All functions:
  Elements:
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: R_STRERROR_INIT_R
      Src: /src/nss/coreconf/nsinstall/pathsub.c:34,1
    - Dst: fprintf
      Src: /src/nss/coreconf/nsinstall/pathsub.c:38,1
    - Dst: va_start
      Src: /src/nss/coreconf/nsinstall/pathsub.c:39,1
    - Dst: vfprintf
      Src: /src/nss/coreconf/nsinstall/pathsub.c:40,1
    - Dst: va_end
      Src: /src/nss/coreconf/nsinstall/pathsub.c:41,1
    - Dst: R_STRERROR_R
      Src: /src/nss/coreconf/nsinstall/pathsub.c:45,1
    - Dst: fprintf
      Src: /src/nss/coreconf/nsinstall/pathsub.c:46,1
    - Dst: fprintf
      Src: /src/nss/coreconf/nsinstall/pathsub.c:48,1
    - Dst: strerror
      Src: /src/nss/coreconf/nsinstall/pathsub.c:48,1
    - Dst: putc
      Src: /src/nss/coreconf/nsinstall/pathsub.c:52,1
    - Dst: abort
      Src: /src/nss/coreconf/nsinstall/pathsub.c:53,1
    - Dst: exit
      Src: /src/nss/coreconf/nsinstall/pathsub.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 55
    functionName: fail
    functionSourceFile: /src/nss/coreconf/nsinstall/pathsub.c
    functionUses: 0
    functionsReached:
    - va_end
    - putc
    - abort
    - exit
    - fprintf
    - vfprintf
    - R_STRERROR_INIT_R
    - va_start
    - R_STRERROR_R
    - strerror
    linkageType: ''
    returnType: void
    signature: void fail(char *format, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - path
    - name
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 73
    functionName: getcomponent
    functionSourceFile: /src/nss/coreconf/nsinstall/pathsub.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      getcomponent(char *path, char *name)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: opendir
      Src: /src/nss/coreconf/nsinstall/pathsub.c:83,1
    - Dst: fail
      Src: /src/nss/coreconf/nsinstall/pathsub.c:85,1
    - Dst: readdir
      Src: /src/nss/coreconf/nsinstall/pathsub.c:87,1
    - Dst: fail
      Src: /src/nss/coreconf/nsinstall/pathsub.c:88,1
    - Dst: xstrdup
      Src: /src/nss/coreconf/nsinstall/pathsub.c:92,1
    - Dst: closedir
      Src: /src/nss/coreconf/nsinstall/pathsub.c:93,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - ino
    - dir
    argTypes:
    - ino_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 95
    functionName: ino2name
    functionSourceFile: /src/nss/coreconf/nsinstall/pathsub.c
    functionUses: 0
    functionsReached:
    - closedir
    - fail
    - readdir
    - xstrdup
    - opendir
    linkageType: ''
    returnType: char
    signature: 'char *

      ino2name(ino_t ino, char *dir)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fail
      Src: /src/nss/coreconf/nsinstall/pathsub.c:103,1
    - Dst: malloc
      Src: /src/nss/coreconf/nsinstall/pathsub.c:104,1
    - Dst: fail
      Src: /src/nss/coreconf/nsinstall/pathsub.c:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 108
    functionName: xmalloc
    functionSourceFile: /src/nss/coreconf/nsinstall/pathsub.c
    functionUses: 0
    functionsReached:
    - malloc
    - fail
    linkageType: ''
    returnType: void
    signature: 'void *

      xmalloc(size_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fail
      Src: /src/nss/coreconf/nsinstall/pathsub.c:114,1
    - Dst: strcpy
      Src: /src/nss/coreconf/nsinstall/pathsub.c:115,1
    - Dst: xmalloc
      Src: /src/nss/coreconf/nsinstall/pathsub.c:115,1
    - Dst: strlen
      Src: /src/nss/coreconf/nsinstall/pathsub.c:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 116
    functionName: xstrdup
    functionSourceFile: /src/nss/coreconf/nsinstall/pathsub.c
    functionUses: 1
    functionsReached:
    - strcpy
    - fail
    - xmalloc
    - strlen
    linkageType: ''
    returnType: char
    signature: 'char *

      xstrdup(char *s)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fail
      Src: /src/nss/coreconf/nsinstall/pathsub.c:124,1
    - Dst: strrchr
      Src: /src/nss/coreconf/nsinstall/pathsub.c:125,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 129
    functionName: xbasename
    functionSourceFile: /src/nss/coreconf/nsinstall/pathsub.c
    functionUses: 0
    functionsReached:
    - fail
    - strrchr
    linkageType: ''
    returnType: char
    signature: 'char *

      xbasename(char *path)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fail
      Src: /src/nss/coreconf/nsinstall/pathsub.c:135,1
    - Dst: chdir
      Src: /src/nss/coreconf/nsinstall/pathsub.c:136,1
    - Dst: fail
      Src: /src/nss/coreconf/nsinstall/pathsub.c:137,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - dir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 138
    functionName: xchdir
    functionSourceFile: /src/nss/coreconf/nsinstall/pathsub.c
    functionUses: 0
    functionsReached:
    - chdir
    - fail
    linkageType: ''
    returnType: void
    signature: void xchdir(char *dir)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fail
      Src: /src/nss/coreconf/nsinstall/pathsub.c:148,1
    - Dst: fail
      Src: /src/nss/coreconf/nsinstall/pathsub.c:150,1
    - Dst: strlen
      Src: /src/nss/coreconf/nsinstall/pathsub.c:159,1
    - Dst: strcpy
      Src: /src/nss/coreconf/nsinstall/pathsub.c:159,1
    - Dst: getcomponent
      Src: /src/nss/coreconf/nsinstall/pathsub.c:166,1
    - Dst: strcpy
      Src: /src/nss/coreconf/nsinstall/pathsub.c:167,1
    - Dst: getcomponent
      Src: /src/nss/coreconf/nsinstall/pathsub.c:170,1
    - Dst: snprintf
      Src: /src/nss/coreconf/nsinstall/pathsub.c:171,1
    - Dst: strlen
      Src: /src/nss/coreconf/nsinstall/pathsub.c:172,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 3
    argNames:
    - from
    - to
    - outpath
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 176
    functionName: relatepaths
    functionSourceFile: /src/nss/coreconf/nsinstall/pathsub.c
    functionUses: 0
    functionsReached:
    - fail
    - strcpy
    - getcomponent
    - snprintf
    - strlen
    linkageType: ''
    returnType: int
    signature: int relatepaths(char *from, char *to, char *outpath)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/nss/coreconf/nsinstall/pathsub.c:185,1
    - Dst: getcomponent
      Src: /src/nss/coreconf/nsinstall/pathsub.c:187,1
    - Dst: strcmp
      Src: /src/nss/coreconf/nsinstall/pathsub.c:188,1
    - Dst: strcmp
      Src: /src/nss/coreconf/nsinstall/pathsub.c:190,1
    - Dst: stat
      Src: /src/nss/coreconf/nsinstall/pathsub.c:191,1
    - Dst: fail
      Src: /src/nss/coreconf/nsinstall/pathsub.c:192,1
    - Dst: ino2name
      Src: /src/nss/coreconf/nsinstall/pathsub.c:193,1
    - Dst: strlen
      Src: /src/nss/coreconf/nsinstall/pathsub.c:194,1
    - Dst: strcpy
      Src: /src/nss/coreconf/nsinstall/pathsub.c:196,1
    - Dst: free
      Src: /src/nss/coreconf/nsinstall/pathsub.c:198,1
    - Dst: xchdir
      Src: /src/nss/coreconf/nsinstall/pathsub.c:199,1
    - Dst: memcpy
      Src: /src/nss/coreconf/nsinstall/pathsub.c:202,1
    - Dst: xchdir
      Src: /src/nss/coreconf/nsinstall/pathsub.c:203,1
    - Dst: strcpy
      Src: /src/nss/coreconf/nsinstall/pathsub.c:206,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - inpath
    - name
    - len
    - outpath
    argTypes:
    - char*
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 207
    functionName: reversepath
    functionSourceFile: /src/nss/coreconf/nsinstall/pathsub.c
    functionUses: 0
    functionsReached:
    - strcmp
    - free
    - memcpy
    - ino2name
    - fail
    - strcpy
    - xchdir
    - getcomponent
    - stat
    - strlen
    linkageType: ''
    returnType: void
    signature: void reversepath(char *inpath, char *name, int len, char *outpath)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fail
      Src: /src/nss/coreconf/nsinstall/pathsub.c:219,1
    - Dst: strdup
      Src: /src/nss/coreconf/nsinstall/pathsub.c:220,1
    - Dst: fail
      Src: /src/nss/coreconf/nsinstall/pathsub.c:222,1
    - Dst: lstat
      Src: /src/nss/coreconf/nsinstall/pathsub.c:224,1
    - Dst: perror
      Src: /src/nss/coreconf/nsinstall/pathsub.c:226,1
    - Dst: S_ISLNK
      Src: /src/nss/coreconf/nsinstall/pathsub.c:227,1
    - Dst: readlink
      Src: /src/nss/coreconf/nsinstall/pathsub.c:228,1
    - Dst: perror
      Src: /src/nss/coreconf/nsinstall/pathsub.c:230,1
    - Dst: fprintf
      Src: /src/nss/coreconf/nsinstall/pathsub.c:235,1
    - Dst: S_ISDIR
      Src: /src/nss/coreconf/nsinstall/pathsub.c:236,1
    - Dst: fprintf
      Src: /src/nss/coreconf/nsinstall/pathsub.c:237,1
    - Dst: access
      Src: /src/nss/coreconf/nsinstall/pathsub.c:238,1
    - Dst: fprintf
      Src: /src/nss/coreconf/nsinstall/pathsub.c:240,1
    - Dst: fprintf
      Src: /src/nss/coreconf/nsinstall/pathsub.c:243,1
    - Dst: access
      Src: /src/nss/coreconf/nsinstall/pathsub.c:244,1
    - Dst: fprintf
      Src: /src/nss/coreconf/nsinstall/pathsub.c:246,1
    - Dst: strrchr
      Src: /src/nss/coreconf/nsinstall/pathsub.c:251,1
    - Dst: strrchr
      Src: /src/nss/coreconf/nsinstall/pathsub.c:253,1
    - Dst: free
      Src: /src/nss/coreconf/nsinstall/pathsub.c:258,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 259
    functionName: diagnosePath
    functionSourceFile: /src/nss/coreconf/nsinstall/pathsub.c
    functionUses: 0
    functionsReached:
    - strdup
    - free
    - fail
    - access
    - lstat
    - fprintf
    - S_ISLNK
    - perror
    - readlink
    - S_ISDIR
    - strrchr
    linkageType: ''
    returnType: void
    signature: void diagnosePath(const char * path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: S_ISLNK
    functionSourceFile: /src/nss/coreconf/nsinstall/nsinstall.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISLNK(a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:54,1
    - Dst: getcwd
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - path
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 58
    functionName: getcwd_do_malloc
    functionSourceFile: /src/nss/coreconf/nsinstall/nsinstall.c
    functionUses: 0
    functionsReached:
    - malloc
    - getcwd
    linkageType: ''
    returnType: char
    signature: 'char *

      getcwd_do_malloc(char *path, int len)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:68,1
    - Dst: strlen
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:71,1
    - Dst: exit
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 73
    functionName: usage
    functionSourceFile: /src/nss/coreconf/nsinstall/nsinstall.c
    functionUses: 0
    functionsReached:
    - fprintf
    - exit
    - strlen
    linkageType: ''
    returnType: void
    signature: void usage(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fail
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:84,1
    - Dst: strrchr
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:87,1
    - Dst: stat
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:90,1
    - Dst: S_ISDIR
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:90,1
    - Dst: mkdirs
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:91,1
    - Dst: mkdir
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:96,1
    - Dst: fail
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:99,1
    - Dst: fprintf
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:100,1
    - Dst: stat
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:101,1
    - Dst: S_ISDIR
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:101,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 23
    argCount: 2
    argNames:
    - path
    - mode
    argTypes:
    - char*
    - mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 105
    functionName: mkdirs
    functionSourceFile: /src/nss/coreconf/nsinstall/nsinstall.c
    functionUses: 1
    functionsReached:
    - mkdir
    - fail
    - stat
    - fprintf
    - mkdirs
    - S_ISDIR
    - strrchr
    linkageType: ''
    returnType: int
    signature: int mkdirs(char *path, mode_t mode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fail
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:115,1
    - Dst: getpwnam
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:116,1
    - Dst: strtol
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:119,1
    - Dst: fail
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:121,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - owner
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 123
    functionName: touid
    functionSourceFile: /src/nss/coreconf/nsinstall/nsinstall.c
    functionUses: 0
    functionsReached:
    - getpwnam
    - fail
    - strtol
    linkageType: ''
    returnType: uid_t
    signature: uid_t touid(char *owner)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fail
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:133,1
    - Dst: getgrnam
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:134,1
    - Dst: strtol
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:137,1
    - Dst: fail
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:139,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - group
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 141
    functionName: togid
    functionSourceFile: /src/nss/coreconf/nsinstall/nsinstall.c
    functionUses: 0
    functionsReached:
    - getgrnam
    - fail
    - strtol
    linkageType: ''
    returnType: gid_t
    signature: gid_t togid(char *group)
  - BBCount: 51
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:186,1
    - Dst: strrchr
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:188,1
    - Dst: getopt
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:192,1
    - Dst: strlen
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:200,1
    - Dst: strtoul
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:205,1
    - Dst: usage
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:207,1
    - Dst: usage
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:212,1
    - Dst: usage
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:219,1
    - Dst: stat
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:222,1
    - Dst: S_ISDIR
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:222,1
    - Dst: mkdirs
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:223,1
    - Dst: fail
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:224,1
    - Dst: GETCWD
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:230,1
    - Dst: fail
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:232,1
    - Dst: xchdir
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:236,1
    - Dst: GETCWD
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:237,1
    - Dst: fail
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:239,1
    - Dst: strlen
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:240,1
    - Dst: xchdir
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:243,1
    - Dst: touid
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:245,1
    - Dst: togid
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:246,1
    - Dst: strlen
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:250,1
    - Dst: xbasename
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:251,1
    - Dst: strlen
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:252,1
    - Dst: xmalloc
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:254,1
    - Dst: snprintf
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:255,1
    - Dst: lstat
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:257,1
    - Dst: S_ISDIR
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:261,1
    - Dst: unlink
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:262,1
    - Dst: fail
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:264,1
    - Dst: mkdir
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:267,1
    - Dst: stat
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:269,1
    - Dst: S_ISDIR
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:270,1
    - Dst: fprintf
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:271,1
    - Dst: fail
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:274,1
    - Dst: chown
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:276,1
    - Dst: fail
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:277,1
    - Dst: xmalloc
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:286,1
    - Dst: snprintf
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:287,1
    - Dst: xmalloc
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:290,1
    - Dst: relatepaths
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:294,1
    - Dst: strcpy
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:295,1
    - Dst: reversepath
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:298,1
    - Dst: xchdir
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:299,1
    - Dst: strlen
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:302,1
    - Dst: S_ISLNK
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:309,1
    - Dst: readlink
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:310,1
    - Dst: strncmp
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:311,1
    - Dst: S_ISDIR
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:313,1
    - Dst: fail
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:315,1
    - Dst: symlink
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:319,1
    - Dst: fprintf
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:321,1
    - Dst: fail
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:322,1
    - Dst: diagnosePath
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:326,1
    - Dst: fail
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:327,1
    - Dst: lchown
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:330,1
    - Dst: fail
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:331,1
    - Dst: free
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:335,1
    - Dst: open
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:340,1
    - Dst: fstat
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:341,1
    - Dst: fail
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:342,1
    - Dst: S_ISREG
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:344,1
    - Dst: access
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:344,1
    - Dst: S_ISDIR
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:346,1
    - Dst: fail
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:348,1
    - Dst: open
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:351,1
    - Dst: fail
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:353,1
    - Dst: read
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:356,1
    - Dst: write
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:357,1
    - Dst: fail
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:363,1
    - Dst: fail
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:366,1
    - Dst: ftruncate
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:368,1
    - Dst: fail
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:369,1
    - Dst: utime
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:373,1
    - Dst: fail
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:374,1
    - Dst: fchmod
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:377,1
    - Dst: chmod
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:379,1
    - Dst: fail
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:381,1
    - Dst: fchown
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:383,1
    - Dst: fail
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:384,1
    - Dst: close
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:387,1
    - Dst: fail
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:388,1
    - Dst: close
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:389,1
    - Dst: free
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:392,1
    - Dst: free
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:395,1
    - Dst: free
      Src: /src/nss/coreconf/nsinstall/nsinstall.c:396,1
    CyclomaticComplexity: 77
    EdgeCount: 77
    ICount: 188
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 398
    functionName: main
    functionSourceFile: /src/nss/coreconf/nsinstall/nsinstall.c
    functionUses: 0
    functionsReached:
    - xbasename
    - fail
    - touid
    - open
    - fprintf
    - symlink
    - utime
    - ftruncate
    - togid
    - S_ISREG
    - strlen
    - close
    - strtoul
    - xmalloc
    - read
    - strcpy
    - access
    - fchown
    - relatepaths
    - mkdirs
    - snprintf
    - S_ISLNK
    - usage
    - strrchr
    - mkdir
    - write
    - stat
    - lstat
    - readlink
    - chmod
    - strncmp
    - free
    - getopt
    - fstat
    - chown
    - fchmod
    - GETCWD
    - unlink
    - lchown
    - diagnosePath
    - reversepath
    - S_ISDIR
    - xchdir
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SECU_DefaultSSLDir
      Src: /src/nss/cmd/listsuites/listsuites.c:29,1
    - Dst: NSS_Init
      Src: /src/nss/cmd/listsuites/listsuites.c:31,1
    - Dst: NSS_NoDB_Init
      Src: /src/nss/cmd/listsuites/listsuites.c:33,1
    - Dst: PR_GetError
      Src: /src/nss/cmd/listsuites/listsuites.c:36,1
    - Dst: fprintf
      Src: /src/nss/cmd/listsuites/listsuites.c:38,1
    - Dst: PORT_ErrorToString
      Src: /src/nss/cmd/listsuites/listsuites.c:38,1
    - Dst: NSS_SetAlgorithmPolicy
      Src: /src/nss/cmd/listsuites/listsuites.c:43,1
    - Dst: PR_GetError
      Src: /src/nss/cmd/listsuites/listsuites.c:45,1
    - Dst: fprintf
      Src: /src/nss/cmd/listsuites/listsuites.c:47,1
    - Dst: PORT_ErrorToString
      Src: /src/nss/cmd/listsuites/listsuites.c:48,1
    - Dst: SSL_OptionSetDefault
      Src: /src/nss/cmd/listsuites/listsuites.c:53,1
    - Dst: PR_GetError
      Src: /src/nss/cmd/listsuites/listsuites.c:55,1
    - Dst: fprintf
      Src: /src/nss/cmd/listsuites/listsuites.c:57,1
    - Dst: PORT_ErrorToString
      Src: /src/nss/cmd/listsuites/listsuites.c:58,1
    - Dst: fputs
      Src: /src/nss/cmd/listsuites/listsuites.c:62,1
    - Dst: SSL_CipherPrefGetDefault
      Src: /src/nss/cmd/listsuites/listsuites.c:70,1
    - Dst: PR_GetError
      Src: /src/nss/cmd/listsuites/listsuites.c:72,1
    - Dst: fprintf
      Src: /src/nss/cmd/listsuites/listsuites.c:74,1
    - Dst: PORT_ErrorToString
      Src: /src/nss/cmd/listsuites/listsuites.c:76,1
    - Dst: SSL_GetCipherSuiteInfo
      Src: /src/nss/cmd/listsuites/listsuites.c:79,1
    - Dst: PR_GetError
      Src: /src/nss/cmd/listsuites/listsuites.c:81,1
    - Dst: fprintf
      Src: /src/nss/cmd/listsuites/listsuites.c:83,1
    - Dst: PORT_ErrorToString
      Src: /src/nss/cmd/listsuites/listsuites.c:85,1
    - Dst: fprintf
      Src: /src/nss/cmd/listsuites/listsuites.c:88,1
    - Dst: NSS_Shutdown
      Src: /src/nss/cmd/listsuites/listsuites.c:100,1
    - Dst: PR_GetError
      Src: /src/nss/cmd/listsuites/listsuites.c:102,1
    - Dst: fprintf
      Src: /src/nss/cmd/listsuites/listsuites.c:104,1
    - Dst: PORT_ErrorToString
      Src: /src/nss/cmd/listsuites/listsuites.c:104,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 57
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 108
    functionName: main
    functionSourceFile: /src/nss/cmd/listsuites/listsuites.c
    functionUses: 0
    functionsReached:
    - PORT_ErrorToString
    - NSS_NoDB_Init
    - fputs
    - SSL_OptionSetDefault
    - NSS_Init
    - SECU_DefaultSSLDir
    - SSL_GetCipherSuiteInfo
    - fprintf
    - NSS_Shutdown
    - PR_GetError
    - SSL_CipherPrefGetDefault
    - NSS_SetAlgorithmPolicy
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SSL_VersionRangeGetSupported
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:38,1
    - Dst: SSL_VersionRangeGetDefault
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:39,1
    - Dst: fprintf
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:61,1
    - Dst: PR_SetEnv
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:64,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 2
    argNames:
    - protocolVariant
    - display
    argTypes:
    - SSLProtocolVariant
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 66
    functionName: get_tls_info
    functionSourceFile: /src/nss/cmd/nss-policy-check/nss-policy-check.c
    functionUses: 0
    functionsReached:
    - fprintf
    - PR_SetEnv
    - SSL_VersionRangeGetDefault
    - SSL_VersionRangeGetSupported
    linkageType: ''
    returnType: void
    signature: void get_tls_info(SSLProtocolVariant protocolVariant, const char *display)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - progName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 85
    functionName: printUsage
    functionSourceFile: /src/nss/cmd/nss-policy-check/nss-policy-check.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void printUsage(const char *progName)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:107,1
    - Dst: PL_CreateOptState
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:115,1
    - Dst: PL_GetNextOpt
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:120,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:123,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:130,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:132,1
    - Dst: fprintf
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:135,1
    - Dst: printUsage
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:136,1
    - Dst: printUsage
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:142,1
    - Dst: printUsage
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:149,1
    - Dst: strlen
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:154,1
    - Dst: PR_Access
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:156,1
    - Dst: fprintf
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:157,1
    - Dst: fprintf
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:163,1
    - Dst: PORT_Strcpy
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:175,1
    - Dst: PORT_Strncat
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:178,1
    - Dst: PR_SetEnv
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:181,1
    - Dst: NSS_NoDB_Init
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:182,1
    - Dst: fprintf
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:184,1
    - Dst: PORT_ErrorToString
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:184,1
    - Dst: PR_GetError
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:184,1
    - Dst: PR_SetEnv
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:189,1
    - Dst: PR_SetEnv
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:190,1
    - Dst: PR_SetEnv
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:191,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:193,1
    - Dst: PORT_Realloc
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:202,1
    - Dst: strlen
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:202,1
    - Dst: strlen
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:202,1
    - Dst: PORT_Strcat
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:208,1
    - Dst: PORT_Realloc
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:214,1
    - Dst: strlen
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:214,1
    - Dst: strlen
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:214,1
    - Dst: PORT_Strcat
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:220,1
    - Dst: snprintf
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:223,1
    - Dst: SECMOD_LoadModule
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:231,1
    - Dst: atoi
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:232,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:232,1
    - Dst: fprintf
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:233,1
    - Dst: SSL_OptionSetDefault
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:238,1
    - Dst: fprintf
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:240,1
    - Dst: PORT_ErrorToString
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:240,1
    - Dst: PR_GetError
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:240,1
    - Dst: SSL_CipherPrefGetDefault
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:250,1
    - Dst: fprintf
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:252,1
    - Dst: PORT_ErrorToString
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:254,1
    - Dst: PR_GetError
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:254,1
    - Dst: SSL_GetCipherSuiteInfo
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:257,1
    - Dst: fprintf
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:259,1
    - Dst: PORT_ErrorToString
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:261,1
    - Dst: PR_GetError
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:261,1
    - Dst: fprintf
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:266,1
    - Dst: fprintf
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:269,1
    - Dst: PR_SetEnv
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:271,1
    - Dst: get_tls_info
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:274,1
    - Dst: get_tls_info
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:275,1
    - Dst: atoi
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:277,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:277,1
    - Dst: atoi
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:279,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:279,1
    - Dst: SECMOD_DestroyModule
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:285,1
    - Dst: NSS_Shutdown
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:287,1
    - Dst: fprintf
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:289,1
    - Dst: PORT_ErrorToString
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:289,1
    - Dst: PR_GetError
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:289,1
    - Dst: PL_DestroyOptState
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:294,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:296,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:297,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:298,1
    - Dst: fprintf
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:300,1
    - Dst: fprintf
      Src: /src/nss/cmd/nss-policy-check/nss-policy-check.c:302,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 182
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 305
    functionName: main
    functionSourceFile: /src/nss/cmd/nss-policy-check/nss-policy-check.c
    functionUses: 0
    functionsReached:
    - PR_GetEnvSecure
    - SSL_GetCipherSuiteInfo
    - fprintf
    - PL_DestroyOptState
    - PR_SetEnv
    - PORT_Realloc
    - strlen
    - PORT_ErrorToString
    - snprintf
    - SSL_CipherPrefGetDefault
    - PL_CreateOptState
    - PORT_Strncat
    - get_tls_info
    - PR_Access
    - SECMOD_DestroyModule
    - PL_strdup
    - PORT_Strcat
    - PORT_Strdup
    - NSS_NoDB_Init
    - SECMOD_LoadModule
    - SSL_OptionSetDefault
    - printUsage
    - PL_GetNextOpt
    - PORT_Free
    - atoi
    - NSS_Shutdown
    - PR_GetError
    - PORT_Strcpy
    - PORT_Strcmp
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: __PASTE
    functionSourceFile: /src/nss/cmd/ecperf/ecperf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __PASTE(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: CK_PKCS11_FUNCTION_INFO
    functionSourceFile: /src/nss/cmd/ecperf/ecperf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CK_PKCS11_FUNCTION_INFO(func)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PR_Lock
      Src: /src/nss/cmd/ecperf/ecperf.c:62,1
    - Dst: NSC_OpenSession
      Src: /src/nss/cmd/ecperf/ecperf.c:63,1
    - Dst: PR_Unlock
      Src: /src/nss/cmd/ecperf/ecperf.c:64,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 89
    functionName: PKCS11Thread
    functionSourceFile: /src/nss/cmd/ecperf/ecperf.c
    functionUses: 0
    functionsReached:
    - NSC_OpenSession
    - PR_Lock
    - PR_Unlock
    linkageType: ''
    returnType: void
    signature: void PKCS11Thread(void *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 123
    functionName: genericThread
    functionSourceFile: /src/nss/cmd/ecperf/ecperf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void genericThread(void *data)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/ecperf/ecperf.c:147,1
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/ecperf/ecperf.c:152,1
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/ecperf/ecperf.c:153,1
    - Dst: PR_Now
      Src: /src/nss/cmd/ecperf/ecperf.c:155,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/ecperf/ecperf.c:164,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/ecperf/ecperf.c:165,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/ecperf/ecperf.c:166,1
    - Dst: PR_CreateThread
      Src: /src/nss/cmd/ecperf/ecperf.c:180,1
    - Dst: PR_JoinThread
      Src: /src/nss/cmd/ecperf/ecperf.c:187,1
    - Dst: PR_Now
      Src: /src/nss/cmd/ecperf/ecperf.c:193,1
    - Dst: printf
      Src: /src/nss/cmd/ecperf/ecperf.c:197,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/ecperf/ecperf.c:203,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/ecperf/ecperf.c:204,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 56
    argCount: 11
    argNames:
    - opfunc
    - op
    - param1
    - param2
    - param3
    - iters
    - numThreads
    - lock
    - session
    - isSign
    - rate
    argTypes:
    - op_func
    - char*
    - void*
    - void*
    - void*
    - int
    - int
    - PRLock*
    - CK_SESSION_HANDLE
    - int
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 207
    functionName: M_TimeOperation
    functionSourceFile: /src/nss/cmd/ecperf/ecperf.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - SECU_PrintError
    - PORT_Free
    - printf
    - PR_Now
    - PR_JoinThread
    - PR_CreateThread
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus M_TimeOperation(void (*threadFunc)(void *),\n                op_func
      opfunc, char *op, void *param1, void *param2,\n                void *param3,
      int iters, int numThreads, PRLock *lock,\n                CK_SESSION_HANDLE
      session, int isSign, double *rate)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name_c
    - ','
    - name_v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 225
    functionName: ECTEST_NAMED
    functionSourceFile: /src/nss/cmd/ecperf/ecperf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ECTEST_NAMED(name_c, name_v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x
    - ','
    - id
    - ','
    - v
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 230
    functionName: PK11_SETATTRS
    functionSourceFile: /src/nss/cmd/ecperf/ecperf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PK11_SETATTRS(x, id, v, l)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_SETATTRS
      Src: /src/nss/cmd/ecperf/ecperf.c:243,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/cmd/ecperf/ecperf.c:245,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/cmd/ecperf/ecperf.c:247,1
    - Dst: NSC_DeriveKey
      Src: /src/nss/cmd/ecperf/ecperf.c:250,1
    - Dst: printf
      Src: /src/nss/cmd/ecperf/ecperf.c:252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - session
    - hKey
    - pMech
    - dummy
    argTypes:
    - CK_SESSION_HANDLE
    - CK_OBJECT_HANDLE*
    - CK_MECHANISM*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 256
    functionName: PKCS11_Derive
    functionSourceFile: /src/nss/cmd/ecperf/ecperf.c
    functionUses: 0
    functionsReached:
    - NSC_DeriveKey
    - PK11_SETATTRS
    - printf
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PKCS11_Derive(CK_SESSION_HANDLE session, CK_OBJECT_HANDLE
      *hKey,\n              CK_MECHANISM *pMech, int *dummy)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NSC_SignInit
      Src: /src/nss/cmd/ecperf/ecperf.c:270,1
    - Dst: printf
      Src: /src/nss/cmd/ecperf/ecperf.c:272,1
    - Dst: NSC_Sign
      Src: /src/nss/cmd/ecperf/ecperf.c:275,1
    - Dst: printf
      Src: /src/nss/cmd/ecperf/ecperf.c:277,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - session
    - hKey
    - sig
    - digest
    argTypes:
    - CK_SESSION_HANDLE
    - CK_OBJECT_HANDLE*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 282
    functionName: PKCS11_Sign
    functionSourceFile: /src/nss/cmd/ecperf/ecperf.c
    functionUses: 0
    functionsReached:
    - NSC_SignInit
    - printf
    - NSC_Sign
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PKCS11_Sign(CK_SESSION_HANDLE session, CK_OBJECT_HANDLE
      *hKey,\n            SECItem *sig, SECItem *digest)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NSC_VerifyInit
      Src: /src/nss/cmd/ecperf/ecperf.c:295,1
    - Dst: printf
      Src: /src/nss/cmd/ecperf/ecperf.c:297,1
    - Dst: NSC_Verify
      Src: /src/nss/cmd/ecperf/ecperf.c:300,1
    - Dst: printf
      Src: /src/nss/cmd/ecperf/ecperf.c:302,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - session
    - hKey
    - sig
    - digest
    argTypes:
    - CK_SESSION_HANDLE
    - CK_OBJECT_HANDLE*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 306
    functionName: PKCS11_Verify
    functionSourceFile: /src/nss/cmd/ecperf/ecperf.c
    functionUses: 0
    functionsReached:
    - NSC_VerifyInit
    - printf
    - NSC_Verify
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PKCS11_Verify(CK_SESSION_HANDLE session, CK_OBJECT_HANDLE
      *hKey,\n              SECItem *sig, SECItem *digest)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: SECU_ecName2params
      Src: /src/nss/cmd/ecperf/ecperf.c:333,1
    - Dst: NSC_OpenSession
      Src: /src/nss/cmd/ecperf/ecperf.c:338,1
    - Dst: printf
      Src: /src/nss/cmd/ecperf/ecperf.c:340,1
    - Dst: PORT_Memset
      Src: /src/nss/cmd/ecperf/ecperf.c:344,1
    - Dst: NSC_GenerateKeyPair
      Src: /src/nss/cmd/ecperf/ecperf.c:356,1
    - Dst: printf
      Src: /src/nss/cmd/ecperf/ecperf.c:359,1
    - Dst: NSC_GetAttributeValue
      Src: /src/nss/cmd/ecperf/ecperf.c:366,1
    - Dst: printf
      Src: /src/nss/cmd/ecperf/ecperf.c:368,1
    - Dst: PR_NewLock
      Src: /src/nss/cmd/ecperf/ecperf.c:382,1
    - Dst: M_TimeOperation
      Src: /src/nss/cmd/ecperf/ecperf.c:385,1
    - Dst: M_TimeOperation
      Src: /src/nss/cmd/ecperf/ecperf.c:394,1
    - Dst: printf
      Src: /src/nss/cmd/ecperf/ecperf.c:400,1
    - Dst: PKCS11_Sign
      Src: /src/nss/cmd/ecperf/ecperf.c:402,1
    - Dst: M_TimeOperation
      Src: /src/nss/cmd/ecperf/ecperf.c:406,1
    - Dst: PR_DestroyLock
      Src: /src/nss/cmd/ecperf/ecperf.c:416,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 73
    argCount: 3
    argNames:
    - curve
    - iterations
    - numThreads
    argTypes:
    - ECCurveName
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 311
    functionDepth: 2
    functionLinenumber: 311
    functionLinenumberEnd: 419
    functionName: ectest_curve_pkcs11
    functionSourceFile: /src/nss/cmd/ecperf/ecperf.c
    functionUses: 0
    functionsReached:
    - NSC_OpenSession
    - NSC_GetAttributeValue
    - NSC_GenerateKeyPair
    - M_TimeOperation
    - printf
    - PKCS11_Sign
    - PR_NewLock
    - PORT_Memset
    - PR_DestroyLock
    - SECU_ecName2params
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ectest_curve_pkcs11(ECCurveName curve, int iterations, int
      numThreads)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ECDH_Derive
      Src: /src/nss/cmd/ecperf/ecperf.c:431,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/ecperf/ecperf.c:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - priv
    - pub
    - dummy
    argTypes:
    - ECPrivateKey*
    - ECPublicKey*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 435
    functionName: ECDH_DeriveWrap
    functionSourceFile: /src/nss/cmd/ecperf/ecperf.c
    functionUses: 0
    functionsReached:
    - ECDH_Derive
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ECDH_DeriveWrap(ECPrivateKey *priv, ECPublicKey *pub, int
      *dummy)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/ecperf/ecperf.c:455,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/ecperf/ecperf.c:461,1
    - Dst: SECU_ecName2params
      Src: /src/nss/cmd/ecperf/ecperf.c:465,1
    - Dst: EC_FillParams
      Src: /src/nss/cmd/ecperf/ecperf.c:469,1
    - Dst: PORT_Memset
      Src: /src/nss/cmd/ecperf/ecperf.c:471,1
    - Dst: EC_NewKey
      Src: /src/nss/cmd/ecperf/ecperf.c:477,1
    - Dst: M_TimeOperation
      Src: /src/nss/cmd/ecperf/ecperf.c:485,1
    - Dst: M_TimeOperation
      Src: /src/nss/cmd/ecperf/ecperf.c:493,1
    - Dst: printf
      Src: /src/nss/cmd/ecperf/ecperf.c:497,1
    - Dst: ECDSA_SignDigest
      Src: /src/nss/cmd/ecperf/ecperf.c:498,1
    - Dst: M_TimeOperation
      Src: /src/nss/cmd/ecperf/ecperf.c:502,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/ecperf/ecperf.c:510,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/ecperf/ecperf.c:511,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/ecperf/ecperf.c:513,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 59
    argCount: 3
    argNames:
    - curve
    - iterations
    - numThreads
    argTypes:
    - ECCurveName
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 516
    functionName: ectest_curve_freebl
    functionSourceFile: /src/nss/cmd/ecperf/ecperf.c
    functionUses: 0
    functionsReached:
    - PORT_NewArena
    - ECDSA_SignDigest
    - PORT_FreeArena
    - M_TimeOperation
    - printf
    - SECITEM_FreeItem
    - PORT_Memset
    - EC_FillParams
    - EC_NewKey
    - SECU_ecName2params
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ectest_curve_freebl(ECCurveName curve, int iterations, int
      numThreads)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/ecperf/ecperf.c:522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - prog
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 525
    functionName: printUsage
    functionSourceFile: /src/nss/cmd/ecperf/ecperf.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printUsage(char *prog)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/ecperf/ecperf.c:550,1
    - Dst: atoi
      Src: /src/nss/cmd/ecperf/ecperf.c:552,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/ecperf/ecperf.c:553,1
    - Dst: atoi
      Src: /src/nss/cmd/ecperf/ecperf.c:555,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/ecperf/ecperf.c:556,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/ecperf/ecperf.c:559,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/ecperf/ecperf.c:561,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/ecperf/ecperf.c:563,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/ecperf/ecperf.c:565,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/ecperf/ecperf.c:567,1
    - Dst: printUsage
      Src: /src/nss/cmd/ecperf/ecperf.c:570,1
    - Dst: RNG_RNGInit
      Src: /src/nss/cmd/ecperf/ecperf.c:582,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/ecperf/ecperf.c:584,1
    - Dst: RNG_SystemInfoForRNG
      Src: /src/nss/cmd/ecperf/ecperf.c:587,1
    - Dst: SECOID_Init
      Src: /src/nss/cmd/ecperf/ecperf.c:589,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/ecperf/ecperf.c:591,1
    - Dst: NSC_Initialize
      Src: /src/nss/cmd/ecperf/ecperf.c:596,1
    - Dst: fprintf
      Src: /src/nss/cmd/ecperf/ecperf.c:598,1
    - Dst: ECTEST_NAMED
      Src: /src/nss/cmd/ecperf/ecperf.c:605,1
    - Dst: ECTEST_NAMED
      Src: /src/nss/cmd/ecperf/ecperf.c:606,1
    - Dst: ECTEST_NAMED
      Src: /src/nss/cmd/ecperf/ecperf.c:607,1
    - Dst: ECTEST_NAMED
      Src: /src/nss/cmd/ecperf/ecperf.c:608,1
    - Dst: SECOID_Shutdown
      Src: /src/nss/cmd/ecperf/ecperf.c:612,1
    - Dst: RNG_RNGShutdown
      Src: /src/nss/cmd/ecperf/ecperf.c:613,1
    - Dst: printf
      Src: /src/nss/cmd/ecperf/ecperf.c:616,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 71
    argCount: 2
    argNames:
    - argv
    - argc
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 530
    functionDepth: 1
    functionLinenumber: 530
    functionLinenumberEnd: 619
    functionName: main
    functionSourceFile: /src/nss/cmd/ecperf/ecperf.c
    functionUses: 0
    functionsReached:
    - RNG_RNGInit
    - RNG_RNGShutdown
    - ECTEST_NAMED
    - SECU_PrintError
    - SECOID_Shutdown
    - PL_strcasecmp
    - RNG_SystemInfoForRNG
    - NSC_Initialize
    - atoi
    - printf
    - fprintf
    - SECOID_Init
    - printUsage
    linkageType: ''
    returnType: int
    signature: int main(int argv, char **argc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fileno
      Src: /src/nss/cmd/certutil/keystuff.c:79,1
    - Dst: tcgetattr
      Src: /src/nss/cmd/certutil/keystuff.c:81,1
    - Dst: tcsetattr
      Src: /src/nss/cmd/certutil/keystuff.c:89,1
    - Dst: getc
      Src: /src/nss/cmd/certutil/keystuff.c:96,1
    - Dst: getch
      Src: /src/nss/cmd/certutil/keystuff.c:98,1
    - Dst: PK11_RandomUpdate
      Src: /src/nss/cmd/certutil/keystuff.c:110,1
    - Dst: memset
      Src: /src/nss/cmd/certutil/keystuff.c:111,1
    - Dst: getc
      Src: /src/nss/cmd/certutil/keystuff.c:115,1
    - Dst: tcsetattr
      Src: /src/nss/cmd/certutil/keystuff.c:128,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 131
    functionName: UpdateRNG
    functionSourceFile: /src/nss/cmd/certutil/keystuff.c
    functionUses: 0
    functionsReached:
    - fileno
    - getc
    - getch
    - tcgetattr
    - memset
    - PK11_RandomUpdate
    - tcsetattr
    linkageType: ''
    returnType: int
    signature: int UpdateRNG(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/certutil/keystuff.c:238,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/cmd/certutil/keystuff.c:242,1
    - Dst: ATOB_AsciiToData
      Src: /src/nss/cmd/certutil/keystuff.c:247,1
    - Dst: SEC_ASN1Decode
      Src: /src/nss/cmd/certutil/keystuff.c:251,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/certutil/keystuff.c:259,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 261
    functionName: decode_pqg_params
    functionSourceFile: /src/nss/cmd/certutil/keystuff.c
    functionUses: 0
    functionsReached:
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - PORT_FreeArena
    - SEC_ASN1Decode
    - ATOB_AsciiToData
    linkageType: ''
    returnType: SECKEYPQGParams
    signature: 'SECKEYPQGParams *

      decode_pqg_params(const char *str)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/certutil/keystuff.c:267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - params
    argTypes:
    - SECKEYPQGParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 269
    functionName: CERTUTIL_DestroyParamsPQG
    functionSourceFile: /src/nss/cmd/certutil/keystuff.c
    functionUses: 0
    functionsReached:
    - PORT_FreeArena
    linkageType: ''
    returnType: void
    signature: void CERTUTIL_DestroyParamsPQG(SECKEYPQGParams *params)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - params
    argTypes:
    - SECKEYPQGParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 285
    functionName: pqg_prime_bits
    functionSourceFile: /src/nss/cmd/certutil/keystuff.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pqg_prime_bits(const SECKEYPQGParams *params)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PR_Open
      Src: /src/nss/cmd/certutil/keystuff.c:296,1
    - Dst: fprintf
      Src: /src/nss/cmd/certutil/keystuff.c:298,1
    - Dst: PR_GetOpenFileInfo
      Src: /src/nss/cmd/certutil/keystuff.c:302,1
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/certutil/keystuff.c:305,1
    - Dst: PR_Close
      Src: /src/nss/cmd/certutil/keystuff.c:308,1
    - Dst: fprintf
      Src: /src/nss/cmd/certutil/keystuff.c:309,1
    - Dst: PR_Read
      Src: /src/nss/cmd/certutil/keystuff.c:313,1
    - Dst: PR_Close
      Src: /src/nss/cmd/certutil/keystuff.c:314,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/certutil/keystuff.c:316,1
    - Dst: fprintf
      Src: /src/nss/cmd/certutil/keystuff.c:317,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/certutil/keystuff.c:318,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 329
    functionName: getPQGString
    functionSourceFile: /src/nss/cmd/certutil/keystuff.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_Free
    - fprintf
    - PR_Read
    - PR_Open
    - PR_GetOpenFileInfo
    - PORT_SetError
    - PR_Close
    linkageType: ''
    returnType: char
    signature: 'char *

      getPQGString(const char *filename)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getPQGString
      Src: /src/nss/cmd/certutil/keystuff.c:337,1
    - Dst: PORT_Strchr
      Src: /src/nss/cmd/certutil/keystuff.c:342,1
    - Dst: decode_pqg_params
      Src: /src/nss/cmd/certutil/keystuff.c:345,1
    - Dst: pqg_prime_bits
      Src: /src/nss/cmd/certutil/keystuff.c:347,1
    - Dst: CERTUTIL_DestroyParamsPQG
      Src: /src/nss/cmd/certutil/keystuff.c:350,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/certutil/keystuff.c:357,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - keyBits
    - pqgFile
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 331
    functionDepth: 2
    functionLinenumber: 331
    functionLinenumberEnd: 359
    functionName: getpqgfromfile
    functionSourceFile: /src/nss/cmd/certutil/keystuff.c
    functionUses: 0
    functionsReached:
    - PORT_Strchr
    - getPQGString
    - pqg_prime_bits
    - PORT_Free
    - CERTUTIL_DestroyParamsPQG
    - decode_pqg_params
    linkageType: ''
    returnType: SECKEYPQGParams
    signature: 'SECKEYPQGParams *

      getpqgfromfile(int keyBits, const char *pqgFile)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_Open
      Src: /src/nss/cmd/certutil/keystuff.c:368,1
    - Dst: fprintf
      Src: /src/nss/cmd/certutil/keystuff.c:370,1
    - Dst: PR_Read
      Src: /src/nss/cmd/certutil/keystuff.c:375,1
    - Dst: PK11_RandomUpdate
      Src: /src/nss/cmd/certutil/keystuff.c:377,1
    - Dst: PR_Close
      Src: /src/nss/cmd/certutil/keystuff.c:381,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - noise
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 383
    functionName: CERTUTIL_FileForRNG
    functionSourceFile: /src/nss/cmd/certutil/keystuff.c
    functionUses: 0
    functionsReached:
    - fprintf
    - PR_Read
    - PR_Open
    - PR_Close
    - PK11_RandomUpdate
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERTUTIL_FileForRNG(const char *noise)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PL_strcmp
      Src: /src/nss/cmd/certutil/keystuff.c:484,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/cmd/certutil/keystuff.c:491,1
    - Dst: fprintf
      Src: /src/nss/cmd/certutil/keystuff.c:492,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/certutil/keystuff.c:496,1
    - Dst: memcpy
      Src: /src/nss/cmd/certutil/keystuff.c:505,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - curve
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 508
    functionName: getECParams
    functionSourceFile: /src/nss/cmd/certutil/keystuff.c
    functionUses: 0
    functionsReached:
    - memcpy
    - SECOID_FindOIDByTag
    - SECITEM_AllocItem
    - fprintf
    - PL_strcmp
    linkageType: ''
    returnType: SECKEYECParams
    signature: 'SECKEYECParams *

      getECParams(const char *curve)'
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PK11_Authenticate
      Src: /src/nss/cmd/certutil/keystuff.c:526,1
    - Dst: CERTUTIL_FileForRNG
      Src: /src/nss/cmd/certutil/keystuff.c:534,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/certutil/keystuff.c:536,1
    - Dst: UpdateRNG
      Src: /src/nss/cmd/certutil/keystuff.c:540,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/certutil/keystuff.c:542,1
    - Dst: getpqgfromfile
      Src: /src/nss/cmd/certutil/keystuff.c:557,1
    - Dst: getECParams
      Src: /src/nss/cmd/certutil/keystuff.c:569,1
    - Dst: fprintf
      Src: /src/nss/cmd/certutil/keystuff.c:576,1
    - Dst: fprintf
      Src: /src/nss/cmd/certutil/keystuff.c:577,1
    - Dst: PK11_GenerateKeyPairWithOpFlags
      Src: /src/nss/cmd/certutil/keystuff.c:579,1
    - Dst: CERTUTIL_DestroyParamsPQG
      Src: /src/nss/cmd/certutil/keystuff.c:586,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/certutil/keystuff.c:589,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 57
    argCount: 11
    argNames:
    - keytype
    - slot
    - size
    - publicExponent
    - noise
    - pubkeyp
    - pqgFile
    - attrFlags
    - opFlagsOn
    - opFlagsOff
    - pwdata
    argTypes:
    - KeyType
    - PK11SlotInfo*
    - int
    - int
    - char*
    - SECKEYPublicKey**
    - char*
    - PK11AttrFlags
    - CK_FLAGS
    - CK_FLAGS
    - secuPWData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 510
    functionDepth: 3
    functionLinenumber: 510
    functionLinenumberEnd: 595
    functionName: CERTUTIL_GeneratePrivateKey
    functionSourceFile: /src/nss/cmd/certutil/keystuff.c
    functionUses: 0
    functionsReached:
    - PK11_GenerateKeyPairWithOpFlags
    - CERTUTIL_DestroyParamsPQG
    - CERTUTIL_FileForRNG
    - PORT_SetError
    - getpqgfromfile
    - getECParams
    - fprintf
    - SECITEM_FreeItem
    - UpdateRNG
    - PK11_Authenticate
    linkageType: ''
    returnType: SECKEYPrivateKey
    signature: "SECKEYPrivateKey *\nCERTUTIL_GeneratePrivateKey(KeyType keytype, PK11SlotInfo
      *slot, int size,\n                            int publicExponent, const char
      *noise,\n                            SECKEYPublicKey **pubkeyp, const char *pqgFile,\n
      \                           PK11AttrFlags attrFlags, CK_FLAGS opFlagsOn,\n                            CK_FLAGS
      opFlagsOff, secuPWData *pwdata)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: GEN_BREAK
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN_BREAK(e)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CERT_ChangeCertTrust
      Src: /src/nss/cmd/certutil/certutil.c:59,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/certutil/certutil.c:61,1
    - Dst: PK11_Authenticate
      Src: /src/nss/cmd/certutil/certutil.c:62,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/certutil/certutil.c:63,1
    - Dst: PK11_GetInternalKeySlot
      Src: /src/nss/cmd/certutil/certutil.c:65,1
    - Dst: PK11_Authenticate
      Src: /src/nss/cmd/certutil/certutil.c:66,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:68,1
    - Dst: PK11_GetTokenName
      Src: /src/nss/cmd/certutil/certutil.c:70,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/cmd/certutil/certutil.c:71,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/cmd/certutil/certutil.c:74,1
    - Dst: CERT_ChangeCertTrust
      Src: /src/nss/cmd/certutil/certutil.c:76,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 5
    argNames:
    - handle
    - cert
    - trust
    - slot
    - pwdata
    argTypes:
    - CERTCertDBHandle*
    - CERTCertificate*
    - CERTCertTrust*
    - PK11SlotInfo*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 80
    functionName: ChangeCertTrust
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 1
    functionsReached:
    - PK11_GetInternalKeySlot
    - SECU_PrintError
    - CERT_ChangeCertTrust
    - PK11_GetTokenName
    - PORT_GetError
    - PK11_FreeSlot
    - PK11_Authenticate
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ChangeCertTrust(CERTCertDBHandle *handle, CERTCertificate
      *cert,\n                CERTCertTrust *trust, PK11SlotInfo *slot, void *pwdata)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/certutil/certutil.c:91,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certutil.c:93,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/cmd/certutil/certutil.c:96,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certutil.c:98,1
    - Dst: PORT_Memset
      Src: /src/nss/cmd/certutil/certutil.c:105,1
    - Dst: SEC_ASN1DecodeItem
      Src: /src/nss/cmd/certutil/certutil.c:106,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/cmd/certutil/certutil.c:107,1
    - Dst: SEC_ASN1DecodeItem
      Src: /src/nss/cmd/certutil/certutil.c:111,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/cmd/certutil/certutil.c:112,1
    - Dst: CERT_VerifySignedDataWithPublicKeyInfo
      Src: /src/nss/cmd/certutil/certutil.c:116,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:121,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/certutil/certutil.c:123,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 2
    argNames:
    - reqDER
    - pwarg
    argTypes:
    - SECItem*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 129
    functionName: GetCertRequest
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 0
    functionsReached:
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - SECU_PrintError
    - PORT_FreeArena
    - SEC_ASN1_GET
    - SEC_ASN1DecodeItem
    - PORT_Memset
    - GEN_BREAK
    - CERT_VerifySignedDataWithPublicKeyInfo
    linkageType: ''
    returnType: CERTCertificateRequest
    signature: 'CERTCertificateRequest *

      GetCertRequest(const SECItem *reqDER, void *pwarg)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CERT_DecodeCertFromPackage
      Src: /src/nss/cmd/certutil/certutil.c:141,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:143,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certutil.c:144,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/cmd/certutil/certutil.c:148,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:150,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certutil.c:151,1
    - Dst: CERT_DecodeTrustString
      Src: /src/nss/cmd/certutil/certutil.c:154,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:156,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certutil.c:157,1
    - Dst: PK11_ImportCert
      Src: /src/nss/cmd/certutil/certutil.c:160,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/certutil/certutil.c:164,1
    - Dst: PK11_Authenticate
      Src: /src/nss/cmd/certutil/certutil.c:165,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:167,1
    - Dst: PK11_GetTokenName
      Src: /src/nss/cmd/certutil/certutil.c:169,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certutil.c:170,1
    - Dst: PK11_ImportCert
      Src: /src/nss/cmd/certutil/certutil.c:172,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:176,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certutil.c:178,1
    - Dst: ChangeCertTrust
      Src: /src/nss/cmd/certutil/certutil.c:181,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:183,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certutil.c:185,1
    - Dst: CERT_SaveSMimeProfile
      Src: /src/nss/cmd/certutil/certutil.c:189,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/certutil/certutil.c:194,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/certutil/certutil.c:195,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 7
    argNames:
    - slot
    - handle
    - name
    - trusts
    - certDER
    - emailcert
    - pwdata
    argTypes:
    - PK11SlotInfo*
    - CERTCertDBHandle*
    - char*
    - char*
    - SECItem*
    - PRBool
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 198
    functionName: AddCert
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 0
    functionsReached:
    - CERT_DecodeCertFromPackage
    - PK11_ImportCert
    - SECU_PrintError
    - CERT_SaveSMimeProfile
    - PK11_GetTokenName
    - PORT_Free
    - PORT_ZAlloc
    - PORT_GetError
    - CERT_DecodeTrustString
    - CERT_DestroyCertificate
    - GEN_BREAK
    - ChangeCertTrust
    - PK11_Authenticate
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus AddCert(PK11SlotInfo *slot, CERTCertDBHandle *handle, char
      *name, char *trusts,\n        const SECItem *certDER, PRBool emailcert, void
      *pwdata)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/certutil/certutil.c:218,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:220,1
    - Dst: SECKEY_CreateSubjectPublicKeyInfo
      Src: /src/nss/cmd/certutil/certutil.c:225,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/certutil/certutil.c:227,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:228,1
    - Dst: SEC_CreateSignatureAlgorithmParameters
      Src: /src/nss/cmd/certutil/certutil.c:234,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/certutil/certutil.c:241,1
    - Dst: SECKEY_DestroySubjectPublicKeyInfo
      Src: /src/nss/cmd/certutil/certutil.c:242,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:243,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/cmd/certutil/certutil.c:248,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/certutil/certutil.c:252,1
    - Dst: SECKEY_DestroySubjectPublicKeyInfo
      Src: /src/nss/cmd/certutil/certutil.c:253,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:254,1
    - Dst: CERT_CreateCertificateRequest
      Src: /src/nss/cmd/certutil/certutil.c:260,1
    - Dst: SECKEY_DestroySubjectPublicKeyInfo
      Src: /src/nss/cmd/certutil/certutil.c:261,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/certutil/certutil.c:263,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:264,1
    - Dst: CERT_StartCertificateRequestAttributes
      Src: /src/nss/cmd/certutil/certutil.c:268,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/certutil/certutil.c:270,1
    - Dst: CERT_DestroyCertificateRequest
      Src: /src/nss/cmd/certutil/certutil.c:271,1
    - Dst: AddExtensions
      Src: /src/nss/cmd/certutil/certutil.c:274,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/certutil/certutil.c:276,1
    - Dst: CERT_FinishExtensions
      Src: /src/nss/cmd/certutil/certutil.c:277,1
    - Dst: CERT_DestroyCertificateRequest
      Src: /src/nss/cmd/certutil/certutil.c:278,1
    - Dst: CERT_FinishExtensions
      Src: /src/nss/cmd/certutil/certutil.c:281,1
    - Dst: CERT_FinishCertificateRequestAttributes
      Src: /src/nss/cmd/certutil/certutil.c:282,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/cmd/certutil/certutil.c:285,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/cmd/certutil/certutil.c:286,1
    - Dst: CERT_DestroyCertificateRequest
      Src: /src/nss/cmd/certutil/certutil.c:287,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/certutil/certutil.c:289,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:290,1
    - Dst: PORT_Memset
      Src: /src/nss/cmd/certutil/certutil.c:294,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/cmd/certutil/certutil.c:296,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/certutil/certutil.c:299,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:300,1
    - Dst: SEC_GetSignatureAlgorithmOidTag
      Src: /src/nss/cmd/certutil/certutil.c:304,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/certutil/certutil.c:306,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:307,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/cmd/certutil/certutil.c:310,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/certutil/certutil.c:312,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:313,1
    - Dst: SEC_DerSignDataWithAlgorithmID
      Src: /src/nss/cmd/certutil/certutil.c:319,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/certutil/certutil.c:323,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:324,1
    - Dst: BTOA_ConvertItemToAscii
      Src: /src/nss/cmd/certutil/certutil.c:333,1
    - Dst: CERT_GetCommonName
      Src: /src/nss/cmd/certutil/certutil.c:338,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/certutil/certutil.c:340,1
    - Dst: CERT_GetCertEmailAddress
      Src: /src/nss/cmd/certutil/certutil.c:346,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/certutil/certutil.c:348,1
    - Dst: CERT_GetOrgName
      Src: /src/nss/cmd/certutil/certutil.c:350,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/certutil/certutil.c:352,1
    - Dst: CERT_GetStateName
      Src: /src/nss/cmd/certutil/certutil.c:354,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/certutil/certutil.c:356,1
    - Dst: CERT_GetCountryName
      Src: /src/nss/cmd/certutil/certutil.c:358,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/certutil/certutil.c:360,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/certutil/certutil.c:362,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/certutil/certutil.c:373,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/certutil/certutil.c:374,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/certutil/certutil.c:375,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/certutil/certutil.c:376,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/certutil/certutil.c:377,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/certutil/certutil.c:380,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/certutil/certutil.c:382,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/certutil/certutil.c:383,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/certutil/certutil.c:384,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/certutil/certutil.c:385,1
    - Dst: PORT_Memcpy
      Src: /src/nss/cmd/certutil/certutil.c:388,1
    - Dst: PORT_Memcpy
      Src: /src/nss/cmd/certutil/certutil.c:389,1
    - Dst: PORT_Memcpy
      Src: /src/nss/cmd/certutil/certutil.c:390,1
    - Dst: PR_smprintf_free
      Src: /src/nss/cmd/certutil/certutil.c:393,1
    - Dst: PR_smprintf_free
      Src: /src/nss/cmd/certutil/certutil.c:395,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/certutil/certutil.c:397,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/cmd/certutil/certutil.c:399,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:404,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/certutil/certutil.c:405,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/certutil/certutil.c:409,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 140
    argCount: 13
    argNames:
    - privk
    - pubk
    - keyType
    - hashAlgTag
    - subject
    - phone
    - ascii
    - emailAddrs
    - dnsNames
    - extnList
    - extGeneric
    - pssCertificate
    - result
    argTypes:
    - SECKEYPrivateKey*
    - SECKEYPublicKey*
    - KeyType
    - SECOidTag
    - CERTName*
    - char*
    - int
    - char*
    - char*
    - certutilExtnList
    - char*
    - PRBool
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 411
    functionName: CertReq
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 0
    functionsReached:
    - CERT_StartCertificateRequestAttributes
    - PL_strlen
    - SEC_GetSignatureAlgorithmOidTag
    - CERT_GetCountryName
    - CERT_GetCommonName
    - CERT_FinishCertificateRequestAttributes
    - SECKEY_CreateSubjectPublicKeyInfo
    - SEC_CreateSignatureAlgorithmParameters
    - AddExtensions
    - SEC_ASN1EncodeItem
    - PORT_NewArena
    - PORT_Memcpy
    - SEC_DerSignDataWithAlgorithmID
    - SECOID_SetAlgorithmID
    - PORT_SetError
    - PR_smprintf_free
    - PR_smprintf
    - CERT_GetCertEmailAddress
    - SECU_PrintError
    - SECKEY_DestroySubjectPublicKeyInfo
    - PORT_FreeArena
    - SECITEM_AllocItem
    - CERT_CreateCertificateRequest
    - CERT_GetOrgName
    - CERT_DestroyCertificateRequest
    - BTOA_ConvertItemToAscii
    - PORT_Free
    - SECITEM_CopyItem
    - PORT_Memset
    - SEC_ASN1_GET
    - PORT_Strdup
    - CERT_FinishExtensions
    - CERT_GetStateName
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CertReq(SECKEYPrivateKey *privk, SECKEYPublicKey *pubk,
      KeyType keyType,\n        SECOidTag hashAlgTag, CERTName *subject, const char
      *phone, int ascii,\n        const char *emailAddrs, const char *dnsNames,\n
      \       certutilExtnList extnList, const char *extGeneric,\n        PRBool pssCertificate,
      /*out*/ SECItem *result)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CERT_FindCertByNicknameOrEmailAddrCX
      Src: /src/nss/cmd/certutil/certutil.c:421,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:423,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/cmd/certutil/certutil.c:428,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:430,1
    - Dst: CERT_DecodeTrustString
      Src: /src/nss/cmd/certutil/certutil.c:435,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:437,1
    - Dst: ChangeCertTrust
      Src: /src/nss/cmd/certutil/certutil.c:445,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:447,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/certutil/certutil.c:450,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/certutil/certutil.c:451,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 5
    argNames:
    - handle
    - slot
    - name
    - trusts
    - pwdata
    argTypes:
    - CERTCertDBHandle*
    - PK11SlotInfo*
    - char*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 413
    functionDepth: 2
    functionLinenumber: 413
    functionLinenumberEnd: 454
    functionName: ChangeTrustAttributes
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 0
    functionsReached:
    - SECU_PrintError
    - PORT_Free
    - PORT_ZAlloc
    - CERT_DecodeTrustString
    - CERT_FindCertByNicknameOrEmailAddrCX
    - CERT_DestroyCertificate
    - ChangeCertTrust
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ChangeTrustAttributes(CERTCertDBHandle *handle, PK11SlotInfo
      *slot,\n                      char *name, char *trusts, void *pwdata)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SECU_FindCertByNicknameOrFilename
      Src: /src/nss/cmd/certutil/certutil.c:463,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:466,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/cmd/certutil/certutil.c:470,1
    - Dst: printf
      Src: /src/nss/cmd/certutil/certutil.c:472,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/certutil/certutil.c:473,1
    - Dst: CERT_CertChainFromCert
      Src: /src/nss/cmd/certutil/certutil.c:477,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/certutil/certutil.c:478,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:480,1
    - Dst: CERT_FindCertByDERCert
      Src: /src/nss/cmd/certutil/certutil.c:485,1
    - Dst: printf
      Src: /src/nss/cmd/certutil/certutil.c:487,1
    - Dst: printf
      Src: /src/nss/cmd/certutil/certutil.c:490,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/certutil/certutil.c:491,1
    - Dst: printf
      Src: /src/nss/cmd/certutil/certutil.c:493,1
    - Dst: CERT_DestroyCertificateList
      Src: /src/nss/cmd/certutil/certutil.c:496,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 4
    argNames:
    - handle
    - name
    - ascii
    - simpleSelfSigned
    argTypes:
    - CERTCertDBHandle*
    - char*
    - PRBool
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 498
    functionName: DumpChain
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 0
    functionsReached:
    - SECITEM_CompareItem
    - SECU_FindCertByNicknameOrFilename
    - SECU_PrintError
    - printf
    - CERT_DestroyCertificateList
    - CERT_DestroyCertificate
    - CERT_CertChainFromCert
    - CERT_FindCertByDERCert
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus DumpChain(CERTCertDBHandle *handle, char *name, PRBool ascii,\n
      \         PRBool simpleSelfSigned)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_CompareItem
      Src: /src/nss/cmd/certutil/certutil.c:512,1
    - Dst: PR_Write
      Src: /src/nss/cmd/certutil/certutil.c:514,1
    - Dst: SECU_PrintSystemError
      Src: /src/nss/cmd/certutil/certutil.c:518,1
    - Dst: SECU_PrintSystemError
      Src: /src/nss/cmd/certutil/certutil.c:525,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/certutil/certutil.c:532,1
    - Dst: BTOA_DataToAscii
      Src: /src/nss/cmd/certutil/certutil.c:533,1
    - Dst: PR_Write
      Src: /src/nss/cmd/certutil/certutil.c:536,1
    - Dst: SECU_PrintSystemError
      Src: /src/nss/cmd/certutil/certutil.c:539,1
    - Dst: SEC_PrintCertificateAndTrust
      Src: /src/nss/cmd/certutil/certutil.c:543,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:545,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 5
    argNames:
    - the_cert
    - raw
    - ascii
    - extensionOID
    - outfile
    argTypes:
    - CERTCertificate*
    - PRBool
    - PRBool
    - SECItem*
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 500
    functionDepth: 1
    functionLinenumber: 500
    functionLinenumberEnd: 550
    functionName: outputCertOrExtension
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 0
    functionsReached:
    - SECITEM_CompareItem
    - SECU_PrintError
    - SEC_PrintCertificateAndTrust
    - BTOA_DataToAscii
    - PR_fprintf
    - PR_Write
    - SECU_PrintSystemError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus outputCertOrExtension(CERTCertificate *the_cert, PRBool
      raw, PRBool ascii,\n                      SECItem *extensionOID, PRFileDesc
      *outfile)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PK11_IsFriendly
      Src: /src/nss/cmd/certutil/certutil.c:563,1
    - Dst: PK11_NeedLogin
      Src: /src/nss/cmd/certutil/certutil.c:563,1
    - Dst: PK11_Authenticate
      Src: /src/nss/cmd/certutil/certutil.c:564,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:566,1
    - Dst: PK11_GetTokenName
      Src: /src/nss/cmd/certutil/certutil.c:567,1
    - Dst: SECU_FindCertByNicknameOrFilename
      Src: /src/nss/cmd/certutil/certutil.c:573,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:575,1
    - Dst: CERT_CreateSubjectCertList
      Src: /src/nss/cmd/certutil/certutil.c:584,1
    - Dst: PR_Now
      Src: /src/nss/cmd/certutil/certutil.c:585,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/certutil/certutil.c:586,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/certutil/certutil.c:588,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:589,1
    - Dst: CERT_LIST_HEAD
      Src: /src/nss/cmd/certutil/certutil.c:592,1
    - Dst: CERT_LIST_END
      Src: /src/nss/cmd/certutil/certutil.c:592,1
    - Dst: CERT_LIST_NEXT
      Src: /src/nss/cmd/certutil/certutil.c:593,1
    - Dst: outputCertOrExtension
      Src: /src/nss/cmd/certutil/certutil.c:594,1
    - Dst: PK11_FindCertsFromEmailAddress
      Src: /src/nss/cmd/certutil/certutil.c:601,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:603,1
    - Dst: CERT_LIST_HEAD
      Src: /src/nss/cmd/certutil/certutil.c:608,1
    - Dst: CERT_LIST_END
      Src: /src/nss/cmd/certutil/certutil.c:608,1
    - Dst: CERT_LIST_NEXT
      Src: /src/nss/cmd/certutil/certutil.c:609,1
    - Dst: outputCertOrExtension
      Src: /src/nss/cmd/certutil/certutil.c:610,1
    - Dst: PK11_ListCertsInSlot
      Src: /src/nss/cmd/certutil/certutil.c:617,1
    - Dst: CERT_LIST_HEAD
      Src: /src/nss/cmd/certutil/certutil.c:619,1
    - Dst: CERT_LIST_END
      Src: /src/nss/cmd/certutil/certutil.c:619,1
    - Dst: CERT_LIST_NEXT
      Src: /src/nss/cmd/certutil/certutil.c:620,1
    - Dst: SECU_PrintCertNickname
      Src: /src/nss/cmd/certutil/certutil.c:621,1
    - Dst: CERT_DestroyCertList
      Src: /src/nss/cmd/certutil/certutil.c:627,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:630,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 55
    argCount: 9
    argNames:
    - handle
    - name
    - email
    - slot
    - raw
    - ascii
    - extensionOID
    - outfile
    - pwarg
    argTypes:
    - CERTCertDBHandle*
    - char*
    - char*
    - PK11SlotInfo*
    - PRBool
    - PRBool
    - SECItem*
    - PRFileDesc*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 552
    functionDepth: 2
    functionLinenumber: 552
    functionLinenumberEnd: 635
    functionName: listCerts
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 0
    functionsReached:
    - CERT_LIST_NEXT
    - CERT_LIST_HEAD
    - PK11_ListCertsInSlot
    - PK11_IsFriendly
    - SECU_PrintError
    - SECU_FindCertByNicknameOrFilename
    - PK11_GetTokenName
    - outputCertOrExtension
    - PK11_FindCertsFromEmailAddress
    - CERT_CreateSubjectCertList
    - PR_Now
    - SECU_PrintCertNickname
    - PORT_SetError
    - CERT_LIST_END
    - PK11_NeedLogin
    - CERT_DestroyCertificate
    - CERT_DestroyCertList
    - PK11_Authenticate
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus listCerts(CERTCertDBHandle *handle, char *name, char *email,\n
      \         PK11SlotInfo *slot, PRBool raw, PRBool ascii,\n          SECItem *extensionOID,\n
      \         PRFileDesc *outfile, void *pwarg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PK11_NeedUserInit
      Src: /src/nss/cmd/certutil/certutil.c:645,1
    - Dst: printf
      Src: /src/nss/cmd/certutil/certutil.c:646,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/certutil/certutil.c:650,1
    - Dst: PK11_ListCerts
      Src: /src/nss/cmd/certutil/certutil.c:658,1
    - Dst: CERT_LIST_HEAD
      Src: /src/nss/cmd/certutil/certutil.c:659,1
    - Dst: CERT_LIST_END
      Src: /src/nss/cmd/certutil/certutil.c:659,1
    - Dst: CERT_LIST_NEXT
      Src: /src/nss/cmd/certutil/certutil.c:660,1
    - Dst: SECU_PrintCertNickname
      Src: /src/nss/cmd/certutil/certutil.c:661,1
    - Dst: CERT_DestroyCertList
      Src: /src/nss/cmd/certutil/certutil.c:663,1
    - Dst: listCerts
      Src: /src/nss/cmd/certutil/certutil.c:666,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 9
    argNames:
    - handle
    - nickname
    - email
    - slot
    - raw
    - ascii
    - extensionOID
    - outfile
    - pwdata
    argTypes:
    - CERTCertDBHandle*
    - char*
    - char*
    - PK11SlotInfo*
    - PRBool
    - PRBool
    - SECItem*
    - PRFileDesc*
    - secuPWData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 637
    functionDepth: 3
    functionLinenumber: 637
    functionLinenumberEnd: 669
    functionName: ListCerts
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 1
    functionsReached:
    - CERT_LIST_NEXT
    - listCerts
    - CERT_LIST_HEAD
    - PR_fprintf
    - PK11_NeedUserInit
    - printf
    - SECU_PrintCertNickname
    - CERT_LIST_END
    - PK11_ListCerts
    - CERT_DestroyCertList
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ListCerts(CERTCertDBHandle *handle, char *nickname, char
      *email,\n          PK11SlotInfo *slot, PRBool raw, PRBool ascii,\n          SECItem
      *extensionOID,\n          PRFileDesc *outfile, secuPWData *pwdata)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CERT_FindCertByNicknameOrEmailAddrCX
      Src: /src/nss/cmd/certutil/certutil.c:677,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:679,1
    - Dst: SEC_DeletePermCertificate
      Src: /src/nss/cmd/certutil/certutil.c:684,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/certutil/certutil.c:685,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:687,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - handle
    - name
    - pwdata
    argTypes:
    - CERTCertDBHandle*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 671
    functionDepth: 1
    functionLinenumber: 671
    functionLinenumberEnd: 690
    functionName: DeleteCert
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 0
    functionsReached:
    - CERT_FindCertByNicknameOrEmailAddrCX
    - CERT_DestroyCertificate
    - SECU_PrintError
    - SEC_DeletePermCertificate
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus DeleteCert(CERTCertDBHandle *handle, char *name, void *pwdata)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CERT_FindCertByNicknameOrEmailAddrCX
      Src: /src/nss/cmd/certutil/certutil.c:698,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:700,1
    - Dst: __PK11_SetCertificateNickname
      Src: /src/nss/cmd/certutil/certutil.c:705,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/certutil/certutil.c:706,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:708,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - handle
    - name
    - newName
    - pwdata
    argTypes:
    - CERTCertDBHandle*
    - char*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 692
    functionDepth: 1
    functionLinenumber: 692
    functionLinenumberEnd: 711
    functionName: RenameCert
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 0
    functionsReached:
    - CERT_FindCertByNicknameOrEmailAddrCX
    - __PK11_SetCertificateNickname
    - CERT_DestroyCertificate
    - SECU_PrintError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus RenameCert(CERTCertDBHandle *handle, char *name, char *newName,
      void *pwdata)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/cmd/certutil/certutil.c:726,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/certutil/certutil.c:762,1
    - Dst: SECU_FindCertByNicknameOrFilename
      Src: /src/nss/cmd/certutil/certutil.c:766,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:769,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certutil.c:771,1
    - Dst: DER_AsciiToTime
      Src: /src/nss/cmd/certutil/certutil.c:775,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:777,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certutil.c:778,1
    - Dst: PR_Now
      Src: /src/nss/cmd/certutil/certutil.c:781,1
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/certutil/certutil.c:790,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:792,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certutil.c:793,1
    - Dst: CERT_VerifyCertificate
      Src: /src/nss/cmd/certutil/certutil.c:797,1
    - Dst: fprintf
      Src: /src/nss/cmd/certutil/certutil.c:801,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certutil.c:802,1
    - Dst: fprintf
      Src: /src/nss/cmd/certutil/certutil.c:814,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/certutil/certutil.c:815,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/certutil/certutil.c:816,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/certutil/certutil.c:822,1
    - Dst: fprintf
      Src: /src/nss/cmd/certutil/certutil.c:823,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/certutil/certutil.c:824,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certutil.c:825,1
    - Dst: fprintf
      Src: /src/nss/cmd/certutil/certutil.c:827,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certutil.c:828,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/certutil/certutil.c:833,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 97
    argCount: 8
    argNames:
    - handle
    - name
    - date
    - certUsage
    - checkSig
    - logit
    - ascii
    - pwdata
    argTypes:
    - CERTCertDBHandle*
    - char*
    - char*
    - char*
    - PRBool
    - PRBool
    - PRBool
    - secuPWData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 713
    functionDepth: 1
    functionLinenumber: 713
    functionLinenumberEnd: 837
    functionName: ValidateCert
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 0
    functionsReached:
    - SECU_FindCertByNicknameOrFilename
    - SECU_PrintError
    - PORT_NewArena
    - SECU_Strerror
    - PORT_GetError
    - PR_Now
    - fprintf
    - PORT_SetError
    - DER_AsciiToTime
    - CERT_DestroyCertificate
    - GEN_BREAK
    - CERT_VerifyCertificate
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ValidateCert(CERTCertDBHandle *handle, char *name, char
      *date,\n             char *certUsage, PRBool checkSig, PRBool logit,\n             PRBool
      ascii, secuPWData *pwdata)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - item
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 839
    functionDepth: 0
    functionLinenumber: 839
    functionLinenumberEnd: 850
    functionName: ItemIsPrintableASCII
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool ItemIsPrintableASCII(const SECItem *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/nss/cmd/certutil/certutil.c:860,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - item
    - dst
    argTypes:
    - SECItem*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 853
    functionDepth: 1
    functionLinenumber: 853
    functionLinenumberEnd: 864
    functionName: SECItemToHex
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 0
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: void
    signature: void SECItemToHex(const SECItem *item, char *dst)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetLowLevelKeyIDForPrivateKey
      Src: /src/nss/cmd/certutil/certutil.c:880,1
    - Dst: strcpy
      Src: /src/nss/cmd/certutil/certutil.c:882,1
    - Dst: ItemIsPrintableASCII
      Src: /src/nss/cmd/certutil/certutil.c:883,1
    - Dst: PR_MIN
      Src: /src/nss/cmd/certutil/certutil.c:884,1
    - Dst: memcpy
      Src: /src/nss/cmd/certutil/certutil.c:886,1
    - Dst: SECItemToHex
      Src: /src/nss/cmd/certutil/certutil.c:894,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/cmd/certutil/certutil.c:896,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - privkey
    - buffer
    argTypes:
    - SECKEYPrivateKey*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 897
      start: 875
    functionDepth: 2
    functionLinenumber: 875
    functionLinenumberEnd: 897
    functionName: formatPrivateKeyID
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PR_MIN
    - ItemIsPrintableASCII
    - strcpy
    - SECItemToHex
    - PK11_GetLowLevelKeyIDForPrivateKey
    - SECITEM_ZfreeItem
    linkageType: ''
    returnType: void
    signature: void formatPrivateKeyID(SECKEYPrivateKey *privkey, char *buffer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: formatPrivateKeyID
      Src: /src/nss/cmd/certutil/certutil.c:908,1
    - Dst: PK11_GetCertFromPrivateKey
      Src: /src/nss/cmd/certutil/certutil.c:909,1
    - Dst: CERT_GetCertKeyType
      Src: /src/nss/cmd/certutil/certutil.c:911,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/certutil/certutil.c:912,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/certutil/certutil.c:916,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - out
    - nickName
    - count
    - key
    - pwarg
    argTypes:
    - PRFileDesc*
    - char*
    - int
    - SECKEYPrivateKey*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 900
    functionDepth: 3
    functionLinenumber: 900
    functionLinenumberEnd: 920
    functionName: PrintKey
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 0
    functionsReached:
    - PR_fprintf
    - CERT_GetCertKeyType
    - PK11_GetCertFromPrivateKey
    - CERT_DestroyCertificate
    - formatPrivateKeyID
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PrintKey(PRFileDesc *out, const char *nickName, int count,\n
      \        SECKEYPrivateKey *key, void *pwarg)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PK11_NeedLogin
      Src: /src/nss/cmd/certutil/certutil.c:931,1
    - Dst: PK11_Authenticate
      Src: /src/nss/cmd/certutil/certutil.c:932,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:934,1
    - Dst: PK11_GetTokenName
      Src: /src/nss/cmd/certutil/certutil.c:935,1
    - Dst: PK11_ListPrivKeysInSlot
      Src: /src/nss/cmd/certutil/certutil.c:941,1
    - Dst: PK11_ListPrivateKeysInSlot
      Src: /src/nss/cmd/certutil/certutil.c:943,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:945,1
    - Dst: PRIVKEY_LIST_HEAD
      Src: /src/nss/cmd/certutil/certutil.c:948,1
    - Dst: PRIVKEY_LIST_END
      Src: /src/nss/cmd/certutil/certutil.c:949,1
    - Dst: PRIVKEY_LIST_NEXT
      Src: /src/nss/cmd/certutil/certutil.c:950,1
    - Dst: PK11_GetPrivateKeyNickname
      Src: /src/nss/cmd/certutil/certutil.c:956,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/certutil/certutil.c:960,1
    - Dst: PK11_GetCertFromPrivateKey
      Src: /src/nss/cmd/certutil/certutil.c:962,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/certutil/certutil.c:965,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/certutil/certutil.c:967,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/certutil/certutil.c:969,1
    - Dst: PL_strcmp
      Src: /src/nss/cmd/certutil/certutil.c:973,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/certutil/certutil.c:975,1
    - Dst: PrintKey
      Src: /src/nss/cmd/certutil/certutil.c:982,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/certutil/certutil.c:985,1
    - Dst: SECKEY_DestroyPrivateKeyList
      Src: /src/nss/cmd/certutil/certutil.c:988,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/certutil/certutil.c:991,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 51
    argCount: 4
    argNames:
    - slot
    - nickName
    - keyType
    - pwarg
    argTypes:
    - PK11SlotInfo*
    - char*
    - KeyType
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 995
      start: 923
    functionDepth: 1
    functionLinenumber: 923
    functionLinenumberEnd: 995
    functionName: ListKeysInSlot
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 0
    functionsReached:
    - SECU_PrintError
    - PK11_GetTokenName
    - PORT_Free
    - PR_fprintf
    - PRIVKEY_LIST_HEAD
    - PRIVKEY_LIST_NEXT
    - PORT_Strdup
    - PK11_GetCertFromPrivateKey
    - PrintKey
    - PK11_NeedLogin
    - CERT_DestroyCertificate
    - PL_strcmp
    - PK11_ListPrivateKeysInSlot
    - PK11_GetPrivateKeyNickname
    - SECKEY_DestroyPrivateKeyList
    - PRIVKEY_LIST_END
    - PK11_ListPrivKeysInSlot
    - PK11_Authenticate
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ListKeysInSlot(PK11SlotInfo *slot, const char *nickName,
      KeyType keyType,\n               void *pwarg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetAllTokens
      Src: /src/nss/cmd/certutil/certutil.c:1010,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/certutil/certutil.c:1013,1
    - Dst: PK11_GetTokenName
      Src: /src/nss/cmd/certutil/certutil.c:1014,1
    - Dst: PK11_GetSlotName
      Src: /src/nss/cmd/certutil/certutil.c:1015,1
    - Dst: ListKeysInSlot
      Src: /src/nss/cmd/certutil/certutil.c:1016,1
    - Dst: PK11_FreeSlotList
      Src: /src/nss/cmd/certutil/certutil.c:1018,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/certutil/certutil.c:1021,1
    - Dst: PK11_GetTokenName
      Src: /src/nss/cmd/certutil/certutil.c:1021,1
    - Dst: PK11_GetSlotName
      Src: /src/nss/cmd/certutil/certutil.c:1022,1
    - Dst: ListKeysInSlot
      Src: /src/nss/cmd/certutil/certutil.c:1023,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 6
    argNames:
    - slot
    - nickName
    - index
    - keyType
    - dopriv
    - pwdata
    argTypes:
    - PK11SlotInfo*
    - char*
    - int
    - KeyType
    - PRBool
    - secuPWData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 998
    functionDepth: 2
    functionLinenumber: 998
    functionLinenumberEnd: 1026
    functionName: ListKeys
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 0
    functionsReached:
    - PK11_FreeSlotList
    - PK11_GetAllTokens
    - PK11_GetTokenName
    - PK11_GetSlotName
    - PR_fprintf
    - ListKeysInSlot
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ListKeys(PK11SlotInfo *slot, const char *nickName, int index,\n
      \        KeyType keyType, PRBool dopriv, secuPWData *pwdata)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetInternalKeySlot
      Src: /src/nss/cmd/certutil/certutil.c:1035,1
    - Dst: PK11_NeedLogin
      Src: /src/nss/cmd/certutil/certutil.c:1036,1
    - Dst: PK11_Authenticate
      Src: /src/nss/cmd/certutil/certutil.c:1037,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:1039,1
    - Dst: PK11_GetTokenName
      Src: /src/nss/cmd/certutil/certutil.c:1040,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/cmd/certutil/certutil.c:1041,1
    - Dst: PK11_FindCertFromNickname
      Src: /src/nss/cmd/certutil/certutil.c:1045,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/cmd/certutil/certutil.c:1047,1
    - Dst: PK11_DeleteTokenCertAndKey
      Src: /src/nss/cmd/certutil/certutil.c:1050,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:1052,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/certutil/certutil.c:1054,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/cmd/certutil/certutil.c:1055,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - nickname
    - pwdata
    argTypes:
    - char*
    - secuPWData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1028
    functionDepth: 1
    functionLinenumber: 1028
    functionLinenumberEnd: 1057
    functionName: DeleteCertAndKey
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 0
    functionsReached:
    - PK11_GetInternalKeySlot
    - SECU_PrintError
    - PK11_GetTokenName
    - PK11_NeedLogin
    - PK11_DeleteTokenCertAndKey
    - CERT_DestroyCertificate
    - PK11_FindCertFromNickname
    - PK11_FreeSlot
    - PK11_Authenticate
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus DeleteCertAndKey(char *nickname, secuPWData *pwdata)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PK11_NeedLogin
      Src: /src/nss/cmd/certutil/certutil.c:1067,1
    - Dst: PK11_Authenticate
      Src: /src/nss/cmd/certutil/certutil.c:1068,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:1070,1
    - Dst: PK11_GetTokenName
      Src: /src/nss/cmd/certutil/certutil.c:1071,1
    - Dst: PL_strncasecmp
      Src: /src/nss/cmd/certutil/certutil.c:1076,1
    - Dst: PORT_InitCheapArena
      Src: /src/nss/cmd/certutil/certutil.c:1079,1
    - Dst: SECU_HexString2SECItem
      Src: /src/nss/cmd/certutil/certutil.c:1080,1
    - Dst: PK11_FindKeyByKeyID
      Src: /src/nss/cmd/certutil/certutil.c:1081,1
    - Dst: PORT_DestroyCheapArena
      Src: /src/nss/cmd/certutil/certutil.c:1083,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - slot
    - ckaID
    - pwarg
    argTypes:
    - PK11SlotInfo*
    - char*
    - secuPWData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1059
    functionDepth: 1
    functionLinenumber: 1059
    functionLinenumberEnd: 1085
    functionName: findPrivateKeyByID
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 0
    functionsReached:
    - SECU_HexString2SECItem
    - SECU_PrintError
    - PK11_GetTokenName
    - PL_strncasecmp
    - PK11_FindKeyByKeyID
    - PK11_NeedLogin
    - PORT_InitCheapArena
    - PORT_DestroyCheapArena
    - PK11_Authenticate
    linkageType: ''
    returnType: SECKEYPrivateKey
    signature: 'SECKEYPrivateKey *

      findPrivateKeyByID(PK11SlotInfo *slot, const char *ckaID, secuPWData *pwarg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetSlotFromPrivateKey
      Src: /src/nss/cmd/certutil/certutil.c:1093,1
    - Dst: PK11_NeedLogin
      Src: /src/nss/cmd/certutil/certutil.c:1094,1
    - Dst: PK11_Authenticate
      Src: /src/nss/cmd/certutil/certutil.c:1095,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:1097,1
    - Dst: PK11_GetTokenName
      Src: /src/nss/cmd/certutil/certutil.c:1098,1
    - Dst: PK11_DeleteTokenPrivateKey
      Src: /src/nss/cmd/certutil/certutil.c:1103,1
    - Dst: formatPrivateKeyID
      Src: /src/nss/cmd/certutil/certutil.c:1106,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:1107,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/cmd/certutil/certutil.c:1110,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - privkey
    - pwarg
    argTypes:
    - SECKEYPrivateKey*
    - secuPWData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1112
      start: 1087
    functionDepth: 3
    functionLinenumber: 1087
    functionLinenumberEnd: 1112
    functionName: DeleteKey
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 0
    functionsReached:
    - PK11_FreeSlot
    - PK11_DeleteTokenPrivateKey
    - SECU_PrintError
    - PK11_GetTokenName
    - PK11_NeedLogin
    - PK11_GetSlotFromPrivateKey
    - formatPrivateKeyID
    - PK11_Authenticate
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus DeleteKey(SECKEYPrivateKey *privkey, secuPWData *pwarg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetAllTokens
      Src: /src/nss/cmd/certutil/certutil.c:1129,1
    - Dst: PK11_GetTokenURI
      Src: /src/nss/cmd/certutil/certutil.c:1135,1
    - Dst: printf
      Src: /src/nss/cmd/certutil/certutil.c:1136,1
    - Dst: printf
      Src: /src/nss/cmd/certutil/certutil.c:1137,1
    - Dst: PK11_GetSlotName
      Src: /src/nss/cmd/certutil/certutil.c:1137,1
    - Dst: printf
      Src: /src/nss/cmd/certutil/certutil.c:1138,1
    - Dst: PK11_GetTokenName
      Src: /src/nss/cmd/certutil/certutil.c:1138,1
    - Dst: printf
      Src: /src/nss/cmd/certutil/certutil.c:1139,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/certutil/certutil.c:1140,1
    - Dst: PK11_FreeSlotList
      Src: /src/nss/cmd/certutil/certutil.c:1142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1145
      start: 1122
    functionDepth: 1
    functionLinenumber: 1122
    functionLinenumberEnd: 1145
    functionName: ListModules
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 0
    functionsReached:
    - PK11_FreeSlotList
    - PK11_GetAllTokens
    - PK11_GetTokenName
    - PK11_GetSlotName
    - PORT_Free
    - printf
    - PK11_GetTokenURI
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ListModules(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_fprintf
      Src: /src/nss/cmd/certutil/certutil.c:1151,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/certutil/certutil.c:1154,1
    - Dst: exit
      Src: /src/nss/cmd/certutil/certutil.c:1156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1157
      start: 1147
    functionDepth: 1
    functionLinenumber: 1147
    functionLinenumberEnd: 1157
    functionName: PrintBuildFlags
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 0
    functionsReached:
    - PR_fprintf
    - exit
    linkageType: ''
    returnType: void
    signature: void PrintBuildFlags()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exit
      Src: /src/nss/cmd/certutil/certutil.c:1233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1234
      start: 1159
    functionDepth: 0
    functionLinenumber: 1159
    functionLinenumberEnd: 1234
    functionName: PrintSyntax
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 0
    functionsReached:
    - exit
    linkageType: ''
    returnType: void
    signature: void PrintSyntax()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nss/cmd/certutil/certutil.c:1246,1
    - Dst: luCommonDetailsAE
      Src: /src/nss/cmd/certutil/certutil.c:1255,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 2
    argNames:
    - ul
    - command
    argTypes:
    - enum usage_level
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1257
      start: 1243
    functionDepth: 1
    functionLinenumber: 1243
    functionLinenumberEnd: 1257
    functionName: luA
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 0
    functionsReached:
    - strcmp
    - luCommonDetailsAE
    linkageType: ''
    returnType: void
    signature: void luA(enum usage_level ul, const char *command)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nss/cmd/certutil/certutil.c:1262,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 2
    argNames:
    - ul
    - command
    argTypes:
    - enum usage_level
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1268
      start: 1259
    functionDepth: 0
    functionLinenumber: 1259
    functionLinenumberEnd: 1268
    functionName: luB
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: void
    signature: void luB(enum usage_level ul, const char *command)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nss/cmd/certutil/certutil.c:1273,1
    - Dst: luCommonDetailsAE
      Src: /src/nss/cmd/certutil/certutil.c:1279,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 2
    argNames:
    - ul
    - command
    argTypes:
    - enum usage_level
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1280
      start: 1270
    functionDepth: 1
    functionLinenumber: 1270
    functionLinenumberEnd: 1280
    functionName: luE
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 0
    functionsReached:
    - strcmp
    - luCommonDetailsAE
    linkageType: ''
    returnType: void
    signature: void luE(enum usage_level ul, const char *command)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1310
      start: 1282
    functionDepth: 0
    functionLinenumber: 1282
    functionLinenumberEnd: 1310
    functionName: luCommonDetailsAE
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void luCommonDetailsAE()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nss/cmd/certutil/certutil.c:1315,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - ul
    - command
    argTypes:
    - enum usage_level
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1381
      start: 1312
    functionDepth: 0
    functionLinenumber: 1312
    functionLinenumberEnd: 1381
    functionName: luC
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: void
    signature: void luC(enum usage_level ul, const char *command)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nss/cmd/certutil/certutil.c:1386,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 45
    argCount: 2
    argNames:
    - ul
    - command
    argTypes:
    - enum usage_level
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1447
      start: 1383
    functionDepth: 0
    functionLinenumber: 1383
    functionLinenumberEnd: 1447
    functionName: luG
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: void
    signature: void luG(enum usage_level ul, const char *command)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nss/cmd/certutil/certutil.c:1452,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - ul
    - command
    argTypes:
    - enum usage_level
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1465
      start: 1449
    functionDepth: 0
    functionLinenumber: 1449
    functionLinenumberEnd: 1465
    functionName: luD
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: void
    signature: void luD(enum usage_level ul, const char *command)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nss/cmd/certutil/certutil.c:1470,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - ul
    - command
    argTypes:
    - enum usage_level
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1485
      start: 1467
    functionDepth: 0
    functionLinenumber: 1467
    functionLinenumberEnd: 1485
    functionName: luF
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: void
    signature: void luF(enum usage_level ul, const char *command)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nss/cmd/certutil/certutil.c:1490,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - ul
    - command
    argTypes:
    - enum usage_level
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1503
      start: 1487
    functionDepth: 0
    functionLinenumber: 1487
    functionLinenumberEnd: 1503
    functionName: luU
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: void
    signature: void luU(enum usage_level ul, const char *command)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nss/cmd/certutil/certutil.c:1508,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - ul
    - command
    argTypes:
    - enum usage_level
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1532
      start: 1505
    functionDepth: 0
    functionLinenumber: 1505
    functionLinenumberEnd: 1532
    functionName: luK
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: void
    signature: void luK(enum usage_level ul, const char *command)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nss/cmd/certutil/certutil.c:1537,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - ul
    - command
    argTypes:
    - enum usage_level
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1564
      start: 1534
    functionDepth: 0
    functionLinenumber: 1534
    functionLinenumberEnd: 1564
    functionName: luL
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: void
    signature: void luL(enum usage_level ul, const char *command)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nss/cmd/certutil/certutil.c:1569,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - ul
    - command
    argTypes:
    - enum usage_level
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1584
      start: 1566
    functionDepth: 0
    functionLinenumber: 1566
    functionLinenumberEnd: 1584
    functionName: luM
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: void
    signature: void luM(enum usage_level ul, const char *command)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nss/cmd/certutil/certutil.c:1589,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - ul
    - command
    argTypes:
    - enum usage_level
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1604
      start: 1586
    functionDepth: 0
    functionLinenumber: 1586
    functionLinenumberEnd: 1604
    functionName: luN
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: void
    signature: void luN(enum usage_level ul, const char *command)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nss/cmd/certutil/certutil.c:1609,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - ul
    - command
    argTypes:
    - enum usage_level
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1624
      start: 1606
    functionDepth: 0
    functionLinenumber: 1606
    functionLinenumberEnd: 1624
    functionName: luT
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: void
    signature: void luT(enum usage_level ul, const char *command)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nss/cmd/certutil/certutil.c:1629,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - ul
    - command
    argTypes:
    - enum usage_level
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1648
      start: 1626
    functionDepth: 0
    functionLinenumber: 1626
    functionLinenumberEnd: 1648
    functionName: luO
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: void
    signature: void luO(enum usage_level ul, const char *command)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nss/cmd/certutil/certutil.c:1653,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - ul
    - command
    argTypes:
    - enum usage_level
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1699
      start: 1650
    functionDepth: 0
    functionLinenumber: 1650
    functionLinenumberEnd: 1699
    functionName: luR
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: void
    signature: void luR(enum usage_level ul, const char *command)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nss/cmd/certutil/certutil.c:1704,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - ul
    - command
    argTypes:
    - enum usage_level
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1736
      start: 1701
    functionDepth: 0
    functionLinenumber: 1701
    functionLinenumberEnd: 1736
    functionName: luV
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: void
    signature: void luV(enum usage_level ul, const char *command)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nss/cmd/certutil/certutil.c:1741,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - ul
    - command
    argTypes:
    - enum usage_level
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1754
      start: 1738
    functionDepth: 0
    functionLinenumber: 1738
    functionLinenumberEnd: 1754
    functionName: luW
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: void
    signature: void luW(enum usage_level ul, const char *command)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nss/cmd/certutil/certutil.c:1759,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - ul
    - command
    argTypes:
    - enum usage_level
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1774
      start: 1756
    functionDepth: 0
    functionLinenumber: 1756
    functionLinenumberEnd: 1774
    functionName: luRename
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: void
    signature: void luRename(enum usage_level ul, const char *command)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nss/cmd/certutil/certutil.c:1779,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - ul
    - command
    argTypes:
    - enum usage_level
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1802
      start: 1776
    functionDepth: 0
    functionLinenumber: 1776
    functionLinenumberEnd: 1802
    functionName: luUpgradeMerge
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: void
    signature: void luUpgradeMerge(enum usage_level ul, const char *command)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nss/cmd/certutil/certutil.c:1807,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - ul
    - command
    argTypes:
    - enum usage_level
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1826
      start: 1804
    functionDepth: 0
    functionLinenumber: 1804
    functionLinenumberEnd: 1826
    functionName: luMerge
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: void
    signature: void luMerge(enum usage_level ul, const char *command)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nss/cmd/certutil/certutil.c:1831,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 51
    argCount: 2
    argNames:
    - ul
    - command
    argTypes:
    - enum usage_level
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1929
      start: 1828
    functionDepth: 0
    functionLinenumber: 1828
    functionLinenumberEnd: 1929
    functionName: luS
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: void
    signature: void luS(enum usage_level ul, const char *command)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nss/cmd/certutil/certutil.c:1934,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 2
    argNames:
    - ul
    - command
    argTypes:
    - enum usage_level
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1941
      start: 1931
    functionDepth: 0
    functionLinenumber: 1931
    functionLinenumberEnd: 1941
    functionName: luBuildFlags
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: void
    signature: void luBuildFlags(enum usage_level ul, const char *command)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: luA
      Src: /src/nss/cmd/certutil/certutil.c:1946,1
    - Dst: luB
      Src: /src/nss/cmd/certutil/certutil.c:1947,1
    - Dst: luE
      Src: /src/nss/cmd/certutil/certutil.c:1948,1
    - Dst: luC
      Src: /src/nss/cmd/certutil/certutil.c:1949,1
    - Dst: luG
      Src: /src/nss/cmd/certutil/certutil.c:1950,1
    - Dst: luD
      Src: /src/nss/cmd/certutil/certutil.c:1951,1
    - Dst: luRename
      Src: /src/nss/cmd/certutil/certutil.c:1952,1
    - Dst: luF
      Src: /src/nss/cmd/certutil/certutil.c:1953,1
    - Dst: luU
      Src: /src/nss/cmd/certutil/certutil.c:1954,1
    - Dst: luK
      Src: /src/nss/cmd/certutil/certutil.c:1955,1
    - Dst: luL
      Src: /src/nss/cmd/certutil/certutil.c:1956,1
    - Dst: luBuildFlags
      Src: /src/nss/cmd/certutil/certutil.c:1957,1
    - Dst: luM
      Src: /src/nss/cmd/certutil/certutil.c:1958,1
    - Dst: luN
      Src: /src/nss/cmd/certutil/certutil.c:1959,1
    - Dst: luT
      Src: /src/nss/cmd/certutil/certutil.c:1960,1
    - Dst: luO
      Src: /src/nss/cmd/certutil/certutil.c:1961,1
    - Dst: luR
      Src: /src/nss/cmd/certutil/certutil.c:1962,1
    - Dst: luV
      Src: /src/nss/cmd/certutil/certutil.c:1963,1
    - Dst: luW
      Src: /src/nss/cmd/certutil/certutil.c:1964,1
    - Dst: luUpgradeMerge
      Src: /src/nss/cmd/certutil/certutil.c:1965,1
    - Dst: luMerge
      Src: /src/nss/cmd/certutil/certutil.c:1966,1
    - Dst: luS
      Src: /src/nss/cmd/certutil/certutil.c:1967,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 2
    argNames:
    - ul
    - command
    argTypes:
    - enum usage_level
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1969
      start: 1943
    functionDepth: 2
    functionLinenumber: 1943
    functionLinenumberEnd: 1969
    functionName: LongUsage
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 0
    functionsReached:
    - luL
    - luG
    - luV
    - luUpgradeMerge
    - luD
    - luMerge
    - luK
    - luW
    - luM
    - luR
    - luBuildFlags
    - luA
    - luF
    - luRename
    - luU
    - luB
    - luT
    - luO
    - luS
    - luE
    - luC
    - luN
    linkageType: ''
    returnType: void
    signature: void LongUsage(enum usage_level ul, const char *command)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_fprintf
      Src: /src/nss/cmd/certutil/certutil.c:1974,1
    - Dst: LongUsage
      Src: /src/nss/cmd/certutil/certutil.c:1979,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/certutil/certutil.c:1980,1
    - Dst: exit
      Src: /src/nss/cmd/certutil/certutil.c:1985,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1986
      start: 1971
    functionDepth: 1
    functionLinenumber: 1971
    functionLinenumberEnd: 1986
    functionName: Usage
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 3
    functionsReached:
    - PR_fprintf
    - exit
    - LongUsage
    linkageType: ''
    returnType: void
    signature: void Usage()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CERT_FindCertByNicknameOrEmailAddr
      Src: /src/nss/cmd/certutil/certutil.c:2004,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:2006,1
    - Dst: PR_Now
      Src: /src/nss/cmd/certutil/certutil.c:2012,1
    - Dst: PR_ExplodeTime
      Src: /src/nss/cmd/certutil/certutil.c:2013,1
    - Dst: PR_ImplodeTime
      Src: /src/nss/cmd/certutil/certutil.c:2016,1
    - Dst: PR_ExplodeTime
      Src: /src/nss/cmd/certutil/certutil.c:2017,1
    - Dst: PR_ImplodeTime
      Src: /src/nss/cmd/certutil/certutil.c:2020,1
    - Dst: CERT_CreateValidity
      Src: /src/nss/cmd/certutil/certutil.c:2023,1
    - Dst: CERT_CreateCertificate
      Src: /src/nss/cmd/certutil/certutil.c:2025,1
    - Dst: CERT_DestroyValidity
      Src: /src/nss/cmd/certutil/certutil.c:2030,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/certutil/certutil.c:2033,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 7
    argNames:
    - handle
    - req
    - issuerNickName
    - selfsign
    - serialNumber
    - warpmonths
    - validityMonths
    argTypes:
    - CERTCertDBHandle*
    - CERTCertificateRequest*
    - char*
    - PRBool
    - unsigned int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2037
      start: 1988
    functionDepth: 1
    functionLinenumber: 1988
    functionLinenumberEnd: 2037
    functionName: MakeV1Cert
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 0
    functionsReached:
    - CERT_FindCertByNicknameOrEmailAddr
    - PR_ImplodeTime
    - SECU_PrintError
    - CERT_DestroyValidity
    - CERT_CreateCertificate
    - PR_Now
    - PR_ExplodeTime
    - CERT_DestroyCertificate
    - CERT_CreateValidity
    linkageType: ''
    returnType: CERTCertificate
    signature: "CERTCertificate *\nMakeV1Cert(CERTCertDBHandle *handle,\n           CERTCertificateRequest
      *req,\n           char *issuerNickName,\n           PRBool selfsign,\n           unsigned
      int serialNumber,\n           int warpmonths,\n           int validityMonths)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/cmd/certutil/certutil.c:2050,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/cmd/certutil/certutil.c:2054,1
    - Dst: SEC_CreateSignatureAlgorithmParameters
      Src: /src/nss/cmd/certutil/certutil.c:2062,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:2069,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/cmd/certutil/certutil.c:2072,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:2076,1
    - Dst: SECKEY_GetPrivateKeyType
      Src: /src/nss/cmd/certutil/certutil.c:2080,1
    - Dst: SEC_GetSignatureAlgorithmOidTag
      Src: /src/nss/cmd/certutil/certutil.c:2083,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:2085,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/cmd/certutil/certutil.c:2088,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:2090,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 6
    argNames:
    - arena
    - signAlg
    - spkiAlg
    - hashAlgTag
    - privKey
    - pssSign
    argTypes:
    - PLArenaPool*
    - SECAlgorithmID*
    - SECAlgorithmID*
    - SECOidTag
    - SECKEYPrivateKey*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2095
      start: 2039
    functionDepth: 1
    functionLinenumber: 2039
    functionLinenumberEnd: 2095
    functionName: SetSignatureAlgorithm
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 0
    functionsReached:
    - SEC_CreateSignatureAlgorithmParameters
    - SECOID_GetAlgorithmTag
    - SECU_PrintError
    - SEC_GetSignatureAlgorithmOidTag
    - SECOID_SetAlgorithmID
    - SECKEY_GetPrivateKeyType
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SetSignatureAlgorithm(PLArenaPool *arena,\n                      SECAlgorithmID
      *signAlg,\n                      SECAlgorithmID *spkiAlg,\n                      SECOidTag
      hashAlgTag,\n                      SECKEYPrivateKey *privKey,\n                      PRBool
      pssSign)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PK11_FindCertFromNickname
      Src: /src/nss/cmd/certutil/certutil.c:2115,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:2117,1
    - Dst: PK11_FindKeyByAnyCert
      Src: /src/nss/cmd/certutil/certutil.c:2122,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:2124,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/certutil/certutil.c:2126,1
    - Dst: SECKEY_GetPrivateKeyType
      Src: /src/nss/cmd/certutil/certutil.c:2132,1
    - Dst: SECKEY_GetPrivateKeyType
      Src: /src/nss/cmd/certutil/certutil.c:2133,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:2134,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/certutil/certutil.c:2138,1
    - Dst: SetSignatureAlgorithm
      Src: /src/nss/cmd/certutil/certutil.c:2143,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/certutil/certutil.c:2150,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/certutil/certutil.c:2170,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/cmd/certutil/certutil.c:2177,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/cmd/certutil/certutil.c:2178,1
    - Dst: fprintf
      Src: /src/nss/cmd/certutil/certutil.c:2180,1
    - Dst: SEC_DerSignDataWithAlgorithmID
      Src: /src/nss/cmd/certutil/certutil.c:2185,1
    - Dst: fprintf
      Src: /src/nss/cmd/certutil/certutil.c:2188,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/cmd/certutil/certutil.c:2195,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 76
    argCount: 9
    argNames:
    - handle
    - cert
    - selfsign
    - hashAlgTag
    - privKey
    - issuerNickName
    - certVersion
    - pssSign
    - pwarg
    argTypes:
    - CERTCertDBHandle*
    - CERTCertificate*
    - PRBool
    - SECOidTag
    - SECKEYPrivateKey*
    - char*
    - int
    - PRBool
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2198
      start: 2097
    functionDepth: 2
    functionLinenumber: 2097
    functionLinenumberEnd: 2198
    functionName: SignCert
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 0
    functionsReached:
    - SEC_ASN1EncodeItem
    - SECU_PrintError
    - SetSignatureAlgorithm
    - SEC_DerSignDataWithAlgorithmID
    - fprintf
    - PORT_SetError
    - SECKEY_GetPrivateKeyType
    - CERT_DestroyCertificate
    - SECKEY_DestroyPrivateKey
    - SEC_ASN1_GET
    - PK11_FindCertFromNickname
    - PK11_FindKeyByAnyCert
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SignCert(CERTCertDBHandle *handle, CERTCertificate *cert,
      PRBool selfsign,\n         SECOidTag hashAlgTag,\n         SECKEYPrivateKey
      *privKey, char *issuerNickName,\n         int certVersion, PRBool pssSign, void
      *pwarg)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: GetCertRequest
      Src: /src/nss/cmd/certutil/certutil.c:2230,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certutil.c:2232,1
    - Dst: MakeV1Cert
      Src: /src/nss/cmd/certutil/certutil.c:2235,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certutil.c:2238,1
    - Dst: CERT_StartCertExtensions
      Src: /src/nss/cmd/certutil/certutil.c:2241,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certutil.c:2243,1
    - Dst: AddExtensions
      Src: /src/nss/cmd/certutil/certutil.c:2246,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certutil.c:2248,1
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/cmd/certutil/certutil.c:2255,1
    - Dst: CERT_GetCertificateRequestExtensions
      Src: /src/nss/cmd/certutil/certutil.c:2257,1
    - Dst: CERT_MergeExtensions
      Src: /src/nss/cmd/certutil/certutil.c:2260,1
    - Dst: CERT_FinishExtensions
      Src: /src/nss/cmd/certutil/certutil.c:2265,1
    - Dst: PK11_FindKeyByDERCert
      Src: /src/nss/cmd/certutil/certutil.c:2270,1
    - Dst: fprintf
      Src: /src/nss/cmd/certutil/certutil.c:2272,1
    - Dst: SignCert
      Src: /src/nss/cmd/certutil/certutil.c:2278,1
    - Dst: BTOA_DataToAscii
      Src: /src/nss/cmd/certutil/certutil.c:2286,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/certutil/certutil.c:2289,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/certutil/certutil.c:2294,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/certutil/certutil.c:2295,1
    - Dst: PORT_Memcpy
      Src: /src/nss/cmd/certutil/certutil.c:2296,1
    - Dst: PR_smprintf_free
      Src: /src/nss/cmd/certutil/certutil.c:2299,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/certutil/certutil.c:2301,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/cmd/certutil/certutil.c:2304,1
    - Dst: CERT_FinishExtensions
      Src: /src/nss/cmd/certutil/certutil.c:2308,1
    - Dst: CERT_DestroyCertificateRequest
      Src: /src/nss/cmd/certutil/certutil.c:2310,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/certutil/certutil.c:2311,1
    - Dst: PR_GetError
      Src: /src/nss/cmd/certutil/certutil.c:2313,1
    - Dst: fprintf
      Src: /src/nss/cmd/certutil/certutil.c:2314,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/certutil/certutil.c:2315,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 64
    argCount: 19
    argNames:
    - handle
    - slot
    - issuerNickName
    - certReqDER
    - selfsignprivkey
    - pwarg
    - hashAlgTag
    - serialNumber
    - warpmonths
    - validityMonths
    - emailAddrs
    - dnsNames
    - ascii
    - selfsign
    - extnList
    - extGeneric
    - certVersion
    - pssSign
    - certDER
    argTypes:
    - CERTCertDBHandle*
    - PK11SlotInfo*
    - char*
    - SECItem*
    - SECKEYPrivateKey**
    - void*
    - SECOidTag
    - unsigned int
    - int
    - int
    - char*
    - char*
    - PRBool
    - PRBool
    - certutilExtnList
    - char*
    - int
    - PRBool
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2318
      start: 2200
    functionDepth: 3
    functionLinenumber: 2200
    functionLinenumberEnd: 2318
    functionName: CreateCert
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 0
    functionsReached:
    - PL_strlen
    - GetCertRequest
    - fprintf
    - GEN_BREAK
    - AddExtensions
    - PORT_Memcpy
    - PR_smprintf_free
    - PR_smprintf
    - CERT_MergeExtensions
    - CERT_StartCertExtensions
    - CERT_GetCertificateRequestExtensions
    - SignCert
    - BTOA_DataToAscii
    - SECITEM_AllocItem
    - CERT_DestroyCertificate
    - MakeV1Cert
    - PK11_FindKeyByDERCert
    - CERT_DestroyCertificateRequest
    - SECU_Strerror
    - PORT_Free
    - SECITEM_CopyItem
    - SECOID_FindOIDTag
    - PR_GetError
    - CERT_FinishExtensions
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CreateCert(\n    CERTCertDBHandle *handle,\n    PK11SlotInfo
      *slot,\n    char *issuerNickName,\n    const SECItem *certReqDER,\n    SECKEYPrivateKey
      **selfsignprivkey,\n    void *pwarg,\n    SECOidTag hashAlgTag,\n    unsigned
      int serialNumber,\n    int warpmonths,\n    int validityMonths,\n    const char
      *emailAddrs,\n    const char *dnsNames,\n    PRBool ascii,\n    PRBool selfsign,\n
      \   certutilExtnList extnList,\n    const char *extGeneric,\n    int certVersion,\n
      \   PRBool pssSign,\n    SECItem *certDER)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/nss/cmd/certutil/certutil.c:2353,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - classType
    argTypes:
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2355
      start: 2342
    functionDepth: 1
    functionLinenumber: 2342
    functionLinenumberEnd: 2355
    functionName: getObjectClass
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 0
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: char
    signature: 'char *

      getObjectClass(CK_ULONG classType)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2364
      start: 2363
    functionDepth: 0
    functionLinenumber: 2363
    functionLinenumberEnd: 2364
    functionName: NAME_SIZE
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NAME_SIZE(x)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strtol
      Src: /src/nss/cmd/certutil/certutil.c:2398,1
    - Dst: strncmp
      Src: /src/nss/cmd/certutil/certutil.c:2406,1
    - Dst: strncpy
      Src: /src/nss/cmd/certutil/certutil.c:2420,1
    - Dst: strchr
      Src: /src/nss/cmd/certutil/certutil.c:2422,1
    - Dst: fprintf
      Src: /src/nss/cmd/certutil/certutil.c:2426,1
    - Dst: strchr
      Src: /src/nss/cmd/certutil/certutil.c:2427,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 3
    argNames:
    - flagsString
    - flags
    - count
    argTypes:
    - char*
    - flagArray*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2435
      start: 2395
    functionDepth: 0
    functionLinenumber: 2395
    functionLinenumberEnd: 2435
    functionName: GetFlags
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 0
    functionsReached:
    - strncmp
    - strncpy
    - strchr
    - fprintf
    - strtol
    linkageType: ''
    returnType: CK_ULONG
    signature: CK_ULONG GetFlags(char *flagsString, flagArray *flags, int count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetFlags
      Src: /src/nss/cmd/certutil/certutil.c:2440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flags
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2441
      start: 2437
    functionDepth: 1
    functionLinenumber: 2437
    functionLinenumberEnd: 2441
    functionName: GetOpFlags
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 0
    functionsReached:
    - GetFlags
    linkageType: ''
    returnType: CK_FLAGS
    signature: CK_FLAGS GetOpFlags(char *flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetFlags
      Src: /src/nss/cmd/certutil/certutil.c:2446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flags
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2447
      start: 2443
    functionDepth: 1
    functionLinenumber: 2443
    functionLinenumberEnd: 2447
    functionName: GetAttrFlags
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 0
    functionsReached:
    - GetFlags
    linkageType: ''
    returnType: PK11AttrFlags
    signature: PK11AttrFlags GetAttrFlags(char *flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/certutil/certutil.c:2452,1
    - Dst: PORT_Memcpy
      Src: /src/nss/cmd/certutil/certutil.c:2456,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2459
      start: 2449
    functionDepth: 0
    functionLinenumber: 2449
    functionLinenumberEnd: 2459
    functionName: mkNickname
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_Memcpy
    linkageType: ''
    returnType: char
    signature: 'char *

      mkNickname(unsigned char *data, int len)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PK11_ReadRawAttribute
      Src: /src/nss/cmd/certutil/certutil.c:2476,1
    - Dst: mkNickname
      Src: /src/nss/cmd/certutil/certutil.c:2479,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/certutil/certutil.c:2480,1
    - Dst: PK11_ReadRawAttribute
      Src: /src/nss/cmd/certutil/certutil.c:2483,1
    - Dst: getObjectClass
      Src: /src/nss/cmd/certutil/certutil.c:2487,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/certutil/certutil.c:2489,1
    - Dst: fprintf
      Src: /src/nss/cmd/certutil/certutil.c:2492,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/certutil/certutil.c:2496,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/certutil/certutil.c:2499,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - progname
    - log
    argTypes:
    - char*
    - PK11MergeLog*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2502
      start: 2464
    functionDepth: 2
    functionLinenumber: 2464
    functionLinenumberEnd: 2502
    functionName: DumpMergeLog
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 0
    functionsReached:
    - SECU_Strerror
    - getObjectClass
    - PORT_Free
    - fprintf
    - PK11_ReadRawAttribute
    - mkNickname
    linkageType: ''
    returnType: void
    signature: void DumpMergeLog(const char *progname, PK11MergeLog *log)
  - BBCount: 188
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strrchr
      Src: /src/nss/cmd/certutil/certutil.c:2787,1
    - Dst: memcpy
      Src: /src/nss/cmd/certutil/certutil.c:2789,1
    - Dst: memcpy
      Src: /src/nss/cmd/certutil/certutil.c:2790,1
    - Dst: SECU_ParseCommandLine
      Src: /src/nss/cmd/certutil/certutil.c:2792,1
    - Dst: Usage
      Src: /src/nss/cmd/certutil/certutil.c:2795,1
    - Dst: PrintSyntax
      Src: /src/nss/cmd/certutil/certutil.c:2798,1
    - Dst: LongUsage
      Src: /src/nss/cmd/certutil/certutil.c:2818,1
    - Dst: exit
      Src: /src/nss/cmd/certutil/certutil.c:2819,1
    - Dst: PrintBuildFlags
      Src: /src/nss/cmd/certutil/certutil.c:2823,1
    - Dst: SECU_ConfigDirectory
      Src: /src/nss/cmd/certutil/certutil.c:2836,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/certutil/certutil.c:2848,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/certutil/certutil.c:2850,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/certutil/certutil.c:2856,1
    - Dst: PL_strcmp
      Src: /src/nss/cmd/certutil/certutil.c:2863,1
    - Dst: SECU_StringToSignatureAlgTag
      Src: /src/nss/cmd/certutil/certutil.c:2872,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/certutil/certutil.c:2874,1
    - Dst: PL_strcmp
      Src: /src/nss/cmd/certutil/certutil.c:2883,1
    - Dst: PL_strcmp
      Src: /src/nss/cmd/certutil/certutil.c:2885,1
    - Dst: PL_strcmp
      Src: /src/nss/cmd/certutil/certutil.c:2887,1
    - Dst: PL_strcmp
      Src: /src/nss/cmd/certutil/certutil.c:2889,1
    - Dst: GetOpFlags
      Src: /src/nss/cmd/certutil/certutil.c:2900,1
    - Dst: GetOpFlags
      Src: /src/nss/cmd/certutil/certutil.c:2903,1
    - Dst: GetAttrFlags
      Src: /src/nss/cmd/certutil/certutil.c:2907,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/certutil/certutil.c:2912,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/certutil/certutil.c:2914,1
    - Dst: Usage
      Src: /src/nss/cmd/certutil/certutil.c:2926,1
    - Dst: Usage
      Src: /src/nss/cmd/certutil/certutil.c:2935,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/certutil/certutil.c:2942,1
    - Dst: CERT_AsciiToName
      Src: /src/nss/cmd/certutil/certutil.c:2951,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/certutil/certutil.c:2953,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/certutil/certutil.c:2961,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/certutil/certutil.c:2963,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/certutil/certutil.c:2971,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/certutil/certutil.c:2975,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/certutil/certutil.c:2979,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/certutil/certutil.c:2981,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/certutil/certutil.c:2988,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/certutil/certutil.c:2990,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/certutil/certutil.c:2992,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/certutil/certutil.c:3009,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/certutil/certutil.c:3010,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/certutil/certutil.c:3013,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/certutil/certutil.c:3015,1
    - Dst: Usage
      Src: /src/nss/cmd/certutil/certutil.c:3019,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/certutil/certutil.c:3039,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/certutil/certutil.c:3051,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/certutil/certutil.c:3063,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/certutil/certutil.c:3073,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/certutil/certutil.c:3083,1
    - Dst: PR_Now
      Src: /src/nss/cmd/certutil/certutil.c:3094,1
    - Dst: LL_USHR
      Src: /src/nss/cmd/certutil/certutil.c:3095,1
    - Dst: LL_L2UI
      Src: /src/nss/cmd/certutil/certutil.c:3096,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/certutil/certutil.c:3102,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/certutil/certutil.c:3113,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/certutil/certutil.c:3123,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/certutil/certutil.c:3135,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/certutil/certutil.c:3147,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/certutil/certutil.c:3158,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/certutil/certutil.c:3170,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/certutil/certutil.c:3178,1
    - Dst: PR_Open
      Src: /src/nss/cmd/certutil/certutil.c:3186,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/certutil/certutil.c:3188,1
    - Dst: PR_GetError
      Src: /src/nss/cmd/certutil/certutil.c:3191,1
    - Dst: PR_GetOSError
      Src: /src/nss/cmd/certutil/certutil.c:3191,1
    - Dst: PR_Open
      Src: /src/nss/cmd/certutil/certutil.c:3198,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/certutil/certutil.c:3201,1
    - Dst: PR_GetError
      Src: /src/nss/cmd/certutil/certutil.c:3204,1
    - Dst: PR_GetOSError
      Src: /src/nss/cmd/certutil/certutil.c:3204,1
    - Dst: SECU_GetOptionArg
      Src: /src/nss/cmd/certutil/certutil.c:3209,1
    - Dst: SECU_GetOptionArg
      Src: /src/nss/cmd/certutil/certutil.c:3210,1
    - Dst: SECU_GetOptionArg
      Src: /src/nss/cmd/certutil/certutil.c:3211,1
    - Dst: PK11_SetPasswordFunc
      Src: /src/nss/cmd/certutil/certutil.c:3213,1
    - Dst: PR_Init
      Src: /src/nss/cmd/certutil/certutil.c:3217,1
    - Dst: NSS_Initialize
      Src: /src/nss/cmd/certutil/certutil.c:3219,1
    - Dst: SECU_ConfigDirectory
      Src: /src/nss/cmd/certutil/certutil.c:3219,1
    - Dst: NSS_InitWithMerge
      Src: /src/nss/cmd/certutil/certutil.c:3223,1
    - Dst: SECU_ConfigDirectory
      Src: /src/nss/cmd/certutil/certutil.c:3223,1
    - Dst: SECU_PrintPRandOSError
      Src: /src/nss/cmd/certutil/certutil.c:3230,1
    - Dst: SECU_RegisterDynamicOids
      Src: /src/nss/cmd/certutil/certutil.c:3235,1
    - Dst: SSL_OptionSetDefault
      Src: /src/nss/cmd/certutil/certutil.c:3237,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/cmd/certutil/certutil.c:3239,1
    - Dst: printf
      Src: /src/nss/cmd/certutil/certutil.c:3242,1
    - Dst: PL_strcmp
      Src: /src/nss/cmd/certutil/certutil.c:3245,1
    - Dst: PK11_GetInternalKeySlot
      Src: /src/nss/cmd/certutil/certutil.c:3246,1
    - Dst: PK11_FindSlotByName
      Src: /src/nss/cmd/certutil/certutil.c:3248,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:3260,1
    - Dst: PK11_NeedUserInit
      Src: /src/nss/cmd/certutil/certutil.c:3267,1
    - Dst: PK11_InitPin
      Src: /src/nss/cmd/certutil/certutil.c:3268,1
    - Dst: SECU_ChangePW2
      Src: /src/nss/cmd/certutil/certutil.c:3270,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:3274,1
    - Dst: PK11_NeedLogin
      Src: /src/nss/cmd/certutil/certutil.c:3285,1
    - Dst: PK11_NeedUserInit
      Src: /src/nss/cmd/certutil/certutil.c:3285,1
    - Dst: SECU_FilePasswd
      Src: /src/nss/cmd/certutil/certutil.c:3290,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/certutil/certutil.c:3292,1
    - Dst: PK11_InitPin
      Src: /src/nss/cmd/certutil/certutil.c:3294,1
    - Dst: PORT_Memset
      Src: /src/nss/cmd/certutil/certutil.c:3296,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/certutil/certutil.c:3296,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/certutil/certutil.c:3297,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:3300,1
    - Dst: PK11_IsInternal
      Src: /src/nss/cmd/certutil/certutil.c:3315,1
    - Dst: fprintf
      Src: /src/nss/cmd/certutil/certutil.c:3316,1
    - Dst: PK11_IsRemovable
      Src: /src/nss/cmd/certutil/certutil.c:3320,1
    - Dst: printf
      Src: /src/nss/cmd/certutil/certutil.c:3321,1
    - Dst: PK11_NeedLogin
      Src: /src/nss/cmd/certutil/certutil.c:3325,1
    - Dst: printf
      Src: /src/nss/cmd/certutil/certutil.c:3326,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/certutil/certutil.c:3331,1
    - Dst: PK11_GetTokenName
      Src: /src/nss/cmd/certutil/certutil.c:3331,1
    - Dst: PK11_Authenticate
      Src: /src/nss/cmd/certutil/certutil.c:3334,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:3336,1
    - Dst: PK11_IsLoggedIn
      Src: /src/nss/cmd/certutil/certutil.c:3346,1
    - Dst: printf
      Src: /src/nss/cmd/certutil/certutil.c:3347,1
    - Dst: PK11_IsPresent
      Src: /src/nss/cmd/certutil/certutil.c:3354,1
    - Dst: fprintf
      Src: /src/nss/cmd/certutil/certutil.c:3357,1
    - Dst: PK11_Authenticate
      Src: /src/nss/cmd/certutil/certutil.c:3365,1
    - Dst: printf
      Src: /src/nss/cmd/certutil/certutil.c:3367,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:3369,1
    - Dst: PK11_GetTokenName
      Src: /src/nss/cmd/certutil/certutil.c:3370,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/certutil/certutil.c:3381,1
    - Dst: SECMOD_OpenUserDB
      Src: /src/nss/cmd/certutil/certutil.c:3391,1
    - Dst: PR_smprintf_free
      Src: /src/nss/cmd/certutil/certutil.c:3392,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:3394,1
    - Dst: PK11_Authenticate
      Src: /src/nss/cmd/certutil/certutil.c:3399,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:3401,1
    - Dst: PK11_GetTokenName
      Src: /src/nss/cmd/certutil/certutil.c:3402,1
    - Dst: PK11_Authenticate
      Src: /src/nss/cmd/certutil/certutil.c:3406,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:3408,1
    - Dst: PK11_GetTokenName
      Src: /src/nss/cmd/certutil/certutil.c:3409,1
    - Dst: PK11_CreateMergeLog
      Src: /src/nss/cmd/certutil/certutil.c:3413,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:3416,1
    - Dst: PK11_MergeTokens
      Src: /src/nss/cmd/certutil/certutil.c:3420,1
    - Dst: DumpMergeLog
      Src: /src/nss/cmd/certutil/certutil.c:3422,1
    - Dst: PK11_DestroyMergeLog
      Src: /src/nss/cmd/certutil/certutil.c:3424,1
    - Dst: SECMOD_CloseUserDB
      Src: /src/nss/cmd/certutil/certutil.c:3427,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/cmd/certutil/certutil.c:3428,1
    - Dst: GetOidFromString
      Src: /src/nss/cmd/certutil/certutil.c:3443,1
    - Dst: strlen
      Src: /src/nss/cmd/certutil/certutil.c:3443,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:3445,1
    - Dst: ListCerts
      Src: /src/nss/cmd/certutil/certutil.c:3449,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/certutil/certutil.c:3453,1
    - Dst: ListCerts
      Src: /src/nss/cmd/certutil/certutil.c:3455,1
    - Dst: DumpChain
      Src: /src/nss/cmd/certutil/certutil.c:3463,1
    - Dst: ListKeys
      Src: /src/nss/cmd/certutil/certutil.c:3471,1
    - Dst: ListModules
      Src: /src/nss/cmd/certutil/certutil.c:3477,1
    - Dst: DeleteCert
      Src: /src/nss/cmd/certutil/certutil.c:3482,1
    - Dst: RenameCert
      Src: /src/nss/cmd/certutil/certutil.c:3487,1
    - Dst: DeleteCertAndKey
      Src: /src/nss/cmd/certutil/certutil.c:3493,1
    - Dst: findPrivateKeyByID
      Src: /src/nss/cmd/certutil/certutil.c:3495,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:3497,1
    - Dst: DeleteKey
      Src: /src/nss/cmd/certutil/certutil.c:3500,1
    - Dst: ChangeTrustAttributes
      Src: /src/nss/cmd/certutil/certutil.c:3509,1
    - Dst: SECU_ChangePW2
      Src: /src/nss/cmd/certutil/certutil.c:3515,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:3518,1
    - Dst: PK11_ResetToken
      Src: /src/nss/cmd/certutil/certutil.c:3529,1
    - Dst: PK11_NeedLogin
      Src: /src/nss/cmd/certutil/certutil.c:3537,1
    - Dst: PK11_Authenticate
      Src: /src/nss/cmd/certutil/certutil.c:3538,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:3540,1
    - Dst: PK11_GetTokenName
      Src: /src/nss/cmd/certutil/certutil.c:3541,1
    - Dst: ValidateCert
      Src: /src/nss/cmd/certutil/certutil.c:3546,1
    - Dst: PR_GetError
      Src: /src/nss/cmd/certutil/certutil.c:3553,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:3554,1
    - Dst: CERT_FindCertByNicknameOrEmailAddr
      Src: /src/nss/cmd/certutil/certutil.c:3568,1
    - Dst: PK11_FindCertFromNickname
      Src: /src/nss/cmd/certutil/certutil.c:3570,1
    - Dst: PK11_FindKeyByDERCert
      Src: /src/nss/cmd/certutil/certutil.c:3574,1
    - Dst: findPrivateKeyByID
      Src: /src/nss/cmd/certutil/certutil.c:3577,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:3581,1
    - Dst: SECKEY_ConvertToPublicKey
      Src: /src/nss/cmd/certutil/certutil.c:3587,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:3589,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/certutil/certutil.c:3592,1
    - Dst: CERT_AsciiToName
      Src: /src/nss/cmd/certutil/certutil.c:3604,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:3606,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/certutil/certutil.c:3610,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:3615,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/certutil/certutil.c:3621,1
    - Dst: CERTUTIL_GeneratePrivateKey
      Src: /src/nss/cmd/certutil/certutil.c:3625,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certutil.c:3635,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/certutil/certutil.c:3641,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/certutil/certutil.c:3653,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/certutil/certutil.c:3659,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/certutil/certutil.c:3672,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/certutil/certutil.c:3678,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/certutil/certutil.c:3687,1
    - Dst: SECU_ReadDERFromFile
      Src: /src/nss/cmd/certutil/certutil.c:3761,1
    - Dst: CertReq
      Src: /src/nss/cmd/certutil/certutil.c:3774,1
    - Dst: CertReq
      Src: /src/nss/cmd/certutil/certutil.c:3799,1
    - Dst: CreateCert
      Src: /src/nss/cmd/certutil/certutil.c:3817,1
    - Dst: strstr
      Src: /src/nss/cmd/certutil/certutil.c:3844,1
    - Dst: fprintf
      Src: /src/nss/cmd/certutil/certutil.c:3845,1
    - Dst: AddCert
      Src: /src/nss/cmd/certutil/certutil.c:3848,1
    - Dst: PR_Write
      Src: /src/nss/cmd/certutil/certutil.c:3860,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/cmd/certutil/certutil.c:3868,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/cmd/certutil/certutil.c:3871,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/cmd/certutil/certutil.c:3874,1
    - Dst: CERT_DestroyName
      Src: /src/nss/cmd/certutil/certutil.c:3877,1
    - Dst: PL_strfree
      Src: /src/nss/cmd/certutil/certutil.c:3880,1
    - Dst: PL_strfree
      Src: /src/nss/cmd/certutil/certutil.c:3883,1
    - Dst: PR_Close
      Src: /src/nss/cmd/certutil/certutil.c:3886,1
    - Dst: PR_Close
      Src: /src/nss/cmd/certutil/certutil.c:3889,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/certutil/certutil.c:3891,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/certutil/certutil.c:3892,1
    - Dst: PL_strfree
      Src: /src/nss/cmd/certutil/certutil.c:3895,1
    - Dst: PL_strfree
      Src: /src/nss/cmd/certutil/certutil.c:3898,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/certutil/certutil.c:3926,1
    - Dst: fopen
      Src: /src/nss/cmd/certutil/certutil.c:3931,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/certutil/certutil.c:3933,1
    - Dst: PR_GetError
      Src: /src/nss/cmd/certutil/certutil.c:3936,1
    - Dst: PR_GetOSError
      Src: /src/nss/cmd/certutil/certutil.c:3936,1
    - Dst: PORT_Realloc
      Src: /src/nss/cmd/certutil/certutil.c:3951,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/certutil/certutil.c:3953,1
    - Dst: fgets
      Src: /src/nss/cmd/certutil/certutil.c:3960,1
    - Dst: PORT_Strrchr
      Src: /src/nss/cmd/certutil/certutil.c:3963,1
    - Dst: strlen
      Src: /src/nss/cmd/certutil/certutil.c:3967,1
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/certutil/certutil.c:3975,1
    - Dst: PORT_Strpbrk
      Src: /src/nss/cmd/certutil/certutil.c:3979,1
    - Dst: isspace
      Src: /src/nss/cmd/certutil/certutil.c:3980,1
    - Dst: strchr
      Src: /src/nss/cmd/certutil/certutil.c:3989,1
    - Dst: PORT_Realloc
      Src: /src/nss/cmd/certutil/certutil.c:4000,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/certutil/certutil.c:4007,1
    - Dst: certutil_main
      Src: /src/nss/cmd/certutil/certutil.c:4011,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/certutil/certutil.c:4014,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/certutil/certutil.c:4018,1
    - Dst: fclose
      Src: /src/nss/cmd/certutil/certutil.c:4019,1
    - Dst: NSS_Shutdown
      Src: /src/nss/cmd/certutil/certutil.c:4022,1
    - Dst: exit
      Src: /src/nss/cmd/certutil/certutil.c:4023,1
    CyclomaticComplexity: 324
    EdgeCount: 324
    ICount: 795
    argCount: 3
    argNames:
    - argc
    - argv
    - initialize
    argTypes:
    - int
    - char**
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4030
      start: 2742
    functionDepth: 4
    functionLinenumber: 2742
    functionLinenumberEnd: 4030
    functionName: certutil_main
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 1
    functionsReached:
    - fprintf
    - RenameCert
    - PL_strfree
    - memcpy
    - DumpMergeLog
    - CERT_AsciiToName
    - LL_USHR
    - PrintSyntax
    - PR_smprintf
    - PK11_ResetToken
    - SECITEM_FreeItem
    - PK11_CreateMergeLog
    - PK11_MergeTokens
    - PK11_GetTokenName
    - PK11_IsRemovable
    - SECU_ConfigDirectory
    - PK11_IsInternal
    - PK11_Authenticate
    - PORT_Alloc
    - PK11_IsPresent
    - GetOpFlags
    - strstr
    - PORT_Atoi
    - SECMOD_OpenUserDB
    - PR_Now
    - SECKEY_DestroyPublicKey
    - GetOidFromString
    - fclose
    - exit
    - PR_Init
    - GetAttrFlags
    - PR_Open
    - findPrivateKeyByID
    - CERT_DestroyCertificate
    - ChangeTrustAttributes
    - PK11_FindKeyByDERCert
    - SECU_ReadDERFromFile
    - SSL_OptionSetDefault
    - SECU_ChangePW2
    - certutil_main
    - ValidateCert
    - SECU_ParseCommandLine
    - PK11_NeedLogin
    - PL_strcmp
    - PORT_Memset
    - PK11_GetInternalKeySlot
    - PL_strlen
    - printf
    - PORT_Realloc
    - PK11_DestroyMergeLog
    - strlen
    - CreateCert
    - ListKeys
    - fopen
    - ListModules
    - DeleteCert
    - DeleteCertAndKey
    - CERT_FindCertByNicknameOrEmailAddr
    - PORT_Assert
    - SECU_PrintError
    - PK11_FindSlotByName
    - PR_Close
    - PK11_FindCertFromNickname
    - SECU_GetOptionArg
    - PORT_Free
    - PR_fprintf
    - NSS_Initialize
    - CERTUTIL_GeneratePrivateKey
    - NSS_Shutdown
    - LL_L2UI
    - AddCert
    - PORT_Strpbrk
    - PK11_InitPin
    - Usage
    - CertReq
    - SECU_StringToSignatureAlgTag
    - strchr
    - PK11_IsLoggedIn
    - LongUsage
    - CERT_DestroyName
    - SECMOD_CloseUserDB
    - SECKEY_ConvertToPublicKey
    - PR_smprintf_free
    - CERT_GetDefaultCertDB
    - isspace
    - PK11_NeedUserInit
    - SECU_PrintPRandOSError
    - NSS_InitWithMerge
    - PL_strdup
    - SECU_FilePasswd
    - PK11_SetPasswordFunc
    - PK11_FreeSlot
    - DumpChain
    - PORT_Strrchr
    - PR_GetOSError
    - fgets
    - PR_Write
    - DeleteKey
    - SECU_RegisterDynamicOids
    - ListCerts
    - PR_GetError
    - SECKEY_DestroyPrivateKey
    - PORT_Strcmp
    - PrintBuildFlags
    linkageType: ''
    returnType: int
    signature: int certutil_main(int argc, char **argv, PRBool initialize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: certutil_main
      Src: /src/nss/cmd/certutil/certutil.c:4035,1
    - Dst: PL_ArenaFinish
      Src: /src/nss/cmd/certutil/certutil.c:4036,1
    - Dst: PR_Cleanup
      Src: /src/nss/cmd/certutil/certutil.c:4037,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4039
      start: 4032
    functionDepth: 5
    functionLinenumber: 4032
    functionLinenumberEnd: 4039
    functionName: main
    functionSourceFile: /src/nss/cmd/certutil/certutil.c
    functionUses: 2
    functionsReached:
    - PL_ArenaFinish
    - PR_Cleanup
    - certutil_main
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: GEN_BREAK
    functionSourceFile: /src/nss/cmd/certutil/certext.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN_BREAK(e)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/cmd/certutil/certext.c:43,1
    - Dst: fgets
      Src: /src/nss/cmd/certutil/certext.c:46,1
    - Dst: PORT_Strlen
      Src: /src/nss/cmd/certutil/certext.c:47,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 2
    argNames:
    - buff
    - size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 69
    functionName: Gets_s
    functionSourceFile: /src/nss/cmd/certutil/certext.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - fgets
    - PORT_Strlen
    linkageType: ''
    returnType: char
    signature: 'char *

      Gets_s(char *buff, size_t size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fputs
      Src: /src/nss/cmd/certutil/certext.c:74,1
    - Dst: fputs
      Src: /src/nss/cmd/certutil/certext.c:75,1
    - Dst: fflush
      Src: /src/nss/cmd/certutil/certext.c:76,1
    - Dst: Gets_s
      Src: /src/nss/cmd/certutil/certext.c:77,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/certutil/certext.c:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - str
    - rBuff
    - rSize
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 82
    functionName: PrintChoicesAndGetAnswer
    functionSourceFile: /src/nss/cmd/certutil/certext.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - fputs
    - fflush
    - Gets_s
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PrintChoicesAndGetAnswer(char *str, char *rBuff, int rSize)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/cmd/certutil/certext.c:95,1
    - Dst: PORT_ArenaMark
      Src: /src/nss/cmd/certutil/certext.c:96,1
    - Dst: PrintChoicesAndGetAnswer
      Src: /src/nss/cmd/certutil/certext.c:98,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certext.c:109,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/certutil/certext.c:111,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/cmd/certutil/certext.c:136,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/cmd/certutil/certext.c:139,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certext.c:142,1
    - Dst: puts
      Src: /src/nss/cmd/certutil/certext.c:146,1
    - Dst: fflush
      Src: /src/nss/cmd/certutil/certext.c:147,1
    - Dst: Gets_s
      Src: /src/nss/cmd/certutil/certext.c:148,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/certutil/certext.c:149,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certext.c:150,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/cmd/certutil/certext.c:157,1
    - Dst: strlen
      Src: /src/nss/cmd/certutil/certext.c:157,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certext.c:159,1
    - Dst: PORT_Memcpy
      Src: /src/nss/cmd/certutil/certext.c:161,1
    - Dst: strlen
      Src: /src/nss/cmd/certutil/certext.c:162,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/cmd/certutil/certext.c:172,1
    - Dst: strlen
      Src: /src/nss/cmd/certutil/certext.c:172,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certext.c:174,1
    - Dst: PORT_Memcpy
      Src: /src/nss/cmd/certutil/certext.c:177,1
    - Dst: strlen
      Src: /src/nss/cmd/certutil/certext.c:178,1
    - Dst: strlen
      Src: /src/nss/cmd/certutil/certext.c:183,1
    - Dst: strlen
      Src: /src/nss/cmd/certutil/certext.c:184,1
    - Dst: CERT_AsciiToName
      Src: /src/nss/cmd/certutil/certext.c:191,1
    - Dst: fprintf
      Src: /src/nss/cmd/certutil/certext.c:193,1
    - Dst: CERT_CopyName
      Src: /src/nss/cmd/certutil/certext.c:199,1
    - Dst: CERT_DestroyName
      Src: /src/nss/cmd/certutil/certext.c:201,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/cmd/certutil/certext.c:216,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 88
    argCount: 3
    argNames:
    - arena
    - useExistingName
    - onlyOne
    argTypes:
    - PLArenaPool*
    - CERTGeneralName*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 84
    functionDepth: 3
    functionLinenumber: 84
    functionLinenumberEnd: 220
    functionName: GetGeneralName
    functionSourceFile: /src/nss/cmd/certutil/certext.c
    functionUses: 0
    functionsReached:
    - PORT_Atoi
    - PORT_Assert
    - PORT_Memcpy
    - PrintChoicesAndGetAnswer
    - CERT_AsciiToName
    - PORT_ArenaAlloc
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - Gets_s
    - fprintf
    - PORT_ArenaZNew
    - PORT_SetError
    - CERT_CopyName
    - CERT_DestroyName
    - GEN_BREAK
    - puts
    - fflush
    - strlen
    linkageType: ''
    returnType: CERTGeneralName
    signature: 'CERTGeneralName *

      GetGeneralName(PLArenaPool *arena, CERTGeneralName *useExistingName, PRBool
      onlyOne)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetGeneralName
      Src: /src/nss/cmd/certutil/certext.c:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arena
    argTypes:
    - PLArenaPool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 222
    functionDepth: 4
    functionLinenumber: 222
    functionLinenumberEnd: 226
    functionName: CreateGeneralName
    functionSourceFile: /src/nss/cmd/certutil/certext.c
    functionUses: 0
    functionsReached:
    - GetGeneralName
    linkageType: ''
    returnType: CERTGeneralName
    signature: 'CERTGeneralName *

      CreateGeneralName(PLArenaPool *arena)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: puts
      Src: /src/nss/cmd/certutil/certext.c:238,1
    - Dst: Gets_s
      Src: /src/nss/cmd/certutil/certext.c:239,1
    - Dst: strlen
      Src: /src/nss/cmd/certutil/certext.c:241,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/cmd/certutil/certext.c:242,1
    - Dst: strlen
      Src: /src/nss/cmd/certutil/certext.c:242,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/certutil/certext.c:244,1
    - Dst: PORT_Memcpy
      Src: /src/nss/cmd/certutil/certext.c:247,1
    - Dst: strlen
      Src: /src/nss/cmd/certutil/certext.c:247,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - arena
    - prompt
    - value
    argTypes:
    - PLArenaPool*
    - char*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 228
    functionDepth: 2
    functionLinenumber: 228
    functionLinenumberEnd: 250
    functionName: GetString
    functionSourceFile: /src/nss/cmd/certutil/certext.c
    functionUses: 0
    functionsReached:
    - PORT_Memcpy
    - PORT_ArenaAlloc
    - Gets_s
    - PORT_SetError
    - puts
    - strlen
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus GetString(PLArenaPool *arena, char *prompt, SECItem *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: puts
      Src: /src/nss/cmd/certutil/certext.c:259,1
    - Dst: Gets_s
      Src: /src/nss/cmd/certutil/certext.c:260,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - prompt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 252
    functionDepth: 2
    functionLinenumber: 252
    functionLinenumberEnd: 262
    functionName: GetYesNo
    functionSourceFile: /src/nss/cmd/certutil/certext.c
    functionUses: 0
    functionsReached:
    - puts
    - Gets_s
    linkageType: ''
    returnType: PRBool
    signature: PRBool GetYesNo(char *prompt)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/cmd/certutil/certext.c:280,1
    - Dst: strchr
      Src: /src/nss/cmd/certutil/certext.c:286,1
    - Dst: strlen
      Src: /src/nss/cmd/certutil/certext.c:287,1
    - Dst: strncmp
      Src: /src/nss/cmd/certutil/certext.c:293,1
    - Dst: strncmp
      Src: /src/nss/cmd/certutil/certext.c:300,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/certutil/certext.c:305,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 4
    argNames:
    - valueArray
    - value
    - nextPos
    - critical
    argTypes:
    - char**
    - int*
    - char**
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 307
    functionName: parseNextCmdInput
    functionSourceFile: /src/nss/cmd/certutil/certext.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - strncmp
    - strchr
    - strlen
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus parseNextCmdInput(const char *const *valueArray, int *value,
      char **nextPos,\n                  PRBool *critical)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: parseNextCmdInput
      Src: /src/nss/cmd/certutil/certext.c:327,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - wordArray
    - userSuppliedValue
    - keyUsage
    - isCriticalExt
    argTypes:
    - char**
    - char*
    - unsigned char*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 340
    functionName: parseKeyUsage
    functionSourceFile: /src/nss/cmd/certutil/certext.c
    functionUses: 0
    functionsReached:
    - parseNextCmdInput
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus parseKeyUsage(const char *const *wordArray, const char *userSuppliedValue,\n
      \             unsigned char *keyUsage, PRBool *isCriticalExt)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PrintChoicesAndGetAnswer
      Src: /src/nss/cmd/certutil/certext.c:353,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/certutil/certext.c:365,1
    - Dst: strchr
      Src: /src/nss/cmd/certutil/certext.c:371,1
    - Dst: GetYesNo
      Src: /src/nss/cmd/certutil/certext.c:378,1
    - Dst: parseKeyUsage
      Src: /src/nss/cmd/certutil/certext.c:380,1
    - Dst: CERT_EncodeAndAddBitStrExtension
      Src: /src/nss/cmd/certutil/certext.c:390,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 2
    argNames:
    - extHandle
    - userSuppliedValue
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 342
    functionDepth: 3
    functionLinenumber: 342
    functionLinenumberEnd: 392
    functionName: AddKeyUsage
    functionSourceFile: /src/nss/cmd/certutil/certext.c
    functionUses: 0
    functionsReached:
    - PORT_Atoi
    - strchr
    - PrintChoicesAndGetAnswer
    - GetYesNo
    - CERT_EncodeAndAddBitStrExtension
    - parseKeyUsage
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus AddKeyUsage(void *extHandle, const char *userSuppliedValue)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/certutil/certext.c:400,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/cmd/certutil/certext.c:405,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/cmd/certutil/certext.c:410,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/certutil/certext.c:420,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 424
    functionName: CreateOidSequence
    functionSourceFile: /src/nss/cmd/certutil/certext.c
    functionUses: 0
    functionsReached:
    - PORT_FreeArena
    - PORT_ArenaZNew
    - PORT_NewArena
    linkageType: ''
    returnType: CERTOidSequence
    signature: 'CERTOidSequence *

      CreateOidSequence(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/certutil/certext.c:430,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - os
    argTypes:
    - CERTOidSequence*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 432
    functionName: DestroyOidSequence
    functionSourceFile: /src/nss/cmd/certutil/certext.c
    functionUses: 0
    functionsReached:
    - PORT_FreeArena
    linkageType: ''
    returnType: void
    signature: void DestroyOidSequence(CERTOidSequence *os)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/cmd/certutil/certext.c:441,1
    - Dst: PORT_ArenaZNewArray
      Src: /src/nss/cmd/certutil/certext.c:459,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - os
    - oidTag
    argTypes:
    - CERTOidSequence*
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 434
    functionDepth: 1
    functionLinenumber: 434
    functionLinenumberEnd: 475
    functionName: AddOidToSequence
    functionSourceFile: /src/nss/cmd/certutil/certext.c
    functionUses: 0
    functionsReached:
    - PORT_ArenaZNewArray
    - SECOID_FindOIDByTag
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus AddOidToSequence(CERTOidSequence *os, SECOidTag oidTag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaZNew
      Src: /src/nss/cmd/certutil/certext.c:489,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/cmd/certutil/certext.c:494,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - os
    argTypes:
    - CERTOidSequence*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 484
    functionDepth: 1
    functionLinenumber: 484
    functionLinenumberEnd: 502
    functionName: EncodeOidSequence
    functionSourceFile: /src/nss/cmd/certutil/certext.c
    functionUses: 0
    functionsReached:
    - PORT_ArenaZNew
    - SEC_ASN1EncodeItem
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      EncodeOidSequence(CERTOidSequence *os)'
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: CreateOidSequence
      Src: /src/nss/cmd/certutil/certext.c:533,1
    - Dst: PrintChoicesAndGetAnswer
      Src: /src/nss/cmd/certutil/certext.c:544,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certext.c:555,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/certutil/certext.c:557,1
    - Dst: strchr
      Src: /src/nss/cmd/certutil/certext.c:562,1
    - Dst: parseNextCmdInput
      Src: /src/nss/cmd/certutil/certext.c:569,1
    - Dst: AddOidToSequence
      Src: /src/nss/cmd/certutil/certext.c:584,1
    - Dst: AddOidToSequence
      Src: /src/nss/cmd/certutil/certext.c:587,1
    - Dst: AddOidToSequence
      Src: /src/nss/cmd/certutil/certext.c:590,1
    - Dst: AddOidToSequence
      Src: /src/nss/cmd/certutil/certext.c:593,1
    - Dst: AddOidToSequence
      Src: /src/nss/cmd/certutil/certext.c:596,1
    - Dst: AddOidToSequence
      Src: /src/nss/cmd/certutil/certext.c:599,1
    - Dst: AddOidToSequence
      Src: /src/nss/cmd/certutil/certext.c:602,1
    - Dst: AddOidToSequence
      Src: /src/nss/cmd/certutil/certext.c:605,1
    - Dst: AddOidToSequence
      Src: /src/nss/cmd/certutil/certext.c:614,1
    - Dst: AddOidToSequence
      Src: /src/nss/cmd/certutil/certext.c:619,1
    - Dst: AddOidToSequence
      Src: /src/nss/cmd/certutil/certext.c:624,1
    - Dst: AddOidToSequence
      Src: /src/nss/cmd/certutil/certext.c:629,1
    - Dst: AddOidToSequence
      Src: /src/nss/cmd/certutil/certext.c:634,1
    - Dst: AddOidToSequence
      Src: /src/nss/cmd/certutil/certext.c:639,1
    - Dst: AddOidToSequence
      Src: /src/nss/cmd/certutil/certext.c:644,1
    - Dst: EncodeOidSequence
      Src: /src/nss/cmd/certutil/certext.c:657,1
    - Dst: GetYesNo
      Src: /src/nss/cmd/certutil/certext.c:660,1
    - Dst: CERT_AddExtension
      Src: /src/nss/cmd/certutil/certext.c:663,1
    - Dst: DestroyOidSequence
      Src: /src/nss/cmd/certutil/certext.c:667,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 117
    argCount: 2
    argNames:
    - extHandle
    - userSuppliedValue
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 522
    functionDepth: 3
    functionLinenumber: 522
    functionLinenumberEnd: 669
    functionName: AddExtKeyUsage
    functionSourceFile: /src/nss/cmd/certutil/certext.c
    functionUses: 0
    functionsReached:
    - PORT_Atoi
    - strchr
    - PrintChoicesAndGetAnswer
    - GetYesNo
    - CERT_AddExtension
    - CreateOidSequence
    - parseNextCmdInput
    - AddOidToSequence
    - EncodeOidSequence
    - GEN_BREAK
    - DestroyOidSequence
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus AddExtKeyUsage(void *extHandle, const char *userSuppliedValue)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PrintChoicesAndGetAnswer
      Src: /src/nss/cmd/certutil/certext.c:693,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/certutil/certext.c:706,1
    - Dst: strchr
      Src: /src/nss/cmd/certutil/certext.c:712,1
    - Dst: GetYesNo
      Src: /src/nss/cmd/certutil/certext.c:719,1
    - Dst: parseKeyUsage
      Src: /src/nss/cmd/certutil/certext.c:721,1
    - Dst: CERT_EncodeAndAddBitStrExtension
      Src: /src/nss/cmd/certutil/certext.c:731,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 2
    argNames:
    - extHandle
    - userSuppliedValue
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 682
    functionDepth: 3
    functionLinenumber: 682
    functionLinenumberEnd: 733
    functionName: AddNscpCertType
    functionSourceFile: /src/nss/cmd/certutil/certext.c
    functionUses: 0
    functionsReached:
    - PORT_Atoi
    - strchr
    - PrintChoicesAndGetAnswer
    - GetYesNo
    - CERT_EncodeAndAddBitStrExtension
    - parseKeyUsage
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus AddNscpCertType(void *extHandle, const char *userSuppliedValue)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SEC_StringToOID
      Src: /src/nss/cmd/certutil/certext.c:744,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/cmd/certutil/certext.c:753,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/cmd/certutil/certext.c:754,1
    - Dst: PORT_Strncasecmp
      Src: /src/nss/cmd/certutil/certext.c:755,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/cmd/certutil/certext.c:763,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - arena
    - to
    - from
    - fromLen
    argTypes:
    - PLArenaPool*
    - SECItem*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 735
    functionDepth: 1
    functionLinenumber: 735
    functionLinenumberEnd: 764
    functionName: GetOidFromString
    functionSourceFile: /src/nss/cmd/certutil/certext.c
    functionUses: 1
    functionsReached:
    - PORT_Strncasecmp
    - SEC_StringToOID
    - SECOID_FindOIDByTag
    - SECITEM_CopyItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus GetOidFromString(PLArenaPool *arena, SECItem *to,\n                 const
      char *from, size_t fromLen)"
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/certutil/certext.c:779,1
    - Dst: PORT_Strchr
      Src: /src/nss/cmd/certutil/certext.c:809,1
    - Dst: PORT_Strchr
      Src: /src/nss/cmd/certutil/certext.c:821,1
    - Dst: CERT_GetGeneralNameTypeFromString
      Src: /src/nss/cmd/certutil/certext.c:825,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/cmd/certutil/certext.c:839,1
    - Dst: PORT_ArenaStrdup
      Src: /src/nss/cmd/certutil/certext.c:852,1
    - Dst: PORT_Strlen
      Src: /src/nss/cmd/certutil/certext.c:853,1
    - Dst: fprintf
      Src: /src/nss/cmd/certutil/certext.c:860,1
    - Dst: CERT_AsciiToName
      Src: /src/nss/cmd/certutil/certext.c:864,1
    - Dst: fprintf
      Src: /src/nss/cmd/certutil/certext.c:867,1
    - Dst: CERT_CopyName
      Src: /src/nss/cmd/certutil/certext.c:870,1
    - Dst: CERT_DestroyName
      Src: /src/nss/cmd/certutil/certext.c:871,1
    - Dst: PR_StringToNetAddr
      Src: /src/nss/cmd/certutil/certext.c:876,1
    - Dst: fprintf
      Src: /src/nss/cmd/certutil/certext.c:879,1
    - Dst: PR_NetAddrFamily
      Src: /src/nss/cmd/certutil/certext.c:883,1
    - Dst: PR_NetAddrFamily
      Src: /src/nss/cmd/certutil/certext.c:886,1
    - Dst: fprintf
      Src: /src/nss/cmd/certutil/certext.c:890,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/cmd/certutil/certext.c:894,1
    - Dst: PORT_Memcpy
      Src: /src/nss/cmd/certutil/certext.c:900,1
    - Dst: GetOidFromString
      Src: /src/nss/cmd/certutil/certext.c:903,1
    - Dst: strlen
      Src: /src/nss/cmd/certutil/certext.c:903,1
    - Dst: PORT_Strchr
      Src: /src/nss/cmd/certutil/certext.c:907,1
    - Dst: fprintf
      Src: /src/nss/cmd/certutil/certext.c:910,1
    - Dst: PORT_ArenaStrdup
      Src: /src/nss/cmd/certutil/certext.c:915,1
    - Dst: PORT_Strlen
      Src: /src/nss/cmd/certutil/certext.c:920,1
    - Dst: GetOidFromString
      Src: /src/nss/cmd/certutil/certext.c:921,1
    - Dst: strlen
      Src: /src/nss/cmd/certutil/certext.c:922,1
    - Dst: fprintf
      Src: /src/nss/cmd/certutil/certext.c:926,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/certutil/certext.c:941,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 142
    argCount: 4
    argNames:
    - arena
    - existingListp
    - constNames
    - type
    argTypes:
    - PLArenaPool*
    - CERTGeneralName**
    - char*
    - CERTGeneralNameType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 766
    functionDepth: 2
    functionLinenumber: 766
    functionLinenumberEnd: 961
    functionName: AddSubjectAltNames
    functionSourceFile: /src/nss/cmd/certutil/certext.c
    functionUses: 0
    functionsReached:
    - PORT_Strchr
    - PORT_Memcpy
    - PR_StringToNetAddr
    - GetOidFromString
    - CERT_AsciiToName
    - PORT_ArenaStrdup
    - PORT_ArenaAlloc
    - CERT_GetGeneralNameTypeFromString
    - PORT_Free
    - PORT_Strlen
    - CERT_DestroyName
    - fprintf
    - PORT_ArenaZNew
    - CERT_CopyName
    - PR_NetAddrFamily
    - PORT_Strdup
    - strlen
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus AddSubjectAltNames(PLArenaPool *arena, CERTGeneralName **existingListp,\n
      \                  const char *constNames, CERTGeneralNameType type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AddSubjectAltNames
      Src: /src/nss/cmd/certutil/certext.c:967,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - arena
    - existingListp
    - emailAddrs
    argTypes:
    - PLArenaPool*
    - CERTGeneralName**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 963
    functionDepth: 3
    functionLinenumber: 963
    functionLinenumberEnd: 969
    functionName: AddEmailSubjectAlt
    functionSourceFile: /src/nss/cmd/certutil/certext.c
    functionUses: 0
    functionsReached:
    - AddSubjectAltNames
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus AddEmailSubjectAlt(PLArenaPool *arena, CERTGeneralName **existingListp,\n
      \                  const char *emailAddrs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AddSubjectAltNames
      Src: /src/nss/cmd/certutil/certext.c:975,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - arena
    - existingListp
    - dnsNames
    argTypes:
    - PLArenaPool*
    - CERTGeneralName**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 971
    functionDepth: 3
    functionLinenumber: 971
    functionLinenumberEnd: 976
    functionName: AddDNSSubjectAlt
    functionSourceFile: /src/nss/cmd/certutil/certext.c
    functionUses: 0
    functionsReached:
    - AddSubjectAltNames
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus AddDNSSubjectAlt(PLArenaPool *arena, CERTGeneralName **existingListp,\n
      \                const char *dnsNames)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AddSubjectAltNames
      Src: /src/nss/cmd/certutil/certext.c:982,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - arena
    - existingListp
    - altNames
    argTypes:
    - PLArenaPool*
    - CERTGeneralName**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 978
    functionDepth: 3
    functionLinenumber: 978
    functionLinenumberEnd: 983
    functionName: AddGeneralSubjectAlt
    functionSourceFile: /src/nss/cmd/certutil/certext.c
    functionUses: 0
    functionsReached:
    - AddSubjectAltNames
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus AddGeneralSubjectAlt(PLArenaPool *arena, CERTGeneralName
      **existingListp,\n                     const char *altNames)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetYesNo
      Src: /src/nss/cmd/certutil/certext.c:995,1
    - Dst: PrintChoicesAndGetAnswer
      Src: /src/nss/cmd/certutil/certext.c:998,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certext.c:1001,1
    - Dst: PORT_Strlen
      Src: /src/nss/cmd/certutil/certext.c:1003,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/certutil/certext.c:1004,1
    - Dst: GetYesNo
      Src: /src/nss/cmd/certutil/certext.c:1006,1
    - Dst: SECU_EncodeAndAddExtensionValue
      Src: /src/nss/cmd/certutil/certext.c:1008,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - arena
    - extHandle
    argTypes:
    - PLArenaPool*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 985
    functionDepth: 3
    functionLinenumber: 985
    functionLinenumberEnd: 1014
    functionName: AddBasicConstraint
    functionSourceFile: /src/nss/cmd/certutil/certext.c
    functionUses: 0
    functionsReached:
    - PORT_Atoi
    - PrintChoicesAndGetAnswer
    - GetYesNo
    - PORT_Strlen
    - SECU_EncodeAndAddExtensionValue
    - GEN_BREAK
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus AddBasicConstraint(PLArenaPool *arena, void *extHandle)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/certutil/certext.c:1030,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/cmd/certutil/certext.c:1032,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certext.c:1036,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/certutil/certext.c:1037,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/cmd/certutil/certext.c:1044,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certext.c:1046,1
    - Dst: GetGeneralName
      Src: /src/nss/cmd/certutil/certext.c:1049,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certext.c:1050,1
    - Dst: PrintChoicesAndGetAnswer
      Src: /src/nss/cmd/certutil/certext.c:1053,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certext.c:1058,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/certutil/certext.c:1061,1
    - Dst: PR_snprintf
      Src: /src/nss/cmd/certutil/certext.c:1081,1
    - Dst: GetYesNo
      Src: /src/nss/cmd/certutil/certext.c:1084,1
    - Dst: GetYesNo
      Src: /src/nss/cmd/certutil/certext.c:1093,1
    - Dst: SECU_EncodeAndAddExtensionValue
      Src: /src/nss/cmd/certutil/certext.c:1104,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/certutil/certext.c:1109,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 60
    argCount: 1
    argNames:
    - extHandle
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1016
    functionDepth: 4
    functionLinenumber: 1016
    functionLinenumberEnd: 1111
    functionName: AddNameConstraints
    functionSourceFile: /src/nss/cmd/certutil/certext.c
    functionUses: 0
    functionsReached:
    - GetGeneralName
    - PORT_Atoi
    - PR_snprintf
    - PORT_NewArena
    - SECU_PrintError
    - PrintChoicesAndGetAnswer
    - PORT_FreeArena
    - GetYesNo
    - PORT_ArenaZNew
    - SECU_EncodeAndAddExtensionValue
    - GEN_BREAK
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus AddNameConstraints(void *extHandle)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/certutil/certext.c:1122,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certext.c:1124,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certext.c:1125,1
    - Dst: GetYesNo
      Src: /src/nss/cmd/certutil/certext.c:1128,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/cmd/certutil/certext.c:1131,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certext.c:1133,1
    - Dst: GetString
      Src: /src/nss/cmd/certutil/certext.c:1136,1
    - Dst: SECU_SECItemHexStringToBinary
      Src: /src/nss/cmd/certutil/certext.c:1142,1
    - Dst: CreateGeneralName
      Src: /src/nss/cmd/certutil/certext.c:1144,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/certutil/certext.c:1146,1
    - Dst: GetString
      Src: /src/nss/cmd/certutil/certext.c:1149,1
    - Dst: GetYesNo
      Src: /src/nss/cmd/certutil/certext.c:1153,1
    - Dst: SECU_EncodeAndAddExtensionValue
      Src: /src/nss/cmd/certutil/certext.c:1155,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/certutil/certext.c:1163,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 1
    argNames:
    - extHandle
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1165
      start: 1113
    functionDepth: 5
    functionLinenumber: 1113
    functionLinenumberEnd: 1165
    functionName: AddAuthKeyID
    functionSourceFile: /src/nss/cmd/certutil/certext.c
    functionUses: 0
    functionsReached:
    - CreateGeneralName
    - PORT_NewArena
    - SECU_PrintError
    - PORT_FreeArena
    - GetYesNo
    - PORT_GetError
    - GetString
    - PORT_ArenaZNew
    - SECU_EncodeAndAddExtensionValue
    - SECU_SECItemHexStringToBinary
    - GEN_BREAK
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus AddAuthKeyID(void *extHandle)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/certutil/certext.c:1176,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certext.c:1178,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certext.c:1179,1
    - Dst: printf
      Src: /src/nss/cmd/certutil/certext.c:1181,1
    - Dst: GetString
      Src: /src/nss/cmd/certutil/certext.c:1183,1
    - Dst: SECU_SECItemHexStringToBinary
      Src: /src/nss/cmd/certutil/certext.c:1189,1
    - Dst: GetYesNo
      Src: /src/nss/cmd/certutil/certext.c:1191,1
    - Dst: SECU_EncodeAndAddExtensionValue
      Src: /src/nss/cmd/certutil/certext.c:1193,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/certutil/certext.c:1201,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - extHandle
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1203
      start: 1167
    functionDepth: 3
    functionLinenumber: 1167
    functionLinenumberEnd: 1203
    functionName: AddSubjKeyID
    functionSourceFile: /src/nss/cmd/certutil/certext.c
    functionUses: 0
    functionsReached:
    - PORT_NewArena
    - SECU_PrintError
    - PORT_FreeArena
    - GetYesNo
    - printf
    - GetString
    - SECU_EncodeAndAddExtensionValue
    - SECU_SECItemHexStringToBinary
    - GEN_BREAK
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus AddSubjKeyID(void *extHandle)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/certutil/certext.c:1215,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/cmd/certutil/certext.c:1222,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certext.c:1224,1
    - Dst: PrintChoicesAndGetAnswer
      Src: /src/nss/cmd/certutil/certext.c:1228,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certext.c:1233,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/certutil/certext.c:1235,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/certutil/certext.c:1238,1
    - Dst: CreateGeneralName
      Src: /src/nss/cmd/certutil/certext.c:1240,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/certutil/certext.c:1241,1
    - Dst: puts
      Src: /src/nss/cmd/certutil/certext.c:1248,1
    - Dst: fflush
      Src: /src/nss/cmd/certutil/certext.c:1249,1
    - Dst: Gets_s
      Src: /src/nss/cmd/certutil/certext.c:1250,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certext.c:1251,1
    - Dst: CERT_AsciiToName
      Src: /src/nss/cmd/certutil/certext.c:1255,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certext.c:1257,1
    - Dst: CERT_CopyRDN
      Src: /src/nss/cmd/certutil/certext.c:1259,1
    - Dst: CERT_DestroyName
      Src: /src/nss/cmd/certutil/certext.c:1261,1
    - Dst: PrintChoicesAndGetAnswer
      Src: /src/nss/cmd/certutil/certext.c:1269,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certext.c:1277,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/certutil/certext.c:1279,1
    - Dst: strchr
      Src: /src/nss/cmd/certutil/certext.c:1283,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/cmd/certutil/certext.c:1289,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certext.c:1291,1
    - Dst: puts
      Src: /src/nss/cmd/certutil/certext.c:1296,1
    - Dst: CreateGeneralName
      Src: /src/nss/cmd/certutil/certext.c:1297,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/certutil/certext.c:1298,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/cmd/certutil/certext.c:1302,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certext.c:1304,1
    - Dst: PORT_ArenaGrow
      Src: /src/nss/cmd/certutil/certext.c:1310,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/cmd/certutil/certext.c:1315,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certext.c:1318,1
    - Dst: GetYesNo
      Src: /src/nss/cmd/certutil/certext.c:1323,1
    - Dst: PORT_ArenaGrow
      Src: /src/nss/cmd/certutil/certext.c:1327,1
    - Dst: GetYesNo
      Src: /src/nss/cmd/certutil/certext.c:1337,1
    - Dst: SECU_EncodeAndAddExtensionValue
      Src: /src/nss/cmd/certutil/certext.c:1339,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/certutil/certext.c:1344,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 88
    argCount: 1
    argNames:
    - extHandle
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1346
      start: 1205
    functionDepth: 5
    functionLinenumber: 1205
    functionLinenumberEnd: 1346
    functionName: AddCrlDistPoint
    functionSourceFile: /src/nss/cmd/certutil/certext.c
    functionUses: 0
    functionsReached:
    - PORT_Atoi
    - PrintChoicesAndGetAnswer
    - SECU_EncodeAndAddExtensionValue
    - GEN_BREAK
    - PORT_NewArena
    - strchr
    - PORT_ArenaGrow
    - CERT_AsciiToName
    - PORT_ArenaAlloc
    - CERT_DestroyName
    - PORT_ArenaZNew
    - PORT_SetError
    - CERT_CopyRDN
    - PORT_ArenaZAlloc
    - PORT_FreeArena
    - GetYesNo
    - Gets_s
    - CreateGeneralName
    - PORT_GetError
    - puts
    - fflush
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus AddCrlDistPoint(void *extHandle)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/certutil/certext.c:1360,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certext.c:1362,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/cmd/certutil/certext.c:1366,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certext.c:1368,1
    - Dst: PrintChoicesAndGetAnswer
      Src: /src/nss/cmd/certutil/certext.c:1372,1
    - Dst: PORT_Strlen
      Src: /src/nss/cmd/certutil/certext.c:1379,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/certutil/certext.c:1380,1
    - Dst: SEC_ASN1EncodeInteger
      Src: /src/nss/cmd/certutil/certext.c:1385,1
    - Dst: PrintChoicesAndGetAnswer
      Src: /src/nss/cmd/certutil/certext.c:1392,1
    - Dst: PORT_Strlen
      Src: /src/nss/cmd/certutil/certext.c:1400,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/certutil/certext.c:1401,1
    - Dst: SEC_ASN1EncodeInteger
      Src: /src/nss/cmd/certutil/certext.c:1406,1
    - Dst: GetYesNo
      Src: /src/nss/cmd/certutil/certext.c:1414,1
    - Dst: SECU_EncodeAndAddExtensionValue
      Src: /src/nss/cmd/certutil/certext.c:1416,1
    - Dst: fprintf
      Src: /src/nss/cmd/certutil/certext.c:1420,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/certutil/certext.c:1427,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 61
    argCount: 1
    argNames:
    - extHandle
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1430
      start: 1348
    functionDepth: 3
    functionLinenumber: 1348
    functionLinenumberEnd: 1430
    functionName: AddPolicyConstraints
    functionSourceFile: /src/nss/cmd/certutil/certext.c
    functionUses: 0
    functionsReached:
    - PORT_Atoi
    - PORT_NewArena
    - SECU_PrintError
    - PrintChoicesAndGetAnswer
    - PORT_FreeArena
    - GetYesNo
    - PORT_Strlen
    - fprintf
    - PORT_ArenaZNew
    - SECU_EncodeAndAddExtensionValue
    - SEC_ASN1EncodeInteger
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus AddPolicyConstraints(void *extHandle)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/certutil/certext.c:1443,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certext.c:1445,1
    - Dst: PrintChoicesAndGetAnswer
      Src: /src/nss/cmd/certutil/certext.c:1449,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/certutil/certext.c:1457,1
    - Dst: SEC_ASN1EncodeInteger
      Src: /src/nss/cmd/certutil/certext.c:1461,1
    - Dst: GetYesNo
      Src: /src/nss/cmd/certutil/certext.c:1466,1
    - Dst: SECU_EncodeAndAddExtensionValue
      Src: /src/nss/cmd/certutil/certext.c:1468,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/certutil/certext.c:1473,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 1
    argNames:
    - extHandle
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1476
      start: 1432
    functionDepth: 3
    functionLinenumber: 1432
    functionLinenumberEnd: 1476
    functionName: AddInhibitAnyPolicy
    functionSourceFile: /src/nss/cmd/certutil/certext.c
    functionUses: 0
    functionsReached:
    - PORT_Atoi
    - PORT_NewArena
    - SECU_PrintError
    - PrintChoicesAndGetAnswer
    - PORT_FreeArena
    - GetYesNo
    - SECU_EncodeAndAddExtensionValue
    - SEC_ASN1EncodeInteger
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus AddInhibitAnyPolicy(void *extHandle)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/certutil/certext.c:1488,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certext.c:1490,1
    - Dst: PrintChoicesAndGetAnswer
      Src: /src/nss/cmd/certutil/certext.c:1495,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certext.c:1498,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/cmd/certutil/certext.c:1501,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certext.c:1503,1
    - Dst: SEC_StringToOID
      Src: /src/nss/cmd/certutil/certext.c:1506,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certext.c:1508,1
    - Dst: PrintChoicesAndGetAnswer
      Src: /src/nss/cmd/certutil/certext.c:1511,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certext.c:1514,1
    - Dst: SEC_StringToOID
      Src: /src/nss/cmd/certutil/certext.c:1517,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certext.c:1519,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/cmd/certutil/certext.c:1523,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certext.c:1525,1
    - Dst: PORT_ArenaGrow
      Src: /src/nss/cmd/certutil/certext.c:1529,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certext.c:1533,1
    - Dst: GetYesNo
      Src: /src/nss/cmd/certutil/certext.c:1539,1
    - Dst: PORT_ArenaGrow
      Src: /src/nss/cmd/certutil/certext.c:1541,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certext.c:1545,1
    - Dst: GetYesNo
      Src: /src/nss/cmd/certutil/certext.c:1555,1
    - Dst: SECU_EncodeAndAddExtensionValue
      Src: /src/nss/cmd/certutil/certext.c:1559,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/certutil/certext.c:1564,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 54
    argCount: 1
    argNames:
    - extHandle
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1566
      start: 1478
    functionDepth: 3
    functionLinenumber: 1478
    functionLinenumberEnd: 1566
    functionName: AddPolicyMappings
    functionSourceFile: /src/nss/cmd/certutil/certext.c
    functionUses: 0
    functionsReached:
    - PORT_NewArena
    - SECU_PrintError
    - PrintChoicesAndGetAnswer
    - PORT_ArenaGrow
    - GetYesNo
    - PORT_FreeArena
    - SEC_StringToOID
    - PORT_ArenaZNew
    - SECU_EncodeAndAddExtensionValue
    - GEN_BREAK
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus AddPolicyMappings(void *extHandle)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/cmd/certutil/certext.c:1586,1
    - Dst: PORT_ArenaMark
      Src: /src/nss/cmd/certutil/certext.c:1587,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/cmd/certutil/certext.c:1589,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certext.c:1591,1
    - Dst: SECU_PrintObjectID
      Src: /src/nss/cmd/certutil/certext.c:1595,1
    - Dst: PrintChoicesAndGetAnswer
      Src: /src/nss/cmd/certutil/certext.c:1598,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certext.c:1604,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/certutil/certext.c:1606,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/cmd/certutil/certext.c:1611,1
    - Dst: PrintChoicesAndGetAnswer
      Src: /src/nss/cmd/certutil/certext.c:1612,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certext.c:1614,1
    - Dst: PORT_Strlen
      Src: /src/nss/cmd/certutil/certext.c:1616,1
    - Dst: PORT_ArenaStrdup
      Src: /src/nss/cmd/certutil/certext.c:1617,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/cmd/certutil/certext.c:1619,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/cmd/certutil/certext.c:1620,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certext.c:1621,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/cmd/certutil/certext.c:1627,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certext.c:1629,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/cmd/certutil/certext.c:1632,1
    - Dst: GetYesNo
      Src: /src/nss/cmd/certutil/certext.c:1634,1
    - Dst: PrintChoicesAndGetAnswer
      Src: /src/nss/cmd/certutil/certext.c:1636,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certext.c:1639,1
    - Dst: PORT_Strlen
      Src: /src/nss/cmd/certutil/certext.c:1644,1
    - Dst: PORT_ArenaStrdup
      Src: /src/nss/cmd/certutil/certext.c:1646,1
    - Dst: PORT_ArenaZNewArray
      Src: /src/nss/cmd/certutil/certext.c:1648,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certext.c:1650,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/cmd/certutil/certext.c:1656,1
    - Dst: PrintChoicesAndGetAnswer
      Src: /src/nss/cmd/certutil/certext.c:1658,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certext.c:1662,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/certutil/certext.c:1665,1
    - Dst: fprintf
      Src: /src/nss/cmd/certutil/certext.c:1668,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certext.c:1670,1
    - Dst: PORT_ArenaGrow
      Src: /src/nss/cmd/certutil/certext.c:1674,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certext.c:1680,1
    - Dst: SEC_ASN1EncodeInteger
      Src: /src/nss/cmd/certutil/certext.c:1686,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certext.c:1687,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certext.c:1694,1
    - Dst: CERT_EncodeNoticeReference
      Src: /src/nss/cmd/certutil/certext.c:1697,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certext.c:1700,1
    - Dst: GetYesNo
      Src: /src/nss/cmd/certutil/certext.c:1703,1
    - Dst: PrintChoicesAndGetAnswer
      Src: /src/nss/cmd/certutil/certext.c:1705,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certext.c:1707,1
    - Dst: PORT_Strlen
      Src: /src/nss/cmd/certutil/certext.c:1710,1
    - Dst: PORT_ArenaStrdup
      Src: /src/nss/cmd/certutil/certext.c:1712,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certext.c:1714,1
    - Dst: CERT_EncodeUserNotice
      Src: /src/nss/cmd/certutil/certext.c:1718,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certext.c:1720,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/cmd/certutil/certext.c:1727,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certext.c:1729,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/cmd/certutil/certext.c:1733,1
    - Dst: PORT_ArenaGrow
      Src: /src/nss/cmd/certutil/certext.c:1735,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certext.c:1740,1
    - Dst: GetYesNo
      Src: /src/nss/cmd/certutil/certext.c:1746,1
    - Dst: PORT_ArenaGrow
      Src: /src/nss/cmd/certutil/certext.c:1748,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certext.c:1752,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/cmd/certutil/certext.c:1761,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 123
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1765
      start: 1573
    functionDepth: 3
    functionLinenumber: 1573
    functionLinenumberEnd: 1765
    functionName: RequestPolicyQualifiers
    functionSourceFile: /src/nss/cmd/certutil/certext.c
    functionUses: 0
    functionsReached:
    - PORT_Atoi
    - PORT_ArenaZNewArray
    - PrintChoicesAndGetAnswer
    - PORT_ArenaMark
    - fprintf
    - GEN_BREAK
    - SEC_ASN1EncodeItem
    - PORT_ArenaGrow
    - PORT_ArenaStrdup
    - PORT_ArenaRelease
    - PORT_ArenaZNew
    - SEC_ASN1EncodeInteger
    - PORT_Assert
    - GetYesNo
    - PORT_Strlen
    - CERT_EncodeNoticeReference
    - SECOID_FindOIDByTag
    - CERT_EncodeUserNotice
    - SECITEM_CopyItem
    - SECU_PrintObjectID
    - SEC_ASN1_GET
    linkageType: ''
    returnType: CERTPolicyQualifier
    signature: 'CERTPolicyQualifier **

      RequestPolicyQualifiers(PLArenaPool *arena, SECItem *policyID)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/certutil/certext.c:1777,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certext.c:1779,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/cmd/certutil/certext.c:1784,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certext.c:1786,1
    - Dst: PrintChoicesAndGetAnswer
      Src: /src/nss/cmd/certutil/certext.c:1789,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certext.c:1793,1
    - Dst: strncmp
      Src: /src/nss/cmd/certutil/certext.c:1796,1
    - Dst: strcpy
      Src: /src/nss/cmd/certutil/certext.c:1798,1
    - Dst: SEC_StringToOID
      Src: /src/nss/cmd/certutil/certext.c:1800,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certext.c:1803,1
    - Dst: RequestPolicyQualifiers
      Src: /src/nss/cmd/certutil/certext.c:1807,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/cmd/certutil/certext.c:1810,1
    - Dst: PORT_ArenaGrow
      Src: /src/nss/cmd/certutil/certext.c:1812,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certext.c:1817,1
    - Dst: GetYesNo
      Src: /src/nss/cmd/certutil/certext.c:1823,1
    - Dst: PORT_ArenaGrow
      Src: /src/nss/cmd/certutil/certext.c:1825,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certext.c:1829,1
    - Dst: GetYesNo
      Src: /src/nss/cmd/certutil/certext.c:1839,1
    - Dst: SECU_EncodeAndAddExtensionValue
      Src: /src/nss/cmd/certutil/certext.c:1844,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/certutil/certext.c:1849,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 49
    argCount: 1
    argNames:
    - extHandle
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1851
      start: 1767
    functionDepth: 4
    functionLinenumber: 1767
    functionLinenumberEnd: 1851
    functionName: AddCertPolicies
    functionSourceFile: /src/nss/cmd/certutil/certext.c
    functionUses: 0
    functionsReached:
    - strncmp
    - PORT_NewArena
    - SECU_PrintError
    - PrintChoicesAndGetAnswer
    - PORT_ArenaGrow
    - GetYesNo
    - PORT_FreeArena
    - SEC_StringToOID
    - strcpy
    - PORT_ArenaZNew
    - SECU_EncodeAndAddExtensionValue
    - RequestPolicyQualifiers
    - GEN_BREAK
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus AddCertPolicies(void *extHandle)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/certutil/certext.c:1876,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certext.c:1878,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/cmd/certutil/certext.c:1884,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certext.c:1886,1
    - Dst: puts
      Src: /src/nss/cmd/certutil/certext.c:1892,1
    - Dst: puts
      Src: /src/nss/cmd/certutil/certext.c:1896,1
    - Dst: PrintChoicesAndGetAnswer
      Src: /src/nss/cmd/certutil/certext.c:1901,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certext.c:1907,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/certutil/certext.c:1909,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/cmd/certutil/certext.c:1914,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/cmd/certutil/certext.c:1918,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/cmd/certutil/certext.c:1924,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/cmd/certutil/certext.c:1928,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/cmd/certutil/certext.c:1933,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certext.c:1935,1
    - Dst: CreateGeneralName
      Src: /src/nss/cmd/certutil/certext.c:1938,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certext.c:1940,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/cmd/certutil/certext.c:1944,1
    - Dst: PORT_ArenaGrow
      Src: /src/nss/cmd/certutil/certext.c:1946,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certext.c:1951,1
    - Dst: PR_snprintf
      Src: /src/nss/cmd/certutil/certext.c:1957,1
    - Dst: GetYesNo
      Src: /src/nss/cmd/certutil/certext.c:1961,1
    - Dst: PORT_ArenaGrow
      Src: /src/nss/cmd/certutil/certext.c:1963,1
    - Dst: GEN_BREAK
      Src: /src/nss/cmd/certutil/certext.c:1967,1
    - Dst: GetYesNo
      Src: /src/nss/cmd/certutil/certext.c:1978,1
    - Dst: SECU_EncodeAndAddExtensionValue
      Src: /src/nss/cmd/certutil/certext.c:1983,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/certutil/certext.c:1988,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 81
    argCount: 3
    argNames:
    - extHandle
    - addSIAExt
    - isCACert
    argTypes:
    - void*
    - PRBool
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1990
      start: 1864
    functionDepth: 5
    functionLinenumber: 1864
    functionLinenumberEnd: 1990
    functionName: AddInfoAccess
    functionSourceFile: /src/nss/cmd/certutil/certext.c
    functionUses: 0
    functionsReached:
    - PORT_Atoi
    - CreateGeneralName
    - PR_snprintf
    - PORT_NewArena
    - SECU_PrintError
    - PrintChoicesAndGetAnswer
    - SECOID_FindOIDByTag
    - PORT_ArenaGrow
    - GetYesNo
    - PORT_FreeArena
    - SECITEM_CopyItem
    - PORT_ArenaZNew
    - SECU_EncodeAndAddExtensionValue
    - GEN_BREAK
    - puts
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus AddInfoAccess(void *extHandle, PRBool addSIAExt, PRBool isCACert)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/nss/cmd/certutil/certext.c:2009,1
    - Dst: strchr
      Src: /src/nss/cmd/certutil/certext.c:2012,1
    - Dst: strchr
      Src: /src/nss/cmd/certutil/certext.c:2024,1
    - Dst: strlen
      Src: /src/nss/cmd/certutil/certext.c:2042,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 8
    argNames:
    - nextExtension
    - oid
    - oidLen
    - crit
    - critLen
    - filename
    - filenameLen
    - next
    argTypes:
    - char*
    - char**
    - int*
    - char**
    - int*
    - char**
    - int*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2050
      start: 1995
    functionDepth: 0
    functionLinenumber: 1995
    functionLinenumberEnd: 2050
    functionName: parseNextGenericExt
    functionSourceFile: /src/nss/cmd/certutil/certext.c
    functionUses: 0
    functionsReached:
    - strchr
    - strlen
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus parseNextGenericExt(const char *nextExtension, const char
      **oid, int *oidLen,\n                    const char **crit, int *critLen,\n
      \                   const char **filename, int *filenameLen,\n                    const
      char **next)"
  - BBCount: 45
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/certutil/certext.c:2061,1
    - Dst: AddKeyUsage
      Src: /src/nss/cmd/certutil/certext.c:2069,1
    - Dst: AddExtKeyUsage
      Src: /src/nss/cmd/certutil/certext.c:2078,1
    - Dst: AddBasicConstraint
      Src: /src/nss/cmd/certutil/certext.c:2087,1
    - Dst: AddNameConstraints
      Src: /src/nss/cmd/certutil/certext.c:2096,1
    - Dst: AddAuthKeyID
      Src: /src/nss/cmd/certutil/certext.c:2104,1
    - Dst: AddSubjKeyID
      Src: /src/nss/cmd/certutil/certext.c:2112,1
    - Dst: AddCrlDistPoint
      Src: /src/nss/cmd/certutil/certext.c:2120,1
    - Dst: AddNscpCertType
      Src: /src/nss/cmd/certutil/certext.c:2128,1
    - Dst: AddInfoAccess
      Src: /src/nss/cmd/certutil/certext.c:2137,1
    - Dst: AddCertPolicies
      Src: /src/nss/cmd/certutil/certext.c:2146,1
    - Dst: AddPolicyMappings
      Src: /src/nss/cmd/certutil/certext.c:2154,1
    - Dst: AddPolicyConstraints
      Src: /src/nss/cmd/certutil/certext.c:2162,1
    - Dst: AddInhibitAnyPolicy
      Src: /src/nss/cmd/certutil/certext.c:2170,1
    - Dst: AddEmailSubjectAlt
      Src: /src/nss/cmd/certutil/certext.c:2184,1
    - Dst: AddDNSSubjectAlt
      Src: /src/nss/cmd/certutil/certext.c:2188,1
    - Dst: AddGeneralSubjectAlt
      Src: /src/nss/cmd/certutil/certext.c:2192,1
    - Dst: CERT_EncodeAltNameExtension
      Src: /src/nss/cmd/certutil/certext.c:2197,1
    - Dst: CERT_AddExtension
      Src: /src/nss/cmd/certutil/certext.c:2199,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/certutil/certext.c:2211,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certext.c:2214,1
    - Dst: parseNextGenericExt
      Src: /src/nss/cmd/certutil/certext.c:2226,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certext.c:2229,1
    - Dst: GetOidFromString
      Src: /src/nss/cmd/certutil/certext.c:2236,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certext.c:2238,1
    - Dst: strncmp
      Src: /src/nss/cmd/certutil/certext.c:2241,1
    - Dst: strncmp
      Src: /src/nss/cmd/certutil/certext.c:2243,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certext.c:2247,1
    - Dst: PL_strndup
      Src: /src/nss/cmd/certutil/certext.c:2250,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certext.c:2253,1
    - Dst: PR_Open
      Src: /src/nss/cmd/certutil/certext.c:2257,1
    - Dst: SECU_ReadDERFromFile
      Src: /src/nss/cmd/certutil/certext.c:2259,1
    - Dst: PR_Close
      Src: /src/nss/cmd/certutil/certext.c:2260,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certext.c:2264,1
    - Dst: PL_strfree
      Src: /src/nss/cmd/certutil/certext.c:2267,1
    - Dst: CERT_AddExtensionByOID
      Src: /src/nss/cmd/certutil/certext.c:2271,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/certutil/certext.c:2273,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/certutil/certext.c:2274,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/certutil/certext.c:2276,1
    CyclomaticComplexity: 70
    EdgeCount: 70
    ICount: 178
    argCount: 5
    argNames:
    - extHandle
    - emailAddrs
    - dnsNames
    - extList
    - extGeneric
    argTypes:
    - void*
    - char*
    - char*
    - certutilExtnList
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2283
      start: 2052
    functionDepth: 6
    functionLinenumber: 2052
    functionLinenumberEnd: 2283
    functionName: AddExtensions
    functionSourceFile: /src/nss/cmd/certutil/certext.c
    functionUses: 2
    functionsReached:
    - AddGeneralSubjectAlt
    - CERT_AddExtension
    - AddExtKeyUsage
    - AddInfoAccess
    - AddCrlDistPoint
    - AddInhibitAnyPolicy
    - PL_strfree
    - parseNextGenericExt
    - AddNscpCertType
    - PORT_NewArena
    - GetOidFromString
    - AddNameConstraints
    - AddKeyUsage
    - SECITEM_FreeItem
    - PL_strndup
    - SECU_PrintError
    - PORT_FreeArena
    - AddBasicConstraint
    - CERT_EncodeAltNameExtension
    - PR_Open
    - AddCertPolicies
    - PR_Close
    - AddPolicyMappings
    - strncmp
    - SECU_ReadDERFromFile
    - AddSubjKeyID
    - AddEmailSubjectAlt
    - AddAuthKeyID
    - CERT_AddExtensionByOID
    - AddDNSSubjectAlt
    - AddPolicyConstraints
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus AddExtensions(void *extHandle, const char *emailAddrs, const
      char *dnsNames,\n              certutilExtnList extList, const char *extGeneric)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CERT_FindCertByNickname
      Src: /src/nss/cmd/ocspresp/ocspresp.c:33,1
    - Dst: CERT_FindCertByNickname
      Src: /src/nss/cmd/ocspresp/ocspresp.c:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - certHandle
    - caNick
    - eeNick
    - outCA
    - outCert
    argTypes:
    - CERTCertDBHandle*
    - char*
    - char*
    - CERTCertificate**
    - CERTCertificate**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 36
    functionName: getCaAndSubjectCert
    functionSourceFile: /src/nss/cmd/ocspresp/ocspresp.c
    functionUses: 0
    functionsReached:
    - CERT_FindCertByNickname
    linkageType: ''
    returnType: PRBool
    signature: "PRBool getCaAndSubjectCert(CERTCertDBHandle *certHandle,\n                    const
      char *caNick, const char *eeNick,\n                    CERTCertificate **outCA,
      CERTCertificate **outCert)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_Now
      Src: /src/nss/cmd/ocspresp/ocspresp.c:42,1
    - Dst: CERT_CreateOCSPSingleResponseGood
      Src: /src/nss/cmd/ocspresp/ocspresp.c:52,1
    - Dst: PORT_ArenaNewArray
      Src: /src/nss/cmd/ocspresp/ocspresp.c:55,1
    - Dst: CERT_CreateEncodedOCSPSuccessResponse
      Src: /src/nss/cmd/ocspresp/ocspresp.c:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - arena
    - cid
    - ca
    argTypes:
    - PLArenaPool*
    - CERTOCSPCertID*
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 66
    functionName: encode
    functionSourceFile: /src/nss/cmd/ocspresp/ocspresp.c
    functionUses: 0
    functionsReached:
    - CERT_CreateEncodedOCSPSuccessResponse
    - PORT_ArenaNewArray
    - CERT_CreateOCSPSingleResponseGood
    - PR_Now
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      encode(PLArenaPool *arena, CERTOCSPCertID *cid, CERTCertificate *ca)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_Now
      Src: /src/nss/cmd/ocspresp/ocspresp.c:72,1
    - Dst: CERT_CreateOCSPSingleResponseRevoked
      Src: /src/nss/cmd/ocspresp/ocspresp.c:82,1
    - Dst: PORT_ArenaNewArray
      Src: /src/nss/cmd/ocspresp/ocspresp.c:86,1
    - Dst: CERT_CreateEncodedOCSPSuccessResponse
      Src: /src/nss/cmd/ocspresp/ocspresp.c:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - arena
    - cid
    - ca
    argTypes:
    - PLArenaPool*
    - CERTOCSPCertID*
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 97
    functionName: encodeRevoked
    functionSourceFile: /src/nss/cmd/ocspresp/ocspresp.c
    functionUses: 0
    functionsReached:
    - CERT_CreateOCSPSingleResponseRevoked
    - CERT_CreateEncodedOCSPSuccessResponse
    - PORT_ArenaNewArray
    - PR_Now
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      encodeRevoked(PLArenaPool *arena, CERTOCSPCertID *cid, CERTCertificate *ca)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ocspresp/ocspresp.c:103,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ocspresp/ocspresp.c:104,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ocspresp/ocspresp.c:105,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ocspresp/ocspresp.c:107,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ocspresp/ocspresp.c:109,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ocspresp/ocspresp.c:111,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ocspresp/ocspresp.c:113,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ocspresp/ocspresp.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 118
    functionName: Usage
    functionSourceFile: /src/nss/cmd/ocspresp/ocspresp.c
    functionUses: 7
    functionsReached:
    - PR_fprintf
    linkageType: ''
    returnType: int
    signature: int Usage(void)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: PR_Now
      Src: /src/nss/cmd/ocspresp/ocspresp.c:129,1
    - Dst: Usage
      Src: /src/nss/cmd/ocspresp/ocspresp.c:143,1
    - Dst: strcmp
      Src: /src/nss/cmd/ocspresp/ocspresp.c:147,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/ocspresp/ocspresp.c:149,1
    - Dst: strcmp
      Src: /src/nss/cmd/ocspresp/ocspresp.c:150,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/ocspresp/ocspresp.c:152,1
    - Dst: Usage
      Src: /src/nss/cmd/ocspresp/ocspresp.c:154,1
    - Dst: PR_Init
      Src: /src/nss/cmd/ocspresp/ocspresp.c:157,1
    - Dst: NSS_Init
      Src: /src/nss/cmd/ocspresp/ocspresp.c:159,1
    - Dst: SECU_PrintPRandOSError
      Src: /src/nss/cmd/ocspresp/ocspresp.c:161,1
    - Dst: PK11_SetPasswordFunc
      Src: /src/nss/cmd/ocspresp/ocspresp.c:165,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/cmd/ocspresp/ocspresp.c:167,1
    - Dst: getCaAndSubjectCert
      Src: /src/nss/cmd/ocspresp/ocspresp.c:171,1
    - Dst: CERT_CreateOCSPCertID
      Src: /src/nss/cmd/ocspresp/ocspresp.c:174,1
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/ocspresp/ocspresp.c:176,1
    - Dst: encode
      Src: /src/nss/cmd/ocspresp/ocspresp.c:177,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/ocspresp/ocspresp.c:178,1
    - Dst: CERT_DecodeOCSPResponse
      Src: /src/nss/cmd/ocspresp/ocspresp.c:179,1
    - Dst: PORT_CheckSuccess
      Src: /src/nss/cmd/ocspresp/ocspresp.c:180,1
    - Dst: CERT_GetOCSPResponseStatus
      Src: /src/nss/cmd/ocspresp/ocspresp.c:180,1
    - Dst: PORT_CheckSuccess
      Src: /src/nss/cmd/ocspresp/ocspresp.c:182,1
    - Dst: CERT_VerifyOCSPResponseSignature
      Src: /src/nss/cmd/ocspresp/ocspresp.c:182,1
    - Dst: PORT_CheckSuccess
      Src: /src/nss/cmd/ocspresp/ocspresp.c:184,1
    - Dst: CERT_GetOCSPStatusForCertID
      Src: /src/nss/cmd/ocspresp/ocspresp.c:184,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/ocspresp/ocspresp.c:186,1
    - Dst: encodeRevoked
      Src: /src/nss/cmd/ocspresp/ocspresp.c:188,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/ocspresp/ocspresp.c:189,1
    - Dst: CERT_DecodeOCSPResponse
      Src: /src/nss/cmd/ocspresp/ocspresp.c:190,1
    - Dst: PORT_CheckSuccess
      Src: /src/nss/cmd/ocspresp/ocspresp.c:191,1
    - Dst: CERT_GetOCSPResponseStatus
      Src: /src/nss/cmd/ocspresp/ocspresp.c:191,1
    - Dst: PORT_CheckSuccess
      Src: /src/nss/cmd/ocspresp/ocspresp.c:193,1
    - Dst: CERT_VerifyOCSPResponseSignature
      Src: /src/nss/cmd/ocspresp/ocspresp.c:193,1
    - Dst: CERT_GetOCSPStatusForCertID
      Src: /src/nss/cmd/ocspresp/ocspresp.c:197,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/ocspresp/ocspresp.c:199,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/ocspresp/ocspresp.c:200,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/ocspresp/ocspresp.c:200,1
    - Dst: CERT_GetOCSPStatusForCertID
      Src: /src/nss/cmd/ocspresp/ocspresp.c:203,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/ocspresp/ocspresp.c:206,1
    - Dst: CERT_CreateEncodedOCSPErrorResponse
      Src: /src/nss/cmd/ocspresp/ocspresp.c:208,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/ocspresp/ocspresp.c:210,1
    - Dst: CERT_DecodeOCSPResponse
      Src: /src/nss/cmd/ocspresp/ocspresp.c:211,1
    - Dst: CERT_GetOCSPResponseStatus
      Src: /src/nss/cmd/ocspresp/ocspresp.c:214,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/ocspresp/ocspresp.c:215,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/ocspresp/ocspresp.c:216,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/ocspresp/ocspresp.c:216,1
    - Dst: CERT_GetOCSPResponseStatus
      Src: /src/nss/cmd/ocspresp/ocspresp.c:219,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/ocspresp/ocspresp.c:224,1
    - Dst: CERT_DestroyOCSPCertID
      Src: /src/nss/cmd/ocspresp/ocspresp.c:227,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/ocspresp/ocspresp.c:229,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/ocspresp/ocspresp.c:231,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/ocspresp/ocspresp.c:233,1
    - Dst: CERT_DestroyOCSPResponse
      Src: /src/nss/cmd/ocspresp/ocspresp.c:235,1
    - Dst: CERT_DestroyOCSPResponse
      Src: /src/nss/cmd/ocspresp/ocspresp.c:237,1
    - Dst: CERT_DestroyOCSPResponse
      Src: /src/nss/cmd/ocspresp/ocspresp.c:239,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/ocspresp/ocspresp.c:241,1
    - Dst: NSS_Shutdown
      Src: /src/nss/cmd/ocspresp/ocspresp.c:244,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/ocspresp/ocspresp.c:245,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 86
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 251
    functionName: main
    functionSourceFile: /src/nss/cmd/ocspresp/ocspresp.c
    functionUses: 2
    functionsReached:
    - NSS_Init
    - PR_Now
    - Usage
    - encode
    - CERT_GetOCSPResponseStatus
    - PORT_NewArena
    - CERT_DecodeOCSPResponse
    - CERT_GetDefaultCertDB
    - CERT_GetOCSPStatusForCertID
    - PORT_Assert
    - SECU_PrintError
    - PORT_FreeArena
    - encodeRevoked
    - PR_Init
    - SECU_PrintPRandOSError
    - CERT_DestroyOCSPResponse
    - CERT_DestroyCertificate
    - getCaAndSubjectCert
    - CERT_CreateEncodedOCSPErrorResponse
    - PK11_SetPasswordFunc
    - PORT_CheckSuccess
    - strcmp
    - CERT_CreateOCSPCertID
    - CERT_DestroyOCSPCertID
    - CERT_VerifyOCSPResponseSignature
    - PORT_Free
    - PORT_GetError
    - NSS_Shutdown
    - PORT_Strdup
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 88
    functionName: main
    functionSourceFile: /src/nss/cmd/tests/nonspr10.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NSS_InitReadWrite
      Src: /src/nss/cmd/tests/baddbdir.c:24,1
    - Dst: fprintf
      Src: /src/nss/cmd/tests/baddbdir.c:26,1
    - Dst: exit
      Src: /src/nss/cmd/tests/baddbdir.c:27,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/tests/baddbdir.c:29,1
    - Dst: fprintf
      Src: /src/nss/cmd/tests/baddbdir.c:31,1
    - Dst: exit
      Src: /src/nss/cmd/tests/baddbdir.c:34,1
    - Dst: printf
      Src: /src/nss/cmd/tests/baddbdir.c:36,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 38
    functionName: main
    functionSourceFile: /src/nss/cmd/tests/baddbdir.c
    functionUses: 2
    functionsReached:
    - NSS_InitReadWrite
    - PORT_GetError
    - printf
    - exit
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 27
    functionName: main
    functionSourceFile: /src/nss/cmd/tests/conflict.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/tests/remtest.c:36,1
    - Dst: exit
      Src: /src/nss/cmd/tests/remtest.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - progName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: Usage
    functionSourceFile: /src/nss/cmd/tests/remtest.c
    functionUses: 8
    functionsReached:
    - fprintf
    - exit
    linkageType: ''
    returnType: void
    signature: void Usage(char *progName)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/nss/cmd/tests/remtest.c:54,1
    - Dst: strrchr
      Src: /src/nss/cmd/tests/remtest.c:56,1
    - Dst: PL_CreateOptState
      Src: /src/nss/cmd/tests/remtest.c:59,1
    - Dst: PL_GetNextOpt
      Src: /src/nss/cmd/tests/remtest.c:60,1
    - Dst: strdup
      Src: /src/nss/cmd/tests/remtest.c:64,1
    - Dst: SECU_ConfigDirectory
      Src: /src/nss/cmd/tests/remtest.c:65,1
    - Dst: strdup
      Src: /src/nss/cmd/tests/remtest.c:68,1
    - Dst: Usage
      Src: /src/nss/cmd/tests/remtest.c:76,1
    - Dst: Usage
      Src: /src/nss/cmd/tests/remtest.c:79,1
    - Dst: SECU_DefaultSSLDir
      Src: /src/nss/cmd/tests/remtest.c:83,1
    - Dst: SECU_ConfigDirectory
      Src: /src/nss/cmd/tests/remtest.c:84,1
    - Dst: PR_Init
      Src: /src/nss/cmd/tests/remtest.c:87,1
    - Dst: PK11_SetPasswordFunc
      Src: /src/nss/cmd/tests/remtest.c:89,1
    - Dst: NSS_Init
      Src: /src/nss/cmd/tests/remtest.c:92,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tests/remtest.c:94,1
    - Dst: printf
      Src: /src/nss/cmd/tests/remtest.c:98,1
    - Dst: PK11_FindSlotByName
      Src: /src/nss/cmd/tests/remtest.c:99,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tests/remtest.c:101,1
    - Dst: PK11_WaitForTokenEvent
      Src: /src/nss/cmd/tests/remtest.c:107,1
    - Dst: printf
      Src: /src/nss/cmd/tests/remtest.c:112,1
    - Dst: printf
      Src: /src/nss/cmd/tests/remtest.c:116,1
    - Dst: printf
      Src: /src/nss/cmd/tests/remtest.c:120,1
    - Dst: printf
      Src: /src/nss/cmd/tests/remtest.c:124,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/cmd/tests/remtest.c:129,1
    - Dst: NSS_Shutdown
      Src: /src/nss/cmd/tests/remtest.c:131,1
    - Dst: exit
      Src: /src/nss/cmd/tests/remtest.c:132,1
    - Dst: PR_Cleanup
      Src: /src/nss/cmd/tests/remtest.c:134,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 69
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 136
    functionName: main
    functionSourceFile: /src/nss/cmd/tests/remtest.c
    functionUses: 2
    functionsReached:
    - PK11_FreeSlot
    - strdup
    - PK11_WaitForTokenEvent
    - PK11_FindSlotByName
    - PR_Cleanup
    - SECU_PrintError
    - PL_GetNextOpt
    - NSS_Init
    - SECU_DefaultSSLDir
    - printf
    - PR_Init
    - exit
    - NSS_Shutdown
    - strrchr
    - Usage
    - PK11_SetPasswordFunc
    - SECU_ConfigDirectory
    - PL_CreateOptState
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/tests/secmodtest.c:27,1
    - Dst: exit
      Src: /src/nss/cmd/tests/secmodtest.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - progName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 29
    functionName: Usage
    functionSourceFile: /src/nss/cmd/tests/secmodtest.c
    functionUses: 9
    functionsReached:
    - fprintf
    - exit
    linkageType: ''
    returnType: void
    signature: void Usage(char *progName)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/tests/secmodtest.c:38,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/tests/secmodtest.c:39,1
    - Dst: SECMOD_OpenUserDB
      Src: /src/nss/cmd/tests/secmodtest.c:46,1
    - Dst: PR_smprintf_free
      Src: /src/nss/cmd/tests/secmodtest.c:47,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tests/secmodtest.c:49,1
    - Dst: printf
      Src: /src/nss/cmd/tests/secmodtest.c:54,1
    - Dst: SECMOD_CloseUserDB
      Src: /src/nss/cmd/tests/secmodtest.c:55,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tests/secmodtest.c:58,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/cmd/tests/secmodtest.c:61,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - progName
    - configDir
    - tokenName
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 65
    functionName: TestOpenCloseUserDB
    functionSourceFile: /src/nss/cmd/tests/secmodtest.c
    functionUses: 0
    functionsReached:
    - SECU_PrintError
    - printf
    - SECMOD_OpenUserDB
    - SECMOD_CloseUserDB
    - PR_smprintf_free
    - PR_smprintf
    - PK11_FreeSlot
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus TestOpenCloseUserDB(char *progName, char *configDir, char
      *tokenName)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/nss/cmd/tests/secmodtest.c:76,1
    - Dst: strrchr
      Src: /src/nss/cmd/tests/secmodtest.c:78,1
    - Dst: PL_CreateOptState
      Src: /src/nss/cmd/tests/secmodtest.c:82,1
    - Dst: PL_GetNextOpt
      Src: /src/nss/cmd/tests/secmodtest.c:83,1
    - Dst: strdup
      Src: /src/nss/cmd/tests/secmodtest.c:86,1
    - Dst: Usage
      Src: /src/nss/cmd/tests/secmodtest.c:91,1
    - Dst: NSS_NoDB_Init
      Src: /src/nss/cmd/tests/secmodtest.c:94,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tests/secmodtest.c:96,1
    - Dst: printf
      Src: /src/nss/cmd/tests/secmodtest.c:100,1
    - Dst: TestOpenCloseUserDB
      Src: /src/nss/cmd/tests/secmodtest.c:101,1
    - Dst: printf
      Src: /src/nss/cmd/tests/secmodtest.c:106,1
    - Dst: TestOpenCloseUserDB
      Src: /src/nss/cmd/tests/secmodtest.c:107,1
    - Dst: free
      Src: /src/nss/cmd/tests/secmodtest.c:114,1
    - Dst: NSS_Shutdown
      Src: /src/nss/cmd/tests/secmodtest.c:116,1
    - Dst: exit
      Src: /src/nss/cmd/tests/secmodtest.c:117,1
    - Dst: PR_Cleanup
      Src: /src/nss/cmd/tests/secmodtest.c:119,1
    - Dst: exit
      Src: /src/nss/cmd/tests/secmodtest.c:122,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 126
    functionName: main
    functionSourceFile: /src/nss/cmd/tests/secmodtest.c
    functionUses: 2
    functionsReached:
    - strdup
    - TestOpenCloseUserDB
    - NSS_NoDB_Init
    - free
    - PR_Cleanup
    - SECU_PrintError
    - PL_GetNextOpt
    - printf
    - exit
    - NSS_Shutdown
    - strrchr
    - Usage
    - PL_CreateOptState
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1EncodeInteger
      Src: /src/nss/cmd/tests/encodeinttest.c:38,1
    - Dst: fprintf
      Src: /src/nss/cmd/tests/encodeinttest.c:39,1
    - Dst: memcmp
      Src: /src/nss/cmd/tests/encodeinttest.c:44,1
    - Dst: fprintf
      Src: /src/nss/cmd/tests/encodeinttest.c:45,1
    - Dst: fprintf
      Src: /src/nss/cmd/tests/encodeinttest.c:48,1
    - Dst: fputs
      Src: /src/nss/cmd/tests/encodeinttest.c:50,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/tests/encodeinttest.c:53,1
    - Dst: fprintf
      Src: /src/nss/cmd/tests/encodeinttest.c:57,1
    - Dst: printf
      Src: /src/nss/cmd/tests/encodeinttest.c:60,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 62
    functionName: main
    functionSourceFile: /src/nss/cmd/tests/encodeinttest.c
    functionUses: 2
    functionsReached:
    - fputs
    - PORT_Free
    - printf
    - fprintf
    - SEC_ASN1EncodeInteger
    - memcmp
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: DER_UTCTimeToTime
      Src: /src/nss/cmd/tests/dertimetest.c:24,1
    - Dst: fprintf
      Src: /src/nss/cmd/tests/dertimetest.c:26,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/tests/dertimetest.c:30,1
    - Dst: fprintf
      Src: /src/nss/cmd/tests/dertimetest.c:32,1
    - Dst: DER_UTCTimeToTime
      Src: /src/nss/cmd/tests/dertimetest.c:43,1
    - Dst: fprintf
      Src: /src/nss/cmd/tests/dertimetest.c:45,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/tests/dertimetest.c:49,1
    - Dst: fprintf
      Src: /src/nss/cmd/tests/dertimetest.c:51,1
    - Dst: DER_GeneralizedTimeToTime
      Src: /src/nss/cmd/tests/dertimetest.c:62,1
    - Dst: fprintf
      Src: /src/nss/cmd/tests/dertimetest.c:64,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/tests/dertimetest.c:68,1
    - Dst: fprintf
      Src: /src/nss/cmd/tests/dertimetest.c:70,1
    - Dst: DER_GeneralizedTimeToTime
      Src: /src/nss/cmd/tests/dertimetest.c:81,1
    - Dst: fprintf
      Src: /src/nss/cmd/tests/dertimetest.c:83,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/tests/dertimetest.c:87,1
    - Dst: fprintf
      Src: /src/nss/cmd/tests/dertimetest.c:89,1
    - Dst: fprintf
      Src: /src/nss/cmd/tests/dertimetest.c:97,1
    - Dst: printf
      Src: /src/nss/cmd/tests/dertimetest.c:100,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 63
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 102
    functionName: main
    functionSourceFile: /src/nss/cmd/tests/dertimetest.c
    functionUses: 2
    functionsReached:
    - printf
    - PORT_GetError
    - fprintf
    - DER_GeneralizedTimeToTime
    - DER_UTCTimeToTime
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - rv
    - ','
    - ln
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 47
    functionName: CHECKERROR
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECKERROR(rv, ln)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: TIMESTART
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TIMESTART()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - time
    - ','
    - reps
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: TIMEFINISH
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TIMEFINISH(time, reps)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - seconds
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 77
    functionName: TIMEMARK
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TIMEMARK(seconds)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: TIMETOFINISH
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TIMETOFINISH()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:86,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:87,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:88,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:89,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:90,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:91,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:92,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:93,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:94,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:95,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:96,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:97,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:98,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:99,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:100,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:101,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:102,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:103,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:104,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:105,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:106,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:107,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:108,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:109,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:110,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:111,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:112,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:113,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:114,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:115,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:116,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:117,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:118,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:119,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:120,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:121,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:122,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:123,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:124,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:125,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:126,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:127,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:128,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:129,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:130,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:131,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:132,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:133,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:134,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:135,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:136,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:137,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:138,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:139,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:140,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:141,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:142,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:143,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:144,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:145,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:146,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:147,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:148,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:149,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:150,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:151,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:152,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:153,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:154,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:155,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:156,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:157,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:158,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:159,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:160,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:162,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:163,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:164,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:165,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:166,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:168,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:169,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:170,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:171,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:172,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:173,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:174,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/bltest/blapitest.c:175,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:176,1
    - Dst: exit
      Src: /src/nss/cmd/bltest/blapitest.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 91
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 178
    functionName: Usage
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 10
    functionsReached:
    - fprintf
    - PRINTUSAGE
    - exit
    linkageType: ''
    returnType: void
    signature: void Usage()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - subject
    - ','
    - option
    - ','
    - predicate
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 86
    functionName: PRINTUSAGE
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PRINTUSAGE(subject, option, predicate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/bltest/blapitest.c:196,1
    - Dst: SECITEM_ReallocItem
      Src: /src/nss/cmd/bltest/blapitest.c:201,1
    - Dst: PORT_Memcpy
      Src: /src/nss/cmd/bltest/blapitest.c:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - arg
    - ibuf
    - size
    argTypes:
    - void*
    - unsigned char*
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 206
    functionName: get_binary
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - SECITEM_ReallocItem
    - PORT_Memcpy
    - SECITEM_AllocItem
    linkageType: ''
    returnType: PRInt32
    signature: PRInt32 get_binary(void *arg, const unsigned char *ibuf, PRInt32 size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/nss/cmd/bltest/blapitest.c:219,1
    - Dst: NSSBase64Decoder_Create
      Src: /src/nss/cmd/bltest/blapitest.c:221,1
    - Dst: NSSBase64Decoder_Update
      Src: /src/nss/cmd/bltest/blapitest.c:222,1
    - Dst: NSSBase64Decoder_Destroy
      Src: /src/nss/cmd/bltest/blapitest.c:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - ascii
    - binary
    - arena
    argTypes:
    - SECItem*
    - SECItem*
    - PLArenaPool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 225
    functionName: atob
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - strncmp
    - NSSBase64Decoder_Create
    - NSSBase64Decoder_Destroy
    - NSSBase64Decoder_Update
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus atob(SECItem *ascii, SECItem *binary, PLArenaPool *arena)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_Write
      Src: /src/nss/cmd/bltest/blapitest.c:231,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/bltest/blapitest.c:233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - arg
    - obuf
    - size
    argTypes:
    - void*
    - char*
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 237
    functionName: output_ascii
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PR_Write
    linkageType: ''
    returnType: PRInt32
    signature: PRInt32 output_ascii(void *arg, const char *obuf, PRInt32 size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSSBase64Encoder_Create
      Src: /src/nss/cmd/bltest/blapitest.c:246,1
    - Dst: NSSBase64Encoder_Update
      Src: /src/nss/cmd/bltest/blapitest.c:247,1
    - Dst: NSSBase64Encoder_Destroy
      Src: /src/nss/cmd/bltest/blapitest.c:248,1
    - Dst: PR_Write
      Src: /src/nss/cmd/bltest/blapitest.c:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - binary
    - outfile
    argTypes:
    - SECItem*
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 251
    functionName: btoa_file
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - NSSBase64Encoder_Update
    - PR_Write
    - NSSBase64Encoder_Destroy
    - NSSBase64Encoder_Create
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus btoa_file(SECItem *binary, PRFileDesc *outfile)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - c2
    - byteval
    argTypes:
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 274
    functionName: hex_from_2char
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus hex_from_2char(unsigned char *c2, unsigned char *byteval)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - byteval
    - c2
    argTypes:
    - unsigned char
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 290
    functionName: char2_from_hex
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus char2_from_hex(unsigned char byteval, char *c2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSSBase64Encoder_Create
      Src: /src/nss/cmd/bltest/blapitest.c:298,1
    - Dst: NSSBase64Encoder_Update
      Src: /src/nss/cmd/bltest/blapitest.c:304,1
    - Dst: NSSBase64Encoder_Update
      Src: /src/nss/cmd/bltest/blapitest.c:305,1
    - Dst: NSSBase64Encoder_Destroy
      Src: /src/nss/cmd/bltest/blapitest.c:307,1
    - Dst: PR_Write
      Src: /src/nss/cmd/bltest/blapitest.c:308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - it
    - ni
    - file
    argTypes:
    - SECItem*
    - int
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 309
    functionName: serialize_key
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - NSSBase64Encoder_Update
    - PR_Write
    - NSSBase64Encoder_Destroy
    - NSSBase64Encoder_Create
    linkageType: ''
    returnType: void
    signature: void serialize_key(SECItem *it, int ni, PRFileDesc *file)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/cmd/bltest/blapitest.c:325,1
    - Dst: PORT_Memcpy
      Src: /src/nss/cmd/bltest/blapitest.c:326,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 5
    argNames:
    - arena
    - it
    - ns
    - ni
    - filedata
    argTypes:
    - PLArenaPool*
    - SECItem*
    - int
    - int
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 335
    functionName: key_from_filedata
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - PORT_ArenaAlloc
    - PORT_Memcpy
    linkageType: ''
    returnType: void
    signature: void key_from_filedata(PLArenaPool *arena, SECItem *it, int ns, int
      ni, SECItem *filedata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/cmd/bltest/blapitest.c:341,1
    - Dst: key_from_filedata
      Src: /src/nss/cmd/bltest/blapitest.c:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - arena
    - filedata
    argTypes:
    - PLArenaPool*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 345
    functionName: rsakey_from_filedata
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - key_from_filedata
    - PORT_ArenaZAlloc
    linkageType: ''
    returnType: RSAPrivateKey
    signature: 'RSAPrivateKey *

      rsakey_from_filedata(PLArenaPool *arena, SECItem *filedata)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/cmd/bltest/blapitest.c:351,1
    - Dst: key_from_filedata
      Src: /src/nss/cmd/bltest/blapitest.c:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - arena
    - filedata
    argTypes:
    - PLArenaPool*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 355
    functionName: pqg_from_filedata
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - key_from_filedata
    - PORT_ArenaZAlloc
    linkageType: ''
    returnType: PQGParams
    signature: 'PQGParams *

      pqg_from_filedata(PLArenaPool *arena, SECItem *filedata)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/cmd/bltest/blapitest.c:361,1
    - Dst: key_from_filedata
      Src: /src/nss/cmd/bltest/blapitest.c:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - arena
    - filedata
    argTypes:
    - PLArenaPool*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 365
    functionName: dsakey_from_filedata
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - key_from_filedata
    - PORT_ArenaZAlloc
    linkageType: ''
    returnType: DSAPrivateKey
    signature: 'DSAPrivateKey *

      dsakey_from_filedata(PLArenaPool *arena, SECItem *filedata)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/cmd/bltest/blapitest.c:373,1
    - Dst: key_from_filedata
      Src: /src/nss/cmd/bltest/blapitest.c:376,1
    - Dst: SECOID_Init
      Src: /src/nss/cmd/bltest/blapitest.c:377,1
    - Dst: CHECKERROR
      Src: /src/nss/cmd/bltest/blapitest.c:378,1
    - Dst: EC_DecodeParams
      Src: /src/nss/cmd/bltest/blapitest.c:379,1
    - Dst: CHECKERROR
      Src: /src/nss/cmd/bltest/blapitest.c:380,1
    - Dst: EC_CopyParams
      Src: /src/nss/cmd/bltest/blapitest.c:381,1
    - Dst: CHECKERROR
      Src: /src/nss/cmd/bltest/blapitest.c:382,1
    - Dst: SECOID_Shutdown
      Src: /src/nss/cmd/bltest/blapitest.c:383,1
    - Dst: CHECKERROR
      Src: /src/nss/cmd/bltest/blapitest.c:384,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/bltest/blapitest.c:385,1
    - Dst: key_from_filedata
      Src: /src/nss/cmd/bltest/blapitest.c:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 2
    argNames:
    - arena
    - filedata
    argTypes:
    - PLArenaPool*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 389
    functionName: eckey_from_filedata
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - PORT_ArenaZAlloc
    - SECOID_Shutdown
    - CHECKERROR
    - PORT_FreeArena
    - key_from_filedata
    - EC_DecodeParams
    - SECOID_Init
    - EC_CopyParams
    linkageType: ''
    returnType: ECPrivateKey
    signature: 'ECPrivateKey *

      eckey_from_filedata(PLArenaPool *arena, SECItem *filedata)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PL_strcmp
      Src: /src/nss/cmd/bltest/blapitest.c:490,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/cmd/bltest/blapitest.c:497,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:498,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/bltest/blapitest.c:502,1
    - Dst: memcpy
      Src: /src/nss/cmd/bltest/blapitest.c:511,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - curve
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 478
    functionDepth: 1
    functionLinenumber: 478
    functionLinenumberEnd: 514
    functionName: getECParams
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 1
    functionsReached:
    - memcpy
    - SECOID_FindOIDByTag
    - SECITEM_AllocItem
    - fprintf
    - PL_strcmp
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      getECParams(const char *curve)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/bltest/blapitest.c:519,1
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/bltest/blapitest.c:520,1
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/bltest/blapitest.c:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pqg
    argTypes:
    - PQGParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 516
    functionDepth: 1
    functionLinenumber: 516
    functionLinenumberEnd: 522
    functionName: dump_pqg
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - SECU_PrintInteger
    linkageType: ''
    returnType: void
    signature: void dump_pqg(PQGParams *pqg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dump_pqg
      Src: /src/nss/cmd/bltest/blapitest.c:527,1
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/bltest/blapitest.c:528,1
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/bltest/blapitest.c:529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - DSAPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 524
    functionDepth: 2
    functionLinenumber: 524
    functionLinenumberEnd: 530
    functionName: dump_dsakey
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - SECU_PrintInteger
    - dump_pqg
    linkageType: ''
    returnType: void
    signature: void dump_dsakey(DSAPrivateKey *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/bltest/blapitest.c:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ecp
    argTypes:
    - ECParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 532
    functionDepth: 1
    functionLinenumber: 532
    functionLinenumberEnd: 537
    functionName: dump_ecp
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - SECU_PrintInteger
    linkageType: ''
    returnType: void
    signature: void dump_ecp(ECParams *ecp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dump_ecp
      Src: /src/nss/cmd/bltest/blapitest.c:542,1
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/bltest/blapitest.c:543,1
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/bltest/blapitest.c:544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - ECPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 539
    functionDepth: 2
    functionLinenumber: 539
    functionLinenumberEnd: 545
    functionName: dump_eckey
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - SECU_PrintInteger
    - dump_ecp
    linkageType: ''
    returnType: void
    signature: void dump_eckey(ECPrivateKey *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/bltest/blapitest.c:550,1
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/bltest/blapitest.c:551,1
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/bltest/blapitest.c:552,1
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/bltest/blapitest.c:553,1
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/bltest/blapitest.c:554,1
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/bltest/blapitest.c:555,1
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/bltest/blapitest.c:556,1
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/bltest/blapitest.c:557,1
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/bltest/blapitest.c:558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - key
    argTypes:
    - RSAPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 547
    functionDepth: 1
    functionLinenumber: 547
    functionLinenumberEnd: 559
    functionName: dump_rsakey
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - SECU_PrintInteger
    linkageType: ''
    returnType: void
    signature: void dump_rsakey(RSAPrivateKey *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - mode
    argTypes:
    - bltestCipherMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 809
    functionDepth: 0
    functionLinenumber: 809
    functionLinenumberEnd: 816
    functionName: is_symmkeyCipher
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool is_symmkeyCipher(bltestCipherMode mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - mode
    argTypes:
    - bltestCipherMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 818
    functionDepth: 0
    functionLinenumber: 818
    functionLinenumberEnd: 828
    functionName: is_aeadCipher
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool is_aeadCipher(bltestCipherMode mode)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - mode
    argTypes:
    - bltestCipherMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 830
    functionDepth: 0
    functionLinenumber: 830
    functionLinenumberEnd: 841
    functionName: is_authCipher
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool is_authCipher(bltestCipherMode mode)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - mode
    argTypes:
    - bltestCipherMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 843
    functionDepth: 0
    functionLinenumber: 843
    functionLinenumberEnd: 856
    functionName: is_singleShotCipher
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool is_singleShotCipher(bltestCipherMode mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - mode
    argTypes:
    - bltestCipherMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 858
    functionDepth: 0
    functionLinenumber: 858
    functionLinenumberEnd: 865
    functionName: is_pubkeyCipher
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool is_pubkeyCipher(bltestCipherMode mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - mode
    argTypes:
    - bltestCipherMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 867
    functionDepth: 0
    functionLinenumber: 867
    functionLinenumberEnd: 874
    functionName: is_hashCipher
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool is_hashCipher(bltestCipherMode mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - mode
    argTypes:
    - bltestCipherMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 876
    functionDepth: 0
    functionLinenumber: 876
    functionLinenumberEnd: 883
    functionName: is_sigCipher
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool is_sigCipher(bltestCipherMode mode)
  - BBCount: 14
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - mode
    argTypes:
    - bltestCipherMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 885
    functionDepth: 0
    functionLinenumber: 885
    functionLinenumberEnd: 912
    functionName: cipher_requires_IV
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool cipher_requires_IV(bltestCipherMode mode)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: SECU_FileToItem
      Src: /src/nss/cmd/bltest/blapitest.c:929,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/bltest/blapitest.c:937,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/bltest/blapitest.c:941,1
    - Dst: RNG_GenerateGlobalRandomBytes
      Src: /src/nss/cmd/bltest/blapitest.c:942,1
    - Dst: finishIO
      Src: /src/nss/cmd/bltest/blapitest.c:943,1
    - Dst: atob
      Src: /src/nss/cmd/bltest/blapitest.c:955,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/cmd/bltest/blapitest.c:967,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/bltest/blapitest.c:970,1
    - Dst: hex_from_2char
      Src: /src/nss/cmd/bltest/blapitest.c:977,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/bltest/blapitest.c:983,1
    - Dst: hex_from_2char
      Src: /src/nss/cmd/bltest/blapitest.c:986,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/bltest/blapitest.c:994,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 65
    argCount: 5
    argNames:
    - arena
    - input
    - file
    - str
    - numBytes
    argTypes:
    - PLArenaPool*
    - bltestIO*
    - PRFileDesc*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 916
    functionDepth: 2
    functionLinenumber: 916
    functionLinenumberEnd: 996
    functionName: setupIO
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - atob
    - PL_strlen
    - finishIO
    - SECITEM_AllocItem
    - SECITEM_CopyItem
    - hex_from_2char
    - RNG_GenerateGlobalRandomBytes
    - SECITEM_FreeItem
    - SECU_FileToItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus setupIO(PLArenaPool *arena, bltestIO *input, PRFileDesc
      *file,\n        char *str, int numBytes)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: btoa_file
      Src: /src/nss/cmd/bltest/blapitest.c:1014,1
    - Dst: PR_Write
      Src: /src/nss/cmd/bltest/blapitest.c:1017,1
    - Dst: char2_from_hex
      Src: /src/nss/cmd/bltest/blapitest.c:1026,1
    - Dst: PR_Write
      Src: /src/nss/cmd/bltest/blapitest.c:1027,1
    - Dst: PR_Write
      Src: /src/nss/cmd/bltest/blapitest.c:1031,1
    - Dst: char2_from_hex
      Src: /src/nss/cmd/bltest/blapitest.c:1036,1
    - Dst: PR_Write
      Src: /src/nss/cmd/bltest/blapitest.c:1039,1
    - Dst: PR_Write
      Src: /src/nss/cmd/bltest/blapitest.c:1041,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 2
    argNames:
    - output
    - file
    argTypes:
    - bltestIO*
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1045
      start: 998
    functionDepth: 2
    functionLinenumber: 998
    functionLinenumberEnd: 1045
    functionName: finishIO
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 1
    functionsReached:
    - PR_Write
    - btoa_file
    - char2_from_hex
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus finishIO(bltestIO *output, PRFileDesc *file)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_CopyItem
      Src: /src/nss/cmd/bltest/blapitest.c:1050,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - arena
    - dest
    - src
    argTypes:
    - PLArenaPool*
    - bltestIO*
    - bltestIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 1047
    functionDepth: 0
    functionLinenumber: 1047
    functionLinenumberEnd: 1061
    functionName: bltestCopyIO
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - SECITEM_CopyItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus bltestCopyIO(PLArenaPool *arena, bltestIO *dest, bltestIO
      *src)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_ReallocItemV2
      Src: /src/nss/cmd/bltest/blapitest.c:1069,1
    - Dst: memmove
      Src: /src/nss/cmd/bltest/blapitest.c:1073,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - arena
    - io
    - 'off'
    argTypes:
    - PLArenaPool*
    - bltestIO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1084
      start: 1063
    functionDepth: 1
    functionLinenumber: 1063
    functionLinenumberEnd: 1084
    functionName: misalignBuffer
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - memmove
    - SECITEM_ReallocItemV2
    linkageType: ''
    returnType: void
    signature: void misalignBuffer(PLArenaPool *arena, bltestIO *io, int off)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DES_Encrypt
      Src: /src/nss/cmd/bltest/blapitest.c:1091,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - void*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1093
      start: 1086
    functionDepth: 0
    functionLinenumber: 1086
    functionLinenumberEnd: 1093
    functionName: des_Encrypt
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - DES_Encrypt
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus des_Encrypt(void *cx, unsigned char *output, unsigned int
      *outputLen,\n            unsigned int maxOutputLen, const unsigned char *input,\n
      \           unsigned int inputLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DES_Decrypt
      Src: /src/nss/cmd/bltest/blapitest.c:1100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - void*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1102
      start: 1095
    functionDepth: 0
    functionLinenumber: 1095
    functionLinenumberEnd: 1102
    functionName: des_Decrypt
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - DES_Decrypt
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus des_Decrypt(void *cx, unsigned char *output, unsigned int
      *outputLen,\n            unsigned int maxOutputLen, const unsigned char *input,\n
      \           unsigned int inputLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RC2_Encrypt
      Src: /src/nss/cmd/bltest/blapitest.c:1110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - void*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1112
      start: 1105
    functionDepth: 0
    functionLinenumber: 1105
    functionLinenumberEnd: 1112
    functionName: rc2_Encrypt
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - RC2_Encrypt
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus rc2_Encrypt(void *cx, unsigned char *output, unsigned int
      *outputLen,\n            unsigned int maxOutputLen, const unsigned char *input,\n
      \           unsigned int inputLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RC2_Decrypt
      Src: /src/nss/cmd/bltest/blapitest.c:1119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - void*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1114
    functionDepth: 0
    functionLinenumber: 1114
    functionLinenumberEnd: 1121
    functionName: rc2_Decrypt
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - RC2_Decrypt
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus rc2_Decrypt(void *cx, unsigned char *output, unsigned int
      *outputLen,\n            unsigned int maxOutputLen, const unsigned char *input,\n
      \           unsigned int inputLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RC4_Encrypt
      Src: /src/nss/cmd/bltest/blapitest.c:1129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - void*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1131
      start: 1124
    functionDepth: 0
    functionLinenumber: 1124
    functionLinenumberEnd: 1131
    functionName: rc4_Encrypt
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - RC4_Encrypt
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus rc4_Encrypt(void *cx, unsigned char *output, unsigned int
      *outputLen,\n            unsigned int maxOutputLen, const unsigned char *input,\n
      \           unsigned int inputLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RC4_Decrypt
      Src: /src/nss/cmd/bltest/blapitest.c:1138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - void*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1140
      start: 1133
    functionDepth: 0
    functionLinenumber: 1133
    functionLinenumberEnd: 1140
    functionName: rc4_Decrypt
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - RC4_Decrypt
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus rc4_Decrypt(void *cx, unsigned char *output, unsigned int
      *outputLen,\n            unsigned int maxOutputLen, const unsigned char *input,\n
      \           unsigned int inputLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AES_Encrypt
      Src: /src/nss/cmd/bltest/blapitest.c:1147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - void*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1149
      start: 1142
    functionDepth: 0
    functionLinenumber: 1142
    functionLinenumberEnd: 1149
    functionName: aes_Encrypt
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - AES_Encrypt
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus aes_Encrypt(void *cx, unsigned char *output, unsigned int
      *outputLen,\n            unsigned int maxOutputLen, const unsigned char *input,\n
      \           unsigned int inputLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AES_Decrypt
      Src: /src/nss/cmd/bltest/blapitest.c:1156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - void*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1158
      start: 1151
    functionDepth: 0
    functionLinenumber: 1151
    functionLinenumberEnd: 1158
    functionName: aes_Decrypt
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - AES_Decrypt
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus aes_Decrypt(void *cx, unsigned char *output, unsigned int
      *outputLen,\n            unsigned int maxOutputLen, const unsigned char *input,\n
      \           unsigned int inputLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/cmd/bltest/blapitest.c:1166,1
    - Dst: ChaCha20_Xor
      Src: /src/nss/cmd/bltest/blapitest.c:1171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - void*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1173
      start: 1160
    functionDepth: 0
    functionLinenumber: 1160
    functionLinenumberEnd: 1173
    functionName: chacha20_Encrypt
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - ChaCha20_Xor
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus chacha20_Encrypt(void *cx, unsigned char *output, unsigned
      int *outputLen,\n                 unsigned int maxOutputLen, const unsigned
      char *input,\n                 unsigned int inputLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ChaCha20Poly1305_Seal
      Src: /src/nss/cmd/bltest/blapitest.c:1182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 10
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    - nonce
    - nonceLen
    - ad
    - adLen
    argTypes:
    - void*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1185
      start: 1175
    functionDepth: 0
    functionLinenumber: 1175
    functionLinenumberEnd: 1185
    functionName: chacha20_poly1305_Encrypt
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - ChaCha20Poly1305_Seal
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus chacha20_poly1305_Encrypt(void *cx, unsigned char *output,\n
      \                         unsigned int *outputLen, unsigned int maxOutputLen,\n
      \                         const unsigned char *input, unsigned int inputLen,\n
      \                         const unsigned char *nonce, unsigned int nonceLen,\n
      \                         const unsigned char *ad, unsigned int adLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ChaCha20Poly1305_Open
      Src: /src/nss/cmd/bltest/blapitest.c:1194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 10
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    - nonce
    - nonceLen
    - ad
    - adLen
    argTypes:
    - void*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1197
      start: 1187
    functionDepth: 0
    functionLinenumber: 1187
    functionLinenumberEnd: 1197
    functionName: chacha20_poly1305_Decrypt
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - ChaCha20Poly1305_Open
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus chacha20_poly1305_Decrypt(void *cx, unsigned char *output,\n
      \                         unsigned int *outputLen, unsigned int maxOutputLen,\n
      \                         const unsigned char *input, unsigned int inputLen,\n
      \                         const unsigned char *nonce, unsigned int nonceLen,\n
      \                         const unsigned char *ad, unsigned int adLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Camellia_Encrypt
      Src: /src/nss/cmd/bltest/blapitest.c:1204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - void*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1207
      start: 1199
    functionDepth: 0
    functionLinenumber: 1199
    functionLinenumberEnd: 1207
    functionName: camellia_Encrypt
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - Camellia_Encrypt
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus camellia_Encrypt(void *cx, unsigned char *output, unsigned
      int *outputLen,\n                 unsigned int maxOutputLen, const unsigned
      char *input,\n                 unsigned int inputLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Camellia_Decrypt
      Src: /src/nss/cmd/bltest/blapitest.c:1214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - void*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1217
      start: 1209
    functionDepth: 0
    functionLinenumber: 1209
    functionLinenumberEnd: 1217
    functionName: camellia_Decrypt
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - Camellia_Decrypt
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus camellia_Decrypt(void *cx, unsigned char *output, unsigned
      int *outputLen,\n                 unsigned int maxOutputLen, const unsigned
      char *input,\n                 unsigned int inputLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SEED_Encrypt
      Src: /src/nss/cmd/bltest/blapitest.c:1225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - void*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1227
      start: 1220
    functionDepth: 0
    functionLinenumber: 1220
    functionLinenumberEnd: 1227
    functionName: seed_Encrypt
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - SEED_Encrypt
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus seed_Encrypt(void *cx, unsigned char *output, unsigned int
      *outputLen,\n             unsigned int maxOutputLen, const unsigned char *input,\n
      \            unsigned int inputLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SEED_Decrypt
      Src: /src/nss/cmd/bltest/blapitest.c:1234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - void*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1236
      start: 1229
    functionDepth: 0
    functionLinenumber: 1229
    functionLinenumberEnd: 1236
    functionName: seed_Decrypt
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - SEED_Decrypt
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus seed_Decrypt(void *cx, unsigned char *output, unsigned int
      *outputLen,\n             unsigned int maxOutputLen, const unsigned char *input,\n
      \            unsigned int inputLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RSA_PublicKeyOp
      Src: /src/nss/cmd/bltest/blapitest.c:1244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - cx
    - output
    - input
    argTypes:
    - void*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1249
      start: 1239
    functionDepth: 0
    functionLinenumber: 1239
    functionLinenumberEnd: 1249
    functionName: rsa_PublicKeyOp
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - RSA_PublicKeyOp
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus rsa_PublicKeyOp(void *cx, SECItem *output, const SECItem
      *input)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RSA_PrivateKeyOp
      Src: /src/nss/cmd/bltest/blapitest.c:1256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - cx
    - output
    - input
    argTypes:
    - void*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1261
      start: 1251
    functionDepth: 0
    functionLinenumber: 1251
    functionLinenumberEnd: 1261
    functionName: rsa_PrivateKeyOp
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - RSA_PrivateKeyOp
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus rsa_PrivateKeyOp(void *cx, SECItem *output, const SECItem
      *input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSA_SignPSS
      Src: /src/nss/cmd/bltest/blapitest.c:1268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cx
    - output
    - input
    argTypes:
    - void*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1275
      start: 1263
    functionDepth: 0
    functionLinenumber: 1263
    functionLinenumberEnd: 1275
    functionName: rsa_signDigestPSS
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - RSA_SignPSS
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus rsa_signDigestPSS(void *cx, SECItem *output, const SECItem
      *input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSA_CheckSignPSS
      Src: /src/nss/cmd/bltest/blapitest.c:1282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cx
    - output
    - input
    argTypes:
    - void*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1288
      start: 1277
    functionDepth: 0
    functionLinenumber: 1277
    functionLinenumberEnd: 1288
    functionName: rsa_verifyDigestPSS
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - RSA_CheckSignPSS
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus rsa_verifyDigestPSS(void *cx, SECItem *output, const SECItem
      *input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSA_EncryptOAEP
      Src: /src/nss/cmd/bltest/blapitest.c:1295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cx
    - output
    - input
    argTypes:
    - void*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1303
      start: 1290
    functionDepth: 0
    functionLinenumber: 1290
    functionLinenumberEnd: 1303
    functionName: rsa_encryptOAEP
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - RSA_EncryptOAEP
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus rsa_encryptOAEP(void *cx, SECItem *output, const SECItem
      *input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSA_DecryptOAEP
      Src: /src/nss/cmd/bltest/blapitest.c:1310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cx
    - output
    - input
    argTypes:
    - void*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1316
      start: 1305
    functionDepth: 0
    functionLinenumber: 1305
    functionLinenumberEnd: 1316
    functionName: rsa_decryptOAEP
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - RSA_DecryptOAEP
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus rsa_decryptOAEP(void *cx, SECItem *output, const SECItem
      *input)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DSA_SignDigestWithSeed
      Src: /src/nss/cmd/bltest/blapitest.c:1323,1
    - Dst: DSA_SignDigest
      Src: /src/nss/cmd/bltest/blapitest.c:1327,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - cx
    - output
    - input
    argTypes:
    - void*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1328
      start: 1318
    functionDepth: 0
    functionLinenumber: 1318
    functionLinenumberEnd: 1328
    functionName: dsa_signDigest
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - DSA_SignDigestWithSeed
    - DSA_SignDigest
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus dsa_signDigest(void *cx, SECItem *output, const SECItem *input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DSA_VerifyDigest
      Src: /src/nss/cmd/bltest/blapitest.c:1334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cx
    - output
    - input
    argTypes:
    - void*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1335
      start: 1330
    functionDepth: 0
    functionLinenumber: 1330
    functionLinenumberEnd: 1335
    functionName: dsa_verifyDigest
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - DSA_VerifyDigest
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus dsa_verifyDigest(void *cx, SECItem *output, const SECItem
      *input)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ECDSA_SignDigestWithSeed
      Src: /src/nss/cmd/bltest/blapitest.c:1342,1
    - Dst: ECDSA_SignDigest
      Src: /src/nss/cmd/bltest/blapitest.c:1348,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - cx
    - output
    - input
    argTypes:
    - void*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1349
      start: 1337
    functionDepth: 0
    functionLinenumber: 1337
    functionLinenumberEnd: 1349
    functionName: ecdsa_signDigest
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - ECDSA_SignDigestWithSeed
    - ECDSA_SignDigest
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ecdsa_signDigest(void *cx, SECItem *output, const SECItem
      *input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ECDSA_VerifyDigest
      Src: /src/nss/cmd/bltest/blapitest.c:1355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cx
    - output
    - input
    argTypes:
    - void*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1356
      start: 1351
    functionDepth: 0
    functionLinenumber: 1351
    functionLinenumberEnd: 1356
    functionName: ecdsa_verifyDigest
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - ECDSA_VerifyDigest
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ecdsa_verifyDigest(void *cx, SECItem *output, const SECItem
      *input)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: DES_CreateContext
      Src: /src/nss/cmd/bltest/blapitest.c:1381,1
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/bltest/blapitest.c:1386,1
    - Dst: TIMESTART
      Src: /src/nss/cmd/bltest/blapitest.c:1387,1
    - Dst: DES_CreateContext
      Src: /src/nss/cmd/bltest/blapitest.c:1389,1
    - Dst: TIMEFINISH
      Src: /src/nss/cmd/bltest/blapitest.c:1393,1
    - Dst: DES_DestroyContext
      Src: /src/nss/cmd/bltest/blapitest.c:1395,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/bltest/blapitest.c:1397,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 2
    argNames:
    - cipherInfo
    - encrypt
    argTypes:
    - bltestCipherInfo*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1404
      start: 1358
    functionDepth: 1
    functionLinenumber: 1358
    functionLinenumberEnd: 1404
    functionName: bltest_des_init
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - DES_DestroyContext
    - PORT_Free
    - TIMEFINISH
    - TIMESTART
    - DES_CreateContext
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus bltest_des_init(bltestCipherInfo *cipherInfo, PRBool encrypt)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: RC2_CreateContext
      Src: /src/nss/cmd/bltest/blapitest.c:1424,1
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/bltest/blapitest.c:1431,1
    - Dst: TIMESTART
      Src: /src/nss/cmd/bltest/blapitest.c:1432,1
    - Dst: RC2_CreateContext
      Src: /src/nss/cmd/bltest/blapitest.c:1434,1
    - Dst: TIMEFINISH
      Src: /src/nss/cmd/bltest/blapitest.c:1440,1
    - Dst: RC2_DestroyContext
      Src: /src/nss/cmd/bltest/blapitest.c:1442,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/bltest/blapitest.c:1444,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - cipherInfo
    - encrypt
    argTypes:
    - bltestCipherInfo*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1451
      start: 1407
    functionDepth: 1
    functionLinenumber: 1407
    functionLinenumberEnd: 1451
    functionName: bltest_rc2_init
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - RC2_DestroyContext
    - PORT_Free
    - TIMEFINISH
    - TIMESTART
    - RC2_CreateContext
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus bltest_rc2_init(bltestCipherInfo *cipherInfo, PRBool encrypt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RC4_CreateContext
      Src: /src/nss/cmd/bltest/blapitest.c:1460,1
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/bltest/blapitest.c:1464,1
    - Dst: TIMESTART
      Src: /src/nss/cmd/bltest/blapitest.c:1465,1
    - Dst: RC4_CreateContext
      Src: /src/nss/cmd/bltest/blapitest.c:1467,1
    - Dst: TIMEFINISH
      Src: /src/nss/cmd/bltest/blapitest.c:1470,1
    - Dst: RC4_DestroyContext
      Src: /src/nss/cmd/bltest/blapitest.c:1472,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/bltest/blapitest.c:1474,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - cipherInfo
    - encrypt
    argTypes:
    - bltestCipherInfo*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1481
      start: 1454
    functionDepth: 1
    functionLinenumber: 1454
    functionLinenumberEnd: 1481
    functionName: bltest_rc4_init
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - RC4_DestroyContext
    - PORT_Free
    - RC4_CreateContext
    - TIMEFINISH
    - TIMESTART
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus bltest_rc4_init(bltestCipherInfo *cipherInfo, PRBool encrypt)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TIMESTART
      Src: /src/nss/cmd/bltest/blapitest.c:1500,1
    - Dst: RC5_CreateContext
      Src: /src/nss/cmd/bltest/blapitest.c:1501,1
    - Dst: TIMEFINISH
      Src: /src/nss/cmd/bltest/blapitest.c:1504,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - cipherInfo
    - encrypt
    argTypes:
    - bltestCipherInfo*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1513
      start: 1483
    functionDepth: 1
    functionLinenumber: 1483
    functionLinenumberEnd: 1513
    functionName: bltest_rc5_init
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - TIMEFINISH
    - TIMESTART
    - RC5_CreateContext
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus bltest_rc5_init(bltestCipherInfo *cipherInfo, PRBool encrypt)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PR_MIN
      Src: /src/nss/cmd/bltest/blapitest.c:1544,1
    - Dst: PORT_Memset
      Src: /src/nss/cmd/bltest/blapitest.c:1545,1
    - Dst: PORT_Memcpy
      Src: /src/nss/cmd/bltest/blapitest.c:1546,1
    - Dst: AES_CreateContext
      Src: /src/nss/cmd/bltest/blapitest.c:1561,1
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/bltest/blapitest.c:1567,1
    - Dst: TIMESTART
      Src: /src/nss/cmd/bltest/blapitest.c:1568,1
    - Dst: AES_CreateContext
      Src: /src/nss/cmd/bltest/blapitest.c:1570,1
    - Dst: TIMEFINISH
      Src: /src/nss/cmd/bltest/blapitest.c:1575,1
    - Dst: AES_DestroyContext
      Src: /src/nss/cmd/bltest/blapitest.c:1577,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/bltest/blapitest.c:1579,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 49
    argCount: 2
    argNames:
    - cipherInfo
    - encrypt
    argTypes:
    - bltestCipherInfo*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1586
      start: 1515
    functionDepth: 1
    functionLinenumber: 1515
    functionLinenumberEnd: 1586
    functionName: bltest_aes_init
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_Memcpy
    - PR_MIN
    - PORT_Free
    - AES_DestroyContext
    - TIMEFINISH
    - TIMESTART
    - PORT_Memset
    - AES_CreateContext
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus bltest_aes_init(bltestCipherInfo *cipherInfo, PRBool encrypt)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Camellia_CreateContext
      Src: /src/nss/cmd/bltest/blapitest.c:1607,1
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/bltest/blapitest.c:1613,1
    - Dst: TIMESTART
      Src: /src/nss/cmd/bltest/blapitest.c:1614,1
    - Dst: Camellia_CreateContext
      Src: /src/nss/cmd/bltest/blapitest.c:1616,1
    - Dst: TIMEFINISH
      Src: /src/nss/cmd/bltest/blapitest.c:1621,1
    - Dst: Camellia_DestroyContext
      Src: /src/nss/cmd/bltest/blapitest.c:1623,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/bltest/blapitest.c:1625,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - cipherInfo
    - encrypt
    argTypes:
    - bltestCipherInfo*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1632
      start: 1588
    functionDepth: 1
    functionLinenumber: 1588
    functionLinenumberEnd: 1632
    functionName: bltest_camellia_init
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - Camellia_DestroyContext
    - PORT_Free
    - TIMEFINISH
    - TIMESTART
    - Camellia_CreateContext
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus bltest_camellia_init(bltestCipherInfo *cipherInfo, PRBool
      encrypt)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SEED_CreateContext
      Src: /src/nss/cmd/bltest/blapitest.c:1653,1
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/bltest/blapitest.c:1658,1
    - Dst: TIMESTART
      Src: /src/nss/cmd/bltest/blapitest.c:1659,1
    - Dst: SEED_CreateContext
      Src: /src/nss/cmd/bltest/blapitest.c:1661,1
    - Dst: TIMEFINISH
      Src: /src/nss/cmd/bltest/blapitest.c:1665,1
    - Dst: SEED_DestroyContext
      Src: /src/nss/cmd/bltest/blapitest.c:1667,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/bltest/blapitest.c:1669,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - cipherInfo
    - encrypt
    argTypes:
    - bltestCipherInfo*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1677
      start: 1635
    functionDepth: 1
    functionLinenumber: 1635
    functionLinenumberEnd: 1677
    functionName: bltest_seed_init
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - SEED_CreateContext
    - PORT_Free
    - SEED_DestroyContext
    - TIMEFINISH
    - TIMESTART
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus bltest_seed_init(bltestCipherInfo *cipherInfo, PRBool encrypt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ChaCha20_CreateContext
      Src: /src/nss/cmd/bltest/blapitest.c:1685,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:1690,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - cipherInfo
    - encrypt
    argTypes:
    - bltestCipherInfo*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1696
      start: 1680
    functionDepth: 1
    functionLinenumber: 1680
    functionLinenumberEnd: 1696
    functionName: bltest_chacha20_ctr_init
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - PR_fprintf
    - ChaCha20_CreateContext
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus bltest_chacha20_ctr_init(bltestCipherInfo *cipherInfo, PRBool
      encrypt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ChaCha20Poly1305_CreateContext
      Src: /src/nss/cmd/bltest/blapitest.c:1703,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - cipherInfo
    - encrypt
    argTypes:
    - bltestCipherInfo*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1711
      start: 1698
    functionDepth: 0
    functionLinenumber: 1698
    functionLinenumberEnd: 1711
    functionName: bltest_chacha20_init
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - ChaCha20Poly1305_CreateContext
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus bltest_chacha20_init(bltestCipherInfo *cipherInfo, PRBool
      encrypt)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/bltest/blapitest.c:1732,1
    - Dst: TIMESTART
      Src: /src/nss/cmd/bltest/blapitest.c:1735,1
    - Dst: RSA_NewKey
      Src: /src/nss/cmd/bltest/blapitest.c:1737,1
    - Dst: TIMEFINISH
      Src: /src/nss/cmd/bltest/blapitest.c:1739,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/bltest/blapitest.c:1742,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/bltest/blapitest.c:1743,1
    - Dst: is_sigCipher
      Src: /src/nss/cmd/bltest/blapitest.c:1746,1
    - Dst: is_sigCipher
      Src: /src/nss/cmd/bltest/blapitest.c:1747,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/cmd/bltest/blapitest.c:1750,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 2
    argNames:
    - cipherInfo
    - encrypt
    argTypes:
    - bltestCipherInfo*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1775
      start: 1713
    functionDepth: 1
    functionLinenumber: 1713
    functionLinenumberEnd: 1775
    functionName: bltest_rsa_init
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - is_sigCipher
    - PORT_FreeArena
    - PORT_Free
    - PORT_ArenaAlloc
    - TIMEFINISH
    - TIMESTART
    - RSA_NewKey
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus bltest_rsa_init(bltestCipherInfo *cipherInfo, PRBool encrypt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PQG_PBITS_TO_INDEX
      Src: /src/nss/cmd/bltest/blapitest.c:1781,1
    - Dst: PQG_ParamGen
      Src: /src/nss/cmd/bltest/blapitest.c:1782,1
    - Dst: PQG_ParamGenV2
      Src: /src/nss/cmd/bltest/blapitest.c:1784,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - keysize
    - pqg
    - vfy
    argTypes:
    - unsigned int
    - PQGParams**
    - PQGVerify**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1785
      start: 1777
    functionDepth: 1
    functionLinenumber: 1777
    functionLinenumberEnd: 1785
    functionName: blapi_pqg_param_gen
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - PQG_PBITS_TO_INDEX
    - PQG_ParamGenV2
    - PQG_ParamGen
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus blapi_pqg_param_gen(unsigned int keysize, PQGParams **pqg,
      PQGVerify **vfy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blapi_pqg_param_gen
      Src: /src/nss/cmd/bltest/blapitest.c:1792,1
    - Dst: CHECKERROR
      Src: /src/nss/cmd/bltest/blapitest.c:1793,1
    - Dst: PQG_VerifyParams
      Src: /src/nss/cmd/bltest/blapitest.c:1794,1
    - Dst: CHECKERROR
      Src: /src/nss/cmd/bltest/blapitest.c:1795,1
    - Dst: CHECKERROR
      Src: /src/nss/cmd/bltest/blapitest.c:1796,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - dsap
    argTypes:
    - bltestDSAParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1798
      start: 1787
    functionDepth: 2
    functionLinenumber: 1787
    functionLinenumberEnd: 1798
    functionName: bltest_pqg_init
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - CHECKERROR
    - blapi_pqg_param_gen
    - PQG_VerifyParams
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus bltest_pqg_init(bltestDSAParams *dsap)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZAlloc
      Src: /src/nss/cmd/bltest/blapitest.c:1814,1
    - Dst: TIMESTART
      Src: /src/nss/cmd/bltest/blapitest.c:1817,1
    - Dst: blapi_pqg_param_gen
      Src: /src/nss/cmd/bltest/blapitest.c:1820,1
    - Dst: DSA_NewKey
      Src: /src/nss/cmd/bltest/blapitest.c:1821,1
    - Dst: TIMEFINISH
      Src: /src/nss/cmd/bltest/blapitest.c:1823,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/bltest/blapitest.c:1826,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/bltest/blapitest.c:1827,1
    - Dst: pqg_from_filedata
      Src: /src/nss/cmd/bltest/blapitest.c:1830,1
    - Dst: dsakey_from_filedata
      Src: /src/nss/cmd/bltest/blapitest.c:1833,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/cmd/bltest/blapitest.c:1842,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 2
    argNames:
    - cipherInfo
    - encrypt
    argTypes:
    - bltestCipherInfo*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1856
      start: 1800
    functionDepth: 2
    functionLinenumber: 1800
    functionLinenumberEnd: 1856
    functionName: bltest_dsa_init
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - DSA_NewKey
    - dsakey_from_filedata
    - PORT_ArenaZAlloc
    - PORT_FreeArena
    - PORT_Free
    - PORT_ZAlloc
    - pqg_from_filedata
    - TIMEFINISH
    - TIMESTART
    - blapi_pqg_param_gen
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus bltest_dsa_init(bltestCipherInfo *cipherInfo, PRBool encrypt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZAlloc
      Src: /src/nss/cmd/bltest/blapitest.c:1869,1
    - Dst: TIMESTART
      Src: /src/nss/cmd/bltest/blapitest.c:1872,1
    - Dst: EC_NewKey
      Src: /src/nss/cmd/bltest/blapitest.c:1874,1
    - Dst: TIMEFINISH
      Src: /src/nss/cmd/bltest/blapitest.c:1876,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/bltest/blapitest.c:1879,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/bltest/blapitest.c:1880,1
    - Dst: eckey_from_filedata
      Src: /src/nss/cmd/bltest/blapitest.c:1883,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/cmd/bltest/blapitest.c:1892,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 48
    argCount: 2
    argNames:
    - cipherInfo
    - encrypt
    argTypes:
    - bltestCipherInfo*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1922
      start: 1858
    functionDepth: 2
    functionLinenumber: 1858
    functionLinenumberEnd: 1922
    functionName: bltest_ecdsa_init
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - PORT_ArenaZAlloc
    - PORT_FreeArena
    - PORT_Free
    - PORT_ZAlloc
    - eckey_from_filedata
    - TIMEFINISH
    - TIMESTART
    - EC_NewKey
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus bltest_ecdsa_init(bltestCipherInfo *cipherInfo, PRBool encrypt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MD2_NewContext
      Src: /src/nss/cmd/bltest/blapitest.c:1929,1
    - Dst: MD2_Begin
      Src: /src/nss/cmd/bltest/blapitest.c:1932,1
    - Dst: MD2_Update
      Src: /src/nss/cmd/bltest/blapitest.c:1933,1
    - Dst: MD2_End
      Src: /src/nss/cmd/bltest/blapitest.c:1934,1
    - Dst: MD2_DestroyContext
      Src: /src/nss/cmd/bltest/blapitest.c:1935,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - dest
    - src
    - src_length
    argTypes:
    - unsigned char*
    - unsigned char*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1937
      start: 1925
    functionDepth: 0
    functionLinenumber: 1925
    functionLinenumberEnd: 1937
    functionName: md2_HashBuf
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - MD2_NewContext
    - MD2_Update
    - MD2_Begin
    - MD2_End
    - MD2_DestroyContext
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus md2_HashBuf(unsigned char *dest, const unsigned char *src,
      PRUint32 src_length)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MD2_NewContext
      Src: /src/nss/cmd/bltest/blapitest.c:1947,1
    - Dst: MD2_Begin
      Src: /src/nss/cmd/bltest/blapitest.c:1948,1
    - Dst: MD2_Update
      Src: /src/nss/cmd/bltest/blapitest.c:1952,1
    - Dst: PR_MIN
      Src: /src/nss/cmd/bltest/blapitest.c:1952,1
    - Dst: MD2_FlattenSize
      Src: /src/nss/cmd/bltest/blapitest.c:1953,1
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/bltest/blapitest.c:1954,1
    - Dst: MD2_Flatten
      Src: /src/nss/cmd/bltest/blapitest.c:1955,1
    - Dst: MD2_Resurrect
      Src: /src/nss/cmd/bltest/blapitest.c:1956,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:1958,1
    - Dst: PORT_Memcmp
      Src: /src/nss/cmd/bltest/blapitest.c:1961,1
    - Dst: MD2_DestroyContext
      Src: /src/nss/cmd/bltest/blapitest.c:1963,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:1964,1
    - Dst: MD2_DestroyContext
      Src: /src/nss/cmd/bltest/blapitest.c:1967,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/bltest/blapitest.c:1968,1
    - Dst: MD2_End
      Src: /src/nss/cmd/bltest/blapitest.c:1971,1
    - Dst: MD2_DestroyContext
      Src: /src/nss/cmd/bltest/blapitest.c:1973,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 3
    argNames:
    - dest
    - src
    - src_length
    argTypes:
    - unsigned char*
    - unsigned char*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1975
      start: 1939
    functionDepth: 1
    functionLinenumber: 1939
    functionLinenumberEnd: 1975
    functionName: md2_restart
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - MD2_FlattenSize
    - PORT_Alloc
    - MD2_NewContext
    - MD2_Resurrect
    - PR_MIN
    - PORT_Memcmp
    - PORT_Free
    - MD2_Update
    - MD2_Begin
    - PR_fprintf
    - MD2_End
    - MD2_DestroyContext
    - MD2_Flatten
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus md2_restart(unsigned char *dest, const unsigned char *src,
      PRUint32 src_length)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MD5_NewContext
      Src: /src/nss/cmd/bltest/blapitest.c:1985,1
    - Dst: MD5_Begin
      Src: /src/nss/cmd/bltest/blapitest.c:1986,1
    - Dst: MD5_Update
      Src: /src/nss/cmd/bltest/blapitest.c:1990,1
    - Dst: PR_MIN
      Src: /src/nss/cmd/bltest/blapitest.c:1990,1
    - Dst: MD5_FlattenSize
      Src: /src/nss/cmd/bltest/blapitest.c:1991,1
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/bltest/blapitest.c:1992,1
    - Dst: MD5_Flatten
      Src: /src/nss/cmd/bltest/blapitest.c:1993,1
    - Dst: MD5_Resurrect
      Src: /src/nss/cmd/bltest/blapitest.c:1994,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:1996,1
    - Dst: PORT_Memcmp
      Src: /src/nss/cmd/bltest/blapitest.c:2000,1
    - Dst: MD5_DestroyContext
      Src: /src/nss/cmd/bltest/blapitest.c:2002,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:2003,1
    - Dst: MD5_DestroyContext
      Src: /src/nss/cmd/bltest/blapitest.c:2006,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/bltest/blapitest.c:2007,1
    - Dst: MD5_End
      Src: /src/nss/cmd/bltest/blapitest.c:2010,1
    - Dst: MD5_DestroyContext
      Src: /src/nss/cmd/bltest/blapitest.c:2012,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 3
    argNames:
    - dest
    - src
    - src_length
    argTypes:
    - unsigned char*
    - unsigned char*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2014
      start: 1977
    functionDepth: 1
    functionLinenumber: 1977
    functionLinenumberEnd: 2014
    functionName: md5_restart
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - MD5_Flatten
    - MD5_Update
    - MD5_NewContext
    - PR_MIN
    - MD5_End
    - PORT_Memcmp
    - PORT_Free
    - PR_fprintf
    - MD5_DestroyContext
    - MD5_Resurrect
    - MD5_Begin
    - MD5_FlattenSize
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus md5_restart(unsigned char *dest, const unsigned char *src,
      PRUint32 src_length)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SHA1_NewContext
      Src: /src/nss/cmd/bltest/blapitest.c:2024,1
    - Dst: SHA1_Begin
      Src: /src/nss/cmd/bltest/blapitest.c:2025,1
    - Dst: SHA1_Update
      Src: /src/nss/cmd/bltest/blapitest.c:2029,1
    - Dst: PR_MIN
      Src: /src/nss/cmd/bltest/blapitest.c:2029,1
    - Dst: SHA1_FlattenSize
      Src: /src/nss/cmd/bltest/blapitest.c:2030,1
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/bltest/blapitest.c:2031,1
    - Dst: SHA1_Flatten
      Src: /src/nss/cmd/bltest/blapitest.c:2032,1
    - Dst: SHA1_Resurrect
      Src: /src/nss/cmd/bltest/blapitest.c:2033,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:2035,1
    - Dst: PORT_Memcmp
      Src: /src/nss/cmd/bltest/blapitest.c:2039,1
    - Dst: SHA1_DestroyContext
      Src: /src/nss/cmd/bltest/blapitest.c:2041,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:2042,1
    - Dst: SHA1_DestroyContext
      Src: /src/nss/cmd/bltest/blapitest.c:2045,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/bltest/blapitest.c:2046,1
    - Dst: SHA1_End
      Src: /src/nss/cmd/bltest/blapitest.c:2049,1
    - Dst: SHA1_DestroyContext
      Src: /src/nss/cmd/bltest/blapitest.c:2051,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 3
    argNames:
    - dest
    - src
    - src_length
    argTypes:
    - unsigned char*
    - unsigned char*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2053
      start: 2016
    functionDepth: 1
    functionLinenumber: 2016
    functionLinenumberEnd: 2053
    functionName: sha1_restart
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - SHA1_End
    - PR_MIN
    - SHA1_Resurrect
    - PORT_Memcmp
    - PORT_Free
    - PR_fprintf
    - SHA1_NewContext
    - SHA1_DestroyContext
    - SHA1_Begin
    - SHA1_Flatten
    - SHA1_Update
    - SHA1_FlattenSize
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sha1_restart(unsigned char *dest, const unsigned char *src,
      PRUint32 src_length)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SHA224_NewContext
      Src: /src/nss/cmd/bltest/blapitest.c:2063,1
    - Dst: SHA224_Begin
      Src: /src/nss/cmd/bltest/blapitest.c:2064,1
    - Dst: SHA224_Update
      Src: /src/nss/cmd/bltest/blapitest.c:2068,1
    - Dst: PR_MIN
      Src: /src/nss/cmd/bltest/blapitest.c:2068,1
    - Dst: SHA224_FlattenSize
      Src: /src/nss/cmd/bltest/blapitest.c:2069,1
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/bltest/blapitest.c:2070,1
    - Dst: SHA224_Flatten
      Src: /src/nss/cmd/bltest/blapitest.c:2071,1
    - Dst: SHA224_Resurrect
      Src: /src/nss/cmd/bltest/blapitest.c:2072,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:2074,1
    - Dst: PORT_Memcmp
      Src: /src/nss/cmd/bltest/blapitest.c:2078,1
    - Dst: SHA224_DestroyContext
      Src: /src/nss/cmd/bltest/blapitest.c:2080,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:2081,1
    - Dst: SHA224_DestroyContext
      Src: /src/nss/cmd/bltest/blapitest.c:2085,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/bltest/blapitest.c:2086,1
    - Dst: SHA224_End
      Src: /src/nss/cmd/bltest/blapitest.c:2089,1
    - Dst: SHA224_DestroyContext
      Src: /src/nss/cmd/bltest/blapitest.c:2091,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 3
    argNames:
    - dest
    - src
    - src_length
    argTypes:
    - unsigned char*
    - unsigned char*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2093
      start: 2055
    functionDepth: 1
    functionLinenumber: 2055
    functionLinenumberEnd: 2093
    functionName: SHA224_restart
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - SHA224_DestroyContext
    - SHA224_Flatten
    - PR_MIN
    - SHA224_FlattenSize
    - PORT_Memcmp
    - PORT_Free
    - SHA224_End
    - PR_fprintf
    - SHA224_Begin
    - SHA224_NewContext
    - SHA224_Resurrect
    - SHA224_Update
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SHA224_restart(unsigned char *dest, const unsigned char *src,
      PRUint32 src_length)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SHA256_NewContext
      Src: /src/nss/cmd/bltest/blapitest.c:2103,1
    - Dst: SHA256_Begin
      Src: /src/nss/cmd/bltest/blapitest.c:2104,1
    - Dst: SHA256_Update
      Src: /src/nss/cmd/bltest/blapitest.c:2108,1
    - Dst: PR_MIN
      Src: /src/nss/cmd/bltest/blapitest.c:2108,1
    - Dst: SHA256_FlattenSize
      Src: /src/nss/cmd/bltest/blapitest.c:2109,1
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/bltest/blapitest.c:2110,1
    - Dst: SHA256_Flatten
      Src: /src/nss/cmd/bltest/blapitest.c:2111,1
    - Dst: SHA256_Resurrect
      Src: /src/nss/cmd/bltest/blapitest.c:2112,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:2114,1
    - Dst: PORT_Memcmp
      Src: /src/nss/cmd/bltest/blapitest.c:2118,1
    - Dst: SHA256_DestroyContext
      Src: /src/nss/cmd/bltest/blapitest.c:2120,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:2121,1
    - Dst: SHA256_DestroyContext
      Src: /src/nss/cmd/bltest/blapitest.c:2124,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/bltest/blapitest.c:2125,1
    - Dst: SHA256_End
      Src: /src/nss/cmd/bltest/blapitest.c:2128,1
    - Dst: SHA256_DestroyContext
      Src: /src/nss/cmd/bltest/blapitest.c:2130,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 3
    argNames:
    - dest
    - src
    - src_length
    argTypes:
    - unsigned char*
    - unsigned char*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2132
      start: 2095
    functionDepth: 1
    functionLinenumber: 2095
    functionLinenumberEnd: 2132
    functionName: SHA256_restart
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - SHA256_Begin
    - SHA256_Update
    - SHA256_FlattenSize
    - PR_MIN
    - SHA256_Flatten
    - PORT_Memcmp
    - PORT_Free
    - SHA256_NewContext
    - PR_fprintf
    - SHA256_Resurrect
    - SHA256_End
    - SHA256_DestroyContext
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SHA256_restart(unsigned char *dest, const unsigned char *src,
      PRUint32 src_length)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SHA384_NewContext
      Src: /src/nss/cmd/bltest/blapitest.c:2142,1
    - Dst: SHA384_Begin
      Src: /src/nss/cmd/bltest/blapitest.c:2143,1
    - Dst: SHA384_Update
      Src: /src/nss/cmd/bltest/blapitest.c:2147,1
    - Dst: PR_MIN
      Src: /src/nss/cmd/bltest/blapitest.c:2147,1
    - Dst: SHA384_FlattenSize
      Src: /src/nss/cmd/bltest/blapitest.c:2148,1
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/bltest/blapitest.c:2149,1
    - Dst: SHA384_Flatten
      Src: /src/nss/cmd/bltest/blapitest.c:2150,1
    - Dst: SHA384_Resurrect
      Src: /src/nss/cmd/bltest/blapitest.c:2151,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:2153,1
    - Dst: PORT_Memcmp
      Src: /src/nss/cmd/bltest/blapitest.c:2157,1
    - Dst: SHA384_DestroyContext
      Src: /src/nss/cmd/bltest/blapitest.c:2159,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:2160,1
    - Dst: SHA384_DestroyContext
      Src: /src/nss/cmd/bltest/blapitest.c:2163,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/bltest/blapitest.c:2164,1
    - Dst: SHA384_End
      Src: /src/nss/cmd/bltest/blapitest.c:2167,1
    - Dst: SHA384_DestroyContext
      Src: /src/nss/cmd/bltest/blapitest.c:2169,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 3
    argNames:
    - dest
    - src
    - src_length
    argTypes:
    - unsigned char*
    - unsigned char*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2171
      start: 2134
    functionDepth: 1
    functionLinenumber: 2134
    functionLinenumberEnd: 2171
    functionName: SHA384_restart
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - SHA384_Update
    - PR_MIN
    - PORT_Memcmp
    - PORT_Free
    - SHA384_NewContext
    - PR_fprintf
    - SHA384_End
    - SHA384_DestroyContext
    - SHA384_Resurrect
    - SHA384_Begin
    - SHA384_Flatten
    - SHA384_FlattenSize
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SHA384_restart(unsigned char *dest, const unsigned char *src,
      PRUint32 src_length)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SHA512_NewContext
      Src: /src/nss/cmd/bltest/blapitest.c:2181,1
    - Dst: SHA512_Begin
      Src: /src/nss/cmd/bltest/blapitest.c:2182,1
    - Dst: SHA512_Update
      Src: /src/nss/cmd/bltest/blapitest.c:2186,1
    - Dst: PR_MIN
      Src: /src/nss/cmd/bltest/blapitest.c:2186,1
    - Dst: SHA512_FlattenSize
      Src: /src/nss/cmd/bltest/blapitest.c:2187,1
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/bltest/blapitest.c:2188,1
    - Dst: SHA512_Flatten
      Src: /src/nss/cmd/bltest/blapitest.c:2189,1
    - Dst: SHA512_Resurrect
      Src: /src/nss/cmd/bltest/blapitest.c:2190,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:2192,1
    - Dst: PORT_Memcmp
      Src: /src/nss/cmd/bltest/blapitest.c:2196,1
    - Dst: SHA512_DestroyContext
      Src: /src/nss/cmd/bltest/blapitest.c:2198,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:2199,1
    - Dst: SHA512_DestroyContext
      Src: /src/nss/cmd/bltest/blapitest.c:2202,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/bltest/blapitest.c:2203,1
    - Dst: SHA512_End
      Src: /src/nss/cmd/bltest/blapitest.c:2206,1
    - Dst: SHA512_DestroyContext
      Src: /src/nss/cmd/bltest/blapitest.c:2208,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 3
    argNames:
    - dest
    - src
    - src_length
    argTypes:
    - unsigned char*
    - unsigned char*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2210
      start: 2173
    functionDepth: 1
    functionLinenumber: 2173
    functionLinenumberEnd: 2210
    functionName: SHA512_restart
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - SHA512_Resurrect
    - PR_MIN
    - SHA512_Begin
    - SHA512_Update
    - PORT_Memcmp
    - SHA512_NewContext
    - PR_fprintf
    - PORT_Free
    - SHA512_End
    - SHA512_Flatten
    - SHA512_FlattenSize
    - SHA512_DestroyContext
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SHA512_restart(unsigned char *dest, const unsigned char *src,
      PRUint32 src_length)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/bltest/blapitest.c:2235,1
    - Dst: RSA_NewKey
      Src: /src/nss/cmd/bltest/blapitest.c:2238,1
    - Dst: serialize_key
      Src: /src/nss/cmd/bltest/blapitest.c:2239,1
    - Dst: setupIO
      Src: /src/nss/cmd/bltest/blapitest.c:2242,1
    - Dst: rsakey_from_filedata
      Src: /src/nss/cmd/bltest/blapitest.c:2243,1
    - Dst: bltest_pqg_init
      Src: /src/nss/cmd/bltest/blapitest.c:2253,1
    - Dst: DSA_NewKey
      Src: /src/nss/cmd/bltest/blapitest.c:2254,1
    - Dst: CHECKERROR
      Src: /src/nss/cmd/bltest/blapitest.c:2255,1
    - Dst: serialize_key
      Src: /src/nss/cmd/bltest/blapitest.c:2256,1
    - Dst: setupIO
      Src: /src/nss/cmd/bltest/blapitest.c:2258,1
    - Dst: dsakey_from_filedata
      Src: /src/nss/cmd/bltest/blapitest.c:2259,1
    - Dst: getECParams
      Src: /src/nss/cmd/bltest/blapitest.c:2266,1
    - Dst: SECOID_Init
      Src: /src/nss/cmd/bltest/blapitest.c:2267,1
    - Dst: CHECKERROR
      Src: /src/nss/cmd/bltest/blapitest.c:2268,1
    - Dst: EC_DecodeParams
      Src: /src/nss/cmd/bltest/blapitest.c:2269,1
    - Dst: CHECKERROR
      Src: /src/nss/cmd/bltest/blapitest.c:2270,1
    - Dst: EC_NewKey
      Src: /src/nss/cmd/bltest/blapitest.c:2271,1
    - Dst: CHECKERROR
      Src: /src/nss/cmd/bltest/blapitest.c:2272,1
    - Dst: serialize_key
      Src: /src/nss/cmd/bltest/blapitest.c:2282,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/bltest/blapitest.c:2283,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/bltest/blapitest.c:2284,1
    - Dst: SECOID_Shutdown
      Src: /src/nss/cmd/bltest/blapitest.c:2285,1
    - Dst: CHECKERROR
      Src: /src/nss/cmd/bltest/blapitest.c:2286,1
    - Dst: setupIO
      Src: /src/nss/cmd/bltest/blapitest.c:2288,1
    - Dst: eckey_from_filedata
      Src: /src/nss/cmd/bltest/blapitest.c:2289,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 69
    argCount: 5
    argNames:
    - cipherInfo
    - file
    - keysize
    - exponent
    - curveName
    argTypes:
    - bltestCipherInfo*
    - PRFileDesc*
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2296
      start: 2212
    functionDepth: 3
    functionLinenumber: 2212
    functionLinenumberEnd: 2296
    functionName: pubkeyInitKey
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - DSA_NewKey
    - dsakey_from_filedata
    - PORT_FreeArena
    - CHECKERROR
    - SECOID_Shutdown
    - eckey_from_filedata
    - EC_DecodeParams
    - SECITEM_AllocItem
    - rsakey_from_filedata
    - bltest_pqg_init
    - getECParams
    - RSA_NewKey
    - SECOID_Init
    - SECITEM_FreeItem
    - setupIO
    - EC_NewKey
    - serialize_key
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus pubkeyInitKey(bltestCipherInfo *cipherInfo, PRFileDesc *file,\n
      \             int keysize, int exponent, char *curveName)"
  - BBCount: 42
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/bltest/blapitest.c:2308,1
    - Dst: bltest_des_init
      Src: /src/nss/cmd/bltest/blapitest.c:2310,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/bltest/blapitest.c:2315,1
    - Dst: bltest_rc2_init
      Src: /src/nss/cmd/bltest/blapitest.c:2317,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/bltest/blapitest.c:2321,1
    - Dst: bltest_rc4_init
      Src: /src/nss/cmd/bltest/blapitest.c:2323,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/bltest/blapitest.c:2328,1
    - Dst: bltest_rc5_init
      Src: /src/nss/cmd/bltest/blapitest.c:2330,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/bltest/blapitest.c:2342,1
    - Dst: bltest_aes_init
      Src: /src/nss/cmd/bltest/blapitest.c:2343,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/bltest/blapitest.c:2347,1
    - Dst: bltest_camellia_init
      Src: /src/nss/cmd/bltest/blapitest.c:2349,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/bltest/blapitest.c:2354,1
    - Dst: bltest_seed_init
      Src: /src/nss/cmd/bltest/blapitest.c:2356,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/bltest/blapitest.c:2361,1
    - Dst: bltest_chacha20_ctr_init
      Src: /src/nss/cmd/bltest/blapitest.c:2362,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/bltest/blapitest.c:2366,1
    - Dst: bltest_chacha20_init
      Src: /src/nss/cmd/bltest/blapitest.c:2367,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/bltest/blapitest.c:2375,1
    - Dst: bltest_rsa_init
      Src: /src/nss/cmd/bltest/blapitest.c:2378,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/bltest/blapitest.c:2382,1
    - Dst: bltest_dsa_init
      Src: /src/nss/cmd/bltest/blapitest.c:2385,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/bltest/blapitest.c:2389,1
    - Dst: bltest_ecdsa_init
      Src: /src/nss/cmd/bltest/blapitest.c:2392,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/bltest/blapitest.c:2396,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/bltest/blapitest.c:2403,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/bltest/blapitest.c:2410,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/bltest/blapitest.c:2417,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/bltest/blapitest.c:2425,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/bltest/blapitest.c:2433,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/bltest/blapitest.c:2441,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/bltest/blapitest.c:2449,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/bltest/blapitest.c:2456,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/bltest/blapitest.c:2463,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/bltest/blapitest.c:2470,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 145
    argCount: 2
    argNames:
    - cipherInfo
    - encrypt
    argTypes:
    - bltestCipherInfo*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2479
      start: 2298
    functionDepth: 3
    functionLinenumber: 2298
    functionLinenumberEnd: 2479
    functionName: cipherInit
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - bltest_rsa_init
    - bltest_rc5_init
    - bltest_rc2_init
    - bltest_camellia_init
    - bltest_des_init
    - bltest_dsa_init
    - bltest_chacha20_ctr_init
    - SECITEM_AllocItem
    - bltest_aes_init
    - bltest_chacha20_init
    - bltest_ecdsa_init
    - bltest_rc4_init
    - bltest_seed_init
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus cipherInit(bltestCipherInfo *cipherInfo, PRBool encrypt)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/bltest/blapitest.c:2490,1
    - Dst: is_symmkeyCipher
      Src: /src/nss/cmd/bltest/blapitest.c:2491,1
    - Dst: is_singleShotCipher
      Src: /src/nss/cmd/bltest/blapitest.c:2493,1
    - Dst: PR_MIN
      Src: /src/nss/cmd/bltest/blapitest.c:2494,1
    - Dst: TIMESTART
      Src: /src/nss/cmd/bltest/blapitest.c:2498,1
    - Dst: CHECKERROR
      Src: /src/nss/cmd/bltest/blapitest.c:2502,1
    - Dst: CHECKERROR
      Src: /src/nss/cmd/bltest/blapitest.c:2512,1
    - Dst: TIMEFINISH
      Src: /src/nss/cmd/bltest/blapitest.c:2516,1
    - Dst: TIMESTART
      Src: /src/nss/cmd/bltest/blapitest.c:2519,1
    - Dst: CHECKERROR
      Src: /src/nss/cmd/bltest/blapitest.c:2527,1
    - Dst: TIMEMARK
      Src: /src/nss/cmd/bltest/blapitest.c:2531,1
    - Dst: TIMETOFINISH
      Src: /src/nss/cmd/bltest/blapitest.c:2532,1
    - Dst: TIMEFINISH
      Src: /src/nss/cmd/bltest/blapitest.c:2543,1
    - Dst: is_aeadCipher
      Src: /src/nss/cmd/bltest/blapitest.c:2544,1
    - Dst: TIMESTART
      Src: /src/nss/cmd/bltest/blapitest.c:2552,1
    - Dst: CHECKERROR
      Src: /src/nss/cmd/bltest/blapitest.c:2559,1
    - Dst: TIMEFINISH
      Src: /src/nss/cmd/bltest/blapitest.c:2561,1
    - Dst: TIMESTART
      Src: /src/nss/cmd/bltest/blapitest.c:2565,1
    - Dst: CHECKERROR
      Src: /src/nss/cmd/bltest/blapitest.c:2574,1
    - Dst: TIMEMARK
      Src: /src/nss/cmd/bltest/blapitest.c:2578,1
    - Dst: TIMETOFINISH
      Src: /src/nss/cmd/bltest/blapitest.c:2579,1
    - Dst: TIMEFINISH
      Src: /src/nss/cmd/bltest/blapitest.c:2592,1
    - Dst: is_pubkeyCipher
      Src: /src/nss/cmd/bltest/blapitest.c:2593,1
    - Dst: TIMESTART
      Src: /src/nss/cmd/bltest/blapitest.c:2594,1
    - Dst: TIMEFINISH
      Src: /src/nss/cmd/bltest/blapitest.c:2598,1
    - Dst: CHECKERROR
      Src: /src/nss/cmd/bltest/blapitest.c:2599,1
    - Dst: TIMESTART
      Src: /src/nss/cmd/bltest/blapitest.c:2602,1
    - Dst: CHECKERROR
      Src: /src/nss/cmd/bltest/blapitest.c:2610,1
    - Dst: TIMEMARK
      Src: /src/nss/cmd/bltest/blapitest.c:2614,1
    - Dst: TIMETOFINISH
      Src: /src/nss/cmd/bltest/blapitest.c:2615,1
    - Dst: CHECKERROR
      Src: /src/nss/cmd/bltest/blapitest.c:2623,1
    - Dst: TIMEFINISH
      Src: /src/nss/cmd/bltest/blapitest.c:2628,1
    - Dst: is_hashCipher
      Src: /src/nss/cmd/bltest/blapitest.c:2629,1
    - Dst: TIMESTART
      Src: /src/nss/cmd/bltest/blapitest.c:2630,1
    - Dst: TIMEFINISH
      Src: /src/nss/cmd/bltest/blapitest.c:2634,1
    - Dst: CHECKERROR
      Src: /src/nss/cmd/bltest/blapitest.c:2635,1
    - Dst: TIMESTART
      Src: /src/nss/cmd/bltest/blapitest.c:2638,1
    - Dst: CHECKERROR
      Src: /src/nss/cmd/bltest/blapitest.c:2644,1
    - Dst: TIMEMARK
      Src: /src/nss/cmd/bltest/blapitest.c:2648,1
    - Dst: TIMETOFINISH
      Src: /src/nss/cmd/bltest/blapitest.c:2649,1
    - Dst: CHECKERROR
      Src: /src/nss/cmd/bltest/blapitest.c:2656,1
    - Dst: TIMEFINISH
      Src: /src/nss/cmd/bltest/blapitest.c:2661,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/bltest/blapitest.c:2663,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 114
    argCount: 1
    argNames:
    - cipherInfo
    argTypes:
    - bltestCipherInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2665
      start: 2481
    functionDepth: 1
    functionLinenumber: 2481
    functionLinenumberEnd: 2665
    functionName: cipherDoOp
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - TIMEMARK
    - PR_MIN
    - is_aeadCipher
    - CHECKERROR
    - PORT_Free
    - TIMETOFINISH
    - is_symmkeyCipher
    - TIMEFINISH
    - TIMESTART
    - is_singleShotCipher
    - is_hashCipher
    - is_pubkeyCipher
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus cipherDoOp(bltestCipherInfo *cipherInfo)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: DES_DestroyContext
      Src: /src/nss/cmd/bltest/blapitest.c:2677,1
    - Dst: AES_DestroyContext
      Src: /src/nss/cmd/bltest/blapitest.c:2684,1
    - Dst: Camellia_DestroyContext
      Src: /src/nss/cmd/bltest/blapitest.c:2688,1
    - Dst: SEED_DestroyContext
      Src: /src/nss/cmd/bltest/blapitest.c:2693,1
    - Dst: ChaCha20_DestroyContext
      Src: /src/nss/cmd/bltest/blapitest.c:2697,1
    - Dst: ChaCha20Poly1305_DestroyContext
      Src: /src/nss/cmd/bltest/blapitest.c:2700,1
    - Dst: RC2_DestroyContext
      Src: /src/nss/cmd/bltest/blapitest.c:2707,1
    - Dst: RC4_DestroyContext
      Src: /src/nss/cmd/bltest/blapitest.c:2711,1
    - Dst: RC5_DestroyContext
      Src: /src/nss/cmd/bltest/blapitest.c:2716,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 62
    argCount: 1
    argNames:
    - cipherInfo
    argTypes:
    - bltestCipherInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2741
      start: 2667
    functionDepth: 0
    functionLinenumber: 2667
    functionLinenumberEnd: 2741
    functionName: cipherFinish
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - Camellia_DestroyContext
    - RC2_DestroyContext
    - DES_DestroyContext
    - RC4_DestroyContext
    - SEED_DestroyContext
    - ChaCha20_DestroyContext
    - RC5_DestroyContext
    - AES_DestroyContext
    - ChaCha20Poly1305_DestroyContext
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus cipherFinish(bltestCipherInfo *cipherInfo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:2751,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:2754,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - exp
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2756
      start: 2743
    functionDepth: 0
    functionLinenumber: 2743
    functionLinenumberEnd: 2756
    functionName: print_exponent
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void print_exponent(SECItem *exp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LL_I2L
      Src: /src/nss/cmd/bltest/blapitest.c:2766,1
    - Dst: LL_MOD
      Src: /src/nss/cmd/bltest/blapitest.c:2767,1
    - Dst: LL_L2I
      Src: /src/nss/cmd/bltest/blapitest.c:2768,1
    - Dst: LL_DIV
      Src: /src/nss/cmd/bltest/blapitest.c:2769,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - res
    - resArr
    - del
    - size
    argTypes:
    - PRInt64
    - int*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2771
      start: 2758
    functionDepth: 1
    functionLinenumber: 2758
    functionLinenumberEnd: 2771
    functionName: splitToReportUnit
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - LL_MOD
    - LL_I2L
    - LL_DIV
    - LL_L2I
    linkageType: ''
    returnType: void
    signature: void splitToReportUnit(PRInt64 res, int *resArr, int *del, int size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: splitToReportUnit
      Src: /src/nss/cmd/bltest/blapitest.c:2781,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/bltest/blapitest.c:2790,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/bltest/blapitest.c:2792,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - res
    argTypes:
    - PRInt64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2793
      start: 2773
    functionDepth: 2
    functionLinenumber: 2773
    functionLinenumberEnd: 2793
    functionName: getHighUnitBytes
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - PR_smprintf
    - splitToReportUnit
    linkageType: ''
    returnType: char
    signature: 'char *

      getHighUnitBytes(PRInt64 res)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:2800,1
    - Dst: PR_smprintf_free
      Src: /src/nss/cmd/bltest/blapitest.c:2801,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:2803,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - sformat
    - reportStr
    - nformat
    - rNum
    argTypes:
    - char*
    - char*
    - char*
    - PRInt64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2805
      start: 2795
    functionDepth: 1
    functionLinenumber: 2795
    functionLinenumberEnd: 2805
    functionName: printPR_smpString
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - fprintf
    - PR_smprintf_free
    linkageType: ''
    returnType: void
    signature: "void printPR_smpString(const char *sformat, char *reportStr,\n                  const
      char *nformat, PRInt64 rNum)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: splitToReportUnit
      Src: /src/nss/cmd/bltest/blapitest.c:2815,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/bltest/blapitest.c:2823,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - res
    argTypes:
    - PRInt64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2824
      start: 2807
    functionDepth: 2
    functionLinenumber: 2807
    functionLinenumberEnd: 2824
    functionName: getHighUnitOps
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - PR_smprintf
    - splitToReportUnit
    linkageType: ''
    returnType: char
    signature: 'char *

      getHighUnitOps(PRInt64 res)'
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:2850,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:2851,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:2875,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:2877,1
    - Dst: printf
      Src: /src/nss/cmd/bltest/blapitest.c:2883,1
    - Dst: printf
      Src: /src/nss/cmd/bltest/blapitest.c:2885,1
    - Dst: printf
      Src: /src/nss/cmd/bltest/blapitest.c:2887,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:2894,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:2895,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:2898,1
    - Dst: print_exponent
      Src: /src/nss/cmd/bltest/blapitest.c:2899,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:2905,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:2907,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:2912,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:2916,1
    - Dst: printPR_smpString
      Src: /src/nss/cmd/bltest/blapitest.c:2932,1
    - Dst: getHighUnitOps
      Src: /src/nss/cmd/bltest/blapitest.c:2932,1
    - Dst: printPR_smpString
      Src: /src/nss/cmd/bltest/blapitest.c:2935,1
    - Dst: getHighUnitOps
      Src: /src/nss/cmd/bltest/blapitest.c:2935,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:2937,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:2938,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:2939,1
    - Dst: printPR_smpString
      Src: /src/nss/cmd/bltest/blapitest.c:2942,1
    - Dst: getHighUnitBytes
      Src: /src/nss/cmd/bltest/blapitest.c:2942,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:2945,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:2949,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:2950,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:2951,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:2952,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:2953,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:2954,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:2955,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:2956,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:2957,1
    - Dst: printPR_smpString
      Src: /src/nss/cmd/bltest/blapitest.c:2959,1
    - Dst: getHighUnitBytes
      Src: /src/nss/cmd/bltest/blapitest.c:2959,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 102
    argCount: 4
    argNames:
    - infoList
    - totalTimeInt
    - encrypt
    - cxonly
    argTypes:
    - bltestCipherInfo*
    - double
    - PRBool
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2963
      start: 2826
    functionDepth: 3
    functionLinenumber: 2826
    functionLinenumberEnd: 2963
    functionName: dump_performance_info
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - getHighUnitBytes
    - printf
    - print_exponent
    - fprintf
    - getHighUnitOps
    - printPR_smpString
    linkageType: ''
    returnType: void
    signature: "void dump_performance_info(bltestCipherInfo *infoList, double totalTimeInt,\n
      \                     PRBool encrypt, PRBool cxonly)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:2970,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:2972,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2973
      start: 2965
    functionDepth: 0
    functionLinenumber: 2965
    functionLinenumberEnd: 2973
    functionName: printmodes
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void printmodes()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PL_strcmp
      Src: /src/nss/cmd/bltest/blapitest.c:2981,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:2983,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - modestring
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2985
      start: 2975
    functionDepth: 1
    functionLinenumber: 2975
    functionLinenumberEnd: 2985
    functionName: get_mode
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - fprintf
    - PL_strcmp
    linkageType: ''
    returnType: bltestCipherMode
    signature: bltestCipherMode get_mode(const char *modestring)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_Open
      Src: /src/nss/cmd/bltest/blapitest.c:2996,1
    - Dst: setupIO
      Src: /src/nss/cmd/bltest/blapitest.c:2998,1
    - Dst: PR_Close
      Src: /src/nss/cmd/bltest/blapitest.c:2999,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - arena
    - data
    - fn
    - ioMode
    argTypes:
    - PLArenaPool*
    - bltestIO*
    - char*
    - bltestIOMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3001
      start: 2987
    functionDepth: 3
    functionLinenumber: 2987
    functionLinenumberEnd: 3001
    functionName: load_file_data
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - setupIO
    - PR_Open
    - PR_Close
    linkageType: ''
    returnType: void
    signature: "void load_file_data(PLArenaPool *arena, bltestIO *data,\n               char
      *fn, bltestIOMode ioMode)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/bltest/blapitest.c:3010,1
    - Dst: memcpy
      Src: /src/nss/cmd/bltest/blapitest.c:3013,1
    - Dst: get_mode
      Src: /src/nss/cmd/bltest/blapitest.c:3015,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/bltest/blapitest.c:3016,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 1
    argNames:
    - modeStr
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3035
      start: 3003
    functionDepth: 2
    functionLinenumber: 3003
    functionLinenumberEnd: 3035
    functionName: mode_str_to_hash_alg
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_Free
    - get_mode
    - memcpy
    linkageType: ''
    returnType: HASH_HashType
    signature: HASH_HashType mode_str_to_hash_alg(const SECItem *modeStr)
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/nss/cmd/bltest/blapitest.c:3053,1
    - Dst: load_file_data
      Src: /src/nss/cmd/bltest/blapitest.c:3054,1
    - Dst: snprintf
      Src: /src/nss/cmd/bltest/blapitest.c:3067,1
    - Dst: load_file_data
      Src: /src/nss/cmd/bltest/blapitest.c:3068,1
    - Dst: snprintf
      Src: /src/nss/cmd/bltest/blapitest.c:3080,1
    - Dst: load_file_data
      Src: /src/nss/cmd/bltest/blapitest.c:3081,1
    - Dst: snprintf
      Src: /src/nss/cmd/bltest/blapitest.c:3086,1
    - Dst: load_file_data
      Src: /src/nss/cmd/bltest/blapitest.c:3087,1
    - Dst: snprintf
      Src: /src/nss/cmd/bltest/blapitest.c:3088,1
    - Dst: load_file_data
      Src: /src/nss/cmd/bltest/blapitest.c:3089,1
    - Dst: snprintf
      Src: /src/nss/cmd/bltest/blapitest.c:3090,1
    - Dst: fopen
      Src: /src/nss/cmd/bltest/blapitest.c:3092,1
    - Dst: malloc
      Src: /src/nss/cmd/bltest/blapitest.c:3095,1
    - Dst: fread
      Src: /src/nss/cmd/bltest/blapitest.c:3096,1
    - Dst: PL_strchr
      Src: /src/nss/cmd/bltest/blapitest.c:3098,1
    - Dst: PL_strchr
      Src: /src/nss/cmd/bltest/blapitest.c:3101,1
    - Dst: PL_strcmp
      Src: /src/nss/cmd/bltest/blapitest.c:3103,1
    - Dst: atoi
      Src: /src/nss/cmd/bltest/blapitest.c:3104,1
    - Dst: PL_strcmp
      Src: /src/nss/cmd/bltest/blapitest.c:3105,1
    - Dst: atoi
      Src: /src/nss/cmd/bltest/blapitest.c:3106,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/bltest/blapitest.c:3108,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/bltest/blapitest.c:3108,1
    - Dst: snprintf
      Src: /src/nss/cmd/bltest/blapitest.c:3114,1
    - Dst: load_file_data
      Src: /src/nss/cmd/bltest/blapitest.c:3115,1
    - Dst: snprintf
      Src: /src/nss/cmd/bltest/blapitest.c:3118,1
    - Dst: load_file_data
      Src: /src/nss/cmd/bltest/blapitest.c:3119,1
    - Dst: snprintf
      Src: /src/nss/cmd/bltest/blapitest.c:3122,1
    - Dst: load_file_data
      Src: /src/nss/cmd/bltest/blapitest.c:3123,1
    - Dst: mode_str_to_hash_alg
      Src: /src/nss/cmd/bltest/blapitest.c:3125,1
    - Dst: snprintf
      Src: /src/nss/cmd/bltest/blapitest.c:3127,1
    - Dst: load_file_data
      Src: /src/nss/cmd/bltest/blapitest.c:3128,1
    - Dst: mode_str_to_hash_alg
      Src: /src/nss/cmd/bltest/blapitest.c:3130,1
    - Dst: snprintf
      Src: /src/nss/cmd/bltest/blapitest.c:3133,1
    - Dst: load_file_data
      Src: /src/nss/cmd/bltest/blapitest.c:3134,1
    - Dst: rsakey_from_filedata
      Src: /src/nss/cmd/bltest/blapitest.c:3137,1
    - Dst: snprintf
      Src: /src/nss/cmd/bltest/blapitest.c:3140,1
    - Dst: load_file_data
      Src: /src/nss/cmd/bltest/blapitest.c:3141,1
    - Dst: dsakey_from_filedata
      Src: /src/nss/cmd/bltest/blapitest.c:3143,1
    - Dst: snprintf
      Src: /src/nss/cmd/bltest/blapitest.c:3144,1
    - Dst: load_file_data
      Src: /src/nss/cmd/bltest/blapitest.c:3145,1
    - Dst: pqg_from_filedata
      Src: /src/nss/cmd/bltest/blapitest.c:3148,1
    - Dst: snprintf
      Src: /src/nss/cmd/bltest/blapitest.c:3149,1
    - Dst: load_file_data
      Src: /src/nss/cmd/bltest/blapitest.c:3150,1
    - Dst: snprintf
      Src: /src/nss/cmd/bltest/blapitest.c:3152,1
    - Dst: load_file_data
      Src: /src/nss/cmd/bltest/blapitest.c:3153,1
    - Dst: snprintf
      Src: /src/nss/cmd/bltest/blapitest.c:3155,1
    - Dst: load_file_data
      Src: /src/nss/cmd/bltest/blapitest.c:3156,1
    - Dst: snprintf
      Src: /src/nss/cmd/bltest/blapitest.c:3159,1
    - Dst: load_file_data
      Src: /src/nss/cmd/bltest/blapitest.c:3160,1
    - Dst: eckey_from_filedata
      Src: /src/nss/cmd/bltest/blapitest.c:3162,1
    - Dst: snprintf
      Src: /src/nss/cmd/bltest/blapitest.c:3163,1
    - Dst: load_file_data
      Src: /src/nss/cmd/bltest/blapitest.c:3164,1
    - Dst: snprintf
      Src: /src/nss/cmd/bltest/blapitest.c:3166,1
    - Dst: load_file_data
      Src: /src/nss/cmd/bltest/blapitest.c:3167,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 106
    argCount: 4
    argNames:
    - arena
    - params
    - mode
    - j
    argTypes:
    - PLArenaPool*
    - bltestParams*
    - bltestCipherMode
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3182
      start: 3037
    functionDepth: 4
    functionLinenumber: 3037
    functionLinenumberEnd: 3182
    functionName: get_params
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - malloc
    - PL_strlen
    - dsakey_from_filedata
    - PL_strcmp
    - pqg_from_filedata
    - eckey_from_filedata
    - atoi
    - rsakey_from_filedata
    - fopen
    - snprintf
    - load_file_data
    - mode_str_to_hash_alg
    - PL_strchr
    - fread
    linkageType: ''
    returnType: void
    signature: "void get_params(PLArenaPool *arena, bltestParams *params,\n           bltestCipherMode
      mode, int j)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_ItemsAreEqual
      Src: /src/nss/cmd/bltest/blapitest.c:3190,1
    - Dst: is_sigCipher
      Src: /src/nss/cmd/bltest/blapitest.c:3191,1
    - Dst: printf
      Src: /src/nss/cmd/bltest/blapitest.c:3194,1
    - Dst: printf
      Src: /src/nss/cmd/bltest/blapitest.c:3196,1
    - Dst: printf
      Src: /src/nss/cmd/bltest/blapitest.c:3201,1
    - Dst: printf
      Src: /src/nss/cmd/bltest/blapitest.c:3203,1
    - Dst: is_hashCipher
      Src: /src/nss/cmd/bltest/blapitest.c:3207,1
    - Dst: printf
      Src: /src/nss/cmd/bltest/blapitest.c:3209,1
    - Dst: printf
      Src: /src/nss/cmd/bltest/blapitest.c:3211,1
    - Dst: printf
      Src: /src/nss/cmd/bltest/blapitest.c:3216,1
    - Dst: printf
      Src: /src/nss/cmd/bltest/blapitest.c:3218,1
    - Dst: printf
      Src: /src/nss/cmd/bltest/blapitest.c:3222,1
    - Dst: printf
      Src: /src/nss/cmd/bltest/blapitest.c:3224,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 5
    argNames:
    - result
    - cmp
    - mode
    - forward
    - sigstatus
    argTypes:
    - bltestIO*
    - bltestIO*
    - bltestCipherMode
    - PRBool
    - SECStatus
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3229
      start: 3184
    functionDepth: 1
    functionLinenumber: 3184
    functionLinenumberEnd: 3229
    functionName: verify_self_test
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - is_hashCipher
    - is_sigCipher
    - SECITEM_ItemsAreEqual
    - printf
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus verify_self_test(bltestIO *result, bltestIO *cmp, bltestCipherMode
      mode,\n                 PRBool forward, SECStatus sigstatus)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_Open
      Src: /src/nss/cmd/bltest/blapitest.c:3238,1
    - Dst: SECU_FileToItem
      Src: /src/nss/cmd/bltest/blapitest.c:3242,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/cmd/bltest/blapitest.c:3243,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/bltest/blapitest.c:3244,1
    - Dst: PR_Close
      Src: /src/nss/cmd/bltest/blapitest.c:3245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - arena
    - dst
    - filename
    argTypes:
    - PLArenaPool*
    - SECItem*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3247
      start: 3231
    functionDepth: 1
    functionLinenumber: 3231
    functionLinenumberEnd: 3247
    functionName: ReadFileToItem
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - SECU_FileToItem
    - SECITEM_CopyItem
    - PR_Open
    - PR_Close
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ReadFileToItem(PLArenaPool *arena, SECItem *dst, const char
      *filename)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memset
      Src: /src/nss/cmd/bltest/blapitest.c:3264,1
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/bltest/blapitest.c:3265,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:3275,1
    - Dst: snprintf
      Src: /src/nss/cmd/bltest/blapitest.c:3282,1
    - Dst: ReadFileToItem
      Src: /src/nss/cmd/bltest/blapitest.c:3283,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:3284,1
    - Dst: isdigit
      Src: /src/nss/cmd/bltest/blapitest.c:3291,1
    - Dst: snprintf
      Src: /src/nss/cmd/bltest/blapitest.c:3298,1
    - Dst: load_file_data
      Src: /src/nss/cmd/bltest/blapitest.c:3300,1
    - Dst: is_sigCipher
      Src: /src/nss/cmd/bltest/blapitest.c:3301,1
    - Dst: snprintf
      Src: /src/nss/cmd/bltest/blapitest.c:3303,1
    - Dst: load_file_data
      Src: /src/nss/cmd/bltest/blapitest.c:3305,1
    - Dst: get_params
      Src: /src/nss/cmd/bltest/blapitest.c:3307,1
    - Dst: bltestCopyIO
      Src: /src/nss/cmd/bltest/blapitest.c:3313,1
    - Dst: misalignBuffer
      Src: /src/nss/cmd/bltest/blapitest.c:3314,1
    - Dst: memset
      Src: /src/nss/cmd/bltest/blapitest.c:3315,1
    - Dst: cipherInit
      Src: /src/nss/cmd/bltest/blapitest.c:3316,1
    - Dst: misalignBuffer
      Src: /src/nss/cmd/bltest/blapitest.c:3317,1
    - Dst: cipherDoOp
      Src: /src/nss/cmd/bltest/blapitest.c:3318,1
    - Dst: cipherFinish
      Src: /src/nss/cmd/bltest/blapitest.c:3319,1
    - Dst: verify_self_test
      Src: /src/nss/cmd/bltest/blapitest.c:3320,1
    - Dst: is_hashCipher
      Src: /src/nss/cmd/bltest/blapitest.c:3323,1
    - Dst: is_sigCipher
      Src: /src/nss/cmd/bltest/blapitest.c:3325,1
    - Dst: bltestCopyIO
      Src: /src/nss/cmd/bltest/blapitest.c:3335,1
    - Dst: is_sigCipher
      Src: /src/nss/cmd/bltest/blapitest.c:3344,1
    - Dst: bltestCopyIO
      Src: /src/nss/cmd/bltest/blapitest.c:3345,1
    - Dst: bltestCopyIO
      Src: /src/nss/cmd/bltest/blapitest.c:3346,1
    - Dst: bltestCopyIO
      Src: /src/nss/cmd/bltest/blapitest.c:3348,1
    - Dst: memset
      Src: /src/nss/cmd/bltest/blapitest.c:3349,1
    - Dst: misalignBuffer
      Src: /src/nss/cmd/bltest/blapitest.c:3351,1
    - Dst: cipherInit
      Src: /src/nss/cmd/bltest/blapitest.c:3352,1
    - Dst: misalignBuffer
      Src: /src/nss/cmd/bltest/blapitest.c:3353,1
    - Dst: cipherDoOp
      Src: /src/nss/cmd/bltest/blapitest.c:3355,1
    - Dst: cipherFinish
      Src: /src/nss/cmd/bltest/blapitest.c:3356,1
    - Dst: verify_self_test
      Src: /src/nss/cmd/bltest/blapitest.c:3357,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/bltest/blapitest.c:3361,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 71
    argCount: 6
    argNames:
    - modes
    - numModes
    - inoff
    - outoff
    - encrypt
    - decrypt
    argTypes:
    - bltestCipherMode*
    - int
    - int
    - int
    - PRBool
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3363
      start: 3249
    functionDepth: 5
    functionLinenumber: 3249
    functionLinenumberEnd: 3363
    functionName: blapi_selftest
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - is_sigCipher
    - cipherInit
    - cipherDoOp
    - PORT_NewArena
    - PORT_FreeArena
    - get_params
    - isdigit
    - fprintf
    - misalignBuffer
    - memset
    - snprintf
    - ReadFileToItem
    - load_file_data
    - is_hashCipher
    - cipherFinish
    - PORT_Memset
    - verify_self_test
    - bltestCopyIO
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus blapi_selftest(bltestCipherMode *modes, int numModes, int
      inoff, int outoff,\n               PRBool encrypt, PRBool decrypt)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/bltest/blapitest.c:3370,1
    - Dst: load_file_data
      Src: /src/nss/cmd/bltest/blapitest.c:3376,1
    - Dst: rsakey_from_filedata
      Src: /src/nss/cmd/bltest/blapitest.c:3377,1
    - Dst: dump_rsakey
      Src: /src/nss/cmd/bltest/blapitest.c:3378,1
    - Dst: get_file_data
      Src: /src/nss/cmd/bltest/blapitest.c:3382,1
    - Dst: pqg_from_filedata
      Src: /src/nss/cmd/bltest/blapitest.c:3383,1
    - Dst: dump_pqg
      Src: /src/nss/cmd/bltest/blapitest.c:3384,1
    - Dst: load_file_data
      Src: /src/nss/cmd/bltest/blapitest.c:3387,1
    - Dst: dsakey_from_filedata
      Src: /src/nss/cmd/bltest/blapitest.c:3388,1
    - Dst: dump_dsakey
      Src: /src/nss/cmd/bltest/blapitest.c:3389,1
    - Dst: load_file_data
      Src: /src/nss/cmd/bltest/blapitest.c:3392,1
    - Dst: eckey_from_filedata
      Src: /src/nss/cmd/bltest/blapitest.c:3393,1
    - Dst: dump_eckey
      Src: /src/nss/cmd/bltest/blapitest.c:3394,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/bltest/blapitest.c:3396,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - mode
    - filename
    argTypes:
    - bltestCipherMode
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3398
      start: 3365
    functionDepth: 4
    functionLinenumber: 3365
    functionLinenumberEnd: 3398
    functionName: dump_file
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - dump_pqg
    - PORT_NewArena
    - dsakey_from_filedata
    - PORT_FreeArena
    - dump_rsakey
    - get_file_data
    - eckey_from_filedata
    - pqg_from_filedata
    - dump_dsakey
    - dump_eckey
    - rsakey_from_filedata
    - load_file_data
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus dump_file(bltestCipherMode mode, char *filename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cipherDoOp
      Src: /src/nss/cmd/bltest/blapitest.c:3408,1
    - Dst: memcpy
      Src: /src/nss/cmd/bltest/blapitest.c:3409,1
    - Dst: cipherDoOp
      Src: /src/nss/cmd/bltest/blapitest.c:3414,1
    - Dst: cipherFinish
      Src: /src/nss/cmd/bltest/blapitest.c:3416,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3417
      start: 3400
    functionDepth: 2
    functionLinenumber: 3400
    functionLinenumberEnd: 3417
    functionName: ThreadExecTest
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - memcpy
    - cipherDoOp
    - cipherFinish
    linkageType: ''
    returnType: void
    signature: void ThreadExecTest(void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/bltest/blapitest.c:3446,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 1
    argNames:
    - tstKey
    argTypes:
    - RSAPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3448
      start: 3419
    functionDepth: 0
    functionLinenumber: 3419
    functionLinenumberEnd: 3448
    functionName: rsaPrivKeyReset
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - PORT_FreeArena
    linkageType: ''
    returnType: void
    signature: void rsaPrivKeyReset(RSAPrivateKey *tstKey)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - comp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3460
      start: 3450
    functionDepth: 0
    functionLinenumber: 3450
    functionLinenumberEnd: 3460
    functionName: RSA_TEST_EQUAL
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RSA_TEST_EQUAL(comp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RSA_TEST_EQUAL
      Src: /src/nss/cmd/bltest/blapitest.c:3465,1
    - Dst: RSA_TEST_EQUAL
      Src: /src/nss/cmd/bltest/blapitest.c:3466,1
    - Dst: RSA_TEST_EQUAL
      Src: /src/nss/cmd/bltest/blapitest.c:3467,1
    - Dst: RSA_TEST_EQUAL
      Src: /src/nss/cmd/bltest/blapitest.c:3468,1
    - Dst: RSA_TEST_EQUAL
      Src: /src/nss/cmd/bltest/blapitest.c:3469,1
    - Dst: RSA_TEST_EQUAL
      Src: /src/nss/cmd/bltest/blapitest.c:3470,1
    - Dst: RSA_TEST_EQUAL
      Src: /src/nss/cmd/bltest/blapitest.c:3471,1
    - Dst: RSA_TEST_EQUAL
      Src: /src/nss/cmd/bltest/blapitest.c:3472,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:3474,1
    - Dst: dump_rsakey
      Src: /src/nss/cmd/bltest/blapitest.c:3475,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:3476,1
    - Dst: dump_rsakey
      Src: /src/nss/cmd/bltest/blapitest.c:3477,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - src
    - dest
    argTypes:
    - RSAPrivateKey*
    - RSAPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3480
      start: 3461
    functionDepth: 2
    functionLinenumber: 3461
    functionLinenumberEnd: 3480
    functionName: rsaPrivKeysAreEqual
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - fprintf
    - dump_rsakey
    - RSA_TEST_EQUAL
    linkageType: ''
    returnType: PRBool
    signature: PRBool rsaPrivKeysAreEqual(RSAPrivateKey *src, RSAPrivateKey *dest)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/cmd/bltest/blapitest.c:3496,1
    - Dst: rsaPrivKeyReset
      Src: /src/nss/cmd/bltest/blapitest.c:3499,1
    - Dst: RSA_PopulatePrivateKey
      Src: /src/nss/cmd/bltest/blapitest.c:3507,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:3509,1
    - Dst: memcmp
      Src: /src/nss/cmd/bltest/blapitest.c:3511,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:3513,1
    - Dst: memcmp
      Src: /src/nss/cmd/bltest/blapitest.c:3515,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:3517,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:3520,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/bltest/blapitest.c:3524,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3526
      start: 3482
    functionDepth: 1
    functionLinenumber: 3482
    functionLinenumberEnd: 3526
    functionName: doRSAPopulateTestKV
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - rsaPrivKeyReset
    - PORT_FreeArena
    - PR_ARRAY_SIZE
    - fprintf
    - memcmp
    - RSA_PopulatePrivateKey
    linkageType: ''
    returnType: int
    signature: int doRSAPopulateTestKV()
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: RSA_NewKey
      Src: /src/nss/cmd/bltest/blapitest.c:3555,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:3557,1
    - Dst: rsaPrivKeyReset
      Src: /src/nss/cmd/bltest/blapitest.c:3563,1
    - Dst: RSA_PopulatePrivateKey
      Src: /src/nss/cmd/bltest/blapitest.c:3569,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:3571,1
    - Dst: rsaPrivKeysAreEqual
      Src: /src/nss/cmd/bltest/blapitest.c:3573,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:3574,1
    - Dst: rsaPrivKeyReset
      Src: /src/nss/cmd/bltest/blapitest.c:3579,1
    - Dst: RSA_PopulatePrivateKey
      Src: /src/nss/cmd/bltest/blapitest.c:3585,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:3587,1
    - Dst: rsaPrivKeysAreEqual
      Src: /src/nss/cmd/bltest/blapitest.c:3589,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:3590,1
    - Dst: rsaPrivKeyReset
      Src: /src/nss/cmd/bltest/blapitest.c:3595,1
    - Dst: RSA_PopulatePrivateKey
      Src: /src/nss/cmd/bltest/blapitest.c:3601,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:3603,1
    - Dst: rsaPrivKeysAreEqual
      Src: /src/nss/cmd/bltest/blapitest.c:3605,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:3606,1
    - Dst: rsaPrivKeyReset
      Src: /src/nss/cmd/bltest/blapitest.c:3611,1
    - Dst: RSA_PopulatePrivateKey
      Src: /src/nss/cmd/bltest/blapitest.c:3617,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:3619,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:3620,1
    - Dst: rsaPrivKeysAreEqual
      Src: /src/nss/cmd/bltest/blapitest.c:3624,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:3626,1
    - Dst: RSA_PrivateKeyCheck
      Src: /src/nss/cmd/bltest/blapitest.c:3627,1
    - Dst: rsaPrivKeyReset
      Src: /src/nss/cmd/bltest/blapitest.c:3632,1
    - Dst: RSA_PopulatePrivateKey
      Src: /src/nss/cmd/bltest/blapitest.c:3638,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:3640,1
    - Dst: rsaPrivKeysAreEqual
      Src: /src/nss/cmd/bltest/blapitest.c:3642,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:3643,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/bltest/blapitest.c:3647,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 83
    argCount: 2
    argNames:
    - keySize
    - exponent
    argTypes:
    - unsigned int
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3649
      start: 3532
    functionDepth: 3
    functionLinenumber: 3532
    functionLinenumberEnd: 3649
    functionName: doRSAPopulateTest
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 0
    functionsReached:
    - rsaPrivKeyReset
    - rsaPrivKeysAreEqual
    - PORT_FreeArena
    - fprintf
    - RSA_NewKey
    - RSA_PrivateKeyCheck
    - RSA_PopulatePrivateKey
    linkageType: ''
    returnType: int
    signature: int doRSAPopulateTest(unsigned int keySize, unsigned long exponent)
  - BBCount: 87
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/nss/cmd/bltest/blapitest.c:3775,1
    - Dst: strrchr
      Src: /src/nss/cmd/bltest/blapitest.c:3777,1
    - Dst: NSS_InitializePRErrorTable
      Src: /src/nss/cmd/bltest/blapitest.c:3780,1
    - Dst: SECU_PrintPRandOSError
      Src: /src/nss/cmd/bltest/blapitest.c:3782,1
    - Dst: RNG_RNGInit
      Src: /src/nss/cmd/bltest/blapitest.c:3785,1
    - Dst: SECU_PrintPRandOSError
      Src: /src/nss/cmd/bltest/blapitest.c:3787,1
    - Dst: BL_Init
      Src: /src/nss/cmd/bltest/blapitest.c:3790,1
    - Dst: SECU_PrintPRandOSError
      Src: /src/nss/cmd/bltest/blapitest.c:3792,1
    - Dst: RNG_SystemInfoForRNG
      Src: /src/nss/cmd/bltest/blapitest.c:3795,1
    - Dst: SECU_ParseCommandLine
      Src: /src/nss/cmd/bltest/blapitest.c:3797,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:3799,1
    - Dst: PORT_ZNew
      Src: /src/nss/cmd/bltest/blapitest.c:3804,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:3815,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:3820,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/bltest/blapitest.c:3833,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/bltest/blapitest.c:3835,1
    - Dst: strdup
      Src: /src/nss/cmd/bltest/blapitest.c:3837,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/bltest/blapitest.c:3846,1
    - Dst: doRSAPopulateTestKV
      Src: /src/nss/cmd/bltest/blapitest.c:3847,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/bltest/blapitest.c:3858,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/bltest/blapitest.c:3861,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/bltest/blapitest.c:3864,1
    - Dst: printf
      Src: /src/nss/cmd/bltest/blapitest.c:3868,1
    - Dst: doRSAPopulateTest
      Src: /src/nss/cmd/bltest/blapitest.c:3869,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:3875,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/bltest/blapitest.c:3877,1
    - Dst: strchr
      Src: /src/nss/cmd/bltest/blapitest.c:3890,1
    - Dst: get_mode
      Src: /src/nss/cmd/bltest/blapitest.c:3893,1
    - Dst: blapi_selftest
      Src: /src/nss/cmd/bltest/blapitest.c:3907,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/bltest/blapitest.c:3909,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/bltest/blapitest.c:3915,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:3917,1
    - Dst: sftk_FIPSEntryOK
      Src: /src/nss/cmd/bltest/blapitest.c:3920,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:3922,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:3925,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:3937,1
    - Dst: get_mode
      Src: /src/nss/cmd/bltest/blapitest.c:3943,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:3948,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:3955,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/bltest/blapitest.c:3963,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/bltest/blapitest.c:3969,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/bltest/blapitest.c:3975,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/bltest/blapitest.c:3981,1
    - Dst: dump_file
      Src: /src/nss/cmd/bltest/blapitest.c:3989,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/bltest/blapitest.c:3990,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/bltest/blapitest.c:4003,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/bltest/blapitest.c:4008,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:4014,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/bltest/blapitest.c:4019,1
    - Dst: Usage
      Src: /src/nss/cmd/bltest/blapitest.c:4021,1
    - Dst: PORT_ZNew
      Src: /src/nss/cmd/bltest/blapitest.c:4038,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:4040,1
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/bltest/blapitest.c:4052,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:4054,1
    - Dst: is_symmkeyCipher
      Src: /src/nss/cmd/bltest/blapitest.c:4063,1
    - Dst: is_aeadCipher
      Src: /src/nss/cmd/bltest/blapitest.c:4064,1
    - Dst: PR_Open
      Src: /src/nss/cmd/bltest/blapitest.c:4070,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/bltest/blapitest.c:4075,1
    - Dst: PR_Open
      Src: /src/nss/cmd/bltest/blapitest.c:4079,1
    - Dst: setupIO
      Src: /src/nss/cmd/bltest/blapitest.c:4082,1
    - Dst: PR_Close
      Src: /src/nss/cmd/bltest/blapitest.c:4084,1
    - Dst: is_pubkeyCipher
      Src: /src/nss/cmd/bltest/blapitest.c:4085,1
    - Dst: PR_Open
      Src: /src/nss/cmd/bltest/blapitest.c:4087,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/bltest/blapitest.c:4090,1
    - Dst: PR_Open
      Src: /src/nss/cmd/bltest/blapitest.c:4093,1
    - Dst: pubkeyInitKey
      Src: /src/nss/cmd/bltest/blapitest.c:4096,1
    - Dst: PR_Close
      Src: /src/nss/cmd/bltest/blapitest.c:4097,1
    - Dst: cipher_requires_IV
      Src: /src/nss/cmd/bltest/blapitest.c:4101,1
    - Dst: PR_Open
      Src: /src/nss/cmd/bltest/blapitest.c:4115,1
    - Dst: PR_Open
      Src: /src/nss/cmd/bltest/blapitest.c:4120,1
    - Dst: memset
      Src: /src/nss/cmd/bltest/blapitest.c:4122,1
    - Dst: setupIO
      Src: /src/nss/cmd/bltest/blapitest.c:4124,1
    - Dst: PR_Close
      Src: /src/nss/cmd/bltest/blapitest.c:4126,1
    - Dst: is_authCipher
      Src: /src/nss/cmd/bltest/blapitest.c:4131,1
    - Dst: PR_Open
      Src: /src/nss/cmd/bltest/blapitest.c:4140,1
    - Dst: memset
      Src: /src/nss/cmd/bltest/blapitest.c:4146,1
    - Dst: setupIO
      Src: /src/nss/cmd/bltest/blapitest.c:4148,1
    - Dst: PR_Close
      Src: /src/nss/cmd/bltest/blapitest.c:4150,1
    - Dst: PR_Open
      Src: /src/nss/cmd/bltest/blapitest.c:4155,1
    - Dst: is_sigCipher
      Src: /src/nss/cmd/bltest/blapitest.c:4156,1
    - Dst: memset
      Src: /src/nss/cmd/bltest/blapitest.c:4157,1
    - Dst: setupIO
      Src: /src/nss/cmd/bltest/blapitest.c:4159,1
    - Dst: PR_Close
      Src: /src/nss/cmd/bltest/blapitest.c:4162,1
    - Dst: PR_Open
      Src: /src/nss/cmd/bltest/blapitest.c:4167,1
    - Dst: setupIO
      Src: /src/nss/cmd/bltest/blapitest.c:4169,1
    - Dst: PR_Close
      Src: /src/nss/cmd/bltest/blapitest.c:4172,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/bltest/blapitest.c:4186,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:4190,1
    - Dst: PR_Open
      Src: /src/nss/cmd/bltest/blapitest.c:4194,1
    - Dst: PR_smprintf_free
      Src: /src/nss/cmd/bltest/blapitest.c:4195,1
    - Dst: PR_Open
      Src: /src/nss/cmd/bltest/blapitest.c:4197,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/bltest/blapitest.c:4202,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:4204,1
    - Dst: PR_Open
      Src: /src/nss/cmd/bltest/blapitest.c:4207,1
    - Dst: PR_smprintf_free
      Src: /src/nss/cmd/bltest/blapitest.c:4208,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:4213,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/bltest/blapitest.c:4224,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:4228,1
    - Dst: PR_Open
      Src: /src/nss/cmd/bltest/blapitest.c:4231,1
    - Dst: PR_smprintf_free
      Src: /src/nss/cmd/bltest/blapitest.c:4232,1
    - Dst: PR_Open
      Src: /src/nss/cmd/bltest/blapitest.c:4234,1
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/blapitest.c:4240,1
    - Dst: is_hashCipher
      Src: /src/nss/cmd/bltest/blapitest.c:4248,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/bltest/blapitest.c:4254,1
    - Dst: setupIO
      Src: /src/nss/cmd/bltest/blapitest.c:4257,1
    - Dst: PR_Close
      Src: /src/nss/cmd/bltest/blapitest.c:4259,1
    - Dst: misalignBuffer
      Src: /src/nss/cmd/bltest/blapitest.c:4260,1
    - Dst: cipherInit
      Src: /src/nss/cmd/bltest/blapitest.c:4262,1
    - Dst: misalignBuffer
      Src: /src/nss/cmd/bltest/blapitest.c:4263,1
    - Dst: TIMESTART
      Src: /src/nss/cmd/bltest/blapitest.c:4267,1
    - Dst: PR_CreateThread
      Src: /src/nss/cmd/bltest/blapitest.c:4271,1
    - Dst: PR_JoinThread
      Src: /src/nss/cmd/bltest/blapitest.c:4283,1
    - Dst: finishIO
      Src: /src/nss/cmd/bltest/blapitest.c:4284,1
    - Dst: TIMEFINISH
      Src: /src/nss/cmd/bltest/blapitest.c:4287,1
    - Dst: dump_performance_info
      Src: /src/nss/cmd/bltest/blapitest.c:4293,1
    - Dst: PR_Close
      Src: /src/nss/cmd/bltest/blapitest.c:4301,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/bltest/blapitest.c:4307,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/bltest/blapitest.c:4309,1
    CyclomaticComplexity: 129
    EdgeCount: 129
    ICount: 407
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4315
      start: 3753
    functionDepth: 6
    functionLinenumber: 3753
    functionLinenumberEnd: 4315
    functionName: main
    functionSourceFile: /src/nss/cmd/bltest/blapitest.c
    functionUses: 2
    functionsReached:
    - RNG_RNGInit
    - PORT_Atoi
    - cipherInit
    - pubkeyInitKey
    - PORT_ZNew
    - printf
    - is_symmkeyCipher
    - fprintf
    - dump_file
    - PR_JoinThread
    - Usage
    - cipher_requires_IV
    - doRSAPopulateTestKV
    - blapi_selftest
    - sftk_FIPSEntryOK
    - PORT_NewArena
    - strchr
    - finishIO
    - is_authCipher
    - memset
    - PR_smprintf_free
    - PR_smprintf
    - strrchr
    - doRSAPopulateTest
    - strdup
    - is_aeadCipher
    - PORT_FreeArena
    - SECU_PrintPRandOSError
    - misalignBuffer
    - PR_Open
    - dump_performance_info
    - is_hashCipher
    - PR_CreateThread
    - setupIO
    - PR_Close
    - is_pubkeyCipher
    - is_sigCipher
    - BL_Init
    - get_mode
    - PORT_Free
    - RNG_SystemInfoForRNG
    - NSS_InitializePRErrorTable
    - SECU_ParseCommandLine
    - TIMEFINISH
    - TIMESTART
    - PORT_Strdup
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 5
    functionDepth: 0
    functionLinenumber: 5
    functionLinenumberEnd: 18
    functionName: tohex
    functionSourceFile: /src/nss/cmd/bltest/tests/aes_gcm/hex.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int tohex(int c)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 36
    functionName: isspace
    functionSourceFile: /src/nss/cmd/bltest/tests/aes_gcm/hex.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int isspace(int c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/bltest/tests/aes_gcm/hex.c:42,1
    - Dst: fflush
      Src: /src/nss/cmd/bltest/tests/aes_gcm/hex.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - nibble
    - current
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 45
    functionName: verify_nibble
    functionSourceFile: /src/nss/cmd/bltest/tests/aes_gcm/hex.c
    functionUses: 0
    functionsReached:
    - fprintf
    - fflush
    linkageType: ''
    returnType: void
    signature: void verify_nibble(int nibble, int current)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/nss/cmd/bltest/tests/aes_gcm/hex.c:56,1
    - Dst: getchar
      Src: /src/nss/cmd/bltest/tests/aes_gcm/hex.c:60,1
    - Dst: isspace
      Src: /src/nss/cmd/bltest/tests/aes_gcm/hex.c:61,1
    - Dst: verify_nibble
      Src: /src/nss/cmd/bltest/tests/aes_gcm/hex.c:62,1
    - Dst: tohex
      Src: /src/nss/cmd/bltest/tests/aes_gcm/hex.c:69,1
    - Dst: putchar
      Src: /src/nss/cmd/bltest/tests/aes_gcm/hex.c:72,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 78
    functionName: main
    functionSourceFile: /src/nss/cmd/bltest/tests/aes_gcm/hex.c
    functionUses: 2
    functionsReached:
    - isspace
    - atoi
    - putchar
    - getchar
    - verify_nibble
    - tohex
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - array
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: NUM_ELEM
    functionSourceFile: /src/nss/cmd/pk11mode/pk11mode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NUM_ELEM(array)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getName
      Src: /src/nss/cmd/pk11mode/pk11mode.c:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - errNum
    argTypes:
    - CK_RV
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 59
    functionName: PKM_CK_RVtoStr
    functionSourceFile: /src/nss/cmd/pk11mode/pk11mode.c
    functionUses: 0
    functionsReached:
    - getName
    linkageType: ''
    returnType: char
    signature: 'char *

      PKM_CK_RVtoStr(CK_RV errNum)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/pk11mode/pk11mode.c:199,1
    - Dst: printf
      Src: /src/nss/cmd/pk11mode/pk11mode.c:200,1
    - Dst: printf
      Src: /src/nss/cmd/pk11mode/pk11mode.c:204,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - buf
    - bufLen
    argTypes:
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 205
    functionName: dumpToHash64
    functionSourceFile: /src/nss/cmd/pk11mode/pk11mode.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void dumpToHash64(const unsigned char *buf, unsigned int bufLen)
  - BBCount: 63
    BranchProfiles: []
    Callsites:
    - Dst: PL_CreateOptState
      Src: /src/nss/cmd/pk11mode/pk11mode.c:340,1
    - Dst: PL_GetNextOpt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:341,1
    - Dst: PKM_FilePasswd
      Src: /src/nss/cmd/pk11mode/pk11mode.c:353,1
    - Dst: PKM_Help
      Src: /src/nss/cmd/pk11mode/pk11mode.c:355,1
    - Dst: PKM_Help
      Src: /src/nss/cmd/pk11mode/pk11mode.c:359,1
    - Dst: strdup
      Src: /src/nss/cmd/pk11mode/pk11mode.c:360,1
    - Dst: PKM_CheckPath
      Src: /src/nss/cmd/pk11mode/pk11mode.c:361,1
    - Dst: PKM_Help
      Src: /src/nss/cmd/pk11mode/pk11mode.c:365,1
    - Dst: strdup
      Src: /src/nss/cmd/pk11mode/pk11mode.c:366,1
    - Dst: PKM_Help
      Src: /src/nss/cmd/pk11mode/pk11mode.c:373,1
    - Dst: PL_DestroyOptState
      Src: /src/nss/cmd/pk11mode/pk11mode.c:377,1
    - Dst: strdup
      Src: /src/nss/cmd/pk11mode/pk11mode.c:380,1
    - Dst: strlen
      Src: /src/nss/cmd/pk11mode/pk11mode.c:382,1
    - Dst: strdup
      Src: /src/nss/cmd/pk11mode/pk11mode.c:384,1
    - Dst: strdup
      Src: /src/nss/cmd/pk11mode/pk11mode.c:387,1
    - Dst: PKM_ForkCheck
      Src: /src/nss/cmd/pk11mode/pk11mode.c:393,1
    - Dst: LoadLibrary
      Src: /src/nss/cmd/pk11mode/pk11mode.c:399,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:401,1
    - Dst: GetProcAddress
      Src: /src/nss/cmd/pk11mode/pk11mode.c:407,1
    - Dst: GetProcAddress
      Src: /src/nss/cmd/pk11mode/pk11mode.c:411,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:414,1
    - Dst: PR_GetLibraryName
      Src: /src/nss/cmd/pk11mode/pk11mode.c:421,1
    - Dst: assert
      Src: /src/nss/cmd/pk11mode/pk11mode.c:422,1
    - Dst: PR_LoadLibrary
      Src: /src/nss/cmd/pk11mode/pk11mode.c:423,1
    - Dst: assert
      Src: /src/nss/cmd/pk11mode/pk11mode.c:424,1
    - Dst: PR_FreeLibraryName
      Src: /src/nss/cmd/pk11mode/pk11mode.c:425,1
    - Dst: PR_FindFunctionSymbol
      Src: /src/nss/cmd/pk11mode/pk11mode.c:428,1
    - Dst: assert
      Src: /src/nss/cmd/pk11mode/pk11mode.c:430,1
    - Dst: PR_FindFunctionSymbol
      Src: /src/nss/cmd/pk11mode/pk11mode.c:433,1
    - Dst: assert
      Src: /src/nss/cmd/pk11mode/pk11mode.c:435,1
    - Dst: printf
      Src: /src/nss/cmd/pk11mode/pk11mode.c:441,1
    - Dst: printf
      Src: /src/nss/cmd/pk11mode/pk11mode.c:444,1
    - Dst: assert
      Src: /src/nss/cmd/pk11mode/pk11mode.c:449,1
    - Dst: PKM_ForkCheck
      Src: /src/nss/cmd/pk11mode/pk11mode.c:453,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/pk11mode/pk11mode.c:464,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/pk11mode/pk11mode.c:467,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Initialize
      Src: /src/nss/cmd/pk11mode/pk11mode.c:481,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:483,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:485,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:486,1
    - Dst: PKM_ForkCheck
      Src: /src/nss/cmd/pk11mode/pk11mode.c:498,1
    - Dst: PKM_ForkCheck
      Src: /src/nss/cmd/pk11mode/pk11mode.c:509,1
    - Dst: PKM_ShowInfo
      Src: /src/nss/cmd/pk11mode/pk11mode.c:514,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:516,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:518,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:519,1
    - Dst: PKM_GetSlotList
      Src: /src/nss/cmd/pk11mode/pk11mode.c:522,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:524,1
    - Dst: CK_FUNCTION_LIST_PTR::C_GetTokenInfo
      Src: /src/nss/cmd/pk11mode/pk11mode.c:527,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:529,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:531,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:532,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:537,1
    - Dst: PKM_InitPWforDB
      Src: /src/nss/cmd/pk11mode/pk11mode.c:538,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:541,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:543,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:544,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:548,1
    - Dst: PKM_Mechanism
      Src: /src/nss/cmd/pk11mode/pk11mode.c:552,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:554,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:556,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:557,1
    - Dst: PKM_RNG
      Src: /src/nss/cmd/pk11mode/pk11mode.c:561,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:563,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:565,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:566,1
    - Dst: PKM_SessionLogin
      Src: /src/nss/cmd/pk11mode/pk11mode.c:570,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:573,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:575,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:576,1
    - Dst: PKM_KeyTests
      Src: /src/nss/cmd/pk11mode/pk11mode.c:585,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:588,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:590,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:591,1
    - Dst: PKM_SecretKey
      Src: /src/nss/cmd/pk11mode/pk11mode.c:595,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:598,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:600,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:601,1
    - Dst: PKM_PublicKey
      Src: /src/nss/cmd/pk11mode/pk11mode.c:605,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:608,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:610,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:611,1
    - Dst: PKM_OperationalState
      Src: /src/nss/cmd/pk11mode/pk11mode.c:614,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:617,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:619,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:620,1
    - Dst: PKM_MultiObjectManagement
      Src: /src/nss/cmd/pk11mode/pk11mode.c:623,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:626,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:628,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:629,1
    - Dst: PKM_LegacyFunctions
      Src: /src/nss/cmd/pk11mode/pk11mode.c:632,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:635,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:637,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:638,1
    - Dst: PKM_TLSKeyAndMacDerive
      Src: /src/nss/cmd/pk11mode/pk11mode.c:641,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:646,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:648,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:649,1
    - Dst: PKM_TLSMasterKeyDerive
      Src: /src/nss/cmd/pk11mode/pk11mode.c:652,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:657,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:659,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:660,1
    - Dst: PKM_TLSMasterKeyDerive
      Src: /src/nss/cmd/pk11mode/pk11mode.c:663,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:668,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:670,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:671,1
    - Dst: PKM_FindAllObjects
      Src: /src/nss/cmd/pk11mode/pk11mode.c:674,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:677,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:679,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:680,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Finalize
      Src: /src/nss/cmd/pk11mode/pk11mode.c:683,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:685,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:687,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:688,1
    - Dst: PKM_ForkCheck
      Src: /src/nss/cmd/pk11mode/pk11mode.c:694,1
    - Dst: free
      Src: /src/nss/cmd/pk11mode/pk11mode.c:700,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:706,1
    - Dst: PKM_HybridMode
      Src: /src/nss/cmd/pk11mode/pk11mode.c:707,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:709,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:711,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:712,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Initialize
      Src: /src/nss/cmd/pk11mode/pk11mode.c:719,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:721,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:723,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:724,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Finalize
      Src: /src/nss/cmd/pk11mode/pk11mode.c:727,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:729,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:731,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:732,1
    - Dst: PKM_ForkCheck
      Src: /src/nss/cmd/pk11mode/pk11mode.c:736,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:739,1
    - Dst: free
      Src: /src/nss/cmd/pk11mode/pk11mode.c:744,1
    - Dst: free
      Src: /src/nss/cmd/pk11mode/pk11mode.c:747,1
    - Dst: free
      Src: /src/nss/cmd/pk11mode/pk11mode.c:750,1
    - Dst: PR_smprintf_free
      Src: /src/nss/cmd/pk11mode/pk11mode.c:753,1
    - Dst: PR_smprintf_free
      Src: /src/nss/cmd/pk11mode/pk11mode.c:756,1
    - Dst: FreeLibrary
      Src: /src/nss/cmd/pk11mode/pk11mode.c:760,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/cmd/pk11mode/pk11mode.c:762,1
    - Dst: PR_UnloadLibrary
      Src: /src/nss/cmd/pk11mode/pk11mode.c:764,1
    - Dst: PKM_ForkCheck
      Src: /src/nss/cmd/pk11mode/pk11mode.c:769,1
    - Dst: printf
      Src: /src/nss/cmd/pk11mode/pk11mode.c:772,1
    - Dst: printf
      Src: /src/nss/cmd/pk11mode/pk11mode.c:775,1
    CyclomaticComplexity: 95
    EdgeCount: 95
    ICount: 342
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts:
    - condition: (pC_GetFunctionList != NULL)
      pos:
        line_end: 429
        line_start: 429
        source_file: /src/nss/cmd/pk11mode/pk11mode.c
    - condition: (crv == CKR_OK)
      pos:
        line_end: 448
        line_start: 448
        source_file: /src/nss/cmd/pk11mode/pk11mode.c
    - condition: (lib != NULL)
      pos:
        line_end: 423
        line_start: 423
        source_file: /src/nss/cmd/pk11mode/pk11mode.c
    - condition: (pC_GetFunctionList != NULL)
      pos:
        line_end: 434
        line_start: 434
        source_file: /src/nss/cmd/pk11mode/pk11mode.c
    - condition: (libname != NULL)
      pos:
        line_end: 421
        line_start: 421
        source_file: /src/nss/cmd/pk11mode/pk11mode.c
    constantsTouched: []
    func_position:
      end: 779
      start: 318
    functionDepth: 2
    functionLinenumber: 318
    functionLinenumberEnd: 779
    functionName: main
    functionSourceFile: /src/nss/cmd/pk11mode/pk11mode.c
    functionUses: 2
    functionsReached:
    - CK_FUNCTION_LIST_PTR::C_Initialize
    - PKM_LegacyFunctions
    - PKM_PublicKey
    - PKM_SessionLogin
    - printf
    - CK_FUNCTION_LIST_PTR::C_GetTokenInfo
    - PR_GetEnvSecure
    - PKM_Help
    - PL_DestroyOptState
    - PKM_GetSlotList
    - CK_FUNCTION_LIST_PTR::C_Finalize
    - strlen
    - PKM_Error
    - PR_FindFunctionSymbol
    - PKM_TLSMasterKeyDerive
    - assert
    - PKM_Mechanism
    - PR_smprintf_free
    - PR_smprintf
    - PKM_LogIt
    - PKM_TLSKeyAndMacDerive
    - FreeLibrary
    - GetProcAddress
    - PKM_SecretKey
    - PL_CreateOptState
    - PKM_OperationalState
    - PR_GetLibraryName
    - strdup
    - PKM_MultiObjectManagement
    - PR_FreeLibraryName
    - PKM_ForkCheck
    - PKM_CK_RVtoStr
    - LoadLibrary
    - PR_LoadLibrary
    - free
    - PL_GetNextOpt
    - PKM_ShowInfo
    - PKM_FindAllObjects
    - PKM_CheckPath
    - PKM_HybridMode
    - PR_UnloadLibrary
    - PKM_RNG
    - PKM_InitPWforDB
    - PKM_KeyTests
    - PKM_FilePasswd
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: NUM_ELEM
      Src: /src/nss/cmd/pk11mode/pk11mode.c:881,1
    - Dst: NUM_ELEM
      Src: /src/nss/cmd/pk11mode/pk11mode.c:882,1
    - Dst: NUM_ELEM
      Src: /src/nss/cmd/pk11mode/pk11mode.c:883,1
    - Dst: memset
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1057,1
    - Dst: CK_FUNCTION_LIST_PTR::C_OpenSession
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1071,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1075,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1077,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1079,1
    - Dst: CK_FUNCTION_LIST_PTR::C_GenerateKey
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1084,1
    - Dst: NUM_ELEM
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1086,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1089,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1092,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1094,1
    - Dst: CK_FUNCTION_LIST_PTR::C_GenerateKeyPair
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1096,1
    - Dst: NUM_ELEM
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1098,1
    - Dst: NUM_ELEM
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1100,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1103,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1106,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1109,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Login
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1113,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1115,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1117,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1119,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1123,1
    - Dst: CK_FUNCTION_LIST_PTR::C_GenerateKey
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1125,1
    - Dst: NUM_ELEM
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1127,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1130,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1132,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1133,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1137,1
    - Dst: CK_FUNCTION_LIST_PTR::C_GenerateKey
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1139,1
    - Dst: NUM_ELEM
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1141,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1144,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1146,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1147,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1151,1
    - Dst: CK_FUNCTION_LIST_PTR::C_GenerateKey
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1153,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1158,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1160,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1162,1
    - Dst: CK_FUNCTION_LIST_PTR::C_GetAttributeValue
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1165,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1168,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1170,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1172,1
    - Dst: CK_FUNCTION_LIST_PTR::C_DestroyObject
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1175,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1177,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1179,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1181,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1185,1
    - Dst: CK_FUNCTION_LIST_PTR::C_GenerateKeyPair
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1187,1
    - Dst: NUM_ELEM
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1189,1
    - Dst: NUM_ELEM
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1191,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1194,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1196,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1198,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1202,1
    - Dst: CK_FUNCTION_LIST_PTR::C_GenerateKeyPair
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1204,1
    - Dst: NUM_ELEM
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1206,1
    - Dst: NUM_ELEM
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1208,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1211,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1213,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1215,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1219,1
    - Dst: PKM_wrapUnwrap
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1225,1
    - Dst: NUM_ELEM
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1231,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1234,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1237,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1240,1
    - Dst: PKM_wrapUnwrap
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1244,1
    - Dst: NUM_ELEM
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1250,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1253,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1256,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1259,1
    - Dst: PKM_SecKeyCrypt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1263,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1267,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1269,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1271,1
    - Dst: PKM_SecKeyCrypt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1275,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1279,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1281,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1283,1
    - Dst: PKM_SecKeyCrypt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1287,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1291,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1293,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1295,1
    - Dst: PKM_SecKeyCrypt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1299,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1303,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1305,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1307,1
    - Dst: PKM_RecoverFunctions
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1312,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1317,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1319,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1320,1
    - Dst: PKM_PubKeySign
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1331,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1336,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1339,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1342,1
    - Dst: PKM_DualFuncSign
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1345,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1351,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1355,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1359,1
    - Dst: PKM_DualFuncSign
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1362,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1368,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1372,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1376,1
    - Dst: PKM_DualFuncSign
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1379,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1385,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1389,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1393,1
    - Dst: PKM_DualFuncSign
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1396,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1402,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1406,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1410,1
    - Dst: PKM_PubKeySign
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1416,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1420,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1422,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1424,1
    - Dst: PKM_DualFuncSign
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1427,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1433,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1436,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1438,1
    - Dst: PKM_DualFuncSign
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1441,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1447,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1450,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1452,1
    - Dst: PKM_DualFuncSign
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1455,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1461,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1464,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1466,1
    - Dst: PKM_DualFuncSign
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1469,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1475,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1478,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1480,1
    - Dst: PKM_Digest
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1486,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1490,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1493,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1496,1
    - Dst: PKM_DualFuncDigest
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1499,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1504,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1506,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1509,1
    - Dst: PKM_Digest
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1512,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1516,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1519,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1522,1
    - Dst: PKM_DualFuncDigest
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1525,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1530,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1532,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1535,1
    - Dst: PKM_Digest
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1538,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1542,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1545,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1548,1
    - Dst: PKM_Hmac
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1555,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1559,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1562,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1564,1
    - Dst: PKM_Hmac
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1569,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1573,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1576,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1578,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Logout
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1584,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1586,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1588,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1589,1
    - Dst: CK_FUNCTION_LIST_PTR::C_CloseSession
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1593,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1595,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1596,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 450
    argCount: 5
    argNames:
    - pFunctionList
    - pSlotList
    - slotID
    - pwd
    - pwdLen
    argTypes:
    - CK_FUNCTION_LIST_PTR
    - CK_SLOT_ID*
    - CK_ULONG
    - CK_UTF8CHAR_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1601
      start: 787
    functionDepth: 2
    functionLinenumber: 787
    functionLinenumberEnd: 1601
    functionName: PKM_KeyTests
    functionSourceFile: /src/nss/cmd/pk11mode/pk11mode.c
    functionUses: 1
    functionsReached:
    - CK_FUNCTION_LIST_PTR::C_GenerateKeyPair
    - PKM_PubKeySign
    - PKM_Hmac
    - PKM_SecKeyCrypt
    - CK_FUNCTION_LIST_PTR::C_GenerateKey
    - CK_FUNCTION_LIST_PTR::C_OpenSession
    - CK_FUNCTION_LIST_PTR::C_Logout
    - NUM_ELEM
    - PKM_wrapUnwrap
    - PKM_Error
    - memset
    - PKM_LogIt
    - CK_FUNCTION_LIST_PTR::C_CloseSession
    - CK_FUNCTION_LIST_PTR::C_DestroyObject
    - PKM_Digest
    - CK_FUNCTION_LIST_PTR::C_Login
    - PKM_CK_RVtoStr
    - CK_FUNCTION_LIST_PTR::C_GetAttributeValue
    - PKM_RecoverFunctions
    - PKM_DualFuncDigest
    - PKM_DualFuncSign
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV PKM_KeyTests(CK_FUNCTION_LIST_PTR pFunctionList,\n             CK_SLOT_ID
      *pSlotList, CK_ULONG slotID,\n             CK_UTF8CHAR_PTR pwd, CK_ULONG pwdLen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1609,1
    - Dst: printf
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1611,1
    - Dst: printf
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1613,1
    - Dst: printf
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1615,1
    - Dst: vprintf
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1617,1
    - Dst: va_end
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1618,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1620
      start: 1603
    functionDepth: 0
    functionLinenumber: 1603
    functionLinenumberEnd: 1620
    functionName: PKM_LogIt
    functionSourceFile: /src/nss/cmd/pk11mode/pk11mode.c
    functionUses: 2
    functionsReached:
    - vprintf
    - va_end
    - printf
    - va_start
    linkageType: ''
    returnType: void
    signature: void PKM_LogIt(const char *fmt, ...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1626,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1629,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1631,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1633,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1635,1
    - Dst: vfprintf
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1636,1
    - Dst: va_end
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1637,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1638
      start: 1622
    functionDepth: 0
    functionLinenumber: 1622
    functionLinenumberEnd: 1638
    functionName: PKM_Error
    functionSourceFile: /src/nss/cmd/pk11mode/pk11mode.c
    functionUses: 2
    functionsReached:
    - fprintf
    - vfprintf
    - va_end
    - va_start
    linkageType: ''
    returnType: void
    signature: void PKM_Error(const char *fmt, ...)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CK_FUNCTION_LIST_PTR::C_GetSlotList
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1650,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1653,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1654,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1657,1
    - Dst: malloc
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1658,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1660,1
    - Dst: CK_FUNCTION_LIST_PTR::C_GetSlotList
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1663,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1666,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1667,1
    - Dst: free
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1669,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - pFunctionList
    - slotID
    argTypes:
    - CK_FUNCTION_LIST_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1673
      start: 1639
    functionDepth: 2
    functionLinenumber: 1639
    functionLinenumberEnd: 1673
    functionName: PKM_GetSlotList
    functionSourceFile: /src/nss/cmd/pk11mode/pk11mode.c
    functionUses: 1
    functionsReached:
    - malloc
    - CK_FUNCTION_LIST_PTR::C_GetSlotList
    - free
    - PKM_Error
    - PKM_LogIt
    - PKM_CK_RVtoStr
    linkageType: ''
    returnType: CK_SLOT_ID
    signature: "CK_SLOT_ID *\nPKM_GetSlotList(CK_FUNCTION_LIST_PTR pFunctionList,\n
      \               CK_ULONG slotID)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: CK_FUNCTION_LIST_PTR::C_OpenSession
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1685,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1689,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1690,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1693,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Login
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1695,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1697,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1698,1
    - Dst: CK_FUNCTION_LIST_PTR::C_InitPIN
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1702,1
    - Dst: strlen
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1703,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1705,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1708,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1710,1
    - Dst: CK_FUNCTION_LIST_PTR::C_InitPIN
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1713,1
    - Dst: strlen
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1714,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1716,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1718,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1719,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Logout
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1722,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1724,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1725,1
    - Dst: CK_FUNCTION_LIST_PTR::C_CloseSession
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1728,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1730,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1731,1
    - Dst: CK_FUNCTION_LIST_PTR::C_OpenSession
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1735,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1739,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1740,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1744,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Login
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1746,1
    - Dst: strlen
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1747,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1749,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1750,1
    - Dst: CK_FUNCTION_LIST_PTR::C_SetPIN
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1754,1
    - Dst: strlen
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1756,1
    - Dst: strlen
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1758,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1760,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1763,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1765,1
    - Dst: CK_FUNCTION_LIST_PTR::C_SetPIN
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1768,1
    - Dst: strlen
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1770,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1773,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1774,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Logout
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1777,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1779,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1780,1
    - Dst: CK_FUNCTION_LIST_PTR::C_CloseSession
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1783,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1785,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1786,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 74
    argCount: 5
    argNames:
    - pFunctionList
    - pSlotList
    - slotID
    - pwd
    - pwdLen
    argTypes:
    - CK_FUNCTION_LIST_PTR
    - CK_SLOT_ID*
    - CK_ULONG
    - CK_UTF8CHAR_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1790
      start: 1675
    functionDepth: 2
    functionLinenumber: 1675
    functionLinenumberEnd: 1790
    functionName: PKM_InitPWforDB
    functionSourceFile: /src/nss/cmd/pk11mode/pk11mode.c
    functionUses: 1
    functionsReached:
    - PKM_Error
    - CK_FUNCTION_LIST_PTR::C_InitPIN
    - CK_FUNCTION_LIST_PTR::C_SetPIN
    - CK_FUNCTION_LIST_PTR::C_OpenSession
    - CK_FUNCTION_LIST_PTR::C_Login
    - PKM_LogIt
    - CK_FUNCTION_LIST_PTR::C_Logout
    - CK_FUNCTION_LIST_PTR::C_CloseSession
    - PKM_CK_RVtoStr
    - strlen
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV PKM_InitPWforDB(CK_FUNCTION_LIST_PTR pFunctionList,\n                CK_SLOT_ID
      *pSlotList, CK_ULONG slotID,\n                CK_UTF8CHAR_PTR pwd, CK_ULONG
      pwdLen)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CK_FUNCTION_LIST_PTR::C_GetInfo
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1806,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1808,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1810,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1811,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1814,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1815,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1818,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1819,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1820,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1821,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1823,1
    - Dst: PKM_GetSlotList
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1826,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1828,1
    - Dst: CK_FUNCTION_LIST_PTR::C_GetSlotInfo
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1831,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1833,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1835,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1836,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1839,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1840,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1841,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1842,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1846,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1850,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1853,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1856,1
    - Dst: CK_FUNCTION_LIST_PTR::C_GetTokenInfo
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1858,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1860,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1862,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1863,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1866,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1868,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1869,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1871,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1872,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1873,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1877,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1881,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1883,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1884,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1886,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1888,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1889,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1890,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1892,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1894,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1896,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1898,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1901,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1905,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1907,1
    - Dst: free
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1908,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 80
    argCount: 2
    argNames:
    - pFunctionList
    - slotID
    argTypes:
    - CK_FUNCTION_LIST_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1910
      start: 1792
    functionDepth: 3
    functionLinenumber: 1792
    functionLinenumberEnd: 1910
    functionName: PKM_ShowInfo
    functionSourceFile: /src/nss/cmd/pk11mode/pk11mode.c
    functionUses: 1
    functionsReached:
    - free
    - PKM_Error
    - CK_FUNCTION_LIST_PTR::C_GetTokenInfo
    - PKM_GetSlotList
    - PKM_LogIt
    - CK_FUNCTION_LIST_PTR::C_GetInfo
    - PKM_CK_RVtoStr
    - CK_FUNCTION_LIST_PTR::C_GetSlotInfo
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV PKM_ShowInfo(CK_FUNCTION_LIST_PTR pFunctionList, CK_ULONG slotID)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: GetProcAddress
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1943,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1945,1
    - Dst: PR_FindFunctionSymbol
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1949,1
    - Dst: assert
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1951,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1953,1
    - Dst: assert
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1956,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Initialize
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1959,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1961,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1963,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1964,1
    - Dst: PKM_GetSlotList
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1968,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1970,1
    - Dst: CK_FUNCTION_LIST_PTR::C_OpenSession
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1973,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1977,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1979,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1981,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Login
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1985,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1987,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1989,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1991,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Logout
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1995,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1997,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:1999,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2000,1
    - Dst: PKM_ShowInfo
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2004,1
    - Dst: GetProcAddress
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2012,1
    - Dst: PR_FindFunctionSymbol
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2014,1
    - Dst: assert
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2016,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2019,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2021,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2023,1
    - Dst: assert
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2028,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Initialize
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2031,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2033,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2035,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2036,1
    - Dst: PKM_ShowInfo
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2039,1
    - Dst: PKM_GetSlotList
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2041,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2043,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Login
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2047,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2049,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2051,1
    - Dst: CK_FUNCTION_LIST_PTR::C_CloseSession
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2054,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2056,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2058,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2060,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2064,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Finalize
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2069,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2071,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2074,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2077,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2081,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Finalize
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2085,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2087,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2090,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2091,1
    - Dst: free
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2096,1
    - Dst: free
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2098,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2101,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 112
    argCount: 3
    argNames:
    - pwd
    - pwdLen
    - initArgs
    argTypes:
    - CK_UTF8CHAR_PTR
    - CK_ULONG
    - CK_C_INITIALIZE_ARGS_NSS*
    assertStmts:
    - condition: (crv == CKR_OK)
      pos:
        line_end: 2027
        line_start: 2027
        source_file: /src/nss/cmd/pk11mode/pk11mode.c
    - condition: (pC_GetFunctionList != NULL)
      pos:
        line_end: 1950
        line_start: 1950
        source_file: /src/nss/cmd/pk11mode/pk11mode.c
    - condition: (crv == CKR_OK)
      pos:
        line_end: 1955
        line_start: 1955
        source_file: /src/nss/cmd/pk11mode/pk11mode.c
    - condition: (pFC_GetFunctionList != NULL)
      pos:
        line_end: 2015
        line_start: 2015
        source_file: /src/nss/cmd/pk11mode/pk11mode.c
    constantsTouched: []
    func_position:
      end: 2103
      start: 1921
    functionDepth: 4
    functionLinenumber: 1921
    functionLinenumberEnd: 2103
    functionName: PKM_HybridMode
    functionSourceFile: /src/nss/cmd/pk11mode/pk11mode.c
    functionUses: 1
    functionsReached:
    - CK_FUNCTION_LIST_PTR::C_Initialize
    - PKM_Error
    - free
    - PR_FindFunctionSymbol
    - PKM_ShowInfo
    - PKM_GetSlotList
    - assert
    - CK_FUNCTION_LIST_PTR::C_OpenSession
    - CK_FUNCTION_LIST_PTR::C_Login
    - PKM_LogIt
    - CK_FUNCTION_LIST_PTR::C_Logout
    - CK_FUNCTION_LIST_PTR::C_CloseSession
    - CK_FUNCTION_LIST_PTR::C_Finalize
    - PKM_CK_RVtoStr
    - GetProcAddress
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV PKM_HybridMode(CK_UTF8CHAR_PTR pwd, CK_ULONG pwdLen,\n               CK_C_INITIALIZE_ARGS_NSS
      *initArgs)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CK_FUNCTION_LIST_PTR::C_GetMechanismList
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2119,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2122,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2123,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2126,1
    - Dst: malloc
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2129,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2131,1
    - Dst: CK_FUNCTION_LIST_PTR::C_GetMechanismList
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2134,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2137,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2138,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2141,1
    - Dst: getName
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2144,1
    - Dst: printf
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2149,1
    - Dst: printf
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2151,1
    - Dst: printf
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2154,1
    - Dst: printf
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2156,1
    - Dst: memset
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2162,1
    - Dst: CK_FUNCTION_LIST_PTR::C_GetMechanismInfo
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2163,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2166,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2168,1
    - Dst: getName
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2172,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2175,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2178,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2179,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2180,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2181,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2182,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2183,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2184,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2185,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2186,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2187,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2188,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2190,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2191,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2193,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2194,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2195,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2196,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2198,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 63
    argCount: 3
    argNames:
    - pFunctionList
    - pSlotList
    - slotID
    argTypes:
    - CK_FUNCTION_LIST_PTR
    - CK_SLOT_ID*
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2202
      start: 2105
    functionDepth: 2
    functionLinenumber: 2105
    functionLinenumberEnd: 2202
    functionName: PKM_Mechanism
    functionSourceFile: /src/nss/cmd/pk11mode/pk11mode.c
    functionUses: 1
    functionsReached:
    - malloc
    - PKM_Error
    - CK_FUNCTION_LIST_PTR::C_GetMechanismList
    - printf
    - getName
    - memset
    - PKM_LogIt
    - PKM_CK_RVtoStr
    - CK_FUNCTION_LIST_PTR::C_GetMechanismInfo
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV PKM_Mechanism(CK_FUNCTION_LIST_PTR pFunctionList,\n              CK_SLOT_ID
      *pSlotList, CK_ULONG slotID)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CK_FUNCTION_LIST_PTR::C_OpenSession
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2215,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2218,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2219,1
    - Dst: CK_FUNCTION_LIST_PTR::C_GenerateRandom
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2223,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2226,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2228,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2230,1
    - Dst: CK_FUNCTION_LIST_PTR::C_SeedRandom
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2233,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2235,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2237,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2239,1
    - Dst: CK_FUNCTION_LIST_PTR::C_GenerateRandom
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2242,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2245,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2247,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2249,1
    - Dst: CK_FUNCTION_LIST_PTR::C_CloseSession
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2252,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2254,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2255,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 3
    argNames:
    - pFunctionList
    - pSlotList
    - slotID
    argTypes:
    - CK_FUNCTION_LIST_PTR
    - CK_SLOT_ID*
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2260
      start: 2204
    functionDepth: 2
    functionLinenumber: 2204
    functionLinenumberEnd: 2260
    functionName: PKM_RNG
    functionSourceFile: /src/nss/cmd/pk11mode/pk11mode.c
    functionUses: 1
    functionsReached:
    - PKM_Error
    - CK_FUNCTION_LIST_PTR::C_GenerateRandom
    - CK_FUNCTION_LIST_PTR::C_SeedRandom
    - CK_FUNCTION_LIST_PTR::C_OpenSession
    - PKM_LogIt
    - CK_FUNCTION_LIST_PTR::C_CloseSession
    - PKM_CK_RVtoStr
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV PKM_RNG(CK_FUNCTION_LIST_PTR pFunctionList, CK_SLOT_ID *pSlotList,\n
      \       CK_ULONG slotID)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CK_FUNCTION_LIST_PTR::C_OpenSession
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2272,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2275,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2276,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Login
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2280,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2282,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2285,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2287,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Login
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2289,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2291,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2294,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2296,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Login
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2298,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2301,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2304,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2306,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Login
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2308,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2310,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2312,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2314,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Logout
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2318,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2320,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2322,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2323,1
    - Dst: CK_FUNCTION_LIST_PTR::C_CloseSession
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2327,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2329,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2330,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 48
    argCount: 5
    argNames:
    - pFunctionList
    - pSlotList
    - slotID
    - pwd
    - pwdLen
    argTypes:
    - CK_FUNCTION_LIST_PTR
    - CK_SLOT_ID*
    - CK_ULONG
    - CK_UTF8CHAR_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2335
      start: 2262
    functionDepth: 2
    functionLinenumber: 2262
    functionLinenumberEnd: 2335
    functionName: PKM_SessionLogin
    functionSourceFile: /src/nss/cmd/pk11mode/pk11mode.c
    functionUses: 1
    functionsReached:
    - PKM_Error
    - CK_FUNCTION_LIST_PTR::C_OpenSession
    - CK_FUNCTION_LIST_PTR::C_Login
    - PKM_LogIt
    - CK_FUNCTION_LIST_PTR::C_Logout
    - CK_FUNCTION_LIST_PTR::C_CloseSession
    - PKM_CK_RVtoStr
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV PKM_SessionLogin(CK_FUNCTION_LIST_PTR pFunctionList,\n                 CK_SLOT_ID
      *pSlotList, CK_ULONG slotID,\n                 CK_UTF8CHAR_PTR pwd, CK_ULONG
      pwdLen)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CK_FUNCTION_LIST_PTR::C_OpenSession
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2360,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2363,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2364,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Login
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2368,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2370,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2372,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2374,1
    - Dst: CK_FUNCTION_LIST_PTR::C_GetFunctionStatus
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2378,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2380,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2383,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2385,1
    - Dst: CK_FUNCTION_LIST_PTR::C_CancelFunction
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2389,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2391,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2394,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2396,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Logout
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2400,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2402,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2404,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2405,1
    - Dst: CK_FUNCTION_LIST_PTR::C_CloseSession
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2409,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2411,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2412,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 41
    argCount: 5
    argNames:
    - pFunctionList
    - pSlotList
    - slotID
    - pwd
    - pwdLen
    argTypes:
    - CK_FUNCTION_LIST_PTR
    - CK_SLOT_ID*
    - CK_ULONG
    - CK_UTF8CHAR_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2417
      start: 2351
    functionDepth: 2
    functionLinenumber: 2351
    functionLinenumberEnd: 2417
    functionName: PKM_LegacyFunctions
    functionSourceFile: /src/nss/cmd/pk11mode/pk11mode.c
    functionUses: 1
    functionsReached:
    - CK_FUNCTION_LIST_PTR::C_GetFunctionStatus
    - PKM_Error
    - CK_FUNCTION_LIST_PTR::C_CancelFunction
    - CK_FUNCTION_LIST_PTR::C_OpenSession
    - CK_FUNCTION_LIST_PTR::C_Login
    - PKM_LogIt
    - CK_FUNCTION_LIST_PTR::C_Logout
    - CK_FUNCTION_LIST_PTR::C_CloseSession
    - PKM_CK_RVtoStr
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV PKM_LegacyFunctions(CK_FUNCTION_LIST_PTR pFunctionList,\n                    CK_SLOT_ID
      *pSlotList, CK_ULONG slotID,\n                    CK_UTF8CHAR_PTR pwd, CK_ULONG
      pwdLen)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2447,1
    - Dst: memset
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2448,1
    - Dst: memset
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2449,1
    - Dst: memset
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2450,1
    - Dst: CK_FUNCTION_LIST_PTR::C_EncryptInit
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2457,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2459,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2460,1
    - Dst: CK_FUNCTION_LIST_PTR::C_DigestInit
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2463,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2465,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2466,1
    - Dst: CK_FUNCTION_LIST_PTR::C_DigestEncryptUpdate
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2471,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2475,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2476,1
    - Dst: CK_FUNCTION_LIST_PTR::C_DigestFinal
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2481,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2483,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2484,1
    - Dst: CK_FUNCTION_LIST_PTR::C_EncryptFinal
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2490,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2494,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2495,1
    - Dst: printf
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2500,1
    - Dst: printf
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2502,1
    - Dst: printf
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2504,1
    - Dst: printf
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2505,1
    - Dst: printf
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2507,1
    - Dst: printf
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2509,1
    - Dst: CK_FUNCTION_LIST_PTR::C_DecryptInit
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2513,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2515,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2516,1
    - Dst: CK_FUNCTION_LIST_PTR::C_DigestInit
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2519,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2521,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2522,1
    - Dst: CK_FUNCTION_LIST_PTR::C_DecryptDigestUpdate
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2527,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2532,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2533,1
    - Dst: CK_FUNCTION_LIST_PTR::C_DecryptFinal
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2538,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2542,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2543,1
    - Dst: CK_FUNCTION_LIST_PTR::C_DigestFinal
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2549,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2551,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2552,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2557,1
    - Dst: printf
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2562,1
    - Dst: printf
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2564,1
    - Dst: printf
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2566,1
    - Dst: printf
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2567,1
    - Dst: printf
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2569,1
    - Dst: printf
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2571,1
    - Dst: memcmp
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2574,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2575,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2577,1
    - Dst: memcmp
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2581,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2582,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2584,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 103
    argCount: 8
    argNames:
    - pFunctionList
    - hSession
    - hSecKey
    - cryptMech
    - hSecKeyDigest
    - digestMech
    - pData
    - pDataLen
    argTypes:
    - CK_FUNCTION_LIST_PTR
    - CK_SESSION_HANDLE
    - CK_OBJECT_HANDLE
    - CK_MECHANISM*
    - CK_OBJECT_HANDLE
    - CK_MECHANISM*
    - CK_BYTE*
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2588
      start: 2429
    functionDepth: 2
    functionLinenumber: 2429
    functionLinenumberEnd: 2588
    functionName: PKM_DualFuncDigest
    functionSourceFile: /src/nss/cmd/pk11mode/pk11mode.c
    functionUses: 1
    functionsReached:
    - PKM_Error
    - CK_FUNCTION_LIST_PTR::C_DigestEncryptUpdate
    - CK_FUNCTION_LIST_PTR::C_DigestFinal
    - CK_FUNCTION_LIST_PTR::C_EncryptFinal
    - CK_FUNCTION_LIST_PTR::C_DigestInit
    - CK_FUNCTION_LIST_PTR::C_EncryptInit
    - printf
    - memcmp
    - memset
    - CK_FUNCTION_LIST_PTR::C_DecryptDigestUpdate
    - CK_FUNCTION_LIST_PTR::C_DecryptFinal
    - PKM_LogIt
    - PKM_CK_RVtoStr
    - CK_FUNCTION_LIST_PTR::C_DecryptInit
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV PKM_DualFuncDigest(CK_FUNCTION_LIST_PTR pFunctionList,\n                   CK_SESSION_HANDLE
      hSession,\n                   CK_OBJECT_HANDLE hSecKey, CK_MECHANISM *cryptMech,\n
      \                  CK_OBJECT_HANDLE hSecKeyDigest,\n                   CK_MECHANISM
      *digestMech,\n                   const CK_BYTE *pData, CK_ULONG pDataLen)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2612,1
    - Dst: memset
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2613,1
    - Dst: memset
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2614,1
    - Dst: memset
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2615,1
    - Dst: CK_FUNCTION_LIST_PTR::C_EncryptInit
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2618,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2620,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2621,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Encrypt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2625,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2628,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2629,1
    - Dst: CK_FUNCTION_LIST_PTR::C_EncryptInit
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2634,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2636,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2637,1
    - Dst: CK_FUNCTION_LIST_PTR::C_EncryptUpdate
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2641,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2645,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2646,1
    - Dst: CK_FUNCTION_LIST_PTR::C_EncryptFinal
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2651,1
    - Dst: memcmp
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2657,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2658,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2660,1
    - Dst: CK_FUNCTION_LIST_PTR::C_DecryptInit
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2665,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2667,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2668,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Decrypt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2672,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2675,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2676,1
    - Dst: CK_FUNCTION_LIST_PTR::C_DecryptInit
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2680,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2682,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2683,1
    - Dst: CK_FUNCTION_LIST_PTR::C_DecryptUpdate
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2687,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2691,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2692,1
    - Dst: CK_FUNCTION_LIST_PTR::C_DecryptFinal
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2696,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2700,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2701,1
    - Dst: memcmp
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2709,1
    - Dst: memcmp
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2710,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2711,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2713,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 72
    argCount: 6
    argNames:
    - pFunctionList
    - hSession
    - hSymKey
    - cryptMech
    - pData
    - dataLen
    argTypes:
    - CK_FUNCTION_LIST_PTR
    - CK_SESSION_HANDLE
    - CK_OBJECT_HANDLE
    - CK_MECHANISM*
    - CK_BYTE*
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2717
      start: 2595
    functionDepth: 2
    functionLinenumber: 2595
    functionLinenumberEnd: 2717
    functionName: PKM_SecKeyCrypt
    functionSourceFile: /src/nss/cmd/pk11mode/pk11mode.c
    functionUses: 1
    functionsReached:
    - PKM_Error
    - CK_FUNCTION_LIST_PTR::C_Decrypt
    - CK_FUNCTION_LIST_PTR::C_EncryptFinal
    - CK_FUNCTION_LIST_PTR::C_EncryptInit
    - CK_FUNCTION_LIST_PTR::C_Encrypt
    - CK_FUNCTION_LIST_PTR::C_DecryptUpdate
    - memset
    - CK_FUNCTION_LIST_PTR::C_DecryptFinal
    - PKM_LogIt
    - CK_FUNCTION_LIST_PTR::C_DecryptInit
    - PKM_CK_RVtoStr
    - memcmp
    - CK_FUNCTION_LIST_PTR::C_EncryptUpdate
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV PKM_SecKeyCrypt(CK_FUNCTION_LIST_PTR pFunctionList,\n                CK_SESSION_HANDLE
      hSession,\n                CK_OBJECT_HANDLE hSymKey, CK_MECHANISM *cryptMech,\n
      \               const CK_BYTE *pData, CK_ULONG dataLen)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2758,1
    - Dst: memset
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2759,1
    - Dst: memset
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2760,1
    - Dst: memset
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2761,1
    - Dst: CK_FUNCTION_LIST_PTR::C_OpenSession
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2796,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2799,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2800,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Login
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2804,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2806,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2808,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2810,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2814,1
    - Dst: CK_FUNCTION_LIST_PTR::C_GenerateKey
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2816,1
    - Dst: NUM_ELEM
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2818,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2821,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2823,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2824,1
    - Dst: CK_FUNCTION_LIST_PTR::C_EncryptInit
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2828,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2830,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2831,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Encrypt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2835,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2838,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2839,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2843,1
    - Dst: CK_FUNCTION_LIST_PTR::C_UnwrapKey
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2847,1
    - Dst: NUM_ELEM
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2850,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2853,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2854,1
    - Dst: CK_FUNCTION_LIST_PTR::C_EncryptInit
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2858,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2860,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2861,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Encrypt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2865,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2869,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2870,1
    - Dst: memcmp
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2875,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2876,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2878,1
    - Dst: CK_FUNCTION_LIST_PTR::C_EncryptInit
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2883,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2885,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2886,1
    - Dst: CK_FUNCTION_LIST_PTR::C_EncryptUpdate
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2890,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2894,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2895,1
    - Dst: CK_FUNCTION_LIST_PTR::C_EncryptFinal
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2900,1
    - Dst: memcmp
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2906,1
    - Dst: memcmp
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2907,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2908,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2910,1
    - Dst: CK_FUNCTION_LIST_PTR::C_DecryptInit
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2915,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2917,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2918,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Decrypt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2922,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2925,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2926,1
    - Dst: memcmp
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2930,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2931,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2933,1
    - Dst: CK_FUNCTION_LIST_PTR::C_DecryptInit
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2936,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2938,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2939,1
    - Dst: CK_FUNCTION_LIST_PTR::C_DecryptUpdate
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2943,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2947,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2948,1
    - Dst: CK_FUNCTION_LIST_PTR::C_DecryptFinal
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2952,1
    - Dst: memcmp
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2958,1
    - Dst: memcmp
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2959,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2960,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2962,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Logout
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2966,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2968,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2970,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2971,1
    - Dst: CK_FUNCTION_LIST_PTR::C_CloseSession
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2974,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2976,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2977,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 162
    argCount: 5
    argNames:
    - pFunctionList
    - pSlotList
    - slotID
    - pwd
    - pwdLen
    argTypes:
    - CK_FUNCTION_LIST_PTR
    - CK_SLOT_ID*
    - CK_ULONG
    - CK_UTF8CHAR_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2982
      start: 2719
    functionDepth: 2
    functionLinenumber: 2719
    functionLinenumberEnd: 2982
    functionName: PKM_SecretKey
    functionSourceFile: /src/nss/cmd/pk11mode/pk11mode.c
    functionUses: 1
    functionsReached:
    - CK_FUNCTION_LIST_PTR::C_Decrypt
    - CK_FUNCTION_LIST_PTR::C_GenerateKey
    - CK_FUNCTION_LIST_PTR::C_OpenSession
    - CK_FUNCTION_LIST_PTR::C_Logout
    - NUM_ELEM
    - PKM_Error
    - CK_FUNCTION_LIST_PTR::C_EncryptInit
    - CK_FUNCTION_LIST_PTR::C_Encrypt
    - CK_FUNCTION_LIST_PTR::C_DecryptUpdate
    - memset
    - PKM_LogIt
    - CK_FUNCTION_LIST_PTR::C_CloseSession
    - memcmp
    - CK_FUNCTION_LIST_PTR::C_EncryptUpdate
    - CK_FUNCTION_LIST_PTR::C_DecryptFinal
    - CK_FUNCTION_LIST_PTR::C_Login
    - PKM_CK_RVtoStr
    - CK_FUNCTION_LIST_PTR::C_DecryptInit
    - CK_FUNCTION_LIST_PTR::C_UnwrapKey
    - CK_FUNCTION_LIST_PTR::C_EncryptFinal
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV PKM_SecretKey(CK_FUNCTION_LIST_PTR pFunctionList,\n              CK_SLOT_ID
      *pSlotList, CK_ULONG slotID,\n              CK_UTF8CHAR_PTR pwd, CK_ULONG pwdLen)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2996,1
    - Dst: CK_FUNCTION_LIST_PTR::C_SignInit
      Src: /src/nss/cmd/pk11mode/pk11mode.c:2999,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3001,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3002,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Sign
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3006,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3009,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3010,1
    - Dst: CK_FUNCTION_LIST_PTR::C_VerifyInit
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3015,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3017,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3018,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Verify
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3021,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3024,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3026,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3027,1
    - Dst: memset
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3037,1
    - Dst: CK_FUNCTION_LIST_PTR::C_SignInit
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3039,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3041,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3042,1
    - Dst: CK_FUNCTION_LIST_PTR::C_SignUpdate
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3045,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3047,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3048,1
    - Dst: CK_FUNCTION_LIST_PTR::C_SignFinal
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3053,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3055,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3056,1
    - Dst: CK_FUNCTION_LIST_PTR::C_VerifyInit
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3061,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3064,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3065,1
    - Dst: CK_FUNCTION_LIST_PTR::C_VerifyUpdate
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3068,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3071,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3072,1
    - Dst: CK_FUNCTION_LIST_PTR::C_VerifyFinal
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3075,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3077,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3079,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3080,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 64
    argCount: 7
    argNames:
    - pFunctionList
    - hRwSession
    - hPubKey
    - hPrivKey
    - signMech
    - pData
    - pDataLen
    argTypes:
    - CK_FUNCTION_LIST_PTR
    - CK_SESSION_HANDLE
    - CK_OBJECT_HANDLE
    - CK_OBJECT_HANDLE
    - CK_MECHANISM*
    - CK_BYTE*
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3084
      start: 2984
    functionDepth: 2
    functionLinenumber: 2984
    functionLinenumberEnd: 3084
    functionName: PKM_PubKeySign
    functionSourceFile: /src/nss/cmd/pk11mode/pk11mode.c
    functionUses: 1
    functionsReached:
    - CK_FUNCTION_LIST_PTR::C_SignInit
    - PKM_Error
    - CK_FUNCTION_LIST_PTR::C_VerifyFinal
    - CK_FUNCTION_LIST_PTR::C_VerifyUpdate
    - CK_FUNCTION_LIST_PTR::C_VerifyInit
    - CK_FUNCTION_LIST_PTR::C_SignFinal
    - CK_FUNCTION_LIST_PTR::C_SignUpdate
    - memset
    - CK_FUNCTION_LIST_PTR::C_Sign
    - PKM_LogIt
    - PKM_CK_RVtoStr
    - CK_FUNCTION_LIST_PTR::C_Verify
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV PKM_PubKeySign(CK_FUNCTION_LIST_PTR pFunctionList,\n               CK_SESSION_HANDLE
      hRwSession,\n               CK_OBJECT_HANDLE hPubKey, CK_OBJECT_HANDLE hPrivKey,\n
      \              CK_MECHANISM *signMech, const CK_BYTE *pData,\n               CK_ULONG
      pDataLen)"
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: CK_FUNCTION_LIST_PTR::C_OpenSession
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3182,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3186,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3187,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Login
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3191,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3193,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3195,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3197,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3201,1
    - Dst: CK_FUNCTION_LIST_PTR::C_GenerateKey
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3203,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3208,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3210,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3212,1
    - Dst: CK_FUNCTION_LIST_PTR::C_GetAttributeValue
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3215,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3218,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3220,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3222,1
    - Dst: CK_FUNCTION_LIST_PTR::C_DestroyObject
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3225,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3227,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3229,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3231,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3235,1
    - Dst: CK_FUNCTION_LIST_PTR::C_GenerateKeyPair
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3237,1
    - Dst: NUM_ELEM
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3239,1
    - Dst: NUM_ELEM
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3241,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3244,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3246,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3248,1
    - Dst: CK_FUNCTION_LIST_PTR::C_DigestInit
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3253,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3255,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3256,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Digest
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3260,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3263,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3264,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3268,1
    - Dst: memcmp
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3272,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3273,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3275,1
    - Dst: PKM_PubKeySign
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3278,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3282,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3284,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3286,1
    - Dst: PKM_PubKeySign
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3289,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3293,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3295,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3297,1
    - Dst: CK_FUNCTION_LIST_PTR::C_SignInit
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3302,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3304,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3305,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Sign
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3309,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3312,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3313,1
    - Dst: CK_FUNCTION_LIST_PTR::C_VerifyInit
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3318,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3320,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3321,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Verify
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3324,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3327,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3329,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3330,1
    - Dst: CK_FUNCTION_LIST_PTR::C_VerifyInit
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3335,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3338,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3339,1
    - Dst: CK_FUNCTION_LIST_PTR::C_VerifyUpdate
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3342,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3344,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3345,1
    - Dst: CK_FUNCTION_LIST_PTR::C_VerifyUpdate
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3348,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3350,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3351,1
    - Dst: CK_FUNCTION_LIST_PTR::C_VerifyFinal
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3354,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3356,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3358,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3359,1
    - Dst: CK_FUNCTION_LIST_PTR::C_VerifyInit
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3364,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3367,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3368,1
    - Dst: CK_FUNCTION_LIST_PTR::C_VerifyUpdate
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3371,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3373,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3374,1
    - Dst: CK_FUNCTION_LIST_PTR::C_VerifyUpdate
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3377,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3379,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3380,1
    - Dst: CK_FUNCTION_LIST_PTR::C_VerifyFinal
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3383,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3385,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3387,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3388,1
    - Dst: CK_FUNCTION_LIST_PTR::C_DigestInit
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3394,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3396,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3397,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Digest
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3401,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3404,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3405,1
    - Dst: CK_FUNCTION_LIST_PTR::C_VerifyInit
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3408,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3410,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3411,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Verify
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3414,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3417,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3420,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3422,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Logout
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3425,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3427,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3429,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3430,1
    - Dst: CK_FUNCTION_LIST_PTR::C_CloseSession
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3434,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3436,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3437,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 220
    argCount: 5
    argNames:
    - pFunctionList
    - pSlotList
    - slotID
    - pwd
    - pwdLen
    argTypes:
    - CK_FUNCTION_LIST_PTR
    - CK_SLOT_ID*
    - CK_ULONG
    - CK_UTF8CHAR_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3442
      start: 3086
    functionDepth: 3
    functionLinenumber: 3086
    functionLinenumberEnd: 3442
    functionName: PKM_PublicKey
    functionSourceFile: /src/nss/cmd/pk11mode/pk11mode.c
    functionUses: 1
    functionsReached:
    - CK_FUNCTION_LIST_PTR::C_GenerateKeyPair
    - PKM_PubKeySign
    - CK_FUNCTION_LIST_PTR::C_GenerateKey
    - CK_FUNCTION_LIST_PTR::C_DigestInit
    - CK_FUNCTION_LIST_PTR::C_OpenSession
    - CK_FUNCTION_LIST_PTR::C_Logout
    - NUM_ELEM
    - CK_FUNCTION_LIST_PTR::C_Verify
    - PKM_Error
    - CK_FUNCTION_LIST_PTR::C_VerifyUpdate
    - PKM_LogIt
    - CK_FUNCTION_LIST_PTR::C_CloseSession
    - memcmp
    - CK_FUNCTION_LIST_PTR::C_DestroyObject
    - CK_FUNCTION_LIST_PTR::C_VerifyFinal
    - CK_FUNCTION_LIST_PTR::C_VerifyInit
    - CK_FUNCTION_LIST_PTR::C_Digest
    - CK_FUNCTION_LIST_PTR::C_Sign
    - CK_FUNCTION_LIST_PTR::C_Login
    - PKM_CK_RVtoStr
    - CK_FUNCTION_LIST_PTR::C_SignInit
    - CK_FUNCTION_LIST_PTR::C_GetAttributeValue
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV PKM_PublicKey(CK_FUNCTION_LIST_PTR pFunctionList,\n              CK_SLOT_ID
      *pSlotList,\n              CK_ULONG slotID, CK_UTF8CHAR_PTR pwd,\n              CK_ULONG
      pwdLen)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3457,1
    - Dst: memset
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3458,1
    - Dst: CK_FUNCTION_LIST_PTR::C_SignInit
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3462,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3464,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3466,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3467,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Sign
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3472,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3476,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3478,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3479,1
    - Dst: CK_FUNCTION_LIST_PTR::C_SignInit
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3483,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3485,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3487,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3488,1
    - Dst: CK_FUNCTION_LIST_PTR::C_SignUpdate
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3492,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3495,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3497,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3498,1
    - Dst: CK_FUNCTION_LIST_PTR::C_SignFinal
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3503,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3505,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3507,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3508,1
    - Dst: memcmp
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3512,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3513,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3515,1
    - Dst: CK_FUNCTION_LIST_PTR::C_VerifyInit
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3517,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3519,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3520,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Verify
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3523,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3527,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3529,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3530,1
    - Dst: CK_FUNCTION_LIST_PTR::C_VerifyInit
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3533,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3535,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3536,1
    - Dst: CK_FUNCTION_LIST_PTR::C_VerifyUpdate
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3539,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3542,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3544,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3545,1
    - Dst: CK_FUNCTION_LIST_PTR::C_VerifyFinal
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3548,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3551,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3553,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3554,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 78
    argCount: 6
    argNames:
    - pFunctionList
    - hSession
    - sKey
    - hmacMech
    - pData
    - pDataLen
    argTypes:
    - CK_FUNCTION_LIST_PTR
    - CK_SESSION_HANDLE
    - CK_OBJECT_HANDLE
    - CK_MECHANISM*
    - CK_BYTE*
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3558
      start: 3444
    functionDepth: 2
    functionLinenumber: 3444
    functionLinenumberEnd: 3558
    functionName: PKM_Hmac
    functionSourceFile: /src/nss/cmd/pk11mode/pk11mode.c
    functionUses: 1
    functionsReached:
    - CK_FUNCTION_LIST_PTR::C_SignInit
    - PKM_Error
    - CK_FUNCTION_LIST_PTR::C_VerifyFinal
    - CK_FUNCTION_LIST_PTR::C_VerifyUpdate
    - CK_FUNCTION_LIST_PTR::C_SignFinal
    - CK_FUNCTION_LIST_PTR::C_VerifyInit
    - CK_FUNCTION_LIST_PTR::C_SignUpdate
    - memset
    - CK_FUNCTION_LIST_PTR::C_Sign
    - PKM_LogIt
    - PKM_CK_RVtoStr
    - memcmp
    - CK_FUNCTION_LIST_PTR::C_Verify
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV PKM_Hmac(CK_FUNCTION_LIST_PTR pFunctionList, CK_SESSION_HANDLE
      hSession,\n         CK_OBJECT_HANDLE sKey, CK_MECHANISM *hmacMech,\n         const
      CK_BYTE *pData, CK_ULONG pDataLen)"
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: totalKnownType
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3573,1
    - Dst: CK_FUNCTION_LIST_PTR::C_OpenSession
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3577,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3580,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3583,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3587,1
    - Dst: memset
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3589,1
    - Dst: CK_FUNCTION_LIST_PTR::C_GetSessionInfo
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3590,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3592,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3593,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3597,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3598,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3599,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3600,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3602,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3604,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3605,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3607,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3609,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3610,1
    - Dst: CK_FUNCTION_LIST_PTR::C_FindObjectsInit
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3612,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3614,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3616,1
    - Dst: calloc
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3620,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3623,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3629,1
    - Dst: CK_FUNCTION_LIST_PTR::C_FindObjects
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3643,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3645,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3646,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3651,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3657,1
    - Dst: assert
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3667,1
    - Dst: CK_FUNCTION_LIST_PTR::C_GetAttributeValue
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3670,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3679,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3682,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3692,1
    - Dst: getNameFromAttribute
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3696,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3698,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3700,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3706,1
    - Dst: calloc
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3708,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3710,1
    - Dst: malloc
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3722,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3724,1
    - Dst: assert
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3734,1
    - Dst: CK_FUNCTION_LIST_PTR::C_GetAttributeValue
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3736,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3744,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3746,1
    - Dst: getNameFromAttribute
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3751,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3754,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3763,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3765,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3769,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3773,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3780,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3784,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3787,1
    - Dst: free
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3791,1
    - Dst: free
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3794,1
    - Dst: CK_FUNCTION_LIST_PTR::C_FindObjectsFinal
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3799,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3801,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3802,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3806,1
    - Dst: CK_FUNCTION_LIST_PTR::C_CloseSession
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3808,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3810,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3811,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 165
    argCount: 5
    argNames:
    - pFunctionList
    - pSlotList
    - slotID
    - pwd
    - pwdLen
    argTypes:
    - CK_FUNCTION_LIST_PTR
    - CK_SLOT_ID*
    - CK_ULONG
    - CK_UTF8CHAR_PTR
    - CK_ULONG
    assertStmts:
    - condition: (k <= number_of_all_known_attribute_types)
      pos:
        line_end: 3666
        line_start: 3666
        source_file: /src/nss/cmd/pk11mode/pk11mode.c
    - condition: (l == nAttributes)
      pos:
        line_end: 3733
        line_start: 3733
        source_file: /src/nss/cmd/pk11mode/pk11mode.c
    constantsTouched: []
    func_position:
      end: 3816
      start: 3560
    functionDepth: 2
    functionLinenumber: 3560
    functionLinenumberEnd: 3816
    functionName: PKM_FindAllObjects
    functionSourceFile: /src/nss/cmd/pk11mode/pk11mode.c
    functionUses: 1
    functionsReached:
    - calloc
    - CK_FUNCTION_LIST_PTR::C_FindObjects
    - getNameFromAttribute
    - PKM_Error
    - CK_FUNCTION_LIST_PTR::C_GetSessionInfo
    - malloc
    - free
    - CK_FUNCTION_LIST_PTR::C_GetAttributeValue
    - CK_FUNCTION_LIST_PTR::C_OpenSession
    - memset
    - assert
    - CK_FUNCTION_LIST_PTR::C_FindObjectsFinal
    - PKM_LogIt
    - CK_FUNCTION_LIST_PTR::C_CloseSession
    - totalKnownType
    - PKM_CK_RVtoStr
    - CK_FUNCTION_LIST_PTR::C_FindObjectsInit
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV PKM_FindAllObjects(CK_FUNCTION_LIST_PTR pFunctionList,\n                   CK_SLOT_ID
      *pSlotList, CK_ULONG slotID,\n                   CK_UTF8CHAR_PTR pwd, CK_ULONG
      pwdLen)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: CK_FUNCTION_LIST_PTR::C_OpenSession
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3844,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3847,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3850,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Login
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3853,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3855,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3857,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3859,1
    - Dst: memset
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3863,1
    - Dst: CK_FUNCTION_LIST_PTR::C_GetTokenInfo
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3864,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3866,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3867,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3871,1
    - Dst: strlen
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3887,1
    - Dst: strlen
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3893,1
    - Dst: strlen
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3909,1
    - Dst: strlen
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3915,1
    - Dst: strlen
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3931,1
    - Dst: strlen
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3937,1
    - Dst: CK_FUNCTION_LIST_PTR::C_CreateObject
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3939,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3941,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3942,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3946,1
    - Dst: CK_FUNCTION_LIST_PTR::C_CreateObject
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3948,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3950,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3951,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3955,1
    - Dst: CK_FUNCTION_LIST_PTR::C_CreateObject
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3957,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3959,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3960,1
    - Dst: CK_FUNCTION_LIST_PTR::C_GetObjectSize
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3963,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3965,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3967,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3969,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3973,1
    - Dst: strlen
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3977,1
    - Dst: CK_FUNCTION_LIST_PTR::C_CopyObject
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3979,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3981,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3983,1
    - Dst: CK_FUNCTION_LIST_PTR::C_GetObjectSize
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3986,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3988,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3990,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3992,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3997,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:3999,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4003,1
    - Dst: CK_FUNCTION_LIST_PTR::C_FindObjectsInit
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4009,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4011,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4012,1
    - Dst: memset
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4016,1
    - Dst: CK_FUNCTION_LIST_PTR::C_FindObjects
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4018,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4020,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4021,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4026,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4030,1
    - Dst: CK_FUNCTION_LIST_PTR::C_FindObjectsFinal
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4033,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4035,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4036,1
    - Dst: CK_FUNCTION_LIST_PTR::C_DestroyObject
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4040,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4042,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4043,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4047,1
    - Dst: strlen
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4051,1
    - Dst: CK_FUNCTION_LIST_PTR::C_SetAttributeValue
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4053,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4055,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4057,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4061,1
    - Dst: CK_FUNCTION_LIST_PTR::C_OpenSession
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4065,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4068,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4071,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4074,1
    - Dst: CK_FUNCTION_LIST_PTR::C_FindObjectsInit
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4078,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4080,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4081,1
    - Dst: memset
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4085,1
    - Dst: CK_FUNCTION_LIST_PTR::C_FindObjects
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4087,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4089,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4090,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4095,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4099,1
    - Dst: CK_FUNCTION_LIST_PTR::C_FindObjectsFinal
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4102,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4104,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4105,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Logout
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4108,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4110,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4112,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4113,1
    - Dst: CK_FUNCTION_LIST_PTR::C_CloseAllSessions
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4116,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4118,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4119,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4123,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 214
    argCount: 5
    argNames:
    - pFunctionList
    - pSlotList
    - slotID
    - pwd
    - pwdLen
    argTypes:
    - CK_FUNCTION_LIST_PTR
    - CK_SLOT_ID*
    - CK_ULONG
    - CK_UTF8CHAR_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4125
      start: 3818
    functionDepth: 2
    functionLinenumber: 3818
    functionLinenumberEnd: 4125
    functionName: PKM_MultiObjectManagement
    functionSourceFile: /src/nss/cmd/pk11mode/pk11mode.c
    functionUses: 1
    functionsReached:
    - CK_FUNCTION_LIST_PTR::C_DestroyObject
    - CK_FUNCTION_LIST_PTR::C_FindObjects
    - PKM_Error
    - CK_FUNCTION_LIST_PTR::C_CopyObject
    - CK_FUNCTION_LIST_PTR::C_CreateObject
    - CK_FUNCTION_LIST_PTR::C_GetTokenInfo
    - CK_FUNCTION_LIST_PTR::C_OpenSession
    - memset
    - CK_FUNCTION_LIST_PTR::C_FindObjectsFinal
    - CK_FUNCTION_LIST_PTR::C_Login
    - PKM_LogIt
    - CK_FUNCTION_LIST_PTR::C_Logout
    - CK_FUNCTION_LIST_PTR::C_CloseAllSessions
    - CK_FUNCTION_LIST_PTR::C_GetObjectSize
    - PKM_CK_RVtoStr
    - CK_FUNCTION_LIST_PTR::C_FindObjectsInit
    - CK_FUNCTION_LIST_PTR::C_SetAttributeValue
    - strlen
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV PKM_MultiObjectManagement(CK_FUNCTION_LIST_PTR pFunctionList,\n
      \                         CK_SLOT_ID *pSlotList, CK_ULONG slotID,\n                          CK_UTF8CHAR_PTR
      pwd, CK_ULONG pwdLen)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4193,1
    - Dst: strlen
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4194,1
    - Dst: strlen
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4195,1
    - Dst: CK_FUNCTION_LIST_PTR::C_OpenSession
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4198,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4201,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4202,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Login
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4206,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4208,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4210,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4212,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4216,1
    - Dst: CK_FUNCTION_LIST_PTR::C_GenerateKey
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4218,1
    - Dst: NUM_ELEM
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4220,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4223,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4225,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4226,1
    - Dst: CK_FUNCTION_LIST_PTR::C_SignInit
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4230,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4232,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4233,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Sign
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4238,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4241,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4242,1
    - Dst: CK_FUNCTION_LIST_PTR::C_DestroyObject
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4246,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4248,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4249,1
    - Dst: CK_FUNCTION_LIST_PTR::C_DigestInit
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4254,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4256,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4257,1
    - Dst: CK_FUNCTION_LIST_PTR::C_DigestUpdate
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4260,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4263,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4264,1
    - Dst: CK_FUNCTION_LIST_PTR::C_GetOperationState
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4268,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4270,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4271,1
    - Dst: malloc
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4275,1
    - Dst: CK_FUNCTION_LIST_PTR::C_GetOperationState
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4276,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4278,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4279,1
    - Dst: CK_FUNCTION_LIST_PTR::C_DigestUpdate
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4283,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4286,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4287,1
    - Dst: CK_FUNCTION_LIST_PTR::C_DigestUpdate
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4290,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4293,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4294,1
    - Dst: CK_FUNCTION_LIST_PTR::C_SetOperationState
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4302,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4305,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4306,1
    - Dst: CK_FUNCTION_LIST_PTR::C_DigestFinal
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4309,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4312,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4313,1
    - Dst: CK_FUNCTION_LIST_PTR::C_DigestInit
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4317,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4319,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4320,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Digest
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4323,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4326,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4327,1
    - Dst: memcmp
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4330,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4331,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4333,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Logout
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4335,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4337,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4339,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4340,1
    - Dst: CK_FUNCTION_LIST_PTR::C_CloseSession
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4343,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4345,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4346,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 146
    argCount: 5
    argNames:
    - pFunctionList
    - pSlotList
    - slotID
    - pwd
    - pwdLen
    argTypes:
    - CK_FUNCTION_LIST_PTR
    - CK_SLOT_ID*
    - CK_ULONG
    - CK_UTF8CHAR_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4351
      start: 4127
    functionDepth: 2
    functionLinenumber: 4127
    functionLinenumberEnd: 4351
    functionName: PKM_OperationalState
    functionSourceFile: /src/nss/cmd/pk11mode/pk11mode.c
    functionUses: 1
    functionsReached:
    - CK_FUNCTION_LIST_PTR::C_GenerateKey
    - CK_FUNCTION_LIST_PTR::C_DigestInit
    - CK_FUNCTION_LIST_PTR::C_OpenSession
    - CK_FUNCTION_LIST_PTR::C_DigestUpdate
    - CK_FUNCTION_LIST_PTR::C_Logout
    - NUM_ELEM
    - CK_FUNCTION_LIST_PTR::C_SetOperationState
    - strlen
    - PKM_Error
    - CK_FUNCTION_LIST_PTR::C_GetOperationState
    - CK_FUNCTION_LIST_PTR::C_DigestFinal
    - PKM_LogIt
    - CK_FUNCTION_LIST_PTR::C_CloseSession
    - memcmp
    - CK_FUNCTION_LIST_PTR::C_DestroyObject
    - CK_FUNCTION_LIST_PTR::C_Digest
    - CK_FUNCTION_LIST_PTR::C_Sign
    - CK_FUNCTION_LIST_PTR::C_Login
    - PKM_CK_RVtoStr
    - malloc
    - CK_FUNCTION_LIST_PTR::C_SignInit
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV PKM_OperationalState(CK_FUNCTION_LIST_PTR pFunctionList,\n                     CK_SLOT_ID
      *pSlotList, CK_ULONG slotID,\n                     CK_UTF8CHAR_PTR pwd, CK_ULONG
      pwdLen)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CK_FUNCTION_LIST_PTR::C_SignRecoverInit
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4374,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4377,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4379,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4381,1
    - Dst: CK_FUNCTION_LIST_PTR::C_SignRecover
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4388,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4392,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4394,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4396,1
    - Dst: CK_FUNCTION_LIST_PTR::C_VerifyRecoverInit
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4404,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4407,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4409,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4411,1
    - Dst: CK_FUNCTION_LIST_PTR::C_VerifyRecover
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4419,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4423,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4425,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4427,1
    - Dst: memcmp
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4432,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4433,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4435,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 7
    argNames:
    - pFunctionList
    - hSession
    - hPubKey
    - hPrivKey
    - signMech
    - pData
    - pDataLen
    argTypes:
    - CK_FUNCTION_LIST_PTR
    - CK_SESSION_HANDLE
    - CK_OBJECT_HANDLE
    - CK_OBJECT_HANDLE
    - CK_MECHANISM*
    - CK_BYTE*
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4439
      start: 4356
    functionDepth: 2
    functionLinenumber: 4356
    functionLinenumberEnd: 4439
    functionName: PKM_RecoverFunctions
    functionSourceFile: /src/nss/cmd/pk11mode/pk11mode.c
    functionUses: 1
    functionsReached:
    - PKM_Error
    - CK_FUNCTION_LIST_PTR::C_VerifyRecoverInit
    - memcmp
    - CK_FUNCTION_LIST_PTR::C_VerifyRecover
    - CK_FUNCTION_LIST_PTR::C_SignRecoverInit
    - PKM_LogIt
    - PKM_CK_RVtoStr
    - CK_FUNCTION_LIST_PTR::C_SignRecover
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV PKM_RecoverFunctions(CK_FUNCTION_LIST_PTR pFunctionList,\n                     CK_SESSION_HANDLE
      hSession,\n                     CK_OBJECT_HANDLE hPubKey, CK_OBJECT_HANDLE hPrivKey,\n
      \                    CK_MECHANISM *signMech, const CK_BYTE *pData,\n                     CK_ULONG
      pDataLen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CK_FUNCTION_LIST_PTR::C_WrapKey
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4463,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4468,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4470,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4471,1
    - Dst: CK_FUNCTION_LIST_PTR::C_UnwrapKey
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4474,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4480,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4482,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4483,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 8
    argNames:
    - pFunctionList
    - hSession
    - hPublicKey
    - hPrivateKey
    - wrapMechanism
    - hSecretKey
    - sKeyTemplate
    - skeyTempSize
    argTypes:
    - CK_FUNCTION_LIST_PTR
    - CK_SESSION_HANDLE
    - CK_OBJECT_HANDLE
    - CK_OBJECT_HANDLE
    - CK_MECHANISM*
    - CK_OBJECT_HANDLE
    - CK_ATTRIBUTE*
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4488
      start: 4445
    functionDepth: 2
    functionLinenumber: 4445
    functionLinenumberEnd: 4488
    functionName: PKM_wrapUnwrap
    functionSourceFile: /src/nss/cmd/pk11mode/pk11mode.c
    functionUses: 1
    functionsReached:
    - CK_FUNCTION_LIST_PTR::C_UnwrapKey
    - PKM_Error
    - PKM_LogIt
    - CK_FUNCTION_LIST_PTR::C_WrapKey
    - PKM_CK_RVtoStr
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV PKM_wrapUnwrap(CK_FUNCTION_LIST_PTR pFunctionList,\n               CK_SESSION_HANDLE
      hSession,\n               CK_OBJECT_HANDLE hPublicKey,\n               CK_OBJECT_HANDLE
      hPrivateKey,\n               CK_MECHANISM *wrapMechanism,\n               CK_OBJECT_HANDLE
      hSecretKey,\n               CK_ATTRIBUTE *sKeyTemplate,\n               CK_ULONG
      skeyTempSize)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4506,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4509,1
    - Dst: calloc
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4518,1
    - Dst: free
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4523,1
    - Dst: free
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4525,1
    - Dst: printf
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4526,1
    - Dst: CK_FUNCTION_LIST_PTR::C_GetAttributeValue
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4532,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4535,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4536,1
    - Dst: memcmp
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4544,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4546,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4548,1
    - Dst: free
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4556,1
    - Dst: free
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4557,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 5
    argNames:
    - pFunctionList
    - hSession
    - obj
    - expected_attrs
    - expected_attrs_count
    argTypes:
    - CK_FUNCTION_LIST_PTR
    - CK_SESSION_HANDLE
    - CK_OBJECT_HANDLE
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4559
      start: 4493
    functionDepth: 2
    functionLinenumber: 4493
    functionLinenumberEnd: 4559
    functionName: PKM_AttributeCheck
    functionSourceFile: /src/nss/cmd/pk11mode/pk11mode.c
    functionUses: 0
    functionsReached:
    - malloc
    - free
    - PKM_Error
    - CK_FUNCTION_LIST_PTR::C_GetAttributeValue
    - printf
    - memcmp
    - PKM_LogIt
    - calloc
    - PKM_CK_RVtoStr
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV PKM_AttributeCheck(CK_FUNCTION_LIST_PTR pFunctionList,\n                   CK_SESSION_HANDLE
      hSession, CK_OBJECT_HANDLE obj,\n                   CK_ATTRIBUTE_PTR expected_attrs,\n
      \                  CK_ULONG expected_attrs_count)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CK_FUNCTION_LIST_PTR::C_GetSessionInfo
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4575,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4577,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4578,1
    - Dst: CK_FUNCTION_LIST_PTR::C_GetMechanismInfo
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4582,1
    - Dst: CK_FUNCTION_LIST_PTR::C_GetMechanismInfo
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4585,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4589,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4590,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4595,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4602,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4607,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 7
    argNames:
    - pFunctionList
    - hSession
    - mechType
    - flags
    - check_sizes
    - minkeysize
    - maxkeysize
    argTypes:
    - CK_FUNCTION_LIST_PTR
    - CK_SESSION_HANDLE
    - CK_MECHANISM_TYPE
    - CK_FLAGS
    - CK_BBOOL
    - CK_ULONG
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4612
      start: 4564
    functionDepth: 2
    functionLinenumber: 4564
    functionLinenumberEnd: 4612
    functionName: PKM_MechCheck
    functionSourceFile: /src/nss/cmd/pk11mode/pk11mode.c
    functionUses: 0
    functionsReached:
    - PKM_CK_RVtoStr
    - PKM_Error
    - CK_FUNCTION_LIST_PTR::C_GetSessionInfo
    - CK_FUNCTION_LIST_PTR::C_GetMechanismInfo
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV PKM_MechCheck(CK_FUNCTION_LIST_PTR pFunctionList, CK_SESSION_HANDLE
      hSession,\n              CK_MECHANISM_TYPE mechType, CK_FLAGS flags,\n              CK_BBOOL
      check_sizes, CK_ULONG minkeysize, CK_ULONG maxkeysize)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: CK_FUNCTION_LIST_PTR::C_OpenSession
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4658,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4661,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4662,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Login
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4665,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4667,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4669,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4671,1
    - Dst: PKM_MechCheck
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4677,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4680,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4681,1
    - Dst: CK_FUNCTION_LIST_PTR::C_GenerateKey
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4714,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4719,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4721,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4722,1
    - Dst: CK_FUNCTION_LIST_PTR::C_DeriveKey
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4746,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4749,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4750,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4752,1
    - Dst: CK_FUNCTION_LIST_PTR::C_DeriveKey
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4758,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4761,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4763,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4764,1
    - Dst: CK_FUNCTION_LIST_PTR::C_DestroyObject
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4770,1
    - Dst: CK_FUNCTION_LIST_PTR::C_DestroyObject
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4772,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Logout
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4773,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4776,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4778,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4779,1
    - Dst: CK_FUNCTION_LIST_PTR::C_CloseSession
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4783,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4785,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4786,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 112
    argCount: 7
    argNames:
    - pFunctionList
    - pSlotList
    - slotID
    - pwd
    - pwdLen
    - mechType
    - rnd
    argTypes:
    - CK_FUNCTION_LIST_PTR
    - CK_SLOT_ID*
    - CK_ULONG
    - CK_UTF8CHAR_PTR
    - CK_ULONG
    - CK_MECHANISM_TYPE
    - enum_random_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4790
      start: 4620
    functionDepth: 3
    functionLinenumber: 4620
    functionLinenumberEnd: 4790
    functionName: PKM_TLSMasterKeyDerive
    functionSourceFile: /src/nss/cmd/pk11mode/pk11mode.c
    functionUses: 1
    functionsReached:
    - CK_FUNCTION_LIST_PTR::C_DestroyObject
    - PKM_Error
    - CK_FUNCTION_LIST_PTR::C_GenerateKey
    - CK_FUNCTION_LIST_PTR::C_OpenSession
    - CK_FUNCTION_LIST_PTR::C_Login
    - PKM_LogIt
    - PKM_MechCheck
    - CK_FUNCTION_LIST_PTR::C_DeriveKey
    - CK_FUNCTION_LIST_PTR::C_Logout
    - PKM_CK_RVtoStr
    - CK_FUNCTION_LIST_PTR::C_CloseSession
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV PKM_TLSMasterKeyDerive(CK_FUNCTION_LIST_PTR pFunctionList,\n
      \                      CK_SLOT_ID *pSlotList, CK_ULONG slotID,\n                       CK_UTF8CHAR_PTR
      pwd, CK_ULONG pwdLen,\n                       CK_MECHANISM_TYPE mechType,\n
      \                      enum_random_t rnd)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: CK_FUNCTION_LIST_PTR::C_OpenSession
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4854,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4857,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4858,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Login
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4861,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4863,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4865,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4867,1
    - Dst: PKM_MechCheck
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4873,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4877,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4878,1
    - Dst: CK_FUNCTION_LIST_PTR::C_GenerateKey
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4902,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4907,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4909,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4910,1
    - Dst: CK_FUNCTION_LIST_PTR::C_DeriveKey
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4945,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4948,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4950,1
    - Dst: CK_FUNCTION_LIST_PTR::C_DestroyObject
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4951,1
    - Dst: CK_FUNCTION_LIST_PTR::C_DeriveKey
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4961,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4964,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4965,1
    - Dst: CK_FUNCTION_LIST_PTR::C_DestroyObject
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4966,1
    - Dst: CK_FUNCTION_LIST_PTR::C_DestroyObject
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4971,1
    - Dst: CK_FUNCTION_LIST_PTR::C_DestroyObject
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4973,1
    - Dst: CK_FUNCTION_LIST_PTR::C_DestroyObject
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4975,1
    - Dst: CK_FUNCTION_LIST_PTR::C_DestroyObject
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4977,1
    - Dst: CK_FUNCTION_LIST_PTR::C_DestroyObject
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4979,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Logout
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4981,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4983,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4985,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4986,1
    - Dst: CK_FUNCTION_LIST_PTR::C_CloseSession
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4989,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4991,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:4992,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 133
    argCount: 7
    argNames:
    - pFunctionList
    - pSlotList
    - slotID
    - pwd
    - pwdLen
    - mechType
    - rnd
    argTypes:
    - CK_FUNCTION_LIST_PTR
    - CK_SLOT_ID*
    - CK_ULONG
    - CK_UTF8CHAR_PTR
    - CK_ULONG
    - CK_MECHANISM_TYPE
    - enum_random_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4997
      start: 4792
    functionDepth: 3
    functionLinenumber: 4792
    functionLinenumberEnd: 4997
    functionName: PKM_TLSKeyAndMacDerive
    functionSourceFile: /src/nss/cmd/pk11mode/pk11mode.c
    functionUses: 1
    functionsReached:
    - CK_FUNCTION_LIST_PTR::C_DestroyObject
    - PKM_Error
    - CK_FUNCTION_LIST_PTR::C_GenerateKey
    - CK_FUNCTION_LIST_PTR::C_OpenSession
    - CK_FUNCTION_LIST_PTR::C_Login
    - PKM_LogIt
    - PKM_MechCheck
    - CK_FUNCTION_LIST_PTR::C_DeriveKey
    - CK_FUNCTION_LIST_PTR::C_Logout
    - PKM_CK_RVtoStr
    - CK_FUNCTION_LIST_PTR::C_CloseSession
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV PKM_TLSKeyAndMacDerive(CK_FUNCTION_LIST_PTR pFunctionList,\n
      \                      CK_SLOT_ID *pSlotList, CK_ULONG slotID,\n                       CK_UTF8CHAR_PTR
      pwd, CK_ULONG pwdLen,\n                       CK_MECHANISM_TYPE mechType, enum_random_t
      rnd)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5017,1
    - Dst: memset
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5018,1
    - Dst: memset
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5019,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5025,1
    - Dst: CK_FUNCTION_LIST_PTR::C_SignInit
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5032,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5034,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5035,1
    - Dst: CK_FUNCTION_LIST_PTR::C_SignInit
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5039,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5041,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5042,1
    - Dst: CK_FUNCTION_LIST_PTR::C_EncryptInit
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5046,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5048,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5049,1
    - Dst: CK_FUNCTION_LIST_PTR::C_SignEncryptUpdate
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5054,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5059,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5060,1
    - Dst: CK_FUNCTION_LIST_PTR::C_EncryptFinal
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5065,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5068,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5069,1
    - Dst: CK_FUNCTION_LIST_PTR::C_SignFinal
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5074,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5076,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5077,1
    - Dst: CK_FUNCTION_LIST_PTR::C_DecryptInit
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5083,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5085,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5086,1
    - Dst: CK_FUNCTION_LIST_PTR::C_VerifyInit
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5089,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5092,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5093,1
    - Dst: CK_FUNCTION_LIST_PTR::C_DecryptVerifyUpdate
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5098,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5103,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5104,1
    - Dst: CK_FUNCTION_LIST_PTR::C_DecryptFinal
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5109,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5112,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5113,1
    - Dst: CK_FUNCTION_LIST_PTR::C_VerifyUpdate
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5118,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5121,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5122,1
    - Dst: CK_FUNCTION_LIST_PTR::C_VerifyFinal
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5129,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5131,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5133,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5134,1
    - Dst: memcmp
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5140,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5141,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5143,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 89
    argCount: 9
    argNames:
    - pFunctionList
    - hRwSession
    - publicKey
    - privateKey
    - sigMech
    - secretKey
    - cryptMech
    - pData
    - pDataLen
    argTypes:
    - CK_FUNCTION_LIST_PTR
    - CK_SESSION_HANDLE
    - CK_OBJECT_HANDLE
    - CK_OBJECT_HANDLE
    - CK_MECHANISM*
    - CK_OBJECT_HANDLE
    - CK_MECHANISM*
    - CK_BYTE*
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5147
      start: 4999
    functionDepth: 2
    functionLinenumber: 4999
    functionLinenumberEnd: 5147
    functionName: PKM_DualFuncSign
    functionSourceFile: /src/nss/cmd/pk11mode/pk11mode.c
    functionUses: 1
    functionsReached:
    - CK_FUNCTION_LIST_PTR::C_SignInit
    - PKM_Error
    - CK_FUNCTION_LIST_PTR::C_VerifyFinal
    - CK_FUNCTION_LIST_PTR::C_SignEncryptUpdate
    - CK_FUNCTION_LIST_PTR::C_EncryptFinal
    - CK_FUNCTION_LIST_PTR::C_VerifyUpdate
    - CK_FUNCTION_LIST_PTR::C_EncryptInit
    - CK_FUNCTION_LIST_PTR::C_SignFinal
    - CK_FUNCTION_LIST_PTR::C_VerifyInit
    - memcmp
    - memset
    - CK_FUNCTION_LIST_PTR::C_DecryptFinal
    - CK_FUNCTION_LIST_PTR::C_DecryptVerifyUpdate
    - PKM_LogIt
    - PKM_CK_RVtoStr
    - CK_FUNCTION_LIST_PTR::C_DecryptInit
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV PKM_DualFuncSign(CK_FUNCTION_LIST_PTR pFunctionList,\n                 CK_SESSION_HANDLE
      hRwSession,\n                 CK_OBJECT_HANDLE publicKey, CK_OBJECT_HANDLE privateKey,\n
      \                CK_MECHANISM *sigMech,\n                 CK_OBJECT_HANDLE secretKey,
      CK_MECHANISM *cryptMech,\n                 const CK_BYTE *pData, CK_ULONG pDataLen)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5163,1
    - Dst: memset
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5164,1
    - Dst: CK_FUNCTION_LIST_PTR::C_DigestInit
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5168,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5170,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5171,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Digest
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5175,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5178,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5179,1
    - Dst: CK_FUNCTION_LIST_PTR::C_DigestInit
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5183,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5185,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5186,1
    - Dst: CK_FUNCTION_LIST_PTR::C_DigestUpdate
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5190,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5192,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5193,1
    - Dst: CK_FUNCTION_LIST_PTR::C_DigestKey
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5200,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5202,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5203,1
    - Dst: CK_FUNCTION_LIST_PTR::C_DigestFinal
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5209,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5211,1
    - Dst: PKM_CK_RVtoStr
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5212,1
    - Dst: memcmp
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5219,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5220,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5223,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5228,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5231,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 52
    argCount: 6
    argNames:
    - pFunctionList
    - hSession
    - digestMech
    - hSecretKey
    - pData
    - pDataLen
    argTypes:
    - CK_FUNCTION_LIST_PTR
    - CK_SESSION_HANDLE
    - CK_MECHANISM*
    - CK_OBJECT_HANDLE
    - CK_BYTE*
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5237
      start: 5149
    functionDepth: 2
    functionLinenumber: 5149
    functionLinenumberEnd: 5237
    functionName: PKM_Digest
    functionSourceFile: /src/nss/cmd/pk11mode/pk11mode.c
    functionUses: 1
    functionsReached:
    - PKM_Error
    - CK_FUNCTION_LIST_PTR::C_DigestFinal
    - CK_FUNCTION_LIST_PTR::C_DigestInit
    - CK_FUNCTION_LIST_PTR::C_DigestKey
    - CK_FUNCTION_LIST_PTR::C_Digest
    - memset
    - CK_FUNCTION_LIST_PTR::C_DigestUpdate
    - PKM_LogIt
    - PKM_CK_RVtoStr
    - memcmp
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV PKM_Digest(CK_FUNCTION_LIST_PTR pFunctionList,\n           CK_SESSION_HANDLE
      hSession,\n           CK_MECHANISM *digestMech, CK_OBJECT_HANDLE hSecretKey,\n
      \          const CK_BYTE *pData, CK_ULONG pDataLen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PR_Open
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5250,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5252,1
    - Dst: PR_Read
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5256,1
    - Dst: PR_Close
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5258,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5265,1
    - Dst: strdup
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5268,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - pwFile
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5269
      start: 5239
    functionDepth: 1
    functionLinenumber: 5239
    functionLinenumberEnd: 5269
    functionName: PKM_FilePasswd
    functionSourceFile: /src/nss/cmd/pk11mode/pk11mode.c
    functionUses: 1
    functionsReached:
    - strdup
    - fprintf
    - PR_Read
    - PR_Open
    - PR_Close
    linkageType: ''
    returnType: char
    signature: 'char *

      PKM_FilePasswd(char *pwFile)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetSpecialFD
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5274,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5275,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5276,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5277,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5278,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5279,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5280,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5281,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5282,1
    - Dst: exit
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5284
      start: 5271
    functionDepth: 1
    functionLinenumber: 5271
    functionLinenumberEnd: 5284
    functionName: PKM_Help
    functionSourceFile: /src/nss/cmd/pk11mode/pk11mode.c
    functionUses: 1
    functionsReached:
    - PR_fprintf
    - exit
    - PR_GetSpecialFD
    linkageType: ''
    returnType: void
    signature: void PKM_Help()
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5305
      start: 5286
    functionDepth: 0
    functionLinenumber: 5286
    functionLinenumberEnd: 5305
    functionName: PKM_CheckPath
    functionSourceFile: /src/nss/cmd/pk11mode/pk11mode.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PKM_CheckPath(char *string)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: putenv
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5317,1
    - Dst: putenv
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5319,1
    - Dst: fork
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5321,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5324,1
    - Dst: CK_FUNCTION_LIST_PTR::C_GetTokenInfo
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5337,1
    - Dst: exit
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5338,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Initialize
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5346,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Finalize
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5348,1
    - Dst: exit
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5350,1
    - Dst: exit
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5353,1
    - Dst: PKM_LogIt
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5355,1
    - Dst: wait
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5356,1
    - Dst: WIFEXITED
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5357,1
    - Dst: WEXITSTATUS
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5358,1
    - Dst: WIFEXITED
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5360,1
    - Dst: WEXITSTATUS
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5361,1
    - Dst: PKM_Error
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5363,1
    - Dst: printf
      Src: /src/nss/cmd/pk11mode/pk11mode.c:5364,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 4
    argNames:
    - expected
    - fList
    - forkAssert
    - initArgs
    argTypes:
    - int
    - CK_FUNCTION_LIST_PTR
    - PRBool
    - CK_C_INITIALIZE_ARGS_NSS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5371
      start: 5307
    functionDepth: 1
    functionLinenumber: 5307
    functionLinenumberEnd: 5371
    functionName: PKM_ForkCheck
    functionSourceFile: /src/nss/cmd/pk11mode/pk11mode.c
    functionUses: 1
    functionsReached:
    - CK_FUNCTION_LIST_PTR::C_Initialize
    - PKM_Error
    - WEXITSTATUS
    - fork
    - printf
    - CK_FUNCTION_LIST_PTR::C_GetTokenInfo
    - exit
    - wait
    - putenv
    - CK_FUNCTION_LIST_PTR::C_Finalize
    - PKM_LogIt
    - WIFEXITED
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV PKM_ForkCheck(int expected, CK_FUNCTION_LIST_PTR fList,\n              PRBool
      forkAssert, CK_C_INITIALIZE_ARGS_NSS *initArgs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: isNum
    functionSourceFile: /src/nss/cmd/pk11util/pk11util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int isNum(char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constLookup
      Src: /src/nss/cmd/pk11util/pk11util.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 58
    functionName: isConst
    functionSourceFile: /src/nss/cmd/pk11util/pk11util.c
    functionUses: 0
    functionsReached:
    - constLookup
    linkageType: ''
    returnType: int
    signature: int isConst(const char *c)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PL_strncasecmp
      Src: /src/nss/cmd/pk11util/pk11util.c:71,1
    - Dst: PL_strncasecmp
      Src: /src/nss/cmd/pk11util/pk11util.c:73,1
    - Dst: PL_strncasecmp
      Src: /src/nss/cmd/pk11util/pk11util.c:75,1
    - Dst: PL_strncasecmp
      Src: /src/nss/cmd/pk11util/pk11util.c:78,1
    - Dst: strchr
      Src: /src/nss/cmd/pk11util/pk11util.c:84,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - var
    - isArray
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 92
    functionName: isSize
    functionSourceFile: /src/nss/cmd/pk11util/pk11util.c
    functionUses: 0
    functionsReached:
    - PL_strncasecmp
    - strchr
    linkageType: ''
    returnType: char
    signature: 'char *

      isSize(char *var, int *isArray)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:101,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:105,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:111,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:113,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:117,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 3
    argNames:
    - value
    - type
    - newLine
    argTypes:
    - CK_ULONG
    - ConstType
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 119
    functionName: printConst
    functionSourceFile: /src/nss/cmd/pk11util/pk11util.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printConst(CK_ULONG value, ConstType type, int newLine)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - type
    argTypes:
    - CK_ATTRIBUTE_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 132
    functionName: getConstFromAttribute
    functionSourceFile: /src/nss/cmd/pk11util/pk11util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ConstType
    signature: ConstType getConstFromAttribute(CK_ATTRIBUTE_TYPE type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:142,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:144,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - name
    - size
    argTypes:
    - char*
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 145
    functionName: printChars
    functionSourceFile: /src/nss/cmd/pk11util/pk11util.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printChars(const char *name, CK_ULONG size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:154,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:157,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:159,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:165,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:167,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:170,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:173,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - buf
    - size
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 175
    functionName: printDump
    functionSourceFile: /src/nss/cmd/pk11util/pk11util.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printDump(const unsigned char *buf, int size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/nss/cmd/pk11util/pk11util.c:189,1
    - Dst: free
      Src: /src/nss/cmd/pk11util/pk11util.c:195,1
    - Dst: free
      Src: /src/nss/cmd/pk11util/pk11util.c:198,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - arg
    argTypes:
    - Value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 202
    functionName: argFreeData
    functionSourceFile: /src/nss/cmd/pk11util/pk11util.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void argFreeData(Value *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/nss/cmd/pk11util/pk11util.c:213,1
    - Dst: argFreeData
      Src: /src/nss/cmd/pk11util/pk11util.c:215,1
    - Dst: free
      Src: /src/nss/cmd/pk11util/pk11util.c:216,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - arg
    argTypes:
    - Value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 218
    functionName: argFree
    functionSourceFile: /src/nss/cmd/pk11util/pk11util.c
    functionUses: 0
    functionsReached:
    - free
    - argFreeData
    linkageType: ''
    returnType: void
    signature: void argFree(Value *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: argFree
      Src: /src/nss/cmd/pk11util/pk11util.c:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ap
    argTypes:
    - Value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 223
    functionDepth: 3
    functionLinenumber: 223
    functionLinenumberEnd: 230
    functionName: parseFree
    functionSourceFile: /src/nss/cmd/pk11util/pk11util.c
    functionUses: 0
    functionsReached:
    - argFree
    linkageType: ''
    returnType: void
    signature: void parseFree(Value **ap)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - bp
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 247
    functionName: getEnd
    functionSourceFile: /src/nss/cmd/pk11util/pk11util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getEnd(const char *bp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - bp
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 258
    functionName: strip
    functionSourceFile: /src/nss/cmd/pk11util/pk11util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      strip(const char *bp)'
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 14
    argCount: 3
    argNames:
    - bp
    - dp
    - max
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 280
    functionName: readChars
    functionSourceFile: /src/nss/cmd/pk11util/pk11util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      readChars(const char *bp, char *dp, int max)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: varLookup
      Src: /src/nss/cmd/pk11util/pk11util.c:294,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk11util/pk11util.c:300,1
    - Dst: argFree
      Src: /src/nss/cmd/pk11util/pk11util.c:303,1
    - Dst: constLookup
      Src: /src/nss/cmd/pk11util/pk11util.c:306,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - v
    - error
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 284
    functionDepth: 3
    functionLinenumber: 284
    functionLinenumberEnd: 308
    functionName: getValue
    functionSourceFile: /src/nss/cmd/pk11util/pk11util.c
    functionUses: 0
    functionsReached:
    - fprintf
    - varLookup
    - constLookup
    - argFree
    linkageType: ''
    returnType: CK_ULONG
    signature: CK_ULONG getValue(const char *v, int *error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/nss/cmd/pk11util/pk11util.c:315,1
    - Dst: ArgSize
      Src: /src/nss/cmd/pk11util/pk11util.c:318,1
    - Dst: malloc
      Src: /src/nss/cmd/pk11util/pk11util.c:322,1
    - Dst: free
      Src: /src/nss/cmd/pk11util/pk11util.c:324,1
    - Dst: memset
      Src: /src/nss/cmd/pk11util/pk11util.c:330,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - type
    - arraySize
    argTypes:
    - ArgType
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 332
    functionName: NewValue
    functionSourceFile: /src/nss/cmd/pk11util/pk11util.c
    functionUses: 0
    functionsReached:
    - malloc
    - free
    - ArgSize
    - memset
    linkageType: ''
    returnType: Value
    signature: 'Value *

      NewValue(ArgType type, CK_ULONG arraySize)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/nss/cmd/pk11util/pk11util.c:342,1
    - Dst: strchr
      Src: /src/nss/cmd/pk11util/pk11util.c:345,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk11util/pk11util.c:348,1
    - Dst: getValue
      Src: /src/nss/cmd/pk11util/pk11util.c:353,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk11util/pk11util.c:357,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - vname
    - error
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 336
    functionDepth: 4
    functionLinenumber: 336
    functionLinenumberEnd: 362
    functionName: handleArray
    functionSourceFile: /src/nss/cmd/pk11util/pk11util.c
    functionUses: 0
    functionsReached:
    - fprintf
    - getValue
    - strchr
    linkageType: ''
    returnType: CK_ULONG
    signature: CK_ULONG handleArray(char *vname, int *error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/pk11util/pk11util.c:371,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - vname
    - value
    - index
    argTypes:
    - char*
    - Value*
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 380
    functionName: makeArrayTarget
    functionSourceFile: /src/nss/cmd/pk11util/pk11util.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'void *

      makeArrayTarget(const char *vname, const Value *value, CK_ULONG index)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: readChars
      Src: /src/nss/cmd/pk11util/pk11util.c:396,1
    - Dst: isNum
      Src: /src/nss/cmd/pk11util/pk11util.c:400,1
    - Dst: isConst
      Src: /src/nss/cmd/pk11util/pk11util.c:404,1
    - Dst: isSize
      Src: /src/nss/cmd/pk11util/pk11util.c:408,1
    - Dst: varLookup
      Src: /src/nss/cmd/pk11util/pk11util.c:411,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk11util/pk11util.c:416,1
    - Dst: NewValue
      Src: /src/nss/cmd/pk11util/pk11util.c:422,1
    - Dst: memcpy
      Src: /src/nss/cmd/pk11util/pk11util.c:423,1
    - Dst: handleArray
      Src: /src/nss/cmd/pk11util/pk11util.c:429,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/pk11util/pk11util.c:435,1
    - Dst: makeArrayTarget
      Src: /src/nss/cmd/pk11util/pk11util.c:441,1
    - Dst: NewValue
      Src: /src/nss/cmd/pk11util/pk11util.c:443,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk11util/pk11util.c:445,1
    - Dst: argFreeData
      Src: /src/nss/cmd/pk11util/pk11util.c:448,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 50
    argCount: 4
    argNames:
    - bp
    - vname
    - max
    - error
    argTypes:
    - char*
    - char*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 386
    functionDepth: 5
    functionLinenumber: 386
    functionLinenumberEnd: 458
    functionName: varLookup
    functionSourceFile: /src/nss/cmd/pk11util/pk11util.c
    functionUses: 2
    functionsReached:
    - makeArrayTarget
    - varLookup
    - memcpy
    - isConst
    - argFreeData
    - PL_strcasecmp
    - fprintf
    - handleArray
    - readChars
    - isNum
    - isSize
    - NewValue
    linkageType: ''
    returnType: Value
    signature: 'Value *

      varLookup(const char *bp, char *vname, int max, int *error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:466,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:468,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:472,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 478
    functionName: list
    functionSourceFile: /src/nss/cmd/pk11util/pk11util.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV list(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:486,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:489,1
    - Dst: printConst
      Src: /src/nss/cmd/pk11util/pk11util.c:490,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:495,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:497,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - s
    - flags
    - type
    argTypes:
    - char*
    - CK_ULONG
    - ConstType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 480
    functionDepth: 1
    functionLinenumber: 480
    functionLinenumberEnd: 499
    functionName: printFlags
    functionSourceFile: /src/nss/cmd/pk11util/pk11util.c
    functionUses: 0
    functionsReached:
    - printf
    - printConst
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV printFlags(const char *s, CK_ULONG flags, ConstType type)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: readChars
      Src: /src/nss/cmd/pk11util/pk11util.c:513,1
    - Dst: isNum
      Src: /src/nss/cmd/pk11util/pk11util.c:516,1
    - Dst: isConst
      Src: /src/nss/cmd/pk11util/pk11util.c:520,1
    - Dst: isSize
      Src: /src/nss/cmd/pk11util/pk11util.c:528,1
    - Dst: handleArray
      Src: /src/nss/cmd/pk11util/pk11util.c:532,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/pk11util/pk11util.c:538,1
    - Dst: argFree
      Src: /src/nss/cmd/pk11util/pk11util.c:542,1
    - Dst: makeArrayTarget
      Src: /src/nss/cmd/pk11util/pk11util.c:547,1
    - Dst: memcpy
      Src: /src/nss/cmd/pk11util/pk11util.c:549,1
    - Dst: argFreeData
      Src: /src/nss/cmd/pk11util/pk11util.c:550,1
    - Dst: malloc
      Src: /src/nss/cmd/pk11util/pk11util.c:563,1
    - Dst: strlen
      Src: /src/nss/cmd/pk11util/pk11util.c:564,1
    - Dst: malloc
      Src: /src/nss/cmd/pk11util/pk11util.c:565,1
    - Dst: strcpy
      Src: /src/nss/cmd/pk11util/pk11util.c:566,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 47
    argCount: 2
    argNames:
    - bp
    - ptr
    argTypes:
    - char*
    - Value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 504
    functionDepth: 5
    functionLinenumber: 504
    functionLinenumberEnd: 573
    functionName: AddVariable
    functionSourceFile: /src/nss/cmd/pk11util/pk11util.c
    functionUses: 0
    functionsReached:
    - malloc
    - makeArrayTarget
    - memcpy
    - isConst
    - argFreeData
    - PL_strcasecmp
    - strcpy
    - argFree
    - handleArray
    - readChars
    - isNum
    - isSize
    - strlen
    linkageType: ''
    returnType: char
    signature: 'char *

      AddVariable(const char *bp, Value **ptr)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/pk11util/pk11util.c:581,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/pk11util/pk11util.c:586,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - typeName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 575
    functionDepth: 1
    functionLinenumber: 575
    functionLinenumberEnd: 591
    functionName: FindTypeByName
    functionSourceFile: /src/nss/cmd/pk11util/pk11util.c
    functionUses: 0
    functionsReached:
    - PL_strcasecmp
    linkageType: ''
    returnType: ArgType
    signature: ArgType FindTypeByName(const char *typeName)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FindTypeByName
      Src: /src/nss/cmd/pk11util/pk11util.c:599,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk11util/pk11util.c:601,1
    - Dst: NewValue
      Src: /src/nss/cmd/pk11util/pk11util.c:604,1
    - Dst: AddVariable
      Src: /src/nss/cmd/pk11util/pk11util.c:605,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - bp
    - typeName
    - count
    argTypes:
    - char*
    - char*
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 593
    functionDepth: 6
    functionLinenumber: 593
    functionLinenumberEnd: 607
    functionName: ArrayVariable
    functionSourceFile: /src/nss/cmd/pk11util/pk11util.c
    functionUses: 0
    functionsReached:
    - fprintf
    - AddVariable
    - FindTypeByName
    - NewValue
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV ArrayVariable(const char *bp, const char *typeName, CK_ULONG
      count)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/cmd/pk11util/pk11util.c:621,1
    - Dst: strlen
      Src: /src/nss/cmd/pk11util/pk11util.c:621,1
    - Dst: strchr
      Src: /src/nss/cmd/pk11util/pk11util.c:627,1
    - Dst: constLookup
      Src: /src/nss/cmd/pk11util/pk11util.c:632,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk11util/pk11util.c:634,1
    - Dst: NewValue
      Src: /src/nss/cmd/pk11util/pk11util.c:639,1
    - Dst: AddVariable
      Src: /src/nss/cmd/pk11util/pk11util.c:645,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - bp
    - attributes
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 611
    functionDepth: 6
    functionLinenumber: 611
    functionLinenumberEnd: 647
    functionName: ArrayTemplate
    functionSourceFile: /src/nss/cmd/pk11util/pk11util.c
    functionUses: 0
    functionsReached:
    - memcpy
    - strchr
    - NewValue
    - AddVariable
    - fprintf
    - constLookup
    - strlen
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV ArrayTemplate(const char *bp, char *attributes)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/nss/cmd/pk11util/pk11util.c:658,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - vp
    argTypes:
    - Value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 649
    functionDepth: 1
    functionLinenumber: 649
    functionLinenumberEnd: 663
    functionName: BuildTemplate
    functionSourceFile: /src/nss/cmd/pk11util/pk11util.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV BuildTemplate(Value *vp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/pk11util/pk11util.c:674,1
    - Dst: getConstFromAttribute
      Src: /src/nss/cmd/pk11util/pk11util.c:678,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk11util/pk11util.c:681,1
    - Dst: printConst
      Src: /src/nss/cmd/pk11util/pk11util.c:682,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk11util/pk11util.c:683,1
    - Dst: free
      Src: /src/nss/cmd/pk11util/pk11util.c:689,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - vp
    - index
    - value
    argTypes:
    - Value*
    - CK_ULONG
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 665
    functionDepth: 1
    functionLinenumber: 665
    functionLinenumberEnd: 699
    functionName: SetTemplate
    functionSourceFile: /src/nss/cmd/pk11util/pk11util.c
    functionUses: 0
    functionsReached:
    - fprintf
    - free
    - getConstFromAttribute
    - printConst
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV SetTemplate(Value *vp, CK_ULONG index, CK_ULONG value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NewValue
      Src: /src/nss/cmd/pk11util/pk11util.c:707,1
    - Dst: AddVariable
      Src: /src/nss/cmd/pk11util/pk11util.c:712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - bp
    - mechType
    argTypes:
    - char*
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 701
    functionDepth: 6
    functionLinenumber: 701
    functionLinenumberEnd: 714
    functionName: NewMechanism
    functionSourceFile: /src/nss/cmd/pk11util/pk11util.c
    functionUses: 0
    functionsReached:
    - AddVariable
    - NewValue
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV NewMechanism(const char *bp, CK_ULONG mechType)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NewValue
      Src: /src/nss/cmd/pk11util/pk11util.c:722,1
    - Dst: strcmp
      Src: /src/nss/cmd/pk11util/pk11util.c:725,1
    - Dst: strdup
      Src: /src/nss/cmd/pk11util/pk11util.c:726,1
    - Dst: AddVariable
      Src: /src/nss/cmd/pk11util/pk11util.c:728,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - bp
    - flags
    - param
    argTypes:
    - char*
    - CK_ULONG
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 716
    functionDepth: 6
    functionLinenumber: 716
    functionLinenumberEnd: 730
    functionName: NewInitializeArgs
    functionSourceFile: /src/nss/cmd/pk11util/pk11util.c
    functionUses: 0
    functionsReached:
    - strcmp
    - strdup
    - AddVariable
    - NewValue
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV NewInitializeArgs(const char *bp, CK_ULONG flags, const char
      *param)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: readChars
      Src: /src/nss/cmd/pk11util/pk11util.c:741,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/pk11util/pk11util.c:744,1
    - Dst: argFree
      Src: /src/nss/cmd/pk11util/pk11util.c:745,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - bp
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 735
    functionDepth: 3
    functionLinenumber: 735
    functionLinenumberEnd: 751
    functionName: DeleteVariable
    functionSourceFile: /src/nss/cmd/pk11util/pk11util.c
    functionUses: 0
    functionsReached:
    - readChars
    - argFree
    - PL_strcasecmp
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV DeleteVariable(const char *bp)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - o
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 756
    functionDepth: 0
    functionLinenumber: 756
    functionLinenumberEnd: 769
    functionName: otoi
    functionSourceFile: /src/nss/cmd/pk11util/pk11util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_ULONG
    signature: CK_ULONG otoi(const char *o)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 1
    argNames:
    - x
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 774
    functionDepth: 0
    functionLinenumber: 774
    functionLinenumberEnd: 791
    functionName: htoi
    functionSourceFile: /src/nss/cmd/pk11util/pk11util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_ULONG
    signature: CK_ULONG htoi(const char *x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: readChars
      Src: /src/nss/cmd/pk11util/pk11util.c:802,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/pk11util/pk11util.c:805,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/pk11util/pk11util.c:806,1
    - Dst: htoi
      Src: /src/nss/cmd/pk11util/pk11util.c:815,1
    - Dst: otoi
      Src: /src/nss/cmd/pk11util/pk11util.c:817,1
    - Dst: atoi
      Src: /src/nss/cmd/pk11util/pk11util.c:819,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - bp
    - value
    - type
    argTypes:
    - char*
    - CK_ULONG*
    - ConstType*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 796
    functionDepth: 1
    functionLinenumber: 796
    functionLinenumberEnd: 822
    functionName: constLookup
    functionSourceFile: /src/nss/cmd/pk11util/pk11util.c
    functionUses: 3
    functionsReached:
    - otoi
    - PL_strcasecmp
    - atoi
    - readChars
    - htoi
    linkageType: ''
    returnType: char
    signature: 'char *

      constLookup(const char *bp, CK_ULONG *value, ConstType *type)'
  - BBCount: 16
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 1
    argNames:
    - type
    argTypes:
    - ArgType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 824
    functionDepth: 0
    functionLinenumber: 824
    functionLinenumberEnd: 876
    functionName: ArgSize
    functionSourceFile: /src/nss/cmd/pk11util/pk11util.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ArgSize(ArgType type)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/nss/cmd/pk11util/pk11util.c:883,1
    - Dst: perror
      Src: /src/nss/cmd/pk11util/pk11util.c:885,1
    - Dst: read
      Src: /src/nss/cmd/pk11util/pk11util.c:889,1
    - Dst: printDump
      Src: /src/nss/cmd/pk11util/pk11util.c:891,1
    - Dst: perror
      Src: /src/nss/cmd/pk11util/pk11util.c:894,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk11util/pk11util.c:897,1
    - Dst: close
      Src: /src/nss/cmd/pk11util/pk11util.c:901,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - filename
    - ptr
    argTypes:
    - char*
    - Value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 878
    functionDepth: 1
    functionLinenumber: 878
    functionLinenumberEnd: 903
    functionName: restore
    functionSourceFile: /src/nss/cmd/pk11util/pk11util.c
    functionUses: 0
    functionsReached:
    - close
    - printDump
    - read
    - open
    - fprintf
    - perror
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV restore(const char *filename, Value *ptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/nss/cmd/pk11util/pk11util.c:910,1
    - Dst: perror
      Src: /src/nss/cmd/pk11util/pk11util.c:912,1
    - Dst: write
      Src: /src/nss/cmd/pk11util/pk11util.c:916,1
    - Dst: perror
      Src: /src/nss/cmd/pk11util/pk11util.c:918,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk11util/pk11util.c:921,1
    - Dst: close
      Src: /src/nss/cmd/pk11util/pk11util.c:925,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - filename
    - ptr
    argTypes:
    - char*
    - Value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 927
      start: 905
    functionDepth: 0
    functionLinenumber: 905
    functionLinenumberEnd: 927
    functionName: save
    functionSourceFile: /src/nss/cmd/pk11util/pk11util.c
    functionUses: 0
    functionsReached:
    - close
    - write
    - open
    - fprintf
    - perror
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV save(const char *filename, Value *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ptr
    - value
    argTypes:
    - Value*
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 929
    functionDepth: 0
    functionLinenumber: 929
    functionLinenumberEnd: 937
    functionName: increment
    functionSourceFile: /src/nss/cmd/pk11util/pk11util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV increment(Value *ptr, CK_ULONG value)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ptr
    - value
    argTypes:
    - Value*
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 939
    functionDepth: 0
    functionLinenumber: 939
    functionLinenumberEnd: 947
    functionName: decrement
    functionSourceFile: /src/nss/cmd/pk11util/pk11util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV decrement(Value *ptr, CK_ULONG value)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:966,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:982,1
    - Dst: printArg
      Src: /src/nss/cmd/pk11util/pk11util.c:984,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:989,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:994,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:997,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:1000,1
    - Dst: printConst
      Src: /src/nss/cmd/pk11util/pk11util.c:1001,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:1005,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:1008,1
    - Dst: printDump
      Src: /src/nss/cmd/pk11util/pk11util.c:1011,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:1016,1
    - Dst: VERSION
      Src: /src/nss/cmd/pk11util/pk11util.c:1017,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:1018,1
    - Dst: printChars
      Src: /src/nss/cmd/pk11util/pk11util.c:1019,1
    - Dst: printFlags
      Src: /src/nss/cmd/pk11util/pk11util.c:1021,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:1022,1
    - Dst: printChars
      Src: /src/nss/cmd/pk11util/pk11util.c:1023,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:1025,1
    - Dst: VERSION
      Src: /src/nss/cmd/pk11util/pk11util.c:1026,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:1030,1
    - Dst: printChars
      Src: /src/nss/cmd/pk11util/pk11util.c:1031,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:1033,1
    - Dst: printChars
      Src: /src/nss/cmd/pk11util/pk11util.c:1034,1
    - Dst: printFlags
      Src: /src/nss/cmd/pk11util/pk11util.c:1036,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:1037,1
    - Dst: VERSION
      Src: /src/nss/cmd/pk11util/pk11util.c:1038,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:1039,1
    - Dst: VERSION
      Src: /src/nss/cmd/pk11util/pk11util.c:1040,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:1044,1
    - Dst: printChars
      Src: /src/nss/cmd/pk11util/pk11util.c:1045,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:1046,1
    - Dst: printChars
      Src: /src/nss/cmd/pk11util/pk11util.c:1047,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:1049,1
    - Dst: printChars
      Src: /src/nss/cmd/pk11util/pk11util.c:1050,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:1051,1
    - Dst: printChars
      Src: /src/nss/cmd/pk11util/pk11util.c:1052,1
    - Dst: printFlags
      Src: /src/nss/cmd/pk11util/pk11util.c:1054,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:1055,1
    - Dst: printConst
      Src: /src/nss/cmd/pk11util/pk11util.c:1056,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:1057,1
    - Dst: printConst
      Src: /src/nss/cmd/pk11util/pk11util.c:1058,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:1059,1
    - Dst: printConst
      Src: /src/nss/cmd/pk11util/pk11util.c:1060,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:1061,1
    - Dst: printConst
      Src: /src/nss/cmd/pk11util/pk11util.c:1062,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:1063,1
    - Dst: printConst
      Src: /src/nss/cmd/pk11util/pk11util.c:1064,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:1065,1
    - Dst: printConst
      Src: /src/nss/cmd/pk11util/pk11util.c:1066,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:1067,1
    - Dst: printConst
      Src: /src/nss/cmd/pk11util/pk11util.c:1068,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:1069,1
    - Dst: printConst
      Src: /src/nss/cmd/pk11util/pk11util.c:1070,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:1071,1
    - Dst: printConst
      Src: /src/nss/cmd/pk11util/pk11util.c:1072,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:1073,1
    - Dst: VERSION
      Src: /src/nss/cmd/pk11util/pk11util.c:1074,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:1075,1
    - Dst: VERSION
      Src: /src/nss/cmd/pk11util/pk11util.c:1076,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:1077,1
    - Dst: printChars
      Src: /src/nss/cmd/pk11util/pk11util.c:1078,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:1082,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:1083,1
    - Dst: printConst
      Src: /src/nss/cmd/pk11util/pk11util.c:1084,1
    - Dst: printFlags
      Src: /src/nss/cmd/pk11util/pk11util.c:1085,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:1086,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:1091,1
    - Dst: printConst
      Src: /src/nss/cmd/pk11util/pk11util.c:1092,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:1093,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:1095,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:1096,1
    - Dst: getConstFromAttribute
      Src: /src/nss/cmd/pk11util/pk11util.c:1098,1
    - Dst: printConst
      Src: /src/nss/cmd/pk11util/pk11util.c:1102,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:1104,1
    - Dst: printDump
      Src: /src/nss/cmd/pk11util/pk11util.c:1105,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:1111,1
    - Dst: printConst
      Src: /src/nss/cmd/pk11util/pk11util.c:1112,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:1113,1
    - Dst: printDump
      Src: /src/nss/cmd/pk11util/pk11util.c:1114,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:1118,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:1119,1
    - Dst: printFlags
      Src: /src/nss/cmd/pk11util/pk11util.c:1120,1
    - Dst: printFlags
      Src: /src/nss/cmd/pk11util/pk11util.c:1124,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:1126,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:1130,1
    - Dst: VERSION
      Src: /src/nss/cmd/pk11util/pk11util.c:1130,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 149
    argCount: 2
    argNames:
    - ptr
    - arg_number
    argTypes:
    - Value*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1145
      start: 949
    functionDepth: 1
    functionLinenumber: 949
    functionLinenumberEnd: 1145
    functionName: printArg
    functionSourceFile: /src/nss/cmd/pk11util/pk11util.c
    functionUses: 1
    functionsReached:
    - VERSION
    - printDump
    - printConst
    - printArg
    - printf
    - getConstFromAttribute
    - printChars
    - printFlags
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV printArg(Value *ptr, int arg_number)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 1014
    functionDepth: 0
    functionLinenumber: 1014
    functionLinenumberEnd: 1015
    functionName: VERSION
    functionSourceFile: /src/nss/cmd/pk11util/pk11util.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VERSION(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 1133
    functionDepth: 0
    functionLinenumber: 1133
    functionLinenumberEnd: 1135
    functionName: CK_PKCS11_FUNCTION_INFO
    functionSourceFile: /src/nss/cmd/pk11util/pk11util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CK_PKCS11_FUNCTION_INFO(func)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nss/cmd/pk11util/pk11util.c:1155,1
    - Dst: malloc
      Src: /src/nss/cmd/pk11util/pk11util.c:1173,1
    - Dst: strip
      Src: /src/nss/cmd/pk11util/pk11util.c:1186,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk11util/pk11util.c:1200,1
    - Dst: parseFree
      Src: /src/nss/cmd/pk11util/pk11util.c:1201,1
    - Dst: strlen
      Src: /src/nss/cmd/pk11util/pk11util.c:1208,1
    - Dst: NewValue
      Src: /src/nss/cmd/pk11util/pk11util.c:1209,1
    - Dst: memcpy
      Src: /src/nss/cmd/pk11util/pk11util.c:1210,1
    - Dst: varLookup
      Src: /src/nss/cmd/pk11util/pk11util.c:1220,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk11util/pk11util.c:1226,1
    - Dst: argFree
      Src: /src/nss/cmd/pk11util/pk11util.c:1228,1
    - Dst: parseFree
      Src: /src/nss/cmd/pk11util/pk11util.c:1229,1
    - Dst: ArgSize
      Src: /src/nss/cmd/pk11util/pk11util.c:1235,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk11util/pk11util.c:1236,1
    - Dst: ArgSize
      Src: /src/nss/cmd/pk11util/pk11util.c:1238,1
    - Dst: argFree
      Src: /src/nss/cmd/pk11util/pk11util.c:1239,1
    - Dst: parseFree
      Src: /src/nss/cmd/pk11util/pk11util.c:1240,1
    - Dst: readChars
      Src: /src/nss/cmd/pk11util/pk11util.c:1248,1
    - Dst: parseFree
      Src: /src/nss/cmd/pk11util/pk11util.c:1256,1
    - Dst: NewValue
      Src: /src/nss/cmd/pk11util/pk11util.c:1261,1
    - Dst: PL_strncasecmp
      Src: /src/nss/cmd/pk11util/pk11util.c:1263,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk11util/pk11util.c:1270,1
    - Dst: parseFree
      Src: /src/nss/cmd/pk11util/pk11util.c:1272,1
    - Dst: argFreeData
      Src: /src/nss/cmd/pk11util/pk11util.c:1275,1
    - Dst: PL_strncasecmp
      Src: /src/nss/cmd/pk11util/pk11util.c:1286,1
    - Dst: readChars
      Src: /src/nss/cmd/pk11util/pk11util.c:1288,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/pk11util/pk11util.c:1289,1
    - Dst: malloc
      Src: /src/nss/cmd/pk11util/pk11util.c:1294,1
    - Dst: PL_strcpy
      Src: /src/nss/cmd/pk11util/pk11util.c:1296,1
    - Dst: AddVariable
      Src: /src/nss/cmd/pk11util/pk11util.c:1301,1
    - Dst: PL_strncasecmp
      Src: /src/nss/cmd/pk11util/pk11util.c:1306,1
    - Dst: readChars
      Src: /src/nss/cmd/pk11util/pk11util.c:1309,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/pk11util/pk11util.c:1310,1
    - Dst: restore
      Src: /src/nss/cmd/pk11util/pk11util.c:1315,1
    - Dst: parseFree
      Src: /src/nss/cmd/pk11util/pk11util.c:1316,1
    - Dst: constLookup
      Src: /src/nss/cmd/pk11util/pk11util.c:1324,1
    - Dst: argFreeData
      Src: /src/nss/cmd/pk11util/pk11util.c:1329,1
    - Dst: getEnd
      Src: /src/nss/cmd/pk11util/pk11util.c:1330,1
    - Dst: malloc
      Src: /src/nss/cmd/pk11util/pk11util.c:1331,1
    - Dst: readChars
      Src: /src/nss/cmd/pk11util/pk11util.c:1344,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 126
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1352
      start: 1151
    functionDepth: 6
    functionLinenumber: 1151
    functionLinenumberEnd: 1352
    functionName: parseArgs
    functionSourceFile: /src/nss/cmd/pk11util/pk11util.c
    functionUses: 0
    functionsReached:
    - PL_strlen
    - argFreeData
    - AddVariable
    - fprintf
    - PL_strcpy
    - constLookup
    - strlen
    - memcpy
    - parseFree
    - varLookup
    - restore
    - argFree
    - strip
    - ArgSize
    - readChars
    - malloc
    - PL_strncasecmp
    - getEnd
    - NewValue
    linkageType: ''
    returnType: Value
    signature: 'Value **

      parseArgs(int index, const char *bp)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PL_strlen
      Src: /src/nss/cmd/pk11util/pk11util.c:1361,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/pk11util/pk11util.c:1364,1
    - Dst: PL_strncasecmp
      Src: /src/nss/cmd/pk11util/pk11util.c:1367,1
    - Dst: PL_strncasecmp
      Src: /src/nss/cmd/pk11util/pk11util.c:1373,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk11util/pk11util.c:1378,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - buf
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1380
      start: 1355
    functionDepth: 1
    functionLinenumber: 1355
    functionLinenumberEnd: 1380
    functionName: lookup
    functionSourceFile: /src/nss/cmd/pk11util/pk11util.c
    functionUses: 0
    functionsReached:
    - fprintf
    - PL_strlen
    - PL_strncasecmp
    linkageType: ''
    returnType: int
    signature: int lookup(const char *buf)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printArg
      Src: /src/nss/cmd/pk11util/pk11util.c:1400,1
    - Dst: save
      Src: /src/nss/cmd/pk11util/pk11util.c:1403,1
    - Dst: free
      Src: /src/nss/cmd/pk11util/pk11util.c:1404,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - Value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1408
      start: 1382
    functionDepth: 2
    functionLinenumber: 1382
    functionLinenumberEnd: 1408
    functionName: putOutput
    functionSourceFile: /src/nss/cmd/pk11util/pk11util.c
    functionUses: 0
    functionsReached:
    - save
    - free
    - printArg
    linkageType: ''
    returnType: void
    signature: void putOutput(Value **ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetEnvSecure
      Src: /src/nss/cmd/pk11util/pk11util.c:1415,1
    - Dst: PR_UnloadLibrary
      Src: /src/nss/cmd/pk11util/pk11util.c:1418,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - module
    argTypes:
    - Module*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1425
      start: 1410
    functionDepth: 1
    functionLinenumber: 1410
    functionLinenumberEnd: 1425
    functionName: unloadModule
    functionSourceFile: /src/nss/cmd/pk11util/pk11util.c
    functionUses: 0
    functionsReached:
    - PR_UnloadLibrary
    - PR_GetEnvSecure
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV unloadModule(Module *module)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PR_LoadLibrary
      Src: /src/nss/cmd/pk11util/pk11util.c:1435,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk11util/pk11util.c:1437,1
    - Dst: PR_FindSymbol
      Src: /src/nss/cmd/pk11util/pk11util.c:1441,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk11util/pk11util.c:1443,1
    - Dst: PR_UnloadLibrary
      Src: /src/nss/cmd/pk11util/pk11util.c:1453,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - module
    - library
    argTypes:
    - Module*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1460
      start: 1427
    functionDepth: 1
    functionLinenumber: 1427
    functionLinenumberEnd: 1460
    functionName: loadModule
    functionSourceFile: /src/nss/cmd/pk11util/pk11util.c
    functionUses: 0
    functionsReached:
    - fprintf
    - PR_LoadLibrary
    - PR_FindSymbol
    - PR_UnloadLibrary
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV loadModule(Module *module, char *library)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:1466,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:1472,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:1474,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:1475,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - index
    - full
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1476
      start: 1462
    functionDepth: 0
    functionLinenumber: 1462
    functionLinenumberEnd: 1476
    functionName: printHelp
    functionSourceFile: /src/nss/cmd/pk11util/pk11util.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printHelp(int index, int full)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PL_strlen
      Src: /src/nss/cmd/pk11util/pk11util.c:1485,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/pk11util/pk11util.c:1488,1
    - Dst: PL_strncasecmp
      Src: /src/nss/cmd/pk11util/pk11util.c:1491,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk11util/pk11util.c:1498,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:1502,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:1503,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:1504,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - topic
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1506
      start: 1479
    functionDepth: 1
    functionLinenumber: 1479
    functionLinenumberEnd: 1506
    functionName: printTopicHelp
    functionSourceFile: /src/nss/cmd/pk11util/pk11util.c
    functionUses: 0
    functionsReached:
    - fprintf
    - PL_strlen
    - printf
    - PL_strncasecmp
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV printTopicHelp(char *topic)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:1512,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:1515,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:1516,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:1518,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:1520,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:1523,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:1524,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:1526,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1528
      start: 1508
    functionDepth: 0
    functionLinenumber: 1508
    functionLinenumberEnd: 1528
    functionName: printGeneralHelp
    functionSourceFile: /src/nss/cmd/pk11util/pk11util.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV printGeneralHelp(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nss/cmd/pk11util/pk11util.c:1533,1
    - Dst: strcmp
      Src: /src/nss/cmd/pk11util/pk11util.c:1535,1
    - Dst: strcmp
      Src: /src/nss/cmd/pk11util/pk11util.c:1537,1
    - Dst: strcmp
      Src: /src/nss/cmd/pk11util/pk11util.c:1539,1
    - Dst: strcmp
      Src: /src/nss/cmd/pk11util/pk11util.c:1541,1
    - Dst: strcmp
      Src: /src/nss/cmd/pk11util/pk11util.c:1543,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:1546,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - a
    - cmp
    - b
    argTypes:
    - CK_ULONG
    - char*
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1548
      start: 1530
    functionDepth: 0
    functionLinenumber: 1530
    functionLinenumberEnd: 1548
    functionName: quitIf
    functionSourceFile: /src/nss/cmd/pk11util/pk11util.c
    functionUses: 0
    functionsReached:
    - strcmp
    - printf
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV quitIf(CK_ULONG a, const char *cmp, CK_ULONG b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nss/cmd/pk11util/pk11util.c:1554,1
    - Dst: strcmp
      Src: /src/nss/cmd/pk11util/pk11util.c:1555,1
    - Dst: strcmp
      Src: /src/nss/cmd/pk11util/pk11util.c:1556,1
    - Dst: strcmp
      Src: /src/nss/cmd/pk11util/pk11util.c:1557,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:1559,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - a
    - cmp
    - b
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1561
      start: 1550
    functionDepth: 0
    functionLinenumber: 1550
    functionLinenumberEnd: 1561
    functionName: quitIfString
    functionSourceFile: /src/nss/cmd/pk11util/pk11util.c
    functionUses: 0
    functionsReached:
    - strcmp
    - printf
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV quitIfString(const char *a, const char *cmp, const char *b)
  - BBCount: 167
    BranchProfiles: []
    Callsites:
    - Dst: CK_FUNCTION_LIST*::C_Initialize
      Src: /src/nss/cmd/pk11util/pk11util.c:1583,1
    - Dst: CK_FUNCTION_LIST*::C_Finalize
      Src: /src/nss/cmd/pk11util/pk11util.c:1587,1
    - Dst: CK_FUNCTION_LIST*::C_GetInfo
      Src: /src/nss/cmd/pk11util/pk11util.c:1591,1
    - Dst: CK_FUNCTION_LIST*::C_GetFunctionList
      Src: /src/nss/cmd/pk11util/pk11util.c:1595,1
    - Dst: CK_FUNCTION_LIST*::C_GetSlotList
      Src: /src/nss/cmd/pk11util/pk11util.c:1599,1
    - Dst: CK_FUNCTION_LIST*::C_GetSlotInfo
      Src: /src/nss/cmd/pk11util/pk11util.c:1605,1
    - Dst: CK_FUNCTION_LIST*::C_GetTokenInfo
      Src: /src/nss/cmd/pk11util/pk11util.c:1610,1
    - Dst: CK_FUNCTION_LIST*::C_GetMechanismList
      Src: /src/nss/cmd/pk11util/pk11util.c:1618,1
    - Dst: CK_FUNCTION_LIST*::C_GetMechanismInfo
      Src: /src/nss/cmd/pk11util/pk11util.c:1624,1
    - Dst: CK_FUNCTION_LIST*::C_InitToken
      Src: /src/nss/cmd/pk11util/pk11util.c:1630,1
    - Dst: CK_FUNCTION_LIST*::C_InitPIN
      Src: /src/nss/cmd/pk11util/pk11util.c:1637,1
    - Dst: CK_FUNCTION_LIST*::C_SetPIN
      Src: /src/nss/cmd/pk11util/pk11util.c:1643,1
    - Dst: CK_FUNCTION_LIST*::C_OpenSession
      Src: /src/nss/cmd/pk11util/pk11util.c:1651,1
    - Dst: CK_FUNCTION_LIST*::C_CloseSession
      Src: /src/nss/cmd/pk11util/pk11util.c:1659,1
    - Dst: CK_FUNCTION_LIST*::C_CloseAllSessions
      Src: /src/nss/cmd/pk11util/pk11util.c:1663,1
    - Dst: CK_FUNCTION_LIST*::C_GetSessionInfo
      Src: /src/nss/cmd/pk11util/pk11util.c:1667,1
    - Dst: CK_FUNCTION_LIST*::C_GetOperationState
      Src: /src/nss/cmd/pk11util/pk11util.c:1672,1
    - Dst: CK_FUNCTION_LIST*::C_SetOperationState
      Src: /src/nss/cmd/pk11util/pk11util.c:1678,1
    - Dst: CK_FUNCTION_LIST*::C_Login
      Src: /src/nss/cmd/pk11util/pk11util.c:1686,1
    - Dst: CK_FUNCTION_LIST*::C_Logout
      Src: /src/nss/cmd/pk11util/pk11util.c:1693,1
    - Dst: CK_FUNCTION_LIST*::C_CreateObject
      Src: /src/nss/cmd/pk11util/pk11util.c:1697,1
    - Dst: CK_FUNCTION_LIST*::C_CopyObject
      Src: /src/nss/cmd/pk11util/pk11util.c:1704,1
    - Dst: CK_FUNCTION_LIST*::C_DestroyObject
      Src: /src/nss/cmd/pk11util/pk11util.c:1712,1
    - Dst: CK_FUNCTION_LIST*::C_GetObjectSize
      Src: /src/nss/cmd/pk11util/pk11util.c:1717,1
    - Dst: CK_FUNCTION_LIST*::C_GetAttributeValue
      Src: /src/nss/cmd/pk11util/pk11util.c:1723,1
    - Dst: CK_FUNCTION_LIST*::C_SetAttributeValue
      Src: /src/nss/cmd/pk11util/pk11util.c:1730,1
    - Dst: CK_FUNCTION_LIST*::C_FindObjectsInit
      Src: /src/nss/cmd/pk11util/pk11util.c:1737,1
    - Dst: CK_FUNCTION_LIST*::C_FindObjects
      Src: /src/nss/cmd/pk11util/pk11util.c:1743,1
    - Dst: CK_FUNCTION_LIST*::C_FindObjectsFinal
      Src: /src/nss/cmd/pk11util/pk11util.c:1750,1
    - Dst: CK_FUNCTION_LIST*::C_EncryptInit
      Src: /src/nss/cmd/pk11util/pk11util.c:1754,1
    - Dst: CK_FUNCTION_LIST*::C_Encrypt
      Src: /src/nss/cmd/pk11util/pk11util.c:1760,1
    - Dst: CK_FUNCTION_LIST*::C_EncryptUpdate
      Src: /src/nss/cmd/pk11util/pk11util.c:1768,1
    - Dst: CK_FUNCTION_LIST*::C_EncryptFinal
      Src: /src/nss/cmd/pk11util/pk11util.c:1776,1
    - Dst: CK_FUNCTION_LIST*::C_DecryptInit
      Src: /src/nss/cmd/pk11util/pk11util.c:1782,1
    - Dst: CK_FUNCTION_LIST*::C_Decrypt
      Src: /src/nss/cmd/pk11util/pk11util.c:1788,1
    - Dst: CK_FUNCTION_LIST*::C_DecryptUpdate
      Src: /src/nss/cmd/pk11util/pk11util.c:1796,1
    - Dst: CK_FUNCTION_LIST*::C_DecryptFinal
      Src: /src/nss/cmd/pk11util/pk11util.c:1804,1
    - Dst: CK_FUNCTION_LIST*::C_DigestInit
      Src: /src/nss/cmd/pk11util/pk11util.c:1810,1
    - Dst: CK_FUNCTION_LIST*::C_Digest
      Src: /src/nss/cmd/pk11util/pk11util.c:1815,1
    - Dst: CK_FUNCTION_LIST*::C_DigestUpdate
      Src: /src/nss/cmd/pk11util/pk11util.c:1823,1
    - Dst: CK_FUNCTION_LIST*::C_DigestKey
      Src: /src/nss/cmd/pk11util/pk11util.c:1829,1
    - Dst: CK_FUNCTION_LIST*::C_DigestFinal
      Src: /src/nss/cmd/pk11util/pk11util.c:1834,1
    - Dst: CK_FUNCTION_LIST*::C_SignInit
      Src: /src/nss/cmd/pk11util/pk11util.c:1840,1
    - Dst: CK_FUNCTION_LIST*::C_Sign
      Src: /src/nss/cmd/pk11util/pk11util.c:1846,1
    - Dst: CK_FUNCTION_LIST*::C_SignUpdate
      Src: /src/nss/cmd/pk11util/pk11util.c:1854,1
    - Dst: CK_FUNCTION_LIST*::C_SignFinal
      Src: /src/nss/cmd/pk11util/pk11util.c:1860,1
    - Dst: CK_FUNCTION_LIST*::C_SignRecoverInit
      Src: /src/nss/cmd/pk11util/pk11util.c:1867,1
    - Dst: CK_FUNCTION_LIST*::C_SignRecover
      Src: /src/nss/cmd/pk11util/pk11util.c:1873,1
    - Dst: CK_FUNCTION_LIST*::C_VerifyInit
      Src: /src/nss/cmd/pk11util/pk11util.c:1881,1
    - Dst: CK_FUNCTION_LIST*::C_Verify
      Src: /src/nss/cmd/pk11util/pk11util.c:1887,1
    - Dst: CK_FUNCTION_LIST*::C_VerifyUpdate
      Src: /src/nss/cmd/pk11util/pk11util.c:1895,1
    - Dst: CK_FUNCTION_LIST*::C_VerifyFinal
      Src: /src/nss/cmd/pk11util/pk11util.c:1901,1
    - Dst: CK_FUNCTION_LIST*::C_VerifyRecoverInit
      Src: /src/nss/cmd/pk11util/pk11util.c:1908,1
    - Dst: CK_FUNCTION_LIST*::C_VerifyRecover
      Src: /src/nss/cmd/pk11util/pk11util.c:1914,1
    - Dst: CK_FUNCTION_LIST*::C_DigestEncryptUpdate
      Src: /src/nss/cmd/pk11util/pk11util.c:1922,1
    - Dst: CK_FUNCTION_LIST*::C_DecryptDigestUpdate
      Src: /src/nss/cmd/pk11util/pk11util.c:1930,1
    - Dst: CK_FUNCTION_LIST*::C_SignEncryptUpdate
      Src: /src/nss/cmd/pk11util/pk11util.c:1938,1
    - Dst: CK_FUNCTION_LIST*::C_DecryptVerifyUpdate
      Src: /src/nss/cmd/pk11util/pk11util.c:1946,1
    - Dst: CK_FUNCTION_LIST*::C_GenerateKey
      Src: /src/nss/cmd/pk11util/pk11util.c:1954,1
    - Dst: CK_FUNCTION_LIST*::C_GenerateKeyPair
      Src: /src/nss/cmd/pk11util/pk11util.c:1962,1
    - Dst: CK_FUNCTION_LIST*::C_WrapKey
      Src: /src/nss/cmd/pk11util/pk11util.c:1973,1
    - Dst: CK_FUNCTION_LIST*::C_UnwrapKey
      Src: /src/nss/cmd/pk11util/pk11util.c:1982,1
    - Dst: CK_FUNCTION_LIST*::C_DeriveKey
      Src: /src/nss/cmd/pk11util/pk11util.c:1993,1
    - Dst: CK_FUNCTION_LIST*::C_SeedRandom
      Src: /src/nss/cmd/pk11util/pk11util.c:2002,1
    - Dst: CK_FUNCTION_LIST*::C_GenerateRandom
      Src: /src/nss/cmd/pk11util/pk11util.c:2008,1
    - Dst: CK_FUNCTION_LIST*::C_GetFunctionStatus
      Src: /src/nss/cmd/pk11util/pk11util.c:2014,1
    - Dst: CK_FUNCTION_LIST*::C_CancelFunction
      Src: /src/nss/cmd/pk11util/pk11util.c:2018,1
    - Dst: CK_FUNCTION_LIST*::C_WaitForSlotEvent
      Src: /src/nss/cmd/pk11util/pk11util.c:2022,1
    - Dst: DeleteVariable
      Src: /src/nss/cmd/pk11util/pk11util.c:2028,1
    - Dst: AddVariable
      Src: /src/nss/cmd/pk11util/pk11util.c:2029,1
    - Dst: printArg
      Src: /src/nss/cmd/pk11util/pk11util.c:2033,1
    - Dst: save
      Src: /src/nss/cmd/pk11util/pk11util.c:2035,1
    - Dst: restore
      Src: /src/nss/cmd/pk11util/pk11util.c:2037,1
    - Dst: DeleteVariable
      Src: /src/nss/cmd/pk11util/pk11util.c:2039,1
    - Dst: increment
      Src: /src/nss/cmd/pk11util/pk11util.c:2041,1
    - Dst: decrement
      Src: /src/nss/cmd/pk11util/pk11util.c:2043,1
    - Dst: list
      Src: /src/nss/cmd/pk11util/pk11util.c:2045,1
    - Dst: run
      Src: /src/nss/cmd/pk11util/pk11util.c:2047,1
    - Dst: timeCommand
      Src: /src/nss/cmd/pk11util/pk11util.c:2049,1
    - Dst: loadModule
      Src: /src/nss/cmd/pk11util/pk11util.c:2051,1
    - Dst: unloadModule
      Src: /src/nss/cmd/pk11util/pk11util.c:2053,1
    - Dst: DeleteVariable
      Src: /src/nss/cmd/pk11util/pk11util.c:2055,1
    - Dst: ArrayVariable
      Src: /src/nss/cmd/pk11util/pk11util.c:2056,1
    - Dst: DeleteVariable
      Src: /src/nss/cmd/pk11util/pk11util.c:2058,1
    - Dst: ArrayTemplate
      Src: /src/nss/cmd/pk11util/pk11util.c:2059,1
    - Dst: BuildTemplate
      Src: /src/nss/cmd/pk11util/pk11util.c:2061,1
    - Dst: SetTemplate
      Src: /src/nss/cmd/pk11util/pk11util.c:2063,1
    - Dst: DeleteVariable
      Src: /src/nss/cmd/pk11util/pk11util.c:2067,1
    - Dst: NewMechanism
      Src: /src/nss/cmd/pk11util/pk11util.c:2068,1
    - Dst: DeleteVariable
      Src: /src/nss/cmd/pk11util/pk11util.c:2070,1
    - Dst: NewInitializeArgs
      Src: /src/nss/cmd/pk11util/pk11util.c:2071,1
    - Dst: loop
      Src: /src/nss/cmd/pk11util/pk11util.c:2081,1
    - Dst: lookup
      Src: /src/nss/cmd/pk11util/pk11util.c:2085,1
    - Dst: printTopicHelp
      Src: /src/nss/cmd/pk11util/pk11util.c:2087,1
    - Dst: printHelp
      Src: /src/nss/cmd/pk11util/pk11util.c:2089,1
    - Dst: printGeneralHelp
      Src: /src/nss/cmd/pk11util/pk11util.c:2092,1
    - Dst: quitIfString
      Src: /src/nss/cmd/pk11util/pk11util.c:2094,1
    - Dst: quitIf
      Src: /src/nss/cmd/pk11util/pk11util.c:2096,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk11util/pk11util.c:2100,1
    CyclomaticComplexity: 73
    EdgeCount: 73
    ICount: 351
    argCount: 2
    argNames:
    - index
    - a
    argTypes:
    - int
    - Value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2106
      start: 1572
    functionDepth: 7
    functionLinenumber: 1572
    functionLinenumberEnd: 2106
    functionName: do_func
    functionSourceFile: /src/nss/cmd/pk11util/pk11util.c
    functionUses: 0
    functionsReached:
    - CK_FUNCTION_LIST*::C_GetSlotInfo
    - CK_FUNCTION_LIST*::C_GetAttributeValue
    - CK_FUNCTION_LIST*::C_DigestInit
    - CK_FUNCTION_LIST*::C_Logout
    - CK_FUNCTION_LIST*::C_SeedRandom
    - CK_FUNCTION_LIST*::C_EncryptFinal
    - CK_FUNCTION_LIST*::C_GetOperationState
    - CK_FUNCTION_LIST*::C_CancelFunction
    - printTopicHelp
    - fprintf
    - CK_FUNCTION_LIST*::C_SetOperationState
    - CK_FUNCTION_LIST*::C_SignUpdate
    - timeCommand
    - CK_FUNCTION_LIST*::C_WrapKey
    - CK_FUNCTION_LIST*::C_GenerateKeyPair
    - CK_FUNCTION_LIST*::C_FindObjects
    - CK_FUNCTION_LIST*::C_FindObjectsFinal
    - increment
    - CK_FUNCTION_LIST*::C_Sign
    - lookup
    - CK_FUNCTION_LIST*::C_WaitForSlotEvent
    - CK_FUNCTION_LIST*::C_CloseAllSessions
    - CK_FUNCTION_LIST*::C_GetFunctionList
    - CK_FUNCTION_LIST*::C_DestroyObject
    - CK_FUNCTION_LIST*::C_DigestKey
    - CK_FUNCTION_LIST*::C_DeriveKey
    - CK_FUNCTION_LIST*::C_DigestUpdate
    - CK_FUNCTION_LIST*::C_Finalize
    - CK_FUNCTION_LIST*::C_Decrypt
    - CK_FUNCTION_LIST*::C_SignFinal
    - CK_FUNCTION_LIST*::C_Verify
    - AddVariable
    - CK_FUNCTION_LIST*::C_GetTokenInfo
    - run
    - CK_FUNCTION_LIST*::C_Encrypt
    - CK_FUNCTION_LIST*::C_CopyObject
    - CK_FUNCTION_LIST*::C_GetFunctionStatus
    - CK_FUNCTION_LIST*::C_DecryptVerifyUpdate
    - CK_FUNCTION_LIST*::C_GenerateRandom
    - restore
    - CK_FUNCTION_LIST*::C_VerifyUpdate
    - CK_FUNCTION_LIST*::C_Login
    - CK_FUNCTION_LIST*::C_VerifyInit
    - CK_FUNCTION_LIST*::C_SignRecoverInit
    - CK_FUNCTION_LIST*::C_DigestEncryptUpdate
    - NewMechanism
    - printGeneralHelp
    - DeleteVariable
    - CK_FUNCTION_LIST*::C_SignInit
    - NewInitializeArgs
    - CK_FUNCTION_LIST*::C_CreateObject
    - CK_FUNCTION_LIST*::C_SignRecover
    - CK_FUNCTION_LIST*::C_DecryptDigestUpdate
    - CK_FUNCTION_LIST*::C_EncryptInit
    - quitIf
    - CK_FUNCTION_LIST*::C_DecryptInit
    - printHelp
    - save
    - printArg
    - CK_FUNCTION_LIST*::C_VerifyRecover
    - CK_FUNCTION_LIST*::C_InitToken
    - unloadModule
    - CK_FUNCTION_LIST*::C_SetAttributeValue
    - quitIfString
    - CK_FUNCTION_LIST*::C_InitPIN
    - CK_FUNCTION_LIST*::C_DecryptFinal
    - loop
    - CK_FUNCTION_LIST*::C_GetSessionInfo
    - ArrayVariable
    - CK_FUNCTION_LIST*::C_EncryptUpdate
    - CK_FUNCTION_LIST*::C_UnwrapKey
    - CK_FUNCTION_LIST*::C_DecryptUpdate
    - CK_FUNCTION_LIST*::C_GetMechanismInfo
    - CK_FUNCTION_LIST*::C_VerifyFinal
    - CK_FUNCTION_LIST*::C_CloseSession
    - decrement
    - CK_FUNCTION_LIST*::C_GetInfo
    - CK_FUNCTION_LIST*::C_FindObjectsInit
    - loadModule
    - list
    - CK_FUNCTION_LIST*::C_DigestFinal
    - CK_FUNCTION_LIST*::C_GetMechanismList
    - CK_FUNCTION_LIST*::C_SetPIN
    - CK_FUNCTION_LIST*::C_GetSlotList
    - CK_FUNCTION_LIST*::C_Initialize
    - SetTemplate
    - CK_FUNCTION_LIST*::C_SignEncryptUpdate
    - CK_FUNCTION_LIST*::C_Digest
    - CK_FUNCTION_LIST*::C_GetObjectSize
    - CK_FUNCTION_LIST*::C_OpenSession
    - CK_FUNCTION_LIST*::C_VerifyRecoverInit
    - CK_FUNCTION_LIST*::C_GenerateKey
    - ArrayTemplate
    - BuildTemplate
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV do_func(int index, Value **a)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strip
      Src: /src/nss/cmd/pk11util/pk11util.c:2116,1
    - Dst: lookup
      Src: /src/nss/cmd/pk11util/pk11util.c:2122,1
    - Dst: parseArgs
      Src: /src/nss/cmd/pk11util/pk11util.c:2128,1
    - Dst: do_func
      Src: /src/nss/cmd/pk11util/pk11util.c:2133,1
    - Dst: putOutput
      Src: /src/nss/cmd/pk11util/pk11util.c:2135,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:2137,1
    - Dst: printConst
      Src: /src/nss/cmd/pk11util/pk11util.c:2138,1
    - Dst: parseFree
      Src: /src/nss/cmd/pk11util/pk11util.c:2141,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - buf
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2143
      start: 2108
    functionDepth: 8
    functionLinenumber: 2108
    functionLinenumberEnd: 2143
    functionName: processCommand
    functionSourceFile: /src/nss/cmd/pk11util/pk11util.c
    functionUses: 0
    functionsReached:
    - parseFree
    - printConst
    - parseArgs
    - printf
    - lookup
    - strip
    - do_func
    - putOutput
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV processCommand(const char *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_IntervalNow
      Src: /src/nss/cmd/pk11util/pk11util.c:2149,1
    - Dst: processCommand
      Src: /src/nss/cmd/pk11util/pk11util.c:2153,1
    - Dst: PR_IntervalNow
      Src: /src/nss/cmd/pk11util/pk11util.c:2155,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:2157,1
    - Dst: PR_IntervalToMilliseconds
      Src: /src/nss/cmd/pk11util/pk11util.c:2158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - command
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2161
      start: 2145
    functionDepth: 9
    functionLinenumber: 2145
    functionLinenumberEnd: 2161
    functionName: timeCommand
    functionSourceFile: /src/nss/cmd/pk11util/pk11util.c
    functionUses: 1
    functionsReached:
    - PR_IntervalToMilliseconds
    - printf
    - PR_IntervalNow
    - processCommand
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV timeCommand(const char *command)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:2171,1
    - Dst: fflush
      Src: /src/nss/cmd/pk11util/pk11util.c:2172,1
    - Dst: fgets
      Src: /src/nss/cmd/pk11util/pk11util.c:2175,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:2178,1
    - Dst: processCommand
      Src: /src/nss/cmd/pk11util/pk11util.c:2179,1
    - Dst: printf
      Src: /src/nss/cmd/pk11util/pk11util.c:2186,1
    - Dst: fflush
      Src: /src/nss/cmd/pk11util/pk11util.c:2187,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - inFile
    - user
    argTypes:
    - FILE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2191
      start: 2163
    functionDepth: 9
    functionLinenumber: 2163
    functionLinenumberEnd: 2191
    functionName: process
    functionSourceFile: /src/nss/cmd/pk11util/pk11util.c
    functionUses: 0
    functionsReached:
    - fgets
    - printf
    - processCommand
    - fflush
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV process(FILE *inFile, int user)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/nss/cmd/pk11util/pk11util.c:2199,1
    - Dst: perror
      Src: /src/nss/cmd/pk11util/pk11util.c:2202,1
    - Dst: process
      Src: /src/nss/cmd/pk11util/pk11util.c:2206,1
    - Dst: fclose
      Src: /src/nss/cmd/pk11util/pk11util.c:2208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2210
      start: 2193
    functionDepth: 10
    functionLinenumber: 2193
    functionLinenumberEnd: 2210
    functionName: run
    functionSourceFile: /src/nss/cmd/pk11util/pk11util.c
    functionUses: 1
    functionsReached:
    - fopen
    - perror
    - process
    - fclose
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV run(const char *filename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NewValue
      Src: /src/nss/cmd/pk11util/pk11util.c:2221,1
    - Dst: DeleteVariable
      Src: /src/nss/cmd/pk11util/pk11util.c:2223,1
    - Dst: AddVariable
      Src: /src/nss/cmd/pk11util/pk11util.c:2224,1
    - Dst: run
      Src: /src/nss/cmd/pk11util/pk11util.c:2225,1
    - Dst: argFree
      Src: /src/nss/cmd/pk11util/pk11util.c:2226,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - filename
    - var
    - start
    - end
    - step
    argTypes:
    - char*
    - char*
    - CK_ULONG
    - CK_ULONG
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2232
      start: 2212
    functionDepth: 6
    functionLinenumber: 2212
    functionLinenumberEnd: 2232
    functionName: loop
    functionSourceFile: /src/nss/cmd/pk11util/pk11util.c
    functionUses: 1
    functionsReached:
    - argFree
    - AddVariable
    - DeleteVariable
    - run
    - NewValue
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV loop(const char *filename, const char *var,\n     CK_ULONG start,
      CK_ULONG end, CK_ULONG step)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: process
      Src: /src/nss/cmd/pk11util/pk11util.c:2238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2240
      start: 2234
    functionDepth: 10
    functionLinenumber: 2234
    functionLinenumberEnd: 2240
    functionName: main
    functionSourceFile: /src/nss/cmd/pk11util/pk11util.c
    functionUses: 2
    functionsReached:
    - process
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 121
    functionName: PR_FPUTS
    functionSourceFile: /src/nss/cmd/ssltap/ssltap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PR_FPUTS(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 123
    functionName: GET_SHORT
    functionSourceFile: /src/nss/cmd/ssltap/ssltap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_SHORT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: GET_24
    functionSourceFile: /src/nss/cmd/ssltap/ssltap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_24(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 130
    functionName: GET_32
    functionSourceFile: /src/nss/cmd/ssltap/ssltap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GET_32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:138,1
    - Dst: PR_ASSERT
      Src: /src/nss/cmd/ssltap/ssltap.c:139,1
    - Dst: exit
      Src: /src/nss/cmd/ssltap/ssltap.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - dblsize
    - collectedsize
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 141
    functionName: myhalt
    functionSourceFile: /src/nss/cmd/ssltap/ssltap.c
    functionUses: 0
    functionsReached:
    - PR_fprintf
    - exit
    - PR_ASSERT
    linkageType: ''
    returnType: void
    signature: void myhalt(int dblsize, int collectedsize)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - error
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 168
    functionName: get_error_text
    functionSourceFile: /src/nss/cmd/ssltap/ssltap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      get_error_text(int error)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: myhalt
      Src: /src/nss/cmd/ssltap/ssltap.c:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - dbl
    argTypes:
    - DataBufferList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 185
    functionName: check_integrity
    functionSourceFile: /src/nss/cmd/ssltap/ssltap.c
    functionUses: 0
    functionsReached:
    - myhalt
    linkageType: ''
    returnType: void
    signature: void check_integrity(DataBufferList *dbl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_ASSERT
      Src: /src/nss/cmd/ssltap/ssltap.c:194,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/ssltap/ssltap.c:200,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/ssltap/ssltap.c:201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - dbl
    argTypes:
    - DataBufferList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 205
    functionName: free_head
    functionSourceFile: /src/nss/cmd/ssltap/ssltap.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - PR_ASSERT
    linkageType: ''
    returnType: DataBuffer
    signature: 'DataBuffer *

      free_head(DataBufferList *dbl)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:214,1
    - Dst: exit
      Src: /src/nss/cmd/ssltap/ssltap.c:215,1
    - Dst: PR_MIN
      Src: /src/nss/cmd/ssltap/ssltap.c:221,1
    - Dst: memcpy
      Src: /src/nss/cmd/ssltap/ssltap.c:223,1
    - Dst: free_head
      Src: /src/nss/cmd/ssltap/ssltap.c:231,1
    - Dst: check_integrity
      Src: /src/nss/cmd/ssltap/ssltap.c:235,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - d
    - dbl
    - length
    argTypes:
    - unsigned char*
    - DataBufferList*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 207
    functionDepth: 3
    functionLinenumber: 207
    functionLinenumberEnd: 236
    functionName: read_stream_bytes
    functionSourceFile: /src/nss/cmd/ssltap/ssltap.c
    functionUses: 0
    functionsReached:
    - memcpy
    - free_head
    - PR_MIN
    - PR_fprintf
    - exit
    - check_integrity
    linkageType: ''
    returnType: void
    signature: void read_stream_bytes(unsigned char *d, DataBufferList *dbl, int length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_integrity
      Src: /src/nss/cmd/ssltap/ssltap.c:242,1
    - Dst: free_head
      Src: /src/nss/cmd/ssltap/ssltap.c:245,1
    - Dst: check_integrity
      Src: /src/nss/cmd/ssltap/ssltap.c:248,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/ssltap/ssltap.c:250,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - dbl
    argTypes:
    - DataBufferList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 238
    functionDepth: 3
    functionLinenumber: 238
    functionLinenumberEnd: 256
    functionName: flush_stream
    functionSourceFile: /src/nss/cmd/ssltap/ssltap.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - check_integrity
    - free_head
    linkageType: ''
    returnType: void
    signature: void flush_stream(DataBufferList *dbl)
  - BBCount: 157
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 157
    EdgeCount: 157
    ICount: 473
    argCount: 1
    argNames:
    - cs_int
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 762
    functionName: V2CipherString
    functionSourceFile: /src/nss/cmd/ssltap/ssltap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      V2CipherString(int cs_int)'
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - cm_int
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 764
    functionDepth: 0
    functionLinenumber: 764
    functionLinenumberEnd: 785
    functionName: CompressionMethodString
    functionSourceFile: /src/nss/cmd/ssltap/ssltap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      CompressionMethodString(int cm_int)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:828,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 1
    argNames:
    - ex_num
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 787
    functionDepth: 1
    functionLinenumber: 787
    functionLinenumberEnd: 834
    functionName: helloExtensionNameString
    functionSourceFile: /src/nss/cmd/ssltap/ssltap.c
    functionUses: 0
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: char
    signature: 'char *

      helloExtensionNameString(int ex_num)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cs_int
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 836
    functionDepth: 0
    functionLinenumber: 836
    functionLinenumberEnd: 840
    functionName: isNULLmac
    functionSourceFile: /src/nss/cmd/ssltap/ssltap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int isNULLmac(int cs_int)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 1
    argNames:
    - cs_int
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 842
    functionDepth: 0
    functionLinenumber: 842
    functionLinenumberEnd: 852
    functionName: isNULLcipher
    functionSourceFile: /src/nss/cmd/ssltap/ssltap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int isNULLcipher(int cs_int)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:857,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:859,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:861,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:863,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:865,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - thispacket
    - size
    - needed
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 854
    functionDepth: 1
    functionLinenumber: 854
    functionLinenumberEnd: 866
    functionName: partial_packet
    functionSourceFile: /src/nss/cmd/ssltap/ssltap.c
    functionUses: 0
    functionsReached:
    - PR_fprintf
    linkageType: ''
    returnType: void
    signature: void partial_packet(int thispacket, int size, int needed)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/nss/cmd/ssltap/ssltap.c:875,1
    - Dst: ctime
      Src: /src/nss/cmd/ssltap/ssltap.c:876,1
    - Dst: strchr
      Src: /src/nss/cmd/ssltap/ssltap.c:877,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 868
    functionDepth: 0
    functionLinenumber: 868
    functionLinenumberEnd: 881
    functionName: get_time_string
    functionSourceFile: /src/nss/cmd/ssltap/ssltap.c
    functionUses: 0
    functionsReached:
    - time
    - strchr
    - ctime
    linkageType: ''
    returnType: char
    signature: 'char *

      get_time_string(void)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:896,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:899,1
    - Dst: get_time_string
      Src: /src/nss/cmd/ssltap/ssltap.c:899,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:902,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:903,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:905,1
    - Dst: GET_SHORT
      Src: /src/nss/cmd/ssltap/ssltap.c:906,1
    - Dst: GET_SHORT
      Src: /src/nss/cmd/ssltap/ssltap.c:907,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:908,1
    - Dst: GET_SHORT
      Src: /src/nss/cmd/ssltap/ssltap.c:909,1
    - Dst: GET_SHORT
      Src: /src/nss/cmd/ssltap/ssltap.c:910,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:911,1
    - Dst: GET_SHORT
      Src: /src/nss/cmd/ssltap/ssltap.c:912,1
    - Dst: GET_SHORT
      Src: /src/nss/cmd/ssltap/ssltap.c:913,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:914,1
    - Dst: GET_SHORT
      Src: /src/nss/cmd/ssltap/ssltap.c:917,1
    - Dst: GET_24
      Src: /src/nss/cmd/ssltap/ssltap.c:918,1
    - Dst: V2CipherString
      Src: /src/nss/cmd/ssltap/ssltap.c:920,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:922,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:926,1
    - Dst: GET_SHORT
      Src: /src/nss/cmd/ssltap/ssltap.c:927,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:928,1
    - Dst: GET_SHORT
      Src: /src/nss/cmd/ssltap/ssltap.c:930,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:931,1
    - Dst: GET_SHORT
      Src: /src/nss/cmd/ssltap/ssltap.c:931,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:935,1
    - Dst: GET_SHORT
      Src: /src/nss/cmd/ssltap/ssltap.c:936,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:937,1
    - Dst: GET_SHORT
      Src: /src/nss/cmd/ssltap/ssltap.c:939,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:940,1
    - Dst: GET_SHORT
      Src: /src/nss/cmd/ssltap/ssltap.c:940,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:942,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:944,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:958,1
    - Dst: GET_24
      Src: /src/nss/cmd/ssltap/ssltap.c:960,1
    - Dst: V2CipherString
      Src: /src/nss/cmd/ssltap/ssltap.c:961,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:962,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:965,1
    - Dst: GET_SHORT
      Src: /src/nss/cmd/ssltap/ssltap.c:967,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:969,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:975,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:982,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:983,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:985,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:987,1
    - Dst: GET_SHORT
      Src: /src/nss/cmd/ssltap/ssltap.c:988,1
    - Dst: GET_SHORT
      Src: /src/nss/cmd/ssltap/ssltap.c:989,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:990,1
    - Dst: GET_SHORT
      Src: /src/nss/cmd/ssltap/ssltap.c:991,1
    - Dst: GET_SHORT
      Src: /src/nss/cmd/ssltap/ssltap.c:992,1
    - Dst: GET_SHORT
      Src: /src/nss/cmd/ssltap/ssltap.c:997,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1003,1
    - Dst: GET_SHORT
      Src: /src/nss/cmd/ssltap/ssltap.c:1004,1
    - Dst: GET_24
      Src: /src/nss/cmd/ssltap/ssltap.c:1006,1
    - Dst: V2CipherString
      Src: /src/nss/cmd/ssltap/ssltap.c:1008,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1009,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1010,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1013,1
    - Dst: GET_SHORT
      Src: /src/nss/cmd/ssltap/ssltap.c:1014,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1016,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1020,1
    - Dst: GET_SHORT
      Src: /src/nss/cmd/ssltap/ssltap.c:1020,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1022,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1025,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1035,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1040,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1045,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1050,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1055,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 115
    argCount: 3
    argNames:
    - s
    - recordBuf
    - recordLen
    argTypes:
    - DataBufferList*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 883
    functionDepth: 1
    functionLinenumber: 883
    functionLinenumberEnd: 1059
    functionName: print_sslv2
    functionSourceFile: /src/nss/cmd/ssltap/ssltap.c
    functionUses: 0
    functionsReached:
    - GET_SHORT
    - V2CipherString
    - PR_fprintf
    - GET_24
    - get_time_string
    linkageType: ''
    returnType: void
    signature: void print_sslv2(DataBufferList *s, unsigned char *recordBuf, unsigned
      int recordLen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GET_SHORT
      Src: /src/nss/cmd/ssltap/ssltap.c:1068,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1070,1
    - Dst: GET_SHORT
      Src: /src/nss/cmd/ssltap/ssltap.c:1074,1
    - Dst: GET_SHORT
      Src: /src/nss/cmd/ssltap/ssltap.c:1076,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1079,1
    - Dst: helloExtensionNameString
      Src: /src/nss/cmd/ssltap/ssltap.c:1081,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1083,1
    - Dst: print_hex
      Src: /src/nss/cmd/ssltap/ssltap.c:1084,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1085,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1087,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1092,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - hsdata
    - length
    - pos
    argTypes:
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1061
    functionDepth: 2
    functionLinenumber: 1061
    functionLinenumberEnd: 1095
    functionName: print_hello_extension
    functionSourceFile: /src/nss/cmd/ssltap/ssltap.c
    functionUses: 0
    functionsReached:
    - print_hex
    - PR_fprintf
    - helloExtensionNameString
    - GET_SHORT
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int print_hello_extension(unsigned char *hsdata,\n                      unsigned
      int length,\n                      unsigned int pos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECU_Indent
      Src: /src/nss/cmd/ssltap/ssltap.c:1113,1
    - Dst: fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1114,1
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/ssltap/ssltap.c:1124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - out_file
    - cert_id
    - level
    argTypes:
    - FILE*
    - CERTOCSPCertID*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1110
    functionDepth: 1
    functionLinenumber: 1110
    functionLinenumberEnd: 1127
    functionName: print_ocsp_cert_id
    functionSourceFile: /src/nss/cmd/ssltap/ssltap.c
    functionUses: 0
    functionsReached:
    - fprintf
    - SECU_PrintInteger
    - SECU_Indent
    linkageType: ''
    returnType: void
    signature: void print_ocsp_cert_id(FILE *out_file, CERTOCSPCertID *cert_id, int
      level)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/ssltap/ssltap.c:1133,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/ssltap/ssltap.c:1135,1
    - Dst: fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - out_file
    - version
    - level
    argTypes:
    - FILE*
    - SECItem*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1138
      start: 1129
    functionDepth: 1
    functionLinenumber: 1129
    functionLinenumberEnd: 1138
    functionName: print_ocsp_version
    functionSourceFile: /src/nss/cmd/ssltap/ssltap.c
    functionUses: 0
    functionsReached:
    - fprintf
    - SECU_PrintInteger
    - SECU_Indent
    linkageType: ''
    returnType: void
    signature: void print_ocsp_version(FILE *out_file, SECItem *version, int level)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SECU_Indent
      Src: /src/nss/cmd/ssltap/ssltap.c:1143,1
    - Dst: fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1144,1
    - Dst: fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1148,1
    - Dst: SECU_PrintName
      Src: /src/nss/cmd/ssltap/ssltap.c:1149,1
    - Dst: fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1153,1
    - Dst: SECU_PrintAsHex
      Src: /src/nss/cmd/ssltap/ssltap.c:1154,1
    - Dst: fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1158,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - out_file
    - responderID
    - level
    argTypes:
    - FILE*
    - ocspResponderID*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1161
      start: 1140
    functionDepth: 1
    functionLinenumber: 1140
    functionLinenumberEnd: 1161
    functionName: print_responder_id
    functionSourceFile: /src/nss/cmd/ssltap/ssltap.c
    functionUses: 0
    functionsReached:
    - fprintf
    - SECU_PrintAsHex
    - SECU_Indent
    - SECU_PrintName
    linkageType: ''
    returnType: void
    signature: void print_responder_id(FILE *out_file, ocspResponderID *responderID,
      int level)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECU_PrintExtensions
      Src: /src/nss/cmd/ssltap/ssltap.c:1168,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/ssltap/ssltap.c:1170,1
    - Dst: fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - out_file
    - extensions
    - msg
    - level
    argTypes:
    - FILE*
    - CERTCertExtension**
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1173
      start: 1163
    functionDepth: 1
    functionLinenumber: 1163
    functionLinenumberEnd: 1173
    functionName: print_ocsp_extensions
    functionSourceFile: /src/nss/cmd/ssltap/ssltap.c
    functionUses: 0
    functionsReached:
    - fprintf
    - SECU_Indent
    - SECU_PrintExtensions
    linkageType: ''
    returnType: void
    signature: "void print_ocsp_extensions(FILE *out_file, CERTCertExtension **extensions,\n
      \                     char *msg, int level)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECU_PrintGeneralizedTime
      Src: /src/nss/cmd/ssltap/ssltap.c:1178,1
    - Dst: SECU_PrintAsHex
      Src: /src/nss/cmd/ssltap/ssltap.c:1182,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/ssltap/ssltap.c:1185,1
    - Dst: fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - out_file
    - revoked_info
    - level
    argTypes:
    - FILE*
    - ocspRevokedInfo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1188
      start: 1175
    functionDepth: 1
    functionLinenumber: 1175
    functionLinenumberEnd: 1188
    functionName: print_revoked_info
    functionSourceFile: /src/nss/cmd/ssltap/ssltap.c
    functionUses: 0
    functionsReached:
    - fprintf
    - SECU_PrintGeneralizedTime
    - SECU_Indent
    - SECU_PrintAsHex
    linkageType: ''
    returnType: void
    signature: void print_revoked_info(FILE *out_file, ocspRevokedInfo *revoked_info,
      int level)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SECU_Indent
      Src: /src/nss/cmd/ssltap/ssltap.c:1193,1
    - Dst: fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1194,1
    - Dst: fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1198,1
    - Dst: fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1201,1
    - Dst: print_revoked_info
      Src: /src/nss/cmd/ssltap/ssltap.c:1202,1
    - Dst: fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1206,1
    - Dst: fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1209,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - out_file
    - status
    - level
    argTypes:
    - FILE*
    - ocspCertStatus*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1212
      start: 1190
    functionDepth: 1
    functionLinenumber: 1190
    functionLinenumberEnd: 1212
    functionName: print_cert_status
    functionSourceFile: /src/nss/cmd/ssltap/ssltap.c
    functionUses: 0
    functionsReached:
    - fprintf
    - SECU_Indent
    - print_revoked_info
    linkageType: ''
    returnType: void
    signature: void print_cert_status(FILE *out_file, ocspCertStatus *status, int
      level)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: print_ocsp_cert_id
      Src: /src/nss/cmd/ssltap/ssltap.c:1218,1
    - Dst: print_cert_status
      Src: /src/nss/cmd/ssltap/ssltap.c:1220,1
    - Dst: SECU_PrintGeneralizedTime
      Src: /src/nss/cmd/ssltap/ssltap.c:1222,1
    - Dst: SECU_PrintGeneralizedTime
      Src: /src/nss/cmd/ssltap/ssltap.c:1226,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/ssltap/ssltap.c:1229,1
    - Dst: fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1230,1
    - Dst: print_ocsp_extensions
      Src: /src/nss/cmd/ssltap/ssltap.c:1233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - out_file
    - single
    - level
    argTypes:
    - FILE*
    - CERTOCSPSingleResponse*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1235
      start: 1214
    functionDepth: 1
    functionLinenumber: 1214
    functionLinenumberEnd: 1235
    functionName: print_single_response
    functionSourceFile: /src/nss/cmd/ssltap/ssltap.c
    functionUses: 0
    functionsReached:
    - print_ocsp_extensions
    - fprintf
    - print_ocsp_cert_id
    - print_cert_status
    - SECU_Indent
    - SECU_PrintGeneralizedTime
    linkageType: ''
    returnType: void
    signature: "void print_single_response(FILE *out_file, CERTOCSPSingleResponse
      *single,\n                      int level)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECU_Indent
      Src: /src/nss/cmd/ssltap/ssltap.c:1240,1
    - Dst: fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1241,1
    - Dst: print_ocsp_version
      Src: /src/nss/cmd/ssltap/ssltap.c:1244,1
    - Dst: print_responder_id
      Src: /src/nss/cmd/ssltap/ssltap.c:1246,1
    - Dst: SECU_PrintGeneralizedTime
      Src: /src/nss/cmd/ssltap/ssltap.c:1248,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/ssltap/ssltap.c:1255,1
    - Dst: fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1256,1
    - Dst: print_single_response
      Src: /src/nss/cmd/ssltap/ssltap.c:1257,1
    - Dst: fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1261,1
    - Dst: print_ocsp_extensions
      Src: /src/nss/cmd/ssltap/ssltap.c:1264,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - out_file
    - responseData
    - level
    argTypes:
    - FILE*
    - ocspResponseData*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1266
      start: 1237
    functionDepth: 1
    functionLinenumber: 1237
    functionLinenumberEnd: 1266
    functionName: print_response_data
    functionSourceFile: /src/nss/cmd/ssltap/ssltap.c
    functionUses: 0
    functionsReached:
    - print_ocsp_extensions
    - fprintf
    - print_ocsp_version
    - print_responder_id
    - print_single_response
    - SECU_Indent
    - SECU_PrintGeneralizedTime
    linkageType: ''
    returnType: void
    signature: void print_response_data(FILE *out_file, ocspResponseData *responseData,
      int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECU_Indent
      Src: /src/nss/cmd/ssltap/ssltap.c:1271,1
    - Dst: fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1272,1
    - Dst: print_response_data
      Src: /src/nss/cmd/ssltap/ssltap.c:1275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - out_file
    - basic
    - level
    argTypes:
    - FILE*
    - ocspBasicOCSPResponse*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1276
      start: 1268
    functionDepth: 1
    functionLinenumber: 1268
    functionLinenumberEnd: 1276
    functionName: print_basic_response
    functionSourceFile: /src/nss/cmd/ssltap/ssltap.c
    functionUses: 0
    functionsReached:
    - fprintf
    - print_response_data
    - SECU_Indent
    linkageType: ''
    returnType: void
    signature: void print_basic_response(FILE *out_file, ocspBasicOCSPResponse *basic,
      int level)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CERT_DecodeOCSPResponse
      Src: /src/nss/cmd/ssltap/ssltap.c:1283,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/ssltap/ssltap.c:1285,1
    - Dst: fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1286,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/ssltap/ssltap.c:1290,1
    - Dst: fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1293,1
    - Dst: fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1296,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/ssltap/ssltap.c:1303,1
    - Dst: SECU_PrintObjectID
      Src: /src/nss/cmd/ssltap/ssltap.c:1306,1
    - Dst: print_basic_response
      Src: /src/nss/cmd/ssltap/ssltap.c:1310,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/ssltap/ssltap.c:1315,1
    - Dst: fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1316,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/ssltap/ssltap.c:1320,1
    - Dst: fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1321,1
    - Dst: CERT_DestroyOCSPResponse
      Src: /src/nss/cmd/ssltap/ssltap.c:1324,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 1
    argNames:
    - data
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1325
      start: 1278
    functionDepth: 1
    functionLinenumber: 1278
    functionLinenumberEnd: 1325
    functionName: print_status_response
    functionSourceFile: /src/nss/cmd/ssltap/ssltap.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - CERT_DecodeOCSPResponse
    - CERT_DestroyOCSPResponse
    - fprintf
    - SECU_PrintObjectID
    - SECU_Indent
    - print_basic_response
    linkageType: ''
    returnType: void
    signature: void print_status_response(SECItem *data)
  - BBCount: 59
    BranchProfiles: []
    Callsites:
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1342,1
    - Dst: PORT_Realloc
      Src: /src/nss/cmd/ssltap/ssltap.c:1348,1
    - Dst: PR_ASSERT
      Src: /src/nss/cmd/ssltap/ssltap.c:1350,1
    - Dst: showErr
      Src: /src/nss/cmd/ssltap/ssltap.c:1351,1
    - Dst: exit
      Src: /src/nss/cmd/ssltap/ssltap.c:1352,1
    - Dst: memcpy
      Src: /src/nss/cmd/ssltap/ssltap.c:1357,1
    - Dst: GET_24
      Src: /src/nss/cmd/ssltap/ssltap.c:1364,1
    - Dst: print_hex
      Src: /src/nss/cmd/ssltap/ssltap.c:1369,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1373,1
    - Dst: PR_FPUTS
      Src: /src/nss/cmd/ssltap/ssltap.c:1376,1
    - Dst: PR_FPUTS
      Src: /src/nss/cmd/ssltap/ssltap.c:1379,1
    - Dst: PR_FPUTS
      Src: /src/nss/cmd/ssltap/ssltap.c:1382,1
    - Dst: PR_FPUTS
      Src: /src/nss/cmd/ssltap/ssltap.c:1385,1
    - Dst: PR_FPUTS
      Src: /src/nss/cmd/ssltap/ssltap.c:1388,1
    - Dst: PR_FPUTS
      Src: /src/nss/cmd/ssltap/ssltap.c:1391,1
    - Dst: PR_FPUTS
      Src: /src/nss/cmd/ssltap/ssltap.c:1394,1
    - Dst: PR_FPUTS
      Src: /src/nss/cmd/ssltap/ssltap.c:1397,1
    - Dst: PR_FPUTS
      Src: /src/nss/cmd/ssltap/ssltap.c:1400,1
    - Dst: PR_FPUTS
      Src: /src/nss/cmd/ssltap/ssltap.c:1403,1
    - Dst: PR_FPUTS
      Src: /src/nss/cmd/ssltap/ssltap.c:1406,1
    - Dst: PR_FPUTS
      Src: /src/nss/cmd/ssltap/ssltap.c:1409,1
    - Dst: PR_FPUTS
      Src: /src/nss/cmd/ssltap/ssltap.c:1412,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1416,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1429,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1430,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1432,1
    - Dst: print_hex
      Src: /src/nss/cmd/ssltap/ssltap.c:1434,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1440,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1441,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1442,1
    - Dst: print_hex
      Src: /src/nss/cmd/ssltap/ssltap.c:1444,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1445,1
    - Dst: GET_SHORT
      Src: /src/nss/cmd/ssltap/ssltap.c:1456,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1457,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1462,1
    - Dst: GET_SHORT
      Src: /src/nss/cmd/ssltap/ssltap.c:1471,1
    - Dst: V2CipherString
      Src: /src/nss/cmd/ssltap/ssltap.c:1473,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1474,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1480,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1487,1
    - Dst: CompressionMethodString
      Src: /src/nss/cmd/ssltap/ssltap.c:1497,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1498,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1504,1
    - Dst: print_hello_extension
      Src: /src/nss/cmd/ssltap/ssltap.c:1509,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1511,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1515,1
    - Dst: print_hex
      Src: /src/nss/cmd/ssltap/ssltap.c:1518,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1527,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1529,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1531,1
    - Dst: print_hex
      Src: /src/nss/cmd/ssltap/ssltap.c:1533,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1534,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1537,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1538,1
    - Dst: print_hex
      Src: /src/nss/cmd/ssltap/ssltap.c:1540,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1541,1
    - Dst: GET_SHORT
      Src: /src/nss/cmd/ssltap/ssltap.c:1548,1
    - Dst: V2CipherString
      Src: /src/nss/cmd/ssltap/ssltap.c:1550,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1551,1
    - Dst: CompressionMethodString
      Src: /src/nss/cmd/ssltap/ssltap.c:1562,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1563,1
    - Dst: print_hello_extension
      Src: /src/nss/cmd/ssltap/ssltap.c:1568,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1570,1
    - Dst: GET_32
      Src: /src/nss/cmd/ssltap/ssltap.c:1578,1
    - Dst: PR_ExplodeTime
      Src: /src/nss/cmd/ssltap/ssltap.c:1585,1
    - Dst: PR_FormatTimeUSEnglish
      Src: /src/nss/cmd/ssltap/ssltap.c:1587,1
    - Dst: strcpy
      Src: /src/nss/cmd/ssltap/ssltap.c:1591,1
    - Dst: GET_SHORT
      Src: /src/nss/cmd/ssltap/ssltap.c:1593,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1595,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1596,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1598,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1599,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1600,1
    - Dst: print_hex
      Src: /src/nss/cmd/ssltap/ssltap.c:1602,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1603,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1604,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1617,1
    - Dst: GET_24
      Src: /src/nss/cmd/ssltap/ssltap.c:1618,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1619,1
    - Dst: GET_24
      Src: /src/nss/cmd/ssltap/ssltap.c:1624,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1627,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1628,1
    - Dst: PR_snprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1634,1
    - Dst: PR_Open
      Src: /src/nss/cmd/ssltap/ssltap.c:1637,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1640,1
    - Dst: PR_Write
      Src: /src/nss/cmd/ssltap/ssltap.c:1644,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1646,1
    - Dst: PR_Close
      Src: /src/nss/cmd/ssltap/ssltap.c:1649,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1653,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1656,1
    - Dst: print_hex
      Src: /src/nss/cmd/ssltap/ssltap.c:1661,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1669,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1673,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1678,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1681,1
    - Dst: GET_SHORT
      Src: /src/nss/cmd/ssltap/ssltap.c:1686,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1688,1
    - Dst: GET_SHORT
      Src: /src/nss/cmd/ssltap/ssltap.c:1696,1
    - Dst: CERT_DerNameToAscii
      Src: /src/nss/cmd/ssltap/ssltap.c:1708,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1710,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/ssltap/ssltap.c:1711,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1713,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1718,1
    - Dst: print_hex
      Src: /src/nss/cmd/ssltap/ssltap.c:1719,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1720,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1722,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1730,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1733,1
    - Dst: print_hex
      Src: /src/nss/cmd/ssltap/ssltap.c:1741,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1746,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1747,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1748,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1752,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1753,1
    - Dst: print_hex
      Src: /src/nss/cmd/ssltap/ssltap.c:1755,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1756,1
    - Dst: isNULLmac
      Src: /src/nss/cmd/ssltap/ssltap.c:1758,1
    - Dst: print_status_response
      Src: /src/nss/cmd/ssltap/ssltap.c:1788,1
    - Dst: PR_snprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1790,1
    - Dst: PR_Open
      Src: /src/nss/cmd/ssltap/ssltap.c:1792,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1795,1
    - Dst: PR_Write
      Src: /src/nss/cmd/ssltap/ssltap.c:1799,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1800,1
    - Dst: PR_Close
      Src: /src/nss/cmd/ssltap/ssltap.c:1803,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1808,1
    - Dst: print_hex
      Src: /src/nss/cmd/ssltap/ssltap.c:1811,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1812,1
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/ssltap/ssltap.c:1820,1
    - Dst: PR_ASSERT
      Src: /src/nss/cmd/ssltap/ssltap.c:1822,1
    - Dst: showErr
      Src: /src/nss/cmd/ssltap/ssltap.c:1823,1
    - Dst: exit
      Src: /src/nss/cmd/ssltap/ssltap.c:1824,1
    - Dst: memcpy
      Src: /src/nss/cmd/ssltap/ssltap.c:1827,1
    - Dst: PORT_Realloc
      Src: /src/nss/cmd/ssltap/ssltap.c:1829,1
    - Dst: PR_ASSERT
      Src: /src/nss/cmd/ssltap/ssltap.c:1831,1
    - Dst: showErr
      Src: /src/nss/cmd/ssltap/ssltap.c:1832,1
    - Dst: exit
      Src: /src/nss/cmd/ssltap/ssltap.c:1833,1
    - Dst: memmove
      Src: /src/nss/cmd/ssltap/ssltap.c:1838,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1841,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1845,1
    CyclomaticComplexity: 72
    EdgeCount: 72
    ICount: 308
    argCount: 4
    argNames:
    - recordBuf
    - recordLen
    - sr
    - s
    argTypes:
    - unsigned char*
    - unsigned int
    - SSLRecord*
    - DataBufferList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1846
      start: 1332
    functionDepth: 3
    functionLinenumber: 1332
    functionLinenumberEnd: 1846
    functionName: print_ssl3_handshake
    functionSourceFile: /src/nss/cmd/ssltap/ssltap.c
    functionUses: 0
    functionsReached:
    - GET_SHORT
    - GET_32
    - PORT_Realloc
    - print_hex
    - PR_snprintf
    - memcpy
    - V2CipherString
    - strcpy
    - showErr
    - isNULLmac
    - exit
    - PR_ExplodeTime
    - PR_Open
    - print_status_response
    - CERT_DerNameToAscii
    - PR_Close
    - PR_FPUTS
    - PR_FormatTimeUSEnglish
    - memmove
    - GET_24
    - PORT_Alloc
    - CompressionMethodString
    - PORT_Free
    - PR_fprintf
    - PR_ASSERT
    - print_hello_extension
    - PR_Write
    linkageType: ''
    returnType: void
    signature: "void print_ssl3_handshake(unsigned char *recordBuf,\n                     unsigned
      int recordLen,\n                     SSLRecord *sr,\n                     DataBufferList
      *s)"
  - BBCount: 63
    BranchProfiles: []
    Callsites:
    - Dst: PR_Write
      Src: /src/nss/cmd/ssltap/ssltap.c:1858,1
    - Dst: check_integrity
      Src: /src/nss/cmd/ssltap/ssltap.c:1862,1
    - Dst: PR_NEW
      Src: /src/nss/cmd/ssltap/ssltap.c:1864,1
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/ssltap/ssltap.c:1870,1
    - Dst: memcpy
      Src: /src/nss/cmd/ssltap/ssltap.c:1873,1
    - Dst: check_integrity
      Src: /src/nss/cmd/ssltap/ssltap.c:1885,1
    - Dst: check_integrity
      Src: /src/nss/cmd/ssltap/ssltap.c:1898,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1901,1
    - Dst: exit
      Src: /src/nss/cmd/ssltap/ssltap.c:1902,1
    - Dst: partial_packet
      Src: /src/nss/cmd/ssltap/ssltap.c:1917,1
    - Dst: read_stream_bytes
      Src: /src/nss/cmd/ssltap/ssltap.c:1922,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:1925,1
    - Dst: PR_NEW
      Src: /src/nss/cmd/ssltap/ssltap.c:1928,1
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/ssltap/ssltap.c:1931,1
    - Dst: memcpy
      Src: /src/nss/cmd/ssltap/ssltap.c:1933,1
    - Dst: check_integrity
      Src: /src/nss/cmd/ssltap/ssltap.c:1943,1
    - Dst: partial_packet
      Src: /src/nss/cmd/ssltap/ssltap.c:1944,1
    - Dst: partial_packet
      Src: /src/nss/cmd/ssltap/ssltap.c:1947,1
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/ssltap/ssltap.c:1950,1
    - Dst: read_stream_bytes
      Src: /src/nss/cmd/ssltap/ssltap.c:1951,1
    - Dst: print_sslv2
      Src: /src/nss/cmd/ssltap/ssltap.c:1953,1
    - Dst: PR_FREEIF
      Src: /src/nss/cmd/ssltap/ssltap.c:1954,1
    - Dst: check_integrity
      Src: /src/nss/cmd/ssltap/ssltap.c:1955,1
    - Dst: check_integrity
      Src: /src/nss/cmd/ssltap/ssltap.c:1963,1
    - Dst: partial_packet
      Src: /src/nss/cmd/ssltap/ssltap.c:1966,1
    - Dst: read_stream_bytes
      Src: /src/nss/cmd/ssltap/ssltap.c:1970,1
    - Dst: GET_SHORT
      Src: /src/nss/cmd/ssltap/ssltap.c:1976,1
    - Dst: PR_NEW
      Src: /src/nss/cmd/ssltap/ssltap.c:1979,1
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/ssltap/ssltap.c:1982,1
    - Dst: memcpy
      Src: /src/nss/cmd/ssltap/ssltap.c:1984,1
    - Dst: check_integrity
      Src: /src/nss/cmd/ssltap/ssltap.c:1994,1
    - Dst: partial_packet
      Src: /src/nss/cmd/ssltap/ssltap.c:1995,1
    - Dst: partial_packet
      Src: /src/nss/cmd/ssltap/ssltap.c:1998,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:2000,1
    - Dst: get_time_string
      Src: /src/nss/cmd/ssltap/ssltap.c:2000,1
    - Dst: print_hex
      Src: /src/nss/cmd/ssltap/ssltap.c:2002,1
    - Dst: check_integrity
      Src: /src/nss/cmd/ssltap/ssltap.c:2005,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:2007,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:2010,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:2013,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:2016,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:2019,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:2022,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:2025,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:2027,1
    - Dst: GET_SHORT
      Src: /src/nss/cmd/ssltap/ssltap.c:2028,1
    - Dst: GET_SHORT
      Src: /src/nss/cmd/ssltap/ssltap.c:2028,1
    - Dst: PR_ASSERT
      Src: /src/nss/cmd/ssltap/ssltap.c:2031,1
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/ssltap/ssltap.c:2033,1
    - Dst: read_stream_bytes
      Src: /src/nss/cmd/ssltap/ssltap.c:2034,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:2037,1
    - Dst: print_hex
      Src: /src/nss/cmd/ssltap/ssltap.c:2043,1
    - Dst: isNULLcipher
      Src: /src/nss/cmd/ssltap/ssltap.c:2047,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:2053,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:2056,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:2059,1
    - Dst: PR_FPUTS
      Src: /src/nss/cmd/ssltap/ssltap.c:2065,1
    - Dst: PR_FPUTS
      Src: /src/nss/cmd/ssltap/ssltap.c:2068,1
    - Dst: PR_FPUTS
      Src: /src/nss/cmd/ssltap/ssltap.c:2071,1
    - Dst: PR_FPUTS
      Src: /src/nss/cmd/ssltap/ssltap.c:2074,1
    - Dst: PR_FPUTS
      Src: /src/nss/cmd/ssltap/ssltap.c:2077,1
    - Dst: PR_FPUTS
      Src: /src/nss/cmd/ssltap/ssltap.c:2080,1
    - Dst: PR_FPUTS
      Src: /src/nss/cmd/ssltap/ssltap.c:2083,1
    - Dst: PR_FPUTS
      Src: /src/nss/cmd/ssltap/ssltap.c:2086,1
    - Dst: PR_FPUTS
      Src: /src/nss/cmd/ssltap/ssltap.c:2089,1
    - Dst: PR_FPUTS
      Src: /src/nss/cmd/ssltap/ssltap.c:2092,1
    - Dst: PR_FPUTS
      Src: /src/nss/cmd/ssltap/ssltap.c:2095,1
    - Dst: PR_FPUTS
      Src: /src/nss/cmd/ssltap/ssltap.c:2098,1
    - Dst: PR_FPUTS
      Src: /src/nss/cmd/ssltap/ssltap.c:2101,1
    - Dst: PR_FPUTS
      Src: /src/nss/cmd/ssltap/ssltap.c:2104,1
    - Dst: PR_FPUTS
      Src: /src/nss/cmd/ssltap/ssltap.c:2107,1
    - Dst: PR_FPUTS
      Src: /src/nss/cmd/ssltap/ssltap.c:2110,1
    - Dst: PR_FPUTS
      Src: /src/nss/cmd/ssltap/ssltap.c:2113,1
    - Dst: PR_FPUTS
      Src: /src/nss/cmd/ssltap/ssltap.c:2116,1
    - Dst: PR_FPUTS
      Src: /src/nss/cmd/ssltap/ssltap.c:2119,1
    - Dst: PR_FPUTS
      Src: /src/nss/cmd/ssltap/ssltap.c:2122,1
    - Dst: PR_FPUTS
      Src: /src/nss/cmd/ssltap/ssltap.c:2125,1
    - Dst: PR_FPUTS
      Src: /src/nss/cmd/ssltap/ssltap.c:2128,1
    - Dst: PR_FPUTS
      Src: /src/nss/cmd/ssltap/ssltap.c:2131,1
    - Dst: PR_FPUTS
      Src: /src/nss/cmd/ssltap/ssltap.c:2134,1
    - Dst: PR_FPUTS
      Src: /src/nss/cmd/ssltap/ssltap.c:2137,1
    - Dst: PR_FPUTS
      Src: /src/nss/cmd/ssltap/ssltap.c:2140,1
    - Dst: PR_FPUTS
      Src: /src/nss/cmd/ssltap/ssltap.c:2143,1
    - Dst: PR_FPUTS
      Src: /src/nss/cmd/ssltap/ssltap.c:2146,1
    - Dst: PR_FPUTS
      Src: /src/nss/cmd/ssltap/ssltap.c:2149,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:2153,1
    - Dst: print_hex
      Src: /src/nss/cmd/ssltap/ssltap.c:2158,1
    - Dst: print_ssl3_handshake
      Src: /src/nss/cmd/ssltap/ssltap.c:2162,1
    - Dst: print_hex
      Src: /src/nss/cmd/ssltap/ssltap.c:2167,1
    - Dst: print_hex
      Src: /src/nss/cmd/ssltap/ssltap.c:2173,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:2179,1
    - Dst: print_hex
      Src: /src/nss/cmd/ssltap/ssltap.c:2183,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:2188,1
    - Dst: PR_FREEIF
      Src: /src/nss/cmd/ssltap/ssltap.c:2189,1
    - Dst: check_integrity
      Src: /src/nss/cmd/ssltap/ssltap.c:2190,1
    CyclomaticComplexity: 72
    EdgeCount: 72
    ICount: 250
    argCount: 3
    argNames:
    - s
    - length
    - buffer
    argTypes:
    - DataBufferList*
    - int
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2192
      start: 1848
    functionDepth: 4
    functionLinenumber: 1848
    functionLinenumberEnd: 2192
    functionName: print_ssl
    functionSourceFile: /src/nss/cmd/ssltap/ssltap.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - memcpy
    - read_stream_bytes
    - PR_FREEIF
    - get_time_string
    - GET_SHORT
    - PR_FPUTS
    - PR_fprintf
    - exit
    - PR_ASSERT
    - isNULLcipher
    - print_ssl3_handshake
    - PR_Write
    - print_hex
    - PR_NEW
    - check_integrity
    - partial_packet
    - print_sslv2
    linkageType: ''
    returnType: void
    signature: void print_ssl(DataBufferList *s, int length, unsigned char *buffer)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:2205,1
    - Dst: strcpy
      Src: /src/nss/cmd/ssltap/ssltap.c:2206,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:2210,1
    - Dst: strcpy
      Src: /src/nss/cmd/ssltap/ssltap.c:2220,1
    - Dst: strcpy
      Src: /src/nss/cmd/ssltap/ssltap.c:2223,1
    - Dst: strcpy
      Src: /src/nss/cmd/ssltap/ssltap.c:2226,1
    - Dst: strcat
      Src: /src/nss/cmd/ssltap/ssltap.c:2230,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:2232,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:2236,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:2247,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:2249,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:2251,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 2
    argNames:
    - amt
    - buf
    argTypes:
    - int
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2253
      start: 2194
    functionDepth: 1
    functionLinenumber: 2194
    functionLinenumberEnd: 2253
    functionName: print_hex
    functionSourceFile: /src/nss/cmd/ssltap/ssltap.c
    functionUses: 3
    functionsReached:
    - PR_fprintf
    - strcpy
    - strcat
    linkageType: ''
    returnType: void
    signature: void print_hex(int amt, unsigned char *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:2258,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:2259,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:2260,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:2261,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:2262,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:2263,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:2264,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:2265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2266
      start: 2255
    functionDepth: 1
    functionLinenumber: 2255
    functionLinenumberEnd: 2266
    functionName: Usage
    functionSourceFile: /src/nss/cmd/ssltap/ssltap.c
    functionUses: 11
    functionsReached:
    - PR_fprintf
    linkageType: ''
    returnType: void
    signature: void Usage(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetError
      Src: /src/nss/cmd/ssltap/ssltap.c:2271,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/ssltap/ssltap.c:2276,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:2280,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2281
      start: 2268
    functionDepth: 1
    functionLinenumber: 2268
    functionLinenumberEnd: 2281
    functionName: showErr
    functionSourceFile: /src/nss/cmd/ssltap/ssltap.c
    functionUses: 1
    functionsReached:
    - SECU_Strerror
    - PR_fprintf
    - PR_GetError
    linkageType: ''
    returnType: void
    signature: void showErr(const char *msg)
  - BBCount: 52
    BranchProfiles: []
    Callsites:
    - Dst: PL_CreateOptState
      Src: /src/nss/cmd/ssltap/ssltap.c:2299,1
    - Dst: PL_GetNextOpt
      Src: /src/nss/cmd/ssltap/ssltap.c:2300,1
    - Dst: atoi
      Src: /src/nss/cmd/ssltap/ssltap.c:2319,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/ssltap/ssltap.c:2323,1
    - Dst: Usage
      Src: /src/nss/cmd/ssltap/ssltap.c:2327,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:2331,1
    - Dst: Usage
      Src: /src/nss/cmd/ssltap/ssltap.c:2338,1
    - Dst: exit
      Src: /src/nss/cmd/ssltap/ssltap.c:2338,1
    - Dst: strchr
      Src: /src/nss/cmd/ssltap/ssltap.c:2341,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:2343,1
    - Dst: Usage
      Src: /src/nss/cmd/ssltap/ssltap.c:2345,1
    - Dst: exit
      Src: /src/nss/cmd/ssltap/ssltap.c:2345,1
    - Dst: atoi
      Src: /src/nss/cmd/ssltap/ssltap.c:2347,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:2351,1
    - Dst: exit
      Src: /src/nss/cmd/ssltap/ssltap.c:2352,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:2359,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:2360,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:2362,1
    - Dst: PR_GetAddrInfoByName
      Src: /src/nss/cmd/ssltap/ssltap.c:2363,1
    - Dst: showErr
      Src: /src/nss/cmd/ssltap/ssltap.c:2365,1
    - Dst: exit
      Src: /src/nss/cmd/ssltap/ssltap.c:2366,1
    - Dst: PR_EnumerateAddrInfo
      Src: /src/nss/cmd/ssltap/ssltap.c:2370,1
    - Dst: PR_InitializeNetAddr
      Src: /src/nss/cmd/ssltap/ssltap.c:2373,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:2375,1
    - Dst: PR_GetError
      Src: /src/nss/cmd/ssltap/ssltap.c:2376,1
    - Dst: exit
      Src: /src/nss/cmd/ssltap/ssltap.c:2377,1
    - Dst: NSS_NoDB_Init
      Src: /src/nss/cmd/ssltap/ssltap.c:2380,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:2382,1
    - Dst: PR_GetError
      Src: /src/nss/cmd/ssltap/ssltap.c:2383,1
    - Dst: exit
      Src: /src/nss/cmd/ssltap/ssltap.c:2384,1
    - Dst: PR_NewTCPSocket
      Src: /src/nss/cmd/ssltap/ssltap.c:2387,1
    - Dst: showErr
      Src: /src/nss/cmd/ssltap/ssltap.c:2389,1
    - Dst: exit
      Src: /src/nss/cmd/ssltap/ssltap.c:2390,1
    - Dst: PR_Bind
      Src: /src/nss/cmd/ssltap/ssltap.c:2393,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:2394,1
    - Dst: PR_GetError
      Src: /src/nss/cmd/ssltap/ssltap.c:2394,1
    - Dst: exit
      Src: /src/nss/cmd/ssltap/ssltap.c:2395,1
    - Dst: PR_Listen
      Src: /src/nss/cmd/ssltap/ssltap.c:2398,1
    - Dst: showErr
      Src: /src/nss/cmd/ssltap/ssltap.c:2399,1
    - Dst: exit
      Src: /src/nss/cmd/ssltap/ssltap.c:2400,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:2403,1
    - Dst: PR_Accept
      Src: /src/nss/cmd/ssltap/ssltap.c:2407,1
    - Dst: PR_SecondsToInterval
      Src: /src/nss/cmd/ssltap/ssltap.c:2407,1
    - Dst: showErr
      Src: /src/nss/cmd/ssltap/ssltap.c:2409,1
    - Dst: exit
      Src: /src/nss/cmd/ssltap/ssltap.c:2410,1
    - Dst: PR_OpenTCPSocket
      Src: /src/nss/cmd/ssltap/ssltap.c:2413,1
    - Dst: showErr
      Src: /src/nss/cmd/ssltap/ssltap.c:2415,1
    - Dst: exit
      Src: /src/nss/cmd/ssltap/ssltap.c:2416,1
    - Dst: PR_Connect
      Src: /src/nss/cmd/ssltap/ssltap.c:2419,1
    - Dst: PR_SecondsToInterval
      Src: /src/nss/cmd/ssltap/ssltap.c:2419,1
    - Dst: showErr
      Src: /src/nss/cmd/ssltap/ssltap.c:2422,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:2428,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:2429,1
    - Dst: get_time_string
      Src: /src/nss/cmd/ssltap/ssltap.c:2430,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:2432,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:2435,1
    - Dst: PR_Poll
      Src: /src/nss/cmd/ssltap/ssltap.c:2456,1
    - Dst: showErr
      Src: /src/nss/cmd/ssltap/ssltap.c:2459,1
    - Dst: showErr
      Src: /src/nss/cmd/ssltap/ssltap.c:2461,1
    - Dst: showErr
      Src: /src/nss/cmd/ssltap/ssltap.c:2466,1
    - Dst: showErr
      Src: /src/nss/cmd/ssltap/ssltap.c:2471,1
    - Dst: PR_Read
      Src: /src/nss/cmd/ssltap/ssltap.c:2480,1
    - Dst: showErr
      Src: /src/nss/cmd/ssltap/ssltap.c:2483,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:2488,1
    - Dst: get_time_string
      Src: /src/nss/cmd/ssltap/ssltap.c:2489,1
    - Dst: PR_Shutdown
      Src: /src/nss/cmd/ssltap/ssltap.c:2491,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:2495,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:2497,1
    - Dst: print_hex
      Src: /src/nss/cmd/ssltap/ssltap.c:2500,1
    - Dst: print_ssl
      Src: /src/nss/cmd/ssltap/ssltap.c:2502,1
    - Dst: PR_Write
      Src: /src/nss/cmd/ssltap/ssltap.c:2504,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:2506,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:2507,1
    - Dst: PR_Write
      Src: /src/nss/cmd/ssltap/ssltap.c:2509,1
    - Dst: showErr
      Src: /src/nss/cmd/ssltap/ssltap.c:2512,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:2515,1
    - Dst: PR_Read
      Src: /src/nss/cmd/ssltap/ssltap.c:2524,1
    - Dst: showErr
      Src: /src/nss/cmd/ssltap/ssltap.c:2527,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:2532,1
    - Dst: get_time_string
      Src: /src/nss/cmd/ssltap/ssltap.c:2533,1
    - Dst: PR_Shutdown
      Src: /src/nss/cmd/ssltap/ssltap.c:2535,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:2539,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:2541,1
    - Dst: print_hex
      Src: /src/nss/cmd/ssltap/ssltap.c:2543,1
    - Dst: print_ssl
      Src: /src/nss/cmd/ssltap/ssltap.c:2545,1
    - Dst: PR_Write
      Src: /src/nss/cmd/ssltap/ssltap.c:2547,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:2549,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:2550,1
    - Dst: PR_Write
      Src: /src/nss/cmd/ssltap/ssltap.c:2552,1
    - Dst: showErr
      Src: /src/nss/cmd/ssltap/ssltap.c:2555,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:2558,1
    - Dst: PR_Close
      Src: /src/nss/cmd/ssltap/ssltap.c:2567,1
    - Dst: PR_Close
      Src: /src/nss/cmd/ssltap/ssltap.c:2568,1
    - Dst: flush_stream
      Src: /src/nss/cmd/ssltap/ssltap.c:2569,1
    - Dst: flush_stream
      Src: /src/nss/cmd/ssltap/ssltap.c:2570,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ssltap/ssltap.c:2574,1
    - Dst: get_time_string
      Src: /src/nss/cmd/ssltap/ssltap.c:2575,1
    - Dst: PR_Close
      Src: /src/nss/cmd/ssltap/ssltap.c:2577,1
    - Dst: NSS_Shutdown
      Src: /src/nss/cmd/ssltap/ssltap.c:2578,1
    CyclomaticComplexity: 69
    EdgeCount: 69
    ICount: 212
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2582
      start: 2283
    functionDepth: 5
    functionLinenumber: 2283
    functionLinenumberEnd: 2582
    functionName: main
    functionSourceFile: /src/nss/cmd/ssltap/ssltap.c
    functionUses: 2
    functionsReached:
    - PR_Shutdown
    - PR_EnumerateAddrInfo
    - print_hex
    - Usage
    - PR_Accept
    - PR_GetAddrInfoByName
    - PR_Connect
    - strchr
    - PR_Read
    - PR_Poll
    - PL_CreateOptState
    - get_time_string
    - PR_NewTCPSocket
    - print_ssl
    - PR_SecondsToInterval
    - PR_Listen
    - showErr
    - PR_InitializeNetAddr
    - exit
    - PL_strdup
    - PR_Bind
    - PR_Close
    - NSS_NoDB_Init
    - PL_GetNextOpt
    - PR_OpenTCPSocket
    - PR_fprintf
    - atoi
    - flush_stream
    - NSS_Shutdown
    - PR_Write
    - PR_GetError
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fwrite
      Src: /src/nss/cmd/btoa/btoa.c:29,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/btoa/btoa.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - arg
    - obuf
    - size
    argTypes:
    - void*
    - char*
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 36
    functionName: output_ascii
    functionSourceFile: /src/nss/cmd/btoa/btoa.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - fwrite
    linkageType: ''
    returnType: PRInt32
    signature: PRInt32 output_ascii(void *arg, const char *obuf, PRInt32 size)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: NSSBase64Encoder_Create
      Src: /src/nss/cmd/btoa/btoa.c:46,1
    - Dst: feof
      Src: /src/nss/cmd/btoa/btoa.c:52,1
    - Dst: fread
      Src: /src/nss/cmd/btoa/btoa.c:54,1
    - Dst: ferror
      Src: /src/nss/cmd/btoa/btoa.c:57,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/btoa/btoa.c:58,1
    - Dst: NSSBase64Encoder_Update
      Src: /src/nss/cmd/btoa/btoa.c:66,1
    - Dst: NSSBase64Encoder_Destroy
      Src: /src/nss/cmd/btoa/btoa.c:71,1
    - Dst: fwrite
      Src: /src/nss/cmd/btoa/btoa.c:80,1
    - Dst: NSSBase64Encoder_Destroy
      Src: /src/nss/cmd/btoa/btoa.c:84,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 2
    argNames:
    - outFile
    - inFile
    argTypes:
    - FILE*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 86
    functionName: encode_file
    functionSourceFile: /src/nss/cmd/btoa/btoa.c
    functionUses: 0
    functionsReached:
    - NSSBase64Encoder_Create
    - NSSBase64Encoder_Destroy
    - ferror
    - feof
    - PORT_SetError
    - fwrite
    - NSSBase64Encoder_Update
    - fread
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus encode_file(FILE *outFile, FILE *inFile)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/btoa/btoa.c:91,1
    - Dst: fprintf
      Src: /src/nss/cmd/btoa/btoa.c:94,1
    - Dst: fprintf
      Src: /src/nss/cmd/btoa/btoa.c:96,1
    - Dst: fprintf
      Src: /src/nss/cmd/btoa/btoa.c:98,1
    - Dst: fprintf
      Src: /src/nss/cmd/btoa/btoa.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - progName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 102
    functionName: Usage
    functionSourceFile: /src/nss/cmd/btoa/btoa.c
    functionUses: 12
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void Usage(char *progName)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/nss/cmd/btoa/btoa.c:116,1
    - Dst: strrchr
      Src: /src/nss/cmd/btoa/btoa.c:118,1
    - Dst: PL_CreateOptState
      Src: /src/nss/cmd/btoa/btoa.c:122,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/btoa/btoa.c:123,1
    - Dst: PL_GetNextOpt
      Src: /src/nss/cmd/btoa/btoa.c:124,1
    - Dst: Usage
      Src: /src/nss/cmd/btoa/btoa.c:127,1
    - Dst: fopen
      Src: /src/nss/cmd/btoa/btoa.c:132,1
    - Dst: fprintf
      Src: /src/nss/cmd/btoa/btoa.c:134,1
    - Dst: fopen
      Src: /src/nss/cmd/btoa/btoa.c:141,1
    - Dst: fprintf
      Src: /src/nss/cmd/btoa/btoa.c:143,1
    - Dst: strcmp
      Src: /src/nss/cmd/btoa/btoa.c:150,1
    - Dst: strdup
      Src: /src/nss/cmd/btoa/btoa.c:151,1
    - Dst: strdup
      Src: /src/nss/cmd/btoa/btoa.c:153,1
    - Dst: Usage
      Src: /src/nss/cmd/btoa/btoa.c:158,1
    - Dst: _setmode
      Src: /src/nss/cmd/btoa/btoa.c:165,1
    - Dst: _fileno
      Src: /src/nss/cmd/btoa/btoa.c:165,1
    - Dst: fprintf
      Src: /src/nss/cmd/btoa/btoa.c:167,1
    - Dst: _setmode
      Src: /src/nss/cmd/btoa/btoa.c:182,1
    - Dst: _fileno
      Src: /src/nss/cmd/btoa/btoa.c:182,1
    - Dst: fprintf
      Src: /src/nss/cmd/btoa/btoa.c:184,1
    - Dst: fprintf
      Src: /src/nss/cmd/btoa/btoa.c:194,1
    - Dst: encode_file
      Src: /src/nss/cmd/btoa/btoa.c:196,1
    - Dst: fprintf
      Src: /src/nss/cmd/btoa/btoa.c:198,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/btoa/btoa.c:199,1
    - Dst: fprintf
      Src: /src/nss/cmd/btoa/btoa.c:203,1
    - Dst: PL_DestroyOptState
      Src: /src/nss/cmd/btoa/btoa.c:207,1
    - Dst: fclose
      Src: /src/nss/cmd/btoa/btoa.c:209,1
    - Dst: fclose
      Src: /src/nss/cmd/btoa/btoa.c:212,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/btoa/btoa.c:215,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 83
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 218
    functionName: main
    functionSourceFile: /src/nss/cmd/btoa/btoa.c
    functionUses: 2
    functionsReached:
    - strcmp
    - PORT_Assert
    - strdup
    - fclose
    - PL_GetNextOpt
    - _fileno
    - PORT_Free
    - encode_file
    - PORT_GetError
    - PL_DestroyOptState
    - fprintf
    - fopen
    - strrchr
    - Usage
    - PL_CreateOptState
    - _setmode
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/derdump/derdump.c:19,1
    - Dst: fprintf
      Src: /src/nss/cmd/derdump/derdump.c:22,1
    - Dst: fprintf
      Src: /src/nss/cmd/derdump/derdump.c:24,1
    - Dst: fprintf
      Src: /src/nss/cmd/derdump/derdump.c:26,1
    - Dst: exit
      Src: /src/nss/cmd/derdump/derdump.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - progName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 29
    functionName: Usage
    functionSourceFile: /src/nss/cmd/derdump/derdump.c
    functionUses: 13
    functionsReached:
    - fprintf
    - exit
    linkageType: ''
    returnType: void
    signature: void Usage(char *progName)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/nss/cmd/derdump/derdump.c:45,1
    - Dst: PL_CreateOptState
      Src: /src/nss/cmd/derdump/derdump.c:51,1
    - Dst: PL_GetNextOpt
      Src: /src/nss/cmd/derdump/derdump.c:52,1
    - Dst: PR_Open
      Src: /src/nss/cmd/derdump/derdump.c:55,1
    - Dst: fprintf
      Src: /src/nss/cmd/derdump/derdump.c:57,1
    - Dst: fopen
      Src: /src/nss/cmd/derdump/derdump.c:64,1
    - Dst: fprintf
      Src: /src/nss/cmd/derdump/derdump.c:66,1
    - Dst: Usage
      Src: /src/nss/cmd/derdump/derdump.c:77,1
    - Dst: Usage
      Src: /src/nss/cmd/derdump/derdump.c:82,1
    - Dst: NSS_NoDB_Init
      Src: /src/nss/cmd/derdump/derdump.c:89,1
    - Dst: SECU_PrintPRandOSError
      Src: /src/nss/cmd/derdump/derdump.c:91,1
    - Dst: SECU_ReadDERFromFile
      Src: /src/nss/cmd/derdump/derdump.c:95,1
    - Dst: DER_PrettyPrint
      Src: /src/nss/cmd/derdump/derdump.c:97,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/derdump/derdump.c:104,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/derdump/derdump.c:106,1
    - Dst: SECU_PrintSystemError
      Src: /src/nss/cmd/derdump/derdump.c:109,1
    - Dst: NSS_Shutdown
      Src: /src/nss/cmd/derdump/derdump.c:114,1
    - Dst: PR_Close
      Src: /src/nss/cmd/derdump/derdump.c:116,1
    - Dst: fflush
      Src: /src/nss/cmd/derdump/derdump.c:119,1
    - Dst: fclose
      Src: /src/nss/cmd/derdump/derdump.c:120,1
    - Dst: PL_DestroyOptState
      Src: /src/nss/cmd/derdump/derdump.c:122,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/derdump/derdump.c:124,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 76
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 128
    functionName: main
    functionSourceFile: /src/nss/cmd/derdump/derdump.c
    functionUses: 2
    functionsReached:
    - PL_DestroyOptState
    - fprintf
    - Usage
    - fopen
    - strrchr
    - PL_CreateOptState
    - fclose
    - SECU_PrintError
    - SECU_PrintPRandOSError
    - PR_Open
    - PR_Close
    - DER_PrettyPrint
    - NSS_NoDB_Init
    - SECU_ReadDERFromFile
    - PL_GetNextOpt
    - PORT_Free
    - PORT_GetError
    - NSS_Shutdown
    - SECU_PrintSystemError
    - fflush
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_fprintf
      Src: /src/nss/cmd/sdrtest/sdrtest.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - program_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 35
    functionName: synopsis
    functionSourceFile: /src/nss/cmd/sdrtest/sdrtest.c
    functionUses: 0
    functionsReached:
    - PR_fprintf
    linkageType: ''
    returnType: void
    signature: void synopsis(char *program_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_fprintf
      Src: /src/nss/cmd/sdrtest/sdrtest.c:40,1
    - Dst: synopsis
      Src: /src/nss/cmd/sdrtest/sdrtest.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - program_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 44
    functionName: short_usage
    functionSourceFile: /src/nss/cmd/sdrtest/sdrtest.c
    functionUses: 0
    functionsReached:
    - synopsis
    - PR_fprintf
    linkageType: ''
    returnType: void
    signature: void short_usage(char *program_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: synopsis
      Src: /src/nss/cmd/sdrtest/sdrtest.c:49,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/sdrtest/sdrtest.c:50,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/sdrtest/sdrtest.c:51,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/sdrtest/sdrtest.c:54,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/sdrtest/sdrtest.c:57,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/sdrtest/sdrtest.c:60,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/sdrtest/sdrtest.c:63,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/sdrtest/sdrtest.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - program_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 69
    functionName: long_usage
    functionSourceFile: /src/nss/cmd/sdrtest/sdrtest.c
    functionUses: 0
    functionsReached:
    - synopsis
    - PR_fprintf
    linkageType: ''
    returnType: void
    signature: void long_usage(char *program_name)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PR_Realloc
      Src: /src/nss/cmd/sdrtest/sdrtest.c:82,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/sdrtest/sdrtest.c:85,1
    - Dst: PR_Read
      Src: /src/nss/cmd/sdrtest/sdrtest.c:91,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - result
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 99
    functionName: readStdin
    functionSourceFile: /src/nss/cmd/sdrtest/sdrtest.c
    functionUses: 0
    functionsReached:
    - PR_Realloc
    - PR_fprintf
    - PR_Read
    linkageType: ''
    returnType: int
    signature: int readStdin(SECItem *result)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PR_Open
      Src: /src/nss/cmd/sdrtest/sdrtest.c:110,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/sdrtest/sdrtest.c:113,1
    - Dst: PR_GetOpenFileInfo
      Src: /src/nss/cmd/sdrtest/sdrtest.c:117,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/sdrtest/sdrtest.c:120,1
    - Dst: PR_Malloc
      Src: /src/nss/cmd/sdrtest/sdrtest.c:125,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/sdrtest/sdrtest.c:128,1
    - Dst: PR_Read
      Src: /src/nss/cmd/sdrtest/sdrtest.c:132,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/sdrtest/sdrtest.c:135,1
    - Dst: PR_Close
      Src: /src/nss/cmd/sdrtest/sdrtest.c:141,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 2
    argNames:
    - filename
    - result
    argTypes:
    - char*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 144
    functionName: readInputFile
    functionSourceFile: /src/nss/cmd/sdrtest/sdrtest.c
    functionUses: 0
    functionsReached:
    - PR_Malloc
    - PR_fprintf
    - PR_Read
    - PR_Open
    - PR_GetOpenFileInfo
    - PR_Close
    linkageType: ''
    returnType: int
    signature: int readInputFile(const char *filename, SECItem *result)
  - BBCount: 58
    BranchProfiles: []
    Callsites:
    - Dst: PL_strrchr
      Src: /src/nss/cmd/sdrtest/sdrtest.c:169,1
    - Dst: PL_CreateOptState
      Src: /src/nss/cmd/sdrtest/sdrtest.c:172,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/sdrtest/sdrtest.c:174,1
    - Dst: PL_GetNextOpt
      Src: /src/nss/cmd/sdrtest/sdrtest.c:178,1
    - Dst: short_usage
      Src: /src/nss/cmd/sdrtest/sdrtest.c:181,1
    - Dst: long_usage
      Src: /src/nss/cmd/sdrtest/sdrtest.c:185,1
    - Dst: SECU_ConfigDirectory
      Src: /src/nss/cmd/sdrtest/sdrtest.c:193,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/sdrtest/sdrtest.c:210,1
    - Dst: short_usage
      Src: /src/nss/cmd/sdrtest/sdrtest.c:211,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/sdrtest/sdrtest.c:215,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/sdrtest/sdrtest.c:220,1
    - Dst: short_usage
      Src: /src/nss/cmd/sdrtest/sdrtest.c:221,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/sdrtest/sdrtest.c:225,1
    - Dst: strcmp
      Src: /src/nss/cmd/sdrtest/sdrtest.c:233,1
    - Dst: strcmp
      Src: /src/nss/cmd/sdrtest/sdrtest.c:235,1
    - Dst: short_usage
      Src: /src/nss/cmd/sdrtest/sdrtest.c:236,1
    - Dst: PL_DestroyOptState
      Src: /src/nss/cmd/sdrtest/sdrtest.c:242,1
    - Dst: short_usage
      Src: /src/nss/cmd/sdrtest/sdrtest.c:244,1
    - Dst: short_usage
      Src: /src/nss/cmd/sdrtest/sdrtest.c:248,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/sdrtest/sdrtest.c:249,1
    - Dst: PK11_SetPasswordFunc
      Src: /src/nss/cmd/sdrtest/sdrtest.c:256,1
    - Dst: NSS_InitReadWrite
      Src: /src/nss/cmd/sdrtest/sdrtest.c:259,1
    - Dst: SECU_ConfigDirectory
      Src: /src/nss/cmd/sdrtest/sdrtest.c:259,1
    - Dst: NSS_Init
      Src: /src/nss/cmd/sdrtest/sdrtest.c:261,1
    - Dst: SECU_ConfigDirectory
      Src: /src/nss/cmd/sdrtest/sdrtest.c:261,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/sdrtest/sdrtest.c:264,1
    - Dst: strlen
      Src: /src/nss/cmd/sdrtest/sdrtest.c:271,1
    - Dst: printf
      Src: /src/nss/cmd/sdrtest/sdrtest.c:278,1
    - Dst: strcmp
      Src: /src/nss/cmd/sdrtest/sdrtest.c:280,1
    - Dst: readStdin
      Src: /src/nss/cmd/sdrtest/sdrtest.c:281,1
    - Dst: readInputFile
      Src: /src/nss/cmd/sdrtest/sdrtest.c:284,1
    - Dst: NSSBase64_DecodeBuffer
      Src: /src/nss/cmd/sdrtest/sdrtest.c:291,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/sdrtest/sdrtest.c:294,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/cmd/sdrtest/sdrtest.c:298,1
    - Dst: PK11_GetInternalKeySlot
      Src: /src/nss/cmd/sdrtest/sdrtest.c:307,1
    - Dst: PK11_NeedUserInit
      Src: /src/nss/cmd/sdrtest/sdrtest.c:308,1
    - Dst: SECU_ChangePW
      Src: /src/nss/cmd/sdrtest/sdrtest.c:311,1
    - Dst: SECU_ChangePW
      Src: /src/nss/cmd/sdrtest/sdrtest.c:314,1
    - Dst: SECU_ChangePW
      Src: /src/nss/cmd/sdrtest/sdrtest.c:317,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/sdrtest/sdrtest.c:321,1
    - Dst: PK11_GetSlotName
      Src: /src/nss/cmd/sdrtest/sdrtest.c:322,1
    - Dst: PK11SDR_EncryptWithMechanism
      Src: /src/nss/cmd/sdrtest/sdrtest.c:327,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/sdrtest/sdrtest.c:330,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/cmd/sdrtest/sdrtest.c:336,1
    - Dst: printf
      Src: /src/nss/cmd/sdrtest/sdrtest.c:340,1
    - Dst: strcmp
      Src: /src/nss/cmd/sdrtest/sdrtest.c:342,1
    - Dst: NSSBase64_EncodeItem
      Src: /src/nss/cmd/sdrtest/sdrtest.c:348,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/sdrtest/sdrtest.c:350,1
    - Dst: strlen
      Src: /src/nss/cmd/sdrtest/sdrtest.c:355,1
    - Dst: printf
      Src: /src/nss/cmd/sdrtest/sdrtest.c:357,1
    - Dst: printf
      Src: /src/nss/cmd/sdrtest/sdrtest.c:368,1
    - Dst: strcmp
      Src: /src/nss/cmd/sdrtest/sdrtest.c:369,1
    - Dst: PR_Open
      Src: /src/nss/cmd/sdrtest/sdrtest.c:373,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/sdrtest/sdrtest.c:377,1
    - Dst: PR_Write
      Src: /src/nss/cmd/sdrtest/sdrtest.c:384,1
    - Dst: puts
      Src: /src/nss/cmd/sdrtest/sdrtest.c:387,1
    - Dst: PR_Close
      Src: /src/nss/cmd/sdrtest/sdrtest.c:389,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/sdrtest/sdrtest.c:394,1
    - Dst: free
      Src: /src/nss/cmd/sdrtest/sdrtest.c:399,1
    - Dst: PK11SDR_Decrypt
      Src: /src/nss/cmd/sdrtest/sdrtest.c:405,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/sdrtest/sdrtest.c:408,1
    - Dst: printf
      Src: /src/nss/cmd/sdrtest/sdrtest.c:414,1
    - Dst: memcmp
      Src: /src/nss/cmd/sdrtest/sdrtest.c:417,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/sdrtest/sdrtest.c:419,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/cmd/sdrtest/sdrtest.c:426,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/cmd/sdrtest/sdrtest.c:428,1
    - Dst: NSS_Shutdown
      Src: /src/nss/cmd/sdrtest/sdrtest.c:429,1
    - Dst: exit
      Src: /src/nss/cmd/sdrtest/sdrtest.c:430,1
    - Dst: PR_Cleanup
      Src: /src/nss/cmd/sdrtest/sdrtest.c:434,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/sdrtest/sdrtest.c:436,1
    CyclomaticComplexity: 71
    EdgeCount: 71
    ICount: 228
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 439
    functionName: main
    functionSourceFile: /src/nss/cmd/sdrtest/sdrtest.c
    functionUses: 2
    functionsReached:
    - NSS_InitReadWrite
    - PK11_GetInternalKeySlot
    - NSSBase64_DecodeBuffer
    - PL_strrchr
    - NSS_Init
    - PK11SDR_EncryptWithMechanism
    - PK11_GetSlotName
    - PK11SDR_Decrypt
    - printf
    - PL_DestroyOptState
    - long_usage
    - short_usage
    - strlen
    - readInputFile
    - memcmp
    - PL_CreateOptState
    - SECU_ChangePW
    - PR_Cleanup
    - SECU_PrintError
    - PK11_NeedUserInit
    - NSSBase64_EncodeItem
    - exit
    - PR_Open
    - PR_Close
    - PK11_SetPasswordFunc
    - SECU_ConfigDirectory
    - SECITEM_ZfreeItem
    - PK11_FreeSlot
    - strcmp
    - free
    - PL_GetNextOpt
    - PORT_Free
    - PR_fprintf
    - readStdin
    - NSS_Shutdown
    - PR_Write
    - PORT_Strdup
    - puts
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/fbectest/fbectest.c:38,1
    - Dst: printf
      Src: /src/nss/cmd/fbectest/fbectest.c:43,1
    - Dst: printf
      Src: /src/nss/cmd/fbectest/fbectest.c:45,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - item
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 46
    functionName: printBuf
    functionSourceFile: /src/nss/cmd/fbectest/fbectest.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printBuf(const SECItem *item)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/fbectest/fbectest.c:55,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 3
    argNames:
    - ecParams
    - curve
    - arena
    argTypes:
    - ECParams*
    - ECCurveName
    - PLArenaPool**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 73
    functionName: init_params
    functionSourceFile: /src/nss/cmd/fbectest/fbectest.c
    functionUses: 0
    functionsReached:
    - PORT_NewArena
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus init_params(ECParams *ecParams, ECCurveName curve, PLArenaPool
      **arena)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/fbectest/fbectest.c:91,1
    - Dst: SECU_ecName2params
      Src: /src/nss/cmd/fbectest/fbectest.c:96,1
    - Dst: EC_FillParams
      Src: /src/nss/cmd/fbectest/fbectest.c:100,1
    - Dst: SECU_HexString2SECItem
      Src: /src/nss/cmd/fbectest/fbectest.c:103,1
    - Dst: SECU_HexString2SECItem
      Src: /src/nss/cmd/fbectest/fbectest.c:105,1
    - Dst: EC_NewKeyFromSeed
      Src: /src/nss/cmd/fbectest/fbectest.c:106,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/cmd/fbectest/fbectest.c:112,1
    - Dst: SECU_HexString2SECItem
      Src: /src/nss/cmd/fbectest/fbectest.c:118,1
    - Dst: SECU_HexString2SECItem
      Src: /src/nss/cmd/fbectest/fbectest.c:119,1
    - Dst: EC_ValidatePublicKey
      Src: /src/nss/cmd/fbectest/fbectest.c:121,1
    - Dst: printf
      Src: /src/nss/cmd/fbectest/fbectest.c:123,1
    - Dst: ECDH_Derive
      Src: /src/nss/cmd/fbectest/fbectest.c:128,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/cmd/fbectest/fbectest.c:133,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/cmd/fbectest/fbectest.c:137,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/fbectest/fbectest.c:141,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/cmd/fbectest/fbectest.c:144,1
    - Dst: printf
      Src: /src/nss/cmd/fbectest/fbectest.c:145,1
    - Dst: printBuf
      Src: /src/nss/cmd/fbectest/fbectest.c:146,1
    - Dst: printf
      Src: /src/nss/cmd/fbectest/fbectest.c:147,1
    - Dst: printBuf
      Src: /src/nss/cmd/fbectest/fbectest.c:148,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/fbectest/fbectest.c:154,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/fbectest/fbectest.c:155,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/fbectest/fbectest.c:157,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/fbectest/fbectest.c:160,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 75
    argCount: 1
    argNames:
    - kat
    argTypes:
    - ECDH_KAT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 163
    functionName: ectest_ecdh_kat
    functionSourceFile: /src/nss/cmd/fbectest/fbectest.c
    functionUses: 0
    functionsReached:
    - SECITEM_CompareItem
    - EC_ValidatePublicKey
    - SECU_HexString2SECItem
    - ECDH_Derive
    - PORT_NewArena
    - PORT_FreeArena
    - printf
    - SECITEM_CopyItem
    - EC_NewKeyFromSeed
    - EC_FillParams
    - printBuf
    - SECITEM_FreeItem
    - SECU_ecName2params
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ectest_ecdh_kat(ECDH_KAT *kat)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_params
      Src: /src/nss/cmd/fbectest/fbectest.c:173,1
    - Dst: SECU_HexString2SECItem
      Src: /src/nss/cmd/fbectest/fbectest.c:178,1
    - Dst: EC_ValidatePublicKey
      Src: /src/nss/cmd/fbectest/fbectest.c:179,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/fbectest/fbectest.c:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - bad
    argTypes:
    - ECDH_BAD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 183
    functionName: ectest_validate_point
    functionSourceFile: /src/nss/cmd/fbectest/fbectest.c
    functionUses: 0
    functionsReached:
    - PORT_FreeArena
    - EC_ValidatePublicKey
    - SECU_HexString2SECItem
    - init_params
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ectest_validate_point(ECDH_BAD *bad)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/fbectest/fbectest.c:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - prog
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 194
    functionName: printUsage
    functionSourceFile: /src/nss/cmd/fbectest/fbectest.c
    functionUses: 2
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printUsage(char *prog)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/fbectest/fbectest.c:209,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/fbectest/fbectest.c:211,1
    - Dst: printUsage
      Src: /src/nss/cmd/fbectest/fbectest.c:214,1
    - Dst: printUsage
      Src: /src/nss/cmd/fbectest/fbectest.c:219,1
    - Dst: SECOID_Init
      Src: /src/nss/cmd/fbectest/fbectest.c:223,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/fbectest/fbectest.c:225,1
    - Dst: printf
      Src: /src/nss/cmd/fbectest/fbectest.c:234,1
    - Dst: ectest_ecdh_kat
      Src: /src/nss/cmd/fbectest/fbectest.c:236,1
    - Dst: printf
      Src: /src/nss/cmd/fbectest/fbectest.c:237,1
    - Dst: printf
      Src: /src/nss/cmd/fbectest/fbectest.c:240,1
    - Dst: ectest_ecdh_kat
      Src: /src/nss/cmd/fbectest/fbectest.c:248,1
    - Dst: printf
      Src: /src/nss/cmd/fbectest/fbectest.c:249,1
    - Dst: printf
      Src: /src/nss/cmd/fbectest/fbectest.c:252,1
    - Dst: ectest_validate_point
      Src: /src/nss/cmd/fbectest/fbectest.c:256,1
    - Dst: printf
      Src: /src/nss/cmd/fbectest/fbectest.c:257,1
    - Dst: printf
      Src: /src/nss/cmd/fbectest/fbectest.c:260,1
    - Dst: SECOID_Shutdown
      Src: /src/nss/cmd/fbectest/fbectest.c:266,1
    - Dst: printf
      Src: /src/nss/cmd/fbectest/fbectest.c:269,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 61
    argCount: 2
    argNames:
    - argv
    - argc
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 199
    functionDepth: 2
    functionLinenumber: 199
    functionLinenumberEnd: 272
    functionName: main
    functionSourceFile: /src/nss/cmd/fbectest/fbectest.c
    functionUses: 2
    functionsReached:
    - ectest_ecdh_kat
    - SECU_PrintError
    - SECOID_Shutdown
    - PL_strcasecmp
    - printf
    - ectest_validate_point
    - SECOID_Init
    - printUsage
    linkageType: ''
    returnType: int
    signature: int main(int argv, char **argc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_smprintf
      Src: /src/nss/cmd/modutil/installparse.c:242,1
    - Dst: PR_smprintf_free
      Src: /src/nss/cmd/modutil/installparse.c:244,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/modutil/installparse.c:246,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - message
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 249
    functionName: Pk11Install_yyerror
    functionSourceFile: /src/nss/cmd/modutil/installparse.c
    functionUses: 0
    functionsReached:
    - PR_smprintf_free
    - PR_smprintf
    linkageType: ''
    returnType: void
    signature: void Pk11Install_yyerror(char *message)
  - BBCount: 44
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetEnvSecure
      Src: /src/nss/cmd/modutil/installparse.c:262,1
    - Dst: yylex
      Src: /src/nss/cmd/modutil/installparse.c:281,1
    - Dst: printf
      Src: /src/nss/cmd/modutil/installparse.c:290,1
    - Dst: printf
      Src: /src/nss/cmd/modutil/installparse.c:299,1
    - Dst: yyerror
      Src: /src/nss/cmd/modutil/installparse.c:323,1
    - Dst: printf
      Src: /src/nss/cmd/modutil/installparse.c:337,1
    - Dst: printf
      Src: /src/nss/cmd/modutil/installparse.c:350,1
    - Dst: printf
      Src: /src/nss/cmd/modutil/installparse.c:369,1
    - Dst: printf
      Src: /src/nss/cmd/modutil/installparse.c:379,1
    - Dst: Pk11Install_ValueList_AddItem
      Src: /src/nss/cmd/modutil/installparse.c:393,1
    - Dst: Pk11Install_ValueList_new
      Src: /src/nss/cmd/modutil/installparse.c:399,1
    - Dst: Pk11Install_Value_new
      Src: /src/nss/cmd/modutil/installparse.c:404,1
    - Dst: Pk11Install_Value_new
      Src: /src/nss/cmd/modutil/installparse.c:409,1
    - Dst: Pk11Install_Pair_new
      Src: /src/nss/cmd/modutil/installparse.c:414,1
    - Dst: printf
      Src: /src/nss/cmd/modutil/installparse.c:430,1
    - Dst: yylex
      Src: /src/nss/cmd/modutil/installparse.c:438,1
    - Dst: printf
      Src: /src/nss/cmd/modutil/installparse.c:447,1
    - Dst: printf
      Src: /src/nss/cmd/modutil/installparse.c:463,1
    - Dst: yyerror
      Src: /src/nss/cmd/modutil/installparse.c:474,1
    CyclomaticComplexity: 75
    EdgeCount: 75
    ICount: 192
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 479
    functionName: yyparse
    functionSourceFile: /src/nss/cmd/modutil/installparse.c
    functionUses: 0
    functionsReached:
    - Pk11Install_ValueList_AddItem
    - yylex
    - Pk11Install_Pair_new
    - printf
    - PR_GetEnvSecure
    - Pk11Install_Value_new
    - Pk11Install_ValueList_new
    - yyerror
    linkageType: ''
    returnType: int
    signature: int yyparse()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - j
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 151
    functionName: TRY_INC
    functionSourceFile: /src/nss/cmd/modutil/modutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRY_INC(i, j)
  - BBCount: 82
    BranchProfiles: []
    Callsites:
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:194,1
    - Dst: strcmp
      Src: /src/nss/cmd/modutil/modutil.c:200,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:209,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:214,1
    - Dst: TRY_INC
      Src: /src/nss/cmd/modutil/modutil.c:218,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:219,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:226,1
    - Dst: TRY_INC
      Src: /src/nss/cmd/modutil/modutil.c:230,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:231,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:238,1
    - Dst: TRY_INC
      Src: /src/nss/cmd/modutil/modutil.c:241,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:242,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:249,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:256,1
    - Dst: TRY_INC
      Src: /src/nss/cmd/modutil/modutil.c:259,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:260,1
    - Dst: TRY_INC
      Src: /src/nss/cmd/modutil/modutil.c:266,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:267,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:275,1
    - Dst: TRY_INC
      Src: /src/nss/cmd/modutil/modutil.c:283,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:284,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:291,1
    - Dst: TRY_INC
      Src: /src/nss/cmd/modutil/modutil.c:295,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:296,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:303,1
    - Dst: TRY_INC
      Src: /src/nss/cmd/modutil/modutil.c:307,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:308,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:315,1
    - Dst: TRY_INC
      Src: /src/nss/cmd/modutil/modutil.c:319,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:320,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:327,1
    - Dst: TRY_INC
      Src: /src/nss/cmd/modutil/modutil.c:331,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:332,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:339,1
    - Dst: TRY_INC
      Src: /src/nss/cmd/modutil/modutil.c:343,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:344,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:357,1
    - Dst: TRY_INC
      Src: /src/nss/cmd/modutil/modutil.c:360,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:361,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:368,1
    - Dst: TRY_INC
      Src: /src/nss/cmd/modutil/modutil.c:371,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:372,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:379,1
    - Dst: TRY_INC
      Src: /src/nss/cmd/modutil/modutil.c:383,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:384,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:391,1
    - Dst: TRY_INC
      Src: /src/nss/cmd/modutil/modutil.c:394,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:395,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:402,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:413,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:424,1
    - Dst: TRY_INC
      Src: /src/nss/cmd/modutil/modutil.c:428,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:429,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:436,1
    - Dst: TRY_INC
      Src: /src/nss/cmd/modutil/modutil.c:439,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:440,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:447,1
    - Dst: TRY_INC
      Src: /src/nss/cmd/modutil/modutil.c:450,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:451,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:458,1
    - Dst: TRY_INC
      Src: /src/nss/cmd/modutil/modutil.c:461,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:462,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:469,1
    - Dst: TRY_INC
      Src: /src/nss/cmd/modutil/modutil.c:472,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:473,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:480,1
    - Dst: TRY_INC
      Src: /src/nss/cmd/modutil/modutil.c:483,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:484,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:491,1
    - Dst: TRY_INC
      Src: /src/nss/cmd/modutil/modutil.c:494,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:495,1
    CyclomaticComplexity: 85
    EdgeCount: 85
    ICount: 307
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 503
    functionName: parse_args
    functionSourceFile: /src/nss/cmd/modutil/modutil.c
    functionUses: 0
    functionsReached:
    - strcmp
    - TRY_INC
    - PR_fprintf
    linkageType: ''
    returnType: Error
    signature: Error parse_args(int argc, char* argv[])
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:515,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/modutil/modutil.c:532,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/modutil/modutil.c:533,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:534,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:540,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:553,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 509
    functionDepth: 1
    functionLinenumber: 509
    functionLinenumberEnd: 564
    functionName: verify_params
    functionSourceFile: /src/nss/cmd/modutil/modutil.c
    functionUses: 0
    functionsReached:
    - PR_fprintf
    - PL_strcasecmp
    linkageType: ''
    returnType: Error
    signature: Error verify_params()
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: SECU_ConfigDirectory
      Src: /src/nss/cmd/modutil/modutil.c:588,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:590,1
    - Dst: strncmp
      Src: /src/nss/cmd/modutil/modutil.c:594,1
    - Dst: PR_Access
      Src: /src/nss/cmd/modutil/modutil.c:600,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:601,1
    - Dst: PR_Access
      Src: /src/nss/cmd/modutil/modutil.c:604,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:605,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/modutil/modutil.c:614,1
    - Dst: PR_Access
      Src: /src/nss/cmd/modutil/modutil.c:622,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:623,1
    - Dst: PR_Access
      Src: /src/nss/cmd/modutil/modutil.c:627,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:628,1
    - Dst: PR_Access
      Src: /src/nss/cmd/modutil/modutil.c:634,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:635,1
    - Dst: PR_Access
      Src: /src/nss/cmd/modutil/modutil.c:642,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:643,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:649,1
    - Dst: SECU_ConfigDirectory
      Src: /src/nss/cmd/modutil/modutil.c:650,1
    - Dst: PR_Free
      Src: /src/nss/cmd/modutil/modutil.c:656,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 66
    argCount: 2
    argNames:
    - create
    - readOnly
    argTypes:
    - PRBool
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 659
    functionName: check_crypto
    functionSourceFile: /src/nss/cmd/modutil/modutil.c
    functionUses: 0
    functionsReached:
    - strncmp
    - PR_fprintf
    - PR_Access
    - PR_Free
    - PR_smprintf
    - SECU_ConfigDirectory
    linkageType: ''
    returnType: Error
    signature: Error check_crypto(PRBool create, PRBool readOnly)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NSS_Initialize
      Src: /src/nss/cmd/modutil/modutil.c:674,1
    - Dst: SECU_ConfigDirectory
      Src: /src/nss/cmd/modutil/modutil.c:674,1
    - Dst: SECU_PrintPRandOSError
      Src: /src/nss/cmd/modutil/modutil.c:677,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - create
    - readOnly
    argTypes:
    - PRBool
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 661
    functionDepth: 1
    functionLinenumber: 661
    functionLinenumberEnd: 683
    functionName: init_crypto
    functionSourceFile: /src/nss/cmd/modutil/modutil.c
    functionUses: 0
    functionsReached:
    - NSS_Initialize
    - SECU_ConfigDirectory
    - SECU_PrintPRandOSError
    linkageType: ''
    returnType: Error
    signature: Error init_crypto(PRBool create, PRBool readOnly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 689
    functionDepth: 1
    functionLinenumber: 689
    functionLinenumberEnd: 755
    functionName: usage
    functionSourceFile: /src/nss/cmd/modutil/modutil.c
    functionUses: 2
    functionsReached:
    - PR_fprintf
    linkageType: ''
    returnType: void
    signature: void usage()
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/nss/cmd/modutil/modutil.c:769,1
    - Dst: PR_Init
      Src: /src/nss/cmd/modutil/modutil.c:772,1
    - Dst: parse_args
      Src: /src/nss/cmd/modutil/modutil.c:774,1
    - Dst: usage
      Src: /src/nss/cmd/modutil/modutil.c:775,1
    - Dst: verify_params
      Src: /src/nss/cmd/modutil/modutil.c:780,1
    - Dst: usage
      Src: /src/nss/cmd/modutil/modutil.c:781,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:787,1
    - Dst: usage
      Src: /src/nss/cmd/modutil/modutil.c:788,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:804,1
    - Dst: PR_fgets
      Src: /src/nss/cmd/modutil/modutil.c:805,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:806,1
    - Dst: strtok
      Src: /src/nss/cmd/modutil/modutil.c:810,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/modutil/modutil.c:811,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:812,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:817,1
    - Dst: check_crypto
      Src: /src/nss/cmd/modutil/modutil.c:820,1
    - Dst: SECU_ConfigDirectory
      Src: /src/nss/cmd/modutil/modutil.c:835,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/modutil/modutil.c:837,1
    - Dst: SECU_ConfigDirectory
      Src: /src/nss/cmd/modutil/modutil.c:841,1
    - Dst: RawListModule
      Src: /src/nss/cmd/modutil/modutil.c:845,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/modutil/modutil.c:847,1
    - Dst: RawAddModule
      Src: /src/nss/cmd/modutil/modutil.c:848,1
    - Dst: init_crypto
      Src: /src/nss/cmd/modutil/modutil.c:853,1
    - Dst: LoadMechanismList
      Src: /src/nss/cmd/modutil/modutil.c:858,1
    - Dst: IsP11KitEnabled
      Src: /src/nss/cmd/modutil/modutil.c:866,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:869,1
    - Dst: PR_fgets
      Src: /src/nss/cmd/modutil/modutil.c:870,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:871,1
    - Dst: strtok
      Src: /src/nss/cmd/modutil/modutil.c:875,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/modutil/modutil.c:876,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:877,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:882,1
    - Dst: AddModule
      Src: /src/nss/cmd/modutil/modutil.c:888,1
    - Dst: ChangePW
      Src: /src/nss/cmd/modutil/modutil.c:891,1
    - Dst: InitPW
      Src: /src/nss/cmd/modutil/modutil.c:894,1
    - Dst: SetDefaultModule
      Src: /src/nss/cmd/modutil/modutil.c:897,1
    - Dst: DeleteModule
      Src: /src/nss/cmd/modutil/modutil.c:900,1
    - Dst: EnableModule
      Src: /src/nss/cmd/modutil/modutil.c:903,1
    - Dst: EnableModule
      Src: /src/nss/cmd/modutil/modutil.c:906,1
    - Dst: FipsMode
      Src: /src/nss/cmd/modutil/modutil.c:909,1
    - Dst: ChkFipsMode
      Src: /src/nss/cmd/modutil/modutil.c:912,1
    - Dst: Pk11Install_SetErrorHandler
      Src: /src/nss/cmd/modutil/modutil.c:915,1
    - Dst: Pk11Install_DoInstall
      Src: /src/nss/cmd/modutil/modutil.c:916,1
    - Dst: ListModule
      Src: /src/nss/cmd/modutil/modutil.c:921,1
    - Dst: ListModules
      Src: /src/nss/cmd/modutil/modutil.c:923,1
    - Dst: UnsetDefaultModule
      Src: /src/nss/cmd/modutil/modutil.c:927,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:930,1
    - Dst: NSS_Shutdown
      Src: /src/nss/cmd/modutil/modutil.c:935,1
    - Dst: exit
      Src: /src/nss/cmd/modutil/modutil.c:936,1
    - Dst: PR_Cleanup
      Src: /src/nss/cmd/modutil/modutil.c:940,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 151
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 761
    functionDepth: 2
    functionLinenumber: 761
    functionLinenumberEnd: 942
    functionName: main
    functionSourceFile: /src/nss/cmd/modutil/modutil.c
    functionUses: 2
    functionsReached:
    - DeleteModule
    - verify_params
    - init_crypto
    - Pk11Install_SetErrorHandler
    - InitPW
    - LoadMechanismList
    - RawAddModule
    - ListModule
    - SetDefaultModule
    - PR_smprintf
    - ChkFipsMode
    - ListModules
    - RawListModule
    - IsP11KitEnabled
    - usage
    - strrchr
    - PORT_Assert
    - PR_Cleanup
    - UnsetDefaultModule
    - EnableModule
    - PR_Init
    - exit
    - ChangePW
    - Pk11Install_DoInstall
    - SECU_ConfigDirectory
    - parse_args
    - check_crypto
    - PR_fprintf
    - PL_strcasecmp
    - FipsMode
    - NSS_Shutdown
    - PR_fgets
    - AddModule
    - strtok
    linkageType: ''
    returnType: int
    signature: int main(int argc, char* argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:953,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - message
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 950
    functionDepth: 1
    functionLinenumber: 950
    functionLinenumberEnd: 954
    functionName: install_error
    functionSourceFile: /src/nss/cmd/modutil/modutil.c
    functionUses: 0
    functionsReached:
    - PR_fprintf
    linkageType: ''
    returnType: void
    signature: void install_error(char* message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/modutil.c:963,1
    - Dst: exit
      Src: /src/nss/cmd/modutil/modutil.c:964,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 965
      start: 960
    functionDepth: 1
    functionLinenumber: 960
    functionLinenumberEnd: 965
    functionName: out_of_memory
    functionSourceFile: /src/nss/cmd/modutil/modutil.c
    functionUses: 0
    functionsReached:
    - PR_fprintf
    - exit
    linkageType: ''
    returnType: void
    signature: void out_of_memory(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PR_Read
      Src: /src/nss/cmd/modutil/modutil.c:982,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - buf
    - size
    - file
    argTypes:
    - char*
    - int
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 973
    functionDepth: 1
    functionLinenumber: 973
    functionLinenumberEnd: 996
    functionName: PR_fgets
    functionSourceFile: /src/nss/cmd/modutil/modutil.c
    functionUses: 1
    functionsReached:
    - PR_Read
    linkageType: ''
    returnType: char
    signature: 'char *

      PR_fgets(char* buf, int size, PRFileDesc* file)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strcasecmp
      Src: /src/nss/cmd/modutil/pk11.c:23,1
    - Dst: PK11_IsFIPS
      Src: /src/nss/cmd/modutil/pk11.c:24,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/modutil/pk11.c:25,1
    - Dst: SECMOD_GetInternalModule
      Src: /src/nss/cmd/modutil/pk11.c:26,1
    - Dst: SECMOD_DeleteInternalModule
      Src: /src/nss/cmd/modutil/pk11.c:27,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:28,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/modutil/pk11.c:28,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/modutil/pk11.c:28,1
    - Dst: PR_smprintf_free
      Src: /src/nss/cmd/modutil/pk11.c:29,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:30,1
    - Dst: PR_smprintf_free
      Src: /src/nss/cmd/modutil/pk11.c:33,1
    - Dst: PK11_IsFIPS
      Src: /src/nss/cmd/modutil/pk11.c:34,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:35,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:38,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:40,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/cmd/modutil/pk11.c:43,1
    - Dst: PK11_IsFIPS
      Src: /src/nss/cmd/modutil/pk11.c:44,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/modutil/pk11.c:45,1
    - Dst: SECMOD_GetInternalModule
      Src: /src/nss/cmd/modutil/pk11.c:46,1
    - Dst: SECMOD_DeleteInternalModule
      Src: /src/nss/cmd/modutil/pk11.c:47,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:48,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/modutil/pk11.c:48,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/modutil/pk11.c:48,1
    - Dst: PR_smprintf_free
      Src: /src/nss/cmd/modutil/pk11.c:49,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:50,1
    - Dst: PR_smprintf_free
      Src: /src/nss/cmd/modutil/pk11.c:53,1
    - Dst: PK11_IsFIPS
      Src: /src/nss/cmd/modutil/pk11.c:54,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:55,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:58,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:60,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:64,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 45
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 69
    functionName: FipsMode
    functionSourceFile: /src/nss/cmd/modutil/pk11.c
    functionUses: 1
    functionsReached:
    - SECMOD_DeleteInternalModule
    - PORT_Strcasecmp
    - SECU_Strerror
    - PR_fprintf
    - PORT_GetError
    - PK11_IsFIPS
    - PR_smprintf_free
    - PR_smprintf
    - SECMOD_GetInternalModule
    linkageType: ''
    returnType: Error
    signature: Error FipsMode(char *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strcasecmp
      Src: /src/nss/cmd/modutil/pk11.c:80,1
    - Dst: PK11_IsFIPS
      Src: /src/nss/cmd/modutil/pk11.c:81,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:82,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:84,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/cmd/modutil/pk11.c:88,1
    - Dst: PK11_IsFIPS
      Src: /src/nss/cmd/modutil/pk11.c:89,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:90,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:92,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:96,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 101
    functionName: ChkFipsMode
    functionSourceFile: /src/nss/cmd/modutil/pk11.c
    functionUses: 1
    functionsReached:
    - PK11_IsFIPS
    - PORT_Strcasecmp
    - PR_fprintf
    linkageType: ''
    returnType: Error
    signature: Error ChkFipsMode(char *arg)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetDefaultArray
      Src: /src/nss/cmd/modutil/pk11.c:134,1
    - Dst: PORT_NewArray
      Src: /src/nss/cmd/modutil/pk11.c:145,1
    - Dst: SECMOD_InternaltoPubMechFlags
      Src: /src/nss/cmd/modutil/pk11.c:174,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 177
    functionName: LoadMechanismList
    functionSourceFile: /src/nss/cmd/modutil/pk11.c
    functionUses: 1
    functionsReached:
    - PORT_NewArray
    - PK11_GetDefaultArray
    - SECMOD_InternaltoPubMechFlags
    linkageType: ''
    returnType: Error
    signature: Error LoadMechanismList(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PR_Malloc
      Src: /src/nss/cmd/modutil/pk11.c:203,1
    - Dst: strlen
      Src: /src/nss/cmd/modutil/pk11.c:203,1
    - Dst: out_of_memory
      Src: /src/nss/cmd/modutil/pk11.c:205,1
    - Dst: strcpy
      Src: /src/nss/cmd/modutil/pk11.c:207,1
    - Dst: strchr
      Src: /src/nss/cmd/modutil/pk11.c:212,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/cmd/modutil/pk11.c:219,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:225,1
    - Dst: PR_Free
      Src: /src/nss/cmd/modutil/pk11.c:231,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 3
    argNames:
    - string
    - array
    - elements
    argTypes:
    - char*
    - MaskString[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 233
    functionName: getFlagsFromString
    functionSourceFile: /src/nss/cmd/modutil/pk11.c
    functionUses: 0
    functionsReached:
    - PR_Malloc
    - PORT_Strcasecmp
    - strchr
    - PR_fprintf
    - strcpy
    - PR_Free
    - strlen
    - out_of_memory
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long getFlagsFromString(char *string, const MaskString array[],
      int elements)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcat
      Src: /src/nss/cmd/modutil/pk11.c:254,1
    - Dst: strcat
      Src: /src/nss/cmd/modutil/pk11.c:256,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - flags
    - array
    - elements
    argTypes:
    - unsigned long
    - MaskString[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 260
    functionName: getStringFromFlags
    functionSourceFile: /src/nss/cmd/modutil/pk11.c
    functionUses: 0
    functionsReached:
    - strcat
    linkageType: ''
    returnType: char
    signature: 'char *

      getStringFromFlags(unsigned long flags, const MaskString array[], int elements)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetModInfo
      Src: /src/nss/cmd/modutil/pk11.c:271,1
    - Dst: PORT_Memcmp
      Src: /src/nss/cmd/modutil/pk11.c:272,1
    - Dst: PORT_Memcmp
      Src: /src/nss/cmd/modutil/pk11.c:275,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - module
    argTypes:
    - SECMODModule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 282
    functionName: IsP11KitProxyModule
    functionSourceFile: /src/nss/cmd/modutil/pk11.c
    functionUses: 0
    functionsReached:
    - PORT_Memcmp
    - PK11_GetModInfo
    linkageType: ''
    returnType: PRBool
    signature: PRBool IsP11KitProxyModule(SECMODModule *module)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECMOD_GetDefaultModuleListLock
      Src: /src/nss/cmd/modutil/pk11.c:291,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:293,1
    - Dst: SECMOD_GetReadLock
      Src: /src/nss/cmd/modutil/pk11.c:297,1
    - Dst: SECMOD_GetDefaultModuleList
      Src: /src/nss/cmd/modutil/pk11.c:299,1
    - Dst: IsP11KitProxyModule
      Src: /src/nss/cmd/modutil/pk11.c:301,1
    - Dst: SECMOD_ReleaseReadLock
      Src: /src/nss/cmd/modutil/pk11.c:307,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 284
    functionDepth: 2
    functionLinenumber: 284
    functionLinenumberEnd: 309
    functionName: IsP11KitEnabled
    functionSourceFile: /src/nss/cmd/modutil/pk11.c
    functionUses: 1
    functionsReached:
    - IsP11KitProxyModule
    - SECMOD_ReleaseReadLock
    - PR_fprintf
    - SECMOD_GetReadLock
    - SECMOD_GetDefaultModuleListLock
    - SECMOD_GetDefaultModuleList
    linkageType: ''
    returnType: PRBool
    signature: PRBool IsP11KitEnabled(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getFlagsFromString
      Src: /src/nss/cmd/modutil/pk11.c:327,1
    - Dst: getFlagsFromString
      Src: /src/nss/cmd/modutil/pk11.c:330,1
    - Dst: SECMOD_AddNewModuleEx
      Src: /src/nss/cmd/modutil/pk11.c:333,1
    - Dst: SECMOD_PubMechFlagstoInternal
      Src: /src/nss/cmd/modutil/pk11.c:334,1
    - Dst: SECMOD_PubCipherFlagstoInternal
      Src: /src/nss/cmd/modutil/pk11.c:335,1
    - Dst: PR_GetErrorTextLength
      Src: /src/nss/cmd/modutil/pk11.c:341,1
    - Dst: PR_Malloc
      Src: /src/nss/cmd/modutil/pk11.c:342,1
    - Dst: PR_GetErrorTextLength
      Src: /src/nss/cmd/modutil/pk11.c:342,1
    - Dst: PR_GetErrorText
      Src: /src/nss/cmd/modutil/pk11.c:343,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:346,1
    - Dst: PR_Free
      Src: /src/nss/cmd/modutil/pk11.c:348,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:350,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/modutil/pk11.c:351,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/modutil/pk11.c:351,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:355,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 5
    argNames:
    - moduleName
    - libFile
    - cipherString
    - mechanismString
    - modparms
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 318
    functionDepth: 2
    functionLinenumber: 318
    functionLinenumberEnd: 358
    functionName: AddModule
    functionSourceFile: /src/nss/cmd/modutil/pk11.c
    functionUses: 1
    functionsReached:
    - PR_Malloc
    - getFlagsFromString
    - SECU_Strerror
    - PR_fprintf
    - SECMOD_AddNewModuleEx
    - PORT_GetError
    - PR_Free
    - PR_GetErrorText
    - SECMOD_PubMechFlagstoInternal
    - SECMOD_PubCipherFlagstoInternal
    - PR_GetErrorTextLength
    linkageType: ''
    returnType: Error
    signature: "Error AddModule(char *moduleName, char *libFile, char *cipherString,\n
      \         char *mechanismString, char *modparms)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECMOD_DeleteModule
      Src: /src/nss/cmd/modutil/pk11.c:372,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:376,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:379,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:384,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - moduleName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 386
    functionName: DeleteModule
    functionSourceFile: /src/nss/cmd/modutil/pk11.c
    functionUses: 2
    functionsReached:
    - SECMOD_DeleteModule
    - PR_fprintf
    linkageType: ''
    returnType: Error
    signature: Error DeleteModule(char *moduleName)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECMOD_LoadModule
      Src: /src/nss/cmd/modutil/pk11.c:400,1
    - Dst: SECMOD_GetModuleSpecList
      Src: /src/nss/cmd/modutil/pk11.c:406,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/modutil/pk11.c:408,1
    - Dst: printf
      Src: /src/nss/cmd/modutil/pk11.c:414,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - modulespec
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 418
    functionName: RawListModule
    functionSourceFile: /src/nss/cmd/modutil/pk11.c
    functionUses: 1
    functionsReached:
    - SECMOD_GetModuleSpecList
    - SECMOD_LoadModule
    - printf
    - SECU_PrintError
    linkageType: ''
    returnType: Error
    signature: Error RawListModule(char *modulespec)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SECMOD_LoadModule
      Src: /src/nss/cmd/modutil/pk11.c:426,1
    - Dst: SECMOD_LoadModule
      Src: /src/nss/cmd/modutil/pk11.c:432,1
    - Dst: SECMOD_UpdateModule
      Src: /src/nss/cmd/modutil/pk11.c:438,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:439,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - dbmodulespec
    - modulespec
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 443
    functionName: RawAddModule
    functionSourceFile: /src/nss/cmd/modutil/pk11.c
    functionUses: 1
    functionsReached:
    - SECMOD_UpdateModule
    - SECMOD_LoadModule
    - PR_fprintf
    linkageType: ''
    returnType: Error
    signature: Error RawAddModule(char *dbmodulespec, char *modulespec)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:453,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:455,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:458,1
    - Dst: PK11_GetModuleURI
      Src: /src/nss/cmd/modutil/pk11.c:461,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:463,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/modutil/pk11.c:464,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:467,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:470,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:475,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:477,1
    - Dst: PK11_GetTokenURI
      Src: /src/nss/cmd/modutil/pk11.c:483,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:484,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:485,1
    - Dst: PK11_GetSlotName
      Src: /src/nss/cmd/modutil/pk11.c:485,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:486,1
    - Dst: PK11_GetTokenName
      Src: /src/nss/cmd/modutil/pk11.c:486,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:487,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/modutil/pk11.c:488,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 2
    argNames:
    - module
    - count
    argTypes:
    - SECMODModule*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 491
    functionName: printModule
    functionSourceFile: /src/nss/cmd/modutil/pk11.c
    functionUses: 0
    functionsReached:
    - PK11_GetModuleURI
    - PORT_Free
    - PK11_GetSlotName
    - PR_fprintf
    - PK11_GetTokenName
    - PK11_GetTokenURI
    linkageType: ''
    returnType: void
    signature: void printModule(SECMODModule *module, int *count)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECMOD_GetDefaultModuleListLock
      Src: /src/nss/cmd/modutil/pk11.c:509,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:511,1
    - Dst: SECMOD_GetReadLock
      Src: /src/nss/cmd/modutil/pk11.c:515,1
    - Dst: SECMOD_GetDefaultModuleList
      Src: /src/nss/cmd/modutil/pk11.c:517,1
    - Dst: SECMOD_GetDeadModuleList
      Src: /src/nss/cmd/modutil/pk11.c:518,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:520,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:525,1
    - Dst: printModule
      Src: /src/nss/cmd/modutil/pk11.c:530,1
    - Dst: printModule
      Src: /src/nss/cmd/modutil/pk11.c:533,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:536,1
    - Dst: SECMOD_ReleaseReadLock
      Src: /src/nss/cmd/modutil/pk11.c:542,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 499
    functionDepth: 2
    functionLinenumber: 499
    functionLinenumberEnd: 544
    functionName: ListModules
    functionSourceFile: /src/nss/cmd/modutil/pk11.c
    functionUses: 2
    functionsReached:
    - printModule
    - SECMOD_ReleaseReadLock
    - PR_fprintf
    - SECMOD_GetReadLock
    - SECMOD_GetDefaultModuleListLock
    - SECMOD_GetDefaultModuleList
    - SECMOD_GetDeadModuleList
    linkageType: ''
    returnType: Error
    signature: Error ListModules()
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: SECMOD_FindModule
      Src: /src/nss/cmd/modutil/pk11.c:580,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:582,1
    - Dst: PK11_GetModInfo
      Src: /src/nss/cmd/modutil/pk11.c:588,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:589,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:595,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:597,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:599,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:601,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:605,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:606,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:607,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:609,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:612,1
    - Dst: getStringFromFlags
      Src: /src/nss/cmd/modutil/pk11.c:615,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:620,1
    - Dst: getStringFromFlags
      Src: /src/nss/cmd/modutil/pk11.c:623,1
    - Dst: PK11_GetDefaultFlags
      Src: /src/nss/cmd/modutil/pk11.c:624,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:630,1
    - Dst: PK11_GetSlotInfo
      Src: /src/nss/cmd/modutil/pk11.c:637,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:638,1
    - Dst: PK11_GetSlotName
      Src: /src/nss/cmd/modutil/pk11.c:639,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:645,1
    - Dst: PK11_GetSlotName
      Src: /src/nss/cmd/modutil/pk11.c:645,1
    - Dst: getStringFromFlags
      Src: /src/nss/cmd/modutil/pk11.c:646,1
    - Dst: PK11_GetDefaultFlags
      Src: /src/nss/cmd/modutil/pk11.c:646,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:651,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:652,1
    - Dst: PK11_IsHW
      Src: /src/nss/cmd/modutil/pk11.c:654,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:655,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:657,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:659,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:661,1
    - Dst: PK11_IsDisabled
      Src: /src/nss/cmd/modutil/pk11.c:663,1
    - Dst: PK11_GetDisabledReason
      Src: /src/nss/cmd/modutil/pk11.c:664,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:666,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:669,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:672,1
    - Dst: PK11_GetTokenInfo
      Src: /src/nss/cmd/modutil/pk11.c:675,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:676,1
    - Dst: PK11_GetTokenName
      Src: /src/nss/cmd/modutil/pk11.c:677,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:683,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:685,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:687,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:688,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:690,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:692,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:695,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:697,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:700,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:702,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:706,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:708,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:711,1
    - Dst: SECMOD_DestroyModule
      Src: /src/nss/cmd/modutil/pk11.c:715,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 110
    argCount: 1
    argNames:
    - moduleName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 563
    functionDepth: 1
    functionLinenumber: 563
    functionLinenumberEnd: 718
    functionName: ListModule
    functionSourceFile: /src/nss/cmd/modutil/pk11.c
    functionUses: 1
    functionsReached:
    - PK11_GetDefaultFlags
    - PK11_GetSlotInfo
    - PK11_GetTokenName
    - getStringFromFlags
    - PK11_GetModInfo
    - PR_fprintf
    - PK11_GetSlotName
    - PK11_IsDisabled
    - SECMOD_FindModule
    - PK11_GetTokenInfo
    - SECMOD_DestroyModule
    - PK11_GetDisabledReason
    - PK11_IsHW
    linkageType: ''
    returnType: Error
    signature: Error ListModule(char *moduleName)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetInternalKeySlot
      Src: /src/nss/cmd/modutil/pk11.c:730,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:732,1
    - Dst: PK11_NeedUserInit
      Src: /src/nss/cmd/modutil/pk11.c:737,1
    - Dst: PK11_InitPin
      Src: /src/nss/cmd/modutil/pk11.c:738,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:739,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/cmd/modutil/pk11.c:748,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 724
    functionDepth: 1
    functionLinenumber: 724
    functionLinenumberEnd: 751
    functionName: InitPW
    functionSourceFile: /src/nss/cmd/modutil/pk11.c
    functionUses: 1
    functionsReached:
    - PK11_GetInternalKeySlot
    - PK11_InitPin
    - PR_fprintf
    - PK11_NeedUserInit
    - PK11_FreeSlot
    linkageType: ''
    returnType: Error
    signature: Error InitPW(void)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PK11_FindSlotByName
      Src: /src/nss/cmd/modutil/pk11.c:765,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:767,1
    - Dst: PK11_NeedUserInit
      Src: /src/nss/cmd/modutil/pk11.c:772,1
    - Dst: SECU_FilePasswd
      Src: /src/nss/cmd/modutil/pk11.c:774,1
    - Dst: PK11_CheckUserPassword
      Src: /src/nss/cmd/modutil/pk11.c:775,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:776,1
    - Dst: PK11_NeedLogin
      Src: /src/nss/cmd/modutil/pk11.c:780,1
    - Dst: SECU_GetPasswordString
      Src: /src/nss/cmd/modutil/pk11.c:782,1
    - Dst: PK11_CheckUserPassword
      Src: /src/nss/cmd/modutil/pk11.c:783,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:786,1
    - Dst: SECU_FilePasswd
      Src: /src/nss/cmd/modutil/pk11.c:794,1
    - Dst: SECU_GetPasswordString
      Src: /src/nss/cmd/modutil/pk11.c:797,1
    - Dst: SECU_GetPasswordString
      Src: /src/nss/cmd/modutil/pk11.c:798,1
    - Dst: strcmp
      Src: /src/nss/cmd/modutil/pk11.c:799,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:800,1
    - Dst: PORT_ZFree
      Src: /src/nss/cmd/modutil/pk11.c:801,1
    - Dst: strlen
      Src: /src/nss/cmd/modutil/pk11.c:801,1
    - Dst: PORT_ZFree
      Src: /src/nss/cmd/modutil/pk11.c:802,1
    - Dst: strlen
      Src: /src/nss/cmd/modutil/pk11.c:802,1
    - Dst: PK11_NeedUserInit
      Src: /src/nss/cmd/modutil/pk11.c:810,1
    - Dst: PK11_InitPin
      Src: /src/nss/cmd/modutil/pk11.c:811,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:812,1
    - Dst: PK11_ChangePW
      Src: /src/nss/cmd/modutil/pk11.c:817,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:818,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:824,1
    - Dst: PORT_ZFree
      Src: /src/nss/cmd/modutil/pk11.c:829,1
    - Dst: strlen
      Src: /src/nss/cmd/modutil/pk11.c:829,1
    - Dst: PORT_ZFree
      Src: /src/nss/cmd/modutil/pk11.c:832,1
    - Dst: strlen
      Src: /src/nss/cmd/modutil/pk11.c:832,1
    - Dst: PORT_ZFree
      Src: /src/nss/cmd/modutil/pk11.c:835,1
    - Dst: strlen
      Src: /src/nss/cmd/modutil/pk11.c:835,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/cmd/modutil/pk11.c:837,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 72
    argCount: 3
    argNames:
    - tokenName
    - pwFile
    - newpwFile
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 757
    functionDepth: 1
    functionLinenumber: 757
    functionLinenumberEnd: 840
    functionName: ChangePW
    functionSourceFile: /src/nss/cmd/modutil/pk11.c
    functionUses: 3
    functionsReached:
    - strcmp
    - PK11_FreeSlot
    - PORT_ZFree
    - PK11_InitPin
    - PR_fprintf
    - PK11_NeedUserInit
    - SECU_GetPasswordString
    - PK11_NeedLogin
    - SECU_FilePasswd
    - PK11_FindSlotByName
    - PK11_CheckUserPassword
    - PK11_ChangePW
    - strlen
    linkageType: ''
    returnType: Error
    signature: Error ChangePW(char *tokenName, char *pwFile, char *newpwFile)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SECMOD_FindModule
      Src: /src/nss/cmd/modutil/pk11.c:860,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:862,1
    - Dst: strcmp
      Src: /src/nss/cmd/modutil/pk11.c:869,1
    - Dst: PK11_GetSlotName
      Src: /src/nss/cmd/modutil/pk11.c:869,1
    - Dst: PK11_UserEnableSlot
      Src: /src/nss/cmd/modutil/pk11.c:874,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:875,1
    - Dst: PK11_GetSlotName
      Src: /src/nss/cmd/modutil/pk11.c:876,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:881,1
    - Dst: PK11_GetSlotName
      Src: /src/nss/cmd/modutil/pk11.c:882,1
    - Dst: PK11_UserDisableSlot
      Src: /src/nss/cmd/modutil/pk11.c:885,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:886,1
    - Dst: PK11_GetSlotName
      Src: /src/nss/cmd/modutil/pk11.c:887,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:892,1
    - Dst: PK11_GetSlotName
      Src: /src/nss/cmd/modutil/pk11.c:893,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:899,1
    - Dst: SECMOD_UpdateModule
      Src: /src/nss/cmd/modutil/pk11.c:905,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:906,1
    - Dst: SECMOD_DestroyModule
      Src: /src/nss/cmd/modutil/pk11.c:914,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 54
    argCount: 3
    argNames:
    - moduleName
    - slotName
    - enable
    argTypes:
    - char*
    - char*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 851
    functionDepth: 1
    functionLinenumber: 851
    functionLinenumberEnd: 917
    functionName: EnableModule
    functionSourceFile: /src/nss/cmd/modutil/pk11.c
    functionUses: 1
    functionsReached:
    - strcmp
    - PK11_UserEnableSlot
    - PK11_GetSlotName
    - PR_fprintf
    - SECMOD_UpdateModule
    - SECMOD_FindModule
    - SECMOD_DestroyModule
    - PK11_UserDisableSlot
    linkageType: ''
    returnType: Error
    signature: Error EnableModule(char *moduleName, char *slotName, PRBool enable)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getFlagsFromString
      Src: /src/nss/cmd/modutil/pk11.c:930,1
    - Dst: SECMOD_PubMechFlagstoInternal
      Src: /src/nss/cmd/modutil/pk11.c:935,1
    - Dst: SECMOD_FindModule
      Src: /src/nss/cmd/modutil/pk11.c:937,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:939,1
    - Dst: strcmp
      Src: /src/nss/cmd/modutil/pk11.c:949,1
    - Dst: PK11_GetSlotName
      Src: /src/nss/cmd/modutil/pk11.c:949,1
    - Dst: strcmp
      Src: /src/nss/cmd/modutil/pk11.c:950,1
    - Dst: PK11_GetTokenName
      Src: /src/nss/cmd/modutil/pk11.c:950,1
    - Dst: PK11_UpdateSlotAttribute
      Src: /src/nss/cmd/modutil/pk11.c:961,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:967,1
    - Dst: SECMOD_UpdateModule
      Src: /src/nss/cmd/modutil/pk11.c:973,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:974,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:980,1
    - Dst: SECMOD_DestroyModule
      Src: /src/nss/cmd/modutil/pk11.c:985,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 3
    argNames:
    - moduleName
    - slotName
    - mechanisms
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 924
    functionDepth: 2
    functionLinenumber: 924
    functionLinenumberEnd: 988
    functionName: SetDefaultModule
    functionSourceFile: /src/nss/cmd/modutil/pk11.c
    functionUses: 1
    functionsReached:
    - strcmp
    - getFlagsFromString
    - PK11_GetTokenName
    - PK11_GetSlotName
    - PR_fprintf
    - SECMOD_UpdateModule
    - SECMOD_FindModule
    - SECMOD_DestroyModule
    - SECMOD_PubMechFlagstoInternal
    - PK11_UpdateSlotAttribute
    linkageType: ''
    returnType: Error
    signature: Error SetDefaultModule(char *moduleName, char *slotName, char *mechanisms)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getFlagsFromString
      Src: /src/nss/cmd/modutil/pk11.c:1000,1
    - Dst: SECMOD_PubMechFlagstoInternal
      Src: /src/nss/cmd/modutil/pk11.c:1005,1
    - Dst: SECMOD_FindModule
      Src: /src/nss/cmd/modutil/pk11.c:1007,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:1009,1
    - Dst: strcmp
      Src: /src/nss/cmd/modutil/pk11.c:1017,1
    - Dst: PK11_GetSlotName
      Src: /src/nss/cmd/modutil/pk11.c:1017,1
    - Dst: strcmp
      Src: /src/nss/cmd/modutil/pk11.c:1018,1
    - Dst: PK11_GetTokenName
      Src: /src/nss/cmd/modutil/pk11.c:1018,1
    - Dst: PK11_UpdateSlotAttribute
      Src: /src/nss/cmd/modutil/pk11.c:1024,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:1030,1
    - Dst: SECMOD_UpdateModule
      Src: /src/nss/cmd/modutil/pk11.c:1036,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:1037,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/pk11.c:1043,1
    - Dst: SECMOD_DestroyModule
      Src: /src/nss/cmd/modutil/pk11.c:1047,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 3
    argNames:
    - moduleName
    - slotName
    - mechanisms
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 994
    functionDepth: 2
    functionLinenumber: 994
    functionLinenumberEnd: 1050
    functionName: UnsetDefaultModule
    functionSourceFile: /src/nss/cmd/modutil/pk11.c
    functionUses: 1
    functionsReached:
    - strcmp
    - getFlagsFromString
    - PK11_GetTokenName
    - PK11_GetSlotName
    - PR_fprintf
    - SECMOD_UpdateModule
    - SECMOD_FindModule
    - SECMOD_DestroyModule
    - SECMOD_PubMechFlagstoInternal
    - PK11_UpdateSlotAttribute
    linkageType: ''
    returnType: Error
    signature: Error UnsetDefaultModule(char *moduleName, char *slotName, char *mechanisms)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_Malloc
      Src: /src/nss/cmd/modutil/install.c:126,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/modutil/install.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 131
    functionName: StringNode_new
    functionSourceFile: /src/nss/cmd/modutil/install.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PR_Malloc
    linkageType: ''
    returnType: StringNode
    signature: 'StringNode *

      StringNode_new()'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_Free
      Src: /src/nss/cmd/modutil/install.c:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - StringNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 140
    functionName: StringNode_delete
    functionSourceFile: /src/nss/cmd/modutil/install.c
    functionUses: 0
    functionsReached:
    - PR_Free
    linkageType: ''
    returnType: void
    signature: void StringNode_delete(StringNode *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - list
    argTypes:
    - StringList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 155
    functionName: StringList_new
    functionSourceFile: /src/nss/cmd/modutil/install.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StringList_new(StringList *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StringNode_delete
      Src: /src/nss/cmd/modutil/install.c:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - list
    argTypes:
    - StringList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 166
    functionName: StringList_delete
    functionSourceFile: /src/nss/cmd/modutil/install.c
    functionUses: 0
    functionsReached:
    - StringNode_delete
    linkageType: ''
    returnType: void
    signature: void StringList_delete(StringList *list)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: StringNode_new
      Src: /src/nss/cmd/modutil/install.c:177,1
    - Dst: StringNode_new
      Src: /src/nss/cmd/modutil/install.c:179,1
    - Dst: PR_Strdup
      Src: /src/nss/cmd/modutil/install.c:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - list
    - str
    argTypes:
    - StringList*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 168
    functionDepth: 2
    functionLinenumber: 168
    functionLinenumberEnd: 185
    functionName: StringList_Append
    functionSourceFile: /src/nss/cmd/modutil/install.c
    functionUses: 0
    functionsReached:
    - StringNode_new
    - PR_Strdup
    linkageType: ''
    returnType: void
    signature: void StringList_Append(StringList *list, char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_NewLock
      Src: /src/nss/cmd/modutil/install.c:200,1
    - Dst: PR_Lock
      Src: /src/nss/cmd/modutil/install.c:203,1
    - Dst: PR_Unlock
      Src: /src/nss/cmd/modutil/install.c:208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - handler
    argTypes:
    - Pk11Install_ErrorHandler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 211
    functionName: Pk11Install_SetErrorHandler
    functionSourceFile: /src/nss/cmd/modutil/install.c
    functionUses: 1
    functionsReached:
    - PR_Unlock
    - PR_Lock
    - PR_NewLock
    linkageType: ''
    returnType: Pk11Install_ErrorHandler
    signature: Pk11Install_ErrorHandler Pk11Install_SetErrorHandler(Pk11Install_ErrorHandler
      handler)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_NewLock
      Src: /src/nss/cmd/modutil/install.c:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 227
    functionName: Pk11Install_Init
    functionSourceFile: /src/nss/cmd/modutil/install.c
    functionUses: 0
    functionsReached:
    - PR_NewLock
    linkageType: ''
    returnType: void
    signature: void Pk11Install_Init()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_Free
      Src: /src/nss/cmd/modutil/install.c:242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 245
    functionName: Pk11Install_Release
    functionSourceFile: /src/nss/cmd/modutil/install.c
    functionUses: 0
    functionsReached:
    - PR_Free
    linkageType: ''
    returnType: void
    signature: void Pk11Install_Release()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_NewLock
      Src: /src/nss/cmd/modutil/install.c:266,1
    - Dst: PR_Lock
      Src: /src/nss/cmd/modutil/install.c:269,1
    - Dst: PR_Unlock
      Src: /src/nss/cmd/modutil/install.c:273,1
    - Dst: va_start
      Src: /src/nss/cmd/modutil/install.c:276,1
    - Dst: PR_vsmprintf
      Src: /src/nss/cmd/modutil/install.c:277,1
    - Dst: handler
      Src: /src/nss/cmd/modutil/install.c:278,1
    - Dst: PR_smprintf_free
      Src: /src/nss/cmd/modutil/install.c:279,1
    - Dst: va_end
      Src: /src/nss/cmd/modutil/install.c:280,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - errcode
    argTypes:
    - PRErrorCode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 282
    functionName: error
    functionSourceFile: /src/nss/cmd/modutil/install.c
    functionUses: 13
    functionsReached:
    - PR_vsmprintf
    - va_end
    - PR_Lock
    - PR_smprintf_free
    - handler
    - va_start
    - PR_Unlock
    - PR_NewLock
    linkageType: ''
    returnType: void
    signature: void error(PRErrorCode errcode, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_smprintf
      Src: /src/nss/cmd/modutil/install.c:294,1
    - Dst: error
      Src: /src/nss/cmd/modutil/install.c:296,1
    - Dst: PR_smprintf_free
      Src: /src/nss/cmd/modutil/install.c:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - status
    - foo
    - bar
    - pathname
    - errortext
    argTypes:
    - int
    - JAR*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 288
    functionDepth: 2
    functionLinenumber: 288
    functionLinenumberEnd: 299
    functionName: jar_callback
    functionSourceFile: /src/nss/cmd/modutil/install.c
    functionUses: 0
    functionsReached:
    - error
    - PR_smprintf_free
    - PR_smprintf
    linkageType: ''
    returnType: int
    signature: "int jar_callback(int status, JAR *foo, const char *bar, char *pathname,\n
      \            char *errortext)"
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: Pk11Install_Info_init
      Src: /src/nss/cmd/modutil/install.c:330,1
    - Dst: PR_Access
      Src: /src/nss/cmd/modutil/install.c:340,1
    - Dst: error
      Src: /src/nss/cmd/modutil/install.c:341,1
    - Dst: PR_Access
      Src: /src/nss/cmd/modutil/install.c:347,1
    - Dst: error
      Src: /src/nss/cmd/modutil/install.c:348,1
    - Dst: PR_Access
      Src: /src/nss/cmd/modutil/install.c:351,1
    - Dst: error
      Src: /src/nss/cmd/modutil/install.c:352,1
    - Dst: PR_Access
      Src: /src/nss/cmd/modutil/install.c:355,1
    - Dst: error
      Src: /src/nss/cmd/modutil/install.c:356,1
    - Dst: PR_Access
      Src: /src/nss/cmd/modutil/install.c:359,1
    - Dst: error
      Src: /src/nss/cmd/modutil/install.c:360,1
    - Dst: JAR_new
      Src: /src/nss/cmd/modutil/install.c:367,1
    - Dst: JAR_set_callback
      Src: /src/nss/cmd/modutil/install.c:368,1
    - Dst: JAR_pass_archive_unverified
      Src: /src/nss/cmd/modutil/install.c:371,1
    - Dst: JAR_pass_archive
      Src: /src/nss/cmd/modutil/install.c:373,1
    - Dst: error
      Src: /src/nss/cmd/modutil/install.c:377,1
    - Dst: JAR_get_error
      Src: /src/nss/cmd/modutil/install.c:377,1
    - Dst: error
      Src: /src/nss/cmd/modutil/install.c:379,1
    - Dst: mySECU_ErrorString
      Src: /src/nss/cmd/modutil/install.c:380,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/modutil/install.c:380,1
    - Dst: Pk11Install_UserVerifyJar
      Src: /src/nss/cmd/modutil/install.c:390,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/install.c:395,1
    - Dst: JAR_get_metainfo
      Src: /src/nss/cmd/modutil/install.c:404,1
    - Dst: error
      Src: /src/nss/cmd/modutil/install.c:406,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/install.c:411,1
    - Dst: PR_Access
      Src: /src/nss/cmd/modutil/install.c:417,1
    - Dst: PR_Delete
      Src: /src/nss/cmd/modutil/install.c:418,1
    - Dst: error
      Src: /src/nss/cmd/modutil/install.c:419,1
    - Dst: JAR_extract
      Src: /src/nss/cmd/modutil/install.c:425,1
    - Dst: JAR_verified_extract
      Src: /src/nss/cmd/modutil/install.c:427,1
    - Dst: error
      Src: /src/nss/cmd/modutil/install.c:431,1
    - Dst: JAR_get_error
      Src: /src/nss/cmd/modutil/install.c:431,1
    - Dst: error
      Src: /src/nss/cmd/modutil/install.c:433,1
    - Dst: mySECU_ErrorString
      Src: /src/nss/cmd/modutil/install.c:434,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/modutil/install.c:434,1
    - Dst: PR_Open
      Src: /src/nss/cmd/modutil/install.c:445,1
    - Dst: error
      Src: /src/nss/cmd/modutil/install.c:447,1
    - Dst: Pk11Install_yyparse
      Src: /src/nss/cmd/modutil/install.c:451,1
    - Dst: error
      Src: /src/nss/cmd/modutil/install.c:452,1
    - Dst: Print
      Src: /src/nss/cmd/modutil/install.c:460,1
    - Dst: Pk11Install_Info_Generate
      Src: /src/nss/cmd/modutil/install.c:466,1
    - Dst: error
      Src: /src/nss/cmd/modutil/install.c:468,1
    - Dst: Pk11Install_Info::Print
      Src: /src/nss/cmd/modutil/install.c:473,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/install.c:477,1
    - Dst: PR_GetSystemInfo
      Src: /src/nss/cmd/modutil/install.c:486,1
    - Dst: PR_GetSystemInfo
      Src: /src/nss/cmd/modutil/install.c:488,1
    - Dst: PR_GetSystemInfo
      Src: /src/nss/cmd/modutil/install.c:490,1
    - Dst: error
      Src: /src/nss/cmd/modutil/install.c:492,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/modutil/install.c:496,1
    - Dst: Pk11Install_Info_GetBestPlatform
      Src: /src/nss/cmd/modutil/install.c:497,1
    - Dst: error
      Src: /src/nss/cmd/modutil/install.c:499,1
    - Dst: PR_smprintf_free
      Src: /src/nss/cmd/modutil/install.c:500,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/install.c:505,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/install.c:506,1
    - Dst: Pk11Install_PlatformName_GetString
      Src: /src/nss/cmd/modutil/install.c:507,1
    - Dst: PR_smprintf_free
      Src: /src/nss/cmd/modutil/install.c:509,1
    - Dst: DoInstall
      Src: /src/nss/cmd/modutil/install.c:513,1
    - Dst: Pk11Install_ValueList_delete
      Src: /src/nss/cmd/modutil/install.c:521,1
    - Dst: JAR_destroy
      Src: /src/nss/cmd/modutil/install.c:525,1
    - Dst: PR_Delete
      Src: /src/nss/cmd/modutil/install.c:528,1
    - Dst: PR_smprintf_free
      Src: /src/nss/cmd/modutil/install.c:531,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 157
    argCount: 6
    argNames:
    - jarFile
    - installDir
    - tempDir
    - feedback
    - force
    - noverify
    argTypes:
    - char*
    - char*
    - char*
    - PRFileDesc*
    - short
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 309
    functionDepth: 2
    functionLinenumber: 309
    functionLinenumberEnd: 534
    functionName: Pk11Install_DoInstall
    functionSourceFile: /src/nss/cmd/modutil/install.c
    functionUses: 1
    functionsReached:
    - JAR_get_error
    - mySECU_ErrorString
    - JAR_new
    - Pk11Install_Info_init
    - Pk11Install_PlatformName_GetString
    - error
    - JAR_pass_archive
    - JAR_destroy
    - PR_smprintf_free
    - PR_smprintf
    - JAR_pass_archive_unverified
    - JAR_verified_extract
    - PR_Access
    - PR_Open
    - Pk11Install_Info_GetBestPlatform
    - PR_Delete
    - JAR_set_callback
    - Pk11Install_Info_Generate
    - PR_GetSystemInfo
    - Pk11Install_UserVerifyJar
    - Print
    - PR_fprintf
    - PORT_GetError
    - JAR_get_metainfo
    - Pk11Install_ValueList_delete
    - Pk11Install_yyparse
    - Pk11Install_Info::Print
    - DoInstall
    - JAR_extract
    linkageType: ''
    returnType: Pk11Install_Error
    signature: "Pk11Install_Error Pk11Install_DoInstall(char *jarFile, const char
      *installDir,\n                      const char *tempDir, PRFileDesc *feedback,
      short force, PRBool noverify)"
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: StringList_new
      Src: /src/nss/cmd/modutil/install.c:563,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/modutil/install.c:567,1
    - Dst: PR_Access
      Src: /src/nss/cmd/modutil/install.c:568,1
    - Dst: rm_dash_r
      Src: /src/nss/cmd/modutil/install.c:570,1
    - Dst: PR_MkDir
      Src: /src/nss/cmd/modutil/install.c:572,1
    - Dst: error
      Src: /src/nss/cmd/modutil/install.c:573,1
    - Dst: PR_Strdup
      Src: /src/nss/cmd/modutil/install.c:587,1
    - Dst: error
      Src: /src/nss/cmd/modutil/install.c:590,1
    - Dst: PL_strcasestr
      Src: /src/nss/cmd/modutil/install.c:596,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/modutil/install.c:599,1
    - Dst: strlen
      Src: /src/nss/cmd/modutil/install.c:600,1
    - Dst: PR_Free
      Src: /src/nss/cmd/modutil/install.c:601,1
    - Dst: PL_strcasestr
      Src: /src/nss/cmd/modutil/install.c:604,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/modutil/install.c:607,1
    - Dst: strlen
      Src: /src/nss/cmd/modutil/install.c:608,1
    - Dst: PR_Free
      Src: /src/nss/cmd/modutil/install.c:609,1
    - Dst: error
      Src: /src/nss/cmd/modutil/install.c:618,1
    - Dst: PR_Free
      Src: /src/nss/cmd/modutil/install.c:620,1
    - Dst: PR_Strdup
      Src: /src/nss/cmd/modutil/install.c:625,1
    - Dst: error
      Src: /src/nss/cmd/modutil/install.c:627,1
    - Dst: PR_Strdup
      Src: /src/nss/cmd/modutil/install.c:633,1
    - Dst: StringList_Append
      Src: /src/nss/cmd/modutil/install.c:638,1
    - Dst: make_dirs
      Src: /src/nss/cmd/modutil/install.c:643,1
    - Dst: JAR_extract
      Src: /src/nss/cmd/modutil/install.c:650,1
    - Dst: JAR_verified_extract
      Src: /src/nss/cmd/modutil/install.c:652,1
    - Dst: error
      Src: /src/nss/cmd/modutil/install.c:656,1
    - Dst: JAR_get_error
      Src: /src/nss/cmd/modutil/install.c:657,1
    - Dst: error
      Src: /src/nss/cmd/modutil/install.c:659,1
    - Dst: mySECU_ErrorString
      Src: /src/nss/cmd/modutil/install.c:660,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/modutil/install.c:660,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/install.c:666,1
    - Dst: chmod
      Src: /src/nss/cmd/modutil/install.c:672,1
    - Dst: PR_Free
      Src: /src/nss/cmd/modutil/install.c:675,1
    - Dst: error
      Src: /src/nss/cmd/modutil/install.c:681,1
    - Dst: PR_NewProcessAttr
      Src: /src/nss/cmd/modutil/install.c:693,1
    - Dst: PR_Strdup
      Src: /src/nss/cmd/modutil/install.c:694,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/install.c:698,1
    - Dst: PR_CreateProcess
      Src: /src/nss/cmd/modutil/install.c:702,1
    - Dst: PR_Free
      Src: /src/nss/cmd/modutil/install.c:703,1
    - Dst: PR_DestroyProcessAttr
      Src: /src/nss/cmd/modutil/install.c:704,1
    - Dst: error
      Src: /src/nss/cmd/modutil/install.c:705,1
    - Dst: PR_WaitProcess
      Src: /src/nss/cmd/modutil/install.c:711,1
    - Dst: PR_Free
      Src: /src/nss/cmd/modutil/install.c:712,1
    - Dst: PR_DestroyProcessAttr
      Src: /src/nss/cmd/modutil/install.c:713,1
    - Dst: error
      Src: /src/nss/cmd/modutil/install.c:714,1
    - Dst: error
      Src: /src/nss/cmd/modutil/install.c:722,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/install.c:725,1
    - Dst: PR_Free
      Src: /src/nss/cmd/modutil/install.c:728,1
    - Dst: PR_DestroyProcessAttr
      Src: /src/nss/cmd/modutil/install.c:729,1
    - Dst: Pk11Install_AddNewModule
      Src: /src/nss/cmd/modutil/install.c:736,1
    - Dst: error
      Src: /src/nss/cmd/modutil/install.c:740,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/install.c:745,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/install.c:750,1
    - Dst: PR_Free
      Src: /src/nss/cmd/modutil/install.c:757,1
    - Dst: PR_GetFileInfo
      Src: /src/nss/cmd/modutil/install.c:761,1
    - Dst: rm_dash_r
      Src: /src/nss/cmd/modutil/install.c:764,1
    - Dst: error
      Src: /src/nss/cmd/modutil/install.c:765,1
    - Dst: PR_Free
      Src: /src/nss/cmd/modutil/install.c:771,1
    - Dst: StringList_delete
      Src: /src/nss/cmd/modutil/install.c:773,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 161
    argCount: 6
    argNames:
    - jar
    - installDir
    - tempDir
    - platform
    - feedback
    - noverify
    argTypes:
    - JAR*
    - char*
    - char*
    - Pk11Install_Platform*
    - PRFileDesc*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 540
    functionDepth: 3
    functionLinenumber: 540
    functionLinenumberEnd: 775
    functionName: DoInstall
    functionSourceFile: /src/nss/cmd/modutil/install.c
    functionUses: 2
    functionsReached:
    - JAR_get_error
    - mySECU_ErrorString
    - Pk11Install_AddNewModule
    - PR_Free
    - StringList_Append
    - strlen
    - error
    - PR_smprintf
    - PR_DestroyProcessAttr
    - StringList_new
    - StringList_delete
    - JAR_verified_extract
    - PR_Access
    - rm_dash_r
    - PR_WaitProcess
    - PR_NewProcessAttr
    - PR_GetFileInfo
    - chmod
    - PR_MkDir
    - PR_CreateProcess
    - PR_fprintf
    - PORT_GetError
    - make_dirs
    - PR_Strdup
    - PL_strcasestr
    - JAR_extract
    linkageType: ''
    returnType: Pk11Install_Error
    signature: "Pk11Install_Error DoInstall(JAR *jar, const char *installDir, const
      char *tempDir,\n          Pk11Install_Platform *platform, PRFileDesc *feedback,
      PRBool noverify)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_Malloc
      Src: /src/nss/cmd/modutil/install.c:783,1
    - Dst: strlen
      Src: /src/nss/cmd/modutil/install.c:783,1
    - Dst: strcpy
      Src: /src/nss/cmd/modutil/install.c:784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 780
    functionDepth: 1
    functionLinenumber: 780
    functionLinenumberEnd: 786
    functionName: PR_Strdup
    functionSourceFile: /src/nss/cmd/modutil/install.c
    functionUses: 2
    functionsReached:
    - PR_Malloc
    - strcpy
    - strlen
    linkageType: ''
    returnType: char
    signature: 'char *

      PR_Strdup(const char *str)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetFileInfo
      Src: /src/nss/cmd/modutil/install.c:802,1
    - Dst: PR_OpenDir
      Src: /src/nss/cmd/modutil/install.c:808,1
    - Dst: PR_ReadDir
      Src: /src/nss/cmd/modutil/install.c:814,1
    - Dst: snprintf
      Src: /src/nss/cmd/modutil/install.c:815,1
    - Dst: rm_dash_r
      Src: /src/nss/cmd/modutil/install.c:816,1
    - Dst: PR_CloseDir
      Src: /src/nss/cmd/modutil/install.c:817,1
    - Dst: PR_CloseDir
      Src: /src/nss/cmd/modutil/install.c:822,1
    - Dst: PR_RmDir
      Src: /src/nss/cmd/modutil/install.c:827,1
    - Dst: PR_Delete
      Src: /src/nss/cmd/modutil/install.c:831,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 794
    functionDepth: 1
    functionLinenumber: 794
    functionLinenumberEnd: 836
    functionName: rm_dash_r
    functionSourceFile: /src/nss/cmd/modutil/install.c
    functionUses: 2
    functionsReached:
    - PR_OpenDir
    - PR_CloseDir
    - snprintf
    - PR_Delete
    - rm_dash_r
    - PR_ReadDir
    - PR_GetFileInfo
    - PR_RmDir
    linkageType: ''
    returnType: int
    signature: int rm_dash_r(char *path)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PR_Strdup
      Src: /src/nss/cmd/modutil/install.c:858,1
    - Dst: strpbrk
      Src: /src/nss/cmd/modutil/install.c:859,1
    - Dst: strpbrk
      Src: /src/nss/cmd/modutil/install.c:866,1
    - Dst: PR_GetFileInfo
      Src: /src/nss/cmd/modutil/install.c:869,1
    - Dst: PR_MkDir
      Src: /src/nss/cmd/modutil/install.c:871,1
    - Dst: dir_perms
      Src: /src/nss/cmd/modutil/install.c:871,1
    - Dst: error
      Src: /src/nss/cmd/modutil/install.c:872,1
    - Dst: error
      Src: /src/nss/cmd/modutil/install.c:879,1
    - Dst: strpbrk
      Src: /src/nss/cmd/modutil/install.c:886,1
    - Dst: PR_Access
      Src: /src/nss/cmd/modutil/install.c:887,1
    - Dst: error
      Src: /src/nss/cmd/modutil/install.c:888,1
    - Dst: PR_Free
      Src: /src/nss/cmd/modutil/install.c:899,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 2
    argNames:
    - path
    - file_perms
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 845
    functionDepth: 2
    functionLinenumber: 845
    functionLinenumberEnd: 901
    functionName: make_dirs
    functionSourceFile: /src/nss/cmd/modutil/install.c
    functionUses: 1
    functionsReached:
    - error
    - strpbrk
    - PR_Access
    - dir_perms
    - PR_Free
    - PR_GetFileInfo
    - PR_Strdup
    - PR_MkDir
    linkageType: ''
    returnType: int
    signature: int make_dirs(char *path, int file_perms)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - perms
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 912
    functionDepth: 0
    functionLinenumber: 912
    functionLinenumberEnd: 941
    functionName: dir_perms
    functionSourceFile: /src/nss/cmd/modutil/install.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dir_perms(int perms)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECMOD_AddNewModule
      Src: /src/nss/cmd/modutil/instsec.c:29,1
    - Dst: SECMOD_PubMechFlagstoInternal
      Src: /src/nss/cmd/modutil/instsec.c:30,1
    - Dst: SECMOD_PubCipherFlagstoInternal
      Src: /src/nss/cmd/modutil/instsec.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - moduleName
    - dllPath
    - defaultMechanismFlags
    - cipherEnableFlags
    argTypes:
    - char*
    - char*
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 34
    functionName: Pk11Install_AddNewModule
    functionSourceFile: /src/nss/cmd/modutil/instsec.c
    functionUses: 1
    functionsReached:
    - SECMOD_AddNewModule
    - SECMOD_PubCipherFlagstoInternal
    - SECMOD_PubMechFlagstoInternal
    linkageType: ''
    returnType: int
    signature: "int Pk11Install_AddNewModule(char *moduleName, char *dllPath,\n                         unsigned
      long defaultMechanismFlags,\n                         unsigned long cipherEnableFlags)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/instsec.c:57,1
    - Dst: JAR_find
      Src: /src/nss/cmd/modutil/instsec.c:59,1
    - Dst: JAR_find_next
      Src: /src/nss/cmd/modutil/instsec.c:61,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/instsec.c:69,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/instsec.c:72,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/instsec.c:75,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/instsec.c:78,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/instsec.c:81,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/instsec.c:83,1
    - Dst: JAR_find_end
      Src: /src/nss/cmd/modutil/instsec.c:88,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/instsec.c:91,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/modutil/instsec.c:95,1
    - Dst: PR_fgets
      Src: /src/nss/cmd/modutil/instsec.c:98,1
    - Dst: strtok
      Src: /src/nss/cmd/modutil/instsec.c:101,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/modutil/instsec.c:102,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/modutil/instsec.c:103,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 3
    argNames:
    - jar
    - out
    - query
    argTypes:
    - JAR*
    - PRFileDesc*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 111
    functionName: Pk11Install_UserVerifyJar
    functionSourceFile: /src/nss/cmd/modutil/instsec.c
    functionUses: 1
    functionsReached:
    - PR_fprintf
    - JAR_find
    - PL_strcasecmp
    - JAR_find_next
    - PR_fgets
    - JAR_find_end
    - strtok
    linkageType: ''
    returnType: short
    signature: short Pk11Install_UserVerifyJar(JAR *jar, PRFileDesc *out, PRBool query)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PR_Read
      Src: /src/nss/cmd/modutil/instsec.c:128,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - buf
    - size
    - file
    argTypes:
    - char*
    - int
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 142
    functionName: PR_fgets
    functionSourceFile: /src/nss/cmd/modutil/instsec.c
    functionUses: 2
    functionsReached:
    - PR_Read
    linkageType: ''
    returnType: char
    signature: 'char *

      PR_fgets(char *buf, int size, PRFileDesc *file)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/modutil/instsec.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - errnum
    argTypes:
    - PRErrorCode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 153
    functionName: mySECU_ErrorString
    functionSourceFile: /src/nss/cmd/modutil/instsec.c
    functionUses: 2
    functionsReached:
    - SECU_Strerror
    linkageType: ''
    returnType: char
    signature: 'char *

      mySECU_ErrorString(PRErrorCode errnum)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 97
    functionName: PAD
    functionSourceFile: /src/nss/cmd/modutil/install-ds.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAD(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_Malloc
      Src: /src/nss/cmd/modutil/install-ds.c:103,1
    - Dst: Pk11Install_File_init
      Src: /src/nss/cmd/modutil/install-ds.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 106
    functionName: Pk11Install_File_new
    functionSourceFile: /src/nss/cmd/modutil/install-ds.c
    functionUses: 0
    functionsReached:
    - PR_Malloc
    - Pk11Install_File_init
    linkageType: ''
    returnType: Pk11Install_File
    signature: 'Pk11Install_File *

      Pk11Install_File_new()'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - _this
    argTypes:
    - Pk11Install_File*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 116
    functionName: Pk11Install_File_init
    functionSourceFile: /src/nss/cmd/modutil/install-ds.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Pk11Install_File_init(Pk11Install_File* _this)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Pk11Install_File_Cleanup
      Src: /src/nss/cmd/modutil/install-ds.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _this
    argTypes:
    - Pk11Install_File*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 128
    functionName: Pk11Install_File_delete
    functionSourceFile: /src/nss/cmd/modutil/install-ds.c
    functionUses: 0
    functionsReached:
    - Pk11Install_File_Cleanup
    linkageType: ''
    returnType: void
    signature: void Pk11Install_File_delete(Pk11Install_File* _this)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PR_Free
      Src: /src/nss/cmd/modutil/install-ds.c:139,1
    - Dst: PR_Free
      Src: /src/nss/cmd/modutil/install-ds.c:143,1
    - Dst: PR_Free
      Src: /src/nss/cmd/modutil/install-ds.c:147,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - _this
    argTypes:
    - Pk11Install_File*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 153
    functionName: Pk11Install_File_Cleanup
    functionSourceFile: /src/nss/cmd/modutil/install-ds.c
    functionUses: 1
    functionsReached:
    - PR_Free
    linkageType: ''
    returnType: void
    signature: void Pk11Install_File_Cleanup(Pk11Install_File* _this)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: Pk11Install_File_Cleanup
      Src: /src/nss/cmd/modutil/install-ds.c:181,1
    - Dst: PR_Strdup
      Src: /src/nss/cmd/modutil/install-ds.c:183,1
    - Dst: Pk11Install_ListIter_new
      Src: /src/nss/cmd/modutil/install-ds.c:186,1
    - Dst: Pk11Install_ListIter_nextItem
      Src: /src/nss/cmd/modutil/install-ds.c:187,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/cmd/modutil/install-ds.c:192,1
    - Dst: Pk11Install_ListIter_new
      Src: /src/nss/cmd/modutil/install-ds.c:193,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/modutil/install-ds.c:196,1
    - Dst: PR_Strdup
      Src: /src/nss/cmd/modutil/install-ds.c:200,1
    - Dst: Pk11Install_ListIter_delete
      Src: /src/nss/cmd/modutil/install-ds.c:201,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/cmd/modutil/install-ds.c:204,1
    - Dst: Pk11Install_ListIter_new
      Src: /src/nss/cmd/modutil/install-ds.c:205,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/modutil/install-ds.c:208,1
    - Dst: PR_Strdup
      Src: /src/nss/cmd/modutil/install-ds.c:212,1
    - Dst: Pk11Install_ListIter_delete
      Src: /src/nss/cmd/modutil/install-ds.c:213,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/cmd/modutil/install-ds.c:216,1
    - Dst: Pk11Install_ListIter_new
      Src: /src/nss/cmd/modutil/install-ds.c:218,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/modutil/install-ds.c:222,1
    - Dst: strtol
      Src: /src/nss/cmd/modutil/install-ds.c:226,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/modutil/install-ds.c:228,1
    - Dst: Pk11Install_ListIter_delete
      Src: /src/nss/cmd/modutil/install-ds.c:233,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/cmd/modutil/install-ds.c:236,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/modutil/install-ds.c:249,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/modutil/install-ds.c:254,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/modutil/install-ds.c:258,1
    - Dst: Pk11Install_ListIter_delete
      Src: /src/nss/cmd/modutil/install-ds.c:265,1
    - Dst: Pk11Install_ListIter_delete
      Src: /src/nss/cmd/modutil/install-ds.c:268,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 83
    argCount: 2
    argNames:
    - _this
    - pair
    argTypes:
    - Pk11Install_File*
    - Pk11Install_Pair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 271
    functionName: Pk11Install_File_Generate
    functionSourceFile: /src/nss/cmd/modutil/install-ds.c
    functionUses: 0
    functionsReached:
    - Pk11Install_ListIter_nextItem
    - PORT_Strcasecmp
    - Pk11Install_ListIter_delete
    - PR_smprintf
    - Pk11Install_ListIter_new
    - strtol
    - Pk11Install_File_Cleanup
    - PR_Strdup
    linkageType: ''
    returnType: char
    signature: "char *\nPk11Install_File_Generate(Pk11Install_File* _this,\n                          const
      Pk11Install_Pair* pair)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PAD
      Src: /src/nss/cmd/modutil/install-ds.c:281,1
    - Dst: printf
      Src: /src/nss/cmd/modutil/install-ds.c:282,1
    - Dst: PAD
      Src: /src/nss/cmd/modutil/install-ds.c:284,1
    - Dst: printf
      Src: /src/nss/cmd/modutil/install-ds.c:285,1
    - Dst: PAD
      Src: /src/nss/cmd/modutil/install-ds.c:287,1
    - Dst: printf
      Src: /src/nss/cmd/modutil/install-ds.c:288,1
    - Dst: PAD
      Src: /src/nss/cmd/modutil/install-ds.c:290,1
    - Dst: printf
      Src: /src/nss/cmd/modutil/install-ds.c:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - _this
    - pad
    argTypes:
    - Pk11Install_File*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 292
    functionName: Pk11Install_File_Print
    functionSourceFile: /src/nss/cmd/modutil/install-ds.c
    functionUses: 0
    functionsReached:
    - PAD
    - printf
    linkageType: ''
    returnType: void
    signature: void Pk11Install_File_Print(Pk11Install_File* _this, int pad)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_Malloc
      Src: /src/nss/cmd/modutil/install-ds.c:299,1
    - Dst: Pk11Install_PlatformName_init
      Src: /src/nss/cmd/modutil/install-ds.c:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 302
    functionName: Pk11Install_PlatformName_new
    functionSourceFile: /src/nss/cmd/modutil/install-ds.c
    functionUses: 0
    functionsReached:
    - PR_Malloc
    - Pk11Install_PlatformName_init
    linkageType: ''
    returnType: Pk11Install_PlatformName
    signature: 'Pk11Install_PlatformName *

      Pk11Install_PlatformName_new()'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - _this
    argTypes:
    - Pk11Install_PlatformName*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 311
    functionName: Pk11Install_PlatformName_init
    functionSourceFile: /src/nss/cmd/modutil/install-ds.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Pk11Install_PlatformName_init(Pk11Install_PlatformName* _this)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Pk11Install_PlatformName_Cleanup
      Src: /src/nss/cmd/modutil/install-ds.c:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _this
    argTypes:
    - Pk11Install_PlatformName*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 322
    functionName: Pk11Install_PlatformName_delete
    functionSourceFile: /src/nss/cmd/modutil/install-ds.c
    functionUses: 0
    functionsReached:
    - Pk11Install_PlatformName_Cleanup
    linkageType: ''
    returnType: void
    signature: void Pk11Install_PlatformName_delete(Pk11Install_PlatformName* _this)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PR_Free
      Src: /src/nss/cmd/modutil/install-ds.c:333,1
    - Dst: PR_Free
      Src: /src/nss/cmd/modutil/install-ds.c:339,1
    - Dst: PR_Free
      Src: /src/nss/cmd/modutil/install-ds.c:341,1
    - Dst: PR_Free
      Src: /src/nss/cmd/modutil/install-ds.c:345,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - _this
    argTypes:
    - Pk11Install_PlatformName*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 349
    functionName: Pk11Install_PlatformName_Cleanup
    functionSourceFile: /src/nss/cmd/modutil/install-ds.c
    functionUses: 1
    functionsReached:
    - PR_Free
    linkageType: ''
    returnType: void
    signature: void Pk11Install_PlatformName_Cleanup(Pk11Install_PlatformName* _this)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PR_smprintf
      Src: /src/nss/cmd/modutil/install-ds.c:372,1
    - Dst: PR_Strdup
      Src: /src/nss/cmd/modutil/install-ds.c:375,1
    - Dst: strchr
      Src: /src/nss/cmd/modutil/install-ds.c:380,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/modutil/install-ds.c:382,1
    - Dst: PR_Strdup
      Src: /src/nss/cmd/modutil/install-ds.c:387,1
    - Dst: strchr
      Src: /src/nss/cmd/modutil/install-ds.c:394,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/modutil/install-ds.c:396,1
    - Dst: strchr
      Src: /src/nss/cmd/modutil/install-ds.c:405,1
    - Dst: PR_Malloc
      Src: /src/nss/cmd/modutil/install-ds.c:410,1
    - Dst: strchr
      Src: /src/nss/cmd/modutil/install-ds.c:415,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/modutil/install-ds.c:417,1
    - Dst: PR_Strdup
      Src: /src/nss/cmd/modutil/install-ds.c:421,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/modutil/install-ds.c:424,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/modutil/install-ds.c:432,1
    - Dst: PR_Strdup
      Src: /src/nss/cmd/modutil/install-ds.c:435,1
    - Dst: strchr
      Src: /src/nss/cmd/modutil/install-ds.c:451,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/modutil/install-ds.c:452,1
    - Dst: PR_Strdup
      Src: /src/nss/cmd/modutil/install-ds.c:455,1
    - Dst: PR_Free
      Src: /src/nss/cmd/modutil/install-ds.c:458,1
    - Dst: PR_Free
      Src: /src/nss/cmd/modutil/install-ds.c:463,1
    - Dst: PR_Free
      Src: /src/nss/cmd/modutil/install-ds.c:468,1
    - Dst: PR_Free
      Src: /src/nss/cmd/modutil/install-ds.c:470,1
    - Dst: PR_Free
      Src: /src/nss/cmd/modutil/install-ds.c:475,1
    - Dst: PR_Free
      Src: /src/nss/cmd/modutil/install-ds.c:479,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 96
    argCount: 2
    argNames:
    - _this
    - str
    argTypes:
    - Pk11Install_PlatformName*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 483
    functionName: Pk11Install_PlatformName_Generate
    functionSourceFile: /src/nss/cmd/modutil/install-ds.c
    functionUses: 0
    functionsReached:
    - PR_Malloc
    - strchr
    - PR_Free
    - PR_smprintf
    - PR_Strdup
    linkageType: ''
    returnType: char
    signature: "char *\nPk11Install_PlatformName_Generate(Pk11Install_PlatformName*
      _this,\n                                  const char* str)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strcasecmp
      Src: /src/nss/cmd/modutil/install-ds.c:501,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/cmd/modutil/install-ds.c:502,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/cmd/modutil/install-ds.c:508,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 13
    argCount: 2
    argNames:
    - _this
    - cmp
    argTypes:
    - Pk11Install_PlatformName*
    - Pk11Install_PlatformName*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 513
    functionName: Pk11Install_PlatformName_equal
    functionSourceFile: /src/nss/cmd/modutil/install-ds.c
    functionUses: 0
    functionsReached:
    - PORT_Strcasecmp
    linkageType: ''
    returnType: PRBool
    signature: "PRBool Pk11Install_PlatformName_equal(Pk11Install_PlatformName* _this,\n
      \                              Pk11Install_PlatformName* cmp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Pk11Install_PlatformName_equal
      Src: /src/nss/cmd/modutil/install-ds.c:526,1
    - Dst: Pk11Install_PlatformName_lt
      Src: /src/nss/cmd/modutil/install-ds.c:527,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - _this
    - cmp
    argTypes:
    - Pk11Install_PlatformName*
    - Pk11Install_PlatformName*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 522
    functionDepth: 1
    functionLinenumber: 522
    functionLinenumberEnd: 530
    functionName: Pk11Install_PlatformName_lteq
    functionSourceFile: /src/nss/cmd/modutil/install-ds.c
    functionUses: 0
    functionsReached:
    - Pk11Install_PlatformName_equal
    - Pk11Install_PlatformName_lt
    linkageType: ''
    returnType: PRBool
    signature: "PRBool Pk11Install_PlatformName_lteq(Pk11Install_PlatformName* _this,\n
      \                             Pk11Install_PlatformName* cmp)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strcasecmp
      Src: /src/nss/cmd/modutil/install-ds.c:549,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/cmd/modutil/install-ds.c:552,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/cmd/modutil/install-ds.c:557,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 2
    argNames:
    - _this
    - cmp
    argTypes:
    - Pk11Install_PlatformName*
    - Pk11Install_PlatformName*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 570
    functionName: Pk11Install_PlatformName_lt
    functionSourceFile: /src/nss/cmd/modutil/install-ds.c
    functionUses: 1
    functionsReached:
    - PORT_Strcasecmp
    linkageType: ''
    returnType: PRBool
    signature: "PRBool Pk11Install_PlatformName_lt(Pk11Install_PlatformName* _this,\n
      \                           Pk11Install_PlatformName* cmp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Pk11Install_PlatformName_GetVerString
      Src: /src/nss/cmd/modutil/install-ds.c:594,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/modutil/install-ds.c:595,1
    - Dst: PR_Free
      Src: /src/nss/cmd/modutil/install-ds.c:598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - _this
    argTypes:
    - Pk11Install_PlatformName*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 601
    functionName: Pk11Install_PlatformName_GetString
    functionSourceFile: /src/nss/cmd/modutil/install-ds.c
    functionUses: 1
    functionsReached:
    - Pk11Install_PlatformName_GetVerString
    - PR_smprintf
    - PR_Free
    linkageType: ''
    returnType: char
    signature: 'char *

      Pk11Install_PlatformName_GetString(Pk11Install_PlatformName* _this)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_Malloc
      Src: /src/nss/cmd/modutil/install-ds.c:619,1
    - Dst: snprintf
      Src: /src/nss/cmd/modutil/install-ds.c:623,1
    - Dst: strcat
      Src: /src/nss/cmd/modutil/install-ds.c:624,1
    - Dst: snprintf
      Src: /src/nss/cmd/modutil/install-ds.c:627,1
    - Dst: strcat
      Src: /src/nss/cmd/modutil/install-ds.c:628,1
    - Dst: PR_Strdup
      Src: /src/nss/cmd/modutil/install-ds.c:631,1
    - Dst: free
      Src: /src/nss/cmd/modutil/install-ds.c:632,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - _this
    argTypes:
    - Pk11Install_PlatformName*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 611
    functionDepth: 1
    functionLinenumber: 611
    functionLinenumberEnd: 635
    functionName: Pk11Install_PlatformName_GetVerString
    functionSourceFile: /src/nss/cmd/modutil/install-ds.c
    functionUses: 1
    functionsReached:
    - PR_Malloc
    - free
    - snprintf
    - PR_Strdup
    - strcat
    linkageType: ''
    returnType: char
    signature: 'char *

      Pk11Install_PlatformName_GetVerString(Pk11Install_PlatformName* _this)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PAD
      Src: /src/nss/cmd/modutil/install-ds.c:646,1
    - Dst: printf
      Src: /src/nss/cmd/modutil/install-ds.c:647,1
    - Dst: PAD
      Src: /src/nss/cmd/modutil/install-ds.c:648,1
    - Dst: printf
      Src: /src/nss/cmd/modutil/install-ds.c:649,1
    - Dst: printf
      Src: /src/nss/cmd/modutil/install-ds.c:651,1
    - Dst: Pk11Install_PlatformName_GetVerString
      Src: /src/nss/cmd/modutil/install-ds.c:653,1
    - Dst: printf
      Src: /src/nss/cmd/modutil/install-ds.c:654,1
    - Dst: PR_Free
      Src: /src/nss/cmd/modutil/install-ds.c:655,1
    - Dst: PAD
      Src: /src/nss/cmd/modutil/install-ds.c:657,1
    - Dst: printf
      Src: /src/nss/cmd/modutil/install-ds.c:658,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - _this
    - pad
    argTypes:
    - Pk11Install_PlatformName*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 642
    functionDepth: 2
    functionLinenumber: 642
    functionLinenumberEnd: 659
    functionName: Pk11Install_PlatformName_Print
    functionSourceFile: /src/nss/cmd/modutil/install-ds.c
    functionUses: 0
    functionsReached:
    - PAD
    - Pk11Install_PlatformName_GetVerString
    - printf
    - PR_Free
    linkageType: ''
    returnType: void
    signature: void Pk11Install_PlatformName_Print(Pk11Install_PlatformName* _this,
      int pad)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_Malloc
      Src: /src/nss/cmd/modutil/install-ds.c:665,1
    - Dst: Pk11Install_Platform_init
      Src: /src/nss/cmd/modutil/install-ds.c:666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 661
    functionDepth: 1
    functionLinenumber: 661
    functionLinenumberEnd: 668
    functionName: Pk11Install_Platform_new
    functionSourceFile: /src/nss/cmd/modutil/install-ds.c
    functionUses: 0
    functionsReached:
    - Pk11Install_Platform_init
    - PR_Malloc
    linkageType: ''
    returnType: Pk11Install_Platform
    signature: 'Pk11Install_Platform *

      Pk11Install_Platform_new()'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Pk11Install_PlatformName_init
      Src: /src/nss/cmd/modutil/install-ds.c:673,1
    - Dst: Pk11Install_PlatformName_init
      Src: /src/nss/cmd/modutil/install-ds.c:674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - _this
    argTypes:
    - Pk11Install_Platform*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 684
    functionName: Pk11Install_Platform_init
    functionSourceFile: /src/nss/cmd/modutil/install-ds.c
    functionUses: 1
    functionsReached:
    - Pk11Install_PlatformName_init
    linkageType: ''
    returnType: void
    signature: void Pk11Install_Platform_init(Pk11Install_Platform* _this)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Pk11Install_Platform_Cleanup
      Src: /src/nss/cmd/modutil/install-ds.c:694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _this
    argTypes:
    - Pk11Install_Platform*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 691
    functionDepth: 1
    functionLinenumber: 691
    functionLinenumberEnd: 695
    functionName: Pk11Install_Platform_delete
    functionSourceFile: /src/nss/cmd/modutil/install-ds.c
    functionUses: 0
    functionsReached:
    - Pk11Install_Platform_Cleanup
    linkageType: ''
    returnType: void
    signature: void Pk11Install_Platform_delete(Pk11Install_Platform* _this)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PR_Free
      Src: /src/nss/cmd/modutil/install-ds.c:707,1
    - Dst: PR_Free
      Src: /src/nss/cmd/modutil/install-ds.c:711,1
    - Dst: Pk11Install_File_delete
      Src: /src/nss/cmd/modutil/install-ds.c:716,1
    - Dst: PR_Free
      Src: /src/nss/cmd/modutil/install-ds.c:718,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - _this
    argTypes:
    - Pk11Install_Platform*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 702
    functionDepth: 2
    functionLinenumber: 702
    functionLinenumberEnd: 726
    functionName: Pk11Install_Platform_Cleanup
    functionSourceFile: /src/nss/cmd/modutil/install-ds.c
    functionUses: 1
    functionsReached:
    - PR_Free
    - Pk11Install_File_delete
    linkageType: ''
    returnType: void
    signature: void Pk11Install_Platform_Cleanup(Pk11Install_Platform* _this)
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: Pk11Install_Platform_Cleanup
      Src: /src/nss/cmd/modutil/install-ds.c:756,1
    - Dst: Pk11Install_PlatformName_Generate
      Src: /src/nss/cmd/modutil/install-ds.c:758,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/modutil/install-ds.c:760,1
    - Dst: PR_smprintf_free
      Src: /src/nss/cmd/modutil/install-ds.c:761,1
    - Dst: Pk11Install_ListIter_new
      Src: /src/nss/cmd/modutil/install-ds.c:766,1
    - Dst: Pk11Install_ListIter_nextItem
      Src: /src/nss/cmd/modutil/install-ds.c:767,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/cmd/modutil/install-ds.c:771,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/modutil/install-ds.c:773,1
    - Dst: Pk11Install_PlatformName_GetString
      Src: /src/nss/cmd/modutil/install-ds.c:774,1
    - Dst: Pk11Install_ListIter_new
      Src: /src/nss/cmd/modutil/install-ds.c:777,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/modutil/install-ds.c:780,1
    - Dst: Pk11Install_PlatformName_GetString
      Src: /src/nss/cmd/modutil/install-ds.c:781,1
    - Dst: PR_Strdup
      Src: /src/nss/cmd/modutil/install-ds.c:784,1
    - Dst: Pk11Install_ListIter_delete
      Src: /src/nss/cmd/modutil/install-ds.c:785,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/cmd/modutil/install-ds.c:787,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/modutil/install-ds.c:789,1
    - Dst: Pk11Install_PlatformName_GetString
      Src: /src/nss/cmd/modutil/install-ds.c:790,1
    - Dst: Pk11Install_ListIter_new
      Src: /src/nss/cmd/modutil/install-ds.c:793,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/modutil/install-ds.c:796,1
    - Dst: Pk11Install_PlatformName_GetString
      Src: /src/nss/cmd/modutil/install-ds.c:797,1
    - Dst: PR_Strdup
      Src: /src/nss/cmd/modutil/install-ds.c:800,1
    - Dst: Pk11Install_ListIter_delete
      Src: /src/nss/cmd/modutil/install-ds.c:801,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/cmd/modutil/install-ds.c:803,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/modutil/install-ds.c:807,1
    - Dst: Pk11Install_PlatformName_GetString
      Src: /src/nss/cmd/modutil/install-ds.c:808,1
    - Dst: Pk11Install_ListIter_new
      Src: /src/nss/cmd/modutil/install-ds.c:811,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/modutil/install-ds.c:814,1
    - Dst: Pk11Install_PlatformName_GetString
      Src: /src/nss/cmd/modutil/install-ds.c:815,1
    - Dst: strtol
      Src: /src/nss/cmd/modutil/install-ds.c:818,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/modutil/install-ds.c:820,1
    - Dst: Pk11Install_PlatformName_GetString
      Src: /src/nss/cmd/modutil/install-ds.c:821,1
    - Dst: Pk11Install_ListIter_delete
      Src: /src/nss/cmd/modutil/install-ds.c:824,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/cmd/modutil/install-ds.c:826,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/modutil/install-ds.c:830,1
    - Dst: Pk11Install_PlatformName_GetString
      Src: /src/nss/cmd/modutil/install-ds.c:831,1
    - Dst: Pk11Install_ListIter_new
      Src: /src/nss/cmd/modutil/install-ds.c:834,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/modutil/install-ds.c:837,1
    - Dst: Pk11Install_PlatformName_GetString
      Src: /src/nss/cmd/modutil/install-ds.c:838,1
    - Dst: strtol
      Src: /src/nss/cmd/modutil/install-ds.c:841,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/modutil/install-ds.c:843,1
    - Dst: Pk11Install_PlatformName_GetString
      Src: /src/nss/cmd/modutil/install-ds.c:844,1
    - Dst: Pk11Install_ListIter_delete
      Src: /src/nss/cmd/modutil/install-ds.c:847,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/cmd/modutil/install-ds.c:849,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/modutil/install-ds.c:851,1
    - Dst: Pk11Install_PlatformName_GetString
      Src: /src/nss/cmd/modutil/install-ds.c:852,1
    - Dst: Pk11Install_ListIter_new
      Src: /src/nss/cmd/modutil/install-ds.c:855,1
    - Dst: PR_Malloc
      Src: /src/nss/cmd/modutil/install-ds.c:858,1
    - Dst: Pk11Install_ListIter_nextItem
      Src: /src/nss/cmd/modutil/install-ds.c:860,1
    - Dst: Pk11Install_File_init
      Src: /src/nss/cmd/modutil/install-ds.c:861,1
    - Dst: Pk11Install_File_Generate
      Src: /src/nss/cmd/modutil/install-ds.c:864,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/modutil/install-ds.c:866,1
    - Dst: Pk11Install_PlatformName_GetString
      Src: /src/nss/cmd/modutil/install-ds.c:867,1
    - Dst: PR_smprintf_free
      Src: /src/nss/cmd/modutil/install-ds.c:868,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/cmd/modutil/install-ds.c:875,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/modutil/install-ds.c:878,1
    - Dst: Pk11Install_PlatformName_GetString
      Src: /src/nss/cmd/modutil/install-ds.c:879,1
    - Dst: Pk11Install_ListIter_new
      Src: /src/nss/cmd/modutil/install-ds.c:882,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/modutil/install-ds.c:885,1
    - Dst: Pk11Install_PlatformName_GetString
      Src: /src/nss/cmd/modutil/install-ds.c:886,1
    - Dst: Pk11Install_PlatformName_Generate
      Src: /src/nss/cmd/modutil/install-ds.c:889,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/modutil/install-ds.c:892,1
    - Dst: Pk11Install_PlatformName_GetString
      Src: /src/nss/cmd/modutil/install-ds.c:893,1
    - Dst: PR_smprintf_free
      Src: /src/nss/cmd/modutil/install-ds.c:894,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/modutil/install-ds.c:906,1
    - Dst: Pk11Install_PlatformName_GetString
      Src: /src/nss/cmd/modutil/install-ds.c:907,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/modutil/install-ds.c:911,1
    - Dst: Pk11Install_PlatformName_GetString
      Src: /src/nss/cmd/modutil/install-ds.c:912,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/modutil/install-ds.c:916,1
    - Dst: Pk11Install_PlatformName_GetString
      Src: /src/nss/cmd/modutil/install-ds.c:917,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/modutil/install-ds.c:921,1
    - Dst: Pk11Install_PlatformName_GetString
      Src: /src/nss/cmd/modutil/install-ds.c:922,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/cmd/modutil/install-ds.c:929,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/modutil/install-ds.c:935,1
    - Dst: Pk11Install_PlatformName_GetString
      Src: /src/nss/cmd/modutil/install-ds.c:937,1
    - Dst: PR_Free
      Src: /src/nss/cmd/modutil/install-ds.c:944,1
    - Dst: PR_Free
      Src: /src/nss/cmd/modutil/install-ds.c:947,1
    CyclomaticComplexity: 74
    EdgeCount: 74
    ICount: 191
    argCount: 2
    argNames:
    - _this
    - pair
    argTypes:
    - Pk11Install_Platform*
    - Pk11Install_Pair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 950
      start: 735
    functionDepth: 3
    functionLinenumber: 735
    functionLinenumberEnd: 950
    functionName: Pk11Install_Platform_Generate
    functionSourceFile: /src/nss/cmd/modutil/install-ds.c
    functionUses: 0
    functionsReached:
    - Pk11Install_PlatformName_Generate
    - Pk11Install_ListIter_nextItem
    - PR_Malloc
    - PORT_Strcasecmp
    - Pk11Install_ListIter_delete
    - Pk11Install_File_init
    - Pk11Install_Platform_Cleanup
    - Pk11Install_File_Generate
    - PR_Free
    - PR_smprintf_free
    - PR_smprintf
    - Pk11Install_ListIter_new
    - Pk11Install_PlatformName_GetString
    - strtol
    - PR_Strdup
    linkageType: ''
    returnType: char
    signature: "char *\nPk11Install_Platform_Generate(Pk11Install_Platform* _this,\n
      \                             const Pk11Install_Pair* pair)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PAD
      Src: /src/nss/cmd/modutil/install-ds.c:962,1
    - Dst: printf
      Src: /src/nss/cmd/modutil/install-ds.c:963,1
    - Dst: Pk11Install_PlatformName_Print
      Src: /src/nss/cmd/modutil/install-ds.c:964,1
    - Dst: PAD
      Src: /src/nss/cmd/modutil/install-ds.c:965,1
    - Dst: printf
      Src: /src/nss/cmd/modutil/install-ds.c:966,1
    - Dst: Pk11Install_PlatformName_Print
      Src: /src/nss/cmd/modutil/install-ds.c:967,1
    - Dst: PAD
      Src: /src/nss/cmd/modutil/install-ds.c:968,1
    - Dst: printf
      Src: /src/nss/cmd/modutil/install-ds.c:970,1
    - Dst: Pk11Install_Platform_Print
      Src: /src/nss/cmd/modutil/install-ds.c:971,1
    - Dst: printf
      Src: /src/nss/cmd/modutil/install-ds.c:973,1
    - Dst: PAD
      Src: /src/nss/cmd/modutil/install-ds.c:975,1
    - Dst: printf
      Src: /src/nss/cmd/modutil/install-ds.c:976,1
    - Dst: PAD
      Src: /src/nss/cmd/modutil/install-ds.c:977,1
    - Dst: printf
      Src: /src/nss/cmd/modutil/install-ds.c:978,1
    - Dst: PAD
      Src: /src/nss/cmd/modutil/install-ds.c:979,1
    - Dst: printf
      Src: /src/nss/cmd/modutil/install-ds.c:980,1
    - Dst: PAD
      Src: /src/nss/cmd/modutil/install-ds.c:981,1
    - Dst: printf
      Src: /src/nss/cmd/modutil/install-ds.c:982,1
    - Dst: Pk11Install_File_Print
      Src: /src/nss/cmd/modutil/install-ds.c:984,1
    - Dst: PAD
      Src: /src/nss/cmd/modutil/install-ds.c:985,1
    - Dst: printf
      Src: /src/nss/cmd/modutil/install-ds.c:986,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 2
    argNames:
    - _this
    - pad
    argTypes:
    - Pk11Install_Platform*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 957
    functionDepth: 3
    functionLinenumber: 957
    functionLinenumberEnd: 988
    functionName: Pk11Install_Platform_Print
    functionSourceFile: /src/nss/cmd/modutil/install-ds.c
    functionUses: 1
    functionsReached:
    - Pk11Install_File_Print
    - Pk11Install_PlatformName_Print
    - printf
    - PAD
    - Pk11Install_Platform_Print
    linkageType: ''
    returnType: void
    signature: void Pk11Install_Platform_Print(Pk11Install_Platform* _this, int pad)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_Malloc
      Src: /src/nss/cmd/modutil/install-ds.c:999,1
    - Dst: Pk11Install_Info_init
      Src: /src/nss/cmd/modutil/install-ds.c:1000,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 995
    functionDepth: 1
    functionLinenumber: 995
    functionLinenumberEnd: 1002
    functionName: Pk11Install_Info_new
    functionSourceFile: /src/nss/cmd/modutil/install-ds.c
    functionUses: 0
    functionsReached:
    - PR_Malloc
    - Pk11Install_Info_init
    linkageType: ''
    returnType: Pk11Install_Info
    signature: 'Pk11Install_Info *

      Pk11Install_Info_new()'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - _this
    argTypes:
    - Pk11Install_Info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 1004
    functionDepth: 0
    functionLinenumber: 1004
    functionLinenumberEnd: 1011
    functionName: Pk11Install_Info_init
    functionSourceFile: /src/nss/cmd/modutil/install-ds.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Pk11Install_Info_init(Pk11Install_Info* _this)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Pk11Install_Info_Cleanup
      Src: /src/nss/cmd/modutil/install-ds.c:1021,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _this
    argTypes:
    - Pk11Install_Info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 1018
    functionDepth: 1
    functionLinenumber: 1018
    functionLinenumberEnd: 1022
    functionName: Pk11Install_Info_delete
    functionSourceFile: /src/nss/cmd/modutil/install-ds.c
    functionUses: 0
    functionsReached:
    - Pk11Install_Info_Cleanup
    linkageType: ''
    returnType: void
    signature: void Pk11Install_Info_delete(Pk11Install_Info* _this)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Pk11Install_Platform_delete
      Src: /src/nss/cmd/modutil/install-ds.c:1035,1
    - Dst: PR_Free
      Src: /src/nss/cmd/modutil/install-ds.c:1037,1
    - Dst: Pk11Install_PlatformName_delete
      Src: /src/nss/cmd/modutil/install-ds.c:1044,1
    - Dst: PR_Free
      Src: /src/nss/cmd/modutil/install-ds.c:1046,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - _this
    argTypes:
    - Pk11Install_Info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1029
    functionDepth: 2
    functionLinenumber: 1029
    functionLinenumberEnd: 1049
    functionName: Pk11Install_Info_Cleanup
    functionSourceFile: /src/nss/cmd/modutil/install-ds.c
    functionUses: 1
    functionsReached:
    - Pk11Install_PlatformName_delete
    - Pk11Install_Platform_delete
    - PR_Free
    linkageType: ''
    returnType: void
    signature: void Pk11Install_Info_Cleanup(Pk11Install_Info* _this)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: Pk11Install_Info_Cleanup
      Src: /src/nss/cmd/modutil/install-ds.c:1075,1
    - Dst: Pk11Install_ListIter_new
      Src: /src/nss/cmd/modutil/install-ds.c:1077,1
    - Dst: Pk11Install_ListIter_nextItem
      Src: /src/nss/cmd/modutil/install-ds.c:1078,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/cmd/modutil/install-ds.c:1082,1
    - Dst: Pk11Install_ListIter_new
      Src: /src/nss/cmd/modutil/install-ds.c:1083,1
    - Dst: PR_Malloc
      Src: /src/nss/cmd/modutil/install-ds.c:1086,1
    - Dst: Pk11Install_ListIter_nextItem
      Src: /src/nss/cmd/modutil/install-ds.c:1089,1
    - Dst: Pk11Install_PlatformName_Generate
      Src: /src/nss/cmd/modutil/install-ds.c:1092,1
    - Dst: Pk11Install_ListIter_delete
      Src: /src/nss/cmd/modutil/install-ds.c:1099,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/cmd/modutil/install-ds.c:1100,1
    - Dst: Pk11Install_ListIter_new
      Src: /src/nss/cmd/modutil/install-ds.c:1101,1
    - Dst: PR_Malloc
      Src: /src/nss/cmd/modutil/install-ds.c:1104,1
    - Dst: Pk11Install_ListIter_nextItem
      Src: /src/nss/cmd/modutil/install-ds.c:1107,1
    - Dst: Pk11Install_Platform_init
      Src: /src/nss/cmd/modutil/install-ds.c:1108,1
    - Dst: Pk11Install_Platform_Generate
      Src: /src/nss/cmd/modutil/install-ds.c:1111,1
    - Dst: Pk11Install_ListIter_delete
      Src: /src/nss/cmd/modutil/install-ds.c:1117,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/modutil/install-ds.c:1123,1
    - Dst: Pk11Install_PlatformName_equal
      Src: /src/nss/cmd/modutil/install-ds.c:1138,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/modutil/install-ds.c:1141,1
    - Dst: Pk11Install_PlatformName_GetString
      Src: /src/nss/cmd/modutil/install-ds.c:1142,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/modutil/install-ds.c:1150,1
    - Dst: Pk11Install_PlatformName_GetString
      Src: /src/nss/cmd/modutil/install-ds.c:1151,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/modutil/install-ds.c:1176,1
    - Dst: Pk11Install_PlatformName_GetString
      Src: /src/nss/cmd/modutil/install-ds.c:1177,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/modutil/install-ds.c:1185,1
    - Dst: Pk11Install_PlatformName_GetString
      Src: /src/nss/cmd/modutil/install-ds.c:1186,1
    - Dst: Pk11Install_ListIter_delete
      Src: /src/nss/cmd/modutil/install-ds.c:1198,1
    - Dst: Pk11Install_ListIter_delete
      Src: /src/nss/cmd/modutil/install-ds.c:1201,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 106
    argCount: 2
    argNames:
    - _this
    - list
    argTypes:
    - Pk11Install_Info*
    - Pk11Install_ValueList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1204
      start: 1060
    functionDepth: 4
    functionLinenumber: 1060
    functionLinenumberEnd: 1204
    functionName: Pk11Install_Info_Generate
    functionSourceFile: /src/nss/cmd/modutil/install-ds.c
    functionUses: 1
    functionsReached:
    - Pk11Install_ListIter_nextItem
    - PR_Malloc
    - Pk11Install_PlatformName_Generate
    - PORT_Strcasecmp
    - Pk11Install_ListIter_delete
    - Pk11Install_Platform_Generate
    - Pk11Install_Platform_init
    - Pk11Install_Info_Cleanup
    - Pk11Install_PlatformName_equal
    - PR_smprintf
    - Pk11Install_ListIter_new
    - Pk11Install_PlatformName_GetString
    linkageType: ''
    returnType: char
    signature: "char *\nPk11Install_Info_Generate(Pk11Install_Info* _this,\n                          const
      Pk11Install_ValueList* list)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Pk11Install_PlatformName_init
      Src: /src/nss/cmd/modutil/install-ds.c:1222,1
    - Dst: Pk11Install_PlatformName_Generate
      Src: /src/nss/cmd/modutil/install-ds.c:1223,1
    - Dst: PR_smprintf_free
      Src: /src/nss/cmd/modutil/install-ds.c:1224,1
    - Dst: Pk11Install_PlatformName_equal
      Src: /src/nss/cmd/modutil/install-ds.c:1230,1
    - Dst: Pk11Install_PlatformName_lteq
      Src: /src/nss/cmd/modutil/install-ds.c:1241,1
    - Dst: Pk11Install_PlatformName_equal
      Src: /src/nss/cmd/modutil/install-ds.c:1251,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 2
    argNames:
    - _this
    - myPlatform
    argTypes:
    - Pk11Install_Info*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1262
      start: 1213
    functionDepth: 2
    functionLinenumber: 1213
    functionLinenumberEnd: 1262
    functionName: Pk11Install_Info_GetBestPlatform
    functionSourceFile: /src/nss/cmd/modutil/install-ds.c
    functionUses: 1
    functionsReached:
    - Pk11Install_PlatformName_Generate
    - Pk11Install_PlatformName_lteq
    - Pk11Install_PlatformName_equal
    - PR_smprintf_free
    - Pk11Install_PlatformName_init
    linkageType: ''
    returnType: Pk11Install_Platform
    signature: 'Pk11Install_Platform *

      Pk11Install_Info_GetBestPlatform(Pk11Install_Info* _this, char* myPlatform)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PAD
      Src: /src/nss/cmd/modutil/install-ds.c:1274,1
    - Dst: printf
      Src: /src/nss/cmd/modutil/install-ds.c:1275,1
    - Dst: Pk11Install_PlatformName_Print
      Src: /src/nss/cmd/modutil/install-ds.c:1277,1
    - Dst: PAD
      Src: /src/nss/cmd/modutil/install-ds.c:1278,1
    - Dst: printf
      Src: /src/nss/cmd/modutil/install-ds.c:1279,1
    - Dst: PAD
      Src: /src/nss/cmd/modutil/install-ds.c:1281,1
    - Dst: printf
      Src: /src/nss/cmd/modutil/install-ds.c:1282,1
    - Dst: Pk11Install_Platform_Print
      Src: /src/nss/cmd/modutil/install-ds.c:1284,1
    - Dst: PAD
      Src: /src/nss/cmd/modutil/install-ds.c:1285,1
    - Dst: printf
      Src: /src/nss/cmd/modutil/install-ds.c:1286,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - _this
    - pad
    argTypes:
    - Pk11Install_Info*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1288
      start: 1269
    functionDepth: 4
    functionLinenumber: 1269
    functionLinenumberEnd: 1288
    functionName: Pk11Install_Info_Print
    functionSourceFile: /src/nss/cmd/modutil/install-ds.c
    functionUses: 0
    functionsReached:
    - PAD
    - Pk11Install_Platform_Print
    - printf
    - Pk11Install_PlatformName_Print
    linkageType: ''
    returnType: void
    signature: void Pk11Install_Info_Print(Pk11Install_Info* _this, int pad)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_Malloc
      Src: /src/nss/cmd/modutil/install-ds.c:1297,1
    - Dst: strlen
      Src: /src/nss/cmd/modutil/install-ds.c:1297,1
    - Dst: strcpy
      Src: /src/nss/cmd/modutil/install-ds.c:1298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1300
      start: 1293
    functionDepth: 1
    functionLinenumber: 1293
    functionLinenumberEnd: 1300
    functionName: PR_Strdup
    functionSourceFile: /src/nss/cmd/modutil/install-ds.c
    functionUses: 7
    functionsReached:
    - PR_Malloc
    - strcpy
    - strlen
    linkageType: ''
    returnType: char
    signature: 'char *

      PR_Strdup(const char* str)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - _this
    - item
    argTypes:
    - Pk11Install_ValueList*
    - Pk11Install_Value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1318
      start: 1306
    functionDepth: 0
    functionLinenumber: 1306
    functionLinenumberEnd: 1318
    functionName: Pk11Install_ValueList_AddItem
    functionSourceFile: /src/nss/cmd/modutil/install-ds.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Pk11Install_ValueList_AddItem(Pk11Install_ValueList* _this,\n
      \                             Pk11Install_Value* item)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_Malloc
      Src: /src/nss/cmd/modutil/install-ds.c:1326,1
    - Dst: Pk11Install_ListIter_init
      Src: /src/nss/cmd/modutil/install-ds.c:1327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1329
      start: 1321
    functionDepth: 1
    functionLinenumber: 1321
    functionLinenumberEnd: 1329
    functionName: Pk11Install_ListIter_new_default
    functionSourceFile: /src/nss/cmd/modutil/install-ds.c
    functionUses: 0
    functionsReached:
    - PR_Malloc
    - Pk11Install_ListIter_init
    linkageType: ''
    returnType: Pk11Install_ListIter
    signature: 'Pk11Install_ListIter *

      Pk11Install_ListIter_new_default()'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - _this
    argTypes:
    - Pk11Install_ListIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1337
      start: 1332
    functionDepth: 0
    functionLinenumber: 1332
    functionLinenumberEnd: 1337
    functionName: Pk11Install_ListIter_init
    functionSourceFile: /src/nss/cmd/modutil/install-ds.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Pk11Install_ListIter_init(Pk11Install_ListIter* _this)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_Malloc
      Src: /src/nss/cmd/modutil/install-ds.c:1345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - _list
    argTypes:
    - Pk11Install_ValueList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1349
      start: 1340
    functionDepth: 1
    functionLinenumber: 1340
    functionLinenumberEnd: 1349
    functionName: Pk11Install_ListIter_new
    functionSourceFile: /src/nss/cmd/modutil/install-ds.c
    functionUses: 3
    functionsReached:
    - PR_Malloc
    linkageType: ''
    returnType: Pk11Install_ListIter
    signature: 'Pk11Install_ListIter *

      Pk11Install_ListIter_new(const Pk11Install_ValueList* _list)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_Free
      Src: /src/nss/cmd/modutil/install-ds.c:1357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - _this
    argTypes:
    - Pk11Install_ListIter**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1359
      start: 1352
    functionDepth: 1
    functionLinenumber: 1352
    functionLinenumberEnd: 1359
    functionName: Pk11Install_ListIter_delete
    functionSourceFile: /src/nss/cmd/modutil/install-ds.c
    functionUses: 3
    functionsReached:
    - PR_Free
    linkageType: ''
    returnType: void
    signature: void Pk11Install_ListIter_delete(Pk11Install_ListIter** _this)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - _this
    argTypes:
    - Pk11Install_ListIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1368
      start: 1362
    functionDepth: 0
    functionLinenumber: 1362
    functionLinenumberEnd: 1368
    functionName: Pk11Install_ListIter_reset
    functionSourceFile: /src/nss/cmd/modutil/install-ds.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Pk11Install_ListIter_reset(Pk11Install_ListIter* _this)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - _this
    argTypes:
    - Pk11Install_ListIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1379
      start: 1371
    functionDepth: 0
    functionLinenumber: 1371
    functionLinenumberEnd: 1379
    functionName: Pk11Install_ListIter_nextItem
    functionSourceFile: /src/nss/cmd/modutil/install-ds.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: Pk11Install_Value
    signature: 'Pk11Install_Value *

      Pk11Install_ListIter_nextItem(Pk11Install_ListIter* _this)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_Malloc
      Src: /src/nss/cmd/modutil/install-ds.c:1387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1393
      start: 1382
    functionDepth: 1
    functionLinenumber: 1382
    functionLinenumberEnd: 1393
    functionName: Pk11Install_ValueList_new
    functionSourceFile: /src/nss/cmd/modutil/install-ds.c
    functionUses: 1
    functionsReached:
    - PR_Malloc
    linkageType: ''
    returnType: Pk11Install_ValueList
    signature: 'Pk11Install_ValueList *

      Pk11Install_ValueList_new()'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_Free
      Src: /src/nss/cmd/modutil/install-ds.c:1407,1
    - Dst: PR_Free
      Src: /src/nss/cmd/modutil/install-ds.c:1409,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - _this
    argTypes:
    - Pk11Install_ValueList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1410
      start: 1396
    functionDepth: 1
    functionLinenumber: 1396
    functionLinenumberEnd: 1410
    functionName: Pk11Install_ValueList_delete
    functionSourceFile: /src/nss/cmd/modutil/install-ds.c
    functionUses: 1
    functionsReached:
    - PR_Free
    linkageType: ''
    returnType: void
    signature: void Pk11Install_ValueList_delete(Pk11Install_ValueList* _this)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_Malloc
      Src: /src/nss/cmd/modutil/install-ds.c:1417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1423
      start: 1413
    functionDepth: 1
    functionLinenumber: 1413
    functionLinenumberEnd: 1423
    functionName: Pk11Install_Value_new_default
    functionSourceFile: /src/nss/cmd/modutil/install-ds.c
    functionUses: 0
    functionsReached:
    - PR_Malloc
    linkageType: ''
    returnType: Pk11Install_Value
    signature: 'Pk11Install_Value *

      Pk11Install_Value_new_default()'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Pk11Install_Value_new_default
      Src: /src/nss/cmd/modutil/install-ds.c:1430,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - _type
    - ptr
    argTypes:
    - ValueType
    - Pk11Install_Pointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1440
      start: 1426
    functionDepth: 2
    functionLinenumber: 1426
    functionLinenumberEnd: 1440
    functionName: Pk11Install_Value_new
    functionSourceFile: /src/nss/cmd/modutil/install-ds.c
    functionUses: 1
    functionsReached:
    - Pk11Install_Value_new_default
    linkageType: ''
    returnType: Pk11Install_Value
    signature: 'Pk11Install_Value *

      Pk11Install_Value_new(ValueType _type, Pk11Install_Pointer ptr)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_Free
      Src: /src/nss/cmd/modutil/install-ds.c:1447,1
    - Dst: PR_Free
      Src: /src/nss/cmd/modutil/install-ds.c:1449,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - _this
    argTypes:
    - Pk11Install_Value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1451
      start: 1443
    functionDepth: 1
    functionLinenumber: 1443
    functionLinenumberEnd: 1451
    functionName: Pk11Install_Value_delete
    functionSourceFile: /src/nss/cmd/modutil/install-ds.c
    functionUses: 0
    functionsReached:
    - PR_Free
    linkageType: ''
    returnType: void
    signature: void Pk11Install_Value_delete(Pk11Install_Value* _this)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Pk11Install_Pair_new
      Src: /src/nss/cmd/modutil/install-ds.c:1457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1458
      start: 1454
    functionDepth: 1
    functionLinenumber: 1454
    functionLinenumberEnd: 1458
    functionName: Pk11Install_Pair_new_default
    functionSourceFile: /src/nss/cmd/modutil/install-ds.c
    functionUses: 0
    functionsReached:
    - Pk11Install_Pair_new
    linkageType: ''
    returnType: Pk11Install_Pair
    signature: 'Pk11Install_Pair *

      Pk11Install_Pair_new_default()'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_Malloc
      Src: /src/nss/cmd/modutil/install-ds.c:1465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - _key
    - _list
    argTypes:
    - char*
    - Pk11Install_ValueList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1469
      start: 1461
    functionDepth: 1
    functionLinenumber: 1461
    functionLinenumberEnd: 1469
    functionName: Pk11Install_Pair_new
    functionSourceFile: /src/nss/cmd/modutil/install-ds.c
    functionUses: 2
    functionsReached:
    - PR_Malloc
    linkageType: ''
    returnType: Pk11Install_Pair
    signature: 'Pk11Install_Pair *

      Pk11Install_Pair_new(char* _key, Pk11Install_ValueList* _list)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_Free
      Src: /src/nss/cmd/modutil/install-ds.c:1475,1
    - Dst: Pk11Install_ValueList_delete
      Src: /src/nss/cmd/modutil/install-ds.c:1476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - _this
    argTypes:
    - Pk11Install_Pair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1477
      start: 1472
    functionDepth: 2
    functionLinenumber: 1472
    functionLinenumberEnd: 1477
    functionName: Pk11Install_Pair_delete
    functionSourceFile: /src/nss/cmd/modutil/install-ds.c
    functionUses: 0
    functionsReached:
    - PR_Free
    - Pk11Install_ValueList_delete
    linkageType: ''
    returnType: void
    signature: void Pk11Install_Pair_delete(Pk11Install_Pair* _this)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PAD
      Src: /src/nss/cmd/modutil/install-ds.c:1486,1
    - Dst: printf
      Src: /src/nss/cmd/modutil/install-ds.c:1487,1
    - Dst: Pk11Install_ValueList_Print
      Src: /src/nss/cmd/modutil/install-ds.c:1490,1
    - Dst: PAD
      Src: /src/nss/cmd/modutil/install-ds.c:1491,1
    - Dst: printf
      Src: /src/nss/cmd/modutil/install-ds.c:1492,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - _this
    - pad
    argTypes:
    - Pk11Install_Pair*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1494
      start: 1480
    functionDepth: 1
    functionLinenumber: 1480
    functionLinenumberEnd: 1494
    functionName: Pk11Install_Pair_Print
    functionSourceFile: /src/nss/cmd/modutil/install-ds.c
    functionUses: 0
    functionsReached:
    - PAD
    - printf
    - Pk11Install_ValueList_Print
    linkageType: ''
    returnType: void
    signature: void Pk11Install_Pair_Print(Pk11Install_Pair* _this, int pad)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Pk11Install_Value_Print
      Src: /src/nss/cmd/modutil/install-ds.c:1504,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - _this
    - pad
    argTypes:
    - Pk11Install_ValueList*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1506
      start: 1497
    functionDepth: 1
    functionLinenumber: 1497
    functionLinenumberEnd: 1506
    functionName: Pk11Install_ValueList_Print
    functionSourceFile: /src/nss/cmd/modutil/install-ds.c
    functionUses: 1
    functionsReached:
    - Pk11Install_Value_Print
    linkageType: ''
    returnType: void
    signature: void Pk11Install_ValueList_Print(Pk11Install_ValueList* _this, int
      pad)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PAD
      Src: /src/nss/cmd/modutil/install-ds.c:1516,1
    - Dst: printf
      Src: /src/nss/cmd/modutil/install-ds.c:1517,1
    - Dst: Pk11Install_Pair_Print
      Src: /src/nss/cmd/modutil/install-ds.c:1520,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - _this
    - pad
    argTypes:
    - Pk11Install_Value*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1522
      start: 1509
    functionDepth: 2
    functionLinenumber: 1509
    functionLinenumberEnd: 1522
    functionName: Pk11Install_Value_Print
    functionSourceFile: /src/nss/cmd/modutil/install-ds.c
    functionUses: 1
    functionsReached:
    - PAD
    - printf
    - Pk11Install_Pair_Print
    linkageType: ''
    returnType: void
    signature: void Pk11Install_Value_Print(Pk11Install_Value* _this, int pad)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - proto
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: YY_PROTO
    functionSourceFile: /src/nss/cmd/modutil/lex.Pk11Install_yy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_PROTO(proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - proto
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: YY_PROTO
    functionSourceFile: /src/nss/cmd/modutil/lex.Pk11Install_yy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_PROTO(proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 90
    functionName: YY_SC_TO_UI
    functionSourceFile: /src/nss/cmd/modutil/lex.Pk11Install_yy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_SC_TO_UI(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - state
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 106
    functionName: YY_STATE_EOF
    functionSourceFile: /src/nss/cmd/modutil/lex.Pk11Install_yy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_STATE_EOF(state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 142
    functionName: yyless
    functionSourceFile: /src/nss/cmd/modutil/lex.Pk11Install_yy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: yyless(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 150
    functionName: unput
    functionSourceFile: /src/nss/cmd/modutil/lex.Pk11Install_yy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unput(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - is_interactive
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 264
    functionName: yy_set_interactive
    functionSourceFile: /src/nss/cmd/modutil/lex.Pk11Install_yy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: yy_set_interactive(is_interactive)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - at_bol
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 271
    functionName: yy_set_bol
    functionSourceFile: /src/nss/cmd/modutil/lex.Pk11Install_yy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: yy_set_bol(at_bol)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 273
    functionName: YY_AT_BOL
    functionSourceFile: /src/nss/cmd/modutil/lex.Pk11Install_yy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_AT_BOL()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 360
    functionName: yymore
    functionSourceFile: /src/nss/cmd/modutil/lex.Pk11Install_yy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: yymore()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - buf
    - ','
    - result
    - ','
    - max_size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 407
    functionName: YY_INPUT
    functionSourceFile: /src/nss/cmd/modutil/lex.Pk11Install_yy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_INPUT(buf, result, max_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - buf
    - ','
    - result
    - ','
    - max_size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 516
    functionName: YY_INPUT
    functionSourceFile: /src/nss/cmd/modutil/lex.Pk11Install_yy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_INPUT(buf, result, max_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 524
    functionName: yyterminate
    functionSourceFile: /src/nss/cmd/modutil/lex.Pk11Install_yy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: yyterminate()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 534
    functionName: YY_FATAL_ERROR
    functionSourceFile: /src/nss/cmd/modutil/lex.Pk11Install_yy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_FATAL_ERROR(msg)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: YY_FATAL_ERROR
      Src: /src/nss/cmd/modutil/lex.Pk11Install_yy.c:836,1
    - Dst: YY_FATAL_ERROR
      Src: /src/nss/cmd/modutil/lex.Pk11Install_yy.c:875,1
    - Dst: yy_flex_realloc
      Src: /src/nss/cmd/modutil/lex.Pk11Install_yy.c:895,1
    - Dst: YY_FATAL_ERROR
      Src: /src/nss/cmd/modutil/lex.Pk11Install_yy.c:902,1
    - Dst: YY_INPUT
      Src: /src/nss/cmd/modutil/lex.Pk11Install_yy.c:916,1
    - Dst: yyrestart
      Src: /src/nss/cmd/modutil/lex.Pk11Install_yy.c:925,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 827
    functionDepth: 0
    functionLinenumber: 827
    functionLinenumberEnd: 945
    functionName: yy_get_next_buffer
    functionSourceFile: /src/nss/cmd/modutil/lex.Pk11Install_yy.c
    functionUses: 0
    functionsReached:
    - yy_flex_realloc
    - yyrestart
    - YY_INPUT
    - YY_FATAL_ERROR
    linkageType: ''
    returnType: int
    signature: int yy_get_next_buffer()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: YY_SC_TO_UI
      Src: /src/nss/cmd/modutil/lex.Pk11Install_yy.c:958,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 949
    functionDepth: 0
    functionLinenumber: 949
    functionLinenumberEnd: 972
    functionName: yy_get_previous_state
    functionSourceFile: /src/nss/cmd/modutil/lex.Pk11Install_yy.c
    functionUses: 0
    functionsReached:
    - YY_SC_TO_UI
    linkageType: ''
    returnType: yy_state_type
    signature: yy_state_type yy_get_previous_state()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: yy_get_next_buffer
      Src: /src/nss/cmd/modutil/lex.Pk11Install_yy.c:1076,1
    - Dst: yyrestart
      Src: /src/nss/cmd/modutil/lex.Pk11Install_yy.c:1089,1
    - Dst: yywrap
      Src: /src/nss/cmd/modutil/lex.Pk11Install_yy.c:1094,1
    - Dst: yyinput
      Src: /src/nss/cmd/modutil/lex.Pk11Install_yy.c:1100,1
    - Dst: input
      Src: /src/nss/cmd/modutil/lex.Pk11Install_yy.c:1102,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1118
      start: 1055
    functionDepth: 1
    functionLinenumber: 1055
    functionLinenumberEnd: 1118
    functionName: input
    functionSourceFile: /src/nss/cmd/modutil/lex.Pk11Install_yy.c
    functionUses: 1
    functionsReached:
    - yyinput
    - yywrap
    - input
    - yyrestart
    - yy_get_next_buffer
    linkageType: ''
    returnType: int
    signature: int input()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1169
    functionDepth: 0
    functionLinenumber: 1169
    functionLinenumberEnd: 1177
    functionName: yy_load_buffer_state
    functionSourceFile: /src/nss/cmd/modutil/lex.Pk11Install_yy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void yy_load_buffer_state()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: YY_FATAL_ERROR
      Src: /src/nss/cmd/modutil/lex.Pk11Install_yy.c:1426,1
    - Dst: BEGIN
      Src: /src/nss/cmd/modutil/lex.Pk11Install_yy.c:1428,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1429
      start: 1422
    functionDepth: 0
    functionLinenumber: 1422
    functionLinenumberEnd: 1429
    functionName: yy_pop_state
    functionSourceFile: /src/nss/cmd/modutil/lex.Pk11Install_yy.c
    functionUses: 0
    functionsReached:
    - BEGIN
    - YY_FATAL_ERROR
    linkageType: ''
    returnType: void
    signature: void yy_pop_state()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1437
      start: 1433
    functionDepth: 0
    functionLinenumber: 1433
    functionLinenumberEnd: 1437
    functionName: yy_top_state
    functionSourceFile: /src/nss/cmd/modutil/lex.Pk11Install_yy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int yy_top_state()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: yylex
      Src: /src/nss/cmd/modutil/lex.Pk11Install_yy.c:1548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1550
      start: 1545
    functionDepth: 0
    functionLinenumber: 1545
    functionLinenumberEnd: 1550
    functionName: main
    functionSourceFile: /src/nss/cmd/modutil/lex.Pk11Install_yy.c
    functionUses: 2
    functionsReached:
    - yylex
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1564
      start: 1560
    functionDepth: 0
    functionLinenumber: 1560
    functionLinenumberEnd: 1564
    functionName: Pk11Install_yywrap
    functionSourceFile: /src/nss/cmd/modutil/lex.Pk11Install_yy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int Pk11Install_yywrap(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_Malloc
      Src: /src/nss/cmd/modutil/lex.Pk11Install_yy.c:1571,1
    - Dst: strlen
      Src: /src/nss/cmd/modutil/lex.Pk11Install_yy.c:1571,1
    - Dst: strcpy
      Src: /src/nss/cmd/modutil/lex.Pk11Install_yy.c:1572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1574
      start: 1568
    functionDepth: 1
    functionLinenumber: 1568
    functionLinenumberEnd: 1574
    functionName: putSimpleString
    functionSourceFile: /src/nss/cmd/modutil/lex.Pk11Install_yy.c
    functionUses: 0
    functionsReached:
    - PR_Malloc
    - strcpy
    - strlen
    linkageType: ''
    returnType: char
    signature: 'char *

      putSimpleString(char *str)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nss/cmd/modutil/lex.Pk11Install_yy.c:1589,1
    - Dst: PR_Malloc
      Src: /src/nss/cmd/modutil/lex.Pk11Install_yy.c:1593,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1607
      start: 1580
    functionDepth: 1
    functionLinenumber: 1580
    functionLinenumberEnd: 1607
    functionName: putComplexString
    functionSourceFile: /src/nss/cmd/modutil/lex.Pk11Install_yy.c
    functionUses: 0
    functionsReached:
    - PR_Malloc
    - strlen
    linkageType: ''
    returnType: char
    signature: 'char *

      putComplexString(char *str)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fwrite
      Src: /src/nss/cmd/atob/atob.c:29,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/atob/atob.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - arg
    - obuf
    - size
    argTypes:
    - void*
    - unsigned char*
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 36
    functionName: output_binary
    functionSourceFile: /src/nss/cmd/atob/atob.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - fwrite
    linkageType: ''
    returnType: PRInt32
    signature: PRInt32 output_binary(void *arg, const unsigned char *obuf, PRInt32
      size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 46
    functionName: isBase64Char
    functionSourceFile: /src/nss/cmd/atob/atob.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool isBase64Char(char c)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: NSSBase64Decoder_Create
      Src: /src/nss/cmd/atob/atob.c:56,1
    - Dst: feof
      Src: /src/nss/cmd/atob/atob.c:62,1
    - Dst: fgets
      Src: /src/nss/cmd/atob/atob.c:64,1
    - Dst: ferror
      Src: /src/nss/cmd/atob/atob.c:65,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/atob/atob.c:66,1
    - Dst: isBase64Char
      Src: /src/nss/cmd/atob/atob.c:77,1
    - Dst: NSSBase64Decoder_Update
      Src: /src/nss/cmd/atob/atob.c:86,1
    - Dst: NSSBase64Decoder_Destroy
      Src: /src/nss/cmd/atob/atob.c:91,1
    - Dst: NSSBase64Decoder_Destroy
      Src: /src/nss/cmd/atob/atob.c:94,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 38
    argCount: 2
    argNames:
    - outFile
    - inFile
    argTypes:
    - FILE*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 96
    functionName: decode_file
    functionSourceFile: /src/nss/cmd/atob/atob.c
    functionUses: 0
    functionsReached:
    - fgets
    - NSSBase64Decoder_Create
    - ferror
    - feof
    - PORT_SetError
    - NSSBase64Decoder_Destroy
    - NSSBase64Decoder_Update
    - isBase64Char
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus decode_file(FILE *outFile, FILE *inFile)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/atob/atob.c:101,1
    - Dst: fprintf
      Src: /src/nss/cmd/atob/atob.c:104,1
    - Dst: fprintf
      Src: /src/nss/cmd/atob/atob.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - progName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 108
    functionName: Usage
    functionSourceFile: /src/nss/cmd/atob/atob.c
    functionUses: 15
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void Usage(char *progName)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/nss/cmd/atob/atob.c:121,1
    - Dst: PL_CreateOptState
      Src: /src/nss/cmd/atob/atob.c:125,1
    - Dst: PL_GetNextOpt
      Src: /src/nss/cmd/atob/atob.c:126,1
    - Dst: Usage
      Src: /src/nss/cmd/atob/atob.c:130,1
    - Dst: fopen
      Src: /src/nss/cmd/atob/atob.c:135,1
    - Dst: fprintf
      Src: /src/nss/cmd/atob/atob.c:137,1
    - Dst: fopen
      Src: /src/nss/cmd/atob/atob.c:144,1
    - Dst: fprintf
      Src: /src/nss/cmd/atob/atob.c:146,1
    - Dst: _setmode
      Src: /src/nss/cmd/atob/atob.c:159,1
    - Dst: _fileno
      Src: /src/nss/cmd/atob/atob.c:159,1
    - Dst: fprintf
      Src: /src/nss/cmd/atob/atob.c:161,1
    - Dst: decode_file
      Src: /src/nss/cmd/atob/atob.c:170,1
    - Dst: fprintf
      Src: /src/nss/cmd/atob/atob.c:172,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/atob/atob.c:173,1
    - Dst: PL_DestroyOptState
      Src: /src/nss/cmd/atob/atob.c:179,1
    - Dst: fclose
      Src: /src/nss/cmd/atob/atob.c:182,1
    - Dst: fclose
      Src: /src/nss/cmd/atob/atob.c:185,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 62
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 188
    functionName: main
    functionSourceFile: /src/nss/cmd/atob/atob.c
    functionUses: 2
    functionsReached:
    - fclose
    - PL_GetNextOpt
    - _fileno
    - PORT_GetError
    - PL_DestroyOptState
    - fprintf
    - fopen
    - decode_file
    - strrchr
    - Usage
    - PL_CreateOptState
    - _setmode
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/dbtool/dbtool.c:52,1
    - Dst: printf
      Src: /src/nss/cmd/dbtool/dbtool.c:56,1
    - Dst: printf
      Src: /src/nss/cmd/dbtool/dbtool.c:58,1
    - Dst: printf
      Src: /src/nss/cmd/dbtool/dbtool.c:60,1
    - Dst: printf
      Src: /src/nss/cmd/dbtool/dbtool.c:62,1
    - Dst: printf
      Src: /src/nss/cmd/dbtool/dbtool.c:64,1
    - Dst: exit
      Src: /src/nss/cmd/dbtool/dbtool.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 67
    functionName: Usage
    functionSourceFile: /src/nss/cmd/dbtool/dbtool.c
    functionUses: 16
    functionsReached:
    - printf
    - exit
    linkageType: ''
    returnType: void
    signature: void Usage()
  - BBCount: 36
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 41
    argCount: 1
    argNames:
    - type
    argTypes:
    - CK_ATTRIBUTE_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 166
    functionName: isULONGAttribute
    functionSourceFile: /src/nss/cmd/dbtool/dbtool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool isULONGAttribute(CK_ATTRIBUTE_TYPE type)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - type
    argTypes:
    - CK_ATTRIBUTE_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 185
    functionName: isPrivateAttribute
    functionSourceFile: /src/nss/cmd/dbtool/dbtool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool isPrivateAttribute(CK_ATTRIBUTE_TYPE type)
  - BBCount: 17
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 1
    argNames:
    - type
    argTypes:
    - CK_ATTRIBUTE_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 212
    functionName: isAuthenticatedAttribute
    functionSourceFile: /src/nss/cmd/dbtool/dbtool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool isAuthenticatedAttribute(CK_ATTRIBUTE_TYPE type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 228
    functionName: sdbULong2ULong
    functionSourceFile: /src/nss/cmd/dbtool/dbtool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_ULONG
    signature: CK_ULONG sdbULong2ULong(unsigned char *data)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - alg
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 317
    functionName: isPKCS12PBE
    functionSourceFile: /src/nss/cmd/dbtool/dbtool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool isPKCS12PBE(SECOidTag alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/nss/cmd/dbtool/dbtool.c:329,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - attribute
    - nameType
    argTypes:
    - CK_ATTRIBUTE_TYPE
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 333
    functionName: makeNSSVendorName
    functionSourceFile: /src/nss/cmd/dbtool/dbtool.c
    functionUses: 0
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: char
    signature: 'char *

      makeNSSVendorName(CK_ATTRIBUTE_TYPE attribute, const char *nameType)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getNameFromAttribute
      Src: /src/nss/cmd/dbtool/dbtool.c:339,1
    - Dst: makeNSSVendorName
      Src: /src/nss/cmd/dbtool/dbtool.c:341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - attribute
    argTypes:
    - CK_ATTRIBUTE_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 336
    functionDepth: 2
    functionLinenumber: 336
    functionLinenumberEnd: 345
    functionName: AttributeName
    functionSourceFile: /src/nss/cmd/dbtool/dbtool.c
    functionUses: 0
    functionsReached:
    - getNameFromAttribute
    - makeNSSVendorName
    linkageType: ''
    returnType: char
    signature: 'char *

      AttributeName(CK_ATTRIBUTE_TYPE attribute)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getName
      Src: /src/nss/cmd/dbtool/dbtool.c:351,1
    - Dst: makeNSSVendorName
      Src: /src/nss/cmd/dbtool/dbtool.c:353,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - crv
    argTypes:
    - CK_RV
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 348
    functionDepth: 2
    functionLinenumber: 348
    functionLinenumberEnd: 356
    functionName: ErrorName
    functionSourceFile: /src/nss/cmd/dbtool/dbtool.c
    functionUses: 0
    functionsReached:
    - makeNSSVendorName
    - getName
    linkageType: ''
    returnType: char
    signature: 'char *

      ErrorName(CK_RV crv)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOIDTagDescription
      Src: /src/nss/cmd/dbtool/dbtool.c:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 365
    functionName: oid2string
    functionSourceFile: /src/nss/cmd/dbtool/dbtool.c
    functionUses: 0
    functionsReached:
    - SECOID_FindOIDTagDescription
    linkageType: ''
    returnType: char
    signature: 'char *

      oid2string(SECOidTag alg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 369
    functionName: ASCCHAR
    functionSourceFile: /src/nss/cmd/dbtool/dbtool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASCCHAR(val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memset
      Src: /src/nss/cmd/dbtool/dbtool.c:378,1
    - Dst: printf
      Src: /src/nss/cmd/dbtool/dbtool.c:382,1
    - Dst: PORT_Memset
      Src: /src/nss/cmd/dbtool/dbtool.c:383,1
    - Dst: printf
      Src: /src/nss/cmd/dbtool/dbtool.c:388,1
    - Dst: ASCCHAR
      Src: /src/nss/cmd/dbtool/dbtool.c:389,1
    - Dst: PORT_Memset
      Src: /src/nss/cmd/dbtool/dbtool.c:391,1
    - Dst: printf
      Src: /src/nss/cmd/dbtool/dbtool.c:400,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - v
    - len
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 401
    functionName: dumpValue
    functionSourceFile: /src/nss/cmd/dbtool/dbtool.c
    functionUses: 0
    functionsReached:
    - PORT_Memset
    - printf
    - ASCCHAR
    linkageType: ''
    returnType: void
    signature: void dumpValue(const unsigned char *v, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - val
    - len
    - hasSig
    argTypes:
    - unsigned char*
    - CK_ULONG
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 427
    functionName: dumpPKCS
    functionSourceFile: /src/nss/cmd/dbtool/dbtool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dumpPKCS(unsigned char *val, CK_ULONG len, PRBool *hasSig)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: getName
      Src: /src/nss/cmd/dbtool/dbtool.c:549,1
    - Dst: makeNSSVendorName
      Src: /src/nss/cmd/dbtool/dbtool.c:552,1
    - Dst: printf
      Src: /src/nss/cmd/dbtool/dbtool.c:555,1
    - Dst: printf
      Src: /src/nss/cmd/dbtool/dbtool.c:557,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 52
    argCount: 2
    argNames:
    - type
    - value
    argTypes:
    - CK_ATTRIBUTE_TYPE
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 500
    functionDepth: 2
    functionLinenumber: 500
    functionLinenumberEnd: 559
    functionName: dumpLongAttribute
    functionSourceFile: /src/nss/cmd/dbtool/dbtool.c
    functionUses: 0
    functionsReached:
    - makeNSSVendorName
    - printf
    - getName
    linkageType: ''
    returnType: void
    signature: void dumpLongAttribute(CK_ATTRIBUTE_TYPE type, CK_ULONG value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: isAuthenticatedAttribute
      Src: /src/nss/cmd/dbtool/dbtool.c:572,1
    - Dst: snprintf
      Src: /src/nss/cmd/dbtool/dbtool.c:575,1
    - Dst: printf
      Src: /src/nss/cmd/dbtool/dbtool.c:578,1
    - Dst: snprintf
      Src: /src/nss/cmd/dbtool/dbtool.c:584,1
    - Dst: printf
      Src: /src/nss/cmd/dbtool/dbtool.c:590,1
    - Dst: ErrorName
      Src: /src/nss/cmd/dbtool/dbtool.c:590,1
    - Dst: dumpPKCS
      Src: /src/nss/cmd/dbtool/dbtool.c:593,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 5
    argNames:
    - attribute
    - keydb
    - isKey
    - objectID
    - force
    argTypes:
    - CK_ATTRIBUTE_TYPE
    - SDB*
    - PRBool
    - CK_OBJECT_HANDLE
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 563
    functionDepth: 3
    functionLinenumber: 563
    functionLinenumberEnd: 595
    functionName: dumpSignature
    functionSourceFile: /src/nss/cmd/dbtool/dbtool.c
    functionUses: 0
    functionsReached:
    - printf
    - ErrorName
    - snprintf
    - dumpPKCS
    - isAuthenticatedAttribute
    linkageType: ''
    returnType: void
    signature: "void dumpSignature(CK_ATTRIBUTE_TYPE attribute, SDB *keydb, PRBool
      isKey,\n              CK_OBJECT_HANDLE objectID, PRBool force)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AttributeName
      Src: /src/nss/cmd/dbtool/dbtool.c:603,1
    - Dst: printf
      Src: /src/nss/cmd/dbtool/dbtool.c:605,1
    - Dst: ASCCHAR
      Src: /src/nss/cmd/dbtool/dbtool.c:623,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - keydb
    - isKey
    - id
    argTypes:
    - SDB*
    - PRBool
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 598
    functionDepth: 3
    functionLinenumber: 598
    functionLinenumberEnd: 627
    functionName: dumpAttribute
    functionSourceFile: /src/nss/cmd/dbtool/dbtool.c
    functionUses: 0
    functionsReached:
    - printf
    - ASCCHAR
    - AttributeName
    linkageType: ''
    returnType: void
    signature: "void dumpAttribute(CK_ATTRIBUTE *template, SDB *keydb, PRBool isKey,\n
      \             CK_OBJECT_HANDLE id)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - c2
    - byteval
    argTypes:
    - char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 34
    functionName: hex_to_byteval
    functionSourceFile: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus hex_to_byteval(const char *c2, unsigned char *byteval)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetInternalSlot
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:55,1
    - Dst: PK11_ImportSymKey
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:56,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:58,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:61,1
    - Dst: PK11_Encrypt
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:75,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:78,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:86,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 12
    argNames:
    - key
    - keysize
    - iv
    - ivsize
    - output
    - outputlen
    - maxoutputlen
    - input
    - inputlen
    - aad
    - aadlen
    - tagsize
    argTypes:
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 89
    functionName: aes_encrypt_buf
    functionSourceFile: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - PK11_ImportSymKey
    - fprintf
    - PK11_GetInternalSlot
    - PK11_FreeSlot
    - PK11_FreeSymKey
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus aes_encrypt_buf(\n    const unsigned char *key, unsigned
      int keysize,\n    const unsigned char *iv, unsigned int ivsize,\n    unsigned
      char *output, unsigned int *outputlen, unsigned int maxoutputlen,\n    const
      unsigned char *input, unsigned int inputlen,\n    const unsigned char *aad,
      unsigned int aadlen, unsigned int tagsize)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:109,1
    - Dst: memcpy
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:112,1
    - Dst: memcpy
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:113,1
    - Dst: PK11_GetInternalSlot
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:119,1
    - Dst: PK11_ImportSymKey
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:120,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:122,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:125,1
    - Dst: PK11_Decrypt
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:139,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:149,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 13
    argNames:
    - key
    - keysize
    - iv
    - ivsize
    - output
    - outputlen
    - maxoutputlen
    - input
    - inputlen
    - aad
    - aadlen
    - tag
    - tagsize
    argTypes:
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 152
    functionName: aes_decrypt_buf
    functionSourceFile: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PK11_Decrypt
    - fprintf
    - PK11_ImportSymKey
    - PK11_GetInternalSlot
    - PK11_FreeSlot
    - PK11_FreeSymKey
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus aes_decrypt_buf(\n    const unsigned char *key, unsigned
      int keysize,\n    const unsigned char *iv, unsigned int ivsize,\n    unsigned
      char *output, unsigned int *outputlen, unsigned int maxoutputlen,\n    const
      unsigned char *input, unsigned int inputlen,\n    const unsigned char *aad,
      unsigned int aadlen,\n    const unsigned char *tag, unsigned int tagsize)"
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:193,1
    - Dst: strstr
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:195,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:198,1
    - Dst: exit
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:199,1
    - Dst: fopen
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:201,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:203,1
    - Dst: exit
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:204,1
    - Dst: fgets
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:206,1
    - Dst: strncmp
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:213,1
    - Dst: atoi
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:214,1
    - Dst: strncmp
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:215,1
    - Dst: atoi
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:216,1
    - Dst: strncmp
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:217,1
    - Dst: atoi
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:218,1
    - Dst: strncmp
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:219,1
    - Dst: atoi
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:220,1
    - Dst: strncmp
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:221,1
    - Dst: atoi
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:222,1
    - Dst: printf
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:227,1
    - Dst: printf
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:230,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:235,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:237,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:239,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:241,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:243,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:246,1
    - Dst: exit
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:247,1
    - Dst: strncmp
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:252,1
    - Dst: memset
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:254,1
    - Dst: memset
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:256,1
    - Dst: memset
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:258,1
    - Dst: memset
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:260,1
    - Dst: memset
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:262,1
    - Dst: memset
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:264,1
    - Dst: strncmp
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:270,1
    - Dst: isspace
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:272,1
    - Dst: isxdigit
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:275,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:276,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:280,1
    - Dst: exit
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:282,1
    - Dst: strncmp
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:287,1
    - Dst: isspace
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:289,1
    - Dst: isxdigit
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:292,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:293,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:297,1
    - Dst: exit
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:299,1
    - Dst: strncmp
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:304,1
    - Dst: isspace
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:306,1
    - Dst: isxdigit
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:309,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:310,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:314,1
    - Dst: exit
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:316,1
    - Dst: aes_decrypt_buf
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:320,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:324,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:328,1
    - Dst: memcmp
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:331,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:332,1
    - Dst: strncmp
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:339,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:342,1
    - Dst: aes_decrypt_buf
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:343,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:347,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:350,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:351,1
    - Dst: strncmp
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:358,1
    - Dst: isspace
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:360,1
    - Dst: isxdigit
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:363,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:364,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:368,1
    - Dst: exit
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:370,1
    - Dst: strncmp
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:375,1
    - Dst: isspace
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:377,1
    - Dst: isxdigit
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:380,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:381,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:385,1
    - Dst: exit
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:387,1
    - Dst: strncmp
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:392,1
    - Dst: isspace
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:394,1
    - Dst: isxdigit
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:397,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:398,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:402,1
    - Dst: exit
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:404,1
    - Dst: aes_encrypt_buf
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:408,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:412,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:416,1
    - Dst: memcmp
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:419,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:420,1
    - Dst: memcmp
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:423,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:424,1
    - Dst: printf
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:432,1
    - Dst: printf
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:433,1
    - Dst: printf
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:434,1
    - Dst: fclose
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:436,1
    CyclomaticComplexity: 75
    EdgeCount: 75
    ICount: 226
    argCount: 1
    argNames:
    - respfn
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 437
    functionName: aes_gcm_kat
    functionSourceFile: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - strncmp
    - isspace
    - isxdigit
    - fclose
    - fgets
    - hex_to_byteval
    - printf
    - PORT_GetError
    - exit
    - atoi
    - fprintf
    - memset
    - strstr
    - fopen
    - aes_decrypt_buf
    - memcmp
    - aes_encrypt_buf
    linkageType: ''
    returnType: void
    signature: void aes_gcm_kat(const char *respfn)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NSS_NoDB_Init
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:446,1
    - Dst: strcmp
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:453,1
    - Dst: strcmp
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:455,1
    - Dst: aes_gcm_kat
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:457,1
    - Dst: NSS_Shutdown
      Src: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c:461,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 439
    functionDepth: 2
    functionLinenumber: 439
    functionLinenumberEnd: 465
    functionName: main
    functionSourceFile: /src/nss/cmd/pk11gcmtest/pk11gcmtest.c
    functionUses: 2
    functionsReached:
    - strcmp
    - NSS_Shutdown
    - NSS_NoDB_Init
    - aes_gcm_kat
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/nss/cmd/ppcertdata/ppcertdata.c:22,1
    - Dst: printf
      Src: /src/nss/cmd/ppcertdata/ppcertdata.c:25,1
    - Dst: NSS_NoDB_Init
      Src: /src/nss/cmd/ppcertdata/ppcertdata.c:29,1
    - Dst: fgets
      Src: /src/nss/cmd/ppcertdata/ppcertdata.c:31,1
    - Dst: strlen
      Src: /src/nss/cmd/ppcertdata/ppcertdata.c:31,1
    - Dst: fwrite
      Src: /src/nss/cmd/ppcertdata/ppcertdata.c:47,1
    - Dst: strstr
      Src: /src/nss/cmd/ppcertdata/ppcertdata.c:48,1
    - Dst: fflush
      Src: /src/nss/cmd/ppcertdata/ppcertdata.c:51,1
    - Dst: strstr
      Src: /src/nss/cmd/ppcertdata/ppcertdata.c:53,1
    - Dst: strstr
      Src: /src/nss/cmd/ppcertdata/ppcertdata.c:54,1
    - Dst: strstr
      Src: /src/nss/cmd/ppcertdata/ppcertdata.c:55,1
    - Dst: strstr
      Src: /src/nss/cmd/ppcertdata/ppcertdata.c:56,1
    - Dst: strstr
      Src: /src/nss/cmd/ppcertdata/ppcertdata.c:57,1
    - Dst: fgets
      Src: /src/nss/cmd/ppcertdata/ppcertdata.c:58,1
    - Dst: strlen
      Src: /src/nss/cmd/ppcertdata/ppcertdata.c:59,1
    - Dst: strncmp
      Src: /src/nss/cmd/ppcertdata/ppcertdata.c:63,1
    - Dst: isdigit
      Src: /src/nss/cmd/ppcertdata/ppcertdata.c:66,1
    - Dst: isdigit
      Src: /src/nss/cmd/ppcertdata/ppcertdata.c:67,1
    - Dst: isdigit
      Src: /src/nss/cmd/ppcertdata/ppcertdata.c:68,1
    - Dst: SECU_PrintSignedData
      Src: /src/nss/cmd/ppcertdata/ppcertdata.c:81,1
    - Dst: SECU_PrintDERName
      Src: /src/nss/cmd/ppcertdata/ppcertdata.c:84,1
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/ppcertdata/ppcertdata.c:90,1
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/ppcertdata/ppcertdata.c:92,1
    - Dst: SECU_PrintAsHex
      Src: /src/nss/cmd/ppcertdata/ppcertdata.c:94,1
    - Dst: SECU_PrintBuf
      Src: /src/nss/cmd/ppcertdata/ppcertdata.c:96,1
    - Dst: NSS_Shutdown
      Src: /src/nss/cmd/ppcertdata/ppcertdata.c:98,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 56
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 100
    functionName: main
    functionSourceFile: /src/nss/cmd/ppcertdata/ppcertdata.c
    functionUses: 2
    functionsReached:
    - strncmp
    - NSS_NoDB_Init
    - SECU_PrintAsHex
    - SECU_PrintSignedData
    - fgets
    - printf
    - isdigit
    - atoi
    - strstr
    - SECU_PrintBuf
    - NSS_Shutdown
    - fwrite
    - SECU_PrintInteger
    - SECU_PrintDERName
    - fflush
    - strlen
    linkageType: ''
    returnType: int
    signature: int main(int argc, const char** argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:27,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:29,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:31,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 32
    functionName: dumpbytes
    functionSourceFile: /src/nss/cmd/addbuiltin/addbuiltin.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void dumpbytes(unsigned char *buf, int len)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - trust
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 55
    functionName: hasPositiveTrust
    functionSourceFile: /src/nss/cmd/addbuiltin/addbuiltin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hasPositiveTrust(unsigned int trust)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - trust
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 77
    functionName: getTrustString
    functionSourceFile: /src/nss/cmd/addbuiltin/addbuiltin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      getTrustString(unsigned int trust)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECU_GetWrapEnabled
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:87,1
    - Dst: SECU_EnableWrap
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:88,1
    - Dst: SECU_PrintNameQuotesOptional
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:90,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:91,1
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:93,1
    - Dst: SECU_EnableWrap
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - name
    - serial
    argTypes:
    - CERTName*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 96
    functionName: print_crl_info
    functionSourceFile: /src/nss/cmd/addbuiltin/addbuiltin.c
    functionUses: 0
    functionsReached:
    - SECU_PrintNameQuotesOptional
    - printf
    - SECU_GetWrapEnabled
    - SECU_EnableWrap
    - SECU_PrintInteger
    linkageType: ''
    returnType: void
    signature: void print_crl_info(CERTName *name, SECItem *serial)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:111,1
    - Dst: CERT_DecodeDERCrlWithFlags
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:115,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:136,1
    - Dst: print_crl_info
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:137,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:139,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:140,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:141,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:142,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:143,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:145,1
    - Dst: dumpbytes
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:146,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:147,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:148,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:149,1
    - Dst: dumpbytes
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:150,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:151,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:153,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:154,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:155,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:156,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:158,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 3
    argNames:
    - sdder
    - crlentry
    - nickname
    argTypes:
    - SECItem*
    - PRInt32
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 160
    functionName: ConvertCRLEntry
    functionSourceFile: /src/nss/cmd/addbuiltin/addbuiltin.c
    functionUses: 0
    functionsReached:
    - CERT_DecodeDERCrlWithFlags
    - PORT_NewArena
    - PORT_FreeArena
    - printf
    - dumpbytes
    - print_crl_info
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ConvertCRLEntry(SECItem *sdder, PRInt32 crlentry, char *nickname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECU_GetWrapEnabled
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:165,1
    - Dst: SECU_EnableWrap
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:166,1
    - Dst: SECU_PrintNameQuotesOptional
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:168,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:169,1
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:171,1
    - Dst: SECU_PrintNameQuotesOptional
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:173,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:174,1
    - Dst: SECU_PrintTimeChoice
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:176,1
    - Dst: SECU_PrintTimeChoice
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:177,1
    - Dst: SECU_PrintFingerprints
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:179,1
    - Dst: SECU_EnableWrap
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - sdder
    - c
    argTypes:
    - SECItem*
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 182
    functionName: print_info
    functionSourceFile: /src/nss/cmd/addbuiltin/addbuiltin.c
    functionUses: 0
    functionsReached:
    - SECU_PrintFingerprints
    - SECU_PrintNameQuotesOptional
    - printf
    - SECU_GetWrapEnabled
    - SECU_EnableWrap
    - SECU_PrintInteger
    - SECU_PrintTimeChoice
    linkageType: ''
    returnType: void
    signature: void print_info(SECItem *sdder, CERTCertificate *c)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CERT_DecodeDERCertificate
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:196,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:200,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:206,1
    - Dst: print_info
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:207,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:208,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:209,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:210,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:211,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:212,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:213,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:214,1
    - Dst: dumpbytes
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:215,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:216,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:217,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:218,1
    - Dst: dumpbytes
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:219,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:220,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:221,1
    - Dst: dumpbytes
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:222,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:223,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:224,1
    - Dst: dumpbytes
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:225,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:226,1
    - Dst: hasPositiveTrust
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:227,1
    - Dst: hasPositiveTrust
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:228,1
    - Dst: hasPositiveTrust
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:229,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:230,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:232,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:233,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:242,1
    - Dst: print_info
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:243,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:245,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:246,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:247,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:248,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:249,1
    - Dst: PK11_HashBuf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:252,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:253,1
    - Dst: dumpbytes
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:254,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:255,1
    - Dst: PK11_HashBuf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:256,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:257,1
    - Dst: dumpbytes
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:258,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:259,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:262,1
    - Dst: dumpbytes
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:263,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:264,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:265,1
    - Dst: dumpbytes
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:266,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:267,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:269,1
    - Dst: getTrustString
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:270,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:271,1
    - Dst: getTrustString
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:272,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:273,1
    - Dst: getTrustString
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:274,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:276,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:277,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:278,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:279,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:280,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:281,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:282,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:286,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:289,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 77
    argCount: 5
    argNames:
    - sdder
    - nickname
    - trust
    - excludeCert
    - excludeHash
    argTypes:
    - SECItem*
    - char*
    - CERTCertTrust*
    - PRBool
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 291
    functionName: ConvertCertificate
    functionSourceFile: /src/nss/cmd/addbuiltin/addbuiltin.c
    functionUses: 0
    functionsReached:
    - SEC_ASN1EncodeItem
    - hasPositiveTrust
    - print_info
    - PORT_Free
    - printf
    - PK11_HashBuf
    - getTrustString
    - CERT_DecodeDERCertificate
    - dumpbytes
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ConvertCertificate(SECItem *sdder, char *nickname, CERTCertTrust
      *trust,\n                   PRBool excludeCert, PRBool excludeHash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 366
    functionName: printheader
    functionSourceFile: /src/nss/cmd/addbuiltin/addbuiltin.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printheader()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:371,1
    - Dst: fprintf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:372,1
    - Dst: fprintf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:377,1
    - Dst: fprintf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:378,1
    - Dst: fprintf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:382,1
    - Dst: fprintf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:383,1
    - Dst: fprintf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:387,1
    - Dst: fprintf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:388,1
    - Dst: fprintf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:390,1
    - Dst: fprintf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:391,1
    - Dst: fprintf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:392,1
    - Dst: fprintf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:393,1
    - Dst: fprintf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:394,1
    - Dst: fprintf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:395,1
    - Dst: fprintf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:396,1
    - Dst: fprintf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:397,1
    - Dst: fprintf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:398,1
    - Dst: fprintf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:399,1
    - Dst: fprintf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:400,1
    - Dst: fprintf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:401,1
    - Dst: fprintf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:402,1
    - Dst: fprintf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:403,1
    - Dst: exit
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 1
    argNames:
    - progName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 405
    functionName: Usage
    functionSourceFile: /src/nss/cmd/addbuiltin/addbuiltin.c
    functionUses: 16
    functionsReached:
    - fprintf
    - exit
    linkageType: ''
    returnType: void
    signature: void Usage(char *progName)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:449,1
    - Dst: SECU_ParseCommandLine
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:452,1
    - Dst: Usage
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:455,1
    - Dst: strtol
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:459,1
    - Dst: Usage
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:461,1
    - Dst: exit
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:462,1
    - Dst: DER_EncodeTimeChoice
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:465,1
    - Dst: SECU_PrintTimeChoice
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:466,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:467,1
    - Dst: SECU_PrintTimeChoice
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:470,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:471,1
    - Dst: dumpbytes
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:472,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:473,1
    - Dst: SECU_PrintTimeChoice
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:474,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:475,1
    - Dst: dumpbytes
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:476,1
    - Dst: printf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:477,1
    - Dst: exit
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:478,1
    - Dst: fprintf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:489,1
    - Dst: Usage
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:491,1
    - Dst: fprintf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:496,1
    - Dst: Usage
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:498,1
    - Dst: atoi
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:500,1
    - Dst: fprintf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:502,1
    - Dst: Usage
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:504,1
    - Dst: fprintf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:510,1
    - Dst: Usage
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:512,1
    - Dst: PR_Open
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:516,1
    - Dst: fprintf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:518,1
    - Dst: exit
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:519,1
    - Dst: _setmode
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:528,1
    - Dst: _fileno
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:528,1
    - Dst: fprintf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:530,1
    - Dst: exit
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:533,1
    - Dst: _setmode
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:544,1
    - Dst: _fileno
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:544,1
    - Dst: fprintf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:546,1
    - Dst: exit
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:547,1
    - Dst: strdup
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:552,1
    - Dst: NSS_NoDB_Init
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:554,1
    - Dst: exit
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:555,1
    - Dst: strdup
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:565,1
    - Dst: strdup
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:568,1
    - Dst: CERT_DecodeTrustString
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:573,1
    - Dst: fprintf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:575,1
    - Dst: Usage
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:576,1
    - Dst: fprintf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:584,1
    - Dst: Usage
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:585,1
    - Dst: SECU_FileToItem
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:589,1
    - Dst: ConvertCRLEntry
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:594,1
    - Dst: ConvertCertificate
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:596,1
    - Dst: fprintf
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:600,1
    - Dst: exit
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:601,1
    - Dst: NSS_Shutdown
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:605,1
    - Dst: exit
      Src: /src/nss/cmd/addbuiltin/addbuiltin.c:606,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 113
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 431
    functionDepth: 3
    functionLinenumber: 431
    functionLinenumberEnd: 610
    functionName: main
    functionSourceFile: /src/nss/cmd/addbuiltin/addbuiltin.c
    functionUses: 2
    functionsReached:
    - ConvertCertificate
    - printf
    - fprintf
    - DER_EncodeTimeChoice
    - Usage
    - dumpbytes
    - SECU_PrintTimeChoice
    - _fileno
    - CERT_DecodeTrustString
    - strtol
    - strrchr
    - _setmode
    - strdup
    - ConvertCRLEntry
    - exit
    - PR_Open
    - SECU_FileToItem
    - NSS_NoDB_Init
    - SECU_ParseCommandLine
    - atoi
    - NSS_Shutdown
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_fprintf
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - program_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 32
    functionName: synopsis
    functionSourceFile: /src/nss/cmd/pwdecrypt/pwdecrypt.c
    functionUses: 2
    functionsReached:
    - PR_fprintf
    linkageType: ''
    returnType: void
    signature: void synopsis(char *program_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_fprintf
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:37,1
    - Dst: synopsis
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - program_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 41
    functionName: short_usage
    functionSourceFile: /src/nss/cmd/pwdecrypt/pwdecrypt.c
    functionUses: 1
    functionsReached:
    - synopsis
    - PR_fprintf
    linkageType: ''
    returnType: void
    signature: void short_usage(char *program_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: synopsis
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:49,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:50,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:51,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:59,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:63,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:66,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:69,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:72,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - program_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 78
    functionName: long_usage
    functionSourceFile: /src/nss/cmd/pwdecrypt/pwdecrypt.c
    functionUses: 1
    functionsReached:
    - synopsis
    - PR_fprintf
    linkageType: ''
    returnType: void
    signature: void long_usage(char *program_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: isatobchar
    functionSourceFile: /src/nss/cmd/pwdecrypt/pwdecrypt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: isatobchar(c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: isatobchar
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:117,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 1
    argNames:
    - inString
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 128
    functionName: isBase64
    functionSourceFile: /src/nss/cmd/pwdecrypt/pwdecrypt.c
    functionUses: 0
    functionsReached:
    - isatobchar
    linkageType: ''
    returnType: int
    signature: int isBase64(char *inString)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:133,1
    - Dst: NSSBase64_DecodeBuffer
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:134,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:141,1
    - Dst: fprintf
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:142,1
    - Dst: fprintf
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:143,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:143,1
    - Dst: fputs
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:145,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:147,1
    - Dst: PK11SDR_Decrypt
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:151,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:152,1
    - Dst: fprintf
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:155,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:156,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:161,1
    - Dst: fprintf
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:162,1
    - Dst: fprintf
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:163,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:163,1
    - Dst: fputs
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:165,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 4
    argNames:
    - dataString
    - outFile
    - logFile
    - pwdata
    argTypes:
    - char*
    - FILE*
    - FILE*
    - secuPWData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 166
    functionName: doDecrypt
    functionSourceFile: /src/nss/cmd/pwdecrypt/pwdecrypt.c
    functionUses: 0
    functionsReached:
    - NSSBase64_DecodeBuffer
    - fputs
    - SECU_Strerror
    - PK11SDR_Decrypt
    - PORT_GetError
    - fprintf
    - SECITEM_ZfreeItem
    - SECITEM_FreeItem
    - strlen
    linkageType: ''
    returnType: void
    signature: void doDecrypt(char *dataString, FILE *outFile, FILE *logFile, secuPWData
      *pwdata)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:171,1
    - Dst: NSSBase64_DecodeBuffer
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:174,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:177,1
    - Dst: fprintf
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:178,1
    - Dst: fprintf
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:179,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:179,1
    - Dst: fputs
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:181,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:183,1
    - Dst: fprintf
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:186,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:187,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - dataString
    - outFile
    - logFile
    argTypes:
    - char*
    - FILE*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 188
    functionName: doDecode
    functionSourceFile: /src/nss/cmd/pwdecrypt/pwdecrypt.c
    functionUses: 0
    functionsReached:
    - NSSBase64_DecodeBuffer
    - fputs
    - SECU_Strerror
    - PORT_GetError
    - fprintf
    - SECITEM_ZfreeItem
    - SECITEM_FreeItem
    - strlen
    linkageType: ''
    returnType: void
    signature: void doDecode(char *dataString, FILE *outFile, FILE *logFile)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: PL_strrchr
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:208,1
    - Dst: PL_CreateOptState
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:211,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:213,1
    - Dst: PL_GetNextOpt
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:217,1
    - Dst: short_usage
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:220,1
    - Dst: long_usage
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:224,1
    - Dst: SECU_ConfigDirectory
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:228,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:232,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:236,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:240,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:245,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:250,1
    - Dst: PL_DestroyOptState
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:254,1
    - Dst: short_usage
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:256,1
    - Dst: fopen
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:261,1
    - Dst: perror
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:263,1
    - Dst: PR_Free
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:266,1
    - Dst: fopen
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:269,1
    - Dst: perror
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:271,1
    - Dst: PR_Free
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:274,1
    - Dst: fopen
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:280,1
    - Dst: perror
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:282,1
    - Dst: PR_Free
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:285,1
    - Dst: PK11_SetPasswordFunc
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:291,1
    - Dst: NSS_Init
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:292,1
    - Dst: SECU_ConfigDirectory
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:292,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:294,1
    - Dst: fgets
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:302,1
    - Dst: isBase64
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:305,1
    - Dst: doDecrypt
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:306,1
    - Dst: isBase64
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:307,1
    - Dst: doDecode
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:308,1
    - Dst: fputs
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:310,1
    - Dst: PR_Free
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:314,1
    - Dst: fclose
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:316,1
    - Dst: fclose
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:317,1
    - Dst: fclose
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:319,1
    - Dst: NSS_Shutdown
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:322,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:323,1
    - Dst: exit
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:324,1
    - Dst: PR_Cleanup
      Src: /src/nss/cmd/pwdecrypt/pwdecrypt.c:328,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 102
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 192
    functionDepth: 2
    functionLinenumber: 192
    functionLinenumberEnd: 330
    functionName: main
    functionSourceFile: /src/nss/cmd/pwdecrypt/pwdecrypt.c
    functionUses: 2
    functionsReached:
    - fputs
    - PL_strrchr
    - NSS_Init
    - PR_Free
    - PL_DestroyOptState
    - doDecode
    - isBase64
    - long_usage
    - short_usage
    - perror
    - fopen
    - PL_CreateOptState
    - fclose
    - PR_Cleanup
    - SECU_PrintError
    - exit
    - PL_strdup
    - PK11_SetPasswordFunc
    - SECU_ConfigDirectory
    - PL_GetNextOpt
    - fgets
    - doDecrypt
    - NSS_Shutdown
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/params/test_valparams.c:19,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/params/test_valparams.c:21,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/params/test_valparams.c:23,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/params/test_valparams.c:24,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/params/test_valparams.c:25,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/params/test_valparams.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - goodObject
    - equalObject
    - diffObject
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 30
    functionName: testDestroy
    functionSourceFile: /src/nss/cmd/libpkix/pkix/params/test_valparams.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_DECREF_BC
    linkageType: ''
    returnType: void
    signature: void testDestroy(void *goodObject, void *equalObject, void *diffObject)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/params/test_valparams.c:41,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/params/test_valparams.c:42,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_valparams.c:44,1
    - Dst: PKIX_ValidateParams_GetProcessingParams
      Src: /src/nss/cmd/libpkix/pkix/params/test_valparams.c:44,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_valparams.c:46,1
    - Dst: PKIX_ValidateParams_GetProcessingParams
      Src: /src/nss/cmd/libpkix/pkix/params/test_valparams.c:46,1
    - Dst: testEqualsHelper
      Src: /src/nss/cmd/libpkix/pkix/params/test_valparams.c:48,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/params/test_valparams.c:55,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/params/test_valparams.c:56,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/params/test_valparams.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - goodObject
    - equalObject
    argTypes:
    - PKIX_ValidateParams*
    - PKIX_ValidateParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 59
    functionName: testGetProcParams
    functionSourceFile: /src/nss/cmd/libpkix/pkix/params/test_valparams.c
    functionUses: 0
    functionsReached:
    - testEqualsHelper
    - PKIX_TEST_DECREF_AC
    - PKIX_ValidateParams_GetProcessingParams
    - PKIX_TEST_RETURN
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_EXPECT_NO_ERROR
    linkageType: ''
    returnType: void
    signature: "void testGetProcParams(\n    PKIX_ValidateParams *goodObject,\n    PKIX_ValidateParams
      *equalObject)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/params/test_valparams.c:70,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/params/test_valparams.c:71,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_valparams.c:73,1
    - Dst: PKIX_ValidateParams_GetCertChain
      Src: /src/nss/cmd/libpkix/pkix/params/test_valparams.c:73,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_valparams.c:75,1
    - Dst: PKIX_ValidateParams_GetCertChain
      Src: /src/nss/cmd/libpkix/pkix/params/test_valparams.c:75,1
    - Dst: testEqualsHelper
      Src: /src/nss/cmd/libpkix/pkix/params/test_valparams.c:77,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/params/test_valparams.c:84,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/params/test_valparams.c:85,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/params/test_valparams.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - goodObject
    - equalObject
    argTypes:
    - PKIX_ValidateParams*
    - PKIX_ValidateParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 88
    functionName: testGetCertChain
    functionSourceFile: /src/nss/cmd/libpkix/pkix/params/test_valparams.c
    functionUses: 0
    functionsReached:
    - testEqualsHelper
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_ValidateParams_GetCertChain
    linkageType: ''
    returnType: void
    signature: "void testGetCertChain(\n    PKIX_ValidateParams *goodObject,\n    PKIX_ValidateParams
      *equalObject)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/params/test_valparams.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 94
    functionName: printUsage
    functionSourceFile: /src/nss/cmd/libpkix/pkix/params/test_valparams.c
    functionUses: 3
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printUsage(char *pName)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/params/test_valparams.c:188,1
    - Dst: startTests
      Src: /src/nss/cmd/libpkix/pkix/params/test_valparams.c:190,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_valparams.c:192,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix/params/test_valparams.c:193,1
    - Dst: printUsage
      Src: /src/nss/cmd/libpkix/pkix/params/test_valparams.c:196,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/params/test_valparams.c:202,1
    - Dst: createCertChain
      Src: /src/nss/cmd/libpkix/pkix/params/test_valparams.c:203,1
    - Dst: createValidateParams
      Src: /src/nss/cmd/libpkix/pkix/params/test_valparams.c:204,1
    - Dst: createValidateParams
      Src: /src/nss/cmd/libpkix/pkix/params/test_valparams.c:215,1
    - Dst: createValidateParams
      Src: /src/nss/cmd/libpkix/pkix/params/test_valparams.c:226,1
    - Dst: testGetProcParams
      Src: /src/nss/cmd/libpkix/pkix/params/test_valparams.c:238,1
    - Dst: testGetCertChain
      Src: /src/nss/cmd/libpkix/pkix/params/test_valparams.c:239,1
    - Dst: PKIX_TEST_EQ_HASH_TOSTR_DUP
      Src: /src/nss/cmd/libpkix/pkix/params/test_valparams.c:241,1
    - Dst: testDestroy
      Src: /src/nss/cmd/libpkix/pkix/params/test_valparams.c:248,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/params/test_valparams.c:252,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/pkix/params/test_valparams.c:254,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/params/test_valparams.c:256,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix/params/test_valparams.c:258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 261
    functionName: test_valparams
    functionSourceFile: /src/nss/cmd/libpkix/pkix/params/test_valparams.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - testDestroy
    - PKIX_TEST_RETURN
    - createCertChain
    - testGetCertChain
    - PKIX_TEST_EQ_HASH_TOSTR_DUP
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_Shutdown
    - createValidateParams
    - endTests
    - PKIX_TEST_EXPECT_NO_ERROR
    - printUsage
    - startTests
    - testGetProcParams
    - PKIX_PL_NssContext_Create
    linkageType: ''
    returnType: int
    signature: int test_valparams(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:24,1
    - Dst: createTrustAnchor
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:25,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:27,1
    - Dst: createTrustAnchor
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:28,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:30,1
    - Dst: createTrustAnchor
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - dirName
    - goodInput
    - goodObject
    - equalObject
    - diffObject
    argTypes:
    - char*
    - char*
    - PKIX_TrustAnchor**
    - PKIX_TrustAnchor**
    - PKIX_TrustAnchor**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 32
    functionName: createTrustAnchors
    functionSourceFile: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c
    functionUses: 0
    functionsReached:
    - subTest
    - createTrustAnchor
    linkageType: ''
    returnType: void
    signature: "void createTrustAnchors(\n    char *dirName,\n    char *goodInput,\n
      \   PKIX_TrustAnchor **goodObject,\n    PKIX_TrustAnchor **equalObject,\n    PKIX_TrustAnchor
      **diffObject)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:43,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:44,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:46,1
    - Dst: PKIX_PL_Cert_GetSubject
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:46,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:48,1
    - Dst: PKIX_TrustAnchor_GetCAName
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:48,1
    - Dst: testEqualsHelper
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:50,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:57,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:58,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - diffCert
    - equalObject
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_TrustAnchor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 61
    functionName: testGetCAName
    functionSourceFile: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c
    functionUses: 0
    functionsReached:
    - testEqualsHelper
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_TrustAnchor_GetCAName
    - PKIX_PL_Cert_GetSubject
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_EXPECT_NO_ERROR
    linkageType: ''
    returnType: void
    signature: "void testGetCAName(\n    PKIX_PL_Cert *diffCert,\n    PKIX_TrustAnchor
      *equalObject)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:72,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:73,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:75,1
    - Dst: PKIX_PL_Cert_GetSubjectPublicKey
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:75,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:77,1
    - Dst: PKIX_TrustAnchor_GetCAPublicKey
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:77,1
    - Dst: testEqualsHelper
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:79,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:86,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:87,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - diffCert
    - equalObject
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_TrustAnchor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 90
    functionName: testGetCAPublicKey
    functionSourceFile: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c
    functionUses: 0
    functionsReached:
    - testEqualsHelper
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_PL_Cert_GetSubjectPublicKey
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_TrustAnchor_GetCAPublicKey
    linkageType: ''
    returnType: void
    signature: "void testGetCAPublicKey(\n    PKIX_PL_Cert *diffCert,\n    PKIX_TrustAnchor
      *equalObject)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:116,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:118,1
    - Dst: createTrustAnchors
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:120,1
    - Dst: PKIX_TEST_EQ_HASH_TOSTR_DUP
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:122,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:129,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:131,1
    - Dst: PKIX_TrustAnchor_GetTrustedCert
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:131,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:133,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:135,1
    - Dst: PKIX_PL_Cert_GetNameConstraints
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:135,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:137,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:139,1
    - Dst: PKIX_TrustAnchor_GetNameConstraints
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:139,1
    - Dst: testEqualsHelper
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:141,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:148,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:149,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:150,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:151,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:152,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:153,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 1
    argNames:
    - dirName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 156
    functionName: testGetNameConstraints
    functionSourceFile: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c
    functionUses: 0
    functionsReached:
    - testEqualsHelper
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_TEST_EQ_HASH_TOSTR_DUP
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_TrustAnchor_GetTrustedCert
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_TrustAnchor_GetNameConstraints
    - PKIX_TEST_DECREF_BC
    - createTrustAnchors
    - PKIX_PL_Cert_GetNameConstraints
    linkageType: ''
    returnType: void
    signature: void testGetNameConstraints(char *dirName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:161,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:163,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:165,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:166,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:167,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - goodObject
    - equalObject
    - diffObject
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 172
    functionName: testDestroy
    functionSourceFile: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c
    functionUses: 1
    functionsReached:
    - PKIX_TEST_RETURN
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_DECREF_BC
    linkageType: ''
    returnType: void
    signature: void testDestroy(void *goodObject, void *equalObject, void *diffObject)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 178
    functionName: printUsage
    functionSourceFile: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c
    functionUses: 4
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printUsage(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:202,1
    - Dst: startTests
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:204,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:206,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:207,1
    - Dst: printUsage
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:210,1
    - Dst: createTrustAnchors
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:217,1
    - Dst: PKIX_TEST_EQ_HASH_TOSTR_DUP
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:223,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:230,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:231,1
    - Dst: PKIX_TrustAnchor_GetTrustedCert
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:231,1
    - Dst: testGetCAName
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:233,1
    - Dst: testGetCAPublicKey
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:234,1
    - Dst: testGetNameConstraints
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:236,1
    - Dst: testDestroy
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:238,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:242,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:244,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:246,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 180
    functionDepth: 3
    functionLinenumber: 180
    functionLinenumberEnd: 251
    functionName: test_trustanchor
    functionSourceFile: /src/nss/cmd/libpkix/pkix/params/test_trustanchor.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - testDestroy
    - PKIX_TEST_RETURN
    - PKIX_TEST_EQ_HASH_TOSTR_DUP
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_Shutdown
    - testGetNameConstraints
    - PKIX_TrustAnchor_GetTrustedCert
    - endTests
    - PKIX_TEST_EXPECT_NO_ERROR
    - testGetCAName
    - createTrustAnchors
    - printUsage
    - startTests
    - testGetCAPublicKey
    - PKIX_PL_NssContext_Create
    linkageType: ''
    returnType: int
    signature: int test_trustanchor(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:19,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:21,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:23,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:24,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:25,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - goodObject
    - equalObject
    - diffObject
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 30
    functionName: testDestroy
    functionSourceFile: /src/nss/cmd/libpkix/pkix/params/test_procparams.c
    functionUses: 2
    functionsReached:
    - PKIX_TEST_RETURN
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_DECREF_BC
    linkageType: ''
    returnType: void
    signature: void testDestroy(void *goodObject, void *equalObject, void *diffObject)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:41,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:42,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:44,1
    - Dst: PKIX_ProcessingParams_GetTrustAnchors
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:44,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:46,1
    - Dst: PKIX_ProcessingParams_GetTrustAnchors
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:46,1
    - Dst: testEqualsHelper
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:48,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:55,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:56,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - goodObject
    - equalObject
    argTypes:
    - PKIX_ProcessingParams*
    - PKIX_ProcessingParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 59
    functionName: testGetAnchors
    functionSourceFile: /src/nss/cmd/libpkix/pkix/params/test_procparams.c
    functionUses: 0
    functionsReached:
    - testEqualsHelper
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_ProcessingParams_GetTrustAnchors
    linkageType: ''
    returnType: void
    signature: "void testGetAnchors(\n    PKIX_ProcessingParams *goodObject,\n    PKIX_ProcessingParams
      *equalObject)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:71,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:72,1
    - Dst: createDate
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:74,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:76,1
    - Dst: PKIX_ProcessingParams_SetDate
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:76,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:78,1
    - Dst: PKIX_ProcessingParams_GetDate
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:78,1
    - Dst: testEqualsHelper
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:80,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:86,1
    - Dst: PKIX_ProcessingParams_SetDate
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:86,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:90,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:91,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - goodObject
    - equalObject
    argTypes:
    - PKIX_ProcessingParams*
    - PKIX_ProcessingParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 94
    functionName: testGetSetDate
    functionSourceFile: /src/nss/cmd/libpkix/pkix/params/test_procparams.c
    functionUses: 0
    functionsReached:
    - testEqualsHelper
    - PKIX_TEST_DECREF_AC
    - PKIX_ProcessingParams_GetDate
    - PKIX_TEST_RETURN
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_ProcessingParams_SetDate
    - createDate
    linkageType: ''
    returnType: void
    signature: "void testGetSetDate(\n    PKIX_ProcessingParams *goodObject,\n    PKIX_ProcessingParams
      *equalObject)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - checker
    - cert
    - unresolvedCriticalExtensions
    - pNBIOContext
    - plContext
    argTypes:
    - PKIX_CertChainChecker*
    - PKIX_PL_Cert*
    - PKIX_List*
    - void**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 105
    functionName: userChecker1cb
    functionSourceFile: /src/nss/cmd/libpkix/pkix/params/test_procparams.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nuserChecker1cb(\n    PKIX_CertChainChecker *checker,\n
      \   PKIX_PL_Cert *cert,\n    PKIX_List *unresolvedCriticalExtensions, /* list
      of PKIX_PL_OID */\n    void **pNBIOContext,\n    void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:119,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:120,1
    - Dst: createDate
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:122,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:124,1
    - Dst: PKIX_CertChainChecker_Create
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:124,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:132,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:132,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:134,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:134,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:135,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:137,1
    - Dst: PKIX_ProcessingParams_SetCertChainCheckers
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:137,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:139,1
    - Dst: PKIX_CertChainChecker_Create
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:139,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:147,1
    - Dst: PKIX_ProcessingParams_AddCertChainChecker
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:147,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:149,1
    - Dst: PKIX_ProcessingParams_GetCertChainCheckers
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:149,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:153,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:154,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:155,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:156,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 2
    argNames:
    - goodObject
    - equalObject
    argTypes:
    - PKIX_ProcessingParams*
    - PKIX_ProcessingParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 159
    functionName: testGetSetCertChainCheckers
    functionSourceFile: /src/nss/cmd/libpkix/pkix/params/test_procparams.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_CertChainChecker_Create
    - PKIX_ProcessingParams_GetCertChainCheckers
    - PKIX_List_Create
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_ProcessingParams_AddCertChainChecker
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_List_AppendItem
    - PKIX_TEST_DECREF_BC
    - createDate
    - PKIX_ProcessingParams_SetCertChainCheckers
    linkageType: ''
    returnType: void
    signature: "void testGetSetCertChainCheckers(\n    PKIX_ProcessingParams *goodObject,\n
      \   PKIX_ProcessingParams *equalObject)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - checker
    - cert
    - pResult
    - plContext
    argTypes:
    - PKIX_RevocationChecker*
    - PKIX_PL_Cert*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 169
    functionName: userChecker2cb
    functionSourceFile: /src/nss/cmd/libpkix/pkix/params/test_procparams.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nuserChecker2cb(\n    PKIX_RevocationChecker *checker,\n
      \   PKIX_PL_Cert *cert,\n    PKIX_UInt32 *pResult,\n    void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:183,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:184,1
    - Dst: createDate
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:186,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:188,1
    - Dst: PKIX_RevocationChecker_Create
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:188,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:193,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:193,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:195,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:195,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:198,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:200,1
    - Dst: PKIX_ProcessingParams_SetRevocationCheckers
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:200,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:202,1
    - Dst: PKIX_RevocationChecker_Create
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:202,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:207,1
    - Dst: PKIX_ProcessingParams_AddRevocationChecker
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:207,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:209,1
    - Dst: PKIX_ProcessingParams_GetRevocationCheckers
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:209,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:213,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:214,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:215,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:216,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 2
    argNames:
    - goodObject
    - equalObject
    argTypes:
    - PKIX_ProcessingParams*
    - PKIX_ProcessingParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 219
    functionName: testGetSetRevocationCheckers
    functionSourceFile: /src/nss/cmd/libpkix/pkix/params/test_procparams.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_RevocationChecker_Create
    - PKIX_List_Create
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_ProcessingParams_SetRevocationCheckers
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_List_AppendItem
    - PKIX_TEST_DECREF_BC
    - PKIX_ProcessingParams_AddRevocationChecker
    - PKIX_ProcessingParams_GetRevocationCheckers
    - createDate
    linkageType: ''
    returnType: void
    signature: "void testGetSetRevocationCheckers(\n    PKIX_ProcessingParams *goodObject,\n
      \   PKIX_ProcessingParams *equalObject)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:230,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:231,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:233,1
    - Dst: PKIX_ResourceLimits_Create
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:233,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:235,1
    - Dst: PKIX_ResourceLimits_Create
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:235,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:237,1
    - Dst: PKIX_ResourceLimits_SetMaxFanout
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:237,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:239,1
    - Dst: PKIX_ResourceLimits_SetMaxDepth
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:239,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:241,1
    - Dst: PKIX_ResourceLimits_SetMaxTime
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:241,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:243,1
    - Dst: PKIX_ProcessingParams_SetResourceLimits
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:243,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:245,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:246,1
    - Dst: PKIX_ProcessingParams_GetResourceLimits
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:246,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:248,1
    - Dst: PKIX_ProcessingParams_SetResourceLimits
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:248,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:252,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:253,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 2
    argNames:
    - goodObject
    - equalObject
    argTypes:
    - PKIX_ProcessingParams*
    - PKIX_ProcessingParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 256
    functionName: testGetSetResourceLimits
    functionSourceFile: /src/nss/cmd/libpkix/pkix/params/test_procparams.c
    functionUses: 0
    functionsReached:
    - PKIX_ResourceLimits_SetMaxFanout
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_ResourceLimits_SetMaxTime
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_ProcessingParams_SetResourceLimits
    - PKIX_ResourceLimits_Create
    - PKIX_ProcessingParams_GetResourceLimits
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_ResourceLimits_SetMaxDepth
    - PKIX_TEST_DECREF_BC
    linkageType: ''
    returnType: void
    signature: "void testGetSetResourceLimits(\n    PKIX_ProcessingParams *goodObject,\n
      \   PKIX_ProcessingParams *equalObject)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:265,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:266,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:273,1
    - Dst: PKIX_ProcessingParams_SetTargetCertConstraints
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:273,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:275,1
    - Dst: PKIX_ProcessingParams_GetTargetCertConstraints
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:275,1
    - Dst: testEqualsHelper
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:277,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:284,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:285,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - goodObject
    argTypes:
    - PKIX_ProcessingParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 288
    functionName: testGetSetConstraints
    functionSourceFile: /src/nss/cmd/libpkix/pkix/params/test_procparams.c
    functionUses: 0
    functionsReached:
    - testEqualsHelper
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_ProcessingParams_GetTargetCertConstraints
    - PKIX_ProcessingParams_SetTargetCertConstraints
    linkageType: ''
    returnType: void
    signature: void testGetSetConstraints(PKIX_ProcessingParams *goodObject)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:299,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:300,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:302,1
    - Dst: PKIX_PL_OID_Create
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:302,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:304,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:304,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:306,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:306,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:308,1
    - Dst: PKIX_List_SetImmutable
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:308,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:310,1
    - Dst: PKIX_ProcessingParams_SetInitialPolicies
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:310,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:312,1
    - Dst: PKIX_ProcessingParams_GetInitialPolicies
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:312,1
    - Dst: testEqualsHelper
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:314,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:320,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:321,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:322,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 2
    argNames:
    - goodObject
    - asciiPolicyOID
    argTypes:
    - PKIX_ProcessingParams*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 325
    functionName: testGetSetInitialPolicies
    functionSourceFile: /src/nss/cmd/libpkix/pkix/params/test_procparams.c
    functionUses: 0
    functionsReached:
    - testEqualsHelper
    - PKIX_TEST_DECREF_AC
    - PKIX_List_SetImmutable
    - PKIX_TEST_RETURN
    - PKIX_List_Create
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_List_AppendItem
    - PKIX_PL_OID_Create
    - PKIX_ProcessingParams_SetInitialPolicies
    - PKIX_ProcessingParams_GetInitialPolicies
    linkageType: ''
    returnType: void
    signature: "void testGetSetInitialPolicies(\n    PKIX_ProcessingParams *goodObject,\n
      \   char *asciiPolicyOID)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:334,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:335,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:337,1
    - Dst: PKIX_ProcessingParams_SetPolicyQualifiersRejected
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:337,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:339,1
    - Dst: PKIX_ProcessingParams_GetPolicyQualifiersRejected
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:339,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:342,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:347,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - goodObject
    - rejected
    argTypes:
    - PKIX_ProcessingParams*
    - PKIX_Boolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 348
    functionName: testGetSetPolicyQualifiersRejected
    functionSourceFile: /src/nss/cmd/libpkix/pkix/params/test_procparams.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_ProcessingParams_SetPolicyQualifiersRejected
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_EXPECT_NO_ERROR
    - testError
    - PKIX_ProcessingParams_GetPolicyQualifiersRejected
    linkageType: ''
    returnType: void
    signature: "void testGetSetPolicyQualifiersRejected(\n    PKIX_ProcessingParams
      *goodObject,\n    PKIX_Boolean rejected)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 354
    functionName: printUsage
    functionSourceFile: /src/nss/cmd/libpkix/pkix/params/test_procparams.c
    functionUses: 5
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printUsage(char *pName)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:404,1
    - Dst: startTests
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:406,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:408,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:409,1
    - Dst: printUsage
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:412,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:418,1
    - Dst: createProcessingParams
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:419,1
    - Dst: createProcessingParams
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:427,1
    - Dst: createProcessingParams
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:435,1
    - Dst: testGetAnchors
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:443,1
    - Dst: testGetSetDate
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:444,1
    - Dst: testGetSetCertChainCheckers
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:445,1
    - Dst: testGetSetRevocationCheckers
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:446,1
    - Dst: testGetSetResourceLimits
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:447,1
    - Dst: testGetSetInitialPolicies
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:453,1
    - Dst: testGetSetInitialPolicies
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:454,1
    - Dst: testGetSetInitialPolicies
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:455,1
    - Dst: testGetSetPolicyQualifiersRejected
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:456,1
    - Dst: testGetSetPolicyQualifiersRejected
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:457,1
    - Dst: testGetSetPolicyQualifiersRejected
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:458,1
    - Dst: PKIX_TEST_EQ_HASH_TOSTR_DUP
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:460,1
    - Dst: testDestroy
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:467,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:471,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:473,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix/params/test_procparams.c:475,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 356
    functionDepth: 2
    functionLinenumber: 356
    functionLinenumberEnd: 478
    functionName: test_procparams
    functionSourceFile: /src/nss/cmd/libpkix/pkix/params/test_procparams.c
    functionUses: 0
    functionsReached:
    - testDestroy
    - subTest
    - endTests
    - PKIX_TEST_EXPECT_NO_ERROR
    - testGetSetCertChainCheckers
    - PKIX_Shutdown
    - testGetSetDate
    - testGetSetResourceLimits
    - testGetAnchors
    - PKIX_PL_NssContext_Create
    - testGetSetInitialPolicies
    - testGetSetPolicyQualifiersRejected
    - PKIX_TEST_STD_VARS
    - testGetSetRevocationCheckers
    - startTests
    - PKIX_TEST_RETURN
    - PKIX_TEST_EQ_HASH_TOSTR_DUP
    - createProcessingParams
    - printUsage
    linkageType: ''
    returnType: int
    signature: int test_procparams(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/params/test_resourcelimits.c:19,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/params/test_resourcelimits.c:21,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/params/test_resourcelimits.c:23,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/params/test_resourcelimits.c:24,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/params/test_resourcelimits.c:25,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/params/test_resourcelimits.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - goodObject
    - equalObject
    - diffObject
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 30
    functionName: testDestroy
    functionSourceFile: /src/nss/cmd/libpkix/pkix/params/test_resourcelimits.c
    functionUses: 3
    functionsReached:
    - PKIX_TEST_RETURN
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_DECREF_BC
    linkageType: ''
    returnType: void
    signature: void testDestroy(void *goodObject, void *equalObject, void *diffObject)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/params/test_resourcelimits.c:51,1
    - Dst: startTests
      Src: /src/nss/cmd/libpkix/pkix/params/test_resourcelimits.c:53,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_resourcelimits.c:55,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix/params/test_resourcelimits.c:56,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/params/test_resourcelimits.c:58,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_resourcelimits.c:59,1
    - Dst: PKIX_ResourceLimits_Create
      Src: /src/nss/cmd/libpkix/pkix/params/test_resourcelimits.c:59,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_resourcelimits.c:60,1
    - Dst: PKIX_ResourceLimits_Create
      Src: /src/nss/cmd/libpkix/pkix/params/test_resourcelimits.c:60,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_resourcelimits.c:61,1
    - Dst: PKIX_ResourceLimits_Create
      Src: /src/nss/cmd/libpkix/pkix/params/test_resourcelimits.c:61,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_resourcelimits.c:63,1
    - Dst: PKIX_ResourceLimits_SetMaxTime
      Src: /src/nss/cmd/libpkix/pkix/params/test_resourcelimits.c:63,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_resourcelimits.c:64,1
    - Dst: PKIX_ResourceLimits_GetMaxTime
      Src: /src/nss/cmd/libpkix/pkix/params/test_resourcelimits.c:64,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_resourcelimits.c:65,1
    - Dst: PKIX_ResourceLimits_SetMaxTime
      Src: /src/nss/cmd/libpkix/pkix/params/test_resourcelimits.c:65,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_resourcelimits.c:67,1
    - Dst: PKIX_ResourceLimits_SetMaxTime
      Src: /src/nss/cmd/libpkix/pkix/params/test_resourcelimits.c:67,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_resourcelimits.c:69,1
    - Dst: PKIX_ResourceLimits_SetMaxFanout
      Src: /src/nss/cmd/libpkix/pkix/params/test_resourcelimits.c:69,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_resourcelimits.c:70,1
    - Dst: PKIX_ResourceLimits_GetMaxFanout
      Src: /src/nss/cmd/libpkix/pkix/params/test_resourcelimits.c:70,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_resourcelimits.c:71,1
    - Dst: PKIX_ResourceLimits_SetMaxFanout
      Src: /src/nss/cmd/libpkix/pkix/params/test_resourcelimits.c:71,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_resourcelimits.c:73,1
    - Dst: PKIX_ResourceLimits_SetMaxFanout
      Src: /src/nss/cmd/libpkix/pkix/params/test_resourcelimits.c:73,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_resourcelimits.c:75,1
    - Dst: PKIX_ResourceLimits_SetMaxDepth
      Src: /src/nss/cmd/libpkix/pkix/params/test_resourcelimits.c:75,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_resourcelimits.c:76,1
    - Dst: PKIX_ResourceLimits_GetMaxDepth
      Src: /src/nss/cmd/libpkix/pkix/params/test_resourcelimits.c:76,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_resourcelimits.c:77,1
    - Dst: PKIX_ResourceLimits_SetMaxDepth
      Src: /src/nss/cmd/libpkix/pkix/params/test_resourcelimits.c:77,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/params/test_resourcelimits.c:79,1
    - Dst: PKIX_ResourceLimits_SetMaxDepth
      Src: /src/nss/cmd/libpkix/pkix/params/test_resourcelimits.c:79,1
    - Dst: PKIX_TEST_EQ_HASH_TOSTR_DUP
      Src: /src/nss/cmd/libpkix/pkix/params/test_resourcelimits.c:81,1
    - Dst: testDestroy
      Src: /src/nss/cmd/libpkix/pkix/params/test_resourcelimits.c:88,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/pkix/params/test_resourcelimits.c:92,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/params/test_resourcelimits.c:94,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix/params/test_resourcelimits.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 99
    functionName: test_resourcelimits
    functionSourceFile: /src/nss/cmd/libpkix/pkix/params/test_resourcelimits.c
    functionUses: 0
    functionsReached:
    - PKIX_ResourceLimits_SetMaxFanout
    - testDestroy
    - PKIX_TEST_RETURN
    - PKIX_TEST_EQ_HASH_TOSTR_DUP
    - PKIX_ResourceLimits_SetMaxTime
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_ResourceLimits_Create
    - PKIX_ResourceLimits_GetMaxTime
    - endTests
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_ResourceLimits_SetMaxDepth
    - PKIX_ResourceLimits_GetMaxDepth
    - PKIX_Shutdown
    - startTests
    - PKIX_ResourceLimits_GetMaxFanout
    - PKIX_PL_NssContext_Create
    linkageType: ''
    returnType: int
    signature: int test_resourcelimits(int argc, char *argv[])
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:124,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:126,1
    - Dst: PKIX_CertSelector_GetMatchCallback
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:126,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:128,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:128,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:134,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:134,1
    - Dst: callback
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:135,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:139,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:140,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:144,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:145,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:150,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:151,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:156,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:157,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:159,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 3
    argNames:
    - selector
    - certs
    - expectedResults
    argTypes:
    - PKIX_CertSelector*
    - PKIX_List*
    - PKIX_UInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 160
    functionName: testSelector
    functionSourceFile: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c
    functionUses: 0
    functionsReached:
    - callback
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_TEST_STD_VARS
    - PKIX_List_GetLength
    - printf
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_TEST_DECREF_BC
    - testError
    - PKIX_CertSelector_GetMatchCallback
    - PKIX_List_GetItem
    linkageType: ''
    returnType: void
    signature: "void testSelector(\n    PKIX_CertSelector *selector,\n    PKIX_List
      *certs,\n    PKIX_UInt32 expectedResults)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:178,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:180,1
    - Dst: PKIX_PL_Cert_GetPolicyInformation
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:180,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:182,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:182,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:187,1
    - Dst: PKIX_PL_CertPolicyInfo_GetPolicyId
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:187,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:189,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:189,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:191,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:191,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:193,1
    - Dst: PKIX_List_SetImmutable
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:193,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:199,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:200,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:201,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 3
    argNames:
    - cert
    - index
    - pPolicyList
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_UInt32
    - PKIX_List**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 204
    functionName: testGetPolicyFromCert
    functionSourceFile: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_List_SetImmutable
    - PKIX_List_Create
    - PKIX_TEST_STD_VARS
    - PKIX_PL_CertPolicyInfo_GetPolicyId
    - PKIX_PL_Cert_GetPolicyInformation
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_List_AppendItem
    - PKIX_List_GetItem
    linkageType: ''
    returnType: void
    signature: "void testGetPolicyFromCert(\n    PKIX_PL_Cert *cert,\n    PKIX_UInt32
      index,\n    PKIX_List **pPolicyList)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:225,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:229,1
    - Dst: PKIX_PL_Cert_GetPolicyInformation
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:229,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:232,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:232,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:235,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:235,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:239,1
    - Dst: PKIX_PL_CertPolicyInfo_GetPolQualifiers
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:239,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:243,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:245,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:248,1
    - Dst: PKIX_Error_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:248,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:258,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:259,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:260,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 4
    argNames:
    - selector
    - cert
    - pResult
    - plContext
    argTypes:
    - PKIX_CertSelector*
    - PKIX_PL_Cert*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 263
    functionName: custom_CertSelector_MatchCallback
    functionSourceFile: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_STD_VARS
    - PKIX_List_GetLength
    - PKIX_PL_Cert_GetPolicyInformation
    - PKIX_PL_CertPolicyInfo_GetPolQualifiers
    - PKIX_Error_Create
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_TEST_DECREF_BC
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\ncustom_CertSelector_MatchCallback(\n    PKIX_CertSelector
      *selector,\n    PKIX_PL_Cert *cert,\n    PKIX_Boolean *pResult,\n    void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:288,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:292,1
    - Dst: PKIX_CertSelector_GetCertSelectorContext
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:292,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:294,1
    - Dst: pkix_CheckType
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:294,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:298,1
    - Dst: PKIX_PL_Cert_GetPolicyInformation
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:298,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:301,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:301,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:304,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:304,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:309,1
    - Dst: PKIX_PL_CertPolicyInfo_GetPolicyId
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:309,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:311,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:311,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:319,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:320,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:324,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:325,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:327,1
    - Dst: PKIX_Error_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:327,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:336,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:337,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:338,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:339,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:340,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 4
    argNames:
    - selector
    - cert
    - pResult
    - plContext
    argTypes:
    - PKIX_CertSelector*
    - PKIX_PL_Cert*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 343
    functionName: custom_CertSelector_MatchOIDCallback
    functionSourceFile: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_PL_Object_Equals
    - PKIX_TEST_STD_VARS
    - PKIX_List_GetLength
    - PKIX_PL_Cert_GetPolicyInformation
    - PKIX_PL_CertPolicyInfo_GetPolicyId
    - PKIX_Error_Create
    - PKIX_CertSelector_GetCertSelectorContext
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_TEST_DECREF_BC
    - pkix_CheckType
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\ncustom_CertSelector_MatchOIDCallback(\n    PKIX_CertSelector
      *selector,\n    PKIX_PL_Cert *cert,\n    PKIX_Boolean *pResult,\n    void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:354,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:356,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:357,1
    - Dst: PKIX_CertSelector_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:357,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:358,1
    - Dst: PKIX_ComCertSelParams_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:358,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:359,1
    - Dst: PKIX_PL_Cert_GetSubject
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:359,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:360,1
    - Dst: PKIX_ComCertSelParams_SetSubject
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:360,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:361,1
    - Dst: PKIX_CertSelector_SetCommonCertSelectorParams
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:361,1
    - Dst: testSelector
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:362,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:366,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:367,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:368,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 2
    argNames:
    - certs
    - certNameToMatch
    argTypes:
    - PKIX_List*
    - PKIX_PL_Cert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 345
    functionDepth: 2
    functionLinenumber: 345
    functionLinenumberEnd: 371
    functionName: testSubjectMatch
    functionSourceFile: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_ComCertSelParams_SetSubject
    - PKIX_TEST_RETURN
    - PKIX_PL_Cert_GetSubject
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_CertSelector_SetCommonCertSelectorParams
    - testSelector
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_CertSelector_Create
    - PKIX_ComCertSelParams_Create
    linkageType: ''
    returnType: void
    signature: "void testSubjectMatch(\n    PKIX_List *certs,\n    PKIX_PL_Cert *certNameToMatch)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:380,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:382,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:383,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:385,1
    - Dst: PKIX_CertSelector_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:385,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:386,1
    - Dst: PKIX_ComCertSelParams_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:386,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:387,1
    - Dst: PKIX_ComCertSelParams_SetBasicConstraints
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:387,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:388,1
    - Dst: PKIX_CertSelector_SetCommonCertSelectorParams
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:388,1
    - Dst: testSelector
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:389,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:391,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:392,1
    - Dst: PKIX_ComCertSelParams_SetBasicConstraints
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:392,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:393,1
    - Dst: PKIX_CertSelector_SetCommonCertSelectorParams
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:393,1
    - Dst: testSelector
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:394,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:396,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:397,1
    - Dst: PKIX_ComCertSelParams_SetBasicConstraints
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:397,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:398,1
    - Dst: PKIX_CertSelector_SetCommonCertSelectorParams
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:398,1
    - Dst: testSelector
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:399,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:401,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:402,1
    - Dst: PKIX_ComCertSelParams_SetBasicConstraints
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:402,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:403,1
    - Dst: PKIX_CertSelector_SetCommonCertSelectorParams
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:403,1
    - Dst: testSelector
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:404,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:407,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:408,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 1
    argNames:
    - certs
    argTypes:
    - PKIX_List*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 373
    functionDepth: 2
    functionLinenumber: 373
    functionLinenumberEnd: 411
    functionName: testBasicConstraintsMatch
    functionSourceFile: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_CertSelector_SetCommonCertSelectorParams
    - testSelector
    - PKIX_ComCertSelParams_SetBasicConstraints
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_CertSelector_Create
    - PKIX_ComCertSelParams_Create
    linkageType: ''
    returnType: void
    signature: "void testBasicConstraintsMatch(\n    PKIX_List *certs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:427,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:429,1
    - Dst: testGetPolicyFromCert
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:430,1
    - Dst: testGetPolicyFromCert
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:431,1
    - Dst: testGetPolicyFromCert
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:432,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:434,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:435,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:435,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:436,1
    - Dst: PKIX_ComCertSelParams_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:436,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:437,1
    - Dst: PKIX_ComCertSelParams_SetPolicy
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:437,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:438,1
    - Dst: PKIX_CertSelector_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:438,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:439,1
    - Dst: PKIX_CertSelector_SetCommonCertSelectorParams
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:439,1
    - Dst: testSelector
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:440,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:441,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:443,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:444,1
    - Dst: PKIX_ComCertSelParams_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:444,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:445,1
    - Dst: PKIX_ComCertSelParams_SetPolicy
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:445,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:446,1
    - Dst: PKIX_CertSelector_SetCommonCertSelectorParams
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:446,1
    - Dst: testSelector
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:447,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:448,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:450,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:451,1
    - Dst: PKIX_ComCertSelParams_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:451,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:452,1
    - Dst: PKIX_ComCertSelParams_SetPolicy
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:452,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:453,1
    - Dst: PKIX_CertSelector_SetCommonCertSelectorParams
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:453,1
    - Dst: testSelector
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:454,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:455,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:457,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:458,1
    - Dst: PKIX_ComCertSelParams_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:458,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:459,1
    - Dst: PKIX_ComCertSelParams_SetPolicy
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:459,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:460,1
    - Dst: PKIX_CertSelector_SetCommonCertSelectorParams
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:460,1
    - Dst: testSelector
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:461,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:465,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:466,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:467,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:468,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:469,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:470,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 40
    argCount: 4
    argNames:
    - certs
    - NIST1Cert
    - NIST2Cert
    - anyPolicyCert
    argTypes:
    - PKIX_List*
    - PKIX_PL_Cert*
    - PKIX_PL_Cert*
    - PKIX_PL_Cert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 413
    functionDepth: 2
    functionLinenumber: 413
    functionLinenumberEnd: 473
    functionName: testPolicyMatch
    functionSourceFile: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_List_Create
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_CertSelector_SetCommonCertSelectorParams
    - testSelector
    - PKIX_ComCertSelParams_SetPolicy
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_TEST_DECREF_BC
    - testGetPolicyFromCert
    - PKIX_CertSelector_Create
    - PKIX_ComCertSelParams_Create
    linkageType: ''
    returnType: void
    signature: "void testPolicyMatch(\n    PKIX_List *certs,\n    PKIX_PL_Cert *NIST1Cert,
      \    /* a source for policy NIST1 */\n    PKIX_PL_Cert *NIST2Cert,     /* a
      source for policy NIST2 */\n    PKIX_PL_Cert *anyPolicyCert)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:483,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:485,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:486,1
    - Dst: PKIX_CertSelector_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:486,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:487,1
    - Dst: PKIX_ComCertSelParams_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:487,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:488,1
    - Dst: PKIX_ComCertSelParams_SetCertificate
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:488,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:489,1
    - Dst: PKIX_CertSelector_SetCommonCertSelectorParams
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:489,1
    - Dst: testSelector
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:490,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:494,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:495,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - certs
    - certToMatch
    argTypes:
    - PKIX_List*
    - PKIX_PL_Cert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 475
    functionDepth: 2
    functionLinenumber: 475
    functionLinenumberEnd: 498
    functionName: testCertificateMatch
    functionSourceFile: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_ComCertSelParams_SetCertificate
    - PKIX_CertSelector_SetCommonCertSelectorParams
    - testSelector
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_CertSelector_Create
    - PKIX_ComCertSelParams_Create
    linkageType: ''
    returnType: void
    signature: "void testCertificateMatch(\n    PKIX_List *certs,\n    PKIX_PL_Cert
      *certToMatch)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:514,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:516,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:518,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:518,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:520,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:521,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:521,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:522,1
    - Dst: PKIX_PL_Cert_GetNameConstraints
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:522,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:523,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:525,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:526,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:526,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:527,1
    - Dst: PKIX_PL_Cert_GetNameConstraints
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:527,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:528,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:530,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:531,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:531,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:532,1
    - Dst: PKIX_PL_Cert_GetNameConstraints
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:532,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:533,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:535,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:536,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:536,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:537,1
    - Dst: PKIX_PL_Cert_GetNameConstraints
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:537,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:538,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:540,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:541,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:541,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:542,1
    - Dst: PKIX_PL_Cert_GetNameConstraints
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:542,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:543,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:545,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:546,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:546,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:547,1
    - Dst: PKIX_PL_Cert_GetNameConstraints
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:547,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:548,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:550,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:551,1
    - Dst: PKIX_CertSelector_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:551,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:552,1
    - Dst: PKIX_ComCertSelParams_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:552,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:554,1
    - Dst: PKIX_CertSelector_SetCommonCertSelectorParams
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:554,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:556,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:557,1
    - Dst: PKIX_ComCertSelParams_SetNameConstraints
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:557,1
    - Dst: testSelector
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:558,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:560,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:561,1
    - Dst: PKIX_ComCertSelParams_SetNameConstraints
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:561,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:562,1
    - Dst: PKIX_CertSelector_SetCommonCertSelectorParams
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:562,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:564,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:565,1
    - Dst: PKIX_ComCertSelParams_SetNameConstraints
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:565,1
    - Dst: testSelector
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:566,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:568,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:569,1
    - Dst: PKIX_ComCertSelParams_SetNameConstraints
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:569,1
    - Dst: testSelector
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:570,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:572,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:573,1
    - Dst: PKIX_ComCertSelParams_SetNameConstraints
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:573,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:574,1
    - Dst: PKIX_CertSelector_SetCommonCertSelectorParams
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:574,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:576,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:577,1
    - Dst: PKIX_ComCertSelParams_SetNameConstraints
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:577,1
    - Dst: testSelector
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:578,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:580,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:581,1
    - Dst: PKIX_ComCertSelParams_SetNameConstraints
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:581,1
    - Dst: testSelector
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:582,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:584,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:585,1
    - Dst: PKIX_ComCertSelParams_SetNameConstraints
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:585,1
    - Dst: testSelector
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:586,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:590,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:591,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:592,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:593,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:594,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:595,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:596,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:597,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 67
    argCount: 1
    argNames:
    - certs
    argTypes:
    - PKIX_List*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 500
    functionDepth: 2
    functionLinenumber: 500
    functionLinenumberEnd: 600
    functionName: testNameConstraintsMatch
    functionSourceFile: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c
    functionUses: 0
    functionsReached:
    - PKIX_CertSelector_Create
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_List_GetLength
    - PKIX_CertSelector_SetCommonCertSelectorParams
    - testSelector
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_TEST_DECREF_BC
    - PKIX_ComCertSelParams_SetNameConstraints
    - PKIX_PL_Cert_GetNameConstraints
    - PKIX_ComCertSelParams_Create
    - PKIX_List_GetItem
    linkageType: ''
    returnType: void
    signature: void testNameConstraintsMatch(PKIX_List *certs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:610,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:612,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:614,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:616,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:616,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:618,1
    - Dst: createGeneralName
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:619,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:622,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:622,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:624,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:625,1
    - Dst: PKIX_CertSelector_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:625,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:626,1
    - Dst: PKIX_ComCertSelParams_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:626,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:628,1
    - Dst: PKIX_CertSelector_SetCommonCertSelectorParams
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:628,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:630,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:631,1
    - Dst: PKIX_ComCertSelParams_SetPathToNames
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:631,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:633,1
    - Dst: testSelector
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:634,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:636,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:637,1
    - Dst: PKIX_List_DeleteItem
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:637,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:638,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:640,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:641,1
    - Dst: PKIX_ComCertSelParams_SetPathToNames
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:641,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:642,1
    - Dst: PKIX_CertSelector_SetCommonCertSelectorParams
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:642,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:644,1
    - Dst: createGeneralName
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:645,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:648,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:648,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:650,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:651,1
    - Dst: PKIX_ComCertSelParams_SetPathToNames
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:651,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:653,1
    - Dst: testSelector
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:654,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:656,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:657,1
    - Dst: PKIX_List_DeleteItem
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:657,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:658,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:660,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:661,1
    - Dst: PKIX_ComCertSelParams_SetPathToNames
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:661,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:662,1
    - Dst: PKIX_CertSelector_SetCommonCertSelectorParams
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:662,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:664,1
    - Dst: createGeneralName
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:665,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:668,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:668,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:669,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:671,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:672,1
    - Dst: PKIX_ComCertSelParams_SetPathToNames
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:672,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:674,1
    - Dst: testSelector
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:675,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:677,1
    - Dst: createGeneralName
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:678,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:682,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:683,1
    - Dst: PKIX_ComCertSelParams_AddPathToName
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:683,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:684,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:686,1
    - Dst: testSelector
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:687,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:689,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:690,1
    - Dst: PKIX_ComCertSelParams_SetPathToNames
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:690,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:691,1
    - Dst: PKIX_CertSelector_SetCommonCertSelectorParams
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:691,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:692,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:693,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:693,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:695,1
    - Dst: createGeneralName
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:696,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:700,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:700,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:701,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:703,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:704,1
    - Dst: PKIX_ComCertSelParams_SetPathToNames
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:704,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:706,1
    - Dst: testSelector
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:707,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:709,1
    - Dst: createGeneralName
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:710,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:713,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:713,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:714,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:716,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:717,1
    - Dst: PKIX_ComCertSelParams_SetPathToNames
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:717,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:719,1
    - Dst: testSelector
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:720,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:722,1
    - Dst: createGeneralName
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:723,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:725,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:726,1
    - Dst: PKIX_ComCertSelParams_SetPathToNames
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:726,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:727,1
    - Dst: PKIX_ComCertSelParams_AddPathToName
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:727,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:728,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:730,1
    - Dst: testSelector
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:731,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:735,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:736,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:737,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:739,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 85
    argCount: 1
    argNames:
    - certs
    argTypes:
    - PKIX_List*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 602
    functionDepth: 2
    functionLinenumber: 602
    functionLinenumberEnd: 740
    functionName: testPathToNamesMatch
    functionSourceFile: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - createGeneralName
    - PKIX_List_Create
    - PKIX_ComCertSelParams_SetPathToNames
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_CertSelector_SetCommonCertSelectorParams
    - testSelector
    - PKIX_List_DeleteItem
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_List_AppendItem
    - PKIX_TEST_DECREF_BC
    - PKIX_CertSelector_Create
    - PKIX_ComCertSelParams_Create
    - PKIX_ComCertSelParams_AddPathToName
    linkageType: ''
    returnType: void
    signature: void testPathToNamesMatch(PKIX_List *certs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:750,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:752,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:754,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:756,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:756,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:758,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:759,1
    - Dst: PKIX_CertSelector_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:759,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:760,1
    - Dst: PKIX_ComCertSelParams_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:760,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:762,1
    - Dst: PKIX_CertSelector_SetCommonCertSelectorParams
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:762,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:764,1
    - Dst: createGeneralName
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:765,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:770,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:770,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:772,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:773,1
    - Dst: PKIX_ComCertSelParams_SetSubjAltNames
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:773,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:775,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:776,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:778,1
    - Dst: testSelector
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:779,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:781,1
    - Dst: createGeneralName
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:782,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:786,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:787,1
    - Dst: PKIX_ComCertSelParams_AddSubjAltName
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:787,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:788,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:790,1
    - Dst: testSelector
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:791,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:793,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:794,1
    - Dst: PKIX_ComCertSelParams_SetMatchAllSubjAltNames
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:794,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:795,1
    - Dst: PKIX_CertSelector_SetCommonCertSelectorParams
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:795,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:797,1
    - Dst: testSelector
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:798,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:802,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:803,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:804,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:805,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:807,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 37
    argCount: 1
    argNames:
    - certs
    argTypes:
    - PKIX_List*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 742
    functionDepth: 2
    functionLinenumber: 742
    functionLinenumberEnd: 808
    functionName: testSubjAltNamesMatch
    functionSourceFile: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - createGeneralName
    - PKIX_List_Create
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_CertSelector_SetCommonCertSelectorParams
    - testSelector
    - PKIX_ComCertSelParams_AddSubjAltName
    - PKIX_ComCertSelParams_SetMatchAllSubjAltNames
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_List_AppendItem
    - PKIX_TEST_DECREF_BC
    - PKIX_CertSelector_Create
    - PKIX_ComCertSelParams_Create
    - PKIX_ComCertSelParams_SetSubjAltNames
    linkageType: ''
    returnType: void
    signature: void testSubjAltNamesMatch(PKIX_List *certs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:820,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:822,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:823,1
    - Dst: PKIX_CertSelector_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:823,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:824,1
    - Dst: PKIX_ComCertSelParams_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:824,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:825,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:825,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:826,1
    - Dst: PKIX_PL_Date_Create_UTCTime
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:826,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:827,1
    - Dst: PKIX_ComCertSelParams_SetCertificateValid
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:827,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:828,1
    - Dst: PKIX_CertSelector_SetCommonCertSelectorParams
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:828,1
    - Dst: testSelector
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:829,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:833,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:834,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:835,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:836,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:838,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - certs
    argTypes:
    - PKIX_List*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 810
    functionDepth: 2
    functionLinenumber: 810
    functionLinenumberEnd: 839
    functionName: testCertificateValidMatch
    functionSourceFile: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_PL_String_Create
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_CertSelector_SetCommonCertSelectorParams
    - testSelector
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_CertSelector_Create
    - PKIX_ComCertSelParams_Create
    - PKIX_ComCertSelParams_SetCertificateValid
    - PKIX_PL_Date_Create_UTCTime
    linkageType: ''
    returnType: void
    signature: "void testCertificateValidMatch(\n    PKIX_List *certs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:846,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:848,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:850,1
    - Dst: PKIX_CertSelector_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:850,1
    - Dst: testSelector
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:855,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:859,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:861,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - certs
    argTypes:
    - PKIX_List*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 841
    functionDepth: 2
    functionLinenumber: 841
    functionLinenumberEnd: 862
    functionName: test_customCallback1
    functionSourceFile: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - subTest
    - PKIX_TEST_STD_VARS
    - testSelector
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_CertSelector_Create
    linkageType: ''
    returnType: void
    signature: void test_customCallback1(PKIX_List *certs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:872,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:874,1
    - Dst: testGetPolicyFromCert
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:876,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:878,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:878,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:880,1
    - Dst: PKIX_CertSelector_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:880,1
    - Dst: testSelector
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:885,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:889,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:890,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:891,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:893,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - certs
    - anyPolicyCert
    argTypes:
    - PKIX_List*
    - PKIX_PL_Cert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 864
    functionDepth: 2
    functionLinenumber: 864
    functionLinenumberEnd: 894
    functionName: test_customCallback2
    functionSourceFile: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - subTest
    - PKIX_TEST_STD_VARS
    - testSelector
    - PKIX_TEST_EXPECT_NO_ERROR
    - testGetPolicyFromCert
    - PKIX_CertSelector_Create
    - PKIX_List_GetItem
    linkageType: ''
    returnType: void
    signature: "void test_customCallback2(PKIX_List *certs,\n                     PKIX_PL_Cert
      *anyPolicyCert)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:910,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:912,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:914,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:915,1
    - Dst: PKIX_ComCertSelParams_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:915,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:917,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:918,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:918,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:920,1
    - Dst: PKIX_PL_OID_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:920,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:922,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:922,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:924,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:926,1
    - Dst: PKIX_PL_OID_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:926,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:928,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:928,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:930,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:932,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:933,1
    - Dst: PKIX_ComCertSelParams_SetExtendedKeyUsage
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:933,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:935,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:935,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:937,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:938,1
    - Dst: PKIX_PL_CollectionCertStore_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:938,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:940,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:941,1
    - Dst: PKIX_CertSelector_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:941,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:943,1
    - Dst: PKIX_CertSelector_SetCommonCertSelectorParams
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:943,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:945,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:946,1
    - Dst: PKIX_CertStore_GetCertCallback
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:946,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:948,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:949,1
    - Dst: certCallback
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:949,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:951,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:951,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:959,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:960,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:961,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:962,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:963,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:964,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:965,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:967,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 39
    argCount: 1
    argNames:
    - certDir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 968
      start: 896
    functionDepth: 1
    functionLinenumber: 896
    functionLinenumberEnd: 968
    functionName: testExtendedKeyUsageMatch
    functionSourceFile: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_PL_String_Create
    - PKIX_List_Create
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_CertSelector_SetCommonCertSelectorParams
    - PKIX_List_GetLength
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_List_AppendItem
    - PKIX_PL_OID_Create
    - PKIX_TEST_DECREF_BC
    - PKIX_CertStore_GetCertCallback
    - PKIX_CertSelector_Create
    - PKIX_ComCertSelParams_Create
    - PKIX_ComCertSelParams_SetExtendedKeyUsage
    - certCallback
    - PKIX_PL_CollectionCertStore_Create
    linkageType: ''
    returnType: void
    signature: void testExtendedKeyUsageMatch(char *certDir)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:982,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:984,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:986,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:987,1
    - Dst: PKIX_ComCertSelParams_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:987,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:989,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:990,1
    - Dst: PKIX_ComCertSelParams_SetKeyUsage
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:990,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:992,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:992,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:994,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:995,1
    - Dst: PKIX_PL_CollectionCertStore_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:995,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:997,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:998,1
    - Dst: PKIX_CertSelector_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:998,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1000,1
    - Dst: PKIX_CertSelector_SetCommonCertSelectorParams
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1000,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1002,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1003,1
    - Dst: PKIX_CertStore_GetCertCallback
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1003,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1005,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1006,1
    - Dst: certCallback
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1006,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1008,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1008,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1016,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1017,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1018,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1019,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1020,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1022,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 1
    argNames:
    - certDir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 970
    functionDepth: 1
    functionLinenumber: 970
    functionLinenumberEnd: 1023
    functionName: testKeyUsageMatch
    functionSourceFile: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_PL_String_Create
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_CertSelector_SetCommonCertSelectorParams
    - PKIX_List_GetLength
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_CertStore_GetCertCallback
    - PKIX_CertSelector_Create
    - PKIX_ComCertSelParams_Create
    - certCallback
    - PKIX_PL_CollectionCertStore_Create
    - PKIX_ComCertSelParams_SetKeyUsage
    linkageType: ''
    returnType: void
    signature: void testKeyUsageMatch(char *certDir)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1038,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1040,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1042,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1043,1
    - Dst: PKIX_ComCertSelParams_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1043,1
    - Dst: createDate
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1045,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1047,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1048,1
    - Dst: PKIX_ComCertSelParams_SetCertificateValid
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1048,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1050,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1050,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1052,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1053,1
    - Dst: PKIX_PL_CollectionCertStore_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1053,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1055,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1056,1
    - Dst: PKIX_CertSelector_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1056,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1058,1
    - Dst: PKIX_CertSelector_SetCommonCertSelectorParams
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1058,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1060,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1061,1
    - Dst: PKIX_CertStore_GetCertCallback
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1061,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1063,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1064,1
    - Dst: certCallback
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1064,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1066,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1066,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1074,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1075,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1076,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1077,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1078,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1079,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1081,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 1
    argNames:
    - certDir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1082
      start: 1025
    functionDepth: 1
    functionLinenumber: 1025
    functionLinenumberEnd: 1082
    functionName: testCertValidMatch
    functionSourceFile: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_PL_String_Create
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_CertSelector_SetCommonCertSelectorParams
    - PKIX_List_GetLength
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_CertStore_GetCertCallback
    - createDate
    - certCallback
    - PKIX_CertSelector_Create
    - PKIX_ComCertSelParams_Create
    - PKIX_ComCertSelParams_SetCertificateValid
    - PKIX_PL_CollectionCertStore_Create
    linkageType: ''
    returnType: void
    signature: void testCertValidMatch(char *certDir)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1099,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1101,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1103,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1104,1
    - Dst: PKIX_ComCertSelParams_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1104,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1106,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1106,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1108,1
    - Dst: PKIX_PL_X500Name_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1108,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1110,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1111,1
    - Dst: PKIX_ComCertSelParams_SetIssuer
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1111,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1113,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1113,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1115,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1116,1
    - Dst: PKIX_PL_CollectionCertStore_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1116,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1118,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1119,1
    - Dst: PKIX_CertSelector_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1119,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1121,1
    - Dst: PKIX_CertSelector_SetCommonCertSelectorParams
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1121,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1123,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1124,1
    - Dst: PKIX_CertStore_GetCertCallback
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1124,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1126,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1127,1
    - Dst: certCallback
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1127,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1129,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1129,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1137,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1138,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1139,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1140,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1141,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1142,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1143,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 33
    argCount: 1
    argNames:
    - certDir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1084
    functionDepth: 1
    functionLinenumber: 1084
    functionLinenumberEnd: 1146
    functionName: testIssuerMatch
    functionSourceFile: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c
    functionUses: 0
    functionsReached:
    - PKIX_CertSelector_Create
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_PL_String_Create
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_ComCertSelParams_SetIssuer
    - PKIX_CertSelector_SetCommonCertSelectorParams
    - PKIX_List_GetLength
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_CertStore_GetCertCallback
    - PKIX_PL_X500Name_Create
    - PKIX_ComCertSelParams_Create
    - certCallback
    - PKIX_PL_CollectionCertStore_Create
    linkageType: ''
    returnType: void
    signature: void testIssuerMatch(char *certDir)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1162,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1164,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1166,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1167,1
    - Dst: PKIX_ComCertSelParams_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1167,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1169,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1169,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1171,1
    - Dst: PKIX_PL_BigInt_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1171,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1173,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1174,1
    - Dst: PKIX_ComCertSelParams_SetSerialNumber
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1174,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1176,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1177,1
    - Dst: PKIX_ComCertSelParams_SetVersion
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1177,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1179,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1179,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1181,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1182,1
    - Dst: PKIX_PL_CollectionCertStore_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1182,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1184,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1185,1
    - Dst: PKIX_CertSelector_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1185,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1187,1
    - Dst: PKIX_CertSelector_SetCommonCertSelectorParams
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1187,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1189,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1190,1
    - Dst: PKIX_CertStore_GetCertCallback
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1190,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1192,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1193,1
    - Dst: certCallback
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1193,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1195,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1195,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1197,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1203,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1204,1
    - Dst: PKIX_ComCertSelParams_SetVersion
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1204,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1206,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1207,1
    - Dst: certCallback
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1207,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1209,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1209,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1217,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1218,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1219,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1220,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1221,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1222,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1223,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1225,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 44
    argCount: 1
    argNames:
    - certDir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1226
      start: 1148
    functionDepth: 1
    functionLinenumber: 1148
    functionLinenumberEnd: 1226
    functionName: testSerialNumberVersionMatch
    functionSourceFile: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_ComCertSelParams_SetVersion
    - PKIX_PL_String_Create
    - PKIX_PL_BigInt_Create
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_CertSelector_SetCommonCertSelectorParams
    - PKIX_List_GetLength
    - PKIX_ComCertSelParams_SetSerialNumber
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_CertStore_GetCertCallback
    - PKIX_TEST_DECREF_BC
    - PKIX_CertSelector_Create
    - PKIX_ComCertSelParams_Create
    - certCallback
    - PKIX_PL_CollectionCertStore_Create
    linkageType: ''
    returnType: void
    signature: void testSerialNumberVersionMatch(char *certDir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1237,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1239,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1242,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1242,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1244,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1245,1
    - Dst: PKIX_PL_Cert_GetSubjectKeyIdentifier
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1245,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1247,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1248,1
    - Dst: PKIX_CertSelector_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1248,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1249,1
    - Dst: PKIX_ComCertSelParams_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1249,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1251,1
    - Dst: PKIX_CertSelector_SetCommonCertSelectorParams
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1251,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1253,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1254,1
    - Dst: PKIX_ComCertSelParams_SetSubjKeyIdentifier
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1254,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1256,1
    - Dst: testSelector
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1257,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1261,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1262,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1263,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1264,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 1
    argNames:
    - certs
    argTypes:
    - PKIX_List*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1267
      start: 1228
    functionDepth: 2
    functionLinenumber: 1228
    functionLinenumberEnd: 1267
    functionName: testSubjKeyIdMatch
    functionSourceFile: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_CertSelector_SetCommonCertSelectorParams
    - testSelector
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_ComCertSelParams_SetSubjKeyIdentifier
    - PKIX_CertSelector_Create
    - PKIX_ComCertSelParams_Create
    - PKIX_PL_Cert_GetSubjectKeyIdentifier
    - PKIX_List_GetItem
    linkageType: ''
    returnType: void
    signature: void testSubjKeyIdMatch(PKIX_List *certs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1278,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1280,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1283,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1283,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1285,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1286,1
    - Dst: PKIX_PL_Cert_GetAuthorityKeyIdentifier
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1286,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1288,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1289,1
    - Dst: PKIX_CertSelector_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1289,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1290,1
    - Dst: PKIX_ComCertSelParams_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1290,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1292,1
    - Dst: PKIX_CertSelector_SetCommonCertSelectorParams
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1292,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1294,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1295,1
    - Dst: PKIX_ComCertSelParams_SetAuthorityKeyIdentifier
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1295,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1297,1
    - Dst: testSelector
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1298,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1302,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1303,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1304,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1305,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 1
    argNames:
    - certs
    argTypes:
    - PKIX_List*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1308
      start: 1269
    functionDepth: 2
    functionLinenumber: 1269
    functionLinenumberEnd: 1308
    functionName: testAuthKeyIdMatch
    functionSourceFile: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_CertSelector_SetCommonCertSelectorParams
    - testSelector
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_ComCertSelParams_SetAuthorityKeyIdentifier
    - PKIX_CertSelector_Create
    - PKIX_ComCertSelParams_Create
    - PKIX_PL_Cert_GetAuthorityKeyIdentifier
    - PKIX_List_GetItem
    linkageType: ''
    returnType: void
    signature: void testAuthKeyIdMatch(PKIX_List *certs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1319,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1321,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1324,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1324,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1326,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1327,1
    - Dst: PKIX_PL_Cert_GetSubjectPublicKeyAlgId
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1327,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1329,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1330,1
    - Dst: PKIX_CertSelector_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1330,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1331,1
    - Dst: PKIX_ComCertSelParams_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1331,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1333,1
    - Dst: PKIX_CertSelector_SetCommonCertSelectorParams
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1333,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1335,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1336,1
    - Dst: PKIX_ComCertSelParams_SetSubjPKAlgId
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1336,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1338,1
    - Dst: testSelector
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1339,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1343,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1344,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1345,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1346,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 1
    argNames:
    - certs
    argTypes:
    - PKIX_List*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1349
      start: 1310
    functionDepth: 2
    functionLinenumber: 1310
    functionLinenumberEnd: 1349
    functionName: testSubjPKAlgIdMatch
    functionSourceFile: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_CertSelector_SetCommonCertSelectorParams
    - testSelector
    - PKIX_PL_Cert_GetSubjectPublicKeyAlgId
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_ComCertSelParams_SetSubjPKAlgId
    - PKIX_CertSelector_Create
    - PKIX_ComCertSelParams_Create
    - PKIX_List_GetItem
    linkageType: ''
    returnType: void
    signature: void testSubjPKAlgIdMatch(PKIX_List *certs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1360,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1362,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1365,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1365,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1367,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1368,1
    - Dst: PKIX_PL_Cert_GetSubjectPublicKey
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1368,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1370,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1371,1
    - Dst: PKIX_CertSelector_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1371,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1372,1
    - Dst: PKIX_ComCertSelParams_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1372,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1374,1
    - Dst: PKIX_CertSelector_SetCommonCertSelectorParams
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1374,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1376,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1377,1
    - Dst: PKIX_ComCertSelParams_SetSubjPubKey
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1377,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1379,1
    - Dst: testSelector
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1380,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1384,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1385,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1386,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1387,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 1
    argNames:
    - certs
    argTypes:
    - PKIX_List*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1390
      start: 1351
    functionDepth: 2
    functionLinenumber: 1351
    functionLinenumberEnd: 1390
    functionName: testSubjPublicKeyMatch
    functionSourceFile: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_CertSelector_SetCommonCertSelectorParams
    - testSelector
    - PKIX_PL_Cert_GetSubjectPublicKey
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_ComCertSelParams_SetSubjPubKey
    - PKIX_CertSelector_Create
    - PKIX_ComCertSelParams_Create
    - PKIX_List_GetItem
    linkageType: ''
    returnType: void
    signature: void testSubjPublicKeyMatch(PKIX_List *certs)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1411,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1413,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1414,1
    - Dst: PKIX_PL_Object_Duplicate
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1414,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1417,1
    - Dst: PKIX_CertSelector_GetCommonCertSelectorParams
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1417,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1418,1
    - Dst: PKIX_CertSelector_GetCommonCertSelectorParams
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1418,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1420,1
    - Dst: PKIX_ComCertSelParams_GetSubject
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1420,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1421,1
    - Dst: PKIX_ComCertSelParams_GetSubject
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1421,1
    - Dst: testEqualsHelper
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1423,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1434,1
    - Dst: PKIX_ComCertSelParams_GetPolicy
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1434,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1435,1
    - Dst: PKIX_ComCertSelParams_GetPolicy
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1435,1
    - Dst: testEqualsHelper
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1437,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1448,1
    - Dst: PKIX_ComCertSelParams_GetCertificate
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1448,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1449,1
    - Dst: PKIX_ComCertSelParams_GetCertificate
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1449,1
    - Dst: testEqualsHelper
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1451,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1462,1
    - Dst: PKIX_ComCertSelParams_GetCertificateValid
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1462,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1463,1
    - Dst: PKIX_ComCertSelParams_GetCertificateValid
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1463,1
    - Dst: testEqualsHelper
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1465,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1476,1
    - Dst: PKIX_ComCertSelParams_GetBasicConstraints
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1476,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1477,1
    - Dst: PKIX_ComCertSelParams_GetBasicConstraints
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1477,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1483,1
    - Dst: PKIX_CertSelector_GetMatchCallback
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1483,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1484,1
    - Dst: PKIX_CertSelector_GetMatchCallback
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1484,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1491,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1492,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1493,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1494,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1495,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1496,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1497,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1498,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1499,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1500,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1501,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1503,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 72
    argCount: 1
    argNames:
    - selector
    argTypes:
    - PKIX_CertSelector*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1504
      start: 1392
    functionDepth: 1
    functionLinenumber: 1392
    functionLinenumberEnd: 1504
    functionName: test_CertSelector_Duplicate
    functionSourceFile: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c
    functionUses: 0
    functionsReached:
    - testEqualsHelper
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_PL_Object_Duplicate
    - PKIX_ComCertSelParams_GetSubject
    - PKIX_CertSelector_GetCommonCertSelectorParams
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_ComCertSelParams_GetCertificateValid
    - PKIX_ComCertSelParams_GetPolicy
    - PKIX_ComCertSelParams_GetCertificate
    - PKIX_ComCertSelParams_GetBasicConstraints
    - PKIX_CertSelector_GetMatchCallback
    linkageType: ''
    returnType: void
    signature: void test_CertSelector_Duplicate(PKIX_CertSelector *selector)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1431
      start: 1428
    functionDepth: 0
    functionLinenumber: 1428
    functionLinenumberEnd: 1431
    functionName: PKIX_EXACTLY_ONE_NULL
    functionSourceFile: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PKIX_EXACTLY_ONE_NULL (goodSubject, equalSubject)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1445
      start: 1442
    functionDepth: 0
    functionLinenumber: 1442
    functionLinenumberEnd: 1445
    functionName: PKIX_EXACTLY_ONE_NULL
    functionSourceFile: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PKIX_EXACTLY_ONE_NULL (goodPolicy, equalPolicy)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1459
      start: 1456
    functionDepth: 0
    functionLinenumber: 1456
    functionLinenumberEnd: 1459
    functionName: PKIX_EXACTLY_ONE_NULL
    functionSourceFile: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PKIX_EXACTLY_ONE_NULL (goodCert, equalCert)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1473
      start: 1470
    functionDepth: 0
    functionLinenumber: 1470
    functionLinenumberEnd: 1473
    functionName: PKIX_EXACTLY_ONE_NULL
    functionSourceFile: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PKIX_EXACTLY_ONE_NULL (goodDate, equalDate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1510
      start: 1506
    functionDepth: 0
    functionLinenumber: 1506
    functionLinenumberEnd: 1510
    functionName: printUsage
    functionSourceFile: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c
    functionUses: 6
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printUsage(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1533,1
    - Dst: startTests
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1535,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1537,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1538,1
    - Dst: printUsage
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1541,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1549,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1549,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1553,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1555,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1555,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1557,1
    - Dst: PKIX_PL_Object_IncRef
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1557,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1561,1
    - Dst: PKIX_PL_Object_IncRef
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1561,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1565,1
    - Dst: PKIX_PL_Object_IncRef
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1565,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1569,1
    - Dst: PKIX_PL_Object_IncRef
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1569,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1572,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1575,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1575,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1579,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1581,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1581,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1585,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1588,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1588,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1592,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1594,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1594,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1598,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1601,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1602,1
    - Dst: PKIX_CertSelector_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1602,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1604,1
    - Dst: testSelector
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1605,1
    - Dst: testSubjectMatch
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1607,1
    - Dst: testBasicConstraintsMatch
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1609,1
    - Dst: testPolicyMatch
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1611,1
    - Dst: testCertificateMatch
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1613,1
    - Dst: testCertificateValidMatch
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1615,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1617,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1618,1
    - Dst: PKIX_ComCertSelParams_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1618,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1619,1
    - Dst: PKIX_ComCertSelParams_SetBasicConstraints
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1619,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1620,1
    - Dst: PKIX_CertSelector_SetCommonCertSelectorParams
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1620,1
    - Dst: testSelector
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1621,1
    - Dst: testNameConstraintsMatch
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1623,1
    - Dst: testPathToNamesMatch
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1625,1
    - Dst: testSubjAltNamesMatch
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1627,1
    - Dst: testExtendedKeyUsageMatch
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1629,1
    - Dst: testKeyUsageMatch
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1631,1
    - Dst: testIssuerMatch
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1633,1
    - Dst: testSerialNumberVersionMatch
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1635,1
    - Dst: testCertValidMatch
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1637,1
    - Dst: testSubjKeyIdMatch
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1639,1
    - Dst: testAuthKeyIdMatch
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1641,1
    - Dst: testSubjPKAlgIdMatch
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1643,1
    - Dst: testSubjPublicKeyMatch
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1645,1
    - Dst: test_CertSelector_Duplicate
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1647,1
    - Dst: test_customCallback1
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1649,1
    - Dst: test_customCallback2
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1651,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1653,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1655,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1659,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1660,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1661,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1662,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1663,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1664,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1665,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1666,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1667,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1668,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1670,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1672,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c:1674,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 91
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1677
      start: 1512
    functionDepth: 3
    functionLinenumber: 1512
    functionLinenumberEnd: 1677
    functionName: test_certselector
    functionSourceFile: /src/nss/cmd/libpkix/pkix/certsel/test_certselector.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - testKeyUsageMatch
    - testSubjPKAlgIdMatch
    - PKIX_List_Create
    - testPolicyMatch
    - subTest
    - testSelector
    - PKIX_ComCertSelParams_SetBasicConstraints
    - endTests
    - PKIX_TEST_EXPECT_NO_ERROR
    - createCert
    - PKIX_PL_Object_IncRef
    - PKIX_Shutdown
    - PKIX_ComCertSelParams_Create
    - testCertificateValidMatch
    - test_customCallback2
    - PKIX_PL_NssContext_Create
    - testPathToNamesMatch
    - testExtendedKeyUsageMatch
    - testBasicConstraintsMatch
    - PKIX_List_AppendItem
    - testSerialNumberVersionMatch
    - testAuthKeyIdMatch
    - testCertValidMatch
    - testCertificateMatch
    - PKIX_TEST_STD_VARS
    - testSubjPublicKeyMatch
    - test_customCallback1
    - PKIX_TEST_DECREF_BC
    - testSubjAltNamesMatch
    - startTests
    - PKIX_TEST_RETURN
    - test_CertSelector_Duplicate
    - testSubjKeyIdMatch
    - testSubjectMatch
    - testIssuerMatch
    - testNameConstraintsMatch
    - PKIX_CertSelector_SetCommonCertSelectorParams
    - printUsage
    - PKIX_CertSelector_Create
    linkageType: ''
    returnType: int
    signature: int test_certselector(int argc, char *argv[])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:25,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:29,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:29,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:33,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:33,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:36,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:36,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:40,1
    - Dst: PKIX_PL_CertPolicyInfo_GetPolicyId
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:40,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:41,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:41,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:42,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:43,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:50,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:51,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:53,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - certPolicyInfos
    - pPolicyOIDs
    argTypes:
    - PKIX_List*
    - PKIX_List**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 54
    functionName: test_CreateOIDList
    functionSourceFile: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_List_Create
    - PKIX_TEST_STD_VARS
    - PKIX_List_GetLength
    - PKIX_PL_CertPolicyInfo_GetPolicyId
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_List_AppendItem
    - PKIX_TEST_DECREF_BC
    - PKIX_List_GetItem
    linkageType: ''
    returnType: void
    signature: void test_CreateOIDList(PKIX_List *certPolicyInfos, PKIX_List **pPolicyOIDs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:71,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:73,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:75,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:77,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:78,1
    - Dst: PKIX_PL_Cert_GetNameConstraints
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:78,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:80,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:81,1
    - Dst: PKIX_ComCertSelParams_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:81,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:83,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:84,1
    - Dst: PKIX_ComCertSelParams_SetNameConstraints
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:84,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:86,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:87,1
    - Dst: PKIX_ComCertSelParams_GetNameConstraints
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:87,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:89,1
    - Dst: testEqualsHelper
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:90,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:95,1
    - Dst: testToStringHelper
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:96,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:102,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:103,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:104,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:105,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 1
    argNames:
    - dirName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 108
    functionName: test_NameConstraints
    functionSourceFile: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c
    functionUses: 0
    functionsReached:
    - testEqualsHelper
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_ComCertSelParams_GetNameConstraints
    - PKIX_TEST_EXPECT_NO_ERROR
    - createCert
    - PKIX_ComCertSelParams_SetNameConstraints
    - testToStringHelper
    - PKIX_PL_Cert_GetNameConstraints
    - PKIX_ComCertSelParams_Create
    linkageType: ''
    returnType: void
    signature: void test_NameConstraints(char *dirName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:138,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:140,1
    - Dst: createGeneralName
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:141,1
    - Dst: createGeneralName
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:142,1
    - Dst: createGeneralName
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:143,1
    - Dst: createGeneralName
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:144,1
    - Dst: createGeneralName
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:145,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:149,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:150,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:150,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:152,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:152,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:154,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:154,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:156,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:156,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:158,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:158,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:160,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:161,1
    - Dst: PKIX_ComCertSelParams_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:161,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:163,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:164,1
    - Dst: PKIX_ComCertSelParams_SetPathToNames
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:164,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:166,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:167,1
    - Dst: PKIX_ComCertSelParams_GetPathToNames
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:167,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:169,1
    - Dst: testEqualsHelper
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:170,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:175,1
    - Dst: testToStringHelper
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:176,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:180,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:181,1
    - Dst: PKIX_ComCertSelParams_AddPathToName
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:181,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:183,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:185,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:186,1
    - Dst: PKIX_ComCertSelParams_GetPathToNames
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:186,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:188,1
    - Dst: testToStringHelper
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:189,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:195,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:196,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:197,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:198,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:199,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:200,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:201,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:202,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 205
    functionName: test_PathToNames
    functionSourceFile: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c
    functionUses: 0
    functionsReached:
    - testEqualsHelper
    - PKIX_TEST_DECREF_AC
    - PKIX_ComCertSelParams_GetPathToNames
    - PKIX_TEST_RETURN
    - createGeneralName
    - PKIX_List_Create
    - PKIX_ComCertSelParams_SetPathToNames
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_List_AppendItem
    - testToStringHelper
    - PKIX_TEST_DECREF_BC
    - PKIX_ComCertSelParams_Create
    - PKIX_ComCertSelParams_AddPathToName
    linkageType: ''
    returnType: void
    signature: void test_PathToNames(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:236,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:238,1
    - Dst: createGeneralName
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:239,1
    - Dst: createGeneralName
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:240,1
    - Dst: createGeneralName
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:241,1
    - Dst: createGeneralName
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:242,1
    - Dst: createGeneralName
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:243,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:247,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:248,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:248,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:250,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:250,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:252,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:252,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:254,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:254,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:256,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:256,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:258,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:259,1
    - Dst: PKIX_ComCertSelParams_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:259,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:261,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:262,1
    - Dst: PKIX_ComCertSelParams_SetSubjAltNames
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:262,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:264,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:265,1
    - Dst: PKIX_ComCertSelParams_GetSubjAltNames
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:265,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:267,1
    - Dst: testEqualsHelper
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:268,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:273,1
    - Dst: testToStringHelper
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:274,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:278,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:279,1
    - Dst: PKIX_ComCertSelParams_AddSubjAltName
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:279,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:281,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:283,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:284,1
    - Dst: PKIX_ComCertSelParams_GetSubjAltNames
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:284,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:286,1
    - Dst: testToStringHelper
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:287,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:291,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:292,1
    - Dst: PKIX_ComCertSelParams_GetMatchAllSubjAltNames
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:292,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:294,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:297,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:298,1
    - Dst: PKIX_ComCertSelParams_SetMatchAllSubjAltNames
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:298,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:299,1
    - Dst: PKIX_ComCertSelParams_GetMatchAllSubjAltNames
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:299,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:301,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:306,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:307,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:308,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:309,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:310,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:311,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:312,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:313,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:315,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 316
    functionName: test_SubjAltNames
    functionSourceFile: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c
    functionUses: 0
    functionsReached:
    - testEqualsHelper
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_ComCertSelParams_GetMatchAllSubjAltNames
    - createGeneralName
    - PKIX_List_Create
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_ComCertSelParams_SetMatchAllSubjAltNames
    - PKIX_ComCertSelParams_AddSubjAltName
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_List_AppendItem
    - testToStringHelper
    - PKIX_ComCertSelParams_GetSubjAltNames
    - PKIX_TEST_DECREF_BC
    - testError
    - PKIX_ComCertSelParams_Create
    - PKIX_ComCertSelParams_SetSubjAltNames
    linkageType: ''
    returnType: void
    signature: void test_SubjAltNames(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:329,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:331,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:332,1
    - Dst: PKIX_ComCertSelParams_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:332,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:334,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:335,1
    - Dst: PKIX_ComCertSelParams_SetKeyUsage
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:335,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:337,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:338,1
    - Dst: PKIX_ComCertSelParams_GetKeyUsage
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:338,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:341,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:344,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:345,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:345,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:346,1
    - Dst: PKIX_PL_OID_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:346,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:347,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:347,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:348,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:350,1
    - Dst: PKIX_PL_OID_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:350,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:351,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:351,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:352,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:354,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:355,1
    - Dst: PKIX_ComCertSelParams_SetExtendedKeyUsage
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:355,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:357,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:358,1
    - Dst: PKIX_ComCertSelParams_GetExtendedKeyUsage
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:358,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:360,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:360,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:366,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:371,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:372,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:373,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:374,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:376,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 377
    functionName: test_KeyUsages
    functionSourceFile: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_PL_Object_Equals
    - PKIX_List_Create
    - PKIX_ComCertSelParams_GetExtendedKeyUsage
    - subTest
    - PKIX_TEST_STD_VARS
    - testError
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_List_AppendItem
    - PKIX_PL_OID_Create
    - PKIX_TEST_DECREF_BC
    - PKIX_ComCertSelParams_GetKeyUsage
    - PKIX_ComCertSelParams_Create
    - PKIX_ComCertSelParams_SetExtendedKeyUsage
    - PKIX_ComCertSelParams_SetKeyUsage
    linkageType: ''
    returnType: void
    signature: void test_KeyUsages(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:392,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:394,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:395,1
    - Dst: PKIX_ComCertSelParams_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:395,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:398,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:399,1
    - Dst: PKIX_ComCertSelParams_SetVersion
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:399,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:401,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:402,1
    - Dst: PKIX_ComCertSelParams_GetVersion
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:402,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:405,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:409,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:409,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:411,1
    - Dst: PKIX_PL_X500Name_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:411,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:413,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:415,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:416,1
    - Dst: PKIX_ComCertSelParams_SetIssuer
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:416,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:418,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:419,1
    - Dst: PKIX_ComCertSelParams_GetIssuer
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:419,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:421,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:421,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:427,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:431,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:431,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:431,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:433,1
    - Dst: PKIX_PL_BigInt_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:433,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:435,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:436,1
    - Dst: PKIX_ComCertSelParams_SetSerialNumber
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:436,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:438,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:439,1
    - Dst: PKIX_ComCertSelParams_GetSerialNumber
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:439,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:441,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:441,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:447,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:452,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:453,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:454,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:455,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:456,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:457,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:459,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 460
    functionName: test_Version_Issuer_SerialNumber
    functionSourceFile: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_ComCertSelParams_SetVersion
    - PL_strlen
    - PKIX_PL_Object_Equals
    - PKIX_PL_BigInt_Create
    - subTest
    - PKIX_ComCertSelParams_SetIssuer
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_ComCertSelParams_Create
    - PKIX_ComCertSelParams_GetVersion
    - PKIX_TEST_STD_VARS
    - testError
    - PKIX_TEST_DECREF_BC
    - PKIX_PL_X500Name_Create
    - PKIX_TEST_RETURN
    - PKIX_PL_String_Create
    - PKIX_ComCertSelParams_SetSerialNumber
    - PKIX_ComCertSelParams_GetSerialNumber
    - PKIX_ComCertSelParams_GetIssuer
    linkageType: ''
    returnType: void
    signature: void test_Version_Issuer_SerialNumber(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:470,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:473,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:474,1
    - Dst: PKIX_PL_ByteArray_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:474,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:476,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:477,1
    - Dst: PKIX_ComCertSelParams_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:477,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:479,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:480,1
    - Dst: PKIX_ComCertSelParams_SetSubjKeyIdentifier
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:480,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:482,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:483,1
    - Dst: PKIX_ComCertSelParams_GetSubjKeyIdentifier
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:483,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:485,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:485,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:491,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:494,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:495,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:498,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:499,1
    - Dst: PKIX_PL_ByteArray_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:499,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:501,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:502,1
    - Dst: PKIX_ComCertSelParams_SetAuthorityKeyIdentifier
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:502,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:504,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:505,1
    - Dst: PKIX_ComCertSelParams_GetAuthorityKeyIdentifier
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:505,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:507,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:507,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:513,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:518,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:519,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:520,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:522,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 523
    functionName: test_SubjKeyId_AuthKeyId
    functionSourceFile: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_PL_Object_Equals
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_PL_ByteArray_Create
    - PKIX_TEST_DECREF_BC
    - PKIX_ComCertSelParams_SetAuthorityKeyIdentifier
    - PKIX_ComCertSelParams_GetAuthorityKeyIdentifier
    - PKIX_ComCertSelParams_SetSubjKeyIdentifier
    - testError
    - PKIX_ComCertSelParams_Create
    - PKIX_ComCertSelParams_GetSubjKeyIdentifier
    linkageType: ''
    returnType: void
    signature: void test_SubjKeyId_AuthKeyId(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:536,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:539,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:540,1
    - Dst: PKIX_PL_OID_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:540,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:542,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:543,1
    - Dst: PKIX_ComCertSelParams_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:543,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:545,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:546,1
    - Dst: PKIX_ComCertSelParams_SetSubjPKAlgId
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:546,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:548,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:549,1
    - Dst: PKIX_ComCertSelParams_GetSubjPKAlgId
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:549,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:551,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:551,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:557,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:562,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:564,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:566,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:567,1
    - Dst: PKIX_PL_Cert_GetSubjectPublicKey
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:567,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:569,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:570,1
    - Dst: PKIX_ComCertSelParams_SetSubjPubKey
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:570,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:572,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:573,1
    - Dst: PKIX_ComCertSelParams_GetSubjPubKey
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:573,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:575,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:575,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:581,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:587,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:588,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:589,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:590,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:591,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:592,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:594,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 35
    argCount: 1
    argNames:
    - dirName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 595
    functionName: test_SubjAlgId_SubjPublicKey
    functionSourceFile: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_PL_Object_Equals
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_PL_Cert_GetSubjectPublicKey
    - PKIX_TEST_EXPECT_NO_ERROR
    - createCert
    - PKIX_PL_OID_Create
    - PKIX_ComCertSelParams_GetSubjPKAlgId
    - PKIX_ComCertSelParams_SetSubjPKAlgId
    - PKIX_ComCertSelParams_SetSubjPubKey
    - testError
    - PKIX_ComCertSelParams_Create
    - PKIX_ComCertSelParams_GetSubjPubKey
    linkageType: ''
    returnType: void
    signature: void test_SubjAlgId_SubjPublicKey(char *dirName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 601
    functionName: printUsage
    functionSourceFile: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c
    functionUses: 7
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printUsage(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:641,1
    - Dst: printUsage
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:644,1
    - Dst: startTests
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:648,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:650,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:651,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:657,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:657,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:658,1
    - Dst: PKIX_PL_Date_Create_UTCTime
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:658,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:660,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:662,1
    - Dst: PKIX_PL_Cert_GetSubject
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:662,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:663,1
    - Dst: PKIX_PL_Cert_GetBasicConstraints
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:663,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:664,1
    - Dst: PKIX_PL_BasicConstraints_GetPathLenConstraint
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:664,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:665,1
    - Dst: PKIX_PL_Cert_GetPolicyInformation
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:665,1
    - Dst: test_CreateOIDList
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:668,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:670,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:671,1
    - Dst: PKIX_ComCertSelParams_Create
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:671,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:672,1
    - Dst: PKIX_ComCertSelParams_SetSubject
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:672,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:673,1
    - Dst: PKIX_ComCertSelParams_SetBasicConstraints
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:673,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:674,1
    - Dst: PKIX_ComCertSelParams_SetCertificateValid
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:674,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:675,1
    - Dst: PKIX_ComCertSelParams_SetPolicy
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:675,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:676,1
    - Dst: PKIX_ComCertSelParams_SetCertificate
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:676,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:678,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:679,1
    - Dst: PKIX_PL_Object_Duplicate
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:679,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:683,1
    - Dst: PKIX_ComCertSelParams_GetSubject
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:683,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:684,1
    - Dst: PKIX_ComCertSelParams_GetBasicConstraints
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:684,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:685,1
    - Dst: PKIX_ComCertSelParams_GetCertificate
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:685,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:686,1
    - Dst: PKIX_ComCertSelParams_GetCertificateValid
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:686,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:687,1
    - Dst: PKIX_ComCertSelParams_GetPolicy
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:687,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:689,1
    - Dst: PKIX_ComCertSelParams_GetSubject
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:689,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:690,1
    - Dst: PKIX_ComCertSelParams_GetBasicConstraints
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:690,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:691,1
    - Dst: PKIX_ComCertSelParams_GetPolicy
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:691,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:692,1
    - Dst: PKIX_ComCertSelParams_GetCertificate
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:692,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:693,1
    - Dst: PKIX_ComCertSelParams_GetCertificateValid
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:693,1
    - Dst: testEqualsHelper
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:695,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:701,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:702,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:703,1
    - Dst: testEqualsHelper
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:706,1
    - Dst: testEqualsHelper
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:711,1
    - Dst: testEqualsHelper
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:716,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:721,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:722,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:723,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:724,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:726,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:728,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:730,1
    - Dst: PKIX_PL_Cert_GetSubject
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:730,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:731,1
    - Dst: PKIX_PL_Cert_GetBasicConstraints
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:731,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:732,1
    - Dst: PKIX_PL_BasicConstraints_GetPathLenConstraint
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:732,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:733,1
    - Dst: PKIX_PL_Cert_GetPolicyInformation
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:733,1
    - Dst: test_CreateOIDList
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:734,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:736,1
    - Dst: PKIX_ComCertSelParams_SetSubject
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:736,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:738,1
    - Dst: PKIX_ComCertSelParams_SetBasicConstraints
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:738,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:739,1
    - Dst: PKIX_ComCertSelParams_SetPolicy
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:739,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:741,1
    - Dst: PKIX_ComCertSelParams_GetSubject
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:741,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:742,1
    - Dst: PKIX_ComCertSelParams_GetBasicConstraints
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:742,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:743,1
    - Dst: PKIX_ComCertSelParams_GetPolicy
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:743,1
    - Dst: testEqualsHelper
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:745,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:751,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:752,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:753,1
    - Dst: testEqualsHelper
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:756,1
    - Dst: test_NameConstraints
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:761,1
    - Dst: test_PathToNames
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:762,1
    - Dst: test_SubjAltNames
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:763,1
    - Dst: test_KeyUsages
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:764,1
    - Dst: test_Version_Issuer_SerialNumber
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:765,1
    - Dst: test_SubjKeyId_AuthKeyId
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:766,1
    - Dst: test_SubjAlgId_SubjPublicKey
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:767,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:771,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:772,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:773,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:774,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:775,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:776,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:777,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:778,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:779,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:780,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:781,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:782,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:783,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:784,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:785,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:786,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:787,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:788,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:789,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:790,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:791,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:793,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:795,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c:797,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 104
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 603
    functionDepth: 2
    functionLinenumber: 603
    functionLinenumberEnd: 800
    functionName: test_comcertselparams
    functionSourceFile: /src/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - test_NameConstraints
    - subTest
    - printf
    - PKIX_ComCertSelParams_SetBasicConstraints
    - PKIX_ComCertSelParams_SetPolicy
    - PKIX_TEST_EXPECT_NO_ERROR
    - createCert
    - endTests
    - PKIX_ComCertSelParams_GetCertificateValid
    - PKIX_Shutdown
    - PKIX_ComCertSelParams_Create
    - PKIX_PL_Date_Create_UTCTime
    - PKIX_PL_NssContext_Create
    - test_CreateOIDList
    - test_SubjKeyId_AuthKeyId
    - PKIX_ComCertSelParams_GetPolicy
    - PKIX_ComCertSelParams_GetCertificate
    - test_SubjAlgId_SubjPublicKey
    - PKIX_ComCertSelParams_GetBasicConstraints
    - PKIX_ComCertSelParams_SetCertificateValid
    - PKIX_ComCertSelParams_SetSubject
    - PKIX_PL_BasicConstraints_GetPathLenConstraint
    - PKIX_PL_Cert_GetSubject
    - test_PathToNames
    - test_Version_Issuer_SerialNumber
    - PKIX_TEST_STD_VARS
    - PKIX_ComCertSelParams_SetCertificate
    - PKIX_PL_Cert_GetPolicyInformation
    - PKIX_TEST_DECREF_BC
    - startTests
    - test_SubjAltNames
    - test_KeyUsages
    - testEqualsHelper
    - PKIX_TEST_RETURN
    - PKIX_PL_String_Create
    - PKIX_PL_Cert_GetBasicConstraints
    - PKIX_PL_Object_Duplicate
    - PKIX_ComCertSelParams_GetSubject
    - printUsage
    - testError
    linkageType: ''
    returnType: int
    signature: int test_comcertselparams(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/results/test_buildresult.c:19,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/results/test_buildresult.c:21,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/results/test_buildresult.c:23,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/results/test_buildresult.c:24,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/results/test_buildresult.c:25,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/results/test_buildresult.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - goodObject
    - equalObject
    - diffObject
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 30
    functionName: testDestroy
    functionSourceFile: /src/nss/cmd/libpkix/pkix/results/test_buildresult.c
    functionUses: 4
    functionsReached:
    - PKIX_TEST_RETURN
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_DECREF_BC
    linkageType: ''
    returnType: void
    signature: void testDestroy(void *goodObject, void *equalObject, void *diffObject)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/results/test_buildresult.c:41,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/results/test_buildresult.c:42,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_buildresult.c:44,1
    - Dst: PKIX_BuildResult_GetValidateResult
      Src: /src/nss/cmd/libpkix/pkix/results/test_buildresult.c:44,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_buildresult.c:46,1
    - Dst: PKIX_BuildResult_GetValidateResult
      Src: /src/nss/cmd/libpkix/pkix/results/test_buildresult.c:46,1
    - Dst: testEqualsHelper
      Src: /src/nss/cmd/libpkix/pkix/results/test_buildresult.c:48,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/results/test_buildresult.c:55,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/results/test_buildresult.c:56,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/results/test_buildresult.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - goodObject
    - equalObject
    argTypes:
    - PKIX_BuildResult*
    - PKIX_BuildResult*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 59
    functionName: testGetValidateResult
    functionSourceFile: /src/nss/cmd/libpkix/pkix/results/test_buildresult.c
    functionUses: 0
    functionsReached:
    - testEqualsHelper
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_BuildResult_GetValidateResult
    - PKIX_TEST_EXPECT_NO_ERROR
    linkageType: ''
    returnType: void
    signature: "void testGetValidateResult(\n    PKIX_BuildResult *goodObject,\n    PKIX_BuildResult
      *equalObject)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/results/test_buildresult.c:70,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/results/test_buildresult.c:71,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_buildresult.c:73,1
    - Dst: PKIX_BuildResult_GetCertChain
      Src: /src/nss/cmd/libpkix/pkix/results/test_buildresult.c:73,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_buildresult.c:75,1
    - Dst: PKIX_BuildResult_GetCertChain
      Src: /src/nss/cmd/libpkix/pkix/results/test_buildresult.c:75,1
    - Dst: testEqualsHelper
      Src: /src/nss/cmd/libpkix/pkix/results/test_buildresult.c:77,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/results/test_buildresult.c:84,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/results/test_buildresult.c:85,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/results/test_buildresult.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - goodObject
    - equalObject
    argTypes:
    - PKIX_BuildResult*
    - PKIX_BuildResult*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 88
    functionName: testGetCertChain
    functionSourceFile: /src/nss/cmd/libpkix/pkix/results/test_buildresult.c
    functionUses: 1
    functionsReached:
    - testEqualsHelper
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_BuildResult_GetCertChain
    linkageType: ''
    returnType: void
    signature: "void testGetCertChain(\n    PKIX_BuildResult *goodObject,\n    PKIX_BuildResult
      *equalObject)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/results/test_buildresult.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 94
    functionName: printUsage
    functionSourceFile: /src/nss/cmd/libpkix/pkix/results/test_buildresult.c
    functionUses: 8
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printUsage(char *pName)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/results/test_buildresult.c:171,1
    - Dst: startTests
      Src: /src/nss/cmd/libpkix/pkix/results/test_buildresult.c:173,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_buildresult.c:175,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix/results/test_buildresult.c:176,1
    - Dst: printUsage
      Src: /src/nss/cmd/libpkix/pkix/results/test_buildresult.c:179,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/results/test_buildresult.c:185,1
    - Dst: createBuildResult
      Src: /src/nss/cmd/libpkix/pkix/results/test_buildresult.c:187,1
    - Dst: createBuildResult
      Src: /src/nss/cmd/libpkix/pkix/results/test_buildresult.c:188,1
    - Dst: createBuildResult
      Src: /src/nss/cmd/libpkix/pkix/results/test_buildresult.c:189,1
    - Dst: testGetValidateResult
      Src: /src/nss/cmd/libpkix/pkix/results/test_buildresult.c:191,1
    - Dst: testGetCertChain
      Src: /src/nss/cmd/libpkix/pkix/results/test_buildresult.c:192,1
    - Dst: PKIX_TEST_EQ_HASH_TOSTR_DUP
      Src: /src/nss/cmd/libpkix/pkix/results/test_buildresult.c:194,1
    - Dst: testDestroy
      Src: /src/nss/cmd/libpkix/pkix/results/test_buildresult.c:201,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/pkix/results/test_buildresult.c:205,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/results/test_buildresult.c:207,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix/results/test_buildresult.c:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 212
    functionName: test_buildresult
    functionSourceFile: /src/nss/cmd/libpkix/pkix/results/test_buildresult.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - testDestroy
    - testGetCertChain
    - PKIX_TEST_EQ_HASH_TOSTR_DUP
    - subTest
    - PKIX_TEST_STD_VARS
    - testGetValidateResult
    - PKIX_Shutdown
    - endTests
    - PKIX_TEST_EXPECT_NO_ERROR
    - printUsage
    - startTests
    - createBuildResult
    - PKIX_PL_NssContext_Create
    linkageType: ''
    returnType: int
    signature: int test_buildresult(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/results/test_verifynode.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 20
    functionName: printUsage
    functionSourceFile: /src/nss/cmd/libpkix/pkix/results/test_verifynode.c
    functionUses: 9
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printUsage(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/results/test_verifynode.c:54,1
    - Dst: printUsage
      Src: /src/nss/cmd/libpkix/pkix/results/test_verifynode.c:57,1
    - Dst: startTests
      Src: /src/nss/cmd/libpkix/pkix/results/test_verifynode.c:61,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_verifynode.c:63,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix/results/test_verifynode.c:64,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/results/test_verifynode.c:68,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix/results/test_verifynode.c:70,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix/results/test_verifynode.c:72,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix/results/test_verifynode.c:74,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/results/test_verifynode.c:76,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_verifynode.c:78,1
    - Dst: pkix_VerifyNode_Create
      Src: /src/nss/cmd/libpkix/pkix/results/test_verifynode.c:78,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_verifynode.c:80,1
    - Dst: pkix_VerifyNode_Create
      Src: /src/nss/cmd/libpkix/pkix/results/test_verifynode.c:80,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_verifynode.c:82,1
    - Dst: pkix_VerifyNode_Create
      Src: /src/nss/cmd/libpkix/pkix/results/test_verifynode.c:82,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_verifynode.c:84,1
    - Dst: pkix_VerifyNode_AddToChain
      Src: /src/nss/cmd/libpkix/pkix/results/test_verifynode.c:84,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/results/test_verifynode.c:86,1
    - Dst: testToStringHelper
      Src: /src/nss/cmd/libpkix/pkix/results/test_verifynode.c:88,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_verifynode.c:90,1
    - Dst: pkix_VerifyNode_AddToChain
      Src: /src/nss/cmd/libpkix/pkix/results/test_verifynode.c:90,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_verifynode.c:92,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/cmd/libpkix/pkix/results/test_verifynode.c:92,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/results/test_verifynode.c:93,1
    - Dst: testToStringHelper
      Src: /src/nss/cmd/libpkix/pkix/results/test_verifynode.c:95,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/results/test_verifynode.c:99,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/results/test_verifynode.c:100,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/results/test_verifynode.c:101,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/results/test_verifynode.c:102,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/results/test_verifynode.c:103,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/pkix/results/test_verifynode.c:105,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/results/test_verifynode.c:107,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix/results/test_verifynode.c:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 35
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 112
    functionName: test_verifynode
    functionSourceFile: /src/nss/cmd/libpkix/pkix/results/test_verifynode.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - pkix_VerifyNode_Create
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_PL_Object_ToString
    - printf
    - PKIX_Shutdown
    - endTests
    - PKIX_TEST_EXPECT_NO_ERROR
    - createCert
    - testToStringHelper
    - printUsage
    - pkix_VerifyNode_AddToChain
    - startTests
    - PKIX_PL_NssContext_Create
    linkageType: ''
    returnType: int
    signature: int test_verifynode(int argc, char *argv[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:37,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:39,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:41,1
    - Dst: PKIX_PolicyNode_GetChildren
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:41,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:42,1
    - Dst: PKIX_PolicyNode_GetChildren
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:42,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:43,1
    - Dst: PKIX_PolicyNode_GetChildren
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:43,1
    - Dst: PKIX_TEST_EQ_HASH_TOSTR_DUP
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:45,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:47,1
    - Dst: PKIX_List_IsImmutable
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:47,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:50,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:54,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:55,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:56,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 3
    argNames:
    - goodNode
    - equalNode
    - diffNode
    argTypes:
    - PKIX_PolicyNode*
    - PKIX_PolicyNode*
    - PKIX_PolicyNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 59
    functionName: test_GetChildren
    functionSourceFile: /src/nss/cmd/libpkix/pkix/results/test_policynode.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_TEST_EQ_HASH_TOSTR_DUP
    - subTest
    - PKIX_TEST_STD_VARS
    - testError
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_PolicyNode_GetChildren
    - PKIX_List_IsImmutable
    linkageType: ''
    returnType: void
    signature: "void test_GetChildren(\n    PKIX_PolicyNode *goodNode,\n    PKIX_PolicyNode
      *equalNode,\n    PKIX_PolicyNode *diffNode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:72,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:74,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:76,1
    - Dst: PKIX_PolicyNode_GetParent
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:76,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:77,1
    - Dst: PKIX_PolicyNode_GetParent
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:77,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:78,1
    - Dst: PKIX_PolicyNode_GetParent
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:78,1
    - Dst: PKIX_TEST_EQ_HASH_TOSTR_DUP
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:80,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:88,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:89,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:90,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 4
    argNames:
    - goodNode
    - equalNode
    - diffNode
    - expectedAscii
    argTypes:
    - PKIX_PolicyNode*
    - PKIX_PolicyNode*
    - PKIX_PolicyNode*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 93
    functionName: test_GetParent
    functionSourceFile: /src/nss/cmd/libpkix/pkix/results/test_policynode.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_TEST_EQ_HASH_TOSTR_DUP
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_PolicyNode_GetParent
    linkageType: ''
    returnType: void
    signature: "void test_GetParent(\n    PKIX_PolicyNode *goodNode,\n    PKIX_PolicyNode
      *equalNode,\n    PKIX_PolicyNode *diffNode,\n    char *expectedAscii)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:108,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:110,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:112,1
    - Dst: PKIX_PL_Object_Duplicate
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:112,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:116,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:116,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:122,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:122,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:123,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:124,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:127,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:127,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:128,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:130,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:136,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:137,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:138,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PolicyNode*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 141
    functionName: test_DuplicateHelper
    functionSourceFile: /src/nss/cmd/libpkix/pkix/results/test_policynode.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_PL_Object_Equals
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_PL_Object_Duplicate
    - PKIX_PL_Object_ToString
    - printf
    - PKIX_TEST_EXPECT_NO_ERROR
    - testError
    linkageType: ''
    returnType: void
    signature: void test_DuplicateHelper(PKIX_PolicyNode *object, void *plContext)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:154,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:156,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:158,1
    - Dst: PKIX_PolicyNode_GetValidPolicy
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:158,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:159,1
    - Dst: PKIX_PolicyNode_GetValidPolicy
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:159,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:160,1
    - Dst: PKIX_PolicyNode_GetValidPolicy
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:160,1
    - Dst: PKIX_TEST_EQ_HASH_TOSTR_DUP
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:162,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:165,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:166,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:167,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 4
    argNames:
    - goodNode
    - equalNode
    - diffNode
    - expectedAscii
    argTypes:
    - PKIX_PolicyNode*
    - PKIX_PolicyNode*
    - PKIX_PolicyNode*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 170
    functionName: test_GetValidPolicy
    functionSourceFile: /src/nss/cmd/libpkix/pkix/results/test_policynode.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_PolicyNode_GetValidPolicy
    - PKIX_TEST_EQ_HASH_TOSTR_DUP
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_EXPECT_NO_ERROR
    linkageType: ''
    returnType: void
    signature: "void test_GetValidPolicy(\n    PKIX_PolicyNode *goodNode,\n    PKIX_PolicyNode
      *equalNode,\n    PKIX_PolicyNode *diffNode,\n    char *expectedAscii)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:184,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:186,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:188,1
    - Dst: PKIX_PolicyNode_GetPolicyQualifiers
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:188,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:189,1
    - Dst: PKIX_PolicyNode_GetPolicyQualifiers
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:189,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:190,1
    - Dst: PKIX_PolicyNode_GetPolicyQualifiers
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:190,1
    - Dst: PKIX_TEST_EQ_HASH_TOSTR_DUP
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:192,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:194,1
    - Dst: PKIX_List_IsImmutable
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:194,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:197,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:200,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:201,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:202,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 4
    argNames:
    - goodNode
    - equalNode
    - diffNode
    - expectedAscii
    argTypes:
    - PKIX_PolicyNode*
    - PKIX_PolicyNode*
    - PKIX_PolicyNode*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 205
    functionName: test_GetPolicyQualifiers
    functionSourceFile: /src/nss/cmd/libpkix/pkix/results/test_policynode.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_TEST_EQ_HASH_TOSTR_DUP
    - subTest
    - PKIX_TEST_STD_VARS
    - testError
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_PolicyNode_GetPolicyQualifiers
    - PKIX_List_IsImmutable
    linkageType: ''
    returnType: void
    signature: "void test_GetPolicyQualifiers(\n    PKIX_PolicyNode *goodNode,\n    PKIX_PolicyNode
      *equalNode,\n    PKIX_PolicyNode *diffNode,\n    char *expectedAscii)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:219,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:221,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:223,1
    - Dst: PKIX_PolicyNode_GetExpectedPolicies
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:223,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:224,1
    - Dst: PKIX_PolicyNode_GetExpectedPolicies
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:224,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:225,1
    - Dst: PKIX_PolicyNode_GetExpectedPolicies
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:225,1
    - Dst: PKIX_TEST_EQ_HASH_TOSTR_DUP
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:227,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:229,1
    - Dst: PKIX_List_IsImmutable
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:229,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:232,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:235,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:236,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:237,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 4
    argNames:
    - goodNode
    - equalNode
    - diffNode
    - expectedAscii
    argTypes:
    - PKIX_PolicyNode*
    - PKIX_PolicyNode*
    - PKIX_PolicyNode*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 240
    functionName: test_GetExpectedPolicies
    functionSourceFile: /src/nss/cmd/libpkix/pkix/results/test_policynode.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_TEST_EQ_HASH_TOSTR_DUP
    - subTest
    - PKIX_TEST_STD_VARS
    - testError
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_PolicyNode_GetExpectedPolicies
    - PKIX_List_IsImmutable
    linkageType: ''
    returnType: void
    signature: "void test_GetExpectedPolicies(\n    PKIX_PolicyNode *goodNode,\n    PKIX_PolicyNode
      *equalNode,\n    PKIX_PolicyNode *diffNode,\n    char *expectedAscii)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:251,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:253,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:255,1
    - Dst: PKIX_PolicyNode_IsCritical
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:255,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:256,1
    - Dst: PKIX_PolicyNode_IsCritical
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:256,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:257,1
    - Dst: PKIX_PolicyNode_IsCritical
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:257,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:260,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:264,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - goodNode
    - equalNode
    - diffNode
    argTypes:
    - PKIX_PolicyNode*
    - PKIX_PolicyNode*
    - PKIX_PolicyNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 265
    functionName: test_IsCritical
    functionSourceFile: /src/nss/cmd/libpkix/pkix/results/test_policynode.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_EXPECT_NO_ERROR
    - testError
    - PKIX_PolicyNode_IsCritical
    linkageType: ''
    returnType: void
    signature: "void test_IsCritical(\n    PKIX_PolicyNode *goodNode,\n    PKIX_PolicyNode
      *equalNode,\n    PKIX_PolicyNode *diffNode)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:276,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:278,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:280,1
    - Dst: PKIX_PolicyNode_GetDepth
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:280,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:281,1
    - Dst: PKIX_PolicyNode_GetDepth
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:281,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:282,1
    - Dst: PKIX_PolicyNode_GetDepth
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:282,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:285,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:290,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - depth1Node
    - depth2Node
    - depth3Node
    argTypes:
    - PKIX_PolicyNode*
    - PKIX_PolicyNode*
    - PKIX_PolicyNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 291
    functionName: test_GetDepth
    functionSourceFile: /src/nss/cmd/libpkix/pkix/results/test_policynode.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_EXPECT_NO_ERROR
    - testError
    - PKIX_PolicyNode_GetDepth
    linkageType: ''
    returnType: void
    signature: "void test_GetDepth(\n    PKIX_PolicyNode *depth1Node,\n    PKIX_PolicyNode
      *depth2Node,\n    PKIX_PolicyNode *depth3Node)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 297
    functionName: printUsage
    functionSourceFile: /src/nss/cmd/libpkix/pkix/results/test_policynode.c
    functionUses: 10
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printUsage(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:441,1
    - Dst: printUsage
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:444,1
    - Dst: startTests
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:448,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:450,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:451,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:455,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:456,1
    - Dst: PKIX_PL_OID_Create
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:456,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:460,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:462,1
    - Dst: PKIX_PL_Cert_GetPolicyInformation
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:462,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:463,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:463,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:467,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:467,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:472,1
    - Dst: PKIX_PL_CertPolicyInfo_GetPolQualifiers
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:472,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:474,1
    - Dst: PKIX_PL_CertPolicyInfo_GetPolicyId
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:474,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:476,1
    - Dst: PKIX_PL_CertPolicyInfo_GetPolicyId
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:476,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:478,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:480,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:480,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:482,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:482,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:484,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:484,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:486,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:488,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:488,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:490,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:490,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:494,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:494,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:498,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:500,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:500,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:502,1
    - Dst: pkix_PolicyNode_Create
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:502,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:509,1
    - Dst: pkix_PolicyNode_Create
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:509,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:516,1
    - Dst: pkix_PolicyNode_Create
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:516,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:523,1
    - Dst: pkix_PolicyNode_Create
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:523,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:530,1
    - Dst: pkix_PolicyNode_Create
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:530,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:537,1
    - Dst: pkix_PolicyNode_Create
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:537,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:544,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:546,1
    - Dst: pkix_PolicyNode_AddToParent
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:546,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:547,1
    - Dst: pkix_PolicyNode_AddToParent
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:547,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:549,1
    - Dst: pkix_PolicyNode_AddToParent
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:549,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:551,1
    - Dst: pkix_PolicyNode_AddToParent
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:551,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:553,1
    - Dst: pkix_PolicyNode_AddToParent
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:553,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:555,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:557,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:557,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:558,1
    - Dst: testToStringHelper
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:560,1
    - Dst: test_DuplicateHelper
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:562,1
    - Dst: test_GetParent
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:564,1
    - Dst: test_GetValidPolicy
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:565,1
    - Dst: test_GetPolicyQualifiers
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:566,1
    - Dst: test_GetExpectedPolicies
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:567,1
    - Dst: test_IsCritical
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:568,1
    - Dst: test_GetDepth
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:569,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:571,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:573,1
    - Dst: pkix_PolicyNode_Prune
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:573,1
    - Dst: testToStringHelper
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:575,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:577,1
    - Dst: pkix_PolicyNode_Prune
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:577,1
    - Dst: testToStringHelper
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:579,1
    - Dst: test_GetChildren
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:581,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:585,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:586,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:587,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:588,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:589,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:590,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:591,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:592,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:593,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:594,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:595,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:596,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:597,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:598,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:599,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:600,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:601,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:602,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:603,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:605,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:607,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix/results/test_policynode.c:609,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 82
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 299
    functionDepth: 2
    functionLinenumber: 299
    functionLinenumberEnd: 612
    functionName: test_policynode
    functionSourceFile: /src/nss/cmd/libpkix/pkix/results/test_policynode.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_List_Create
    - subTest
    - PKIX_PL_CertPolicyInfo_GetPolQualifiers
    - printf
    - test_GetPolicyQualifiers
    - endTests
    - PKIX_TEST_EXPECT_NO_ERROR
    - createCert
    - PKIX_Shutdown
    - test_IsCritical
    - PKIX_PL_NssContext_Create
    - pkix_PolicyNode_Create
    - pkix_PolicyNode_Prune
    - PKIX_PL_Object_ToString
    - testToStringHelper
    - PKIX_List_AppendItem
    - test_GetDepth
    - test_GetExpectedPolicies
    - test_GetParent
    - PKIX_TEST_STD_VARS
    - PKIX_PL_Cert_GetPolicyInformation
    - pkix_PolicyNode_AddToParent
    - test_DuplicateHelper
    - PKIX_PL_OID_Create
    - startTests
    - PKIX_TEST_RETURN
    - PKIX_PL_CertPolicyInfo_GetPolicyId
    - printUsage
    - test_GetChildren
    - test_GetValidPolicy
    - PKIX_List_GetItem
    linkageType: ''
    returnType: int
    signature: int test_policynode(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/results/test_valresult.c:19,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/results/test_valresult.c:21,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/results/test_valresult.c:23,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/results/test_valresult.c:24,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/results/test_valresult.c:25,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/results/test_valresult.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - goodObject
    - equalObject
    - diffObject
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 30
    functionName: testDestroy
    functionSourceFile: /src/nss/cmd/libpkix/pkix/results/test_valresult.c
    functionUses: 5
    functionsReached:
    - PKIX_TEST_RETURN
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_DECREF_BC
    linkageType: ''
    returnType: void
    signature: void testDestroy(void *goodObject, void *equalObject, void *diffObject)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/results/test_valresult.c:41,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/results/test_valresult.c:42,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_valresult.c:44,1
    - Dst: PKIX_ValidateResult_GetPublicKey
      Src: /src/nss/cmd/libpkix/pkix/results/test_valresult.c:44,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_valresult.c:46,1
    - Dst: PKIX_ValidateResult_GetPublicKey
      Src: /src/nss/cmd/libpkix/pkix/results/test_valresult.c:46,1
    - Dst: testEqualsHelper
      Src: /src/nss/cmd/libpkix/pkix/results/test_valresult.c:48,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/results/test_valresult.c:55,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/results/test_valresult.c:56,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/results/test_valresult.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - goodObject
    - equalObject
    argTypes:
    - PKIX_ValidateResult*
    - PKIX_ValidateResult*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 59
    functionName: testGetPublicKey
    functionSourceFile: /src/nss/cmd/libpkix/pkix/results/test_valresult.c
    functionUses: 0
    functionsReached:
    - testEqualsHelper
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_ValidateResult_GetPublicKey
    linkageType: ''
    returnType: void
    signature: "void testGetPublicKey(\n    PKIX_ValidateResult *goodObject,\n    PKIX_ValidateResult
      *equalObject)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/results/test_valresult.c:70,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/results/test_valresult.c:71,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_valresult.c:73,1
    - Dst: PKIX_ValidateResult_GetTrustAnchor
      Src: /src/nss/cmd/libpkix/pkix/results/test_valresult.c:73,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_valresult.c:75,1
    - Dst: PKIX_ValidateResult_GetTrustAnchor
      Src: /src/nss/cmd/libpkix/pkix/results/test_valresult.c:75,1
    - Dst: testEqualsHelper
      Src: /src/nss/cmd/libpkix/pkix/results/test_valresult.c:77,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/results/test_valresult.c:84,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/results/test_valresult.c:85,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/results/test_valresult.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - goodObject
    - equalObject
    argTypes:
    - PKIX_ValidateResult*
    - PKIX_ValidateResult*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 88
    functionName: testGetTrustAnchor
    functionSourceFile: /src/nss/cmd/libpkix/pkix/results/test_valresult.c
    functionUses: 0
    functionsReached:
    - testEqualsHelper
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_ValidateResult_GetTrustAnchor
    linkageType: ''
    returnType: void
    signature: "void testGetTrustAnchor(\n    PKIX_ValidateResult *goodObject,\n    PKIX_ValidateResult
      *equalObject)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/results/test_valresult.c:99,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/results/test_valresult.c:100,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_valresult.c:102,1
    - Dst: PKIX_ValidateResult_GetPolicyTree
      Src: /src/nss/cmd/libpkix/pkix/results/test_valresult.c:102,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_valresult.c:104,1
    - Dst: PKIX_ValidateResult_GetPolicyTree
      Src: /src/nss/cmd/libpkix/pkix/results/test_valresult.c:104,1
    - Dst: testEqualsHelper
      Src: /src/nss/cmd/libpkix/pkix/results/test_valresult.c:107,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/results/test_valresult.c:117,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/results/test_valresult.c:118,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/results/test_valresult.c:120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - goodObject
    - equalObject
    argTypes:
    - PKIX_ValidateResult*
    - PKIX_ValidateResult*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 121
    functionName: testGetPolicyTree
    functionSourceFile: /src/nss/cmd/libpkix/pkix/results/test_valresult.c
    functionUses: 0
    functionsReached:
    - testEqualsHelper
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_ValidateResult_GetPolicyTree
    linkageType: ''
    returnType: void
    signature: "void testGetPolicyTree(\n    PKIX_ValidateResult *goodObject,\n    PKIX_ValidateResult
      *equalObject)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/results/test_valresult.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: printUsage
    functionSourceFile: /src/nss/cmd/libpkix/pkix/results/test_valresult.c
    functionUses: 11
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printUsage(char *pName)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/results/test_valresult.c:157,1
    - Dst: startTests
      Src: /src/nss/cmd/libpkix/pkix/results/test_valresult.c:159,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/results/test_valresult.c:161,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix/results/test_valresult.c:162,1
    - Dst: printUsage
      Src: /src/nss/cmd/libpkix/pkix/results/test_valresult.c:165,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/results/test_valresult.c:171,1
    - Dst: createValidateResult
      Src: /src/nss/cmd/libpkix/pkix/results/test_valresult.c:173,1
    - Dst: createValidateResult
      Src: /src/nss/cmd/libpkix/pkix/results/test_valresult.c:174,1
    - Dst: createValidateResult
      Src: /src/nss/cmd/libpkix/pkix/results/test_valresult.c:175,1
    - Dst: testGetPublicKey
      Src: /src/nss/cmd/libpkix/pkix/results/test_valresult.c:177,1
    - Dst: testGetTrustAnchor
      Src: /src/nss/cmd/libpkix/pkix/results/test_valresult.c:178,1
    - Dst: testGetPolicyTree
      Src: /src/nss/cmd/libpkix/pkix/results/test_valresult.c:179,1
    - Dst: PKIX_TEST_EQ_HASH_TOSTR_DUP
      Src: /src/nss/cmd/libpkix/pkix/results/test_valresult.c:181,1
    - Dst: testDestroy
      Src: /src/nss/cmd/libpkix/pkix/results/test_valresult.c:188,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/pkix/results/test_valresult.c:192,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/results/test_valresult.c:194,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix/results/test_valresult.c:196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 199
    functionName: test_valresult
    functionSourceFile: /src/nss/cmd/libpkix/pkix/results/test_valresult.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - testDestroy
    - testGetPublicKey
    - PKIX_TEST_EQ_HASH_TOSTR_DUP
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_Shutdown
    - testGetTrustAnchor
    - endTests
    - PKIX_TEST_EXPECT_NO_ERROR
    - createValidateResult
    - printUsage
    - startTests
    - testGetPolicyTree
    - PKIX_PL_NssContext_Create
    linkageType: ''
    returnType: int
    signature: int test_valresult(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - checker
    - cert
    - unresolvedCriticalExtensions
    - pNBIOContext
    - plContext
    argTypes:
    - PKIX_CertChainChecker*
    - PKIX_PL_Cert*
    - PKIX_List*
    - void**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 29
    functionName: dummyChecker_Check
    functionSourceFile: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\ndummyChecker_Check(\n    PKIX_CertChainChecker *checker,\n
      \   PKIX_PL_Cert *cert,\n    PKIX_List *unresolvedCriticalExtensions,\n    void
      **pNBIOContext,\n    void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:46,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:48,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:50,1
    - Dst: PKIX_PL_Object_Duplicate
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:50,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:54,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:55,1
    - Dst: PKIX_CertChainChecker_GetCheckCallback
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:55,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:56,1
    - Dst: PKIX_CertChainChecker_GetCheckCallback
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:56,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:62,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:63,1
    - Dst: PKIX_CertChainChecker_IsForwardCheckingSupported
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:63,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:64,1
    - Dst: PKIX_CertChainChecker_IsForwardCheckingSupported
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:64,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:70,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:71,1
    - Dst: PKIX_CertChainChecker_IsForwardDirectionExpected
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:71,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:72,1
    - Dst: PKIX_CertChainChecker_IsForwardDirectionExpected
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:72,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:78,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:79,1
    - Dst: PKIX_CertChainChecker_GetCertChainCheckerState
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:79,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:80,1
    - Dst: PKIX_CertChainChecker_GetCertChainCheckerState
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:80,1
    - Dst: testEqualsHelper
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:81,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:83,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:84,1
    - Dst: PKIX_CertChainChecker_GetSupportedExtensions
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:84,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:85,1
    - Dst: PKIX_CertChainChecker_GetSupportedExtensions
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:85,1
    - Dst: testEqualsHelper
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:86,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:93,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:94,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:95,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:96,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:97,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:99,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 44
    argCount: 1
    argNames:
    - original
    argTypes:
    - PKIX_CertChainChecker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 100
    functionName: test_CertChainChecker_Duplicate
    functionSourceFile: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c
    functionUses: 0
    functionsReached:
    - testEqualsHelper
    - PKIX_TEST_DECREF_AC
    - PKIX_CertChainChecker_GetSupportedExtensions
    - PKIX_CertChainChecker_GetCertChainCheckerState
    - PKIX_TEST_RETURN
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_PL_Object_Duplicate
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_CertChainChecker_GetCheckCallback
    - PKIX_CertChainChecker_IsForwardCheckingSupported
    - PKIX_CertChainChecker_IsForwardDirectionExpected
    linkageType: ''
    returnType: void
    signature: void test_CertChainChecker_Duplicate(PKIX_CertChainChecker *original)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:118,1
    - Dst: startTests
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:120,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:122,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:123,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:125,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:125,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:127,1
    - Dst: PKIX_PL_OID_Create
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:127,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:128,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:128,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:130,1
    - Dst: PKIX_PL_OID_Create
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:130,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:131,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:131,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:133,1
    - Dst: PKIX_PL_OID_Create
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:133,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:134,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:134,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:136,1
    - Dst: PKIX_PL_OID_Create
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:136,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:137,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:137,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:139,1
    - Dst: PKIX_PL_OID_Create
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:139,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:140,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:140,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:142,1
    - Dst: PKIX_PL_OID_Create
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:142,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:143,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:143,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:145,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:146,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:147,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:148,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:149,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:150,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:152,1
    - Dst: PKIX_PL_Object_IncRef
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:152,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:156,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:157,1
    - Dst: PKIX_CertChainChecker_Create
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:157,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:165,1
    - Dst: PKIX_CertChainChecker_SetCertChainCheckerState
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:165,1
    - Dst: test_CertChainChecker_Duplicate
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:167,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:169,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:170,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:174,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:175,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:176,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:178,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:180,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 40
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 185
    functionName: test_certchainchecker
    functionSourceFile: /src/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_CertChainChecker_SetCertChainCheckerState
    - PKIX_CertChainChecker_Create
    - PKIX_List_Create
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_Shutdown
    - endTests
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_List_AppendItem
    - PKIX_PL_OID_Create
    - PKIX_TEST_DECREF_BC
    - test_CertChainChecker_Duplicate
    - PKIX_PL_Object_IncRef
    - startTests
    - PKIX_PL_NssContext_Create
    linkageType: ''
    returnType: int
    signature: int test_certchainchecker(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - store
    - selector
    - pNBIOContext
    - pCrls
    - plContext
    argTypes:
    - PKIX_CertStore*
    - PKIX_CRLSelector*
    - void**
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 25
    functionName: testCRLCallback
    functionSourceFile: /src/nss/cmd/libpkix/pkix/store/test_store.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\ntestCRLCallback(\n    PKIX_CertStore *store,\n    PKIX_CRLSelector
      *selector,\n    void **pNBIOContext,\n    PKIX_List **pCrls, /* list of PKIX_PL_Crl
      */\n    void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - store
    - selector
    - pNBIOContext
    - pCrls
    - plContext
    argTypes:
    - PKIX_CertStore*
    - PKIX_CRLSelector*
    - void**
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 36
    functionName: testCRLContinue
    functionSourceFile: /src/nss/cmd/libpkix/pkix/store/test_store.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\ntestCRLContinue(\n    PKIX_CertStore *store,\n    PKIX_CRLSelector
      *selector,\n    void **pNBIOContext,\n    PKIX_List **pCrls, /* list of PKIX_PL_Crl
      */\n    void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - store
    - selector
    - pNBIOContext
    - pCerts
    - plContext
    argTypes:
    - PKIX_CertStore*
    - PKIX_CertSelector*
    - void**
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 47
    functionName: testCertCallback
    functionSourceFile: /src/nss/cmd/libpkix/pkix/store/test_store.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\ntestCertCallback(\n    PKIX_CertStore *store,\n    PKIX_CertSelector
      *selector,\n    void **pNBIOContext,\n    PKIX_List **pCerts, /* list of PKIX_PL_Cert
      */\n    void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - store
    - selector
    - pNBIOContext
    - pCerts
    - plContext
    argTypes:
    - PKIX_CertStore*
    - PKIX_CertSelector*
    - void**
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 58
    functionName: testCertContinue
    functionSourceFile: /src/nss/cmd/libpkix/pkix/store/test_store.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\ntestCertContinue(\n    PKIX_CertStore *store,\n    PKIX_CertSelector
      *selector,\n    void **pNBIOContext,\n    PKIX_List **pCerts, /* list of PKIX_PL_Cert
      */\n    void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/store/test_store.c:67,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/libpkix/pkix/store/test_store.c:69,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/libpkix/pkix/store/test_store.c:70,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/store/test_store.c:72,1
    - Dst: PKIX_PL_Malloc
      Src: /src/nss/cmd/libpkix/pkix/store/test_store.c:72,1
    - Dst: PL_strcpy
      Src: /src/nss/cmd/libpkix/pkix/store/test_store.c:77,1
    - Dst: PL_strcat
      Src: /src/nss/cmd/libpkix/pkix/store/test_store.c:78,1
    - Dst: PL_strcat
      Src: /src/nss/cmd/libpkix/pkix/store/test_store.c:79,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/store/test_store.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - platform
    - dir
    - plContext
    argTypes:
    - char*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 86
    functionName: catDirName
    functionSourceFile: /src/nss/cmd/libpkix/pkix/store/test_store.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - PL_strlen
    - PKIX_TEST_STD_VARS
    - PL_strcat
    - PKIX_TEST_EXPECT_NO_ERROR
    - PL_strcpy
    - PKIX_PL_Malloc
    linkageType: ''
    returnType: char
    signature: 'char *

      catDirName(char *platform, char *dir, void *plContext)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/store/test_store.c:97,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/store/test_store.c:99,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix/store/test_store.c:99,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/store/test_store.c:105,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/store/test_store.c:106,1
    - Dst: PKIX_CertStore_Create
      Src: /src/nss/cmd/libpkix/pkix/store/test_store.c:106,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/store/test_store.c:117,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/store/test_store.c:118,1
    - Dst: PKIX_CertStore_GetCertCallback
      Src: /src/nss/cmd/libpkix/pkix/store/test_store.c:118,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/store/test_store.c:121,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/store/test_store.c:124,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/store/test_store.c:125,1
    - Dst: PKIX_CertStore_GetCRLCallback
      Src: /src/nss/cmd/libpkix/pkix/store/test_store.c:125,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/store/test_store.c:128,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/store/test_store.c:131,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/store/test_store.c:132,1
    - Dst: PKIX_CertStore_GetCertStoreContext
      Src: /src/nss/cmd/libpkix/pkix/store/test_store.c:132,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/store/test_store.c:135,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/store/test_store.c:140,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/store/test_store.c:141,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/store/test_store.c:142,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/store/test_store.c:144,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 1
    argNames:
    - crlDir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 145
    functionName: testCertStore
    functionSourceFile: /src/nss/cmd/libpkix/pkix/store/test_store.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_CertStore_GetCRLCallback
    - PKIX_PL_String_Create
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_CertStore_GetCertCallback
    - PKIX_CertStore_Create
    - testError
    - PKIX_CertStore_GetCertStoreContext
    linkageType: ''
    returnType: void
    signature: void testCertStore(char *crlDir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/store/test_store.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: printUsage
    functionSourceFile: /src/nss/cmd/libpkix/pkix/store/test_store.c
    functionUses: 12
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printUsage(char *pName)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/store/test_store.c:165,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/store/test_store.c:167,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix/store/test_store.c:168,1
    - Dst: printUsage
      Src: /src/nss/cmd/libpkix/pkix/store/test_store.c:171,1
    - Dst: startTests
      Src: /src/nss/cmd/libpkix/pkix/store/test_store.c:175,1
    - Dst: catDirName
      Src: /src/nss/cmd/libpkix/pkix/store/test_store.c:179,1
    - Dst: testCertStore
      Src: /src/nss/cmd/libpkix/pkix/store/test_store.c:181,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix/store/test_store.c:185,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/pkix/store/test_store.c:187,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/store/test_store.c:189,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix/store/test_store.c:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 194
    functionName: test_store
    functionSourceFile: /src/nss/cmd/libpkix/pkix/store/test_store.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_TEST_STD_VARS
    - PKIX_Shutdown
    - PKIX_PL_Free
    - testCertStore
    - PKIX_TEST_EXPECT_NO_ERROR
    - endTests
    - printUsage
    - startTests
    - catDirName
    - PKIX_PL_NssContext_Create
    linkageType: ''
    returnType: int
    signature: int test_store(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:28,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 30
    functionName: printUsage1
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printUsage1(char *pName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:35,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:36,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:37,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:38,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:39,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:40,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:41,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:42,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:43,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 45
    functionName: printUsage2
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printUsage2(char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - numCerts
    argTypes:
    - PKIX_UInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: printUsageMax
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printUsageMax(PKIX_UInt32 numCerts)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:59,1
    - Dst: printUsage2
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:78,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:85,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 87
    functionName: getNameType
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_TEST_STD_VARS
    - printUsage2
    linkageType: ''
    returnType: PKIX_UInt32
    signature: PKIX_UInt32 getNameType(char *name)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:118,1
    - Dst: printUsage1
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:121,1
    - Dst: startTests
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:125,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:127,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:128,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:133,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:135,1
    - Dst: printUsage1
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:138,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:144,1
    - Dst: printUsageMax
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:172,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:182,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:184,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:185,1
    - Dst: PKIX_CertSelector_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:185,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:186,1
    - Dst: PKIX_ComCertSelParams_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:186,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:187,1
    - Dst: PKIX_CertSelector_SetCommonCertSelectorParams
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:187,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:189,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:190,1
    - Dst: PKIX_ComCertSelParams_SetMatchAllSubjAltNames
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:190,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:192,1
    - Dst: getNameType
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:194,1
    - Dst: createGeneralName
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:199,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:201,1
    - Dst: PKIX_ComCertSelParams_AddSubjAltName
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:201,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:202,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:205,1
    - Dst: createCertChainPlus
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:209,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:211,1
    - Dst: createValidateParams
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:213,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:226,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:227,1
    - Dst: PKIX_ValidateParams_GetProcessingParams
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:227,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:229,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:230,1
    - Dst: PKIX_ProcessingParams_SetTargetCertConstraints
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:230,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:232,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:235,1
    - Dst: PKIX_ValidateChain
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:235,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:237,1
    - Dst: PKIX_ValidateChain
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:237,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:242,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:244,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:245,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:246,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:247,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:248,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:249,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:250,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:251,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:252,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:254,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:256,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c:258,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 98
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 261
    functionName: test_subjaltnamechecker
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - subTest
    - endTests
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_Shutdown
    - PKIX_ComCertSelParams_Create
    - PKIX_PL_NssContext_Create
    - createGeneralName
    - PKIX_TEST_EXPECT_ERROR
    - PKIX_ComCertSelParams_AddSubjAltName
    - getNameType
    - createCertChainPlus
    - PKIX_ComCertSelParams_SetMatchAllSubjAltNames
    - PKIX_TEST_STD_VARS
    - createValidateParams
    - PKIX_ValidateChain
    - PKIX_TEST_DECREF_BC
    - startTests
    - printUsageMax
    - PKIX_TEST_RETURN
    - PKIX_ValidateParams_GetProcessingParams
    - printUsage1
    - PKIX_CertSelector_SetCommonCertSelectorParams
    - PKIX_PL_Free
    - PKIX_CertSelector_Create
    - PORT_Strcmp
    - PKIX_ProcessingParams_SetTargetCertConstraints
    linkageType: ''
    returnType: int
    signature: int test_subjaltnamechecker(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:19,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 27
    functionName: printUsage
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c
    functionUses: 13
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printUsage(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:39,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:41,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:42,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:44,1
    - Dst: PKIX_PL_Malloc
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:44,1
    - Dst: PL_strcpy
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:50,1
    - Dst: PL_strcat
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:51,1
    - Dst: PL_strcat
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:52,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:53,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - dirName
    - certFile
    - plContext
    argTypes:
    - char*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 60
    functionName: createFullPathName
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - PL_strlen
    - PKIX_TEST_STD_VARS
    - printf
    - PL_strcat
    - PKIX_TEST_EXPECT_NO_ERROR
    - PL_strcpy
    - PKIX_PL_Malloc
    linkageType: ''
    returnType: char
    signature: "char *\ncreateFullPathName(\n    char *dirName,\n    char *certFile,\n
      \   void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:72,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:74,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:78,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:78,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:80,1
    - Dst: PKIX_PL_CollectionCertStore_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:80,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:84,1
    - Dst: PKIX_ValidateParams_GetProcessingParams
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:84,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:86,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:87,1
    - Dst: PKIX_ProcessingParams_AddCertStore
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:87,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:89,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:91,1
    - Dst: PKIX_ProcessingParams_SetRevocationEnabled
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:91,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:94,1
    - Dst: pkix_pl_Date_CreateFromPRTime
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:94,1
    - Dst: PR_Now
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:94,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:96,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:96,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:99,1
    - Dst: PKIX_OcspChecker_Initialize
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:99,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:105,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:105,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:107,1
    - Dst: PKIX_ProcessingParams_SetRevocationCheckers
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:107,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:111,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:112,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:113,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:114,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:115,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 2
    argNames:
    - valParams
    - crlDir
    argTypes:
    - PKIX_ValidateParams*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 120
    functionName: testDefaultCertStore
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_ValidateParams_GetProcessingParams
    - PKIX_PL_String_Create
    - PKIX_List_Create
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_ProcessingParams_SetRevocationCheckers
    - PKIX_OcspChecker_Initialize
    - PR_Now
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_List_AppendItem
    - PKIX_ProcessingParams_AddCertStore
    - pkix_pl_Date_CreateFromPRTime
    - PKIX_PL_CollectionCertStore_Create
    - PKIX_ProcessingParams_SetRevocationEnabled
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      testDefaultCertStore(PKIX_ValidateParams *valParams, char *crlDir)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:141,1
    - Dst: printUsage
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:144,1
    - Dst: startTests
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:148,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:150,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:151,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:154,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:156,1
    - Dst: printUsage
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:159,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:163,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:169,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:169,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:173,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:175,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:175,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:177,1
    - Dst: createValidateParams
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:180,1
    - Dst: testDefaultCertStore
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:193,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:196,1
    - Dst: PKIX_ValidateChain
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:196,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:198,1
    - Dst: PKIX_ValidateChain
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:198,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:201,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:203,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:203,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:204,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:207,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:208,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:210,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:211,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:212,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:214,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:216,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c:218,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 47
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 221
    functionName: test_validatechain
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_validatechain.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_List_Create
    - subTest
    - printf
    - endTests
    - PKIX_TEST_EXPECT_NO_ERROR
    - createCert
    - PKIX_Shutdown
    - PKIX_PL_NssContext_Create
    - PKIX_TEST_EXPECT_ERROR
    - PKIX_PL_Object_ToString
    - PKIX_List_AppendItem
    - PKIX_TEST_STD_VARS
    - createValidateParams
    - PKIX_ValidateChain
    - PKIX_TEST_DECREF_BC
    - startTests
    - PKIX_TEST_RETURN
    - printUsage
    - testDefaultCertStore
    - PORT_Strcmp
    linkageType: ''
    returnType: int
    signature: int test_validatechain(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:23,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 25
    functionName: printUsage1
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printUsage1(char *pName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - numCerts
    argTypes:
    - PKIX_UInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 32
    functionName: printUsageMax
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printUsageMax(PKIX_UInt32 numCerts)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:52,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:54,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:54,1
    - Dst: createCRL
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:58,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:62,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:62,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:64,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 5
    argNames:
    - store
    - crlSelector
    - pNBIOContext
    - pCrlList
    - plContext
    argTypes:
    - PKIX_CertStore*
    - PKIX_CRLSelector*
    - void**
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 75
    functionName: getCRLCallback
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - createCRL
    - PKIX_List_Create
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_List_AppendItem
    - PKIX_TEST_DECREF_BC
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\ngetCRLCallback(\n    PKIX_CertStore *store,\n    PKIX_CRLSelector
      *crlSelector,\n    void **pNBIOContext,\n    PKIX_List **pCrlList,\n    void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - store
    - crlSelector
    - pNBIOContext
    - pCrlList
    - plContext
    argTypes:
    - PKIX_CertStore*
    - PKIX_CRLSelector*
    - void**
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 86
    functionName: getCRLContinue
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\ngetCRLContinue(\n    PKIX_CertStore *store,\n    PKIX_CRLSelector
      *crlSelector,\n    void **pNBIOContext,\n    PKIX_List **pCrlList,\n    void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - store
    - certSelector
    - pNBIOContext
    - pCerts
    - plContext
    argTypes:
    - PKIX_CertStore*
    - PKIX_CertSelector*
    - void**
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 97
    functionName: getCertCallback
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\ngetCertCallback(\n    PKIX_CertStore *store,\n    PKIX_CertSelector
      *certSelector,\n    void **pNBIOContext,\n    PKIX_List **pCerts,\n    void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - store
    - certSelector
    - pNBIOContext
    - pCerts
    - plContext
    argTypes:
    - PKIX_CertStore*
    - PKIX_CertSelector*
    - void**
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 108
    functionName: getCertContinue
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\ngetCertContinue(\n    PKIX_CertStore *store,\n    PKIX_CertSelector
      *certSelector,\n    void **pNBIOContext,\n    PKIX_List **pCerts,\n    void
      *plContext)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:126,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:128,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:131,1
    - Dst: PKIX_CRLSelector_GetCommonCRLSelectorParams
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:131,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:135,1
    - Dst: PKIX_PL_CRL_GetIssuer
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:135,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:139,1
    - Dst: PKIX_ComCRLSelParams_GetIssuerNames
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:139,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:144,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:144,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:148,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:148,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:152,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:152,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:163,1
    - Dst: PKIX_Error_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:163,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:170,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:175,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:181,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:182,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:183,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:184,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:186,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 3
    argNames:
    - selector
    - crl
    - plContext
    argTypes:
    - PKIX_CRLSelector*
    - PKIX_PL_CRL*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 189
    functionName: testCRLSelectorMatchCallback
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_PL_Object_Equals
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_List_GetLength
    - PKIX_Error_Create
    - PKIX_ComCRLSelParams_GetIssuerNames
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_CRLSelector_GetCommonCRLSelectorParams
    - PKIX_PL_CRL_GetIssuer
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\ntestCRLSelectorMatchCallback(\n    PKIX_CRLSelector
      *selector,\n    PKIX_PL_CRL *crl,\n    void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:198,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:200,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:202,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:204,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:204,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:210,1
    - Dst: PKIX_PL_X500Name_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:210,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:214,1
    - Dst: PKIX_ComCRLSelParams_AddIssuerName
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:214,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:218,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:219,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - comCrlSelParams
    - issuerName
    argTypes:
    - PKIX_ComCRLSelParams*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 224
    functionName: testAddIssuerName
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PL_strlen
    - PKIX_PL_String_Create
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_PL_X500Name_Create
    - PKIX_ComCRLSelParams_AddIssuerName
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      testAddIssuerName(PKIX_ComCRLSelParams *comCrlSelParams, char *issuerName)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:242,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:244,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:248,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:250,1
    - Dst: PKIX_ComCRLSelParams_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:250,1
    - Dst: testAddIssuerName
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:252,1
    - Dst: testAddIssuerName
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:253,1
    - Dst: testAddIssuerName
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:254,1
    - Dst: testAddIssuerName
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:255,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:257,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:258,1
    - Dst: PKIX_CRLSelector_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:258,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:263,1
    - Dst: PKIX_CRLSelector_SetCommonCRLSelectorParams
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:263,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:267,1
    - Dst: PKIX_ValidateParams_GetProcessingParams
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:267,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:269,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:270,1
    - Dst: PKIX_CertStore_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:270,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:281,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:282,1
    - Dst: PKIX_ProcessingParams_AddCertStore
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:282,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:284,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:285,1
    - Dst: PKIX_ProcessingParams_SetRevocationEnabled
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:285,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:287,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:288,1
    - Dst: PKIX_CertStore_GetCRLCallback
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:288,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:292,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:293,1
    - Dst: crlCallback
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:293,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:299,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:299,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:309,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:310,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:311,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:312,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:313,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 36
    argCount: 1
    argNames:
    - valParams
    argTypes:
    - PKIX_ValidateParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 318
    functionName: testCustomCertStore
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_CRLSelector_SetCommonCRLSelectorParams
    - PKIX_ValidateParams_GetProcessingParams
    - PKIX_CertStore_GetCRLCallback
    - PKIX_TEST_RETURN
    - crlCallback
    - subTest
    - PKIX_TEST_STD_VARS
    - testAddIssuerName
    - PKIX_List_GetLength
    - PKIX_CRLSelector_Create
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_ProcessingParams_AddCertStore
    - PKIX_ComCRLSelParams_Create
    - PKIX_CertStore_Create
    - PKIX_ProcessingParams_SetRevocationEnabled
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      testCustomCertStore(PKIX_ValidateParams *valParams)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:351,1
    - Dst: printUsage1
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:354,1
    - Dst: startTests
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:358,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:360,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:361,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:364,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:366,1
    - Dst: printUsage1
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:369,1
    - Dst: printUsageMax
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:375,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:386,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:388,1
    - Dst: createCertChainPlus
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:390,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:392,1
    - Dst: createValidateParams
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:396,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:408,1
    - Dst: testCustomCertStore
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:410,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:412,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:415,1
    - Dst: PKIX_ValidateChain
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:415,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:417,1
    - Dst: PKIX_ValidateChain
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:417,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:422,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:423,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:424,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:425,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:426,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:428,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:430,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c:432,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 51
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 333
    functionDepth: 3
    functionLinenumber: 333
    functionLinenumberEnd: 435
    functionName: test_customcrlchecker
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_TEST_EXPECT_ERROR
    - subTest
    - PKIX_TEST_STD_VARS
    - printUsage1
    - PKIX_Shutdown
    - createValidateParams
    - PKIX_ValidateChain
    - endTests
    - PKIX_TEST_EXPECT_NO_ERROR
    - printUsageMax
    - startTests
    - createCertChainPlus
    - testCustomCertStore
    - PORT_Strcmp
    - PKIX_PL_NssContext_Create
    linkageType: ''
    returnType: int
    signature: int test_customcrlchecker(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:20,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 31
    functionName: printUsage
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c
    functionUses: 14
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printUsage(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - checker
    - cert
    - unresExtOIDs
    - pNBIOContext
    - plContext
    argTypes:
    - PKIX_CertChainChecker*
    - PKIX_PL_Cert*
    - PKIX_List*
    - void**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 43
    functionName: testUserChecker
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\ntestUserChecker(\n    PKIX_CertChainChecker *checker,\n
      \   PKIX_PL_Cert *cert,\n    PKIX_List *unresExtOIDs,\n    void **pNBIOContext,\n
      \   void *plContext)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:84,1
    - Dst: printUsage
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:87,1
    - Dst: startTests
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:91,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:93,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:94,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:97,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:99,1
    - Dst: printUsage
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:102,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:117,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:117,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:118,1
    - Dst: PKIX_PL_OID_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:118,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:119,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:119,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:120,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:123,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:127,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:127,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:133,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:136,1
    - Dst: PKIX_PL_Object_IncRef
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:136,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:140,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:140,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:145,1
    - Dst: PKIX_PL_Object_IncRef
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:145,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:151,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:156,1
    - Dst: PKIX_TrustAnchor_CreateWithCert
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:156,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:157,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:157,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:158,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:158,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:159,1
    - Dst: PKIX_ProcessingParams_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:159,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:163,1
    - Dst: PKIX_ComCertSelParams_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:163,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:165,1
    - Dst: PKIX_ComCertSelParams_SetCertificate
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:165,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:167,1
    - Dst: PKIX_CertSelector_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:167,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:169,1
    - Dst: PKIX_CertSelector_SetCommonCertSelectorParams
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:169,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:171,1
    - Dst: PKIX_ProcessingParams_SetTargetCertConstraints
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:171,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:173,1
    - Dst: PKIX_CertChainChecker_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:173,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:181,1
    - Dst: PKIX_ProcessingParams_AddCertChainChecker
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:181,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:185,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:185,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:191,1
    - Dst: PKIX_PL_CollectionCertStore_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:191,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:194,1
    - Dst: PKIX_PL_Pk11CertStore_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:194,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:198,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:198,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:200,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:200,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:202,1
    - Dst: PKIX_ProcessingParams_SetCertStores
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:202,1
    - Dst: PKIX_BuildChain
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:206,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:215,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:217,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:218,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:222,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:223,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:225,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:231,1
    - Dst: PKIX_BuildResult_GetCertChain
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:231,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:233,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:233,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:235,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:238,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:238,1
    - Dst: PKIX_Cert2ASCII
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:243,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:245,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:247,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:247,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:250,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:253,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:253,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:259,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:262,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:262,1
    - Dst: PKIX_String2ASCII
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:266,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:272,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:272,1
    - Dst: PKIX_String2ASCII
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:276,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:282,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:283,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:296,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:297,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:298,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:300,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:301,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:302,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:303,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:304,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:305,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:306,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:307,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:308,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:309,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:310,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:311,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:312,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:313,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:314,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:315,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:316,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:317,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:318,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:320,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:322,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c:324,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 146
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 327
    functionName: test_buildchain_uchecker
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_PL_Object_Equals
    - PKIX_List_Create
    - subTest
    - printf
    - endTests
    - PKIX_TEST_EXPECT_NO_ERROR
    - createCert
    - PKIX_PL_Object_IncRef
    - PKIX_Shutdown
    - PKIX_ComCertSelParams_Create
    - PKIX_PL_NssContext_Create
    - PKIX_BuildChain
    - PKIX_PL_Object_ToString
    - PKIX_List_AppendItem
    - PKIX_BuildResult_GetCertChain
    - PKIX_Cert2ASCII
    - PKIX_String2ASCII
    - PKIX_TEST_STD_VARS
    - PKIX_ComCertSelParams_SetCertificate
    - testError
    - PKIX_ProcessingParams_AddCertChainChecker
    - PKIX_List_GetLength
    - PKIX_PL_OID_Create
    - PKIX_TEST_DECREF_BC
    - startTests
    - PKIX_PL_Pk11CertStore_Create
    - PKIX_TEST_RETURN
    - PKIX_CertChainChecker_Create
    - PKIX_PL_String_Create
    - PKIX_CertSelector_SetCommonCertSelectorParams
    - PKIX_ProcessingParams_SetCertStores
    - PKIX_PL_CollectionCertStore_Create
    - PKIX_PL_Free
    - PKIX_TrustAnchor_CreateWithCert
    - printUsage
    - PKIX_CertSelector_Create
    - PORT_Strcmp
    - PKIX_ProcessingParams_Create
    - PKIX_ProcessingParams_SetTargetCertConstraints
    - PKIX_List_GetItem
    linkageType: ''
    returnType: int
    signature: int test_buildchain_uchecker(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:19,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 27
    functionName: printUsage
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c
    functionUses: 15
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printUsage(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:39,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:41,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:42,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:44,1
    - Dst: PKIX_PL_Malloc
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:44,1
    - Dst: PL_strcpy
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:50,1
    - Dst: PL_strcat
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:51,1
    - Dst: PL_strcat
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:52,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:53,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - dirName
    - certFile
    - plContext
    argTypes:
    - char*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 60
    functionName: createFullPathName
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - PL_strlen
    - PKIX_TEST_STD_VARS
    - printf
    - PL_strcat
    - PKIX_TEST_EXPECT_NO_ERROR
    - PL_strcpy
    - PKIX_PL_Malloc
    linkageType: ''
    returnType: char
    signature: "char *\ncreateFullPathName(\n    char *dirName,\n    char *certFile,\n
      \   void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:70,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:72,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:75,1
    - Dst: PKIX_PL_LdapDefaultClient_CreateByName
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:75,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:81,1
    - Dst: PKIX_PL_LdapCertStore_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:81,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:85,1
    - Dst: PKIX_ValidateParams_GetProcessingParams
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:85,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:87,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:88,1
    - Dst: PKIX_ProcessingParams_AddCertStore
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:88,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:90,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:91,1
    - Dst: PKIX_ProcessingParams_SetRevocationEnabled
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:91,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:95,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:96,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:97,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:98,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 2
    argNames:
    - valParams
    - ldapName
    argTypes:
    - PKIX_ValidateParams*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 103
    functionName: testSetupCertStore
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_ValidateParams_GetProcessingParams
    - PKIX_PL_LdapDefaultClient_CreateByName
    - PKIX_PL_LdapCertStore_Create
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_ProcessingParams_AddCertStore
    - PKIX_ProcessingParams_SetRevocationEnabled
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      testSetupCertStore(PKIX_ValidateParams *valParams, char *ldapName)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:121,1
    - Dst: PKIX_String2ASCII
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:123,1
    - Dst: PR_snprintf
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:124,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:129,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:132,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:132,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 5
    argNames:
    - logger
    - message
    - logLevel
    - logComponent
    - plContext
    argTypes:
    - PKIX_Logger*
    - PKIX_PL_String*
    - PKIX_UInt32
    - PKIX_ERRORCLASS
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 134
    functionName: loggerCallback
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - PR_snprintf
    - PKIX_String2ASCII
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_PL_Free
    - PKIX_TEST_EXPECT_NO_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nloggerCallback(\n    PKIX_Logger *logger,\n    PKIX_PL_String
      *message,\n    PKIX_UInt32 logLevel,\n    PKIX_ERRORCLASS logComponent,\n    void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:146,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:148,1
    - Dst: PKIX_Logger_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:148,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:149,1
    - Dst: PKIX_Logger_SetLoggingComponent
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:149,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:150,1
    - Dst: PKIX_Logger_SetMaxLoggingLevel
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:150,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:151,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:151,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:154,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:155,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 4
    argNames:
    - module
    - loggingLevel
    - loggers
    - plContext
    argTypes:
    - PKIX_ERRORCLASS
    - PKIX_UInt32
    - PKIX_List*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 158
    functionName: testLogErrors
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_Logger_SetLoggingComponent
    - PKIX_TEST_STD_VARS
    - PKIX_Logger_SetMaxLoggingLevel
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_List_AppendItem
    - PKIX_Logger_Create
    linkageType: ''
    returnType: void
    signature: "void testLogErrors(\n    PKIX_ERRORCLASS module,\n    PKIX_UInt32
      loggingLevel,\n    PKIX_List *loggers,\n    void *plContext)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:193,1
    - Dst: printUsage
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:196,1
    - Dst: startTests
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:200,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:202,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:203,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:206,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:208,1
    - Dst: printUsage
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:211,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:215,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:221,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:221,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:225,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:227,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:227,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:229,1
    - Dst: createValidateParams
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:232,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:245,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:248,1
    - Dst: pkix_pl_Socket_CreateByName
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:252,1
    - Dst: PR_SecondsToInterval
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:253,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:260,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:262,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:266,1
    - Dst: testSetupCertStore
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:268,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:270,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:274,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:274,1
    - Dst: testLogErrors
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:276,1
    - Dst: testLogErrors
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:277,1
    - Dst: testLogErrors
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:278,1
    - Dst: testLogErrors
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:279,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:281,1
    - Dst: PKIX_SetLoggers
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:281,1
    - Dst: PKIX_ValidateChain_NB
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:284,1
    - Dst: PR_Poll
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:297,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:298,1
    - Dst: PKIX_ValidateChain_NB
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:301,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:315,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:317,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:319,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:323,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:325,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:332,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:332,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:333,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:337,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:338,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:339,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:340,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:341,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:342,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:344,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:346,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c:348,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 89
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 160
    functionDepth: 2
    functionLinenumber: 160
    functionLinenumberEnd: 351
    functionName: test_validatechain_NB
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_List_Create
    - subTest
    - printf
    - PR_GetEnvSecure
    - endTests
    - PKIX_TEST_EXPECT_NO_ERROR
    - createCert
    - PKIX_Shutdown
    - PKIX_ValidateChain_NB
    - PKIX_PL_NssContext_Create
    - PKIX_PL_Object_ToString
    - PKIX_List_AppendItem
    - PR_Poll
    - PR_SecondsToInterval
    - PKIX_TEST_STD_VARS
    - PKIX_SetLoggers
    - createValidateParams
    - PKIX_TEST_DECREF_BC
    - startTests
    - testLogErrors
    - PKIX_TEST_RETURN
    - PKIX_PL_Object_DecRef
    - testSetupCertStore
    - pkix_pl_Socket_CreateByName
    - printUsage
    - testError
    - PORT_Strcmp
    linkageType: ''
    returnType: int
    signature: int test_validatechain_NB(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:34,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 45
    functionName: printUsage
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c
    functionUses: 16
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printUsage(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:64,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:73,1
    - Dst: PKIX_PL_LdapDefaultClient_CreateByName
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:73,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:75,1
    - Dst: PKIX_PL_LdapCertStore_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:75,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:82,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 4
    argNames:
    - hostname
    - timeout
    - pLdapCertStore
    - plContext
    argTypes:
    - char*
    - PRIntervalTime
    - PKIX_CertStore**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 87
    functionName: createLdapCertStore
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_PL_LdapDefaultClient_CreateByName
    - PKIX_PL_LdapCertStore_Create
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_EXPECT_NO_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\ncreateLdapCertStore(\n    char *hostname,\n    PRIntervalTime
      timeout,\n    PKIX_CertStore **pLdapCertStore,\n    void *plContext)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:117,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:121,1
    - Dst: PKIX_TrustAnchor_CreateWithCert
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:121,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:122,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:122,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:123,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:123,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:124,1
    - Dst: PKIX_ProcessingParams_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:124,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:128,1
    - Dst: PKIX_ComCertSelParams_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:128,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:130,1
    - Dst: PKIX_CertSelector_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:130,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:132,1
    - Dst: PKIX_CertSelector_SetCommonCertSelectorParams
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:132,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:134,1
    - Dst: PKIX_ProcessingParams_SetTargetCertConstraints
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:134,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:137,1
    - Dst: PKIX_PL_Object_Duplicate
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:137,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:141,1
    - Dst: PKIX_ProcessingParams_SetHintCerts
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:141,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:143,1
    - Dst: PKIX_ProcessingParams_SetCertStores
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:143,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:145,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:145,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:147,1
    - Dst: PKIX_PL_Cert_GetSubjectPublicKey
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:147,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:149,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:149,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:151,1
    - Dst: pkix_DefaultRevChecker_Initialize
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:151,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:158,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:158,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:160,1
    - Dst: PKIX_ProcessingParams_SetRevocationCheckers
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:160,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:163,1
    - Dst: PKIX_ProcessingParams_SetRevocationEnabled
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:163,1
    - Dst: PKIX_BuildChain
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:168,1
    - Dst: PR_Poll
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:177,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:178,1
    - Dst: PKIX_BuildChain
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:181,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:191,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:193,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:195,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:200,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:202,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:207,1
    - Dst: PKIX_BuildResult_GetCertChain
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:207,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:209,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:209,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:211,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:214,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:214,1
    - Dst: PKIX_Cert2ASCII
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:219,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:221,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:224,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:224,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:227,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:232,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:234,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:235,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:236,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:237,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:238,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:239,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:240,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:241,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:242,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:243,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:244,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:245,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:246,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:247,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 73
    argCount: 6
    argNames:
    - trustedCert
    - listOfCerts
    - targetCert
    - certStores
    - testValid
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_List*
    - PKIX_PL_Cert*
    - PKIX_List*
    - PKIX_Boolean
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 250
    functionName: testWithNoLeaf
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_List_Create
    - printf
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_ComCertSelParams_Create
    - PKIX_BuildChain
    - PKIX_List_AppendItem
    - PKIX_BuildResult_GetCertChain
    - PR_Poll
    - PKIX_ProcessingParams_SetHintCerts
    - PKIX_Cert2ASCII
    - PKIX_ProcessingParams_SetRevocationCheckers
    - PKIX_TEST_STD_VARS
    - PKIX_List_GetLength
    - testError
    - PKIX_PL_Cert_GetSubjectPublicKey
    - PKIX_TEST_DECREF_BC
    - pkix_DefaultRevChecker_Initialize
    - PKIX_ProcessingParams_SetRevocationEnabled
    - PKIX_TEST_RETURN
    - PKIX_PL_Object_Duplicate
    - PKIX_CertSelector_SetCommonCertSelectorParams
    - PKIX_ProcessingParams_SetCertStores
    - PKIX_PL_Free
    - PKIX_TrustAnchor_CreateWithCert
    - PKIX_CertSelector_Create
    - PKIX_ProcessingParams_Create
    - PKIX_ProcessingParams_SetTargetCertConstraints
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\ntestWithNoLeaf(\n    PKIX_PL_Cert *trustedCert,\n    PKIX_List
      *listOfCerts,\n    PKIX_PL_Cert *targetCert,\n    PKIX_List *certStores,\n    PKIX_Boolean
      testValid,\n    void *plContext)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:280,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:284,1
    - Dst: PKIX_TrustAnchor_CreateWithCert
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:284,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:285,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:285,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:286,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:286,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:287,1
    - Dst: PKIX_ProcessingParams_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:287,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:291,1
    - Dst: PKIX_ComCertSelParams_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:291,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:293,1
    - Dst: PKIX_ComCertSelParams_SetCertificate
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:293,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:295,1
    - Dst: PKIX_CertSelector_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:295,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:297,1
    - Dst: PKIX_CertSelector_SetCommonCertSelectorParams
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:297,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:299,1
    - Dst: PKIX_ProcessingParams_SetTargetCertConstraints
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:299,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:302,1
    - Dst: PKIX_PL_Object_Duplicate
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:302,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:306,1
    - Dst: PKIX_ProcessingParams_SetHintCerts
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:306,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:308,1
    - Dst: PKIX_ProcessingParams_SetCertStores
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:308,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:310,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:310,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:312,1
    - Dst: PKIX_PL_Cert_GetSubjectPublicKey
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:312,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:314,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:314,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:316,1
    - Dst: pkix_DefaultRevChecker_Initialize
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:316,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:323,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:323,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:325,1
    - Dst: PKIX_ProcessingParams_SetRevocationCheckers
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:325,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:328,1
    - Dst: PKIX_ProcessingParams_SetRevocationEnabled
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:328,1
    - Dst: PKIX_BuildChain
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:333,1
    - Dst: PR_Poll
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:342,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:343,1
    - Dst: PKIX_BuildChain
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:346,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:356,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:358,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:360,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:365,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:367,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:372,1
    - Dst: PKIX_BuildResult_GetCertChain
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:372,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:374,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:374,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:376,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:379,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:379,1
    - Dst: PKIX_Cert2ASCII
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:384,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:386,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:389,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:389,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:392,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:397,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:399,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:400,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:401,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:402,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:403,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:404,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:405,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:406,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:407,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:408,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:409,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:410,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:411,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:412,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 74
    argCount: 6
    argNames:
    - trustedCert
    - listOfCerts
    - targetCert
    - certStores
    - testValid
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_List*
    - PKIX_PL_Cert*
    - PKIX_List*
    - PKIX_Boolean
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 415
    functionName: testWithDuplicateLeaf
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_List_Create
    - printf
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_ComCertSelParams_Create
    - PKIX_BuildChain
    - PKIX_List_AppendItem
    - PKIX_BuildResult_GetCertChain
    - PR_Poll
    - PKIX_ProcessingParams_SetHintCerts
    - PKIX_Cert2ASCII
    - PKIX_ProcessingParams_SetRevocationCheckers
    - PKIX_TEST_STD_VARS
    - PKIX_ComCertSelParams_SetCertificate
    - PKIX_List_GetLength
    - PKIX_PL_Cert_GetSubjectPublicKey
    - testError
    - PKIX_TEST_DECREF_BC
    - pkix_DefaultRevChecker_Initialize
    - PKIX_ProcessingParams_SetRevocationEnabled
    - PKIX_TEST_RETURN
    - PKIX_PL_Object_Duplicate
    - PKIX_CertSelector_SetCommonCertSelectorParams
    - PKIX_ProcessingParams_SetCertStores
    - PKIX_PL_Free
    - PKIX_TrustAnchor_CreateWithCert
    - PKIX_CertSelector_Create
    - PKIX_ProcessingParams_Create
    - PKIX_ProcessingParams_SetTargetCertConstraints
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\ntestWithDuplicateLeaf(\n    PKIX_PL_Cert *trustedCert,\n
      \   PKIX_List *listOfCerts,\n    PKIX_PL_Cert *targetCert,\n    PKIX_List *certStores,\n
      \   PKIX_Boolean testValid,\n    void *plContext)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:445,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:449,1
    - Dst: PKIX_TrustAnchor_CreateWithCert
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:449,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:450,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:450,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:451,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:451,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:452,1
    - Dst: PKIX_ProcessingParams_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:452,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:456,1
    - Dst: PKIX_ComCertSelParams_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:456,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:458,1
    - Dst: PKIX_ComCertSelParams_SetCertificate
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:458,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:460,1
    - Dst: PKIX_CertSelector_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:460,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:462,1
    - Dst: PKIX_CertSelector_SetCommonCertSelectorParams
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:462,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:464,1
    - Dst: PKIX_ProcessingParams_SetTargetCertConstraints
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:464,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:467,1
    - Dst: PKIX_PL_Object_Duplicate
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:467,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:471,1
    - Dst: PKIX_List_DeleteItem
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:471,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:473,1
    - Dst: PKIX_ProcessingParams_SetHintCerts
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:473,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:475,1
    - Dst: PKIX_ProcessingParams_SetCertStores
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:475,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:477,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:477,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:479,1
    - Dst: PKIX_PL_Cert_GetSubjectPublicKey
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:479,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:481,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:481,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:483,1
    - Dst: pkix_DefaultRevChecker_Initialize
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:483,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:490,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:490,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:492,1
    - Dst: PKIX_ProcessingParams_SetRevocationCheckers
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:492,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:495,1
    - Dst: PKIX_ProcessingParams_SetRevocationEnabled
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:495,1
    - Dst: PKIX_BuildChain
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:500,1
    - Dst: PR_Poll
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:509,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:510,1
    - Dst: PKIX_BuildChain
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:513,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:523,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:525,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:527,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:532,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:534,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:539,1
    - Dst: PKIX_BuildResult_GetCertChain
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:539,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:541,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:541,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:543,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:546,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:546,1
    - Dst: PKIX_Cert2ASCII
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:551,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:553,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:556,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:556,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:559,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:565,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:566,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:567,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:568,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:569,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:570,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:571,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:572,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:573,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:574,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:575,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:576,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:577,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:579,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 74
    argCount: 6
    argNames:
    - trustedCert
    - listOfCerts
    - targetCert
    - certStores
    - testValid
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_List*
    - PKIX_PL_Cert*
    - PKIX_List*
    - PKIX_Boolean
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 582
    functionName: testWithLeafAndChain
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_List_Create
    - printf
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_ComCertSelParams_Create
    - PKIX_BuildChain
    - PKIX_List_AppendItem
    - PKIX_BuildResult_GetCertChain
    - PR_Poll
    - PKIX_ProcessingParams_SetHintCerts
    - PKIX_Cert2ASCII
    - PKIX_ProcessingParams_SetRevocationCheckers
    - PKIX_TEST_STD_VARS
    - PKIX_ComCertSelParams_SetCertificate
    - PKIX_List_GetLength
    - PKIX_PL_Cert_GetSubjectPublicKey
    - testError
    - PKIX_TEST_DECREF_BC
    - pkix_DefaultRevChecker_Initialize
    - PKIX_ProcessingParams_SetRevocationEnabled
    - PKIX_TEST_RETURN
    - PKIX_PL_Object_Duplicate
    - PKIX_CertSelector_SetCommonCertSelectorParams
    - PKIX_ProcessingParams_SetCertStores
    - PKIX_List_DeleteItem
    - PKIX_PL_Free
    - PKIX_TrustAnchor_CreateWithCert
    - PKIX_CertSelector_Create
    - PKIX_ProcessingParams_Create
    - PKIX_ProcessingParams_SetTargetCertConstraints
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\ntestWithLeafAndChain(\n    PKIX_PL_Cert *trustedCert,\n
      \   PKIX_List *listOfCerts,\n    PKIX_PL_Cert *targetCert,\n    PKIX_List *certStores,\n
      \   PKIX_Boolean testValid,\n    void *plContext)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:604,1
    - Dst: printUsage
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:607,1
    - Dst: startTests
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:611,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:613,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:614,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:631,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:637,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:644,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:647,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:649,1
    - Dst: printUsage
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:652,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:658,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:658,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:662,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:665,1
    - Dst: PKIX_PL_Object_IncRef
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:665,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:669,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:669,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:674,1
    - Dst: PKIX_PL_Object_IncRef
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:674,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:679,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:684,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:684,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:686,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:686,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:689,1
    - Dst: createLdapCertStore
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:689,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:691,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:691,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:695,1
    - Dst: PKIX_PL_CollectionCertStore_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:695,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:696,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:696,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:699,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:700,1
    - Dst: testWithNoLeaf
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:700,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:702,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:703,1
    - Dst: testWithDuplicateLeaf
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:703,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:705,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:706,1
    - Dst: testWithLeafAndChain
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:706,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:710,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:711,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:712,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:713,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:714,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:715,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:716,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:718,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:720,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c:722,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 74
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 584
    functionDepth: 2
    functionLinenumber: 584
    functionLinenumberEnd: 725
    functionName: test_buildchain_partialchain
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - createLdapCertStore
    - PKIX_List_Create
    - subTest
    - endTests
    - PKIX_TEST_EXPECT_NO_ERROR
    - createCert
    - PKIX_PL_Object_IncRef
    - PKIX_Shutdown
    - PKIX_PL_NssContext_Create
    - PKIX_List_AppendItem
    - testWithDuplicateLeaf
    - PKIX_TEST_STD_VARS
    - testWithLeafAndChain
    - PKIX_TEST_DECREF_BC
    - startTests
    - PKIX_TEST_RETURN
    - PKIX_PL_String_Create
    - testWithNoLeaf
    - printUsage
    - PORT_Strcmp
    - PKIX_PL_CollectionCertStore_Create
    linkageType: ''
    returnType: int
    signature: int test_buildchain_partialchain(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:21,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 23
    functionName: printUsage1
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c
    functionUses: 2
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printUsage1(char *pName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - numCerts
    argTypes:
    - PKIX_UInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 30
    functionName: printUsageMax
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c
    functionUses: 2
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printUsageMax(PKIX_UInt32 numCerts)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - store
    - certSelector
    - pCerts
    - plContext
    argTypes:
    - PKIX_CertStore*
    - PKIX_CertSelector*
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 40
    functionName: getCertCallback
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\ngetCertCallback(\n    PKIX_CertStore *store,\n    PKIX_CertSelector
      *certSelector,\n    PKIX_List **pCerts,\n    void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:54,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:56,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:60,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:60,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:66,1
    - Dst: PKIX_PL_CollectionCertStore_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:66,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:70,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:70,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:76,1
    - Dst: PKIX_PL_CollectionCertStore_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:76,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:80,1
    - Dst: PKIX_ValidateParams_GetProcessingParams
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:80,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:84,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:85,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:85,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:86,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:86,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:87,1
    - Dst: PKIX_ProcessingParams_SetCertStores
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:87,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:89,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:90,1
    - Dst: PKIX_ProcessingParams_AddCertStore
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:90,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:92,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:93,1
    - Dst: PKIX_ProcessingParams_SetRevocationEnabled
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:93,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:97,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:98,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:99,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:100,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:101,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:102,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 3
    argNames:
    - valParams
    - crlDir1
    - crlDir2
    argTypes:
    - PKIX_ValidateParams*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 107
    functionName: testDefaultMultipleCertStores
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_ValidateParams_GetProcessingParams
    - PKIX_PL_String_Create
    - PKIX_List_Create
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_ProcessingParams_SetCertStores
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_List_AppendItem
    - PKIX_ProcessingParams_AddCertStore
    - PKIX_PL_CollectionCertStore_Create
    - PKIX_ProcessingParams_SetRevocationEnabled
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\ntestDefaultMultipleCertStores(PKIX_ValidateParams *valParams,\n
      \                             char *crlDir1,\n                              char
      *crlDir2)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:140,1
    - Dst: printUsage1
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:143,1
    - Dst: startTests
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:147,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:149,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:150,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:153,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:155,1
    - Dst: printUsage1
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:158,1
    - Dst: printUsageMax
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:164,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:173,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:175,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:177,1
    - Dst: createCertChainPlus
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:181,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:183,1
    - Dst: createValidateParams
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:187,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:199,1
    - Dst: testDefaultMultipleCertStores
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:201,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:203,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:206,1
    - Dst: PKIX_ValidateChain
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:206,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:208,1
    - Dst: PKIX_ValidateChain
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:208,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:211,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:211,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:212,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:216,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:217,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:219,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:220,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:221,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:223,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:225,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c:227,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 54
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 230
    functionName: test_defaultcrlchecker2stores
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - subTest
    - printf
    - endTests
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_Shutdown
    - PKIX_PL_NssContext_Create
    - PKIX_TEST_EXPECT_ERROR
    - PKIX_PL_Object_ToString
    - createCertChainPlus
    - PKIX_TEST_STD_VARS
    - createValidateParams
    - PKIX_ValidateChain
    - startTests
    - printUsageMax
    - testDefaultMultipleCertStores
    - PKIX_TEST_RETURN
    - printUsage1
    - PORT_Strcmp
    linkageType: ''
    returnType: int
    signature: int test_defaultcrlchecker2stores(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: printUsage
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c
    functionUses: 17
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printUsage(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:55,1
    - Dst: PR_Open
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:59,1
    - Dst: SECU_ReadDERFromFile
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:65,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:70,1
    - Dst: PKIX_PL_ByteArray_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:70,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:72,1
    - Dst: PKIX_PL_Cert_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:72,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:74,1
    - Dst: PR_Close
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:84,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:88,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:91,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:93,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 1
    argNames:
    - inFileName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 96
    functionName: createCert
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c
    functionUses: 10
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - SECU_ReadDERFromFile
    - PKIX_TEST_STD_VARS
    - PKIX_PL_Cert_Create
    - PKIX_PL_ByteArray_Create
    - PR_Open
    - PKIX_TEST_EXPECT_NO_ERROR
    - PR_Close
    - SECITEM_FreeItem
    linkageType: ''
    returnType: PKIX_PL_Cert
    signature: 'PKIX_PL_Cert *

      createCert(char *inFileName)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:123,1
    - Dst: printUsage
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:126,1
    - Dst: startTests
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:130,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:132,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:133,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:139,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:141,1
    - Dst: PKIX_PL_Cert_GetSubject
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:141,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:143,1
    - Dst: PKIX_ComCertSelParams_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:143,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:145,1
    - Dst: PKIX_ComCertSelParams_SetBasicConstraints
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:145,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:147,1
    - Dst: PKIX_CertSelector_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:147,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:149,1
    - Dst: PKIX_CertSelector_SetCommonCertSelectorParams
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:149,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:151,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:153,1
    - Dst: PKIX_TrustAnchor_CreateWithCert
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:153,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:155,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:155,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:156,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:156,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:157,1
    - Dst: PKIX_ProcessingParams_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:157,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:159,1
    - Dst: PKIX_ProcessingParams_SetRevocationEnabled
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:159,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:161,1
    - Dst: PKIX_ProcessingParams_SetTargetCertConstraints
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:161,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:163,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:166,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:166,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:169,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:171,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:171,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:173,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:177,1
    - Dst: PKIX_ValidateParams_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:177,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:181,1
    - Dst: PKIX_ValidateChain
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:181,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:184,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:185,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:186,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:189,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:189,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:190,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:191,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:192,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:194,1
    - Dst: PKIX_ComCertSelParams_SetBasicConstraints
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:194,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:198,1
    - Dst: PKIX_ValidateChain
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:198,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:201,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:202,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:205,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:206,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:207,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:208,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:209,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:214,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:217,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:217,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:218,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:219,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:220,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:222,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:223,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:224,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:226,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:228,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c:230,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 69
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 233
    functionName: test_validatechain_bc
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_List_Create
    - printf
    - PKIX_ComCertSelParams_SetBasicConstraints
    - endTests
    - PKIX_TEST_EXPECT_NO_ERROR
    - createCert
    - PKIX_Shutdown
    - PKIX_ComCertSelParams_Create
    - PKIX_PL_NssContext_Create
    - PKIX_ValidateParams_Create
    - PKIX_TEST_EXPECT_ERROR
    - PKIX_PL_Object_ToString
    - PKIX_List_AppendItem
    - PKIX_PL_Cert_GetSubject
    - PKIX_TEST_STD_VARS
    - PKIX_ValidateChain
    - PKIX_TEST_DECREF_BC
    - startTests
    - PKIX_ProcessingParams_SetRevocationEnabled
    - PKIX_TEST_RETURN
    - PKIX_CertSelector_SetCommonCertSelectorParams
    - PKIX_TrustAnchor_CreateWithCert
    - printUsage
    - PKIX_CertSelector_Create
    - PKIX_ProcessingParams_Create
    - PKIX_ProcessingParams_SetTargetCertConstraints
    linkageType: ''
    returnType: int
    signature: int test_validatechain_bc(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:25,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 36
    functionName: printUsage
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c
    functionUses: 18
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printUsage(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:55,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:64,1
    - Dst: PKIX_PL_LdapDefaultClient_CreateByName
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:64,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:66,1
    - Dst: PKIX_PL_LdapCertStore_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:66,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:71,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 4
    argNames:
    - hostname
    - timeout
    - pLdapCertStore
    - plContext
    argTypes:
    - char*
    - PRIntervalTime
    - PKIX_CertStore**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 76
    functionName: createLdapCertStore
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c
    functionUses: 1
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_PL_LdapDefaultClient_CreateByName
    - PKIX_PL_LdapCertStore_Create
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_EXPECT_NO_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\ncreateLdapCertStore(\n    char *hostname,\n    PRIntervalTime
      timeout,\n    PKIX_CertStore **pLdapCertStore,\n    void *plContext)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:99,1
    - Dst: PKIX_BuildChain
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:101,1
    - Dst: PR_Poll
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:110,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:111,1
    - Dst: PKIX_BuildChain
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:114,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:124,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:126,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:128,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:133,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:135,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:140,1
    - Dst: PKIX_BuildResult_GetCertChain
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:140,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:142,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:142,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:144,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:147,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:147,1
    - Dst: PKIX_Cert2ASCII
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:152,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:154,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:157,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:157,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:160,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:163,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:163,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:169,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:172,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:172,1
    - Dst: PKIX_String2ASCII
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:176,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:182,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:182,1
    - Dst: PKIX_String2ASCII
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:186,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:192,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:193,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:200,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:201,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:202,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:203,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:204,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:205,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:206,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:207,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:208,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:210,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 69
    argCount: 4
    argNames:
    - procParams
    - testValid
    - expectedCerts
    - plContext
    argTypes:
    - PKIX_ProcessingParams*
    - PKIX_Boolean
    - PKIX_List*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 211
    functionName: Test_BuildResult
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c
    functionUses: 0
    functionsReached:
    - PKIX_Cert2ASCII
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_PL_Object_Equals
    - PKIX_String2ASCII
    - PKIX_PL_Object_ToString
    - PKIX_TEST_STD_VARS
    - PKIX_List_GetLength
    - printf
    - PKIX_PL_Free
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_TEST_DECREF_BC
    - PKIX_List_GetItem
    - PKIX_BuildResult_GetCertChain
    - testError
    - PR_Poll
    - PKIX_BuildChain
    linkageType: ''
    returnType: void
    signature: "void Test_BuildResult(\n    PKIX_ProcessingParams *procParams,\n    PKIX_Boolean
      testValid,\n    PKIX_List *expectedCerts,\n    void *plContext)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:240,1
    - Dst: printUsage
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:243,1
    - Dst: startTests
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:247,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:249,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:250,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:267,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:273,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:279,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:282,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:284,1
    - Dst: printUsage
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:287,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:293,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:293,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:297,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:300,1
    - Dst: PKIX_PL_Object_IncRef
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:300,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:304,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:304,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:309,1
    - Dst: PKIX_PL_Object_IncRef
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:309,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:314,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:319,1
    - Dst: PKIX_TrustAnchor_CreateWithCert
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:319,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:320,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:320,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:321,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:321,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:322,1
    - Dst: PKIX_ProcessingParams_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:322,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:326,1
    - Dst: PKIX_ComCertSelParams_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:326,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:328,1
    - Dst: PKIX_ComCertSelParams_SetCertificate
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:328,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:330,1
    - Dst: PKIX_CertSelector_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:330,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:332,1
    - Dst: PKIX_CertSelector_SetCommonCertSelectorParams
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:332,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:334,1
    - Dst: PKIX_ProcessingParams_SetTargetCertConstraints
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:334,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:338,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:338,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:344,1
    - Dst: PKIX_PL_CollectionCertStore_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:344,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:347,1
    - Dst: PKIX_PL_Pk11CertStore_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:347,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:351,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:351,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:354,1
    - Dst: createLdapCertStore
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:354,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:356,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:356,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:361,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:361,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:363,1
    - Dst: PKIX_ProcessingParams_SetCertStores
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:363,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:367,1
    - Dst: PKIX_ResourceLimits_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:367,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:370,1
    - Dst: PKIX_ResourceLimits_SetMaxTime
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:370,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:372,1
    - Dst: PKIX_ResourceLimits_SetMaxFanout
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:372,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:374,1
    - Dst: PKIX_ResourceLimits_SetMaxDepth
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:374,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:376,1
    - Dst: PKIX_ProcessingParams_SetResourceLimits
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:376,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:380,1
    - Dst: Test_BuildResult
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:381,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:386,1
    - Dst: PKIX_ResourceLimits_SetMaxFanout
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:386,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:388,1
    - Dst: Test_BuildResult
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:389,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:394,1
    - Dst: PKIX_ResourceLimits_SetMaxFanout
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:394,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:395,1
    - Dst: PKIX_ResourceLimits_SetMaxDepth
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:395,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:397,1
    - Dst: Test_BuildResult
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:398,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:403,1
    - Dst: PKIX_ResourceLimits_SetMaxFanout
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:403,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:404,1
    - Dst: PKIX_ResourceLimits_SetMaxDepth
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:404,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:405,1
    - Dst: PKIX_ResourceLimits_SetMaxTime
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:405,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:407,1
    - Dst: Test_BuildResult
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:408,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:415,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:416,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:417,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:418,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:419,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:420,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:421,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:422,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:423,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:424,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:425,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:426,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:427,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:428,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:429,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:431,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:433,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c:435,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 104
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 213
    functionDepth: 2
    functionLinenumber: 213
    functionLinenumberEnd: 438
    functionName: test_buildchain_resourcelimits
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - createLdapCertStore
    - PKIX_List_Create
    - subTest
    - endTests
    - PKIX_TEST_EXPECT_NO_ERROR
    - createCert
    - PKIX_PL_Object_IncRef
    - PKIX_Shutdown
    - PKIX_ComCertSelParams_Create
    - PKIX_PL_NssContext_Create
    - PKIX_ResourceLimits_SetMaxTime
    - PKIX_ResourceLimits_SetMaxDepth
    - PKIX_List_AppendItem
    - PKIX_ResourceLimits_SetMaxFanout
    - PKIX_ProcessingParams_SetResourceLimits
    - PKIX_TEST_STD_VARS
    - PKIX_ComCertSelParams_SetCertificate
    - PKIX_TEST_DECREF_BC
    - startTests
    - PKIX_PL_Pk11CertStore_Create
    - Test_BuildResult
    - PKIX_TEST_RETURN
    - PKIX_PL_String_Create
    - PKIX_CertSelector_SetCommonCertSelectorParams
    - PKIX_ProcessingParams_SetCertStores
    - PKIX_PL_CollectionCertStore_Create
    - PKIX_ResourceLimits_Create
    - PKIX_TrustAnchor_CreateWithCert
    - printUsage
    - PKIX_CertSelector_Create
    - PORT_Strcmp
    - PKIX_ProcessingParams_Create
    - PKIX_ProcessingParams_SetTargetCertConstraints
    linkageType: ''
    returnType: int
    signature: int test_buildchain_resourcelimits(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:19,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 29
    functionName: printUsage
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c
    functionUses: 19
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printUsage(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:41,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:43,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:44,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:46,1
    - Dst: PKIX_PL_Malloc
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:46,1
    - Dst: PL_strcpy
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:52,1
    - Dst: PL_strcat
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:53,1
    - Dst: PL_strcat
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:54,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:55,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - dirName
    - certFile
    - plContext
    argTypes:
    - char*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 62
    functionName: createFullPathName
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - PL_strlen
    - PKIX_TEST_STD_VARS
    - printf
    - PL_strcat
    - PKIX_TEST_EXPECT_NO_ERROR
    - PL_strcpy
    - PKIX_PL_Malloc
    linkageType: ''
    returnType: char
    signature: "char *\ncreateFullPathName(\n    char *dirName,\n    char *certFile,\n
      \   void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:76,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:78,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:82,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:82,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:84,1
    - Dst: PKIX_PL_CollectionCertStore_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:84,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:88,1
    - Dst: PKIX_ValidateParams_GetProcessingParams
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:88,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:90,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:91,1
    - Dst: PKIX_ProcessingParams_AddCertStore
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:91,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:93,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:95,1
    - Dst: PKIX_ProcessingParams_SetRevocationEnabled
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:95,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:98,1
    - Dst: pkix_pl_Date_CreateFromPRTime
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:98,1
    - Dst: PR_Now
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:98,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:100,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:100,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:103,1
    - Dst: PKIX_OcspChecker_Initialize
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:103,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:109,1
    - Dst: PKIX_RevocationChecker_GetRevCheckerContext
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:109,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:112,1
    - Dst: pkix_CheckType
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:112,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:116,1
    - Dst: PKIX_OcspChecker_SetVerifyFcn
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:116,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:120,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:120,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:122,1
    - Dst: PKIX_ProcessingParams_SetRevocationCheckers
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:122,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:126,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:127,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:128,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:129,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:130,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:131,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:132,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 2
    argNames:
    - valParams
    - crlDir
    argTypes:
    - PKIX_ValidateParams*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 137
    functionName: testDefaultCertStore
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c
    functionUses: 1
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_List_Create
    - subTest
    - PKIX_OcspChecker_SetVerifyFcn
    - PR_Now
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_ProcessingParams_AddCertStore
    - PKIX_List_AppendItem
    - PKIX_ProcessingParams_SetRevocationCheckers
    - PKIX_TEST_STD_VARS
    - PKIX_RevocationChecker_GetRevCheckerContext
    - PKIX_ProcessingParams_SetRevocationEnabled
    - PKIX_TEST_RETURN
    - PKIX_ValidateParams_GetProcessingParams
    - PKIX_PL_String_Create
    - PKIX_OcspChecker_Initialize
    - pkix_CheckType
    - pkix_pl_Date_CreateFromPRTime
    - PKIX_PL_CollectionCertStore_Create
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      testDefaultCertStore(PKIX_ValidateParams *valParams, char *crlDir)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:166,1
    - Dst: printUsage
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:169,1
    - Dst: startTests
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:173,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:175,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:176,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:179,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:181,1
    - Dst: printUsage
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:184,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:188,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:194,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:194,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:198,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:201,1
    - Dst: PKIX_PL_Object_IncRef
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:201,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:205,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:205,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:207,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:213,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:215,1
    - Dst: PKIX_TrustAnchor_CreateWithCert
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:215,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:217,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:217,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:219,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:219,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:221,1
    - Dst: PKIX_ProcessingParams_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:221,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:225,1
    - Dst: PKIX_ComCertSelParams_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:225,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:227,1
    - Dst: PKIX_ComCertSelParams_SetCertificate
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:227,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:229,1
    - Dst: PKIX_CertSelector_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:229,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:231,1
    - Dst: PKIX_CertSelector_SetCommonCertSelectorParams
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:231,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:233,1
    - Dst: PKIX_ProcessingParams_SetTargetCertConstraints
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:233,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:235,1
    - Dst: PKIX_ValidateParams_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:235,1
    - Dst: testDefaultCertStore
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:237,1
    - Dst: PKIX_ValidateChain
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:239,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:243,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:245,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:247,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:250,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:252,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:256,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:259,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:261,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:261,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:262,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:264,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:265,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:270,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:271,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:272,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:273,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:274,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:275,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:276,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:277,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:278,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:279,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:281,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:283,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c:285,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 83
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 288
    functionName: test_ocsp
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_ocsp.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_List_Create
    - subTest
    - printf
    - endTests
    - PKIX_TEST_EXPECT_NO_ERROR
    - createCert
    - PKIX_PL_Object_IncRef
    - PKIX_Shutdown
    - PKIX_ComCertSelParams_Create
    - PKIX_PL_NssContext_Create
    - PKIX_ValidateParams_Create
    - PKIX_PL_Object_ToString
    - PKIX_List_AppendItem
    - PKIX_TEST_STD_VARS
    - PKIX_ComCertSelParams_SetCertificate
    - testError
    - PKIX_ValidateChain
    - PKIX_TEST_DECREF_BC
    - startTests
    - PKIX_TEST_RETURN
    - PKIX_CertSelector_SetCommonCertSelectorParams
    - PKIX_TrustAnchor_CreateWithCert
    - printUsage
    - PKIX_CertSelector_Create
    - testDefaultCertStore
    - PORT_Strcmp
    - PKIX_ProcessingParams_Create
    - PKIX_ProcessingParams_SetTargetCertConstraints
    linkageType: ''
    returnType: int
    signature: int test_ocsp(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:34,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 45
    functionName: printUsage
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c
    functionUses: 20
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printUsage(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:64,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:73,1
    - Dst: PKIX_PL_LdapDefaultClient_CreateByName
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:73,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:75,1
    - Dst: PKIX_PL_LdapCertStore_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:75,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:82,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 4
    argNames:
    - hostname
    - timeout
    - pLdapCertStore
    - plContext
    argTypes:
    - char*
    - PRIntervalTime
    - PKIX_CertStore**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 87
    functionName: createLdapCertStore
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c
    functionUses: 2
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_PL_LdapDefaultClient_CreateByName
    - PKIX_PL_LdapCertStore_Create
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_EXPECT_NO_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\ncreateLdapCertStore(\n    char *hostname,\n    PRIntervalTime
      timeout,\n    PKIX_CertStore **pLdapCertStore,\n    void *plContext)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:131,1
    - Dst: printUsage
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:134,1
    - Dst: startTests
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:138,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:140,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:141,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:158,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:164,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:171,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:174,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:176,1
    - Dst: printUsage
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:179,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:185,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:185,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:189,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:192,1
    - Dst: PKIX_PL_Object_IncRef
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:192,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:196,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:196,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:201,1
    - Dst: PKIX_PL_Object_IncRef
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:201,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:206,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:211,1
    - Dst: PKIX_TrustAnchor_CreateWithCert
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:211,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:212,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:212,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:213,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:213,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:214,1
    - Dst: PKIX_ProcessingParams_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:214,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:218,1
    - Dst: PKIX_ComCertSelParams_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:218,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:220,1
    - Dst: PKIX_ComCertSelParams_SetCertificate
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:220,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:222,1
    - Dst: PKIX_CertSelector_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:222,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:224,1
    - Dst: PKIX_CertSelector_SetCommonCertSelectorParams
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:224,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:226,1
    - Dst: PKIX_ProcessingParams_SetTargetCertConstraints
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:226,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:230,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:230,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:232,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:232,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:235,1
    - Dst: createLdapCertStore
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:235,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:237,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:237,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:241,1
    - Dst: PKIX_PL_CollectionCertStore_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:241,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:242,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:242,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:245,1
    - Dst: PKIX_ProcessingParams_SetCertStores
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:245,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:247,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:247,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:249,1
    - Dst: PKIX_PL_Cert_GetSubjectPublicKey
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:249,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:251,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:251,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:253,1
    - Dst: pkix_DefaultRevChecker_Initialize
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:253,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:260,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:260,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:262,1
    - Dst: PKIX_ProcessingParams_SetRevocationCheckers
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:262,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:265,1
    - Dst: PKIX_ProcessingParams_SetRevocationEnabled
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:265,1
    - Dst: PKIX_BuildChain
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:270,1
    - Dst: PR_Poll
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:279,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:280,1
    - Dst: PKIX_BuildChain
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:283,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:293,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:295,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:299,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:301,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:305,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:308,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:308,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:310,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:310,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:313,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:316,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:322,1
    - Dst: PKIX_BuildResult_GetCertChain
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:322,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:324,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:324,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:326,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:329,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:329,1
    - Dst: PKIX_Cert2ASCII
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:334,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:336,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:339,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:339,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:342,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:345,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:345,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:351,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:354,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:354,1
    - Dst: PKIX_String2ASCII
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:358,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:364,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:364,1
    - Dst: PKIX_String2ASCII
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:368,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:374,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:375,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:381,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:382,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:384,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:385,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:386,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:388,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:389,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:390,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:391,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:392,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:393,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:394,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:395,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:396,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:397,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:398,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:399,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:400,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:401,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:402,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:403,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:404,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:405,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:407,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:408,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:409,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:411,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:413,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c:415,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 169
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 418
    functionName: test_buildchain
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_buildchain.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - createLdapCertStore
    - PKIX_PL_Object_Equals
    - PKIX_List_Create
    - subTest
    - printf
    - endTests
    - PKIX_TEST_EXPECT_NO_ERROR
    - createCert
    - PKIX_PL_Object_IncRef
    - PKIX_Shutdown
    - PKIX_ComCertSelParams_Create
    - PKIX_PL_NssContext_Create
    - PKIX_BuildChain
    - PKIX_PL_Object_ToString
    - PKIX_List_AppendItem
    - PKIX_BuildResult_GetCertChain
    - PR_Poll
    - PKIX_Cert2ASCII
    - PKIX_String2ASCII
    - PKIX_ProcessingParams_SetRevocationCheckers
    - PKIX_TEST_STD_VARS
    - PKIX_ComCertSelParams_SetCertificate
    - PKIX_List_GetLength
    - PKIX_PL_Cert_GetSubjectPublicKey
    - testError
    - PKIX_TEST_DECREF_BC
    - pkix_DefaultRevChecker_Initialize
    - startTests
    - PKIX_ProcessingParams_SetRevocationEnabled
    - PKIX_TEST_RETURN
    - PKIX_PL_String_Create
    - PKIX_CertSelector_SetCommonCertSelectorParams
    - PKIX_ProcessingParams_SetCertStores
    - PKIX_PL_CollectionCertStore_Create
    - PKIX_PL_Free
    - PKIX_TrustAnchor_CreateWithCert
    - printUsage
    - PKIX_CertSelector_Create
    - PORT_Strcmp
    - PKIX_ProcessingParams_Create
    - PKIX_ProcessingParams_SetTargetCertConstraints
    - PKIX_List_GetItem
    linkageType: ''
    returnType: int
    signature: int test_buildchain(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c:26,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c:28,1
    - Dst: createCertChain
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c:33,1
    - Dst: createValidateParams
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c:35,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c:47,1
    - Dst: PKIX_ValidateChain
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c:47,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c:49,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c:49,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c:50,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c:54,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c:55,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c:56,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c:57,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c:58,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 4
    argNames:
    - dirName
    - goodInput
    - diffInput
    - dateAscii
    argTypes:
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 61
    functionName: testPass
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - createCertChain
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_PL_Object_ToString
    - printf
    - createValidateParams
    - PKIX_ValidateChain
    - PKIX_TEST_EXPECT_NO_ERROR
    linkageType: ''
    returnType: void
    signature: void testPass(char *dirName, char *goodInput, char *diffInput, char
      *dateAscii)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c:76,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c:78,1
    - Dst: createCertChain
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c:80,1
    - Dst: createValidateParams
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c:82,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c:94,1
    - Dst: PKIX_ValidateChain
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c:94,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c:98,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c:99,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c:100,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c:101,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c:102,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 4
    argNames:
    - dirName
    - goodInput
    - diffInput
    - dateAscii
    argTypes:
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 105
    functionName: testNameChainingFail
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - createCertChain
    - PKIX_TEST_EXPECT_ERROR
    - subTest
    - PKIX_TEST_STD_VARS
    - createValidateParams
    - PKIX_ValidateChain
    linkageType: ''
    returnType: void
    signature: "void testNameChainingFail(\n    char *dirName,\n    char *goodInput,\n
      \   char *diffInput,\n    char *dateAscii)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c:115,1
    - Dst: createCertChain
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c:117,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c:119,1
    - Dst: createValidateParams
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c:120,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c:132,1
    - Dst: PKIX_ValidateChain
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c:132,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c:136,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c:137,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c:138,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - dirName
    - goodInput
    - diffInput
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 141
    functionName: testDateFail
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - createCertChain
    - PKIX_TEST_EXPECT_ERROR
    - subTest
    - PKIX_TEST_STD_VARS
    - createValidateParams
    - PKIX_ValidateChain
    linkageType: ''
    returnType: void
    signature: void testDateFail(char *dirName, char *goodInput, char *diffInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c:154,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c:156,1
    - Dst: createCertChain
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c:158,1
    - Dst: createValidateParams
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c:160,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c:172,1
    - Dst: PKIX_ValidateChain
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c:172,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c:176,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c:177,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c:178,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 4
    argNames:
    - dirName
    - goodInput
    - diffInput
    - dateAscii
    argTypes:
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 181
    functionName: testSignatureFail
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - createCertChain
    - PKIX_TEST_EXPECT_ERROR
    - subTest
    - PKIX_TEST_STD_VARS
    - createValidateParams
    - PKIX_ValidateChain
    linkageType: ''
    returnType: void
    signature: "void testSignatureFail(\n    char *dirName,\n    char *goodInput,\n
      \   char *diffInput,\n    char *dateAscii)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 187
    functionName: printUsage
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c
    functionUses: 21
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printUsage(char *pName)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c:200,1
    - Dst: startTests
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c:202,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c:204,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c:205,1
    - Dst: printUsage
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c:208,1
    - Dst: testPass
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c:215,1
    - Dst: testNameChainingFail
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c:218,1
    - Dst: testDateFail
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c:219,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c:231,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c:233,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c:235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 189
    functionDepth: 2
    functionLinenumber: 189
    functionLinenumberEnd: 238
    functionName: test_basicchecker
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_basicchecker.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - testDateFail
    - PKIX_TEST_STD_VARS
    - PKIX_Shutdown
    - endTests
    - PKIX_TEST_EXPECT_NO_ERROR
    - printUsage
    - startTests
    - testPass
    - testNameChainingFail
    - PKIX_PL_NssContext_Create
    linkageType: ''
    returnType: int
    signature: int test_basicchecker(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - testname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 29
    functionName: printUsage
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c
    functionUses: 22
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printUsage(char *testname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - numCerts
    argTypes:
    - PKIX_UInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: printUsageMax
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c
    functionUses: 3
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printUsageMax(PKIX_UInt32 numCerts)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:48,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:68,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:68,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:80,1
    - Dst: PKIX_PL_OID_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:80,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:82,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:82,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:86,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:101,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:102,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:106,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 1
    argNames:
    - policyString
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 109
    functionName: policySetParse
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_List_Create
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_List_AppendItem
    - PKIX_PL_OID_Create
    - PKIX_TEST_DECREF_BC
    linkageType: ''
    returnType: PKIX_List
    signature: 'PKIX_List *

      policySetParse(char *policyString)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:132,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:134,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:134,1
    - Dst: PKIX_String2ASCII
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:136,1
    - Dst: PL_strcmp
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:142,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:143,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:144,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:145,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:150,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:152,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:154,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - parent
    - expected
    argTypes:
    - PKIX_PolicyNode*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 155
    functionName: treeToStringHelper
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_String2ASCII
    - PKIX_PL_Object_ToString
    - PKIX_TEST_STD_VARS
    - printf
    - PKIX_PL_Free
    - PKIX_TEST_EXPECT_NO_ERROR
    - PL_strcmp
    - testError
    linkageType: ''
    returnType: void
    signature: void treeToStringHelper(PKIX_PolicyNode *parent, char *expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:165,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:167,1
    - Dst: createCertChain
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:172,1
    - Dst: createValidateParams
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:174,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:186,1
    - Dst: PKIX_ValidateChain
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:186,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:190,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:191,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:192,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 4
    argNames:
    - dirName
    - goodInput
    - diffInput
    - dateAscii
    argTypes:
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 195
    functionName: testPass
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c
    functionUses: 1
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - createCertChain
    - subTest
    - PKIX_TEST_STD_VARS
    - createValidateParams
    - PKIX_ValidateChain
    - PKIX_TEST_EXPECT_NO_ERROR
    linkageType: ''
    returnType: void
    signature: void testPass(char *dirName, char *goodInput, char *diffInput, char
      *dateAscii)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:218,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:220,1
    - Dst: createCertChainPlus
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:228,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:230,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:231,1
    - Dst: PKIX_PL_OID_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:231,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:232,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:232,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:233,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:233,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:234,1
    - Dst: PKIX_List_SetImmutable
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:234,1
    - Dst: createValidateParams
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:236,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:248,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:249,1
    - Dst: PKIX_ValidateChain
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:249,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:253,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:255,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:256,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:257,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:258,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:259,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 1
    argNames:
    - dirName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 262
    functionName: testNistTest1
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_List_SetImmutable
    - PKIX_List_Create
    - subTest
    - PKIX_TEST_STD_VARS
    - createValidateParams
    - PKIX_ValidateChain
    - PKIX_PL_Free
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_List_AppendItem
    - PKIX_PL_OID_Create
    - createCertChainPlus
    linkageType: ''
    returnType: void
    signature: void testNistTest1(char *dirName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:285,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:287,1
    - Dst: createCertChainPlus
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:295,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:297,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:298,1
    - Dst: PKIX_PL_OID_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:298,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:299,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:299,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:300,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:300,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:301,1
    - Dst: PKIX_List_SetImmutable
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:301,1
    - Dst: createValidateParams
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:303,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:315,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:316,1
    - Dst: PKIX_ValidateChain
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:316,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:320,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:322,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:323,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:324,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:325,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:326,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 1
    argNames:
    - dirName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 329
    functionName: testNistTest2
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_List_SetImmutable
    - PKIX_List_Create
    - subTest
    - PKIX_TEST_STD_VARS
    - createValidateParams
    - PKIX_ValidateChain
    - PKIX_PL_Free
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_List_AppendItem
    - PKIX_PL_OID_Create
    - createCertChainPlus
    linkageType: ''
    returnType: void
    signature: void testNistTest2(char *dirName)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:337,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:338,1
    - Dst: PKIX_ValidateResult_GetPolicyTree
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:338,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:340,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:340,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:343,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:346,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:351,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:352,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:354,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - valResult
    argTypes:
    - PKIX_ValidateResult*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 355
    functionName: printValidPolicyTree
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_PL_Object_ToString
    - PKIX_TEST_STD_VARS
    - printf
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_ValidateResult_GetPolicyTree
    linkageType: ''
    returnType: void
    signature: void printValidPolicyTree(PKIX_ValidateResult *valResult)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:388,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:390,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:391,1
    - Dst: testPass
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:415,1
    - Dst: testNistTest1
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:420,1
    - Dst: testNistTest2
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:422,1
    - Dst: printUsage
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:428,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:433,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:435,1
    - Dst: printUsage
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:438,1
    - Dst: policySetParse
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:443,1
    - Dst: printUsage
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:445,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:451,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:453,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:455,1
    - Dst: printUsageMax
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:465,1
    - Dst: createCertChainPlus
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:480,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:482,1
    - Dst: createValidateParams
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:484,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:497,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:499,1
    - Dst: PKIX_ValidateChain
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:499,1
    - Dst: printValidPolicyTree
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:501,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:504,1
    - Dst: PKIX_ValidateChain
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:505,1
    - Dst: printValidPolicyTree
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:507,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:510,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:513,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:513,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:514,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:518,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:520,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:521,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:522,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:523,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:524,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:525,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:526,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:528,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:530,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c:532,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 93
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 357
    functionDepth: 2
    functionLinenumber: 357
    functionLinenumberEnd: 535
    functionName: test_policychecker
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_policychecker.c
    functionUses: 0
    functionsReached:
    - printValidPolicyTree
    - PKIX_TEST_DECREF_AC
    - subTest
    - printf
    - endTests
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_Shutdown
    - PKIX_PL_NssContext_Create
    - PKIX_PL_Object_ToString
    - createCertChainPlus
    - testPass
    - testNistTest2
    - PKIX_TEST_STD_VARS
    - createValidateParams
    - PKIX_ValidateChain
    - PKIX_TEST_DECREF_BC
    - printUsageMax
    - testNistTest1
    - PKIX_TEST_RETURN
    - PKIX_PL_Free
    - policySetParse
    - printUsage
    - PORT_Strcmp
    linkageType: ''
    returnType: int
    signature: int test_policychecker(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicconstraintschecker.c:21,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicconstraintschecker.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 23
    functionName: printUsage1
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_basicconstraintschecker.c
    functionUses: 3
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printUsage1(char *pName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicconstraintschecker.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - numCerts
    argTypes:
    - PKIX_UInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 30
    functionName: printUsageMax
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_basicconstraintschecker.c
    functionUses: 4
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printUsageMax(PKIX_UInt32 numCerts)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicconstraintschecker.c:50,1
    - Dst: printUsage1
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicconstraintschecker.c:53,1
    - Dst: startTests
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicconstraintschecker.c:57,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicconstraintschecker.c:59,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicconstraintschecker.c:60,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicconstraintschecker.c:63,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicconstraintschecker.c:65,1
    - Dst: printUsage1
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicconstraintschecker.c:68,1
    - Dst: printUsageMax
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicconstraintschecker.c:76,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicconstraintschecker.c:84,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicconstraintschecker.c:86,1
    - Dst: createCertChainPlus
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicconstraintschecker.c:88,1
    - Dst: testErrorUndo
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicconstraintschecker.c:103,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicconstraintschecker.c:107,1
    - Dst: createValidateParams
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicconstraintschecker.c:109,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicconstraintschecker.c:122,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicconstraintschecker.c:125,1
    - Dst: PKIX_ValidateChain
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicconstraintschecker.c:125,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicconstraintschecker.c:127,1
    - Dst: PKIX_ValidateChain
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicconstraintschecker.c:127,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicconstraintschecker.c:132,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicconstraintschecker.c:133,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicconstraintschecker.c:134,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicconstraintschecker.c:135,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicconstraintschecker.c:136,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicconstraintschecker.c:138,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicconstraintschecker.c:140,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix/top/test_basicconstraintschecker.c:142,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 53
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 145
    functionName: test_basicconstraintschecker
    functionSourceFile: /src/nss/cmd/libpkix/pkix/top/test_basicconstraintschecker.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - testErrorUndo
    - PKIX_TEST_RETURN
    - PKIX_TEST_EXPECT_ERROR
    - subTest
    - PKIX_TEST_STD_VARS
    - printUsage1
    - PKIX_Shutdown
    - createValidateParams
    - PKIX_ValidateChain
    - endTests
    - PKIX_TEST_EXPECT_NO_ERROR
    - printUsageMax
    - startTests
    - createCertChainPlus
    - PORT_Strcmp
    - PKIX_PL_NssContext_Create
    linkageType: ''
    returnType: int
    signature: int test_basicconstraintschecker(int argc, char *argv[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_crlselector.c:21,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_crlselector.c:23,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_crlselector.c:25,1
    - Dst: PKIX_CRLSelector_GetMatchCallback
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_crlselector.c:25,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_crlselector.c:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - goodObject
    argTypes:
    - PKIX_CRLSelector*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 34
    functionName: testGetMatchCallback
    functionSourceFile: /src/nss/cmd/libpkix/pkix/crlsel/test_crlselector.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_CRLSelector_GetMatchCallback
    - PKIX_TEST_EXPECT_NO_ERROR
    linkageType: ''
    returnType: void
    signature: void testGetMatchCallback(PKIX_CRLSelector *goodObject)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_crlselector.c:41,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_crlselector.c:43,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_crlselector.c:45,1
    - Dst: PKIX_CRLSelector_GetCRLSelectorContext
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_crlselector.c:45,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_crlselector.c:53,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_crlselector.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - goodObject
    argTypes:
    - PKIX_CRLSelector*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 55
    functionName: testGetCRLSelectorContext
    functionSourceFile: /src/nss/cmd/libpkix/pkix/crlsel/test_crlselector.c
    functionUses: 0
    functionsReached:
    - PKIX_CRLSelector_GetCRLSelectorContext
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_EXPECT_NO_ERROR
    linkageType: ''
    returnType: void
    signature: void testGetCRLSelectorContext(PKIX_CRLSelector *goodObject)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_crlselector.c:65,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_crlselector.c:67,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_crlselector.c:68,1
    - Dst: PKIX_ComCRLSelParams_Create
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_crlselector.c:68,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_crlselector.c:71,1
    - Dst: createDate
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_crlselector.c:73,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_crlselector.c:75,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_crlselector.c:77,1
    - Dst: PKIX_ComCRLSelParams_SetDateAndTime
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_crlselector.c:77,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_crlselector.c:79,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_crlselector.c:81,1
    - Dst: PKIX_CRLSelector_SetCommonCRLSelectorParams
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_crlselector.c:81,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_crlselector.c:84,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_crlselector.c:86,1
    - Dst: PKIX_CRLSelector_GetCommonCRLSelectorParams
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_crlselector.c:86,1
    - Dst: testEqualsHelper
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_crlselector.c:89,1
    - Dst: testHashcodeHelper
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_crlselector.c:94,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_crlselector.c:101,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_crlselector.c:102,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_crlselector.c:103,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_crlselector.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 1
    argNames:
    - goodObject
    argTypes:
    - PKIX_CRLSelector*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 106
    functionName: testCommonCRLSelectorParams
    functionSourceFile: /src/nss/cmd/libpkix/pkix/crlsel/test_crlselector.c
    functionUses: 0
    functionsReached:
    - testEqualsHelper
    - PKIX_CRLSelector_SetCommonCRLSelectorParams
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_ComCRLSelParams_SetDateAndTime
    - testHashcodeHelper
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_ComCRLSelParams_Create
    - PKIX_CRLSelector_GetCommonCRLSelectorParams
    - createDate
    linkageType: ''
    returnType: void
    signature: void testCommonCRLSelectorParams(PKIX_CRLSelector *goodObject)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_crlselector.c:121,1
    - Dst: startTests
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_crlselector.c:123,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_crlselector.c:125,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_crlselector.c:126,1
    - Dst: createDate
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_crlselector.c:128,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_crlselector.c:130,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_crlselector.c:132,1
    - Dst: PKIX_CRLSelector_Create
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_crlselector.c:132,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_crlselector.c:137,1
    - Dst: PKIX_CRLSelector_Create
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_crlselector.c:137,1
    - Dst: testGetMatchCallback
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_crlselector.c:142,1
    - Dst: testGetCRLSelectorContext
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_crlselector.c:144,1
    - Dst: testCommonCRLSelectorParams
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_crlselector.c:146,1
    - Dst: PKIX_TEST_EQ_HASH_TOSTR_DUP
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_crlselector.c:148,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_crlselector.c:157,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_crlselector.c:158,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_crlselector.c:159,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_crlselector.c:161,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_crlselector.c:163,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_crlselector.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 168
    functionName: test_crlselector
    functionSourceFile: /src/nss/cmd/libpkix/pkix/crlsel/test_crlselector.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_TEST_EQ_HASH_TOSTR_DUP
    - subTest
    - PKIX_TEST_STD_VARS
    - testGetMatchCallback
    - testGetCRLSelectorContext
    - PKIX_CRLSelector_Create
    - endTests
    - PKIX_TEST_EXPECT_NO_ERROR
    - createDate
    - PKIX_Shutdown
    - startTests
    - testCommonCRLSelectorParams
    - PKIX_PL_NssContext_Create
    linkageType: ''
    returnType: int
    signature: int test_crlselector(int argc, char *argv[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:38,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:40,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:42,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:44,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:44,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:50,1
    - Dst: PKIX_PL_X500Name_Create
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:50,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:54,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:56,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:56,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:62,1
    - Dst: PKIX_PL_X500Name_Create
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:62,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:66,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:68,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:68,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:74,1
    - Dst: PKIX_PL_X500Name_Create
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:74,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:78,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:78,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:80,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:80,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:84,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:84,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:88,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:91,1
    - Dst: PKIX_ComCRLSelParams_AddIssuerName
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:91,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:93,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:95,1
    - Dst: PKIX_ComCRLSelParams_GetIssuerNames
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:95,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:98,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:100,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:103,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:105,1
    - Dst: PKIX_ComCRLSelParams_SetIssuerNames
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:105,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:107,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:109,1
    - Dst: PKIX_ComCRLSelParams_GetIssuerNames
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:109,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:111,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:111,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:121,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:123,1
    - Dst: PKIX_ComCRLSelParams_AddIssuerName
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:123,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:125,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:126,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:128,1
    - Dst: PKIX_ComCRLSelParams_GetIssuerNames
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:128,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:130,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:130,1
    - Dst: testToStringHelper
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:134,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:139,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:140,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:141,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:142,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:143,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:144,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:145,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:146,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:147,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 48
    argCount: 1
    argNames:
    - goodObject
    argTypes:
    - PKIX_ComCRLSelParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 150
    functionName: testIssuer
    functionSourceFile: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_ComCRLSelParams_SetIssuerNames
    - PL_strlen
    - PKIX_PL_Object_Equals
    - PKIX_PL_String_Create
    - PKIX_List_Create
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_PL_Object_ToString
    - PKIX_ComCRLSelParams_GetIssuerNames
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_List_AppendItem
    - PKIX_TEST_DECREF_BC
    - testToStringHelper
    - PKIX_PL_X500Name_Create
    - PKIX_ComCRLSelParams_AddIssuerName
    linkageType: ''
    returnType: void
    signature: void testIssuer(PKIX_ComCRLSelParams *goodObject)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:162,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:164,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:165,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:171,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:173,1
    - Dst: PKIX_ComCRLSelParams_SetCertificateChecking
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:173,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:175,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:177,1
    - Dst: PKIX_ComCRLSelParams_GetCertificateChecking
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:177,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:179,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:179,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:189,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:190,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:192,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - dataCentralDir
    - goodInput
    - goodObject
    argTypes:
    - char*
    - char*
    - PKIX_ComCRLSelParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 193
    functionName: testCertificateChecking
    functionSourceFile: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_ComCRLSelParams_SetCertificateChecking
    - PKIX_TEST_RETURN
    - PKIX_PL_Object_Equals
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_EXPECT_NO_ERROR
    - createCert
    - PKIX_ComCRLSelParams_GetCertificateChecking
    linkageType: ''
    returnType: void
    signature: "void testCertificateChecking(\n    char *dataCentralDir,\n    char
      *goodInput,\n    PKIX_ComCRLSelParams *goodObject)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:204,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:206,1
    - Dst: createDate
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:207,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:209,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:210,1
    - Dst: PKIX_ComCRLSelParams_SetDateAndTime
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:210,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:212,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:213,1
    - Dst: PKIX_ComCRLSelParams_GetDateAndTime
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:213,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:215,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:215,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:225,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:226,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - goodObject
    argTypes:
    - PKIX_ComCRLSelParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 229
    functionName: testDateAndTime
    functionSourceFile: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_ComCRLSelParams_GetDateAndTime
    - PKIX_PL_Object_Equals
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_ComCRLSelParams_SetDateAndTime
    - PKIX_TEST_EXPECT_NO_ERROR
    - createDate
    linkageType: ''
    returnType: void
    signature: void testDateAndTime(PKIX_ComCRLSelParams *goodObject)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:245,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:247,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:249,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:249,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:251,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:255,1
    - Dst: PKIX_PL_BigInt_Create
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:255,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:257,1
    - Dst: PKIX_ComCRLSelParams_SetMinCRLNumber
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:257,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:259,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:261,1
    - Dst: PKIX_ComCRLSelParams_GetMinCRLNumber
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:261,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:263,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:263,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:271,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:273,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:273,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:275,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:279,1
    - Dst: PKIX_PL_BigInt_Create
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:279,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:281,1
    - Dst: PKIX_ComCRLSelParams_SetMaxCRLNumber
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:281,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:283,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:285,1
    - Dst: PKIX_ComCRLSelParams_GetMaxCRLNumber
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:285,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:287,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:287,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:297,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:298,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:299,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:300,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:301,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:302,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:304,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 31
    argCount: 1
    argNames:
    - goodObject
    argTypes:
    - PKIX_ComCRLSelParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 305
    functionName: testMaxMinCRLNumbers
    functionSourceFile: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c
    functionUses: 0
    functionsReached:
    - PKIX_ComCRLSelParams_GetMinCRLNumber
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PL_strlen
    - PKIX_ComCRLSelParams_SetMaxCRLNumber
    - PKIX_PL_Object_Equals
    - PKIX_PL_String_Create
    - PKIX_PL_BigInt_Create
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_ComCRLSelParams_GetMaxCRLNumber
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_ComCRLSelParams_SetMinCRLNumber
    linkageType: ''
    returnType: void
    signature: void testMaxMinCRLNumbers(PKIX_ComCRLSelParams *goodObject)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:314,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:316,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:317,1
    - Dst: PKIX_PL_Object_Duplicate
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:317,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:321,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:321,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:332,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:333,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - goodObject
    argTypes:
    - PKIX_ComCRLSelParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 334
    functionName: testDuplicate
    functionSourceFile: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_PL_Object_Equals
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_PL_Object_Duplicate
    - PKIX_TEST_EXPECT_NO_ERROR
    linkageType: ''
    returnType: void
    signature: void testDuplicate(PKIX_ComCRLSelParams *goodObject)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 340
    functionName: printUsage
    functionSourceFile: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c
    functionUses: 23
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printUsage(char *pName)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:355,1
    - Dst: startTests
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:357,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:359,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:360,1
    - Dst: printUsage
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:363,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:369,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:371,1
    - Dst: PKIX_ComCRLSelParams_Create
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:371,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:374,1
    - Dst: PKIX_ComCRLSelParams_Create
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:374,1
    - Dst: testIssuer
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:377,1
    - Dst: testCertificateChecking
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:379,1
    - Dst: testDateAndTime
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:381,1
    - Dst: testMaxMinCRLNumbers
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:383,1
    - Dst: testDuplicate
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:385,1
    - Dst: PKIX_TEST_EQ_HASH_TOSTR_DUP
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:387,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:396,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:397,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:399,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:401,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c:403,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 344
    functionDepth: 2
    functionLinenumber: 344
    functionLinenumberEnd: 406
    functionName: test_comcrlselparams
    functionSourceFile: /src/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - testMaxMinCRLNumbers
    - PKIX_TEST_EQ_HASH_TOSTR_DUP
    - subTest
    - PKIX_TEST_STD_VARS
    - testCertificateChecking
    - PKIX_Shutdown
    - endTests
    - PKIX_TEST_EXPECT_NO_ERROR
    - testDateAndTime
    - testIssuer
    - PKIX_ComCRLSelParams_Create
    - printUsage
    - startTests
    - testDuplicate
    - PKIX_PL_NssContext_Create
    linkageType: ''
    returnType: int
    signature: int test_comcrlselparams(int argc, char *argv[])
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/util/test_list2.c:43,1
    - Dst: startTests
      Src: /src/nss/cmd/libpkix/pkix/util/test_list2.c:45,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list2.c:47,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix/util/test_list2.c:48,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/util/test_list2.c:50,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list2.c:51,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/util/test_list2.c:51,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list2.c:54,1
    - Dst: PKIX_PL_OID_Create
      Src: /src/nss/cmd/libpkix/pkix/util/test_list2.c:54,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list2.c:59,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list2.c:59,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/util/test_list2.c:61,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/util/test_list2.c:64,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list2.c:66,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/cmd/libpkix/pkix/util/test_list2.c:66,1
    - Dst: PKIX_String2ASCII
      Src: /src/nss/cmd/libpkix/pkix/util/test_list2.c:69,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/util/test_list2.c:71,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list2.c:72,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix/util/test_list2.c:72,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/util/test_list2.c:74,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/util/test_list2.c:76,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list2.c:80,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list2.c:80,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list2.c:81,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list2.c:81,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list2.c:84,1
    - Dst: PKIX_PL_Object_Compare
      Src: /src/nss/cmd/libpkix/pkix/util/test_list2.c:84,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list2.c:87,1
    - Dst: PKIX_List_SetItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list2.c:87,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list2.c:88,1
    - Dst: PKIX_List_SetItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list2.c:88,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/util/test_list2.c:92,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/util/test_list2.c:93,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/util/test_list2.c:96,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list2.c:97,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/cmd/libpkix/pkix/util/test_list2.c:97,1
    - Dst: PKIX_String2ASCII
      Src: /src/nss/cmd/libpkix/pkix/util/test_list2.c:100,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix/util/test_list2.c:102,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list2.c:103,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix/util/test_list2.c:103,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/util/test_list2.c:108,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/util/test_list2.c:109,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/pkix/util/test_list2.c:111,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/util/test_list2.c:113,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix/util/test_list2.c:115,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 47
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 118
    functionName: test_list2
    functionSourceFile: /src/nss/cmd/libpkix/pkix/util/test_list2.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_List_Create
    - subTest
    - printf
    - endTests
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_Shutdown
    - PKIX_PL_NssContext_Create
    - PKIX_PL_Object_ToString
    - PKIX_List_AppendItem
    - PKIX_String2ASCII
    - PKIX_TEST_STD_VARS
    - PKIX_PL_Object_Compare
    - PKIX_List_SetItem
    - PKIX_PL_OID_Create
    - PKIX_TEST_DECREF_BC
    - startTests
    - PKIX_TEST_RETURN
    - PKIX_PL_Free
    - PKIX_List_GetItem
    linkageType: ''
    returnType: int
    signature: int test_list2(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:29,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:31,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:31,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:34,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:38,1
    - Dst: PKIX_Error_Create
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:38,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:45,1
    - Dst: PKIX_Error_Create
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:45,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:52,1
    - Dst: PKIX_Error_Create
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:52,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:59,1
    - Dst: PKIX_Error_Create
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:59,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:66,1
    - Dst: PKIX_Error_Create
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:66,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:73,1
    - Dst: PKIX_Error_Create
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:73,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:82,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 7
    argNames:
    - error
    - error2
    - error3
    - error5
    - error6
    - error7
    - infoChar
    argTypes:
    - PKIX_Error**
    - PKIX_Error**
    - PKIX_Error**
    - PKIX_Error**
    - PKIX_Error**
    - PKIX_Error**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 85
    functionName: createErrors
    functionSourceFile: /src/nss/cmd/libpkix/pkix/util/test_error.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PL_strlen
    - PKIX_PL_String_Create
    - PKIX_TEST_STD_VARS
    - PKIX_Error_Create
    - PKIX_TEST_EXPECT_NO_ERROR
    linkageType: ''
    returnType: void
    signature: "void createErrors(\n    PKIX_Error **error,\n    PKIX_Error **error2,\n
      \   PKIX_Error **error3,\n    PKIX_Error **error5,\n    PKIX_Error **error6,\n
      \   PKIX_Error **error7,\n    char *infoChar)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:92,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:94,1
    - Dst: PKIX_Error_GetErrorClass
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:94,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:97,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:100,1
    - Dst: PKIX_Error_GetErrorClass
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:100,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:103,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:106,1
    - Dst: PKIX_Error_GetErrorClass
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:106,1
    - Dst: PKIX_ALLOC_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:106,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:109,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:113,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - error
    - error2
    argTypes:
    - PKIX_Error*
    - PKIX_Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 114
    functionName: testGetErrorClass
    functionSourceFile: /src/nss/cmd/libpkix/pkix/util/test_error.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_TEST_STD_VARS
    - PKIX_Error_GetErrorClass
    - PKIX_ALLOC_ERROR
    - PKIX_TEST_EXPECT_NO_ERROR
    - testError
    linkageType: ''
    returnType: void
    signature: void testGetErrorClass(PKIX_Error *error, PKIX_Error *error2)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:128,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:130,1
    - Dst: PKIX_Error_GetDescription
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:130,1
    - Dst: PKIX_String2ASCII
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:131,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:132,1
    - Dst: PL_strcmp
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:135,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:136,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:138,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:138,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:141,1
    - Dst: PKIX_Error_GetDescription
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:141,1
    - Dst: PKIX_String2ASCII
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:142,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:143,1
    - Dst: PL_strcmp
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:146,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:147,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:149,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:149,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:152,1
    - Dst: PKIX_Error_GetDescription
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:152,1
    - Dst: PKIX_String2ASCII
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:153,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:154,1
    - Dst: PL_strcmp
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:157,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:158,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:160,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:160,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:165,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 5
    argNames:
    - error
    - error2
    - error3
    - descChar
    - descChar2
    argTypes:
    - PKIX_Error*
    - PKIX_Error*
    - PKIX_Error*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 166
    functionName: testGetDescription
    functionSourceFile: /src/nss/cmd/libpkix/pkix/util/test_error.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_String2ASCII
    - PKIX_TEST_STD_VARS
    - PL_strcmp
    - PKIX_PL_Free
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_TEST_DECREF_BC
    - PKIX_Error_GetDescription
    - testError
    linkageType: ''
    returnType: void
    signature: "void testGetDescription(\n    PKIX_Error *error,\n    PKIX_Error *error2,\n
      \   PKIX_Error *error3,\n    char *descChar,\n    char *descChar2)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:177,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:179,1
    - Dst: PKIX_Error_GetCause
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:179,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:181,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:181,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:185,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:187,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:187,1
    - Dst: PKIX_String2ASCII
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:190,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:192,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:192,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:195,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:196,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:198,1
    - Dst: PKIX_Error_GetCause
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:198,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:199,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:199,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:203,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:205,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:209,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 3
    argNames:
    - error
    - error2
    - error3
    argTypes:
    - PKIX_Error*
    - PKIX_Error*
    - PKIX_Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 210
    functionName: testGetCause
    functionSourceFile: /src/nss/cmd/libpkix/pkix/util/test_error.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_PL_Object_Equals
    - PKIX_String2ASCII
    - PKIX_PL_Object_ToString
    - PKIX_TEST_STD_VARS
    - PKIX_PL_Free
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_TEST_DECREF_BC
    - PKIX_Error_GetCause
    - testError
    linkageType: ''
    returnType: void
    signature: void testGetCause(PKIX_Error *error, PKIX_Error *error2, PKIX_Error
      *error3)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:219,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:221,1
    - Dst: PKIX_Error_GetSupplementaryInfo
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:221,1
    - Dst: PKIX_String2ASCII
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:222,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:223,1
    - Dst: PL_strcmp
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:226,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:227,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:229,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:229,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:234,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - error
    - infoChar
    argTypes:
    - PKIX_Error*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 235
    functionName: testGetSupplementaryInfo
    functionSourceFile: /src/nss/cmd/libpkix/pkix/util/test_error.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_String2ASCII
    - PKIX_TEST_STD_VARS
    - PKIX_PL_Free
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_Error_GetSupplementaryInfo
    - PKIX_TEST_DECREF_BC
    - PL_strcmp
    - testError
    linkageType: ''
    returnType: void
    signature: void testGetSupplementaryInfo(PKIX_Error *error, char *infoChar)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:244,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:246,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:246,1
    - Dst: PKIX_ALLOC_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:246,1
    - Dst: PKIX_String2ASCII
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:249,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:251,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:251,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:256,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:262,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 267
    functionName: testPrimitiveError
    functionSourceFile: /src/nss/cmd/libpkix/pkix/util/test_error.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_String2ASCII
    - PKIX_PL_Object_ToString
    - PKIX_TEST_STD_VARS
    - PKIX_PL_Free
    - PKIX_ALLOC_ERROR
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_TEST_DECREF_BC
    linkageType: ''
    returnType: void
    signature: void testPrimitiveError(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:277,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:279,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:279,1
    - Dst: PKIX_String2ASCII
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:282,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:284,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:284,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:288,1
    - Dst: PKIX_Error_GetCause
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:288,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:290,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:294,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:294,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:297,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:301,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - error7
    argTypes:
    - PKIX_Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 302
    functionName: testChaining
    functionSourceFile: /src/nss/cmd/libpkix/pkix/util/test_error.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_String2ASCII
    - PKIX_PL_Object_DecRef
    - PKIX_PL_Object_ToString
    - PKIX_TEST_STD_VARS
    - PKIX_PL_Free
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_TEST_DECREF_BC
    - PKIX_Error_GetCause
    - testError
    linkageType: ''
    returnType: void
    signature: void testChaining(PKIX_Error *error7)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:307,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:309,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - error
    argTypes:
    - PKIX_Error*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 314
    functionName: testDestroy
    functionSourceFile: /src/nss/cmd/libpkix/pkix/util/test_error.c
    functionUses: 6
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_DECREF_BC
    linkageType: ''
    returnType: void
    signature: void testDestroy(PKIX_Error *error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:327,1
    - Dst: startTests
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:329,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:331,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:332,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:334,1
    - Dst: createErrors
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:335,1
    - Dst: PKIX_TEST_EQ_HASH_TOSTR_DUP
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:343,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:350,1
    - Dst: testGetErrorClass
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:351,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:353,1
    - Dst: testGetDescription
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:354,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:356,1
    - Dst: testGetCause
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:357,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:359,1
    - Dst: testGetSupplementaryInfo
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:360,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:362,1
    - Dst: testPrimitiveError
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:363,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:365,1
    - Dst: testChaining
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:366,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:368,1
    - Dst: testDestroy
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:369,1
    - Dst: testDestroy
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:370,1
    - Dst: testDestroy
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:371,1
    - Dst: testDestroy
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:372,1
    - Dst: testDestroy
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:373,1
    - Dst: testDestroy
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:374,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:378,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:380,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix/util/test_error.c:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 316
    functionDepth: 2
    functionLinenumber: 316
    functionLinenumberEnd: 385
    functionName: test_error
    functionSourceFile: /src/nss/cmd/libpkix/pkix/util/test_error.c
    functionUses: 0
    functionsReached:
    - testGetErrorClass
    - testGetDescription
    - testChaining
    - testDestroy
    - PKIX_TEST_RETURN
    - PKIX_TEST_EQ_HASH_TOSTR_DUP
    - subTest
    - PKIX_TEST_STD_VARS
    - testGetSupplementaryInfo
    - endTests
    - PKIX_TEST_EXPECT_NO_ERROR
    - testGetCause
    - PKIX_Shutdown
    - startTests
    - createErrors
    - testPrimitiveError
    - PKIX_PL_NssContext_Create
    linkageType: ''
    returnType: int
    signature: int test_error(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:19,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:21,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:21,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:22,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:22,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - list
    - list2
    argTypes:
    - PKIX_List**
    - PKIX_List**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 27
    functionName: createLists
    functionSourceFile: /src/nss/cmd/libpkix/pkix/util/test_list.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_TEST_STD_VARS
    - PKIX_List_Create
    linkageType: ''
    returnType: void
    signature: void createLists(PKIX_List **list, PKIX_List **list2)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:42,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:44,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:44,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:46,1
    - Dst: PKIX_List_ReverseList
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:46,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:48,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:48,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:50,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:53,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:55,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:55,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:61,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:61,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:67,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:67,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:71,1
    - Dst: PKIX_List_ReverseList
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:71,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:73,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:73,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:75,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:78,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:80,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:80,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:84,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:84,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:88,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:88,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:92,1
    - Dst: PKIX_List_ReverseList
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:92,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:94,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:94,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:96,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:100,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:100,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:105,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:105,1
    - Dst: testEqualsHelper
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:110,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:112,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:113,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:118,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:119,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:121,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:122,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:124,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:125,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:127,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 128
    functionName: testReverseList
    functionSourceFile: /src/nss/cmd/libpkix/pkix/util/test_list.c
    functionUses: 0
    functionsReached:
    - testEqualsHelper
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_PL_String_Create
    - PKIX_List_Create
    - PKIX_TEST_STD_VARS
    - PKIX_List_GetLength
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_List_AppendItem
    - PKIX_TEST_DECREF_BC
    - PKIX_List_GetItem
    - testError
    - PKIX_List_ReverseList
    linkageType: ''
    returnType: void
    signature: void testReverseList(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:140,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:142,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:142,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:144,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:144,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:147,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:150,1
    - Dst: PKIX_List_IsEmpty
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:150,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:152,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:155,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:155,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:161,1
    - Dst: PKIX_List_InsertItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:161,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:163,1
    - Dst: PKIX_List_SetItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:163,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:165,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:165,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:170,1
    - Dst: PKIX_List_DeleteItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:170,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:172,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:172,1
    - Dst: testDuplicateHelper
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:176,1
    - Dst: PKIX_TEST_EQ_HASH_TOSTR_DUP
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:178,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:180,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:180,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:182,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:185,1
    - Dst: PKIX_List_DeleteItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:185,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:187,1
    - Dst: PKIX_List_DeleteItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:187,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:189,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:189,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:191,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:196,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:197,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:198,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 34
    argCount: 1
    argNames:
    - list
    argTypes:
    - PKIX_List*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 199
    functionName: testZeroLengthList
    functionSourceFile: /src/nss/cmd/libpkix/pkix/util/test_list.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_List_InsertItem
    - PKIX_PL_String_Create
    - PKIX_List_Create
    - PKIX_TEST_EXPECT_ERROR
    - PKIX_TEST_EQ_HASH_TOSTR_DUP
    - PKIX_TEST_STD_VARS
    - PKIX_List_GetLength
    - PKIX_List_IsEmpty
    - PKIX_List_DeleteItem
    - PKIX_List_SetItem
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_List_AppendItem
    - testDuplicateHelper
    - testError
    - PKIX_List_GetItem
    linkageType: ''
    returnType: void
    signature: void testZeroLengthList(PKIX_List *list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:205,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:207,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:207,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:210,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - list
    argTypes:
    - PKIX_List*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 216
    functionName: testGetLength
    functionSourceFile: /src/nss/cmd/libpkix/pkix/util/test_list.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_TEST_STD_VARS
    - PKIX_List_GetLength
    - PKIX_TEST_EXPECT_NO_ERROR
    - testError
    linkageType: ''
    returnType: void
    signature: void testGetLength(PKIX_List *list)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:231,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:233,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:233,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:235,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:238,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:238,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:240,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:243,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:243,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:245,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:249,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:249,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:251,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:251,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:253,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:253,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:255,1
    - Dst: PKIX_List_SetItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:255,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:257,1
    - Dst: PKIX_List_SetItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:257,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:259,1
    - Dst: PKIX_List_SetItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:259,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:261,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:261,1
    - Dst: PKIX_String2ASCII
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:263,1
    - Dst: PL_strcmp
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:265,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:266,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:267,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:267,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:270,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:272,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:272,1
    - Dst: PKIX_String2ASCII
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:274,1
    - Dst: PL_strcmp
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:276,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:277,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:278,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:278,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:280,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:282,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:282,1
    - Dst: PKIX_String2ASCII
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:284,1
    - Dst: PL_strcmp
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:286,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:287,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:288,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:288,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:290,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:292,1
    - Dst: PKIX_List_SetItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:292,1
    - Dst: PKIX_String2ASCII
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:293,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:295,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:295,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:298,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:298,1
    - Dst: PKIX_String2ASCII
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:300,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:302,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:302,1
    - Dst: PKIX_String2ASCII
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:305,1
    - Dst: PL_strcmp
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:307,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:308,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:309,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:309,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:311,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:315,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 55
    argCount: 7
    argNames:
    - list
    - testItemString
    - testItemString2
    - testItemString3
    - testItem
    - testItem2
    - testItem3
    argTypes:
    - PKIX_List*
    - char*
    - char*
    - char*
    - PKIX_PL_String**
    - PKIX_PL_String**
    - PKIX_PL_String**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 316
    functionName: testGetSetItem
    functionSourceFile: /src/nss/cmd/libpkix/pkix/util/test_list.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - PL_strlen
    - PKIX_PL_String_Create
    - PKIX_String2ASCII
    - PKIX_TEST_STD_VARS
    - PKIX_PL_Free
    - PKIX_List_SetItem
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_List_AppendItem
    - PKIX_TEST_DECREF_BC
    - PL_strcmp
    - testError
    - PKIX_List_GetItem
    linkageType: ''
    returnType: void
    signature: "void testGetSetItem(\n    PKIX_List *list,\n    char *testItemString,\n
      \   char *testItemString2,\n    char *testItemString3,\n    PKIX_PL_String **testItem,\n
      \   PKIX_PL_String **testItem2,\n    PKIX_PL_String **testItem3)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:328,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:330,1
    - Dst: PKIX_List_InsertItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:330,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:332,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:332,1
    - Dst: PKIX_String2ASCII
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:334,1
    - Dst: PL_strcmp
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:336,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:337,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:338,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:338,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:340,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:342,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:342,1
    - Dst: PKIX_String2ASCII
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:346,1
    - Dst: PL_strcmp
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:348,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:349,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:350,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:350,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:353,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:357,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - list
    - testItem
    - testItemString
    argTypes:
    - PKIX_List*
    - PKIX_PL_String*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 358
    functionName: testInsertItem
    functionSourceFile: /src/nss/cmd/libpkix/pkix/util/test_list.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_List_InsertItem
    - PKIX_String2ASCII
    - PKIX_PL_Object_ToString
    - PKIX_TEST_STD_VARS
    - PKIX_PL_Free
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_TEST_DECREF_BC
    - PL_strcmp
    - testError
    - PKIX_List_GetItem
    linkageType: ''
    returnType: void
    signature: "void testInsertItem(\n    PKIX_List *list,\n    PKIX_PL_String *testItem,\n
      \   char *testItemString)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:367,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:369,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:369,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:371,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:371,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:374,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:374,1
    - Dst: PKIX_String2ASCII
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:378,1
    - Dst: PL_strcmp
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:380,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:381,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:382,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:382,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:385,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:389,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - list
    - testItem
    argTypes:
    - PKIX_List*
    - PKIX_PL_String*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 390
    functionName: testAppendItem
    functionSourceFile: /src/nss/cmd/libpkix/pkix/util/test_list.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_String2ASCII
    - PKIX_PL_Object_ToString
    - PKIX_TEST_STD_VARS
    - PKIX_List_GetLength
    - PKIX_PL_Free
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_List_AppendItem
    - PKIX_TEST_DECREF_BC
    - PL_strcmp
    - testError
    linkageType: ''
    returnType: void
    signature: void testAppendItem(PKIX_List *list, PKIX_PL_String *testItem)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:402,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:404,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:404,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:406,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:406,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:410,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:410,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:414,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:414,1
    - Dst: PKIX_String2ASCII
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:418,1
    - Dst: PL_strcmp
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:420,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:421,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:422,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:422,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:424,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:426,1
    - Dst: PKIX_List_InsertItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:426,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:430,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:430,1
    - Dst: PKIX_String2ASCII
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:434,1
    - Dst: PL_strcmp
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:436,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:437,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:438,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:438,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:440,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:444,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 4
    argNames:
    - list
    - list2
    - testItem
    - testItem2
    argTypes:
    - PKIX_List*
    - PKIX_List*
    - PKIX_PL_String*
    - PKIX_PL_String*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 445
    functionName: testNestedLists
    functionSourceFile: /src/nss/cmd/libpkix/pkix/util/test_list.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_List_InsertItem
    - PKIX_String2ASCII
    - PKIX_PL_Object_ToString
    - PKIX_TEST_STD_VARS
    - PKIX_PL_Free
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_List_AppendItem
    - PKIX_TEST_DECREF_BC
    - PL_strcmp
    - testError
    linkageType: ''
    returnType: void
    signature: "void testNestedLists(\n    PKIX_List *list,\n    PKIX_List *list2,\n
      \   PKIX_PL_String *testItem,\n    PKIX_PL_String *testItem2)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:457,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:459,1
    - Dst: PKIX_List_DeleteItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:459,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:460,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:460,1
    - Dst: PKIX_String2ASCII
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:464,1
    - Dst: PL_strcmp
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:466,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:467,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:468,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:468,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:470,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:472,1
    - Dst: PKIX_List_DeleteItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:472,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:474,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:474,1
    - Dst: PKIX_String2ASCII
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:478,1
    - Dst: PL_strcmp
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:480,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:481,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:482,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:482,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:484,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:486,1
    - Dst: PKIX_List_DeleteItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:486,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:488,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:488,1
    - Dst: PKIX_String2ASCII
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:492,1
    - Dst: PL_strcmp
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:494,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:495,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:496,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:496,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:498,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:500,1
    - Dst: PKIX_List_DeleteItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:500,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:501,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:501,1
    - Dst: PKIX_String2ASCII
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:504,1
    - Dst: PL_strcmp
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:506,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:507,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:508,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:508,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:510,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:512,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:512,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:515,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:515,1
    - Dst: PKIX_String2ASCII
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:519,1
    - Dst: PL_strcmp
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:521,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:522,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:523,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:523,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:525,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:527,1
    - Dst: PKIX_List_DeleteItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:527,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:528,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:528,1
    - Dst: PKIX_String2ASCII
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:532,1
    - Dst: PL_strcmp
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:534,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:535,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:536,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:536,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:538,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:540,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:540,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:543,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:543,1
    - Dst: PKIX_String2ASCII
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:546,1
    - Dst: PL_strcmp
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:548,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:549,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:550,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:550,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:552,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:554,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:558,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 69
    argCount: 4
    argNames:
    - list
    - list2
    - testItem2
    - testItem3
    argTypes:
    - PKIX_List*
    - PKIX_List*
    - PKIX_PL_String*
    - PKIX_PL_String*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 559
    functionName: testDeleteItem
    functionSourceFile: /src/nss/cmd/libpkix/pkix/util/test_list.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_String2ASCII
    - PKIX_PL_Object_ToString
    - PKIX_TEST_STD_VARS
    - PKIX_List_DeleteItem
    - PKIX_PL_Free
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_List_AppendItem
    - PKIX_TEST_DECREF_BC
    - PL_strcmp
    - testError
    linkageType: ''
    returnType: void
    signature: "void testDeleteItem(\n    PKIX_List *list,\n    PKIX_List *list2,\n
      \   PKIX_PL_String *testItem2,\n    PKIX_PL_String *testItem3)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:575,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:576,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:578,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:578,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:580,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:583,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:583,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:585,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:588,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:588,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:590,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:593,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:593,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:595,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:599,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:599,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:601,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:601,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:603,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:603,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:605,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:605,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:607,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:609,1
    - Dst: pkix_List_Contains
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:609,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:612,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:615,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:615,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:617,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:619,1
    - Dst: pkix_List_Contains
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:619,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:622,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:625,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:626,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:627,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:628,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:629,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:633,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 563
    functionDepth: 1
    functionLinenumber: 563
    functionLinenumberEnd: 634
    functionName: testContains
    functionSourceFile: /src/nss/cmd/libpkix/pkix/util/test_list.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - PL_strlen
    - PKIX_PL_String_Create
    - PKIX_List_Create
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_List_AppendItem
    - PKIX_TEST_DECREF_BC
    - testError
    - pkix_List_Contains
    linkageType: ''
    returnType: void
    signature: void testContains(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:644,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:646,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:646,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:648,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:648,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:650,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:650,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:651,1
    - Dst: PKIX_List_SetItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:651,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:652,1
    - Dst: PKIX_List_SetItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:652,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:653,1
    - Dst: PKIX_List_InsertItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:653,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:655,1
    - Dst: PKIX_List_InsertItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:655,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:657,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:657,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:658,1
    - Dst: PKIX_List_DeleteItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:658,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:659,1
    - Dst: PKIX_List_DeleteItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:659,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:660,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:660,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:662,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:663,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 637
    functionDepth: 1
    functionLinenumber: 637
    functionLinenumberEnd: 668
    functionName: testErrorHandling
    functionSourceFile: /src/nss/cmd/libpkix/pkix/util/test_list.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_List_InsertItem
    - PKIX_List_Create
    - PKIX_TEST_EXPECT_ERROR
    - PKIX_TEST_STD_VARS
    - PKIX_List_GetLength
    - PKIX_List_DeleteItem
    - PKIX_List_SetItem
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_List_AppendItem
    - PKIX_TEST_DECREF_BC
    - PKIX_List_GetItem
    linkageType: ''
    returnType: void
    signature: void testErrorHandling(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:673,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:675,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - list
    argTypes:
    - PKIX_List*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 680
    functionName: testDestroy
    functionSourceFile: /src/nss/cmd/libpkix/pkix/util/test_list.c
    functionUses: 7
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_DECREF_BC
    linkageType: ''
    returnType: void
    signature: void testDestroy(PKIX_List *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:694,1
    - Dst: startTests
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:696,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:698,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:699,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:701,1
    - Dst: createLists
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:702,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:704,1
    - Dst: testReverseList
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:705,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:707,1
    - Dst: testZeroLengthList
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:708,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:710,1
    - Dst: testGetSetItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:711,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:719,1
    - Dst: testGetLength
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:720,1
    - Dst: PKIX_TEST_EQ_HASH_TOSTR_DUP
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:722,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:729,1
    - Dst: testInsertItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:730,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:732,1
    - Dst: testAppendItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:733,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:735,1
    - Dst: testNestedLists
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:736,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:738,1
    - Dst: testDeleteItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:739,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:741,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:742,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:743,1
    - Dst: testContains
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:747,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:750,1
    - Dst: testErrorHandling
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:751,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:753,1
    - Dst: testDestroy
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:754,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:758,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:760,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix/util/test_list.c:762,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 37
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 682
    functionDepth: 2
    functionLinenumber: 682
    functionLinenumberEnd: 765
    functionName: test_list
    functionSourceFile: /src/nss/cmd/libpkix/pkix/util/test_list.c
    functionUses: 0
    functionsReached:
    - testDestroy
    - subTest
    - testAppendItem
    - endTests
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_Shutdown
    - PKIX_PL_NssContext_Create
    - testGetLength
    - testZeroLengthList
    - testNestedLists
    - PKIX_TEST_STD_VARS
    - testInsertItem
    - PKIX_TEST_DECREF_BC
    - startTests
    - testDeleteItem
    - testGetSetItem
    - PKIX_TEST_RETURN
    - testReverseList
    - PKIX_TEST_EQ_HASH_TOSTR_DUP
    - createLists
    - testErrorHandling
    - testContains
    linkageType: ''
    returnType: int
    signature: int test_list(int argc, char *argv[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:38,1
    - Dst: PKIX_String2ASCII
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:40,1
    - Dst: PR_snprintf
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:41,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:43,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:47,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:52,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:52,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 5
    argNames:
    - logger
    - message
    - logLevel
    - logComponent
    - plContext
    argTypes:
    - PKIX_Logger*
    - PKIX_PL_String*
    - PKIX_UInt32
    - PKIX_ERRORCLASS
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 54
    functionName: testLoggerCallback
    functionSourceFile: /src/nss/cmd/libpkix/pkix/util/test_logger.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - PR_snprintf
    - PKIX_String2ASCII
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_PL_Free
    - PKIX_TEST_EXPECT_NO_ERROR
    - testError
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\ntestLoggerCallback(\n    PKIX_Logger *logger,\n    PKIX_PL_String
      *message,\n    PKIX_UInt32 logLevel,\n    PKIX_ERRORCLASS logComponent,\n    void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:68,1
    - Dst: PKIX_String2ASCII
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:70,1
    - Dst: PR_snprintf
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:71,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:73,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:76,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:76,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 5
    argNames:
    - logger
    - message
    - logLevel
    - logComponent
    - plContext
    argTypes:
    - PKIX_Logger*
    - PKIX_PL_String*
    - PKIX_UInt32
    - PKIX_ERRORCLASS
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 78
    functionName: testLoggerCallback2
    functionSourceFile: /src/nss/cmd/libpkix/pkix/util/test_logger.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - PR_snprintf
    - PKIX_String2ASCII
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_PL_Free
    - PKIX_TEST_EXPECT_NO_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\ntestLoggerCallback2(\n    PKIX_Logger *logger,\n    PKIX_PL_String
      *message,\n    PKIX_UInt32 logLevel,\n    PKIX_ERRORCLASS logComponent,\n    void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:85,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:87,1
    - Dst: PKIX_Logger_Create
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:87,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - logger
    - context
    - cb
    argTypes:
    - PKIX_Logger**
    - PKIX_PL_Object*
    - PKIX_Logger_LogCallback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 92
    functionName: createLogger
    functionSourceFile: /src/nss/cmd/libpkix/pkix/util/test_logger.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_TEST_STD_VARS
    - PKIX_Logger_Create
    linkageType: ''
    returnType: void
    signature: "void createLogger(PKIX_Logger **logger,\n             PKIX_PL_Object
      *context,\n             PKIX_Logger_LogCallback cb)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:102,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:104,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:105,1
    - Dst: PKIX_Logger_GetLoggerContext
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:105,1
    - Dst: testEqualsHelper
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:107,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:109,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:110,1
    - Dst: PKIX_Logger_GetLogCallback
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:110,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:113,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:118,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - logger
    - logger2
    argTypes:
    - PKIX_Logger*
    - PKIX_Logger*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 120
    functionName: testContextCallback
    functionSourceFile: /src/nss/cmd/libpkix/pkix/util/test_logger.c
    functionUses: 0
    functionsReached:
    - testEqualsHelper
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_Logger_GetLogCallback
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_Logger_GetLoggerContext
    - PKIX_TEST_EXPECT_NO_ERROR
    - testError
    linkageType: ''
    returnType: void
    signature: void testContextCallback(PKIX_Logger *logger, PKIX_Logger *logger2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:128,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:130,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:131,1
    - Dst: PKIX_Logger_GetLoggingComponent
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:131,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:134,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:137,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:138,1
    - Dst: PKIX_Logger_SetLoggingComponent
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:138,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:140,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:141,1
    - Dst: PKIX_Logger_GetLoggingComponent
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:141,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:144,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - logger
    argTypes:
    - PKIX_Logger*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 150
    functionName: testComponent
    functionSourceFile: /src/nss/cmd/libpkix/pkix/util/test_logger.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_Logger_SetLoggingComponent
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_Logger_GetLoggingComponent
    - testError
    linkageType: ''
    returnType: void
    signature: void testComponent(PKIX_Logger *logger)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:156,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:158,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:159,1
    - Dst: PKIX_Logger_GetMaxLoggingLevel
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:159,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:162,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:165,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:166,1
    - Dst: PKIX_Logger_SetMaxLoggingLevel
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:166,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:168,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:169,1
    - Dst: PKIX_Logger_GetMaxLoggingLevel
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:169,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:172,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:177,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - logger
    argTypes:
    - PKIX_Logger*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 178
    functionName: testMaxLoggingLevel
    functionSourceFile: /src/nss/cmd/libpkix/pkix/util/test_logger.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_Logger_SetMaxLoggingLevel
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_Logger_GetMaxLoggingLevel
    - testError
    linkageType: ''
    returnType: void
    signature: void testMaxLoggingLevel(PKIX_Logger *logger)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:194,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:196,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:197,1
    - Dst: PKIX_GetLoggers
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:197,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:198,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:198,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:200,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:202,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:204,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:204,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:205,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:205,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:207,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:208,1
    - Dst: PKIX_SetLoggers
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:208,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:210,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:211,1
    - Dst: PKIX_Logger_SetLoggingComponent
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:211,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:213,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:214,1
    - Dst: PKIX_Logger_SetMaxLoggingLevel
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:214,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:216,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:217,1
    - Dst: PKIX_AddLogger
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:217,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:219,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:219,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:220,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:220,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:221,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:221,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:223,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:225,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:226,1
    - Dst: PKIX_GetLoggers
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:226,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:227,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:227,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:229,1
    - Dst: testEqualsHelper
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:230,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:235,1
    - Dst: testDuplicateHelper
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:236,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:238,1
    - Dst: testHashcodeHelper
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:239,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:244,1
    - Dst: testToStringHelper
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:245,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:247,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:248,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:249,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:249,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:253,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:254,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 42
    argCount: 2
    argNames:
    - logger
    - logger2
    argTypes:
    - PKIX_Logger*
    - PKIX_Logger*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 256
    functionName: testLogger
    functionSourceFile: /src/nss/cmd/libpkix/pkix/util/test_logger.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_List_Create
    - subTest
    - PKIX_Logger_SetMaxLoggingLevel
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_TEST_EXPECT_ERROR
    - PKIX_AddLogger
    - testToStringHelper
    - PKIX_List_AppendItem
    - PKIX_Logger_SetLoggingComponent
    - PKIX_TEST_STD_VARS
    - PKIX_List_GetLength
    - PKIX_SetLoggers
    - PKIX_TEST_DECREF_BC
    - testEqualsHelper
    - PKIX_TEST_RETURN
    - testHashcodeHelper
    - testDuplicateHelper
    - testError
    - PKIX_GetLoggers
    linkageType: ''
    returnType: void
    signature: void testLogger(PKIX_Logger *logger, PKIX_Logger *logger2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:261,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:263,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - logger
    argTypes:
    - PKIX_Logger*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 268
    functionName: testDestroy
    functionSourceFile: /src/nss/cmd/libpkix/pkix/util/test_logger.c
    functionUses: 8
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_DECREF_BC
    linkageType: ''
    returnType: void
    signature: void testDestroy(PKIX_Logger *logger)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:278,1
    - Dst: startTests
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:280,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:282,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:283,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:285,1
    - Dst: createLogger
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:286,1
    - Dst: createLogger
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:287,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:289,1
    - Dst: testContextCallback
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:290,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:292,1
    - Dst: testComponent
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:293,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:295,1
    - Dst: testMaxLoggingLevel
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:296,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:298,1
    - Dst: testLogger
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:299,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:301,1
    - Dst: testDestroy
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:302,1
    - Dst: testDestroy
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:303,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:307,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:309,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix/util/test_logger.c:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 270
    functionDepth: 2
    functionLinenumber: 270
    functionLinenumberEnd: 314
    functionName: test_logger
    functionSourceFile: /src/nss/cmd/libpkix/pkix/util/test_logger.c
    functionUses: 0
    functionsReached:
    - testContextCallback
    - testDestroy
    - PKIX_TEST_RETURN
    - subTest
    - PKIX_TEST_STD_VARS
    - testMaxLoggingLevel
    - endTests
    - PKIX_TEST_EXPECT_NO_ERROR
    - createLogger
    - testLogger
    - PKIX_Shutdown
    - startTests
    - testComponent
    - PKIX_PL_NssContext_Create
    linkageType: ''
    returnType: int
    signature: int test_logger(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - testName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: startTests
    functionSourceFile: /src/nss/cmd/libpkix/testutil/testutil.c
    functionUses: 31
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void startTests(char *testName)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:65,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:69,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - testName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 73
    functionName: endTests
    functionSourceFile: /src/nss/cmd/libpkix/testutil/testutil.c
    functionUses: 32
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void endTests(char *testName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - subTestName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: subTest
    functionSourceFile: /src/nss/cmd/libpkix/testutil/testutil.c
    functionUses: 121
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void subTest(char *subTestName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 121
    functionName: testErrorUndo
    functionSourceFile: /src/nss/cmd/libpkix/testutil/testutil.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void testErrorUndo(char *msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 146
    functionName: testError
    functionSourceFile: /src/nss/cmd/libpkix/testutil/testutil.c
    functionUses: 43
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void testError(char *msg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_PL_String_GetEncoded
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:175,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - string
    - plContext
    argTypes:
    - PKIX_PL_String*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 191
    functionName: PKIX_String2ASCII
    functionSourceFile: /src/nss/cmd/libpkix/testutil/testutil.c
    functionUses: 18
    functionsReached:
    - PKIX_PL_String_GetEncoded
    linkageType: ''
    returnType: char
    signature: 'char *

      PKIX_String2ASCII(PKIX_PL_String *string, void *plContext)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:219,1
    - Dst: PKIX_PL_String_GetEncoded
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:223,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:232,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - error
    - plContext
    argTypes:
    - PKIX_Error*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 242
    functionName: PKIX_Error2ASCII
    functionSourceFile: /src/nss/cmd/libpkix/testutil/testutil.c
    functionUses: 0
    functionsReached:
    - PKIX_PL_Object_ToString
    - PKIX_PL_String_GetEncoded
    - PKIX_PL_Object_DecRef
    linkageType: ''
    returnType: char
    signature: 'char *

      PKIX_Error2ASCII(PKIX_Error *error, void *plContext)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:268,1
    - Dst: PKIX_PL_String_GetEncoded
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:272,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:277,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - object
    argTypes:
    - PKIX_PL_Object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 287
    functionName: PKIX_Object2ASCII
    functionSourceFile: /src/nss/cmd/libpkix/testutil/testutil.c
    functionUses: 0
    functionsReached:
    - PKIX_PL_Object_ToString
    - PKIX_PL_String_GetEncoded
    - PKIX_PL_Object_DecRef
    linkageType: ''
    returnType: char
    signature: 'char *

      PKIX_Object2ASCII(PKIX_PL_Object *object)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_PL_Cert_GetIssuer
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:317,1
    - Dst: PKIX_Object2ASCII
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:321,1
    - Dst: PKIX_PL_Cert_GetSubject
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:324,1
    - Dst: PKIX_Object2ASCII
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:329,1
    - Dst: PKIX_PL_Malloc
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:332,1
    - Dst: PR_snprintf
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:337,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:349,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:355,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:360,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:364,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 43
    argCount: 1
    argNames:
    - cert
    argTypes:
    - PKIX_PL_Cert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 305
    functionDepth: 2
    functionLinenumber: 305
    functionLinenumberEnd: 373
    functionName: PKIX_Cert2ASCII
    functionSourceFile: /src/nss/cmd/libpkix/testutil/testutil.c
    functionUses: 6
    functionsReached:
    - PR_snprintf
    - PKIX_PL_Cert_GetIssuer
    - PKIX_PL_Cert_GetSubject
    - PKIX_PL_Object_DecRef
    - PKIX_PL_Free
    - PKIX_PL_Malloc
    - PKIX_Object2ASCII
    linkageType: ''
    returnType: char
    signature: 'char *

      PKIX_Cert2ASCII(PKIX_PL_Cert *cert)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:409,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:411,1
    - Dst: PKIX_PL_Object_Hashcode
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:411,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:413,1
    - Dst: PKIX_PL_Object_Hashcode
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:413,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:418,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:419,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:420,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:425,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - goodObject
    - otherObject
    - match
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    - PKIX_Boolean
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 426
    functionName: testHashcodeHelper
    functionSourceFile: /src/nss/cmd/libpkix/testutil/testutil.c
    functionUses: 2
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_TEST_STD_VARS
    - testError
    - printf
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_PL_Object_Hashcode
    linkageType: ''
    returnType: void
    signature: "void testHashcodeHelper(\n    PKIX_PL_Object *goodObject,\n    PKIX_PL_Object
      *otherObject,\n    PKIX_Boolean match,\n    void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:456,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:458,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:458,1
    - Dst: PKIX_String2ASCII
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:460,1
    - Dst: PL_strcmp
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:477,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:478,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:479,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:480,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:485,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:487,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:489,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - goodObject
    - expected
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 448
    functionDepth: 2
    functionLinenumber: 448
    functionLinenumberEnd: 490
    functionName: testToStringHelper
    functionSourceFile: /src/nss/cmd/libpkix/testutil/testutil.c
    functionUses: 7
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_String2ASCII
    - PKIX_PL_Object_ToString
    - PKIX_TEST_STD_VARS
    - printf
    - PKIX_PL_Free
    - PKIX_TEST_EXPECT_NO_ERROR
    - PL_strcmp
    - testError
    linkageType: ''
    returnType: void
    signature: "void testToStringHelper(\n    PKIX_PL_Object *goodObject,\n    char
      *expected,\n    void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:523,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:525,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:525,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:528,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:529,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:530,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:535,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - goodObject
    - otherObject
    - match
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    - PKIX_Boolean
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 514
    functionDepth: 1
    functionLinenumber: 514
    functionLinenumberEnd: 536
    functionName: testEqualsHelper
    functionSourceFile: /src/nss/cmd/libpkix/testutil/testutil.c
    functionUses: 24
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_PL_Object_Equals
    - PKIX_TEST_STD_VARS
    - printf
    - PKIX_TEST_EXPECT_NO_ERROR
    - testError
    linkageType: ''
    returnType: void
    signature: "void testEqualsHelper(\n    PKIX_PL_Object *goodObject,\n    PKIX_PL_Object
      *otherObject,\n    PKIX_Boolean match,\n    void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:559,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:561,1
    - Dst: PKIX_PL_Object_Duplicate
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:561,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:563,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:563,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:566,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:567,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:568,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:573,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/testutil/testutil.c:575,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 553
    functionDepth: 1
    functionLinenumber: 553
    functionLinenumberEnd: 576
    functionName: testDuplicateHelper
    functionSourceFile: /src/nss/cmd/libpkix/testutil/testutil.c
    functionUses: 2
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_PL_Object_Equals
    - PKIX_TEST_STD_VARS
    - PKIX_PL_Object_Duplicate
    - printf
    - PKIX_TEST_EXPECT_NO_ERROR
    - testError
    linkageType: ''
    returnType: void
    signature: void testDuplicateHelper(PKIX_PL_Object *object, void *plContext)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:43,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:45,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:46,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:48,1
    - Dst: PKIX_PL_Malloc
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:48,1
    - Dst: PL_strcpy
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:52,1
    - Dst: PL_strcat
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:53,1
    - Dst: PL_strcat
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:54,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:55,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - dir
    - name
    - plContext
    argTypes:
    - char*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 62
    functionName: catDirName
    functionSourceFile: /src/nss/cmd/libpkix/testutil/testutil_nss.c
    functionUses: 1
    functionsReached:
    - PKIX_TEST_RETURN
    - PL_strlen
    - PKIX_TEST_STD_VARS
    - printf
    - PL_strcat
    - PKIX_TEST_EXPECT_NO_ERROR
    - PL_strcpy
    - PKIX_PL_Malloc
    linkageType: ''
    returnType: char
    signature: 'char *

      catDirName(char *dir, char *name, void *plContext)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:80,1
    - Dst: catDirName
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:84,1
    - Dst: PR_Open
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:85,1
    - Dst: SECU_ReadDERFromFile
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:91,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:96,1
    - Dst: PKIX_PL_ByteArray_Create
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:96,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:98,1
    - Dst: PKIX_PL_Cert_Create
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:98,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:100,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:109,1
    - Dst: PR_Close
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:112,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:116,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:119,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:121,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 3
    argNames:
    - dirName
    - certFileName
    - plContext
    argTypes:
    - char*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 124
    functionName: createCert
    functionSourceFile: /src/nss/cmd/libpkix/testutil/testutil_nss.c
    functionUses: 15
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - SECU_ReadDERFromFile
    - PKIX_TEST_STD_VARS
    - PKIX_PL_Free
    - PKIX_PL_Cert_Create
    - PKIX_TEST_EXPECT_NO_ERROR
    - PR_Open
    - PKIX_PL_ByteArray_Create
    - catDirName
    - PR_Close
    - SECITEM_FreeItem
    linkageType: ''
    returnType: PKIX_PL_Cert
    signature: "PKIX_PL_Cert *\ncreateCert(\n    char *dirName,\n    char *certFileName,\n
      \   void *plContext)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:142,1
    - Dst: catDirName
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:146,1
    - Dst: PR_Open
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:147,1
    - Dst: SECU_ReadDERFromFile
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:153,1
    - Dst: PKIX_PL_ByteArray_Create
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:158,1
    - Dst: PKIX_PL_CRL_Create
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:166,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:172,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:181,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:181,1
    - Dst: PR_Close
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:184,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:188,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:191,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:193,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 3
    argNames:
    - dirName
    - crlFileName
    - plContext
    argTypes:
    - char*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 196
    functionName: createCRL
    functionSourceFile: /src/nss/cmd/libpkix/testutil/testutil_nss.c
    functionUses: 1
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - SECU_ReadDERFromFile
    - PKIX_TEST_STD_VARS
    - PKIX_PL_Free
    - PKIX_PL_ByteArray_Create
    - PR_Open
    - PKIX_TEST_EXPECT_NO_ERROR
    - catDirName
    - PR_Close
    - PKIX_PL_CRL_Create
    - SECITEM_FreeItem
    linkageType: ''
    returnType: PKIX_PL_CRL
    signature: "PKIX_PL_CRL *\ncreateCRL(\n    char *dirName,\n    char *crlFileName,\n
      \   void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:211,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:213,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:216,1
    - Dst: PKIX_TrustAnchor_CreateWithCert
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:216,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:218,1
    - Dst: PKIX_PL_Cert_GetSubject
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:218,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:224,1
    - Dst: PKIX_PL_Cert_GetSubjectPublicKey
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:224,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:226,1
    - Dst: PKIX_PL_Cert_GetNameConstraints
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:226,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:228,1
    - Dst: PKIX_TrustAnchor_CreateWithNameKeyPair
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:228,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:234,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:237,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:238,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:239,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:240,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:242,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 4
    argNames:
    - dirName
    - certFileName
    - useCert
    - plContext
    argTypes:
    - char*
    - char*
    - PKIX_Boolean
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 245
    functionName: createTrustAnchor
    functionSourceFile: /src/nss/cmd/libpkix/testutil/testutil_nss.c
    functionUses: 1
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_PL_Cert_GetSubject
    - PKIX_TEST_STD_VARS
    - PKIX_PL_Cert_GetSubjectPublicKey
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_TrustAnchor_CreateWithCert
    - createCert
    - PKIX_PL_Cert_GetNameConstraints
    - PKIX_TrustAnchor_CreateWithNameKeyPair
    linkageType: ''
    returnType: PKIX_TrustAnchor
    signature: "PKIX_TrustAnchor *\ncreateTrustAnchor(\n    char *dirName,\n    char
      *certFileName,\n    PKIX_Boolean useCert,\n    void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:258,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:260,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:260,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:262,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:264,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:264,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:267,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:269,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:269,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:272,1
    - Dst: PKIX_List_SetImmutable
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:272,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:277,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:280,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:281,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:283,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 4
    argNames:
    - dirName
    - firstCertFileName
    - secondCertFileName
    - plContext
    argTypes:
    - char*
    - char*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 286
    functionName: createCertChain
    functionSourceFile: /src/nss/cmd/libpkix/testutil/testutil_nss.c
    functionUses: 6
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_List_SetImmutable
    - PKIX_List_Create
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_List_AppendItem
    - createCert
    linkageType: ''
    returnType: PKIX_List
    signature: "PKIX_List *\ncreateCertChain(\n    char *dirName,\n    char *firstCertFileName,\n
      \   char *secondCertFileName,\n    void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:299,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:301,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:301,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:305,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:309,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:313,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:313,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:318,1
    - Dst: PKIX_List_SetImmutable
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:318,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:323,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:327,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:330,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 5
    argNames:
    - dirName
    - certNames
    - certs
    - numCerts
    - plContext
    argTypes:
    - char*
    - char*[]
    - PKIX_PL_Cert*[]
    - PKIX_UInt32
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 333
    functionName: createCertChainPlus
    functionSourceFile: /src/nss/cmd/libpkix/testutil/testutil_nss.c
    functionUses: 7
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_List_SetImmutable
    - PKIX_List_Create
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_EXPECT_NO_ERROR
    - createCert
    - PKIX_TEST_DECREF_BC
    - PKIX_List_AppendItem
    linkageType: ''
    returnType: PKIX_List
    signature: "PKIX_List *\ncreateCertChainPlus(\n    char *dirName,\n    char *certNames[],\n
      \   PKIX_PL_Cert *certs[],\n    PKIX_UInt32 numCerts,\n    void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:343,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:345,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:345,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:347,1
    - Dst: PKIX_PL_Date_Create_UTCTime
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:347,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:351,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - asciiDate
    - plContext
    argTypes:
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 356
    functionName: createDate
    functionSourceFile: /src/nss/cmd/libpkix/testutil/testutil_nss.c
    functionUses: 7
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_PL_String_Create
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_PL_Date_Create_UTCTime
    linkageType: ''
    returnType: PKIX_PL_Date
    signature: "PKIX_PL_Date *\ncreateDate(\n    char *asciiDate,\n    void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:376,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:378,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:378,1
    - Dst: createTrustAnchor
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:380,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:382,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:382,1
    - Dst: createTrustAnchor
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:388,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:390,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:390,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:395,1
    - Dst: PKIX_ProcessingParams_Create
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:395,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:398,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:398,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:404,1
    - Dst: PKIX_PL_Date_Create_UTCTime
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:404,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:406,1
    - Dst: PKIX_ProcessingParams_SetDate
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:406,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:409,1
    - Dst: PKIX_ProcessingParams_SetInitialPolicies
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:409,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:411,1
    - Dst: PKIX_ProcessingParams_SetRevocationEnabled
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:411,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:416,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:419,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:420,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:421,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:422,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:423,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:425,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 7
    argNames:
    - dirName
    - firstAnchorFileName
    - secondAnchorFileName
    - dateAscii
    - initialPolicies
    - isCrlEnabled
    - plContext
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - PKIX_List*
    - PKIX_Boolean
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 358
    functionDepth: 2
    functionLinenumber: 358
    functionLinenumberEnd: 428
    functionName: createProcessingParams
    functionSourceFile: /src/nss/cmd/libpkix/testutil/testutil_nss.c
    functionUses: 1
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_PL_String_Create
    - PKIX_List_Create
    - PKIX_TEST_STD_VARS
    - createTrustAnchor
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_List_AppendItem
    - PKIX_ProcessingParams_SetDate
    - PKIX_ProcessingParams_SetInitialPolicies
    - PKIX_ProcessingParams_Create
    - PKIX_ProcessingParams_SetRevocationEnabled
    - PKIX_PL_Date_Create_UTCTime
    linkageType: ''
    returnType: PKIX_ProcessingParams
    signature: "PKIX_ProcessingParams *\ncreateProcessingParams(\n    char *dirName,\n
      \   char *firstAnchorFileName,\n    char *secondAnchorFileName,\n    char *dateAscii,\n
      \   PKIX_List *initialPolicies, /* List of PKIX_PL_OID */\n    PKIX_Boolean
      isCrlEnabled,\n    void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:448,1
    - Dst: createProcessingParams
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:451,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:459,1
    - Dst: PKIX_ProcessingParams_SetInitialPolicies
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:459,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:461,1
    - Dst: PKIX_ProcessingParams_SetPolicyMappingInhibited
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:461,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:463,1
    - Dst: PKIX_ProcessingParams_SetAnyPolicyInhibited
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:463,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:465,1
    - Dst: PKIX_ProcessingParams_SetExplicitPolicyRequired
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:465,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:467,1
    - Dst: PKIX_ValidateParams_Create
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:467,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:472,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:475,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:477,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 11
    argNames:
    - dirName
    - firstAnchorFileName
    - secondAnchorFileName
    - dateAscii
    - initialPolicies
    - initialPolicyMappingInhibit
    - initialAnyPolicyInhibit
    - initialExplicitPolicy
    - isCrlEnabled
    - chain
    - plContext
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - PKIX_List*
    - PKIX_Boolean
    - PKIX_Boolean
    - PKIX_Boolean
    - PKIX_Boolean
    - PKIX_List*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 430
    functionDepth: 3
    functionLinenumber: 430
    functionLinenumberEnd: 480
    functionName: createValidateParams
    functionSourceFile: /src/nss/cmd/libpkix/testutil/testutil_nss.c
    functionUses: 15
    functionsReached:
    - PKIX_ValidateParams_Create
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_TEST_STD_VARS
    - createProcessingParams
    - PKIX_ProcessingParams_SetExplicitPolicyRequired
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_ProcessingParams_SetAnyPolicyInhibited
    - PKIX_ProcessingParams_SetInitialPolicies
    - PKIX_ProcessingParams_SetPolicyMappingInhibited
    linkageType: ''
    returnType: PKIX_ValidateParams
    signature: "PKIX_ValidateParams *\ncreateValidateParams(\n    char *dirName,\n
      \   char *firstAnchorFileName,\n    char *secondAnchorFileName,\n    char *dateAscii,\n
      \   PKIX_List *initialPolicies, /* List of PKIX_PL_OID */\n    PKIX_Boolean
      initialPolicyMappingInhibit,\n    PKIX_Boolean initialAnyPolicyInhibit,\n    PKIX_Boolean
      initialExplicitPolicy,\n    PKIX_Boolean isCrlEnabled,\n    PKIX_List *chain,\n
      \   void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:495,1
    - Dst: createTrustAnchor
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:497,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:498,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:500,1
    - Dst: PKIX_PL_Cert_GetSubjectPublicKey
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:500,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:502,1
    - Dst: pkix_ValidateResult_Create
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:502,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:507,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:510,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:511,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:512,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:514,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 4
    argNames:
    - dirName
    - anchorFileName
    - pubKeyCertFileName
    - plContext
    argTypes:
    - char*
    - char*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 482
    functionDepth: 2
    functionLinenumber: 482
    functionLinenumberEnd: 517
    functionName: createValidateResult
    functionSourceFile: /src/nss/cmd/libpkix/testutil/testutil_nss.c
    functionUses: 1
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - pkix_ValidateResult_Create
    - PKIX_TEST_STD_VARS
    - createTrustAnchor
    - PKIX_PL_Cert_GetSubjectPublicKey
    - PKIX_TEST_EXPECT_NO_ERROR
    - createCert
    linkageType: ''
    returnType: PKIX_ValidateResult
    signature: "PKIX_ValidateResult *\ncreateValidateResult(\n    char *dirName,\n
      \   char *anchorFileName,\n    char *pubKeyCertFileName,\n    void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:529,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:531,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:531,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:533,1
    - Dst: PKIX_PL_GeneralName_Create
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:533,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:537,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - nameType
    - asciiName
    - plContext
    argTypes:
    - PKIX_UInt32
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 542
    functionName: createGeneralName
    functionSourceFile: /src/nss/cmd/libpkix/testutil/testutil_nss.c
    functionUses: 5
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_PL_String_Create
    - PKIX_PL_GeneralName_Create
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_EXPECT_NO_ERROR
    linkageType: ''
    returnType: PKIX_PL_GeneralName
    signature: "PKIX_PL_GeneralName *\ncreateGeneralName(\n    PKIX_UInt32 nameType,\n
      \   char *asciiName,\n    void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:557,1
    - Dst: createValidateResult
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:559,1
    - Dst: createCertChain
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:560,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:565,1
    - Dst: pkix_BuildResult_Create
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:565,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:570,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:573,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:574,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/testutil/testutil_nss.c:576,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 6
    argNames:
    - dirName
    - anchorFileName
    - pubKeyCertFileName
    - firstChainCertFileName
    - secondChainCertFileName
    - plContext
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 544
    functionDepth: 3
    functionLinenumber: 544
    functionLinenumberEnd: 579
    functionName: createBuildResult
    functionSourceFile: /src/nss/cmd/libpkix/testutil/testutil_nss.c
    functionUses: 1
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - createCertChain
    - PKIX_TEST_STD_VARS
    - createValidateResult
    - pkix_BuildResult_Create
    - PKIX_TEST_EXPECT_NO_ERROR
    linkageType: ''
    returnType: PKIX_BuildResult
    signature: "PKIX_BuildResult *\ncreateBuildResult(\n    char *dirName,\n    char
      *anchorFileName,\n    char *pubKeyCertFileName,\n    char *firstChainCertFileName,\n
      \   char *secondChainCertFileName,\n    void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: PKIX_TEST_STD_VARS
    functionSourceFile: /src/nss/cmd/libpkix/testutil/testutil.h
    functionUses: 183
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_TEST_STD_VARS()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 73
    functionName: PKIX_TEST_EXPECT_NO_ERROR
    functionSourceFile: /src/nss/cmd/libpkix/testutil/testutil.h
    functionUses: 170
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_TEST_EXPECT_NO_ERROR(func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 95
    functionName: PKIX_TEST_EXPECT_ERROR
    functionSourceFile: /src/nss/cmd/libpkix/testutil/testutil.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_TEST_EXPECT_ERROR(func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 111
    functionName: PKIX_TEST_DECREF_BC
    functionSourceFile: /src/nss/cmd/libpkix/testutil/testutil.h
    functionUses: 65
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_TEST_DECREF_BC(obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 134
    functionName: PKIX_TEST_DECREF_AC
    functionSourceFile: /src/nss/cmd/libpkix/testutil/testutil.h
    functionUses: 131
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_TEST_DECREF_AC(obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 165
    functionName: PKIX_TEST_RETURN
    functionSourceFile: /src/nss/cmd/libpkix/testutil/testutil.h
    functionUses: 181
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_TEST_RETURN()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - goodObj
    - ','
    - equalObj
    - ','
    - diffObj
    - ','
    - expAscii
    - ','
    - type
    - ','
    - checkDuplicate
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 216
    functionName: PKIX_TEST_EQ_HASH_TOSTR_DUP
    functionSourceFile: /src/nss/cmd/libpkix/testutil/testutil.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "PKIX_TEST_EQ_HASH_TOSTR_DUP(goodObj, equalObj, diffObj,        \\\n
      \                                   expAscii, type, checkDuplicate)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 231
    functionName: PKIX_TEST_ABORT_ON_NULL
    functionSourceFile: /src/nss/cmd/libpkix/testutil/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_TEST_ABORT_ON_NULL(obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - arena
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 234
    functionName: PKIX_TEST_ARENAS_ARG
    functionSourceFile: /src/nss/cmd/libpkix/testutil/testutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_TEST_ARENAS_ARG(arena)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/libpkix/pkixutil/pkixutil.c:171,1
    - Dst: fprintf
      Src: /src/nss/cmd/libpkix/pkixutil/pkixutil.c:172,1
    - Dst: fprintf
      Src: /src/nss/cmd/libpkix/pkixutil/pkixutil.c:175,1
    - Dst: fprintf
      Src: /src/nss/cmd/libpkix/pkixutil/pkixutil.c:177,1
    - Dst: fprintf
      Src: /src/nss/cmd/libpkix/pkixutil/pkixutil.c:180,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - cmdName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 181
    functionName: printUsage
    functionSourceFile: /src/nss/cmd/libpkix/pkixutil/pkixutil.c
    functionUses: 24
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void printUsage(char *cmdName)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkixutil/pkixutil.c:201,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/libpkix/pkixutil/pkixutil.c:207,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkixutil/pkixutil.c:214,1
    - Dst: PORT_ZNewArray
      Src: /src/nss/cmd/libpkix/pkixutil/pkixutil.c:218,1
    - Dst: PL_CreateOptState
      Src: /src/nss/cmd/libpkix/pkixutil/pkixutil.c:227,1
    - Dst: PL_GetNextOpt
      Src: /src/nss/cmd/libpkix/pkixutil/pkixutil.c:228,1
    - Dst: PL_DestroyOptState
      Src: /src/nss/cmd/libpkix/pkixutil/pkixutil.c:240,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 6
    argNames:
    - argc
    - argv
    - ptestFn
    - pdbPath
    - pargc
    - pargv
    argTypes:
    - int
    - char**
    - mainTestFn*
    - char**
    - int*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 248
    functionName: getTestArguments
    functionSourceFile: /src/nss/cmd/libpkix/pkixutil/pkixutil.c
    functionUses: 0
    functionsReached:
    - PORT_ZNewArray
    - PL_GetNextOpt
    - printf
    - PL_DestroyOptState
    - PORT_Strcmp
    - PL_CreateOptState
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus getTestArguments(int argc,\n                 char **argv,\n
      \                mainTestFn *ptestFn,\n                 char **pdbPath,\n                 int
      *pargc,\n                 char ***pargv)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PR_Init
      Src: /src/nss/cmd/libpkix/pkixutil/pkixutil.c:259,1
    - Dst: PORT_Strlen
      Src: /src/nss/cmd/libpkix/pkixutil/pkixutil.c:262,1
    - Dst: NSS_Init
      Src: /src/nss/cmd/libpkix/pkixutil/pkixutil.c:263,1
    - Dst: NSS_NoDB_Init
      Src: /src/nss/cmd/libpkix/pkixutil/pkixutil.c:266,1
    - Dst: fnPointer
      Src: /src/nss/cmd/libpkix/pkixutil/pkixutil.c:269,1
    - Dst: NSS_Shutdown
      Src: /src/nss/cmd/libpkix/pkixutil/pkixutil.c:271,1
    - Dst: exit
      Src: /src/nss/cmd/libpkix/pkixutil/pkixutil.c:272,1
    - Dst: PR_Cleanup
      Src: /src/nss/cmd/libpkix/pkixutil/pkixutil.c:274,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - fnPointer
    - argc
    - argv
    - dbPath
    argTypes:
    - mainTestFn
    - int
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 276
    functionName: runCmd
    functionSourceFile: /src/nss/cmd/libpkix/pkixutil/pkixutil.c
    functionUses: 0
    functionsReached:
    - NSS_NoDB_Init
    - PR_Cleanup
    - NSS_Init
    - PORT_Strlen
    - PR_Init
    - exit
    - NSS_Shutdown
    - fnPointer
    linkageType: ''
    returnType: int
    signature: "int runCmd(mainTestFn fnPointer,\n       int argc,\n       char **argv,\n
      \      char *dbPath)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getTestArguments
      Src: /src/nss/cmd/libpkix/pkixutil/pkixutil.c:287,1
    - Dst: printUsage
      Src: /src/nss/cmd/libpkix/pkixutil/pkixutil.c:290,1
    - Dst: runCmd
      Src: /src/nss/cmd/libpkix/pkixutil/pkixutil.c:294,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/libpkix/pkixutil/pkixutil.c:296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 278
    functionDepth: 2
    functionLinenumber: 278
    functionLinenumberEnd: 299
    functionName: main
    functionSourceFile: /src/nss/cmd/libpkix/pkixutil/pkixutil.c
    functionUses: 2
    functionsReached:
    - PORT_Free
    - getTestArguments
    - runCmd
    - printUsage
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_Now
      Src: /src/nss/cmd/libpkix/perf/nss_threads.c:42,1
    - Dst: PR_IntervalNow
      Src: /src/nss/cmd/libpkix/perf/nss_threads.c:43,1
    - Dst: PR_ASSERT
      Src: /src/nss/cmd/libpkix/perf/nss_threads.c:45,1
    - Dst: CERT_VerifyCertificate
      Src: /src/nss/cmd/libpkix/perf/nss_threads.c:50,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/cmd/libpkix/perf/nss_threads.c:50,1
    - Dst: fprintf
      Src: /src/nss/cmd/libpkix/perf/nss_threads.c:59,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/libpkix/perf/nss_threads.c:60,1
    - Dst: PR_IntervalNow
      Src: /src/nss/cmd/libpkix/perf/nss_threads.c:64,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 65
    functionName: ThreadEntry
    functionSourceFile: /src/nss/cmd/libpkix/perf/nss_threads.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PR_ASSERT
    - PR_Now
    - fprintf
    - CERT_GetDefaultCertDB
    - PR_IntervalNow
    - CERT_VerifyCertificate
    linkageType: ''
    returnType: void
    signature: void ThreadEntry(void* data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_IntervalNow
      Src: /src/nss/cmd/libpkix/perf/nss_threads.c:82,1
    - Dst: PR_Malloc
      Src: /src/nss/cmd/libpkix/perf/nss_threads.c:83,1
    - Dst: PR_Malloc
      Src: /src/nss/cmd/libpkix/perf/nss_threads.c:84,1
    - Dst: PR_Malloc
      Src: /src/nss/cmd/libpkix/perf/nss_threads.c:86,1
    - Dst: PR_CreateThread
      Src: /src/nss/cmd/libpkix/perf/nss_threads.c:89,1
    - Dst: PR_JoinThread
      Src: /src/nss/cmd/libpkix/perf/nss_threads.c:99,1
    - Dst: PR_Free
      Src: /src/nss/cmd/libpkix/perf/nss_threads.c:101,1
    - Dst: PR_Free
      Src: /src/nss/cmd/libpkix/perf/nss_threads.c:103,1
    - Dst: PR_Free
      Src: /src/nss/cmd/libpkix/perf/nss_threads.c:104,1
    - Dst: PR_IntervalNow
      Src: /src/nss/cmd/libpkix/perf/nss_threads.c:105,1
    - Dst: PR_IntervalNow
      Src: /src/nss/cmd/libpkix/perf/nss_threads.c:107,1
    - Dst: PR_IntervalToMilliseconds
      Src: /src/nss/cmd/libpkix/perf/nss_threads.c:109,1
    - Dst: fprintf
      Src: /src/nss/cmd/libpkix/perf/nss_threads.c:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 3
    argNames:
    - cert
    - duration
    - threads
    argTypes:
    - CERTCertificate*
    - PRIntervalTime
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 113
    functionName: Test
    functionSourceFile: /src/nss/cmd/libpkix/perf/nss_threads.c
    functionUses: 122
    functionsReached:
    - PR_Malloc
    - PR_IntervalToMilliseconds
    - PR_Free
    - fprintf
    - PR_JoinThread
    - PR_CreateThread
    - PR_IntervalNow
    linkageType: ''
    returnType: void
    signature: void Test(CERTCertificate* cert, PRIntervalTime duration, PRUint32
      threads)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/perf/nss_threads.c:118,1
    - Dst: exit
      Src: /src/nss/cmd/libpkix/perf/nss_threads.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - message
    - code
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 120
    functionName: finish
    functionSourceFile: /src/nss/cmd/libpkix/perf/nss_threads.c
    functionUses: 0
    functionsReached:
    - printf
    - exit
    linkageType: ''
    returnType: void
    signature: void finish(char* message, int code)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/perf/nss_threads.c:125,1
    - Dst: finish
      Src: /src/nss/cmd/libpkix/perf/nss_threads.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - progname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 128
    functionName: usage
    functionSourceFile: /src/nss/cmd/libpkix/perf/nss_threads.c
    functionUses: 4
    functionsReached:
    - finish
    - printf
    linkageType: ''
    returnType: void
    signature: void usage(char* progname)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PR_SecondsToInterval
      Src: /src/nss/cmd/libpkix/perf/nss_threads.c:136,1
    - Dst: usage
      Src: /src/nss/cmd/libpkix/perf/nss_threads.c:139,1
    - Dst: atoi
      Src: /src/nss/cmd/libpkix/perf/nss_threads.c:141,1
    - Dst: PR_SecondsToInterval
      Src: /src/nss/cmd/libpkix/perf/nss_threads.c:142,1
    - Dst: atoi
      Src: /src/nss/cmd/libpkix/perf/nss_threads.c:142,1
    - Dst: atoi
      Src: /src/nss/cmd/libpkix/perf/nss_threads.c:144,1
    - Dst: atoi
      Src: /src/nss/cmd/libpkix/perf/nss_threads.c:145,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/cmd/libpkix/perf/nss_threads.c:148,1
    - Dst: PR_ASSERT
      Src: /src/nss/cmd/libpkix/perf/nss_threads.c:149,1
    - Dst: CERT_FindCertByNicknameOrEmailAddr
      Src: /src/nss/cmd/libpkix/perf/nss_threads.c:150,1
    - Dst: finish
      Src: /src/nss/cmd/libpkix/perf/nss_threads.c:152,1
    - Dst: Test
      Src: /src/nss/cmd/libpkix/perf/nss_threads.c:154,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/libpkix/perf/nss_threads.c:156,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 158
    functionName: nss_threads
    functionSourceFile: /src/nss/cmd/libpkix/perf/nss_threads.c
    functionUses: 0
    functionsReached:
    - CERT_FindCertByNicknameOrEmailAddr
    - PR_SecondsToInterval
    - finish
    - Test
    - atoi
    - PR_ASSERT
    - CERT_GetDefaultCertDB
    - CERT_DestroyCertificate
    - usage
    linkageType: ''
    returnType: int
    signature: int nss_threads(int argc, char** argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 47
    functionName: PERF_DECREF
    functionSourceFile: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PERF_DECREF(obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_String2ASCII
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:84,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:85,1
    - Dst: PR_Free
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - logger
    - message
    - logLevel
    - logComponent
    - plContext
    argTypes:
    - PKIX_Logger*
    - PKIX_PL_String*
    - PKIX_UInt32
    - PKIX_ERRORCLASS
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 92
    functionName: loggerCallback
    functionSourceFile: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c
    functionUses: 0
    functionsReached:
    - printf
    - PKIX_String2ASCII
    - PR_Free
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nloggerCallback(\n    PKIX_Logger *logger,\n    PKIX_PL_String
      *message,\n    PKIX_UInt32 logLevel,\n    PKIX_ERRORCLASS logComponent,\n    void
      *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PR_IntervalNow
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:101,1
    - Dst: PR_ASSERT
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:116,1
    - Dst: PKIX_PL_Date_Create_UTCTime
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:126,1
    - Dst: CERT_FindCertByNicknameOrEmailAddr
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:131,1
    - Dst: finish
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:134,1
    - Dst: pkix_pl_Cert_CreateWithNSSCert
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:136,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:138,1
    - Dst: PKIX_ProcessingParams_Create
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:148,1
    - Dst: PKIX_ProcessingParams_SetRevocationEnabled
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:150,1
    - Dst: PKIX_ProcessingParams_SetDate
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:152,1
    - Dst: PKIX_ComCertSelParams_Create
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:156,1
    - Dst: PKIX_ComCertSelParams_SetCertificate
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:158,1
    - Dst: PKIX_CertSelector_Create
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:160,1
    - Dst: PKIX_CertSelector_SetCommonCertSelectorParams
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:162,1
    - Dst: PKIX_ProcessingParams_SetTargetCertConstraints
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:164,1
    - Dst: PKIX_PL_Pk11CertStore_Create
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:166,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:168,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:169,1
    - Dst: PKIX_ProcessingParams_SetCertStores
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:170,1
    - Dst: PKIX_BuildChain
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:172,1
    - Dst: fprintf
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:185,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:186,1
    - Dst: PERF_DECREF
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:192,1
    - Dst: PERF_DECREF
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:193,1
    - Dst: PERF_DECREF
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:194,1
    - Dst: PERF_DECREF
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:195,1
    - Dst: PERF_DECREF
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:196,1
    - Dst: PERF_DECREF
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:197,1
    - Dst: PERF_DECREF
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:198,1
    - Dst: PERF_DECREF
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:199,1
    - Dst: PERF_DECREF
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:200,1
    - Dst: PR_IntervalNow
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:202,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 41
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 203
    functionName: ThreadEntry
    functionSourceFile: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c
    functionUses: 0
    functionsReached:
    - PKIX_List_Create
    - fprintf
    - PKIX_ComCertSelParams_Create
    - PKIX_BuildChain
    - PKIX_PL_Date_Create_UTCTime
    - PKIX_List_AppendItem
    - PR_IntervalNow
    - CERT_FindCertByNicknameOrEmailAddr
    - PORT_Assert
    - PKIX_ComCertSelParams_SetCertificate
    - PKIX_ProcessingParams_SetDate
    - PERF_DECREF
    - pkix_pl_Cert_CreateWithNSSCert
    - PKIX_ProcessingParams_SetRevocationEnabled
    - PKIX_PL_Pk11CertStore_Create
    - finish
    - PKIX_CertSelector_SetCommonCertSelectorParams
    - PKIX_ProcessingParams_SetCertStores
    - PR_ASSERT
    - PKIX_CertSelector_Create
    - PKIX_ProcessingParams_Create
    - PKIX_ProcessingParams_SetTargetCertConstraints
    linkageType: ''
    returnType: void
    signature: void ThreadEntry(void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_IntervalNow
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:228,1
    - Dst: PR_Malloc
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:229,1
    - Dst: PR_Malloc
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:230,1
    - Dst: PR_Malloc
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:232,1
    - Dst: PR_CreateThread
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:235,1
    - Dst: PR_JoinThread
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:246,1
    - Dst: PR_Free
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:248,1
    - Dst: PR_Free
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:251,1
    - Dst: PR_Free
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:252,1
    - Dst: PR_IntervalNow
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:253,1
    - Dst: PR_IntervalNow
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:255,1
    - Dst: PR_IntervalToMilliseconds
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:257,1
    - Dst: fprintf
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:260,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 28
    argCount: 5
    argNames:
    - anchor
    - eecertName
    - duration
    - handle
    - threads
    argTypes:
    - CERTCertificate*
    - char*
    - PRIntervalTime
    - CERTCertDBHandle*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 261
    functionName: Test
    functionSourceFile: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c
    functionUses: 123
    functionsReached:
    - PR_Malloc
    - PR_IntervalToMilliseconds
    - PR_Free
    - fprintf
    - PR_JoinThread
    - PR_CreateThread
    - PR_IntervalNow
    linkageType: ''
    returnType: void
    signature: "void Test(\n    CERTCertificate *anchor,\n    char *eecertName,\n
      \   PRIntervalTime duration,\n    CERTCertDBHandle *handle,\n    PRUint32 threads)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:266,1
    - Dst: exit
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - message
    - code
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 268
    functionName: finish
    functionSourceFile: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c
    functionUses: 3
    functionsReached:
    - printf
    - exit
    linkageType: ''
    returnType: void
    signature: void finish(char *message, int code)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:273,1
    - Dst: finish
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - progname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 277
    functionName: usage
    functionSourceFile: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c
    functionUses: 5
    functionsReached:
    - finish
    - printf
    linkageType: ''
    returnType: void
    signature: void usage(char *progname)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PR_SecondsToInterval
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:284,1
    - Dst: usage
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:293,1
    - Dst: atoi
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:295,1
    - Dst: PR_SecondsToInterval
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:296,1
    - Dst: atoi
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:296,1
    - Dst: atoi
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:298,1
    - Dst: atoi
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:299,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:302,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:305,1
    - Dst: PR_ASSERT
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:306,1
    - Dst: PKIX_SetLoggers
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:311,1
    - Dst: PKIX_Logger_Create
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:312,1
    - Dst: PKIX_Logger_SetMaxLoggingLevel
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:313,1
    - Dst: PKIX_AddLogger
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:314,1
    - Dst: Test
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:330,1
    - Dst: PERF_DECREF
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:332,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c:334,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 337
    functionName: libpkix_buildthreads
    functionSourceFile: /src/nss/cmd/libpkix/perf/libpkix_buildthreads.c
    functionUses: 0
    functionsReached:
    - PR_SecondsToInterval
    - PKIX_AddLogger
    - PKIX_SetLoggers
    - PKIX_Logger_SetMaxLoggingLevel
    - atoi
    - PR_ASSERT
    - Test
    - PERF_DECREF
    - CERT_GetDefaultCertDB
    - PKIX_Shutdown
    - usage
    - PKIX_Logger_Create
    - PKIX_PL_NssContext_Create
    linkageType: ''
    returnType: int
    signature: int libpkix_buildthreads(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_nameconstraints.c:23,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_nameconstraints.c:25,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_nameconstraints.c:26,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_nameconstraints.c:28,1
    - Dst: PKIX_PL_Malloc
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_nameconstraints.c:28,1
    - Dst: PL_strcpy
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_nameconstraints.c:33,1
    - Dst: PL_strcat
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_nameconstraints.c:34,1
    - Dst: PL_strcat
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_nameconstraints.c:35,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_nameconstraints.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - platform
    - dir
    - plContext
    argTypes:
    - char*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 42
    functionName: catDirName
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_nameconstraints.c
    functionUses: 3
    functionsReached:
    - PKIX_TEST_RETURN
    - PL_strlen
    - PKIX_TEST_STD_VARS
    - PL_strcat
    - PKIX_TEST_EXPECT_NO_ERROR
    - PL_strcpy
    - PKIX_PL_Malloc
    linkageType: ''
    returnType: char
    signature: 'char *

      catDirName(char *platform, char *dir, void *plContext)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_nameconstraints.c:58,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_nameconstraints.c:60,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_nameconstraints.c:62,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_nameconstraints.c:64,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_nameconstraints.c:66,1
    - Dst: PKIX_PL_Cert_GetNameConstraints
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_nameconstraints.c:66,1
    - Dst: testToStringHelper
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_nameconstraints.c:68,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_nameconstraints.c:72,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_nameconstraints.c:73,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_nameconstraints.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - dataDir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 44
    functionDepth: 3
    functionLinenumber: 44
    functionLinenumberEnd: 76
    functionName: testNameConstraints
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_nameconstraints.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_EXPECT_NO_ERROR
    - createCert
    - testToStringHelper
    - PKIX_PL_Cert_GetNameConstraints
    linkageType: ''
    returnType: void
    signature: void testNameConstraints(char *dataDir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_nameconstraints.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 83
    functionName: printUsage
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_nameconstraints.c
    functionUses: 25
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printUsage(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_nameconstraints.c:98,1
    - Dst: startTests
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_nameconstraints.c:100,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_nameconstraints.c:102,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_nameconstraints.c:103,1
    - Dst: printUsage
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_nameconstraints.c:106,1
    - Dst: catDirName
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_nameconstraints.c:112,1
    - Dst: testNameConstraints
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_nameconstraints.c:114,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_nameconstraints.c:118,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_nameconstraints.c:120,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_nameconstraints.c:122,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_nameconstraints.c:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 127
    functionName: test_nameconstraints
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_nameconstraints.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - testNameConstraints
    - PKIX_TEST_STD_VARS
    - PKIX_Shutdown
    - PKIX_PL_Free
    - endTests
    - PKIX_TEST_EXPECT_NO_ERROR
    - printUsage
    - startTests
    - catDirName
    - PKIX_PL_NssContext_Create
    linkageType: ''
    returnType: int
    signature: int test_nameconstraints(int argc, char *argv[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_x500name.c:23,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_x500name.c:25,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_x500name.c:25,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_x500name.c:28,1
    - Dst: PKIX_PL_X500Name_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_x500name.c:28,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_x500name.c:30,1
    - Dst: PKIX_PL_X500Name_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_x500name.c:30,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_x500name.c:35,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_x500name.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - asciiName
    - expectedToPass
    argTypes:
    - char*
    - PKIX_Boolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 40
    functionName: createX500Name
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_x500name.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_PL_String_Create
    - PKIX_TEST_EXPECT_ERROR
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_PL_X500Name_Create
    linkageType: ''
    returnType: PKIX_PL_X500Name
    signature: 'PKIX_PL_X500Name *

      createX500Name(char *asciiName, PKIX_Boolean expectedToPass)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_x500name.c:52,1
    - Dst: createX500Name
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_x500name.c:53,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_x500name.c:55,1
    - Dst: createX500Name
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_x500name.c:56,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_x500name.c:58,1
    - Dst: createX500Name
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_x500name.c:59,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_x500name.c:61,1
    - Dst: createX500Name
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_x500name.c:62,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_x500name.c:64,1
    - Dst: createX500Name
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_x500name.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 7
    argNames:
    - goodInput
    - diffInput
    - diffInputMatch
    - goodObject
    - equalObject
    - diffObject
    - diffObjectMatch
    argTypes:
    - char*
    - char*
    - char*
    - PKIX_PL_X500Name**
    - PKIX_PL_X500Name**
    - PKIX_PL_X500Name**
    - PKIX_PL_X500Name**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 66
    functionName: createX500Names
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_x500name.c
    functionUses: 0
    functionsReached:
    - createX500Name
    - subTest
    linkageType: ''
    returnType: void
    signature: "void createX500Names(char *goodInput, char *diffInput, char *diffInputMatch,\n
      \               PKIX_PL_X500Name **goodObject,\n                PKIX_PL_X500Name
      **equalObject,\n                PKIX_PL_X500Name **diffObject,\n                PKIX_PL_X500Name
      **diffObjectMatch)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_x500name.c:73,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_x500name.c:75,1
    - Dst: PKIX_PL_X500Name_Match
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_x500name.c:75,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_x500name.c:81,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_x500name.c:82,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_x500name.c:83,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_x500name.c:88,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - goodName
    - otherName
    - match
    argTypes:
    - PKIX_PL_X500Name*
    - PKIX_PL_X500Name*
    - PKIX_Boolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 89
    functionName: testMatchHelper
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_x500name.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_TEST_STD_VARS
    - printf
    - PKIX_PL_X500Name_Match
    - PKIX_TEST_EXPECT_NO_ERROR
    - testError
    linkageType: ''
    returnType: void
    signature: void testMatchHelper(PKIX_PL_X500Name *goodName, PKIX_PL_X500Name *otherName,
      PKIX_Boolean match)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_x500name.c:94,1
    - Dst: testMatchHelper
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_x500name.c:95,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_x500name.c:99,1
    - Dst: testMatchHelper
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_x500name.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - goodObject
    - diffObject
    - diffObjectMatch
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 103
    functionName: testMatch
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_x500name.c
    functionUses: 0
    functionsReached:
    - subTest
    - testMatchHelper
    linkageType: ''
    returnType: void
    signature: void testMatch(void *goodObject, void *diffObject, void *diffObjectMatch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_x500name.c:108,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_x500name.c:110,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_x500name.c:112,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_x500name.c:113,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_x500name.c:114,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_x500name.c:115,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_x500name.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 4
    argNames:
    - goodObject
    - equalObject
    - diffObject
    - diffObjectMatch
    argTypes:
    - void*
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 120
    functionName: testDestroy
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_x500name.c
    functionUses: 9
    functionsReached:
    - PKIX_TEST_RETURN
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_DECREF_BC
    linkageType: ''
    returnType: void
    signature: void testDestroy(void *goodObject, void *equalObject, void *diffObject,
      void *diffObjectMatch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_x500name.c:139,1
    - Dst: startTests
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_x500name.c:141,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_x500name.c:143,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_x500name.c:144,1
    - Dst: createX500Names
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_x500name.c:146,1
    - Dst: PKIX_TEST_EQ_HASH_TOSTR_DUP
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_x500name.c:149,1
    - Dst: testMatch
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_x500name.c:156,1
    - Dst: testDestroy
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_x500name.c:158,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_x500name.c:162,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_x500name.c:164,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_x500name.c:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 122
    functionDepth: 3
    functionLinenumber: 122
    functionLinenumberEnd: 169
    functionName: test_x500name
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_x500name.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - testMatch
    - testDestroy
    - PKIX_TEST_EQ_HASH_TOSTR_DUP
    - PKIX_TEST_STD_VARS
    - endTests
    - PKIX_TEST_EXPECT_NO_ERROR
    - createX500Names
    - PKIX_Shutdown
    - startTests
    - PKIX_PL_NssContext_Create
    linkageType: ''
    returnType: int
    signature: int test_x500name(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_date.c:23,1
    - Dst: createDate
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_date.c:24,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_date.c:26,1
    - Dst: createDate
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_date.c:27,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_date.c:29,1
    - Dst: createDate
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_date.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - goodInput
    - diffInput
    - goodDate
    - equalDate
    - diffDate
    argTypes:
    - char*
    - char*
    - PKIX_PL_Date**
    - PKIX_PL_Date**
    - PKIX_PL_Date**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 16
    functionDepth: 2
    functionLinenumber: 16
    functionLinenumberEnd: 31
    functionName: createDates
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_date.c
    functionUses: 0
    functionsReached:
    - subTest
    - createDate
    linkageType: ''
    returnType: void
    signature: "void createDates(char *goodInput, char *diffInput,\n            PKIX_PL_Date
      **goodDate,\n            PKIX_PL_Date **equalDate,\n            PKIX_PL_Date
      **diffDate)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_date.c:36,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_date.c:38,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_date.c:40,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_date.c:41,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_date.c:42,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_date.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - goodObject
    - equalObject
    - diffObject
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 47
    functionName: testDestroy
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_date.c
    functionUses: 10
    functionsReached:
    - PKIX_TEST_RETURN
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_DECREF_BC
    linkageType: ''
    returnType: void
    signature: void testDestroy(void *goodObject, void *equalObject, void *diffObject)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_date.c:65,1
    - Dst: createDates
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_date.c:67,1
    - Dst: PKIX_TEST_EQ_HASH_TOSTR_DUP
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_date.c:70,1
    - Dst: testDestroy
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_date.c:72,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_date.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - goodInput
    - diffInput
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 49
    functionDepth: 3
    functionLinenumber: 49
    functionLinenumberEnd: 75
    functionName: testDate
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_date.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - testDestroy
    - PKIX_TEST_EQ_HASH_TOSTR_DUP
    - PKIX_TEST_STD_VARS
    - createDates
    linkageType: ''
    returnType: void
    signature: void testDate(char *goodInput, char *diffInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_date.c:86,1
    - Dst: startTests
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_date.c:88,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_date.c:90,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_date.c:91,1
    - Dst: testDate
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_date.c:95,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_date.c:99,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_date.c:101,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_date.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 77
    functionDepth: 4
    functionLinenumber: 77
    functionLinenumberEnd: 106
    functionName: test_date
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_date.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_TEST_STD_VARS
    - PKIX_Shutdown
    - endTests
    - PKIX_TEST_EXPECT_NO_ERROR
    - testDate
    - startTests
    - PKIX_PL_NssContext_Create
    linkageType: ''
    returnType: int
    signature: int test_date(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_generalname.c:23,1
    - Dst: createGeneralName
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_generalname.c:24,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_generalname.c:26,1
    - Dst: createGeneralName
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_generalname.c:27,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_generalname.c:29,1
    - Dst: createGeneralName
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_generalname.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 6
    argNames:
    - nameType
    - goodInput
    - diffInput
    - goodName
    - equalName
    - diffName
    argTypes:
    - PKIX_UInt32
    - char*
    - char*
    - PKIX_PL_GeneralName**
    - PKIX_PL_GeneralName**
    - PKIX_PL_GeneralName**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 16
    functionDepth: 2
    functionLinenumber: 16
    functionLinenumberEnd: 31
    functionName: createGeneralNames
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_generalname.c
    functionUses: 0
    functionsReached:
    - subTest
    - createGeneralName
    linkageType: ''
    returnType: void
    signature: "void createGeneralNames(PKIX_UInt32 nameType, char *goodInput, char
      *diffInput,\n                   PKIX_PL_GeneralName **goodName,\n                   PKIX_PL_GeneralName
      **equalName,\n                   PKIX_PL_GeneralName **diffName)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_generalname.c:36,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_generalname.c:38,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_generalname.c:40,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_generalname.c:41,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_generalname.c:42,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_generalname.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - goodObject
    - equalObject
    - diffObject
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 47
    functionName: testDestroy
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_generalname.c
    functionUses: 11
    functionsReached:
    - PKIX_TEST_RETURN
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_DECREF_BC
    linkageType: ''
    returnType: void
    signature: void testDestroy(void *goodObject, void *equalObject, void *diffObject)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: createGeneralNames
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_generalname.c:57,1
    - Dst: PKIX_TEST_EQ_HASH_TOSTR_DUP
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_generalname.c:60,1
    - Dst: testDestroy
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_generalname.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - nameType
    - goodInput
    - diffInput
    - expectedAscii
    argTypes:
    - PKIX_UInt32
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 49
    functionDepth: 3
    functionLinenumber: 49
    functionLinenumberEnd: 68
    functionName: testNameType
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_generalname.c
    functionUses: 0
    functionsReached:
    - createGeneralNames
    - PKIX_TEST_EQ_HASH_TOSTR_DUP
    - testDestroy
    linkageType: ''
    returnType: void
    signature: void testNameType(PKIX_UInt32 nameType, char *goodInput, char *diffInput,
      char *expectedAscii)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_generalname.c:79,1
    - Dst: startTests
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_generalname.c:81,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_generalname.c:83,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_generalname.c:84,1
    - Dst: testNameType
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_generalname.c:88,1
    - Dst: testNameType
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_generalname.c:92,1
    - Dst: testNameType
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_generalname.c:96,1
    - Dst: testNameType
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_generalname.c:103,1
    - Dst: testNameType
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_generalname.c:107,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_generalname.c:116,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_generalname.c:118,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_generalname.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 70
    functionDepth: 4
    functionLinenumber: 70
    functionLinenumberEnd: 123
    functionName: test_generalname
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_generalname.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_TEST_STD_VARS
    - testNameType
    - endTests
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_Shutdown
    - startTests
    - PKIX_PL_NssContext_Create
    linkageType: ''
    returnType: int
    signature: int test_generalname(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c:33,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c:35,1
    - Dst: createCRL
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c:36,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c:38,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c:39,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c:39,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c:42,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c:46,1
    - Dst: PKIX_PL_BigInt_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c:46,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c:51,1
    - Dst: PKIX_PL_CRL_GetCRLEntryForSerialNumber
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c:51,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c:54,1
    - Dst: PKIX_PL_CRL_GetCRLEntryForSerialNumber
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c:54,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c:57,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c:57,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c:60,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c:64,1
    - Dst: PKIX_PL_BigInt_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c:64,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c:69,1
    - Dst: PKIX_PL_CRL_GetCRLEntryForSerialNumber
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c:69,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c:75,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c:76,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c:77,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c:78,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 6
    argNames:
    - dataDir
    - crlInput
    - pCrl
    - goodObject
    - equalObject
    - diffObject
    argTypes:
    - char*
    - char*
    - PKIX_PL_CRL**
    - PKIX_PL_CRLEntry**
    - PKIX_PL_CRLEntry**
    - PKIX_PL_CRLEntry**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 80
    functionName: createCRLEntries
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PL_strlen
    - PKIX_PL_String_Create
    - createCRL
    - PKIX_PL_BigInt_Create
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_PL_CRL_GetCRLEntryForSerialNumber
    linkageType: ''
    returnType: void
    signature: "void createCRLEntries(\n    char *dataDir,\n    char *crlInput,\n
      \   PKIX_PL_CRL **pCrl,\n    PKIX_PL_CRLEntry **goodObject,\n    PKIX_PL_CRLEntry
      **equalObject,\n    PKIX_PL_CRLEntry **diffObject)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c:89,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c:91,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c:93,1
    - Dst: PKIX_PL_CRLEntry_GetCRLEntryReasonCode
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c:93,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c:97,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c:98,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c:99,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - goodObject
    argTypes:
    - PKIX_PL_CRLEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 105
    functionName: testGetReasonCode
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - subTest
    - PKIX_TEST_STD_VARS
    - printf
    - PKIX_TEST_EXPECT_NO_ERROR
    - testError
    - PKIX_PL_CRLEntry_GetCRLEntryReasonCode
    linkageType: ''
    returnType: void
    signature: "void testGetReasonCode(\n    PKIX_PL_CRLEntry *goodObject)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c:113,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c:115,1
    - Dst: PKIX_PL_CRLEntry_GetCriticalExtensionOIDs
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c:115,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c:117,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c:117,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c:124,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - crlEntry
    argTypes:
    - PKIX_PL_CRLEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 127
    functionName: testCritExtensionsAbsent
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_PL_CRLEntry_GetCriticalExtensionOIDs
    - PKIX_TEST_STD_VARS
    - PKIX_List_GetLength
    - PKIX_TEST_EXPECT_NO_ERROR
    linkageType: ''
    returnType: void
    signature: void testCritExtensionsAbsent(PKIX_PL_CRLEntry *crlEntry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c:132,1
    - Dst: testCritExtensionsAbsent
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - goodObject
    argTypes:
    - PKIX_PL_CRLEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 135
    functionName: testGetCriticalExtensionOIDs
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c
    functionUses: 0
    functionsReached:
    - subTest
    - testCritExtensionsAbsent
    linkageType: ''
    returnType: void
    signature: void testGetCriticalExtensionOIDs(PKIX_PL_CRLEntry *goodObject)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 141
    functionName: printUsage
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c
    functionUses: 26
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printUsage(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c:167,1
    - Dst: startTests
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c:169,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c:171,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c:172,1
    - Dst: printUsage
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c:175,1
    - Dst: createCRLEntries
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c:181,1
    - Dst: PKIX_TEST_EQ_HASH_TOSTR_DUP
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c:183,1
    - Dst: testGetReasonCode
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c:190,1
    - Dst: testGetCriticalExtensionOIDs
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c:192,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c:196,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c:197,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c:198,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c:199,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c:201,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c:203,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c:205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 208
    functionName: test_crlentry
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_TEST_EQ_HASH_TOSTR_DUP
    - testGetCriticalExtensionOIDs
    - PKIX_TEST_STD_VARS
    - PKIX_Shutdown
    - endTests
    - PKIX_TEST_EXPECT_NO_ERROR
    - createCRLEntries
    - printUsage
    - startTests
    - testGetReasonCode
    - PKIX_PL_NssContext_Create
    linkageType: ''
    returnType: int
    signature: int test_crlentry(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:46,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:47,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:49,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:50,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:52,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 6
    argNames:
    - dataCentralDir
    - goodInput
    - diffInput
    - goodObject
    - equalObject
    - diffObject
    argTypes:
    - char*
    - char*
    - char*
    - PKIX_PL_Cert**
    - PKIX_PL_Cert**
    - PKIX_PL_Cert**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 54
    functionName: createCerts
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c
    functionUses: 0
    functionsReached:
    - subTest
    - createCert
    linkageType: ''
    returnType: void
    signature: "void createCerts(\n    char *dataCentralDir,\n    char *goodInput,\n
      \   char *diffInput,\n    PKIX_PL_Cert **goodObject,\n    PKIX_PL_Cert **equalObject,\n
      \   PKIX_PL_Cert **diffObject)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:59,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:60,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:62,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:63,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:65,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:66,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:68,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:69,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:71,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:72,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:74,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:75,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:77,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:78,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:80,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:81,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:83,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:84,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:86,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:87,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:89,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:90,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:92,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:93,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:95,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:96,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:98,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:99,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:101,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:102,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:104,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:105,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:107,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:108,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:110,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:111,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:113,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:114,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:116,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 41
    argCount: 1
    argNames:
    - dataCentralDir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 118
    functionName: createCertsWithSubjectAltNames
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c
    functionUses: 0
    functionsReached:
    - subTest
    - createCert
    linkageType: ''
    returnType: void
    signature: void createCertsWithSubjectAltNames(char *dataCentralDir)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:126,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:128,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:130,1
    - Dst: PKIX_PL_Cert_GetVersion
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:130,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:133,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:134,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:135,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - goodObject
    argTypes:
    - PKIX_PL_Cert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 142
    functionName: testGetVersion
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_PL_Cert_GetVersion
    - subTest
    - PKIX_TEST_STD_VARS
    - printf
    - PKIX_TEST_EXPECT_NO_ERROR
    - testError
    linkageType: ''
    returnType: void
    signature: "void testGetVersion(\n    PKIX_PL_Cert *goodObject)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:155,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:157,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:159,1
    - Dst: PKIX_PL_Cert_GetSerialNumber
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:159,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:161,1
    - Dst: PKIX_PL_Cert_GetSerialNumber
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:161,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:163,1
    - Dst: PKIX_PL_Cert_GetSerialNumber
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:163,1
    - Dst: PKIX_TEST_EQ_HASH_TOSTR_DUP
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:165,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:169,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:170,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:171,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - goodObject
    - equalObject
    - diffObject
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_PL_Cert*
    - PKIX_PL_Cert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 174
    functionName: testGetSerialNumber
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_TEST_EQ_HASH_TOSTR_DUP
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_PL_Cert_GetSerialNumber
    - PKIX_TEST_EXPECT_NO_ERROR
    linkageType: ''
    returnType: void
    signature: "void testGetSerialNumber(\n    PKIX_PL_Cert *goodObject,\n    PKIX_PL_Cert
      *equalObject,\n    PKIX_PL_Cert *diffObject)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:187,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:189,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:191,1
    - Dst: PKIX_PL_Cert_GetSubject
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:191,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:194,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:198,1
    - Dst: PKIX_PL_Cert_GetSubject
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:198,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:201,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:205,1
    - Dst: PKIX_PL_Cert_GetSubject
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:205,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:208,1
    - Dst: PKIX_TEST_EQ_HASH_TOSTR_DUP
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:212,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:221,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:222,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:223,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:225,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 3
    argNames:
    - goodObject
    - equalObject
    - diffObject
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_PL_Cert*
    - PKIX_PL_Cert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 226
    functionName: testGetSubject
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_TEST_EQ_HASH_TOSTR_DUP
    - PKIX_PL_Cert_GetSubject
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_EXPECT_NO_ERROR
    - testError
    linkageType: ''
    returnType: void
    signature: "void testGetSubject(\n    PKIX_PL_Cert *goodObject,\n    PKIX_PL_Cert
      *equalObject,\n    PKIX_PL_Cert *diffObject)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:239,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:241,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:243,1
    - Dst: PKIX_PL_Cert_GetIssuer
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:243,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:245,1
    - Dst: PKIX_PL_Cert_GetIssuer
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:245,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:247,1
    - Dst: PKIX_PL_Cert_GetIssuer
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:247,1
    - Dst: PKIX_TEST_EQ_HASH_TOSTR_DUP
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:249,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:258,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:259,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:260,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - goodObject
    - equalObject
    - diffObject
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_PL_Cert*
    - PKIX_PL_Cert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 263
    functionName: testGetIssuer
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_TEST_EQ_HASH_TOSTR_DUP
    - PKIX_PL_Cert_GetIssuer
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_EXPECT_NO_ERROR
    linkageType: ''
    returnType: void
    signature: "void testGetIssuer(\n    PKIX_PL_Cert *goodObject,\n    PKIX_PL_Cert
      *equalObject,\n    PKIX_PL_Cert *diffObject)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:276,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:278,1
    - Dst: PKIX_PL_Cert_GetSubjectAltNames
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:278,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:280,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:280,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:285,1
    - Dst: PKIX_PL_Cert_GetSubjectAltNames
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:285,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:287,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:287,1
    - Dst: PKIX_TEST_EQ_HASH_TOSTR_DUP
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:292,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:296,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:297,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:298,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:299,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 3
    argNames:
    - goodCert
    - diffCert
    - expectedAscii
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_PL_Cert*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 301
    functionName: testAltNames
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_TEST_EQ_HASH_TOSTR_DUP
    - PKIX_TEST_STD_VARS
    - PKIX_PL_Cert_GetSubjectAltNames
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_List_GetItem
    linkageType: ''
    returnType: void
    signature: "void testAltNames(\n    PKIX_PL_Cert *goodCert,\n    PKIX_PL_Cert
      *diffCert,\n    char *expectedAscii)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:309,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:311,1
    - Dst: PKIX_PL_Cert_GetSubjectAltNames
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:311,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:314,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:315,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:316,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:322,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:323,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - cert
    argTypes:
    - PKIX_PL_Cert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 324
    functionName: testAltNamesNone
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_TEST_STD_VARS
    - PKIX_PL_Cert_GetSubjectAltNames
    - printf
    - PKIX_TEST_EXPECT_NO_ERROR
    - testError
    linkageType: ''
    returnType: void
    signature: void testAltNamesNone(PKIX_PL_Cert *cert)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:362,1
    - Dst: testToStringHelper
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:364,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:368,1
    - Dst: PKIX_PL_Cert_GetSubjectAltNames
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:368,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:370,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:370,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:373,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:374,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:375,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:379,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:379,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:382,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:383,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:384,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:389,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:390,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:391,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:392,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 325
    functionDepth: 3
    functionLinenumber: 325
    functionLinenumberEnd: 393
    functionName: testAltNamesMultiple
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_TEST_STD_VARS
    - PKIX_PL_Cert_GetSubjectAltNames
    - printf
    - testToStringHelper
    - PKIX_TEST_EXPECT_NO_ERROR
    - testError
    - PKIX_List_GetItem
    linkageType: ''
    returnType: void
    signature: void testAltNamesMultiple()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: createCertsWithSubjectAltNames
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:401,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:403,1
    - Dst: testAltNames
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:405,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:407,1
    - Dst: testAltNames
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:409,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:418,1
    - Dst: testAltNames
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:420,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:429,1
    - Dst: testAltNames
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:431,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:433,1
    - Dst: testAltNames
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:435,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:437,1
    - Dst: testAltNames
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:439,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:441,1
    - Dst: testAltNames
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:443,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:445,1
    - Dst: testAltNamesNone
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:446,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:448,1
    - Dst: testAltNamesMultiple
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 1
    argNames:
    - dataCentralDir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 395
    functionDepth: 4
    functionLinenumber: 395
    functionLinenumberEnd: 450
    functionName: testGetSubjectAltNames
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c
    functionUses: 0
    functionsReached:
    - subTest
    - createCertsWithSubjectAltNames
    - testAltNamesNone
    - testAltNames
    - testAltNamesMultiple
    linkageType: ''
    returnType: void
    signature: void testGetSubjectAltNames(char *dataCentralDir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:463,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:465,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:467,1
    - Dst: PKIX_PL_Cert_GetSubjectPublicKey
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:467,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:469,1
    - Dst: PKIX_PL_Cert_GetSubjectPublicKey
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:469,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:471,1
    - Dst: PKIX_PL_Cert_GetSubjectPublicKey
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:471,1
    - Dst: PKIX_TEST_EQ_HASH_TOSTR_DUP
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:473,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:478,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:479,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:480,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - goodObject
    - equalObject
    - diffObject
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_PL_Cert*
    - PKIX_PL_Cert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 452
    functionDepth: 1
    functionLinenumber: 452
    functionLinenumberEnd: 483
    functionName: testGetSubjectPublicKey
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_TEST_EQ_HASH_TOSTR_DUP
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_PL_Cert_GetSubjectPublicKey
    - PKIX_TEST_EXPECT_NO_ERROR
    linkageType: ''
    returnType: void
    signature: "void testGetSubjectPublicKey(\n    PKIX_PL_Cert *goodObject,\n    PKIX_PL_Cert
      *equalObject,\n    PKIX_PL_Cert *diffObject)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:491,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:493,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:495,1
    - Dst: PKIX_PL_Cert_GetSubjectPublicKeyAlgId
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:495,1
    - Dst: testToStringHelper
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:497,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:501,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - goodObject
    argTypes:
    - PKIX_PL_Cert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 485
    functionDepth: 3
    functionLinenumber: 485
    functionLinenumberEnd: 503
    functionName: testGetSubjectPublicKeyAlgId
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_PL_Cert_GetSubjectPublicKeyAlgId
    - testToStringHelper
    - PKIX_TEST_EXPECT_NO_ERROR
    linkageType: ''
    returnType: void
    signature: void testGetSubjectPublicKeyAlgId(PKIX_PL_Cert *goodObject)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:514,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:516,1
    - Dst: PKIX_PL_Cert_GetCriticalExtensionOIDs
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:516,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:518,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:518,1
    - Dst: testToStringHelper
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:519,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:521,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:521,1
    - Dst: testToStringHelper
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:523,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:527,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:528,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:529,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - cert
    argTypes:
    - PKIX_PL_Cert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 505
    functionDepth: 3
    functionLinenumber: 505
    functionLinenumberEnd: 532
    functionName: testCritExtensionsPresent
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c
    functionUses: 0
    functionsReached:
    - PKIX_PL_Cert_GetCriticalExtensionOIDs
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_EXPECT_NO_ERROR
    - testToStringHelper
    - PKIX_List_GetItem
    linkageType: ''
    returnType: void
    signature: void testCritExtensionsPresent(PKIX_PL_Cert *cert)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:540,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:542,1
    - Dst: PKIX_PL_Cert_GetCriticalExtensionOIDs
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:542,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:544,1
    - Dst: PKIX_List_IsEmpty
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:544,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:552,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:553,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - cert
    argTypes:
    - PKIX_PL_Cert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 534
    functionDepth: 1
    functionLinenumber: 534
    functionLinenumberEnd: 554
    functionName: testCritExtensionsAbsent
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c
    functionUses: 1
    functionsReached:
    - PKIX_PL_Cert_GetCriticalExtensionOIDs
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_TEST_STD_VARS
    - PKIX_List_IsEmpty
    - PKIX_TEST_EXPECT_NO_ERROR
    linkageType: ''
    returnType: void
    signature: void testCritExtensionsAbsent(PKIX_PL_Cert *cert)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:563,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:565,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:566,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:568,1
    - Dst: PKIX_PL_Cert_GetCriticalExtensionOIDs
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:568,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:570,1
    - Dst: PKIX_List_IsEmpty
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:570,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:577,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:578,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:580,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - dataCentralDir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 556
    functionDepth: 1
    functionLinenumber: 556
    functionLinenumberEnd: 581
    functionName: testAllExtensionsAbsent
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c
    functionUses: 0
    functionsReached:
    - PKIX_PL_Cert_GetCriticalExtensionOIDs
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_List_IsEmpty
    - PKIX_TEST_EXPECT_NO_ERROR
    - createCert
    linkageType: ''
    returnType: void
    signature: void testAllExtensionsAbsent(char *dataCentralDir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:586,1
    - Dst: testCritExtensionsPresent
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:588,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:590,1
    - Dst: testCritExtensionsAbsent
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:592,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:594,1
    - Dst: testAllExtensionsAbsent
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - dataCentralDir
    - goodObject
    argTypes:
    - char*
    - PKIX_PL_Cert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 583
    functionDepth: 4
    functionLinenumber: 583
    functionLinenumberEnd: 597
    functionName: testGetCriticalExtensionOIDs
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c
    functionUses: 1
    functionsReached:
    - subTest
    - testAllExtensionsAbsent
    - testCritExtensionsAbsent
    - testCritExtensionsPresent
    linkageType: ''
    returnType: void
    signature: void testGetCriticalExtensionOIDs(char *dataCentralDir, PKIX_PL_Cert
      *goodObject)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:612,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:614,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:615,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:617,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:618,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:620,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:621,1
    - Dst: PKIX_PL_Cert_GetSubjectKeyIdentifier
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:621,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:623,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:624,1
    - Dst: PKIX_PL_Cert_GetAuthorityKeyIdentifier
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:624,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:626,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:627,1
    - Dst: PKIX_PL_Cert_GetSubjectKeyIdentifier
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:627,1
    - Dst: PKIX_TEST_EQ_HASH_TOSTR_DUP
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:629,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:638,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:639,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:640,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:641,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:642,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 1
    argNames:
    - dataCentralDir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 599
    functionDepth: 1
    functionLinenumber: 599
    functionLinenumberEnd: 645
    functionName: testKeyIdentifiersMatching
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_TEST_EQ_HASH_TOSTR_DUP
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_EXPECT_NO_ERROR
    - createCert
    - PKIX_PL_Cert_GetSubjectKeyIdentifier
    - PKIX_PL_Cert_GetAuthorityKeyIdentifier
    linkageType: ''
    returnType: void
    signature: void testKeyIdentifiersMatching(char *dataCentralDir)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:653,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:655,1
    - Dst: PKIX_PL_Cert_GetSubjectKeyIdentifier
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:655,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:661,1
    - Dst: PKIX_PL_Cert_GetAuthorityKeyIdentifier
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:661,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:669,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:670,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:672,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - cert
    argTypes:
    - PKIX_PL_Cert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 647
    functionDepth: 1
    functionLinenumber: 647
    functionLinenumberEnd: 673
    functionName: testKeyIdentifierAbsent
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_PL_Cert_GetSubjectKeyIdentifier
    - PKIX_PL_Cert_GetAuthorityKeyIdentifier
    linkageType: ''
    returnType: void
    signature: void testKeyIdentifierAbsent(PKIX_PL_Cert *cert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: testKeyIdentifiersMatching
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:678,1
    - Dst: testKeyIdentifierAbsent
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dataCentralDir
    - goodObject
    argTypes:
    - char*
    - PKIX_PL_Cert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 675
    functionDepth: 2
    functionLinenumber: 675
    functionLinenumberEnd: 680
    functionName: testGetKeyIdentifiers
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c
    functionUses: 0
    functionsReached:
    - testKeyIdentifierAbsent
    - testKeyIdentifiersMatching
    linkageType: ''
    returnType: void
    signature: void testGetKeyIdentifiers(char *dataCentralDir, PKIX_PL_Cert *goodObject)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:691,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:693,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:694,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:696,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:697,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:699,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:700,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:702,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:703,1
    - Dst: PKIX_PL_Cert_VerifyKeyUsage
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:703,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:705,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:706,1
    - Dst: PKIX_PL_Cert_VerifyKeyUsage
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:706,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:711,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:712,1
    - Dst: PKIX_PL_Cert_VerifyKeyUsage
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:712,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:714,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:715,1
    - Dst: PKIX_PL_Cert_VerifyKeyUsage
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:715,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:717,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:718,1
    - Dst: PKIX_PL_Cert_VerifyKeyUsage
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:718,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:721,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:722,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:723,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 3
    argNames:
    - dataCentralDir
    - dataDir
    - multiKeyUsagesCert
    argTypes:
    - char*
    - char*
    - PKIX_PL_Cert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 682
    functionDepth: 1
    functionLinenumber: 682
    functionLinenumberEnd: 726
    functionName: testVerifyKeyUsage
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_PL_Cert_VerifyKeyUsage
    - PKIX_TEST_EXPECT_ERROR
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_EXPECT_NO_ERROR
    - createCert
    linkageType: ''
    returnType: void
    signature: "void testVerifyKeyUsage(\n    char *dataCentralDir,\n    char *dataDir,\n
      \   PKIX_PL_Cert *multiKeyUsagesCert)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:747,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:749,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:750,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:752,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:753,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:755,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:756,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:758,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:759,1
    - Dst: PKIX_PL_Cert_GetExtendedKeyUsage
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:759,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:761,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:761,1
    - Dst: testToStringHelper
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:762,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:764,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:765,1
    - Dst: PKIX_PL_Cert_GetExtendedKeyUsage
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:765,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:767,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:767,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:770,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:771,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:772,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:776,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:776,1
    - Dst: testToStringHelper
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:781,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:783,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:783,1
    - Dst: testToStringHelper
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:788,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:790,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:790,1
    - Dst: testToStringHelper
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:795,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:797,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:798,1
    - Dst: PKIX_PL_Cert_GetExtendedKeyUsage
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:798,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:801,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:802,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:803,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:809,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:810,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:811,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:812,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:814,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:815,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:816,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:818,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:819,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:820,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:822,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 50
    argCount: 1
    argNames:
    - dataCentralDir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 728
    functionDepth: 3
    functionLinenumber: 728
    functionLinenumberEnd: 823
    functionName: testGetExtendedKeyUsage
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_List_GetLength
    - printf
    - PKIX_TEST_EXPECT_NO_ERROR
    - createCert
    - testToStringHelper
    - testError
    - PKIX_PL_Cert_GetExtendedKeyUsage
    - PKIX_List_GetItem
    linkageType: ''
    returnType: void
    signature: void testGetExtendedKeyUsage(char *dataCentralDir)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:835,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:837,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:838,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:840,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:841,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:843,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:844,1
    - Dst: PKIX_PL_Cert_GetSubjectPublicKey
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:844,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:846,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:847,1
    - Dst: PKIX_PL_Cert_GetSubjectPublicKey
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:847,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:849,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:850,1
    - Dst: PKIX_PL_PublicKey_MakeInheritedDSAPublicKey
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:850,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:853,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:856,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:857,1
    - Dst: PKIX_PL_PublicKey_MakeInheritedDSAPublicKey
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:857,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:861,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:862,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:864,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:865,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:866,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:867,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:869,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 1
    argNames:
    - dataCentralDir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 825
    functionDepth: 1
    functionLinenumber: 825
    functionLinenumberEnd: 870
    functionName: testMakeInheritedDSAPublicKey
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_PL_PublicKey_MakeInheritedDSAPublicKey
    - PKIX_TEST_EXPECT_ERROR
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_PL_Cert_GetSubjectPublicKey
    - PKIX_TEST_EXPECT_NO_ERROR
    - createCert
    - testError
    linkageType: ''
    returnType: void
    signature: void testMakeInheritedDSAPublicKey(char *dataCentralDir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:880,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:882,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:883,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:885,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:886,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:888,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:889,1
    - Dst: PKIX_PL_Cert_GetSubjectPublicKey
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:889,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:891,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:892,1
    - Dst: PKIX_PL_Cert_GetSubjectPublicKey
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:892,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:894,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:895,1
    - Dst: PKIX_PL_Cert_VerifySignature
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:895,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:897,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:898,1
    - Dst: PKIX_PL_Cert_VerifySignature
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:898,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:902,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:903,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:904,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:905,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:907,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 1
    argNames:
    - dataCentralDir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 872
    functionDepth: 1
    functionLinenumber: 872
    functionLinenumberEnd: 908
    functionName: testVerifySignature
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_TEST_EXPECT_ERROR
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_PL_Cert_GetSubjectPublicKey
    - PKIX_PL_Cert_VerifySignature
    - PKIX_TEST_EXPECT_NO_ERROR
    - createCert
    linkageType: ''
    returnType: void
    signature: void testVerifySignature(char *dataCentralDir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:935,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:937,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:940,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:940,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:941,1
    - Dst: PKIX_PL_Date_Create_UTCTime
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:941,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:944,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:944,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:945,1
    - Dst: PKIX_PL_Date_Create_UTCTime
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:945,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:948,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:949,1
    - Dst: PKIX_PL_Cert_CheckValidity
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:949,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:951,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:952,1
    - Dst: PKIX_PL_Cert_CheckValidity
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:952,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:955,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:956,1
    - Dst: PKIX_PL_Cert_CheckValidity
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:956,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:958,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:959,1
    - Dst: PKIX_PL_Cert_CheckValidity
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:959,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:966,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:967,1
    - Dst: PKIX_PL_Cert_CheckValidity
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:967,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:969,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:970,1
    - Dst: PKIX_PL_Cert_CheckValidity
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:970,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:973,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:974,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:975,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:976,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:978,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 2
    argNames:
    - olderCert
    - newerCert
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_PL_Cert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 910
    functionDepth: 1
    functionLinenumber: 910
    functionLinenumberEnd: 979
    functionName: testCheckValidity
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_PL_String_Create
    - PKIX_TEST_EXPECT_ERROR
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_PL_Cert_CheckValidity
    - PKIX_PL_Date_Create_UTCTime
    linkageType: ''
    returnType: void
    signature: "void testCheckValidity(\n    PKIX_PL_Cert *olderCert,\n    PKIX_PL_Cert
      *newerCert)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:995,1
    - Dst: createCerts
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:997,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1002,1
    - Dst: PKIX_PL_Cert_GetBasicConstraints
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1002,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1003,1
    - Dst: PKIX_PL_Cert_GetBasicConstraints
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1003,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1004,1
    - Dst: PKIX_PL_Cert_GetBasicConstraints
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1004,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1008,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1009,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1010,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1012,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 6
    argNames:
    - dataDir
    - goodCertName
    - diffCertName
    - goodBasicConstraints
    - equalBasicConstraints
    - diffBasicConstraints
    argTypes:
    - char*
    - char*
    - char*
    - PKIX_PL_CertBasicConstraints**
    - PKIX_PL_CertBasicConstraints**
    - PKIX_PL_CertBasicConstraints**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 981
    functionDepth: 2
    functionLinenumber: 981
    functionLinenumberEnd: 1013
    functionName: readCertBasicConstraints
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_PL_Cert_GetBasicConstraints
    - PKIX_TEST_STD_VARS
    - createCerts
    - PKIX_TEST_EXPECT_NO_ERROR
    linkageType: ''
    returnType: void
    signature: "void readCertBasicConstraints(\n    char *dataDir,\n    char *goodCertName,\n
      \   char *diffCertName,\n    PKIX_PL_CertBasicConstraints **goodBasicConstraints,\n
      \   PKIX_PL_CertBasicConstraints **equalBasicConstraints,\n    PKIX_PL_CertBasicConstraints
      **diffBasicConstraints)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1026,1
    - Dst: readCertBasicConstraints
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1028,1
    - Dst: PKIX_TEST_EQ_HASH_TOSTR_DUP
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1044,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1054,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1057,1
    - Dst: testEqualsHelper
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1058,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1062,1
    - Dst: testHashcodeHelper
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1063,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1068,1
    - Dst: testEqualsHelper
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1069,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1073,1
    - Dst: testHashcodeHelper
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1074,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1079,1
    - Dst: testDuplicateHelper
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1080,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1083,1
    - Dst: testToStringHelper
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1084,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1092,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1093,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1094,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1096,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 4
    argNames:
    - dataDir
    - goodCertName
    - diffCertName
    - expectedAscii
    argTypes:
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1015
    functionDepth: 3
    functionLinenumber: 1015
    functionLinenumberEnd: 1097
    functionName: testBasicConstraintsHelper
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c
    functionUses: 0
    functionsReached:
    - testEqualsHelper
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_TEST_EQ_HASH_TOSTR_DUP
    - subTest
    - PKIX_TEST_STD_VARS
    - readCertBasicConstraints
    - testHashcodeHelper
    - testToStringHelper
    - testDuplicateHelper
    - testError
    linkageType: ''
    returnType: void
    signature: "void testBasicConstraintsHelper(\n    char *dataDir,\n    char *goodCertName,\n
      \   char *diffCertName,\n    char *expectedAscii)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1118,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1120,1
    - Dst: readCertBasicConstraints
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1122,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1129,1
    - Dst: PKIX_PL_BasicConstraints_GetCAFlag
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1129,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1131,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1136,1
    - Dst: PKIX_PL_BasicConstraints_GetCAFlag
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1136,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1138,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1145,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1146,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1147,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1149,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - dataCentralDir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1099
    functionDepth: 3
    functionLinenumber: 1099
    functionLinenumberEnd: 1150
    functionName: testBasicConstraints_GetCAFlag
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c
    functionUses: 0
    functionsReached:
    - PKIX_PL_BasicConstraints_GetCAFlag
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - subTest
    - PKIX_TEST_STD_VARS
    - readCertBasicConstraints
    - PKIX_TEST_EXPECT_NO_ERROR
    - testError
    linkageType: ''
    returnType: void
    signature: void testBasicConstraints_GetCAFlag(char *dataCentralDir)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1163,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1165,1
    - Dst: readCertBasicConstraints
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1167,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1174,1
    - Dst: PKIX_PL_BasicConstraints_GetPathLenConstraint
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1174,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1176,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1177,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1178,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1182,1
    - Dst: PKIX_PL_BasicConstraints_GetPathLenConstraint
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1182,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1184,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1185,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1186,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1192,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1193,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1194,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1196,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 1
    argNames:
    - dataCentralDir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1197
      start: 1152
    functionDepth: 3
    functionLinenumber: 1152
    functionLinenumberEnd: 1197
    functionName: testBasicConstraints_GetPathLenConstraint
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_PL_BasicConstraints_GetPathLenConstraint
    - subTest
    - PKIX_TEST_STD_VARS
    - printf
    - readCertBasicConstraints
    - PKIX_TEST_EXPECT_NO_ERROR
    - testError
    linkageType: ''
    returnType: void
    signature: void testBasicConstraints_GetPathLenConstraint(char *dataCentralDir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1205,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1207,1
    - Dst: testBasicConstraintsHelper
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1210,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1212,1
    - Dst: testBasicConstraintsHelper
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1215,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1217,1
    - Dst: testBasicConstraintsHelper
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1220,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1222,1
    - Dst: testBasicConstraintsHelper
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1225,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - dataCentralDir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1228
      start: 1199
    functionDepth: 4
    functionLinenumber: 1199
    functionLinenumberEnd: 1228
    functionName: testGetBasicConstraints
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c
    functionUses: 0
    functionsReached:
    - testBasicConstraintsHelper
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_RETURN
    linkageType: ''
    returnType: void
    signature: void testGetBasicConstraints(char *dataCentralDir)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1251,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1252,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1260,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1261,1
    - Dst: PKIX_PL_Cert_GetPolicyInformation
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1261,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1262,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1262,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1264,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1265,1
    - Dst: PKIX_PL_Cert_GetPolicyInformation
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1265,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1266,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1266,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1271,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1272,1
    - Dst: PKIX_PL_Cert_GetPolicyInformation
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1272,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1273,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1273,1
    - Dst: PKIX_TEST_EQ_HASH_TOSTR_DUP
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1275,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1282,1
    - Dst: PKIX_List_IsImmutable
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1282,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1285,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1290,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1291,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1292,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1293,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1294,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1295,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1296,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1297,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1298,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 1
    argNames:
    - dataDir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1300
      start: 1230
    functionDepth: 1
    functionLinenumber: 1230
    functionLinenumberEnd: 1300
    functionName: testGetPolicyInformation
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_TEST_EQ_HASH_TOSTR_DUP
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_PL_Cert_GetPolicyInformation
    - testError
    - PKIX_TEST_EXPECT_NO_ERROR
    - createCert
    - PKIX_List_IsImmutable
    - PKIX_List_GetItem
    linkageType: ''
    returnType: void
    signature: void testGetPolicyInformation(char *dataDir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1324,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1325,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1334,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1335,1
    - Dst: PKIX_PL_Cert_GetPolicyInformation
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1335,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1336,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1336,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1337,1
    - Dst: PKIX_PL_CertPolicyInfo_GetPolicyId
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1337,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1339,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1340,1
    - Dst: PKIX_PL_Cert_GetPolicyInformation
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1340,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1341,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1341,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1345,1
    - Dst: PKIX_PL_CertPolicyInfo_GetPolicyId
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1345,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1347,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1348,1
    - Dst: PKIX_PL_Cert_GetPolicyInformation
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1348,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1349,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1349,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1350,1
    - Dst: PKIX_PL_CertPolicyInfo_GetPolicyId
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1350,1
    - Dst: PKIX_TEST_EQ_HASH_TOSTR_DUP
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1352,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1356,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1357,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1358,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1359,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1360,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1361,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1362,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1363,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1364,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1365,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1366,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1367,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 1
    argNames:
    - dataDir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1369
      start: 1302
    functionDepth: 1
    functionLinenumber: 1302
    functionLinenumberEnd: 1369
    functionName: testCertPolicy_GetPolicyId
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_TEST_EQ_HASH_TOSTR_DUP
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_PL_CertPolicyInfo_GetPolicyId
    - PKIX_PL_Cert_GetPolicyInformation
    - PKIX_TEST_EXPECT_NO_ERROR
    - createCert
    - PKIX_List_GetItem
    linkageType: ''
    returnType: void
    signature: void testCertPolicy_GetPolicyId(char *dataDir)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1394,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1395,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1404,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1405,1
    - Dst: PKIX_PL_Cert_GetPolicyInformation
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1405,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1406,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1406,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1407,1
    - Dst: PKIX_PL_CertPolicyInfo_GetPolQualifiers
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1407,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1409,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1410,1
    - Dst: PKIX_PL_Cert_GetPolicyInformation
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1410,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1411,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1411,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1416,1
    - Dst: PKIX_PL_CertPolicyInfo_GetPolQualifiers
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1416,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1418,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1419,1
    - Dst: PKIX_PL_Cert_GetPolicyInformation
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1419,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1420,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1420,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1421,1
    - Dst: PKIX_PL_CertPolicyInfo_GetPolQualifiers
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1421,1
    - Dst: PKIX_TEST_EQ_HASH_TOSTR_DUP
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1423,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1430,1
    - Dst: PKIX_List_IsImmutable
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1430,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1433,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1438,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1439,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1440,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1441,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1442,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1443,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1444,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1445,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1446,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1447,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1448,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1449,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1451,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 35
    argCount: 1
    argNames:
    - dataDir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1452
      start: 1371
    functionDepth: 1
    functionLinenumber: 1371
    functionLinenumberEnd: 1452
    functionName: testCertPolicy_GetPolQualifiers
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_TEST_EQ_HASH_TOSTR_DUP
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_PL_CertPolicyInfo_GetPolQualifiers
    - PKIX_PL_Cert_GetPolicyInformation
    - testError
    - PKIX_TEST_EXPECT_NO_ERROR
    - createCert
    - PKIX_List_IsImmutable
    - PKIX_List_GetItem
    linkageType: ''
    returnType: void
    signature: void testCertPolicy_GetPolQualifiers(char *dataDir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1482,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1483,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1494,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1495,1
    - Dst: PKIX_PL_Cert_GetPolicyInformation
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1495,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1496,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1496,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1497,1
    - Dst: PKIX_PL_CertPolicyInfo_GetPolQualifiers
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1497,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1498,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1498,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1503,1
    - Dst: PKIX_PL_PolicyQualifier_GetQualifier
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1503,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1505,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1506,1
    - Dst: PKIX_PL_Cert_GetPolicyInformation
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1506,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1507,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1507,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1511,1
    - Dst: PKIX_PL_CertPolicyInfo_GetPolQualifiers
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1511,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1512,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1512,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1517,1
    - Dst: PKIX_PL_PolicyQualifier_GetQualifier
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1517,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1519,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1520,1
    - Dst: PKIX_PL_Cert_GetPolicyInformation
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1520,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1521,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1521,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1522,1
    - Dst: PKIX_PL_CertPolicyInfo_GetPolQualifiers
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1522,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1523,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1523,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1528,1
    - Dst: PKIX_PL_PolicyQualifier_GetQualifier
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1528,1
    - Dst: PKIX_TEST_EQ_HASH_TOSTR_DUP
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1530,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1534,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1535,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1536,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1537,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1538,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1539,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1540,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1541,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1542,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1543,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1544,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1545,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1546,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1547,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1548,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1549,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1550,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1551,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 43
    argCount: 1
    argNames:
    - dataDir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1553
      start: 1454
    functionDepth: 1
    functionLinenumber: 1454
    functionLinenumberEnd: 1553
    functionName: testPolicyQualifier_GetQualifier
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_TEST_EQ_HASH_TOSTR_DUP
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_PL_CertPolicyInfo_GetPolQualifiers
    - PKIX_PL_Cert_GetPolicyInformation
    - PKIX_TEST_EXPECT_NO_ERROR
    - createCert
    - PKIX_PL_PolicyQualifier_GetQualifier
    - PKIX_List_GetItem
    linkageType: ''
    returnType: void
    signature: void testPolicyQualifier_GetQualifier(char *dataDir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1583,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1584,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1595,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1596,1
    - Dst: PKIX_PL_Cert_GetPolicyInformation
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1596,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1597,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1597,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1598,1
    - Dst: PKIX_PL_CertPolicyInfo_GetPolQualifiers
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1598,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1599,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1599,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1604,1
    - Dst: PKIX_PL_PolicyQualifier_GetPolicyQualifierId
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1604,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1606,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1607,1
    - Dst: PKIX_PL_Cert_GetPolicyInformation
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1607,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1608,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1608,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1612,1
    - Dst: PKIX_PL_CertPolicyInfo_GetPolQualifiers
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1612,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1613,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1613,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1618,1
    - Dst: PKIX_PL_PolicyQualifier_GetPolicyQualifierId
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1618,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1620,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1621,1
    - Dst: PKIX_PL_Cert_GetPolicyInformation
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1621,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1622,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1622,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1623,1
    - Dst: PKIX_PL_CertPolicyInfo_GetPolQualifiers
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1623,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1624,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1624,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1629,1
    - Dst: PKIX_PL_PolicyQualifier_GetPolicyQualifierId
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1629,1
    - Dst: PKIX_TEST_EQ_HASH_TOSTR_DUP
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1631,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1635,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1636,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1637,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1638,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1639,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1640,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1641,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1642,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1643,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1644,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1645,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1646,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1647,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1648,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1649,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1650,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1651,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1652,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 43
    argCount: 1
    argNames:
    - dataDir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1654
      start: 1555
    functionDepth: 1
    functionLinenumber: 1555
    functionLinenumberEnd: 1654
    functionName: testPolicyQualifier_GetPolicyQualifierId
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_TEST_EQ_HASH_TOSTR_DUP
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_PL_CertPolicyInfo_GetPolQualifiers
    - PKIX_PL_Cert_GetPolicyInformation
    - PKIX_TEST_EXPECT_NO_ERROR
    - createCert
    - PKIX_PL_PolicyQualifier_GetPolicyQualifierId
    - PKIX_List_GetItem
    linkageType: ''
    returnType: void
    signature: void testPolicyQualifier_GetPolicyQualifierId(char *dataDir)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1667,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1668,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1670,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1672,1
    - Dst: PKIX_PL_Cert_AreCertPoliciesCritical
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1672,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1675,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1676,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1677,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1681,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1683,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1685,1
    - Dst: PKIX_PL_Cert_AreCertPoliciesCritical
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1685,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1688,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1689,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1690,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1696,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1697,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1699,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 2
    argNames:
    - dataCentralDir
    - dataDir
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1700
      start: 1656
    functionDepth: 1
    functionLinenumber: 1656
    functionLinenumberEnd: 1700
    functionName: testAreCertPoliciesCritical
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - subTest
    - PKIX_TEST_STD_VARS
    - printf
    - PKIX_TEST_EXPECT_NO_ERROR
    - createCert
    - PKIX_PL_Cert_AreCertPoliciesCritical
    - testError
    linkageType: ''
    returnType: void
    signature: void testAreCertPoliciesCritical(char *dataCentralDir, char *dataDir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1719,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1721,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1722,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1723,1
    - Dst: PKIX_PL_Cert_GetRequireExplicitPolicy
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1723,1
    - Dst: PR_ASSERT
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1724,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1726,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1727,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1728,1
    - Dst: PKIX_PL_Cert_GetPolicyMappingInhibited
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1728,1
    - Dst: PR_ASSERT
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1729,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1731,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1732,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1733,1
    - Dst: PKIX_PL_Cert_GetInhibitAnyPolicy
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1733,1
    - Dst: PR_ASSERT
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1734,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1736,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1737,1
    - Dst: PKIX_PL_Cert_GetInhibitAnyPolicy
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1737,1
    - Dst: PR_ASSERT
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1738,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1742,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1743,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1744,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1745,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1747,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 1
    argNames:
    - dataDir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1748
      start: 1702
    functionDepth: 1
    functionLinenumber: 1702
    functionLinenumberEnd: 1748
    functionName: testCertPolicyConstraints
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_PL_Cert_GetRequireExplicitPolicy
    - PR_ASSERT
    - PKIX_TEST_EXPECT_NO_ERROR
    - createCert
    - PKIX_PL_Cert_GetInhibitAnyPolicy
    - PKIX_PL_Cert_GetPolicyMappingInhibited
    linkageType: ''
    returnType: void
    signature: void testCertPolicyConstraints(char *dataDir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1767,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1769,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1771,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1772,1
    - Dst: PKIX_PL_Cert_GetPolicyMappings
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1772,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1774,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1774,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1775,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1775,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1776,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1776,1
    - Dst: PKIX_TEST_EQ_HASH_TOSTR_DUP
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1778,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1785,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1786,1
    - Dst: PKIX_PL_CertPolicyMap_GetIssuerDomainPolicy
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1786,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1787,1
    - Dst: PKIX_PL_CertPolicyMap_GetIssuerDomainPolicy
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1787,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1788,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1789,1
    - Dst: PKIX_PL_CertPolicyMap_GetSubjectDomainPolicy
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1789,1
    - Dst: PKIX_TEST_EQ_HASH_TOSTR_DUP
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1791,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1798,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1799,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1800,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1801,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1804,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1805,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1806,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1807,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1808,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 1
    argNames:
    - dataDir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1811
      start: 1750
    functionDepth: 1
    functionLinenumber: 1750
    functionLinenumberEnd: 1811
    functionName: testCertPolicyMaps
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_TEST_EQ_HASH_TOSTR_DUP
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_PL_Cert_GetPolicyMappings
    - PKIX_PL_CertPolicyMap_GetIssuerDomainPolicy
    - PKIX_TEST_EXPECT_NO_ERROR
    - createCert
    - PKIX_PL_CertPolicyMap_GetSubjectDomainPolicy
    - PKIX_TEST_DECREF_BC
    - PKIX_List_GetItem
    linkageType: ''
    returnType: void
    signature: void testCertPolicyMaps(char *dataDir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1846,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1847,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1849,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1850,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1851,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1852,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1854,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1856,1
    - Dst: PKIX_PL_Cert_GetNameConstraints
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1856,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1858,1
    - Dst: PKIX_PL_Cert_GetNameConstraints
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1858,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1860,1
    - Dst: PKIX_PL_Cert_GetNameConstraints
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1860,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1862,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1864,1
    - Dst: PKIX_PL_Cert_MergeNameConstraints
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1864,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1866,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1868,1
    - Dst: PKIX_PL_Cert_MergeNameConstraints
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1868,1
    - Dst: testToStringHelper
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1870,1
    - Dst: testToStringHelper
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1874,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1878,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1881,1
    - Dst: PKIX_PL_Cert_CheckNameConstraints
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1881,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1883,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1889,1
    - Dst: PKIX_PL_Cert_CheckNameConstraints
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1889,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1891,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1899,1
    - Dst: PKIX_PL_Cert_CheckNameConstraints
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1899,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1901,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1903,1
    - Dst: PKIX_PL_Cert_CheckNameConstraints
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1903,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1907,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1908,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1909,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1910,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1911,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1912,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1913,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1914,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1915,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1917,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 37
    argCount: 1
    argNames:
    - dataDir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1918
      start: 1813
    functionDepth: 3
    functionLinenumber: 1813
    functionLinenumberEnd: 1918
    functionName: testNameConstraints
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c
    functionUses: 1
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_TEST_EXPECT_ERROR
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_PL_Cert_CheckNameConstraints
    - PKIX_TEST_EXPECT_NO_ERROR
    - createCert
    - testToStringHelper
    - PKIX_PL_Cert_MergeNameConstraints
    - PKIX_PL_Cert_GetNameConstraints
    linkageType: ''
    returnType: void
    signature: void testNameConstraints(char *dataDir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1923,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1925,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1927,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1928,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1929,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1931,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1932,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1933,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1934,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1935,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1936,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1937,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1938,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1939,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1940,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1941,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1942,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1943,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1944,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1945,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1946,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1947,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1948,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1949,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1950,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1954,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 3
    argNames:
    - goodObject
    - equalObject
    - diffObject
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1955
      start: 1920
    functionDepth: 1
    functionLinenumber: 1920
    functionLinenumberEnd: 1955
    functionName: testDestroy
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c
    functionUses: 12
    functionsReached:
    - PKIX_TEST_RETURN
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_DECREF_BC
    linkageType: ''
    returnType: void
    signature: void testDestroy(void *goodObject, void *equalObject, void *diffObject)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:1960,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1961
      start: 1957
    functionDepth: 0
    functionLinenumber: 1957
    functionLinenumberEnd: 1961
    functionName: printUsage
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c
    functionUses: 27
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printUsage(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:2006,1
    - Dst: startTests
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:2008,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:2010,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:2011,1
    - Dst: printUsage
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:2014,1
    - Dst: createCerts
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:2021,1
    - Dst: testToStringHelper
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:2028,1
    - Dst: PKIX_TEST_EQ_HASH_TOSTR_DUP
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:2030,1
    - Dst: testVerifyKeyUsage
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:2037,1
    - Dst: testGetExtendedKeyUsage
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:2039,1
    - Dst: testGetKeyIdentifiers
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:2040,1
    - Dst: testGetVersion
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:2042,1
    - Dst: testGetSerialNumber
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:2043,1
    - Dst: testGetSubject
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:2045,1
    - Dst: testGetIssuer
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:2046,1
    - Dst: testGetSubjectAltNames
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:2048,1
    - Dst: testGetCriticalExtensionOIDs
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:2049,1
    - Dst: testGetSubjectPublicKey
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:2051,1
    - Dst: testGetSubjectPublicKeyAlgId
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:2052,1
    - Dst: testMakeInheritedDSAPublicKey
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:2053,1
    - Dst: testCheckValidity
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:2055,1
    - Dst: testBasicConstraints_GetCAFlag
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:2057,1
    - Dst: testBasicConstraints_GetPathLenConstraint
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:2058,1
    - Dst: testGetBasicConstraints
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:2059,1
    - Dst: testGetPolicyInformation
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:2062,1
    - Dst: testCertPolicy_GetPolicyId
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:2063,1
    - Dst: testCertPolicy_GetPolQualifiers
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:2064,1
    - Dst: testPolicyQualifier_GetPolicyQualifierId
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:2065,1
    - Dst: testPolicyQualifier_GetQualifier
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:2066,1
    - Dst: testAreCertPoliciesCritical
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:2067,1
    - Dst: testCertPolicyConstraints
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:2070,1
    - Dst: testCertPolicyMaps
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:2071,1
    - Dst: testNameConstraints
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:2073,1
    - Dst: testVerifySignature
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:2075,1
    - Dst: testDestroy
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:2077,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:2081,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:2083,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c:2085,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 46
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2088
      start: 1963
    functionDepth: 5
    functionLinenumber: 1963
    functionLinenumberEnd: 2088
    functionName: test_cert
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_cert.c
    functionUses: 0
    functionsReached:
    - testDestroy
    - testGetSerialNumber
    - testPolicyQualifier_GetPolicyQualifierId
    - testGetCriticalExtensionOIDs
    - testPolicyQualifier_GetQualifier
    - testVerifySignature
    - testGetVersion
    - endTests
    - PKIX_TEST_EXPECT_NO_ERROR
    - testGetExtendedKeyUsage
    - PKIX_Shutdown
    - PKIX_PL_NssContext_Create
    - testBasicConstraints_GetPathLenConstraint
    - testCertPolicy_GetPolQualifiers
    - testCertPolicy_GetPolicyId
    - createCerts
    - testToStringHelper
    - testAreCertPoliciesCritical
    - testCertPolicyMaps
    - testBasicConstraints_GetCAFlag
    - testGetSubjectPublicKeyAlgId
    - testCheckValidity
    - testGetBasicConstraints
    - PKIX_TEST_STD_VARS
    - testGetPolicyInformation
    - testGetKeyIdentifiers
    - testGetIssuer
    - testMakeInheritedDSAPublicKey
    - startTests
    - testCertPolicyConstraints
    - PKIX_TEST_RETURN
    - testGetSubjectPublicKey
    - testNameConstraints
    - PKIX_TEST_EQ_HASH_TOSTR_DUP
    - testGetSubjectAltNames
    - testVerifyKeyUsage
    - printUsage
    - testGetSubject
    linkageType: ''
    returnType: int
    signature: int test_cert(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:25,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:27,1
    - Dst: createCRL
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:28,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:30,1
    - Dst: createCRL
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:31,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:33,1
    - Dst: createCRL
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:34,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 6
    argNames:
    - dataDir
    - goodInput
    - diffInput
    - goodObject
    - equalObject
    - diffObject
    argTypes:
    - char*
    - char*
    - char*
    - PKIX_PL_CRL**
    - PKIX_PL_CRL**
    - PKIX_PL_CRL**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 37
    functionName: createCRLs
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - subTest
    - PKIX_TEST_STD_VARS
    - createCRL
    linkageType: ''
    returnType: void
    signature: "void createCRLs(\n    char *dataDir,\n    char *goodInput,\n    char
      *diffInput,\n    PKIX_PL_CRL **goodObject,\n    PKIX_PL_CRL **equalObject,\n
      \   PKIX_PL_CRL **diffObject)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:57,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:59,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:61,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:61,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:64,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:68,1
    - Dst: PKIX_PL_BigInt_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:68,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:73,1
    - Dst: PKIX_PL_CRL_GetCRLEntryForSerialNumber
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:73,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:76,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:76,1
    - Dst: testToStringHelper
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:81,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:86,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:87,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:88,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:89,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - goodObject
    argTypes:
    - PKIX_PL_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 39
    functionDepth: 3
    functionLinenumber: 39
    functionLinenumberEnd: 91
    functionName: testGetCRLEntryForSerialNumber
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PL_strlen
    - PKIX_PL_String_Create
    - PKIX_PL_BigInt_Create
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_PL_Object_ToString
    - PKIX_TEST_EXPECT_NO_ERROR
    - testToStringHelper
    - PKIX_PL_CRL_GetCRLEntryForSerialNumber
    linkageType: ''
    returnType: void
    signature: "void testGetCRLEntryForSerialNumber(\n    PKIX_PL_CRL *goodObject)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:104,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:106,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:108,1
    - Dst: PKIX_PL_CRL_GetIssuer
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:109,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:111,1
    - Dst: PKIX_PL_CRL_GetIssuer
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:112,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:114,1
    - Dst: PKIX_PL_CRL_GetIssuer
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:115,1
    - Dst: PKIX_TEST_EQ_HASH_TOSTR_DUP
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:117,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:126,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:127,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:128,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - goodObject
    - equalObject
    - diffObject
    argTypes:
    - PKIX_PL_CRL*
    - PKIX_PL_CRL*
    - PKIX_PL_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 131
    functionName: testGetIssuer
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c
    functionUses: 1
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_TEST_EQ_HASH_TOSTR_DUP
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_PL_CRL_GetIssuer
    linkageType: ''
    returnType: void
    signature: "void testGetIssuer(\n    PKIX_PL_CRL *goodObject,\n    PKIX_PL_CRL
      *equalObject,\n    PKIX_PL_CRL *diffObject)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:139,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:141,1
    - Dst: PKIX_PL_CRL_GetCriticalExtensionOIDs
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:141,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:143,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:143,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:150,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - crl
    argTypes:
    - PKIX_PL_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 153
    functionName: testCritExtensionsAbsent
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c
    functionUses: 2
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_PL_CRL_GetCriticalExtensionOIDs
    - PKIX_TEST_STD_VARS
    - PKIX_List_GetLength
    - PKIX_TEST_EXPECT_NO_ERROR
    linkageType: ''
    returnType: void
    signature: void testCritExtensionsAbsent(PKIX_PL_CRL *crl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:158,1
    - Dst: testCritExtensionsAbsent
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - goodObject
    argTypes:
    - PKIX_PL_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 161
    functionName: testGetCriticalExtensionOIDs
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c
    functionUses: 2
    functionsReached:
    - subTest
    - testCritExtensionsAbsent
    linkageType: ''
    returnType: void
    signature: void testGetCriticalExtensionOIDs(PKIX_PL_CRL *goodObject)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:171,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:173,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:174,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:176,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:177,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:179,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:180,1
    - Dst: PKIX_PL_Cert_GetSubjectPublicKey
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:180,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:182,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:183,1
    - Dst: PKIX_PL_Cert_GetSubjectPublicKey
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:183,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:185,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:186,1
    - Dst: PKIX_PL_CRL_VerifySignature
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:186,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:188,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:189,1
    - Dst: PKIX_PL_CRL_VerifySignature
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:189,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:193,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:194,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:195,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:196,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 2
    argNames:
    - dataCentralDir
    - crl
    argTypes:
    - char*
    - PKIX_PL_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 199
    functionName: testVerifySignature
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c
    functionUses: 1
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_TEST_EXPECT_ERROR
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_PL_CRL_VerifySignature
    - PKIX_PL_Cert_GetSubjectPublicKey
    - PKIX_TEST_EXPECT_NO_ERROR
    - createCert
    linkageType: ''
    returnType: void
    signature: void testVerifySignature(char *dataCentralDir, PKIX_PL_CRL *crl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 205
    functionName: printUsage
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c
    functionUses: 28
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printUsage(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:253,1
    - Dst: startTests
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:255,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:257,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:258,1
    - Dst: printUsage
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:261,1
    - Dst: createCRLs
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:267,1
    - Dst: PKIX_TEST_EQ_HASH_TOSTR_DUP
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:274,1
    - Dst: testGetIssuer
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:281,1
    - Dst: testGetCriticalExtensionOIDs
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:283,1
    - Dst: testGetCRLEntryForSerialNumber
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:285,1
    - Dst: testVerifySignature
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:287,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:291,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:292,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:293,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:295,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:297,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c:299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 209
    functionDepth: 4
    functionLinenumber: 209
    functionLinenumberEnd: 302
    functionName: test_crl
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_crl.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - createCRLs
    - PKIX_TEST_RETURN
    - PKIX_TEST_EQ_HASH_TOSTR_DUP
    - testGetCriticalExtensionOIDs
    - testVerifySignature
    - PKIX_TEST_STD_VARS
    - PKIX_Shutdown
    - endTests
    - PKIX_TEST_EXPECT_NO_ERROR
    - testGetCRLEntryForSerialNumber
    - testGetIssuer
    - printUsage
    - startTests
    - PKIX_PL_NssContext_Create
    linkageType: ''
    returnType: int
    signature: int test_crl(int argc, char *argv[])
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_subjectinfoaccess.c:38,1
    - Dst: startTests
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_subjectinfoaccess.c:40,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_subjectinfoaccess.c:42,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_subjectinfoaccess.c:43,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_subjectinfoaccess.c:46,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_subjectinfoaccess.c:52,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_subjectinfoaccess.c:53,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_subjectinfoaccess.c:57,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_subjectinfoaccess.c:58,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_subjectinfoaccess.c:60,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_subjectinfoaccess.c:61,1
    - Dst: PKIX_PL_Cert_GetSubjectInfoAccess
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_subjectinfoaccess.c:61,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_subjectinfoaccess.c:63,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_subjectinfoaccess.c:63,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_subjectinfoaccess.c:70,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_subjectinfoaccess.c:70,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_subjectinfoaccess.c:72,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_subjectinfoaccess.c:73,1
    - Dst: PKIX_PL_InfoAccess_GetMethod
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_subjectinfoaccess.c:73,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_subjectinfoaccess.c:79,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_subjectinfoaccess.c:80,1
    - Dst: PKIX_PL_InfoAccess_GetLocation
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_subjectinfoaccess.c:80,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_subjectinfoaccess.c:86,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_subjectinfoaccess.c:86,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_subjectinfoaccess.c:88,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_subjectinfoaccess.c:89,1
    - Dst: PKIX_PL_Cert_GetAuthorityInfoAccess
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_subjectinfoaccess.c:89,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_subjectinfoaccess.c:91,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_subjectinfoaccess.c:91,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_subjectinfoaccess.c:98,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_subjectinfoaccess.c:98,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_subjectinfoaccess.c:100,1
    - Dst: PKIX_TEST_EQ_HASH_TOSTR_DUP
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_subjectinfoaccess.c:101,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_subjectinfoaccess.c:105,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_subjectinfoaccess.c:106,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_subjectinfoaccess.c:107,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_subjectinfoaccess.c:108,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_subjectinfoaccess.c:109,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_subjectinfoaccess.c:110,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_subjectinfoaccess.c:111,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_subjectinfoaccess.c:112,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_subjectinfoaccess.c:114,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_subjectinfoaccess.c:116,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_subjectinfoaccess.c:118,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 63
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 121
    functionName: test_subjectinfoaccess
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_subjectinfoaccess.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_PL_InfoAccess_GetMethod
    - PKIX_PL_Cert_GetAuthorityInfoAccess
    - PKIX_PL_InfoAccess_GetLocation
    - PKIX_TEST_EQ_HASH_TOSTR_DUP
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_List_GetLength
    - printf
    - endTests
    - PKIX_TEST_EXPECT_NO_ERROR
    - createCert
    - PKIX_List_GetItem
    - PKIX_Shutdown
    - startTests
    - PKIX_PL_Cert_GetSubjectInfoAccess
    - PKIX_PL_NssContext_Create
    linkageType: ''
    returnType: int
    signature: int test_subjectinfoaccess(int argc, char *argv[])
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_authorityinfoaccess.c:37,1
    - Dst: startTests
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_authorityinfoaccess.c:39,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_authorityinfoaccess.c:41,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_authorityinfoaccess.c:42,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_authorityinfoaccess.c:45,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_authorityinfoaccess.c:51,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_authorityinfoaccess.c:52,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_authorityinfoaccess.c:56,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_authorityinfoaccess.c:57,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_authorityinfoaccess.c:59,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_authorityinfoaccess.c:60,1
    - Dst: PKIX_PL_Cert_GetAuthorityInfoAccess
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_authorityinfoaccess.c:60,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_authorityinfoaccess.c:62,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_authorityinfoaccess.c:62,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_authorityinfoaccess.c:69,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_authorityinfoaccess.c:69,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_authorityinfoaccess.c:71,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_authorityinfoaccess.c:71,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_authorityinfoaccess.c:73,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_authorityinfoaccess.c:74,1
    - Dst: PKIX_PL_Cert_GetSubjectInfoAccess
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_authorityinfoaccess.c:74,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_authorityinfoaccess.c:76,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_authorityinfoaccess.c:76,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_authorityinfoaccess.c:83,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_authorityinfoaccess.c:83,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_authorityinfoaccess.c:85,1
    - Dst: PKIX_TEST_EQ_HASH_TOSTR_DUP
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_authorityinfoaccess.c:86,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_authorityinfoaccess.c:90,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_authorityinfoaccess.c:91,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_authorityinfoaccess.c:92,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_authorityinfoaccess.c:93,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_authorityinfoaccess.c:94,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_authorityinfoaccess.c:95,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_authorityinfoaccess.c:96,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_authorityinfoaccess.c:98,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_authorityinfoaccess.c:100,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix_pl/pki/test_authorityinfoaccess.c:102,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 48
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 105
    functionName: test_authorityinfoaccess
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/pki/test_authorityinfoaccess.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_TEST_EQ_HASH_TOSTR_DUP
    - PKIX_PL_Cert_GetAuthorityInfoAccess
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_List_GetLength
    - printf
    - endTests
    - PKIX_TEST_EXPECT_NO_ERROR
    - createCert
    - PKIX_List_GetItem
    - PKIX_Shutdown
    - startTests
    - PKIX_PL_Cert_GetSubjectInfoAccess
    - PKIX_PL_NssContext_Create
    linkageType: ''
    returnType: int
    signature: int test_authorityinfoaccess(int argc, char *argv[])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex3.c:22,1
    - Dst: PKIX_PL_Mutex_Lock
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex3.c:23,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex3.c:25,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex3.c:27,1
    - Dst: PR_Sleep
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex3.c:28,1
    - Dst: PR_SecondsToInterval
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex3.c:28,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex3.c:29,1
    - Dst: PKIX_PL_Mutex_Unlock
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex3.c:31,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex3.c:33,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex3.c:35,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 36
    functionName: t1
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex3.c
    functionUses: 1
    functionsReached:
    - PR_SecondsToInterval
    - printf
    - PKIX_PL_Mutex_Lock
    - PKIX_PL_Mutex_Unlock
    - PR_Sleep
    - testError
    linkageType: ''
    returnType: void
    signature: void t1(/* ARGSUSED */ void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex3.c:43,1
    - Dst: PKIX_PL_Mutex_Lock
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex3.c:44,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex3.c:46,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex3.c:48,1
    - Dst: PKIX_PL_Mutex_Unlock
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex3.c:49,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex3.c:51,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex3.c:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 54
    functionName: t2
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex3.c
    functionUses: 1
    functionsReached:
    - testError
    - printf
    - PKIX_PL_Mutex_Lock
    - PKIX_PL_Mutex_Unlock
    linkageType: ''
    returnType: void
    signature: void t2(/* ARGSUSED */ void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex3.c:63,1
    - Dst: startTests
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex3.c:65,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex3.c:67,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex3.c:68,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex3.c:70,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex3.c:71,1
    - Dst: PKIX_PL_Mutex_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex3.c:71,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex3.c:73,1
    - Dst: PR_CreateThread
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex3.c:74,1
    - Dst: PR_CreateThread
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex3.c:82,1
    - Dst: PR_JoinThread
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex3.c:90,1
    - Dst: PR_JoinThread
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex3.c:91,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex3.c:95,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex3.c:97,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex3.c:99,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex3.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 104
    functionName: test_mutex3
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex3.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - subTest
    - PKIX_TEST_STD_VARS
    - endTests
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_PL_Mutex_Create
    - PR_JoinThread
    - PR_CreateThread
    - PKIX_Shutdown
    - startTests
    - PKIX_PL_NssContext_Create
    linkageType: ''
    returnType: int
    signature: int test_mutex3(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:23,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:25,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:25,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - testString
    - format
    - stringAscii
    - length
    argTypes:
    - PKIX_PL_String**
    - PKIX_UInt32
    - char*
    - PKIX_UInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 30
    functionName: createString
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_TEST_STD_VARS
    - PKIX_PL_String_Create
    linkageType: ''
    returnType: void
    signature: "void createString(\n    PKIX_PL_String **testString,\n    PKIX_UInt32
      format,\n    char *stringAscii,\n    PKIX_UInt32 length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:51,1
    - Dst: createString
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:53,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:56,1
    - Dst: createString
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:58,1
    - Dst: createString
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:60,1
    - Dst: createString
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:62,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:65,1
    - Dst: createString
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:67,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:70,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 6
    argNames:
    - testEscAscii
    - testUtf16
    - ampString
    - testDebugAscii
    - testNullString
    - utf16data
    argTypes:
    - PKIX_PL_String**
    - PKIX_PL_String**
    - PKIX_PL_String**
    - PKIX_PL_String**
    - PKIX_PL_String**
    - PKIX_UInt32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 77
    functionName: createStringOther
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c
    functionUses: 0
    functionsReached:
    - PL_strlen
    - PKIX_TEST_RETURN
    - PKIX_TEST_STD_VARS
    - createString
    linkageType: ''
    returnType: void
    signature: "void createStringOther(\n    PKIX_PL_String **testEscAscii,\n    PKIX_PL_String
      **testUtf16,\n    PKIX_PL_String **ampString,\n    PKIX_PL_String **testDebugAscii,\n
      \   PKIX_PL_String **testNullString,\n    PKIX_UInt32 *utf16data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:93,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:95,1
    - Dst: PKIX_PL_String_GetEncoded
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:95,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:102,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:103,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:109,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:109,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:111,1
    - Dst: PKIX_PL_String_GetEncoded
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:111,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:118,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:118,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:120,1
    - Dst: PKIX_PL_String_GetEncoded
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:120,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:126,1
    - Dst: PKIX_PL_String_GetEncoded
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:126,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:134,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:139,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:139,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:141,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:141,1
    - Dst: PKIX_String2ASCII
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:143,1
    - Dst: PL_strcmp
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:145,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:146,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:148,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:148,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:153,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 5
    argNames:
    - testEscAscii
    - testString0
    - testDebugAscii
    - testNullString
    - utf16data
    argTypes:
    - PKIX_PL_String*
    - PKIX_PL_String*
    - PKIX_PL_String*
    - PKIX_PL_String*
    - PKIX_UInt32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 154
    functionName: testGetEncoded
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_PL_String_GetEncoded
    - PKIX_String2ASCII
    - PKIX_TEST_STD_VARS
    - printf
    - PKIX_PL_Free
    - PKIX_TEST_EXPECT_NO_ERROR
    - PL_strcmp
    - testError
    linkageType: ''
    returnType: void
    signature: "void testGetEncoded(\n    PKIX_PL_String *testEscAscii,\n    PKIX_PL_String
      *testString0,\n    PKIX_PL_String *testDebugAscii,\n    PKIX_PL_String *testNullString,\n
      \   PKIX_UInt32 *utf16data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:170,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:172,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:172,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:175,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:179,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:179,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:186,1
    - Dst: PKIX_PL_Sprintf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:186,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:190,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:192,1
    - Dst: PKIX_String2ASCII
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:193,1
    - Dst: PL_strcmp
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:195,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:196,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:198,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:198,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:199,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:199,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:201,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:203,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 208
    functionName: testSprintf
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - PL_strlen
    - PKIX_PL_String_Create
    - PKIX_String2ASCII
    - PKIX_TEST_STD_VARS
    - PKIX_PL_Free
    - PKIX_PL_Sprintf
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_TEST_DECREF_BC
    - PR_smprintf
    - PL_strcmp
    - testError
    linkageType: ''
    returnType: void
    signature: void testSprintf(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:218,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:220,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:220,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:227,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:227,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:230,1
    - Dst: PKIX_PL_Sprintf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:230,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:232,1
    - Dst: PKIX_PL_GetString
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:232,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:234,1
    - Dst: PKIX_PL_GetString
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:234,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:237,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:240,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:240,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:248,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:248,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:256,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:256,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:264,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:264,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:272,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:272,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:280,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:280,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:288,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:288,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:296,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:296,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:304,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:304,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:312,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:312,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:320,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:320,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:323,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 329
    functionName: testErrorHandling
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c
    functionUses: 1
    functionsReached:
    - PKIX_TEST_RETURN
    - PL_strlen
    - PKIX_PL_String_Create
    - PKIX_TEST_EXPECT_ERROR
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_PL_Sprintf
    - PKIX_PL_GetString
    linkageType: ''
    returnType: void
    signature: void testErrorHandling(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:335,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:337,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - string
    argTypes:
    - PKIX_PL_String*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 342
    functionName: testDestroy
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c
    functionUses: 13
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_DECREF_BC
    linkageType: ''
    returnType: void
    signature: "void testDestroy(\n    PKIX_PL_String *string)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:371,1
    - Dst: startTests
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:373,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:375,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:376,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:378,1
    - Dst: createString
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:381,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:384,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:387,1
    - Dst: createStringOther
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:388,1
    - Dst: PKIX_TEST_EQ_HASH_TOSTR_DUP
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:395,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:402,1
    - Dst: testGetEncoded
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:403,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:409,1
    - Dst: testSprintf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:410,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:412,1
    - Dst: testErrorHandling
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:413,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:415,1
    - Dst: testDestroy
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:417,1
    - Dst: testDestroy
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:419,1
    - Dst: testDestroy
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:420,1
    - Dst: testDestroy
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:421,1
    - Dst: testDestroy
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:422,1
    - Dst: testDestroy
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:423,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:427,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:429,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c:431,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 344
    functionDepth: 3
    functionLinenumber: 344
    functionLinenumberEnd: 434
    functionName: test_string
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_string.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - testDestroy
    - testSprintf
    - PL_strlen
    - PKIX_TEST_EQ_HASH_TOSTR_DUP
    - testErrorHandling
    - subTest
    - PKIX_TEST_STD_VARS
    - endTests
    - PKIX_TEST_EXPECT_NO_ERROR
    - testGetEncoded
    - createStringOther
    - PKIX_Shutdown
    - startTests
    - createString
    - PKIX_PL_NssContext_Create
    linkageType: ''
    returnType: int
    signature: int test_string(int argc, char *argv[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bigint.c:24,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bigint.c:26,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bigint.c:26,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bigint.c:28,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bigint.c:33,1
    - Dst: PKIX_PL_BigInt_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bigint.c:33,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bigint.c:37,1
    - Dst: PKIX_PL_BigInt_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bigint.c:37,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bigint.c:44,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bigint.c:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - bigInts
    - bigIntAscii
    - errorHandling
    argTypes:
    - PKIX_PL_BigInt**
    - char*
    - PKIX_Boolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 47
    functionName: createBigInt
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_bigint.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PL_strlen
    - PKIX_PL_String_Create
    - PKIX_PL_BigInt_Create
    - PKIX_TEST_EXPECT_ERROR
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_EXPECT_NO_ERROR
    linkageType: ''
    returnType: void
    signature: "void createBigInt(\n    PKIX_PL_BigInt **bigInts,\n    char *bigIntAscii,\n
      \   PKIX_Boolean errorHandling)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bigint.c:57,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bigint.c:59,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bigint.c:59,1
    - Dst: PKIX_String2ASCII
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bigint.c:62,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bigint.c:64,1
    - Dst: PL_strcmp
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bigint.c:68,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bigint.c:69,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bigint.c:70,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bigint.c:73,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bigint.c:73,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bigint.c:77,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bigint.c:79,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - bigInt
    - expAscii
    argTypes:
    - PKIX_PL_BigInt*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 80
    functionName: testToString
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_bigint.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_String2ASCII
    - PKIX_PL_Object_ToString
    - PKIX_TEST_STD_VARS
    - printf
    - PKIX_PL_Free
    - PKIX_TEST_EXPECT_NO_ERROR
    - PL_strcmp
    - testError
    linkageType: ''
    returnType: void
    signature: "void testToString(\n    PKIX_PL_BigInt *bigInt,\n    char *expAscii)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bigint.c:88,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bigint.c:90,1
    - Dst: PKIX_PL_Object_Compare
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bigint.c:90,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bigint.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - firstBigInt
    - secondBigInt
    - cmpResult
    argTypes:
    - PKIX_PL_BigInt*
    - PKIX_PL_BigInt*
    - PKIX_Int32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 96
    functionName: testCompare
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_bigint.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_TEST_STD_VARS
    - PKIX_PL_Object_Compare
    linkageType: ''
    returnType: void
    signature: "void testCompare(\n    PKIX_PL_BigInt *firstBigInt,\n    PKIX_PL_BigInt
      *secondBigInt,\n    PKIX_Int32 *cmpResult)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bigint.c:102,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bigint.c:104,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bigint.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - bigInt
    argTypes:
    - PKIX_PL_BigInt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 109
    functionName: testDestroy
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_bigint.c
    functionUses: 14
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_DECREF_BC
    linkageType: ''
    returnType: void
    signature: "void testDestroy(\n    PKIX_PL_BigInt *bigInt)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bigint.c:130,1
    - Dst: startTests
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bigint.c:132,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bigint.c:134,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bigint.c:135,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bigint.c:138,1
    - Dst: createBigInt
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bigint.c:139,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bigint.c:143,1
    - Dst: createBigInt
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bigint.c:144,1
    - Dst: PKIX_TEST_EQ_HASH_TOSTR_DUP
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bigint.c:147,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bigint.c:155,1
    - Dst: testToString
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bigint.c:156,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bigint.c:159,1
    - Dst: testCompare
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bigint.c:160,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bigint.c:162,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bigint.c:165,1
    - Dst: testCompare
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bigint.c:166,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bigint.c:168,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bigint.c:171,1
    - Dst: testCompare
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bigint.c:172,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bigint.c:174,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bigint.c:178,1
    - Dst: testDestroy
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bigint.c:179,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bigint.c:184,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bigint.c:186,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 41
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 189
    functionName: test_bigint
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_bigint.c
    functionUses: 0
    functionsReached:
    - testDestroy
    - PKIX_TEST_EQ_HASH_TOSTR_DUP
    - testCompare
    - subTest
    - PKIX_TEST_STD_VARS
    - testToString
    - PKIX_Shutdown
    - endTests
    - PKIX_TEST_EXPECT_NO_ERROR
    - createBigInt
    - testError
    - startTests
    - PKIX_PL_NssContext_Create
    linkageType: ''
    returnType: int
    signature: int test_bigint(int argc, char *argv[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c:22,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c:25,1
    - Dst: PKIX_PL_OID_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c:25,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c:27,1
    - Dst: PKIX_PL_OID_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c:27,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - testOID
    - oidAscii
    - errorHandling
    argTypes:
    - PKIX_PL_OID**
    - char*
    - PKIX_Boolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 33
    functionName: createOID
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_TEST_EXPECT_ERROR
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_PL_OID_Create
    linkageType: ''
    returnType: void
    signature: "void createOID(\n    PKIX_PL_OID **testOID,\n    char *oidAscii,\n
      \   PKIX_Boolean errorHandling)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c:43,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c:45,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c:45,1
    - Dst: PKIX_String2ASCII
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c:48,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c:50,1
    - Dst: PL_strcmp
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c:54,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c:55,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c:56,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c:59,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c:59,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c:63,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - oid
    - expAscii
    argTypes:
    - PKIX_PL_OID*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 66
    functionName: testToString
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c
    functionUses: 1
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_String2ASCII
    - PKIX_PL_Object_ToString
    - PKIX_TEST_STD_VARS
    - printf
    - PKIX_PL_Free
    - PKIX_TEST_EXPECT_NO_ERROR
    - PL_strcmp
    - testError
    linkageType: ''
    returnType: void
    signature: "void testToString(\n    PKIX_PL_OID *oid,\n    char *expAscii)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c:76,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c:78,1
    - Dst: PKIX_PL_Object_Compare
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c:78,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c:82,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c:84,1
    - Dst: PKIX_PL_Object_Compare
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c:84,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c:88,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c:90,1
    - Dst: PKIX_PL_Object_Compare
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c:90,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c:94,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c:96,1
    - Dst: PKIX_PL_Object_Compare
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c:96,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c:100,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c:102,1
    - Dst: PKIX_PL_Object_Compare
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c:102,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c:106,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c:110,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - oid0
    - oid1
    - oid2
    - oid3
    argTypes:
    - PKIX_PL_OID*
    - PKIX_PL_OID*
    - PKIX_PL_OID*
    - PKIX_PL_OID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 111
    functionName: testCompare
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c
    functionUses: 1
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_TEST_STD_VARS
    - PKIX_PL_Object_Compare
    - PKIX_TEST_EXPECT_NO_ERROR
    - testError
    linkageType: ''
    returnType: void
    signature: "void testCompare(\n    PKIX_PL_OID *oid0,\n    PKIX_PL_OID *oid1,\n
      \   PKIX_PL_OID *oid2,\n    PKIX_PL_OID *oid3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c:117,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c:119,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - oid
    argTypes:
    - PKIX_PL_OID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 124
    functionName: testDestroy
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c
    functionUses: 15
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_DECREF_BC
    linkageType: ''
    returnType: void
    signature: "void testDestroy(\n    PKIX_PL_OID *oid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c:168,1
    - Dst: startTests
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c:170,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c:172,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c:173,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c:176,1
    - Dst: createOID
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c:177,1
    - Dst: PKIX_TEST_EQ_HASH_TOSTR_DUP
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c:180,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c:188,1
    - Dst: testToString
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c:189,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c:192,1
    - Dst: testCompare
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c:193,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c:196,1
    - Dst: testDestroy
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c:197,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c:201,1
    - Dst: createOID
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c:202,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c:207,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c:209,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 212
    functionName: test_oid
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_oid.c
    functionUses: 0
    functionsReached:
    - testDestroy
    - createOID
    - PKIX_TEST_EQ_HASH_TOSTR_DUP
    - testCompare
    - subTest
    - PKIX_TEST_STD_VARS
    - testToString
    - endTests
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_Shutdown
    - startTests
    - PKIX_PL_NssContext_Create
    linkageType: ''
    returnType: int
    signature: int test_oid(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:23,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:25,1
    - Dst: PKIX_PL_HashTable_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:25,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:26,1
    - Dst: PKIX_PL_HashTable_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:26,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:29,1
    - Dst: PKIX_PL_HashTable_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:29,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:32,1
    - Dst: PKIX_PL_Object_IncRef
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:32,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 4
    argNames:
    - ht
    - ht2
    - ht3
    - ht4
    argTypes:
    - PKIX_PL_HashTable**
    - PKIX_PL_HashTable**
    - PKIX_PL_HashTable**
    - PKIX_PL_HashTable**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 36
    functionName: createHashTables
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_TEST_STD_VARS
    - PKIX_PL_HashTable_Create
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_PL_Object_IncRef
    linkageType: ''
    returnType: void
    signature: "void createHashTables(\n    PKIX_PL_HashTable **ht,\n    PKIX_PL_HashTable
      **ht2,\n    PKIX_PL_HashTable **ht3,\n    PKIX_PL_HashTable **ht4)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:52,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:55,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:55,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:58,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:62,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:62,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:65,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:69,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:69,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:72,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:76,1
    - Dst: PKIX_PL_OID_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:76,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:78,1
    - Dst: PKIX_PL_HashTable_Add
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:78,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:82,1
    - Dst: PKIX_PL_HashTable_Add
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:82,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:87,1
    - Dst: PKIX_PL_HashTable_Add
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:87,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:92,1
    - Dst: PKIX_PL_HashTable_Add
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:92,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:97,1
    - Dst: PKIX_PL_HashTable_Add
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:97,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:101,1
    - Dst: PKIX_PL_HashTable_Add
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:101,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 6
    argNames:
    - ht
    - ht2
    - testString
    - testString2
    - testString3
    - testOID
    argTypes:
    - PKIX_PL_HashTable*
    - PKIX_PL_HashTable*
    - PKIX_PL_String**
    - PKIX_PL_String**
    - PKIX_PL_String**
    - PKIX_PL_OID**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 108
    functionName: testAdd
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - PL_strlen
    - PKIX_PL_HashTable_Add
    - PKIX_PL_String_Create
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_PL_OID_Create
    linkageType: ''
    returnType: void
    signature: "void testAdd(\n    PKIX_PL_HashTable *ht,\n    PKIX_PL_HashTable *ht2,\n
      \   PKIX_PL_String **testString,\n    PKIX_PL_String **testString2,\n    PKIX_PL_String
      **testString3,\n    PKIX_PL_OID **testOID)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:120,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:126,1
    - Dst: PKIX_PL_HashTable_Add
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:126,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:131,1
    - Dst: PKIX_PL_HashTable_Add
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:131,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:136,1
    - Dst: PKIX_PL_HashTable_Add
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:136,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:141,1
    - Dst: PKIX_PL_HashTable_Lookup
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:141,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:146,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:147,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:150,1
    - Dst: PKIX_PL_HashTable_Lookup
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:150,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:155,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:155,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:161,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:163,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 4
    argNames:
    - ht
    - testString
    - testString2
    - testString3
    argTypes:
    - PKIX_PL_HashTable*
    - PKIX_PL_String**
    - PKIX_PL_String**
    - PKIX_PL_String**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 167
    functionName: testAddFIFO
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_PL_HashTable_Add
    - PKIX_PL_Object_Equals
    - PKIX_TEST_STD_VARS
    - PKIX_PL_HashTable_Lookup
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_TEST_DECREF_BC
    - testError
    linkageType: ''
    returnType: void
    signature: "void testAddFIFO(\n    PKIX_PL_HashTable *ht,\n    PKIX_PL_String
      **testString,\n    PKIX_PL_String **testString2,\n    PKIX_PL_String **testString3)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:182,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:184,1
    - Dst: PKIX_PL_HashTable_Lookup
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:184,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:189,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:189,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:195,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:197,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:199,1
    - Dst: PKIX_PL_HashTable_Lookup
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:199,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:204,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:204,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:210,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:212,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:214,1
    - Dst: PKIX_PL_HashTable_Lookup
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:214,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:219,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:219,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:225,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:227,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:229,1
    - Dst: PKIX_PL_HashTable_Lookup
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:229,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:233,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:233,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:235,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:235,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:241,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:243,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:244,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:246,1
    - Dst: PKIX_PL_HashTable_Lookup
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:246,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:250,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:250,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:252,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:252,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:258,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:260,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:261,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:263,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:264,1
    - Dst: PKIX_PL_HashTable_Lookup
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:264,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:269,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:271,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:274,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 44
    argCount: 6
    argNames:
    - ht
    - ht2
    - testString
    - testString2
    - testString3
    - testOID
    argTypes:
    - PKIX_PL_HashTable*
    - PKIX_PL_HashTable*
    - PKIX_PL_String*
    - PKIX_PL_String*
    - PKIX_PL_String*
    - PKIX_PL_OID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 275
    functionName: testLookup
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_PL_Object_Equals
    - PKIX_PL_Object_ToString
    - PKIX_TEST_STD_VARS
    - PKIX_PL_HashTable_Lookup
    - printf
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_TEST_DECREF_BC
    - testError
    linkageType: ''
    returnType: void
    signature: "void testLookup(\n    PKIX_PL_HashTable *ht,\n    PKIX_PL_HashTable
      *ht2,\n    PKIX_PL_String *testString,\n    PKIX_PL_String *testString2,\n    PKIX_PL_String
      *testString3,\n    PKIX_PL_OID *testOID)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:286,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:288,1
    - Dst: PKIX_PL_HashTable_Remove
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:288,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:292,1
    - Dst: PKIX_PL_HashTable_Remove
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:292,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:296,1
    - Dst: PKIX_PL_HashTable_Remove
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:296,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:300,1
    - Dst: PKIX_PL_HashTable_Remove
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:300,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 5
    argNames:
    - ht
    - ht2
    - testString
    - testString2
    - testOID
    argTypes:
    - PKIX_PL_HashTable*
    - PKIX_PL_HashTable*
    - PKIX_PL_String*
    - PKIX_PL_String*
    - PKIX_PL_OID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 306
    functionName: testRemove
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_PL_HashTable_Remove
    - PKIX_TEST_EXPECT_ERROR
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_EXPECT_NO_ERROR
    linkageType: ''
    returnType: void
    signature: "void testRemove(\n    PKIX_PL_HashTable *ht,\n    PKIX_PL_HashTable
      *ht2,\n    PKIX_PL_String *testString,\n    PKIX_PL_String *testString2,\n    PKIX_PL_OID
      *testOID)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:315,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:317,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:318,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:319,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:320,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - ht
    - ht2
    - ht3
    - ht4
    argTypes:
    - PKIX_PL_HashTable*
    - PKIX_PL_HashTable*
    - PKIX_PL_HashTable*
    - PKIX_PL_HashTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 324
    functionName: testDestroy
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c
    functionUses: 16
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_DECREF_BC
    linkageType: ''
    returnType: void
    signature: "void testDestroy(\n    PKIX_PL_HashTable *ht,\n    PKIX_PL_HashTable
      *ht2,\n    PKIX_PL_HashTable *ht3,\n    PKIX_PL_HashTable *ht4)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:336,1
    - Dst: startTests
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:338,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:340,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:341,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:343,1
    - Dst: createHashTables
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:344,1
    - Dst: PKIX_TEST_EQ_HASH_TOSTR_DUP
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:346,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:353,1
    - Dst: testAdd
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:354,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:356,1
    - Dst: testAddFIFO
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:357,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:359,1
    - Dst: testLookup
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:360,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:362,1
    - Dst: testRemove
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:363,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:365,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:366,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:367,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:368,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:370,1
    - Dst: testDestroy
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:371,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:375,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 326
    functionDepth: 2
    functionLinenumber: 326
    functionLinenumberEnd: 380
    functionName: test_hashtable
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c
    functionUses: 0
    functionsReached:
    - testRemove
    - testDestroy
    - PKIX_TEST_EQ_HASH_TOSTR_DUP
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_Shutdown
    - createHashTables
    - endTests
    - PKIX_TEST_EXPECT_NO_ERROR
    - testLookup
    - PKIX_TEST_DECREF_BC
    - testAddFIFO
    - testAdd
    - startTests
    - PKIX_PL_NssContext_Create
    linkageType: ''
    returnType: int
    signature: int test_hashtable(int argc, char *argv[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mem.c:20,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mem.c:23,1
    - Dst: PKIX_PL_Malloc
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mem.c:23,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mem.c:28,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mem.c:32,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mem.c:36,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mem.c:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - array
    argTypes:
    - PKIX_UInt32**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 41
    functionName: testMalloc
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_mem.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_TEST_STD_VARS
    - printf
    - PKIX_TEST_EXPECT_NO_ERROR
    - testError
    - PKIX_PL_Malloc
    linkageType: ''
    returnType: void
    signature: void testMalloc(PKIX_UInt32 **array)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mem.c:47,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mem.c:49,1
    - Dst: PKIX_PL_Realloc
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mem.c:49,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mem.c:55,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mem.c:59,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mem.c:63,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mem.c:67,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - array
    argTypes:
    - PKIX_UInt32**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 68
    functionName: testRealloc
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_mem.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_TEST_STD_VARS
    - printf
    - PKIX_TEST_EXPECT_NO_ERROR
    - testError
    - PKIX_PL_Realloc
    linkageType: ''
    returnType: void
    signature: void testRealloc(PKIX_UInt32 **array)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mem.c:74,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mem.c:75,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mem.c:75,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mem.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - array
    argTypes:
    - PKIX_UInt32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 79
    functionName: testFree
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_mem.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_TEST_STD_VARS
    - PKIX_PL_Free
    linkageType: ''
    returnType: void
    signature: void testFree(PKIX_UInt32 *array)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mem.c:90,1
    - Dst: startTests
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mem.c:92,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mem.c:94,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mem.c:95,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mem.c:97,1
    - Dst: testMalloc
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mem.c:98,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mem.c:100,1
    - Dst: testRealloc
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mem.c:101,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mem.c:103,1
    - Dst: testFree
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mem.c:104,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mem.c:108,1
    - Dst: PKIX_PL_Malloc
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mem.c:108,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mem.c:112,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mem.c:114,1
    - Dst: PKIX_PL_Realloc
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mem.c:114,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mem.c:116,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mem.c:118,1
    - Dst: PKIX_PL_Malloc
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mem.c:118,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mem.c:120,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mem.c:122,1
    - Dst: PKIX_PL_Realloc
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mem.c:122,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mem.c:124,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mem.c:124,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mem.c:128,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mem.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 133
    functionName: test_mem
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_mem.c
    functionUses: 0
    functionsReached:
    - testRealloc
    - testMalloc
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_EXPECT_ERROR
    - printf
    - PKIX_PL_Free
    - PKIX_PL_Realloc
    - endTests
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_Shutdown
    - testFree
    - startTests
    - PKIX_PL_Malloc
    - PKIX_PL_NssContext_Create
    linkageType: ''
    returnType: int
    signature: int test_mem(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:22,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:23,1
    - Dst: PKIX_PL_ByteArray_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:23,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - byteArray
    - bytes
    - length
    argTypes:
    - PKIX_PL_ByteArray**
    - char*
    - PKIX_UInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 29
    functionName: createByteArray
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_TEST_STD_VARS
    - PKIX_PL_ByteArray_Create
    linkageType: ''
    returnType: void
    signature: "void createByteArray(\n    PKIX_PL_ByteArray **byteArray,\n    char
      *bytes,\n    PKIX_UInt32 length)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:38,1
    - Dst: createByteArray
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:40,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:42,1
    - Dst: PKIX_PL_ByteArray_GetLength
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:42,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:44,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:47,1
    - Dst: PKIX_PL_ByteArray_GetPointer
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:47,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:49,1
    - Dst: testToStringHelper
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:52,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:56,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 31
    functionDepth: 3
    functionLinenumber: 31
    functionLinenumberEnd: 59
    functionName: testZeroLength
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_PL_ByteArray_GetLength
    - PKIX_TEST_STD_VARS
    - createByteArray
    - PKIX_TEST_EXPECT_NO_ERROR
    - testToStringHelper
    - PKIX_PL_ByteArray_GetPointer
    - testError
    linkageType: ''
    returnType: void
    signature: void testZeroLength(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:69,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:71,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:71,1
    - Dst: PKIX_String2ASCII
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:74,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:76,1
    - Dst: PL_strcmp
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:80,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:81,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:82,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:85,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:85,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:89,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:91,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - byteArray
    - expAscii
    argTypes:
    - PKIX_PL_ByteArray*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 92
    functionName: testToString
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c
    functionUses: 2
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_String2ASCII
    - PKIX_PL_Object_ToString
    - PKIX_TEST_STD_VARS
    - printf
    - PKIX_PL_Free
    - PKIX_TEST_EXPECT_NO_ERROR
    - PL_strcmp
    - testError
    linkageType: ''
    returnType: void
    signature: "void testToString(\n    PKIX_PL_ByteArray *byteArray,\n    char *expAscii)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:101,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:103,1
    - Dst: PKIX_PL_ByteArray_GetLength
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:103,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:106,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:108,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - byteArray
    - expLength
    argTypes:
    - PKIX_PL_ByteArray*
    - PKIX_UInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 113
    functionName: testGetLength
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c
    functionUses: 1
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_PL_ByteArray_GetLength
    - PKIX_TEST_STD_VARS
    - printf
    - PKIX_TEST_EXPECT_NO_ERROR
    - testError
    linkageType: ''
    returnType: void
    signature: "void testGetLength(\n    PKIX_PL_ByteArray *byteArray,\n    PKIX_UInt32
      expLength)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:124,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:126,1
    - Dst: PKIX_PL_ByteArray_GetPointer
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:126,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:130,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:136,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:136,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - byteArray
    - expBytes
    - arrayLength
    argTypes:
    - PKIX_PL_ByteArray*
    - char*
    - PKIX_UInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 138
    functionName: testGetPointer
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_TEST_STD_VARS
    - PKIX_PL_Free
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_PL_ByteArray_GetPointer
    - testError
    linkageType: ''
    returnType: void
    signature: "void testGetPointer(\n    PKIX_PL_ByteArray *byteArray,\n    char
      *expBytes,\n    PKIX_UInt32 arrayLength)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:144,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:146,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - byteArray
    argTypes:
    - PKIX_PL_ByteArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 151
    functionName: testDestroy
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c
    functionUses: 17
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_DECREF_BC
    linkageType: ''
    returnType: void
    signature: "void testDestroy(\n    PKIX_PL_ByteArray *byteArray)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:177,1
    - Dst: startTests
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:184,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:186,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:187,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:189,1
    - Dst: testZeroLength
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:190,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:193,1
    - Dst: createByteArray
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:194,1
    - Dst: PKIX_TEST_EQ_HASH_TOSTR_DUP
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:197,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:205,1
    - Dst: testToString
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:206,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:210,1
    - Dst: testGetLength
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:211,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:215,1
    - Dst: testGetPointer
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:216,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:220,1
    - Dst: testDestroy
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:221,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:226,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c:228,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 153
    functionDepth: 4
    functionLinenumber: 153
    functionLinenumberEnd: 231
    functionName: test_bytearray
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c
    functionUses: 0
    functionsReached:
    - testGetLength
    - testDestroy
    - testZeroLength
    - PKIX_TEST_EQ_HASH_TOSTR_DUP
    - subTest
    - PKIX_TEST_STD_VARS
    - testToString
    - PKIX_Shutdown
    - createByteArray
    - endTests
    - PKIX_TEST_EXPECT_NO_ERROR
    - testGetPointer
    - startTests
    - PKIX_PL_NssContext_Create
    linkageType: ''
    returnType: int
    signature: int test_bytearray(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:46,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:49,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:51,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:51,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:54,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:58,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:58,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:61,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:65,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:65,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:68,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:72,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:72,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:79,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:79,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:86,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:86,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:89,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 6
    argNames:
    - vivaEspanaString
    - straussString
    - gorbachevString
    - testUTF16String
    - chineseString
    - jeanRenoString
    argTypes:
    - PKIX_PL_String**
    - PKIX_PL_String**
    - PKIX_PL_String**
    - PKIX_PL_String**
    - PKIX_PL_String**
    - PKIX_PL_String**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 96
    functionName: createString
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c
    functionUses: 2
    functionsReached:
    - PKIX_TEST_RETURN
    - PL_strlen
    - PKIX_PL_String_Create
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_EXPECT_NO_ERROR
    linkageType: ''
    returnType: void
    signature: "void createString(\n    PKIX_PL_String **vivaEspanaString,\n    PKIX_PL_String
      **straussString,\n    PKIX_PL_String **gorbachevString,\n    PKIX_PL_String
      **testUTF16String,\n    PKIX_PL_String **chineseString,\n    PKIX_PL_String
      **jeanRenoString)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:104,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:106,1
    - Dst: PKIX_PL_String_GetEncoded
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:106,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:113,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:114,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:114,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - string
    - format
    argTypes:
    - PKIX_PL_String*
    - PKIX_UInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 119
    functionName: testGetEncoded
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c
    functionUses: 1
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_PL_String_GetEncoded
    - PKIX_TEST_STD_VARS
    - printf
    - PKIX_PL_Free
    - PKIX_TEST_EXPECT_NO_ERROR
    linkageType: ''
    returnType: void
    signature: void testGetEncoded(PKIX_PL_String *string, PKIX_UInt32 format)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:135,1
    - Dst: fopen
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:138,1
    - Dst: fprintf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:141,1
    - Dst: fprintf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:142,1
    - Dst: fprintf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:143,1
    - Dst: fprintf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:145,1
    - Dst: fprintf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:146,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:148,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:149,1
    - Dst: PKIX_PL_String_GetEncoded
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:149,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:155,1
    - Dst: fwrite
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:156,1
    - Dst: fprintf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:157,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:160,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:160,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:164,1
    - Dst: PKIX_PL_String_GetEncoded
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:164,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:170,1
    - Dst: fwrite
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:171,1
    - Dst: fprintf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:172,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:175,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:175,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:179,1
    - Dst: PKIX_PL_String_GetEncoded
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:179,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:185,1
    - Dst: fwrite
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:186,1
    - Dst: fprintf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:187,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:190,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:190,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:194,1
    - Dst: PKIX_PL_String_GetEncoded
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:194,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:200,1
    - Dst: fwrite
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:201,1
    - Dst: fprintf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:202,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:205,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:205,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:209,1
    - Dst: PKIX_PL_String_GetEncoded
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:209,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:215,1
    - Dst: fwrite
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:216,1
    - Dst: fprintf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:217,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:220,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:220,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:224,1
    - Dst: PKIX_PL_String_GetEncoded
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:224,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:230,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:230,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:234,1
    - Dst: PKIX_PL_String_GetEncoded
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:234,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:240,1
    - Dst: fwrite
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:241,1
    - Dst: fprintf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:242,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:245,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:245,1
    - Dst: fprintf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:250,1
    - Dst: fprintf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:251,1
    - Dst: fclose
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:252,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:257,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 71
    argCount: 6
    argNames:
    - vivaEspanaString
    - straussString
    - gorbachevString
    - testUTF16String
    - chineseString
    - jeanRenoString
    argTypes:
    - PKIX_PL_String*
    - PKIX_PL_String*
    - PKIX_PL_String*
    - PKIX_PL_String*
    - PKIX_PL_String*
    - PKIX_PL_String*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 258
    functionName: testHTMLOutput
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - fclose
    - PKIX_PL_String_GetEncoded
    - PKIX_TEST_STD_VARS
    - printf
    - PKIX_PL_Free
    - fprintf
    - PKIX_TEST_EXPECT_NO_ERROR
    - fopen
    - fwrite
    linkageType: ''
    returnType: void
    signature: "void testHTMLOutput(\n    PKIX_PL_String *vivaEspanaString,\n    PKIX_PL_String
      *straussString,\n    PKIX_PL_String *gorbachevString,\n    PKIX_PL_String *testUTF16String,\n
      \   PKIX_PL_String *chineseString,\n    PKIX_PL_String *jeanRenoString)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:264,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:266,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - string
    argTypes:
    - PKIX_PL_String*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 271
    functionName: testDestroy
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c
    functionUses: 18
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_DECREF_BC
    linkageType: ''
    returnType: void
    signature: "void testDestroy(\n    PKIX_PL_String *string)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:282,1
    - Dst: startTests
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:284,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:286,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:287,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:289,1
    - Dst: createString
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:290,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:297,1
    - Dst: testGetEncoded
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:298,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:300,1
    - Dst: testGetEncoded
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:301,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:303,1
    - Dst: testGetEncoded
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:304,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:306,1
    - Dst: testGetEncoded
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:307,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:309,1
    - Dst: testGetEncoded
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:310,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:312,1
    - Dst: testHTMLOutput
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:313,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:320,1
    - Dst: testDestroy
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:321,1
    - Dst: testDestroy
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:322,1
    - Dst: testDestroy
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:323,1
    - Dst: testDestroy
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:324,1
    - Dst: testDestroy
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:325,1
    - Dst: testDestroy
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:326,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:330,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:332,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 273
    functionDepth: 2
    functionLinenumber: 273
    functionLinenumberEnd: 337
    functionName: test_string2
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_string2.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - testDestroy
    - subTest
    - PKIX_TEST_STD_VARS
    - testHTMLOutput
    - endTests
    - PKIX_TEST_EXPECT_NO_ERROR
    - testGetEncoded
    - PKIX_Shutdown
    - startTests
    - createString
    - PKIX_PL_NssContext_Create
    linkageType: ''
    returnType: int
    signature: int test_string2(int argc, char *argv[])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_PL_AcquireReaderLock
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:21,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:23,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:25,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:26,1
    - Dst: PR_Sleep
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:27,1
    - Dst: PR_SecondsToInterval
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:27,1
    - Dst: PKIX_PL_ReleaseReaderLock
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:28,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:30,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:31,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 32
    functionName: reader
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c
    functionUses: 0
    functionsReached:
    - PR_SecondsToInterval
    - PKIX_PL_AcquireReaderLock
    - printf
    - PR_Sleep
    - testError
    - PKIX_PL_ReleaseReaderLock
    linkageType: ''
    returnType: void
    signature: void reader(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_PL_AcquireWriterLock
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:39,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:41,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:43,1
    - Dst: PKIX_PL_AcquireWriterLock
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:45,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:47,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:48,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:50,1
    - Dst: PR_Sleep
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:51,1
    - Dst: PR_SecondsToInterval
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:51,1
    - Dst: PKIX_PL_ReleaseWriterLock
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:53,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:55,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:56,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:58,1
    - Dst: PR_Sleep
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:59,1
    - Dst: PR_SecondsToInterval
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:59,1
    - Dst: PKIX_PL_ReleaseWriterLock
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:61,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:63,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:64,1
    - Dst: PR_JoinThread
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:66,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 67
    functionName: writer
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c
    functionUses: 0
    functionsReached:
    - PR_SecondsToInterval
    - printf
    - PKIX_PL_AcquireWriterLock
    - PR_Sleep
    - PR_JoinThread
    - testError
    - PKIX_PL_ReleaseWriterLock
    linkageType: ''
    returnType: void
    signature: void writer(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_PL_AcquireReaderLock
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:75,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:77,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:79,1
    - Dst: PKIX_PL_AcquireReaderLock
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:81,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:83,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:84,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:86,1
    - Dst: PR_Sleep
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:87,1
    - Dst: PR_SecondsToInterval
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:87,1
    - Dst: PKIX_PL_ReleaseReaderLock
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:89,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:91,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:92,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:94,1
    - Dst: PR_Sleep
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:95,1
    - Dst: PR_SecondsToInterval
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:95,1
    - Dst: PKIX_PL_ReleaseReaderLock
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:97,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:99,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:100,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 101
    functionName: reader2
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c
    functionUses: 0
    functionsReached:
    - PR_SecondsToInterval
    - PKIX_PL_AcquireReaderLock
    - printf
    - PR_Sleep
    - testError
    - PKIX_PL_ReleaseReaderLock
    linkageType: ''
    returnType: void
    signature: void reader2(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:111,1
    - Dst: startTests
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:112,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:114,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:115,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:117,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:119,1
    - Dst: PKIX_PL_RWLock_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:119,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:121,1
    - Dst: PKIX_PL_RWLock_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:121,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:123,1
    - Dst: PKIX_PL_RWLock_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:123,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:126,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:126,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:128,1
    - Dst: PKIX_String2ASCII
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:129,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:131,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:134,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:134,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:139,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:142,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:145,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:145,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:148,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:150,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:152,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:154,1
    - Dst: PKIX_PL_AcquireReaderLock
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:154,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:155,1
    - Dst: PR_CreateThread
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:157,1
    - Dst: PR_CreateThread
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:165,1
    - Dst: PR_CreateThread
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:173,1
    - Dst: PR_JoinThread
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:181,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:182,1
    - Dst: PKIX_PL_ReleaseReaderLock
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:182,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:183,1
    - Dst: PR_JoinThread
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:185,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:190,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:191,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:192,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:193,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:195,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:199,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c:201,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 204
    functionName: test_rwlock
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_PL_Object_Equals
    - subTest
    - printf
    - endTests
    - PKIX_TEST_EXPECT_NO_ERROR
    - PR_JoinThread
    - PKIX_Shutdown
    - PKIX_PL_NssContext_Create
    - PKIX_PL_Object_ToString
    - PKIX_String2ASCII
    - PKIX_PL_AcquireReaderLock
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_DECREF_BC
    - PR_CreateThread
    - PKIX_PL_ReleaseReaderLock
    - startTests
    - PKIX_TEST_RETURN
    - testError
    - PKIX_PL_RWLock_Create
    linkageType: ''
    returnType: int
    signature: int test_rwlock()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 23
    functionName: destructor
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\ndestructor(\n    /* ARGSUSED */ PKIX_PL_Object *object,\n
      \   /* ARGSUSED */ void *plContext)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:37,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:40,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:44,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:47,1
    - Dst: PKIX_PL_Object_GetType
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:51,1
    - Dst: PKIX_PL_Sprintf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:53,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:57,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:59,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:62,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - obj
    - pString
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_String**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 65
    functionName: toStringCallback
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c
    functionUses: 0
    functionsReached:
    - PL_strlen
    - PKIX_PL_String_Create
    - PKIX_PL_Object_DecRef
    - PKIX_PL_Sprintf
    - testError
    - PKIX_PL_Object_GetType
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\ntoStringCallback(\n    PKIX_PL_Object *obj,\n    PKIX_PL_String
      **pString,\n    /* ARGSUSED */ void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - first
    - second
    - pValue
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    - PKIX_Int32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 81
    functionName: comparator
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\ncomparator(\n    PKIX_PL_Object *first,\n    PKIX_PL_Object
      *second,\n    PKIX_Int32 *pValue,\n    /* ARGSUSED */ void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - object
    - pValue
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 91
    functionName: hashcodeCallback
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nhashcodeCallback(\n    PKIX_PL_Object *object,\n    PKIX_UInt32
      *pValue,\n    /* ARGSUSED */ void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:104,1
    - Dst: PKIX_PL_Object_GetType
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:106,1
    - Dst: PKIX_PL_Object_GetType
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - first
    - second
    - result
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 113
    functionName: equalsCallback
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c
    functionUses: 0
    functionsReached:
    - testError
    - PKIX_PL_Object_GetType
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nequalsCallback(\n    PKIX_PL_Object *first,\n    PKIX_PL_Object
      *second,\n    PKIX_Boolean *result,\n    void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:122,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:125,1
    - Dst: PKIX_PL_Object_RegisterType
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:125,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:135,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:135,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:140,1
    - Dst: PKIX_PL_Object_RegisterType
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:140,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:150,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:150,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:155,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:155,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:161,1
    - Dst: PKIX_PL_Object_IncRef
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:161,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 4
    argNames:
    - obj
    - obj2
    - obj3
    - obj4
    argTypes:
    - PKIX_PL_Object**
    - PKIX_PL_Object**
    - PKIX_PL_Object**
    - PKIX_PL_Object**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 166
    functionName: createObjects
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_TEST_STD_VARS
    - PKIX_PL_Object_RegisterType
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_PL_Object_Alloc
    - PKIX_PL_Object_IncRef
    linkageType: ''
    returnType: void
    signature: "void createObjects(\n    PKIX_PL_Object **obj,\n    PKIX_PL_Object
      **obj2,\n    PKIX_PL_Object **obj3,\n    PKIX_PL_Object **obj4)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:176,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:178,1
    - Dst: PKIX_PL_Object_GetType
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:178,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:181,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:183,1
    - Dst: PKIX_PL_Object_GetType
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:183,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:185,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:187,1
    - Dst: PKIX_PL_Object_GetType
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:187,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:189,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:193,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - obj
    - obj2
    - obj3
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 194
    functionName: testGetType
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_EXPECT_NO_ERROR
    - testError
    - PKIX_PL_Object_GetType
    linkageType: ''
    returnType: void
    signature: "void testGetType(\n    PKIX_PL_Object *obj,\n    PKIX_PL_Object *obj2,\n
      \   PKIX_PL_Object *obj3)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:202,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:206,1
    - Dst: PKIX_PL_Object_Compare
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:206,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:208,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:210,1
    - Dst: PKIX_PL_Object_Compare
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:210,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:212,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:214,1
    - Dst: PKIX_PL_Object_Compare
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:214,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:218,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:222,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - obj2
    - obj4
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 223
    functionName: testCompare
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c
    functionUses: 2
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_TEST_STD_VARS
    - PKIX_PL_Object_Compare
    - PKIX_TEST_EXPECT_NO_ERROR
    - testError
    linkageType: ''
    returnType: void
    signature: "void testCompare(\n    PKIX_PL_Object *obj2,\n    PKIX_PL_Object *obj4)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:232,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:234,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:235,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:236,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:237,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - obj
    - obj2
    - obj3
    - obj4
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 242
    functionName: testDestroy
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c
    functionUses: 19
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_DECREF_BC
    linkageType: ''
    returnType: void
    signature: "void testDestroy(\n    PKIX_PL_Object *obj,\n    PKIX_PL_Object *obj2,\n
      \   PKIX_PL_Object *obj3,\n    PKIX_PL_Object *obj4)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:253,1
    - Dst: startTests
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:255,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:257,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:258,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:260,1
    - Dst: createObjects
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:261,1
    - Dst: PKIX_TEST_EQ_HASH_TOSTR_DUP
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:263,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:265,1
    - Dst: testGetType
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:266,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:268,1
    - Dst: testCompare
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:269,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:271,1
    - Dst: testDestroy
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:272,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:276,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 281
    functionName: test_object
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_object.c
    functionUses: 0
    functionsReached:
    - testDestroy
    - testGetType
    - PKIX_TEST_EQ_HASH_TOSTR_DUP
    - testCompare
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_Shutdown
    - endTests
    - PKIX_TEST_EXPECT_NO_ERROR
    - createObjects
    - startTests
    - PKIX_PL_NssContext_Create
    linkageType: ''
    returnType: int
    signature: int test_object(int argc, char *argv[])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_PL_Mutex_Lock
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex2.c:26,1
    - Dst: PR_WaitCondVar
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex2.c:31,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex2.c:33,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex2.c:35,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex2.c:37,1
    - Dst: PR_NotifyAllCondVar
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex2.c:40,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex2.c:42,1
    - Dst: PKIX_PL_Mutex_Unlock
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex2.c:43,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex2.c:45,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex2.c:47,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 48
    functionName: consumer
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex2.c
    functionUses: 0
    functionsReached:
    - PR_WaitCondVar
    - printf
    - PKIX_PL_Mutex_Lock
    - PKIX_PL_Mutex_Unlock
    - PR_NotifyAllCondVar
    - testError
    linkageType: ''
    returnType: void
    signature: void consumer(/* ARGSUSED */ void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_PL_Mutex_Lock
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex2.c:66,1
    - Dst: PR_WaitCondVar
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex2.c:68,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex2.c:71,1
    - Dst: PR_NotifyAllCondVar
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex2.c:73,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex2.c:75,1
    - Dst: PKIX_PL_Mutex_Unlock
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex2.c:77,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex2.c:79,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 81
    functionName: producer
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex2.c
    functionUses: 0
    functionsReached:
    - PR_WaitCondVar
    - printf
    - PKIX_PL_Mutex_Lock
    - PKIX_PL_Mutex_Unlock
    - PR_NotifyAllCondVar
    - testError
    linkageType: ''
    returnType: void
    signature: void producer(void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex2.c:92,1
    - Dst: startTests
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex2.c:94,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex2.c:96,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex2.c:97,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex2.c:99,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex2.c:100,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex2.c:101,1
    - Dst: PKIX_PL_Mutex_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex2.c:101,1
    - Dst: PR_NewCondVar
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex2.c:103,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex2.c:105,1
    - Dst: PR_CreateThread
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex2.c:106,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex2.c:114,1
    - Dst: PR_CreateThread
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex2.c:115,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex2.c:123,1
    - Dst: PR_CreateThread
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex2.c:124,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex2.c:132,1
    - Dst: PR_CreateThread
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex2.c:133,1
    - Dst: PR_JoinThread
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex2.c:141,1
    - Dst: PR_DestroyCondVar
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex2.c:143,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex2.c:144,1
    - Dst: PR_Free
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex2.c:153,1
    - Dst: PR_Free
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex2.c:154,1
    - Dst: PR_Free
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex2.c:155,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex2.c:159,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex2.c:161,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex2.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 166
    functionName: test_mutex2
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex2.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - PR_NewCondVar
    - subTest
    - PKIX_TEST_STD_VARS
    - printf
    - PR_Free
    - endTests
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_PL_Mutex_Create
    - PKIX_TEST_DECREF_BC
    - PR_JoinThread
    - PR_CreateThread
    - PR_DestroyCondVar
    - PKIX_Shutdown
    - startTests
    - PKIX_PL_NssContext_Create
    linkageType: ''
    returnType: int
    signature: int test_mutex2(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex.c:22,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex.c:24,1
    - Dst: PKIX_PL_Mutex_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex.c:24,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex.c:25,1
    - Dst: PKIX_PL_Mutex_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex.c:25,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex.c:28,1
    - Dst: PKIX_PL_Object_IncRef
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex.c:28,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - mutex
    - mutex2
    - mutex3
    argTypes:
    - PKIX_PL_Mutex**
    - PKIX_PL_Mutex**
    - PKIX_PL_Mutex**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 32
    functionName: createMutexes
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_PL_Mutex_Create
    - PKIX_PL_Object_IncRef
    linkageType: ''
    returnType: void
    signature: "void createMutexes(\n    PKIX_PL_Mutex **mutex,\n    PKIX_PL_Mutex
      **mutex2,\n    PKIX_PL_Mutex **mutex3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex.c:37,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex.c:39,1
    - Dst: PKIX_PL_Mutex_Lock
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex.c:39,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex.c:40,1
    - Dst: PKIX_PL_Mutex_Unlock
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex.c:40,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - mutex
    argTypes:
    - PKIX_PL_Mutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 44
    functionName: testLock
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_TEST_STD_VARS
    - PKIX_PL_Mutex_Unlock
    - PKIX_PL_Mutex_Lock
    - PKIX_TEST_EXPECT_NO_ERROR
    linkageType: ''
    returnType: void
    signature: void testLock(PKIX_PL_Mutex *mutex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex.c:52,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex.c:54,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex.c:55,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex.c:56,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - mutex
    - mutex2
    - mutex3
    argTypes:
    - PKIX_PL_Mutex*
    - PKIX_PL_Mutex*
    - PKIX_PL_Mutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 60
    functionName: testDestroy
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex.c
    functionUses: 20
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_DECREF_BC
    linkageType: ''
    returnType: void
    signature: "void testDestroy(\n    PKIX_PL_Mutex *mutex,\n    PKIX_PL_Mutex *mutex2,\n
      \   PKIX_PL_Mutex *mutex3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex.c:70,1
    - Dst: startTests
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex.c:72,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex.c:74,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex.c:75,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex.c:77,1
    - Dst: createMutexes
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex.c:78,1
    - Dst: PKIX_TEST_EQ_HASH_TOSTR_DUP
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex.c:80,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex.c:87,1
    - Dst: testLock
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex.c:88,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex.c:90,1
    - Dst: testDestroy
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex.c:91,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex.c:95,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex.c:97,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 102
    functionName: test_mutex
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_mutex.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - testDestroy
    - PKIX_TEST_EQ_HASH_TOSTR_DUP
    - createMutexes
    - testLock
    - subTest
    - PKIX_TEST_STD_VARS
    - endTests
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_Shutdown
    - startTests
    - PKIX_PL_NssContext_Create
    linkageType: ''
    returnType: int
    signature: int test_mutex(int argc, char *argv[])
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/system/stress_test.c:32,1
    - Dst: startTests
      Src: /src/nss/cmd/libpkix/pkix_pl/system/stress_test.c:34,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/stress_test.c:36,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/stress_test.c:37,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/stress_test.c:40,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/stress_test.c:49,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/stress_test.c:49,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/stress_test.c:55,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/stress_test.c:57,1
    - Dst: PKIX_PL_String_GetEncoded
      Src: /src/nss/cmd/libpkix/pkix_pl/system/stress_test.c:57,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/stress_test.c:63,1
    - Dst: PKIX_PL_ByteArray_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/stress_test.c:63,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/stress_test.c:64,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix_pl/system/stress_test.c:64,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/stress_test.c:68,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/stress_test.c:70,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/stress_test.c:70,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/stress_test.c:75,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/stress_test.c:77,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/cmd/libpkix/pkix_pl/system/stress_test.c:77,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/stress_test.c:82,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/stress_test.c:86,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/stress_test.c:87,1
    - Dst: PKIX_PL_HashTable_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/stress_test.c:87,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/stress_test.c:92,1
    - Dst: PKIX_PL_Object_Hashcode
      Src: /src/nss/cmd/libpkix/pkix_pl/system/stress_test.c:92,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/stress_test.c:96,1
    - Dst: PKIX_PL_HashTable_Add
      Src: /src/nss/cmd/libpkix/pkix_pl/system/stress_test.c:96,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/stress_test.c:103,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/stress_test.c:105,1
    - Dst: PKIX_PL_Object_Hashcode
      Src: /src/nss/cmd/libpkix/pkix_pl/system/stress_test.c:105,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/stress_test.c:109,1
    - Dst: PKIX_PL_HashTable_Lookup
      Src: /src/nss/cmd/libpkix/pkix_pl/system/stress_test.c:109,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/stress_test.c:115,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/stress_test.c:117,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/cmd/libpkix/pkix_pl/system/stress_test.c:117,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/system/stress_test.c:122,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/system/stress_test.c:123,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/stress_test.c:130,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/system/stress_test.c:132,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/system/stress_test.c:135,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/system/stress_test.c:136,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/system/stress_test.c:137,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/pkix_pl/system/stress_test.c:140,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/system/stress_test.c:142,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix_pl/system/stress_test.c:144,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 61
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 146
    functionName: stress_test
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/stress_test.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_PL_Object_Equals
    - subTest
    - PKIX_PL_HashTable_Create
    - endTests
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_Shutdown
    - PKIX_PL_NssContext_Create
    - PKIX_PL_HashTable_Lookup
    - PKIX_PL_String_GetEncoded
    - PKIX_PL_HashTable_Add
    - PKIX_TEST_STD_VARS
    - testError
    - PKIX_TEST_DECREF_BC
    - startTests
    - PKIX_TEST_RETURN
    - PKIX_PL_String_Create
    - PKIX_PL_Free
    - PKIX_PL_ByteArray_Create
    - PKIX_PL_Object_Hashcode
    linkageType: ''
    returnType: int
    signature: int stress_test(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_monitorlock.c:22,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_monitorlock.c:24,1
    - Dst: PKIX_PL_MonitorLock_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_monitorlock.c:24,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_monitorlock.c:25,1
    - Dst: PKIX_PL_MonitorLock_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_monitorlock.c:25,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_monitorlock.c:28,1
    - Dst: PKIX_PL_Object_IncRef
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_monitorlock.c:28,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_monitorlock.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - monitorLock
    - monitorLock2
    - monitorLock3
    argTypes:
    - PKIX_PL_MonitorLock**
    - PKIX_PL_MonitorLock**
    - PKIX_PL_MonitorLock**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 32
    functionName: createMonitorLockes
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_monitorlock.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_PL_MonitorLock_Create
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_PL_Object_IncRef
    linkageType: ''
    returnType: void
    signature: "void createMonitorLockes(\n    PKIX_PL_MonitorLock **monitorLock,\n
      \   PKIX_PL_MonitorLock **monitorLock2,\n    PKIX_PL_MonitorLock **monitorLock3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_monitorlock.c:37,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_monitorlock.c:39,1
    - Dst: PKIX_PL_MonitorLock_Enter
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_monitorlock.c:39,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_monitorlock.c:40,1
    - Dst: PKIX_PL_MonitorLock_Enter
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_monitorlock.c:40,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_monitorlock.c:41,1
    - Dst: PKIX_PL_MonitorLock_Exit
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_monitorlock.c:41,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_monitorlock.c:42,1
    - Dst: PKIX_PL_MonitorLock_Exit
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_monitorlock.c:42,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_monitorlock.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - monitorLock
    argTypes:
    - PKIX_PL_MonitorLock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 46
    functionName: testLock
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_monitorlock.c
    functionUses: 1
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_PL_MonitorLock_Exit
    - PKIX_PL_MonitorLock_Enter
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_EXPECT_NO_ERROR
    linkageType: ''
    returnType: void
    signature: void testLock(PKIX_PL_MonitorLock *monitorLock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_monitorlock.c:54,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_monitorlock.c:56,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_monitorlock.c:57,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_monitorlock.c:58,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_monitorlock.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - monitorLock
    - monitorLock2
    - monitorLock3
    argTypes:
    - PKIX_PL_MonitorLock*
    - PKIX_PL_MonitorLock*
    - PKIX_PL_MonitorLock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 62
    functionName: testDestroy
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_monitorlock.c
    functionUses: 21
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_DECREF_BC
    linkageType: ''
    returnType: void
    signature: "void testDestroy(\n    PKIX_PL_MonitorLock *monitorLock,\n    PKIX_PL_MonitorLock
      *monitorLock2,\n    PKIX_PL_MonitorLock *monitorLock3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_monitorlock.c:72,1
    - Dst: startTests
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_monitorlock.c:74,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_monitorlock.c:76,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_monitorlock.c:77,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_monitorlock.c:79,1
    - Dst: createMonitorLockes
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_monitorlock.c:80,1
    - Dst: PKIX_TEST_EQ_HASH_TOSTR_DUP
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_monitorlock.c:82,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_monitorlock.c:89,1
    - Dst: testLock
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_monitorlock.c:90,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_monitorlock.c:92,1
    - Dst: testDestroy
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_monitorlock.c:93,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_monitorlock.c:97,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_monitorlock.c:99,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix_pl/system/test_monitorlock.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 104
    functionName: test_monitorlock
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/system/test_monitorlock.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - testDestroy
    - PKIX_TEST_EQ_HASH_TOSTR_DUP
    - testLock
    - subTest
    - PKIX_TEST_STD_VARS
    - endTests
    - PKIX_TEST_EXPECT_NO_ERROR
    - createMonitorLockes
    - PKIX_Shutdown
    - startTests
    - PKIX_PL_NssContext_Create
    linkageType: ''
    returnType: int
    signature: int test_monitorlock(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:32,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:34,1
    - Dst: PKIX_CertSelector_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:34,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:35,1
    - Dst: PKIX_ComCertSelParams_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:35,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:36,1
    - Dst: PKIX_PL_Cert_GetSubject
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:36,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:37,1
    - Dst: PKIX_ComCertSelParams_SetSubject
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:37,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:38,1
    - Dst: PKIX_ComCertSelParams_SetCertificateValid
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:38,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:39,1
    - Dst: PKIX_CertSelector_SetCommonCertSelectorParams
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:39,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:44,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:45,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 4
    argNames:
    - certNameToMatch
    - validityDate
    - pSelector
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_PL_Date*
    - PKIX_CertSelector**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 48
    functionName: test_makeSubjectCertSelector
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_ComCertSelParams_SetSubject
    - PKIX_TEST_RETURN
    - PKIX_PL_Cert_GetSubject
    - PKIX_TEST_STD_VARS
    - PKIX_CertSelector_SetCommonCertSelectorParams
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_CertSelector_Create
    - PKIX_ComCertSelParams_Create
    - PKIX_ComCertSelParams_SetCertificateValid
    linkageType: ''
    returnType: void
    signature: "void test_makeSubjectCertSelector(\n    PKIX_PL_Cert *certNameToMatch,\n
      \   PKIX_PL_Date *validityDate,\n    PKIX_CertSelector **pSelector,\n    void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:64,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:66,1
    - Dst: PKIX_CertSelector_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:66,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:67,1
    - Dst: PKIX_ComCertSelParams_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:67,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:68,1
    - Dst: PKIX_ComCertSelParams_SetBasicConstraints
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:68,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:70,1
    - Dst: PKIX_CertSelector_SetCommonCertSelectorParams
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:70,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:75,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - minPathLength
    - pSelector
    - plContext
    argTypes:
    - PKIX_Int32
    - PKIX_CertSelector**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 78
    functionName: test_makePathCertSelector
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_TEST_STD_VARS
    - PKIX_CertSelector_SetCommonCertSelectorParams
    - PKIX_ComCertSelParams_SetBasicConstraints
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_CertSelector_Create
    - PKIX_ComCertSelParams_Create
    linkageType: ''
    returnType: void
    signature: "void test_makePathCertSelector(\n    PKIX_Int32 minPathLength,\n    PKIX_CertSelector
      **pSelector,\n    void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:102,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:104,1
    - Dst: test_makeSubjectCertSelector
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:106,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:111,1
    - Dst: PKIX_PL_Pk11CertStore_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:111,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:113,1
    - Dst: PKIX_CertStore_GetCertCallback
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:113,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:115,1
    - Dst: getCert
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:115,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:121,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:121,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:125,1
    - Dst: PKIX_List_DeleteItem
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:125,1
    - Dst: testToStringHelper
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:129,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:134,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:135,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:136,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:137,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 5
    argNames:
    - crlDir
    - desiredSubjectCert
    - expectedAscii
    - validityDate
    - plContext
    argTypes:
    - char*
    - char*
    - char*
    - PKIX_PL_Date*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 86
    functionDepth: 3
    functionLinenumber: 86
    functionLinenumberEnd: 140
    functionName: testMatchCertSubject
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c
    functionUses: 0
    functionsReached:
    - PKIX_PL_Pk11CertStore_Create
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - test_makeSubjectCertSelector
    - PKIX_TEST_EXPECT_ERROR
    - PKIX_TEST_STD_VARS
    - getCert
    - PKIX_List_GetLength
    - PKIX_List_DeleteItem
    - PKIX_TEST_EXPECT_NO_ERROR
    - createCert
    - PKIX_CertStore_GetCertCallback
    - testToStringHelper
    linkageType: ''
    returnType: void
    signature: "void testMatchCertSubject(\n    char *crlDir,\n    char *desiredSubjectCert,\n
      \   char *expectedAscii,\n    PKIX_PL_Date *validityDate,\n    void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:162,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:164,1
    - Dst: test_makePathCertSelector
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:166,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:168,1
    - Dst: PKIX_PL_Pk11CertStore_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:168,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:170,1
    - Dst: PKIX_CertStore_GetCertCallback
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:170,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:172,1
    - Dst: getCert
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:172,1
    - Dst: testToStringHelper
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:179,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:184,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:185,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:186,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 3
    argNames:
    - minPath
    - expectedAscii
    - plContext
    argTypes:
    - PKIX_Int32
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 150
    functionDepth: 3
    functionLinenumber: 150
    functionLinenumberEnd: 189
    functionName: testMatchCertMinPath
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c
    functionUses: 0
    functionsReached:
    - PKIX_PL_Pk11CertStore_Create
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - subTest
    - PKIX_TEST_STD_VARS
    - getCert
    - test_makePathCertSelector
    - PKIX_TEST_EXPECT_NO_ERROR
    - testToStringHelper
    - PKIX_CertStore_GetCertCallback
    linkageType: ''
    returnType: void
    signature: "void testMatchCertMinPath(\n    PKIX_Int32 minPath,\n    char *expectedAscii,\n
      \   void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:206,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:208,1
    - Dst: PKIX_CRLSelector_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:208,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:209,1
    - Dst: PKIX_ComCRLSelParams_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:209,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:210,1
    - Dst: PKIX_PL_CRL_GetIssuer
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:210,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:211,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:211,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:212,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:212,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:213,1
    - Dst: PKIX_ComCRLSelParams_SetIssuerNames
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:213,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:215,1
    - Dst: PKIX_CRLSelector_SetCommonCRLSelectorParams
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:215,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:220,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:221,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:222,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 3
    argNames:
    - crlNameToMatch
    - pSelector
    - plContext
    argTypes:
    - PKIX_PL_CRL*
    - PKIX_CRLSelector**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 225
    functionName: test_makeIssuerCRLSelector
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_CRLSelector_SetCommonCRLSelectorParams
    - PKIX_ComCRLSelParams_SetIssuerNames
    - PKIX_TEST_RETURN
    - PKIX_List_Create
    - PKIX_TEST_STD_VARS
    - PKIX_CRLSelector_Create
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_List_AppendItem
    - PKIX_ComCRLSelParams_Create
    - PKIX_PL_CRL_GetIssuer
    linkageType: ''
    returnType: void
    signature: "void test_makeIssuerCRLSelector(\n    PKIX_PL_CRL *crlNameToMatch,\n
      \   PKIX_CRLSelector **pSelector,\n    void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:241,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:243,1
    - Dst: PKIX_CRLSelector_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:243,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:244,1
    - Dst: PKIX_ComCRLSelParams_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:244,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:245,1
    - Dst: PKIX_ComCRLSelParams_SetDateAndTime
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:245,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:246,1
    - Dst: PKIX_CRLSelector_SetCommonCRLSelectorParams
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:246,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:250,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - dateToMatch
    - pSelector
    - plContext
    argTypes:
    - PKIX_PL_Date*
    - PKIX_CRLSelector**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 253
    functionName: test_makeDateCRLSelector
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_CRLSelector_SetCommonCRLSelectorParams
    - PKIX_TEST_RETURN
    - PKIX_TEST_STD_VARS
    - PKIX_ComCRLSelParams_SetDateAndTime
    - PKIX_CRLSelector_Create
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_ComCRLSelParams_Create
    linkageType: ''
    returnType: void
    signature: "void test_makeDateCRLSelector(\n    PKIX_PL_Date *dateToMatch,\n    PKIX_CRLSelector
      **pSelector,\n    void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:276,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:278,1
    - Dst: createCRL
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:280,1
    - Dst: test_makeIssuerCRLSelector
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:282,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:284,1
    - Dst: PKIX_PL_Pk11CertStore_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:284,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:286,1
    - Dst: PKIX_CertStore_GetCRLCallback
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:286,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:288,1
    - Dst: getCrl
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:288,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:294,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:294,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:298,1
    - Dst: PKIX_List_DeleteItem
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:298,1
    - Dst: testToStringHelper
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:302,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:307,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:308,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:309,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:310,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 4
    argNames:
    - crlDir
    - desiredIssuerCrl
    - expectedAscii
    - plContext
    argTypes:
    - char*
    - char*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 261
    functionDepth: 3
    functionLinenumber: 261
    functionLinenumberEnd: 313
    functionName: testMatchCrlIssuer
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c
    functionUses: 0
    functionsReached:
    - PKIX_PL_Pk11CertStore_Create
    - PKIX_TEST_DECREF_AC
    - PKIX_CertStore_GetCRLCallback
    - PKIX_TEST_RETURN
    - createCRL
    - PKIX_TEST_EXPECT_ERROR
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_List_GetLength
    - PKIX_List_DeleteItem
    - PKIX_TEST_EXPECT_NO_ERROR
    - testToStringHelper
    - getCrl
    - test_makeIssuerCRLSelector
    linkageType: ''
    returnType: void
    signature: "void testMatchCrlIssuer(\n    char *crlDir,\n    char *desiredIssuerCrl,\n
      \   char *expectedAscii,\n    void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:334,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:336,1
    - Dst: createDate
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:338,1
    - Dst: test_makeDateCRLSelector
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:339,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:341,1
    - Dst: PKIX_PL_Pk11CertStore_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:341,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:343,1
    - Dst: PKIX_CertStore_GetCRLCallback
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:343,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:345,1
    - Dst: getCrl
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:345,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:349,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:350,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:351,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:352,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 3
    argNames:
    - dateMatch
    - expectedAscii
    - plContext
    argTypes:
    - char*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 322
    functionDepth: 2
    functionLinenumber: 322
    functionLinenumberEnd: 355
    functionName: testMatchCrlDate
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c
    functionUses: 0
    functionsReached:
    - PKIX_PL_Pk11CertStore_Create
    - PKIX_TEST_DECREF_AC
    - PKIX_CertStore_GetCRLCallback
    - PKIX_TEST_RETURN
    - PKIX_TEST_EXPECT_ERROR
    - subTest
    - PKIX_TEST_STD_VARS
    - test_makeDateCRLSelector
    - PKIX_TEST_EXPECT_NO_ERROR
    - createDate
    - getCrl
    linkageType: ''
    returnType: void
    signature: "void testMatchCrlDate(\n    char *dateMatch,\n    char *expectedAscii,\n
      \   void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 361
    functionName: printUsage
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c
    functionUses: 29
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printUsage(char *pName)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:521,1
    - Dst: startTests
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:523,1
    - Dst: printUsage
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:526,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:530,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:531,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:536,1
    - Dst: pkix_pl_Date_CreateFromPRTime
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:536,1
    - Dst: PR_Now
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:536,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:538,1
    - Dst: testMatchCertSubject
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:540,1
    - Dst: createDate
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:547,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:549,1
    - Dst: testMatchCertSubject
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:551,1
    - Dst: testMatchCertMinPath
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:557,1
    - Dst: testMatchCrlIssuer
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:561,1
    - Dst: testMatchCrlDate
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:566,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:572,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:573,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:575,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c:577,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 365
    functionDepth: 4
    functionLinenumber: 365
    functionLinenumberEnd: 580
    functionName: test_pk11certstore
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c
    functionUses: 0
    functionsReached:
    - testMatchCertSubject
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - subTest
    - PKIX_TEST_STD_VARS
    - testMatchCertMinPath
    - PR_Now
    - testMatchCrlDate
    - PKIX_TEST_EXPECT_NO_ERROR
    - endTests
    - createDate
    - printUsage
    - startTests
    - testMatchCrlIssuer
    - pkix_pl_Date_CreateFromPRTime
    - PKIX_PL_NssContext_Create
    linkageType: ''
    returnType: int
    signature: int test_pk11certstore(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - testname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 50
    functionName: printUsage
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c
    functionUses: 30
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printUsage(char *testname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_Sleep
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: do_other_work
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c
    functionUses: 0
    functionsReached:
    - PR_Sleep
    linkageType: ''
    returnType: void
    signature: void do_other_work(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:85,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:87,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:89,1
    - Dst: PKIX_PL_Cert_GetAuthorityInfoAccess
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:89,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:91,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:91,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:98,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:98,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:100,1
    - Dst: PKIX_PL_InfoAccess_GetLocationType
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:100,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:107,1
    - Dst: PKIX_PL_InfoAccess_GetLocation
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:107,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:112,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:113,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:115,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 3
    argNames:
    - certWithAia
    - pLocation
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_PL_GeneralName**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 118
    functionName: getLocation
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_PL_Cert_GetAuthorityInfoAccess
    - PKIX_PL_InfoAccess_GetLocation
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_List_GetLength
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_PL_InfoAccess_GetLocationType
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\ngetLocation(\n    PKIX_PL_Cert *certWithAia,\n    PKIX_PL_GeneralName
      **pLocation,\n    void *plContext)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:152,1
    - Dst: startTests
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:154,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:156,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:157,1
    - Dst: printUsage
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:160,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:168,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:175,1
    - Dst: getLocation
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:175,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:183,1
    - Dst: PKIX_PL_HttpCertStore_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:183,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:186,1
    - Dst: PKIX_CertStore_GetCertCallback
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:186,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:189,1
    - Dst: PKIX_CertSelector_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:189,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:192,1
    - Dst: getCerts
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:192,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:197,1
    - Dst: PKIX_CertStore_CertContinue
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:197,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:202,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:202,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:205,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:210,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:210,1
    - Dst: PKIX_Cert2ASCII
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:215,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:217,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:220,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:220,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:223,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:226,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:230,1
    - Dst: pkix_pl_HttpCertStore_CreateWithAsciiName
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:230,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:233,1
    - Dst: PKIX_CertStore_GetCRLCallback
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:233,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:236,1
    - Dst: PKIX_CRLSelector_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:236,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:239,1
    - Dst: getCrls
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:239,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:244,1
    - Dst: PKIX_CertStore_CrlContinue
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:244,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:249,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:249,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:252,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:257,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:257,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:262,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:262,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:267,1
    - Dst: PKIX_PL_String_GetEncoded
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:267,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:273,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:275,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:275,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:276,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:277,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:280,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:285,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:286,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:287,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:288,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:289,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:290,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:291,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:292,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:293,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:295,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c:297,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 89
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 120
    functionDepth: 3
    functionLinenumber: 120
    functionLinenumberEnd: 300
    functionName: test_httpcertstore
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - printf
    - PKIX_CRLSelector_Create
    - endTests
    - PKIX_TEST_EXPECT_NO_ERROR
    - createCert
    - pkix_pl_HttpCertStore_CreateWithAsciiName
    - getCerts
    - PKIX_PL_NssContext_Create
    - PKIX_PL_Object_ToString
    - PKIX_CertStore_CertContinue
    - PKIX_CertStore_CrlContinue
    - PKIX_Cert2ASCII
    - PKIX_CertStore_GetCRLCallback
    - PKIX_PL_String_GetEncoded
    - getCrls
    - PKIX_TEST_STD_VARS
    - PKIX_List_GetLength
    - PKIX_TEST_DECREF_BC
    - startTests
    - PKIX_TEST_RETURN
    - PKIX_PL_HttpCertStore_Create
    - PKIX_PL_Free
    - PKIX_CertStore_GetCertCallback
    - getLocation
    - printUsage
    - PKIX_CertSelector_Create
    - PKIX_List_GetItem
    linkageType: ''
    returnType: int
    signature: int test_httpcertstore(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - selector
    - crl
    - pMatch
    - plContext
    argTypes:
    - PKIX_CRLSelector*
    - PKIX_PL_CRL*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 31
    functionName: testCRLSelectorMatchCallback
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\ntestCRLSelectorMatchCallback(\n    PKIX_CRLSelector
      *selector,\n    PKIX_PL_CRL *crl,\n    PKIX_Boolean *pMatch,\n    void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - selector
    - cert
    - pResult
    - plContext
    argTypes:
    - PKIX_CertSelector*
    - PKIX_PL_Cert*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 43
    functionName: testCertSelectorMatchCallback
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\ntestCertSelectorMatchCallback(\n    PKIX_CertSelector
      *selector,\n    PKIX_PL_Cert *cert,\n    PKIX_Boolean *pResult,\n    void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - store
    - certSelector
    - pCerts
    - plContext
    argTypes:
    - PKIX_CertStore*
    - PKIX_CertSelector*
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 53
    functionName: getCertCallback
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\ngetCertCallback(\n    PKIX_CertStore *store,\n    PKIX_CertSelector
      *certSelector,\n    PKIX_List **pCerts,\n    void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:62,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:64,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:65,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:67,1
    - Dst: PKIX_PL_Malloc
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:67,1
    - Dst: PL_strcpy
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:72,1
    - Dst: PL_strcat
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:73,1
    - Dst: PL_strcat
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:74,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - platform
    - dir
    - plContext
    argTypes:
    - char*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 81
    functionName: catDirName
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c
    functionUses: 4
    functionsReached:
    - PKIX_TEST_RETURN
    - PL_strlen
    - PKIX_TEST_STD_VARS
    - PL_strcat
    - PKIX_TEST_EXPECT_NO_ERROR
    - PL_strcpy
    - PKIX_PL_Malloc
    linkageType: ''
    returnType: char
    signature: 'char *

      catDirName(char *platform, char *dir, void *plContext)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:94,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:96,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:96,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:102,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:103,1
    - Dst: PKIX_PL_CollectionCertStore_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:103,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:107,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:108,1
    - Dst: PKIX_CRLSelector_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:108,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:113,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:114,1
    - Dst: PKIX_CertStore_GetCRLCallback
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:114,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:116,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:117,1
    - Dst: crlCallback
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:117,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:123,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:123,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:133,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:134,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:135,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:136,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 1
    argNames:
    - crlDir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 139
    functionName: testGetCRL
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_CertStore_GetCRLCallback
    - PKIX_PL_String_Create
    - crlCallback
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_List_GetLength
    - PKIX_CRLSelector_Create
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_PL_CollectionCertStore_Create
    linkageType: ''
    returnType: void
    signature: void testGetCRL(char *crlDir)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:152,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:154,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:154,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:160,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:161,1
    - Dst: PKIX_PL_CollectionCertStore_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:161,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:165,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:166,1
    - Dst: PKIX_CertSelector_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:166,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:171,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:172,1
    - Dst: PKIX_CertStore_GetCertCallback
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:172,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:174,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:175,1
    - Dst: certCallback
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:175,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:181,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:181,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:191,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:192,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:193,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:194,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 1
    argNames:
    - certDir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 197
    functionName: testGetCert
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_PL_String_Create
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_List_GetLength
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_CertStore_GetCertCallback
    - PKIX_CertSelector_Create
    - certCallback
    - PKIX_PL_CollectionCertStore_Create
    linkageType: ''
    returnType: void
    signature: void testGetCert(char *certDir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 203
    functionName: printUsage
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c
    functionUses: 31
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printUsage(char *pName)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:217,1
    - Dst: startTests
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:219,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:221,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:222,1
    - Dst: printUsage
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:225,1
    - Dst: catDirName
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:231,1
    - Dst: testGetCRL
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:233,1
    - Dst: testGetCert
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:234,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:238,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:240,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:242,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 207
    functionDepth: 2
    functionLinenumber: 207
    functionLinenumberEnd: 247
    functionName: test_colcertstore
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_TEST_STD_VARS
    - PKIX_Shutdown
    - PKIX_PL_Free
    - endTests
    - PKIX_TEST_EXPECT_NO_ERROR
    - testGetCRL
    - printUsage
    - testGetCert
    - startTests
    - catDirName
    - PKIX_PL_NssContext_Create
    linkageType: ''
    returnType: int
    signature: int test_colcertstore(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:21,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 23
    functionName: printUsage1
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c
    functionUses: 4
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printUsage1(char *pName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - numCerts
    argTypes:
    - PKIX_UInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 30
    functionName: printUsageMax
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c
    functionUses: 5
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printUsageMax(PKIX_UInt32 numCerts)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - selector
    - cert
    - pResult
    - plContext
    argTypes:
    - PKIX_CertSelector*
    - PKIX_PL_Cert*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 42
    functionName: testCertSelectorMatchCallback
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\ntestCertSelectorMatchCallback(\n    PKIX_CertSelector
      *selector,\n    PKIX_PL_Cert *cert,\n    PKIX_Boolean *pResult,\n    void *plContext)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:58,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:60,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:61,1
    - Dst: PKIX_ValidateParams_GetProcessingParams
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:61,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:79,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:79,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:104,1
    - Dst: PKIX_PL_OID_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:104,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:106,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:106,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:108,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:115,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:116,1
    - Dst: PKIX_ComCertSelParams_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:116,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:118,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:119,1
    - Dst: PKIX_ComCertSelParams_SetExtendedKeyUsage
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:119,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:121,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:122,1
    - Dst: PKIX_CertSelector_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:122,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:127,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:128,1
    - Dst: PKIX_CertSelector_SetCommonCertSelectorParams
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:128,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:130,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:131,1
    - Dst: PKIX_ProcessingParams_SetTargetCertConstraints
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:131,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:135,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:136,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:137,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:138,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:139,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:141,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 60
    argCount: 3
    argNames:
    - valParams
    - ekuOidString
    - only4EE
    argTypes:
    - PKIX_ValidateParams*
    - char*
    - PKIX_Boolean*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 144
    functionName: testEkuSetup
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_ValidateParams_GetProcessingParams
    - PKIX_List_Create
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_CertSelector_SetCommonCertSelectorParams
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_List_AppendItem
    - PKIX_PL_OID_Create
    - PKIX_TEST_DECREF_BC
    - PKIX_CertSelector_Create
    - PKIX_ComCertSelParams_Create
    - PKIX_ComCertSelParams_SetExtendedKeyUsage
    - PKIX_ProcessingParams_SetTargetCertConstraints
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\ntestEkuSetup(\n    PKIX_ValidateParams *valParams,\n
      \   char *ekuOidString,\n    PKIX_Boolean *only4EE)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:153,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:155,1
    - Dst: PKIX_ValidateParams_GetProcessingParams
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:155,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:157,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:158,1
    - Dst: PKIX_ProcessingParams_SetRevocationEnabled
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:158,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:161,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:162,1
    - Dst: PKIX_PL_EkuChecker_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:162,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:167,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - valParams
    - only4EE
    argTypes:
    - PKIX_ValidateParams*
    - PKIX_Boolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 172
    functionName: testEkuChecker
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - PKIX_ValidateParams_GetProcessingParams
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_PL_EkuChecker_Create
    - PKIX_ProcessingParams_SetRevocationEnabled
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\ntestEkuChecker(\n    PKIX_ValidateParams *valParams,\n
      \   PKIX_Boolean only4EE)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:190,1
    - Dst: printUsage1
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:193,1
    - Dst: startTests
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:197,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:199,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:200,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:203,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:205,1
    - Dst: printUsage1
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:208,1
    - Dst: printUsageMax
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:216,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:225,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:227,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:229,1
    - Dst: createCertChainPlus
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:231,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:233,1
    - Dst: createValidateParams
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:235,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:248,1
    - Dst: testEkuSetup
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:250,1
    - Dst: testEkuChecker
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:252,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:254,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:257,1
    - Dst: PKIX_ValidateChain
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:257,1
    - Dst: PKIX_TEST_EXPECT_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:259,1
    - Dst: PKIX_ValidateChain
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:259,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:264,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:265,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:266,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:268,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:270,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c:272,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 50
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 174
    functionDepth: 4
    functionLinenumber: 174
    functionLinenumberEnd: 275
    functionName: test_ekuchecker
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - testEkuSetup
    - PKIX_TEST_EXPECT_ERROR
    - subTest
    - PKIX_TEST_STD_VARS
    - printUsage1
    - PKIX_Shutdown
    - createValidateParams
    - PKIX_ValidateChain
    - endTests
    - PKIX_TEST_EXPECT_NO_ERROR
    - testEkuChecker
    - printUsageMax
    - startTests
    - createCertChainPlus
    - PORT_Strcmp
    - PKIX_PL_NssContext_Create
    linkageType: ''
    returnType: int
    signature: int test_ekuchecker(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - testname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: printUsage
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c
    functionUses: 32
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printUsage(char *testname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_Sleep
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 105
    functionName: do_other_work
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c
    functionUses: 0
    functionsReached:
    - PR_Sleep
    linkageType: ''
    returnType: void
    signature: void do_other_work(void)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:114,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:118,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:119,1
    - Dst: acceptCallback
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:119,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:121,1
    - Dst: pkix_pl_Socket_GetCallbackList
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:121,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:127,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:128,1
    - Dst: recvCallback
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:128,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:136,1
    - Dst: strncmp
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:137,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:138,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:148,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:149,1
    - Dst: pollCallback
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:149,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:153,1
    - Dst: strncmp
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:154,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:155,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:163,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:164,1
    - Dst: sendCallback
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:164,1
    - Dst: strlen
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:166,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:177,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:178,1
    - Dst: pollCallback
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:178,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:184,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:185,1
    - Dst: recvCallback
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:185,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:199,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:200,1
    - Dst: pollCallback
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:200,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:207,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:208,1
    - Dst: sendCallback
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:208,1
    - Dst: strlen
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:210,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:216,1
    - Dst: shutdownCallback
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:216,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:217,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:218,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:225,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:226,1
    - Dst: pollCallback
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:226,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:228,1
    - Dst: shutdownCallback
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:228,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:229,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:230,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:236,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:242,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 100
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 245
    functionName: server
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - strncmp
    - PL_strlen
    - subTest
    - PKIX_TEST_STD_VARS
    - PKIX_TEST_EXPECT_NO_ERROR
    - sendCallback
    - pollCallback
    - strlen
    - shutdownCallback
    - PKIX_TEST_DECREF_BC
    - testError
    - acceptCallback
    - pkix_pl_Socket_GetCallbackList
    - recvCallback
    linkageType: ''
    returnType: PKIX_Boolean
    signature: PKIX_Boolean server()
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:258,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:262,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:264,1
    - Dst: connectcontinueCallback
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:264,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:271,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:276,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:278,1
    - Dst: sendCallback
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:278,1
    - Dst: strlen
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:280,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:291,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:293,1
    - Dst: pollCallback
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:293,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:301,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:303,1
    - Dst: recvCallback
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:303,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:311,1
    - Dst: strncmp
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:312,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:313,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:322,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:324,1
    - Dst: pollCallback
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:324,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:327,1
    - Dst: strncmp
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:328,1
    - Dst: testError
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:329,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:337,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:339,1
    - Dst: sendCallback
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:339,1
    - Dst: strlen
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:341,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:353,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:355,1
    - Dst: pollCallback
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:355,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:363,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:365,1
    - Dst: recvCallback
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:365,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:372,1
    - Dst: shutdownCallback
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:372,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:373,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:380,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:382,1
    - Dst: pollCallback
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:382,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:384,1
    - Dst: shutdownCallback
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:384,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:385,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:393,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:399,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 117
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 402
    functionName: client
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - strncmp
    - PL_strlen
    - recvCallback
    - subTest
    - PKIX_TEST_STD_VARS
    - connectcontinueCallback
    - PKIX_TEST_EXPECT_NO_ERROR
    - sendCallback
    - pollCallback
    - shutdownCallback
    - PKIX_TEST_DECREF_BC
    - testError
    - strlen
    linkageType: ''
    returnType: PKIX_Boolean
    signature: PKIX_Boolean client()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:409,1
    - Dst: server
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:414,1
    - Dst: client
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:419,1
    - Dst: do_other_work
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:422,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:426,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 404
    functionDepth: 2
    functionLinenumber: 404
    functionLinenumberEnd: 427
    functionName: dispatcher
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - client
    - server
    - PKIX_TEST_STD_VARS
    - do_other_work
    linkageType: ''
    returnType: void
    signature: void dispatcher()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:446,1
    - Dst: startTests
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:448,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:450,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:451,1
    - Dst: printUsage
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:454,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:461,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:463,1
    - Dst: pkix_pl_Socket_CreateByName
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:463,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:465,1
    - Dst: pkix_pl_Socket_GetCallbackList
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:465,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:467,1
    - Dst: listenCallback
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:467,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:471,1
    - Dst: pkix_pl_Socket_CreateByName
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:471,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:473,1
    - Dst: pkix_pl_Socket_GetCallbackList
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:473,1
    - Dst: dispatcher
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:481,1
    - Dst: subTest
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:483,1
    - Dst: strchr
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:485,1
    - Dst: atoi
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:489,1
    - Dst: strchr
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:497,1
    - Dst: PR_GetHostByName
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:501,1
    - Dst: printUsage
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:504,1
    - Dst: PR_htons
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:511,1
    - Dst: PR_htonl
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:512,1
    - Dst: PR_EnumerateHostEnt
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:514,1
    - Dst: pkix_pl_Socket_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:527,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:531,1
    - Dst: PR_htonl
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:532,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:534,1
    - Dst: pkix_pl_Socket_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:534,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:542,1
    - Dst: pkix_pl_Socket_GetCallbackList
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:542,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:544,1
    - Dst: listenCallback
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:544,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:548,1
    - Dst: pkix_pl_Socket_Create
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:548,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:550,1
    - Dst: pkix_pl_Socket_GetCallbackList
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:550,1
    - Dst: dispatcher
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:558,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:562,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:563,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:564,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:566,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c:568,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 79
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 429
    functionDepth: 3
    functionLinenumber: 429
    functionLinenumberEnd: 571
    functionName: test_socket
    functionSourceFile: /src/nss/cmd/libpkix/pkix_pl/module/test_socket.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - listenCallback
    - subTest
    - pkix_pl_Socket_Create
    - PR_EnumerateHostEnt
    - endTests
    - PKIX_TEST_EXPECT_NO_ERROR
    - PKIX_PL_NssContext_Create
    - dispatcher
    - strchr
    - pkix_pl_Socket_GetCallbackList
    - PKIX_TEST_STD_VARS
    - PR_htonl
    - PKIX_TEST_DECREF_BC
    - startTests
    - PR_htons
    - PKIX_TEST_RETURN
    - PR_GetHostByName
    - atoi
    - pkix_pl_Socket_CreateByName
    - printUsage
    linkageType: ''
    returnType: int
    signature: int test_socket(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:40,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 44
    functionName: printUsage
    functionSourceFile: /src/nss/cmd/libpkix/sample_apps/validate_chain.c
    functionUses: 33
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printUsage(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:58,1
    - Dst: PR_Open
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:62,1
    - Dst: SECU_ReadDERFromFile
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:68,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:73,1
    - Dst: PKIX_PL_ByteArray_Create
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:73,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:75,1
    - Dst: PKIX_PL_Cert_Create
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:75,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:77,1
    - Dst: PR_Close
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:87,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:91,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:94,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:96,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 1
    argNames:
    - inFileName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 99
    functionName: createCert
    functionSourceFile: /src/nss/cmd/libpkix/sample_apps/validate_chain.c
    functionUses: 42
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - SECU_ReadDERFromFile
    - PKIX_TEST_STD_VARS
    - PKIX_PL_Cert_Create
    - PKIX_PL_ByteArray_Create
    - PR_Open
    - PKIX_TEST_EXPECT_NO_ERROR
    - PR_Close
    - SECITEM_FreeItem
    linkageType: ''
    returnType: PKIX_PL_Cert
    signature: 'PKIX_PL_Cert *

      createCert(char *inFileName)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:125,1
    - Dst: printUsage
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:128,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:132,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:133,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:139,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:141,1
    - Dst: PKIX_PL_Cert_GetSubject
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:141,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:143,1
    - Dst: PKIX_ComCertSelParams_Create
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:143,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:146,1
    - Dst: PKIX_ComCertSelParams_SetSubject
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:146,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:150,1
    - Dst: PKIX_CertSelector_Create
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:150,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:152,1
    - Dst: PKIX_CertSelector_SetCommonCertSelectorParams
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:152,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:154,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:155,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:157,1
    - Dst: PKIX_TrustAnchor_CreateWithCert
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:157,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:159,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:159,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:160,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:160,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:161,1
    - Dst: PKIX_ProcessingParams_Create
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:161,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:163,1
    - Dst: PKIX_ProcessingParams_SetTargetCertConstraints
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:163,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:165,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:168,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:168,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:171,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:173,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:173,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:177,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:181,1
    - Dst: PKIX_ValidateParams_Create
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:181,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:183,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:185,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:187,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:189,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:191,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:196,1
    - Dst: PKIX_ValidateChain
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:196,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:199,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:205,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:206,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:207,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:208,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:211,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:212,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:213,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:215,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/sample_apps/validate_chain.c:217,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 60
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 220
    functionName: validate_chain
    functionSourceFile: /src/nss/cmd/libpkix/sample_apps/validate_chain.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_List_Create
    - printf
    - PKIX_TEST_EXPECT_NO_ERROR
    - createCert
    - PKIX_Shutdown
    - PKIX_ComCertSelParams_Create
    - PKIX_PL_NssContext_Create
    - PKIX_ValidateParams_Create
    - PKIX_PL_Object_ToString
    - PKIX_List_AppendItem
    - PKIX_ComCertSelParams_SetSubject
    - PKIX_PL_Cert_GetSubject
    - PKIX_TEST_STD_VARS
    - PKIX_ValidateChain
    - PKIX_TEST_DECREF_BC
    - PKIX_TEST_RETURN
    - PKIX_CertSelector_SetCommonCertSelectorParams
    - PKIX_TrustAnchor_CreateWithCert
    - printUsage
    - PKIX_CertSelector_Create
    - PKIX_ProcessingParams_Create
    - PKIX_ProcessingParams_SetTargetCertConstraints
    linkageType: ''
    returnType: int
    signature: int validate_chain(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcert.c:29,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcert.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 32
    functionName: printUsage
    functionSourceFile: /src/nss/cmd/libpkix/sample_apps/dumpcert.c
    functionUses: 34
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printUsage(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcert.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: printFailure
    functionSourceFile: /src/nss/cmd/libpkix/sample_apps/dumpcert.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printFailure(char *msg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PR_Open
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcert.c:54,1
    - Dst: printFailure
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcert.c:57,1
    - Dst: SECU_ReadDERFromFile
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcert.c:60,1
    - Dst: PKIX_PL_ByteArray_Create
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcert.c:65,1
    - Dst: printFailure
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcert.c:68,1
    - Dst: PKIX_PL_Cert_Create
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcert.c:72,1
    - Dst: printFailure
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcert.c:75,1
    - Dst: printFailure
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcert.c:79,1
    - Dst: PR_Close
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcert.c:87,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcert.c:91,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcert.c:95,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 1
    argNames:
    - inFileName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 99
    functionName: createCert
    functionSourceFile: /src/nss/cmd/libpkix/sample_apps/dumpcert.c
    functionUses: 43
    functionsReached:
    - SECU_ReadDERFromFile
    - PKIX_PL_Object_DecRef
    - printFailure
    - PKIX_PL_Cert_Create
    - PKIX_PL_ByteArray_Create
    - PR_Open
    - PR_Close
    - SECITEM_FreeItem
    linkageType: ''
    returnType: PKIX_PL_Cert
    signature: 'PKIX_PL_Cert *

      createCert(char *inFileName)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcert.c:114,1
    - Dst: printUsage
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcert.c:117,1
    - Dst: PKIX_TEST_ARENAS_ARG
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcert.c:121,1
    - Dst: PKIX_Initialize
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcert.c:123,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcert.c:131,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcert.c:135,1
    - Dst: printFailure
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcert.c:138,1
    - Dst: PKIX_PL_String_GetEncoded
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcert.c:143,1
    - Dst: printFailure
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcert.c:150,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcert.c:154,1
    - Dst: printFailure
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcert.c:157,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcert.c:164,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcert.c:168,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcert.c:172,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcert.c:175,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcert.c:177,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcert.c:179,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 182
    functionName: dumpcert
    functionSourceFile: /src/nss/cmd/libpkix/sample_apps/dumpcert.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_PL_String_GetEncoded
    - PKIX_PL_Object_DecRef
    - PKIX_PL_Object_ToString
    - PKIX_TEST_STD_VARS
    - printFailure
    - printf
    - PKIX_Initialize
    - PKIX_PL_Free
    - PKIX_Shutdown
    - endTests
    - createCert
    - PKIX_TEST_ARENAS_ARG
    - printUsage
    linkageType: ''
    returnType: int
    signature: int dumpcert(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:40,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 45
    functionName: printUsage
    functionSourceFile: /src/nss/cmd/libpkix/sample_apps/build_chain.c
    functionUses: 35
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printUsage(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:59,1
    - Dst: PR_Open
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:63,1
    - Dst: SECU_ReadDERFromFile
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:69,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:74,1
    - Dst: PKIX_PL_ByteArray_Create
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:74,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:76,1
    - Dst: PKIX_PL_Cert_Create
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:76,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:78,1
    - Dst: PR_Close
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:88,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:92,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:95,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:97,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 1
    argNames:
    - inFileName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 100
    functionName: createCert
    functionSourceFile: /src/nss/cmd/libpkix/sample_apps/build_chain.c
    functionUses: 44
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_TEST_RETURN
    - SECU_ReadDERFromFile
    - PKIX_TEST_STD_VARS
    - PKIX_PL_Cert_Create
    - PKIX_PL_ByteArray_Create
    - PR_Open
    - PKIX_TEST_EXPECT_NO_ERROR
    - PR_Close
    - SECITEM_FreeItem
    linkageType: ''
    returnType: PKIX_PL_Cert
    signature: 'PKIX_PL_Cert *

      createCert(char *inFileName)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:128,1
    - Dst: printUsage
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:131,1
    - Dst: PKIX_TEST_ARENAS_ARG
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:135,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:137,1
    - Dst: PKIX_Initialize
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:137,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:147,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:149,1
    - Dst: PKIX_TrustAnchor_CreateWithCert
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:149,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:150,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:150,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:151,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:151,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:152,1
    - Dst: PKIX_ProcessingParams_Create
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:152,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:155,1
    - Dst: PKIX_ComCertSelParams_Create
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:155,1
    - Dst: createCert
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:158,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:160,1
    - Dst: PKIX_ComCertSelParams_SetCertificate
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:160,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:162,1
    - Dst: PKIX_CertSelector_Create
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:162,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:164,1
    - Dst: PKIX_CertSelector_SetCommonCertSelectorParams
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:164,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:166,1
    - Dst: PKIX_ProcessingParams_SetTargetCertConstraints
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:166,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:172,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:172,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:174,1
    - Dst: PKIX_PL_CollectionCertStore_Create
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:174,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:175,1
    - Dst: PKIX_List_Create
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:175,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:176,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:176,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:178,1
    - Dst: PKIX_ProcessingParams_SetCertStores
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:178,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:182,1
    - Dst: PKIX_BuildChain
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:182,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:194,1
    - Dst: PKIX_BuildResult_GetCertChain
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:194,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:196,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:196,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:198,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:201,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:201,1
    - Dst: PKIX_Cert2ASCII
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:203,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:205,1
    - Dst: PKIX_TEST_EXPECT_NO_ERROR
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:207,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:207,1
    - Dst: PKIX_TEST_DECREF_BC
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:210,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:216,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:218,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:221,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:223,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:224,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:225,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:226,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:227,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:228,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:229,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:230,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:231,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:232,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:233,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:234,1
    - Dst: PKIX_TEST_DECREF_AC
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:235,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:237,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/sample_apps/build_chain.c:239,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 63
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 102
    functionDepth: 3
    functionLinenumber: 102
    functionLinenumberEnd: 242
    functionName: build_chain
    functionSourceFile: /src/nss/cmd/libpkix/sample_apps/build_chain.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_DECREF_AC
    - PKIX_List_Create
    - printf
    - PKIX_TEST_EXPECT_NO_ERROR
    - createCert
    - PKIX_Shutdown
    - PKIX_ComCertSelParams_Create
    - PKIX_BuildChain
    - PKIX_Initialize
    - PKIX_List_AppendItem
    - PKIX_BuildResult_GetCertChain
    - PKIX_Cert2ASCII
    - PKIX_TEST_STD_VARS
    - PKIX_ComCertSelParams_SetCertificate
    - PKIX_List_GetLength
    - PKIX_TEST_DECREF_BC
    - PKIX_TEST_RETURN
    - PKIX_PL_String_Create
    - PKIX_ProcessingParams_Create
    - PKIX_CertSelector_SetCommonCertSelectorParams
    - PKIX_ProcessingParams_SetCertStores
    - PKIX_PL_Free
    - PKIX_TrustAnchor_CreateWithCert
    - PKIX_TEST_ARENAS_ARG
    - printUsage
    - PKIX_CertSelector_Create
    - PKIX_PL_CollectionCertStore_Create
    - PKIX_ProcessingParams_SetTargetCertConstraints
    - PKIX_List_GetItem
    linkageType: ''
    returnType: int
    signature: int build_chain(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcrl.c:29,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcrl.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 32
    functionName: printUsage
    functionSourceFile: /src/nss/cmd/libpkix/sample_apps/dumpcrl.c
    functionUses: 36
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printUsage(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcrl.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: printFailure
    functionSourceFile: /src/nss/cmd/libpkix/sample_apps/dumpcrl.c
    functionUses: 2
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printFailure(char *msg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcrl.c:52,1
    - Dst: PR_Open
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcrl.c:56,1
    - Dst: printFailure
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcrl.c:59,1
    - Dst: SECU_ReadDERFromFile
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcrl.c:62,1
    - Dst: PKIX_PL_ByteArray_Create
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcrl.c:67,1
    - Dst: printFailure
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcrl.c:70,1
    - Dst: PKIX_PL_CRL_Create
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcrl.c:74,1
    - Dst: printFailure
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcrl.c:76,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcrl.c:80,1
    - Dst: printFailure
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcrl.c:82,1
    - Dst: PR_Close
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcrl.c:90,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcrl.c:94,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcrl.c:98,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcrl.c:101,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 1
    argNames:
    - inFileName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 104
    functionName: createCRL
    functionSourceFile: /src/nss/cmd/libpkix/sample_apps/dumpcrl.c
    functionUses: 4
    functionsReached:
    - PKIX_TEST_RETURN
    - SECU_ReadDERFromFile
    - PKIX_PL_Object_DecRef
    - PKIX_TEST_STD_VARS
    - printFailure
    - PKIX_PL_ByteArray_Create
    - PR_Open
    - PR_Close
    - PKIX_PL_CRL_Create
    - SECITEM_FreeItem
    linkageType: ''
    returnType: PKIX_PL_CRL
    signature: 'PKIX_PL_CRL *

      createCRL(char *inFileName)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_TEST_STD_VARS
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcrl.c:119,1
    - Dst: printUsage
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcrl.c:122,1
    - Dst: PKIX_TEST_ARENAS_ARG
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcrl.c:126,1
    - Dst: PKIX_Initialize
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcrl.c:128,1
    - Dst: createCRL
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcrl.c:136,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcrl.c:140,1
    - Dst: printFailure
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcrl.c:143,1
    - Dst: PKIX_PL_String_GetEncoded
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcrl.c:148,1
    - Dst: printFailure
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcrl.c:154,1
    - Dst: printf
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcrl.c:158,1
    - Dst: printFailure
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcrl.c:161,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcrl.c:168,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcrl.c:172,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcrl.c:176,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcrl.c:179,1
    - Dst: PKIX_TEST_RETURN
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcrl.c:181,1
    - Dst: endTests
      Src: /src/nss/cmd/libpkix/sample_apps/dumpcrl.c:183,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 186
    functionName: dumpcrl
    functionSourceFile: /src/nss/cmd/libpkix/sample_apps/dumpcrl.c
    functionUses: 0
    functionsReached:
    - PKIX_TEST_RETURN
    - PKIX_PL_String_GetEncoded
    - createCRL
    - PKIX_PL_Object_DecRef
    - PKIX_PL_Object_ToString
    - PKIX_TEST_STD_VARS
    - printFailure
    - printf
    - PKIX_Initialize
    - PKIX_PL_Free
    - PKIX_Shutdown
    - endTests
    - PKIX_TEST_ARENAS_ARG
    - printUsage
    linkageType: ''
    returnType: int
    signature: int dumpcrl(int argc, char *argv[])
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: PR_Open
      Src: /src/nss/cmd/signtool/signtool.c:146,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:148,1
    - Dst: pr_fgets
      Src: /src/nss/cmd/signtool/signtool.c:153,1
    - Dst: PL_strchr
      Src: /src/nss/cmd/signtool/signtool.c:158,1
    - Dst: PL_strchr
      Src: /src/nss/cmd/signtool/signtool.c:160,1
    - Dst: PL_strchr
      Src: /src/nss/cmd/signtool/signtool.c:165,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/signtool/signtool.c:177,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/signtool/signtool.c:179,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/signtool/signtool.c:181,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/signtool/signtool.c:183,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/signtool/signtool.c:185,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/signtool/signtool.c:187,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/signtool/signtool.c:189,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/signtool/signtool.c:191,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:194,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/signtool.c:198,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/signtool/signtool.c:201,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/signtool/signtool.c:202,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/signtool/signtool.c:204,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/signtool/signtool.c:206,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/signtool/signtool.c:208,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/signtool/signtool.c:210,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/signtool/signtool.c:212,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/signtool/signtool.c:214,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/signtool/signtool.c:216,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/signtool/signtool.c:218,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/signtool/signtool.c:220,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/signtool/signtool.c:222,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/signtool/signtool.c:224,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/signtool/signtool.c:226,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/signtool/signtool.c:228,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/signtool/signtool.c:230,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/signtool/signtool.c:232,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/signtool/signtool.c:234,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/signtool/signtool.c:236,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/signtool/signtool.c:238,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/signtool/signtool.c:240,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:243,1
    - Dst: ProcessOneOpt
      Src: /src/nss/cmd/signtool/signtool.c:252,1
    - Dst: PR_Close
      Src: /src/nss/cmd/signtool/signtool.c:261,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 128
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 263
    functionName: ProcessCommandFile
    functionSourceFile: /src/nss/cmd/signtool/signtool.c
    functionUses: 0
    functionsReached:
    - pr_fgets
    - PR_fprintf
    - PL_strcasecmp
    - PR_Free
    - PR_Open
    - PL_strdup
    - PL_strchr
    - PR_Close
    - ProcessOneOpt
    linkageType: ''
    returnType: int
    signature: int ProcessCommandFile()
  - BBCount: 45
    BranchProfiles: []
    Callsites:
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/signtool/signtool.c:293,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/signtool/signtool.c:295,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/signtool/signtool.c:297,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/signtool/signtool.c:299,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/signtool/signtool.c:301,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/signtool/signtool.c:303,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:306,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:406,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:416,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/signtool.c:420,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/signtool/signtool.c:423,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:425,1
    - Dst: ProcessOneOpt
      Src: /src/nss/cmd/signtool/signtool.c:431,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 158
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 443
    functionName: parse_args
    functionSourceFile: /src/nss/cmd/signtool/signtool.c
    functionUses: 1
    functionsReached:
    - PL_strcasecmp
    - PR_fprintf
    - PR_Free
    - PL_strdup
    - ProcessOneOpt
    linkageType: ''
    returnType: int
    signature: int parse_args(int argc, char *argv[])
  - BBCount: 72
    BranchProfiles: []
    Callsites:
    - Dst: Usage
      Src: /src/nss/cmd/signtool/signtool.c:464,1
    - Dst: LongUsage
      Src: /src/nss/cmd/signtool/signtool.c:467,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:471,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/signtool.c:473,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:477,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/signtool/signtool.c:481,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:486,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:490,1
    - Dst: atoi
      Src: /src/nss/cmd/signtool/signtool.c:494,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:500,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/signtool.c:502,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:506,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/signtool/signtool.c:510,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:515,1
    - Dst: PL_HashTableAdd
      Src: /src/nss/cmd/signtool/signtool.c:520,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:526,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/signtool.c:529,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:533,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/signtool/signtool.c:538,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:543,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/signtool.c:546,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:550,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/signtool/signtool.c:555,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:560,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/signtool.c:563,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:567,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/signtool/signtool.c:572,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:578,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:586,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/signtool.c:589,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:593,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/signtool/signtool.c:598,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:609,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/signtool.c:612,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:616,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/signtool/signtool.c:622,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:627,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/signtool.c:630,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:634,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/signtool/signtool.c:639,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:644,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/signtool.c:647,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:651,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/signtool/signtool.c:656,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:661,1
    - Dst: PL_HashTableAdd
      Src: /src/nss/cmd/signtool/signtool.c:666,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:678,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/signtool.c:681,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:685,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/signtool/signtool.c:690,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:695,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/signtool.c:698,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:702,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/signtool/signtool.c:707,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:715,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/signtool.c:718,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:722,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/signtool/signtool.c:727,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:732,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/signtool.c:735,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:739,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/signtool/signtool.c:744,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:749,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/signtool.c:752,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:756,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/signtool/signtool.c:761,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:772,1
    - Dst: atoi
      Src: /src/nss/cmd/signtool/signtool.c:777,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:782,1
    - Dst: atoi
      Src: /src/nss/cmd/signtool/signtool.c:785,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:788,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:795,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/signtool.c:796,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:800,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/signtool/signtool.c:804,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:811,1
    CyclomaticComplexity: 92
    EdgeCount: 92
    ICount: 350
    argCount: 2
    argNames:
    - type
    - arg
    argTypes:
    - OPT_TYPE
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 457
    functionDepth: 1
    functionLinenumber: 457
    functionLinenumberEnd: 819
    functionName: ProcessOneOpt
    functionSourceFile: /src/nss/cmd/signtool/signtool.c
    functionUses: 2
    functionsReached:
    - PR_fprintf
    - PL_HashTableAdd
    - LongUsage
    - PR_Free
    - atoi
    - PL_strdup
    - Usage
    linkageType: ''
    returnType: int
    signature: int ProcessOneOpt(OPT_TYPE type, char *arg)
  - BBCount: 41
    BranchProfiles: []
    Callsites:
    - Dst: Usage
      Src: /src/nss/cmd/signtool/signtool.c:837,1
    - Dst: PL_NewHashTable
      Src: /src/nss/cmd/signtool/signtool.c:840,1
    - Dst: PL_NewHashTable
      Src: /src/nss/cmd/signtool/signtool.c:842,1
    - Dst: parse_args
      Src: /src/nss/cmd/signtool/signtool.c:845,1
    - Dst: ProcessCommandFile
      Src: /src/nss/cmd/signtool/signtool.c:852,1
    - Dst: PR_Access
      Src: /src/nss/cmd/signtool/signtool.c:860,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:862,1
    - Dst: PR_Delete
      Src: /src/nss/cmd/signtool/signtool.c:866,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:867,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/signtool.c:869,1
    - Dst: PR_Open
      Src: /src/nss/cmd/signtool/signtool.c:872,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:877,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/signtool.c:880,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:888,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:898,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:900,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:910,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:922,1
    - Dst: get_default_cert_dir
      Src: /src/nss/cmd/signtool/signtool.c:930,1
    - Dst: VerifyCertDir
      Src: /src/nss/cmd/signtool/signtool.c:932,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:936,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:944,1
    - Dst: InitCrypto
      Src: /src/nss/cmd/signtool/signtool.c:951,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:952,1
    - Dst: CERT_EnableOCSPChecking
      Src: /src/nss/cmd/signtool/signtool.c:959,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/cmd/signtool/signtool.c:959,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:961,1
    - Dst: VerifyJar
      Src: /src/nss/cmd/signtool/signtool.c:968,1
    - Dst: ListCerts
      Src: /src/nss/cmd/signtool/signtool.c:974,1
    - Dst: JarListModules
      Src: /src/nss/cmd/signtool/signtool.c:980,1
    - Dst: GenerateCert
      Src: /src/nss/cmd/signtool/signtool.c:982,1
    - Dst: JarWho
      Src: /src/nss/cmd/signtool/signtool.c:988,1
    - Dst: PR_OpenDir
      Src: /src/nss/cmd/signtool/signtool.c:996,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:998,1
    - Dst: PR_CloseDir
      Src: /src/nss/cmd/signtool/signtool.c:1004,1
    - Dst: RemoveAllArc
      Src: /src/nss/cmd/signtool/signtool.c:1008,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:1009,1
    - Dst: InlineJavaScript
      Src: /src/nss/cmd/signtool/signtool.c:1017,1
    - Dst: SignAllArc
      Src: /src/nss/cmd/signtool/signtool.c:1023,1
    - Dst: RemoveAllArc
      Src: /src/nss/cmd/signtool/signtool.c:1030,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:1034,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/signtool.c:1038,1
    - Dst: SignArchive
      Src: /src/nss/cmd/signtool/signtool.c:1042,1
    - Dst: Usage
      Src: /src/nss/cmd/signtool/signtool.c:1045,1
    - Dst: PL_HashTableDestroy
      Src: /src/nss/cmd/signtool/signtool.c:1049,1
    - Dst: PL_HashTableDestroy
      Src: /src/nss/cmd/signtool/signtool.c:1053,1
    - Dst: PR_Close
      Src: /src/nss/cmd/signtool/signtool.c:1057,1
    - Dst: rm_dash_r
      Src: /src/nss/cmd/signtool/signtool.c:1059,1
    - Dst: NSS_Shutdown
      Src: /src/nss/cmd/signtool/signtool.c:1061,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/signtool.c:1062,1
    CyclomaticComplexity: 71
    EdgeCount: 71
    ICount: 196
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 825
    functionDepth: 2
    functionLinenumber: 825
    functionLinenumberEnd: 1066
    functionName: main
    functionSourceFile: /src/nss/cmd/signtool/signtool.c
    functionUses: 2
    functionsReached:
    - PL_HashTableDestroy
    - VerifyCertDir
    - JarListModules
    - Usage
    - ProcessCommandFile
    - PR_OpenDir
    - InitCrypto
    - PR_CloseDir
    - SignAllArc
    - CERT_GetDefaultCertDB
    - RemoveAllArc
    - get_default_cert_dir
    - PL_NewHashTable
    - CERT_EnableOCSPChecking
    - SignArchive
    - PR_Access
    - exit
    - GenerateCert
    - JarWho
    - PR_Open
    - PR_Delete
    - rm_dash_r
    - InlineJavaScript
    - PR_Close
    - parse_args
    - PR_fprintf
    - VerifyJar
    - NSS_Shutdown
    - ListCerts
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: JAR_new
      Src: /src/nss/cmd/signtool/verify.c:30,1
    - Dst: fopen
      Src: /src/nss/cmd/signtool/verify.c:32,1
    - Dst: perror
      Src: /src/nss/cmd/signtool/verify.c:33,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/verify.c:34,1
    - Dst: fclose
      Src: /src/nss/cmd/signtool/verify.c:36,1
    - Dst: JAR_set_callback
      Src: /src/nss/cmd/signtool/verify.c:38,1
    - Dst: JAR_pass_archive
      Src: /src/nss/cmd/signtool/verify.c:40,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/verify.c:44,1
    - Dst: JAR_get_error
      Src: /src/nss/cmd/signtool/verify.c:51,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/signtool/verify.c:53,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/signtool/verify.c:53,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/verify.c:56,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/verify.c:64,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/verify.c:68,1
    - Dst: verify_global
      Src: /src/nss/cmd/signtool/verify.c:71,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/verify.c:74,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/verify.c:75,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/verify.c:76,1
    - Dst: JAR_find
      Src: /src/nss/cmd/signtool/verify.c:78,1
    - Dst: JAR_find_next
      Src: /src/nss/cmd/signtool/verify.c:80,1
    - Dst: rm_dash_r
      Src: /src/nss/cmd/signtool/verify.c:82,1
    - Dst: JAR_verified_extract
      Src: /src/nss/cmd/signtool/verify.c:83,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/verify.c:95,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/verify.c:99,1
    - Dst: JAR_get_error
      Src: /src/nss/cmd/signtool/verify.c:100,1
    - Dst: JAR_find_end
      Src: /src/nss/cmd/signtool/verify.c:104,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/verify.c:108,1
    - Dst: give_help
      Src: /src/nss/cmd/signtool/verify.c:111,1
    - Dst: JAR_destroy
      Src: /src/nss/cmd/signtool/verify.c:114,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 58
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 119
    functionName: VerifyJar
    functionSourceFile: /src/nss/cmd/signtool/verify.c
    functionUses: 2
    functionsReached:
    - JAR_get_error
    - JAR_new
    - perror
    - JAR_pass_archive
    - JAR_destroy
    - verify_global
    - fopen
    - JAR_find_end
    - fclose
    - JAR_verified_extract
    - give_help
    - JAR_find
    - exit
    - rm_dash_r
    - JAR_set_callback
    - SECU_Strerror
    - PR_fprintf
    - PORT_GetError
    - JAR_find_next
    linkageType: ''
    returnType: int
    signature: int VerifyJar(char *filename)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: JAR_find
      Src: /src/nss/cmd/signtool/verify.c:138,1
    - Dst: JAR_find_next
      Src: /src/nss/cmd/signtool/verify.c:140,1
    - Dst: PORT_Strncmp
      Src: /src/nss/cmd/signtool/verify.c:141,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/cmd/signtool/verify.c:148,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/verify.c:149,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/cmd/signtool/verify.c:153,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/verify.c:154,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/cmd/signtool/verify.c:158,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/verify.c:159,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/cmd/signtool/verify.c:165,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/verify.c:167,1
    - Dst: rm_dash_r
      Src: /src/nss/cmd/signtool/verify.c:172,1
    - Dst: JAR_extract
      Src: /src/nss/cmd/signtool/verify.c:173,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/verify.c:174,1
    - Dst: fopen
      Src: /src/nss/cmd/signtool/verify.c:184,1
    - Dst: fgets
      Src: /src/nss/cmd/signtool/verify.c:185,1
    - Dst: PORT_Strncmp
      Src: /src/nss/cmd/signtool/verify.c:195,1
    - Dst: ATOB_AsciiToData
      Src: /src/nss/cmd/signtool/verify.c:197,1
    - Dst: PORT_Strncmp
      Src: /src/nss/cmd/signtool/verify.c:199,1
    - Dst: ATOB_AsciiToData
      Src: /src/nss/cmd/signtool/verify.c:201,1
    - Dst: PORT_Strncmp
      Src: /src/nss/cmd/signtool/verify.c:203,1
    - Dst: ATOB_AsciiToData
      Src: /src/nss/cmd/signtool/verify.c:205,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/verify.c:212,1
    - Dst: PORT_Memcmp
      Src: /src/nss/cmd/signtool/verify.c:214,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/verify.c:220,1
    - Dst: PORT_Memcmp
      Src: /src/nss/cmd/signtool/verify.c:222,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/verify.c:228,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/signtool/verify.c:232,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/signtool/verify.c:233,1
    - Dst: fclose
      Src: /src/nss/cmd/signtool/verify.c:234,1
    - Dst: JAR_find_end
      Src: /src/nss/cmd/signtool/verify.c:240,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 68
    argCount: 1
    argNames:
    - jar
    argTypes:
    - JAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 243
    functionName: verify_global
    functionSourceFile: /src/nss/cmd/signtool/verify.c
    functionUses: 1
    functionsReached:
    - PORT_Strcasecmp
    - fclose
    - PORT_Strncmp
    - PORT_Memcmp
    - ATOB_AsciiToData
    - fgets
    - JAR_find
    - PR_fprintf
    - PORT_Free
    - JAR_find_next
    - fopen
    - rm_dash_r
    - JAR_find_end
    - JAR_extract
    linkageType: ''
    returnType: int
    signature: int verify_global(JAR *jar)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: JAR_new
      Src: /src/nss/cmd/signtool/verify.c:265,1
    - Dst: fopen
      Src: /src/nss/cmd/signtool/verify.c:267,1
    - Dst: perror
      Src: /src/nss/cmd/signtool/verify.c:268,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/verify.c:269,1
    - Dst: fclose
      Src: /src/nss/cmd/signtool/verify.c:271,1
    - Dst: JAR_pass_archive
      Src: /src/nss/cmd/signtool/verify.c:273,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/verify.c:276,1
    - Dst: JAR_get_error
      Src: /src/nss/cmd/signtool/verify.c:284,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/signtool/verify.c:286,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/signtool/verify.c:286,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/verify.c:289,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/verify.c:293,1
    - Dst: JAR_find
      Src: /src/nss/cmd/signtool/verify.c:295,1
    - Dst: JAR_find_next
      Src: /src/nss/cmd/signtool/verify.c:297,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/verify.c:306,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/verify.c:308,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/verify.c:311,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/verify.c:313,1
    - Dst: JAR_find_end
      Src: /src/nss/cmd/signtool/verify.c:320,1
    - Dst: JAR_destroy
      Src: /src/nss/cmd/signtool/verify.c:322,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 324
    functionName: JarWho
    functionSourceFile: /src/nss/cmd/signtool/verify.c
    functionUses: 1
    functionsReached:
    - JAR_pass_archive
    - JAR_get_error
    - fclose
    - JAR_new
    - JAR_destroy
    - SECU_Strerror
    - PR_fprintf
    - PORT_GetError
    - JAR_find
    - exit
    - fopen
    - JAR_find_next
    - JAR_find_end
    - perror
    linkageType: ''
    returnType: int
    signature: int JarWho(char *filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/verify.c:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - status
    - jar
    - metafile
    - pathname
    - errortext
    argTypes:
    - int
    - JAR*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 337
    functionName: jar_cb
    functionSourceFile: /src/nss/cmd/signtool/verify.c
    functionUses: 0
    functionsReached:
    - PR_fprintf
    linkageType: ''
    returnType: int
    signature: "int jar_cb(int status, JAR *jar, const char *metafile,\n       char
      *pathname, char *errortext)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/signtool/list.c:27,1
    - Dst: out_of_memory
      Src: /src/nss/cmd/signtool/list.c:29,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/cmd/signtool/list.c:35,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/list.c:38,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/list.c:39,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/list.c:41,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/list.c:42,1
    - Dst: PK11_TraverseSlotCerts
      Src: /src/nss/cmd/signtool/list.c:48,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/list.c:52,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/list.c:57,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/list.c:62,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/list.c:64,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/list.c:68,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/list.c:73,1
    - Dst: PK11_FindCertFromNickname
      Src: /src/nss/cmd/signtool/list.c:81,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/list.c:84,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/list.c:87,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/list.c:88,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/list.c:90,1
    - Dst: CERT_CertTimesValid
      Src: /src/nss/cmd/signtool/list.c:92,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/list.c:94,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/list.c:96,1
    - Dst: CERT_VerifyCert
      Src: /src/nss/cmd/signtool/list.c:99,1
    - Dst: PR_Now
      Src: /src/nss/cmd/signtool/list.c:100,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/list.c:105,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/list.c:109,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/list.c:112,1
    - Dst: displayVerifyLog
      Src: /src/nss/cmd/signtool/list.c:114,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/list.c:118,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/signtool/list.c:124,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 73
    argCount: 2
    argNames:
    - key
    - list_certs
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 131
    functionName: ListCerts
    functionSourceFile: /src/nss/cmd/signtool/list.c
    functionUses: 3
    functionsReached:
    - displayVerifyLog
    - PORT_NewArena
    - PORT_FreeArena
    - CERT_VerifyCert
    - PR_fprintf
    - PR_Now
    - CERT_GetDefaultCertDB
    - CERT_CertTimesValid
    - PK11_TraverseSlotCerts
    - PK11_FindCertFromNickname
    - out_of_memory
    linkageType: ''
    returnType: int
    signature: int ListCerts(char *key, int list_certs)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/list.c:162,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/list.c:164,1
    - Dst: CERT_FindCertIssuer
      Src: /src/nss/cmd/signtool/list.c:170,1
    - Dst: PR_Now
      Src: /src/nss/cmd/signtool/list.c:170,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/list.c:174,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/signtool/list.c:178,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/list.c:182,1
    - Dst: DER_TimeChoiceDayToAscii
      Src: /src/nss/cmd/signtool/list.c:186,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/list.c:188,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/signtool/list.c:189,1
    - Dst: CERT_VerifyCertNow
      Src: /src/nss/cmd/signtool/list.c:193,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/signtool/list.c:197,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/list.c:198,1
    - Dst: secErrorString
      Src: /src/nss/cmd/signtool/list.c:200,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 3
    argNames:
    - cert
    - k
    - data
    argTypes:
    - CERTCertificate*
    - SECItem*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 206
    functionName: cert_trav_callback
    functionSourceFile: /src/nss/cmd/signtool/list.c
    functionUses: 0
    functionsReached:
    - CERT_FindCertIssuer
    - DER_TimeChoiceDayToAscii
    - PORT_Free
    - PR_fprintf
    - CERT_VerifyCertNow
    - PORT_GetError
    - PR_Now
    - CERT_DestroyCertificate
    - secErrorString
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus cert_trav_callback(CERTCertificate *cert, SECItem *k, void
      *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/signtool/util.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 26
    functionName: XP_GetString
    functionSourceFile: /src/nss/cmd/signtool/util.c
    functionUses: 0
    functionsReached:
    - SECU_Strerror
    linkageType: ''
    returnType: char
    signature: 'char *

      XP_GetString(int i)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: FE_SetPasswordEnabled
    functionSourceFile: /src/nss/cmd/signtool/util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FE_SetPasswordEnabled()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: FE_GetInitContext
    functionSourceFile: /src/nss/cmd/signtool/util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void *

      FE_GetInitContext(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: XP_FindSomeContext
    functionSourceFile: /src/nss/cmd/signtool/util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void *

      XP_FindSomeContext()'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: ET_moz_CallFunction
    functionSourceFile: /src/nss/cmd/signtool/util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ET_moz_CallFunction()
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PR_OpenDir
      Src: /src/nss/cmd/signtool/util.c:67,1
    - Dst: PR_ReadDir
      Src: /src/nss/cmd/signtool/util.c:71,1
    - Dst: PR_ReadDir
      Src: /src/nss/cmd/signtool/util.c:71,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/util.c:79,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/signtool/util.c:80,1
    - Dst: PL_strcaserstr
      Src: /src/nss/cmd/signtool/util.c:82,1
    - Dst: strlen
      Src: /src/nss/cmd/signtool/util.c:83,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/util.c:86,1
    - Dst: rm_dash_r
      Src: /src/nss/cmd/signtool/util.c:89,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/util.c:90,1
    - Dst: is_dir
      Src: /src/nss/cmd/signtool/util.c:95,1
    - Dst: RemoveAllArc
      Src: /src/nss/cmd/signtool/util.c:96,1
    - Dst: PR_CloseDir
      Src: /src/nss/cmd/signtool/util.c:104,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/util.c:106,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 1
    argNames:
    - tree
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 109
    functionName: RemoveAllArc
    functionSourceFile: /src/nss/cmd/signtool/util.c
    functionUses: 2
    functionsReached:
    - PR_OpenDir
    - PR_fprintf
    - PL_strcaserstr
    - PR_Free
    - PR_CloseDir
    - PR_smprintf
    - RemoveAllArc
    - rm_dash_r
    - PR_ReadDir
    - is_dir
    - strlen
    linkageType: ''
    returnType: int
    signature: int RemoveAllArc(char *tree)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetFileInfo
      Src: /src/nss/cmd/signtool/util.c:125,1
    - Dst: PR_OpenDir
      Src: /src/nss/cmd/signtool/util.c:131,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/util.c:133,1
    - Dst: PR_ReadDir
      Src: /src/nss/cmd/signtool/util.c:139,1
    - Dst: snprintf
      Src: /src/nss/cmd/signtool/util.c:140,1
    - Dst: rm_dash_r
      Src: /src/nss/cmd/signtool/util.c:141,1
    - Dst: PR_CloseDir
      Src: /src/nss/cmd/signtool/util.c:142,1
    - Dst: PR_CloseDir
      Src: /src/nss/cmd/signtool/util.c:147,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/util.c:148,1
    - Dst: PR_RmDir
      Src: /src/nss/cmd/signtool/util.c:154,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/util.c:155,1
    - Dst: PR_Delete
      Src: /src/nss/cmd/signtool/util.c:160,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/util.c:161,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 167
    functionName: rm_dash_r
    functionSourceFile: /src/nss/cmd/signtool/util.c
    functionUses: 7
    functionsReached:
    - PR_OpenDir
    - PR_fprintf
    - PR_CloseDir
    - snprintf
    - PR_Delete
    - rm_dash_r
    - PR_ReadDir
    - PR_GetFileInfo
    - PR_RmDir
    linkageType: ''
    returnType: int
    signature: int rm_dash_r(char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exit
      Src: /src/nss/cmd/signtool/util.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 203
    functionName: Usage
    functionSourceFile: /src/nss/cmd/signtool/util.c
    functionUses: 59
    functionsReached:
    - exit
    linkageType: ''
    returnType: void
    signature: void Usage(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exit
      Src: /src/nss/cmd/signtool/util.c:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 117
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 390
    functionName: LongUsage
    functionSourceFile: /src/nss/cmd/signtool/util.c
    functionUses: 3
    functionsReached:
    - exit
    linkageType: ''
    returnType: void
    signature: void LongUsage(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/util.c:404,1
    - Dst: JAR_get_error
      Src: /src/nss/cmd/signtool/util.c:404,1
    - Dst: give_help
      Src: /src/nss/cmd/signtool/util.c:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 407
    functionName: print_error
    functionSourceFile: /src/nss/cmd/signtool/util.c
    functionUses: 0
    functionsReached:
    - JAR_get_error
    - PR_fprintf
    - give_help
    linkageType: ''
    returnType: void
    signature: void print_error(int err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/util.c:418,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/util.c:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 415
    functionDepth: 1
    functionLinenumber: 415
    functionLinenumberEnd: 421
    functionName: out_of_memory
    functionSourceFile: /src/nss/cmd/signtool/util.c
    functionUses: 2
    functionsReached:
    - PR_fprintf
    - exit
    linkageType: ''
    returnType: void
    signature: void out_of_memory(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dir
    - keyName
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 436
    functionName: VerifyCertDir
    functionSourceFile: /src/nss/cmd/signtool/util.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void VerifyCertDir(char *dir, char *keyName)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/nss/cmd/signtool/util.c:460,1
    - Dst: strcat
      Src: /src/nss/cmd/signtool/util.c:462,1
    - Dst: strcat
      Src: /src/nss/cmd/signtool/util.c:463,1
    - Dst: PR_OpenDir
      Src: /src/nss/cmd/signtool/util.c:466,1
    - Dst: PR_ReadDir
      Src: /src/nss/cmd/signtool/util.c:470,1
    - Dst: PR_ReadDir
      Src: /src/nss/cmd/signtool/util.c:470,1
    - Dst: strcmp
      Src: /src/nss/cmd/signtool/util.c:471,1
    - Dst: strcmp
      Src: /src/nss/cmd/signtool/util.c:472,1
    - Dst: strcmp
      Src: /src/nss/cmd/signtool/util.c:478,1
    - Dst: PL_HashTableLookup
      Src: /src/nss/cmd/signtool/util.c:482,1
    - Dst: strcpy
      Src: /src/nss/cmd/signtool/util.c:485,1
    - Dst: strcat
      Src: /src/nss/cmd/signtool/util.c:487,1
    - Dst: strcat
      Src: /src/nss/cmd/signtool/util.c:490,1
    - Dst: strcat
      Src: /src/nss/cmd/signtool/util.c:491,1
    - Dst: strcat
      Src: /src/nss/cmd/signtool/util.c:493,1
    - Dst: is_dir
      Src: /src/nss/cmd/signtool/util.c:495,1
    - Dst: strcpy
      Src: /src/nss/cmd/signtool/util.c:498,1
    - Dst: strcat
      Src: /src/nss/cmd/signtool/util.c:500,1
    - Dst: strcat
      Src: /src/nss/cmd/signtool/util.c:501,1
    - Dst: is_dir
      Src: /src/nss/cmd/signtool/util.c:510,1
    - Dst: strcpy
      Src: /src/nss/cmd/signtool/util.c:514,1
    - Dst: strcat
      Src: /src/nss/cmd/signtool/util.c:516,1
    - Dst: strcat
      Src: /src/nss/cmd/signtool/util.c:518,1
    - Dst: foreach
      Src: /src/nss/cmd/signtool/util.c:520,1
    - Dst: PR_CloseDir
      Src: /src/nss/cmd/signtool/util.c:529,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 51
    argCount: 5
    argNames:
    - dirname
    - prefix
    - recurse
    - includeDirs
    - arg
    argTypes:
    - char*
    - char*
    - PRBool
    - PRBool
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 532
    functionName: foreach
    functionSourceFile: /src/nss/cmd/signtool/util.c
    functionUses: 1
    functionsReached:
    - PR_OpenDir
    - strcmp
    - PL_HashTableLookup
    - strcpy
    - PR_CloseDir
    - PR_ReadDir
    - foreach
    - is_dir
    - strcat
    linkageType: ''
    returnType: int
    signature: "int foreach (char *dirname, char *prefix,\n             int (*fn)(char
      *relpath, char *basedir, char *reldir, char *filename,\n                       void
      *arg),\n             PRBool recurse, PRBool includeDirs, void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetFileInfo
      Src: /src/nss/cmd/signtool/util.c:546,1
    - Dst: printf
      Src: /src/nss/cmd/signtool/util.c:547,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 552
    functionName: is_dir
    functionSourceFile: /src/nss/cmd/signtool/util.c
    functionUses: 2
    functionsReached:
    - PR_GetFileInfo
    - printf
    linkageType: ''
    returnType: int
    signature: int is_dir(char *filename)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/nss/cmd/signtool/util.c:651,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 89
    argCount: 1
    argNames:
    - code
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 562
    functionDepth: 1
    functionLinenumber: 562
    functionLinenumberEnd: 657
    functionName: secErrorString
    functionSourceFile: /src/nss/cmd/signtool/util.c
    functionUses: 1
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: char
    signature: 'char *

      secErrorString(long code)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/signtool/util.c:691,1
    - Dst: printf
      Src: /src/nss/cmd/signtool/util.c:694,1
    - Dst: secErrorString
      Src: /src/nss/cmd/signtool/util.c:694,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 1
    argNames:
    - log
    argTypes:
    - CERTVerifyLog*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 665
    functionDepth: 2
    functionLinenumber: 665
    functionLinenumberEnd: 696
    functionName: displayVerifyLog
    functionSourceFile: /src/nss/cmd/signtool/util.c
    functionUses: 1
    functionsReached:
    - secErrorString
    - printf
    linkageType: ''
    returnType: void
    signature: void displayVerifyLog(CERTVerifyLog *log)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SECMOD_GetDefaultModuleListLock
      Src: /src/nss/cmd/signtool/util.c:717,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/util.c:719,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/util.c:722,1
    - Dst: SECMOD_GetReadLock
      Src: /src/nss/cmd/signtool/util.c:725,1
    - Dst: SECMOD_GetDefaultModuleList
      Src: /src/nss/cmd/signtool/util.c:727,1
    - Dst: SECMOD_ReleaseReadLock
      Src: /src/nss/cmd/signtool/util.c:730,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/util.c:731,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/util.c:733,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/util.c:736,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/util.c:737,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/util.c:741,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/util.c:744,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/util.c:746,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/util.c:749,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/util.c:753,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/util.c:755,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/util.c:759,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/util.c:761,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/util.c:766,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/util.c:767,1
    - Dst: PK11_GetSlotName
      Src: /src/nss/cmd/signtool/util.c:767,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/util.c:768,1
    - Dst: PK11_GetTokenName
      Src: /src/nss/cmd/signtool/util.c:768,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/util.c:772,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/util.c:775,1
    - Dst: SECMOD_ReleaseReadLock
      Src: /src/nss/cmd/signtool/util.c:778,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 706
    functionDepth: 1
    functionLinenumber: 706
    functionLinenumberEnd: 779
    functionName: JarListModules
    functionSourceFile: /src/nss/cmd/signtool/util.c
    functionUses: 1
    functionsReached:
    - SECMOD_ReleaseReadLock
    - PK11_GetTokenName
    - PK11_GetSlotName
    - PR_fprintf
    - SECMOD_GetReadLock
    - exit
    - SECMOD_GetDefaultModuleListLock
    - SECMOD_GetDefaultModuleList
    linkageType: ''
    returnType: void
    signature: void JarListModules(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/nss/cmd/signtool/util.c:796,1
    - Dst: strlen
      Src: /src/nss/cmd/signtool/util.c:802,1
    - Dst: isspace
      Src: /src/nss/cmd/signtool/util.c:803,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 787
    functionDepth: 1
    functionLinenumber: 787
    functionLinenumberEnd: 813
    functionName: chop
    functionSourceFile: /src/nss/cmd/signtool/util.c
    functionUses: 0
    functionsReached:
    - isspace
    - strlen
    linkageType: ''
    returnType: char
    signature: 'char *

      chop(char *str)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/util.c:827,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/util.c:829,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 821
    functionDepth: 1
    functionLinenumber: 821
    functionLinenumberEnd: 830
    functionName: FatalError
    functionSourceFile: /src/nss/cmd/signtool/util.c
    functionUses: 0
    functionsReached:
    - PR_fprintf
    - exit
    linkageType: ''
    returnType: void
    signature: void FatalError(char *msg)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: NSS_Init
      Src: /src/nss/cmd/signtool/util.c:847,1
    - Dst: NSS_InitReadWrite
      Src: /src/nss/cmd/signtool/util.c:849,1
    - Dst: SECU_PrintPRandOSError
      Src: /src/nss/cmd/signtool/util.c:852,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/util.c:853,1
    - Dst: SECU_ConfigDirectory
      Src: /src/nss/cmd/signtool/util.c:856,1
    - Dst: PK11_SetPasswordFunc
      Src: /src/nss/cmd/signtool/util.c:861,1
    - Dst: PK11_IsFIPS
      Src: /src/nss/cmd/signtool/util.c:864,1
    - Dst: PK11_GetInternalSlot
      Src: /src/nss/cmd/signtool/util.c:865,1
    - Dst: fprintf
      Src: /src/nss/cmd/signtool/util.c:867,1
    - Dst: PK11_Authenticate
      Src: /src/nss/cmd/signtool/util.c:872,1
    - Dst: fprintf
      Src: /src/nss/cmd/signtool/util.c:874,1
    - Dst: PK11_GetSlotName
      Src: /src/nss/cmd/signtool/util.c:875,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/cmd/signtool/util.c:876,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/cmd/signtool/util.c:879,1
    - Dst: PK11_GetInternalKeySlot
      Src: /src/nss/cmd/signtool/util.c:883,1
    - Dst: fprintf
      Src: /src/nss/cmd/signtool/util.c:885,1
    - Dst: PK11_NeedUserInit
      Src: /src/nss/cmd/signtool/util.c:890,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/util.c:891,1
    - Dst: PK11_IsFIPS
      Src: /src/nss/cmd/signtool/util.c:898,1
    - Dst: PK11_Authenticate
      Src: /src/nss/cmd/signtool/util.c:899,1
    - Dst: fprintf
      Src: /src/nss/cmd/signtool/util.c:901,1
    - Dst: PK11_GetSlotName
      Src: /src/nss/cmd/signtool/util.c:902,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/cmd/signtool/util.c:903,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/cmd/signtool/util.c:907,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 46
    argCount: 2
    argNames:
    - cert_dir
    - readOnly
    argTypes:
    - char*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 836
    functionDepth: 1
    functionLinenumber: 836
    functionLinenumberEnd: 911
    functionName: InitCrypto
    functionSourceFile: /src/nss/cmd/signtool/util.c
    functionUses: 1
    functionsReached:
    - PK11_FreeSlot
    - NSS_InitReadWrite
    - PK11_GetInternalKeySlot
    - NSS_Init
    - PK11_GetSlotName
    - PR_fprintf
    - PK11_NeedUserInit
    - exit
    - SECU_PrintPRandOSError
    - PK11_IsFIPS
    - fprintf
    - PK11_GetInternalSlot
    - PK11_SetPasswordFunc
    - SECU_ConfigDirectory
    - PK11_Authenticate
    linkageType: ''
    returnType: int
    signature: int InitCrypto(char *cert_dir, PRBool readOnly)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetEnvSecure
      Src: /src/nss/cmd/signtool/util.c:932,1
    - Dst: snprintf
      Src: /src/nss/cmd/signtool/util.c:935,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/cmd/signtool/util.c:945,1
    - Dst: snprintf
      Src: /src/nss/cmd/signtool/util.c:948,1
    - Dst: fopen
      Src: /src/nss/cmd/signtool/util.c:950,1
    - Dst: fclose
      Src: /src/nss/cmd/signtool/util.c:951,1
    - Dst: snprintf
      Src: /src/nss/cmd/signtool/util.c:961,1
    - Dst: fopen
      Src: /src/nss/cmd/signtool/util.c:963,1
    - Dst: fclose
      Src: /src/nss/cmd/signtool/util.c:964,1
    - Dst: snprintf
      Src: /src/nss/cmd/signtool/util.c:975,1
    - Dst: fopen
      Src: /src/nss/cmd/signtool/util.c:977,1
    - Dst: fclose
      Src: /src/nss/cmd/signtool/util.c:978,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/util.c:986,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/util.c:988,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/util.c:991,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 995
      start: 923
    functionDepth: 1
    functionLinenumber: 923
    functionLinenumberEnd: 995
    functionName: get_default_cert_dir
    functionSourceFile: /src/nss/cmd/signtool/util.c
    functionUses: 1
    functionsReached:
    - fclose
    - PR_fprintf
    - PR_GetEnvSecure
    - exit
    - fopen
    - snprintf
    linkageType: ''
    returnType: char
    signature: 'char *

      get_default_cert_dir(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/util.c:1004,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/util.c:1006,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/util.c:1008,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/util.c:1010,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - status
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1012
      start: 1000
    functionDepth: 1
    functionLinenumber: 1000
    functionLinenumberEnd: 1012
    functionName: give_help
    functionSourceFile: /src/nss/cmd/signtool/util.c
    functionUses: 2
    functionsReached:
    - PR_fprintf
    linkageType: ''
    returnType: void
    signature: void give_help(int status)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PR_Read
      Src: /src/nss/cmd/signtool/util.c:1029,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - buf
    - size
    - file
    argTypes:
    - char*
    - int
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 1020
    functionDepth: 1
    functionLinenumber: 1020
    functionLinenumberEnd: 1046
    functionName: pr_fgets
    functionSourceFile: /src/nss/cmd/signtool/util.c
    functionUses: 1
    functionsReached:
    - PR_Read
    linkageType: ''
    returnType: char
    signature: 'char *

      pr_fgets(char *buf, int size, PRFileDesc *file)'
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: manifesto
      Src: /src/nss/cmd/signtool/sign.c:55,1
    - Dst: JzipOpen
      Src: /src/nss/cmd/signtool/sign.c:59,1
    - Dst: manifesto
      Src: /src/nss/cmd/signtool/sign.c:64,1
    - Dst: create_pk7
      Src: /src/nss/cmd/signtool/sign.c:68,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/sign.c:70,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/sign.c:73,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/sign.c:81,1
    - Dst: snprintf
      Src: /src/nss/cmd/signtool/sign.c:85,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/sign.c:87,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/sign.c:89,1
    - Dst: snprintf
      Src: /src/nss/cmd/signtool/sign.c:91,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/sign.c:93,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/sign.c:95,1
    - Dst: JzipAdd
      Src: /src/nss/cmd/signtool/sign.c:97,1
    - Dst: foreach
      Src: /src/nss/cmd/signtool/sign.c:100,1
    - Dst: strcpy
      Src: /src/nss/cmd/signtool/sign.c:105,1
    - Dst: snprintf
      Src: /src/nss/cmd/signtool/sign.c:106,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/sign.c:108,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/sign.c:110,1
    - Dst: JzipAdd
      Src: /src/nss/cmd/signtool/sign.c:112,1
    - Dst: snprintf
      Src: /src/nss/cmd/signtool/sign.c:115,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/sign.c:117,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/sign.c:119,1
    - Dst: snprintf
      Src: /src/nss/cmd/signtool/sign.c:121,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/sign.c:123,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/sign.c:125,1
    - Dst: JzipAdd
      Src: /src/nss/cmd/signtool/sign.c:127,1
    - Dst: snprintf
      Src: /src/nss/cmd/signtool/sign.c:132,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/sign.c:134,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/sign.c:136,1
    - Dst: snprintf
      Src: /src/nss/cmd/signtool/sign.c:138,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/sign.c:140,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/sign.c:142,1
    - Dst: JzipAdd
      Src: /src/nss/cmd/signtool/sign.c:144,1
    - Dst: JzipClose
      Src: /src/nss/cmd/signtool/sign.c:147,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/sign.c:151,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/sign.c:154,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 84
    argCount: 8
    argNames:
    - tree
    - keyName
    - zip_file
    - javascript
    - meta_file
    - install_script
    - _optimize
    - recurse
    argTypes:
    - char*
    - char*
    - char*
    - int
    - char*
    - char*
    - int
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 39
    functionDepth: 2
    functionLinenumber: 39
    functionLinenumberEnd: 160
    functionName: SignArchive
    functionSourceFile: /src/nss/cmd/signtool/sign.c
    functionUses: 1
    functionsReached:
    - JzipAdd
    - JzipOpen
    - PR_fprintf
    - strcpy
    - exit
    - create_pk7
    - snprintf
    - foreach
    - manifesto
    - JzipClose
    linkageType: ''
    returnType: int
    signature: "int SignArchive(char *tree, char *keyName, char *zip_file, int javascript,\n
      \           char *meta_file, char *install_script, int _optimize, PRBool recurse)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: foreach
      Src: /src/nss/cmd/signtool/sign.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 7
    argNames:
    - jartree
    - keyName
    - javascript
    - metafilename
    - install_script
    - optimize_level
    - recurse
    argTypes:
    - char*
    - char*
    - int
    - char*
    - char*
    - int
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 191
    functionName: SignAllArc
    functionSourceFile: /src/nss/cmd/signtool/sign.c
    functionUses: 1
    functionsReached:
    - foreach
    linkageType: ''
    returnType: int
    signature: "int SignAllArc(char *jartree, char *keyName, int javascript, char
      *metafilename,\n           char *install_script, int optimize_level, PRBool
      recurse)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PL_strcaserstr
      Src: /src/nss/cmd/signtool/sign.c:204,1
    - Dst: strlen
      Src: /src/nss/cmd/signtool/sign.c:204,1
    - Dst: PL_strcasestr
      Src: /src/nss/cmd/signtool/sign.c:205,1
    - Dst: strlen
      Src: /src/nss/cmd/signtool/sign.c:205,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/sign.c:208,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/signtool/sign.c:213,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/signtool/sign.c:215,1
    - Dst: PORT_Strrchr
      Src: /src/nss/cmd/signtool/sign.c:216,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/sign.c:219,1
    - Dst: PL_strcpy
      Src: /src/nss/cmd/signtool/sign.c:225,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/sign.c:228,1
    - Dst: SignArchive
      Src: /src/nss/cmd/signtool/sign.c:230,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/sign.c:236,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/sign.c:238,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 5
    argNames:
    - relpath
    - basedir
    - reldir
    - filename
    - arg
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 193
    functionDepth: 3
    functionLinenumber: 193
    functionLinenumberEnd: 241
    functionName: sign_all_arc_fn
    functionSourceFile: /src/nss/cmd/signtool/sign.c
    functionUses: 0
    functionsReached:
    - PORT_Strrchr
    - SignArchive
    - PR_fprintf
    - PL_strcaserstr
    - PR_Free
    - PL_strdup
    - PR_smprintf
    - PL_strcpy
    - PL_strcasestr
    - strlen
    linkageType: ''
    returnType: int
    signature: "int sign_all_arc_fn(char *relpath, char *basedir, char *reldir, char
      *filename,\n                void *arg)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/cmd/signtool/sign.c:262,1
    - Dst: PK11_FindCertFromNickname
      Src: /src/nss/cmd/signtool/sign.c:269,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/signtool/sign.c:272,1
    - Dst: jar_find_key_type
      Src: /src/nss/cmd/signtool/sign.c:279,1
    - Dst: snprintf
      Src: /src/nss/cmd/signtool/sign.c:282,1
    - Dst: snprintf
      Src: /src/nss/cmd/signtool/sign.c:283,1
    - Dst: fopen
      Src: /src/nss/cmd/signtool/sign.c:285,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/sign.c:286,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/sign.c:289,1
    - Dst: fopen
      Src: /src/nss/cmd/signtool/sign.c:292,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/sign.c:293,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/sign.c:296,1
    - Dst: SignFile
      Src: /src/nss/cmd/signtool/sign.c:299,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/signtool/sign.c:301,1
    - Dst: fclose
      Src: /src/nss/cmd/signtool/sign.c:302,1
    - Dst: fclose
      Src: /src/nss/cmd/signtool/sign.c:303,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/sign.c:306,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/signtool/sign.c:307,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/signtool/sign.c:307,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 3
    argNames:
    - dir
    - keyName
    - keyType
    argTypes:
    - char*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 313
    functionName: create_pk7
    functionSourceFile: /src/nss/cmd/signtool/sign.c
    functionUses: 1
    functionsReached:
    - fclose
    - SECU_PrintError
    - SECU_Strerror
    - PR_fprintf
    - PORT_GetError
    - exit
    - SignFile
    - fopen
    - snprintf
    - CERT_GetDefaultCertDB
    - CERT_DestroyCertificate
    - jar_find_key_type
    - PK11_FindCertFromNickname
    linkageType: ''
    returnType: int
    signature: int create_pk7(char *dir, char *keyName, int *keyType)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_FindKeyByAnyCert
      Src: /src/nss/cmd/signtool/sign.c:329,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/sign.c:331,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/cmd/signtool/sign.c:337,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - cert
    argTypes:
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 339
    functionName: jar_find_key_type
    functionSourceFile: /src/nss/cmd/signtool/sign.c
    functionUses: 1
    functionsReached:
    - SECKEY_DestroyPrivateKey
    - PR_fprintf
    - PK11_FindKeyByAnyCert
    linkageType: ''
    returnType: int
    signature: int jar_find_key_type(CERTCertificate *cert)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PR_Access
      Src: /src/nss/cmd/signtool/sign.c:355,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/sign.c:356,1
    - Dst: perror
      Src: /src/nss/cmd/signtool/sign.c:359,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/sign.c:360,1
    - Dst: PR_Access
      Src: /src/nss/cmd/signtool/sign.c:363,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/sign.c:364,1
    - Dst: perror
      Src: /src/nss/cmd/signtool/sign.c:367,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/sign.c:368,1
    - Dst: snprintf
      Src: /src/nss/cmd/signtool/sign.c:371,1
    - Dst: strcpy
      Src: /src/nss/cmd/signtool/sign.c:373,1
    - Dst: PR_MkDir
      Src: /src/nss/cmd/signtool/sign.c:375,1
    - Dst: strcat
      Src: /src/nss/cmd/signtool/sign.c:377,1
    - Dst: strcat
      Src: /src/nss/cmd/signtool/sign.c:378,1
    - Dst: fopen
      Src: /src/nss/cmd/signtool/sign.c:380,1
    - Dst: perror
      Src: /src/nss/cmd/signtool/sign.c:381,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/sign.c:382,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/sign.c:385,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/sign.c:388,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/sign.c:392,1
    - Dst: fprintf
      Src: /src/nss/cmd/signtool/sign.c:395,1
    - Dst: fprintf
      Src: /src/nss/cmd/signtool/sign.c:396,1
    - Dst: fprintf
      Src: /src/nss/cmd/signtool/sign.c:397,1
    - Dst: fprintf
      Src: /src/nss/cmd/signtool/sign.c:400,1
    - Dst: fprintf
      Src: /src/nss/cmd/signtool/sign.c:401,1
    - Dst: fprintf
      Src: /src/nss/cmd/signtool/sign.c:402,1
    - Dst: fprintf
      Src: /src/nss/cmd/signtool/sign.c:403,1
    - Dst: fprintf
      Src: /src/nss/cmd/signtool/sign.c:404,1
    - Dst: fprintf
      Src: /src/nss/cmd/signtool/sign.c:405,1
    - Dst: fprintf
      Src: /src/nss/cmd/signtool/sign.c:409,1
    - Dst: add_meta
      Src: /src/nss/cmd/signtool/sign.c:412,1
    - Dst: foreach
      Src: /src/nss/cmd/signtool/sign.c:415,1
    - Dst: fclose
      Src: /src/nss/cmd/signtool/sign.c:419,1
    - Dst: strcat
      Src: /src/nss/cmd/signtool/sign.c:421,1
    - Dst: strcat
      Src: /src/nss/cmd/signtool/sign.c:422,1
    - Dst: strcat
      Src: /src/nss/cmd/signtool/sign.c:423,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/sign.c:426,1
    - Dst: generate_SF_file
      Src: /src/nss/cmd/signtool/sign.c:428,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 53
    argCount: 3
    argNames:
    - dirname
    - install_script
    - recurse
    argTypes:
    - char*
    - char*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 348
    functionDepth: 2
    functionLinenumber: 348
    functionLinenumberEnd: 431
    functionName: manifesto
    functionSourceFile: /src/nss/cmd/signtool/sign.c
    functionUses: 1
    functionsReached:
    - fclose
    - generate_SF_file
    - PR_fprintf
    - PR_Access
    - strcpy
    - exit
    - fprintf
    - fopen
    - snprintf
    - add_meta
    - foreach
    - perror
    - strcat
    - PR_MkDir
    linkageType: ''
    returnType: int
    signature: int manifesto(char *dirname, char *install_script, PRBool recurse)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/sign.c:448,1
    - Dst: PL_strrchr
      Src: /src/nss/cmd/signtool/sign.c:453,1
    - Dst: PL_HashTableLookup
      Src: /src/nss/cmd/signtool/sign.c:456,1
    - Dst: snprintf
      Src: /src/nss/cmd/signtool/sign.c:459,1
    - Dst: JzipAdd
      Src: /src/nss/cmd/signtool/sign.c:463,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 5
    argNames:
    - relpath
    - basedir
    - reldir
    - filename
    - arg
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 441
    functionDepth: 1
    functionLinenumber: 441
    functionLinenumberEnd: 466
    functionName: manifesto_xpi_fn
    functionSourceFile: /src/nss/cmd/signtool/sign.c
    functionUses: 0
    functionsReached:
    - PL_HashTableLookup
    - PL_strrchr
    - PR_fprintf
    - snprintf
    - JzipAdd
    linkageType: ''
    returnType: int
    signature: int manifesto_xpi_fn(char *relpath, char *basedir, char *reldir, char
      *filename, void *arg)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/sign.c:485,1
    - Dst: PL_strrchr
      Src: /src/nss/cmd/signtool/sign.c:490,1
    - Dst: PL_HashTableLookup
      Src: /src/nss/cmd/signtool/sign.c:493,1
    - Dst: snprintf
      Src: /src/nss/cmd/signtool/sign.c:497,1
    - Dst: fprintf
      Src: /src/nss/cmd/signtool/sign.c:499,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/signtool/sign.c:503,1
    - Dst: PL_strcaserstr
      Src: /src/nss/cmd/signtool/sign.c:508,1
    - Dst: strlen
      Src: /src/nss/cmd/signtool/sign.c:508,1
    - Dst: PL_strcaserstr
      Src: /src/nss/cmd/signtool/sign.c:509,1
    - Dst: strlen
      Src: /src/nss/cmd/signtool/sign.c:509,1
    - Dst: fprintf
      Src: /src/nss/cmd/signtool/sign.c:513,1
    - Dst: fprintf
      Src: /src/nss/cmd/signtool/sign.c:514,1
    - Dst: fprintf
      Src: /src/nss/cmd/signtool/sign.c:517,1
    - Dst: add_meta
      Src: /src/nss/cmd/signtool/sign.c:520,1
    - Dst: fprintf
      Src: /src/nss/cmd/signtool/sign.c:522,1
    - Dst: add_meta
      Src: /src/nss/cmd/signtool/sign.c:524,1
    - Dst: JAR_digest_file
      Src: /src/nss/cmd/signtool/sign.c:527,1
    - Dst: fprintf
      Src: /src/nss/cmd/signtool/sign.c:530,1
    - Dst: BTOA_DataToAscii
      Src: /src/nss/cmd/signtool/sign.c:532,1
    - Dst: fprintf
      Src: /src/nss/cmd/signtool/sign.c:533,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/signtool/sign.c:534,1
    - Dst: BTOA_DataToAscii
      Src: /src/nss/cmd/signtool/sign.c:537,1
    - Dst: fprintf
      Src: /src/nss/cmd/signtool/sign.c:538,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/signtool/sign.c:539,1
    - Dst: JzipAdd
      Src: /src/nss/cmd/signtool/sign.c:542,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 5
    argNames:
    - relpath
    - basedir
    - reldir
    - filename
    - arg
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 475
    functionDepth: 1
    functionLinenumber: 475
    functionLinenumberEnd: 546
    functionName: manifesto_fn
    functionSourceFile: /src/nss/cmd/signtool/sign.c
    functionUses: 0
    functionsReached:
    - PL_HashTableLookup
    - PL_strrchr
    - BTOA_DataToAscii
    - PORT_Free
    - PR_fprintf
    - PL_strcaserstr
    - fprintf
    - snprintf
    - add_meta
    - JAR_digest_file
    - JzipAdd
    - PORT_Strcmp
    - strlen
    linkageType: ''
    returnType: int
    signature: int manifesto_fn(char *relpath, char *basedir, char *reldir, char *filename,
      void *arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/nss/cmd/signtool/sign.c:567,1
    - Dst: fgets
      Src: /src/nss/cmd/signtool/sign.c:568,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/signtool/sign.c:597,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/sign.c:603,1
    - Dst: fprintf
      Src: /src/nss/cmd/signtool/sign.c:605,1
    - Dst: fclose
      Src: /src/nss/cmd/signtool/sign.c:608,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/sign.c:610,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/sign.c:613,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 34
    argCount: 2
    argNames:
    - fp
    - name
    argTypes:
    - FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 556
    functionDepth: 1
    functionLinenumber: 556
    functionLinenumberEnd: 617
    functionName: add_meta
    functionSourceFile: /src/nss/cmd/signtool/sign.c
    functionUses: 2
    functionsReached:
    - fclose
    - fgets
    - PR_fprintf
    - exit
    - fprintf
    - fopen
    - PORT_Strcmp
    linkageType: ''
    returnType: int
    signature: int add_meta(FILE *fp, char *name)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: HASH_GetHashObject
      Src: /src/nss/cmd/signtool/sign.c:640,1
    - Dst: feof
      Src: /src/nss/cmd/signtool/sign.c:649,1
    - Dst: fread
      Src: /src/nss/cmd/signtool/sign.c:651,1
    - Dst: ferror
      Src: /src/nss/cmd/signtool/sign.c:653,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/signtool/sign.c:654,1
    - Dst: SEC_PKCS7CreateSignedData
      Src: /src/nss/cmd/signtool/sign.c:670,1
    - Dst: SEC_PKCS7IncludeCertChain
      Src: /src/nss/cmd/signtool/sign.c:676,1
    - Dst: SEC_PKCS7DestroyContentInfo
      Src: /src/nss/cmd/signtool/sign.c:678,1
    - Dst: SEC_PKCS7AddSigningTime
      Src: /src/nss/cmd/signtool/sign.c:683,1
    - Dst: SEC_PKCS7Encode
      Src: /src/nss/cmd/signtool/sign.c:689,1
    - Dst: SEC_PKCS7DestroyContentInfo
      Src: /src/nss/cmd/signtool/sign.c:691,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 3
    argNames:
    - outFile
    - inFile
    - cert
    argTypes:
    - FILE*
    - FILE*
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 623
    functionDepth: 1
    functionLinenumber: 623
    functionLinenumberEnd: 697
    functionName: SignFile
    functionSourceFile: /src/nss/cmd/signtool/sign.c
    functionUses: 1
    functionsReached:
    - SEC_PKCS7Encode
    - HASH_GetHashObject
    - SEC_PKCS7DestroyContentInfo
    - SEC_PKCS7IncludeCertChain
    - SEC_PKCS7CreateSignedData
    - ferror
    - feof
    - PORT_SetError
    - SEC_PKCS7AddSigningTime
    - fread
    linkageType: ''
    returnType: int
    signature: int SignFile(FILE *outFile, FILE *inFile, CERTCertificate *cert)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/nss/cmd/signtool/sign.c:719,1
    - Dst: fopen
      Src: /src/nss/cmd/signtool/sign.c:721,1
    - Dst: perror
      Src: /src/nss/cmd/signtool/sign.c:722,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/sign.c:723,1
    - Dst: fopen
      Src: /src/nss/cmd/signtool/sign.c:726,1
    - Dst: perror
      Src: /src/nss/cmd/signtool/sign.c:727,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/sign.c:728,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/cmd/signtool/sign.c:731,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/cmd/signtool/sign.c:734,1
    - Dst: out_of_memory
      Src: /src/nss/cmd/signtool/sign.c:737,1
    - Dst: fprintf
      Src: /src/nss/cmd/signtool/sign.c:739,1
    - Dst: fprintf
      Src: /src/nss/cmd/signtool/sign.c:740,1
    - Dst: fprintf
      Src: /src/nss/cmd/signtool/sign.c:741,1
    - Dst: fgets
      Src: /src/nss/cmd/signtool/sign.c:743,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/sign.c:744,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/sign.c:746,1
    - Dst: strncmp
      Src: /src/nss/cmd/signtool/sign.c:749,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/sign.c:750,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/sign.c:752,1
    - Dst: fseek
      Src: /src/nss/cmd/signtool/sign.c:755,1
    - Dst: ftell
      Src: /src/nss/cmd/signtool/sign.c:761,1
    - Dst: fgets
      Src: /src/nss/cmd/signtool/sign.c:763,1
    - Dst: strncmp
      Src: /src/nss/cmd/signtool/sign.c:768,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/sign.c:769,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/sign.c:772,1
    - Dst: fgets
      Src: /src/nss/cmd/signtool/sign.c:777,1
    - Dst: ftell
      Src: /src/nss/cmd/signtool/sign.c:784,1
    - Dst: ftell
      Src: /src/nss/cmd/signtool/sign.c:787,1
    - Dst: fprintf
      Src: /src/nss/cmd/signtool/sign.c:790,1
    - Dst: fprintf
      Src: /src/nss/cmd/signtool/sign.c:791,1
    - Dst: calculate_MD5_range
      Src: /src/nss/cmd/signtool/sign.c:794,1
    - Dst: fprintf
      Src: /src/nss/cmd/signtool/sign.c:797,1
    - Dst: BTOA_DataToAscii
      Src: /src/nss/cmd/signtool/sign.c:799,1
    - Dst: fprintf
      Src: /src/nss/cmd/signtool/sign.c:800,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/signtool/sign.c:801,1
    - Dst: BTOA_DataToAscii
      Src: /src/nss/cmd/signtool/sign.c:804,1
    - Dst: fprintf
      Src: /src/nss/cmd/signtool/sign.c:805,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/signtool/sign.c:806,1
    - Dst: fseek
      Src: /src/nss/cmd/signtool/sign.c:809,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/signtool/sign.c:812,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/signtool/sign.c:813,1
    - Dst: fclose
      Src: /src/nss/cmd/signtool/sign.c:815,1
    - Dst: fclose
      Src: /src/nss/cmd/signtool/sign.c:816,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 68
    argCount: 2
    argNames:
    - manifile
    - who
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 707
    functionDepth: 1
    functionLinenumber: 707
    functionLinenumberEnd: 819
    functionName: generate_SF_file
    functionSourceFile: /src/nss/cmd/signtool/sign.c
    functionUses: 1
    functionsReached:
    - strncmp
    - fclose
    - fseek
    - calculate_MD5_range
    - BTOA_DataToAscii
    - fgets
    - PORT_ZAlloc
    - strcpy
    - PR_fprintf
    - exit
    - PORT_Free
    - fprintf
    - fopen
    - perror
    - ftell
    - out_of_memory
    linkageType: ''
    returnType: int
    signature: int generate_SF_file(char *manifile, char *who)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fseek
      Src: /src/nss/cmd/signtool/sign.c:839,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/cmd/signtool/sign.c:841,1
    - Dst: out_of_memory
      Src: /src/nss/cmd/signtool/sign.c:843,1
    - Dst: fread
      Src: /src/nss/cmd/signtool/sign.c:845,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/sign.c:846,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/sign.c:849,1
    - Dst: PK11_HashBuf
      Src: /src/nss/cmd/signtool/sign.c:852,1
    - Dst: PK11_HashBuf
      Src: /src/nss/cmd/signtool/sign.c:854,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/sign.c:857,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/sign.c:860,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/signtool/sign.c:863,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - fp
    - r1
    - r2
    - dig
    argTypes:
    - FILE*
    - long
    - long
    - JAR_Digest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 828
    functionDepth: 1
    functionLinenumber: 828
    functionLinenumberEnd: 866
    functionName: calculate_MD5_range
    functionSourceFile: /src/nss/cmd/signtool/sign.c
    functionUses: 1
    functionsReached:
    - fseek
    - PORT_Free
    - PORT_ZAlloc
    - PR_fprintf
    - PK11_HashBuf
    - exit
    - fread
    - out_of_memory
    linkageType: ''
    returnType: int
    signature: int calculate_MD5_range(FILE *fp, long r1, long r2, JAR_Digest *dig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwrite
      Src: /src/nss/cmd/signtool/sign.c:871,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - arg
    - buf
    - len
    argTypes:
    - void*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 868
    functionDepth: 0
    functionLinenumber: 868
    functionLinenumberEnd: 872
    functionName: SignOut
    functionSourceFile: /src/nss/cmd/signtool/sign.c
    functionUses: 0
    functionsReached:
    - fwrite
    linkageType: ''
    returnType: void
    signature: void SignOut(void *arg, const char *buf, unsigned long len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/certgen.c:46,1
    - Dst: pr_fgets
      Src: /src/nss/cmd/signtool/certgen.c:51,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/certgen.c:52,1
    - Dst: tolower
      Src: /src/nss/cmd/signtool/certgen.c:53,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/certgen.c:54,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/cmd/signtool/certgen.c:59,1
    - Dst: FatalError
      Src: /src/nss/cmd/signtool/certgen.c:61,1
    - Dst: PK11_FindCertFromNickname
      Src: /src/nss/cmd/signtool/certgen.c:64,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/certgen.c:65,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/certgen.c:70,1
    - Dst: LL_L2UI
      Src: /src/nss/cmd/signtool/certgen.c:73,1
    - Dst: PR_Now
      Src: /src/nss/cmd/signtool/certgen.c:73,1
    - Dst: GetSubjectFromUser
      Src: /src/nss/cmd/signtool/certgen.c:75,1
    - Dst: FatalError
      Src: /src/nss/cmd/signtool/certgen.c:77,1
    - Dst: GenerateSelfSignedObjectSigningCert
      Src: /src/nss/cmd/signtool/certgen.c:80,1
    - Dst: output_ca_cert
      Src: /src/nss/cmd/signtool/certgen.c:84,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/signtool/certgen.c:85,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/signtool/certgen.c:88,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 3
    argNames:
    - nickname
    - keysize
    - token
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 90
    functionName: GenerateCert
    functionSourceFile: /src/nss/cmd/signtool/certgen.c
    functionUses: 1
    functionsReached:
    - tolower
    - pr_fgets
    - PORT_Free
    - PR_fprintf
    - exit
    - PR_Now
    - GenerateSelfSignedObjectSigningCert
    - CERT_GetDefaultCertDB
    - CERT_DestroyCertificate
    - FatalError
    - PK11_FindCertFromNickname
    - LL_L2UI
    - output_ca_cert
    - GetSubjectFromUser
    linkageType: ''
    returnType: int
    signature: int GenerateCert(char *nickname, int keysize, char *token)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/certgen.c:115,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/certgen.c:120,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/certgen.c:125,1
    - Dst: fgets
      Src: /src/nss/cmd/signtool/certgen.c:127,1
    - Dst: chop
      Src: /src/nss/cmd/signtool/certgen.c:130,1
    - Dst: snprintf
      Src: /src/nss/cmd/signtool/certgen.c:132,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/cmd/signtool/certgen.c:136,1
    - Dst: strlen
      Src: /src/nss/cmd/signtool/certgen.c:136,1
    - Dst: out_of_memory
      Src: /src/nss/cmd/signtool/certgen.c:138,1
    - Dst: snprintf
      Src: /src/nss/cmd/signtool/certgen.c:140,1
    - Dst: strlen
      Src: /src/nss/cmd/signtool/certgen.c:140,1
    - Dst: strlen
      Src: /src/nss/cmd/signtool/certgen.c:141,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/certgen.c:144,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/certgen.c:149,1
    - Dst: fgets
      Src: /src/nss/cmd/signtool/certgen.c:151,1
    - Dst: chop
      Src: /src/nss/cmd/signtool/certgen.c:154,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/cmd/signtool/certgen.c:156,1
    - Dst: strlen
      Src: /src/nss/cmd/signtool/certgen.c:156,1
    - Dst: out_of_memory
      Src: /src/nss/cmd/signtool/certgen.c:158,1
    - Dst: snprintf
      Src: /src/nss/cmd/signtool/certgen.c:160,1
    - Dst: strlen
      Src: /src/nss/cmd/signtool/certgen.c:160,1
    - Dst: strlen
      Src: /src/nss/cmd/signtool/certgen.c:161,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/certgen.c:165,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/certgen.c:170,1
    - Dst: fgets
      Src: /src/nss/cmd/signtool/certgen.c:172,1
    - Dst: chop
      Src: /src/nss/cmd/signtool/certgen.c:175,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/cmd/signtool/certgen.c:177,1
    - Dst: strlen
      Src: /src/nss/cmd/signtool/certgen.c:177,1
    - Dst: out_of_memory
      Src: /src/nss/cmd/signtool/certgen.c:179,1
    - Dst: snprintf
      Src: /src/nss/cmd/signtool/certgen.c:181,1
    - Dst: strlen
      Src: /src/nss/cmd/signtool/certgen.c:181,1
    - Dst: strlen
      Src: /src/nss/cmd/signtool/certgen.c:182,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/certgen.c:186,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/certgen.c:190,1
    - Dst: fgets
      Src: /src/nss/cmd/signtool/certgen.c:192,1
    - Dst: chop
      Src: /src/nss/cmd/signtool/certgen.c:195,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/cmd/signtool/certgen.c:197,1
    - Dst: strlen
      Src: /src/nss/cmd/signtool/certgen.c:197,1
    - Dst: out_of_memory
      Src: /src/nss/cmd/signtool/certgen.c:199,1
    - Dst: snprintf
      Src: /src/nss/cmd/signtool/certgen.c:201,1
    - Dst: strlen
      Src: /src/nss/cmd/signtool/certgen.c:201,1
    - Dst: strlen
      Src: /src/nss/cmd/signtool/certgen.c:202,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/certgen.c:206,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/certgen.c:210,1
    - Dst: fgets
      Src: /src/nss/cmd/signtool/certgen.c:212,1
    - Dst: chop
      Src: /src/nss/cmd/signtool/certgen.c:215,1
    - Dst: strlen
      Src: /src/nss/cmd/signtool/certgen.c:216,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/cmd/signtool/certgen.c:220,1
    - Dst: strlen
      Src: /src/nss/cmd/signtool/certgen.c:220,1
    - Dst: out_of_memory
      Src: /src/nss/cmd/signtool/certgen.c:222,1
    - Dst: snprintf
      Src: /src/nss/cmd/signtool/certgen.c:224,1
    - Dst: strlen
      Src: /src/nss/cmd/signtool/certgen.c:224,1
    - Dst: strlen
      Src: /src/nss/cmd/signtool/certgen.c:225,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/certgen.c:229,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/certgen.c:233,1
    - Dst: fgets
      Src: /src/nss/cmd/signtool/certgen.c:235,1
    - Dst: chop
      Src: /src/nss/cmd/signtool/certgen.c:238,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/cmd/signtool/certgen.c:240,1
    - Dst: strlen
      Src: /src/nss/cmd/signtool/certgen.c:240,1
    - Dst: out_of_memory
      Src: /src/nss/cmd/signtool/certgen.c:242,1
    - Dst: snprintf
      Src: /src/nss/cmd/signtool/certgen.c:244,1
    - Dst: strlen
      Src: /src/nss/cmd/signtool/certgen.c:244,1
    - Dst: strlen
      Src: /src/nss/cmd/signtool/certgen.c:245,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/certgen.c:249,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/certgen.c:253,1
    - Dst: fgets
      Src: /src/nss/cmd/signtool/certgen.c:255,1
    - Dst: chop
      Src: /src/nss/cmd/signtool/certgen.c:258,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/cmd/signtool/certgen.c:260,1
    - Dst: strlen
      Src: /src/nss/cmd/signtool/certgen.c:260,1
    - Dst: out_of_memory
      Src: /src/nss/cmd/signtool/certgen.c:262,1
    - Dst: snprintf
      Src: /src/nss/cmd/signtool/certgen.c:264,1
    - Dst: strlen
      Src: /src/nss/cmd/signtool/certgen.c:264,1
    - Dst: strlen
      Src: /src/nss/cmd/signtool/certgen.c:265,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/cmd/signtool/certgen.c:270,1
    - Dst: out_of_memory
      Src: /src/nss/cmd/signtool/certgen.c:272,1
    - Dst: snprintf
      Src: /src/nss/cmd/signtool/certgen.c:275,1
    - Dst: strlen
      Src: /src/nss/cmd/signtool/certgen.c:283,1
    - Dst: strlen
      Src: /src/nss/cmd/signtool/certgen.c:283,1
    - Dst: strlen
      Src: /src/nss/cmd/signtool/certgen.c:284,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/signtool/certgen.c:287,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/signtool/certgen.c:288,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/signtool/certgen.c:289,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/signtool/certgen.c:290,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/signtool/certgen.c:291,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/signtool/certgen.c:292,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/signtool/certgen.c:293,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 123
    argCount: 1
    argNames:
    - serial
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 296
    functionName: GetSubjectFromUser
    functionSourceFile: /src/nss/cmd/signtool/certgen.c
    functionUses: 1
    functionsReached:
    - chop
    - out_of_memory
    - PORT_Free
    - fgets
    - PR_fprintf
    - PORT_ZAlloc
    - snprintf
    - strlen
    linkageType: ''
    returnType: char
    signature: 'char *

      GetSubjectFromUser(unsigned long serial)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PK11_FindSlotByName
      Src: /src/nss/cmd/signtool/certgen.c:317,1
    - Dst: PK11_GetInternalKeySlot
      Src: /src/nss/cmd/signtool/certgen.c:319,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/certgen.c:323,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/certgen.c:326,1
    - Dst: GenerateKeyPair
      Src: /src/nss/cmd/signtool/certgen.c:329,1
    - Dst: FatalError
      Src: /src/nss/cmd/signtool/certgen.c:330,1
    - Dst: make_cert_request
      Src: /src/nss/cmd/signtool/certgen.c:332,1
    - Dst: make_cert
      Src: /src/nss/cmd/signtool/certgen.c:333,1
    - Dst: set_cert_type
      Src: /src/nss/cmd/signtool/certgen.c:334,1
    - Dst: FatalError
      Src: /src/nss/cmd/signtool/certgen.c:338,1
    - Dst: sign_cert
      Src: /src/nss/cmd/signtool/certgen.c:341,1
    - Dst: install_cert
      Src: /src/nss/cmd/signtool/certgen.c:342,1
    - Dst: ChangeTrustAttributes
      Src: /src/nss/cmd/signtool/certgen.c:343,1
    - Dst: FatalError
      Src: /src/nss/cmd/signtool/certgen.c:344,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/cmd/signtool/certgen.c:348,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/cmd/signtool/certgen.c:349,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/cmd/signtool/certgen.c:350,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/signtool/certgen.c:351,1
    - Dst: CERT_DestroyCertificateRequest
      Src: /src/nss/cmd/signtool/certgen.c:352,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 6
    argNames:
    - nickname
    - db
    - subject
    - serial
    - keysize
    - token
    argTypes:
    - char*
    - CERTCertDBHandle*
    - char*
    - unsigned long
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 304
    functionDepth: 2
    functionLinenumber: 304
    functionLinenumberEnd: 355
    functionName: GenerateSelfSignedObjectSigningCert
    functionSourceFile: /src/nss/cmd/signtool/certgen.c
    functionUses: 1
    functionsReached:
    - make_cert_request
    - PK11_GetInternalKeySlot
    - SECKEY_DestroyPublicKey
    - CERT_DestroyCertificateRequest
    - set_cert_type
    - PR_fprintf
    - FatalError
    - GenerateKeyPair
    - exit
    - sign_cert
    - make_cert
    - install_cert
    - CERT_DestroyCertificate
    - PK11_FindSlotByName
    - SECKEY_DestroyPrivateKey
    - ChangeTrustAttributes
    - PK11_FreeSlot
    linkageType: ''
    returnType: CERTCertificate
    signature: "CERTCertificate *\nGenerateSelfSignedObjectSigningCert(char *nickname,
      CERTCertDBHandle *db,\n                                    char *subject, unsigned
      long serial, int keysize, char *token)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/certgen.c:368,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/cmd/signtool/certgen.c:373,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/certgen.c:375,1
    - Dst: CERT_DecodeTrustString
      Src: /src/nss/cmd/signtool/certgen.c:381,1
    - Dst: CERT_ChangeCertTrust
      Src: /src/nss/cmd/signtool/certgen.c:385,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/certgen.c:386,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/signtool/certgen.c:392,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - db
    - cert
    - trusts
    argTypes:
    - CERTCertDBHandle*
    - CERTCertificate*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 394
    functionName: ChangeTrustAttributes
    functionSourceFile: /src/nss/cmd/signtool/certgen.c
    functionUses: 2
    functionsReached:
    - CERT_ChangeCertTrust
    - PORT_Free
    - PORT_ZAlloc
    - PR_fprintf
    - CERT_DecodeTrustString
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ChangeTrustAttributes(CERTCertDBHandle *db, CERTCertificate
      *cert, char *trusts)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CERT_StartCertExtensions
      Src: /src/nss/cmd/signtool/certgen.c:408,1
    - Dst: CERT_EncodeAndAddBitStrExtension
      Src: /src/nss/cmd/signtool/certgen.c:414,1
    - Dst: CERT_FinishExtensions
      Src: /src/nss/cmd/signtool/certgen.c:420,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - cert
    - type
    argTypes:
    - CERTCertificate*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 425
    functionName: set_cert_type
    functionSourceFile: /src/nss/cmd/signtool/certgen.c
    functionUses: 1
    functionsReached:
    - CERT_StartCertExtensions
    - CERT_FinishExtensions
    - CERT_EncodeAndAddBitStrExtension
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus set_cert_type(CERTCertificate *cert, unsigned int type)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SEC_GetSignatureAlgorithmOidTag
      Src: /src/nss/cmd/signtool/certgen.c:441,1
    - Dst: FatalError
      Src: /src/nss/cmd/signtool/certgen.c:443,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/cmd/signtool/certgen.c:446,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/certgen.c:449,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/certgen.c:452,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/cmd/signtool/certgen.c:458,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/cmd/signtool/certgen.c:458,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/certgen.c:461,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/certgen.c:463,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/cmd/signtool/certgen.c:466,1
    - Dst: out_of_memory
      Src: /src/nss/cmd/signtool/certgen.c:468,1
    - Dst: SEC_DerSignData
      Src: /src/nss/cmd/signtool/certgen.c:470,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/certgen.c:473,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/certgen.c:475,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/certgen.c:477,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 2
    argNames:
    - cert
    - privk
    argTypes:
    - CERTCertificate*
    - SECKEYPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 431
    functionDepth: 2
    functionLinenumber: 431
    functionLinenumberEnd: 483
    functionName: sign_cert
    functionSourceFile: /src/nss/cmd/signtool/certgen.c
    functionUses: 1
    functionsReached:
    - SEC_ASN1EncodeItem
    - SEC_GetSignatureAlgorithmOidTag
    - PORT_ArenaZAlloc
    - PR_fprintf
    - exit
    - SECOID_SetAlgorithmID
    - SEC_DerSignData
    - FatalError
    - SEC_ASN1_GET
    - out_of_memory
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      sign_cert(CERTCertificate *cert, SECKEYPrivateKey *privk)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PK11_ImportDERCertForKey
      Src: /src/nss/cmd/signtool/certgen.c:497,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/certgen.c:499,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/certgen.c:501,1
    - Dst: PK11_FindCertFromDERCertItem
      Src: /src/nss/cmd/signtool/certgen.c:504,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/cmd/signtool/certgen.c:505,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/certgen.c:507,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/certgen.c:510,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/certgen.c:514,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - db
    - derCert
    - nickname
    argTypes:
    - CERTCertDBHandle*
    - SECItem*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 519
    functionName: install_cert
    functionSourceFile: /src/nss/cmd/signtool/certgen.c
    functionUses: 1
    functionsReached:
    - PK11_ImportDERCertForKey
    - PR_fprintf
    - exit
    - PK11_FindCertFromDERCertItem
    - PK11_FreeSlot
    linkageType: ''
    returnType: CERTCertificate
    signature: 'CERTCertificate *

      install_cert(CERTCertDBHandle *db, SECItem *derCert, char *nickname)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PK11_Authenticate
      Src: /src/nss/cmd/signtool/certgen.c:539,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/signtool/certgen.c:541,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/certgen.c:542,1
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/cmd/signtool/certgen.c:545,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/certgen.c:551,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/signtool/certgen.c:554,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/certgen.c:555,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 4
    argNames:
    - slot
    - pubk
    - privk
    - keysize
    argTypes:
    - PK11SlotInfo*
    - SECKEYPublicKey**
    - SECKEYPrivateKey**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 559
    functionName: GenerateKeyPair
    functionSourceFile: /src/nss/cmd/signtool/certgen.c
    functionUses: 6
    functionsReached:
    - SECU_PrintError
    - PK11_GenerateKeyPair
    - PR_fprintf
    - exit
    - PK11_Authenticate
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus GenerateKeyPair(PK11SlotInfo *slot, SECKEYPublicKey **pubk,\n
      \               SECKEYPrivateKey **privk, int keysize)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SECKEY_CreateSubjectPublicKeyInfo
      Src: /src/nss/cmd/signtool/certgen.c:574,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/signtool/certgen.c:576,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/certgen.c:577,1
    - Dst: CERT_AsciiToName
      Src: /src/nss/cmd/signtool/certgen.c:580,1
    - Dst: FatalError
      Src: /src/nss/cmd/signtool/certgen.c:582,1
    - Dst: CERT_CreateCertificateRequest
      Src: /src/nss/cmd/signtool/certgen.c:586,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/signtool/certgen.c:588,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/certgen.c:589,1
    - Dst: SECKEY_DestroySubjectPublicKeyInfo
      Src: /src/nss/cmd/signtool/certgen.c:592,1
    - Dst: CERT_DestroyName
      Src: /src/nss/cmd/signtool/certgen.c:593,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/certgen.c:596,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - subject
    - pubk
    argTypes:
    - char*
    - SECKEYPublicKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 565
    functionDepth: 2
    functionLinenumber: 565
    functionLinenumberEnd: 600
    functionName: make_cert_request
    functionSourceFile: /src/nss/cmd/signtool/certgen.c
    functionUses: 1
    functionsReached:
    - SECU_PrintError
    - SECKEY_DestroySubjectPublicKeyInfo
    - CERT_AsciiToName
    - PR_fprintf
    - exit
    - CERT_DestroyName
    - CERT_CreateCertificateRequest
    - FatalError
    - SECKEY_CreateSubjectPublicKeyInfo
    linkageType: ''
    returnType: CERTCertificateRequest
    signature: 'CERTCertificateRequest *

      make_cert_request(char *subject, SECKEYPublicKey *pubk)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_Now
      Src: /src/nss/cmd/signtool/certgen.c:617,1
    - Dst: PR_ExplodeTime
      Src: /src/nss/cmd/signtool/certgen.c:618,1
    - Dst: PR_ImplodeTime
      Src: /src/nss/cmd/signtool/certgen.c:621,1
    - Dst: CERT_CreateValidity
      Src: /src/nss/cmd/signtool/certgen.c:623,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/certgen.c:626,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/certgen.c:629,1
    - Dst: CERT_CreateCertificate
      Src: /src/nss/cmd/signtool/certgen.c:632,1
    - Dst: CERT_DestroyValidity
      Src: /src/nss/cmd/signtool/certgen.c:633,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/certgen.c:637,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/certgen.c:640,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - req
    - serial
    - ca_subject
    argTypes:
    - CERTCertificateRequest*
    - unsigned long
    - CERTName*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 644
    functionName: make_cert
    functionSourceFile: /src/nss/cmd/signtool/certgen.c
    functionUses: 1
    functionsReached:
    - PR_ImplodeTime
    - CERT_DestroyValidity
    - CERT_CreateCertificate
    - PR_fprintf
    - exit
    - PR_Now
    - PR_ExplodeTime
    - CERT_CreateValidity
    linkageType: ''
    returnType: CERTCertificate
    signature: "CERTCertificate *\nmake_cert(CERTCertificateRequest *req, unsigned
      long serial,\n          CERTName *ca_subject)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZAlloc
      Src: /src/nss/cmd/signtool/certgen.c:661,1
    - Dst: strlen
      Src: /src/nss/cmd/signtool/certgen.c:661,1
    - Dst: out_of_memory
      Src: /src/nss/cmd/signtool/certgen.c:663,1
    - Dst: snprintf
      Src: /src/nss/cmd/signtool/certgen.c:665,1
    - Dst: strlen
      Src: /src/nss/cmd/signtool/certgen.c:665,1
    - Dst: fopen
      Src: /src/nss/cmd/signtool/certgen.c:666,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/certgen.c:667,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/certgen.c:670,1
    - Dst: SEC_PKCS7CreateCertsOnly
      Src: /src/nss/cmd/signtool/certgen.c:673,1
    - Dst: SEC_PKCS7EncodeItem
      Src: /src/nss/cmd/signtool/certgen.c:675,1
    - Dst: SEC_PKCS7DestroyContentInfo
      Src: /src/nss/cmd/signtool/certgen.c:676,1
    - Dst: fprintf
      Src: /src/nss/cmd/signtool/certgen.c:679,1
    - Dst: fwrite
      Src: /src/nss/cmd/signtool/certgen.c:680,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/signtool/certgen.c:682,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/certgen.c:684,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/certgen.c:687,1
    - Dst: fclose
      Src: /src/nss/cmd/signtool/certgen.c:690,1
    - Dst: snprintf
      Src: /src/nss/cmd/signtool/certgen.c:694,1
    - Dst: strlen
      Src: /src/nss/cmd/signtool/certgen.c:694,1
    - Dst: fopen
      Src: /src/nss/cmd/signtool/certgen.c:695,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/certgen.c:696,1
    - Dst: BTOA_DataToAscii
      Src: /src/nss/cmd/signtool/certgen.c:702,1
    - Dst: fprintf
      Src: /src/nss/cmd/signtool/certgen.c:703,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/signtool/certgen.c:704,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/signtool/certgen.c:706,1
    - Dst: fclose
      Src: /src/nss/cmd/signtool/certgen.c:707,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/certgen.c:710,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 37
    argCount: 2
    argNames:
    - cert
    - db
    argTypes:
    - CERTCertificate*
    - CERTCertDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 650
    functionDepth: 1
    functionLinenumber: 650
    functionLinenumberEnd: 713
    functionName: output_ca_cert
    functionSourceFile: /src/nss/cmd/signtool/certgen.c
    functionUses: 1
    functionsReached:
    - fclose
    - SEC_PKCS7DestroyContentInfo
    - BTOA_DataToAscii
    - PORT_Free
    - PORT_ZAlloc
    - PR_fprintf
    - exit
    - fprintf
    - fopen
    - snprintf
    - strlen
    - SEC_PKCS7EncodeItem
    - fwrite
    - SEC_PKCS7CreateCertsOnly
    - SECITEM_FreeItem
    - out_of_memory
    linkageType: ''
    returnType: void
    signature: void output_ca_cert(CERTCertificate *cert, CERTCertDBHandle *db)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZAlloc
      Src: /src/nss/cmd/signtool/zip.c:26,1
    - Dst: out_of_memory
      Src: /src/nss/cmd/signtool/zip.c:28,1
    - Dst: PR_ExplodeTime
      Src: /src/nss/cmd/signtool/zip.c:31,1
    - Dst: PR_Now
      Src: /src/nss/cmd/signtool/zip.c:31,1
    - Dst: PR_Open
      Src: /src/nss/cmd/signtool/zip.c:41,1
    - Dst: PR_GetErrorTextLength
      Src: /src/nss/cmd/signtool/zip.c:47,1
    - Dst: PR_Malloc
      Src: /src/nss/cmd/signtool/zip.c:48,1
    - Dst: PR_GetErrorTextLength
      Src: /src/nss/cmd/signtool/zip.c:48,1
    - Dst: PR_GetErrorText
      Src: /src/nss/cmd/signtool/zip.c:49,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/zip.c:53,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/zip.c:57,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/zip.c:59,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/cmd/signtool/zip.c:64,1
    - Dst: strlen
      Src: /src/nss/cmd/signtool/zip.c:64,1
    - Dst: out_of_memory
      Src: /src/nss/cmd/signtool/zip.c:66,1
    - Dst: PORT_Strcpy
      Src: /src/nss/cmd/signtool/zip.c:67,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/cmd/signtool/zip.c:70,1
    - Dst: strlen
      Src: /src/nss/cmd/signtool/zip.c:70,1
    - Dst: out_of_memory
      Src: /src/nss/cmd/signtool/zip.c:72,1
    - Dst: PORT_Strcpy
      Src: /src/nss/cmd/signtool/zip.c:73,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 2
    argNames:
    - filename
    - comment
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 77
    functionName: JzipOpen
    functionSourceFile: /src/nss/cmd/signtool/zip.c
    functionUses: 1
    functionsReached:
    - PR_Malloc
    - PORT_ZAlloc
    - PR_fprintf
    - PR_Free
    - PR_Now
    - PR_ExplodeTime
    - exit
    - PR_Open
    - PR_GetErrorText
    - strlen
    - PORT_Strcpy
    - PR_GetErrorTextLength
    - out_of_memory
    linkageType: ''
    returnType: ZIPfile
    signature: 'ZIPfile *

      JzipOpen(char *filename, char *comment)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/signtool/zip.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - opaque
    - items
    - size
    argTypes:
    - void*
    - uInt
    - uInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: my_alloc_func
    functionSourceFile: /src/nss/cmd/signtool/zip.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    linkageType: ''
    returnType: void
    signature: 'void *

      my_alloc_func(void *opaque, uInt items, uInt size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Free
      Src: /src/nss/cmd/signtool/zip.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - opaque
    - address
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 89
    functionName: my_free_func
    functionSourceFile: /src/nss/cmd/signtool/zip.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    linkageType: ''
    returnType: void
    signature: void my_free_func(void *opaque, void *address)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/zip.c:102,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/zip.c:106,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/zip.c:109,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/zip.c:112,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/zip.c:116,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/zip.c:119,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - err
    - msg
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 122
    functionName: handle_zerror
    functionSourceFile: /src/nss/cmd/signtool/zip.c
    functionUses: 0
    functionsReached:
    - PR_fprintf
    linkageType: ''
    returnType: void
    signature: void handle_zerror(int err, char *msg)
  - BBCount: 47
    BranchProfiles: []
    Callsites:
    - Dst: PR_Open
      Src: /src/nss/cmd/signtool/zip.c:154,1
    - Dst: PR_GetErrorTextLength
      Src: /src/nss/cmd/signtool/zip.c:156,1
    - Dst: PR_Malloc
      Src: /src/nss/cmd/signtool/zip.c:157,1
    - Dst: PR_GetErrorTextLength
      Src: /src/nss/cmd/signtool/zip.c:157,1
    - Dst: PR_GetErrorText
      Src: /src/nss/cmd/signtool/zip.c:158,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/zip.c:162,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/zip.c:165,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/zip.c:166,1
    - Dst: PR_Available
      Src: /src/nss/cmd/signtool/zip.c:179,1
    - Dst: PR_Seek
      Src: /src/nss/cmd/signtool/zip.c:181,1
    - Dst: PR_Write
      Src: /src/nss/cmd/signtool/zip.c:183,1
    - Dst: PR_GetErrorTextLength
      Src: /src/nss/cmd/signtool/zip.c:186,1
    - Dst: PR_Malloc
      Src: /src/nss/cmd/signtool/zip.c:187,1
    - Dst: PR_GetErrorTextLength
      Src: /src/nss/cmd/signtool/zip.c:187,1
    - Dst: PR_GetErrorText
      Src: /src/nss/cmd/signtool/zip.c:188,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/zip.c:192,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/zip.c:195,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/zip.c:197,1
    - Dst: PR_Available
      Src: /src/nss/cmd/signtool/zip.c:200,1
    - Dst: PR_Seek
      Src: /src/nss/cmd/signtool/zip.c:202,1
    - Dst: PR_Close
      Src: /src/nss/cmd/signtool/zip.c:206,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/zip.c:212,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/cmd/signtool/zip.c:215,1
    - Dst: out_of_memory
      Src: /src/nss/cmd/signtool/zip.c:217,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/signtool/zip.c:219,1
    - Dst: longtox
      Src: /src/nss/cmd/signtool/zip.c:223,1
    - Dst: inttox
      Src: /src/nss/cmd/signtool/zip.c:224,1
    - Dst: strlen
      Src: /src/nss/cmd/signtool/zip.c:224,1
    - Dst: inttox
      Src: /src/nss/cmd/signtool/zip.c:225,1
    - Dst: inttox
      Src: /src/nss/cmd/signtool/zip.c:226,1
    - Dst: inttox
      Src: /src/nss/cmd/signtool/zip.c:227,1
    - Dst: longtox
      Src: /src/nss/cmd/signtool/zip.c:230,1
    - Dst: inttox
      Src: /src/nss/cmd/signtool/zip.c:231,1
    - Dst: strlen
      Src: /src/nss/cmd/signtool/zip.c:231,1
    - Dst: inttox
      Src: /src/nss/cmd/signtool/zip.c:233,1
    - Dst: strlen
      Src: /src/nss/cmd/signtool/zip.c:233,1
    - Dst: longtox
      Src: /src/nss/cmd/signtool/zip.c:235,1
    - Dst: PR_Seek
      Src: /src/nss/cmd/signtool/zip.c:235,1
    - Dst: inttox
      Src: /src/nss/cmd/signtool/zip.c:237,1
    - Dst: inttox
      Src: /src/nss/cmd/signtool/zip.c:238,1
    - Dst: inttox
      Src: /src/nss/cmd/signtool/zip.c:239,1
    - Dst: crc32
      Src: /src/nss/cmd/signtool/zip.c:242,1
    - Dst: PR_Read
      Src: /src/nss/cmd/signtool/zip.c:243,1
    - Dst: crc32
      Src: /src/nss/cmd/signtool/zip.c:244,1
    - Dst: PR_Seek
      Src: /src/nss/cmd/signtool/zip.c:246,1
    - Dst: longtox
      Src: /src/nss/cmd/signtool/zip.c:249,1
    - Dst: longtox
      Src: /src/nss/cmd/signtool/zip.c:250,1
    - Dst: PR_Seek
      Src: /src/nss/cmd/signtool/zip.c:271,1
    - Dst: PR_Write
      Src: /src/nss/cmd/signtool/zip.c:273,1
    - Dst: PR_GetErrorTextLength
      Src: /src/nss/cmd/signtool/zip.c:276,1
    - Dst: PR_Malloc
      Src: /src/nss/cmd/signtool/zip.c:277,1
    - Dst: PR_GetErrorTextLength
      Src: /src/nss/cmd/signtool/zip.c:277,1
    - Dst: PR_GetErrorText
      Src: /src/nss/cmd/signtool/zip.c:278,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/zip.c:282,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/zip.c:284,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/zip.c:286,1
    - Dst: PR_Write
      Src: /src/nss/cmd/signtool/zip.c:290,1
    - Dst: strlen
      Src: /src/nss/cmd/signtool/zip.c:290,1
    - Dst: strlen
      Src: /src/nss/cmd/signtool/zip.c:290,1
    - Dst: PR_GetErrorTextLength
      Src: /src/nss/cmd/signtool/zip.c:292,1
    - Dst: PR_Malloc
      Src: /src/nss/cmd/signtool/zip.c:293,1
    - Dst: PR_GetErrorTextLength
      Src: /src/nss/cmd/signtool/zip.c:293,1
    - Dst: PR_GetErrorText
      Src: /src/nss/cmd/signtool/zip.c:294,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/zip.c:298,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/zip.c:300,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/zip.c:302,1
    - Dst: deflateInit2
      Src: /src/nss/cmd/signtool/zip.c:322,1
    - Dst: handle_zerror
      Src: /src/nss/cmd/signtool/zip.c:325,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/zip.c:326,1
    - Dst: PR_Read
      Src: /src/nss/cmd/signtool/zip.c:329,1
    - Dst: deflate
      Src: /src/nss/cmd/signtool/zip.c:333,1
    - Dst: handle_zerror
      Src: /src/nss/cmd/signtool/zip.c:335,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/zip.c:336,1
    - Dst: PR_Write
      Src: /src/nss/cmd/signtool/zip.c:339,1
    - Dst: PR_GetErrorTextLength
      Src: /src/nss/cmd/signtool/zip.c:341,1
    - Dst: PR_Malloc
      Src: /src/nss/cmd/signtool/zip.c:342,1
    - Dst: PR_GetErrorTextLength
      Src: /src/nss/cmd/signtool/zip.c:342,1
    - Dst: PR_GetErrorText
      Src: /src/nss/cmd/signtool/zip.c:343,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/zip.c:347,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/zip.c:350,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/zip.c:352,1
    - Dst: deflate
      Src: /src/nss/cmd/signtool/zip.c:362,1
    - Dst: handle_zerror
      Src: /src/nss/cmd/signtool/zip.c:368,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/zip.c:369,1
    - Dst: PR_Write
      Src: /src/nss/cmd/signtool/zip.c:371,1
    - Dst: PR_GetErrorTextLength
      Src: /src/nss/cmd/signtool/zip.c:373,1
    - Dst: PR_Malloc
      Src: /src/nss/cmd/signtool/zip.c:374,1
    - Dst: PR_GetErrorTextLength
      Src: /src/nss/cmd/signtool/zip.c:374,1
    - Dst: PR_GetErrorText
      Src: /src/nss/cmd/signtool/zip.c:375,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/zip.c:379,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/zip.c:382,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/zip.c:384,1
    - Dst: PR_Write
      Src: /src/nss/cmd/signtool/zip.c:392,1
    - Dst: PR_GetErrorTextLength
      Src: /src/nss/cmd/signtool/zip.c:395,1
    - Dst: PR_Malloc
      Src: /src/nss/cmd/signtool/zip.c:396,1
    - Dst: PR_GetErrorTextLength
      Src: /src/nss/cmd/signtool/zip.c:396,1
    - Dst: PR_GetErrorText
      Src: /src/nss/cmd/signtool/zip.c:397,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/zip.c:401,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/zip.c:404,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/zip.c:406,1
    - Dst: longtox
      Src: /src/nss/cmd/signtool/zip.c:413,1
    - Dst: longtox
      Src: /src/nss/cmd/signtool/zip.c:414,1
    - Dst: PR_Seek
      Src: /src/nss/cmd/signtool/zip.c:415,1
    - Dst: PR_GetErrorTextLength
      Src: /src/nss/cmd/signtool/zip.c:417,1
    - Dst: PR_Malloc
      Src: /src/nss/cmd/signtool/zip.c:418,1
    - Dst: PR_GetErrorTextLength
      Src: /src/nss/cmd/signtool/zip.c:418,1
    - Dst: PR_GetErrorText
      Src: /src/nss/cmd/signtool/zip.c:419,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/zip.c:423,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/zip.c:425,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/zip.c:427,1
    - Dst: PR_Write
      Src: /src/nss/cmd/signtool/zip.c:429,1
    - Dst: PR_GetErrorTextLength
      Src: /src/nss/cmd/signtool/zip.c:431,1
    - Dst: PR_Malloc
      Src: /src/nss/cmd/signtool/zip.c:432,1
    - Dst: PR_GetErrorTextLength
      Src: /src/nss/cmd/signtool/zip.c:432,1
    - Dst: PR_GetErrorText
      Src: /src/nss/cmd/signtool/zip.c:433,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/zip.c:437,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/zip.c:439,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/zip.c:441,1
    - Dst: PR_Seek
      Src: /src/nss/cmd/signtool/zip.c:443,1
    - Dst: PR_GetErrorTextLength
      Src: /src/nss/cmd/signtool/zip.c:445,1
    - Dst: PR_Malloc
      Src: /src/nss/cmd/signtool/zip.c:446,1
    - Dst: PR_GetErrorTextLength
      Src: /src/nss/cmd/signtool/zip.c:446,1
    - Dst: PR_GetErrorText
      Src: /src/nss/cmd/signtool/zip.c:447,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/zip.c:451,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/zip.c:454,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/zip.c:456,1
    - Dst: longtox
      Src: /src/nss/cmd/signtool/zip.c:458,1
    - Dst: longtox
      Src: /src/nss/cmd/signtool/zip.c:459,1
    - Dst: deflateEnd
      Src: /src/nss/cmd/signtool/zip.c:462,1
    - Dst: handle_zerror
      Src: /src/nss/cmd/signtool/zip.c:464,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/zip.c:465,1
    - Dst: PR_Close
      Src: /src/nss/cmd/signtool/zip.c:468,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/zip.c:478,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 248
    argCount: 4
    argNames:
    - fullname
    - filename
    - zipfile
    - lvl
    argTypes:
    - char*
    - char*
    - ZIPfile*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 482
    functionName: JzipAdd
    functionSourceFile: /src/nss/cmd/signtool/zip.c
    functionUses: 3
    functionsReached:
    - PR_Free
    - strlen
    - deflateInit2
    - handle_zerror
    - PR_Read
    - PR_GetErrorText
    - crc32
    - PR_Malloc
    - inttox
    - PR_GetErrorTextLength
    - PORT_ZAlloc
    - exit
    - deflate
    - PR_Open
    - PR_Seek
    - longtox
    - deflateEnd
    - PR_Close
    - PR_fprintf
    - PR_Write
    - PR_Available
    - PORT_Strdup
    - out_of_memory
    linkageType: ''
    returnType: int
    signature: int JzipAdd(char *fullname, char *filename, ZIPfile *zipfile, int lvl)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: PR_Seek
      Src: /src/nss/cmd/signtool/zip.c:507,1
    - Dst: PR_Write
      Src: /src/nss/cmd/signtool/zip.c:515,1
    - Dst: PR_GetErrorTextLength
      Src: /src/nss/cmd/signtool/zip.c:518,1
    - Dst: PR_Malloc
      Src: /src/nss/cmd/signtool/zip.c:519,1
    - Dst: PR_GetErrorTextLength
      Src: /src/nss/cmd/signtool/zip.c:519,1
    - Dst: PR_GetErrorText
      Src: /src/nss/cmd/signtool/zip.c:520,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/zip.c:524,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/zip.c:527,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/zip.c:529,1
    - Dst: PR_Write
      Src: /src/nss/cmd/signtool/zip.c:533,1
    - Dst: strlen
      Src: /src/nss/cmd/signtool/zip.c:533,1
    - Dst: strlen
      Src: /src/nss/cmd/signtool/zip.c:534,1
    - Dst: PR_GetErrorTextLength
      Src: /src/nss/cmd/signtool/zip.c:536,1
    - Dst: PR_Malloc
      Src: /src/nss/cmd/signtool/zip.c:537,1
    - Dst: PR_GetErrorTextLength
      Src: /src/nss/cmd/signtool/zip.c:537,1
    - Dst: PR_GetErrorText
      Src: /src/nss/cmd/signtool/zip.c:538,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/zip.c:542,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/zip.c:545,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/zip.c:547,1
    - Dst: PR_Write
      Src: /src/nss/cmd/signtool/zip.c:552,1
    - Dst: strlen
      Src: /src/nss/cmd/signtool/zip.c:552,1
    - Dst: strlen
      Src: /src/nss/cmd/signtool/zip.c:553,1
    - Dst: PR_GetErrorTextLength
      Src: /src/nss/cmd/signtool/zip.c:555,1
    - Dst: PR_Malloc
      Src: /src/nss/cmd/signtool/zip.c:556,1
    - Dst: PR_GetErrorTextLength
      Src: /src/nss/cmd/signtool/zip.c:556,1
    - Dst: PR_GetErrorText
      Src: /src/nss/cmd/signtool/zip.c:557,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/zip.c:561,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/zip.c:564,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/zip.c:566,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/signtool/zip.c:574,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/signtool/zip.c:577,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/signtool/zip.c:579,1
    - Dst: PR_Seek
      Src: /src/nss/cmd/signtool/zip.c:581,1
    - Dst: PORT_Memset
      Src: /src/nss/cmd/signtool/zip.c:584,1
    - Dst: longtox
      Src: /src/nss/cmd/signtool/zip.c:585,1
    - Dst: inttox
      Src: /src/nss/cmd/signtool/zip.c:586,1
    - Dst: inttox
      Src: /src/nss/cmd/signtool/zip.c:587,1
    - Dst: longtox
      Src: /src/nss/cmd/signtool/zip.c:588,1
    - Dst: longtox
      Src: /src/nss/cmd/signtool/zip.c:590,1
    - Dst: inttox
      Src: /src/nss/cmd/signtool/zip.c:592,1
    - Dst: strlen
      Src: /src/nss/cmd/signtool/zip.c:592,1
    - Dst: PR_Write
      Src: /src/nss/cmd/signtool/zip.c:596,1
    - Dst: PR_GetErrorTextLength
      Src: /src/nss/cmd/signtool/zip.c:598,1
    - Dst: PR_Malloc
      Src: /src/nss/cmd/signtool/zip.c:599,1
    - Dst: PR_GetErrorTextLength
      Src: /src/nss/cmd/signtool/zip.c:599,1
    - Dst: PR_GetErrorText
      Src: /src/nss/cmd/signtool/zip.c:600,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/zip.c:604,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/zip.c:607,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/zip.c:609,1
    - Dst: PR_Write
      Src: /src/nss/cmd/signtool/zip.c:614,1
    - Dst: strlen
      Src: /src/nss/cmd/signtool/zip.c:614,1
    - Dst: strlen
      Src: /src/nss/cmd/signtool/zip.c:615,1
    - Dst: PR_GetErrorTextLength
      Src: /src/nss/cmd/signtool/zip.c:617,1
    - Dst: PR_Malloc
      Src: /src/nss/cmd/signtool/zip.c:618,1
    - Dst: PR_GetErrorTextLength
      Src: /src/nss/cmd/signtool/zip.c:618,1
    - Dst: PR_GetErrorText
      Src: /src/nss/cmd/signtool/zip.c:619,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/zip.c:623,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/zip.c:626,1
    - Dst: exit
      Src: /src/nss/cmd/signtool/zip.c:628,1
    - Dst: PR_Close
      Src: /src/nss/cmd/signtool/zip.c:632,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/signtool/zip.c:636,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/signtool/zip.c:639,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/signtool/zip.c:641,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 110
    argCount: 1
    argNames:
    - zipfile
    argTypes:
    - ZIPfile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 489
    functionDepth: 1
    functionLinenumber: 489
    functionLinenumberEnd: 644
    functionName: JzipClose
    functionSourceFile: /src/nss/cmd/signtool/zip.c
    functionUses: 1
    functionsReached:
    - PR_Malloc
    - inttox
    - PORT_Free
    - PR_fprintf
    - PR_Free
    - exit
    - longtox
    - PR_Seek
    - PR_GetErrorText
    - PR_Write
    - PORT_Memset
    - PR_Close
    - PR_GetErrorTextLength
    - strlen
    linkageType: ''
    returnType: int
    signature: int JzipClose(ZIPfile *zipfile)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 654
    functionDepth: 0
    functionLinenumber: 654
    functionLinenumberEnd: 659
    functionName: inttox
    functionSourceFile: /src/nss/cmd/signtool/zip.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void inttox(int in, char *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - long
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 676
    functionName: longtox
    functionSourceFile: /src/nss/cmd/signtool/zip.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void longtox(long in, char *out)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/javascript.c:63,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/cmd/signtool/javascript.c:66,1
    - Dst: foreach
      Src: /src/nss/cmd/signtool/javascript.c:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - dir
    - recurse
    argTypes:
    - char*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 72
    functionName: InlineJavaScript
    functionSourceFile: /src/nss/cmd/signtool/javascript.c
    functionUses: 1
    functionsReached:
    - foreach
    - PR_fprintf
    - PR_GetEnvSecure
    linkageType: ''
    returnType: int
    signature: int InlineJavaScript(char *dir, PRBool recurse)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PL_strcaserstr
      Src: /src/nss/cmd/signtool/javascript.c:85,1
    - Dst: strlen
      Src: /src/nss/cmd/signtool/javascript.c:85,1
    - Dst: PL_strcaserstr
      Src: /src/nss/cmd/signtool/javascript.c:86,1
    - Dst: strlen
      Src: /src/nss/cmd/signtool/javascript.c:86,1
    - Dst: PL_strcaserstr
      Src: /src/nss/cmd/signtool/javascript.c:87,1
    - Dst: strlen
      Src: /src/nss/cmd/signtool/javascript.c:87,1
    - Dst: PL_strcaserstr
      Src: /src/nss/cmd/signtool/javascript.c:94,1
    - Dst: strlen
      Src: /src/nss/cmd/signtool/javascript.c:94,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/javascript.c:98,1
    - Dst: PL_strcaserstr
      Src: /src/nss/cmd/signtool/javascript.c:105,1
    - Dst: strlen
      Src: /src/nss/cmd/signtool/javascript.c:105,1
    - Dst: snprintf
      Src: /src/nss/cmd/signtool/javascript.c:108,1
    - Dst: extract_js
      Src: /src/nss/cmd/signtool/javascript.c:109,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 5
    argNames:
    - relpath
    - basedir
    - reldir
    - filename
    - arg
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 110
    functionName: javascript_fn
    functionSourceFile: /src/nss/cmd/signtool/javascript.c
    functionUses: 0
    functionsReached:
    - extract_js
    - PR_fprintf
    - PL_strcaserstr
    - snprintf
    - strlen
    linkageType: ''
    returnType: int
    signature: int javascript_fn(char *relpath, char *basedir, char *reldir, char
      *filename, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_Malloc
      Src: /src/nss/cmd/signtool/javascript.c:241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - text
    - startline
    - endline
    argTypes:
    - char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 253
    functionName: CreateTextItem
    functionSourceFile: /src/nss/cmd/signtool/javascript.c
    functionUses: 0
    functionsReached:
    - PR_Malloc
    linkageType: ''
    returnType: HTMLItem
    signature: 'HTMLItem *

      CreateTextItem(char *text, unsigned int startline, unsigned int endline)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_Malloc
      Src: /src/nss/cmd/signtool/javascript.c:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - ti
    - startline
    - endline
    argTypes:
    - TagItem*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 276
    functionName: CreateTagItem
    functionSourceFile: /src/nss/cmd/signtool/javascript.c
    functionUses: 0
    functionsReached:
    - PR_Malloc
    linkageType: ''
    returnType: HTMLItem
    signature: 'HTMLItem *

      CreateTagItem(TagItem *ti, unsigned int startline, unsigned int endline)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isalnum
      Src: /src/nss/cmd/signtool/javascript.c:281,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 282
    functionName: isAttChar
    functionSourceFile: /src/nss/cmd/signtool/javascript.c
    functionUses: 0
    functionsReached:
    - isalnum
    linkageType: ''
    returnType: PRBool
    signature: PRBool isAttChar(int c)
  - BBCount: 45
    BranchProfiles: []
    Callsites:
    - Dst: FB_GetPointer
      Src: /src/nss/cmd/signtool/javascript.c:303,1
    - Dst: PR_Malloc
      Src: /src/nss/cmd/signtool/javascript.c:307,1
    - Dst: out_of_memory
      Src: /src/nss/cmd/signtool/javascript.c:309,1
    - Dst: FB_GetLineNum
      Src: /src/nss/cmd/signtool/javascript.c:315,1
    - Dst: FB_GetLineNum
      Src: /src/nss/cmd/signtool/javascript.c:318,1
    - Dst: FB_GetChar
      Src: /src/nss/cmd/signtool/javascript.c:319,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/signtool/javascript.c:321,1
    - Dst: FB_GetLineNum
      Src: /src/nss/cmd/signtool/javascript.c:344,1
    - Dst: FB_GetChar
      Src: /src/nss/cmd/signtool/javascript.c:345,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/signtool/javascript.c:348,1
    - Dst: isspace
      Src: /src/nss/cmd/signtool/javascript.c:382,1
    - Dst: FB_GetPointer
      Src: /src/nss/cmd/signtool/javascript.c:384,1
    - Dst: PR_Malloc
      Src: /src/nss/cmd/signtool/javascript.c:387,1
    - Dst: out_of_memory
      Src: /src/nss/cmd/signtool/javascript.c:389,1
    - Dst: FB_GetRange
      Src: /src/nss/cmd/signtool/javascript.c:392,1
    - Dst: GetTagType
      Src: /src/nss/cmd/signtool/javascript.c:407,1
    - Dst: FB_GetPointer
      Src: /src/nss/cmd/signtool/javascript.c:408,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/signtool/javascript.c:416,1
    - Dst: FB_GetPointer
      Src: /src/nss/cmd/signtool/javascript.c:425,1
    - Dst: isAttChar
      Src: /src/nss/cmd/signtool/javascript.c:434,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/signtool/javascript.c:439,1
    - Dst: isspace
      Src: /src/nss/cmd/signtool/javascript.c:448,1
    - Dst: isAttChar
      Src: /src/nss/cmd/signtool/javascript.c:450,1
    - Dst: FB_GetPointer
      Src: /src/nss/cmd/signtool/javascript.c:452,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/signtool/javascript.c:456,1
    - Dst: isspace
      Src: /src/nss/cmd/signtool/javascript.c:465,1
    - Dst: isAttChar
      Src: /src/nss/cmd/signtool/javascript.c:467,1
    - Dst: FB_GetPointer
      Src: /src/nss/cmd/signtool/javascript.c:469,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/signtool/javascript.c:477,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/signtool/javascript.c:486,1
    - Dst: isspace
      Src: /src/nss/cmd/signtool/javascript.c:491,1
    - Dst: FB_GetPointer
      Src: /src/nss/cmd/signtool/javascript.c:497,1
    - Dst: isspace
      Src: /src/nss/cmd/signtool/javascript.c:502,1
    - Dst: FB_GetPointer
      Src: /src/nss/cmd/signtool/javascript.c:504,1
    - Dst: FB_GetRange
      Src: /src/nss/cmd/signtool/javascript.c:507,1
    - Dst: isspace
      Src: /src/nss/cmd/signtool/javascript.c:513,1
    - Dst: FB_GetPointer
      Src: /src/nss/cmd/signtool/javascript.c:520,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/signtool/javascript.c:522,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/signtool/javascript.c:529,1
    - Dst: FB_GetPointer
      Src: /src/nss/cmd/signtool/javascript.c:532,1
    - Dst: FB_GetRange
      Src: /src/nss/cmd/signtool/javascript.c:535,1
    - Dst: FB_GetPointer
      Src: /src/nss/cmd/signtool/javascript.c:543,1
    - Dst: FB_GetPointer
      Src: /src/nss/cmd/signtool/javascript.c:556,1
    - Dst: FB_GetRange
      Src: /src/nss/cmd/signtool/javascript.c:557,1
    - Dst: DestroyTagItem
      Src: /src/nss/cmd/signtool/javascript.c:564,1
    CyclomaticComplexity: 57
    EdgeCount: 57
    ICount: 198
    argCount: 2
    argNames:
    - fb
    - errStr
    argTypes:
    - FileBuffer*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 566
    functionName: ProcessTag
    functionSourceFile: /src/nss/cmd/signtool/javascript.c
    functionUses: 0
    functionsReached:
    - PR_Malloc
    - isspace
    - PORT_Assert
    - GetTagType
    - FB_GetChar
    - DestroyTagItem
    - isAttChar
    - FB_GetRange
    - FB_GetLineNum
    - PR_smprintf
    - FB_GetPointer
    - out_of_memory
    linkageType: ''
    returnType: TagItem
    signature: 'TagItem *

      ProcessTag(FileBuffer *fb, char **errStr)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DestroyTagItem
      Src: /src/nss/cmd/signtool/javascript.c:576,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/javascript.c:579,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - item
    argTypes:
    - HTMLItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 572
    functionDepth: 1
    functionLinenumber: 572
    functionLinenumberEnd: 582
    functionName: DestroyHTMLItem
    functionSourceFile: /src/nss/cmd/signtool/javascript.c
    functionUses: 0
    functionsReached:
    - DestroyTagItem
    - PR_Free
    linkageType: ''
    returnType: void
    signature: void DestroyHTMLItem(HTMLItem *item)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/javascript.c:594,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/javascript.c:603,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/javascript.c:607,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/javascript.c:610,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/javascript.c:613,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - ti
    argTypes:
    - TagItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 588
    functionDepth: 1
    functionLinenumber: 588
    functionLinenumberEnd: 614
    functionName: DestroyTagItem
    functionSourceFile: /src/nss/cmd/signtool/javascript.c
    functionUses: 2
    functionsReached:
    - PR_Free
    linkageType: ''
    returnType: void
    signature: void DestroyTagItem(TagItem *ti)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strcasecmp
      Src: /src/nss/cmd/signtool/javascript.c:623,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/cmd/signtool/javascript.c:626,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/cmd/signtool/javascript.c:629,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/cmd/signtool/javascript.c:632,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - att
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 636
    functionName: GetTagType
    functionSourceFile: /src/nss/cmd/signtool/javascript.c
    functionUses: 1
    functionsReached:
    - PORT_Strcasecmp
    linkageType: ''
    returnType: TAG_TYPE
    signature: TAG_TYPE GetTagType(char *att)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_Malloc
      Src: /src/nss/cmd/signtool/javascript.c:649,1
    - Dst: PR_Seek
      Src: /src/nss/cmd/signtool/javascript.c:651,1
    - Dst: PR_Seek
      Src: /src/nss/cmd/signtool/javascript.c:652,1
    - Dst: PR_Read
      Src: /src/nss/cmd/signtool/javascript.c:654,1
    - Dst: PR_Seek
      Src: /src/nss/cmd/signtool/javascript.c:662,1
    - Dst: PR_Seek
      Src: /src/nss/cmd/signtool/javascript.c:665,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/javascript.c:666,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - fd
    argTypes:
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 642
    functionDepth: 1
    functionLinenumber: 642
    functionLinenumberEnd: 668
    functionName: FB_Create
    functionSourceFile: /src/nss/cmd/signtool/javascript.c
    functionUses: 0
    functionsReached:
    - PR_Malloc
    - PR_Seek
    - PR_Read
    - PR_Free
    linkageType: ''
    returnType: FileBuffer
    signature: 'FileBuffer *

      FB_Create(PRFileDesc *fd)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PR_Seek
      Src: /src/nss/cmd/signtool/javascript.c:685,1
    - Dst: PR_Seek
      Src: /src/nss/cmd/signtool/javascript.c:695,1
    - Dst: PR_Read
      Src: /src/nss/cmd/signtool/javascript.c:696,1
    - Dst: PR_Seek
      Src: /src/nss/cmd/signtool/javascript.c:706,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - fb
    argTypes:
    - FileBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 674
    functionDepth: 1
    functionLinenumber: 674
    functionLinenumberEnd: 708
    functionName: FB_GetChar
    functionSourceFile: /src/nss/cmd/signtool/javascript.c
    functionUses: 1
    functionsReached:
    - PR_Read
    - PR_Seek
    linkageType: ''
    returnType: int
    signature: int FB_GetChar(FileBuffer *fb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fb
    argTypes:
    - FileBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 715
    functionDepth: 0
    functionLinenumber: 715
    functionLinenumberEnd: 719
    functionName: FB_GetLineNum
    functionSourceFile: /src/nss/cmd/signtool/javascript.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int FB_GetLineNum(FileBuffer *fb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fb
    argTypes:
    - FileBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 726
    functionDepth: 0
    functionLinenumber: 726
    functionLinenumberEnd: 730
    functionName: FB_GetPointer
    functionSourceFile: /src/nss/cmd/signtool/javascript.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: PRInt32
    signature: PRInt32 FB_GetPointer(FileBuffer *fb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_Malloc
      Src: /src/nss/cmd/signtool/javascript.c:743,1
    - Dst: PR_Seek
      Src: /src/nss/cmd/signtool/javascript.c:748,1
    - Dst: PR_Seek
      Src: /src/nss/cmd/signtool/javascript.c:749,1
    - Dst: PR_Read
      Src: /src/nss/cmd/signtool/javascript.c:750,1
    - Dst: PR_Seek
      Src: /src/nss/cmd/signtool/javascript.c:751,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/javascript.c:753,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - fb
    - start
    - end
    - buf
    argTypes:
    - FileBuffer*
    - PRInt32
    - PRInt32
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 737
    functionDepth: 1
    functionLinenumber: 737
    functionLinenumberEnd: 760
    functionName: FB_GetRange
    functionSourceFile: /src/nss/cmd/signtool/javascript.c
    functionUses: 1
    functionsReached:
    - PR_Malloc
    - PR_Seek
    - PR_Read
    - PR_Free
    linkageType: ''
    returnType: PRInt32
    signature: PRInt32 FB_GetRange(FileBuffer *fb, PRInt32 start, PRInt32 end, char
      **buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/javascript.c:771,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - fb
    argTypes:
    - FileBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 767
    functionDepth: 1
    functionLinenumber: 767
    functionLinenumberEnd: 773
    functionName: FB_Destroy
    functionSourceFile: /src/nss/cmd/signtool/javascript.c
    functionUses: 0
    functionsReached:
    - PR_Free
    linkageType: ''
    returnType: void
    signature: void FB_Destroy(FileBuffer *fb)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/javascript.c:785,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/javascript.c:788,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/javascript.c:791,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/javascript.c:794,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/javascript.c:797,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/javascript.c:800,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/javascript.c:804,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/javascript.c:808,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/javascript.c:810,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/javascript.c:813,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/javascript.c:815,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - fd
    - ti
    argTypes:
    - PRFileDesc*
    - TagItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 780
    functionDepth: 1
    functionLinenumber: 780
    functionLinenumberEnd: 816
    functionName: PrintTagItem
    functionSourceFile: /src/nss/cmd/signtool/javascript.c
    functionUses: 0
    functionsReached:
    - PR_fprintf
    linkageType: ''
    returnType: void
    signature: void PrintTagItem(PRFileDesc *fd, TagItem *ti)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PrintTagItem
      Src: /src/nss/cmd/signtool/javascript.c:828,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/javascript.c:830,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - fd
    - head
    argTypes:
    - PRFileDesc*
    - HTMLItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 823
    functionDepth: 2
    functionLinenumber: 823
    functionLinenumberEnd: 834
    functionName: PrintHTMLStream
    functionSourceFile: /src/nss/cmd/signtool/javascript.c
    functionUses: 0
    functionsReached:
    - PR_fprintf
    - PrintTagItem
    linkageType: ''
    returnType: void
    signature: void PrintHTMLStream(PRFileDesc *fd, HTMLItem *head)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/javascript.c:855,1
    - Dst: ensureExists
      Src: /src/nss/cmd/signtool/javascript.c:861,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/javascript.c:862,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/signtool/javascript.c:869,1
    - Dst: ensureExists
      Src: /src/nss/cmd/signtool/javascript.c:871,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/javascript.c:872,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/signtool/javascript.c:878,1
    - Dst: PR_Access
      Src: /src/nss/cmd/signtool/javascript.c:881,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/javascript.c:882,1
    - Dst: rm_dash_r
      Src: /src/nss/cmd/signtool/javascript.c:886,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/javascript.c:887,1
    - Dst: PR_Open
      Src: /src/nss/cmd/signtool/javascript.c:894,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/javascript.c:896,1
    - Dst: strlen
      Src: /src/nss/cmd/signtool/javascript.c:901,1
    - Dst: PR_Write
      Src: /src/nss/cmd/signtool/javascript.c:902,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/javascript.c:903,1
    - Dst: PR_smprintf_free
      Src: /src/nss/cmd/signtool/javascript.c:912,1
    - Dst: PR_smprintf_free
      Src: /src/nss/cmd/signtool/javascript.c:915,1
    - Dst: PR_Close
      Src: /src/nss/cmd/signtool/javascript.c:918,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 57
    argCount: 4
    argNames:
    - text
    - id
    - basedir
    - archiveDir
    argTypes:
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 841
    functionDepth: 1
    functionLinenumber: 841
    functionLinenumberEnd: 921
    functionName: SaveInlineScript
    functionSourceFile: /src/nss/cmd/signtool/javascript.c
    functionUses: 0
    functionsReached:
    - PR_fprintf
    - PR_Access
    - PR_Open
    - PR_Write
    - PR_smprintf
    - PR_smprintf_free
    - rm_dash_r
    - ensureExists
    - PR_Close
    - strlen
    linkageType: ''
    returnType: int
    signature: int SaveInlineScript(char *text, char *id, char *basedir, char *archiveDir)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/javascript.c:942,1
    - Dst: PL_strrchr
      Src: /src/nss/cmd/signtool/javascript.c:949,1
    - Dst: strpbrk
      Src: /src/nss/cmd/signtool/javascript.c:953,1
    - Dst: strpbrk
      Src: /src/nss/cmd/signtool/javascript.c:954,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/signtool/javascript.c:958,1
    - Dst: SaveInlineScript
      Src: /src/nss/cmd/signtool/javascript.c:964,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/javascript.c:966,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 4
    argNames:
    - text
    - basedir
    - archiveDir
    - HTMLfilename
    argTypes:
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 928
    functionDepth: 2
    functionLinenumber: 928
    functionLinenumberEnd: 969
    functionName: SaveUnnamableScript
    functionSourceFile: /src/nss/cmd/signtool/javascript.c
    functionUses: 0
    functionsReached:
    - strpbrk
    - PL_strrchr
    - PR_fprintf
    - PR_Free
    - SaveInlineScript
    - PR_smprintf
    linkageType: ''
    returnType: int
    signature: "int SaveUnnamableScript(char *text, char *basedir, char *archiveDir,\n
      \                   char *HTMLfilename)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/javascript.c:988,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/signtool/javascript.c:994,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/signtool/javascript.c:996,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/signtool/javascript.c:1000,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/signtool/javascript.c:1001,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/signtool/javascript.c:1003,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/signtool/javascript.c:1004,1
    - Dst: make_dirs
      Src: /src/nss/cmd/signtool/javascript.c:1007,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/javascript.c:1008,1
    - Dst: copyinto
      Src: /src/nss/cmd/signtool/javascript.c:1014,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/javascript.c:1017,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/javascript.c:1019,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/javascript.c:1021,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 4
    argNames:
    - src
    - codebase
    - basedir
    - archiveDir
    argTypes:
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 976
    functionDepth: 1
    functionLinenumber: 976
    functionLinenumberEnd: 1023
    functionName: SaveSource
    functionSourceFile: /src/nss/cmd/signtool/javascript.c
    functionUses: 0
    functionsReached:
    - PR_fprintf
    - PR_Free
    - copyinto
    - PR_smprintf
    - make_dirs
    linkageType: ''
    returnType: int
    signature: int SaveSource(char *src, char *codebase, char *basedir, char *archiveDir)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - type
    argTypes:
    - TAG_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 1030
    functionDepth: 0
    functionLinenumber: 1030
    functionLinenumberEnd: 1046
    functionName: TagTypeToString
    functionSourceFile: /src/nss/cmd/signtool/javascript.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      TagTypeToString(TAG_TYPE type)'
  - BBCount: 79
    BranchProfiles: []
    Callsites:
    - Dst: PR_Open
      Src: /src/nss/cmd/signtool/javascript.c:1085,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/javascript.c:1087,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/signtool/javascript.c:1096,1
    - Dst: PL_strprbrk
      Src: /src/nss/cmd/signtool/javascript.c:1099,1
    - Dst: strlen
      Src: /src/nss/cmd/signtool/javascript.c:1100,1
    - Dst: PL_strprbrk
      Src: /src/nss/cmd/signtool/javascript.c:1106,1
    - Dst: FB_Create
      Src: /src/nss/cmd/signtool/javascript.c:1114,1
    - Dst: FB_GetLineNum
      Src: /src/nss/cmd/signtool/javascript.c:1118,1
    - Dst: FB_GetChar
      Src: /src/nss/cmd/signtool/javascript.c:1118,1
    - Dst: FB_GetPointer
      Src: /src/nss/cmd/signtool/javascript.c:1126,1
    - Dst: FB_GetRange
      Src: /src/nss/cmd/signtool/javascript.c:1128,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/javascript.c:1131,1
    - Dst: CreateTextItem
      Src: /src/nss/cmd/signtool/javascript.c:1142,1
    - Dst: ProcessTag
      Src: /src/nss/cmd/signtool/javascript.c:1154,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/javascript.c:1157,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/javascript.c:1161,1
    - Dst: CreateTagItem
      Src: /src/nss/cmd/signtool/javascript.c:1169,1
    - Dst: FB_GetLineNum
      Src: /src/nss/cmd/signtool/javascript.c:1169,1
    - Dst: FB_GetPointer
      Src: /src/nss/cmd/signtool/javascript.c:1183,1
    - Dst: FB_GetLineNum
      Src: /src/nss/cmd/signtool/javascript.c:1184,1
    - Dst: FB_GetPointer
      Src: /src/nss/cmd/signtool/javascript.c:1196,1
    - Dst: FB_GetRange
      Src: /src/nss/cmd/signtool/javascript.c:1198,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/javascript.c:1200,1
    - Dst: PORT_Strncasecmp
      Src: /src/nss/cmd/signtool/javascript.c:1205,1
    - Dst: FB_GetRange
      Src: /src/nss/cmd/signtool/javascript.c:1209,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/javascript.c:1211,1
    - Dst: CreateTextItem
      Src: /src/nss/cmd/signtool/javascript.c:1216,1
    - Dst: ProcessTag
      Src: /src/nss/cmd/signtool/javascript.c:1227,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/javascript.c:1230,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/javascript.c:1233,1
    - Dst: CreateTagItem
      Src: /src/nss/cmd/signtool/javascript.c:1241,1
    - Dst: FB_GetLineNum
      Src: /src/nss/cmd/signtool/javascript.c:1242,1
    - Dst: FB_GetPointer
      Src: /src/nss/cmd/signtool/javascript.c:1253,1
    - Dst: FB_GetLineNum
      Src: /src/nss/cmd/signtool/javascript.c:1254,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/javascript.c:1265,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/javascript.c:1269,1
    - Dst: FB_GetPointer
      Src: /src/nss/cmd/signtool/javascript.c:1276,1
    - Dst: FB_GetRange
      Src: /src/nss/cmd/signtool/javascript.c:1279,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/javascript.c:1281,1
    - Dst: CreateTextItem
      Src: /src/nss/cmd/signtool/javascript.c:1285,1
    - Dst: PrintHTMLStream
      Src: /src/nss/cmd/signtool/javascript.c:1296,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/javascript.c:1310,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/signtool/javascript.c:1325,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/javascript.c:1328,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/javascript.c:1333,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/signtool/javascript.c:1335,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/signtool/javascript.c:1338,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/signtool/javascript.c:1339,1
    - Dst: strlen
      Src: /src/nss/cmd/signtool/javascript.c:1339,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/javascript.c:1342,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/signtool/javascript.c:1347,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/javascript.c:1348,1
    - Dst: PL_strcpy
      Src: /src/nss/cmd/signtool/javascript.c:1351,1
    - Dst: strlen
      Src: /src/nss/cmd/signtool/javascript.c:1351,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/signtool/javascript.c:1357,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/signtool/javascript.c:1361,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/javascript.c:1364,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/cmd/signtool/javascript.c:1373,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/cmd/signtool/javascript.c:1374,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/javascript.c:1377,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/cmd/signtool/javascript.c:1386,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/javascript.c:1390,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/signtool/javascript.c:1399,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/signtool/javascript.c:1400,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/signtool/javascript.c:1400,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/signtool/javascript.c:1401,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/javascript.c:1404,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/signtool/javascript.c:1409,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/javascript.c:1412,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/signtool/javascript.c:1430,1
    - Dst: CreateTextItem
      Src: /src/nss/cmd/signtool/javascript.c:1433,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/signtool/javascript.c:1433,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/signtool/javascript.c:1445,1
    - Dst: PL_strstr
      Src: /src/nss/cmd/signtool/javascript.c:1466,1
    - Dst: PL_strchr
      Src: /src/nss/cmd/signtool/javascript.c:1468,1
    - Dst: CreateTextItem
      Src: /src/nss/cmd/signtool/javascript.c:1472,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/signtool/javascript.c:1472,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/signtool/javascript.c:1488,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/javascript.c:1494,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/javascript.c:1500,1
    - Dst: SaveInlineScript
      Src: /src/nss/cmd/signtool/javascript.c:1506,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/javascript.c:1515,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/javascript.c:1522,1
    - Dst: SaveSource
      Src: /src/nss/cmd/signtool/javascript.c:1529,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/javascript.c:1538,1
    - Dst: TagTypeToString
      Src: /src/nss/cmd/signtool/javascript.c:1541,1
    - Dst: SaveSource
      Src: /src/nss/cmd/signtool/javascript.c:1546,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/javascript.c:1553,1
    - Dst: TagTypeToString
      Src: /src/nss/cmd/signtool/javascript.c:1556,1
    - Dst: SaveInlineScript
      Src: /src/nss/cmd/signtool/javascript.c:1560,1
    - Dst: SaveInlineScript
      Src: /src/nss/cmd/signtool/javascript.c:1565,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/javascript.c:1573,1
    - Dst: TagTypeToString
      Src: /src/nss/cmd/signtool/javascript.c:1576,1
    - Dst: SaveUnnamableScript
      Src: /src/nss/cmd/signtool/javascript.c:1599,1
    - Dst: SaveUnnamableScript
      Src: /src/nss/cmd/signtool/javascript.c:1604,1
    - Dst: DestroyHTMLItem
      Src: /src/nss/cmd/signtool/javascript.c:1617,1
    - Dst: DestroyHTMLItem
      Src: /src/nss/cmd/signtool/javascript.c:1622,1
    - Dst: DestroyHTMLItem
      Src: /src/nss/cmd/signtool/javascript.c:1627,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/javascript.c:1630,1
    - Dst: FB_Destroy
      Src: /src/nss/cmd/signtool/javascript.c:1634,1
    - Dst: PR_Close
      Src: /src/nss/cmd/signtool/javascript.c:1638,1
    - Dst: PR_smprintf_free
      Src: /src/nss/cmd/signtool/javascript.c:1641,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/javascript.c:1645,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/javascript.c:1649,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/javascript.c:1653,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/javascript.c:1656,1
    CyclomaticComplexity: 115
    EdgeCount: 115
    ICount: 390
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1659
      start: 1053
    functionDepth: 3
    functionLinenumber: 1053
    functionLinenumberEnd: 1659
    functionName: extract_js
    functionSourceFile: /src/nss/cmd/signtool/javascript.c
    functionUses: 1
    functionsReached:
    - PL_strlen
    - TagTypeToString
    - PR_Free
    - CreateTextItem
    - PL_strcpy
    - PL_strchr
    - strlen
    - PORT_Strcasecmp
    - PL_strstr
    - SaveSource
    - CreateTagItem
    - PR_smprintf
    - SaveUnnamableScript
    - PR_smprintf_free
    - DestroyHTMLItem
    - FB_GetRange
    - SaveInlineScript
    - PL_strdup
    - PR_Open
    - PR_Close
    - PL_strprbrk
    - PrintHTMLStream
    - FB_Create
    - PORT_Strncasecmp
    - PR_fprintf
    - FB_GetChar
    - PL_strcasecmp
    - FB_GetLineNum
    - FB_GetPointer
    - ProcessTag
    - FB_Destroy
    linkageType: ''
    returnType: int
    signature: int extract_js(char *filename)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/nss/cmd/signtool/javascript.c:1674,1
    - Dst: PR_OpenDir
      Src: /src/nss/cmd/signtool/javascript.c:1681,1
    - Dst: PR_CloseDir
      Src: /src/nss/cmd/signtool/javascript.c:1682,1
    - Dst: PR_MkDir
      Src: /src/nss/cmd/signtool/javascript.c:1685,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - basepath
    - path
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1686
      start: 1669
    functionDepth: 1
    functionLinenumber: 1669
    functionLinenumberEnd: 1686
    functionName: ensureExists
    functionSourceFile: /src/nss/cmd/signtool/javascript.c
    functionUses: 1
    functionsReached:
    - PR_OpenDir
    - PR_MkDir
    - snprintf
    - PR_CloseDir
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus ensureExists(char *basepath, char *path)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PL_strdup
      Src: /src/nss/cmd/signtool/javascript.c:1708,1
    - Dst: strpbrk
      Src: /src/nss/cmd/signtool/javascript.c:1713,1
    - Dst: strpbrk
      Src: /src/nss/cmd/signtool/javascript.c:1720,1
    - Dst: PR_GetFileInfo
      Src: /src/nss/cmd/signtool/javascript.c:1723,1
    - Dst: PR_MkDir
      Src: /src/nss/cmd/signtool/javascript.c:1725,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/javascript.c:1726,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/javascript.c:1735,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/javascript.c:1748,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 2
    argNames:
    - path
    - file_perms
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1750
      start: 1695
    functionDepth: 1
    functionLinenumber: 1695
    functionLinenumberEnd: 1750
    functionName: make_dirs
    functionSourceFile: /src/nss/cmd/signtool/javascript.c
    functionUses: 2
    functionsReached:
    - strpbrk
    - PR_fprintf
    - PR_Free
    - PL_strdup
    - PR_GetFileInfo
    - PR_MkDir
    linkageType: ''
    returnType: int
    signature: int make_dirs(char *path, int file_perms)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PR_Open
      Src: /src/nss/cmd/signtool/javascript.c:1766,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/javascript.c:1767,1
    - Dst: PR_Access
      Src: /src/nss/cmd/signtool/javascript.c:1774,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/javascript.c:1775,1
    - Dst: rm_dash_r
      Src: /src/nss/cmd/signtool/javascript.c:1777,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/javascript.c:1778,1
    - Dst: PR_Open
      Src: /src/nss/cmd/signtool/javascript.c:1785,1
    - Dst: PR_Malloc
      Src: /src/nss/cmd/signtool/javascript.c:1789,1
    - Dst: PR_GetErrorTextLength
      Src: /src/nss/cmd/signtool/javascript.c:1789,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/javascript.c:1790,1
    - Dst: PR_GetErrorText
      Src: /src/nss/cmd/signtool/javascript.c:1791,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/javascript.c:1792,1
    - Dst: PR_Free
      Src: /src/nss/cmd/signtool/javascript.c:1795,1
    - Dst: PR_Read
      Src: /src/nss/cmd/signtool/javascript.c:1801,1
    - Dst: PR_Write
      Src: /src/nss/cmd/signtool/javascript.c:1802,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signtool/javascript.c:1803,1
    - Dst: PR_Close
      Src: /src/nss/cmd/signtool/javascript.c:1812,1
    - Dst: PR_Close
      Src: /src/nss/cmd/signtool/javascript.c:1814,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 2
    argNames:
    - from
    - to
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1817
      start: 1758
    functionDepth: 1
    functionLinenumber: 1758
    functionLinenumberEnd: 1817
    functionName: copyinto
    functionSourceFile: /src/nss/cmd/signtool/javascript.c
    functionUses: 1
    functionsReached:
    - PR_Malloc
    - PR_fprintf
    - PR_Access
    - PR_Free
    - PR_Read
    - PR_Open
    - PR_Write
    - PR_GetErrorText
    - rm_dash_r
    - PR_Close
    - PR_GetErrorTextLength
    linkageType: ''
    returnType: int
    signature: int copyinto(char *from, char *to)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 111
    functionName: spitOutHeaders
    functionSourceFile: /src/nss/cmd/crmf-cgi/crmfcgi.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void spitOutHeaders(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:119,1
    - Dst: printf
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:120,1
    - Dst: printf
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:124,1
    - Dst: printf
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - varTable
    argTypes:
    - CGIVarTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 128
    functionName: dumpRequest
    functionSourceFile: /src/nss/cmd/crmf-cgi/crmfcgi.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void dumpRequest(CGIVarTable *varTable)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spitOutHeaders
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:133,1
    - Dst: printf
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:134,1
    - Dst: dumpRequest
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:136,1
    - Dst: printf
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - varTable
    argTypes:
    - CGIVarTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 138
    functionName: echo_request
    functionSourceFile: /src/nss/cmd/crmf-cgi/crmfcgi.c
    functionUses: 0
    functionsReached:
    - spitOutHeaders
    - printf
    - dumpRequest
    linkageType: ''
    returnType: void
    signature: void echo_request(CGIVarTable *varTable)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:147,1
    - Dst: strchr
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:151,1
    - Dst: sscanf
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:159,1
    - Dst: memmove
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:161,1
    - Dst: strlen
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - var
    argTypes:
    - CGIVariable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 163
    functionName: processVariable
    functionSourceFile: /src/nss/cmd/crmf-cgi/crmfcgi.c
    functionUses: 0
    functionsReached:
    - sscanf
    - memmove
    - strchr
    - strlen
    linkageType: ''
    returnType: void
    signature: void processVariable(CGIVariable *var)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:172,1
    - Dst: strchr
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:180,1
    - Dst: strchr
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:184,1
    - Dst: malloc
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:192,1
    - Dst: processVariable
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:197,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 2
    argNames:
    - varTable
    - form_output
    argTypes:
    - CGIVarTable*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 199
    functionName: parseNextVariable
    functionSourceFile: /src/nss/cmd/crmf-cgi/crmfcgi.c
    functionUses: 0
    functionsReached:
    - realloc
    - processVariable
    - malloc
    - strchr
    linkageType: ''
    returnType: char
    signature: 'char *

      parseNextVariable(CGIVarTable *varTable, char *form_output)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:204,1
    - Dst: parseNextVariable
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:208,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - varTable
    - form_output
    argTypes:
    - CGIVarTable*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 201
    functionDepth: 3
    functionLinenumber: 201
    functionLinenumberEnd: 210
    functionName: ParseInputVariables
    functionSourceFile: /src/nss/cmd/crmf-cgi/crmfcgi.c
    functionUses: 0
    functionsReached:
    - malloc
    - parseNextVariable
    linkageType: ''
    returnType: void
    signature: void ParseInputVariables(CGIVarTable *varTable, char *form_output)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:219,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - varTable
    - key
    argTypes:
    - CGIVarTable*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 225
    functionName: CGITableFindValue
    functionSourceFile: /src/nss/cmd/crmf-cgi/crmfcgi.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: char
    signature: 'char *

      CGITableFindValue(CGIVarTable *varTable, const char *key)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CGITableFindValue
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:234,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:238,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - slot
    - retry
    - arg
    argTypes:
    - PK11SlotInfo*
    - PRBool
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 239
    functionName: passwordCallback
    functionSourceFile: /src/nss/cmd/crmf-cgi/crmfcgi.c
    functionUses: 0
    functionsReached:
    - CGITableFindValue
    - PORT_Strdup
    linkageType: ''
    returnType: char
    signature: 'char *

      passwordCallback(PK11SlotInfo *slot, PRBool retry, void *arg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CGITableFindValue
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:248,1
    - Dst: NSS_Init
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:253,1
    - Dst: PK11_SetPasswordFunc
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:257,1
    - Dst: PK11_GetInternalKeySlot
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:258,1
    - Dst: PK11_Authenticate
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:259,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:260,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - varTable
    argTypes:
    - CGIVarTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 265
    functionName: initNSS
    functionSourceFile: /src/nss/cmd/crmf-cgi/crmfcgi.c
    functionUses: 0
    functionsReached:
    - PK11_GetInternalKeySlot
    - NSS_Init
    - CGITableFindValue
    - PK11_SetPasswordFunc
    - PK11_FreeSlot
    - PK11_Authenticate
    linkageType: ''
    returnType: ErrorCode
    signature: ErrorCode initNSS(CGIVarTable *varTable)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: spitOutHeaders
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:270,1
    - Dst: printf
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:271,1
    - Dst: printf
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:275,1
    - Dst: printf
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - errNum
    argTypes:
    - ErrorCode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 278
    functionName: dumpErrorMessage
    functionSourceFile: /src/nss/cmd/crmf-cgi/crmfcgi.c
    functionUses: 0
    functionsReached:
    - spitOutHeaders
    - printf
    linkageType: ''
    returnType: void
    signature: void dumpErrorMessage(ErrorCode errNum)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:286,1
    - Dst: SEC_ASN1EncodeInteger
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:287,1
    - Dst: CERT_CopyName
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:289,1
    - Dst: SECKEY_CopySubjectPublicKeyInfo
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - oldCertReq
    - subject
    - spki
    argTypes:
    - CERTCertificateRequest*
    - CERTName*
    - CERTSubjectPublicKeyInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 294
    functionName: initOldCertReq
    functionSourceFile: /src/nss/cmd/crmf-cgi/crmfcgi.c
    functionUses: 0
    functionsReached:
    - CERT_CopyName
    - SECKEY_CopySubjectPublicKeyInfo
    - SEC_ASN1EncodeInteger
    - PORT_NewArena
    linkageType: ''
    returnType: ErrorCode
    signature: "ErrorCode initOldCertReq(CERTCertificateRequest *oldCertReq,\n               CERTName
      *subject, CERTSubjectPublicKeyInfo *spki)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CRMF_CertRequestGetNumberOfExtensions
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:305,1
    - Dst: CERT_StartCertExtensions
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:310,1
    - Dst: CRMF_CertRequestGetExtensionAtIndex
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:316,1
    - Dst: CERT_AddExtension
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:320,1
    - Dst: CRMF_CertExtensionGetOidTag
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:320,1
    - Dst: CRMF_CertExtensionGetValue
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:321,1
    - Dst: CRMF_CertExtensionGetIsCritical
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:322,1
    - Dst: CERT_FinishExtensions
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:327,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 2
    argNames:
    - newCert
    - certReq
    argTypes:
    - CERTCertificate*
    - CRMFCertRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 335
    functionName: addExtensions
    functionSourceFile: /src/nss/cmd/crmf-cgi/crmfcgi.c
    functionUses: 0
    functionsReached:
    - CRMF_CertExtensionGetIsCritical
    - CERT_FinishExtensions
    - CERT_AddExtension
    - CRMF_CertExtensionGetOidTag
    - CRMF_CertRequestGetNumberOfExtensions
    - CERT_StartCertExtensions
    - CRMF_CertExtensionGetValue
    - CRMF_CertRequestGetExtensionAtIndex
    linkageType: ''
    returnType: ErrorCode
    signature: ErrorCode addExtensions(CERTCertificate *newCert, CRMFCertRequest *certReq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_Open
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:342,1
    - Dst: PR_Write
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:345,1
    - Dst: PR_Close
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - filePath
    - der
    argTypes:
    - char*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 347
    functionName: writeOutItem
    functionSourceFile: /src/nss/cmd/crmf-cgi/crmfcgi.c
    functionUses: 0
    functionsReached:
    - PR_Open
    - PR_Write
    - PR_Close
    linkageType: ''
    returnType: void
    signature: void writeOutItem(const char *filePath, SECItem *der)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PR_Now
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:365,1
    - Dst: PR_ExplodeTime
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:366,1
    - Dst: PR_ImplodeTime
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:368,1
    - Dst: CERT_CreateValidity
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:369,1
    - Dst: CERT_CreateCertificate
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:371,1
    - Dst: rand
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:371,1
    - Dst: addExtensions
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:377,1
    - Dst: PK11_FindKeyByAnyCert
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:381,1
    - Dst: SEC_GetSignatureAlgorithmOidTag
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:385,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:391,1
    - Dst: CRMF_CertRequestGetCertTemplateVersion
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:397,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:402,1
    - Dst: SEC_ASN1EncodeInteger
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:403,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:405,1
    - Dst: SEC_DerSignData
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:411,1
    - Dst: writeOutItem
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:418,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:424,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 61
    argCount: 6
    argNames:
    - issuedCert
    - oldCertReq
    - currReq
    - certReq
    - issuerCert
    - varTable
    argTypes:
    - CERTCertificate**
    - CERTCertificateRequest*
    - CRMFCertReqMsg*
    - CRMFCertRequest*
    - CERTCertificate*
    - CGIVarTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 349
    functionDepth: 2
    functionLinenumber: 349
    functionLinenumberEnd: 427
    functionName: createNewCert
    functionSourceFile: /src/nss/cmd/crmf-cgi/crmfcgi.c
    functionUses: 0
    functionsReached:
    - PR_ImplodeTime
    - SEC_GetSignatureAlgorithmOidTag
    - SEC_ASN1EncodeItem
    - CERT_CreateCertificate
    - writeOutItem
    - addExtensions
    - PR_Now
    - PR_ExplodeTime
    - SECOID_SetAlgorithmID
    - CRMF_CertRequestGetCertTemplateVersion
    - rand
    - SEC_ASN1EncodeInteger
    - SEC_DerSignData
    - CERT_CreateValidity
    - CERT_DestroyCertificate
    - SECITEM_FreeItem
    - PK11_FindKeyByAnyCert
    linkageType: ''
    returnType: ErrorCode
    signature: "ErrorCode createNewCert(CERTCertificate **issuedCert, CERTCertificateRequest
      *oldCertReq,\n              CRMFCertReqMsg *currReq, CRMFCertRequest *certReq,\n
      \             CERTCertificate *issuerCert, CGIVarTable *varTable)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:434,1
    - Dst: strchr
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:437,1
    - Dst: printf
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:440,1
    - Dst: printf
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:444,1
    - Dst: printf
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:447,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - nickname
    - base64Response
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 456
    functionName: formatCMMFResponse
    functionSourceFile: /src/nss/cmd/crmf-cgi/crmfcgi.c
    functionUses: 0
    functionsReached:
    - printf
    - strchr
    linkageType: ''
    returnType: void
    signature: void formatCMMFResponse(char *nickname, char *base64Response)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spitOutHeaders
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:461,1
    - Dst: printf
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:462,1
    - Dst: formatCMMFResponse
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:466,1
    - Dst: printf
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - nickname
    - base64Response
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 469
    functionName: spitOutCMMFResponse
    functionSourceFile: /src/nss/cmd/crmf-cgi/crmfcgi.c
    functionUses: 0
    functionsReached:
    - spitOutHeaders
    - formatCMMFResponse
    - printf
    linkageType: ''
    returnType: void
    signature: void spitOutCMMFResponse(char *nickname, char *base64Response)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CERT_GetCommonName
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:479,1
    - Dst: CERT_NameToAscii
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:483,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - cert
    argTypes:
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 471
    functionDepth: 1
    functionLinenumber: 471
    functionLinenumberEnd: 484
    functionName: getNickname
    functionSourceFile: /src/nss/cmd/crmf-cgi/crmfcgi.c
    functionUses: 0
    functionsReached:
    - CERT_GetCommonName
    - CERT_NameToAscii
    linkageType: ''
    returnType: char
    signature: 'char *

      getNickname(CERTCertificate *cert)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CMMF_CreateCertRepContent
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:499,1
    - Dst: PORT_NewArray
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:504,1
    - Dst: CMMF_CreateCertResponse
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:511,1
    - Dst: CMMF_CertResponseSetPKIStatusInfoStatus
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:516,1
    - Dst: CMMF_CertResponseSetCertificate
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:517,1
    - Dst: CMMF_CertRepContentSetCertResponses
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:519,1
    - Dst: CERT_NewCertList
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:525,1
    - Dst: CERT_AddCertToListTail
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:530,1
    - Dst: CMMF_CertRepContentSetCAPubs
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:535,1
    - Dst: CERT_DestroyCertList
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:536,1
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:537,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:538,1
    - Dst: writeOutItem
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:545,1
    - Dst: BTOA_DataToAscii
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:547,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 56
    argCount: 4
    argNames:
    - issuedCerts
    - numCerts
    - issuerCert
    - base64der
    argTypes:
    - CertResponseInfo*
    - int
    - CERTCertificate*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 486
    functionDepth: 2
    functionLinenumber: 486
    functionLinenumberEnd: 551
    functionName: createCMMFResponse
    functionSourceFile: /src/nss/cmd/crmf-cgi/crmfcgi.c
    functionUses: 0
    functionsReached:
    - CMMF_CertRepContentSetCAPubs
    - SEC_ASN1EncodeItem
    - CMMF_CertRepContentSetCertResponses
    - PORT_NewArena
    - BTOA_DataToAscii
    - writeOutItem
    - CERT_NewCertList
    - CMMF_CertResponseSetCertificate
    - CMMF_CreateCertRepContent
    - PORT_NewArray
    - CMMF_CertResponseSetPKIStatusInfoStatus
    - CERT_AddCertToListTail
    - CMMF_CreateCertResponse
    - CERT_DestroyCertList
    linkageType: ''
    returnType: ErrorCode
    signature: "ErrorCode createCMMFResponse(CertResponseInfo *issuedCerts, int numCerts,\n
      \                  CERTCertificate *issuerCert, char **base64der)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: createCMMFResponse
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:560,1
    - Dst: spitOutCMMFResponse
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:564,1
    - Dst: getNickname
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:564,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - issuedCerts
    - numCerts
    - issuerCert
    argTypes:
    - CertResponseInfo*
    - int
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 553
    functionDepth: 3
    functionLinenumber: 553
    functionLinenumberEnd: 568
    functionName: issueCerts
    functionSourceFile: /src/nss/cmd/crmf-cgi/crmfcgi.c
    functionUses: 0
    functionsReached:
    - createCMMFResponse
    - getNickname
    - spitOutCMMFResponse
    linkageType: ''
    returnType: ErrorCode
    signature: "ErrorCode issueCerts(CertResponseInfo *issuedCerts, int numCerts,\n
      \          CERTCertificate *issuerCert)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: CRMF_CertReqMsgGetPOPOSigningKey
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:582,1
    - Dst: CRMF_POPOSigningKeyGetAlgID
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:587,1
    - Dst: CRMF_POPOSigningKeyGetSignature
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:592,1
    - Dst: CERT_ExtractPublicKey
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:599,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:604,1
    - Dst: VFY_VerifyDataWithAlgorithmID
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:609,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:618,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:621,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:624,1
    - Dst: SECOID_DestroyAlgorithmID
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:627,1
    - Dst: CRMF_DestroyPOPOSigningKey
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:630,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 56
    argCount: 4
    argNames:
    - varTable
    - currReq
    - certReq
    - newCert
    argTypes:
    - CGIVarTable*
    - CRMFCertReqMsg*
    - CRMFCertRequest*
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 633
    functionName: verifySignature
    functionSourceFile: /src/nss/cmd/crmf-cgi/crmfcgi.c
    functionUses: 0
    functionsReached:
    - CRMF_POPOSigningKeyGetSignature
    - SECKEY_DestroyPublicKey
    - SEC_ASN1EncodeItem
    - VFY_VerifyDataWithAlgorithmID
    - SECOID_DestroyAlgorithmID
    - CRMF_DestroyPOPOSigningKey
    - CRMF_CertReqMsgGetPOPOSigningKey
    - CRMF_POPOSigningKeyGetAlgID
    - CERT_ExtractPublicKey
    - SECITEM_FreeItem
    linkageType: ''
    returnType: ErrorCode
    signature: "ErrorCode verifySignature(CGIVarTable *varTable, CRMFCertReqMsg *currReq,\n
      \               CRMFCertRequest *certReq, CERTCertificate *newCert)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CRMF_CertReqMsgGetPOPKeyEncipherment
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:645,1
    - Dst: CRMF_POPOPrivKeyGetChoice
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:650,1
    - Dst: CRMF_DestroyPOPOPrivKey
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:651,1
    - Dst: rand
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:655,1
    - Dst: CERT_ExtractPublicKey
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:656,1
    - Dst: CRMF_CertRequestIsControlPresent
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:667,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 6
    argNames:
    - varTable
    - currReq
    - certReq
    - newCert
    - challs
    - numChall
    argTypes:
    - CGIVarTable*
    - CRMFCertReqMsg*
    - CRMFCertRequest*
    - CERTCertificate*
    - ChallengeCreationInfo*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 635
    functionDepth: 1
    functionLinenumber: 635
    functionLinenumberEnd: 680
    functionName: doChallengeResponse
    functionSourceFile: /src/nss/cmd/crmf-cgi/crmfcgi.c
    functionUses: 0
    functionsReached:
    - CRMF_CertReqMsgGetPOPKeyEncipherment
    - CRMF_DestroyPOPOPrivKey
    - CRMF_POPOPrivKeyGetChoice
    - rand
    - CRMF_CertRequestIsControlPresent
    - CERT_ExtractPublicKey
    linkageType: ''
    returnType: ErrorCode
    signature: "ErrorCode doChallengeResponse(CGIVarTable *varTable, CRMFCertReqMsg
      *currReq,\n                    CRMFCertRequest *certReq, CERTCertificate *newCert,\n
      \                   ChallengeCreationInfo *challs, int *numChall)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CRMF_CertReqMsgGetPOPType
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:690,1
    - Dst: verifySignature
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:697,1
    - Dst: doChallengeResponse
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:700,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 6
    argNames:
    - varTable
    - currReq
    - certReq
    - newCert
    - challs
    - numChall
    argTypes:
    - CGIVarTable*
    - CRMFCertReqMsg*
    - CRMFCertRequest*
    - CERTCertificate*
    - ChallengeCreationInfo*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 682
    functionDepth: 2
    functionLinenumber: 682
    functionLinenumberEnd: 711
    functionName: doProofOfPossession
    functionSourceFile: /src/nss/cmd/crmf-cgi/crmfcgi.c
    functionUses: 0
    functionsReached:
    - verifySignature
    - doChallengeResponse
    - CRMF_CertReqMsgGetPOPType
    linkageType: ''
    returnType: ErrorCode
    signature: "ErrorCode doProofOfPossession(CGIVarTable *varTable, CRMFCertReqMsg
      *currReq,\n                    CRMFCertRequest *certReq, CERTCertificate *newCert,\n
      \                   ChallengeCreationInfo *challs, int *numChall)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:720,1
    - Dst: printf
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:722,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - base64
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 713
    functionDepth: 0
    functionLinenumber: 713
    functionLinenumberEnd: 725
    functionName: convertB64ToJS
    functionSourceFile: /src/nss/cmd/crmf-cgi/crmfcgi.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void convertB64ToJS(char *base64)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:731,1
    - Dst: convertB64ToJS
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:734,1
    - Dst: printf
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:735,1
    - Dst: convertB64ToJS
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:737,1
    - Dst: printf
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:738,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - chall64
    - certRepContentDER
    - challInfo
    - numChalls
    argTypes:
    - char*
    - char*
    - ChallengeCreationInfo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 727
    functionDepth: 1
    functionLinenumber: 727
    functionLinenumberEnd: 741
    functionName: formatChallenge
    functionSourceFile: /src/nss/cmd/crmf-cgi/crmfcgi.c
    functionUses: 0
    functionsReached:
    - printf
    - convertB64ToJS
    linkageType: ''
    returnType: void
    signature: "void formatChallenge(char *chall64, char *certRepContentDER,\n                ChallengeCreationInfo
      *challInfo, int numChalls)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spitOutHeaders
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:750,1
    - Dst: printf
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:751,1
    - Dst: formatChallenge
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:759,1
    - Dst: printf
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:760,1
    - Dst: printf
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:770,1
    - Dst: printf
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:773,1
    - Dst: printf
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:774,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - chall64
    - certRepContentDER
    - challInfo
    - numChalls
    - nickname
    argTypes:
    - char*
    - char*
    - ChallengeCreationInfo*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 743
    functionDepth: 2
    functionLinenumber: 743
    functionLinenumberEnd: 775
    functionName: spitOutChallenge
    functionSourceFile: /src/nss/cmd/crmf-cgi/crmfcgi.c
    functionUses: 0
    functionsReached:
    - spitOutHeaders
    - printf
    - formatChallenge
    linkageType: ''
    returnType: void
    signature: "void spitOutChallenge(char *chall64, char *certRepContentDER,\n                 ChallengeCreationInfo
      *challInfo, int numChalls,\n                 char *nickname)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: createCMMFResponse
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:791,1
    - Dst: CMMF_CreatePOPODecKeyChallContent
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:796,1
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:801,1
    - Dst: CERT_GetCertificateNames
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:806,1
    - Dst: CMMF_POPODecKeyChallContentSetNextChallenge
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:812,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:817,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:823,1
    - Dst: BTOA_DataToAscii
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:829,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:830,1
    - Dst: spitOutChallenge
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:835,1
    - Dst: getNickname
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:836,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 50
    argCount: 6
    argNames:
    - issuedCerts
    - numCerts
    - challInfo
    - numChalls
    - issuer
    - varTable
    argTypes:
    - CertResponseInfo*
    - int
    - ChallengeCreationInfo*
    - int
    - CERTCertificate*
    - CGIVarTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 777
    functionDepth: 3
    functionLinenumber: 777
    functionLinenumberEnd: 839
    functionName: issueChallenge
    functionSourceFile: /src/nss/cmd/crmf-cgi/crmfcgi.c
    functionUses: 0
    functionsReached:
    - createCMMFResponse
    - SECKEY_DestroyPublicKey
    - PORT_NewArena
    - SEC_ASN1EncodeItem
    - spitOutChallenge
    - BTOA_DataToAscii
    - CERT_GetCertificateNames
    - getNickname
    - CMMF_CreatePOPODecKeyChallContent
    - CMMF_POPODecKeyChallContentSetNextChallenge
    - SECITEM_FreeItem
    linkageType: ''
    returnType: ErrorCode
    signature: "ErrorCode issueChallenge(CertResponseInfo *issuedCerts, int numCerts,\n
      \              ChallengeCreationInfo *challInfo, int numChalls,\n               CERTCertificate
      *issuer, CGIVarTable *varTable)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:864,1
    - Dst: SECKEY_GetDefaultKeyDB
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:865,1
    - Dst: CGITableFindValue
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:866,1
    - Dst: CGITableFindValue
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:872,1
    - Dst: CERT_FindCertByNickname
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:878,1
    - Dst: ATOB_ConvertAsciiToItem
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:883,1
    - Dst: CRMF_CreateCertReqMessagesFromDER
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:888,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:889,1
    - Dst: CRMF_CertReqMessagesGetNumMessages
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:894,1
    - Dst: PORT_ZNewArray
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:895,1
    - Dst: PORT_ZNewArray
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:896,1
    - Dst: PORT_ZNewArray
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:901,1
    - Dst: PORT_ZNewArray
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:902,1
    - Dst: CRMF_CertReqMessagesGetCertReqMsgAtIndex
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:909,1
    - Dst: CRMF_CertReqMsgGetCertRequest
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:914,1
    - Dst: CRMF_CertRequestGetCertTemplateSubject
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:919,1
    - Dst: CRMF_CertRequestGetCertTemplatePublicKey
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:924,1
    - Dst: initOldCertReq
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:929,1
    - Dst: createNewCert
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:933,1
    - Dst: doProofOfPossession
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:938,1
    - Dst: CRMF_CertReqMsgGetID
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:947,1
    - Dst: CRMF_DestroyCertReqMsg
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:948,1
    - Dst: CRMF_DestroyCertRequest
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:949,1
    - Dst: issueChallenge
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:952,1
    - Dst: issueCerts
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:955,1
    - Dst: CRMF_DestroyCertReqMessages
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:959,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 110
    argCount: 1
    argNames:
    - varTable
    argTypes:
    - CGIVarTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 841
    functionDepth: 4
    functionLinenumber: 841
    functionLinenumberEnd: 962
    functionName: processRequest
    functionSourceFile: /src/nss/cmd/crmf-cgi/crmfcgi.c
    functionUses: 0
    functionsReached:
    - CRMF_CertReqMessagesGetNumMessages
    - CRMF_CertRequestGetCertTemplatePublicKey
    - ATOB_ConvertAsciiToItem
    - PORT_ZNewArray
    - CERT_FindCertByNickname
    - CRMF_CreateCertReqMessagesFromDER
    - CRMF_CertReqMessagesGetCertReqMsgAtIndex
    - doProofOfPossession
    - CRMF_CertRequestGetCertTemplateSubject
    - CERT_GetDefaultCertDB
    - CRMF_CertReqMsgGetCertRequest
    - initOldCertReq
    - SECITEM_FreeItem
    - SECKEY_GetDefaultKeyDB
    - CRMF_DestroyCertRequest
    - CRMF_DestroyCertReqMessages
    - issueCerts
    - CRMF_CertReqMsgGetID
    - createNewCert
    - CRMF_DestroyCertReqMsg
    - issueChallenge
    - CGITableFindValue
    linkageType: ''
    returnType: ErrorCode
    signature: ErrorCode processRequest(CGIVarTable *varTable)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ATOB_ConvertAsciiToItem
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:980,1
    - Dst: writeOutItem
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:981,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:982,1
    - Dst: CGITableFindValue
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:984,1
    - Dst: ATOB_ConvertAsciiToItem
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:990,1
    - Dst: CMMF_CreatePOPODecKeyRespContentFromDER
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:995,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:997,1
    - Dst: CMMF_POPODecKeyRespContentGetNumResponses
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:1003,1
    - Dst: CMMF_POPODecKeyRespContentGetResponse
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:1005,1
    - Dst: snprintf
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:1010,1
    - Dst: CGITableFindValue
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:1011,1
    - Dst: strdup
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:1014,1
    - Dst: sscanf
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:1017,1
    - Dst: CGITableFindValue
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:1023,1
    - Dst: spitOutCMMFResponse
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:1029,1
    - Dst: CMMF_DestroyPOPODecKeyRespContent
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:1032,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 62
    argCount: 2
    argNames:
    - varTable
    - certRepContent
    argTypes:
    - CGIVarTable*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 964
    functionDepth: 2
    functionLinenumber: 964
    functionLinenumberEnd: 1035
    functionName: processChallengeResponse
    functionSourceFile: /src/nss/cmd/crmf-cgi/crmfcgi.c
    functionUses: 0
    functionsReached:
    - strdup
    - ATOB_ConvertAsciiToItem
    - CMMF_POPODecKeyRespContentGetResponse
    - CMMF_POPODecKeyRespContentGetNumResponses
    - PORT_Free
    - sscanf
    - writeOutItem
    - spitOutCMMFResponse
    - CMMF_CreatePOPODecKeyRespContentFromDER
    - CGITableFindValue
    - snprintf
    - CMMF_DestroyPOPODecKeyRespContent
    - SECITEM_FreeItem
    linkageType: ''
    returnType: ErrorCode
    signature: ErrorCode processChallengeResponse(CGIVarTable *varTable, const char
      *certRepContent)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: srand
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:1058,1
    - Dst: time
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:1058,1
    - Dst: feof
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:1059,1
    - Dst: PORT_NewArray
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:1061,1
    - Dst: PORT_Realloc
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:1065,1
    - Dst: fread
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:1067,1
    - Dst: ParseInputVariables
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:1070,1
    - Dst: CGITableFindValue
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:1071,1
    - Dst: initNSS
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:1073,1
    - Dst: processRequest
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:1077,1
    - Dst: processChallengeResponse
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:1079,1
    - Dst: dumpErrorMessage
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:1086,1
    - Dst: free
      Src: /src/nss/cmd/crmf-cgi/crmfcgi.c:1088,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1090
      start: 1037
    functionDepth: 5
    functionLinenumber: 1037
    functionLinenumberEnd: 1090
    functionName: main
    functionSourceFile: /src/nss/cmd/crmf-cgi/crmfcgi.c
    functionUses: 2
    functionsReached:
    - free
    - processChallengeResponse
    - dumpErrorMessage
    - processRequest
    - srand
    - feof
    - PORT_NewArray
    - CGITableFindValue
    - PORT_Realloc
    - fread
    - time
    - ParseInputVariables
    - initNSS
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exit
      Src: /src/nss/cmd/pk12util/pk12util.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 53
    functionName: Usage
    functionSourceFile: /src/nss/cmd/pk12util/pk12util.c
    functionUses: 59
    functionsReached:
    - exit
    linkageType: ''
    returnType: void
    signature: void Usage()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PR_Open
      Src: /src/nss/cmd/pk12util/pk12util.c:63,1
    - Dst: PR_Open
      Src: /src/nss/cmd/pk12util/pk12util.c:66,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - p12cxt
    - fileRead
    argTypes:
    - p12uContext*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 77
    functionName: p12u_OpenFile
    functionSourceFile: /src/nss/cmd/pk12util/pk12util.c
    functionUses: 0
    functionsReached:
    - PR_Open
    linkageType: ''
    returnType: PRBool
    signature: PRBool p12u_OpenFile(p12uContext *p12cxt, PRBool fileRead)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PR_Close
      Src: /src/nss/cmd/pk12util/pk12util.c:87,1
    - Dst: PR_Delete
      Src: /src/nss/cmd/pk12util/pk12util.c:92,1
    - Dst: PL_strfree
      Src: /src/nss/cmd/pk12util/pk12util.c:94,1
    - Dst: PR_Free
      Src: /src/nss/cmd/pk12util/pk12util.c:98,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - ppCtx
    - removeFile
    argTypes:
    - p12uContext**
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 100
    functionName: p12u_DestroyContext
    functionSourceFile: /src/nss/cmd/pk12util/pk12util.c
    functionUses: 0
    functionsReached:
    - PR_Close
    - PR_Delete
    - PL_strfree
    - PR_Free
    linkageType: ''
    returnType: void
    signature: void p12u_DestroyContext(p12uContext **ppCtx, PRBool removeFile)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZNew
      Src: /src/nss/cmd/pk12util/pk12util.c:107,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/pk12util/pk12util.c:114,1
    - Dst: p12u_OpenFile
      Src: /src/nss/cmd/pk12util/pk12util.c:116,1
    - Dst: p12u_DestroyContext
      Src: /src/nss/cmd/pk12util/pk12util.c:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - fileImport
    - filename
    argTypes:
    - PRBool
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 122
    functionName: p12u_InitContext
    functionSourceFile: /src/nss/cmd/pk12util/pk12util.c
    functionUses: 0
    functionsReached:
    - PL_strdup
    - p12u_OpenFile
    - p12u_DestroyContext
    - PORT_ZNew
    linkageType: ''
    returnType: p12uContext
    signature: 'p12uContext *

      p12u_InitContext(PRBool fileImport, char *filename)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/pk12util/pk12util.c:137,1
    - Dst: CERT_MakeCANickname
      Src: /src/nss/cmd/pk12util/pk12util.c:146,1
    - Dst: PORT_Strlen
      Src: /src/nss/cmd/pk12util/pk12util.c:152,1
    - Dst: PORT_Strncmp
      Src: /src/nss/cmd/pk12util/pk12util.c:153,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/pk12util/pk12util.c:154,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/pk12util/pk12util.c:155,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk12util/pk12util.c:159,1
    - Dst: PORT_ZNew
      Src: /src/nss/cmd/pk12util/pk12util.c:160,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/pk12util/pk12util.c:162,1
    - Dst: PORT_Strlen
      Src: /src/nss/cmd/pk12util/pk12util.c:167,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 3
    argNames:
    - old_nick
    - cancel
    - wincx
    argTypes:
    - SECItem*
    - PRBool*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 171
    functionName: P12U_NicknameCollisionCallback
    functionSourceFile: /src/nss/cmd/pk12util/pk12util.c
    functionUses: 0
    functionsReached:
    - PORT_Strncmp
    - PORT_ZNew
    - PORT_Free
    - PORT_Strlen
    - fprintf
    - PORT_SetError
    - CERT_MakeCANickname
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      P12U_NicknameCollisionCallback(SECItem *old_nick, PRBool *cancel, void *wincx)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - uniItem
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 187
    functionName: p12u_SwapUnicodeBytes
    functionSourceFile: /src/nss/cmd/pk12util/pk12util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus p12u_SwapUnicodeBytes(SECItem *uniItem)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/pk12util/pk12util.c:205,1
    - Dst: printf
      Src: /src/nss/cmd/pk12util/pk12util.c:207,1
    - Dst: printf
      Src: /src/nss/cmd/pk12util/pk12util.c:210,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/cmd/pk12util/pk12util.c:215,1
    - Dst: p12u_SwapUnicodeBytes
      Src: /src/nss/cmd/pk12util/pk12util.c:223,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/cmd/pk12util/pk12util.c:224,1
    - Dst: PORT_UCS2_UTF8Conversion
      Src: /src/nss/cmd/pk12util/pk12util.c:229,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/cmd/pk12util/pk12util.c:231,1
    - Dst: printf
      Src: /src/nss/cmd/pk12util/pk12util.c:236,1
    - Dst: printf
      Src: /src/nss/cmd/pk12util/pk12util.c:238,1
    - Dst: printf
      Src: /src/nss/cmd/pk12util/pk12util.c:241,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 7
    argNames:
    - toUnicode
    - inBuf
    - inBufLen
    - outBuf
    - maxOutBufLen
    - outBufLen
    - swapBytes
    argTypes:
    - PRBool
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned int*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 245
    functionName: p12u_ucs2_ascii_conversion_function
    functionSourceFile: /src/nss/cmd/pk12util/pk12util.c
    functionUses: 0
    functionsReached:
    - SECITEM_DupItem
    - printf
    - p12u_SwapUnicodeBytes
    - PORT_UCS2_UTF8Conversion
    - SECITEM_ZfreeItem
    linkageType: ''
    returnType: PRBool
    signature: "PRBool p12u_ucs2_ascii_conversion_function(PRBool toUnicode,\n                                    unsigned
      char *inBuf,\n                                    unsigned int inBufLen,\n                                    unsigned
      char *outBuf,\n                                    unsigned int maxOutBufLen,\n
      \                                   unsigned int *outBufLen,\n                                    PRBool
      swapBytes)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/cmd/pk12util/pk12util.c:257,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/cmd/pk12util/pk12util.c:259,1
    - Dst: PORT_UCS2_ASCIIConversion
      Src: /src/nss/cmd/pk12util/pk12util.c:261,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/pk12util/pk12util.c:265,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 5
    argNames:
    - arena
    - dest
    - src
    - toUnicode
    - swapBytes
    argTypes:
    - PLArenaPool*
    - SECItem*
    - SECItem*
    - PRBool
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 271
    functionName: P12U_UnicodeConversion
    functionSourceFile: /src/nss/cmd/pk12util/pk12util.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - PORT_UCS2_ASCIIConversion
    - PORT_ZAlloc
    - PORT_ArenaZAlloc
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus P12U_UnicodeConversion(PLArenaPool *arena, SECItem *dest,
      SECItem *src,\n                       PRBool toUnicode, PRBool swapBytes)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SECU_GetPasswordString
      Src: /src/nss/cmd/pk12util/pk12util.c:286,1
    - Dst: SECU_GetPasswordString
      Src: /src/nss/cmd/pk12util/pk12util.c:290,1
    - Dst: PORT_ZFree
      Src: /src/nss/cmd/pk12util/pk12util.c:292,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/pk12util/pk12util.c:292,1
    - Dst: PL_strcmp
      Src: /src/nss/cmd/pk12util/pk12util.c:296,1
    - Dst: PORT_ZFree
      Src: /src/nss/cmd/pk12util/pk12util.c:297,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/pk12util/pk12util.c:297,1
    - Dst: PORT_ZFree
      Src: /src/nss/cmd/pk12util/pk12util.c:300,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/pk12util/pk12util.c:300,1
    - Dst: SECU_FilePasswd
      Src: /src/nss/cmd/pk12util/pk12util.c:303,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/pk12util/pk12util.c:305,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/pk12util/pk12util.c:311,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/pk12util/pk12util.c:311,1
    - Dst: memcpy
      Src: /src/nss/cmd/pk12util/pk12util.c:312,1
    - Dst: PORT_ZFree
      Src: /src/nss/cmd/pk12util/pk12util.c:314,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/pk12util/pk12util.c:314,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 2
    argNames:
    - confirmPw
    - p12FilePw
    argTypes:
    - PRBool
    - secuPWData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 317
    functionName: P12U_GetP12FilePassword
    functionSourceFile: /src/nss/cmd/pk12util/pk12util.c
    functionUses: 0
    functionsReached:
    - PL_strlen
    - PORT_ZFree
    - memcpy
    - SECU_GetPasswordString
    - SECITEM_AllocItem
    - PL_strcmp
    - SECU_FilePasswd
    - PORT_Strdup
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      P12U_GetP12FilePassword(PRBool confirmPw, secuPWData *p12FilePw)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PK11_NeedUserInit
      Src: /src/nss/cmd/pk12util/pk12util.c:325,1
    - Dst: SECU_ChangePW
      Src: /src/nss/cmd/pk12util/pk12util.c:326,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/pk12util/pk12util.c:330,1
    - Dst: PK11_GetSlotName
      Src: /src/nss/cmd/pk12util/pk12util.c:331,1
    - Dst: PK11_Authenticate
      Src: /src/nss/cmd/pk12util/pk12util.c:336,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/pk12util/pk12util.c:337,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/pk12util/pk12util.c:339,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - slot
    - slotPw
    argTypes:
    - PK11SlotInfo*
    - secuPWData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 345
    functionName: P12U_InitSlot
    functionSourceFile: /src/nss/cmd/pk12util/pk12util.c
    functionUses: 0
    functionsReached:
    - SECU_ChangePW
    - SECU_PrintError
    - PK11_GetSlotName
    - PK11_NeedUserInit
    - PORT_SetError
    - PK11_Authenticate
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus P12U_InitSlot(PK11SlotInfo *slot, secuPWData *slotPw)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: p12u_InitContext
      Src: /src/nss/cmd/pk12util/pk12util.c:371,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/pk12util/pk12util.c:373,1
    - Dst: P12U_GetP12FilePassword
      Src: /src/nss/cmd/pk12util/pk12util.c:379,1
    - Dst: P12U_UnicodeConversion
      Src: /src/nss/cmd/pk12util/pk12util.c:385,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/pk12util/pk12util.c:387,1
    - Dst: SECU_FileToItem
      Src: /src/nss/cmd/pk12util/pk12util.c:391,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/pk12util/pk12util.c:393,1
    - Dst: SEC_PKCS12DecoderStart
      Src: /src/nss/cmd/pk12util/pk12util.c:401,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/pk12util/pk12util.c:404,1
    - Dst: SEC_PKCS12DecoderUpdate
      Src: /src/nss/cmd/pk12util/pk12util.c:410,1
    - Dst: PR_GetError
      Src: /src/nss/cmd/pk12util/pk12util.c:413,1
    - Dst: PR_SetError
      Src: /src/nss/cmd/pk12util/pk12util.c:415,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/pk12util/pk12util.c:418,1
    - Dst: SEC_PKCS12DecoderVerify
      Src: /src/nss/cmd/pk12util/pk12util.c:423,1
    - Dst: SEC_PKCS12DecoderFinish
      Src: /src/nss/cmd/pk12util/pk12util.c:428,1
    - Dst: NSS_OptionSet
      Src: /src/nss/cmd/pk12util/pk12util.c:434,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/pk12util/pk12util.c:437,1
    - Dst: SEC_PKCS12DecoderFinish
      Src: /src/nss/cmd/pk12util/pk12util.c:441,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/pk12util/pk12util.c:444,1
    - Dst: NSS_OptionSet
      Src: /src/nss/cmd/pk12util/pk12util.c:453,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/pk12util/pk12util.c:454,1
    - Dst: SEC_PKCS12DecoderFinish
      Src: /src/nss/cmd/pk12util/pk12util.c:467,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/cmd/pk12util/pk12util.c:471,1
    - Dst: PR_Close
      Src: /src/nss/cmd/pk12util/pk12util.c:475,1
    - Dst: p12u_DestroyContext
      Src: /src/nss/cmd/pk12util/pk12util.c:478,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/cmd/pk12util/pk12util.c:481,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/cmd/pk12util/pk12util.c:483,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 96
    argCount: 6
    argNames:
    - uniPwp
    - in_file
    - slot
    - slotPw
    - p12FilePw
    - ignoreIntegrity
    argTypes:
    - SECItem*
    - char*
    - PK11SlotInfo*
    - secuPWData*
    - secuPWData*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 352
    functionDepth: 3
    functionLinenumber: 352
    functionLinenumberEnd: 485
    functionName: p12U_ReadPKCS12File
    functionSourceFile: /src/nss/cmd/pk12util/pk12util.c
    functionUses: 0
    functionsReached:
    - P12U_UnicodeConversion
    - p12u_InitContext
    - NSS_OptionSet
    - SECU_PrintError
    - p12u_DestroyContext
    - P12U_GetP12FilePassword
    - PR_Close
    - SEC_PKCS12DecoderUpdate
    - PR_SetError
    - SEC_PKCS12DecoderFinish
    - PR_GetError
    - SEC_PKCS12DecoderStart
    - SEC_PKCS12DecoderVerify
    - SECITEM_ZfreeItem
    - SECU_FileToItem
    linkageType: ''
    returnType: SEC_PKCS12DecoderContext
    signature: "SEC_PKCS12DecoderContext *\np12U_ReadPKCS12File(SECItem *uniPwp, char
      *in_file, PK11SlotInfo *slot,\n                    secuPWData *slotPw, secuPWData
      *p12FilePw,\n                    PRBool ignoreIntegrity)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: P12U_InitSlot
      Src: /src/nss/cmd/pk12util/pk12util.c:506,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/pk12util/pk12util.c:508,1
    - Dst: PK11_GetSlotName
      Src: /src/nss/cmd/pk12util/pk12util.c:509,1
    - Dst: p12U_ReadPKCS12File
      Src: /src/nss/cmd/pk12util/pk12util.c:517,1
    - Dst: SEC_PKCS12DecoderValidateBags
      Src: /src/nss/cmd/pk12util/pk12util.c:525,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/pk12util/pk12util.c:527,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/pk12util/pk12util.c:532,1
    - Dst: NSS_OptionSet
      Src: /src/nss/cmd/pk12util/pk12util.c:538,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/pk12util/pk12util.c:541,1
    - Dst: SEC_PKCS12DecoderImportBags
      Src: /src/nss/cmd/pk12util/pk12util.c:546,1
    - Dst: PR_GetError
      Src: /src/nss/cmd/pk12util/pk12util.c:548,1
    - Dst: SEC_PKCS12DecoderFinish
      Src: /src/nss/cmd/pk12util/pk12util.c:552,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/cmd/pk12util/pk12util.c:553,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/pk12util/pk12util.c:556,1
    - Dst: NSS_OptionSet
      Src: /src/nss/cmd/pk12util/pk12util.c:565,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/pk12util/pk12util.c:567,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk12util/pk12util.c:573,1
    - Dst: SEC_PKCS12DecoderFinish
      Src: /src/nss/cmd/pk12util/pk12util.c:578,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/cmd/pk12util/pk12util.c:582,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 70
    argCount: 5
    argNames:
    - in_file
    - slot
    - slotPw
    - p12FilePw
    - ignoreIntegrity
    argTypes:
    - char*
    - PK11SlotInfo*
    - secuPWData*
    - secuPWData*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 495
    functionDepth: 4
    functionLinenumber: 495
    functionLinenumberEnd: 586
    functionName: P12U_ImportPKCS12Object
    functionSourceFile: /src/nss/cmd/pk12util/pk12util.c
    functionUses: 0
    functionsReached:
    - NSS_OptionSet
    - SECU_PrintError
    - PK11_GetSlotName
    - SEC_PKCS12DecoderValidateBags
    - PORT_GetError
    - p12U_ReadPKCS12File
    - fprintf
    - SEC_PKCS12DecoderFinish
    - PR_GetError
    - P12U_InitSlot
    - SECITEM_ZfreeItem
    - SEC_PKCS12DecoderImportBags
    linkageType: ''
    returnType: PRIntn
    signature: "PRIntn P12U_ImportPKCS12Object(char *in_file, PK11SlotInfo *slot,\n
      \                       secuPWData *slotPw, secuPWData *p12FilePw,\n                        PRBool
      ignoreIntegrity)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_GetError
      Src: /src/nss/cmd/pk12util/pk12util.c:593,1
    - Dst: fputs
      Src: /src/nss/cmd/pk12util/pk12util.c:597,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/pk12util/pk12util.c:597,1
    - Dst: fputs
      Src: /src/nss/cmd/pk12util/pk12util.c:601,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/pk12util/pk12util.c:601,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 603
    functionName: p12u_DoPKCS12ExportErrors
    functionSourceFile: /src/nss/cmd/pk12util/pk12util.c
    functionUses: 0
    functionsReached:
    - fputs
    - PORT_GetError
    - SECU_Strerror
    linkageType: ''
    returnType: void
    signature: void p12u_DoPKCS12ExportErrors()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PR_Write
      Src: /src/nss/cmd/pk12util/pk12util.c:621,1
    - Dst: PR_Close
      Src: /src/nss/cmd/pk12util/pk12util.c:624,1
    - Dst: PL_strfree
      Src: /src/nss/cmd/pk12util/pk12util.c:625,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - arg
    - buf
    - len
    argTypes:
    - void*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 605
    functionDepth: 1
    functionLinenumber: 605
    functionLinenumberEnd: 631
    functionName: p12u_WriteToExportFile
    functionSourceFile: /src/nss/cmd/pk12util/pk12util.c
    functionUses: 0
    functionsReached:
    - PR_Close
    - PR_Write
    - PL_strfree
    linkageType: ''
    returnType: void
    signature: void p12u_WriteToExportFile(void *arg, const char *buf, unsigned long
      len)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: P12U_InitSlot
      Src: /src/nss/cmd/pk12util/pk12util.c:646,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/pk12util/pk12util.c:647,1
    - Dst: PK11_GetSlotName
      Src: /src/nss/cmd/pk12util/pk12util.c:648,1
    - Dst: PK11_FindCertsFromNickname
      Src: /src/nss/cmd/pk12util/pk12util.c:652,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/pk12util/pk12util.c:654,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/pk12util/pk12util.c:655,1
    - Dst: CERT_FilterCertListForUserCerts
      Src: /src/nss/cmd/pk12util/pk12util.c:660,1
    - Dst: CERT_LIST_EMPTY
      Src: /src/nss/cmd/pk12util/pk12util.c:661,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/pk12util/pk12util.c:662,1
    - Dst: P12U_GetP12FilePassword
      Src: /src/nss/cmd/pk12util/pk12util.c:669,1
    - Dst: p12u_InitContext
      Src: /src/nss/cmd/pk12util/pk12util.c:685,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/pk12util/pk12util.c:687,1
    - Dst: CERT_LIST_HEAD
      Src: /src/nss/cmd/pk12util/pk12util.c:693,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/pk12util/pk12util.c:700,1
    - Dst: SEC_PKCS12CreateExportContext
      Src: /src/nss/cmd/pk12util/pk12util.c:704,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/pk12util/pk12util.c:706,1
    - Dst: SEC_PKCS12AddPasswordIntegrity
      Src: /src/nss/cmd/pk12util/pk12util.c:711,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/pk12util/pk12util.c:713,1
    - Dst: CERT_LIST_HEAD
      Src: /src/nss/cmd/pk12util/pk12util.c:718,1
    - Dst: CERT_LIST_END
      Src: /src/nss/cmd/pk12util/pk12util.c:719,1
    - Dst: CERT_LIST_NEXT
      Src: /src/nss/cmd/pk12util/pk12util.c:720,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/pk12util/pk12util.c:723,1
    - Dst: SEC_PKCS12CreateUnencryptedSafe
      Src: /src/nss/cmd/pk12util/pk12util.c:728,1
    - Dst: SEC_PKCS12CreatePasswordPrivSafe
      Src: /src/nss/cmd/pk12util/pk12util.c:733,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/pk12util/pk12util.c:737,1
    - Dst: SEC_PKCS12AddCertAndKey
      Src: /src/nss/cmd/pk12util/pk12util.c:742,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/cmd/pk12util/pk12util.c:743,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/pk12util/pk12util.c:745,1
    - Dst: CERT_DestroyCertList
      Src: /src/nss/cmd/pk12util/pk12util.c:751,1
    - Dst: SEC_PKCS12Encode
      Src: /src/nss/cmd/pk12util/pk12util.c:754,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/pk12util/pk12util.c:756,1
    - Dst: p12u_DestroyContext
      Src: /src/nss/cmd/pk12util/pk12util.c:761,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/cmd/pk12util/pk12util.c:762,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk12util/pk12util.c:763,1
    - Dst: SEC_PKCS12DestroyExportContext
      Src: /src/nss/cmd/pk12util/pk12util.c:764,1
    - Dst: SEC_PKCS12DestroyExportContext
      Src: /src/nss/cmd/pk12util/pk12util.c:769,1
    - Dst: CERT_DestroyCertList
      Src: /src/nss/cmd/pk12util/pk12util.c:772,1
    - Dst: p12u_DestroyContext
      Src: /src/nss/cmd/pk12util/pk12util.c:776,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/cmd/pk12util/pk12util.c:778,1
    - Dst: p12u_DoPKCS12ExportErrors
      Src: /src/nss/cmd/pk12util/pk12util.c:780,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 111
    argCount: 8
    argNames:
    - nn
    - outfile
    - inSlot
    - cipher
    - certCipher
    - hash
    - slotPw
    - p12FilePw
    argTypes:
    - char*
    - char*
    - PK11SlotInfo*
    - SECOidTag
    - SECOidTag
    - SECOidTag
    - secuPWData*
    - secuPWData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 633
    functionDepth: 3
    functionLinenumber: 633
    functionLinenumberEnd: 782
    functionName: P12U_ExportPKCS12Object
    functionSourceFile: /src/nss/cmd/pk12util/pk12util.c
    functionUses: 0
    functionsReached:
    - PK11_FindCertsFromNickname
    - PK11_GetSlotName
    - fprintf
    - P12U_InitSlot
    - p12u_InitContext
    - p12u_DestroyContext
    - P12U_GetP12FilePassword
    - SEC_PKCS12AddCertAndKey
    - PORT_SetError
    - CERT_LIST_END
    - CERT_GetDefaultCertDB
    - CERT_LIST_EMPTY
    - CERT_LIST_NEXT
    - CERT_LIST_HEAD
    - SEC_PKCS12AddPasswordIntegrity
    - SEC_PKCS12CreateUnencryptedSafe
    - SECU_PrintError
    - SEC_PKCS12Encode
    - SEC_PKCS12DestroyExportContext
    - SECITEM_ZfreeItem
    - CERT_DestroyCertList
    - SEC_PKCS12CreatePasswordPrivSafe
    - PR_fprintf
    - SEC_PKCS12CreateExportContext
    - p12u_DoPKCS12ExportErrors
    - CERT_FilterCertListForUserCerts
    linkageType: ''
    returnType: void
    signature: "void P12U_ExportPKCS12Object(char *nn, char *outfile, PK11SlotInfo
      *inSlot,\n                        SECOidTag cipher, SECOidTag certCipher, SECOidTag
      hash,\n                        secuPWData *slotPw, secuPWData *p12FilePw)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: p12U_ReadPKCS12File
      Src: /src/nss/cmd/pk12util/pk12util.c:794,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/pk12util/pk12util.c:798,1
    - Dst: SEC_PKCS12DecoderIterateInit
      Src: /src/nss/cmd/pk12util/pk12util.c:802,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/pk12util/pk12util.c:804,1
    - Dst: SEC_PKCS12DecoderIterateNext
      Src: /src/nss/cmd/pk12util/pk12util.c:809,1
    - Dst: printf
      Src: /src/nss/cmd/pk12util/pk12util.c:812,1
    - Dst: snprintf
      Src: /src/nss/cmd/pk12util/pk12util.c:816,1
    - Dst: PR_Open
      Src: /src/nss/cmd/pk12util/pk12util.c:817,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/pk12util/pk12util.c:821,1
    - Dst: PR_Write
      Src: /src/nss/cmd/pk12util/pk12util.c:824,1
    - Dst: PR_Close
      Src: /src/nss/cmd/pk12util/pk12util.c:825,1
    - Dst: SECU_PrintSignedData
      Src: /src/nss/cmd/pk12util/pk12util.c:827,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/pk12util/pk12util.c:832,1
    - Dst: printf
      Src: /src/nss/cmd/pk12util/pk12util.c:835,1
    - Dst: SECU_PrintAlgorithmID
      Src: /src/nss/cmd/pk12util/pk12util.c:839,1
    - Dst: printf
      Src: /src/nss/cmd/pk12util/pk12util.c:845,1
    - Dst: printf
      Src: /src/nss/cmd/pk12util/pk12util.c:847,1
    - Dst: printf
      Src: /src/nss/cmd/pk12util/pk12util.c:848,1
    - Dst: printf
      Src: /src/nss/cmd/pk12util/pk12util.c:850,1
    - Dst: SECU_PrintAlgorithmID
      Src: /src/nss/cmd/pk12util/pk12util.c:854,1
    - Dst: printf
      Src: /src/nss/cmd/pk12util/pk12util.c:859,1
    - Dst: SECOID_FindOIDTagDescription
      Src: /src/nss/cmd/pk12util/pk12util.c:860,1
    - Dst: SEC_PKCS12DecoderFinish
      Src: /src/nss/cmd/pk12util/pk12util.c:870,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/cmd/pk12util/pk12util.c:874,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 67
    argCount: 5
    argNames:
    - in_file
    - slot
    - slotPw
    - p12FilePw
    - ignoreIntegrity
    argTypes:
    - char*
    - PK11SlotInfo*
    - secuPWData*
    - secuPWData*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 784
    functionDepth: 4
    functionLinenumber: 784
    functionLinenumberEnd: 878
    functionName: P12U_ListPKCS12File
    functionSourceFile: /src/nss/cmd/pk12util/pk12util.c
    functionUses: 0
    functionsReached:
    - SECU_PrintSignedData
    - SECU_PrintError
    - SECOID_FindOIDTagDescription
    - printf
    - SEC_PKCS12DecoderIterateInit
    - p12U_ReadPKCS12File
    - SECU_PrintAlgorithmID
    - PR_Open
    - snprintf
    - PR_Write
    - SEC_PKCS12DecoderFinish
    - PR_Close
    - SECITEM_ZfreeItem
    - SEC_PKCS12DecoderIterateNext
    linkageType: ''
    returnType: PRIntn
    signature: "PRIntn P12U_ListPKCS12File(char *in_file, PK11SlotInfo *slot,\n                    secuPWData
      *slotPw, secuPWData *p12FilePw,\n                    PRBool ignoreIntegrity)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/cmd/pk12util/pk12util.c:888,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/cmd/pk12util/pk12util.c:893,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - cipherString
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 880
    functionDepth: 0
    functionLinenumber: 880
    functionLinenumberEnd: 899
    functionName: PKCS12U_FindTagFromString
    functionSourceFile: /src/nss/cmd/pk12util/pk12util.c
    functionUses: 0
    functionsReached:
    - PORT_Strcasecmp
    - SECOID_FindOIDByTag
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag PKCS12U_FindTagFromString(char *cipherString)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12U_FindTagFromString
      Src: /src/nss/cmd/pk12util/pk12util.c:916,1
    - Dst: SEC_PKCS5IsAlgorithmPBEAlgTag
      Src: /src/nss/cmd/pk12util/pk12util.c:924,1
    - Dst: SEC_PKCS5GetPBEAlgorithm
      Src: /src/nss/cmd/pk12util/pk12util.c:925,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - cipherString
    - keyLen
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 905
    functionDepth: 1
    functionLinenumber: 905
    functionLinenumberEnd: 939
    functionName: PKCS12U_MapCipherFromString
    functionSourceFile: /src/nss/cmd/pk12util/pk12util.c
    functionUses: 0
    functionsReached:
    - PKCS12U_FindTagFromString
    - SEC_PKCS5IsAlgorithmPBEAlgTag
    - SEC_PKCS5GetPBEAlgorithm
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag PKCS12U_MapCipherFromString(char *cipherString, int keyLen)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKCS12U_FindTagFromString
      Src: /src/nss/cmd/pk12util/pk12util.c:947,1
    - Dst: HASH_GetHashTypeByOidTag
      Src: /src/nss/cmd/pk12util/pk12util.c:952,1
    - Dst: HASH_GetHashOidTagByHMACOidTag
      Src: /src/nss/cmd/pk12util/pk12util.c:954,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - hashString
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 941
    functionDepth: 1
    functionLinenumber: 941
    functionLinenumberEnd: 961
    functionName: PKCS12U_MapHashFromString
    functionSourceFile: /src/nss/cmd/pk12util/pk12util.c
    functionUses: 0
    functionsReached:
    - PKCS12U_FindTagFromString
    - HASH_GetHashOidTagByHMACOidTag
    - HASH_GetHashTypeByOidTag
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag PKCS12U_MapHashFromString(char *hashString)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PK11_SetPasswordFunc
      Src: /src/nss/cmd/pk12util/pk12util.c:967,1
    - Dst: PR_Init
      Src: /src/nss/cmd/pk12util/pk12util.c:969,1
    - Dst: NSS_NoDB_Init
      Src: /src/nss/cmd/pk12util/pk12util.c:970,1
    - Dst: NSS_Initialize
      Src: /src/nss/cmd/pk12util/pk12util.c:973,1
    - Dst: SECU_PrintPRandOSError
      Src: /src/nss/cmd/pk12util/pk12util.c:976,1
    - Dst: exit
      Src: /src/nss/cmd/pk12util/pk12util.c:977,1
    - Dst: PORT_SetUCS2_ASCIIConversionFunction
      Src: /src/nss/cmd/pk12util/pk12util.c:981,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - dir
    - dbprefix
    - listonly
    argTypes:
    - char*
    - char*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 963
    functionDepth: 1
    functionLinenumber: 963
    functionLinenumberEnd: 988
    functionName: P12U_Init
    functionSourceFile: /src/nss/cmd/pk12util/pk12util.c
    functionUses: 0
    functionsReached:
    - NSS_NoDB_Init
    - PORT_SetUCS2_ASCIIConversionFunction
    - SECU_PrintPRandOSError
    - PR_Init
    - NSS_Initialize
    - exit
    - PK11_SetPasswordFunc
    linkageType: ''
    returnType: PRUintn
    signature: PRUintn P12U_Init(char *dir, char *dbprefix, PRBool listonly)
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: _CrtSetDbgFlag
      Src: /src/nss/cmd/pk12util/pk12util.c:1055,1
    - Dst: strrchr
      Src: /src/nss/cmd/pk12util/pk12util.c:1063,1
    - Dst: SECU_ParseCommandLine
      Src: /src/nss/cmd/pk12util/pk12util.c:1066,1
    - Dst: Usage
      Src: /src/nss/cmd/pk12util/pk12util.c:1069,1
    - Dst: Usage
      Src: /src/nss/cmd/pk12util/pk12util.c:1076,1
    - Dst: Usage
      Src: /src/nss/cmd/pk12util/pk12util.c:1081,1
    - Dst: NSS_OptionGet
      Src: /src/nss/cmd/pk12util/pk12util.c:1084,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/pk12util/pk12util.c:1086,1
    - Dst: Usage
      Src: /src/nss/cmd/pk12util/pk12util.c:1088,1
    - Dst: SECU_GetOptionArg
      Src: /src/nss/cmd/pk12util/pk12util.c:1092,1
    - Dst: SECU_GetOptionArg
      Src: /src/nss/cmd/pk12util/pk12util.c:1094,1
    - Dst: SECU_GetOptionArg
      Src: /src/nss/cmd/pk12util/pk12util.c:1095,1
    - Dst: SECU_GetOptionArg
      Src: /src/nss/cmd/pk12util/pk12util.c:1096,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/pk12util/pk12util.c:1100,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/pk12util/pk12util.c:1105,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/pk12util/pk12util.c:1110,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/pk12util/pk12util.c:1115,1
    - Dst: SECU_ConfigDirectory
      Src: /src/nss/cmd/pk12util/pk12util.c:1119,1
    - Dst: atoi
      Src: /src/nss/cmd/pk12util/pk12util.c:1131,1
    - Dst: atoi
      Src: /src/nss/cmd/pk12util/pk12util.c:1134,1
    - Dst: P12U_Init
      Src: /src/nss/cmd/pk12util/pk12util.c:1137,1
    - Dst: SECU_ConfigDirectory
      Src: /src/nss/cmd/pk12util/pk12util.c:1137,1
    - Dst: PL_strcmp
      Src: /src/nss/cmd/pk12util/pk12util.c:1140,1
    - Dst: PK11_GetInternalKeySlot
      Src: /src/nss/cmd/pk12util/pk12util.c:1141,1
    - Dst: PK11_FindSlotByName
      Src: /src/nss/cmd/pk12util/pk12util.c:1143,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/pk12util/pk12util.c:1146,1
    - Dst: PKCS12U_MapCipherFromString
      Src: /src/nss/cmd/pk12util/pk12util.c:1154,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/pk12util/pk12util.c:1158,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/pk12util/pk12util.c:1159,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/cmd/pk12util/pk12util.c:1168,1
    - Dst: PKCS12U_MapCipherFromString
      Src: /src/nss/cmd/pk12util/pk12util.c:1171,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/pk12util/pk12util.c:1175,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/pk12util/pk12util.c:1176,1
    - Dst: PK11_IsFIPS
      Src: /src/nss/cmd/pk12util/pk12util.c:1183,1
    - Dst: PKCS12U_MapHashFromString
      Src: /src/nss/cmd/pk12util/pk12util.c:1189,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/pk12util/pk12util.c:1192,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/pk12util/pk12util.c:1193,1
    - Dst: P12U_ImportPKCS12Object
      Src: /src/nss/cmd/pk12util/pk12util.c:1200,1
    - Dst: P12U_ExportPKCS12Object
      Src: /src/nss/cmd/pk12util/pk12util.c:1204,1
    - Dst: P12U_ListPKCS12File
      Src: /src/nss/cmd/pk12util/pk12util.c:1209,1
    - Dst: Usage
      Src: /src/nss/cmd/pk12util/pk12util.c:1213,1
    - Dst: PORT_ZFree
      Src: /src/nss/cmd/pk12util/pk12util.c:1219,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/pk12util/pk12util.c:1219,1
    - Dst: PORT_ZFree
      Src: /src/nss/cmd/pk12util/pk12util.c:1221,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/pk12util/pk12util.c:1221,1
    - Dst: PORT_ZFree
      Src: /src/nss/cmd/pk12util/pk12util.c:1223,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/pk12util/pk12util.c:1223,1
    - Dst: PORT_ZFree
      Src: /src/nss/cmd/pk12util/pk12util.c:1225,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/pk12util/pk12util.c:1225,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/cmd/pk12util/pk12util.c:1227,1
    - Dst: NSS_Shutdown
      Src: /src/nss/cmd/pk12util/pk12util.c:1228,1
    - Dst: PL_ArenaFinish
      Src: /src/nss/cmd/pk12util/pk12util.c:1231,1
    - Dst: PR_Cleanup
      Src: /src/nss/cmd/pk12util/pk12util.c:1232,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 138
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1234
      start: 1034
    functionDepth: 5
    functionLinenumber: 1034
    functionLinenumberEnd: 1234
    functionName: main
    functionSourceFile: /src/nss/cmd/pk12util/pk12util.c
    functionUses: 2
    functionsReached:
    - PK11_GetInternalKeySlot
    - PL_strlen
    - NSS_OptionGet
    - PKCS12U_MapCipherFromString
    - Usage
    - PORT_Strcasecmp
    - PK11_IsFIPS
    - _CrtSetDbgFlag
    - PORT_SetError
    - PKCS12U_MapHashFromString
    - P12U_Init
    - PL_ArenaFinish
    - strrchr
    - PORT_ZFree
    - PR_Cleanup
    - SECU_PrintError
    - P12U_ExportPKCS12Object
    - P12U_ListPKCS12File
    - PK11_FindSlotByName
    - SECU_ConfigDirectory
    - SECU_GetOptionArg
    - PK11_FreeSlot
    - P12U_ImportPKCS12Object
    - SECU_ParseCommandLine
    - atoi
    - NSS_Shutdown
    - PL_strcmp
    - PORT_Strdup
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strcasecmp
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:26,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:27,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:29,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:31,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:34,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - curve_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 35
    functionName: getCurveFromString
    functionSourceFile: /src/nss/cmd/pk11importtest/pk11importtest.c
    functionUses: 0
    functionsReached:
    - PORT_Strcasecmp
    - SECOID_FindOIDByTag
    linkageType: ''
    returnType: SECOidData
    signature: 'SECOidData *

      getCurveFromString(char *curve_name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:41,1
    - Dst: printf
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:44,1
    - Dst: printf
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:46,1
    - Dst: printf
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:47,1
    - Dst: printf
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - label
    - item
    argTypes:
    - char*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 50
    functionName: dumpItem
    functionSourceFile: /src/nss/cmd/pk11importtest/pk11importtest.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void dumpItem(const char *label, const SECItem *item)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:71,1
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:75,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:78,1
    - Dst: PK11_ExportEncryptedPrivKeyInfo
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:85,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:88,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:96,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:99,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:102,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:105,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:108,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:112,1
    - Dst: dumpItem
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:115,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:119,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:121,1
    - Dst: PK11_ImportEncryptedPrivateKeyInfoAndReturnKey
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:127,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:131,1
    - Dst: PK11_ReadRawAttribute
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:136,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:138,1
    - Dst: dumpItem
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:142,1
    - Dst: PK11_FindGenericObjects
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:143,1
    - Dst: PK11_GetNextGenericObject
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:144,1
    - Dst: PK11_ReadRawAttribute
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:145,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:147,1
    - Dst: dumpItem
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:151,1
    - Dst: SECITEM_ItemsAreEqual
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:152,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:153,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:155,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:158,1
    - Dst: PK11_ReadRawAttribute
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:159,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:164,1
    - Dst: printf
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:167,1
    - Dst: printf
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:170,1
    - Dst: PK11_DestroyGenericObjects
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:175,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:177,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:178,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:180,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:182,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:183,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:184,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 101
    argCount: 6
    argNames:
    - progName
    - slot
    - testname
    - genMech
    - params
    - pwArgs
    argTypes:
    - char*
    - PK11SlotInfo*
    - char*
    - CK_MECHANISM_TYPE
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 187
    functionName: handleEncryptedPrivateImportTest
    functionSourceFile: /src/nss/cmd/pk11importtest/pk11importtest.c
    functionUses: 0
    functionsReached:
    - PK11_DestroyGenericObjects
    - SECKEY_DestroyPublicKey
    - SECITEM_ItemsAreEqual
    - PK11_FindGenericObjects
    - SECU_PrintError
    - dumpItem
    - PORT_FreeArena
    - PK11_GenerateKeyPair
    - printf
    - PK11_GetNextGenericObject
    - SECITEM_CopyItem
    - fprintf
    - PK11_ImportEncryptedPrivateKeyInfoAndReturnKey
    - PK11_ReadRawAttribute
    - SECKEY_DestroyPrivateKey
    - PK11_ExportEncryptedPrivKeyInfo
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus handleEncryptedPrivateImportTest(char *progName, PK11SlotInfo
      *slot,\n                                 char *testname, CK_MECHANISM_TYPE genMech,
      void *params, void *pwArgs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:208,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:210,1
    - Dst: exit
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - progName
    - outFile
    argTypes:
    - char*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 212
    functionName: Usage
    functionSourceFile: /src/nss/cmd/pk11importtest/pk11importtest.c
    functionUses: 60
    functionsReached:
    - fprintf
    - exit
    linkageType: ''
    returnType: void
    signature: void Usage(char *progName, FILE *outFile)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:260,1
    - Dst: strrchr
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:262,1
    - Dst: SECU_ParseCommandLine
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:266,1
    - Dst: Usage
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:268,1
    - Dst: NSS_InitReadWrite
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:272,1
    - Dst: SECU_ConfigDirectory
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:272,1
    - Dst: SECU_PrintPRandOSError
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:274,1
    - Dst: PK11_SetPasswordFunc
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:277,1
    - Dst: SECU_RegisterDynamicOids
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:280,1
    - Dst: PK11_GetInternalKeySlot
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:304,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:306,1
    - Dst: PK11_Authenticate
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:309,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:311,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:312,1
    - Dst: atoi
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:319,1
    - Dst: PK11_PQG_ParamGenV2
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:324,1
    - Dst: PK11_PQG_DestroyVerify
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:326,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:328,1
    - Dst: handleEncryptedPrivateImportTest
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:339,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:342,1
    - Dst: handleEncryptedPrivateImportTest
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:347,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:350,1
    - Dst: handleEncryptedPrivateImportTest
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:358,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:361,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:367,1
    - Dst: getCurveFromString
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:370,1
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:372,1
    - Dst: PORT_Memcpy
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:379,1
    - Dst: handleEncryptedPrivateImportTest
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:381,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:383,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:386,1
    - Dst: PK11_PQG_DestroyParams
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:392,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:396,1
    - Dst: NSS_Shutdown
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:399,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:401,1
    - Dst: SECU_PrintPRandOSError
      Src: /src/nss/cmd/pk11importtest/pk11importtest.c:402,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 125
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 238
    functionDepth: 2
    functionLinenumber: 238
    functionLinenumberEnd: 407
    functionName: main
    functionSourceFile: /src/nss/cmd/pk11importtest/pk11importtest.c
    functionUses: 2
    functionsReached:
    - NSS_InitReadWrite
    - PK11_GetInternalKeySlot
    - handleEncryptedPrivateImportTest
    - getCurveFromString
    - fprintf
    - PK11_PQG_DestroyVerify
    - Usage
    - PORT_Memcpy
    - strrchr
    - SECU_PrintError
    - SECU_PrintPRandOSError
    - PK11_PQG_DestroyParams
    - PK11_SetPasswordFunc
    - PK11_FreeSlot
    - SECU_ConfigDirectory
    - PK11_Authenticate
    - PORT_Alloc
    - SECOID_FindOIDByTag
    - PORT_Free
    - SECU_ParseCommandLine
    - atoi
    - NSS_Shutdown
    - SECU_RegisterDynamicOids
    - PK11_PQG_ParamGenV2
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/makepqg/makepqg.c:36,1
    - Dst: fprintf
      Src: /src/nss/cmd/makepqg/makepqg.c:37,1
    - Dst: exit
      Src: /src/nss/cmd/makepqg/makepqg.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 46
    functionName: Usage
    functionSourceFile: /src/nss/cmd/makepqg/makepqg.c
    functionUses: 61
    functionsReached:
    - fprintf
    - exit
    linkageType: ''
    returnType: void
    signature: void Usage(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PK11_PQG_GetPrimeFromParams
      Src: /src/nss/cmd/makepqg/makepqg.c:62,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/makepqg/makepqg.c:64,1
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/makepqg/makepqg.c:67,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/makepqg/makepqg.c:68,1
    - Dst: PK11_PQG_GetSubPrimeFromParams
      Src: /src/nss/cmd/makepqg/makepqg.c:70,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/makepqg/makepqg.c:72,1
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/makepqg/makepqg.c:75,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/makepqg/makepqg.c:76,1
    - Dst: PK11_PQG_GetBaseFromParams
      Src: /src/nss/cmd/makepqg/makepqg.c:78,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/makepqg/makepqg.c:80,1
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/makepqg/makepqg.c:83,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/makepqg/makepqg.c:84,1
    - Dst: fprintf
      Src: /src/nss/cmd/makepqg/makepqg.c:86,1
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/makepqg/makepqg.c:92,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/makepqg/makepqg.c:94,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/cmd/makepqg/makepqg.c:97,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/makepqg/makepqg.c:100,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/makepqg/makepqg.c:101,1
    - Dst: fwrite
      Src: /src/nss/cmd/makepqg/makepqg.c:106,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/makepqg/makepqg.c:107,1
    - Dst: fprintf
      Src: /src/nss/cmd/makepqg/makepqg.c:109,1
    - Dst: BTOA_DataToAscii
      Src: /src/nss/cmd/makepqg/makepqg.c:116,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/makepqg/makepqg.c:117,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/makepqg/makepqg.c:119,1
    - Dst: fprintf
      Src: /src/nss/cmd/makepqg/makepqg.c:123,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/makepqg/makepqg.c:124,1
    - Dst: fprintf
      Src: /src/nss/cmd/makepqg/makepqg.c:126,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 61
    argCount: 4
    argNames:
    - pqgParams
    - output_binary
    - output_raw
    - outFile
    argTypes:
    - PQGParams*
    - PRBool
    - PRBool
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 130
    functionName: outputPQGParams
    functionSourceFile: /src/nss/cmd/makepqg/makepqg.c
    functionUses: 0
    functionsReached:
    - SEC_ASN1EncodeItem
    - PORT_NewArena
    - SECU_PrintError
    - PK11_PQG_GetBaseFromParams
    - PORT_FreeArena
    - BTOA_DataToAscii
    - PORT_Free
    - PK11_PQG_GetPrimeFromParams
    - fprintf
    - fwrite
    - SECU_PrintInteger
    - PK11_PQG_GetSubPrimeFromParams
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus outputPQGParams(PQGParams *pqgParams, PRBool output_binary,
      PRBool output_raw,\n                FILE *outFile)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PK11_PQG_GetHFromVerify
      Src: /src/nss/cmd/makepqg/makepqg.c:141,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/makepqg/makepqg.c:143,1
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/makepqg/makepqg.c:146,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/makepqg/makepqg.c:147,1
    - Dst: PK11_PQG_GetSeedFromVerify
      Src: /src/nss/cmd/makepqg/makepqg.c:149,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/makepqg/makepqg.c:151,1
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/makepqg/makepqg.c:154,1
    - Dst: fprintf
      Src: /src/nss/cmd/makepqg/makepqg.c:155,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/makepqg/makepqg.c:156,1
    - Dst: PK11_PQG_GetCounterFromVerify
      Src: /src/nss/cmd/makepqg/makepqg.c:158,1
    - Dst: fprintf
      Src: /src/nss/cmd/makepqg/makepqg.c:159,1
    - Dst: fprintf
      Src: /src/nss/cmd/makepqg/makepqg.c:160,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 4
    argNames:
    - pqgVerify
    - output_binary
    - output_raw
    - outFile
    argTypes:
    - PQGVerify*
    - PRBool
    - PRBool
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 163
    functionName: outputPQGVerify
    functionSourceFile: /src/nss/cmd/makepqg/makepqg.c
    functionUses: 0
    functionsReached:
    - PK11_PQG_GetSeedFromVerify
    - SECU_PrintError
    - fprintf
    - PK11_PQG_GetCounterFromVerify
    - SECU_PrintInteger
    - PK11_PQG_GetHFromVerify
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus outputPQGVerify(PQGVerify *pqgVerify, PRBool output_binary,
      PRBool output_raw,\n                FILE *outFile)"
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/nss/cmd/makepqg/makepqg.c:185,1
    - Dst: strrchr
      Src: /src/nss/cmd/makepqg/makepqg.c:187,1
    - Dst: PL_CreateOptState
      Src: /src/nss/cmd/makepqg/makepqg.c:191,1
    - Dst: PL_GetNextOpt
      Src: /src/nss/cmd/makepqg/makepqg.c:192,1
    - Dst: atoi
      Src: /src/nss/cmd/makepqg/makepqg.c:196,1
    - Dst: atoi
      Src: /src/nss/cmd/makepqg/makepqg.c:200,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/makepqg/makepqg.c:217,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/makepqg/makepqg.c:219,1
    - Dst: atoi
      Src: /src/nss/cmd/makepqg/makepqg.c:226,1
    - Dst: Usage
      Src: /src/nss/cmd/makepqg/makepqg.c:231,1
    - Dst: PL_DestroyOptState
      Src: /src/nss/cmd/makepqg/makepqg.c:235,1
    - Dst: Usage
      Src: /src/nss/cmd/makepqg/makepqg.c:238,1
    - Dst: Usage
      Src: /src/nss/cmd/makepqg/makepqg.c:245,1
    - Dst: PQG_PBITS_TO_INDEX
      Src: /src/nss/cmd/makepqg/makepqg.c:250,1
    - Dst: fprintf
      Src: /src/nss/cmd/makepqg/makepqg.c:252,1
    - Dst: fprintf
      Src: /src/nss/cmd/makepqg/makepqg.c:260,1
    - Dst: fprintf
      Src: /src/nss/cmd/makepqg/makepqg.c:272,1
    - Dst: fopen
      Src: /src/nss/cmd/makepqg/makepqg.c:280,1
    - Dst: fprintf
      Src: /src/nss/cmd/makepqg/makepqg.c:282,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/makepqg/makepqg.c:288,1
    - Dst: NSS_NoDB_Init
      Src: /src/nss/cmd/makepqg/makepqg.c:298,1
    - Dst: PK11_PQG_ParamGenV2
      Src: /src/nss/cmd/makepqg/makepqg.c:303,1
    - Dst: PK11_PQG_ParamGenSeedLen
      Src: /src/nss/cmd/makepqg/makepqg.c:307,1
    - Dst: PK11_PQG_ParamGen
      Src: /src/nss/cmd/makepqg/makepqg.c:310,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/makepqg/makepqg.c:315,1
    - Dst: fprintf
      Src: /src/nss/cmd/makepqg/makepqg.c:318,1
    - Dst: outputPQGParams
      Src: /src/nss/cmd/makepqg/makepqg.c:320,1
    - Dst: fprintf
      Src: /src/nss/cmd/makepqg/makepqg.c:322,1
    - Dst: outputPQGVerify
      Src: /src/nss/cmd/makepqg/makepqg.c:325,1
    - Dst: fprintf
      Src: /src/nss/cmd/makepqg/makepqg.c:327,1
    - Dst: PK11_PQG_VerifyParams
      Src: /src/nss/cmd/makepqg/makepqg.c:331,1
    - Dst: fprintf
      Src: /src/nss/cmd/makepqg/makepqg.c:333,1
    - Dst: fprintf
      Src: /src/nss/cmd/makepqg/makepqg.c:337,1
    - Dst: fprintf
      Src: /src/nss/cmd/makepqg/makepqg.c:340,1
    - Dst: PK11_PQG_DestroyParams
      Src: /src/nss/cmd/makepqg/makepqg.c:342,1
    - Dst: PK11_PQG_DestroyVerify
      Src: /src/nss/cmd/makepqg/makepqg.c:343,1
    - Dst: NSS_Shutdown
      Src: /src/nss/cmd/makepqg/makepqg.c:344,1
    - Dst: PK11_PQG_DestroyParams
      Src: /src/nss/cmd/makepqg/makepqg.c:350,1
    - Dst: PK11_PQG_DestroyVerify
      Src: /src/nss/cmd/makepqg/makepqg.c:351,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 134
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 353
    functionName: main
    functionSourceFile: /src/nss/cmd/makepqg/makepqg.c
    functionUses: 2
    functionsReached:
    - outputPQGVerify
    - PL_DestroyOptState
    - fprintf
    - outputPQGParams
    - PK11_PQG_DestroyVerify
    - PQG_PBITS_TO_INDEX
    - Usage
    - fopen
    - PK11_PQG_ParamGenSeedLen
    - strrchr
    - PL_CreateOptState
    - PK11_PQG_VerifyParams
    - SECU_PrintError
    - PK11_PQG_DestroyParams
    - PK11_PQG_ParamGen
    - NSS_NoDB_Init
    - PL_GetNextOpt
    - PORT_Free
    - atoi
    - NSS_Shutdown
    - PORT_Strdup
    - PK11_PQG_ParamGenV2
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:46,1
    - Dst: memset
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:47,1
    - Dst: fprintf
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:58,1
    - Dst: memset
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:59,1
    - Dst: fprintf
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:66,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 4
    argNames:
    - out
    - msg
    - vp
    - len
    argTypes:
    - FILE*
    - char*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 68
    functionName: SECU_PrintBuf
    functionSourceFile: /src/nss/cmd/lowhashtest/lowhashtest.c
    functionUses: 1
    functionsReached:
    - fprintf
    - memset
    linkageType: ''
    returnType: void
    signature: void SECU_PrintBuf(FILE *out, const char *msg, const void *vp, int
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - prog
    - string
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: SECU_PrintError
    functionSourceFile: /src/nss/cmd/lowhashtest/lowhashtest.c
    functionUses: 53
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void SECU_PrintError(const char *prog, const char *string)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - prog
    - string
    - string2
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 82
    functionName: SECU_PrintError3
    functionSourceFile: /src/nss/cmd/lowhashtest/lowhashtest.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void SECU_PrintError3(const char *prog, const char *string, const char
      *string2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:97,1
    - Dst: NSSLOWHASH_NewContext
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:99,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:101,1
    - Dst: NSSLOWHASH_Begin
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:105,1
    - Dst: NSSLOWHASH_Update
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:107,1
    - Dst: NSSLOWHASH_End
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:110,1
    - Dst: assert
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:111,1
    - Dst: assert
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:112,1
    - Dst: PORT_Memcmp
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:112,1
    - Dst: PORT_Memcmp
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:113,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:114,1
    - Dst: SECU_PrintBuf
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:115,1
    - Dst: SECU_PrintBuf
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:116,1
    - Dst: NSSLOWHASH_Destroy
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:120,1
    - Dst: NSSLOW_Shutdown
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:121,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 5
    argNames:
    - initCtx
    - algoType
    - hashLen
    - expected
    - results
    argTypes:
    - NSSLOWInitContext*
    - HASH_HashType
    - unsigned int
    - PRUint8[]
    - PRUint8[]
    assertStmts:
    - condition: (len == hashLen)
      pos:
        line_end: 110
        line_start: 110
        source_file: /src/nss/cmd/lowhashtest/lowhashtest.c
    - condition: (PORT_Memcmp(expected, results, hashLen) == 0)
      pos:
        line_end: 111
        line_start: 111
        source_file: /src/nss/cmd/lowhashtest/lowhashtest.c
    constantsTouched: []
    func_position:
      end: 124
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 124
    functionName: test_long_message
    functionSourceFile: /src/nss/cmd/lowhashtest/lowhashtest.c
    functionUses: 0
    functionsReached:
    - SECU_PrintError
    - PORT_Memcmp
    - NSSLOWHASH_Update
    - NSSLOW_Shutdown
    - memset
    - assert
    - NSSLOWHASH_NewContext
    - SECU_PrintBuf
    - NSSLOWHASH_Destroy
    - NSSLOWHASH_Begin
    - NSSLOWHASH_End
    linkageType: ''
    returnType: int
    signature: "int test_long_message(NSSLOWInitContext *initCtx,\n                  HASH_HashType
      algoType, unsigned int hashLen,\n                  const PRUint8 expected[],
      PRUint8 results[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_long_message
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - initCtx
    argTypes:
    - NSSLOWInitContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 138
    functionName: test_long_message_sha1
    functionSourceFile: /src/nss/cmd/lowhashtest/lowhashtest.c
    functionUses: 0
    functionsReached:
    - test_long_message
    linkageType: ''
    returnType: int
    signature: int test_long_message_sha1(NSSLOWInitContext *initCtx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_long_message
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - initCtx
    argTypes:
    - NSSLOWInitContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 150
    functionName: test_long_message_sha256
    functionSourceFile: /src/nss/cmd/lowhashtest/lowhashtest.c
    functionUses: 0
    functionsReached:
    - test_long_message
    linkageType: ''
    returnType: int
    signature: int test_long_message_sha256(NSSLOWInitContext *initCtx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_long_message
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - initCtx
    argTypes:
    - NSSLOWInitContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 174
    functionName: test_long_message_sha384
    functionSourceFile: /src/nss/cmd/lowhashtest/lowhashtest.c
    functionUses: 0
    functionsReached:
    - test_long_message
    linkageType: ''
    returnType: int
    signature: int test_long_message_sha384(NSSLOWInitContext *initCtx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_long_message
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - initCtx
    argTypes:
    - NSSLOWInitContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 188
    functionName: test_long_message_sha512
    functionSourceFile: /src/nss/cmd/lowhashtest/lowhashtest.c
    functionUses: 0
    functionsReached:
    - test_long_message
    linkageType: ''
    returnType: int
    signature: int test_long_message_sha512(NSSLOWInitContext *initCtx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NSSLOWHASH_NewContext
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:200,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:202,1
    - Dst: NSSLOWHASH_Begin
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:206,1
    - Dst: NSSLOWHASH_Update
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:207,1
    - Dst: PORT_Strlen
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:207,1
    - Dst: NSSLOWHASH_End
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:208,1
    - Dst: assert
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:209,1
    - Dst: assert
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:210,1
    - Dst: PORT_Memcmp
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:210,1
    - Dst: PORT_Memcmp
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:212,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:213,1
    - Dst: SECU_PrintBuf
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:214,1
    - Dst: SECU_PrintBuf
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:215,1
    - Dst: NSSLOWHASH_Destroy
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:219,1
    - Dst: NSSLOW_Shutdown
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:220,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 6
    argNames:
    - initCtx
    - algoType
    - hashLen
    - message
    - expected
    - results
    argTypes:
    - NSSLOWInitContext*
    - HASH_HashType
    - unsigned int
    - unsigned char*
    - PRUint8[]
    - PRUint8[]
    assertStmts:
    - condition: (len == hashLen)
      pos:
        line_end: 208
        line_start: 208
        source_file: /src/nss/cmd/lowhashtest/lowhashtest.c
    - condition: (PORT_Memcmp(expected, results, len) == 0)
      pos:
        line_end: 209
        line_start: 209
        source_file: /src/nss/cmd/lowhashtest/lowhashtest.c
    constantsTouched: []
    func_position:
      end: 223
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 223
    functionName: testMessageDigest
    functionSourceFile: /src/nss/cmd/lowhashtest/lowhashtest.c
    functionUses: 0
    functionsReached:
    - SECU_PrintError
    - PORT_Memcmp
    - NSSLOWHASH_Update
    - PORT_Strlen
    - NSSLOW_Shutdown
    - assert
    - NSSLOWHASH_NewContext
    - SECU_PrintBuf
    - NSSLOWHASH_Destroy
    - NSSLOWHASH_Begin
    - NSSLOWHASH_End
    linkageType: ''
    returnType: int
    signature: "int testMessageDigest(NSSLOWInitContext *initCtx,\n                  HASH_HashType
      algoType, unsigned int hashLen,\n                  const unsigned char *message,\n
      \                 const PRUint8 expected[], PRUint8 results[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: testMessageDigest
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - initCtx
    argTypes:
    - NSSLOWInitContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 260
    functionName: testMD5
    functionSourceFile: /src/nss/cmd/lowhashtest/lowhashtest.c
    functionUses: 0
    functionsReached:
    - testMessageDigest
    linkageType: ''
    returnType: int
    signature: int testMD5(NSSLOWInitContext *initCtx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: testMessageDigest
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:294,1
    - Dst: test_long_message_sha1
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - initCtx
    argTypes:
    - NSSLOWInitContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 267
    functionDepth: 2
    functionLinenumber: 267
    functionLinenumberEnd: 301
    functionName: testSHA1
    functionSourceFile: /src/nss/cmd/lowhashtest/lowhashtest.c
    functionUses: 0
    functionsReached:
    - testMessageDigest
    - test_long_message_sha1
    linkageType: ''
    returnType: int
    signature: int testSHA1(NSSLOWInitContext *initCtx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: testMessageDigest
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - initCtx
    argTypes:
    - NSSLOWInitContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 303
    functionDepth: 2
    functionLinenumber: 303
    functionLinenumberEnd: 331
    functionName: testSHA224
    functionSourceFile: /src/nss/cmd/lowhashtest/lowhashtest.c
    functionUses: 0
    functionsReached:
    - testMessageDigest
    linkageType: ''
    returnType: int
    signature: int testSHA224(NSSLOWInitContext *initCtx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: testMessageDigest
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:355,1
    - Dst: test_long_message_sha256
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - initCtx
    argTypes:
    - NSSLOWInitContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 333
    functionDepth: 2
    functionLinenumber: 333
    functionLinenumberEnd: 362
    functionName: testSHA256
    functionSourceFile: /src/nss/cmd/lowhashtest/lowhashtest.c
    functionUses: 0
    functionsReached:
    - testMessageDigest
    - test_long_message_sha256
    linkageType: ''
    returnType: int
    signature: int testSHA256(NSSLOWInitContext *initCtx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: testMessageDigest
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:404,1
    - Dst: test_long_message_sha384
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:408,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - initCtx
    argTypes:
    - NSSLOWInitContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 364
    functionDepth: 2
    functionLinenumber: 364
    functionLinenumberEnd: 411
    functionName: testSHA384
    functionSourceFile: /src/nss/cmd/lowhashtest/lowhashtest.c
    functionUses: 0
    functionsReached:
    - testMessageDigest
    - test_long_message_sha384
    linkageType: ''
    returnType: int
    signature: int testSHA384(NSSLOWInitContext *initCtx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: testMessageDigest
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:440,1
    - Dst: test_long_message_sha512
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:444,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - initCtx
    argTypes:
    - NSSLOWInitContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 413
    functionDepth: 2
    functionLinenumber: 413
    functionLinenumberEnd: 446
    functionName: testSHA512
    functionSourceFile: /src/nss/cmd/lowhashtest/lowhashtest.c
    functionUses: 0
    functionsReached:
    - testMessageDigest
    - test_long_message_sha512
    linkageType: ''
    returnType: int
    signature: int testSHA512(NSSLOWInitContext *initCtx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:451,1
    - Dst: fprintf
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:453,1
    - Dst: fprintf
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:455,1
    - Dst: exit
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 457
    functionName: Usage
    functionSourceFile: /src/nss/cmd/lowhashtest/lowhashtest.c
    functionUses: 62
    functionsReached:
    - fprintf
    - exit
    linkageType: ''
    returnType: void
    signature: void Usage()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:465,1
    - Dst: NSSLOW_Init
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:468,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:470,1
    - Dst: strlen
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:474,1
    - Dst: testMD5
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:475,1
    - Dst: testSHA1
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:476,1
    - Dst: testSHA224
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:477,1
    - Dst: testSHA256
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:478,1
    - Dst: testSHA384
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:479,1
    - Dst: testSHA512
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:480,1
    - Dst: strcmp
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:481,1
    - Dst: testMD5
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:482,1
    - Dst: strcmp
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:483,1
    - Dst: testSHA1
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:484,1
    - Dst: strcmp
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:485,1
    - Dst: testSHA224
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:486,1
    - Dst: strcmp
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:487,1
    - Dst: testSHA256
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:488,1
    - Dst: strcmp
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:489,1
    - Dst: testSHA384
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:490,1
    - Dst: strcmp
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:491,1
    - Dst: testSHA512
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:492,1
    - Dst: SECU_PrintError3
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:494,1
    - Dst: Usage
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:495,1
    - Dst: NSSLOW_Shutdown
      Src: /src/nss/cmd/lowhashtest/lowhashtest.c:498,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 459
    functionDepth: 3
    functionLinenumber: 459
    functionLinenumberEnd: 501
    functionName: main
    functionSourceFile: /src/nss/cmd/lowhashtest/lowhashtest.c
    functionUses: 2
    functionsReached:
    - strcmp
    - testSHA512
    - testSHA384
    - SECU_PrintError
    - testSHA1
    - NSSLOW_Shutdown
    - testSHA256
    - testMD5
    - SECU_PrintError3
    - NSSLOW_Init
    - testSHA224
    - Usage
    - strrchr
    - strlen
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - mode
    argTypes:
    - ModeTypes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 89
    functionName: getFunctionListName
    functionSourceFile: /src/nss/cmd/shlibsign/shlibsign.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      getFunctionListName(ModeTypes mode)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - mech
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 110
    functionName: MKHASH
    functionSourceFile: /src/nss/cmd/shlibsign/shlibsign.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MKHASH(name, mech)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/shlibsign/shlibsign.c:123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - hashName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 128
    functionName: findHash
    functionSourceFile: /src/nss/cmd/shlibsign/shlibsign.c
    functionUses: 0
    functionsReached:
    - PL_strcasecmp
    linkageType: ''
    returnType: HashTable
    signature: 'HashTable *

      findHash(const char *hashName)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetSpecialFD
      Src: /src/nss/cmd/shlibsign/shlibsign.c:135,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:136,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:138,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:144,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:146,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:149,1
    - Dst: exit
      Src: /src/nss/cmd/shlibsign/shlibsign.c:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - program_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 151
    functionName: usage
    functionSourceFile: /src/nss/cmd/shlibsign/shlibsign.c
    functionUses: 6
    functionsReached:
    - PR_fprintf
    - exit
    - PR_GetSpecialFD
    linkageType: ''
    returnType: void
    signature: void usage(const char *program_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetSpecialFD
      Src: /src/nss/cmd/shlibsign/shlibsign.c:156,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:159,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:160,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:161,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:162,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:163,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:164,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:165,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:166,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:167,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:168,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:169,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:170,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:171,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:172,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:173,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:174,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:175,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:176,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:177,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:178,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:179,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:180,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:181,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:182,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:183,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:184,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:185,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:187,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:190,1
    - Dst: exit
      Src: /src/nss/cmd/shlibsign/shlibsign.c:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 34
    argCount: 1
    argNames:
    - program_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 192
    functionName: long_usage
    functionSourceFile: /src/nss/cmd/shlibsign/shlibsign.c
    functionUses: 2
    functionsReached:
    - PR_fprintf
    - exit
    - PR_GetSpecialFD
    linkageType: ''
    returnType: void
    signature: void long_usage(const char *program_name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nss/cmd/shlibsign/shlibsign.c:197,1
    - Dst: PR_Malloc
      Src: /src/nss/cmd/shlibsign/shlibsign.c:198,1
    - Dst: PL_strncmp
      Src: /src/nss/cmd/shlibsign/shlibsign.c:202,1
    - Dst: memcpy
      Src: /src/nss/cmd/shlibsign/shlibsign.c:206,1
    - Dst: memcpy
      Src: /src/nss/cmd/shlibsign/shlibsign.c:207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - input
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 209
    functionName: mkoutput
    functionSourceFile: /src/nss/cmd/shlibsign/shlibsign.c
    functionUses: 0
    functionsReached:
    - PR_Malloc
    - memcpy
    - PL_strncmp
    - strlen
    linkageType: ''
    returnType: char
    signature: 'char *

      mkoutput(const char *input)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 225
    functionName: print_error
    functionSourceFile: /src/nss/cmd/shlibsign/shlibsign.c
    functionUses: 0
    functionsReached:
    - PR_fprintf
    linkageType: ''
    returnType: void
    signature: void print_error(const char *string)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetError
      Src: /src/nss/cmd/shlibsign/shlibsign.c:232,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:233,1
    - Dst: PR_ErrorToString
      Src: /src/nss/cmd/shlibsign/shlibsign.c:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 235
    functionName: lperror
    functionSourceFile: /src/nss/cmd/shlibsign/shlibsign.c
    functionUses: 0
    functionsReached:
    - PR_ErrorToString
    - PR_fprintf
    - PR_GetError
    linkageType: ''
    returnType: void
    signature: void lperror(const char *string)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - buf
    - val
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 245
    functionName: encodeInt
    functionSourceFile: /src/nss/cmd/shlibsign/shlibsign.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void encodeInt(unsigned char *buf, int val)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:253,1
    - Dst: encodeInt
      Src: /src/nss/cmd/shlibsign/shlibsign.c:257,1
    - Dst: PR_Write
      Src: /src/nss/cmd/shlibsign/shlibsign.c:258,1
    - Dst: PR_Write
      Src: /src/nss/cmd/shlibsign/shlibsign.c:262,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - fd
    - pValue
    - ulValueLen
    argTypes:
    - PRFileDesc*
    - CK_VOID_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 267
    functionName: writeItem
    functionSourceFile: /src/nss/cmd/shlibsign/shlibsign.c
    functionUses: 0
    functionsReached:
    - PR_fprintf
    - encodeInt
    - PR_Write
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus writeItem(PRFileDesc *fd, CK_VOID_PTR pValue, CK_ULONG ulValueLen)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:624,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - errNum
    argTypes:
    - CK_RV
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 607
    functionDepth: 1
    functionLinenumber: 607
    functionLinenumberEnd: 653
    functionName: CK_RVtoStr
    functionSourceFile: /src/nss/cmd/shlibsign/shlibsign.c
    functionUses: 27
    functionsReached:
    - PR_fprintf
    linkageType: ''
    returnType: char
    signature: 'char *

      CK_RVtoStr(CK_RV errNum)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:660,1
    - Dst: CK_RVtoStr
      Src: /src/nss/cmd/shlibsign/shlibsign.c:660,1
    - Dst: PR_GetError
      Src: /src/nss/cmd/shlibsign/shlibsign.c:662,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:664,1
    - Dst: PR_ErrorToString
      Src: /src/nss/cmd/shlibsign/shlibsign.c:665,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - string
    - crv
    argTypes:
    - char*
    - CK_RV
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 655
    functionDepth: 2
    functionLinenumber: 655
    functionLinenumberEnd: 667
    functionName: pk11error
    functionSourceFile: /src/nss/cmd/shlibsign/shlibsign.c
    functionUses: 0
    functionsReached:
    - PR_ErrorToString
    - PR_fprintf
    - CK_RVtoStr
    - PR_GetError
    linkageType: ''
    returnType: void
    signature: void pk11error(const char *string, CK_RV crv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/nss/cmd/shlibsign/shlibsign.c:675,1
    - Dst: vprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:676,1
    - Dst: va_end
      Src: /src/nss/cmd/shlibsign/shlibsign.c:677,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 679
    functionName: logIt
    functionSourceFile: /src/nss/cmd/shlibsign/shlibsign.c
    functionUses: 0
    functionsReached:
    - vprintf
    - va_end
    - va_start
    linkageType: ''
    returnType: void
    signature: void logIt(const char *fmt, ...)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NSS_InitializePRErrorTable
      Src: /src/nss/cmd/shlibsign/shlibsign.c:690,1
    - Dst: lperror
      Src: /src/nss/cmd/shlibsign/shlibsign.c:693,1
    - Dst: print_error
      Src: /src/nss/cmd/shlibsign/shlibsign.c:694,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:704,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:708,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:712,1
    - Dst: logIt
      Src: /src/nss/cmd/shlibsign/shlibsign.c:715,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Initialize
      Src: /src/nss/cmd/shlibsign/shlibsign.c:719,1
    - Dst: pk11error
      Src: /src/nss/cmd/shlibsign/shlibsign.c:721,1
    - Dst: PR_smprintf_free
      Src: /src/nss/cmd/shlibsign/shlibsign.c:727,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 3
    argNames:
    - pFunctionList
    - configDir
    - dbPrefix
    argTypes:
    - CK_FUNCTION_LIST_PTR
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 681
    functionDepth: 3
    functionLinenumber: 681
    functionLinenumberEnd: 731
    functionName: softokn_Init
    functionSourceFile: /src/nss/cmd/shlibsign/shlibsign.c
    functionUses: 0
    functionsReached:
    - CK_FUNCTION_LIST_PTR::C_Initialize
    - print_error
    - lperror
    - PR_fprintf
    - NSS_InitializePRErrorTable
    - pk11error
    - PR_smprintf_free
    - PR_smprintf
    - logIt
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV softokn_Init(CK_FUNCTION_LIST_PTR pFunctionList, const char
      *configDir,\n             const char *dbPrefix)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PR_Open
      Src: /src/nss/cmd/shlibsign/shlibsign.c:744,1
    - Dst: lperror
      Src: /src/nss/cmd/shlibsign/shlibsign.c:746,1
    - Dst: PR_Read
      Src: /src/nss/cmd/shlibsign/shlibsign.c:750,1
    - Dst: PR_Close
      Src: /src/nss/cmd/shlibsign/shlibsign.c:752,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:759,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/shlibsign/shlibsign.c:762,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - pwFile
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 733
    functionDepth: 2
    functionLinenumber: 733
    functionLinenumberEnd: 763
    functionName: filePasswd
    functionSourceFile: /src/nss/cmd/shlibsign/shlibsign.c
    functionUses: 0
    functionsReached:
    - lperror
    - PR_fprintf
    - PR_Read
    - PR_Open
    - PL_strdup
    - PR_Close
    linkageType: ''
    returnType: char
    signature: 'char *

      filePasswd(char *pwFile)'
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 765
    functionDepth: 0
    functionLinenumber: 765
    functionLinenumberEnd: 784
    functionName: checkPath
    functionSourceFile: /src/nss/cmd/shlibsign/shlibsign.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void checkPath(char *string)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CK_FUNCTION_LIST_PTR::C_GetSlotList
      Src: /src/nss/cmd/shlibsign/shlibsign.c:795,1
    - Dst: pk11error
      Src: /src/nss/cmd/shlibsign/shlibsign.c:798,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:803,1
    - Dst: PR_Malloc
      Src: /src/nss/cmd/shlibsign/shlibsign.c:807,1
    - Dst: lperror
      Src: /src/nss/cmd/shlibsign/shlibsign.c:809,1
    - Dst: CK_FUNCTION_LIST_PTR::C_GetSlotList
      Src: /src/nss/cmd/shlibsign/shlibsign.c:812,1
    - Dst: pk11error
      Src: /src/nss/cmd/shlibsign/shlibsign.c:815,1
    - Dst: PR_Free
      Src: /src/nss/cmd/shlibsign/shlibsign.c:817,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - pFunctionList
    - slotIndex
    argTypes:
    - CK_FUNCTION_LIST_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 786
    functionDepth: 3
    functionLinenumber: 786
    functionLinenumberEnd: 821
    functionName: getSlotList
    functionSourceFile: /src/nss/cmd/shlibsign/shlibsign.c
    functionUses: 0
    functionsReached:
    - CK_FUNCTION_LIST_PTR::C_GetSlotList
    - PR_Malloc
    - lperror
    - PR_fprintf
    - pk11error
    - PR_Free
    linkageType: ''
    returnType: CK_SLOT_ID
    signature: "CK_SLOT_ID *\ngetSlotList(CK_FUNCTION_LIST_PTR pFunctionList,\n            CK_ULONG
      slotIndex)"
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: CK_FUNCTION_LIST_PTR::C_GetMechanismInfo
      Src: /src/nss/cmd/shlibsign/shlibsign.c:858,1
    - Dst: pk11error
      Src: /src/nss/cmd/shlibsign/shlibsign.c:861,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:866,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:906,1
    - Dst: findHash
      Src: /src/nss/cmd/shlibsign/shlibsign.c:910,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:913,1
    - Dst: logIt
      Src: /src/nss/cmd/shlibsign/shlibsign.c:947,1
    - Dst: CK_FUNCTION_LIST_PTR::C_GenerateKeyPair
      Src: /src/nss/cmd/shlibsign/shlibsign.c:948,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/cmd/shlibsign/shlibsign.c:950,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/cmd/shlibsign/shlibsign.c:952,1
    - Dst: pk11error
      Src: /src/nss/cmd/shlibsign/shlibsign.c:955,1
    - Dst: memset
      Src: /src/nss/cmd/shlibsign/shlibsign.c:960,1
    - Dst: CK_FUNCTION_LIST_PTR::C_DigestInit
      Src: /src/nss/cmd/shlibsign/shlibsign.c:961,1
    - Dst: pk11error
      Src: /src/nss/cmd/shlibsign/shlibsign.c:963,1
    - Dst: PR_Read
      Src: /src/nss/cmd/shlibsign/shlibsign.c:968,1
    - Dst: CK_FUNCTION_LIST_PTR::C_DigestUpdate
      Src: /src/nss/cmd/shlibsign/shlibsign.c:969,1
    - Dst: pk11error
      Src: /src/nss/cmd/shlibsign/shlibsign.c:972,1
    - Dst: lperror
      Src: /src/nss/cmd/shlibsign/shlibsign.c:979,1
    - Dst: CK_FUNCTION_LIST_PTR::C_DigestFinal
      Src: /src/nss/cmd/shlibsign/shlibsign.c:984,1
    - Dst: pk11error
      Src: /src/nss/cmd/shlibsign/shlibsign.c:987,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:992,1
    - Dst: memset
      Src: /src/nss/cmd/shlibsign/shlibsign.c:999,1
    - Dst: CK_FUNCTION_LIST_PTR::C_SignInit
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1001,1
    - Dst: pk11error
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1003,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Sign
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1008,1
    - Dst: pk11error
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1011,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1016,1
    - Dst: CK_FUNCTION_LIST_PTR::C_VerifyInit
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1023,1
    - Dst: pk11error
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1025,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Verify
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1028,1
    - Dst: pk11error
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1031,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1038,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1039,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1042,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1044,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1046,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1048,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1050,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1052,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1054,1
    - Dst: encodeInt
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1070,1
    - Dst: encodeInt
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1071,1
    - Dst: PR_Write
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1072,1
    - Dst: memset
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1078,1
    - Dst: CK_FUNCTION_LIST_PTR::C_GetAttributeValue
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1083,1
    - Dst: pk11error
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1086,1
    - Dst: writeItem
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1091,1
    - Dst: writeItem
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1097,1
    - Dst: writeItem
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1103,1
    - Dst: writeItem
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1109,1
    - Dst: writeItem
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1115,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 201
    argCount: 7
    argNames:
    - pFunctionList
    - slot
    - hRwSession
    - keySize
    - ifd
    - ofd
    - hash
    argTypes:
    - CK_FUNCTION_LIST_PTR
    - CK_SLOT_ID
    - CK_SESSION_HANDLE
    - int
    - PRFileDesc*
    - PRFileDesc*
    - HashTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 823
    functionDepth: 3
    functionLinenumber: 823
    functionLinenumberEnd: 1121
    functionName: shlibSignDSA
    functionSourceFile: /src/nss/cmd/shlibsign/shlibsign.c
    functionUses: 0
    functionsReached:
    - CK_FUNCTION_LIST_PTR::C_GenerateKeyPair
    - lperror
    - CK_FUNCTION_LIST_PTR::C_DigestInit
    - pk11error
    - CK_FUNCTION_LIST_PTR::C_DigestUpdate
    - findHash
    - CK_FUNCTION_LIST_PTR::C_Verify
    - CK_FUNCTION_LIST_PTR::C_DigestFinal
    - encodeInt
    - PR_ARRAY_SIZE
    - memset
    - PR_Read
    - CK_FUNCTION_LIST_PTR::C_GetMechanismInfo
    - CK_FUNCTION_LIST_PTR::C_VerifyInit
    - CK_FUNCTION_LIST_PTR::C_Sign
    - writeItem
    - CK_FUNCTION_LIST_PTR::C_SignInit
    - CK_FUNCTION_LIST_PTR::C_GetAttributeValue
    - PR_fprintf
    - PR_Write
    - logIt
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV shlibSignDSA(CK_FUNCTION_LIST_PTR pFunctionList, CK_SLOT_ID
      slot,\n             CK_SESSION_HANDLE hRwSession, int keySize, PRFileDesc *ifd,\n
      \            PRFileDesc *ofd, const HashTable *hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - attrCount
    - ','
    - template
    - ','
    - templateLen
    - ','
    - _type
    - ','
    - _value
    - ','
    - _len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1131
      start: 1124
    functionDepth: 0
    functionLinenumber: 1124
    functionLinenumberEnd: 1131
    functionName: SET_ATTR
    functionSourceFile: /src/nss/cmd/shlibsign/shlibsign.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SET_ATTR(attrCount, template, templateLen, _type, _value, _len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SET_ATTR
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1142,1
    - Dst: SET_ATTR
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1144,1
    - Dst: SET_ATTR
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1146,1
    - Dst: SET_ATTR
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1148,1
    - Dst: SET_ATTR
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1150,1
    - Dst: SET_ATTR
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1152,1
    - Dst: SET_ATTR
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1155,1
    - Dst: SET_ATTR
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1159,1
    - Dst: SET_ATTR
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 5
    argNames:
    - templateLength
    - sensitivePtr
    - keyTypePtr
    - keyLengthPtr
    - key
    argTypes:
    - size_t
    - CK_BBOOL*
    - CK_KEY_TYPE*
    - CK_ULONG*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1165
      start: 1133
    functionDepth: 1
    functionLinenumber: 1133
    functionLinenumberEnd: 1165
    functionName: buildHMACKeyTemplate
    functionSourceFile: /src/nss/cmd/shlibsign/shlibsign.c
    functionUses: 0
    functionsReached:
    - SET_ATTR
    linkageType: ''
    returnType: size_t
    signature: "size_t buildHMACKeyTemplate(CK_ATTRIBUTE *template,\n                     size_t
      templateLength,\n                     const CK_BBOOL *sensitivePtr,\n                     const
      CK_KEY_TYPE *keyTypePtr,\n                     const CK_ULONG *keyLengthPtr,\n
      \                    const SECItem *key)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: buildHMACKeyTemplate
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1177,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1178,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1185,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1185,1
    - Dst: CK_FUNCTION_LIST_PTR::C_GenerateKey
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 7
    argNames:
    - pFunctionList
    - hRwSession
    - keyGenMech
    - keyLength
    - keyType
    - sensitive
    - phHMACKey
    argTypes:
    - CK_FUNCTION_LIST_PTR
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_ULONG
    - CK_KEY_TYPE
    - CK_BBOOL
    - CK_OBJECT_HANDLE_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1168
    functionDepth: 2
    functionLinenumber: 1168
    functionLinenumberEnd: 1191
    functionName: generateHMACKey
    functionSourceFile: /src/nss/cmd/shlibsign/shlibsign.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - CK_FUNCTION_LIST_PTR::C_GenerateKey
    - PR_ARRAY_SIZE
    - buildHMACKeyTemplate
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV generateHMACKey(CK_FUNCTION_LIST_PTR pFunctionList,\n                CK_SESSION_HANDLE
      hRwSession, CK_MECHANISM_PTR keyGenMech,\n                CK_ULONG keyLength,
      CK_KEY_TYPE keyType, CK_BBOOL sensitive,\n                CK_OBJECT_HANDLE_PTR
      phHMACKey)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: generateHMACKey
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1202,1
    - Dst: CK_FUNCTION_LIST_PTR::C_GetAttributeValue
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1207,1
    - Dst: CK_FUNCTION_LIST_PTR::C_DestroyObject
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1210,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 7
    argNames:
    - pFunctionList
    - hRwSession
    - keyGenMech
    - keyLength
    - keyType
    - pHMACKeyValue
    - phHMACKey
    argTypes:
    - CK_FUNCTION_LIST_PTR
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_ULONG
    - CK_KEY_TYPE
    - CK_ATTRIBUTE_PTR
    - CK_OBJECT_HANDLE_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1214
      start: 1194
    functionDepth: 3
    functionLinenumber: 1194
    functionLinenumberEnd: 1214
    functionName: generateAndExtractHMACKeyRaw
    functionSourceFile: /src/nss/cmd/shlibsign/shlibsign.c
    functionUses: 0
    functionsReached:
    - CK_FUNCTION_LIST_PTR::C_DestroyObject
    - generateHMACKey
    - CK_FUNCTION_LIST_PTR::C_GetAttributeValue
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV generateAndExtractHMACKeyRaw(CK_FUNCTION_LIST_PTR pFunctionList,\n
      \                            CK_SESSION_HANDLE hRwSession, CK_MECHANISM_PTR
      keyGenMech,\n                             CK_ULONG keyLength, CK_KEY_TYPE keyType,\n
      \                            CK_ATTRIBUTE_PTR pHMACKeyValue,\n                             CK_OBJECT_HANDLE_PTR
      phHMACKey)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: buildHMACKeyTemplate
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1237,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1238,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1245,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1245,1
    - Dst: generateHMACKey
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1257,1
    - Dst: CK_FUNCTION_LIST_PTR::C_DeriveKey
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1264,1
    - Dst: CK_FUNCTION_LIST_PTR::C_DestroyObject
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1269,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 5
    argNames:
    - pFunctionList
    - hRwSession
    - pKeyItem
    - keyType
    - phHMACKey
    argTypes:
    - CK_FUNCTION_LIST_PTR
    - CK_SESSION_HANDLE
    - SECItem*
    - CK_KEY_TYPE
    - CK_SESSION_HANDLE_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1271
      start: 1222
    functionDepth: 3
    functionLinenumber: 1222
    functionLinenumberEnd: 1271
    functionName: fipsImportKey
    functionSourceFile: /src/nss/cmd/shlibsign/shlibsign.c
    functionUses: 0
    functionsReached:
    - CK_FUNCTION_LIST_PTR::C_DestroyObject
    - PORT_Assert
    - PR_ARRAY_SIZE
    - buildHMACKeyTemplate
    - CK_FUNCTION_LIST_PTR::C_DeriveKey
    - generateHMACKey
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV fipsImportKey(CK_FUNCTION_LIST_PTR pFunctionList,\n              CK_SESSION_HANDLE
      hRwSession, const SECItem *pKeyItem,\n              CK_KEY_TYPE keyType, CK_SESSION_HANDLE_PTR
      phHMACKey)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: generateAndExtractHMACKeyRaw
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1286,1
    - Dst: CK_FUNCTION_LIST_PTR::C_GenerateRandom
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1294,1
    - Dst: fipsImportKey
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1300,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 7
    argNames:
    - pFunctionList
    - hRwSession
    - keyGenMech
    - keyLength
    - keyType
    - pHMACKeyValue
    - phHMACKey
    argTypes:
    - CK_FUNCTION_LIST_PTR
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_ULONG
    - CK_KEY_TYPE
    - CK_ATTRIBUTE_PTR
    - CK_OBJECT_HANDLE_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1302
      start: 1276
    functionDepth: 4
    functionLinenumber: 1276
    functionLinenumberEnd: 1302
    functionName: generateAndExtractHMACKey
    functionSourceFile: /src/nss/cmd/shlibsign/shlibsign.c
    functionUses: 0
    functionsReached:
    - CK_FUNCTION_LIST_PTR::C_GenerateRandom
    - generateAndExtractHMACKeyRaw
    - fipsImportKey
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV generateAndExtractHMACKey(CK_FUNCTION_LIST_PTR pFunctionList,\n
      \                         CK_SESSION_HANDLE hRwSession, CK_MECHANISM_PTR keyGenMech,\n
      \                         CK_ULONG keyLength, CK_KEY_TYPE keyType,\n                          CK_ATTRIBUTE_PTR
      pHMACKeyValue,\n                          CK_OBJECT_HANDLE_PTR phHMACKey)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: buildHMACKeyTemplate
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1317,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1318,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1325,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1325,1
    - Dst: CK_FUNCTION_LIST_PTR::C_CreateObject
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1329,1
    - Dst: fipsImportKey
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1334,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - pFunctionList
    - hRwSession
    - phHMACKey
    - keyType
    - keyItem
    argTypes:
    - CK_FUNCTION_LIST_PTR
    - CK_SESSION_HANDLE
    - CK_OBJECT_HANDLE_PTR
    - CK_KEY_TYPE
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1339
      start: 1308
    functionDepth: 4
    functionLinenumber: 1308
    functionLinenumberEnd: 1339
    functionName: importHMACKey
    functionSourceFile: /src/nss/cmd/shlibsign/shlibsign.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - fipsImportKey
    - CK_FUNCTION_LIST_PTR::C_CreateObject
    - PR_ARRAY_SIZE
    - buildHMACKeyTemplate
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV importHMACKey(CK_FUNCTION_LIST_PTR pFunctionList,\n              CK_SESSION_HANDLE
      hRwSession, CK_OBJECT_HANDLE_PTR phHMACKey,\n              CK_KEY_TYPE keyType,
      const SECItem *keyItem)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: findHash
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1365,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1368,1
    - Dst: logIt
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1381,1
    - Dst: generateAndExtractHMACKey
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1382,1
    - Dst: pk11error
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1387,1
    - Dst: SECU_HexString2SECItem
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1393,1
    - Dst: lperror
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1394,1
    - Dst: print_error
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1400,1
    - Dst: logIt
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1404,1
    - Dst: importHMACKey
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1405,1
    - Dst: pk11error
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1408,1
    - Dst: print_error
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1415,1
    - Dst: PORT_Memcpy
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1419,1
    - Dst: pk11error
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1424,1
    - Dst: memset
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1430,1
    - Dst: CK_FUNCTION_LIST_PTR::C_SignInit
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1431,1
    - Dst: pk11error
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1433,1
    - Dst: PR_Read
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1438,1
    - Dst: CK_FUNCTION_LIST_PTR::C_SignUpdate
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1439,1
    - Dst: pk11error
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1442,1
    - Dst: lperror
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1449,1
    - Dst: CK_FUNCTION_LIST_PTR::C_SignFinal
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1454,1
    - Dst: pk11error
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1457,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1462,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1470,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1471,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1474,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1476,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1478,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1480,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1482,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1484,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1486,1
    - Dst: encodeInt
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1502,1
    - Dst: encodeInt
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1503,1
    - Dst: PR_Write
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1504,1
    - Dst: writeItem
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1510,1
    - Dst: writeItem
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1515,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 112
    argCount: 8
    argNames:
    - pFunctionList
    - slot
    - hRwSession
    - keySize
    - key
    - ifd
    - ofd
    - hash
    argTypes:
    - CK_FUNCTION_LIST_PTR
    - CK_SLOT_ID
    - CK_SESSION_HANDLE
    - int
    - char*
    - PRFileDesc*
    - PRFileDesc*
    - HashTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1521
      start: 1341
    functionDepth: 5
    functionLinenumber: 1341
    functionLinenumberEnd: 1521
    functionName: shlibSignHMAC
    functionSourceFile: /src/nss/cmd/shlibsign/shlibsign.c
    functionUses: 0
    functionsReached:
    - CK_FUNCTION_LIST_PTR::C_SignInit
    - generateAndExtractHMACKey
    - SECU_HexString2SECItem
    - print_error
    - importHMACKey
    - lperror
    - PORT_Memcpy
    - PR_fprintf
    - CK_FUNCTION_LIST_PTR::C_SignFinal
    - pk11error
    - encodeInt
    - CK_FUNCTION_LIST_PTR::C_SignUpdate
    - memset
    - PR_Read
    - PR_Write
    - writeItem
    - findHash
    - logIt
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV shlibSignHMAC(CK_FUNCTION_LIST_PTR pFunctionList, CK_SLOT_ID
      slot,\n              CK_SESSION_HANDLE hRwSession, int keySize, char *key,\n
      \             PRFileDesc *ifd, PRFileDesc *ofd, const HashTable *hash)"
  - BBCount: 80
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1561,1
    - Dst: PL_CreateOptState
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1563,1
    - Dst: lperror
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1565,1
    - Dst: PL_GetNextOpt
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1569,1
    - Dst: PL_DestroyOptState
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1574,1
    - Dst: usage
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1575,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1577,1
    - Dst: checkPath
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1578,1
    - Dst: PL_DestroyOptState
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1591,1
    - Dst: usage
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1592,1
    - Dst: PL_DestroyOptState
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1599,1
    - Dst: usage
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1600,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1602,1
    - Dst: PL_DestroyOptState
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1607,1
    - Dst: usage
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1608,1
    - Dst: atoi
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1610,1
    - Dst: PL_DestroyOptState
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1615,1
    - Dst: usage
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1616,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1618,1
    - Dst: PL_DestroyOptState
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1623,1
    - Dst: usage
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1624,1
    - Dst: filePasswd
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1626,1
    - Dst: usage
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1628,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1636,1
    - Dst: usage
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1637,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1647,1
    - Dst: usage
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1648,1
    - Dst: PL_DestroyOptState
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1655,1
    - Dst: usage
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1656,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1658,1
    - Dst: PL_DestroyOptState
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1663,1
    - Dst: usage
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1664,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1666,1
    - Dst: PL_DestroyOptState
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1671,1
    - Dst: usage
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1672,1
    - Dst: findHash
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1674,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1676,1
    - Dst: usage
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1678,1
    - Dst: PL_DestroyOptState
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1690,1
    - Dst: long_usage
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1691,1
    - Dst: PL_DestroyOptState
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1698,1
    - Dst: usage
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1699,1
    - Dst: PL_DestroyOptState
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1704,1
    - Dst: usage
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1707,1
    - Dst: PR_GetLibraryName
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1714,1
    - Dst: assert
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1715,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1717,1
    - Dst: PR_LoadLibrary
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1720,1
    - Dst: assert
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1721,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1723,1
    - Dst: PR_FreeLibraryName
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1726,1
    - Dst: PR_FindFunctionSymbol
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1729,1
    - Dst: getFunctionListName
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1729,1
    - Dst: assert
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1731,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1733,1
    - Dst: assert
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1738,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1740,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1746,1
    - Dst: softokn_Init
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1748,1
    - Dst: logIt
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1750,1
    - Dst: softokn_Init
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1752,1
    - Dst: softokn_Init
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1755,1
    - Dst: pk11error
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1759,1
    - Dst: getSlotList
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1763,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1765,1
    - Dst: CK_FUNCTION_LIST_PTR::C_OpenSession
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1769,1
    - Dst: pk11error
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1773,1
    - Dst: CK_FUNCTION_LIST_PTR::C_GetTokenInfo
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1778,1
    - Dst: pk11error
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1780,1
    - Dst: strlen
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1785,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Login
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1786,1
    - Dst: pk11error
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1789,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1793,1
    - Dst: logIt
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1797,1
    - Dst: PR_OpenFile
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1801,1
    - Dst: lperror
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1803,1
    - Dst: lstat
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1807,1
    - Dst: perror
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1809,1
    - Dst: S_ISLNK
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1812,1
    - Dst: readlink
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1814,1
    - Dst: perror
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1816,1
    - Dst: mkoutput
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1820,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1822,1
    - Dst: strrchr
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1823,1
    - Dst: chdir
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1826,1
    - Dst: perror
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1828,1
    - Dst: PL_strfree
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1832,1
    - Dst: strrchr
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1835,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1838,1
    - Dst: PL_strfree
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1839,1
    - Dst: mkoutput
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1845,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1849,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1850,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1853,1
    - Dst: PR_Open
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1859,1
    - Dst: lperror
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1861,1
    - Dst: shlibSignDSA
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1866,1
    - Dst: shlibSignHMAC
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1869,1
    - Dst: lperror
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1873,1
    - Dst: lperror
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1876,1
    - Dst: PR_Close
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1879,1
    - Dst: PR_Close
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1882,1
    - Dst: unlink
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1887,1
    - Dst: symlink
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1888,1
    - Dst: perror
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1890,1
    - Dst: CK_FUNCTION_LIST_PTR::C_Finalize
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1901,1
    - Dst: pk11error
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1903,1
    - Dst: PR_Free
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1907,1
    - Dst: PL_strfree
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1910,1
    - Dst: PL_strfree
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1913,1
    - Dst: PL_strfree
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1916,1
    - Dst: PL_strfree
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1919,1
    - Dst: PL_strfree
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1923,1
    - Dst: PR_Close
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1927,1
    - Dst: PR_Close
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1930,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1933,1
    - Dst: PR_UnloadLibrary
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1935,1
    - Dst: PR_Cleanup
      Src: /src/nss/cmd/shlibsign/shlibsign.c:1937,1
    CyclomaticComplexity: 98
    EdgeCount: 98
    ICount: 334
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts:
    - condition: (pC_GetFunctionList != NULL)
      pos:
        line_end: 1730
        line_start: 1730
        source_file: /src/nss/cmd/shlibsign/shlibsign.c
    - condition: (libname != NULL)
      pos:
        line_end: 1714
        line_start: 1714
        source_file: /src/nss/cmd/shlibsign/shlibsign.c
    - condition: (lib != NULL)
      pos:
        line_end: 1720
        line_start: 1720
        source_file: /src/nss/cmd/shlibsign/shlibsign.c
    - condition: (crv == CKR_OK)
      pos:
        line_end: 1737
        line_start: 1737
        source_file: /src/nss/cmd/shlibsign/shlibsign.c
    constantsTouched: []
    func_position:
      end: 1943
      start: 1523
    functionDepth: 6
    functionLinenumber: 1523
    functionLinenumberEnd: 1943
    functionName: main
    functionSourceFile: /src/nss/cmd/shlibsign/shlibsign.c
    functionUses: 2
    functionsReached:
    - getSlotList
    - lperror
    - pk11error
    - CK_FUNCTION_LIST_PTR::C_GetTokenInfo
    - PL_DestroyOptState
    - CK_FUNCTION_LIST_PTR::C_OpenSession
    - filePasswd
    - softokn_Init
    - symlink
    - CK_FUNCTION_LIST_PTR::C_Finalize
    - PR_Free
    - PR_GetEnvSecure
    - shlibSignHMAC
    - long_usage
    - findHash
    - perror
    - PL_strfree
    - strlen
    - chdir
    - PR_FindFunctionSymbol
    - mkoutput
    - assert
    - checkPath
    - S_ISLNK
    - usage
    - strrchr
    - PL_CreateOptState
    - PR_GetLibraryName
    - PR_Cleanup
    - PR_FreeLibraryName
    - lstat
    - PL_strdup
    - CK_FUNCTION_LIST_PTR::C_Login
    - PR_Open
    - PR_Close
    - readlink
    - PR_OpenFile
    - getFunctionListName
    - PR_LoadLibrary
    - PL_GetNextOpt
    - PR_fprintf
    - atoi
    - unlink
    - PR_UnloadLibrary
    - shlibSignDSA
    - logIt
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/mangle/mangle.c:19,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/mangle/mangle.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - program_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 21
    functionName: usage
    functionSourceFile: /src/nss/cmd/shlibsign/mangle/mangle.c
    functionUses: 7
    functionsReached:
    - PR_fprintf
    linkageType: ''
    returnType: void
    signature: void usage(char *program_name)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PL_strrchr
      Src: /src/nss/cmd/shlibsign/mangle/mangle.c:45,1
    - Dst: PL_CreateOptState
      Src: /src/nss/cmd/shlibsign/mangle/mangle.c:50,1
    - Dst: PL_GetNextOpt
      Src: /src/nss/cmd/shlibsign/mangle/mangle.c:55,1
    - Dst: atoi
      Src: /src/nss/cmd/shlibsign/mangle/mangle.c:62,1
    - Dst: atoi
      Src: /src/nss/cmd/shlibsign/mangle/mangle.c:66,1
    - Dst: usage
      Src: /src/nss/cmd/shlibsign/mangle/mangle.c:72,1
    - Dst: usage
      Src: /src/nss/cmd/shlibsign/mangle/mangle.c:76,1
    - Dst: PR_OpenFile
      Src: /src/nss/cmd/shlibsign/mangle/mangle.c:81,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/mangle/mangle.c:84,1
    - Dst: PR_Seek
      Src: /src/nss/cmd/shlibsign/mangle/mangle.c:89,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/mangle/mangle.c:91,1
    - Dst: PR_Seek
      Src: /src/nss/cmd/shlibsign/mangle/mangle.c:99,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/mangle/mangle.c:101,1
    - Dst: PR_Read
      Src: /src/nss/cmd/shlibsign/mangle/mangle.c:105,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/mangle/mangle.c:107,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/mangle/mangle.c:111,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/mangle/mangle.c:115,1
    - Dst: PR_Seek
      Src: /src/nss/cmd/shlibsign/mangle/mangle.c:119,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/mangle/mangle.c:121,1
    - Dst: PR_Write
      Src: /src/nss/cmd/shlibsign/mangle/mangle.c:125,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/shlibsign/mangle/mangle.c:127,1
    - Dst: PR_Close
      Src: /src/nss/cmd/shlibsign/mangle/mangle.c:135,1
    - Dst: PR_Cleanup
      Src: /src/nss/cmd/shlibsign/mangle/mangle.c:136,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 78
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 138
    functionName: main
    functionSourceFile: /src/nss/cmd/shlibsign/mangle/mangle.c
    functionUses: 2
    functionsReached:
    - PR_Cleanup
    - PL_strrchr
    - PL_GetNextOpt
    - PR_fprintf
    - atoi
    - PR_Read
    - PR_Seek
    - PR_Write
    - PR_Close
    - usage
    - PR_OpenFile
    - PL_CreateOptState
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exit
      Src: /src/nss/cmd/validation/validation.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 35
    functionName: Usage
    functionSourceFile: /src/nss/cmd/validation/validation.c
    functionUses: 63
    functionsReached:
    - exit
    linkageType: ''
    returnType: void
    signature: void Usage()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/validation/validation.c:71,1
    - Dst: printf
      Src: /src/nss/cmd/validation/validation.c:73,1
    - Dst: printf
      Src: /src/nss/cmd/validation/validation.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - label
    - attr
    argTypes:
    - char*
    - CK_ATTRIBUTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 76
    functionName: dump_Raw
    functionSourceFile: /src/nss/cmd/validation/validation.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void dump_Raw(char *label, CK_ATTRIBUTE *attr)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PK11_FindGenericObjects
      Src: /src/nss/cmd/validation/validation.c:84,1
    - Dst: PK11_GetNextGenericObject
      Src: /src/nss/cmd/validation/validation.c:86,1
    - Dst: printf
      Src: /src/nss/cmd/validation/validation.c:88,1
    - Dst: PK11_ReadRawAttributes
      Src: /src/nss/cmd/validation/validation.c:89,1
    - Dst: printf
      Src: /src/nss/cmd/validation/validation.c:94,1
    - Dst: printf
      Src: /src/nss/cmd/validation/validation.c:96,1
    - Dst: printf
      Src: /src/nss/cmd/validation/validation.c:98,1
    - Dst: dump_Raw
      Src: /src/nss/cmd/validation/validation.c:103,1
    - Dst: printf
      Src: /src/nss/cmd/validation/validation.c:107,1
    - Dst: dump_Raw
      Src: /src/nss/cmd/validation/validation.c:111,1
    - Dst: printf
      Src: /src/nss/cmd/validation/validation.c:115,1
    - Dst: printf
      Src: /src/nss/cmd/validation/validation.c:118,1
    - Dst: dump_Raw
      Src: /src/nss/cmd/validation/validation.c:121,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/validation/validation.c:124,1
    - Dst: PK11_DestroyGenericObjects
      Src: /src/nss/cmd/validation/validation.c:129,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 4
    argNames:
    - objc
    - count
    - tags
    - slot
    argTypes:
    - CK_OBJECT_CLASS
    - int
    - attributeTag*
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 131
    functionName: dump_validations
    functionSourceFile: /src/nss/cmd/validation/validation.c
    functionUses: 0
    functionsReached:
    - PK11_DestroyGenericObjects
    - PK11_FindGenericObjects
    - PORT_Free
    - printf
    - PK11_GetNextGenericObject
    - PK11_ReadRawAttributes
    - dump_Raw
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus dump_validations(CK_OBJECT_CLASS objc, CK_ATTRIBUTE *template,
      int count,\n                 attributeTag *tags, PK11SlotInfo *slot)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: _CrtSetDbgFlag
      Src: /src/nss/cmd/validation/validation.c:160,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/cmd/validation/validation.c:165,1
    - Dst: strrchr
      Src: /src/nss/cmd/validation/validation.c:168,1
    - Dst: SECU_ParseCommandLine
      Src: /src/nss/cmd/validation/validation.c:171,1
    - Dst: Usage
      Src: /src/nss/cmd/validation/validation.c:174,1
    - Dst: SECU_GetOptionArg
      Src: /src/nss/cmd/validation/validation.c:178,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/validation/validation.c:182,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/validation/validation.c:187,1
    - Dst: PR_Init
      Src: /src/nss/cmd/validation/validation.c:197,1
    - Dst: NSS_NoDB_Init
      Src: /src/nss/cmd/validation/validation.c:198,1
    - Dst: PK11_IsFIPS
      Src: /src/nss/cmd/validation/validation.c:202,1
    - Dst: SECMOD_GetInternalModule
      Src: /src/nss/cmd/validation/validation.c:204,1
    - Dst: SECMOD_DeleteInternalModule
      Src: /src/nss/cmd/validation/validation.c:205,1
    - Dst: NSS_Initialize
      Src: /src/nss/cmd/validation/validation.c:208,1
    - Dst: SECU_PrintPRandOSError
      Src: /src/nss/cmd/validation/validation.c:211,1
    - Dst: PL_strcmp
      Src: /src/nss/cmd/validation/validation.c:216,1
    - Dst: PK11_GetInternalKeySlot
      Src: /src/nss/cmd/validation/validation.c:217,1
    - Dst: PK11_FindSlotByName
      Src: /src/nss/cmd/validation/validation.c:219,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/validation/validation.c:222,1
    - Dst: dump_validations
      Src: /src/nss/cmd/validation/validation.c:228,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/cmd/validation/validation.c:230,1
    - Dst: PORT_ZFree
      Src: /src/nss/cmd/validation/validation.c:236,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/validation/validation.c:236,1
    - Dst: PORT_ZFree
      Src: /src/nss/cmd/validation/validation.c:238,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/validation/validation.c:238,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/validation/validation.c:240,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/cmd/validation/validation.c:243,1
    - Dst: NSS_Shutdown
      Src: /src/nss/cmd/validation/validation.c:244,1
    - Dst: PL_ArenaFinish
      Src: /src/nss/cmd/validation/validation.c:247,1
    - Dst: PR_Cleanup
      Src: /src/nss/cmd/validation/validation.c:248,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 70
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 250
    functionName: main
    functionSourceFile: /src/nss/cmd/validation/validation.c
    functionUses: 2
    functionsReached:
    - SECMOD_DeleteInternalModule
    - PK11_GetInternalKeySlot
    - PL_strlen
    - Usage
    - PR_ARRAY_SIZE
    - PK11_IsFIPS
    - _CrtSetDbgFlag
    - PL_ArenaFinish
    - SECMOD_GetInternalModule
    - strrchr
    - PORT_ZFree
    - PR_Cleanup
    - SECU_PrintError
    - PR_Init
    - SECU_PrintPRandOSError
    - PK11_FindSlotByName
    - SECU_GetOptionArg
    - PK11_FreeSlot
    - NSS_NoDB_Init
    - PORT_Free
    - dump_validations
    - SECU_ParseCommandLine
    - NSS_Initialize
    - NSS_Shutdown
    - PL_strcmp
    - PORT_Strdup
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: __PASTE
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __PASTE(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: CK_PKCS11_FUNCTION_INFO
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CK_PKCS11_FUNCTION_INFO(func)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - c2
    - byteval
    argTypes:
    - char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 79
    functionName: hex_to_byteval
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus hex_to_byteval(const char *c2, unsigned char *byteval)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - byteval
    - c2
    - a
    argTypes:
    - unsigned char
    - char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 95
    functionName: byteval_to_hex
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus byteval_to_hex(unsigned char byteval, char *c2, char a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: byteval_to_hex
      Src: /src/nss/cmd/fipstest/fipstest.c:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - str
    - buf
    - len
    argTypes:
    - char*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 105
    functionName: to_hex_str
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 0
    functionsReached:
    - byteval_to_hex
    linkageType: ''
    returnType: void
    signature: void to_hex_str(char *str, const unsigned char *buf, unsigned int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: byteval_to_hex
      Src: /src/nss/cmd/fipstest/fipstest.c:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - str
    - buf
    - len
    argTypes:
    - char*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 115
    functionName: to_hex_str_cap
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 0
    functionsReached:
    - byteval_to_hex
    linkageType: ''
    returnType: void
    signature: void to_hex_str_cap(char *str, const unsigned char *buf, unsigned int
      len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: isxdigit
      Src: /src/nss/cmd/fipstest/fipstest.c:131,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:160,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:164,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 3
    argNames:
    - buf
    - len
    - str
    argTypes:
    - unsigned char*
    - unsigned int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 169
    functionName: from_hex_str
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 0
    functionsReached:
    - hex_to_byteval
    - isxdigit
    linkageType: ''
    returnType: PRBool
    signature: PRBool from_hex_str(unsigned char *buf, unsigned int len, const char
      *str)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: DES_CreateContext
      Src: /src/nss/cmd/fipstest/fipstest.c:184,1
    - Dst: DES_Encrypt
      Src: /src/nss/cmd/fipstest/fipstest.c:188,1
    - Dst: DES_DestroyContext
      Src: /src/nss/cmd/fipstest/fipstest.c:195,1
    - Dst: DES_CreateContext
      Src: /src/nss/cmd/fipstest/fipstest.c:202,1
    - Dst: DES_Decrypt
      Src: /src/nss/cmd/fipstest/fipstest.c:206,1
    - Dst: DES_DestroyContext
      Src: /src/nss/cmd/fipstest/fipstest.c:214,1
    - Dst: memcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:216,1
    - Dst: DES_DestroyContext
      Src: /src/nss/cmd/fipstest/fipstest.c:223,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 8
    argNames:
    - mode
    - key
    - iv
    - output
    - outputlen
    - maxoutputlen
    - input
    - inputlen
    argTypes:
    - int
    - unsigned char*
    - unsigned char*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 226
    functionName: tdea_encrypt_buf
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 0
    functionsReached:
    - DES_DestroyContext
    - DES_CreateContext
    - memcmp
    - DES_Decrypt
    - DES_Encrypt
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tdea_encrypt_buf(\n    int mode,\n    const unsigned char
      *key,\n    const unsigned char *iv,\n    unsigned char *output, unsigned int
      *outputlen, unsigned int maxoutputlen,\n    const unsigned char *input, unsigned
      int inputlen)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: DES_CreateContext
      Src: /src/nss/cmd/fipstest/fipstest.c:241,1
    - Dst: DES_Decrypt
      Src: /src/nss/cmd/fipstest/fipstest.c:245,1
    - Dst: DES_DestroyContext
      Src: /src/nss/cmd/fipstest/fipstest.c:253,1
    - Dst: DES_CreateContext
      Src: /src/nss/cmd/fipstest/fipstest.c:260,1
    - Dst: DES_Encrypt
      Src: /src/nss/cmd/fipstest/fipstest.c:264,1
    - Dst: DES_DestroyContext
      Src: /src/nss/cmd/fipstest/fipstest.c:272,1
    - Dst: memcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:274,1
    - Dst: DES_DestroyContext
      Src: /src/nss/cmd/fipstest/fipstest.c:281,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 8
    argNames:
    - mode
    - key
    - iv
    - output
    - outputlen
    - maxoutputlen
    - input
    - inputlen
    argTypes:
    - int
    - unsigned char*
    - unsigned char*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 284
    functionName: tdea_decrypt_buf
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 0
    functionsReached:
    - DES_DestroyContext
    - DES_CreateContext
    - memcmp
    - DES_Decrypt
    - DES_Encrypt
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tdea_decrypt_buf(\n    int mode,\n    const unsigned char
      *key,\n    const unsigned char *iv,\n    unsigned char *output, unsigned int
      *outputlen, unsigned int maxoutputlen,\n    const unsigned char *input, unsigned
      int inputlen)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/nss/cmd/fipstest/fipstest.c:318,1
    - Dst: fgets
      Src: /src/nss/cmd/fipstest/fipstest.c:320,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:323,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:328,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:333,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:337,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:339,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:343,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:347,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:351,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:352,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:353,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:355,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:357,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:361,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:363,1
    - Dst: isxdigit
      Src: /src/nss/cmd/fipstest/fipstest.c:366,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:367,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:371,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:376,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:378,1
    - Dst: isxdigit
      Src: /src/nss/cmd/fipstest/fipstest.c:381,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:382,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:384,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:388,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:390,1
    - Dst: isxdigit
      Src: /src/nss/cmd/fipstest/fipstest.c:393,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:394,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:396,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:400,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:402,1
    - Dst: isxdigit
      Src: /src/nss/cmd/fipstest/fipstest.c:405,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:406,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:408,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:414,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:417,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:421,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:423,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:428,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:434,1
    - Dst: isxdigit
      Src: /src/nss/cmd/fipstest/fipstest.c:437,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:438,1
    - Dst: tdea_encrypt_buf
      Src: /src/nss/cmd/fipstest/fipstest.c:441,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:449,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:450,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:451,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:452,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:453,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:457,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:464,1
    - Dst: isxdigit
      Src: /src/nss/cmd/fipstest/fipstest.c:467,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:468,1
    - Dst: tdea_decrypt_buf
      Src: /src/nss/cmd/fipstest/fipstest.c:472,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:480,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:481,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:482,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:483,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:484,1
    - Dst: fclose
      Src: /src/nss/cmd/fipstest/fipstest.c:490,1
    CyclomaticComplexity: 57
    EdgeCount: 57
    ICount: 152
    argCount: 1
    argNames:
    - reqfn
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 297
    functionDepth: 2
    functionLinenumber: 297
    functionLinenumberEnd: 491
    functionName: tdea_kat_mmt
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 0
    functionsReached:
    - isspace
    - strncmp
    - fputs
    - isxdigit
    - fputc
    - fclose
    - fgets
    - hex_to_byteval
    - memset
    - tdea_decrypt_buf
    - fopen
    - tdea_encrypt_buf
    - to_hex_str
    linkageType: ''
    returnType: void
    signature: void tdea_kat_mmt(char *reqfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - in
    argTypes:
    - BYTE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 496
    functionDepth: 0
    functionLinenumber: 496
    functionLinenumberEnd: 504
    functionName: odd_parity
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BYTE
    signature: BYTE odd_parity(BYTE in)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: odd_parity
      Src: /src/nss/cmd/fipstest/fipstest.c:551,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 5
    argNames:
    - key
    - text_2
    - text_1
    - text
    - numKeys
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned char*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 510
    functionDepth: 1
    functionLinenumber: 510
    functionLinenumberEnd: 553
    functionName: tdea_mct_next_keys
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 0
    functionsReached:
    - odd_parity
    linkageType: ''
    returnType: void
    signature: "void tdea_mct_next_keys(unsigned char *key,\n                   const
      unsigned char *text_2, const unsigned char *text_1,\n                   const
      unsigned char *text, unsigned int numKeys)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/fipstest/fipstest.c:581,1
    - Dst: printf
      Src: /src/nss/cmd/fipstest/fipstest.c:584,1
    - Dst: snprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:592,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:593,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:595,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:596,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:597,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:598,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:600,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:601,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:602,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:603,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:605,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:606,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:607,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:608,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:611,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:612,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:613,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:614,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:618,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:621,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:624,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:625,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:626,1
    - Dst: tdea_encrypt_buf
      Src: /src/nss/cmd/fipstest/fipstest.c:634,1
    - Dst: tdea_decrypt_buf
      Src: /src/nss/cmd/fipstest/fipstest.c:643,1
    - Dst: memcpy
      Src: /src/nss/cmd/fipstest/fipstest.c:663,1
    - Dst: memcpy
      Src: /src/nss/cmd/fipstest/fipstest.c:666,1
    - Dst: memcpy
      Src: /src/nss/cmd/fipstest/fipstest.c:669,1
    - Dst: memcpy
      Src: /src/nss/cmd/fipstest/fipstest.c:672,1
    - Dst: memcpy
      Src: /src/nss/cmd/fipstest/fipstest.c:676,1
    - Dst: memcpy
      Src: /src/nss/cmd/fipstest/fipstest.c:678,1
    - Dst: memcpy
      Src: /src/nss/cmd/fipstest/fipstest.c:682,1
    - Dst: memcpy
      Src: /src/nss/cmd/fipstest/fipstest.c:687,1
    - Dst: memcpy
      Src: /src/nss/cmd/fipstest/fipstest.c:689,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:695,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:698,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:700,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:701,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:702,1
    - Dst: tdea_mct_next_keys
      Src: /src/nss/cmd/fipstest/fipstest.c:707,1
    - Dst: memcpy
      Src: /src/nss/cmd/fipstest/fipstest.c:722,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:725,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 99
    argCount: 8
    argNames:
    - mode
    - key
    - numKeys
    - crypt
    - inputtext
    - inputlength
    - iv
    - resp
    argTypes:
    - int
    - unsigned char*
    - unsigned int
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 565
    functionDepth: 2
    functionLinenumber: 565
    functionLinenumberEnd: 730
    functionName: tdea_mct_test
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 0
    functionsReached:
    - memcpy
    - fputs
    - fputc
    - tdea_mct_next_keys
    - printf
    - tdea_decrypt_buf
    - snprintf
    - tdea_encrypt_buf
    - to_hex_str
    linkageType: ''
    returnType: void
    signature: "void tdea_mct_test(int mode, unsigned char *key, unsigned int numKeys,\n
      \             unsigned int crypt, unsigned char *inputtext,\n              unsigned
      int inputlength, unsigned char *iv, FILE *resp)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:756,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:757,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:758,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:759,1
    - Dst: fopen
      Src: /src/nss/cmd/fipstest/fipstest.c:761,1
    - Dst: fgets
      Src: /src/nss/cmd/fipstest/fipstest.c:763,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:766,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:771,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:776,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:780,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:782,1
    - Dst: atoi
      Src: /src/nss/cmd/fipstest/fipstest.c:785,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:789,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:791,1
    - Dst: isxdigit
      Src: /src/nss/cmd/fipstest/fipstest.c:794,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:795,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:800,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:802,1
    - Dst: isxdigit
      Src: /src/nss/cmd/fipstest/fipstest.c:805,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:806,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:811,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:813,1
    - Dst: isxdigit
      Src: /src/nss/cmd/fipstest/fipstest.c:816,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:817,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:823,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:825,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:829,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:835,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:843,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:847,1
    - Dst: tdea_mct_test
      Src: /src/nss/cmd/fipstest/fipstest.c:852,1
    - Dst: tdea_mct_test
      Src: /src/nss/cmd/fipstest/fipstest.c:854,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:859,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:866,1
    - Dst: isxdigit
      Src: /src/nss/cmd/fipstest/fipstest.c:869,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:870,1
    - Dst: tdea_mct_test
      Src: /src/nss/cmd/fipstest/fipstest.c:875,1
    - Dst: tdea_mct_test
      Src: /src/nss/cmd/fipstest/fipstest.c:877,1
    - Dst: fclose
      Src: /src/nss/cmd/fipstest/fipstest.c:884,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 111
    argCount: 2
    argNames:
    - mode
    - reqfn
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 741
    functionDepth: 3
    functionLinenumber: 741
    functionLinenumberEnd: 885
    functionName: tdea_mct
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 0
    functionsReached:
    - tdea_mct_test
    - strncmp
    - isspace
    - fputs
    - isxdigit
    - fclose
    - fgets
    - hex_to_byteval
    - atoi
    - memset
    - fopen
    linkageType: ''
    returnType: void
    signature: void tdea_mct(int mode, char *reqfn)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: AES_CreateContext
      Src: /src/nss/cmd/fipstest/fipstest.c:900,1
    - Dst: AES_Encrypt
      Src: /src/nss/cmd/fipstest/fipstest.c:904,1
    - Dst: AES_DestroyContext
      Src: /src/nss/cmd/fipstest/fipstest.c:911,1
    - Dst: AES_CreateContext
      Src: /src/nss/cmd/fipstest/fipstest.c:918,1
    - Dst: AES_Decrypt
      Src: /src/nss/cmd/fipstest/fipstest.c:922,1
    - Dst: AES_DestroyContext
      Src: /src/nss/cmd/fipstest/fipstest.c:930,1
    - Dst: memcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:932,1
    - Dst: AES_DestroyContext
      Src: /src/nss/cmd/fipstest/fipstest.c:939,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 9
    argNames:
    - mode
    - key
    - keysize
    - iv
    - output
    - outputlen
    - maxoutputlen
    - input
    - inputlen
    argTypes:
    - int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 887
    functionDepth: 0
    functionLinenumber: 887
    functionLinenumberEnd: 942
    functionName: aes_encrypt_buf
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 1
    functionsReached:
    - AES_DestroyContext
    - AES_Decrypt
    - AES_Encrypt
    - memcmp
    - AES_CreateContext
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus aes_encrypt_buf(\n    int mode,\n    const unsigned char
      *key, unsigned int keysize,\n    const unsigned char *iv,\n    unsigned char
      *output, unsigned int *outputlen, unsigned int maxoutputlen,\n    const unsigned
      char *input, unsigned int inputlen)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: AES_CreateContext
      Src: /src/nss/cmd/fipstest/fipstest.c:957,1
    - Dst: AES_Decrypt
      Src: /src/nss/cmd/fipstest/fipstest.c:961,1
    - Dst: AES_DestroyContext
      Src: /src/nss/cmd/fipstest/fipstest.c:969,1
    - Dst: AES_CreateContext
      Src: /src/nss/cmd/fipstest/fipstest.c:976,1
    - Dst: AES_Encrypt
      Src: /src/nss/cmd/fipstest/fipstest.c:980,1
    - Dst: AES_DestroyContext
      Src: /src/nss/cmd/fipstest/fipstest.c:988,1
    - Dst: memcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:990,1
    - Dst: AES_DestroyContext
      Src: /src/nss/cmd/fipstest/fipstest.c:997,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 9
    argNames:
    - mode
    - key
    - keysize
    - iv
    - output
    - outputlen
    - maxoutputlen
    - input
    - inputlen
    argTypes:
    - int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 944
    functionDepth: 0
    functionLinenumber: 944
    functionLinenumberEnd: 1000
    functionName: aes_decrypt_buf
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 1
    functionsReached:
    - AES_DestroyContext
    - AES_Decrypt
    - AES_Encrypt
    - memcmp
    - AES_CreateContext
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus aes_decrypt_buf(\n    int mode,\n    const unsigned char
      *key, unsigned int keysize,\n    const unsigned char *iv,\n    unsigned char
      *output, unsigned int *outputlen, unsigned int maxoutputlen,\n    const unsigned
      char *input, unsigned int inputlen)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/nss/cmd/fipstest/fipstest.c:1033,1
    - Dst: fgets
      Src: /src/nss/cmd/fipstest/fipstest.c:1035,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1038,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:1043,1
    - Dst: sscanf
      Src: /src/nss/cmd/fipstest/fipstest.c:1044,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:1049,1
    - Dst: sscanf
      Src: /src/nss/cmd/fipstest/fipstest.c:1050,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1055,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:1059,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:1061,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:1063,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:1064,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:1066,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1068,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:1072,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:1074,1
    - Dst: isxdigit
      Src: /src/nss/cmd/fipstest/fipstest.c:1077,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:1078,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1081,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:1085,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:1087,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:1091,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1093,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:1097,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:1104,1
    - Dst: isxdigit
      Src: /src/nss/cmd/fipstest/fipstest.c:1107,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:1108,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1111,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:1115,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:1122,1
    - Dst: isxdigit
      Src: /src/nss/cmd/fipstest/fipstest.c:1125,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:1126,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1129,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:1132,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:1134,1
    - Dst: isxdigit
      Src: /src/nss/cmd/fipstest/fipstest.c:1137,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:1138,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1141,1
    - Dst: RNG_GenerateGlobalRandomBytes
      Src: /src/nss/cmd/fipstest/fipstest.c:1144,1
    - Dst: aes_encrypt_buf
      Src: /src/nss/cmd/fipstest/fipstest.c:1154,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1163,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:1164,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1165,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:1166,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1168,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:1170,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1171,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1172,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:1173,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1174,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:1175,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:1179,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:1186,1
    - Dst: isxdigit
      Src: /src/nss/cmd/fipstest/fipstest.c:1189,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:1190,1
    - Dst: aes_decrypt_buf
      Src: /src/nss/cmd/fipstest/fipstest.c:1198,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1202,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:1204,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1206,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:1207,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1208,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:1209,1
    - Dst: fclose
      Src: /src/nss/cmd/fipstest/fipstest.c:1215,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 171
    argCount: 2
    argNames:
    - reqfn
    - encrypt
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1216
      start: 1008
    functionDepth: 2
    functionLinenumber: 1008
    functionLinenumberEnd: 1216
    functionName: aes_gcm
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 0
    functionsReached:
    - strncmp
    - isspace
    - fputs
    - isxdigit
    - fputc
    - fclose
    - sscanf
    - fgets
    - hex_to_byteval
    - memset
    - aes_decrypt_buf
    - fopen
    - RNG_GenerateGlobalRandomBytes
    - fprintf
    - to_hex_str
    - aes_encrypt_buf
    linkageType: ''
    returnType: void
    signature: void aes_gcm(char *reqfn, int encrypt)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/nss/cmd/fipstest/fipstest.c:1250,1
    - Dst: fgets
      Src: /src/nss/cmd/fipstest/fipstest.c:1252,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1255,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:1260,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1265,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:1269,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:1272,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:1274,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:1275,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:1277,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1279,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:1283,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:1285,1
    - Dst: isxdigit
      Src: /src/nss/cmd/fipstest/fipstest.c:1288,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:1289,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1292,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:1296,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:1299,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:1303,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1305,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:1309,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:1316,1
    - Dst: isxdigit
      Src: /src/nss/cmd/fipstest/fipstest.c:1319,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:1320,1
    - Dst: aes_encrypt_buf
      Src: /src/nss/cmd/fipstest/fipstest.c:1324,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1335,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1336,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:1337,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1338,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:1339,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:1343,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:1350,1
    - Dst: isxdigit
      Src: /src/nss/cmd/fipstest/fipstest.c:1353,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:1354,1
    - Dst: aes_decrypt_buf
      Src: /src/nss/cmd/fipstest/fipstest.c:1358,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1369,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1370,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:1371,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1372,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:1373,1
    - Dst: fclose
      Src: /src/nss/cmd/fipstest/fipstest.c:1378,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 107
    argCount: 1
    argNames:
    - reqfn
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1379
      start: 1229
    functionDepth: 2
    functionLinenumber: 1229
    functionLinenumberEnd: 1379
    functionName: aes_kat_mmt
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 0
    functionsReached:
    - strncmp
    - isspace
    - fputs
    - isxdigit
    - fputc
    - fclose
    - fgets
    - hex_to_byteval
    - memset
    - aes_decrypt_buf
    - fopen
    - to_hex_str
    - aes_encrypt_buf
    linkageType: ''
    returnType: void
    signature: void aes_kat_mmt(char *reqfn)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 4
    argNames:
    - key
    - keysize
    - ciphertext_1
    - ciphertext
    argTypes:
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1420
      start: 1385
    functionDepth: 0
    functionLinenumber: 1385
    functionLinenumberEnd: 1420
    functionName: aes_mct_next_key
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void aes_mct_next_key(unsigned char *key, unsigned int keysize,\n
      \                const unsigned char *ciphertext_1, const unsigned char *ciphertext)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/nss/cmd/fipstest/fipstest.c:1458,1
    - Dst: fgets
      Src: /src/nss/cmd/fipstest/fipstest.c:1460,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1463,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:1468,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1473,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:1477,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:1479,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:1481,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:1482,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:1486,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:1489,1
    - Dst: isxdigit
      Src: /src/nss/cmd/fipstest/fipstest.c:1492,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:1493,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:1499,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:1506,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:1510,1
    - Dst: snprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:1514,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1515,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1517,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:1518,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1519,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:1520,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1522,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:1523,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1524,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:1525,1
    - Dst: AES_CreateContext
      Src: /src/nss/cmd/fipstest/fipstest.c:1527,1
    - Dst: AES_CreateContext
      Src: /src/nss/cmd/fipstest/fipstest.c:1536,1
    - Dst: memcpy
      Src: /src/nss/cmd/fipstest/fipstest.c:1543,1
    - Dst: AES_Encrypt
      Src: /src/nss/cmd/fipstest/fipstest.c:1547,1
    - Dst: AES_Decrypt
      Src: /src/nss/cmd/fipstest/fipstest.c:1559,1
    - Dst: memcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:1568,1
    - Dst: memcpy
      Src: /src/nss/cmd/fipstest/fipstest.c:1573,1
    - Dst: AES_DestroyContext
      Src: /src/nss/cmd/fipstest/fipstest.c:1575,1
    - Dst: AES_DestroyContext
      Src: /src/nss/cmd/fipstest/fipstest.c:1577,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1581,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:1582,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1583,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:1584,1
    - Dst: aes_mct_next_key
      Src: /src/nss/cmd/fipstest/fipstest.c:1587,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:1591,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:1597,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:1604,1
    - Dst: isxdigit
      Src: /src/nss/cmd/fipstest/fipstest.c:1607,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:1608,1
    - Dst: snprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:1612,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1613,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1615,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:1616,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1617,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:1618,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1620,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:1621,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1622,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:1623,1
    - Dst: AES_CreateContext
      Src: /src/nss/cmd/fipstest/fipstest.c:1625,1
    - Dst: AES_CreateContext
      Src: /src/nss/cmd/fipstest/fipstest.c:1634,1
    - Dst: memcpy
      Src: /src/nss/cmd/fipstest/fipstest.c:1641,1
    - Dst: AES_Decrypt
      Src: /src/nss/cmd/fipstest/fipstest.c:1645,1
    - Dst: AES_Encrypt
      Src: /src/nss/cmd/fipstest/fipstest.c:1657,1
    - Dst: memcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:1666,1
    - Dst: memcpy
      Src: /src/nss/cmd/fipstest/fipstest.c:1671,1
    - Dst: AES_DestroyContext
      Src: /src/nss/cmd/fipstest/fipstest.c:1673,1
    - Dst: AES_DestroyContext
      Src: /src/nss/cmd/fipstest/fipstest.c:1675,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1679,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:1680,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1681,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:1682,1
    - Dst: aes_mct_next_key
      Src: /src/nss/cmd/fipstest/fipstest.c:1685,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:1689,1
    - Dst: AES_DestroyContext
      Src: /src/nss/cmd/fipstest/fipstest.c:1697,1
    - Dst: AES_DestroyContext
      Src: /src/nss/cmd/fipstest/fipstest.c:1700,1
    - Dst: fclose
      Src: /src/nss/cmd/fipstest/fipstest.c:1702,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 193
    argCount: 1
    argNames:
    - reqfn
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1703
      start: 1433
    functionDepth: 2
    functionLinenumber: 1433
    functionLinenumberEnd: 1703
    functionName: aes_ecb_mct
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 0
    functionsReached:
    - fputs
    - AES_Decrypt
    - to_hex_str
    - memcpy
    - hex_to_byteval
    - memset
    - fopen
    - snprintf
    - memcmp
    - AES_CreateContext
    - isspace
    - isxdigit
    - fclose
    - AES_Encrypt
    - strncmp
    - fputc
    - fgets
    - aes_mct_next_key
    - AES_DestroyContext
    linkageType: ''
    returnType: void
    signature: void aes_ecb_mct(char *reqfn)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/nss/cmd/fipstest/fipstest.c:1742,1
    - Dst: fgets
      Src: /src/nss/cmd/fipstest/fipstest.c:1744,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1747,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:1752,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1757,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:1761,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:1763,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:1765,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:1766,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:1767,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:1771,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:1774,1
    - Dst: isxdigit
      Src: /src/nss/cmd/fipstest/fipstest.c:1777,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:1778,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:1784,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:1787,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:1791,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:1796,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:1803,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:1807,1
    - Dst: snprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:1811,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1812,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1814,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:1815,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1816,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:1817,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1819,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:1820,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1821,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:1822,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1824,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:1825,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1826,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:1827,1
    - Dst: AES_CreateContext
      Src: /src/nss/cmd/fipstest/fipstest.c:1829,1
    - Dst: AES_CreateContext
      Src: /src/nss/cmd/fipstest/fipstest.c:1838,1
    - Dst: memcpy
      Src: /src/nss/cmd/fipstest/fipstest.c:1844,1
    - Dst: memcpy
      Src: /src/nss/cmd/fipstest/fipstest.c:1847,1
    - Dst: AES_Encrypt
      Src: /src/nss/cmd/fipstest/fipstest.c:1857,1
    - Dst: AES_Decrypt
      Src: /src/nss/cmd/fipstest/fipstest.c:1869,1
    - Dst: memcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:1878,1
    - Dst: memcpy
      Src: /src/nss/cmd/fipstest/fipstest.c:1882,1
    - Dst: AES_DestroyContext
      Src: /src/nss/cmd/fipstest/fipstest.c:1884,1
    - Dst: AES_DestroyContext
      Src: /src/nss/cmd/fipstest/fipstest.c:1886,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1890,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:1891,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1892,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:1893,1
    - Dst: aes_mct_next_key
      Src: /src/nss/cmd/fipstest/fipstest.c:1896,1
    - Dst: memcpy
      Src: /src/nss/cmd/fipstest/fipstest.c:1898,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:1902,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:1908,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:1915,1
    - Dst: isxdigit
      Src: /src/nss/cmd/fipstest/fipstest.c:1918,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:1919,1
    - Dst: snprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:1923,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1924,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1926,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:1927,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1928,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:1929,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1931,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:1932,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1933,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:1934,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1936,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:1937,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:1938,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:1939,1
    - Dst: AES_CreateContext
      Src: /src/nss/cmd/fipstest/fipstest.c:1941,1
    - Dst: AES_CreateContext
      Src: /src/nss/cmd/fipstest/fipstest.c:1950,1
    - Dst: memcpy
      Src: /src/nss/cmd/fipstest/fipstest.c:1956,1
    - Dst: memcpy
      Src: /src/nss/cmd/fipstest/fipstest.c:1959,1
    - Dst: AES_Decrypt
      Src: /src/nss/cmd/fipstest/fipstest.c:1969,1
    - Dst: AES_Encrypt
      Src: /src/nss/cmd/fipstest/fipstest.c:1981,1
    - Dst: memcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:1990,1
    - Dst: memcpy
      Src: /src/nss/cmd/fipstest/fipstest.c:1994,1
    - Dst: AES_DestroyContext
      Src: /src/nss/cmd/fipstest/fipstest.c:1996,1
    - Dst: AES_DestroyContext
      Src: /src/nss/cmd/fipstest/fipstest.c:1998,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:2002,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:2003,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:2004,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:2005,1
    - Dst: aes_mct_next_key
      Src: /src/nss/cmd/fipstest/fipstest.c:2008,1
    - Dst: memcpy
      Src: /src/nss/cmd/fipstest/fipstest.c:2010,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:2014,1
    - Dst: AES_DestroyContext
      Src: /src/nss/cmd/fipstest/fipstest.c:2022,1
    - Dst: AES_DestroyContext
      Src: /src/nss/cmd/fipstest/fipstest.c:2025,1
    - Dst: fclose
      Src: /src/nss/cmd/fipstest/fipstest.c:2027,1
    CyclomaticComplexity: 67
    EdgeCount: 67
    ICount: 216
    argCount: 1
    argNames:
    - reqfn
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2028
      start: 1716
    functionDepth: 2
    functionLinenumber: 1716
    functionLinenumberEnd: 2028
    functionName: aes_cbc_mct
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 0
    functionsReached:
    - fputs
    - AES_Decrypt
    - to_hex_str
    - memcpy
    - hex_to_byteval
    - memset
    - fopen
    - snprintf
    - memcmp
    - AES_CreateContext
    - isspace
    - isxdigit
    - fclose
    - AES_Encrypt
    - strncmp
    - fputc
    - fgets
    - aes_mct_next_key
    - AES_DestroyContext
    linkageType: ''
    returnType: void
    signature: void aes_cbc_mct(char *reqfn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ftell
      Src: /src/nss/cmd/fipstest/fipstest.c:2035,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:2040,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:2047,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:2056,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:2063,1
    - Dst: fseek
      Src: /src/nss/cmd/fipstest/fipstest.c:2064,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:2065,1
    - Dst: fseek
      Src: /src/nss/cmd/fipstest/fipstest.c:2066,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 3
    argNames:
    - out
    - hash
    - len
    argTypes:
    - FILE*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2067
      start: 2030
    functionDepth: 0
    functionLinenumber: 2030
    functionLinenumberEnd: 2067
    functionName: write_compact_string
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 0
    functionsReached:
    - fprintf
    - fseek
    - ftell
    linkageType: ''
    returnType: void
    signature: void write_compact_string(FILE *out, unsigned char *hash, unsigned
      int len)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fgetc
      Src: /src/nss/cmd/fipstest/fipstest.c:2076,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:2078,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:2085,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 4
    argNames:
    - req
    - key
    - val
    - rsp
    argTypes:
    - FILE*
    - char*
    - char*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2098
      start: 2069
    functionDepth: 0
    functionLinenumber: 2069
    functionLinenumberEnd: 2098
    functionName: get_next_line
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 0
    functionsReached:
    - fprintf
    - fgetc
    linkageType: ''
    returnType: int
    signature: int get_next_line(FILE *req, char *key, char *val, FILE *rsp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PL_strcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:2201,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/cmd/fipstest/fipstest.c:2208,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:2209,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/fipstest/fipstest.c:2213,1
    - Dst: memcpy
      Src: /src/nss/cmd/fipstest/fipstest.c:2222,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - curve
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2225
      start: 2189
    functionDepth: 1
    functionLinenumber: 2189
    functionLinenumberEnd: 2225
    functionName: getECParams
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 2
    functionsReached:
    - memcpy
    - SECOID_FindOIDByTag
    - SECITEM_AllocItem
    - fprintf
    - PL_strcmp
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      getECParams(const char *curve)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SHA1_HashBuf
      Src: /src/nss/cmd/fipstest/fipstest.c:2240,1
    - Dst: SHA224_HashBuf
      Src: /src/nss/cmd/fipstest/fipstest.c:2243,1
    - Dst: SHA256_HashBuf
      Src: /src/nss/cmd/fipstest/fipstest.c:2246,1
    - Dst: SHA384_HashBuf
      Src: /src/nss/cmd/fipstest/fipstest.c:2249,1
    - Dst: SHA512_HashBuf
      Src: /src/nss/cmd/fipstest/fipstest.c:2252,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 4
    argNames:
    - type
    - hashBuf
    - msg
    - len
    argTypes:
    - HASH_HashType
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2258
      start: 2232
    functionDepth: 0
    functionLinenumber: 2232
    functionLinenumberEnd: 2258
    functionName: fips_hashBuf
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 0
    functionsReached:
    - SHA384_HashBuf
    - SHA512_HashBuf
    - SHA256_HashBuf
    - SHA224_HashBuf
    - SHA1_HashBuf
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus fips_hashBuf(HASH_HashType type, unsigned char *hashBuf,\n
      \            unsigned char *msg, int len)"
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - type
    argTypes:
    - HASH_HashType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2285
      start: 2260
    functionDepth: 0
    functionLinenumber: 2260
    functionLinenumberEnd: 2285
    functionName: fips_hashLen
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fips_hashLen(HASH_HashType type)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - type
    argTypes:
    - HASH_HashType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2312
      start: 2287
    functionDepth: 0
    functionLinenumber: 2287
    functionLinenumberEnd: 2312
    functionName: fips_hashOid
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag fips_hashOid(HASH_HashType type)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - hashbits
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2340
      start: 2314
    functionDepth: 0
    functionLinenumber: 2314
    functionLinenumberEnd: 2340
    functionName: sha_get_hashType
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: HASH_HashType
    signature: HASH_HashType sha_get_hashType(int hashbits)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:2346,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:2348,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:2350,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:2352,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:2354,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:2356,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:2358,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:2360,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:2362,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:2364,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - src
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2368
      start: 2342
    functionDepth: 0
    functionLinenumber: 2342
    functionLinenumberEnd: 2368
    functionName: hash_string_to_hashType
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 0
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: HASH_HashType
    signature: HASH_HashType hash_string_to_hashType(const char *src)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/nss/cmd/fipstest/fipstest.c:2393,1
    - Dst: strcpy
      Src: /src/nss/cmd/fipstest/fipstest.c:2395,1
    - Dst: fgets
      Src: /src/nss/cmd/fipstest/fipstest.c:2396,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:2399,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:2409,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/fipstest/fipstest.c:2413,1
    - Dst: tolower
      Src: /src/nss/cmd/fipstest/fipstest.c:2419,1
    - Dst: getECParams
      Src: /src/nss/cmd/fipstest/fipstest.c:2425,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:2427,1
    - Dst: EC_DecodeParams
      Src: /src/nss/cmd/fipstest/fipstest.c:2430,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:2431,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/fipstest/fipstest.c:2434,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:2435,1
    - Dst: sscanf
      Src: /src/nss/cmd/fipstest/fipstest.c:2440,1
    - Dst: EC_NewKey
      Src: /src/nss/cmd/fipstest/fipstest.c:2446,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:2449,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:2450,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:2452,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:2453,1
    - Dst: EC_ValidatePublicKey
      Src: /src/nss/cmd/fipstest/fipstest.c:2454,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:2467,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:2468,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:2469,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:2470,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:2471,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:2472,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:2473,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:2474,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:2475,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/fipstest/fipstest.c:2476,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/fipstest/fipstest.c:2483,1
    - Dst: fclose
      Src: /src/nss/cmd/fipstest/fipstest.c:2486,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 90
    argCount: 1
    argNames:
    - reqfn
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2487
      start: 2377
    functionDepth: 2
    functionLinenumber: 2377
    functionLinenumberEnd: 2487
    functionName: ecdsa_keypair_test
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 0
    functionsReached:
    - EC_ValidatePublicKey
    - fclose
    - fputs
    - tolower
    - fputc
    - PORT_FreeArena
    - sscanf
    - fgets
    - strcpy
    - EC_DecodeParams
    - getECParams
    - fprintf
    - fopen
    - EC_NewKey
    - to_hex_str
    - SECITEM_FreeItem
    linkageType: ''
    returnType: void
    signature: void ecdsa_keypair_test(char *reqfn)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/nss/cmd/fipstest/fipstest.c:2512,1
    - Dst: strcpy
      Src: /src/nss/cmd/fipstest/fipstest.c:2514,1
    - Dst: fgets
      Src: /src/nss/cmd/fipstest/fipstest.c:2516,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:2519,1
    - Dst: tolower
      Src: /src/nss/cmd/fipstest/fipstest.c:2530,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/fipstest/fipstest.c:2537,1
    - Dst: getECParams
      Src: /src/nss/cmd/fipstest/fipstest.c:2540,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:2542,1
    - Dst: EC_DecodeParams
      Src: /src/nss/cmd/fipstest/fipstest.c:2545,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:2546,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/fipstest/fipstest.c:2549,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/fipstest/fipstest.c:2552,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/fipstest/fipstest.c:2555,1
    - Dst: EC_GetPointSize
      Src: /src/nss/cmd/fipstest/fipstest.c:2555,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:2560,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:2564,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:2565,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:2567,1
    - Dst: from_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:2570,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:2574,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:2575,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:2577,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:2581,1
    - Dst: from_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:2584,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:2586,1
    - Dst: EC_ValidatePublicKey
      Src: /src/nss/cmd/fipstest/fipstest.c:2589,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:2590,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/fipstest/fipstest.c:2591,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:2592,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/fipstest/fipstest.c:2601,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/fipstest/fipstest.c:2604,1
    - Dst: fclose
      Src: /src/nss/cmd/fipstest/fipstest.c:2606,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 94
    argCount: 1
    argNames:
    - reqfn
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2607
      start: 2496
    functionDepth: 1
    functionLinenumber: 2496
    functionLinenumberEnd: 2607
    functionName: ecdsa_pkv_test
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 0
    functionsReached:
    - fputs
    - EC_DecodeParams
    - fprintf
    - EC_GetPointSize
    - strcpy
    - fopen
    - SECITEM_FreeItem
    - EC_ValidatePublicKey
    - isspace
    - fclose
    - tolower
    - PORT_FreeArena
    - SECITEM_AllocItem
    - strncmp
    - PORT_Free
    - fgets
    - PORT_GetError
    - getECParams
    - from_hex_str
    linkageType: ''
    returnType: void
    signature: void ecdsa_pkv_test(char *reqfn)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/nss/cmd/fipstest/fipstest.c:2638,1
    - Dst: strcpy
      Src: /src/nss/cmd/fipstest/fipstest.c:2640,1
    - Dst: fgets
      Src: /src/nss/cmd/fipstest/fipstest.c:2641,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:2644,1
    - Dst: tolower
      Src: /src/nss/cmd/fipstest/fipstest.c:2655,1
    - Dst: hash_string_to_hashType
      Src: /src/nss/cmd/fipstest/fipstest.c:2663,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:2665,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/fipstest/fipstest.c:2669,1
    - Dst: getECParams
      Src: /src/nss/cmd/fipstest/fipstest.c:2672,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:2674,1
    - Dst: EC_DecodeParams
      Src: /src/nss/cmd/fipstest/fipstest.c:2677,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:2678,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/fipstest/fipstest.c:2681,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:2682,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:2686,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:2690,1
    - Dst: isxdigit
      Src: /src/nss/cmd/fipstest/fipstest.c:2693,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:2694,1
    - Dst: fips_hashLen
      Src: /src/nss/cmd/fipstest/fipstest.c:2697,1
    - Dst: fips_hashBuf
      Src: /src/nss/cmd/fipstest/fipstest.c:2698,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:2700,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:2702,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:2706,1
    - Dst: EC_NewKey
      Src: /src/nss/cmd/fipstest/fipstest.c:2708,1
    - Dst: EC_ValidatePublicKey
      Src: /src/nss/cmd/fipstest/fipstest.c:2711,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:2723,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:2724,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:2725,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:2726,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:2727,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:2728,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:2729,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:2730,1
    - Dst: ECDSA_SignDigest
      Src: /src/nss/cmd/fipstest/fipstest.c:2738,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:2746,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:2747,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:2748,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:2749,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:2750,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:2751,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:2752,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:2753,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/fipstest/fipstest.c:2755,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/fipstest/fipstest.c:2761,1
    - Dst: fclose
      Src: /src/nss/cmd/fipstest/fipstest.c:2763,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 123
    argCount: 1
    argNames:
    - reqfn
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2764
      start: 2616
    functionDepth: 2
    functionLinenumber: 2616
    functionLinenumberEnd: 2764
    functionName: ecdsa_siggen_test
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 0
    functionsReached:
    - hash_string_to_hashType
    - fputs
    - EC_DecodeParams
    - fprintf
    - EC_NewKey
    - to_hex_str
    - hex_to_byteval
    - strcpy
    - fopen
    - fips_hashBuf
    - SECITEM_FreeItem
    - EC_ValidatePublicKey
    - isspace
    - isxdigit
    - fclose
    - tolower
    - fips_hashLen
    - PORT_FreeArena
    - strncmp
    - fputc
    - ECDSA_SignDigest
    - fgets
    - getECParams
    linkageType: ''
    returnType: void
    signature: void ecdsa_siggen_test(char *reqfn)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/nss/cmd/fipstest/fipstest.c:2797,1
    - Dst: strcpy
      Src: /src/nss/cmd/fipstest/fipstest.c:2800,1
    - Dst: fgets
      Src: /src/nss/cmd/fipstest/fipstest.c:2801,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:2804,1
    - Dst: tolower
      Src: /src/nss/cmd/fipstest/fipstest.c:2816,1
    - Dst: hash_string_to_hashType
      Src: /src/nss/cmd/fipstest/fipstest.c:2824,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:2826,1
    - Dst: getECParams
      Src: /src/nss/cmd/fipstest/fipstest.c:2829,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:2831,1
    - Dst: EC_DecodeParams
      Src: /src/nss/cmd/fipstest/fipstest.c:2834,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:2835,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/fipstest/fipstest.c:2838,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/fipstest/fipstest.c:2840,1
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/fipstest/fipstest.c:2842,1
    - Dst: EC_CopyParams
      Src: /src/nss/cmd/fipstest/fipstest.c:2846,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/fipstest/fipstest.c:2850,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/fipstest/fipstest.c:2859,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:2865,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:2869,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:2871,1
    - Dst: isxdigit
      Src: /src/nss/cmd/fipstest/fipstest.c:2874,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:2875,1
    - Dst: fips_hashLen
      Src: /src/nss/cmd/fipstest/fipstest.c:2878,1
    - Dst: fips_hashBuf
      Src: /src/nss/cmd/fipstest/fipstest.c:2879,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:2881,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:2883,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:2887,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:2896,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:2897,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:2899,1
    - Dst: from_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:2902,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:2907,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:2908,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:2913,1
    - Dst: from_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:2916,1
    - Dst: EC_ValidatePublicKey
      Src: /src/nss/cmd/fipstest/fipstest.c:2921,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/fipstest/fipstest.c:2923,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:2933,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:2935,1
    - Dst: from_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:2938,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:2943,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:2945,1
    - Dst: from_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:2949,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:2956,1
    - Dst: ECDSA_VerifyDigest
      Src: /src/nss/cmd/fipstest/fipstest.c:2957,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:2959,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:2961,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/fipstest/fipstest.c:2968,1
    - Dst: fclose
      Src: /src/nss/cmd/fipstest/fipstest.c:2970,1
    CyclomaticComplexity: 57
    EdgeCount: 57
    ICount: 163
    argCount: 1
    argNames:
    - reqfn
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2971
      start: 2773
    functionDepth: 1
    functionLinenumber: 2773
    functionLinenumberEnd: 2971
    functionName: ecdsa_sigver_test
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 0
    functionsReached:
    - hash_string_to_hashType
    - fputs
    - EC_DecodeParams
    - fprintf
    - ECDSA_VerifyDigest
    - PORT_NewArena
    - hex_to_byteval
    - strcpy
    - fopen
    - fips_hashBuf
    - SECITEM_FreeItem
    - EC_ValidatePublicKey
    - isspace
    - isxdigit
    - fclose
    - tolower
    - fips_hashLen
    - PORT_FreeArena
    - SECITEM_AllocItem
    - strncmp
    - fgets
    - PORT_GetError
    - getECParams
    - EC_CopyParams
    - from_hex_str
    linkageType: ''
    returnType: void
    signature: void ecdsa_sigver_test(char *reqfn)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/nss/cmd/fipstest/fipstest.c:3003,1
    - Dst: strcpy
      Src: /src/nss/cmd/fipstest/fipstest.c:3005,1
    - Dst: fgets
      Src: /src/nss/cmd/fipstest/fipstest.c:3007,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3010,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3017,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:3021,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:3027,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:3036,1
    - Dst: tolower
      Src: /src/nss/cmd/fipstest/fipstest.c:3045,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/fipstest/fipstest.c:3052,1
    - Dst: getECParams
      Src: /src/nss/cmd/fipstest/fipstest.c:3055,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:3057,1
    - Dst: EC_DecodeParams
      Src: /src/nss/cmd/fipstest/fipstest.c:3060,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:3061,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/fipstest/fipstest.c:3064,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3065,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:3073,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:3078,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:3087,1
    - Dst: hash_string_to_hashType
      Src: /src/nss/cmd/fipstest/fipstest.c:3095,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:3097,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3100,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3103,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:3107,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3108,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:3110,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/fipstest/fipstest.c:3116,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/fipstest/fipstest.c:3119,1
    - Dst: EC_GetPointSize
      Src: /src/nss/cmd/fipstest/fipstest.c:3119,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:3127,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3128,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:3130,1
    - Dst: from_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:3133,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:3137,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3138,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:3140,1
    - Dst: from_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:3143,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:3145,1
    - Dst: EC_ValidatePublicKey
      Src: /src/nss/cmd/fipstest/fipstest.c:3149,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:3150,1
    - Dst: EC_NewKey
      Src: /src/nss/cmd/fipstest/fipstest.c:3155,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:3156,1
    - Dst: EC_ValidatePublicKey
      Src: /src/nss/cmd/fipstest/fipstest.c:3160,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:3162,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:3168,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:3173,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3176,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:3177,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3178,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:3179,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3180,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:3181,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3182,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:3183,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3184,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:3185,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3186,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:3187,1
    - Dst: ECDH_Derive
      Src: /src/nss/cmd/fipstest/fipstest.c:3189,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:3191,1
    - Dst: fips_hashBuf
      Src: /src/nss/cmd/fipstest/fipstest.c:3195,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:3196,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/fipstest/fipstest.c:3199,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3200,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:3201,1
    - Dst: fips_hashLen
      Src: /src/nss/cmd/fipstest/fipstest.c:3201,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3202,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:3203,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:3204,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/fipstest/fipstest.c:3205,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/fipstest/fipstest.c:3212,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/fipstest/fipstest.c:3216,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/fipstest/fipstest.c:3221,1
    - Dst: fclose
      Src: /src/nss/cmd/fipstest/fipstest.c:3223,1
    CyclomaticComplexity: 77
    EdgeCount: 77
    ICount: 211
    argCount: 2
    argNames:
    - reqfn
    - response
    argTypes:
    - char*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3224
      start: 2981
    functionDepth: 2
    functionLinenumber: 2981
    functionLinenumberEnd: 3224
    functionName: ecdh_functional
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 0
    functionsReached:
    - hash_string_to_hashType
    - fputs
    - EC_DecodeParams
    - fprintf
    - EC_GetPointSize
    - EC_NewKey
    - to_hex_str
    - strcpy
    - fopen
    - fips_hashBuf
    - SECITEM_FreeItem
    - EC_ValidatePublicKey
    - isspace
    - fclose
    - tolower
    - fips_hashLen
    - PORT_FreeArena
    - SECITEM_AllocItem
    - strncmp
    - ECDH_Derive
    - fputc
    - PORT_Free
    - fgets
    - getECParams
    - from_hex_str
    linkageType: ''
    returnType: void
    signature: void ecdh_functional(char *reqfn, PRBool response)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/nss/cmd/fipstest/fipstest.c:3256,1
    - Dst: strcpy
      Src: /src/nss/cmd/fipstest/fipstest.c:3258,1
    - Dst: fgets
      Src: /src/nss/cmd/fipstest/fipstest.c:3260,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3263,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3270,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:3274,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:3280,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:3289,1
    - Dst: tolower
      Src: /src/nss/cmd/fipstest/fipstest.c:3298,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/fipstest/fipstest.c:3305,1
    - Dst: getECParams
      Src: /src/nss/cmd/fipstest/fipstest.c:3308,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:3310,1
    - Dst: EC_DecodeParams
      Src: /src/nss/cmd/fipstest/fipstest.c:3313,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:3314,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/fipstest/fipstest.c:3317,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3318,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:3326,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:3331,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:3340,1
    - Dst: hash_string_to_hashType
      Src: /src/nss/cmd/fipstest/fipstest.c:3348,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:3350,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3353,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3356,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:3360,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3361,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:3363,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/fipstest/fipstest.c:3369,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/fipstest/fipstest.c:3372,1
    - Dst: EC_GetPointSize
      Src: /src/nss/cmd/fipstest/fipstest.c:3372,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:3380,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3381,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:3383,1
    - Dst: from_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:3386,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:3390,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3391,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:3393,1
    - Dst: from_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:3396,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:3399,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3400,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:3402,1
    - Dst: from_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:3405,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:3410,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3411,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:3414,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3415,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:3418,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:3419,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3420,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:3422,1
    - Dst: from_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:3425,1
    - Dst: fips_hashLen
      Src: /src/nss/cmd/fipstest/fipstest.c:3425,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:3427,1
    - Dst: EC_ValidatePublicKey
      Src: /src/nss/cmd/fipstest/fipstest.c:3431,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:3433,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:3435,1
    - Dst: ECDH_Derive
      Src: /src/nss/cmd/fipstest/fipstest.c:3441,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:3444,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:3446,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3452,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:3453,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3454,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:3455,1
    - Dst: fips_hashBuf
      Src: /src/nss/cmd/fipstest/fipstest.c:3458,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:3459,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/fipstest/fipstest.c:3462,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3464,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:3465,1
    - Dst: fips_hashLen
      Src: /src/nss/cmd/fipstest/fipstest.c:3465,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3466,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:3467,1
    - Dst: memcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:3469,1
    - Dst: fips_hashLen
      Src: /src/nss/cmd/fipstest/fipstest.c:3469,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:3471,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:3473,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:3476,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:3479,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/fipstest/fipstest.c:3487,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/fipstest/fipstest.c:3492,1
    - Dst: fclose
      Src: /src/nss/cmd/fipstest/fipstest.c:3494,1
    CyclomaticComplexity: 82
    EdgeCount: 82
    ICount: 210
    argCount: 2
    argNames:
    - reqfn
    - response
    argTypes:
    - char*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3495
      start: 3233
    functionDepth: 2
    functionLinenumber: 3233
    functionLinenumberEnd: 3495
    functionName: ecdh_verify
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 0
    functionsReached:
    - hash_string_to_hashType
    - fputs
    - EC_DecodeParams
    - fprintf
    - EC_GetPointSize
    - to_hex_str
    - strcpy
    - fopen
    - fips_hashBuf
    - memcmp
    - SECITEM_FreeItem
    - EC_ValidatePublicKey
    - isspace
    - fclose
    - tolower
    - fips_hashLen
    - PORT_FreeArena
    - SECITEM_AllocItem
    - strncmp
    - ECDH_Derive
    - fputc
    - PORT_Free
    - fgets
    - getECParams
    - from_hex_str
    linkageType: ''
    returnType: void
    signature: void ecdh_verify(char *reqfn, PRBool response)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/nss/cmd/fipstest/fipstest.c:3524,1
    - Dst: fgets
      Src: /src/nss/cmd/fipstest/fipstest.c:3526,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3529,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:3541,1
    - Dst: hash_string_to_hashType
      Src: /src/nss/cmd/fipstest/fipstest.c:3548,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:3550,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/cmd/fipstest/fipstest.c:3555,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/cmd/fipstest/fipstest.c:3558,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/cmd/fipstest/fipstest.c:3561,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/fipstest/fipstest.c:3564,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/fipstest/fipstest.c:3565,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/fipstest/fipstest.c:3569,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3571,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3574,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:3579,1
    - Dst: isxdigit
      Src: /src/nss/cmd/fipstest/fipstest.c:3583,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:3587,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3590,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:3597,1
    - Dst: isxdigit
      Src: /src/nss/cmd/fipstest/fipstest.c:3601,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:3605,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3608,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:3615,1
    - Dst: isxdigit
      Src: /src/nss/cmd/fipstest/fipstest.c:3619,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:3623,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3626,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:3631,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3632,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:3637,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3638,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:3640,1
    - Dst: from_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:3643,1
    - Dst: DSA_NewKey
      Src: /src/nss/cmd/fipstest/fipstest.c:3649,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:3650,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3653,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:3654,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3655,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:3656,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3657,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:3658,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3659,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:3660,1
    - Dst: DH_Derive
      Src: /src/nss/cmd/fipstest/fipstest.c:3662,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:3664,1
    - Dst: fips_hashBuf
      Src: /src/nss/cmd/fipstest/fipstest.c:3668,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:3669,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/fipstest/fipstest.c:3672,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3673,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:3674,1
    - Dst: fips_hashLen
      Src: /src/nss/cmd/fipstest/fipstest.c:3674,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3675,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:3676,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:3677,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/fipstest/fipstest.c:3678,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/fipstest/fipstest.c:3685,1
    - Dst: fclose
      Src: /src/nss/cmd/fipstest/fipstest.c:3687,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 146
    argCount: 2
    argNames:
    - reqfn
    - response
    argTypes:
    - char*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3688
      start: 3505
    functionDepth: 2
    functionLinenumber: 3505
    functionLinenumberEnd: 3688
    functionName: dh_functional
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 0
    functionsReached:
    - hash_string_to_hashType
    - fputs
    - fprintf
    - DH_Derive
    - to_hex_str
    - hex_to_byteval
    - fopen
    - fips_hashBuf
    - SECITEM_FreeItem
    - isspace
    - isxdigit
    - fclose
    - DSA_NewKey
    - fips_hashLen
    - PORT_FreeArena
    - SECITEM_AllocItem
    - SECITEM_ZfreeItem
    - strncmp
    - fputc
    - fgets
    - from_hex_str
    linkageType: ''
    returnType: void
    signature: void dh_functional(char *reqfn, PRBool response)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/nss/cmd/fipstest/fipstest.c:3718,1
    - Dst: fgets
      Src: /src/nss/cmd/fipstest/fipstest.c:3720,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3723,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:3735,1
    - Dst: hash_string_to_hashType
      Src: /src/nss/cmd/fipstest/fipstest.c:3742,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:3744,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/cmd/fipstest/fipstest.c:3749,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/cmd/fipstest/fipstest.c:3752,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/cmd/fipstest/fipstest.c:3755,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/fipstest/fipstest.c:3758,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/fipstest/fipstest.c:3759,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/fipstest/fipstest.c:3763,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3765,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3768,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:3773,1
    - Dst: isxdigit
      Src: /src/nss/cmd/fipstest/fipstest.c:3777,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:3781,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3784,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:3791,1
    - Dst: isxdigit
      Src: /src/nss/cmd/fipstest/fipstest.c:3795,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:3799,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3802,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:3809,1
    - Dst: isxdigit
      Src: /src/nss/cmd/fipstest/fipstest.c:3813,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:3817,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3820,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:3825,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3826,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:3831,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3832,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:3834,1
    - Dst: from_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:3837,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:3843,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3844,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:3846,1
    - Dst: from_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:3849,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:3855,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3856,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:3860,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:3861,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3862,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:3864,1
    - Dst: from_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:3867,1
    - Dst: fips_hashLen
      Src: /src/nss/cmd/fipstest/fipstest.c:3867,1
    - Dst: DH_Derive
      Src: /src/nss/cmd/fipstest/fipstest.c:3869,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:3871,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3876,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:3877,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3878,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:3879,1
    - Dst: fips_hashBuf
      Src: /src/nss/cmd/fipstest/fipstest.c:3881,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:3882,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/fipstest/fipstest.c:3885,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3887,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:3888,1
    - Dst: fips_hashLen
      Src: /src/nss/cmd/fipstest/fipstest.c:3888,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3889,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:3890,1
    - Dst: memcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:3892,1
    - Dst: fips_hashLen
      Src: /src/nss/cmd/fipstest/fipstest.c:3892,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:3893,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:3895,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:3898,1
    - Dst: fclose
      Src: /src/nss/cmd/fipstest/fipstest.c:3904,1
    CyclomaticComplexity: 64
    EdgeCount: 64
    ICount: 161
    argCount: 2
    argNames:
    - reqfn
    - response
    argTypes:
    - char*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3905
      start: 3697
    functionDepth: 2
    functionLinenumber: 3697
    functionLinenumberEnd: 3905
    functionName: dh_verify
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 0
    functionsReached:
    - hash_string_to_hashType
    - fputs
    - fprintf
    - DH_Derive
    - to_hex_str
    - hex_to_byteval
    - fopen
    - fips_hashBuf
    - memcmp
    - SECITEM_FreeItem
    - isspace
    - isxdigit
    - fclose
    - fips_hashLen
    - SECITEM_AllocItem
    - SECITEM_ZfreeItem
    - strncmp
    - fputc
    - fgets
    - from_hex_str
    linkageType: ''
    returnType: void
    signature: void dh_verify(char *reqfn, PRBool response)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:3910,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - b
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3916
      start: 3907
    functionDepth: 1
    functionLinenumber: 3907
    functionLinenumberEnd: 3916
    functionName: isblankline
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 0
    functionsReached:
    - isspace
    linkageType: ''
    returnType: PRBool
    signature: PRBool isblankline(char *b)
  - BBCount: 67
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/nss/cmd/fipstest/fipstest.c:3961,1
    - Dst: fgets
      Src: /src/nss/cmd/fipstest/fipstest.c:3963,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3967,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:3968,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3969,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:3970,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:3971,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3972,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:3973,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:3974,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3976,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:3977,1
    - Dst: PRNGTEST_Instantiate
      Src: /src/nss/cmd/fipstest/fipstest.c:3979,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:3990,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3992,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:3993,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:3994,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:3995,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:3996,1
    - Dst: PRNGTEST_Generate
      Src: /src/nss/cmd/fipstest/fipstest.c:3998,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4007,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:4008,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4009,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:4010,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4012,1
    - Dst: PRNGTEST_Uninstantiate
      Src: /src/nss/cmd/fipstest/fipstest.c:4014,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4019,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:4020,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4021,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:4022,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:4025,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4031,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:4032,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:4033,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4034,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:4035,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:4036,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4037,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:4038,1
    - Dst: PRNGTEST_Reseed
      Src: /src/nss/cmd/fipstest/fipstest.c:4040,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:4046,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:4047,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4056,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:4061,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4062,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:4066,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:4069,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:4072,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4079,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:4083,1
    - Dst: PORT_ZFree
      Src: /src/nss/cmd/fipstest/fipstest.c:4085,1
    - Dst: PORT_ZFree
      Src: /src/nss/cmd/fipstest/fipstest.c:4089,1
    - Dst: sscanf
      Src: /src/nss/cmd/fipstest/fipstest.c:4093,1
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/fipstest/fipstest.c:4098,1
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/fipstest/fipstest.c:4099,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4101,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:4105,1
    - Dst: PORT_ZFree
      Src: /src/nss/cmd/fipstest/fipstest.c:4107,1
    - Dst: sscanf
      Src: /src/nss/cmd/fipstest/fipstest.c:4111,1
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/fipstest/fipstest.c:4116,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4118,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:4122,1
    - Dst: PORT_ZFree
      Src: /src/nss/cmd/fipstest/fipstest.c:4124,1
    - Dst: sscanf
      Src: /src/nss/cmd/fipstest/fipstest.c:4129,1
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/fipstest/fipstest.c:4134,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4136,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:4140,1
    - Dst: PORT_ZFree
      Src: /src/nss/cmd/fipstest/fipstest.c:4142,1
    - Dst: sscanf
      Src: /src/nss/cmd/fipstest/fipstest.c:4147,1
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/fipstest/fipstest.c:4152,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4154,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:4159,1
    - Dst: PORT_ZFree
      Src: /src/nss/cmd/fipstest/fipstest.c:4161,1
    - Dst: sscanf
      Src: /src/nss/cmd/fipstest/fipstest.c:4166,1
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/fipstest/fipstest.c:4171,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4173,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:4177,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:4180,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:4183,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:4186,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:4189,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4193,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:4198,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:4200,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:4202,1
    - Dst: isxdigit
      Src: /src/nss/cmd/fipstest/fipstest.c:4206,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:4207,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4210,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:4215,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:4217,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:4219,1
    - Dst: isxdigit
      Src: /src/nss/cmd/fipstest/fipstest.c:4222,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:4223,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4227,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:4232,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:4234,1
    - Dst: isxdigit
      Src: /src/nss/cmd/fipstest/fipstest.c:4237,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:4238,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4240,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:4245,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:4247,1
    - Dst: isxdigit
      Src: /src/nss/cmd/fipstest/fipstest.c:4250,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:4251,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4253,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:4258,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:4261,1
    - Dst: isxdigit
      Src: /src/nss/cmd/fipstest/fipstest.c:4264,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:4265,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4268,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:4274,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:4277,1
    - Dst: isxdigit
      Src: /src/nss/cmd/fipstest/fipstest.c:4280,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:4281,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4290,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:4295,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:4297,1
    - Dst: isxdigit
      Src: /src/nss/cmd/fipstest/fipstest.c:4300,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:4301,1
    - Dst: memcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:4304,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:4307,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4308,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:4309,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4311,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4312,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4313,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:4314,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:4317,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4318,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:4319,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4321,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4322,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4323,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:4324,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:4327,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/fipstest/fipstest.c:4334,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/fipstest/fipstest.c:4337,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/fipstest/fipstest.c:4340,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/fipstest/fipstest.c:4343,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/fipstest/fipstest.c:4346,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/fipstest/fipstest.c:4349,1
    - Dst: fclose
      Src: /src/nss/cmd/fipstest/fipstest.c:4351,1
    CyclomaticComplexity: 118
    EdgeCount: 118
    ICount: 350
    argCount: 1
    argNames:
    - reqfn
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4352
      start: 3927
    functionDepth: 2
    functionLinenumber: 3927
    functionLinenumberEnd: 4352
    functionName: drbg
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 0
    functionsReached:
    - fputs
    - PRNGTEST_Uninstantiate
    - fprintf
    - PRNGTEST_Generate
    - to_hex_str
    - hex_to_byteval
    - PRNGTEST_Instantiate
    - memset
    - fopen
    - memcmp
    - isspace
    - PORT_ZFree
    - isxdigit
    - fclose
    - PORT_Alloc
    - strncmp
    - fputc
    - sscanf
    - fgets
    - PORT_Free
    - PRNGTEST_Reseed
    linkageType: ''
    returnType: void
    signature: void drbg(char *reqfn)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/nss/cmd/fipstest/fipstest.c:4383,1
    - Dst: fgets
      Src: /src/nss/cmd/fipstest/fipstest.c:4385,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4388,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4393,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:4399,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:4403,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4405,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:4410,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:4413,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:4414,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4415,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:4421,1
    - Dst: atoi
      Src: /src/nss/cmd/fipstest/fipstest.c:4424,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4428,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:4432,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:4434,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:4438,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4440,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:4444,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:4446,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:4450,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4452,1
    - Dst: FIPS186Change_GenerateX
      Src: /src/nss/cmd/fipstest/fipstest.c:4454,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4458,1
    - Dst: FIPS186Change_ReduceModQForDSA
      Src: /src/nss/cmd/fipstest/fipstest.c:4460,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:4464,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:4466,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4468,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:4469,1
    - Dst: fclose
      Src: /src/nss/cmd/fipstest/fipstest.c:4474,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 88
    argCount: 1
    argNames:
    - reqfn
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4475
      start: 4364
    functionDepth: 2
    functionLinenumber: 4364
    functionLinenumberEnd: 4475
    functionName: rng_vst
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 0
    functionsReached:
    - FIPS186Change_GenerateX
    - isspace
    - strncmp
    - fputs
    - fputc
    - fclose
    - fgets
    - hex_to_byteval
    - FIPS186Change_ReduceModQForDSA
    - atoi
    - memset
    - fopen
    - to_hex_str
    linkageType: ''
    returnType: void
    signature: void rng_vst(char *reqfn)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/nss/cmd/fipstest/fipstest.c:4506,1
    - Dst: fgets
      Src: /src/nss/cmd/fipstest/fipstest.c:4508,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4511,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4516,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:4522,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:4526,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4528,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:4533,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:4536,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:4537,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4538,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:4544,1
    - Dst: atoi
      Src: /src/nss/cmd/fipstest/fipstest.c:4547,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4551,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:4555,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:4557,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:4561,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4563,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:4567,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:4570,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:4574,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4576,1
    - Dst: FIPS186Change_GenerateX
      Src: /src/nss/cmd/fipstest/fipstest.c:4579,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4584,1
    - Dst: FIPS186Change_ReduceModQForDSA
      Src: /src/nss/cmd/fipstest/fipstest.c:4586,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:4590,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:4592,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4594,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:4595,1
    - Dst: fclose
      Src: /src/nss/cmd/fipstest/fipstest.c:4600,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 90
    argCount: 1
    argNames:
    - reqfn
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4601
      start: 4487
    functionDepth: 2
    functionLinenumber: 4487
    functionLinenumberEnd: 4601
    functionName: rng_mct
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 0
    functionsReached:
    - FIPS186Change_GenerateX
    - isspace
    - strncmp
    - fputs
    - fputc
    - fclose
    - fgets
    - hex_to_byteval
    - FIPS186Change_ReduceModQForDSA
    - atoi
    - memset
    - fopen
    - to_hex_str
    linkageType: ''
    returnType: void
    signature: void rng_mct(char *reqfn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha_get_hashType
      Src: /src/nss/cmd/fipstest/fipstest.c:4614,1
    - Dst: fips_hashBuf
      Src: /src/nss/cmd/fipstest/fipstest.c:4616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - MD
    - MDLen
    - msg
    - msgLen
    argTypes:
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4617
      start: 4611
    functionDepth: 1
    functionLinenumber: 4611
    functionLinenumberEnd: 4617
    functionName: sha_calcMD
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 0
    functionsReached:
    - fips_hashBuf
    - sha_get_hashType
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sha_calcMD(unsigned char *MD, unsigned int MDLen, unsigned
      char *msg, unsigned int msgLen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/cmd/fipstest/fipstest.c:4640,1
    - Dst: memcpy
      Src: /src/nss/cmd/fipstest/fipstest.c:4641,1
    - Dst: memcpy
      Src: /src/nss/cmd/fipstest/fipstest.c:4642,1
    - Dst: memcpy
      Src: /src/nss/cmd/fipstest/fipstest.c:4646,1
    - Dst: memcpy
      Src: /src/nss/cmd/fipstest/fipstest.c:4647,1
    - Dst: memcpy
      Src: /src/nss/cmd/fipstest/fipstest.c:4648,1
    - Dst: sha_calcMD
      Src: /src/nss/cmd/fipstest/fipstest.c:4651,1
    - Dst: memcpy
      Src: /src/nss/cmd/fipstest/fipstest.c:4657,1
    - Dst: memcpy
      Src: /src/nss/cmd/fipstest/fipstest.c:4658,1
    - Dst: memcpy
      Src: /src/nss/cmd/fipstest/fipstest.c:4659,1
    - Dst: memcpy
      Src: /src/nss/cmd/fipstest/fipstest.c:4663,1
    - Dst: snprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:4665,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4666,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4669,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:4670,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4671,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:4672,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 3
    argNames:
    - MDLen
    - seed
    - resp
    argTypes:
    - unsigned int
    - unsigned char*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4676
      start: 4626
    functionDepth: 2
    functionLinenumber: 4626
    functionLinenumberEnd: 4676
    functionName: sha_mct_test
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 0
    functionsReached:
    - memcpy
    - fputs
    - fputc
    - sha_calcMD
    - snprintf
    - to_hex_str
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sha_mct_test(unsigned int MDLen, unsigned char *seed, FILE
      *resp)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZAlloc
      Src: /src/nss/cmd/fipstest/fipstest.c:4700,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:4706,1
    - Dst: fopen
      Src: /src/nss/cmd/fipstest/fipstest.c:4708,1
    - Dst: fgets
      Src: /src/nss/cmd/fipstest/fipstest.c:4710,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4714,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:4719,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:4721,1
    - Dst: atoi
      Src: /src/nss/cmd/fipstest/fipstest.c:4724,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4725,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:4730,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:4732,1
    - Dst: PORT_ZFree
      Src: /src/nss/cmd/fipstest/fipstest.c:4736,1
    - Dst: atoi
      Src: /src/nss/cmd/fipstest/fipstest.c:4739,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:4741,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4746,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/cmd/fipstest/fipstest.c:4747,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:4754,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:4756,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:4760,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4762,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:4764,1
    - Dst: sha_calcMD
      Src: /src/nss/cmd/fipstest/fipstest.c:4765,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4770,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:4771,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4772,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:4773,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:4778,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:4780,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:4784,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4787,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:4788,1
    - Dst: sha_mct_test
      Src: /src/nss/cmd/fipstest/fipstest.c:4791,1
    - Dst: fclose
      Src: /src/nss/cmd/fipstest/fipstest.c:4800,1
    - Dst: PORT_ZFree
      Src: /src/nss/cmd/fipstest/fipstest.c:4803,1
    - Dst: PORT_ZFree
      Src: /src/nss/cmd/fipstest/fipstest.c:4806,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 97
    argCount: 1
    argNames:
    - reqfn
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4808
      start: 4685
    functionDepth: 3
    functionLinenumber: 4685
    functionLinenumberEnd: 4808
    functionName: sha_test
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 0
    functionsReached:
    - strncmp
    - isspace
    - fputs
    - PORT_ZFree
    - fputc
    - fclose
    - fgets
    - PORT_ZAlloc
    - hex_to_byteval
    - sha_calcMD
    - atoi
    - sha_mct_test
    - memset
    - fprintf
    - fopen
    - to_hex_str
    linkageType: ''
    returnType: void
    signature: void sha_test(char *reqfn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HASH_GetRawHashObject
      Src: /src/nss/cmd/fipstest/fipstest.c:4833,1
    - Dst: HMAC_Create
      Src: /src/nss/cmd/fipstest/fipstest.c:4838,1
    - Dst: HMAC_Begin
      Src: /src/nss/cmd/fipstest/fipstest.c:4845,1
    - Dst: HMAC_Update
      Src: /src/nss/cmd/fipstest/fipstest.c:4846,1
    - Dst: HMAC_Finish
      Src: /src/nss/cmd/fipstest/fipstest.c:4847,1
    - Dst: HMAC_Destroy
      Src: /src/nss/cmd/fipstest/fipstest.c:4850,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 7
    argNames:
    - hmac_computed
    - hmac_length
    - secret_key
    - secret_key_length
    - message
    - message_length
    - hashAlg
    argTypes:
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - HASH_HashType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4853
      start: 4819
    functionDepth: 0
    functionLinenumber: 4819
    functionLinenumberEnd: 4853
    functionName: hmac_calc
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 0
    functionsReached:
    - HMAC_Finish
    - HMAC_Destroy
    - HMAC_Begin
    - HASH_GetRawHashObject
    - HMAC_Update
    - HMAC_Create
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus hmac_calc(unsigned char *hmac_computed,\n          const
      unsigned int hmac_length,\n          const unsigned char *secret_key,\n          const
      unsigned int secret_key_length,\n          const unsigned char *message,\n          const
      unsigned int message_length,\n          const HASH_HashType hashAlg)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZAlloc
      Src: /src/nss/cmd/fipstest/fipstest.c:4884,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/cmd/fipstest/fipstest.c:4888,1
    - Dst: fopen
      Src: /src/nss/cmd/fipstest/fipstest.c:4893,1
    - Dst: fgets
      Src: /src/nss/cmd/fipstest/fipstest.c:4895,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:4896,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:4898,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:4901,1
    - Dst: isxdigit
      Src: /src/nss/cmd/fipstest/fipstest.c:4902,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:4903,1
    - Dst: memcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:4905,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:4906,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4907,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:4908,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4910,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4911,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:4912,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4914,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:4915,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4921,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:4926,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:4928,1
    - Dst: atoi
      Src: /src/nss/cmd/fipstest/fipstest.c:4932,1
    - Dst: sha_get_hashType
      Src: /src/nss/cmd/fipstest/fipstest.c:4933,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4937,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:4942,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4944,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:4948,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:4949,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:4950,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:4954,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:4956,1
    - Dst: atoi
      Src: /src/nss/cmd/fipstest/fipstest.c:4959,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4960,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:4964,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:4966,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:4970,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4972,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:4975,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:4977,1
    - Dst: atoi
      Src: /src/nss/cmd/fipstest/fipstest.c:4980,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4981,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:4985,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:4987,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:4991,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4993,1
    - Dst: hmac_calc
      Src: /src/nss/cmd/fipstest/fipstest.c:4995,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:4999,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:5000,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:5001,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:5002,1
    - Dst: fclose
      Src: /src/nss/cmd/fipstest/fipstest.c:5008,1
    - Dst: PORT_ZFree
      Src: /src/nss/cmd/fipstest/fipstest.c:5011,1
    - Dst: PORT_ZFree
      Src: /src/nss/cmd/fipstest/fipstest.c:5014,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 122
    argCount: 1
    argNames:
    - reqfn
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5016
      start: 4862
    functionDepth: 2
    functionLinenumber: 4862
    functionLinenumberEnd: 5016
    functionName: hmac_test
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 0
    functionsReached:
    - isspace
    - strncmp
    - isxdigit
    - fputs
    - fputc
    - fclose
    - PORT_ZFree
    - fgets
    - PORT_ZAlloc
    - hex_to_byteval
    - atoi
    - memset
    - fprintf
    - fopen
    - hmac_calc
    - memcmp
    - to_hex_str
    - sha_get_hashType
    linkageType: ''
    returnType: void
    signature: void hmac_test(char *reqfn)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/nss/cmd/fipstest/fipstest.c:5043,1
    - Dst: fgets
      Src: /src/nss/cmd/fipstest/fipstest.c:5045,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:5048,1
    - Dst: PQG_DestroyParams
      Src: /src/nss/cmd/fipstest/fipstest.c:5055,1
    - Dst: PQG_DestroyVerify
      Src: /src/nss/cmd/fipstest/fipstest.c:5059,1
    - Dst: sscanf
      Src: /src/nss/cmd/fipstest/fipstest.c:5063,1
    - Dst: sscanf
      Src: /src/nss/cmd/fipstest/fipstest.c:5065,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:5069,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:5070,1
    - Dst: PQG_PBITS_TO_INDEX
      Src: /src/nss/cmd/fipstest/fipstest.c:5077,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:5079,1
    - Dst: PQG_ParamGenSeedLen
      Src: /src/nss/cmd/fipstest/fipstest.c:5086,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:5089,1
    - Dst: PQG_ParamGenV2
      Src: /src/nss/cmd/fipstest/fipstest.c:5094,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:5095,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:5102,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:5103,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:5104,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:5105,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:5106,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:5107,1
    - Dst: sscanf
      Src: /src/nss/cmd/fipstest/fipstest.c:5113,1
    - Dst: DSA_NewKey
      Src: /src/nss/cmd/fipstest/fipstest.c:5119,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:5120,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:5123,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:5125,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:5126,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:5128,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/fipstest/fipstest.c:5129,1
    - Dst: fclose
      Src: /src/nss/cmd/fipstest/fipstest.c:5136,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 77
    argCount: 1
    argNames:
    - reqfn
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5137
      start: 5025
    functionDepth: 2
    functionLinenumber: 5025
    functionLinenumberEnd: 5137
    functionName: dsa_keypair_test
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 0
    functionsReached:
    - fclose
    - fputs
    - fputc
    - DSA_NewKey
    - PORT_FreeArena
    - PQG_DestroyVerify
    - fgets
    - PQG_DestroyParams
    - sscanf
    - PQG_ParamGenSeedLen
    - PQG_ParamGenV2
    - fprintf
    - fopen
    - PQG_PBITS_TO_INDEX
    - to_hex_str
    linkageType: ''
    returnType: void
    signature: void dsa_keypair_test(char *reqfn)
  - BBCount: 53
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/nss/cmd/fipstest/fipstest.c:5177,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:5179,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:5180,1
    - Dst: fgets
      Src: /src/nss/cmd/fipstest/fipstest.c:5182,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:5185,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:5192,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:5194,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:5196,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:5198,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:5201,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:5204,1
    - Dst: exit
      Src: /src/nss/cmd/fipstest/fipstest.c:5205,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:5208,1
    - Dst: sscanf
      Src: /src/nss/cmd/fipstest/fipstest.c:5217,1
    - Dst: sscanf
      Src: /src/nss/cmd/fipstest/fipstest.c:5220,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/cmd/fipstest/fipstest.c:5225,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/cmd/fipstest/fipstest.c:5228,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/cmd/fipstest/fipstest.c:5231,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/cmd/fipstest/fipstest.c:5234,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/cmd/fipstest/fipstest.c:5237,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:5240,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/fipstest/fipstest.c:5247,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/fipstest/fipstest.c:5248,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/fipstest/fipstest.c:5250,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/fipstest/fipstest.c:5253,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/fipstest/fipstest.c:5258,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:5267,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:5271,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:5274,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:5281,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:5285,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:5288,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/cmd/fipstest/fipstest.c:5296,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/fipstest/fipstest.c:5298,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:5299,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:5303,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:5306,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:5311,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:5313,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:5315,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:5321,1
    - Dst: isxdigit
      Src: /src/nss/cmd/fipstest/fipstest.c:5324,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:5325,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:5329,1
    - Dst: PQG_VerifyParams
      Src: /src/nss/cmd/fipstest/fipstest.c:5334,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:5339,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:5341,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:5346,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:5347,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:5349,1
    - Dst: isxdigit
      Src: /src/nss/cmd/fipstest/fipstest.c:5352,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:5353,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:5356,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:5360,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:5362,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:5365,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:5367,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:5372,1
    - Dst: sscanf
      Src: /src/nss/cmd/fipstest/fipstest.c:5373,1
    - Dst: sscanf
      Src: /src/nss/cmd/fipstest/fipstest.c:5377,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:5382,1
    - Dst: PQG_VerifyParams
      Src: /src/nss/cmd/fipstest/fipstest.c:5386,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:5391,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:5393,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:5395,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:5399,1
    - Dst: sscanf
      Src: /src/nss/cmd/fipstest/fipstest.c:5400,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:5403,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:5406,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:5407,1
    - Dst: PQG_VerifyParams
      Src: /src/nss/cmd/fipstest/fipstest.c:5411,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:5416,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:5418,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:5420,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:5429,1
    - Dst: isxdigit
      Src: /src/nss/cmd/fipstest/fipstest.c:5432,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:5433,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:5436,1
    - Dst: PQG_VerifyParams
      Src: /src/nss/cmd/fipstest/fipstest.c:5449,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:5454,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:5456,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:5458,1
    - Dst: fclose
      Src: /src/nss/cmd/fipstest/fipstest.c:5463,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/cmd/fipstest/fipstest.c:5465,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/cmd/fipstest/fipstest.c:5468,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/cmd/fipstest/fipstest.c:5471,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/cmd/fipstest/fipstest.c:5474,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/cmd/fipstest/fipstest.c:5477,1
    CyclomaticComplexity: 97
    EdgeCount: 97
    ICount: 263
    argCount: 1
    argNames:
    - reqfn
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5479
      start: 5160
    functionDepth: 1
    functionLinenumber: 5160
    functionLinenumberEnd: 5479
    functionName: dsa_pqgver_test
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 0
    functionsReached:
    - strncmp
    - isspace
    - fputs
    - isxdigit
    - fclose
    - PQG_VerifyParams
    - sscanf
    - fgets
    - hex_to_byteval
    - exit
    - SECITEM_AllocItem
    - memset
    - fprintf
    - fopen
    - SECITEM_ZfreeItem
    linkageType: ''
    returnType: void
    signature: void dsa_pqgver_test(char *reqfn)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/nss/cmd/fipstest/fipstest.c:5508,1
    - Dst: fgets
      Src: /src/nss/cmd/fipstest/fipstest.c:5510,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:5513,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:5519,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:5520,1
    - Dst: exit
      Src: /src/nss/cmd/fipstest/fipstest.c:5521,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:5522,1
    - Dst: exit
      Src: /src/nss/cmd/fipstest/fipstest.c:5525,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:5526,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:5527,1
    - Dst: exit
      Src: /src/nss/cmd/fipstest/fipstest.c:5528,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:5529,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:5533,1
    - Dst: exit
      Src: /src/nss/cmd/fipstest/fipstest.c:5534,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:5536,1
    - Dst: sscanf
      Src: /src/nss/cmd/fipstest/fipstest.c:5545,1
    - Dst: sscanf
      Src: /src/nss/cmd/fipstest/fipstest.c:5548,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:5552,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:5553,1
    - Dst: PQG_PBITS_TO_INDEX
      Src: /src/nss/cmd/fipstest/fipstest.c:5560,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:5562,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:5572,1
    - Dst: sscanf
      Src: /src/nss/cmd/fipstest/fipstest.c:5573,1
    - Dst: sscanf
      Src: /src/nss/cmd/fipstest/fipstest.c:5576,1
    - Dst: PQG_ParamGenSeedLen
      Src: /src/nss/cmd/fipstest/fipstest.c:5583,1
    - Dst: PQG_ParamGenV2
      Src: /src/nss/cmd/fipstest/fipstest.c:5586,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:5589,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:5593,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:5594,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:5595,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:5596,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:5598,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:5599,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:5602,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:5603,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:5604,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:5605,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:5606,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:5608,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:5610,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:5616,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:5617,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:5618,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:5619,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:5620,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:5621,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:5623,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:5624,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:5625,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:5628,1
    - Dst: PQG_DestroyParams
      Src: /src/nss/cmd/fipstest/fipstest.c:5630,1
    - Dst: PQG_DestroyVerify
      Src: /src/nss/cmd/fipstest/fipstest.c:5634,1
    - Dst: fclose
      Src: /src/nss/cmd/fipstest/fipstest.c:5643,1
    - Dst: PQG_DestroyParams
      Src: /src/nss/cmd/fipstest/fipstest.c:5645,1
    - Dst: PQG_DestroyVerify
      Src: /src/nss/cmd/fipstest/fipstest.c:5648,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 131
    argCount: 1
    argNames:
    - reqfn
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5650
      start: 5488
    functionDepth: 2
    functionLinenumber: 5488
    functionLinenumberEnd: 5650
    functionName: dsa_pqggen_test
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 0
    functionsReached:
    - strncmp
    - fclose
    - fputs
    - fputc
    - sscanf
    - fgets
    - PQG_ParamGenV2
    - PQG_ParamGenSeedLen
    - PQG_DestroyParams
    - exit
    - PQG_DestroyVerify
    - fprintf
    - fopen
    - PQG_PBITS_TO_INDEX
    - to_hex_str
    linkageType: ''
    returnType: void
    signature: void dsa_pqggen_test(char *reqfn)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/nss/cmd/fipstest/fipstest.c:5683,1
    - Dst: fgets
      Src: /src/nss/cmd/fipstest/fipstest.c:5686,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:5689,1
    - Dst: PQG_DestroyParams
      Src: /src/nss/cmd/fipstest/fipstest.c:5696,1
    - Dst: PQG_DestroyVerify
      Src: /src/nss/cmd/fipstest/fipstest.c:5700,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/fipstest/fipstest.c:5704,1
    - Dst: sscanf
      Src: /src/nss/cmd/fipstest/fipstest.c:5708,1
    - Dst: sscanf
      Src: /src/nss/cmd/fipstest/fipstest.c:5712,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:5716,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:5717,1
    - Dst: PQG_PBITS_TO_INDEX
      Src: /src/nss/cmd/fipstest/fipstest.c:5724,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:5726,1
    - Dst: PQG_ParamGenSeedLen
      Src: /src/nss/cmd/fipstest/fipstest.c:5732,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:5735,1
    - Dst: PQG_ParamGenV2
      Src: /src/nss/cmd/fipstest/fipstest.c:5740,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:5741,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:5746,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:5747,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:5748,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:5749,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:5750,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:5751,1
    - Dst: DSA_NewKey
      Src: /src/nss/cmd/fipstest/fipstest.c:5754,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:5755,1
    - Dst: sha_get_hashType
      Src: /src/nss/cmd/fipstest/fipstest.c:5759,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:5761,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:5768,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:5773,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:5777,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:5778,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:5781,1
    - Dst: isxdigit
      Src: /src/nss/cmd/fipstest/fipstest.c:5784,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:5785,1
    - Dst: fips_hashBuf
      Src: /src/nss/cmd/fipstest/fipstest.c:5787,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:5788,1
    - Dst: fips_hashLen
      Src: /src/nss/cmd/fipstest/fipstest.c:5795,1
    - Dst: DSA_SignDigest
      Src: /src/nss/cmd/fipstest/fipstest.c:5800,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:5801,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:5811,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:5812,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:5814,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:5815,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:5816,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:5817,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:5818,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:5819,1
    - Dst: fclose
      Src: /src/nss/cmd/fipstest/fipstest.c:5824,1
    - Dst: PQG_DestroyParams
      Src: /src/nss/cmd/fipstest/fipstest.c:5826,1
    - Dst: PQG_DestroyVerify
      Src: /src/nss/cmd/fipstest/fipstest.c:5830,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/fipstest/fipstest.c:5834,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 132
    argCount: 1
    argNames:
    - reqfn
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5837
      start: 5659
    functionDepth: 2
    functionLinenumber: 5659
    functionLinenumberEnd: 5837
    functionName: dsa_siggen_test
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 0
    functionsReached:
    - fputs
    - PQG_ParamGenSeedLen
    - fprintf
    - PQG_PBITS_TO_INDEX
    - to_hex_str
    - PQG_DestroyVerify
    - hex_to_byteval
    - DSA_SignDigest
    - memset
    - fopen
    - fips_hashBuf
    - isspace
    - isxdigit
    - fclose
    - DSA_NewKey
    - fips_hashLen
    - PORT_FreeArena
    - PQG_DestroyParams
    - strncmp
    - fputc
    - sscanf
    - fgets
    - PQG_ParamGenV2
    - sha_get_hashType
    linkageType: ''
    returnType: void
    signature: void dsa_siggen_test(char *reqfn)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/nss/cmd/fipstest/fipstest.c:5866,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:5868,1
    - Dst: fgets
      Src: /src/nss/cmd/fipstest/fipstest.c:5870,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:5873,1
    - Dst: sscanf
      Src: /src/nss/cmd/fipstest/fipstest.c:5880,1
    - Dst: sscanf
      Src: /src/nss/cmd/fipstest/fipstest.c:5884,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/cmd/fipstest/fipstest.c:5890,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/cmd/fipstest/fipstest.c:5893,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/cmd/fipstest/fipstest.c:5896,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/cmd/fipstest/fipstest.c:5899,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:5901,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/fipstest/fipstest.c:5905,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/fipstest/fipstest.c:5906,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/fipstest/fipstest.c:5907,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/fipstest/fipstest.c:5912,1
    - Dst: sha_get_hashType
      Src: /src/nss/cmd/fipstest/fipstest.c:5915,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:5917,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:5926,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:5929,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:5931,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:5934,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:5941,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:5944,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:5946,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:5949,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:5956,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:5959,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:5961,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:5964,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:5969,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:5971,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:5974,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:5979,1
    - Dst: isxdigit
      Src: /src/nss/cmd/fipstest/fipstest.c:5982,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:5983,1
    - Dst: fips_hashBuf
      Src: /src/nss/cmd/fipstest/fipstest.c:5985,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:5986,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:5991,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:5998,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:6001,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:6003,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:6006,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:6012,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:6014,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:6018,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:6021,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:6028,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:6033,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:6038,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:6040,1
    - Dst: fips_hashLen
      Src: /src/nss/cmd/fipstest/fipstest.c:6044,1
    - Dst: DSA_VerifyDigest
      Src: /src/nss/cmd/fipstest/fipstest.c:6049,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:6050,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:6052,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:6054,1
    - Dst: fclose
      Src: /src/nss/cmd/fipstest/fipstest.c:6059,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/cmd/fipstest/fipstest.c:6061,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/cmd/fipstest/fipstest.c:6064,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/cmd/fipstest/fipstest.c:6067,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/cmd/fipstest/fipstest.c:6070,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 173
    argCount: 1
    argNames:
    - reqfn
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6072
      start: 5846
    functionDepth: 1
    functionLinenumber: 5846
    functionLinenumberEnd: 6072
    functionName: dsa_sigver_test
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 0
    functionsReached:
    - isspace
    - strncmp
    - fputs
    - isxdigit
    - DSA_VerifyDigest
    - fips_hashLen
    - fclose
    - sscanf
    - fgets
    - hex_to_byteval
    - SECITEM_AllocItem
    - memset
    - fprintf
    - fopen
    - fips_hashBuf
    - SECITEM_ZfreeItem
    - sha_get_hashType
    linkageType: ''
    returnType: void
    signature: void dsa_sigver_test(char *reqfn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:6080,1
    - Dst: exit
      Src: /src/nss/cmd/fipstest/fipstest.c:6081,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:6085,1
    - Dst: memcpy
      Src: /src/nss/cmd/fipstest/fipstest.c:6086,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - buf
    - pad_len
    - src
    - src_len
    argTypes:
    - unsigned char*
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6088
      start: 6074
    functionDepth: 1
    functionLinenumber: 6074
    functionLinenumberEnd: 6088
    functionName: pad
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 0
    functionsReached:
    - fprintf
    - memcpy
    - exit
    - memset
    linkageType: ''
    returnType: void
    signature: void pad(unsigned char *buf, int pad_len, unsigned char *src, int src_len)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/nss/cmd/fipstest/fipstest.c:6118,1
    - Dst: fgets
      Src: /src/nss/cmd/fipstest/fipstest.c:6120,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:6123,1
    - Dst: sscanf
      Src: /src/nss/cmd/fipstest/fipstest.c:6130,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:6136,1
    - Dst: sscanf
      Src: /src/nss/cmd/fipstest/fipstest.c:6142,1
    - Dst: RSA_NewKey
      Src: /src/nss/cmd/fipstest/fipstest.c:6149,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:6150,1
    - Dst: pad
      Src: /src/nss/cmd/fipstest/fipstest.c:6153,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:6155,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:6156,1
    - Dst: pad
      Src: /src/nss/cmd/fipstest/fipstest.c:6157,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:6159,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:6160,1
    - Dst: pad
      Src: /src/nss/cmd/fipstest/fipstest.c:6161,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:6163,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:6164,1
    - Dst: pad
      Src: /src/nss/cmd/fipstest/fipstest.c:6165,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:6167,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:6168,1
    - Dst: pad
      Src: /src/nss/cmd/fipstest/fipstest.c:6169,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:6171,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:6172,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:6173,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/fipstest/fipstest.c:6174,1
    - Dst: fclose
      Src: /src/nss/cmd/fipstest/fipstest.c:6181,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 58
    argCount: 1
    argNames:
    - reqfn
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6182
      start: 6097
    functionDepth: 2
    functionLinenumber: 6097
    functionLinenumberEnd: 6182
    functionName: rsa_keypair_test
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 0
    functionsReached:
    - fclose
    - fputs
    - PORT_FreeArena
    - sscanf
    - fgets
    - fprintf
    - fopen
    - pad
    - RSA_NewKey
    - to_hex_str
    linkageType: ''
    returnType: void
    signature: void rsa_keypair_test(char *reqfn)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/nss/cmd/fipstest/fipstest.c:6216,1
    - Dst: fgets
      Src: /src/nss/cmd/fipstest/fipstest.c:6233,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:6236,1
    - Dst: sscanf
      Src: /src/nss/cmd/fipstest/fipstest.c:6243,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:6247,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:6251,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/fipstest/fipstest.c:6254,1
    - Dst: RSA_NewKey
      Src: /src/nss/cmd/fipstest/fipstest.c:6259,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:6261,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:6265,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:6267,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:6268,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:6270,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/cmd/fipstest/fipstest.c:6273,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:6287,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:6289,1
    - Dst: hash_string_to_hashType
      Src: /src/nss/cmd/fipstest/fipstest.c:6293,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:6295,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:6298,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:6302,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:6321,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:6322,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:6324,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:6327,1
    - Dst: isxdigit
      Src: /src/nss/cmd/fipstest/fipstest.c:6330,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:6331,1
    - Dst: fips_hashLen
      Src: /src/nss/cmd/fipstest/fipstest.c:6333,1
    - Dst: fips_hashBuf
      Src: /src/nss/cmd/fipstest/fipstest.c:6334,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:6336,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:6338,1
    - Dst: fips_hashOid
      Src: /src/nss/cmd/fipstest/fipstest.c:6342,1
    - Dst: RSA_HashSign
      Src: /src/nss/cmd/fipstest/fipstest.c:6345,1
    - Dst: nsslowkey_PrivateModulusLen
      Src: /src/nss/cmd/fipstest/fipstest.c:6349,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:6354,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:6359,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:6360,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:6361,1
    - Dst: RSA_HashCheckSign
      Src: /src/nss/cmd/fipstest/fipstest.c:6364,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:6371,1
    - Dst: fclose
      Src: /src/nss/cmd/fipstest/fipstest.c:6378,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/fipstest/fipstest.c:6382,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 116
    argCount: 1
    argNames:
    - reqfn
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6386
      start: 6191
    functionDepth: 2
    functionLinenumber: 6191
    functionLinenumberEnd: 6386
    functionName: rsa_siggen_test
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 0
    functionsReached:
    - hash_string_to_hashType
    - fputs
    - RSA_HashCheckSign
    - fprintf
    - to_hex_str
    - RSA_HashSign
    - PORT_ArenaAlloc
    - hex_to_byteval
    - memset
    - fopen
    - fips_hashBuf
    - fips_hashOid
    - isspace
    - isxdigit
    - fclose
    - fips_hashLen
    - PORT_FreeArena
    - RSA_NewKey
    - nsslowkey_PrivateModulusLen
    - strncmp
    - sscanf
    - fgets
    linkageType: ''
    returnType: void
    signature: void rsa_siggen_test(char *reqfn)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/nss/cmd/fipstest/fipstest.c:6416,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:6418,1
    - Dst: fgets
      Src: /src/nss/cmd/fipstest/fipstest.c:6420,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:6423,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/cmd/fipstest/fipstest.c:6432,1
    - Dst: sscanf
      Src: /src/nss/cmd/fipstest/fipstest.c:6434,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:6439,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:6443,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/fipstest/fipstest.c:6447,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:6457,1
    - Dst: from_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:6460,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:6465,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:6468,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:6473,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:6475,1
    - Dst: hash_string_to_hashType
      Src: /src/nss/cmd/fipstest/fipstest.c:6479,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:6481,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:6484,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:6493,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/cmd/fipstest/fipstest.c:6496,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:6500,1
    - Dst: isxdigit
      Src: /src/nss/cmd/fipstest/fipstest.c:6504,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:6505,1
    - Dst: isxdigit
      Src: /src/nss/cmd/fipstest/fipstest.c:6513,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:6514,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/fipstest/fipstest.c:6521,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:6530,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:6535,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:6538,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:6539,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:6542,1
    - Dst: isxdigit
      Src: /src/nss/cmd/fipstest/fipstest.c:6546,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:6547,1
    - Dst: fips_hashLen
      Src: /src/nss/cmd/fipstest/fipstest.c:6550,1
    - Dst: fips_hashBuf
      Src: /src/nss/cmd/fipstest/fipstest.c:6551,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:6553,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:6555,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:6560,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:6575,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:6577,1
    - Dst: isxdigit
      Src: /src/nss/cmd/fipstest/fipstest.c:6581,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:6582,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:6586,1
    - Dst: fips_hashOid
      Src: /src/nss/cmd/fipstest/fipstest.c:6588,1
    - Dst: RSA_HashCheckSign
      Src: /src/nss/cmd/fipstest/fipstest.c:6591,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:6598,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:6600,1
    - Dst: fclose
      Src: /src/nss/cmd/fipstest/fipstest.c:6606,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/cmd/fipstest/fipstest.c:6608,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/cmd/fipstest/fipstest.c:6611,1
    CyclomaticComplexity: 57
    EdgeCount: 57
    ICount: 146
    argCount: 1
    argNames:
    - reqfn
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6613
      start: 6394
    functionDepth: 1
    functionLinenumber: 6394
    functionLinenumberEnd: 6613
    functionName: rsa_sigver_test
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 0
    functionsReached:
    - hash_string_to_hashType
    - fputs
    - RSA_HashCheckSign
    - fprintf
    - hex_to_byteval
    - memset
    - fopen
    - fips_hashBuf
    - fips_hashOid
    - isspace
    - isxdigit
    - fclose
    - fips_hashLen
    - SECITEM_AllocItem
    - SECITEM_ZfreeItem
    - strncmp
    - sscanf
    - fgets
    - from_hex_str
    linkageType: ''
    returnType: void
    signature: void rsa_sigver_test(char *reqfn)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: NSC_Initialize
      Src: /src/nss/cmd/fipstest/fipstest.c:6695,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:6697,1
    - Dst: NSC_GetSlotList
      Src: /src/nss/cmd/fipstest/fipstest.c:6701,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:6703,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:6707,1
    - Dst: fopen
      Src: /src/nss/cmd/fipstest/fipstest.c:6713,1
    - Dst: fgets
      Src: /src/nss/cmd/fipstest/fipstest.c:6715,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:6718,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:6723,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:6735,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:6738,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:6741,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:6744,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:6747,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:6751,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:6759,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:6764,1
    - Dst: sscanf
      Src: /src/nss/cmd/fipstest/fipstest.c:6765,1
    - Dst: malloc
      Src: /src/nss/cmd/fipstest/fipstest.c:6770,1
    - Dst: malloc
      Src: /src/nss/cmd/fipstest/fipstest.c:6771,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:6777,1
    - Dst: sscanf
      Src: /src/nss/cmd/fipstest/fipstest.c:6778,1
    - Dst: malloc
      Src: /src/nss/cmd/fipstest/fipstest.c:6784,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:6792,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:6796,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:6798,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:6799,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:6800,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:6801,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:6805,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:6807,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:6811,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:6813,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:6817,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:6819,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:6823,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:6825,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:6829,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:6831,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:6835,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:6837,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:6841,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:6843,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:6847,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:6849,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:6853,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:6859,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:6863,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:6865,1
    - Dst: NSC_OpenSession
      Src: /src/nss/cmd/fipstest/fipstest.c:6866,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:6868,1
    - Dst: NSC_CreateObject
      Src: /src/nss/cmd/fipstest/fipstest.c:6872,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:6875,1
    - Dst: NSC_DeriveKey
      Src: /src/nss/cmd/fipstest/fipstest.c:6879,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:6883,1
    - Dst: NSC_GetAttributeValue
      Src: /src/nss/cmd/fipstest/fipstest.c:6887,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:6890,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:6894,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:6895,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:6896,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:6897,1
    - Dst: NSC_DeriveKey
      Src: /src/nss/cmd/fipstest/fipstest.c:6898,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:6901,1
    - Dst: NSC_GetAttributeValue
      Src: /src/nss/cmd/fipstest/fipstest.c:6906,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:6909,1
    - Dst: NSC_GetAttributeValue
      Src: /src/nss/cmd/fipstest/fipstest.c:6913,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:6916,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:6920,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:6921,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:6922,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:6923,1
    - Dst: NSC_CloseSession
      Src: /src/nss/cmd/fipstest/fipstest.c:6924,1
    - Dst: NSC_Finalize
      Src: /src/nss/cmd/fipstest/fipstest.c:6929,1
    - Dst: free
      Src: /src/nss/cmd/fipstest/fipstest.c:6931,1
    - Dst: free
      Src: /src/nss/cmd/fipstest/fipstest.c:6933,1
    - Dst: free
      Src: /src/nss/cmd/fipstest/fipstest.c:6935,1
    - Dst: fclose
      Src: /src/nss/cmd/fipstest/fipstest.c:6937,1
    CyclomaticComplexity: 74
    EdgeCount: 74
    ICount: 247
    argCount: 1
    argNames:
    - reqfn
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6938
      start: 6615
    functionDepth: 2
    functionLinenumber: 6615
    functionLinenumberEnd: 6938
    functionName: tls
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 0
    functionsReached:
    - fputs
    - NSC_GetAttributeValue
    - fprintf
    - to_hex_str
    - NSC_OpenSession
    - hex_to_byteval
    - memset
    - NSC_DeriveKey
    - fopen
    - isspace
    - fclose
    - malloc
    - strncmp
    - free
    - fputc
    - sscanf
    - fgets
    - NSC_Initialize
    - NSC_CreateObject
    - NSC_Finalize
    - NSC_GetSlotList
    - NSC_CloseSession
    linkageType: ''
    returnType: void
    signature: void tls(char *reqfn)
  - BBCount: 41
    BranchProfiles: []
    Callsites:
    - Dst: NSC_Initialize
      Src: /src/nss/cmd/fipstest/fipstest.c:7027,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:7029,1
    - Dst: NSC_GetSlotList
      Src: /src/nss/cmd/fipstest/fipstest.c:7033,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:7035,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:7039,1
    - Dst: fopen
      Src: /src/nss/cmd/fipstest/fipstest.c:7045,1
    - Dst: fgets
      Src: /src/nss/cmd/fipstest/fipstest.c:7047,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:7050,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:7055,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:7059,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:7063,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:7067,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:7071,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:7075,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:7079,1
    - Dst: sscanf
      Src: /src/nss/cmd/fipstest/fipstest.c:7080,1
    - Dst: free
      Src: /src/nss/cmd/fipstest/fipstest.c:7086,1
    - Dst: malloc
      Src: /src/nss/cmd/fipstest/fipstest.c:7087,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:7091,1
    - Dst: sscanf
      Src: /src/nss/cmd/fipstest/fipstest.c:7092,1
    - Dst: free
      Src: /src/nss/cmd/fipstest/fipstest.c:7097,1
    - Dst: malloc
      Src: /src/nss/cmd/fipstest/fipstest.c:7098,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:7102,1
    - Dst: sscanf
      Src: /src/nss/cmd/fipstest/fipstest.c:7103,1
    - Dst: free
      Src: /src/nss/cmd/fipstest/fipstest.c:7108,1
    - Dst: malloc
      Src: /src/nss/cmd/fipstest/fipstest.c:7109,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:7113,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:7117,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:7119,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:7120,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:7121,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:7122,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:7123,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:7124,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:7128,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:7130,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:7134,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:7136,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:7140,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:7142,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:7146,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:7148,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:7152,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:7154,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:7158,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:7160,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:7164,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:7166,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:7170,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:7172,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:7176,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:7184,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:7188,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:7190,1
    - Dst: NSC_OpenSession
      Src: /src/nss/cmd/fipstest/fipstest.c:7191,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:7193,1
    - Dst: NSC_CreateObject
      Src: /src/nss/cmd/fipstest/fipstest.c:7197,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:7200,1
    - Dst: NSC_DeriveKey
      Src: /src/nss/cmd/fipstest/fipstest.c:7205,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:7209,1
    - Dst: NSC_GetAttributeValue
      Src: /src/nss/cmd/fipstest/fipstest.c:7214,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:7217,1
    - Dst: NSC_DeriveKey
      Src: /src/nss/cmd/fipstest/fipstest.c:7227,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:7231,1
    - Dst: NSC_DeriveKey
      Src: /src/nss/cmd/fipstest/fipstest.c:7240,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:7244,1
    - Dst: NSC_DeriveKey
      Src: /src/nss/cmd/fipstest/fipstest.c:7252,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:7256,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:7260,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:7261,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:7262,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:7263,1
    - Dst: NSC_GetAttributeValue
      Src: /src/nss/cmd/fipstest/fipstest.c:7266,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:7269,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:7273,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:7274,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:7275,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:7276,1
    - Dst: NSC_GetAttributeValue
      Src: /src/nss/cmd/fipstest/fipstest.c:7279,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:7282,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:7286,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:7287,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:7288,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:7289,1
    - Dst: NSC_GetAttributeValue
      Src: /src/nss/cmd/fipstest/fipstest.c:7292,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:7295,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:7299,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:7300,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:7301,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:7302,1
    - Dst: NSC_CloseSession
      Src: /src/nss/cmd/fipstest/fipstest.c:7304,1
    - Dst: NSC_Finalize
      Src: /src/nss/cmd/fipstest/fipstest.c:7309,1
    - Dst: free
      Src: /src/nss/cmd/fipstest/fipstest.c:7311,1
    - Dst: free
      Src: /src/nss/cmd/fipstest/fipstest.c:7313,1
    - Dst: free
      Src: /src/nss/cmd/fipstest/fipstest.c:7315,1
    - Dst: fclose
      Src: /src/nss/cmd/fipstest/fipstest.c:7317,1
    CyclomaticComplexity: 82
    EdgeCount: 82
    ICount: 281
    argCount: 1
    argNames:
    - reqfn
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7318
      start: 6940
    functionDepth: 2
    functionLinenumber: 6940
    functionLinenumberEnd: 7318
    functionName: ikev1
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 0
    functionsReached:
    - fputs
    - NSC_GetAttributeValue
    - fprintf
    - to_hex_str
    - NSC_OpenSession
    - hex_to_byteval
    - memset
    - NSC_DeriveKey
    - fopen
    - isspace
    - fclose
    - malloc
    - strncmp
    - free
    - fputc
    - sscanf
    - fgets
    - NSC_Initialize
    - NSC_CreateObject
    - NSC_Finalize
    - NSC_GetSlotList
    - NSC_CloseSession
    linkageType: ''
    returnType: void
    signature: void ikev1(char *reqfn)
  - BBCount: 47
    BranchProfiles: []
    Callsites:
    - Dst: NSC_Initialize
      Src: /src/nss/cmd/fipstest/fipstest.c:7417,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:7419,1
    - Dst: NSC_GetSlotList
      Src: /src/nss/cmd/fipstest/fipstest.c:7423,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:7425,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:7429,1
    - Dst: fopen
      Src: /src/nss/cmd/fipstest/fipstest.c:7435,1
    - Dst: fgets
      Src: /src/nss/cmd/fipstest/fipstest.c:7437,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:7440,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:7445,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:7449,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:7453,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:7457,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:7461,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:7465,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:7469,1
    - Dst: sscanf
      Src: /src/nss/cmd/fipstest/fipstest.c:7470,1
    - Dst: free
      Src: /src/nss/cmd/fipstest/fipstest.c:7476,1
    - Dst: malloc
      Src: /src/nss/cmd/fipstest/fipstest.c:7477,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:7481,1
    - Dst: sscanf
      Src: /src/nss/cmd/fipstest/fipstest.c:7482,1
    - Dst: free
      Src: /src/nss/cmd/fipstest/fipstest.c:7488,1
    - Dst: malloc
      Src: /src/nss/cmd/fipstest/fipstest.c:7489,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:7493,1
    - Dst: sscanf
      Src: /src/nss/cmd/fipstest/fipstest.c:7494,1
    - Dst: free
      Src: /src/nss/cmd/fipstest/fipstest.c:7499,1
    - Dst: malloc
      Src: /src/nss/cmd/fipstest/fipstest.c:7500,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:7504,1
    - Dst: sscanf
      Src: /src/nss/cmd/fipstest/fipstest.c:7505,1
    - Dst: free
      Src: /src/nss/cmd/fipstest/fipstest.c:7510,1
    - Dst: malloc
      Src: /src/nss/cmd/fipstest/fipstest.c:7511,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:7515,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:7519,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:7521,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:7522,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:7523,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:7524,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:7525,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:7526,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:7530,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:7532,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:7536,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:7538,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:7542,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:7544,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:7548,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:7550,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:7554,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:7556,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:7560,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:7562,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:7566,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:7568,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:7572,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:7574,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:7578,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:7580,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:7584,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:7586,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:7590,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:7599,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:7603,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:7605,1
    - Dst: NSC_OpenSession
      Src: /src/nss/cmd/fipstest/fipstest.c:7606,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:7608,1
    - Dst: NSC_CreateObject
      Src: /src/nss/cmd/fipstest/fipstest.c:7612,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:7615,1
    - Dst: NSC_CreateObject
      Src: /src/nss/cmd/fipstest/fipstest.c:7619,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:7622,1
    - Dst: NSC_DeriveKey
      Src: /src/nss/cmd/fipstest/fipstest.c:7627,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:7631,1
    - Dst: NSC_GetAttributeValue
      Src: /src/nss/cmd/fipstest/fipstest.c:7636,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:7639,1
    - Dst: NSC_DeriveKey
      Src: /src/nss/cmd/fipstest/fipstest.c:7649,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:7653,1
    - Dst: NSC_DeriveKey
      Src: /src/nss/cmd/fipstest/fipstest.c:7662,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:7666,1
    - Dst: NSC_DeriveKey
      Src: /src/nss/cmd/fipstest/fipstest.c:7674,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:7678,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:7682,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:7683,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:7684,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:7685,1
    - Dst: NSC_GetAttributeValue
      Src: /src/nss/cmd/fipstest/fipstest.c:7688,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:7691,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:7695,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:7696,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:7697,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:7698,1
    - Dst: NSC_GetAttributeValue
      Src: /src/nss/cmd/fipstest/fipstest.c:7701,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:7704,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:7708,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:7709,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:7710,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:7711,1
    - Dst: NSC_GetAttributeValue
      Src: /src/nss/cmd/fipstest/fipstest.c:7714,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:7717,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:7721,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:7722,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:7723,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:7724,1
    - Dst: NSC_CloseSession
      Src: /src/nss/cmd/fipstest/fipstest.c:7726,1
    - Dst: NSC_Finalize
      Src: /src/nss/cmd/fipstest/fipstest.c:7731,1
    - Dst: free
      Src: /src/nss/cmd/fipstest/fipstest.c:7733,1
    - Dst: free
      Src: /src/nss/cmd/fipstest/fipstest.c:7735,1
    - Dst: free
      Src: /src/nss/cmd/fipstest/fipstest.c:7737,1
    - Dst: free
      Src: /src/nss/cmd/fipstest/fipstest.c:7739,1
    - Dst: fclose
      Src: /src/nss/cmd/fipstest/fipstest.c:7741,1
    CyclomaticComplexity: 94
    EdgeCount: 94
    ICount: 312
    argCount: 1
    argNames:
    - reqfn
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7742
      start: 7320
    functionDepth: 2
    functionLinenumber: 7320
    functionLinenumberEnd: 7742
    functionName: ikev1_psk
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 0
    functionsReached:
    - fputs
    - NSC_GetAttributeValue
    - fprintf
    - to_hex_str
    - NSC_OpenSession
    - hex_to_byteval
    - memset
    - NSC_DeriveKey
    - fopen
    - isspace
    - fclose
    - malloc
    - strncmp
    - free
    - fputc
    - sscanf
    - fgets
    - NSC_Initialize
    - NSC_CreateObject
    - NSC_Finalize
    - NSC_GetSlotList
    - NSC_CloseSession
    linkageType: ''
    returnType: void
    signature: void ikev1_psk(char *reqfn)
  - BBCount: 55
    BranchProfiles: []
    Callsites:
    - Dst: NSC_Initialize
      Src: /src/nss/cmd/fipstest/fipstest.c:7832,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:7834,1
    - Dst: NSC_GetSlotList
      Src: /src/nss/cmd/fipstest/fipstest.c:7838,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:7840,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:7844,1
    - Dst: fopen
      Src: /src/nss/cmd/fipstest/fipstest.c:7850,1
    - Dst: fgets
      Src: /src/nss/cmd/fipstest/fipstest.c:7852,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:7855,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:7860,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:7864,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:7868,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:7872,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:7876,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:7880,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:7884,1
    - Dst: sscanf
      Src: /src/nss/cmd/fipstest/fipstest.c:7885,1
    - Dst: free
      Src: /src/nss/cmd/fipstest/fipstest.c:7891,1
    - Dst: free
      Src: /src/nss/cmd/fipstest/fipstest.c:7893,1
    - Dst: malloc
      Src: /src/nss/cmd/fipstest/fipstest.c:7894,1
    - Dst: malloc
      Src: /src/nss/cmd/fipstest/fipstest.c:7895,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:7901,1
    - Dst: sscanf
      Src: /src/nss/cmd/fipstest/fipstest.c:7902,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:7907,1
    - Dst: sscanf
      Src: /src/nss/cmd/fipstest/fipstest.c:7908,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:7913,1
    - Dst: sscanf
      Src: /src/nss/cmd/fipstest/fipstest.c:7914,1
    - Dst: free
      Src: /src/nss/cmd/fipstest/fipstest.c:7920,1
    - Dst: malloc
      Src: /src/nss/cmd/fipstest/fipstest.c:7921,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:7925,1
    - Dst: sscanf
      Src: /src/nss/cmd/fipstest/fipstest.c:7926,1
    - Dst: free
      Src: /src/nss/cmd/fipstest/fipstest.c:7932,1
    - Dst: malloc
      Src: /src/nss/cmd/fipstest/fipstest.c:7933,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:7937,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:7941,1
    - Dst: free
      Src: /src/nss/cmd/fipstest/fipstest.c:7946,1
    - Dst: malloc
      Src: /src/nss/cmd/fipstest/fipstest.c:7948,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:7959,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:7960,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:7961,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:7962,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:7966,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:7968,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:7972,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:7974,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:7978,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:7980,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:7984,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:7986,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:7990,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:7992,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:7996,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:7998,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8002,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:8004,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:8008,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:8010,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8014,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:8016,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:8020,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:8022,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8026,1
    - Dst: isspace
      Src: /src/nss/cmd/fipstest/fipstest.c:8036,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:8040,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:8042,1
    - Dst: NSC_OpenSession
      Src: /src/nss/cmd/fipstest/fipstest.c:8043,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:8045,1
    - Dst: NSC_CreateObject
      Src: /src/nss/cmd/fipstest/fipstest.c:8049,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:8052,1
    - Dst: NSC_CreateObject
      Src: /src/nss/cmd/fipstest/fipstest.c:8056,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:8059,1
    - Dst: NSC_DeriveKey
      Src: /src/nss/cmd/fipstest/fipstest.c:8067,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:8071,1
    - Dst: NSC_GetAttributeValue
      Src: /src/nss/cmd/fipstest/fipstest.c:8076,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:8079,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:8083,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:8084,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:8085,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:8086,1
    - Dst: NSC_DeriveKey
      Src: /src/nss/cmd/fipstest/fipstest.c:8093,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:8097,1
    - Dst: NSC_GetAttributeValue
      Src: /src/nss/cmd/fipstest/fipstest.c:8101,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:8104,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:8108,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:8109,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:8110,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:8111,1
    - Dst: NSC_DeriveKey
      Src: /src/nss/cmd/fipstest/fipstest.c:8115,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:8119,1
    - Dst: NSC_DeriveKey
      Src: /src/nss/cmd/fipstest/fipstest.c:8129,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:8133,1
    - Dst: NSC_GetAttributeValue
      Src: /src/nss/cmd/fipstest/fipstest.c:8137,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:8140,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:8144,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:8145,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:8146,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:8147,1
    - Dst: NSC_DeriveKey
      Src: /src/nss/cmd/fipstest/fipstest.c:8154,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:8158,1
    - Dst: NSC_GetAttributeValue
      Src: /src/nss/cmd/fipstest/fipstest.c:8162,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:8165,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:8169,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:8170,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:8171,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:8172,1
    - Dst: NSC_DeriveKey
      Src: /src/nss/cmd/fipstest/fipstest.c:8178,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:8182,1
    - Dst: NSC_GetAttributeValue
      Src: /src/nss/cmd/fipstest/fipstest.c:8187,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:8190,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:8194,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:8195,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:8196,1
    - Dst: fputc
      Src: /src/nss/cmd/fipstest/fipstest.c:8197,1
    - Dst: NSC_CloseSession
      Src: /src/nss/cmd/fipstest/fipstest.c:8199,1
    - Dst: NSC_Finalize
      Src: /src/nss/cmd/fipstest/fipstest.c:8204,1
    - Dst: free
      Src: /src/nss/cmd/fipstest/fipstest.c:8206,1
    - Dst: free
      Src: /src/nss/cmd/fipstest/fipstest.c:8208,1
    - Dst: free
      Src: /src/nss/cmd/fipstest/fipstest.c:8210,1
    - Dst: free
      Src: /src/nss/cmd/fipstest/fipstest.c:8212,1
    - Dst: free
      Src: /src/nss/cmd/fipstest/fipstest.c:8214,1
    - Dst: fclose
      Src: /src/nss/cmd/fipstest/fipstest.c:8216,1
    CyclomaticComplexity: 106
    EdgeCount: 106
    ICount: 349
    argCount: 1
    argNames:
    - reqfn
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8217
      start: 7744
    functionDepth: 2
    functionLinenumber: 7744
    functionLinenumberEnd: 8217
    functionName: ikev2
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 0
    functionsReached:
    - fputs
    - NSC_GetAttributeValue
    - fprintf
    - to_hex_str
    - NSC_OpenSession
    - hex_to_byteval
    - memset
    - NSC_DeriveKey
    - fopen
    - isspace
    - fclose
    - malloc
    - strncmp
    - free
    - fputc
    - sscanf
    - fgets
    - NSC_Initialize
    - NSC_CreateObject
    - NSC_Finalize
    - NSC_GetSlotList
    - NSC_CloseSession
    linkageType: ''
    returnType: void
    signature: void ikev2(char *reqfn)
  - BBCount: 59
    BranchProfiles: []
    Callsites:
    - Dst: NSC_Initialize
      Src: /src/nss/cmd/fipstest/fipstest.c:8308,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:8310,1
    - Dst: NSC_GetSlotList
      Src: /src/nss/cmd/fipstest/fipstest.c:8315,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:8317,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:8321,1
    - Dst: fopen
      Src: /src/nss/cmd/fipstest/fipstest.c:8329,1
    - Dst: fgets
      Src: /src/nss/cmd/fipstest/fipstest.c:8332,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8336,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8339,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8342,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:8346,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8353,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8356,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8359,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8362,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8365,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8368,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8371,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8374,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8377,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:8378,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8383,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8384,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8387,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8388,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8391,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8396,1
    - Dst: sscanf
      Src: /src/nss/cmd/fipstest/fipstest.c:8397,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:8402,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8411,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:8413,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:8414,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:8415,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:8416,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:8417,1
    - Dst: memset
      Src: /src/nss/cmd/fipstest/fipstest.c:8418,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:8428,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8433,1
    - Dst: sscanf
      Src: /src/nss/cmd/fipstest/fipstest.c:8434,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:8439,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:8440,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:8446,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8451,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:8455,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:8458,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8463,1
    - Dst: sscanf
      Src: /src/nss/cmd/fipstest/fipstest.c:8464,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:8469,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:8470,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:8477,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8480,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:8484,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:8487,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8492,1
    - Dst: sscanf
      Src: /src/nss/cmd/fipstest/fipstest.c:8493,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:8497,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8500,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:8504,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:8507,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8510,1
    - Dst: sscanf
      Src: /src/nss/cmd/fipstest/fipstest.c:8511,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:8515,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8518,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:8522,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:8525,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8530,1
    - Dst: sscanf
      Src: /src/nss/cmd/fipstest/fipstest.c:8531,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:8535,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8538,1
    - Dst: hex_to_byteval
      Src: /src/nss/cmd/fipstest/fipstest.c:8542,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:8545,1
    - Dst: strncmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8550,1
    - Dst: NSC_OpenSession
      Src: /src/nss/cmd/fipstest/fipstest.c:8556,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:8558,1
    - Dst: NSC_CreateObject
      Src: /src/nss/cmd/fipstest/fipstest.c:8564,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:8566,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:8579,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:8625,1
    - Dst: NSC_DeriveKey
      Src: /src/nss/cmd/fipstest/fipstest.c:8708,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:8710,1
    - Dst: NSC_GetAttributeValue
      Src: /src/nss/cmd/fipstest/fipstest.c:8714,1
    - Dst: fprintf
      Src: /src/nss/cmd/fipstest/fipstest.c:8716,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:8720,1
    - Dst: to_hex_str
      Src: /src/nss/cmd/fipstest/fipstest.c:8721,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:8722,1
    - Dst: fputs
      Src: /src/nss/cmd/fipstest/fipstest.c:8723,1
    - Dst: fclose
      Src: /src/nss/cmd/fipstest/fipstest.c:8731,1
    - Dst: fclose
      Src: /src/nss/cmd/fipstest/fipstest.c:8734,1
    CyclomaticComplexity: 105
    EdgeCount: 105
    ICount: 352
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8738
      start: 8219
    functionDepth: 2
    functionLinenumber: 8219
    functionLinenumberEnd: 8738
    functionName: kbkdf
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 0
    functionsReached:
    - NSC_OpenSession
    - strncmp
    - fclose
    - fputs
    - NSC_GetAttributeValue
    - sscanf
    - fgets
    - hex_to_byteval
    - NSC_Initialize
    - NSC_CreateObject
    - fprintf
    - memset
    - fopen
    - NSC_GetSlotList
    - NSC_DeriveKey
    - to_hex_str
    linkageType: ''
    returnType: void
    signature: void kbkdf(char *path)
  - BBCount: 55
    BranchProfiles: []
    Callsites:
    - Dst: exit
      Src: /src/nss/cmd/fipstest/fipstest.c:8744,1
    - Dst: RNG_RNGInit
      Src: /src/nss/cmd/fipstest/fipstest.c:8746,1
    - Dst: SECOID_Init
      Src: /src/nss/cmd/fipstest/fipstest.c:8747,1
    - Dst: strcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8752,1
    - Dst: strcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8754,1
    - Dst: tdea_kat_mmt
      Src: /src/nss/cmd/fipstest/fipstest.c:8756,1
    - Dst: strcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8757,1
    - Dst: tdea_kat_mmt
      Src: /src/nss/cmd/fipstest/fipstest.c:8759,1
    - Dst: strcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8760,1
    - Dst: strcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8762,1
    - Dst: tdea_mct
      Src: /src/nss/cmd/fipstest/fipstest.c:8764,1
    - Dst: strcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8765,1
    - Dst: tdea_mct
      Src: /src/nss/cmd/fipstest/fipstest.c:8767,1
    - Dst: strcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8773,1
    - Dst: strcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8775,1
    - Dst: aes_kat_mmt
      Src: /src/nss/cmd/fipstest/fipstest.c:8777,1
    - Dst: strcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8778,1
    - Dst: aes_kat_mmt
      Src: /src/nss/cmd/fipstest/fipstest.c:8780,1
    - Dst: strcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8781,1
    - Dst: strcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8782,1
    - Dst: aes_gcm
      Src: /src/nss/cmd/fipstest/fipstest.c:8783,1
    - Dst: strcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8784,1
    - Dst: aes_gcm
      Src: /src/nss/cmd/fipstest/fipstest.c:8785,1
    - Dst: strcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8786,1
    - Dst: aes_gcm
      Src: /src/nss/cmd/fipstest/fipstest.c:8787,1
    - Dst: strcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8789,1
    - Dst: strcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8791,1
    - Dst: aes_ecb_mct
      Src: /src/nss/cmd/fipstest/fipstest.c:8793,1
    - Dst: strcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8794,1
    - Dst: aes_cbc_mct
      Src: /src/nss/cmd/fipstest/fipstest.c:8796,1
    - Dst: strcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8802,1
    - Dst: sha_test
      Src: /src/nss/cmd/fipstest/fipstest.c:8803,1
    - Dst: strcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8807,1
    - Dst: strcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8810,1
    - Dst: rsa_siggen_test
      Src: /src/nss/cmd/fipstest/fipstest.c:8812,1
    - Dst: strcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8813,1
    - Dst: rsa_sigver_test
      Src: /src/nss/cmd/fipstest/fipstest.c:8815,1
    - Dst: strcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8816,1
    - Dst: rsa_keypair_test
      Src: /src/nss/cmd/fipstest/fipstest.c:8818,1
    - Dst: strcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8823,1
    - Dst: hmac_test
      Src: /src/nss/cmd/fipstest/fipstest.c:8824,1
    - Dst: strcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8828,1
    - Dst: strcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8831,1
    - Dst: dsa_keypair_test
      Src: /src/nss/cmd/fipstest/fipstest.c:8833,1
    - Dst: strcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8834,1
    - Dst: dsa_pqggen_test
      Src: /src/nss/cmd/fipstest/fipstest.c:8836,1
    - Dst: strcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8837,1
    - Dst: dsa_pqgver_test
      Src: /src/nss/cmd/fipstest/fipstest.c:8839,1
    - Dst: strcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8840,1
    - Dst: dsa_siggen_test
      Src: /src/nss/cmd/fipstest/fipstest.c:8842,1
    - Dst: strcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8843,1
    - Dst: dsa_sigver_test
      Src: /src/nss/cmd/fipstest/fipstest.c:8845,1
    - Dst: strcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8850,1
    - Dst: strcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8852,1
    - Dst: ecdsa_keypair_test
      Src: /src/nss/cmd/fipstest/fipstest.c:8854,1
    - Dst: strcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8855,1
    - Dst: ecdsa_pkv_test
      Src: /src/nss/cmd/fipstest/fipstest.c:8857,1
    - Dst: strcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8858,1
    - Dst: ecdsa_siggen_test
      Src: /src/nss/cmd/fipstest/fipstest.c:8860,1
    - Dst: strcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8861,1
    - Dst: ecdsa_sigver_test
      Src: /src/nss/cmd/fipstest/fipstest.c:8863,1
    - Dst: strcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8868,1
    - Dst: strcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8870,1
    - Dst: ecdh_functional
      Src: /src/nss/cmd/fipstest/fipstest.c:8871,1
    - Dst: strcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8872,1
    - Dst: ecdh_functional
      Src: /src/nss/cmd/fipstest/fipstest.c:8873,1
    - Dst: strcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8874,1
    - Dst: ecdh_verify
      Src: /src/nss/cmd/fipstest/fipstest.c:8875,1
    - Dst: strcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8876,1
    - Dst: ecdh_verify
      Src: /src/nss/cmd/fipstest/fipstest.c:8877,1
    - Dst: strcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8882,1
    - Dst: strcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8884,1
    - Dst: dh_functional
      Src: /src/nss/cmd/fipstest/fipstest.c:8885,1
    - Dst: strcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8886,1
    - Dst: dh_functional
      Src: /src/nss/cmd/fipstest/fipstest.c:8887,1
    - Dst: strcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8888,1
    - Dst: dh_verify
      Src: /src/nss/cmd/fipstest/fipstest.c:8889,1
    - Dst: strcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8890,1
    - Dst: dh_verify
      Src: /src/nss/cmd/fipstest/fipstest.c:8891,1
    - Dst: strcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8896,1
    - Dst: strcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8898,1
    - Dst: rng_vst
      Src: /src/nss/cmd/fipstest/fipstest.c:8900,1
    - Dst: strcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8901,1
    - Dst: rng_mct
      Src: /src/nss/cmd/fipstest/fipstest.c:8903,1
    - Dst: strcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8905,1
    - Dst: drbg
      Src: /src/nss/cmd/fipstest/fipstest.c:8907,1
    - Dst: strcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8908,1
    - Dst: drbg
      Src: /src/nss/cmd/fipstest/fipstest.c:8910,1
    - Dst: strcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8911,1
    - Dst: tls
      Src: /src/nss/cmd/fipstest/fipstest.c:8912,1
    - Dst: strcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8913,1
    - Dst: ikev1
      Src: /src/nss/cmd/fipstest/fipstest.c:8914,1
    - Dst: strcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8915,1
    - Dst: ikev1_psk
      Src: /src/nss/cmd/fipstest/fipstest.c:8916,1
    - Dst: strcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8917,1
    - Dst: ikev2
      Src: /src/nss/cmd/fipstest/fipstest.c:8918,1
    - Dst: strcmp
      Src: /src/nss/cmd/fipstest/fipstest.c:8919,1
    - Dst: kbkdf
      Src: /src/nss/cmd/fipstest/fipstest.c:8920,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 155
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8923
      start: 8740
    functionDepth: 4
    functionLinenumber: 8740
    functionLinenumberEnd: 8923
    functionName: main
    functionSourceFile: /src/nss/cmd/fipstest/fipstest.c
    functionUses: 2
    functionsReached:
    - RNG_RNGInit
    - hmac_test
    - aes_gcm
    - dsa_siggen_test
    - tdea_kat_mmt
    - ecdsa_sigver_test
    - ikev1
    - drbg
    - ikev1_psk
    - rng_vst
    - aes_kat_mmt
    - ecdsa_siggen_test
    - ikev2
    - rsa_sigver_test
    - dsa_keypair_test
    - dh_verify
    - ecdsa_pkv_test
    - sha_test
    - tls
    - exit
    - ecdh_functional
    - aes_ecb_mct
    - SECOID_Init
    - ecdsa_keypair_test
    - rsa_keypair_test
    - dh_functional
    - rng_mct
    - strcmp
    - kbkdf
    - dsa_pqgver_test
    - dsa_sigver_test
    - dsa_pqggen_test
    - tdea_mct
    - rsa_siggen_test
    - ecdh_verify
    - aes_cbc_mct
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/cmd/digest/digest.c:27,1
    - Dst: HASH_GetHashOidTagByHashType
      Src: /src/nss/cmd/digest/digest.c:27,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/cmd/digest/digest.c:28,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - hashName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 36
    functionName: HashNameToOID
    functionSourceFile: /src/nss/cmd/digest/digest.c
    functionUses: 0
    functionsReached:
    - PORT_Strcasecmp
    - HASH_GetHashOidTagByHashType
    - SECOID_FindOIDByTag
    linkageType: ''
    returnType: SECOidData
    signature: 'SECOidData *

      HashNameToOID(const char *hashName)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/digest/digest.c:43,1
    - Dst: fprintf
      Src: /src/nss/cmd/digest/digest.c:46,1
    - Dst: fprintf
      Src: /src/nss/cmd/digest/digest.c:48,1
    - Dst: fputs
      Src: /src/nss/cmd/digest/digest.c:50,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/cmd/digest/digest.c:50,1
    - Dst: HASH_GetHashOidTagByHashType
      Src: /src/nss/cmd/digest/digest.c:50,1
    - Dst: fprintf
      Src: /src/nss/cmd/digest/digest.c:53,1
    - Dst: fprintf
      Src: /src/nss/cmd/digest/digest.c:55,1
    - Dst: fprintf
      Src: /src/nss/cmd/digest/digest.c:57,1
    - Dst: fprintf
      Src: /src/nss/cmd/digest/digest.c:58,1
    - Dst: fprintf
      Src: /src/nss/cmd/digest/digest.c:60,1
    - Dst: exit
      Src: /src/nss/cmd/digest/digest.c:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - progName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 63
    functionName: Usage
    functionSourceFile: /src/nss/cmd/digest/digest.c
    functionUses: 64
    functionsReached:
    - fputs
    - SECOID_FindOIDByTag
    - exit
    - fprintf
    - HASH_GetHashOidTagByHashType
    linkageType: ''
    returnType: void
    signature: void Usage(char *progName)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PK11_CreateDigestContext
      Src: /src/nss/cmd/digest/digest.c:74,1
    - Dst: PK11_DigestBegin
      Src: /src/nss/cmd/digest/digest.c:78,1
    - Dst: feof
      Src: /src/nss/cmd/digest/digest.c:81,1
    - Dst: fread
      Src: /src/nss/cmd/digest/digest.c:83,1
    - Dst: ferror
      Src: /src/nss/cmd/digest/digest.c:86,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/digest/digest.c:87,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/cmd/digest/digest.c:88,1
    - Dst: PK11_DigestOp
      Src: /src/nss/cmd/digest/digest.c:95,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/cmd/digest/digest.c:97,1
    - Dst: PK11_DigestFinal
      Src: /src/nss/cmd/digest/digest.c:102,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/cmd/digest/digest.c:103,1
    - Dst: fwrite
      Src: /src/nss/cmd/digest/digest.c:108,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/digest/digest.c:110,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 3
    argNames:
    - outFile
    - inFile
    - hashOID
    argTypes:
    - FILE*
    - FILE*
    - SECOidData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 115
    functionName: DigestFile
    functionSourceFile: /src/nss/cmd/digest/digest.c
    functionUses: 0
    functionsReached:
    - PK11_DestroyContext
    - PK11_DigestOp
    - PK11_CreateDigestContext
    - ferror
    - feof
    - PORT_SetError
    - fwrite
    - fread
    - PK11_DigestBegin
    - PK11_DigestFinal
    linkageType: ''
    returnType: int
    signature: int DigestFile(FILE *outFile, FILE *inFile, SECOidData *hashOID)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/nss/cmd/digest/digest.c:130,1
    - Dst: NSS_Init
      Src: /src/nss/cmd/digest/digest.c:137,1
    - Dst: fprintf
      Src: /src/nss/cmd/digest/digest.c:139,1
    - Dst: PL_CreateOptState
      Src: /src/nss/cmd/digest/digest.c:147,1
    - Dst: PL_GetNextOpt
      Src: /src/nss/cmd/digest/digest.c:148,1
    - Dst: Usage
      Src: /src/nss/cmd/digest/digest.c:151,1
    - Dst: fopen
      Src: /src/nss/cmd/digest/digest.c:155,1
    - Dst: fprintf
      Src: /src/nss/cmd/digest/digest.c:157,1
    - Dst: fopen
      Src: /src/nss/cmd/digest/digest.c:164,1
    - Dst: fprintf
      Src: /src/nss/cmd/digest/digest.c:166,1
    - Dst: strdup
      Src: /src/nss/cmd/digest/digest.c:173,1
    - Dst: Usage
      Src: /src/nss/cmd/digest/digest.c:179,1
    - Dst: HashNameToOID
      Src: /src/nss/cmd/digest/digest.c:186,1
    - Dst: free
      Src: /src/nss/cmd/digest/digest.c:187,1
    - Dst: fprintf
      Src: /src/nss/cmd/digest/digest.c:189,1
    - Dst: Usage
      Src: /src/nss/cmd/digest/digest.c:190,1
    - Dst: DigestFile
      Src: /src/nss/cmd/digest/digest.c:193,1
    - Dst: fprintf
      Src: /src/nss/cmd/digest/digest.c:194,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/digest/digest.c:195,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/digest/digest.c:195,1
    - Dst: NSS_Shutdown
      Src: /src/nss/cmd/digest/digest.c:199,1
    - Dst: exit
      Src: /src/nss/cmd/digest/digest.c:200,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 56
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 204
    functionName: main
    functionSourceFile: /src/nss/cmd/digest/digest.c
    functionUses: 2
    functionsReached:
    - strdup
    - free
    - DigestFile
    - SECU_Strerror
    - NSS_Init
    - PL_GetNextOpt
    - PORT_GetError
    - exit
    - fprintf
    - fopen
    - NSS_Shutdown
    - HashNameToOID
    - strrchr
    - Usage
    - PL_CreateOptState
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/p7sign/p7sign.c:40,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7sign/p7sign.c:43,1
    - Dst: strlen
      Src: /src/nss/cmd/p7sign/p7sign.c:45,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7sign/p7sign.c:46,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7sign/p7sign.c:48,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7sign/p7sign.c:50,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7sign/p7sign.c:52,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7sign/p7sign.c:54,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7sign/p7sign.c:56,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7sign/p7sign.c:57,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7sign/p7sign.c:58,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7sign/p7sign.c:60,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7sign/p7sign.c:62,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/cmd/p7sign/p7sign.c:63,1
    - Dst: HASH_GetHashOidTagByHashType
      Src: /src/nss/cmd/p7sign/p7sign.c:63,1
    - Dst: fputc
      Src: /src/nss/cmd/p7sign/p7sign.c:64,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7sign/p7sign.c:65,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7sign/p7sign.c:67,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7sign/p7sign.c:68,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7sign/p7sign.c:69,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7sign/p7sign.c:70,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7sign/p7sign.c:71,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7sign/p7sign.c:72,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7sign/p7sign.c:73,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7sign/p7sign.c:74,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7sign/p7sign.c:75,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7sign/p7sign.c:76,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7sign/p7sign.c:77,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7sign/p7sign.c:78,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7sign/p7sign.c:79,1
    - Dst: exit
      Src: /src/nss/cmd/p7sign/p7sign.c:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 1
    argNames:
    - progName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 81
    functionName: Usage
    functionSourceFile: /src/nss/cmd/p7sign/p7sign.c
    functionUses: 65
    functionsReached:
    - SECOID_FindOIDByTag
    - fputc
    - exit
    - fprintf
    - HASH_GetHashOidTagByHashType
    - strlen
    linkageType: ''
    returnType: void
    signature: void Usage(char *progName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwrite
      Src: /src/nss/cmd/p7sign/p7sign.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - arg
    - buf
    - len
    argTypes:
    - void*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 90
    functionName: SignOut
    functionSourceFile: /src/nss/cmd/p7sign/p7sign.c
    functionUses: 0
    functionsReached:
    - fwrite
    linkageType: ''
    returnType: void
    signature: void SignOut(void *arg, const char *buf, unsigned long len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HASH_GetHashObject
      Src: /src/nss/cmd/p7sign/p7sign.c:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - data
    - digestdata
    - len
    - maxlen
    - hashAlg
    argTypes:
    - SECItem*
    - char*
    - unsigned int*
    - unsigned int
    - HASH_HashType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 110
    functionName: CreateDigest
    functionSourceFile: /src/nss/cmd/p7sign/p7sign.c
    functionUses: 0
    functionsReached:
    - HASH_GetHashObject
    linkageType: ''
    returnType: int
    signature: "int CreateDigest(SECItem *data, char *digestdata, unsigned int *len,\n
      \            unsigned int maxlen, HASH_HashType hashAlg)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SECU_ReadDERFromFile
      Src: /src/nss/cmd/p7sign/p7sign.c:127,1
    - Dst: CreateDigest
      Src: /src/nss/cmd/p7sign/p7sign.c:136,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/p7sign/p7sign.c:138,1
    - Dst: SEC_PKCS7CreateSignedData
      Src: /src/nss/cmd/p7sign/p7sign.c:145,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/p7sign/p7sign.c:150,1
    - Dst: SEC_PKCS7SetContent
      Src: /src/nss/cmd/p7sign/p7sign.c:155,1
    - Dst: SEC_PKCS7IncludeCertChain
      Src: /src/nss/cmd/p7sign/p7sign.c:158,1
    - Dst: SEC_PKCS7DestroyContentInfo
      Src: /src/nss/cmd/p7sign/p7sign.c:160,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/p7sign/p7sign.c:161,1
    - Dst: SEC_PKCS7Encode
      Src: /src/nss/cmd/p7sign/p7sign.c:165,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/p7sign/p7sign.c:168,1
    - Dst: SEC_PKCS7DestroyContentInfo
      Src: /src/nss/cmd/p7sign/p7sign.c:169,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 7
    argNames:
    - outFile
    - inFile
    - cert
    - encapsulated
    - hashAlg
    - hashAlgOid
    - usage
    argTypes:
    - FILE*
    - PRFileDesc*
    - CERTCertificate*
    - PRBool
    - HASH_HashType
    - SECOidTag
    - SECCertUsage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 175
    functionName: SignFile
    functionSourceFile: /src/nss/cmd/p7sign/p7sign.c
    functionUses: 1
    functionsReached:
    - SEC_PKCS7Encode
    - SECU_ReadDERFromFile
    - SEC_PKCS7DestroyContentInfo
    - CreateDigest
    - SEC_PKCS7CreateSignedData
    - SEC_PKCS7SetContent
    - SEC_PKCS7IncludeCertChain
    - SECITEM_FreeItem
    linkageType: ''
    returnType: int
    signature: "int SignFile(FILE *outFile, PRFileDesc *inFile, CERTCertificate *cert,\n
      \        PRBool encapsulated, HASH_HashType hashAlg, SECOidTag hashAlgOid,\n
      \        SECCertUsage usage)"
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/nss/cmd/p7sign/p7sign.c:194,1
    - Dst: PL_CreateOptState
      Src: /src/nss/cmd/p7sign/p7sign.c:204,1
    - Dst: PL_GetNextOpt
      Src: /src/nss/cmd/p7sign/p7sign.c:205,1
    - Dst: Usage
      Src: /src/nss/cmd/p7sign/p7sign.c:208,1
    - Dst: SECU_ConfigDirectory
      Src: /src/nss/cmd/p7sign/p7sign.c:217,1
    - Dst: PR_Open
      Src: /src/nss/cmd/p7sign/p7sign.c:221,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7sign/p7sign.c:223,1
    - Dst: strdup
      Src: /src/nss/cmd/p7sign/p7sign.c:230,1
    - Dst: fopen
      Src: /src/nss/cmd/p7sign/p7sign.c:234,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7sign/p7sign.c:236,1
    - Dst: strdup
      Src: /src/nss/cmd/p7sign/p7sign.c:243,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/p7sign/p7sign.c:248,1
    - Dst: HASH_GetHashOidTagByHashType
      Src: /src/nss/cmd/p7sign/p7sign.c:254,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/cmd/p7sign/p7sign.c:255,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/cmd/p7sign/p7sign.c:256,1
    - Dst: Usage
      Src: /src/nss/cmd/p7sign/p7sign.c:260,1
    - Dst: atoi
      Src: /src/nss/cmd/p7sign/p7sign.c:264,1
    - Dst: Usage
      Src: /src/nss/cmd/p7sign/p7sign.c:266,1
    - Dst: PL_DestroyOptState
      Src: /src/nss/cmd/p7sign/p7sign.c:270,1
    - Dst: Usage
      Src: /src/nss/cmd/p7sign/p7sign.c:273,1
    - Dst: PR_Init
      Src: /src/nss/cmd/p7sign/p7sign.c:281,1
    - Dst: NSS_Init
      Src: /src/nss/cmd/p7sign/p7sign.c:282,1
    - Dst: SECU_ConfigDirectory
      Src: /src/nss/cmd/p7sign/p7sign.c:282,1
    - Dst: SECU_PrintPRandOSError
      Src: /src/nss/cmd/p7sign/p7sign.c:284,1
    - Dst: PK11_SetPasswordFunc
      Src: /src/nss/cmd/p7sign/p7sign.c:288,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/cmd/p7sign/p7sign.c:291,1
    - Dst: SECU_FindCertByNicknameOrFilename
      Src: /src/nss/cmd/p7sign/p7sign.c:298,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/p7sign/p7sign.c:300,1
    - Dst: SignFile
      Src: /src/nss/cmd/p7sign/p7sign.c:307,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/p7sign/p7sign.c:309,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/p7sign/p7sign.c:316,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/p7sign/p7sign.c:319,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/p7sign/p7sign.c:322,1
    - Dst: PR_Close
      Src: /src/nss/cmd/p7sign/p7sign.c:325,1
    - Dst: fclose
      Src: /src/nss/cmd/p7sign/p7sign.c:328,1
    - Dst: NSS_Shutdown
      Src: /src/nss/cmd/p7sign/p7sign.c:330,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/p7sign/p7sign.c:331,1
    - Dst: exit
      Src: /src/nss/cmd/p7sign/p7sign.c:332,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 115
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 336
    functionName: main
    functionSourceFile: /src/nss/cmd/p7sign/p7sign.c
    functionUses: 2
    functionsReached:
    - NSS_Init
    - PL_DestroyOptState
    - fprintf
    - Usage
    - PORT_Strcasecmp
    - SECU_FindCertByNicknameOrFilename
    - fopen
    - CERT_GetDefaultCertDB
    - HASH_GetHashOidTagByHashType
    - strrchr
    - PL_CreateOptState
    - strdup
    - fclose
    - SECU_PrintError
    - PR_Init
    - SECU_PrintPRandOSError
    - exit
    - PR_Open
    - CERT_DestroyCertificate
    - PR_Close
    - PK11_SetPasswordFunc
    - SECU_ConfigDirectory
    - SECOID_FindOIDByTag
    - PL_GetNextOpt
    - PORT_Free
    - atoi
    - SignFile
    - NSS_Shutdown
    - PORT_Strdup
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:46,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:50,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:52,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - out
    - data
    - m
    argTypes:
    - FILE*
    - SECItem*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 56
    functionName: sv_PrintAsHex
    functionSourceFile: /src/nss/cmd/signver/pk7print.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void sv_PrintAsHex(FILE *out, SECItem *data, char *m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sv_PrintAsHex
      Src: /src/nss/cmd/signver/pk7print.c:64,1
    - Dst: DER_GetInteger
      Src: /src/nss/cmd/signver/pk7print.c:66,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - out
    - i
    - m
    argTypes:
    - FILE*
    - SECItem*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 69
    functionName: sv_PrintInteger
    functionSourceFile: /src/nss/cmd/signver/pk7print.c
    functionUses: 0
    functionsReached:
    - sv_PrintAsHex
    - fprintf
    - DER_GetInteger
    linkageType: ''
    returnType: void
    signature: void sv_PrintInteger(FILE *out, SECItem *i, char *m)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DER_DecodeTimeChoice
      Src: /src/nss/cmd/signver/pk7print.c:79,1
    - Dst: PR_ExplodeTime
      Src: /src/nss/cmd/signver/pk7print.c:84,1
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/signver/pk7print.c:86,1
    - Dst: PR_FormatTime
      Src: /src/nss/cmd/signver/pk7print.c:89,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:90,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/signver/pk7print.c:92,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - out
    - t
    - m
    argTypes:
    - FILE*
    - SECItem*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 96
    functionName: sv_PrintTime
    functionSourceFile: /src/nss/cmd/signver/pk7print.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_Free
    - DER_DecodeTimeChoice
    - PR_FormatTime
    - PR_ExplodeTime
    - fprintf
    linkageType: ''
    returnType: int
    signature: int sv_PrintTime(FILE *out, SECItem *t, char *m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:103,1
    - Dst: sv_PrintTime
      Src: /src/nss/cmd/signver/pk7print.c:104,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:107,1
    - Dst: sv_PrintTime
      Src: /src/nss/cmd/signver/pk7print.c:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - out
    - v
    - m
    argTypes:
    - FILE*
    - CERTValidity*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 110
    functionName: sv_PrintValidity
    functionSourceFile: /src/nss/cmd/signver/pk7print.c
    functionUses: 0
    functionsReached:
    - fprintf
    - sv_PrintTime
    linkageType: ''
    returnType: int
    signature: int sv_PrintValidity(FILE *out, CERTValidity *v, char *m)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOID
      Src: /src/nss/cmd/signver/pk7print.c:118,1
    - Dst: sv_PrintAsHex
      Src: /src/nss/cmd/signver/pk7print.c:120,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:126,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - out
    - oid
    - m
    argTypes:
    - FILE*
    - SECItem*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 128
    functionName: sv_PrintObjectID
    functionSourceFile: /src/nss/cmd/signver/pk7print.c
    functionUses: 0
    functionsReached:
    - sv_PrintAsHex
    - fprintf
    - SECOID_FindOID
    linkageType: ''
    returnType: void
    signature: void sv_PrintObjectID(FILE *out, SECItem *oid, char *m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sv_PrintObjectID
      Src: /src/nss/cmd/signver/pk7print.c:133,1
    - Dst: PORT_Memcmp
      Src: /src/nss/cmd/signver/pk7print.c:136,1
    - Dst: sv_PrintAsHex
      Src: /src/nss/cmd/signver/pk7print.c:138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - out
    - a
    - m
    argTypes:
    - FILE*
    - SECAlgorithmID*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 140
    functionName: sv_PrintAlgorithmID
    functionSourceFile: /src/nss/cmd/signver/pk7print.c
    functionUses: 0
    functionsReached:
    - PORT_Memcmp
    - sv_PrintObjectID
    - sv_PrintAsHex
    linkageType: ''
    returnType: void
    signature: void sv_PrintAlgorithmID(FILE *out, SECAlgorithmID *a, char *m)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:149,1
    - Dst: sv_PrintObjectID
      Src: /src/nss/cmd/signver/pk7print.c:155,1
    - Dst: snprintf
      Src: /src/nss/cmd/signver/pk7print.c:159,1
    - Dst: sv_PrintAsHex
      Src: /src/nss/cmd/signver/pk7print.c:161,1
    - Dst: sv_PrintAsHex
      Src: /src/nss/cmd/signver/pk7print.c:165,1
    - Dst: sv_PrintObjectID
      Src: /src/nss/cmd/signver/pk7print.c:168,1
    - Dst: sv_PrintTime
      Src: /src/nss/cmd/signver/pk7print.c:171,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - out
    - attr
    - m
    argTypes:
    - FILE*
    - SEC_PKCS7Attribute*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 177
    functionName: sv_PrintAttribute
    functionSourceFile: /src/nss/cmd/signver/pk7print.c
    functionUses: 0
    functionsReached:
    - sv_PrintObjectID
    - fprintf
    - sv_PrintAsHex
    - snprintf
    - sv_PrintTime
    linkageType: ''
    returnType: void
    signature: void sv_PrintAttribute(FILE *out, SEC_PKCS7Attribute *attr, char *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CERT_NameToAscii
      Src: /src/nss/cmd/signver/pk7print.c:184,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:185,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/signver/pk7print.c:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - out
    - name
    - msg
    argTypes:
    - FILE*
    - CERTName*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 187
    functionName: sv_PrintName
    functionSourceFile: /src/nss/cmd/signver/pk7print.c
    functionUses: 0
    functionsReached:
    - fprintf
    - PORT_Free
    - CERT_NameToAscii
    linkageType: ''
    returnType: void
    signature: void sv_PrintName(FILE *out, CERTName *name, char *msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOID
      Src: /src/nss/cmd/signver/pk7print.c:199,1
    - Dst: secu_Indent
      Src: /src/nss/cmd/signver/pk7print.c:201,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:202,1
    - Dst: secu_Indent
      Src: /src/nss/cmd/signver/pk7print.c:203,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:204,1
    - Dst: sv_PrintAlgorithmID
      Src: /src/nss/cmd/signver/pk7print.c:207,1
    - Dst: sv_PrintAsHex
      Src: /src/nss/cmd/signver/pk7print.c:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - out
    - src
    - m
    - level
    argTypes:
    - FILE*
    - SEC_PKCS7EncryptedContentInfo*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 194
    functionDepth: 3
    functionLinenumber: 194
    functionLinenumberEnd: 211
    functionName: secu_PrintPKCS7EncContent
    functionSourceFile: /src/nss/cmd/signver/pk7print.c
    functionUses: 0
    functionsReached:
    - SECOID_FindOID
    - sv_PrintAlgorithmID
    - fprintf
    - sv_PrintAsHex
    - secu_Indent
    linkageType: ''
    returnType: void
    signature: "void secu_PrintPKCS7EncContent(FILE *out, SEC_PKCS7EncryptedContentInfo
      *src,\n              char *m, int level)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: secu_Indent
      Src: /src/nss/cmd/signver/pk7print.c:221,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:221,1
    - Dst: sv_PrintInteger
      Src: /src/nss/cmd/signver/pk7print.c:222,1
    - Dst: sv_PrintName
      Src: /src/nss/cmd/signver/pk7print.c:224,1
    - Dst: sv_PrintInteger
      Src: /src/nss/cmd/signver/pk7print.c:225,1
    - Dst: sv_PrintAlgorithmID
      Src: /src/nss/cmd/signver/pk7print.c:229,1
    - Dst: sv_PrintAsHex
      Src: /src/nss/cmd/signver/pk7print.c:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - out
    - info
    - m
    - level
    argTypes:
    - FILE*
    - SEC_PKCS7RecipientInfo*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 217
    functionDepth: 3
    functionLinenumber: 217
    functionLinenumberEnd: 232
    functionName: secu_PrintRecipientInfo
    functionSourceFile: /src/nss/cmd/signver/pk7print.c
    functionUses: 0
    functionsReached:
    - sv_PrintInteger
    - sv_PrintAlgorithmID
    - fprintf
    - sv_PrintAsHex
    - secu_Indent
    - sv_PrintName
    linkageType: ''
    returnType: void
    signature: "void secu_PrintRecipientInfo(FILE *out, SEC_PKCS7RecipientInfo *info,
      char *m,\n            int level)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:245,1
    - Dst: sv_PrintInteger
      Src: /src/nss/cmd/signver/pk7print.c:246,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:248,1
    - Dst: sv_PrintName
      Src: /src/nss/cmd/signver/pk7print.c:249,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:250,1
    - Dst: sv_PrintInteger
      Src: /src/nss/cmd/signver/pk7print.c:251,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:254,1
    - Dst: sv_PrintAlgorithmID
      Src: /src/nss/cmd/signver/pk7print.c:255,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:263,1
    - Dst: snprintf
      Src: /src/nss/cmd/signver/pk7print.c:266,1
    - Dst: sv_PrintAttribute
      Src: /src/nss/cmd/signver/pk7print.c:267,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:272,1
    - Dst: sv_PrintAlgorithmID
      Src: /src/nss/cmd/signver/pk7print.c:273,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:274,1
    - Dst: sv_PrintAsHex
      Src: /src/nss/cmd/signver/pk7print.c:275,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:283,1
    - Dst: snprintf
      Src: /src/nss/cmd/signver/pk7print.c:286,1
    - Dst: sv_PrintAttribute
      Src: /src/nss/cmd/signver/pk7print.c:287,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 3
    argNames:
    - out
    - info
    - m
    argTypes:
    - FILE*
    - SEC_PKCS7SignerInfo*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 239
    functionDepth: 3
    functionLinenumber: 239
    functionLinenumberEnd: 290
    functionName: sv_PrintSignerInfo
    functionSourceFile: /src/nss/cmd/signver/pk7print.c
    functionUses: 0
    functionsReached:
    - sv_PrintInteger
    - sv_PrintAlgorithmID
    - fprintf
    - sv_PrintAsHex
    - snprintf
    - sv_PrintAttribute
    - sv_PrintName
    linkageType: ''
    returnType: void
    signature: void sv_PrintSignerInfo(FILE *out, SEC_PKCS7SignerInfo *info, char
      *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:295,1
    - Dst: sv_PrintInteger
      Src: /src/nss/cmd/signver/pk7print.c:296,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:297,1
    - Dst: sv_PrintInteger
      Src: /src/nss/cmd/signver/pk7print.c:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - out
    - pk
    - m
    argTypes:
    - FILE*
    - SECKEYPublicKey*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 292
    functionDepth: 2
    functionLinenumber: 292
    functionLinenumberEnd: 299
    functionName: sv_PrintRSAPublicKey
    functionSourceFile: /src/nss/cmd/signver/pk7print.c
    functionUses: 0
    functionsReached:
    - fprintf
    - sv_PrintInteger
    linkageType: ''
    returnType: void
    signature: void sv_PrintRSAPublicKey(FILE *out, SECKEYPublicKey *pk, char *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:304,1
    - Dst: sv_PrintInteger
      Src: /src/nss/cmd/signver/pk7print.c:305,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:306,1
    - Dst: sv_PrintInteger
      Src: /src/nss/cmd/signver/pk7print.c:307,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:308,1
    - Dst: sv_PrintInteger
      Src: /src/nss/cmd/signver/pk7print.c:309,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:310,1
    - Dst: sv_PrintInteger
      Src: /src/nss/cmd/signver/pk7print.c:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - out
    - pk
    - m
    argTypes:
    - FILE*
    - SECKEYPublicKey*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 301
    functionDepth: 2
    functionLinenumber: 301
    functionLinenumberEnd: 312
    functionName: sv_PrintDSAPublicKey
    functionSourceFile: /src/nss/cmd/signver/pk7print.c
    functionUses: 0
    functionsReached:
    - fprintf
    - sv_PrintInteger
    linkageType: ''
    returnType: void
    signature: void sv_PrintDSAPublicKey(FILE *out, SECKEYPublicKey *pk, char *m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_MIN
      Src: /src/nss/cmd/signver/pk7print.c:324,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:325,1
    - Dst: sv_PrintObjectID
      Src: /src/nss/cmd/signver/pk7print.c:326,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:328,1
    - Dst: sv_PrintInteger
      Src: /src/nss/cmd/signver/pk7print.c:329,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - out
    - pk
    - m
    argTypes:
    - FILE*
    - SECKEYPublicKey*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 314
    functionDepth: 2
    functionLinenumber: 314
    functionLinenumberEnd: 330
    functionName: sv_PrintECDSAPublicKey
    functionSourceFile: /src/nss/cmd/signver/pk7print.c
    functionUses: 0
    functionsReached:
    - fprintf
    - sv_PrintObjectID
    - PR_MIN
    - sv_PrintInteger
    linkageType: ''
    returnType: void
    signature: void sv_PrintECDSAPublicKey(FILE *out, SECKEYPublicKey *pk, char *m)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/nss/cmd/signver/pk7print.c:340,1
    - Dst: sv_PrintAlgorithmID
      Src: /src/nss/cmd/signver/pk7print.c:341,1
    - Dst: DER_ConvertBitString
      Src: /src/nss/cmd/signver/pk7print.c:343,1
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/cmd/signver/pk7print.c:344,1
    - Dst: SEC_ASN1DecodeItem
      Src: /src/nss/cmd/signver/pk7print.c:347,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/cmd/signver/pk7print.c:348,1
    - Dst: snprintf
      Src: /src/nss/cmd/signver/pk7print.c:352,1
    - Dst: sv_PrintRSAPublicKey
      Src: /src/nss/cmd/signver/pk7print.c:353,1
    - Dst: SEC_ASN1DecodeItem
      Src: /src/nss/cmd/signver/pk7print.c:356,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/cmd/signver/pk7print.c:357,1
    - Dst: SEC_ASN1DecodeItem
      Src: /src/nss/cmd/signver/pk7print.c:363,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/cmd/signver/pk7print.c:364,1
    - Dst: snprintf
      Src: /src/nss/cmd/signver/pk7print.c:369,1
    - Dst: sv_PrintDSAPublicKey
      Src: /src/nss/cmd/signver/pk7print.c:370,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/cmd/signver/pk7print.c:373,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/cmd/signver/pk7print.c:377,1
    - Dst: snprintf
      Src: /src/nss/cmd/signver/pk7print.c:381,1
    - Dst: sv_PrintECDSAPublicKey
      Src: /src/nss/cmd/signver/pk7print.c:382,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:385,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 4
    argNames:
    - out
    - arena
    - i
    - msg
    argTypes:
    - FILE*
    - PLArenaPool*
    - CERTSubjectPublicKeyInfo*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 332
    functionDepth: 3
    functionLinenumber: 332
    functionLinenumberEnd: 390
    functionName: sv_PrintSubjectPublicKeyInfo
    functionSourceFile: /src/nss/cmd/signver/pk7print.c
    functionUses: 0
    functionsReached:
    - sv_PrintRSAPublicKey
    - DER_ConvertBitString
    - sv_PrintECDSAPublicKey
    - sv_PrintAlgorithmID
    - SECITEM_CopyItem
    - SECOID_FindOIDTag
    - SEC_ASN1DecodeItem
    - fprintf
    - snprintf
    - sv_PrintDSAPublicKey
    - SEC_ASN1_GET
    linkageType: ''
    returnType: int
    signature: "int sv_PrintSubjectPublicKeyInfo(FILE *out, PLArenaPool *arena,\n
      \                            CERTSubjectPublicKeyInfo *i, char *msg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1DecodeItem
      Src: /src/nss/cmd/signver/pk7print.c:401,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/cmd/signver/pk7print.c:402,1
    - Dst: DER_GeneralizedTimeToTime
      Src: /src/nss/cmd/signver/pk7print.c:405,1
    - Dst: CERT_GenTime2FormattedAscii
      Src: /src/nss/cmd/signver/pk7print.c:407,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:408,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/signver/pk7print.c:409,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/signver/pk7print.c:412,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - out
    - value
    - msg
    argTypes:
    - FILE*
    - SECItem*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 415
    functionName: sv_PrintInvalidDateExten
    functionSourceFile: /src/nss/cmd/signver/pk7print.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - SEC_ASN1DecodeItem
    - fprintf
    - CERT_GenTime2FormattedAscii
    - DER_GeneralizedTimeToTime
    - SEC_ASN1_GET
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sv_PrintInvalidDateExten(FILE *out, SECItem *value, char
      *msg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:427,1
    - Dst: sv_PrintObjectID
      Src: /src/nss/cmd/signver/pk7print.c:430,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:434,1
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/cmd/signver/pk7print.c:437,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:439,1
    - Dst: sv_PrintInvalidDateExten
      Src: /src/nss/cmd/signver/pk7print.c:442,1
    - Dst: sv_PrintAsHex
      Src: /src/nss/cmd/signver/pk7print.c:444,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - out
    - extensions
    - msg
    argTypes:
    - FILE*
    - CERTCertExtension**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 417
    functionDepth: 2
    functionLinenumber: 417
    functionLinenumberEnd: 452
    functionName: sv_PrintExtensions
    functionSourceFile: /src/nss/cmd/signver/pk7print.c
    functionUses: 0
    functionsReached:
    - sv_PrintObjectID
    - sv_PrintInvalidDateExten
    - fprintf
    - SECOID_FindOIDTag
    - sv_PrintAsHex
    linkageType: ''
    returnType: int
    signature: int sv_PrintExtensions(FILE *out, CERTCertExtension **extensions, char
      *msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:465,1
    - Dst: sv_PrintAlgorithmID
      Src: /src/nss/cmd/signver/pk7print.c:466,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:467,1
    - Dst: sv_PrintName
      Src: /src/nss/cmd/signver/pk7print.c:468,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:469,1
    - Dst: sv_PrintTime
      Src: /src/nss/cmd/signver/pk7print.c:470,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:471,1
    - Dst: sv_PrintTime
      Src: /src/nss/cmd/signver/pk7print.c:472,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:477,1
    - Dst: sv_PrintInteger
      Src: /src/nss/cmd/signver/pk7print.c:478,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:479,1
    - Dst: sv_PrintTime
      Src: /src/nss/cmd/signver/pk7print.c:480,1
    - Dst: snprintf
      Src: /src/nss/cmd/signver/pk7print.c:481,1
    - Dst: sv_PrintExtensions
      Src: /src/nss/cmd/signver/pk7print.c:482,1
    - Dst: snprintf
      Src: /src/nss/cmd/signver/pk7print.c:485,1
    - Dst: sv_PrintExtensions
      Src: /src/nss/cmd/signver/pk7print.c:486,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 3
    argNames:
    - out
    - crl
    - m
    argTypes:
    - FILE*
    - CERTCrl*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 458
    functionDepth: 3
    functionLinenumber: 458
    functionLinenumberEnd: 487
    functionName: sv_PrintCRLInfo
    functionSourceFile: /src/nss/cmd/signver/pk7print.c
    functionUses: 0
    functionsReached:
    - sv_PrintInteger
    - sv_PrintAlgorithmID
    - fprintf
    - sv_PrintExtensions
    - sv_PrintTime
    - snprintf
    - sv_PrintName
    linkageType: ''
    returnType: void
    signature: void sv_PrintCRLInfo(FILE *out, CERTCrl *crl, char *m)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZAlloc
      Src: /src/nss/cmd/signver/pk7print.c:499,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/signver/pk7print.c:501,1
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/signver/pk7print.c:503,1
    - Dst: SEC_ASN1DecodeItem
      Src: /src/nss/cmd/signver/pk7print.c:507,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/cmd/signver/pk7print.c:507,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/signver/pk7print.c:510,1
    - Dst: DER_GetInteger
      Src: /src/nss/cmd/signver/pk7print.c:515,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:516,1
    - Dst: snprintf
      Src: /src/nss/cmd/signver/pk7print.c:517,1
    - Dst: sv_PrintInteger
      Src: /src/nss/cmd/signver/pk7print.c:518,1
    - Dst: snprintf
      Src: /src/nss/cmd/signver/pk7print.c:519,1
    - Dst: sv_PrintAlgorithmID
      Src: /src/nss/cmd/signver/pk7print.c:520,1
    - Dst: snprintf
      Src: /src/nss/cmd/signver/pk7print.c:521,1
    - Dst: sv_PrintName
      Src: /src/nss/cmd/signver/pk7print.c:522,1
    - Dst: snprintf
      Src: /src/nss/cmd/signver/pk7print.c:523,1
    - Dst: sv_PrintValidity
      Src: /src/nss/cmd/signver/pk7print.c:524,1
    - Dst: snprintf
      Src: /src/nss/cmd/signver/pk7print.c:525,1
    - Dst: sv_PrintName
      Src: /src/nss/cmd/signver/pk7print.c:526,1
    - Dst: snprintf
      Src: /src/nss/cmd/signver/pk7print.c:527,1
    - Dst: sv_PrintSubjectPublicKeyInfo
      Src: /src/nss/cmd/signver/pk7print.c:528,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/signver/pk7print.c:530,1
    - Dst: snprintf
      Src: /src/nss/cmd/signver/pk7print.c:533,1
    - Dst: sv_PrintExtensions
      Src: /src/nss/cmd/signver/pk7print.c:534,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/signver/pk7print.c:536,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 34
    argCount: 4
    argNames:
    - out
    - der
    - m
    - level
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 489
    functionDepth: 4
    functionLinenumber: 489
    functionLinenumberEnd: 538
    functionName: sv_PrintCertificate
    functionSourceFile: /src/nss/cmd/signver/pk7print.c
    functionUses: 0
    functionsReached:
    - PORT_NewArena
    - sv_PrintInteger
    - PORT_FreeArena
    - sv_PrintValidity
    - PORT_ZAlloc
    - PORT_GetError
    - sv_PrintAlgorithmID
    - SEC_ASN1DecodeItem
    - fprintf
    - sv_PrintExtensions
    - snprintf
    - sv_PrintName
    - SEC_ASN1_GET
    - sv_PrintSubjectPublicKeyInfo
    - DER_GetInteger
    linkageType: ''
    returnType: int
    signature: int sv_PrintCertificate(FILE *out, const SECItem *der, const char *m,
      int level)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZAlloc
      Src: /src/nss/cmd/signver/pk7print.c:548,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/signver/pk7print.c:550,1
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/signver/pk7print.c:552,1
    - Dst: SEC_ASN1DecodeItem
      Src: /src/nss/cmd/signver/pk7print.c:556,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/cmd/signver/pk7print.c:556,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/signver/pk7print.c:559,1
    - Dst: PORT_Strcat
      Src: /src/nss/cmd/signver/pk7print.c:564,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/signver/pk7print.c:568,1
    - Dst: PORT_Strlen
      Src: /src/nss/cmd/signver/pk7print.c:572,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:573,1
    - Dst: sv_PrintAlgorithmID
      Src: /src/nss/cmd/signver/pk7print.c:574,1
    - Dst: DER_ConvertBitString
      Src: /src/nss/cmd/signver/pk7print.c:575,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:576,1
    - Dst: sv_PrintAsHex
      Src: /src/nss/cmd/signver/pk7print.c:577,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/signver/pk7print.c:579,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 4
    argNames:
    - out
    - der
    - m
    - inner
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - SECU_PPFunc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 540
    functionDepth: 3
    functionLinenumber: 540
    functionLinenumberEnd: 581
    functionName: sv_PrintSignedData
    functionSourceFile: /src/nss/cmd/signver/pk7print.c
    functionUses: 0
    functionsReached:
    - DER_ConvertBitString
    - PORT_NewArena
    - PORT_FreeArena
    - PORT_ZAlloc
    - PORT_GetError
    - sv_PrintAlgorithmID
    - PORT_Strlen
    - SEC_ASN1DecodeItem
    - fprintf
    - sv_PrintAsHex
    - PORT_Strcat
    - SEC_ASN1_GET
    linkageType: ''
    returnType: int
    signature: int sv_PrintSignedData(FILE *out, SECItem *der, char *m, SECU_PPFunc
      inner)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sv_PrintInteger
      Src: /src/nss/cmd/signver/pk7print.c:597,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:604,1
    - Dst: snprintf
      Src: /src/nss/cmd/signver/pk7print.c:607,1
    - Dst: sv_PrintAlgorithmID
      Src: /src/nss/cmd/signver/pk7print.c:608,1
    - Dst: sv_PrintPKCS7ContentInfo
      Src: /src/nss/cmd/signver/pk7print.c:613,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:623,1
    - Dst: snprintf
      Src: /src/nss/cmd/signver/pk7print.c:627,1
    - Dst: sv_PrintSignedData
      Src: /src/nss/cmd/signver/pk7print.c:628,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:639,1
    - Dst: snprintf
      Src: /src/nss/cmd/signver/pk7print.c:642,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:643,1
    - Dst: sv_PrintAlgorithmID
      Src: /src/nss/cmd/signver/pk7print.c:644,1
    - Dst: DER_ConvertBitString
      Src: /src/nss/cmd/signver/pk7print.c:646,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:647,1
    - Dst: sv_PrintAsHex
      Src: /src/nss/cmd/signver/pk7print.c:648,1
    - Dst: snprintf
      Src: /src/nss/cmd/signver/pk7print.c:649,1
    - Dst: sv_PrintCRLInfo
      Src: /src/nss/cmd/signver/pk7print.c:650,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:660,1
    - Dst: snprintf
      Src: /src/nss/cmd/signver/pk7print.c:663,1
    - Dst: sv_PrintSignerInfo
      Src: /src/nss/cmd/signver/pk7print.c:664,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 59
    argCount: 2
    argNames:
    - out
    - src
    argTypes:
    - FILE*
    - SEC_PKCS7SignedData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 587
    functionDepth: 4
    functionLinenumber: 587
    functionLinenumberEnd: 669
    functionName: sv_PrintPKCS7Signed
    functionSourceFile: /src/nss/cmd/signver/pk7print.c
    functionUses: 0
    functionsReached:
    - DER_ConvertBitString
    - sv_PrintInteger
    - sv_PrintAlgorithmID
    - fprintf
    - sv_PrintAsHex
    - sv_PrintCRLInfo
    - snprintf
    - sv_PrintSignedData
    - sv_PrintSignerInfo
    - sv_PrintPKCS7ContentInfo
    linkageType: ''
    returnType: int
    signature: int sv_PrintPKCS7Signed(FILE *out, SEC_PKCS7SignedData *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: secu_Indent
      Src: /src/nss/cmd/signver/pk7print.c:684,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:684,1
    - Dst: sv_PrintInteger
      Src: /src/nss/cmd/signver/pk7print.c:685,1
    - Dst: secu_Indent
      Src: /src/nss/cmd/signver/pk7print.c:689,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:690,1
    - Dst: snprintf
      Src: /src/nss/cmd/signver/pk7print.c:693,1
    - Dst: secu_PrintRecipientInfo
      Src: /src/nss/cmd/signver/pk7print.c:694,1
    - Dst: secu_PrintPKCS7EncContent
      Src: /src/nss/cmd/signver/pk7print.c:698,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - out
    - src
    - m
    - level
    argTypes:
    - FILE*
    - SEC_PKCS7EnvelopedData*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 676
    functionDepth: 2
    functionLinenumber: 676
    functionLinenumberEnd: 700
    functionName: secu_PrintPKCS7Enveloped
    functionSourceFile: /src/nss/cmd/signver/pk7print.c
    functionUses: 0
    functionsReached:
    - sv_PrintInteger
    - secu_PrintRecipientInfo
    - fprintf
    - secu_PrintPKCS7EncContent
    - snprintf
    - secu_Indent
    linkageType: ''
    returnType: void
    signature: "void secu_PrintPKCS7Enveloped(FILE *out, SEC_PKCS7EnvelopedData *src,\n
      \            char *m, int level)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: secu_Indent
      Src: /src/nss/cmd/signver/pk7print.c:719,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:719,1
    - Dst: sv_PrintInteger
      Src: /src/nss/cmd/signver/pk7print.c:720,1
    - Dst: secu_Indent
      Src: /src/nss/cmd/signver/pk7print.c:724,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:725,1
    - Dst: snprintf
      Src: /src/nss/cmd/signver/pk7print.c:728,1
    - Dst: secu_PrintRecipientInfo
      Src: /src/nss/cmd/signver/pk7print.c:729,1
    - Dst: secu_Indent
      Src: /src/nss/cmd/signver/pk7print.c:735,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:735,1
    - Dst: snprintf
      Src: /src/nss/cmd/signver/pk7print.c:738,1
    - Dst: sv_PrintAlgorithmID
      Src: /src/nss/cmd/signver/pk7print.c:739,1
    - Dst: secu_PrintPKCS7EncContent
      Src: /src/nss/cmd/signver/pk7print.c:743,1
    - Dst: secu_Indent
      Src: /src/nss/cmd/signver/pk7print.c:748,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:748,1
    - Dst: snprintf
      Src: /src/nss/cmd/signver/pk7print.c:751,1
    - Dst: SECU_PrintSignedData
      Src: /src/nss/cmd/signver/pk7print.c:752,1
    - Dst: secu_Indent
      Src: /src/nss/cmd/signver/pk7print.c:761,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:762,1
    - Dst: snprintf
      Src: /src/nss/cmd/signver/pk7print.c:765,1
    - Dst: secu_Indent
      Src: /src/nss/cmd/signver/pk7print.c:766,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:766,1
    - Dst: sv_PrintAlgorithmID
      Src: /src/nss/cmd/signver/pk7print.c:767,1
    - Dst: DER_ConvertBitString
      Src: /src/nss/cmd/signver/pk7print.c:769,1
    - Dst: sv_PrintAsHex
      Src: /src/nss/cmd/signver/pk7print.c:770,1
    - Dst: SECU_PrintCRLInfo
      Src: /src/nss/cmd/signver/pk7print.c:772,1
    - Dst: secu_Indent
      Src: /src/nss/cmd/signver/pk7print.c:779,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:780,1
    - Dst: snprintf
      Src: /src/nss/cmd/signver/pk7print.c:783,1
    - Dst: secu_PrintSignerInfo
      Src: /src/nss/cmd/signver/pk7print.c:784,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 58
    argCount: 4
    argNames:
    - out
    - src
    - m
    - level
    argTypes:
    - FILE*
    - SEC_PKCS7SignedAndEnvelopedData*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 706
    functionDepth: 3
    functionLinenumber: 706
    functionLinenumberEnd: 789
    functionName: secu_PrintPKCS7SignedAndEnveloped
    functionSourceFile: /src/nss/cmd/signver/pk7print.c
    functionUses: 0
    functionsReached:
    - DER_ConvertBitString
    - SECU_PrintSignedData
    - sv_PrintInteger
    - secu_PrintSignerInfo
    - sv_PrintAlgorithmID
    - secu_PrintRecipientInfo
    - fprintf
    - sv_PrintAsHex
    - secu_PrintPKCS7EncContent
    - snprintf
    - SECU_PrintCRLInfo
    - secu_Indent
    linkageType: ''
    returnType: int
    signature: "int secu_PrintPKCS7SignedAndEnveloped(FILE *out,\n                  SEC_PKCS7SignedAndEnvelopedData
      *src,\n                  char *m, int level)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: secu_Indent
      Src: /src/nss/cmd/signver/pk7print.c:799,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:799,1
    - Dst: sv_PrintInteger
      Src: /src/nss/cmd/signver/pk7print.c:800,1
    - Dst: secu_PrintPKCS7EncContent
      Src: /src/nss/cmd/signver/pk7print.c:802,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - out
    - src
    - m
    - level
    argTypes:
    - FILE*
    - SEC_PKCS7EncryptedData*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 795
    functionDepth: 2
    functionLinenumber: 795
    functionLinenumberEnd: 804
    functionName: secu_PrintPKCS7Encrypted
    functionSourceFile: /src/nss/cmd/signver/pk7print.c
    functionUses: 0
    functionsReached:
    - fprintf
    - secu_Indent
    - secu_PrintPKCS7EncContent
    - sv_PrintInteger
    linkageType: ''
    returnType: void
    signature: "void secu_PrintPKCS7Encrypted(FILE *out, SEC_PKCS7EncryptedData *src,\n
      \            char *m, int level)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: secu_Indent
      Src: /src/nss/cmd/signver/pk7print.c:813,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:813,1
    - Dst: sv_PrintInteger
      Src: /src/nss/cmd/signver/pk7print.c:814,1
    - Dst: sv_PrintAlgorithmID
      Src: /src/nss/cmd/signver/pk7print.c:816,1
    - Dst: sv_PrintPKCS7ContentInfo
      Src: /src/nss/cmd/signver/pk7print.c:817,1
    - Dst: sv_PrintAsHex
      Src: /src/nss/cmd/signver/pk7print.c:819,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - out
    - src
    argTypes:
    - FILE*
    - SEC_PKCS7DigestedData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 810
    functionDepth: 3
    functionLinenumber: 810
    functionLinenumberEnd: 820
    functionName: sv_PrintPKCS7Digested
    functionSourceFile: /src/nss/cmd/signver/pk7print.c
    functionUses: 0
    functionsReached:
    - sv_PrintInteger
    - sv_PrintAlgorithmID
    - fprintf
    - sv_PrintAsHex
    - secu_Indent
    - sv_PrintPKCS7ContentInfo
    linkageType: ''
    returnType: void
    signature: void sv_PrintPKCS7Digested(FILE *out, SEC_PKCS7DigestedData *src)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOID
      Src: /src/nss/cmd/signver/pk7print.c:837,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:847,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:850,1
    - Dst: sv_PrintPKCS7Signed
      Src: /src/nss/cmd/signver/pk7print.c:857,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:861,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:866,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:872,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:877,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/pk7print.c:882,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 3
    argNames:
    - out
    - src
    - m
    argTypes:
    - FILE*
    - SEC_PKCS7ContentInfo*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 829
    functionDepth: 5
    functionLinenumber: 829
    functionLinenumberEnd: 888
    functionName: sv_PrintPKCS7ContentInfo
    functionSourceFile: /src/nss/cmd/signver/pk7print.c
    functionUses: 2
    functionsReached:
    - fprintf
    - SECOID_FindOID
    - sv_PrintPKCS7Signed
    linkageType: ''
    returnType: int
    signature: int sv_PrintPKCS7ContentInfo(FILE *out, SEC_PKCS7ContentInfo *src,
      char *m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SEC_PKCS7DecodeItem
      Src: /src/nss/cmd/signver/pk7print.c:896,1
    - Dst: sv_PrintPKCS7ContentInfo
      Src: /src/nss/cmd/signver/pk7print.c:899,1
    - Dst: SEC_PKCS7DestroyContentInfo
      Src: /src/nss/cmd/signver/pk7print.c:900,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - out
    - der
    argTypes:
    - FILE*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 890
    functionDepth: 6
    functionLinenumber: 890
    functionLinenumberEnd: 904
    functionName: SV_PrintPKCS7ContentInfo
    functionSourceFile: /src/nss/cmd/signver/pk7print.c
    functionUses: 0
    functionsReached:
    - SEC_PKCS7DecodeItem
    - SEC_PKCS7DestroyContentInfo
    - sv_PrintPKCS7ContentInfo
    linkageType: ''
    returnType: int
    signature: int SV_PrintPKCS7ContentInfo(FILE *out, SECItem *der)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/signver/signver.c:46,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/signver.c:48,1
    - Dst: exit
      Src: /src/nss/cmd/signver/signver.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - progName
    - outFile
    argTypes:
    - char*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 50
    functionName: Usage
    functionSourceFile: /src/nss/cmd/signver/signver.c
    functionUses: 66
    functionsReached:
    - fprintf
    - exit
    linkageType: ''
    returnType: void
    signature: void Usage(char *progName, FILE *outFile)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/cmd/signver/signver.c:55,1
    - Dst: HASH_GetHashTypeByOidTag
      Src: /src/nss/cmd/signver/signver.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - digestAlgorithms
    argTypes:
    - SECAlgorithmID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 58
    functionName: AlgorithmToHashType
    functionSourceFile: /src/nss/cmd/signver/signver.c
    functionUses: 0
    functionsReached:
    - SECOID_GetAlgorithmTag
    - HASH_GetHashTypeByOidTag
    linkageType: ''
    returnType: HASH_HashType
    signature: HASH_HashType AlgorithmToHashType(SECAlgorithmID *digestAlgorithms)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HASH_ResultLen
      Src: /src/nss/cmd/signver/signver.c:64,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/signver/signver.c:68,1
    - Dst: HASH_HashBuf
      Src: /src/nss/cmd/signver/signver.c:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - digest
    - content
    - hashType
    argTypes:
    - SECItem*
    - SECItem*
    - HASH_HashType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 76
    functionName: DigestContent
    functionSourceFile: /src/nss/cmd/signver/signver.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - HASH_HashBuf
    - HASH_ResultLen
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus DigestContent(SECItem *digest, SECItem *content, HASH_HashType
      hashType)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/nss/cmd/signver/signver.c:129,1
    - Dst: strrchr
      Src: /src/nss/cmd/signver/signver.c:131,1
    - Dst: SECU_ParseCommandLine
      Src: /src/nss/cmd/signver/signver.c:135,1
    - Dst: Usage
      Src: /src/nss/cmd/signver/signver.c:137,1
    - Dst: NSS_Init
      Src: /src/nss/cmd/signver/signver.c:147,1
    - Dst: SECU_ConfigDirectory
      Src: /src/nss/cmd/signver/signver.c:147,1
    - Dst: SECU_PrintPRandOSError
      Src: /src/nss/cmd/signver/signver.c:149,1
    - Dst: SECU_RegisterDynamicOids
      Src: /src/nss/cmd/signver/signver.c:153,1
    - Dst: PL_strcmp
      Src: /src/nss/cmd/signver/signver.c:158,1
    - Dst: PR_Open
      Src: /src/nss/cmd/signver/signver.c:159,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signver/signver.c:162,1
    - Dst: PL_strcmp
      Src: /src/nss/cmd/signver/signver.c:174,1
    - Dst: PR_Open
      Src: /src/nss/cmd/signver/signver.c:175,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signver/signver.c:178,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signver/signver.c:187,1
    - Dst: fopen
      Src: /src/nss/cmd/signver/signver.c:195,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signver/signver.c:197,1
    - Dst: SECU_ReadDERFromFile
      Src: /src/nss/cmd/signver/signver.c:204,1
    - Dst: PR_Close
      Src: /src/nss/cmd/signver/signver.c:207,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/signver/signver.c:209,1
    - Dst: SECU_FileToItem
      Src: /src/nss/cmd/signver/signver.c:213,1
    - Dst: PR_Close
      Src: /src/nss/cmd/signver/signver.c:215,1
    - Dst: SEC_PKCS7DecodeItem
      Src: /src/nss/cmd/signver/signver.c:227,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signver/signver.c:230,1
    - Dst: SEC_PKCS7ContentIsSigned
      Src: /src/nss/cmd/signver/signver.c:235,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signver/signver.c:237,1
    - Dst: SEC_PKCS7ContentIsEncrypted
      Src: /src/nss/cmd/signver/signver.c:238,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signver/signver.c:241,1
    - Dst: AlgorithmToHashType
      Src: /src/nss/cmd/signver/signver.c:251,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signver/signver.c:253,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signver/signver.c:262,1
    - Dst: DigestContent
      Src: /src/nss/cmd/signver/signver.c:267,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/signver/signver.c:268,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signver/signver.c:274,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signver/signver.c:276,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/signver/signver.c:277,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/signver.c:280,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/signver/signver.c:281,1
    - Dst: SEC_PKCS7VerifyDetachedSignature
      Src: /src/nss/cmd/signver/signver.c:282,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/signver.c:284,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/signver.c:286,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/signver.c:288,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/signver/signver.c:289,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/signver/signver.c:289,1
    - Dst: fprintf
      Src: /src/nss/cmd/signver/signver.c:292,1
    - Dst: SEC_PKCS7DestroyContentInfo
      Src: /src/nss/cmd/signver/signver.c:296,1
    - Dst: SV_PrintPKCS7ContentInfo
      Src: /src/nss/cmd/signver/signver.c:300,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/signver/signver.c:305,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/signver/signver.c:306,1
    - Dst: NSS_Shutdown
      Src: /src/nss/cmd/signver/signver.c:308,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 144
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 108
    functionDepth: 7
    functionLinenumber: 108
    functionLinenumberEnd: 313
    functionName: main
    functionSourceFile: /src/nss/cmd/signver/signver.c
    functionUses: 2
    functionsReached:
    - SEC_PKCS7DestroyContentInfo
    - SV_PrintPKCS7ContentInfo
    - NSS_Init
    - fprintf
    - Usage
    - SEC_PKCS7ContentIsEncrypted
    - PORT_SetError
    - fopen
    - strrchr
    - SECITEM_FreeItem
    - SECU_PrintError
    - SEC_PKCS7ContentIsSigned
    - SECU_PrintPRandOSError
    - SEC_PKCS7VerifyDetachedSignature
    - PR_Open
    - AlgorithmToHashType
    - DigestContent
    - PR_Close
    - SECU_ConfigDirectory
    - SECU_FileToItem
    - SECU_ReadDERFromFile
    - SECU_Strerror
    - PR_fprintf
    - PORT_GetError
    - SECU_ParseCommandLine
    - NSS_Shutdown
    - SECU_RegisterDynamicOids
    - PL_strcmp
    - SEC_PKCS7DecodeItem
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - desc
    - ','
    - plerr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: PKIX_ERRORENTRY
    functionSourceFile: /src/nss/cmd/pkix-errcodes/pkix-errcodes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_ERRORENTRY(name, desc, plerr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/pkix-errcodes/pkix-errcodes.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 34
    functionName: main
    functionSourceFile: /src/nss/cmd/pkix-errcodes/pkix-errcodes.c
    functionUses: 2
    functionsReached:
    - printf
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 159
    functionName: VLOG
    functionSourceFile: /src/nss/cmd/selfserv/selfserv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VLOG(arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/selfserv/selfserv.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - progName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 174
    functionName: PrintUsageHeader
    functionSourceFile: /src/nss/cmd/selfserv/selfserv.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void PrintUsageHeader(const char *progName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fputs
      Src: /src/nss/cmd/selfserv/selfserv.c:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 260
    functionName: PrintParameterUsage
    functionSourceFile: /src/nss/cmd/selfserv/selfserv.c
    functionUses: 0
    functionsReached:
    - fputs
    linkageType: ''
    returnType: void
    signature: void PrintParameterUsage()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PrintUsageHeader
      Src: /src/nss/cmd/selfserv/selfserv.c:265,1
    - Dst: PrintParameterUsage
      Src: /src/nss/cmd/selfserv/selfserv.c:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - progName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 267
    functionName: Usage
    functionSourceFile: /src/nss/cmd/selfserv/selfserv.c
    functionUses: 68
    functionsReached:
    - PrintParameterUsage
    - PrintUsageHeader
    linkageType: ''
    returnType: void
    signature: void Usage(const char *progName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PrintUsageHeader
      Src: /src/nss/cmd/selfserv/selfserv.c:272,1
    - Dst: fputs
      Src: /src/nss/cmd/selfserv/selfserv.c:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - progName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 301
    functionName: PrintCipherUsage
    functionSourceFile: /src/nss/cmd/selfserv/selfserv.c
    functionUses: 0
    functionsReached:
    - PrintUsageHeader
    - fputs
    linkageType: ''
    returnType: void
    signature: void PrintCipherUsage(const char *progName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetError
      Src: /src/nss/cmd/selfserv/selfserv.c:306,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/selfserv/selfserv.c:307,1
    - Dst: fprintf
      Src: /src/nss/cmd/selfserv/selfserv.c:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - funcString
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 312
    functionName: errWarn
    functionSourceFile: /src/nss/cmd/selfserv/selfserv.c
    functionUses: 0
    functionsReached:
    - fprintf
    - SECU_Strerror
    - PR_GetError
    linkageType: ''
    returnType: char
    signature: 'char *

      errWarn(char *funcString)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: errWarn
      Src: /src/nss/cmd/selfserv/selfserv.c:317,1
    - Dst: exit
      Src: /src/nss/cmd/selfserv/selfserv.c:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - funcString
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 319
    functionName: errExit
    functionSourceFile: /src/nss/cmd/selfserv/selfserv.c
    functionUses: 0
    functionsReached:
    - errWarn
    - exit
    linkageType: ''
    returnType: void
    signature: void errExit(char *funcString)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CipherPrefSetDefault
      Src: /src/nss/cmd/selfserv/selfserv.c:337,1
    - Dst: printf
      Src: /src/nss/cmd/selfserv/selfserv.c:339,1
    - Dst: errWarn
      Src: /src/nss/cmd/selfserv/selfserv.c:341,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 344
    functionName: disableAllSSLCiphers
    functionSourceFile: /src/nss/cmd/selfserv/selfserv.c
    functionUses: 0
    functionsReached:
    - errWarn
    - printf
    - SSL_CipherPrefSetDefault
    linkageType: ''
    returnType: void
    signature: void disableAllSSLCiphers(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_PeerCertificate
      Src: /src/nss/cmd/selfserv/selfserv.c:353,1
    - Dst: PRINTF
      Src: /src/nss/cmd/selfserv/selfserv.c:356,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/selfserv/selfserv.c:358,1
    - Dst: SSL_AuthCertificate
      Src: /src/nss/cmd/selfserv/selfserv.c:361,1
    - Dst: PRINTF
      Src: /src/nss/cmd/selfserv/selfserv.c:364,1
    - Dst: PR_GetError
      Src: /src/nss/cmd/selfserv/selfserv.c:366,1
    - Dst: FPRINTF
      Src: /src/nss/cmd/selfserv/selfserv.c:367,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/selfserv/selfserv.c:368,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - arg
    - fd
    - checkSig
    - isServer
    argTypes:
    - void*
    - PRFileDesc*
    - PRBool
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 372
    functionName: mySSLAuthCertificate
    functionSourceFile: /src/nss/cmd/selfserv/selfserv.c
    functionUses: 0
    functionsReached:
    - SECU_Strerror
    - SSL_AuthCertificate
    - PRINTF
    - SSL_PeerCertificate
    - CERT_DestroyCertificate
    - PR_GetError
    - FPRINTF
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus mySSLAuthCertificate(void *arg, PRFileDesc *fd, PRBool checkSig,\n
      \                    PRBool isServer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_GetStatistics
      Src: /src/nss/cmd/selfserv/selfserv.c:377,1
    - Dst: printf
      Src: /src/nss/cmd/selfserv/selfserv.c:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 385
    functionName: printSSLStatistics
    functionSourceFile: /src/nss/cmd/selfserv/selfserv.c
    functionUses: 0
    functionsReached:
    - SSL_GetStatistics
    - printf
    linkageType: ''
    returnType: void
    signature: void printSSLStatistics()
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: printSSLStatistics
      Src: /src/nss/cmd/selfserv/selfserv.c:396,1
    - Dst: SSL_GetChannelInfo
      Src: /src/nss/cmd/selfserv/selfserv.c:398,1
    - Dst: SSL_GetCipherSuiteInfo
      Src: /src/nss/cmd/selfserv/selfserv.c:402,1
    - Dst: FPRINTF
      Src: /src/nss/cmd/selfserv/selfserv.c:405,1
    - Dst: FPRINTF
      Src: /src/nss/cmd/selfserv/selfserv.c:411,1
    - Dst: SSL_GetNegotiatedHostInfo
      Src: /src/nss/cmd/selfserv/selfserv.c:421,1
    - Dst: fprintf
      Src: /src/nss/cmd/selfserv/selfserv.c:425,1
    - Dst: fwrite
      Src: /src/nss/cmd/selfserv/selfserv.c:426,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/selfserv/selfserv.c:427,1
    - Dst: fprintf
      Src: /src/nss/cmd/selfserv/selfserv.c:429,1
    - Dst: SSL_PeerCertificate
      Src: /src/nss/cmd/selfserv/selfserv.c:433,1
    - Dst: SSL_LocalCertificate
      Src: /src/nss/cmd/selfserv/selfserv.c:435,1
    - Dst: CERT_NameToAscii
      Src: /src/nss/cmd/selfserv/selfserv.c:437,1
    - Dst: CERT_NameToAscii
      Src: /src/nss/cmd/selfserv/selfserv.c:438,1
    - Dst: FPRINTF
      Src: /src/nss/cmd/selfserv/selfserv.c:440,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/selfserv/selfserv.c:441,1
    - Dst: FPRINTF
      Src: /src/nss/cmd/selfserv/selfserv.c:444,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/selfserv/selfserv.c:445,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/selfserv/selfserv.c:447,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 1
    argNames:
    - fd
    argTypes:
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 387
    functionDepth: 2
    functionLinenumber: 387
    functionLinenumberEnd: 451
    functionName: printSecurityInfo
    functionSourceFile: /src/nss/cmd/selfserv/selfserv.c
    functionUses: 0
    functionsReached:
    - CERT_NameToAscii
    - SSL_GetNegotiatedHostInfo
    - PORT_Free
    - printSSLStatistics
    - SSL_LocalCertificate
    - SSL_GetCipherSuiteInfo
    - fprintf
    - SSL_PeerCertificate
    - CERT_DestroyCertificate
    - fwrite
    - FPRINTF
    - SSL_GetChannelInfo
    - SECITEM_FreeItem
    linkageType: ''
    returnType: void
    signature: void printSecurityInfo(PRFileDesc *fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetError
      Src: /src/nss/cmd/selfserv/selfserv.c:458,1
    - Dst: fprintf
      Src: /src/nss/cmd/selfserv/selfserv.c:460,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/selfserv/selfserv.c:462,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - arg
    - fd
    argTypes:
    - void*
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 455
    functionDepth: 1
    functionLinenumber: 455
    functionLinenumberEnd: 464
    functionName: myBadCertHandler
    functionSourceFile: /src/nss/cmd/selfserv/selfserv.c
    functionUses: 0
    functionsReached:
    - fprintf
    - SECU_Strerror
    - PR_GetError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus myBadCertHandler(void *arg, PRFileDesc *fd)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/cmd/selfserv/selfserv.c:479,1
    - Dst: SSL_RevealPinArg
      Src: /src/nss/cmd/selfserv/selfserv.c:484,1
    - Dst: PORT_Strncmp
      Src: /src/nss/cmd/selfserv/selfserv.c:489,1
    - Dst: PORT_Strlen
      Src: /src/nss/cmd/selfserv/selfserv.c:492,1
    - Dst: PK11_FindCertFromNickname
      Src: /src/nss/cmd/selfserv/selfserv.c:500,1
    - Dst: PK11_FindKeyByAnyCert
      Src: /src/nss/cmd/selfserv/selfserv.c:504,1
    - Dst: SSL_ConfigServerCert
      Src: /src/nss/cmd/selfserv/selfserv.c:508,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/cmd/selfserv/selfserv.c:511,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/selfserv/selfserv.c:512,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/cmd/selfserv/selfserv.c:519,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/selfserv/selfserv.c:522,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 41
    argCount: 4
    argNames:
    - fd
    - sniNameArr
    - sniNameArrSize
    - arg
    argTypes:
    - PRFileDesc*
    - SECItem*
    - PRUint32
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 525
    functionName: mySSLSNISocketConfig
    functionSourceFile: /src/nss/cmd/selfserv/selfserv.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SSL_RevealPinArg
    - PORT_Strncmp
    - SSL_ConfigServerCert
    - PORT_Strlen
    - CERT_DestroyCertificate
    - SECKEY_DestroyPrivateKey
    - PK11_FindCertFromNickname
    - PK11_FindKeyByAnyCert
    linkageType: ''
    returnType: PRInt32
    signature: "PRInt32 mySSLSNISocketConfig(PRFileDesc *fd, const SECItem *sniNameArr,\n
      \                    PRUint32 sniNameArrSize, void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_Calloc
      Src: /src/nss/cmd/selfserv/selfserv.c:557,1
    - Dst: PR_INIT_CLIST
      Src: /src/nss/cmd/selfserv/selfserv.c:561,1
    - Dst: PR_INIT_CLIST
      Src: /src/nss/cmd/selfserv/selfserv.c:562,1
    - Dst: PR_APPEND_LINK
      Src: /src/nss/cmd/selfserv/selfserv.c:566,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - maxJobs
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 552
    functionDepth: 1
    functionLinenumber: 552
    functionLinenumberEnd: 569
    functionName: setupJobs
    functionSourceFile: /src/nss/cmd/selfserv/selfserv.c
    functionUses: 0
    functionsReached:
    - PR_APPEND_LINK
    - PR_INIT_CLIST
    - PR_Calloc
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus setupJobs(int maxJobs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/cmd/selfserv/selfserv.c:596,1
    - Dst: PZ_NotifyAllCondVar
      Src: /src/nss/cmd/selfserv/selfserv.c:599,1
    - Dst: PZ_Unlock
      Src: /src/nss/cmd/selfserv/selfserv.c:600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 588
    functionDepth: 1
    functionLinenumber: 588
    functionLinenumberEnd: 601
    functionName: thread_wrapper
    functionSourceFile: /src/nss/cmd/selfserv/selfserv.c
    functionUses: 0
    functionsReached:
    - PZ_Unlock
    - PZ_Lock
    - PZ_NotifyAllCondVar
    linkageType: ''
    returnType: void
    signature: void thread_wrapper(void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/cmd/selfserv/selfserv.c:609,1
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/cmd/selfserv/selfserv.c:612,1
    - Dst: PZ_WaitCondVar
      Src: /src/nss/cmd/selfserv/selfserv.c:613,1
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/cmd/selfserv/selfserv.c:615,1
    - Dst: PR_LIST_HEAD
      Src: /src/nss/cmd/selfserv/selfserv.c:616,1
    - Dst: PR_REMOVE_AND_INIT_LINK
      Src: /src/nss/cmd/selfserv/selfserv.c:617,1
    - Dst: PZ_Unlock
      Src: /src/nss/cmd/selfserv/selfserv.c:619,1
    - Dst: handle_connection
      Src: /src/nss/cmd/selfserv/selfserv.c:624,1
    - Dst: PZ_Lock
      Src: /src/nss/cmd/selfserv/selfserv.c:625,1
    - Dst: PR_APPEND_LINK
      Src: /src/nss/cmd/selfserv/selfserv.c:626,1
    - Dst: PZ_NotifyCondVar
      Src: /src/nss/cmd/selfserv/selfserv.c:627,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PRFileDesc*
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 603
    functionDepth: 1
    functionLinenumber: 603
    functionLinenumberEnd: 630
    functionName: jobLoop
    functionSourceFile: /src/nss/cmd/selfserv/selfserv.c
    functionUses: 0
    functionsReached:
    - handle_connection
    - PZ_Unlock
    - PZ_NotifyCondVar
    - PR_REMOVE_AND_INIT_LINK
    - PR_APPEND_LINK
    - PZ_Lock
    - PR_LIST_HEAD
    - PZ_WaitCondVar
    - PR_CLIST_IS_EMPTY
    linkageType: ''
    returnType: int
    signature: int jobLoop(PRFileDesc *a, PRFileDesc *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PZ_NewLock
      Src: /src/nss/cmd/selfserv/selfserv.c:643,1
    - Dst: PZ_NewCondVar
      Src: /src/nss/cmd/selfserv/selfserv.c:644,1
    - Dst: PZ_NewCondVar
      Src: /src/nss/cmd/selfserv/selfserv.c:645,1
    - Dst: PZ_NewCondVar
      Src: /src/nss/cmd/selfserv/selfserv.c:646,1
    - Dst: PR_NewLock
      Src: /src/nss/cmd/selfserv/selfserv.c:649,1
    - Dst: PR_Calloc
      Src: /src/nss/cmd/selfserv/selfserv.c:652,1
    - Dst: fprintf
      Src: /src/nss/cmd/selfserv/selfserv.c:654,1
    - Dst: setupJobs
      Src: /src/nss/cmd/selfserv/selfserv.c:661,1
    - Dst: PZ_Lock
      Src: /src/nss/cmd/selfserv/selfserv.c:665,1
    - Dst: PR_CreateThread
      Src: /src/nss/cmd/selfserv/selfserv.c:673,1
    - Dst: printf
      Src: /src/nss/cmd/selfserv/selfserv.c:681,1
    - Dst: PZ_Unlock
      Src: /src/nss/cmd/selfserv/selfserv.c:689,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 4
    argNames:
    - startFunc
    - a
    - b
    - local
    argTypes:
    - startFn*
    - PRFileDesc*
    - PRFileDesc*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 632
    functionDepth: 1
    functionLinenumber: 632
    functionLinenumberEnd: 692
    functionName: launch_threads
    functionSourceFile: /src/nss/cmd/selfserv/selfserv.c
    functionUses: 0
    functionsReached:
    - printf
    - PZ_NewCondVar
    - PZ_Unlock
    - PR_Calloc
    - fprintf
    - PZ_Lock
    - PR_NewLock
    - PR_CreateThread
    - setupJobs
    - PZ_NewLock
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus launch_threads(\n    startFn *startFunc,\n    PRFileDesc
      *a,\n    PRFileDesc *b,\n    PRBool local)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 694
    functionDepth: 0
    functionLinenumber: 694
    functionLinenumberEnd: 699
    functionName: DESTROY_CONDVAR
    functionSourceFile: /src/nss/cmd/selfserv/selfserv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DESTROY_CONDVAR(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 699
    functionDepth: 0
    functionLinenumber: 699
    functionLinenumberEnd: 704
    functionName: DESTROY_LOCK
    functionSourceFile: /src/nss/cmd/selfserv/selfserv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DESTROY_LOCK(name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VLOG
      Src: /src/nss/cmd/selfserv/selfserv.c:710,1
    - Dst: PZ_Lock
      Src: /src/nss/cmd/selfserv/selfserv.c:711,1
    - Dst: PZ_NotifyAllCondVar
      Src: /src/nss/cmd/selfserv/selfserv.c:712,1
    - Dst: PZ_Unlock
      Src: /src/nss/cmd/selfserv/selfserv.c:713,1
    - Dst: PR_JoinThread
      Src: /src/nss/cmd/selfserv/selfserv.c:719,1
    - Dst: PZ_Lock
      Src: /src/nss/cmd/selfserv/selfserv.c:724,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/selfserv/selfserv.c:725,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/selfserv/selfserv.c:726,1
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/cmd/selfserv/selfserv.c:726,1
    - Dst: PZ_Unlock
      Src: /src/nss/cmd/selfserv/selfserv.c:727,1
    - Dst: DESTROY_CONDVAR
      Src: /src/nss/cmd/selfserv/selfserv.c:729,1
    - Dst: DESTROY_CONDVAR
      Src: /src/nss/cmd/selfserv/selfserv.c:730,1
    - Dst: DESTROY_CONDVAR
      Src: /src/nss/cmd/selfserv/selfserv.c:731,1
    - Dst: PR_DestroyLock
      Src: /src/nss/cmd/selfserv/selfserv.c:733,1
    - Dst: DESTROY_LOCK
      Src: /src/nss/cmd/selfserv/selfserv.c:734,1
    - Dst: PR_Free
      Src: /src/nss/cmd/selfserv/selfserv.c:735,1
    - Dst: PR_Free
      Src: /src/nss/cmd/selfserv/selfserv.c:736,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 705
    functionDepth: 1
    functionLinenumber: 705
    functionLinenumberEnd: 737
    functionName: terminateWorkerThreads
    functionSourceFile: /src/nss/cmd/selfserv/selfserv.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PZ_Unlock
    - DESTROY_CONDVAR
    - PR_Free
    - DESTROY_LOCK
    - PR_JoinThread
    - PZ_Lock
    - PZ_NotifyAllCondVar
    - VLOG
    - PR_DestroyLock
    - PR_CLIST_IS_EMPTY
    linkageType: ''
    returnType: void
    signature: void terminateWorkerThreads(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PR_TicksPerSecond
      Src: /src/nss/cmd/selfserv/selfserv.c:749,1
    - Dst: PR_IntervalNow
      Src: /src/nss/cmd/selfserv/selfserv.c:757,1
    - Dst: PR_Sleep
      Src: /src/nss/cmd/selfserv/selfserv.c:765,1
    - Dst: PR_ATOMIC_SET
      Src: /src/nss/cmd/selfserv/selfserv.c:767,1
    - Dst: PR_ATOMIC_SET
      Src: /src/nss/cmd/selfserv/selfserv.c:768,1
    - Dst: PR_IntervalNow
      Src: /src/nss/cmd/selfserv/selfserv.c:776,1
    - Dst: printf
      Src: /src/nss/cmd/selfserv/selfserv.c:785,1
    - Dst: printf
      Src: /src/nss/cmd/selfserv/selfserv.c:787,1
    - Dst: printf
      Src: /src/nss/cmd/selfserv/selfserv.c:791,1
    - Dst: printf
      Src: /src/nss/cmd/selfserv/selfserv.c:795,1
    - Dst: printf
      Src: /src/nss/cmd/selfserv/selfserv.c:803,1
    - Dst: fflush
      Src: /src/nss/cmd/selfserv/selfserv.c:806,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 43
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 739
    functionDepth: 1
    functionLinenumber: 739
    functionLinenumberEnd: 813
    functionName: logger
    functionSourceFile: /src/nss/cmd/selfserv/selfserv.c
    functionUses: 0
    functionsReached:
    - printf
    - PR_ATOMIC_SET
    - PR_TicksPerSecond
    - PR_Sleep
    - PR_IntervalNow
    - fflush
    linkageType: ''
    returnType: void
    signature: void logger(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 861
    functionDepth: 0
    functionLinenumber: 861
    functionLinenumberEnd: 866
    functionName: savecipher
    functionSourceFile: /src/nss/cmd/selfserv/selfserv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void savecipher(int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PZ_NewLock
      Src: /src/nss/cmd/selfserv/selfserv.c:884,1
    - Dst: PZ_NewCondVar
      Src: /src/nss/cmd/selfserv/selfserv.c:885,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - lv
    argTypes:
    - lockedVars*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 879
    functionDepth: 1
    functionLinenumber: 879
    functionLinenumberEnd: 886
    functionName: lockedVars_Init
    functionSourceFile: /src/nss/cmd/selfserv/selfserv.c
    functionUses: 0
    functionsReached:
    - PZ_NewLock
    - PZ_NewCondVar
    linkageType: ''
    returnType: void
    signature: void lockedVars_Init(lockedVars *lv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PZ_DestroyCondVar
      Src: /src/nss/cmd/selfserv/selfserv.c:891,1
    - Dst: PZ_DestroyLock
      Src: /src/nss/cmd/selfserv/selfserv.c:894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - lv
    argTypes:
    - lockedVars*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 888
    functionDepth: 1
    functionLinenumber: 888
    functionLinenumberEnd: 896
    functionName: lockedVars_Destroy
    functionSourceFile: /src/nss/cmd/selfserv/selfserv.c
    functionUses: 0
    functionsReached:
    - PZ_DestroyLock
    - PZ_DestroyCondVar
    linkageType: ''
    returnType: void
    signature: void lockedVars_Destroy(lockedVars *lv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/cmd/selfserv/selfserv.c:901,1
    - Dst: PZ_WaitCondVar
      Src: /src/nss/cmd/selfserv/selfserv.c:903,1
    - Dst: PZ_Unlock
      Src: /src/nss/cmd/selfserv/selfserv.c:905,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - lv
    argTypes:
    - lockedVars*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 898
    functionDepth: 1
    functionLinenumber: 898
    functionLinenumberEnd: 906
    functionName: lockedVars_WaitForDone
    functionSourceFile: /src/nss/cmd/selfserv/selfserv.c
    functionUses: 0
    functionsReached:
    - PZ_WaitCondVar
    - PZ_Lock
    - PZ_Unlock
    linkageType: ''
    returnType: void
    signature: void lockedVars_WaitForDone(lockedVars *lv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/cmd/selfserv/selfserv.c:913,1
    - Dst: PZ_NotifyCondVar
      Src: /src/nss/cmd/selfserv/selfserv.c:916,1
    - Dst: PZ_Unlock
      Src: /src/nss/cmd/selfserv/selfserv.c:918,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - lv
    - addend
    argTypes:
    - lockedVars*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 908
    functionDepth: 1
    functionLinenumber: 908
    functionLinenumberEnd: 920
    functionName: lockedVars_AddToCount
    functionSourceFile: /src/nss/cmd/selfserv/selfserv.c
    functionUses: 0
    functionsReached:
    - PZ_Unlock
    - PZ_Lock
    - PZ_NotifyCondVar
    linkageType: ''
    returnType: int
    signature: int lockedVars_AddToCount(lockedVars *lv, int addend)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VLOG
      Src: /src/nss/cmd/selfserv/selfserv.c:931,1
    - Dst: PR_Write
      Src: /src/nss/cmd/selfserv/selfserv.c:934,1
    - Dst: errWarn
      Src: /src/nss/cmd/selfserv/selfserv.c:936,1
    - Dst: FPRINTF
      Src: /src/nss/cmd/selfserv/selfserv.c:939,1
    - Dst: PR_Shutdown
      Src: /src/nss/cmd/selfserv/selfserv.c:943,1
    - Dst: lockedVars_AddToCount
      Src: /src/nss/cmd/selfserv/selfserv.c:947,1
    - Dst: VLOG
      Src: /src/nss/cmd/selfserv/selfserv.c:949,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - ssl_sock
    - model_sock
    argTypes:
    - PRFileDesc*
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 922
    functionDepth: 1
    functionLinenumber: 922
    functionLinenumberEnd: 951
    functionName: do_writes
    functionSourceFile: /src/nss/cmd/selfserv/selfserv.c
    functionUses: 0
    functionsReached:
    - PR_Shutdown
    - PR_Write
    - lockedVars_AddToCount
    - FPRINTF
    - VLOG
    - errWarn
    linkageType: ''
    returnType: int
    signature: "int do_writes(\n    PRFileDesc *ssl_sock,\n    PRFileDesc *model_sock)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: VLOG
      Src: /src/nss/cmd/selfserv/selfserv.c:965,1
    - Dst: PR_SetSocketOption
      Src: /src/nss/cmd/selfserv/selfserv.c:968,1
    - Dst: SSL_ImportFD
      Src: /src/nss/cmd/selfserv/selfserv.c:972,1
    - Dst: errWarn
      Src: /src/nss/cmd/selfserv/selfserv.c:974,1
    - Dst: SSL_ResetHandshake
      Src: /src/nss/cmd/selfserv/selfserv.c:977,1
    - Dst: errWarn
      Src: /src/nss/cmd/selfserv/selfserv.c:979,1
    - Dst: lockedVars_Init
      Src: /src/nss/cmd/selfserv/selfserv.c:986,1
    - Dst: lockedVars_AddToCount
      Src: /src/nss/cmd/selfserv/selfserv.c:987,1
    - Dst: launch_thread
      Src: /src/nss/cmd/selfserv/selfserv.c:990,1
    - Dst: PR_Read
      Src: /src/nss/cmd/selfserv/selfserv.c:996,1
    - Dst: errWarn
      Src: /src/nss/cmd/selfserv/selfserv.c:998,1
    - Dst: FPRINTF
      Src: /src/nss/cmd/selfserv/selfserv.c:1001,1
    - Dst: printSecurityInfo
      Src: /src/nss/cmd/selfserv/selfserv.c:1004,1
    - Dst: lockedVars_AddToCount
      Src: /src/nss/cmd/selfserv/selfserv.c:1006,1
    - Dst: lockedVars_WaitForDone
      Src: /src/nss/cmd/selfserv/selfserv.c:1009,1
    - Dst: lockedVars_Destroy
      Src: /src/nss/cmd/selfserv/selfserv.c:1010,1
    - Dst: PR_Close
      Src: /src/nss/cmd/selfserv/selfserv.c:1015,1
    - Dst: PR_Close
      Src: /src/nss/cmd/selfserv/selfserv.c:1017,1
    - Dst: VLOG
      Src: /src/nss/cmd/selfserv/selfserv.c:1020,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 50
    argCount: 2
    argNames:
    - tcp_sock
    - model_sock
    argTypes:
    - PRFileDesc*
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 953
    functionDepth: 1
    functionLinenumber: 953
    functionLinenumberEnd: 1022
    functionName: handle_fdx_connection
    functionSourceFile: /src/nss/cmd/selfserv/selfserv.c
    functionUses: 0
    functionsReached:
    - lockedVars_Init
    - SSL_ResetHandshake
    - PR_SetSocketOption
    - PR_Close
    - lockedVars_Destroy
    - PR_Read
    - printSecurityInfo
    - SSL_ImportFD
    - lockedVars_AddToCount
    - FPRINTF
    - VLOG
    - errWarn
    - launch_thread
    - lockedVars_WaitForDone
    linkageType: ''
    returnType: int
    signature: "int handle_fdx_connection(\n    PRFileDesc *tcp_sock,\n    PRFileDesc
      *model_sock)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/cmd/selfserv/selfserv.c:1032,1
    - Dst: PORT_Malloc
      Src: /src/nss/cmd/selfserv/selfserv.c:1036,1
    - Dst: errWarn
      Src: /src/nss/cmd/selfserv/selfserv.c:1038,1
    - Dst: SECU_ReadDERFromFile
      Src: /src/nss/cmd/selfserv/selfserv.c:1042,1
    - Dst: errWarn
      Src: /src/nss/cmd/selfserv/selfserv.c:1044,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/selfserv/selfserv.c:1045,1
    - Dst: PR_Lock
      Src: /src/nss/cmd/selfserv/selfserv.c:1049,1
    - Dst: CERT_CacheCRL
      Src: /src/nss/cmd/selfserv/selfserv.c:1050,1
    - Dst: CERT_UncacheCRL
      Src: /src/nss/cmd/selfserv/selfserv.c:1054,1
    - Dst: errWarn
      Src: /src/nss/cmd/selfserv/selfserv.c:1056,1
    - Dst: PR_Unlock
      Src: /src/nss/cmd/selfserv/selfserv.c:1067,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/selfserv/selfserv.c:1068,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 1
    argNames:
    - crlFile
    argTypes:
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1070
      start: 1028
    functionDepth: 1
    functionLinenumber: 1028
    functionLinenumberEnd: 1070
    functionName: reload_crl
    functionSourceFile: /src/nss/cmd/selfserv/selfserv.c
    functionUses: 0
    functionsReached:
    - SECU_ReadDERFromFile
    - PORT_Free
    - CERT_CacheCRL
    - PORT_Malloc
    - PR_Lock
    - CERT_UncacheCRL
    - CERT_GetDefaultCertDB
    - PR_Unlock
    - errWarn
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus reload_crl(PRFileDesc *crlFile)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_Interrupt
      Src: /src/nss/cmd/selfserv/selfserv.c:1076,1
    - Dst: PZ_TraceFlush
      Src: /src/nss/cmd/selfserv/selfserv.c:1077,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1072
    functionDepth: 1
    functionLinenumber: 1072
    functionLinenumberEnd: 1078
    functionName: stop_server
    functionSourceFile: /src/nss/cmd/selfserv/selfserv.c
    functionUses: 0
    functionsReached:
    - PR_Interrupt
    - PZ_TraceFlush
    linkageType: ''
    returnType: void
    signature: void stop_server()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CERT_CreateEncodedOCSPErrorResponse
      Src: /src/nss/cmd/selfserv/selfserv.c:1086,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:1089,1
    - Dst: SECITEM_AllocArray
      Src: /src/nss/cmd/selfserv/selfserv.c:1091,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:1093,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - arena
    argTypes:
    - PLArenaPool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1080
    functionDepth: 1
    functionLinenumber: 1080
    functionLinenumberEnd: 1099
    functionName: makeTryLaterOCSPResponse
    functionSourceFile: /src/nss/cmd/selfserv/selfserv.c
    functionUses: 0
    functionsReached:
    - errExit
    - CERT_CreateEncodedOCSPErrorResponse
    - SECITEM_AllocArray
    linkageType: ''
    returnType: SECItemArray
    signature: 'SECItemArray *

      makeTryLaterOCSPResponse(PLArenaPool *arena)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/selfserv/selfserv.c:1107,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:1109,1
    - Dst: SECITEM_AllocArray
      Src: /src/nss/cmd/selfserv/selfserv.c:1111,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:1113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - arena
    argTypes:
    - PLArenaPool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1119
      start: 1101
    functionDepth: 1
    functionLinenumber: 1101
    functionLinenumberEnd: 1119
    functionName: makeCorruptedOCSPResponse
    functionSourceFile: /src/nss/cmd/selfserv/selfserv.c
    functionUses: 0
    functionsReached:
    - errExit
    - SECITEM_AllocArray
    - SECITEM_AllocItem
    linkageType: ''
    returnType: SECItemArray
    signature: 'SECItemArray *

      makeCorruptedOCSPResponse(PLArenaPool *arena)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PR_Now
      Src: /src/nss/cmd/selfserv/selfserv.c:1131,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/selfserv/selfserv.c:1134,1
    - Dst: CERT_FindCertByNickname
      Src: /src/nss/cmd/selfserv/selfserv.c:1136,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/cmd/selfserv/selfserv.c:1136,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:1138,1
    - Dst: CERT_CreateOCSPCertID
      Src: /src/nss/cmd/selfserv/selfserv.c:1140,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:1142,1
    - Dst: CERT_CreateOCSPSingleResponseGood
      Src: /src/nss/cmd/selfserv/selfserv.c:1149,1
    - Dst: CERT_CreateOCSPSingleResponseUnknown
      Src: /src/nss/cmd/selfserv/selfserv.c:1153,1
    - Dst: CERT_CreateOCSPSingleResponseRevoked
      Src: /src/nss/cmd/selfserv/selfserv.c:1157,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/selfserv/selfserv.c:1163,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:1168,1
    - Dst: PORT_ArenaNewArray
      Src: /src/nss/cmd/selfserv/selfserv.c:1171,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:1173,1
    - Dst: CERT_CreateEncodedOCSPSuccessResponse
      Src: /src/nss/cmd/selfserv/selfserv.c:1178,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:1185,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/selfserv/selfserv.c:1187,1
    - Dst: SECITEM_AllocArray
      Src: /src/nss/cmd/selfserv/selfserv.c:1190,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:1192,1
    - Dst: CERT_DestroyOCSPCertID
      Src: /src/nss/cmd/selfserv/selfserv.c:1197,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 3
    argNames:
    - arena
    - cert
    - pwdata
    argTypes:
    - PLArenaPool*
    - CERTCertificate*
    - secuPWData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1201
      start: 1121
    functionDepth: 1
    functionLinenumber: 1121
    functionLinenumberEnd: 1201
    functionName: makeSignedOCSPResponse
    functionSourceFile: /src/nss/cmd/selfserv/selfserv.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - CERT_CreateOCSPCertID
    - CERT_CreateOCSPSingleResponseRevoked
    - CERT_CreateOCSPSingleResponseGood
    - CERT_DestroyOCSPCertID
    - errExit
    - PR_Now
    - CERT_CreateEncodedOCSPSuccessResponse
    - CERT_GetDefaultCertDB
    - CERT_DestroyCertificate
    - SECITEM_AllocArray
    - CERT_FindCertByNickname
    - CERT_CreateOCSPSingleResponseUnknown
    - PORT_ArenaNewArray
    linkageType: ''
    returnType: SECItemArray
    signature: "SECItemArray *\nmakeSignedOCSPResponse(PLArenaPool *arena,\n                       CERTCertificate
      *cert, secuPWData *pwdata)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: rand
      Src: /src/nss/cmd/selfserv/selfserv.c:1209,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/selfserv/selfserv.c:1230,1
    - Dst: makeSignedOCSPResponse
      Src: /src/nss/cmd/selfserv/selfserv.c:1242,1
    - Dst: makeCorruptedOCSPResponse
      Src: /src/nss/cmd/selfserv/selfserv.c:1246,1
    - Dst: makeTryLaterOCSPResponse
      Src: /src/nss/cmd/selfserv/selfserv.c:1249,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:1252,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 51
    argCount: 4
    argNames:
    - arena
    - cert
    - index
    - pwdata
    argTypes:
    - PLArenaPool*
    - CERTCertificate*
    - int
    - secuPWData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1262
      start: 1203
    functionDepth: 2
    functionLinenumber: 1203
    functionLinenumberEnd: 1262
    functionName: setupCertStatus
    functionSourceFile: /src/nss/cmd/selfserv/selfserv.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - errExit
    - makeCorruptedOCSPResponse
    - makeTryLaterOCSPResponse
    - rand
    - makeSignedOCSPResponse
    linkageType: ''
    returnType: void
    signature: "void setupCertStatus(PLArenaPool *arena,\n                CERTCertificate
      *cert, int index, secuPWData *pwdata)"
  - BBCount: 55
    BranchProfiles: []
    Callsites:
    - Dst: VLOG
      Src: /src/nss/cmd/selfserv/selfserv.c:1291,1
    - Dst: PR_SetSocketOption
      Src: /src/nss/cmd/selfserv/selfserv.c:1294,1
    - Dst: VLOG
      Src: /src/nss/cmd/selfserv/selfserv.c:1296,1
    - Dst: SSL_ImportFD
      Src: /src/nss/cmd/selfserv/selfserv.c:1298,1
    - Dst: errWarn
      Src: /src/nss/cmd/selfserv/selfserv.c:1300,1
    - Dst: SSL_ResetHandshake
      Src: /src/nss/cmd/selfserv/selfserv.c:1303,1
    - Dst: errWarn
      Src: /src/nss/cmd/selfserv/selfserv.c:1305,1
    - Dst: PR_GetLayersIdentity
      Src: /src/nss/cmd/selfserv/selfserv.c:1314,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:1316,1
    - Dst: PR_CreateIOLayerStub
      Src: /src/nss/cmd/selfserv/selfserv.c:1319,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:1321,1
    - Dst: PR_PushIOLayer
      Src: /src/nss/cmd/selfserv/selfserv.c:1323,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:1325,1
    - Dst: PR_SetSocketOption
      Src: /src/nss/cmd/selfserv/selfserv.c:1332,1
    - Dst: errWarn
      Src: /src/nss/cmd/selfserv/selfserv.c:1334,1
    - Dst: PR_Close
      Src: /src/nss/cmd/selfserv/selfserv.c:1336,1
    - Dst: PR_Read
      Src: /src/nss/cmd/selfserv/selfserv.c:1345,1
    - Dst: PR_GetError
      Src: /src/nss/cmd/selfserv/selfserv.c:1347,1
    - Dst: errWarn
      Src: /src/nss/cmd/selfserv/selfserv.c:1349,1
    - Dst: errWarn
      Src: /src/nss/cmd/selfserv/selfserv.c:1353,1
    - Dst: printSecurityInfo
      Src: /src/nss/cmd/selfserv/selfserv.c:1360,1
    - Dst: PORT_Strstr
      Src: /src/nss/cmd/selfserv/selfserv.c:1391,1
    - Dst: strncmp
      Src: /src/nss/cmd/selfserv/selfserv.c:1411,1
    - Dst: strpbrk
      Src: /src/nss/cmd/selfserv/selfserv.c:1418,1
    - Dst: strncpy
      Src: /src/nss/cmd/selfserv/selfserv.c:1424,1
    - Dst: strstr
      Src: /src/nss/cmd/selfserv/selfserv.c:1426,1
    - Dst: PR_MIN
      Src: /src/nss/cmd/selfserv/selfserv.c:1427,1
    - Dst: PL_strncpy
      Src: /src/nss/cmd/selfserv/selfserv.c:1428,1
    - Dst: PR_GetFileInfo
      Src: /src/nss/cmd/selfserv/selfserv.c:1434,1
    - Dst: PR_Open
      Src: /src/nss/cmd/selfserv/selfserv.c:1438,1
    - Dst: SSL_PeerCertificate
      Src: /src/nss/cmd/selfserv/selfserv.c:1447,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/selfserv/selfserv.c:1449,1
    - Dst: SSL_OptionSet
      Src: /src/nss/cmd/selfserv/selfserv.c:1451,1
    - Dst: errWarn
      Src: /src/nss/cmd/selfserv/selfserv.c:1453,1
    - Dst: SSL_OptionSet
      Src: /src/nss/cmd/selfserv/selfserv.c:1456,1
    - Dst: errWarn
      Src: /src/nss/cmd/selfserv/selfserv.c:1459,1
    - Dst: SSL_SendCertificateRequest
      Src: /src/nss/cmd/selfserv/selfserv.c:1463,1
    - Dst: errWarn
      Src: /src/nss/cmd/selfserv/selfserv.c:1465,1
    - Dst: SSL_ForceHandshake
      Src: /src/nss/cmd/selfserv/selfserv.c:1468,1
    - Dst: errWarn
      Src: /src/nss/cmd/selfserv/selfserv.c:1470,1
    - Dst: SSL_ReHandshake
      Src: /src/nss/cmd/selfserv/selfserv.c:1474,1
    - Dst: errWarn
      Src: /src/nss/cmd/selfserv/selfserv.c:1476,1
    - Dst: SSL_ForceHandshake
      Src: /src/nss/cmd/selfserv/selfserv.c:1479,1
    - Dst: errWarn
      Src: /src/nss/cmd/selfserv/selfserv.c:1481,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/selfserv/selfserv.c:1497,1
    - Dst: PL_strcmp
      Src: /src/nss/cmd/selfserv/selfserv.c:1497,1
    - Dst: PR_TransmitFile
      Src: /src/nss/cmd/selfserv/selfserv.c:1498,1
    - Dst: FPRINTF
      Src: /src/nss/cmd/selfserv/selfserv.c:1504,1
    - Dst: errWarn
      Src: /src/nss/cmd/selfserv/selfserv.c:1509,1
    - Dst: PORT_Strlen
      Src: /src/nss/cmd/selfserv/selfserv.c:1510,1
    - Dst: PR_MIN
      Src: /src/nss/cmd/selfserv/selfserv.c:1511,1
    - Dst: PORT_Memcpy
      Src: /src/nss/cmd/selfserv/selfserv.c:1512,1
    - Dst: PORT_Strlen
      Src: /src/nss/cmd/selfserv/selfserv.c:1516,1
    - Dst: PL_strcmp
      Src: /src/nss/cmd/selfserv/selfserv.c:1519,1
    - Dst: reload_crl
      Src: /src/nss/cmd/selfserv/selfserv.c:1520,1
    - Dst: errWarn
      Src: /src/nss/cmd/selfserv/selfserv.c:1521,1
    - Dst: PR_snprintf
      Src: /src/nss/cmd/selfserv/selfserv.c:1524,1
    - Dst: PORT_Strlen
      Src: /src/nss/cmd/selfserv/selfserv.c:1528,1
    - Dst: FPRINTF
      Src: /src/nss/cmd/selfserv/selfserv.c:1531,1
    - Dst: snprintf
      Src: /src/nss/cmd/selfserv/selfserv.c:1538,1
    - Dst: PORT_Strlen
      Src: /src/nss/cmd/selfserv/selfserv.c:1542,1
    - Dst: snprintf
      Src: /src/nss/cmd/selfserv/selfserv.c:1545,1
    - Dst: PORT_Strlen
      Src: /src/nss/cmd/selfserv/selfserv.c:1549,1
    - Dst: fwrite
      Src: /src/nss/cmd/selfserv/selfserv.c:1555,1
    - Dst: PR_Writev
      Src: /src/nss/cmd/selfserv/selfserv.c:1569,1
    - Dst: errWarn
      Src: /src/nss/cmd/selfserv/selfserv.c:1571,1
    - Dst: PR_Write
      Src: /src/nss/cmd/selfserv/selfserv.c:1577,1
    - Dst: PR_ATOMIC_ADD
      Src: /src/nss/cmd/selfserv/selfserv.c:1578,1
    - Dst: PR_ATOMIC_INCREMENT
      Src: /src/nss/cmd/selfserv/selfserv.c:1579,1
    - Dst: errWarn
      Src: /src/nss/cmd/selfserv/selfserv.c:1586,1
    - Dst: PR_ATOMIC_DECREMENT
      Src: /src/nss/cmd/selfserv/selfserv.c:1588,1
    - Dst: PR_Close
      Src: /src/nss/cmd/selfserv/selfserv.c:1595,1
    - Dst: PR_Close
      Src: /src/nss/cmd/selfserv/selfserv.c:1597,1
    - Dst: PR_Close
      Src: /src/nss/cmd/selfserv/selfserv.c:1600,1
    - Dst: VLOG
      Src: /src/nss/cmd/selfserv/selfserv.c:1601,1
    - Dst: strncmp
      Src: /src/nss/cmd/selfserv/selfserv.c:1604,1
    - Dst: VLOG
      Src: /src/nss/cmd/selfserv/selfserv.c:1605,1
    - Dst: stop_server
      Src: /src/nss/cmd/selfserv/selfserv.c:1606,1
    - Dst: VLOG
      Src: /src/nss/cmd/selfserv/selfserv.c:1608,1
    CyclomaticComplexity: 88
    EdgeCount: 88
    ICount: 250
    argCount: 2
    argNames:
    - tcp_sock
    - model_sock
    argTypes:
    - PRFileDesc*
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1610
      start: 1264
    functionDepth: 2
    functionLinenumber: 1264
    functionLinenumberEnd: 1610
    functionName: handle_connection
    functionSourceFile: /src/nss/cmd/selfserv/selfserv.c
    functionUses: 1
    functionsReached:
    - strpbrk
    - strncpy
    - PL_strlen
    - PR_ATOMIC_DECREMENT
    - PL_strcmp
    - SSL_PeerCertificate
    - reload_crl
    - fwrite
    - PR_CreateIOLayerStub
    - PORT_Strstr
    - PR_GetLayersIdentity
    - SSL_ForceHandshake
    - PR_snprintf
    - PORT_Memcpy
    - PR_ATOMIC_INCREMENT
    - SSL_ReHandshake
    - errExit
    - PR_Read
    - snprintf
    - PR_Writev
    - PR_TransmitFile
    - SSL_ImportFD
    - PR_ATOMIC_ADD
    - SSL_OptionSet
    - PR_MIN
    - SSL_ResetHandshake
    - PL_strncpy
    - PR_SetSocketOption
    - PORT_Strlen
    - PR_Open
    - CERT_DestroyCertificate
    - VLOG
    - PR_PushIOLayer
    - PR_Close
    - printSecurityInfo
    - PR_GetFileInfo
    - strncmp
    - SSL_SendCertificateRequest
    - strstr
    - PR_Write
    - stop_server
    - PR_GetError
    - FPRINTF
    - errWarn
    linkageType: ''
    returnType: int
    signature: int handle_connection(PRFileDesc *tcp_sock, PRFileDesc *model_sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VLOG
      Src: /src/nss/cmd/selfserv/selfserv.c:1617,1
    - Dst: stop_server
      Src: /src/nss/cmd/selfserv/selfserv.c:1618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1619
      start: 1614
    functionDepth: 0
    functionLinenumber: 1614
    functionLinenumberEnd: 1619
    functionName: sigusr1_handler
    functionSourceFile: /src/nss/cmd/selfserv/selfserv.c
    functionUses: 0
    functionsReached:
    - VLOG
    - stop_server
    linkageType: ''
    returnType: void
    signature: void sigusr1_handler(int sig)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: VLOG
      Src: /src/nss/cmd/selfserv/selfserv.c:1634,1
    - Dst: PR_SetThreadPriority
      Src: /src/nss/cmd/selfserv/selfserv.c:1635,1
    - Dst: PR_GetCurrentThread
      Src: /src/nss/cmd/selfserv/selfserv.c:1635,1
    - Dst: PR_GetCurrentThread
      Src: /src/nss/cmd/selfserv/selfserv.c:1637,1
    - Dst: sigemptyset
      Src: /src/nss/cmd/selfserv/selfserv.c:1641,1
    - Dst: sigaction
      Src: /src/nss/cmd/selfserv/selfserv.c:1643,1
    - Dst: fprintf
      Src: /src/nss/cmd/selfserv/selfserv.c:1644,1
    - Dst: exit
      Src: /src/nss/cmd/selfserv/selfserv.c:1645,1
    - Dst: FPRINTF
      Src: /src/nss/cmd/selfserv/selfserv.c:1652,1
    - Dst: PR_Accept
      Src: /src/nss/cmd/selfserv/selfserv.c:1653,1
    - Dst: PR_GetError
      Src: /src/nss/cmd/selfserv/selfserv.c:1655,1
    - Dst: errWarn
      Src: /src/nss/cmd/selfserv/selfserv.c:1659,1
    - Dst: FPRINTF
      Src: /src/nss/cmd/selfserv/selfserv.c:1662,1
    - Dst: VLOG
      Src: /src/nss/cmd/selfserv/selfserv.c:1670,1
    - Dst: PR_ATOMIC_INCREMENT
      Src: /src/nss/cmd/selfserv/selfserv.c:1673,1
    - Dst: PZ_Lock
      Src: /src/nss/cmd/selfserv/selfserv.c:1676,1
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/cmd/selfserv/selfserv.c:1677,1
    - Dst: PZ_WaitCondVar
      Src: /src/nss/cmd/selfserv/selfserv.c:1678,1
    - Dst: PZ_Unlock
      Src: /src/nss/cmd/selfserv/selfserv.c:1681,1
    - Dst: PR_Close
      Src: /src/nss/cmd/selfserv/selfserv.c:1683,1
    - Dst: PR_LIST_HEAD
      Src: /src/nss/cmd/selfserv/selfserv.c:1687,1
    - Dst: PR_REMOVE_AND_INIT_LINK
      Src: /src/nss/cmd/selfserv/selfserv.c:1688,1
    - Dst: PR_APPEND_LINK
      Src: /src/nss/cmd/selfserv/selfserv.c:1698,1
    - Dst: PZ_NotifyCondVar
      Src: /src/nss/cmd/selfserv/selfserv.c:1699,1
    - Dst: PZ_Unlock
      Src: /src/nss/cmd/selfserv/selfserv.c:1700,1
    - Dst: FPRINTF
      Src: /src/nss/cmd/selfserv/selfserv.c:1703,1
    - Dst: VLOG
      Src: /src/nss/cmd/selfserv/selfserv.c:1704,1
    - Dst: PR_Close
      Src: /src/nss/cmd/selfserv/selfserv.c:1706,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 56
    argCount: 2
    argNames:
    - listen_sock
    - model_sock
    argTypes:
    - PRFileDesc*
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1709
      start: 1623
    functionDepth: 1
    functionLinenumber: 1623
    functionLinenumberEnd: 1709
    functionName: do_accepts
    functionSourceFile: /src/nss/cmd/selfserv/selfserv.c
    functionUses: 0
    functionsReached:
    - PZ_Unlock
    - fprintf
    - PR_SetThreadPriority
    - PZ_WaitCondVar
    - PR_Accept
    - PR_ATOMIC_INCREMENT
    - sigemptyset
    - PR_CLIST_IS_EMPTY
    - sigaction
    - exit
    - PR_REMOVE_AND_INIT_LINK
    - PZ_NotifyCondVar
    - VLOG
    - PR_Close
    - PR_LIST_HEAD
    - PR_APPEND_LINK
    - PZ_Lock
    - PR_GetCurrentThread
    - PR_GetError
    - FPRINTF
    - errWarn
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus do_accepts(\n    PRFileDesc *listen_sock,\n    PRFileDesc
      *model_sock)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetPrefLoopbackAddrInfo
      Src: /src/nss/cmd/selfserv/selfserv.c:1724,1
    - Dst: PR_htonl
      Src: /src/nss/cmd/selfserv/selfserv.c:1727,1
    - Dst: PR_htons
      Src: /src/nss/cmd/selfserv/selfserv.c:1728,1
    - Dst: PR_OpenTCPSocket
      Src: /src/nss/cmd/selfserv/selfserv.c:1732,1
    - Dst: PR_NewTCPSocket
      Src: /src/nss/cmd/selfserv/selfserv.c:1734,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:1737,1
    - Dst: PR_SetSocketOption
      Src: /src/nss/cmd/selfserv/selfserv.c:1742,1
    - Dst: PR_Close
      Src: /src/nss/cmd/selfserv/selfserv.c:1744,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:1745,1
    - Dst: PR_SetSocketOption
      Src: /src/nss/cmd/selfserv/selfserv.c:1750,1
    - Dst: PR_Close
      Src: /src/nss/cmd/selfserv/selfserv.c:1752,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:1753,1
    - Dst: PR_SecondsToInterval
      Src: /src/nss/cmd/selfserv/selfserv.c:1761,1
    - Dst: PR_SetSocketOption
      Src: /src/nss/cmd/selfserv/selfserv.c:1762,1
    - Dst: PR_Close
      Src: /src/nss/cmd/selfserv/selfserv.c:1764,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:1765,1
    - Dst: PR_Bind
      Src: /src/nss/cmd/selfserv/selfserv.c:1768,1
    - Dst: PR_Close
      Src: /src/nss/cmd/selfserv/selfserv.c:1770,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:1771,1
    - Dst: PR_Listen
      Src: /src/nss/cmd/selfserv/selfserv.c:1774,1
    - Dst: PR_Close
      Src: /src/nss/cmd/selfserv/selfserv.c:1776,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:1777,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 49
    argCount: 1
    argNames:
    - port
    argTypes:
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1780
      start: 1711
    functionDepth: 1
    functionLinenumber: 1711
    functionLinenumberEnd: 1780
    functionName: getBoundListenSocket
    functionSourceFile: /src/nss/cmd/selfserv/selfserv.c
    functionUses: 0
    functionsReached:
    - PR_NewTCPSocket
    - PR_SecondsToInterval
    - PR_Listen
    - PR_OpenTCPSocket
    - PR_GetPrefLoopbackAddrInfo
    - errExit
    - PR_SetSocketOption
    - PR_Close
    - PR_htonl
    - PR_Bind
    - PR_htons
    linkageType: ''
    returnType: PRFileDesc
    signature: 'PRFileDesc *

      getBoundListenSocket(unsigned short port)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_ATOMIC_ADD
      Src: /src/nss/cmd/selfserv/selfserv.c:1793,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - fd
    - iov
    - size
    - timeout
    argTypes:
    - PRFileDesc*
    - PRIOVec*
    - PRInt32
    - PRIntervalTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1795
      start: 1782
    functionDepth: 1
    functionLinenumber: 1782
    functionLinenumberEnd: 1795
    functionName: PR_CALLBACK::logWritev
    functionSourceFile: /src/nss/cmd/selfserv/selfserv.c
    functionUses: 0
    functionsReached:
    - PR_ATOMIC_ADD
    linkageType: ''
    returnType: PRInt32
    signature: "PRInt32 PR_CALLBACK\nlogWritev(\n    PRFileDesc *fd,\n    const PRIOVec
      *iov,\n    PRInt32 size,\n    PRIntervalTime timeout)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_ATOMIC_ADD
      Src: /src/nss/cmd/selfserv/selfserv.c:1806,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - fd
    - buf
    - amount
    argTypes:
    - PRFileDesc*
    - void*
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1809
      start: 1797
    functionDepth: 1
    functionLinenumber: 1797
    functionLinenumberEnd: 1809
    functionName: PR_CALLBACK::logWrite
    functionSourceFile: /src/nss/cmd/selfserv/selfserv.c
    functionUses: 0
    functionsReached:
    - PR_ATOMIC_ADD
    linkageType: ''
    returnType: PRInt32
    signature: "PRInt32 PR_CALLBACK\nlogWrite(\n    PRFileDesc *fd,\n    const void
      *buf,\n    PRInt32 amount)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_ATOMIC_ADD
      Src: /src/nss/cmd/selfserv/selfserv.c:1823,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - fd
    - buf
    - amount
    - flags
    - timeout
    argTypes:
    - PRFileDesc*
    - void*
    - PRInt32
    - PRIntn
    - PRIntervalTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1825
      start: 1811
    functionDepth: 1
    functionLinenumber: 1811
    functionLinenumberEnd: 1825
    functionName: PR_CALLBACK::logSend
    functionSourceFile: /src/nss/cmd/selfserv/selfserv.c
    functionUses: 0
    functionsReached:
    - PR_ATOMIC_ADD
    linkageType: ''
    returnType: PRInt32
    signature: "PRInt32 PR_CALLBACK\nlogSend(\n    PRFileDesc *fd,\n    const void
      *buf,\n    PRInt32 amount,\n    PRIntn flags,\n    PRIntervalTime timeout)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetUniqueIdentity
      Src: /src/nss/cmd/selfserv/selfserv.c:1831,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:1833,1
    - Dst: memcpy
      Src: /src/nss/cmd/selfserv/selfserv.c:1836,1
    - Dst: PR_GetDefaultIOMethods
      Src: /src/nss/cmd/selfserv/selfserv.c:1836,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1840
      start: 1827
    functionDepth: 1
    functionLinenumber: 1827
    functionLinenumberEnd: 1840
    functionName: initLoggingLayer
    functionSourceFile: /src/nss/cmd/selfserv/selfserv.c
    functionUses: 0
    functionsReached:
    - PR_GetDefaultIOMethods
    - errExit
    - memcpy
    - PR_GetUniqueIdentity
    linkageType: ''
    returnType: void
    signature: void initLoggingLayer(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SSL_GetNegotiatedHostInfo
      Src: /src/nss/cmd/selfserv/selfserv.c:1847,1
    - Dst: PORT_Strncmp
      Src: /src/nss/cmd/selfserv/selfserv.c:1848,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/selfserv/selfserv.c:1853,1
    - Dst: exportKeyingMaterials
      Src: /src/nss/cmd/selfserv/selfserv.c:1857,1
    - Dst: PR_GetError
      Src: /src/nss/cmd/selfserv/selfserv.c:1859,1
    - Dst: fprintf
      Src: /src/nss/cmd/selfserv/selfserv.c:1860,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/selfserv/selfserv.c:1862,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - fd
    - client_data
    argTypes:
    - PRFileDesc*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1865
      start: 1842
    functionDepth: 1
    functionLinenumber: 1842
    functionLinenumberEnd: 1865
    functionName: handshakeCallback
    functionSourceFile: /src/nss/cmd/selfserv/selfserv.c
    functionUses: 0
    functionsReached:
    - exportKeyingMaterials
    - PORT_Strncmp
    - SSL_GetNegotiatedHostInfo
    - SECU_Strerror
    - fprintf
    - PR_GetError
    - SECITEM_FreeItem
    linkageType: ''
    returnType: void
    signature: void handshakeCallback(PRFileDesc *fd, void *client_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECU_PrintAsHex
      Src: /src/nss/cmd/selfserv/selfserv.c:1870,1
    - Dst: PK11_GetInternalSlot
      Src: /src/nss/cmd/selfserv/selfserv.c:1873,1
    - Dst: errWarn
      Src: /src/nss/cmd/selfserv/selfserv.c:1875,1
    - Dst: PK11_ImportSymKey
      Src: /src/nss/cmd/selfserv/selfserv.c:1878,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/cmd/selfserv/selfserv.c:1880,1
    - Dst: errWarn
      Src: /src/nss/cmd/selfserv/selfserv.c:1882,1
    - Dst: SSL_AddExternalPsk
      Src: /src/nss/cmd/selfserv/selfserv.c:1886,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/cmd/selfserv/selfserv.c:1889,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - model_sock
    argTypes:
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1891
      start: 1867
    functionDepth: 1
    functionLinenumber: 1867
    functionLinenumberEnd: 1891
    functionName: importPsk
    functionSourceFile: /src/nss/cmd/selfserv/selfserv.c
    functionUses: 0
    functionsReached:
    - SSL_AddExternalPsk
    - PK11_ImportSymKey
    - PK11_GetInternalSlot
    - errWarn
    - PK11_FreeSymKey
    - PK11_FreeSlot
    - SECU_PrintAsHex
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus importPsk(PRFileDesc *model_sock)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetInternalKeySlot
      Src: /src/nss/cmd/selfserv/selfserv.c:1911,1
    - Dst: errWarn
      Src: /src/nss/cmd/selfserv/selfserv.c:1913,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/cmd/selfserv/selfserv.c:1917,1
    - Dst: errWarn
      Src: /src/nss/cmd/selfserv/selfserv.c:1918,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/cmd/selfserv/selfserv.c:1922,1
    - Dst: memcpy
      Src: /src/nss/cmd/selfserv/selfserv.c:1926,1
    - Dst: errWarn
      Src: /src/nss/cmd/selfserv/selfserv.c:1929,1
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/cmd/selfserv/selfserv.c:1932,1
    - Dst: errWarn
      Src: /src/nss/cmd/selfserv/selfserv.c:1935,1
    - Dst: SSL_EncodeEchConfigId
      Src: /src/nss/cmd/selfserv/selfserv.c:1939,1
    - Dst: errWarn
      Src: /src/nss/cmd/selfserv/selfserv.c:1944,1
    - Dst: SSL_SetServerEchConfigs
      Src: /src/nss/cmd/selfserv/selfserv.c:1948,1
    - Dst: errWarn
      Src: /src/nss/cmd/selfserv/selfserv.c:1950,1
    - Dst: NSSBase64_EncodeItem
      Src: /src/nss/cmd/selfserv/selfserv.c:1955,1
    - Dst: errWarn
      Src: /src/nss/cmd/selfserv/selfserv.c:1957,1
    - Dst: strstr
      Src: /src/nss/cmd/selfserv/selfserv.c:1962,1
    - Dst: memmove
      Src: /src/nss/cmd/selfserv/selfserv.c:1964,1
    - Dst: strlen
      Src: /src/nss/cmd/selfserv/selfserv.c:1964,1
    - Dst: printf
      Src: /src/nss/cmd/selfserv/selfserv.c:1967,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/selfserv/selfserv.c:1968,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/cmd/selfserv/selfserv.c:1969,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/cmd/selfserv/selfserv.c:1970,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/cmd/selfserv/selfserv.c:1971,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/selfserv/selfserv.c:1975,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/cmd/selfserv/selfserv.c:1976,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/cmd/selfserv/selfserv.c:1977,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/cmd/selfserv/selfserv.c:1978,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 61
    argCount: 2
    argNames:
    - model_sock
    - public_name
    argTypes:
    - PRFileDesc*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1980
      start: 1893
    functionDepth: 1
    functionLinenumber: 1893
    functionLinenumberEnd: 1980
    functionName: configureEchWithPublicName
    functionSourceFile: /src/nss/cmd/selfserv/selfserv.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PK11_GetInternalKeySlot
    - SECOID_FindOIDByTag
    - SECKEY_DestroyPublicKey
    - PORT_Free
    - PK11_GenerateKeyPair
    - printf
    - NSSBase64_EncodeItem
    - SSL_EncodeEchConfigId
    - strstr
    - PK11_GenerateRandom
    - SSL_SetServerEchConfigs
    - SECKEY_DestroyPrivateKey
    - errWarn
    - memmove
    - PK11_FreeSlot
    - strlen
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus configureEchWithPublicName(PRFileDesc *model_sock, const
      char *public_name)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: NSSBase64_DecodeBuffer
      Src: /src/nss/cmd/selfserv/selfserv.c:2009,1
    - Dst: PORT_Strlen
      Src: /src/nss/cmd/selfserv/selfserv.c:2009,1
    - Dst: errWarn
      Src: /src/nss/cmd/selfserv/selfserv.c:2011,1
    - Dst: REMAINING_BYTES
      Src: /src/nss/cmd/selfserv/selfserv.c:2018,1
    - Dst: errWarn
      Src: /src/nss/cmd/selfserv/selfserv.c:2019,1
    - Dst: PK11_GetInternalKeySlot
      Src: /src/nss/cmd/selfserv/selfserv.c:2027,1
    - Dst: PK11_ImportDERPrivateKeyInfoAndReturnKey
      Src: /src/nss/cmd/selfserv/selfserv.c:2028,1
    - Dst: errWarn
      Src: /src/nss/cmd/selfserv/selfserv.c:2031,1
    - Dst: SECKEY_ConvertToPublicKey
      Src: /src/nss/cmd/selfserv/selfserv.c:2034,1
    - Dst: errWarn
      Src: /src/nss/cmd/selfserv/selfserv.c:2036,1
    - Dst: SSL_SetServerEchConfigs
      Src: /src/nss/cmd/selfserv/selfserv.c:2041,1
    - Dst: REMAINING_BYTES
      Src: /src/nss/cmd/selfserv/selfserv.c:2042,1
    - Dst: errWarn
      Src: /src/nss/cmd/selfserv/selfserv.c:2044,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/cmd/selfserv/selfserv.c:2048,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/cmd/selfserv/selfserv.c:2049,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/cmd/selfserv/selfserv.c:2050,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/selfserv/selfserv.c:2051,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/cmd/selfserv/selfserv.c:2055,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/cmd/selfserv/selfserv.c:2057,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/cmd/selfserv/selfserv.c:2058,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/selfserv/selfserv.c:2059,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 52
    argCount: 1
    argNames:
    - model_sock
    argTypes:
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2061
      start: 1982
    functionDepth: 1
    functionLinenumber: 1982
    functionLinenumberEnd: 2061
    functionName: configureEchWithData
    functionSourceFile: /src/nss/cmd/selfserv/selfserv.c
    functionUses: 0
    functionsReached:
    - PK11_FreeSlot
    - PK11_GetInternalKeySlot
    - NSSBase64_DecodeBuffer
    - SECKEY_DestroyPublicKey
    - REMAINING_BYTES
    - PORT_Strlen
    - SECKEY_ConvertToPublicKey
    - SSL_SetServerEchConfigs
    - SECKEY_DestroyPrivateKey
    - errWarn
    - PK11_ImportDERPrivateKeyInfoAndReturnKey
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus configureEchWithData(PRFileDesc *model_sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - rdr
    - ','
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1999
      start: 1997
    functionDepth: 0
    functionLinenumber: 1997
    functionLinenumberEnd: 1999
    functionName: REMAINING_BYTES
    functionSourceFile: /src/nss/cmd/selfserv/selfserv.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REMAINING_BYTES(rdr, buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strncmp
      Src: /src/nss/cmd/selfserv/selfserv.c:2066,1
    - Dst: PORT_Strlen
      Src: /src/nss/cmd/selfserv/selfserv.c:2066,1
    - Dst: configureEchWithPublicName
      Src: /src/nss/cmd/selfserv/selfserv.c:2067,1
    - Dst: PORT_Strlen
      Src: /src/nss/cmd/selfserv/selfserv.c:2068,1
    - Dst: configureEchWithData
      Src: /src/nss/cmd/selfserv/selfserv.c:2070,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - model_sock
    argTypes:
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2071
      start: 2063
    functionDepth: 2
    functionLinenumber: 2063
    functionLinenumberEnd: 2071
    functionName: configureEch
    functionSourceFile: /src/nss/cmd/selfserv/selfserv.c
    functionUses: 0
    functionsReached:
    - configureEchWithPublicName
    - configureEchWithData
    - PORT_Strlen
    - PORT_Strncmp
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus configureEch(PRFileDesc *model_sock)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_SetError
      Src: /src/nss/cmd/selfserv/selfserv.c:2079,1
    - Dst: uncompress
      Src: /src/nss/cmd/selfserv/selfserv.c:2085,1
    - Dst: PR_SetError
      Src: /src/nss/cmd/selfserv/selfserv.c:2087,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 4
    argNames:
    - input
    - output
    - outputLen
    - usedLen
    argTypes:
    - SECItem*
    - unsigned char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2092
      start: 2073
    functionDepth: 1
    functionLinenumber: 2073
    functionLinenumberEnd: 2092
    functionName: zlibCertificateDecode
    functionSourceFile: /src/nss/cmd/selfserv/selfserv.c
    functionUses: 0
    functionsReached:
    - PR_SetError
    - uncompress
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus zlibCertificateDecode(const SECItem *input,\n                      unsigned
      char *output, size_t outputLen,\n                      size_t *usedLen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_SetError
      Src: /src/nss/cmd/selfserv/selfserv.c:2098,1
    - Dst: compressBound
      Src: /src/nss/cmd/selfserv/selfserv.c:2102,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/selfserv/selfserv.c:2103,1
    - Dst: compress
      Src: /src/nss/cmd/selfserv/selfserv.c:2105,1
    - Dst: PR_SetError
      Src: /src/nss/cmd/selfserv/selfserv.c:2107,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - input
    - output
    argTypes:
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2112
      start: 2094
    functionDepth: 1
    functionLinenumber: 2094
    functionLinenumberEnd: 2112
    functionName: zlibCertificateEncode
    functionSourceFile: /src/nss/cmd/selfserv/selfserv.c
    functionUses: 0
    functionsReached:
    - compress
    - PR_SetError
    - compressBound
    - SECITEM_AllocItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus zlibCertificateEncode(const SECItem *input, SECItem *output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_SetCertificateCompressionAlgorithm
      Src: /src/nss/cmd/selfserv/selfserv.c:2121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - model_sock
    argTypes:
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2122
      start: 2114
    functionDepth: 1
    functionLinenumber: 2114
    functionLinenumberEnd: 2122
    functionName: configureZlibCompression
    functionSourceFile: /src/nss/cmd/selfserv/selfserv.c
    functionUses: 0
    functionsReached:
    - SSL_SetCertificateCompressionAlgorithm
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus configureZlibCompression(PRFileDesc *model_sock)
  - BBCount: 58
    BranchProfiles: []
    Callsites:
    - Dst: PR_NewTCPSocket
      Src: /src/nss/cmd/selfserv/selfserv.c:2137,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:2139,1
    - Dst: SSL_ImportFD
      Src: /src/nss/cmd/selfserv/selfserv.c:2141,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:2143,1
    - Dst: SSL_ImportFD
      Src: /src/nss/cmd/selfserv/selfserv.c:2146,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:2148,1
    - Dst: SSL_OptionSet
      Src: /src/nss/cmd/selfserv/selfserv.c:2153,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:2155,1
    - Dst: SSL_VersionRangeSet
      Src: /src/nss/cmd/selfserv/selfserv.c:2158,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:2160,1
    - Dst: SSL_OptionSet
      Src: /src/nss/cmd/selfserv/selfserv.c:2163,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:2165,1
    - Dst: SSL_OptionSet
      Src: /src/nss/cmd/selfserv/selfserv.c:2168,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:2170,1
    - Dst: SSL_OptionSet
      Src: /src/nss/cmd/selfserv/selfserv.c:2174,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:2176,1
    - Dst: configureZlibCompression
      Src: /src/nss/cmd/selfserv/selfserv.c:2181,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:2183,1
    - Dst: SSL_SNISocketConfigHook
      Src: /src/nss/cmd/selfserv/selfserv.c:2188,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:2191,1
    - Dst: SSL_OptionSet
      Src: /src/nss/cmd/selfserv/selfserv.c:2196,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:2198,1
    - Dst: SSL_OptionSet
      Src: /src/nss/cmd/selfserv/selfserv.c:2200,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:2202,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/selfserv/selfserv.c:2204,1
    - Dst: SSL_OptionSet
      Src: /src/nss/cmd/selfserv/selfserv.c:2208,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:2210,1
    - Dst: SSL_EnableWeakDHEPrimeGroup
      Src: /src/nss/cmd/selfserv/selfserv.c:2215,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:2217,1
    - Dst: SSL_OptionSet
      Src: /src/nss/cmd/selfserv/selfserv.c:2222,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:2224,1
    - Dst: SSL_ConfigServerCert
      Src: /src/nss/cmd/selfserv/selfserv.c:2236,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:2240,1
    - Dst: SSL_OptionSet
      Src: /src/nss/cmd/selfserv/selfserv.c:2245,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:2247,1
    - Dst: SSL_OptionSet
      Src: /src/nss/cmd/selfserv/selfserv.c:2252,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:2254,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:2260,1
    - Dst: SSL_SetAntiReplayContext
      Src: /src/nss/cmd/selfserv/selfserv.c:2262,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:2264,1
    - Dst: SSL_OptionSet
      Src: /src/nss/cmd/selfserv/selfserv.c:2266,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:2268,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:2274,1
    - Dst: SSL_OptionSet
      Src: /src/nss/cmd/selfserv/selfserv.c:2276,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:2278,1
    - Dst: SSL_OptionSet
      Src: /src/nss/cmd/selfserv/selfserv.c:2285,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:2287,1
    - Dst: SSL_SetNextProtoNego
      Src: /src/nss/cmd/selfserv/selfserv.c:2290,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:2292,1
    - Dst: SSL_NamedGroupConfig
      Src: /src/nss/cmd/selfserv/selfserv.c:2297,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:2299,1
    - Dst: SSL_SignatureSchemePrefSet
      Src: /src/nss/cmd/selfserv/selfserv.c:2304,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:2306,1
    - Dst: SSL_CipherPrefSetDefault
      Src: /src/nss/cmd/selfserv/selfserv.c:2314,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:2316,1
    - Dst: SSL_HandshakeCallback
      Src: /src/nss/cmd/selfserv/selfserv.c:2320,1
    - Dst: SSL_AuthCertificateHook
      Src: /src/nss/cmd/selfserv/selfserv.c:2325,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/cmd/selfserv/selfserv.c:2326,1
    - Dst: SSL_OptionSet
      Src: /src/nss/cmd/selfserv/selfserv.c:2328,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:2330,1
    - Dst: SSL_OptionSet
      Src: /src/nss/cmd/selfserv/selfserv.c:2332,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:2335,1
    - Dst: importPsk
      Src: /src/nss/cmd/selfserv/selfserv.c:2341,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:2343,1
    - Dst: configureEch
      Src: /src/nss/cmd/selfserv/selfserv.c:2348,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:2350,1
    - Dst: SSL_BadCertHook
      Src: /src/nss/cmd/selfserv/selfserv.c:2355,1
    - Dst: do_accepts
      Src: /src/nss/cmd/selfserv/selfserv.c:2360,1
    - Dst: terminateWorkerThreads
      Src: /src/nss/cmd/selfserv/selfserv.c:2362,1
    - Dst: PR_Close
      Src: /src/nss/cmd/selfserv/selfserv.c:2366,1
    CyclomaticComplexity: 60
    EdgeCount: 60
    ICount: 185
    argCount: 4
    argNames:
    - listen_sock
    - privKey
    - cert
    - expectedHostNameVal
    argTypes:
    - PRFileDesc*
    - SECKEYPrivateKey**
    - CERTCertificate**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2369
      start: 2124
    functionDepth: 3
    functionLinenumber: 2124
    functionLinenumberEnd: 2369
    functionName: server_main
    functionSourceFile: /src/nss/cmd/selfserv/selfserv.c
    functionUses: 0
    functionsReached:
    - SSL_CipherPrefSetDefault
    - SSL_ConfigServerCert
    - terminateWorkerThreads
    - SSL_BadCertHook
    - do_accepts
    - errExit
    - CERT_GetDefaultCertDB
    - SSL_ImportFD
    - SSL_OptionSet
    - SSL_VersionRangeSet
    - PR_NewTCPSocket
    - PORT_Assert
    - importPsk
    - configureZlibCompression
    - SSL_EnableWeakDHEPrimeGroup
    - SSL_SNISocketConfigHook
    - configureEch
    - PR_Close
    - SSL_AuthCertificateHook
    - SSL_NamedGroupConfig
    - SSL_SignatureSchemePrefSet
    - SSL_HandshakeCallback
    - SSL_SetNextProtoNego
    - SSL_SetAntiReplayContext
    linkageType: ''
    returnType: void
    signature: "void server_main(\n    PRFileDesc *listen_sock,\n    SECKEYPrivateKey
      **privKey,\n    CERTCertificate **cert,\n    const char *expectedHostNameVal)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetFileInfo
      Src: /src/nss/cmd/selfserv/selfserv.c:2381,1
    - Dst: PR_Open
      Src: /src/nss/cmd/selfserv/selfserv.c:2386,1
    - Dst: PORT_Strlen
      Src: /src/nss/cmd/selfserv/selfserv.c:2388,1
    - Dst: PORT_Malloc
      Src: /src/nss/cmd/selfserv/selfserv.c:2390,1
    - Dst: errWarn
      Src: /src/nss/cmd/selfserv/selfserv.c:2392,1
    - Dst: PORT_Memcpy
      Src: /src/nss/cmd/selfserv/selfserv.c:2396,1
    - Dst: PR_Read
      Src: /src/nss/cmd/selfserv/selfserv.c:2398,1
    - Dst: errWarn
      Src: /src/nss/cmd/selfserv/selfserv.c:2400,1
    - Dst: PR_Close
      Src: /src/nss/cmd/selfserv/selfserv.c:2406,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - fileName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2410
      start: 2371
    functionDepth: 1
    functionLinenumber: 2371
    functionLinenumberEnd: 2410
    functionName: readBigFile
    functionSourceFile: /src/nss/cmd/selfserv/selfserv.c
    functionUses: 0
    functionsReached:
    - PORT_Memcpy
    - PR_Close
    - PORT_Strlen
    - PORT_Malloc
    - PR_Open
    - PR_Read
    - PR_GetFileInfo
    - errWarn
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus readBigFile(const char *fileName)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_CreateProcess
      Src: /src/nss/cmd/selfserv/selfserv.c:2420,1
    - Dst: errWarn
      Src: /src/nss/cmd/selfserv/selfserv.c:2422,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - argc
    - argv
    - attr
    argTypes:
    - int
    - char**
    - PRProcessAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2427
      start: 2415
    functionDepth: 1
    functionLinenumber: 2415
    functionLinenumberEnd: 2427
    functionName: haveAChild
    functionSourceFile: /src/nss/cmd/selfserv/selfserv.c
    functionUses: 0
    functionsReached:
    - PR_CreateProcess
    - errWarn
    linkageType: ''
    returnType: PRProcess
    signature: 'PRProcess *

      haveAChild(int argc, char **argv, PRProcessAttr *attr)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/selfserv/selfserv.c:2435,1
    - Dst: PR_KillProcess
      Src: /src/nss/cmd/selfserv/selfserv.c:2438,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2440
      start: 2430
    functionDepth: 1
    functionLinenumber: 2430
    functionLinenumberEnd: 2440
    functionName: sigusr1_parent_handler
    functionSourceFile: /src/nss/cmd/selfserv/selfserv.c
    functionUses: 0
    functionsReached:
    - fprintf
    - PR_KillProcess
    linkageType: ''
    returnType: void
    signature: void sigusr1_parent_handler(int sig)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sigemptyset
      Src: /src/nss/cmd/selfserv/selfserv.c:2457,1
    - Dst: sigaction
      Src: /src/nss/cmd/selfserv/selfserv.c:2459,1
    - Dst: fprintf
      Src: /src/nss/cmd/selfserv/selfserv.c:2460,1
    - Dst: exit
      Src: /src/nss/cmd/selfserv/selfserv.c:2461,1
    - Dst: PR_SetFDInheritable
      Src: /src/nss/cmd/selfserv/selfserv.c:2465,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:2467,1
    - Dst: PR_NewProcessAttr
      Src: /src/nss/cmd/selfserv/selfserv.c:2469,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:2471,1
    - Dst: PR_ProcessAttrSetInheritableFD
      Src: /src/nss/cmd/selfserv/selfserv.c:2473,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:2475,1
    - Dst: haveAChild
      Src: /src/nss/cmd/selfserv/selfserv.c:2478,1
    - Dst: PR_SetFDInheritable
      Src: /src/nss/cmd/selfserv/selfserv.c:2483,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:2485,1
    - Dst: PR_WaitProcess
      Src: /src/nss/cmd/selfserv/selfserv.c:2489,1
    - Dst: fprintf
      Src: /src/nss/cmd/selfserv/selfserv.c:2490,1
    - Dst: exit
      Src: /src/nss/cmd/selfserv/selfserv.c:2494,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 4
    argNames:
    - argc
    - argv
    - maxProcs
    - listen_sock
    argTypes:
    - int
    - char**
    - int
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2495
      start: 2443
    functionDepth: 1
    functionLinenumber: 2443
    functionLinenumberEnd: 2495
    functionName: beAGoodParent
    functionSourceFile: /src/nss/cmd/selfserv/selfserv.c
    functionUses: 0
    functionsReached:
    - haveAChild
    - sigaction
    - PR_SetFDInheritable
    - errExit
    - exit
    - fprintf
    - sigemptyset
    - PR_ProcessAttrSetInheritableFD
    - PR_WaitProcess
    - PR_NewProcessAttr
    linkageType: ''
    returnType: void
    signature: void beAGoodParent(int argc, char **argv, int maxProcs, PRFileDesc
      *listen_sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2511
      start: 2497
    functionDepth: 0
    functionLinenumber: 2497
    functionLinenumberEnd: 2511
    functionName: HEXCHAR_TO_INT
    functionSourceFile: /src/nss/cmd/selfserv/selfserv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HEXCHAR_TO_INT(c, i)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nss/cmd/selfserv/selfserv.c:2515,1
    - Dst: strcmp
      Src: /src/nss/cmd/selfserv/selfserv.c:2519,1
    - Dst: strcmp
      Src: /src/nss/cmd/selfserv/selfserv.c:2523,1
    - Dst: strcmp
      Src: /src/nss/cmd/selfserv/selfserv.c:2527,1
    - Dst: strcmp
      Src: /src/nss/cmd/selfserv/selfserv.c:2531,1
    - Dst: strcmp
      Src: /src/nss/cmd/selfserv/selfserv.c:2535,1
    - Dst: strcmp
      Src: /src/nss/cmd/selfserv/selfserv.c:2539,1
    - Dst: strcmp
      Src: /src/nss/cmd/selfserv/selfserv.c:2543,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 1
    argNames:
    - mode
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2548
      start: 2512
    functionDepth: 0
    functionLinenumber: 2512
    functionLinenumberEnd: 2548
    functionName: enableOCSPStapling
    functionSourceFile: /src/nss/cmd/selfserv/selfserv.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus enableOCSPStapling(const char *mode)
  - BBCount: 134
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/nss/cmd/selfserv/selfserv.c:2584,1
    - Dst: strrchr
      Src: /src/nss/cmd/selfserv/selfserv.c:2586,1
    - Dst: PR_Init
      Src: /src/nss/cmd/selfserv/selfserv.c:2589,1
    - Dst: SSL_VersionRangeGetSupported
      Src: /src/nss/cmd/selfserv/selfserv.c:2590,1
    - Dst: PL_CreateOptState
      Src: /src/nss/cmd/selfserv/selfserv.c:2596,1
    - Dst: PL_GetNextOpt
      Src: /src/nss/cmd/selfserv/selfserv.c:2598,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/selfserv/selfserv.c:2606,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/selfserv/selfserv.c:2611,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/selfserv/selfserv.c:2623,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/selfserv/selfserv.c:2635,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/selfserv/selfserv.c:2642,1
    - Dst: Usage
      Src: /src/nss/cmd/selfserv/selfserv.c:2659,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/selfserv/selfserv.c:2662,1
    - Dst: enableOCSPStapling
      Src: /src/nss/cmd/selfserv/selfserv.c:2666,1
    - Dst: fprintf
      Src: /src/nss/cmd/selfserv/selfserv.c:2667,1
    - Dst: fprintf
      Src: /src/nss/cmd/selfserv/selfserv.c:2668,1
    - Dst: exit
      Src: /src/nss/cmd/selfserv/selfserv.c:2669,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/selfserv/selfserv.c:2674,1
    - Dst: SECU_ParseSSLVersionRangeString
      Src: /src/nss/cmd/selfserv/selfserv.c:2678,1
    - Dst: fprintf
      Src: /src/nss/cmd/selfserv/selfserv.c:2681,1
    - Dst: Usage
      Src: /src/nss/cmd/selfserv/selfserv.c:2682,1
    - Dst: exit
      Src: /src/nss/cmd/selfserv/selfserv.c:2683,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/selfserv/selfserv.c:2688,1
    - Dst: PrintCipherUsage
      Src: /src/nss/cmd/selfserv/selfserv.c:2692,1
    - Dst: exit
      Src: /src/nss/cmd/selfserv/selfserv.c:2693,1
    - Dst: Usage
      Src: /src/nss/cmd/selfserv/selfserv.c:2698,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/selfserv/selfserv.c:2702,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/selfserv/selfserv.c:2710,1
    - Dst: Usage
      Src: /src/nss/cmd/selfserv/selfserv.c:2719,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/selfserv/selfserv.c:2722,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/selfserv/selfserv.c:2727,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/selfserv/selfserv.c:2732,1
    - Dst: Usage
      Src: /src/nss/cmd/selfserv/selfserv.c:2736,1
    - Dst: exit
      Src: /src/nss/cmd/selfserv/selfserv.c:2737,1
    - Dst: initLoggingLayer
      Src: /src/nss/cmd/selfserv/selfserv.c:2745,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/selfserv/selfserv.c:2750,1
    - Dst: Usage
      Src: /src/nss/cmd/selfserv/selfserv.c:2763,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/selfserv/selfserv.c:2766,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/selfserv/selfserv.c:2767,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/selfserv/selfserv.c:2771,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/selfserv/selfserv.c:2779,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/selfserv/selfserv.c:2795,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/selfserv/selfserv.c:2812,1
    - Dst: readPSK
      Src: /src/nss/cmd/selfserv/selfserv.c:2824,1
    - Dst: PL_DestroyOptState
      Src: /src/nss/cmd/selfserv/selfserv.c:2826,1
    - Dst: fprintf
      Src: /src/nss/cmd/selfserv/selfserv.c:2827,1
    - Dst: Usage
      Src: /src/nss/cmd/selfserv/selfserv.c:2828,1
    - Dst: exit
      Src: /src/nss/cmd/selfserv/selfserv.c:2829,1
    - Dst: parseGroupList
      Src: /src/nss/cmd/selfserv/selfserv.c:2838,1
    - Dst: PL_DestroyOptState
      Src: /src/nss/cmd/selfserv/selfserv.c:2840,1
    - Dst: fprintf
      Src: /src/nss/cmd/selfserv/selfserv.c:2841,1
    - Dst: fprintf
      Src: /src/nss/cmd/selfserv/selfserv.c:2842,1
    - Dst: exit
      Src: /src/nss/cmd/selfserv/selfserv.c:2843,1
    - Dst: parseSigSchemeList
      Src: /src/nss/cmd/selfserv/selfserv.c:2848,1
    - Dst: PL_DestroyOptState
      Src: /src/nss/cmd/selfserv/selfserv.c:2850,1
    - Dst: fprintf
      Src: /src/nss/cmd/selfserv/selfserv.c:2851,1
    - Dst: fprintf
      Src: /src/nss/cmd/selfserv/selfserv.c:2852,1
    - Dst: exit
      Src: /src/nss/cmd/selfserv/selfserv.c:2853,1
    - Dst: parseExporters
      Src: /src/nss/cmd/selfserv/selfserv.c:2858,1
    - Dst: PL_DestroyOptState
      Src: /src/nss/cmd/selfserv/selfserv.c:2861,1
    - Dst: fprintf
      Src: /src/nss/cmd/selfserv/selfserv.c:2862,1
    - Dst: fprintf
      Src: /src/nss/cmd/selfserv/selfserv.c:2863,1
    - Dst: exit
      Src: /src/nss/cmd/selfserv/selfserv.c:2864,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/selfserv/selfserv.c:2869,1
    - Dst: PL_DestroyOptState
      Src: /src/nss/cmd/selfserv/selfserv.c:2871,1
    - Dst: fprintf
      Src: /src/nss/cmd/selfserv/selfserv.c:2872,1
    - Dst: exit
      Src: /src/nss/cmd/selfserv/selfserv.c:2873,1
    - Dst: fprintf
      Src: /src/nss/cmd/selfserv/selfserv.c:2878,1
    - Dst: fprintf
      Src: /src/nss/cmd/selfserv/selfserv.c:2879,1
    - Dst: exit
      Src: /src/nss/cmd/selfserv/selfserv.c:2880,1
    - Dst: PL_DestroyOptState
      Src: /src/nss/cmd/selfserv/selfserv.c:2884,1
    - Dst: fprintf
      Src: /src/nss/cmd/selfserv/selfserv.c:2886,1
    - Dst: fprintf
      Src: /src/nss/cmd/selfserv/selfserv.c:2887,1
    - Dst: exit
      Src: /src/nss/cmd/selfserv/selfserv.c:2888,1
    - Dst: Usage
      Src: /src/nss/cmd/selfserv/selfserv.c:2891,1
    - Dst: exit
      Src: /src/nss/cmd/selfserv/selfserv.c:2892,1
    - Dst: fprintf
      Src: /src/nss/cmd/selfserv/selfserv.c:2900,1
    - Dst: fprintf
      Src: /src/nss/cmd/selfserv/selfserv.c:2901,1
    - Dst: exit
      Src: /src/nss/cmd/selfserv/selfserv.c:2902,1
    - Dst: getBoundListenSocket
      Src: /src/nss/cmd/selfserv/selfserv.c:2914,1
    - Dst: exit
      Src: /src/nss/cmd/selfserv/selfserv.c:2916,1
    - Dst: PR_Close
      Src: /src/nss/cmd/selfserv/selfserv.c:2919,1
    - Dst: exit
      Src: /src/nss/cmd/selfserv/selfserv.c:2921,1
    - Dst: fprintf
      Src: /src/nss/cmd/selfserv/selfserv.c:2925,1
    - Dst: fprintf
      Src: /src/nss/cmd/selfserv/selfserv.c:2926,1
    - Dst: exit
      Src: /src/nss/cmd/selfserv/selfserv.c:2927,1
    - Dst: fprintf
      Src: /src/nss/cmd/selfserv/selfserv.c:2931,1
    - Dst: exit
      Src: /src/nss/cmd/selfserv/selfserv.c:2932,1
    - Dst: fprintf
      Src: /src/nss/cmd/selfserv/selfserv.c:2936,1
    - Dst: exit
      Src: /src/nss/cmd/selfserv/selfserv.c:2937,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/cmd/selfserv/selfserv.c:2940,1
    - Dst: fopen
      Src: /src/nss/cmd/selfserv/selfserv.c:2942,1
    - Dst: fprintf
      Src: /src/nss/cmd/selfserv/selfserv.c:2945,1
    - Dst: getpid
      Src: /src/nss/cmd/selfserv/selfserv.c:2945,1
    - Dst: fclose
      Src: /src/nss/cmd/selfserv/selfserv.c:2946,1
    - Dst: PORT_Malloc
      Src: /src/nss/cmd/selfserv/selfserv.c:2952,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:2954,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/cmd/selfserv/selfserv.c:2959,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/cmd/selfserv/selfserv.c:2960,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/cmd/selfserv/selfserv.c:2962,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/cmd/selfserv/selfserv.c:2964,1
    - Dst: PR_GetInheritedFD
      Src: /src/nss/cmd/selfserv/selfserv.c:2968,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:2970,1
    - Dst: PR_SetFDInheritable
      Src: /src/nss/cmd/selfserv/selfserv.c:2980,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:2982,1
    - Dst: SSL_InheritMPServerSIDCache
      Src: /src/nss/cmd/selfserv/selfserv.c:2984,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:2986,1
    - Dst: NSS_Initialize
      Src: /src/nss/cmd/selfserv/selfserv.c:2989,1
    - Dst: fputs
      Src: /src/nss/cmd/selfserv/selfserv.c:2991,1
    - Dst: exit
      Src: /src/nss/cmd/selfserv/selfserv.c:2992,1
    - Dst: getBoundListenSocket
      Src: /src/nss/cmd/selfserv/selfserv.c:2996,1
    - Dst: SSL_ConfigMPServerSIDCache
      Src: /src/nss/cmd/selfserv/selfserv.c:2997,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:2999,1
    - Dst: beAGoodParent
      Src: /src/nss/cmd/selfserv/selfserv.c:3001,1
    - Dst: exit
      Src: /src/nss/cmd/selfserv/selfserv.c:3002,1
    - Dst: NSS_Initialize
      Src: /src/nss/cmd/selfserv/selfserv.c:3005,1
    - Dst: fputs
      Src: /src/nss/cmd/selfserv/selfserv.c:3007,1
    - Dst: exit
      Src: /src/nss/cmd/selfserv/selfserv.c:3008,1
    - Dst: getBoundListenSocket
      Src: /src/nss/cmd/selfserv/selfserv.c:3011,1
    - Dst: PR_SetFDInheritable
      Src: /src/nss/cmd/selfserv/selfserv.c:3012,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:3014,1
    - Dst: SSL_ConfigServerSessionIDCache
      Src: /src/nss/cmd/selfserv/selfserv.c:3016,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:3019,1
    - Dst: PR_NewLogModule
      Src: /src/nss/cmd/selfserv/selfserv.c:3024,1
    - Dst: readBigFile
      Src: /src/nss/cmd/selfserv/selfserv.c:3027,1
    - Dst: PK11_SetPasswordFunc
      Src: /src/nss/cmd/selfserv/selfserv.c:3030,1
    - Dst: disableAllSSLCiphers
      Src: /src/nss/cmd/selfserv/selfserv.c:3038,1
    - Dst: HEXCHAR_TO_INT
      Src: /src/nss/cmd/selfserv/selfserv.c:3046,1
    - Dst: HEXCHAR_TO_INT
      Src: /src/nss/cmd/selfserv/selfserv.c:3049,1
    - Dst: HEXCHAR_TO_INT
      Src: /src/nss/cmd/selfserv/selfserv.c:3052,1
    - Dst: HEXCHAR_TO_INT
      Src: /src/nss/cmd/selfserv/selfserv.c:3055,1
    - Dst: isalpha
      Src: /src/nss/cmd/selfserv/selfserv.c:3059,1
    - Dst: fprintf
      Src: /src/nss/cmd/selfserv/selfserv.c:3060,1
    - Dst: exit
      Src: /src/nss/cmd/selfserv/selfserv.c:3062,1
    - Dst: tolower
      Src: /src/nss/cmd/selfserv/selfserv.c:3064,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/cmd/selfserv/selfserv.c:3065,1
    - Dst: SSL_CipherPrefSetDefault
      Src: /src/nss/cmd/selfserv/selfserv.c:3070,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/selfserv/selfserv.c:3072,1
    - Dst: exit
      Src: /src/nss/cmd/selfserv/selfserv.c:3073,1
    - Dst: fprintf
      Src: /src/nss/cmd/selfserv/selfserv.c:3076,1
    - Dst: exit
      Src: /src/nss/cmd/selfserv/selfserv.c:3078,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/selfserv/selfserv.c:3081,1
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/selfserv/selfserv.c:3084,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:3086,1
    - Dst: PK11_FindCertFromNickname
      Src: /src/nss/cmd/selfserv/selfserv.c:3089,1
    - Dst: fprintf
      Src: /src/nss/cmd/selfserv/selfserv.c:3091,1
    - Dst: exit
      Src: /src/nss/cmd/selfserv/selfserv.c:3092,1
    - Dst: PK11_FindKeyByAnyCert
      Src: /src/nss/cmd/selfserv/selfserv.c:3094,1
    - Dst: fprintf
      Src: /src/nss/cmd/selfserv/selfserv.c:3096,1
    - Dst: exit
      Src: /src/nss/cmd/selfserv/selfserv.c:3098,1
    - Dst: setupCertStatus
      Src: /src/nss/cmd/selfserv/selfserv.c:3101,1
    - Dst: fprintf
      Src: /src/nss/cmd/selfserv/selfserv.c:3105,1
    - Dst: SSL_EnableWeakDHEPrimeGroup
      Src: /src/nss/cmd/selfserv/selfserv.c:3106,1
    - Dst: fprintf
      Src: /src/nss/cmd/selfserv/selfserv.c:3110,1
    - Dst: SSL_CreateAntiReplayContext
      Src: /src/nss/cmd/selfserv/selfserv.c:3113,1
    - Dst: PR_Now
      Src: /src/nss/cmd/selfserv/selfserv.c:3113,1
    - Dst: errExit
      Src: /src/nss/cmd/selfserv/selfserv.c:3115,1
    - Dst: launch_threads
      Src: /src/nss/cmd/selfserv/selfserv.c:3120,1
    - Dst: PR_CreateThread
      Src: /src/nss/cmd/selfserv/selfserv.c:3123,1
    - Dst: fprintf
      Src: /src/nss/cmd/selfserv/selfserv.c:3129,1
    - Dst: server_main
      Src: /src/nss/cmd/selfserv/selfserv.c:3135,1
    - Dst: VLOG
      Src: /src/nss/cmd/selfserv/selfserv.c:3139,1
    - Dst: printSSLStatistics
      Src: /src/nss/cmd/selfserv/selfserv.c:3142,1
    - Dst: SSL_GetStatistics
      Src: /src/nss/cmd/selfserv/selfserv.c:3143,1
    - Dst: fprintf
      Src: /src/nss/cmd/selfserv/selfserv.c:3145,1
    - Dst: exit
      Src: /src/nss/cmd/selfserv/selfserv.c:3146,1
    - Dst: fprintf
      Src: /src/nss/cmd/selfserv/selfserv.c:3149,1
    - Dst: exit
      Src: /src/nss/cmd/selfserv/selfserv.c:3150,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/selfserv/selfserv.c:3156,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/cmd/selfserv/selfserv.c:3159,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/selfserv/selfserv.c:3161,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/selfserv/selfserv.c:3164,1
    - Dst: nss_DumpCertificateCacheInfo
      Src: /src/nss/cmd/selfserv/selfserv.c:3169,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/selfserv/selfserv.c:3172,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/selfserv/selfserv.c:3175,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/selfserv/selfserv.c:3178,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/selfserv/selfserv.c:3181,1
    - Dst: SSL_ShutdownServerSessionIDCache
      Src: /src/nss/cmd/selfserv/selfserv.c:3185,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/selfserv/selfserv.c:3188,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/selfserv/selfserv.c:3191,1
    - Dst: SSL_ReleaseAntiReplayContext
      Src: /src/nss/cmd/selfserv/selfserv.c:3194,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/cmd/selfserv/selfserv.c:3196,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/cmd/selfserv/selfserv.c:3197,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/selfserv/selfserv.c:3198,1
    - Dst: NSS_Shutdown
      Src: /src/nss/cmd/selfserv/selfserv.c:3199,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/selfserv/selfserv.c:3200,1
    - Dst: PR_JoinThread
      Src: /src/nss/cmd/selfserv/selfserv.c:3202,1
    - Dst: PR_Cleanup
      Src: /src/nss/cmd/selfserv/selfserv.c:3204,1
    - Dst: exit
      Src: /src/nss/cmd/selfserv/selfserv.c:3205,1
    - Dst: PR_Cleanup
      Src: /src/nss/cmd/selfserv/selfserv.c:3207,1
    - Dst: printf
      Src: /src/nss/cmd/selfserv/selfserv.c:3208,1
    CyclomaticComplexity: 146
    EdgeCount: 146
    ICount: 500
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3210
      start: 2550
    functionDepth: 3
    functionLinenumber: 2550
    functionLinenumberEnd: 3210
    functionName: main
    functionSourceFile: /src/nss/cmd/selfserv/selfserv.c
    functionUses: 3
    functionsReached:
    - PORT_Atoi
    - PR_GetInheritedFD
    - fputs
    - SSL_CipherPrefSetDefault
    - getBoundListenSocket
    - PrintCipherUsage
    - printf
    - PR_GetEnvSecure
    - PL_DestroyOptState
    - fprintf
    - getpid
    - PR_Now
    - PR_JoinThread
    - Usage
    - PK11_FindKeyByAnyCert
    - parseGroupList
    - SSL_GetStatistics
    - PORT_NewArena
    - errExit
    - disableAllSSLCiphers
    - printSSLStatistics
    - SECU_ParseSSLVersionRangeString
    - PR_ARRAY_SIZE
    - server_main
    - SSL_ShutdownServerSessionIDCache
    - PORT_Malloc
    - fopen
    - launch_threads
    - enableOCSPStapling
    - SSL_VersionRangeGetSupported
    - SSL_InheritMPServerSIDCache
    - initLoggingLayer
    - strrchr
    - PL_CreateOptState
    - fclose
    - parseSigSchemeList
    - tolower
    - SECU_PrintError
    - PR_Cleanup
    - SSL_EnableWeakDHEPrimeGroup
    - PORT_FreeArena
    - SSL_ConfigServerSessionIDCache
    - PR_Init
    - exit
    - PR_NewLogModule
    - SSL_CreateAntiReplayContext
    - PR_CreateThread
    - setupCertStatus
    - CERT_DestroyCertificate
    - VLOG
    - PR_Close
    - PK11_FindCertFromNickname
    - PK11_SetPasswordFunc
    - beAGoodParent
    - SECITEM_ZfreeItem
    - PR_SetFDInheritable
    - isalpha
    - PL_GetNextOpt
    - readPSK
    - PORT_Free
    - nss_DumpCertificateCacheInfo
    - SSL_ReleaseAntiReplayContext
    - readBigFile
    - NSS_Initialize
    - NSS_Shutdown
    - SSL_ConfigMPServerSIDCache
    - SECKEY_DestroyPrivateKey
    - HEXCHAR_TO_INT
    - PORT_Strdup
    - parseExporters
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: HASH_GetHashObject
      Src: /src/nss/cmd/p7verify/p7verify.c:40,1
    - Dst: feof
      Src: /src/nss/cmd/p7verify/p7verify.c:49,1
    - Dst: fread
      Src: /src/nss/cmd/p7verify/p7verify.c:51,1
    - Dst: ferror
      Src: /src/nss/cmd/p7verify/p7verify.c:54,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/p7verify/p7verify.c:55,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 5
    argNames:
    - digest
    - len
    - maxLen
    - inFile
    - hashType
    argTypes:
    - unsigned char*
    - unsigned int*
    - unsigned int
    - FILE*
    - HASH_HashType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 70
    functionName: DigestFile
    functionSourceFile: /src/nss/cmd/p7verify/p7verify.c
    functionUses: 1
    functionsReached:
    - HASH_GetHashObject
    - ferror
    - feof
    - PORT_SetError
    - fread
    linkageType: ''
    returnType: int
    signature: "int DigestFile(unsigned char *digest, unsigned int *len, unsigned
      int maxLen,\n           FILE *inFile, HASH_HashType hashType)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/p7verify/p7verify.c:75,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7verify/p7verify.c:78,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7verify/p7verify.c:80,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7verify/p7verify.c:82,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7verify/p7verify.c:85,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7verify/p7verify.c:87,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7verify/p7verify.c:88,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7verify/p7verify.c:89,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7verify/p7verify.c:90,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7verify/p7verify.c:91,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7verify/p7verify.c:92,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7verify/p7verify.c:93,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7verify/p7verify.c:94,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7verify/p7verify.c:95,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7verify/p7verify.c:96,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7verify/p7verify.c:97,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7verify/p7verify.c:98,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7verify/p7verify.c:99,1
    - Dst: exit
      Src: /src/nss/cmd/p7verify/p7verify.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 1
    argNames:
    - progName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 102
    functionName: Usage
    functionSourceFile: /src/nss/cmd/p7verify/p7verify.c
    functionUses: 69
    functionsReached:
    - fprintf
    - exit
    linkageType: ''
    returnType: void
    signature: void Usage(char *progName)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SECU_ReadDERFromFile
      Src: /src/nss/cmd/p7verify/p7verify.c:115,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/p7verify/p7verify.c:117,1
    - Dst: SEC_PKCS7DecodeItem
      Src: /src/nss/cmd/p7verify/p7verify.c:121,1
    - Dst: SEC_PKCS7ContentIsSigned
      Src: /src/nss/cmd/p7verify/p7verify.c:126,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7verify/p7verify.c:127,1
    - Dst: HASH_GetHashTypeByOidTag
      Src: /src/nss/cmd/p7verify/p7verify.c:134,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/cmd/p7verify/p7verify.c:135,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7verify/p7verify.c:137,1
    - Dst: DigestFile
      Src: /src/nss/cmd/p7verify/p7verify.c:142,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/p7verify/p7verify.c:143,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7verify/p7verify.c:147,1
    - Dst: SEC_PKCS7VerifyDetachedSignature
      Src: /src/nss/cmd/p7verify/p7verify.c:148,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7verify/p7verify.c:150,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7verify/p7verify.c:152,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/p7verify/p7verify.c:153,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/p7verify/p7verify.c:153,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/p7verify/p7verify.c:155,1
    - Dst: SEC_PKCS7DestroyContentInfo
      Src: /src/nss/cmd/p7verify/p7verify.c:156,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 5
    argNames:
    - out
    - content
    - signature
    - usage
    - progName
    argTypes:
    - FILE*
    - FILE*
    - PRFileDesc*
    - SECCertUsage
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 158
    functionName: HashDecodeAndVerify
    functionSourceFile: /src/nss/cmd/p7verify/p7verify.c
    functionUses: 0
    functionsReached:
    - SECU_ReadDERFromFile
    - SECOID_GetAlgorithmTag
    - SECU_PrintError
    - HASH_GetHashTypeByOidTag
    - DigestFile
    - SEC_PKCS7ContentIsSigned
    - SECU_Strerror
    - SEC_PKCS7DestroyContentInfo
    - PORT_GetError
    - fprintf
    - SEC_PKCS7VerifyDetachedSignature
    - SEC_PKCS7DecodeItem
    - SECITEM_FreeItem
    linkageType: ''
    returnType: int
    signature: "int HashDecodeAndVerify(FILE *out, FILE *content, PRFileDesc *signature,\n
      \                   SECCertUsage usage, char *progName)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/nss/cmd/p7verify/p7verify.c:171,1
    - Dst: PL_CreateOptState
      Src: /src/nss/cmd/p7verify/p7verify.c:181,1
    - Dst: PL_GetNextOpt
      Src: /src/nss/cmd/p7verify/p7verify.c:182,1
    - Dst: Usage
      Src: /src/nss/cmd/p7verify/p7verify.c:185,1
    - Dst: fopen
      Src: /src/nss/cmd/p7verify/p7verify.c:189,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7verify/p7verify.c:191,1
    - Dst: SECU_ConfigDirectory
      Src: /src/nss/cmd/p7verify/p7verify.c:198,1
    - Dst: fopen
      Src: /src/nss/cmd/p7verify/p7verify.c:202,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7verify/p7verify.c:204,1
    - Dst: PR_Open
      Src: /src/nss/cmd/p7verify/p7verify.c:211,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7verify/p7verify.c:213,1
    - Dst: atoi
      Src: /src/nss/cmd/p7verify/p7verify.c:222,1
    - Dst: PL_DestroyOptState
      Src: /src/nss/cmd/p7verify/p7verify.c:230,1
    - Dst: Usage
      Src: /src/nss/cmd/p7verify/p7verify.c:233,1
    - Dst: Usage
      Src: /src/nss/cmd/p7verify/p7verify.c:235,1
    - Dst: PR_Init
      Src: /src/nss/cmd/p7verify/p7verify.c:240,1
    - Dst: NSS_Init
      Src: /src/nss/cmd/p7verify/p7verify.c:241,1
    - Dst: SECU_ConfigDirectory
      Src: /src/nss/cmd/p7verify/p7verify.c:241,1
    - Dst: SECU_PrintPRandOSError
      Src: /src/nss/cmd/p7verify/p7verify.c:243,1
    - Dst: HashDecodeAndVerify
      Src: /src/nss/cmd/p7verify/p7verify.c:247,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/p7verify/p7verify.c:249,1
    - Dst: fclose
      Src: /src/nss/cmd/p7verify/p7verify.c:253,1
    - Dst: PR_Close
      Src: /src/nss/cmd/p7verify/p7verify.c:254,1
    - Dst: fclose
      Src: /src/nss/cmd/p7verify/p7verify.c:256,1
    - Dst: NSS_Shutdown
      Src: /src/nss/cmd/p7verify/p7verify.c:259,1
    - Dst: exit
      Src: /src/nss/cmd/p7verify/p7verify.c:260,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 71
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 160
    functionDepth: 2
    functionLinenumber: 160
    functionLinenumberEnd: 264
    functionName: main
    functionSourceFile: /src/nss/cmd/p7verify/p7verify.c
    functionUses: 3
    functionsReached:
    - NSS_Init
    - PL_DestroyOptState
    - fprintf
    - Usage
    - fopen
    - strrchr
    - PL_CreateOptState
    - fclose
    - SECU_PrintError
    - PR_Init
    - SECU_PrintPRandOSError
    - exit
    - PR_Open
    - HashDecodeAndVerify
    - PR_Close
    - SECU_ConfigDirectory
    - PL_GetNextOpt
    - atoi
    - NSS_Shutdown
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: VLOG
    functionSourceFile: /src/nss/cmd/httpserv/httpserv.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VLOG(arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/httpserv/httpserv.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - progName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 98
    functionName: Usage
    functionSourceFile: /src/nss/cmd/httpserv/httpserv.c
    functionUses: 70
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void Usage(const char *progName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetError
      Src: /src/nss/cmd/httpserv/httpserv.c:103,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/httpserv/httpserv.c:104,1
    - Dst: fprintf
      Src: /src/nss/cmd/httpserv/httpserv.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - funcString
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 109
    functionName: errWarn
    functionSourceFile: /src/nss/cmd/httpserv/httpserv.c
    functionUses: 12
    functionsReached:
    - fprintf
    - SECU_Strerror
    - PR_GetError
    linkageType: ''
    returnType: char
    signature: 'char *

      errWarn(char *funcString)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: errWarn
      Src: /src/nss/cmd/httpserv/httpserv.c:114,1
    - Dst: exit
      Src: /src/nss/cmd/httpserv/httpserv.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - funcString
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 116
    functionName: errExit
    functionSourceFile: /src/nss/cmd/httpserv/httpserv.c
    functionUses: 10
    functionsReached:
    - errWarn
    - exit
    linkageType: ''
    returnType: void
    signature: void errExit(char *funcString)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_Calloc
      Src: /src/nss/cmd/httpserv/httpserv.c:151,1
    - Dst: PR_INIT_CLIST
      Src: /src/nss/cmd/httpserv/httpserv.c:155,1
    - Dst: PR_INIT_CLIST
      Src: /src/nss/cmd/httpserv/httpserv.c:156,1
    - Dst: PR_APPEND_LINK
      Src: /src/nss/cmd/httpserv/httpserv.c:160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - maxJobs
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 163
    functionName: setupJobs
    functionSourceFile: /src/nss/cmd/httpserv/httpserv.c
    functionUses: 1
    functionsReached:
    - PR_APPEND_LINK
    - PR_INIT_CLIST
    - PR_Calloc
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus setupJobs(int maxJobs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/cmd/httpserv/httpserv.c:191,1
    - Dst: PZ_NotifyAllCondVar
      Src: /src/nss/cmd/httpserv/httpserv.c:194,1
    - Dst: PZ_Unlock
      Src: /src/nss/cmd/httpserv/httpserv.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 196
    functionName: thread_wrapper
    functionSourceFile: /src/nss/cmd/httpserv/httpserv.c
    functionUses: 0
    functionsReached:
    - PZ_Unlock
    - PZ_Lock
    - PZ_NotifyAllCondVar
    linkageType: ''
    returnType: void
    signature: void thread_wrapper(void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/cmd/httpserv/httpserv.c:204,1
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/cmd/httpserv/httpserv.c:207,1
    - Dst: PZ_WaitCondVar
      Src: /src/nss/cmd/httpserv/httpserv.c:208,1
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/cmd/httpserv/httpserv.c:210,1
    - Dst: PR_LIST_HEAD
      Src: /src/nss/cmd/httpserv/httpserv.c:211,1
    - Dst: PR_REMOVE_AND_INIT_LINK
      Src: /src/nss/cmd/httpserv/httpserv.c:212,1
    - Dst: PZ_Unlock
      Src: /src/nss/cmd/httpserv/httpserv.c:214,1
    - Dst: handle_connection
      Src: /src/nss/cmd/httpserv/httpserv.c:219,1
    - Dst: PZ_Lock
      Src: /src/nss/cmd/httpserv/httpserv.c:221,1
    - Dst: PR_APPEND_LINK
      Src: /src/nss/cmd/httpserv/httpserv.c:222,1
    - Dst: PZ_NotifyCondVar
      Src: /src/nss/cmd/httpserv/httpserv.c:223,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - PRFileDesc*
    - PRFileDesc*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 226
    functionName: jobLoop
    functionSourceFile: /src/nss/cmd/httpserv/httpserv.c
    functionUses: 0
    functionsReached:
    - handle_connection
    - PZ_Unlock
    - PZ_NotifyCondVar
    - PR_REMOVE_AND_INIT_LINK
    - PR_APPEND_LINK
    - PZ_Lock
    - PR_LIST_HEAD
    - PZ_WaitCondVar
    - PR_CLIST_IS_EMPTY
    linkageType: ''
    returnType: int
    signature: int jobLoop(PRFileDesc *a, PRFileDesc *b, int c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PZ_NewLock
      Src: /src/nss/cmd/httpserv/httpserv.c:240,1
    - Dst: PZ_NewCondVar
      Src: /src/nss/cmd/httpserv/httpserv.c:241,1
    - Dst: PZ_NewCondVar
      Src: /src/nss/cmd/httpserv/httpserv.c:242,1
    - Dst: PZ_NewCondVar
      Src: /src/nss/cmd/httpserv/httpserv.c:243,1
    - Dst: PR_NewLock
      Src: /src/nss/cmd/httpserv/httpserv.c:246,1
    - Dst: PR_Calloc
      Src: /src/nss/cmd/httpserv/httpserv.c:249,1
    - Dst: fprintf
      Src: /src/nss/cmd/httpserv/httpserv.c:251,1
    - Dst: setupJobs
      Src: /src/nss/cmd/httpserv/httpserv.c:258,1
    - Dst: PZ_Lock
      Src: /src/nss/cmd/httpserv/httpserv.c:262,1
    - Dst: PR_CreateThread
      Src: /src/nss/cmd/httpserv/httpserv.c:271,1
    - Dst: printf
      Src: /src/nss/cmd/httpserv/httpserv.c:279,1
    - Dst: PZ_Unlock
      Src: /src/nss/cmd/httpserv/httpserv.c:287,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 5
    argNames:
    - startFunc
    - a
    - b
    - c
    - local
    argTypes:
    - startFn*
    - PRFileDesc*
    - PRFileDesc*
    - int
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 290
    functionName: launch_threads
    functionSourceFile: /src/nss/cmd/httpserv/httpserv.c
    functionUses: 1
    functionsReached:
    - printf
    - PZ_NewCondVar
    - PZ_Unlock
    - PR_Calloc
    - fprintf
    - PZ_Lock
    - PR_NewLock
    - PR_CreateThread
    - setupJobs
    - PZ_NewLock
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus launch_threads(\n    startFn *startFunc,\n    PRFileDesc
      *a,\n    PRFileDesc *b,\n    int c,\n    PRBool local)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 297
    functionName: DESTROY_CONDVAR
    functionSourceFile: /src/nss/cmd/httpserv/httpserv.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DESTROY_CONDVAR(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 302
    functionName: DESTROY_LOCK
    functionSourceFile: /src/nss/cmd/httpserv/httpserv.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DESTROY_LOCK(name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VLOG
      Src: /src/nss/cmd/httpserv/httpserv.c:308,1
    - Dst: PZ_Lock
      Src: /src/nss/cmd/httpserv/httpserv.c:309,1
    - Dst: PZ_NotifyAllCondVar
      Src: /src/nss/cmd/httpserv/httpserv.c:310,1
    - Dst: PZ_Unlock
      Src: /src/nss/cmd/httpserv/httpserv.c:311,1
    - Dst: PR_JoinThread
      Src: /src/nss/cmd/httpserv/httpserv.c:317,1
    - Dst: PZ_Lock
      Src: /src/nss/cmd/httpserv/httpserv.c:322,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/httpserv/httpserv.c:323,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/httpserv/httpserv.c:324,1
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/cmd/httpserv/httpserv.c:324,1
    - Dst: PZ_Unlock
      Src: /src/nss/cmd/httpserv/httpserv.c:325,1
    - Dst: DESTROY_CONDVAR
      Src: /src/nss/cmd/httpserv/httpserv.c:327,1
    - Dst: DESTROY_CONDVAR
      Src: /src/nss/cmd/httpserv/httpserv.c:328,1
    - Dst: DESTROY_CONDVAR
      Src: /src/nss/cmd/httpserv/httpserv.c:329,1
    - Dst: PR_DestroyLock
      Src: /src/nss/cmd/httpserv/httpserv.c:331,1
    - Dst: DESTROY_LOCK
      Src: /src/nss/cmd/httpserv/httpserv.c:332,1
    - Dst: PR_Free
      Src: /src/nss/cmd/httpserv/httpserv.c:333,1
    - Dst: PR_Free
      Src: /src/nss/cmd/httpserv/httpserv.c:334,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 335
    functionName: terminateWorkerThreads
    functionSourceFile: /src/nss/cmd/httpserv/httpserv.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - PZ_Unlock
    - DESTROY_CONDVAR
    - PR_Free
    - DESTROY_LOCK
    - PR_JoinThread
    - PZ_Lock
    - PZ_NotifyAllCondVar
    - VLOG
    - PR_DestroyLock
    - PR_CLIST_IS_EMPTY
    linkageType: ''
    returnType: void
    signature: void terminateWorkerThreads(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_Interrupt
      Src: /src/nss/cmd/httpserv/httpserv.c:391,1
    - Dst: PZ_TraceFlush
      Src: /src/nss/cmd/httpserv/httpserv.c:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 393
    functionName: stop_server
    functionSourceFile: /src/nss/cmd/httpserv/httpserv.c
    functionUses: 2
    functionsReached:
    - PR_Interrupt
    - PZ_TraceFlush
    linkageType: ''
    returnType: void
    signature: void stop_server()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nss/cmd/httpserv/httpserv.c:412,1
    - Dst: PL_strncasecmp
      Src: /src/nss/cmd/httpserv/httpserv.c:416,1
    - Dst: PL_strncasecmp
      Src: /src/nss/cmd/httpserv/httpserv.c:418,1
    - Dst: PL_strncasecmp
      Src: /src/nss/cmd/httpserv/httpserv.c:420,1
    - Dst: memmove
      Src: /src/nss/cmd/httpserv/httpserv.c:427,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - buf
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 434
    functionName: urldecode_base64chars_inplace
    functionSourceFile: /src/nss/cmd/httpserv/httpserv.c
    functionUses: 0
    functionsReached:
    - memmove
    - PL_strncasecmp
    - strlen
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus urldecode_base64chars_inplace(char *buf)
  - BBCount: 60
    BranchProfiles: []
    Callsites:
    - Dst: VLOG
      Src: /src/nss/cmd/httpserv/httpserv.c:470,1
    - Dst: PR_SetSocketOption
      Src: /src/nss/cmd/httpserv/httpserv.c:473,1
    - Dst: VLOG
      Src: /src/nss/cmd/httpserv/httpserv.c:475,1
    - Dst: PR_SetSocketOption
      Src: /src/nss/cmd/httpserv/httpserv.c:481,1
    - Dst: errWarn
      Src: /src/nss/cmd/httpserv/httpserv.c:483,1
    - Dst: PR_Close
      Src: /src/nss/cmd/httpserv/httpserv.c:485,1
    - Dst: PR_Read
      Src: /src/nss/cmd/httpserv/httpserv.c:499,1
    - Dst: PR_GetError
      Src: /src/nss/cmd/httpserv/httpserv.c:501,1
    - Dst: errWarn
      Src: /src/nss/cmd/httpserv/httpserv.c:503,1
    - Dst: errWarn
      Src: /src/nss/cmd/httpserv/httpserv.c:507,1
    - Dst: PORT_Strstr
      Src: /src/nss/cmd/httpserv/httpserv.c:544,1
    - Dst: PL_strcasestr
      Src: /src/nss/cmd/httpserv/httpserv.c:551,1
    - Dst: atoi
      Src: /src/nss/cmd/httpserv/httpserv.c:556,1
    - Dst: strlen
      Src: /src/nss/cmd/httpserv/httpserv.c:556,1
    - Dst: strncmp
      Src: /src/nss/cmd/httpserv/httpserv.c:585,1
    - Dst: strncmp
      Src: /src/nss/cmd/httpserv/httpserv.c:588,1
    - Dst: strpbrk
      Src: /src/nss/cmd/httpserv/httpserv.c:602,1
    - Dst: strncpy
      Src: /src/nss/cmd/httpserv/httpserv.c:606,1
    - Dst: strncmp
      Src: /src/nss/cmd/httpserv/httpserv.c:615,1
    - Dst: strncmp
      Src: /src/nss/cmd/httpserv/httpserv.c:621,1
    - Dst: PR_GetFileInfo
      Src: /src/nss/cmd/httpserv/httpserv.c:630,1
    - Dst: PR_Open
      Src: /src/nss/cmd/httpserv/httpserv.c:634,1
    - Dst: rand
      Src: /src/nss/cmd/httpserv/httpserv.c:657,1
    - Dst: PR_Write
      Src: /src/nss/cmd/httpserv/httpserv.c:663,1
    - Dst: strlen
      Src: /src/nss/cmd/httpserv/httpserv.c:663,1
    - Dst: urldecode_base64chars_inplace
      Src: /src/nss/cmd/httpserv/httpserv.c:670,1
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/httpserv/httpserv.c:672,1
    - Dst: NSSBase64_DecodeBuffer
      Src: /src/nss/cmd/httpserv/httpserv.c:673,1
    - Dst: strlen
      Src: /src/nss/cmd/httpserv/httpserv.c:673,1
    - Dst: CERT_DecodeOCSPRequest
      Src: /src/nss/cmd/httpserv/httpserv.c:677,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/httpserv/httpserv.c:680,1
    - Dst: snprintf
      Src: /src/nss/cmd/httpserv/httpserv.c:686,1
    - Dst: PORT_Strlen
      Src: /src/nss/cmd/httpserv/httpserv.c:689,1
    - Dst: SECOID_CompareAlgorithmID
      Src: /src/nss/cmd/httpserv/httpserv.c:708,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/cmd/httpserv/httpserv.c:710,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/cmd/httpserv/httpserv.c:712,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/cmd/httpserv/httpserv.c:717,1
    - Dst: DER_DecodeTimeChoice
      Src: /src/nss/cmd/httpserv/httpserv.c:726,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/cmd/httpserv/httpserv.c:731,1
    - Dst: DER_DecodeTimeChoice
      Src: /src/nss/cmd/httpserv/httpserv.c:740,1
    - Dst: PR_Now
      Src: /src/nss/cmd/httpserv/httpserv.c:745,1
    - Dst: PR_Now
      Src: /src/nss/cmd/httpserv/httpserv.c:746,1
    - Dst: PR_Now
      Src: /src/nss/cmd/httpserv/httpserv.c:752,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/httpserv/httpserv.c:757,1
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/httpserv/httpserv.c:758,1
    - Dst: CERT_CreateOCSPSingleResponseUnknown
      Src: /src/nss/cmd/httpserv/httpserv.c:761,1
    - Dst: CERT_CreateOCSPSingleResponseRevoked
      Src: /src/nss/cmd/httpserv/httpserv.c:764,1
    - Dst: CERT_CreateOCSPSingleResponseGood
      Src: /src/nss/cmd/httpserv/httpserv.c:767,1
    - Dst: PORT_ArenaNewArray
      Src: /src/nss/cmd/httpserv/httpserv.c:772,1
    - Dst: CERT_CreateEncodedOCSPSuccessResponse
      Src: /src/nss/cmd/httpserv/httpserv.c:775,1
    - Dst: snprintf
      Src: /src/nss/cmd/httpserv/httpserv.c:780,1
    - Dst: PORT_Strlen
      Src: /src/nss/cmd/httpserv/httpserv.c:782,1
    - Dst: PR_Write
      Src: /src/nss/cmd/httpserv/httpserv.c:785,1
    - Dst: strlen
      Src: /src/nss/cmd/httpserv/httpserv.c:785,1
    - Dst: PR_Write
      Src: /src/nss/cmd/httpserv/httpserv.c:786,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/httpserv/httpserv.c:788,1
    - Dst: CERT_DestroyOCSPRequest
      Src: /src/nss/cmd/httpserv/httpserv.c:790,1
    - Dst: PR_TransmitFile
      Src: /src/nss/cmd/httpserv/httpserv.c:796,1
    - Dst: FPRINTF
      Src: /src/nss/cmd/httpserv/httpserv.c:802,1
    - Dst: errWarn
      Src: /src/nss/cmd/httpserv/httpserv.c:807,1
    - Dst: PORT_Strlen
      Src: /src/nss/cmd/httpserv/httpserv.c:808,1
    - Dst: PR_MIN
      Src: /src/nss/cmd/httpserv/httpserv.c:809,1
    - Dst: PORT_Memcpy
      Src: /src/nss/cmd/httpserv/httpserv.c:810,1
    - Dst: PORT_Strlen
      Src: /src/nss/cmd/httpserv/httpserv.c:814,1
    - Dst: snprintf
      Src: /src/nss/cmd/httpserv/httpserv.c:817,1
    - Dst: PORT_Strlen
      Src: /src/nss/cmd/httpserv/httpserv.c:821,1
    - Dst: snprintf
      Src: /src/nss/cmd/httpserv/httpserv.c:824,1
    - Dst: PORT_Strlen
      Src: /src/nss/cmd/httpserv/httpserv.c:828,1
    - Dst: fwrite
      Src: /src/nss/cmd/httpserv/httpserv.c:834,1
    - Dst: PR_Writev
      Src: /src/nss/cmd/httpserv/httpserv.c:841,1
    - Dst: errWarn
      Src: /src/nss/cmd/httpserv/httpserv.c:843,1
    - Dst: PR_Close
      Src: /src/nss/cmd/httpserv/httpserv.c:851,1
    - Dst: PR_Close
      Src: /src/nss/cmd/httpserv/httpserv.c:853,1
    - Dst: PR_Close
      Src: /src/nss/cmd/httpserv/httpserv.c:856,1
    - Dst: VLOG
      Src: /src/nss/cmd/httpserv/httpserv.c:857,1
    - Dst: strncmp
      Src: /src/nss/cmd/httpserv/httpserv.c:860,1
    - Dst: VLOG
      Src: /src/nss/cmd/httpserv/httpserv.c:861,1
    - Dst: stop_server
      Src: /src/nss/cmd/httpserv/httpserv.c:862,1
    - Dst: VLOG
      Src: /src/nss/cmd/httpserv/httpserv.c:864,1
    CyclomaticComplexity: 96
    EdgeCount: 96
    ICount: 283
    argCount: 3
    argNames:
    - tcp_sock
    - model_sock
    - requestCert
    argTypes:
    - PRFileDesc*
    - PRFileDesc*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 436
    functionDepth: 2
    functionLinenumber: 436
    functionLinenumberEnd: 866
    functionName: handle_connection
    functionSourceFile: /src/nss/cmd/httpserv/httpserv.c
    functionUses: 2
    functionsReached:
    - SECITEM_CompareItem
    - strpbrk
    - strncpy
    - NSSBase64_DecodeBuffer
    - PR_Now
    - CERT_DecodeOCSPRequest
    - fwrite
    - PORT_Strstr
    - strlen
    - PORT_Memcpy
    - PORT_NewArena
    - CERT_CreateOCSPSingleResponseGood
    - PR_Read
    - snprintf
    - PR_Writev
    - PR_TransmitFile
    - CERT_DestroyOCSPRequest
    - CERT_CreateOCSPSingleResponseUnknown
    - PORT_Assert
    - PR_MIN
    - PORT_FreeArena
    - SECOID_CompareAlgorithmID
    - PR_SetSocketOption
    - PORT_Strlen
    - PR_Open
    - CERT_CreateEncodedOCSPSuccessResponse
    - rand
    - PR_GetFileInfo
    - PR_Close
    - urldecode_base64chars_inplace
    - VLOG
    - CERT_CreateOCSPSingleResponseRevoked
    - strncmp
    - DER_DecodeTimeChoice
    - PR_NEXT_LINK
    - atoi
    - PR_Write
    - stop_server
    - PR_GetError
    - FPRINTF
    - errWarn
    - PORT_ArenaNewArray
    - PL_strcasestr
    linkageType: ''
    returnType: int
    signature: "int handle_connection(\n    PRFileDesc *tcp_sock,\n    PRFileDesc
      *model_sock,\n    int requestCert)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VLOG
      Src: /src/nss/cmd/httpserv/httpserv.c:873,1
    - Dst: stop_server
      Src: /src/nss/cmd/httpserv/httpserv.c:874,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 870
    functionDepth: 0
    functionLinenumber: 870
    functionLinenumberEnd: 875
    functionName: sigusr1_handler
    functionSourceFile: /src/nss/cmd/httpserv/httpserv.c
    functionUses: 0
    functionsReached:
    - VLOG
    - stop_server
    linkageType: ''
    returnType: void
    signature: void sigusr1_handler(int sig)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: VLOG
      Src: /src/nss/cmd/httpserv/httpserv.c:891,1
    - Dst: PR_SetThreadPriority
      Src: /src/nss/cmd/httpserv/httpserv.c:892,1
    - Dst: PR_GetCurrentThread
      Src: /src/nss/cmd/httpserv/httpserv.c:892,1
    - Dst: PR_GetCurrentThread
      Src: /src/nss/cmd/httpserv/httpserv.c:894,1
    - Dst: sigemptyset
      Src: /src/nss/cmd/httpserv/httpserv.c:898,1
    - Dst: sigaction
      Src: /src/nss/cmd/httpserv/httpserv.c:900,1
    - Dst: fprintf
      Src: /src/nss/cmd/httpserv/httpserv.c:901,1
    - Dst: exit
      Src: /src/nss/cmd/httpserv/httpserv.c:902,1
    - Dst: FPRINTF
      Src: /src/nss/cmd/httpserv/httpserv.c:909,1
    - Dst: PR_Accept
      Src: /src/nss/cmd/httpserv/httpserv.c:910,1
    - Dst: PR_GetError
      Src: /src/nss/cmd/httpserv/httpserv.c:912,1
    - Dst: errWarn
      Src: /src/nss/cmd/httpserv/httpserv.c:916,1
    - Dst: FPRINTF
      Src: /src/nss/cmd/httpserv/httpserv.c:919,1
    - Dst: VLOG
      Src: /src/nss/cmd/httpserv/httpserv.c:927,1
    - Dst: PZ_Lock
      Src: /src/nss/cmd/httpserv/httpserv.c:929,1
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/cmd/httpserv/httpserv.c:930,1
    - Dst: PZ_WaitCondVar
      Src: /src/nss/cmd/httpserv/httpserv.c:931,1
    - Dst: PZ_Unlock
      Src: /src/nss/cmd/httpserv/httpserv.c:934,1
    - Dst: PR_Close
      Src: /src/nss/cmd/httpserv/httpserv.c:936,1
    - Dst: PR_LIST_HEAD
      Src: /src/nss/cmd/httpserv/httpserv.c:940,1
    - Dst: PR_REMOVE_AND_INIT_LINK
      Src: /src/nss/cmd/httpserv/httpserv.c:941,1
    - Dst: PR_APPEND_LINK
      Src: /src/nss/cmd/httpserv/httpserv.c:952,1
    - Dst: PZ_NotifyCondVar
      Src: /src/nss/cmd/httpserv/httpserv.c:953,1
    - Dst: PZ_Unlock
      Src: /src/nss/cmd/httpserv/httpserv.c:954,1
    - Dst: FPRINTF
      Src: /src/nss/cmd/httpserv/httpserv.c:957,1
    - Dst: VLOG
      Src: /src/nss/cmd/httpserv/httpserv.c:958,1
    - Dst: PR_Close
      Src: /src/nss/cmd/httpserv/httpserv.c:960,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 54
    argCount: 3
    argNames:
    - listen_sock
    - model_sock
    - requestCert
    argTypes:
    - PRFileDesc*
    - PRFileDesc*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 879
    functionDepth: 1
    functionLinenumber: 879
    functionLinenumberEnd: 963
    functionName: do_accepts
    functionSourceFile: /src/nss/cmd/httpserv/httpserv.c
    functionUses: 1
    functionsReached:
    - PZ_Unlock
    - fprintf
    - PR_SetThreadPriority
    - PZ_WaitCondVar
    - PR_Accept
    - sigemptyset
    - PR_CLIST_IS_EMPTY
    - sigaction
    - exit
    - PR_REMOVE_AND_INIT_LINK
    - PZ_NotifyCondVar
    - VLOG
    - PR_Close
    - PR_LIST_HEAD
    - PR_APPEND_LINK
    - PZ_Lock
    - PR_GetCurrentThread
    - PR_GetError
    - FPRINTF
    - errWarn
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus do_accepts(\n    PRFileDesc *listen_sock,\n    PRFileDesc
      *model_sock,\n    int requestCert)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PR_htonl
      Src: /src/nss/cmd/httpserv/httpserv.c:975,1
    - Dst: PR_htons
      Src: /src/nss/cmd/httpserv/httpserv.c:976,1
    - Dst: PR_NewTCPSocket
      Src: /src/nss/cmd/httpserv/httpserv.c:978,1
    - Dst: errExit
      Src: /src/nss/cmd/httpserv/httpserv.c:980,1
    - Dst: PR_SetSocketOption
      Src: /src/nss/cmd/httpserv/httpserv.c:985,1
    - Dst: PR_Close
      Src: /src/nss/cmd/httpserv/httpserv.c:987,1
    - Dst: errExit
      Src: /src/nss/cmd/httpserv/httpserv.c:988,1
    - Dst: PR_SetSocketOption
      Src: /src/nss/cmd/httpserv/httpserv.c:993,1
    - Dst: PR_Close
      Src: /src/nss/cmd/httpserv/httpserv.c:995,1
    - Dst: errExit
      Src: /src/nss/cmd/httpserv/httpserv.c:996,1
    - Dst: PR_SecondsToInterval
      Src: /src/nss/cmd/httpserv/httpserv.c:1003,1
    - Dst: PR_SetSocketOption
      Src: /src/nss/cmd/httpserv/httpserv.c:1004,1
    - Dst: PR_Close
      Src: /src/nss/cmd/httpserv/httpserv.c:1006,1
    - Dst: errExit
      Src: /src/nss/cmd/httpserv/httpserv.c:1007,1
    - Dst: PR_Bind
      Src: /src/nss/cmd/httpserv/httpserv.c:1010,1
    - Dst: PR_Close
      Src: /src/nss/cmd/httpserv/httpserv.c:1012,1
    - Dst: errExit
      Src: /src/nss/cmd/httpserv/httpserv.c:1013,1
    - Dst: PR_Listen
      Src: /src/nss/cmd/httpserv/httpserv.c:1016,1
    - Dst: PR_Close
      Src: /src/nss/cmd/httpserv/httpserv.c:1018,1
    - Dst: errExit
      Src: /src/nss/cmd/httpserv/httpserv.c:1019,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 41
    argCount: 1
    argNames:
    - port
    argTypes:
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 965
    functionDepth: 1
    functionLinenumber: 965
    functionLinenumberEnd: 1022
    functionName: getBoundListenSocket
    functionSourceFile: /src/nss/cmd/httpserv/httpserv.c
    functionUses: 1
    functionsReached:
    - PR_NewTCPSocket
    - PR_SecondsToInterval
    - PR_Listen
    - errExit
    - PR_SetSocketOption
    - PR_Close
    - PR_htonl
    - PR_Bind
    - PR_htons
    linkageType: ''
    returnType: PRFileDesc
    signature: 'PRFileDesc *

      getBoundListenSocket(unsigned short port)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: do_accepts
      Src: /src/nss/cmd/httpserv/httpserv.c:1035,1
    - Dst: terminateWorkerThreads
      Src: /src/nss/cmd/httpserv/httpserv.c:1037,1
    - Dst: PR_Close
      Src: /src/nss/cmd/httpserv/httpserv.c:1040,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - listen_sock
    - requestCert
    - privKey
    - cert
    - expectedHostNameVal
    argTypes:
    - PRFileDesc*
    - int
    - SECKEYPrivateKey**
    - CERTCertificate**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1024
    functionDepth: 1
    functionLinenumber: 1024
    functionLinenumberEnd: 1042
    functionName: server_main
    functionSourceFile: /src/nss/cmd/httpserv/httpserv.c
    functionUses: 1
    functionsReached:
    - PR_Close
    - terminateWorkerThreads
    - do_accepts
    linkageType: ''
    returnType: void
    signature: "void server_main(\n    PRFileDesc *listen_sock,\n    int requestCert,\n
      \   SECKEYPrivateKey **privKey,\n    CERTCertificate **cert,\n    const char
      *expectedHostNameVal)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_CreateProcess
      Src: /src/nss/cmd/httpserv/httpserv.c:1052,1
    - Dst: errWarn
      Src: /src/nss/cmd/httpserv/httpserv.c:1054,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - argc
    - argv
    - attr
    argTypes:
    - int
    - char**
    - PRProcessAttr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 1047
    functionDepth: 1
    functionLinenumber: 1047
    functionLinenumberEnd: 1059
    functionName: haveAChild
    functionSourceFile: /src/nss/cmd/httpserv/httpserv.c
    functionUses: 1
    functionsReached:
    - PR_CreateProcess
    - errWarn
    linkageType: ''
    returnType: PRProcess
    signature: 'PRProcess *

      haveAChild(int argc, char **argv, PRProcessAttr *attr)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/cmd/httpserv/httpserv.c:1066,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/httpserv/httpserv.c:1069,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/cmd/httpserv/httpserv.c:1071,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/cmd/httpserv/httpserv.c:1076,1
    - Dst: CERT_GetSubjectNameDigest
      Src: /src/nss/cmd/httpserv/httpserv.c:1082,1
    - Dst: CERT_GetSubjectNameDigest
      Src: /src/nss/cmd/httpserv/httpserv.c:1089,1
    - Dst: CERT_GetSubjectNameDigest
      Src: /src/nss/cmd/httpserv/httpserv.c:1094,1
    - Dst: CERT_GetSubjectPublicKeyDigest
      Src: /src/nss/cmd/httpserv/httpserv.c:1099,1
    - Dst: CERT_GetSubjectPublicKeyDigest
      Src: /src/nss/cmd/httpserv/httpserv.c:1106,1
    - Dst: CERT_GetSubjectPublicKeyDigest
      Src: /src/nss/cmd/httpserv/httpserv.c:1110,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/cmd/httpserv/httpserv.c:1115,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/cmd/httpserv/httpserv.c:1119,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 3
    argNames:
    - arena
    - cert
    - time
    argTypes:
    - PLArenaPool*
    - CERTCertificate*
    - PRTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1062
    functionDepth: 1
    functionLinenumber: 1062
    functionLinenumberEnd: 1121
    functionName: ocsp_CreateSelfCAID
    functionSourceFile: /src/nss/cmd/httpserv/httpserv.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - SECOID_SetAlgorithmID
    - PORT_ArenaZNew
    - PORT_ArenaUnmark
    - CERT_GetSubjectNameDigest
    - CERT_GetSubjectPublicKeyDigest
    linkageType: ''
    returnType: CERTOCSPCertID
    signature: 'CERTOCSPCertID *

      ocsp_CreateSelfCAID(PLArenaPool *arena, CERTCertificate *cert, PRTime time)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/httpserv/httpserv.c:1127,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/httpserv/httpserv.c:1129,1
    - Dst: ocsp_CreateSelfCAID
      Src: /src/nss/cmd/httpserv/httpserv.c:1133,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/httpserv/httpserv.c:1135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - cert
    - time
    argTypes:
    - CERTCertificate*
    - PRTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1140
      start: 1124
    functionDepth: 2
    functionLinenumber: 1124
    functionLinenumberEnd: 1140
    functionName: cert_CreateSelfCAID
    functionSourceFile: /src/nss/cmd/httpserv/httpserv.c
    functionUses: 0
    functionsReached:
    - PORT_FreeArena
    - PORT_Assert
    - ocsp_CreateSelfCAID
    - PORT_NewArena
    linkageType: ''
    returnType: CERTOCSPCertID
    signature: 'CERTOCSPCertID *

      cert_CreateSelfCAID(CERTCertificate *cert, PRTime time)'
  - BBCount: 58
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/nss/cmd/httpserv/httpserv.c:1166,1
    - Dst: strrchr
      Src: /src/nss/cmd/httpserv/httpserv.c:1168,1
    - Dst: PR_Init
      Src: /src/nss/cmd/httpserv/httpserv.c:1171,1
    - Dst: PL_CreateOptState
      Src: /src/nss/cmd/httpserv/httpserv.c:1176,1
    - Dst: PL_GetNextOpt
      Src: /src/nss/cmd/httpserv/httpserv.c:1178,1
    - Dst: Usage
      Src: /src/nss/cmd/httpserv/httpserv.c:1187,1
    - Dst: exit
      Src: /src/nss/cmd/httpserv/httpserv.c:1188,1
    - Dst: PORT_New
      Src: /src/nss/cmd/httpserv/httpserv.c:1190,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/httpserv/httpserv.c:1191,1
    - Dst: Usage
      Src: /src/nss/cmd/httpserv/httpserv.c:1195,1
    - Dst: exit
      Src: /src/nss/cmd/httpserv/httpserv.c:1196,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/httpserv/httpserv.c:1198,1
    - Dst: PR_INIT_CLIST
      Src: /src/nss/cmd/httpserv/httpserv.c:1200,1
    - Dst: PR_APPEND_LINK
      Src: /src/nss/cmd/httpserv/httpserv.c:1203,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/httpserv/httpserv.c:1209,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/httpserv/httpserv.c:1211,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/httpserv/httpserv.c:1213,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/httpserv/httpserv.c:1215,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/httpserv/httpserv.c:1217,1
    - Dst: Usage
      Src: /src/nss/cmd/httpserv/httpserv.c:1220,1
    - Dst: exit
      Src: /src/nss/cmd/httpserv/httpserv.c:1221,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/httpserv/httpserv.c:1230,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/httpserv/httpserv.c:1243,1
    - Dst: Usage
      Src: /src/nss/cmd/httpserv/httpserv.c:1247,1
    - Dst: exit
      Src: /src/nss/cmd/httpserv/httpserv.c:1248,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/httpserv/httpserv.c:1256,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/httpserv/httpserv.c:1260,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/httpserv/httpserv.c:1273,1
    - Dst: fprintf
      Src: /src/nss/cmd/httpserv/httpserv.c:1278,1
    - Dst: fprintf
      Src: /src/nss/cmd/httpserv/httpserv.c:1279,1
    - Dst: exit
      Src: /src/nss/cmd/httpserv/httpserv.c:1280,1
    - Dst: PL_DestroyOptState
      Src: /src/nss/cmd/httpserv/httpserv.c:1284,1
    - Dst: fprintf
      Src: /src/nss/cmd/httpserv/httpserv.c:1286,1
    - Dst: fprintf
      Src: /src/nss/cmd/httpserv/httpserv.c:1287,1
    - Dst: exit
      Src: /src/nss/cmd/httpserv/httpserv.c:1288,1
    - Dst: Usage
      Src: /src/nss/cmd/httpserv/httpserv.c:1291,1
    - Dst: exit
      Src: /src/nss/cmd/httpserv/httpserv.c:1292,1
    - Dst: getBoundListenSocket
      Src: /src/nss/cmd/httpserv/httpserv.c:1300,1
    - Dst: exit
      Src: /src/nss/cmd/httpserv/httpserv.c:1302,1
    - Dst: PR_Close
      Src: /src/nss/cmd/httpserv/httpserv.c:1305,1
    - Dst: exit
      Src: /src/nss/cmd/httpserv/httpserv.c:1307,1
    - Dst: fprintf
      Src: /src/nss/cmd/httpserv/httpserv.c:1311,1
    - Dst: exit
      Src: /src/nss/cmd/httpserv/httpserv.c:1312,1
    - Dst: fopen
      Src: /src/nss/cmd/httpserv/httpserv.c:1316,1
    - Dst: fprintf
      Src: /src/nss/cmd/httpserv/httpserv.c:1319,1
    - Dst: getpid
      Src: /src/nss/cmd/httpserv/httpserv.c:1319,1
    - Dst: fclose
      Src: /src/nss/cmd/httpserv/httpserv.c:1320,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/cmd/httpserv/httpserv.c:1324,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/cmd/httpserv/httpserv.c:1326,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/cmd/httpserv/httpserv.c:1328,1
    - Dst: getBoundListenSocket
      Src: /src/nss/cmd/httpserv/httpserv.c:1330,1
    - Dst: PR_SetFDInheritable
      Src: /src/nss/cmd/httpserv/httpserv.c:1331,1
    - Dst: errExit
      Src: /src/nss/cmd/httpserv/httpserv.c:1333,1
    - Dst: PR_NewLogModule
      Src: /src/nss/cmd/httpserv/httpserv.c:1335,1
    - Dst: PK11_SetPasswordFunc
      Src: /src/nss/cmd/httpserv/httpserv.c:1338,1
    - Dst: NSS_Initialize
      Src: /src/nss/cmd/httpserv/httpserv.c:1342,1
    - Dst: fputs
      Src: /src/nss/cmd/httpserv/httpserv.c:1344,1
    - Dst: exit
      Src: /src/nss/cmd/httpserv/httpserv.c:1345,1
    - Dst: CERT_FindCertByNickname
      Src: /src/nss/cmd/httpserv/httpserv.c:1356,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/cmd/httpserv/httpserv.c:1357,1
    - Dst: fprintf
      Src: /src/nss/cmd/httpserv/httpserv.c:1359,1
    - Dst: exit
      Src: /src/nss/cmd/httpserv/httpserv.c:1361,1
    - Dst: PR_Open
      Src: /src/nss/cmd/httpserv/httpserv.c:1363,1
    - Dst: SECU_ReadDERFromFile
      Src: /src/nss/cmd/httpserv/httpserv.c:1365,1
    - Dst: PR_Close
      Src: /src/nss/cmd/httpserv/httpserv.c:1366,1
    - Dst: fprintf
      Src: /src/nss/cmd/httpserv/httpserv.c:1370,1
    - Dst: exit
      Src: /src/nss/cmd/httpserv/httpserv.c:1372,1
    - Dst: CERT_DecodeDERCrlWithFlags
      Src: /src/nss/cmd/httpserv/httpserv.c:1375,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/httpserv/httpserv.c:1377,1
    - Dst: fprintf
      Src: /src/nss/cmd/httpserv/httpserv.c:1379,1
    - Dst: exit
      Src: /src/nss/cmd/httpserv/httpserv.c:1381,1
    - Dst: CERT_CompareName
      Src: /src/nss/cmd/httpserv/httpserv.c:1383,1
    - Dst: fprintf
      Src: /src/nss/cmd/httpserv/httpserv.c:1385,1
    - Dst: exit
      Src: /src/nss/cmd/httpserv/httpserv.c:1387,1
    - Dst: cert_CreateSelfCAID
      Src: /src/nss/cmd/httpserv/httpserv.c:1389,1
    - Dst: PR_Now
      Src: /src/nss/cmd/httpserv/httpserv.c:1389,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/cmd/httpserv/httpserv.c:1390,1
    - Dst: launch_threads
      Src: /src/nss/cmd/httpserv/httpserv.c:1396,1
    - Dst: server_main
      Src: /src/nss/cmd/httpserv/httpserv.c:1399,1
    - Dst: VLOG
      Src: /src/nss/cmd/httpserv/httpserv.c:1403,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/httpserv/httpserv.c:1411,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/httpserv/httpserv.c:1413,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/httpserv/httpserv.c:1415,1
    - Dst: CERT_DestroyOCSPCertID
      Src: /src/nss/cmd/httpserv/httpserv.c:1417,1
    - Dst: SEC_DestroyCrl
      Src: /src/nss/cmd/httpserv/httpserv.c:1419,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/cmd/httpserv/httpserv.c:1421,1
    - Dst: NSS_Shutdown
      Src: /src/nss/cmd/httpserv/httpserv.c:1424,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/httpserv/httpserv.c:1425,1
    - Dst: PR_Cleanup
      Src: /src/nss/cmd/httpserv/httpserv.c:1426,1
    - Dst: exit
      Src: /src/nss/cmd/httpserv/httpserv.c:1427,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/httpserv/httpserv.c:1431,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/httpserv/httpserv.c:1434,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/httpserv/httpserv.c:1437,1
    - Dst: PR_Cleanup
      Src: /src/nss/cmd/httpserv/httpserv.c:1439,1
    - Dst: printf
      Src: /src/nss/cmd/httpserv/httpserv.c:1440,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 224
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1442
      start: 1142
    functionDepth: 3
    functionLinenumber: 1142
    functionLinenumberEnd: 1442
    functionName: main
    functionSourceFile: /src/nss/cmd/httpserv/httpserv.c
    functionUses: 4
    functionsReached:
    - PORT_Atoi
    - fputs
    - getBoundListenSocket
    - printf
    - PR_GetEnvSecure
    - PL_DestroyOptState
    - fprintf
    - getpid
    - PR_Now
    - CERT_FindCertByNickname
    - Usage
    - errExit
    - server_main
    - launch_threads
    - fopen
    - CERT_GetDefaultCertDB
    - SEC_DestroyCrl
    - PR_INIT_CLIST
    - strrchr
    - PL_CreateOptState
    - SECITEM_FreeItem
    - fclose
    - PR_Cleanup
    - CERT_DecodeDERCrlWithFlags
    - SECU_PrintError
    - PR_Init
    - exit
    - PR_NewLogModule
    - PR_Open
    - CERT_DestroyCertificate
    - VLOG
    - PR_Close
    - PK11_SetPasswordFunc
    - PR_SetFDInheritable
    - SECU_ReadDERFromFile
    - CERT_DestroyOCSPCertID
    - PL_GetNextOpt
    - PORT_Free
    - CERT_CompareName
    - PL_strcasecmp
    - cert_CreateSelfCAID
    - PR_NEXT_LINK
    - NSS_Initialize
    - NSS_Shutdown
    - PR_APPEND_LINK
    - PORT_New
    - PORT_Strdup
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - array
    argTypes:
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 52
    functionName: nss_CMSArray_Count
    functionSourceFile: /src/nss/cmd/smimetools/cmsutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int nss_CMSArray_Count(void **array)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSDigestContext_StartMultiple
      Src: /src/nss/cmd/smimetools/cmsutil.c:61,1
    - Dst: NSS_CMSDigestContext_Update
      Src: /src/nss/cmd/smimetools/cmsutil.c:65,1
    - Dst: NSS_CMSDigestContext_FinishMultiple
      Src: /src/nss/cmd/smimetools/cmsutil.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - poolp
    - digests
    - input
    - algids
    argTypes:
    - PLArenaPool*
    - SECItem***
    - SECItem*
    - SECAlgorithmID**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 69
    functionName: DigestFile
    functionSourceFile: /src/nss/cmd/smimetools/cmsutil.c
    functionUses: 2
    functionsReached:
    - NSS_CMSDigestContext_Update
    - NSS_CMSDigestContext_FinishMultiple
    - NSS_CMSDigestContext_StartMultiple
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus DigestFile(PLArenaPool *poolp, SECItem ***digests, SECItem
      *input,\n           SECAlgorithmID **algids)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:74,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:107,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:108,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:109,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:110,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:111,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:112,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:113,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:114,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:115,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:116,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:117,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:118,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:119,1
    - Dst: exit
      Src: /src/nss/cmd/smimetools/cmsutil.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 122
    functionName: Usage
    functionSourceFile: /src/nss/cmd/smimetools/cmsutil.c
    functionUses: 71
    functionsReached:
    - fprintf
    - exit
    linkageType: ''
    returnType: void
    signature: void Usage(void)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/cmd/smimetools/cmsutil.c:182,1
    - Dst: NSS_CMSDecoder_Start
      Src: /src/nss/cmd/smimetools/cmsutil.c:183,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:189,1
    - Dst: NSS_CMSDecoder_Update
      Src: /src/nss/cmd/smimetools/cmsutil.c:192,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:194,1
    - Dst: NSS_CMSDecoder_Cancel
      Src: /src/nss/cmd/smimetools/cmsutil.c:195,1
    - Dst: NSS_CMSDecoder_Finish
      Src: /src/nss/cmd/smimetools/cmsutil.c:198,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:200,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:206,1
    - Dst: NSS_CMSMessage_ContentLevelCount
      Src: /src/nss/cmd/smimetools/cmsutil.c:209,1
    - Dst: NSS_CMSMessage_ContentLevel
      Src: /src/nss/cmd/smimetools/cmsutil.c:214,1
    - Dst: NSS_CMSContentInfo_GetContentTypeTag
      Src: /src/nss/cmd/smimetools/cmsutil.c:215,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:218,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:228,1
    - Dst: NSS_CMSContentInfo_GetContent
      Src: /src/nss/cmd/smimetools/cmsutil.c:229,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/smimetools/cmsutil.c:231,1
    - Dst: NSS_CMSSignedData_HasDigests
      Src: /src/nss/cmd/smimetools/cmsutil.c:237,1
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/smimetools/cmsutil.c:244,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:245,1
    - Dst: NSS_CMSSignedData_GetDigestAlgs
      Src: /src/nss/cmd/smimetools/cmsutil.c:248,1
    - Dst: DigestFile
      Src: /src/nss/cmd/smimetools/cmsutil.c:249,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/smimetools/cmsutil.c:251,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/smimetools/cmsutil.c:253,1
    - Dst: NSS_CMSSignedData_SetDigests
      Src: /src/nss/cmd/smimetools/cmsutil.c:256,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/smimetools/cmsutil.c:258,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/smimetools/cmsutil.c:260,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/smimetools/cmsutil.c:263,1
    - Dst: NSS_CMSSignedData_ImportCerts
      Src: /src/nss/cmd/smimetools/cmsutil.c:267,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/smimetools/cmsutil.c:272,1
    - Dst: NSS_CMSSignedData_SignerInfoCount
      Src: /src/nss/cmd/smimetools/cmsutil.c:277,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:279,1
    - Dst: NSS_CMSSignedData_VerifyCertsOnly
      Src: /src/nss/cmd/smimetools/cmsutil.c:285,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:289,1
    - Dst: NSS_CMSSignedData_HasDigests
      Src: /src/nss/cmd/smimetools/cmsutil.c:296,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/smimetools/cmsutil.c:297,1
    - Dst: NSS_CMSSignedData_GetSignerInfo
      Src: /src/nss/cmd/smimetools/cmsutil.c:307,1
    - Dst: NSS_CMSSignerInfo_GetSignerCommonName
      Src: /src/nss/cmd/smimetools/cmsutil.c:312,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:315,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/smimetools/cmsutil.c:317,1
    - Dst: NSS_CMSSignedData_VerifySignerInfo
      Src: /src/nss/cmd/smimetools/cmsutil.c:319,1
    - Dst: NSS_CMSSignerInfo_GetVerificationStatus
      Src: /src/nss/cmd/smimetools/cmsutil.c:322,1
    - Dst: NSS_CMSUtil_VerificationStatusToString
      Src: /src/nss/cmd/smimetools/cmsutil.c:323,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:325,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:328,1
    - Dst: NSS_SMIMESignerInfo_SaveSMIMEProfile
      Src: /src/nss/cmd/smimetools/cmsutil.c:334,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/smimetools/cmsutil.c:336,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:345,1
    - Dst: NSS_CMSContentInfo_GetContent
      Src: /src/nss/cmd/smimetools/cmsutil.c:346,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/smimetools/cmsutil.c:348,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:355,1
    - Dst: NSS_CMSContentInfo_GetContent
      Src: /src/nss/cmd/smimetools/cmsutil.c:356,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/smimetools/cmsutil.c:358,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:364,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:370,1
    - Dst: NSS_CMSMessage_GetContent
      Src: /src/nss/cmd/smimetools/cmsutil.c:375,1
    - Dst: fwrite
      Src: /src/nss/cmd/smimetools/cmsutil.c:377,1
    - Dst: NSS_CMSMessage_Destroy
      Src: /src/nss/cmd/smimetools/cmsutil.c:384,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 156
    argCount: 3
    argNames:
    - out
    - input
    - decodeOptions
    argTypes:
    - FILE*
    - SECItem*
    - struct decodeOptionsStr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 386
    functionName: decode
    functionSourceFile: /src/nss/cmd/smimetools/cmsutil.c
    functionUses: 0
    functionsReached:
    - NSS_CMSSignedData_GetSignerInfo
    - DigestFile
    - NSS_CMSSignedData_VerifySignerInfo
    - NSS_CMSSignerInfo_GetSignerCommonName
    - fprintf
    - fwrite
    - NSS_CMSSignedData_VerifyCertsOnly
    - NSS_CMSSignedData_HasDigests
    - NSS_CMSSignedData_SetDigests
    - NSS_CMSMessage_GetContent
    - PORT_NewArena
    - NSS_CMSMessage_ContentLevel
    - PORT_SetError
    - NSS_CMSDecoder_Start
    - NSS_CMSContentInfo_GetContent
    - NSS_SMIMESignerInfo_SaveSMIMEProfile
    - SECU_PrintError
    - NSS_CMSSignedData_GetDigestAlgs
    - PORT_FreeArena
    - NSS_CMSMessage_ContentLevelCount
    - NSS_CMSSignedData_SignerInfoCount
    - NSS_CMSDecoder_Update
    - PORT_Free
    - NSS_CMSDecoder_Finish
    - NSS_CMSMessage_Destroy
    - NSS_CMSUtil_VerificationStatusToString
    - NSS_CMSSignedData_ImportCerts
    - NSS_CMSDecoder_Cancel
    - NSS_CMSSignerInfo_GetVerificationStatus
    - NSS_CMSContentInfo_GetContentTypeTag
    linkageType: ''
    returnType: NSSCMSMessage
    signature: 'NSSCMSMessage *

      decode(FILE *out, SECItem *input, const struct decodeOptionsStr *decodeOptions)'
  - BBCount: 41
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:410,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:412,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:414,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:416,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:417,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:419,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:421,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:423,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:425,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:428,1
    - Dst: CERT_FindUserCertByUsage
      Src: /src/nss/cmd/smimetools/cmsutil.c:432,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/smimetools/cmsutil.c:437,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:443,1
    - Dst: NSS_CMSMessage_Create
      Src: /src/nss/cmd/smimetools/cmsutil.c:448,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:450,1
    - Dst: NSS_CMSSignedData_Create
      Src: /src/nss/cmd/smimetools/cmsutil.c:456,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:457,1
    - Dst: NSS_CMSMessage_GetContentInfo
      Src: /src/nss/cmd/smimetools/cmsutil.c:460,1
    - Dst: NSS_CMSContentInfo_SetContent_SignedData
      Src: /src/nss/cmd/smimetools/cmsutil.c:461,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:463,1
    - Dst: NSS_CMSSignedData_GetContentInfo
      Src: /src/nss/cmd/smimetools/cmsutil.c:466,1
    - Dst: NSS_CMSContentInfo_SetContent_Data
      Src: /src/nss/cmd/smimetools/cmsutil.c:468,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:471,1
    - Dst: NSS_CMSSignerInfo_Create
      Src: /src/nss/cmd/smimetools/cmsutil.c:477,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:479,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:483,1
    - Dst: NSS_CMSSignerInfo_IncludeCerts
      Src: /src/nss/cmd/smimetools/cmsutil.c:488,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:491,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:495,1
    - Dst: NSS_CMSSignerInfo_AddSigningTime
      Src: /src/nss/cmd/smimetools/cmsutil.c:498,1
    - Dst: PR_Now
      Src: /src/nss/cmd/smimetools/cmsutil.c:498,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:500,1
    - Dst: NSS_CMSSignerInfo_AddSMIMECaps
      Src: /src/nss/cmd/smimetools/cmsutil.c:505,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:506,1
    - Dst: CERT_CheckCertUsage
      Src: /src/nss/cmd/smimetools/cmsutil.c:513,1
    - Dst: NSS_CMSSignerInfo_AddSMIMEEncKeyPrefs
      Src: /src/nss/cmd/smimetools/cmsutil.c:518,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:521,1
    - Dst: NSS_CMSSignerInfo_AddMSSMIMEEncKeyPrefs
      Src: /src/nss/cmd/smimetools/cmsutil.c:525,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:528,1
    - Dst: CERT_FindUserCertByUsage
      Src: /src/nss/cmd/smimetools/cmsutil.c:536,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/smimetools/cmsutil.c:542,1
    - Dst: NSS_CMSSignerInfo_AddSMIMEEncKeyPrefs
      Src: /src/nss/cmd/smimetools/cmsutil.c:547,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:550,1
    - Dst: NSS_CMSSignerInfo_AddMSSMIMEEncKeyPrefs
      Src: /src/nss/cmd/smimetools/cmsutil.c:554,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:557,1
    - Dst: NSS_CMSSignedData_AddCertificate
      Src: /src/nss/cmd/smimetools/cmsutil.c:561,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:562,1
    - Dst: PL_strcmp
      Src: /src/nss/cmd/smimetools/cmsutil.c:566,1
    - Dst: CERT_FindUserCertByUsage
      Src: /src/nss/cmd/smimetools/cmsutil.c:570,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/smimetools/cmsutil.c:575,1
    - Dst: NSS_CMSSignerInfo_AddSMIMEEncKeyPrefs
      Src: /src/nss/cmd/smimetools/cmsutil.c:580,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:583,1
    - Dst: NSS_CMSSignerInfo_AddMSSMIMEEncKeyPrefs
      Src: /src/nss/cmd/smimetools/cmsutil.c:586,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:589,1
    - Dst: NSS_CMSSignedData_AddCertificate
      Src: /src/nss/cmd/smimetools/cmsutil.c:592,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:593,1
    - Dst: NSS_CMSSignedData_AddSignerInfo
      Src: /src/nss/cmd/smimetools/cmsutil.c:598,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:599,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:604,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/smimetools/cmsutil.c:607,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/smimetools/cmsutil.c:610,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/smimetools/cmsutil.c:615,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/smimetools/cmsutil.c:618,1
    - Dst: NSS_CMSSignerInfo_Destroy
      Src: /src/nss/cmd/smimetools/cmsutil.c:621,1
    - Dst: NSS_CMSMessage_Destroy
      Src: /src/nss/cmd/smimetools/cmsutil.c:623,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 168
    argCount: 1
    argNames:
    - signOptions
    argTypes:
    - struct signOptionsStr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 625
    functionName: signed_data
    functionSourceFile: /src/nss/cmd/smimetools/cmsutil.c
    functionUses: 0
    functionsReached:
    - NSS_CMSSignedData_AddSignerInfo
    - CERT_CheckCertUsage
    - NSS_CMSMessage_GetContentInfo
    - PR_Now
    - fprintf
    - NSS_CMSSignerInfo_IncludeCerts
    - NSS_CMSSignerInfo_AddSMIMEEncKeyPrefs
    - NSS_CMSContentInfo_SetContent_Data
    - NSS_CMSMessage_Create
    - NSS_CMSSignerInfo_AddMSSMIMEEncKeyPrefs
    - NSS_CMSSignerInfo_AddSMIMECaps
    - SECU_PrintError
    - NSS_CMSSignerInfo_Destroy
    - NSS_CMSSignedData_Create
    - CERT_FindUserCertByUsage
    - NSS_CMSSignedData_GetContentInfo
    - NSS_CMSSignerInfo_Create
    - CERT_DestroyCertificate
    - NSS_CMSSignerInfo_AddSigningTime
    - NSS_CMSMessage_Destroy
    - PL_strcmp
    - NSS_CMSSignedData_AddCertificate
    - NSS_CMSContentInfo_SetContent_SignedData
    linkageType: ''
    returnType: NSSCMSMessage
    signature: 'NSSCMSMessage *

      signed_data(struct signOptionsStr *signOptions)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: nss_CMSArray_Count
      Src: /src/nss/cmd/smimetools/cmsutil.c:642,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:643,1
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/smimetools/cmsutil.c:646,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:647,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/cmd/smimetools/cmsutil.c:652,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:655,1
    - Dst: CERT_FindCertByNicknameOrEmailAddr
      Src: /src/nss/cmd/smimetools/cmsutil.c:660,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/smimetools/cmsutil.c:663,1
    - Dst: NSS_SMIMEUtil_FindBulkAlgForRecipients
      Src: /src/nss/cmd/smimetools/cmsutil.c:672,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:674,1
    - Dst: NSS_CMSMessage_Create
      Src: /src/nss/cmd/smimetools/cmsutil.c:680,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:682,1
    - Dst: NSS_CMSEnvelopedData_Create
      Src: /src/nss/cmd/smimetools/cmsutil.c:688,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:690,1
    - Dst: NSS_CMSMessage_GetContentInfo
      Src: /src/nss/cmd/smimetools/cmsutil.c:693,1
    - Dst: NSS_CMSContentInfo_SetContent_EnvelopedData
      Src: /src/nss/cmd/smimetools/cmsutil.c:694,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:696,1
    - Dst: NSS_CMSEnvelopedData_GetContentInfo
      Src: /src/nss/cmd/smimetools/cmsutil.c:699,1
    - Dst: NSS_CMSContentInfo_SetContent_Data
      Src: /src/nss/cmd/smimetools/cmsutil.c:701,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:703,1
    - Dst: NSS_CMSRecipientInfo_Create
      Src: /src/nss/cmd/smimetools/cmsutil.c:710,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:713,1
    - Dst: NSS_CMSEnvelopedData_AddRecipient
      Src: /src/nss/cmd/smimetools/cmsutil.c:716,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:718,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/smimetools/cmsutil.c:721,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/smimetools/cmsutil.c:724,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/smimetools/cmsutil.c:729,1
    - Dst: NSS_CMSMessage_Destroy
      Src: /src/nss/cmd/smimetools/cmsutil.c:733,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/smimetools/cmsutil.c:735,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 83
    argCount: 1
    argNames:
    - envelopeOptions
    argTypes:
    - struct envelopeOptionsStr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 627
    functionDepth: 1
    functionLinenumber: 627
    functionLinenumberEnd: 737
    functionName: enveloped_data
    functionSourceFile: /src/nss/cmd/smimetools/cmsutil.c
    functionUses: 0
    functionsReached:
    - CERT_FindCertByNicknameOrEmailAddr
    - NSS_SMIMEUtil_FindBulkAlgForRecipients
    - NSS_CMSContentInfo_SetContent_Data
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - SECU_PrintError
    - NSS_CMSRecipientInfo_Create
    - PORT_FreeArena
    - NSS_CMSMessage_GetContentInfo
    - nss_CMSArray_Count
    - fprintf
    - NSS_CMSMessage_Destroy
    - NSS_CMSContentInfo_SetContent_EnvelopedData
    - NSS_CMSEnvelopedData_AddRecipient
    - CERT_DestroyCertificate
    - NSS_CMSEnvelopedData_GetContentInfo
    - NSS_CMSEnvelopedData_Create
    - NSS_CMSMessage_Create
    linkageType: ''
    returnType: NSSCMSMessage
    signature: 'NSSCMSMessage *

      enveloped_data(struct envelopeOptionsStr *envelopeOptions)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - arg
    - algid
    argTypes:
    - void*
    - SECAlgorithmID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 743
    functionName: dkcb
    functionSourceFile: /src/nss/cmd/smimetools/cmsutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PK11SymKey
    signature: 'PK11SymKey *

      dkcb(void *arg, SECAlgorithmID *algid)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/smimetools/cmsutil.c:762,1
    - Dst: strlen
      Src: /src/nss/cmd/smimetools/cmsutil.c:764,1
    - Dst: enveloped_data
      Src: /src/nss/cmd/smimetools/cmsutil.c:767,1
    - Dst: NSS_CMSDEREncode
      Src: /src/nss/cmd/smimetools/cmsutil.c:768,1
    - Dst: PR_Write
      Src: /src/nss/cmd/smimetools/cmsutil.c:769,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/smimetools/cmsutil.c:770,1
    - Dst: NSS_CMSMessage_ContentLevelCount
      Src: /src/nss/cmd/smimetools/cmsutil.c:775,1
    - Dst: NSS_CMSMessage_ContentLevel
      Src: /src/nss/cmd/smimetools/cmsutil.c:778,1
    - Dst: NSS_CMSContentInfo_GetContentTypeTag
      Src: /src/nss/cmd/smimetools/cmsutil.c:779,1
    - Dst: NSS_CMSContentInfo_GetContentEncAlgTag
      Src: /src/nss/cmd/smimetools/cmsutil.c:784,1
    - Dst: NSS_CMSContentInfo_GetBulkKeySize
      Src: /src/nss/cmd/smimetools/cmsutil.c:785,1
    - Dst: NSS_CMSContentInfo_GetBulkKey
      Src: /src/nss/cmd/smimetools/cmsutil.c:786,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:792,1
    - Dst: NSS_CMSMessage_Destroy
      Src: /src/nss/cmd/smimetools/cmsutil.c:795,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 1
    argNames:
    - encryptOptions
    argTypes:
    - struct encryptOptionsStr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 745
    functionDepth: 2
    functionLinenumber: 745
    functionLinenumberEnd: 797
    functionName: get_enc_params
    functionSourceFile: /src/nss/cmd/smimetools/cmsutil.c
    functionUses: 0
    functionsReached:
    - enveloped_data
    - NSS_CMSContentInfo_GetContentTypeTag
    - PORT_NewArena
    - NSS_CMSMessage_ContentLevel
    - PORT_FreeArena
    - NSS_CMSContentInfo_GetContentEncAlgTag
    - NSS_CMSContentInfo_GetBulkKeySize
    - fprintf
    - PR_Write
    - NSS_CMSMessage_Destroy
    - NSS_CMSMessage_ContentLevelCount
    - NSS_CMSContentInfo_GetBulkKey
    - NSS_CMSDEREncode
    - strlen
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus get_enc_params(struct encryptOptionsStr *encryptOptions)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/smimetools/cmsutil.c:810,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:812,1
    - Dst: NSS_CMSMessage_Create
      Src: /src/nss/cmd/smimetools/cmsutil.c:818,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:820,1
    - Dst: NSS_CMSEncryptedData_Create
      Src: /src/nss/cmd/smimetools/cmsutil.c:826,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:829,1
    - Dst: NSS_CMSMessage_GetContentInfo
      Src: /src/nss/cmd/smimetools/cmsutil.c:832,1
    - Dst: NSS_CMSContentInfo_SetContent_EncryptedData
      Src: /src/nss/cmd/smimetools/cmsutil.c:833,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:835,1
    - Dst: NSS_CMSEncryptedData_GetContentInfo
      Src: /src/nss/cmd/smimetools/cmsutil.c:838,1
    - Dst: NSS_CMSContentInfo_SetContent_Data
      Src: /src/nss/cmd/smimetools/cmsutil.c:840,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:842,1
    - Dst: NSS_CMSEncoder_Start
      Src: /src/nss/cmd/smimetools/cmsutil.c:845,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:848,1
    - Dst: NSS_CMSEncoder_Update
      Src: /src/nss/cmd/smimetools/cmsutil.c:851,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:854,1
    - Dst: NSS_CMSEncoder_Finish
      Src: /src/nss/cmd/smimetools/cmsutil.c:857,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:859,1
    - Dst: fwrite
      Src: /src/nss/cmd/smimetools/cmsutil.c:862,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/smimetools/cmsutil.c:868,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/smimetools/cmsutil.c:876,1
    - Dst: NSS_CMSMessage_Destroy
      Src: /src/nss/cmd/smimetools/cmsutil.c:878,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 58
    argCount: 1
    argNames:
    - encryptOptions
    argTypes:
    - struct encryptOptionsStr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 799
    functionDepth: 1
    functionLinenumber: 799
    functionLinenumberEnd: 880
    functionName: encrypted_data
    functionSourceFile: /src/nss/cmd/smimetools/cmsutil.c
    functionUses: 0
    functionsReached:
    - NSS_CMSContentInfo_SetContent_Data
    - PORT_NewArena
    - NSS_CMSEncoder_Start
    - NSS_CMSEncryptedData_Create
    - NSS_CMSEncryptedData_GetContentInfo
    - PORT_FreeArena
    - NSS_CMSMessage_GetContentInfo
    - fprintf
    - NSS_CMSContentInfo_SetContent_EncryptedData
    - NSS_CMSEncoder_Finish
    - NSS_CMSMessage_Destroy
    - fwrite
    - NSS_CMSMessage_Create
    - NSS_CMSEncoder_Update
    linkageType: ''
    returnType: NSSCMSMessage
    signature: 'NSSCMSMessage *

      encrypted_data(struct encryptOptionsStr *encryptOptions)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: nss_CMSArray_Count
      Src: /src/nss/cmd/smimetools/cmsutil.c:893,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:894,1
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/smimetools/cmsutil.c:898,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:899,1
    - Dst: PORT_ArenaZNewArray
      Src: /src/nss/cmd/smimetools/cmsutil.c:902,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:903,1
    - Dst: CERT_FindCertByNicknameOrEmailAddr
      Src: /src/nss/cmd/smimetools/cmsutil.c:908,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/smimetools/cmsutil.c:911,1
    - Dst: NSS_CMSMessage_Create
      Src: /src/nss/cmd/smimetools/cmsutil.c:922,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:924,1
    - Dst: NSS_CMSSignedData_CreateCertsOnly
      Src: /src/nss/cmd/smimetools/cmsutil.c:930,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:932,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/smimetools/cmsutil.c:935,1
    - Dst: NSS_CMSSignedData_AddCertChain
      Src: /src/nss/cmd/smimetools/cmsutil.c:937,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:938,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/smimetools/cmsutil.c:942,1
    - Dst: NSS_CMSMessage_GetContentInfo
      Src: /src/nss/cmd/smimetools/cmsutil.c:944,1
    - Dst: NSS_CMSContentInfo_SetContent_SignedData
      Src: /src/nss/cmd/smimetools/cmsutil.c:945,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:947,1
    - Dst: NSS_CMSSignedData_GetContentInfo
      Src: /src/nss/cmd/smimetools/cmsutil.c:950,1
    - Dst: NSS_CMSContentInfo_SetContent_Data
      Src: /src/nss/cmd/smimetools/cmsutil.c:951,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:953,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/smimetools/cmsutil.c:957,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/smimetools/cmsutil.c:962,1
    - Dst: NSS_CMSMessage_Destroy
      Src: /src/nss/cmd/smimetools/cmsutil.c:966,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/smimetools/cmsutil.c:968,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 74
    argCount: 1
    argNames:
    - certsonlyOptions
    argTypes:
    - struct certsonlyOptionsStr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 882
    functionDepth: 1
    functionLinenumber: 882
    functionLinenumberEnd: 970
    functionName: signed_data_certsonly
    functionSourceFile: /src/nss/cmd/smimetools/cmsutil.c
    functionUses: 0
    functionsReached:
    - NSS_CMSSignedData_CreateCertsOnly
    - PORT_ArenaZNewArray
    - CERT_FindCertByNicknameOrEmailAddr
    - NSS_CMSContentInfo_SetContent_Data
    - PORT_NewArena
    - SECU_PrintError
    - PORT_FreeArena
    - NSS_CMSSignedData_AddCertChain
    - NSS_CMSMessage_GetContentInfo
    - nss_CMSArray_Count
    - fprintf
    - NSS_CMSMessage_Destroy
    - NSS_CMSSignedData_GetContentInfo
    - CERT_DestroyCertificate
    - NSS_CMSMessage_Create
    - NSS_CMSContentInfo_SetContent_SignedData
    linkageType: ''
    returnType: NSSCMSMessage
    signature: 'NSSCMSMessage *

      signed_data_certsonly(struct certsonlyOptionsStr *certsonlyOptions)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PR_Read
      Src: /src/nss/cmd/smimetools/cmsutil.c:980,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - buf
    - size
    - fd
    argTypes:
    - char*
    - int
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 999
      start: 972
    functionDepth: 1
    functionLinenumber: 972
    functionLinenumberEnd: 999
    functionName: pl_fgets
    functionSourceFile: /src/nss/cmd/smimetools/cmsutil.c
    functionUses: 0
    functionsReached:
    - PR_Read
    linkageType: ''
    returnType: char
    signature: 'char *

      pl_fgets(char *buf, int size, PRFileDesc *fd)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pl_fgets
      Src: /src/nss/cmd/smimetools/cmsutil.c:1016,1
    - Dst: strlen
      Src: /src/nss/cmd/smimetools/cmsutil.c:1019,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:1032,1
    - Dst: PR_Open
      Src: /src/nss/cmd/smimetools/cmsutil.c:1033,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:1035,1
    - Dst: SECU_FileToItem
      Src: /src/nss/cmd/smimetools/cmsutil.c:1040,1
    - Dst: PR_Close
      Src: /src/nss/cmd/smimetools/cmsutil.c:1041,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/smimetools/cmsutil.c:1043,1
    - Dst: decode
      Src: /src/nss/cmd/smimetools/cmsutil.c:1047,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/smimetools/cmsutil.c:1048,1
    - Dst: NSS_CMSMessage_Destroy
      Src: /src/nss/cmd/smimetools/cmsutil.c:1050,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/smimetools/cmsutil.c:1052,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 3
    argNames:
    - outFile
    - batchFile
    - decodeOptions
    argTypes:
    - FILE*
    - PRFileDesc*
    - struct decodeOptionsStr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1008
    functionDepth: 2
    functionLinenumber: 1008
    functionLinenumberEnd: 1057
    functionName: doBatchDecode
    functionSourceFile: /src/nss/cmd/smimetools/cmsutil.c
    functionUses: 0
    functionsReached:
    - pl_fgets
    - SECU_PrintError
    - fprintf
    - decode
    - PR_Open
    - NSS_CMSMessage_Destroy
    - SECITEM_FreeItem
    - PR_Close
    - SECU_FileToItem
    - strlen
    linkageType: ''
    returnType: int
    signature: "int doBatchDecode(FILE *outFile, PRFileDesc *batchFile,\n              const
      struct decodeOptionsStr *decodeOptions)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/cmd/smimetools/cmsutil.c:1088,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/cmd/smimetools/cmsutil.c:1093,1
    - Dst: PORT_Strlen
      Src: /src/nss/cmd/smimetools/cmsutil.c:1098,1
    - Dst: PORT_Strncasecmp
      Src: /src/nss/cmd/smimetools/cmsutil.c:1099,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/cmd/smimetools/cmsutil.c:1103,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 1
    argNames:
    - cipherString
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1079
    functionDepth: 1
    functionLinenumber: 1079
    functionLinenumberEnd: 1110
    functionName: CMSU_FindTagFromString
    functionSourceFile: /src/nss/cmd/smimetools/cmsutil.c
    functionUses: 0
    functionsReached:
    - PORT_Strncasecmp
    - PORT_Strcasecmp
    - SECOID_FindOIDByTag
    - PORT_Strlen
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag CMSU_FindTagFromString(const char *cipherString)
  - BBCount: 103
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetEnvSecure
      Src: /src/nss/cmd/smimetools/cmsutil.c:1139,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/smimetools/cmsutil.c:1140,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/cmd/smimetools/cmsutil.c:1141,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/smimetools/cmsutil.c:1142,1
    - Dst: SECOID_Init
      Src: /src/nss/cmd/smimetools/cmsutil.c:1145,1
    - Dst: strrchr
      Src: /src/nss/cmd/smimetools/cmsutil.c:1147,1
    - Dst: strrchr
      Src: /src/nss/cmd/smimetools/cmsutil.c:1149,1
    - Dst: PL_CreateOptState
      Src: /src/nss/cmd/smimetools/cmsutil.c:1181,1
    - Dst: PL_GetNextOpt
      Src: /src/nss/cmd/smimetools/cmsutil.c:1183,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:1196,1
    - Dst: Usage
      Src: /src/nss/cmd/smimetools/cmsutil.c:1199,1
    - Dst: exit
      Src: /src/nss/cmd/smimetools/cmsutil.c:1200,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:1206,1
    - Dst: Usage
      Src: /src/nss/cmd/smimetools/cmsutil.c:1209,1
    - Dst: exit
      Src: /src/nss/cmd/smimetools/cmsutil.c:1210,1
    - Dst: CMSU_FindTagFromString
      Src: /src/nss/cmd/smimetools/cmsutil.c:1215,1
    - Dst: HASH_GetHashTypeByOidTag
      Src: /src/nss/cmd/smimetools/cmsutil.c:1216,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:1221,1
    - Dst: HASH_GetHashOidTagByHashType
      Src: /src/nss/cmd/smimetools/cmsutil.c:1224,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:1226,1
    - Dst: exit
      Src: /src/nss/cmd/smimetools/cmsutil.c:1227,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:1229,1
    - Dst: SECOID_FindOIDTagDescription
      Src: /src/nss/cmd/smimetools/cmsutil.c:1229,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:1237,1
    - Dst: Usage
      Src: /src/nss/cmd/smimetools/cmsutil.c:1240,1
    - Dst: exit
      Src: /src/nss/cmd/smimetools/cmsutil.c:1241,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/smimetools/cmsutil.c:1243,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:1250,1
    - Dst: Usage
      Src: /src/nss/cmd/smimetools/cmsutil.c:1253,1
    - Dst: exit
      Src: /src/nss/cmd/smimetools/cmsutil.c:1254,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:1263,1
    - Dst: Usage
      Src: /src/nss/cmd/smimetools/cmsutil.c:1266,1
    - Dst: exit
      Src: /src/nss/cmd/smimetools/cmsutil.c:1267,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:1273,1
    - Dst: Usage
      Src: /src/nss/cmd/smimetools/cmsutil.c:1276,1
    - Dst: exit
      Src: /src/nss/cmd/smimetools/cmsutil.c:1277,1
    - Dst: strdup
      Src: /src/nss/cmd/smimetools/cmsutil.c:1279,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:1284,1
    - Dst: Usage
      Src: /src/nss/cmd/smimetools/cmsutil.c:1287,1
    - Dst: exit
      Src: /src/nss/cmd/smimetools/cmsutil.c:1288,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:1295,1
    - Dst: Usage
      Src: /src/nss/cmd/smimetools/cmsutil.c:1298,1
    - Dst: exit
      Src: /src/nss/cmd/smimetools/cmsutil.c:1299,1
    - Dst: PR_Open
      Src: /src/nss/cmd/smimetools/cmsutil.c:1301,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:1303,1
    - Dst: exit
      Src: /src/nss/cmd/smimetools/cmsutil.c:1305,1
    - Dst: SECU_FileToItem
      Src: /src/nss/cmd/smimetools/cmsutil.c:1308,1
    - Dst: PR_Close
      Src: /src/nss/cmd/smimetools/cmsutil.c:1309,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/smimetools/cmsutil.c:1311,1
    - Dst: exit
      Src: /src/nss/cmd/smimetools/cmsutil.c:1312,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/smimetools/cmsutil.c:1316,1
    - Dst: SECU_ConfigDirectory
      Src: /src/nss/cmd/smimetools/cmsutil.c:1322,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/smimetools/cmsutil.c:1325,1
    - Dst: PR_Open
      Src: /src/nss/cmd/smimetools/cmsutil.c:1326,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:1331,1
    - Dst: Usage
      Src: /src/nss/cmd/smimetools/cmsutil.c:1334,1
    - Dst: exit
      Src: /src/nss/cmd/smimetools/cmsutil.c:1335,1
    - Dst: atoi
      Src: /src/nss/cmd/smimetools/cmsutil.c:1337,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:1339,1
    - Dst: exit
      Src: /src/nss/cmd/smimetools/cmsutil.c:1340,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:1345,1
    - Dst: exit
      Src: /src/nss/cmd/smimetools/cmsutil.c:1346,1
    - Dst: PR_Open
      Src: /src/nss/cmd/smimetools/cmsutil.c:1348,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:1350,1
    - Dst: exit
      Src: /src/nss/cmd/smimetools/cmsutil.c:1352,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:1358,1
    - Dst: Usage
      Src: /src/nss/cmd/smimetools/cmsutil.c:1361,1
    - Dst: exit
      Src: /src/nss/cmd/smimetools/cmsutil.c:1362,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:1369,1
    - Dst: Usage
      Src: /src/nss/cmd/smimetools/cmsutil.c:1372,1
    - Dst: exit
      Src: /src/nss/cmd/smimetools/cmsutil.c:1373,1
    - Dst: fopen
      Src: /src/nss/cmd/smimetools/cmsutil.c:1378,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:1380,1
    - Dst: exit
      Src: /src/nss/cmd/smimetools/cmsutil.c:1382,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:1387,1
    - Dst: Usage
      Src: /src/nss/cmd/smimetools/cmsutil.c:1388,1
    - Dst: exit
      Src: /src/nss/cmd/smimetools/cmsutil.c:1389,1
    - Dst: strdup
      Src: /src/nss/cmd/smimetools/cmsutil.c:1392,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:1397,1
    - Dst: Usage
      Src: /src/nss/cmd/smimetools/cmsutil.c:1398,1
    - Dst: exit
      Src: /src/nss/cmd/smimetools/cmsutil.c:1399,1
    - Dst: strdup
      Src: /src/nss/cmd/smimetools/cmsutil.c:1402,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:1407,1
    - Dst: Usage
      Src: /src/nss/cmd/smimetools/cmsutil.c:1408,1
    - Dst: exit
      Src: /src/nss/cmd/smimetools/cmsutil.c:1409,1
    - Dst: strchr
      Src: /src/nss/cmd/smimetools/cmsutil.c:1414,1
    - Dst: strdup
      Src: /src/nss/cmd/smimetools/cmsutil.c:1417,1
    - Dst: atoi
      Src: /src/nss/cmd/smimetools/cmsutil.c:1429,1
    - Dst: strdup
      Src: /src/nss/cmd/smimetools/cmsutil.c:1429,1
    - Dst: Usage
      Src: /src/nss/cmd/smimetools/cmsutil.c:1441,1
    - Dst: PL_DestroyOptState
      Src: /src/nss/cmd/smimetools/cmsutil.c:1442,1
    - Dst: Usage
      Src: /src/nss/cmd/smimetools/cmsutil.c:1445,1
    - Dst: SECU_FileToItem
      Src: /src/nss/cmd/smimetools/cmsutil.c:1448,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/smimetools/cmsutil.c:1450,1
    - Dst: exit
      Src: /src/nss/cmd/smimetools/cmsutil.c:1451,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:1455,1
    - Dst: PR_Init
      Src: /src/nss/cmd/smimetools/cmsutil.c:1459,1
    - Dst: NSS_InitReadWrite
      Src: /src/nss/cmd/smimetools/cmsutil.c:1460,1
    - Dst: SECU_ConfigDirectory
      Src: /src/nss/cmd/smimetools/cmsutil.c:1460,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/smimetools/cmsutil.c:1462,1
    - Dst: exit
      Src: /src/nss/cmd/smimetools/cmsutil.c:1463,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:1466,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/cmd/smimetools/cmsutil.c:1468,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/smimetools/cmsutil.c:1470,1
    - Dst: exit
      Src: /src/nss/cmd/smimetools/cmsutil.c:1471,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:1474,1
    - Dst: PK11_SetPasswordFunc
      Src: /src/nss/cmd/smimetools/cmsutil.c:1487,1
    - Dst: _setmode
      Src: /src/nss/cmd/smimetools/cmsutil.c:1494,1
    - Dst: _fileno
      Src: /src/nss/cmd/smimetools/cmsutil.c:1494,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:1496,1
    - Dst: SECU_FileToItem
      Src: /src/nss/cmd/smimetools/cmsutil.c:1512,1
    - Dst: decode
      Src: /src/nss/cmd/smimetools/cmsutil.c:1514,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/smimetools/cmsutil.c:1516,1
    - Dst: get_enc_params
      Src: /src/nss/cmd/smimetools/cmsutil.c:1520,1
    - Dst: decode
      Src: /src/nss/cmd/smimetools/cmsutil.c:1525,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/smimetools/cmsutil.c:1527,1
    - Dst: doBatchDecode
      Src: /src/nss/cmd/smimetools/cmsutil.c:1531,1
    - Dst: signed_data
      Src: /src/nss/cmd/smimetools/cmsutil.c:1536,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/smimetools/cmsutil.c:1538,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:1544,1
    - Dst: exit
      Src: /src/nss/cmd/smimetools/cmsutil.c:1546,1
    - Dst: PR_Open
      Src: /src/nss/cmd/smimetools/cmsutil.c:1555,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:1558,1
    - Dst: exit
      Src: /src/nss/cmd/smimetools/cmsutil.c:1560,1
    - Dst: SECU_FileToItem
      Src: /src/nss/cmd/smimetools/cmsutil.c:1563,1
    - Dst: decode
      Src: /src/nss/cmd/smimetools/cmsutil.c:1565,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/smimetools/cmsutil.c:1567,1
    - Dst: get_enc_params
      Src: /src/nss/cmd/smimetools/cmsutil.c:1572,1
    - Dst: encrypted_data
      Src: /src/nss/cmd/smimetools/cmsutil.c:1574,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/smimetools/cmsutil.c:1576,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/cmd/smimetools/cmsutil.c:1580,1
    - Dst: enveloped_data
      Src: /src/nss/cmd/smimetools/cmsutil.c:1586,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/smimetools/cmsutil.c:1588,1
    - Dst: signed_data_certsonly
      Src: /src/nss/cmd/smimetools/cmsutil.c:1594,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/smimetools/cmsutil.c:1596,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:1601,1
    - Dst: Usage
      Src: /src/nss/cmd/smimetools/cmsutil.c:1602,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/smimetools/cmsutil.c:1607,1
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/smimetools/cmsutil.c:1612,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:1617,1
    - Dst: exit
      Src: /src/nss/cmd/smimetools/cmsutil.c:1618,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:1622,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:1623,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:1625,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:1628,1
    - Dst: NSS_CMSEncoder_Start
      Src: /src/nss/cmd/smimetools/cmsutil.c:1630,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:1637,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:1642,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:1646,1
    - Dst: NSS_CMSEncoder_Update
      Src: /src/nss/cmd/smimetools/cmsutil.c:1650,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:1652,1
    - Dst: NSS_CMSEncoder_Finish
      Src: /src/nss/cmd/smimetools/cmsutil.c:1654,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/smimetools/cmsutil.c:1655,1
    - Dst: NSS_CMSEncoder_Finish
      Src: /src/nss/cmd/smimetools/cmsutil.c:1660,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/smimetools/cmsutil.c:1662,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/smimetools/cmsutil.c:1663,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:1669,1
    - Dst: fwrite
      Src: /src/nss/cmd/smimetools/cmsutil.c:1671,1
    - Dst: fprintf
      Src: /src/nss/cmd/smimetools/cmsutil.c:1673,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/smimetools/cmsutil.c:1675,1
    - Dst: NSS_CMSMessage_Destroy
      Src: /src/nss/cmd/smimetools/cmsutil.c:1679,1
    - Dst: fclose
      Src: /src/nss/cmd/smimetools/cmsutil.c:1681,1
    - Dst: PR_Close
      Src: /src/nss/cmd/smimetools/cmsutil.c:1684,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/smimetools/cmsutil.c:1687,1
    - Dst: PR_Close
      Src: /src/nss/cmd/smimetools/cmsutil.c:1690,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/smimetools/cmsutil.c:1693,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/smimetools/cmsutil.c:1694,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/smimetools/cmsutil.c:1695,1
    - Dst: NSS_Shutdown
      Src: /src/nss/cmd/smimetools/cmsutil.c:1696,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/smimetools/cmsutil.c:1697,1
    - Dst: PR_Cleanup
      Src: /src/nss/cmd/smimetools/cmsutil.c:1700,1
    CyclomaticComplexity: 119
    EdgeCount: 119
    ICount: 463
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1702
      start: 1112
    functionDepth: 3
    functionLinenumber: 1112
    functionLinenumberEnd: 1702
    functionName: main
    functionSourceFile: /src/nss/cmd/smimetools/cmsutil.c
    functionUses: 4
    functionsReached:
    - NSS_InitReadWrite
    - SECOID_FindOIDTagDescription
    - PR_GetEnvSecure
    - PL_DestroyOptState
    - fprintf
    - fwrite
    - Usage
    - get_enc_params
    - PORT_NewArena
    - HASH_GetHashTypeByOidTag
    - strchr
    - NSS_CMSEncoder_Start
    - _fileno
    - CMSU_FindTagFromString
    - fopen
    - CERT_GetDefaultCertDB
    - encrypted_data
    - HASH_GetHashOidTagByHashType
    - PL_CreateOptState
    - strrchr
    - _setmode
    - PORT_Assert
    - strdup
    - NSS_CMSEncoder_Update
    - fclose
    - SECITEM_FreeItem
    - SECU_PrintError
    - PR_Cleanup
    - PORT_FreeArena
    - exit
    - PR_Init
    - decode
    - doBatchDecode
    - PR_Open
    - signed_data
    - SECOID_Init
    - NSS_CMSEncoder_Finish
    - PR_Close
    - PK11_SetPasswordFunc
    - SECU_ConfigDirectory
    - SECU_FileToItem
    - enveloped_data
    - signed_data_certsonly
    - PL_GetNextOpt
    - PORT_Free
    - atoi
    - NSS_Shutdown
    - NSS_CMSMessage_Destroy
    - PORT_Strdup
    - PK11_FreeSymKey
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/vfychain/vfychain.c:50,1
    - Dst: exit
      Src: /src/nss/cmd/vfychain/vfychain.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - progName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 92
    functionName: Usage
    functionSourceFile: /src/nss/cmd/vfychain/vfychain.c
    functionUses: 73
    functionsReached:
    - fprintf
    - exit
    linkageType: ''
    returnType: void
    signature: void Usage(const char *progName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/vfychain/vfychain.c:103,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/vfychain/vfychain.c:104,1
    - Dst: PR_GetError
      Src: /src/nss/cmd/vfychain/vfychain.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - function
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 105
    functionName: errWarn
    functionSourceFile: /src/nss/cmd/vfychain/vfychain.c
    functionUses: 16
    functionsReached:
    - fprintf
    - PR_GetError
    - SECU_Strerror
    linkageType: ''
    returnType: void
    signature: void errWarn(char *function)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: errWarn
      Src: /src/nss/cmd/vfychain/vfychain.c:110,1
    - Dst: NSS_Shutdown
      Src: /src/nss/cmd/vfychain/vfychain.c:113,1
    - Dst: PR_Cleanup
      Src: /src/nss/cmd/vfychain/vfychain.c:114,1
    - Dst: exit
      Src: /src/nss/cmd/vfychain/vfychain.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - function
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 116
    functionName: exitErr
    functionSourceFile: /src/nss/cmd/vfychain/vfychain.c
    functionUses: 0
    functionsReached:
    - errWarn
    - PR_Cleanup
    - exit
    - NSS_Shutdown
    linkageType: ''
    returnType: void
    signature: void exitErr(char *function)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CERT_NewCertList
      Src: /src/nss/cmd/vfychain/vfychain.c:131,1
    - Dst: CERT_AddCertToListTail
      Src: /src/nss/cmd/vfychain/vfychain.c:133,1
    - Dst: PORT_ZNew
      Src: /src/nss/cmd/vfychain/vfychain.c:135,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - cert
    - trusted
    argTypes:
    - CERTCertificate*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 142
    functionName: rememberCert
    functionSourceFile: /src/nss/cmd/vfychain/vfychain.c
    functionUses: 0
    functionsReached:
    - CERT_AddCertToListTail
    - CERT_NewCertList
    - PORT_ZNew
    linkageType: ''
    returnType: void
    signature: void rememberCert(CERTCertificate *cert, PRBool trusted)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/vfychain/vfychain.c:151,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/vfychain/vfychain.c:152,1
    - Dst: CERT_DestroyCertList
      Src: /src/nss/cmd/vfychain/vfychain.c:155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 157
    functionName: forgetCerts
    functionSourceFile: /src/nss/cmd/vfychain/vfychain.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - CERT_DestroyCertList
    - CERT_DestroyCertificate
    linkageType: ''
    returnType: void
    signature: void forgetCerts(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/cmd/vfychain/vfychain.c:168,1
    - Dst: CERT_FindCertByNicknameOrEmailAddr
      Src: /src/nss/cmd/vfychain/vfychain.c:171,1
    - Dst: PR_Open
      Src: /src/nss/cmd/vfychain/vfychain.c:178,1
    - Dst: PR_GetError
      Src: /src/nss/cmd/vfychain/vfychain.c:180,1
    - Dst: fprintf
      Src: /src/nss/cmd/vfychain/vfychain.c:181,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/vfychain/vfychain.c:182,1
    - Dst: SECU_ReadDERFromFile
      Src: /src/nss/cmd/vfychain/vfychain.c:186,1
    - Dst: PR_Close
      Src: /src/nss/cmd/vfychain/vfychain.c:187,1
    - Dst: fprintf
      Src: /src/nss/cmd/vfychain/vfychain.c:189,1
    - Dst: fprintf
      Src: /src/nss/cmd/vfychain/vfychain.c:194,1
    - Dst: CERT_NewTempCertificate
      Src: /src/nss/cmd/vfychain/vfychain.c:198,1
    - Dst: PR_GetError
      Src: /src/nss/cmd/vfychain/vfychain.c:203,1
    - Dst: fprintf
      Src: /src/nss/cmd/vfychain/vfychain.c:204,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/vfychain/vfychain.c:205,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/vfychain/vfychain.c:207,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 3
    argNames:
    - name
    - isAscii
    - progName
    argTypes:
    - char*
    - PRBool
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 209
    functionName: getCert
    functionSourceFile: /src/nss/cmd/vfychain/vfychain.c
    functionUses: 2
    functionsReached:
    - CERT_FindCertByNicknameOrEmailAddr
    - SECU_ReadDERFromFile
    - SECU_Strerror
    - PORT_Free
    - fprintf
    - PR_Open
    - CERT_GetDefaultCertDB
    - PR_GetError
    - PR_Close
    - CERT_NewTempCertificate
    linkageType: ''
    returnType: CERTCertificate
    signature: 'CERTCertificate *

      getCert(const char *name, PRBool isAscii, const char *progName)'
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/vfychain/vfychain.c:257,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/vfychain/vfychain.c:259,1
    - Dst: PORT_Strstr
      Src: /src/nss/cmd/vfychain/vfychain.c:272,1
    - Dst: PORT_Strstr
      Src: /src/nss/cmd/vfychain/vfychain.c:275,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/vfychain/vfychain.c:285,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/vfychain/vfychain.c:287,1
    - Dst: PORT_Strstr
      Src: /src/nss/cmd/vfychain/vfychain.c:304,1
    - Dst: PORT_Strstr
      Src: /src/nss/cmd/vfychain/vfychain.c:307,1
    - Dst: PORT_Strstr
      Src: /src/nss/cmd/vfychain/vfychain.c:311,1
    - Dst: PORT_Strstr
      Src: /src/nss/cmd/vfychain/vfychain.c:314,1
    - Dst: PORT_Strstr
      Src: /src/nss/cmd/vfychain/vfychain.c:317,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 62
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 326
    functionName: parseRevMethodsAndFlags
    functionSourceFile: /src/nss/cmd/vfychain/vfychain.c
    functionUses: 0
    functionsReached:
    - PORT_Strcmp
    - PORT_Strstr
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus parseRevMethodsAndFlags()
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 1
    argNames:
    - flags
    argTypes:
    - CERTRevocationFlags*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 366
    functionName: configureRevocationParams
    functionSourceFile: /src/nss/cmd/vfychain/vfychain.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus configureRevocationParams(CERTRevocationFlags *flags)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Free
      Src: /src/nss/cmd/vfychain/vfychain.c:374,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/vfychain/vfychain.c:377,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/vfychain/vfychain.c:380,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/vfychain/vfychain.c:383,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 386
    functionName: freeRevocationMethodData
    functionSourceFile: /src/nss/cmd/vfychain/vfychain.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    linkageType: ''
    returnType: void
    signature: void freeRevocationMethodData()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 399
    functionName: isOCSPEnabled
    functionSourceFile: /src/nss/cmd/vfychain/vfychain.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool isOCSPEnabled()
  - BBCount: 70
    BranchProfiles: []
    Callsites:
    - Dst: PR_Init
      Src: /src/nss/cmd/vfychain/vfychain.c:430,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/vfychain/vfychain.c:432,1
    - Dst: PL_CreateOptState
      Src: /src/nss/cmd/vfychain/vfychain.c:434,1
    - Dst: PL_GetNextOpt
      Src: /src/nss/cmd/vfychain/vfychain.c:435,1
    - Dst: DER_AsciiToTime
      Src: /src/nss/cmd/vfychain/vfychain.c:443,1
    - Dst: Usage
      Src: /src/nss/cmd/vfychain/vfychain.c:445,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/vfychain/vfychain.c:448,1
    - Dst: fprintf
      Src: /src/nss/cmd/vfychain/vfychain.c:461,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/vfychain/vfychain.c:469,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/vfychain/vfychain.c:473,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/vfychain/vfychain.c:476,1
    - Dst: fprintf
      Src: /src/nss/cmd/vfychain/vfychain.c:483,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/vfychain/vfychain.c:491,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/vfychain/vfychain.c:494,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/vfychain/vfychain.c:504,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/vfychain/vfychain.c:513,1
    - Dst: Usage
      Src: /src/nss/cmd/vfychain/vfychain.c:515,1
    - Dst: Usage
      Src: /src/nss/cmd/vfychain/vfychain.c:518,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/vfychain/vfychain.c:522,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/vfychain/vfychain.c:527,1
    - Dst: Usage
      Src: /src/nss/cmd/vfychain/vfychain.c:533,1
    - Dst: Usage
      Src: /src/nss/cmd/vfychain/vfychain.c:539,1
    - Dst: fprintf
      Src: /src/nss/cmd/vfychain/vfychain.c:543,1
    - Dst: Usage
      Src: /src/nss/cmd/vfychain/vfychain.c:545,1
    - Dst: fprintf
      Src: /src/nss/cmd/vfychain/vfychain.c:548,1
    - Dst: Usage
      Src: /src/nss/cmd/vfychain/vfychain.c:550,1
    - Dst: fprintf
      Src: /src/nss/cmd/vfychain/vfychain.c:553,1
    - Dst: parseRevMethodsAndFlags
      Src: /src/nss/cmd/vfychain/vfychain.c:559,1
    - Dst: fprintf
      Src: /src/nss/cmd/vfychain/vfychain.c:560,1
    - Dst: PK11_SetPasswordFunc
      Src: /src/nss/cmd/vfychain/vfychain.c:565,1
    - Dst: NSS_Init
      Src: /src/nss/cmd/vfychain/vfychain.c:569,1
    - Dst: NSS_NoDB_Init
      Src: /src/nss/cmd/vfychain/vfychain.c:571,1
    - Dst: SECMOD_AddNewModule
      Src: /src/nss/cmd/vfychain/vfychain.c:574,1
    - Dst: exitErr
      Src: /src/nss/cmd/vfychain/vfychain.c:577,1
    - Dst: SECU_RegisterDynamicOids
      Src: /src/nss/cmd/vfychain/vfychain.c:579,1
    - Dst: isOCSPEnabled
      Src: /src/nss/cmd/vfychain/vfychain.c:580,1
    - Dst: CERT_EnableOCSPChecking
      Src: /src/nss/cmd/vfychain/vfychain.c:581,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/cmd/vfychain/vfychain.c:581,1
    - Dst: CERT_DisableOCSPDefaultResponder
      Src: /src/nss/cmd/vfychain/vfychain.c:582,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/cmd/vfychain/vfychain.c:582,1
    - Dst: CERT_SetOCSPFailureMode
      Src: /src/nss/cmd/vfychain/vfychain.c:584,1
    - Dst: Usage
      Src: /src/nss/cmd/vfychain/vfychain.c:591,1
    - Dst: fprintf
      Src: /src/nss/cmd/vfychain/vfychain.c:604,1
    - Dst: Usage
      Src: /src/nss/cmd/vfychain/vfychain.c:606,1
    - Dst: getCert
      Src: /src/nss/cmd/vfychain/vfychain.c:608,1
    - Dst: rememberCert
      Src: /src/nss/cmd/vfychain/vfychain.c:611,1
    - Dst: PL_GetNextOpt
      Src: /src/nss/cmd/vfychain/vfychain.c:616,1
    - Dst: PL_DestroyOptState
      Src: /src/nss/cmd/vfychain/vfychain.c:618,1
    - Dst: Usage
      Src: /src/nss/cmd/vfychain/vfychain.c:620,1
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/vfychain/vfychain.c:623,1
    - Dst: CERT_SetUsePKIXForValidation
      Src: /src/nss/cmd/vfychain/vfychain.c:632,1
    - Dst: PR_Now
      Src: /src/nss/cmd/vfychain/vfychain.c:635,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/cmd/vfychain/vfychain.c:637,1
    - Dst: CERT_VerifyCertificate
      Src: /src/nss/cmd/vfychain/vfychain.c:638,1
    - Dst: memset
      Src: /src/nss/cmd/vfychain/vfychain.c:658,1
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/vfychain/vfychain.c:664,1
    - Dst: fprintf
      Src: /src/nss/cmd/vfychain/vfychain.c:666,1
    - Dst: SEC_StringToOID
      Src: /src/nss/cmd/vfychain/vfychain.c:670,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/vfychain/vfychain.c:672,1
    - Dst: fprintf
      Src: /src/nss/cmd/vfychain/vfychain.c:673,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/vfychain/vfychain.c:674,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/vfychain/vfychain.c:674,1
    - Dst: SECOID_AddEntry
      Src: /src/nss/cmd/vfychain/vfychain.c:678,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/vfychain/vfychain.c:679,1
    - Dst: fprintf
      Src: /src/nss/cmd/vfychain/vfychain.c:681,1
    - Dst: configureRevocationParams
      Src: /src/nss/cmd/vfychain/vfychain.c:708,1
    - Dst: fprintf
      Src: /src/nss/cmd/vfychain/vfychain.c:710,1
    - Dst: CERT_PKIXVerifyCert
      Src: /src/nss/cmd/vfychain/vfychain.c:744,1
    - Dst: fprintf
      Src: /src/nss/cmd/vfychain/vfychain.c:756,1
    - Dst: SECU_displayVerifyLog
      Src: /src/nss/cmd/vfychain/vfychain.c:758,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/vfychain/vfychain.c:763,1
    - Dst: fprintf
      Src: /src/nss/cmd/vfychain/vfychain.c:769,1
    - Dst: SEC_PrintCertificateAndTrust
      Src: /src/nss/cmd/vfychain/vfychain.c:772,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/vfychain/vfychain.c:775,1
    - Dst: SECU_PrintName
      Src: /src/nss/cmd/vfychain/vfychain.c:778,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/vfychain/vfychain.c:782,1
    - Dst: CERT_LIST_HEAD
      Src: /src/nss/cmd/vfychain/vfychain.c:790,1
    - Dst: CERT_LIST_END
      Src: /src/nss/cmd/vfychain/vfychain.c:790,1
    - Dst: CERT_LIST_NEXT
      Src: /src/nss/cmd/vfychain/vfychain.c:791,1
    - Dst: snprintf
      Src: /src/nss/cmd/vfychain/vfychain.c:792,1
    - Dst: SECU_PrintName
      Src: /src/nss/cmd/vfychain/vfychain.c:793,1
    - Dst: CERT_DestroyCertList
      Src: /src/nss/cmd/vfychain/vfychain.c:796,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/vfychain/vfychain.c:803,1
    - Dst: forgetCerts
      Src: /src/nss/cmd/vfychain/vfychain.c:806,1
    - Dst: NSS_Shutdown
      Src: /src/nss/cmd/vfychain/vfychain.c:807,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/vfychain/vfychain.c:808,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/vfychain/vfychain.c:811,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/vfychain/vfychain.c:812,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/vfychain/vfychain.c:813,1
    - Dst: freeRevocationMethodData
      Src: /src/nss/cmd/vfychain/vfychain.c:814,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/vfychain/vfychain.c:816,1
    - Dst: PL_ArenaFinish
      Src: /src/nss/cmd/vfychain/vfychain.c:818,1
    - Dst: PR_Cleanup
      Src: /src/nss/cmd/vfychain/vfychain.c:819,1
    CyclomaticComplexity: 92
    EdgeCount: 92
    ICount: 313
    argCount: 3
    argNames:
    - argc
    - argv
    - envp
    argTypes:
    - int
    - char*[]
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 401
    functionDepth: 2
    functionLinenumber: 401
    functionLinenumberEnd: 821
    functionName: main
    functionSourceFile: /src/nss/cmd/vfychain/vfychain.c
    functionUses: 4
    functionsReached:
    - PORT_Atoi
    - NSS_Init
    - getCert
    - isOCSPEnabled
    - PL_DestroyOptState
    - fprintf
    - PR_Now
    - Usage
    - CERT_SetOCSPFailureMode
    - SECU_PrintName
    - PORT_NewArena
    - configureRevocationParams
    - memset
    - DER_AsciiToTime
    - CERT_LIST_END
    - CERT_DisableOCSPDefaultResponder
    - exitErr
    - CERT_GetDefaultCertDB
    - snprintf
    - freeRevocationMethodData
    - PL_ArenaFinish
    - PL_CreateOptState
    - CERT_LIST_NEXT
    - CERT_LIST_HEAD
    - PR_Cleanup
    - SECU_PrintError
    - SEC_PrintCertificateAndTrust
    - CERT_EnableOCSPChecking
    - PORT_FreeArena
    - rememberCert
    - SEC_StringToOID
    - parseRevMethodsAndFlags
    - CERT_PKIXVerifyCert
    - PR_Init
    - forgetCerts
    - PL_strdup
    - CERT_DestroyCertificate
    - PK11_SetPasswordFunc
    - CERT_VerifyCertificate
    - CERT_DestroyCertList
    - SECMOD_AddNewModule
    - NSS_NoDB_Init
    - SECU_Strerror
    - PL_GetNextOpt
    - SECOID_AddEntry
    - PORT_Free
    - PORT_GetError
    - SECU_displayVerifyLog
    - NSS_Shutdown
    - SECU_RegisterDynamicOids
    - CERT_SetUsePKIXForValidation
    - PORT_Strdup
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[], char *envp[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetOpenFileInfo
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fd
    argTypes:
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 89
    functionName: GetLen
    functionSourceFile: /src/nss/cmd/symkeyutil/symkeyutil.c
    functionUses: 0
    functionsReached:
    - PR_GetOpenFileInfo
    linkageType: ''
    returnType: int
    signature: int GetLen(PRFileDesc *fd)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PR_Open
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:96,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:98,1
    - Dst: GetLen
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:102,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:104,1
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:107,1
    - Dst: fprintf
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:109,1
    - Dst: PR_Read
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:113,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:115,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:116,1
    - Dst: PR_Close
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:120,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - inFile
    - item
    argTypes:
    - char*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 123
    functionName: ReadBuf
    functionSourceFile: /src/nss/cmd/symkeyutil/symkeyutil.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - SECU_PrintError
    - PORT_Free
    - fprintf
    - PR_Read
    - PR_Open
    - PR_Close
    - GetLen
    linkageType: ''
    returnType: int
    signature: int ReadBuf(char *inFile, SECItem *item)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_Open
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:129,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:131,1
    - Dst: PR_Write
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:135,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:137,1
    - Dst: PR_Close
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - inFile
    - item
    argTypes:
    - char*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 142
    functionName: WriteBuf
    functionSourceFile: /src/nss/cmd/symkeyutil/symkeyutil.c
    functionUses: 0
    functionsReached:
    - PR_Open
    - PR_Write
    - PR_Close
    - SECU_PrintError
    linkageType: ''
    returnType: int
    signature: int WriteBuf(char *inFile, SECItem *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - keyString
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 154
    functionName: GetKeyTypeFromString
    functionSourceFile: /src/nss/cmd/symkeyutil/symkeyutil.c
    functionUses: 0
    functionsReached:
    - PL_strcasecmp
    linkageType: ''
    returnType: CK_KEY_TYPE
    signature: CK_KEY_TYPE GetKeyTypeFromString(const char *keyString)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - keyString
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 166
    functionName: GetKeyMechFromString
    functionSourceFile: /src/nss/cmd/symkeyutil/symkeyutil.c
    functionUses: 0
    functionsReached:
    - PL_strcasecmp
    linkageType: ''
    returnType: CK_MECHANISM_TYPE
    signature: CK_MECHANISM_TYPE GetKeyMechFromString(const char *keyString)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - type
    argTypes:
    - CK_KEY_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 178
    functionName: GetStringFromKeyType
    functionSourceFile: /src/nss/cmd/symkeyutil/symkeyutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      GetStringFromKeyType(CK_KEY_TYPE type)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - type
    argTypes:
    - CK_KEY_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 190
    functionName: GetWrapFromKeyType
    functionSourceFile: /src/nss/cmd/symkeyutil/symkeyutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_MECHANISM_TYPE
    signature: CK_MECHANISM_TYPE GetWrapFromKeyType(CK_KEY_TYPE type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetSymKeyType
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:195,1
    - Dst: GetWrapFromKeyType
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - symKey
    argTypes:
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 198
    functionName: GetWrapMechanism
    functionSourceFile: /src/nss/cmd/symkeyutil/symkeyutil.c
    functionUses: 0
    functionsReached:
    - PK11_GetSymKeyType
    - GetWrapFromKeyType
    linkageType: ''
    returnType: CK_MECHANISM_TYPE
    signature: CK_MECHANISM_TYPE GetWrapMechanism(PK11SymKey *symKey)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 216
    functionName: GetDigit
    functionSourceFile: /src/nss/cmd/symkeyutil/symkeyutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetDigit(char c)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 226
    functionName: ToDigit
    functionSourceFile: /src/nss/cmd/symkeyutil/symkeyutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char ToDigit(unsigned char c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:235,1
    - Dst: ToDigit
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:242,1
    - Dst: ToDigit
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:243,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - outbuf
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 247
    functionName: BufToHex
    functionSourceFile: /src/nss/cmd/symkeyutil/symkeyutil.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - ToDigit
    linkageType: ''
    returnType: char
    signature: 'char *

      BufToHex(SECItem *outbuf)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:252,1
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:256,1
    - Dst: GetDigit
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:263,1
    - Dst: GetDigit
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:264,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:266,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - inString
    - outbuf
    argTypes:
    - char*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 274
    functionName: HexToBuf
    functionSourceFile: /src/nss/cmd/symkeyutil/symkeyutil.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_Free
    - GetDigit
    - strlen
    linkageType: ''
    returnType: int
    signature: int HexToBuf(char *inString, SECItem *outbuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 284
    functionName: printBuf
    functionSourceFile: /src/nss/cmd/symkeyutil/symkeyutil.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printBuf(unsigned char *data, int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetSymKeyNickname
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:289,1
    - Dst: PK11_GetKeyLength
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:290,1
    - Dst: PK11_GetKeyStrength
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:291,1
    - Dst: PK11_GetSymKeyType
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:293,1
    - Dst: PK11_ExtractKeyValue
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:294,1
    - Dst: PK11_GetKeyData
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:296,1
    - Dst: printf
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:298,1
    - Dst: GetStringFromKeyType
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:299,1
    - Dst: printBuf
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:301,1
    - Dst: printf
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:303,1
    - Dst: printf
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:305,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:306,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - symKey
    argTypes:
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 307
    functionName: PrintKey
    functionSourceFile: /src/nss/cmd/symkeyutil/symkeyutil.c
    functionUses: 1
    functionsReached:
    - PK11_GetKeyLength
    - PK11_GetKeyStrength
    - PORT_Free
    - printf
    - PK11_ExtractKeyValue
    - PK11_GetSymKeyType
    - PK11_GetSymKeyNickname
    - PK11_GetKeyData
    - GetStringFromKeyType
    - printBuf
    linkageType: ''
    returnType: void
    signature: void PrintKey(PK11SymKey *symKey)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PK11_Authenticate
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:313,1
    - Dst: PK11_ListFixedKeysInSlot
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:319,1
    - Dst: printf
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:322,1
    - Dst: printf
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:325,1
    - Dst: PK11_GetTokenName
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:325,1
    - Dst: PrintKey
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:329,1
    - Dst: PK11_GetNextSymKey
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:330,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:331,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - slot
    - printLabel
    - pwd
    argTypes:
    - PK11SlotInfo*
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 334
    functionName: ListKeys
    functionSourceFile: /src/nss/cmd/symkeyutil/symkeyutil.c
    functionUses: 1
    functionsReached:
    - PK11_GetTokenName
    - PK11_ListFixedKeysInSlot
    - printf
    - PK11_GetNextSymKey
    - PrintKey
    - PK11_FreeSymKey
    - PK11_Authenticate
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ListKeys(PK11SlotInfo *slot, int *printLabel, void *pwd)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PK11_Authenticate
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:340,1
    - Dst: PK11_FindFixedKey
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:347,1
    - Dst: PK11_ListFixedKeysInSlot
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:350,1
    - Dst: printf
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:354,1
    - Dst: PrintKey
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:355,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - slot
    - name
    - id
    - pwd
    argTypes:
    - PK11SlotInfo*
    - char*
    - SECItem*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 358
    functionName: FindKey
    functionSourceFile: /src/nss/cmd/symkeyutil/symkeyutil.c
    functionUses: 0
    functionsReached:
    - PK11_ListFixedKeysInSlot
    - printf
    - PrintKey
    - PK11_FindFixedKey
    - PK11_Authenticate
    linkageType: ''
    returnType: PK11SymKey
    signature: 'PK11SymKey *

      FindKey(PK11SlotInfo *slot, char *name, SECItem *id, void *pwd)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetNextSymKey
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - symKey
    argTypes:
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 364
    functionName: IsKeyList
    functionSourceFile: /src/nss/cmd/symkeyutil/symkeyutil.c
    functionUses: 0
    functionsReached:
    - PK11_GetNextSymKey
    linkageType: ''
    returnType: PRBool
    signature: PRBool IsKeyList(PK11SymKey *symKey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetNextSymKey
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:372,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - symKey
    argTypes:
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 376
    functionName: FreeKeyList
    functionSourceFile: /src/nss/cmd/symkeyutil/symkeyutil.c
    functionUses: 0
    functionsReached:
    - PK11_GetNextSymKey
    - PK11_FreeSymKey
    linkageType: ''
    returnType: void
    signature: void FreeKeyList(PK11SymKey *symKey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exit
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - progName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 395
    functionName: Usage
    functionSourceFile: /src/nss/cmd/symkeyutil/symkeyutil.c
    functionUses: 74
    functionsReached:
    - exit
    linkageType: ''
    returnType: void
    signature: void Usage(char *progName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exit
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:504,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 64
    argCount: 1
    argNames:
    - progName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 506
    functionName: LongUsage
    functionSourceFile: /src/nss/cmd/symkeyutil/symkeyutil.c
    functionUses: 3
    functionsReached:
    - exit
    linkageType: ''
    returnType: void
    signature: void LongUsage(char *progName)
  - BBCount: 78
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:608,1
    - Dst: SECU_ParseCommandLine
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:611,1
    - Dst: Usage
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:614,1
    - Dst: LongUsage
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:620,1
    - Dst: SECU_ConfigDirectory
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:633,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:637,1
    - Dst: PL_strcmp
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:642,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:645,1
    - Dst: GetKeyMechFromString
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:650,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:652,1
    - Dst: ReadBuf
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:664,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:666,1
    - Dst: HexToBuf
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:676,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:678,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:688,1
    - Dst: HexToBuf
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:695,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:697,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:707,1
    - Dst: ReadBuf
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:714,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:717,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:739,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:740,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:743,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:745,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:749,1
    - Dst: Usage
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:750,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:765,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:778,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:790,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:799,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:808,1
    - Dst: SECU_GetOptionArg
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:814,1
    - Dst: SECU_GetOptionArg
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:815,1
    - Dst: PK11_SetPasswordFunc
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:817,1
    - Dst: PR_Init
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:820,1
    - Dst: NSS_Initialize
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:821,1
    - Dst: SECU_ConfigDirectory
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:821,1
    - Dst: SECU_PrintPRandOSError
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:824,1
    - Dst: PL_strcmp
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:829,1
    - Dst: PK11_GetInternalKeySlot
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:830,1
    - Dst: PK11_FindSlotByName
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:832,1
    - Dst: PK11_TokenKeyGen
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:838,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:841,1
    - Dst: PK11_SetSymKeyNickname
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:845,1
    - Dst: PK11_DeleteTokenSymKey
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:847,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:848,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:849,1
    - Dst: PrintKey
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:855,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:856,1
    - Dst: FindKey
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:859,1
    - Dst: BufToHex
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:862,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:862,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:863,1
    - Dst: PK11_GetTokenName
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:864,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:865,1
    - Dst: PK11_DeleteTokenSymKey
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:869,1
    - Dst: FreeKeyList
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:870,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:872,1
    - Dst: FindKey
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:877,1
    - Dst: BufToHex
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:882,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:883,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:884,1
    - Dst: PK11_GetTokenName
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:885,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:886,1
    - Dst: GetWrapMechanism
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:889,1
    - Dst: BufToHex
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:891,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:892,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:893,1
    - Dst: PK11_GetTokenName
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:894,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:895,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:896,1
    - Dst: PK11_UnwrapSymKeyWithFlagsPerm
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:900,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:902,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:904,1
    - Dst: PK11_SetSymKeyNickname
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:909,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:911,1
    - Dst: PK11_DeleteTokenSymKey
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:913,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:914,1
    - Dst: PrintKey
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:919,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:920,1
    - Dst: FindKey
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:925,1
    - Dst: BufToHex
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:933,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:933,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:934,1
    - Dst: PK11_GetTokenName
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:935,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:936,1
    - Dst: FindKey
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:940,1
    - Dst: BufToHex
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:942,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:943,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:944,1
    - Dst: PK11_GetTokenName
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:945,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:946,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:947,1
    - Dst: GetWrapMechanism
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:951,1
    - Dst: BufToHex
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:953,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:954,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:955,1
    - Dst: PK11_GetTokenName
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:956,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:957,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:958,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:959,1
    - Dst: PK11_WrapSymKey
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:965,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:966,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:967,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:969,1
    - Dst: WriteBuf
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:974,1
    - Dst: PK11_ImportSymKey
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:981,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:984,1
    - Dst: PK11_SetSymKeyNickname
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:988,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:990,1
    - Dst: PK11_DeleteTokenSymKey
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:992,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:993,1
    - Dst: PrintKey
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:998,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:999,1
    - Dst: ListKeys
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:1006,1
    - Dst: PK11_GetAllTokens
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:1009,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:1012,1
    - Dst: PK11_GetFirstSafe
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:1015,1
    - Dst: PK11_GetNextSafe
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:1016,1
    - Dst: ListKeys
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:1017,1
    - Dst: PORT_CheckSuccess
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:1023,1
    - Dst: PK11_FreeSlotListElement
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:1023,1
    - Dst: PK11_FreeSlotList
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:1025,1
    - Dst: FindKey
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:1035,1
    - Dst: BufToHex
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:1039,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:1039,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:1040,1
    - Dst: PK11_GetTokenName
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:1041,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:1042,1
    - Dst: PK11_FindSlotByName
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:1045,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:1047,1
    - Dst: PK11_Authenticate
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:1051,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:1053,1
    - Dst: PK11_MoveSymKey
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:1058,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:1060,1
    - Dst: PK11_GetSymKeyNickname
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:1063,1
    - Dst: PK11_SetSymKeyNickname
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:1065,1
    - Dst: PK11_DeleteTokenSymKey
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:1067,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:1068,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:1069,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:1074,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:1080,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:1081,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:1081,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:1085,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:1089,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:1093,1
    - Dst: NSS_Shutdown
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:1096,1
    - Dst: exit
      Src: /src/nss/cmd/symkeyutil/symkeyutil.c:1097,1
    CyclomaticComplexity: 124
    EdgeCount: 124
    ICount: 356
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1105
      start: 574
    functionDepth: 3
    functionLinenumber: 574
    functionLinenumberEnd: 1105
    functionName: main
    functionSourceFile: /src/nss/cmd/symkeyutil/symkeyutil.c
    functionUses: 4
    functionsReached:
    - PORT_Atoi
    - PK11_DeleteTokenSymKey
    - PK11_GetInternalKeySlot
    - WriteBuf
    - BufToHex
    - PK11_SetSymKeyNickname
    - PK11_GetFirstSafe
    - Usage
    - FreeKeyList
    - LongUsage
    - ListKeys
    - PK11_TokenKeyGen
    - PK11_WrapSymKey
    - strrchr
    - PK11_FreeSlotList
    - PK11_GetAllTokens
    - GetKeyMechFromString
    - PK11_MoveSymKey
    - PK11_UnwrapSymKeyWithFlagsPerm
    - PK11_GetTokenName
    - PR_Init
    - SECU_PrintPRandOSError
    - FindKey
    - PK11_ImportSymKey
    - PL_strdup
    - ReadBuf
    - HexToBuf
    - PrintKey
    - PK11_FreeSlotListElement
    - exit
    - PK11_FindSlotByName
    - PK11_SetPasswordFunc
    - SECU_GetOptionArg
    - SECU_ConfigDirectory
    - PORT_CheckSuccess
    - PK11_Authenticate
    - PK11_FreeSlot
    - PK11_GetNextSafe
    - SECU_Strerror
    - PORT_Free
    - PR_fprintf
    - PORT_GetError
    - SECU_ParseCommandLine
    - NSS_Initialize
    - NSS_Shutdown
    - PK11_GetSymKeyNickname
    - PL_strcmp
    - GetWrapMechanism
    - PORT_Strdup
    - PK11_FreeSymKey
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_fprintf
      Src: /src/nss/cmd/nssdefaults/nssdefaults.c:31,1
    - Dst: exit
      Src: /src/nss/cmd/nssdefaults/nssdefaults.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 35
    functionName: Usage
    functionSourceFile: /src/nss/cmd/nssdefaults/nssdefaults.c
    functionUses: 75
    functionsReached:
    - PR_fprintf
    - exit
    linkageType: ''
    returnType: void
    signature: void Usage()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/nssdefaults/nssdefaults.c:66,1
    - Dst: printf
      Src: /src/nss/cmd/nssdefaults/nssdefaults.c:68,1
    - Dst: printf
      Src: /src/nss/cmd/nssdefaults/nssdefaults.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - label
    - attr
    argTypes:
    - char*
    - CK_ATTRIBUTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 71
    functionName: dump_Raw
    functionSourceFile: /src/nss/cmd/nssdefaults/nssdefaults.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void dump_Raw(char *label, CK_ATTRIBUTE *attr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/nssdefaults/nssdefaults.c:78,1
    - Dst: printf
      Src: /src/nss/cmd/nssdefaults/nssdefaults.c:80,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/cmd/nssdefaults/nssdefaults.c:83,1
    - Dst: printf
      Src: /src/nss/cmd/nssdefaults/nssdefaults.c:84,1
    - Dst: printf
      Src: /src/nss/cmd/nssdefaults/nssdefaults.c:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - dbType
    - phex
    argTypes:
    - NSSDBType
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 89
    functionName: print_DBType
    functionSourceFile: /src/nss/cmd/nssdefaults/nssdefaults.c
    functionUses: 0
    functionsReached:
    - printf
    - PR_ARRAY_SIZE
    linkageType: ''
    returnType: int
    signature: int print_DBType(NSSDBType dbType, PRBool phex)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/nssdefaults/nssdefaults.c:95,1
    - Dst: printf
      Src: /src/nss/cmd/nssdefaults/nssdefaults.c:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - label
    - val
    - phex
    argTypes:
    - char*
    - PRBool
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 100
    functionName: print_Bool
    functionSourceFile: /src/nss/cmd/nssdefaults/nssdefaults.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: int
    signature: int print_Bool(const char *label, PRBool val, PRBool phex)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SECMOD_PolicyStringToOid
      Src: /src/nss/cmd/nssdefaults/nssdefaults.c:105,1
    - Dst: printf
      Src: /src/nss/cmd/nssdefaults/nssdefaults.c:111,1
    - Dst: printf
      Src: /src/nss/cmd/nssdefaults/nssdefaults.c:113,1
    - Dst: NSS_GetAlgorithmPolicy
      Src: /src/nss/cmd/nssdefaults/nssdefaults.c:116,1
    - Dst: SECU_PrintPRandOSError
      Src: /src/nss/cmd/nssdefaults/nssdefaults.c:118,1
    - Dst: printf
      Src: /src/nss/cmd/nssdefaults/nssdefaults.c:122,1
    - Dst: printf
      Src: /src/nss/cmd/nssdefaults/nssdefaults.c:126,1
    - Dst: SECMOD_FlagsToPolicyString
      Src: /src/nss/cmd/nssdefaults/nssdefaults.c:135,1
    - Dst: printf
      Src: /src/nss/cmd/nssdefaults/nssdefaults.c:137,1
    - Dst: printf
      Src: /src/nss/cmd/nssdefaults/nssdefaults.c:142,1
    - Dst: printf
      Src: /src/nss/cmd/nssdefaults/nssdefaults.c:147,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 3
    argNames:
    - policy
    - phex
    - all
    argTypes:
    - char*
    - PRBool
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 149
    functionName: print_Policy
    functionSourceFile: /src/nss/cmd/nssdefaults/nssdefaults.c
    functionUses: 0
    functionsReached:
    - NSS_GetAlgorithmPolicy
    - printf
    - SECU_PrintPRandOSError
    - SECMOD_FlagsToPolicyString
    - SECMOD_PolicyStringToOid
    linkageType: ''
    returnType: int
    signature: int print_Policy(const char *policy, PRBool phex, PRBool all)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SECMOD_PolicyStringToOpt
      Src: /src/nss/cmd/nssdefaults/nssdefaults.c:154,1
    - Dst: printf
      Src: /src/nss/cmd/nssdefaults/nssdefaults.c:158,1
    - Dst: printf
      Src: /src/nss/cmd/nssdefaults/nssdefaults.c:160,1
    - Dst: NSS_OptionGet
      Src: /src/nss/cmd/nssdefaults/nssdefaults.c:164,1
    - Dst: SECU_PrintPRandOSError
      Src: /src/nss/cmd/nssdefaults/nssdefaults.c:166,1
    - Dst: printf
      Src: /src/nss/cmd/nssdefaults/nssdefaults.c:170,1
    - Dst: printf
      Src: /src/nss/cmd/nssdefaults/nssdefaults.c:172,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - optionString
    - phex
    argTypes:
    - char*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 175
    functionName: print_Option
    functionSourceFile: /src/nss/cmd/nssdefaults/nssdefaults.c
    functionUses: 0
    functionsReached:
    - NSS_OptionGet
    - printf
    - SECMOD_PolicyStringToOpt
    - SECU_PrintPRandOSError
    linkageType: ''
    returnType: int
    signature: int print_Option(const char *optionString, PRBool phex)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/cmd/nssdefaults/nssdefaults.c:189,1
    - Dst: _CrtSetDbgFlag
      Src: /src/nss/cmd/nssdefaults/nssdefaults.c:193,1
    - Dst: strrchr
      Src: /src/nss/cmd/nssdefaults/nssdefaults.c:196,1
    - Dst: SECU_ParseCommandLine
      Src: /src/nss/cmd/nssdefaults/nssdefaults.c:199,1
    - Dst: Usage
      Src: /src/nss/cmd/nssdefaults/nssdefaults.c:202,1
    - Dst: PR_Init
      Src: /src/nss/cmd/nssdefaults/nssdefaults.c:215,1
    - Dst: NSS_NoDB_Init
      Src: /src/nss/cmd/nssdefaults/nssdefaults.c:217,1
    - Dst: NSS_Initialize
      Src: /src/nss/cmd/nssdefaults/nssdefaults.c:219,1
    - Dst: SECU_PrintPRandOSError
      Src: /src/nss/cmd/nssdefaults/nssdefaults.c:222,1
    - Dst: _NSSUTIL_EvaluateConfigDir
      Src: /src/nss/cmd/nssdefaults/nssdefaults.c:230,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/nssdefaults/nssdefaults.c:232,1
    - Dst: print_DBType
      Src: /src/nss/cmd/nssdefaults/nssdefaults.c:234,1
    - Dst: print_Bool
      Src: /src/nss/cmd/nssdefaults/nssdefaults.c:237,1
    - Dst: NSS_GetSystemFIPSEnabled
      Src: /src/nss/cmd/nssdefaults/nssdefaults.c:237,1
    - Dst: print_Bool
      Src: /src/nss/cmd/nssdefaults/nssdefaults.c:241,1
    - Dst: PK11_IsFIPS
      Src: /src/nss/cmd/nssdefaults/nssdefaults.c:241,1
    - Dst: print_Policy
      Src: /src/nss/cmd/nssdefaults/nssdefaults.c:244,1
    - Dst: print_Option
      Src: /src/nss/cmd/nssdefaults/nssdefaults.c:248,1
    - Dst: printf
      Src: /src/nss/cmd/nssdefaults/nssdefaults.c:251,1
    - Dst: NSS_Shutdown
      Src: /src/nss/cmd/nssdefaults/nssdefaults.c:255,1
    - Dst: PL_ArenaFinish
      Src: /src/nss/cmd/nssdefaults/nssdefaults.c:258,1
    - Dst: PR_Cleanup
      Src: /src/nss/cmd/nssdefaults/nssdefaults.c:259,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 62
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 261
    functionName: main
    functionSourceFile: /src/nss/cmd/nssdefaults/nssdefaults.c
    functionUses: 4
    functionsReached:
    - printf
    - Usage
    - NSS_GetSystemFIPSEnabled
    - PR_ARRAY_SIZE
    - PK11_IsFIPS
    - _CrtSetDbgFlag
    - print_DBType
    - print_Policy
    - PL_ArenaFinish
    - _NSSUTIL_EvaluateConfigDir
    - strrchr
    - PR_Cleanup
    - print_Option
    - PR_Init
    - SECU_PrintPRandOSError
    - print_Bool
    - NSS_NoDB_Init
    - PORT_Free
    - SECU_ParseCommandLine
    - NSS_Initialize
    - NSS_Shutdown
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/p7env/p7env.c:33,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7env/p7env.c:36,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7env/p7env.c:38,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7env/p7env.c:40,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7env/p7env.c:42,1
    - Dst: exit
      Src: /src/nss/cmd/p7env/p7env.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - progName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 45
    functionName: Usage
    functionSourceFile: /src/nss/cmd/p7env/p7env.c
    functionUses: 76
    functionsReached:
    - fprintf
    - exit
    linkageType: ''
    returnType: void
    signature: void Usage(char *progName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwrite
      Src: /src/nss/cmd/p7env/p7env.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - arg
    - buf
    - len
    argTypes:
    - void*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 60
    functionName: EncryptOut
    functionSourceFile: /src/nss/cmd/p7env/p7env.c
    functionUses: 0
    functionsReached:
    - fwrite
    linkageType: ''
    returnType: void
    signature: void EncryptOut(void *arg, const char *buf, unsigned long len)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: SEC_PKCS7CreateEnvelopedData
      Src: /src/nss/cmd/p7env/p7env.c:76,1
    - Dst: SEC_PKCS7AddRecipient
      Src: /src/nss/cmd/p7env/p7env.c:84,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/p7env/p7env.c:87,1
    - Dst: SEC_PKCS7EncoderStart
      Src: /src/nss/cmd/p7env/p7env.c:93,1
    - Dst: feof
      Src: /src/nss/cmd/p7env/p7env.c:101,1
    - Dst: fread
      Src: /src/nss/cmd/p7env/p7env.c:103,1
    - Dst: ferror
      Src: /src/nss/cmd/p7env/p7env.c:105,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/p7env/p7env.c:106,1
    - Dst: SEC_PKCS7EncoderUpdate
      Src: /src/nss/cmd/p7env/p7env.c:111,1
    - Dst: SEC_PKCS7EncoderFinish
      Src: /src/nss/cmd/p7env/p7env.c:116,1
    - Dst: SEC_PKCS7DestroyContentInfo
      Src: /src/nss/cmd/p7env/p7env.c:119,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 37
    argCount: 4
    argNames:
    - outFile
    - inFile
    - recipients
    - progName
    argTypes:
    - FILE*
    - FILE*
    - struct recipient*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 125
    functionName: EncryptFile
    functionSourceFile: /src/nss/cmd/p7env/p7env.c
    functionUses: 0
    functionsReached:
    - SEC_PKCS7DestroyContentInfo
    - SECU_PrintError
    - SEC_PKCS7EncoderStart
    - SEC_PKCS7EncoderFinish
    - ferror
    - feof
    - PORT_SetError
    - SEC_PKCS7EncoderUpdate
    - SEC_PKCS7AddRecipient
    - fread
    - SEC_PKCS7CreateEnvelopedData
    linkageType: ''
    returnType: int
    signature: "int EncryptFile(FILE *outFile, FILE *inFile, struct recipient *recipients,\n
      \           char *progName)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/nss/cmd/p7env/p7env.c:138,1
    - Dst: PL_CreateOptState
      Src: /src/nss/cmd/p7env/p7env.c:152,1
    - Dst: PL_GetNextOpt
      Src: /src/nss/cmd/p7env/p7env.c:153,1
    - Dst: Usage
      Src: /src/nss/cmd/p7env/p7env.c:156,1
    - Dst: SECU_ConfigDirectory
      Src: /src/nss/cmd/p7env/p7env.c:160,1
    - Dst: fopen
      Src: /src/nss/cmd/p7env/p7env.c:164,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7env/p7env.c:166,1
    - Dst: fopen
      Src: /src/nss/cmd/p7env/p7env.c:173,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7env/p7env.c:175,1
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/p7env/p7env.c:183,1
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/p7env/p7env.c:185,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7env/p7env.c:189,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/p7env/p7env.c:193,1
    - Dst: PL_DestroyOptState
      Src: /src/nss/cmd/p7env/p7env.c:199,1
    - Dst: Usage
      Src: /src/nss/cmd/p7env/p7env.c:202,1
    - Dst: PR_Init
      Src: /src/nss/cmd/p7env/p7env.c:210,1
    - Dst: NSS_Init
      Src: /src/nss/cmd/p7env/p7env.c:211,1
    - Dst: SECU_ConfigDirectory
      Src: /src/nss/cmd/p7env/p7env.c:211,1
    - Dst: SECU_PrintPRandOSError
      Src: /src/nss/cmd/p7env/p7env.c:213,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/cmd/p7env/p7env.c:218,1
    - Dst: CERT_FindCertByNickname
      Src: /src/nss/cmd/p7env/p7env.c:225,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/p7env/p7env.c:227,1
    - Dst: EncryptFile
      Src: /src/nss/cmd/p7env/p7env.c:234,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/p7env/p7env.c:235,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/p7env/p7env.c:242,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/p7env/p7env.c:243,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/p7env/p7env.c:244,1
    - Dst: fclose
      Src: /src/nss/cmd/p7env/p7env.c:249,1
    - Dst: fclose
      Src: /src/nss/cmd/p7env/p7env.c:252,1
    - Dst: NSS_Shutdown
      Src: /src/nss/cmd/p7env/p7env.c:255,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/p7env/p7env.c:256,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 92
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 261
    functionName: main
    functionSourceFile: /src/nss/cmd/p7env/p7env.c
    functionUses: 4
    functionsReached:
    - NSS_Init
    - PL_DestroyOptState
    - fprintf
    - CERT_FindCertByNickname
    - Usage
    - fopen
    - CERT_GetDefaultCertDB
    - strrchr
    - PL_CreateOptState
    - fclose
    - SECU_PrintError
    - PR_Init
    - SECU_PrintPRandOSError
    - CERT_DestroyCertificate
    - SECU_ConfigDirectory
    - PORT_Alloc
    - PL_GetNextOpt
    - PORT_Free
    - EncryptFile
    - NSS_Shutdown
    - PORT_Strdup
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/pp/pp.c:25,1
    - Dst: fprintf
      Src: /src/nss/cmd/pp/pp.c:28,1
    - Dst: fprintf
      Src: /src/nss/cmd/pp/pp.c:29,1
    - Dst: fprintf
      Src: /src/nss/cmd/pp/pp.c:30,1
    - Dst: fprintf
      Src: /src/nss/cmd/pp/pp.c:31,1
    - Dst: fprintf
      Src: /src/nss/cmd/pp/pp.c:32,1
    - Dst: fprintf
      Src: /src/nss/cmd/pp/pp.c:34,1
    - Dst: fprintf
      Src: /src/nss/cmd/pp/pp.c:37,1
    - Dst: fprintf
      Src: /src/nss/cmd/pp/pp.c:38,1
    - Dst: fprintf
      Src: /src/nss/cmd/pp/pp.c:40,1
    - Dst: fprintf
      Src: /src/nss/cmd/pp/pp.c:42,1
    - Dst: fprintf
      Src: /src/nss/cmd/pp/pp.c:44,1
    - Dst: fprintf
      Src: /src/nss/cmd/pp/pp.c:46,1
    - Dst: exit
      Src: /src/nss/cmd/pp/pp.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - progName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 49
    functionName: Usage
    functionSourceFile: /src/nss/cmd/pp/pp.c
    functionUses: 77
    functionsReached:
    - fprintf
    - exit
    linkageType: ''
    returnType: void
    signature: void Usage(char *progName)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/nss/cmd/pp/pp.c:63,1
    - Dst: PL_CreateOptState
      Src: /src/nss/cmd/pp/pp.c:70,1
    - Dst: PL_GetNextOpt
      Src: /src/nss/cmd/pp/pp.c:71,1
    - Dst: Usage
      Src: /src/nss/cmd/pp/pp.c:74,1
    - Dst: PR_Open
      Src: /src/nss/cmd/pp/pp.c:82,1
    - Dst: fprintf
      Src: /src/nss/cmd/pp/pp.c:84,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/pp/pp.c:86,1
    - Dst: PL_DestroyOptState
      Src: /src/nss/cmd/pp/pp.c:87,1
    - Dst: fopen
      Src: /src/nss/cmd/pp/pp.c:93,1
    - Dst: fprintf
      Src: /src/nss/cmd/pp/pp.c:95,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/pp/pp.c:97,1
    - Dst: PL_DestroyOptState
      Src: /src/nss/cmd/pp/pp.c:98,1
    - Dst: strdup
      Src: /src/nss/cmd/pp/pp.c:104,1
    - Dst: SECU_EnableUtf8Display
      Src: /src/nss/cmd/pp/pp.c:108,1
    - Dst: PL_DestroyOptState
      Src: /src/nss/cmd/pp/pp.c:116,1
    - Dst: Usage
      Src: /src/nss/cmd/pp/pp.c:118,1
    - Dst: PR_Init
      Src: /src/nss/cmd/pp/pp.c:125,1
    - Dst: NSS_NoDB_Init
      Src: /src/nss/cmd/pp/pp.c:126,1
    - Dst: fprintf
      Src: /src/nss/cmd/pp/pp.c:128,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/pp/pp.c:129,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/pp/pp.c:129,1
    - Dst: exit
      Src: /src/nss/cmd/pp/pp.c:130,1
    - Dst: SECU_RegisterDynamicOids
      Src: /src/nss/cmd/pp/pp.c:132,1
    - Dst: SECU_ReadDERFromFile
      Src: /src/nss/cmd/pp/pp.c:134,1
    - Dst: fprintf
      Src: /src/nss/cmd/pp/pp.c:136,1
    - Dst: exit
      Src: /src/nss/cmd/pp/pp.c:137,1
    - Dst: SECU_EnableWrap
      Src: /src/nss/cmd/pp/pp.c:144,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/pp/pp.c:147,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/pp/pp.c:148,1
    - Dst: SECU_PrintSignedData
      Src: /src/nss/cmd/pp/pp.c:149,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/pp/pp.c:151,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/pp/pp.c:152,1
    - Dst: SECU_PrintSignedContent
      Src: /src/nss/cmd/pp/pp.c:153,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/pp/pp.c:155,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/pp/pp.c:156,1
    - Dst: SECU_PrintSignedData
      Src: /src/nss/cmd/pp/pp.c:157,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/pp/pp.c:159,1
    - Dst: SECU_PrintSignedData
      Src: /src/nss/cmd/pp/pp.c:160,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/pp/pp.c:161,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/pp/pp.c:162,1
    - Dst: SECU_PrintPrivateKey
      Src: /src/nss/cmd/pp/pp.c:163,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/pp/pp.c:164,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/pp/pp.c:165,1
    - Dst: SECU_PrintSubjectPublicKeyInfo
      Src: /src/nss/cmd/pp/pp.c:166,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/pp/pp.c:167,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/pp/pp.c:168,1
    - Dst: SECU_PrintPKCS7ContentInfo
      Src: /src/nss/cmd/pp/pp.c:169,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/pp/pp.c:171,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/pp/pp.c:172,1
    - Dst: SECU_PrintDERName
      Src: /src/nss/cmd/pp/pp.c:173,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/pp/pp.c:174,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/pp/pp.c:175,1
    - Dst: SECU_PrintPKCS12
      Src: /src/nss/cmd/pp/pp.c:176,1
    - Dst: fprintf
      Src: /src/nss/cmd/pp/pp.c:178,1
    - Dst: SECU_PrintAny
      Src: /src/nss/cmd/pp/pp.c:180,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/pp/pp.c:184,1
    - Dst: PR_Close
      Src: /src/nss/cmd/pp/pp.c:187,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/pp/pp.c:188,1
    - Dst: fprintf
      Src: /src/nss/cmd/pp/pp.c:190,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/pp/pp.c:191,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/pp/pp.c:191,1
    - Dst: NSS_Shutdown
      Src: /src/nss/cmd/pp/pp.c:193,1
    - Dst: fprintf
      Src: /src/nss/cmd/pp/pp.c:194,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/pp/pp.c:195,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/pp/pp.c:195,1
    - Dst: PR_Cleanup
      Src: /src/nss/cmd/pp/pp.c:198,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 111
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 200
    functionName: main
    functionSourceFile: /src/nss/cmd/pp/pp.c
    functionUses: 4
    functionsReached:
    - PL_DestroyOptState
    - fprintf
    - SECU_PrintPKCS12
    - Usage
    - SECU_PrintDERName
    - SECU_PrintAny
    - SECU_PrintSignedData
    - fopen
    - strrchr
    - PL_CreateOptState
    - strdup
    - PR_Cleanup
    - SECU_PrintPrivateKey
    - SECU_PrintSubjectPublicKeyInfo
    - PR_Init
    - exit
    - PR_Open
    - PR_Close
    - NSS_NoDB_Init
    - SECU_ReadDERFromFile
    - SECU_Strerror
    - PL_GetNextOpt
    - PORT_Free
    - PORT_GetError
    - NSS_Shutdown
    - SECU_PrintPKCS7ContentInfo
    - SECU_EnableUtf8Display
    - SECU_RegisterDynamicOids
    - SECU_EnableWrap
    - SECU_PrintSignedContent
    - PORT_Strcmp
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/dbtest/dbtest.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - slot
    - retry
    - arg
    argTypes:
    - PK11SlotInfo*
    - PRBool
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 58
    functionName: getPassword
    functionSourceFile: /src/nss/cmd/dbtest/dbtest.c
    functionUses: 0
    functionsReached:
    - PORT_Strdup
    linkageType: ''
    returnType: char
    signature: 'char *

      getPassword(PK11SlotInfo *slot, PRBool retry, void *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/dbtest/dbtest.c:63,1
    - Dst: printf
      Src: /src/nss/cmd/dbtest/dbtest.c:65,1
    - Dst: printf
      Src: /src/nss/cmd/dbtest/dbtest.c:66,1
    - Dst: printf
      Src: /src/nss/cmd/dbtest/dbtest.c:67,1
    - Dst: printf
      Src: /src/nss/cmd/dbtest/dbtest.c:68,1
    - Dst: printf
      Src: /src/nss/cmd/dbtest/dbtest.c:69,1
    - Dst: printf
      Src: /src/nss/cmd/dbtest/dbtest.c:70,1
    - Dst: exit
      Src: /src/nss/cmd/dbtest/dbtest.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 73
    functionName: Usage
    functionSourceFile: /src/nss/cmd/dbtest/dbtest.c
    functionUses: 78
    functionsReached:
    - printf
    - exit
    linkageType: ''
    returnType: void
    signature: void Usage()
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/nss/cmd/dbtest/dbtest.c:88,1
    - Dst: strrchr
      Src: /src/nss/cmd/dbtest/dbtest.c:90,1
    - Dst: PL_CreateOptState
      Src: /src/nss/cmd/dbtest/dbtest.c:93,1
    - Dst: PL_GetNextOpt
      Src: /src/nss/cmd/dbtest/dbtest.c:95,1
    - Dst: Usage
      Src: /src/nss/cmd/dbtest/dbtest.c:99,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/dbtest/dbtest.c:115,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/dbtest/dbtest.c:119,1
    - Dst: PL_DestroyOptState
      Src: /src/nss/cmd/dbtest/dbtest.c:123,1
    - Dst: Usage
      Src: /src/nss/cmd/dbtest/dbtest.c:125,1
    - Dst: SECU_ConfigDirectory
      Src: /src/nss/cmd/dbtest/dbtest.c:129,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/dbtest/dbtest.c:130,1
    - Dst: SECU_ConfigDirectory
      Src: /src/nss/cmd/dbtest/dbtest.c:133,1
    - Dst: SECU_DefaultSSLDir
      Src: /src/nss/cmd/dbtest/dbtest.c:133,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbtest/dbtest.c:135,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbtest/dbtest.c:138,1
    - Dst: PR_Init
      Src: /src/nss/cmd/dbtest/dbtest.c:143,1
    - Dst: PR_Access
      Src: /src/nss/cmd/dbtest/dbtest.c:146,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbtest/dbtest.c:147,1
    - Dst: PR_Access
      Src: /src/nss/cmd/dbtest/dbtest.c:148,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbtest/dbtest.c:149,1
    - Dst: PR_Access
      Src: /src/nss/cmd/dbtest/dbtest.c:152,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbtest/dbtest.c:153,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/dbtest/dbtest.c:157,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbtest/dbtest.c:158,1
    - Dst: PR_Access
      Src: /src/nss/cmd/dbtest/dbtest.c:159,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbtest/dbtest.c:160,1
    - Dst: PR_Access
      Src: /src/nss/cmd/dbtest/dbtest.c:162,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbtest/dbtest.c:163,1
    - Dst: PR_Access
      Src: /src/nss/cmd/dbtest/dbtest.c:166,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbtest/dbtest.c:167,1
    - Dst: PR_smprintf_free
      Src: /src/nss/cmd/dbtest/dbtest.c:170,1
    - Dst: NSS_Initialize
      Src: /src/nss/cmd/dbtest/dbtest.c:175,1
    - Dst: SECU_ConfigDirectory
      Src: /src/nss/cmd/dbtest/dbtest.c:175,1
    - Dst: SECU_PrintPRandOSError
      Src: /src/nss/cmd/dbtest/dbtest.c:178,1
    - Dst: PK11_GetInternalKeySlot
      Src: /src/nss/cmd/dbtest/dbtest.c:183,1
    - Dst: PK11_SetPasswordFunc
      Src: /src/nss/cmd/dbtest/dbtest.c:193,1
    - Dst: PK11_InitPin
      Src: /src/nss/cmd/dbtest/dbtest.c:194,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbtest/dbtest.c:196,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/dbtest/dbtest.c:197,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/dbtest/dbtest.c:197,1
    - Dst: PK11_IsLoggedIn
      Src: /src/nss/cmd/dbtest/dbtest.c:200,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbtest/dbtest.c:201,1
    - Dst: PK11_TokenKeyGen
      Src: /src/nss/cmd/dbtest/dbtest.c:205,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbtest/dbtest.c:209,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/dbtest/dbtest.c:210,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/dbtest/dbtest.c:210,1
    - Dst: exit
      Src: /src/nss/cmd/dbtest/dbtest.c:211,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/cmd/dbtest/dbtest.c:213,1
    - Dst: PK11_Logout
      Src: /src/nss/cmd/dbtest/dbtest.c:214,1
    - Dst: PK11_Authenticate
      Src: /src/nss/cmd/dbtest/dbtest.c:216,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbtest/dbtest.c:219,1
    - Dst: PK11_FindFixedKey
      Src: /src/nss/cmd/dbtest/dbtest.c:222,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbtest/dbtest.c:225,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/dbtest/dbtest.c:226,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/dbtest/dbtest.c:226,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/cmd/dbtest/dbtest.c:229,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/cmd/dbtest/dbtest.c:231,1
    - Dst: NSS_Shutdown
      Src: /src/nss/cmd/dbtest/dbtest.c:234,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbtest/dbtest.c:235,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/dbtest/dbtest.c:236,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/dbtest/dbtest.c:236,1
    - Dst: exit
      Src: /src/nss/cmd/dbtest/dbtest.c:237,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 120
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 243
    functionName: main
    functionSourceFile: /src/nss/cmd/dbtest/dbtest.c
    functionUses: 4
    functionsReached:
    - PK11_GetInternalKeySlot
    - PK11_Logout
    - PK11_InitPin
    - PL_DestroyOptState
    - Usage
    - PK11_IsLoggedIn
    - PR_smprintf_free
    - PR_smprintf
    - PK11_TokenKeyGen
    - PK11_FindFixedKey
    - strrchr
    - PL_CreateOptState
    - PR_Access
    - PR_Init
    - SECU_PrintPRandOSError
    - exit
    - PK11_SetPasswordFunc
    - SECU_ConfigDirectory
    - PK11_FreeSlot
    - PK11_Authenticate
    - SECU_Strerror
    - PL_GetNextOpt
    - PORT_Free
    - SECU_DefaultSSLDir
    - PR_fprintf
    - PORT_GetError
    - NSS_Initialize
    - NSS_Shutdown
    - PORT_Strdup
    - PK11_FreeSymKey
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/lib/pppolicy.c:69,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/cmd/lib/pppolicy.c:76,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/cmd/lib/pppolicy.c:85,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/cmd/lib/pppolicy.c:91,1
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/cmd/lib/pppolicy.c:103,1
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/cmd/lib/pppolicy.c:108,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/lib/pppolicy.c:118,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 1
    argNames:
    - extnValue
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 122
    functionName: secu_DecodeCertificatePoliciesExtension
    functionSourceFile: /src/nss/cmd/lib/pppolicy.c
    functionUses: 0
    functionsReached:
    - PORT_NewArena
    - PORT_FreeArena
    - SECITEM_CopyItem
    - SECOID_FindOIDTag
    - PORT_ArenaZNew
    - SEC_QuickDERDecodeItem
    linkageType: ''
    returnType: CERTCertificatePolicies
    signature: 'CERTCertificatePolicies *

      secu_DecodeCertificatePoliciesExtension(SECItem *extnValue)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZAlloc
      Src: /src/nss/cmd/lib/pppolicy.c:129,1
    - Dst: PORT_Memcpy
      Src: /src/nss/cmd/lib/pppolicy.c:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - item
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 135
    functionName: itemToString
    functionSourceFile: /src/nss/cmd/lib/pppolicy.c
    functionUses: 0
    functionsReached:
    - PORT_ZAlloc
    - PORT_Memcpy
    linkageType: ''
    returnType: char
    signature: 'char *

      itemToString(SECItem *item)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CERT_DecodeUserNotice
      Src: /src/nss/cmd/lib/pppolicy.c:143,1
    - Dst: itemToString
      Src: /src/nss/cmd/lib/pppolicy.c:147,1
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/lib/pppolicy.c:151,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/lib/pppolicy.c:154,1
    - Dst: SECU_PrintString
      Src: /src/nss/cmd/lib/pppolicy.c:157,1
    - Dst: CERT_DestroyUserNotice
      Src: /src/nss/cmd/lib/pppolicy.c:160,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - out
    - qualifierValue
    - msg
    - level
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 164
    functionName: secu_PrintUserNoticeQualifier
    functionSourceFile: /src/nss/cmd/lib/pppolicy.c
    functionUses: 0
    functionsReached:
    - SECU_PrintString
    - itemToString
    - CERT_DestroyUserNotice
    - PORT_Free
    - SECU_PrintInteger
    - CERT_DecodeUserNotice
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus secu_PrintUserNoticeQualifier(FILE *out, SECItem *qualifierValue,\n
      \                             char *msg, int level)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SECU_PrintObjectID
      Src: /src/nss/cmd/lib/pppolicy.c:173,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/pppolicy.c:176,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/pppolicy.c:177,1
    - Dst: secu_PrintUserNoticeQualifier
      Src: /src/nss/cmd/lib/pppolicy.c:181,1
    - Dst: SECU_PrintAny
      Src: /src/nss/cmd/lib/pppolicy.c:187,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - out
    - policyQualifier
    - msg
    - level
    argTypes:
    - FILE*
    - CERTPolicyQualifier*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 166
    functionDepth: 2
    functionLinenumber: 166
    functionLinenumberEnd: 191
    functionName: secu_PrintPolicyQualifier
    functionSourceFile: /src/nss/cmd/lib/pppolicy.c
    functionUses: 0
    functionsReached:
    - SECU_PrintAny
    - secu_PrintUserNoticeQualifier
    - SECU_PrintObjectID
    - fprintf
    - SECU_Indent
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus secu_PrintPolicyQualifier(FILE *out, CERTPolicyQualifier
      *policyQualifier,\n                          char *msg, int level)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECU_PrintObjectID
      Src: /src/nss/cmd/lib/pppolicy.c:199,1
    - Dst: secu_PrintPolicyQualifier
      Src: /src/nss/cmd/lib/pppolicy.c:202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - out
    - policyInfo
    - msg
    - level
    argTypes:
    - FILE*
    - CERTPolicyInfo*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 193
    functionDepth: 3
    functionLinenumber: 193
    functionLinenumberEnd: 206
    functionName: secu_PrintPolicyInfo
    functionSourceFile: /src/nss/cmd/lib/pppolicy.c
    functionUses: 0
    functionsReached:
    - SECU_PrintObjectID
    - secu_PrintPolicyQualifier
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus secu_PrintPolicyInfo(FILE *out, CERTPolicyInfo *policyInfo,
      char *msg, int level)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/pppolicy.c:215,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/pppolicy.c:216,1
    - Dst: secu_DecodeCertificatePoliciesExtension
      Src: /src/nss/cmd/lib/pppolicy.c:219,1
    - Dst: SECU_PrintAny
      Src: /src/nss/cmd/lib/pppolicy.c:221,1
    - Dst: secu_PrintPolicyInfo
      Src: /src/nss/cmd/lib/pppolicy.c:227,1
    - Dst: CERT_DestroyCertificatePoliciesExtension
      Src: /src/nss/cmd/lib/pppolicy.c:231,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - out
    - value
    - msg
    - level
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 208
    functionDepth: 4
    functionLinenumber: 208
    functionLinenumberEnd: 232
    functionName: SECU_PrintPolicy
    functionSourceFile: /src/nss/cmd/lib/pppolicy.c
    functionUses: 0
    functionsReached:
    - SECU_PrintAny
    - secu_PrintPolicyInfo
    - secu_DecodeCertificatePoliciesExtension
    - fprintf
    - SECU_Indent
    - CERT_DestroyCertificatePoliciesExtension
    linkageType: ''
    returnType: void
    signature: void SECU_PrintPolicy(FILE *out, SECItem *value, char *msg, int level)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/lib/pppolicy.c:239,1
    - Dst: CERT_DecodePrivKeyUsagePeriodExtension
      Src: /src/nss/cmd/lib/pppolicy.c:244,1
    - Dst: SECU_PrintGeneralizedTime
      Src: /src/nss/cmd/lib/pppolicy.c:249,1
    - Dst: SECU_PrintGeneralizedTime
      Src: /src/nss/cmd/lib/pppolicy.c:252,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/pppolicy.c:255,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/pppolicy.c:256,1
    - Dst: SECU_PrintAny
      Src: /src/nss/cmd/lib/pppolicy.c:258,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/lib/pppolicy.c:261,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 4
    argNames:
    - out
    - value
    - msg
    - level
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 263
    functionName: SECU_PrintPrivKeyUsagePeriodExtension
    functionSourceFile: /src/nss/cmd/lib/pppolicy.c
    functionUses: 0
    functionsReached:
    - SECU_PrintAny
    - PORT_NewArena
    - PORT_FreeArena
    - CERT_DecodePrivKeyUsagePeriodExtension
    - fprintf
    - SECU_Indent
    - SECU_PrintGeneralizedTime
    linkageType: ''
    returnType: void
    signature: "void SECU_PrintPrivKeyUsagePeriodExtension(FILE *out, SECItem *value,\n
      \                                     char *msg, int level)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - i
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 6
    functionDepth: 0
    functionLinenumber: 6
    functionLinenumberEnd: 20
    functionName: ffs
    functionSourceFile: /src/nss/cmd/lib/ffs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ffs(unsigned int i)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/derprint.c:39,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/derprint.c:45,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - data
    - nb
    argTypes:
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 50
    functionName: getInteger256
    functionSourceFile: /src/nss/cmd/lib/derprint.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: int
    signature: int getInteger256(const unsigned char *data, unsigned int nb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/lib/derprint.c:58,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/derprint.c:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - out
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 66
    functionName: prettyNewline
    functionSourceFile: /src/nss/cmd/lib/derprint.c
    functionUses: 0
    functionsReached:
    - fprintf
    - PORT_SetError
    linkageType: ''
    returnType: int
    signature: int prettyNewline(FILE *out)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/lib/derprint.c:77,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/derprint.c:79,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - out
    - level
    argTypes:
    - FILE*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 86
    functionName: prettyIndent
    functionSourceFile: /src/nss/cmd/lib/derprint.c
    functionUses: 0
    functionsReached:
    - fprintf
    - PORT_SetError
    linkageType: ''
    returnType: int
    signature: int prettyIndent(FILE *out, unsigned level)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: prettyIndent
      Src: /src/nss/cmd/lib/derprint.c:93,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/derprint.c:97,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/derprint.c:99,1
    - Dst: prettyNewline
      Src: /src/nss/cmd/lib/derprint.c:105,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - out
    - item
    - level
    argTypes:
    - FILE*
    - unsigned char
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 109
    functionName: prettyPrintByte
    functionSourceFile: /src/nss/cmd/lib/derprint.c
    functionUses: 0
    functionsReached:
    - fprintf
    - PORT_SetError
    - prettyIndent
    - prettyNewline
    linkageType: ''
    returnType: int
    signature: int prettyPrintByte(FILE *out, unsigned char item, unsigned int level)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: prettyPrintByte
      Src: /src/nss/cmd/lib/derprint.c:119,1
    - Dst: prettyNewline
      Src: /src/nss/cmd/lib/derprint.c:123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - out
    - data
    - len
    - lv
    argTypes:
    - FILE*
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 124
    functionName: prettyPrintLeaf
    functionSourceFile: /src/nss/cmd/lib/derprint.c
    functionUses: 0
    functionsReached:
    - prettyNewline
    - prettyPrintByte
    linkageType: ''
    returnType: int
    signature: "int prettyPrintLeaf(FILE *out, const unsigned char *data,\n                unsigned
      int len, unsigned int lv)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: prettyNewline
      Src: /src/nss/cmd/lib/derprint.c:137,1
    - Dst: prettyIndent
      Src: /src/nss/cmd/lib/derprint.c:141,1
    - Dst: memcpy
      Src: /src/nss/cmd/lib/derprint.c:145,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/derprint.c:148,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/derprint.c:150,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - out
    - str
    - len
    - level
    argTypes:
    - FILE*
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 156
    functionName: prettyPrintStringStart
    functionSourceFile: /src/nss/cmd/lib/derprint.c
    functionUses: 0
    functionsReached:
    - memcpy
    - prettyNewline
    - fprintf
    - PORT_SetError
    - prettyIndent
    linkageType: ''
    returnType: int
    signature: "int prettyPrintStringStart(FILE *out, const unsigned char *str,\n
      \                      unsigned int len, unsigned int level)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: prettyPrintStringStart
      Src: /src/nss/cmd/lib/derprint.c:164,1
    - Dst: prettyNewline
      Src: /src/nss/cmd/lib/derprint.c:168,1
    - Dst: prettyPrintLeaf
      Src: /src/nss/cmd/lib/derprint.c:173,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 5
    argNames:
    - out
    - str
    - len
    - level
    - raw
    argTypes:
    - FILE*
    - unsigned char*
    - unsigned int
    - unsigned int
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 158
    functionDepth: 3
    functionLinenumber: 158
    functionLinenumberEnd: 179
    functionName: prettyPrintString
    functionSourceFile: /src/nss/cmd/lib/derprint.c
    functionUses: 0
    functionsReached:
    - prettyPrintLeaf
    - prettyPrintStringStart
    - prettyNewline
    linkageType: ''
    returnType: int
    signature: "int prettyPrintString(FILE *out, const unsigned char *str,\n                  unsigned
      int len, unsigned int level, PRBool raw)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: prettyPrintStringStart
      Src: /src/nss/cmd/lib/derprint.c:188,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/derprint.c:195,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/derprint.c:197,1
    - Dst: SECU_PrintUTCTime
      Src: /src/nss/cmd/lib/derprint.c:202,1
    - Dst: SECU_PrintGeneralizedTime
      Src: /src/nss/cmd/lib/derprint.c:204,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/derprint.c:206,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/derprint.c:208,1
    - Dst: prettyNewline
      Src: /src/nss/cmd/lib/derprint.c:212,1
    - Dst: prettyPrintLeaf
      Src: /src/nss/cmd/lib/derprint.c:217,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 6
    argNames:
    - out
    - str
    - len
    - level
    - raw
    - utc
    argTypes:
    - FILE*
    - unsigned char*
    - unsigned int
    - unsigned int
    - PRBool
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 181
    functionDepth: 3
    functionLinenumber: 181
    functionLinenumberEnd: 223
    functionName: prettyPrintTime
    functionSourceFile: /src/nss/cmd/lib/derprint.c
    functionUses: 0
    functionsReached:
    - prettyPrintLeaf
    - prettyNewline
    - fprintf
    - PORT_SetError
    - prettyPrintStringStart
    - SECU_PrintUTCTime
    - SECU_PrintGeneralizedTime
    linkageType: ''
    returnType: int
    signature: "int prettyPrintTime(FILE *out, const unsigned char *str,\n                unsigned
      int len, unsigned int level, PRBool raw, PRBool utc)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: prettyIndent
      Src: /src/nss/cmd/lib/derprint.c:239,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/derprint.c:244,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/derprint.c:250,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/derprint.c:252,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/derprint.c:264,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/derprint.c:266,1
    - Dst: SECOID_FindOID
      Src: /src/nss/cmd/lib/derprint.c:277,1
    - Dst: PORT_Strlen
      Src: /src/nss/cmd/lib/derprint.c:279,1
    - Dst: prettyNewline
      Src: /src/nss/cmd/lib/derprint.c:281,1
    - Dst: prettyIndent
      Src: /src/nss/cmd/lib/derprint.c:286,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/derprint.c:290,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/derprint.c:292,1
    - Dst: prettyNewline
      Src: /src/nss/cmd/lib/derprint.c:297,1
    - Dst: prettyPrintLeaf
      Src: /src/nss/cmd/lib/derprint.c:302,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 57
    argCount: 5
    argNames:
    - out
    - data
    - len
    - level
    - raw
    argTypes:
    - FILE*
    - unsigned char*
    - unsigned int
    - unsigned int
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 225
    functionDepth: 3
    functionLinenumber: 225
    functionLinenumberEnd: 308
    functionName: prettyPrintObjectID
    functionSourceFile: /src/nss/cmd/lib/derprint.c
    functionUses: 0
    functionsReached:
    - prettyPrintLeaf
    - prettyNewline
    - SECOID_FindOID
    - PORT_Strlen
    - fprintf
    - PORT_SetError
    - prettyIndent
    linkageType: ''
    returnType: int
    signature: "int prettyPrintObjectID(FILE *out, const unsigned char *data,\n                    unsigned
      int len, unsigned int level, PRBool raw)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/derprint.c:353,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/derprint.c:364,1
    - Dst: prettyPrintByte
      Src: /src/nss/cmd/lib/derprint.c:369,1
    - Dst: prettyIndent
      Src: /src/nss/cmd/lib/derprint.c:371,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/derprint.c:377,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/derprint.c:379,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/derprint.c:386,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/derprint.c:389,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/derprint.c:392,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/derprint.c:395,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/derprint.c:400,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 6
    argNames:
    - out
    - src
    - end
    - codep
    - level
    - raw
    argTypes:
    - FILE*
    - unsigned char*
    - unsigned char*
    - unsigned char*
    - unsigned int
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 345
    functionDepth: 2
    functionLinenumber: 345
    functionLinenumberEnd: 407
    functionName: prettyPrintTag
    functionSourceFile: /src/nss/cmd/lib/derprint.c
    functionUses: 0
    functionsReached:
    - fprintf
    - PORT_SetError
    - prettyIndent
    - prettyPrintByte
    linkageType: ''
    returnType: int
    signature: "int prettyPrintTag(FILE *out, const unsigned char *src, const unsigned
      char *end,\n               unsigned char *codep, unsigned int level, PRBool
      raw)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/derprint.c:418,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/derprint.c:422,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/derprint.c:424,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/derprint.c:436,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/derprint.c:443,1
    - Dst: getInteger256
      Src: /src/nss/cmd/lib/derprint.c:446,1
    - Dst: prettyPrintByte
      Src: /src/nss/cmd/lib/derprint.c:458,1
    - Dst: prettyPrintByte
      Src: /src/nss/cmd/lib/derprint.c:462,1
    - Dst: prettyPrintByte
      Src: /src/nss/cmd/lib/derprint.c:470,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/derprint.c:476,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/derprint.c:478,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/derprint.c:480,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 59
    argCount: 7
    argNames:
    - out
    - data
    - end
    - lenp
    - indefinitep
    - lv
    - raw
    argTypes:
    - FILE*
    - unsigned char*
    - unsigned char*
    - int*
    - PRBool*
    - unsigned int
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 409
    functionDepth: 2
    functionLinenumber: 409
    functionLinenumberEnd: 486
    functionName: prettyPrintLength
    functionSourceFile: /src/nss/cmd/lib/derprint.c
    functionUses: 0
    functionsReached:
    - fprintf
    - PORT_SetError
    - prettyPrintByte
    - getInteger256
    linkageType: ''
    returnType: int
    signature: "int prettyPrintLength(FILE *out, const unsigned char *data, const
      unsigned char *end,\n                  int *lenp, PRBool *indefinitep, unsigned
      int lv, PRBool raw)"
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: prettyPrintTag
      Src: /src/nss/cmd/lib/derprint.c:501,1
    - Dst: prettyPrintLength
      Src: /src/nss/cmd/lib/derprint.c:506,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/derprint.c:515,1
    - Dst: prettyPrintItem
      Src: /src/nss/cmd/lib/derprint.c:521,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/derprint.c:530,1
    - Dst: prettyPrintString
      Src: /src/nss/cmd/lib/derprint.c:539,1
    - Dst: prettyPrintTime
      Src: /src/nss/cmd/lib/derprint.c:544,1
    - Dst: prettyPrintTime
      Src: /src/nss/cmd/lib/derprint.c:549,1
    - Dst: prettyPrintObjectID
      Src: /src/nss/cmd/lib/derprint.c:554,1
    - Dst: prettyPrintLeaf
      Src: /src/nss/cmd/lib/derprint.c:569,1
    - Dst: prettyNewline
      Src: /src/nss/cmd/lib/derprint.c:578,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 75
    argCount: 5
    argNames:
    - out
    - data
    - end
    - lv
    - raw
    argTypes:
    - FILE*
    - unsigned char*
    - unsigned char*
    - unsigned int
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 488
    functionDepth: 4
    functionLinenumber: 488
    functionLinenumberEnd: 583
    functionName: prettyPrintItem
    functionSourceFile: /src/nss/cmd/lib/derprint.c
    functionUses: 1
    functionsReached:
    - prettyPrintItem
    - prettyPrintTime
    - prettyPrintLeaf
    - prettyPrintString
    - prettyNewline
    - prettyPrintLength
    - PORT_SetError
    - prettyPrintTag
    - prettyPrintObjectID
    linkageType: ''
    returnType: int
    signature: "int prettyPrintItem(FILE *out, const unsigned char *data, const unsigned
      char *end,\n                unsigned int lv, PRBool raw)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: prettyPrintItem
      Src: /src/nss/cmd/lib/derprint.c:592,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - out
    - it
    - raw
    argTypes:
    - FILE*
    - SECItem*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 585
    functionDepth: 5
    functionLinenumber: 585
    functionLinenumberEnd: 596
    functionName: DER_PrettyPrint
    functionSourceFile: /src/nss/cmd/lib/derprint.c
    functionUses: 1
    functionsReached:
    - prettyPrintItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus DER_PrettyPrint(FILE *out, const SECItem *it, PRBool raw)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: mkEntry
    functionSourceFile: /src/nss/cmd/lib/pk11table.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mkEntry(x, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - t
    - ','
    - t2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 61
    functionName: mkEntry2
    functionSourceFile: /src/nss/cmd/lib/pk11table.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mkEntry2(x, t, t2)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - value
    - type
    argTypes:
    - CK_ULONG
    - ConstType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1515
      start: 1500
    functionDepth: 0
    functionLinenumber: 1500
    functionLinenumberEnd: 1515
    functionName: getName
    functionSourceFile: /src/nss/cmd/lib/pk11table.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      getName(CK_ULONG value, ConstType type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getName
      Src: /src/nss/cmd/lib/pk11table.c:1520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - CK_ATTRIBUTE_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1521
      start: 1517
    functionDepth: 1
    functionLinenumber: 1517
    functionLinenumberEnd: 1521
    functionName: getNameFromAttribute
    functionSourceFile: /src/nss/cmd/lib/pk11table.c
    functionUses: 2
    functionsReached:
    - getName
    linkageType: ''
    returnType: char
    signature: 'char *

      getNameFromAttribute(CK_ATTRIBUTE_TYPE type)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - type
    argTypes:
    - ConstType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1534
      start: 1523
    functionDepth: 0
    functionLinenumber: 1523
    functionLinenumberEnd: 1534
    functionName: totalKnownType
    functionSourceFile: /src/nss/cmd/lib/pk11table.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int totalKnownType(ConstType type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mmm
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 374
    functionName: DECL_EXTEN_EXT_VALUE_ENCODER
    functionSourceFile: /src/nss/cmd/lib/secutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECL_EXTEN_EXT_VALUE_ENCODER(mmm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 12
    functionName: OI
    functionSourceFile: /src/nss/cmd/lib/moreoids.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OI(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - oid
    - ','
    - tag
    - ','
    - desc
    - ','
    - mech
    - ','
    - ext
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 17
    functionName: OD
    functionSourceFile: /src/nss/cmd/lib/moreoids.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OD(oid, tag, desc, mech, ext)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - oid
    - ','
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 22
    functionName: ODN
    functionSourceFile: /src/nss/cmd/lib/moreoids.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ODN(oid, desc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_AddEntry
      Src: /src/nss/cmd/lib/moreoids.c:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - data
    - src
    argTypes:
    - SECOidTag*
    - SECOidData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 147
    functionName: SECU_cert_fetchOID
    functionSourceFile: /src/nss/cmd/lib/moreoids.c
    functionUses: 0
    functionsReached:
    - SECOID_AddEntry
    linkageType: ''
    returnType: void
    signature: void SECU_cert_fetchOID(SECOidTag *data, const SECOidData *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_AddEntry
      Src: /src/nss/cmd/lib/moreoids.c:156,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/moreoids.c:160,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/moreoids.c:162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 167
    functionName: SECU_RegisterDynamicOids
    functionSourceFile: /src/nss/cmd/lib/moreoids.c
    functionUses: 5
    functionsReached:
    - SECOID_AddEntry
    - fprintf
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SECU_RegisterDynamicOids(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mmm
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: DEFN_EXTEN_EXT_VALUE_ENCODER
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFN_EXTEN_EXT_VALUE_ENCODER(mmm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - enable
    argTypes:
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 84
    functionName: SECU_EnableUtf8Display
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SECU_EnableUtf8Display(PRBool enable)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: SECU_GetUtf8DisplayEnabled
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool SECU_GetUtf8DisplayEnabled(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memset
      Src: /src/nss/cmd/lib/secutil.c:96,1
    - Dst: PORT_Strlen
      Src: /src/nss/cmd/lib/secutil.c:96,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/lib/secutil.c:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 99
    functionName: secu_ClearPassword
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - PORT_Memset
    - PORT_Strlen
    linkageType: ''
    returnType: void
    signature: void secu_ClearPassword(char *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/nss/cmd/lib/secutil.c:109,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:111,1
    - Dst: fopen
      Src: /src/nss/cmd/lib/secutil.c:115,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:117,1
    - Dst: fclose
      Src: /src/nss/cmd/lib/secutil.c:118,1
    - Dst: SEC_GetPassword
      Src: /src/nss/cmd/lib/secutil.c:122,1
    - Dst: fclose
      Src: /src/nss/cmd/lib/secutil.c:124,1
    - Dst: fclose
      Src: /src/nss/cmd/lib/secutil.c:125,1
    - Dst: SEC_GetPassword
      Src: /src/nss/cmd/lib/secutil.c:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - arg
    - prompt
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 139
    functionName: SECU_GetPasswordString
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 2
    functionsReached:
    - fprintf
    - fopen
    - fclose
    - SEC_GetPassword
    linkageType: ''
    returnType: char
    signature: 'char *

      SECU_GetPasswordString(void *arg, char *prompt)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZAlloc
      Src: /src/nss/cmd/lib/secutil.c:168,1
    - Dst: PR_Open
      Src: /src/nss/cmd/lib/secutil.c:174,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:176,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/lib/secutil.c:177,1
    - Dst: PR_Read
      Src: /src/nss/cmd/lib/secutil.c:181,1
    - Dst: PR_Close
      Src: /src/nss/cmd/lib/secutil.c:183,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:186,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/lib/secutil.c:187,1
    - Dst: PK11_GetTokenName
      Src: /src/nss/cmd/lib/secutil.c:192,1
    - Dst: PORT_Strlen
      Src: /src/nss/cmd/lib/secutil.c:194,1
    - Dst: PORT_Strncmp
      Src: /src/nss/cmd/lib/secutil.c:215,1
    - Dst: PORT_Strlen
      Src: /src/nss/cmd/lib/secutil.c:217,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/lib/secutil.c:227,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/lib/secutil.c:228,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 53
    argCount: 3
    argNames:
    - slot
    - retry
    - arg
    argTypes:
    - PK11SlotInfo*
    - PRBool
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 230
    functionName: SECU_FilePasswd
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 3
    functionsReached:
    - PORT_Strncmp
    - PORT_Free
    - PK11_GetTokenName
    - PORT_ZAlloc
    - PORT_Strlen
    - fprintf
    - PR_Read
    - PR_Open
    - PR_Close
    - PORT_Strdup
    linkageType: ''
    returnType: char
    signature: 'char *

      SECU_FilePasswd(PK11SlotInfo *slot, PRBool retry, void *arg)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PK11_ProtectedAuthenticationPath
      Src: /src/nss/cmd/lib/secutil.c:243,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/lib/secutil.c:247,1
    - Dst: snprintf
      Src: /src/nss/cmd/lib/secutil.c:253,1
    - Dst: PK11_GetTokenName
      Src: /src/nss/cmd/lib/secutil.c:254,1
    - Dst: SECU_GetPasswordString
      Src: /src/nss/cmd/lib/secutil.c:255,1
    - Dst: SECU_FilePasswd
      Src: /src/nss/cmd/lib/secutil.c:257,1
    - Dst: snprintf
      Src: /src/nss/cmd/lib/secutil.c:259,1
    - Dst: PK11_GetTokenName
      Src: /src/nss/cmd/lib/secutil.c:261,1
    - Dst: SECU_GetPasswordString
      Src: /src/nss/cmd/lib/secutil.c:262,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/lib/secutil.c:263,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/lib/secutil.c:266,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/lib/secutil.c:271,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - slot
    - retry
    - arg
    argTypes:
    - PK11SlotInfo*
    - PRBool
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 273
    functionName: SECU_GetModulePassword
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - PK11_GetTokenName
    - PORT_Free
    - PR_fprintf
    - SECU_GetPasswordString
    - PL_strdup
    - snprintf
    - PK11_ProtectedAuthenticationPath
    - SECU_FilePasswd
    linkageType: ''
    returnType: char
    signature: 'char *

      SECU_GetModulePassword(PK11SlotInfo *slot, PRBool retry, void *arg)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SECU_FilePasswd
      Src: /src/nss/cmd/lib/secutil.c:284,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/lib/secutil.c:287,1
    - Dst: fopen
      Src: /src/nss/cmd/lib/secutil.c:295,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/lib/secutil.c:298,1
    - Dst: PK11_IsFIPS
      Src: /src/nss/cmd/lib/secutil.c:303,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/lib/secutil.c:304,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/lib/secutil.c:317,1
    - Dst: fopen
      Src: /src/nss/cmd/lib/secutil.c:323,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/lib/secutil.c:325,1
    - Dst: fclose
      Src: /src/nss/cmd/lib/secutil.c:327,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/lib/secutil.c:334,1
    - Dst: SEC_GetPassword
      Src: /src/nss/cmd/lib/secutil.c:335,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/lib/secutil.c:339,1
    - Dst: SEC_GetPassword
      Src: /src/nss/cmd/lib/secutil.c:340,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/lib/secutil.c:342,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/lib/secutil.c:345,1
    - Dst: secu_ClearPassword
      Src: /src/nss/cmd/lib/secutil.c:349,1
    - Dst: fclose
      Src: /src/nss/cmd/lib/secutil.c:351,1
    - Dst: fclose
      Src: /src/nss/cmd/lib/secutil.c:352,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 3
    argNames:
    - slot
    - retry
    - arg
    argTypes:
    - PK11SlotInfo*
    - PRBool
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 275
    functionDepth: 2
    functionLinenumber: 275
    functionLinenumberEnd: 355
    functionName: secu_InitSlotPassword
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - fclose
    - PORT_Free
    - PR_fprintf
    - PK11_IsFIPS
    - PL_strdup
    - fopen
    - SEC_GetPassword
    - secu_ClearPassword
    - SECU_FilePasswd
    - PORT_Strcmp
    linkageType: ''
    returnType: char
    signature: 'char *

      secu_InitSlotPassword(PK11SlotInfo *slot, PRBool retry, void *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECU_ChangePW2
      Src: /src/nss/cmd/lib/secutil.c:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - slot
    - passwd
    - pwFile
    argTypes:
    - PK11SlotInfo*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 361
    functionName: SECU_ChangePW
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 2
    functionsReached:
    - SECU_ChangePW2
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SECU_ChangePW(PK11SlotInfo *slot, char *passwd, char *pwFile)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PK11_NeedUserInit
      Src: /src/nss/cmd/lib/secutil.c:393,1
    - Dst: secu_InitSlotPassword
      Src: /src/nss/cmd/lib/secutil.c:394,1
    - Dst: PK11_InitPin
      Src: /src/nss/cmd/lib/secutil.c:395,1
    - Dst: SECU_GetModulePassword
      Src: /src/nss/cmd/lib/secutil.c:400,1
    - Dst: PK11_CheckUserPassword
      Src: /src/nss/cmd/lib/secutil.c:402,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/lib/secutil.c:404,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/lib/secutil.c:406,1
    - Dst: PORT_Memset
      Src: /src/nss/cmd/lib/secutil.c:407,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/lib/secutil.c:407,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/lib/secutil.c:408,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/lib/secutil.c:415,1
    - Dst: secu_InitSlotPassword
      Src: /src/nss/cmd/lib/secutil.c:418,1
    - Dst: PK11_ChangePW
      Src: /src/nss/cmd/lib/secutil.c:420,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/lib/secutil.c:422,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/lib/secutil.c:424,1
    - Dst: PORT_Memset
      Src: /src/nss/cmd/lib/secutil.c:427,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/lib/secutil.c:427,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/lib/secutil.c:428,1
    - Dst: PORT_Memset
      Src: /src/nss/cmd/lib/secutil.c:432,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/lib/secutil.c:432,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/lib/secutil.c:433,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 62
    argCount: 5
    argNames:
    - slot
    - oldPass
    - newPass
    - oldPwFile
    - newPwFile
    argTypes:
    - PK11SlotInfo*
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 363
    functionDepth: 3
    functionLinenumber: 363
    functionLinenumberEnd: 436
    functionName: SECU_ChangePW2
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 2
    functionsReached:
    - PL_strlen
    - PK11_InitPin
    - PORT_Free
    - PR_fprintf
    - PK11_NeedUserInit
    - PK11_CheckUserPassword
    - PORT_Memset
    - secu_InitSlotPassword
    - PK11_ChangePW
    - SECU_GetModulePassword
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SECU_ChangePW2(PK11SlotInfo *slot, char *oldPass, char *newPass,\n
      \              char *oldPwFile, char *newPwFile)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetEnvSecure
      Src: /src/nss/cmd/lib/secutil.c:450,1
    - Dst: strlen
      Src: /src/nss/cmd/lib/secutil.c:454,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/cmd/lib/secutil.c:454,1
    - Dst: snprintf
      Src: /src/nss/cmd/lib/secutil.c:457,1
    - Dst: strlen
      Src: /src/nss/cmd/lib/secutil.c:459,1
    - Dst: strlen
      Src: /src/nss/cmd/lib/secutil.c:460,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 463
    functionName: SECU_DefaultSSLDir
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 3
    functionsReached:
    - snprintf
    - PR_ARRAY_SIZE
    - PR_GetEnvSecure
    - strlen
    linkageType: ''
    returnType: char
    signature: 'char *

      SECU_DefaultSSLDir(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nss/cmd/lib/secutil.c:470,1
    - Dst: snprintf
      Src: /src/nss/cmd/lib/secutil.c:471,1
    - Dst: snprintf
      Src: /src/nss/cmd/lib/secutil.c:473,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - dir
    - filename
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 465
    functionDepth: 1
    functionLinenumber: 465
    functionLinenumberEnd: 475
    functionName: SECU_AppendFilenameToDir
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - snprintf
    - strlen
    linkageType: ''
    returnType: char
    signature: 'char *

      SECU_AppendFilenameToDir(char *dir, char *filename)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetEnvSecure
      Src: /src/nss/cmd/lib/secutil.c:489,1
    - Dst: strlen
      Src: /src/nss/cmd/lib/secutil.c:493,1
    - Dst: snprintf
      Src: /src/nss/cmd/lib/secutil.c:494,1
    - Dst: snprintf
      Src: /src/nss/cmd/lib/secutil.c:496,1
    - Dst: snprintf
      Src: /src/nss/cmd/lib/secutil.c:498,1
    - Dst: strlen
      Src: /src/nss/cmd/lib/secutil.c:499,1
    - Dst: strlen
      Src: /src/nss/cmd/lib/secutil.c:500,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - base
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 477
    functionDepth: 1
    functionLinenumber: 477
    functionLinenumberEnd: 505
    functionName: SECU_ConfigDirectory
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 17
    functionsReached:
    - snprintf
    - PR_GetEnvSecure
    - strlen
    linkageType: ''
    returnType: char
    signature: 'char *

      SECU_ConfigDirectory(const char *base)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: SECU_FileToItem
      Src: /src/nss/cmd/lib/secutil.c:517,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:521,1
    - Dst: SECITEM_ReallocItemV2
      Src: /src/nss/cmd/lib/secutil.c:525,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/lib/secutil.c:527,1
    - Dst: strstr
      Src: /src/nss/cmd/lib/secutil.c:533,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:534,1
    - Dst: strstr
      Src: /src/nss/cmd/lib/secutil.c:540,1
    - Dst: PORT_Strchr
      Src: /src/nss/cmd/lib/secutil.c:543,1
    - Dst: PORT_Strchr
      Src: /src/nss/cmd/lib/secutil.c:545,1
    - Dst: strstr
      Src: /src/nss/cmd/lib/secutil.c:547,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:551,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/lib/secutil.c:552,1
    - Dst: ATOB_ConvertAsciiToItem
      Src: /src/nss/cmd/lib/secutil.c:560,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:562,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/lib/secutil.c:563,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/lib/secutil.c:563,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/lib/secutil.c:564,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/lib/secutil.c:568,1
    - Dst: SECU_FileToItem
      Src: /src/nss/cmd/lib/secutil.c:571,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:573,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/lib/secutil.c:574,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/lib/secutil.c:574,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 50
    argCount: 4
    argNames:
    - der
    - inFile
    - ascii
    - warnOnPrivateKeyInAsciiFile
    argTypes:
    - SECItem*
    - PRFileDesc*
    - PRBool
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 507
    functionDepth: 1
    functionLinenumber: 507
    functionLinenumberEnd: 579
    functionName: SECU_ReadDERFromFile
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 17
    functionsReached:
    - PORT_Strchr
    - ATOB_ConvertAsciiToItem
    - SECU_Strerror
    - PORT_Free
    - PORT_GetError
    - SECITEM_ReallocItemV2
    - fprintf
    - strstr
    - SECU_FileToItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SECU_ReadDERFromFile(SECItem *der, PRFileDesc *inFile, PRBool
      ascii,\n                     PRBool warnOnPrivateKeyInAsciiFile)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/secutil.c:593,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/secutil.c:599,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/secutil.c:607,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/secutil.c:612,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - i
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 619
    functionName: SECU_StripTagAndLength
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SECU_StripTagAndLength(SECItem *i)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/secutil.c:633,1
    - Dst: SECU_ExtractBERAndStep
      Src: /src/nss/cmd/lib/secutil.c:648,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/secutil.c:655,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/secutil.c:670,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/secutil.c:682,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 629
    functionDepth: 1
    functionLinenumber: 629
    functionLinenumberEnd: 688
    functionName: SECU_ExtractBERAndStep
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    - SECU_ExtractBERAndStep
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SECU_ExtractBERAndStep(SECItem *in, SECItem *out)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:698,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:699,1
    - Dst: strlen
      Src: /src/nss/cmd/lib/secutil.c:700,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:703,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:707,1
    - Dst: SECU_GetWrapEnabled
      Src: /src/nss/cmd/lib/secutil.c:714,1
    - Dst: SECU_Newline
      Src: /src/nss/cmd/lib/secutil.c:715,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:716,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:728,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:733,1
    - Dst: SECU_GetWrapEnabled
      Src: /src/nss/cmd/lib/secutil.c:736,1
    - Dst: SECU_Newline
      Src: /src/nss/cmd/lib/secutil.c:738,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 5
    argNames:
    - out
    - si
    - m
    - level
    - quotes
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 690
    functionDepth: 1
    functionLinenumber: 690
    functionLinenumberEnd: 740
    functionName: secu_PrintRawStringQuotesOptional
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - fprintf
    - SECU_GetWrapEnabled
    - SECU_Indent
    - SECU_Newline
    - strlen
    linkageType: ''
    returnType: void
    signature: "void secu_PrintRawStringQuotesOptional(FILE *out, SECItem *si, const
      char *m,\n                                  int level, PRBool quotes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: secu_PrintRawStringQuotesOptional
      Src: /src/nss/cmd/lib/secutil.c:745,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - out
    - si
    - m
    - level
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 742
    functionDepth: 2
    functionLinenumber: 742
    functionLinenumberEnd: 746
    functionName: secu_PrintRawString
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - secu_PrintRawStringQuotesOptional
    linkageType: ''
    returnType: void
    signature: void secu_PrintRawString(FILE *out, SECItem *si, const char *m, int
      level)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECU_StripTagAndLength
      Src: /src/nss/cmd/lib/secutil.c:753,1
    - Dst: secu_PrintRawString
      Src: /src/nss/cmd/lib/secutil.c:755,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - out
    - si
    - m
    - level
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 748
    functionDepth: 3
    functionLinenumber: 748
    functionLinenumberEnd: 756
    functionName: SECU_PrintString
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 1
    functionsReached:
    - SECU_StripTagAndLength
    - secu_PrintRawString
    linkageType: ''
    returnType: void
    signature: void SECU_PrintString(FILE *out, const SECItem *si, const char *m,
      int level)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:771,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:772,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - out
    - i
    - m
    - level
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 759
    functionDepth: 1
    functionLinenumber: 759
    functionLinenumberEnd: 773
    functionName: secu_PrintBoolean
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - fprintf
    - SECU_Indent
    linkageType: ''
    returnType: void
    signature: void secu_PrintBoolean(FILE *out, SECItem *i, const char *m, int level)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PR_ExplodeTime
      Src: /src/nss/cmd/lib/secutil.c:787,1
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/lib/secutil.c:789,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:794,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:795,1
    - Dst: PR_FormatTime
      Src: /src/nss/cmd/lib/secutil.c:798,1
    - Dst: fputs
      Src: /src/nss/cmd/lib/secutil.c:799,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:803,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/lib/secutil.c:805,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - out
    - time
    - m
    - level
    argTypes:
    - FILE*
    - PRTime
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 780
    functionDepth: 1
    functionLinenumber: 780
    functionLinenumberEnd: 806
    functionName: secu_PrintTime
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - fputs
    - PORT_Free
    - PR_FormatTime
    - PR_ExplodeTime
    - fprintf
    - SECU_Indent
    linkageType: ''
    returnType: void
    signature: void secu_PrintTime(FILE *out, const PRTime time, const char *m, int
      level)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DER_UTCTimeToTime
      Src: /src/nss/cmd/lib/secutil.c:819,1
    - Dst: secu_PrintTime
      Src: /src/nss/cmd/lib/secutil.c:823,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - out
    - t
    - m
    - level
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 813
    functionDepth: 2
    functionLinenumber: 813
    functionLinenumberEnd: 824
    functionName: SECU_PrintUTCTime
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 1
    functionsReached:
    - DER_UTCTimeToTime
    - secu_PrintTime
    linkageType: ''
    returnType: void
    signature: void SECU_PrintUTCTime(FILE *out, const SECItem *t, const char *m,
      int level)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DER_GeneralizedTimeToTime
      Src: /src/nss/cmd/lib/secutil.c:837,1
    - Dst: secu_PrintTime
      Src: /src/nss/cmd/lib/secutil.c:841,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - out
    - t
    - m
    - level
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 831
    functionDepth: 2
    functionLinenumber: 831
    functionLinenumberEnd: 842
    functionName: SECU_PrintGeneralizedTime
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 5
    functionsReached:
    - DER_GeneralizedTimeToTime
    - secu_PrintTime
    linkageType: ''
    returnType: void
    signature: void SECU_PrintGeneralizedTime(FILE *out, const SECItem *t, const char
      *m, int level)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SECU_PrintUTCTime
      Src: /src/nss/cmd/lib/secutil.c:854,1
    - Dst: SECU_PrintGeneralizedTime
      Src: /src/nss/cmd/lib/secutil.c:858,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/lib/secutil.c:862,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - out
    - t
    - m
    - level
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 849
    functionDepth: 3
    functionLinenumber: 849
    functionLinenumberEnd: 865
    functionName: SECU_PrintTimeChoice
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 2
    functionsReached:
    - PORT_Assert
    - SECU_PrintGeneralizedTime
    - SECU_PrintUTCTime
    linkageType: ''
    returnType: void
    signature: void SECU_PrintTimeChoice(FILE *out, const SECItem *t, const char *m,
      int level)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SECU_PrintAsHex
      Src: /src/nss/cmd/lib/secutil.c:877,1
    - Dst: SECU_StripTagAndLength
      Src: /src/nss/cmd/lib/secutil.c:880,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:883,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:885,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:894,1
    - Dst: SECU_ExtractBERAndStep
      Src: /src/nss/cmd/lib/secutil.c:898,1
    - Dst: SECU_PrintAny
      Src: /src/nss/cmd/lib/secutil.c:901,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:903,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:904,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 4
    argNames:
    - out
    - t
    - m
    - level
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 868
    functionDepth: 2
    functionLinenumber: 868
    functionLinenumberEnd: 905
    functionName: SECU_PrintSet
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - SECU_PrintAny
    - SECU_StripTagAndLength
    - SECU_ExtractBERAndStep
    - fprintf
    - SECU_Indent
    - SECU_PrintAsHex
    linkageType: ''
    returnType: void
    signature: void SECU_PrintSet(FILE *out, const SECItem *t, const char *m, int
      level)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PR_smprintf
      Src: /src/nss/cmd/lib/secutil.c:917,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/lib/secutil.c:919,1
    - Dst: SECU_PrintSet
      Src: /src/nss/cmd/lib/secutil.c:921,1
    - Dst: PR_smprintf_free
      Src: /src/nss/cmd/lib/secutil.c:922,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:927,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:929,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:931,1
    - Dst: SECU_StripTagAndLength
      Src: /src/nss/cmd/lib/secutil.c:934,1
    - Dst: SECU_PrintAsHex
      Src: /src/nss/cmd/lib/secutil.c:935,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - out
    - i
    - m
    - level
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 907
    functionDepth: 3
    functionLinenumber: 907
    functionLinenumberEnd: 936
    functionName: secu_PrintContextSpecific
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - SECU_StripTagAndLength
    - fprintf
    - PR_smprintf_free
    - SECU_PrintSet
    - PR_smprintf
    - SECU_Indent
    - SECU_PrintAsHex
    linkageType: ''
    returnType: void
    signature: void secu_PrintContextSpecific(FILE *out, const SECItem *i, const char
      *m, int level)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECU_StripTagAndLength
      Src: /src/nss/cmd/lib/secutil.c:942,1
    - Dst: SECU_PrintAsHex
      Src: /src/nss/cmd/lib/secutil.c:943,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - out
    - i
    - m
    - level
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 938
    functionDepth: 1
    functionLinenumber: 938
    functionLinenumberEnd: 944
    functionName: secu_PrintOctetString
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - SECU_StripTagAndLength
    - SECU_PrintAsHex
    linkageType: ''
    returnType: void
    signature: void secu_PrintOctetString(FILE *out, const SECItem *i, const char
      *m, int level)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECU_StripTagAndLength
      Src: /src/nss/cmd/lib/secutil.c:952,1
    - Dst: SECU_PrintAsHex
      Src: /src/nss/cmd/lib/secutil.c:958,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:960,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:961,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - out
    - i
    - m
    - level
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 946
    functionDepth: 1
    functionLinenumber: 946
    functionLinenumberEnd: 963
    functionName: secu_PrintBitString
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - fprintf
    - SECU_Indent
    - SECU_StripTagAndLength
    - SECU_PrintAsHex
    linkageType: ''
    returnType: void
    signature: void secu_PrintBitString(FILE *out, const SECItem *i, const char *m,
      int level)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DER_ConvertBitString
      Src: /src/nss/cmd/lib/secutil.c:973,1
    - Dst: SECU_PrintAsHex
      Src: /src/nss/cmd/lib/secutil.c:975,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:977,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:978,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - out
    - i
    - m
    - level
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 966
    functionDepth: 1
    functionLinenumber: 966
    functionLinenumberEnd: 980
    functionName: secu_PrintDecodedBitString
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - fprintf
    - DER_ConvertBitString
    - SECU_Indent
    - SECU_PrintAsHex
    linkageType: ''
    returnType: void
    signature: void secu_PrintDecodedBitString(FILE *out, const SECItem *i, const
      char *m, int level)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECU_StripTagAndLength
      Src: /src/nss/cmd/lib/secutil.c:987,1
    - Dst: secu_PrintBoolean
      Src: /src/nss/cmd/lib/secutil.c:988,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - out
    - i
    - m
    - level
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 983
    functionDepth: 2
    functionLinenumber: 983
    functionLinenumberEnd: 989
    functionName: SECU_PrintEncodedBoolean
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - secu_PrintBoolean
    - SECU_StripTagAndLength
    linkageType: ''
    returnType: void
    signature: void SECU_PrintEncodedBoolean(FILE *out, const SECItem *i, const char
      *m, int level)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECU_StripTagAndLength
      Src: /src/nss/cmd/lib/secutil.c:996,1
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/lib/secutil.c:997,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - out
    - i
    - m
    - level
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 992
    functionDepth: 1
    functionLinenumber: 992
    functionLinenumberEnd: 998
    functionName: SECU_PrintEncodedInteger
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - SECU_PrintInteger
    - SECU_StripTagAndLength
    linkageType: ''
    returnType: void
    signature: void SECU_PrintEncodedInteger(FILE *out, const SECItem *i, const char
      *m, int level)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECU_StripTagAndLength
      Src: /src/nss/cmd/lib/secutil.c:1006,1
    - Dst: SECU_PrintObjectID
      Src: /src/nss/cmd/lib/secutil.c:1007,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - out
    - i
    - m
    - level
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 1001
    functionDepth: 1
    functionLinenumber: 1001
    functionLinenumberEnd: 1009
    functionName: SECU_PrintEncodedObjectID
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - SECU_PrintObjectID
    - SECU_StripTagAndLength
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag SECU_PrintEncodedObjectID(FILE *out, const SECItem *i, const
      char *m, int level)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SECU_StripTagAndLength
      Src: /src/nss/cmd/lib/secutil.c:1020,1
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/lib/secutil.c:1025,1
    - Dst: isprint
      Src: /src/nss/cmd/lib/secutil.c:1032,1
    - Dst: secu_PrintRawString
      Src: /src/nss/cmd/lib/secutil.c:1036,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/lib/secutil.c:1037,1
    - Dst: SECU_PrintAsHex
      Src: /src/nss/cmd/lib/secutil.c:1041,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/lib/secutil.c:1043,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 4
    argNames:
    - out
    - i
    - m
    - level
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1011
    functionDepth: 3
    functionLinenumber: 1011
    functionLinenumberEnd: 1044
    functionName: secu_PrintBMPString
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - SECU_StripTagAndLength
    - PORT_Free
    - isprint
    - secu_PrintRawString
    - SECU_PrintAsHex
    linkageType: ''
    returnType: void
    signature: void secu_PrintBMPString(FILE *out, const SECItem *i, const char *m,
      int level)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SECU_StripTagAndLength
      Src: /src/nss/cmd/lib/secutil.c:1055,1
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/lib/secutil.c:1060,1
    - Dst: isprint
      Src: /src/nss/cmd/lib/secutil.c:1067,1
    - Dst: secu_PrintRawString
      Src: /src/nss/cmd/lib/secutil.c:1071,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/lib/secutil.c:1072,1
    - Dst: SECU_PrintAsHex
      Src: /src/nss/cmd/lib/secutil.c:1076,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/lib/secutil.c:1078,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 4
    argNames:
    - out
    - i
    - m
    - level
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 1046
    functionDepth: 3
    functionLinenumber: 1046
    functionLinenumberEnd: 1079
    functionName: secu_PrintUniversalString
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - SECU_StripTagAndLength
    - PORT_Free
    - isprint
    - secu_PrintRawString
    - SECU_PrintAsHex
    linkageType: ''
    returnType: void
    signature: void secu_PrintUniversalString(FILE *out, const SECItem *i, const char
      *m, int level)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: SECU_PrintEncodedInteger
      Src: /src/nss/cmd/lib/secutil.c:1087,1
    - Dst: SECU_PrintEncodedObjectID
      Src: /src/nss/cmd/lib/secutil.c:1090,1
    - Dst: SECU_PrintEncodedBoolean
      Src: /src/nss/cmd/lib/secutil.c:1093,1
    - Dst: SECU_PrintString
      Src: /src/nss/cmd/lib/secutil.c:1100,1
    - Dst: SECU_PrintGeneralizedTime
      Src: /src/nss/cmd/lib/secutil.c:1103,1
    - Dst: SECU_PrintUTCTime
      Src: /src/nss/cmd/lib/secutil.c:1106,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:1109,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:1111,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:1113,1
    - Dst: SECU_PrintSet
      Src: /src/nss/cmd/lib/secutil.c:1117,1
    - Dst: secu_PrintOctetString
      Src: /src/nss/cmd/lib/secutil.c:1120,1
    - Dst: secu_PrintBitString
      Src: /src/nss/cmd/lib/secutil.c:1123,1
    - Dst: secu_PrintBMPString
      Src: /src/nss/cmd/lib/secutil.c:1126,1
    - Dst: secu_PrintUniversalString
      Src: /src/nss/cmd/lib/secutil.c:1129,1
    - Dst: SECU_PrintAsHex
      Src: /src/nss/cmd/lib/secutil.c:1132,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 51
    argCount: 4
    argNames:
    - out
    - i
    - m
    - level
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 1081
    functionDepth: 4
    functionLinenumber: 1081
    functionLinenumberEnd: 1135
    functionName: secu_PrintUniversal
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - SECU_PrintString
    - SECU_PrintEncodedInteger
    - SECU_PrintEncodedBoolean
    - secu_PrintBitString
    - secu_PrintOctetString
    - fprintf
    - SECU_PrintSet
    - SECU_PrintUTCTime
    - SECU_Indent
    - SECU_PrintGeneralizedTime
    - secu_PrintBMPString
    - SECU_PrintEncodedObjectID
    - secu_PrintUniversalString
    - SECU_PrintAsHex
    linkageType: ''
    returnType: void
    signature: void secu_PrintUniversal(FILE *out, const SECItem *i, const char *m,
      int level)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: secu_PrintContextSpecific
      Src: /src/nss/cmd/lib/secutil.c:1143,1
    - Dst: secu_PrintUniversal
      Src: /src/nss/cmd/lib/secutil.c:1146,1
    - Dst: SECU_PrintAsHex
      Src: /src/nss/cmd/lib/secutil.c:1149,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 4
    argNames:
    - out
    - i
    - m
    - level
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 1137
    functionDepth: 5
    functionLinenumber: 1137
    functionLinenumberEnd: 1153
    functionName: SECU_PrintAny
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 5
    functionsReached:
    - SECU_PrintAsHex
    - secu_PrintContextSpecific
    - secu_PrintUniversal
    linkageType: ''
    returnType: void
    signature: void SECU_PrintAny(FILE *out, const SECItem *i, const char *m, int
      level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:1158,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:1159,1
    - Dst: SECU_PrintTimeChoice
      Src: /src/nss/cmd/lib/secutil.c:1160,1
    - Dst: SECU_PrintTimeChoice
      Src: /src/nss/cmd/lib/secutil.c:1161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - out
    - v
    - m
    - level
    argTypes:
    - FILE*
    - CERTValidity*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1163
      start: 1155
    functionDepth: 4
    functionLinenumber: 1155
    functionLinenumberEnd: 1163
    functionName: secu_PrintValidity
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - fprintf
    - SECU_Indent
    - SECU_PrintTimeChoice
    linkageType: ''
    returnType: int
    signature: int secu_PrintValidity(FILE *out, CERTValidity *v, char *m, int level)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOID
      Src: /src/nss/cmd/lib/secutil.c:1172,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:1175,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:1177,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:1178,1
    - Dst: CERT_GetOidString
      Src: /src/nss/cmd/lib/secutil.c:1181,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:1183,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:1185,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:1186,1
    - Dst: PR_smprintf_free
      Src: /src/nss/cmd/lib/secutil.c:1187,1
    - Dst: SECU_PrintAsHex
      Src: /src/nss/cmd/lib/secutil.c:1190,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - out
    - oid
    - m
    - level
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1166
    functionDepth: 1
    functionLinenumber: 1166
    functionLinenumberEnd: 1192
    functionName: SECU_PrintObjectID
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 5
    functionsReached:
    - SECOID_FindOID
    - fprintf
    - PR_smprintf_free
    - SECU_Indent
    - CERT_GetOidString
    - SECU_PrintAsHex
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag SECU_PrintObjectID(FILE *out, const SECItem *oid, const char
      *m, int level)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/lib/secutil.c:1236,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:1242,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:1243,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:1247,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:1248,1
    - Dst: PORT_Memset
      Src: /src/nss/cmd/lib/secutil.c:1252,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/cmd/lib/secutil.c:1254,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/cmd/lib/secutil.c:1255,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:1259,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:1260,1
    - Dst: SECU_PrintObjectID
      Src: /src/nss/cmd/lib/secutil.c:1262,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:1266,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:1267,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:1268,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:1269,1
    - Dst: SECU_PrintObjectID
      Src: /src/nss/cmd/lib/secutil.c:1271,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/cmd/lib/secutil.c:1273,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/cmd/lib/secutil.c:1274,1
    - Dst: SECU_PrintObjectID
      Src: /src/nss/cmd/lib/secutil.c:1277,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:1280,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:1281,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:1285,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:1286,1
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/lib/secutil.c:1288,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:1291,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:1292,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/lib/secutil.c:1294,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 45
    argCount: 4
    argNames:
    - out
    - value
    - m
    - level
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1295
      start: 1233
    functionDepth: 2
    functionLinenumber: 1233
    functionLinenumberEnd: 1295
    functionName: secu_PrintRSAPSSParams
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - PORT_NewArena
    - PORT_FreeArena
    - SECU_PrintInteger
    - fprintf
    - SEC_QuickDERDecodeItem
    - SECU_PrintObjectID
    - SECU_Indent
    - PORT_Memset
    - SEC_ASN1_GET
    linkageType: ''
    returnType: void
    signature: void secu_PrintRSAPSSParams(FILE *out, SECItem *value, char *m, int
      level)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/lib/secutil.c:1300,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:1305,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:1306,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:1310,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:1311,1
    - Dst: PORT_Memset
      Src: /src/nss/cmd/lib/secutil.c:1315,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/cmd/lib/secutil.c:1316,1
    - Dst: SECU_PrintAsHex
      Src: /src/nss/cmd/lib/secutil.c:1318,1
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/lib/secutil.c:1319,1
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/lib/secutil.c:1322,1
    - Dst: SECU_PrintAlgorithmID
      Src: /src/nss/cmd/lib/secutil.c:1325,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:1327,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:1328,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/lib/secutil.c:1331,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 4
    argNames:
    - out
    - value
    - m
    - level
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1332
      start: 1297
    functionDepth: 1
    functionLinenumber: 1297
    functionLinenumberEnd: 1332
    functionName: secu_PrintKDF2Params
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - PORT_NewArena
    - PORT_FreeArena
    - SECU_PrintInteger
    - fprintf
    - SEC_QuickDERDecodeItem
    - SECU_PrintAlgorithmID
    - SECU_Indent
    - PORT_Memset
    - SECU_PrintAsHex
    linkageType: ''
    returnType: void
    signature: void secu_PrintKDF2Params(FILE *out, SECItem *value, char *m, int level)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/lib/secutil.c:1337,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:1342,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:1343,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:1347,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:1348,1
    - Dst: PORT_Memset
      Src: /src/nss/cmd/lib/secutil.c:1352,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/cmd/lib/secutil.c:1353,1
    - Dst: SECU_PrintAlgorithmID
      Src: /src/nss/cmd/lib/secutil.c:1355,1
    - Dst: SECU_PrintAlgorithmID
      Src: /src/nss/cmd/lib/secutil.c:1356,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/lib/secutil.c:1358,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - out
    - value
    - m
    - level
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1359
      start: 1334
    functionDepth: 1
    functionLinenumber: 1334
    functionLinenumberEnd: 1359
    functionName: secu_PrintPKCS5V2Params
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - PORT_NewArena
    - PORT_FreeArena
    - fprintf
    - SEC_QuickDERDecodeItem
    - SECU_PrintAlgorithmID
    - SECU_Indent
    - PORT_Memset
    linkageType: ''
    returnType: void
    signature: void secu_PrintPKCS5V2Params(FILE *out, SECItem *value, char *m, int
      level)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/lib/secutil.c:1364,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:1369,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:1370,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:1374,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:1375,1
    - Dst: PORT_Memset
      Src: /src/nss/cmd/lib/secutil.c:1379,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/cmd/lib/secutil.c:1380,1
    - Dst: SECU_PrintAsHex
      Src: /src/nss/cmd/lib/secutil.c:1382,1
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/lib/secutil.c:1383,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/lib/secutil.c:1386,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - out
    - value
    - m
    - level
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1387
      start: 1361
    functionDepth: 1
    functionLinenumber: 1361
    functionLinenumberEnd: 1387
    functionName: secu_PrintPBEParams
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - PORT_NewArena
    - PORT_FreeArena
    - SECU_PrintInteger
    - fprintf
    - SEC_QuickDERDecodeItem
    - SECU_Indent
    - PORT_Memset
    - SECU_PrintAsHex
    linkageType: ''
    returnType: void
    signature: void secu_PrintPBEParams(FILE *out, SECItem *value, char *m, int level)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SECU_PrintObjectID
      Src: /src/nss/cmd/lib/secutil.c:1394,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/cmd/lib/secutil.c:1396,1
    - Dst: SEC_PKCS5IsAlgorithmPBEAlgTag
      Src: /src/nss/cmd/lib/secutil.c:1397,1
    - Dst: secu_PrintKDF2Params
      Src: /src/nss/cmd/lib/secutil.c:1400,1
    - Dst: secu_PrintPKCS5V2Params
      Src: /src/nss/cmd/lib/secutil.c:1403,1
    - Dst: secu_PrintPKCS5V2Params
      Src: /src/nss/cmd/lib/secutil.c:1406,1
    - Dst: secu_PrintPBEParams
      Src: /src/nss/cmd/lib/secutil.c:1409,1
    - Dst: PORT_Memcmp
      Src: /src/nss/cmd/lib/secutil.c:1417,1
    - Dst: secu_PrintRSAPSSParams
      Src: /src/nss/cmd/lib/secutil.c:1420,1
    - Dst: SECU_PrintAsHex
      Src: /src/nss/cmd/lib/secutil.c:1423,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 4
    argNames:
    - out
    - a
    - m
    - level
    argTypes:
    - FILE*
    - SECAlgorithmID*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1425
      start: 1390
    functionDepth: 3
    functionLinenumber: 1390
    functionLinenumberEnd: 1425
    functionName: SECU_PrintAlgorithmID
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 3
    functionsReached:
    - SECOID_GetAlgorithmTag
    - secu_PrintRSAPSSParams
    - PORT_Memcmp
    - SECU_PrintObjectID
    - SEC_PKCS5IsAlgorithmPBEAlgTag
    - secu_PrintPKCS5V2Params
    - secu_PrintKDF2Params
    - secu_PrintPBEParams
    - SECU_PrintAsHex
    linkageType: ''
    returnType: void
    signature: void SECU_PrintAlgorithmID(FILE *out, SECAlgorithmID *a, char *m, int
      level)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:1435,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:1436,1
    - Dst: SECU_PrintObjectID
      Src: /src/nss/cmd/lib/secutil.c:1443,1
    - Dst: snprintf
      Src: /src/nss/cmd/lib/secutil.c:1447,1
    - Dst: SECU_PrintAny
      Src: /src/nss/cmd/lib/secutil.c:1449,1
    - Dst: SECU_PrintAsHex
      Src: /src/nss/cmd/lib/secutil.c:1453,1
    - Dst: SECU_PrintObjectID
      Src: /src/nss/cmd/lib/secutil.c:1456,1
    - Dst: SECU_PrintTimeChoice
      Src: /src/nss/cmd/lib/secutil.c:1459,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 4
    argNames:
    - out
    - attr
    - m
    - level
    argTypes:
    - FILE*
    - SEC_PKCS7Attribute*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1465
      start: 1427
    functionDepth: 6
    functionLinenumber: 1427
    functionLinenumberEnd: 1465
    functionName: secu_PrintAttribute
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - SECU_PrintAny
    - fprintf
    - SECU_PrintObjectID
    - snprintf
    - SECU_Indent
    - SECU_PrintTimeChoice
    - SECU_PrintAsHex
    linkageType: ''
    returnType: void
    signature: void secu_PrintAttribute(FILE *out, SEC_PKCS7Attribute *attr, char
      *m, int level)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:1472,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:1473,1
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/lib/secutil.c:1474,1
    - Dst: PR_MIN
      Src: /src/nss/cmd/lib/secutil.c:1482,1
    - Dst: SECU_PrintObjectID
      Src: /src/nss/cmd/lib/secutil.c:1483,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - out
    - pk
    - m
    - level
    argTypes:
    - FILE*
    - SECKEYPublicKey*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1485
      start: 1467
    functionDepth: 2
    functionLinenumber: 1467
    functionLinenumberEnd: 1485
    functionName: secu_PrintECPublicKey
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - PR_MIN
    - fprintf
    - SECU_PrintObjectID
    - SECU_Indent
    - SECU_PrintInteger
    linkageType: ''
    returnType: void
    signature: void secu_PrintECPublicKey(FILE *out, SECKEYPublicKey *pk, char *m,
      int level)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:1490,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:1491,1
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/lib/secutil.c:1492,1
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/lib/secutil.c:1493,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:1496,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:1497,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - out
    - pk
    - m
    - level
    argTypes:
    - FILE*
    - SECKEYPublicKey*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1499
      start: 1487
    functionDepth: 1
    functionLinenumber: 1487
    functionLinenumberEnd: 1499
    functionName: SECU_PrintRSAPublicKey
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - fprintf
    - SECU_PrintInteger
    - SECU_Indent
    linkageType: ''
    returnType: void
    signature: void SECU_PrintRSAPublicKey(FILE *out, SECKEYPublicKey *pk, char *m,
      int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:1504,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:1505,1
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/lib/secutil.c:1506,1
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/lib/secutil.c:1507,1
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/lib/secutil.c:1508,1
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/lib/secutil.c:1509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - out
    - pk
    - m
    - level
    argTypes:
    - FILE*
    - SECKEYPublicKey*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1510
      start: 1501
    functionDepth: 1
    functionLinenumber: 1501
    functionLinenumberEnd: 1510
    functionName: SECU_PrintDSAPublicKey
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - fprintf
    - SECU_PrintInteger
    - SECU_Indent
    linkageType: ''
    returnType: void
    signature: void SECU_PrintDSAPublicKey(FILE *out, SECKEYPublicKey *pk, char *m,
      int level)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:1518,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:1519,1
    - Dst: SECU_PrintAlgorithmID
      Src: /src/nss/cmd/lib/secutil.c:1520,1
    - Dst: SECKEY_ExtractPublicKey
      Src: /src/nss/cmd/lib/secutil.c:1522,1
    - Dst: SECU_PrintRSAPublicKey
      Src: /src/nss/cmd/lib/secutil.c:1526,1
    - Dst: SECU_PrintDSAPublicKey
      Src: /src/nss/cmd/lib/secutil.c:1530,1
    - Dst: secu_PrintECPublicKey
      Src: /src/nss/cmd/lib/secutil.c:1534,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:1540,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:1541,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:1544,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:1545,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/lib/secutil.c:1548,1
    - Dst: SECU_PrintErrMsg
      Src: /src/nss/cmd/lib/secutil.c:1550,1
    - Dst: DER_ConvertBitString
      Src: /src/nss/cmd/lib/secutil.c:1554,1
    - Dst: SECU_PrintAny
      Src: /src/nss/cmd/lib/secutil.c:1555,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 5
    argNames:
    - out
    - arena
    - i
    - msg
    - level
    argTypes:
    - FILE*
    - PLArenaPool*
    - CERTSubjectPublicKeyInfo*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1558
      start: 1512
    functionDepth: 6
    functionLinenumber: 1512
    functionLinenumberEnd: 1558
    functionName: secu_PrintSubjectPublicKeyInfo
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - DER_ConvertBitString
    - SECU_PrintAny
    - SECU_PrintDSAPublicKey
    - PORT_FreeArena
    - SECU_PrintErrMsg
    - fprintf
    - SECKEY_ExtractPublicKey
    - SECU_PrintAlgorithmID
    - SECU_Indent
    - SECU_PrintRSAPublicKey
    - secu_PrintECPublicKey
    linkageType: ''
    returnType: void
    signature: "void secu_PrintSubjectPublicKeyInfo(FILE *out, PLArenaPool *arena,\n
      \                              CERTSubjectPublicKeyInfo *i, char *msg, int level)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fputc
      Src: /src/nss/cmd/lib/secutil.c:1566,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - out
    - str
    argTypes:
    - FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1570
      start: 1560
    functionDepth: 0
    functionLinenumber: 1560
    functionLinenumberEnd: 1570
    functionName: printStringWithoutCRLF
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - fputc
    linkageType: ''
    returnType: void
    signature: void printStringWithoutCRLF(FILE *out, const char *str)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/lib/secutil.c:1576,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/cmd/lib/secutil.c:1586,1
    - Dst: SEC_ASN1DecodeItem
      Src: /src/nss/cmd/lib/secutil.c:1590,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/cmd/lib/secutil.c:1591,1
    - Dst: SECU_PrintErrMsg
      Src: /src/nss/cmd/lib/secutil.c:1593,1
    - Dst: SECU_PrintName
      Src: /src/nss/cmd/lib/secutil.c:1597,1
    - Dst: SECU_GetWrapEnabled
      Src: /src/nss/cmd/lib/secutil.c:1598,1
    - Dst: SECU_Newline
      Src: /src/nss/cmd/lib/secutil.c:1599,1
    - Dst: SECU_PrintName
      Src: /src/nss/cmd/lib/secutil.c:1600,1
    - Dst: SECU_GetWrapEnabled
      Src: /src/nss/cmd/lib/secutil.c:1601,1
    - Dst: SECU_Newline
      Src: /src/nss/cmd/lib/secutil.c:1602,1
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/lib/secutil.c:1603,1
    - Dst: BTOA_ConvertItemToAscii
      Src: /src/nss/cmd/lib/secutil.c:1605,1
    - Dst: BTOA_ConvertItemToAscii
      Src: /src/nss/cmd/lib/secutil.c:1606,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:1608,1
    - Dst: SECU_GetWrapEnabled
      Src: /src/nss/cmd/lib/secutil.c:1609,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:1610,1
    - Dst: printStringWithoutCRLF
      Src: /src/nss/cmd/lib/secutil.c:1612,1
    - Dst: fputs
      Src: /src/nss/cmd/lib/secutil.c:1613,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:1616,1
    - Dst: SECU_GetWrapEnabled
      Src: /src/nss/cmd/lib/secutil.c:1617,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:1618,1
    - Dst: printStringWithoutCRLF
      Src: /src/nss/cmd/lib/secutil.c:1620,1
    - Dst: fputs
      Src: /src/nss/cmd/lib/secutil.c:1621,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/lib/secutil.c:1624,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/lib/secutil.c:1625,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:1627,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:1635,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:1637,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/lib/secutil.c:1641,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 49
    argCount: 4
    argNames:
    - out
    - der
    - m
    - level
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1643
      start: 1572
    functionDepth: 1
    functionLinenumber: 1572
    functionLinenumberEnd: 1643
    functionName: SECU_PrintDumpDerIssuerAndSerial
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - fputs
    - PORT_NewArena
    - BTOA_ConvertItemToAscii
    - SECU_PrintErrMsg
    - printStringWithoutCRLF
    - PORT_Free
    - PORT_FreeArena
    - SEC_ASN1DecodeItem
    - PORT_ArenaZNew
    - SECU_GetWrapEnabled
    - fprintf
    - SECU_PrintInteger
    - SEC_ASN1_GET
    - SECU_Newline
    - SECU_PrintName
    linkageType: ''
    returnType: int
    signature: "int SECU_PrintDumpDerIssuerAndSerial(FILE *out, const SECItem *der,
      const char *m,\n                                 int level)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1DecodeItem
      Src: /src/nss/cmd/lib/secutil.c:1654,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/cmd/lib/secutil.c:1655,1
    - Dst: DER_GeneralizedTimeToTime
      Src: /src/nss/cmd/lib/secutil.c:1658,1
    - Dst: CERT_GenTime2FormattedAscii
      Src: /src/nss/cmd/lib/secutil.c:1660,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:1661,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:1662,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/lib/secutil.c:1663,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/lib/secutil.c:1666,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - out
    - value
    - msg
    - level
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1668
      start: 1645
    functionDepth: 1
    functionLinenumber: 1645
    functionLinenumberEnd: 1668
    functionName: secu_PrintX509InvalidDate
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - SEC_ASN1DecodeItem
    - fprintf
    - SECU_Indent
    - CERT_GenTime2FormattedAscii
    - DER_GeneralizedTimeToTime
    - SEC_ASN1_GET
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus secu_PrintX509InvalidDate(FILE *out, SECItem *value, char
      *msg, int level)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CERT_DecodeOidSequence
      Src: /src/nss/cmd/lib/secutil.c:1676,1
    - Dst: SECU_PrintObjectID
      Src: /src/nss/cmd/lib/secutil.c:1682,1
    - Dst: CERT_DestroyOidSequence
      Src: /src/nss/cmd/lib/secutil.c:1684,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - out
    - value
    - msg
    - level
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1686
      start: 1670
    functionDepth: 2
    functionLinenumber: 1670
    functionLinenumberEnd: 1686
    functionName: PrintExtKeyUsageExtension
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - SECU_PrintObjectID
    - CERT_DecodeOidSequence
    - CERT_DestroyOidSequence
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PrintExtKeyUsageExtension(FILE *out, SECItem *value, char
      *msg, int level)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:1694,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:1696,1
    - Dst: CERT_DecodeBasicConstraintValue
      Src: /src/nss/cmd/lib/secutil.c:1698,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:1701,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:1704,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:1707,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - out
    - value
    - msg
    - level
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1710
      start: 1688
    functionDepth: 1
    functionLinenumber: 1688
    functionLinenumberEnd: 1710
    functionName: secu_PrintBasicConstraints
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - fprintf
    - CERT_DecodeBasicConstraintValue
    - SECU_Indent
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus secu_PrintBasicConstraints(FILE *out, SECItem *value, char
      *msg, int level)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SECU_StripTagAndLength
      Src: /src/nss/cmd/lib/secutil.c:1734,1
    - Dst: SECU_PrintAny
      Src: /src/nss/cmd/lib/secutil.c:1735,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:1742,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:1744,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:1746,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:1750,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:1754,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 4
    argNames:
    - out
    - value
    - msg
    - level
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1756
      start: 1724
    functionDepth: 6
    functionLinenumber: 1724
    functionLinenumberEnd: 1756
    functionName: secu_PrintNSCertType
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - fprintf
    - SECU_PrintAny
    - SECU_Indent
    - SECU_StripTagAndLength
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus secu_PrintNSCertType(FILE *out, SECItem *value, char *msg,
      int level)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SECU_StripTagAndLength
      Src: /src/nss/cmd/lib/secutil.c:1782,1
    - Dst: SECU_PrintAny
      Src: /src/nss/cmd/lib/secutil.c:1783,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:1792,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:1793,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:1797,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:1798,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:1803,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - out
    - value
    - msg
    - level
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1805
      start: 1772
    functionDepth: 6
    functionLinenumber: 1772
    functionLinenumberEnd: 1805
    functionName: secu_PrintX509KeyUsage
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - fprintf
    - SECU_PrintAny
    - SECU_Indent
    - SECU_StripTagAndLength
    linkageType: ''
    returnType: void
    signature: void secu_PrintX509KeyUsage(FILE *out, SECItem *value, char *msg, int
      level)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/cmd/lib/secutil.c:1814,1
    - Dst: memcpy
      Src: /src/nss/cmd/lib/secutil.c:1817,1
    - Dst: memcpy
      Src: /src/nss/cmd/lib/secutil.c:1820,1
    - Dst: PR_IsNetAddrType
      Src: /src/nss/cmd/lib/secutil.c:1821,1
    - Dst: memcpy
      Src: /src/nss/cmd/lib/secutil.c:1824,1
    - Dst: memset
      Src: /src/nss/cmd/lib/secutil.c:1825,1
    - Dst: PR_NetAddrToString
      Src: /src/nss/cmd/lib/secutil.c:1831,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:1833,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:1834,1
    - Dst: SECU_PrintAsHex
      Src: /src/nss/cmd/lib/secutil.c:1837,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 4
    argNames:
    - out
    - value
    - msg
    - level
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1839
      start: 1807
    functionDepth: 1
    functionLinenumber: 1807
    functionLinenumberEnd: 1839
    functionName: secu_PrintIPAddress
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - PR_IsNetAddrType
    - memcpy
    - memset
    - fprintf
    - PR_NetAddrToString
    - SECU_Indent
    - SECU_PrintAsHex
    linkageType: ''
    returnType: void
    signature: void secu_PrintIPAddress(FILE *out, SECItem *value, char *msg, int
      level)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:1846,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:1847,1
    - Dst: SECU_PrintAny
      Src: /src/nss/cmd/lib/secutil.c:1851,1
    - Dst: SECU_PrintObjectID
      Src: /src/nss/cmd/lib/secutil.c:1852,1
    - Dst: SECU_PrintName
      Src: /src/nss/cmd/lib/secutil.c:1855,1
    - Dst: secu_PrintRawString
      Src: /src/nss/cmd/lib/secutil.c:1858,1
    - Dst: secu_PrintRawString
      Src: /src/nss/cmd/lib/secutil.c:1861,1
    - Dst: secu_PrintRawString
      Src: /src/nss/cmd/lib/secutil.c:1864,1
    - Dst: secu_PrintIPAddress
      Src: /src/nss/cmd/lib/secutil.c:1867,1
    - Dst: SECU_PrintObjectID
      Src: /src/nss/cmd/lib/secutil.c:1870,1
    - Dst: SECU_PrintAny
      Src: /src/nss/cmd/lib/secutil.c:1873,1
    - Dst: SECU_PrintAny
      Src: /src/nss/cmd/lib/secutil.c:1876,1
    - Dst: PR_snprintf
      Src: /src/nss/cmd/lib/secutil.c:1879,1
    - Dst: SECU_PrintAsHex
      Src: /src/nss/cmd/lib/secutil.c:1881,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 4
    argNames:
    - out
    - gname
    - msg
    - level
    argTypes:
    - FILE*
    - CERTGeneralName*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1884
      start: 1841
    functionDepth: 6
    functionLinenumber: 1841
    functionLinenumberEnd: 1884
    functionName: secu_PrintGeneralName
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - PR_snprintf
    - SECU_PrintAny
    - SECU_PrintAsHex
    - fprintf
    - SECU_PrintObjectID
    - secu_PrintIPAddress
    - SECU_Indent
    - secu_PrintRawString
    - SECU_PrintName
    linkageType: ''
    returnType: void
    signature: void secu_PrintGeneralName(FILE *out, CERTGeneralName *gname, char
      *msg, int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: secu_PrintGeneralName
      Src: /src/nss/cmd/lib/secutil.c:1891,1
    - Dst: CERT_GetNextGeneralName
      Src: /src/nss/cmd/lib/secutil.c:1892,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - out
    - gname
    - msg
    - level
    argTypes:
    - FILE*
    - CERTGeneralName*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1894
      start: 1886
    functionDepth: 7
    functionLinenumber: 1886
    functionLinenumberEnd: 1894
    functionName: secu_PrintGeneralNames
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - secu_PrintGeneralName
    - CERT_GetNextGeneralName
    linkageType: ''
    returnType: void
    signature: void secu_PrintGeneralNames(FILE *out, CERTGeneralName *gname, char
      *msg, int level)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/lib/secutil.c:1900,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/lib/secutil.c:1903,1
    - Dst: CERT_DecodeAuthKeyID
      Src: /src/nss/cmd/lib/secutil.c:1906,1
    - Dst: SECU_PrintErrMsg
      Src: /src/nss/cmd/lib/secutil.c:1908,1
    - Dst: SECU_PrintAny
      Src: /src/nss/cmd/lib/secutil.c:1909,1
    - Dst: SECU_PrintAsHex
      Src: /src/nss/cmd/lib/secutil.c:1917,1
    - Dst: secu_PrintGeneralName
      Src: /src/nss/cmd/lib/secutil.c:1919,1
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/lib/secutil.c:1921,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/lib/secutil.c:1924,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 4
    argNames:
    - out
    - value
    - msg
    - level
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1925
      start: 1896
    functionDepth: 7
    functionLinenumber: 1896
    functionLinenumberEnd: 1925
    functionName: secu_PrintAuthKeyIDExtension
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - SECU_PrintAny
    - PORT_NewArena
    - SECU_PrintError
    - SECU_PrintErrMsg
    - PORT_FreeArena
    - CERT_DecodeAuthKeyID
    - SECU_PrintInteger
    - secu_PrintGeneralName
    - SECU_PrintAsHex
    linkageType: ''
    returnType: void
    signature: void secu_PrintAuthKeyIDExtension(FILE *out, SECItem *value, char *msg,
      int level)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/lib/secutil.c:1932,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/lib/secutil.c:1935,1
    - Dst: CERT_DecodeAltNameExtension
      Src: /src/nss/cmd/lib/secutil.c:1938,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/lib/secutil.c:1940,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/secutil.c:1942,1
    - Dst: SECU_PrintErrMsg
      Src: /src/nss/cmd/lib/secutil.c:1944,1
    - Dst: SECU_PrintAny
      Src: /src/nss/cmd/lib/secutil.c:1945,1
    - Dst: secu_PrintGeneralName
      Src: /src/nss/cmd/lib/secutil.c:1948,1
    - Dst: CERT_GetNextGeneralName
      Src: /src/nss/cmd/lib/secutil.c:1949,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/lib/secutil.c:1952,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - out
    - value
    - msg
    - level
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1953
      start: 1927
    functionDepth: 7
    functionLinenumber: 1927
    functionLinenumberEnd: 1953
    functionName: secu_PrintAltNameExtension
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - SECU_PrintAny
    - PORT_NewArena
    - SECU_PrintError
    - CERT_GetNextGeneralName
    - SECU_PrintErrMsg
    - PORT_FreeArena
    - PORT_GetError
    - PORT_SetError
    - CERT_DecodeAltNameExtension
    - secu_PrintGeneralName
    linkageType: ''
    returnType: void
    signature: void secu_PrintAltNameExtension(FILE *out, SECItem *value, char *msg,
      int level)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/lib/secutil.c:1959,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/lib/secutil.c:1962,1
    - Dst: CERT_DecodeCRLDistributionPoints
      Src: /src/nss/cmd/lib/secutil.c:1965,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:1970,1
    - Dst: fputs
      Src: /src/nss/cmd/lib/secutil.c:1971,1
    - Dst: secu_PrintGeneralNames
      Src: /src/nss/cmd/lib/secutil.c:1974,1
    - Dst: SECU_PrintRDN
      Src: /src/nss/cmd/lib/secutil.c:1978,1
    - Dst: SECU_PrintAny
      Src: /src/nss/cmd/lib/secutil.c:1981,1
    - Dst: secu_PrintDecodedBitString
      Src: /src/nss/cmd/lib/secutil.c:1984,1
    - Dst: secu_PrintGeneralName
      Src: /src/nss/cmd/lib/secutil.c:1988,1
    - Dst: SECU_PrintErrMsg
      Src: /src/nss/cmd/lib/secutil.c:1993,1
    - Dst: SECU_PrintAny
      Src: /src/nss/cmd/lib/secutil.c:1994,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/lib/secutil.c:1996,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 4
    argNames:
    - out
    - value
    - msg
    - level
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1997
      start: 1955
    functionDepth: 8
    functionLinenumber: 1955
    functionLinenumberEnd: 1997
    functionName: secu_PrintCRLDistPtsExtension
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - secu_PrintGeneralNames
    - SECU_PrintAny
    - fputs
    - PORT_NewArena
    - SECU_PrintError
    - SECU_PrintErrMsg
    - PORT_FreeArena
    - CERT_DecodeCRLDistributionPoints
    - SECU_Indent
    - SECU_PrintRDN
    - secu_PrintGeneralName
    - secu_PrintDecodedBitString
    linkageType: ''
    returnType: void
    signature: void secu_PrintCRLDistPtsExtension(FILE *out, SECItem *value, char
      *msg, int level)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:2004,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:2005,1
    - Dst: secu_PrintGeneralName
      Src: /src/nss/cmd/lib/secutil.c:2008,1
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/lib/secutil.c:2010,1
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/lib/secutil.c:2012,1
    - Dst: CERT_GetNextNameConstraint
      Src: /src/nss/cmd/lib/secutil.c:2013,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - out
    - value
    - msg
    - level
    argTypes:
    - FILE*
    - CERTNameConstraint*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2015
      start: 1999
    functionDepth: 7
    functionLinenumber: 1999
    functionLinenumberEnd: 2015
    functionName: secu_PrintNameConstraintSubtree
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - CERT_GetNextNameConstraint
    - fprintf
    - SECU_Indent
    - SECU_PrintInteger
    - secu_PrintGeneralName
    linkageType: ''
    returnType: void
    signature: "void secu_PrintNameConstraintSubtree(FILE *out, CERTNameConstraint
      *value,\n                                char *msg, int level)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/lib/secutil.c:2021,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/lib/secutil.c:2024,1
    - Dst: CERT_DecodeNameConstraintsExtension
      Src: /src/nss/cmd/lib/secutil.c:2027,1
    - Dst: SECU_PrintErrMsg
      Src: /src/nss/cmd/lib/secutil.c:2029,1
    - Dst: SECU_PrintAny
      Src: /src/nss/cmd/lib/secutil.c:2030,1
    - Dst: secu_PrintNameConstraintSubtree
      Src: /src/nss/cmd/lib/secutil.c:2033,1
    - Dst: secu_PrintNameConstraintSubtree
      Src: /src/nss/cmd/lib/secutil.c:2036,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/lib/secutil.c:2039,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - out
    - value
    - msg
    - level
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2040
      start: 2017
    functionDepth: 8
    functionLinenumber: 2017
    functionLinenumberEnd: 2040
    functionName: secu_PrintNameConstraintsExtension
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - SECU_PrintAny
    - CERT_DecodeNameConstraintsExtension
    - PORT_NewArena
    - SECU_PrintError
    - SECU_PrintErrMsg
    - PORT_FreeArena
    - secu_PrintNameConstraintSubtree
    linkageType: ''
    returnType: void
    signature: void secu_PrintNameConstraintsExtension(FILE *out, SECItem *value,
      char *msg, int level)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/lib/secutil.c:2046,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/lib/secutil.c:2049,1
    - Dst: CERT_DecodeAuthInfoAccessExtension
      Src: /src/nss/cmd/lib/secutil.c:2052,1
    - Dst: SECU_PrintErrMsg
      Src: /src/nss/cmd/lib/secutil.c:2054,1
    - Dst: SECU_PrintAny
      Src: /src/nss/cmd/lib/secutil.c:2055,1
    - Dst: SECU_PrintObjectID
      Src: /src/nss/cmd/lib/secutil.c:2060,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:2062,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:2063,1
    - Dst: secu_PrintGeneralName
      Src: /src/nss/cmd/lib/secutil.c:2066,1
    - Dst: SECU_PrintAny
      Src: /src/nss/cmd/lib/secutil.c:2068,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/lib/secutil.c:2072,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 4
    argNames:
    - out
    - value
    - msg
    - level
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2073
      start: 2042
    functionDepth: 7
    functionLinenumber: 2042
    functionLinenumberEnd: 2073
    functionName: secu_PrintAuthorityInfoAcess
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - SECU_PrintAny
    - PORT_NewArena
    - SECU_PrintError
    - SECU_PrintErrMsg
    - PORT_FreeArena
    - SECU_PrintObjectID
    - fprintf
    - SECU_Indent
    - secu_PrintGeneralName
    - CERT_DecodeAuthInfoAccessExtension
    linkageType: ''
    returnType: void
    signature: void secu_PrintAuthorityInfoAcess(FILE *out, SECItem *value, char *msg,
      int level)
  - BBCount: 58
    BranchProfiles: []
    Callsites:
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:2083,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:2084,1
    - Dst: SECU_PrintObjectID
      Src: /src/nss/cmd/lib/secutil.c:2091,1
    - Dst: secu_PrintBoolean
      Src: /src/nss/cmd/lib/secutil.c:2095,1
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/cmd/lib/secutil.c:2098,1
    - Dst: secu_PrintX509InvalidDate
      Src: /src/nss/cmd/lib/secutil.c:2104,1
    - Dst: SECU_PrintPolicy
      Src: /src/nss/cmd/lib/secutil.c:2107,1
    - Dst: SECU_PrintString
      Src: /src/nss/cmd/lib/secutil.c:2119,1
    - Dst: SECU_PrintString
      Src: /src/nss/cmd/lib/secutil.c:2122,1
    - Dst: SECU_PrintString
      Src: /src/nss/cmd/lib/secutil.c:2125,1
    - Dst: secu_PrintNSCertType
      Src: /src/nss/cmd/lib/secutil.c:2128,1
    - Dst: secu_PrintBasicConstraints
      Src: /src/nss/cmd/lib/secutil.c:2131,1
    - Dst: PrintExtKeyUsageExtension
      Src: /src/nss/cmd/lib/secutil.c:2134,1
    - Dst: secu_PrintX509KeyUsage
      Src: /src/nss/cmd/lib/secutil.c:2137,1
    - Dst: secu_PrintAuthKeyIDExtension
      Src: /src/nss/cmd/lib/secutil.c:2140,1
    - Dst: secu_PrintAltNameExtension
      Src: /src/nss/cmd/lib/secutil.c:2144,1
    - Dst: secu_PrintCRLDistPtsExtension
      Src: /src/nss/cmd/lib/secutil.c:2147,1
    - Dst: SECU_PrintPrivKeyUsagePeriodExtension
      Src: /src/nss/cmd/lib/secutil.c:2150,1
    - Dst: secu_PrintNameConstraintsExtension
      Src: /src/nss/cmd/lib/secutil.c:2154,1
    - Dst: secu_PrintAuthorityInfoAcess
      Src: /src/nss/cmd/lib/secutil.c:2157,1
    - Dst: SECU_PrintAny
      Src: /src/nss/cmd/lib/secutil.c:2195,1
    - Dst: SECU_Newline
      Src: /src/nss/cmd/lib/secutil.c:2199,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 107
    argCount: 4
    argNames:
    - out
    - extensions
    - msg
    - level
    argTypes:
    - FILE*
    - CERTCertExtension**
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2203
      start: 2075
    functionDepth: 9
    functionLinenumber: 2075
    functionLinenumberEnd: 2203
    functionName: SECU_PrintExtensions
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 1
    functionsReached:
    - secu_PrintAltNameExtension
    - SECU_PrintPolicy
    - fprintf
    - secu_PrintAuthKeyIDExtension
    - SECU_PrintAny
    - secu_PrintAuthorityInfoAcess
    - secu_PrintNSCertType
    - secu_PrintBasicConstraints
    - secu_PrintX509KeyUsage
    - SECU_Newline
    - secu_PrintBoolean
    - PrintExtKeyUsageExtension
    - SECU_Indent
    - secu_PrintCRLDistPtsExtension
    - secu_PrintX509InvalidDate
    - SECU_PrintString
    - secu_PrintNameConstraintsExtension
    - SECU_PrintPrivKeyUsagePeriodExtension
    - SECOID_FindOIDTag
    - SECU_PrintObjectID
    linkageType: ''
    returnType: void
    signature: "void SECU_PrintExtensions(FILE *out, CERTCertExtension **extensions,\n
      \                    char *msg, int level)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECU_PrintName
      Src: /src/nss/cmd/lib/secutil.c:2218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - out
    - rdn
    - msg
    - level
    argTypes:
    - FILE*
    - CERTRDN*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2219
      start: 2208
    functionDepth: 1
    functionLinenumber: 2208
    functionLinenumberEnd: 2219
    functionName: SECU_PrintRDN
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 1
    functionsReached:
    - SECU_PrintName
    linkageType: ''
    returnType: void
    signature: void SECU_PrintRDN(FILE *out, CERTRDN *rdn, const char *msg, int level)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/secutil.c:2230,1
    - Dst: CERT_NameToAscii
      Src: /src/nss/cmd/lib/secutil.c:2236,1
    - Dst: PORT_Strlen
      Src: /src/nss/cmd/lib/secutil.c:2242,1
    - Dst: secu_PrintRawStringQuotesOptional
      Src: /src/nss/cmd/lib/secutil.c:2244,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:2246,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:2247,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:2248,1
    - Dst: SECU_Newline
      Src: /src/nss/cmd/lib/secutil.c:2249,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/lib/secutil.c:2251,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 5
    argNames:
    - out
    - name
    - msg
    - level
    - quotes
    argTypes:
    - FILE*
    - CERTName*
    - char*
    - int
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2252
      start: 2221
    functionDepth: 2
    functionLinenumber: 2221
    functionLinenumberEnd: 2252
    functionName: SECU_PrintNameQuotesOptional
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 2
    functionsReached:
    - CERT_NameToAscii
    - PORT_Free
    - PORT_Strlen
    - fprintf
    - PORT_SetError
    - SECU_Indent
    - SECU_Newline
    - secu_PrintRawStringQuotesOptional
    linkageType: ''
    returnType: void
    signature: "void SECU_PrintNameQuotesOptional(FILE *out, CERTName *name, const
      char *msg,\n                             int level, PRBool quotes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECU_PrintNameQuotesOptional
      Src: /src/nss/cmd/lib/secutil.c:2257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - out
    - name
    - msg
    - level
    argTypes:
    - FILE*
    - CERTName*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2258
      start: 2254
    functionDepth: 3
    functionLinenumber: 2254
    functionLinenumberEnd: 2258
    functionName: SECU_PrintName
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 5
    functionsReached:
    - SECU_PrintNameQuotesOptional
    linkageType: ''
    returnType: void
    signature: void SECU_PrintName(FILE *out, CERTName *name, const char *msg, int
      level)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strcat
      Src: /src/nss/cmd/lib/secutil.c:2266,1
    - Dst: PORT_Strcat
      Src: /src/nss/cmd/lib/secutil.c:2269,1
    - Dst: PORT_Strcat
      Src: /src/nss/cmd/lib/secutil.c:2271,1
    - Dst: PORT_Strcat
      Src: /src/nss/cmd/lib/secutil.c:2273,1
    - Dst: PORT_Strcat
      Src: /src/nss/cmd/lib/secutil.c:2275,1
    - Dst: PORT_Strcat
      Src: /src/nss/cmd/lib/secutil.c:2277,1
    - Dst: PORT_Strcat
      Src: /src/nss/cmd/lib/secutil.c:2279,1
    - Dst: PORT_Strcat
      Src: /src/nss/cmd/lib/secutil.c:2281,1
    - Dst: PORT_Strcat
      Src: /src/nss/cmd/lib/secutil.c:2283,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 22
    argCount: 2
    argNames:
    - trusts
    - flags
    argTypes:
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2285
      start: 2260
    functionDepth: 0
    functionLinenumber: 2260
    functionLinenumberEnd: 2285
    functionName: printflags
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - PORT_Strcat
    linkageType: ''
    returnType: void
    signature: void printflags(char *trusts, unsigned int flags)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memset
      Src: /src/nss/cmd/lib/secutil.c:2299,1
    - Dst: CERT_GetCertTrust
      Src: /src/nss/cmd/lib/secutil.c:2313,1
    - Dst: printflags
      Src: /src/nss/cmd/lib/secutil.c:2314,1
    - Dst: PORT_Strcat
      Src: /src/nss/cmd/lib/secutil.c:2315,1
    - Dst: printflags
      Src: /src/nss/cmd/lib/secutil.c:2316,1
    - Dst: PORT_Strcat
      Src: /src/nss/cmd/lib/secutil.c:2317,1
    - Dst: printflags
      Src: /src/nss/cmd/lib/secutil.c:2318,1
    - Dst: PORT_Memcpy
      Src: /src/nss/cmd/lib/secutil.c:2320,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:2322,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - node
    - data
    argTypes:
    - CERTCertListNode*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2325
      start: 2288
    functionDepth: 1
    functionLinenumber: 2288
    functionLinenumberEnd: 2325
    functionName: SECU_PrintCertNickname
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 2
    functionsReached:
    - PORT_Memcpy
    - CERT_GetCertTrust
    - fprintf
    - printflags
    - PORT_Memset
    - PORT_Strcat
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SECU_PrintCertNickname(CERTCertListNode *node, void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/lib/secutil.c:2331,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/cmd/lib/secutil.c:2337,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/cmd/lib/secutil.c:2338,1
    - Dst: SECU_PrintExtensions
      Src: /src/nss/cmd/lib/secutil.c:2340,1
    - Dst: SECU_PrintAny
      Src: /src/nss/cmd/lib/secutil.c:2342,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/lib/secutil.c:2343,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - out
    - any
    - m
    - level
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2345
      start: 2327
    functionDepth: 10
    functionLinenumber: 2327
    functionLinenumberEnd: 2345
    functionName: SECU_DecodeAndPrintExtensions
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - SECU_PrintAny
    - PORT_NewArena
    - PORT_FreeArena
    - SECU_PrintExtensions
    - SEC_QuickDERDecodeItem
    - SEC_ASN1_GET
    linkageType: ''
    returnType: int
    signature: int SECU_DecodeAndPrintExtensions(FILE *out, SECItem *any, char *m,
      int level)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:2353,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:2354,1
    - Dst: SECU_DecodeAndPrintExtensions
      Src: /src/nss/cmd/lib/secutil.c:2357,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - out
    - any
    - m
    - level
    argTypes:
    - FILE*
    - SECItem**
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2361
      start: 2348
    functionDepth: 11
    functionLinenumber: 2348
    functionLinenumberEnd: 2361
    functionName: SECU_PrintSetOfExtensions
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - fprintf
    - SECU_DecodeAndPrintExtensions
    - SECU_Indent
    linkageType: ''
    returnType: int
    signature: int SECU_PrintSetOfExtensions(FILE *out, SECItem **any, char *m, int
      level)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:2369,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:2370,1
    - Dst: SECU_PrintAny
      Src: /src/nss/cmd/lib/secutil.c:2373,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - out
    - any
    - m
    - level
    argTypes:
    - FILE*
    - SECItem**
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2377
      start: 2364
    functionDepth: 6
    functionLinenumber: 2364
    functionLinenumberEnd: 2377
    functionName: SECU_PrintSetOfAny
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - fprintf
    - SECU_PrintAny
    - SECU_Indent
    linkageType: ''
    returnType: int
    signature: int SECU_PrintSetOfAny(FILE *out, SECItem **any, char *m, int level)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECU_PrintObjectID
      Src: /src/nss/cmd/lib/secutil.c:2384,1
    - Dst: SECU_PrintSetOfExtensions
      Src: /src/nss/cmd/lib/secutil.c:2386,1
    - Dst: SECU_PrintSetOfAny
      Src: /src/nss/cmd/lib/secutil.c:2388,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - out
    - attr
    - m
    - level
    argTypes:
    - FILE*
    - CERTAttribute*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2391
      start: 2379
    functionDepth: 12
    functionLinenumber: 2379
    functionLinenumberEnd: 2391
    functionName: SECU_PrintCertAttribute
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - SECU_PrintObjectID
    - SECU_PrintSetOfExtensions
    - SECU_PrintSetOfAny
    linkageType: ''
    returnType: int
    signature: int SECU_PrintCertAttribute(FILE *out, CERTAttribute *attr, char *m,
      int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECU_PrintCertAttribute
      Src: /src/nss/cmd/lib/secutil.c:2398,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - out
    - attrs
    - m
    - level
    argTypes:
    - FILE*
    - CERTAttribute**
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2402
      start: 2393
    functionDepth: 13
    functionLinenumber: 2393
    functionLinenumberEnd: 2402
    functionName: SECU_PrintCertAttributes
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - SECU_PrintCertAttribute
    linkageType: ''
    returnType: int
    signature: int SECU_PrintCertAttributes(FILE *out, CERTAttribute **attrs, char
      *m, int level)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/lib/secutil.c:2408,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/cmd/lib/secutil.c:2416,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/cmd/lib/secutil.c:2420,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/cmd/lib/secutil.c:2421,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:2426,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:2427,1
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/lib/secutil.c:2428,1
    - Dst: SECU_PrintName
      Src: /src/nss/cmd/lib/secutil.c:2429,1
    - Dst: SECU_GetWrapEnabled
      Src: /src/nss/cmd/lib/secutil.c:2430,1
    - Dst: SECU_Newline
      Src: /src/nss/cmd/lib/secutil.c:2431,1
    - Dst: secu_PrintSubjectPublicKeyInfo
      Src: /src/nss/cmd/lib/secutil.c:2432,1
    - Dst: SECU_PrintCertAttributes
      Src: /src/nss/cmd/lib/secutil.c:2435,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/lib/secutil.c:2438,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 4
    argNames:
    - out
    - der
    - m
    - level
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2440
      start: 2405
    functionDepth: 14
    functionLinenumber: 2405
    functionLinenumberEnd: 2440
    functionName: SECU_PrintCertificateRequest
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - PORT_NewArena
    - PORT_FreeArena
    - SECU_PrintCertAttributes
    - fprintf
    - PORT_ArenaZNew
    - SEC_QuickDERDecodeItem
    - SECU_GetWrapEnabled
    - SECU_Indent
    - secu_PrintSubjectPublicKeyInfo
    - SECU_PrintInteger
    - SEC_ASN1_GET
    - SECU_Newline
    - SECU_PrintName
    linkageType: ''
    returnType: int
    signature: int SECU_PrintCertificateRequest(FILE *out, const SECItem *der, const
      char *m, int level)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/lib/secutil.c:2445,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/cmd/lib/secutil.c:2454,1
    - Dst: SEC_ASN1DecodeItem
      Src: /src/nss/cmd/lib/secutil.c:2458,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/cmd/lib/secutil.c:2459,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:2461,1
    - Dst: SECU_PrintErrMsg
      Src: /src/nss/cmd/lib/secutil.c:2462,1
    - Dst: SECU_PrintAny
      Src: /src/nss/cmd/lib/secutil.c:2463,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:2467,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:2468,1
    - Dst: DER_GetInteger
      Src: /src/nss/cmd/lib/secutil.c:2469,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:2470,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:2471,1
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/lib/secutil.c:2473,1
    - Dst: SECU_PrintAlgorithmID
      Src: /src/nss/cmd/lib/secutil.c:2474,1
    - Dst: SECU_PrintName
      Src: /src/nss/cmd/lib/secutil.c:2475,1
    - Dst: SECU_GetWrapEnabled
      Src: /src/nss/cmd/lib/secutil.c:2476,1
    - Dst: SECU_Newline
      Src: /src/nss/cmd/lib/secutil.c:2477,1
    - Dst: secu_PrintValidity
      Src: /src/nss/cmd/lib/secutil.c:2478,1
    - Dst: SECU_PrintName
      Src: /src/nss/cmd/lib/secutil.c:2479,1
    - Dst: SECU_GetWrapEnabled
      Src: /src/nss/cmd/lib/secutil.c:2480,1
    - Dst: SECU_Newline
      Src: /src/nss/cmd/lib/secutil.c:2481,1
    - Dst: secu_PrintSubjectPublicKeyInfo
      Src: /src/nss/cmd/lib/secutil.c:2482,1
    - Dst: secu_PrintDecodedBitString
      Src: /src/nss/cmd/lib/secutil.c:2485,1
    - Dst: secu_PrintDecodedBitString
      Src: /src/nss/cmd/lib/secutil.c:2487,1
    - Dst: SECU_PrintExtensions
      Src: /src/nss/cmd/lib/secutil.c:2488,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/lib/secutil.c:2490,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 4
    argNames:
    - out
    - der
    - m
    - level
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2492
      start: 2442
    functionDepth: 10
    functionLinenumber: 2442
    functionLinenumberEnd: 2492
    functionName: SECU_PrintCertificate
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - secu_PrintValidity
    - SECU_PrintExtensions
    - fprintf
    - secu_PrintSubjectPublicKeyInfo
    - DER_GetInteger
    - SECU_PrintName
    - SECU_PrintAny
    - PORT_NewArena
    - PORT_ArenaZNew
    - SECU_PrintInteger
    - SECU_Newline
    - PORT_FreeArena
    - SEC_ASN1DecodeItem
    - SECU_PrintAlgorithmID
    - SECU_GetWrapEnabled
    - SECU_Indent
    - SECU_PrintErrMsg
    - SEC_ASN1_GET
    - secu_PrintDecodedBitString
    linkageType: ''
    returnType: int
    signature: int SECU_PrintCertificate(FILE *out, const SECItem *der, const char
      *m, int level)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/lib/secutil.c:2497,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/cmd/lib/secutil.c:2505,1
    - Dst: SEC_ASN1DecodeItem
      Src: /src/nss/cmd/lib/secutil.c:2509,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/cmd/lib/secutil.c:2510,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:2512,1
    - Dst: SECU_PrintErrMsg
      Src: /src/nss/cmd/lib/secutil.c:2513,1
    - Dst: SECU_PrintAny
      Src: /src/nss/cmd/lib/secutil.c:2514,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:2518,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:2519,1
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/lib/secutil.c:2520,1
    - Dst: SECU_PrintAlgorithmID
      Src: /src/nss/cmd/lib/secutil.c:2521,1
    - Dst: SECU_PrintName
      Src: /src/nss/cmd/lib/secutil.c:2522,1
    - Dst: SECU_GetWrapEnabled
      Src: /src/nss/cmd/lib/secutil.c:2523,1
    - Dst: SECU_Newline
      Src: /src/nss/cmd/lib/secutil.c:2524,1
    - Dst: secu_PrintValidity
      Src: /src/nss/cmd/lib/secutil.c:2525,1
    - Dst: SECU_PrintName
      Src: /src/nss/cmd/lib/secutil.c:2526,1
    - Dst: SECU_GetWrapEnabled
      Src: /src/nss/cmd/lib/secutil.c:2527,1
    - Dst: SECU_Newline
      Src: /src/nss/cmd/lib/secutil.c:2528,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/lib/secutil.c:2530,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 4
    argNames:
    - out
    - der
    - m
    - level
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2532
      start: 2494
    functionDepth: 6
    functionLinenumber: 2494
    functionLinenumberEnd: 2532
    functionName: SECU_PrintCertificateBasicInfo
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - SECU_PrintAny
    - PORT_NewArena
    - SECU_PrintErrMsg
    - PORT_FreeArena
    - secu_PrintValidity
    - SEC_ASN1DecodeItem
    - PORT_ArenaZNew
    - fprintf
    - SECU_PrintAlgorithmID
    - SECU_GetWrapEnabled
    - SECU_Indent
    - SECU_PrintInteger
    - SEC_ASN1_GET
    - SECU_Newline
    - SECU_PrintName
    linkageType: ''
    returnType: int
    signature: int SECU_PrintCertificateBasicInfo(FILE *out, const SECItem *der, const
      char *m, int level)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/lib/secutil.c:2537,1
    - Dst: PORT_Memset
      Src: /src/nss/cmd/lib/secutil.c:2544,1
    - Dst: SEC_ASN1DecodeItem
      Src: /src/nss/cmd/lib/secutil.c:2545,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/cmd/lib/secutil.c:2546,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:2550,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:2551,1
    - Dst: secu_PrintSubjectPublicKeyInfo
      Src: /src/nss/cmd/lib/secutil.c:2553,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/lib/secutil.c:2557,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - out
    - der
    - m
    - level
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2559
      start: 2534
    functionDepth: 7
    functionLinenumber: 2534
    functionLinenumberEnd: 2559
    functionName: SECU_PrintSubjectPublicKeyInfo
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 1
    functionsReached:
    - PORT_NewArena
    - PORT_FreeArena
    - SEC_ASN1DecodeItem
    - fprintf
    - SECU_Indent
    - PORT_Memset
    - SEC_ASN1_GET
    - secu_PrintSubjectPublicKeyInfo
    linkageType: ''
    returnType: int
    signature: int SECU_PrintSubjectPublicKeyInfo(FILE *out, SECItem *der, char *m,
      int level)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/lib/secutil.c:2564,1
    - Dst: PORT_Memset
      Src: /src/nss/cmd/lib/secutil.c:2571,1
    - Dst: SEC_ASN1DecodeItem
      Src: /src/nss/cmd/lib/secutil.c:2572,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/cmd/lib/secutil.c:2573,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:2578,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:2579,1
    - Dst: SECU_PrintAlgorithmID
      Src: /src/nss/cmd/lib/secutil.c:2580,1
    - Dst: SECU_PrintAsHex
      Src: /src/nss/cmd/lib/secutil.c:2582,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/lib/secutil.c:2584,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - out
    - der
    - m
    - level
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2586
      start: 2561
    functionDepth: 4
    functionLinenumber: 2561
    functionLinenumberEnd: 2586
    functionName: SECU_PrintPrivateKey
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 1
    functionsReached:
    - PORT_NewArena
    - PORT_FreeArena
    - SEC_ASN1DecodeItem
    - fprintf
    - SECU_PrintAlgorithmID
    - SECU_Indent
    - PORT_Memset
    - SEC_ASN1_GET
    - SECU_PrintAsHex
    linkageType: ''
    returnType: int
    signature: int SECU_PrintPrivateKey(FILE *out, SECItem *der, char *m, int level)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_GetError
      Src: /src/nss/cmd/lib/secutil.c:2593,1
    - Dst: memset
      Src: /src/nss/cmd/lib/secutil.c:2598,1
    - Dst: PK11_HashBuf
      Src: /src/nss/cmd/lib/secutil.c:2599,1
    - Dst: CERT_Hexify
      Src: /src/nss/cmd/lib/secutil.c:2602,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:2603,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:2604,1
    - Dst: SECU_GetWrapEnabled
      Src: /src/nss/cmd/lib/secutil.c:2605,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:2606,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:2607,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:2609,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:2611,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/lib/secutil.c:2612,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/lib/secutil.c:2615,1
    - Dst: memset
      Src: /src/nss/cmd/lib/secutil.c:2618,1
    - Dst: PK11_HashBuf
      Src: /src/nss/cmd/lib/secutil.c:2619,1
    - Dst: CERT_Hexify
      Src: /src/nss/cmd/lib/secutil.c:2622,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:2623,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:2624,1
    - Dst: SECU_GetWrapEnabled
      Src: /src/nss/cmd/lib/secutil.c:2625,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:2626,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:2627,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:2629,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:2631,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/lib/secutil.c:2632,1
    - Dst: SECU_GetWrapEnabled
      Src: /src/nss/cmd/lib/secutil.c:2633,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:2634,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/secutil.c:2637,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 4
    argNames:
    - out
    - derCert
    - m
    - level
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2642
      start: 2588
    functionDepth: 1
    functionLinenumber: 2588
    functionLinenumberEnd: 2642
    functionName: SECU_PrintFingerprints
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 1
    functionsReached:
    - PORT_Free
    - PORT_GetError
    - PK11_HashBuf
    - memset
    - fprintf
    - SECU_GetWrapEnabled
    - PORT_SetError
    - CERT_Hexify
    - SECU_Indent
    linkageType: ''
    returnType: int
    signature: int SECU_PrintFingerprints(FILE *out, SECItem *derCert, char *m, int
      level)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOID
      Src: /src/nss/cmd/lib/secutil.c:2671,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:2673,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:2674,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:2675,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:2676,1
    - Dst: SECU_PrintAlgorithmID
      Src: /src/nss/cmd/lib/secutil.c:2679,1
    - Dst: SECU_PrintAsHex
      Src: /src/nss/cmd/lib/secutil.c:2681,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - out
    - src
    - state
    - m
    - level
    argTypes:
    - FILE*
    - SEC_PKCS7EncryptedContentInfo*
    - secuPKCS7State
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2684
      start: 2666
    functionDepth: 4
    functionLinenumber: 2666
    functionLinenumberEnd: 2684
    functionName: secu_PrintPKCS7EncContent
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 3
    functionsReached:
    - SECOID_FindOID
    - fprintf
    - SECU_PrintAlgorithmID
    - SECU_Indent
    - SECU_PrintAsHex
    linkageType: ''
    returnType: int
    signature: "int secu_PrintPKCS7EncContent(FILE *out, SEC_PKCS7EncryptedContentInfo
      *src,\n                          secuPKCS7State state, const char *m, int level)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:2694,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:2695,1
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/lib/secutil.c:2696,1
    - Dst: SECU_PrintName
      Src: /src/nss/cmd/lib/secutil.c:2698,1
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/lib/secutil.c:2700,1
    - Dst: SECU_PrintAlgorithmID
      Src: /src/nss/cmd/lib/secutil.c:2704,1
    - Dst: SECU_PrintAsHex
      Src: /src/nss/cmd/lib/secutil.c:2706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - out
    - info
    - m
    - level
    argTypes:
    - FILE*
    - SEC_PKCS7RecipientInfo*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2707
      start: 2690
    functionDepth: 4
    functionLinenumber: 2690
    functionLinenumberEnd: 2707
    functionName: secu_PrintRecipientInfo
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 2
    functionsReached:
    - SECU_PrintAsHex
    - fprintf
    - SECU_PrintAlgorithmID
    - SECU_Indent
    - SECU_PrintInteger
    - SECU_PrintName
    linkageType: ''
    returnType: void
    signature: "void secu_PrintRecipientInfo(FILE *out, SEC_PKCS7RecipientInfo *info,\n
      \                       const char *m, int level)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:2721,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:2722,1
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/lib/secutil.c:2723,1
    - Dst: SECU_PrintName
      Src: /src/nss/cmd/lib/secutil.c:2725,1
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/lib/secutil.c:2727,1
    - Dst: SECU_PrintAlgorithmID
      Src: /src/nss/cmd/lib/secutil.c:2730,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:2734,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:2735,1
    - Dst: snprintf
      Src: /src/nss/cmd/lib/secutil.c:2738,1
    - Dst: secu_PrintAttribute
      Src: /src/nss/cmd/lib/secutil.c:2739,1
    - Dst: SECU_PrintAlgorithmID
      Src: /src/nss/cmd/lib/secutil.c:2744,1
    - Dst: SECU_PrintAsHex
      Src: /src/nss/cmd/lib/secutil.c:2746,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:2749,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:2750,1
    - Dst: snprintf
      Src: /src/nss/cmd/lib/secutil.c:2753,1
    - Dst: secu_PrintAttribute
      Src: /src/nss/cmd/lib/secutil.c:2754,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 4
    argNames:
    - out
    - info
    - m
    - level
    argTypes:
    - FILE*
    - SEC_PKCS7SignerInfo*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2757
      start: 2713
    functionDepth: 7
    functionLinenumber: 2713
    functionLinenumberEnd: 2757
    functionName: secu_PrintSignerInfo
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 1
    functionsReached:
    - secu_PrintAttribute
    - SECU_PrintAsHex
    - fprintf
    - SECU_PrintAlgorithmID
    - snprintf
    - SECU_Indent
    - SECU_PrintInteger
    - SECU_PrintName
    linkageType: ''
    returnType: void
    signature: "void secu_PrintSignerInfo(FILE *out, SEC_PKCS7SignerInfo *info,\n
      \                    const char *m, int level)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:2771,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:2772,1
    - Dst: DER_GetInteger
      Src: /src/nss/cmd/lib/secutil.c:2774,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:2775,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:2776,1
    - Dst: SECU_PrintAlgorithmID
      Src: /src/nss/cmd/lib/secutil.c:2777,1
    - Dst: SECU_PrintName
      Src: /src/nss/cmd/lib/secutil.c:2779,1
    - Dst: SECU_PrintTimeChoice
      Src: /src/nss/cmd/lib/secutil.c:2780,1
    - Dst: SECU_PrintTimeChoice
      Src: /src/nss/cmd/lib/secutil.c:2782,1
    - Dst: snprintf
      Src: /src/nss/cmd/lib/secutil.c:2787,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:2788,1
    - Dst: fputs
      Src: /src/nss/cmd/lib/secutil.c:2789,1
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/lib/secutil.c:2790,1
    - Dst: SECU_PrintTimeChoice
      Src: /src/nss/cmd/lib/secutil.c:2792,1
    - Dst: SECU_PrintExtensions
      Src: /src/nss/cmd/lib/secutil.c:2794,1
    - Dst: SECU_PrintExtensions
      Src: /src/nss/cmd/lib/secutil.c:2798,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 4
    argNames:
    - out
    - crl
    - m
    - level
    argTypes:
    - FILE*
    - CERTCrl*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2799
      start: 2764
    functionDepth: 10
    functionLinenumber: 2764
    functionLinenumberEnd: 2799
    functionName: SECU_PrintCRLInfo
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 1
    functionsReached:
    - SECU_PrintTimeChoice
    - fputs
    - SECU_PrintExtensions
    - fprintf
    - SECU_PrintAlgorithmID
    - snprintf
    - SECU_Indent
    - SECU_PrintInteger
    - DER_GetInteger
    - SECU_PrintName
    linkageType: ''
    returnType: void
    signature: void SECU_PrintCRLInfo(FILE *out, CERTCrl *crl, const char *m, int
      level)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:2816,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:2817,1
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/lib/secutil.c:2818,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:2822,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:2823,1
    - Dst: snprintf
      Src: /src/nss/cmd/lib/secutil.c:2826,1
    - Dst: SECU_PrintAlgorithmID
      Src: /src/nss/cmd/lib/secutil.c:2827,1
    - Dst: secu_PrintPKCS7ContentInfo
      Src: /src/nss/cmd/lib/secutil.c:2832,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:2839,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:2840,1
    - Dst: snprintf
      Src: /src/nss/cmd/lib/secutil.c:2843,1
    - Dst: SECU_PrintSignedData
      Src: /src/nss/cmd/lib/secutil.c:2844,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:2853,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:2854,1
    - Dst: snprintf
      Src: /src/nss/cmd/lib/secutil.c:2857,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:2858,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:2859,1
    - Dst: SECU_PrintAlgorithmID
      Src: /src/nss/cmd/lib/secutil.c:2860,1
    - Dst: DER_ConvertBitString
      Src: /src/nss/cmd/lib/secutil.c:2862,1
    - Dst: SECU_PrintAsHex
      Src: /src/nss/cmd/lib/secutil.c:2863,1
    - Dst: SECU_PrintCRLInfo
      Src: /src/nss/cmd/lib/secutil.c:2865,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:2872,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:2873,1
    - Dst: snprintf
      Src: /src/nss/cmd/lib/secutil.c:2876,1
    - Dst: secu_PrintSignerInfo
      Src: /src/nss/cmd/lib/secutil.c:2877,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 51
    argCount: 5
    argNames:
    - out
    - src
    - state
    - m
    - level
    argTypes:
    - FILE*
    - SEC_PKCS7SignedData*
    - secuPKCS7State
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2882
      start: 2805
    functionDepth: 11
    functionLinenumber: 2805
    functionLinenumberEnd: 2882
    functionName: secu_PrintPKCS7Signed
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - DER_ConvertBitString
    - SECU_PrintSignedData
    - secu_PrintSignerInfo
    - secu_PrintPKCS7ContentInfo
    - fprintf
    - SECU_PrintAlgorithmID
    - SECU_PrintCRLInfo
    - snprintf
    - SECU_Indent
    - SECU_PrintInteger
    - SECU_PrintAsHex
    linkageType: ''
    returnType: int
    signature: "int secu_PrintPKCS7Signed(FILE *out, SEC_PKCS7SignedData *src,\n                      secuPKCS7State
      state, const char *m, int level)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:2896,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:2897,1
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/lib/secutil.c:2898,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:2902,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:2903,1
    - Dst: snprintf
      Src: /src/nss/cmd/lib/secutil.c:2906,1
    - Dst: secu_PrintRecipientInfo
      Src: /src/nss/cmd/lib/secutil.c:2907,1
    - Dst: secu_PrintPKCS7EncContent
      Src: /src/nss/cmd/lib/secutil.c:2911,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 5
    argNames:
    - out
    - src
    - state
    - m
    - level
    argTypes:
    - FILE*
    - SEC_PKCS7EnvelopedData*
    - secuPKCS7State
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2913
      start: 2888
    functionDepth: 1
    functionLinenumber: 2888
    functionLinenumberEnd: 2913
    functionName: secu_PrintPKCS7Enveloped
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - secu_PrintRecipientInfo
    - fprintf
    - secu_PrintPKCS7EncContent
    - snprintf
    - SECU_Indent
    - SECU_PrintInteger
    linkageType: ''
    returnType: int
    signature: "int secu_PrintPKCS7Enveloped(FILE *out, SEC_PKCS7EnvelopedData *src,\n
      \                        secuPKCS7State state, const char *m, int level)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:2933,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:2934,1
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/lib/secutil.c:2935,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:2939,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:2940,1
    - Dst: snprintf
      Src: /src/nss/cmd/lib/secutil.c:2943,1
    - Dst: secu_PrintRecipientInfo
      Src: /src/nss/cmd/lib/secutil.c:2944,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:2950,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:2951,1
    - Dst: snprintf
      Src: /src/nss/cmd/lib/secutil.c:2954,1
    - Dst: SECU_PrintAlgorithmID
      Src: /src/nss/cmd/lib/secutil.c:2955,1
    - Dst: secu_PrintPKCS7EncContent
      Src: /src/nss/cmd/lib/secutil.c:2959,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:2966,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:2967,1
    - Dst: snprintf
      Src: /src/nss/cmd/lib/secutil.c:2970,1
    - Dst: SECU_PrintSignedData
      Src: /src/nss/cmd/lib/secutil.c:2971,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:2980,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:2981,1
    - Dst: snprintf
      Src: /src/nss/cmd/lib/secutil.c:2984,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:2985,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:2986,1
    - Dst: SECU_PrintAlgorithmID
      Src: /src/nss/cmd/lib/secutil.c:2987,1
    - Dst: DER_ConvertBitString
      Src: /src/nss/cmd/lib/secutil.c:2989,1
    - Dst: SECU_PrintAsHex
      Src: /src/nss/cmd/lib/secutil.c:2990,1
    - Dst: SECU_PrintCRLInfo
      Src: /src/nss/cmd/lib/secutil.c:2992,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:2999,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:3000,1
    - Dst: snprintf
      Src: /src/nss/cmd/lib/secutil.c:3003,1
    - Dst: secu_PrintSignerInfo
      Src: /src/nss/cmd/lib/secutil.c:3004,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 60
    argCount: 5
    argNames:
    - out
    - src
    - state
    - m
    - level
    argTypes:
    - FILE*
    - SEC_PKCS7SignedAndEnvelopedData*
    - secuPKCS7State
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3009
      start: 2919
    functionDepth: 11
    functionLinenumber: 2919
    functionLinenumberEnd: 3009
    functionName: secu_PrintPKCS7SignedAndEnveloped
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - DER_ConvertBitString
    - SECU_PrintSignedData
    - secu_PrintSignerInfo
    - secu_PrintRecipientInfo
    - fprintf
    - SECU_PrintAlgorithmID
    - secu_PrintPKCS7EncContent
    - snprintf
    - SECU_PrintCRLInfo
    - SECU_Indent
    - SECU_PrintInteger
    - SECU_PrintAsHex
    linkageType: ''
    returnType: int
    signature: "int secu_PrintPKCS7SignedAndEnveloped(FILE *out,\n                                  SEC_PKCS7SignedAndEnvelopedData
      *src,\n                                  secuPKCS7State state, const char *m,\n
      \                                 int level)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/lib/secutil.c:3014,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/cmd/lib/secutil.c:3022,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/cmd/lib/secutil.c:3026,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/cmd/lib/secutil.c:3026,1
    - Dst: SECU_PrintCRLInfo
      Src: /src/nss/cmd/lib/secutil.c:3029,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/lib/secutil.c:3031,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 4
    argNames:
    - out
    - der
    - m
    - level
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3033
      start: 3011
    functionDepth: 11
    functionLinenumber: 3011
    functionLinenumberEnd: 3033
    functionName: SECU_PrintCrl
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - PORT_NewArena
    - PORT_FreeArena
    - PORT_ArenaZNew
    - SECU_PrintCRLInfo
    - SEC_QuickDERDecodeItem
    - SEC_ASN1_GET
    linkageType: ''
    returnType: int
    signature: int SECU_PrintCrl(FILE *out, const SECItem *der, const char *m, int
      level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:3043,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:3044,1
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/lib/secutil.c:3045,1
    - Dst: secu_PrintPKCS7EncContent
      Src: /src/nss/cmd/lib/secutil.c:3047,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - out
    - src
    - state
    - m
    - level
    argTypes:
    - FILE*
    - SEC_PKCS7EncryptedData*
    - secuPKCS7State
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3049
      start: 3039
    functionDepth: 1
    functionLinenumber: 3039
    functionLinenumberEnd: 3049
    functionName: secu_PrintPKCS7Encrypted
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - fprintf
    - SECU_PrintInteger
    - secu_PrintPKCS7EncContent
    - SECU_Indent
    linkageType: ''
    returnType: int
    signature: "int secu_PrintPKCS7Encrypted(FILE *out, SEC_PKCS7EncryptedData *src,\n
      \                        secuPKCS7State state, const char *m, int level)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:3059,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:3060,1
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/lib/secutil.c:3061,1
    - Dst: SECU_PrintAlgorithmID
      Src: /src/nss/cmd/lib/secutil.c:3063,1
    - Dst: secu_PrintPKCS7ContentInfo
      Src: /src/nss/cmd/lib/secutil.c:3065,1
    - Dst: SECU_PrintAsHex
      Src: /src/nss/cmd/lib/secutil.c:3067,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - out
    - src
    - state
    - m
    - level
    argTypes:
    - FILE*
    - SEC_PKCS7DigestedData*
    - secuPKCS7State
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3069
      start: 3055
    functionDepth: 4
    functionLinenumber: 3055
    functionLinenumberEnd: 3069
    functionName: secu_PrintPKCS7Digested
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - secu_PrintPKCS7ContentInfo
    - fprintf
    - SECU_PrintAlgorithmID
    - SECU_Indent
    - SECU_PrintInteger
    - SECU_PrintAsHex
    linkageType: ''
    returnType: int
    signature: "int secu_PrintPKCS7Digested(FILE *out, SEC_PKCS7DigestedData *src,\n
      \                       secuPKCS7State state, const char *m, int level)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: SECU_StripTagAndLength
      Src: /src/nss/cmd/lib/secutil.c:3080,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/secutil.c:3081,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:3084,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:3085,1
    - Dst: SECU_ExtractBERAndStep
      Src: /src/nss/cmd/lib/secutil.c:3089,1
    - Dst: SECU_StripTagAndLength
      Src: /src/nss/cmd/lib/secutil.c:3093,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/secutil.c:3094,1
    - Dst: SECU_ExtractBERAndStep
      Src: /src/nss/cmd/lib/secutil.c:3099,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/secutil.c:3103,1
    - Dst: SECU_PrintEncodedObjectID
      Src: /src/nss/cmd/lib/secutil.c:3106,1
    - Dst: SECU_ExtractBERAndStep
      Src: /src/nss/cmd/lib/secutil.c:3112,1
    - Dst: SECU_StripTagAndLength
      Src: /src/nss/cmd/lib/secutil.c:3115,1
    - Dst: SECU_ExtractBERAndStep
      Src: /src/nss/cmd/lib/secutil.c:3120,1
    - Dst: SECU_PrintAny
      Src: /src/nss/cmd/lib/secutil.c:3123,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 4
    argNames:
    - out
    - item
    - m
    - level
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3127
      start: 3071
    functionDepth: 6
    functionLinenumber: 3071
    functionLinenumberEnd: 3127
    functionName: secu_PrintPKCS12Attributes
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - SECU_PrintAny
    - SECU_StripTagAndLength
    - SECU_ExtractBERAndStep
    - fprintf
    - PORT_SetError
    - SECU_Indent
    - SECU_PrintEncodedObjectID
    linkageType: ''
    returnType: int
    signature: int secu_PrintPKCS12Attributes(FILE *out, SECItem *item, const char
      *m, int level)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: SECU_StripTagAndLength
      Src: /src/nss/cmd/lib/secutil.c:3142,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/secutil.c:3143,1
    - Dst: SECU_ExtractBERAndStep
      Src: /src/nss/cmd/lib/secutil.c:3148,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/secutil.c:3152,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/lib/secutil.c:3155,1
    - Dst: SECU_PrintEncodedObjectID
      Src: /src/nss/cmd/lib/secutil.c:3156,1
    - Dst: PR_smprintf_free
      Src: /src/nss/cmd/lib/secutil.c:3158,1
    - Dst: SECU_ExtractBERAndStep
      Src: /src/nss/cmd/lib/secutil.c:3161,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/secutil.c:3166,1
    - Dst: SECU_StripTagAndLength
      Src: /src/nss/cmd/lib/secutil.c:3169,1
    - Dst: SECU_PrintAny
      Src: /src/nss/cmd/lib/secutil.c:3179,1
    - Dst: SECU_PrintPrivateKey
      Src: /src/nss/cmd/lib/secutil.c:3182,1
    - Dst: secu_PrintPKCS12Bag
      Src: /src/nss/cmd/lib/secutil.c:3186,1
    - Dst: secu_PrintPKCS12Bag
      Src: /src/nss/cmd/lib/secutil.c:3189,1
    - Dst: secu_PrintPKCS12Bag
      Src: /src/nss/cmd/lib/secutil.c:3192,1
    - Dst: SECU_StripTagAndLength
      Src: /src/nss/cmd/lib/secutil.c:3199,1
    - Dst: strcmp
      Src: /src/nss/cmd/lib/secutil.c:3207,1
    - Dst: SECU_PrintSignedData
      Src: /src/nss/cmd/lib/secutil.c:3208,1
    - Dst: SECU_PrintSignedData
      Src: /src/nss/cmd/lib/secutil.c:3211,1
    - Dst: SECU_ExtractBERAndStep
      Src: /src/nss/cmd/lib/secutil.c:3218,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/lib/secutil.c:3222,1
    - Dst: secu_PrintPKCS12Bag
      Src: /src/nss/cmd/lib/secutil.c:3223,1
    - Dst: PR_smprintf_free
      Src: /src/nss/cmd/lib/secutil.c:3226,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/lib/secutil.c:3233,1
    - Dst: SECU_PrintAny
      Src: /src/nss/cmd/lib/secutil.c:3234,1
    - Dst: PR_smprintf_free
      Src: /src/nss/cmd/lib/secutil.c:3236,1
    - Dst: SECU_ExtractBERAndStep
      Src: /src/nss/cmd/lib/secutil.c:3245,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/lib/secutil.c:3248,1
    - Dst: secu_PrintPKCS12Attributes
      Src: /src/nss/cmd/lib/secutil.c:3249,1
    - Dst: PR_smprintf_free
      Src: /src/nss/cmd/lib/secutil.c:3252,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 93
    argCount: 4
    argNames:
    - out
    - item
    - desc
    - level
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3255
      start: 3129
    functionDepth: 7
    functionLinenumber: 3129
    functionLinenumberEnd: 3255
    functionName: secu_PrintPKCS12Bag
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 1
    functionsReached:
    - strcmp
    - SECU_PrintAny
    - SECU_PrintPrivateKey
    - SECU_StripTagAndLength
    - SECU_PrintSignedData
    - SECU_ExtractBERAndStep
    - PORT_SetError
    - PR_smprintf_free
    - secu_PrintPKCS12Bag
    - PR_smprintf
    - SECU_PrintEncodedObjectID
    - secu_PrintPKCS12Attributes
    linkageType: ''
    returnType: int
    signature: int secu_PrintPKCS12Bag(FILE *out, SECItem *item, const char *desc,
      int level)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: SECU_StripTagAndLength
      Src: /src/nss/cmd/lib/secutil.c:3270,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/secutil.c:3271,1
    - Dst: SECU_ExtractBERAndStep
      Src: /src/nss/cmd/lib/secutil.c:3276,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/lib/secutil.c:3279,1
    - Dst: secu_PrintDERPKCS7ContentInfo
      Src: /src/nss/cmd/lib/secutil.c:3280,1
    - Dst: PR_smprintf_free
      Src: /src/nss/cmd/lib/secutil.c:3284,1
    - Dst: SECU_StripTagAndLength
      Src: /src/nss/cmd/lib/secutil.c:3292,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/secutil.c:3293,1
    - Dst: SECU_ExtractBERAndStep
      Src: /src/nss/cmd/lib/secutil.c:3298,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/lib/secutil.c:3301,1
    - Dst: secu_PrintPKCS12Bag
      Src: /src/nss/cmd/lib/secutil.c:3302,1
    - Dst: PR_smprintf_free
      Src: /src/nss/cmd/lib/secutil.c:3305,1
    - Dst: SECU_PrintAsHex
      Src: /src/nss/cmd/lib/secutil.c:3312,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 5
    argNames:
    - out
    - item
    - state
    - desc
    - level
    argTypes:
    - FILE*
    - SECItem*
    - secuPKCS7State
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3316
      start: 3257
    functionDepth: 8
    functionLinenumber: 3257
    functionLinenumberEnd: 3316
    functionName: secu_PrintPKCS7Data
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - SECU_StripTagAndLength
    - SECU_ExtractBERAndStep
    - PORT_SetError
    - PR_smprintf_free
    - secu_PrintPKCS12Bag
    - secu_PrintDERPKCS7ContentInfo
    - PR_smprintf
    - SECU_PrintAsHex
    linkageType: ''
    returnType: int
    signature: "int secu_PrintPKCS7Data(FILE *out, SECItem *item, secuPKCS7State state,\n
      \                   const char *desc, int level)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:3331,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:3332,1
    - Dst: SECOID_FindOID
      Src: /src/nss/cmd/lib/secutil.c:3336,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:3347,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:3348,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:3350,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:3351,1
    - Dst: secu_PrintPKCS7Signed
      Src: /src/nss/cmd/lib/secutil.c:3358,1
    - Dst: secu_PrintPKCS7Enveloped
      Src: /src/nss/cmd/lib/secutil.c:3363,1
    - Dst: secu_PrintPKCS7SignedAndEnveloped
      Src: /src/nss/cmd/lib/secutil.c:3368,1
    - Dst: secu_PrintPKCS7Digested
      Src: /src/nss/cmd/lib/secutil.c:3374,1
    - Dst: secu_PrintPKCS7Encrypted
      Src: /src/nss/cmd/lib/secutil.c:3379,1
    - Dst: secu_PrintPKCS7Data
      Src: /src/nss/cmd/lib/secutil.c:3384,1
    - Dst: SECU_PrintAsHex
      Src: /src/nss/cmd/lib/secutil.c:3388,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 46
    argCount: 5
    argNames:
    - out
    - src
    - state
    - m
    - level
    argTypes:
    - FILE*
    - SEC_PKCS7ContentInfo*
    - secuPKCS7State
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3393
      start: 3323
    functionDepth: 12
    functionLinenumber: 3323
    functionLinenumberEnd: 3393
    functionName: secu_PrintPKCS7ContentInfo
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 2
    functionsReached:
    - secu_PrintPKCS7Enveloped
    - secu_PrintPKCS7Data
    - secu_PrintPKCS7Signed
    - SECOID_FindOID
    - fprintf
    - secu_PrintPKCS7Digested
    - secu_PrintPKCS7Encrypted
    - SECU_Indent
    - secu_PrintPKCS7SignedAndEnveloped
    - SECU_PrintAsHex
    linkageType: ''
    returnType: int
    signature: "int secu_PrintPKCS7ContentInfo(FILE *out, SEC_PKCS7ContentInfo *src,\n
      \                          secuPKCS7State state, const char *m, int level)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SEC_PKCS7DecodeItem
      Src: /src/nss/cmd/lib/secutil.c:3406,1
    - Dst: secu_PrintPKCS7ContentInfo
      Src: /src/nss/cmd/lib/secutil.c:3409,1
    - Dst: SEC_PKCS7DestroyContentInfo
      Src: /src/nss/cmd/lib/secutil.c:3410,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - out
    - der
    - state
    - m
    - level
    argTypes:
    - FILE*
    - SECItem*
    - secuPKCS7State
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3416
      start: 3399
    functionDepth: 13
    functionLinenumber: 3399
    functionLinenumberEnd: 3416
    functionName: secu_PrintDERPKCS7ContentInfo
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 1
    functionsReached:
    - SEC_PKCS7DecodeItem
    - secu_PrintPKCS7ContentInfo
    - SEC_PKCS7DestroyContentInfo
    linkageType: ''
    returnType: int
    signature: "int secu_PrintDERPKCS7ContentInfo(FILE *out, SECItem *der, secuPKCS7State
      state,\n                              const char *m, int level)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: secu_PrintDERPKCS7ContentInfo
      Src: /src/nss/cmd/lib/secutil.c:3421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - out
    - der
    - m
    - level
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3422
      start: 3418
    functionDepth: 14
    functionLinenumber: 3418
    functionLinenumberEnd: 3422
    functionName: SECU_PrintPKCS7ContentInfo
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 1
    functionsReached:
    - secu_PrintDERPKCS7ContentInfo
    linkageType: ''
    returnType: int
    signature: int SECU_PrintPKCS7ContentInfo(FILE *out, SECItem *der, char *m, int
      level)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:3432,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:3433,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:3436,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:3437,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:3440,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:3441,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:3444,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:3445,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:3448,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:3449,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:3452,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:3453,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:3456,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:3457,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:3460,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:3461,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:3464,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:3465,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 3
    argNames:
    - out
    - flags
    - level
    argTypes:
    - FILE*
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3467
      start: 3428
    functionDepth: 1
    functionLinenumber: 3428
    functionLinenumberEnd: 3467
    functionName: printFlags
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 1
    functionsReached:
    - fprintf
    - SECU_Indent
    linkageType: ''
    returnType: void
    signature: void printFlags(FILE *out, unsigned int flags, int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:3472,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:3473,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:3474,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:3475,1
    - Dst: printFlags
      Src: /src/nss/cmd/lib/secutil.c:3476,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:3477,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:3478,1
    - Dst: printFlags
      Src: /src/nss/cmd/lib/secutil.c:3479,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:3480,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:3481,1
    - Dst: printFlags
      Src: /src/nss/cmd/lib/secutil.c:3482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 4
    argNames:
    - out
    - trust
    - m
    - level
    argTypes:
    - FILE*
    - CERTCertTrust*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3483
      start: 3469
    functionDepth: 1
    functionLinenumber: 3469
    functionLinenumberEnd: 3483
    functionName: SECU_PrintTrustFlags
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - fprintf
    - SECU_Indent
    - printFlags
    linkageType: ''
    returnType: void
    signature: void SECU_PrintTrustFlags(FILE *out, CERTCertTrust *trust, char *m,
      int level)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/lib/secutil.c:3488,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/cmd/lib/secutil.c:3495,1
    - Dst: SEC_ASN1DecodeItem
      Src: /src/nss/cmd/lib/secutil.c:3499,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/cmd/lib/secutil.c:3499,1
    - Dst: SECU_PrintName
      Src: /src/nss/cmd/lib/secutil.c:3503,1
    - Dst: SECU_GetWrapEnabled
      Src: /src/nss/cmd/lib/secutil.c:3504,1
    - Dst: SECU_Newline
      Src: /src/nss/cmd/lib/secutil.c:3505,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/lib/secutil.c:3507,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - out
    - der
    - m
    - level
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3509
      start: 3485
    functionDepth: 4
    functionLinenumber: 3485
    functionLinenumberEnd: 3509
    functionName: SECU_PrintDERName
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 2
    functionsReached:
    - PORT_NewArena
    - PORT_FreeArena
    - SEC_ASN1DecodeItem
    - PORT_ArenaZNew
    - SECU_GetWrapEnabled
    - SEC_ASN1_GET
    - SECU_Newline
    - SECU_PrintName
    linkageType: ''
    returnType: int
    signature: int SECU_PrintDERName(FILE *out, SECItem *der, const char *m, int level)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/lib/secutil.c:3521,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/cmd/lib/secutil.c:3529,1
    - Dst: SEC_ASN1DecodeItem
      Src: /src/nss/cmd/lib/secutil.c:3533,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/cmd/lib/secutil.c:3533,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:3539,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:3540,1
    - Dst: SECU_PrintAlgorithmID
      Src: /src/nss/cmd/lib/secutil.c:3547,1
    - Dst: DER_ConvertBitString
      Src: /src/nss/cmd/lib/secutil.c:3549,1
    - Dst: SECU_PrintAsHex
      Src: /src/nss/cmd/lib/secutil.c:3550,1
    - Dst: SECU_PrintFingerprints
      Src: /src/nss/cmd/lib/secutil.c:3552,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/lib/secutil.c:3554,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 6
    argNames:
    - out
    - der
    - m
    - level
    - inner
    - signatureOption
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    - SECU_PPFunc
    - SignatureOptionType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3556
      start: 3516
    functionDepth: 4
    functionLinenumber: 3516
    functionLinenumberEnd: 3556
    functionName: secu_PrintSignedDataSigOpt
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - DER_ConvertBitString
    - PORT_NewArena
    - SECU_PrintFingerprints
    - PORT_FreeArena
    - SEC_ASN1DecodeItem
    - PORT_ArenaZNew
    - fprintf
    - SECU_PrintAlgorithmID
    - SECU_Indent
    - SEC_ASN1_GET
    - SECU_PrintAsHex
    linkageType: ''
    returnType: int
    signature: "int secu_PrintSignedDataSigOpt(FILE *out, SECItem *der, const char
      *m,\n                           int level, SECU_PPFunc inner,\n                           SignatureOptionType
      signatureOption)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: secu_PrintSignedDataSigOpt
      Src: /src/nss/cmd/lib/secutil.c:3562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - out
    - der
    - m
    - level
    - inner
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    - SECU_PPFunc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3564
      start: 3558
    functionDepth: 5
    functionLinenumber: 3558
    functionLinenumberEnd: 3564
    functionName: SECU_PrintSignedData
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 7
    functionsReached:
    - secu_PrintSignedDataSigOpt
    linkageType: ''
    returnType: int
    signature: "int SECU_PrintSignedData(FILE *out, SECItem *der, const char *m,\n
      \                    int level, SECU_PPFunc inner)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: secu_PrintSignedDataSigOpt
      Src: /src/nss/cmd/lib/secutil.c:3570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - out
    - der
    - m
    - level
    - inner
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    - SECU_PPFunc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3572
      start: 3566
    functionDepth: 5
    functionLinenumber: 3566
    functionLinenumberEnd: 3572
    functionName: SECU_PrintSignedContent
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 1
    functionsReached:
    - secu_PrintSignedDataSigOpt
    linkageType: ''
    returnType: int
    signature: "int SECU_PrintSignedContent(FILE *out, SECItem *der, char *m,\n                        int
      level, SECU_PPFunc inner)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: SECU_PrintSignedData
      Src: /src/nss/cmd/lib/secutil.c:3590,1
    - Dst: PK11_GetAllSlotsForCert
      Src: /src/nss/cmd/lib/secutil.c:3596,1
    - Dst: PK11_GetFirstSafe
      Src: /src/nss/cmd/lib/secutil.c:3598,1
    - Dst: PK11_GetNextSafe
      Src: /src/nss/cmd/lib/secutil.c:3599,1
    - Dst: PK11_FindCertInSlot
      Src: /src/nss/cmd/lib/secutil.c:3600,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/secutil.c:3602,1
    - Dst: PK11_HasAttributeSet
      Src: /src/nss/cmd/lib/secutil.c:3603,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/lib/secutil.c:3606,1
    - Dst: PK11_FreeSlotList
      Src: /src/nss/cmd/lib/secutil.c:3611,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:3621,1
    - Dst: printf
      Src: /src/nss/cmd/lib/secutil.c:3622,1
    - Dst: SECU_PrintTrustFlags
      Src: /src/nss/cmd/lib/secutil.c:3625,1
    - Dst: CERT_GetCertTrust
      Src: /src/nss/cmd/lib/secutil.c:3627,1
    - Dst: SECU_PrintTrustFlags
      Src: /src/nss/cmd/lib/secutil.c:3628,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:3637,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:3638,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:3639,1
    - Dst: SECU_PrintTimeChoice
      Src: /src/nss/cmd/lib/secutil.c:3641,1
    - Dst: SECU_PrintTimeChoice
      Src: /src/nss/cmd/lib/secutil.c:3646,1
    - Dst: printf
      Src: /src/nss/cmd/lib/secutil.c:3652,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 51
    argCount: 3
    argNames:
    - cert
    - label
    - trust
    argTypes:
    - CERTCertificate*
    - char*
    - CERTCertTrust*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3655
      start: 3574
    functionDepth: 6
    functionLinenumber: 3574
    functionLinenumberEnd: 3655
    functionName: SEC_PrintCertificateAndTrust
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 2
    functionsReached:
    - PK11_FreeSlotList
    - PK11_GetNextSafe
    - SECU_PrintSignedData
    - PK11_FindCertInSlot
    - PORT_GetError
    - printf
    - PK11_HasAttributeSet
    - fprintf
    - PK11_GetFirstSafe
    - PORT_SetError
    - SECU_PrintTrustFlags
    - SECU_Indent
    - PK11_GetAllSlotsForCert
    - CERT_GetCertTrust
    - SECU_PrintTimeChoice
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SEC_PrintCertificateAndTrust(CERTCertificate *cert,\n                             const
      char *label,\n                             CERTCertTrust *trust)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - cert
    argTypes:
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3667
      start: 3657
    functionDepth: 0
    functionLinenumber: 3657
    functionLinenumberEnd: 3667
    functionName: bestCertName
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      bestCertName(CERTCertificate *cert)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_GetError
      Src: /src/nss/cmd/lib/secutil.c:3678,1
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/lib/secutil.c:3680,1
    - Dst: CERT_VerifyCertificate
      Src: /src/nss/cmd/lib/secutil.c:3683,1
    - Dst: SECU_displayVerifyLog
      Src: /src/nss/cmd/lib/secutil.c:3685,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/lib/secutil.c:3689,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/lib/secutil.c:3691,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/secutil.c:3693,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 8
    argNames:
    - outfile
    - handle
    - cert
    - checksig
    - certUsage
    - pinArg
    - verbose
    - datetime
    argTypes:
    - FILE*
    - CERTCertDBHandle*
    - CERTCertificate*
    - PRBool
    - SECCertificateUsage
    - void*
    - PRBool
    - PRTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3694
      start: 3669
    functionDepth: 1
    functionLinenumber: 3669
    functionLinenumberEnd: 3694
    functionName: SECU_printCertProblemsOnDate
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - PORT_NewArena
    - PORT_FreeArena
    - PORT_GetError
    - SECU_displayVerifyLog
    - PORT_SetError
    - CERT_DestroyCertificate
    - CERT_VerifyCertificate
    linkageType: ''
    returnType: void
    signature: "void SECU_printCertProblemsOnDate(FILE *outfile, CERTCertDBHandle
      *handle,\n                             CERTCertificate *cert, PRBool checksig,\n
      \                            SECCertificateUsage certUsage, void *pinArg, PRBool
      verbose,\n                             PRTime datetime)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:3706,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:3710,1
    - Dst: bestCertName
      Src: /src/nss/cmd/lib/secutil.c:3711,1
    - Dst: CERT_GetFirstEmailAddress
      Src: /src/nss/cmd/lib/secutil.c:3715,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:3717,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:3719,1
    - Dst: CERT_GetNextEmailAddress
      Src: /src/nss/cmd/lib/secutil.c:3720,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:3726,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/lib/secutil.c:3727,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:3783,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 78
    argCount: 3
    argNames:
    - outfile
    - log
    - verbose
    argTypes:
    - FILE*
    - CERTVerifyLog*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3787
      start: 3696
    functionDepth: 1
    functionLinenumber: 3696
    functionLinenumberEnd: 3787
    functionName: SECU_displayVerifyLog
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 2
    functionsReached:
    - SECU_Strerror
    - CERT_GetNextEmailAddress
    - CERT_GetFirstEmailAddress
    - fprintf
    - bestCertName
    linkageType: ''
    returnType: void
    signature: "void SECU_displayVerifyLog(FILE *outfile, CERTVerifyLog *log,\n                      PRBool
      verbose)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECU_printCertProblemsOnDate
      Src: /src/nss/cmd/lib/secutil.c:3794,1
    - Dst: PR_Now
      Src: /src/nss/cmd/lib/secutil.c:3795,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - outfile
    - handle
    - cert
    - checksig
    - certUsage
    - pinArg
    - verbose
    argTypes:
    - FILE*
    - CERTCertDBHandle*
    - CERTCertificate*
    - PRBool
    - SECCertificateUsage
    - void*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3796
      start: 3789
    functionDepth: 2
    functionLinenumber: 3789
    functionLinenumberEnd: 3796
    functionName: SECU_printCertProblems
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - SECU_printCertProblemsOnDate
    - PR_Now
    linkageType: ''
    returnType: void
    signature: "void SECU_printCertProblems(FILE *outfile, CERTCertDBHandle *handle,\n
      \                      CERTCertificate *cert, PRBool checksig,\n                       SECCertificateUsage
      certUsage, void *pinArg, PRBool verbose)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/cmd/lib/secutil.c:3802,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/secutil.c:3804,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/lib/secutil.c:3810,1
    - Dst: BTOA_DataToAscii
      Src: /src/nss/cmd/lib/secutil.c:3811,1
    - Dst: PR_Write
      Src: /src/nss/cmd/lib/secutil.c:3814,1
    - Dst: PK11_ImportCRL
      Src: /src/nss/cmd/lib/secutil.c:3820,1
    - Dst: SEC_DestroyCrl
      Src: /src/nss/cmd/lib/secutil.c:3823,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/secutil.c:3829,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 5
    argNames:
    - slot
    - derCrl
    - outFile
    - ascii
    - url
    argTypes:
    - PK11SlotInfo*
    - SECItem*
    - PRFileDesc*
    - PRBool
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3833
      start: 3798
    functionDepth: 1
    functionLinenumber: 3798
    functionLinenumberEnd: 3833
    functionName: SECU_StoreCRL
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - BTOA_DataToAscii
    - PR_fprintf
    - PORT_SetError
    - PK11_ImportCRL
    - PR_Write
    - SEC_DestroyCrl
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SECU_StoreCRL(PK11SlotInfo *slot, SECItem *derCrl, PRFileDesc
      *outFile,\n              PRBool ascii, char *url)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/cmd/lib/secutil.c:3846,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/secutil.c:3848,1
    - Dst: PK11_FindKeyByAnyCert
      Src: /src/nss/cmd/lib/secutil.c:3854,1
    - Dst: SEC_GetSignatureAlgorithmOidTag
      Src: /src/nss/cmd/lib/secutil.c:3860,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/cmd/lib/secutil.c:3868,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/cmd/lib/secutil.c:3877,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/cmd/lib/secutil.c:3878,1
    - Dst: SECU_DerSignDataCRL
      Src: /src/nss/cmd/lib/secutil.c:3885,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/cmd/lib/secutil.c:3892,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/secutil.c:3895,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/cmd/lib/secutil.c:3902,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/cmd/lib/secutil.c:3903,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/cmd/lib/secutil.c:3911,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 63
    argCount: 4
    argNames:
    - issuer
    - signCrl
    - hashAlgTag
    - resCode
    argTypes:
    - CERTCertificate*
    - CERTSignedCrl*
    - SECOidTag
    - SignAndEncodeFuncExitStat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3913
      start: 3835
    functionDepth: 1
    functionLinenumber: 3835
    functionLinenumberEnd: 3913
    functionName: SECU_SignAndEncodeCRL
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SEC_ASN1EncodeItem
    - SEC_GetSignatureAlgorithmOidTag
    - SECOID_SetAlgorithmID
    - PORT_SetError
    - PORT_ArenaZNew
    - SECKEY_DestroyPrivateKey
    - SEC_ASN1_GET
    - SECU_DerSignDataCRL
    - PK11_FindKeyByAnyCert
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SECU_SignAndEncodeCRL(CERTCertificate *issuer, CERTSignedCrl
      *signCrl,\n                      SECOidTag hashAlgTag, SignAndEncodeFuncExitStat
      *resCode)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/cmd/lib/secutil.c:3922,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/secutil.c:3924,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/cmd/lib/secutil.c:3930,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/cmd/lib/secutil.c:3931,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/cmd/lib/secutil.c:3936,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/cmd/lib/secutil.c:3937,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - destArena
    - destCrl
    - srcCrl
    argTypes:
    - PLArenaPool*
    - CERTCrl*
    - CERTCrl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3945
      start: 3915
    functionDepth: 1
    functionLinenumber: 3915
    functionLinenumberEnd: 3945
    functionName: SECU_CopyCRL
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SEC_ASN1EncodeItem
    - PORT_SetError
    - SEC_QuickDERDecodeItem
    - SEC_ASN1_GET
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SECU_CopyCRL(PLArenaPool *destArena, CERTCrl *destCrl, CERTCrl
      *srcCrl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SEC_SignData
      Src: /src/nss/cmd/lib/secutil.c:3962,1
    - Dst: PORT_Memset
      Src: /src/nss/cmd/lib/secutil.c:3968,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/cmd/lib/secutil.c:3971,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/cmd/lib/secutil.c:3977,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/lib/secutil.c:3983,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 6
    argNames:
    - arena
    - sd
    - buf
    - len
    - pk
    - algID
    argTypes:
    - PLArenaPool*
    - CERTSignedData*
    - unsigned char*
    - int
    - SECKEYPrivateKey*
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3985
      start: 3947
    functionDepth: 1
    functionLinenumber: 3947
    functionLinenumberEnd: 3985
    functionName: SECU_DerSignDataCRL
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 1
    functionsReached:
    - PORT_Free
    - SECITEM_CopyItem
    - SECOID_SetAlgorithmID
    - PORT_Memset
    - SEC_SignData
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SECU_DerSignDataCRL(PLArenaPool *arena, CERTSignedData *sd,\n
      \                   unsigned char *buf, int len, SECKEYPrivateKey *pk,\n                    SECOidTag
      algID)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/secutil.c:3999,1
    - Dst: CERT_CreateSubjectCertList
      Src: /src/nss/cmd/lib/secutil.c:4004,1
    - Dst: CERT_LIST_HEAD
      Src: /src/nss/cmd/lib/secutil.c:4007,1
    - Dst: CERT_LIST_END
      Src: /src/nss/cmd/lib/secutil.c:4010,1
    - Dst: CERT_GetCertTrust
      Src: /src/nss/cmd/lib/secutil.c:4015,1
    - Dst: CERT_CheckCertUsage
      Src: /src/nss/cmd/lib/secutil.c:4016,1
    - Dst: CERT_IsUserCert
      Src: /src/nss/cmd/lib/secutil.c:4017,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/cmd/lib/secutil.c:4019,1
    - Dst: CERT_LIST_NEXT
      Src: /src/nss/cmd/lib/secutil.c:4022,1
    - Dst: CERT_DestroyCertList
      Src: /src/nss/cmd/lib/secutil.c:4024,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 4
    argNames:
    - dbhandle
    - subject
    - authorityKeyID
    - validTime
    argTypes:
    - CERTCertDBHandle*
    - SECItem*
    - CERTAuthKeyID*
    - PRTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4027
      start: 3990
    functionDepth: 1
    functionLinenumber: 3990
    functionLinenumberEnd: 4027
    functionName: SECU_FindCrlIssuer
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - CERT_LIST_NEXT
    - CERT_LIST_HEAD
    - CERT_CheckCertUsage
    - CERT_CreateSubjectCertList
    - PORT_SetError
    - CERT_LIST_END
    - CERT_DupCertificate
    - CERT_GetCertTrust
    - CERT_IsUserCert
    - CERT_DestroyCertList
    linkageType: ''
    returnType: CERTCertificate
    signature: "CERTCertificate *\nSECU_FindCrlIssuer(CERTCertDBHandle *dbhandle,
      SECItem *subject,\n                   CERTAuthKeyID *authorityKeyID, PRTime
      validTime)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CERT_AddExtension
      Src: /src/nss/cmd/lib/secutil.c:4045,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 6
    argNames:
    - arena
    - extHandle
    - value
    - criticality
    - extenType
    - EncodeValueFn
    argTypes:
    - PLArenaPool*
    - void*
    - void*
    - PRBool
    - int
    - EXTEN_EXT_VALUE_ENCODER
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4052
      start: 4030
    functionDepth: 1
    functionLinenumber: 4030
    functionLinenumberEnd: 4052
    functionName: SECU_EncodeAndAddExtensionValue
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 10
    functionsReached:
    - CERT_AddExtension
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SECU_EncodeAndAddExtensionValue(PLArenaPool *arena, void
      *extHandle,\n                                void *value, PRBool criticality,
      int extenType,\n                                EXTEN_EXT_VALUE_ENCODER EncodeValueFn)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CERT_FindCertByNicknameOrEmailAddrCX
      Src: /src/nss/cmd/lib/secutil.c:4060,1
    - Dst: PK11_FindCertFromNickname
      Src: /src/nss/cmd/lib/secutil.c:4064,1
    - Dst: PR_Open
      Src: /src/nss/cmd/lib/secutil.c:4070,1
    - Dst: SECU_ReadDERFromFile
      Src: /src/nss/cmd/lib/secutil.c:4074,1
    - Dst: PR_Close
      Src: /src/nss/cmd/lib/secutil.c:4075,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/lib/secutil.c:4077,1
    - Dst: CERT_NewTempCertificate
      Src: /src/nss/cmd/lib/secutil.c:4080,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/lib/secutil.c:4084,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - handle
    - name
    - ascii
    - pwarg
    argTypes:
    - CERTCertDBHandle*
    - char*
    - PRBool
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4087
      start: 4054
    functionDepth: 1
    functionLinenumber: 4054
    functionLinenumberEnd: 4087
    functionName: SECU_FindCertByNicknameOrFilename
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 4
    functionsReached:
    - SECU_ReadDERFromFile
    - PORT_Free
    - CERT_FindCertByNicknameOrEmailAddrCX
    - PR_Open
    - PR_Close
    - PK11_FindCertFromNickname
    - CERT_NewTempCertificate
    linkageType: ''
    returnType: CERTCertificate
    signature: "CERTCertificate *\nSECU_FindCertByNicknameOrFilename(CERTCertDBHandle
      *handle,\n                                  char *name, PRBool ascii,\n                                  void
      *pwarg)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/secutil.c:4099,1
    - Dst: PL_strncasecmp
      Src: /src/nss/cmd/lib/secutil.c:4103,1
    - Dst: PL_strncasecmp
      Src: /src/nss/cmd/lib/secutil.c:4107,1
    - Dst: PL_strncasecmp
      Src: /src/nss/cmd/lib/secutil.c:4111,1
    - Dst: PL_strncasecmp
      Src: /src/nss/cmd/lib/secutil.c:4115,1
    - Dst: PL_strncasecmp
      Src: /src/nss/cmd/lib/secutil.c:4120,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/secutil.c:4125,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - buf
    - bufLen
    - version
    argTypes:
    - char*
    - size_t
    - PRUint16*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4127
      start: 4095
    functionDepth: 1
    functionLinenumber: 4095
    functionLinenumberEnd: 4127
    functionName: SECU_GetSSLVersionFromName
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PL_strncasecmp
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SECU_GetSSLVersionFromName(const char *buf, size_t bufLen,
      PRUint16 *version)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/secutil.c:4139,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/secutil.c:4146,1
    - Dst: strcmp
      Src: /src/nss/cmd/lib/secutil.c:4150,1
    - Dst: strchr
      Src: /src/nss/cmd/lib/secutil.c:4156,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/secutil.c:4158,1
    - Dst: SECU_GetSSLVersionFromName
      Src: /src/nss/cmd/lib/secutil.c:4171,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/secutil.c:4172,1
    - Dst: SECU_GetSSLVersionFromName
      Src: /src/nss/cmd/lib/secutil.c:4184,1
    - Dst: strlen
      Src: /src/nss/cmd/lib/secutil.c:4184,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/secutil.c:4186,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/secutil.c:4194,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 3
    argNames:
    - input
    - defaultVersionRange
    - vrange
    argTypes:
    - char*
    - SSLVersionRange
    - SSLVersionRange*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4199
      start: 4129
    functionDepth: 2
    functionLinenumber: 4129
    functionLinenumberEnd: 4199
    functionName: SECU_ParseSSLVersionRangeString
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 1
    functionsReached:
    - strcmp
    - strchr
    - PORT_SetError
    - SECU_GetSSLVersionFromName
    - strlen
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SECU_ParseSSLVersionRangeString(const char *input,\n                                const
      SSLVersionRange defaultVersionRange,\n                                SSLVersionRange
      *vrange)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PL_strlen
      Src: /src/nss/cmd/lib/secutil.c:4204,1
    - Dst: strncmp
      Src: /src/nss/cmd/lib/secutil.c:4205,1
    - Dst: strncmp
      Src: /src/nss/cmd/lib/secutil.c:4208,1
    - Dst: strncmp
      Src: /src/nss/cmd/lib/secutil.c:4211,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/lib/secutil.c:4215,1
    - Dst: strncmp
      Src: /src/nss/cmd/lib/secutil.c:4216,1
    - Dst: strncmp
      Src: /src/nss/cmd/lib/secutil.c:4219,1
    - Dst: strncmp
      Src: /src/nss/cmd/lib/secutil.c:4222,1
    - Dst: strncmp
      Src: /src/nss/cmd/lib/secutil.c:4225,1
    - Dst: strncmp
      Src: /src/nss/cmd/lib/secutil.c:4228,1
    - Dst: strncmp
      Src: /src/nss/cmd/lib/secutil.c:4231,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/lib/secutil.c:4235,1
    - Dst: strncmp
      Src: /src/nss/cmd/lib/secutil.c:4236,1
    - Dst: PL_strlen
      Src: /src/nss/cmd/lib/secutil.c:4240,1
    - Dst: strncmp
      Src: /src/nss/cmd/lib/secutil.c:4241,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4247
      start: 4201
    functionDepth: 1
    functionLinenumber: 4201
    functionLinenumberEnd: 4247
    functionName: groupNameToNamedGroup
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - strncmp
    - PL_strlen
    linkageType: ''
    returnType: SSLNamedGroup
    signature: SSLNamedGroup groupNameToNamedGroup(char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/lib/secutil.c:4252,1
    - Dst: strtok
      Src: /src/nss/cmd/lib/secutil.c:4256,1
    - Dst: strtok
      Src: /src/nss/cmd/lib/secutil.c:4259,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/lib/secutil.c:4261,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - arg
    - numItems
    argTypes:
    - char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4264
      start: 4249
    functionDepth: 0
    functionLinenumber: 4249
    functionLinenumberEnd: 4264
    functionName: countItems
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - PORT_Strdup
    - strtok
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus countItems(const char *arg, unsigned int *numItems)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: countItems
      Src: /src/nss/cmd/lib/secutil.c:4276,1
    - Dst: PORT_ZNewArray
      Src: /src/nss/cmd/lib/secutil.c:4279,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/lib/secutil.c:4285,1
    - Dst: strtok
      Src: /src/nss/cmd/lib/secutil.c:4289,1
    - Dst: groupNameToNamedGroup
      Src: /src/nss/cmd/lib/secutil.c:4291,1
    - Dst: strtok
      Src: /src/nss/cmd/lib/secutil.c:4297,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/lib/secutil.c:4301,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/lib/secutil.c:4303,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 3
    argNames:
    - arg
    - enabledGroups
    - enabledGroupsCount
    argTypes:
    - char*
    - SSLNamedGroup**
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4310
      start: 4266
    functionDepth: 2
    functionLinenumber: 4266
    functionLinenumberEnd: 4310
    functionName: parseGroupList
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 1
    functionsReached:
    - PORT_ZNewArray
    - PORT_Free
    - groupNameToNamedGroup
    - countItems
    - PORT_Strdup
    - strtok
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus parseGroupList(const char *arg, SSLNamedGroup **enabledGroups,\n
      \              unsigned int *enabledGroupsCount)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: compareScheme
      Src: /src/nss/cmd/lib/secutil.c:4322,1
    - Dst: compareScheme
      Src: /src/nss/cmd/lib/secutil.c:4323,1
    - Dst: compareScheme
      Src: /src/nss/cmd/lib/secutil.c:4324,1
    - Dst: compareScheme
      Src: /src/nss/cmd/lib/secutil.c:4325,1
    - Dst: compareScheme
      Src: /src/nss/cmd/lib/secutil.c:4326,1
    - Dst: compareScheme
      Src: /src/nss/cmd/lib/secutil.c:4327,1
    - Dst: compareScheme
      Src: /src/nss/cmd/lib/secutil.c:4328,1
    - Dst: compareScheme
      Src: /src/nss/cmd/lib/secutil.c:4329,1
    - Dst: compareScheme
      Src: /src/nss/cmd/lib/secutil.c:4330,1
    - Dst: compareScheme
      Src: /src/nss/cmd/lib/secutil.c:4331,1
    - Dst: compareScheme
      Src: /src/nss/cmd/lib/secutil.c:4332,1
    - Dst: compareScheme
      Src: /src/nss/cmd/lib/secutil.c:4333,1
    - Dst: compareScheme
      Src: /src/nss/cmd/lib/secutil.c:4334,1
    - Dst: compareScheme
      Src: /src/nss/cmd/lib/secutil.c:4335,1
    - Dst: compareScheme
      Src: /src/nss/cmd/lib/secutil.c:4336,1
    - Dst: compareScheme
      Src: /src/nss/cmd/lib/secutil.c:4337,1
    - Dst: compareScheme
      Src: /src/nss/cmd/lib/secutil.c:4338,1
    - Dst: compareScheme
      Src: /src/nss/cmd/lib/secutil.c:4339,1
    - Dst: compareScheme
      Src: /src/nss/cmd/lib/secutil.c:4340,1
    - Dst: compareScheme
      Src: /src/nss/cmd/lib/secutil.c:4341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4346
      start: 4312
    functionDepth: 1
    functionLinenumber: 4312
    functionLinenumberEnd: 4346
    functionName: schemeNameToScheme
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - compareScheme
    linkageType: ''
    returnType: SSLSignatureScheme
    signature: SSLSignatureScheme schemeNameToScheme(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4321
      start: 4315
    functionDepth: 0
    functionLinenumber: 4315
    functionLinenumberEnd: 4321
    functionName: compareScheme
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: compareScheme(x)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: countItems
      Src: /src/nss/cmd/lib/secutil.c:4356,1
    - Dst: PORT_ZNewArray
      Src: /src/nss/cmd/lib/secutil.c:4359,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/lib/secutil.c:4365,1
    - Dst: strtok
      Src: /src/nss/cmd/lib/secutil.c:4369,1
    - Dst: schemeNameToScheme
      Src: /src/nss/cmd/lib/secutil.c:4371,1
    - Dst: strtok
      Src: /src/nss/cmd/lib/secutil.c:4377,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/lib/secutil.c:4381,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/lib/secutil.c:4383,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 3
    argNames:
    - arg
    - enabledSigSchemes
    - enabledSigSchemeCount
    argTypes:
    - char*
    - SSLSignatureScheme**
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4390
      start: 4348
    functionDepth: 2
    functionLinenumber: 4348
    functionLinenumberEnd: 4390
    functionName: parseSigSchemeList
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 1
    functionsReached:
    - PORT_ZNewArray
    - PORT_Free
    - schemeNameToScheme
    - countItems
    - PORT_Strdup
    - strtok
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus parseSigSchemeList(const char *arg, const SSLSignatureScheme
      **enabledSigSchemes,\n                   unsigned int *enabledSigSchemeCount)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/lib/secutil.c:4399,1
    - Dst: strchr
      Src: /src/nss/cmd/lib/secutil.c:4405,1
    - Dst: strchr
      Src: /src/nss/cmd/lib/secutil.c:4411,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/lib/secutil.c:4417,1
    - Dst: strlen
      Src: /src/nss/cmd/lib/secutil.c:4418,1
    - Dst: PORT_Strncasecmp
      Src: /src/nss/cmd/lib/secutil.c:4419,1
    - Dst: SECU_SECItemHexStringToBinary
      Src: /src/nss/cmd/lib/secutil.c:4420,1
    - Dst: strtol
      Src: /src/nss/cmd/lib/secutil.c:4429,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/secutil.c:4431,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/lib/secutil.c:4440,1
    - Dst: strlen
      Src: /src/nss/cmd/lib/secutil.c:4442,1
    - Dst: PORT_Strncasecmp
      Src: /src/nss/cmd/lib/secutil.c:4443,1
    - Dst: SECU_SECItemHexStringToBinary
      Src: /src/nss/cmd/lib/secutil.c:4444,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/lib/secutil.c:4451,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 48
    argCount: 2
    argNames:
    - arg
    - exporter
    argTypes:
    - char*
    - secuExporter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4454
      start: 4393
    functionDepth: 1
    functionLinenumber: 4393
    functionLinenumberEnd: 4454
    functionName: parseExporter
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - PORT_Strncasecmp
    - strchr
    - PORT_Free
    - PORT_SetError
    - SECU_SECItemHexStringToBinary
    - strtol
    - PORT_Strdup
    - strlen
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus parseExporter(const char *arg,\n              secuExporter
      *exporter)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: countItems
      Src: /src/nss/cmd/lib/secutil.c:4465,1
    - Dst: PORT_ZNewArray
      Src: /src/nss/cmd/lib/secutil.c:4468,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/lib/secutil.c:4474,1
    - Dst: strtok
      Src: /src/nss/cmd/lib/secutil.c:4478,1
    - Dst: parseExporter
      Src: /src/nss/cmd/lib/secutil.c:4480,1
    - Dst: strtok
      Src: /src/nss/cmd/lib/secutil.c:4485,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/lib/secutil.c:4489,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/lib/secutil.c:4491,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 3
    argNames:
    - arg
    - enabledExporters
    - enabledExporterCount
    argTypes:
    - char*
    - secuExporter**
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4498
      start: 4456
    functionDepth: 2
    functionLinenumber: 4456
    functionLinenumberEnd: 4498
    functionName: parseExporters
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 1
    functionsReached:
    - PORT_ZNewArray
    - PORT_Free
    - parseExporter
    - countItems
    - PORT_Strdup
    - strtok
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus parseExporters(const char *arg,\n               const secuExporter
      **enabledExporters,\n               unsigned int *enabledExporterCount)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/lib/secutil.c:4504,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:4507,1
    - Dst: SSL_ExportKeyingMaterial
      Src: /src/nss/cmd/lib/secutil.c:4510,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:4521,1
    - Dst: secu_PrintRawString
      Src: /src/nss/cmd/lib/secutil.c:4522,1
    - Dst: SECU_PrintAsHex
      Src: /src/nss/cmd/lib/secutil.c:4524,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:4526,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:4527,1
    - Dst: SECU_PrintAsHex
      Src: /src/nss/cmd/lib/secutil.c:4529,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/lib/secutil.c:4532,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - fd
    - exporter
    argTypes:
    - PRFileDesc*
    - secuExporter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4534
      start: 4500
    functionDepth: 3
    functionLinenumber: 4500
    functionLinenumberEnd: 4534
    functionName: exportKeyingMaterial
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_Free
    - fprintf
    - SSL_ExportKeyingMaterial
    - SECU_Indent
    - secu_PrintRawString
    - SECU_PrintAsHex
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus exportKeyingMaterial(PRFileDesc *fd, const secuExporter *exporter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: exportKeyingMaterial
      Src: /src/nss/cmd/lib/secutil.c:4544,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - fd
    - exporters
    - exporterCount
    argTypes:
    - PRFileDesc*
    - secuExporter*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4551
      start: 4536
    functionDepth: 4
    functionLinenumber: 4536
    functionLinenumberEnd: 4551
    functionName: exportKeyingMaterials
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 1
    functionsReached:
    - exportKeyingMaterial
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus exportKeyingMaterials(PRFileDesc *fd,\n                      const
      secuExporter *exporters,\n                      unsigned int exporterCount)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/lib/secutil.c:4557,1
    - Dst: strtok
      Src: /src/nss/cmd/lib/secutil.c:4562,1
    - Dst: PORT_Strncasecmp
      Src: /src/nss/cmd/lib/secutil.c:4566,1
    - Dst: SECU_HexString2SECItem
      Src: /src/nss/cmd/lib/secutil.c:4570,1
    - Dst: strlen
      Src: /src/nss/cmd/lib/secutil.c:4571,1
    - Dst: strtok
      Src: /src/nss/cmd/lib/secutil.c:4576,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/lib/secutil.c:4578,1
    - Dst: strlen
      Src: /src/nss/cmd/lib/secutil.c:4582,1
    - Dst: PORT_Strncasecmp
      Src: /src/nss/cmd/lib/secutil.c:4584,1
    - Dst: SECU_SECItemHexStringToBinary
      Src: /src/nss/cmd/lib/secutil.c:4585,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/lib/secutil.c:4587,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/cmd/lib/secutil.c:4596,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/lib/secutil.c:4603,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 44
    argCount: 3
    argNames:
    - arg
    - psk
    - label
    argTypes:
    - char*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4605
      start: 4553
    functionDepth: 1
    functionLinenumber: 4553
    functionLinenumberEnd: 4605
    functionName: readPSK
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 1
    functionsReached:
    - SECU_HexString2SECItem
    - PORT_Strncasecmp
    - PORT_Free
    - SECITEM_CopyItem
    - strtok
    - SECU_SECItemHexStringToBinary
    - PORT_Strdup
    - SECITEM_FreeItem
    - strlen
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus readPSK(const char *arg, SECItem *psk, SECItem *label)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: SECU_StripTagAndLength
      Src: /src/nss/cmd/lib/secutil.c:4621,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/secutil.c:4622,1
    - Dst: SECU_ExtractBERAndStep
      Src: /src/nss/cmd/lib/secutil.c:4627,1
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/lib/secutil.c:4630,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/lib/secutil.c:4636,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/cmd/lib/secutil.c:4637,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/cmd/lib/secutil.c:4638,1
    - Dst: SECU_PrintAlgorithmID
      Src: /src/nss/cmd/lib/secutil.c:4641,1
    - Dst: PR_smprintf_free
      Src: /src/nss/cmd/lib/secutil.c:4645,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/lib/secutil.c:4646,1
    - Dst: SECU_ExtractBERAndStep
      Src: /src/nss/cmd/lib/secutil.c:4652,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/secutil.c:4656,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/lib/secutil.c:4661,1
    - Dst: secu_PrintOctetString
      Src: /src/nss/cmd/lib/secutil.c:4662,1
    - Dst: PR_smprintf_free
      Src: /src/nss/cmd/lib/secutil.c:4665,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 4
    argNames:
    - out
    - t
    - m
    - level
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4667
      start: 4607
    functionDepth: 4
    functionLinenumber: 4607
    functionLinenumberEnd: 4667
    functionName: secu_PrintPKCS12DigestInfo
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - PORT_NewArena
    - SECU_StripTagAndLength
    - PORT_FreeArena
    - SECU_ExtractBERAndStep
    - secu_PrintOctetString
    - SECU_PrintAlgorithmID
    - PORT_SetError
    - SEC_QuickDERDecodeItem
    - PR_smprintf_free
    - PR_smprintf
    - SEC_ASN1_GET
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus secu_PrintPKCS12DigestInfo(FILE *out, const SECItem *t, char
      *m, int level)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:4677,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:4678,1
    - Dst: SECU_StripTagAndLength
      Src: /src/nss/cmd/lib/secutil.c:4684,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/secutil.c:4685,1
    - Dst: SECU_ExtractBERAndStep
      Src: /src/nss/cmd/lib/secutil.c:4689,1
    - Dst: secu_PrintPKCS12DigestInfo
      Src: /src/nss/cmd/lib/secutil.c:4692,1
    - Dst: SECU_ExtractBERAndStep
      Src: /src/nss/cmd/lib/secutil.c:4697,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/secutil.c:4702,1
    - Dst: secu_PrintOctetString
      Src: /src/nss/cmd/lib/secutil.c:4705,1
    - Dst: SECU_ExtractBERAndStep
      Src: /src/nss/cmd/lib/secutil.c:4710,1
    - Dst: SECU_PrintEncodedInteger
      Src: /src/nss/cmd/lib/secutil.c:4713,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 4
    argNames:
    - out
    - t
    - m
    - level
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4716
      start: 4669
    functionDepth: 5
    functionLinenumber: 4669
    functionLinenumberEnd: 4716
    functionName: secu_PrintPKCS12MacData
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 0
    functionsReached:
    - SECU_PrintEncodedInteger
    - SECU_StripTagAndLength
    - SECU_ExtractBERAndStep
    - secu_PrintOctetString
    - fprintf
    - PORT_SetError
    - secu_PrintPKCS12DigestInfo
    - SECU_Indent
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus secu_PrintPKCS12MacData(FILE *out, const SECItem *t, char
      *m, int level)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/secutil.c:4725,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:4726,1
    - Dst: SECU_StripTagAndLength
      Src: /src/nss/cmd/lib/secutil.c:4731,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/secutil.c:4732,1
    - Dst: SECU_ExtractBERAndStep
      Src: /src/nss/cmd/lib/secutil.c:4739,1
    - Dst: SECU_PrintEncodedInteger
      Src: /src/nss/cmd/lib/secutil.c:4742,1
    - Dst: SECU_ExtractBERAndStep
      Src: /src/nss/cmd/lib/secutil.c:4746,1
    - Dst: secu_PrintDERPKCS7ContentInfo
      Src: /src/nss/cmd/lib/secutil.c:4749,1
    - Dst: SECU_ExtractBERAndStep
      Src: /src/nss/cmd/lib/secutil.c:4759,1
    - Dst: secu_PrintPKCS12MacData
      Src: /src/nss/cmd/lib/secutil.c:4762,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secutil.c:4768,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 4
    argNames:
    - out
    - t
    - m
    - level
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4771
      start: 4718
    functionDepth: 14
    functionLinenumber: 4718
    functionLinenumberEnd: 4771
    functionName: SECU_PrintPKCS12
    functionSourceFile: /src/nss/cmd/lib/secutil.c
    functionUses: 1
    functionsReached:
    - SECU_PrintEncodedInteger
    - SECU_StripTagAndLength
    - SECU_ExtractBERAndStep
    - fprintf
    - PORT_SetError
    - secu_PrintDERPKCS7ContentInfo
    - SECU_Indent
    - secu_PrintPKCS12MacData
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SECU_PrintPKCS12(FILE *out, const SECItem *t, char *m, int
      level)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isatty
      Src: /src/nss/cmd/lib/secpwd.c:32,1
    - Dst: tcgetattr
      Src: /src/nss/cmd/lib/secpwd.c:34,1
    - Dst: tcsetattr
      Src: /src/nss/cmd/lib/secpwd.c:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 38
    functionName: echoOff
    functionSourceFile: /src/nss/cmd/lib/secpwd.c
    functionUses: 0
    functionsReached:
    - tcgetattr
    - isatty
    - tcsetattr
    linkageType: ''
    returnType: void
    signature: void echoOff(int fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isatty
      Src: /src/nss/cmd/lib/secpwd.c:43,1
    - Dst: tcgetattr
      Src: /src/nss/cmd/lib/secpwd.c:45,1
    - Dst: tcsetattr
      Src: /src/nss/cmd/lib/secpwd.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 49
    functionName: echoOn
    functionSourceFile: /src/nss/cmd/lib/secpwd.c
    functionUses: 0
    functionsReached:
    - tcgetattr
    - isatty
    - tcsetattr
    linkageType: ''
    returnType: void
    signature: void echoOn(int fd)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fileno
      Src: /src/nss/cmd/lib/secpwd.c:61,1
    - Dst: isatty
      Src: /src/nss/cmd/lib/secpwd.c:62,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secpwd.c:69,1
    - Dst: fflush
      Src: /src/nss/cmd/lib/secpwd.c:70,1
    - Dst: echoOff
      Src: /src/nss/cmd/lib/secpwd.c:71,1
    - Dst: QUIET_FGETS
      Src: /src/nss/cmd/lib/secpwd.c:74,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secpwd.c:79,1
    - Dst: echoOn
      Src: /src/nss/cmd/lib/secpwd.c:80,1
    - Dst: PORT_Strlen
      Src: /src/nss/cmd/lib/secpwd.c:84,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secpwd.c:91,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/secpwd.c:92,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/lib/secpwd.c:95,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - input
    - output
    - prompt
    argTypes:
    - FILE*
    - FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 97
    functionName: SEC_GetPassword
    functionSourceFile: /src/nss/cmd/lib/secpwd.c
    functionUses: 2
    functionsReached:
    - fileno
    - isatty
    - PORT_Strlen
    - fprintf
    - echoOn
    - QUIET_FGETS
    - PORT_Strdup
    - echoOff
    - fflush
    linkageType: ''
    returnType: char
    signature: "char *\nSEC_GetPassword(FILE *input, FILE *output, char *prompt,\n
      \               PRBool (*ok)(char *))"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strlen
      Src: /src/nss/cmd/lib/secpwd.c:105,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - cp
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 119
    functionName: SEC_CheckPassword
    functionSourceFile: /src/nss/cmd/lib/secpwd.c
    functionUses: 0
    functionsReached:
    - PORT_Strlen
    linkageType: ''
    returnType: PRBool
    signature: PRBool SEC_CheckPassword(char *cp)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cp
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 128
    functionName: SEC_BlindCheckPassword
    functionSourceFile: /src/nss/cmd/lib/secpwd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool SEC_BlindCheckPassword(char *cp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/cmd/lib/secpwd.c:140,1
    - Dst: isatty
      Src: /src/nss/cmd/lib/secpwd.c:142,1
    - Dst: fileno
      Src: /src/nss/cmd/lib/secpwd.c:142,1
    - Dst: fgets
      Src: /src/nss/cmd/lib/secpwd.c:143,1
    - Dst: getch
      Src: /src/nss/cmd/lib/secpwd.c:147,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 3
    argNames:
    - buf
    - length
    - input
    argTypes:
    - char*
    - int
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 162
    functionName: quiet_fgets
    functionSourceFile: /src/nss/cmd/lib/secpwd.c
    functionUses: 0
    functionsReached:
    - fileno
    - getch
    - fgets
    - isatty
    - memset
    linkageType: ''
    returnType: char
    signature: 'char *

      quiet_fgets(char *buf, int length, FILE *input)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - h
    - buf
    - len
    argTypes:
    - BERParse*
    - unsigned char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 55
    functionName: NextChar
    functionSourceFile: /src/nss/cmd/lib/berparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char NextChar(BERParse *h, unsigned char **buf, int *len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NextChar
      Src: /src/nss/cmd/lib/berparse.c:61,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/lib/berparse.c:63,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/berparse.c:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - h
    - buf
    - len
    argTypes:
    - BERParse*
    - unsigned char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 85
    functionName: ParseTag
    functionSourceFile: /src/nss/cmd/lib/berparse.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - NextChar
    - PORT_SetError
    linkageType: ''
    returnType: void
    signature: void ParseTag(BERParse *h, unsigned char **buf, int *len)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/cmd/lib/berparse.c:93,1
    - Dst: NextChar
      Src: /src/nss/cmd/lib/berparse.c:96,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/berparse.c:114,1
    - Dst: NextChar
      Src: /src/nss/cmd/lib/berparse.c:122,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - h
    - buf
    - len
    argTypes:
    - BERParse*
    - unsigned char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 133
    functionName: ParseLength
    functionSourceFile: /src/nss/cmd/lib/berparse.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - NextChar
    - PORT_SetError
    linkageType: ''
    returnType: void
    signature: void ParseLength(BERParse *h, unsigned char **buf, int *len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/cmd/lib/berparse.c:141,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/lib/berparse.c:142,1
    - Dst: memcpy
      Src: /src/nss/cmd/lib/berparse.c:150,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - h
    - buf
    - len
    argTypes:
    - BERParse*
    - unsigned char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 162
    functionName: ParseLeaf
    functionSourceFile: /src/nss/cmd/lib/berparse.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - memcpy
    linkageType: ''
    returnType: void
    signature: void ParseLeaf(BERParse *h, unsigned char **buf, int *len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/cmd/lib/berparse.c:167,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/lib/berparse.c:175,1
    - Dst: DS_ArenaGrow
      Src: /src/nss/cmd/lib/berparse.c:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - h
    argTypes:
    - BERParse*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 191
    functionName: CreateArbNode
    functionSourceFile: /src/nss/cmd/lib/berparse.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_ArenaAlloc
    - DS_ArenaGrow
    linkageType: ''
    returnType: void
    signature: void CreateArbNode(BERParse *h)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/berparse.c:202,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/lib/berparse.c:208,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/lib/berparse.c:212,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/lib/berparse.c:217,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/lib/berparse.c:229,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/lib/berparse.c:230,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/berparse.c:232,1
    - Dst: CreateArbNode
      Src: /src/nss/cmd/lib/berparse.c:242,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/lib/berparse.c:252,1
    - Dst: DS_ArenaGrow
      Src: /src/nss/cmd/lib/berparse.c:255,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/berparse.c:271,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/cmd/lib/berparse.c:278,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/lib/berparse.c:289,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/lib/berparse.c:290,1
    - Dst: CreateArbNode
      Src: /src/nss/cmd/lib/berparse.c:293,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/lib/berparse.c:297,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/berparse.c:303,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 89
    argCount: 3
    argNames:
    - h
    - buf
    - len
    argTypes:
    - BERParse*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 313
    functionName: BER_ParseSome
    functionSourceFile: /src/nss/cmd/lib/berparse.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - CreateArbNode
    - PORT_ArenaAlloc
    - PORT_SetError
    - DS_ArenaGrow
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus BER_ParseSome(BERParse *h, unsigned char *buf, int len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/lib/berparse.c:318,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/berparse.c:320,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/cmd/lib/berparse.c:323,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/lib/berparse.c:325,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/berparse.c:326,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/cmd/lib/berparse.c:333,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 2
    argNames:
    - arena
    - derOnly
    argTypes:
    - PLArenaPool*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 344
    functionName: BER_ParseInit
    functionSourceFile: /src/nss/cmd/lib/berparse.c
    functionUses: 0
    functionsReached:
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - PORT_FreeArena
    - PORT_ArenaAlloc
    - PORT_SetError
    linkageType: ''
    returnType: BERParse
    signature: 'BERParse *

      BER_ParseInit(PLArenaPool *arena, PRBool derOnly)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/cmd/lib/berparse.c:355,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/lib/berparse.c:359,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - h
    argTypes:
    - BERParse*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 362
    functionName: BER_ParseFini
    functionSourceFile: /src/nss/cmd/lib/berparse.c
    functionUses: 0
    functionsReached:
    - PORT_FreeArena
    - PORT_ArenaAlloc
    linkageType: ''
    returnType: SECArb
    signature: 'SECArb *

      BER_ParseFini(BERParse *h)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - h
    - proc
    - instance
    argTypes:
    - BERParse*
    - BERFilterProc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 369
    functionName: BER_SetFilter
    functionSourceFile: /src/nss/cmd/lib/berparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BER_SetFilter(BERParse *h, BERFilterProc proc, void *instance)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - keep
    argTypes:
    - BERParse*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 375
    functionName: BER_SetLeafStorage
    functionSourceFile: /src/nss/cmd/lib/berparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BER_SetLeafStorage(BERParse *h, PRBool keep)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - h
    - proc
    - instance
    - beforeData
    argTypes:
    - BERParse*
    - BERNotifyProc
    - void*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 388
    functionName: BER_SetNotifyProc
    functionSourceFile: /src/nss/cmd/lib/berparse.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void BER_SetNotifyProc(BERParse *h, BERNotifyProc proc, void *instance,\n
      \                 PRBool beforeData)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - enable
    argTypes:
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: SECU_EnableWrap
    functionSourceFile: /src/nss/cmd/lib/basicutil.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SECU_EnableWrap(PRBool enable)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: SECU_GetWrapEnabled
    functionSourceFile: /src/nss/cmd/lib/basicutil.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool SECU_GetWrapEnabled(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_GetError
      Src: /src/nss/cmd/lib/basicutil.c:51,1
    - Dst: PORT_ErrorToString
      Src: /src/nss/cmd/lib/basicutil.c:52,1
    - Dst: va_start
      Src: /src/nss/cmd/lib/basicutil.c:54,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/basicutil.c:56,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/basicutil.c:57,1
    - Dst: vfprintf
      Src: /src/nss/cmd/lib/basicutil.c:58,1
    - Dst: PORT_Strlen
      Src: /src/nss/cmd/lib/basicutil.c:59,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/basicutil.c:60,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/basicutil.c:62,1
    - Dst: va_end
      Src: /src/nss/cmd/lib/basicutil.c:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - out
    - level
    - progName
    - msg
    argTypes:
    - FILE*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 65
    functionName: SECU_PrintErrMsg
    functionSourceFile: /src/nss/cmd/lib/basicutil.c
    functionUses: 9
    functionsReached:
    - PORT_ErrorToString
    - va_end
    - PORT_GetError
    - PORT_Strlen
    - fprintf
    - vfprintf
    - SECU_Indent
    - va_start
    linkageType: ''
    returnType: void
    signature: "void SECU_PrintErrMsg(FILE *out, int level, const char *progName,
      const char *msg,\n                 ...)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_GetError
      Src: /src/nss/cmd/lib/basicutil.c:71,1
    - Dst: PR_ErrorToName
      Src: /src/nss/cmd/lib/basicutil.c:72,1
    - Dst: PR_ErrorToString
      Src: /src/nss/cmd/lib/basicutil.c:73,1
    - Dst: va_start
      Src: /src/nss/cmd/lib/basicutil.c:75,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/basicutil.c:77,1
    - Dst: vfprintf
      Src: /src/nss/cmd/lib/basicutil.c:78,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/basicutil.c:81,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/basicutil.c:83,1
    - Dst: PORT_Strlen
      Src: /src/nss/cmd/lib/basicutil.c:86,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/basicutil.c:87,1
    - Dst: va_end
      Src: /src/nss/cmd/lib/basicutil.c:89,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - progName
    - msg
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 90
    functionName: SECU_PrintError
    functionSourceFile: /src/nss/cmd/lib/basicutil.c
    functionUses: 79
    functionsReached:
    - va_end
    - PORT_GetError
    - PORT_Strlen
    - fprintf
    - vfprintf
    - PR_ErrorToName
    - va_start
    - PR_ErrorToString
    linkageType: ''
    returnType: void
    signature: void SECU_PrintError(const char *progName, const char *msg, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/nss/cmd/lib/basicutil.c:97,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/basicutil.c:98,1
    - Dst: vfprintf
      Src: /src/nss/cmd/lib/basicutil.c:99,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/basicutil.c:100,1
    - Dst: strerror
      Src: /src/nss/cmd/lib/basicutil.c:100,1
    - Dst: va_end
      Src: /src/nss/cmd/lib/basicutil.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - progName
    - msg
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 102
    functionName: SECU_PrintSystemError
    functionSourceFile: /src/nss/cmd/lib/basicutil.c
    functionUses: 2
    functionsReached:
    - va_end
    - fprintf
    - vfprintf
    - va_start
    - strerror
    linkageType: ''
    returnType: void
    signature: void SECU_PrintSystemError(const char *progName, const char *msg, ...)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PR_Read
      Src: /src/nss/cmd/lib/basicutil.c:115,1
    - Dst: PORT_Realloc
      Src: /src/nss/cmd/lib/basicutil.c:126,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/lib/basicutil.c:128,1
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/lib/basicutil.c:131,1
    - Dst: PORT_Memcpy
      Src: /src/nss/cmd/lib/basicutil.c:136,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - dst
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 141
    functionName: secu_StdinToItem
    functionSourceFile: /src/nss/cmd/lib/basicutil.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_Memcpy
    - PORT_Free
    - PR_Read
    - PORT_Realloc
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus secu_StdinToItem(SECItem *dst)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: secu_StdinToItem
      Src: /src/nss/cmd/lib/basicutil.c:151,1
    - Dst: PR_GetOpenFileInfo
      Src: /src/nss/cmd/lib/basicutil.c:153,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/basicutil.c:156,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/lib/basicutil.c:162,1
    - Dst: PR_Read
      Src: /src/nss/cmd/lib/basicutil.c:165,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/basicutil.c:167,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/lib/basicutil.c:173,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - SECItem*
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 176
    functionName: SECU_FileToItem
    functionSourceFile: /src/nss/cmd/lib/basicutil.c
    functionUses: 8
    functionsReached:
    - SECITEM_AllocItem
    - secu_StdinToItem
    - PORT_SetError
    - PR_Read
    - PR_GetOpenFileInfo
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SECU_FileToItem(SECItem *dst, PRFileDesc *src)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: secu_StdinToItem
      Src: /src/nss/cmd/lib/basicutil.c:187,1
    - Dst: PR_GetOpenFileInfo
      Src: /src/nss/cmd/lib/basicutil.c:189,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/basicutil.c:192,1
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/lib/basicutil.c:196,1
    - Dst: PR_Read
      Src: /src/nss/cmd/lib/basicutil.c:200,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/basicutil.c:202,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/lib/basicutil.c:215,1
    - Dst: memcpy
      Src: /src/nss/cmd/lib/basicutil.c:218,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/lib/basicutil.c:220,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/lib/basicutil.c:223,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - SECItem*
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 225
    functionName: SECU_TextFileToItem
    functionSourceFile: /src/nss/cmd/lib/basicutil.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - memcpy
    - PORT_Free
    - SECITEM_AllocItem
    - secu_StdinToItem
    - PORT_SetError
    - PR_Read
    - PR_GetOpenFileInfo
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SECU_TextFileToItem(SECItem *dst, PRFileDesc *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/lib/basicutil.c:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - out
    - level
    argTypes:
    - FILE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 236
    functionName: SECU_Indent
    functionSourceFile: /src/nss/cmd/lib/basicutil.c
    functionUses: 70
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void SECU_Indent(FILE *out, int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/lib/basicutil.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 242
    functionName: SECU_Newline
    functionSourceFile: /src/nss/cmd/lib/basicutil.c
    functionUses: 8
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void SECU_Newline(FILE *out)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/basicutil.c:255,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/basicutil.c:256,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/basicutil.c:259,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/basicutil.c:263,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/basicutil.c:267,1
    - Dst: isprint
      Src: /src/nss/cmd/lib/basicutil.c:273,1
    - Dst: isspace
      Src: /src/nss/cmd/lib/basicutil.c:277,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/basicutil.c:291,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/basicutil.c:294,1
    - Dst: SECU_Newline
      Src: /src/nss/cmd/lib/basicutil.c:300,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/basicutil.c:301,1
    - Dst: SECU_Newline
      Src: /src/nss/cmd/lib/basicutil.c:310,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/basicutil.c:311,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/basicutil.c:318,1
    - Dst: SECU_Newline
      Src: /src/nss/cmd/lib/basicutil.c:324,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/basicutil.c:325,1
    - Dst: SECU_Newline
      Src: /src/nss/cmd/lib/basicutil.c:332,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 67
    argCount: 4
    argNames:
    - out
    - data
    - m
    - level
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 334
    functionName: SECU_PrintAsHex
    functionSourceFile: /src/nss/cmd/lib/basicutil.c
    functionUses: 32
    functionsReached:
    - isspace
    - fprintf
    - SECU_Indent
    - isprint
    - SECU_Newline
    linkageType: ''
    returnType: void
    signature: void SECU_PrintAsHex(FILE *out, const SECItem *data, const char *m,
      int level)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/lib/basicutil.c:365,1
    - Dst: memset
      Src: /src/nss/cmd/lib/basicutil.c:366,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/basicutil.c:377,1
    - Dst: memset
      Src: /src/nss/cmd/lib/basicutil.c:378,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/basicutil.c:385,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 4
    argNames:
    - out
    - msg
    - vp
    - len
    argTypes:
    - FILE*
    - char*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 387
    functionName: SECU_PrintBuf
    functionSourceFile: /src/nss/cmd/lib/basicutil.c
    functionUses: 3
    functionsReached:
    - fprintf
    - memset
    linkageType: ''
    returnType: void
    signature: void SECU_PrintBuf(FILE *out, const char *msg, const void *vp, int
      len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/basicutil.c:399,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/basicutil.c:401,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/basicutil.c:403,1
    - Dst: SECU_PrintAsHex
      Src: /src/nss/cmd/lib/basicutil.c:406,1
    - Dst: PORT_Memcpy
      Src: /src/nss/cmd/lib/basicutil.c:414,1
    - Dst: DER_GetInteger
      Src: /src/nss/cmd/lib/basicutil.c:418,1
    - Dst: DER_GetInteger
      Src: /src/nss/cmd/lib/basicutil.c:420,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/lib/basicutil.c:422,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/basicutil.c:424,1
    - Dst: fprintf
      Src: /src/nss/cmd/lib/basicutil.c:426,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 4
    argNames:
    - out
    - i
    - m
    - level
    argTypes:
    - FILE*
    - SECItem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 393
    functionDepth: 2
    functionLinenumber: 393
    functionLinenumberEnd: 429
    functionName: SECU_PrintInteger
    functionSourceFile: /src/nss/cmd/lib/basicutil.c
    functionUses: 34
    functionsReached:
    - PORT_Memcpy
    - fprintf
    - SECU_Indent
    - DER_GetInteger
    - SECU_PrintAsHex
    linkageType: ''
    returnType: void
    signature: void SECU_PrintInteger(FILE *out, const SECItem *i, const char *m,
      int level)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - i
    - a
    - count
    argTypes:
    - int
    - secuCommandFlag*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 446
    functionName: HasShortDuplicate
    functionSourceFile: /src/nss/cmd/lib/basicutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool HasShortDuplicate(int i, secuCommandFlag *a, int count)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nss/cmd/lib/basicutil.c:459,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - i
    - a
    - count
    argTypes:
    - int
    - secuCommandFlag*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 464
    functionName: HasLongDuplicate
    functionSourceFile: /src/nss/cmd/lib/basicutil.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: PRBool
    signature: PRBool HasLongDuplicate(int i, secuCommandFlag *a, int count)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HasShortDuplicate
      Src: /src/nss/cmd/lib/basicutil.c:474,1
    - Dst: HasLongDuplicate
      Src: /src/nss/cmd/lib/basicutil.c:477,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - a
    - count
    argTypes:
    - secuCommandFlag*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 482
    functionName: HasNoDuplicates
    functionSourceFile: /src/nss/cmd/lib/basicutil.c
    functionUses: 0
    functionsReached:
    - HasShortDuplicate
    - HasLongDuplicate
    linkageType: ''
    returnType: PRBool
    signature: PRBool HasNoDuplicates(secuCommandFlag *a, int count)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: PR_ASSERT
      Src: /src/nss/cmd/lib/basicutil.c:497,1
    - Dst: HasNoDuplicates
      Src: /src/nss/cmd/lib/basicutil.c:497,1
    - Dst: PR_ASSERT
      Src: /src/nss/cmd/lib/basicutil.c:498,1
    - Dst: HasNoDuplicates
      Src: /src/nss/cmd/lib/basicutil.c:498,1
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/lib/basicutil.c:500,1
    - Dst: PORT_NewArray
      Src: /src/nss/cmd/lib/basicutil.c:524,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/lib/basicutil.c:526,1
    - Dst: PL_CreateLongOptState
      Src: /src/nss/cmd/lib/basicutil.c:549,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/lib/basicutil.c:551,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/lib/basicutil.c:552,1
    - Dst: PL_GetNextOpt
      Src: /src/nss/cmd/lib/basicutil.c:556,1
    - Dst: PL_DestroyOptState
      Src: /src/nss/cmd/lib/basicutil.c:612,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/lib/basicutil.c:613,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/lib/basicutil.c:615,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 105
    argCount: 4
    argNames:
    - argc
    - argv
    - progName
    - cmd
    argTypes:
    - int
    - char**
    - char*
    - secuCommand*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 485
    functionDepth: 2
    functionLinenumber: 485
    functionLinenumberEnd: 619
    functionName: SECU_ParseCommandLine
    functionSourceFile: /src/nss/cmd/lib/basicutil.c
    functionUses: 9
    functionsReached:
    - PORT_Alloc
    - PL_GetNextOpt
    - PORT_Free
    - PR_ASSERT
    - PL_CreateLongOptState
    - PL_DestroyOptState
    - PORT_NewArray
    - HasNoDuplicates
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SECU_ParseCommandLine(int argc, char **argv, char *progName,\n
      \                     const secuCommand *cmd)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PL_strdup
      Src: /src/nss/cmd/lib/basicutil.c:627,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - cmd
    - optionNum
    argTypes:
    - secuCommand*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 621
    functionDepth: 1
    functionLinenumber: 621
    functionLinenumberEnd: 630
    functionName: SECU_GetOptionArg
    functionSourceFile: /src/nss/cmd/lib/basicutil.c
    functionUses: 4
    functionsReached:
    - PL_strdup
    linkageType: ''
    returnType: char
    signature: 'char *

      SECU_GetOptionArg(const secuCommand *cmd, int optionNum)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetErrorTextLength
      Src: /src/nss/cmd/lib/basicutil.c:636,1
    - Dst: PR_GetErrorText
      Src: /src/nss/cmd/lib/basicutil.c:639,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/lib/basicutil.c:641,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/lib/basicutil.c:643,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - progName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 632
    functionDepth: 1
    functionLinenumber: 632
    functionLinenumberEnd: 645
    functionName: SECU_PrintPRandOSError
    functionSourceFile: /src/nss/cmd/lib/basicutil.c
    functionUses: 18
    functionsReached:
    - PR_GetErrorText
    - PR_fprintf
    - PR_GetErrorTextLength
    - SECU_PrintError
    linkageType: ''
    returnType: void
    signature: void SECU_PrintPRandOSError(const char *progName)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PL_strcmp
      Src: /src/nss/cmd/lib/basicutil.c:653,1
    - Dst: PL_strcmp
      Src: /src/nss/cmd/lib/basicutil.c:655,1
    - Dst: PL_strcmp
      Src: /src/nss/cmd/lib/basicutil.c:657,1
    - Dst: PL_strcmp
      Src: /src/nss/cmd/lib/basicutil.c:659,1
    - Dst: PL_strcmp
      Src: /src/nss/cmd/lib/basicutil.c:661,1
    - Dst: PL_strcmp
      Src: /src/nss/cmd/lib/basicutil.c:663,1
    - Dst: PL_strcmp
      Src: /src/nss/cmd/lib/basicutil.c:665,1
    - Dst: PL_strcmp
      Src: /src/nss/cmd/lib/basicutil.c:667,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 1
    argNames:
    - alg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 647
    functionDepth: 1
    functionLinenumber: 647
    functionLinenumberEnd: 672
    functionName: SECU_StringToSignatureAlgTag
    functionSourceFile: /src/nss/cmd/lib/basicutil.c
    functionUses: 1
    functionsReached:
    - PL_strcmp
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag SECU_StringToSignatureAlgTag(const char *alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/nss/cmd/lib/basicutil.c:682,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - item
    - dst
    argTypes:
    - SECItem*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 675
    functionDepth: 1
    functionLinenumber: 675
    functionLinenumberEnd: 685
    functionName: SECU_SECItemToHex
    functionSourceFile: /src/nss/cmd/lib/basicutil.c
    functionUses: 0
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: void
    signature: void SECU_SECItemToHex(const SECItem *item, char *dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Tolower
      Src: /src/nss/cmd/lib/basicutil.c:690,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 687
    functionDepth: 0
    functionLinenumber: 687
    functionLinenumberEnd: 693
    functionName: nibble
    functionSourceFile: /src/nss/cmd/lib/basicutil.c
    functionUses: 1
    functionsReached:
    - PORT_Tolower
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char nibble(char c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/basicutil.c:701,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/basicutil.c:706,1
    - Dst: PORT_Strncasecmp
      Src: /src/nss/cmd/lib/basicutil.c:709,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/basicutil.c:711,1
    - Dst: PORT_Tolower
      Src: /src/nss/cmd/lib/basicutil.c:717,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/basicutil.c:720,1
    - Dst: nibble
      Src: /src/nss/cmd/lib/basicutil.c:727,1
    - Dst: nibble
      Src: /src/nss/cmd/lib/basicutil.c:728,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 1
    argNames:
    - srcdest
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 695
    functionDepth: 1
    functionLinenumber: 695
    functionLinenumberEnd: 735
    functionName: SECU_SECItemHexStringToBinary
    functionSourceFile: /src/nss/cmd/lib/basicutil.c
    functionUses: 4
    functionsReached:
    - nibble
    - PORT_SetError
    - PORT_Strncasecmp
    - PORT_Tolower
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SECU_SECItemHexStringToBinary(SECItem *srcdest)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strlen
      Src: /src/nss/cmd/lib/basicutil.c:742,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/lib/basicutil.c:744,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/basicutil.c:747,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/lib/basicutil.c:751,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/lib/basicutil.c:765,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 3
    argNames:
    - arena
    - item
    - str
    argTypes:
    - PLArenaPool*
    - SECItem*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 737
    functionDepth: 1
    functionLinenumber: 737
    functionLinenumberEnd: 779
    functionName: SECU_HexString2SECItem
    functionSourceFile: /src/nss/cmd/lib/basicutil.c
    functionUses: 5
    functionsReached:
    - PORT_Assert
    - PORT_Strlen
    - SECITEM_AllocItem
    - PORT_SetError
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      SECU_HexString2SECItem(PLArenaPool *arena, SECItem *item, const char *str)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/basicutil.c:804,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/cmd/lib/basicutil.c:808,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/lib/basicutil.c:810,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/lib/basicutil.c:814,1
    - Dst: memcpy
      Src: /src/nss/cmd/lib/basicutil.c:824,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 2
    argNames:
    - curve
    - params
    argTypes:
    - ECCurveName
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 781
    functionDepth: 1
    functionLinenumber: 781
    functionLinenumberEnd: 827
    functionName: SECU_ecName2params
    functionSourceFile: /src/nss/cmd/lib/basicutil.c
    functionUses: 3
    functionsReached:
    - PORT_SetError
    - memcpy
    - SECOID_FindOIDByTag
    - SECITEM_AllocItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SECU_ecName2params(ECCurveName curve, SECItem *params)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 389
    functionName: IFOK
    functionSourceFile: /src/nss/cmd/mpitests/mpi-test.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IFOK(x)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: srand
      Src: /src/nss/cmd/mpitests/mpi-test.c:395,1
    - Dst: time
      Src: /src/nss/cmd/mpitests/mpi-test.c:395,1
    - Dst: fprintf
      Src: /src/nss/cmd/mpitests/mpi-test.c:398,1
    - Dst: strcmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:403,1
    - Dst: strcmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:407,1
    - Dst: fprintf
      Src: /src/nss/cmd/mpitests/mpi-test.c:408,1
    - Dst: find_name
      Src: /src/nss/cmd/mpitests/mpi-test.c:424,1
    - Dst: fprintf
      Src: /src/nss/cmd/mpitests/mpi-test.c:425,1
    - Dst: fprintf
      Src: /src/nss/cmd/mpitests/mpi-test.c:430,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 435
    functionName: main
    functionSourceFile: /src/nss/cmd/mpitests/mpi-test.c
    functionUses: 4
    functionsReached:
    - strcmp
    - find_name
    - srand
    - fprintf
    - time
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:445,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 452
    functionName: find_name
    functionSourceFile: /src/nss/cmd/mpitests/mpi-test.c
    functionUses: 1
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int find_name(char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/mpitests/mpi-test.c:461,1
    - Dst: fprintf
      Src: /src/nss/cmd/mpitests/mpi-test.c:465,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 468
    functionName: test_list
    functionSourceFile: /src/nss/cmd/mpitests/mpi-test.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: int test_list(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:478,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:479,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:481,1
    - Dst: mp_copy
      Src: /src/nss/cmd/mpitests/mpi-test.c:482,1
    - Dst: SIGN
      Src: /src/nss/cmd/mpitests/mpi-test.c:484,1
    - Dst: SIGN
      Src: /src/nss/cmd/mpitests/mpi-test.c:484,1
    - Dst: USED
      Src: /src/nss/cmd/mpitests/mpi-test.c:484,1
    - Dst: USED
      Src: /src/nss/cmd/mpitests/mpi-test.c:484,1
    - Dst: SIGN
      Src: /src/nss/cmd/mpitests/mpi-test.c:485,1
    - Dst: SIGN
      Src: /src/nss/cmd/mpitests/mpi-test.c:485,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:486,1
    - Dst: SIGN
      Src: /src/nss/cmd/mpitests/mpi-test.c:487,1
    - Dst: SIGN
      Src: /src/nss/cmd/mpitests/mpi-test.c:487,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:489,1
    - Dst: USED
      Src: /src/nss/cmd/mpitests/mpi-test.c:490,1
    - Dst: USED
      Src: /src/nss/cmd/mpitests/mpi-test.c:490,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:492,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:493,1
    - Dst: USED
      Src: /src/nss/cmd/mpitests/mpi-test.c:497,1
    - Dst: DIGIT
      Src: /src/nss/cmd/mpitests/mpi-test.c:498,1
    - Dst: DIGIT
      Src: /src/nss/cmd/mpitests/mpi-test.c:498,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:499,1
    - Dst: DIGIT
      Src: /src/nss/cmd/mpitests/mpi-test.c:500,1
    - Dst: DIGIT
      Src: /src/nss/cmd/mpitests/mpi-test.c:500,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:501,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:502,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:507,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:508,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 510
    functionName: test_copy
    functionSourceFile: /src/nss/cmd/mpitests/mpi-test.c
    functionUses: 0
    functionsReached:
    - mp_init
    - reason
    - DIGIT
    - mp_read_radix
    - USED
    - mp_copy
    - SIGN
    - mp_clear
    linkageType: ''
    returnType: int
    signature: int test_copy(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:519,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:520,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:521,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:522,1
    - Dst: mp_exch
      Src: /src/nss/cmd/mpitests/mpi-test.c:524,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:525,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:527,1
    - Dst: strcmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:528,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:529,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:530,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:534,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:536,1
    - Dst: strcmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:537,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:538,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 514
    functionDepth: 1
    functionLinenumber: 514
    functionLinenumberEnd: 543
    functionName: test_exch
    functionSourceFile: /src/nss/cmd/mpitests/mpi-test.c
    functionUses: 0
    functionsReached:
    - mp_init
    - strcmp
    - reason
    - mp_read_radix
    - mp_exch
    - mp_toradix
    - mp_clear
    linkageType: ''
    returnType: int
    signature: int test_exch(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:552,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:553,1
    - Dst: mp_zero
      Src: /src/nss/cmd/mpitests/mpi-test.c:554,1
    - Dst: USED
      Src: /src/nss/cmd/mpitests/mpi-test.c:556,1
    - Dst: DIGIT
      Src: /src/nss/cmd/mpitests/mpi-test.c:556,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:557,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:558,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:559,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:563,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 547
    functionDepth: 1
    functionLinenumber: 547
    functionLinenumberEnd: 565
    functionName: test_zero
    functionSourceFile: /src/nss/cmd/mpitests/mpi-test.c
    functionUses: 0
    functionsReached:
    - mp_init
    - reason
    - DIGIT
    - mp_read_radix
    - USED
    - mp_zero
    - mp_toradix
    - mp_clear
    linkageType: ''
    returnType: int
    signature: int test_zero(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:575,1
    - Dst: mp_set
      Src: /src/nss/cmd/mpitests/mpi-test.c:576,1
    - Dst: DIGIT
      Src: /src/nss/cmd/mpitests/mpi-test.c:577,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:578,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:579,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:580,1
    - Dst: mp_set_int
      Src: /src/nss/cmd/mpitests/mpi-test.c:585,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:586,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:587,1
    - Dst: strcmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:588,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:589,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 569
    functionDepth: 1
    functionLinenumber: 569
    functionLinenumberEnd: 594
    functionName: test_set
    functionSourceFile: /src/nss/cmd/mpitests/mpi-test.c
    functionUses: 0
    functionsReached:
    - mp_init
    - reason
    - DIGIT
    - strcmp
    - mp_set
    - mp_toradix
    - mp_clear
    - mp_set_int
    linkageType: ''
    returnType: int
    signature: int test_set(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:603,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:604,1
    - Dst: mp_abs
      Src: /src/nss/cmd/mpitests/mpi-test.c:605,1
    - Dst: SIGN
      Src: /src/nss/cmd/mpitests/mpi-test.c:607,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:608,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:609,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:613,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 598
    functionDepth: 1
    functionLinenumber: 598
    functionLinenumberEnd: 615
    functionName: test_abs
    functionSourceFile: /src/nss/cmd/mpitests/mpi-test.c
    functionUses: 0
    functionsReached:
    - mp_init
    - reason
    - mp_abs
    - mp_read_radix
    - SIGN
    - mp_clear
    linkageType: ''
    returnType: int
    signature: int test_abs(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:625,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:626,1
    - Dst: SIGN
      Src: /src/nss/cmd/mpitests/mpi-test.c:628,1
    - Dst: mp_neg
      Src: /src/nss/cmd/mpitests/mpi-test.c:629,1
    - Dst: SIGN
      Src: /src/nss/cmd/mpitests/mpi-test.c:630,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:631,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:632,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:636,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 619
    functionDepth: 1
    functionLinenumber: 619
    functionLinenumberEnd: 638
    functionName: test_neg
    functionSourceFile: /src/nss/cmd/mpitests/mpi-test.c
    functionUses: 0
    functionsReached:
    - mp_init
    - reason
    - mp_neg
    - mp_read_radix
    - SIGN
    - mp_clear
    linkageType: ''
    returnType: int
    signature: int test_neg(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:647,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:649,1
    - Dst: mp_add_d
      Src: /src/nss/cmd/mpitests/mpi-test.c:650,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:651,1
    - Dst: strcmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:653,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:654,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:655,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:659,1
    - Dst: mp_add_d
      Src: /src/nss/cmd/mpitests/mpi-test.c:660,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:661,1
    - Dst: strcmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:663,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:664,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:665,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:669,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 642
    functionDepth: 1
    functionLinenumber: 642
    functionLinenumberEnd: 671
    functionName: test_add_d
    functionSourceFile: /src/nss/cmd/mpitests/mpi-test.c
    functionUses: 0
    functionsReached:
    - mp_init
    - strcmp
    - reason
    - mp_add_d
    - mp_read_radix
    - mp_toradix
    - mp_clear
    linkageType: ''
    returnType: int
    signature: int test_add_d(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:681,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:682,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:684,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:685,1
    - Dst: mp_add
      Src: /src/nss/cmd/mpitests/mpi-test.c:686,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:687,1
    - Dst: strcmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:689,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:690,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:695,1
    - Dst: mp_add
      Src: /src/nss/cmd/mpitests/mpi-test.c:696,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:697,1
    - Dst: strcmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:699,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:700,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:705,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:706,1
    - Dst: mp_add
      Src: /src/nss/cmd/mpitests/mpi-test.c:707,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:708,1
    - Dst: strcmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:710,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:711,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:716,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:717,1
    - Dst: mp_add
      Src: /src/nss/cmd/mpitests/mpi-test.c:718,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:719,1
    - Dst: strcmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:721,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:722,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:727,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:728,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 675
    functionDepth: 1
    functionLinenumber: 675
    functionLinenumberEnd: 730
    functionName: test_add
    functionSourceFile: /src/nss/cmd/mpitests/mpi-test.c
    functionUses: 0
    functionsReached:
    - mp_init
    - strcmp
    - reason
    - mp_read_radix
    - mp_add
    - mp_toradix
    - mp_clear
    linkageType: ''
    returnType: int
    signature: int test_add(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:739,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:740,1
    - Dst: mp_sub_d
      Src: /src/nss/cmd/mpitests/mpi-test.c:742,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:743,1
    - Dst: strcmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:745,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:746,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:747,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:751,1
    - Dst: mp_sub_d
      Src: /src/nss/cmd/mpitests/mpi-test.c:753,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:754,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:756,1
    - Dst: strcmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:757,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:758,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 734
    functionDepth: 1
    functionLinenumber: 734
    functionLinenumberEnd: 763
    functionName: test_sub_d
    functionSourceFile: /src/nss/cmd/mpitests/mpi-test.c
    functionUses: 0
    functionsReached:
    - mp_init
    - strcmp
    - reason
    - mp_read_radix
    - mp_sub_d
    - mp_toradix
    - mp_clear
    linkageType: ''
    returnType: int
    signature: int test_sub_d(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:772,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:773,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:775,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:776,1
    - Dst: mp_sub
      Src: /src/nss/cmd/mpitests/mpi-test.c:777,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:778,1
    - Dst: strcmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:780,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:781,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:782,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:783,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:787,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:788,1
    - Dst: mp_sub
      Src: /src/nss/cmd/mpitests/mpi-test.c:789,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:790,1
    - Dst: strcmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:792,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:793,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:794,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:795,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:799,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:800,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 767
    functionDepth: 1
    functionLinenumber: 767
    functionLinenumberEnd: 802
    functionName: test_sub
    functionSourceFile: /src/nss/cmd/mpitests/mpi-test.c
    functionUses: 0
    functionsReached:
    - mp_init
    - strcmp
    - reason
    - mp_read_radix
    - mp_sub
    - mp_toradix
    - mp_clear
    linkageType: ''
    returnType: int
    signature: int test_sub(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:811,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:812,1
    - Dst: IFOK
      Src: /src/nss/cmd/mpitests/mpi-test.c:814,1
    - Dst: mp_mul_d
      Src: /src/nss/cmd/mpitests/mpi-test.c:814,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:815,1
    - Dst: strcmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:817,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:818,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:819,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:823,1
    - Dst: IFOK
      Src: /src/nss/cmd/mpitests/mpi-test.c:824,1
    - Dst: mp_mul_d
      Src: /src/nss/cmd/mpitests/mpi-test.c:824,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:825,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:827,1
    - Dst: strcmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:828,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:829,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 806
    functionDepth: 1
    functionLinenumber: 806
    functionLinenumberEnd: 834
    functionName: test_mul_d
    functionSourceFile: /src/nss/cmd/mpitests/mpi-test.c
    functionUses: 0
    functionsReached:
    - mp_init
    - strcmp
    - reason
    - mp_read_radix
    - mp_toradix
    - mp_clear
    - mp_mul_d
    - IFOK
    linkageType: ''
    returnType: int
    signature: int test_mul_d(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:844,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:845,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:846,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:847,1
    - Dst: IFOK
      Src: /src/nss/cmd/mpitests/mpi-test.c:849,1
    - Dst: mp_mul
      Src: /src/nss/cmd/mpitests/mpi-test.c:849,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:850,1
    - Dst: strcmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:852,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:853,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:858,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:859,1
    - Dst: IFOK
      Src: /src/nss/cmd/mpitests/mpi-test.c:860,1
    - Dst: mp_mul
      Src: /src/nss/cmd/mpitests/mpi-test.c:860,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:861,1
    - Dst: strcmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:863,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:864,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:869,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:870,1
    - Dst: IFOK
      Src: /src/nss/cmd/mpitests/mpi-test.c:871,1
    - Dst: mp_mul
      Src: /src/nss/cmd/mpitests/mpi-test.c:871,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:872,1
    - Dst: strcmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:874,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:875,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:880,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:881,1
    - Dst: IFOK
      Src: /src/nss/cmd/mpitests/mpi-test.c:882,1
    - Dst: mp_mul
      Src: /src/nss/cmd/mpitests/mpi-test.c:882,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:883,1
    - Dst: strcmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:885,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:886,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:891,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:892,1
    - Dst: IFOK
      Src: /src/nss/cmd/mpitests/mpi-test.c:893,1
    - Dst: mp_mul
      Src: /src/nss/cmd/mpitests/mpi-test.c:893,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:894,1
    - Dst: strcmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:896,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:897,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:900,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:901,1
    - Dst: IFOK
      Src: /src/nss/cmd/mpitests/mpi-test.c:903,1
    - Dst: mp_mul
      Src: /src/nss/cmd/mpitests/mpi-test.c:903,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:904,1
    - Dst: strcmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:906,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:907,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:913,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:914,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 66
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 838
    functionDepth: 1
    functionLinenumber: 838
    functionLinenumberEnd: 916
    functionName: test_mul
    functionSourceFile: /src/nss/cmd/mpitests/mpi-test.c
    functionUses: 0
    functionsReached:
    - mp_init
    - strcmp
    - reason
    - mp_read_radix
    - mp_mul
    - mp_toradix
    - mp_clear
    - IFOK
    linkageType: ''
    returnType: int
    signature: int test_mul(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:925,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:926,1
    - Dst: mp_sqr
      Src: /src/nss/cmd/mpitests/mpi-test.c:928,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:929,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:931,1
    - Dst: strcmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:932,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:933,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 920
    functionDepth: 1
    functionLinenumber: 920
    functionLinenumberEnd: 938
    functionName: test_sqr
    functionSourceFile: /src/nss/cmd/mpitests/mpi-test.c
    functionUses: 0
    functionsReached:
    - mp_init
    - mp_sqr
    - strcmp
    - reason
    - mp_read_radix
    - mp_toradix
    - mp_clear
    linkageType: ''
    returnType: int
    signature: int test_sqr(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:949,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:950,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:951,1
    - Dst: IFOK
      Src: /src/nss/cmd/mpitests/mpi-test.c:953,1
    - Dst: mp_div_d
      Src: /src/nss/cmd/mpitests/mpi-test.c:953,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:954,1
    - Dst: strcmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:956,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:957,1
    - Dst: snprintf
      Src: /src/nss/cmd/mpitests/mpi-test.c:961,1
    - Dst: strcmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:963,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:964,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:968,1
    - Dst: IFOK
      Src: /src/nss/cmd/mpitests/mpi-test.c:969,1
    - Dst: mp_div_d
      Src: /src/nss/cmd/mpitests/mpi-test.c:969,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:970,1
    - Dst: strcmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:972,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:973,1
    - Dst: snprintf
      Src: /src/nss/cmd/mpitests/mpi-test.c:977,1
    - Dst: strcmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:979,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:980,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:984,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:985,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 942
    functionDepth: 1
    functionLinenumber: 942
    functionLinenumberEnd: 987
    functionName: test_div_d
    functionSourceFile: /src/nss/cmd/mpitests/mpi-test.c
    functionUses: 0
    functionsReached:
    - mp_init
    - strcmp
    - reason
    - mp_read_radix
    - mp_toradix
    - snprintf
    - mp_clear
    - mp_div_d
    - IFOK
    linkageType: ''
    returnType: int
    signature: int test_div_d(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:996,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:997,1
    - Dst: IFOK
      Src: /src/nss/cmd/mpitests/mpi-test.c:998,1
    - Dst: mp_div_2
      Src: /src/nss/cmd/mpitests/mpi-test.c:998,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:999,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1001,1
    - Dst: strcmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:1002,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:1003,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1008
      start: 991
    functionDepth: 1
    functionLinenumber: 991
    functionLinenumberEnd: 1008
    functionName: test_div_2
    functionSourceFile: /src/nss/cmd/mpitests/mpi-test.c
    functionUses: 0
    functionsReached:
    - mp_init
    - strcmp
    - mp_div_2
    - reason
    - mp_read_radix
    - mp_toradix
    - mp_clear
    - IFOK
    linkageType: ''
    returnType: int
    signature: int test_div_2(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1017,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1018,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1019,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1020,1
    - Dst: IFOK
      Src: /src/nss/cmd/mpitests/mpi-test.c:1022,1
    - Dst: mp_div_2d
      Src: /src/nss/cmd/mpitests/mpi-test.c:1022,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1023,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1025,1
    - Dst: strcmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:1027,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:1028,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1029,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1030,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1034,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1036,1
    - Dst: strcmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:1037,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:1038,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1039,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1043,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 1012
    functionDepth: 1
    functionLinenumber: 1012
    functionLinenumberEnd: 1046
    functionName: test_div_2d
    functionSourceFile: /src/nss/cmd/mpitests/mpi-test.c
    functionUses: 0
    functionsReached:
    - mp_init
    - strcmp
    - reason
    - mp_read_radix
    - mp_toradix
    - IFOK
    - mp_div_2d
    - mp_clear
    linkageType: ''
    returnType: int
    signature: int test_div_2d(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1056,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1057,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1058,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1060,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1061,1
    - Dst: IFOK
      Src: /src/nss/cmd/mpitests/mpi-test.c:1062,1
    - Dst: mp_div
      Src: /src/nss/cmd/mpitests/mpi-test.c:1062,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1063,1
    - Dst: strcmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:1065,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:1066,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1070,1
    - Dst: strcmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:1072,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:1073,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1077,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1078,1
    - Dst: IFOK
      Src: /src/nss/cmd/mpitests/mpi-test.c:1079,1
    - Dst: mp_div
      Src: /src/nss/cmd/mpitests/mpi-test.c:1079,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1080,1
    - Dst: strcmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:1082,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:1083,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1087,1
    - Dst: strcmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:1089,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:1090,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1094,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1095,1
    - Dst: IFOK
      Src: /src/nss/cmd/mpitests/mpi-test.c:1096,1
    - Dst: mp_div
      Src: /src/nss/cmd/mpitests/mpi-test.c:1096,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1097,1
    - Dst: strcmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:1099,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:1100,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1104,1
    - Dst: strcmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:1106,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:1107,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1111,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1112,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1113,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1050
    functionDepth: 1
    functionLinenumber: 1050
    functionLinenumberEnd: 1116
    functionName: test_div
    functionSourceFile: /src/nss/cmd/mpitests/mpi-test.c
    functionUses: 0
    functionsReached:
    - mp_init
    - strcmp
    - reason
    - mp_read_radix
    - mp_toradix
    - mp_div
    - mp_clear
    - IFOK
    linkageType: ''
    returnType: int
    signature: int test_div(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1125,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1126,1
    - Dst: mp_expt_d
      Src: /src/nss/cmd/mpitests/mpi-test.c:1127,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1128,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1130,1
    - Dst: strcmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:1131,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:1132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1137
      start: 1120
    functionDepth: 1
    functionLinenumber: 1120
    functionLinenumberEnd: 1137
    functionName: test_expt_d
    functionSourceFile: /src/nss/cmd/mpitests/mpi-test.c
    functionUses: 0
    functionsReached:
    - mp_init
    - strcmp
    - reason
    - mp_read_radix
    - mp_expt_d
    - mp_toradix
    - mp_clear
    linkageType: ''
    returnType: int
    signature: int test_expt_d(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1146,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1147,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1148,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1149,1
    - Dst: mp_expt
      Src: /src/nss/cmd/mpitests/mpi-test.c:1151,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1152,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1153,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1154,1
    - Dst: strcmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:1156,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:1157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1162
      start: 1141
    functionDepth: 1
    functionLinenumber: 1141
    functionLinenumberEnd: 1162
    functionName: test_expt
    functionSourceFile: /src/nss/cmd/mpitests/mpi-test.c
    functionUses: 0
    functionsReached:
    - mp_init
    - strcmp
    - reason
    - mp_read_radix
    - mp_expt
    - mp_toradix
    - mp_clear
    linkageType: ''
    returnType: int
    signature: int test_expt(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1171,1
    - Dst: mp_2expt
      Src: /src/nss/cmd/mpitests/mpi-test.c:1172,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1173,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1174,1
    - Dst: strcmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:1176,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:1177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1182
      start: 1166
    functionDepth: 1
    functionLinenumber: 1166
    functionLinenumberEnd: 1182
    functionName: test_2expt
    functionSourceFile: /src/nss/cmd/mpitests/mpi-test.c
    functionUses: 0
    functionsReached:
    - mp_init
    - strcmp
    - reason
    - mp_2expt
    - mp_toradix
    - mp_clear
    linkageType: ''
    returnType: int
    signature: int test_2expt(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1192,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1193,1
    - Dst: IFOK
      Src: /src/nss/cmd/mpitests/mpi-test.c:1194,1
    - Dst: mp_mod_d
      Src: /src/nss/cmd/mpitests/mpi-test.c:1194,1
    - Dst: snprintf
      Src: /src/nss/cmd/mpitests/mpi-test.c:1195,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1196,1
    - Dst: strcmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:1198,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:1199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1204
      start: 1186
    functionDepth: 1
    functionLinenumber: 1186
    functionLinenumberEnd: 1204
    functionName: test_mod_d
    functionSourceFile: /src/nss/cmd/mpitests/mpi-test.c
    functionUses: 0
    functionsReached:
    - mp_init
    - strcmp
    - reason
    - mp_read_radix
    - snprintf
    - IFOK
    - mp_clear
    - mp_mod_d
    linkageType: ''
    returnType: int
    signature: int test_mod_d(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1213,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1214,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1215,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1216,1
    - Dst: IFOK
      Src: /src/nss/cmd/mpitests/mpi-test.c:1217,1
    - Dst: mp_mod
      Src: /src/nss/cmd/mpitests/mpi-test.c:1217,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1218,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1219,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1220,1
    - Dst: strcmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:1222,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:1223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1228
      start: 1208
    functionDepth: 1
    functionLinenumber: 1208
    functionLinenumberEnd: 1228
    functionName: test_mod
    functionSourceFile: /src/nss/cmd/mpitests/mpi-test.c
    functionUses: 0
    functionsReached:
    - mp_init
    - strcmp
    - reason
    - mp_read_radix
    - mp_mod
    - mp_toradix
    - mp_clear
    - IFOK
    linkageType: ''
    returnType: int
    signature: int test_mod(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1237,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1238,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1239,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1240,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1241,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1242,1
    - Dst: IFOK
      Src: /src/nss/cmd/mpitests/mpi-test.c:1244,1
    - Dst: mp_addmod
      Src: /src/nss/cmd/mpitests/mpi-test.c:1244,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1245,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1246,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1247,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1248,1
    - Dst: strcmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:1250,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:1251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1256
      start: 1232
    functionDepth: 1
    functionLinenumber: 1232
    functionLinenumberEnd: 1256
    functionName: test_addmod
    functionSourceFile: /src/nss/cmd/mpitests/mpi-test.c
    functionUses: 0
    functionsReached:
    - mp_init
    - strcmp
    - reason
    - mp_addmod
    - mp_read_radix
    - mp_toradix
    - mp_clear
    - IFOK
    linkageType: ''
    returnType: int
    signature: int test_addmod(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1265,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1266,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1267,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1268,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1269,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1270,1
    - Dst: IFOK
      Src: /src/nss/cmd/mpitests/mpi-test.c:1272,1
    - Dst: mp_submod
      Src: /src/nss/cmd/mpitests/mpi-test.c:1272,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1273,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1274,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1275,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1276,1
    - Dst: strcmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:1278,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:1279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1284
      start: 1260
    functionDepth: 1
    functionLinenumber: 1260
    functionLinenumberEnd: 1284
    functionName: test_submod
    functionSourceFile: /src/nss/cmd/mpitests/mpi-test.c
    functionUses: 0
    functionsReached:
    - mp_init
    - strcmp
    - reason
    - mp_read_radix
    - mp_submod
    - mp_toradix
    - mp_clear
    - IFOK
    linkageType: ''
    returnType: int
    signature: int test_submod(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1293,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1294,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1295,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1296,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1297,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1298,1
    - Dst: IFOK
      Src: /src/nss/cmd/mpitests/mpi-test.c:1300,1
    - Dst: mp_mulmod
      Src: /src/nss/cmd/mpitests/mpi-test.c:1300,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1301,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1302,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1303,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1304,1
    - Dst: strcmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:1306,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:1307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1312
      start: 1288
    functionDepth: 1
    functionLinenumber: 1288
    functionLinenumberEnd: 1312
    functionName: test_mulmod
    functionSourceFile: /src/nss/cmd/mpitests/mpi-test.c
    functionUses: 0
    functionsReached:
    - mp_init
    - strcmp
    - reason
    - mp_read_radix
    - mp_mulmod
    - mp_toradix
    - mp_clear
    - IFOK
    linkageType: ''
    returnType: int
    signature: int test_mulmod(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1321,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1322,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1323,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1324,1
    - Dst: IFOK
      Src: /src/nss/cmd/mpitests/mpi-test.c:1326,1
    - Dst: mp_sqrmod
      Src: /src/nss/cmd/mpitests/mpi-test.c:1326,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1327,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1328,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1329,1
    - Dst: strcmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:1331,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:1332,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1337
      start: 1316
    functionDepth: 1
    functionLinenumber: 1316
    functionLinenumberEnd: 1337
    functionName: test_sqrmod
    functionSourceFile: /src/nss/cmd/mpitests/mpi-test.c
    functionUses: 0
    functionsReached:
    - mp_init
    - strcmp
    - reason
    - mp_read_radix
    - mp_toradix
    - mp_clear
    - mp_sqrmod
    - IFOK
    linkageType: ''
    returnType: int
    signature: int test_sqrmod(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1347,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1348,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1349,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1350,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1351,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1352,1
    - Dst: IFOK
      Src: /src/nss/cmd/mpitests/mpi-test.c:1354,1
    - Dst: mp_exptmod
      Src: /src/nss/cmd/mpitests/mpi-test.c:1354,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1355,1
    - Dst: strcmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:1357,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:1358,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1363,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1364,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1365,1
    - Dst: IFOK
      Src: /src/nss/cmd/mpitests/mpi-test.c:1367,1
    - Dst: mp_exptmod
      Src: /src/nss/cmd/mpitests/mpi-test.c:1367,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1368,1
    - Dst: strcmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:1370,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:1371,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1376,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1377,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1378,1
    - Dst: IFOK
      Src: /src/nss/cmd/mpitests/mpi-test.c:1380,1
    - Dst: mp_exptmod
      Src: /src/nss/cmd/mpitests/mpi-test.c:1380,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1381,1
    - Dst: strcmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:1383,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:1384,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1388,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1389,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1390,1
    - Dst: IFOK
      Src: /src/nss/cmd/mpitests/mpi-test.c:1392,1
    - Dst: mp_exptmod
      Src: /src/nss/cmd/mpitests/mpi-test.c:1392,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1393,1
    - Dst: strcmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:1395,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:1396,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1401,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1402,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1403,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1405
      start: 1341
    functionDepth: 1
    functionLinenumber: 1341
    functionLinenumberEnd: 1405
    functionName: test_exptmod
    functionSourceFile: /src/nss/cmd/mpitests/mpi-test.c
    functionUses: 0
    functionsReached:
    - mp_init
    - strcmp
    - reason
    - mp_exptmod
    - mp_read_radix
    - mp_toradix
    - mp_clear
    - IFOK
    linkageType: ''
    returnType: int
    signature: int test_exptmod(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1414,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1415,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1416,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1417,1
    - Dst: IFOK
      Src: /src/nss/cmd/mpitests/mpi-test.c:1419,1
    - Dst: mp_exptmod_d
      Src: /src/nss/cmd/mpitests/mpi-test.c:1419,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1420,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1421,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1422,1
    - Dst: strcmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:1424,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:1425,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1430
      start: 1409
    functionDepth: 1
    functionLinenumber: 1409
    functionLinenumberEnd: 1430
    functionName: test_exptmod_d
    functionSourceFile: /src/nss/cmd/mpitests/mpi-test.c
    functionUses: 0
    functionsReached:
    - mp_init
    - strcmp
    - reason
    - mp_read_radix
    - mp_exptmod_d
    - mp_toradix
    - mp_clear
    - IFOK
    linkageType: ''
    returnType: int
    signature: int test_exptmod_d(void)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1449,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1450,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1451,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1452,1
    - Dst: IFOK
      Src: /src/nss/cmd/mpitests/mpi-test.c:1454,1
    - Dst: mp_invmod
      Src: /src/nss/cmd/mpitests/mpi-test.c:1454,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1456,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1457,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1458,1
    - Dst: strcmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:1460,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:1461,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1465,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1466,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1467,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1468,1
    - Dst: IFOK
      Src: /src/nss/cmd/mpitests/mpi-test.c:1470,1
    - Dst: mp_invmod
      Src: /src/nss/cmd/mpitests/mpi-test.c:1470,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1472,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1473,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1474,1
    - Dst: strcmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:1476,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:1477,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1499,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1500,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1501,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1502,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1503,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1504,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1505,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1506,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1507,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1508,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1509,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1510,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1512,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1513,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1514,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1515,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1516,1
    - Dst: IFOK
      Src: /src/nss/cmd/mpitests/mpi-test.c:1518,1
    - Dst: mp_2expt
      Src: /src/nss/cmd/mpitests/mpi-test.c:1518,1
    - Dst: IFOK
      Src: /src/nss/cmd/mpitests/mpi-test.c:1519,1
    - Dst: mp_2expt
      Src: /src/nss/cmd/mpitests/mpi-test.c:1519,1
    - Dst: IFOK
      Src: /src/nss/cmd/mpitests/mpi-test.c:1520,1
    - Dst: mp_2expt
      Src: /src/nss/cmd/mpitests/mpi-test.c:1520,1
    - Dst: IFOK
      Src: /src/nss/cmd/mpitests/mpi-test.c:1524,1
    - Dst: mp_mul
      Src: /src/nss/cmd/mpitests/mpi-test.c:1524,1
    - Dst: IFOK
      Src: /src/nss/cmd/mpitests/mpi-test.c:1525,1
    - Dst: mp_mul
      Src: /src/nss/cmd/mpitests/mpi-test.c:1525,1
    - Dst: IFOK
      Src: /src/nss/cmd/mpitests/mpi-test.c:1526,1
    - Dst: mp_invmod
      Src: /src/nss/cmd/mpitests/mpi-test.c:1526,1
    - Dst: IFOK
      Src: /src/nss/cmd/mpitests/mpi-test.c:1527,1
    - Dst: mp_invmod_xgcd
      Src: /src/nss/cmd/mpitests/mpi-test.c:1527,1
    - Dst: mp_cmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:1529,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1530,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1531,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:1532,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1536,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1537,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1538,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1539,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1540,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1541,1
    - Dst: IFOK
      Src: /src/nss/cmd/mpitests/mpi-test.c:1545,1
    - Dst: mp_mul
      Src: /src/nss/cmd/mpitests/mpi-test.c:1545,1
    - Dst: mp_invmod_xgcd
      Src: /src/nss/cmd/mpitests/mpi-test.c:1548,1
    - Dst: mp_invmod
      Src: /src/nss/cmd/mpitests/mpi-test.c:1552,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:1555,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1558,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1559,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1560,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1561,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1562,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1563,1
    - Dst: IFOK
      Src: /src/nss/cmd/mpitests/mpi-test.c:1567,1
    - Dst: mp_mul
      Src: /src/nss/cmd/mpitests/mpi-test.c:1567,1
    - Dst: IFOK
      Src: /src/nss/cmd/mpitests/mpi-test.c:1569,1
    - Dst: mp_invmod
      Src: /src/nss/cmd/mpitests/mpi-test.c:1569,1
    - Dst: IFOK
      Src: /src/nss/cmd/mpitests/mpi-test.c:1570,1
    - Dst: mp_invmod_xgcd
      Src: /src/nss/cmd/mpitests/mpi-test.c:1570,1
    - Dst: mp_cmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:1572,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1573,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1574,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:1575,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1579,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1580,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1581,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1582,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1583,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1584,1
    - Dst: IFOK
      Src: /src/nss/cmd/mpitests/mpi-test.c:1589,1
    - Dst: mp_mul
      Src: /src/nss/cmd/mpitests/mpi-test.c:1589,1
    - Dst: mp_invmod_xgcd
      Src: /src/nss/cmd/mpitests/mpi-test.c:1592,1
    - Dst: mp_invmod
      Src: /src/nss/cmd/mpitests/mpi-test.c:1596,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:1599,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1602,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1603,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1604,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1605,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1606,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1607,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1608,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1609,1
    - Dst: IFOK
      Src: /src/nss/cmd/mpitests/mpi-test.c:1613,1
    - Dst: mp_mul
      Src: /src/nss/cmd/mpitests/mpi-test.c:1613,1
    - Dst: IFOK
      Src: /src/nss/cmd/mpitests/mpi-test.c:1615,1
    - Dst: mp_mul
      Src: /src/nss/cmd/mpitests/mpi-test.c:1615,1
    - Dst: mp_invmod_xgcd
      Src: /src/nss/cmd/mpitests/mpi-test.c:1617,1
    - Dst: mp_invmod
      Src: /src/nss/cmd/mpitests/mpi-test.c:1621,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:1624,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1627,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1628,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1629,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1630,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1631,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1632,1
    - Dst: IFOK
      Src: /src/nss/cmd/mpitests/mpi-test.c:1637,1
    - Dst: mp_mul
      Src: /src/nss/cmd/mpitests/mpi-test.c:1637,1
    - Dst: mp_invmod_xgcd
      Src: /src/nss/cmd/mpitests/mpi-test.c:1639,1
    - Dst: mp_invmod
      Src: /src/nss/cmd/mpitests/mpi-test.c:1643,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:1646,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1649,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1650,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1651,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1652,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1653,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1654,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1655,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1656,1
    - Dst: IFOK
      Src: /src/nss/cmd/mpitests/mpi-test.c:1661,1
    - Dst: mp_mul
      Src: /src/nss/cmd/mpitests/mpi-test.c:1661,1
    - Dst: IFOK
      Src: /src/nss/cmd/mpitests/mpi-test.c:1662,1
    - Dst: mp_mul
      Src: /src/nss/cmd/mpitests/mpi-test.c:1662,1
    - Dst: IFOK
      Src: /src/nss/cmd/mpitests/mpi-test.c:1663,1
    - Dst: mp_invmod
      Src: /src/nss/cmd/mpitests/mpi-test.c:1663,1
    - Dst: IFOK
      Src: /src/nss/cmd/mpitests/mpi-test.c:1664,1
    - Dst: mp_invmod_xgcd
      Src: /src/nss/cmd/mpitests/mpi-test.c:1664,1
    - Dst: mp_cmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:1666,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1667,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1668,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:1669,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1673,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1674,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1675,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1676,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1677,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1678,1
    - Dst: IFOK
      Src: /src/nss/cmd/mpitests/mpi-test.c:1683,1
    - Dst: mp_mul
      Src: /src/nss/cmd/mpitests/mpi-test.c:1683,1
    - Dst: IFOK
      Src: /src/nss/cmd/mpitests/mpi-test.c:1685,1
    - Dst: mp_invmod
      Src: /src/nss/cmd/mpitests/mpi-test.c:1685,1
    - Dst: IFOK
      Src: /src/nss/cmd/mpitests/mpi-test.c:1686,1
    - Dst: mp_invmod_xgcd
      Src: /src/nss/cmd/mpitests/mpi-test.c:1686,1
    - Dst: mp_cmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:1688,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1689,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1690,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:1691,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1695,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1696,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1697,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1698,1
    - Dst: IFOK
      Src: /src/nss/cmd/mpitests/mpi-test.c:1703,1
    - Dst: mp_invmod
      Src: /src/nss/cmd/mpitests/mpi-test.c:1703,1
    - Dst: IFOK
      Src: /src/nss/cmd/mpitests/mpi-test.c:1704,1
    - Dst: mp_invmod_xgcd
      Src: /src/nss/cmd/mpitests/mpi-test.c:1704,1
    - Dst: mp_cmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:1706,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1707,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1708,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:1709,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1713,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1714,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1715,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1716,1
    - Dst: IFOK
      Src: /src/nss/cmd/mpitests/mpi-test.c:1721,1
    - Dst: mp_invmod
      Src: /src/nss/cmd/mpitests/mpi-test.c:1721,1
    - Dst: IFOK
      Src: /src/nss/cmd/mpitests/mpi-test.c:1722,1
    - Dst: mp_invmod_xgcd
      Src: /src/nss/cmd/mpitests/mpi-test.c:1722,1
    - Dst: mp_cmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:1724,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1725,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1726,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:1727,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1732,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1733,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1734,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1735,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1736,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1737,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1738,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1739,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1740,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1741,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1742,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1743,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 215
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1746
      start: 1434
    functionDepth: 1
    functionLinenumber: 1434
    functionLinenumberEnd: 1746
    functionName: test_invmod
    functionSourceFile: /src/nss/cmd/mpitests/mpi-test.c
    functionUses: 0
    functionsReached:
    - mp_init
    - strcmp
    - reason
    - mp_read_radix
    - mp_2expt
    - mp_invmod
    - mp_mul
    - mp_invmod_xgcd
    - mp_toradix
    - mp_cmp
    - mp_clear
    - IFOK
    linkageType: ''
    returnType: int
    signature: int test_invmod(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1755,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1756,1
    - Dst: mp_cmp_d
      Src: /src/nss/cmd/mpitests/mpi-test.c:1758,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:1759,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1760,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1764,1
    - Dst: mp_cmp_d
      Src: /src/nss/cmd/mpitests/mpi-test.c:1766,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:1767,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1768,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1772,1
    - Dst: mp_cmp_d
      Src: /src/nss/cmd/mpitests/mpi-test.c:1774,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:1775,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1776,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1780,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1782
      start: 1750
    functionDepth: 1
    functionLinenumber: 1750
    functionLinenumberEnd: 1782
    functionName: test_cmp_d
    functionSourceFile: /src/nss/cmd/mpitests/mpi-test.c
    functionUses: 0
    functionsReached:
    - mp_init
    - reason
    - mp_read_radix
    - mp_cmp_d
    - mp_clear
    linkageType: ''
    returnType: int
    signature: int test_cmp_d(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1791,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1792,1
    - Dst: mp_cmp_z
      Src: /src/nss/cmd/mpitests/mpi-test.c:1794,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:1795,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1796,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1800,1
    - Dst: mp_cmp_z
      Src: /src/nss/cmd/mpitests/mpi-test.c:1802,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:1803,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1804,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1808,1
    - Dst: mp_cmp_z
      Src: /src/nss/cmd/mpitests/mpi-test.c:1810,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:1811,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1812,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1816,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1818
      start: 1786
    functionDepth: 1
    functionLinenumber: 1786
    functionLinenumberEnd: 1818
    functionName: test_cmp_z
    functionSourceFile: /src/nss/cmd/mpitests/mpi-test.c
    functionUses: 0
    functionsReached:
    - mp_init
    - reason
    - mp_read_radix
    - mp_cmp_z
    - mp_clear
    linkageType: ''
    returnType: int
    signature: int test_cmp_z(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1827,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1828,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1829,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1830,1
    - Dst: mp_cmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:1832,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:1833,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1834,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1835,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1839,1
    - Dst: mp_cmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:1840,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:1841,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1842,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1843,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1847,1
    - Dst: mp_cmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:1848,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:1849,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1850,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1851,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1855,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1856,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1858
      start: 1822
    functionDepth: 1
    functionLinenumber: 1822
    functionLinenumberEnd: 1858
    functionName: test_cmp
    functionSourceFile: /src/nss/cmd/mpitests/mpi-test.c
    functionUses: 0
    functionsReached:
    - mp_init
    - reason
    - mp_read_radix
    - mp_cmp
    - mp_clear
    linkageType: ''
    returnType: int
    signature: int test_cmp(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1867,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1868,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1869,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1870,1
    - Dst: mp_cmp_mag
      Src: /src/nss/cmd/mpitests/mpi-test.c:1872,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:1873,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1874,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1875,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1879,1
    - Dst: mp_cmp_mag
      Src: /src/nss/cmd/mpitests/mpi-test.c:1880,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:1881,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1882,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1883,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1887,1
    - Dst: mp_cmp_mag
      Src: /src/nss/cmd/mpitests/mpi-test.c:1888,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:1889,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1890,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1891,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1895,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1896,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1898
      start: 1862
    functionDepth: 1
    functionLinenumber: 1862
    functionLinenumberEnd: 1898
    functionName: test_cmp_mag
    functionSourceFile: /src/nss/cmd/mpitests/mpi-test.c
    functionUses: 0
    functionsReached:
    - mp_init
    - reason
    - mp_read_radix
    - mp_cmp_mag
    - mp_clear
    linkageType: ''
    returnType: int
    signature: int test_cmp_mag(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1907,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1908,1
    - Dst: mp_isodd
      Src: /src/nss/cmd/mpitests/mpi-test.c:1910,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:1911,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1912,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1916,1
    - Dst: mp_iseven
      Src: /src/nss/cmd/mpitests/mpi-test.c:1918,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:1919,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1920,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1924,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1926
      start: 1902
    functionDepth: 1
    functionLinenumber: 1902
    functionLinenumberEnd: 1926
    functionName: test_parity
    functionSourceFile: /src/nss/cmd/mpitests/mpi-test.c
    functionUses: 0
    functionsReached:
    - mp_init
    - reason
    - mp_read_radix
    - mp_iseven
    - mp_isodd
    - mp_clear
    linkageType: ''
    returnType: int
    signature: int test_parity(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1936,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1937,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1938,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1939,1
    - Dst: mp_gcd
      Src: /src/nss/cmd/mpitests/mpi-test.c:1941,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1942,1
    - Dst: strcmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:1944,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:1945,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1949,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1950,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1952
      start: 1930
    functionDepth: 1
    functionLinenumber: 1930
    functionLinenumberEnd: 1952
    functionName: test_gcd
    functionSourceFile: /src/nss/cmd/mpitests/mpi-test.c
    functionUses: 0
    functionsReached:
    - mp_init
    - strcmp
    - reason
    - mp_read_radix
    - mp_gcd
    - mp_toradix
    - mp_clear
    linkageType: ''
    returnType: int
    signature: int test_gcd(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1962,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1963,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1964,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1965,1
    - Dst: mp_lcm
      Src: /src/nss/cmd/mpitests/mpi-test.c:1967,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1968,1
    - Dst: strcmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:1970,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:1971,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1975,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1976,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1979
      start: 1956
    functionDepth: 1
    functionLinenumber: 1956
    functionLinenumberEnd: 1979
    functionName: test_lcm
    functionSourceFile: /src/nss/cmd/mpitests/mpi-test.c
    functionUses: 0
    functionsReached:
    - mp_init
    - strcmp
    - reason
    - mp_read_radix
    - mp_lcm
    - mp_toradix
    - mp_clear
    linkageType: ''
    returnType: int
    signature: int test_lcm(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:1989,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1990,1
    - Dst: mp_toradix
      Src: /src/nss/cmd/mpitests/mpi-test.c:1993,1
    - Dst: strcmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:1995,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:1996,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:1998,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:2003,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2005
      start: 1983
    functionDepth: 1
    functionLinenumber: 1983
    functionLinenumberEnd: 2005
    functionName: test_convert
    functionSourceFile: /src/nss/cmd/mpitests/mpi-test.c
    functionUses: 0
    functionsReached:
    - mp_init
    - reason
    - strcmp
    - mp_read_radix
    - mp_toradix
    - mp_clear
    linkageType: ''
    returnType: int
    signature: int test_convert(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:2017,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:2018,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:2019,1
    - Dst: mp_raw_size
      Src: /src/nss/cmd/mpitests/mpi-test.c:2021,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:2023,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:2025,1
    - Dst: calloc
      Src: /src/nss/cmd/mpitests/mpi-test.c:2029,1
    - Dst: mp_toraw
      Src: /src/nss/cmd/mpitests/mpi-test.c:2030,1
    - Dst: memcmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:2032,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:2033,1
    - Dst: memcpy
      Src: /src/nss/cmd/mpitests/mpi-test.c:2038,1
    - Dst: mp_read_raw
      Src: /src/nss/cmd/mpitests/mpi-test.c:2039,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:2041,1
    - Dst: mp_cmp
      Src: /src/nss/cmd/mpitests/mpi-test.c:2045,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:2046,1
    - Dst: free
      Src: /src/nss/cmd/mpitests/mpi-test.c:2050,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:2051,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:2052,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2055
      start: 2009
    functionDepth: 1
    functionLinenumber: 2009
    functionLinenumberEnd: 2055
    functionName: test_raw
    functionSourceFile: /src/nss/cmd/mpitests/mpi-test.c
    functionUses: 0
    functionsReached:
    - mp_init
    - reason
    - free
    - memcpy
    - mp_read_radix
    - mp_toraw
    - mp_raw_size
    - mp_read_raw
    - calloc
    - mp_cmp
    - memcmp
    - mp_clear
    linkageType: ''
    returnType: int
    signature: int test_raw(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: RNG_RNGInit
      Src: /src/nss/cmd/mpitests/mpi-test.c:2066,1
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:2067,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:2068,1
    - Dst: mpp_pprime_secure
      Src: /src/nss/cmd/mpitests/mpi-test.c:2070,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:2071,1
    - Dst: IFOK
      Src: /src/nss/cmd/mpitests/mpi-test.c:2075,1
    - Dst: mp_set_int
      Src: /src/nss/cmd/mpitests/mpi-test.c:2075,1
    - Dst: mpp_pprime_secure
      Src: /src/nss/cmd/mpitests/mpi-test.c:2076,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:2078,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:2081,1
    - Dst: IFOK
      Src: /src/nss/cmd/mpitests/mpi-test.c:2085,1
    - Dst: mp_set_int
      Src: /src/nss/cmd/mpitests/mpi-test.c:2085,1
    - Dst: mpp_pprime_secure
      Src: /src/nss/cmd/mpitests/mpi-test.c:2086,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:2088,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:2091,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:2095,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2098
      start: 2059
    functionDepth: 1
    functionLinenumber: 2059
    functionLinenumberEnd: 2098
    functionName: test_pprime
    functionSourceFile: /src/nss/cmd/mpitests/mpi-test.c
    functionUses: 0
    functionsReached:
    - RNG_RNGInit
    - reason
    - mp_init
    - mp_read_radix
    - mpp_pprime_secure
    - mp_clear
    - IFOK
    - mp_set_int
    linkageType: ''
    returnType: int
    signature: int test_pprime(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mp_init
      Src: /src/nss/cmd/mpitests/mpi-test.c:2109,1
    - Dst: mp_read_radix
      Src: /src/nss/cmd/mpitests/mpi-test.c:2110,1
    - Dst: mpp_fermat
      Src: /src/nss/cmd/mpitests/mpi-test.c:2112,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:2113,1
    - Dst: mp_strerror
      Src: /src/nss/cmd/mpitests/mpi-test.c:2114,1
    - Dst: mpp_fermat
      Src: /src/nss/cmd/mpitests/mpi-test.c:2118,1
    - Dst: reason
      Src: /src/nss/cmd/mpitests/mpi-test.c:2119,1
    - Dst: mp_strerror
      Src: /src/nss/cmd/mpitests/mpi-test.c:2120,1
    - Dst: mp_clear
      Src: /src/nss/cmd/mpitests/mpi-test.c:2124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2127
      start: 2102
    functionDepth: 1
    functionLinenumber: 2102
    functionLinenumberEnd: 2127
    functionName: test_fermat
    functionSourceFile: /src/nss/cmd/mpitests/mpi-test.c
    functionUses: 0
    functionsReached:
    - mp_init
    - reason
    - mp_read_radix
    - mp_strerror
    - mpp_fermat
    - mp_clear
    linkageType: ''
    returnType: int
    signature: int test_fermat(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/nss/cmd/mpitests/mpi-test.c:2140,1
    - Dst: vfprintf
      Src: /src/nss/cmd/mpitests/mpi-test.c:2141,1
    - Dst: va_end
      Src: /src/nss/cmd/mpitests/mpi-test.c:2142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2143
      start: 2132
    functionDepth: 0
    functionLinenumber: 2132
    functionLinenumberEnd: 2143
    functionName: reason
    functionSourceFile: /src/nss/cmd/mpitests/mpi-test.c
    functionUses: 40
    functionsReached:
    - vfprintf
    - va_end
    - va_start
    linkageType: ''
    returnType: void
    signature: void reason(char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:31,1
    - Dst: fprintf
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:33,1
    - Dst: fprintf
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:36,1
    - Dst: fprintf
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:39,1
    - Dst: fprintf
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:42,1
    - Dst: fprintf
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:45,1
    - Dst: fprintf
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:48,1
    - Dst: fprintf
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:51,1
    - Dst: fprintf
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:52,1
    - Dst: fprintf
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:53,1
    - Dst: exit
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - prog
    - error
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 55
    functionName: usage
    functionSourceFile: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c
    functionUses: 8
    functionsReached:
    - fprintf
    - exit
    linkageType: ''
    returnType: void
    signature: void usage(char *prog, char *error)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetInternalKeySlot
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:61,1
    - Dst: PR_IntervalNow
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:66,1
    - Dst: printf
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:69,1
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:76,1
    - Dst: fprintf
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:79,1
    - Dst: PORT_ErrorToString
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:81,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:81,1
    - Dst: PR_IntervalNow
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:86,1
    - Dst: PR_TicksPerSecond
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:88,1
    - Dst: PR_TicksPerSecond
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:89,1
    - Dst: printf
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:91,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:95,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:96,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:99,1
    - Dst: printf
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:100,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 102
    functionName: create_key_loop
    functionSourceFile: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c
    functionUses: 0
    functionsReached:
    - PORT_ErrorToString
    - PK11_GetInternalKeySlot
    - SECKEY_DestroyPublicKey
    - PK11_GenerateKeyPair
    - printf
    - PORT_GetError
    - fprintf
    - PR_TicksPerSecond
    - PR_IntervalNow
    - SECKEY_DestroyPrivateKey
    - PK11_FreeSlot
    linkageType: ''
    returnType: void
    signature: void create_key_loop(void *arg)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:121,1
    - Dst: atoi
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:122,1
    - Dst: usage
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:126,1
    - Dst: atoi
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:127,1
    - Dst: usage
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:131,1
    - Dst: atoi
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:132,1
    - Dst: usage
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:136,1
    - Dst: atoi
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:137,1
    - Dst: usage
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:139,1
    - Dst: usage
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:147,1
    - Dst: usage
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:154,1
    - Dst: snprintf
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:157,1
    - Dst: usage
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:158,1
    - Dst: snprintf
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:161,1
    - Dst: usage
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:162,1
    - Dst: NSS_InitReadWrite
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:166,1
    - Dst: fprintf
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:168,1
    - Dst: PORT_ErrorToString
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:170,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:170,1
    - Dst: exit
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:171,1
    - Dst: printf
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:176,1
    - Dst: PR_CreateThread
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:179,1
    - Dst: fprintf
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:185,1
    - Dst: PORT_ErrorToString
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:187,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:187,1
    - Dst: printf
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:190,1
    - Dst: PR_JoinThread
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:195,1
    - Dst: fprintf
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:198,1
    - Dst: PORT_ErrorToString
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:200,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:200,1
    - Dst: NSS_Shutdown
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:203,1
    - Dst: fprintf
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:205,1
    - Dst: PORT_ErrorToString
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:206,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:206,1
    - Dst: printf
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:208,1
    - Dst: exit
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:211,1
    - Dst: exit
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:214,1
    - Dst: exit
      Src: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c:216,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 87
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 217
    functionName: main
    functionSourceFile: /src/nss/cmd/sdbthreadtst/sdbthreadtst.c
    functionUses: 4
    functionsReached:
    - NSS_InitReadWrite
    - PORT_ErrorToString
    - PORT_GetError
    - printf
    - atoi
    - exit
    - fprintf
    - NSS_Shutdown
    - snprintf
    - PR_JoinThread
    - PR_CreateThread
    - usage
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PR_STATIC_ASSERT
      Src: /src/nss/cmd/multinit/multinit.c:122,1
    - Dst: PR_STATIC_ASSERT
      Src: /src/nss/cmd/multinit/multinit.c:123,1
    - Dst: fprintf
      Src: /src/nss/cmd/multinit/multinit.c:127,1
    - Dst: fprintf
      Src: /src/nss/cmd/multinit/multinit.c:130,1
    - Dst: fprintf
      Src: /src/nss/cmd/multinit/multinit.c:133,1
    - Dst: fprintf
      Src: /src/nss/cmd/multinit/multinit.c:136,1
    - Dst: fprintf
      Src: /src/nss/cmd/multinit/multinit.c:140,1
    - Dst: fprintf
      Src: /src/nss/cmd/multinit/multinit.c:142,1
    - Dst: fprintf
      Src: /src/nss/cmd/multinit/multinit.c:147,1
    - Dst: fprintf
      Src: /src/nss/cmd/multinit/multinit.c:151,1
    - Dst: fprintf
      Src: /src/nss/cmd/multinit/multinit.c:154,1
    - Dst: fprintf
      Src: /src/nss/cmd/multinit/multinit.c:158,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 1
    argNames:
    - prog
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 159
    functionName: short_help
    functionSourceFile: /src/nss/cmd/multinit/multinit.c
    functionUses: 0
    functionsReached:
    - fprintf
    - PR_STATIC_ASSERT
    linkageType: ''
    returnType: void
    signature: void short_help(const char *prog)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: short_help
      Src: /src/nss/cmd/multinit/multinit.c:170,1
    - Dst: fprintf
      Src: /src/nss/cmd/multinit/multinit.c:172,1
    - Dst: fprintf
      Src: /src/nss/cmd/multinit/multinit.c:174,1
    - Dst: fprintf
      Src: /src/nss/cmd/multinit/multinit.c:176,1
    - Dst: fprintf
      Src: /src/nss/cmd/multinit/multinit.c:178,1
    - Dst: fprintf
      Src: /src/nss/cmd/multinit/multinit.c:182,1
    - Dst: fprintf
      Src: /src/nss/cmd/multinit/multinit.c:186,1
    - Dst: fprintf
      Src: /src/nss/cmd/multinit/multinit.c:188,1
    - Dst: fprintf
      Src: /src/nss/cmd/multinit/multinit.c:191,1
    - Dst: fprintf
      Src: /src/nss/cmd/multinit/multinit.c:194,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 1
    argNames:
    - prog
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 164
    functionDepth: 2
    functionLinenumber: 164
    functionLinenumberEnd: 196
    functionName: long_help
    functionSourceFile: /src/nss/cmd/multinit/multinit.c
    functionUses: 0
    functionsReached:
    - fprintf
    - short_help
    linkageType: ''
    returnType: void
    signature: void long_help(const char *prog)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/multinit/multinit.c:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 226
    functionName: initBuffer
    functionSourceFile: /src/nss/cmd/multinit/multinit.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    linkageType: ''
    returnType: void
    signature: void initBuffer(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Realloc
      Src: /src/nss/cmd/multinit/multinit.c:236,1
    - Dst: buffer::buffer
      Src: /src/nss/cmd/multinit/multinit.c:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 246
    functionName: growBuffer
    functionSourceFile: /src/nss/cmd/multinit/multinit.c
    functionUses: 0
    functionsReached:
    - buffer::buffer
    - PORT_Realloc
    linkageType: ''
    returnType: void
    signature: void growBuffer(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: growBuffer
      Src: /src/nss/cmd/multinit/multinit.c:260,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - label
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 262
    functionName: appendLabel
    functionSourceFile: /src/nss/cmd/multinit/multinit.c
    functionUses: 0
    functionsReached:
    - growBuffer
    linkageType: ''
    returnType: void
    signature: void appendLabel(char label)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: appendLabel
      Src: /src/nss/cmd/multinit/multinit.c:274,1
    - Dst: appendLabel
      Src: /src/nss/cmd/multinit/multinit.c:276,1
    - Dst: appendLabel
      Src: /src/nss/cmd/multinit/multinit.c:278,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 267
    functionDepth: 2
    functionLinenumber: 267
    functionLinenumberEnd: 279
    functionName: appendString
    functionSourceFile: /src/nss/cmd/multinit/multinit.c
    functionUses: 0
    functionsReached:
    - appendLabel
    linkageType: ''
    returnType: void
    signature: void appendString(char *string)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: appendLabel
      Src: /src/nss/cmd/multinit/multinit.c:294,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - bool
    argTypes:
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 284
    functionDepth: 2
    functionLinenumber: 284
    functionLinenumberEnd: 295
    functionName: appendBool
    functionSourceFile: /src/nss/cmd/multinit/multinit.c
    functionUses: 0
    functionsReached:
    - appendLabel
    linkageType: ''
    returnType: void
    signature: void appendBool(PRBool bool)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: appendLabel
      Src: /src/nss/cmd/multinit/multinit.c:305,1
    - Dst: appendLabel
      Src: /src/nss/cmd/multinit/multinit.c:307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - nibble
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 301
    functionDepth: 2
    functionLinenumber: 301
    functionLinenumberEnd: 309
    functionName: appendHex
    functionSourceFile: /src/nss/cmd/multinit/multinit.c
    functionUses: 0
    functionsReached:
    - appendLabel
    linkageType: ''
    returnType: void
    signature: void appendHex(unsigned char nibble)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: appendLabel
      Src: /src/nss/cmd/multinit/multinit.c:324,1
    - Dst: appendLabel
      Src: /src/nss/cmd/multinit/multinit.c:325,1
    - Dst: appendHex
      Src: /src/nss/cmd/multinit/multinit.c:328,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - value
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 315
    functionDepth: 3
    functionLinenumber: 315
    functionLinenumberEnd: 331
    functionName: appendInt
    functionSourceFile: /src/nss/cmd/multinit/multinit.c
    functionUses: 0
    functionsReached:
    - appendLabel
    - appendHex
    linkageType: ''
    returnType: void
    signature: void appendInt(unsigned int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printflags
      Src: /src/nss/cmd/multinit/multinit.c:341,1
    - Dst: appendLabel
      Src: /src/nss/cmd/multinit/multinit.c:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - flag
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 334
    functionDepth: 2
    functionLinenumber: 334
    functionLinenumberEnd: 345
    functionName: appendFlags
    functionSourceFile: /src/nss/cmd/multinit/multinit.c
    functionUses: 0
    functionsReached:
    - appendLabel
    - printflags
    linkageType: ''
    returnType: void
    signature: void appendFlags(unsigned int flag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: appendLabel
      Src: /src/nss/cmd/multinit/multinit.c:358,1
    - Dst: printf
      Src: /src/nss/cmd/multinit/multinit.c:359,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/multinit/multinit.c:360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 351
    functionDepth: 2
    functionLinenumber: 351
    functionLinenumberEnd: 363
    functionName: dumpBuffer
    functionSourceFile: /src/nss/cmd/multinit/multinit.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - appendLabel
    - printf
    linkageType: ''
    returnType: void
    signature: void dumpBuffer(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: short_help
      Src: /src/nss/cmd/multinit/multinit.c:371,1
    - Dst: dumpBuffer
      Src: /src/nss/cmd/multinit/multinit.c:372,1
    - Dst: exit
      Src: /src/nss/cmd/multinit/multinit.c:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - prog
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 368
    functionDepth: 3
    functionLinenumber: 368
    functionLinenumberEnd: 374
    functionName: usage
    functionSourceFile: /src/nss/cmd/multinit/multinit.c
    functionUses: 9
    functionsReached:
    - short_help
    - dumpBuffer
    - exit
    linkageType: ''
    returnType: void
    signature: void usage(const char *prog)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: long_help
      Src: /src/nss/cmd/multinit/multinit.c:382,1
    - Dst: dumpBuffer
      Src: /src/nss/cmd/multinit/multinit.c:383,1
    - Dst: exit
      Src: /src/nss/cmd/multinit/multinit.c:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - prog
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 379
    functionDepth: 3
    functionLinenumber: 379
    functionLinenumberEnd: 385
    functionName: usage_long
    functionSourceFile: /src/nss/cmd/multinit/multinit.c
    functionUses: 0
    functionsReached:
    - long_help
    - dumpBuffer
    - exit
    linkageType: ''
    returnType: void
    signature: void usage_long(const char *prog)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bool
    argTypes:
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 391
    functionName: bool2String
    functionSourceFile: /src/nss/cmd/multinit/multinit.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      bool2String(PRBool bool)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/multinit/multinit.c:400,1
    - Dst: PK11_GetSlotName
      Src: /src/nss/cmd/multinit/multinit.c:401,1
    - Dst: PK11_GetTokenName
      Src: /src/nss/cmd/multinit/multinit.c:401,1
    - Dst: bool2String
      Src: /src/nss/cmd/multinit/multinit.c:402,1
    - Dst: PK11_IsPresent
      Src: /src/nss/cmd/multinit/multinit.c:402,1
    - Dst: bool2String
      Src: /src/nss/cmd/multinit/multinit.c:403,1
    - Dst: PK11_IsReadOnly
      Src: /src/nss/cmd/multinit/multinit.c:403,1
    - Dst: appendLabel
      Src: /src/nss/cmd/multinit/multinit.c:405,1
    - Dst: appendString
      Src: /src/nss/cmd/multinit/multinit.c:406,1
    - Dst: PK11_GetTokenName
      Src: /src/nss/cmd/multinit/multinit.c:406,1
    - Dst: appendBool
      Src: /src/nss/cmd/multinit/multinit.c:407,1
    - Dst: PK11_IsPresent
      Src: /src/nss/cmd/multinit/multinit.c:407,1
    - Dst: appendBool
      Src: /src/nss/cmd/multinit/multinit.c:408,1
    - Dst: PK11_IsReadOnly
      Src: /src/nss/cmd/multinit/multinit.c:408,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - slot
    - log
    argTypes:
    - PK11SlotInfo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 396
    functionDepth: 3
    functionLinenumber: 396
    functionLinenumberEnd: 409
    functionName: print_slot
    functionSourceFile: /src/nss/cmd/multinit/multinit.c
    functionUses: 0
    functionsReached:
    - appendLabel
    - appendString
    - PK11_GetTokenName
    - PK11_GetSlotName
    - PK11_IsPresent
    - fprintf
    - bool2String
    - appendBool
    - PK11_IsReadOnly
    linkageType: ''
    returnType: void
    signature: void print_slot(PK11SlotInfo *slot, int log)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetAllTokens
      Src: /src/nss/cmd/multinit/multinit.c:420,1
    - Dst: fprintf
      Src: /src/nss/cmd/multinit/multinit.c:422,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/multinit/multinit.c:423,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/multinit/multinit.c:423,1
    - Dst: appendLabel
      Src: /src/nss/cmd/multinit/multinit.c:424,1
    - Dst: appendString
      Src: /src/nss/cmd/multinit/multinit.c:425,1
    - Dst: PK11_GetFirstSafe
      Src: /src/nss/cmd/multinit/multinit.c:429,1
    - Dst: PK11_GetNextSafe
      Src: /src/nss/cmd/multinit/multinit.c:430,1
    - Dst: print_slot
      Src: /src/nss/cmd/multinit/multinit.c:431,1
    - Dst: PK11_FreeSlotList
      Src: /src/nss/cmd/multinit/multinit.c:433,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - progName
    - log
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 414
    functionDepth: 4
    functionLinenumber: 414
    functionLinenumberEnd: 434
    functionName: do_list_slots
    functionSourceFile: /src/nss/cmd/multinit/multinit.c
    functionUses: 0
    functionsReached:
    - PK11_FreeSlotList
    - PK11_GetAllTokens
    - appendLabel
    - PK11_GetNextSafe
    - SECU_Strerror
    - appendString
    - PORT_GetError
    - print_slot
    - fprintf
    - PK11_GetFirstSafe
    linkageType: ''
    returnType: void
    signature: void do_list_slots(const char *progName, int log)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CERT_GetCommonName
      Src: /src/nss/cmd/multinit/multinit.c:442,1
    - Dst: CERT_GetCommonName
      Src: /src/nss/cmd/multinit/multinit.c:443,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/multinit/multinit.c:446,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/multinit/multinit.c:450,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/multinit/multinit.c:453,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/multinit/multinit.c:454,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/multinit/multinit.c:455,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - certa
    - certb
    - arg
    argTypes:
    - CERTCertificate*
    - CERTCertificate*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 457
    functionName: sort_CN
    functionSourceFile: /src/nss/cmd/multinit/multinit.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - CERT_GetCommonName
    - PORT_Strcmp
    linkageType: ''
    returnType: PRBool
    signature: PRBool sort_CN(CERTCertificate *certa, CERTCertificate *certb, void
      *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PK11_ListCerts
      Src: /src/nss/cmd/multinit/multinit.c:471,1
    - Dst: fprintf
      Src: /src/nss/cmd/multinit/multinit.c:473,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/multinit/multinit.c:474,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/multinit/multinit.c:474,1
    - Dst: appendLabel
      Src: /src/nss/cmd/multinit/multinit.c:475,1
    - Dst: appendString
      Src: /src/nss/cmd/multinit/multinit.c:476,1
    - Dst: CERT_NewCertList
      Src: /src/nss/cmd/multinit/multinit.c:480,1
    - Dst: fprintf
      Src: /src/nss/cmd/multinit/multinit.c:482,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/multinit/multinit.c:483,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/multinit/multinit.c:483,1
    - Dst: appendLabel
      Src: /src/nss/cmd/multinit/multinit.c:484,1
    - Dst: appendLabel
      Src: /src/nss/cmd/multinit/multinit.c:485,1
    - Dst: appendInt
      Src: /src/nss/cmd/multinit/multinit.c:486,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/multinit/multinit.c:486,1
    - Dst: CERT_LIST_HEAD
      Src: /src/nss/cmd/multinit/multinit.c:491,1
    - Dst: CERT_LIST_END
      Src: /src/nss/cmd/multinit/multinit.c:491,1
    - Dst: CERT_LIST_NEXT
      Src: /src/nss/cmd/multinit/multinit.c:492,1
    - Dst: CERT_AddCertToListSorted
      Src: /src/nss/cmd/multinit/multinit.c:493,1
    - Dst: CERT_LIST_HEAD
      Src: /src/nss/cmd/multinit/multinit.c:496,1
    - Dst: CERT_LIST_END
      Src: /src/nss/cmd/multinit/multinit.c:496,1
    - Dst: CERT_LIST_NEXT
      Src: /src/nss/cmd/multinit/multinit.c:497,1
    - Dst: SECU_PrintCertNickname
      Src: /src/nss/cmd/multinit/multinit.c:501,1
    - Dst: fprintf
      Src: /src/nss/cmd/multinit/multinit.c:503,1
    - Dst: PK11_GetTokenName
      Src: /src/nss/cmd/multinit/multinit.c:503,1
    - Dst: fprintf
      Src: /src/nss/cmd/multinit/multinit.c:504,1
    - Dst: fprintf
      Src: /src/nss/cmd/multinit/multinit.c:505,1
    - Dst: fprintf
      Src: /src/nss/cmd/multinit/multinit.c:506,1
    - Dst: fprintf
      Src: /src/nss/cmd/multinit/multinit.c:507,1
    - Dst: fprintf
      Src: /src/nss/cmd/multinit/multinit.c:510,1
    - Dst: fprintf
      Src: /src/nss/cmd/multinit/multinit.c:511,1
    - Dst: fprintf
      Src: /src/nss/cmd/multinit/multinit.c:513,1
    - Dst: appendLabel
      Src: /src/nss/cmd/multinit/multinit.c:515,1
    - Dst: CERT_GetCommonName
      Src: /src/nss/cmd/multinit/multinit.c:516,1
    - Dst: appendString
      Src: /src/nss/cmd/multinit/multinit.c:517,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/multinit/multinit.c:518,1
    - Dst: CERT_GetCertTrust
      Src: /src/nss/cmd/multinit/multinit.c:519,1
    - Dst: appendFlags
      Src: /src/nss/cmd/multinit/multinit.c:520,1
    - Dst: appendFlags
      Src: /src/nss/cmd/multinit/multinit.c:521,1
    - Dst: appendFlags
      Src: /src/nss/cmd/multinit/multinit.c:522,1
    - Dst: CERT_DestroyCertList
      Src: /src/nss/cmd/multinit/multinit.c:525,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 45
    argCount: 2
    argNames:
    - progName
    - log
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 462
    functionDepth: 4
    functionLinenumber: 462
    functionLinenumberEnd: 526
    functionName: do_list_certs
    functionSourceFile: /src/nss/cmd/multinit/multinit.c
    functionUses: 0
    functionsReached:
    - appendLabel
    - CERT_NewCertList
    - fprintf
    - appendInt
    - CERT_GetCommonName
    - CERT_LIST_END
    - CERT_AddCertToListSorted
    - CERT_GetCertTrust
    - CERT_LIST_NEXT
    - CERT_LIST_HEAD
    - PK11_GetTokenName
    - SECU_PrintCertNickname
    - PK11_ListCerts
    - CERT_DestroyCertList
    - SECU_Strerror
    - appendString
    - PORT_Free
    - appendFlags
    - PORT_GetError
    linkageType: ''
    returnType: void
    signature: void do_list_certs(const char *progName, int log)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/cmd/multinit/multinit.c:534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - progName
    - log
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 535
    functionName: do_add_cert
    functionSourceFile: /src/nss/cmd/multinit/multinit.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: void
    signature: void do_add_cert(const char *progName, int log)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetInternalKeySlot
      Src: /src/nss/cmd/multinit/multinit.c:543,1
    - Dst: fprintf
      Src: /src/nss/cmd/multinit/multinit.c:545,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/multinit/multinit.c:546,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/multinit/multinit.c:546,1
    - Dst: appendLabel
      Src: /src/nss/cmd/multinit/multinit.c:547,1
    - Dst: appendLabel
      Src: /src/nss/cmd/multinit/multinit.c:548,1
    - Dst: appendString
      Src: /src/nss/cmd/multinit/multinit.c:549,1
    - Dst: print_slot
      Src: /src/nss/cmd/multinit/multinit.c:551,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/cmd/multinit/multinit.c:552,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - progName
    - log
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 540
    functionDepth: 4
    functionLinenumber: 540
    functionLinenumberEnd: 553
    functionName: do_key_slot
    functionSourceFile: /src/nss/cmd/multinit/multinit.c
    functionUses: 0
    functionsReached:
    - appendLabel
    - PK11_GetInternalKeySlot
    - SECU_Strerror
    - appendString
    - PORT_GetError
    - print_slot
    - fprintf
    - PK11_FreeSlot
    linkageType: ''
    returnType: void
    signature: void do_key_slot(const char *progName, int log)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/multinit/multinit.c:574,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/cmd/multinit/multinit.c:579,1
    - Dst: do_list_slots
      Src: /src/nss/cmd/multinit/multinit.c:580,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/cmd/multinit/multinit.c:581,1
    - Dst: do_list_certs
      Src: /src/nss/cmd/multinit/multinit.c:582,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/cmd/multinit/multinit.c:583,1
    - Dst: do_add_cert
      Src: /src/nss/cmd/multinit/multinit.c:584,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/cmd/multinit/multinit.c:585,1
    - Dst: do_key_slot
      Src: /src/nss/cmd/multinit/multinit.c:586,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/cmd/multinit/multinit.c:587,1
    - Dst: fprintf
      Src: /src/nss/cmd/multinit/multinit.c:588,1
    - Dst: appendLabel
      Src: /src/nss/cmd/multinit/multinit.c:589,1
    - Dst: appendString
      Src: /src/nss/cmd/multinit/multinit.c:590,1
    - Dst: usage_long
      Src: /src/nss/cmd/multinit/multinit.c:591,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 5
    argNames:
    - label
    - initialized
    - command
    - progName
    - log
    argTypes:
    - char*
    - int
    - secuCommandFlag*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 558
    functionDepth: 5
    functionLinenumber: 558
    functionLinenumberEnd: 593
    functionName: do_command
    functionSourceFile: /src/nss/cmd/multinit/multinit.c
    functionUses: 0
    functionsReached:
    - appendLabel
    - PORT_Strcasecmp
    - appendString
    - do_add_cert
    - usage_long
    - fprintf
    - do_list_slots
    - do_key_slot
    - do_list_certs
    linkageType: ''
    returnType: void
    signature: "void do_command(const char *label, int initialized, secuCommandFlag
      *command,\n           const char *progName, int log)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/multinit/multinit.c:609,1
    - Dst: appendLabel
      Src: /src/nss/cmd/multinit/multinit.c:611,1
    - Dst: fprintf
      Src: /src/nss/cmd/multinit/multinit.c:613,1
    - Dst: usage
      Src: /src/nss/cmd/multinit/multinit.c:614,1
    - Dst: fprintf
      Src: /src/nss/cmd/multinit/multinit.c:617,1
    - Dst: appendLabel
      Src: /src/nss/cmd/multinit/multinit.c:618,1
    - Dst: appendString
      Src: /src/nss/cmd/multinit/multinit.c:619,1
    - Dst: PK11_ConfigurePKCS11
      Src: /src/nss/cmd/multinit/multinit.c:622,1
    - Dst: NSS_Initialize
      Src: /src/nss/cmd/multinit/multinit.c:625,1
    - Dst: appendLabel
      Src: /src/nss/cmd/multinit/multinit.c:629,1
    - Dst: appendInt
      Src: /src/nss/cmd/multinit/multinit.c:630,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/multinit/multinit.c:630,1
    - Dst: fprintf
      Src: /src/nss/cmd/multinit/multinit.c:631,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/multinit/multinit.c:631,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/multinit/multinit.c:631,1
    - Dst: dumpBuffer
      Src: /src/nss/cmd/multinit/multinit.c:632,1
    - Dst: exit
      Src: /src/nss/cmd/multinit/multinit.c:633,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 5
    argNames:
    - db
    - tokNam
    - readOnly
    - progName
    - log
    argTypes:
    - secuCommandFlag*
    - secuCommandFlag*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 603
    functionDepth: 4
    functionLinenumber: 603
    functionLinenumberEnd: 636
    functionName: main_Init
    functionSourceFile: /src/nss/cmd/multinit/multinit.c
    functionUses: 0
    functionsReached:
    - PK11_ConfigurePKCS11
    - appendLabel
    - SECU_Strerror
    - appendString
    - PORT_GetError
    - exit
    - fprintf
    - NSS_Initialize
    - dumpBuffer
    - appendInt
    - usage
    linkageType: ''
    returnType: void
    signature: "void main_Init(secuCommandFlag *db, secuCommandFlag *tokNam,\n          int
      readOnly, const char *progName, int log)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_command
      Src: /src/nss/cmd/multinit/multinit.c:641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - command
    - progName
    - log
    argTypes:
    - secuCommandFlag*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 638
    functionDepth: 6
    functionLinenumber: 638
    functionLinenumberEnd: 642
    functionName: main_Do
    functionSourceFile: /src/nss/cmd/multinit/multinit.c
    functionUses: 0
    functionsReached:
    - do_command
    linkageType: ''
    returnType: void
    signature: void main_Do(secuCommandFlag *command, const char *progName, int log)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: appendLabel
      Src: /src/nss/cmd/multinit/multinit.c:648,1
    - Dst: fprintf
      Src: /src/nss/cmd/multinit/multinit.c:650,1
    - Dst: fprintf
      Src: /src/nss/cmd/multinit/multinit.c:653,1
    - Dst: NSS_Shutdown
      Src: /src/nss/cmd/multinit/multinit.c:656,1
    - Dst: NSS_ShutdownContext
      Src: /src/nss/cmd/multinit/multinit.c:658,1
    - Dst: fprintf
      Src: /src/nss/cmd/multinit/multinit.c:660,1
    - Dst: appendLabel
      Src: /src/nss/cmd/multinit/multinit.c:662,1
    - Dst: appendInt
      Src: /src/nss/cmd/multinit/multinit.c:663,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/multinit/multinit.c:663,1
    - Dst: fprintf
      Src: /src/nss/cmd/multinit/multinit.c:664,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/multinit/multinit.c:664,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/multinit/multinit.c:664,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - old_style
    - progName
    - log
    argTypes:
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 644
    functionDepth: 4
    functionLinenumber: 644
    functionLinenumberEnd: 667
    functionName: main_Shutdown
    functionSourceFile: /src/nss/cmd/multinit/multinit.c
    functionUses: 0
    functionsReached:
    - appendLabel
    - NSS_ShutdownContext
    - SECU_Strerror
    - PORT_GetError
    - fprintf
    - NSS_Shutdown
    - appendInt
    linkageType: ''
    returnType: void
    signature: void main_Shutdown(int old_style, const char *progName, int log)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: appendLabel
      Src: /src/nss/cmd/multinit/multinit.c:679,1
    - Dst: fprintf
      Src: /src/nss/cmd/multinit/multinit.c:681,1
    - Dst: fprintf
      Src: /src/nss/cmd/multinit/multinit.c:685,1
    - Dst: usage
      Src: /src/nss/cmd/multinit/multinit.c:686,1
    - Dst: fprintf
      Src: /src/nss/cmd/multinit/multinit.c:689,1
    - Dst: PORT_Memset
      Src: /src/nss/cmd/multinit/multinit.c:692,1
    - Dst: NSS_InitContext
      Src: /src/nss/cmd/multinit/multinit.c:697,1
    - Dst: appendLabel
      Src: /src/nss/cmd/multinit/multinit.c:701,1
    - Dst: appendInt
      Src: /src/nss/cmd/multinit/multinit.c:702,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/multinit/multinit.c:702,1
    - Dst: fprintf
      Src: /src/nss/cmd/multinit/multinit.c:703,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/multinit/multinit.c:703,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/multinit/multinit.c:703,1
    - Dst: dumpBuffer
      Src: /src/nss/cmd/multinit/multinit.c:704,1
    - Dst: exit
      Src: /src/nss/cmd/multinit/multinit.c:705,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 8
    argNames:
    - lableString
    - label
    - initialized
    - db
    - tokNam
    - readonly
    - progName
    - log
    argTypes:
    - char*
    - char
    - int
    - secuCommandFlag*
    - secuCommandFlag*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 670
    functionDepth: 4
    functionLinenumber: 670
    functionLinenumberEnd: 708
    functionName: lib_Init
    functionSourceFile: /src/nss/cmd/multinit/multinit.c
    functionUses: 0
    functionsReached:
    - appendLabel
    - NSS_InitContext
    - SECU_Strerror
    - PORT_GetError
    - exit
    - fprintf
    - dumpBuffer
    - appendInt
    - PORT_Memset
    - usage
    linkageType: ''
    returnType: NSSInitContext
    signature: "NSSInitContext *\nlib_Init(const char *lableString, char label, int
      initialized,\n         secuCommandFlag *db, secuCommandFlag *tokNam, int readonly,\n
      \        const char *progName, int log)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: appendLabel
      Src: /src/nss/cmd/multinit/multinit.c:716,1
    - Dst: fprintf
      Src: /src/nss/cmd/multinit/multinit.c:718,1
    - Dst: fprintf
      Src: /src/nss/cmd/multinit/multinit.c:721,1
    - Dst: NSS_ShutdownContext
      Src: /src/nss/cmd/multinit/multinit.c:724,1
    - Dst: fprintf
      Src: /src/nss/cmd/multinit/multinit.c:725,1
    - Dst: appendLabel
      Src: /src/nss/cmd/multinit/multinit.c:727,1
    - Dst: appendInt
      Src: /src/nss/cmd/multinit/multinit.c:728,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/multinit/multinit.c:728,1
    - Dst: fprintf
      Src: /src/nss/cmd/multinit/multinit.c:729,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/multinit/multinit.c:729,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/multinit/multinit.c:729,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 6
    argNames:
    - labelString
    - label
    - ctx
    - initialize
    - progName
    - log
    argTypes:
    - char*
    - char
    - NSSInitContext*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 711
    functionDepth: 4
    functionLinenumber: 711
    functionLinenumberEnd: 731
    functionName: lib_Shutdown
    functionSourceFile: /src/nss/cmd/multinit/multinit.c
    functionUses: 0
    functionsReached:
    - appendLabel
    - NSS_ShutdownContext
    - SECU_Strerror
    - PORT_GetError
    - fprintf
    - appendInt
    linkageType: ''
    returnType: void
    signature: "void lib_Shutdown(const char *labelString, char label, NSSInitContext
      *ctx,\n             int initialize, const char *progName, int log)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lib_Init
      Src: /src/nss/cmd/multinit/multinit.c:739,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - db
    - tokNam
    - readOnly
    - progName
    - log
    argTypes:
    - secuCommandFlag*
    - secuCommandFlag*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 735
    functionDepth: 5
    functionLinenumber: 735
    functionLinenumberEnd: 742
    functionName: lib1_Init
    functionSourceFile: /src/nss/cmd/multinit/multinit.c
    functionUses: 0
    functionsReached:
    - lib_Init
    linkageType: ''
    returnType: void
    signature: "void lib1_Init(secuCommandFlag *db, secuCommandFlag *tokNam,\n          int
      readOnly, const char *progName, int log)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lib_Init
      Src: /src/nss/cmd/multinit/multinit.c:748,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - db
    - tokNam
    - readOnly
    - progName
    - log
    argTypes:
    - secuCommandFlag*
    - secuCommandFlag*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 744
    functionDepth: 5
    functionLinenumber: 744
    functionLinenumberEnd: 751
    functionName: lib2_Init
    functionSourceFile: /src/nss/cmd/multinit/multinit.c
    functionUses: 0
    functionsReached:
    - lib_Init
    linkageType: ''
    returnType: void
    signature: "void lib2_Init(secuCommandFlag *db, secuCommandFlag *tokNam,\n          int
      readOnly, const char *progName, int log)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_command
      Src: /src/nss/cmd/multinit/multinit.c:756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - command
    - progName
    - log
    argTypes:
    - secuCommandFlag*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 753
    functionDepth: 6
    functionLinenumber: 753
    functionLinenumberEnd: 757
    functionName: lib1_Do
    functionSourceFile: /src/nss/cmd/multinit/multinit.c
    functionUses: 0
    functionsReached:
    - do_command
    linkageType: ''
    returnType: void
    signature: void lib1_Do(secuCommandFlag *command, const char *progName, int log)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_command
      Src: /src/nss/cmd/multinit/multinit.c:762,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - command
    - progName
    - log
    argTypes:
    - secuCommandFlag*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 759
    functionDepth: 6
    functionLinenumber: 759
    functionLinenumberEnd: 763
    functionName: lib2_Do
    functionSourceFile: /src/nss/cmd/multinit/multinit.c
    functionUses: 0
    functionsReached:
    - do_command
    linkageType: ''
    returnType: void
    signature: void lib2_Do(secuCommandFlag *command, const char *progName, int log)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lib_Shutdown
      Src: /src/nss/cmd/multinit/multinit.c:768,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - progName
    - log
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 765
    functionDepth: 5
    functionLinenumber: 765
    functionLinenumberEnd: 772
    functionName: lib1_Shutdown
    functionSourceFile: /src/nss/cmd/multinit/multinit.c
    functionUses: 0
    functionsReached:
    - lib_Shutdown
    linkageType: ''
    returnType: void
    signature: void lib1_Shutdown(const char *progName, int log)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lib_Shutdown
      Src: /src/nss/cmd/multinit/multinit.c:777,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - progName
    - log
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 774
    functionDepth: 5
    functionLinenumber: 774
    functionLinenumberEnd: 781
    functionName: lib2_Shutdown
    functionSourceFile: /src/nss/cmd/multinit/multinit.c
    functionUses: 0
    functionsReached:
    - lib_Shutdown
    linkageType: ''
    returnType: void
    signature: void lib2_Shutdown(const char *progName, int log)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/nss/cmd/multinit/multinit.c:793,1
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/multinit/multinit.c:799,1
    - Dst: fprintf
      Src: /src/nss/cmd/multinit/multinit.c:801,1
    - Dst: exit
      Src: /src/nss/cmd/multinit/multinit.c:803,1
    - Dst: PORT_Memcpy
      Src: /src/nss/cmd/multinit/multinit.c:805,1
    - Dst: SECU_ParseCommandLine
      Src: /src/nss/cmd/multinit/multinit.c:808,1
    - Dst: usage
      Src: /src/nss/cmd/multinit/multinit.c:810,1
    - Dst: long_help
      Src: /src/nss/cmd/multinit/multinit.c:814,1
    - Dst: exit
      Src: /src/nss/cmd/multinit/multinit.c:815,1
    - Dst: initBuffer
      Src: /src/nss/cmd/multinit/multinit.c:820,1
    - Dst: usage
      Src: /src/nss/cmd/multinit/multinit.c:825,1
    - Dst: fprintf
      Src: /src/nss/cmd/multinit/multinit.c:829,1
    - Dst: main_Init
      Src: /src/nss/cmd/multinit/multinit.c:835,1
    - Dst: lib1_Init
      Src: /src/nss/cmd/multinit/multinit.c:841,1
    - Dst: lib2_Init
      Src: /src/nss/cmd/multinit/multinit.c:847,1
    - Dst: main_Shutdown
      Src: /src/nss/cmd/multinit/multinit.c:853,1
    - Dst: lib1_Shutdown
      Src: /src/nss/cmd/multinit/multinit.c:857,1
    - Dst: lib2_Shutdown
      Src: /src/nss/cmd/multinit/multinit.c:860,1
    - Dst: fprintf
      Src: /src/nss/cmd/multinit/multinit.c:863,1
    - Dst: usage_long
      Src: /src/nss/cmd/multinit/multinit.c:864,1
    - Dst: main_Do
      Src: /src/nss/cmd/multinit/multinit.c:866,1
    - Dst: lib1_Do
      Src: /src/nss/cmd/multinit/multinit.c:867,1
    - Dst: lib2_Do
      Src: /src/nss/cmd/multinit/multinit.c:868,1
    - Dst: NSS_IsInitialized
      Src: /src/nss/cmd/multinit/multinit.c:871,1
    - Dst: appendLabel
      Src: /src/nss/cmd/multinit/multinit.c:872,1
    - Dst: fprintf
      Src: /src/nss/cmd/multinit/multinit.c:873,1
    - Dst: dumpBuffer
      Src: /src/nss/cmd/multinit/multinit.c:875,1
    - Dst: exit
      Src: /src/nss/cmd/multinit/multinit.c:877,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 66
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 783
    functionDepth: 7
    functionLinenumber: 783
    functionLinenumberEnd: 878
    functionName: main
    functionSourceFile: /src/nss/cmd/multinit/multinit.c
    functionUses: 4
    functionsReached:
    - appendLabel
    - main_Shutdown
    - fprintf
    - lib1_Init
    - main_Init
    - PORT_Memcpy
    - usage
    - dumpBuffer
    - strrchr
    - NSS_IsInitialized
    - lib1_Do
    - exit
    - usage_long
    - lib2_Shutdown
    - lib2_Do
    - main_Do
    - PORT_Alloc
    - long_help
    - lib1_Shutdown
    - SECU_ParseCommandLine
    - lib2_Init
    - initBuffer
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/cmd/crlutil/crlgen.c:33,1
    - Dst: CERT_FinishExtensions
      Src: /src/nss/cmd/crlutil/crlgen.c:35,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/crlutil/crlgen.c:36,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - data
    argTypes:
    - CRLGENEntryData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 37
    functionName: destroyEntryData
    functionSourceFile: /src/nss/cmd/crlutil/crlgen.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - PORT_Assert
    - CERT_FinishExtensions
    linkageType: ''
    returnType: void
    signature: void destroyEntryData(CRLGENEntryData *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/nss/cmd/crlutil/crlgen.c:45,1
    - Dst: fprintf
      Src: /src/nss/cmd/crlutil/crlgen.c:47,1
    - Dst: vfprintf
      Src: /src/nss/cmd/crlutil/crlgen.c:48,1
    - Dst: va_end
      Src: /src/nss/cmd/crlutil/crlgen.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - line
    - msg
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 51
    functionName: crlgen_PrintError
    functionSourceFile: /src/nss/cmd/crlutil/crlgen.c
    functionUses: 0
    functionsReached:
    - fprintf
    - vfprintf
    - va_end
    - va_start
    linkageType: ''
    returnType: void
    signature: void crlgen_PrintError(int line, char *msg, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PL_HashTableLookup
      Src: /src/nss/cmd/crlutil/crlgen.c:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - crlGenData
    - certId
    argTypes:
    - CRLGENGeneratorData*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 62
    functionName: crlgen_FindEntry
    functionSourceFile: /src/nss/cmd/crlutil/crlgen.c
    functionUses: 0
    functionsReached:
    - PL_HashTableLookup
    linkageType: ''
    returnType: CRLGENEntryData
    signature: 'CRLGENEntryData *

      crlgen_FindEntry(CRLGENGeneratorData *crlGenData, SECItem *certId)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crlgen_FindEntry
      Src: /src/nss/cmd/crlutil/crlgen.c:76,1
    - Dst: PL_HashTableRemove
      Src: /src/nss/cmd/crlutil/crlgen.c:81,1
    - Dst: destroyEntryData
      Src: /src/nss/cmd/crlutil/crlgen.c:85,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - crlGenData
    - certId
    argTypes:
    - CRLGENGeneratorData*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 87
    functionName: crlgen_RmEntry
    functionSourceFile: /src/nss/cmd/crlutil/crlgen.c
    functionUses: 0
    functionsReached:
    - PL_HashTableRemove
    - crlgen_FindEntry
    - destroyEntryData
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus crlgen_RmEntry(CRLGENGeneratorData *crlGenData, SECItem *certId)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/cmd/crlutil/crlgen.c:97,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/crlutil/crlgen.c:100,1
    - Dst: PORT_ZNew
      Src: /src/nss/cmd/crlutil/crlgen.c:104,1
    - Dst: PL_HashTableAdd
      Src: /src/nss/cmd/crlutil/crlgen.c:110,1
    - Dst: crlgen_PrintError
      Src: /src/nss/cmd/crlutil/crlgen.c:112,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 3
    argNames:
    - crlGenData
    - entry
    - certId
    argTypes:
    - CRLGENGeneratorData*
    - CERTCrlEntry*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 117
    functionName: crlgen_PlaceAnEntry
    functionSourceFile: /src/nss/cmd/crlutil/crlgen.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_ZNew
    - PL_HashTableAdd
    - PORT_SetError
    - crlgen_PrintError
    linkageType: ''
    returnType: CRLGENEntryData
    signature: "CRLGENEntryData *\ncrlgen_PlaceAnEntry(CRLGENGeneratorData *crlGenData,\n
      \                   CERTCrlEntry *entry, SECItem *certId)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/cmd/crlutil/crlgen.c:132,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/crlutil/crlgen.c:138,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/crlutil/crlgen.c:139,1
    - Dst: destroyEntryData
      Src: /src/nss/cmd/crlutil/crlgen.c:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - he
    - i
    - arg
    argTypes:
    - PLHashEntry*
    - PRIntn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 147
    functionName: PR_CALLBACK::crlgen_CommitEntryData
    functionSourceFile: /src/nss/cmd/crlutil/crlgen.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - destroyEntryData
    linkageType: ''
    returnType: PRIntn
    signature: 'PRIntn PR_CALLBACK

      crlgen_CommitEntryData(PLHashEntry *he, PRIntn i, void *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/cmd/crlutil/crlgen.c:155,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/crlutil/crlgen.c:157,1
    - Dst: PORT_Strlen
      Src: /src/nss/cmd/crlutil/crlgen.c:162,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/cmd/crlutil/crlgen.c:164,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - arena
    - dataIn
    - value
    argTypes:
    - PLArenaPool*
    - char*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 165
    functionName: crlgen_SetString
    functionSourceFile: /src/nss/cmd/crlutil/crlgen.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - PORT_Strlen
    - SECITEM_CopyItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus crlgen_SetString(PLArenaPool *arena, const char *dataIn,
      SECItem *value)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/cmd/crlutil/crlgen.c:184,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/crlutil/crlgen.c:186,1
    - Dst: PORT_ArenaMark
      Src: /src/nss/cmd/crlutil/crlgen.c:190,1
    - Dst: PORT_Strchr
      Src: /src/nss/cmd/crlutil/crlgen.c:197,1
    - Dst: strlen
      Src: /src/nss/cmd/crlutil/crlgen.c:199,1
    - Dst: PORT_Strchr
      Src: /src/nss/cmd/crlutil/crlgen.c:200,1
    - Dst: PORT_Memcpy
      Src: /src/nss/cmd/crlutil/crlgen.c:205,1
    - Dst: PR_MIN
      Src: /src/nss/cmd/crlutil/crlgen.c:209,1
    - Dst: PORT_Memcpy
      Src: /src/nss/cmd/crlutil/crlgen.c:210,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/crlutil/crlgen.c:214,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/crlutil/crlgen.c:216,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/crlutil/crlgen.c:218,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/crlutil/crlgen.c:220,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/crlutil/crlgen.c:222,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/crlutil/crlgen.c:224,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/crlutil/crlgen.c:226,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/crlutil/crlgen.c:228,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/crlutil/crlgen.c:230,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/cmd/crlutil/crlgen.c:237,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/cmd/crlutil/crlgen.c:240,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/crlutil/crlgen.c:247,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/cmd/crlutil/crlgen.c:255,1
    - Dst: strlen
      Src: /src/nss/cmd/crlutil/crlgen.c:255,1
    - Dst: PORT_Memcpy
      Src: /src/nss/cmd/crlutil/crlgen.c:260,1
    - Dst: strlen
      Src: /src/nss/cmd/crlutil/crlgen.c:261,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/cmd/crlutil/crlgen.c:270,1
    - Dst: strlen
      Src: /src/nss/cmd/crlutil/crlgen.c:270,1
    - Dst: PORT_Memcpy
      Src: /src/nss/cmd/crlutil/crlgen.c:276,1
    - Dst: strlen
      Src: /src/nss/cmd/crlutil/crlgen.c:276,1
    - Dst: strlen
      Src: /src/nss/cmd/crlutil/crlgen.c:279,1
    - Dst: strlen
      Src: /src/nss/cmd/crlutil/crlgen.c:280,1
    - Dst: CERT_AsciiToName
      Src: /src/nss/cmd/crlutil/crlgen.c:287,1
    - Dst: CERT_CopyName
      Src: /src/nss/cmd/crlutil/crlgen.c:293,1
    - Dst: CERT_DestroyName
      Src: /src/nss/cmd/crlutil/crlgen.c:294,1
    - Dst: strlen
      Src: /src/nss/cmd/crlutil/crlgen.c:306,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/cmd/crlutil/crlgen.c:309,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 110
    argCount: 3
    argNames:
    - arena
    - crlGenData
    - data
    argTypes:
    - PLArenaPool*
    - CRLGENGeneratorData*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 313
    functionName: crlgen_GetGeneralName
    functionSourceFile: /src/nss/cmd/crlutil/crlgen.c
    functionUses: 0
    functionsReached:
    - PORT_Strchr
    - PORT_Assert
    - PORT_Memcpy
    - PR_MIN
    - CERT_AsciiToName
    - PORT_ArenaAlloc
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - CERT_DestroyName
    - PORT_SetError
    - PORT_ArenaZNew
    - CERT_CopyName
    - PORT_Strcmp
    - strlen
    linkageType: ''
    returnType: CERTGeneralName
    signature: "CERTGeneralName *\ncrlgen_GetGeneralName(PLArenaPool *arena, CRLGENGeneratorData
      *crlGenData,\n                      const char *data)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/cmd/crlutil/crlgen.c:327,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/crlutil/crlgen.c:329,1
    - Dst: PORT_ArenaMark
      Src: /src/nss/cmd/crlutil/crlgen.c:333,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/cmd/crlutil/crlgen.c:335,1
    - Dst: CERT_AsciiToName
      Src: /src/nss/cmd/crlutil/crlgen.c:343,1
    - Dst: CERT_CopyName
      Src: /src/nss/cmd/crlutil/crlgen.c:348,1
    - Dst: CERT_DestroyName
      Src: /src/nss/cmd/crlutil/crlgen.c:349,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/crlutil/crlgen.c:353,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/cmd/crlutil/crlgen.c:354,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 3
    argNames:
    - arena
    - crlGenData
    - data
    argTypes:
    - PLArenaPool*
    - CRLGENGeneratorData*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 358
    functionName: crlgen_DistinguishedName
    functionSourceFile: /src/nss/cmd/crlutil/crlgen.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - CERT_AsciiToName
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - CERT_DestroyName
    - PORT_ArenaZNew
    - PORT_SetError
    - CERT_CopyName
    linkageType: ''
    returnType: CERTGeneralName
    signature: "CERTGeneralName *\ncrlgen_DistinguishedName(PLArenaPool *arena, CRLGENGeneratorData
      *crlGenData,\n                         const char *data)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/cmd/crlutil/crlgen.c:370,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/crlutil/crlgen.c:378,1
    - Dst: crlgen_PrintError
      Src: /src/nss/cmd/crlutil/crlgen.c:379,1
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/crlutil/crlgen.c:384,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/cmd/crlutil/crlgen.c:389,1
    - Dst: crlgen_SetString
      Src: /src/nss/cmd/crlutil/crlgen.c:396,1
    - Dst: crlgen_SetString
      Src: /src/nss/cmd/crlutil/crlgen.c:400,1
    - Dst: crlgen_DistinguishedName
      Src: /src/nss/cmd/crlutil/crlgen.c:406,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/crlutil/crlgen.c:407,1
    - Dst: crlgen_PrintError
      Src: /src/nss/cmd/crlutil/crlgen.c:408,1
    - Dst: SECU_EncodeAndAddExtensionValue
      Src: /src/nss/cmd/crlutil/crlgen.c:415,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/crlutil/crlgen.c:421,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 45
    argCount: 2
    argNames:
    - crlGenData
    - dataArr
    argTypes:
    - CRLGENGeneratorData*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 361
    functionDepth: 2
    functionLinenumber: 361
    functionLinenumberEnd: 423
    functionName: crlgen_AddAuthKeyID
    functionSourceFile: /src/nss/cmd/crlutil/crlgen.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - crlgen_SetString
    - PORT_NewArena
    - PORT_FreeArena
    - crlgen_DistinguishedName
    - PORT_GetError
    - PORT_SetError
    - PORT_ArenaZNew
    - SECU_EncodeAndAddExtensionValue
    - crlgen_PrintError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus crlgen_AddAuthKeyID(CRLGENGeneratorData *crlGenData,\n                    const
      char **dataArr)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/cmd/crlutil/crlgen.c:435,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/crlutil/crlgen.c:441,1
    - Dst: crlgen_PrintError
      Src: /src/nss/cmd/crlutil/crlgen.c:442,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/crlutil/crlgen.c:447,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/crlutil/crlgen.c:455,1
    - Dst: crlgen_PrintError
      Src: /src/nss/cmd/crlutil/crlgen.c:456,1
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/crlutil/crlgen.c:461,1
    - Dst: crlgen_GetGeneralName
      Src: /src/nss/cmd/crlutil/crlgen.c:466,1
    - Dst: crlgen_PrintError
      Src: /src/nss/cmd/crlutil/crlgen.c:468,1
    - Dst: SECU_EncodeAndAddExtensionValue
      Src: /src/nss/cmd/crlutil/crlgen.c:474,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/crlutil/crlgen.c:480,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 37
    argCount: 2
    argNames:
    - crlGenData
    - dataArr
    argTypes:
    - CRLGENGeneratorData*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 426
    functionDepth: 2
    functionLinenumber: 426
    functionLinenumberEnd: 482
    functionName: crlgen_AddIssuerAltNames
    functionSourceFile: /src/nss/cmd/crlutil/crlgen.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_NewArena
    - PORT_FreeArena
    - PORT_SetError
    - SECU_EncodeAndAddExtensionValue
    - crlgen_PrintError
    - crlgen_GetGeneralName
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus crlgen_AddIssuerAltNames(CRLGENGeneratorData *crlGenData,\n
      \                        const char **dataArr)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/cmd/crlutil/crlgen.c:496,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/crlutil/crlgen.c:502,1
    - Dst: crlgen_PrintError
      Src: /src/nss/cmd/crlutil/crlgen.c:503,1
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/crlutil/crlgen.c:508,1
    - Dst: atoi
      Src: /src/nss/cmd/crlutil/crlgen.c:513,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/crlutil/crlgen.c:515,1
    - Dst: SEC_ASN1EncodeInteger
      Src: /src/nss/cmd/crlutil/crlgen.c:519,1
    - Dst: CERT_AddExtension
      Src: /src/nss/cmd/crlutil/crlgen.c:525,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/crlutil/crlgen.c:532,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 35
    argCount: 2
    argNames:
    - crlGenData
    - dataArr
    argTypes:
    - CRLGENGeneratorData*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 487
    functionDepth: 1
    functionLinenumber: 487
    functionLinenumberEnd: 534
    functionName: crlgen_AddCrlNumber
    functionSourceFile: /src/nss/cmd/crlutil/crlgen.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_NewArena
    - PORT_FreeArena
    - CERT_AddExtension
    - atoi
    - PORT_SetError
    - SEC_ASN1EncodeInteger
    - crlgen_PrintError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus crlgen_AddCrlNumber(CRLGENGeneratorData *crlGenData, const
      char **dataArr)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/cmd/crlutil/crlgen.c:547,1
    - Dst: PORT_ArenaMark
      Src: /src/nss/cmd/crlutil/crlgen.c:552,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/cmd/crlutil/crlgen.c:554,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/crlutil/crlgen.c:560,1
    - Dst: atoi
      Src: /src/nss/cmd/crlutil/crlgen.c:564,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/crlutil/crlgen.c:569,1
    - Dst: SEC_ASN1EncodeInteger
      Src: /src/nss/cmd/crlutil/crlgen.c:573,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/cmd/crlutil/crlgen.c:583,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 36
    argCount: 3
    argNames:
    - arena
    - dataArr
    - extCode
    argTypes:
    - PLArenaPool*
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 538
    functionDepth: 1
    functionLinenumber: 538
    functionLinenumberEnd: 586
    functionName: crlgen_CreateReasonCode
    functionSourceFile: /src/nss/cmd/crlutil/crlgen.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_ArenaRelease
    - atoi
    - PORT_ArenaMark
    - PORT_ArenaZNew
    - PORT_SetError
    - SEC_ASN1EncodeInteger
    linkageType: ''
    returnType: SECItem
    signature: "SECItem *\ncrlgen_CreateReasonCode(PLArenaPool *arena, const char
      **dataArr,\n                        int *extCode)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/cmd/crlutil/crlgen.c:598,1
    - Dst: PORT_ArenaMark
      Src: /src/nss/cmd/crlutil/crlgen.c:603,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/cmd/crlutil/crlgen.c:605,1
    - Dst: PORT_Strlen
      Src: /src/nss/cmd/crlutil/crlgen.c:610,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/cmd/crlutil/crlgen.c:613,1
    - Dst: PORT_Memcpy
      Src: /src/nss/cmd/crlutil/crlgen.c:618,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/cmd/crlutil/crlgen.c:625,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - arena
    - dataArr
    - extCode
    argTypes:
    - PLArenaPool*
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 590
    functionDepth: 1
    functionLinenumber: 590
    functionLinenumberEnd: 628
    functionName: crlgen_CreateInvalidityDate
    functionSourceFile: /src/nss/cmd/crlutil/crlgen.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_Memcpy
    - PORT_ArenaAlloc
    - PORT_ArenaRelease
    - PORT_Strlen
    - PORT_ArenaMark
    - PORT_ArenaZNew
    linkageType: ''
    returnType: SECItem
    signature: "SECItem *\ncrlgen_CreateInvalidityDate(PLArenaPool *arena, const char
      **dataArr,\n                            int *extCode)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/cmd/crlutil/crlgen.c:647,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/crlutil/crlgen.c:653,1
    - Dst: crlgen_PrintError
      Src: /src/nss/cmd/crlutil/crlgen.c:654,1
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/crlutil/crlgen.c:660,1
    - Dst: extCreator
      Src: /src/nss/cmd/crlutil/crlgen.c:665,1
    - Dst: crlgen_PrintError
      Src: /src/nss/cmd/crlutil/crlgen.c:667,1
    - Dst: SEC_ASN1EncodeInteger
      Src: /src/nss/cmd/crlutil/crlgen.c:677,1
    - Dst: crlgen_FindEntry
      Src: /src/nss/cmd/crlutil/crlgen.c:684,1
    - Dst: crlgen_PrintError
      Src: /src/nss/cmd/crlutil/crlgen.c:686,1
    - Dst: CERT_StartCRLEntryExtensions
      Src: /src/nss/cmd/crlutil/crlgen.c:696,1
    - Dst: CERT_AddExtension
      Src: /src/nss/cmd/crlutil/crlgen.c:699,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/crlutil/crlgen.c:709,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 48
    argCount: 4
    argNames:
    - crlGenData
    - dataArr
    - extName
    - "(*extCreator)(PLArenaPool *arena,\n                                                const
      char **dataArr,\n                                                int *extCode)"
    argTypes:
    - CRLGENGeneratorData*
    - char**
    - char*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 633
    functionDepth: 2
    functionLinenumber: 633
    functionLinenumberEnd: 711
    functionName: crlgen_AddEntryExtension
    functionSourceFile: /src/nss/cmd/crlutil/crlgen.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_NewArena
    - PORT_FreeArena
    - CERT_AddExtension
    - PORT_SetError
    - SEC_ASN1EncodeInteger
    - crlgen_PrintError
    - crlgen_FindEntry
    - CERT_StartCRLEntryExtensions
    - extCreator
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus crlgen_AddEntryExtension(CRLGENGeneratorData *crlGenData,\n
      \                        const char **dataArr, char *extName,\n                         SECItem
      *(*extCreator)(PLArenaPool *arena,\n                                                const
      char **dataArr,\n                                                int *extCode))"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/cmd/crlutil/crlgen.c:723,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/crlutil/crlgen.c:725,1
    - Dst: PORT_ArenaMark
      Src: /src/nss/cmd/crlutil/crlgen.c:732,1
    - Dst: CERT_FinishExtensions
      Src: /src/nss/cmd/crlutil/crlgen.c:735,1
    - Dst: PORT_ArenaZNewArray
      Src: /src/nss/cmd/crlutil/crlgen.c:740,1
    - Dst: PL_HashTableEnumerateEntries
      Src: /src/nss/cmd/crlutil/crlgen.c:747,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/cmd/crlutil/crlgen.c:755,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 1
    argNames:
    - crlGenData
    argTypes:
    - CRLGENGeneratorData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 714
    functionDepth: 1
    functionLinenumber: 714
    functionLinenumberEnd: 757
    functionName: CRLGEN_CommitExtensionsAndEntries
    functionSourceFile: /src/nss/cmd/crlutil/crlgen.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_ArenaZNewArray
    - PORT_ArenaRelease
    - PL_HashTableEnumerateEntries
    - PORT_ArenaMark
    - PORT_SetError
    - CERT_FinishExtensions
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CRLGEN_CommitExtensionsAndEntries(CRLGENGeneratorData *crlGenData)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/cmd/crlutil/crlgen.c:769,1
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/cmd/crlutil/crlgen.c:776,1
    - Dst: CERT_AddExtension
      Src: /src/nss/cmd/crlutil/crlgen.c:778,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - extHandle
    - extensions
    argTypes:
    - void*
    - CERTCertExtension**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 760
    functionDepth: 1
    functionLinenumber: 760
    functionLinenumberEnd: 784
    functionName: crlgen_InitExtensionHandle
    functionSourceFile: /src/nss/cmd/crlutil/crlgen.c
    functionUses: 0
    functionsReached:
    - SECOID_FindOIDTag
    - PORT_Assert
    - CERT_AddExtension
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus crlgen_InitExtensionHandle(void *extHandle,\n                           CERTCertExtension
      **extensions)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/cmd/crlutil/crlgen.c:794,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/crlutil/crlgen.c:798,1
    - Dst: CERT_StartCRLExtensions
      Src: /src/nss/cmd/crlutil/crlgen.c:803,1
    - Dst: crlgen_InitExtensionHandle
      Src: /src/nss/cmd/crlutil/crlgen.c:804,1
    - Dst: DER_GetInteger
      Src: /src/nss/cmd/crlutil/crlgen.c:811,1
    - Dst: crlgen_PlaceAnEntry
      Src: /src/nss/cmd/crlutil/crlgen.c:813,1
    - Dst: CERT_StartCRLEntryExtensions
      Src: /src/nss/cmd/crlutil/crlgen.c:816,1
    - Dst: crlgen_InitExtensionHandle
      Src: /src/nss/cmd/crlutil/crlgen.c:818,1
    - Dst: PR_MAX
      Src: /src/nss/cmd/crlutil/crlgen.c:824,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 1
    argNames:
    - crlGenData
    argTypes:
    - CRLGENGeneratorData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 788
    functionDepth: 2
    functionLinenumber: 788
    functionLinenumberEnd: 830
    functionName: CRLGEN_ExtHandleInit
    functionSourceFile: /src/nss/cmd/crlutil/crlgen.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - crlgen_PlaceAnEntry
    - crlgen_InitExtensionHandle
    - PR_MAX
    - PORT_SetError
    - CERT_StartCRLEntryExtensions
    - DER_GetInteger
    - CERT_StartCRLExtensions
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CRLGEN_ExtHandleInit(CRLGENGeneratorData *crlGenData)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/cmd/crlutil/crlgen.c:843,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/crlutil/crlgen.c:845,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/crlutil/crlgen.c:850,1
    - Dst: crlgen_PrintError
      Src: /src/nss/cmd/crlutil/crlgen.c:851,1
    - Dst: strchr
      Src: /src/nss/cmd/crlutil/crlgen.c:856,1
    - Dst: atoi
      Src: /src/nss/cmd/crlutil/crlgen.c:859,1
    - Dst: atol
      Src: /src/nss/cmd/crlutil/crlgen.c:863,1
    - Dst: atol
      Src: /src/nss/cmd/crlutil/crlgen.c:865,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/crlutil/crlgen.c:870,1
    - Dst: crlgen_PrintError
      Src: /src/nss/cmd/crlutil/crlgen.c:871,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 2
    argNames:
    - crlGenData
    - value
    argTypes:
    - CRLGENGeneratorData*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 837
    functionDepth: 1
    functionLinenumber: 837
    functionLinenumberEnd: 880
    functionName: crlgen_SetNewRangeField
    functionSourceFile: /src/nss/cmd/crlutil/crlgen.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - strchr
    - atoi
    - PORT_SetError
    - atol
    - crlgen_PrintError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus crlgen_SetNewRangeField(CRLGENGeneratorData *crlGenData,
      char *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crlgen_PrintError
      Src: /src/nss/cmd/crlutil/crlgen.c:887,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - crlGenData
    - value
    argTypes:
    - CRLGENGeneratorData*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 884
    functionDepth: 1
    functionLinenumber: 884
    functionLinenumberEnd: 890
    functionName: crlgen_SetIssuerField
    functionSourceFile: /src/nss/cmd/crlutil/crlgen.c
    functionUses: 0
    functionsReached:
    - crlgen_PrintError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus crlgen_SetIssuerField(CRLGENGeneratorData *crlGenData, char
      *value)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/cmd/crlutil/crlgen.c:903,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/crlutil/crlgen.c:906,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/crlutil/crlgen.c:915,1
    - Dst: crlgen_PrintError
      Src: /src/nss/cmd/crlutil/crlgen.c:916,1
    - Dst: PORT_Strlen
      Src: /src/nss/cmd/crlutil/crlgen.c:920,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/cmd/crlutil/crlgen.c:929,1
    - Dst: PORT_Memcpy
      Src: /src/nss/cmd/crlutil/crlgen.c:933,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - crlGenData
    - value
    - setThisUpdate
    argTypes:
    - CRLGENGeneratorData*
    - char*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 893
    functionDepth: 1
    functionLinenumber: 893
    functionLinenumberEnd: 937
    functionName: crlgen_SetTimeField
    functionSourceFile: /src/nss/cmd/crlutil/crlgen.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_Memcpy
    - PORT_ArenaAlloc
    - PORT_Strlen
    - PORT_SetError
    - crlgen_PrintError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus crlgen_SetTimeField(CRLGENGeneratorData *crlGenData, char
      *value,\n                    PRBool setThisUpdate)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/cmd/crlutil/crlgen.c:943,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/crlutil/crlgen.c:945,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/crlutil/crlgen.c:950,1
    - Dst: crlgen_PrintError
      Src: /src/nss/cmd/crlutil/crlgen.c:951,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/crlutil/crlgen.c:955,1
    - Dst: crlgen_AddAuthKeyID
      Src: /src/nss/cmd/crlutil/crlgen.c:956,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/crlutil/crlgen.c:957,1
    - Dst: crlgen_AddIssuerAltNames
      Src: /src/nss/cmd/crlutil/crlgen.c:958,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/crlutil/crlgen.c:959,1
    - Dst: crlgen_AddCrlNumber
      Src: /src/nss/cmd/crlutil/crlgen.c:960,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/crlutil/crlgen.c:961,1
    - Dst: crlgen_AddEntryExtension
      Src: /src/nss/cmd/crlutil/crlgen.c:962,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/crlutil/crlgen.c:964,1
    - Dst: crlgen_AddEntryExtension
      Src: /src/nss/cmd/crlutil/crlgen.c:965,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/crlutil/crlgen.c:968,1
    - Dst: crlgen_PrintError
      Src: /src/nss/cmd/crlutil/crlgen.c:969,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 2
    argNames:
    - crlGenData
    - extData
    argTypes:
    - CRLGENGeneratorData*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 940
    functionDepth: 3
    functionLinenumber: 940
    functionLinenumberEnd: 973
    functionName: crlgen_AddExtension
    functionSourceFile: /src/nss/cmd/crlutil/crlgen.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - crlgen_AddEntryExtension
    - crlgen_AddAuthKeyID
    - PORT_SetError
    - crlgen_AddIssuerAltNames
    - crlgen_PrintError
    - crlgen_AddCrlNumber
    - PORT_Strcmp
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus crlgen_AddExtension(CRLGENGeneratorData *crlGenData, const
      char **extData)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/cmd/crlutil/crlgen.c:990,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/crlutil/crlgen.c:993,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/crlutil/crlgen.c:1001,1
    - Dst: crlgen_PrintError
      Src: /src/nss/cmd/crlutil/crlgen.c:1002,1
    - Dst: strlen
      Src: /src/nss/cmd/crlutil/crlgen.c:1007,1
    - Dst: crlgen_SetNewRangeField
      Src: /src/nss/cmd/crlutil/crlgen.c:1009,1
    - Dst: PORT_ArenaMark
      Src: /src/nss/cmd/crlutil/crlgen.c:1018,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/cmd/crlutil/crlgen.c:1019,1
    - Dst: SEC_ASN1EncodeInteger
      Src: /src/nss/cmd/crlutil/crlgen.c:1024,1
    - Dst: crlgen_FindEntry
      Src: /src/nss/cmd/crlutil/crlgen.c:1030,1
    - Dst: crlgen_PrintError
      Src: /src/nss/cmd/crlutil/crlgen.c:1031,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/cmd/crlutil/crlgen.c:1044,1
    - Dst: PORT_Memcpy
      Src: /src/nss/cmd/crlutil/crlgen.c:1049,1
    - Dst: crlgen_PlaceAnEntry
      Src: /src/nss/cmd/crlutil/crlgen.c:1054,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/cmd/crlutil/crlgen.c:1063,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 59
    argCount: 3
    argNames:
    - crlGenData
    - certId
    - revocationDate
    argTypes:
    - CRLGENGeneratorData*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 978
    functionDepth: 2
    functionLinenumber: 978
    functionLinenumberEnd: 1066
    functionName: crlgen_AddCert
    functionSourceFile: /src/nss/cmd/crlutil/crlgen.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_Memcpy
    - PORT_ArenaAlloc
    - crlgen_PlaceAnEntry
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - crlgen_SetNewRangeField
    - PORT_SetError
    - PORT_ArenaZNew
    - SEC_ASN1EncodeInteger
    - crlgen_PrintError
    - crlgen_FindEntry
    - strlen
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus crlgen_AddCert(CRLGENGeneratorData *crlGenData,\n               char
      *certId, char *revocationDate)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/cmd/crlutil/crlgen.c:1075,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/crlutil/crlgen.c:1077,1
    - Dst: crlgen_SetNewRangeField
      Src: /src/nss/cmd/crlutil/crlgen.c:1081,1
    - Dst: SEC_ASN1EncodeInteger
      Src: /src/nss/cmd/crlutil/crlgen.c:1087,1
    - Dst: crlgen_FindEntry
      Src: /src/nss/cmd/crlutil/crlgen.c:1091,1
    - Dst: printf
      Src: /src/nss/cmd/crlutil/crlgen.c:1093,1
    - Dst: crlgen_RmEntry
      Src: /src/nss/cmd/crlutil/crlgen.c:1095,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/crlutil/crlgen.c:1097,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - crlGenData
    - certId
    argTypes:
    - CRLGENGeneratorData*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1102
      start: 1070
    functionDepth: 3
    functionLinenumber: 1070
    functionLinenumberEnd: 1102
    functionName: crlgen_RmCert
    functionSourceFile: /src/nss/cmd/crlutil/crlgen.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - crlgen_RmEntry
    - printf
    - crlgen_SetNewRangeField
    - PORT_SetError
    - crlgen_FindEntry
    - SEC_ASN1EncodeInteger
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus crlgen_RmCert(CRLGENGeneratorData *crlGenData, char *certId)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/cmd/crlutil/crlgen.c:1117,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/crlutil/crlgen.c:1119,1
    - Dst: crlgen_SetIssuerField
      Src: /src/nss/cmd/crlutil/crlgen.c:1125,1
    - Dst: crlgen_SetTimeField
      Src: /src/nss/cmd/crlutil/crlgen.c:1128,1
    - Dst: crlgen_SetTimeField
      Src: /src/nss/cmd/crlutil/crlgen.c:1131,1
    - Dst: crlgen_SetNewRangeField
      Src: /src/nss/cmd/crlutil/crlgen.c:1134,1
    - Dst: crlgen_PrintError
      Src: /src/nss/cmd/crlutil/crlgen.c:1137,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/crlutil/crlgen.c:1140,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - crlGenData
    - str
    argTypes:
    - CRLGENGeneratorData*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1144
      start: 1112
    functionDepth: 2
    functionLinenumber: 1112
    functionLinenumberEnd: 1144
    functionName: crlgen_updateCrlFn_field
    functionSourceFile: /src/nss/cmd/crlutil/crlgen.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - crlgen_SetTimeField
    - crlgen_SetNewRangeField
    - PORT_SetError
    - crlgen_SetIssuerField
    - crlgen_PrintError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus crlgen_updateCrlFn_field(CRLGENGeneratorData *crlGenData,
      void *str)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/cmd/crlutil/crlgen.c:1153,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/crlutil/crlgen.c:1155,1
    - Dst: crlgen_PrintError
      Src: /src/nss/cmd/crlutil/crlgen.c:1162,1
    - Dst: crlgen_PrintError
      Src: /src/nss/cmd/crlutil/crlgen.c:1171,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/crlutil/crlgen.c:1178,1
    - Dst: crlgen_PrintError
      Src: /src/nss/cmd/crlutil/crlgen.c:1179,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/crlutil/crlgen.c:1184,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 4
    argNames:
    - crlGenData
    - str
    - data
    - dtype
    argTypes:
    - CRLGENGeneratorData*
    - void*
    - void*
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1189
      start: 1147
    functionDepth: 1
    functionLinenumber: 1147
    functionLinenumberEnd: 1189
    functionName: crlgen_setNextDataFn_field
    functionSourceFile: /src/nss/cmd/crlutil/crlgen.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - PORT_Strdup
    - crlgen_PrintError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus crlgen_setNextDataFn_field(CRLGENGeneratorData *crlGenData,
      void *str,\n                           void *data, unsigned short dtype)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/cmd/crlutil/crlgen.c:1197,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/crlutil/crlgen.c:1199,1
    - Dst: crlgen_AddCert
      Src: /src/nss/cmd/crlutil/crlgen.c:1205,1
    - Dst: crlgen_RmCert
      Src: /src/nss/cmd/crlutil/crlgen.c:1208,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/crlutil/crlgen.c:1210,1
    - Dst: crlgen_PrintError
      Src: /src/nss/cmd/crlutil/crlgen.c:1211,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - crlGenData
    - str
    argTypes:
    - CRLGENGeneratorData*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1216
      start: 1192
    functionDepth: 4
    functionLinenumber: 1192
    functionLinenumberEnd: 1216
    functionName: crlgen_updateCrlFn_cert
    functionSourceFile: /src/nss/cmd/crlutil/crlgen.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - crlgen_RmCert
    - crlgen_AddCert
    - PORT_SetError
    - crlgen_PrintError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus crlgen_updateCrlFn_cert(CRLGENGeneratorData *crlGenData,
      void *str)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/cmd/crlutil/crlgen.c:1225,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/crlutil/crlgen.c:1227,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/crlutil/crlgen.c:1234,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/crlutil/crlgen.c:1241,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/crlutil/crlgen.c:1247,1
    - Dst: crlgen_PrintError
      Src: /src/nss/cmd/crlutil/crlgen.c:1248,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 4
    argNames:
    - crlGenData
    - str
    - data
    - dtype
    argTypes:
    - CRLGENGeneratorData*
    - void*
    - void*
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1254
      start: 1219
    functionDepth: 1
    functionLinenumber: 1219
    functionLinenumberEnd: 1254
    functionName: crlgen_setNextDataFn_cert
    functionSourceFile: /src/nss/cmd/crlutil/crlgen.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - PORT_Strdup
    - crlgen_PrintError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus crlgen_setNextDataFn_cert(CRLGENGeneratorData *crlGenData,
      void *str,\n                          void *data, unsigned short dtype)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crlgen_AddExtension
      Src: /src/nss/cmd/crlutil/crlgen.c:1262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - crlGenData
    - str
    argTypes:
    - CRLGENGeneratorData*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1263
      start: 1257
    functionDepth: 4
    functionLinenumber: 1257
    functionLinenumberEnd: 1263
    functionName: crlgen_updateCrlFn_extension
    functionSourceFile: /src/nss/cmd/crlutil/crlgen.c
    functionUses: 0
    functionsReached:
    - crlgen_AddExtension
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus crlgen_updateCrlFn_extension(CRLGENGeneratorData *crlGenData,
      void *str)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/cmd/crlutil/crlgen.c:1276,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/crlutil/crlgen.c:1278,1
    - Dst: PORT_ZNewArray
      Src: /src/nss/cmd/crlutil/crlgen.c:1283,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/crlutil/crlgen.c:1289,1
    - Dst: crlgen_PrintError
      Src: /src/nss/cmd/crlutil/crlgen.c:1290,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/crlutil/crlgen.c:1296,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - crlGenData
    - str
    - data
    - dtype
    argTypes:
    - CRLGENGeneratorData*
    - void*
    - void*
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1303
      start: 1270
    functionDepth: 1
    functionLinenumber: 1270
    functionLinenumberEnd: 1303
    functionName: crlgen_setNextDataFn_extension
    functionSourceFile: /src/nss/cmd/crlutil/crlgen.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_ZNewArray
    - PORT_SetError
    - crlgen_PrintError
    - PORT_Strdup
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus crlgen_setNextDataFn_extension(CRLGENGeneratorData *crlGenData,
      void *str,\n                               void *data, unsigned short dtype)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Free
      Src: /src/nss/cmd/crlutil/crlgen.c:1323,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/crlutil/crlgen.c:1324,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/crlutil/crlgen.c:1329,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/crlutil/crlgen.c:1331,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/crlutil/crlgen.c:1332,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/crlutil/crlgen.c:1338,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/crlutil/crlgen.c:1339,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/crlutil/crlgen.c:1341,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 1
    argNames:
    - crlGenData
    argTypes:
    - CRLGENGeneratorData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1346
      start: 1313
    functionDepth: 0
    functionLinenumber: 1313
    functionLinenumberEnd: 1346
    functionName: crlgen_destroyTempData
    functionSourceFile: /src/nss/cmd/crlutil/crlgen.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    linkageType: ''
    returnType: void
    signature: void crlgen_destroyTempData(CRLGENGeneratorData *crlGenData)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/cmd/crlutil/crlgen.c:1353,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/crlutil/crlgen.c:1355,1
    - Dst: CRLGENGeneratorData*::crlField::updateCrlFn
      Src: /src/nss/cmd/crlutil/crlgen.c:1364,1
    - Dst: CRLGENGeneratorData*::certEntry::updateCrlFn
      Src: /src/nss/cmd/crlutil/crlgen.c:1368,1
    - Dst: CRLGENGeneratorData*::extensionEntry::updateCrlFn
      Src: /src/nss/cmd/crlutil/crlgen.c:1371,1
    - Dst: crlgen_PrintError
      Src: /src/nss/cmd/crlutil/crlgen.c:1376,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/crlutil/crlgen.c:1379,1
    - Dst: crlgen_destroyTempData
      Src: /src/nss/cmd/crlutil/crlgen.c:1383,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 1
    argNames:
    - crlGenData
    argTypes:
    - CRLGENGeneratorData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1388
      start: 1348
    functionDepth: 1
    functionLinenumber: 1348
    functionLinenumberEnd: 1388
    functionName: crlgen_updateCrl
    functionSourceFile: /src/nss/cmd/crlutil/crlgen.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - CRLGENGeneratorData*::extensionEntry::updateCrlFn
    - CRLGENGeneratorData*::certEntry::updateCrlFn
    - crlgen_destroyTempData
    - PORT_SetError
    - CRLGENGeneratorData*::crlField::updateCrlFn
    - crlgen_PrintError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus crlgen_updateCrl(CRLGENGeneratorData *crlGenData)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/cmd/crlutil/crlgen.c:1396,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/crlutil/crlgen.c:1398,1
    - Dst: CRLGENGeneratorData*::crlField::setNextDataFn
      Src: /src/nss/cmd/crlutil/crlgen.c:1407,1
    - Dst: CRLGENGeneratorData*::certEntry::setNextDataFn
      Src: /src/nss/cmd/crlutil/crlgen.c:1412,1
    - Dst: CRLGENGeneratorData*::extensionEntry::setNextDataFn
      Src: /src/nss/cmd/crlutil/crlgen.c:1417,1
    - Dst: crlgen_PrintError
      Src: /src/nss/cmd/crlutil/crlgen.c:1422,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/crlutil/crlgen.c:1425,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 3
    argNames:
    - crlGenData
    - data
    - dtype
    argTypes:
    - CRLGENGeneratorData*
    - void*
    - unsigned short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1429
      start: 1390
    functionDepth: 1
    functionLinenumber: 1390
    functionLinenumberEnd: 1429
    functionName: crlgen_setNextData
    functionSourceFile: /src/nss/cmd/crlutil/crlgen.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - CRLGENGeneratorData*::crlField::setNextDataFn
    - CRLGENGeneratorData*::certEntry::setNextDataFn
    - PORT_SetError
    - crlgen_PrintError
    - CRLGENGeneratorData*::extensionEntry::setNextDataFn
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus crlgen_setNextData(CRLGENGeneratorData *crlGenData, void
      *data,\n                   unsigned short dtype)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/cmd/crlutil/crlgen.c:1435,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/crlutil/crlgen.c:1439,1
    - Dst: PORT_New
      Src: /src/nss/cmd/crlutil/crlgen.c:1448,1
    - Dst: PORT_New
      Src: /src/nss/cmd/crlutil/crlgen.c:1459,1
    - Dst: PORT_New
      Src: /src/nss/cmd/crlutil/crlgen.c:1470,1
    - Dst: crlgen_PrintError
      Src: /src/nss/cmd/crlutil/crlgen.c:1485,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/crlutil/crlgen.c:1487,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 51
    argCount: 2
    argNames:
    - crlGenData
    - structType
    argTypes:
    - CRLGENGeneratorData*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1491
      start: 1431
    functionDepth: 1
    functionLinenumber: 1431
    functionLinenumberEnd: 1491
    functionName: crlgen_createNewLangStruct
    functionSourceFile: /src/nss/cmd/crlutil/crlgen.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - crlgen_PrintError
    - PORT_New
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus crlgen_createNewLangStruct(CRLGENGeneratorData *crlGenData,\n
      \                          unsigned structType)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/cmd/crlutil/crlgen.c:1499,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/crlutil/crlgen.c:1501,1
    - Dst: PORT_ZNew
      Src: /src/nss/cmd/crlutil/crlgen.c:1505,1
    - Dst: PL_NewHashTable
      Src: /src/nss/cmd/crlutil/crlgen.c:1511,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/crlutil/crlgen.c:1514,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/crlutil/crlgen.c:1526,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - signCrl
    - src
    argTypes:
    - CERTSignedCrl*
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1529
      start: 1494
    functionDepth: 1
    functionLinenumber: 1494
    functionLinenumberEnd: 1529
    functionName: CRLGEN_InitCrlGeneration
    functionSourceFile: /src/nss/cmd/crlutil/crlgen.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_ZNew
    - PORT_Free
    - PORT_SetError
    - PL_NewHashTable
    linkageType: ''
    returnType: CRLGENGeneratorData
    signature: 'CRLGENGeneratorData *

      CRLGEN_InitCrlGeneration(CERTSignedCrl *signCrl, PRFileDesc *src)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_Close
      Src: /src/nss/cmd/crlutil/crlgen.c:1537,1
    - Dst: PL_HashTableDestroy
      Src: /src/nss/cmd/crlutil/crlgen.c:1538,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/crlutil/crlgen.c:1539,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - crlGenData
    argTypes:
    - CRLGENGeneratorData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1540
      start: 1531
    functionDepth: 1
    functionLinenumber: 1531
    functionLinenumberEnd: 1540
    functionName: CRLGEN_FinalizeCrlGeneration
    functionSourceFile: /src/nss/cmd/crlutil/crlgen.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - PR_Close
    - PL_HashTableDestroy
    linkageType: ''
    returnType: void
    signature: void CRLGEN_FinalizeCrlGeneration(CRLGENGeneratorData *crlGenData)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CERT_FindCertByNicknameOrEmailAddr
      Src: /src/nss/cmd/crlutil/crlutil.c:38,1
    - Dst: CERT_AsciiToName
      Src: /src/nss/cmd/crlutil/crlutil.c:44,1
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/crlutil/crlutil.c:46,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/cmd/crlutil/crlutil.c:49,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/cmd/crlutil/crlutil.c:50,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/cmd/crlutil/crlutil.c:52,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/crlutil/crlutil.c:54,1
    - Dst: CERT_DestroyName
      Src: /src/nss/cmd/crlutil/crlutil.c:56,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/crlutil/crlutil.c:60,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/crlutil/crlutil.c:65,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/cmd/crlutil/crlutil.c:69,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/crlutil/crlutil.c:70,1
    - Dst: SEC_FindCrlByName
      Src: /src/nss/cmd/crlutil/crlutil.c:76,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/crlutil/crlutil.c:78,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/crlutil/crlutil.c:80,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 3
    argNames:
    - certHandle
    - name
    - type
    argTypes:
    - CERTCertDBHandle*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 83
    functionName: FindCRL
    functionSourceFile: /src/nss/cmd/crlutil/crlutil.c
    functionUses: 0
    functionsReached:
    - CERT_FindCertByNicknameOrEmailAddr
    - SEC_ASN1EncodeItem
    - PORT_NewArena
    - SECU_PrintError
    - CERT_AsciiToName
    - PORT_FreeArena
    - CERT_DestroyName
    - SECITEM_CopyItem
    - CERT_DestroyCertificate
    - SEC_ASN1_GET
    - SECITEM_FreeItem
    - SEC_FindCrlByName
    linkageType: ''
    returnType: CERTSignedCrl
    signature: 'CERTSignedCrl *

      FindCRL(CERTCertDBHandle *certHandle, char *name, int type)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FindCRL
      Src: /src/nss/cmd/crlutil/crlutil.c:90,1
    - Dst: SECU_PrintCRLInfo
      Src: /src/nss/cmd/crlutil/crlutil.c:93,1
    - Dst: SEC_DestroyCrl
      Src: /src/nss/cmd/crlutil/crlutil.c:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - certHandle
    - nickName
    - crlType
    argTypes:
    - CERTCertDBHandle*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 85
    functionDepth: 11
    functionLinenumber: 85
    functionLinenumberEnd: 98
    functionName: DisplayCRL
    functionSourceFile: /src/nss/cmd/crlutil/crlutil.c
    functionUses: 0
    functionsReached:
    - SECU_PrintCRLInfo
    - FindCRL
    - SEC_DestroyCrl
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus DisplayCRL(CERTCertDBHandle *certHandle, char *nickName,
      int crlType)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/crlutil/crlutil.c:110,1
    - Dst: fprintf
      Src: /src/nss/cmd/crlutil/crlutil.c:112,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/cmd/crlutil/crlutil.c:116,1
    - Dst: fprintf
      Src: /src/nss/cmd/crlutil/crlutil.c:118,1
    - Dst: SEC_LookupCrls
      Src: /src/nss/cmd/crlutil/crlutil.c:123,1
    - Dst: fprintf
      Src: /src/nss/cmd/crlutil/crlutil.c:125,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/crlutil/crlutil.c:126,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/crlutil/crlutil.c:126,1
    - Dst: fprintf
      Src: /src/nss/cmd/crlutil/crlutil.c:136,1
    - Dst: fprintf
      Src: /src/nss/cmd/crlutil/crlutil.c:137,1
    - Dst: CERT_FindCertByName
      Src: /src/nss/cmd/crlutil/crlutil.c:142,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/crlutil/crlutil.c:145,1
    - Dst: PORT_Strlen
      Src: /src/nss/cmd/crlutil/crlutil.c:151,1
    - Dst: PORT_Strlen
      Src: /src/nss/cmd/crlutil/crlutil.c:153,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/crlutil/crlutil.c:157,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/crlutil/crlutil.c:159,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/crlutil/crlutil.c:165,1
    - Dst: CERT_NameToAscii
      Src: /src/nss/cmd/crlutil/crlutil.c:169,1
    - Dst: fprintf
      Src: /src/nss/cmd/crlutil/crlutil.c:171,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/crlutil/crlutil.c:173,1
    - Dst: SEC_FindCrlByName
      Src: /src/nss/cmd/crlutil/crlutil.c:178,1
    - Dst: SEC_DeletePermCRL
      Src: /src/nss/cmd/crlutil/crlutil.c:180,1
    - Dst: SEC_DestroyCrl
      Src: /src/nss/cmd/crlutil/crlutil.c:181,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/crlutil/crlutil.c:189,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/crlutil/crlutil.c:190,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 67
    argCount: 3
    argNames:
    - certHandle
    - crlType
    - deletecrls
    argTypes:
    - CERTCertDBHandle*
    - int
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 191
    functionName: ListCRLNames
    functionSourceFile: /src/nss/cmd/crlutil/crlutil.c
    functionUses: 0
    functionsReached:
    - CERT_NameToAscii
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - SECU_Strerror
    - SECU_PrintError
    - PORT_Free
    - PORT_FreeArena
    - PORT_GetError
    - SEC_LookupCrls
    - PORT_Strlen
    - fprintf
    - CERT_FindCertByName
    - SEC_DeletePermCRL
    - SEC_DestroyCrl
    - CERT_DestroyCertificate
    - PORT_Strdup
    - SEC_FindCrlByName
    linkageType: ''
    returnType: void
    signature: void ListCRLNames(CERTCertDBHandle *certHandle, int crlType, PRBool
      deletecrls)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ListCRLNames
      Src: /src/nss/cmd/crlutil/crlutil.c:197,1
    - Dst: DisplayCRL
      Src: /src/nss/cmd/crlutil/crlutil.c:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - certHandle
    - nickName
    - crlType
    argTypes:
    - CERTCertDBHandle*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 193
    functionDepth: 12
    functionLinenumber: 193
    functionLinenumberEnd: 202
    functionName: ListCRL
    functionSourceFile: /src/nss/cmd/crlutil/crlutil.c
    functionUses: 0
    functionsReached:
    - DisplayCRL
    - ListCRLNames
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ListCRL(CERTCertDBHandle *certHandle, char *nickName, int
      crlType)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FindCRL
      Src: /src/nss/cmd/crlutil/crlutil.c:210,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/crlutil/crlutil.c:212,1
    - Dst: SEC_DeletePermCRL
      Src: /src/nss/cmd/crlutil/crlutil.c:215,1
    - Dst: SEC_DestroyCrl
      Src: /src/nss/cmd/crlutil/crlutil.c:216,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/crlutil/crlutil.c:218,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/crlutil/crlutil.c:220,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/crlutil/crlutil.c:220,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - certHandle
    - name
    - type
    argTypes:
    - CERTCertDBHandle*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 224
    functionName: DeleteCRL
    functionSourceFile: /src/nss/cmd/crlutil/crlutil.c
    functionUses: 0
    functionsReached:
    - FindCRL
    - SECU_PrintError
    - SECU_Strerror
    - PORT_GetError
    - SEC_DeletePermCRL
    - SEC_DestroyCrl
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus DeleteCRL(CERTCertDBHandle *certHandle, char *name, int type)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SECU_ReadDERFromFile
      Src: /src/nss/cmd/crlutil/crlutil.c:239,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/crlutil/crlutil.c:241,1
    - Dst: PK11_GetInternalKeySlot
      Src: /src/nss/cmd/crlutil/crlutil.c:247,1
    - Dst: PK11_NeedLogin
      Src: /src/nss/cmd/crlutil/crlutil.c:249,1
    - Dst: PK11_Authenticate
      Src: /src/nss/cmd/crlutil/crlutil.c:250,1
    - Dst: PK11_ImportCRL
      Src: /src/nss/cmd/crlutil/crlutil.c:255,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/crlutil/crlutil.c:262,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/crlutil/crlutil.c:262,1
    - Dst: PORT_Strlen
      Src: /src/nss/cmd/crlutil/crlutil.c:263,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/crlutil/crlutil.c:264,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/crlutil/crlutil.c:267,1
    - Dst: SEC_DestroyCrl
      Src: /src/nss/cmd/crlutil/crlutil.c:269,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/cmd/crlutil/crlutil.c:273,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/crlutil/crlutil.c:275,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 7
    argNames:
    - certHandle
    - url
    - type
    - inFile
    - importOptions
    - decodeOptions
    - pwdata
    argTypes:
    - CERTCertDBHandle*
    - char*
    - int
    - PRFileDesc*
    - PRInt32
    - PRInt32
    - secuPWData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 277
    functionName: ImportCRL
    functionSourceFile: /src/nss/cmd/crlutil/crlutil.c
    functionUses: 2
    functionsReached:
    - PK11_GetInternalKeySlot
    - SECU_ReadDERFromFile
    - SECU_PrintError
    - SECU_Strerror
    - PORT_GetError
    - PORT_Strlen
    - PK11_ImportCRL
    - PK11_NeedLogin
    - SEC_DestroyCrl
    - PK11_FreeSlot
    - SECITEM_FreeItem
    - PK11_Authenticate
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ImportCRL(CERTCertDBHandle *certHandle, char *url, int type,\n
      \         PRFileDesc *inFile, PRInt32 importOptions, PRInt32 decodeOptions,\n
      \         secuPWData *pwdata)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SECU_ReadDERFromFile
      Src: /src/nss/cmd/crlutil/crlutil.c:290,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/crlutil/crlutil.c:292,1
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/crlutil/crlutil.c:297,1
    - Dst: CERT_DecodeDERCrlWithFlags
      Src: /src/nss/cmd/crlutil/crlutil.c:301,1
    - Dst: SECU_PrintCRLInfo
      Src: /src/nss/cmd/crlutil/crlutil.c:306,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/crlutil/crlutil.c:308,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - inFile
    argTypes:
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 279
    functionDepth: 11
    functionLinenumber: 279
    functionLinenumberEnd: 310
    functionName: DumpCRL
    functionSourceFile: /src/nss/cmd/crlutil/crlutil.c
    functionUses: 0
    functionsReached:
    - SECU_ReadDERFromFile
    - CERT_DecodeDERCrlWithFlags
    - PORT_NewArena
    - SECU_PrintError
    - PORT_FreeArena
    - SECU_PrintCRLInfo
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus DumpCRL(PRFileDesc *inFile)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/cmd/crlutil/crlutil.c:321,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/crlutil/crlutil.c:323,1
    - Dst: SECU_FindCRLAuthKeyIDExten
      Src: /src/nss/cmd/crlutil/crlutil.c:330,1
    - Dst: CERT_FindCertByNickname
      Src: /src/nss/cmd/crlutil/crlutil.c:334,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/crlutil/crlutil.c:336,1
    - Dst: SECU_FindCrlIssuer
      Src: /src/nss/cmd/crlutil/crlutil.c:344,1
    - Dst: PR_Now
      Src: /src/nss/cmd/crlutil/crlutil.c:344,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/crlutil/crlutil.c:346,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/crlutil/crlutil.c:355,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/crlutil/crlutil.c:357,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 3
    argNames:
    - certHandle
    - signCrl
    - certNickName
    argTypes:
    - CERTCertDBHandle*
    - CERTSignedCrl*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 312
    functionDepth: 2
    functionLinenumber: 312
    functionLinenumberEnd: 359
    functionName: FindSigningCert
    functionSourceFile: /src/nss/cmd/crlutil/crlutil.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SECU_PrintError
    - SECU_FindCRLAuthKeyIDExten
    - PR_Now
    - SECU_FindCrlIssuer
    - CERT_DestroyCertificate
    - CERT_FindCertByNickname
    linkageType: ''
    returnType: CERTCertificate
    signature: "CERTCertificate *\nFindSigningCert(CERTCertDBHandle *certHandle, CERTSignedCrl
      *signCrl,\n                char *certNickName)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/cmd/crlutil/crlutil.c:374,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/crlutil/crlutil.c:375,1
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/crlutil/crlutil.c:379,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/crlutil/crlutil.c:381,1
    - Dst: SECU_ReadDERFromFile
      Src: /src/nss/cmd/crlutil/crlutil.c:386,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/crlutil/crlutil.c:388,1
    - Dst: CERT_DecodeDERCrlWithFlags
      Src: /src/nss/cmd/crlutil/crlutil.c:394,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/crlutil/crlutil.c:397,1
    - Dst: FindSigningCert
      Src: /src/nss/cmd/crlutil/crlutil.c:404,1
    - Dst: CERT_VerifySignedData
      Src: /src/nss/cmd/crlutil/crlutil.c:409,1
    - Dst: PR_Now
      Src: /src/nss/cmd/crlutil/crlutil.c:410,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/crlutil/crlutil.c:412,1
    - Dst: FindCRL
      Src: /src/nss/cmd/crlutil/crlutil.c:417,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/crlutil/crlutil.c:419,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/cmd/crlutil/crlutil.c:425,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/crlutil/crlutil.c:427,1
    - Dst: SECU_CopyCRL
      Src: /src/nss/cmd/crlutil/crlutil.c:431,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/crlutil/crlutil.c:433,1
    - Dst: DER_EncodeTimeChoice
      Src: /src/nss/cmd/crlutil/crlutil.c:440,1
    - Dst: PR_Now
      Src: /src/nss/cmd/crlutil/crlutil.c:440,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/crlutil/crlutil.c:442,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/crlutil/crlutil.c:451,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/crlutil/crlutil.c:454,1
    - Dst: SEC_DestroyCrl
      Src: /src/nss/cmd/crlutil/crlutil.c:457,1
    - Dst: SEC_DestroyCrl
      Src: /src/nss/cmd/crlutil/crlutil.c:459,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 81
    argCount: 8
    argNames:
    - arena
    - certHandle
    - cert
    - certNickName
    - inFile
    - decodeOptions
    - importOptions
    - pwdata
    argTypes:
    - PLArenaPool*
    - CERTCertDBHandle*
    - CERTCertificate**
    - char*
    - PRFileDesc*
    - PRInt32
    - PRInt32
    - secuPWData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 361
    functionDepth: 3
    functionLinenumber: 361
    functionLinenumberEnd: 463
    functionName: CreateModifiedCRLCopy
    functionSourceFile: /src/nss/cmd/crlutil/crlutil.c
    functionUses: 0
    functionsReached:
    - SECU_ReadDERFromFile
    - CERT_DecodeDERCrlWithFlags
    - PORT_NewArena
    - SECU_PrintError
    - FindCRL
    - FindSigningCert
    - PORT_FreeArena
    - PR_Now
    - PORT_SetError
    - PORT_ArenaZNew
    - CERT_VerifySignedData
    - SEC_DestroyCrl
    - DER_EncodeTimeChoice
    - SECU_CopyCRL
    - SECITEM_FreeItem
    linkageType: ''
    returnType: CERTSignedCrl
    signature: "CERTSignedCrl *\nCreateModifiedCRLCopy(PLArenaPool *arena, CERTCertDBHandle
      *certHandle,\n                      CERTCertificate **cert, char *certNickName,\n
      \                     PRFileDesc *inFile, PRInt32 decodeOptions,\n                      PRInt32
      importOptions, secuPWData *pwdata)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/cmd/crlutil/crlutil.c:477,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/crlutil/crlutil.c:478,1
    - Dst: PORT_ArenaMark
      Src: /src/nss/cmd/crlutil/crlutil.c:483,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/cmd/crlutil/crlutil.c:485,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/crlutil/crlutil.c:487,1
    - Dst: SEC_ASN1EncodeInteger
      Src: /src/nss/cmd/crlutil/crlutil.c:491,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/crlutil/crlutil.c:495,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/cmd/crlutil/crlutil.c:501,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/crlutil/crlutil.c:503,1
    - Dst: CERT_CopyName
      Src: /src/nss/cmd/crlutil/crlutil.c:509,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/crlutil/crlutil.c:511,1
    - Dst: DER_EncodeTimeChoice
      Src: /src/nss/cmd/crlutil/crlutil.c:516,1
    - Dst: PR_Now
      Src: /src/nss/cmd/crlutil/crlutil.c:516,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/crlutil/crlutil.c:518,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/cmd/crlutil/crlutil.c:527,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/cmd/crlutil/crlutil.c:532,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 3
    argNames:
    - arena
    - certHandle
    - cert
    argTypes:
    - PLArenaPool*
    - CERTCertDBHandle*
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 465
    functionDepth: 1
    functionLinenumber: 465
    functionLinenumberEnd: 534
    functionName: CreateNewCrl
    functionSourceFile: /src/nss/cmd/crlutil/crlutil.c
    functionUses: 0
    functionsReached:
    - SECU_PrintError
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - SECITEM_CopyItem
    - PR_Now
    - PORT_ArenaZNew
    - PORT_SetError
    - CERT_CopyName
    - SEC_ASN1EncodeInteger
    - DER_EncodeTimeChoice
    - PORT_ArenaUnmark
    linkageType: ''
    returnType: CERTSignedCrl
    signature: "CERTSignedCrl *\nCreateNewCrl(PLArenaPool *arena, CERTCertDBHandle
      *certHandle,\n             CERTCertificate *cert)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/cmd/crlutil/crlutil.c:543,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/crlutil/crlutil.c:544,1
    - Dst: CRLGEN_InitCrlGeneration
      Src: /src/nss/cmd/crlutil/crlutil.c:549,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/crlutil/crlutil.c:551,1
    - Dst: CRLGEN_ExtHandleInit
      Src: /src/nss/cmd/crlutil/crlutil.c:555,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/crlutil/crlutil.c:557,1
    - Dst: CRLGEN_StartCrlGen
      Src: /src/nss/cmd/crlutil/crlutil.c:561,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/crlutil/crlutil.c:563,1
    - Dst: CRLGEN_CommitExtensionsAndEntries
      Src: /src/nss/cmd/crlutil/crlutil.c:574,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/crlutil/crlutil.c:575,1
    - Dst: CRLGEN_FinalizeCrlGeneration
      Src: /src/nss/cmd/crlutil/crlutil.c:578,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 2
    argNames:
    - signCrl
    - inCrlInitFile
    argTypes:
    - CERTSignedCrl*
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 536
    functionDepth: 3
    functionLinenumber: 536
    functionLinenumberEnd: 580
    functionName: UpdateCrl
    functionSourceFile: /src/nss/cmd/crlutil/crlutil.c
    functionUses: 0
    functionsReached:
    - CRLGEN_StartCrlGen
    - SECU_PrintError
    - CRLGEN_FinalizeCrlGeneration
    - CRLGEN_InitCrlGeneration
    - PORT_SetError
    - CRLGEN_CommitExtensionsAndEntries
    - CRLGEN_ExtHandleInit
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus UpdateCrl(CERTSignedCrl *signCrl, PRFileDesc *inCrlInitFile)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/cmd/crlutil/crlutil.c:592,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/crlutil/crlutil.c:594,1
    - Dst: PL_strcmp
      Src: /src/nss/cmd/crlutil/crlutil.c:599,1
    - Dst: PK11_GetInternalKeySlot
      Src: /src/nss/cmd/crlutil/crlutil.c:600,1
    - Dst: PK11_FindSlotByName
      Src: /src/nss/cmd/crlutil/crlutil.c:602,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/crlutil/crlutil.c:604,1
    - Dst: PK11_NeedLogin
      Src: /src/nss/cmd/crlutil/crlutil.c:608,1
    - Dst: PK11_Authenticate
      Src: /src/nss/cmd/crlutil/crlutil.c:609,1
    - Dst: SECU_SignAndEncodeCRL
      Src: /src/nss/cmd/crlutil/crlutil.c:614,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/crlutil/crlutil.c:639,1
    - Dst: PR_Open
      Src: /src/nss/cmd/crlutil/crlutil.c:644,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/crlutil/crlutil.c:646,1
    - Dst: SECU_StoreCRL
      Src: /src/nss/cmd/crlutil/crlutil.c:652,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/crlutil/crlutil.c:654,1
    - Dst: PR_Close
      Src: /src/nss/cmd/crlutil/crlutil.c:659,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/cmd/crlutil/crlutil.c:661,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 62
    argCount: 8
    argNames:
    - signCrl
    - cert
    - outFileName
    - hashAlgTag
    - ascii
    - slotName
    - url
    - pwdata
    argTypes:
    - CERTSignedCrl*
    - CERTCertificate*
    - char*
    - SECOidTag
    - int
    - char*
    - char*
    - secuPWData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 582
    functionDepth: 2
    functionLinenumber: 582
    functionLinenumberEnd: 663
    functionName: SignAndStoreCrl
    functionSourceFile: /src/nss/cmd/crlutil/crlutil.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SECU_SignAndEncodeCRL
    - PK11_GetInternalKeySlot
    - SECU_PrintError
    - PR_Open
    - PK11_NeedLogin
    - SECU_StoreCRL
    - PL_strcmp
    - PK11_FindSlotByName
    - PR_Close
    - PK11_FreeSlot
    - PK11_Authenticate
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SignAndStoreCrl(CERTSignedCrl *signCrl, CERTCertificate
      *cert,\n                char *outFileName, SECOidTag hashAlgTag, int ascii,\n
      \               char *slotName, char *url, secuPWData *pwdata)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: SECU_StringToSignatureAlgTag
      Src: /src/nss/cmd/crlutil/crlutil.c:680,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/crlutil/crlutil.c:682,1
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/crlutil/crlutil.c:690,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/crlutil/crlutil.c:692,1
    - Dst: CreateModifiedCRLCopy
      Src: /src/nss/cmd/crlutil/crlutil.c:697,1
    - Dst: FindSigningCert
      Src: /src/nss/cmd/crlutil/crlutil.c:707,1
    - Dst: strlen
      Src: /src/nss/cmd/crlutil/crlutil.c:717,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/cmd/crlutil/crlutil.c:718,1
    - Dst: PR_snprintf
      Src: /src/nss/cmd/crlutil/crlutil.c:719,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/crlutil/crlutil.c:721,1
    - Dst: CreateNewCrl
      Src: /src/nss/cmd/crlutil/crlutil.c:725,1
    - Dst: UpdateCrl
      Src: /src/nss/cmd/crlutil/crlutil.c:732,1
    - Dst: SignAndStoreCrl
      Src: /src/nss/cmd/crlutil/crlutil.c:737,1
    - Dst: SECU_PrintCRLInfo
      Src: /src/nss/cmd/crlutil/crlutil.c:744,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/crlutil/crlutil.c:749,1
    - Dst: SEC_DestroyCrl
      Src: /src/nss/cmd/crlutil/crlutil.c:751,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/crlutil/crlutil.c:753,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 68
    argCount: 14
    argNames:
    - certHandle
    - certNickName
    - inCrlInitFile
    - inFile
    - outFileName
    - ascii
    - slotName
    - importOptions
    - alg
    - quiet
    - decodeOptions
    - url
    - pwdata
    - modifyFlag
    argTypes:
    - CERTCertDBHandle*
    - char*
    - PRFileDesc*
    - PRFileDesc*
    - char*
    - int
    - char*
    - PRInt32
    - char*
    - PRBool
    - PRInt32
    - char*
    - secuPWData*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 665
    functionDepth: 11
    functionLinenumber: 665
    functionLinenumberEnd: 755
    functionName: GenerateCRL
    functionSourceFile: /src/nss/cmd/crlutil/crlutil.c
    functionUses: 0
    functionsReached:
    - PR_snprintf
    - PORT_NewArena
    - SECU_PrintError
    - UpdateCrl
    - FindSigningCert
    - PORT_ArenaAlloc
    - PORT_FreeArena
    - CreateNewCrl
    - SECU_PrintCRLInfo
    - CreateModifiedCRLCopy
    - SignAndStoreCrl
    - SEC_DestroyCrl
    - CERT_DestroyCertificate
    - SECU_StringToSignatureAlgTag
    - strlen
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus GenerateCRL(CERTCertDBHandle *certHandle, char *certNickName,\n
      \           PRFileDesc *inCrlInitFile, PRFileDesc *inFile,\n            char
      *outFileName, int ascii, char *slotName,\n            PRInt32 importOptions,
      char *alg, PRBool quiet,\n            PRInt32 decodeOptions, char *url, secuPWData
      *pwdata,\n            int modifyFlag)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/crlutil/crlutil.c:760,1
    - Dst: fprintf
      Src: /src/nss/cmd/crlutil/crlutil.c:773,1
    - Dst: fprintf
      Src: /src/nss/cmd/crlutil/crlutil.c:774,1
    - Dst: fprintf
      Src: /src/nss/cmd/crlutil/crlutil.c:776,1
    - Dst: fprintf
      Src: /src/nss/cmd/crlutil/crlutil.c:778,1
    - Dst: fprintf
      Src: /src/nss/cmd/crlutil/crlutil.c:781,1
    - Dst: fprintf
      Src: /src/nss/cmd/crlutil/crlutil.c:782,1
    - Dst: fprintf
      Src: /src/nss/cmd/crlutil/crlutil.c:784,1
    - Dst: fprintf
      Src: /src/nss/cmd/crlutil/crlutil.c:785,1
    - Dst: fprintf
      Src: /src/nss/cmd/crlutil/crlutil.c:787,1
    - Dst: fprintf
      Src: /src/nss/cmd/crlutil/crlutil.c:790,1
    - Dst: fprintf
      Src: /src/nss/cmd/crlutil/crlutil.c:791,1
    - Dst: fprintf
      Src: /src/nss/cmd/crlutil/crlutil.c:792,1
    - Dst: fprintf
      Src: /src/nss/cmd/crlutil/crlutil.c:794,1
    - Dst: fprintf
      Src: /src/nss/cmd/crlutil/crlutil.c:797,1
    - Dst: fprintf
      Src: /src/nss/cmd/crlutil/crlutil.c:798,1
    - Dst: fprintf
      Src: /src/nss/cmd/crlutil/crlutil.c:801,1
    - Dst: fprintf
      Src: /src/nss/cmd/crlutil/crlutil.c:802,1
    - Dst: fprintf
      Src: /src/nss/cmd/crlutil/crlutil.c:804,1
    - Dst: fprintf
      Src: /src/nss/cmd/crlutil/crlutil.c:805,1
    - Dst: fprintf
      Src: /src/nss/cmd/crlutil/crlutil.c:806,1
    - Dst: fprintf
      Src: /src/nss/cmd/crlutil/crlutil.c:808,1
    - Dst: fprintf
      Src: /src/nss/cmd/crlutil/crlutil.c:811,1
    - Dst: fprintf
      Src: /src/nss/cmd/crlutil/crlutil.c:813,1
    - Dst: fprintf
      Src: /src/nss/cmd/crlutil/crlutil.c:814,1
    - Dst: fprintf
      Src: /src/nss/cmd/crlutil/crlutil.c:815,1
    - Dst: fprintf
      Src: /src/nss/cmd/crlutil/crlutil.c:816,1
    - Dst: fprintf
      Src: /src/nss/cmd/crlutil/crlutil.c:817,1
    - Dst: fprintf
      Src: /src/nss/cmd/crlutil/crlutil.c:818,1
    - Dst: fprintf
      Src: /src/nss/cmd/crlutil/crlutil.c:819,1
    - Dst: fprintf
      Src: /src/nss/cmd/crlutil/crlutil.c:820,1
    - Dst: fprintf
      Src: /src/nss/cmd/crlutil/crlutil.c:821,1
    - Dst: fprintf
      Src: /src/nss/cmd/crlutil/crlutil.c:823,1
    - Dst: fprintf
      Src: /src/nss/cmd/crlutil/crlutil.c:825,1
    - Dst: fprintf
      Src: /src/nss/cmd/crlutil/crlutil.c:827,1
    - Dst: fprintf
      Src: /src/nss/cmd/crlutil/crlutil.c:829,1
    - Dst: fprintf
      Src: /src/nss/cmd/crlutil/crlutil.c:831,1
    - Dst: fprintf
      Src: /src/nss/cmd/crlutil/crlutil.c:833,1
    - Dst: fprintf
      Src: /src/nss/cmd/crlutil/crlutil.c:835,1
    - Dst: fprintf
      Src: /src/nss/cmd/crlutil/crlutil.c:837,1
    - Dst: fprintf
      Src: /src/nss/cmd/crlutil/crlutil.c:839,1
    - Dst: fprintf
      Src: /src/nss/cmd/crlutil/crlutil.c:840,1
    - Dst: exit
      Src: /src/nss/cmd/crlutil/crlutil.c:842,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 757
    functionDepth: 0
    functionLinenumber: 757
    functionLinenumberEnd: 843
    functionName: Usage
    functionSourceFile: /src/nss/cmd/crlutil/crlutil.c
    functionUses: 81
    functionsReached:
    - fprintf
    - exit
    linkageType: ''
    returnType: void
    signature: void Usage()
  - BBCount: 57
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/crlutil/crlutil.c:860,1
    - Dst: strrchr
      Src: /src/nss/cmd/crlutil/crlutil.c:880,1
    - Dst: PL_CreateOptState
      Src: /src/nss/cmd/crlutil/crlutil.c:892,1
    - Dst: PL_GetNextOpt
      Src: /src/nss/cmd/crlutil/crlutil.c:893,1
    - Dst: Usage
      Src: /src/nss/cmd/crlutil/crlutil.c:896,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/crlutil/crlutil.c:937,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/crlutil/crlutil.c:938,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/crlutil/crlutil.c:942,1
    - Dst: PR_Open
      Src: /src/nss/cmd/crlutil/crlutil.c:950,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/crlutil/crlutil.c:952,1
    - Dst: SECU_ConfigDirectory
      Src: /src/nss/cmd/crlutil/crlutil.c:960,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/crlutil/crlutil.c:965,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/crlutil/crlutil.c:969,1
    - Dst: PR_Open
      Src: /src/nss/cmd/crlutil/crlutil.c:973,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/crlutil/crlutil.c:975,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/crlutil/crlutil.c:983,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/crlutil/crlutil.c:987,1
    - Dst: atoi
      Src: /src/nss/cmd/crlutil/crlutil.c:996,1
    - Dst: atoi
      Src: /src/nss/cmd/crlutil/crlutil.c:997,1
    - Dst: atoi
      Src: /src/nss/cmd/crlutil/crlutil.c:1001,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/crlutil/crlutil.c:1003,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/crlutil/crlutil.c:1015,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/crlutil/crlutil.c:1019,1
    - Dst: Usage
      Src: /src/nss/cmd/crlutil/crlutil.c:1026,1
    - Dst: Usage
      Src: /src/nss/cmd/crlutil/crlutil.c:1028,1
    - Dst: Usage
      Src: /src/nss/cmd/crlutil/crlutil.c:1030,1
    - Dst: Usage
      Src: /src/nss/cmd/crlutil/crlutil.c:1033,1
    - Dst: Usage
      Src: /src/nss/cmd/crlutil/crlutil.c:1036,1
    - Dst: PR_Init
      Src: /src/nss/cmd/crlutil/crlutil.c:1042,1
    - Dst: PK11_SetPasswordFunc
      Src: /src/nss/cmd/crlutil/crlutil.c:1044,1
    - Dst: NSS_NoDB_Init
      Src: /src/nss/cmd/crlutil/crlutil.c:1047,1
    - Dst: NSS_Initialize
      Src: /src/nss/cmd/crlutil/crlutil.c:1052,1
    - Dst: SECU_ConfigDirectory
      Src: /src/nss/cmd/crlutil/crlutil.c:1052,1
    - Dst: SECU_PrintPRandOSError
      Src: /src/nss/cmd/crlutil/crlutil.c:1055,1
    - Dst: SECU_RegisterDynamicOids
      Src: /src/nss/cmd/crlutil/crlutil.c:1061,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/cmd/crlutil/crlutil.c:1063,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/crlutil/crlutil.c:1065,1
    - Dst: CRLGEN_InitCrlGenParserLock
      Src: /src/nss/cmd/crlutil/crlutil.c:1070,1
    - Dst: DeleteCRL
      Src: /src/nss/cmd/crlutil/crlutil.c:1075,1
    - Dst: ListCRL
      Src: /src/nss/cmd/crlutil/crlutil.c:1077,1
    - Dst: ImportCRL
      Src: /src/nss/cmd/crlutil/crlutil.c:1079,1
    - Dst: DumpCRL
      Src: /src/nss/cmd/crlutil/crlutil.c:1082,1
    - Dst: GenerateCRL
      Src: /src/nss/cmd/crlutil/crlutil.c:1086,1
    - Dst: ListCRLNames
      Src: /src/nss/cmd/crlutil/crlutil.c:1093,1
    - Dst: ListCRLNames
      Src: /src/nss/cmd/crlutil/crlutil.c:1098,1
    - Dst: ListCRLNames
      Src: /src/nss/cmd/crlutil/crlutil.c:1100,1
    - Dst: ImportCRL
      Src: /src/nss/cmd/crlutil/crlutil.c:1102,1
    - Dst: ListCRLNames
      Src: /src/nss/cmd/crlutil/crlutil.c:1105,1
    - Dst: CRLGEN_DestroyCrlGenParserLock
      Src: /src/nss/cmd/crlutil/crlutil.c:1110,1
    - Dst: PL_DestroyOptState
      Src: /src/nss/cmd/crlutil/crlutil.c:1113,1
    - Dst: PR_Close
      Src: /src/nss/cmd/crlutil/crlutil.c:1116,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/crlutil/crlutil.c:1119,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/crlutil/crlutil.c:1122,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/crlutil/crlutil.c:1125,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/crlutil/crlutil.c:1128,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/crlutil/crlutil.c:1131,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/crlutil/crlutil.c:1134,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/crlutil/crlutil.c:1137,1
    - Dst: NSS_Shutdown
      Src: /src/nss/cmd/crlutil/crlutil.c:1139,1
    CyclomaticComplexity: 82
    EdgeCount: 82
    ICount: 212
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1144
      start: 845
    functionDepth: 13
    functionLinenumber: 845
    functionLinenumberEnd: 1144
    functionName: main
    functionSourceFile: /src/nss/cmd/crlutil/crlutil.c
    functionUses: 4
    functionsReached:
    - CRLGEN_InitCrlGenParserLock
    - PL_DestroyOptState
    - ImportCRL
    - Usage
    - CERT_GetDefaultCertDB
    - strrchr
    - PL_CreateOptState
    - GenerateCRL
    - DeleteCRL
    - DumpCRL
    - SECU_PrintError
    - ListCRL
    - PR_Init
    - SECU_PrintPRandOSError
    - PR_Open
    - PR_Close
    - PK11_SetPasswordFunc
    - SECU_ConfigDirectory
    - NSS_NoDB_Init
    - ListCRLNames
    - PL_GetNextOpt
    - PORT_Free
    - CRLGEN_DestroyCrlGenParserLock
    - PR_fprintf
    - atoi
    - NSS_Initialize
    - NSS_Shutdown
    - SECU_RegisterDynamicOids
    - PORT_Strdup
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ListCRLNames
      Src: /src/nss/cmd/crlutil/crlutil.c:1098,1
    - Dst: ListCRLNames
      Src: /src/nss/cmd/crlutil/crlutil.c:1100,1
    - Dst: ImportCRL
      Src: /src/nss/cmd/crlutil/crlutil.c:1102,1
    - Dst: ListCRLNames
      Src: /src/nss/cmd/crlutil/crlutil.c:1105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 1096
    functionDepth: 2
    functionLinenumber: 1096
    functionLinenumberEnd: 1106
    functionName: if
    functionSourceFile: /src/nss/cmd/crlutil/crlutil.c
    functionUses: 0
    functionsReached:
    - ImportCRL
    - ListCRLNames
    linkageType: ''
    returnType: else
    signature: else if (test)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - proto
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: YY_PROTO
    functionSourceFile: /src/nss/cmd/crlutil/crlgen_lex.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_PROTO(proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - proto
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: YY_PROTO
    functionSourceFile: /src/nss/cmd/crlutil/crlgen_lex.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_PROTO(proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: YY_SC_TO_UI
    functionSourceFile: /src/nss/cmd/crlutil/crlgen_lex.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_SC_TO_UI(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - state
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: YY_STATE_EOF
    functionSourceFile: /src/nss/cmd/crlutil/crlgen_lex.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_STATE_EOF(state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: yyless
    functionSourceFile: /src/nss/cmd/crlutil/crlgen_lex.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: yyless(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 135
    functionName: unput
    functionSourceFile: /src/nss/cmd/crlutil/crlgen_lex.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unput(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - is_interactive
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 249
    functionName: yy_set_interactive
    functionSourceFile: /src/nss/cmd/crlutil/crlgen_lex.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: yy_set_interactive(is_interactive)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - at_bol
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 256
    functionName: yy_set_bol
    functionSourceFile: /src/nss/cmd/crlutil/crlgen_lex.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: yy_set_bol(at_bol)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 258
    functionName: YY_AT_BOL
    functionSourceFile: /src/nss/cmd/crlutil/crlgen_lex.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_AT_BOL()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 429
    functionName: yymore
    functionSourceFile: /src/nss/cmd/crlutil/crlgen_lex.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: yymore()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - buf
    - ','
    - result
    - ','
    - max_size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 450
    functionName: YY_INPUT
    functionSourceFile: /src/nss/cmd/crlutil/crlgen_lex.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_INPUT(buf, result, max_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - buf
    - ','
    - result
    - ','
    - max_size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 551
    functionName: YY_INPUT
    functionSourceFile: /src/nss/cmd/crlutil/crlgen_lex.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_INPUT(buf, result, max_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 559
    functionName: yyterminate
    functionSourceFile: /src/nss/cmd/crlutil/crlgen_lex.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: yyterminate()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 568
    functionDepth: 0
    functionLinenumber: 568
    functionLinenumberEnd: 569
    functionName: YY_FATAL_ERROR
    functionSourceFile: /src/nss/cmd/crlutil/crlgen_lex.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: YY_FATAL_ERROR(msg)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: YY_FATAL_ERROR
      Src: /src/nss/cmd/crlutil/crlgen_lex.c:1027,1
    - Dst: YY_FATAL_ERROR
      Src: /src/nss/cmd/crlutil/crlgen_lex.c:1066,1
    - Dst: yy_flex_realloc
      Src: /src/nss/cmd/crlutil/crlgen_lex.c:1086,1
    - Dst: YY_FATAL_ERROR
      Src: /src/nss/cmd/crlutil/crlgen_lex.c:1093,1
    - Dst: YY_INPUT
      Src: /src/nss/cmd/crlutil/crlgen_lex.c:1107,1
    - Dst: yyrestart
      Src: /src/nss/cmd/crlutil/crlgen_lex.c:1116,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1136
      start: 1018
    functionDepth: 0
    functionLinenumber: 1018
    functionLinenumberEnd: 1136
    functionName: yy_get_next_buffer
    functionSourceFile: /src/nss/cmd/crlutil/crlgen_lex.c
    functionUses: 1
    functionsReached:
    - yy_flex_realloc
    - yyrestart
    - YY_INPUT
    - YY_FATAL_ERROR
    linkageType: ''
    returnType: int
    signature: int yy_get_next_buffer()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: YY_AT_BOL
      Src: /src/nss/cmd/crlutil/crlgen_lex.c:1147,1
    - Dst: YY_SC_TO_UI
      Src: /src/nss/cmd/crlutil/crlgen_lex.c:1150,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1164
      start: 1140
    functionDepth: 0
    functionLinenumber: 1140
    functionLinenumberEnd: 1164
    functionName: yy_get_previous_state
    functionSourceFile: /src/nss/cmd/crlutil/crlgen_lex.c
    functionUses: 0
    functionsReached:
    - YY_AT_BOL
    - YY_SC_TO_UI
    linkageType: ''
    returnType: yy_state_type
    signature: yy_state_type yy_get_previous_state()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: yy_get_next_buffer
      Src: /src/nss/cmd/crlutil/crlgen_lex.c:1268,1
    - Dst: yyrestart
      Src: /src/nss/cmd/crlutil/crlgen_lex.c:1281,1
    - Dst: yywrap
      Src: /src/nss/cmd/crlutil/crlgen_lex.c:1286,1
    - Dst: yyinput
      Src: /src/nss/cmd/crlutil/crlgen_lex.c:1292,1
    - Dst: input
      Src: /src/nss/cmd/crlutil/crlgen_lex.c:1294,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1312
      start: 1247
    functionDepth: 1
    functionLinenumber: 1247
    functionLinenumberEnd: 1312
    functionName: input
    functionSourceFile: /src/nss/cmd/crlutil/crlgen_lex.c
    functionUses: 2
    functionsReached:
    - yyinput
    - yywrap
    - input
    - yyrestart
    - yy_get_next_buffer
    linkageType: ''
    returnType: int
    signature: int input()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1371
      start: 1363
    functionDepth: 0
    functionLinenumber: 1363
    functionLinenumberEnd: 1371
    functionName: yy_load_buffer_state
    functionSourceFile: /src/nss/cmd/crlutil/crlgen_lex.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void yy_load_buffer_state()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: YY_FATAL_ERROR
      Src: /src/nss/cmd/crlutil/crlgen_lex.c:1614,1
    - Dst: BEGIN
      Src: /src/nss/cmd/crlutil/crlgen_lex.c:1616,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1617
      start: 1610
    functionDepth: 0
    functionLinenumber: 1610
    functionLinenumberEnd: 1617
    functionName: yy_pop_state
    functionSourceFile: /src/nss/cmd/crlutil/crlgen_lex.c
    functionUses: 0
    functionsReached:
    - BEGIN
    - YY_FATAL_ERROR
    linkageType: ''
    returnType: void
    signature: void yy_pop_state()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1625
      start: 1621
    functionDepth: 0
    functionLinenumber: 1621
    functionLinenumberEnd: 1625
    functionName: yy_top_state
    functionSourceFile: /src/nss/cmd/crlutil/crlgen_lex.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int yy_top_state()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: yylex
      Src: /src/nss/cmd/crlutil/crlgen_lex.c:1736,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1738
      start: 1733
    functionDepth: 0
    functionLinenumber: 1733
    functionLinenumberEnd: 1738
    functionName: main
    functionSourceFile: /src/nss/cmd/crlutil/crlgen_lex.c
    functionUses: 4
    functionsReached:
    - yylex
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_NewLock
      Src: /src/nss/cmd/crlutil/crlgen_lex.c:1749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1750
      start: 1746
    functionDepth: 0
    functionLinenumber: 1746
    functionLinenumberEnd: 1750
    functionName: CRLGEN_InitCrlGenParserLock
    functionSourceFile: /src/nss/cmd/crlutil/crlgen_lex.c
    functionUses: 1
    functionsReached:
    - PR_NewLock
    linkageType: ''
    returnType: void
    signature: void CRLGEN_InitCrlGenParserLock()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_DestroyLock
      Src: /src/nss/cmd/crlutil/crlgen_lex.c:1755,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1756
      start: 1752
    functionDepth: 0
    functionLinenumber: 1752
    functionLinenumberEnd: 1756
    functionName: CRLGEN_DestroyCrlGenParserLock
    functionSourceFile: /src/nss/cmd/crlutil/crlgen_lex.c
    functionUses: 1
    functionsReached:
    - PR_DestroyLock
    linkageType: ''
    returnType: void
    signature: void CRLGEN_DestroyCrlGenParserLock()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_Lock
      Src: /src/nss/cmd/crlutil/crlgen_lex.c:1763,1
    - Dst: yylex
      Src: /src/nss/cmd/crlutil/crlgen_lex.c:1769,1
    - Dst: PR_Unlock
      Src: /src/nss/cmd/crlutil/crlgen_lex.c:1771,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - parserCtlData
    argTypes:
    - CRLGENGeneratorData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1774
      start: 1758
    functionDepth: 0
    functionLinenumber: 1758
    functionLinenumberEnd: 1774
    functionName: CRLGEN_StartCrlGen
    functionSourceFile: /src/nss/cmd/crlutil/crlgen_lex.c
    functionUses: 1
    functionsReached:
    - yylex
    - PR_Lock
    - PR_Unlock
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CRLGEN_StartCrlGen(CRLGENGeneratorData *parserCtlData)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1780
      start: 1776
    functionDepth: 0
    functionLinenumber: 1776
    functionLinenumberEnd: 1780
    functionName: yywrap
    functionSourceFile: /src/nss/cmd/crlutil/crlgen_lex.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int yywrap()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:31,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - tag
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 37
    functionName: getKeyLengthEntry
    functionSourceFile: /src/nss/cmd/pk11ectest/pk11ectest.c
    functionUses: 0
    functionsReached:
    - PR_ARRAY_SIZE
    linkageType: ''
    returnType: KeyLengthEntry
    signature: 'KeyLengthEntry *

      getKeyLengthEntry(SECOidTag tag)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:44,1
    - Dst: printf
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:49,1
    - Dst: printf
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:51,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - item
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 52
    functionName: printBuf
    functionSourceFile: /src/nss/cmd/pk11ectest/pk11ectest.c
    functionUses: 2
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printBuf(const SECItem *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetSymKeyNickname
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:57,1
    - Dst: PK11_GetKeyLength
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:58,1
    - Dst: PK11_GetKeyStrength
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:59,1
    - Dst: PK11_GetSymKeyType
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:61,1
    - Dst: PK11_ExtractKeyValue
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:62,1
    - Dst: PK11_GetKeyData
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:64,1
    - Dst: printf
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:65,1
    - Dst: printBuf
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:67,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - symKey
    argTypes:
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 70
    functionName: PrintKey
    functionSourceFile: /src/nss/cmd/pk11ectest/pk11ectest.c
    functionUses: 4
    functionsReached:
    - PK11_GetKeyLength
    - PK11_GetKeyStrength
    - PORT_Free
    - printf
    - PK11_ExtractKeyValue
    - PK11_GetSymKeyType
    - PK11_GetSymKeyNickname
    - PK11_GetKeyData
    - printBuf
    linkageType: ''
    returnType: void
    signature: void PrintKey(PK11SymKey *symKey)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:87,1
    - Dst: printf
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:89,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:92,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:93,1
    - Dst: memcpy
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:96,1
    - Dst: SECKEY_CreateECPrivateKey
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:98,1
    - Dst: printf
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:100,1
    - Dst: PK11_PubDeriveWithKDF
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:104,1
    - Dst: printf
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:108,1
    - Dst: PrintKey
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:111,1
    - Dst: getKeyLengthEntry
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:113,1
    - Dst: PR_ASSERT
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:116,1
    - Dst: PK11_ReadRawAttribute
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:121,1
    - Dst: printf
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:123,1
    - Dst: printf
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:129,1
    - Dst: printBuf
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:130,1
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:133,1
    - Dst: printf
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:135,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:139,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:139,1
    - Dst: printf
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:142,1
    - Dst: printBuf
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:143,1
    - Dst: printf
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:148,1
    - Dst: printBuf
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:150,1
    - Dst: printf
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:154,1
    - Dst: printBuf
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:156,1
    - Dst: printf
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:161,1
    - Dst: printBuf
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:163,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:171,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:174,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:177,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:180,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:182,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:183,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 93
    argCount: 1
    argNames:
    - oid
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 186
    functionName: ectest_curve_pkcs11
    functionSourceFile: /src/nss/cmd/pk11ectest/pk11ectest.c
    functionUses: 0
    functionsReached:
    - PK11_PubDeriveWithKDF
    - printf
    - PK11_ReadRawAttribute
    - memcpy
    - SECKEY_DestroyPublicKey
    - PORT_NewArena
    - SECITEM_FreeItem
    - PORT_Assert
    - PORT_FreeArena
    - SECITEM_AllocItem
    - SEC_QuickDERDecodeItem
    - PrintKey
    - printBuf
    - SECOID_FindOIDByTag
    - SECKEY_CreateECPrivateKey
    - getKeyLengthEntry
    - PR_ASSERT
    - SECKEY_DestroyPrivateKey
    - SEC_ASN1_GET
    - PK11_FreeSymKey
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ectest_curve_pkcs11(SECOidTag oid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - prog
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 197
    functionName: printUsage
    functionSourceFile: /src/nss/cmd/pk11ectest/pk11ectest.c
    functionUses: 37
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printUsage(char *prog)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:214,1
    - Dst: PL_strcasecmp
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:216,1
    - Dst: printUsage
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:219,1
    - Dst: printUsage
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:224,1
    - Dst: NSS_NoDB_Init
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:228,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:230,1
    - Dst: ectest_curve_pkcs11
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:235,1
    - Dst: printf
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:236,1
    - Dst: printf
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:239,1
    - Dst: ectest_curve_pkcs11
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:244,1
    - Dst: printf
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:245,1
    - Dst: printf
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:248,1
    - Dst: NSS_Shutdown
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:254,1
    - Dst: printf
      Src: /src/nss/cmd/pk11ectest/pk11ectest.c:257,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 2
    argNames:
    - argv
    - argc
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 260
    functionName: main
    functionSourceFile: /src/nss/cmd/pk11ectest/pk11ectest.c
    functionUses: 4
    functionsReached:
    - ectest_curve_pkcs11
    - NSS_NoDB_Init
    - SECU_PrintError
    - PL_strcasecmp
    - printf
    - NSS_Shutdown
    - printUsage
    linkageType: ''
    returnType: int
    signature: int main(int argv, char **argc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/pk1sign/pk1sign.c:52,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk1sign/pk1sign.c:55,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk1sign/pk1sign.c:57,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk1sign/pk1sign.c:59,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk1sign/pk1sign.c:61,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk1sign/pk1sign.c:63,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk1sign/pk1sign.c:64,1
    - Dst: exit
      Src: /src/nss/cmd/pk1sign/pk1sign.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - progName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 66
    functionName: Usage
    functionSourceFile: /src/nss/cmd/pk1sign/pk1sign.c
    functionUses: 83
    functionsReached:
    - fprintf
    - exit
    linkageType: ''
    returnType: void
    signature: void Usage(char *progName)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CERT_ExtractPublicKey
      Src: /src/nss/cmd/pk1sign/pk1sign.c:78,1
    - Dst: SECKEY_EncodeDERSubjectPublicKeyInfo
      Src: /src/nss/cmd/pk1sign/pk1sign.c:82,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/cmd/pk1sign/pk1sign.c:83,1
    - Dst: PL_Base64Encode
      Src: /src/nss/cmd/pk1sign/pk1sign.c:87,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/pk1sign/pk1sign.c:88,1
    - Dst: fputs
      Src: /src/nss/cmd/pk1sign/pk1sign.c:92,1
    - Dst: fputs
      Src: /src/nss/cmd/pk1sign/pk1sign.c:93,1
    - Dst: fputs
      Src: /src/nss/cmd/pk1sign/pk1sign.c:94,1
    - Dst: PR_Free
      Src: /src/nss/cmd/pk1sign/pk1sign.c:95,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - outFile
    - cert
    argTypes:
    - FILE*
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 98
    functionName: ExportPublicKey
    functionSourceFile: /src/nss/cmd/pk1sign/pk1sign.c
    functionUses: 0
    functionsReached:
    - SECKEY_DestroyPublicKey
    - fputs
    - PL_Base64Encode
    - SECKEY_EncodeDERSubjectPublicKeyInfo
    - PR_Free
    - CERT_ExtractPublicKey
    - SECITEM_FreeItem
    linkageType: ''
    returnType: int
    signature: int ExportPublicKey(FILE *outFile, CERTCertificate *cert)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: SECU_ReadDERFromFile
      Src: /src/nss/cmd/pk1sign/pk1sign.c:118,1
    - Dst: PK11_FindKeyByAnyCert
      Src: /src/nss/cmd/pk1sign/pk1sign.c:124,1
    - Dst: SEC_GetSignatureAlgorithmOidTag
      Src: /src/nss/cmd/pk1sign/pk1sign.c:130,1
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/pk1sign/pk1sign.c:136,1
    - Dst: PORT_Memset
      Src: /src/nss/cmd/pk1sign/pk1sign.c:138,1
    - Dst: SEC_SignData
      Src: /src/nss/cmd/pk1sign/pk1sign.c:140,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk1sign/pk1sign.c:142,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/cmd/pk1sign/pk1sign.c:148,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk1sign/pk1sign.c:150,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/cmd/pk1sign/pk1sign.c:155,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/pk1sign/pk1sign.c:156,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk1sign/pk1sign.c:159,1
    - Dst: PL_Base64Encode
      Src: /src/nss/cmd/pk1sign/pk1sign.c:164,1
    - Dst: fputs
      Src: /src/nss/cmd/pk1sign/pk1sign.c:170,1
    - Dst: fputs
      Src: /src/nss/cmd/pk1sign/pk1sign.c:171,1
    - Dst: fputs
      Src: /src/nss/cmd/pk1sign/pk1sign.c:172,1
    - Dst: ExportPublicKey
      Src: /src/nss/cmd/pk1sign/pk1sign.c:173,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/cmd/pk1sign/pk1sign.c:177,1
    - Dst: PR_Free
      Src: /src/nss/cmd/pk1sign/pk1sign.c:180,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/pk1sign/pk1sign.c:182,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 65
    argCount: 3
    argNames:
    - outFile
    - inFile
    - cert
    argTypes:
    - FILE*
    - PRFileDesc*
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 185
    functionName: SignFile
    functionSourceFile: /src/nss/cmd/pk1sign/pk1sign.c
    functionUses: 2
    functionsReached:
    - SECU_ReadDERFromFile
    - PORT_NewArena
    - SEC_GetSignatureAlgorithmOidTag
    - SEC_ASN1EncodeItem
    - fputs
    - PL_Base64Encode
    - ExportPublicKey
    - PORT_FreeArena
    - SECKEY_DestroyPrivateKey
    - PR_Free
    - fprintf
    - SECOID_SetAlgorithmID
    - PORT_Memset
    - SEC_SignData
    - SECITEM_FreeItem
    - PK11_FindKeyByAnyCert
    linkageType: ''
    returnType: int
    signature: int SignFile(FILE *outFile, PRFileDesc *inFile, CERTCertificate *cert)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/nss/cmd/pk1sign/pk1sign.c:200,1
    - Dst: PL_CreateOptState
      Src: /src/nss/cmd/pk1sign/pk1sign.c:210,1
    - Dst: PL_GetNextOpt
      Src: /src/nss/cmd/pk1sign/pk1sign.c:211,1
    - Dst: Usage
      Src: /src/nss/cmd/pk1sign/pk1sign.c:214,1
    - Dst: SECU_ConfigDirectory
      Src: /src/nss/cmd/pk1sign/pk1sign.c:218,1
    - Dst: PR_Open
      Src: /src/nss/cmd/pk1sign/pk1sign.c:222,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk1sign/pk1sign.c:224,1
    - Dst: strdup
      Src: /src/nss/cmd/pk1sign/pk1sign.c:231,1
    - Dst: fopen
      Src: /src/nss/cmd/pk1sign/pk1sign.c:235,1
    - Dst: fprintf
      Src: /src/nss/cmd/pk1sign/pk1sign.c:237,1
    - Dst: strdup
      Src: /src/nss/cmd/pk1sign/pk1sign.c:244,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/pk1sign/pk1sign.c:249,1
    - Dst: Usage
      Src: /src/nss/cmd/pk1sign/pk1sign.c:255,1
    - Dst: PR_Init
      Src: /src/nss/cmd/pk1sign/pk1sign.c:263,1
    - Dst: NSS_Init
      Src: /src/nss/cmd/pk1sign/pk1sign.c:264,1
    - Dst: SECU_ConfigDirectory
      Src: /src/nss/cmd/pk1sign/pk1sign.c:264,1
    - Dst: SECU_PrintPRandOSError
      Src: /src/nss/cmd/pk1sign/pk1sign.c:266,1
    - Dst: PK11_SetPasswordFunc
      Src: /src/nss/cmd/pk1sign/pk1sign.c:270,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/cmd/pk1sign/pk1sign.c:273,1
    - Dst: CERT_FindCertByNickname
      Src: /src/nss/cmd/pk1sign/pk1sign.c:280,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/pk1sign/pk1sign.c:282,1
    - Dst: SignFile
      Src: /src/nss/cmd/pk1sign/pk1sign.c:289,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/pk1sign/pk1sign.c:290,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/pk1sign/pk1sign.c:297,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/pk1sign/pk1sign.c:300,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/pk1sign/pk1sign.c:303,1
    - Dst: PR_Close
      Src: /src/nss/cmd/pk1sign/pk1sign.c:306,1
    - Dst: fclose
      Src: /src/nss/cmd/pk1sign/pk1sign.c:309,1
    - Dst: NSS_Shutdown
      Src: /src/nss/cmd/pk1sign/pk1sign.c:311,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/pk1sign/pk1sign.c:312,1
    - Dst: exit
      Src: /src/nss/cmd/pk1sign/pk1sign.c:313,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 97
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 317
    functionName: main
    functionSourceFile: /src/nss/cmd/pk1sign/pk1sign.c
    functionUses: 4
    functionsReached:
    - NSS_Init
    - fprintf
    - CERT_FindCertByNickname
    - Usage
    - fopen
    - CERT_GetDefaultCertDB
    - strrchr
    - PL_CreateOptState
    - strdup
    - fclose
    - SECU_PrintError
    - PR_Init
    - SECU_PrintPRandOSError
    - exit
    - PR_Open
    - CERT_DestroyCertificate
    - PR_Close
    - PK11_SetPasswordFunc
    - SECU_ConfigDirectory
    - PL_GetNextOpt
    - PORT_Free
    - SignFile
    - NSS_Shutdown
    - PORT_Strdup
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strstr
      Src: /src/nss/cmd/dbck/dbrecover.c:35,1
    - Dst: PORT_Strstr
      Src: /src/nss/cmd/dbck/dbrecover.c:36,1
    - Dst: CERT_IsCACert
      Src: /src/nss/cmd/dbck/dbrecover.c:45,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/dbck/dbrecover.c:66,1
    - Dst: strcspn
      Src: /src/nss/cmd/dbck/dbrecover.c:72,1
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/dbck/dbrecover.c:73,1
    - Dst: PORT_Strncpy
      Src: /src/nss/cmd/dbck/dbrecover.c:74,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 1
    argNames:
    - cert
    argTypes:
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 79
    functionName: IsEmailCert
    functionSourceFile: /src/nss/cmd/dbck/dbrecover.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - strcspn
    - CERT_IsCACert
    - PORT_Strncpy
    - PORT_Strdup
    - PORT_Strstr
    linkageType: ''
    returnType: char
    signature: 'char *

      IsEmailCert(CERTCertificate *cert)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SEC_DeletePermCertificate
      Src: /src/nss/cmd/dbck/dbrecover.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cert
    - arg
    argTypes:
    - CERTCertificate*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: deleteit
    functionSourceFile: /src/nss/cmd/dbck/dbrecover.c
    functionUses: 0
    functionsReached:
    - SEC_DeletePermCertificate
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus deleteit(CERTCertificate *cert, void *arg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbrecover.c:102,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbrecover.c:103,1
    - Dst: dumpCertificate
      Src: /src/nss/cmd/dbck/dbrecover.c:104,1
    - Dst: CERT_TraverseCertsForSubject
      Src: /src/nss/cmd/dbck/dbrecover.c:107,1
    - Dst: CERT_LockDB
      Src: /src/nss/cmd/dbck/dbrecover.c:109,1
    - Dst: ReadDBSubjectEntry
      Src: /src/nss/cmd/dbck/dbrecover.c:110,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/dbck/dbrecover.c:112,1
    - Dst: DeleteDBCertEntry
      Src: /src/nss/cmd/dbck/dbrecover.c:114,1
    - Dst: DeleteDBSubjectEntry
      Src: /src/nss/cmd/dbck/dbrecover.c:116,1
    - Dst: ReadDBSMimeEntry
      Src: /src/nss/cmd/dbck/dbrecover.c:118,1
    - Dst: SECITEM_ItemsAreEqual
      Src: /src/nss/cmd/dbck/dbrecover.c:120,1
    - Dst: DeleteDBSMimeEntry
      Src: /src/nss/cmd/dbck/dbrecover.c:123,1
    - Dst: SEC_DestroyDBEntry
      Src: /src/nss/cmd/dbck/dbrecover.c:124,1
    - Dst: ReadDBNicknameEntry
      Src: /src/nss/cmd/dbck/dbrecover.c:128,1
    - Dst: SECITEM_ItemsAreEqual
      Src: /src/nss/cmd/dbck/dbrecover.c:130,1
    - Dst: DeleteDBNicknameEntry
      Src: /src/nss/cmd/dbck/dbrecover.c:133,1
    - Dst: SEC_DestroyDBEntry
      Src: /src/nss/cmd/dbck/dbrecover.c:134,1
    - Dst: SEC_DestroyDBEntry
      Src: /src/nss/cmd/dbck/dbrecover.c:137,1
    - Dst: CERT_UnlockDB
      Src: /src/nss/cmd/dbck/dbrecover.c:138,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 3
    argNames:
    - handle
    - cert
    - outfile
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - CERTCertificate*
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 141
    functionName: deleteAllEntriesForCert
    functionSourceFile: /src/nss/cmd/dbck/dbrecover.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SECITEM_ItemsAreEqual
    - dumpCertificate
    - DeleteDBNicknameEntry
    - ReadDBSubjectEntry
    - ReadDBSMimeEntry
    - SEC_DestroyDBEntry
    - PR_fprintf
    - DeleteDBSubjectEntry
    - DeleteDBCertEntry
    - CERT_LockDB
    - DeleteDBSMimeEntry
    - CERT_UnlockDB
    - CERT_TraverseCertsForSubject
    - ReadDBNicknameEntry
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus deleteAllEntriesForCert(NSSLOWCERTCertDBHandle *handle,
      CERTCertificate *cert,\n                        PRFileDesc *outfile)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strpbrk
      Src: /src/nss/cmd/dbck/dbrecover.c:152,1
    - Dst: PORT_Strlen
      Src: /src/nss/cmd/dbck/dbrecover.c:154,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/dbck/dbrecover.c:156,1
    - Dst: strpbrk
      Src: /src/nss/cmd/dbck/dbrecover.c:167,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 4
    argNames:
    - numlist
    - len
    - certNums
    - nCerts
    argTypes:
    - char*
    - int
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 169
    functionName: getCertsToDelete
    functionSourceFile: /src/nss/cmd/dbck/dbrecover.c
    functionUses: 0
    functionsReached:
    - PORT_Atoi
    - strpbrk
    - PORT_Strlen
    linkageType: ''
    returnType: void
    signature: void getCertsToDelete(char *numlist, int len, int *certNums, int nCerts)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbrecover.c:183,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbrecover.c:184,1
    - Dst: dumpCertificate
      Src: /src/nss/cmd/dbck/dbrecover.c:185,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbrecover.c:186,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbrecover.c:190,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbrecover.c:191,1
    - Dst: dumpCertificate
      Src: /src/nss/cmd/dbck/dbrecover.c:192,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbrecover.c:193,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbrecover.c:197,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbrecover.c:198,1
    - Dst: dumpCertificate
      Src: /src/nss/cmd/dbck/dbrecover.c:200,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbrecover.c:201,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbrecover.c:203,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbrecover.c:205,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbrecover.c:207,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbrecover.c:209,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbrecover.c:211,1
    - Dst: PR_Read
      Src: /src/nss/cmd/dbck/dbrecover.c:216,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbrecover.c:217,1
    - Dst: isdigit
      Src: /src/nss/cmd/dbck/dbrecover.c:219,1
    - Dst: getCertsToDelete
      Src: /src/nss/cmd/dbck/dbrecover.c:224,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 52
    argCount: 5
    argNames:
    - certs
    - nCerts
    - errtype
    - info
    - certNums
    argTypes:
    - CERTCertificate**
    - int
    - int
    - dbRestoreInfo*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 238
    functionName: userSaysDeleteCert
    functionSourceFile: /src/nss/cmd/dbck/dbrecover.c
    functionUses: 0
    functionsReached:
    - dumpCertificate
    - PR_fprintf
    - isdigit
    - PR_Read
    - getCertsToDelete
    linkageType: ''
    returnType: PRBool
    signature: "PRBool userSaysDeleteCert(CERTCertificate **certs, int nCerts,\n                   int
      errtype, dbRestoreInfo *info, int *certNums)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: CERT_DecodeDERCertificate
      Src: /src/nss/cmd/dbck/dbrecover.c:257,1
    - Dst: SEC_DestroyDBEntry
      Src: /src/nss/cmd/dbck/dbrecover.c:261,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbrecover.c:274,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/dbck/dbrecover.c:277,1
    - Dst: SEC_GET_TRUST_FLAGS
      Src: /src/nss/cmd/dbck/dbrecover.c:283,1
    - Dst: SEC_GET_TRUST_FLAGS
      Src: /src/nss/cmd/dbck/dbrecover.c:284,1
    - Dst: SEC_GET_TRUST_FLAGS
      Src: /src/nss/cmd/dbck/dbrecover.c:285,1
    - Dst: CERT_CheckCertValidTimes
      Src: /src/nss/cmd/dbck/dbrecover.c:293,1
    - Dst: PR_Now
      Src: /src/nss/cmd/dbck/dbrecover.c:293,1
    - Dst: userSaysDeleteCert
      Src: /src/nss/cmd/dbck/dbrecover.c:296,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbrecover.c:299,1
    - Dst: dumpCertificate
      Src: /src/nss/cmd/dbck/dbrecover.c:300,1
    - Dst: CERT_FindCertByDERCert
      Src: /src/nss/cmd/dbck/dbrecover.c:307,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbrecover.c:311,1
    - Dst: dumpCertificate
      Src: /src/nss/cmd/dbck/dbrecover.c:312,1
    - Dst: IsEmailCert
      Src: /src/nss/cmd/dbck/dbrecover.c:318,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/dbck/dbrecover.c:343,1
    - Dst: CERT_NewTempCertificate
      Src: /src/nss/cmd/dbck/dbrecover.c:346,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbrecover.c:349,1
    - Dst: dumpCertificate
      Src: /src/nss/cmd/dbck/dbrecover.c:350,1
    - Dst: CERT_AddTempCertToPerm
      Src: /src/nss/cmd/dbck/dbrecover.c:356,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbrecover.c:358,1
    - Dst: dumpCertificate
      Src: /src/nss/cmd/dbck/dbrecover.c:359,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbrecover.c:365,1
    - Dst: dumpCertificate
      Src: /src/nss/cmd/dbck/dbrecover.c:366,1
    - Dst: UpdateSubjectWithEmailAddr
      Src: /src/nss/cmd/dbck/dbrecover.c:375,1
    - Dst: CERT_FindFullSMimeProfile
      Src: /src/nss/cmd/dbck/dbrecover.c:378,1
    - Dst: CERT_SaveSMimeProfile
      Src: /src/nss/cmd/dbck/dbrecover.c:381,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/dbck/dbrecover.c:389,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/dbck/dbrecover.c:391,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/dbck/dbrecover.c:393,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/dbck/dbrecover.c:395,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/dbck/dbrecover.c:397,1
    - Dst: SEC_DestroyDBEntry
      Src: /src/nss/cmd/dbck/dbrecover.c:399,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 88
    argCount: 3
    argNames:
    - certEntry
    - info
    - oldhandle
    argTypes:
    - certDBEntryCert*
    - dbRestoreInfo*
    - NSSLOWCERTCertDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 240
    functionDepth: 3
    functionLinenumber: 240
    functionLinenumberEnd: 401
    functionName: addCertToDB
    functionSourceFile: /src/nss/cmd/dbck/dbrecover.c
    functionUses: 0
    functionsReached:
    - dumpCertificate
    - CERT_NewTempCertificate
    - UpdateSubjectWithEmailAddr
    - CERT_SaveSMimeProfile
    - SEC_DestroyDBEntry
    - PR_fprintf
    - SEC_GET_TRUST_FLAGS
    - userSaysDeleteCert
    - CERT_CheckCertValidTimes
    - PR_Now
    - PORT_Free
    - CERT_DecodeDERCertificate
    - CERT_FindFullSMimeProfile
    - IsEmailCert
    - CERT_DestroyCertificate
    - CERT_AddTempCertToPerm
    - PORT_Strdup
    - CERT_FindCertByDERCert
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus addCertToDB(certDBEntryCert *certEntry, dbRestoreInfo *info,\n
      \           NSSLOWCERTCertDBHandle *oldhandle)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/dbck/dbrecover.c:418,1
    - Dst: PORT_Memcpy
      Src: /src/nss/cmd/dbck/dbrecover.c:419,1
    - Dst: WriteDBEntry
      Src: /src/nss/cmd/dbck/dbrecover.c:422,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/dbck/dbrecover.c:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 4
    argNames:
    - data
    - key
    - type
    - pdata
    argTypes:
    - SECItem*
    - SECItem*
    - certDBEntryType
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 426
    functionName: copyDBEntry
    functionSourceFile: /src/nss/cmd/dbck/dbrecover.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_Free
    - PORT_Memcpy
    - WriteDBEntry
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus copyDBEntry(SECItem *data, SECItem *key, certDBEntryType
      type, void *pdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CERT_IsNewer
      Src: /src/nss/cmd/dbck/dbrecover.c:432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cert1
    - cert2
    argTypes:
    - CERTCertificate**
    - CERTCertificate**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 433
    functionName: certIsOlder
    functionSourceFile: /src/nss/cmd/dbck/dbrecover.c
    functionUses: 0
    functionsReached:
    - CERT_IsNewer
    linkageType: ''
    returnType: int
    signature: int certIsOlder(CERTCertificate **cert1, CERTCertificate **cert2)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: CERT_FindCertByKey
      Src: /src/nss/cmd/dbck/dbrecover.c:461,1
    - Dst: SEC_GET_TRUST_FLAGS
      Src: /src/nss/cmd/dbck/dbrecover.c:464,1
    - Dst: SEC_GET_TRUST_FLAGS
      Src: /src/nss/cmd/dbck/dbrecover.c:465,1
    - Dst: SEC_GET_TRUST_FLAGS
      Src: /src/nss/cmd/dbck/dbrecover.c:466,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/dbck/dbrecover.c:467,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/dbck/dbrecover.c:482,1
    - Dst: PORT_Strcmp
      Src: /src/nss/cmd/dbck/dbrecover.c:495,1
    - Dst: SECITEM_ItemsAreEqual
      Src: /src/nss/cmd/dbck/dbrecover.c:500,1
    - Dst: SEC_DestroyDBEntry
      Src: /src/nss/cmd/dbck/dbrecover.c:507,1
    - Dst: PORT_Memset
      Src: /src/nss/cmd/dbck/dbrecover.c:508,1
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/dbck/dbrecover.c:520,1
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/dbck/dbrecover.c:521,1
    - Dst: CERT_FindCertByKey
      Src: /src/nss/cmd/dbck/dbrecover.c:526,1
    - Dst: qsort
      Src: /src/nss/cmd/dbck/dbrecover.c:530,1
    - Dst: SECITEM_ItemsAreEqual
      Src: /src/nss/cmd/dbck/dbrecover.c:536,1
    - Dst: SEC_DestroyDBEntry
      Src: /src/nss/cmd/dbck/dbrecover.c:540,1
    - Dst: userSaysDeleteCert
      Src: /src/nss/cmd/dbck/dbrecover.c:542,1
    - Dst: deleteAllEntriesForCert
      Src: /src/nss/cmd/dbck/dbrecover.c:545,1
    - Dst: CERT_DestroyCertArray
      Src: /src/nss/cmd/dbck/dbrecover.c:550,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 71
    argCount: 6
    argNames:
    - handle
    - subjectNum
    - dbArray
    - info
    - subjectWithSMime
    - smimeForSubject
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - int
    - certDBArray*
    - dbRestoreInfo*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 435
    functionDepth: 3
    functionLinenumber: 435
    functionLinenumberEnd: 552
    functionName: findNewestSubjectForEmail
    functionSourceFile: /src/nss/cmd/dbck/dbrecover.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - SECITEM_ItemsAreEqual
    - deleteAllEntriesForCert
    - CERT_FindCertByKey
    - SEC_DestroyDBEntry
    - SEC_GET_TRUST_FLAGS
    - userSaysDeleteCert
    - CERT_DestroyCertArray
    - CERT_DestroyCertificate
    - PORT_Memset
    - PORT_Strcmp
    - qsort
    linkageType: ''
    returnType: int
    signature: "int findNewestSubjectForEmail(NSSLOWCERTCertDBHandle *handle, int
      subjectNum,\n                          certDBArray *dbArray, dbRestoreInfo *info,\n
      \                         int *subjectWithSMime, int *smimeForSubject)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memset
      Src: /src/nss/cmd/dbck/dbrecover.c:566,1
    - Dst: PORT_Memset
      Src: /src/nss/cmd/dbck/dbrecover.c:567,1
    - Dst: PORT_ZNew
      Src: /src/nss/cmd/dbck/dbrecover.c:578,1
    - Dst: fprintf
      Src: /src/nss/cmd/dbck/dbrecover.c:580,1
    - Dst: CERT_OpenCertDBFilename
      Src: /src/nss/cmd/dbck/dbrecover.c:585,1
    - Dst: fprintf
      Src: /src/nss/cmd/dbck/dbrecover.c:588,1
    - Dst: fillDBEntryArray
      Src: /src/nss/cmd/dbck/dbrecover.c:598,1
    - Dst: PR_LIST_HEAD
      Src: /src/nss/cmd/dbck/dbrecover.c:599,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/cmd/dbck/dbrecover.c:600,1
    - Dst: LISTNODE_CAST
      Src: /src/nss/cmd/dbck/dbrecover.c:601,1
    - Dst: addCertToDB
      Src: /src/nss/cmd/dbck/dbrecover.c:602,1
    - Dst: nsslowcert_TraverseDBEntries
      Src: /src/nss/cmd/dbck/dbrecover.c:606,1
    - Dst: CERT_RedoHandlesForSubjects
      Src: /src/nss/cmd/dbck/dbrecover.c:616,1
    - Dst: freeDBEntryList
      Src: /src/nss/cmd/dbck/dbrecover.c:619,1
    - Dst: ReadDBContentVersionEntry
      Src: /src/nss/cmd/dbck/dbrecover.c:633,1
    - Dst: CERT_SetDBContentVersion
      Src: /src/nss/cmd/dbck/dbrecover.c:634,1
    - Dst: nsslowcert_TraverseDBEntries
      Src: /src/nss/cmd/dbck/dbrecover.c:639,1
    - Dst: nsslowcert_TraverseDBEntries
      Src: /src/nss/cmd/dbck/dbrecover.c:642,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbrecover.c:646,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbrecover.c:648,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbrecover.c:649,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbrecover.c:651,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbrecover.c:653,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbrecover.c:655,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbrecover.c:657,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/dbck/dbrecover.c:667,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 50
    argCount: 7
    argNames:
    - oldhandle
    - newdbname
    - outfile
    - removeExpired
    - requireProfile
    - singleEntry
    - promptUser
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - char*
    - PRFileDesc*
    - PRBool
    - PRBool
    - PRBool
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 554
    functionDepth: 4
    functionLinenumber: 554
    functionLinenumberEnd: 669
    functionName: DBCK_ReconstructDBFromCerts
    functionSourceFile: /src/nss/cmd/dbck/dbrecover.c
    functionUses: 0
    functionsReached:
    - ReadDBContentVersionEntry
    - CERT_SetDBContentVersion
    - CERT_RedoHandlesForSubjects
    - PORT_ZNew
    - CERT_OpenCertDBFilename
    - PORT_Free
    - PR_fprintf
    - PR_NEXT_LINK
    - addCertToDB
    - freeDBEntryList
    - fprintf
    - PR_LIST_HEAD
    - PORT_Memset
    - LISTNODE_CAST
    - nsslowcert_TraverseDBEntries
    - fillDBEntryArray
    linkageType: ''
    returnType: NSSLOWCERTCertDBHandle
    signature: "NSSLOWCERTCertDBHandle *\nDBCK_ReconstructDBFromCerts(NSSLOWCERTCertDBHandle
      *oldhandle, char *newdbname,\n                            PRFileDesc *outfile,
      PRBool removeExpired,\n                            PRBool requireProfile, PRBool
      singleEntry,\n                            PRBool promptUser)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - node
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 143
    functionName: LISTNODE_CAST
    functionSourceFile: /src/nss/cmd/dbck/dbck.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LISTNODE_CAST(node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exit
      Src: /src/nss/cmd/dbck/dbck.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - progName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 156
    functionName: Usage
    functionSourceFile: /src/nss/cmd/dbck/dbck.c
    functionUses: 84
    functionsReached:
    - exit
    linkageType: ''
    returnType: void
    signature: void Usage(char *progName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exit
      Src: /src/nss/cmd/dbck/dbck.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 1
    argNames:
    - progName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 214
    functionName: LongUsage
    functionSourceFile: /src/nss/cmd/dbck/dbck.c
    functionUses: 4
    functionsReached:
    - exit
    linkageType: ''
    returnType: void
    signature: void LongUsage(char *progName)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:228,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:230,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:233,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - out
    - hexval
    argTypes:
    - PRFileDesc*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 234
    functionName: printHexString
    functionSourceFile: /src/nss/cmd/dbck/dbck.c
    functionUses: 0
    functionsReached:
    - PR_fprintf
    linkageType: ''
    returnType: void
    signature: void printHexString(PRFileDesc *out, SECItem *hexval)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SEC_GET_TRUST_FLAGS
      Src: /src/nss/cmd/dbck/dbck.c:241,1
    - Dst: SEC_GET_TRUST_FLAGS
      Src: /src/nss/cmd/dbck/dbck.c:242,1
    - Dst: SEC_GET_TRUST_FLAGS
      Src: /src/nss/cmd/dbck/dbck.c:243,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:245,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:247,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:249,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:251,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:252,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:253,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:254,1
    - Dst: printHexString
      Src: /src/nss/cmd/dbck/dbck.c:255,1
    - Dst: DER_DecodeTimeChoice
      Src: /src/nss/cmd/dbck/dbck.c:260,1
    - Dst: DER_DecodeTimeChoice
      Src: /src/nss/cmd/dbck/dbck.c:261,1
    - Dst: PR_ExplodeTime
      Src: /src/nss/cmd/dbck/dbck.c:262,1
    - Dst: PR_ExplodeTime
      Src: /src/nss/cmd/dbck/dbck.c:263,1
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/dbck/dbck.c:264,1
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/dbck/dbck.c:265,1
    - Dst: PR_FormatTime
      Src: /src/nss/cmd/dbck/dbck.c:266,1
    - Dst: PR_FormatTime
      Src: /src/nss/cmd/dbck/dbck.c:267,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:268,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:270,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 3
    argNames:
    - cert
    - num
    - outfile
    argTypes:
    - CERTCertificate*
    - int
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 272
    functionName: dumpCertificate
    functionSourceFile: /src/nss/cmd/dbck/dbck.c
    functionUses: 3
    functionsReached:
    - PORT_Alloc
    - DER_DecodeTimeChoice
    - SEC_GET_TRUST_FLAGS
    - PR_fprintf
    - PR_FormatTime
    - PR_ExplodeTime
    - printHexString
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus dumpCertificate(CERTCertificate *cert, int num, PRFileDesc
      *outfile)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nsslowcert_DecodeDERCertificate
      Src: /src/nss/cmd/dbck/dbck.c:280,1
    - Dst: CERT_DecodeDERCertificate
      Src: /src/nss/cmd/dbck/dbck.c:284,1
    - Dst: fprintf
      Src: /src/nss/cmd/dbck/dbck.c:287,1
    - Dst: dumpCertificate
      Src: /src/nss/cmd/dbck/dbck.c:291,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/dbck/dbck.c:292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - entry
    - num
    - outfile
    argTypes:
    - certDBEntryCert*
    - int
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 294
    functionName: dumpCertEntry
    functionSourceFile: /src/nss/cmd/dbck/dbck.c
    functionUses: 0
    functionsReached:
    - nsslowcert_DecodeDERCertificate
    - dumpCertificate
    - fprintf
    - CERT_DecodeDERCertificate
    - CERT_DestroyCertificate
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus dumpCertEntry(certDBEntryCert *entry, int num, PRFileDesc
      *outfile)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CERT_DerNameToAscii
      Src: /src/nss/cmd/dbck/dbck.c:299,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:301,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:302,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:303,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:305,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:311,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:316,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:317,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/dbck/dbck.c:318,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - entry
    - num
    - outfile
    argTypes:
    - certDBEntrySubject*
    - int
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 320
    functionName: dumpSubjectEntry
    functionSourceFile: /src/nss/cmd/dbck/dbck.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - PR_fprintf
    - CERT_DerNameToAscii
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus dumpSubjectEntry(certDBEntrySubject *entry, int num, PRFileDesc
      *outfile)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:325,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:326,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - entry
    - num
    - outfile
    argTypes:
    - certDBEntryNickname*
    - int
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 329
    functionName: dumpNicknameEntry
    functionSourceFile: /src/nss/cmd/dbck/dbck.c
    functionUses: 0
    functionsReached:
    - PR_fprintf
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus dumpNicknameEntry(certDBEntryNickname *entry, int num, PRFileDesc
      *outfile)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:334,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:335,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:336,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:338,1
    - Dst: printHexString
      Src: /src/nss/cmd/dbck/dbck.c:339,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:340,1
    - Dst: printHexString
      Src: /src/nss/cmd/dbck/dbck.c:341,1
    - Dst: SECU_PrintAny
      Src: /src/nss/cmd/dbck/dbck.c:343,1
    - Dst: fflush
      Src: /src/nss/cmd/dbck/dbck.c:344,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:346,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:349,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - entry
    - num
    - outfile
    argTypes:
    - certDBEntrySMime*
    - int
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 331
    functionDepth: 6
    functionLinenumber: 331
    functionLinenumberEnd: 351
    functionName: dumpSMimeEntry
    functionSourceFile: /src/nss/cmd/dbck/dbck.c
    functionUses: 0
    functionsReached:
    - SECU_PrintAny
    - PR_fprintf
    - printHexString
    - fflush
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus dumpSMimeEntry(certDBEntrySMime *entry, int num, PRFileDesc
      *outfile)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/dbck/dbck.c:367,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/dbck/dbck.c:369,1
    - Dst: PR_LIST_HEAD
      Src: /src/nss/cmd/dbck/dbck.c:377,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/cmd/dbck/dbck.c:378,1
    - Dst: LISTNODE_CAST
      Src: /src/nss/cmd/dbck/dbck.c:379,1
    - Dst: CERT_NameFromDERCert
      Src: /src/nss/cmd/dbck/dbck.c:382,1
    - Dst: CERT_KeyFromDERCert
      Src: /src/nss/cmd/dbck/dbck.c:383,1
    - Dst: PR_LIST_HEAD
      Src: /src/nss/cmd/dbck/dbck.c:385,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/cmd/dbck/dbck.c:386,1
    - Dst: LISTNODE_CAST
      Src: /src/nss/cmd/dbck/dbck.c:387,1
    - Dst: SECITEM_ItemsAreEqual
      Src: /src/nss/cmd/dbck/dbck.c:389,1
    - Dst: SECITEM_ItemsAreEqual
      Src: /src/nss/cmd/dbck/dbck.c:395,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/dbck/dbck.c:406,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 1
    argNames:
    - dbArray
    argTypes:
    - certDBArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 408
    functionName: mapCertEntries
    functionSourceFile: /src/nss/cmd/dbck/dbck.c
    functionUses: 0
    functionsReached:
    - SECITEM_ItemsAreEqual
    - PORT_NewArena
    - PORT_FreeArena
    - PR_NEXT_LINK
    - CERT_KeyFromDERCert
    - PORT_SetError
    - CERT_NameFromDERCert
    - PR_LIST_HEAD
    - LISTNODE_CAST
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus mapCertEntries(certDBArray *dbArray)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PR_LIST_HEAD
      Src: /src/nss/cmd/dbck/dbck.c:418,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/cmd/dbck/dbck.c:419,1
    - Dst: LISTNODE_CAST
      Src: /src/nss/cmd/dbck/dbck.c:424,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/cmd/dbck/dbck.c:428,1
    - Dst: PR_LIST_HEAD
      Src: /src/nss/cmd/dbck/dbck.c:437,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/cmd/dbck/dbck.c:439,1
    - Dst: LISTNODE_CAST
      Src: /src/nss/cmd/dbck/dbck.c:443,1
    - Dst: PL_strcmp
      Src: /src/nss/cmd/dbck/dbck.c:445,1
    - Dst: SECITEM_ItemsAreEqual
      Src: /src/nss/cmd/dbck/dbck.c:448,1
    - Dst: PR_LIST_HEAD
      Src: /src/nss/cmd/dbck/dbck.c:471,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/cmd/dbck/dbck.c:473,1
    - Dst: LISTNODE_CAST
      Src: /src/nss/cmd/dbck/dbck.c:477,1
    - Dst: PL_strcmp
      Src: /src/nss/cmd/dbck/dbck.c:479,1
    - Dst: SECITEM_ItemsAreEqual
      Src: /src/nss/cmd/dbck/dbck.c:482,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 1
    argNames:
    - dbArray
    argTypes:
    - certDBArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 501
    functionName: mapSubjectEntries
    functionSourceFile: /src/nss/cmd/dbck/dbck.c
    functionUses: 0
    functionsReached:
    - SECITEM_ItemsAreEqual
    - PORT_ArenaAlloc
    - PR_NEXT_LINK
    - PL_strcmp
    - PR_LIST_HEAD
    - LISTNODE_CAST
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus mapSubjectEntries(certDBArray *dbArray)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:509,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:511,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - info
    - str
    - num
    argTypes:
    - dbDebugInfo*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 513
    functionName: printnode
    functionSourceFile: /src/nss/cmd/dbck/dbck.c
    functionUses: 0
    functionsReached:
    - PR_fprintf
    linkageType: ''
    returnType: void
    signature: void printnode(dbDebugInfo *info, const char *str, int num)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: printnode
      Src: /src/nss/cmd/dbck/dbck.c:520,1
    - Dst: printnode
      Src: /src/nss/cmd/dbck/dbck.c:522,1
    - Dst: printnode
      Src: /src/nss/cmd/dbck/dbck.c:526,1
    - Dst: printnode
      Src: /src/nss/cmd/dbck/dbck.c:528,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - info
    - mapPtr
    - indent
    argTypes:
    - dbDebugInfo*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 515
    functionDepth: 2
    functionLinenumber: 515
    functionLinenumberEnd: 533
    functionName: map_handle_is_ok
    functionSourceFile: /src/nss/cmd/dbck/dbck.c
    functionUses: 0
    functionsReached:
    - printnode
    linkageType: ''
    returnType: PRBool
    signature: PRBool map_handle_is_ok(dbDebugInfo *info, void *mapPtr, int indent)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: map_handle_is_ok
      Src: /src/nss/cmd/dbck/dbck.c:557,1
    - Dst: print_subject_graph
      Src: /src/nss/cmd/dbck/dbck.c:559,1
    - Dst: printnode
      Src: /src/nss/cmd/dbck/dbck.c:562,1
    - Dst: printnode
      Src: /src/nss/cmd/dbck/dbck.c:566,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - info
    - smimeMap
    - direction
    argTypes:
    - dbDebugInfo*
    - certDBEntryMap*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 549
    functionDepth: 3
    functionLinenumber: 549
    functionLinenumberEnd: 568
    functionName: print_smime_graph
    functionSourceFile: /src/nss/cmd/dbck/dbck.c
    functionUses: 0
    functionsReached:
    - printnode
    - print_subject_graph
    - map_handle_is_ok
    linkageType: ''
    returnType: void
    signature: void print_smime_graph(dbDebugInfo *info, certDBEntryMap *smimeMap,
      int direction)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: map_handle_is_ok
      Src: /src/nss/cmd/dbck/dbck.c:582,1
    - Dst: print_subject_graph
      Src: /src/nss/cmd/dbck/dbck.c:584,1
    - Dst: printnode
      Src: /src/nss/cmd/dbck/dbck.c:587,1
    - Dst: printnode
      Src: /src/nss/cmd/dbck/dbck.c:591,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - info
    - nickMap
    - direction
    argTypes:
    - dbDebugInfo*
    - certDBEntryMap*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 574
    functionDepth: 3
    functionLinenumber: 574
    functionLinenumberEnd: 593
    functionName: print_nickname_graph
    functionSourceFile: /src/nss/cmd/dbck/dbck.c
    functionUses: 0
    functionsReached:
    - printnode
    - print_subject_graph
    - map_handle_is_ok
    linkageType: ''
    returnType: void
    signature: void print_nickname_graph(dbDebugInfo *info, certDBEntryMap *nickMap,
      int direction)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: map_handle_is_ok
      Src: /src/nss/cmd/dbck/dbck.c:629,1
    - Dst: print_cert_graph
      Src: /src/nss/cmd/dbck/dbck.c:632,1
    - Dst: printnode
      Src: /src/nss/cmd/dbck/dbck.c:638,1
    - Dst: printnode
      Src: /src/nss/cmd/dbck/dbck.c:640,1
    - Dst: printnode
      Src: /src/nss/cmd/dbck/dbck.c:645,1
    - Dst: map_handle_is_ok
      Src: /src/nss/cmd/dbck/dbck.c:648,1
    - Dst: print_nickname_graph
      Src: /src/nss/cmd/dbck/dbck.c:651,1
    - Dst: map_handle_is_ok
      Src: /src/nss/cmd/dbck/dbck.c:656,1
    - Dst: print_smime_graph
      Src: /src/nss/cmd/dbck/dbck.c:659,1
    - Dst: printnode
      Src: /src/nss/cmd/dbck/dbck.c:663,1
    - Dst: printnode
      Src: /src/nss/cmd/dbck/dbck.c:672,1
    - Dst: printnode
      Src: /src/nss/cmd/dbck/dbck.c:674,1
    - Dst: printnode
      Src: /src/nss/cmd/dbck/dbck.c:676,1
    - Dst: map_handle_is_ok
      Src: /src/nss/cmd/dbck/dbck.c:678,1
    - Dst: print_cert_graph
      Src: /src/nss/cmd/dbck/dbck.c:681,1
    - Dst: printnode
      Src: /src/nss/cmd/dbck/dbck.c:682,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 55
    argCount: 5
    argNames:
    - info
    - subjMap
    - direction
    - optindex
    - opttype
    argTypes:
    - dbDebugInfo*
    - certDBSubjectEntryMap*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 599
    functionDepth: 4
    functionLinenumber: 599
    functionLinenumberEnd: 686
    functionName: print_subject_graph
    functionSourceFile: /src/nss/cmd/dbck/dbck.c
    functionUses: 2
    functionsReached:
    - printnode
    - print_nickname_graph
    - print_smime_graph
    - print_cert_graph
    - map_handle_is_ok
    linkageType: ''
    returnType: void
    signature: "void print_subject_graph(dbDebugInfo *info, certDBSubjectEntryMap
      *subjMap,\n                    int direction, int optindex, int opttype)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printnode
      Src: /src/nss/cmd/dbck/dbck.c:698,1
    - Dst: printnode
      Src: /src/nss/cmd/dbck/dbck.c:703,1
    - Dst: map_handle_is_ok
      Src: /src/nss/cmd/dbck/dbck.c:705,1
    - Dst: print_subject_graph
      Src: /src/nss/cmd/dbck/dbck.c:707,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - info
    - certMap
    - direction
    argTypes:
    - dbDebugInfo*
    - certDBEntryMap*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 692
    functionDepth: 5
    functionLinenumber: 692
    functionLinenumberEnd: 711
    functionName: print_cert_graph
    functionSourceFile: /src/nss/cmd/dbck/dbck.c
    functionUses: 1
    functionsReached:
    - printnode
    - print_subject_graph
    - map_handle_is_ok
    linkageType: ''
    returnType: void
    signature: void print_cert_graph(dbDebugInfo *info, certDBEntryMap *certMap, int
      direction)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_LIST_HEAD
      Src: /src/nss/cmd/dbck/dbck.c:734,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/cmd/dbck/dbck.c:735,1
    - Dst: LISTNODE_CAST
      Src: /src/nss/cmd/dbck/dbck.c:737,1
    - Dst: print_cert_graph
      Src: /src/nss/cmd/dbck/dbck.c:739,1
    - Dst: printnode
      Src: /src/nss/cmd/dbck/dbck.c:740,1
    - Dst: printnode
      Src: /src/nss/cmd/dbck/dbck.c:742,1
    - Dst: PR_LIST_HEAD
      Src: /src/nss/cmd/dbck/dbck.c:745,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/cmd/dbck/dbck.c:746,1
    - Dst: LISTNODE_CAST
      Src: /src/nss/cmd/dbck/dbck.c:748,1
    - Dst: print_subject_graph
      Src: /src/nss/cmd/dbck/dbck.c:750,1
    - Dst: printnode
      Src: /src/nss/cmd/dbck/dbck.c:751,1
    - Dst: printnode
      Src: /src/nss/cmd/dbck/dbck.c:753,1
    - Dst: PR_LIST_HEAD
      Src: /src/nss/cmd/dbck/dbck.c:756,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/cmd/dbck/dbck.c:757,1
    - Dst: LISTNODE_CAST
      Src: /src/nss/cmd/dbck/dbck.c:759,1
    - Dst: print_nickname_graph
      Src: /src/nss/cmd/dbck/dbck.c:761,1
    - Dst: printnode
      Src: /src/nss/cmd/dbck/dbck.c:762,1
    - Dst: printnode
      Src: /src/nss/cmd/dbck/dbck.c:764,1
    - Dst: PR_LIST_HEAD
      Src: /src/nss/cmd/dbck/dbck.c:767,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/cmd/dbck/dbck.c:768,1
    - Dst: LISTNODE_CAST
      Src: /src/nss/cmd/dbck/dbck.c:770,1
    - Dst: print_smime_graph
      Src: /src/nss/cmd/dbck/dbck.c:774,1
    - Dst: printnode
      Src: /src/nss/cmd/dbck/dbck.c:775,1
    - Dst: printnode
      Src: /src/nss/cmd/dbck/dbck.c:777,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 2
    argNames:
    - dbArray
    - info
    argTypes:
    - certDBArray*
    - dbDebugInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 713
    functionDepth: 6
    functionLinenumber: 713
    functionLinenumberEnd: 780
    functionName: computeDBGraph
    functionSourceFile: /src/nss/cmd/dbck/dbck.c
    functionUses: 0
    functionsReached:
    - printnode
    - PR_NEXT_LINK
    - print_subject_graph
    - print_nickname_graph
    - print_smime_graph
    - print_cert_graph
    - PR_LIST_HEAD
    - LISTNODE_CAST
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus computeDBGraph(certDBArray *dbArray, dbDebugInfo *info)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PR_LIST_HEAD
      Src: /src/nss/cmd/dbck/dbck.c:796,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/cmd/dbck/dbck.c:797,1
    - Dst: LISTNODE_CAST
      Src: /src/nss/cmd/dbck/dbck.c:798,1
    - Dst: dumpCertEntry
      Src: /src/nss/cmd/dbck/dbck.c:800,1
    - Dst: map_handle_is_ok
      Src: /src/nss/cmd/dbck/dbck.c:802,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:805,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:807,1
    - Dst: PR_LIST_HEAD
      Src: /src/nss/cmd/dbck/dbck.c:811,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/cmd/dbck/dbck.c:812,1
    - Dst: LISTNODE_CAST
      Src: /src/nss/cmd/dbck/dbck.c:814,1
    - Dst: dumpSubjectEntry
      Src: /src/nss/cmd/dbck/dbck.c:817,1
    - Dst: map_handle_is_ok
      Src: /src/nss/cmd/dbck/dbck.c:821,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:823,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:825,1
    - Dst: map_handle_is_ok
      Src: /src/nss/cmd/dbck/dbck.c:831,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:833,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:835,1
    - Dst: map_handle_is_ok
      Src: /src/nss/cmd/dbck/dbck.c:844,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:846,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:848,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:852,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:854,1
    - Dst: PR_LIST_HEAD
      Src: /src/nss/cmd/dbck/dbck.c:856,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/cmd/dbck/dbck.c:857,1
    - Dst: LISTNODE_CAST
      Src: /src/nss/cmd/dbck/dbck.c:858,1
    - Dst: dumpNicknameEntry
      Src: /src/nss/cmd/dbck/dbck.c:860,1
    - Dst: map_handle_is_ok
      Src: /src/nss/cmd/dbck/dbck.c:862,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:864,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:866,1
    - Dst: PR_LIST_HEAD
      Src: /src/nss/cmd/dbck/dbck.c:869,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/cmd/dbck/dbck.c:870,1
    - Dst: LISTNODE_CAST
      Src: /src/nss/cmd/dbck/dbck.c:871,1
    - Dst: dumpSMimeEntry
      Src: /src/nss/cmd/dbck/dbck.c:873,1
    - Dst: map_handle_is_ok
      Src: /src/nss/cmd/dbck/dbck.c:874,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:876,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:878,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:881,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 72
    argCount: 2
    argNames:
    - dbArray
    - info
    argTypes:
    - certDBArray*
    - dbDebugInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 785
    functionDepth: 7
    functionLinenumber: 785
    functionLinenumberEnd: 882
    functionName: verboseOutput
    functionSourceFile: /src/nss/cmd/dbck/dbck.c
    functionUses: 0
    functionsReached:
    - dumpNicknameEntry
    - dumpSubjectEntry
    - dumpCertEntry
    - PR_fprintf
    - PR_NEXT_LINK
    - map_handle_is_ok
    - PR_LIST_HEAD
    - LISTNODE_CAST
    - dumpSMimeEntry
    linkageType: ''
    returnType: void
    signature: void verboseOutput(certDBArray *dbArray, dbDebugInfo *info)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/cmd/dbck/dbck.c:896,1
    - Dst: nsslowcert_DecodeAnyDBEntry
      Src: /src/nss/cmd/dbck/dbck.c:899,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/cmd/dbck/dbck.c:903,1
    - Dst: PORT_Memset
      Src: /src/nss/cmd/dbck/dbck.c:907,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/dbck/dbck.c:908,1
    - Dst: PR_INIT_CLIST
      Src: /src/nss/cmd/dbck/dbck.c:912,1
    - Dst: PR_INSERT_BEFORE
      Src: /src/nss/cmd/dbck/dbck.c:913,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 4
    argNames:
    - dbdata
    - dbkey
    - entryType
    - pdata
    argTypes:
    - SECItem*
    - SECItem*
    - certDBEntryType
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 887
    functionDepth: 1
    functionLinenumber: 887
    functionLinenumberEnd: 915
    functionName: SEC_GetCertDBEntryList
    functionSourceFile: /src/nss/cmd/dbck/dbck.c
    functionUses: 0
    functionsReached:
    - PORT_FreeArena
    - PR_INSERT_BEFORE
    - nsslowcert_DecodeAnyDBEntry
    - PORT_SetError
    - PORT_ArenaZNew
    - PORT_Memset
    - PR_INIT_CLIST
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SEC_GetCertDBEntryList(SECItem *dbdata, SECItem *dbkey,\n
      \                      certDBEntryType entryType, void *pdata)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_INIT_CLIST
      Src: /src/nss/cmd/dbck/dbck.c:931,1
    - Dst: nsslowcert_TraverseDBEntries
      Src: /src/nss/cmd/dbck/dbck.c:933,1
    - Dst: PR_LIST_HEAD
      Src: /src/nss/cmd/dbck/dbck.c:935,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/cmd/dbck/dbck.c:936,1
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/dbck/dbck.c:940,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/cmd/dbck/dbck.c:941,1
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/dbck/dbck.c:949,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/cmd/dbck/dbck.c:950,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 3
    argNames:
    - handle
    - type
    - list
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - certDBEntryType
    - certDBEntryListNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 917
    functionDepth: 1
    functionLinenumber: 917
    functionLinenumberEnd: 958
    functionName: fillDBEntryArray
    functionSourceFile: /src/nss/cmd/dbck/dbck.c
    functionUses: 1
    functionsReached:
    - PORT_NewArena
    - PR_NEXT_LINK
    - PORT_ArenaZNew
    - PR_LIST_HEAD
    - nsslowcert_TraverseDBEntries
    - PR_INIT_CLIST
    linkageType: ''
    returnType: int
    signature: "int fillDBEntryArray(NSSLOWCERTCertDBHandle *handle, certDBEntryType
      type,\n                 certDBEntryListNode *list)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LIST_HEAD
      Src: /src/nss/cmd/dbck/dbck.c:967,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/cmd/dbck/dbck.c:968,1
    - Dst: PR_REMOVE_LINK
      Src: /src/nss/cmd/dbck/dbck.c:971,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/dbck/dbck.c:972,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/dbck/dbck.c:973,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - list
    argTypes:
    - PRCList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 960
    functionDepth: 1
    functionLinenumber: 960
    functionLinenumberEnd: 976
    functionName: freeDBEntryList
    functionSourceFile: /src/nss/cmd/dbck/dbck.c
    functionUses: 1
    functionsReached:
    - PR_LIST_HEAD
    - PORT_FreeArena
    - PR_NEXT_LINK
    - PR_REMOVE_LINK
    linkageType: ''
    returnType: void
    signature: void freeDBEntryList(PRCList *list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memset
      Src: /src/nss/cmd/dbck/dbck.c:989,1
    - Dst: PORT_Memset
      Src: /src/nss/cmd/dbck/dbck.c:990,1
    - Dst: fillDBEntryArray
      Src: /src/nss/cmd/dbck/dbck.c:997,1
    - Dst: fillDBEntryArray
      Src: /src/nss/cmd/dbck/dbck.c:999,1
    - Dst: fillDBEntryArray
      Src: /src/nss/cmd/dbck/dbck.c:1001,1
    - Dst: fillDBEntryArray
      Src: /src/nss/cmd/dbck/dbck.c:1003,1
    - Dst: fillDBEntryArray
      Src: /src/nss/cmd/dbck/dbck.c:1005,1
    - Dst: mapSubjectEntries
      Src: /src/nss/cmd/dbck/dbck.c:1009,1
    - Dst: mapCertEntries
      Src: /src/nss/cmd/dbck/dbck.c:1010,1
    - Dst: computeDBGraph
      Src: /src/nss/cmd/dbck/dbck.c:1011,1
    - Dst: PR_LIST_HEAD
      Src: /src/nss/cmd/dbck/dbck.c:1020,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/cmd/dbck/dbck.c:1021,1
    - Dst: LISTNODE_CAST
      Src: /src/nss/cmd/dbck/dbck.c:1023,1
    - Dst: verboseOutput
      Src: /src/nss/cmd/dbck/dbck.c:1029,1
    - Dst: freeDBEntryList
      Src: /src/nss/cmd/dbck/dbck.c:1032,1
    - Dst: freeDBEntryList
      Src: /src/nss/cmd/dbck/dbck.c:1033,1
    - Dst: freeDBEntryList
      Src: /src/nss/cmd/dbck/dbck.c:1034,1
    - Dst: freeDBEntryList
      Src: /src/nss/cmd/dbck/dbck.c:1035,1
    - Dst: freeDBEntryList
      Src: /src/nss/cmd/dbck/dbck.c:1036,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:1038,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:1039,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:1040,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:1042,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:1044,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:1046,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:1048,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:1050,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:1052,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:1056,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:1060,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:1063,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:1064,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:1070,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:1073,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:1074,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:1094,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:1105,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 59
    argCount: 3
    argNames:
    - handle
    - out
    - mailfile
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - PRFileDesc*
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 978
    functionDepth: 8
    functionLinenumber: 978
    functionLinenumberEnd: 1106
    functionName: DBCK_DebugDB
    functionSourceFile: /src/nss/cmd/dbck/dbck.c
    functionUses: 0
    functionsReached:
    - mapSubjectEntries
    - verboseOutput
    - PR_fprintf
    - PR_NEXT_LINK
    - mapCertEntries
    - freeDBEntryList
    - computeDBGraph
    - PR_LIST_HEAD
    - PORT_Memset
    - LISTNODE_CAST
    - fillDBEntryArray
    linkageType: ''
    returnType: void
    signature: "void DBCK_DebugDB(NSSLOWCERTCertDBHandle *handle, PRFileDesc *out,\n
      \            PRFileDesc *mailfile)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PR_smprintf
      Src: /src/nss/cmd/dbck/dbck.c:1183,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/dbck/dbck.c:1185,1
    - Dst: PR_smprintf_free
      Src: /src/nss/cmd/dbck/dbck.c:1186,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - arg
    - dbVersion
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1189
      start: 1154
    functionDepth: 1
    functionLinenumber: 1154
    functionLinenumberEnd: 1189
    functionName: dbck_certdb_name_cb
    functionSourceFile: /src/nss/cmd/dbck/dbck.c
    functionUses: 0
    functionsReached:
    - PORT_Strdup
    - PR_smprintf_free
    - PR_smprintf
    linkageType: ''
    returnType: char
    signature: 'char *

      dbck_certdb_name_cb(void *arg, int dbVersion)'
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/nss/cmd/dbck/dbck.c:1212,1
    - Dst: SECU_ParseCommandLine
      Src: /src/nss/cmd/dbck/dbck.c:1215,1
    - Dst: Usage
      Src: /src/nss/cmd/dbck/dbck.c:1218,1
    - Dst: LongUsage
      Src: /src/nss/cmd/dbck/dbck.c:1221,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/dbck/dbck.c:1225,1
    - Dst: Usage
      Src: /src/nss/cmd/dbck/dbck.c:1226,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/dbck/dbck.c:1239,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/dbck/dbck.c:1241,1
    - Dst: PR_Open
      Src: /src/nss/cmd/dbck/dbck.c:1246,1
    - Dst: fprintf
      Src: /src/nss/cmd/dbck/dbck.c:1248,1
    - Dst: PR_Open
      Src: /src/nss/cmd/dbck/dbck.c:1256,1
    - Dst: fprintf
      Src: /src/nss/cmd/dbck/dbck.c:1259,1
    - Dst: SECU_ConfigDirectory
      Src: /src/nss/cmd/dbck/dbck.c:1269,1
    - Dst: SECU_ConfigDirectory
      Src: /src/nss/cmd/dbck/dbck.c:1272,1
    - Dst: PR_Init
      Src: /src/nss/cmd/dbck/dbck.c:1274,1
    - Dst: NSS_NoDB_Init
      Src: /src/nss/cmd/dbck/dbck.c:1275,1
    - Dst: fprintf
      Src: /src/nss/cmd/dbck/dbck.c:1277,1
    - Dst: PORT_ZNew
      Src: /src/nss/cmd/dbck/dbck.c:1281,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/dbck/dbck.c:1283,1
    - Dst: PR_smprintf
      Src: /src/nss/cmd/dbck/dbck.c:1292,1
    - Dst: PR_GetFileInfo
      Src: /src/nss/cmd/dbck/dbck.c:1294,1
    - Dst: fprintf
      Src: /src/nss/cmd/dbck/dbck.c:1295,1
    - Dst: CERT_OpenCertDBFilename
      Src: /src/nss/cmd/dbck/dbck.c:1298,1
    - Dst: SECU_CertDBNameCallback
      Src: /src/nss/cmd/dbck/dbck.c:1304,1
    - Dst: PR_GetFileInfo
      Src: /src/nss/cmd/dbck/dbck.c:1305,1
    - Dst: fprintf
      Src: /src/nss/cmd/dbck/dbck.c:1306,1
    - Dst: nsslowcert_OpenCertDB
      Src: /src/nss/cmd/dbck/dbck.c:1310,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/dbck/dbck.c:1320,1
    - Dst: DBCK_DebugDB
      Src: /src/nss/cmd/dbck/dbck.c:1325,1
    - Dst: DBCK_ReconstructDBFromCerts
      Src: /src/nss/cmd/dbck/dbck.c:1331,1
    - Dst: PR_Close
      Src: /src/nss/cmd/dbck/dbck.c:1340,1
    - Dst: PR_Close
      Src: /src/nss/cmd/dbck/dbck.c:1342,1
    - Dst: nsslowcert_ClosePermCertDB
      Src: /src/nss/cmd/dbck/dbck.c:1344,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/dbck/dbck.c:1345,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 94
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1348
      start: 1191
    functionDepth: 9
    functionLinenumber: 1191
    functionLinenumberEnd: 1348
    functionName: main
    functionSourceFile: /src/nss/cmd/dbck/dbck.c
    functionUses: 4
    functionsReached:
    - PORT_ZNew
    - fprintf
    - Usage
    - DBCK_DebugDB
    - LongUsage
    - PR_smprintf
    - strrchr
    - SECU_PrintError
    - PR_Init
    - PL_strdup
    - PR_Open
    - PR_GetFileInfo
    - PR_Close
    - SECU_ConfigDirectory
    - nsslowcert_ClosePermCertDB
    - NSS_NoDB_Init
    - nsslowcert_OpenCertDB
    - CERT_OpenCertDBFilename
    - PORT_Free
    - PR_fprintf
    - SECU_CertDBNameCallback
    - SECU_ParseCommandLine
    - DBCK_ReconstructDBFromCerts
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcase
      Src: /src/nss/cmd/tstclnt/tstclnt.c:123,1
    - Dst: strcase
      Src: /src/nss/cmd/tstclnt/tstclnt.c:124,1
    - Dst: strcase
      Src: /src/nss/cmd/tstclnt/tstclnt.c:125,1
    - Dst: strcase
      Src: /src/nss/cmd/tstclnt/tstclnt.c:126,1
    - Dst: strcase
      Src: /src/nss/cmd/tstclnt/tstclnt.c:127,1
    - Dst: strcase
      Src: /src/nss/cmd/tstclnt/tstclnt.c:128,1
    - Dst: strcase
      Src: /src/nss/cmd/tstclnt/tstclnt.c:129,1
    - Dst: strcase
      Src: /src/nss/cmd/tstclnt/tstclnt.c:130,1
    - Dst: strcase
      Src: /src/nss/cmd/tstclnt/tstclnt.c:131,1
    - Dst: strcase
      Src: /src/nss/cmd/tstclnt/tstclnt.c:132,1
    - Dst: strcase
      Src: /src/nss/cmd/tstclnt/tstclnt.c:133,1
    - Dst: strcase
      Src: /src/nss/cmd/tstclnt/tstclnt.c:134,1
    - Dst: strcase
      Src: /src/nss/cmd/tstclnt/tstclnt.c:135,1
    - Dst: strcase
      Src: /src/nss/cmd/tstclnt/tstclnt.c:136,1
    - Dst: strcase
      Src: /src/nss/cmd/tstclnt/tstclnt.c:137,1
    - Dst: strcase
      Src: /src/nss/cmd/tstclnt/tstclnt.c:138,1
    - Dst: strcase
      Src: /src/nss/cmd/tstclnt/tstclnt.c:139,1
    - Dst: strcase
      Src: /src/nss/cmd/tstclnt/tstclnt.c:140,1
    - Dst: strcase
      Src: /src/nss/cmd/tstclnt/tstclnt.c:141,1
    - Dst: strcase
      Src: /src/nss/cmd/tstclnt/tstclnt.c:142,1
    - Dst: strcase
      Src: /src/nss/cmd/tstclnt/tstclnt.c:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 1
    argNames:
    - scheme
    argTypes:
    - SSLSignatureScheme
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 151
    functionName: signatureSchemeName
    functionSourceFile: /src/nss/cmd/tstclnt/tstclnt.c
    functionUses: 0
    functionsReached:
    - strcase
    linkageType: ''
    returnType: char
    signature: 'char *

      signatureSchemeName(SSLSignatureScheme scheme)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: strcase
    functionSourceFile: /src/nss/cmd/tstclnt/tstclnt.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: strcase(x)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SSL_GetStatistics
      Src: /src/nss/cmd/tstclnt/tstclnt.c:159,1
    - Dst: SSL_GetChannelInfo
      Src: /src/nss/cmd/tstclnt/tstclnt.c:164,1
    - Dst: SSL_GetCipherSuiteInfo
      Src: /src/nss/cmd/tstclnt/tstclnt.c:168,1
    - Dst: FPRINTF
      Src: /src/nss/cmd/tstclnt/tstclnt.c:171,1
    - Dst: FPRINTF
      Src: /src/nss/cmd/tstclnt/tstclnt.c:177,1
    - Dst: signatureSchemeName
      Src: /src/nss/cmd/tstclnt/tstclnt.c:185,1
    - Dst: SSL_RevealCert
      Src: /src/nss/cmd/tstclnt/tstclnt.c:188,1
    - Dst: CERT_NameToAscii
      Src: /src/nss/cmd/tstclnt/tstclnt.c:190,1
    - Dst: CERT_NameToAscii
      Src: /src/nss/cmd/tstclnt/tstclnt.c:191,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:193,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/tstclnt/tstclnt.c:194,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:197,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/tstclnt/tstclnt.c:198,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/tstclnt/tstclnt.c:200,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:203,1
    - Dst: SSL_PeerStapledOCSPResponses
      Src: /src/nss/cmd/tstclnt/tstclnt.c:209,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:211,1
    - Dst: SSL_PeerSignedCertTimestamps
      Src: /src/nss/cmd/tstclnt/tstclnt.c:214,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:216,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:221,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 1
    argNames:
    - fd
    argTypes:
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 223
    functionName: printSecurityInfo
    functionSourceFile: /src/nss/cmd/tstclnt/tstclnt.c
    functionUses: 2
    functionsReached:
    - SSL_RevealCert
    - SSL_GetStatistics
    - CERT_NameToAscii
    - SSL_PeerStapledOCSPResponses
    - SSL_PeerSignedCertTimestamps
    - PORT_Free
    - SSL_GetCipherSuiteInfo
    - fprintf
    - signatureSchemeName
    - CERT_DestroyCertificate
    - FPRINTF
    - SSL_GetChannelInfo
    linkageType: ''
    returnType: void
    signature: void printSecurityInfo(PRFileDesc *fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 242
    functionName: PrintUsageHeader
    functionSourceFile: /src/nss/cmd/tstclnt/tstclnt.c
    functionUses: 2
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void PrintUsageHeader()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:247,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:252,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:253,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:254,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:257,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:258,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:259,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:260,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:261,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:262,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:263,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:265,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:271,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:272,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:273,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:274,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:275,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:276,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:277,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:278,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:279,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:280,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:281,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:282,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:283,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:284,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:285,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:286,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:297,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:298,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:299,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:300,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:301,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:302,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:303,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:304,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:305,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:306,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:307,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:308,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:313,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:322,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:323,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:324,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:325,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:326,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:329,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:336,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 343
    functionName: PrintParameterUsage
    functionSourceFile: /src/nss/cmd/tstclnt/tstclnt.c
    functionUses: 1
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void PrintParameterUsage()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PrintUsageHeader
      Src: /src/nss/cmd/tstclnt/tstclnt.c:348,1
    - Dst: PrintParameterUsage
      Src: /src/nss/cmd/tstclnt/tstclnt.c:349,1
    - Dst: exit
      Src: /src/nss/cmd/tstclnt/tstclnt.c:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 351
    functionName: Usage
    functionSourceFile: /src/nss/cmd/tstclnt/tstclnt.c
    functionUses: 86
    functionsReached:
    - PrintParameterUsage
    - PrintUsageHeader
    - exit
    linkageType: ''
    returnType: void
    signature: void Usage()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PrintUsageHeader
      Src: /src/nss/cmd/tstclnt/tstclnt.c:356,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:357,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:359,1
    - Dst: exit
      Src: /src/nss/cmd/tstclnt/tstclnt.c:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 380
    functionName: PrintCipherUsage
    functionSourceFile: /src/nss/cmd/tstclnt/tstclnt.c
    functionUses: 1
    functionsReached:
    - fprintf
    - PrintUsageHeader
    - exit
    linkageType: ''
    returnType: void
    signature: void PrintCipherUsage()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_MillisecondsToInterval
      Src: /src/nss/cmd/tstclnt/tstclnt.c:385,1
    - Dst: PR_Sleep
      Src: /src/nss/cmd/tstclnt/tstclnt.c:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - milli
    argTypes:
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 387
    functionName: milliPause
    functionSourceFile: /src/nss/cmd/tstclnt/tstclnt.c
    functionUses: 0
    functionsReached:
    - PR_Sleep
    - PR_MillisecondsToInterval
    linkageType: ''
    returnType: void
    signature: void milliPause(PRUint32 milli)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_GetImplementedCiphers
      Src: /src/nss/cmd/tstclnt/tstclnt.c:392,1
    - Dst: SSL_GetNumImplementedCiphers
      Src: /src/nss/cmd/tstclnt/tstclnt.c:393,1
    - Dst: SSL_CipherPrefSetDefault
      Src: /src/nss/cmd/tstclnt/tstclnt.c:399,1
    - Dst: PR_GetError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:401,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:402,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/tstclnt/tstclnt.c:404,1
    - Dst: exit
      Src: /src/nss/cmd/tstclnt/tstclnt.c:405,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 408
    functionName: disableAllSSLCiphers
    functionSourceFile: /src/nss/cmd/tstclnt/tstclnt.c
    functionUses: 1
    functionsReached:
    - SSL_CipherPrefSetDefault
    - SECU_Strerror
    - exit
    - fprintf
    - SSL_GetImplementedCiphers
    - SSL_GetNumImplementedCiphers
    - PR_GetError
    linkageType: ''
    returnType: void
    signature: void disableAllSSLCiphers()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:432,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:434,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/tstclnt/tstclnt.c:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - arg
    - socket
    argTypes:
    - void*
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 437
    functionName: ownBadCertHandler
    functionSourceFile: /src/nss/cmd/tstclnt/tstclnt.c
    functionUses: 0
    functionsReached:
    - fprintf
    - SECU_Strerror
    - PR_GetError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ownBadCertHandler(void *arg, PRFileDesc *socket)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CERT_PKIXVerifyCert
      Src: /src/nss/cmd/tstclnt/tstclnt.c:540,1
    - Dst: CERT_PKIXVerifyCert
      Src: /src/nss/cmd/tstclnt/tstclnt.c:563,1
    - Dst: CERT_PKIXVerifyCert
      Src: /src/nss/cmd/tstclnt/tstclnt.c:576,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 51
    argCount: 2
    argNames:
    - cert
    - sca
    argTypes:
    - CERTCertificate*
    - ServerCertAuth*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 586
    functionName: verifyFromSideChannel
    functionSourceFile: /src/nss/cmd/tstclnt/tstclnt.c
    functionUses: 0
    functionsReached:
    - CERT_PKIXVerifyCert
    linkageType: ''
    returnType: void
    signature: void verifyFromSideChannel(CERTCertificate *cert, ServerCertAuth *sca)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BTOA_DataToAscii
      Src: /src/nss/cmd/tstclnt/tstclnt.c:591,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:593,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/tstclnt/tstclnt.c:594,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cert
    argTypes:
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 596
    functionName: dumpCertificatePEM
    functionSourceFile: /src/nss/cmd/tstclnt/tstclnt.c
    functionUses: 0
    functionsReached:
    - fprintf
    - BTOA_DataToAscii
    - PORT_Free
    linkageType: ''
    returnType: void
    signature: void dumpCertificatePEM(CERTCertificate *cert)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: SECU_EnableWrap
      Src: /src/nss/cmd/tstclnt/tstclnt.c:619,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:621,1
    - Dst: SSL_PeerCertificateChain
      Src: /src/nss/cmd/tstclnt/tstclnt.c:622,1
    - Dst: CERT_LIST_HEAD
      Src: /src/nss/cmd/tstclnt/tstclnt.c:624,1
    - Dst: CERT_LIST_END
      Src: /src/nss/cmd/tstclnt/tstclnt.c:625,1
    - Dst: SECU_PrintSignedContent
      Src: /src/nss/cmd/tstclnt/tstclnt.c:627,1
    - Dst: dumpCertificatePEM
      Src: /src/nss/cmd/tstclnt/tstclnt.c:630,1
    - Dst: CERT_LIST_NEXT
      Src: /src/nss/cmd/tstclnt/tstclnt.c:632,1
    - Dst: SSL_RevealCert
      Src: /src/nss/cmd/tstclnt/tstclnt.c:637,1
    - Dst: CERT_CertChainFromCert
      Src: /src/nss/cmd/tstclnt/tstclnt.c:639,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:644,1
    - Dst: CERT_FindCertByDERCert
      Src: /src/nss/cmd/tstclnt/tstclnt.c:648,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/cmd/tstclnt/tstclnt.c:648,1
    - Dst: CERT_LIST_HEAD
      Src: /src/nss/cmd/tstclnt/tstclnt.c:650,1
    - Dst: CERT_LIST_END
      Src: /src/nss/cmd/tstclnt/tstclnt.c:651,1
    - Dst: CERT_CompareCerts
      Src: /src/nss/cmd/tstclnt/tstclnt.c:653,1
    - Dst: CERT_LIST_NEXT
      Src: /src/nss/cmd/tstclnt/tstclnt.c:657,1
    - Dst: SECU_PrintSignedContent
      Src: /src/nss/cmd/tstclnt/tstclnt.c:661,1
    - Dst: dumpCertificatePEM
      Src: /src/nss/cmd/tstclnt/tstclnt.c:664,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/tstclnt/tstclnt.c:667,1
    - Dst: CERT_DestroyCertificateList
      Src: /src/nss/cmd/tstclnt/tstclnt.c:669,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/tstclnt/tstclnt.c:672,1
    - Dst: CERT_DestroyCertList
      Src: /src/nss/cmd/tstclnt/tstclnt.c:675,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:679,1
    - Dst: fflush
      Src: /src/nss/cmd/tstclnt/tstclnt.c:680,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 60
    argCount: 1
    argNames:
    - fd
    argTypes:
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 598
    functionDepth: 6
    functionLinenumber: 598
    functionLinenumberEnd: 681
    functionName: dumpServerCertificateChain
    functionSourceFile: /src/nss/cmd/tstclnt/tstclnt.c
    functionUses: 0
    functionsReached:
    - CERT_LIST_NEXT
    - SSL_RevealCert
    - SSL_PeerCertificateChain
    - CERT_LIST_HEAD
    - dumpCertificatePEM
    - fflush
    - CERT_CompareCerts
    - CERT_DestroyCertList
    - fprintf
    - CERT_LIST_END
    - CERT_DestroyCertificateList
    - CERT_GetDefaultCertDB
    - CERT_DestroyCertificate
    - SECU_EnableWrap
    - SECU_PrintSignedContent
    - CERT_CertChainFromCert
    - CERT_FindCertByDERCert
    linkageType: ''
    returnType: void
    signature: void dumpServerCertificateChain(PRFileDesc *fd)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: dumpServerCertificateChain
      Src: /src/nss/cmd/tstclnt/tstclnt.c:690,1
    - Dst: SSL_AuthCertificate
      Src: /src/nss/cmd/tstclnt/tstclnt.c:699,1
    - Dst: SSL_RevealCert
      Src: /src/nss/cmd/tstclnt/tstclnt.c:708,1
    - Dst: exit
      Src: /src/nss/cmd/tstclnt/tstclnt.c:710,1
    - Dst: SSL_PeerStapledOCSPResponses
      Src: /src/nss/cmd/tstclnt/tstclnt.c:713,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:716,1
    - Dst: CERT_CacheOCSPResponseFromSideChannel
      Src: /src/nss/cmd/tstclnt/tstclnt.c:717,1
    - Dst: PR_Now
      Src: /src/nss/cmd/tstclnt/tstclnt.c:718,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/tstclnt/tstclnt.c:720,1
    - Dst: PR_GetError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:720,1
    - Dst: verifyFromSideChannel
      Src: /src/nss/cmd/tstclnt/tstclnt.c:725,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/tstclnt/tstclnt.c:726,1
    - Dst: FPRINTF
      Src: /src/nss/cmd/tstclnt/tstclnt.c:734,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/tstclnt/tstclnt.c:737,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 4
    argNames:
    - arg
    - fd
    - checkSig
    - isServer
    argTypes:
    - void*
    - PRFileDesc*
    - PRBool
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 683
    functionDepth: 7
    functionLinenumber: 683
    functionLinenumberEnd: 740
    functionName: ownAuthCertificate
    functionSourceFile: /src/nss/cmd/tstclnt/tstclnt.c
    functionUses: 0
    functionsReached:
    - SSL_RevealCert
    - PORT_Assert
    - SSL_PeerStapledOCSPResponses
    - dumpServerCertificateChain
    - exit
    - SSL_AuthCertificate
    - PR_Now
    - PORT_SetError
    - verifyFromSideChannel
    - CERT_CacheOCSPResponseFromSideChannel
    - CERT_DestroyCertificate
    - PR_GetError
    - FPRINTF
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ownAuthCertificate(void *arg, PRFileDesc *fd, PRBool checkSig,\n
      \                  PRBool isServer)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSS_GetClientAuthData
      Src: /src/nss/cmd/tstclnt/tstclnt.c:758,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:760,1
    - Dst: SSL_ClientCertCallbackComplete
      Src: /src/nss/cmd/tstclnt/tstclnt.c:762,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - fd
    - args
    argTypes:
    - PRFileDesc*
    - struct clientCertAsyncParamsStr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 752
    functionDepth: 1
    functionLinenumber: 752
    functionLinenumberEnd: 763
    functionName: own_CompleteClientAuthData
    functionSourceFile: /src/nss/cmd/tstclnt/tstclnt.c
    functionUses: 0
    functionsReached:
    - fprintf
    - NSS_GetClientAuthData
    - SSL_ClientCertCallbackComplete
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus own_CompleteClientAuthData(PRFileDesc *fd, struct clientCertAsyncParamsStr
      *args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: own_CompleteClientAuthData
      Src: /src/nss/cmd/tstclnt/tstclnt.c:772,1
    - Dst: CERT_FreeDistNames
      Src: /src/nss/cmd/tstclnt/tstclnt.c:773,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/tstclnt/tstclnt.c:774,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - fd
    argTypes:
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 765
    functionDepth: 2
    functionLinenumber: 765
    functionLinenumberEnd: 777
    functionName: restartHandshakeAfterClientCertIfNeeded
    functionSourceFile: /src/nss/cmd/tstclnt/tstclnt.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - CERT_FreeDistNames
    - own_CompleteClientAuthData
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus restartHandshakeAfterClientCertIfNeeded(PRFileDesc *fd)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PR_ASSERT
      Src: /src/nss/cmd/tstclnt/tstclnt.c:787,1
    - Dst: PR_ASSERT
      Src: /src/nss/cmd/tstclnt/tstclnt.c:788,1
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/tstclnt/tstclnt.c:791,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:793,1
    - Dst: exit
      Src: /src/nss/cmd/tstclnt/tstclnt.c:794,1
    - Dst: CERT_DupDistNames
      Src: /src/nss/cmd/tstclnt/tstclnt.c:798,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:800,1
    - Dst: exit
      Src: /src/nss/cmd/tstclnt/tstclnt.c:801,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:808,1
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/tstclnt/tstclnt.c:812,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/cmd/tstclnt/tstclnt.c:818,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/cmd/tstclnt/tstclnt.c:820,1
    - Dst: CERT_NameToAscii
      Src: /src/nss/cmd/tstclnt/tstclnt.c:824,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:827,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/tstclnt/tstclnt.c:828,1
    - Dst: PORT_FreeArena
      Src: /src/nss/cmd/tstclnt/tstclnt.c:831,1
    - Dst: NSS_GetClientAuthData
      Src: /src/nss/cmd/tstclnt/tstclnt.c:835,1
    - Dst: CERT_NameToAscii
      Src: /src/nss/cmd/tstclnt/tstclnt.c:837,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:839,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/tstclnt/tstclnt.c:840,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:843,1
    - Dst: NSS_GetClientAuthData
      Src: /src/nss/cmd/tstclnt/tstclnt.c:847,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 51
    argCount: 5
    argNames:
    - arg
    - socket
    - caNames
    - pRetCert
    - pRetKey
    argTypes:
    - void*
    - PRFileDesc*
    - struct CERTDistNamesStr*
    - struct CERTCertificateStr**
    - struct SECKEYPrivateKeyStr**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 779
    functionDepth: 1
    functionLinenumber: 779
    functionLinenumberEnd: 848
    functionName: own_GetClientAuthData
    functionSourceFile: /src/nss/cmd/tstclnt/tstclnt.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - CERT_NameToAscii
    - PORT_NewArena
    - PORT_FreeArena
    - CERT_DupDistNames
    - PORT_Free
    - exit
    - PR_ASSERT
    - fprintf
    - SEC_QuickDERDecodeItem
    - NSS_GetClientAuthData
    - SEC_ASN1_GET
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus own_GetClientAuthData(void *arg,\n                      PRFileDesc
      *socket,\n                      struct CERTDistNamesStr *caNames,\n                      struct
      CERTCertificateStr **pRetCert,\n                      struct SECKEYPrivateKeyStr
      **pRetKey)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PR_Open
      Src: /src/nss/cmd/tstclnt/tstclnt.c:860,1
    - Dst: PR_GetSpecialFD
      Src: /src/nss/cmd/tstclnt/tstclnt.c:862,1
    - Dst: _setmode
      Src: /src/nss/cmd/tstclnt/tstclnt.c:870,1
    - Dst: _fileno
      Src: /src/nss/cmd/tstclnt/tstclnt.c:870,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:872,1
    - Dst: PR_Read
      Src: /src/nss/cmd/tstclnt/tstclnt.c:881,1
    - Dst: PR_Send
      Src: /src/nss/cmd/tstclnt/tstclnt.c:884,1
    - Dst: PR_Close
      Src: /src/nss/cmd/tstclnt/tstclnt.c:886,1
    - Dst: PR_Close
      Src: /src/nss/cmd/tstclnt/tstclnt.c:888,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 851
    functionDepth: 1
    functionLinenumber: 851
    functionLinenumberEnd: 890
    functionName: thread_main
    functionSourceFile: /src/nss/cmd/tstclnt/tstclnt.c
    functionUses: 0
    functionsReached:
    - _fileno
    - PR_Send
    - fprintf
    - PR_Read
    - PR_Open
    - PR_Close
    - PR_GetSpecialFD
    - _setmode
    linkageType: ''
    returnType: void
    signature: void thread_main(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_NetAddrInetPort
      Src: /src/nss/cmd/tstclnt/tstclnt.c:897,1
    - Dst: PR_NetAddrToString
      Src: /src/nss/cmd/tstclnt/tstclnt.c:899,1
    - Dst: PR_ntohs
      Src: /src/nss/cmd/tstclnt/tstclnt.c:902,1
    - Dst: FPRINTF
      Src: /src/nss/cmd/tstclnt/tstclnt.c:903,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - host
    - addr
    argTypes:
    - char*
    - PRNetAddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 894
    functionDepth: 1
    functionLinenumber: 894
    functionLinenumberEnd: 906
    functionName: printHostNameAndAddr
    functionSourceFile: /src/nss/cmd/tstclnt/tstclnt.c
    functionUses: 0
    functionsReached:
    - FPRINTF
    - PR_NetAddrToString
    - PR_ntohs
    - PR_NetAddrInetPort
    linkageType: ''
    returnType: void
    signature: void printHostNameAndAddr(const char *host, const PRNetAddr *addr)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/cmd/tstclnt/tstclnt.c:931,1
    - Dst: PL_strncmp
      Src: /src/nss/cmd/tstclnt/tstclnt.c:939,1
    - Dst: PR_Write
      Src: /src/nss/cmd/tstclnt/tstclnt.c:941,1
    - Dst: PL_strnstr
      Src: /src/nss/cmd/tstclnt/tstclnt.c:955,1
    - Dst: PR_Write
      Src: /src/nss/cmd/tstclnt/tstclnt.c:961,1
    - Dst: PL_strncmp
      Src: /src/nss/cmd/tstclnt/tstclnt.c:978,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 5
    argNames:
    - outFd
    - buf
    - nb
    - wrStarted
    - ptrnMatched
    argTypes:
    - PRFileDesc*
    - char*
    - int
    - PRBool*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 984
      start: 914
    functionDepth: 1
    functionLinenumber: 914
    functionLinenumberEnd: 984
    functionName: separateReqHeader
    functionSourceFile: /src/nss/cmd/tstclnt/tstclnt.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PL_strncmp
    - PL_strnstr
    - PR_Write
    linkageType: ''
    returnType: void
    signature: "void separateReqHeader(const PRFileDesc *outFd, const char *buf, const
      int nb,\n                  PRBool *wrStarted, int *ptrnMatched)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 999
      start: 989
    functionDepth: 0
    functionLinenumber: 989
    functionLinenumberEnd: 999
    functionName: HEXCHAR_TO_INT
    functionSourceFile: /src/nss/cmd/tstclnt/tstclnt.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HEXCHAR_TO_INT(c, i)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FPRINTF
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1011,1
    - Dst: SSL_AuthCertificate
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1015,1
    - Dst: PR_GetError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1017,1
    - Dst: PR_NOT_REACHED
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1019,1
    - Dst: ownBadCertHandler
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1023,1
    - Dst: SSL_AuthCertificateComplete
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1030,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1035,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - fd
    - serverCertAuth
    - override
    argTypes:
    - PRFileDesc*
    - ServerCertAuth*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 1000
    functionDepth: 2
    functionLinenumber: 1000
    functionLinenumberEnd: 1039
    functionName: restartHandshakeAfterServerCertIfNeeded
    functionSourceFile: /src/nss/cmd/tstclnt/tstclnt.c
    functionUses: 0
    functionsReached:
    - SSL_AuthCertificateComplete
    - PR_NOT_REACHED
    - ownBadCertHandler
    - SSL_AuthCertificate
    - PORT_SetError
    - PR_GetError
    - FPRINTF
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus restartHandshakeAfterServerCertIfNeeded(PRFileDesc *fd,\n
      \                                       ServerCertAuth *serverCertAuth,\n                                        PRBool
      override)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FPRINTF
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1099,1
    - Dst: PR_Send
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1102,1
    - Dst: PR_GetError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1104,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1106,1
    - Dst: FPRINTF
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1111,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1114,1
    - Dst: PORT_Memcpy
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1117,1
    - Dst: restartHandshakeAfterServerCertIfNeeded
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1125,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1128,1
    - Dst: restartHandshakeAfterClientCertIfNeeded
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1132,1
    - Dst: FPRINTF
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1139,1
    - Dst: PR_Poll
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1142,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1144,1
    - Dst: FPRINTF
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1147,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 3
    argNames:
    - s
    - buf
    - nb
    argTypes:
    - PRFileDesc*
    - PRUint8*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 1088
    functionDepth: 3
    functionLinenumber: 1088
    functionLinenumberEnd: 1153
    functionName: writeBytesToServer
    functionSourceFile: /src/nss/cmd/tstclnt/tstclnt.c
    functionUses: 0
    functionsReached:
    - PORT_Memcpy
    - SECU_PrintError
    - PR_Send
    - restartHandshakeAfterClientCertIfNeeded
    - restartHandshakeAfterServerCertIfNeeded
    - PR_GetError
    - FPRINTF
    - PR_Poll
    linkageType: ''
    returnType: int
    signature: int writeBytesToServer(PRFileDesc *s, const PRUint8 *buf, int nb)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SSL_SetURL
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1160,1
    - Dst: printSecurityInfo
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1162,1
    - Dst: SSL_ReHandshake
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1164,1
    - Dst: SSL_GetChannelInfo
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1172,1
    - Dst: FPRINTF
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1177,1
    - Dst: writeBytesToServer
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1179,1
    - Dst: exportKeyingMaterials
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1191,1
    - Dst: PR_GetError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1193,1
    - Dst: FPRINTF
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1194,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1196,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - fd
    - client_data
    argTypes:
    - PRFileDesc*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1199
      start: 1155
    functionDepth: 5
    functionLinenumber: 1155
    functionLinenumberEnd: 1199
    functionName: handshakeCallback
    functionSourceFile: /src/nss/cmd/tstclnt/tstclnt.c
    functionUses: 0
    functionsReached:
    - exportKeyingMaterials
    - PR_GetError
    - SSL_ReHandshake
    - SECU_Strerror
    - SSL_SetURL
    - writeBytesToServer
    - FPRINTF
    - SSL_GetChannelInfo
    - printSecurityInfo
    linkageType: ''
    returnType: void
    signature: void handshakeCallback(PRFileDesc *fd, void *client_data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1208,1
    - Dst: PK11_FindCertFromNickname
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1212,1
    - Dst: PK11_FindKeyByAnyCert
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1217,1
    - Dst: SSL_ConfigServerCert
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1221,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1224,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1225,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - s
    - nick
    argTypes:
    - PRFileDesc*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1228
      start: 1201
    functionDepth: 1
    functionLinenumber: 1201
    functionLinenumberEnd: 1228
    functionName: installServerCertificate
    functionSourceFile: /src/nss/cmd/tstclnt/tstclnt.c
    functionUses: 0
    functionsReached:
    - SSL_ConfigServerCert
    - PORT_SetError
    - CERT_DestroyCertificate
    - SECKEY_DestroyPrivateKey
    - PK11_FindCertFromNickname
    - PK11_FindKeyByAnyCert
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus installServerCertificate(PRFileDesc *s, char *nick)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PR_Bind
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1234,1
    - Dst: PR_RecvFrom
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1248,1
    - Dst: PR_Connect
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1253,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1255,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - s
    argTypes:
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1262
      start: 1230
    functionDepth: 1
    functionLinenumber: 1230
    functionLinenumberEnd: 1262
    functionName: bindToClient
    functionSourceFile: /src/nss/cmd/tstclnt/tstclnt.c
    functionUses: 0
    functionsReached:
    - PR_RecvFrom
    - PR_Bind
    - PR_Connect
    - SECU_PrintError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus bindToClient(PRFileDesc *s)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PR_Connect
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1270,1
    - Dst: PR_GetError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1272,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1274,1
    - Dst: milliPause
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1275,1
    - Dst: FPRINTF
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1280,1
    - Dst: PR_Poll
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1283,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1285,1
    - Dst: FPRINTF
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1288,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1292,1
    - Dst: PR_GetConnectStatus
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1295,1
    - Dst: PR_GetError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1299,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1300,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1303,1
    - Dst: milliPause
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1304,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1307,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 2
    argNames:
    - s
    - pollset
    argTypes:
    - PRFileDesc*
    - PRPollDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1313
      start: 1264
    functionDepth: 2
    functionLinenumber: 1264
    functionLinenumberEnd: 1313
    functionName: connectToServer
    functionSourceFile: /src/nss/cmd/tstclnt/tstclnt.c
    functionUses: 0
    functionsReached:
    - PR_Connect
    - SECU_PrintError
    - milliPause
    - PR_GetError
    - FPRINTF
    - PR_Poll
    - PR_GetConnectStatus
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus connectToServer(PRFileDesc *s, PRPollDesc *pollset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECU_PrintAsHex
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1318,1
    - Dst: PK11_GetInternalSlot
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1321,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1323,1
    - Dst: PK11_ImportSymKey
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1326,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1328,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1330,1
    - Dst: SSL_AddExternalPsk
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1334,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1336,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - s
    argTypes:
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1338
      start: 1315
    functionDepth: 2
    functionLinenumber: 1315
    functionLinenumberEnd: 1338
    functionName: importPsk
    functionSourceFile: /src/nss/cmd/tstclnt/tstclnt.c
    functionUses: 1
    functionsReached:
    - SSL_AddExternalPsk
    - SECU_PrintError
    - PK11_ImportSymKey
    - PK11_GetInternalSlot
    - PK11_FreeSymKey
    - PK11_FreeSlot
    - SECU_PrintAsHex
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus importPsk(PRFileDesc *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_GetError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1343,1
    - Dst: SSL_GetEchRetryConfigs
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1345,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1347,1
    - Dst: NSSBase64_EncodeItem
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1350,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1352,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1353,1
    - Dst: strstr
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1358,1
    - Dst: memmove
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1360,1
    - Dst: strlen
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1360,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1362,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1363,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1364,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - s
    argTypes:
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1367
      start: 1340
    functionDepth: 1
    functionLinenumber: 1340
    functionLinenumberEnd: 1367
    functionName: printEchRetryConfigs
    functionSourceFile: /src/nss/cmd/tstclnt/tstclnt.c
    functionUses: 0
    functionsReached:
    - SSL_GetEchRetryConfigs
    - SECU_PrintError
    - PORT_Free
    - PORT_GetError
    - NSSBase64_EncodeItem
    - fprintf
    - strstr
    - memmove
    - SECITEM_FreeItem
    - strlen
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus printEchRetryConfigs(PRFileDesc *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_SetError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1373,1
    - Dst: compressBound
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1377,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1378,1
    - Dst: compress
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1380,1
    - Dst: PR_SetError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1382,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - input
    - output
    argTypes:
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1387
      start: 1369
    functionDepth: 1
    functionLinenumber: 1369
    functionLinenumberEnd: 1387
    functionName: zlibCertificateEncode
    functionSourceFile: /src/nss/cmd/tstclnt/tstclnt.c
    functionUses: 0
    functionsReached:
    - compress
    - PR_SetError
    - compressBound
    - SECITEM_AllocItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus zlibCertificateEncode(const SECItem *input, SECItem *output)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_SetError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1395,1
    - Dst: uncompress
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1401,1
    - Dst: PR_SetError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1403,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 4
    argNames:
    - input
    - output
    - outputLen
    - usedLen
    argTypes:
    - SECItem*
    - unsigned char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1408
      start: 1389
    functionDepth: 1
    functionLinenumber: 1389
    functionLinenumberEnd: 1408
    functionName: zlibCertificateDecode
    functionSourceFile: /src/nss/cmd/tstclnt/tstclnt.c
    functionUses: 0
    functionsReached:
    - PR_SetError
    - uncompress
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus zlibCertificateDecode(const SECItem *input,\n                      unsigned
      char *output, size_t outputLen,\n                      size_t *usedLen)"
  - BBCount: 92
    BranchProfiles: []
    Callsites:
    - Dst: PR_OpenUDPSocket
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1428,1
    - Dst: PR_OpenTCPSocket
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1430,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1434,1
    - Dst: bindToClient
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1440,1
    - Dst: PR_SetSocketOption
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1449,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1451,1
    - Dst: DTLS_ImportFD
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1457,1
    - Dst: SSL_ImportFD
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1459,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1462,1
    - Dst: SSL_SetPKCS11PinArg
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1466,1
    - Dst: SSL_OptionSet
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1468,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1470,1
    - Dst: SSL_OptionSet
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1475,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1477,1
    - Dst: HEXCHAR_TO_INT
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1493,1
    - Dst: HEXCHAR_TO_INT
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1496,1
    - Dst: HEXCHAR_TO_INT
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1499,1
    - Dst: HEXCHAR_TO_INT
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1502,1
    - Dst: isalpha
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1506,1
    - Dst: Usage
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1507,1
    - Dst: tolower
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1508,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1509,1
    - Dst: SSL_CipherPrefSet
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1514,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1516,1
    - Dst: Usage
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1521,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1524,1
    - Dst: SSL_VersionRangeSet
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1527,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1529,1
    - Dst: SSL_OptionSet
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1535,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1537,1
    - Dst: SSL_OptionSet
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1543,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1545,1
    - Dst: SSL_OptionSet
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1551,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1553,1
    - Dst: SSL_OptionSet
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1559,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1561,1
    - Dst: SSL_OptionSet
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1568,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1570,1
    - Dst: SSL_OptionSet
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1576,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1578,1
    - Dst: SSL_OptionSet
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1585,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1587,1
    - Dst: SSL_OptionSet
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1595,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1597,1
    - Dst: SSL_UseAltServerHelloType
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1605,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1607,1
    - Dst: SSL_OptionSet
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1615,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1617,1
    - Dst: SSL_OptionSet
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1625,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1627,1
    - Dst: SSL_OptionSet
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1634,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1637,1
    - Dst: SSL_OptionSet
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1643,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1645,1
    - Dst: SSL_OptionSet
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1652,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1654,1
    - Dst: SSL_OptionSet
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1661,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1663,1
    - Dst: SSL_SetCertificateCompressionAlgorithm
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1670,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1672,1
    - Dst: SSL_NamedGroupConfig
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1679,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1681,1
    - Dst: SSL_SignatureSchemePrefSet
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1688,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1690,1
    - Dst: NSSBase64_DecodeBuffer
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1699,1
    - Dst: strlen
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1700,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1701,1
    - Dst: SSL_SetClientEchConfigs
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1706,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1707,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1709,1
    - Dst: SSL_EnableTls13GreaseEch
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1716,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1718,1
    - Dst: SSL_SetTls13GreaseEchSize
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1722,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1724,1
    - Dst: importPsk
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1731,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1733,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1739,1
    - Dst: SSL_AuthCertificateHook
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1741,1
    - Dst: SSL_BadCertHook
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1743,1
    - Dst: installServerCertificate
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1746,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1748,1
    - Dst: SSL_ConfigServerSessionIDCache
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1751,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1753,1
    - Dst: SSL_GetClientAuthDataHook
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1758,1
    - Dst: SSL_HandshakeCallback
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1760,1
    - Dst: SSL_SetURL
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1762,1
    - Dst: SSL_SetURL
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1764,1
    - Dst: SSL_ResetHandshake
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1768,1
    - Dst: connectToServer
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1774,1
    - Dst: PR_Open
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1788,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1790,1
    - Dst: PR_GetSpecialFD
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1796,1
    - Dst: PR_GetSpecialFD
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1799,1
    - Dst: PR_NewTCPSocketPair
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1812,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1814,1
    - Dst: PR_CreateThread
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1820,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1824,1
    - Dst: SSL_ForceHandshake
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1832,1
    - Dst: FPRINTF
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1842,1
    - Dst: restartHandshakeAfterServerCertIfNeeded
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1848,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1852,1
    - Dst: restartHandshakeAfterClientCertIfNeeded
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1856,1
    - Dst: FPRINTF
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1864,1
    - Dst: PR_Poll
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1865,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1865,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1868,1
    - Dst: FPRINTF
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1873,1
    - Dst: FPRINTF
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1877,1
    - Dst: FPRINTF
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1879,1
    - Dst: FPRINTF
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1884,1
    - Dst: PR_Read
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1890,1
    - Dst: FPRINTF
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1891,1
    - Dst: PR_GetError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1893,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1894,1
    - Dst: writeBytesToServer
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1904,1
    - Dst: printEchRetryConfigs
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1907,1
    - Dst: FPRINTF
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1916,1
    - Dst: PR_Recv
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1927,1
    - Dst: FPRINTF
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1928,1
    - Dst: PR_GetError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1930,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1931,1
    - Dst: PR_Write
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1940,1
    - Dst: separateReqHeader
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1942,1
    - Dst: fputs
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1946,1
    - Dst: milliPause
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1949,1
    - Dst: PR_Close
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1954,1
    - Dst: PR_Close
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1957,1
    CyclomaticComplexity: 139
    EdgeCount: 139
    ICount: 465
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1960
      start: 1410
    functionDepth: 4
    functionLinenumber: 1410
    functionLinenumberEnd: 1960
    functionName: run
    functionSourceFile: /src/nss/cmd/tstclnt/tstclnt.c
    functionUses: 2
    functionsReached:
    - SSL_GetClientAuthDataHook
    - connectToServer
    - NSSBase64_DecodeBuffer
    - fputs
    - restartHandshakeAfterClientCertIfNeeded
    - SSL_SetTls13GreaseEchSize
    - SSL_BadCertHook
    - fprintf
    - installServerCertificate
    - Usage
    - strlen
    - printEchRetryConfigs
    - PR_ARRAY_SIZE
    - separateReqHeader
    - PR_Read
    - SSL_UseAltServerHelloType
    - milliPause
    - CERT_GetDefaultCertDB
    - SSL_ImportFD
    - SSL_SetCertificateCompressionAlgorithm
    - SSL_OptionSet
    - PR_Poll
    - PR_NewTCPSocketPair
    - SECITEM_FreeItem
    - SSL_VersionRangeSet
    - SSL_EnableTls13GreaseEch
    - importPsk
    - tolower
    - SECU_PrintError
    - SSL_ResetHandshake
    - SSL_ConfigServerSessionIDCache
    - PR_SetSocketOption
    - SSL_SetPKCS11PinArg
    - SSL_SetClientEchConfigs
    - PR_Open
    - PR_CreateThread
    - SSL_SetURL
    - writeBytesToServer
    - restartHandshakeAfterServerCertIfNeeded
    - PR_Close
    - SSL_NamedGroupConfig
    - SSL_AuthCertificateHook
    - PR_OpenUDPSocket
    - DTLS_ImportFD
    - SSL_SignatureSchemePrefSet
    - isalpha
    - SSL_CipherPrefSet
    - PR_OpenTCPSocket
    - PORT_Free
    - SSL_HandshakeCallback
    - bindToClient
    - PR_Write
    - PR_GetError
    - FPRINTF
    - SSL_ForceHandshake
    - HEXCHAR_TO_INT
    - PR_GetSpecialFD
    - PR_Recv
    linkageType: ''
    returnType: int
    signature: int run()
  - BBCount: 116
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1996,1
    - Dst: strrchr
      Src: /src/nss/cmd/tstclnt/tstclnt.c:1998,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2001,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2003,1
    - Dst: PR_SecondsToInterval
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2005,1
    - Dst: PL_CreateLongOptState
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2009,1
    - Dst: PL_GetNextOpt
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2010,1
    - Dst: Usage
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2014,1
    - Dst: Usage
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2032,1
    - Dst: Usage
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2037,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2041,1
    - Dst: atoi
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2086,1
    - Dst: atoi
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2090,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2108,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2112,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2114,1
    - Dst: exit
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2115,1
    - Dst: strcmp
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2121,1
    - Dst: strcmp
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2124,1
    - Dst: Usage
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2125,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2135,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2151,1
    - Dst: strcmp
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2155,1
    - Dst: Usage
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2158,1
    - Dst: PrintCipherUsage
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2162,1
    - Dst: exit
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2163,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2168,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2170,1
    - Dst: exit
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2171,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2177,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2179,1
    - Dst: Usage
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2181,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2190,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2198,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2210,1
    - Dst: atoi
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2214,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2220,1
    - Dst: atoi
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2228,1
    - Dst: atoi
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2240,1
    - Dst: atoi
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2252,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2257,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2262,1
    - Dst: parseGroupList
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2266,1
    - Dst: PL_DestroyOptState
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2268,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2269,1
    - Dst: Usage
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2270,1
    - Dst: parseSigSchemeList
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2275,1
    - Dst: PL_DestroyOptState
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2277,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2278,1
    - Dst: Usage
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2279,1
    - Dst: parseExporters
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2284,1
    - Dst: PL_DestroyOptState
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2288,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2289,1
    - Dst: Usage
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2290,1
    - Dst: readPSK
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2295,1
    - Dst: PL_DestroyOptState
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2297,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2298,1
    - Dst: Usage
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2299,1
    - Dst: PL_DestroyOptState
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2304,1
    - Dst: SSL_VersionRangeGetSupported
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2306,1
    - Dst: SECU_ParseSSLVersionRangeString
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2309,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2312,1
    - Dst: Usage
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2313,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2315,1
    - Dst: Usage
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2319,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2323,1
    - Dst: Usage
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2324,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2329,1
    - Dst: exit
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2330,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2334,1
    - Dst: exit
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2335,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2339,1
    - Dst: exit
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2340,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2344,1
    - Dst: exit
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2345,1
    - Dst: PR_Init
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2348,1
    - Dst: PK11_SetPasswordFunc
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2350,1
    - Dst: memset
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2351,1
    - Dst: PR_StringToNetAddr
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2352,1
    - Dst: PR_htons
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2354,1
    - Dst: strcmp
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2357,1
    - Dst: strcmp
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2357,1
    - Dst: PR_GetPrefLoopbackAddrInfo
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2361,1
    - Dst: PR_GetAddrInfoByName
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2372,1
    - Dst: fprintf
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2375,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2376,1
    - Dst: PR_EnumerateAddrInfo
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2381,1
    - Dst: PR_FreeAddrInfo
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2389,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2391,1
    - Dst: printHostNameAndAddr
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2398,1
    - Dst: SECU_DefaultSSLDir
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2401,1
    - Dst: SECU_ConfigDirectory
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2402,1
    - Dst: SECU_ConfigDirectory
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2405,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2406,1
    - Dst: PR_OpenTCPSocket
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2420,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2422,1
    - Dst: PR_SetSocketOption
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2428,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2430,1
    - Dst: PR_SecondsToInterval
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2436,1
    - Dst: PR_Connect
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2438,1
    - Dst: PR_Shutdown
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2440,1
    - Dst: PR_GetError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2443,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2446,1
    - Dst: PR_Close
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2450,1
    - Dst: PR_Sleep
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2452,1
    - Dst: PR_MillisecondsToInterval
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2452,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2454,1
    - Dst: NSS_Init
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2462,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2464,1
    - Dst: NSS_NoDB_Init
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2469,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2471,1
    - Dst: SECMOD_AddNewModule
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2478,1
    - Dst: SECMOD_AddNewModule
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2481,1
    - Dst: disableAllSSLCiphers
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2487,1
    - Dst: run
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2491,1
    - Dst: PR_Close
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2499,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2502,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2503,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2504,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2505,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2506,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2507,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2508,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2509,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2510,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2511,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2514,1
    - Dst: NSS_IsInitialized
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2516,1
    - Dst: SSL_ClearSessionCache
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2517,1
    - Dst: SSL_ShutdownServerSessionIDCache
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2519,1
    - Dst: NSS_Shutdown
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2524,1
    - Dst: FPRINTF
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2529,1
    - Dst: PR_Cleanup
      Src: /src/nss/cmd/tstclnt/tstclnt.c:2530,1
    CyclomaticComplexity: 145
    EdgeCount: 145
    ICount: 453
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2532
      start: 1970
    functionDepth: 3
    functionLinenumber: 1970
    functionLinenumberEnd: 2532
    functionName: main
    functionSourceFile: /src/nss/cmd/tstclnt/tstclnt.c
    functionUses: 4
    functionsReached:
    - PORT_Atoi
    - SSL_ClearSessionCache
    - PR_Shutdown
    - PR_MillisecondsToInterval
    - NSS_Init
    - PrintCipherUsage
    - PR_EnumerateAddrInfo
    - PR_GetEnvSecure
    - PL_DestroyOptState
    - fprintf
    - PR_FreeAddrInfo
    - run
    - Usage
    - parseGroupList
    - PR_GetAddrInfoByName
    - PR_Connect
    - PR_GetPrefLoopbackAddrInfo
    - disableAllSSLCiphers
    - SECU_ParseSSLVersionRangeString
    - SSL_ShutdownServerSessionIDCache
    - PL_CreateLongOptState
    - memset
    - SSL_VersionRangeGetSupported
    - strrchr
    - NSS_IsInitialized
    - PR_Cleanup
    - parseSigSchemeList
    - PR_SecondsToInterval
    - SECU_PrintError
    - PORT_ZAlloc
    - PR_SetSocketOption
    - exit
    - PR_Init
    - PR_htons
    - PR_Close
    - PK11_SetPasswordFunc
    - SECU_ConfigDirectory
    - SECITEM_ZfreeItem
    - strcmp
    - SECMOD_AddNewModule
    - NSS_NoDB_Init
    - PR_StringToNetAddr
    - PL_GetNextOpt
    - readPSK
    - PORT_Free
    - SECU_DefaultSSLDir
    - PR_OpenTCPSocket
    - atoi
    - NSS_Shutdown
    - PR_Sleep
    - PR_GetError
    - FPRINTF
    - PORT_Strdup
    - parseExporters
    - printHostNameAndAddr
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/chktest/chktest.c:14,1
    - Dst: fprintf
      Src: /src/nss/cmd/chktest/chktest.c:15,1
    - Dst: fprintf
      Src: /src/nss/cmd/chktest/chktest.c:16,1
    - Dst: exit
      Src: /src/nss/cmd/chktest/chktest.c:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 18
    functionName: Usage
    functionSourceFile: /src/nss/cmd/chktest/chktest.c
    functionUses: 88
    functionsReached:
    - fprintf
    - exit
    linkageType: ''
    returnType: int
    signature: int Usage()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Usage
      Src: /src/nss/cmd/chktest/chktest.c:27,1
    - Dst: RNG_RNGInit
      Src: /src/nss/cmd/chktest/chktest.c:29,1
    - Dst: SECU_PrintPRandOSError
      Src: /src/nss/cmd/chktest/chktest.c:31,1
    - Dst: BL_Init
      Src: /src/nss/cmd/chktest/chktest.c:34,1
    - Dst: SECU_PrintPRandOSError
      Src: /src/nss/cmd/chktest/chktest.c:36,1
    - Dst: RNG_SystemInfoForRNG
      Src: /src/nss/cmd/chktest/chktest.c:39,1
    - Dst: BLAPI_SHVerifyFile
      Src: /src/nss/cmd/chktest/chktest.c:41,1
    - Dst: printf
      Src: /src/nss/cmd/chktest/chktest.c:42,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 20
    functionDepth: 2
    functionLinenumber: 20
    functionLinenumberEnd: 45
    functionName: main
    functionSourceFile: /src/nss/cmd/chktest/chktest.c
    functionUses: 4
    functionsReached:
    - RNG_RNGInit
    - BL_Init
    - RNG_SystemInfoForRNG
    - printf
    - SECU_PrintPRandOSError
    - BLAPI_SHVerifyFile
    - Usage
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/p7content/p7content.c:33,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7content/p7content.c:36,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7content/p7content.c:39,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7content/p7content.c:41,1
    - Dst: exit
      Src: /src/nss/cmd/p7content/p7content.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - progName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 44
    functionName: Usage
    functionSourceFile: /src/nss/cmd/p7content/p7content.c
    functionUses: 89
    functionsReached:
    - fprintf
    - exit
    linkageType: ''
    returnType: void
    signature: void Usage(char *progName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fwrite
      Src: /src/nss/cmd/p7content/p7content.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - arg
    - buf
    - len
    argTypes:
    - void*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 58
    functionName: PrintBytes
    functionSourceFile: /src/nss/cmd/p7content/p7content.c
    functionUses: 0
    functionsReached:
    - fwrite
    linkageType: ''
    returnType: void
    signature: void PrintBytes(void *arg, const char *buf, unsigned long len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - algid
    - key
    argTypes:
    - SECAlgorithmID*
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: decryption_allowed
    functionSourceFile: /src/nss/cmd/p7content/p7content.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool decryption_allowed(SECAlgorithmID *algid, PK11SymKey *key)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: SECU_ReadDERFromFile
      Src: /src/nss/cmd/p7content/p7content.c:79,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/p7content/p7content.c:80,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7content/p7content.c:84,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7content/p7content.c:86,1
    - Dst: SEC_PKCS7DecoderStart
      Src: /src/nss/cmd/p7content/p7content.c:89,1
    - Dst: SEC_PKCS7DecoderUpdate
      Src: /src/nss/cmd/p7content/p7content.c:96,1
    - Dst: SEC_PKCS7DecoderUpdate
      Src: /src/nss/cmd/p7content/p7content.c:99,1
    - Dst: SEC_PKCS7DecoderFinish
      Src: /src/nss/cmd/p7content/p7content.c:101,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7content/p7content.c:104,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7content/p7content.c:109,1
    - Dst: SEC_PKCS7ContentIsEncrypted
      Src: /src/nss/cmd/p7content/p7content.c:110,1
    - Dst: SEC_PKCS7ContentIsSigned
      Src: /src/nss/cmd/p7content/p7content.c:112,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7content/p7content.c:117,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/p7content/p7content.c:118,1
    - Dst: SEC_PKCS7VerifySignature
      Src: /src/nss/cmd/p7content/p7content.c:119,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7content/p7content.c:120,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7content/p7content.c:122,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/p7content/p7content.c:123,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/p7content/p7content.c:123,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7content/p7content.c:125,1
    - Dst: SEC_PKCS7GetSignerCommonName
      Src: /src/nss/cmd/p7content/p7content.c:129,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7content/p7content.c:131,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/p7content/p7content.c:132,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7content/p7content.c:134,1
    - Dst: SEC_PKCS7GetSignerEmailAddress
      Src: /src/nss/cmd/p7content/p7content.c:137,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7content/p7content.c:139,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/p7content/p7content.c:140,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7content/p7content.c:142,1
    - Dst: SEC_PKCS7GetSigningTime
      Src: /src/nss/cmd/p7content/p7content.c:145,1
    - Dst: SECU_PrintTimeChoice
      Src: /src/nss/cmd/p7content/p7content.c:147,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7content/p7content.c:149,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7content/p7content.c:152,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7content/p7content.c:155,1
    - Dst: SEC_PKCS7ContainsCertsOrCrls
      Src: /src/nss/cmd/p7content/p7content.c:156,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/p7content/p7content.c:158,1
    - Dst: SEC_PKCS7DestroyContentInfo
      Src: /src/nss/cmd/p7content/p7content.c:159,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 57
    argCount: 3
    argNames:
    - out
    - in
    - progName
    argTypes:
    - FILE*
    - PRFileDesc*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 72
    functionDepth: 4
    functionLinenumber: 72
    functionLinenumberEnd: 161
    functionName: DecodeAndPrintFile
    functionSourceFile: /src/nss/cmd/p7content/p7content.c
    functionUses: 0
    functionsReached:
    - SEC_PKCS7DestroyContentInfo
    - fprintf
    - SEC_PKCS7VerifySignature
    - SECU_PrintTimeChoice
    - SEC_PKCS7ContentIsEncrypted
    - PORT_SetError
    - SEC_PKCS7DecoderStart
    - SEC_PKCS7GetSignerCommonName
    - SECITEM_FreeItem
    - SECU_PrintError
    - SEC_PKCS7DecoderFinish
    - SEC_PKCS7ContentIsSigned
    - SEC_PKCS7GetSignerEmailAddress
    - SEC_PKCS7GetSigningTime
    - SEC_PKCS7ContainsCertsOrCrls
    - SECU_ReadDERFromFile
    - SECU_Strerror
    - PORT_Free
    - PORT_GetError
    - SEC_PKCS7DecoderUpdate
    linkageType: ''
    returnType: int
    signature: int DecodeAndPrintFile(FILE *out, PRFileDesc *in, char *progName)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/nss/cmd/p7content/p7content.c:178,1
    - Dst: PL_CreateOptState
      Src: /src/nss/cmd/p7content/p7content.c:187,1
    - Dst: PL_GetNextOpt
      Src: /src/nss/cmd/p7content/p7content.c:188,1
    - Dst: SECU_ConfigDirectory
      Src: /src/nss/cmd/p7content/p7content.c:191,1
    - Dst: PR_Open
      Src: /src/nss/cmd/p7content/p7content.c:195,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7content/p7content.c:197,1
    - Dst: fopen
      Src: /src/nss/cmd/p7content/p7content.c:205,1
    - Dst: fprintf
      Src: /src/nss/cmd/p7content/p7content.c:207,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/p7content/p7content.c:216,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/p7content/p7content.c:221,1
    - Dst: Usage
      Src: /src/nss/cmd/p7content/p7content.c:225,1
    - Dst: PL_DestroyOptState
      Src: /src/nss/cmd/p7content/p7content.c:229,1
    - Dst: Usage
      Src: /src/nss/cmd/p7content/p7content.c:232,1
    - Dst: PR_Init
      Src: /src/nss/cmd/p7content/p7content.c:240,1
    - Dst: NSS_Init
      Src: /src/nss/cmd/p7content/p7content.c:241,1
    - Dst: SECU_ConfigDirectory
      Src: /src/nss/cmd/p7content/p7content.c:241,1
    - Dst: SECU_PrintPRandOSError
      Src: /src/nss/cmd/p7content/p7content.c:243,1
    - Dst: PK11_SetPasswordFunc
      Src: /src/nss/cmd/p7content/p7content.c:248,1
    - Dst: DecodeAndPrintFile
      Src: /src/nss/cmd/p7content/p7content.c:250,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/p7content/p7content.c:251,1
    - Dst: PR_Close
      Src: /src/nss/cmd/p7content/p7content.c:258,1
    - Dst: fclose
      Src: /src/nss/cmd/p7content/p7content.c:261,1
    - Dst: NSS_Shutdown
      Src: /src/nss/cmd/p7content/p7content.c:264,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 76
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 167
    functionDepth: 5
    functionLinenumber: 167
    functionLinenumberEnd: 269
    functionName: main
    functionSourceFile: /src/nss/cmd/p7content/p7content.c
    functionUses: 4
    functionsReached:
    - NSS_Init
    - PL_DestroyOptState
    - fprintf
    - Usage
    - fopen
    - strrchr
    - PL_CreateOptState
    - fclose
    - SECU_PrintError
    - PR_Init
    - SECU_PrintPRandOSError
    - PR_Open
    - PR_Close
    - DecodeAndPrintFile
    - PK11_SetPasswordFunc
    - SECU_ConfigDirectory
    - PL_GetNextOpt
    - NSS_Shutdown
    - PORT_Strdup
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:46,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:47,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:50,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:53,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:56,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:59,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:62,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:64,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - progname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 69
    functionName: synopsis
    functionSourceFile: /src/nss/cmd/ocspclnt/ocspclnt.c
    functionUses: 4
    functionsReached:
    - PR_fprintf
    linkageType: ''
    returnType: void
    signature: void synopsis(char *progname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:74,1
    - Dst: synopsis
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - progname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 78
    functionName: short_usage
    functionSourceFile: /src/nss/cmd/ocspclnt/ocspclnt.c
    functionUses: 2
    functionsReached:
    - synopsis
    - PR_fprintf
    linkageType: ''
    returnType: void
    signature: void short_usage(char *progname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: synopsis
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:86,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:87,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:88,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:91,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:94,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:97,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:100,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:103,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:106,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:110,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:111,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:114,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:117,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:120,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:123,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:126,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:129,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:132,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:134,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:136,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:138,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:140,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:142,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:144,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:146,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:149,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:151,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 1
    argNames:
    - progname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 155
    functionName: long_usage
    functionSourceFile: /src/nss/cmd/ocspclnt/ocspclnt.c
    functionUses: 3
    functionsReached:
    - synopsis
    - PR_fprintf
    linkageType: ''
    returnType: void
    signature: void long_usage(char *progname)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _setmode
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:165,1
    - Dst: _fileno
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:165,1
    - Dst: fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - binfile
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 171
    functionName: make_file_binary
    functionSourceFile: /src/nss/cmd/ocspclnt/ocspclnt.c
    functionUses: 0
    functionsReached:
    - fprintf
    - _fileno
    - _setmode
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus make_file_binary(FILE *binfile)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetOpenFileInfo
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:199,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:205,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:210,1
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:214,1
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:220,1
    - Dst: PR_Read
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:224,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:241,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 2
    argNames:
    - in_file
    - si_type
    argTypes:
    - PRFileDesc*
    - SECItemType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 243
    functionName: read_file_into_item
    functionSourceFile: /src/nss/cmd/ocspclnt/ocspclnt.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_SetError
    - PR_Read
    - PR_GetOpenFileInfo
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      read_file_into_item(PRFileDesc *in_file, SECItemType si_type)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PR_Now
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:256,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:263,1
    - Dst: CERT_NewCertList
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:270,1
    - Dst: CERT_AddCertToListTail
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:274,1
    - Dst: CERT_CreateOCSPRequest
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:283,1
    - Dst: CERT_AddOCSPAcceptableResponses
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:288,1
    - Dst: CERT_EncodeOCSPRequest
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:294,1
    - Dst: MAKE_FILE_BINARY
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:298,1
    - Dst: fwrite
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:299,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:306,1
    - Dst: CERT_DestroyOCSPRequest
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:308,1
    - Dst: CERT_DestroyCertList
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:310,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:312,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 45
    argCount: 5
    argNames:
    - out_file
    - handle
    - cert
    - add_service_locator
    - add_acceptable_responses
    argTypes:
    - FILE*
    - CERTCertDBHandle*
    - CERTCertificate*
    - PRBool
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 315
    functionName: create_request
    functionSourceFile: /src/nss/cmd/ocspclnt/ocspclnt.c
    functionUses: 0
    functionsReached:
    - CERT_DestroyOCSPRequest
    - fwrite
    - CERT_DestroyCertList
    - CERT_NewCertList
    - PR_Now
    - CERT_CreateOCSPRequest
    - CERT_AddOCSPAcceptableResponses
    - CERT_DupCertificate
    - CERT_EncodeOCSPRequest
    - CERT_AddCertToListTail
    - MAKE_FILE_BINARY
    - CERT_DestroyCertificate
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus create_request(FILE *out_file, CERTCertDBHandle *handle,
      CERTCertificate *cert,\n               PRBool add_service_locator, PRBool add_acceptable_responses)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PR_Now
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:330,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:338,1
    - Dst: CERT_GetOCSPAuthorityInfoAccessLocation
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:346,1
    - Dst: CERT_NewCertList
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:355,1
    - Dst: CERT_AddCertToListTail
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:359,1
    - Dst: CERT_GetEncodedOCSPResponse
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:368,1
    - Dst: MAKE_FILE_BINARY
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:374,1
    - Dst: fwrite
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:375,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:382,1
    - Dst: CERT_DestroyCertList
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:384,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:386,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:388,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 45
    argCount: 4
    argNames:
    - out_file
    - handle
    - cert
    - responder_url
    argTypes:
    - FILE*
    - CERTCertDBHandle*
    - CERTCertificate*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 391
    functionName: dump_response
    functionSourceFile: /src/nss/cmd/ocspclnt/ocspclnt.c
    functionUses: 0
    functionsReached:
    - CERT_GetOCSPAuthorityInfoAccessLocation
    - CERT_GetEncodedOCSPResponse
    - PORT_Free
    - CERT_DestroyCertList
    - CERT_NewCertList
    - PR_Now
    - CERT_DupCertificate
    - fwrite
    - CERT_AddCertToListTail
    - MAKE_FILE_BINARY
    - CERT_DestroyCertificate
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus dump_response(FILE *out_file, CERTCertDBHandle *handle,
      CERTCertificate *cert,\n              const char *responder_url)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CERT_CheckOCSPStatus
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:407,1
    - Dst: fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:409,1
    - Dst: fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:411,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:413,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:413,1
    - Dst: fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:414,1
    - Dst: PORT_Strlen
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:415,1
    - Dst: fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:416,1
    - Dst: fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:418,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 5
    argNames:
    - out_file
    - handle
    - cert
    - cert_name
    - verify_time
    argTypes:
    - FILE*
    - CERTCertDBHandle*
    - CERTCertificate*
    - char*
    - PRTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 426
    functionName: get_cert_status
    functionSourceFile: /src/nss/cmd/ocspclnt/ocspclnt.c
    functionUses: 0
    functionsReached:
    - SECU_Strerror
    - CERT_CheckOCSPStatus
    - PORT_GetError
    - PORT_Strlen
    - fprintf
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus get_cert_status(FILE *out_file, CERTCertDBHandle *handle,\n
      \               CERTCertificate *cert, const char *cert_name,\n                PRTime
      verify_time)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CERT_VerifyCert
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:442,1
    - Dst: fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:445,1
    - Dst: fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:447,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:449,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:449,1
    - Dst: fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:450,1
    - Dst: PORT_Strlen
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:451,1
    - Dst: fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:452,1
    - Dst: fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:454,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 6
    argNames:
    - out_file
    - handle
    - cert
    - cert_name
    - cert_usage
    - verify_time
    argTypes:
    - FILE*
    - CERTCertDBHandle*
    - CERTCertificate*
    - char*
    - SECCertUsage
    - PRTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 460
    functionName: verify_cert
    functionSourceFile: /src/nss/cmd/ocspclnt/ocspclnt.c
    functionUses: 0
    functionsReached:
    - SECU_Strerror
    - CERT_VerifyCert
    - PORT_GetError
    - PORT_Strlen
    - fprintf
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus verify_cert(FILE *out_file, CERTCertDBHandle *handle, CERTCertificate
      *cert,\n            const char *cert_name, SECCertUsage cert_usage, PRTime verify_time)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CERT_FindCertByNicknameOrEmailAddr
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:474,1
    - Dst: PR_Open
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:479,1
    - Dst: SECU_ReadDERFromFile
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:484,1
    - Dst: CERT_DecodeCertFromPackage
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:485,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:486,1
    - Dst: PR_Close
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:488,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - handle
    - name
    - ascii
    argTypes:
    - CERTCertDBHandle*
    - char*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 491
    functionName: find_certificate
    functionSourceFile: /src/nss/cmd/ocspclnt/ocspclnt.c
    functionUses: 0
    functionsReached:
    - CERT_DecodeCertFromPackage
    - CERT_FindCertByNicknameOrEmailAddr
    - SECU_ReadDERFromFile
    - PR_Open
    - PR_Close
    - SECITEM_FreeItem
    linkageType: ''
    returnType: CERTCertificate
    signature: 'CERTCertificate *

      find_certificate(CERTCertDBHandle *handle, const char *name, PRBool ascii)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out_file
    - data
    argTypes:
    - FILE*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 500
    functionName: print_request
    functionSourceFile: /src/nss/cmd/ocspclnt/ocspclnt.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus print_request(FILE *out_file, SECItem *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - out_file
    - data
    - handle
    argTypes:
    - FILE*
    - SECItem*
    - CERTCertDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 507
    functionName: print_response
    functionSourceFile: /src/nss/cmd/ocspclnt/ocspclnt.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus print_response(FILE *out_file, SECItem *data, CERTCertDBHandle
      *handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:515,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:517,1
    - Dst: fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:518,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - out_file
    - version
    - level
    argTypes:
    - FILE*
    - SECItem*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 511
    functionDepth: 3
    functionLinenumber: 511
    functionLinenumberEnd: 520
    functionName: print_ocsp_version
    functionSourceFile: /src/nss/cmd/ocspclnt/ocspclnt.c
    functionUses: 1
    functionsReached:
    - fprintf
    - SECU_PrintInteger
    - SECU_Indent
    linkageType: ''
    returnType: void
    signature: void print_ocsp_version(FILE *out_file, SECItem *version, int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECU_Indent
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:525,1
    - Dst: fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:526,1
    - Dst: SECU_PrintAlgorithmID
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:529,1
    - Dst: SECU_PrintAsHex
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:531,1
    - Dst: SECU_PrintAsHex
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:533,1
    - Dst: SECU_PrintInteger
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - out_file
    - cert_id
    - level
    argTypes:
    - FILE*
    - CERTOCSPCertID*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 522
    functionDepth: 4
    functionLinenumber: 522
    functionLinenumberEnd: 538
    functionName: print_ocsp_cert_id
    functionSourceFile: /src/nss/cmd/ocspclnt/ocspclnt.c
    functionUses: 1
    functionsReached:
    - fprintf
    - SECU_PrintAlgorithmID
    - SECU_Indent
    - SECU_PrintInteger
    - SECU_PrintAsHex
    linkageType: ''
    returnType: void
    signature: void print_ocsp_cert_id(FILE *out_file, CERTOCSPCertID *cert_id, int
      level)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECU_Indent
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:547,1
    - Dst: fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:550,1
    - Dst: fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:554,1
    - Dst: snprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:556,1
    - Dst: SECU_PrintSignedData
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:557,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - out_file
    - raw_certs
    - level
    argTypes:
    - FILE*
    - SECItem**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 540
    functionDepth: 6
    functionLinenumber: 540
    functionLinenumberEnd: 560
    functionName: print_raw_certificates
    functionSourceFile: /src/nss/cmd/ocspclnt/ocspclnt.c
    functionUses: 0
    functionsReached:
    - fprintf
    - snprintf
    - SECU_PrintSignedData
    - SECU_Indent
    linkageType: ''
    returnType: void
    signature: void print_raw_certificates(FILE *out_file, SECItem **raw_certs, int
      level)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECU_PrintExtensions
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:567,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:569,1
    - Dst: fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:570,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - out_file
    - extensions
    - msg
    - level
    argTypes:
    - FILE*
    - CERTCertExtension**
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 562
    functionDepth: 10
    functionLinenumber: 562
    functionLinenumberEnd: 572
    functionName: print_ocsp_extensions
    functionSourceFile: /src/nss/cmd/ocspclnt/ocspclnt.c
    functionUses: 2
    functionsReached:
    - fprintf
    - SECU_Indent
    - SECU_PrintExtensions
    linkageType: ''
    returnType: void
    signature: "void print_ocsp_extensions(FILE *out_file, CERTCertExtension **extensions,\n
      \                     char *msg, int level)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print_ocsp_cert_id
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:577,1
    - Dst: print_ocsp_extensions
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - out_file
    - single
    - level
    argTypes:
    - FILE*
    - ocspSingleRequest*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 580
    functionName: print_single_request
    functionSourceFile: /src/nss/cmd/ocspclnt/ocspclnt.c
    functionUses: 0
    functionsReached:
    - print_ocsp_extensions
    - print_ocsp_cert_id
    linkageType: ''
    returnType: void
    signature: void print_single_request(FILE *out_file, ocspSingleRequest *single,
      int level)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:593,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:594,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:596,1
    - Dst: CERT_DecodeOCSPRequest
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:600,1
    - Dst: fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:606,1
    - Dst: print_ocsp_version
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:609,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:616,1
    - Dst: fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:617,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:619,1
    - Dst: fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:620,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:627,1
    - Dst: fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:628,1
    - Dst: print_single_request
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:629,1
    - Dst: fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:633,1
    - Dst: print_ocsp_extensions
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:636,1
    - Dst: fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:643,1
    - Dst: SECU_PrintAlgorithmID
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:646,1
    - Dst: DER_ConvertBitString
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:650,1
    - Dst: SECU_PrintAsHex
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:651,1
    - Dst: print_raw_certificates
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:653,1
    - Dst: fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:655,1
    - Dst: fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:657,1
    - Dst: CERT_DestroyOCSPRequest
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:660,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 45
    argCount: 2
    argNames:
    - out_file
    - data
    argTypes:
    - FILE*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 586
    functionDepth: 7
    functionLinenumber: 586
    functionLinenumberEnd: 662
    functionName: print_request
    functionSourceFile: /src/nss/cmd/ocspclnt/ocspclnt.c
    functionUses: 0
    functionsReached:
    - print_ocsp_extensions
    - PORT_Assert
    - DER_ConvertBitString
    - print_single_request
    - print_raw_certificates
    - fprintf
    - PORT_SetError
    - print_ocsp_version
    - SECU_PrintAlgorithmID
    - SECU_Indent
    - CERT_DecodeOCSPRequest
    - CERT_DestroyOCSPRequest
    - SECU_PrintAsHex
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus print_request(FILE *out_file, SECItem *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECU_PrintGeneralizedTime
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:667,1
    - Dst: SECU_PrintAsHex
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:671,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:674,1
    - Dst: fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:675,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - out_file
    - revoked_info
    - level
    argTypes:
    - FILE*
    - ocspRevokedInfo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 664
    functionDepth: 3
    functionLinenumber: 664
    functionLinenumberEnd: 677
    functionName: print_revoked_info
    functionSourceFile: /src/nss/cmd/ocspclnt/ocspclnt.c
    functionUses: 1
    functionsReached:
    - fprintf
    - SECU_PrintGeneralizedTime
    - SECU_Indent
    - SECU_PrintAsHex
    linkageType: ''
    returnType: void
    signature: void print_revoked_info(FILE *out_file, ocspRevokedInfo *revoked_info,
      int level)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SECU_Indent
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:682,1
    - Dst: fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:683,1
    - Dst: fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:687,1
    - Dst: fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:690,1
    - Dst: print_revoked_info
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:691,1
    - Dst: fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:695,1
    - Dst: fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:698,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - out_file
    - status
    - level
    argTypes:
    - FILE*
    - ocspCertStatus*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 679
    functionDepth: 1
    functionLinenumber: 679
    functionLinenumberEnd: 701
    functionName: print_cert_status
    functionSourceFile: /src/nss/cmd/ocspclnt/ocspclnt.c
    functionUses: 1
    functionsReached:
    - fprintf
    - SECU_Indent
    - print_revoked_info
    linkageType: ''
    returnType: void
    signature: void print_cert_status(FILE *out_file, ocspCertStatus *status, int
      level)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: print_ocsp_cert_id
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:707,1
    - Dst: print_cert_status
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:709,1
    - Dst: SECU_PrintGeneralizedTime
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:711,1
    - Dst: SECU_PrintGeneralizedTime
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:715,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:718,1
    - Dst: fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:719,1
    - Dst: print_ocsp_extensions
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:722,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - out_file
    - single
    - level
    argTypes:
    - FILE*
    - CERTOCSPSingleResponse*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 703
    functionDepth: 3
    functionLinenumber: 703
    functionLinenumberEnd: 724
    functionName: print_single_response
    functionSourceFile: /src/nss/cmd/ocspclnt/ocspclnt.c
    functionUses: 1
    functionsReached:
    - print_ocsp_extensions
    - fprintf
    - print_ocsp_cert_id
    - print_cert_status
    - SECU_Indent
    - SECU_PrintGeneralizedTime
    linkageType: ''
    returnType: void
    signature: "void print_single_response(FILE *out_file, CERTOCSPSingleResponse
      *single,\n                      int level)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SECU_Indent
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:729,1
    - Dst: fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:730,1
    - Dst: fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:734,1
    - Dst: SECU_PrintName
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:735,1
    - Dst: fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:739,1
    - Dst: SECU_PrintAsHex
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:740,1
    - Dst: fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:744,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - out_file
    - responderID
    - level
    argTypes:
    - FILE*
    - ocspResponderID*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 726
    functionDepth: 4
    functionLinenumber: 726
    functionLinenumberEnd: 747
    functionName: print_responder_id
    functionSourceFile: /src/nss/cmd/ocspclnt/ocspclnt.c
    functionUses: 1
    functionsReached:
    - fprintf
    - SECU_PrintAsHex
    - SECU_Indent
    - SECU_PrintName
    linkageType: ''
    returnType: void
    signature: void print_responder_id(FILE *out_file, ocspResponderID *responderID,
      int level)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECU_Indent
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:752,1
    - Dst: fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:753,1
    - Dst: print_ocsp_version
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:756,1
    - Dst: print_responder_id
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:758,1
    - Dst: SECU_PrintGeneralizedTime
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:760,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:767,1
    - Dst: fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:768,1
    - Dst: print_single_response
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:769,1
    - Dst: fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:773,1
    - Dst: print_ocsp_extensions
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:776,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - out_file
    - responseData
    - level
    argTypes:
    - FILE*
    - ocspResponseData*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 749
    functionDepth: 3
    functionLinenumber: 749
    functionLinenumberEnd: 778
    functionName: print_response_data
    functionSourceFile: /src/nss/cmd/ocspclnt/ocspclnt.c
    functionUses: 1
    functionsReached:
    - print_ocsp_extensions
    - fprintf
    - print_ocsp_version
    - print_responder_id
    - print_single_response
    - SECU_Indent
    - SECU_PrintGeneralizedTime
    linkageType: ''
    returnType: void
    signature: void print_response_data(FILE *out_file, ocspResponseData *responseData,
      int level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECU_Indent
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:785,1
    - Dst: fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:786,1
    - Dst: print_response_data
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:789,1
    - Dst: SECU_PrintAlgorithmID
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:791,1
    - Dst: DER_ConvertBitString
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:796,1
    - Dst: SECU_PrintAsHex
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:797,1
    - Dst: print_raw_certificates
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:799,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - out_file
    - basic
    - level
    argTypes:
    - FILE*
    - ocspBasicOCSPResponse*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 780
    functionDepth: 7
    functionLinenumber: 780
    functionLinenumberEnd: 800
    functionName: print_basic_response
    functionSourceFile: /src/nss/cmd/ocspclnt/ocspclnt.c
    functionUses: 1
    functionsReached:
    - DER_ConvertBitString
    - print_raw_certificates
    - fprintf
    - SECU_PrintAlgorithmID
    - SECU_Indent
    - print_response_data
    - SECU_PrintAsHex
    linkageType: ''
    returnType: void
    signature: void print_basic_response(FILE *out_file, ocspBasicOCSPResponse *basic,
      int level)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:825,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:826,1
    - Dst: PORT_SetError
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:828,1
    - Dst: CERT_DecodeOCSPResponse
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:832,1
    - Dst: fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:838,1
    - Dst: fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:841,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:851,1
    - Dst: fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:854,1
    - Dst: SECU_PrintObjectID
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:855,1
    - Dst: print_basic_response
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:859,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:864,1
    - Dst: fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:865,1
    - Dst: CERT_VerifyOCSPResponseSignature
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:869,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:871,1
    - Dst: fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:872,1
    - Dst: fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:874,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:874,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:874,1
    - Dst: fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:876,1
    - Dst: SECU_PrintName
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:878,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:880,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:882,1
    - Dst: fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:883,1
    - Dst: SECU_Indent
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:887,1
    - Dst: fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:888,1
    - Dst: CERT_DestroyOCSPResponse
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:891,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 50
    argCount: 3
    argNames:
    - out_file
    - data
    - handle
    argTypes:
    - FILE*
    - SECItem*
    - CERTCertDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 819
    functionDepth: 4
    functionLinenumber: 819
    functionLinenumberEnd: 893
    functionName: print_response
    functionSourceFile: /src/nss/cmd/ocspclnt/ocspclnt.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SECU_Strerror
    - CERT_VerifyOCSPResponseSignature
    - CERT_DecodeOCSPResponse
    - PORT_GetError
    - CERT_DestroyOCSPResponse
    - fprintf
    - PORT_SetError
    - SECU_PrintObjectID
    - SECU_Indent
    - CERT_DestroyCertificate
    - print_basic_response
    - SECU_PrintName
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus print_response(FILE *out_file, SECItem *data, CERTCertDBHandle
      *handle)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:900,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:901,1
    - Dst: PORT_Strlen
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:903,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 2
    argNames:
    - cert_usage_str
    - cert_usage
    argTypes:
    - char*
    - SECCertUsage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 933
      start: 897
    functionDepth: 1
    functionLinenumber: 897
    functionLinenumberEnd: 933
    functionName: cert_usage_from_char
    functionSourceFile: /src/nss/cmd/ocspclnt/ocspclnt.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_Strlen
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus cert_usage_from_char(const char *cert_usage_str, SECCertUsage
      *cert_usage)
  - BBCount: 55
    BranchProfiles: []
    Callsites:
    - Dst: PL_strrchr
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:958,1
    - Dst: PL_CreateOptState
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:982,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:984,1
    - Dst: PL_GetNextOpt
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:988,1
    - Dst: short_usage
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:991,1
    - Dst: long_usage
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:999,1
    - Dst: PL_DestroyOptState
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:1064,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:1067,1
    - Dst: short_usage
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:1069,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:1075,1
    - Dst: short_usage
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:1077,1
    - Dst: cert_usage_from_char
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:1081,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:1083,1
    - Dst: long_usage
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:1085,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:1098,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:1102,1
    - Dst: short_usage
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:1105,1
    - Dst: DER_AsciiToTime
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:1111,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:1113,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:1114,1
    - Dst: long_usage
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:1115,1
    - Dst: PR_Now
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:1119,1
    - Dst: PR_Init
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:1128,1
    - Dst: SECU_ConfigDirectory
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:1129,1
    - Dst: NSS_Init
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:1130,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:1132,1
    - Dst: SECU_RegisterDynamicOids
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:1135,1
    - Dst: MAKE_FILE_BINARY
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:1138,1
    - Dst: read_file_into_item
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:1139,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:1141,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:1147,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:1149,1
    - Dst: CERT_EnableOCSPChecking
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:1160,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:1162,1
    - Dst: CERT_SetOCSPDefaultResponder
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:1168,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:1171,1
    - Dst: CERT_EnableOCSPDefaultResponder
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:1176,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:1178,1
    - Dst: find_certificate
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:1192,1
    - Dst: NOTYET
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:1197,1
    - Dst: create_request
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:1199,1
    - Dst: NOTYET
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:1203,1
    - Dst: dump_response
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:1205,1
    - Dst: print_request
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:1207,1
    - Dst: print_response
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:1209,1
    - Dst: NOTYET
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:1212,1
    - Dst: get_cert_status
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:1214,1
    - Dst: NOTYET
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:1217,1
    - Dst: verify_cert
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:1219,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:1223,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:1229,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:1233,1
    - Dst: CERT_DisableOCSPDefaultResponder
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:1237,1
    - Dst: CERT_DisableOCSPChecking
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:1238,1
    - Dst: NSS_Shutdown
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:1241,1
    - Dst: PR_Cleanup
      Src: /src/nss/cmd/ocspclnt/ocspclnt.c:1246,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 230
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1248
      start: 935
    functionDepth: 2
    functionLinenumber: 935
    functionLinenumberEnd: 1248
    functionName: main
    functionSourceFile: /src/nss/cmd/ocspclnt/ocspclnt.c
    functionUses: 4
    functionsReached:
    - read_file_into_item
    - PL_strrchr
    - NSS_Init
    - CERT_SetOCSPDefaultResponder
    - PL_DestroyOptState
    - PR_Now
    - NOTYET
    - long_usage
    - CERT_DisableOCSPChecking
    - short_usage
    - get_cert_status
    - DER_AsciiToTime
    - cert_usage_from_char
    - CERT_DisableOCSPDefaultResponder
    - CERT_GetDefaultCertDB
    - MAKE_FILE_BINARY
    - create_request
    - PL_CreateOptState
    - SECITEM_FreeItem
    - PR_Cleanup
    - SECU_PrintError
    - CERT_EnableOCSPChecking
    - print_request
    - PR_Init
    - CERT_EnableOCSPDefaultResponder
    - CERT_DestroyCertificate
    - find_certificate
    - SECU_ConfigDirectory
    - print_response
    - PL_GetNextOpt
    - PR_fprintf
    - verify_cert
    - dump_response
    - NSS_Shutdown
    - SECU_RegisterDynamicOids
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - opt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1185
    functionDepth: 0
    functionLinenumber: 1185
    functionLinenumberEnd: 1190
    functionName: NOTYET
    functionSourceFile: /src/nss/cmd/ocspclnt/ocspclnt.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NOTYET(opt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/strsclnt/strsclnt.c:141,1
    - Dst: exit
      Src: /src/nss/cmd/strsclnt/strsclnt.c:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 180
    functionName: Usage
    functionSourceFile: /src/nss/cmd/strsclnt/strsclnt.c
    functionUses: 90
    functionsReached:
    - fprintf
    - exit
    linkageType: ''
    returnType: void
    signature: void Usage(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetError
      Src: /src/nss/cmd/strsclnt/strsclnt.c:185,1
    - Dst: PR_GetOSError
      Src: /src/nss/cmd/strsclnt/strsclnt.c:186,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/strsclnt/strsclnt.c:187,1
    - Dst: fprintf
      Src: /src/nss/cmd/strsclnt/strsclnt.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - funcString
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 191
    functionName: errWarn
    functionSourceFile: /src/nss/cmd/strsclnt/strsclnt.c
    functionUses: 17
    functionsReached:
    - fprintf
    - SECU_Strerror
    - PR_GetOSError
    - PR_GetError
    linkageType: ''
    returnType: void
    signature: void errWarn(char *funcString)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: errWarn
      Src: /src/nss/cmd/strsclnt/strsclnt.c:196,1
    - Dst: exit
      Src: /src/nss/cmd/strsclnt/strsclnt.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - funcString
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 198
    functionName: errExit
    functionSourceFile: /src/nss/cmd/strsclnt/strsclnt.c
    functionUses: 12
    functionsReached:
    - errWarn
    - exit
    linkageType: ''
    returnType: void
    signature: void errExit(char *funcString)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_GetImplementedCiphers
      Src: /src/nss/cmd/strsclnt/strsclnt.c:209,1
    - Dst: SSL_GetNumImplementedCiphers
      Src: /src/nss/cmd/strsclnt/strsclnt.c:210,1
    - Dst: SSL_CipherPrefSetDefault
      Src: /src/nss/cmd/strsclnt/strsclnt.c:216,1
    - Dst: printf
      Src: /src/nss/cmd/strsclnt/strsclnt.c:218,1
    - Dst: errWarn
      Src: /src/nss/cmd/strsclnt/strsclnt.c:220,1
    - Dst: exit
      Src: /src/nss/cmd/strsclnt/strsclnt.c:221,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 224
    functionName: disableAllSSLCiphers
    functionSourceFile: /src/nss/cmd/strsclnt/strsclnt.c
    functionUses: 2
    functionsReached:
    - SSL_CipherPrefSetDefault
    - printf
    - exit
    - SSL_GetImplementedCiphers
    - SSL_GetNumImplementedCiphers
    - errWarn
    linkageType: ''
    returnType: void
    signature: void disableAllSSLCiphers(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSL_PeerCertificate
      Src: /src/nss/cmd/strsclnt/strsclnt.c:240,1
    - Dst: PRINTF
      Src: /src/nss/cmd/strsclnt/strsclnt.c:242,1
    - Dst: SSL_PeerStapledOCSPResponses
      Src: /src/nss/cmd/strsclnt/strsclnt.c:244,1
    - Dst: PRINTF
      Src: /src/nss/cmd/strsclnt/strsclnt.c:246,1
    - Dst: SSL_AuthCertificate
      Src: /src/nss/cmd/strsclnt/strsclnt.c:250,1
    - Dst: PR_ATOMIC_INCREMENT
      Src: /src/nss/cmd/strsclnt/strsclnt.c:252,1
    - Dst: fputs
      Src: /src/nss/cmd/strsclnt/strsclnt.c:254,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/strsclnt/strsclnt.c:256,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - arg
    - fd
    - checkSig
    - isServer
    argTypes:
    - void*
    - PRFileDesc*
    - PRBool
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 259
    functionName: mySSLAuthCertificate
    functionSourceFile: /src/nss/cmd/strsclnt/strsclnt.c
    functionUses: 0
    functionsReached:
    - SSL_PeerStapledOCSPResponses
    - PR_ATOMIC_INCREMENT
    - fputs
    - SSL_AuthCertificate
    - PRINTF
    - SSL_PeerCertificate
    - CERT_DestroyCertificate
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus mySSLAuthCertificate(void *arg, PRFileDesc *fd, PRBool checkSig,\n
      \                    PRBool isServer)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetError
      Src: /src/nss/cmd/strsclnt/strsclnt.c:264,1
    - Dst: fprintf
      Src: /src/nss/cmd/strsclnt/strsclnt.c:266,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/strsclnt/strsclnt.c:268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - arg
    - fd
    argTypes:
    - void*
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 270
    functionName: myBadCertHandler
    functionSourceFile: /src/nss/cmd/strsclnt/strsclnt.c
    functionUses: 0
    functionsReached:
    - fprintf
    - SECU_Strerror
    - PR_GetError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus myBadCertHandler(void *arg, PRFileDesc *fd)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SSL_GetChannelInfo
      Src: /src/nss/cmd/strsclnt/strsclnt.c:286,1
    - Dst: SSL_GetCipherSuiteInfo
      Src: /src/nss/cmd/strsclnt/strsclnt.c:290,1
    - Dst: FPRINTF
      Src: /src/nss/cmd/strsclnt/strsclnt.c:293,1
    - Dst: FPRINTF
      Src: /src/nss/cmd/strsclnt/strsclnt.c:299,1
    - Dst: SSL_LocalCertificate
      Src: /src/nss/cmd/strsclnt/strsclnt.c:308,1
    - Dst: SSL_PeerCertificate
      Src: /src/nss/cmd/strsclnt/strsclnt.c:310,1
    - Dst: CERT_NameToAscii
      Src: /src/nss/cmd/strsclnt/strsclnt.c:313,1
    - Dst: CERT_NameToAscii
      Src: /src/nss/cmd/strsclnt/strsclnt.c:314,1
    - Dst: fprintf
      Src: /src/nss/cmd/strsclnt/strsclnt.c:316,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/strsclnt/strsclnt.c:317,1
    - Dst: fprintf
      Src: /src/nss/cmd/strsclnt/strsclnt.c:320,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/strsclnt/strsclnt.c:321,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/strsclnt/strsclnt.c:325,1
    - Dst: fprintf
      Src: /src/nss/cmd/strsclnt/strsclnt.c:328,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 1
    argNames:
    - fd
    argTypes:
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 335
    functionName: printSecurityInfo
    functionSourceFile: /src/nss/cmd/strsclnt/strsclnt.c
    functionUses: 3
    functionsReached:
    - CERT_NameToAscii
    - PORT_Free
    - SSL_LocalCertificate
    - SSL_PeerCertificate
    - SSL_GetCipherSuiteInfo
    - fprintf
    - CERT_DestroyCertificate
    - FPRINTF
    - SSL_GetChannelInfo
    linkageType: ''
    returnType: void
    signature: void printSecurityInfo(PRFileDesc *fd)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PR_Now
      Src: /src/nss/cmd/strsclnt/strsclnt.c:369,1
    - Dst: PR_Lock
      Src: /src/nss/cmd/strsclnt/strsclnt.c:371,1
    - Dst: PR_MIN
      Src: /src/nss/cmd/strsclnt/strsclnt.c:392,1
    - Dst: fprintf
      Src: /src/nss/cmd/strsclnt/strsclnt.c:393,1
    - Dst: PR_MAX
      Src: /src/nss/cmd/strsclnt/strsclnt.c:395,1
    - Dst: PR_Unlock
      Src: /src/nss/cmd/strsclnt/strsclnt.c:409,1
    - Dst: PRINTF
      Src: /src/nss/cmd/strsclnt/strsclnt.c:412,1
    - Dst: PR_Sleep
      Src: /src/nss/cmd/strsclnt/strsclnt.c:416,1
    - Dst: PR_SecondsToInterval
      Src: /src/nss/cmd/strsclnt/strsclnt.c:416,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 419
    functionName: thread_wrapper
    functionSourceFile: /src/nss/cmd/strsclnt/strsclnt.c
    functionUses: 0
    functionsReached:
    - PR_SecondsToInterval
    - PR_MIN
    - PR_Now
    - fprintf
    - PRINTF
    - PR_Lock
    - PR_Sleep
    - PR_Unlock
    - PR_MAX
    linkageType: ''
    returnType: void
    signature: void thread_wrapper(void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_Lock
      Src: /src/nss/cmd/strsclnt/strsclnt.c:431,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/strsclnt/strsclnt.c:433,1
    - Dst: PR_Unlock
      Src: /src/nss/cmd/strsclnt/strsclnt.c:435,1
    - Dst: PR_CreateThread
      Src: /src/nss/cmd/strsclnt/strsclnt.c:447,1
    - Dst: PR_Unlock
      Src: /src/nss/cmd/strsclnt/strsclnt.c:452,1
    - Dst: printf
      Src: /src/nss/cmd/strsclnt/strsclnt.c:453,1
    - Dst: PR_Unlock
      Src: /src/nss/cmd/strsclnt/strsclnt.c:458,1
    - Dst: PRINTF
      Src: /src/nss/cmd/strsclnt/strsclnt.c:459,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 4
    argNames:
    - startFunc
    - a
    - b
    - tid
    argTypes:
    - startFn*
    - void*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 462
    functionName: launch_thread
    functionSourceFile: /src/nss/cmd/strsclnt/strsclnt.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - printf
    - PRINTF
    - PR_Lock
    - PR_CreateThread
    - PR_Unlock
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus launch_thread(\n    startFn *startFunc,\n    void *a,\n
      \   void *b,\n    int tid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_JoinThread
      Src: /src/nss/cmd/strsclnt/strsclnt.c:472,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 477
    functionName: reap_threads
    functionSourceFile: /src/nss/cmd/strsclnt/strsclnt.c
    functionUses: 0
    functionsReached:
    - PR_JoinThread
    linkageType: ''
    returnType: int
    signature: int reap_threads(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memset
      Src: /src/nss/cmd/strsclnt/strsclnt.c:482,1
    - Dst: PR_DestroyLock
      Src: /src/nss/cmd/strsclnt/strsclnt.c:485,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 488
    functionName: destroy_thread_data
    functionSourceFile: /src/nss/cmd/strsclnt/strsclnt.c
    functionUses: 0
    functionsReached:
    - PORT_Memset
    - PR_DestroyLock
    linkageType: ''
    returnType: void
    signature: void destroy_thread_data(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_NewLock
      Src: /src/nss/cmd/strsclnt/strsclnt.c:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 494
    functionName: init_thread_data
    functionSourceFile: /src/nss/cmd/strsclnt/strsclnt.c
    functionUses: 0
    functionsReached:
    - PR_NewLock
    linkageType: ''
    returnType: void
    signature: void init_thread_data(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_NewLock
      Src: /src/nss/cmd/strsclnt/strsclnt.c:524,1
    - Dst: PR_NewCondVar
      Src: /src/nss/cmd/strsclnt/strsclnt.c:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - lv
    argTypes:
    - lockedVars*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 526
    functionName: lockedVars_Init
    functionSourceFile: /src/nss/cmd/strsclnt/strsclnt.c
    functionUses: 1
    functionsReached:
    - PR_NewCondVar
    - PR_NewLock
    linkageType: ''
    returnType: void
    signature: void lockedVars_Init(lockedVars *lv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_DestroyCondVar
      Src: /src/nss/cmd/strsclnt/strsclnt.c:531,1
    - Dst: PR_DestroyLock
      Src: /src/nss/cmd/strsclnt/strsclnt.c:534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - lv
    argTypes:
    - lockedVars*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 536
    functionName: lockedVars_Destroy
    functionSourceFile: /src/nss/cmd/strsclnt/strsclnt.c
    functionUses: 1
    functionsReached:
    - PR_DestroyLock
    - PR_DestroyCondVar
    linkageType: ''
    returnType: void
    signature: void lockedVars_Destroy(lockedVars *lv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_Lock
      Src: /src/nss/cmd/strsclnt/strsclnt.c:541,1
    - Dst: PR_WaitCondVar
      Src: /src/nss/cmd/strsclnt/strsclnt.c:543,1
    - Dst: PR_Unlock
      Src: /src/nss/cmd/strsclnt/strsclnt.c:545,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - lv
    argTypes:
    - lockedVars*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 546
    functionName: lockedVars_WaitForDone
    functionSourceFile: /src/nss/cmd/strsclnt/strsclnt.c
    functionUses: 1
    functionsReached:
    - PR_WaitCondVar
    - PR_Lock
    - PR_Unlock
    linkageType: ''
    returnType: void
    signature: void lockedVars_WaitForDone(lockedVars *lv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_Lock
      Src: /src/nss/cmd/strsclnt/strsclnt.c:553,1
    - Dst: PR_NotifyCondVar
      Src: /src/nss/cmd/strsclnt/strsclnt.c:556,1
    - Dst: PR_Unlock
      Src: /src/nss/cmd/strsclnt/strsclnt.c:558,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - lv
    - addend
    argTypes:
    - lockedVars*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 560
    functionName: lockedVars_AddToCount
    functionSourceFile: /src/nss/cmd/strsclnt/strsclnt.c
    functionUses: 2
    functionsReached:
    - PR_NotifyCondVar
    - PR_Lock
    - PR_Unlock
    linkageType: ''
    returnType: int
    signature: int lockedVars_AddToCount(lockedVars *lv, int addend)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_Send
      Src: /src/nss/cmd/strsclnt/strsclnt.c:575,1
    - Dst: errWarn
      Src: /src/nss/cmd/strsclnt/strsclnt.c:578,1
    - Dst: FPRINTF
      Src: /src/nss/cmd/strsclnt/strsclnt.c:581,1
    - Dst: PR_Shutdown
      Src: /src/nss/cmd/strsclnt/strsclnt.c:586,1
    - Dst: lockedVars_AddToCount
      Src: /src/nss/cmd/strsclnt/strsclnt.c:590,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - void*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 562
    functionDepth: 1
    functionLinenumber: 562
    functionLinenumberEnd: 592
    functionName: do_writes
    functionSourceFile: /src/nss/cmd/strsclnt/strsclnt.c
    functionUses: 0
    functionsReached:
    - PR_Shutdown
    - PR_Send
    - lockedVars_AddToCount
    - FPRINTF
    - errWarn
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus do_writes(\n    void *a,\n    void *b,\n    int c)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lockedVars_Init
      Src: /src/nss/cmd/strsclnt/strsclnt.c:603,1
    - Dst: lockedVars_AddToCount
      Src: /src/nss/cmd/strsclnt/strsclnt.c:604,1
    - Dst: launch_thread
      Src: /src/nss/cmd/strsclnt/strsclnt.c:607,1
    - Dst: PR_Malloc
      Src: /src/nss/cmd/strsclnt/strsclnt.c:612,1
    - Dst: PR_Recv
      Src: /src/nss/cmd/strsclnt/strsclnt.c:619,1
    - Dst: errWarn
      Src: /src/nss/cmd/strsclnt/strsclnt.c:621,1
    - Dst: FPRINTF
      Src: /src/nss/cmd/strsclnt/strsclnt.c:625,1
    - Dst: printSecurityInfo
      Src: /src/nss/cmd/strsclnt/strsclnt.c:630,1
    - Dst: lockedVars_AddToCount
      Src: /src/nss/cmd/strsclnt/strsclnt.c:632,1
    - Dst: PR_Free
      Src: /src/nss/cmd/strsclnt/strsclnt.c:633,1
    - Dst: lockedVars_WaitForDone
      Src: /src/nss/cmd/strsclnt/strsclnt.c:638,1
    - Dst: lockedVars_Destroy
      Src: /src/nss/cmd/strsclnt/strsclnt.c:639,1
    - Dst: FPRINTF
      Src: /src/nss/cmd/strsclnt/strsclnt.c:641,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 2
    argNames:
    - ssl_sock
    - connection
    argTypes:
    - PRFileDesc*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 594
    functionDepth: 1
    functionLinenumber: 594
    functionLinenumberEnd: 649
    functionName: handle_fdx_connection
    functionSourceFile: /src/nss/cmd/strsclnt/strsclnt.c
    functionUses: 0
    functionsReached:
    - PR_Malloc
    - lockedVars_Init
    - PR_Free
    - lockedVars_Destroy
    - printSecurityInfo
    - lockedVars_AddToCount
    - FPRINTF
    - errWarn
    - launch_thread
    - lockedVars_WaitForDone
    - PR_Recv
    linkageType: ''
    returnType: int
    signature: int handle_fdx_connection(PRFileDesc *ssl_sock, int connection)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PR_Malloc
      Src: /src/nss/cmd/strsclnt/strsclnt.c:660,1
    - Dst: PR_Send
      Src: /src/nss/cmd/strsclnt/strsclnt.c:666,1
    - Dst: strlen
      Src: /src/nss/cmd/strsclnt/strsclnt.c:666,1
    - Dst: errWarn
      Src: /src/nss/cmd/strsclnt/strsclnt.c:668,1
    - Dst: PR_Free
      Src: /src/nss/cmd/strsclnt/strsclnt.c:669,1
    - Dst: printSecurityInfo
      Src: /src/nss/cmd/strsclnt/strsclnt.c:674,1
    - Dst: PR_Recv
      Src: /src/nss/cmd/strsclnt/strsclnt.c:678,1
    - Dst: errWarn
      Src: /src/nss/cmd/strsclnt/strsclnt.c:683,1
    - Dst: FPRINTF
      Src: /src/nss/cmd/strsclnt/strsclnt.c:689,1
    - Dst: PR_Free
      Src: /src/nss/cmd/strsclnt/strsclnt.c:693,1
    - Dst: FPRINTF
      Src: /src/nss/cmd/strsclnt/strsclnt.c:698,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - ssl_sock
    - tid
    argTypes:
    - PRFileDesc*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 653
    functionDepth: 1
    functionLinenumber: 653
    functionLinenumberEnd: 703
    functionName: handle_connection
    functionSourceFile: /src/nss/cmd/strsclnt/strsclnt.c
    functionUses: 2
    functionsReached:
    - PR_Malloc
    - PR_Send
    - PR_Free
    - printSecurityInfo
    - FPRINTF
    - errWarn
    - PR_Recv
    - strlen
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus handle_connection(PRFileDesc *ssl_sock, int tid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_ATOMIC_SET
      Src: /src/nss/cmd/strsclnt/strsclnt.c:714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - socket
    - arg
    argTypes:
    - PRFileDesc*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 711
    functionDepth: 1
    functionLinenumber: 711
    functionLinenumberEnd: 715
    functionName: myHandshakeCallback
    functionSourceFile: /src/nss/cmd/strsclnt/strsclnt.c
    functionUses: 0
    functionsReached:
    - PR_ATOMIC_SET
    linkageType: ''
    returnType: void
    signature: void myHandshakeCallback(PRFileDesc *socket, void *arg)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: PR_OpenTCPSocket
      Src: /src/nss/cmd/strsclnt/strsclnt.c:739,1
    - Dst: errExit
      Src: /src/nss/cmd/strsclnt/strsclnt.c:741,1
    - Dst: PR_SetSocketOption
      Src: /src/nss/cmd/strsclnt/strsclnt.c:746,1
    - Dst: errWarn
      Src: /src/nss/cmd/strsclnt/strsclnt.c:748,1
    - Dst: PR_Close
      Src: /src/nss/cmd/strsclnt/strsclnt.c:749,1
    - Dst: PR_SetSocketOption
      Src: /src/nss/cmd/strsclnt/strsclnt.c:756,1
    - Dst: errWarn
      Src: /src/nss/cmd/strsclnt/strsclnt.c:758,1
    - Dst: PR_Close
      Src: /src/nss/cmd/strsclnt/strsclnt.c:759,1
    - Dst: PR_Connect
      Src: /src/nss/cmd/strsclnt/strsclnt.c:764,1
    - Dst: PR_GetError
      Src: /src/nss/cmd/strsclnt/strsclnt.c:766,1
    - Dst: PR_GetOSError
      Src: /src/nss/cmd/strsclnt/strsclnt.c:767,1
    - Dst: PR_Now
      Src: /src/nss/cmd/strsclnt/strsclnt.c:769,1
    - Dst: PR_Lock
      Src: /src/nss/cmd/strsclnt/strsclnt.c:770,1
    - Dst: PR_MAX
      Src: /src/nss/cmd/strsclnt/strsclnt.c:771,1
    - Dst: PR_Unlock
      Src: /src/nss/cmd/strsclnt/strsclnt.c:772,1
    - Dst: PR_SetError
      Src: /src/nss/cmd/strsclnt/strsclnt.c:773,1
    - Dst: PR_Close
      Src: /src/nss/cmd/strsclnt/strsclnt.c:779,1
    - Dst: PR_Lock
      Src: /src/nss/cmd/strsclnt/strsclnt.c:780,1
    - Dst: fprintf
      Src: /src/nss/cmd/strsclnt/strsclnt.c:783,1
    - Dst: PR_Unlock
      Src: /src/nss/cmd/strsclnt/strsclnt.c:786,1
    - Dst: fprintf
      Src: /src/nss/cmd/strsclnt/strsclnt.c:789,1
    - Dst: exit
      Src: /src/nss/cmd/strsclnt/strsclnt.c:791,1
    - Dst: PR_Sleep
      Src: /src/nss/cmd/strsclnt/strsclnt.c:793,1
    - Dst: PR_MillisecondsToInterval
      Src: /src/nss/cmd/strsclnt/strsclnt.c:793,1
    - Dst: errWarn
      Src: /src/nss/cmd/strsclnt/strsclnt.c:797,1
    - Dst: PR_Now
      Src: /src/nss/cmd/strsclnt/strsclnt.c:801,1
    - Dst: PR_Lock
      Src: /src/nss/cmd/strsclnt/strsclnt.c:802,1
    - Dst: PR_MAX
      Src: /src/nss/cmd/strsclnt/strsclnt.c:803,1
    - Dst: PR_Unlock
      Src: /src/nss/cmd/strsclnt/strsclnt.c:804,1
    - Dst: SSL_ImportFD
      Src: /src/nss/cmd/strsclnt/strsclnt.c:808,1
    - Dst: PR_Close
      Src: /src/nss/cmd/strsclnt/strsclnt.c:811,1
    - Dst: PR_ATOMIC_INCREMENT
      Src: /src/nss/cmd/strsclnt/strsclnt.c:820,1
    - Dst: PR_ATOMIC_INCREMENT
      Src: /src/nss/cmd/strsclnt/strsclnt.c:831,1
    - Dst: PR_snprintf
      Src: /src/nss/cmd/strsclnt/strsclnt.c:836,1
    - Dst: SSL_SetSockPeerID
      Src: /src/nss/cmd/strsclnt/strsclnt.c:838,1
    - Dst: SSL_HandshakeCallback
      Src: /src/nss/cmd/strsclnt/strsclnt.c:839,1
    - Dst: SSL_OptionSet
      Src: /src/nss/cmd/strsclnt/strsclnt.c:843,1
    - Dst: SSL_ResetHandshake
      Src: /src/nss/cmd/strsclnt/strsclnt.c:846,1
    - Dst: errWarn
      Src: /src/nss/cmd/strsclnt/strsclnt.c:848,1
    - Dst: PR_ATOMIC_INCREMENT
      Src: /src/nss/cmd/strsclnt/strsclnt.c:852,1
    - Dst: handle_fdx_connection
      Src: /src/nss/cmd/strsclnt/strsclnt.c:855,1
    - Dst: handle_connection
      Src: /src/nss/cmd/strsclnt/strsclnt.c:857,1
    - Dst: PR_ATOMIC_DECREMENT
      Src: /src/nss/cmd/strsclnt/strsclnt.c:860,1
    - Dst: PR_Close
      Src: /src/nss/cmd/strsclnt/strsclnt.c:864,1
    - Dst: PR_Close
      Src: /src/nss/cmd/strsclnt/strsclnt.c:866,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 98
    argCount: 3
    argNames:
    - a
    - b
    - tid
    argTypes:
    - void*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 722
    functionDepth: 1
    functionLinenumber: 722
    functionLinenumberEnd: 869
    functionName: do_connects
    functionSourceFile: /src/nss/cmd/strsclnt/strsclnt.c
    functionUses: 0
    functionsReached:
    - PR_MillisecondsToInterval
    - PR_ATOMIC_DECREMENT
    - PR_Now
    - fprintf
    - PR_snprintf
    - handle_fdx_connection
    - PR_ATOMIC_INCREMENT
    - PR_Connect
    - errExit
    - PR_Lock
    - PR_SetError
    - PR_Unlock
    - SSL_ImportFD
    - SSL_OptionSet
    - SSL_SetSockPeerID
    - SSL_ResetHandshake
    - PR_SetSocketOption
    - exit
    - PR_Close
    - PR_MAX
    - handle_connection
    - PR_GetOSError
    - PR_OpenTCPSocket
    - SSL_HandshakeCallback
    - PR_Sleep
    - PR_GetError
    - errWarn
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus do_connects(\n    void *a,\n    void *b,\n    int tid)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nss/cmd/strsclnt/strsclnt.c:882,1
    - Dst: CERT_FindUserCertByUsage
      Src: /src/nss/cmd/strsclnt/strsclnt.c:885,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/cmd/strsclnt/strsclnt.c:885,1
    - Dst: PK11_FindKeyByAnyCert
      Src: /src/nss/cmd/strsclnt/strsclnt.c:889,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - Cert_And_Key
    argTypes:
    - cert_and_key*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 879
    functionDepth: 1
    functionLinenumber: 879
    functionLinenumberEnd: 896
    functionName: FindCertAndKey
    functionSourceFile: /src/nss/cmd/strsclnt/strsclnt.c
    functionUses: 0
    functionsReached:
    - strcmp
    - CERT_GetDefaultCertDB
    - CERT_FindUserCertByUsage
    - PK11_FindKeyByAnyCert
    linkageType: ''
    returnType: PRBool
    signature: PRBool FindCertAndKey(cert_and_key *Cert_And_Key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_NeedLogin
      Src: /src/nss/cmd/strsclnt/strsclnt.c:902,1
    - Dst: PK11_IsLoggedIn
      Src: /src/nss/cmd/strsclnt/strsclnt.c:903,1
    - Dst: PK11_NeedLogin
      Src: /src/nss/cmd/strsclnt/strsclnt.c:904,1
    - Dst: PK11_IsLoggedIn
      Src: /src/nss/cmd/strsclnt/strsclnt.c:905,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 5
    argCount: 2
    argNames:
    - cert
    - key
    argTypes:
    - CERTCertificate*
    - SECKEYPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 898
    functionDepth: 1
    functionLinenumber: 898
    functionLinenumberEnd: 910
    functionName: LoggedIn
    functionSourceFile: /src/nss/cmd/strsclnt/strsclnt.c
    functionUses: 3
    functionsReached:
    - PK11_IsLoggedIn
    - PK11_NeedLogin
    linkageType: ''
    returnType: PRBool
    signature: PRBool LoggedIn(CERTCertificate *cert, SECKEYPrivateKey *key)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: PR_Lock
      Src: /src/nss/cmd/strsclnt/strsclnt.c:933,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/cmd/strsclnt/strsclnt.c:936,1
    - Dst: SECKEY_CopyPrivateKey
      Src: /src/nss/cmd/strsclnt/strsclnt.c:940,1
    - Dst: PR_Unlock
      Src: /src/nss/cmd/strsclnt/strsclnt.c:942,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/strsclnt/strsclnt.c:947,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/cmd/strsclnt/strsclnt.c:951,1
    - Dst: LoggedIn
      Src: /src/nss/cmd/strsclnt/strsclnt.c:957,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/strsclnt/strsclnt.c:961,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/cmd/strsclnt/strsclnt.c:962,1
    - Dst: PR_Lock
      Src: /src/nss/cmd/strsclnt/strsclnt.c:966,1
    - Dst: LoggedIn
      Src: /src/nss/cmd/strsclnt/strsclnt.c:968,1
    - Dst: PR_Unlock
      Src: /src/nss/cmd/strsclnt/strsclnt.c:970,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/strsclnt/strsclnt.c:974,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/cmd/strsclnt/strsclnt.c:975,1
    - Dst: FindCertAndKey
      Src: /src/nss/cmd/strsclnt/strsclnt.c:980,1
    - Dst: PR_Sleep
      Src: /src/nss/cmd/strsclnt/strsclnt.c:981,1
    - Dst: PR_SecondsToInterval
      Src: /src/nss/cmd/strsclnt/strsclnt.c:981,1
    - Dst: printf
      Src: /src/nss/cmd/strsclnt/strsclnt.c:984,1
    - Dst: exit
      Src: /src/nss/cmd/strsclnt/strsclnt.c:985,1
    - Dst: PR_Unlock
      Src: /src/nss/cmd/strsclnt/strsclnt.c:988,1
    - Dst: CERT_GetCertNicknames
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1011,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1011,1
    - Dst: CERT_FindUserCertByUsage
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1015,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1015,1
    - Dst: CERT_CheckCertValidTimes
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1021,1
    - Dst: PR_Now
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1021,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1023,1
    - Dst: NSS_CmpCertChainWCANames
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1026,1
    - Dst: PK11_FindKeyByAnyCert
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1028,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1033,1
    - Dst: CERT_FreeNicknames
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1035,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 90
    argCount: 5
    argNames:
    - arg
    - socket
    - caNames
    - pRetCert
    - pRetKey
    argTypes:
    - void*
    - PRFileDesc*
    - struct CERTDistNamesStr*
    - struct CERTCertificateStr**
    - struct SECKEYPrivateKeyStr**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1043
      start: 912
    functionDepth: 2
    functionLinenumber: 912
    functionLinenumberEnd: 1043
    functionName: StressClient_GetClientAuthData
    functionSourceFile: /src/nss/cmd/strsclnt/strsclnt.c
    functionUses: 0
    functionsReached:
    - CERT_FreeNicknames
    - printf
    - PR_Now
    - CERT_DupCertificate
    - CERT_GetCertNicknames
    - FindCertAndKey
    - PK11_FindKeyByAnyCert
    - SECKEY_CopyPrivateKey
    - PR_Lock
    - CERT_GetDefaultCertDB
    - PR_Unlock
    - NSS_CmpCertChainWCANames
    - LoggedIn
    - PR_SecondsToInterval
    - exit
    - CERT_CheckCertValidTimes
    - CERT_FindUserCertByUsage
    - CERT_DestroyCertificate
    - PR_Sleep
    - SECKEY_DestroyPrivateKey
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus StressClient_GetClientAuthData(void *arg,\n                               PRFileDesc
      *socket,\n                               struct CERTDistNamesStr *caNames,\n
      \                              struct CERTCertificateStr **pRetCert,\n                               struct
      SECKEYPrivateKeyStr **pRetKey)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1045
    functionDepth: 0
    functionLinenumber: 1045
    functionLinenumberEnd: 1056
    functionName: hexchar_to_int
    functionSourceFile: /src/nss/cmd/strsclnt/strsclnt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hexchar_to_int(int c)
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: PR_StringToNetAddr
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1074,1
    - Dst: PR_htons
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1076,1
    - Dst: PR_GetAddrInfoByName
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1082,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1085,1
    - Dst: PR_EnumerateAddrInfo
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1089,1
    - Dst: PR_FreeAddrInfo
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1097,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1099,1
    - Dst: NSS_SetDomesticPolicy
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1105,1
    - Dst: disableAllSSLCiphers
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1112,1
    - Dst: hexchar_to_int
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1119,1
    - Dst: hexchar_to_int
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1121,1
    - Dst: hexchar_to_int
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1123,1
    - Dst: hexchar_to_int
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1125,1
    - Dst: fprintf
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1127,1
    - Dst: isalpha
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1133,1
    - Dst: tolower
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1134,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1135,1
    - Dst: fprintf
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1140,1
    - Dst: SSL_CipherPrefSetDefault
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1146,1
    - Dst: fprintf
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1148,1
    - Dst: PR_OpenTCPSocket
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1159,1
    - Dst: errExit
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1161,1
    - Dst: SSL_ImportFD
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1164,1
    - Dst: errExit
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1166,1
    - Dst: SSL_OptionSet
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1171,1
    - Dst: errExit
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1173,1
    - Dst: SSL_VersionRangeSet
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1176,1
    - Dst: errExit
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1178,1
    - Dst: SSL_SignatureSchemePrefSet
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1182,1
    - Dst: errExit
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1185,1
    - Dst: SSL_OptionSet
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1190,1
    - Dst: errExit
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1192,1
    - Dst: SSL_OptionSet
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1197,1
    - Dst: errExit
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1199,1
    - Dst: SSL_OptionSet
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1204,1
    - Dst: errExit
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1206,1
    - Dst: SSL_OptionSet
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1211,1
    - Dst: errExit
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1213,1
    - Dst: SSL_OptionSet
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1217,1
    - Dst: errExit
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1219,1
    - Dst: SSL_OptionSet
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1223,1
    - Dst: errExit
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1225,1
    - Dst: SSL_OptionSet
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1229,1
    - Dst: errExit
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1231,1
    - Dst: SSL_SetPKCS11PinArg
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1234,1
    - Dst: SSL_SetURL
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1236,1
    - Dst: SSL_AuthCertificateHook
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1238,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1239,1
    - Dst: SSL_BadCertHook
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1240,1
    - Dst: SSL_GetClientAuthDataHook
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1242,1
    - Dst: SSL_SetURL
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1245,1
    - Dst: init_thread_data
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1251,1
    - Dst: launch_thread
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1260,1
    - Dst: reap_threads
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1262,1
    - Dst: PR_MIN
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1266,1
    - Dst: launch_thread
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1269,1
    - Dst: reap_threads
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1271,1
    - Dst: destroy_thread_data
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1273,1
    - Dst: PR_Close
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1275,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 150
    argCount: 7
    argNames:
    - port
    - connections
    - Cert_And_Key
    - hostName
    - sniHostName
    - allowIPv4
    - allowIPv6
    argTypes:
    - unsigned short
    - int
    - cert_and_key*
    - char*
    - char*
    - PRBool
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1276
      start: 1058
    functionDepth: 1
    functionLinenumber: 1058
    functionLinenumberEnd: 1276
    functionName: client_main
    functionSourceFile: /src/nss/cmd/strsclnt/strsclnt.c
    functionUses: 0
    functionsReached:
    - SSL_GetClientAuthDataHook
    - NSS_SetDomesticPolicy
    - SSL_CipherPrefSetDefault
    - destroy_thread_data
    - PR_EnumerateAddrInfo
    - hexchar_to_int
    - SSL_BadCertHook
    - fprintf
    - PR_FreeAddrInfo
    - init_thread_data
    - PR_GetAddrInfoByName
    - errExit
    - disableAllSSLCiphers
    - reap_threads
    - PR_ARRAY_SIZE
    - CERT_GetDefaultCertDB
    - SSL_ImportFD
    - SSL_OptionSet
    - SSL_VersionRangeSet
    - tolower
    - SECU_PrintError
    - PR_MIN
    - SSL_SetPKCS11PinArg
    - SSL_SetURL
    - PR_htons
    - launch_thread
    - SSL_AuthCertificateHook
    - PR_Close
    - PR_StringToNetAddr
    - SSL_SignatureSchemePrefSet
    - isalpha
    - PR_OpenTCPSocket
    linkageType: ''
    returnType: void
    signature: "void client_main(\n    unsigned short port,\n    int connections,\n
      \   cert_and_key *Cert_And_Key,\n    const char *hostName,\n    const char *sniHostName,\n
      \   PRBool allowIPv4,\n    PRBool allowIPv6)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetFileInfo
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1288,1
    - Dst: PR_Open
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1293,1
    - Dst: PORT_Strlen
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1295,1
    - Dst: PORT_Malloc
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1297,1
    - Dst: errWarn
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1299,1
    - Dst: PORT_Memcpy
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1303,1
    - Dst: PR_Read
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1305,1
    - Dst: errWarn
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1307,1
    - Dst: PR_Close
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1312,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - fileName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1315
      start: 1278
    functionDepth: 1
    functionLinenumber: 1278
    functionLinenumberEnd: 1315
    functionName: readBigFile
    functionSourceFile: /src/nss/cmd/strsclnt/strsclnt.c
    functionUses: 1
    functionsReached:
    - PORT_Memcpy
    - PR_Close
    - PORT_Strlen
    - PORT_Malloc
    - PR_Open
    - PR_Read
    - PR_GetFileInfo
    - errWarn
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus readBigFile(const char *fileName)
  - BBCount: 57
    BranchProfiles: []
    Callsites:
    - Dst: PR_Init
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1338,1
    - Dst: SSL_VersionRangeGetSupported
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1339,1
    - Dst: strrchr
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1341,1
    - Dst: strrchr
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1343,1
    - Dst: PL_CreateOptState
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1348,1
    - Dst: PL_GetNextOpt
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1350,1
    - Dst: fprintf
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1354,1
    - Dst: Usage
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1355,1
    - Dst: fprintf
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1362,1
    - Dst: Usage
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1363,1
    - Dst: parseSigSchemeList
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1380,1
    - Dst: PL_DestroyOptState
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1382,1
    - Dst: fprintf
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1383,1
    - Dst: Usage
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1384,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1393,1
    - Dst: SECU_ParseSSLVersionRangeString
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1405,1
    - Dst: fprintf
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1408,1
    - Dst: Usage
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1409,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1414,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1418,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1438,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1446,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1458,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1473,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1478,1
    - Dst: Usage
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1487,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1489,1
    - Dst: Usage
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1494,1
    - Dst: PL_DestroyOptState
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1498,1
    - Dst: Usage
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1501,1
    - Dst: Usage
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1504,1
    - Dst: Usage
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1507,1
    - Dst: readBigFile
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1510,1
    - Dst: PK11_SetPasswordFunc
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1512,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1514,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1516,1
    - Dst: PR_SecondsToInterval
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1518,1
    - Dst: NSS_Initialize
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1523,1
    - Dst: fputs
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1525,1
    - Dst: exit
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1526,1
    - Dst: SSL_GetStatistics
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1528,1
    - Dst: PR_NewLock
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1529,1
    - Dst: FindCertAndKey
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1535,1
    - Dst: fprintf
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1538,1
    - Dst: exit
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1539,1
    - Dst: fprintf
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1543,1
    - Dst: exit
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1545,1
    - Dst: client_main
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1549,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1554,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1557,1
    - Dst: PR_DestroyLock
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1560,1
    - Dst: PL_strfree
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1563,1
    - Dst: PL_strfree
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1566,1
    - Dst: PL_strfree
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1569,1
    - Dst: PL_strfree
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1572,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1574,1
    - Dst: printf
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1577,1
    - Dst: printf
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1595,1
    - Dst: SSL_ClearSessionCache
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1603,1
    - Dst: NSS_Shutdown
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1604,1
    - Dst: printf
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1605,1
    - Dst: exit
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1606,1
    - Dst: PR_Cleanup
      Src: /src/nss/cmd/strsclnt/strsclnt.c:1609,1
    CyclomaticComplexity: 68
    EdgeCount: 68
    ICount: 200
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1611
      start: 1317
    functionDepth: 3
    functionLinenumber: 1317
    functionLinenumberEnd: 1611
    functionName: main
    functionSourceFile: /src/nss/cmd/strsclnt/strsclnt.c
    functionUses: 5
    functionsReached:
    - PORT_Atoi
    - SSL_ClearSessionCache
    - fputs
    - printf
    - PR_GetEnvSecure
    - PL_DestroyOptState
    - fprintf
    - Usage
    - PL_strfree
    - FindCertAndKey
    - SSL_GetStatistics
    - SECU_ParseSSLVersionRangeString
    - SSL_VersionRangeGetSupported
    - PR_NewLock
    - PL_CreateOptState
    - strrchr
    - PR_Cleanup
    - parseSigSchemeList
    - PR_SecondsToInterval
    - PR_Init
    - exit
    - PL_strdup
    - CERT_DestroyCertificate
    - PK11_SetPasswordFunc
    - PR_DestroyLock
    - PL_GetNextOpt
    - PORT_Free
    - readBigFile
    - NSS_Initialize
    - NSS_Shutdown
    - client_main
    - SECKEY_DestroyPrivateKey
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_fprintf
      Src: /src/nss/cmd/vfyserv/vfyserv.c:60,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/vfyserv/vfyserv.c:64,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/vfyserv/vfyserv.c:65,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/vfyserv/vfyserv.c:68,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/vfyserv/vfyserv.c:71,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/vfyserv/vfyserv.c:74,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/vfyserv/vfyserv.c:77,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/vfyserv/vfyserv.c:80,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/vfyserv/vfyserv.c:83,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/vfyserv/vfyserv.c:86,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/vfyserv/vfyserv.c:92,1
    - Dst: exit
      Src: /src/nss/cmd/vfyserv/vfyserv.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - progName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 97
    functionName: Usage
    functionSourceFile: /src/nss/cmd/vfyserv/vfyserv.c
    functionUses: 93
    functionsReached:
    - PR_fprintf
    - exit
    linkageType: ''
    returnType: void
    signature: void Usage(const char *progName)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PR_NewTCPSocket
      Src: /src/nss/cmd/vfyserv/vfyserv.c:108,1
    - Dst: errWarn
      Src: /src/nss/cmd/vfyserv/vfyserv.c:110,1
    - Dst: PR_SetSocketOption
      Src: /src/nss/cmd/vfyserv/vfyserv.c:117,1
    - Dst: errWarn
      Src: /src/nss/cmd/vfyserv/vfyserv.c:119,1
    - Dst: SSL_ImportFD
      Src: /src/nss/cmd/vfyserv/vfyserv.c:124,1
    - Dst: errWarn
      Src: /src/nss/cmd/vfyserv/vfyserv.c:126,1
    - Dst: SSL_OptionSet
      Src: /src/nss/cmd/vfyserv/vfyserv.c:131,1
    - Dst: errWarn
      Src: /src/nss/cmd/vfyserv/vfyserv.c:133,1
    - Dst: SSL_OptionSet
      Src: /src/nss/cmd/vfyserv/vfyserv.c:137,1
    - Dst: errWarn
      Src: /src/nss/cmd/vfyserv/vfyserv.c:139,1
    - Dst: SSL_GetClientAuthDataHook
      Src: /src/nss/cmd/vfyserv/vfyserv.c:144,1
    - Dst: errWarn
      Src: /src/nss/cmd/vfyserv/vfyserv.c:148,1
    - Dst: SSL_AuthCertificateHook
      Src: /src/nss/cmd/vfyserv/vfyserv.c:152,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/cmd/vfyserv/vfyserv.c:154,1
    - Dst: errWarn
      Src: /src/nss/cmd/vfyserv/vfyserv.c:156,1
    - Dst: SSL_BadCertHook
      Src: /src/nss/cmd/vfyserv/vfyserv.c:160,1
    - Dst: errWarn
      Src: /src/nss/cmd/vfyserv/vfyserv.c:163,1
    - Dst: SSL_HandshakeCallback
      Src: /src/nss/cmd/vfyserv/vfyserv.c:167,1
    - Dst: errWarn
      Src: /src/nss/cmd/vfyserv/vfyserv.c:171,1
    - Dst: PR_Close
      Src: /src/nss/cmd/vfyserv/vfyserv.c:179,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 60
    argCount: 1
    argNames:
    - addr
    argTypes:
    - PRNetAddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 181
    functionName: setupSSLSocket
    functionSourceFile: /src/nss/cmd/vfyserv/vfyserv.c
    functionUses: 0
    functionsReached:
    - PR_NewTCPSocket
    - SSL_GetClientAuthDataHook
    - PR_SetSocketOption
    - SSL_HandshakeCallback
    - PR_Close
    - SSL_BadCertHook
    - CERT_GetDefaultCertDB
    - SSL_ImportFD
    - SSL_OptionSet
    - errWarn
    - SSL_AuthCertificateHook
    linkageType: ''
    returnType: PRFileDesc
    signature: 'PRFileDesc *

      setupSSLSocket(PRNetAddr *addr)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/vfyserv/vfyserv.c:192,1
    - Dst: exitErr
      Src: /src/nss/cmd/vfyserv/vfyserv.c:194,1
    - Dst: PR_Write
      Src: /src/nss/cmd/vfyserv/vfyserv.c:199,1
    - Dst: strlen
      Src: /src/nss/cmd/vfyserv/vfyserv.c:199,1
    - Dst: errWarn
      Src: /src/nss/cmd/vfyserv/vfyserv.c:201,1
    - Dst: PR_Free
      Src: /src/nss/cmd/vfyserv/vfyserv.c:202,1
    - Dst: PR_Read
      Src: /src/nss/cmd/vfyserv/vfyserv.c:209,1
    - Dst: errWarn
      Src: /src/nss/cmd/vfyserv/vfyserv.c:214,1
    - Dst: printSecurityInfo
      Src: /src/nss/cmd/vfyserv/vfyserv.c:220,1
    - Dst: PR_Free
      Src: /src/nss/cmd/vfyserv/vfyserv.c:222,1
    - Dst: fprintf
      Src: /src/nss/cmd/vfyserv/vfyserv.c:227,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - sslSocket
    - connection
    argTypes:
    - PRFileDesc*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 232
    functionName: handle_connection
    functionSourceFile: /src/nss/cmd/vfyserv/vfyserv.c
    functionUses: 3
    functionsReached:
    - PORT_Alloc
    - PR_Free
    - fprintf
    - PR_Read
    - PR_Write
    - exitErr
    - printSecurityInfo
    - errWarn
    - strlen
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus handle_connection(PRFileDesc *sslSocket, int connection)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 235
    functionName: BYTE
    functionSourceFile: /src/nss/cmd/vfyserv/vfyserv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTE(n, i)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: setupSSLSocket
      Src: /src/nss/cmd/vfyserv/vfyserv.c:252,1
    - Dst: errWarn
      Src: /src/nss/cmd/vfyserv/vfyserv.c:254,1
    - Dst: SSL_SetPKCS11PinArg
      Src: /src/nss/cmd/vfyserv/vfyserv.c:258,1
    - Dst: errWarn
      Src: /src/nss/cmd/vfyserv/vfyserv.c:260,1
    - Dst: SSL_SetURL
      Src: /src/nss/cmd/vfyserv/vfyserv.c:264,1
    - Dst: errWarn
      Src: /src/nss/cmd/vfyserv/vfyserv.c:266,1
    - Dst: PR_GetHostByName
      Src: /src/nss/cmd/vfyserv/vfyserv.c:271,1
    - Dst: errWarn
      Src: /src/nss/cmd/vfyserv/vfyserv.c:273,1
    - Dst: PR_EnumerateHostEnt
      Src: /src/nss/cmd/vfyserv/vfyserv.c:277,1
    - Dst: errWarn
      Src: /src/nss/cmd/vfyserv/vfyserv.c:279,1
    - Dst: PR_ntohl
      Src: /src/nss/cmd/vfyserv/vfyserv.c:283,1
    - Dst: fprintf
      Src: /src/nss/cmd/vfyserv/vfyserv.c:284,1
    - Dst: BYTE
      Src: /src/nss/cmd/vfyserv/vfyserv.c:286,1
    - Dst: BYTE
      Src: /src/nss/cmd/vfyserv/vfyserv.c:286,1
    - Dst: BYTE
      Src: /src/nss/cmd/vfyserv/vfyserv.c:286,1
    - Dst: BYTE
      Src: /src/nss/cmd/vfyserv/vfyserv.c:287,1
    - Dst: PR_ntohs
      Src: /src/nss/cmd/vfyserv/vfyserv.c:287,1
    - Dst: PR_Connect
      Src: /src/nss/cmd/vfyserv/vfyserv.c:289,1
    - Dst: errWarn
      Src: /src/nss/cmd/vfyserv/vfyserv.c:291,1
    - Dst: SSL_ForceHandshake
      Src: /src/nss/cmd/vfyserv/vfyserv.c:297,1
    - Dst: errWarn
      Src: /src/nss/cmd/vfyserv/vfyserv.c:299,1
    - Dst: SSL_ResetHandshake
      Src: /src/nss/cmd/vfyserv/vfyserv.c:304,1
    - Dst: errWarn
      Src: /src/nss/cmd/vfyserv/vfyserv.c:306,1
    - Dst: PR_Close
      Src: /src/nss/cmd/vfyserv/vfyserv.c:307,1
    - Dst: errWarn
      Src: /src/nss/cmd/vfyserv/vfyserv.c:309,1
    - Dst: handle_connection
      Src: /src/nss/cmd/vfyserv/vfyserv.c:314,1
    - Dst: PR_Close
      Src: /src/nss/cmd/vfyserv/vfyserv.c:318,1
    - Dst: errWarn
      Src: /src/nss/cmd/vfyserv/vfyserv.c:320,1
    - Dst: PR_Close
      Src: /src/nss/cmd/vfyserv/vfyserv.c:325,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 57
    argCount: 2
    argNames:
    - a
    - connection
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 239
    functionDepth: 2
    functionLinenumber: 239
    functionLinenumberEnd: 327
    functionName: do_connects
    functionSourceFile: /src/nss/cmd/vfyserv/vfyserv.c
    functionUses: 0
    functionsReached:
    - PR_ntohl
    - SSL_ForceHandshake
    - handle_connection
    - PR_Connect
    - PR_GetHostByName
    - SSL_ResetHandshake
    - PR_ntohs
    - SSL_SetPKCS11PinArg
    - PR_EnumerateHostEnt
    - PR_Close
    - fprintf
    - setupSSLSocket
    - SSL_SetURL
    - errWarn
    - BYTE
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus do_connects(void *a, int connection)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetHostByName
      Src: /src/nss/cmd/vfyserv/vfyserv.c:341,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/vfyserv/vfyserv.c:343,1
    - Dst: exitErr
      Src: /src/nss/cmd/vfyserv/vfyserv.c:344,1
    - Dst: PR_EnumerateHostEnt
      Src: /src/nss/cmd/vfyserv/vfyserv.c:347,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/vfyserv/vfyserv.c:349,1
    - Dst: exitErr
      Src: /src/nss/cmd/vfyserv/vfyserv.c:350,1
    - Dst: launch_thread
      Src: /src/nss/cmd/vfyserv/vfyserv.c:353,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/vfyserv/vfyserv.c:355,1
    - Dst: exitErr
      Src: /src/nss/cmd/vfyserv/vfyserv.c:356,1
    - Dst: reap_threads
      Src: /src/nss/cmd/vfyserv/vfyserv.c:361,1
    - Dst: launch_thread
      Src: /src/nss/cmd/vfyserv/vfyserv.c:364,1
    - Dst: errWarn
      Src: /src/nss/cmd/vfyserv/vfyserv.c:366,1
    - Dst: reap_threads
      Src: /src/nss/cmd/vfyserv/vfyserv.c:371,1
    - Dst: destroy_thread_data
      Src: /src/nss/cmd/vfyserv/vfyserv.c:372,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - connections
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 373
    functionName: client_main
    functionSourceFile: /src/nss/cmd/vfyserv/vfyserv.c
    functionUses: 1
    functionsReached:
    - destroy_thread_data
    - PR_GetHostByName
    - PORT_Free
    - reap_threads
    - PR_EnumerateHostEnt
    - exitErr
    - errWarn
    - launch_thread
    linkageType: ''
    returnType: void
    signature: void client_main(int connections)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 385
    functionName: HEXCHAR_TO_INT
    functionSourceFile: /src/nss/cmd/vfyserv/vfyserv.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HEXCHAR_TO_INT(c, i)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: PR_Init
      Src: /src/nss/cmd/vfyserv/vfyserv.c:401,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/vfyserv/vfyserv.c:403,1
    - Dst: PL_CreateOptState
      Src: /src/nss/cmd/vfyserv/vfyserv.c:406,1
    - Dst: PL_GetNextOpt
      Src: /src/nss/cmd/vfyserv/vfyserv.c:407,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/vfyserv/vfyserv.c:410,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/vfyserv/vfyserv.c:416,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/vfyserv/vfyserv.c:419,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/vfyserv/vfyserv.c:422,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/vfyserv/vfyserv.c:428,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/vfyserv/vfyserv.c:432,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/vfyserv/vfyserv.c:437,1
    - Dst: PL_strdup
      Src: /src/nss/cmd/vfyserv/vfyserv.c:440,1
    - Dst: Usage
      Src: /src/nss/cmd/vfyserv/vfyserv.c:443,1
    - Dst: PL_DestroyOptState
      Src: /src/nss/cmd/vfyserv/vfyserv.c:446,1
    - Dst: Usage
      Src: /src/nss/cmd/vfyserv/vfyserv.c:454,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/vfyserv/vfyserv.c:459,1
    - Dst: Usage
      Src: /src/nss/cmd/vfyserv/vfyserv.c:461,1
    - Dst: PK11_SetPasswordFunc
      Src: /src/nss/cmd/vfyserv/vfyserv.c:464,1
    - Dst: NSS_Init
      Src: /src/nss/cmd/vfyserv/vfyserv.c:468,1
    - Dst: PR_Free
      Src: /src/nss/cmd/vfyserv/vfyserv.c:469,1
    - Dst: NSS_NoDB_Init
      Src: /src/nss/cmd/vfyserv/vfyserv.c:472,1
    - Dst: SECMOD_AddNewModule
      Src: /src/nss/cmd/vfyserv/vfyserv.c:475,1
    - Dst: exitErr
      Src: /src/nss/cmd/vfyserv/vfyserv.c:479,1
    - Dst: SECU_RegisterDynamicOids
      Src: /src/nss/cmd/vfyserv/vfyserv.c:481,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/cmd/vfyserv/vfyserv.c:485,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/vfyserv/vfyserv.c:487,1
    - Dst: CERT_EnableOCSPChecking
      Src: /src/nss/cmd/vfyserv/vfyserv.c:491,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/vfyserv/vfyserv.c:493,1
    - Dst: CERT_SetOCSPDefaultResponder
      Src: /src/nss/cmd/vfyserv/vfyserv.c:498,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/vfyserv/vfyserv.c:501,1
    - Dst: CERT_EnableOCSPDefaultResponder
      Src: /src/nss/cmd/vfyserv/vfyserv.c:506,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/vfyserv/vfyserv.c:508,1
    - Dst: NSS_SetDomesticPolicy
      Src: /src/nss/cmd/vfyserv/vfyserv.c:517,1
    - Dst: SSL_CipherPrefSetDefault
      Src: /src/nss/cmd/vfyserv/vfyserv.c:518,1
    - Dst: disableAllSSLCiphers
      Src: /src/nss/cmd/vfyserv/vfyserv.c:525,1
    - Dst: HEXCHAR_TO_INT
      Src: /src/nss/cmd/vfyserv/vfyserv.c:533,1
    - Dst: HEXCHAR_TO_INT
      Src: /src/nss/cmd/vfyserv/vfyserv.c:536,1
    - Dst: HEXCHAR_TO_INT
      Src: /src/nss/cmd/vfyserv/vfyserv.c:539,1
    - Dst: HEXCHAR_TO_INT
      Src: /src/nss/cmd/vfyserv/vfyserv.c:542,1
    - Dst: isalpha
      Src: /src/nss/cmd/vfyserv/vfyserv.c:546,1
    - Dst: Usage
      Src: /src/nss/cmd/vfyserv/vfyserv.c:547,1
    - Dst: tolower
      Src: /src/nss/cmd/vfyserv/vfyserv.c:548,1
    - Dst: SSL_CipherPrefSetDefault
      Src: /src/nss/cmd/vfyserv/vfyserv.c:554,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/vfyserv/vfyserv.c:556,1
    - Dst: Usage
      Src: /src/nss/cmd/vfyserv/vfyserv.c:561,1
    - Dst: client_main
      Src: /src/nss/cmd/vfyserv/vfyserv.c:566,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/cmd/vfyserv/vfyserv.c:570,1
    - Dst: CERT_DisableOCSPDefaultResponder
      Src: /src/nss/cmd/vfyserv/vfyserv.c:571,1
    - Dst: CERT_DisableOCSPChecking
      Src: /src/nss/cmd/vfyserv/vfyserv.c:572,1
    - Dst: NSS_Shutdown
      Src: /src/nss/cmd/vfyserv/vfyserv.c:575,1
    - Dst: exit
      Src: /src/nss/cmd/vfyserv/vfyserv.c:576,1
    - Dst: PR_Cleanup
      Src: /src/nss/cmd/vfyserv/vfyserv.c:579,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/vfyserv/vfyserv.c:580,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 140
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 386
    functionDepth: 1
    functionLinenumber: 386
    functionLinenumberEnd: 582
    functionName: main
    functionSourceFile: /src/nss/cmd/vfyserv/vfyserv.c
    functionUses: 6
    functionsReached:
    - PORT_Atoi
    - NSS_SetDomesticPolicy
    - SSL_CipherPrefSetDefault
    - NSS_Init
    - CERT_SetOCSPDefaultResponder
    - PR_Free
    - PL_DestroyOptState
    - CERT_DisableOCSPChecking
    - Usage
    - disableAllSSLCiphers
    - CERT_DisableOCSPDefaultResponder
    - exitErr
    - CERT_GetDefaultCertDB
    - PL_CreateOptState
    - PR_Cleanup
    - tolower
    - SECU_PrintError
    - CERT_EnableOCSPChecking
    - PR_Init
    - exit
    - PL_strdup
    - CERT_EnableOCSPDefaultResponder
    - PK11_SetPasswordFunc
    - SECMOD_AddNewModule
    - NSS_NoDB_Init
    - isalpha
    - PL_GetNextOpt
    - PORT_Free
    - NSS_Shutdown
    - SECU_RegisterDynamicOids
    - client_main
    - HEXCHAR_TO_INT
    - PORT_Strdup
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/vfyserv/vfyutil.c:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - info
    - retry
    - arg
    argTypes:
    - PK11SlotInfo*
    - PRBool
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 69
    functionName: myPasswd
    functionSourceFile: /src/nss/cmd/vfyserv/vfyutil.c
    functionUses: 0
    functionsReached:
    - PORT_Strdup
    linkageType: ''
    returnType: char
    signature: 'char *

      myPasswd(PK11SlotInfo *info, PRBool retry, void *arg)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: errWarn
      Src: /src/nss/cmd/vfyserv/vfyutil.c:91,1
    - Dst: SSL_PeerCertificateChain
      Src: /src/nss/cmd/vfyserv/vfyutil.c:103,1
    - Dst: CERT_LIST_EMPTY
      Src: /src/nss/cmd/vfyserv/vfyutil.c:108,1
    - Dst: CERT_LIST_HEAD
      Src: /src/nss/cmd/vfyserv/vfyutil.c:108,1
    - Dst: CERT_DestroyCertList
      Src: /src/nss/cmd/vfyserv/vfyutil.c:109,1
    - Dst: CERT_LIST_HEAD
      Src: /src/nss/cmd/vfyserv/vfyutil.c:112,1
    - Dst: SSL_RevealPinArg
      Src: /src/nss/cmd/vfyserv/vfyutil.c:114,1
    - Dst: dumpCertChain
      Src: /src/nss/cmd/vfyserv/vfyutil.c:117,1
    - Dst: CERT_VerifyCertificateNow
      Src: /src/nss/cmd/vfyserv/vfyutil.c:120,1
    - Dst: SECU_printCertProblems
      Src: /src/nss/cmd/vfyserv/vfyutil.c:129,1
    - Dst: CERT_DestroyCertList
      Src: /src/nss/cmd/vfyserv/vfyutil.c:131,1
    - Dst: SSL_RevealURL
      Src: /src/nss/cmd/vfyserv/vfyutil.c:142,1
    - Dst: CERT_VerifyCertName
      Src: /src/nss/cmd/vfyserv/vfyutil.c:145,1
    - Dst: PR_SetError
      Src: /src/nss/cmd/vfyserv/vfyutil.c:147,1
    - Dst: PR_Free
      Src: /src/nss/cmd/vfyserv/vfyutil.c:152,1
    - Dst: CERT_DestroyCertList
      Src: /src/nss/cmd/vfyserv/vfyutil.c:154,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 4
    argNames:
    - arg
    - socket
    - checksig
    - isServer
    argTypes:
    - void*
    - PRFileDesc*
    - PRBool
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 78
    functionDepth: 3
    functionLinenumber: 78
    functionLinenumberEnd: 156
    functionName: myAuthCertificate
    functionSourceFile: /src/nss/cmd/vfyserv/vfyutil.c
    functionUses: 0
    functionsReached:
    - dumpCertChain
    - SSL_RevealURL
    - CERT_VerifyCertificateNow
    - SSL_PeerCertificateChain
    - CERT_LIST_HEAD
    - SSL_RevealPinArg
    - SECU_printCertProblems
    - PR_Free
    - CERT_VerifyCertName
    - PR_SetError
    - CERT_LIST_EMPTY
    - errWarn
    - CERT_DestroyCertList
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus myAuthCertificate(void *arg, PRFileDesc *socket,\n                  PRBool
      checksig, PRBool isServer)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PORT_GetError
      Src: /src/nss/cmd/vfyserv/vfyutil.c:180,1
    - Dst: fprintf
      Src: /src/nss/cmd/vfyserv/vfyutil.c:208,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/vfyserv/vfyutil.c:208,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 2
    argNames:
    - arg
    - socket
    argTypes:
    - void*
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 211
    functionName: myBadCertHandler
    functionSourceFile: /src/nss/cmd/vfyserv/vfyutil.c
    functionUses: 0
    functionsReached:
    - fprintf
    - PORT_GetError
    - SECU_Strerror
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus myBadCertHandler(void *arg, PRFileDesc *socket)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: SSL_RevealPinArg
      Src: /src/nss/cmd/vfyserv/vfyutil.c:232,1
    - Dst: PK11_FindCertFromNickname
      Src: /src/nss/cmd/vfyserv/vfyutil.c:235,1
    - Dst: PK11_FindKeyByAnyCert
      Src: /src/nss/cmd/vfyserv/vfyutil.c:237,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/vfyserv/vfyutil.c:241,1
    - Dst: CERT_GetCertNicknames
      Src: /src/nss/cmd/vfyserv/vfyutil.c:248,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/cmd/vfyserv/vfyutil.c:248,1
    - Dst: PK11_FindCertFromNickname
      Src: /src/nss/cmd/vfyserv/vfyutil.c:254,1
    - Dst: CERT_CheckCertValidTimes
      Src: /src/nss/cmd/vfyserv/vfyutil.c:261,1
    - Dst: PR_Now
      Src: /src/nss/cmd/vfyserv/vfyutil.c:261,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/vfyserv/vfyutil.c:263,1
    - Dst: NSS_CmpCertChainWCANames
      Src: /src/nss/cmd/vfyserv/vfyutil.c:267,1
    - Dst: PK11_FindKeyByAnyCert
      Src: /src/nss/cmd/vfyserv/vfyutil.c:269,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/vfyserv/vfyutil.c:275,1
    - Dst: CERT_FreeNicknames
      Src: /src/nss/cmd/vfyserv/vfyutil.c:277,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 5
    argNames:
    - arg
    - socket
    - caNames
    - pRetCert
    - pRetKey
    argTypes:
    - void*
    - PRFileDesc*
    - struct CERTDistNamesStr*
    - struct CERTCertificateStr**
    - struct SECKEYPrivateKeyStr**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 287
    functionName: myGetClientAuthData
    functionSourceFile: /src/nss/cmd/vfyserv/vfyutil.c
    functionUses: 0
    functionsReached:
    - CERT_FreeNicknames
    - SSL_RevealPinArg
    - NSS_CmpCertChainWCANames
    - CERT_CheckCertValidTimes
    - PR_Now
    - CERT_GetDefaultCertDB
    - CERT_DestroyCertificate
    - CERT_GetCertNicknames
    - PK11_FindCertFromNickname
    - PK11_FindKeyByAnyCert
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus myGetClientAuthData(void *arg,\n                    PRFileDesc
      *socket,\n                    struct CERTDistNamesStr *caNames,\n                    struct
      CERTCertificateStr **pRetCert,\n                    struct SECKEYPrivateKeyStr
      **pRetKey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/vfyserv/vfyutil.c:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - socket
    - arg
    argTypes:
    - PRFileDesc*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 316
    functionName: myHandshakeCallback
    functionSourceFile: /src/nss/cmd/vfyserv/vfyutil.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void myHandshakeCallback(PRFileDesc *socket, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CipherPrefSetDefault
      Src: /src/nss/cmd/vfyserv/vfyutil.c:334,1
    - Dst: fprintf
      Src: /src/nss/cmd/vfyserv/vfyutil.c:336,1
    - Dst: errWarn
      Src: /src/nss/cmd/vfyserv/vfyutil.c:339,1
    - Dst: exit
      Src: /src/nss/cmd/vfyserv/vfyutil.c:340,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 343
    functionName: disableAllSSLCiphers
    functionSourceFile: /src/nss/cmd/vfyserv/vfyutil.c
    functionUses: 4
    functionsReached:
    - fprintf
    - errWarn
    - SSL_CipherPrefSetDefault
    - exit
    linkageType: ''
    returnType: void
    signature: void disableAllSSLCiphers(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetError
      Src: /src/nss/cmd/vfyserv/vfyutil.c:354,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/vfyserv/vfyutil.c:355,1
    - Dst: fprintf
      Src: /src/nss/cmd/vfyserv/vfyutil.c:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - function
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 359
    functionName: errWarn
    functionSourceFile: /src/nss/cmd/vfyserv/vfyutil.c
    functionUses: 30
    functionsReached:
    - fprintf
    - SECU_Strerror
    - PR_GetError
    linkageType: ''
    returnType: void
    signature: void errWarn(char *function)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: errWarn
      Src: /src/nss/cmd/vfyserv/vfyutil.c:364,1
    - Dst: NSS_Shutdown
      Src: /src/nss/cmd/vfyserv/vfyutil.c:367,1
    - Dst: PR_Cleanup
      Src: /src/nss/cmd/vfyserv/vfyutil.c:368,1
    - Dst: exit
      Src: /src/nss/cmd/vfyserv/vfyutil.c:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - function
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 370
    functionName: exitErr
    functionSourceFile: /src/nss/cmd/vfyserv/vfyutil.c
    functionUses: 4
    functionsReached:
    - errWarn
    - PR_Cleanup
    - exit
    - NSS_Shutdown
    linkageType: ''
    returnType: void
    signature: void exitErr(char *function)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_GetStatistics
      Src: /src/nss/cmd/vfyserv/vfyutil.c:382,1
    - Dst: SSL_SecurityStatus
      Src: /src/nss/cmd/vfyserv/vfyutil.c:388,1
    - Dst: fprintf
      Src: /src/nss/cmd/vfyserv/vfyutil.c:391,1
    - Dst: PR_Free
      Src: /src/nss/cmd/vfyserv/vfyutil.c:396,1
    - Dst: PR_Free
      Src: /src/nss/cmd/vfyserv/vfyutil.c:397,1
    - Dst: PR_Free
      Src: /src/nss/cmd/vfyserv/vfyutil.c:398,1
    - Dst: fprintf
      Src: /src/nss/cmd/vfyserv/vfyutil.c:400,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - outfile
    - fd
    argTypes:
    - FILE*
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 404
    functionName: printSecurityInfo
    functionSourceFile: /src/nss/cmd/vfyserv/vfyutil.c
    functionUses: 6
    functionsReached:
    - SSL_SecurityStatus
    - fprintf
    - SSL_GetStatistics
    - PR_Free
    linkageType: ''
    returnType: void
    signature: void printSecurityInfo(FILE *outfile, PRFileDesc *fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_Lock
      Src: /src/nss/cmd/vfyserv/vfyutil.c:417,1
    - Dst: PR_Unlock
      Src: /src/nss/cmd/vfyserv/vfyutil.c:418,1
    - Dst: PR_Lock
      Src: /src/nss/cmd/vfyserv/vfyutil.c:422,1
    - Dst: PR_NotifyCondVar
      Src: /src/nss/cmd/vfyserv/vfyutil.c:426,1
    - Dst: PR_Unlock
      Src: /src/nss/cmd/vfyserv/vfyutil.c:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 429
    functionName: thread_wrapper
    functionSourceFile: /src/nss/cmd/vfyserv/vfyutil.c
    functionUses: 0
    functionsReached:
    - PR_NotifyCondVar
    - PR_Lock
    - PR_Unlock
    linkageType: ''
    returnType: void
    signature: void thread_wrapper(void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PR_NewLock
      Src: /src/nss/cmd/vfyserv/vfyutil.c:441,1
    - Dst: PR_NewCondVar
      Src: /src/nss/cmd/vfyserv/vfyutil.c:442,1
    - Dst: PR_NewCondVar
      Src: /src/nss/cmd/vfyserv/vfyutil.c:443,1
    - Dst: PR_Lock
      Src: /src/nss/cmd/vfyserv/vfyutil.c:445,1
    - Dst: PR_WaitCondVar
      Src: /src/nss/cmd/vfyserv/vfyutil.c:447,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/vfyserv/vfyutil.c:457,1
    - Dst: PR_Unlock
      Src: /src/nss/cmd/vfyserv/vfyutil.c:458,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/vfyserv/vfyutil.c:462,1
    - Dst: PR_CreateThread
      Src: /src/nss/cmd/vfyserv/vfyutil.c:472,1
    - Dst: PR_Unlock
      Src: /src/nss/cmd/vfyserv/vfyutil.c:478,1
    - Dst: printf
      Src: /src/nss/cmd/vfyserv/vfyutil.c:479,1
    - Dst: PR_Unlock
      Src: /src/nss/cmd/vfyserv/vfyutil.c:486,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    argCount: 4
    argNames:
    - threadMGR
    - startFunc
    - a
    - b
    argTypes:
    - GlobalThreadMgr*
    - startFn*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 489
    functionName: launch_thread
    functionSourceFile: /src/nss/cmd/vfyserv/vfyutil.c
    functionUses: 4
    functionsReached:
    - PORT_Assert
    - PR_NewCondVar
    - PR_WaitCondVar
    - printf
    - PR_Lock
    - PR_CreateThread
    - PR_NewLock
    - PR_Unlock
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus launch_thread(GlobalThreadMgr *threadMGR,\n              startFn
      *startFunc,\n              void *a,\n              int b)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PR_Lock
      Src: /src/nss/cmd/vfyserv/vfyutil.c:499,1
    - Dst: PR_WaitCondVar
      Src: /src/nss/cmd/vfyserv/vfyutil.c:501,1
    - Dst: PR_JoinThread
      Src: /src/nss/cmd/vfyserv/vfyutil.c:508,1
    - Dst: PR_NotifyCondVar
      Src: /src/nss/cmd/vfyserv/vfyutil.c:513,1
    - Dst: fprintf
      Src: /src/nss/cmd/vfyserv/vfyutil.c:522,1
    - Dst: PR_Unlock
      Src: /src/nss/cmd/vfyserv/vfyutil.c:526,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - threadMGR
    argTypes:
    - GlobalThreadMgr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 528
    functionName: reap_threads
    functionSourceFile: /src/nss/cmd/vfyserv/vfyutil.c
    functionUses: 2
    functionsReached:
    - PR_WaitCondVar
    - fprintf
    - PR_NotifyCondVar
    - PR_Lock
    - PR_JoinThread
    - PR_Unlock
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus reap_threads(GlobalThreadMgr *threadMGR)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memset
      Src: /src/nss/cmd/vfyserv/vfyutil.c:533,1
    - Dst: PR_DestroyCondVar
      Src: /src/nss/cmd/vfyserv/vfyutil.c:536,1
    - Dst: PR_DestroyCondVar
      Src: /src/nss/cmd/vfyserv/vfyutil.c:540,1
    - Dst: PR_DestroyLock
      Src: /src/nss/cmd/vfyserv/vfyutil.c:544,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - threadMGR
    argTypes:
    - GlobalThreadMgr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 547
    functionName: destroy_thread_data
    functionSourceFile: /src/nss/cmd/vfyserv/vfyutil.c
    functionUses: 2
    functionsReached:
    - PORT_Memset
    - PR_DestroyLock
    - PR_DestroyCondVar
    linkageType: ''
    returnType: void
    signature: void destroy_thread_data(GlobalThreadMgr *threadMGR)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_NewLock
      Src: /src/nss/cmd/vfyserv/vfyutil.c:558,1
    - Dst: PR_NewCondVar
      Src: /src/nss/cmd/vfyserv/vfyutil.c:559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - lv
    argTypes:
    - lockedVars*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 553
    functionDepth: 0
    functionLinenumber: 553
    functionLinenumberEnd: 560
    functionName: lockedVars_Init
    functionSourceFile: /src/nss/cmd/vfyserv/vfyutil.c
    functionUses: 2
    functionsReached:
    - PR_NewCondVar
    - PR_NewLock
    linkageType: ''
    returnType: void
    signature: void lockedVars_Init(lockedVars *lv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_DestroyCondVar
      Src: /src/nss/cmd/vfyserv/vfyutil.c:565,1
    - Dst: PR_DestroyLock
      Src: /src/nss/cmd/vfyserv/vfyutil.c:568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - lv
    argTypes:
    - lockedVars*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 570
    functionName: lockedVars_Destroy
    functionSourceFile: /src/nss/cmd/vfyserv/vfyutil.c
    functionUses: 2
    functionsReached:
    - PR_DestroyLock
    - PR_DestroyCondVar
    linkageType: ''
    returnType: void
    signature: void lockedVars_Destroy(lockedVars *lv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_Lock
      Src: /src/nss/cmd/vfyserv/vfyutil.c:575,1
    - Dst: PR_WaitCondVar
      Src: /src/nss/cmd/vfyserv/vfyutil.c:577,1
    - Dst: PR_Unlock
      Src: /src/nss/cmd/vfyserv/vfyutil.c:579,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - lv
    argTypes:
    - lockedVars*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 580
    functionName: lockedVars_WaitForDone
    functionSourceFile: /src/nss/cmd/vfyserv/vfyutil.c
    functionUses: 2
    functionsReached:
    - PR_WaitCondVar
    - PR_Lock
    - PR_Unlock
    linkageType: ''
    returnType: void
    signature: void lockedVars_WaitForDone(lockedVars *lv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_Lock
      Src: /src/nss/cmd/vfyserv/vfyutil.c:587,1
    - Dst: PR_NotifyCondVar
      Src: /src/nss/cmd/vfyserv/vfyutil.c:590,1
    - Dst: PR_Unlock
      Src: /src/nss/cmd/vfyserv/vfyutil.c:592,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - lv
    - addend
    argTypes:
    - lockedVars*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 582
    functionDepth: 0
    functionLinenumber: 582
    functionLinenumberEnd: 594
    functionName: lockedVars_AddToCount
    functionSourceFile: /src/nss/cmd/vfyserv/vfyutil.c
    functionUses: 4
    functionsReached:
    - PR_NotifyCondVar
    - PR_Lock
    - PR_Unlock
    linkageType: ''
    returnType: int
    signature: int lockedVars_AddToCount(lockedVars *lv, int addend)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CERT_CertChainFromCert
      Src: /src/nss/cmd/vfyserv/vfyutil.c:609,1
    - Dst: errWarn
      Src: /src/nss/cmd/vfyserv/vfyutil.c:611,1
    - Dst: PR_snprintf
      Src: /src/nss/cmd/vfyserv/vfyutil.c:619,1
    - Dst: PR_Open
      Src: /src/nss/cmd/vfyserv/vfyutil.c:621,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/vfyserv/vfyutil.c:624,1
    - Dst: PR_Write
      Src: /src/nss/cmd/vfyserv/vfyutil.c:628,1
    - Dst: PR_Close
      Src: /src/nss/cmd/vfyserv/vfyutil.c:629,1
    - Dst: PR_fprintf
      Src: /src/nss/cmd/vfyserv/vfyutil.c:630,1
    - Dst: CERT_DestroyCertificateList
      Src: /src/nss/cmd/vfyserv/vfyutil.c:633,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - cert
    - usage
    argTypes:
    - CERTCertificate*
    - SECCertUsage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 603
    functionDepth: 1
    functionLinenumber: 603
    functionLinenumberEnd: 634
    functionName: dumpCertChain
    functionSourceFile: /src/nss/cmd/vfyserv/vfyutil.c
    functionUses: 1
    functionsReached:
    - PR_snprintf
    - PR_fprintf
    - PR_Close
    - CERT_DestroyCertificateList
    - PR_Open
    - PR_Write
    - errWarn
    - CERT_CertChainFromCert
    linkageType: ''
    returnType: void
    signature: void dumpCertChain(CERTCertificate *cert, SECCertUsage usage)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/oidcalc/oidcalc.c:21,1
    - Dst: exit
      Src: /src/nss/cmd/oidcalc/oidcalc.c:22,1
    - Dst: strchr
      Src: /src/nss/cmd/oidcalc/oidcalc.c:27,1
    - Dst: fprintf
      Src: /src/nss/cmd/oidcalc/oidcalc.c:30,1
    - Dst: exit
      Src: /src/nss/cmd/oidcalc/oidcalc.c:31,1
    - Dst: atoi
      Src: /src/nss/cmd/oidcalc/oidcalc.c:35,1
    - Dst: strchr
      Src: /src/nss/cmd/oidcalc/oidcalc.c:39,1
    - Dst: atoi
      Src: /src/nss/cmd/oidcalc/oidcalc.c:45,1
    - Dst: fprintf
      Src: /src/nss/cmd/oidcalc/oidcalc.c:48,1
    - Dst: exit
      Src: /src/nss/cmd/oidcalc/oidcalc.c:49,1
    - Dst: fprintf
      Src: /src/nss/cmd/oidcalc/oidcalc.c:53,1
    - Dst: exit
      Src: /src/nss/cmd/oidcalc/oidcalc.c:54,1
    - Dst: printf
      Src: /src/nss/cmd/oidcalc/oidcalc.c:57,1
    - Dst: strchr
      Src: /src/nss/cmd/oidcalc/oidcalc.c:61,1
    - Dst: memset
      Src: /src/nss/cmd/oidcalc/oidcalc.c:67,1
    - Dst: atoi
      Src: /src/nss/cmd/oidcalc/oidcalc.c:68,1
    - Dst: printf
      Src: /src/nss/cmd/oidcalc/oidcalc.c:78,1
    - Dst: printf
      Src: /src/nss/cmd/oidcalc/oidcalc.c:80,1
    - Dst: printf
      Src: /src/nss/cmd/oidcalc/oidcalc.c:84,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 52
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 86
    functionName: main
    functionSourceFile: /src/nss/cmd/oidcalc/oidcalc.c
    functionUses: 6
    functionsReached:
    - strchr
    - printf
    - atoi
    - exit
    - fprintf
    - memset
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_Open
      Src: /src/nss/cmd/crmftest/testcrmf.c:117,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:120,1
    - Dst: PR_Write
      Src: /src/nss/cmd/crmftest/testcrmf.c:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - src
    - filePath
    argTypes:
    - SECItem*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 124
    functionName: debug_test
    functionSourceFile: /src/nss/cmd/crmftest/testcrmf.c
    functionUses: 0
    functionsReached:
    - PR_Open
    - PR_Write
    - printf
    linkageType: ''
    returnType: void
    signature: void debug_test(SECItem *src, char *filePath)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/cmd/crmftest/testcrmf.c:132,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/cmd/crmftest/testcrmf.c:135,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - dest
    argTypes:
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 144
    functionName: get_serial_number
    functionSourceFile: /src/nss/cmd/crmftest/testcrmf.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PK11_GenerateRandom
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus get_serial_number(long *dest)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZNew
      Src: /src/nss/cmd/crmftest/testcrmf.c:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 160
    functionName: GetRSAParams
    functionSourceFile: /src/nss/cmd/crmftest/testcrmf.c
    functionUses: 0
    functionsReached:
    - PORT_ZNew
    linkageType: ''
    returnType: PK11RSAGenParams
    signature: 'PK11RSAGenParams *

      GetRSAParams(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_PQG_ParamGen
      Src: /src/nss/cmd/crmftest/testcrmf.c:170,1
    - Dst: PK11_PQG_DestroyVerify
      Src: /src/nss/cmd/crmftest/testcrmf.c:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 176
    functionName: GetDSAParams
    functionSourceFile: /src/nss/cmd/crmftest/testcrmf.c
    functionUses: 0
    functionsReached:
    - PK11_PQG_ParamGen
    - PK11_PQG_DestroyVerify
    linkageType: ''
    returnType: PQGParams
    signature: 'PQGParams *

      GetDSAParams(void)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetInternalKeySlot
      Src: /src/nss/cmd/crmftest/testcrmf.c:189,1
    - Dst: PK11_Authenticate
      Src: /src/nss/cmd/crmftest/testcrmf.c:190,1
    - Dst: GetRSAParams
      Src: /src/nss/cmd/crmftest/testcrmf.c:193,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/cmd/crmftest/testcrmf.c:195,1
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/cmd/crmftest/testcrmf.c:198,1
    - Dst: GetDSAParams
      Src: /src/nss/cmd/crmftest/testcrmf.c:202,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/cmd/crmftest/testcrmf.c:204,1
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/cmd/crmftest/testcrmf.c:207,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/cmd/crmftest/testcrmf.c:211,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/cmd/crmftest/testcrmf.c:214,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/cmd/crmftest/testcrmf.c:217,1
    - Dst: SECKEY_CreateSubjectPublicKeyInfo
      Src: /src/nss/cmd/crmftest/testcrmf.c:222,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 1
    argNames:
    - pair
    argTypes:
    - TESTKeyPair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 226
    functionName: GetSubjectPubKeyInfo
    functionSourceFile: /src/nss/cmd/crmftest/testcrmf.c
    functionUses: 0
    functionsReached:
    - GetDSAParams
    - PK11_GetInternalKeySlot
    - SECKEY_DestroyPublicKey
    - PK11_GenerateKeyPair
    - GetRSAParams
    - SECKEY_DestroyPrivateKey
    - SECKEY_CreateSubjectPublicKeyInfo
    - PK11_FreeSlot
    - PK11_Authenticate
    linkageType: ''
    returnType: CERTSubjectPublicKeyInfo
    signature: 'CERTSubjectPublicKeyInfo *

      GetSubjectPubKeyInfo(TESTKeyPair *pair)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PK11_SetPasswordFunc
      Src: /src/nss/cmd/crmftest/testcrmf.c:233,1
    - Dst: PK11_GetInternalKeySlot
      Src: /src/nss/cmd/crmftest/testcrmf.c:235,1
    - Dst: PK11_NeedUserInit
      Src: /src/nss/cmd/crmftest/testcrmf.c:237,1
    - Dst: PK11_NeedLogin
      Src: /src/nss/cmd/crmftest/testcrmf.c:237,1
    - Dst: SECU_ChangePW
      Src: /src/nss/cmd/crmftest/testcrmf.c:238,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:239,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/cmd/crmftest/testcrmf.c:244,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 228
    functionDepth: 2
    functionLinenumber: 228
    functionLinenumberEnd: 246
    functionName: InitPKCS11
    functionSourceFile: /src/nss/cmd/crmftest/testcrmf.c
    functionUses: 0
    functionsReached:
    - SECU_ChangePW
    - PK11_GetInternalKeySlot
    - PK11_NeedUserInit
    - printf
    - PK11_NeedLogin
    - PK11_SetPasswordFunc
    - PK11_FreeSlot
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus InitPKCS11(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_Write
      Src: /src/nss/cmd/crmftest/testcrmf.c:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - arg
    - buf
    - len
    argTypes:
    - void*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 254
    functionName: WriteItOut
    functionSourceFile: /src/nss/cmd/crmftest/testcrmf.c
    functionUses: 0
    functionsReached:
    - PR_Write
    linkageType: ''
    returnType: void
    signature: void WriteItOut(void *arg, const char *buf, unsigned long len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZNew
      Src: /src/nss/cmd/crmftest/testcrmf.c:264,1
    - Dst: CRMF_CreateCertExtension
      Src: /src/nss/cmd/crmftest/testcrmf.c:270,1
    - Dst: PORT_ZNewArray
      Src: /src/nss/cmd/crmftest/testcrmf.c:273,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 277
    functionName: GetExtensions
    functionSourceFile: /src/nss/cmd/crmftest/testcrmf.c
    functionUses: 0
    functionsReached:
    - CRMF_CreateCertExtension
    - PORT_ZNewArray
    - PORT_ZNew
    linkageType: ''
    returnType: CRMFCertExtCreationInfo
    signature: 'CRMFCertExtCreationInfo *

      GetExtensions(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRMF_DestroyCertExtension
      Src: /src/nss/cmd/crmftest/testcrmf.c:285,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/crmftest/testcrmf.c:287,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/crmftest/testcrmf.c:288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - extInfo
    argTypes:
    - CRMFCertExtCreationInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 289
    functionName: FreeExtInfo
    functionSourceFile: /src/nss/cmd/crmftest/testcrmf.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - CRMF_DestroyCertExtension
    linkageType: ''
    returnType: void
    signature: void FreeExtInfo(CRMFCertExtCreationInfo *extInfo)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/crmftest/testcrmf.c:300,1
    - Dst: CERT_AsciiToName
      Src: /src/nss/cmd/crmftest/testcrmf.c:303,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:305,1
    - Dst: CRMF_CertRequestSetTemplateField
      Src: /src/nss/cmd/crmftest/testcrmf.c:310,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:312,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/crmftest/testcrmf.c:317,1
    - Dst: CERT_DestroyName
      Src: /src/nss/cmd/crmftest/testcrmf.c:319,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - certReq
    - inTemplateField
    - inNameString
    argTypes:
    - CRMFCertRequest*
    - CRMFCertTemplateField
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 321
    functionName: InjectCertName
    functionSourceFile: /src/nss/cmd/crmftest/testcrmf.c
    functionUses: 0
    functionsReached:
    - CERT_AsciiToName
    - PORT_Free
    - printf
    - CERT_DestroyName
    - CRMF_CertRequestSetTemplateField
    - PORT_Strdup
    linkageType: ''
    returnType: int
    signature: "int InjectCertName(CRMFCertRequest *certReq,\n               CRMFCertTemplateField
      inTemplateField,\n               const char *inNameString)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: CRMF_CreateCertRequest
      Src: /src/nss/cmd/crmftest/testcrmf.c:348,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:350,1
    - Dst: CRMF_CertRequestSetTemplateField
      Src: /src/nss/cmd/crmftest/testcrmf.c:355,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:358,1
    - Dst: CRMF_DestroyCertRequest
      Src: /src/nss/cmd/crmftest/testcrmf.c:360,1
    - Dst: get_serial_number
      Src: /src/nss/cmd/crmftest/testcrmf.c:365,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:366,1
    - Dst: CRMF_DestroyCertRequest
      Src: /src/nss/cmd/crmftest/testcrmf.c:367,1
    - Dst: CRMF_CertRequestSetTemplateField
      Src: /src/nss/cmd/crmftest/testcrmf.c:370,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:373,1
    - Dst: CRMF_DestroyCertRequest
      Src: /src/nss/cmd/crmftest/testcrmf.c:374,1
    - Dst: InjectCertName
      Src: /src/nss/cmd/crmftest/testcrmf.c:379,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:382,1
    - Dst: CRMF_DestroyCertRequest
      Src: /src/nss/cmd/crmftest/testcrmf.c:383,1
    - Dst: InjectCertName
      Src: /src/nss/cmd/crmftest/testcrmf.c:388,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:391,1
    - Dst: CRMF_DestroyCertRequest
      Src: /src/nss/cmd/crmftest/testcrmf.c:392,1
    - Dst: PK11_CreatePBEAlgorithmID
      Src: /src/nss/cmd/crmftest/testcrmf.c:397,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:400,1
    - Dst: CRMF_DestroyCertRequest
      Src: /src/nss/cmd/crmftest/testcrmf.c:401,1
    - Dst: CRMF_CertRequestSetTemplateField
      Src: /src/nss/cmd/crmftest/testcrmf.c:404,1
    - Dst: SECOID_DestroyAlgorithmID
      Src: /src/nss/cmd/crmftest/testcrmf.c:405,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:407,1
    - Dst: CRMF_DestroyCertRequest
      Src: /src/nss/cmd/crmftest/testcrmf.c:408,1
    - Dst: PR_Now
      Src: /src/nss/cmd/crmftest/testcrmf.c:415,1
    - Dst: CRMF_CertRequestSetTemplateField
      Src: /src/nss/cmd/crmftest/testcrmf.c:416,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:418,1
    - Dst: CRMF_DestroyCertRequest
      Src: /src/nss/cmd/crmftest/testcrmf.c:419,1
    - Dst: GetSubjectPubKeyInfo
      Src: /src/nss/cmd/crmftest/testcrmf.c:424,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:426,1
    - Dst: CRMF_DestroyCertRequest
      Src: /src/nss/cmd/crmftest/testcrmf.c:427,1
    - Dst: CRMF_CertRequestSetTemplateField
      Src: /src/nss/cmd/crmftest/testcrmf.c:430,1
    - Dst: SECKEY_DestroySubjectPublicKeyInfo
      Src: /src/nss/cmd/crmftest/testcrmf.c:431,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:433,1
    - Dst: CRMF_DestroyCertRequest
      Src: /src/nss/cmd/crmftest/testcrmf.c:434,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/cmd/crmftest/testcrmf.c:439,1
    - Dst: CRMF_CertRequestSetTemplateField
      Src: /src/nss/cmd/crmftest/testcrmf.c:440,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/cmd/crmftest/testcrmf.c:443,1
    - Dst: CRMF_CertRequestSetTemplateField
      Src: /src/nss/cmd/crmftest/testcrmf.c:444,1
    - Dst: GetExtensions
      Src: /src/nss/cmd/crmftest/testcrmf.c:447,1
    - Dst: CRMF_CertRequestSetTemplateField
      Src: /src/nss/cmd/crmftest/testcrmf.c:448,1
    - Dst: FreeExtInfo
      Src: /src/nss/cmd/crmftest/testcrmf.c:449,1
    - Dst: CERT_FindCertByNickname
      Src: /src/nss/cmd/crmftest/testcrmf.c:452,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:454,1
    - Dst: CRMF_DestroyCertRequest
      Src: /src/nss/cmd/crmftest/testcrmf.c:455,1
    - Dst: CRMF_CreateEncryptedKeyWithEncryptedValue
      Src: /src/nss/cmd/crmftest/testcrmf.c:458,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/crmftest/testcrmf.c:459,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:461,1
    - Dst: CRMF_CreatePKIArchiveOptions
      Src: /src/nss/cmd/crmftest/testcrmf.c:464,1
    - Dst: CRMF_DestroyEncryptedKey
      Src: /src/nss/cmd/crmftest/testcrmf.c:465,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:467,1
    - Dst: CRMF_CertRequestSetPKIArchiveOptions
      Src: /src/nss/cmd/crmftest/testcrmf.c:470,1
    - Dst: CRMF_DestroyPKIArchiveOptions
      Src: /src/nss/cmd/crmftest/testcrmf.c:471,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:473,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 108
    argCount: 2
    argNames:
    - pair
    - inRequestID
    argTypes:
    - TESTKeyPair*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 323
    functionDepth: 3
    functionLinenumber: 323
    functionLinenumberEnd: 478
    functionName: CreateCertRequest
    functionSourceFile: /src/nss/cmd/crmftest/testcrmf.c
    functionUses: 1
    functionsReached:
    - printf
    - PR_Now
    - CERT_FindCertByNickname
    - SECOID_DestroyAlgorithmID
    - CRMF_CertRequestSetPKIArchiveOptions
    - CRMF_DestroyPKIArchiveOptions
    - PK11_CreatePBEAlgorithmID
    - get_serial_number
    - GetExtensions
    - CRMF_CreateEncryptedKeyWithEncryptedValue
    - SECKEY_DestroySubjectPublicKeyInfo
    - CRMF_DestroyCertRequest
    - GetSubjectPubKeyInfo
    - CERT_DestroyCertificate
    - CRMF_CreateCertRequest
    - InjectCertName
    - FreeExtInfo
    - CRMF_CreatePKIArchiveOptions
    - PK11_GenerateRandom
    - CRMF_CertRequestSetTemplateField
    - CRMF_DestroyEncryptedKey
    linkageType: ''
    returnType: int
    signature: int CreateCertRequest(TESTKeyPair *pair, long inRequestID)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_snprintf
      Src: /src/nss/cmd/crmftest/testcrmf.c:489,1
    - Dst: PR_Open
      Src: /src/nss/cmd/crmftest/testcrmf.c:490,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:493,1
    - Dst: CRMF_EncodeCertReqMessages
      Src: /src/nss/cmd/crmftest/testcrmf.c:500,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:502,1
    - Dst: PR_Close
      Src: /src/nss/cmd/crmftest/testcrmf.c:506,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - inCertReq1
    - inCertReq2
    argTypes:
    - CRMFCertReqMsg*
    - CRMFCertReqMsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 480
    functionDepth: 1
    functionLinenumber: 480
    functionLinenumberEnd: 508
    functionName: Encode
    functionSourceFile: /src/nss/cmd/crmftest/testcrmf.c
    functionUses: 6
    functionsReached:
    - PR_snprintf
    - CRMF_EncodeCertReqMessages
    - printf
    - PR_Open
    - PR_Close
    linkageType: ''
    returnType: int
    signature: int Encode(CRMFCertReqMsg *inCertReq1, CRMFCertReqMsg *inCertReq2)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CRMF_CertReqMsgSetSignaturePOP
      Src: /src/nss/cmd/crmftest/testcrmf.c:517,1
    - Dst: CRMF_CertReqMsgSetRAVerifiedPOP
      Src: /src/nss/cmd/crmftest/testcrmf.c:521,1
    - Dst: CRMF_CertReqMsgSetKeyEnciphermentPOP
      Src: /src/nss/cmd/crmftest/testcrmf.c:524,1
    - Dst: CRMF_CertReqMsgSetKeyAgreementPOP
      Src: /src/nss/cmd/crmftest/testcrmf.c:535,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - pair
    - inPOPChoice
    argTypes:
    - TESTKeyPair*
    - CRMFPOPChoice
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 510
    functionDepth: 1
    functionLinenumber: 510
    functionLinenumberEnd: 542
    functionName: AddProofOfPossession
    functionSourceFile: /src/nss/cmd/crmftest/testcrmf.c
    functionUses: 0
    functionsReached:
    - CRMF_CertReqMsgSetRAVerifiedPOP
    - CRMF_CertReqMsgSetKeyEnciphermentPOP
    - CRMF_CertReqMsgSetSignaturePOP
    - CRMF_CertReqMsgSetKeyAgreementPOP
    linkageType: ''
    returnType: int
    signature: "int AddProofOfPossession(TESTKeyPair *pair,\n                     CRMFPOPChoice
      inPOPChoice)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PR_snprintf
      Src: /src/nss/cmd/crmftest/testcrmf.c:558,1
    - Dst: PR_Open
      Src: /src/nss/cmd/crmftest/testcrmf.c:559,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:561,1
    - Dst: SECU_FileToItem
      Src: /src/nss/cmd/crmftest/testcrmf.c:564,1
    - Dst: PR_Close
      Src: /src/nss/cmd/crmftest/testcrmf.c:565,1
    - Dst: CRMF_CreateCertReqMessagesFromDER
      Src: /src/nss/cmd/crmftest/testcrmf.c:570,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:572,1
    - Dst: CRMF_CertReqMessagesGetNumMessages
      Src: /src/nss/cmd/crmftest/testcrmf.c:575,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:577,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:580,1
    - Dst: CRMF_CertReqMessagesGetCertReqMsgAtIndex
      Src: /src/nss/cmd/crmftest/testcrmf.c:581,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:583,1
    - Dst: CRMF_CertReqMsgGetID
      Src: /src/nss/cmd/crmftest/testcrmf.c:586,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/crmftest/testcrmf.c:588,1
    - Dst: CRMF_CertReqMsgGetCertRequest
      Src: /src/nss/cmd/crmftest/testcrmf.c:590,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/crmftest/testcrmf.c:592,1
    - Dst: CRMF_CertRequestGetCertTemplateValidity
      Src: /src/nss/cmd/crmftest/testcrmf.c:594,1
    - Dst: SECU_PrintError
      Src: /src/nss/cmd/crmftest/testcrmf.c:596,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:600,1
    - Dst: CRMF_DestroyGetValidity
      Src: /src/nss/cmd/crmftest/testcrmf.c:606,1
    - Dst: CRMF_DestroyCertRequest
      Src: /src/nss/cmd/crmftest/testcrmf.c:607,1
    - Dst: CRMF_DestroyCertReqMsg
      Src: /src/nss/cmd/crmftest/testcrmf.c:608,1
    - Dst: CRMF_DestroyCertReqMessages
      Src: /src/nss/cmd/crmftest/testcrmf.c:610,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/crmftest/testcrmf.c:611,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 544
    functionDepth: 1
    functionLinenumber: 544
    functionLinenumberEnd: 613
    functionName: Decode
    functionSourceFile: /src/nss/cmd/crmftest/testcrmf.c
    functionUses: 3
    functionsReached:
    - CRMF_CertReqMessagesGetNumMessages
    - PR_snprintf
    - CRMF_CreateCertReqMessagesFromDER
    - CRMF_CertReqMessagesGetCertReqMsgAtIndex
    - SECU_PrintError
    - CRMF_DestroyCertReqMsg
    - CRMF_DestroyCertRequest
    - printf
    - CRMF_CertRequestGetCertTemplateValidity
    - CRMF_DestroyCertReqMessages
    - PR_Open
    - CRMF_CertReqMsgGetCertRequest
    - CRMF_CertReqMsgGetID
    - SECITEM_FreeItem
    - PR_Close
    - SECU_FileToItem
    - CRMF_DestroyGetValidity
    linkageType: ''
    returnType: int
    signature: int Decode(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_Open
      Src: /src/nss/cmd/crmftest/testcrmf.c:621,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:623,1
    - Dst: SECU_FileToItem
      Src: /src/nss/cmd/crmftest/testcrmf.c:627,1
    - Dst: PR_Close
      Src: /src/nss/cmd/crmftest/testcrmf.c:628,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - filePath
    - item
    argTypes:
    - char*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 615
    functionDepth: 1
    functionLinenumber: 615
    functionLinenumberEnd: 636
    functionName: GetBitsFromFile
    functionSourceFile: /src/nss/cmd/crmftest/testcrmf.c
    functionUses: 0
    functionsReached:
    - PR_Open
    - printf
    - PR_Close
    - SECU_FileToItem
    linkageType: ''
    returnType: int
    signature: int GetBitsFromFile(const char *filePath, SECItem *item)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetBitsFromFile
      Src: /src/nss/cmd/crmftest/testcrmf.c:645,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:647,1
    - Dst: CMMF_CreateCertRepContentFromDER
      Src: /src/nss/cmd/crmftest/testcrmf.c:650,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:653,1
    - Dst: CMMF_DestroyCertRepContent
      Src: /src/nss/cmd/crmftest/testcrmf.c:657,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/crmftest/testcrmf.c:659,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - derFile
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 638
    functionDepth: 2
    functionLinenumber: 638
    functionLinenumberEnd: 661
    functionName: DecodeCMMFCertRepContent
    functionSourceFile: /src/nss/cmd/crmftest/testcrmf.c
    functionUses: 0
    functionsReached:
    - CMMF_DestroyCertRepContent
    - printf
    - CMMF_CreateCertRepContentFromDER
    - GetBitsFromFile
    - SECITEM_FreeItem
    linkageType: ''
    returnType: int
    signature: int DecodeCMMFCertRepContent(char *derFile)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CMMF_CreateCertResponse
      Src: /src/nss/cmd/crmftest/testcrmf.c:675,1
    - Dst: CMMF_CertResponseSetPKIStatusInfoStatus
      Src: /src/nss/cmd/crmftest/testcrmf.c:676,1
    - Dst: CMMF_CertResponseSetCertificate
      Src: /src/nss/cmd/crmftest/testcrmf.c:678,1
    - Dst: CMMF_CreateCertRepContent
      Src: /src/nss/cmd/crmftest/testcrmf.c:684,1
    - Dst: CMMF_CertRepContentSetCertResponses
      Src: /src/nss/cmd/crmftest/testcrmf.c:685,1
    - Dst: CMMF_CertRepContentSetCAPubs
      Src: /src/nss/cmd/crmftest/testcrmf.c:687,1
    - Dst: PR_Open
      Src: /src/nss/cmd/crmftest/testcrmf.c:689,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:692,1
    - Dst: CMMF_EncodeCertRepContent
      Src: /src/nss/cmd/crmftest/testcrmf.c:697,1
    - Dst: PR_Close
      Src: /src/nss/cmd/crmftest/testcrmf.c:699,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:701,1
    - Dst: CMMF_DestroyCertRepContent
      Src: /src/nss/cmd/crmftest/testcrmf.c:706,1
    - Dst: CMMF_DestroyCertResponse
      Src: /src/nss/cmd/crmftest/testcrmf.c:709,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 3
    argNames:
    - filePath
    - cert
    - list
    argTypes:
    - char*
    - CERTCertificate*
    - CERTCertList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 663
    functionDepth: 1
    functionLinenumber: 663
    functionLinenumberEnd: 712
    functionName: EncodeCMMFCertReply
    functionSourceFile: /src/nss/cmd/crmftest/testcrmf.c
    functionUses: 0
    functionsReached:
    - CMMF_CertRepContentSetCAPubs
    - CMMF_DestroyCertResponse
    - CMMF_CertRepContentSetCertResponses
    - CMMF_DestroyCertRepContent
    - printf
    - CMMF_CertResponseSetCertificate
    - CMMF_CreateCertRepContent
    - PR_Open
    - CMMF_CertResponseSetPKIStatusInfoStatus
    - PR_Close
    - CMMF_EncodeCertRepContent
    - CMMF_CreateCertResponse
    linkageType: ''
    returnType: int
    signature: "int EncodeCMMFCertReply(const char *filePath,\n                    CERTCertificate
      *cert,\n                    CERTCertList *list)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CERT_FindCertByNickname
      Src: /src/nss/cmd/crmftest/testcrmf.c:722,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:724,1
    - Dst: CERT_ExtractPublicKey
      Src: /src/nss/cmd/crmftest/testcrmf.c:728,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:730,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/crmftest/testcrmf.c:737,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - nickname
    - pPubKey
    argTypes:
    - char*
    - SECKEYPublicKey**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 715
    functionDepth: 1
    functionLinenumber: 715
    functionLinenumberEnd: 740
    functionName: extractPubKeyFromNamedCert
    functionSourceFile: /src/nss/cmd/crmftest/testcrmf.c
    functionUses: 0
    functionsReached:
    - CERT_FindCertByNickname
    - CERT_ExtractPublicKey
    - printf
    - CERT_DestroyCertificate
    linkageType: ''
    returnType: int
    signature: int extractPubKeyFromNamedCert(const char *nickname, SECKEYPublicKey
      **pPubKey)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: extractPubKeyFromNamedCert
      Src: /src/nss/cmd/crmftest/testcrmf.c:757,1
    - Dst: CMMF_CreateKeyRecRepContent
      Src: /src/nss/cmd/crmftest/testcrmf.c:761,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:763,1
    - Dst: CMMF_KeyRecRepContentSetPKIStatusInfoStatus
      Src: /src/nss/cmd/crmftest/testcrmf.c:767,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:770,1
    - Dst: CMMF_KeyRecRepContentSetNewSignCert
      Src: /src/nss/cmd/crmftest/testcrmf.c:775,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:777,1
    - Dst: CMMF_KeyRecRepContentSetCACerts
      Src: /src/nss/cmd/crmftest/testcrmf.c:782,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:784,1
    - Dst: PK11_FindKeyByAnyCert
      Src: /src/nss/cmd/crmftest/testcrmf.c:789,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:791,1
    - Dst: CMMF_KeyRecRepContentSetCertifiedKeyPair
      Src: /src/nss/cmd/crmftest/testcrmf.c:798,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:801,1
    - Dst: PR_Open
      Src: /src/nss/cmd/crmftest/testcrmf.c:805,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:808,1
    - Dst: CMMF_EncodeKeyRecRepContent
      Src: /src/nss/cmd/crmftest/testcrmf.c:813,1
    - Dst: PR_Close
      Src: /src/nss/cmd/crmftest/testcrmf.c:815,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:817,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/cmd/crmftest/testcrmf.c:822,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/cmd/crmftest/testcrmf.c:824,1
    - Dst: CMMF_DestroyKeyRecRepContent
      Src: /src/nss/cmd/crmftest/testcrmf.c:826,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 69
    argCount: 3
    argNames:
    - filePath
    - cert
    - list
    argTypes:
    - char*
    - CERTCertificate*
    - CERTCertList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 742
    functionDepth: 2
    functionLinenumber: 742
    functionLinenumberEnd: 828
    functionName: EncodeCMMFRecoveryMessage
    functionSourceFile: /src/nss/cmd/crmftest/testcrmf.c
    functionUses: 0
    functionsReached:
    - extractPubKeyFromNamedCert
    - SECKEY_DestroyPublicKey
    - CMMF_KeyRecRepContentSetPKIStatusInfoStatus
    - CMMF_CreateKeyRecRepContent
    - printf
    - CMMF_KeyRecRepContentSetCertifiedKeyPair
    - CMMF_EncodeKeyRecRepContent
    - CMMF_KeyRecRepContentSetCACerts
    - PR_Open
    - SECKEY_DestroyPrivateKey
    - PR_Close
    - CMMF_KeyRecRepContentSetNewSignCert
    - CMMF_DestroyKeyRecRepContent
    - PK11_FindKeyByAnyCert
    linkageType: ''
    returnType: int
    signature: "int EncodeCMMFRecoveryMessage(const char *filePath,\n                          CERTCertificate
      *cert,\n                          CERTCertList *list)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetBitsFromFile
      Src: /src/nss/cmd/crmftest/testcrmf.c:837,1
    - Dst: CMMF_CreateKeyRecRepContentFromDER
      Src: /src/nss/cmd/crmftest/testcrmf.c:843,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:846,1
    - Dst: CMMF_DestroyKeyRecRepContent
      Src: /src/nss/cmd/crmftest/testcrmf.c:853,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/crmftest/testcrmf.c:855,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - filePath
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 830
    functionDepth: 2
    functionLinenumber: 830
    functionLinenumberEnd: 857
    functionName: decodeCMMFRecoveryMessage
    functionSourceFile: /src/nss/cmd/crmftest/testcrmf.c
    functionUses: 0
    functionsReached:
    - CMMF_CreateKeyRecRepContentFromDER
    - printf
    - CMMF_DestroyKeyRecRepContent
    - GetBitsFromFile
    - SECITEM_FreeItem
    linkageType: ''
    returnType: int
    signature: int decodeCMMFRecoveryMessage(const char *filePath)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PR_snprintf
      Src: /src/nss/cmd/crmftest/testcrmf.c:869,1
    - Dst: CERT_FindCertByNickname
      Src: /src/nss/cmd/crmftest/testcrmf.c:871,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:873,1
    - Dst: CERT_GetCertChainFromCert
      Src: /src/nss/cmd/crmftest/testcrmf.c:877,1
    - Dst: PR_Now
      Src: /src/nss/cmd/crmftest/testcrmf.c:877,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:879,1
    - Dst: EncodeCMMFCertReply
      Src: /src/nss/cmd/crmftest/testcrmf.c:889,1
    - Dst: DecodeCMMFCertRepContent
      Src: /src/nss/cmd/crmftest/testcrmf.c:898,1
    - Dst: PR_snprintf
      Src: /src/nss/cmd/crmftest/testcrmf.c:910,1
    - Dst: EncodeCMMFRecoveryMessage
      Src: /src/nss/cmd/crmftest/testcrmf.c:913,1
    - Dst: decodeCMMFRecoveryMessage
      Src: /src/nss/cmd/crmftest/testcrmf.c:922,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/crmftest/testcrmf.c:926,1
    - Dst: CERT_DestroyCertList
      Src: /src/nss/cmd/crmftest/testcrmf.c:929,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 932
      start: 859
    functionDepth: 3
    functionLinenumber: 859
    functionLinenumberEnd: 932
    functionName: DoCMMFStuff
    functionSourceFile: /src/nss/cmd/crmftest/testcrmf.c
    functionUses: 0
    functionsReached:
    - PR_snprintf
    - decodeCMMFRecoveryMessage
    - printf
    - DecodeCMMFCertRepContent
    - PR_Now
    - CERT_GetCertChainFromCert
    - EncodeCMMFCertReply
    - EncodeCMMFRecoveryMessage
    - CERT_DestroyCertificate
    - CERT_FindCertByNickname
    - CERT_DestroyCertList
    linkageType: ''
    returnType: int
    signature: int DoCMMFStuff(void)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: CERT_FindCertByNickname
      Src: /src/nss/cmd/crmftest/testcrmf.c:967,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:969,1
    - Dst: CERT_FindCertByNickname
      Src: /src/nss/cmd/crmftest/testcrmf.c:972,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:974,1
    - Dst: CERT_ExtractPublicKey
      Src: /src/nss/cmd/crmftest/testcrmf.c:977,1
    - Dst: SECKEY_ConvertToPublicKey
      Src: /src/nss/cmd/crmftest/testcrmf.c:978,1
    - Dst: PK11_GetPrivateModulusLen
      Src: /src/nss/cmd/crmftest/testcrmf.c:979,1
    - Dst: PK11_GetBestSlotWithAttributes
      Src: /src/nss/cmd/crmftest/testcrmf.c:980,1
    - Dst: mapWrapKeyType
      Src: /src/nss/cmd/crmftest/testcrmf.c:980,1
    - Dst: PK11_ImportPublicKey
      Src: /src/nss/cmd/crmftest/testcrmf.c:982,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:995,1
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/cmd/crmftest/testcrmf.c:998,1
    - Dst: PK11_GETTAB
      Src: /src/nss/cmd/crmftest/testcrmf.c:999,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/cmd/crmftest/testcrmf.c:1001,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/cmd/crmftest/testcrmf.c:1002,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1003,1
    - Dst: PORT_NewArray
      Src: /src/nss/cmd/crmftest/testcrmf.c:1006,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/cmd/crmftest/testcrmf.c:1008,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/cmd/crmftest/testcrmf.c:1009,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1010,1
    - Dst: PK11_GETTAB
      Src: /src/nss/cmd/crmftest/testcrmf.c:1014,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/cmd/crmftest/testcrmf.c:1019,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/cmd/crmftest/testcrmf.c:1020,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/crmftest/testcrmf.c:1022,1
    - Dst: CMMF_CreateKeyRecRepContent
      Src: /src/nss/cmd/crmftest/testcrmf.c:1037,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/crmftest/testcrmf.c:1039,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/cmd/crmftest/testcrmf.c:1040,1
    - Dst: CMMF_DestroyKeyRecRepContent
      Src: /src/nss/cmd/crmftest/testcrmf.c:1041,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1042,1
    - Dst: CMMF_KeyRecRepContentSetPKIStatusInfoStatus
      Src: /src/nss/cmd/crmftest/testcrmf.c:1045,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/crmftest/testcrmf.c:1048,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/cmd/crmftest/testcrmf.c:1049,1
    - Dst: CMMF_DestroyKeyRecRepContent
      Src: /src/nss/cmd/crmftest/testcrmf.c:1050,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1051,1
    - Dst: CMMF_KeyRecRepContentSetCertifiedKeyPair
      Src: /src/nss/cmd/crmftest/testcrmf.c:1057,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/crmftest/testcrmf.c:1060,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/cmd/crmftest/testcrmf.c:1061,1
    - Dst: CMMF_DestroyKeyRecRepContent
      Src: /src/nss/cmd/crmftest/testcrmf.c:1062,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1063,1
    - Dst: PR_snprintf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1066,1
    - Dst: PR_Open
      Src: /src/nss/cmd/crmftest/testcrmf.c:1068,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/crmftest/testcrmf.c:1071,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/cmd/crmftest/testcrmf.c:1072,1
    - Dst: CMMF_DestroyKeyRecRepContent
      Src: /src/nss/cmd/crmftest/testcrmf.c:1073,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1074,1
    - Dst: CMMF_EncodeKeyRecRepContent
      Src: /src/nss/cmd/crmftest/testcrmf.c:1077,1
    - Dst: CMMF_DestroyKeyRecRepContent
      Src: /src/nss/cmd/crmftest/testcrmf.c:1078,1
    - Dst: PR_Close
      Src: /src/nss/cmd/crmftest/testcrmf.c:1079,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/crmftest/testcrmf.c:1082,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/cmd/crmftest/testcrmf.c:1083,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1084,1
    - Dst: GetBitsFromFile
      Src: /src/nss/cmd/crmftest/testcrmf.c:1087,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/crmftest/testcrmf.c:1089,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/cmd/crmftest/testcrmf.c:1090,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1091,1
    - Dst: CMMF_CreateKeyRecRepContentFromDER
      Src: /src/nss/cmd/crmftest/testcrmf.c:1095,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1098,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/crmftest/testcrmf.c:1100,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/cmd/crmftest/testcrmf.c:1101,1
    - Dst: PK11_FindKeyByAnyCert
      Src: /src/nss/cmd/crmftest/testcrmf.c:1104,1
    - Dst: CMMF_KeyRecRepContentGetPKIStatusInfoStatus
      Src: /src/nss/cmd/crmftest/testcrmf.c:1105,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/crmftest/testcrmf.c:1107,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/cmd/crmftest/testcrmf.c:1108,1
    - Dst: CMMF_DestroyKeyRecRepContent
      Src: /src/nss/cmd/crmftest/testcrmf.c:1109,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1110,1
    - Dst: PORT_Strlen
      Src: /src/nss/cmd/crmftest/testcrmf.c:1117,1
    - Dst: CMMF_KeyRecRepContentGetCertKeyAtIndex
      Src: /src/nss/cmd/crmftest/testcrmf.c:1119,1
    - Dst: CMMF_DestroyKeyRecRepContent
      Src: /src/nss/cmd/crmftest/testcrmf.c:1120,1
    - Dst: CMMF_CertifiedKeyPairUnwrapPrivKey
      Src: /src/nss/cmd/crmftest/testcrmf.c:1121,1
    - Dst: PK11_GetInternalKeySlot
      Src: /src/nss/cmd/crmftest/testcrmf.c:1124,1
    - Dst: CMMF_DestroyCertifiedKeyPair
      Src: /src/nss/cmd/crmftest/testcrmf.c:1127,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1129,1
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/cmd/crmftest/testcrmf.c:1133,1
    - Dst: PK11_GETTAB
      Src: /src/nss/cmd/crmftest/testcrmf.c:1135,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/cmd/crmftest/testcrmf.c:1139,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/crmftest/testcrmf.c:1140,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/cmd/crmftest/testcrmf.c:1141,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1142,1
    - Dst: PK11_GETTAB
      Src: /src/nss/cmd/crmftest/testcrmf.c:1146,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/cmd/crmftest/testcrmf.c:1150,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/cmd/crmftest/testcrmf.c:1151,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/crmftest/testcrmf.c:1152,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/cmd/crmftest/testcrmf.c:1154,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1155,1
    - Dst: PORT_Memcmp
      Src: /src/nss/cmd/crmftest/testcrmf.c:1159,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/cmd/crmftest/testcrmf.c:1160,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1161,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 154
    argCount: 1
    argNames:
    - privKey
    argTypes:
    - SECKEYPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 936
    functionDepth: 2
    functionLinenumber: 936
    functionLinenumberEnd: 1169
    functionName: DoKeyRecovery
    functionSourceFile: /src/nss/cmd/crmftest/testcrmf.c
    functionUses: 0
    functionsReached:
    - CMMF_DestroyCertifiedKeyPair
    - PK11_GetInternalKeySlot
    - CMMF_KeyRecRepContentSetPKIStatusInfoStatus
    - CMMF_CreateKeyRecRepContent
    - printf
    - CMMF_KeyRecRepContentSetCertifiedKeyPair
    - CERT_FindCertByNickname
    - PK11_FindKeyByAnyCert
    - CMMF_CreateKeyRecRepContentFromDER
    - PR_snprintf
    - CMMF_KeyRecRepContentGetPKIStatusInfoStatus
    - PK11_GetBestSlotWithAttributes
    - SECKEY_ConvertToPublicKey
    - CMMF_DestroyKeyRecRepContent
    - mapWrapKeyType
    - SECKEY_DestroyPrivateKey
    - PORT_Strlen
    - PR_Open
    - GetBitsFromFile
    - PR_Close
    - PK11_FreeSlot
    - CMMF_KeyRecRepContentGetCertKeyAtIndex
    - CMMF_CertifiedKeyPairUnwrapPrivKey
    - PORT_Memcmp
    - PORT_Free
    - PK11_GetPrivateModulusLen
    - CMMF_EncodeKeyRecRepContent
    - PK11_GETTAB
    - PORT_NewArray
    - PK11_EnterSlotMonitor
    - PK11_ExitSlotMonitor
    - CERT_ExtractPublicKey
    - PK11_ImportPublicKey
    linkageType: ''
    returnType: int
    signature: int DoKeyRecovery(SECKEYPrivateKey *privKey)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: CMMF_CreatePOPODecKeyChallContent
      Src: /src/nss/cmd/crmftest/testcrmf.c:1193,1
    - Dst: CERT_FindCertByNickname
      Src: /src/nss/cmd/crmftest/testcrmf.c:1194,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1196,1
    - Dst: PORT_NewArena
      Src: /src/nss/cmd/crmftest/testcrmf.c:1199,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1201,1
    - Dst: CERT_GetCertificateNames
      Src: /src/nss/cmd/crmftest/testcrmf.c:1204,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1206,1
    - Dst: PORT_ArenaNewArray
      Src: /src/nss/cmd/crmftest/testcrmf.c:1210,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/cmd/crmftest/testcrmf.c:1211,1
    - Dst: CMMF_POPODecKeyChallContentSetNextChallenge
      Src: /src/nss/cmd/crmftest/testcrmf.c:1214,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1220,1
    - Dst: PR_snprintf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1224,1
    - Dst: PR_Open
      Src: /src/nss/cmd/crmftest/testcrmf.c:1226,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1229,1
    - Dst: CMMF_EncodePOPODecKeyChallContent
      Src: /src/nss/cmd/crmftest/testcrmf.c:1232,1
    - Dst: PR_Close
      Src: /src/nss/cmd/crmftest/testcrmf.c:1234,1
    - Dst: CMMF_DestroyPOPODecKeyChallContent
      Src: /src/nss/cmd/crmftest/testcrmf.c:1235,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1237,1
    - Dst: GetBitsFromFile
      Src: /src/nss/cmd/crmftest/testcrmf.c:1240,1
    - Dst: CMMF_CreatePOPODecKeyChallContentFromDER
      Src: /src/nss/cmd/crmftest/testcrmf.c:1241,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/crmftest/testcrmf.c:1242,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1244,1
    - Dst: CMMF_POPODecKeyChallContentGetNumChallenges
      Src: /src/nss/cmd/crmftest/testcrmf.c:1248,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1250,1
    - Dst: CMMF_POPODecKeyChallContentGetPublicValue
      Src: /src/nss/cmd/crmftest/testcrmf.c:1256,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1258,1
    - Dst: PK11_MakeIDFromPubKey
      Src: /src/nss/cmd/crmftest/testcrmf.c:1262,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/crmftest/testcrmf.c:1263,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1265,1
    - Dst: PK11_FindKeyByKeyID
      Src: /src/nss/cmd/crmftest/testcrmf.c:1268,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/crmftest/testcrmf.c:1269,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1271,1
    - Dst: CMMF_POPODecKeyChallContDecryptChallenge
      Src: /src/nss/cmd/crmftest/testcrmf.c:1275,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1278,1
    - Dst: CMMF_POPODecKeyChallContentGetRandomNumber
      Src: /src/nss/cmd/crmftest/testcrmf.c:1281,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1284,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1290,1
    - Dst: CMMF_DestroyPOPODecKeyChallContent
      Src: /src/nss/cmd/crmftest/testcrmf.c:1295,1
    - Dst: PR_snprintf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1296,1
    - Dst: PR_Open
      Src: /src/nss/cmd/crmftest/testcrmf.c:1298,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1301,1
    - Dst: CMMF_EncodePOPODecKeyRespContent
      Src: /src/nss/cmd/crmftest/testcrmf.c:1304,1
    - Dst: PR_Close
      Src: /src/nss/cmd/crmftest/testcrmf.c:1306,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1308,1
    - Dst: GetBitsFromFile
      Src: /src/nss/cmd/crmftest/testcrmf.c:1311,1
    - Dst: CMMF_CreatePOPODecKeyRespContentFromDER
      Src: /src/nss/cmd/crmftest/testcrmf.c:1313,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1316,1
    - Dst: CMMF_POPODecKeyRespContentGetNumResponses
      Src: /src/nss/cmd/crmftest/testcrmf.c:1320,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1322,1
    - Dst: CMMF_POPODecKeyRespContentGetResponse
      Src: /src/nss/cmd/crmftest/testcrmf.c:1328,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1330,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1334,1
    - Dst: CMMF_DestroyPOPODecKeyRespContent
      Src: /src/nss/cmd/crmftest/testcrmf.c:1339,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 121
    argCount: 2
    argNames:
    - privKey
    - pubKey
    argTypes:
    - SECKEYPrivateKey*
    - SECKEYPublicKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1341
      start: 1171
    functionDepth: 2
    functionLinenumber: 1171
    functionLinenumberEnd: 1341
    functionName: DoChallengeResponse
    functionSourceFile: /src/nss/cmd/crmftest/testcrmf.c
    functionUses: 0
    functionsReached:
    - CMMF_POPODecKeyRespContentGetNumResponses
    - CMMF_POPODecKeyChallContentGetPublicValue
    - printf
    - CMMF_DestroyPOPODecKeyRespContent
    - CERT_FindCertByNickname
    - PR_snprintf
    - PORT_NewArena
    - CERT_GetCertificateNames
    - CMMF_CreatePOPODecKeyChallContent
    - CMMF_CreatePOPODecKeyRespContentFromDER
    - PK11_MakeIDFromPubKey
    - SECITEM_FreeItem
    - CMMF_CreatePOPODecKeyChallContentFromDER
    - PR_Open
    - GetBitsFromFile
    - PR_Close
    - CMMF_POPODecKeyChallContentGetRandomNumber
    - CMMF_POPODecKeyRespContentGetResponse
    - CMMF_POPODecKeyChallContentGetNumChallenges
    - CMMF_DestroyPOPODecKeyChallContent
    - PK11_FindKeyByKeyID
    - CMMF_POPODecKeyChallContDecryptChallenge
    - PK11_GenerateRandom
    - CMMF_EncodePOPODecKeyRespContent
    - CMMF_EncodePOPODecKeyChallContent
    - CMMF_POPODecKeyChallContentSetNextChallenge
    - PORT_ArenaNewArray
    linkageType: ''
    returnType: int
    signature: "int DoChallengeResponse(SECKEYPrivateKey *privKey,\n                    SECKEYPublicKey
      *pubKey)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CreateCertRequest
      Src: /src/nss/cmd/crmftest/testcrmf.c:1349,1
    - Dst: CRMF_CreateCertReqMsg
      Src: /src/nss/cmd/crmftest/testcrmf.c:1354,1
    - Dst: CRMF_CertReqMsgSetCertRequest
      Src: /src/nss/cmd/crmftest/testcrmf.c:1360,1
    - Dst: AddProofOfPossession
      Src: /src/nss/cmd/crmftest/testcrmf.c:1361,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - pair
    - inPOPChoice
    - inRequestID
    argTypes:
    - TESTKeyPair*
    - CRMFPOPChoice
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1364
      start: 1343
    functionDepth: 4
    functionLinenumber: 1343
    functionLinenumberEnd: 1364
    functionName: MakeCertRequest
    functionSourceFile: /src/nss/cmd/crmftest/testcrmf.c
    functionUses: 0
    functionsReached:
    - AddProofOfPossession
    - CRMF_CertReqMsgSetCertRequest
    - CRMF_CreateCertReqMsg
    - CreateCertRequest
    linkageType: ''
    returnType: int
    signature: int MakeCertRequest(TESTKeyPair *pair, CRMFPOPChoice inPOPChoice, long
      inRequestID)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CRMF_DestroyCertRequest
      Src: /src/nss/cmd/crmftest/testcrmf.c:1373,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1376,1
    - Dst: CRMF_DestroyCertReqMsg
      Src: /src/nss/cmd/crmftest/testcrmf.c:1381,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1384,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - pair
    argTypes:
    - TESTKeyPair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1390
      start: 1366
    functionDepth: 1
    functionLinenumber: 1366
    functionLinenumberEnd: 1390
    functionName: DestroyPairReqAndMsg
    functionSourceFile: /src/nss/cmd/crmftest/testcrmf.c
    functionUses: 0
    functionsReached:
    - CRMF_DestroyCertReqMsg
    - CRMF_DestroyCertRequest
    - printf
    linkageType: ''
    returnType: int
    signature: int DestroyPairReqAndMsg(TESTKeyPair *pair)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/cmd/crmftest/testcrmf.c:1398,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/cmd/crmftest/testcrmf.c:1402,1
    - Dst: DestroyPairReqAndMsg
      Src: /src/nss/cmd/crmftest/testcrmf.c:1405,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - pair
    argTypes:
    - TESTKeyPair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1407
      start: 1392
    functionDepth: 2
    functionLinenumber: 1392
    functionLinenumberEnd: 1407
    functionName: DestroyPair
    functionSourceFile: /src/nss/cmd/crmftest/testcrmf.c
    functionUses: 0
    functionsReached:
    - SECKEY_DestroyPrivateKey
    - SECKEY_DestroyPublicKey
    - DestroyPairReqAndMsg
    linkageType: ''
    returnType: int
    signature: int DestroyPair(TESTKeyPair *pair)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: MakeCertRequest
      Src: /src/nss/cmd/crmftest/testcrmf.c:1415,1
    - Dst: MakeCertRequest
      Src: /src/nss/cmd/crmftest/testcrmf.c:1421,1
    - Dst: Encode
      Src: /src/nss/cmd/crmftest/testcrmf.c:1430,1
    - Dst: DestroyPairReqAndMsg
      Src: /src/nss/cmd/crmftest/testcrmf.c:1434,1
    - Dst: DestroyPairReqAndMsg
      Src: /src/nss/cmd/crmftest/testcrmf.c:1439,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 27
    argCount: 2
    argNames:
    - signPair
    - cryptPair
    argTypes:
    - TESTKeyPair*
    - TESTKeyPair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1444
      start: 1409
    functionDepth: 5
    functionLinenumber: 1409
    functionLinenumberEnd: 1444
    functionName: DoCRMFRequest
    functionSourceFile: /src/nss/cmd/crmftest/testcrmf.c
    functionUses: 0
    functionsReached:
    - DestroyPairReqAndMsg
    - MakeCertRequest
    - Encode
    linkageType: ''
    returnType: int
    signature: int DoCRMFRequest(TESTKeyPair *signPair, TESTKeyPair *cryptPair)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1470
      start: 1446
    functionDepth: 0
    functionLinenumber: 1446
    functionLinenumberEnd: 1470
    functionName: Usage
    functionSourceFile: /src/nss/cmd/crmftest/testcrmf.c
    functionUses: 94
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void Usage(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nss/cmd/crmftest/testcrmf.c:1482,1
    - Dst: strcmp
      Src: /src/nss/cmd/crmftest/testcrmf.c:1484,1
    - Dst: strcmp
      Src: /src/nss/cmd/crmftest/testcrmf.c:1487,1
    - Dst: strcmp
      Src: /src/nss/cmd/crmftest/testcrmf.c:1489,1
    - Dst: strcmp
      Src: /src/nss/cmd/crmftest/testcrmf.c:1491,1
    - Dst: strcmp
      Src: /src/nss/cmd/crmftest/testcrmf.c:1493,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1496,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - arg
    - flags
    argTypes:
    - char*
    - PRUint32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1500
      start: 1479
    functionDepth: 0
    functionLinenumber: 1479
    functionLinenumberEnd: 1500
    functionName: parsePositionalParam
    functionSourceFile: /src/nss/cmd/crmftest/testcrmf.c
    functionUses: 0
    functionsReached:
    - strcmp
    - printf
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus parsePositionalParam(const char *arg, PRUint32 *flags)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/cmd/crmftest/testcrmf.c:1521,1
    - Dst: memset
      Src: /src/nss/cmd/crmftest/testcrmf.c:1522,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1523,1
    - Dst: PL_CreateOptState
      Src: /src/nss/cmd/crmftest/testcrmf.c:1524,1
    - Dst: PL_GetNextOpt
      Src: /src/nss/cmd/crmftest/testcrmf.c:1525,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/crmftest/testcrmf.c:1528,1
    - Dst: NSS_Init
      Src: /src/nss/cmd/crmftest/testcrmf.c:1529,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1531,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/crmftest/testcrmf.c:1537,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1539,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/crmftest/testcrmf.c:1544,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1546,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/crmftest/testcrmf.c:1551,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1553,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/crmftest/testcrmf.c:1558,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1560,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/crmftest/testcrmf.c:1567,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1569,1
    - Dst: parsePositionalParam
      Src: /src/nss/cmd/crmftest/testcrmf.c:1576,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1578,1
    - Dst: Usage
      Src: /src/nss/cmd/crmftest/testcrmf.c:1583,1
    - Dst: PL_DestroyOptState
      Src: /src/nss/cmd/crmftest/testcrmf.c:1587,1
    - Dst: Usage
      Src: /src/nss/cmd/crmftest/testcrmf.c:1589,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/cmd/crmftest/testcrmf.c:1594,1
    - Dst: InitPKCS11
      Src: /src/nss/cmd/crmftest/testcrmf.c:1595,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1598,1
    - Dst: DoCRMFRequest
      Src: /src/nss/cmd/crmftest/testcrmf.c:1599,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1605,1
    - Dst: Decode
      Src: /src/nss/cmd/crmftest/testcrmf.c:1606,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1608,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1614,1
    - Dst: DoCMMFStuff
      Src: /src/nss/cmd/crmftest/testcrmf.c:1615,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1616,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1625,1
    - Dst: DoKeyRecovery
      Src: /src/nss/cmd/crmftest/testcrmf.c:1626,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1628,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1634,1
    - Dst: DoChallengeResponse
      Src: /src/nss/cmd/crmftest/testcrmf.c:1635,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1637,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1641,1
    - Dst: DestroyPair
      Src: /src/nss/cmd/crmftest/testcrmf.c:1645,1
    - Dst: DestroyPair
      Src: /src/nss/cmd/crmftest/testcrmf.c:1646,1
    - Dst: NSS_Shutdown
      Src: /src/nss/cmd/crmftest/testcrmf.c:1647,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1649,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/crmftest/testcrmf.c:1651,1
    - Dst: printf
      Src: /src/nss/cmd/crmftest/testcrmf.c:1653,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 132
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1655
      start: 1508
    functionDepth: 6
    functionLinenumber: 1508
    functionLinenumberEnd: 1655
    functionName: main
    functionSourceFile: /src/nss/cmd/crmftest/testcrmf.c
    functionUses: 6
    functionsReached:
    - NSS_Init
    - printf
    - PL_DestroyOptState
    - Usage
    - InitPKCS11
    - DoCMMFStuff
    - memset
    - CERT_GetDefaultCertDB
    - PL_CreateOptState
    - parsePositionalParam
    - DoKeyRecovery
    - Decode
    - DoCRMFRequest
    - PL_GetNextOpt
    - PORT_Free
    - DestroyPair
    - DoChallengeResponse
    - NSS_Shutdown
    - PORT_Strdup
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:37,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:40,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:41,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:42,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:43,1
    - Dst: PRINTUSAGE
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:45,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - progName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 48
    functionName: Usage
    functionSourceFile: /src/nss/cmd/rsapoptst/rsapoptst.c
    functionUses: 95
    functionsReached:
    - fprintf
    - PRINTUSAGE
    linkageType: ''
    returnType: void
    signature: void Usage(char *progName)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - subject
    - ','
    - option
    - ','
    - predicate
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: PRINTUSAGE
    functionSourceFile: /src/nss/cmd/rsapoptst/rsapoptst.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PRINTUSAGE(subject, option, predicate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Free
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - attribute
    - start
    - end
    argTypes:
    - CK_ATTRIBUTE*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 86
    functionName: resetTemplate
    functionSourceFile: /src/nss/cmd/rsapoptst/rsapoptst.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    linkageType: ''
    returnType: void
    signature: void resetTemplate(CK_ATTRIBUTE *attribute, int start, int end)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_ReadRawAttribute
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - objType
    - object
    - offset
    - attrType
    argTypes:
    - PK11ObjectType
    - void*
    - int
    - CK_ATTRIBUTE_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 103
    functionName: copyAttribute
    functionSourceFile: /src/nss/cmd/rsapoptst/rsapoptst.c
    functionUses: 0
    functionsReached:
    - PK11_ReadRawAttribute
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus copyAttribute(PK11ObjectType objType, void *object, CK_ATTRIBUTE
      *template,\n              int offset, CK_ATTRIBUTE_TYPE attrType)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: copyAttribute
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:113,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - objType
    - object
    - start
    - end
    argTypes:
    - PK11ObjectType
    - void*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 123
    functionName: readKey
    functionSourceFile: /src/nss/cmd/rsapoptst/rsapoptst.c
    functionUses: 0
    functionsReached:
    - copyAttribute
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus readKey(PK11ObjectType objType, void *object, CK_ATTRIBUTE
      *template,\n        int start, int end)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 126
    functionName: ATTR_STRING
    functionSourceFile: /src/nss/cmd/rsapoptst/rsapoptst.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ATTR_STRING(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:133,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - file
    - cpval
    - start
    - end
    argTypes:
    - FILE*
    - unsigned char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 137
    functionName: dumphex
    functionSourceFile: /src/nss/cmd/rsapoptst/rsapoptst.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void dumphex(FILE *file, const unsigned char *cpval, int start, int
      end)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:148,1
    - Dst: ATTR_STRING
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:148,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:154,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:157,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:160,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:166,1
    - Dst: dumphex
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:170,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:173,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 3
    argNames:
    - file
    - start
    - end
    argTypes:
    - FILE*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 175
    functionName: dumpTemplate
    functionSourceFile: /src/nss/cmd/rsapoptst/rsapoptst.c
    functionUses: 0
    functionsReached:
    - fprintf
    - ATTR_STRING
    - dumphex
    linkageType: ''
    returnType: void
    signature: void dumpTemplate(FILE *file, const CK_ATTRIBUTE *template, int start,
      int end)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:183,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:187,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:191,1
    - Dst: dumphex
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:195,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:196,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - file
    - item
    argTypes:
    - FILE*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 198
    functionName: dumpItem
    functionSourceFile: /src/nss/cmd/rsapoptst/rsapoptst.c
    functionUses: 1
    functionsReached:
    - fprintf
    - dumphex
    linkageType: ''
    returnType: void
    signature: void dumpItem(FILE *file, const SECItem *item)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:211,1
    - Dst: memcpy
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:212,1
    - Dst: readKey
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:214,1
    - Dst: printf
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:216,1
    - Dst: readKey
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:219,1
    - Dst: printf
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:221,1
    - Dst: printf
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:230,1
    - Dst: ATTR_STRING
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:231,1
    - Dst: memcmp
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:234,1
    - Dst: printf
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:236,1
    - Dst: ATTR_STRING
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:236,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:241,1
    - Dst: dumpTemplate
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:242,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:243,1
    - Dst: dumpTemplate
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:244,1
    - Dst: resetTemplate
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:246,1
    - Dst: resetTemplate
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:247,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 4
    argNames:
    - srcType
    - src
    - destType
    - dest
    argTypes:
    - PK11ObjectType
    - void*
    - PK11ObjectType
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 200
    functionDepth: 3
    functionLinenumber: 200
    functionLinenumberEnd: 249
    functionName: rsaKeysAreEqual
    functionSourceFile: /src/nss/cmd/rsapoptst/rsapoptst.c
    functionUses: 0
    functionsReached:
    - memcpy
    - printf
    - memcmp
    - dumpTemplate
    - resetTemplate
    - fprintf
    - readKey
    - ATTR_STRING
    linkageType: ''
    returnType: PRBool
    signature: "PRBool rsaKeysAreEqual(PK11ObjectType srcType, void *src,\n                PK11ObjectType
      destType, void *dest)"
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetInternalSlot
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:277,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:279,1
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:283,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:287,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:288,1
    - Dst: memcpy
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:292,1
    - Dst: printf
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:310,1
    - Dst: resetTemplate
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:311,1
    - Dst: copyAttribute
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:313,1
    - Dst: copyAttribute
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:315,1
    - Dst: copyAttribute
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:317,1
    - Dst: PK11_CreateManagedGenericObject
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:320,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:325,1
    - Dst: rsaKeysAreEqual
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:327,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:329,1
    - Dst: PK11_DestroyGenericObject
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:333,1
    - Dst: printf
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:336,1
    - Dst: resetTemplate
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:338,1
    - Dst: copyAttribute
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:340,1
    - Dst: copyAttribute
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:342,1
    - Dst: copyAttribute
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:344,1
    - Dst: PK11_CreateManagedGenericObject
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:349,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:354,1
    - Dst: rsaKeysAreEqual
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:356,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:358,1
    - Dst: PK11_DestroyGenericObject
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:362,1
    - Dst: printf
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:365,1
    - Dst: resetTemplate
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:367,1
    - Dst: copyAttribute
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:370,1
    - Dst: copyAttribute
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:372,1
    - Dst: copyAttribute
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:374,1
    - Dst: PK11_CreateManagedGenericObject
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:380,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:385,1
    - Dst: rsaKeysAreEqual
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:387,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:389,1
    - Dst: PK11_DestroyGenericObject
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:393,1
    - Dst: printf
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:396,1
    - Dst: resetTemplate
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:398,1
    - Dst: copyAttribute
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:400,1
    - Dst: copyAttribute
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:402,1
    - Dst: copyAttribute
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:404,1
    - Dst: PK11_CreateManagedGenericObject
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:407,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:412,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:413,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:414,1
    - Dst: rsaKeysAreEqual
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:417,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:419,1
    - Dst: PK11_DestroyGenericObject
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:423,1
    - Dst: printf
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:426,1
    - Dst: resetTemplate
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:429,1
    - Dst: copyAttribute
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:432,1
    - Dst: copyAttribute
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:434,1
    - Dst: copyAttribute
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:436,1
    - Dst: PK11_CreateGenericObject
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:440,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:445,1
    - Dst: rsaKeysAreEqual
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:447,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:449,1
    - Dst: PK11_DestroyGenericObject
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:454,1
    - Dst: resetTemplate
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:456,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:457,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:458,1
    - Dst: PK11_FindGenericObjects
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:462,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:468,1
    - Dst: PK11_GetNextGenericObject
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:470,1
    - Dst: PK11_ReadRawAttribute
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:473,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:476,1
    - Dst: PORT_ErrorToString
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:477,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:477,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:480,1
    - Dst: dumpItem
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:481,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:482,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:484,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:489,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:492,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:497,1
    - Dst: PK11_DestroyGenericObjects
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:499,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:502,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:506,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 168
    argCount: 5
    argNames:
    - keySize
    - exponent
    - mask
    - round
    - pwarg
    argTypes:
    - unsigned int
    - unsigned long
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 255
    functionDepth: 4
    functionLinenumber: 255
    functionLinenumberEnd: 508
    functionName: doRSAPopulateTest
    functionSourceFile: /src/nss/cmd/rsapoptst/rsapoptst.c
    functionUses: 1
    functionsReached:
    - PK11_FindGenericObjects
    - printf
    - fprintf
    - PK11_ReadRawAttribute
    - PK11_DestroyGenericObject
    - PK11_CreateGenericObject
    - PK11_DestroyGenericObjects
    - copyAttribute
    - memcpy
    - SECKEY_DestroyPublicKey
    - PORT_ErrorToString
    - resetTemplate
    - PK11_CreateManagedGenericObject
    - SECITEM_FreeItem
    - rsaKeysAreEqual
    - PK11_GetNextGenericObject
    - PK11_FreeSlot
    - dumpItem
    - PK11_GenerateKeyPair
    - PORT_GetError
    - PK11_GetInternalSlot
    - SECKEY_DestroyPrivateKey
    linkageType: ''
    returnType: int
    signature: "int doRSAPopulateTest(unsigned int keySize, unsigned long exponent,\n
      \                 int mask, int round, void *pwarg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 525
    functionDepth: 0
    functionLinenumber: 525
    functionLinenumberEnd: 532
    functionName: is_delimiter
    functionSourceFile: /src/nss/cmd/rsapoptst/rsapoptst.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_delimiter(char c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_delimiter
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:541,1
    - Dst: strlen
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:546,1
    - Dst: strncmp
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:547,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - test_string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 534
    functionDepth: 1
    functionLinenumber: 534
    functionLinenumberEnd: 558
    functionName: parse_tests
    functionSourceFile: /src/nss/cmd/rsapoptst/rsapoptst.c
    functionUses: 0
    functionsReached:
    - is_delimiter
    - strncmp
    - strlen
    linkageType: ''
    returnType: int
    signature: int parse_tests(char *test_string)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:577,1
    - Dst: strrchr
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:579,1
    - Dst: NSS_NoDB_Init
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:582,1
    - Dst: SECU_PrintPRandOSError
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:584,1
    - Dst: SECU_ParseCommandLine
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:588,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:590,1
    - Dst: Usage
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:591,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:597,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:600,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:603,1
    - Dst: PORT_Atoi
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:607,1
    - Dst: parse_tests
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:609,1
    - Dst: Usage
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:612,1
    - Dst: printf
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:619,1
    - Dst: doRSAPopulateTest
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:620,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:627,1
    - Dst: printf
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:630,1
    - Dst: NSS_Shutdown
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:634,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsapoptst/rsapoptst.c:635,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 60
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 560
    functionDepth: 3
    functionLinenumber: 560
    functionLinenumberEnd: 639
    functionName: main
    functionSourceFile: /src/nss/cmd/rsapoptst/rsapoptst.c
    functionUses: 6
    functionsReached:
    - PORT_Atoi
    - NSS_NoDB_Init
    - parse_tests
    - printf
    - SECU_ParseCommandLine
    - SECU_PrintPRandOSError
    - fprintf
    - NSS_Shutdown
    - Usage
    - strrchr
    - doRSAPopulateTest
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 40
    argCount: 1
    argNames:
    - keysize
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 220
    functionName: getDefaultRSAPrivateKey
    functionSourceFile: /src/nss/cmd/rsaperf/defkey.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSSLOWKEYPrivateKey
    signature: 'NSSLOWKEYPrivateKey *

      getDefaultRSAPrivateKey(int keysize)'
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - keysize
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 246
    functionName: getDefaultRSAPublicKey
    functionSourceFile: /src/nss/cmd/rsaperf/defkey.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSSLOWKEYPublicKey
    signature: 'NSSLOWKEYPublicKey *

      getDefaultRSAPublicKey(int keysize)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/rsaperf/rsaperf.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: CreateTimingContext
    functionSourceFile: /src/nss/cmd/rsaperf/rsaperf.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    linkageType: ''
    returnType: TimingContext
    signature: 'TimingContext *

      CreateTimingContext(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Free
      Src: /src/nss/cmd/rsaperf/rsaperf.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TimingContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: DestroyTimingContext
    functionSourceFile: /src/nss/cmd/rsaperf/rsaperf.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    linkageType: ''
    returnType: void
    signature: void DestroyTimingContext(TimingContext *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - begin
    argTypes:
    - TimingContext*
    - PRTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: TimingBegin
    functionSourceFile: /src/nss/cmd/rsaperf/rsaperf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TimingBegin(TimingContext *ctx, PRTime begin)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LL_I2L
      Src: /src/nss/cmd/rsaperf/rsaperf.c:67,1
    - Dst: LL_I2L
      Src: /src/nss/cmd/rsaperf/rsaperf.c:68,1
    - Dst: LL_I2L
      Src: /src/nss/cmd/rsaperf/rsaperf.c:69,1
    - Dst: LL_DIV
      Src: /src/nss/cmd/rsaperf/rsaperf.c:71,1
    - Dst: LL_MOD
      Src: /src/nss/cmd/rsaperf/rsaperf.c:72,1
    - Dst: LL_L2I
      Src: /src/nss/cmd/rsaperf/rsaperf.c:73,1
    - Dst: LL_DIV
      Src: /src/nss/cmd/rsaperf/rsaperf.c:74,1
    - Dst: LL_MOD
      Src: /src/nss/cmd/rsaperf/rsaperf.c:75,1
    - Dst: LL_L2I
      Src: /src/nss/cmd/rsaperf/rsaperf.c:76,1
    - Dst: LL_DIV
      Src: /src/nss/cmd/rsaperf/rsaperf.c:77,1
    - Dst: LL_MOD
      Src: /src/nss/cmd/rsaperf/rsaperf.c:78,1
    - Dst: LL_L2I
      Src: /src/nss/cmd/rsaperf/rsaperf.c:79,1
    - Dst: LL_DIV
      Src: /src/nss/cmd/rsaperf/rsaperf.c:80,1
    - Dst: LL_MOD
      Src: /src/nss/cmd/rsaperf/rsaperf.c:81,1
    - Dst: LL_L2I
      Src: /src/nss/cmd/rsaperf/rsaperf.c:82,1
    - Dst: LL_DIV
      Src: /src/nss/cmd/rsaperf/rsaperf.c:83,1
    - Dst: LL_L2I
      Src: /src/nss/cmd/rsaperf/rsaperf.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TimingContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 85
    functionName: timingUpdate
    functionSourceFile: /src/nss/cmd/rsaperf/rsaperf.c
    functionUses: 0
    functionsReached:
    - LL_MOD
    - LL_I2L
    - LL_DIV
    - LL_L2I
    linkageType: ''
    returnType: void
    signature: void timingUpdate(TimingContext *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LL_SUB
      Src: /src/nss/cmd/rsaperf/rsaperf.c:91,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/rsaperf/rsaperf.c:92,1
    - Dst: LL_GE_ZERO
      Src: /src/nss/cmd/rsaperf/rsaperf.c:92,1
    - Dst: timingUpdate
      Src: /src/nss/cmd/rsaperf/rsaperf.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - end
    argTypes:
    - TimingContext*
    - PRTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 94
    functionName: TimingEnd
    functionSourceFile: /src/nss/cmd/rsaperf/rsaperf.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - LL_GE_ZERO
    - LL_SUB
    - timingUpdate
    linkageType: ''
    returnType: void
    signature: void TimingEnd(TimingContext *ctx, PRTime end)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LL_I2L
      Src: /src/nss/cmd/rsaperf/rsaperf.c:101,1
    - Dst: LL_DIV
      Src: /src/nss/cmd/rsaperf/rsaperf.c:102,1
    - Dst: timingUpdate
      Src: /src/nss/cmd/rsaperf/rsaperf.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - divisor
    argTypes:
    - TimingContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 105
    functionName: TimingDivide
    functionSourceFile: /src/nss/cmd/rsaperf/rsaperf.c
    functionUses: 0
    functionsReached:
    - LL_I2L
    - timingUpdate
    - LL_DIV
    linkageType: ''
    returnType: void
    signature: void TimingDivide(TimingContext *ctx, int divisor)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PR_sprintf_append
      Src: /src/nss/cmd/rsaperf/rsaperf.c:113,1
    - Dst: PR_sprintf_append
      Src: /src/nss/cmd/rsaperf/rsaperf.c:117,1
    - Dst: PR_sprintf_append
      Src: /src/nss/cmd/rsaperf/rsaperf.c:118,1
    - Dst: PR_sprintf_append
      Src: /src/nss/cmd/rsaperf/rsaperf.c:122,1
    - Dst: PR_sprintf_append
      Src: /src/nss/cmd/rsaperf/rsaperf.c:123,1
    - Dst: PR_sprintf_append
      Src: /src/nss/cmd/rsaperf/rsaperf.c:126,1
    - Dst: LL_L2I
      Src: /src/nss/cmd/rsaperf/rsaperf.c:129,1
    - Dst: PR_sprintf_append
      Src: /src/nss/cmd/rsaperf/rsaperf.c:131,1
    - Dst: PR_sprintf_append
      Src: /src/nss/cmd/rsaperf/rsaperf.c:133,1
    - Dst: PR_sprintf_append
      Src: /src/nss/cmd/rsaperf/rsaperf.c:135,1
    - Dst: PR_sprintf_append
      Src: /src/nss/cmd/rsaperf/rsaperf.c:137,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - TimingContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 141
    functionName: TimingGenerateString
    functionSourceFile: /src/nss/cmd/rsaperf/rsaperf.c
    functionUses: 0
    functionsReached:
    - LL_L2I
    - PR_sprintf_append
    linkageType: ''
    returnType: char
    signature: 'char *

      TimingGenerateString(TimingContext *ctx)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/cmd/rsaperf/rsaperf.c:146,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsaperf/rsaperf.c:152,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsaperf/rsaperf.c:154,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsaperf/rsaperf.c:155,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsaperf/rsaperf.c:156,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsaperf/rsaperf.c:157,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsaperf/rsaperf.c:158,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsaperf/rsaperf.c:161,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsaperf/rsaperf.c:163,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsaperf/rsaperf.c:165,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsaperf/rsaperf.c:166,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsaperf/rsaperf.c:168,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsaperf/rsaperf.c:169,1
    - Dst: exit
      Src: /src/nss/cmd/rsaperf/rsaperf.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - progName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 172
    functionName: Usage
    functionSourceFile: /src/nss/cmd/rsaperf/rsaperf.c
    functionUses: 96
    functionsReached:
    - fprintf
    - exit
    linkageType: ''
    returnType: void
    signature: void Usage(char *progName)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/rsaperf/rsaperf.c:182,1
    - Dst: printf
      Src: /src/nss/cmd/rsaperf/rsaperf.c:183,1
    - Dst: printf
      Src: /src/nss/cmd/rsaperf/rsaperf.c:185,1
    - Dst: printf
      Src: /src/nss/cmd/rsaperf/rsaperf.c:188,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - b
    - l
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 189
    functionName: dumpBytes
    functionSourceFile: /src/nss/cmd/rsaperf/rsaperf.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void dumpBytes(unsigned char *b, int l)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/cmd/rsaperf/rsaperf.c:195,1
    - Dst: dumpBytes
      Src: /src/nss/cmd/rsaperf/rsaperf.c:196,1
    - Dst: printf
      Src: /src/nss/cmd/rsaperf/rsaperf.c:198,1
    - Dst: dumpBytes
      Src: /src/nss/cmd/rsaperf/rsaperf.c:199,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - item
    - description
    argTypes:
    - SECItem*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 201
    functionName: dumpItem
    functionSourceFile: /src/nss/cmd/rsaperf/rsaperf.c
    functionUses: 2
    functionsReached:
    - dumpBytes
    - printf
    linkageType: ''
    returnType: void
    signature: void dumpItem(SECItem *item, const char *description)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dumpItem
      Src: /src/nss/cmd/rsaperf/rsaperf.c:208,1
    - Dst: dumpItem
      Src: /src/nss/cmd/rsaperf/rsaperf.c:209,1
    - Dst: dumpItem
      Src: /src/nss/cmd/rsaperf/rsaperf.c:210,1
    - Dst: dumpItem
      Src: /src/nss/cmd/rsaperf/rsaperf.c:211,1
    - Dst: dumpItem
      Src: /src/nss/cmd/rsaperf/rsaperf.c:212,1
    - Dst: dumpItem
      Src: /src/nss/cmd/rsaperf/rsaperf.c:213,1
    - Dst: dumpItem
      Src: /src/nss/cmd/rsaperf/rsaperf.c:214,1
    - Dst: dumpItem
      Src: /src/nss/cmd/rsaperf/rsaperf.c:215,1
    - Dst: puts
      Src: /src/nss/cmd/rsaperf/rsaperf.c:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - privKey
    argTypes:
    - NSSLOWKEYPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 217
    functionName: printPrivKey
    functionSourceFile: /src/nss/cmd/rsaperf/rsaperf.c
    functionUses: 0
    functionsReached:
    - puts
    - dumpItem
    linkageType: ''
    returnType: void
    signature: void printPrivKey(NSSLOWKEYPrivateKey *privKey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_PubEncryptRaw
      Src: /src/nss/cmd/rsaperf/rsaperf.c:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - output
    - input
    argTypes:
    - SECKEYPublicKey*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 235
    functionName: PK11_PublicKeyOp
    functionSourceFile: /src/nss/cmd/rsaperf/rsaperf.c
    functionUses: 0
    functionsReached:
    - PK11_PubEncryptRaw
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_PublicKeyOp(SECKEYPublicKey *key,\n                 unsigned
      char *output,\n                 unsigned char *input)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_PrivDecryptRaw
      Src: /src/nss/cmd/rsaperf/rsaperf.c:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - keys
    - output
    - input
    argTypes:
    - PK11Keys*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 247
    functionName: PK11_PrivateKeyOp
    functionSourceFile: /src/nss/cmd/rsaperf/rsaperf.c
    functionUses: 0
    functionsReached:
    - PK11_PrivDecryptRaw
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_PrivateKeyOp(PK11Keys *keys,\n                  unsigned
      char *output,\n                  unsigned char *input)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ThreadRunData*::fn
      Src: /src/nss/cmd/rsaperf/rsaperf.c:273,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/rsaperf/rsaperf.c:276,1
    - Dst: PR_SecondsToInterval
      Src: /src/nss/cmd/rsaperf/rsaperf.c:283,1
    - Dst: PR_IntervalNow
      Src: /src/nss/cmd/rsaperf/rsaperf.c:284,1
    - Dst: PR_IntervalNow
      Src: /src/nss/cmd/rsaperf/rsaperf.c:286,1
    - Dst: ThreadRunData*::fn
      Src: /src/nss/cmd/rsaperf/rsaperf.c:287,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/rsaperf/rsaperf.c:290,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 297
    functionName: ThreadExecFunction
    functionSourceFile: /src/nss/cmd/rsaperf/rsaperf.c
    functionUses: 0
    functionsReached:
    - ThreadRunData*::fn
    - PORT_GetError
    - PR_SecondsToInterval
    - PR_IntervalNow
    linkageType: ''
    returnType: void
    signature: void ThreadExecFunction(void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - arg
    - ','
    - def
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 300
    functionName: INT_ARG
    functionSourceFile: /src/nss/cmd/rsaperf/rsaperf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INT_ARG(arg, def)
  - BBCount: 52
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/nss/cmd/rsaperf/rsaperf.c:348,1
    - Dst: strrchr
      Src: /src/nss/cmd/rsaperf/rsaperf.c:350,1
    - Dst: PL_CreateOptState
      Src: /src/nss/cmd/rsaperf/rsaperf.c:353,1
    - Dst: PL_GetNextOpt
      Src: /src/nss/cmd/rsaperf/rsaperf.c:354,1
    - Dst: Usage
      Src: /src/nss/cmd/rsaperf/rsaperf.c:357,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/rsaperf/rsaperf.c:360,1
    - Dst: INT_ARG
      Src: /src/nss/cmd/rsaperf/rsaperf.c:363,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/rsaperf/rsaperf.c:376,1
    - Dst: strcmp
      Src: /src/nss/cmd/rsaperf/rsaperf.c:378,1
    - Dst: INT_ARG
      Src: /src/nss/cmd/rsaperf/rsaperf.c:385,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/rsaperf/rsaperf.c:389,1
    - Dst: INT_ARG
      Src: /src/nss/cmd/rsaperf/rsaperf.c:393,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/rsaperf/rsaperf.c:396,1
    - Dst: PORT_Strdup
      Src: /src/nss/cmd/rsaperf/rsaperf.c:401,1
    - Dst: INT_ARG
      Src: /src/nss/cmd/rsaperf/rsaperf.c:406,1
    - Dst: INT_ARG
      Src: /src/nss/cmd/rsaperf/rsaperf.c:409,1
    - Dst: Usage
      Src: /src/nss/cmd/rsaperf/rsaperf.c:414,1
    - Dst: Usage
      Src: /src/nss/cmd/rsaperf/rsaperf.c:420,1
    - Dst: Usage
      Src: /src/nss/cmd/rsaperf/rsaperf.c:424,1
    - Dst: PR_Init
      Src: /src/nss/cmd/rsaperf/rsaperf.c:430,1
    - Dst: PK11_SetPasswordFunc
      Src: /src/nss/cmd/rsaperf/rsaperf.c:432,1
    - Dst: SECU_ConfigDirectory
      Src: /src/nss/cmd/rsaperf/rsaperf.c:433,1
    - Dst: NSS_Init
      Src: /src/nss/cmd/rsaperf/rsaperf.c:436,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsaperf/rsaperf.c:438,1
    - Dst: exit
      Src: /src/nss/cmd/rsaperf/rsaperf.c:439,1
    - Dst: NSS_NoDB_Init
      Src: /src/nss/cmd/rsaperf/rsaperf.c:442,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsaperf/rsaperf.c:444,1
    - Dst: exit
      Src: /src/nss/cmd/rsaperf/rsaperf.c:445,1
    - Dst: PK11_FindCertFromNickname
      Src: /src/nss/cmd/rsaperf/rsaperf.c:452,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsaperf/rsaperf.c:454,1
    - Dst: exit
      Src: /src/nss/cmd/rsaperf/rsaperf.c:456,1
    - Dst: CERT_ExtractPublicKey
      Src: /src/nss/cmd/rsaperf/rsaperf.c:458,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsaperf/rsaperf.c:460,1
    - Dst: exit
      Src: /src/nss/cmd/rsaperf/rsaperf.c:461,1
    - Dst: PK11_ImportPublicKey
      Src: /src/nss/cmd/rsaperf/rsaperf.c:469,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsaperf/rsaperf.c:471,1
    - Dst: exit
      Src: /src/nss/cmd/rsaperf/rsaperf.c:473,1
    - Dst: PK11_ReferenceSlot
      Src: /src/nss/cmd/rsaperf/rsaperf.c:475,1
    - Dst: printf
      Src: /src/nss/cmd/rsaperf/rsaperf.c:477,1
    - Dst: PK11_GetTokenName
      Src: /src/nss/cmd/rsaperf/rsaperf.c:478,1
    - Dst: PK11_FindKeyByAnyCert
      Src: /src/nss/cmd/rsaperf/rsaperf.c:481,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsaperf/rsaperf.c:483,1
    - Dst: exit
      Src: /src/nss/cmd/rsaperf/rsaperf.c:485,1
    - Dst: SECKEY_CacheStaticFlags
      Src: /src/nss/cmd/rsaperf/rsaperf.c:488,1
    - Dst: printf
      Src: /src/nss/cmd/rsaperf/rsaperf.c:493,1
    - Dst: PK11_GetTokenName
      Src: /src/nss/cmd/rsaperf/rsaperf.c:494,1
    - Dst: PK11_FindSlotByName
      Src: /src/nss/cmd/rsaperf/rsaperf.c:503,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsaperf/rsaperf.c:505,1
    - Dst: exit
      Src: /src/nss/cmd/rsaperf/rsaperf.c:506,1
    - Dst: printf
      Src: /src/nss/cmd/rsaperf/rsaperf.c:514,1
    - Dst: PK11_GetTokenName
      Src: /src/nss/cmd/rsaperf/rsaperf.c:515,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsaperf/rsaperf.c:521,1
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/cmd/rsaperf/rsaperf.c:523,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsaperf/rsaperf.c:527,1
    - Dst: PK11_GetTokenName
      Src: /src/nss/cmd/rsaperf/rsaperf.c:529,1
    - Dst: exit
      Src: /src/nss/cmd/rsaperf/rsaperf.c:530,1
    - Dst: SECKEY_CacheStaticFlags
      Src: /src/nss/cmd/rsaperf/rsaperf.c:533,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsaperf/rsaperf.c:535,1
    - Dst: printf
      Src: /src/nss/cmd/rsaperf/rsaperf.c:560,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsaperf/rsaperf.c:562,1
    - Dst: RSA_NewKey
      Src: /src/nss/cmd/rsaperf/rsaperf.c:577,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsaperf/rsaperf.c:578,1
    - Dst: printf
      Src: /src/nss/cmd/rsaperf/rsaperf.c:581,1
    - Dst: getDefaultRSAPublicKey
      Src: /src/nss/cmd/rsaperf/rsaperf.c:583,1
    - Dst: getDefaultRSAPrivateKey
      Src: /src/nss/cmd/rsaperf/rsaperf.c:585,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/rsaperf/rsaperf.c:603,1
    - Dst: PORT_Assert
      Src: /src/nss/cmd/rsaperf/rsaperf.c:611,1
    - Dst: memset
      Src: /src/nss/cmd/rsaperf/rsaperf.c:615,1
    - Dst: fn
      Src: /src/nss/cmd/rsaperf/rsaperf.c:616,1
    - Dst: PORT_GetError
      Src: /src/nss/cmd/rsaperf/rsaperf.c:621,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/rsaperf/rsaperf.c:623,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsaperf/rsaperf.c:628,1
    - Dst: exit
      Src: /src/nss/cmd/rsaperf/rsaperf.c:629,1
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/rsaperf/rsaperf.c:632,1
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/rsaperf/rsaperf.c:633,1
    - Dst: CreateTimingContext
      Src: /src/nss/cmd/rsaperf/rsaperf.c:634,1
    - Dst: TimingBegin
      Src: /src/nss/cmd/rsaperf/rsaperf.c:635,1
    - Dst: PR_Now
      Src: /src/nss/cmd/rsaperf/rsaperf.c:635,1
    - Dst: PORT_Alloc
      Src: /src/nss/cmd/rsaperf/rsaperf.c:637,1
    - Dst: PR_CreateThread
      Src: /src/nss/cmd/rsaperf/rsaperf.c:645,1
    - Dst: PR_JoinThread
      Src: /src/nss/cmd/rsaperf/rsaperf.c:656,1
    - Dst: SECU_Strerror
      Src: /src/nss/cmd/rsaperf/rsaperf.c:658,1
    - Dst: fprintf
      Src: /src/nss/cmd/rsaperf/rsaperf.c:659,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/rsaperf/rsaperf.c:665,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/rsaperf/rsaperf.c:667,1
    - Dst: PORT_Free
      Src: /src/nss/cmd/rsaperf/rsaperf.c:668,1
    - Dst: TimingEnd
      Src: /src/nss/cmd/rsaperf/rsaperf.c:670,1
    - Dst: PR_Now
      Src: /src/nss/cmd/rsaperf/rsaperf.c:670,1
    - Dst: printf
      Src: /src/nss/cmd/rsaperf/rsaperf.c:672,1
    - Dst: TimingGenerateString
      Src: /src/nss/cmd/rsaperf/rsaperf.c:673,1
    - Dst: printf
      Src: /src/nss/cmd/rsaperf/rsaperf.c:674,1
    - Dst: TimingDivide
      Src: /src/nss/cmd/rsaperf/rsaperf.c:675,1
    - Dst: printf
      Src: /src/nss/cmd/rsaperf/rsaperf.c:676,1
    - Dst: TimingGenerateString
      Src: /src/nss/cmd/rsaperf/rsaperf.c:676,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/cmd/rsaperf/rsaperf.c:679,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/cmd/rsaperf/rsaperf.c:683,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cmd/rsaperf/rsaperf.c:687,1
    - Dst: NSS_Shutdown
      Src: /src/nss/cmd/rsaperf/rsaperf.c:690,1
    - Dst: exit
      Src: /src/nss/cmd/rsaperf/rsaperf.c:691,1
    CyclomaticComplexity: 71
    EdgeCount: 71
    ICount: 263
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 301
    functionDepth: 3
    functionLinenumber: 301
    functionLinenumberEnd: 695
    functionName: main
    functionSourceFile: /src/nss/cmd/rsaperf/rsaperf.c
    functionUses: 6
    functionsReached:
    - getDefaultRSAPrivateKey
    - NSS_Init
    - printf
    - PR_Now
    - fprintf
    - PR_JoinThread
    - Usage
    - PK11_FindKeyByAnyCert
    - SECKEY_DestroyPublicKey
    - TimingGenerateString
    - memset
    - fn
    - TimingEnd
    - PK11_ReferenceSlot
    - strrchr
    - PL_CreateOptState
    - PORT_Assert
    - TimingDivide
    - PK11_GetTokenName
    - PR_Init
    - exit
    - SECKEY_CacheStaticFlags
    - TimingBegin
    - RSA_NewKey
    - PR_CreateThread
    - CERT_DestroyCertificate
    - PK11_FindSlotByName
    - PK11_FindCertFromNickname
    - PK11_SetPasswordFunc
    - SECU_ConfigDirectory
    - strcmp
    - PORT_Alloc
    - CreateTimingContext
    - NSS_NoDB_Init
    - SECU_Strerror
    - PL_GetNextOpt
    - PORT_Free
    - PK11_GenerateKeyPair
    - PORT_GetError
    - NSS_Shutdown
    - getDefaultRSAPublicKey
    - INT_ARG
    - SECKEY_DestroyPrivateKey
    - CERT_ExtractPublicKey
    - PORT_Strdup
    - PK11_ImportPublicKey
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::DataBuffer::Allocate
      Src: /src/nss/cpputil/databuffer.cc:23,1
    - Dst: memcpy
      Src: /src/nss/cpputil/databuffer.cc:24,1
    - Dst: static_cast<void*>
      Src: /src/nss/cpputil/databuffer.cc:24,1
    - Dst: static_cast<const void*>
      Src: /src/nss/cpputil/databuffer.cc:24,1
    - Dst: assert
      Src: /src/nss/cpputil/databuffer.cc:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - d
    - l
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (l == 0)
      pos:
        line_end: 25
        line_start: 25
        source_file: /src/nss/cpputil/databuffer.cc
    constantsTouched: []
    func_position:
      end: 30
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 30
    functionName: nss_test::DataBuffer::Assign
    functionSourceFile: /src/nss/cpputil/databuffer.cc
    functionUses: 0
    functionsReached:
    - memcpy
    - static_cast<const void*>
    - nss_test::DataBuffer::Allocate
    - assert
    - static_cast<void*>
    linkageType: ''
    returnType: void
    signature: void DataBuffer::Assign(const uint8_t* d, size_t l)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/cpputil/databuffer.cc:35,1
    - Dst: uint8_t::uint8_t
      Src: /src/nss/cpputil/databuffer.cc:38,1
    - Dst: memcpy
      Src: /src/nss/cpputil/databuffer.cc:40,1
    - Dst: static_cast<void*>
      Src: /src/nss/cpputil/databuffer.cc:40,1
    - Dst: static_cast<const void*>
      Src: /src/nss/cpputil/databuffer.cc:40,1
    - Dst: memset
      Src: /src/nss/cpputil/databuffer.cc:43,1
    - Dst: static_cast<void*>
      Src: /src/nss/cpputil/databuffer.cc:43,1
    - Dst: memcpy
      Src: /src/nss/cpputil/databuffer.cc:50,1
    - Dst: static_cast<void*>
      Src: /src/nss/cpputil/databuffer.cc:50,1
    - Dst: static_cast<const void*>
      Src: /src/nss/cpputil/databuffer.cc:50,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - index
    - val
    - count
    argTypes:
    - size_t
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (val)
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/nss/cpputil/databuffer.cc
    constantsTouched: []
    func_position:
      end: 54
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 54
    functionName: nss_test::DataBuffer::Write
    functionSourceFile: /src/nss/cpputil/databuffer.cc
    functionUses: 0
    functionsReached:
    - memcpy
    - static_cast<const void*>
    - assert
    - memset
    - uint8_t::uint8_t
    - static_cast<void*>
    linkageType: ''
    returnType: size_t
    signature: size_t DataBuffer::Write(size_t index, const uint8_t* val, size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/cpputil/databuffer.cc:59,1
    - Dst: htonl
      Src: /src/nss/cpputil/databuffer.cc:60,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/cpputil/databuffer.cc:61,1
    - Dst: nss_test::DataBuffer::Write
      Src: /src/nss/cpputil/databuffer.cc:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - index
    - val
    - count
    argTypes:
    - size_t
    - uint32_t
    - size_t
    assertStmts:
    - condition: (count <= sizeof(uint32_t))
      pos:
        line_end: 58
        line_start: 58
        source_file: /src/nss/cpputil/databuffer.cc
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: nss_test::DataBuffer::Write
    functionSourceFile: /src/nss/cpputil/databuffer.cc
    functionUses: 1
    functionsReached:
    - assert
    - htonl
    - nss_test::DataBuffer::Write
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: size_t
    signature: size_t DataBuffer::Write(size_t index, uint32_t val, size_t count)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/cpputil/databuffer.cc:67,1
    - Dst: uint8_t::uint8_t
      Src: /src/nss/cpputil/databuffer.cc:75,1
    - Dst: nss_test::DataBuffer::Write
      Src: /src/nss/cpputil/databuffer.cc:79,1
    - Dst: memset
      Src: /src/nss/cpputil/databuffer.cc:83,1
    - Dst: nss_test::DataBuffer::Write
      Src: /src/nss/cpputil/databuffer.cc:86,1
    - Dst: nss_test::DataBuffer::Write
      Src: /src/nss/cpputil/databuffer.cc:89,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - ins
    - ins_len
    - index
    - remove
    argTypes:
    - uint8_t*
    - size_t
    - size_t
    - size_t
    assertStmts:
    - condition: (ins)
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/nss/cpputil/databuffer.cc
    constantsTouched: []
    func_position:
      end: 93
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 93
    functionName: nss_test::DataBuffer::Splice
    functionSourceFile: /src/nss/cpputil/databuffer.cc
    functionUses: 0
    functionsReached:
    - assert
    - uint8_t::uint8_t
    - memset
    - nss_test::DataBuffer::Write
    linkageType: ''
    returnType: void
    signature: "void DataBuffer::Splice(const uint8_t* ins, size_t ins_len, size_t
      index,\n                        size_t remove)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/cpputil/databuffer.cc:98,1
    - Dst: assert
      Src: /src/nss/cpputil/databuffer.cc:99,1
    - Dst: nss_test::DataBuffer::len
      Src: /src/nss/cpputil/databuffer.cc:100,1
    - Dst: nss_test::DataBuffer::len
      Src: /src/nss/cpputil/databuffer.cc:100,1
    - Dst: nss_test::DataBuffer::data
      Src: /src/nss/cpputil/databuffer.cc:105,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - index
    - count
    - val
    argTypes:
    - size_t
    - size_t
    - uint64_t*
    assertStmts:
    - condition: (count <= sizeof(uint64_t))
      pos:
        line_end: 97
        line_start: 97
        source_file: /src/nss/cpputil/databuffer.cc
    - condition: (val)
      pos:
        line_end: 98
        line_start: 98
        source_file: /src/nss/cpputil/databuffer.cc
    constantsTouched: []
    func_position:
      end: 108
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 108
    functionName: nss_test::DataBuffer::Read
    functionSourceFile: /src/nss/cpputil/databuffer.cc
    functionUses: 0
    functionsReached:
    - assert
    - nss_test::DataBuffer::len
    - nss_test::DataBuffer::data
    linkageType: ''
    returnType: bool
    signature: bool DataBuffer::Read(size_t index, size_t count, uint64_t* val) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/cpputil/databuffer.cc:111,1
    - Dst: nss_test::DataBuffer::Read
      Src: /src/nss/cpputil/databuffer.cc:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - index
    - count
    - val
    argTypes:
    - size_t
    - size_t
    - uint32_t*
    assertStmts:
    - condition: (count <= sizeof(uint32_t))
      pos:
        line_end: 110
        line_start: 110
        source_file: /src/nss/cpputil/databuffer.cc
    constantsTouched: []
    func_position:
      end: 119
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 119
    functionName: nss_test::DataBuffer::Read
    functionSourceFile: /src/nss/cpputil/databuffer.cc
    functionUses: 1
    functionsReached:
    - assert
    - nss_test::DataBuffer::Read
    linkageType: ''
    returnType: bool
    signature: bool DataBuffer::Read(size_t index, size_t count, uint32_t* val) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - limit
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 125
    functionName: nss_test::DataBuffer::SetLogLimit
    functionSourceFile: /src/nss/cpputil/databuffer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DataBuffer::SetLogLimit(size_t limit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::DataBuffer::Allocate
      Src: /src/nss/cpputil/databuffer.cc:23,1
    - Dst: memcpy
      Src: /src/nss/cpputil/databuffer.cc:24,1
    - Dst: static_cast<void*>
      Src: /src/nss/cpputil/databuffer.cc:24,1
    - Dst: static_cast<const void*>
      Src: /src/nss/cpputil/databuffer.cc:24,1
    - Dst: assert
      Src: /src/nss/cpputil/databuffer.cc:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - d
    - l
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (l == 0)
      pos:
        line_end: 25
        line_start: 25
        source_file: /src/nss/cpputil/databuffer.cc
    constantsTouched: []
    func_position:
      end: 30
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 30
    functionName: nss_test::DataBuffer::Assign
    functionSourceFile: /src/nss/cpputil/databuffer.cc
    functionUses: 0
    functionsReached:
    - memcpy
    - static_cast<const void*>
    - nss_test::DataBuffer::Allocate
    - assert
    - static_cast<void*>
    linkageType: ''
    returnType: void
    signature: void DataBuffer::Assign(const uint8_t* d, size_t l)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/cpputil/databuffer.cc:35,1
    - Dst: uint8_t::uint8_t
      Src: /src/nss/cpputil/databuffer.cc:38,1
    - Dst: memcpy
      Src: /src/nss/cpputil/databuffer.cc:40,1
    - Dst: static_cast<void*>
      Src: /src/nss/cpputil/databuffer.cc:40,1
    - Dst: static_cast<const void*>
      Src: /src/nss/cpputil/databuffer.cc:40,1
    - Dst: memset
      Src: /src/nss/cpputil/databuffer.cc:43,1
    - Dst: static_cast<void*>
      Src: /src/nss/cpputil/databuffer.cc:43,1
    - Dst: memcpy
      Src: /src/nss/cpputil/databuffer.cc:50,1
    - Dst: static_cast<void*>
      Src: /src/nss/cpputil/databuffer.cc:50,1
    - Dst: static_cast<const void*>
      Src: /src/nss/cpputil/databuffer.cc:50,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - index
    - val
    - count
    argTypes:
    - size_t
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (val)
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/nss/cpputil/databuffer.cc
    constantsTouched: []
    func_position:
      end: 54
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 54
    functionName: nss_test::DataBuffer::Write
    functionSourceFile: /src/nss/cpputil/databuffer.cc
    functionUses: 2
    functionsReached:
    - memcpy
    - static_cast<const void*>
    - assert
    - memset
    - uint8_t::uint8_t
    - static_cast<void*>
    linkageType: ''
    returnType: size_t
    signature: size_t DataBuffer::Write(size_t index, const uint8_t* val, size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/cpputil/databuffer.cc:59,1
    - Dst: htonl
      Src: /src/nss/cpputil/databuffer.cc:60,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/cpputil/databuffer.cc:61,1
    - Dst: nss_test::DataBuffer::Write
      Src: /src/nss/cpputil/databuffer.cc:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - index
    - val
    - count
    argTypes:
    - size_t
    - uint32_t
    - size_t
    assertStmts:
    - condition: (count <= sizeof(uint32_t))
      pos:
        line_end: 58
        line_start: 58
        source_file: /src/nss/cpputil/databuffer.cc
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: nss_test::DataBuffer::Write
    functionSourceFile: /src/nss/cpputil/databuffer.cc
    functionUses: 3
    functionsReached:
    - assert
    - htonl
    - nss_test::DataBuffer::Write
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: size_t
    signature: size_t DataBuffer::Write(size_t index, uint32_t val, size_t count)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/cpputil/databuffer.cc:67,1
    - Dst: uint8_t::uint8_t
      Src: /src/nss/cpputil/databuffer.cc:75,1
    - Dst: nss_test::DataBuffer::Write
      Src: /src/nss/cpputil/databuffer.cc:79,1
    - Dst: memset
      Src: /src/nss/cpputil/databuffer.cc:83,1
    - Dst: nss_test::DataBuffer::Write
      Src: /src/nss/cpputil/databuffer.cc:86,1
    - Dst: nss_test::DataBuffer::Write
      Src: /src/nss/cpputil/databuffer.cc:89,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - ins
    - ins_len
    - index
    - remove
    argTypes:
    - uint8_t*
    - size_t
    - size_t
    - size_t
    assertStmts:
    - condition: (ins)
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/nss/cpputil/databuffer.cc
    constantsTouched: []
    func_position:
      end: 93
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 93
    functionName: nss_test::DataBuffer::Splice
    functionSourceFile: /src/nss/cpputil/databuffer.cc
    functionUses: 0
    functionsReached:
    - assert
    - uint8_t::uint8_t
    - memset
    - nss_test::DataBuffer::Write
    linkageType: ''
    returnType: void
    signature: "void DataBuffer::Splice(const uint8_t* ins, size_t ins_len, size_t
      index,\n                        size_t remove)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/cpputil/databuffer.cc:98,1
    - Dst: assert
      Src: /src/nss/cpputil/databuffer.cc:99,1
    - Dst: nss_test::DataBuffer::len
      Src: /src/nss/cpputil/databuffer.cc:100,1
    - Dst: nss_test::DataBuffer::len
      Src: /src/nss/cpputil/databuffer.cc:100,1
    - Dst: nss_test::DataBuffer::data
      Src: /src/nss/cpputil/databuffer.cc:105,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - index
    - count
    - val
    argTypes:
    - size_t
    - size_t
    - uint64_t*
    assertStmts:
    - condition: (count <= sizeof(uint64_t))
      pos:
        line_end: 97
        line_start: 97
        source_file: /src/nss/cpputil/databuffer.cc
    - condition: (val)
      pos:
        line_end: 98
        line_start: 98
        source_file: /src/nss/cpputil/databuffer.cc
    constantsTouched: []
    func_position:
      end: 108
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 108
    functionName: nss_test::DataBuffer::Read
    functionSourceFile: /src/nss/cpputil/databuffer.cc
    functionUses: 1
    functionsReached:
    - assert
    - nss_test::DataBuffer::len
    - nss_test::DataBuffer::data
    linkageType: ''
    returnType: bool
    signature: bool DataBuffer::Read(size_t index, size_t count, uint64_t* val) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/cpputil/databuffer.cc:111,1
    - Dst: nss_test::DataBuffer::Read
      Src: /src/nss/cpputil/databuffer.cc:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - index
    - count
    - val
    argTypes:
    - size_t
    - size_t
    - uint32_t*
    assertStmts:
    - condition: (count <= sizeof(uint32_t))
      pos:
        line_end: 110
        line_start: 110
        source_file: /src/nss/cpputil/databuffer.cc
    constantsTouched: []
    func_position:
      end: 119
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 119
    functionName: nss_test::DataBuffer::Read
    functionSourceFile: /src/nss/cpputil/databuffer.cc
    functionUses: 2
    functionsReached:
    - assert
    - nss_test::DataBuffer::Read
    linkageType: ''
    returnType: bool
    signature: bool DataBuffer::Read(size_t index, size_t count, uint32_t* val) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - limit
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 125
    functionName: nss_test::DataBuffer::SetLogLimit
    functionSourceFile: /src/nss/cpputil/databuffer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DataBuffer::SetLogLimit(size_t limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: UNIMPLEMENTED
    functionSourceFile: /src/nss/cpputil/dummy_io.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNIMPLEMENTED()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_CreateIOLayerStub
      Src: /src/nss/cpputil/dummy_io.cc:21,1
    - Dst: assert
      Src: /src/nss/cpputil/dummy_io.cc:22,1
    - Dst: reinterpret_cast<PRFilePrivate *>
      Src: /src/nss/cpputil/dummy_io.cc:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - id
    - methods
    argTypes:
    - PRDescIdentity
    - DummyIOLayerMethods*
    assertStmts:
    - condition: (fd)
      pos:
        line_end: 21
        line_start: 21
        source_file: /src/nss/cpputil/dummy_io.cc
    constantsTouched: []
    func_position:
      end: 28
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 28
    functionName: DummyIOLayerMethods::CreateFD
    functionSourceFile: /src/nss/cpputil/dummy_io.cc
    functionUses: 0
    functionsReached:
    - assert
    - PR_CreateIOLayerStub
    - reinterpret_cast<PRFilePrivate *>
    linkageType: ''
    returnType: ScopedPRFileDesc
    signature: "ScopedPRFileDesc DummyIOLayerMethods::CreateFD(PRDescIdentity id,\n
      \                                              DummyIOLayerMethods *methods)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRFileDesc*::dtor
      Src: /src/nss/cpputil/dummy_io.cc:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - f
    argTypes:
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 34
    functionName: DummyIOLayerMethods::Close
    functionSourceFile: /src/nss/cpputil/dummy_io.cc
    functionUses: 0
    functionsReached:
    - PRFileDesc*::dtor
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus DummyIOLayerMethods::Close(PRFileDesc *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNIMPLEMENTED
      Src: /src/nss/cpputil/dummy_io.cc:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - f
    - buf
    - length
    argTypes:
    - PRFileDesc*
    - void*
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: DummyIOLayerMethods::Read
    functionSourceFile: /src/nss/cpputil/dummy_io.cc
    functionUses: 0
    functionsReached:
    - UNIMPLEMENTED
    linkageType: ''
    returnType: int32_t
    signature: int32_t DummyIOLayerMethods::Read(PRFileDesc *f, void *buf, int32_t
      length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNIMPLEMENTED
      Src: /src/nss/cpputil/dummy_io.cc:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - f
    - buf
    - length
    argTypes:
    - PRFileDesc*
    - void*
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: DummyIOLayerMethods::Write
    functionSourceFile: /src/nss/cpputil/dummy_io.cc
    functionUses: 0
    functionsReached:
    - UNIMPLEMENTED
    linkageType: ''
    returnType: int32_t
    signature: "int32_t DummyIOLayerMethods::Write(PRFileDesc *f, const void *buf,\n
      \                                  int32_t length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNIMPLEMENTED
      Src: /src/nss/cpputil/dummy_io.cc:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: DummyIOLayerMethods::Available
    functionSourceFile: /src/nss/cpputil/dummy_io.cc
    functionUses: 0
    functionsReached:
    - UNIMPLEMENTED
    linkageType: ''
    returnType: int32_t
    signature: int32_t DummyIOLayerMethods::Available(PRFileDesc *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNIMPLEMENTED
      Src: /src/nss/cpputil/dummy_io.cc:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: DummyIOLayerMethods::Available64
    functionSourceFile: /src/nss/cpputil/dummy_io.cc
    functionUses: 0
    functionsReached:
    - UNIMPLEMENTED
    linkageType: ''
    returnType: int64_t
    signature: int64_t DummyIOLayerMethods::Available64(PRFileDesc *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNIMPLEMENTED
      Src: /src/nss/cpputil/dummy_io.cc:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: DummyIOLayerMethods::Sync
    functionSourceFile: /src/nss/cpputil/dummy_io.cc
    functionUses: 0
    functionsReached:
    - UNIMPLEMENTED
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus DummyIOLayerMethods::Sync(PRFileDesc *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNIMPLEMENTED
      Src: /src/nss/cpputil/dummy_io.cc:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - f
    - offset
    - how
    argTypes:
    - PRFileDesc*
    - int32_t
    - PRSeekWhence
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: DummyIOLayerMethods::Seek
    functionSourceFile: /src/nss/cpputil/dummy_io.cc
    functionUses: 0
    functionsReached:
    - UNIMPLEMENTED
    linkageType: ''
    returnType: int32_t
    signature: "int32_t DummyIOLayerMethods::Seek(PRFileDesc *f, int32_t offset,\n
      \                                 PRSeekWhence how)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNIMPLEMENTED
      Src: /src/nss/cpputil/dummy_io.cc:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - f
    - offset
    - how
    argTypes:
    - PRFileDesc*
    - int64_t
    - PRSeekWhence
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: DummyIOLayerMethods::Seek64
    functionSourceFile: /src/nss/cpputil/dummy_io.cc
    functionUses: 0
    functionsReached:
    - UNIMPLEMENTED
    linkageType: ''
    returnType: int64_t
    signature: "int64_t DummyIOLayerMethods::Seek64(PRFileDesc *f, int64_t offset,\n
      \                                   PRSeekWhence how)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNIMPLEMENTED
      Src: /src/nss/cpputil/dummy_io.cc:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - f
    - info
    argTypes:
    - PRFileDesc*
    - PRFileInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: DummyIOLayerMethods::FileInfo
    functionSourceFile: /src/nss/cpputil/dummy_io.cc
    functionUses: 0
    functionsReached:
    - UNIMPLEMENTED
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus DummyIOLayerMethods::FileInfo(PRFileDesc *f, PRFileInfo *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNIMPLEMENTED
      Src: /src/nss/cpputil/dummy_io.cc:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - f
    - info
    argTypes:
    - PRFileDesc*
    - PRFileInfo64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: DummyIOLayerMethods::FileInfo64
    functionSourceFile: /src/nss/cpputil/dummy_io.cc
    functionUses: 0
    functionsReached:
    - UNIMPLEMENTED
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus DummyIOLayerMethods::FileInfo64(PRFileDesc *f, PRFileInfo64
      *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNIMPLEMENTED
      Src: /src/nss/cpputil/dummy_io.cc:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - f
    - iov
    - iov_size
    - to
    argTypes:
    - PRFileDesc*
    - PRIOVec*
    - int32_t
    - PRIntervalTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 88
    functionName: DummyIOLayerMethods::Writev
    functionSourceFile: /src/nss/cpputil/dummy_io.cc
    functionUses: 0
    functionsReached:
    - UNIMPLEMENTED
    linkageType: ''
    returnType: int32_t
    signature: "int32_t DummyIOLayerMethods::Writev(PRFileDesc *f, const PRIOVec *iov,\n
      \                                   int32_t iov_size, PRIntervalTime to)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNIMPLEMENTED
      Src: /src/nss/cpputil/dummy_io.cc:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - f
    - addr
    - to
    argTypes:
    - PRFileDesc*
    - PRNetAddr*
    - PRIntervalTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 94
    functionName: DummyIOLayerMethods::Connect
    functionSourceFile: /src/nss/cpputil/dummy_io.cc
    functionUses: 0
    functionsReached:
    - UNIMPLEMENTED
    linkageType: ''
    returnType: PRStatus
    signature: "PRStatus DummyIOLayerMethods::Connect(PRFileDesc *f, const PRNetAddr
      *addr,\n                                      PRIntervalTime to)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNIMPLEMENTED
      Src: /src/nss/cpputil/dummy_io.cc:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - sd
    - addr
    - to
    argTypes:
    - PRFileDesc*
    - PRNetAddr*
    - PRIntervalTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 100
    functionName: DummyIOLayerMethods::Accept
    functionSourceFile: /src/nss/cpputil/dummy_io.cc
    functionUses: 0
    functionsReached:
    - UNIMPLEMENTED
    linkageType: ''
    returnType: PRFileDesc
    signature: "PRFileDesc *DummyIOLayerMethods::Accept(PRFileDesc *sd, PRNetAddr
      *addr,\n                                        PRIntervalTime to)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNIMPLEMENTED
      Src: /src/nss/cpputil/dummy_io.cc:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - f
    - addr
    argTypes:
    - PRFileDesc*
    - PRNetAddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: DummyIOLayerMethods::Bind
    functionSourceFile: /src/nss/cpputil/dummy_io.cc
    functionUses: 0
    functionsReached:
    - UNIMPLEMENTED
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus DummyIOLayerMethods::Bind(PRFileDesc *f, const PRNetAddr *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNIMPLEMENTED
      Src: /src/nss/cpputil/dummy_io.cc:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - f
    - depth
    argTypes:
    - PRFileDesc*
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: DummyIOLayerMethods::Listen
    functionSourceFile: /src/nss/cpputil/dummy_io.cc
    functionUses: 0
    functionsReached:
    - UNIMPLEMENTED
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus DummyIOLayerMethods::Listen(PRFileDesc *f, int32_t depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - f
    - how
    argTypes:
    - PRFileDesc*
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 114
    functionName: DummyIOLayerMethods::Shutdown
    functionSourceFile: /src/nss/cpputil/dummy_io.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus DummyIOLayerMethods::Shutdown(PRFileDesc *f, int32_t how)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNIMPLEMENTED
      Src: /src/nss/cpputil/dummy_io.cc:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - f
    - buf
    - buflen
    - flags
    - to
    argTypes:
    - PRFileDesc*
    - void*
    - int32_t
    - int32_t
    - PRIntervalTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 120
    functionName: DummyIOLayerMethods::Recv
    functionSourceFile: /src/nss/cpputil/dummy_io.cc
    functionUses: 0
    functionsReached:
    - UNIMPLEMENTED
    linkageType: ''
    returnType: int32_t
    signature: "int32_t DummyIOLayerMethods::Recv(PRFileDesc *f, void *buf, int32_t
      buflen,\n                                  int32_t flags, PRIntervalTime to)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DummyIOLayerMethods::Write
      Src: /src/nss/cpputil/dummy_io.cc:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - f
    - buf
    - amount
    - flags
    - to
    argTypes:
    - PRFileDesc*
    - void*
    - int32_t
    - int32_t
    - PRIntervalTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: DummyIOLayerMethods::Send
    functionSourceFile: /src/nss/cpputil/dummy_io.cc
    functionUses: 0
    functionsReached:
    - DummyIOLayerMethods::Write
    linkageType: ''
    returnType: int32_t
    signature: "int32_t DummyIOLayerMethods::Send(PRFileDesc *f, const void *buf,\n
      \                                 int32_t amount, int32_t flags,\n                                  PRIntervalTime
      to)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNIMPLEMENTED
      Src: /src/nss/cpputil/dummy_io.cc:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - f
    - buf
    - amount
    - flags
    - addr
    - to
    argTypes:
    - PRFileDesc*
    - void*
    - int32_t
    - int32_t
    - PRNetAddr*
    - PRIntervalTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 134
    functionName: DummyIOLayerMethods::Recvfrom
    functionSourceFile: /src/nss/cpputil/dummy_io.cc
    functionUses: 0
    functionsReached:
    - UNIMPLEMENTED
    linkageType: ''
    returnType: int32_t
    signature: "int32_t DummyIOLayerMethods::Recvfrom(PRFileDesc *f, void *buf, int32_t
      amount,\n                                      int32_t flags, PRNetAddr *addr,\n
      \                                     PRIntervalTime to)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNIMPLEMENTED
      Src: /src/nss/cpputil/dummy_io.cc:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - f
    - buf
    - amount
    - flags
    - addr
    - to
    argTypes:
    - PRFileDesc*
    - void*
    - int32_t
    - int32_t
    - PRNetAddr*
    - PRIntervalTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 141
    functionName: DummyIOLayerMethods::Sendto
    functionSourceFile: /src/nss/cpputil/dummy_io.cc
    functionUses: 0
    functionsReached:
    - UNIMPLEMENTED
    linkageType: ''
    returnType: int32_t
    signature: "int32_t DummyIOLayerMethods::Sendto(PRFileDesc *f, const void *buf,\n
      \                                   int32_t amount, int32_t flags,\n                                    const
      PRNetAddr *addr, PRIntervalTime to)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNIMPLEMENTED
      Src: /src/nss/cpputil/dummy_io.cc:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - f
    - in_flags
    - out_flags
    argTypes:
    - PRFileDesc*
    - int16_t
    - int16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 147
    functionName: DummyIOLayerMethods::Poll
    functionSourceFile: /src/nss/cpputil/dummy_io.cc
    functionUses: 0
    functionsReached:
    - UNIMPLEMENTED
    linkageType: ''
    returnType: int16_t
    signature: "int16_t DummyIOLayerMethods::Poll(PRFileDesc *f, int16_t in_flags,\n
      \                                 int16_t *out_flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNIMPLEMENTED
      Src: /src/nss/cpputil/dummy_io.cc:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - sd
    - nd
    - raddr
    - buf
    - amount
    - t
    argTypes:
    - PRFileDesc*
    - PRFileDesc**
    - PRNetAddr**
    - void*
    - int32_t
    - PRIntervalTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 154
    functionName: DummyIOLayerMethods::AcceptRead
    functionSourceFile: /src/nss/cpputil/dummy_io.cc
    functionUses: 0
    functionsReached:
    - UNIMPLEMENTED
    linkageType: ''
    returnType: int32_t
    signature: "int32_t DummyIOLayerMethods::AcceptRead(PRFileDesc *sd, PRFileDesc
      **nd,\n                                        PRNetAddr **raddr, void *buf,\n
      \                                       int32_t amount, PRIntervalTime t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNIMPLEMENTED
      Src: /src/nss/cpputil/dummy_io.cc:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - sd
    - f
    - headers
    - hlen
    - flags
    - t
    argTypes:
    - PRFileDesc*
    - PRFileDesc*
    - void*
    - int32_t
    - PRTransmitFileFlags
    - PRIntervalTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 162
    functionName: DummyIOLayerMethods::TransmitFile
    functionSourceFile: /src/nss/cpputil/dummy_io.cc
    functionUses: 0
    functionsReached:
    - UNIMPLEMENTED
    linkageType: ''
    returnType: int32_t
    signature: "int32_t DummyIOLayerMethods::TransmitFile(PRFileDesc *sd, PRFileDesc
      *f,\n                                          const void *headers, int32_t
      hlen,\n                                          PRTransmitFileFlags flags,\n
      \                                         PRIntervalTime t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - f
    - addr
    argTypes:
    - PRFileDesc*
    - PRNetAddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 174
    functionName: DummyIOLayerMethods::Getpeername
    functionSourceFile: /src/nss/cpputil/dummy_io.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus DummyIOLayerMethods::Getpeername(PRFileDesc *f, PRNetAddr
      *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNIMPLEMENTED
      Src: /src/nss/cpputil/dummy_io.cc:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - f
    - addr
    argTypes:
    - PRFileDesc*
    - PRNetAddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 179
    functionName: DummyIOLayerMethods::Getsockname
    functionSourceFile: /src/nss/cpputil/dummy_io.cc
    functionUses: 0
    functionsReached:
    - UNIMPLEMENTED
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus DummyIOLayerMethods::Getsockname(PRFileDesc *f, PRNetAddr
      *addr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UNIMPLEMENTED
      Src: /src/nss/cpputil/dummy_io.cc:188,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - f
    - opt
    argTypes:
    - PRFileDesc*
    - PRSocketOptionData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 193
    functionName: DummyIOLayerMethods::Getsockoption
    functionSourceFile: /src/nss/cpputil/dummy_io.cc
    functionUses: 0
    functionsReached:
    - UNIMPLEMENTED
    linkageType: ''
    returnType: PRStatus
    signature: "PRStatus DummyIOLayerMethods::Getsockoption(PRFileDesc *f,\n                                            PRSocketOptionData
      *opt)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UNIMPLEMENTED
      Src: /src/nss/cpputil/dummy_io.cc:203,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - f
    - opt
    argTypes:
    - PRFileDesc*
    - PRSocketOptionData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 208
    functionName: DummyIOLayerMethods::Setsockoption
    functionSourceFile: /src/nss/cpputil/dummy_io.cc
    functionUses: 0
    functionsReached:
    - UNIMPLEMENTED
    linkageType: ''
    returnType: PRStatus
    signature: "PRStatus DummyIOLayerMethods::Setsockoption(PRFileDesc *f,\n                                            const
      PRSocketOptionData *opt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNIMPLEMENTED
      Src: /src/nss/cpputil/dummy_io.cc:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - out
    - in
    - flags
    - to
    argTypes:
    - PRFileDesc*
    - PRSendFileData*
    - PRTransmitFileFlags
    - PRIntervalTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 215
    functionName: DummyIOLayerMethods::Sendfile
    functionSourceFile: /src/nss/cpputil/dummy_io.cc
    functionUses: 0
    functionsReached:
    - UNIMPLEMENTED
    linkageType: ''
    returnType: int32_t
    signature: "int32_t DummyIOLayerMethods::Sendfile(PRFileDesc *out, PRSendFileData
      *in,\n                                      PRTransmitFileFlags flags,\n                                      PRIntervalTime
      to)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNIMPLEMENTED
      Src: /src/nss/cpputil/dummy_io.cc:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - f
    - flags
    argTypes:
    - PRFileDesc*
    - int16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 220
    functionName: DummyIOLayerMethods::ConnectContinue
    functionSourceFile: /src/nss/cpputil/dummy_io.cc
    functionUses: 0
    functionsReached:
    - UNIMPLEMENTED
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus DummyIOLayerMethods::ConnectContinue(PRFileDesc *f, int16_t
      flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNIMPLEMENTED
      Src: /src/nss/cpputil/dummy_io.cc:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 225
    functionName: DummyIOLayerMethods::Reserved
    functionSourceFile: /src/nss/cpputil/dummy_io.cc
    functionUses: 0
    functionsReached:
    - UNIMPLEMENTED
    linkageType: ''
    returnType: int32_t
    signature: int32_t DummyIOLayerMethods::Reserved(PRFileDesc *f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::TlsParser::remaining
      Src: /src/nss/cpputil/tls_parser.cc:12,1
    - Dst: nss_test::TlsParser::ptr
      Src: /src/nss/cpputil/tls_parser.cc:15,1
    - Dst: nss_test::TlsParser::consume
      Src: /src/nss/cpputil/tls_parser.cc:16,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 18
    functionName: nss_test::TlsParser::Read
    functionSourceFile: /src/nss/cpputil/tls_parser.cc
    functionUses: 0
    functionsReached:
    - nss_test::TlsParser::ptr
    - nss_test::TlsParser::consume
    - nss_test::TlsParser::remaining
    linkageType: ''
    returnType: bool
    signature: bool TlsParser::Read(uint8_t* val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::TlsParser::Read
      Src: /src/nss/cpputil/tls_parser.cc:28,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - val
    - size
    argTypes:
    - uint32_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 37
    functionName: nss_test::TlsParser::Read
    functionSourceFile: /src/nss/cpputil/tls_parser.cc
    functionUses: 1
    functionsReached:
    - nss_test::TlsParser::Read
    linkageType: ''
    returnType: bool
    signature: bool TlsParser::Read(uint32_t* val, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::TlsParser::remaining
      Src: /src/nss/cpputil/tls_parser.cc:40,1
    - Dst: DataBuffer*::Assign
      Src: /src/nss/cpputil/tls_parser.cc:44,1
    - Dst: nss_test::TlsParser::ptr
      Src: /src/nss/cpputil/tls_parser.cc:44,1
    - Dst: nss_test::TlsParser::consume
      Src: /src/nss/cpputil/tls_parser.cc:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - val
    - len
    argTypes:
    - DataBuffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 47
    functionName: nss_test::TlsParser::Read
    functionSourceFile: /src/nss/cpputil/tls_parser.cc
    functionUses: 1
    functionsReached:
    - nss_test::TlsParser::ptr
    - DataBuffer*::Assign
    - nss_test::TlsParser::consume
    - nss_test::TlsParser::remaining
    linkageType: ''
    returnType: bool
    signature: bool TlsParser::Read(DataBuffer* val, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::TlsParser::remaining
      Src: /src/nss/cpputil/tls_parser.cc:53,1
    - Dst: DataBuffer*::Assign
      Src: /src/nss/cpputil/tls_parser.cc:58,1
    - Dst: nss_test::TlsParser::ptr
      Src: /src/nss/cpputil/tls_parser.cc:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - val
    - len
    - mark
    argTypes:
    - DataBuffer*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 62
    functionName: nss_test::TlsParser::ReadFromMark
    functionSourceFile: /src/nss/cpputil/tls_parser.cc
    functionUses: 0
    functionsReached:
    - nss_test::TlsParser::ptr
    - DataBuffer*::Assign
    - nss_test::TlsParser::remaining
    linkageType: ''
    returnType: bool
    signature: bool TlsParser::ReadFromMark(DataBuffer* val, size_t len, size_t mark)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::TlsParser::Read
      Src: /src/nss/cpputil/tls_parser.cc:66,1
    - Dst: nss_test::TlsParser::Read
      Src: /src/nss/cpputil/tls_parser.cc:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - val
    - len_size
    argTypes:
    - DataBuffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: nss_test::TlsParser::ReadVariable
    functionSourceFile: /src/nss/cpputil/tls_parser.cc
    functionUses: 0
    functionsReached:
    - nss_test::TlsParser::Read
    linkageType: ''
    returnType: bool
    signature: bool TlsParser::ReadVariable(DataBuffer* val, size_t len_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::TlsParser::remaining
      Src: /src/nss/cpputil/tls_parser.cc:73,1
    - Dst: nss_test::TlsParser::consume
      Src: /src/nss/cpputil/tls_parser.cc:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 78
    functionName: nss_test::TlsParser::Skip
    functionSourceFile: /src/nss/cpputil/tls_parser.cc
    functionUses: 0
    functionsReached:
    - nss_test::TlsParser::consume
    - nss_test::TlsParser::remaining
    linkageType: ''
    returnType: bool
    signature: bool TlsParser::Skip(size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::TlsParser::Read
      Src: /src/nss/cpputil/tls_parser.cc:82,1
    - Dst: nss_test::TlsParser::Skip
      Src: /src/nss/cpputil/tls_parser.cc:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - len_size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 86
    functionName: nss_test::TlsParser::SkipVariable
    functionSourceFile: /src/nss/cpputil/tls_parser.cc
    functionUses: 0
    functionsReached:
    - nss_test::TlsParser::Skip
    - nss_test::TlsParser::Read
    linkageType: ''
    returnType: bool
    signature: bool TlsParser::SkipVariable(size_t len_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::TlsParser::remaining
      Src: /src/nss/cpputil/tls_parser.cc:12,1
    - Dst: nss_test::TlsParser::ptr
      Src: /src/nss/cpputil/tls_parser.cc:15,1
    - Dst: nss_test::TlsParser::consume
      Src: /src/nss/cpputil/tls_parser.cc:16,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 18
    functionName: nss_test::TlsParser::Read
    functionSourceFile: /src/nss/cpputil/tls_parser.cc
    functionUses: 3
    functionsReached:
    - nss_test::TlsParser::ptr
    - nss_test::TlsParser::consume
    - nss_test::TlsParser::remaining
    linkageType: ''
    returnType: bool
    signature: bool TlsParser::Read(uint8_t* val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::TlsParser::Read
      Src: /src/nss/cpputil/tls_parser.cc:28,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - val
    - size
    argTypes:
    - uint32_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 37
    functionName: nss_test::TlsParser::Read
    functionSourceFile: /src/nss/cpputil/tls_parser.cc
    functionUses: 4
    functionsReached:
    - nss_test::TlsParser::Read
    linkageType: ''
    returnType: bool
    signature: bool TlsParser::Read(uint32_t* val, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::TlsParser::remaining
      Src: /src/nss/cpputil/tls_parser.cc:40,1
    - Dst: DataBuffer*::Assign
      Src: /src/nss/cpputil/tls_parser.cc:44,1
    - Dst: nss_test::TlsParser::ptr
      Src: /src/nss/cpputil/tls_parser.cc:44,1
    - Dst: nss_test::TlsParser::consume
      Src: /src/nss/cpputil/tls_parser.cc:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - val
    - len
    argTypes:
    - DataBuffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 47
    functionName: nss_test::TlsParser::Read
    functionSourceFile: /src/nss/cpputil/tls_parser.cc
    functionUses: 4
    functionsReached:
    - nss_test::TlsParser::ptr
    - DataBuffer*::Assign
    - nss_test::TlsParser::consume
    - nss_test::TlsParser::remaining
    linkageType: ''
    returnType: bool
    signature: bool TlsParser::Read(DataBuffer* val, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::TlsParser::remaining
      Src: /src/nss/cpputil/tls_parser.cc:53,1
    - Dst: DataBuffer*::Assign
      Src: /src/nss/cpputil/tls_parser.cc:58,1
    - Dst: nss_test::TlsParser::ptr
      Src: /src/nss/cpputil/tls_parser.cc:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - val
    - len
    - mark
    argTypes:
    - DataBuffer*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 62
    functionName: nss_test::TlsParser::ReadFromMark
    functionSourceFile: /src/nss/cpputil/tls_parser.cc
    functionUses: 0
    functionsReached:
    - nss_test::TlsParser::ptr
    - DataBuffer*::Assign
    - nss_test::TlsParser::remaining
    linkageType: ''
    returnType: bool
    signature: bool TlsParser::ReadFromMark(DataBuffer* val, size_t len, size_t mark)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::TlsParser::Read
      Src: /src/nss/cpputil/tls_parser.cc:66,1
    - Dst: nss_test::TlsParser::Read
      Src: /src/nss/cpputil/tls_parser.cc:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - val
    - len_size
    argTypes:
    - DataBuffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: nss_test::TlsParser::ReadVariable
    functionSourceFile: /src/nss/cpputil/tls_parser.cc
    functionUses: 0
    functionsReached:
    - nss_test::TlsParser::Read
    linkageType: ''
    returnType: bool
    signature: bool TlsParser::ReadVariable(DataBuffer* val, size_t len_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::TlsParser::remaining
      Src: /src/nss/cpputil/tls_parser.cc:73,1
    - Dst: nss_test::TlsParser::consume
      Src: /src/nss/cpputil/tls_parser.cc:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 78
    functionName: nss_test::TlsParser::Skip
    functionSourceFile: /src/nss/cpputil/tls_parser.cc
    functionUses: 1
    functionsReached:
    - nss_test::TlsParser::consume
    - nss_test::TlsParser::remaining
    linkageType: ''
    returnType: bool
    signature: bool TlsParser::Skip(size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::TlsParser::Read
      Src: /src/nss/cpputil/tls_parser.cc:82,1
    - Dst: nss_test::TlsParser::Skip
      Src: /src/nss/cpputil/tls_parser.cc:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - len_size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 86
    functionName: nss_test::TlsParser::SkipVariable
    functionSourceFile: /src/nss/cpputil/tls_parser.cc
    functionUses: 0
    functionsReached:
    - nss_test::TlsParser::Skip
    - nss_test::TlsParser::Read
    linkageType: ''
    returnType: bool
    signature: bool TlsParser::SkipVariable(size_t len_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' os'
    - v
    argTypes:
    - std::ostream
    - SSLProtocolVariant
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 91
    functionName: '& operator<<(std::ostream& os, SSLProtocolVariant v)'
    functionSourceFile: /src/nss/cpputil/tls_parser.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& os, SSLProtocolVariant v)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/nss/cpputil/tls_parser.h:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - ' os'
    - v
    argTypes:
    - std::ostream
    - SSLContentType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 107
    functionName: '& operator<<(std::ostream& os, SSLContentType v)'
    functionSourceFile: /src/nss/cpputil/tls_parser.h
    functionUses: 0
    functionsReached:
    - static_cast<int>
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& os, SSLContentType v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/nss/cpputil/tls_parser.h:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' os'
    - v
    argTypes:
    - std::ostream
    - SSLSecretDirection
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 117
    functionName: '& operator<<(std::ostream& os, SSLSecretDirection v)'
    functionSourceFile: /src/nss/cpputil/tls_parser.h
    functionUses: 0
    functionsReached:
    - static_cast<int>
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& os, SSLSecretDirection v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - version
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: nss_test::IsDtls
    functionSourceFile: /src/nss/cpputil/tls_parser.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsDtls(uint16_t version)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::IsDtls
      Src: /src/nss/cpputil/tls_parser.h:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - version
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 129
    functionName: nss_test::NormalizeTlsVersion
    functionSourceFile: /src/nss/cpputil/tls_parser.h
    functionUses: 0
    functionsReached:
    - nss_test::IsDtls
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t NormalizeTlsVersion(uint16_t version)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - version
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 139
    functionName: nss_test::TlsVersionToDtlsVersion
    functionSourceFile: /src/nss/cpputil/tls_parser.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t TlsVersionToDtlsVersion(uint16_t version)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DataBuffer*::Write
      Src: /src/nss/cpputil/tls_parser.h:143,1
    - Dst: static_cast<uint32_t>
      Src: /src/nss/cpputil/tls_parser.h:143,1
    - Dst: len
      Src: /src/nss/cpputil/tls_parser.h:143,1
    - Dst: DataBuffer*::Write
      Src: /src/nss/cpputil/tls_parser.h:144,1
    - Dst: data
      Src: /src/nss/cpputil/tls_parser.h:144,1
    - Dst: len
      Src: /src/nss/cpputil/tls_parser.h:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - target
    - index
    - ' buf'
    - len_size
    argTypes:
    - DataBuffer*
    - size_t
    - DataBuffer
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: nss_test::WriteVariable
    functionSourceFile: /src/nss/cpputil/tls_parser.h
    functionUses: 0
    functionsReached:
    - data
    - len
    - DataBuffer*::Write
    - static_cast<uint32_t>
    linkageType: ''
    returnType: size_t
    signature: "size_t WriteVariable(DataBuffer* target, size_t index,\n                            const
      DataBuffer& buf, size_t len_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 149
    functionName: nss_test::TlsParser::TlsParser
    functionSourceFile: /src/nss/cpputil/tls_parser.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TlsParser(const uint8_t* data, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - DataBuffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 150
    functionName: nss_test::TlsParser::TlsParser
    functionSourceFile: /src/nss/cpputil/tls_parser.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TlsParser(const DataBuffer& buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 165
    functionName: nss_test::TlsParser::consumed
    functionSourceFile: /src/nss/cpputil/tls_parser.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t consumed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/nss/cpputil/tls_parser.h:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 166
    functionName: nss_test::TlsParser::remaining
    functionSourceFile: /src/nss/cpputil/tls_parser.h
    functionUses: 8
    functionsReached:
    - len
    linkageType: ''
    returnType: size_t
    signature: size_t remaining() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 169
    functionName: nss_test::TlsParser::consume
    functionSourceFile: /src/nss/cpputil/tls_parser.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void consume(size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/nss/cpputil/tls_parser.h:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 170
    functionName: nss_test::TlsParser::ptr
    functionSourceFile: /src/nss/cpputil/tls_parser.h
    functionUses: 6
    functionsReached:
    - data
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t * ptr() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' os'
    - v
    argTypes:
    - std::ostream
    - SSLProtocolVariant
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 91
    functionName: '& operator<<(std::ostream& os, SSLProtocolVariant v)'
    functionSourceFile: /src/nss/cpputil/tls_parser.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& os, SSLProtocolVariant v)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/nss/cpputil/tls_parser.h:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - ' os'
    - v
    argTypes:
    - std::ostream
    - SSLContentType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 107
    functionName: '& operator<<(std::ostream& os, SSLContentType v)'
    functionSourceFile: /src/nss/cpputil/tls_parser.h
    functionUses: 0
    functionsReached:
    - static_cast<int>
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& os, SSLContentType v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/nss/cpputil/tls_parser.h:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' os'
    - v
    argTypes:
    - std::ostream
    - SSLSecretDirection
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 117
    functionName: '& operator<<(std::ostream& os, SSLSecretDirection v)'
    functionSourceFile: /src/nss/cpputil/tls_parser.h
    functionUses: 0
    functionsReached:
    - static_cast<int>
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& os, SSLSecretDirection v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - version
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: nss_test::IsDtls
    functionSourceFile: /src/nss/cpputil/tls_parser.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsDtls(uint16_t version)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::IsDtls
      Src: /src/nss/cpputil/tls_parser.h:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - version
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 129
    functionName: nss_test::NormalizeTlsVersion
    functionSourceFile: /src/nss/cpputil/tls_parser.h
    functionUses: 0
    functionsReached:
    - nss_test::IsDtls
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t NormalizeTlsVersion(uint16_t version)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - version
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 139
    functionName: nss_test::TlsVersionToDtlsVersion
    functionSourceFile: /src/nss/cpputil/tls_parser.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t TlsVersionToDtlsVersion(uint16_t version)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DataBuffer*::Write
      Src: /src/nss/cpputil/tls_parser.h:143,1
    - Dst: static_cast<uint32_t>
      Src: /src/nss/cpputil/tls_parser.h:143,1
    - Dst: len
      Src: /src/nss/cpputil/tls_parser.h:143,1
    - Dst: DataBuffer*::Write
      Src: /src/nss/cpputil/tls_parser.h:144,1
    - Dst: data
      Src: /src/nss/cpputil/tls_parser.h:144,1
    - Dst: len
      Src: /src/nss/cpputil/tls_parser.h:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - target
    - index
    - ' buf'
    - len_size
    argTypes:
    - DataBuffer*
    - size_t
    - DataBuffer
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: nss_test::WriteVariable
    functionSourceFile: /src/nss/cpputil/tls_parser.h
    functionUses: 0
    functionsReached:
    - data
    - len
    - DataBuffer*::Write
    - static_cast<uint32_t>
    linkageType: ''
    returnType: size_t
    signature: "size_t WriteVariable(DataBuffer* target, size_t index,\n                            const
      DataBuffer& buf, size_t len_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 149
    functionName: nss_test::TlsParser::TlsParser
    functionSourceFile: /src/nss/cpputil/tls_parser.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TlsParser(const uint8_t* data, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - DataBuffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 150
    functionName: nss_test::TlsParser::TlsParser
    functionSourceFile: /src/nss/cpputil/tls_parser.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TlsParser(const DataBuffer& buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 165
    functionName: nss_test::TlsParser::consumed
    functionSourceFile: /src/nss/cpputil/tls_parser.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t consumed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/nss/cpputil/tls_parser.h:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 166
    functionName: nss_test::TlsParser::remaining
    functionSourceFile: /src/nss/cpputil/tls_parser.h
    functionUses: 8
    functionsReached:
    - len
    linkageType: ''
    returnType: size_t
    signature: size_t remaining() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 169
    functionName: nss_test::TlsParser::consume
    functionSourceFile: /src/nss/cpputil/tls_parser.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void consume(size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/nss/cpputil/tls_parser.h:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 170
    functionName: nss_test::TlsParser::ptr
    functionSourceFile: /src/nss/cpputil/tls_parser.h
    functionUses: 6
    functionsReached:
    - data
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t * ptr() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_DestroyAead
      Src: /src/nss/cpputil/scoped_ptrs_ssl.h:14,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSLAeadContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 14
    functionName: operator()(SSLAeadContext* ctx)
    functionSourceFile: /src/nss/cpputil/scoped_ptrs_ssl.h
    functionUses: 0
    functionsReached:
    - SSL_DestroyAead
    linkageType: ''
    returnType: void
    signature: void operator()(SSLAeadContext* ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_DestroyMaskingContext
      Src: /src/nss/cpputil/scoped_ptrs_ssl.h:15,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSLMaskingContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 15
    functionName: operator()(SSLMaskingContext* ctx)
    functionSourceFile: /src/nss/cpputil/scoped_ptrs_ssl.h
    functionUses: 0
    functionsReached:
    - SSL_DestroyMaskingContext
    linkageType: ''
    returnType: void
    signature: void operator()(SSLMaskingContext* ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_ReleaseAntiReplayContext
      Src: /src/nss/cpputil/scoped_ptrs_ssl.h:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSLAntiReplayContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 18
    functionName: operator()(SSLAntiReplayContext* ctx)
    functionSourceFile: /src/nss/cpputil/scoped_ptrs_ssl.h
    functionUses: 0
    functionsReached:
    - SSL_ReleaseAntiReplayContext
    linkageType: ''
    returnType: void
    signature: void operator()(SSLAntiReplayContext* ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_DestroyResumptionTokenInfo
      Src: /src/nss/cpputil/scoped_ptrs_ssl.h:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - token
    argTypes:
    - SSLResumptionTokenInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 21
    functionName: operator()(SSLResumptionTokenInfo* token)
    functionSourceFile: /src/nss/cpputil/scoped_ptrs_ssl.h
    functionUses: 0
    functionsReached:
    - SSL_DestroyResumptionTokenInfo
    linkageType: ''
    returnType: void
    signature: void operator()(SSLResumptionTokenInfo* token)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: del
      Src: /src/nss/cpputil/scoped_ptrs_ssl.h:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 31
    functionName: operator()(T* ptr)
    functionSourceFile: /src/nss/cpputil/scoped_ptrs_ssl.h
    functionUses: 0
    functionsReached:
    - del
    linkageType: ''
    returnType: void
    signature: void operator()(T* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: SCOPED
    functionSourceFile: /src/nss/cpputil/scoped_ptrs_ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SCOPED(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSMessage_Destroy
      Src: /src/nss/cpputil/scoped_ptrs_smime.h:14,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - NSSCMSMessage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 14
    functionName: operator()(NSSCMSMessage* id)
    functionSourceFile: /src/nss/cpputil/scoped_ptrs_smime.h
    functionUses: 0
    functionsReached:
    - NSS_CMSMessage_Destroy
    linkageType: ''
    returnType: void
    signature: void operator()(NSSCMSMessage* id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: del
      Src: /src/nss/cpputil/scoped_ptrs_smime.h:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 24
    functionName: operator()(T* ptr)
    functionSourceFile: /src/nss/cpputil/scoped_ptrs_smime.h
    functionUses: 0
    functionsReached:
    - del
    linkageType: ''
    returnType: void
    signature: void operator()(T* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: SCOPED
    functionSourceFile: /src/nss/cpputil/scoped_ptrs_smime.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SCOPED(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 20
    functionName: nss_test::DataBuffer::DataBuffer
    functionSourceFile: /src/nss/cpputil/databuffer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DataBuffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::DataBuffer::Assign
      Src: /src/nss/cpputil/databuffer.h:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - l
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: nss_test::DataBuffer::DataBuffer
    functionSourceFile: /src/nss/cpputil/databuffer.h
    functionUses: 0
    functionsReached:
    - nss_test::DataBuffer::Assign
    linkageType: ''
    returnType: void
    signature: void DataBuffer(const uint8_t* d, size_t l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::DataBuffer::Assign
      Src: /src/nss/cpputil/databuffer.h:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - DataBuffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: nss_test::DataBuffer::DataBuffer
    functionSourceFile: /src/nss/cpputil/databuffer.h
    functionUses: 0
    functionsReached:
    - nss_test::DataBuffer::Assign
    linkageType: ''
    returnType: void
    signature: void DataBuffer(const DataBuffer& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::DataBuffer::Allocate
      Src: /src/nss/cpputil/databuffer.h:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: nss_test::DataBuffer::DataBuffer
    functionSourceFile: /src/nss/cpputil/databuffer.h
    functionUses: 0
    functionsReached:
    - nss_test::DataBuffer::Allocate
    linkageType: ''
    returnType: void
    signature: void DataBuffer(size_t l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: ~DataBuffer()
    functionSourceFile: /src/nss/cpputil/databuffer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~DataBuffer()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Assign
      Src: /src/nss/cpputil/databuffer.h:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - DataBuffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: '& operator=(const DataBuffer& other)'
    functionSourceFile: /src/nss/cpputil/databuffer.h
    functionUses: 0
    functionsReached:
    - Assign
    linkageType: ''
    returnType: DataBuffer
    signature: DataBuffer & operator=(const DataBuffer& other)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - DataBuffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 45
    functionName: '& operator=(DataBuffer&& other)'
    functionSourceFile: /src/nss/cpputil/databuffer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DataBuffer
    signature: DataBuffer & operator=(DataBuffer&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uint8_t::uint8_t
      Src: /src/nss/cpputil/databuffer.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - l
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: nss_test::DataBuffer::Allocate
    functionSourceFile: /src/nss/cpputil/databuffer.h
    functionUses: 3
    functionsReached:
    - uint8_t::uint8_t
    linkageType: ''
    returnType: void
    signature: void Allocate(size_t l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: nss_test::DataBuffer::Truncate
    functionSourceFile: /src/nss/cpputil/databuffer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Truncate(size_t l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::DataBuffer::Assign
      Src: /src/nss/cpputil/databuffer.h:55,1
    - Dst: nss_test::DataBuffer::data
      Src: /src/nss/cpputil/databuffer.h:55,1
    - Dst: nss_test::DataBuffer::len
      Src: /src/nss/cpputil/databuffer.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - DataBuffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: nss_test::DataBuffer::Assign
    functionSourceFile: /src/nss/cpputil/databuffer.h
    functionUses: 3
    functionsReached:
    - nss_test::DataBuffer::Assign
    - nss_test::DataBuffer::len
    - nss_test::DataBuffer::data
    linkageType: ''
    returnType: void
    signature: void Assign(const DataBuffer& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::DataBuffer::Write
      Src: /src/nss/cpputil/databuffer.h:63,1
    - Dst: nss_test::DataBuffer::data
      Src: /src/nss/cpputil/databuffer.h:63,1
    - Dst: nss_test::DataBuffer::len
      Src: /src/nss/cpputil/databuffer.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - index
    - ' buf'
    argTypes:
    - size_t
    - DataBuffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: nss_test::DataBuffer::Write
    functionSourceFile: /src/nss/cpputil/databuffer.h
    functionUses: 5
    functionsReached:
    - nss_test::DataBuffer::data
    - nss_test::DataBuffer::len
    - nss_test::DataBuffer::Write
    linkageType: ''
    returnType: size_t
    signature: size_t Write(size_t index, const DataBuffer& buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::DataBuffer::Splice
      Src: /src/nss/cpputil/databuffer.h:73,1
    - Dst: nss_test::DataBuffer::data
      Src: /src/nss/cpputil/databuffer.h:73,1
    - Dst: nss_test::DataBuffer::len
      Src: /src/nss/cpputil/databuffer.h:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' buf'
    - index
    argTypes:
    - DataBuffer
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: nss_test::DataBuffer::Splice
    functionSourceFile: /src/nss/cpputil/databuffer.h
    functionUses: 1
    functionsReached:
    - nss_test::DataBuffer::Splice
    - nss_test::DataBuffer::len
    - nss_test::DataBuffer::data
    linkageType: ''
    returnType: void
    signature: void Splice(const DataBuffer& buf, size_t index, size_t remove = 0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::DataBuffer::Splice
      Src: /src/nss/cpputil/databuffer.h:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - DataBuffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: nss_test::DataBuffer::Append
    functionSourceFile: /src/nss/cpputil/databuffer.h
    functionUses: 0
    functionsReached:
    - nss_test::DataBuffer::Splice
    linkageType: ''
    returnType: void
    signature: void Append(const DataBuffer& buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: nss_test::DataBuffer::data
    functionSourceFile: /src/nss/cpputil/databuffer.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t * data() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: nss_test::DataBuffer::data
    functionSourceFile: /src/nss/cpputil/databuffer.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t * data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: nss_test::DataBuffer::len
    functionSourceFile: /src/nss/cpputil/databuffer.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t len() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: nss_test::DataBuffer::empty
    functionSourceFile: /src/nss/cpputil/databuffer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/nss/cpputil/databuffer.h:98,1
    - Dst: len
      Src: /src/nss/cpputil/databuffer.h:99,1
    - Dst: std::setfill
      Src: /src/nss/cpputil/databuffer.h:104,1
    - Dst: std::setw
      Src: /src/nss/cpputil/databuffer.h:104,1
    - Dst: static_cast<unsigned>
      Src: /src/nss/cpputil/databuffer.h:105,1
    - Dst: data
      Src: /src/nss/cpputil/databuffer.h:105,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ' stream'
    - ' buf'
    argTypes:
    - std::ostream
    - DataBuffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 109
    functionName: '& operator<<(std::ostream& stream, const DataBuffer& buf)'
    functionSourceFile: /src/nss/cpputil/databuffer.h
    functionUses: 0
    functionsReached:
    - std::setfill
    - static_cast<unsigned>
    - std::setw
    - len
    - data
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& stream, const DataBuffer& buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/nss/cpputil/databuffer.h:112,1
    - Dst: empty
      Src: /src/nss/cpputil/databuffer.h:112,1
    - Dst: len
      Src: /src/nss/cpputil/databuffer.h:113,1
    - Dst: len
      Src: /src/nss/cpputil/databuffer.h:113,1
    - Dst: memcmp
      Src: /src/nss/cpputil/databuffer.h:113,1
    - Dst: data
      Src: /src/nss/cpputil/databuffer.h:113,1
    - Dst: data
      Src: /src/nss/cpputil/databuffer.h:113,1
    - Dst: len
      Src: /src/nss/cpputil/databuffer.h:113,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - DataBuffer
    - DataBuffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: operator==(const DataBuffer& a, const DataBuffer& b)
    functionSourceFile: /src/nss/cpputil/databuffer.h
    functionUses: 0
    functionsReached:
    - len
    - memcmp
    - empty
    - data
    linkageType: ''
    returnType: bool
    signature: bool operator==(const DataBuffer& a, const DataBuffer& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - DataBuffer
    - DataBuffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 118
    functionName: operator!=(const DataBuffer& a, const DataBuffer& b)
    functionSourceFile: /src/nss/cpputil/databuffer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const DataBuffer& a, const DataBuffer& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 20
    functionName: nss_test::DataBuffer::DataBuffer
    functionSourceFile: /src/nss/cpputil/databuffer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DataBuffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::DataBuffer::Assign
      Src: /src/nss/cpputil/databuffer.h:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - l
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: nss_test::DataBuffer::DataBuffer
    functionSourceFile: /src/nss/cpputil/databuffer.h
    functionUses: 0
    functionsReached:
    - nss_test::DataBuffer::Assign
    linkageType: ''
    returnType: void
    signature: void DataBuffer(const uint8_t* d, size_t l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::DataBuffer::Assign
      Src: /src/nss/cpputil/databuffer.h:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - DataBuffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: nss_test::DataBuffer::DataBuffer
    functionSourceFile: /src/nss/cpputil/databuffer.h
    functionUses: 0
    functionsReached:
    - nss_test::DataBuffer::Assign
    linkageType: ''
    returnType: void
    signature: void DataBuffer(const DataBuffer& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::DataBuffer::Allocate
      Src: /src/nss/cpputil/databuffer.h:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: nss_test::DataBuffer::DataBuffer
    functionSourceFile: /src/nss/cpputil/databuffer.h
    functionUses: 0
    functionsReached:
    - nss_test::DataBuffer::Allocate
    linkageType: ''
    returnType: void
    signature: void DataBuffer(size_t l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: ~DataBuffer()
    functionSourceFile: /src/nss/cpputil/databuffer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~DataBuffer()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Assign
      Src: /src/nss/cpputil/databuffer.h:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - DataBuffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: '& operator=(const DataBuffer& other)'
    functionSourceFile: /src/nss/cpputil/databuffer.h
    functionUses: 0
    functionsReached:
    - Assign
    linkageType: ''
    returnType: DataBuffer
    signature: DataBuffer & operator=(const DataBuffer& other)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - DataBuffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 45
    functionName: '& operator=(DataBuffer&& other)'
    functionSourceFile: /src/nss/cpputil/databuffer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DataBuffer
    signature: DataBuffer & operator=(DataBuffer&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uint8_t::uint8_t
      Src: /src/nss/cpputil/databuffer.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - l
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: nss_test::DataBuffer::Allocate
    functionSourceFile: /src/nss/cpputil/databuffer.h
    functionUses: 4
    functionsReached:
    - uint8_t::uint8_t
    linkageType: ''
    returnType: void
    signature: void Allocate(size_t l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: nss_test::DataBuffer::Truncate
    functionSourceFile: /src/nss/cpputil/databuffer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Truncate(size_t l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::DataBuffer::Assign
      Src: /src/nss/cpputil/databuffer.h:55,1
    - Dst: nss_test::DataBuffer::data
      Src: /src/nss/cpputil/databuffer.h:55,1
    - Dst: nss_test::DataBuffer::len
      Src: /src/nss/cpputil/databuffer.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - DataBuffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: nss_test::DataBuffer::Assign
    functionSourceFile: /src/nss/cpputil/databuffer.h
    functionUses: 6
    functionsReached:
    - nss_test::DataBuffer::Assign
    - nss_test::DataBuffer::len
    - nss_test::DataBuffer::data
    linkageType: ''
    returnType: void
    signature: void Assign(const DataBuffer& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::DataBuffer::Write
      Src: /src/nss/cpputil/databuffer.h:63,1
    - Dst: nss_test::DataBuffer::data
      Src: /src/nss/cpputil/databuffer.h:63,1
    - Dst: nss_test::DataBuffer::len
      Src: /src/nss/cpputil/databuffer.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - index
    - ' buf'
    argTypes:
    - size_t
    - DataBuffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: nss_test::DataBuffer::Write
    functionSourceFile: /src/nss/cpputil/databuffer.h
    functionUses: 6
    functionsReached:
    - nss_test::DataBuffer::data
    - nss_test::DataBuffer::len
    - nss_test::DataBuffer::Write
    linkageType: ''
    returnType: size_t
    signature: size_t Write(size_t index, const DataBuffer& buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::DataBuffer::Splice
      Src: /src/nss/cpputil/databuffer.h:73,1
    - Dst: nss_test::DataBuffer::data
      Src: /src/nss/cpputil/databuffer.h:73,1
    - Dst: nss_test::DataBuffer::len
      Src: /src/nss/cpputil/databuffer.h:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' buf'
    - index
    argTypes:
    - DataBuffer
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: nss_test::DataBuffer::Splice
    functionSourceFile: /src/nss/cpputil/databuffer.h
    functionUses: 3
    functionsReached:
    - nss_test::DataBuffer::Splice
    - nss_test::DataBuffer::len
    - nss_test::DataBuffer::data
    linkageType: ''
    returnType: void
    signature: void Splice(const DataBuffer& buf, size_t index, size_t remove = 0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::DataBuffer::Splice
      Src: /src/nss/cpputil/databuffer.h:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - DataBuffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: nss_test::DataBuffer::Append
    functionSourceFile: /src/nss/cpputil/databuffer.h
    functionUses: 0
    functionsReached:
    - nss_test::DataBuffer::Splice
    linkageType: ''
    returnType: void
    signature: void Append(const DataBuffer& buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: nss_test::DataBuffer::data
    functionSourceFile: /src/nss/cpputil/databuffer.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t * data() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: nss_test::DataBuffer::data
    functionSourceFile: /src/nss/cpputil/databuffer.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t * data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: nss_test::DataBuffer::len
    functionSourceFile: /src/nss/cpputil/databuffer.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t len() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: nss_test::DataBuffer::empty
    functionSourceFile: /src/nss/cpputil/databuffer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/nss/cpputil/databuffer.h:98,1
    - Dst: len
      Src: /src/nss/cpputil/databuffer.h:99,1
    - Dst: std::setfill
      Src: /src/nss/cpputil/databuffer.h:104,1
    - Dst: std::setw
      Src: /src/nss/cpputil/databuffer.h:104,1
    - Dst: static_cast<unsigned>
      Src: /src/nss/cpputil/databuffer.h:105,1
    - Dst: data
      Src: /src/nss/cpputil/databuffer.h:105,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ' stream'
    - ' buf'
    argTypes:
    - std::ostream
    - DataBuffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 109
    functionName: '& operator<<(std::ostream& stream, const DataBuffer& buf)'
    functionSourceFile: /src/nss/cpputil/databuffer.h
    functionUses: 0
    functionsReached:
    - std::setfill
    - static_cast<unsigned>
    - std::setw
    - len
    - data
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& stream, const DataBuffer& buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/nss/cpputil/databuffer.h:112,1
    - Dst: empty
      Src: /src/nss/cpputil/databuffer.h:112,1
    - Dst: len
      Src: /src/nss/cpputil/databuffer.h:113,1
    - Dst: len
      Src: /src/nss/cpputil/databuffer.h:113,1
    - Dst: memcmp
      Src: /src/nss/cpputil/databuffer.h:113,1
    - Dst: data
      Src: /src/nss/cpputil/databuffer.h:113,1
    - Dst: data
      Src: /src/nss/cpputil/databuffer.h:113,1
    - Dst: len
      Src: /src/nss/cpputil/databuffer.h:113,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - DataBuffer
    - DataBuffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: operator==(const DataBuffer& a, const DataBuffer& b)
    functionSourceFile: /src/nss/cpputil/databuffer.h
    functionUses: 0
    functionsReached:
    - len
    - memcmp
    - empty
    - data
    linkageType: ''
    returnType: bool
    signature: bool operator==(const DataBuffer& a, const DataBuffer& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - DataBuffer
    - DataBuffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 118
    functionName: operator!=(const DataBuffer& a, const DataBuffer& b)
    functionSourceFile: /src/nss/cpputil/databuffer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const DataBuffer& a, const DataBuffer& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/cpputil/cpputil.h:9,1
    - Dst: static_cast<const unsigned char*>
      Src: /src/nss/cpputil/cpputil.h:9,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 10
    functionName: toUcharPtr
    functionSourceFile: /src/nss/cpputil/cpputil.h
    functionUses: 0
    functionsReached:
    - const_cast<unsigned char*>
    - static_cast<const unsigned char*>
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char * toUcharPtr(const uint8_t* v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_DestroyAlgorithmID
      Src: /src/nss/cpputil/scoped_ptrs_util.h:15,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - SECAlgorithmID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 15
    functionName: operator()(SECAlgorithmID* id)
    functionSourceFile: /src/nss/cpputil/scoped_ptrs_util.h
    functionUses: 0
    functionsReached:
    - SECOID_DestroyAlgorithmID
    linkageType: ''
    returnType: void
    signature: void operator()(SECAlgorithmID* id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cpputil/scoped_ptrs_util.h:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - item
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 16
    functionName: operator()(SECItem* item)
    functionSourceFile: /src/nss/cpputil/scoped_ptrs_util.h
    functionUses: 0
    functionsReached:
    - SECITEM_FreeItem
    linkageType: ''
    returnType: void
    signature: void operator()(SECItem* item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11URI_DestroyURI
      Src: /src/nss/cpputil/scoped_ptrs_util.h:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uri
    argTypes:
    - PK11URI*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 17
    functionName: operator()(PK11URI* uri)
    functionSourceFile: /src/nss/cpputil/scoped_ptrs_util.h
    functionUses: 0
    functionsReached:
    - PK11URI_DestroyURI
    linkageType: ''
    returnType: void
    signature: void operator()(PK11URI* uri)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_FreeArena
      Src: /src/nss/cpputil/scoped_ptrs_util.h:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arena
    argTypes:
    - PLArenaPool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 18
    functionName: operator()(PLArenaPool* arena)
    functionSourceFile: /src/nss/cpputil/scoped_ptrs_util.h
    functionUses: 0
    functionsReached:
    - PORT_FreeArena
    linkageType: ''
    returnType: void
    signature: void operator()(PLArenaPool* arena)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: del
      Src: /src/nss/cpputil/scoped_ptrs_util.h:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: operator()(T* ptr)
    functionSourceFile: /src/nss/cpputil/scoped_ptrs_util.h
    functionUses: 0
    functionsReached:
    - del
    linkageType: ''
    returnType: void
    signature: void operator()(T* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: SCOPED
    functionSourceFile: /src/nss/cpputil/scoped_ptrs_util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SCOPED(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: StackSECItem
    functionSourceFile: /src/nss/cpputil/scoped_ptrs_util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StackSECItem()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cpputil/scoped_ptrs_util.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: ~StackSECItem()
    functionSourceFile: /src/nss/cpputil/scoped_ptrs_util.h
    functionUses: 0
    functionsReached:
    - SECITEM_FreeItem
    linkageType: ''
    returnType: void
    signature: void ~StackSECItem()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMAC_Destroy
      Src: /src/nss/cpputil/freebl_scoped_ptrs.h:14,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - CMACContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 14
    functionName: operator()(CMACContext* ctx)
    functionSourceFile: /src/nss/cpputil/freebl_scoped_ptrs.h
    functionUses: 0
    functionsReached:
    - CMAC_Destroy
    linkageType: ''
    returnType: void
    signature: void operator()(CMACContext* ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: del
      Src: /src/nss/cpputil/freebl_scoped_ptrs.h:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 24
    functionName: operator()(T* ptr)
    functionSourceFile: /src/nss/cpputil/freebl_scoped_ptrs.h
    functionUses: 0
    functionsReached:
    - del
    linkageType: ''
    returnType: void
    signature: void operator()(T* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: SCOPED
    functionSourceFile: /src/nss/cpputil/freebl_scoped_ptrs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SCOPED(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/cpputil/nss_scoped_ptrs.h:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cert
    argTypes:
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 23
    functionName: operator()(CERTCertificate* cert)
    functionSourceFile: /src/nss/cpputil/nss_scoped_ptrs.h
    functionUses: 0
    functionsReached:
    - CERT_DestroyCertificate
    linkageType: ''
    returnType: void
    signature: void operator()(CERTCertificate* cert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CERT_DestroyCertificateList
      Src: /src/nss/cpputil/nss_scoped_ptrs.h:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list
    argTypes:
    - CERTCertificateList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: operator()(CERTCertificateList* list)
    functionSourceFile: /src/nss/cpputil/nss_scoped_ptrs.h
    functionUses: 0
    functionsReached:
    - CERT_DestroyCertificateList
    linkageType: ''
    returnType: void
    signature: void operator()(CERTCertificateList* list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CERT_FreeDistNames
      Src: /src/nss/cpputil/nss_scoped_ptrs.h:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - names
    argTypes:
    - CERTDistNames*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: operator()(CERTDistNames* names)
    functionSourceFile: /src/nss/cpputil/nss_scoped_ptrs.h
    functionUses: 0
    functionsReached:
    - CERT_FreeDistNames
    linkageType: ''
    returnType: void
    signature: void operator()(CERTDistNames* names)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CERT_DestroyName
      Src: /src/nss/cpputil/nss_scoped_ptrs.h:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - CERTName*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: operator()(CERTName* name)
    functionSourceFile: /src/nss/cpputil/nss_scoped_ptrs.h
    functionUses: 0
    functionsReached:
    - CERT_DestroyName
    linkageType: ''
    returnType: void
    signature: void operator()(CERTName* name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CERT_DestroyCertList
      Src: /src/nss/cpputil/nss_scoped_ptrs.h:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list
    argTypes:
    - CERTCertList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: operator()(CERTCertList* list)
    functionSourceFile: /src/nss/cpputil/nss_scoped_ptrs.h
    functionUses: 0
    functionsReached:
    - CERT_DestroyCertList
    linkageType: ''
    returnType: void
    signature: void operator()(CERTCertList* list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECKEY_DestroySubjectPublicKeyInfo
      Src: /src/nss/cpputil/nss_scoped_ptrs.h:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - spki
    argTypes:
    - CERTSubjectPublicKeyInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: operator()(CERTSubjectPublicKeyInfo* spki)
    functionSourceFile: /src/nss/cpputil/nss_scoped_ptrs.h
    functionUses: 0
    functionsReached:
    - SECKEY_DestroySubjectPublicKeyInfo
    linkageType: ''
    returnType: void
    signature: void operator()(CERTSubjectPublicKeyInfo* spki)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_HPKE_DestroyContext
      Src: /src/nss/cpputil/nss_scoped_ptrs.h:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - context
    argTypes:
    - HpkeContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: operator()(HpkeContext* context)
    functionSourceFile: /src/nss/cpputil/nss_scoped_ptrs.h
    functionUses: 0
    functionsReached:
    - PK11_HPKE_DestroyContext
    linkageType: ''
    returnType: void
    signature: void operator()(HpkeContext* context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_DestroyContext
      Src: /src/nss/cpputil/nss_scoped_ptrs.h:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - context
    argTypes:
    - PK11Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: operator()(PK11Context* context)
    functionSourceFile: /src/nss/cpputil/nss_scoped_ptrs.h
    functionUses: 0
    functionsReached:
    - PK11_DestroyContext
    linkageType: ''
    returnType: void
    signature: void operator()(PK11Context* context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_DestroyGenericObject
      Src: /src/nss/cpputil/nss_scoped_ptrs.h:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - PK11GenericObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: operator()(PK11GenericObject* obj)
    functionSourceFile: /src/nss/cpputil/nss_scoped_ptrs.h
    functionUses: 0
    functionsReached:
    - PK11_DestroyGenericObject
    linkageType: ''
    returnType: void
    signature: void operator()(PK11GenericObject* obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_FreeSlot
      Src: /src/nss/cpputil/nss_scoped_ptrs.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - slot
    argTypes:
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: operator()(PK11SlotInfo* slot)
    functionSourceFile: /src/nss/cpputil/nss_scoped_ptrs.h
    functionUses: 0
    functionsReached:
    - PK11_FreeSlot
    linkageType: ''
    returnType: void
    signature: void operator()(PK11SlotInfo* slot)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_FreeSlotList
      Src: /src/nss/cpputil/nss_scoped_ptrs.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - slots
    argTypes:
    - PK11SlotList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: operator()(PK11SlotList* slots)
    functionSourceFile: /src/nss/cpputil/nss_scoped_ptrs.h
    functionUses: 0
    functionsReached:
    - PK11_FreeSlotList
    linkageType: ''
    returnType: void
    signature: void operator()(PK11SlotList* slots)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_FreeSymKey
      Src: /src/nss/cpputil/nss_scoped_ptrs.h:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: operator()(PK11SymKey* key)
    functionSourceFile: /src/nss/cpputil/nss_scoped_ptrs.h
    functionUses: 0
    functionsReached:
    - PK11_FreeSymKey
    linkageType: ''
    returnType: void
    signature: void operator()(PK11SymKey* key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11URI_DestroyURI
      Src: /src/nss/cpputil/nss_scoped_ptrs.h:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uri
    argTypes:
    - PK11URI*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: operator()(PK11URI* uri)
    functionSourceFile: /src/nss/cpputil/nss_scoped_ptrs.h
    functionUses: 0
    functionsReached:
    - PK11URI_DestroyURI
    linkageType: ''
    returnType: void
    signature: void operator()(PK11URI* uri)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_FreeArena
      Src: /src/nss/cpputil/nss_scoped_ptrs.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arena
    argTypes:
    - PLArenaPool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: operator()(PLArenaPool* arena)
    functionSourceFile: /src/nss/cpputil/nss_scoped_ptrs.h
    functionUses: 0
    functionsReached:
    - PORT_FreeArena
    linkageType: ''
    returnType: void
    signature: void operator()(PLArenaPool* arena)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_PQG_DestroyParams
      Src: /src/nss/cpputil/nss_scoped_ptrs.h:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pqg
    argTypes:
    - PQGParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: operator()(PQGParams* pqg)
    functionSourceFile: /src/nss/cpputil/nss_scoped_ptrs.h
    functionUses: 0
    functionsReached:
    - PK11_PQG_DestroyParams
    linkageType: ''
    returnType: void
    signature: void operator()(PQGParams* pqg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_Close
      Src: /src/nss/cpputil/nss_scoped_ptrs.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: operator()(PRFileDesc* fd)
    functionSourceFile: /src/nss/cpputil/nss_scoped_ptrs.h
    functionUses: 0
    functionsReached:
    - PR_Close
    linkageType: ''
    returnType: void
    signature: void operator()(PRFileDesc* fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_DestroyAlgorithmID
      Src: /src/nss/cpputil/nss_scoped_ptrs.h:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - SECAlgorithmID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: operator()(SECAlgorithmID* id)
    functionSourceFile: /src/nss/cpputil/nss_scoped_ptrs.h
    functionUses: 0
    functionsReached:
    - SECOID_DestroyAlgorithmID
    linkageType: ''
    returnType: void
    signature: void operator()(SECAlgorithmID* id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECKEY_DestroyEncryptedPrivateKeyInfo
      Src: /src/nss/cpputil/nss_scoped_ptrs.h:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - SECKEYEncryptedPrivateKeyInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: operator()(SECKEYEncryptedPrivateKeyInfo* e)
    functionSourceFile: /src/nss/cpputil/nss_scoped_ptrs.h
    functionUses: 0
    functionsReached:
    - SECKEY_DestroyEncryptedPrivateKeyInfo
    linkageType: ''
    returnType: void
    signature: void operator()(SECKEYEncryptedPrivateKeyInfo* e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cpputil/nss_scoped_ptrs.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - item
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: operator()(SECItem* item)
    functionSourceFile: /src/nss/cpputil/nss_scoped_ptrs.h
    functionUses: 0
    functionsReached:
    - SECITEM_FreeItem
    linkageType: ''
    returnType: void
    signature: void operator()(SECItem* item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/cpputil/nss_scoped_ptrs.h:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - SECKEYPublicKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: operator()(SECKEYPublicKey* key)
    functionSourceFile: /src/nss/cpputil/nss_scoped_ptrs.h
    functionUses: 0
    functionsReached:
    - SECKEY_DestroyPublicKey
    linkageType: ''
    returnType: void
    signature: void operator()(SECKEYPublicKey* key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/cpputil/nss_scoped_ptrs.h:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - SECKEYPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: operator()(SECKEYPrivateKey* key)
    functionSourceFile: /src/nss/cpputil/nss_scoped_ptrs.h
    functionUses: 0
    functionsReached:
    - SECKEY_DestroyPrivateKey
    linkageType: ''
    returnType: void
    signature: void operator()(SECKEYPrivateKey* key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECKEY_DestroyPrivateKeyList
      Src: /src/nss/cpputil/nss_scoped_ptrs.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list
    argTypes:
    - SECKEYPrivateKeyList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: operator()(SECKEYPrivateKeyList* list)
    functionSourceFile: /src/nss/cpputil/nss_scoped_ptrs.h
    functionUses: 0
    functionsReached:
    - SECKEY_DestroyPrivateKeyList
    linkageType: ''
    returnType: void
    signature: void operator()(SECKEYPrivateKeyList* list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECMOD_DestroyModule
      Src: /src/nss/cpputil/nss_scoped_ptrs.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - module
    argTypes:
    - SECMODModule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: operator()(SECMODModule* module)
    functionSourceFile: /src/nss/cpputil/nss_scoped_ptrs.h
    functionUses: 0
    functionsReached:
    - SECMOD_DestroyModule
    linkageType: ''
    returnType: void
    signature: void operator()(SECMODModule* module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SEC_PKCS12DecoderFinish
      Src: /src/nss/cpputil/nss_scoped_ptrs.h:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dcx
    argTypes:
    - SEC_PKCS12DecoderContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: operator()(SEC_PKCS12DecoderContext* dcx)
    functionSourceFile: /src/nss/cpputil/nss_scoped_ptrs.h
    functionUses: 0
    functionsReached:
    - SEC_PKCS12DecoderFinish
    linkageType: ''
    returnType: void
    signature: void operator()(SEC_PKCS12DecoderContext* dcx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSS_ShutdownContext
      Src: /src/nss/cpputil/nss_scoped_ptrs.h:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - init
    argTypes:
    - NSSInitContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: operator()(NSSInitContext* init)
    functionSourceFile: /src/nss/cpputil/nss_scoped_ptrs.h
    functionUses: 0
    functionsReached:
    - NSS_ShutdownContext
    linkageType: ''
    returnType: void
    signature: void operator()(NSSInitContext* init)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: del
      Src: /src/nss/cpputil/nss_scoped_ptrs.h:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 69
    functionName: operator()(T* ptr)
    functionSourceFile: /src/nss/cpputil/nss_scoped_ptrs.h
    functionUses: 0
    functionsReached:
    - del
    linkageType: ''
    returnType: void
    signature: void operator()(T* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: SCOPED
    functionSourceFile: /src/nss/cpputil/nss_scoped_ptrs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SCOPED(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: StackSECItem
    functionSourceFile: /src/nss/cpputil/nss_scoped_ptrs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void StackSECItem()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Reset
      Src: /src/nss/cpputil/nss_scoped_ptrs.h:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: ~StackSECItem()
    functionSourceFile: /src/nss/cpputil/nss_scoped_ptrs.h
    functionUses: 0
    functionsReached:
    - Reset
    linkageType: ''
    returnType: void
    signature: void ~StackSECItem()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_FreeItem
      Src: /src/nss/cpputil/nss_scoped_ptrs.h:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: Reset
    functionSourceFile: /src/nss/cpputil/nss_scoped_ptrs.h
    functionUses: 3
    functionsReached:
    - SECITEM_FreeItem
    linkageType: ''
    returnType: void
    signature: void Reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<DummyIOLayerMethods *>
      Src: /src/nss/cpputil/dummy_io_fwd.cc:10,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 11
    functionName: ToMethods
    functionSourceFile: /src/nss/cpputil/dummy_io_fwd.cc
    functionUses: 0
    functionsReached:
    - reinterpret_cast<DummyIOLayerMethods *>
    linkageType: ''
    returnType: DummyIOLayerMethods
    signature: DummyIOLayerMethods *ToMethods(PRFileDesc *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToMethods
      Src: /src/nss/cpputil/dummy_io_fwd.cc:13,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 13
    functionName: DummyClose
    functionSourceFile: /src/nss/cpputil/dummy_io_fwd.cc
    functionUses: 0
    functionsReached:
    - ToMethods
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus DummyClose(PRFileDesc *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToMethods
      Src: /src/nss/cpputil/dummy_io_fwd.cc:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - f
    - buf
    - length
    argTypes:
    - PRFileDesc*
    - void*
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 17
    functionName: DummyRead
    functionSourceFile: /src/nss/cpputil/dummy_io_fwd.cc
    functionUses: 0
    functionsReached:
    - ToMethods
    linkageType: ''
    returnType: int32_t
    signature: int32_t DummyRead(PRFileDesc *f, void *buf, int32_t length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToMethods
      Src: /src/nss/cpputil/dummy_io_fwd.cc:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - f
    - buf
    - length
    argTypes:
    - PRFileDesc*
    - void*
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 21
    functionName: DummyWrite
    functionSourceFile: /src/nss/cpputil/dummy_io_fwd.cc
    functionUses: 0
    functionsReached:
    - ToMethods
    linkageType: ''
    returnType: int32_t
    signature: int32_t DummyWrite(PRFileDesc *f, const void *buf, int32_t length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToMethods
      Src: /src/nss/cpputil/dummy_io_fwd.cc:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: DummyAvailable
    functionSourceFile: /src/nss/cpputil/dummy_io_fwd.cc
    functionUses: 0
    functionsReached:
    - ToMethods
    linkageType: ''
    returnType: int32_t
    signature: int32_t DummyAvailable(PRFileDesc *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToMethods
      Src: /src/nss/cpputil/dummy_io_fwd.cc:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: DummyAvailable64
    functionSourceFile: /src/nss/cpputil/dummy_io_fwd.cc
    functionUses: 0
    functionsReached:
    - ToMethods
    linkageType: ''
    returnType: int64_t
    signature: int64_t DummyAvailable64(PRFileDesc *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToMethods
      Src: /src/nss/cpputil/dummy_io_fwd.cc:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: DummySync
    functionSourceFile: /src/nss/cpputil/dummy_io_fwd.cc
    functionUses: 0
    functionsReached:
    - ToMethods
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus DummySync(PRFileDesc *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToMethods
      Src: /src/nss/cpputil/dummy_io_fwd.cc:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - f
    - offset
    - how
    argTypes:
    - PRFileDesc*
    - int32_t
    - PRSeekWhence
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: DummySeek
    functionSourceFile: /src/nss/cpputil/dummy_io_fwd.cc
    functionUses: 0
    functionsReached:
    - ToMethods
    linkageType: ''
    returnType: int32_t
    signature: int32_t DummySeek(PRFileDesc *f, int32_t offset, PRSeekWhence how)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToMethods
      Src: /src/nss/cpputil/dummy_io_fwd.cc:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - f
    - offset
    - how
    argTypes:
    - PRFileDesc*
    - int64_t
    - PRSeekWhence
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: DummySeek64
    functionSourceFile: /src/nss/cpputil/dummy_io_fwd.cc
    functionUses: 0
    functionsReached:
    - ToMethods
    linkageType: ''
    returnType: int64_t
    signature: int64_t DummySeek64(PRFileDesc *f, int64_t offset, PRSeekWhence how)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToMethods
      Src: /src/nss/cpputil/dummy_io_fwd.cc:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - f
    - info
    argTypes:
    - PRFileDesc*
    - PRFileInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: DummyFileInfo
    functionSourceFile: /src/nss/cpputil/dummy_io_fwd.cc
    functionUses: 0
    functionsReached:
    - ToMethods
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus DummyFileInfo(PRFileDesc *f, PRFileInfo *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToMethods
      Src: /src/nss/cpputil/dummy_io_fwd.cc:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - f
    - info
    argTypes:
    - PRFileDesc*
    - PRFileInfo64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: DummyFileInfo64
    functionSourceFile: /src/nss/cpputil/dummy_io_fwd.cc
    functionUses: 0
    functionsReached:
    - ToMethods
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus DummyFileInfo64(PRFileDesc *f, PRFileInfo64 *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToMethods
      Src: /src/nss/cpputil/dummy_io_fwd.cc:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - f
    - iov
    - iov_size
    - to
    argTypes:
    - PRFileDesc*
    - PRIOVec*
    - int32_t
    - PRIntervalTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: DummyWritev
    functionSourceFile: /src/nss/cpputil/dummy_io_fwd.cc
    functionUses: 0
    functionsReached:
    - ToMethods
    linkageType: ''
    returnType: int32_t
    signature: "int32_t DummyWritev(PRFileDesc *f, const PRIOVec *iov, int32_t iov_size,\n
      \                          PRIntervalTime to)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToMethods
      Src: /src/nss/cpputil/dummy_io_fwd.cc:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - f
    - addr
    - to
    argTypes:
    - PRFileDesc*
    - PRNetAddr*
    - PRIntervalTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: DummyConnect
    functionSourceFile: /src/nss/cpputil/dummy_io_fwd.cc
    functionUses: 0
    functionsReached:
    - ToMethods
    linkageType: ''
    returnType: PRStatus
    signature: "PRStatus DummyConnect(PRFileDesc *f, const PRNetAddr *addr,\n                             PRIntervalTime
      to)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToMethods
      Src: /src/nss/cpputil/dummy_io_fwd.cc:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - f
    - addr
    - to
    argTypes:
    - PRFileDesc*
    - PRNetAddr*
    - PRIntervalTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: DummyAccept
    functionSourceFile: /src/nss/cpputil/dummy_io_fwd.cc
    functionUses: 0
    functionsReached:
    - ToMethods
    linkageType: ''
    returnType: PRFileDesc
    signature: "PRFileDesc *DummyAccept(PRFileDesc *f, PRNetAddr *addr,\n                               PRIntervalTime
      to)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToMethods
      Src: /src/nss/cpputil/dummy_io_fwd.cc:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - f
    - addr
    argTypes:
    - PRFileDesc*
    - PRNetAddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: DummyBind
    functionSourceFile: /src/nss/cpputil/dummy_io_fwd.cc
    functionUses: 0
    functionsReached:
    - ToMethods
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus DummyBind(PRFileDesc *f, const PRNetAddr *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToMethods
      Src: /src/nss/cpputil/dummy_io_fwd.cc:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - f
    - depth
    argTypes:
    - PRFileDesc*
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: DummyListen
    functionSourceFile: /src/nss/cpputil/dummy_io_fwd.cc
    functionUses: 0
    functionsReached:
    - ToMethods
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus DummyListen(PRFileDesc *f, int32_t depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToMethods
      Src: /src/nss/cpputil/dummy_io_fwd.cc:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - f
    - how
    argTypes:
    - PRFileDesc*
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: DummyShutdown
    functionSourceFile: /src/nss/cpputil/dummy_io_fwd.cc
    functionUses: 0
    functionsReached:
    - ToMethods
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus DummyShutdown(PRFileDesc *f, int32_t how)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToMethods
      Src: /src/nss/cpputil/dummy_io_fwd.cc:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - f
    - buf
    - buflen
    - flags
    - to
    argTypes:
    - PRFileDesc*
    - void*
    - int32_t
    - int32_t
    - PRIntervalTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: DummyRecv
    functionSourceFile: /src/nss/cpputil/dummy_io_fwd.cc
    functionUses: 0
    functionsReached:
    - ToMethods
    linkageType: ''
    returnType: int32_t
    signature: "int32_t DummyRecv(PRFileDesc *f, void *buf, int32_t buflen,\n                         int32_t
      flags, PRIntervalTime to)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToMethods
      Src: /src/nss/cpputil/dummy_io_fwd.cc:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - f
    - buf
    - amount
    - flags
    - to
    argTypes:
    - PRFileDesc*
    - void*
    - int32_t
    - int32_t
    - PRIntervalTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: DummySend
    functionSourceFile: /src/nss/cpputil/dummy_io_fwd.cc
    functionUses: 0
    functionsReached:
    - ToMethods
    linkageType: ''
    returnType: int32_t
    signature: "int32_t DummySend(PRFileDesc *f, const void *buf, int32_t amount,\n
      \                        int32_t flags, PRIntervalTime to)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToMethods
      Src: /src/nss/cpputil/dummy_io_fwd.cc:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - f
    - buf
    - amount
    - flags
    - addr
    - to
    argTypes:
    - PRFileDesc*
    - void*
    - int32_t
    - int32_t
    - PRNetAddr*
    - PRIntervalTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: DummyRecvfrom
    functionSourceFile: /src/nss/cpputil/dummy_io_fwd.cc
    functionUses: 0
    functionsReached:
    - ToMethods
    linkageType: ''
    returnType: int32_t
    signature: "int32_t DummyRecvfrom(PRFileDesc *f, void *buf, int32_t amount,\n
      \                            int32_t flags, PRNetAddr *addr,\n                             PRIntervalTime
      to)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToMethods
      Src: /src/nss/cpputil/dummy_io_fwd.cc:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - f
    - buf
    - amount
    - flags
    - addr
    - to
    argTypes:
    - PRFileDesc*
    - void*
    - int32_t
    - int32_t
    - PRNetAddr*
    - PRIntervalTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: DummySendto
    functionSourceFile: /src/nss/cpputil/dummy_io_fwd.cc
    functionUses: 0
    functionsReached:
    - ToMethods
    linkageType: ''
    returnType: int32_t
    signature: "int32_t DummySendto(PRFileDesc *f, const void *buf, int32_t amount,\n
      \                          int32_t flags, const PRNetAddr *addr,\n                           PRIntervalTime
      to)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToMethods
      Src: /src/nss/cpputil/dummy_io_fwd.cc:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - f
    - in_flags
    - out_flags
    argTypes:
    - PRFileDesc*
    - int16_t
    - int16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: DummyPoll
    functionSourceFile: /src/nss/cpputil/dummy_io_fwd.cc
    functionUses: 0
    functionsReached:
    - ToMethods
    linkageType: ''
    returnType: int16_t
    signature: int16_t DummyPoll(PRFileDesc *f, int16_t in_flags, int16_t *out_flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToMethods
      Src: /src/nss/cpputil/dummy_io_fwd.cc:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - f
    - nd
    - raddr
    - buf
    - amount
    - t
    argTypes:
    - PRFileDesc*
    - PRFileDesc**
    - PRNetAddr**
    - void*
    - int32_t
    - PRIntervalTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: DummyAcceptRead
    functionSourceFile: /src/nss/cpputil/dummy_io_fwd.cc
    functionUses: 0
    functionsReached:
    - ToMethods
    linkageType: ''
    returnType: int32_t
    signature: "int32_t DummyAcceptRead(PRFileDesc *f, PRFileDesc **nd,\n                               PRNetAddr
      **raddr, void *buf, int32_t amount,\n                               PRIntervalTime
      t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToMethods
      Src: /src/nss/cpputil/dummy_io_fwd.cc:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - sd
    - f
    - headers
    - hlen
    - flags
    - t
    argTypes:
    - PRFileDesc*
    - PRFileDesc*
    - void*
    - int32_t
    - PRTransmitFileFlags
    - PRIntervalTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 112
    functionName: DummyTransmitFile
    functionSourceFile: /src/nss/cpputil/dummy_io_fwd.cc
    functionUses: 0
    functionsReached:
    - ToMethods
    linkageType: ''
    returnType: int32_t
    signature: "int32_t DummyTransmitFile(PRFileDesc *sd, PRFileDesc *f,\n                                 const
      void *headers, int32_t hlen,\n                                 PRTransmitFileFlags
      flags, PRIntervalTime t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToMethods
      Src: /src/nss/cpputil/dummy_io_fwd.cc:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - f
    - addr
    argTypes:
    - PRFileDesc*
    - PRNetAddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 116
    functionName: DummyGetpeername
    functionSourceFile: /src/nss/cpputil/dummy_io_fwd.cc
    functionUses: 0
    functionsReached:
    - ToMethods
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus DummyGetpeername(PRFileDesc *f, PRNetAddr *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToMethods
      Src: /src/nss/cpputil/dummy_io_fwd.cc:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - f
    - addr
    argTypes:
    - PRFileDesc*
    - PRNetAddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 120
    functionName: DummyGetsockname
    functionSourceFile: /src/nss/cpputil/dummy_io_fwd.cc
    functionUses: 0
    functionsReached:
    - ToMethods
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus DummyGetsockname(PRFileDesc *f, PRNetAddr *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToMethods
      Src: /src/nss/cpputil/dummy_io_fwd.cc:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - f
    - opt
    argTypes:
    - PRFileDesc*
    - PRSocketOptionData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 124
    functionName: DummyGetsockoption
    functionSourceFile: /src/nss/cpputil/dummy_io_fwd.cc
    functionUses: 0
    functionsReached:
    - ToMethods
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus DummyGetsockoption(PRFileDesc *f, PRSocketOptionData *opt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToMethods
      Src: /src/nss/cpputil/dummy_io_fwd.cc:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - f
    - opt
    argTypes:
    - PRFileDesc*
    - PRSocketOptionData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: DummySetsockoption
    functionSourceFile: /src/nss/cpputil/dummy_io_fwd.cc
    functionUses: 0
    functionsReached:
    - ToMethods
    linkageType: ''
    returnType: PRStatus
    signature: "PRStatus DummySetsockoption(PRFileDesc *f,\n                                   const
      PRSocketOptionData *opt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToMethods
      Src: /src/nss/cpputil/dummy_io_fwd.cc:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - f
    - in
    - flags
    - to
    argTypes:
    - PRFileDesc*
    - PRSendFileData*
    - PRTransmitFileFlags
    - PRIntervalTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: DummySendfile
    functionSourceFile: /src/nss/cpputil/dummy_io_fwd.cc
    functionUses: 0
    functionsReached:
    - ToMethods
    linkageType: ''
    returnType: int32_t
    signature: "int32_t DummySendfile(PRFileDesc *f, PRSendFileData *in,\n                             PRTransmitFileFlags
      flags, PRIntervalTime to)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToMethods
      Src: /src/nss/cpputil/dummy_io_fwd.cc:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - f
    - flags
    argTypes:
    - PRFileDesc*
    - int16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 138
    functionName: DummyConnectContinue
    functionSourceFile: /src/nss/cpputil/dummy_io_fwd.cc
    functionUses: 0
    functionsReached:
    - ToMethods
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus DummyConnectContinue(PRFileDesc *f, int16_t flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToMethods
      Src: /src/nss/cpputil/dummy_io_fwd.cc:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 142
    functionName: DummyReserved
    functionSourceFile: /src/nss/cpputil/dummy_io_fwd.cc
    functionUses: 0
    functionsReached:
    - ToMethods
    linkageType: ''
    returnType: int32_t
    signature: int32_t DummyReserved(PRFileDesc *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pubk
    argTypes:
    - SECKEYPublicKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 119
    functionName: prepare_rsa_pub_key_for_asn1
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void prepare_rsa_pub_key_for_asn1(SECKEYPublicKey *pubk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pubk
    argTypes:
    - SECKEYPublicKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: prepare_dsa_pub_key_for_asn1
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void prepare_dsa_pub_key_for_asn1(SECKEYPublicKey *pubk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - params
    argTypes:
    - SECKEYPQGParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 133
    functionName: prepare_pqg_params_for_asn1
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void prepare_pqg_params_for_asn1(SECKEYPQGParams *params)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pubk
    argTypes:
    - SECKEYPublicKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 141
    functionName: prepare_dh_pub_key_for_asn1
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void prepare_dh_pub_key_for_asn1(SECKEYPublicKey *pubk)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetBestSlot
      Src: /src/nss/lib/cryptohi/seckey.c:152,1
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/lib/cryptohi/seckey.c:160,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/cryptohi/seckey.c:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - keySizeInBits
    - pubk
    - cx
    argTypes:
    - int
    - SECKEYPublicKey**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 164
    functionName: SECKEY_CreateRSAPrivateKey
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 0
    functionsReached:
    - PK11_GenerateKeyPair
    - PK11_GetBestSlot
    - PK11_FreeSlot
    linkageType: ''
    returnType: SECKEYPrivateKey
    signature: 'SECKEYPrivateKey *

      SECKEY_CreateRSAPrivateKey(int keySizeInBits, SECKEYPublicKey **pubk, void *cx)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SECKEY_BigIntegerBitLength
      Src: /src/nss/lib/cryptohi/seckey.c:180,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/seckey.c:183,1
    - Dst: PK11_GetBestSlot
      Src: /src/nss/lib/cryptohi/seckey.c:187,1
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/lib/cryptohi/seckey.c:192,1
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/lib/cryptohi/seckey.c:195,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/cryptohi/seckey.c:198,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 14
    argCount: 3
    argNames:
    - param
    - pubk
    - cx
    argTypes:
    - SECKEYDHParams*
    - SECKEYPublicKey**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 200
    functionName: SECKEY_CreateDHPrivateKey
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 0
    functionsReached:
    - PK11_GenerateKeyPair
    - PK11_GetBestSlot
    - SECKEY_BigIntegerBitLength
    - PORT_SetError
    - PK11_FreeSlot
    linkageType: ''
    returnType: SECKEYPrivateKey
    signature: 'SECKEYPrivateKey *

      SECKEY_CreateDHPrivateKey(SECKEYDHParams *param, SECKEYPublicKey **pubk, void
      *cx)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetBestSlot
      Src: /src/nss/lib/cryptohi/seckey.c:213,1
    - Dst: PK11_GenerateKeyPairWithOpFlags
      Src: /src/nss/lib/cryptohi/seckey.c:218,1
    - Dst: PK11_GenerateKeyPairWithOpFlags
      Src: /src/nss/lib/cryptohi/seckey.c:226,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/cryptohi/seckey.c:234,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - param
    - pubk
    - cx
    argTypes:
    - SECKEYECParams*
    - SECKEYPublicKey**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 236
    functionName: SECKEY_CreateECPrivateKey
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 1
    functionsReached:
    - PK11_GetBestSlot
    - PK11_FreeSlot
    - PK11_GenerateKeyPairWithOpFlags
    linkageType: ''
    returnType: SECKEYPrivateKey
    signature: 'SECKEYPrivateKey *

      SECKEY_CreateECPrivateKey(SECKEYECParams *param, SECKEYPublicKey **pubk, void
      *cx)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetBestSlot
      Src: /src/nss/lib/cryptohi/seckey.c:242,1
    - Dst: PK11_GenerateKeyPairWithOpFlags
      Src: /src/nss/lib/cryptohi/seckey.c:247,1
    - Dst: PK11_GenerateKeyPairWithOpFlags
      Src: /src/nss/lib/cryptohi/seckey.c:254,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/cryptohi/seckey.c:261,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - param
    - pubk
    - cx
    argTypes:
    - SECKEYECParams*
    - SECKEYPublicKey**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 263
    functionName: SECKEY_CreateEDPrivateKey
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 0
    functionsReached:
    - PK11_GetBestSlot
    - PK11_FreeSlot
    - PK11_GenerateKeyPairWithOpFlags
    linkageType: ''
    returnType: SECKEYPrivateKey
    signature: 'SECKEYPrivateKey *

      SECKEY_CreateEDPrivateKey(SECKEYECParams *param, SECKEYPublicKey **pubk, void
      *cx)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PK11_DestroyObject
      Src: /src/nss/lib/cryptohi/seckey.c:271,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/cryptohi/seckey.c:273,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/cryptohi/seckey.c:276,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - privk
    argTypes:
    - SECKEYPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 279
    functionName: SECKEY_DestroyPrivateKey
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 23
    functionsReached:
    - PK11_DestroyObject
    - PORT_FreeArena
    - PK11_FreeSlot
    linkageType: ''
    returnType: void
    signature: void SECKEY_DestroyPrivateKey(SECKEYPrivateKey *privk)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PK11_IsPermObject
      Src: /src/nss/lib/cryptohi/seckey.c:286,1
    - Dst: PK11_DestroyObject
      Src: /src/nss/lib/cryptohi/seckey.c:287,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/cryptohi/seckey.c:289,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/cryptohi/seckey.c:292,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - pubk
    argTypes:
    - SECKEYPublicKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 295
    functionName: SECKEY_DestroyPublicKey
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 16
    functionsReached:
    - PK11_DestroyObject
    - PORT_FreeArena
    - PK11_IsPermObject
    - PK11_FreeSlot
    linkageType: ''
    returnType: void
    signature: void SECKEY_DestroyPublicKey(SECKEYPublicKey *pubk)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_CopyAlgorithmID
      Src: /src/nss/lib/cryptohi/seckey.c:305,1
    - Dst: DER_ConvertBitString
      Src: /src/nss/lib/cryptohi/seckey.c:312,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/cryptohi/seckey.c:313,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - arena
    - to
    - from
    argTypes:
    - PLArenaPool*
    - CERTSubjectPublicKeyInfo*
    - CERTSubjectPublicKeyInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 321
    functionName: SECKEY_CopySubjectPublicKeyInfo
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 1
    functionsReached:
    - DER_ConvertBitString
    - SECITEM_CopyItem
    - SECOID_CopyAlgorithmID
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SECKEY_CopySubjectPublicKeyInfo(PLArenaPool *arena,\n                                CERTSubjectPublicKeyInfo
      *to,\n                                CERTSubjectPublicKeyInfo *from)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOID
      Src: /src/nss/lib/cryptohi/seckey.c:350,1
    - Dst: CERT_FindCertIssuer
      Src: /src/nss/lib/cryptohi/seckey.c:393,1
    - Dst: PR_Now
      Src: /src/nss/lib/cryptohi/seckey.c:393,1
    - Dst: SECOID_FindOID
      Src: /src/nss/lib/cryptohi/seckey.c:401,1
    - Dst: seckey_UpdateCertPQGChain
      Src: /src/nss/lib/cryptohi/seckey.c:428,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/cryptohi/seckey.c:445,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/cryptohi/seckey.c:452,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 57
    argCount: 2
    argNames:
    - subjectCert
    - count
    argTypes:
    - CERTCertificate*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 455
    functionName: seckey_UpdateCertPQGChain
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 1
    functionsReached:
    - CERT_FindCertIssuer
    - seckey_UpdateCertPQGChain
    - SECOID_FindOID
    - SECITEM_CopyItem
    - PR_Now
    - CERT_DestroyCertificate
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus seckey_UpdateCertPQGChain(CERTCertificate *subjectCert, int
      count)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/seckey.c:461,1
    - Dst: seckey_UpdateCertPQGChain
      Src: /src/nss/lib/cryptohi/seckey.c:464,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - subjectCert
    argTypes:
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 457
    functionDepth: 2
    functionLinenumber: 457
    functionLinenumberEnd: 465
    functionName: SECKEY_UpdateCertPQG
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - seckey_UpdateCertPQGChain
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SECKEY_UpdateCertPQG(CERTCertificate *subjectCert)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/cryptohi/seckey.c:485,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/cryptohi/seckey.c:488,1
    - Dst: prepare_pqg_params_for_asn1
      Src: /src/nss/lib/cryptohi/seckey.c:501,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/cryptohi/seckey.c:502,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/seckey.c:510,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - arena
    - pubk
    - params
    argTypes:
    - PLArenaPool*
    - SECKEYPublicKey*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 515
    functionName: seckey_DSADecodePQG
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SECITEM_CopyItem
    - PORT_SetError
    - SEC_QuickDERDecodeItem
    - prepare_pqg_params_for_asn1
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus seckey_DSADecodePQG(PLArenaPool *arena, SECKEYPublicKey
      *pubk,\n                    const SECItem *params)"
  - BBCount: 22
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 46
    argCount: 1
    argNames:
    - tag
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 570
    functionName: seckey_GetKeyType
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KeyType
    signature: KeyType seckey_GetKeyType(SECOidTag tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: seckey_GetKeyType
      Src: /src/nss/lib/cryptohi/seckey.c:576,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/cryptohi/seckey.c:576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - spki
    argTypes:
    - CERTSubjectPublicKeyInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 573
    functionDepth: 1
    functionLinenumber: 573
    functionLinenumberEnd: 577
    functionName: CERT_GetCertKeyType
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 1
    functionsReached:
    - seckey_GetKeyType
    - SECOID_GetAlgorithmTag
    linkageType: ''
    returnType: KeyType
    signature: KeyType CERT_GetCertKeyType(const CERTSubjectPublicKeyInfo *spki)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_InitCheapArena
      Src: /src/nss/lib/cryptohi/seckey.c:587,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/cryptohi/seckey.c:589,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/cryptohi/seckey.c:590,1
    - Dst: PORT_DestroyCheapArena
      Src: /src/nss/lib/cryptohi/seckey.c:592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pubKey
    argTypes:
    - SECKEYPublicKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 594
    functionName: seckey_HasCurveOID
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 0
    functionsReached:
    - SEC_QuickDERDecodeItem
    - SEC_ASN1_GET
    - PORT_DestroyCheapArena
    - PORT_InitCheapArena
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus seckey_HasCurveOID(const SECKEYPublicKey *pubKey)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/cryptohi/seckey.c:605,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/cryptohi/seckey.c:609,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/cryptohi/seckey.c:611,1
    - Dst: DER_ConvertBitString
      Src: /src/nss/lib/cryptohi/seckey.c:621,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/cryptohi/seckey.c:623,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/cryptohi/seckey.c:627,1
    - Dst: prepare_rsa_pub_key_for_asn1
      Src: /src/nss/lib/cryptohi/seckey.c:634,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/cryptohi/seckey.c:635,1
    - Dst: prepare_dsa_pub_key_for_asn1
      Src: /src/nss/lib/cryptohi/seckey.c:642,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/cryptohi/seckey.c:643,1
    - Dst: seckey_DSADecodePQG
      Src: /src/nss/lib/cryptohi/seckey.c:647,1
    - Dst: prepare_dh_pub_key_for_asn1
      Src: /src/nss/lib/cryptohi/seckey.c:655,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/cryptohi/seckey.c:656,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/cryptohi/seckey.c:662,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/cryptohi/seckey.c:666,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/seckey.c:676,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/seckey.c:682,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/lib/cryptohi/seckey.c:698,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/cryptohi/seckey.c:703,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/cryptohi/seckey.c:708,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/cryptohi/seckey.c:710,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/seckey.c:718,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/cryptohi/seckey.c:727,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/cryptohi/seckey.c:732,1
    - Dst: seckey_HasCurveOID
      Src: /src/nss/lib/cryptohi/seckey.c:737,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/seckey.c:744,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/cryptohi/seckey.c:748,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 108
    argCount: 1
    argNames:
    - spki
    argTypes:
    - CERTSubjectPublicKeyInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 596
    functionDepth: 2
    functionLinenumber: 596
    functionLinenumberEnd: 750
    functionName: seckey_ExtractPublicKey
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 0
    functionsReached:
    - prepare_rsa_pub_key_for_asn1
    - DER_ConvertBitString
    - SECKEY_DestroyPublicKey
    - PORT_Memcpy
    - SECOID_GetAlgorithmTag
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - PORT_FreeArena
    - SECOID_FindOIDByTag
    - prepare_dsa_pub_key_for_asn1
    - seckey_DSADecodePQG
    - SECITEM_CopyItem
    - SECITEM_AllocItem
    - SEC_QuickDERDecodeItem
    - PORT_SetError
    - prepare_dh_pub_key_for_asn1
    - seckey_HasCurveOID
    linkageType: ''
    returnType: SECKEYPublicKey
    signature: 'SECKEYPublicKey *

      seckey_ExtractPublicKey(const CERTSubjectPublicKeyInfo *spki)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: seckey_ExtractPublicKey
      Src: /src/nss/lib/cryptohi/seckey.c:756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - spki
    argTypes:
    - CERTSubjectPublicKeyInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 753
    functionDepth: 3
    functionLinenumber: 753
    functionLinenumberEnd: 757
    functionName: SECKEY_ExtractPublicKey
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 1
    functionsReached:
    - seckey_ExtractPublicKey
    linkageType: ''
    returnType: SECKEYPublicKey
    signature: 'SECKEYPublicKey *

      SECKEY_ExtractPublicKey(const CERTSubjectPublicKeyInfo *spki)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: seckey_ExtractPublicKey
      Src: /src/nss/lib/cryptohi/seckey.c:762,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cert
    argTypes:
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 759
    functionDepth: 3
    functionLinenumber: 759
    functionLinenumberEnd: 763
    functionName: CERT_ExtractPublicKey
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 6
    functionsReached:
    - seckey_ExtractPublicKey
    linkageType: ''
    returnType: SECKEYPublicKey
    signature: 'SECKEYPublicKey *

      CERT_ExtractPublicKey(CERTCertificate *cert)'
  - BBCount: 64
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/cryptohi/seckey.c:776,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/seckey.c:894,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 97
    argCount: 1
    argNames:
    - encodedParams
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 897
      start: 765
    functionDepth: 0
    functionLinenumber: 765
    functionLinenumberEnd: 897
    functionName: SECKEY_ECParamsToKeySize
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 0
    functionsReached:
    - SECOID_FindOIDTag
    - PORT_SetError
    linkageType: ''
    returnType: int
    signature: int SECKEY_ECParamsToKeySize(const SECItem *encodedParams)
  - BBCount: 64
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/cryptohi/seckey.c:910,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/seckey.c:1046,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 115
    argCount: 1
    argNames:
    - encodedParams
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 899
    functionDepth: 0
    functionLinenumber: 899
    functionLinenumberEnd: 1049
    functionName: SECKEY_ECParamsToBasePointOrderLen
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 0
    functionsReached:
    - SECOID_FindOIDTag
    - PORT_SetError
    linkageType: ''
    returnType: int
    signature: int SECKEY_ECParamsToBasePointOrderLen(const SECItem *encodedParams)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/seckey.c:1060,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 1
    argNames:
    - number
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1082
      start: 1052
    functionDepth: 0
    functionLinenumber: 1052
    functionLinenumberEnd: 1082
    functionName: SECKEY_BigIntegerBitLength
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: unsigned
    signature: unsigned SECKEY_BigIntegerBitLength(const SECItem *number)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECKEY_PublicKeyStrengthInBits
      Src: /src/nss/lib/cryptohi/seckey.c:1088,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pubk
    argTypes:
    - SECKEYPublicKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 1085
    functionDepth: 1
    functionLinenumber: 1085
    functionLinenumberEnd: 1089
    functionName: SECKEY_PublicKeyStrength
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 0
    functionsReached:
    - SECKEY_PublicKeyStrengthInBits
    linkageType: ''
    returnType: unsigned
    signature: unsigned SECKEY_PublicKeyStrength(const SECKEYPublicKey *pubk)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/seckey.c:1098,1
    - Dst: SECKEY_BigIntegerBitLength
      Src: /src/nss/lib/cryptohi/seckey.c:1105,1
    - Dst: SECKEY_BigIntegerBitLength
      Src: /src/nss/lib/cryptohi/seckey.c:1108,1
    - Dst: SECKEY_BigIntegerBitLength
      Src: /src/nss/lib/cryptohi/seckey.c:1111,1
    - Dst: SECKEY_ECParamsToKeySize
      Src: /src/nss/lib/cryptohi/seckey.c:1116,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/seckey.c:1119,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - pubk
    argTypes:
    - SECKEYPublicKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1123
      start: 1092
    functionDepth: 1
    functionLinenumber: 1092
    functionLinenumberEnd: 1123
    functionName: SECKEY_PublicKeyStrengthInBits
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 1
    functionsReached:
    - SECKEY_BigIntegerBitLength
    - PORT_SetError
    - SECKEY_ECParamsToKeySize
    linkageType: ''
    returnType: unsigned
    signature: unsigned SECKEY_PublicKeyStrengthInBits(const SECKEYPublicKey *pubk)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/seckey.c:1133,1
    - Dst: PK11_ReadAttribute
      Src: /src/nss/lib/cryptohi/seckey.c:1142,1
    - Dst: PK11_SignatureLen
      Src: /src/nss/lib/cryptohi/seckey.c:1149,1
    - Dst: SECKEY_BigIntegerBitLength
      Src: /src/nss/lib/cryptohi/seckey.c:1155,1
    - Dst: PORT_Free
      Src: /src/nss/lib/cryptohi/seckey.c:1156,1
    - Dst: PK11_ReadAttribute
      Src: /src/nss/lib/cryptohi/seckey.c:1162,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/seckey.c:1165,1
    - Dst: SECKEY_BigIntegerBitLength
      Src: /src/nss/lib/cryptohi/seckey.c:1168,1
    - Dst: PORT_Free
      Src: /src/nss/lib/cryptohi/seckey.c:1169,1
    - Dst: PK11_ReadAttribute
      Src: /src/nss/lib/cryptohi/seckey.c:1172,1
    - Dst: SECKEY_ECParamsToKeySize
      Src: /src/nss/lib/cryptohi/seckey.c:1177,1
    - Dst: PORT_Free
      Src: /src/nss/lib/cryptohi/seckey.c:1178,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/seckey.c:1183,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 1
    argNames:
    - privk
    argTypes:
    - SECKEYPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1185
      start: 1125
    functionDepth: 1
    functionLinenumber: 1125
    functionLinenumberEnd: 1185
    functionName: SECKEY_PrivateKeyStrengthInBits
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - SECKEY_BigIntegerBitLength
    - PORT_SetError
    - PK11_SignatureLen
    - SECKEY_ECParamsToKeySize
    - PK11_ReadAttribute
    linkageType: ''
    returnType: unsigned
    signature: unsigned SECKEY_PrivateKeyStrengthInBits(const SECKEYPrivateKey *privk)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: SECKEY_ECParamsToBasePointOrderLen
      Src: /src/nss/lib/cryptohi/seckey.c:1209,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/seckey.c:1215,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - pubk
    argTypes:
    - SECKEYPublicKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1217
      start: 1188
    functionDepth: 1
    functionLinenumber: 1188
    functionLinenumberEnd: 1217
    functionName: SECKEY_SignatureLen
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 0
    functionsReached:
    - SECKEY_ECParamsToBasePointOrderLen
    - PORT_SetError
    linkageType: ''
    returnType: unsigned
    signature: unsigned SECKEY_SignatureLen(const SECKEYPublicKey *pubk)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/seckey.c:1226,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/cryptohi/seckey.c:1230,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/cryptohi/seckey.c:1235,1
    - Dst: PK11_ReferenceSlot
      Src: /src/nss/lib/cryptohi/seckey.c:1241,1
    - Dst: PK11_CopyKey
      Src: /src/nss/lib/cryptohi/seckey.c:1247,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/seckey.c:1258,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/cryptohi/seckey.c:1262,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 1
    argNames:
    - privk
    argTypes:
    - SECKEYPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1219
    functionDepth: 1
    functionLinenumber: 1219
    functionLinenumberEnd: 1264
    functionName: SECKEY_CopyPrivateKey
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 1
    functionsReached:
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - PORT_FreeArena
    - PORT_SetError
    - PK11_ReferenceSlot
    - PK11_CopyKey
    linkageType: ''
    returnType: SECKEYPrivateKey
    signature: 'SECKEYPrivateKey *

      SECKEY_CopyPrivateKey(const SECKEYPrivateKey *privk)'
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/cryptohi/seckey.c:1273,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/seckey.c:1275,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/cryptohi/seckey.c:1279,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/cryptohi/seckey.c:1281,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/seckey.c:1282,1
    - Dst: PK11_IsPermObject
      Src: /src/nss/lib/cryptohi/seckey.c:1289,1
    - Dst: PK11_ReferenceSlot
      Src: /src/nss/lib/cryptohi/seckey.c:1290,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/cryptohi/seckey.c:1298,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/cryptohi/seckey.c:1301,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/cryptohi/seckey.c:1308,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/cryptohi/seckey.c:1312,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/cryptohi/seckey.c:1316,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/cryptohi/seckey.c:1320,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/cryptohi/seckey.c:1324,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/cryptohi/seckey.c:1327,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/cryptohi/seckey.c:1330,1
    - Dst: seckey_HasCurveOID
      Src: /src/nss/lib/cryptohi/seckey.c:1337,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/cryptohi/seckey.c:1341,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/cryptohi/seckey.c:1347,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/cryptohi/seckey.c:1354,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/seckey.c:1358,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/cryptohi/seckey.c:1365,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 81
    argCount: 1
    argNames:
    - pubk
    argTypes:
    - SECKEYPublicKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1367
      start: 1266
    functionDepth: 2
    functionLinenumber: 1266
    functionLinenumberEnd: 1367
    functionName: SECKEY_CopyPublicKey
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 0
    functionsReached:
    - SECKEY_DestroyPublicKey
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - PORT_FreeArena
    - PK11_IsPermObject
    - SECITEM_CopyItem
    - PORT_SetError
    - PK11_ReferenceSlot
    - seckey_HasCurveOID
    linkageType: ''
    returnType: SECKEYPublicKey
    signature: 'SECKEYPublicKey *

      SECKEY_CopyPublicKey(const SECKEYPublicKey *pubk)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/seckey.c:1399,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/cryptohi/seckey.c:1402,1
    - Dst: NSS_OptionGet
      Src: /src/nss/lib/cryptohi/seckey.c:1403,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/seckey.c:1408,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 3
    argNames:
    - keyType
    - keyLength
    - error
    argTypes:
    - KeyType
    - unsigned
    - SECErrorCodes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1412
      start: 1373
    functionDepth: 1
    functionLinenumber: 1373
    functionLinenumberEnd: 1412
    functionName: SECKEY_EnforceKeySize
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - NSS_OptionGet
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SECKEY_EnforceKeySize(KeyType keyType, unsigned keyLength,
      SECErrorCodes error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/cryptohi/seckey.c:1426,1
    - Dst: PK11_MatchItem
      Src: /src/nss/lib/cryptohi/seckey.c:1429,1
    - Dst: PK11_DerivePubKeyFromPrivKey
      Src: /src/nss/lib/cryptohi/seckey.c:1435,1
    - Dst: PK11_ReferenceSlot
      Src: /src/nss/lib/cryptohi/seckey.c:1441,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - privk
    - pubk
    argTypes:
    - SECKEYPrivateKey*
    - SECKEYPublicKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1443
      start: 1418
    functionDepth: 1
    functionLinenumber: 1418
    functionLinenumberEnd: 1443
    functionName: seckey_FindPublicKeyHandle
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PK11_ReferenceSlot
    - PK11_MatchItem
    - PK11_DerivePubKeyFromPrivKey
    linkageType: ''
    returnType: CK_OBJECT_HANDLE
    signature: CK_OBJECT_HANDLE seckey_FindPublicKeyHandle(SECKEYPrivateKey *privk,
      SECKEYPublicKey *pubk)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetCertFromPrivateKey
      Src: /src/nss/lib/cryptohi/seckey.c:1458,1
    - Dst: CERT_ExtractPublicKey
      Src: /src/nss/lib/cryptohi/seckey.c:1460,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/cryptohi/seckey.c:1461,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/cryptohi/seckey.c:1466,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/seckey.c:1468,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/cryptohi/seckey.c:1471,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/cryptohi/seckey.c:1474,1
    - Dst: seckey_FindPublicKeyHandle
      Src: /src/nss/lib/cryptohi/seckey.c:1488,1
    - Dst: PK11_ReadAttribute
      Src: /src/nss/lib/cryptohi/seckey.c:1491,1
    - Dst: PK11_ReadAttribute
      Src: /src/nss/lib/cryptohi/seckey.c:1495,1
    - Dst: PK11_ReadAttribute
      Src: /src/nss/lib/cryptohi/seckey.c:1499,1
    - Dst: PK11_ReadAttribute
      Src: /src/nss/lib/cryptohi/seckey.c:1503,1
    - Dst: seckey_FindPublicKeyHandle
      Src: /src/nss/lib/cryptohi/seckey.c:1509,1
    - Dst: PK11_ReadAttribute
      Src: /src/nss/lib/cryptohi/seckey.c:1512,1
    - Dst: PK11_ReadAttribute
      Src: /src/nss/lib/cryptohi/seckey.c:1516,1
    - Dst: PK11_ReadAttribute
      Src: /src/nss/lib/cryptohi/seckey.c:1520,1
    - Dst: PK11_ReadAttribute
      Src: /src/nss/lib/cryptohi/seckey.c:1526,1
    - Dst: PK11_ReadAttribute
      Src: /src/nss/lib/cryptohi/seckey.c:1530,1
    - Dst: PK11_ReadAttribute
      Src: /src/nss/lib/cryptohi/seckey.c:1536,1
    - Dst: PK11_ReadAttribute
      Src: /src/nss/lib/cryptohi/seckey.c:1541,1
    - Dst: seckey_FindPublicKeyHandle
      Src: /src/nss/lib/cryptohi/seckey.c:1544,1
    - Dst: PK11_ReadAttribute
      Src: /src/nss/lib/cryptohi/seckey.c:1547,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/cryptohi/seckey.c:1555,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/cryptohi/seckey.c:1556,1
    - Dst: PK11_ReadAttribute
      Src: /src/nss/lib/cryptohi/seckey.c:1567,1
    - Dst: PK11_ReadAttribute
      Src: /src/nss/lib/cryptohi/seckey.c:1572,1
    - Dst: seckey_FindPublicKeyHandle
      Src: /src/nss/lib/cryptohi/seckey.c:1575,1
    - Dst: PK11_ReadAttribute
      Src: /src/nss/lib/cryptohi/seckey.c:1579,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/cryptohi/seckey.c:1593,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 107
    argCount: 1
    argNames:
    - privk
    argTypes:
    - SECKEYPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1595
      start: 1445
    functionDepth: 4
    functionLinenumber: 1445
    functionLinenumberEnd: 1595
    functionName: SECKEY_ConvertToPublicKey
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 3
    functionsReached:
    - SECKEY_DestroyPublicKey
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - PORT_FreeArena
    - PORT_SetError
    - SEC_QuickDERDecodeItem
    - PK11_GetCertFromPrivateKey
    - CERT_DestroyCertificate
    - SEC_ASN1_GET
    - CERT_ExtractPublicKey
    - seckey_FindPublicKeyHandle
    - PK11_ReadAttribute
    linkageType: ''
    returnType: SECKEYPublicKey
    signature: 'SECKEYPublicKey *

      SECKEY_ConvertToPublicKey(SECKEYPrivateKey *privk)'
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/cryptohi/seckey.c:1605,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/seckey.c:1607,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/cryptohi/seckey.c:1611,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/lib/cryptohi/seckey.c:1619,1
    - Dst: prepare_rsa_pub_key_for_asn1
      Src: /src/nss/lib/cryptohi/seckey.c:1625,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/cryptohi/seckey.c:1626,1
    - Dst: prepare_pqg_params_for_asn1
      Src: /src/nss/lib/cryptohi/seckey.c:1643,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/cryptohi/seckey.c:1644,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/lib/cryptohi/seckey.c:1647,1
    - Dst: prepare_dsa_pub_key_for_asn1
      Src: /src/nss/lib/cryptohi/seckey.c:1654,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/cryptohi/seckey.c:1655,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/cryptohi/seckey.c:1671,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/cryptohi/seckey.c:1674,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/lib/cryptohi/seckey.c:1681,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/cryptohi/seckey.c:1688,1
    - Dst: SECKEY_GetECCOid
      Src: /src/nss/lib/cryptohi/seckey.c:1705,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/lib/cryptohi/seckey.c:1706,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/cryptohi/seckey.c:1713,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/seckey.c:1735,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/cryptohi/seckey.c:1738,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 76
    argCount: 1
    argNames:
    - pubk
    argTypes:
    - SECKEYPublicKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1740
      start: 1597
    functionDepth: 1
    functionLinenumber: 1597
    functionLinenumberEnd: 1740
    functionName: seckey_CreateSubjectPublicKeyInfo_helper
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 0
    functionsReached:
    - prepare_rsa_pub_key_for_asn1
    - SEC_ASN1EncodeItem
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - PORT_FreeArena
    - prepare_dsa_pub_key_for_asn1
    - SECITEM_CopyItem
    - SECOID_SetAlgorithmID
    - PORT_SetError
    - SECKEY_GetECCOid
    - SECITEM_FreeItem
    - prepare_pqg_params_for_asn1
    linkageType: ''
    returnType: CERTSubjectPublicKeyInfo
    signature: 'CERTSubjectPublicKeyInfo *

      seckey_CreateSubjectPublicKeyInfo_helper(SECKEYPublicKey *pubk)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/seckey.c:1749,1
    - Dst: SECKEY_CopyPublicKey
      Src: /src/nss/lib/cryptohi/seckey.c:1753,1
    - Dst: seckey_CreateSubjectPublicKeyInfo_helper
      Src: /src/nss/lib/cryptohi/seckey.c:1757,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/cryptohi/seckey.c:1758,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - pubk
    argTypes:
    - SECKEYPublicKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1760
      start: 1742
    functionDepth: 3
    functionLinenumber: 1742
    functionLinenumberEnd: 1760
    functionName: SECKEY_CreateSubjectPublicKeyInfo
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 3
    functionsReached:
    - PORT_SetError
    - SECKEY_CopyPublicKey
    - SECKEY_DestroyPublicKey
    - seckey_CreateSubjectPublicKeyInfo_helper
    linkageType: ''
    returnType: CERTSubjectPublicKeyInfo
    signature: 'CERTSubjectPublicKeyInfo *

      SECKEY_CreateSubjectPublicKeyInfo(const SECKEYPublicKey *pubk)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/cryptohi/seckey.c:1766,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - spki
    argTypes:
    - CERTSubjectPublicKeyInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1768
      start: 1762
    functionDepth: 0
    functionLinenumber: 1762
    functionLinenumberEnd: 1768
    functionName: SECKEY_DestroySubjectPublicKeyInfo
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 4
    functionsReached:
    - PORT_FreeArena
    linkageType: ''
    returnType: void
    signature: void SECKEY_DestroySubjectPublicKeyInfo(CERTSubjectPublicKeyInfo *spki)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECKEY_CreateSubjectPublicKeyInfo
      Src: /src/nss/lib/cryptohi/seckey.c:1777,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/cryptohi/seckey.c:1783,1
    - Dst: SECKEY_DestroySubjectPublicKeyInfo
      Src: /src/nss/lib/cryptohi/seckey.c:1786,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - pubk
    argTypes:
    - SECKEYPublicKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1790
      start: 1770
    functionDepth: 4
    functionLinenumber: 1770
    functionLinenumberEnd: 1790
    functionName: SECKEY_EncodeDERSubjectPublicKeyInfo
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 1
    functionsReached:
    - SECKEY_CreateSubjectPublicKeyInfo
    - SEC_ASN1EncodeItem
    - SECKEY_DestroySubjectPublicKeyInfo
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      SECKEY_EncodeDERSubjectPublicKeyInfo(const SECKEYPublicKey *pubk)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/cryptohi/seckey.c:1800,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/seckey.c:1802,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/cryptohi/seckey.c:1807,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/cryptohi/seckey.c:1813,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/cryptohi/seckey.c:1815,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/seckey.c:1822,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/cryptohi/seckey.c:1825,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - spkider
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1827
      start: 1792
    functionDepth: 0
    functionLinenumber: 1792
    functionLinenumberEnd: 1827
    functionName: SECKEY_DecodeDERSubjectPublicKeyInfo
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 0
    functionsReached:
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - PORT_FreeArena
    - SECITEM_CopyItem
    - PORT_SetError
    - SEC_QuickDERDecodeItem
    linkageType: ''
    returnType: CERTSubjectPublicKeyInfo
    signature: 'CERTSubjectPublicKeyInfo *

      SECKEY_DecodeDERSubjectPublicKeyInfo(const SECItem *spkider)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ATOB_ConvertAsciiToItem
      Src: /src/nss/lib/cryptohi/seckey.c:1839,1
    - Dst: SECKEY_DecodeDERSubjectPublicKeyInfo
      Src: /src/nss/lib/cryptohi/seckey.c:1843,1
    - Dst: PORT_Free
      Src: /src/nss/lib/cryptohi/seckey.c:1845,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - spkistr
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1847
      start: 1832
    functionDepth: 1
    functionLinenumber: 1832
    functionLinenumberEnd: 1847
    functionName: SECKEY_ConvertAndDecodeSubjectPublicKeyInfo
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - SECKEY_DecodeDERSubjectPublicKeyInfo
    - ATOB_ConvertAsciiToItem
    linkageType: ''
    returnType: CERTSubjectPublicKeyInfo
    signature: 'CERTSubjectPublicKeyInfo *

      SECKEY_ConvertAndDecodeSubjectPublicKeyInfo(const char *spkistr)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: ATOB_ConvertAsciiToItem
      Src: /src/nss/lib/cryptohi/seckey.c:1870,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/cryptohi/seckey.c:1876,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/cryptohi/seckey.c:1882,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/cryptohi/seckey.c:1883,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/cryptohi/seckey.c:1889,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/cryptohi/seckey.c:1890,1
    - Dst: SECKEY_DecodeDERSubjectPublicKeyInfo
      Src: /src/nss/lib/cryptohi/seckey.c:1897,1
    - Dst: seckey_ExtractPublicKey
      Src: /src/nss/lib/cryptohi/seckey.c:1903,1
    - Dst: DER_ConvertBitString
      Src: /src/nss/lib/cryptohi/seckey.c:1910,1
    - Dst: VFY_VerifyDataWithAlgorithmID
      Src: /src/nss/lib/cryptohi/seckey.c:1911,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/cryptohi/seckey.c:1919,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/cryptohi/seckey.c:1925,1
    - Dst: SECKEY_DestroySubjectPublicKeyInfo
      Src: /src/nss/lib/cryptohi/seckey.c:1934,1
    - Dst: PORT_Free
      Src: /src/nss/lib/cryptohi/seckey.c:1940,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/cryptohi/seckey.c:1943,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/cryptohi/seckey.c:1946,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 72
    argCount: 3
    argNames:
    - pkacstr
    - challenge
    - wincx
    argTypes:
    - char*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1950
      start: 1853
    functionDepth: 3
    functionLinenumber: 1853
    functionLinenumberEnd: 1950
    functionName: SECKEY_ConvertAndDecodePublicKeyAndChallenge
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 0
    functionsReached:
    - DER_ConvertBitString
    - ATOB_ConvertAsciiToItem
    - SECKEY_DestroyPublicKey
    - PORT_NewArena
    - VFY_VerifyDataWithAlgorithmID
    - SECKEY_DestroySubjectPublicKeyInfo
    - PORT_Memcmp
    - seckey_ExtractPublicKey
    - PORT_Free
    - PORT_FreeArena
    - PORT_Strlen
    - SEC_QuickDERDecodeItem
    - SECKEY_DecodeDERSubjectPublicKeyInfo
    - PORT_Memset
    linkageType: ''
    returnType: CERTSubjectPublicKeyInfo
    signature: "CERTSubjectPublicKeyInfo *\nSECKEY_ConvertAndDecodePublicKeyAndChallenge(char
      *pkacstr, char *challenge,\n                                             void
      *wincx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memset
      Src: /src/nss/lib/cryptohi/seckey.c:1964,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/cryptohi/seckey.c:1965,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/cryptohi/seckey.c:1967,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/cryptohi/seckey.c:1972,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/cryptohi/seckey.c:1973,1
    - Dst: SECOID_DestroyAlgorithmID
      Src: /src/nss/lib/cryptohi/seckey.c:1974,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/cryptohi/seckey.c:1975,1
    - Dst: PORT_Free
      Src: /src/nss/lib/cryptohi/seckey.c:1977,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - pvk
    - freeit
    argTypes:
    - SECKEYPrivateKeyInfo*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1981
      start: 1952
    functionDepth: 0
    functionLinenumber: 1952
    functionLinenumberEnd: 1981
    functionName: SECKEY_DestroyPrivateKeyInfo
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 0
    functionsReached:
    - PORT_FreeArena
    - PORT_Free
    - PORT_Memset
    - SECOID_DestroyAlgorithmID
    - SECITEM_ZfreeItem
    linkageType: ''
    returnType: void
    signature: "void SECKEY_DestroyPrivateKeyInfo(SECKEYPrivateKeyInfo *pvk,\n                             PRBool
      freeit)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memset
      Src: /src/nss/lib/cryptohi/seckey.c:1995,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/cryptohi/seckey.c:1996,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/cryptohi/seckey.c:1998,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/cryptohi/seckey.c:2003,1
    - Dst: SECOID_DestroyAlgorithmID
      Src: /src/nss/lib/cryptohi/seckey.c:2004,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/cryptohi/seckey.c:2005,1
    - Dst: PORT_Free
      Src: /src/nss/lib/cryptohi/seckey.c:2007,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - epki
    - freeit
    argTypes:
    - SECKEYEncryptedPrivateKeyInfo*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2011
      start: 1983
    functionDepth: 0
    functionLinenumber: 1983
    functionLinenumberEnd: 2011
    functionName: SECKEY_DestroyEncryptedPrivateKeyInfo
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 1
    functionsReached:
    - PORT_FreeArena
    - PORT_Free
    - PORT_Memset
    - SECOID_DestroyAlgorithmID
    - SECITEM_ZfreeItem
    linkageType: ''
    returnType: void
    signature: "void SECKEY_DestroyEncryptedPrivateKeyInfo(SECKEYEncryptedPrivateKeyInfo
      *epki,\n                                      PRBool freeit)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_CopyAlgorithmID
      Src: /src/nss/lib/cryptohi/seckey.c:2024,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/cryptohi/seckey.c:2028,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/cryptohi/seckey.c:2032,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - poolp
    - to
    - from
    argTypes:
    - PLArenaPool*
    - SECKEYPrivateKeyInfo*
    - SECKEYPrivateKeyInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2035
      start: 2013
    functionDepth: 0
    functionLinenumber: 2013
    functionLinenumberEnd: 2035
    functionName: SECKEY_CopyPrivateKeyInfo
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 0
    functionsReached:
    - SECITEM_CopyItem
    - SECOID_CopyAlgorithmID
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SECKEY_CopyPrivateKeyInfo(PLArenaPool *poolp,\n                          SECKEYPrivateKeyInfo
      *to,\n                          const SECKEYPrivateKeyInfo *from)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_CopyAlgorithmID
      Src: /src/nss/lib/cryptohi/seckey.c:2048,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/cryptohi/seckey.c:2052,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - poolp
    - to
    - from
    argTypes:
    - PLArenaPool*
    - SECKEYEncryptedPrivateKeyInfo*
    - SECKEYEncryptedPrivateKeyInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2055
      start: 2037
    functionDepth: 0
    functionLinenumber: 2037
    functionLinenumberEnd: 2055
    functionName: SECKEY_CopyEncryptedPrivateKeyInfo
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 0
    functionsReached:
    - SECITEM_CopyItem
    - SECOID_CopyAlgorithmID
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SECKEY_CopyEncryptedPrivateKeyInfo(PLArenaPool *poolp,\n
      \                                  SECKEYEncryptedPrivateKeyInfo *to,\n                                   const
      SECKEYEncryptedPrivateKeyInfo *from)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - privKey
    argTypes:
    - SECKEYPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2061
      start: 2057
    functionDepth: 0
    functionLinenumber: 2057
    functionLinenumberEnd: 2061
    functionName: SECKEY_GetPrivateKeyType
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: KeyType
    signature: KeyType SECKEY_GetPrivateKeyType(const SECKEYPrivateKey *privKey)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pubKey
    argTypes:
    - SECKEYPublicKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2067
      start: 2063
    functionDepth: 0
    functionLinenumber: 2063
    functionLinenumberEnd: 2067
    functionName: SECKEY_GetPublicKeyType
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KeyType
    signature: KeyType SECKEY_GetPublicKeyType(const SECKEYPublicKey *pubKey)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/cryptohi/seckey.c:2081,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/seckey.c:2083,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/cryptohi/seckey.c:2087,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/cryptohi/seckey.c:2093,1
    - Dst: prepare_rsa_pub_key_for_asn1
      Src: /src/nss/lib/cryptohi/seckey.c:2103,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/cryptohi/seckey.c:2104,1
    - Dst: prepare_dsa_pub_key_for_asn1
      Src: /src/nss/lib/cryptohi/seckey.c:2108,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/cryptohi/seckey.c:2109,1
    - Dst: prepare_dh_pub_key_for_asn1
      Src: /src/nss/lib/cryptohi/seckey.c:2113,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/cryptohi/seckey.c:2114,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/cryptohi/seckey.c:2125,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 52
    argCount: 2
    argNames:
    - derKey
    - type
    argTypes:
    - SECItem*
    - CK_KEY_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2130
      start: 2069
    functionDepth: 1
    functionLinenumber: 2069
    functionLinenumberEnd: 2130
    functionName: SECKEY_ImportDERPublicKey
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 0
    functionsReached:
    - prepare_rsa_pub_key_for_asn1
    - PORT_NewArena
    - PORT_FreeArena
    - prepare_dsa_pub_key_for_asn1
    - SECITEM_CopyItem
    - PORT_SetError
    - PORT_ArenaZNew
    - SEC_QuickDERDecodeItem
    - prepare_dh_pub_key_for_asn1
    linkageType: ''
    returnType: SECKEYPublicKey
    signature: 'SECKEYPublicKey *

      SECKEY_ImportDERPublicKey(const SECItem *derKey, CK_KEY_TYPE type)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/cryptohi/seckey.c:2138,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/cryptohi/seckey.c:2143,1
    - Dst: PR_INIT_CLIST
      Src: /src/nss/lib/cryptohi/seckey.c:2151,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/cryptohi/seckey.c:2157,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2161
      start: 2132
    functionDepth: 1
    functionLinenumber: 2132
    functionLinenumberEnd: 2161
    functionName: SECKEY_NewPrivateKeyList
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 0
    functionsReached:
    - PORT_FreeArena
    - PR_INIT_CLIST
    - PORT_NewArena
    - PORT_ArenaZAlloc
    linkageType: ''
    returnType: SECKEYPrivateKeyList
    signature: 'SECKEYPrivateKeyList *

      SECKEY_NewPrivateKeyList(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/lib/cryptohi/seckey.c:2166,1
    - Dst: SECKEY_RemovePrivateKeyListNode
      Src: /src/nss/lib/cryptohi/seckey.c:2167,1
    - Dst: PR_LIST_HEAD
      Src: /src/nss/lib/cryptohi/seckey.c:2168,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/cryptohi/seckey.c:2171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - keys
    argTypes:
    - SECKEYPrivateKeyList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2174
      start: 2163
    functionDepth: 1
    functionLinenumber: 2163
    functionLinenumberEnd: 2174
    functionName: SECKEY_DestroyPrivateKeyList
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 2
    functionsReached:
    - PR_LIST_HEAD
    - SECKEY_RemovePrivateKeyListNode
    - PORT_FreeArena
    - PR_CLIST_IS_EMPTY
    linkageType: ''
    returnType: void
    signature: void SECKEY_DestroyPrivateKeyList(SECKEYPrivateKeyList *keys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_ASSERT
      Src: /src/nss/lib/cryptohi/seckey.c:2179,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/lib/cryptohi/seckey.c:2180,1
    - Dst: PR_REMOVE_LINK
      Src: /src/nss/lib/cryptohi/seckey.c:2182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - node
    argTypes:
    - SECKEYPrivateKeyListNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2184
      start: 2176
    functionDepth: 2
    functionLinenumber: 2176
    functionLinenumberEnd: 2184
    functionName: SECKEY_RemovePrivateKeyListNode
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 1
    functionsReached:
    - SECKEY_DestroyPrivateKey
    - PR_REMOVE_LINK
    - PR_ASSERT
    linkageType: ''
    returnType: void
    signature: void SECKEY_RemovePrivateKeyListNode(SECKEYPrivateKeyListNode *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/cryptohi/seckey.c:2192,1
    - Dst: PR_INSERT_BEFORE
      Src: /src/nss/lib/cryptohi/seckey.c:2198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - list
    - key
    argTypes:
    - SECKEYPrivateKeyList*
    - SECKEYPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2204
      start: 2186
    functionDepth: 1
    functionLinenumber: 2186
    functionLinenumberEnd: 2204
    functionName: SECKEY_AddPrivateKeyToListTail
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 0
    functionsReached:
    - PR_INSERT_BEFORE
    - PORT_ArenaZAlloc
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SECKEY_AddPrivateKeyToListTail(SECKEYPrivateKeyList *list,\n
      \                              SECKEYPrivateKey *key)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/cryptohi/seckey.c:2212,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/cryptohi/seckey.c:2217,1
    - Dst: PR_INIT_CLIST
      Src: /src/nss/lib/cryptohi/seckey.c:2225,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/cryptohi/seckey.c:2231,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2235
      start: 2206
    functionDepth: 1
    functionLinenumber: 2206
    functionLinenumberEnd: 2235
    functionName: SECKEY_NewPublicKeyList
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 0
    functionsReached:
    - PORT_FreeArena
    - PR_INIT_CLIST
    - PORT_NewArena
    - PORT_ArenaZAlloc
    linkageType: ''
    returnType: SECKEYPublicKeyList
    signature: 'SECKEYPublicKeyList *

      SECKEY_NewPublicKeyList(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/lib/cryptohi/seckey.c:2240,1
    - Dst: SECKEY_RemovePublicKeyListNode
      Src: /src/nss/lib/cryptohi/seckey.c:2241,1
    - Dst: PR_LIST_HEAD
      Src: /src/nss/lib/cryptohi/seckey.c:2242,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/cryptohi/seckey.c:2245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - keys
    argTypes:
    - SECKEYPublicKeyList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2248
      start: 2237
    functionDepth: 1
    functionLinenumber: 2237
    functionLinenumberEnd: 2248
    functionName: SECKEY_DestroyPublicKeyList
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 0
    functionsReached:
    - PR_LIST_HEAD
    - SECKEY_RemovePublicKeyListNode
    - PORT_FreeArena
    - PR_CLIST_IS_EMPTY
    linkageType: ''
    returnType: void
    signature: void SECKEY_DestroyPublicKeyList(SECKEYPublicKeyList *keys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_ASSERT
      Src: /src/nss/lib/cryptohi/seckey.c:2253,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/cryptohi/seckey.c:2254,1
    - Dst: PR_REMOVE_LINK
      Src: /src/nss/lib/cryptohi/seckey.c:2256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - node
    argTypes:
    - SECKEYPublicKeyListNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2258
      start: 2250
    functionDepth: 2
    functionLinenumber: 2250
    functionLinenumberEnd: 2258
    functionName: SECKEY_RemovePublicKeyListNode
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 1
    functionsReached:
    - SECKEY_DestroyPublicKey
    - PR_REMOVE_LINK
    - PR_ASSERT
    linkageType: ''
    returnType: void
    signature: void SECKEY_RemovePublicKeyListNode(SECKEYPublicKeyListNode *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/cryptohi/seckey.c:2266,1
    - Dst: PR_INSERT_BEFORE
      Src: /src/nss/lib/cryptohi/seckey.c:2272,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - list
    - key
    argTypes:
    - SECKEYPublicKeyList*
    - SECKEYPublicKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2278
      start: 2260
    functionDepth: 1
    functionLinenumber: 2260
    functionLinenumberEnd: 2278
    functionName: SECKEY_AddPublicKeyToListTail
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 0
    functionsReached:
    - PR_INSERT_BEFORE
    - PORT_ArenaZAlloc
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SECKEY_AddPublicKeyToListTail(SECKEYPublicKeyList *list,\n
      \                             SECKEYPublicKey *key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - key
    - ','
    - attribute
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2286
      start: 2280
    functionDepth: 0
    functionLinenumber: 2280
    functionLinenumberEnd: 2286
    functionName: SECKEY_CacheAttribute
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SECKEY_CacheAttribute(key, attribute)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECKEY_CacheAttribute
      Src: /src/nss/lib/cryptohi/seckey.c:2293,1
    - Dst: SECKEY_CacheAttribute
      Src: /src/nss/lib/cryptohi/seckey.c:2294,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - key
    argTypes:
    - SECKEYPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2298
      start: 2287
    functionDepth: 1
    functionLinenumber: 2287
    functionLinenumberEnd: 2298
    functionName: SECKEY_CacheStaticFlags
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 1
    functionsReached:
    - SECKEY_CacheAttribute
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SECKEY_CacheStaticFlags(SECKEYPrivateKey *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOID
      Src: /src/nss/lib/cryptohi/seckey.c:2315,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - params
    argTypes:
    - SECKEYECParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2319
      start: 2300
    functionDepth: 0
    functionLinenumber: 2300
    functionLinenumberEnd: 2319
    functionName: SECKEY_GetECCOid
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 1
    functionsReached:
    - SECOID_FindOID
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag SECKEY_GetECCOid(const SECKEYECParams *params)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/seckey.c:2336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - tag
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2339
      start: 2321
    functionDepth: 0
    functionLinenumber: 2321
    functionLinenumberEnd: 2339
    functionName: sec_GetHashMechanismByOidTag
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: CK_MECHANISM_TYPE
    signature: CK_MECHANISM_TYPE sec_GetHashMechanismByOidTag(SECOidTag tag)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/seckey.c:2364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 1
    argNames:
    - tag
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2367
      start: 2341
    functionDepth: 0
    functionLinenumber: 2341
    functionLinenumberEnd: 2367
    functionName: SEC_GetMgfTypeByOidTag
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: CK_RSA_PKCS_MGF_TYPE
    signature: CK_RSA_PKCS_MGF_TYPE SEC_GetMgfTypeByOidTag(SECOidTag tag)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memset
      Src: /src/nss/lib/cryptohi/seckey.c:2382,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/cryptohi/seckey.c:2383,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/cryptohi/seckey.c:2391,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/cryptohi/seckey.c:2399,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/seckey.c:2401,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/cryptohi/seckey.c:2405,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/cryptohi/seckey.c:2406,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/cryptohi/seckey.c:2411,1
    - Dst: SEC_ASN1DecodeInteger
      Src: /src/nss/lib/cryptohi/seckey.c:2417,1
    - Dst: SEC_ASN1DecodeInteger
      Src: /src/nss/lib/cryptohi/seckey.c:2426,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/seckey.c:2433,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 52
    argCount: 5
    argNames:
    - arena
    - params
    - retHashAlg
    - retMaskHashAlg
    - retSaltLength
    argTypes:
    - PLArenaPool*
    - SECItem*
    - SECOidTag*
    - SECOidTag*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2449
      start: 2369
    functionDepth: 1
    functionLinenumber: 2369
    functionLinenumberEnd: 2449
    functionName: sec_DecodeRSAPSSParams
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 0
    functionsReached:
    - SECOID_GetAlgorithmTag
    - SEC_ASN1DecodeInteger
    - PORT_SetError
    - SEC_QuickDERDecodeItem
    - PORT_Memset
    - SEC_ASN1_GET
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sec_DecodeRSAPSSParams(PLArenaPool *arena,\n                       const
      SECItem *params,\n                       SECOidTag *retHashAlg, SECOidTag *retMaskHashAlg,\n
      \                      unsigned long *retSaltLength)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sec_DecodeRSAPSSParams
      Src: /src/nss/lib/cryptohi/seckey.c:2462,1
    - Dst: sec_GetHashMechanismByOidTag
      Src: /src/nss/lib/cryptohi/seckey.c:2469,1
    - Dst: SEC_GetMgfTypeByOidTag
      Src: /src/nss/lib/cryptohi/seckey.c:2474,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - arena
    - params
    - mech
    - hashAlgp
    argTypes:
    - PLArenaPool*
    - SECItem*
    - CK_RSA_PKCS_PSS_PARAMS*
    - SECOidTag*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2482
      start: 2451
    functionDepth: 2
    functionLinenumber: 2451
    functionLinenumberEnd: 2482
    functionName: sec_DecodeRSAPSSParamsToMechanism
    functionSourceFile: /src/nss/lib/cryptohi/seckey.c
    functionUses: 0
    functionsReached:
    - sec_GetHashMechanismByOidTag
    - SEC_GetMgfTypeByOidTag
    - sec_DecodeRSAPSSParams
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sec_DecodeRSAPSSParamsToMechanism(PLArenaPool *arena,\n
      \                                 const SECItem *params,\n                                  CK_RSA_PKCS_PSS_PARAMS
      *mech,\n                                  SECOidTag *hashAlgp)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/cryptohi/secvfy.c:50,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/cryptohi/secvfy.c:51,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/cryptohi/secvfy.c:52,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/cryptohi/secvfy.c:53,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/cryptohi/secvfy.c:54,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/cryptohi/secvfy.c:55,1
    - Dst: SECKEY_PublicKeyStrength
      Src: /src/nss/lib/cryptohi/secvfy.c:58,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/cryptohi/secvfy.c:60,1
    - Dst: PK11_VerifyRecover
      Src: /src/nss/lib/cryptohi/secvfy.c:68,1
    - Dst: SGN_DecodeDigestInfo
      Src: /src/nss/lib/cryptohi/secvfy.c:90,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/cryptohi/secvfy.c:97,1
    - Dst: SGN_DestroyDigestInfo
      Src: /src/nss/lib/cryptohi/secvfy.c:104,1
    - Dst: PORT_Free
      Src: /src/nss/lib/cryptohi/secvfy.c:112,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/secvfy.c:116,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 53
    argCount: 7
    argNames:
    - givenDigestAlg
    - digestAlgOut
    - digestInfo
    - digestInfoLen
    - key
    - sig
    - wincx
    argTypes:
    - SECOidTag
    - SECOidTag*
    - unsigned char**
    - unsigned int*
    - SECKEYPublicKey*
    - SECItem*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 120
    functionName: recoverPKCS1DigestInfo
    functionSourceFile: /src/nss/lib/cryptohi/secvfy.c
    functionUses: 0
    functionsReached:
    - SECKEY_PublicKeyStrength
    - PORT_Assert
    - PORT_Alloc
    - SECOID_GetAlgorithmTag
    - SGN_DecodeDigestInfo
    - PORT_Free
    - SGN_DestroyDigestInfo
    - PK11_VerifyRecover
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus recoverPKCS1DigestInfo(SECOidTag givenDigestAlg,\n                       /*out*/
      SECOidTag *digestAlgOut,\n                       /*out*/ unsigned char **digestInfo,\n
      \                      /*out*/ unsigned int *digestInfoLen,\n                       SECKEYPublicKey
      *key,\n                       const SECItem *sig, void *wincx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _SGN_VerifyPKCS1DigestInfo
      Src: /src/nss/lib/cryptohi/secvfy.c:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - cx
    - digest
    argTypes:
    - VFYContext*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 171
    functionName: verifyPKCS1DigestInfo
    functionSourceFile: /src/nss/lib/cryptohi/secvfy.c
    functionUses: 0
    functionsReached:
    - _SGN_VerifyPKCS1DigestInfo
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus verifyPKCS1DigestInfo(const VFYContext *cx, const SECItem
      *digest)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SECKEY_SignatureLen
      Src: /src/nss/lib/cryptohi/secvfy.c:176,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/secvfy.c:194,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/cryptohi/secvfy.c:197,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/secvfy.c:199,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - pubk
    argTypes:
    - SECKEYPublicKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 173
    functionDepth: 2
    functionLinenumber: 173
    functionLinenumberEnd: 203
    functionName: checkedSignatureLen
    functionSourceFile: /src/nss/lib/cryptohi/secvfy.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SECKEY_SignatureLen
    - PORT_SetError
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int checkedSignatureLen(const SECKEYPublicKey *pubk)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DSAU_DecodeDerSigToLen
      Src: /src/nss/lib/cryptohi/secvfy.c:230,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/cryptohi/secvfy.c:235,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/cryptohi/secvfy.c:239,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/cryptohi/secvfy.c:240,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/secvfy.c:245,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 4
    argNames:
    - algid
    - sig
    - dsig
    - len
    argTypes:
    - SECOidTag
    - SECItem*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 247
    functionName: decodeECorDSASignature
    functionSourceFile: /src/nss/lib/cryptohi/secvfy.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PORT_Memcpy
    - SECITEM_FreeItem
    - DSAU_DecodeDerSigToLen
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus decodeECorDSASignature(SECOidTag algid, const SECItem *sig,
      unsigned char *dsig,\n                       unsigned int len)"
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/secvfy.c:300,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 39
    argCount: 1
    argNames:
    - sigAlg
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 304
    functionName: sec_GetEncAlgFromSigAlg
    functionSourceFile: /src/nss/lib/cryptohi/secvfy.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag sec_GetEncAlgFromSigAlg(SECOidTag sigAlg)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - hashalg
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 327
    functionName: sec_RSAPKCS1GetCombinedMech
    functionSourceFile: /src/nss/lib/cryptohi/secvfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_MECHANISM_TYPE
    signature: CK_MECHANISM_TYPE sec_RSAPKCS1GetCombinedMech(SECOidTag hashalg)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - hashalg
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 347
    functionName: sec_RSAPSSGetCombinedMech
    functionSourceFile: /src/nss/lib/cryptohi/secvfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_MECHANISM_TYPE
    signature: CK_MECHANISM_TYPE sec_RSAPSSGetCombinedMech(SECOidTag hashalg)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - hashalg
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 367
    functionName: sec_DSAGetCombinedMech
    functionSourceFile: /src/nss/lib/cryptohi/secvfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_MECHANISM_TYPE
    signature: CK_MECHANISM_TYPE sec_DSAGetCombinedMech(SECOidTag hashalg)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - hashalg
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 386
    functionName: sec_ECDSAGetCombinedMech
    functionSourceFile: /src/nss/lib/cryptohi/secvfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_MECHANISM_TYPE
    signature: CK_MECHANISM_TYPE sec_ECDSAGetCombinedMech(SECOidTag hashalg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sec_RSAPKCS1GetCombinedMech
      Src: /src/nss/lib/cryptohi/secvfy.c:393,1
    - Dst: sec_RSAPSSGetCombinedMech
      Src: /src/nss/lib/cryptohi/secvfy.c:395,1
    - Dst: sec_ECDSAGetCombinedMech
      Src: /src/nss/lib/cryptohi/secvfy.c:397,1
    - Dst: sec_DSAGetCombinedMech
      Src: /src/nss/lib/cryptohi/secvfy.c:399,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - encalg
    - hashalg
    argTypes:
    - SECOidTag
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 404
    functionName: sec_GetCombinedMech
    functionSourceFile: /src/nss/lib/cryptohi/secvfy.c
    functionUses: 0
    functionsReached:
    - sec_RSAPSSGetCombinedMech
    - sec_RSAPKCS1GetCombinedMech
    - sec_ECDSAGetCombinedMech
    - sec_DSAGetCombinedMech
    linkageType: ''
    returnType: CK_MECHANISM_TYPE
    signature: CK_MECHANISM_TYPE sec_GetCombinedMech(SECOidTag encalg, SECOidTag hashalg)
  - BBCount: 50
    BranchProfiles: []
    Callsites:
    - Dst: PR_ASSERT
      Src: /src/nss/lib/cryptohi/secvfy.c:435,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/cryptohi/secvfy.c:436,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/cryptohi/secvfy.c:437,1
    - Dst: PK11_AlgtagToMechanism
      Src: /src/nss/lib/cryptohi/secvfy.c:440,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/cryptohi/secvfy.c:481,1
    - Dst: PORT_InitCheapArena
      Src: /src/nss/lib/cryptohi/secvfy.c:489,1
    - Dst: sec_DecodeRSAPSSParamsToMechanism
      Src: /src/nss/lib/cryptohi/secvfy.c:490,1
    - Dst: PORT_DestroyCheapArena
      Src: /src/nss/lib/cryptohi/secvfy.c:492,1
    - Dst: HASH_GetHashTypeByOidTag
      Src: /src/nss/lib/cryptohi/secvfy.c:495,1
    - Dst: PORT_Free
      Src: /src/nss/lib/cryptohi/secvfy.c:498,1
    - Dst: sec_RSAPSSGetCombinedMech
      Src: /src/nss/lib/cryptohi/secvfy.c:507,1
    - Dst: SECKEY_PublicKeyStrength
      Src: /src/nss/lib/cryptohi/secvfy.c:552,1
    - Dst: sec_ECDSAGetCombinedMech
      Src: /src/nss/lib/cryptohi/secvfy.c:565,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/secvfy.c:569,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/cryptohi/secvfy.c:572,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/cryptohi/secvfy.c:576,1
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/cryptohi/secvfy.c:578,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/cryptohi/secvfy.c:580,1
    - Dst: HASH_GetHashTypeByOidTag
      Src: /src/nss/lib/cryptohi/secvfy.c:585,1
    - Dst: sec_ECDSAGetCombinedMech
      Src: /src/nss/lib/cryptohi/secvfy.c:589,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/secvfy.c:595,1
    - Dst: sec_GetEncAlgFromSigAlg
      Src: /src/nss/lib/cryptohi/secvfy.c:599,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/cryptohi/secvfy.c:602,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/cryptohi/secvfy.c:613,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/lib/cryptohi/secvfy.c:615,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/lib/cryptohi/secvfy.c:617,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/lib/cryptohi/secvfy.c:619,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 152
    argCount: 7
    argNames:
    - key
    - sigAlg
    - param
    - encalgp
    - hashalg
    - mechp
    - mechparamsp
    argTypes:
    - SECKEYPublicKey*
    - SECOidTag
    - SECItem*
    - SECOidTag*
    - SECOidTag*
    - CK_MECHANISM_TYPE*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 423
    functionDepth: 3
    functionLinenumber: 423
    functionLinenumberEnd: 626
    functionName: sec_DecodeSigAlg
    functionSourceFile: /src/nss/lib/cryptohi/secvfy.c
    functionUses: 0
    functionsReached:
    - PORT_ZNew
    - PR_GetEnvSecure
    - PK11_AlgtagToMechanism
    - PORT_InitCheapArena
    - PORT_Strcasecmp
    - PORT_NewArena
    - HASH_GetHashTypeByOidTag
    - PORT_SetError
    - PORT_DestroyCheapArena
    - sec_ECDSAGetCombinedMech
    - SECITEM_FreeItem
    - SECKEY_PublicKeyStrength
    - PORT_FreeArena
    - sec_DecodeRSAPSSParamsToMechanism
    - SEC_QuickDERDecodeItem
    - sec_RSAPSSGetCombinedMech
    - PORT_Free
    - sec_GetEncAlgFromSigAlg
    - PR_ASSERT
    - SECOID_FindOIDTag
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sec_DecodeSigAlg(const SECKEYPublicKey *key, SECOidTag sigAlg,\n
      \                const SECItem *param, SECOidTag *encalgp, SECOidTag *hashalg,\n
      \                CK_MECHANISM_TYPE *mechp, SECItem *mechparamsp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PK11_DoesMechanismFlag
      Src: /src/nss/lib/cryptohi/secvfy.c:635,1
    - Dst: PK11_GetBestSlotWithAttributes
      Src: /src/nss/lib/cryptohi/secvfy.c:639,1
    - Dst: PK11_ImportPublicKey
      Src: /src/nss/lib/cryptohi/secvfy.c:644,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/cryptohi/secvfy.c:645,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - cx
    argTypes:
    - VFYContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 628
    functionDepth: 1
    functionLinenumber: 628
    functionLinenumberEnd: 647
    functionName: vfy_ImportPublicKey
    functionSourceFile: /src/nss/lib/cryptohi/secvfy.c
    functionUses: 0
    functionsReached:
    - PK11_FreeSlot
    - PK11_GetBestSlotWithAttributes
    - PK11_ImportPublicKey
    - PK11_DoesMechanismFlag
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus vfy_ImportPublicKey(VFYContext *cx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: checkedSignatureLen
      Src: /src/nss/lib/cryptohi/secvfy.c:664,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/secvfy.c:671,1
    - Dst: decodeECorDSASignature
      Src: /src/nss/lib/cryptohi/secvfy.c:680,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/secvfy.c:686,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/cryptohi/secvfy.c:689,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - cx
    - sig
    argTypes:
    - VFYContext*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 653
    functionDepth: 3
    functionLinenumber: 653
    functionLinenumberEnd: 691
    functionName: vfy_SetPKCS11SigFromX509Sig
    functionSourceFile: /src/nss/lib/cryptohi/secvfy.c
    functionUses: 0
    functionsReached:
    - checkedSignatureLen
    - PORT_SetError
    - decodeECorDSASignature
    - PORT_Memcpy
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus vfy_SetPKCS11SigFromX509Sig(VFYContext *cx, const SECItem
      *sig)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: seckey_GetKeyType
      Src: /src/nss/lib/cryptohi/secvfy.c:730,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/cryptohi/secvfy.c:733,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/secvfy.c:734,1
    - Dst: NSS_OptionGet
      Src: /src/nss/lib/cryptohi/secvfy.c:737,1
    - Dst: SECKEY_EnforceKeySize
      Src: /src/nss/lib/cryptohi/secvfy.c:739,1
    - Dst: SECKEY_PublicKeyStrengthInBits
      Src: /src/nss/lib/cryptohi/secvfy.c:740,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/cryptohi/secvfy.c:743,1
    - Dst: NSS_GetAlgorithmPolicy
      Src: /src/nss/lib/cryptohi/secvfy.c:749,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/cryptohi/secvfy.c:751,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/secvfy.c:752,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/cryptohi/secvfy.c:756,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/cryptohi/secvfy.c:760,1
    - Dst: SECKEY_CopyPublicKey
      Src: /src/nss/lib/cryptohi/secvfy.c:777,1
    - Dst: vfy_ImportPublicKey
      Src: /src/nss/lib/cryptohi/secvfy.c:780,1
    - Dst: recoverPKCS1DigestInfo
      Src: /src/nss/lib/cryptohi/secvfy.c:795,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/cryptohi/secvfy.c:804,1
    - Dst: vfy_SetPKCS11SigFromX509Sig
      Src: /src/nss/lib/cryptohi/secvfy.c:805,1
    - Dst: HASH_GetHashTypeByOidTag
      Src: /src/nss/lib/cryptohi/secvfy.c:813,1
    - Dst: NSS_GetAlgorithmPolicy
      Src: /src/nss/lib/cryptohi/secvfy.c:820,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/secvfy.c:822,1
    - Dst: VFY_DestroyContext
      Src: /src/nss/lib/cryptohi/secvfy.c:833,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 77
    argCount: 9
    argNames:
    - key
    - sig
    - encAlg
    - hashAlg
    - mech
    - mechparamsp
    - hash
    - prehash
    - wincx
    argTypes:
    - SECKEYPublicKey*
    - SECItem*
    - SECOidTag
    - SECOidTag
    - CK_MECHANISM_TYPE
    - SECItem*
    - SECOidTag*
    - PRBool
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 716
    functionDepth: 4
    functionLinenumber: 716
    functionLinenumberEnd: 836
    functionName: vfy_CreateContext
    functionSourceFile: /src/nss/lib/cryptohi/secvfy.c
    functionUses: 0
    functionsReached:
    - SECKEY_EnforceKeySize
    - NSS_GetAlgorithmPolicy
    - SECKEY_CopyPublicKey
    - PORT_Assert
    - NSS_OptionGet
    - SECKEY_PublicKeyStrengthInBits
    - HASH_GetHashTypeByOidTag
    - VFY_DestroyContext
    - PORT_ZAlloc
    - PORT_SetError
    - vfy_ImportPublicKey
    - vfy_SetPKCS11SigFromX509Sig
    - seckey_GetKeyType
    - recoverPKCS1DigestInfo
    - SECITEM_FreeItem
    linkageType: ''
    returnType: VFYContext
    signature: "VFYContext *\nvfy_CreateContext(const SECKEYPublicKey *key, const
      SECItem *sig,\n                  SECOidTag encAlg, SECOidTag hashAlg, CK_MECHANISM_TYPE
      mech,\n                  SECItem *mechparamsp, SECOidTag *hash, PRBool prehash,\n
      \                 void *wincx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sec_DecodeSigAlg
      Src: /src/nss/lib/cryptohi/secvfy.c:845,1
    - Dst: vfy_CreateContext
      Src: /src/nss/lib/cryptohi/secvfy.c:850,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - key
    - sig
    - sigAlg
    - wincx
    argTypes:
    - SECKEYPublicKey*
    - SECItem*
    - SECOidTag
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 838
    functionDepth: 5
    functionLinenumber: 838
    functionLinenumberEnd: 852
    functionName: VFY_CreateContext
    functionSourceFile: /src/nss/lib/cryptohi/secvfy.c
    functionUses: 0
    functionsReached:
    - vfy_CreateContext
    - sec_DecodeSigAlg
    linkageType: ''
    returnType: VFYContext
    signature: "VFYContext *\nVFY_CreateContext(SECKEYPublicKey *key, SECItem *sig,
      SECOidTag sigAlg,\n                  void *wincx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sec_GetCombinedMech
      Src: /src/nss/lib/cryptohi/secvfy.c:859,1
    - Dst: vfy_CreateContext
      Src: /src/nss/lib/cryptohi/secvfy.c:860,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - key
    - sig
    - encAlg
    - hashAlg
    - hash
    - wincx
    argTypes:
    - SECKEYPublicKey*
    - SECItem*
    - SECOidTag
    - SECOidTag
    - SECOidTag*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 854
    functionDepth: 5
    functionLinenumber: 854
    functionLinenumberEnd: 862
    functionName: VFY_CreateContextDirect
    functionSourceFile: /src/nss/lib/cryptohi/secvfy.c
    functionUses: 0
    functionsReached:
    - vfy_CreateContext
    - sec_GetCombinedMech
    linkageType: ''
    returnType: VFYContext
    signature: "VFYContext *\nVFY_CreateContextDirect(const SECKEYPublicKey *key,
      const SECItem *sig,\n                        SECOidTag encAlg, SECOidTag hashAlg,\n
      \                       SECOidTag *hash, void *wincx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sec_DecodeSigAlg
      Src: /src/nss/lib/cryptohi/secvfy.c:871,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/cryptohi/secvfy.c:872,1
    - Dst: vfy_CreateContext
      Src: /src/nss/lib/cryptohi/secvfy.c:879,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - key
    - sig
    - sigAlgorithm
    - hash
    - wincx
    argTypes:
    - SECKEYPublicKey*
    - SECItem*
    - SECAlgorithmID*
    - SECOidTag*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 864
    functionDepth: 5
    functionLinenumber: 864
    functionLinenumberEnd: 881
    functionName: VFY_CreateContextWithAlgorithmID
    functionSourceFile: /src/nss/lib/cryptohi/secvfy.c
    functionUses: 0
    functionsReached:
    - vfy_CreateContext
    - SECOID_GetAlgorithmTag
    - sec_DecodeSigAlg
    linkageType: ''
    returnType: VFYContext
    signature: "VFYContext *\nVFY_CreateContextWithAlgorithmID(const SECKEYPublicKey
      *key, const SECItem *sig,\n                                 const SECAlgorithmID
      *sigAlgorithm, SECOidTag *hash, void *wincx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/cryptohi/secvfy.c:892,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/cryptohi/secvfy.c:896,1
    - Dst: PORT_Free
      Src: /src/nss/lib/cryptohi/secvfy.c:899,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/cryptohi/secvfy.c:901,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/cryptohi/secvfy.c:903,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - cx
    - freeit
    argTypes:
    - VFYContext*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 883
    functionDepth: 2
    functionLinenumber: 883
    functionLinenumberEnd: 906
    functionName: VFY_DestroyContext
    functionSourceFile: /src/nss/lib/cryptohi/secvfy.c
    functionUses: 1
    functionsReached:
    - PORT_ZFree
    - PK11_DestroyContext
    - SECKEY_DestroyPublicKey
    - PORT_Free
    - SECITEM_FreeItem
    linkageType: ''
    returnType: void
    signature: void VFY_DestroyContext(VFYContext *cx, PRBool freeit)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/cryptohi/secvfy.c:916,1
    - Dst: PK11_CreateContextByPubKey
      Src: /src/nss/lib/cryptohi/secvfy.c:920,1
    - Dst: HASH_GetHashObjectByOidTag
      Src: /src/nss/lib/cryptohi/secvfy.c:926,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - cx
    argTypes:
    - VFYContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 908
    functionDepth: 1
    functionLinenumber: 908
    functionLinenumberEnd: 936
    functionName: VFY_Begin
    functionSourceFile: /src/nss/lib/cryptohi/secvfy.c
    functionUses: 0
    functionsReached:
    - HASH_GetHashObjectByOidTag
    - PK11_CreateContextByPubKey
    - PK11_DestroyContext
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus VFY_Begin(VFYContext *cx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/secvfy.c:943,1
    - Dst: PK11_DigestOp
      Src: /src/nss/lib/cryptohi/secvfy.c:946,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - cx
    - input
    - inputLen
    argTypes:
    - VFYContext*
    - unsigned char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 950
      start: 938
    functionDepth: 1
    functionLinenumber: 938
    functionLinenumberEnd: 950
    functionName: VFY_Update
    functionSourceFile: /src/nss/lib/cryptohi/secvfy.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PK11_DigestOp
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus VFY_Update(VFYContext *cx, const unsigned char *input, unsigned
      inputLen)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PK11_VerifyWithMechanism
      Src: /src/nss/lib/cryptohi/secvfy.c:960,1
    - Dst: VFY_Begin
      Src: /src/nss/lib/cryptohi/secvfy.c:963,1
    - Dst: VFY_Update
      Src: /src/nss/lib/cryptohi/secvfy.c:967,1
    - Dst: VFY_End
      Src: /src/nss/lib/cryptohi/secvfy.c:971,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - cx
    - buf
    - len
    argTypes:
    - VFYContext*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 952
    functionDepth: 2
    functionLinenumber: 952
    functionLinenumberEnd: 972
    functionName: vfy_SingleShot
    functionSourceFile: /src/nss/lib/cryptohi/secvfy.c
    functionUses: 0
    functionsReached:
    - PK11_VerifyWithMechanism
    - VFY_End
    - VFY_Update
    - VFY_Begin
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus vfy_SingleShot(VFYContext *cx, const unsigned char *buf,
      int len)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: vfy_SetPKCS11SigFromX509Sig
      Src: /src/nss/lib/cryptohi/secvfy.c:983,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/secvfy.c:988,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/secvfy.c:995,1
    - Dst: PK11_DigestFinal
      Src: /src/nss/lib/cryptohi/secvfy.c:998,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/cryptohi/secvfy.c:1004,1
    - Dst: PK11_Verify
      Src: /src/nss/lib/cryptohi/secvfy.c:1009,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/secvfy.c:1010,1
    - Dst: PK11_VerifyWithMechanism
      Src: /src/nss/lib/cryptohi/secvfy.c:1016,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/secvfy.c:1019,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/cryptohi/secvfy.c:1025,1
    - Dst: recoverPKCS1DigestInfo
      Src: /src/nss/lib/cryptohi/secvfy.c:1026,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/cryptohi/secvfy.c:1034,1
    - Dst: verifyPKCS1DigestInfo
      Src: /src/nss/lib/cryptohi/secvfy.c:1036,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/secvfy.c:1040,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 51
    argCount: 2
    argNames:
    - cx
    - sig
    argTypes:
    - VFYContext*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 974
    functionDepth: 4
    functionLinenumber: 974
    functionLinenumberEnd: 1044
    functionName: VFY_EndWithSignature
    functionSourceFile: /src/nss/lib/cryptohi/secvfy.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PK11_Verify
    - PK11_VerifyWithMechanism
    - verifyPKCS1DigestInfo
    - PORT_SetError
    - vfy_SetPKCS11SigFromX509Sig
    - recoverPKCS1DigestInfo
    - PK11_DigestFinal
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus VFY_EndWithSignature(VFYContext *cx, SECItem *sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VFY_EndWithSignature
      Src: /src/nss/lib/cryptohi/secvfy.c:1049,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cx
    argTypes:
    - VFYContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 1046
    functionDepth: 5
    functionLinenumber: 1046
    functionLinenumberEnd: 1050
    functionName: VFY_End
    functionSourceFile: /src/nss/lib/cryptohi/secvfy.c
    functionUses: 1
    functionsReached:
    - VFY_EndWithSignature
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus VFY_End(VFYContext *cx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: vfy_CreateContext
      Src: /src/nss/lib/cryptohi/secvfy.c:1066,1
    - Dst: verifyPKCS1DigestInfo
      Src: /src/nss/lib/cryptohi/secvfy.c:1073,1
    - Dst: checkedSignatureLen
      Src: /src/nss/lib/cryptohi/secvfy.c:1079,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/secvfy.c:1086,1
    - Dst: PK11_Verify
      Src: /src/nss/lib/cryptohi/secvfy.c:1090,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/secvfy.c:1092,1
    - Dst: VFY_DestroyContext
      Src: /src/nss/lib/cryptohi/secvfy.c:1098,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 8
    argNames:
    - digest
    - key
    - sig
    - encAlg
    - hashAlg
    - mech
    - mechparamsp
    - wincx
    argTypes:
    - SECItem*
    - SECKEYPublicKey*
    - SECItem*
    - SECOidTag
    - SECOidTag
    - CK_MECHANISM_TYPE
    - SECItem*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1101
      start: 1056
    functionDepth: 5
    functionLinenumber: 1056
    functionLinenumberEnd: 1101
    functionName: vfy_VerifyDigest
    functionSourceFile: /src/nss/lib/cryptohi/secvfy.c
    functionUses: 0
    functionsReached:
    - VFY_DestroyContext
    - PK11_Verify
    - verifyPKCS1DigestInfo
    - checkedSignatureLen
    - PORT_SetError
    - vfy_CreateContext
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus vfy_VerifyDigest(const SECItem *digest, const SECKEYPublicKey
      *key,\n                 const SECItem *sig, SECOidTag encAlg, SECOidTag hashAlg,\n
      \                CK_MECHANISM_TYPE mech, SECItem *mechparamsp, void *wincx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sec_GetCombinedMech
      Src: /src/nss/lib/cryptohi/secvfy.c:1108,1
    - Dst: vfy_VerifyDigest
      Src: /src/nss/lib/cryptohi/secvfy.c:1109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - digest
    - key
    - sig
    - encAlg
    - hashAlg
    - wincx
    argTypes:
    - SECItem*
    - SECKEYPublicKey*
    - SECItem*
    - SECOidTag
    - SECOidTag
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1103
    functionDepth: 6
    functionLinenumber: 1103
    functionLinenumberEnd: 1111
    functionName: VFY_VerifyDigestDirect
    functionSourceFile: /src/nss/lib/cryptohi/secvfy.c
    functionUses: 0
    functionsReached:
    - sec_GetCombinedMech
    - vfy_VerifyDigest
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus VFY_VerifyDigestDirect(const SECItem *digest, const SECKEYPublicKey
      *key,\n                       const SECItem *sig, SECOidTag encAlg,\n                       SECOidTag
      hashAlg, void *wincx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sec_DecodeSigAlg
      Src: /src/nss/lib/cryptohi/secvfy.c:1120,1
    - Dst: vfy_VerifyDigest
      Src: /src/nss/lib/cryptohi/secvfy.c:1125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - digest
    - key
    - sig
    - algid
    - wincx
    argTypes:
    - SECItem*
    - SECKEYPublicKey*
    - SECItem*
    - SECOidTag
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1113
    functionDepth: 6
    functionLinenumber: 1113
    functionLinenumberEnd: 1127
    functionName: VFY_VerifyDigest
    functionSourceFile: /src/nss/lib/cryptohi/secvfy.c
    functionUses: 0
    functionsReached:
    - sec_DecodeSigAlg
    - vfy_VerifyDigest
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus VFY_VerifyDigest(SECItem *digest, SECKEYPublicKey *key,
      SECItem *sig,\n                 SECOidTag algid, void *wincx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sec_DecodeSigAlg
      Src: /src/nss/lib/cryptohi/secvfy.c:1142,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/cryptohi/secvfy.c:1143,1
    - Dst: PORT_Free
      Src: /src/nss/lib/cryptohi/secvfy.c:1153,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/secvfy.c:1155,1
    - Dst: vfy_VerifyDigest
      Src: /src/nss/lib/cryptohi/secvfy.c:1158,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 6
    argNames:
    - digest
    - key
    - sig
    - sigAlgorithm
    - hashCmp
    - wincx
    argTypes:
    - SECItem*
    - SECKEYPublicKey*
    - SECItem*
    - SECAlgorithmID*
    - SECOidTag
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1133
    functionDepth: 6
    functionLinenumber: 1133
    functionLinenumberEnd: 1160
    functionName: VFY_VerifyDigestWithAlgorithmID
    functionSourceFile: /src/nss/lib/cryptohi/secvfy.c
    functionUses: 0
    functionsReached:
    - SECOID_GetAlgorithmTag
    - PORT_Free
    - PORT_SetError
    - sec_DecodeSigAlg
    - vfy_VerifyDigest
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus VFY_VerifyDigestWithAlgorithmID(const SECItem *digest,\n
      \                               const SECKEYPublicKey *key, const SECItem *sig,\n
      \                               const SECAlgorithmID *sigAlgorithm,\n                                SECOidTag
      hashCmp, void *wincx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vfy_CreateContext
      Src: /src/nss/lib/cryptohi/secvfy.c:1171,1
    - Dst: vfy_SingleShot
      Src: /src/nss/lib/cryptohi/secvfy.c:1176,1
    - Dst: VFY_DestroyContext
      Src: /src/nss/lib/cryptohi/secvfy.c:1178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 10
    argNames:
    - buf
    - len
    - key
    - sig
    - encAlg
    - hashAlg
    - mech
    - mechparamsp
    - hash
    - wincx
    argTypes:
    - unsigned char*
    - int
    - SECKEYPublicKey*
    - SECItem*
    - SECOidTag
    - SECOidTag
    - CK_MECHANISM_TYPE
    - SECItem*
    - SECOidTag*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1162
    functionDepth: 5
    functionLinenumber: 1162
    functionLinenumberEnd: 1180
    functionName: vfy_VerifyData
    functionSourceFile: /src/nss/lib/cryptohi/secvfy.c
    functionUses: 0
    functionsReached:
    - vfy_CreateContext
    - vfy_SingleShot
    - VFY_DestroyContext
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus vfy_VerifyData(const unsigned char *buf, int len, const
      SECKEYPublicKey *key,\n               const SECItem *sig, SECOidTag encAlg,
      SECOidTag hashAlg,\n               CK_MECHANISM_TYPE mech, SECItem *mechparamsp,\n
      \              SECOidTag *hash, void *wincx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sec_GetCombinedMech
      Src: /src/nss/lib/cryptohi/secvfy.c:1188,1
    - Dst: vfy_VerifyData
      Src: /src/nss/lib/cryptohi/secvfy.c:1189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - buf
    - len
    - key
    - sig
    - encAlg
    - hashAlg
    - hash
    - wincx
    argTypes:
    - unsigned char*
    - int
    - SECKEYPublicKey*
    - SECItem*
    - SECOidTag
    - SECOidTag
    - SECOidTag*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1182
    functionDepth: 6
    functionLinenumber: 1182
    functionLinenumberEnd: 1191
    functionName: VFY_VerifyDataDirect
    functionSourceFile: /src/nss/lib/cryptohi/secvfy.c
    functionUses: 0
    functionsReached:
    - vfy_VerifyData
    - sec_GetCombinedMech
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus VFY_VerifyDataDirect(const unsigned char *buf, int len,\n
      \                    const SECKEYPublicKey *key, const SECItem *sig,\n                     SECOidTag
      encAlg, SECOidTag hashAlg,\n                     SECOidTag *hash, void *wincx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sec_DecodeSigAlg
      Src: /src/nss/lib/cryptohi/secvfy.c:1200,1
    - Dst: vfy_VerifyData
      Src: /src/nss/lib/cryptohi/secvfy.c:1205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - buf
    - len
    - key
    - sig
    - algid
    - wincx
    argTypes:
    - unsigned char*
    - int
    - SECKEYPublicKey*
    - SECItem*
    - SECOidTag
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1207
      start: 1193
    functionDepth: 6
    functionLinenumber: 1193
    functionLinenumberEnd: 1207
    functionName: VFY_VerifyData
    functionSourceFile: /src/nss/lib/cryptohi/secvfy.c
    functionUses: 0
    functionsReached:
    - vfy_VerifyData
    - sec_DecodeSigAlg
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus VFY_VerifyData(const unsigned char *buf, int len, const
      SECKEYPublicKey *key,\n               const SECItem *sig, SECOidTag algid, void
      *wincx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/cryptohi/secvfy.c:1217,1
    - Dst: sec_DecodeSigAlg
      Src: /src/nss/lib/cryptohi/secvfy.c:1220,1
    - Dst: vfy_VerifyData
      Src: /src/nss/lib/cryptohi/secvfy.c:1226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 7
    argNames:
    - buf
    - len
    - key
    - sig
    - sigAlgorithm
    - hash
    - wincx
    argTypes:
    - unsigned char*
    - int
    - SECKEYPublicKey*
    - SECItem*
    - SECAlgorithmID*
    - SECOidTag*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1228
      start: 1209
    functionDepth: 6
    functionLinenumber: 1209
    functionLinenumberEnd: 1228
    functionName: VFY_VerifyDataWithAlgorithmID
    functionSourceFile: /src/nss/lib/cryptohi/secvfy.c
    functionUses: 2
    functionsReached:
    - vfy_VerifyData
    - SECOID_GetAlgorithmTag
    - sec_DecodeSigAlg
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus VFY_VerifyDataWithAlgorithmID(const unsigned char *buf,
      int len,\n                              const SECKEYPublicKey *key,\n                              const
      SECItem *sig,\n                              const SECAlgorithmID *sigAlgorithm,\n
      \                             SECOidTag *hash, void *wincx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 228
    functionName: PRIVKEY_LIST_HEAD
    functionSourceFile: /src/nss/lib/cryptohi/keyhi.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PRIVKEY_LIST_HEAD(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 229
    functionName: PRIVKEY_LIST_NEXT
    functionSourceFile: /src/nss/lib/cryptohi/keyhi.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PRIVKEY_LIST_NEXT(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 230
    functionName: PRIVKEY_LIST_END
    functionSourceFile: /src/nss/lib/cryptohi/keyhi.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PRIVKEY_LIST_END(n, l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 245
    functionName: PUBKEY_LIST_HEAD
    functionSourceFile: /src/nss/lib/cryptohi/keyhi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUBKEY_LIST_HEAD(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 246
    functionName: PUBKEY_LIST_NEXT
    functionSourceFile: /src/nss/lib/cryptohi/keyhi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUBKEY_LIST_NEXT(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 247
    functionName: PUBKEY_LIST_END
    functionSourceFile: /src/nss/lib/cryptohi/keyhi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUBKEY_LIST_END(n, l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 14
    functionName: null_hash_new_context
    functionSourceFile: /src/nss/lib/cryptohi/sechash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void *

      null_hash_new_context(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/cryptohi/sechash.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 21
    functionName: null_hash_clone_context
    functionSourceFile: /src/nss/lib/cryptohi/sechash.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: void
    signature: 'void *

      null_hash_clone_context(void *v)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: null_hash_begin
    functionSourceFile: /src/nss/lib/cryptohi/sechash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void null_hash_begin(void *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - v
    - input
    - length
    argTypes:
    - void*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: null_hash_update
    functionSourceFile: /src/nss/lib/cryptohi/sechash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void null_hash_update(void *v, const unsigned char *input, unsigned
      int length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - v
    - output
    - outLen
    - maxOut
    argTypes:
    - void*
    - unsigned char*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: null_hash_end
    functionSourceFile: /src/nss/lib/cryptohi/sechash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void null_hash_end(void *v, unsigned char *output, unsigned int *outLen,\n
      \             unsigned int maxOut)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/cryptohi/sechash.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - b
    argTypes:
    - void*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: null_hash_destroy_context
    functionSourceFile: /src/nss/lib/cryptohi/sechash.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: void
    signature: void null_hash_destroy_context(void *v, PRBool b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_CreateDigestContext
      Src: /src/nss/lib/cryptohi/sechash.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: md2_NewContext
    functionSourceFile: /src/nss/lib/cryptohi/sechash.c
    functionUses: 0
    functionsReached:
    - PK11_CreateDigestContext
    linkageType: ''
    returnType: void
    signature: 'void *

      md2_NewContext(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_CreateDigestContext
      Src: /src/nss/lib/cryptohi/sechash.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: md5_NewContext
    functionSourceFile: /src/nss/lib/cryptohi/sechash.c
    functionUses: 0
    functionsReached:
    - PK11_CreateDigestContext
    linkageType: ''
    returnType: void
    signature: 'void *

      md5_NewContext(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_CreateDigestContext
      Src: /src/nss/lib/cryptohi/sechash.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: sha1_NewContext
    functionSourceFile: /src/nss/lib/cryptohi/sechash.c
    functionUses: 0
    functionsReached:
    - PK11_CreateDigestContext
    linkageType: ''
    returnType: void
    signature: 'void *

      sha1_NewContext(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_CreateDigestContext
      Src: /src/nss/lib/cryptohi/sechash.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: sha224_NewContext
    functionSourceFile: /src/nss/lib/cryptohi/sechash.c
    functionUses: 0
    functionsReached:
    - PK11_CreateDigestContext
    linkageType: ''
    returnType: void
    signature: 'void *

      sha224_NewContext(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_CreateDigestContext
      Src: /src/nss/lib/cryptohi/sechash.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: sha256_NewContext
    functionSourceFile: /src/nss/lib/cryptohi/sechash.c
    functionUses: 0
    functionsReached:
    - PK11_CreateDigestContext
    linkageType: ''
    returnType: void
    signature: 'void *

      sha256_NewContext(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_CreateDigestContext
      Src: /src/nss/lib/cryptohi/sechash.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 80
    functionName: sha384_NewContext
    functionSourceFile: /src/nss/lib/cryptohi/sechash.c
    functionUses: 0
    functionsReached:
    - PK11_CreateDigestContext
    linkageType: ''
    returnType: void
    signature: 'void *

      sha384_NewContext(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_CreateDigestContext
      Src: /src/nss/lib/cryptohi/sechash.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 86
    functionName: sha512_NewContext
    functionSourceFile: /src/nss/lib/cryptohi/sechash.c
    functionUses: 0
    functionsReached:
    - PK11_CreateDigestContext
    linkageType: ''
    returnType: void
    signature: 'void *

      sha512_NewContext(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_CreateDigestContext
      Src: /src/nss/lib/cryptohi/sechash.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 92
    functionName: sha3_224_NewContext
    functionSourceFile: /src/nss/lib/cryptohi/sechash.c
    functionUses: 0
    functionsReached:
    - PK11_CreateDigestContext
    linkageType: ''
    returnType: void
    signature: 'void *

      sha3_224_NewContext(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_CreateDigestContext
      Src: /src/nss/lib/cryptohi/sechash.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: sha3_256_NewContext
    functionSourceFile: /src/nss/lib/cryptohi/sechash.c
    functionUses: 0
    functionsReached:
    - PK11_CreateDigestContext
    linkageType: ''
    returnType: void
    signature: 'void *

      sha3_256_NewContext(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_CreateDigestContext
      Src: /src/nss/lib/cryptohi/sechash.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 104
    functionName: sha3_384_NewContext
    functionSourceFile: /src/nss/lib/cryptohi/sechash.c
    functionUses: 0
    functionsReached:
    - PK11_CreateDigestContext
    linkageType: ''
    returnType: void
    signature: 'void *

      sha3_384_NewContext(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_CreateDigestContext
      Src: /src/nss/lib/cryptohi/sechash.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 110
    functionName: sha3_512_NewContext
    functionSourceFile: /src/nss/lib/cryptohi/sechash.c
    functionUses: 0
    functionsReached:
    - PK11_CreateDigestContext
    linkageType: ''
    returnType: void
    signature: 'void *

      sha3_512_NewContext(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_CloneContext
      Src: /src/nss/lib/cryptohi/sechash.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 117
    functionName: SECHash_PK11_CloneContext
    functionSourceFile: /src/nss/lib/cryptohi/sechash.c
    functionUses: 0
    functionsReached:
    - PK11_CloneContext
    linkageType: ''
    returnType: void
    signature: 'void *

      SECHash_PK11_CloneContext(void *ctx)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/cryptohi/sechash.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - freeit
    argTypes:
    - void*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 124
    functionName: SECHash_PK11_DestroyContext
    functionSourceFile: /src/nss/lib/cryptohi/sechash.c
    functionUses: 0
    functionsReached:
    - PK11_DestroyContext
    linkageType: ''
    returnType: void
    signature: void SECHash_PK11_DestroyContext(void *ctx, PRBool freeit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_DigestBegin
      Src: /src/nss/lib/cryptohi/sechash.c:130,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/cryptohi/sechash.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 133
    functionName: SECHash_PK11_DigestBegin
    functionSourceFile: /src/nss/lib/cryptohi/sechash.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PK11_DigestBegin
    linkageType: ''
    returnType: void
    signature: void SECHash_PK11_DigestBegin(void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_DigestOp
      Src: /src/nss/lib/cryptohi/sechash.c:139,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/cryptohi/sechash.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - in
    - inLen
    argTypes:
    - void*
    - unsigned char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 142
    functionName: SECHash_PK11_DigestOp
    functionSourceFile: /src/nss/lib/cryptohi/sechash.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PK11_DigestOp
    linkageType: ''
    returnType: void
    signature: void SECHash_PK11_DigestOp(void *ctx, const unsigned char *in, unsigned
      inLen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_DigestFinal
      Src: /src/nss/lib/cryptohi/sechash.c:149,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/cryptohi/sechash.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ctx
    - data
    - outLen
    - length
    argTypes:
    - void*
    - unsigned char*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 152
    functionName: SECHash_PK11_DigestFinal
    functionSourceFile: /src/nss/lib/cryptohi/sechash.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PK11_DigestFinal
    linkageType: ''
    returnType: void
    signature: "void SECHash_PK11_DigestFinal(void *ctx, unsigned char *data,\n                         unsigned
      int *outLen, unsigned int length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - HASH_HashType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 269
    functionName: HASH_GetHashObject
    functionSourceFile: /src/nss/lib/cryptohi/sechash.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: SECHashObject
    signature: 'SECHashObject *

      HASH_GetHashObject(HASH_HashType type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HASH_GetHashTypeByOidTag
      Src: /src/nss/lib/cryptohi/sechash.c:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hashOid
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 277
    functionName: HASH_GetHashObjectByOidTag
    functionSourceFile: /src/nss/lib/cryptohi/sechash.c
    functionUses: 1
    functionsReached:
    - HASH_GetHashTypeByOidTag
    linkageType: ''
    returnType: SECHashObject
    signature: 'SECHashObject *

      HASH_GetHashObjectByOidTag(SECOidTag hashOid)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HASH_GetHashObjectByOidTag
      Src: /src/nss/lib/cryptohi/sechash.c:283,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - hashOid
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 289
    functionName: HASH_ResultLenByOidTag
    functionSourceFile: /src/nss/lib/cryptohi/sechash.c
    functionUses: 0
    functionsReached:
    - HASH_GetHashObjectByOidTag
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int HASH_ResultLenByOidTag(SECOidTag hashOid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/sechash.c:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - type
    argTypes:
    - HASH_HashType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 301
    functionName: HASH_ResultLen
    functionSourceFile: /src/nss/lib/cryptohi/sechash.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int HASH_ResultLen(HASH_HashType type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - context
    argTypes:
    - HASHContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 307
    functionName: HASH_ResultLenContext
    functionSourceFile: /src/nss/lib/cryptohi/sechash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int HASH_ResultLenContext(HASHContext *context)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HASH_Create
      Src: /src/nss/lib/cryptohi/sechash.c:322,1
    - Dst: HASH_Begin
      Src: /src/nss/lib/cryptohi/sechash.c:326,1
    - Dst: HASH_Update
      Src: /src/nss/lib/cryptohi/sechash.c:327,1
    - Dst: HASH_End
      Src: /src/nss/lib/cryptohi/sechash.c:328,1
    - Dst: HASH_ResultLenContext
      Src: /src/nss/lib/cryptohi/sechash.c:328,1
    - Dst: HASH_Destroy
      Src: /src/nss/lib/cryptohi/sechash.c:329,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - type
    - dest
    - src
    - src_len
    argTypes:
    - HASH_HashType
    - unsigned char*
    - unsigned char*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 332
    functionName: HASH_HashBuf
    functionSourceFile: /src/nss/lib/cryptohi/sechash.c
    functionUses: 1
    functionsReached:
    - HASH_ResultLenContext
    - HASH_Destroy
    - HASH_Create
    - HASH_Begin
    - HASH_Update
    - HASH_End
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus HASH_HashBuf(HASH_HashType type,\n             unsigned
      char *dest,\n             const unsigned char *src,\n             PRUint32 src_len)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Alloc
      Src: /src/nss/lib/cryptohi/sechash.c:349,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - type
    argTypes:
    - HASH_HashType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 365
    functionName: HASH_Create
    functionSourceFile: /src/nss/lib/cryptohi/sechash.c
    functionUses: 1
    functionsReached:
    - PORT_Alloc
    linkageType: ''
    returnType: HASHContext
    signature: 'HASHContext *

      HASH_Create(HASH_HashType type)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Alloc
      Src: /src/nss/lib/cryptohi/sechash.c:378,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - context
    argTypes:
    - HASHContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 394
    functionName: HASH_Clone
    functionSourceFile: /src/nss/lib/cryptohi/sechash.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    linkageType: ''
    returnType: HASHContext
    signature: 'HASHContext *

      HASH_Clone(HASHContext *context)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Free
      Src: /src/nss/lib/cryptohi/sechash.c:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - context
    argTypes:
    - HASHContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 402
    functionName: HASH_Destroy
    functionSourceFile: /src/nss/lib/cryptohi/sechash.c
    functionUses: 3
    functionsReached:
    - PORT_Free
    linkageType: ''
    returnType: void
    signature: void HASH_Destroy(HASHContext *context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - context
    argTypes:
    - HASHContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 409
    functionName: HASH_Begin
    functionSourceFile: /src/nss/lib/cryptohi/sechash.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HASH_Begin(HASHContext *context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - context
    - src
    - len
    argTypes:
    - HASHContext*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 418
    functionName: HASH_Update
    functionSourceFile: /src/nss/lib/cryptohi/sechash.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void HASH_Update(HASHContext *context,\n            const unsigned
      char *src,\n            unsigned int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - context
    - result
    - result_len
    - max_result_len
    argTypes:
    - HASHContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 429
    functionName: HASH_End
    functionSourceFile: /src/nss/lib/cryptohi/sechash.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void HASH_End(HASHContext *context,\n         unsigned char *result,\n
      \        unsigned int *result_len,\n         unsigned int max_result_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - context
    argTypes:
    - HASHContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 435
    functionName: HASH_GetType
    functionSourceFile: /src/nss/lib/cryptohi/sechash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: HASH_HashType
    signature: HASH_HashType HASH_GetType(HASHContext *context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 71
    functionName: SECKEYRSAPublicKeyStr
    functionSourceFile: /src/nss/lib/cryptohi/keythi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SEC_END_PROTOS
    signature: SEC_END_PROTOS SECKEYRSAPublicKeyStr
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - key
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 219
    functionName: SECKEY_ATTRIBUTES_CACHED
    functionSourceFile: /src/nss/lib/cryptohi/keythi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SECKEY_ATTRIBUTES_CACHED(key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - key
    - ','
    - attribute
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 222
    functionName: SECKEY_ATTRIBUTE_VALUE
    functionSourceFile: /src/nss/lib/cryptohi/keythi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SECKEY_ATTRIBUTE_VALUE(key, attribute)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - key
    - ','
    - attribute
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 225
    functionName: SECKEY_HAS_ATTRIBUTE_SET
    functionSourceFile: /src/nss/lib/cryptohi/keythi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SECKEY_HAS_ATTRIBUTE_SET(key, attribute)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - key
    - ','
    - attribute
    - ','
    - haslock
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 228
    functionName: SECKEY_HAS_ATTRIBUTE_SET_LOCK
    functionSourceFile: /src/nss/lib/cryptohi/keythi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SECKEY_HAS_ATTRIBUTE_SET_LOCK(key, attribute, haslock)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/cryptohi/dsautil.c:55,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 57
    functionName: DSAU_ConvertUnsignedToSigned
    functionSourceFile: /src/nss/lib/cryptohi/dsautil.c
    functionUses: 0
    functionsReached:
    - PORT_Memcpy
    linkageType: ''
    returnType: void
    signature: void DSAU_ConvertUnsignedToSigned(SECItem *dest, SECItem *src)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memset
      Src: /src/nss/lib/cryptohi/dsautil.c:78,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/cryptohi/dsautil.c:79,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/cryptohi/dsautil.c:89,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/dsautil.c:93,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 95
    functionName: DSAU_ConvertSignedToFixedUnsigned
    functionSourceFile: /src/nss/lib/cryptohi/dsautil.c
    functionUses: 0
    functionsReached:
    - PORT_Memset
    - PORT_SetError
    - PORT_Memcpy
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus DSAU_ConvertSignedToFixedUnsigned(SECItem *dest, SECItem
      *src)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Alloc
      Src: /src/nss/lib/cryptohi/dsautil.c:115,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/cryptohi/dsautil.c:118,1
    - Dst: PORT_Free
      Src: /src/nss/lib/cryptohi/dsautil.c:121,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/cryptohi/dsautil.c:125,1
    - Dst: DSAU_ConvertUnsignedToSigned
      Src: /src/nss/lib/cryptohi/dsautil.c:142,1
    - Dst: DSAU_ConvertUnsignedToSigned
      Src: /src/nss/lib/cryptohi/dsautil.c:144,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/cryptohi/dsautil.c:146,1
    - Dst: PORT_Free
      Src: /src/nss/lib/cryptohi/dsautil.c:148,1
    - Dst: PORT_Free
      Src: /src/nss/lib/cryptohi/dsautil.c:150,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 156
    functionName: common_EncodeDerSig
    functionSourceFile: /src/nss/lib/cryptohi/dsautil.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - DSAU_ConvertUnsignedToSigned
    - SEC_ASN1EncodeItem
    - PORT_Free
    - PORT_ZAlloc
    - PORT_Memset
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus common_EncodeDerSig(SECItem *dest, SECItem *src)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memset
      Src: /src/nss/lib/cryptohi/dsautil.c:173,1
    - Dst: PORT_InitCheapArena
      Src: /src/nss/lib/cryptohi/dsautil.c:176,1
    - Dst: PR_MAX
      Src: /src/nss/lib/cryptohi/dsautil.c:176,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/cryptohi/dsautil.c:178,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/cryptohi/dsautil.c:183,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/cryptohi/dsautil.c:189,1
    - Dst: DSAU_ConvertSignedToFixedUnsigned
      Src: /src/nss/lib/cryptohi/dsautil.c:198,1
    - Dst: DSAU_ConvertSignedToFixedUnsigned
      Src: /src/nss/lib/cryptohi/dsautil.c:203,1
    - Dst: PORT_DestroyCheapArena
      Src: /src/nss/lib/cryptohi/dsautil.c:208,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/cryptohi/dsautil.c:214,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 2
    argNames:
    - item
    - len
    argTypes:
    - SECItem*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 218
    functionName: common_DecodeDerSig
    functionSourceFile: /src/nss/lib/cryptohi/dsautil.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - DSAU_ConvertSignedToFixedUnsigned
    - PORT_ZNew
    - SEC_QuickDERDecodeItem
    - PORT_InitCheapArena
    - SECITEM_FreeItem
    - PORT_Memset
    - PORT_DestroyCheapArena
    - PR_MAX
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      common_DecodeDerSig(const SECItem *item, unsigned int len)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/cryptohi/dsautil.c:226,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/dsautil.c:228,1
    - Dst: common_EncodeDerSig
      Src: /src/nss/lib/cryptohi/dsautil.c:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 223
    functionDepth: 2
    functionLinenumber: 223
    functionLinenumberEnd: 233
    functionName: DSAU_EncodeDerSig
    functionSourceFile: /src/nss/lib/cryptohi/dsautil.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - common_EncodeDerSig
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus DSAU_EncodeDerSig(SECItem *dest, SECItem *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/cryptohi/dsautil.c:242,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/dsautil.c:244,1
    - Dst: common_EncodeDerSig
      Src: /src/nss/lib/cryptohi/dsautil.c:248,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - dest
    - src
    - len
    argTypes:
    - SECItem*
    - SECItem*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 238
    functionDepth: 2
    functionLinenumber: 238
    functionLinenumberEnd: 249
    functionName: DSAU_EncodeDerSigWithLen
    functionSourceFile: /src/nss/lib/cryptohi/dsautil.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - common_EncodeDerSig
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus DSAU_EncodeDerSigWithLen(SECItem *dest, SECItem *src, unsigned
      int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: common_DecodeDerSig
      Src: /src/nss/lib/cryptohi/dsautil.c:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - item
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 256
    functionDepth: 2
    functionLinenumber: 256
    functionLinenumberEnd: 260
    functionName: DSAU_DecodeDerSig
    functionSourceFile: /src/nss/lib/cryptohi/dsautil.c
    functionUses: 0
    functionsReached:
    - common_DecodeDerSig
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      DSAU_DecodeDerSig(const SECItem *item)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: common_DecodeDerSig
      Src: /src/nss/lib/cryptohi/dsautil.c:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - item
    - len
    argTypes:
    - SECItem*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 267
    functionDepth: 2
    functionLinenumber: 267
    functionLinenumberEnd: 271
    functionName: DSAU_DecodeDerSigToLen
    functionSourceFile: /src/nss/lib/cryptohi/dsautil.c
    functionUses: 1
    functionsReached:
    - common_DecodeDerSig
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      DSAU_DecodeDerSigToLen(const SECItem *item, unsigned int len)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sec_DecodeSigAlg
      Src: /src/nss/lib/cryptohi/secsign.c:53,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/secsign.c:56,1
    - Dst: seckey_GetKeyType
      Src: /src/nss/lib/cryptohi/secsign.c:59,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/secsign.c:65,1
    - Dst: NSS_OptionGet
      Src: /src/nss/lib/cryptohi/secsign.c:68,1
    - Dst: SECKEY_EnforceKeySize
      Src: /src/nss/lib/cryptohi/secsign.c:70,1
    - Dst: SECKEY_PrivateKeyStrengthInBits
      Src: /src/nss/lib/cryptohi/secsign.c:71,1
    - Dst: NSS_GetAlgorithmPolicy
      Src: /src/nss/lib/cryptohi/secsign.c:79,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/secsign.c:81,1
    - Dst: NSS_GetAlgorithmPolicy
      Src: /src/nss/lib/cryptohi/secsign.c:85,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/secsign.c:87,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/cryptohi/secsign.c:91,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/cryptohi/secsign.c:102,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 46
    argCount: 3
    argNames:
    - alg
    - params
    - key
    argTypes:
    - SECOidTag
    - SECItem*
    - SECKEYPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 33
    functionDepth: 4
    functionLinenumber: 33
    functionLinenumberEnd: 104
    functionName: sgn_NewContext
    functionSourceFile: /src/nss/lib/cryptohi/secsign.c
    functionUses: 0
    functionsReached:
    - SECKEY_EnforceKeySize
    - NSS_GetAlgorithmPolicy
    - NSS_OptionGet
    - PORT_ZAlloc
    - SECITEM_FreeItem
    - PORT_SetError
    - SECKEY_PrivateKeyStrengthInBits
    - seckey_GetKeyType
    - sec_DecodeSigAlg
    linkageType: ''
    returnType: SGNContext
    signature: 'SGNContext *

      sgn_NewContext(SECOidTag alg, SECItem *params, SECKEYPrivateKey *key)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sgn_NewContext
      Src: /src/nss/lib/cryptohi/secsign.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - alg
    - key
    argTypes:
    - SECOidTag
    - SECKEYPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 106
    functionDepth: 5
    functionLinenumber: 106
    functionLinenumberEnd: 110
    functionName: SGN_NewContext
    functionSourceFile: /src/nss/lib/cryptohi/secsign.c
    functionUses: 0
    functionsReached:
    - sgn_NewContext
    linkageType: ''
    returnType: SGNContext
    signature: 'SGNContext *

      SGN_NewContext(SECOidTag alg, SECKEYPrivateKey *key)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/cryptohi/secsign.c:115,1
    - Dst: sgn_NewContext
      Src: /src/nss/lib/cryptohi/secsign.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - alg
    - key
    argTypes:
    - SECAlgorithmID*
    - SECKEYPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 112
    functionDepth: 5
    functionLinenumber: 112
    functionLinenumberEnd: 117
    functionName: SGN_NewContextWithAlgorithmID
    functionSourceFile: /src/nss/lib/cryptohi/secsign.c
    functionUses: 0
    functionsReached:
    - sgn_NewContext
    - SECOID_GetAlgorithmTag
    linkageType: ''
    returnType: SGNContext
    signature: 'SGNContext *

      SGN_NewContextWithAlgorithmID(SECAlgorithmID *alg, SECKEYPrivateKey *key)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/cryptohi/secsign.c:128,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/cryptohi/secsign.c:131,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/cryptohi/secsign.c:133,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - cx
    - freeit
    argTypes:
    - SGNContext*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 136
    functionName: SGN_DestroyContext
    functionSourceFile: /src/nss/lib/cryptohi/secsign.c
    functionUses: 0
    functionsReached:
    - PORT_ZFree
    - PK11_DestroyContext
    - SECITEM_FreeItem
    linkageType: ''
    returnType: void
    signature: void SGN_DestroyContext(SGNContext *cx, PRBool freeit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/secsign.c:144,1
    - Dst: PK11_DoesMechanismFlag
      Src: /src/nss/lib/cryptohi/secsign.c:149,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/secsign.c:150,1
    - Dst: PK11_CreateContextByPrivKey
      Src: /src/nss/lib/cryptohi/secsign.c:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - cx
    argTypes:
    - SGNContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 155
    functionName: sgn_CreateCombinedContext
    functionSourceFile: /src/nss/lib/cryptohi/secsign.c
    functionUses: 0
    functionsReached:
    - PK11_CreateContextByPrivKey
    - PORT_SetError
    - PK11_DoesMechanismFlag
    linkageType: ''
    returnType: PK11Context
    signature: 'PK11Context *

      sgn_CreateCombinedContext(SGNContext *cx)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/cryptohi/secsign.c:167,1
    - Dst: sgn_CreateCombinedContext
      Src: /src/nss/lib/cryptohi/secsign.c:171,1
    - Dst: HASH_GetHashObjectByOidTag
      Src: /src/nss/lib/cryptohi/secsign.c:177,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - cx
    argTypes:
    - SGNContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 187
    functionName: SGN_Begin
    functionSourceFile: /src/nss/lib/cryptohi/secsign.c
    functionUses: 0
    functionsReached:
    - HASH_GetHashObjectByOidTag
    - sgn_CreateCombinedContext
    - PK11_DestroyContext
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SGN_Begin(SGNContext *cx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/secsign.c:194,1
    - Dst: PK11_DigestOp
      Src: /src/nss/lib/cryptohi/secsign.c:197,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - cx
    - input
    - inputLen
    argTypes:
    - SGNContext*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 201
    functionName: SGN_Update
    functionSourceFile: /src/nss/lib/cryptohi/secsign.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PK11_DigestOp
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SGN_Update(SGNContext *cx, const unsigned char *input, unsigned
      int inputLen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PK11_SignatureLen
      Src: /src/nss/lib/cryptohi/secsign.c:233,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/secsign.c:235,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/cryptohi/secsign.c:239,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/secsign.c:242,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - privKey
    - sigitem
    argTypes:
    - SECKEYPrivateKey*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 246
    functionName: sgn_allocateSignatureItem
    functionSourceFile: /src/nss/lib/cryptohi/secsign.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_SetError
    - PK11_SignatureLen
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sgn_allocateSignatureItem(SECKEYPrivateKey *privKey, SECItem
      *sigitem)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DSAU_EncodeDerSigWithLen
      Src: /src/nss/lib/cryptohi/secsign.c:260,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/cryptohi/secsign.c:263,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - cx
    - sigitem
    argTypes:
    - SGNContext*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 251
    functionDepth: 3
    functionLinenumber: 251
    functionLinenumberEnd: 270
    functionName: sgn_PKCS11ToX509Sig
    functionSourceFile: /src/nss/lib/cryptohi/secsign.c
    functionUses: 0
    functionsReached:
    - DSAU_EncodeDerSigWithLen
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sgn_PKCS11ToX509Sig(SGNContext *cx, SECItem *sigitem)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/secsign.c:289,1
    - Dst: sgn_allocateSignatureItem
      Src: /src/nss/lib/cryptohi/secsign.c:294,1
    - Dst: PK11_DigestFinal
      Src: /src/nss/lib/cryptohi/secsign.c:298,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/cryptohi/secsign.c:301,1
    - Dst: sgn_PKCS11ToX509Sig
      Src: /src/nss/lib/cryptohi/secsign.c:305,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/cryptohi/secsign.c:313,1
    - Dst: SGN_CreateDigestInfo
      Src: /src/nss/lib/cryptohi/secsign.c:320,1
    - Dst: DER_Encode
      Src: /src/nss/lib/cryptohi/secsign.c:327,1
    - Dst: sgn_allocateSignatureItem
      Src: /src/nss/lib/cryptohi/secsign.c:341,1
    - Dst: PK11_SignWithMechanism
      Src: /src/nss/lib/cryptohi/secsign.c:347,1
    - Dst: PK11_Sign
      Src: /src/nss/lib/cryptohi/secsign.c:353,1
    - Dst: sgn_PKCS11ToX509Sig
      Src: /src/nss/lib/cryptohi/secsign.c:358,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/cryptohi/secsign.c:367,1
    - Dst: SGN_DestroyDigestInfo
      Src: /src/nss/lib/cryptohi/secsign.c:369,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/cryptohi/secsign.c:371,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 78
    argCount: 2
    argNames:
    - cx
    - result
    argTypes:
    - SGNContext*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 272
    functionDepth: 4
    functionLinenumber: 272
    functionLinenumberEnd: 374
    functionName: SGN_End
    functionSourceFile: /src/nss/lib/cryptohi/secsign.c
    functionUses: 0
    functionsReached:
    - PORT_NewArena
    - PK11_Sign
    - DER_Encode
    - PORT_FreeArena
    - sgn_allocateSignatureItem
    - SGN_DestroyDigestInfo
    - sgn_PKCS11ToX509Sig
    - SGN_CreateDigestInfo
    - PORT_SetError
    - PK11_SignWithMechanism
    - SECITEM_FreeItem
    - SECITEM_ZfreeItem
    - PK11_DigestFinal
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SGN_End(SGNContext *cx, SECItem *result)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PK11_DoesMechanismFlag
      Src: /src/nss/lib/cryptohi/secsign.c:386,1
    - Dst: sgn_allocateSignatureItem
      Src: /src/nss/lib/cryptohi/secsign.c:388,1
    - Dst: PK11_SignWithMechanism
      Src: /src/nss/lib/cryptohi/secsign.c:392,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/cryptohi/secsign.c:395,1
    - Dst: sgn_PKCS11ToX509Sig
      Src: /src/nss/lib/cryptohi/secsign.c:398,1
    - Dst: SGN_Begin
      Src: /src/nss/lib/cryptohi/secsign.c:401,1
    - Dst: SGN_Update
      Src: /src/nss/lib/cryptohi/secsign.c:405,1
    - Dst: SGN_End
      Src: /src/nss/lib/cryptohi/secsign.c:409,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - cx
    - input
    - inputLen
    - result
    argTypes:
    - SGNContext*
    - unsigned char*
    - unsigned int
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 376
    functionDepth: 5
    functionLinenumber: 376
    functionLinenumberEnd: 410
    functionName: sgn_SingleShot
    functionSourceFile: /src/nss/lib/cryptohi/secsign.c
    functionUses: 0
    functionsReached:
    - SGN_Update
    - sgn_allocateSignatureItem
    - sgn_PKCS11ToX509Sig
    - PK11_DoesMechanismFlag
    - SGN_Begin
    - PK11_SignWithMechanism
    - SECITEM_ZfreeItem
    - SGN_End
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sgn_SingleShot(SGNContext *cx, const unsigned char *input,\n
      \              unsigned int inputLen, SECItem *result)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sgn_NewContext
      Src: /src/nss/lib/cryptohi/secsign.c:421,1
    - Dst: sgn_SingleShot
      Src: /src/nss/lib/cryptohi/secsign.c:426,1
    - Dst: SGN_DestroyContext
      Src: /src/nss/lib/cryptohi/secsign.c:431,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 6
    argNames:
    - res
    - buf
    - len
    - pk
    - algid
    - params
    argTypes:
    - SECItem*
    - unsigned char*
    - int
    - SECKEYPrivateKey*
    - SECOidTag
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 414
    functionDepth: 6
    functionLinenumber: 414
    functionLinenumberEnd: 433
    functionName: sec_SignData
    functionSourceFile: /src/nss/lib/cryptohi/secsign.c
    functionUses: 0
    functionsReached:
    - sgn_SingleShot
    - sgn_NewContext
    - SGN_DestroyContext
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sec_SignData(SECItem *res, const unsigned char *buf, int
      len,\n             SECKEYPrivateKey *pk, SECOidTag algid, SECItem *params)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sec_SignData
      Src: /src/nss/lib/cryptohi/secsign.c:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - res
    - buf
    - len
    - pk
    - algid
    argTypes:
    - SECItem*
    - unsigned char*
    - int
    - SECKEYPrivateKey*
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 439
    functionDepth: 7
    functionLinenumber: 439
    functionLinenumberEnd: 444
    functionName: SEC_SignData
    functionSourceFile: /src/nss/lib/cryptohi/secsign.c
    functionUses: 2
    functionsReached:
    - sec_SignData
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SEC_SignData(SECItem *res, const unsigned char *buf, int
      len,\n             SECKEYPrivateKey *pk, SECOidTag algid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/cryptohi/secsign.c:450,1
    - Dst: sec_SignData
      Src: /src/nss/lib/cryptohi/secsign.c:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - res
    - buf
    - len
    - pk
    - algid
    argTypes:
    - SECItem*
    - unsigned char*
    - int
    - SECKEYPrivateKey*
    - SECAlgorithmID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 446
    functionDepth: 7
    functionLinenumber: 446
    functionLinenumberEnd: 452
    functionName: SEC_SignDataWithAlgorithmID
    functionSourceFile: /src/nss/lib/cryptohi/secsign.c
    functionUses: 0
    functionsReached:
    - sec_SignData
    - SECOID_GetAlgorithmTag
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SEC_SignDataWithAlgorithmID(SECItem *res, const unsigned
      char *buf, int len,\n                            SECKEYPrivateKey *pk, SECAlgorithmID
      *algid)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PK11_SignatureLen
      Src: /src/nss/lib/cryptohi/secsign.c:508,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/secsign.c:525,1
    - Dst: sec_SignData
      Src: /src/nss/lib/cryptohi/secsign.c:531,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/cryptohi/secsign.c:536,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/lib/cryptohi/secsign.c:541,1
    - Dst: DER_Encode
      Src: /src/nss/lib/cryptohi/secsign.c:546,1
    - Dst: PORT_Free
      Src: /src/nss/lib/cryptohi/secsign.c:550,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 7
    argNames:
    - arena
    - result
    - buf
    - len
    - pk
    - algID
    - params
    argTypes:
    - PLArenaPool*
    - SECItem*
    - unsigned char*
    - int
    - SECKEYPrivateKey*
    - SECOidTag
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 486
    functionDepth: 7
    functionLinenumber: 486
    functionLinenumberEnd: 552
    functionName: sec_DerSignData
    functionSourceFile: /src/nss/lib/cryptohi/secsign.c
    functionUses: 0
    functionsReached:
    - DER_Encode
    - PORT_Free
    - SECOID_SetAlgorithmID
    - PORT_SetError
    - sec_SignData
    - PK11_SignatureLen
    - PORT_Memset
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sec_DerSignData(PLArenaPool *arena, SECItem *result,\n                const
      unsigned char *buf, int len, SECKEYPrivateKey *pk,\n                SECOidTag
      algID, SECItem *params)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sec_DerSignData
      Src: /src/nss/lib/cryptohi/secsign.c:559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - arena
    - result
    - buf
    - len
    - pk
    - algID
    argTypes:
    - PLArenaPool*
    - SECItem*
    - unsigned char*
    - int
    - SECKEYPrivateKey*
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 554
    functionDepth: 8
    functionLinenumber: 554
    functionLinenumberEnd: 560
    functionName: SEC_DerSignData
    functionSourceFile: /src/nss/lib/cryptohi/secsign.c
    functionUses: 2
    functionsReached:
    - sec_DerSignData
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SEC_DerSignData(PLArenaPool *arena, SECItem *result,\n                const
      unsigned char *buf, int len, SECKEYPrivateKey *pk,\n                SECOidTag
      algID)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/cryptohi/secsign.c:568,1
    - Dst: sec_DerSignData
      Src: /src/nss/lib/cryptohi/secsign.c:569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - arena
    - result
    - buf
    - len
    - pk
    - algID
    argTypes:
    - PLArenaPool*
    - SECItem*
    - unsigned char*
    - int
    - SECKEYPrivateKey*
    - SECAlgorithmID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 562
    functionDepth: 8
    functionLinenumber: 562
    functionLinenumberEnd: 570
    functionName: SEC_DerSignDataWithAlgorithmID
    functionSourceFile: /src/nss/lib/cryptohi/secsign.c
    functionUses: 2
    functionsReached:
    - sec_DerSignData
    - SECOID_GetAlgorithmTag
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SEC_DerSignDataWithAlgorithmID(PLArenaPool *arena, SECItem
      *result,\n                               const unsigned char *buf, int len,\n
      \                              SECKEYPrivateKey *pk,\n                               SECAlgorithmID
      *algID)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: NSS_OptionGet
      Src: /src/nss/lib/cryptohi/secsign.c:587,1
    - Dst: SECKEY_EnforceKeySize
      Src: /src/nss/lib/cryptohi/secsign.c:589,1
    - Dst: SECKEY_PrivateKeyStrengthInBits
      Src: /src/nss/lib/cryptohi/secsign.c:590,1
    - Dst: NSS_GetAlgorithmPolicy
      Src: /src/nss/lib/cryptohi/secsign.c:598,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/secsign.c:600,1
    - Dst: sec_GetEncAlgFromSigAlg
      Src: /src/nss/lib/cryptohi/secsign.c:604,1
    - Dst: SEC_GetSignatureAlgorithmOidTag
      Src: /src/nss/lib/cryptohi/secsign.c:605,1
    - Dst: NSS_GetAlgorithmPolicy
      Src: /src/nss/lib/cryptohi/secsign.c:607,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/secsign.c:609,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/cryptohi/secsign.c:615,1
    - Dst: SGN_CreateDigestInfo
      Src: /src/nss/lib/cryptohi/secsign.c:622,1
    - Dst: DER_Encode
      Src: /src/nss/lib/cryptohi/secsign.c:629,1
    - Dst: PK11_SignatureLen
      Src: /src/nss/lib/cryptohi/secsign.c:643,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/secsign.c:645,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/cryptohi/secsign.c:650,1
    - Dst: PK11_Sign
      Src: /src/nss/lib/cryptohi/secsign.c:658,1
    - Dst: PORT_Free
      Src: /src/nss/lib/cryptohi/secsign.c:660,1
    - Dst: SGN_DestroyDigestInfo
      Src: /src/nss/lib/cryptohi/secsign.c:665,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/cryptohi/secsign.c:667,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 68
    argCount: 4
    argNames:
    - privKey
    - algtag
    - result
    - digest
    argTypes:
    - SECKEYPrivateKey*
    - SECOidTag
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 572
    functionDepth: 2
    functionLinenumber: 572
    functionLinenumberEnd: 670
    functionName: SGN_Digest
    functionSourceFile: /src/nss/lib/cryptohi/secsign.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - SECKEY_EnforceKeySize
    - NSS_GetAlgorithmPolicy
    - NSS_OptionGet
    - SEC_GetSignatureAlgorithmOidTag
    - PORT_NewArena
    - DER_Encode
    - sec_GetEncAlgFromSigAlg
    - PK11_Sign
    - PORT_Free
    - SGN_DestroyDigestInfo
    - PORT_FreeArena
    - SGN_CreateDigestInfo
    - PORT_SetError
    - PK11_SignatureLen
    - SECKEY_PrivateKeyStrengthInBits
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SGN_Digest(SECKEYPrivateKey *privKey,\n           SECOidTag
      algtag, SECItem *result, SECItem *digest)"
  - BBCount: 26
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 71
    argCount: 2
    argNames:
    - keyType
    - hashAlgTag
    argTypes:
    - KeyType
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 672
    functionDepth: 0
    functionLinenumber: 672
    functionLinenumberEnd: 747
    functionName: SEC_GetSignatureAlgorithmOidTag
    functionSourceFile: /src/nss/lib/cryptohi/secsign.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag SEC_GetSignatureAlgorithmOidTag(KeyType keyType, SECOidTag
      hashAlgTag)
  - BBCount: 43
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/secsign.c:763,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/cryptohi/secsign.c:767,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/cryptohi/secsign.c:772,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/cryptohi/secsign.c:775,1
    - Dst: SEC_ASN1DecodeInteger
      Src: /src/nss/lib/cryptohi/secsign.c:787,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/secsign.c:793,1
    - Dst: PK11_GetPrivateModulusLen
      Src: /src/nss/lib/cryptohi/secsign.c:798,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/cryptohi/secsign.c:806,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/secsign.c:812,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/cryptohi/secsign.c:817,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/secsign.c:835,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/cryptohi/secsign.c:844,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/secsign.c:845,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/secsign.c:850,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/cryptohi/secsign.c:854,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/cryptohi/secsign.c:855,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/cryptohi/secsign.c:856,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/cryptohi/secsign.c:864,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/secsign.c:865,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/secsign.c:870,1
    - Dst: HASH_ResultLenByOidTag
      Src: /src/nss/lib/cryptohi/secsign.c:875,1
    - Dst: SEC_ASN1DecodeInteger
      Src: /src/nss/lib/cryptohi/secsign.c:878,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/cryptohi/secsign.c:886,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/cryptohi/secsign.c:901,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/lib/cryptohi/secsign.c:905,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/cryptohi/secsign.c:922,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/cryptohi/secsign.c:924,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/cryptohi/secsign.c:925,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/cryptohi/secsign.c:929,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/lib/cryptohi/secsign.c:933,1
    - Dst: PR_MIN
      Src: /src/nss/lib/cryptohi/secsign.c:948,1
    - Dst: SEC_ASN1EncodeInteger
      Src: /src/nss/lib/cryptohi/secsign.c:951,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/cryptohi/secsign.c:961,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 148
    argCount: 5
    argNames:
    - arena
    - result
    - hashAlgTag
    - params
    - key
    argTypes:
    - PLArenaPool*
    - SECItem*
    - SECOidTag
    - SECItem*
    - SECKEYPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 749
    functionDepth: 2
    functionLinenumber: 749
    functionLinenumberEnd: 963
    functionName: sec_CreateRSAPSSParameters
    functionSourceFile: /src/nss/lib/cryptohi/secsign.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - HASH_ResultLenByOidTag
    - SEC_ASN1DecodeInteger
    - SECOID_GetAlgorithmTag
    - PORT_ArenaZAlloc
    - SEC_ASN1EncodeItem
    - PR_MIN
    - PK11_GetPrivateModulusLen
    - SECOID_SetAlgorithmID
    - PORT_SetError
    - SEC_QuickDERDecodeItem
    - SEC_ASN1EncodeInteger
    - PORT_Memset
    - SEC_ASN1_GET
    linkageType: ''
    returnType: SECItem
    signature: "SECItem *\nsec_CreateRSAPSSParameters(PLArenaPool *arena,\n                           SECItem
      *result,\n                           SECOidTag hashAlgTag,\n                           const
      SECItem *params,\n                           const SECKEYPrivateKey *key)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sec_CreateRSAPSSParameters
      Src: /src/nss/lib/cryptohi/secsign.c:975,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/cryptohi/secsign.c:982,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/cryptohi/secsign.c:983,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 6
    argNames:
    - arena
    - result
    - signAlgTag
    - hashAlgTag
    - params
    - key
    argTypes:
    - PLArenaPool*
    - SECItem*
    - SECOidTag
    - SECOidTag
    - SECItem*
    - SECKEYPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 965
    functionDepth: 3
    functionLinenumber: 965
    functionLinenumberEnd: 987
    functionName: SEC_CreateSignatureAlgorithmParameters
    functionSourceFile: /src/nss/lib/cryptohi/secsign.c
    functionUses: 2
    functionsReached:
    - SECITEM_CopyItem
    - sec_CreateRSAPSSParameters
    - SECITEM_AllocItem
    linkageType: ''
    returnType: SECItem
    signature: "SECItem *\nSEC_CreateSignatureAlgorithmParameters(PLArenaPool *arena,\n
      \                                      SECItem *result,\n                                       SECOidTag
      signAlgTag,\n                                       SECOidTag hashAlgTag,\n
      \                                      const SECItem *params,\n                                       const
      SECKEYPrivateKey *key)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: load64_le
      Src: /src/nss/lib/freebl/chacha20poly1305-ppc.c:44,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/chacha20poly1305-ppc.c:46,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/chacha20poly1305-ppc.c:164,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/chacha20poly1305-ppc.c:165,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/chacha20poly1305-ppc.c:167,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/chacha20poly1305-ppc.c:282,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/chacha20poly1305-ppc.c:287,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/chacha20poly1305-ppc.c:289,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 43
    argCount: 3
    argNames:
    - ctx
    - len
    - text
    argTypes:
    - uint64_t*
    - uint32_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 404
    functionName: poly1305_padded_32
    functionSourceFile: /src/nss/lib/freebl/chacha20poly1305-ppc.c
    functionUses: 0
    functionsReached:
    - memcpy
    - load64_le
    linkageType: ''
    returnType: void
    signature: void poly1305_padded_32(uint64_t *ctx, uint32_t len, uint8_t *text)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Poly1305_32_poly1305_init
      Src: /src/nss/lib/freebl/chacha20poly1305-ppc.c:417,1
    - Dst: poly1305_padded_32
      Src: /src/nss/lib/freebl/chacha20poly1305-ppc.c:418,1
    - Dst: poly1305_padded_32
      Src: /src/nss/lib/freebl/chacha20poly1305-ppc.c:419,1
    - Dst: store64_le
      Src: /src/nss/lib/freebl/chacha20poly1305-ppc.c:420,1
    - Dst: store64_le
      Src: /src/nss/lib/freebl/chacha20poly1305-ppc.c:421,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/chacha20poly1305-ppc.c:425,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/chacha20poly1305-ppc.c:427,1
    - Dst: Hacl_Poly1305_32_poly1305_finish
      Src: /src/nss/lib/freebl/chacha20poly1305-ppc.c:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 6
    argNames:
    - k
    - aadlen
    - aad
    - mlen
    - m
    - out
    argTypes:
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 541
    functionName: poly1305_do_32
    functionSourceFile: /src/nss/lib/freebl/chacha20poly1305-ppc.c
    functionUses: 0
    functionsReached:
    - poly1305_padded_32
    - Hacl_Poly1305_32_poly1305_finish
    - Hacl_Poly1305_32_poly1305_init
    - store64_le
    - load64_le
    linkageType: ''
    returnType: void
    signature: "void poly1305_do_32(\n    uint8_t *k,\n    uint32_t aadlen,\n    uint8_t
      *aad,\n    uint32_t mlen,\n    uint8_t *m,\n    uint8_t *out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: chacha20vsx
      Src: /src/nss/lib/freebl/chacha20poly1305-ppc.c:554,1
    - Dst: chacha20vsx
      Src: /src/nss/lib/freebl/chacha20poly1305-ppc.c:556,1
    - Dst: poly1305_do_32
      Src: /src/nss/lib/freebl/chacha20poly1305-ppc.c:558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 8
    argNames:
    - k
    - n
    - aadlen
    - aad
    - mlen
    - m
    - cipher
    - mac
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 559
    functionName: Chacha20Poly1305_vsx_aead_encrypt
    functionSourceFile: /src/nss/lib/freebl/chacha20poly1305-ppc.c
    functionUses: 0
    functionsReached:
    - poly1305_do_32
    - chacha20vsx
    linkageType: ''
    returnType: void
    signature: "void Chacha20Poly1305_vsx_aead_encrypt(\n    uint8_t *k,\n    uint8_t
      *n,\n    uint32_t aadlen,\n    uint8_t *aad,\n    uint32_t mlen,\n    uint8_t
      *m,\n    uint8_t *cipher,\n    uint8_t *mac)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: chacha20vsx
      Src: /src/nss/lib/freebl/chacha20poly1305-ppc.c:574,1
    - Dst: poly1305_do_32
      Src: /src/nss/lib/freebl/chacha20poly1305-ppc.c:576,1
    - Dst: FStar_UInt8_eq_mask
      Src: /src/nss/lib/freebl/chacha20poly1305-ppc.c:579,1
    - Dst: chacha20vsx
      Src: /src/nss/lib/freebl/chacha20poly1305-ppc.c:584,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 8
    argNames:
    - k
    - n
    - aadlen
    - aad
    - mlen
    - m
    - cipher
    - mac
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 561
    functionDepth: 1
    functionLinenumber: 561
    functionLinenumberEnd: 588
    functionName: Chacha20Poly1305_vsx_aead_decrypt
    functionSourceFile: /src/nss/lib/freebl/chacha20poly1305-ppc.c
    functionUses: 0
    functionsReached:
    - poly1305_do_32
    - chacha20vsx
    - FStar_UInt8_eq_mask
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t Chacha20Poly1305_vsx_aead_decrypt(\n    uint8_t *k,\n    uint8_t
      *n,\n    uint32_t aadlen,\n    uint8_t *aad,\n    uint32_t mlen,\n    uint8_t
      *m,\n    uint8_t *cipher,\n    uint8_t *mac)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctxtype
    - ','
    - mmm
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 46
    functionName: RawHashBase
    functionSourceFile: /src/nss/lib/freebl/rawhash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RawHashBase(ctxtype, mmm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctxtype
    - ','
    - mmm
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 67
    functionName: RawHashExtra
    functionSourceFile: /src/nss/lib/freebl/rawhash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RawHashExtra(ctxtype, mmm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: null_hash_new_context
    functionSourceFile: /src/nss/lib/freebl/rawhash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void *

      null_hash_new_context(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/rawhash.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: null_hash_clone_context
    functionSourceFile: /src/nss/lib/freebl/rawhash.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: void
    signature: 'void *

      null_hash_clone_context(void *v)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: null_hash_begin
    functionSourceFile: /src/nss/lib/freebl/rawhash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void null_hash_begin(void *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - v
    - input
    - length
    argTypes:
    - void*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: null_hash_update
    functionSourceFile: /src/nss/lib/freebl/rawhash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void null_hash_update(void *v, const unsigned char *input, unsigned
      int length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - v
    - output
    - outLen
    - maxOut
    argTypes:
    - void*
    - unsigned char*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 103
    functionName: null_hash_end
    functionSourceFile: /src/nss/lib/freebl/rawhash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void null_hash_end(void *v, unsigned char *output, unsigned int *outLen,\n
      \             unsigned int maxOut)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/rawhash.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - b
    argTypes:
    - void*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 109
    functionName: null_hash_destroy_context
    functionSourceFile: /src/nss/lib/freebl/rawhash.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: void
    signature: void null_hash_destroy_context(void *v, PRBool b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rawhash.c:240,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - hashType
    argTypes:
    - HASH_HashType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 244
    functionName: HASH_GetRawHashObject
    functionSourceFile: /src/nss/lib/freebl/rawhash.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: SECHashObject
    signature: 'SECHashObject *

      HASH_GetRawHashObject(HASH_HashType hashType)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/chacha20poly1305.c:95,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/chacha20poly1305.c:99,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/chacha20poly1305.c:104,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/chacha20poly1305.c:105,1
    - Dst: NSS_CLASSIFY
      Src: /src/nss/lib/freebl/chacha20poly1305.c:107,1
    - Dst: NSS_CLASSIFY
      Src: /src/nss/lib/freebl/chacha20poly1305.c:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 6
    argNames:
    - ctx
    - key
    - keyLen
    - nonce
    - nonceLen
    - ctr
    argTypes:
    - ChaCha20Context*
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 112
    functionName: ChaCha20_InitContext
    functionSourceFile: /src/nss/lib/freebl/chacha20poly1305.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PORT_Memcpy
    - NSS_CLASSIFY
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ChaCha20_InitContext(ChaCha20Context *ctx, const unsigned
      char *key,\n                     unsigned int keyLen, const unsigned char *nonce,\n
      \                    unsigned int nonceLen, PRUint32 ctr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_New
      Src: /src/nss/lib/freebl/chacha20poly1305.c:124,1
    - Dst: ChaCha20_InitContext
      Src: /src/nss/lib/freebl/chacha20poly1305.c:129,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/chacha20poly1305.c:130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - key
    - keyLen
    - nonce
    - nonceLen
    - ctr
    argTypes:
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 136
    functionName: ChaCha20_CreateContext
    functionSourceFile: /src/nss/lib/freebl/chacha20poly1305.c
    functionUses: 1
    functionsReached:
    - PORT_Free
    - ChaCha20_InitContext
    - PORT_New
    linkageType: ''
    returnType: ChaCha20Context
    signature: "ChaCha20Context *\nChaCha20_CreateContext(const unsigned char *key,
      unsigned int keyLen,\n                       const unsigned char *nonce, unsigned
      int nonceLen,\n                       PRUint32 ctr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/chacha20poly1305.c:142,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/chacha20poly1305.c:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - freeit
    argTypes:
    - ChaCha20Context*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 147
    functionName: ChaCha20_DestroyContext
    functionSourceFile: /src/nss/lib/freebl/chacha20poly1305.c
    functionUses: 1
    functionsReached:
    - PORT_Free
    - PORT_Memset
    linkageType: ''
    returnType: void
    signature: void ChaCha20_DestroyContext(ChaCha20Context *ctx, PRBool freeit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/chacha20poly1305.c:158,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/chacha20poly1305.c:162,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/chacha20poly1305.c:166,1
    - Dst: NSS_CLASSIFY
      Src: /src/nss/lib/freebl/chacha20poly1305.c:169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - ctx
    - key
    - keyLen
    - tagLen
    argTypes:
    - ChaCha20Poly1305Context*
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 173
    functionName: ChaCha20Poly1305_InitContext
    functionSourceFile: /src/nss/lib/freebl/chacha20poly1305.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PORT_Memcpy
    - NSS_CLASSIFY
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ChaCha20Poly1305_InitContext(ChaCha20Poly1305Context *ctx,\n
      \                            const unsigned char *key, unsigned int keyLen,\n
      \                            unsigned int tagLen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_New
      Src: /src/nss/lib/freebl/chacha20poly1305.c:184,1
    - Dst: ChaCha20Poly1305_InitContext
      Src: /src/nss/lib/freebl/chacha20poly1305.c:189,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/chacha20poly1305.c:190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - key
    - keyLen
    - tagLen
    argTypes:
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 196
    functionName: ChaCha20Poly1305_CreateContext
    functionSourceFile: /src/nss/lib/freebl/chacha20poly1305.c
    functionUses: 1
    functionsReached:
    - PORT_Free
    - ChaCha20Poly1305_InitContext
    - PORT_New
    linkageType: ''
    returnType: ChaCha20Poly1305Context
    signature: "ChaCha20Poly1305Context *\nChaCha20Poly1305_CreateContext(const unsigned
      char *key, unsigned int keyLen,\n                               unsigned int
      tagLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/chacha20poly1305.c:202,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/chacha20poly1305.c:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - freeit
    argTypes:
    - ChaCha20Poly1305Context*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 207
    functionName: ChaCha20Poly1305_DestroyContext
    functionSourceFile: /src/nss/lib/freebl/chacha20poly1305.c
    functionUses: 1
    functionsReached:
    - PORT_Free
    - PORT_Memset
    linkageType: ''
    returnType: void
    signature: void ChaCha20Poly1305_DestroyContext(ChaCha20Poly1305Context *ctx,
      PRBool freeit)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: avx2_support
      Src: /src/nss/lib/freebl/chacha20poly1305.c:216,1
    - Dst: Hacl_Chacha20_Vec256_chacha20_encrypt_256
      Src: /src/nss/lib/freebl/chacha20poly1305.c:217,1
    - Dst: ssse3_support
      Src: /src/nss/lib/freebl/chacha20poly1305.c:223,1
    - Dst: sse4_1_support
      Src: /src/nss/lib/freebl/chacha20poly1305.c:223,1
    - Dst: avx_support
      Src: /src/nss/lib/freebl/chacha20poly1305.c:223,1
    - Dst: Hacl_Chacha20_Vec128_chacha20_encrypt_128
      Src: /src/nss/lib/freebl/chacha20poly1305.c:224,1
    - Dst: ppc_crypto_support
      Src: /src/nss/lib/freebl/chacha20poly1305.c:231,1
    - Dst: chacha20vsx
      Src: /src/nss/lib/freebl/chacha20poly1305.c:232,1
    - Dst: Hacl_Chacha20_chacha20_encrypt
      Src: /src/nss/lib/freebl/chacha20poly1305.c:237,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 6
    argNames:
    - output
    - block
    - len
    - k
    - nonce
    - ctr
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 240
    functionName: ChaCha20Xor
    functionSourceFile: /src/nss/lib/freebl/chacha20poly1305.c
    functionUses: 0
    functionsReached:
    - Hacl_Chacha20_chacha20_encrypt
    - chacha20vsx
    - avx_support
    - sse4_1_support
    - ssse3_support
    - avx2_support
    - ppc_crypto_support
    - Hacl_Chacha20_Vec128_chacha20_encrypt_128
    - Hacl_Chacha20_Vec256_chacha20_encrypt_256
    linkageType: ''
    returnType: void
    signature: "void ChaCha20Xor(uint8_t *output, uint8_t *block, uint32_t len, uint8_t
      *k,\n            uint8_t *nonce, uint32_t ctr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/chacha20poly1305.c:254,1
    - Dst: ChaCha20Xor
      Src: /src/nss/lib/freebl/chacha20poly1305.c:258,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - output
    - block
    - len
    - k
    - nonce
    - ctr
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned char*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 243
    functionDepth: 2
    functionLinenumber: 243
    functionLinenumberEnd: 262
    functionName: ChaCha20_Xor
    functionSourceFile: /src/nss/lib/freebl/chacha20poly1305.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    - ChaCha20Xor
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ChaCha20_Xor(unsigned char *output, const unsigned char
      *block, unsigned int len,\n             const unsigned char *k, const unsigned
      char *nonce, PRUint32 ctr)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/chacha20poly1305.c:276,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/chacha20poly1305.c:283,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/chacha20poly1305.c:288,1
    - Dst: avx2_support
      Src: /src/nss/lib/freebl/chacha20poly1305.c:294,1
    - Dst: Hacl_Chacha20Poly1305_256_aead_encrypt
      Src: /src/nss/lib/freebl/chacha20poly1305.c:295,1
    - Dst: ssse3_support
      Src: /src/nss/lib/freebl/chacha20poly1305.c:303,1
    - Dst: sse4_1_support
      Src: /src/nss/lib/freebl/chacha20poly1305.c:303,1
    - Dst: avx_support
      Src: /src/nss/lib/freebl/chacha20poly1305.c:303,1
    - Dst: Hacl_Chacha20Poly1305_128_aead_encrypt
      Src: /src/nss/lib/freebl/chacha20poly1305.c:304,1
    - Dst: ppc_crypto_support
      Src: /src/nss/lib/freebl/chacha20poly1305.c:313,1
    - Dst: Chacha20Poly1305_vsx_aead_encrypt
      Src: /src/nss/lib/freebl/chacha20poly1305.c:314,1
    - Dst: Hacl_Chacha20Poly1305_32_aead_encrypt
      Src: /src/nss/lib/freebl/chacha20poly1305.c:321,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 39
    argCount: 10
    argNames:
    - ctx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    - nonce
    - nonceLen
    - ad
    - adLen
    argTypes:
    - ChaCha20Poly1305Context*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 331
    functionName: ChaCha20Poly1305_Seal
    functionSourceFile: /src/nss/lib/freebl/chacha20poly1305.c
    functionUses: 1
    functionsReached:
    - avx_support
    - Hacl_Chacha20Poly1305_256_aead_encrypt
    - sse4_1_support
    - avx2_support
    - ssse3_support
    - PORT_SetError
    - Chacha20Poly1305_vsx_aead_encrypt
    - ppc_crypto_support
    - Hacl_Chacha20Poly1305_128_aead_encrypt
    - Hacl_Chacha20Poly1305_32_aead_encrypt
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ChaCha20Poly1305_Seal(const ChaCha20Poly1305Context *ctx,
      unsigned char *output,\n                      unsigned int *outputLen, unsigned
      int maxOutputLen,\n                      const unsigned char *input, unsigned
      int inputLen,\n                      const unsigned char *nonce, unsigned int
      nonceLen,\n                      const unsigned char *ad, unsigned int adLen)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/chacha20poly1305.c:346,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/chacha20poly1305.c:350,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/chacha20poly1305.c:355,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/chacha20poly1305.c:360,1
    - Dst: avx2_support
      Src: /src/nss/lib/freebl/chacha20poly1305.c:367,1
    - Dst: Hacl_Chacha20Poly1305_256_aead_decrypt
      Src: /src/nss/lib/freebl/chacha20poly1305.c:368,1
    - Dst: ssse3_support
      Src: /src/nss/lib/freebl/chacha20poly1305.c:376,1
    - Dst: sse4_1_support
      Src: /src/nss/lib/freebl/chacha20poly1305.c:376,1
    - Dst: avx_support
      Src: /src/nss/lib/freebl/chacha20poly1305.c:376,1
    - Dst: Hacl_Chacha20Poly1305_128_aead_decrypt
      Src: /src/nss/lib/freebl/chacha20poly1305.c:377,1
    - Dst: ppc_crypto_support
      Src: /src/nss/lib/freebl/chacha20poly1305.c:386,1
    - Dst: Chacha20Poly1305_vsx_aead_decrypt
      Src: /src/nss/lib/freebl/chacha20poly1305.c:387,1
    - Dst: Hacl_Chacha20Poly1305_32_aead_decrypt
      Src: /src/nss/lib/freebl/chacha20poly1305.c:394,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/chacha20poly1305.c:402,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 10
    argNames:
    - ctx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    - nonce
    - nonceLen
    - ad
    - adLen
    argTypes:
    - ChaCha20Poly1305Context*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 333
    functionDepth: 2
    functionLinenumber: 333
    functionLinenumberEnd: 409
    functionName: ChaCha20Poly1305_Open
    functionSourceFile: /src/nss/lib/freebl/chacha20poly1305.c
    functionUses: 1
    functionsReached:
    - Hacl_Chacha20Poly1305_32_aead_decrypt
    - Hacl_Chacha20Poly1305_256_aead_decrypt
    - avx_support
    - Hacl_Chacha20Poly1305_128_aead_decrypt
    - sse4_1_support
    - avx2_support
    - ssse3_support
    - PORT_SetError
    - ppc_crypto_support
    - Chacha20Poly1305_vsx_aead_decrypt
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ChaCha20Poly1305_Open(const ChaCha20Poly1305Context *ctx,
      unsigned char *output,\n                      unsigned int *outputLen, unsigned
      int maxOutputLen,\n                      const unsigned char *input, unsigned
      int inputLen,\n                      const unsigned char *nonce, unsigned int
      nonceLen,\n                      const unsigned char *ad, unsigned int adLen)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/chacha20poly1305.c:424,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/chacha20poly1305.c:431,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/chacha20poly1305.c:436,1
    - Dst: avx2_support
      Src: /src/nss/lib/freebl/chacha20poly1305.c:442,1
    - Dst: Hacl_Chacha20Poly1305_256_aead_encrypt
      Src: /src/nss/lib/freebl/chacha20poly1305.c:443,1
    - Dst: ssse3_support
      Src: /src/nss/lib/freebl/chacha20poly1305.c:451,1
    - Dst: sse4_1_support
      Src: /src/nss/lib/freebl/chacha20poly1305.c:451,1
    - Dst: avx_support
      Src: /src/nss/lib/freebl/chacha20poly1305.c:451,1
    - Dst: Hacl_Chacha20Poly1305_128_aead_encrypt
      Src: /src/nss/lib/freebl/chacha20poly1305.c:452,1
    - Dst: ppc_crypto_support
      Src: /src/nss/lib/freebl/chacha20poly1305.c:460,1
    - Dst: Chacha20Poly1305_vsx_aead_encrypt
      Src: /src/nss/lib/freebl/chacha20poly1305.c:461,1
    - Dst: Hacl_Chacha20Poly1305_32_aead_encrypt
      Src: /src/nss/lib/freebl/chacha20poly1305.c:468,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 39
    argCount: 11
    argNames:
    - ctx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    - nonce
    - nonceLen
    - ad
    - adLen
    - outTag
    argTypes:
    - ChaCha20Poly1305Context*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 478
    functionName: ChaCha20Poly1305_Encrypt
    functionSourceFile: /src/nss/lib/freebl/chacha20poly1305.c
    functionUses: 0
    functionsReached:
    - avx_support
    - Hacl_Chacha20Poly1305_256_aead_encrypt
    - sse4_1_support
    - avx2_support
    - ssse3_support
    - PORT_SetError
    - Chacha20Poly1305_vsx_aead_encrypt
    - ppc_crypto_support
    - Hacl_Chacha20Poly1305_128_aead_encrypt
    - Hacl_Chacha20Poly1305_32_aead_encrypt
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ChaCha20Poly1305_Encrypt(const ChaCha20Poly1305Context *ctx,\n
      \                        unsigned char *output, unsigned int *outputLen,\n                         unsigned
      int maxOutputLen, const unsigned char *input,\n                         unsigned
      int inputLen, const unsigned char *nonce,\n                         unsigned
      int nonceLen, const unsigned char *ad,\n                         unsigned int
      adLen, unsigned char *outTag)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/chacha20poly1305.c:494,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/chacha20poly1305.c:499,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/chacha20poly1305.c:506,1
    - Dst: avx2_support
      Src: /src/nss/lib/freebl/chacha20poly1305.c:514,1
    - Dst: Hacl_Chacha20Poly1305_256_aead_decrypt
      Src: /src/nss/lib/freebl/chacha20poly1305.c:515,1
    - Dst: ssse3_support
      Src: /src/nss/lib/freebl/chacha20poly1305.c:523,1
    - Dst: sse4_1_support
      Src: /src/nss/lib/freebl/chacha20poly1305.c:523,1
    - Dst: avx_support
      Src: /src/nss/lib/freebl/chacha20poly1305.c:523,1
    - Dst: Hacl_Chacha20Poly1305_128_aead_decrypt
      Src: /src/nss/lib/freebl/chacha20poly1305.c:524,1
    - Dst: ppc_crypto_support
      Src: /src/nss/lib/freebl/chacha20poly1305.c:533,1
    - Dst: Chacha20Poly1305_vsx_aead_decrypt
      Src: /src/nss/lib/freebl/chacha20poly1305.c:534,1
    - Dst: Hacl_Chacha20Poly1305_32_aead_decrypt
      Src: /src/nss/lib/freebl/chacha20poly1305.c:541,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/chacha20poly1305.c:549,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 44
    argCount: 11
    argNames:
    - ctx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    - nonce
    - nonceLen
    - ad
    - adLen
    - tagIn
    argTypes:
    - ChaCha20Poly1305Context*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 480
    functionDepth: 2
    functionLinenumber: 480
    functionLinenumberEnd: 556
    functionName: ChaCha20Poly1305_Decrypt
    functionSourceFile: /src/nss/lib/freebl/chacha20poly1305.c
    functionUses: 0
    functionsReached:
    - Hacl_Chacha20Poly1305_32_aead_decrypt
    - Hacl_Chacha20Poly1305_256_aead_decrypt
    - avx_support
    - Hacl_Chacha20Poly1305_128_aead_decrypt
    - sse4_1_support
    - avx2_support
    - ssse3_support
    - PORT_SetError
    - ppc_crypto_support
    - Chacha20Poly1305_vsx_aead_decrypt
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ChaCha20Poly1305_Decrypt(const ChaCha20Poly1305Context *ctx,\n
      \                        unsigned char *output, unsigned int *outputLen,\n                         unsigned
      int maxOutputLen, const unsigned char *input,\n                         unsigned
      int inputLen, const unsigned char *nonce,\n                         unsigned
      int nonceLen, const unsigned char *ad,\n                         unsigned int
      adLen, /* const */ unsigned char *tagIn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 98
    functionName: gcmHashContextStr
    functionSourceFile: /src/nss/lib/freebl/gcm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pre_align
    signature: pre_align gcmHashContextStr
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - b0
    - ','
    - b1
    - ','
    - b2
    - ','
    - b3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 16
    functionName: WORD_LE
    functionSourceFile: /src/nss/lib/freebl/rijndael_tables.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WORD_LE(b0, b1, b2, b3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - b0
    - ','
    - b1
    - ','
    - b2
    - ','
    - b3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 19
    functionName: WORD_BE
    functionSourceFile: /src/nss/lib/freebl/rijndael_tables.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WORD_BE(b0, b1, b2, b3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PRUint8
    - PRUint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 72
    functionName: gf_multiply
    functionSourceFile: /src/nss/lib/freebl/rijndael_tables.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRUint8
    signature: PRUint8 gf_multiply(PRUint8 a, PRUint8 b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/lib/freebl/rijndael_tables.c:81,1
    - Dst: fprintf
      Src: /src/nss/lib/freebl/rijndael_tables.c:82,1
    - Dst: WORD_LE
      Src: /src/nss/lib/freebl/rijndael_tables.c:84,1
    - Dst: gf_multiply
      Src: /src/nss/lib/freebl/rijndael_tables.c:84,1
    - Dst: gf_multiply
      Src: /src/nss/lib/freebl/rijndael_tables.c:85,1
    - Dst: gf_multiply
      Src: /src/nss/lib/freebl/rijndael_tables.c:86,1
    - Dst: gf_multiply
      Src: /src/nss/lib/freebl/rijndael_tables.c:87,1
    - Dst: fprintf
      Src: /src/nss/lib/freebl/rijndael_tables.c:89,1
    - Dst: fprintf
      Src: /src/nss/lib/freebl/rijndael_tables.c:92,1
    - Dst: fprintf
      Src: /src/nss/lib/freebl/rijndael_tables.c:95,1
    - Dst: fprintf
      Src: /src/nss/lib/freebl/rijndael_tables.c:96,1
    - Dst: fprintf
      Src: /src/nss/lib/freebl/rijndael_tables.c:97,1
    - Dst: WORD_BE
      Src: /src/nss/lib/freebl/rijndael_tables.c:99,1
    - Dst: gf_multiply
      Src: /src/nss/lib/freebl/rijndael_tables.c:99,1
    - Dst: gf_multiply
      Src: /src/nss/lib/freebl/rijndael_tables.c:100,1
    - Dst: gf_multiply
      Src: /src/nss/lib/freebl/rijndael_tables.c:101,1
    - Dst: gf_multiply
      Src: /src/nss/lib/freebl/rijndael_tables.c:102,1
    - Dst: fprintf
      Src: /src/nss/lib/freebl/rijndael_tables.c:104,1
    - Dst: fprintf
      Src: /src/nss/lib/freebl/rijndael_tables.c:107,1
    - Dst: fprintf
      Src: /src/nss/lib/freebl/rijndael_tables.c:110,1
    - Dst: fprintf
      Src: /src/nss/lib/freebl/rijndael_tables.c:111,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 7
    argNames:
    - table
    - Sx
    - file
    - m0
    - m1
    - m2
    - m3
    argTypes:
    - char*
    - PRUint8[]
    - FILE*
    - unsigned char
    - unsigned char
    - unsigned char
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 112
    functionName: make_T_Table
    functionSourceFile: /src/nss/lib/freebl/rijndael_tables.c
    functionUses: 0
    functionsReached:
    - fprintf
    - WORD_LE
    - gf_multiply
    - WORD_BE
    linkageType: ''
    returnType: void
    signature: "void make_T_Table(char *table, const PRUint8 Sx[256], FILE *file,\n
      \            unsigned char m0, unsigned char m1,\n             unsigned char
      m2, unsigned char m3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/lib/freebl/rijndael_tables.c:119,1
    - Dst: fprintf
      Src: /src/nss/lib/freebl/rijndael_tables.c:120,1
    - Dst: gf_multiply
      Src: /src/nss/lib/freebl/rijndael_tables.c:122,1
    - Dst: gf_multiply
      Src: /src/nss/lib/freebl/rijndael_tables.c:123,1
    - Dst: gf_multiply
      Src: /src/nss/lib/freebl/rijndael_tables.c:124,1
    - Dst: gf_multiply
      Src: /src/nss/lib/freebl/rijndael_tables.c:125,1
    - Dst: fprintf
      Src: /src/nss/lib/freebl/rijndael_tables.c:126,1
    - Dst: fprintf
      Src: /src/nss/lib/freebl/rijndael_tables.c:128,1
    - Dst: fprintf
      Src: /src/nss/lib/freebl/rijndael_tables.c:129,1
    - Dst: fprintf
      Src: /src/nss/lib/freebl/rijndael_tables.c:130,1
    - Dst: gf_multiply
      Src: /src/nss/lib/freebl/rijndael_tables.c:132,1
    - Dst: gf_multiply
      Src: /src/nss/lib/freebl/rijndael_tables.c:133,1
    - Dst: gf_multiply
      Src: /src/nss/lib/freebl/rijndael_tables.c:134,1
    - Dst: gf_multiply
      Src: /src/nss/lib/freebl/rijndael_tables.c:135,1
    - Dst: fprintf
      Src: /src/nss/lib/freebl/rijndael_tables.c:136,1
    - Dst: fprintf
      Src: /src/nss/lib/freebl/rijndael_tables.c:138,1
    - Dst: fprintf
      Src: /src/nss/lib/freebl/rijndael_tables.c:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 6
    argNames:
    - num
    - file
    - m0
    - m1
    - m2
    - m3
    argTypes:
    - int
    - FILE*
    - PRUint8
    - PRUint8
    - PRUint8
    - PRUint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 140
    functionName: make_InvMixCol_Table
    functionSourceFile: /src/nss/lib/freebl/rijndael_tables.c
    functionUses: 0
    functionsReached:
    - fprintf
    - gf_multiply
    linkageType: ''
    returnType: void
    signature: void make_InvMixCol_Table(int num, FILE *file, PRUint8 m0, PRUint8
      m1, PRUint8 m2, PRUint8 m3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/nss/lib/freebl/rijndael_tables.c:149,1
    - Dst: fprintf
      Src: /src/nss/lib/freebl/rijndael_tables.c:151,1
    - Dst: fprintf
      Src: /src/nss/lib/freebl/rijndael_tables.c:152,1
    - Dst: fprintf
      Src: /src/nss/lib/freebl/rijndael_tables.c:154,1
    - Dst: fprintf
      Src: /src/nss/lib/freebl/rijndael_tables.c:157,1
    - Dst: fprintf
      Src: /src/nss/lib/freebl/rijndael_tables.c:159,1
    - Dst: fprintf
      Src: /src/nss/lib/freebl/rijndael_tables.c:161,1
    - Dst: fprintf
      Src: /src/nss/lib/freebl/rijndael_tables.c:164,1
    - Dst: fprintf
      Src: /src/nss/lib/freebl/rijndael_tables.c:165,1
    - Dst: make_T_Table
      Src: /src/nss/lib/freebl/rijndael_tables.c:168,1
    - Dst: make_T_Table
      Src: /src/nss/lib/freebl/rijndael_tables.c:170,1
    - Dst: make_T_Table
      Src: /src/nss/lib/freebl/rijndael_tables.c:172,1
    - Dst: make_T_Table
      Src: /src/nss/lib/freebl/rijndael_tables.c:174,1
    - Dst: make_T_Table
      Src: /src/nss/lib/freebl/rijndael_tables.c:176,1
    - Dst: make_T_Table
      Src: /src/nss/lib/freebl/rijndael_tables.c:178,1
    - Dst: make_T_Table
      Src: /src/nss/lib/freebl/rijndael_tables.c:180,1
    - Dst: make_T_Table
      Src: /src/nss/lib/freebl/rijndael_tables.c:182,1
    - Dst: make_InvMixCol_Table
      Src: /src/nss/lib/freebl/rijndael_tables.c:184,1
    - Dst: make_InvMixCol_Table
      Src: /src/nss/lib/freebl/rijndael_tables.c:185,1
    - Dst: make_InvMixCol_Table
      Src: /src/nss/lib/freebl/rijndael_tables.c:186,1
    - Dst: make_InvMixCol_Table
      Src: /src/nss/lib/freebl/rijndael_tables.c:187,1
    - Dst: fprintf
      Src: /src/nss/lib/freebl/rijndael_tables.c:188,1
    - Dst: fprintf
      Src: /src/nss/lib/freebl/rijndael_tables.c:190,1
    - Dst: fprintf
      Src: /src/nss/lib/freebl/rijndael_tables.c:191,1
    - Dst: fprintf
      Src: /src/nss/lib/freebl/rijndael_tables.c:194,1
    - Dst: WORD_LE
      Src: /src/nss/lib/freebl/rijndael_tables.c:194,1
    - Dst: gf_multiply
      Src: /src/nss/lib/freebl/rijndael_tables.c:197,1
    - Dst: fprintf
      Src: /src/nss/lib/freebl/rijndael_tables.c:199,1
    - Dst: fprintf
      Src: /src/nss/lib/freebl/rijndael_tables.c:200,1
    - Dst: fprintf
      Src: /src/nss/lib/freebl/rijndael_tables.c:201,1
    - Dst: fprintf
      Src: /src/nss/lib/freebl/rijndael_tables.c:204,1
    - Dst: WORD_BE
      Src: /src/nss/lib/freebl/rijndael_tables.c:204,1
    - Dst: gf_multiply
      Src: /src/nss/lib/freebl/rijndael_tables.c:207,1
    - Dst: fprintf
      Src: /src/nss/lib/freebl/rijndael_tables.c:209,1
    - Dst: fprintf
      Src: /src/nss/lib/freebl/rijndael_tables.c:210,1
    - Dst: fclose
      Src: /src/nss/lib/freebl/rijndael_tables.c:211,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 213
    functionName: main
    functionSourceFile: /src/nss/lib/freebl/rijndael_tables.c
    functionUses: 6
    functionsReached:
    - fclose
    - gf_multiply
    - make_T_Table
    - fprintf
    - WORD_LE
    - fopen
    - WORD_BE
    - make_InvMixCol_Table
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: HALFPTR
    functionSourceFile: /src/nss/lib/freebl/des.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HALFPTR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: SHORTPTR
    functionSourceFile: /src/nss/lib/freebl/des.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHORTPTR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: BYTEPTR
    functionSourceFile: /src/nss/lib/freebl/des.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTEPTR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - unsigned char
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 50
    functionName: constantTimeEQ8
    functionSourceFile: /src/nss/lib/freebl/rsapkcs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char constantTimeEQ8(unsigned char a, unsigned char b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: constantTimeEQ8
      Src: /src/nss/lib/freebl/rsapkcs.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - a
    - b
    - len
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 66
    functionName: constantTimeCompare
    functionSourceFile: /src/nss/lib/freebl/rsapkcs.c
    functionUses: 0
    functionsReached:
    - constantTimeEQ8
    linkageType: ''
    returnType: unsigned char
    signature: "unsigned char constantTimeCompare(const unsigned char *a,\n                    const
      unsigned char *b,\n                    unsigned int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - c
    - a
    - b
    argTypes:
    - unsigned int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 78
    functionName: constantTimeCondition
    functionSourceFile: /src/nss/lib/freebl/rsapkcs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int constantTimeCondition(unsigned int c,\n                      unsigned
      int a,\n                      unsigned int b)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - modulus
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 90
    functionName: rsa_modulusLen
    functionSourceFile: /src/nss/lib/freebl/rsapkcs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int rsa_modulusLen(SECItem *modulus)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - modulus
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 117
    functionName: rsa_modulusBits
    functionSourceFile: /src/nss/lib/freebl/rsapkcs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int rsa_modulusBits(SECItem *modulus)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Alloc
      Src: /src/nss/lib/freebl/rsapkcs.c:134,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/rsapkcs.c:160,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/freebl/rsapkcs.c:162,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/rsapkcs.c:165,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/rsapkcs.c:168,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/rsapkcs.c:189,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/freebl/rsapkcs.c:191,1
    - Dst: RNG_GenerateGlobalRandomBytes
      Src: /src/nss/lib/freebl/rsapkcs.c:195,1
    - Dst: RNG_GenerateGlobalRandomBytes
      Src: /src/nss/lib/freebl/rsapkcs.c:205,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/freebl/rsapkcs.c:220,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsapkcs.c:221,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/rsapkcs.c:226,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/rsapkcs.c:230,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/freebl/rsapkcs.c:231,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 64
    argCount: 3
    argNames:
    - modulusLen
    - blockType
    - data
    argTypes:
    - unsigned
    - RSA_BlockType
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 236
    functionName: rsa_FormatOneBlock
    functionSourceFile: /src/nss/lib/freebl/rsapkcs.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_Assert
    - PORT_ZFree
    - PORT_Memcpy
    - PORT_SetError
    - RNG_GenerateGlobalRandomBytes
    - PORT_Memset
    linkageType: ''
    returnType: unsigned char
    signature: "unsigned char *\nrsa_FormatOneBlock(unsigned modulusLen,\n                   RSA_BlockType
      blockType,\n                   SECItem *data)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: modulusLen < (3 + RSA_BLOCK_MIN_PAD_LEN) || data->len >
      Src: /src/nss/lib/freebl/rsapkcs.c:254,1
    - Dst: rsa_FormatOneBlock
      Src: /src/nss/lib/freebl/rsapkcs.c:257,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/freebl/rsapkcs.c:275,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/rsapkcs.c:277,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/rsapkcs.c:282,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 4
    argNames:
    - result
    - modulusLen
    - blockType
    - data
    argTypes:
    - SECItem*
    - unsigned
    - RSA_BlockType
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 289
    functionName: rsa_FormatBlock
    functionSourceFile: /src/nss/lib/freebl/rsapkcs.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_Memcpy
    - PORT_ZAlloc
    - rsa_FormatOneBlock
    - modulusLen < (3 + RSA_BLOCK_MIN_PAD_LEN) || data->len >
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus rsa_FormatBlock(SECItem *result,\n                unsigned
      modulusLen,\n                RSA_BlockType blockType,\n                SECItem
      *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: HASH_GetRawHashObject
      Src: /src/nss/lib/freebl/rsapkcs.c:311,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/freebl/rsapkcs.c:334,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/rsapkcs.c:340,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/rsapkcs.c:341,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 5
    argNames:
    - hashAlg
    - mask
    - maskLen
    - mgfSeed
    - mgfSeedLen
    argTypes:
    - HASH_HashType
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 348
    functionName: MGF1
    functionSourceFile: /src/nss/lib/freebl/rsapkcs.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_Free
    - PORT_Memcpy
    - HASH_GetRawHashObject
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus MGF1(HASH_HashType hashAlg,\n     unsigned char *mask,\n
      \    unsigned int maskLen,\n     const unsigned char *mgfSeed,\n     unsigned
      int mgfSeedLen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rsa_modulusLen
      Src: /src/nss/lib/freebl/rsapkcs.c:360,1
    - Dst: rsa_FormatBlock
      Src: /src/nss/lib/freebl/rsapkcs.c:370,1
    - Dst: RSA_PrivateKeyOpDoubleChecked
      Src: /src/nss/lib/freebl/rsapkcs.c:374,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/freebl/rsapkcs.c:379,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 6
    argNames:
    - key
    - output
    - outputLen
    - maxOutputLen
    - data
    - dataLen
    argTypes:
    - RSAPrivateKey*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 351
    functionDepth: 2
    functionLinenumber: 351
    functionLinenumberEnd: 381
    functionName: RSA_SignRaw
    functionSourceFile: /src/nss/lib/freebl/rsapkcs.c
    functionUses: 0
    functionsReached:
    - PORT_ZFree
    - rsa_FormatBlock
    - RSA_PrivateKeyOpDoubleChecked
    - rsa_modulusLen
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus RSA_SignRaw(RSAPrivateKey *key,\n            unsigned char
      *output,\n            unsigned int *outputLen,\n            unsigned int maxOutputLen,\n
      \           const unsigned char *data,\n            unsigned int dataLen)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rsa_modulusLen
      Src: /src/nss/lib/freebl/rsapkcs.c:392,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/freebl/rsapkcs.c:400,1
    - Dst: RSA_PublicKeyOp
      Src: /src/nss/lib/freebl/rsapkcs.c:404,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/freebl/rsapkcs.c:413,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/rsapkcs.c:416,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/rsapkcs.c:420,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 5
    argNames:
    - key
    - sig
    - sigLen
    - hash
    - hashLen
    argTypes:
    - RSAPublicKey*
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 423
    functionName: RSA_CheckSignRaw
    functionSourceFile: /src/nss/lib/freebl/rsapkcs.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_Memcmp
    - PORT_Free
    - RSA_PublicKeyOp
    - rsa_modulusLen
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus RSA_CheckSignRaw(RSAPublicKey *key,\n                 const
      unsigned char *sig,\n                 unsigned int sigLen,\n                 const
      unsigned char *hash,\n                 unsigned int hashLen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rsa_modulusLen
      Src: /src/nss/lib/freebl/rsapkcs.c:435,1
    - Dst: RSA_PublicKeyOp
      Src: /src/nss/lib/freebl/rsapkcs.c:442,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 6
    argNames:
    - key
    - data
    - dataLen
    - maxDataLen
    - sig
    - sigLen
    argTypes:
    - RSAPublicKey*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 451
    functionName: RSA_CheckSignRecoverRaw
    functionSourceFile: /src/nss/lib/freebl/rsapkcs.c
    functionUses: 0
    functionsReached:
    - RSA_PublicKeyOp
    - rsa_modulusLen
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus RSA_CheckSignRecoverRaw(RSAPublicKey *key,\n                        unsigned
      char *data,\n                        unsigned int *dataLen,\n                        unsigned
      int maxDataLen,\n                        const unsigned char *sig,\n                        unsigned
      int sigLen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rsa_modulusLen
      Src: /src/nss/lib/freebl/rsapkcs.c:463,1
    - Dst: rsa_FormatBlock
      Src: /src/nss/lib/freebl/rsapkcs.c:474,1
    - Dst: RSA_PublicKeyOp
      Src: /src/nss/lib/freebl/rsapkcs.c:478,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/freebl/rsapkcs.c:482,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/freebl/rsapkcs.c:488,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 6
    argNames:
    - key
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - RSAPublicKey*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 454
    functionDepth: 2
    functionLinenumber: 454
    functionLinenumberEnd: 490
    functionName: RSA_EncryptRaw
    functionSourceFile: /src/nss/lib/freebl/rsapkcs.c
    functionUses: 0
    functionsReached:
    - PORT_ZFree
    - rsa_FormatBlock
    - RSA_PublicKeyOp
    - rsa_modulusLen
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus RSA_EncryptRaw(RSAPublicKey *key,\n               unsigned
      char *output,\n               unsigned int *outputLen,\n               unsigned
      int maxOutputLen,\n               const unsigned char *input,\n               unsigned
      int inputLen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rsa_modulusLen
      Src: /src/nss/lib/freebl/rsapkcs.c:502,1
    - Dst: RSA_PrivateKeyOp
      Src: /src/nss/lib/freebl/rsapkcs.c:509,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 6
    argNames:
    - key
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - RSAPrivateKey*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 518
    functionName: RSA_DecryptRaw
    functionSourceFile: /src/nss/lib/freebl/rsapkcs.c
    functionUses: 0
    functionsReached:
    - RSA_PrivateKeyOp
    - rsa_modulusLen
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus RSA_DecryptRaw(RSAPrivateKey *key,\n               unsigned
      char *output,\n               unsigned int *outputLen,\n               unsigned
      int maxOutputLen,\n               const unsigned char *input,\n               unsigned
      int inputLen)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: HASH_GetRawHashObject
      Src: /src/nss/lib/freebl/rsapkcs.c:552,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsapkcs.c:556,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsapkcs.c:563,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/freebl/rsapkcs.c:572,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsapkcs.c:574,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/freebl/rsapkcs.c:579,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsapkcs.c:581,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/rsapkcs.c:585,1
    - Dst: MGF1
      Src: /src/nss/lib/freebl/rsapkcs.c:588,1
    - Dst: MGF1
      Src: /src/nss/lib/freebl/rsapkcs.c:595,1
    - Dst: constantTimeEQ8
      Src: /src/nss/lib/freebl/rsapkcs.c:609,1
    - Dst: constantTimeCompare
      Src: /src/nss/lib/freebl/rsapkcs.c:612,1
    - Dst: constantTimeEQ8
      Src: /src/nss/lib/freebl/rsapkcs.c:619,1
    - Dst: constantTimeEQ8
      Src: /src/nss/lib/freebl/rsapkcs.c:620,1
    - Dst: constantTimeCondition
      Src: /src/nss/lib/freebl/rsapkcs.c:625,1
    - Dst: constantTimeCondition
      Src: /src/nss/lib/freebl/rsapkcs.c:636,1
    - Dst: constantTimeCondition
      Src: /src/nss/lib/freebl/rsapkcs.c:647,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsapkcs.c:656,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsapkcs.c:666,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/rsapkcs.c:671,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/freebl/rsapkcs.c:676,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/freebl/rsapkcs.c:678,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 68
    argCount: 9
    argNames:
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    - hashAlg
    - maskHashAlg
    - label
    - labelLen
    argTypes:
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    - HASH_HashType
    - HASH_HashType
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 529
    functionDepth: 2
    functionLinenumber: 529
    functionLinenumberEnd: 680
    functionName: eme_oaep_decode
    functionSourceFile: /src/nss/lib/freebl/rsapkcs.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_ZFree
    - PORT_Memcpy
    - PORT_SetError
    - HASH_GetRawHashObject
    - constantTimeCompare
    - MGF1
    - constantTimeEQ8
    - constantTimeCondition
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus eme_oaep_decode(unsigned char *output,\n                unsigned
      int *outputLen,\n                unsigned int maxOutputLen,\n                const
      unsigned char *input,\n                unsigned int inputLen,\n                HASH_HashType
      hashAlg,\n                HASH_HashType maskHashAlg,\n                const
      unsigned char *label,\n                unsigned int labelLen)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: HASH_GetRawHashObject
      Src: /src/nss/lib/freebl/rsapkcs.c:708,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/rsapkcs.c:709,1
    - Dst: emLen < reservedLen || inputLen >
      Src: /src/nss/lib/freebl/rsapkcs.c:713,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsapkcs.c:714,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsapkcs.c:745,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/rsapkcs.c:756,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/rsapkcs.c:767,1
    - Dst: RNG_GenerateGlobalRandomBytes
      Src: /src/nss/lib/freebl/rsapkcs.c:771,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/rsapkcs.c:777,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/freebl/rsapkcs.c:782,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsapkcs.c:784,1
    - Dst: MGF1
      Src: /src/nss/lib/freebl/rsapkcs.c:787,1
    - Dst: MGF1
      Src: /src/nss/lib/freebl/rsapkcs.c:793,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/freebl/rsapkcs.c:798,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 47
    argCount: 10
    argNames:
    - em
    - emLen
    - input
    - inputLen
    - hashAlg
    - maskHashAlg
    - label
    - labelLen
    - seed
    - seedLen
    argTypes:
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - HASH_HashType
    - HASH_HashType
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 688
    functionDepth: 1
    functionLinenumber: 688
    functionLinenumberEnd: 800
    functionName: eme_oaep_encode
    functionSourceFile: /src/nss/lib/freebl/rsapkcs.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_Assert
    - PORT_ZFree
    - PORT_Memcpy
    - emLen < reservedLen || inputLen >
    - PORT_SetError
    - RNG_GenerateGlobalRandomBytes
    - HASH_GetRawHashObject
    - PORT_Memset
    - MGF1
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus eme_oaep_encode(unsigned char *em,\n                unsigned
      int emLen,\n                const unsigned char *input,\n                unsigned
      int inputLen,\n                HASH_HashType hashAlg,\n                HASH_HashType
      maskHashAlg,\n                const unsigned char *label,\n                unsigned
      int labelLen,\n                const unsigned char *seed,\n                unsigned
      int seedLen)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rsa_modulusLen
      Src: /src/nss/lib/freebl/rsapkcs.c:817,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsapkcs.c:821,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsapkcs.c:826,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsapkcs.c:832,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/freebl/rsapkcs.c:836,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsapkcs.c:838,1
    - Dst: eme_oaep_encode
      Src: /src/nss/lib/freebl/rsapkcs.c:841,1
    - Dst: RSA_PublicKeyOp
      Src: /src/nss/lib/freebl/rsapkcs.c:846,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/rsapkcs.c:852,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 12
    argNames:
    - key
    - hashAlg
    - maskHashAlg
    - label
    - labelLen
    - seed
    - seedLen
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - RSAPublicKey*
    - HASH_HashType
    - HASH_HashType
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 802
    functionDepth: 2
    functionLinenumber: 802
    functionLinenumberEnd: 854
    functionName: RSA_EncryptOAEP
    functionSourceFile: /src/nss/lib/freebl/rsapkcs.c
    functionUses: 1
    functionsReached:
    - PORT_Alloc
    - PORT_Free
    - PORT_SetError
    - RSA_PublicKeyOp
    - rsa_modulusLen
    - eme_oaep_encode
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus RSA_EncryptOAEP(RSAPublicKey *key,\n                HASH_HashType
      hashAlg,\n                HASH_HashType maskHashAlg,\n                const
      unsigned char *label,\n                unsigned int labelLen,\n                const
      unsigned char *seed,\n                unsigned int seedLen,\n                unsigned
      char *output,\n                unsigned int *outputLen,\n                unsigned
      int maxOutputLen,\n                const unsigned char *input,\n                unsigned
      int inputLen)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rsa_modulusLen
      Src: /src/nss/lib/freebl/rsapkcs.c:869,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsapkcs.c:873,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsapkcs.c:878,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsapkcs.c:884,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/freebl/rsapkcs.c:888,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsapkcs.c:890,1
    - Dst: RSA_PrivateKeyOpDoubleChecked
      Src: /src/nss/lib/freebl/rsapkcs.c:894,1
    - Dst: eme_oaep_decode
      Src: /src/nss/lib/freebl/rsapkcs.c:898,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/freebl/rsapkcs.c:904,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 10
    argNames:
    - key
    - hashAlg
    - maskHashAlg
    - label
    - labelLen
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - RSAPrivateKey*
    - HASH_HashType
    - HASH_HashType
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 856
    functionDepth: 3
    functionLinenumber: 856
    functionLinenumberEnd: 906
    functionName: RSA_DecryptOAEP
    functionSourceFile: /src/nss/lib/freebl/rsapkcs.c
    functionUses: 1
    functionsReached:
    - PORT_Alloc
    - PORT_ZFree
    - RSA_PrivateKeyOpDoubleChecked
    - eme_oaep_decode
    - PORT_SetError
    - rsa_modulusLen
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus RSA_DecryptOAEP(RSAPrivateKey *key,\n                HASH_HashType
      hashAlg,\n                HASH_HashType maskHashAlg,\n                const
      unsigned char *label,\n                unsigned int labelLen,\n                unsigned
      char *output,\n                unsigned int *outputLen,\n                unsigned
      int maxOutputLen,\n                const unsigned char *input,\n                unsigned
      int inputLen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rsa_modulusLen
      Src: /src/nss/lib/freebl/rsapkcs.c:918,1
    - Dst: rsa_FormatBlock
      Src: /src/nss/lib/freebl/rsapkcs.c:929,1
    - Dst: RSA_PublicKeyOp
      Src: /src/nss/lib/freebl/rsapkcs.c:934,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/freebl/rsapkcs.c:938,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/freebl/rsapkcs.c:944,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 6
    argNames:
    - key
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - RSAPublicKey*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 909
    functionDepth: 2
    functionLinenumber: 909
    functionLinenumberEnd: 946
    functionName: RSA_EncryptBlock
    functionSourceFile: /src/nss/lib/freebl/rsapkcs.c
    functionUses: 0
    functionsReached:
    - PORT_ZFree
    - rsa_FormatBlock
    - RSA_PublicKeyOp
    - rsa_modulusLen
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus RSA_EncryptBlock(RSAPublicKey *key,\n                 unsigned
      char *output,\n                 unsigned int *outputLen,\n                 unsigned
      int maxOutputLen,\n                 const unsigned char *input,\n                 unsigned
      int inputLen)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/rsapkcs.c:960,1
    - Dst: HMAC_Create
      Src: /src/nss/lib/freebl/rsapkcs.c:979,1
    - Dst: PORT_SafeZero
      Src: /src/nss/lib/freebl/rsapkcs.c:981,1
    - Dst: HMAC_Begin
      Src: /src/nss/lib/freebl/rsapkcs.c:984,1
    - Dst: HMAC_Update
      Src: /src/nss/lib/freebl/rsapkcs.c:985,1
    - Dst: HMAC_Finish
      Src: /src/nss/lib/freebl/rsapkcs.c:986,1
    - Dst: PORT_SafeZero
      Src: /src/nss/lib/freebl/rsapkcs.c:988,1
    - Dst: HMAC_Destroy
      Src: /src/nss/lib/freebl/rsapkcs.c:989,1
    - Dst: HMAC_ReInit
      Src: /src/nss/lib/freebl/rsapkcs.c:995,1
    - Dst: PORT_SafeZero
      Src: /src/nss/lib/freebl/rsapkcs.c:996,1
    - Dst: HMAC_Destroy
      Src: /src/nss/lib/freebl/rsapkcs.c:998,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 37
    argCount: 4
    argNames:
    - hash
    - key
    - input
    - inputLen
    argTypes:
    - SECHashObject*
    - RSAPrivateKey*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 948
    functionDepth: 1
    functionLinenumber: 948
    functionLinenumberEnd: 1003
    functionName: rsa_GetHMACContext
    functionSourceFile: /src/nss/lib/freebl/rsapkcs.c
    functionUses: 0
    functionsReached:
    - HMAC_Finish
    - HMAC_ReInit
    - HMAC_Destroy
    - HMAC_Begin
    - PORT_Memset
    - PORT_SafeZero
    - HMAC_Update
    - HMAC_Create
    linkageType: ''
    returnType: HMACContext
    signature: "HMACContext *\nrsa_GetHMACContext(const SECHashObject *hash, RSAPrivateKey
      *key,\n                   const unsigned char *input, unsigned int inputLen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: HMAC_Begin
      Src: /src/nss/lib/freebl/rsapkcs.c:1022,1
    - Dst: HMAC_Update
      Src: /src/nss/lib/freebl/rsapkcs.c:1023,1
    - Dst: HMAC_Update
      Src: /src/nss/lib/freebl/rsapkcs.c:1024,1
    - Dst: HMAC_Update
      Src: /src/nss/lib/freebl/rsapkcs.c:1025,1
    - Dst: HMAC_Finish
      Src: /src/nss/lib/freebl/rsapkcs.c:1026,1
    - Dst: HMAC_Begin
      Src: /src/nss/lib/freebl/rsapkcs.c:1037,1
    - Dst: HMAC_Update
      Src: /src/nss/lib/freebl/rsapkcs.c:1038,1
    - Dst: HMAC_Update
      Src: /src/nss/lib/freebl/rsapkcs.c:1039,1
    - Dst: HMAC_Update
      Src: /src/nss/lib/freebl/rsapkcs.c:1040,1
    - Dst: HMAC_Finish
      Src: /src/nss/lib/freebl/rsapkcs.c:1041,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/rsapkcs.c:1045,1
    - Dst: PORT_SafeZero
      Src: /src/nss/lib/freebl/rsapkcs.c:1046,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 6
    argNames:
    - hmac
    - label
    - labelLen
    - hashLength
    - output
    - length
    argTypes:
    - HMACContext*
    - char*
    - int
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1005
    functionDepth: 0
    functionLinenumber: 1005
    functionLinenumberEnd: 1049
    functionName: rsa_HMACPrf
    functionSourceFile: /src/nss/lib/freebl/rsapkcs.c
    functionUses: 0
    functionsReached:
    - PORT_Memcpy
    - HMAC_Finish
    - HMAC_Begin
    - PORT_SafeZero
    - HMAC_Update
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus rsa_HMACPrf(HMACContext *hmac, const char *label, int labelLen,\n
      \           int hashLength, unsigned char *output, int length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - len
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1067
      start: 1058
    functionDepth: 0
    functionLinenumber: 1058
    functionLinenumberEnd: 1067
    functionName: makeMask16
    functionSourceFile: /src/nss/lib/freebl/rsapkcs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int makeMask16(int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1070
      start: 1069
    functionDepth: 0
    functionLinenumber: 1069
    functionLinenumberEnd: 1070
    functionName: STRING_AND_LENGTH
    functionSourceFile: /src/nss/lib/freebl/rsapkcs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRING_AND_LENGTH(s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: makeMask16
      Src: /src/nss/lib/freebl/rsapkcs.c:1079,1
    - Dst: rsa_HMACPrf
      Src: /src/nss/lib/freebl/rsapkcs.c:1080,1
    - Dst: STRING_AND_LENGTH
      Src: /src/nss/lib/freebl/rsapkcs.c:1080,1
    - Dst: PORT_CT_SEL
      Src: /src/nss/lib/freebl/rsapkcs.c:1088,1
    - Dst: PORT_CT_LT
      Src: /src/nss/lib/freebl/rsapkcs.c:1088,1
    - Dst: PORT_SafeZero
      Src: /src/nss/lib/freebl/rsapkcs.c:1091,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - hmac
    - hashLen
    - maxLegalLen
    argTypes:
    - HMACContext*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1093
      start: 1070
    functionDepth: 1
    functionLinenumber: 1070
    functionLinenumberEnd: 1093
    functionName: rsa_GetErrorLength
    functionSourceFile: /src/nss/lib/freebl/rsapkcs.c
    functionUses: 0
    functionsReached:
    - STRING_AND_LENGTH
    - PORT_CT_SEL
    - rsa_HMACPrf
    - PORT_CT_LT
    - PORT_SafeZero
    - makeMask16
    linkageType: ''
    returnType: int
    signature: int rsa_GetErrorLength(HMACContext *hmac, int hashLen, int maxLegalLen)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: rsa_modulusLen
      Src: /src/nss/lib/freebl/rsapkcs.c:1114,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsapkcs.c:1130,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/freebl/rsapkcs.c:1135,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/freebl/rsapkcs.c:1139,1
    - Dst: HASH_GetRawHashObject
      Src: /src/nss/lib/freebl/rsapkcs.c:1143,1
    - Dst: rsa_GetHMACContext
      Src: /src/nss/lib/freebl/rsapkcs.c:1151,1
    - Dst: rsa_GetErrorLength
      Src: /src/nss/lib/freebl/rsapkcs.c:1155,1
    - Dst: rsa_HMACPrf
      Src: /src/nss/lib/freebl/rsapkcs.c:1163,1
    - Dst: STRING_AND_LENGTH
      Src: /src/nss/lib/freebl/rsapkcs.c:1163,1
    - Dst: HMAC_Destroy
      Src: /src/nss/lib/freebl/rsapkcs.c:1169,1
    - Dst: RSA_PrivateKeyOp
      Src: /src/nss/lib/freebl/rsapkcs.c:1175,1
    - Dst: PORT_CT_NE
      Src: /src/nss/lib/freebl/rsapkcs.c:1177,1
    - Dst: PORT_CT_NE
      Src: /src/nss/lib/freebl/rsapkcs.c:1178,1
    - Dst: PORT_CT_NE
      Src: /src/nss/lib/freebl/rsapkcs.c:1178,1
    - Dst: PORT_CT_EQ
      Src: /src/nss/lib/freebl/rsapkcs.c:1182,1
    - Dst: PORT_CT_EQ
      Src: /src/nss/lib/freebl/rsapkcs.c:1187,1
    - Dst: PORT_CT_EQ
      Src: /src/nss/lib/freebl/rsapkcs.c:1187,1
    - Dst: PORT_CT_SEL
      Src: /src/nss/lib/freebl/rsapkcs.c:1188,1
    - Dst: PORT_CT_GE
      Src: /src/nss/lib/freebl/rsapkcs.c:1191,1
    - Dst: PORT_CT_SEL
      Src: /src/nss/lib/freebl/rsapkcs.c:1193,1
    - Dst: PORT_CT_SEL
      Src: /src/nss/lib/freebl/rsapkcs.c:1210,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/rsapkcs.c:1215,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/rsapkcs.c:1216,1
    - Dst: HMAC_Destroy
      Src: /src/nss/lib/freebl/rsapkcs.c:1222,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/rsapkcs.c:1224,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/rsapkcs.c:1225,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 68
    argCount: 6
    argNames:
    - key
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - RSAPrivateKey*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1228
      start: 1104
    functionDepth: 2
    functionLinenumber: 1104
    functionLinenumberEnd: 1228
    functionName: RSA_DecryptBlock
    functionSourceFile: /src/nss/lib/freebl/rsapkcs.c
    functionUses: 0
    functionsReached:
    - STRING_AND_LENGTH
    - PORT_CT_GE
    - PORT_CT_SEL
    - RSA_PrivateKeyOp
    - PORT_Free
    - PORT_ZAlloc
    - rsa_HMACPrf
    - PORT_CT_EQ
    - HMAC_Destroy
    - PORT_SetError
    - rsa_GetHMACContext
    - rsa_GetErrorLength
    - HASH_GetRawHashObject
    - PORT_CT_NE
    - rsa_modulusLen
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus RSA_DecryptBlock(RSAPrivateKey *key,\n                 unsigned
      char *output,\n                 unsigned int *outputLen,\n                 unsigned
      int maxOutputLen,\n                 const unsigned char *input,\n                 unsigned
      int inputLen)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: HASH_GetRawHashObject
      Src: /src/nss/lib/freebl/rsapkcs.c:1254,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsapkcs.c:1259,1
    - Dst: RNG_GenerateGlobalRandomBytes
      Src: /src/nss/lib/freebl/rsapkcs.c:1265,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/rsapkcs.c:1270,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsapkcs.c:1277,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/rsapkcs.c:1288,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/freebl/rsapkcs.c:1292,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsapkcs.c:1294,1
    - Dst: MGF1
      Src: /src/nss/lib/freebl/rsapkcs.c:1297,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/rsapkcs.c:1302,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 40
    argCount: 8
    argNames:
    - em
    - emLen
    - emBits
    - mHash
    - hashAlg
    - maskHashAlg
    - salt
    - saltLen
    argTypes:
    - unsigned char*
    - unsigned int
    - unsigned int
    - unsigned char*
    - HASH_HashType
    - HASH_HashType
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1237
    functionDepth: 1
    functionLinenumber: 1237
    functionLinenumberEnd: 1311
    functionName: RSA_EMSAEncodePSS
    functionSourceFile: /src/nss/lib/freebl/rsapkcs.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_Memcpy
    - PORT_Free
    - PORT_SetError
    - RNG_GenerateGlobalRandomBytes
    - HASH_GetRawHashObject
    - PORT_Memset
    - MGF1
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus RSA_EMSAEncodePSS(unsigned char *em,\n                  unsigned
      int emLen,\n                  unsigned int emBits,\n                  const
      unsigned char *mHash,\n                  HASH_HashType hashAlg,\n                  HASH_HashType
      maskHashAlg,\n                  const unsigned char *salt,\n                  unsigned
      int saltLen)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: HASH_GetRawHashObject
      Src: /src/nss/lib/freebl/rsapkcs.c:1338,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsapkcs.c:1344,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsapkcs.c:1351,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/freebl/rsapkcs.c:1356,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsapkcs.c:1358,1
    - Dst: MGF1
      Src: /src/nss/lib/freebl/rsapkcs.c:1362,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/rsapkcs.c:1375,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsapkcs.c:1376,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/rsapkcs.c:1381,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsapkcs.c:1382,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/freebl/rsapkcs.c:1387,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/rsapkcs.c:1389,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsapkcs.c:1390,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/rsapkcs.c:1395,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/rsapkcs.c:1396,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsapkcs.c:1397,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/rsapkcs.c:1407,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/freebl/rsapkcs.c:1410,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsapkcs.c:1411,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/rsapkcs.c:1417,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 62
    argCount: 7
    argNames:
    - mHash
    - em
    - emLen
    - emBits
    - hashAlg
    - maskHashAlg
    - saltLen
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned int
    - unsigned int
    - HASH_HashType
    - HASH_HashType
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1419
      start: 1320
    functionDepth: 1
    functionLinenumber: 1320
    functionLinenumberEnd: 1419
    functionName: emsa_pss_verify
    functionSourceFile: /src/nss/lib/freebl/rsapkcs.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_Memcmp
    - PORT_Free
    - PORT_SetError
    - HASH_GetRawHashObject
    - MGF1
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus emsa_pss_verify(const unsigned char *mHash,\n                const
      unsigned char *em,\n                unsigned int emLen,\n                unsigned
      int emBits,\n                HASH_HashType hashAlg,\n                HASH_HashType
      maskHashAlg,\n                unsigned int saltLen)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rsa_modulusLen
      Src: /src/nss/lib/freebl/rsapkcs.c:1434,1
    - Dst: rsa_modulusBits
      Src: /src/nss/lib/freebl/rsapkcs.c:1435,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsapkcs.c:1440,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsapkcs.c:1445,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/freebl/rsapkcs.c:1449,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsapkcs.c:1451,1
    - Dst: RSA_EMSAEncodePSS
      Src: /src/nss/lib/freebl/rsapkcs.c:1461,1
    - Dst: RSA_PrivateKeyOpDoubleChecked
      Src: /src/nss/lib/freebl/rsapkcs.c:1467,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/rsapkcs.c:1471,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 10
    argNames:
    - key
    - hashAlg
    - maskHashAlg
    - salt
    - saltLength
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - RSAPrivateKey*
    - HASH_HashType
    - HASH_HashType
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1473
      start: 1421
    functionDepth: 2
    functionLinenumber: 1421
    functionLinenumberEnd: 1473
    functionName: RSA_SignPSS
    functionSourceFile: /src/nss/lib/freebl/rsapkcs.c
    functionUses: 1
    functionsReached:
    - rsa_modulusBits
    - PORT_Alloc
    - RSA_PrivateKeyOpDoubleChecked
    - PORT_Free
    - PORT_SetError
    - RSA_EMSAEncodePSS
    - rsa_modulusLen
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus RSA_SignPSS(RSAPrivateKey *key,\n            HASH_HashType
      hashAlg,\n            HASH_HashType maskHashAlg,\n            const unsigned
      char *salt,\n            unsigned int saltLength,\n            unsigned char
      *output,\n            unsigned int *outputLen,\n            unsigned int maxOutputLen,\n
      \           const unsigned char *input,\n            unsigned int inputLen)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rsa_modulusLen
      Src: /src/nss/lib/freebl/rsapkcs.c:1486,1
    - Dst: rsa_modulusBits
      Src: /src/nss/lib/freebl/rsapkcs.c:1487,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsapkcs.c:1492,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsapkcs.c:1497,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/freebl/rsapkcs.c:1501,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsapkcs.c:1503,1
    - Dst: RSA_PublicKeyOp
      Src: /src/nss/lib/freebl/rsapkcs.c:1507,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/rsapkcs.c:1509,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsapkcs.c:1510,1
    - Dst: emsa_pss_verify
      Src: /src/nss/lib/freebl/rsapkcs.c:1519,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/rsapkcs.c:1522,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 8
    argNames:
    - key
    - hashAlg
    - maskHashAlg
    - saltLength
    - sig
    - sigLen
    - hash
    - hashLen
    argTypes:
    - RSAPublicKey*
    - HASH_HashType
    - HASH_HashType
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1524
      start: 1475
    functionDepth: 2
    functionLinenumber: 1475
    functionLinenumberEnd: 1524
    functionName: RSA_CheckSignPSS
    functionSourceFile: /src/nss/lib/freebl/rsapkcs.c
    functionUses: 1
    functionsReached:
    - rsa_modulusBits
    - PORT_Alloc
    - PORT_Free
    - PORT_SetError
    - RSA_PublicKeyOp
    - rsa_modulusLen
    - emsa_pss_verify
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus RSA_CheckSignPSS(RSAPublicKey *key,\n                 HASH_HashType
      hashAlg,\n                 HASH_HashType maskHashAlg,\n                 unsigned
      int saltLength,\n                 const unsigned char *sig,\n                 unsigned
      int sigLen,\n                 const unsigned char *hash,\n                 unsigned
      int hashLen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rsa_modulusLen
      Src: /src/nss/lib/freebl/rsapkcs.c:1535,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsapkcs.c:1540,1
    - Dst: rsa_FormatBlock
      Src: /src/nss/lib/freebl/rsapkcs.c:1544,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsapkcs.c:1547,1
    - Dst: RSA_PrivateKeyOpDoubleChecked
      Src: /src/nss/lib/freebl/rsapkcs.c:1552,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/freebl/rsapkcs.c:1557,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 6
    argNames:
    - key
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - RSAPrivateKey*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1560
      start: 1526
    functionDepth: 2
    functionLinenumber: 1526
    functionLinenumberEnd: 1560
    functionName: RSA_Sign
    functionSourceFile: /src/nss/lib/freebl/rsapkcs.c
    functionUses: 0
    functionsReached:
    - PORT_ZFree
    - RSA_PrivateKeyOpDoubleChecked
    - PORT_SetError
    - rsa_modulusLen
    - rsa_FormatBlock
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus RSA_Sign(RSAPrivateKey *key,\n         unsigned char *output,\n
      \        unsigned int *outputLen,\n         unsigned int maxOutputLen,\n         const
      unsigned char *input,\n         unsigned int inputLen)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: rsa_modulusLen
      Src: /src/nss/lib/freebl/rsapkcs.c:1570,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsapkcs.c:1575,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsapkcs.c:1586,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/freebl/rsapkcs.c:1590,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsapkcs.c:1592,1
    - Dst: RSA_PublicKeyOp
      Src: /src/nss/lib/freebl/rsapkcs.c:1596,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsapkcs.c:1597,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsapkcs.c:1606,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsapkcs.c:1611,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsapkcs.c:1616,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/freebl/rsapkcs.c:1623,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/rsapkcs.c:1629,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 48
    argCount: 5
    argNames:
    - key
    - sig
    - sigLen
    - data
    - dataLen
    argTypes:
    - RSAPublicKey*
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1632
      start: 1562
    functionDepth: 0
    functionLinenumber: 1562
    functionLinenumberEnd: 1632
    functionName: RSA_CheckSign
    functionSourceFile: /src/nss/lib/freebl/rsapkcs.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_Memcmp
    - PORT_Free
    - PORT_SetError
    - RSA_PublicKeyOp
    - rsa_modulusLen
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus RSA_CheckSign(RSAPublicKey *key,\n              const unsigned
      char *sig,\n              unsigned int sigLen,\n              const unsigned
      char *data,\n              unsigned int dataLen)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: rsa_modulusLen
      Src: /src/nss/lib/freebl/rsapkcs.c:1643,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsapkcs.c:1649,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/freebl/rsapkcs.c:1653,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsapkcs.c:1655,1
    - Dst: RSA_PublicKeyOp
      Src: /src/nss/lib/freebl/rsapkcs.c:1659,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsapkcs.c:1660,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsapkcs.c:1671,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsapkcs.c:1680,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsapkcs.c:1686,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsapkcs.c:1690,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsapkcs.c:1694,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/rsapkcs.c:1698,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/rsapkcs.c:1703,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 58
    argCount: 6
    argNames:
    - key
    - output
    - outputLen
    - maxOutputLen
    - sig
    - sigLen
    argTypes:
    - RSAPublicKey*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1706
      start: 1634
    functionDepth: 0
    functionLinenumber: 1634
    functionLinenumberEnd: 1706
    functionName: RSA_CheckSignRecover
    functionSourceFile: /src/nss/lib/freebl/rsapkcs.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_Memcpy
    - PORT_Free
    - PORT_SetError
    - RSA_PublicKeyOp
    - rsa_modulusLen
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus RSA_CheckSignRecover(RSAPublicKey *key,\n                     unsigned
      char *output,\n                     unsigned int *outputLen,\n                     unsigned
      int maxOutputLen,\n                     const unsigned char *sig,\n                     unsigned
      int sigLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: shaCompress
      Src: /src/nss/lib/freebl/sha1-armv8.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SHA1Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: SHA1_Compress_Native
    functionSourceFile: /src/nss/lib/freebl/sha1-armv8.c
    functionUses: 0
    functionsReached:
    - shaCompress
    linkageType: ''
    returnType: void
    signature: void SHA1_Compress_Native(SHA1Context *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/sha1-armv8.c:60,1
    - Dst: shaCompress
      Src: /src/nss/lib/freebl/sha1-armv8.c:65,1
    - Dst: shaCompress
      Src: /src/nss/lib/freebl/sha1-armv8.c:71,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/sha1-armv8.c:76,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 3
    argNames:
    - ctx
    - dataIn
    - len
    argTypes:
    - SHA1Context*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 78
    functionName: SHA1_Update_Native
    functionSourceFile: /src/nss/lib/freebl/sha1-armv8.c
    functionUses: 0
    functionsReached:
    - memcpy
    - shaCompress
    linkageType: ''
    returnType: void
    signature: void SHA1_Update_Native(SHA1Context *ctx, const unsigned char *dataIn,
      unsigned int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vdupq_n_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:88,1
    - Dst: vdupq_n_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:89,1
    - Dst: vdupq_n_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:90,1
    - Dst: vdupq_n_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:91,1
    - Dst: vld1q_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:93,1
    - Dst: XH
      Src: /src/nss/lib/freebl/sha1-armv8.c:93,1
    - Dst: XH
      Src: /src/nss/lib/freebl/sha1-armv8.c:94,1
    - Dst: vld1q_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:99,1
    - Dst: vld1q_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:100,1
    - Dst: vld1q_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:101,1
    - Dst: vld1q_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:102,1
    - Dst: vreinterpretq_u32_u8
      Src: /src/nss/lib/freebl/sha1-armv8.c:104,1
    - Dst: vrev32q_u8
      Src: /src/nss/lib/freebl/sha1-armv8.c:104,1
    - Dst: vreinterpretq_u8_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:104,1
    - Dst: vreinterpretq_u32_u8
      Src: /src/nss/lib/freebl/sha1-armv8.c:105,1
    - Dst: vrev32q_u8
      Src: /src/nss/lib/freebl/sha1-armv8.c:105,1
    - Dst: vreinterpretq_u8_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:105,1
    - Dst: vreinterpretq_u32_u8
      Src: /src/nss/lib/freebl/sha1-armv8.c:106,1
    - Dst: vrev32q_u8
      Src: /src/nss/lib/freebl/sha1-armv8.c:106,1
    - Dst: vreinterpretq_u8_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:106,1
    - Dst: vreinterpretq_u32_u8
      Src: /src/nss/lib/freebl/sha1-armv8.c:107,1
    - Dst: vrev32q_u8
      Src: /src/nss/lib/freebl/sha1-armv8.c:107,1
    - Dst: vreinterpretq_u8_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:107,1
    - Dst: vaddq_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:109,1
    - Dst: vaddq_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:110,1
    - Dst: vsha1h_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:126,1
    - Dst: vgetq_lane_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:126,1
    - Dst: vsha1cq_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:127,1
    - Dst: vaddq_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:128,1
    - Dst: vsha1su0q_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:129,1
    - Dst: vsha1h_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:132,1
    - Dst: vgetq_lane_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:132,1
    - Dst: vsha1cq_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:133,1
    - Dst: vaddq_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:134,1
    - Dst: vsha1su1q_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:135,1
    - Dst: vsha1su0q_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:136,1
    - Dst: vsha1h_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:139,1
    - Dst: vgetq_lane_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:139,1
    - Dst: vsha1cq_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:140,1
    - Dst: vaddq_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:141,1
    - Dst: vsha1su1q_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:142,1
    - Dst: vsha1su0q_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:143,1
    - Dst: vsha1h_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:146,1
    - Dst: vgetq_lane_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:146,1
    - Dst: vsha1cq_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:147,1
    - Dst: vaddq_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:148,1
    - Dst: vsha1su1q_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:149,1
    - Dst: vsha1su0q_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:150,1
    - Dst: vsha1h_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:153,1
    - Dst: vgetq_lane_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:153,1
    - Dst: vsha1cq_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:154,1
    - Dst: vaddq_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:155,1
    - Dst: vsha1su1q_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:156,1
    - Dst: vsha1su0q_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:157,1
    - Dst: vsha1h_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:160,1
    - Dst: vgetq_lane_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:160,1
    - Dst: vsha1pq_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:161,1
    - Dst: vaddq_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:162,1
    - Dst: vsha1su1q_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:163,1
    - Dst: vsha1su0q_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:164,1
    - Dst: vsha1h_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:167,1
    - Dst: vgetq_lane_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:167,1
    - Dst: vsha1pq_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:168,1
    - Dst: vaddq_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:169,1
    - Dst: vsha1su1q_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:170,1
    - Dst: vsha1su0q_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:171,1
    - Dst: vsha1h_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:174,1
    - Dst: vgetq_lane_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:174,1
    - Dst: vsha1pq_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:175,1
    - Dst: vaddq_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:176,1
    - Dst: vsha1su1q_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:177,1
    - Dst: vsha1su0q_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:178,1
    - Dst: vsha1h_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:181,1
    - Dst: vgetq_lane_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:181,1
    - Dst: vsha1pq_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:182,1
    - Dst: vaddq_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:183,1
    - Dst: vsha1su1q_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:184,1
    - Dst: vsha1su0q_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:185,1
    - Dst: vsha1h_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:188,1
    - Dst: vgetq_lane_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:188,1
    - Dst: vsha1pq_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:189,1
    - Dst: vaddq_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:190,1
    - Dst: vsha1su1q_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:191,1
    - Dst: vsha1su0q_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:192,1
    - Dst: vsha1h_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:195,1
    - Dst: vgetq_lane_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:195,1
    - Dst: vsha1mq_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:196,1
    - Dst: vaddq_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:197,1
    - Dst: vsha1su1q_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:198,1
    - Dst: vsha1su0q_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:199,1
    - Dst: vsha1h_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:202,1
    - Dst: vgetq_lane_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:202,1
    - Dst: vsha1mq_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:203,1
    - Dst: vaddq_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:204,1
    - Dst: vsha1su1q_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:205,1
    - Dst: vsha1su0q_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:206,1
    - Dst: vsha1h_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:209,1
    - Dst: vgetq_lane_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:209,1
    - Dst: vsha1mq_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:210,1
    - Dst: vaddq_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:211,1
    - Dst: vsha1su1q_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:212,1
    - Dst: vsha1su0q_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:213,1
    - Dst: vsha1h_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:216,1
    - Dst: vgetq_lane_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:216,1
    - Dst: vsha1mq_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:217,1
    - Dst: vaddq_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:218,1
    - Dst: vsha1su1q_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:219,1
    - Dst: vsha1su0q_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:220,1
    - Dst: vsha1h_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:223,1
    - Dst: vgetq_lane_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:223,1
    - Dst: vsha1mq_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:224,1
    - Dst: vaddq_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:225,1
    - Dst: vsha1su1q_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:226,1
    - Dst: vsha1su0q_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:227,1
    - Dst: vsha1h_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:230,1
    - Dst: vgetq_lane_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:230,1
    - Dst: vsha1pq_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:231,1
    - Dst: vaddq_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:232,1
    - Dst: vsha1su1q_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:233,1
    - Dst: vsha1su0q_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:234,1
    - Dst: vsha1h_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:237,1
    - Dst: vgetq_lane_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:237,1
    - Dst: vsha1pq_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:238,1
    - Dst: vaddq_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:239,1
    - Dst: vsha1su1q_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:240,1
    - Dst: vsha1su0q_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:241,1
    - Dst: vsha1h_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:244,1
    - Dst: vgetq_lane_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:244,1
    - Dst: vsha1pq_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:245,1
    - Dst: vaddq_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:246,1
    - Dst: vsha1su1q_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:247,1
    - Dst: vsha1h_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:250,1
    - Dst: vgetq_lane_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:250,1
    - Dst: vsha1pq_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:251,1
    - Dst: vsha1h_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:254,1
    - Dst: vgetq_lane_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:254,1
    - Dst: vsha1pq_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:255,1
    - Dst: vaddq_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:258,1
    - Dst: vst1q_u32
      Src: /src/nss/lib/freebl/sha1-armv8.c:260,1
    - Dst: XH
      Src: /src/nss/lib/freebl/sha1-armv8.c:260,1
    - Dst: XH
      Src: /src/nss/lib/freebl/sha1-armv8.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 101
    argCount: 2
    argNames:
    - X
    - inbuf
    argTypes:
    - SHA_HW_t*
    - PRUint32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 262
    functionName: shaCompress
    functionSourceFile: /src/nss/lib/freebl/sha1-armv8.c
    functionUses: 2
    functionsReached:
    - vst1q_u32
    - vdupq_n_u32
    - vreinterpretq_u8_u32
    - vgetq_lane_u32
    - vrev32q_u8
    - vld1q_u32
    - vsha1pq_u32
    - vreinterpretq_u32_u8
    - vsha1su0q_u32
    - vsha1mq_u32
    - vsha1cq_u32
    - vaddq_u32
    - XH
    - vsha1h_u32
    - vsha1su1q_u32
    linkageType: ''
    returnType: void
    signature: void shaCompress(SHA_HW_t *X, const PRUint32 *inbuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: XH
    functionSourceFile: /src/nss/lib/freebl/sha1-armv8.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XH(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: __has_builtin
    functionSourceFile: /src/nss/lib/freebl/crypto_primitives.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __has_builtin(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: ROTR64
    functionSourceFile: /src/nss/lib/freebl/crypto_primitives.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTR64(x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: ROTL64
    functionSourceFile: /src/nss/lib/freebl/crypto_primitives.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTL64(x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: ROTR64
    functionSourceFile: /src/nss/lib/freebl/crypto_primitives.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTR64(x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: ROTL64
    functionSourceFile: /src/nss/lib/freebl/crypto_primitives.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTL64(x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: FREEBL_HTONLL
    functionSourceFile: /src/nss/lib/freebl/crypto_primitives.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FREEBL_HTONLL(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: FREEBL_HTONLL
    functionSourceFile: /src/nss/lib/freebl/crypto_primitives.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FREEBL_HTONLL(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: FREEBL_HTONLL
    functionSourceFile: /src/nss/lib/freebl/crypto_primitives.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FREEBL_HTONLL(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: FREEBL_HTONLL
    functionSourceFile: /src/nss/lib/freebl/crypto_primitives.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FREEBL_HTONLL(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: FREEBL_HTONLL
    functionSourceFile: /src/nss/lib/freebl/crypto_primitives.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FREEBL_HTONLL(x)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/nss/lib/freebl/shvfy.c:71,1
    - Dst: memset
      Src: /src/nss/lib/freebl/shvfy.c:93,1
    - Dst: stat
      Src: /src/nss/lib/freebl/shvfy.c:95,1
    - Dst: free
      Src: /src/nss/lib/freebl/shvfy.c:97,1
    - Dst: PR_Open
      Src: /src/nss/lib/freebl/shvfy.c:98,1
    - Dst: S_ISREG
      Src: /src/nss/lib/freebl/shvfy.c:101,1
    - Dst: free
      Src: /src/nss/lib/freebl/shvfy.c:103,1
    - Dst: PR_Open
      Src: /src/nss/lib/freebl/shvfy.c:104,1
    - Dst: PORT_NewArray
      Src: /src/nss/lib/freebl/shvfy.c:134,1
    - Dst: strdup
      Src: /src/nss/lib/freebl/shvfy.c:155,1
    - Dst: pipe
      Src: /src/nss/lib/freebl/shvfy.c:162,1
    - Dst: vfork
      Src: /src/nss/lib/freebl/shvfy.c:168,1
    - Dst: close
      Src: /src/nss/lib/freebl/shvfy.c:175,1
    - Dst: dup2
      Src: /src/nss/lib/freebl/shvfy.c:178,1
    - Dst: close
      Src: /src/nss/lib/freebl/shvfy.c:179,1
    - Dst: close
      Src: /src/nss/lib/freebl/shvfy.c:180,1
    - Dst: execv
      Src: /src/nss/lib/freebl/shvfy.c:183,1
    - Dst: _exit
      Src: /src/nss/lib/freebl/shvfy.c:185,1
    - Dst: close
      Src: /src/nss/lib/freebl/shvfy.c:187,1
    - Dst: free
      Src: /src/nss/lib/freebl/shvfy.c:193,1
    - Dst: free
      Src: /src/nss/lib/freebl/shvfy.c:194,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/shvfy.c:195,1
    - Dst: PR_ImportPipe
      Src: /src/nss/lib/freebl/shvfy.c:199,1
    - Dst: close
      Src: /src/nss/lib/freebl/shvfy.c:203,1
    - Dst: close
      Src: /src/nss/lib/freebl/shvfy.c:206,1
    - Dst: free
      Src: /src/nss/lib/freebl/shvfy.c:208,1
    - Dst: free
      Src: /src/nss/lib/freebl/shvfy.c:209,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/shvfy.c:210,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 98
    argCount: 2
    argNames:
    - shName
    - pid
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 213
    functionName: bl_OpenUnPrelink
    functionSourceFile: /src/nss/lib/freebl/shvfy.c
    functionUses: 0
    functionsReached:
    - strdup
    - free
    - close
    - PORT_Free
    - dup2
    - memset
    - stat
    - PR_Open
    - PORT_NewArray
    - execv
    - PR_ImportPipe
    - vfork
    - pipe
    - _exit
    - S_ISREG
    linkageType: ''
    returnType: PRFileDesc
    signature: 'PRFileDesc *

      bl_OpenUnPrelink(const char *shName, int *pid)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_Close
      Src: /src/nss/lib/freebl/shvfy.c:227,1
    - Dst: waitpid
      Src: /src/nss/lib/freebl/shvfy.c:230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - file
    - pid
    argTypes:
    - PRFileDesc*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 232
    functionName: bl_CloseUnPrelink
    functionSourceFile: /src/nss/lib/freebl/shvfy.c
    functionUses: 0
    functionsReached:
    - PR_Close
    - waitpid
    linkageType: ''
    returnType: void
    signature: void bl_CloseUnPrelink(PRFileDesc *file, int pid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strlen
      Src: /src/nss/lib/freebl/shvfy.c:240,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/freebl/shvfy.c:242,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/shvfy.c:244,1
    - Dst: PORT_Strncmp
      Src: /src/nss/lib/freebl/shvfy.c:249,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/shvfy.c:253,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/shvfy.c:254,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - libName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 256
    functionName: mkCheckFileName
    functionSourceFile: /src/nss/lib/freebl/shvfy.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_Memcpy
    - PORT_Strncmp
    - PORT_Strlen
    - PORT_SetError
    linkageType: ''
    returnType: char
    signature: 'char *

      mkCheckFileName(const char *libName)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 262
    functionName: decodeInt
    functionSourceFile: /src/nss/lib/freebl/shvfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int decodeInt(unsigned char *buf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PR_Read
      Src: /src/nss/lib/freebl/shvfy.c:270,1
    - Dst: decodeInt
      Src: /src/nss/lib/freebl/shvfy.c:274,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/freebl/shvfy.c:276,1
    - Dst: PR_Read
      Src: /src/nss/lib/freebl/shvfy.c:281,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/shvfy.c:283,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - fd
    - item
    argTypes:
    - PRFileDesc*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 289
    functionName: readItem
    functionSourceFile: /src/nss/lib/freebl/shvfy.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PR_Read
    - PORT_Free
    - decodeInt
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus readItem(PRFileDesc *fd, SECItem *item)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetLibraryFilePathname
      Src: /src/nss/lib/freebl/shvfy.c:299,1
    - Dst: blapi_SHVerifyFile
      Src: /src/nss/lib/freebl/shvfy.c:303,1
    - Dst: PR_Free
      Src: /src/nss/lib/freebl/shvfy.c:307,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - name
    - addr
    - self
    - rerun
    argTypes:
    - char*
    - PRFuncPtr
    - PRBool
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 311
    functionName: blapi_SHVerify
    functionSourceFile: /src/nss/lib/freebl/shvfy.c
    functionUses: 0
    functionsReached:
    - blapi_SHVerifyFile
    - PR_GetLibraryFilePathname
    - PR_Free
    linkageType: ''
    returnType: PRBool
    signature: PRBool blapi_SHVerify(const char *name, PRFuncPtr addr, PRBool self,
      PRBool rerun)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: blapi_SHVerify
      Src: /src/nss/lib/freebl/shvfy.c:321,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - name
    - addr
    argTypes:
    - char*
    - PRFuncPtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 313
    functionDepth: 2
    functionLinenumber: 313
    functionLinenumberEnd: 322
    functionName: BLAPI_SHVerify
    functionSourceFile: /src/nss/lib/freebl/shvfy.c
    functionUses: 0
    functionsReached:
    - blapi_SHVerify
    linkageType: ''
    returnType: PRBool
    signature: PRBool BLAPI_SHVerify(const char *name, PRFuncPtr addr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: blapi_SHVerifyFile
      Src: /src/nss/lib/freebl/shvfy.c:332,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - shName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 333
    functionName: BLAPI_SHVerifyFile
    functionSourceFile: /src/nss/lib/freebl/shvfy.c
    functionUses: 1
    functionsReached:
    - blapi_SHVerifyFile
    linkageType: ''
    returnType: PRBool
    signature: PRBool BLAPI_SHVerifyFile(const char *shName)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECHashObject*::create
      Src: /src/nss/lib/freebl/shvfy.c:354,1
    - Dst: SECHashObject*::begin
      Src: /src/nss/lib/freebl/shvfy.c:358,1
    - Dst: PR_Read
      Src: /src/nss/lib/freebl/shvfy.c:360,1
    - Dst: SECHashObject*::update
      Src: /src/nss/lib/freebl/shvfy.c:361,1
    - Dst: SECHashObject*::end
      Src: /src/nss/lib/freebl/shvfy.c:363,1
    - Dst: SECHashObject*::destroy
      Src: /src/nss/lib/freebl/shvfy.c:364,1
    - Dst: DSA_VerifyDigest
      Src: /src/nss/lib/freebl/shvfy.c:367,1
    - Dst: PORT_SafeZero
      Src: /src/nss/lib/freebl/shvfy.c:368,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - shFD
    - hashObj
    - key
    - signature
    argTypes:
    - PRFileDesc*
    - SECHashObject*
    - DSAPublicKey*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 370
    functionName: blapi_SHVerifyDSACheck
    functionSourceFile: /src/nss/lib/freebl/shvfy.c
    functionUses: 0
    functionsReached:
    - DSA_VerifyDigest
    - PORT_SafeZero
    - SECHashObject*::end
    - SECHashObject*::create
    - PR_Read
    - SECHashObject*::destroy
    - SECHashObject*::begin
    - SECHashObject*::update
    linkageType: ''
    returnType: PRBool
    signature: "PRBool blapi_SHVerifyDSACheck(PRFileDesc *shFD, const SECHashObject
      *hashObj,\n                       DSAPublicKey *key, const SECItem *signature)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - hashObj
    argTypes:
    - SECHashObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 387
    functionName: blapi_HashAllowed
    functionSourceFile: /src/nss/lib/freebl/shvfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool blapi_HashAllowed(SECHashObject *hashObj)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: blapi_HashAllowed
      Src: /src/nss/lib/freebl/shvfy.c:403,1
    - Dst: HMAC_Create
      Src: /src/nss/lib/freebl/shvfy.c:413,1
    - Dst: HMAC_Begin
      Src: /src/nss/lib/freebl/shvfy.c:417,1
    - Dst: PR_Read
      Src: /src/nss/lib/freebl/shvfy.c:419,1
    - Dst: HMAC_Update
      Src: /src/nss/lib/freebl/shvfy.c:420,1
    - Dst: HMAC_Finish
      Src: /src/nss/lib/freebl/shvfy.c:422,1
    - Dst: HMAC_Destroy
      Src: /src/nss/lib/freebl/shvfy.c:424,1
    - Dst: SECITEM_ItemsAreEqual
      Src: /src/nss/lib/freebl/shvfy.c:428,1
    - Dst: PORT_SafeZero
      Src: /src/nss/lib/freebl/shvfy.c:430,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - shFD
    - hashObj
    - key
    - signature
    argTypes:
    - PRFileDesc*
    - SECHashObject*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 432
    functionName: blapi_SHVerifyHMACCheck
    functionSourceFile: /src/nss/lib/freebl/shvfy.c
    functionUses: 0
    functionsReached:
    - SECITEM_ItemsAreEqual
    - HMAC_Finish
    - blapi_HashAllowed
    - HMAC_Begin
    - PR_Read
    - HMAC_Destroy
    - PORT_SafeZero
    - HMAC_Update
    - HMAC_Create
    linkageType: ''
    returnType: PRBool
    signature: "PRBool blapi_SHVerifyHMACCheck(PRFileDesc *shFD, const SECHashObject
      *hashObj,\n                        const SECItem *key, const SECItem *signature)"
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SafeZero
      Src: /src/nss/lib/freebl/shvfy.c:454,1
    - Dst: BL_FIPSEntryOK
      Src: /src/nss/lib/freebl/shvfy.c:459,1
    - Dst: mkCheckFileName
      Src: /src/nss/lib/freebl/shvfy.c:468,1
    - Dst: PR_Open
      Src: /src/nss/lib/freebl/shvfy.c:474,1
    - Dst: fprintf
      Src: /src/nss/lib/freebl/shvfy.c:477,1
    - Dst: PR_GetError
      Src: /src/nss/lib/freebl/shvfy.c:478,1
    - Dst: PR_GetOSError
      Src: /src/nss/lib/freebl/shvfy.c:478,1
    - Dst: PR_Read
      Src: /src/nss/lib/freebl/shvfy.c:484,1
    - Dst: decodeInt
      Src: /src/nss/lib/freebl/shvfy.c:500,1
    - Dst: decodeInt
      Src: /src/nss/lib/freebl/shvfy.c:503,1
    - Dst: PR_Seek
      Src: /src/nss/lib/freebl/shvfy.c:504,1
    - Dst: readItem
      Src: /src/nss/lib/freebl/shvfy.c:515,1
    - Dst: readItem
      Src: /src/nss/lib/freebl/shvfy.c:519,1
    - Dst: readItem
      Src: /src/nss/lib/freebl/shvfy.c:523,1
    - Dst: readItem
      Src: /src/nss/lib/freebl/shvfy.c:527,1
    - Dst: readItem
      Src: /src/nss/lib/freebl/shvfy.c:532,1
    - Dst: HASH_GetRawHashObject
      Src: /src/nss/lib/freebl/shvfy.c:536,1
    - Dst: PQG_GetHashType
      Src: /src/nss/lib/freebl/shvfy.c:536,1
    - Dst: readItem
      Src: /src/nss/lib/freebl/shvfy.c:544,1
    - Dst: readItem
      Src: /src/nss/lib/freebl/shvfy.c:549,1
    - Dst: HASH_GetRawHashObject
      Src: /src/nss/lib/freebl/shvfy.c:553,1
    - Dst: PR_Close
      Src: /src/nss/lib/freebl/shvfy.c:557,1
    - Dst: bl_OpenUnPrelink
      Src: /src/nss/lib/freebl/shvfy.c:566,1
    - Dst: PR_Open
      Src: /src/nss/lib/freebl/shvfy.c:568,1
    - Dst: fprintf
      Src: /src/nss/lib/freebl/shvfy.c:572,1
    - Dst: PR_GetError
      Src: /src/nss/lib/freebl/shvfy.c:573,1
    - Dst: PR_GetOSError
      Src: /src/nss/lib/freebl/shvfy.c:573,1
    - Dst: blapi_SHVerifyDSACheck
      Src: /src/nss/lib/freebl/shvfy.c:581,1
    - Dst: blapi_SHVerifyHMACCheck
      Src: /src/nss/lib/freebl/shvfy.c:588,1
    - Dst: bl_CloseUnPrelink
      Src: /src/nss/lib/freebl/shvfy.c:593,1
    - Dst: PR_Close
      Src: /src/nss/lib/freebl/shvfy.c:595,1
    - Dst: PORT_SafeZero
      Src: /src/nss/lib/freebl/shvfy.c:600,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/shvfy.c:602,1
    - Dst: PR_Close
      Src: /src/nss/lib/freebl/shvfy.c:605,1
    - Dst: PR_Close
      Src: /src/nss/lib/freebl/shvfy.c:608,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/freebl/shvfy.c:611,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/freebl/shvfy.c:614,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/freebl/shvfy.c:618,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/freebl/shvfy.c:621,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/freebl/shvfy.c:624,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/freebl/shvfy.c:627,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 149
    argCount: 3
    argNames:
    - shName
    - self
    - rerun
    argTypes:
    - char*
    - PRBool
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 434
    functionDepth: 2
    functionLinenumber: 434
    functionLinenumberEnd: 631
    functionName: blapi_SHVerifyFile
    functionSourceFile: /src/nss/lib/freebl/shvfy.c
    functionUses: 2
    functionsReached:
    - decodeInt
    - fprintf
    - PQG_GetHashType
    - PORT_SafeZero
    - BL_FIPSEntryOK
    - HASH_GetRawHashObject
    - blapi_SHVerifyDSACheck
    - readItem
    - PR_Read
    - blapi_SHVerifyHMACCheck
    - bl_OpenUnPrelink
    - PR_Open
    - PR_Seek
    - mkCheckFileName
    - PR_Close
    - SECITEM_ZfreeItem
    - bl_CloseUnPrelink
    - PR_GetOSError
    - PORT_Free
    - PR_GetError
    linkageType: ''
    returnType: PRBool
    signature: PRBool blapi_SHVerifyFile(const char *shName, PRBool self, PRBool rerun)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: blapi_SHVerify
      Src: /src/nss/lib/freebl/shvfy.c:643,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 633
    functionDepth: 2
    functionLinenumber: 633
    functionLinenumberEnd: 644
    functionName: BLAPI_VerifySelf
    functionSourceFile: /src/nss/lib/freebl/shvfy.c
    functionUses: 0
    functionsReached:
    - blapi_SHVerify
    linkageType: ''
    returnType: PRBool
    signature: PRBool BLAPI_VerifySelf(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - shName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 648
    functionDepth: 0
    functionLinenumber: 648
    functionLinenumberEnd: 652
    functionName: BLAPI_SHVerifyFile
    functionSourceFile: /src/nss/lib/freebl/shvfy.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool BLAPI_SHVerifyFile(const char *shName)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - addr
    argTypes:
    - char*
    - PRFuncPtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 653
    functionDepth: 0
    functionLinenumber: 653
    functionLinenumberEnd: 657
    functionName: BLAPI_SHVerify
    functionSourceFile: /src/nss/lib/freebl/shvfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool BLAPI_SHVerify(const char *name, PRFuncPtr addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 658
    functionDepth: 0
    functionLinenumber: 658
    functionLinenumberEnd: 662
    functionName: BLAPI_VerifySelf
    functionSourceFile: /src/nss/lib/freebl/shvfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool BLAPI_VerifySelf(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_New
      Src: /src/nss/lib/freebl/shake.c:21,1
    - Dst: Hacl_Streaming_Keccak_malloc
      Src: /src/nss/lib/freebl/shake.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 24
    functionName: SHAKE_128_NewContext
    functionSourceFile: /src/nss/lib/freebl/shake.c
    functionUses: 0
    functionsReached:
    - Hacl_Streaming_Keccak_malloc
    - PORT_New
    linkageType: ''
    returnType: SHAKE_128Context
    signature: 'SHAKE_128Context *

      SHAKE_128_NewContext()'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_New
      Src: /src/nss/lib/freebl/shake.c:29,1
    - Dst: Hacl_Streaming_Keccak_malloc
      Src: /src/nss/lib/freebl/shake.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 32
    functionName: SHAKE_256_NewContext
    functionSourceFile: /src/nss/lib/freebl/shake.c
    functionUses: 0
    functionsReached:
    - Hacl_Streaming_Keccak_malloc
    - PORT_New
    linkageType: ''
    returnType: SHAKE_256Context
    signature: 'SHAKE_256Context *

      SHAKE_256_NewContext()'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Streaming_Keccak_reset
      Src: /src/nss/lib/freebl/shake.c:37,1
    - Dst: Hacl_Streaming_Keccak_free
      Src: /src/nss/lib/freebl/shake.c:39,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/shake.c:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - freeit
    argTypes:
    - SHAKE_128Context*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 42
    functionName: SHAKE_128_DestroyContext
    functionSourceFile: /src/nss/lib/freebl/shake.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - Hacl_Streaming_Keccak_reset
    - Hacl_Streaming_Keccak_free
    linkageType: ''
    returnType: void
    signature: void SHAKE_128_DestroyContext(SHAKE_128Context *ctx, PRBool freeit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Streaming_Keccak_reset
      Src: /src/nss/lib/freebl/shake.c:47,1
    - Dst: Hacl_Streaming_Keccak_free
      Src: /src/nss/lib/freebl/shake.c:49,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/shake.c:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - freeit
    argTypes:
    - SHAKE_256Context*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 52
    functionName: SHAKE_256_DestroyContext
    functionSourceFile: /src/nss/lib/freebl/shake.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - Hacl_Streaming_Keccak_reset
    - Hacl_Streaming_Keccak_free
    linkageType: ''
    returnType: void
    signature: void SHAKE_256_DestroyContext(SHAKE_256Context *ctx, PRBool freeit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Streaming_Keccak_reset
      Src: /src/nss/lib/freebl/shake.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SHAKE_128Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: SHAKE_128_Begin
    functionSourceFile: /src/nss/lib/freebl/shake.c
    functionUses: 0
    functionsReached:
    - Hacl_Streaming_Keccak_reset
    linkageType: ''
    returnType: void
    signature: void SHAKE_128_Begin(SHAKE_128Context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Streaming_Keccak_reset
      Src: /src/nss/lib/freebl/shake.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SHAKE_256Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: SHAKE_256_Begin
    functionSourceFile: /src/nss/lib/freebl/shake.c
    functionUses: 0
    functionsReached:
    - Hacl_Streaming_Keccak_reset
    linkageType: ''
    returnType: void
    signature: void SHAKE_256_Begin(SHAKE_256Context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Streaming_Keccak_update
      Src: /src/nss/lib/freebl/shake.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - input
    - inputLen
    argTypes:
    - SHAKE_128Context*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 71
    functionName: SHAKE_128_Absorb
    functionSourceFile: /src/nss/lib/freebl/shake.c
    functionUses: 0
    functionsReached:
    - Hacl_Streaming_Keccak_update
    linkageType: ''
    returnType: void
    signature: "void SHAKE_128_Absorb(SHAKE_128Context *ctx, const unsigned char *input,\n
      \                unsigned int inputLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Streaming_Keccak_update
      Src: /src/nss/lib/freebl/shake.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - input
    - inputLen
    argTypes:
    - SHAKE_256Context*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: SHAKE_256_Absorb
    functionSourceFile: /src/nss/lib/freebl/shake.c
    functionUses: 0
    functionsReached:
    - Hacl_Streaming_Keccak_update
    linkageType: ''
    returnType: void
    signature: "void SHAKE_256_Absorb(SHAKE_256Context *ctx, const unsigned char *input,\n
      \                unsigned int inputLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Streaming_Keccak_squeeze
      Src: /src/nss/lib/freebl/shake.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - digest
    - digestLen
    argTypes:
    - SHAKE_128Context*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 85
    functionName: SHAKE_128_SqueezeEnd
    functionSourceFile: /src/nss/lib/freebl/shake.c
    functionUses: 0
    functionsReached:
    - Hacl_Streaming_Keccak_squeeze
    linkageType: ''
    returnType: void
    signature: "void SHAKE_128_SqueezeEnd(SHAKE_128Context *ctx, unsigned char *digest,\n
      \                    unsigned int digestLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Streaming_Keccak_squeeze
      Src: /src/nss/lib/freebl/shake.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - digest
    - digestLen
    argTypes:
    - SHAKE_256Context*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 92
    functionName: SHAKE_256_SqueezeEnd
    functionSourceFile: /src/nss/lib/freebl/shake.c
    functionUses: 0
    functionsReached:
    - Hacl_Streaming_Keccak_squeeze
    linkageType: ''
    returnType: void
    signature: "void SHAKE_256_SqueezeEnd(SHAKE_256Context *ctx, unsigned char *digest,\n
      \                    unsigned int digestLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHAKE_128_NewContext
      Src: /src/nss/lib/freebl/shake.c:98,1
    - Dst: SHAKE_128_Begin
      Src: /src/nss/lib/freebl/shake.c:99,1
    - Dst: SHAKE_128_Absorb
      Src: /src/nss/lib/freebl/shake.c:100,1
    - Dst: SHAKE_128_SqueezeEnd
      Src: /src/nss/lib/freebl/shake.c:101,1
    - Dst: SHAKE_128_DestroyContext
      Src: /src/nss/lib/freebl/shake.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - dest
    - dest_length
    - src
    - src_length
    argTypes:
    - unsigned char*
    - PRUint32
    - unsigned char*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 104
    functionName: SHAKE_128_HashBuf
    functionSourceFile: /src/nss/lib/freebl/shake.c
    functionUses: 0
    functionsReached:
    - SHAKE_128_DestroyContext
    - SHAKE_128_Begin
    - SHAKE_128_NewContext
    - SHAKE_128_Absorb
    - SHAKE_128_SqueezeEnd
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SHAKE_128_HashBuf(unsigned char *dest, PRUint32 dest_length,\n
      \                 const unsigned char *src, PRUint32 src_length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHAKE_256_NewContext
      Src: /src/nss/lib/freebl/shake.c:110,1
    - Dst: SHAKE_256_Begin
      Src: /src/nss/lib/freebl/shake.c:111,1
    - Dst: SHAKE_256_Absorb
      Src: /src/nss/lib/freebl/shake.c:112,1
    - Dst: SHAKE_256_SqueezeEnd
      Src: /src/nss/lib/freebl/shake.c:113,1
    - Dst: SHAKE_256_DestroyContext
      Src: /src/nss/lib/freebl/shake.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - dest
    - dest_length
    - src
    - src_length
    argTypes:
    - unsigned char*
    - PRUint32
    - unsigned char*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 116
    functionName: SHAKE_256_HashBuf
    functionSourceFile: /src/nss/lib/freebl/shake.c
    functionUses: 0
    functionsReached:
    - SHAKE_256_DestroyContext
    - SHAKE_256_NewContext
    - SHAKE_256_SqueezeEnd
    - SHAKE_256_Absorb
    - SHAKE_256_Begin
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SHAKE_256_HashBuf(unsigned char *dest, PRUint32 dest_length,\n
      \                 const unsigned char *src, PRUint32 src_length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHAKE_128_HashBuf
      Src: /src/nss/lib/freebl/shake.c:121,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/freebl/shake.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dest
    - dest_length
    - src
    argTypes:
    - unsigned char*
    - unsigned int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 122
    functionName: SHAKE_128_Hash
    functionSourceFile: /src/nss/lib/freebl/shake.c
    functionUses: 0
    functionsReached:
    - PORT_Strlen
    - SHAKE_128_HashBuf
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SHAKE_128_Hash(unsigned char *dest, unsigned int dest_length,
      const char *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHAKE_256_HashBuf
      Src: /src/nss/lib/freebl/shake.c:127,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/freebl/shake.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dest
    - dest_length
    - src
    argTypes:
    - unsigned char*
    - unsigned int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 128
    functionName: SHAKE_256_Hash
    functionSourceFile: /src/nss/lib/freebl/shake.c
    functionUses: 0
    functionsReached:
    - PORT_Strlen
    - SHAKE_256_HashBuf
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SHAKE_256_Hash(unsigned char *dest, unsigned int dest_length,
      const char *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RNG_SystemRNG
      Src: /src/nss/lib/freebl/unix_fips140_3.c:27,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/lib/freebl/unix_fips140_3.c:32,1
    - Dst: PORT_SaveZero
      Src: /src/nss/lib/freebl/unix_fips140_3.c:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 34
    functionName: RNG_SystemInfoForRNG
    functionSourceFile: /src/nss/lib/freebl/unix_fips140_3.c
    functionUses: 3
    functionsReached:
    - PORT_SaveZero
    - RNG_SystemRNG
    - RNG_RandomUpdate
    linkageType: ''
    returnType: void
    signature: void RNG_SystemInfoForRNG(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSS_GetSystemFIPSEnabled
      Src: /src/nss/lib/freebl/unix_fips140_3.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 46
    functionName: rng_getKernelFips
    functionSourceFile: /src/nss/lib/freebl/unix_fips140_3.c
    functionUses: 0
    functionsReached:
    - NSS_GetSystemFIPSEnabled
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus rng_getKernelFips()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PR_CallOnce
      Src: /src/nss/lib/freebl/unix_fips140_3.c:56,1
    - Dst: getrandom
      Src: /src/nss/lib/freebl/unix_fips140_3.c:67,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/unix_fips140_3.c:78,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - dest
    - maxLen
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 80
    functionName: RNG_SystemRNG
    functionSourceFile: /src/nss/lib/freebl/unix_fips140_3.c
    functionUses: 1
    functionsReached:
    - PR_CallOnce
    - getrandom
    - PORT_SetError
    linkageType: ''
    returnType: size_t
    signature: size_t RNG_SystemRNG(void *dest, size_t maxLen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA512_NewContext
      Src: /src/nss/lib/freebl/Hacl_Hash_SHA2_shim.h:7,1
    - Dst: SHA512_Begin
      Src: /src/nss/lib/freebl/Hacl_Hash_SHA2_shim.h:9,1
    - Dst: SHA512_Update
      Src: /src/nss/lib/freebl/Hacl_Hash_SHA2_shim.h:10,1
    - Dst: SHA512_Update
      Src: /src/nss/lib/freebl/Hacl_Hash_SHA2_shim.h:11,1
    - Dst: SHA512_End
      Src: /src/nss/lib/freebl/Hacl_Hash_SHA2_shim.h:12,1
    - Dst: SHA512_DestroyContext
      Src: /src/nss/lib/freebl/Hacl_Hash_SHA2_shim.h:13,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - hash
    - prefix
    - len
    - input
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint32_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 4
    functionDepth: 0
    functionLinenumber: 4
    functionLinenumberEnd: 14
    functionName: sha512_pre_msg
    functionSourceFile: /src/nss/lib/freebl/Hacl_Hash_SHA2_shim.h
    functionUses: 0
    functionsReached:
    - SHA512_Begin
    - SHA512_Update
    - SHA512_NewContext
    - SHA512_End
    - SHA512_DestroyContext
    linkageType: ''
    returnType: void
    signature: void sha512_pre_msg(uint8_t *hash, uint8_t *prefix, uint32_t len, uint8_t
      *input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA512_NewContext
      Src: /src/nss/lib/freebl/Hacl_Hash_SHA2_shim.h:24,1
    - Dst: SHA512_Begin
      Src: /src/nss/lib/freebl/Hacl_Hash_SHA2_shim.h:26,1
    - Dst: SHA512_Update
      Src: /src/nss/lib/freebl/Hacl_Hash_SHA2_shim.h:27,1
    - Dst: SHA512_Update
      Src: /src/nss/lib/freebl/Hacl_Hash_SHA2_shim.h:28,1
    - Dst: SHA512_Update
      Src: /src/nss/lib/freebl/Hacl_Hash_SHA2_shim.h:29,1
    - Dst: SHA512_End
      Src: /src/nss/lib/freebl/Hacl_Hash_SHA2_shim.h:30,1
    - Dst: SHA512_DestroyContext
      Src: /src/nss/lib/freebl/Hacl_Hash_SHA2_shim.h:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - hash
    - prefix
    - prefix2
    - len
    - input
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint32_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 32
    functionName: sha512_pre_pre2_msg
    functionSourceFile: /src/nss/lib/freebl/Hacl_Hash_SHA2_shim.h
    functionUses: 0
    functionsReached:
    - SHA512_Begin
    - SHA512_Update
    - SHA512_NewContext
    - SHA512_End
    - SHA512_DestroyContext
    linkageType: ''
    returnType: void
    signature: "void sha512_pre_pre2_msg(\n    uint8_t *hash,\n    uint8_t *prefix,\n
      \   uint8_t *prefix2,\n    uint32_t len,\n    uint8_t *input)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA512_HashBuf
      Src: /src/nss/lib/freebl/Hacl_Hash_SHA2_shim.h:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - secret
    - len
    - expanded
    argTypes:
    - uint8_t*
    - uint32_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: Hacl_Streaming_SHA2_hash_512
    functionSourceFile: /src/nss/lib/freebl/Hacl_Hash_SHA2_shim.h
    functionUses: 0
    functionsReached:
    - SHA512_HashBuf
    linkageType: ''
    returnType: void
    signature: void Hacl_Streaming_SHA2_hash_512(uint8_t *secret, uint32_t len, uint8_t
      *expanded)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: SWAP
    functionSourceFile: /src/nss/lib/freebl/arcfour.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWAP(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZNew
      Src: /src/nss/lib/freebl/arcfour.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 112
    functionName: RC4_AllocateContext
    functionSourceFile: /src/nss/lib/freebl/arcfour.c
    functionUses: 0
    functionsReached:
    - PORT_ZNew
    linkageType: ''
    returnType: RC4Context
    signature: 'RC4Context *

      RC4_AllocateContext(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/arcfour.c:126,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/arcfour.c:130,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/arcfour.c:134,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/arcfour.c:138,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/arcfour.c:141,1
    - Dst: ARCFOUR_STATE_STIR
      Src: /src/nss/lib/freebl/arcfour.c:151,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 7
    argNames:
    - cx
    - key
    - len
    - unused1
    - unused2
    - unused3
    - unused4
    argTypes:
    - RC4Context*
    - unsigned char*
    - unsigned int
    - unsigned char*
    - int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 156
    functionName: RC4_InitContext
    functionSourceFile: /src/nss/lib/freebl/arcfour.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - memcpy
    - ARCFOUR_STATE_STIR
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus RC4_InitContext(RC4Context *cx, const unsigned char *key,
      unsigned int len,\n                const unsigned char *unused1, int unused2,\n
      \               unsigned int unused3, unsigned int unused4)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ii
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 150
    functionName: ARCFOUR_STATE_STIR
    functionSourceFile: /src/nss/lib/freebl/arcfour.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARCFOUR_STATE_STIR(ii)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RC4_AllocateContext
      Src: /src/nss/lib/freebl/arcfour.c:164,1
    - Dst: RC4_InitContext
      Src: /src/nss/lib/freebl/arcfour.c:166,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/freebl/arcfour.c:168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - key
    - len
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 173
    functionName: RC4_CreateContext
    functionSourceFile: /src/nss/lib/freebl/arcfour.c
    functionUses: 1
    functionsReached:
    - RC4_InitContext
    - PORT_ZFree
    - RC4_AllocateContext
    linkageType: ''
    returnType: RC4Context
    signature: 'RC4Context *

      RC4_CreateContext(const unsigned char *key, int len)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZFree
      Src: /src/nss/lib/freebl/arcfour.c:179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - cx
    - freeit
    argTypes:
    - RC4Context*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 180
    functionName: RC4_DestroyContext
    functionSourceFile: /src/nss/lib/freebl/arcfour.c
    functionUses: 2
    functionsReached:
    - PORT_ZFree
    linkageType: ''
    returnType: void
    signature: void RC4_DestroyContext(RC4Context *cx, PRBool freeit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 196
    functionName: ARCFOUR_NEXT_BYTE
    functionSourceFile: /src/nss/lib/freebl/arcfour.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARCFOUR_NEXT_BYTE()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/arcfour.c:211,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/arcfour.c:213,1
    - Dst: ARCFOUR_NEXT_BYTE
      Src: /src/nss/lib/freebl/arcfour.c:218,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 6
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - RC4Context*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 226
    functionName: rc4_no_opt
    functionSourceFile: /src/nss/lib/freebl/arcfour.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - ARCFOUR_NEXT_BYTE
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus rc4_no_opt(RC4Context *cx, unsigned char *output,\n           unsigned
      int *outputLen, unsigned int maxOutputLen,\n           const unsigned char *input,
      unsigned int inputLen)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/arcfour.c:244,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/arcfour.c:246,1
    - Dst: ARCFOUR_NEXT_BYTE
      Src: /src/nss/lib/freebl/arcfour.c:250,1
    - Dst: ARCFOUR_NEXT_BYTE
      Src: /src/nss/lib/freebl/arcfour.c:252,1
    - Dst: ARCFOUR_NEXT_BYTE
      Src: /src/nss/lib/freebl/arcfour.c:254,1
    - Dst: ARCFOUR_NEXT_BYTE
      Src: /src/nss/lib/freebl/arcfour.c:256,1
    - Dst: ARCFOUR_NEXT_BYTE
      Src: /src/nss/lib/freebl/arcfour.c:258,1
    - Dst: ARCFOUR_NEXT_BYTE
      Src: /src/nss/lib/freebl/arcfour.c:260,1
    - Dst: ARCFOUR_NEXT_BYTE
      Src: /src/nss/lib/freebl/arcfour.c:262,1
    - Dst: ARCFOUR_NEXT_BYTE
      Src: /src/nss/lib/freebl/arcfour.c:264,1
    - Dst: ARCFOUR_NEXT_BYTE
      Src: /src/nss/lib/freebl/arcfour.c:273,1
    - Dst: ARCFOUR_NEXT_BYTE
      Src: /src/nss/lib/freebl/arcfour.c:276,1
    - Dst: ARCFOUR_NEXT_BYTE
      Src: /src/nss/lib/freebl/arcfour.c:279,1
    - Dst: ARCFOUR_NEXT_BYTE
      Src: /src/nss/lib/freebl/arcfour.c:282,1
    - Dst: ARCFOUR_NEXT_BYTE
      Src: /src/nss/lib/freebl/arcfour.c:285,1
    - Dst: ARCFOUR_NEXT_BYTE
      Src: /src/nss/lib/freebl/arcfour.c:288,1
    - Dst: ARCFOUR_NEXT_BYTE
      Src: /src/nss/lib/freebl/arcfour.c:291,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 58
    argCount: 6
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - RC4Context*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 302
    functionName: rc4_unrolled
    functionSourceFile: /src/nss/lib/freebl/arcfour.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - ARCFOUR_NEXT_BYTE
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus rc4_unrolled(RC4Context *cx, unsigned char *output,\n             unsigned
      int *outputLen, unsigned int maxOutputLen,\n             const unsigned char
      *input, unsigned int inputLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 315
    functionName: ARCFOUR_NEXT4BYTES_L
    functionSourceFile: /src/nss/lib/freebl/arcfour.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARCFOUR_NEXT4BYTES_L(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 325
    functionName: ARCFOUR_NEXT4BYTES_B
    functionSourceFile: /src/nss/lib/freebl/arcfour.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARCFOUR_NEXT4BYTES_B(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 336
    functionName: ARCFOUR_NEXT_WORD
    functionSourceFile: /src/nss/lib/freebl/arcfour.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARCFOUR_NEXT_WORD()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 343
    functionName: ARCFOUR_NEXT_WORD
    functionSourceFile: /src/nss/lib/freebl/arcfour.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARCFOUR_NEXT_WORD()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 352
    functionName: ARCFOUR_NEXT_WORD
    functionSourceFile: /src/nss/lib/freebl/arcfour.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARCFOUR_NEXT_WORD()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 358
    functionName: ARCFOUR_NEXT_WORD
    functionSourceFile: /src/nss/lib/freebl/arcfour.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARCFOUR_NEXT_WORD()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - shift
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 372
    functionName: NEXT_BYTE_SHIFT
    functionSourceFile: /src/nss/lib/freebl/arcfour.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEXT_BYTE_SHIFT(shift)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - shift
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 375
    functionName: NEXT_BYTE_SHIFT
    functionSourceFile: /src/nss/lib/freebl/arcfour.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEXT_BYTE_SHIFT(shift)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PR_STATIC_ASSERT
      Src: /src/nss/lib/freebl/arcfour.c:383,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/arcfour.c:399,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/arcfour.c:401,1
    - Dst: rc4_no_opt
      Src: /src/nss/lib/freebl/arcfour.c:406,1
    - Dst: ARCFOUR_NEXT_BYTE
      Src: /src/nss/lib/freebl/arcfour.c:429,1
    - Dst: NEXT_BYTE_SHIFT
      Src: /src/nss/lib/freebl/arcfour.c:450,1
    - Dst: NEXT_BYTE_SHIFT
      Src: /src/nss/lib/freebl/arcfour.c:476,1
    - Dst: ARCFOUR_NEXT_WORD
      Src: /src/nss/lib/freebl/arcfour.c:504,1
    - Dst: ARCFOUR_NEXT_WORD
      Src: /src/nss/lib/freebl/arcfour.c:518,1
    - Dst: ARCFOUR_NEXT_BYTE
      Src: /src/nss/lib/freebl/arcfour.c:535,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 89
    argCount: 6
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - RC4Context*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 378
    functionDepth: 2
    functionLinenumber: 378
    functionLinenumberEnd: 541
    functionName: rc4_wordconv
    functionSourceFile: /src/nss/lib/freebl/arcfour.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - ARCFOUR_NEXT_WORD
    - rc4_no_opt
    - NEXT_BYTE_SHIFT
    - PORT_SetError
    - ARCFOUR_NEXT_BYTE
    - PR_STATIC_ASSERT
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus rc4_wordconv(RC4Context *cx, unsigned char *output,\n             unsigned
      int *outputLen, unsigned int maxOutputLen,\n             const unsigned char
      *input, unsigned int inputLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/arcfour.c:550,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/arcfour.c:552,1
    - Dst: ARCFOUR
      Src: /src/nss/lib/freebl/arcfour.c:556,1
    - Dst: rc4_wordconv
      Src: /src/nss/lib/freebl/arcfour.c:561,1
    - Dst: rc4_unrolled
      Src: /src/nss/lib/freebl/arcfour.c:564,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 6
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - RC4Context*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 545
    functionDepth: 3
    functionLinenumber: 545
    functionLinenumberEnd: 566
    functionName: RC4_Encrypt
    functionSourceFile: /src/nss/lib/freebl/arcfour.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - rc4_unrolled
    - ARCFOUR
    - rc4_wordconv
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus RC4_Encrypt(RC4Context *cx, unsigned char *output,\n            unsigned
      int *outputLen, unsigned int maxOutputLen,\n            const unsigned char
      *input, unsigned int inputLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/arcfour.c:573,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/arcfour.c:575,1
    - Dst: ARCFOUR
      Src: /src/nss/lib/freebl/arcfour.c:580,1
    - Dst: rc4_wordconv
      Src: /src/nss/lib/freebl/arcfour.c:585,1
    - Dst: rc4_unrolled
      Src: /src/nss/lib/freebl/arcfour.c:588,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 6
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - RC4Context*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 568
    functionDepth: 3
    functionLinenumber: 568
    functionLinenumberEnd: 590
    functionName: RC4_Decrypt
    functionSourceFile: /src/nss/lib/freebl/arcfour.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - rc4_unrolled
    - ARCFOUR
    - rc4_wordconv
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus RC4_Decrypt(RC4Context *cx, unsigned char *output,\n            unsigned
      int *outputLen, unsigned int maxOutputLen,\n            const unsigned char
      *input, unsigned int inputLen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZNew
      Src: /src/nss/lib/freebl/ppc-gcm-wrap.c:55,1
    - Dst: ppc_aes_gcmINIT
      Src: /src/nss/lib/freebl/ppc-gcm-wrap.c:68,1
    - Dst: gcm_InitIVContext
      Src: /src/nss/lib/freebl/ppc-gcm-wrap.c:70,1
    - Dst: ppc_aes_gcmInitCounter
      Src: /src/nss/lib/freebl/ppc-gcm-wrap.c:81,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/ppc-gcm-wrap.c:85,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - context
    - cipher
    - params
    argTypes:
    - void*
    - freeblCipherFunc
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 91
    functionName: ppc_AES_GCM_CreateContext
    functionSourceFile: /src/nss/lib/freebl/ppc-gcm-wrap.c
    functionUses: 0
    functionsReached:
    - PORT_ZNew
    - PORT_Free
    - gcm_InitIVContext
    - ppc_aes_gcmInitCounter
    - ppc_aes_gcmINIT
    linkageType: ''
    returnType: ppc_AES_GCMContext
    signature: "ppc_AES_GCMContext *\nppc_AES_GCM_CreateContext(void *context,\n                          freeblCipherFunc
      cipher,\n                          const unsigned char *params)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ppc-gcm-wrap.c:103,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ppc-gcm-wrap.c:110,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/ppc-gcm-wrap.c:120,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/ppc-gcm-wrap.c:121,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/ppc-gcm-wrap.c:125,1
    - Dst: ppc_aes_gcmHASH
      Src: /src/nss/lib/freebl/ppc-gcm-wrap.c:133,1
    - Dst: ppc_aes_gcmTAG
      Src: /src/nss/lib/freebl/ppc-gcm-wrap.c:135,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/ppc-gcm-wrap.c:144,1
    - Dst: ppc_aes_gcmHASH
      Src: /src/nss/lib/freebl/ppc-gcm-wrap.c:164,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 6
    argNames:
    - gcm
    - iv
    - ivLen
    - tagBits
    - aad
    - aadLen
    argTypes:
    - ppc_AES_GCMContext*
    - unsigned char*
    - unsigned long
    - unsigned long
    - unsigned char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 167
    functionName: ppc_aes_gcmInitCounter
    functionSourceFile: /src/nss/lib/freebl/ppc-gcm-wrap.c
    functionUses: 1
    functionsReached:
    - ppc_aes_gcmTAG
    - PORT_Memcpy
    - PORT_SetError
    - ppc_aes_gcmHASH
    - PORT_Memset
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ppc_aes_gcmInitCounter(ppc_AES_GCMContext *gcm,\n                       const
      unsigned char *iv, unsigned long ivLen,\n                       unsigned long
      tagBits,\n                       const unsigned char *aad, unsigned long aadLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SafeZero
      Src: /src/nss/lib/freebl/ppc-gcm-wrap.c:172,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/ppc-gcm-wrap.c:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - gcm
    - freeit
    argTypes:
    - ppc_AES_GCMContext*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 176
    functionName: ppc_AES_GCM_DestroyContext
    functionSourceFile: /src/nss/lib/freebl/ppc-gcm-wrap.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - PORT_SafeZero
    linkageType: ''
    returnType: void
    signature: void ppc_AES_GCM_DestroyContext(ppc_AES_GCMContext *gcm, PRBool freeit)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ppc-gcm-wrap.c:193,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ppc-gcm-wrap.c:198,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ppc-gcm-wrap.c:204,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ppc-gcm-wrap.c:209,1
    - Dst: ppc_aes_gcmCRYPT
      Src: /src/nss/lib/freebl/ppc-gcm-wrap.c:213,1
    - Dst: ppc_aes_gcmHASH
      Src: /src/nss/lib/freebl/ppc-gcm-wrap.c:220,1
    - Dst: ppc_aes_gcmTAG
      Src: /src/nss/lib/freebl/ppc-gcm-wrap.c:228,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 7
    argNames:
    - gcm
    - outbuf
    - outlen
    - maxout
    - inbuf
    - inlen
    - blocksize
    argTypes:
    - ppc_AES_GCMContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 242
    functionName: ppc_AES_GCM_EncryptUpdate
    functionSourceFile: /src/nss/lib/freebl/ppc-gcm-wrap.c
    functionUses: 0
    functionsReached:
    - ppc_aes_gcmCRYPT
    - PORT_SetError
    - ppc_aes_gcmTAG
    - ppc_aes_gcmHASH
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ppc_AES_GCM_EncryptUpdate(ppc_AES_GCMContext *gcm,\n                          unsigned
      char *outbuf,\n                          unsigned int *outlen, unsigned int
      maxout,\n                          const unsigned char *inbuf, unsigned int
      inlen,\n                          unsigned int blocksize)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ppc-gcm-wrap.c:256,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ppc-gcm-wrap.c:264,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ppc-gcm-wrap.c:275,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ppc-gcm-wrap.c:281,1
    - Dst: ppc_aes_gcmHASH
      Src: /src/nss/lib/freebl/ppc-gcm-wrap.c:285,1
    - Dst: ppc_aes_gcmCRYPT
      Src: /src/nss/lib/freebl/ppc-gcm-wrap.c:290,1
    - Dst: ppc_aes_gcmTAG
      Src: /src/nss/lib/freebl/ppc-gcm-wrap.c:299,1
    - Dst: NSS_SecureMemcmp
      Src: /src/nss/lib/freebl/ppc-gcm-wrap.c:307,1
    - Dst: memset
      Src: /src/nss/lib/freebl/ppc-gcm-wrap.c:308,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ppc-gcm-wrap.c:311,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 7
    argNames:
    - gcm
    - outbuf
    - outlen
    - maxout
    - inbuf
    - inlen
    - blocksize
    argTypes:
    - ppc_AES_GCMContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 317
    functionName: ppc_AES_GCM_DecryptUpdate
    functionSourceFile: /src/nss/lib/freebl/ppc-gcm-wrap.c
    functionUses: 0
    functionsReached:
    - ppc_aes_gcmCRYPT
    - ppc_aes_gcmTAG
    - NSS_SecureMemcmp
    - PORT_SetError
    - memset
    - ppc_aes_gcmHASH
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ppc_AES_GCM_DecryptUpdate(ppc_AES_GCMContext *gcm,\n                          unsigned
      char *outbuf,\n                          unsigned int *outlen, unsigned int
      maxout,\n                          const unsigned char *inbuf, unsigned int
      inlen,\n                          unsigned int blocksize)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ppc-gcm-wrap.c:338,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ppc-gcm-wrap.c:344,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ppc-gcm-wrap.c:351,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ppc-gcm-wrap.c:357,1
    - Dst: gcm_GenerateIV
      Src: /src/nss/lib/freebl/ppc-gcm-wrap.c:361,1
    - Dst: ppc_aes_gcmInitCounter
      Src: /src/nss/lib/freebl/ppc-gcm-wrap.c:367,1
    - Dst: ppc_aes_gcmCRYPT
      Src: /src/nss/lib/freebl/ppc-gcm-wrap.c:375,1
    - Dst: ppc_aes_gcmHASH
      Src: /src/nss/lib/freebl/ppc-gcm-wrap.c:377,1
    - Dst: ppc_aes_gcmTAG
      Src: /src/nss/lib/freebl/ppc-gcm-wrap.c:381,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/ppc-gcm-wrap.c:384,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 11
    argNames:
    - gcm
    - outbuf
    - outlen
    - maxout
    - inbuf
    - inlen
    - params
    - paramLen
    - aad
    - aadLen
    - blocksize
    argTypes:
    - ppc_AES_GCMContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    - void*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 386
    functionName: ppc_AES_GCM_EncryptAEAD
    functionSourceFile: /src/nss/lib/freebl/ppc-gcm-wrap.c
    functionUses: 0
    functionsReached:
    - ppc_aes_gcmCRYPT
    - ppc_aes_gcmTAG
    - PORT_Memcpy
    - gcm_GenerateIV
    - PORT_SetError
    - ppc_aes_gcmInitCounter
    - ppc_aes_gcmHASH
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ppc_AES_GCM_EncryptAEAD(ppc_AES_GCMContext *gcm,\n                        unsigned
      char *outbuf,\n                        unsigned int *outlen, unsigned int maxout,\n
      \                       const unsigned char *inbuf, unsigned int inlen,\n                        void
      *params, unsigned int paramLen,\n                        const unsigned char
      *aad, unsigned int aadLen,\n                        unsigned int blocksize)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ppc-gcm-wrap.c:407,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ppc-gcm-wrap.c:413,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ppc-gcm-wrap.c:421,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ppc-gcm-wrap.c:427,1
    - Dst: ppc_aes_gcmInitCounter
      Src: /src/nss/lib/freebl/ppc-gcm-wrap.c:431,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/ppc-gcm-wrap.c:439,1
    - Dst: ppc_aes_gcmHASH
      Src: /src/nss/lib/freebl/ppc-gcm-wrap.c:441,1
    - Dst: ppc_aes_gcmCRYPT
      Src: /src/nss/lib/freebl/ppc-gcm-wrap.c:442,1
    - Dst: ppc_aes_gcmTAG
      Src: /src/nss/lib/freebl/ppc-gcm-wrap.c:446,1
    - Dst: NSS_SecureMemcmp
      Src: /src/nss/lib/freebl/ppc-gcm-wrap.c:448,1
    - Dst: memset
      Src: /src/nss/lib/freebl/ppc-gcm-wrap.c:449,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ppc-gcm-wrap.c:452,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 11
    argNames:
    - gcm
    - outbuf
    - outlen
    - maxout
    - inbuf
    - inlen
    - params
    - paramLen
    - aad
    - aadLen
    - blocksize
    argTypes:
    - ppc_AES_GCMContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    - void*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 458
    functionName: ppc_AES_GCM_DecryptAEAD
    functionSourceFile: /src/nss/lib/freebl/ppc-gcm-wrap.c
    functionUses: 0
    functionsReached:
    - ppc_aes_gcmCRYPT
    - PORT_Assert
    - ppc_aes_gcmTAG
    - NSS_SecureMemcmp
    - PORT_SetError
    - memset
    - ppc_aes_gcmInitCounter
    - ppc_aes_gcmHASH
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ppc_AES_GCM_DecryptAEAD(ppc_AES_GCMContext *gcm,\n                        unsigned
      char *outbuf,\n                        unsigned int *outlen, unsigned int maxout,\n
      \                       const unsigned char *inbuf, unsigned int inlen,\n                        void
      *params, unsigned int paramLen,\n                        const unsigned char
      *aad, unsigned int aadLen,\n                        unsigned int blocksize)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: QueryPerformanceCounter
      Src: /src/nss/lib/freebl/win_rand.c:16,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - lpdwHigh
    - lpdwLow
    argTypes:
    - LPDWORD
    - LPDWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 22
    functionName: CurrentClockTickTime
    functionSourceFile: /src/nss/lib/freebl/win_rand.c
    functionUses: 0
    functionsReached:
    - QueryPerformanceCounter
    linkageType: ''
    returnType: BOOL
    signature: BOOL CurrentClockTickTime(LPDWORD lpdwHigh, LPDWORD lpdwLow)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CurrentClockTickTime
      Src: /src/nss/lib/freebl/win_rand.c:35,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/win_rand.c:39,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/win_rand.c:47,1
    - Dst: GetTickCount
      Src: /src/nss/lib/freebl/win_rand.c:55,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/win_rand.c:58,1
    - Dst: time
      Src: /src/nss/lib/freebl/win_rand.c:66,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/win_rand.c:68,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 2
    argNames:
    - buf
    - maxbuf
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 72
    functionName: RNG_GetNoise
    functionSourceFile: /src/nss/lib/freebl/win_rand.c
    functionUses: 0
    functionsReached:
    - memcpy
    - CurrentClockTickTime
    - time
    - GetTickCount
    linkageType: ''
    returnType: size_t
    signature: size_t RNG_GetNoise(void *buf, size_t maxbuf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RNG_GetNoise
      Src: /src/nss/lib/freebl/win_rand.c:88,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/lib/freebl/win_rand.c:89,1
    - Dst: GlobalMemoryStatus
      Src: /src/nss/lib/freebl/win_rand.c:92,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/lib/freebl/win_rand.c:93,1
    - Dst: GetLogicalDrives
      Src: /src/nss/lib/freebl/win_rand.c:95,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/lib/freebl/win_rand.c:96,1
    - Dst: GetComputerName
      Src: /src/nss/lib/freebl/win_rand.c:99,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/lib/freebl/win_rand.c:100,1
    - Dst: GetCurrentProcess
      Src: /src/nss/lib/freebl/win_rand.c:102,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/lib/freebl/win_rand.c:104,1
    - Dst: GetCurrentProcessId
      Src: /src/nss/lib/freebl/win_rand.c:106,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/lib/freebl/win_rand.c:107,1
    - Dst: GetCurrentThreadId
      Src: /src/nss/lib/freebl/win_rand.c:109,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/lib/freebl/win_rand.c:110,1
    - Dst: GetVolumeInformation
      Src: /src/nss/lib/freebl/win_rand.c:114,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/lib/freebl/win_rand.c:123,1
    - Dst: strlen
      Src: /src/nss/lib/freebl/win_rand.c:123,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/lib/freebl/win_rand.c:124,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/lib/freebl/win_rand.c:125,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/lib/freebl/win_rand.c:126,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/lib/freebl/win_rand.c:127,1
    - Dst: strlen
      Src: /src/nss/lib/freebl/win_rand.c:127,1
    - Dst: GetDiskFreeSpace
      Src: /src/nss/lib/freebl/win_rand.c:129,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/lib/freebl/win_rand.c:131,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/lib/freebl/win_rand.c:132,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/lib/freebl/win_rand.c:133,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/lib/freebl/win_rand.c:134,1
    - Dst: RNG_GetNoise
      Src: /src/nss/lib/freebl/win_rand.c:137,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/lib/freebl/win_rand.c:138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 139
    functionName: RNG_SystemInfoForRNG
    functionSourceFile: /src/nss/lib/freebl/win_rand.c
    functionUses: 3
    functionsReached:
    - GlobalMemoryStatus
    - GetCurrentProcess
    - GetDiskFreeSpace
    - GetCurrentProcessId
    - GetCurrentThreadId
    - GetLogicalDrives
    - RNG_GetNoise
    - GetComputerName
    - GetVolumeInformation
    - RNG_RandomUpdate
    - strlen
    linkageType: ''
    returnType: void
    signature: void RNG_SystemInfoForRNG(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RtlGenRandom
      Src: /src/nss/lib/freebl/win_rand.c:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - dest
    - maxLen
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 160
    functionName: RNG_SystemRNG
    functionSourceFile: /src/nss/lib/freebl/win_rand.c
    functionUses: 1
    functionsReached:
    - RtlGenRandom
    linkageType: ''
    returnType: size_t
    signature: size_t RNG_SystemRNG(void *dest, size_t maxLen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: SHR
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHR(x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: SHL
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHL(x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: Ch
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Ch(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: Maj
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Maj(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: SHA_MIN
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA_MIN(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: SHA_HTONL
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA_HTONL(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 99
    functionName: SHA_HTONL
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA_HTONL(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 107
    functionName: swap4b
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRUint32
    signature: PRUint32 swap4b(PRUint32 value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: SHA_HTONL
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA_HTONL(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 129
    functionName: swap4b
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRUint32
    signature: PRUint32 swap4b(PRUint32 value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: SHA_HTONL
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA_HTONL(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 139
    functionName: swap4b
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRUint32
    signature: PRUint32 swap4b(PRUint32 value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 141
    functionName: SHA_HTONL
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA_HTONL(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 143
    functionName: BYTESWAP4
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTESWAP4(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 148
    functionName: ROTR32
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTR32(x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 149
    functionName: ROTL32
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTL32(x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 151
    functionName: ROTR32
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTR32(x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 152
    functionName: ROTL32
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTL32(x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 156
    functionName: S0
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S0(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 157
    functionName: S1
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 158
    functionName: s0
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: s0(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 159
    functionName: s1
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: s1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/sha512.c:171,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/sha512.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SHA256Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 173
    functionName: SHA256_Compress_Native
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    linkageType: ''
    returnType: void
    signature: void SHA256_Compress_Native(SHA256Context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/sha512.c:179,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/sha512.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - input
    - inputLen
    argTypes:
    - SHA256Context*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 181
    functionName: SHA256_Update_Native
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    linkageType: ''
    returnType: void
    signature: "void SHA256_Update_Native(SHA256Context *ctx, const unsigned char
      *input,\n                     unsigned int inputLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_New
      Src: /src/nss/lib/freebl/sha512.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 189
    functionName: SHA256_NewContext
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 1
    functionsReached:
    - PORT_New
    linkageType: ''
    returnType: SHA256Context
    signature: 'SHA256Context *

      SHA256_NewContext(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/freebl/sha512.c:194,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/sha512.c:196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - freeit
    argTypes:
    - SHA256Context*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 198
    functionName: SHA256_DestroyContext
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 1
    functionsReached:
    - memset
    - PORT_Free
    linkageType: ''
    returnType: void
    signature: void SHA256_DestroyContext(SHA256Context *ctx, PRBool freeit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/freebl/sha512.c:205,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/sha512.c:206,1
    - Dst: arm_sha2_support
      Src: /src/nss/lib/freebl/sha512.c:210,1
    - Dst: sha_support
      Src: /src/nss/lib/freebl/sha512.c:210,1
    - Dst: ssse3_support
      Src: /src/nss/lib/freebl/sha512.c:210,1
    - Dst: sse4_1_support
      Src: /src/nss/lib/freebl/sha512.c:210,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SHA256Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 220
    functionName: SHA256_Begin
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 1
    functionsReached:
    - memcpy
    - sse4_1_support
    - ssse3_support
    - arm_sha2_support
    - memset
    - sha_support
    linkageType: ''
    returnType: void
    signature: void SHA256_Begin(SHA256Context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - n
    - ','
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 232
    functionName: ROUND
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROUND(n, a, b, c, d, e, f, g, h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - n
    - ','
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 239
    functionName: ROUND
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROUND(n, a, b, c, d, e, f, g, h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vec_splats
      Src: /src/nss/lib/freebl/sha512.c:320,1
    - Dst: vec_splats
      Src: /src/nss/lib/freebl/sha512.c:321,1
    - Dst: vec_vsx_ld
      Src: /src/nss/lib/freebl/sha512.c:329,1
    - Dst: vec_perm
      Src: /src/nss/lib/freebl/sha512.c:330,1
    - Dst: vec_sld
      Src: /src/nss/lib/freebl/sha512.c:335,1
    - Dst: vec_sld
      Src: /src/nss/lib/freebl/sha512.c:336,1
    - Dst: __builtin_crypto_vshasigmaw
      Src: /src/nss/lib/freebl/sha512.c:337,1
    - Dst: __builtin_crypto_vshasigmaw
      Src: /src/nss/lib/freebl/sha512.c:339,1
    - Dst: vec_sro
      Src: /src/nss/lib/freebl/sha512.c:340,1
    - Dst: __builtin_crypto_vshasigmaw
      Src: /src/nss/lib/freebl/sha512.c:344,1
    - Dst: vec_slo
      Src: /src/nss/lib/freebl/sha512.c:345,1
    - Dst: vec_ld
      Src: /src/nss/lib/freebl/sha512.c:350,1
    - Dst: vec_splats
      Src: /src/nss/lib/freebl/sha512.c:354,1
    - Dst: vec_splats
      Src: /src/nss/lib/freebl/sha512.c:355,1
    - Dst: vec_splats
      Src: /src/nss/lib/freebl/sha512.c:356,1
    - Dst: vec_splats
      Src: /src/nss/lib/freebl/sha512.c:357,1
    - Dst: vec_splats
      Src: /src/nss/lib/freebl/sha512.c:358,1
    - Dst: vec_splats
      Src: /src/nss/lib/freebl/sha512.c:359,1
    - Dst: vec_splats
      Src: /src/nss/lib/freebl/sha512.c:360,1
    - Dst: vec_splats
      Src: /src/nss/lib/freebl/sha512.c:361,1
    - Dst: BYTESWAP4
      Src: /src/nss/lib/freebl/sha512.c:380,1
    - Dst: BYTESWAP4
      Src: /src/nss/lib/freebl/sha512.c:381,1
    - Dst: BYTESWAP4
      Src: /src/nss/lib/freebl/sha512.c:382,1
    - Dst: BYTESWAP4
      Src: /src/nss/lib/freebl/sha512.c:383,1
    - Dst: BYTESWAP4
      Src: /src/nss/lib/freebl/sha512.c:384,1
    - Dst: BYTESWAP4
      Src: /src/nss/lib/freebl/sha512.c:385,1
    - Dst: BYTESWAP4
      Src: /src/nss/lib/freebl/sha512.c:386,1
    - Dst: BYTESWAP4
      Src: /src/nss/lib/freebl/sha512.c:387,1
    - Dst: BYTESWAP4
      Src: /src/nss/lib/freebl/sha512.c:388,1
    - Dst: BYTESWAP4
      Src: /src/nss/lib/freebl/sha512.c:389,1
    - Dst: BYTESWAP4
      Src: /src/nss/lib/freebl/sha512.c:390,1
    - Dst: BYTESWAP4
      Src: /src/nss/lib/freebl/sha512.c:391,1
    - Dst: BYTESWAP4
      Src: /src/nss/lib/freebl/sha512.c:392,1
    - Dst: BYTESWAP4
      Src: /src/nss/lib/freebl/sha512.c:393,1
    - Dst: BYTESWAP4
      Src: /src/nss/lib/freebl/sha512.c:394,1
    - Dst: BYTESWAP4
      Src: /src/nss/lib/freebl/sha512.c:395,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:405,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:409,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:410,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:411,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:412,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:414,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:415,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:416,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:417,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:418,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:419,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:420,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:421,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:422,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:423,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:425,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:426,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:427,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:428,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:429,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:430,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:431,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:432,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:433,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:434,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:436,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:437,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:438,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:439,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:440,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:441,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:442,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:443,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:444,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:445,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:447,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:448,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:449,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:450,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:451,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:452,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:453,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:454,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:455,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:456,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:458,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:459,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:460,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:461,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:482,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:483,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:484,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:485,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:486,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:487,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:488,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:489,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 132
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SHA256Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 507
    functionName: SHA256_Compress_Generic
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached:
    - INITW
    - vec_sld
    - vec_sro
    - vec_slo
    - vec_ld
    - vec_splats
    - ROUND
    - BYTESWAP4
    - vec_vsx_ld
    - __builtin_crypto_vshasigmaw
    - vec_perm
    linkageType: ''
    returnType: void
    signature: void SHA256_Compress_Generic(SHA256Context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 399
    functionName: INITW
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INITW(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA256Context*::update
      Src: /src/nss/lib/freebl/sha512.c:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - input
    - inputLen
    argTypes:
    - SHA256Context*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 519
    functionName: SHA256_Update
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 1
    functionsReached:
    - SHA256Context*::update
    linkageType: ''
    returnType: void
    signature: "void SHA256_Update(SHA256Context *ctx, const unsigned char *input,\n
      \             unsigned int inputLen)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/sha512.c:538,1
    - Dst: SHA256_Compress_Generic
      Src: /src/nss/lib/freebl/sha512.c:542,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/sha512.c:547,1
    - Dst: SHA256_Compress_Generic
      Src: /src/nss/lib/freebl/sha512.c:550,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/sha512.c:554,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - ctx
    - input
    - inputLen
    argTypes:
    - SHA256Context*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 521
    functionDepth: 2
    functionLinenumber: 521
    functionLinenumberEnd: 555
    functionName: SHA256_Update_Generic
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached:
    - memcpy
    - SHA256_Compress_Generic
    linkageType: ''
    returnType: void
    signature: "void SHA256_Update_Generic(SHA256Context *ctx, const unsigned char
      *input,\n                      unsigned int inputLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SHA256Context*::update
      Src: /src/nss/lib/freebl/sha512.c:568,1
    - Dst: SHA_HTONL
      Src: /src/nss/lib/freebl/sha512.c:571,1
    - Dst: SHA_HTONL
      Src: /src/nss/lib/freebl/sha512.c:572,1
    - Dst: SHA256Context*::compress
      Src: /src/nss/lib/freebl/sha512.c:577,1
    - Dst: BYTESWAP4
      Src: /src/nss/lib/freebl/sha512.c:581,1
    - Dst: BYTESWAP4
      Src: /src/nss/lib/freebl/sha512.c:582,1
    - Dst: BYTESWAP4
      Src: /src/nss/lib/freebl/sha512.c:583,1
    - Dst: BYTESWAP4
      Src: /src/nss/lib/freebl/sha512.c:584,1
    - Dst: BYTESWAP4
      Src: /src/nss/lib/freebl/sha512.c:585,1
    - Dst: BYTESWAP4
      Src: /src/nss/lib/freebl/sha512.c:586,1
    - Dst: BYTESWAP4
      Src: /src/nss/lib/freebl/sha512.c:587,1
    - Dst: BYTESWAP4
      Src: /src/nss/lib/freebl/sha512.c:588,1
    - Dst: PR_MIN
      Src: /src/nss/lib/freebl/sha512.c:590,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/sha512.c:591,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 4
    argNames:
    - ctx
    - digest
    - digestLen
    - maxDigestLen
    argTypes:
    - SHA256Context*
    - unsigned char*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 557
    functionDepth: 1
    functionLinenumber: 557
    functionLinenumberEnd: 594
    functionName: SHA256_End
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 1
    functionsReached:
    - SHA_HTONL
    - memcpy
    - PR_MIN
    - SHA256Context*::compress
    - SHA256Context*::update
    - BYTESWAP4
    linkageType: ''
    returnType: void
    signature: "void SHA256_End(SHA256Context *ctx, unsigned char *digest,\n           unsigned
      int *digestLen, unsigned int maxDigestLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/sha512.c:603,1
    - Dst: BYTESWAP4
      Src: /src/nss/lib/freebl/sha512.c:606,1
    - Dst: BYTESWAP4
      Src: /src/nss/lib/freebl/sha512.c:607,1
    - Dst: BYTESWAP4
      Src: /src/nss/lib/freebl/sha512.c:608,1
    - Dst: BYTESWAP4
      Src: /src/nss/lib/freebl/sha512.c:609,1
    - Dst: BYTESWAP4
      Src: /src/nss/lib/freebl/sha512.c:610,1
    - Dst: BYTESWAP4
      Src: /src/nss/lib/freebl/sha512.c:611,1
    - Dst: BYTESWAP4
      Src: /src/nss/lib/freebl/sha512.c:612,1
    - Dst: BYTESWAP4
      Src: /src/nss/lib/freebl/sha512.c:613,1
    - Dst: PR_MIN
      Src: /src/nss/lib/freebl/sha512.c:616,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/sha512.c:617,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 4
    argNames:
    - ctx
    - digest
    - digestLen
    - maxDigestLen
    argTypes:
    - SHA256Context*
    - unsigned char*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 596
    functionDepth: 1
    functionLinenumber: 596
    functionLinenumberEnd: 620
    functionName: SHA256_EndRaw
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached:
    - BYTESWAP4
    - memcpy
    - PR_MIN
    linkageType: ''
    returnType: void
    signature: "void SHA256_EndRaw(SHA256Context *ctx, unsigned char *digest,\n              unsigned
      int *digestLen, unsigned int maxDigestLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA256_Begin
      Src: /src/nss/lib/freebl/sha512.c:629,1
    - Dst: SHA256_Update
      Src: /src/nss/lib/freebl/sha512.c:630,1
    - Dst: SHA256_End
      Src: /src/nss/lib/freebl/sha512.c:631,1
    - Dst: memset
      Src: /src/nss/lib/freebl/sha512.c:632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - dest
    - src
    - src_length
    argTypes:
    - unsigned char*
    - unsigned char*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 635
    functionName: SHA256_HashBuf
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 1
    functionsReached:
    - memset
    - SHA256_Begin
    - SHA256_Update
    - SHA256_End
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SHA256_HashBuf(unsigned char *dest, const unsigned char
      *src,\n               PRUint32 src_length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA256_HashBuf
      Src: /src/nss/lib/freebl/sha512.c:640,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/freebl/sha512.c:640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - unsigned char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 637
    functionDepth: 1
    functionLinenumber: 637
    functionLinenumberEnd: 641
    functionName: SHA256_Hash
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached:
    - SHA256_HashBuf
    - PORT_Strlen
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SHA256_Hash(unsigned char *dest, const char *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SHA256Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 643
    functionDepth: 0
    functionLinenumber: 643
    functionLinenumberEnd: 646
    functionName: SHA256_TraceState
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SHA256_TraceState(SHA256Context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SHA256Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 648
    functionDepth: 0
    functionLinenumber: 648
    functionLinenumberEnd: 652
    functionName: SHA256_FlattenSize
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int SHA256_FlattenSize(SHA256Context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/sha512.c:657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - space
    argTypes:
    - SHA256Context*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 654
    functionDepth: 0
    functionLinenumber: 654
    functionLinenumberEnd: 659
    functionName: SHA256_Flatten
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 1
    functionsReached:
    - PORT_Memcpy
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SHA256_Flatten(SHA256Context *ctx, unsigned char *space)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SHA256_NewContext
      Src: /src/nss/lib/freebl/sha512.c:664,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/sha512.c:666,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - space
    - arg
    argTypes:
    - unsigned char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 661
    functionDepth: 0
    functionLinenumber: 661
    functionLinenumberEnd: 668
    functionName: SHA256_Resurrect
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 1
    functionsReached:
    - SHA256_NewContext
    - PORT_Memcpy
    linkageType: ''
    returnType: SHA256Context
    signature: 'SHA256Context *

      SHA256_Resurrect(unsigned char *space, void *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/sha512.c:673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - SHA256Context*
    - SHA256Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 674
    functionName: SHA256_Clone
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void SHA256_Clone(SHA256Context *dest, SHA256Context *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA256_NewContext
      Src: /src/nss/lib/freebl/sha512.c:687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 688
    functionName: SHA224_NewContext
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 1
    functionsReached:
    - SHA256_NewContext
    linkageType: ''
    returnType: SHA224Context
    signature: 'SHA224Context *

      SHA224_NewContext(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA256_DestroyContext
      Src: /src/nss/lib/freebl/sha512.c:693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - freeit
    argTypes:
    - SHA224Context*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 690
    functionDepth: 0
    functionLinenumber: 690
    functionLinenumberEnd: 694
    functionName: SHA224_DestroyContext
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 1
    functionsReached:
    - SHA256_DestroyContext
    linkageType: ''
    returnType: void
    signature: void SHA224_DestroyContext(SHA224Context *ctx, PRBool freeit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/freebl/sha512.c:701,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/sha512.c:702,1
    - Dst: arm_sha2_support
      Src: /src/nss/lib/freebl/sha512.c:706,1
    - Dst: sha_support
      Src: /src/nss/lib/freebl/sha512.c:706,1
    - Dst: ssse3_support
      Src: /src/nss/lib/freebl/sha512.c:706,1
    - Dst: sse4_1_support
      Src: /src/nss/lib/freebl/sha512.c:706,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SHA224Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 696
    functionDepth: 1
    functionLinenumber: 696
    functionLinenumberEnd: 718
    functionName: SHA224_Begin
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 1
    functionsReached:
    - memcpy
    - sse4_1_support
    - ssse3_support
    - arm_sha2_support
    - memset
    - sha_support
    linkageType: ''
    returnType: void
    signature: void SHA224_Begin(SHA224Context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA224Context*::update
      Src: /src/nss/lib/freebl/sha512.c:724,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - input
    - inputLen
    argTypes:
    - SHA224Context*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 720
    functionDepth: 0
    functionLinenumber: 720
    functionLinenumberEnd: 725
    functionName: SHA224_Update
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 1
    functionsReached:
    - SHA224Context*::update
    linkageType: ''
    returnType: void
    signature: "void SHA224_Update(SHA224Context *ctx, const unsigned char *input,\n
      \             unsigned int inputLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA_MIN
      Src: /src/nss/lib/freebl/sha512.c:731,1
    - Dst: SHA256_End
      Src: /src/nss/lib/freebl/sha512.c:732,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - digest
    - digestLen
    - maxDigestLen
    argTypes:
    - SHA256Context*
    - unsigned char*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 727
    functionDepth: 1
    functionLinenumber: 727
    functionLinenumberEnd: 733
    functionName: SHA224_End
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 1
    functionsReached:
    - SHA_MIN
    - SHA256_End
    linkageType: ''
    returnType: void
    signature: "void SHA224_End(SHA256Context *ctx, unsigned char *digest,\n           unsigned
      int *digestLen, unsigned int maxDigestLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA_MIN
      Src: /src/nss/lib/freebl/sha512.c:739,1
    - Dst: SHA256_EndRaw
      Src: /src/nss/lib/freebl/sha512.c:740,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - digest
    - digestLen
    - maxDigestLen
    argTypes:
    - SHA256Context*
    - unsigned char*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 735
    functionDepth: 2
    functionLinenumber: 735
    functionLinenumberEnd: 741
    functionName: SHA224_EndRaw
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached:
    - SHA_MIN
    - SHA256_EndRaw
    linkageType: ''
    returnType: void
    signature: "void SHA224_EndRaw(SHA256Context *ctx, unsigned char *digest,\n              unsigned
      int *digestLen, unsigned int maxDigestLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA224_Begin
      Src: /src/nss/lib/freebl/sha512.c:750,1
    - Dst: SHA256_Update
      Src: /src/nss/lib/freebl/sha512.c:751,1
    - Dst: SHA256_End
      Src: /src/nss/lib/freebl/sha512.c:752,1
    - Dst: memset
      Src: /src/nss/lib/freebl/sha512.c:753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - dest
    - src
    - src_length
    argTypes:
    - unsigned char*
    - unsigned char*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 743
    functionDepth: 0
    functionLinenumber: 743
    functionLinenumberEnd: 756
    functionName: SHA224_HashBuf
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 1
    functionsReached:
    - memset
    - SHA256_Update
    - SHA224_Begin
    - SHA256_End
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SHA224_HashBuf(unsigned char *dest, const unsigned char
      *src,\n               PRUint32 src_length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA224_HashBuf
      Src: /src/nss/lib/freebl/sha512.c:761,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/freebl/sha512.c:761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - unsigned char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 758
    functionDepth: 1
    functionLinenumber: 758
    functionLinenumberEnd: 762
    functionName: SHA224_Hash
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached:
    - PORT_Strlen
    - SHA224_HashBuf
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SHA224_Hash(unsigned char *dest, const char *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SHA224Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 764
    functionDepth: 0
    functionLinenumber: 764
    functionLinenumberEnd: 767
    functionName: SHA224_TraceState
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SHA224_TraceState(SHA224Context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA256_FlattenSize
      Src: /src/nss/lib/freebl/sha512.c:772,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SHA224Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 769
    functionDepth: 0
    functionLinenumber: 769
    functionLinenumberEnd: 773
    functionName: SHA224_FlattenSize
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 1
    functionsReached:
    - SHA256_FlattenSize
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int SHA224_FlattenSize(SHA224Context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA256_Flatten
      Src: /src/nss/lib/freebl/sha512.c:778,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - space
    argTypes:
    - SHA224Context*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 775
    functionDepth: 0
    functionLinenumber: 775
    functionLinenumberEnd: 779
    functionName: SHA224_Flatten
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 1
    functionsReached:
    - SHA256_Flatten
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SHA224_Flatten(SHA224Context *ctx, unsigned char *space)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA256_Resurrect
      Src: /src/nss/lib/freebl/sha512.c:784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - space
    - arg
    argTypes:
    - unsigned char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 781
    functionDepth: 0
    functionLinenumber: 781
    functionLinenumberEnd: 785
    functionName: SHA224_Resurrect
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 1
    functionsReached:
    - SHA256_Resurrect
    linkageType: ''
    returnType: SHA224Context
    signature: 'SHA224Context *

      SHA224_Resurrect(unsigned char *space, void *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA256_Clone
      Src: /src/nss/lib/freebl/sha512.c:790,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - SHA224Context*
    - SHA224Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 787
    functionDepth: 0
    functionLinenumber: 787
    functionLinenumberEnd: 791
    functionName: SHA224_Clone
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached:
    - SHA256_Clone
    linkageType: ''
    returnType: void
    signature: void SHA224_Clone(SHA224Context *dest, SHA224Context *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 797
    functionDepth: 0
    functionLinenumber: 797
    functionLinenumberEnd: 798
    functionName: S0
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S0(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 798
    functionDepth: 0
    functionLinenumber: 798
    functionLinenumberEnd: 799
    functionName: S1
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 799
    functionDepth: 0
    functionLinenumber: 799
    functionLinenumberEnd: 800
    functionName: s0
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: s0(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 800
    functionDepth: 0
    functionLinenumber: 800
    functionLinenumberEnd: 801
    functionName: s1
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: s1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - hi
    - ','
    - lo
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 803
    functionDepth: 0
    functionLinenumber: 803
    functionLinenumberEnd: 804
    functionName: ULLC
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ULLC(hi, lo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - hi
    - ','
    - lo
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 805
    functionDepth: 0
    functionLinenumber: 805
    functionLinenumberEnd: 806
    functionName: ULLC
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ULLC(hi, lo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - hi
    - ','
    - lo
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 807
    functionDepth: 0
    functionLinenumber: 807
    functionLinenumberEnd: 808
    functionName: ULLC
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ULLC(hi, lo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 810
    functionDepth: 0
    functionLinenumber: 810
    functionLinenumberEnd: 811
    functionName: BYTESWAP8
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTESWAP8(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - hi
    - ','
    - lo
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 815
    functionDepth: 0
    functionLinenumber: 815
    functionLinenumberEnd: 819
    functionName: ULLC
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ULLC(hi, lo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 819
    functionDepth: 0
    functionLinenumber: 819
    functionLinenumberEnd: 821
    functionName: FREEBL_HTONLL
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FREEBL_HTONLL(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 821
    functionDepth: 0
    functionLinenumber: 821
    functionLinenumberEnd: 830
    functionName: BYTESWAP8
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTESWAP8(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - hi
    - ','
    - lo
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 831
    functionDepth: 0
    functionLinenumber: 831
    functionLinenumberEnd: 835
    functionName: ULLC
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ULLC(hi, lo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_New
      Src: /src/nss/lib/freebl/sha512.c:963,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 965
      start: 960
    functionDepth: 1
    functionLinenumber: 960
    functionLinenumberEnd: 965
    functionName: SHA512_NewContext
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 3
    functionsReached:
    - PORT_New
    linkageType: ''
    returnType: SHA512Context
    signature: 'SHA512Context *

      SHA512_NewContext(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/freebl/sha512.c:970,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/sha512.c:972,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - freeit
    argTypes:
    - SHA512Context*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 967
    functionDepth: 0
    functionLinenumber: 967
    functionLinenumberEnd: 974
    functionName: SHA512_DestroyContext
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 3
    functionsReached:
    - memset
    - PORT_Free
    linkageType: ''
    returnType: void
    signature: void SHA512_DestroyContext(SHA512Context *ctx, PRBool freeit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/freebl/sha512.c:979,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/sha512.c:980,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SHA512Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 981
      start: 976
    functionDepth: 1
    functionLinenumber: 976
    functionLinenumberEnd: 981
    functionName: SHA512_Begin
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 3
    functionsReached:
    - memset
    - memcpy
    linkageType: ''
    returnType: void
    signature: void SHA512_Begin(SHA512Context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - n
    - ','
    - a
    - ','
    - d
    - ','
    - e
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 985
    functionDepth: 0
    functionLinenumber: 985
    functionLinenumberEnd: 987
    functionName: DUMP
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DUMP(n, a, d, e, h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - n
    - ','
    - a
    - ','
    - d
    - ','
    - e
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 988
    functionDepth: 0
    functionLinenumber: 988
    functionLinenumberEnd: 990
    functionName: DUMP
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DUMP(n, a, d, e, h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 997
    functionDepth: 0
    functionLinenumber: 997
    functionLinenumberEnd: 998
    functionName: ADDTO
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADDTO(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 999
    functionDepth: 0
    functionLinenumber: 999
    functionLinenumberEnd: 1000
    functionName: INITW
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INITW(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - n
    - ','
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 1001
    functionDepth: 0
    functionLinenumber: 1001
    functionLinenumberEnd: 1006
    functionName: ROUND
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROUND(n, a, b, c, d, e, f, g, h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 1012
    functionDepth: 0
    functionLinenumber: 1012
    functionLinenumberEnd: 1015
    functionName: ADDTO
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADDTO(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x
    - ','
    - n
    - ','
    - lo
    - ','
    - hi
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 1016
    functionDepth: 0
    functionLinenumber: 1016
    functionLinenumberEnd: 1017
    functionName: ROTR64a
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTR64a(x, n, lo, hi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x
    - ','
    - n
    - ','
    - lo
    - ','
    - hi
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 1017
    functionDepth: 0
    functionLinenumber: 1017
    functionLinenumberEnd: 1018
    functionName: ROTR64A
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTR64A(x, n, lo, hi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x
    - ','
    - n
    - ','
    - lo
    - ','
    - hi
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 1018
    functionDepth: 0
    functionLinenumber: 1018
    functionLinenumberEnd: 1019
    functionName: SHR64a
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHR64a(x, n, lo, hi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 1021
    functionDepth: 0
    functionLinenumber: 1021
    functionLinenumberEnd: 1022
    functionName: s0lo
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: s0lo(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 1022
    functionDepth: 0
    functionLinenumber: 1022
    functionLinenumberEnd: 1023
    functionName: s0hi
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: s0hi(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 1024
    functionDepth: 0
    functionLinenumber: 1024
    functionLinenumberEnd: 1025
    functionName: s1lo
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: s1lo(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 1025
    functionDepth: 0
    functionLinenumber: 1025
    functionLinenumberEnd: 1026
    functionName: s1hi
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: s1hi(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 1027
    functionDepth: 0
    functionLinenumber: 1027
    functionLinenumberEnd: 1028
    functionName: S0lo
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S0lo(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 1028
    functionDepth: 0
    functionLinenumber: 1028
    functionLinenumberEnd: 1029
    functionName: S0hi
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S0hi(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 1030
    functionDepth: 0
    functionLinenumber: 1030
    functionLinenumberEnd: 1031
    functionName: S1lo
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S1lo(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 1031
    functionDepth: 0
    functionLinenumber: 1031
    functionLinenumberEnd: 1032
    functionName: S1hi
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S1hi(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - ','
    - lo
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1034
    functionDepth: 0
    functionLinenumber: 1034
    functionLinenumberEnd: 1035
    functionName: Chxx
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Chxx(x, y, z, lo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - ','
    - lo
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 1035
    functionDepth: 0
    functionLinenumber: 1035
    functionLinenumberEnd: 1036
    functionName: Majx
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Majx(x, y, z, lo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1037
    functionDepth: 0
    functionLinenumber: 1037
    functionLinenumberEnd: 1054
    functionName: INITW
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INITW(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - n
    - ','
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1082
      start: 1055
    functionDepth: 0
    functionLinenumber: 1055
    functionLinenumberEnd: 1082
    functionName: ROUND
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROUND(n, a, b, c, d, e, f, g, h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha512_block_p8
      Src: /src/nss/lib/freebl/sha512.c:1088,1
    - Dst: BYTESWAP8
      Src: /src/nss/lib/freebl/sha512.c:1093,1
    - Dst: BYTESWAP8
      Src: /src/nss/lib/freebl/sha512.c:1094,1
    - Dst: BYTESWAP8
      Src: /src/nss/lib/freebl/sha512.c:1095,1
    - Dst: BYTESWAP8
      Src: /src/nss/lib/freebl/sha512.c:1096,1
    - Dst: BYTESWAP8
      Src: /src/nss/lib/freebl/sha512.c:1097,1
    - Dst: BYTESWAP8
      Src: /src/nss/lib/freebl/sha512.c:1098,1
    - Dst: BYTESWAP8
      Src: /src/nss/lib/freebl/sha512.c:1099,1
    - Dst: BYTESWAP8
      Src: /src/nss/lib/freebl/sha512.c:1100,1
    - Dst: BYTESWAP8
      Src: /src/nss/lib/freebl/sha512.c:1101,1
    - Dst: BYTESWAP8
      Src: /src/nss/lib/freebl/sha512.c:1102,1
    - Dst: BYTESWAP8
      Src: /src/nss/lib/freebl/sha512.c:1103,1
    - Dst: BYTESWAP8
      Src: /src/nss/lib/freebl/sha512.c:1104,1
    - Dst: BYTESWAP8
      Src: /src/nss/lib/freebl/sha512.c:1105,1
    - Dst: BYTESWAP8
      Src: /src/nss/lib/freebl/sha512.c:1106,1
    - Dst: BYTESWAP8
      Src: /src/nss/lib/freebl/sha512.c:1107,1
    - Dst: BYTESWAP8
      Src: /src/nss/lib/freebl/sha512.c:1108,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1118,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1122,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1123,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1124,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1125,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1127,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1128,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1129,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1130,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1131,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1132,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1133,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1134,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1135,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1136,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1138,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1139,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1140,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1141,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1142,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1143,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1144,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1145,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1146,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1147,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1149,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1150,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1151,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1152,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1153,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1154,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1155,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1156,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1157,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1158,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1160,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1161,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1162,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1163,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1164,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1165,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1166,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1167,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1168,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1169,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1171,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1172,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1173,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1174,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1175,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1176,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1177,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1178,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1179,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1180,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1182,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1183,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1184,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1185,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1186,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1187,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1188,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1189,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1190,1
    - Dst: INITW
      Src: /src/nss/lib/freebl/sha512.c:1191,1
    - Dst: printf
      Src: /src/nss/lib/freebl/sha512.c:1199,1
    - Dst: printf
      Src: /src/nss/lib/freebl/sha512.c:1201,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1222,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1223,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1224,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1225,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1226,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1227,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1228,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1229,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1233,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1234,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1235,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1236,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1237,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1238,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1239,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1240,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1242,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1243,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1244,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1245,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1246,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1247,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1248,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1249,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1251,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1252,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1253,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1254,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1255,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1256,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1257,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1258,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1260,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1261,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1262,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1263,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1264,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1265,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1266,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1267,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1269,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1270,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1271,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1272,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1273,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1274,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1275,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1276,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1278,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1279,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1280,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1281,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1282,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1283,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1284,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1285,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1287,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1288,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1289,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1290,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1291,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1292,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1293,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1294,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1296,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1297,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1298,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1299,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1300,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1301,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1302,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1303,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1305,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1306,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1307,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1308,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1309,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1310,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1311,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1312,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1314,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1315,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1316,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1317,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1318,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1319,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1320,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha512.c:1321,1
    - Dst: ADDTO
      Src: /src/nss/lib/freebl/sha512.c:1324,1
    - Dst: ADDTO
      Src: /src/nss/lib/freebl/sha512.c:1325,1
    - Dst: ADDTO
      Src: /src/nss/lib/freebl/sha512.c:1326,1
    - Dst: ADDTO
      Src: /src/nss/lib/freebl/sha512.c:1327,1
    - Dst: ADDTO
      Src: /src/nss/lib/freebl/sha512.c:1328,1
    - Dst: ADDTO
      Src: /src/nss/lib/freebl/sha512.c:1329,1
    - Dst: ADDTO
      Src: /src/nss/lib/freebl/sha512.c:1330,1
    - Dst: ADDTO
      Src: /src/nss/lib/freebl/sha512.c:1331,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 201
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SHA512Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1335
      start: 1084
    functionDepth: 1
    functionLinenumber: 1084
    functionLinenumberEnd: 1335
    functionName: SHA512_Compress
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached:
    - INITW
    - BYTESWAP8
    - printf
    - ROUND
    - ADDTO
    - sha512_block_p8
    linkageType: ''
    returnType: void
    signature: void SHA512_Compress(SHA512Context *ctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/sha512.c:1361,1
    - Dst: SHA512_Compress
      Src: /src/nss/lib/freebl/sha512.c:1365,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/sha512.c:1370,1
    - Dst: SHA512_Compress
      Src: /src/nss/lib/freebl/sha512.c:1373,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/sha512.c:1377,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - ctx
    - input
    - inputLen
    argTypes:
    - SHA512Context*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1378
      start: 1337
    functionDepth: 2
    functionLinenumber: 1337
    functionLinenumberEnd: 1378
    functionName: SHA512_Update
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 3
    functionsReached:
    - SHA512_Compress
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void SHA512_Update(SHA512Context *ctx, const unsigned char *input,\n
      \             unsigned int inputLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LL_SHL
      Src: /src/nss/lib/freebl/sha512.c:1391,1
    - Dst: SHA512_Update
      Src: /src/nss/lib/freebl/sha512.c:1393,1
    - Dst: BYTESWAP8
      Src: /src/nss/lib/freebl/sha512.c:1404,1
    - Dst: SHA512_Compress
      Src: /src/nss/lib/freebl/sha512.c:1406,1
    - Dst: BYTESWAP8
      Src: /src/nss/lib/freebl/sha512.c:1410,1
    - Dst: BYTESWAP8
      Src: /src/nss/lib/freebl/sha512.c:1411,1
    - Dst: BYTESWAP8
      Src: /src/nss/lib/freebl/sha512.c:1412,1
    - Dst: BYTESWAP8
      Src: /src/nss/lib/freebl/sha512.c:1413,1
    - Dst: BYTESWAP8
      Src: /src/nss/lib/freebl/sha512.c:1414,1
    - Dst: BYTESWAP8
      Src: /src/nss/lib/freebl/sha512.c:1415,1
    - Dst: BYTESWAP8
      Src: /src/nss/lib/freebl/sha512.c:1416,1
    - Dst: BYTESWAP8
      Src: /src/nss/lib/freebl/sha512.c:1417,1
    - Dst: PR_MIN
      Src: /src/nss/lib/freebl/sha512.c:1419,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/sha512.c:1420,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 4
    argNames:
    - ctx
    - digest
    - digestLen
    - maxDigestLen
    argTypes:
    - SHA512Context*
    - unsigned char*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1423
      start: 1380
    functionDepth: 2
    functionLinenumber: 1380
    functionLinenumberEnd: 1423
    functionName: SHA512_End
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 3
    functionsReached:
    - SHA512_Compress
    - memcpy
    - LL_SHL
    - PR_MIN
    - SHA512_Update
    - BYTESWAP8
    linkageType: ''
    returnType: void
    signature: "void SHA512_End(SHA512Context *ctx, unsigned char *digest,\n           unsigned
      int *digestLen, unsigned int maxDigestLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/sha512.c:1432,1
    - Dst: BYTESWAP8
      Src: /src/nss/lib/freebl/sha512.c:1435,1
    - Dst: BYTESWAP8
      Src: /src/nss/lib/freebl/sha512.c:1436,1
    - Dst: BYTESWAP8
      Src: /src/nss/lib/freebl/sha512.c:1437,1
    - Dst: BYTESWAP8
      Src: /src/nss/lib/freebl/sha512.c:1438,1
    - Dst: BYTESWAP8
      Src: /src/nss/lib/freebl/sha512.c:1439,1
    - Dst: BYTESWAP8
      Src: /src/nss/lib/freebl/sha512.c:1440,1
    - Dst: BYTESWAP8
      Src: /src/nss/lib/freebl/sha512.c:1441,1
    - Dst: BYTESWAP8
      Src: /src/nss/lib/freebl/sha512.c:1442,1
    - Dst: PR_MIN
      Src: /src/nss/lib/freebl/sha512.c:1444,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/sha512.c:1445,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 4
    argNames:
    - ctx
    - digest
    - digestLen
    - maxDigestLen
    argTypes:
    - SHA512Context*
    - unsigned char*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1448
      start: 1425
    functionDepth: 1
    functionLinenumber: 1425
    functionLinenumberEnd: 1448
    functionName: SHA512_EndRaw
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PR_MIN
    - BYTESWAP8
    linkageType: ''
    returnType: void
    signature: "void SHA512_EndRaw(SHA512Context *ctx, unsigned char *digest,\n              unsigned
      int *digestLen, unsigned int maxDigestLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA512_Begin
      Src: /src/nss/lib/freebl/sha512.c:1457,1
    - Dst: SHA512_Update
      Src: /src/nss/lib/freebl/sha512.c:1458,1
    - Dst: SHA512_End
      Src: /src/nss/lib/freebl/sha512.c:1459,1
    - Dst: memset
      Src: /src/nss/lib/freebl/sha512.c:1460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - dest
    - src
    - src_length
    argTypes:
    - unsigned char*
    - unsigned char*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1463
      start: 1450
    functionDepth: 0
    functionLinenumber: 1450
    functionLinenumberEnd: 1463
    functionName: SHA512_HashBuf
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 2
    functionsReached:
    - SHA512_Update
    - SHA512_End
    - memset
    - SHA512_Begin
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SHA512_HashBuf(unsigned char *dest, const unsigned char
      *src,\n               PRUint32 src_length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA512_HashBuf
      Src: /src/nss/lib/freebl/sha512.c:1468,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/freebl/sha512.c:1468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - unsigned char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1469
      start: 1465
    functionDepth: 1
    functionLinenumber: 1465
    functionLinenumberEnd: 1469
    functionName: SHA512_Hash
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached:
    - SHA512_HashBuf
    - PORT_Strlen
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SHA512_Hash(unsigned char *dest, const char *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SHA512Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1474
      start: 1471
    functionDepth: 0
    functionLinenumber: 1471
    functionLinenumberEnd: 1474
    functionName: SHA512_TraceState
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SHA512_TraceState(SHA512Context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SHA512Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1480
      start: 1476
    functionDepth: 0
    functionLinenumber: 1476
    functionLinenumberEnd: 1480
    functionName: SHA512_FlattenSize
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int SHA512_FlattenSize(SHA512Context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/sha512.c:1485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - space
    argTypes:
    - SHA512Context*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1487
      start: 1482
    functionDepth: 0
    functionLinenumber: 1482
    functionLinenumberEnd: 1487
    functionName: SHA512_Flatten
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 1
    functionsReached:
    - PORT_Memcpy
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SHA512_Flatten(SHA512Context *ctx, unsigned char *space)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SHA512_NewContext
      Src: /src/nss/lib/freebl/sha512.c:1492,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/sha512.c:1494,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - space
    - arg
    argTypes:
    - unsigned char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1496
      start: 1489
    functionDepth: 0
    functionLinenumber: 1489
    functionLinenumberEnd: 1496
    functionName: SHA512_Resurrect
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 1
    functionsReached:
    - SHA512_NewContext
    - PORT_Memcpy
    linkageType: ''
    returnType: SHA512Context
    signature: 'SHA512Context *

      SHA512_Resurrect(unsigned char *space, void *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/sha512.c:1501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - SHA512Context*
    - SHA512Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1502
      start: 1498
    functionDepth: 1
    functionLinenumber: 1498
    functionLinenumberEnd: 1502
    functionName: SHA512_Clone
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void SHA512_Clone(SHA512Context *dest, SHA512Context *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA512_NewContext
      Src: /src/nss/lib/freebl/sha512.c:1529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1530
      start: 1526
    functionDepth: 0
    functionLinenumber: 1526
    functionLinenumberEnd: 1530
    functionName: SHA384_NewContext
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 1
    functionsReached:
    - SHA512_NewContext
    linkageType: ''
    returnType: SHA384Context
    signature: 'SHA384Context *

      SHA384_NewContext(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA512_DestroyContext
      Src: /src/nss/lib/freebl/sha512.c:1535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - freeit
    argTypes:
    - SHA384Context*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1536
      start: 1532
    functionDepth: 0
    functionLinenumber: 1532
    functionLinenumberEnd: 1536
    functionName: SHA384_DestroyContext
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 1
    functionsReached:
    - SHA512_DestroyContext
    linkageType: ''
    returnType: void
    signature: void SHA384_DestroyContext(SHA384Context *ctx, PRBool freeit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/freebl/sha512.c:1541,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/sha512.c:1542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SHA384Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1543
      start: 1538
    functionDepth: 1
    functionLinenumber: 1538
    functionLinenumberEnd: 1543
    functionName: SHA384_Begin
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 1
    functionsReached:
    - memset
    - memcpy
    linkageType: ''
    returnType: void
    signature: void SHA384_Begin(SHA384Context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA512_Update
      Src: /src/nss/lib/freebl/sha512.c:1549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - input
    - inputLen
    argTypes:
    - SHA384Context*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1550
      start: 1545
    functionDepth: 0
    functionLinenumber: 1545
    functionLinenumberEnd: 1550
    functionName: SHA384_Update
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 1
    functionsReached:
    - SHA512_Update
    linkageType: ''
    returnType: void
    signature: "void SHA384_Update(SHA384Context *ctx, const unsigned char *input,\n
      \             unsigned int inputLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA_MIN
      Src: /src/nss/lib/freebl/sha512.c:1556,1
    - Dst: SHA512_End
      Src: /src/nss/lib/freebl/sha512.c:1557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - digest
    - digestLen
    - maxDigestLen
    argTypes:
    - SHA384Context*
    - unsigned char*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1558
      start: 1552
    functionDepth: 1
    functionLinenumber: 1552
    functionLinenumberEnd: 1558
    functionName: SHA384_End
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 1
    functionsReached:
    - SHA_MIN
    - SHA512_End
    linkageType: ''
    returnType: void
    signature: "void SHA384_End(SHA384Context *ctx, unsigned char *digest,\n           unsigned
      int *digestLen, unsigned int maxDigestLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA_MIN
      Src: /src/nss/lib/freebl/sha512.c:1564,1
    - Dst: SHA512_EndRaw
      Src: /src/nss/lib/freebl/sha512.c:1565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - digest
    - digestLen
    - maxDigestLen
    argTypes:
    - SHA384Context*
    - unsigned char*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1566
      start: 1560
    functionDepth: 2
    functionLinenumber: 1560
    functionLinenumberEnd: 1566
    functionName: SHA384_EndRaw
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached:
    - SHA_MIN
    - SHA512_EndRaw
    linkageType: ''
    returnType: void
    signature: "void SHA384_EndRaw(SHA384Context *ctx, unsigned char *digest,\n              unsigned
      int *digestLen, unsigned int maxDigestLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA384_Begin
      Src: /src/nss/lib/freebl/sha512.c:1575,1
    - Dst: SHA512_Update
      Src: /src/nss/lib/freebl/sha512.c:1576,1
    - Dst: SHA512_End
      Src: /src/nss/lib/freebl/sha512.c:1577,1
    - Dst: memset
      Src: /src/nss/lib/freebl/sha512.c:1578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - dest
    - src
    - src_length
    argTypes:
    - unsigned char*
    - unsigned char*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1581
      start: 1568
    functionDepth: 0
    functionLinenumber: 1568
    functionLinenumberEnd: 1581
    functionName: SHA384_HashBuf
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 1
    functionsReached:
    - SHA512_Update
    - SHA384_Begin
    - SHA512_End
    - memset
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SHA384_HashBuf(unsigned char *dest, const unsigned char
      *src,\n               PRUint32 src_length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA384_HashBuf
      Src: /src/nss/lib/freebl/sha512.c:1586,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/freebl/sha512.c:1586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - unsigned char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1587
      start: 1583
    functionDepth: 1
    functionLinenumber: 1583
    functionLinenumberEnd: 1587
    functionName: SHA384_Hash
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached:
    - SHA384_HashBuf
    - PORT_Strlen
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SHA384_Hash(unsigned char *dest, const char *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SHA384Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1592
      start: 1589
    functionDepth: 0
    functionLinenumber: 1589
    functionLinenumberEnd: 1592
    functionName: SHA384_TraceState
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SHA384_TraceState(SHA384Context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SHA384Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1598
      start: 1594
    functionDepth: 0
    functionLinenumber: 1594
    functionLinenumberEnd: 1598
    functionName: SHA384_FlattenSize
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int SHA384_FlattenSize(SHA384Context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA512_Flatten
      Src: /src/nss/lib/freebl/sha512.c:1603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - space
    argTypes:
    - SHA384Context*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1604
      start: 1600
    functionDepth: 0
    functionLinenumber: 1600
    functionLinenumberEnd: 1604
    functionName: SHA384_Flatten
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 1
    functionsReached:
    - SHA512_Flatten
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SHA384_Flatten(SHA384Context *ctx, unsigned char *space)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA512_Resurrect
      Src: /src/nss/lib/freebl/sha512.c:1609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - space
    - arg
    argTypes:
    - unsigned char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1610
      start: 1606
    functionDepth: 0
    functionLinenumber: 1606
    functionLinenumberEnd: 1610
    functionName: SHA384_Resurrect
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 1
    functionsReached:
    - SHA512_Resurrect
    linkageType: ''
    returnType: SHA384Context
    signature: 'SHA384Context *

      SHA384_Resurrect(unsigned char *space, void *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/sha512.c:1615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - SHA384Context*
    - SHA384Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1616
      start: 1612
    functionDepth: 1
    functionLinenumber: 1612
    functionLinenumberEnd: 1616
    functionName: SHA384_Clone
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void SHA384_Clone(SHA384Context *dest, SHA384Context *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/lib/freebl/sha512.c:1636,1
    - Dst: printf
      Src: /src/nss/lib/freebl/sha512.c:1638,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - bufLen
    argTypes:
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1639
      start: 1631
    functionDepth: 0
    functionLinenumber: 1631
    functionLinenumberEnd: 1639
    functionName: dumpHash32
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void dumpHash32(const unsigned char *buf, unsigned int bufLen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/lib/freebl/sha512.c:1646,1
    - Dst: SHA256_Hash
      Src: /src/nss/lib/freebl/sha512.c:1647,1
    - Dst: dumpHash32
      Src: /src/nss/lib/freebl/sha512.c:1648,1
    - Dst: printf
      Src: /src/nss/lib/freebl/sha512.c:1650,1
    - Dst: SHA256_Hash
      Src: /src/nss/lib/freebl/sha512.c:1651,1
    - Dst: dumpHash32
      Src: /src/nss/lib/freebl/sha512.c:1652,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1653
      start: 1641
    functionDepth: 1
    functionLinenumber: 1641
    functionLinenumberEnd: 1653
    functionName: test256
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached:
    - SHA256_Hash
    - printf
    - dumpHash32
    linkageType: ''
    returnType: void
    signature: void test256(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/lib/freebl/sha512.c:1665,1
    - Dst: SHA224_Hash
      Src: /src/nss/lib/freebl/sha512.c:1666,1
    - Dst: dumpHash32
      Src: /src/nss/lib/freebl/sha512.c:1667,1
    - Dst: printf
      Src: /src/nss/lib/freebl/sha512.c:1670,1
    - Dst: SHA224_Hash
      Src: /src/nss/lib/freebl/sha512.c:1671,1
    - Dst: dumpHash32
      Src: /src/nss/lib/freebl/sha512.c:1672,1
    - Dst: memset
      Src: /src/nss/lib/freebl/sha512.c:1679,1
    - Dst: printf
      Src: /src/nss/lib/freebl/sha512.c:1680,1
    - Dst: SHA224_Begin
      Src: /src/nss/lib/freebl/sha512.c:1681,1
    - Dst: SHA224_Update
      Src: /src/nss/lib/freebl/sha512.c:1683,1
    - Dst: SHA224_End
      Src: /src/nss/lib/freebl/sha512.c:1684,1
    - Dst: dumpHash32
      Src: /src/nss/lib/freebl/sha512.c:1685,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1686
      start: 1655
    functionDepth: 1
    functionLinenumber: 1655
    functionLinenumberEnd: 1686
    functionName: test224
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached:
    - SHA224_End
    - printf
    - memset
    - SHA224_Begin
    - SHA224_Hash
    - SHA224_Update
    - dumpHash32
    linkageType: ''
    returnType: void
    signature: void test224(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/lib/freebl/sha512.c:1694,1
    - Dst: printf
      Src: /src/nss/lib/freebl/sha512.c:1695,1
    - Dst: printf
      Src: /src/nss/lib/freebl/sha512.c:1699,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - buf
    - bufLen
    argTypes:
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1700
      start: 1688
    functionDepth: 0
    functionLinenumber: 1688
    functionLinenumberEnd: 1700
    functionName: dumpHash64
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void dumpHash64(const unsigned char *buf, unsigned int bufLen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/lib/freebl/sha512.c:1707,1
    - Dst: SHA512_Hash
      Src: /src/nss/lib/freebl/sha512.c:1708,1
    - Dst: dumpHash64
      Src: /src/nss/lib/freebl/sha512.c:1709,1
    - Dst: printf
      Src: /src/nss/lib/freebl/sha512.c:1711,1
    - Dst: SHA512_Hash
      Src: /src/nss/lib/freebl/sha512.c:1712,1
    - Dst: dumpHash64
      Src: /src/nss/lib/freebl/sha512.c:1713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1714
      start: 1702
    functionDepth: 1
    functionLinenumber: 1702
    functionLinenumberEnd: 1714
    functionName: test512
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached:
    - dumpHash64
    - printf
    - SHA512_Hash
    linkageType: ''
    returnType: void
    signature: void test512(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA512_Hash
      Src: /src/nss/lib/freebl/sha512.c:1721,1
    - Dst: SHA512_Hash
      Src: /src/nss/lib/freebl/sha512.c:1722,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1723
      start: 1716
    functionDepth: 0
    functionLinenumber: 1716
    functionLinenumberEnd: 1723
    functionName: time512
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached:
    - SHA512_Hash
    linkageType: ''
    returnType: void
    signature: void time512(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/lib/freebl/sha512.c:1730,1
    - Dst: SHA384_Hash
      Src: /src/nss/lib/freebl/sha512.c:1731,1
    - Dst: dumpHash64
      Src: /src/nss/lib/freebl/sha512.c:1732,1
    - Dst: printf
      Src: /src/nss/lib/freebl/sha512.c:1734,1
    - Dst: SHA384_Hash
      Src: /src/nss/lib/freebl/sha512.c:1735,1
    - Dst: dumpHash64
      Src: /src/nss/lib/freebl/sha512.c:1736,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1737
      start: 1725
    functionDepth: 1
    functionLinenumber: 1725
    functionLinenumberEnd: 1737
    functionName: test384
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 0
    functionsReached:
    - dumpHash64
    - printf
    - SHA384_Hash
    linkageType: ''
    returnType: void
    signature: void test384(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/nss/lib/freebl/sha512.c:1744,1
    - Dst: test224
      Src: /src/nss/lib/freebl/sha512.c:1747,1
    - Dst: test256
      Src: /src/nss/lib/freebl/sha512.c:1748,1
    - Dst: test384
      Src: /src/nss/lib/freebl/sha512.c:1749,1
    - Dst: test512
      Src: /src/nss/lib/freebl/sha512.c:1750,1
    - Dst: time512
      Src: /src/nss/lib/freebl/sha512.c:1753,1
    - Dst: printf
      Src: /src/nss/lib/freebl/sha512.c:1755,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - argc
    - argv
    - envp
    argTypes:
    - int
    - char*[]
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1758
      start: 1739
    functionDepth: 2
    functionLinenumber: 1739
    functionLinenumberEnd: 1758
    functionName: main
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 6
    functionsReached:
    - test384
    - test512
    - printf
    - atoi
    - time512
    - test224
    - test256
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[], char *envp[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/nss/lib/freebl/sha512.c:1763,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1764
      start: 1760
    functionDepth: 1
    functionLinenumber: 1760
    functionLinenumberEnd: 1764
    functionName: PORT_Alloc
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 70
    functionsReached:
    - malloc
    linkageType: ''
    returnType: void
    signature: 'void *

      PORT_Alloc(size_t len)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/nss/lib/freebl/sha512.c:1768,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1769
      start: 1765
    functionDepth: 1
    functionLinenumber: 1765
    functionLinenumberEnd: 1769
    functionName: PORT_Free
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 187
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void PORT_Free(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/freebl/sha512.c:1773,1
    - Dst: free
      Src: /src/nss/lib/freebl/sha512.c:1774,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ptr
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1775
      start: 1770
    functionDepth: 1
    functionLinenumber: 1770
    functionLinenumberEnd: 1775
    functionName: PORT_ZFree
    functionSourceFile: /src/nss/lib/freebl/sha512.c
    functionUses: 19
    functionsReached:
    - memset
    - free
    linkageType: ''
    returnType: void
    signature: void PORT_ZFree(void *ptr, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/arcfive.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - key
    - rounds
    - wordSize
    - iv
    - mode
    argTypes:
    - SECItem*
    - unsigned int
    - unsigned int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 36
    functionName: RC5_CreateContext
    functionSourceFile: /src/nss/lib/freebl/arcfive.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: RC5Context
    signature: "RC5Context *\nRC5_CreateContext(const SECItem *key, unsigned int rounds,\n
      \                 unsigned int wordSize, const unsigned char *iv, int mode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/arcfive.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cx
    - freeit
    argTypes:
    - RC5Context*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: RC5_DestroyContext
    functionSourceFile: /src/nss/lib/freebl/arcfive.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: void
    signature: void RC5_DestroyContext(RC5Context *cx, PRBool freeit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/arcfive.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - RC5Context*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 67
    functionName: RC5_Encrypt
    functionSourceFile: /src/nss/lib/freebl/arcfive.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus RC5_Encrypt(RC5Context *cx, unsigned char *output, unsigned
      int *outputLen,\n            unsigned int maxOutputLen,\n            const unsigned
      char *input, unsigned int inputLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/arcfive.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - RC5Context*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 87
    functionName: RC5_Decrypt
    functionSourceFile: /src/nss/lib/freebl/arcfive.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus RC5_Decrypt(RC5Context *cx, unsigned char *output, unsigned
      int *outputLen,\n            unsigned int maxOutputLen,\n            const unsigned
      char *input, unsigned int inputLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 10
    functionName: CHECK_SEC_OK
    functionSourceFile: /src/nss/lib/freebl/secmpi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_SEC_OK(func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 14
    functionName: CHECK_MPI_OK
    functionSourceFile: /src/nss/lib/freebl/secmpi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_MPI_OK(func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - oc
    - ','
    - mp
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 17
    functionName: OCTETS_TO_MPINT
    functionSourceFile: /src/nss/lib/freebl/secmpi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OCTETS_TO_MPINT(oc, mp, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - it
    - ','
    - mp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 20
    functionName: SECITEM_TO_MPINT
    functionSourceFile: /src/nss/lib/freebl/secmpi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SECITEM_TO_MPINT(it, mp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mp
    - ','
    - it
    - ','
    - arena
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 39
    functionName: MPINT_TO_SECITEM
    functionSourceFile: /src/nss/lib/freebl/secmpi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MPINT_TO_SECITEM(mp, it, arena)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - err
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 55
    functionName: MP_TO_SEC_ERROR
    functionSourceFile: /src/nss/lib/freebl/secmpi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MP_TO_SEC_ERROR(err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: MP_DIGITES
    functionSourceFile: /src/nss/lib/freebl/stubs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MP_DIGITES(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - n
    - ','
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 52
    functionName: ROUND
    functionSourceFile: /src/nss/lib/freebl/sha256-x86.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROUND(n, a, b, c, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set_epi8
      Src: /src/nss/lib/freebl/sha256-x86.c:59,1
    - Dst: _mm_load_si128
      Src: /src/nss/lib/freebl/sha256-x86.c:62,1
    - Dst: _mm_load_si128
      Src: /src/nss/lib/freebl/sha256-x86.c:63,1
    - Dst: _mm_load_si128
      Src: /src/nss/lib/freebl/sha256-x86.c:64,1
    - Dst: _mm_load_si128
      Src: /src/nss/lib/freebl/sha256-x86.c:65,1
    - Dst: _mm_load_si128
      Src: /src/nss/lib/freebl/sha256-x86.c:66,1
    - Dst: _mm_load_si128
      Src: /src/nss/lib/freebl/sha256-x86.c:67,1
    - Dst: _mm_load_si128
      Src: /src/nss/lib/freebl/sha256-x86.c:68,1
    - Dst: _mm_load_si128
      Src: /src/nss/lib/freebl/sha256-x86.c:69,1
    - Dst: _mm_load_si128
      Src: /src/nss/lib/freebl/sha256-x86.c:70,1
    - Dst: _mm_load_si128
      Src: /src/nss/lib/freebl/sha256-x86.c:71,1
    - Dst: _mm_load_si128
      Src: /src/nss/lib/freebl/sha256-x86.c:72,1
    - Dst: _mm_load_si128
      Src: /src/nss/lib/freebl/sha256-x86.c:73,1
    - Dst: _mm_load_si128
      Src: /src/nss/lib/freebl/sha256-x86.c:74,1
    - Dst: _mm_load_si128
      Src: /src/nss/lib/freebl/sha256-x86.c:75,1
    - Dst: _mm_load_si128
      Src: /src/nss/lib/freebl/sha256-x86.c:76,1
    - Dst: _mm_load_si128
      Src: /src/nss/lib/freebl/sha256-x86.c:77,1
    - Dst: _mm_loadu_si128
      Src: /src/nss/lib/freebl/sha256-x86.c:81,1
    - Dst: _mm_loadu_si128
      Src: /src/nss/lib/freebl/sha256-x86.c:82,1
    - Dst: _mm_shuffle_epi32
      Src: /src/nss/lib/freebl/sha256-x86.c:85,1
    - Dst: _mm_shuffle_epi32
      Src: /src/nss/lib/freebl/sha256-x86.c:86,1
    - Dst: _mm_alignr_epi8
      Src: /src/nss/lib/freebl/sha256-x86.c:87,1
    - Dst: _mm_blend_epi16
      Src: /src/nss/lib/freebl/sha256-x86.c:88,1
    - Dst: _mm_shuffle_epi8
      Src: /src/nss/lib/freebl/sha256-x86.c:90,1
    - Dst: _mm_loadu_si128
      Src: /src/nss/lib/freebl/sha256-x86.c:90,1
    - Dst: _mm_shuffle_epi8
      Src: /src/nss/lib/freebl/sha256-x86.c:91,1
    - Dst: _mm_loadu_si128
      Src: /src/nss/lib/freebl/sha256-x86.c:91,1
    - Dst: _mm_shuffle_epi8
      Src: /src/nss/lib/freebl/sha256-x86.c:92,1
    - Dst: _mm_loadu_si128
      Src: /src/nss/lib/freebl/sha256-x86.c:92,1
    - Dst: _mm_shuffle_epi8
      Src: /src/nss/lib/freebl/sha256-x86.c:93,1
    - Dst: _mm_loadu_si128
      Src: /src/nss/lib/freebl/sha256-x86.c:93,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-x86.c:98,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-x86.c:99,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-x86.c:100,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-x86.c:101,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-x86.c:102,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-x86.c:103,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-x86.c:104,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-x86.c:105,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-x86.c:106,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-x86.c:107,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-x86.c:108,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-x86.c:109,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-x86.c:110,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-x86.c:111,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-x86.c:112,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-x86.c:113,1
    - Dst: _mm_add_epi32
      Src: /src/nss/lib/freebl/sha256-x86.c:115,1
    - Dst: _mm_add_epi32
      Src: /src/nss/lib/freebl/sha256-x86.c:116,1
    - Dst: _mm_shuffle_epi32
      Src: /src/nss/lib/freebl/sha256-x86.c:119,1
    - Dst: _mm_shuffle_epi32
      Src: /src/nss/lib/freebl/sha256-x86.c:120,1
    - Dst: _mm_blend_epi16
      Src: /src/nss/lib/freebl/sha256-x86.c:121,1
    - Dst: _mm_alignr_epi8
      Src: /src/nss/lib/freebl/sha256-x86.c:122,1
    - Dst: _mm_storeu_si128
      Src: /src/nss/lib/freebl/sha256-x86.c:124,1
    - Dst: _mm_storeu_si128
      Src: /src/nss/lib/freebl/sha256-x86.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SHA256Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 126
    functionName: SHA256_Compress_Native
    functionSourceFile: /src/nss/lib/freebl/sha256-x86.c
    functionUses: 0
    functionsReached:
    - _mm_add_epi32
    - _mm_shuffle_epi8
    - _mm_blend_epi16
    - ROUND
    - _mm_shuffle_epi32
    - _mm_alignr_epi8
    - _mm_storeu_si128
    - _mm_load_si128
    - _mm_set_epi8
    - _mm_loadu_si128
    linkageType: ''
    returnType: void
    signature: void SHA256_Compress_Native(SHA256Context *ctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set_epi8
      Src: /src/nss/lib/freebl/sha256-x86.c:133,1
    - Dst: _mm_load_si128
      Src: /src/nss/lib/freebl/sha256-x86.c:136,1
    - Dst: _mm_load_si128
      Src: /src/nss/lib/freebl/sha256-x86.c:137,1
    - Dst: _mm_load_si128
      Src: /src/nss/lib/freebl/sha256-x86.c:138,1
    - Dst: _mm_load_si128
      Src: /src/nss/lib/freebl/sha256-x86.c:139,1
    - Dst: _mm_load_si128
      Src: /src/nss/lib/freebl/sha256-x86.c:140,1
    - Dst: _mm_load_si128
      Src: /src/nss/lib/freebl/sha256-x86.c:141,1
    - Dst: _mm_load_si128
      Src: /src/nss/lib/freebl/sha256-x86.c:142,1
    - Dst: _mm_load_si128
      Src: /src/nss/lib/freebl/sha256-x86.c:143,1
    - Dst: _mm_load_si128
      Src: /src/nss/lib/freebl/sha256-x86.c:144,1
    - Dst: _mm_load_si128
      Src: /src/nss/lib/freebl/sha256-x86.c:145,1
    - Dst: _mm_load_si128
      Src: /src/nss/lib/freebl/sha256-x86.c:146,1
    - Dst: _mm_load_si128
      Src: /src/nss/lib/freebl/sha256-x86.c:147,1
    - Dst: _mm_load_si128
      Src: /src/nss/lib/freebl/sha256-x86.c:148,1
    - Dst: _mm_load_si128
      Src: /src/nss/lib/freebl/sha256-x86.c:149,1
    - Dst: _mm_load_si128
      Src: /src/nss/lib/freebl/sha256-x86.c:150,1
    - Dst: _mm_load_si128
      Src: /src/nss/lib/freebl/sha256-x86.c:151,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/sha256-x86.c:169,1
    - Dst: SHA256_Compress_Native
      Src: /src/nss/lib/freebl/sha256-x86.c:173,1
    - Dst: _mm_loadu_si128
      Src: /src/nss/lib/freebl/sha256-x86.c:177,1
    - Dst: _mm_loadu_si128
      Src: /src/nss/lib/freebl/sha256-x86.c:178,1
    - Dst: _mm_shuffle_epi32
      Src: /src/nss/lib/freebl/sha256-x86.c:181,1
    - Dst: _mm_shuffle_epi32
      Src: /src/nss/lib/freebl/sha256-x86.c:182,1
    - Dst: _mm_alignr_epi8
      Src: /src/nss/lib/freebl/sha256-x86.c:183,1
    - Dst: _mm_blend_epi16
      Src: /src/nss/lib/freebl/sha256-x86.c:184,1
    - Dst: _mm_shuffle_epi8
      Src: /src/nss/lib/freebl/sha256-x86.c:190,1
    - Dst: _mm_loadu_si128
      Src: /src/nss/lib/freebl/sha256-x86.c:190,1
    - Dst: _mm_shuffle_epi8
      Src: /src/nss/lib/freebl/sha256-x86.c:191,1
    - Dst: _mm_loadu_si128
      Src: /src/nss/lib/freebl/sha256-x86.c:191,1
    - Dst: _mm_shuffle_epi8
      Src: /src/nss/lib/freebl/sha256-x86.c:192,1
    - Dst: _mm_loadu_si128
      Src: /src/nss/lib/freebl/sha256-x86.c:192,1
    - Dst: _mm_shuffle_epi8
      Src: /src/nss/lib/freebl/sha256-x86.c:193,1
    - Dst: _mm_loadu_si128
      Src: /src/nss/lib/freebl/sha256-x86.c:193,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-x86.c:200,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-x86.c:201,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-x86.c:202,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-x86.c:203,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-x86.c:204,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-x86.c:205,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-x86.c:206,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-x86.c:207,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-x86.c:208,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-x86.c:209,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-x86.c:210,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-x86.c:211,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-x86.c:212,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-x86.c:213,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-x86.c:214,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-x86.c:215,1
    - Dst: _mm_add_epi32
      Src: /src/nss/lib/freebl/sha256-x86.c:217,1
    - Dst: _mm_add_epi32
      Src: /src/nss/lib/freebl/sha256-x86.c:218,1
    - Dst: _mm_shuffle_epi32
      Src: /src/nss/lib/freebl/sha256-x86.c:222,1
    - Dst: _mm_shuffle_epi32
      Src: /src/nss/lib/freebl/sha256-x86.c:223,1
    - Dst: _mm_blend_epi16
      Src: /src/nss/lib/freebl/sha256-x86.c:224,1
    - Dst: _mm_alignr_epi8
      Src: /src/nss/lib/freebl/sha256-x86.c:225,1
    - Dst: _mm_storeu_si128
      Src: /src/nss/lib/freebl/sha256-x86.c:227,1
    - Dst: _mm_storeu_si128
      Src: /src/nss/lib/freebl/sha256-x86.c:228,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/sha256-x86.c:232,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 60
    argCount: 3
    argNames:
    - ctx
    - input
    - inputLen
    argTypes:
    - SHA256Context*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 234
    functionName: SHA256_Update_Native
    functionSourceFile: /src/nss/lib/freebl/sha256-x86.c
    functionUses: 0
    functionsReached:
    - memcpy
    - _mm_add_epi32
    - _mm_shuffle_epi8
    - _mm_blend_epi16
    - ROUND
    - _mm_shuffle_epi32
    - _mm_alignr_epi8
    - SHA256_Compress_Native
    - _mm_storeu_si128
    - _mm_load_si128
    - _mm_set_epi8
    - _mm_loadu_si128
    linkageType: ''
    returnType: void
    signature: "void SHA256_Update_Native(SHA256Context *ctx, const unsigned char
      *input,\n                     unsigned int inputLen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ctr.c:34,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ctr.c:46,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/ctr.c:49,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/ctr.c:51,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - ctr
    - context
    - cipher
    - param
    argTypes:
    - CTRContext*
    - void*
    - freeblCipherFunc
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 55
    functionName: CTR_InitContext
    functionSourceFile: /src/nss/lib/freebl/ctr.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PORT_Memcpy
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CTR_InitContext(CTRContext *ctr, void *context, freeblCipherFunc
      cipher,\n                const unsigned char *param)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZNew
      Src: /src/nss/lib/freebl/ctr.c:65,1
    - Dst: CTR_InitContext
      Src: /src/nss/lib/freebl/ctr.c:69,1
    - Dst: CTR_DestroyContext
      Src: /src/nss/lib/freebl/ctr.c:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - context
    - cipher
    - param
    argTypes:
    - void*
    - freeblCipherFunc
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 75
    functionName: CTR_CreateContext
    functionSourceFile: /src/nss/lib/freebl/ctr.c
    functionUses: 0
    functionsReached:
    - CTR_DestroyContext
    - CTR_InitContext
    - PORT_ZNew
    linkageType: ''
    returnType: CTRContext
    signature: "CTRContext *\nCTR_CreateContext(void *context, freeblCipherFunc cipher,\n
      \                 const unsigned char *param)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/ctr.c:80,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/ctr.c:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctr
    - freeit
    argTypes:
    - CTRContext*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 84
    functionName: CTR_DestroyContext
    functionSourceFile: /src/nss/lib/freebl/ctr.c
    functionUses: 1
    functionsReached:
    - PORT_Free
    - PORT_Memset
    linkageType: ''
    returnType: void
    signature: void CTR_DestroyContext(CTRContext *ctr, PRBool freeit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/ctr.c:101,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - counter
    - counterBits
    - blocksize
    argTypes:
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 116
    functionName: ctr_GetNextCtr
    functionSourceFile: /src/nss/lib/freebl/ctr.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: void
    signature: "void ctr_GetNextCtr(unsigned char *counter, unsigned int counterBits,\n
      \              unsigned int blocksize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vst1q_u8
      Src: /src/nss/lib/freebl/ctr.c:125,1
    - Dst: veorq_u8
      Src: /src/nss/lib/freebl/ctr.c:125,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/ctr.c:125,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/ctr.c:125,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - target
    - x
    - y
    - count
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 135
    functionName: ctr_xor
    functionSourceFile: /src/nss/lib/freebl/ctr.c
    functionUses: 0
    functionsReached:
    - veorq_u8
    - vst1q_u8
    - vld1q_u8
    linkageType: ''
    returnType: void
    signature: "void ctr_xor(unsigned char *target, const unsigned char *x,\n        const
      unsigned char *y, unsigned int count)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: CTRContext*::counterBits
      Src: /src/nss/lib/freebl/ctr.c:147,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ctr.c:149,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ctr.c:154,1
    - Dst: PR_MIN
      Src: /src/nss/lib/freebl/ctr.c:159,1
    - Dst: ctr_xor
      Src: /src/nss/lib/freebl/ctr.c:160,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/ctr.c:169,1
    - Dst: ctr_GetNextCtr
      Src: /src/nss/lib/freebl/ctr.c:175,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/freebl/ctr.c:177,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ctr.c:178,1
    - Dst: ctr_xor
      Src: /src/nss/lib/freebl/ctr.c:185,1
    - Dst: ctr_GetNextCtr
      Src: /src/nss/lib/freebl/ctr.c:196,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/freebl/ctr.c:198,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ctr.c:199,1
    - Dst: ctr_xor
      Src: /src/nss/lib/freebl/ctr.c:206,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 59
    argCount: 7
    argNames:
    - ctr
    - outbuf
    - outlen
    - maxout
    - inbuf
    - inlen
    - blocksize
    argTypes:
    - CTRContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 210
    functionName: CTR_Update
    functionSourceFile: /src/nss/lib/freebl/ctr.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PR_MIN
    - PORT_Memcmp
    - ctr_GetNextCtr
    - PORT_SetError
    - ctr_xor
    - CTRContext*::counterBits
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CTR_Update(CTRContext *ctr, unsigned char *outbuf,\n           unsigned
      int *outlen, unsigned int maxout,\n           const unsigned char *inbuf, unsigned
      int inlen,\n           unsigned int blocksize)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CTRContext*::counterBits
      Src: /src/nss/lib/freebl/ctr.c:224,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ctr.c:226,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ctr.c:231,1
    - Dst: PR_MIN
      Src: /src/nss/lib/freebl/ctr.c:236,1
    - Dst: ctr_xor
      Src: /src/nss/lib/freebl/ctr.c:237,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/ctr.c:246,1
    - Dst: intel_aes_ctr_worker
      Src: /src/nss/lib/freebl/ctr.c:250,1
    - Dst: ctr_GetNextCtr
      Src: /src/nss/lib/freebl/ctr.c:267,1
    - Dst: ctr_xor
      Src: /src/nss/lib/freebl/ctr.c:271,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 46
    argCount: 7
    argNames:
    - ctr
    - outbuf
    - outlen
    - maxout
    - inbuf
    - inlen
    - blocksize
    argTypes:
    - CTRContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 275
    functionName: CTR_Update_HW_AES
    functionSourceFile: /src/nss/lib/freebl/ctr.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PR_MIN
    - ctr_GetNextCtr
    - intel_aes_ctr_worker
    - PORT_SetError
    - ctr_xor
    - CTRContext*::counterBits
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CTR_Update_HW_AES(CTRContext *ctr, unsigned char *outbuf,\n
      \                 unsigned int *outlen, unsigned int maxout,\n                  const
      unsigned char *inbuf, unsigned int inlen,\n                  unsigned int blocksize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - modLen
    - ','
    - expLen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: BAD_RSA_KEY_SIZE
    functionSourceFile: /src/nss/lib/freebl/rsa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BAD_RSA_KEY_SIZE(modLen, expLen)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:115,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:116,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:117,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:118,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:119,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:120,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:120,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:121,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:121,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:122,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:122,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:123,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:123,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:124,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:124,1
    - Dst: mp_cmp
      Src: /src/nss/lib/freebl/rsa.c:126,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsa.c:127,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:132,1
    - Dst: mp_mul
      Src: /src/nss/lib/freebl/rsa.c:132,1
    - Dst: mpl_significant_bits
      Src: /src/nss/lib/freebl/rsa.c:134,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsa.c:135,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/rsa.c:141,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:144,1
    - Dst: mp_sub_d
      Src: /src/nss/lib/freebl/rsa.c:144,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:145,1
    - Dst: mp_sub_d
      Src: /src/nss/lib/freebl/rsa.c:145,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:146,1
    - Dst: mp_lcm
      Src: /src/nss/lib/freebl/rsa.c:146,1
    - Dst: mp_invmod
      Src: /src/nss/lib/freebl/rsa.c:151,1
    - Dst: mp_invmod
      Src: /src/nss/lib/freebl/rsa.c:153,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsa.c:161,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:170,1
    - Dst: mp_mod
      Src: /src/nss/lib/freebl/rsa.c:170,1
    - Dst: mp_cmp_d
      Src: /src/nss/lib/freebl/rsa.c:171,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsa.c:172,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:178,1
    - Dst: mp_mod
      Src: /src/nss/lib/freebl/rsa.c:178,1
    - Dst: MPINT_TO_SECITEM
      Src: /src/nss/lib/freebl/rsa.c:179,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:181,1
    - Dst: mp_mod
      Src: /src/nss/lib/freebl/rsa.c:181,1
    - Dst: MPINT_TO_SECITEM
      Src: /src/nss/lib/freebl/rsa.c:182,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:184,1
    - Dst: mp_invmod
      Src: /src/nss/lib/freebl/rsa.c:184,1
    - Dst: MPINT_TO_SECITEM
      Src: /src/nss/lib/freebl/rsa.c:185,1
    - Dst: MPINT_TO_SECITEM
      Src: /src/nss/lib/freebl/rsa.c:189,1
    - Dst: MPINT_TO_SECITEM
      Src: /src/nss/lib/freebl/rsa.c:191,1
    - Dst: MPINT_TO_SECITEM
      Src: /src/nss/lib/freebl/rsa.c:193,1
    - Dst: MPINT_TO_SECITEM
      Src: /src/nss/lib/freebl/rsa.c:195,1
    - Dst: MPINT_TO_SECITEM
      Src: /src/nss/lib/freebl/rsa.c:197,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:199,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:200,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:201,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:202,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:203,1
    - Dst: MP_TO_SEC_ERROR
      Src: /src/nss/lib/freebl/rsa.c:205,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 81
    argCount: 8
    argNames:
    - p
    - q
    - e
    - needPublicExponent
    - d
    - needPrivateExponent
    - key
    - keySizeInBits
    argTypes:
    - mp_int*
    - mp_int*
    - mp_int*
    - PRBool
    - mp_int*
    - PRBool
    - RSAPrivateKey*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 209
    functionName: rsa_build_from_primes
    functionSourceFile: /src/nss/lib/freebl/rsa.c
    functionUses: 0
    functionsReached:
    - mp_init
    - PORT_Assert
    - mp_invmod
    - mp_mul
    - mp_mod
    - mp_lcm
    - mp_cmp_d
    - MPINT_TO_SECITEM
    - CHECK_MPI_OK
    - mp_sub_d
    - PORT_SetError
    - MP_TO_SEC_ERROR
    - mp_cmp
    - mp_clear
    - MP_DIGITS
    - mpl_significant_bits
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus rsa_build_from_primes(const mp_int *p, const mp_int *q,\n
      \                     mp_int *e, PRBool needPublicExponent,\n                      mp_int
      *d, PRBool needPrivateExponent,\n                      RSAPrivateKey *key, unsigned
      int keySizeInBits)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Alloc
      Src: /src/nss/lib/freebl/rsa.c:218,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsa.c:220,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/rsa.c:224,1
    - Dst: RNG_GenerateGlobalRandomBytes
      Src: /src/nss/lib/freebl/rsa.c:224,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:227,1
    - Dst: mp_read_unsigned_octets
      Src: /src/nss/lib/freebl/rsa.c:227,1
    - Dst: mpp_make_prime_secure
      Src: /src/nss/lib/freebl/rsa.c:228,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/freebl/rsa.c:235,1
    - Dst: MP_TO_SEC_ERROR
      Src: /src/nss/lib/freebl/rsa.c:237,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - prime
    - primeLen
    argTypes:
    - mp_int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 241
    functionName: generate_prime
    functionSourceFile: /src/nss/lib/freebl/rsa.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_ZFree
    - CHECK_SEC_OK
    - CHECK_MPI_OK
    - mpp_make_prime_secure
    - PORT_SetError
    - RNG_GenerateGlobalRandomBytes
    - mp_read_unsigned_octets
    - MP_TO_SEC_ERROR
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus generate_prime(mp_int *prime, int primeLen)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:264,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:265,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:265,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:267,1
    - Dst: mp_sub
      Src: /src/nss/lib/freebl/rsa.c:267,1
    - Dst: mpl_significant_bits
      Src: /src/nss/lib/freebl/rsa.c:268,1
    - Dst: mpl_significant_bits
      Src: /src/nss/lib/freebl/rsa.c:272,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:278,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - p
    - q
    - d
    - keySizeInBits
    argTypes:
    - mp_int*
    - mp_int*
    - mp_int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 280
    functionName: rsa_fips186_verify
    functionSourceFile: /src/nss/lib/freebl/rsa.c
    functionUses: 0
    functionsReached:
    - mp_init
    - mp_sub
    - CHECK_MPI_OK
    - mp_clear
    - MP_DIGITS
    - mpl_significant_bits
    linkageType: ''
    returnType: PRBool
    signature: PRBool rsa_fips186_verify(mp_int *p, mp_int *q, mp_int *d, int keySizeInBits)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: BAD_RSA_KEY_SIZE
      Src: /src/nss/lib/freebl/rsa.c:309,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsa.c:310,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:314,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:315,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:315,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/rsa.c:316,1
    - Dst: mp_iseven
      Src: /src/nss/lib/freebl/rsa.c:317,1
    - Dst: mp_cmp_d
      Src: /src/nss/lib/freebl/rsa.c:317,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsa.c:318,1
    - Dst: mp_cmp_d
      Src: /src/nss/lib/freebl/rsa.c:323,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsa.c:324,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/freebl/rsa.c:330,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsa.c:332,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/freebl/rsa.c:335,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsa.c:337,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:343,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:344,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:345,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:346,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:346,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:347,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:347,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:348,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:348,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/freebl/rsa.c:350,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsa.c:356,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/rsa.c:357,1
    - Dst: generate_prime
      Src: /src/nss/lib/freebl/rsa.c:357,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/rsa.c:358,1
    - Dst: generate_prime
      Src: /src/nss/lib/freebl/rsa.c:358,1
    - Dst: mp_cmp
      Src: /src/nss/lib/freebl/rsa.c:364,1
    - Dst: mp_exch
      Src: /src/nss/lib/freebl/rsa.c:365,1
    - Dst: rsa_build_from_primes
      Src: /src/nss/lib/freebl/rsa.c:367,1
    - Dst: rsa_fips186_verify
      Src: /src/nss/lib/freebl/rsa.c:372,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/freebl/rsa.c:377,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:384,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:385,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:386,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:387,1
    - Dst: MP_TO_SEC_ERROR
      Src: /src/nss/lib/freebl/rsa.c:389,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/freebl/rsa.c:393,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 74
    argCount: 2
    argNames:
    - keySizeInBits
    - publicExponent
    argTypes:
    - int
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 292
    functionDepth: 2
    functionLinenumber: 292
    functionLinenumberEnd: 397
    functionName: RSA_NewKey
    functionSourceFile: /src/nss/lib/freebl/rsa.c
    functionUses: 6
    functionsReached:
    - MP_TO_SEC_ERROR
    - BAD_RSA_KEY_SIZE
    - PORT_NewArena
    - mp_exch
    - rsa_build_from_primes
    - mp_iseven
    - CHECK_SEC_OK
    - CHECK_MPI_OK
    - PORT_SetError
    - PORT_ArenaZNew
    - mp_clear
    - MP_DIGITS
    - mp_init
    - PORT_FreeArena
    - mp_cmp_d
    - SECITEM_AllocItem
    - SECITEM_TO_MPINT
    - generate_prime
    - mp_cmp
    - rsa_fips186_verify
    - PORT_GetError
    linkageType: ''
    returnType: RSAPrivateKey
    signature: 'RSAPrivateKey *

      RSA_NewKey(int keySizeInBits, SECItem *publicExponent)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mpp_fermat
      Src: /src/nss/lib/freebl/rsa.c:405,1
    - Dst: mpp_pprime_secure
      Src: /src/nss/lib/freebl/rsa.c:411,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 413
    functionName: rsa_is_prime
    functionSourceFile: /src/nss/lib/freebl/rsa.c
    functionUses: 0
    functionsReached:
    - mpp_fermat
    - mpp_pprime_secure
    linkageType: ''
    returnType: mp_err
    signature: mp_err rsa_is_prime(mp_int *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:447,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:448,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:449,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:450,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:451,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:452,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:453,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:454,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:454,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:455,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:455,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:456,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:456,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:457,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:457,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:458,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:458,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:459,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:459,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:460,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:460,1
    - Dst: mp_set_int
      Src: /src/nss/lib/freebl/rsa.c:462,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:465,1
    - Dst: mp_mul
      Src: /src/nss/lib/freebl/rsa.c:465,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:466,1
    - Dst: mp_sub_d
      Src: /src/nss/lib/freebl/rsa.c:466,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:469,1
    - Dst: mp_copy
      Src: /src/nss/lib/freebl/rsa.c:469,1
    - Dst: mpp_divis_d
      Src: /src/nss/lib/freebl/rsa.c:470,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:471,1
    - Dst: mp_div_2
      Src: /src/nss/lib/freebl/rsa.c:471,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:476,1
    - Dst: mp_copy
      Src: /src/nss/lib/freebl/rsa.c:476,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:477,1
    - Dst: mp_sub_d
      Src: /src/nss/lib/freebl/rsa.c:477,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:480,1
    - Dst: mp_set_int
      Src: /src/nss/lib/freebl/rsa.c:480,1
    - Dst: mp_cmp
      Src: /src/nss/lib/freebl/rsa.c:482,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:484,1
    - Dst: mp_exptmod
      Src: /src/nss/lib/freebl/rsa.c:484,1
    - Dst: mp_cmp
      Src: /src/nss/lib/freebl/rsa.c:488,1
    - Dst: mp_cmp_d
      Src: /src/nss/lib/freebl/rsa.c:488,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:493,1
    - Dst: mp_exptmod_d
      Src: /src/nss/lib/freebl/rsa.c:493,1
    - Dst: mp_cmp_d
      Src: /src/nss/lib/freebl/rsa.c:496,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:498,1
    - Dst: mp_sub_d
      Src: /src/nss/lib/freebl/rsa.c:498,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:499,1
    - Dst: mp_gcd
      Src: /src/nss/lib/freebl/rsa.c:499,1
    - Dst: mp_cmp_d
      Src: /src/nss/lib/freebl/rsa.c:500,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:501,1
    - Dst: mp_add_d
      Src: /src/nss/lib/freebl/rsa.c:501,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:504,1
    - Dst: mp_div
      Src: /src/nss/lib/freebl/rsa.c:504,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:507,1
    - Dst: mp_copy
      Src: /src/nss/lib/freebl/rsa.c:507,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:510,1
    - Dst: mp_add_d
      Src: /src/nss/lib/freebl/rsa.c:510,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:517,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:518,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:519,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:520,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:521,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:522,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:523,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 59
    argCount: 5
    argNames:
    - e
    - d
    - p
    - q
    - n
    argTypes:
    - mp_int*
    - mp_int*
    - mp_int*
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 525
    functionName: rsa_factorize_n_from_exponents
    functionSourceFile: /src/nss/lib/freebl/rsa.c
    functionUses: 0
    functionsReached:
    - mp_init
    - mp_div_2
    - mp_add_d
    - mp_exptmod
    - mp_gcd
    - mp_mul
    - mp_cmp_d
    - CHECK_MPI_OK
    - mp_copy
    - mp_sub_d
    - mp_exptmod_d
    - mpp_divis_d
    - mp_div
    - mp_cmp
    - mp_clear
    - MP_DIGITS
    - mp_set_int
    linkageType: ''
    returnType: mp_err
    signature: "mp_err rsa_factorize_n_from_exponents(mp_int *e, mp_int *d, mp_int
      *p, mp_int *q,\n                               mp_int *n)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:572,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:573,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:574,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:575,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:576,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:577,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:577,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:578,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:578,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:579,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:579,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:580,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:580,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:581,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:581,1
    - Dst: mpl_significant_bits
      Src: /src/nss/lib/freebl/rsa.c:601,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:607,1
    - Dst: mp_mul
      Src: /src/nss/lib/freebl/rsa.c:607,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:608,1
    - Dst: mp_sub_d
      Src: /src/nss/lib/freebl/rsa.c:608,1
    - Dst: mpl_significant_bits
      Src: /src/nss/lib/freebl/rsa.c:616,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:625,1
    - Dst: mp_2expt
      Src: /src/nss/lib/freebl/rsa.c:625,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:626,1
    - Dst: mp_div
      Src: /src/nss/lib/freebl/rsa.c:626,1
    - Dst: mp_cmp
      Src: /src/nss/lib/freebl/rsa.c:627,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:629,1
    - Dst: mp_sub_d
      Src: /src/nss/lib/freebl/rsa.c:629,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:636,1
    - Dst: mp_sub_d
      Src: /src/nss/lib/freebl/rsa.c:636,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:637,1
    - Dst: mp_div
      Src: /src/nss/lib/freebl/rsa.c:637,1
    - Dst: mp_cmp_z
      Src: /src/nss/lib/freebl/rsa.c:638,1
    - Dst: mp_zero
      Src: /src/nss/lib/freebl/rsa.c:643,1
    - Dst: mpl_significant_bits
      Src: /src/nss/lib/freebl/rsa.c:647,1
    - Dst: mp_sub_d
      Src: /src/nss/lib/freebl/rsa.c:648,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:649,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:651,1
    - Dst: mp_div
      Src: /src/nss/lib/freebl/rsa.c:651,1
    - Dst: mp_cmp_z
      Src: /src/nss/lib/freebl/rsa.c:652,1
    - Dst: mpl_significant_bits
      Src: /src/nss/lib/freebl/rsa.c:657,1
    - Dst: mpp_divis_d
      Src: /src/nss/lib/freebl/rsa.c:663,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:668,1
    - Dst: mp_add_d
      Src: /src/nss/lib/freebl/rsa.c:668,1
    - Dst: rsa_is_prime
      Src: /src/nss/lib/freebl/rsa.c:671,1
    - Dst: mp_cmp_z
      Src: /src/nss/lib/freebl/rsa.c:698,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:706,1
    - Dst: mp_copy
      Src: /src/nss/lib/freebl/rsa.c:706,1
    - Dst: mpl_significant_bits
      Src: /src/nss/lib/freebl/rsa.c:709,1
    - Dst: mp_cmp_z
      Src: /src/nss/lib/freebl/rsa.c:710,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:717,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:718,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:719,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:720,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:721,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 78
    argCount: 6
    argNames:
    - e
    - d
    - p
    - q
    - n
    - keySizeInBits
    argTypes:
    - mp_int*
    - mp_int*
    - mp_int*
    - mp_int*
    - mp_int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 560
    functionDepth: 2
    functionLinenumber: 560
    functionLinenumberEnd: 723
    functionName: rsa_get_prime_from_exponents
    functionSourceFile: /src/nss/lib/freebl/rsa.c
    functionUses: 0
    functionsReached:
    - mp_init
    - mp_add_d
    - mp_2expt
    - mp_mul
    - mp_cmp_z
    - CHECK_MPI_OK
    - rsa_is_prime
    - mp_sub_d
    - mp_zero
    - mpp_divis_d
    - mp_copy
    - mp_div
    - mp_cmp
    - mp_clear
    - MP_DIGITS
    - mpl_significant_bits
    linkageType: ''
    returnType: mp_err
    signature: "mp_err rsa_get_prime_from_exponents(mp_int *e, mp_int *d, mp_int *p,
      mp_int *q,\n                             mp_int *n, unsigned int keySizeInBits)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:786,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:787,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:788,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:789,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:790,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:791,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:792,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:792,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:793,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:793,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:794,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:794,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:795,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:795,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:796,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:796,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:797,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:797,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/freebl/rsa.c:801,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/rsa.c:810,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/rsa.c:814,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/rsa.c:833,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/rsa.c:842,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/rsa.c:852,1
    - Dst: mp_div
      Src: /src/nss/lib/freebl/rsa.c:857,1
    - Dst: mp_cmp_z
      Src: /src/nss/lib/freebl/rsa.c:857,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:872,1
    - Dst: rsa_get_prime_from_exponents
      Src: /src/nss/lib/freebl/rsa.c:872,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:875,1
    - Dst: rsa_factorize_n_from_exponents
      Src: /src/nss/lib/freebl/rsa.c:875,1
    - Dst: mp_cmp
      Src: /src/nss/lib/freebl/rsa.c:888,1
    - Dst: mp_exch
      Src: /src/nss/lib/freebl/rsa.c:889,1
    - Dst: rsa_build_from_primes
      Src: /src/nss/lib/freebl/rsa.c:893,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:898,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:899,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:900,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:901,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:902,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:903,1
    - Dst: MP_TO_SEC_ERROR
      Src: /src/nss/lib/freebl/rsa.c:905,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/freebl/rsa.c:909,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 98
    argCount: 1
    argNames:
    - key
    argTypes:
    - RSAPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 770
    functionDepth: 3
    functionLinenumber: 770
    functionLinenumberEnd: 913
    functionName: RSA_PopulatePrivateKey
    functionSourceFile: /src/nss/lib/freebl/rsa.c
    functionUses: 2
    functionsReached:
    - mp_init
    - PORT_NewArena
    - mp_exch
    - rsa_build_from_primes
    - mp_cmp_z
    - PORT_FreeArena
    - CHECK_MPI_OK
    - SECITEM_TO_MPINT
    - rsa_factorize_n_from_exponents
    - mp_div
    - MP_TO_SEC_ERROR
    - mp_cmp
    - mp_clear
    - rsa_get_prime_from_exponents
    - MP_DIGITS
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus RSA_PopulatePrivateKey(RSAPrivateKey *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - modulus
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 915
    functionDepth: 0
    functionLinenumber: 915
    functionLinenumberEnd: 924
    functionName: rsa_modulusLen
    functionSourceFile: /src/nss/lib/freebl/rsa.c
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int rsa_modulusLen(SECItem *modulus)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsa.c:940,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:943,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:944,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:945,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:946,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:947,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:947,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:948,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:948,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:949,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:949,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:950,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:950,1
    - Dst: rsa_modulusLen
      Src: /src/nss/lib/freebl/rsa.c:951,1
    - Dst: rsa_modulusLen
      Src: /src/nss/lib/freebl/rsa.c:952,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsa.c:955,1
    - Dst: BAD_RSA_KEY_SIZE
      Src: /src/nss/lib/freebl/rsa.c:961,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsa.c:962,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/rsa.c:966,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/rsa.c:967,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsa.c:970,1
    - Dst: memcmp
      Src: /src/nss/lib/freebl/rsa.c:976,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsa.c:977,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:982,1
    - Dst: mp_read_unsigned_octets
      Src: /src/nss/lib/freebl/rsa.c:982,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/rsa.c:986,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:987,1
    - Dst: mp_exptmod_d
      Src: /src/nss/lib/freebl/rsa.c:987,1
    - Dst: MP_DIGIT
      Src: /src/nss/lib/freebl/rsa.c:987,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:990,1
    - Dst: mp_exptmod
      Src: /src/nss/lib/freebl/rsa.c:990,1
    - Dst: mp_to_fixlen_octets
      Src: /src/nss/lib/freebl/rsa.c:992,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:996,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:997,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:998,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:999,1
    - Dst: MP_TO_SEC_ERROR
      Src: /src/nss/lib/freebl/rsa.c:1001,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 61
    argCount: 3
    argNames:
    - key
    - output
    - input
    argTypes:
    - RSAPublicKey*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 930
    functionDepth: 1
    functionLinenumber: 930
    functionLinenumberEnd: 1005
    functionName: RSA_PublicKeyOp
    functionSourceFile: /src/nss/lib/freebl/rsa.c
    functionUses: 9
    functionsReached:
    - mp_init
    - BAD_RSA_KEY_SIZE
    - mp_exptmod
    - mp_clear
    - CHECK_MPI_OK
    - mp_exptmod_d
    - SECITEM_TO_MPINT
    - PORT_SetError
    - MP_USED
    - mp_read_unsigned_octets
    - rsa_modulusLen
    - MP_TO_SEC_ERROR
    - MP_DIGIT
    - memcmp
    - MP_DIGITS
    - mp_to_fixlen_octets
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus RSA_PublicKeyOp(RSAPublicKey *key,\n                unsigned
      char *output,\n                const unsigned char *input)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:1017,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1018,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:1018,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/rsa.c:1019,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1021,1
    - Dst: mp_exptmod
      Src: /src/nss/lib/freebl/rsa.c:1021,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:1023,1
    - Dst: MP_TO_SEC_ERROR
      Src: /src/nss/lib/freebl/rsa.c:1025,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 5
    argNames:
    - key
    - m
    - c
    - n
    - modLen
    argTypes:
    - RSAPrivateKey*
    - mp_int*
    - mp_int*
    - mp_int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 1010
    functionDepth: 1
    functionLinenumber: 1010
    functionLinenumberEnd: 1029
    functionName: rsa_PrivateKeyOpNoCRT
    functionSourceFile: /src/nss/lib/freebl/rsa.c
    functionUses: 0
    functionsReached:
    - mp_init
    - mp_exptmod
    - CHECK_MPI_OK
    - SECITEM_TO_MPINT
    - MP_TO_SEC_ERROR
    - mp_clear
    - MP_DIGITS
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus rsa_PrivateKeyOpNoCRT(RSAPrivateKey *key, mp_int *m, mp_int
      *c, mp_int *n,\n                      unsigned int modLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:1048,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:1049,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:1050,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:1051,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:1052,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:1053,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:1054,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:1055,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:1056,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:1057,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:1058,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:1059,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:1060,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1062,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:1062,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1063,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:1063,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1064,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:1064,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1065,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:1065,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1066,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:1066,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1067,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:1067,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1068,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:1068,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1069,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:1069,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1070,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:1070,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1071,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:1071,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1072,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:1072,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1073,1
    - Dst: mp_init_size
      Src: /src/nss/lib/freebl/rsa.c:1073,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1074,1
    - Dst: mp_init_size
      Src: /src/nss/lib/freebl/rsa.c:1074,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/rsa.c:1077,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/rsa.c:1078,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/rsa.c:1079,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/rsa.c:1080,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/rsa.c:1081,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1084,1
    - Dst: mp_set_int
      Src: /src/nss/lib/freebl/rsa.c:1084,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1086,1
    - Dst: mp_sub
      Src: /src/nss/lib/freebl/rsa.c:1086,1
    - Dst: RNG_GenerateGlobalRandomBytes
      Src: /src/nss/lib/freebl/rsa.c:1088,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/rsa.c:1089,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/rsa.c:1090,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:1090,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1092,1
    - Dst: mp_mul
      Src: /src/nss/lib/freebl/rsa.c:1092,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1094,1
    - Dst: mp_add
      Src: /src/nss/lib/freebl/rsa.c:1094,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1097,1
    - Dst: mp_set_int
      Src: /src/nss/lib/freebl/rsa.c:1097,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1099,1
    - Dst: mp_sub
      Src: /src/nss/lib/freebl/rsa.c:1099,1
    - Dst: RNG_GenerateGlobalRandomBytes
      Src: /src/nss/lib/freebl/rsa.c:1101,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/rsa.c:1102,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:1102,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/rsa.c:1103,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1105,1
    - Dst: mp_mul
      Src: /src/nss/lib/freebl/rsa.c:1105,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1107,1
    - Dst: mp_add
      Src: /src/nss/lib/freebl/rsa.c:1107,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1110,1
    - Dst: mp_mod
      Src: /src/nss/lib/freebl/rsa.c:1110,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1111,1
    - Dst: mp_exptmod
      Src: /src/nss/lib/freebl/rsa.c:1111,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1113,1
    - Dst: mp_mod
      Src: /src/nss/lib/freebl/rsa.c:1113,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1114,1
    - Dst: mp_exptmod
      Src: /src/nss/lib/freebl/rsa.c:1114,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1116,1
    - Dst: mp_submod
      Src: /src/nss/lib/freebl/rsa.c:1116,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1117,1
    - Dst: mp_mulmod
      Src: /src/nss/lib/freebl/rsa.c:1117,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1119,1
    - Dst: mp_mul
      Src: /src/nss/lib/freebl/rsa.c:1119,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1120,1
    - Dst: mp_add
      Src: /src/nss/lib/freebl/rsa.c:1120,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:1122,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:1123,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:1124,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:1125,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:1126,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:1127,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:1128,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:1129,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:1130,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:1131,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:1132,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:1133,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:1134,1
    - Dst: MP_TO_SEC_ERROR
      Src: /src/nss/lib/freebl/rsa.c:1136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 74
    argCount: 3
    argNames:
    - key
    - m
    - c
    argTypes:
    - RSAPrivateKey*
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1140
      start: 1034
    functionDepth: 1
    functionLinenumber: 1034
    functionLinenumberEnd: 1140
    functionName: rsa_PrivateKeyOpCRTNoCheck
    functionSourceFile: /src/nss/lib/freebl/rsa.c
    functionUses: 0
    functionsReached:
    - mp_init
    - MP_TO_SEC_ERROR
    - memcpy
    - mp_exptmod
    - mp_add
    - mp_mul
    - mp_mod
    - mp_mulmod
    - CHECK_MPI_OK
    - mp_sub
    - SECITEM_TO_MPINT
    - mp_submod
    - RNG_GenerateGlobalRandomBytes
    - MP_USED
    - mp_set_int
    - mp_clear
    - MP_DIGITS
    - mp_init_size
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus rsa_PrivateKeyOpCRTNoCheck(RSAPrivateKey *key, mp_int *m,
      mp_int *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:1157,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:1158,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:1159,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1160,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:1160,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1161,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:1161,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1162,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:1162,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/rsa.c:1163,1
    - Dst: rsa_PrivateKeyOpCRTNoCheck
      Src: /src/nss/lib/freebl/rsa.c:1163,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/rsa.c:1164,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/rsa.c:1165,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1167,1
    - Dst: mp_exptmod
      Src: /src/nss/lib/freebl/rsa.c:1167,1
    - Dst: mp_cmp
      Src: /src/nss/lib/freebl/rsa.c:1168,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsa.c:1170,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:1174,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:1175,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:1176,1
    - Dst: MP_TO_SEC_ERROR
      Src: /src/nss/lib/freebl/rsa.c:1178,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 3
    argNames:
    - key
    - m
    - c
    argTypes:
    - RSAPrivateKey*
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1182
      start: 1151
    functionDepth: 2
    functionLinenumber: 1151
    functionLinenumberEnd: 1182
    functionName: rsa_PrivateKeyOpCRTCheckedPubKey
    functionSourceFile: /src/nss/lib/freebl/rsa.c
    functionUses: 0
    functionsReached:
    - mp_init
    - mp_exptmod
    - CHECK_SEC_OK
    - CHECK_MPI_OK
    - rsa_PrivateKeyOpCRTNoCheck
    - SECITEM_TO_MPINT
    - PORT_SetError
    - MP_TO_SEC_ERROR
    - mp_cmp
    - mp_clear
    - MP_DIGITS
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus rsa_PrivateKeyOpCRTCheckedPubKey(RSAPrivateKey *key, mp_int
      *m, mp_int *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PZ_NewLock
      Src: /src/nss/lib/freebl/rsa.c:1188,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsa.c:1190,1
    - Dst: PR_NewCondVar
      Src: /src/nss/lib/freebl/rsa.c:1193,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsa.c:1195,1
    - Dst: PR_INIT_CLIST
      Src: /src/nss/lib/freebl/rsa.c:1199,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1201
      start: 1185
    functionDepth: 1
    functionLinenumber: 1185
    functionLinenumberEnd: 1201
    functionName: init_blinding_params_list
    functionSourceFile: /src/nss/lib/freebl/rsa.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PR_INIT_CLIST
    - PZ_NewLock
    - PR_NewCondVar
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus init_blinding_params_list(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:1212,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:1213,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1214,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:1214,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1215,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:1215,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/rsa.c:1216,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/freebl/rsa.c:1218,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsa.c:1220,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/rsa.c:1223,1
    - Dst: RNG_GenerateGlobalRandomBytes
      Src: /src/nss/lib/freebl/rsa.c:1223,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1224,1
    - Dst: mp_read_unsigned_octets
      Src: /src/nss/lib/freebl/rsa.c:1224,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1226,1
    - Dst: mp_mod
      Src: /src/nss/lib/freebl/rsa.c:1226,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1228,1
    - Dst: mp_exptmod
      Src: /src/nss/lib/freebl/rsa.c:1228,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1230,1
    - Dst: mp_invmod
      Src: /src/nss/lib/freebl/rsa.c:1230,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1232,1
    - Dst: mp_to_mont
      Src: /src/nss/lib/freebl/rsa.c:1232,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/freebl/rsa.c:1235,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:1236,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:1237,1
    - Dst: MP_TO_SEC_ERROR
      Src: /src/nss/lib/freebl/rsa.c:1239,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 5
    argNames:
    - key
    - f
    - g
    - n
    - modLen
    argTypes:
    - RSAPrivateKey*
    - mp_int*
    - mp_int*
    - mp_int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1243
      start: 1203
    functionDepth: 1
    functionLinenumber: 1203
    functionLinenumberEnd: 1243
    functionName: generate_blinding_params
    functionSourceFile: /src/nss/lib/freebl/rsa.c
    functionUses: 0
    functionsReached:
    - mp_init
    - PORT_Alloc
    - PORT_ZFree
    - mp_exptmod
    - mp_invmod
    - mp_mod
    - mp_to_mont
    - CHECK_SEC_OK
    - CHECK_MPI_OK
    - SECITEM_TO_MPINT
    - PORT_SetError
    - RNG_GenerateGlobalRandomBytes
    - mp_read_unsigned_octets
    - MP_TO_SEC_ERROR
    - mp_clear
    - MP_DIGITS
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus generate_blinding_params(RSAPrivateKey *key, mp_int *f,
      mp_int *g, mp_int *n,\n                         unsigned int modLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_INIT_CLIST
      Src: /src/nss/lib/freebl/rsa.c:1253,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:1256,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:1257,1
    - Dst: mp_calculate_mont_n0i
      Src: /src/nss/lib/freebl/rsa.c:1270,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/freebl/rsa.c:1273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 4
    argNames:
    - rsabp
    - key
    - n
    - modLen
    argTypes:
    - RSABlindingParams*
    - RSAPrivateKey*
    - mp_int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1274
      start: 1245
    functionDepth: 1
    functionLinenumber: 1245
    functionLinenumberEnd: 1274
    functionName: init_blinding_params
    functionSourceFile: /src/nss/lib/freebl/rsa.c
    functionUses: 0
    functionsReached:
    - PR_INIT_CLIST
    - MP_DIGITS
    - mp_calculate_mont_n0i
    - SECITEM_CopyItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus init_blinding_params(RSABlindingParams *rsabp, RSAPrivateKey
      *key,\n                     mp_int *n, unsigned int modLen)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsa.c:1291,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/freebl/rsa.c:1295,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/freebl/rsa.c:1299,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/freebl/rsa.c:1301,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/freebl/rsa.c:1303,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/freebl/rsa.c:1314,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsa.c:1316,1
    - Dst: init_blinding_params
      Src: /src/nss/lib/freebl/rsa.c:1320,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/freebl/rsa.c:1322,1
    - Dst: PR_INSERT_BEFORE
      Src: /src/nss/lib/freebl/rsa.c:1332,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1343,1
    - Dst: mp_copy
      Src: /src/nss/lib/freebl/rsa.c:1343,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1344,1
    - Dst: mp_copy
      Src: /src/nss/lib/freebl/rsa.c:1344,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/freebl/rsa.c:1346,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1352,1
    - Dst: mp_copy
      Src: /src/nss/lib/freebl/rsa.c:1352,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1353,1
    - Dst: mp_copy
      Src: /src/nss/lib/freebl/rsa.c:1353,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/freebl/rsa.c:1355,1
    - Dst: mp_exch
      Src: /src/nss/lib/freebl/rsa.c:1361,1
    - Dst: mp_exch
      Src: /src/nss/lib/freebl/rsa.c:1362,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:1363,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:1364,1
    - Dst: PR_NotifyCondVar
      Src: /src/nss/lib/freebl/rsa.c:1374,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/freebl/rsa.c:1377,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/freebl/rsa.c:1389,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/rsa.c:1392,1
    - Dst: generate_blinding_params
      Src: /src/nss/lib/freebl/rsa.c:1392,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1395,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:1395,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1396,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:1396,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1397,1
    - Dst: mp_copy
      Src: /src/nss/lib/freebl/rsa.c:1397,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1398,1
    - Dst: mp_copy
      Src: /src/nss/lib/freebl/rsa.c:1398,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/freebl/rsa.c:1401,1
    - Dst: PR_NotifyAllCondVar
      Src: /src/nss/lib/freebl/rsa.c:1413,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/freebl/rsa.c:1416,1
    - Dst: PR_WaitCondVar
      Src: /src/nss/lib/freebl/rsa.c:1426,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/freebl/rsa.c:1427,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/freebl/rsa.c:1436,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:1440,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:1441,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/freebl/rsa.c:1448,1
    - Dst: MP_TO_SEC_ERROR
      Src: /src/nss/lib/freebl/rsa.c:1451,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 110
    argCount: 6
    argNames:
    - key
    - n
    - modLen
    - f
    - g
    - n0i
    argTypes:
    - RSAPrivateKey*
    - mp_int*
    - unsigned int
    - mp_int*
    - mp_int*
    - mp_digit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1455
      start: 1276
    functionDepth: 2
    functionLinenumber: 1276
    functionLinenumberEnd: 1455
    functionName: get_blinding_params
    functionSourceFile: /src/nss/lib/freebl/rsa.c
    functionUses: 0
    functionsReached:
    - SECITEM_CompareItem
    - PORT_ZNew
    - PZ_Unlock
    - MP_TO_SEC_ERROR
    - mp_exch
    - PR_WaitCondVar
    - CHECK_SEC_OK
    - CHECK_MPI_OK
    - PORT_SetError
    - PR_NotifyAllCondVar
    - init_blinding_params
    - mp_clear
    - mp_init
    - PORT_ZFree
    - PR_INSERT_BEFORE
    - mp_copy
    - generate_blinding_params
    - PR_NEXT_LINK
    - PR_NotifyCondVar
    - PZ_Lock
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus get_blinding_params(RSAPrivateKey *key, mp_int *n, unsigned
      int modLen,\n                    mp_int *f, mp_int *g, mp_digit *n0i)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsa.c:1475,1
    - Dst: rsa_modulusLen
      Src: /src/nss/lib/freebl/rsa.c:1479,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsa.c:1481,1
    - Dst: memcmp
      Src: /src/nss/lib/freebl/rsa.c:1485,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsa.c:1486,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:1489,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:1490,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:1491,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:1492,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:1493,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1494,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:1494,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1495,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:1495,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1496,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:1496,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1497,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:1497,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1498,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:1498,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/rsa.c:1499,1
    - Dst: OCTETS_TO_MPINT
      Src: /src/nss/lib/freebl/rsa.c:1500,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/rsa.c:1505,1
    - Dst: get_blinding_params
      Src: /src/nss/lib/freebl/rsa.c:1505,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1507,1
    - Dst: mp_mulmod
      Src: /src/nss/lib/freebl/rsa.c:1507,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/rsa.c:1515,1
    - Dst: rsa_PrivateKeyOpNoCRT
      Src: /src/nss/lib/freebl/rsa.c:1515,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/rsa.c:1517,1
    - Dst: rsa_PrivateKeyOpCRTCheckedPubKey
      Src: /src/nss/lib/freebl/rsa.c:1517,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/rsa.c:1519,1
    - Dst: rsa_PrivateKeyOpCRTNoCheck
      Src: /src/nss/lib/freebl/rsa.c:1519,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1526,1
    - Dst: mp_mulmontmodCT
      Src: /src/nss/lib/freebl/rsa.c:1526,1
    - Dst: mp_to_fixlen_octets
      Src: /src/nss/lib/freebl/rsa.c:1528,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:1532,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:1533,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:1534,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:1535,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:1536,1
    - Dst: MP_TO_SEC_ERROR
      Src: /src/nss/lib/freebl/rsa.c:1538,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 57
    argCount: 4
    argNames:
    - key
    - output
    - input
    - check
    argTypes:
    - RSAPrivateKey*
    - unsigned char*
    - unsigned char*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1542
      start: 1461
    functionDepth: 3
    functionLinenumber: 1461
    functionLinenumberEnd: 1542
    functionName: rsa_PrivateKeyOp
    functionSourceFile: /src/nss/lib/freebl/rsa.c
    functionUses: 0
    functionsReached:
    - mp_init
    - OCTETS_TO_MPINT
    - rsa_PrivateKeyOpCRTCheckedPubKey
    - mp_mulmontmodCT
    - mp_mulmod
    - CHECK_SEC_OK
    - mp_clear
    - CHECK_MPI_OK
    - SECITEM_TO_MPINT
    - PORT_SetError
    - rsa_PrivateKeyOpNoCRT
    - rsa_PrivateKeyOpCRTNoCheck
    - rsa_modulusLen
    - MP_TO_SEC_ERROR
    - get_blinding_params
    - memcmp
    - MP_DIGITS
    - mp_to_fixlen_octets
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus rsa_PrivateKeyOp(RSAPrivateKey *key,\n                 unsigned
      char *output,\n                 const unsigned char *input,\n                 PRBool
      check)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rsa_PrivateKeyOp
      Src: /src/nss/lib/freebl/rsa.c:1549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - output
    - input
    argTypes:
    - RSAPrivateKey*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1550
      start: 1544
    functionDepth: 0
    functionLinenumber: 1544
    functionLinenumberEnd: 1550
    functionName: RSA_PrivateKeyOp
    functionSourceFile: /src/nss/lib/freebl/rsa.c
    functionUses: 3
    functionsReached:
    - rsa_PrivateKeyOp
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus RSA_PrivateKeyOp(RSAPrivateKey *key,\n                 unsigned
      char *output,\n                 const unsigned char *input)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rsa_PrivateKeyOp
      Src: /src/nss/lib/freebl/rsa.c:1557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - output
    - input
    argTypes:
    - RSAPrivateKey*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1558
      start: 1552
    functionDepth: 0
    functionLinenumber: 1552
    functionLinenumberEnd: 1558
    functionName: RSA_PrivateKeyOpDoubleChecked
    functionSourceFile: /src/nss/lib/freebl/rsa.c
    functionUses: 4
    functionsReached:
    - rsa_PrivateKeyOp
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus RSA_PrivateKeyOpDoubleChecked(RSAPrivateKey *key,\n                              unsigned
      char *output,\n                              const unsigned char *input)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:1566,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:1567,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:1568,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:1569,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:1570,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:1571,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:1572,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:1573,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:1574,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:1575,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa.c:1576,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1577,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:1577,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1578,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:1578,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1579,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:1579,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1580,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:1580,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1581,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:1581,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1582,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:1582,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1583,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:1583,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1584,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:1584,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1585,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:1585,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1586,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:1586,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1587,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa.c:1587,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/rsa.c:1599,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/rsa.c:1600,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/rsa.c:1601,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/rsa.c:1602,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/rsa.c:1603,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/rsa.c:1604,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/rsa.c:1605,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/rsa.c:1606,1
    - Dst: mp_cmp
      Src: /src/nss/lib/freebl/rsa.c:1608,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1623,1
    - Dst: mp_mul
      Src: /src/nss/lib/freebl/rsa.c:1623,1
    - Dst: VERIFY_MPI_EQUAL
      Src: /src/nss/lib/freebl/rsa.c:1624,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1626,1
    - Dst: mp_sub_d
      Src: /src/nss/lib/freebl/rsa.c:1626,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1627,1
    - Dst: mp_gcd
      Src: /src/nss/lib/freebl/rsa.c:1627,1
    - Dst: VERIFY_MPI_EQUAL_1
      Src: /src/nss/lib/freebl/rsa.c:1628,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1630,1
    - Dst: mp_sub_d
      Src: /src/nss/lib/freebl/rsa.c:1630,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1631,1
    - Dst: mp_gcd
      Src: /src/nss/lib/freebl/rsa.c:1631,1
    - Dst: VERIFY_MPI_EQUAL_1
      Src: /src/nss/lib/freebl/rsa.c:1632,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1634,1
    - Dst: mp_mulmod
      Src: /src/nss/lib/freebl/rsa.c:1634,1
    - Dst: VERIFY_MPI_EQUAL_1
      Src: /src/nss/lib/freebl/rsa.c:1635,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1637,1
    - Dst: mp_mulmod
      Src: /src/nss/lib/freebl/rsa.c:1637,1
    - Dst: VERIFY_MPI_EQUAL_1
      Src: /src/nss/lib/freebl/rsa.c:1638,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1640,1
    - Dst: mp_mod
      Src: /src/nss/lib/freebl/rsa.c:1640,1
    - Dst: VERIFY_MPI_EQUAL
      Src: /src/nss/lib/freebl/rsa.c:1641,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1643,1
    - Dst: mp_mod
      Src: /src/nss/lib/freebl/rsa.c:1643,1
    - Dst: VERIFY_MPI_EQUAL
      Src: /src/nss/lib/freebl/rsa.c:1644,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa.c:1646,1
    - Dst: mp_mulmod
      Src: /src/nss/lib/freebl/rsa.c:1646,1
    - Dst: VERIFY_MPI_EQUAL_1
      Src: /src/nss/lib/freebl/rsa.c:1647,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:1650,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:1651,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:1652,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:1653,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:1654,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:1655,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:1656,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:1657,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:1658,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:1659,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:1660,1
    - Dst: MP_TO_SEC_ERROR
      Src: /src/nss/lib/freebl/rsa.c:1662,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 77
    argCount: 1
    argNames:
    - key
    argTypes:
    - RSAPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1666
      start: 1560
    functionDepth: 1
    functionLinenumber: 1560
    functionLinenumberEnd: 1666
    functionName: RSA_PrivateKeyCheck
    functionSourceFile: /src/nss/lib/freebl/rsa.c
    functionUses: 1
    functionsReached:
    - mp_init
    - mp_gcd
    - mp_mul
    - mp_mod
    - VERIFY_MPI_EQUAL_1
    - mp_mulmod
    - CHECK_MPI_OK
    - SECITEM_TO_MPINT
    - mp_sub_d
    - MP_TO_SEC_ERROR
    - mp_cmp
    - mp_clear
    - MP_DIGITS
    - VERIFY_MPI_EQUAL
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus RSA_PrivateKeyCheck(const RSAPrivateKey *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - m1
    - ','
    - m2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1617
      start: 1612
    functionDepth: 0
    functionLinenumber: 1612
    functionLinenumberEnd: 1617
    functionName: VERIFY_MPI_EQUAL
    functionSourceFile: /src/nss/lib/freebl/rsa.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VERIFY_MPI_EQUAL(m1, m2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1622
      start: 1617
    functionDepth: 0
    functionLinenumber: 1617
    functionLinenumberEnd: 1622
    functionName: VERIFY_MPI_EQUAL_1
    functionSourceFile: /src/nss/lib/freebl/rsa.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VERIFY_MPI_EQUAL_1(m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_CallOnce
      Src: /src/nss/lib/freebl/rsa.c:1671,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsa.c:1672,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1676
      start: 1668
    functionDepth: 1
    functionLinenumber: 1668
    functionLinenumberEnd: 1676
    functionName: RSA_Init
    functionSourceFile: /src/nss/lib/freebl/rsa.c
    functionUses: 0
    functionsReached:
    - PR_CallOnce
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus RSA_Init(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/lib/freebl/rsa.c:1686,1
    - Dst: PR_LIST_HEAD
      Src: /src/nss/lib/freebl/rsa.c:1688,1
    - Dst: PR_REMOVE_LINK
      Src: /src/nss/lib/freebl/rsa.c:1689,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:1694,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa.c:1695,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/freebl/rsa.c:1697,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/rsa.c:1698,1
    - Dst: PR_DestroyCondVar
      Src: /src/nss/lib/freebl/rsa.c:1702,1
    - Dst: SKIP_AFTER_FORK
      Src: /src/nss/lib/freebl/rsa.c:1707,1
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/freebl/rsa.c:1707,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1714
      start: 1679
    functionDepth: 1
    functionLinenumber: 1679
    functionLinenumberEnd: 1714
    functionName: RSA_Cleanup
    functionSourceFile: /src/nss/lib/freebl/rsa.c
    functionUses: 0
    functionsReached:
    - SKIP_AFTER_FORK
    - PORT_Free
    - PR_REMOVE_LINK
    - PR_DestroyCondVar
    - PR_LIST_HEAD
    - PZ_DestroyLock
    - SECITEM_ZfreeItem
    - mp_clear
    - PR_CLIST_IS_EMPTY
    linkageType: ''
    returnType: void
    signature: void RSA_Cleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSA_Cleanup
      Src: /src/nss/lib/freebl/rsa.c:1724,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1725
      start: 1721
    functionDepth: 2
    functionLinenumber: 1721
    functionLinenumberEnd: 1725
    functionName: BL_Cleanup
    functionSourceFile: /src/nss/lib/freebl/rsa.c
    functionUses: 0
    functionsReached:
    - RSA_Cleanup
    linkageType: ''
    returnType: void
    signature: void BL_Cleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - forked
    argTypes:
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1736
      start: 1732
    functionDepth: 0
    functionLinenumber: 1732
    functionLinenumberEnd: 1736
    functionName: BL_SetForkState
    functionSourceFile: /src/nss/lib/freebl/rsa.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BL_SetForkState(PRBool forked)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vst1_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:21,1
    - Dst: vrev64_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:21,1
    - Dst: vcreate_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:21,1
    - Dst: vst1_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:22,1
    - Dst: vrev64_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:22,1
    - Dst: vcreate_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ghash
    - outbuf
    argTypes:
    - gcmHashContext*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 24
    functionName: gcm_HashWrite_hw
    functionSourceFile: /src/nss/lib/freebl/gcm-arm32-neon.c
    functionUses: 0
    functionsReached:
    - vcreate_u8
    - vst1_u8
    - vrev64_u8
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus gcm_HashWrite_hw(gcmHashContext *ghash, unsigned char *outbuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vcreate_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:33,1
    - Dst: vcreate_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:34,1
    - Dst: vcreate_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:35,1
    - Dst: vreinterpretq_u8_p16
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:38,1
    - Dst: vmull_p8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:38,1
    - Dst: vreinterpret_p8_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:38,1
    - Dst: vreinterpret_p8_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:39,1
    - Dst: vreinterpretq_u8_p16
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:41,1
    - Dst: vmull_p8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:41,1
    - Dst: vreinterpret_p8_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:41,1
    - Dst: vreinterpret_p8_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:42,1
    - Dst: vext_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:42,1
    - Dst: vreinterpretq_u8_p16
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:44,1
    - Dst: vmull_p8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:44,1
    - Dst: vreinterpret_p8_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:44,1
    - Dst: vext_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:44,1
    - Dst: vreinterpret_p8_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:45,1
    - Dst: vreinterpretq_u8_p16
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:47,1
    - Dst: vmull_p8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:47,1
    - Dst: vreinterpret_p8_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:47,1
    - Dst: vreinterpret_p8_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:48,1
    - Dst: vext_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:48,1
    - Dst: vreinterpretq_u8_p16
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:50,1
    - Dst: vmull_p8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:50,1
    - Dst: vreinterpret_p8_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:50,1
    - Dst: vext_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:50,1
    - Dst: vreinterpret_p8_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:51,1
    - Dst: vreinterpretq_u8_p16
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:53,1
    - Dst: vmull_p8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:53,1
    - Dst: vreinterpret_p8_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:53,1
    - Dst: vreinterpret_p8_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:54,1
    - Dst: vext_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:54,1
    - Dst: vreinterpretq_u8_p16
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:56,1
    - Dst: vmull_p8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:56,1
    - Dst: vreinterpret_p8_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:56,1
    - Dst: vext_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:56,1
    - Dst: vreinterpret_p8_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:57,1
    - Dst: vreinterpretq_u8_p16
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:59,1
    - Dst: vmull_p8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:59,1
    - Dst: vreinterpret_p8_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:59,1
    - Dst: vreinterpret_p8_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:60,1
    - Dst: vext_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:60,1
    - Dst: veorq_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:62,1
    - Dst: veorq_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:64,1
    - Dst: veorq_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:66,1
    - Dst: vget_high_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:69,1
    - Dst: vget_low_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:70,1
    - Dst: veor_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:71,1
    - Dst: vand_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:72,1
    - Dst: veor_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:73,1
    - Dst: vcombine_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:74,1
    - Dst: vextq_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:75,1
    - Dst: vget_high_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:78,1
    - Dst: vget_low_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:79,1
    - Dst: veor_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:80,1
    - Dst: vand_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:81,1
    - Dst: veor_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:82,1
    - Dst: vcombine_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:83,1
    - Dst: vextq_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:84,1
    - Dst: vget_high_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:87,1
    - Dst: vget_low_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:88,1
    - Dst: veor_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:89,1
    - Dst: vand_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:90,1
    - Dst: veor_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:91,1
    - Dst: vcombine_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:92,1
    - Dst: vextq_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:93,1
    - Dst: vget_high_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:96,1
    - Dst: vget_low_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:97,1
    - Dst: veor_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:98,1
    - Dst: vdup_n_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:99,1
    - Dst: vcombine_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:100,1
    - Dst: vextq_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:101,1
    - Dst: veorq_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:103,1
    - Dst: veorq_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:104,1
    - Dst: veorq_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:105,1
    - Dst: veorq_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 42
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint8x8_t
    - uint8x8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 106
    functionName: clmul
    functionSourceFile: /src/nss/lib/freebl/gcm-arm32-neon.c
    functionUses: 0
    functionsReached:
    - veor_u8
    - vdup_n_u8
    - vreinterpret_p8_u8
    - vreinterpretq_u8_p16
    - vextq_u8
    - vand_u8
    - vget_high_u8
    - vget_low_u8
    - veorq_u8
    - vcreate_u8
    - vcombine_u8
    - vmull_p8
    - vext_u8
    linkageType: ''
    returnType: uint8x16_t
    signature: uint8x16_t clmul(const uint8x8_t a, const uint8x8_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vcreate_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:112,1
    - Dst: vcreate_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:113,1
    - Dst: vcombine_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:124,1
    - Dst: vcreate_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:124,1
    - Dst: vcreate_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:124,1
    - Dst: veorq_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:127,1
    - Dst: vcombine_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:127,1
    - Dst: vrev64_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:127,1
    - Dst: vld1_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:127,1
    - Dst: vrev64_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:128,1
    - Dst: vld1_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:128,1
    - Dst: vget_high_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:129,1
    - Dst: vget_low_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:130,1
    - Dst: clmul
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:133,1
    - Dst: clmul
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:134,1
    - Dst: clmul
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:135,1
    - Dst: veor_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:135,1
    - Dst: veor_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:135,1
    - Dst: veorq_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:136,1
    - Dst: veorq_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:137,1
    - Dst: vcombine_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:138,1
    - Dst: veor_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:138,1
    - Dst: vget_low_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:138,1
    - Dst: vget_high_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:138,1
    - Dst: vget_high_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:139,1
    - Dst: vcombine_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:140,1
    - Dst: vget_low_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:140,1
    - Dst: veor_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:141,1
    - Dst: vget_high_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:141,1
    - Dst: vget_low_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:141,1
    - Dst: vshlq_n_u64
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:144,1
    - Dst: vreinterpretq_u64_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:144,1
    - Dst: vshrq_n_u64
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:145,1
    - Dst: vreinterpretq_u64_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:145,1
    - Dst: vshlq_n_u64
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:146,1
    - Dst: vreinterpretq_u64_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:146,1
    - Dst: vshrq_n_u64
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:147,1
    - Dst: vreinterpretq_u64_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:147,1
    - Dst: vreinterpretq_u8_u64
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:148,1
    - Dst: vcombine_u64
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:149,1
    - Dst: vget_low_u64
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:149,1
    - Dst: vorr_u64
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:150,1
    - Dst: vget_high_u64
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:150,1
    - Dst: vget_low_u64
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:151,1
    - Dst: vreinterpretq_u8_u64
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:152,1
    - Dst: vcombine_u64
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:153,1
    - Dst: vorr_u64
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:153,1
    - Dst: vget_low_u64
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:153,1
    - Dst: vget_high_u64
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:154,1
    - Dst: vorr_u64
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:155,1
    - Dst: vget_high_u64
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:155,1
    - Dst: vget_low_u64
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:156,1
    - Dst: vshlq_n_s64
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:159,1
    - Dst: vreinterpretq_s64_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:159,1
    - Dst: vshlq_n_s64
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:160,1
    - Dst: vreinterpretq_s64_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:160,1
    - Dst: vshlq_n_s64
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:161,1
    - Dst: vreinterpretq_s64_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:161,1
    - Dst: vreinterpretq_u8_s64
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:162,1
    - Dst: veorq_s64
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:162,1
    - Dst: veorq_s64
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:162,1
    - Dst: vcombine_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:164,1
    - Dst: vget_low_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:164,1
    - Dst: veor_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:165,1
    - Dst: vget_high_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:165,1
    - Dst: vget_low_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:165,1
    - Dst: vcombine_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:166,1
    - Dst: veor_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:166,1
    - Dst: vget_low_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:166,1
    - Dst: vget_high_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:166,1
    - Dst: vget_high_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:167,1
    - Dst: vreinterpretq_u8_u64
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:169,1
    - Dst: vshrq_n_u64
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:169,1
    - Dst: vreinterpretq_u64_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:169,1
    - Dst: veorq_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:170,1
    - Dst: veorq_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:171,1
    - Dst: vreinterpretq_u8_u64
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:172,1
    - Dst: vshrq_n_u64
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:172,1
    - Dst: vreinterpretq_u64_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:172,1
    - Dst: vreinterpretq_u8_u64
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:173,1
    - Dst: vshrq_n_u64
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:174,1
    - Dst: vreinterpretq_u64_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:174,1
    - Dst: veorq_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:175,1
    - Dst: veorq_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:176,1
    - Dst: vst1_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:179,1
    - Dst: vget_high_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:179,1
    - Dst: vst1_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:180,1
    - Dst: vget_low_u8
      Src: /src/nss/lib/freebl/gcm-arm32-neon.c:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 36
    argCount: 3
    argNames:
    - ghash
    - buf
    - count
    argTypes:
    - gcmHashContext*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 182
    functionName: gcm_HashMult_hw
    functionSourceFile: /src/nss/lib/freebl/gcm-arm32-neon.c
    functionUses: 0
    functionsReached:
    - vshrq_n_u64
    - vreinterpretq_u8_s64
    - vcombine_u64
    - clmul
    - vorr_u64
    - vrev64_u8
    - veorq_u8
    - vcreate_u8
    - vcombine_u8
    - vshlq_n_u64
    - vreinterpretq_s64_u8
    - vreinterpretq_u8_u64
    - vreinterpretq_u64_u8
    - veorq_s64
    - vget_high_u8
    - vget_low_u8
    - vshlq_n_s64
    - veor_u8
    - vst1_u8
    - vget_low_u64
    - vget_high_u64
    - vld1_u8
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus gcm_HashMult_hw(gcmHashContext *ghash, const unsigned char
      *buf,\n                unsigned int count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ghash
    argTypes:
    - gcmHashContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 192
    functionName: gcm_HashInit_hw
    functionSourceFile: /src/nss/lib/freebl/gcm-arm32-neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus gcm_HashInit_hw(gcmHashContext *ghash)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ghash
    argTypes:
    - gcmHashContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 200
    functionName: gcm_HashZeroX_hw
    functionSourceFile: /src/nss/lib/freebl/gcm-arm32-neon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus gcm_HashZeroX_hw(gcmHashContext *ghash)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - out
    - in
    - length
    argTypes:
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 56
    functionName: cmac_ShiftLeftOne
    functionSourceFile: /src/nss/lib/freebl/cmac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cmac_ShiftLeftOne(unsigned char *out, const unsigned char *in,
      int length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AES_Encrypt
      Src: /src/nss/lib/freebl/cmac.c:65,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/cmac.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ctx
    - output
    - input
    - inputLen
    argTypes:
    - CMACContext*
    - unsigned char*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 76
    functionName: cmac_Encrypt
    functionSourceFile: /src/nss/lib/freebl/cmac.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - AES_Encrypt
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus cmac_Encrypt(CMACContext *ctx, unsigned char *output,\n
      \            const unsigned char *input,\n             unsigned int inputLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cmac_Encrypt
      Src: /src/nss/lib/freebl/cmac.c:88,1
    - Dst: cmac_ShiftLeftOne
      Src: /src/nss/lib/freebl/cmac.c:97,1
    - Dst: cmac_ShiftLeftOne
      Src: /src/nss/lib/freebl/cmac.c:105,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/cmac.c:114,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/cmac.c:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - CMACContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 119
    functionName: cmac_GenerateSubkeys
    functionSourceFile: /src/nss/lib/freebl/cmac.c
    functionUses: 0
    functionsReached:
    - cmac_ShiftLeftOne
    - cmac_Encrypt
    - PORT_Memset
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus cmac_GenerateSubkeys(CMACContext *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/cmac.c:126,1
    - Dst: cmac_Encrypt
      Src: /src/nss/lib/freebl/cmac.c:137,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - CMACContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 138
    functionName: cmac_UpdateState
    functionSourceFile: /src/nss/lib/freebl/cmac.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - cmac_Encrypt
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus cmac_UpdateState(CMACContext *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/cmac.c:145,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/cmac.c:151,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/cmac.c:155,1
    - Dst: AES_CreateContext
      Src: /src/nss/lib/freebl/cmac.c:159,1
    - Dst: CMAC_Begin
      Src: /src/nss/lib/freebl/cmac.c:165,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - ctx
    - type
    - key
    - key_len
    argTypes:
    - CMACContext*
    - CMACCipher
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 166
    functionName: CMAC_Init
    functionSourceFile: /src/nss/lib/freebl/cmac.c
    functionUses: 0
    functionsReached:
    - CMAC_Begin
    - PORT_SetError
    - PORT_Memset
    - AES_CreateContext
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CMAC_Init(CMACContext *ctx, CMACCipher type,\n          const
      unsigned char *key, unsigned int key_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_New
      Src: /src/nss/lib/freebl/cmac.c:172,1
    - Dst: CMAC_Init
      Src: /src/nss/lib/freebl/cmac.c:174,1
    - Dst: CMAC_Destroy
      Src: /src/nss/lib/freebl/cmac.c:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - type
    - key
    - key_len
    argTypes:
    - CMACCipher
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 180
    functionName: CMAC_Create
    functionSourceFile: /src/nss/lib/freebl/cmac.c
    functionUses: 0
    functionsReached:
    - CMAC_Destroy
    - CMAC_Init
    - PORT_New
    linkageType: ''
    returnType: CMACContext
    signature: "CMACContext *\nCMAC_Create(CMACCipher type, const unsigned char *key,\n
      \           unsigned int key_len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/cmac.c:192,1
    - Dst: cmac_GenerateSubkeys
      Src: /src/nss/lib/freebl/cmac.c:194,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/cmac.c:203,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - CMACContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 206
    functionName: CMAC_Begin
    functionSourceFile: /src/nss/lib/freebl/cmac.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - cmac_GenerateSubkeys
    - PORT_Memset
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CMAC_Begin(CMACContext *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/cmac.c:215,1
    - Dst: cmac_UpdateState
      Src: /src/nss/lib/freebl/cmac.c:234,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/cmac.c:246,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - ctx
    - data
    - data_len
    argTypes:
    - CMACContext*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 252
    functionName: CMAC_Update
    functionSourceFile: /src/nss/lib/freebl/cmac.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PORT_Memcpy
    - cmac_UpdateState
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CMAC_Update(CMACContext *ctx, const unsigned char *data,\n
      \           unsigned int data_len)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/cmac.c:261,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/cmac.c:282,1
    - Dst: cmac_UpdateState
      Src: /src/nss/lib/freebl/cmac.c:293,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/cmac.c:298,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 4
    argNames:
    - ctx
    - result
    - result_len
    - max_result_len
    argTypes:
    - CMACContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 255
    functionDepth: 2
    functionLinenumber: 255
    functionLinenumberEnd: 303
    functionName: CMAC_Finish
    functionSourceFile: /src/nss/lib/freebl/cmac.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PORT_Memcpy
    - PORT_Memset
    - cmac_UpdateState
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CMAC_Finish(CMACContext *ctx, unsigned char *result,\n            unsigned
      int *result_len,\n            unsigned int max_result_len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: AES_DestroyContext
      Src: /src/nss/lib/freebl/cmac.c:313,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/cmac.c:318,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/cmac.c:321,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - ctx
    - free_it
    argTypes:
    - CMACContext*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 323
    functionName: CMAC_Destroy
    functionSourceFile: /src/nss/lib/freebl/cmac.c
    functionUses: 2
    functionsReached:
    - PORT_Free
    - AES_DestroyContext
    - PORT_Memset
    linkageType: ''
    returnType: void
    signature: void CMAC_Destroy(CMACContext *ctx, PRBool free_it)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - X
    - ','
    - Y
    - ','
    - Z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: SHA_F1
    functionSourceFile: /src/nss/lib/freebl/sha_fast.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA_F1(X, Y, Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - X
    - ','
    - Y
    - ','
    - Z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: SHA_F2
    functionSourceFile: /src/nss/lib/freebl/sha_fast.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA_F2(X, Y, Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - X
    - ','
    - Y
    - ','
    - Z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: SHA_F3
    functionSourceFile: /src/nss/lib/freebl/sha_fast.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA_F3(X, Y, Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - X
    - ','
    - Y
    - ','
    - Z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: SHA_F4
    functionSourceFile: /src/nss/lib/freebl/sha_fast.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA_F4(X, Y, Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - n
    - ','
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: SHA_MIX
    functionSourceFile: /src/nss/lib/freebl/sha_fast.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA_MIX(n, a, b, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/sha_fast.c:42,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/sha_fast.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SHA1Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 44
    functionName: SHA1_Compress_Native
    functionSourceFile: /src/nss/lib/freebl/sha_fast.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    linkageType: ''
    returnType: void
    signature: void SHA1_Compress_Native(SHA1Context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/sha_fast.c:49,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/sha_fast.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - dataIn
    - len
    argTypes:
    - SHA1Context*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: SHA1_Update_Native
    functionSourceFile: /src/nss/lib/freebl/sha_fast.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    linkageType: ''
    returnType: void
    signature: void SHA1_Update_Native(SHA1Context *ctx, const unsigned char *dataIn,
      unsigned int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: arm_sha1_support
      Src: /src/nss/lib/freebl/sha_fast.c:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SHA1Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 81
    functionName: SHA1_Begin
    functionSourceFile: /src/nss/lib/freebl/sha_fast.c
    functionUses: 1
    functionsReached:
    - arm_sha1_support
    linkageType: ''
    returnType: void
    signature: void SHA1_Begin(SHA1Context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA1Context*::update
      Src: /src/nss/lib/freebl/sha_fast.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - dataIn
    - len
    argTypes:
    - SHA1Context*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 128
    functionName: SHA1_Update
    functionSourceFile: /src/nss/lib/freebl/sha_fast.c
    functionUses: 1
    functionsReached:
    - SHA1Context*::update
    linkageType: ''
    returnType: void
    signature: void SHA1_Update(SHA1Context *ctx, const unsigned char *dataIn, unsigned
      int len)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/sha_fast.c:151,1
    - Dst: shaCompress
      Src: /src/nss/lib/freebl/sha_fast.c:156,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/sha_fast.c:162,1
    - Dst: shaCompress
      Src: /src/nss/lib/freebl/sha_fast.c:164,1
    - Dst: shaCompress
      Src: /src/nss/lib/freebl/sha_fast.c:172,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/sha_fast.c:177,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 3
    argNames:
    - ctx
    - dataIn
    - len
    argTypes:
    - SHA1Context*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 179
    functionName: SHA1_Update_Generic
    functionSourceFile: /src/nss/lib/freebl/sha_fast.c
    functionUses: 0
    functionsReached:
    - memcpy
    - shaCompress
    linkageType: ''
    returnType: void
    signature: void SHA1_Update_Generic(SHA1Context *ctx, const unsigned char *dataIn,
      unsigned int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/sha_fast.c:196,1
    - Dst: SHA1_Update
      Src: /src/nss/lib/freebl/sha_fast.c:204,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/sha_fast.c:205,1
    - Dst: SHA_HTONL
      Src: /src/nss/lib/freebl/sha_fast.c:208,1
    - Dst: SHA_HTONL
      Src: /src/nss/lib/freebl/sha_fast.c:209,1
    - Dst: SHA1Context*::compress
      Src: /src/nss/lib/freebl/sha_fast.c:210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 4
    argNames:
    - ctx
    - hashout
    - pDigestLen
    - maxDigestLen
    argTypes:
    - SHA1Context*
    - unsigned char*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 220
    functionName: NO_SANITIZE_ALIGNMENT::SHA1_End
    functionSourceFile: /src/nss/lib/freebl/sha_fast.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SHA1_Update
    - SHA1Context*::compress
    - SHA_HTONL
    linkageType: ''
    returnType: void
    signature: "void NO_SANITIZE_ALIGNMENT\nSHA1_End(SHA1Context *ctx, unsigned char
      *hashout,\n         unsigned int *pDigestLen, unsigned int maxDigestLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/sha_fast.c:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ctx
    - hashout
    - pDigestLen
    - maxDigestLen
    argTypes:
    - SHA1Context*
    - unsigned char*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 234
    functionName: SHA1_EndRaw
    functionSourceFile: /src/nss/lib/freebl/sha_fast.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: void
    signature: "void SHA1_EndRaw(SHA1Context *ctx, unsigned char *hashout,\n            unsigned
      int *pDigestLen, unsigned int maxDigestLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XH
      Src: /src/nss/lib/freebl/sha_fast.c:323,1
    - Dst: XH
      Src: /src/nss/lib/freebl/sha_fast.c:324,1
    - Dst: XH
      Src: /src/nss/lib/freebl/sha_fast.c:325,1
    - Dst: XH
      Src: /src/nss/lib/freebl/sha_fast.c:326,1
    - Dst: XH
      Src: /src/nss/lib/freebl/sha_fast.c:327,1
    - Dst: LOAD
      Src: /src/nss/lib/freebl/sha_fast.c:329,1
    - Dst: SHA_RND1
      Src: /src/nss/lib/freebl/sha_fast.c:330,1
    - Dst: LOAD
      Src: /src/nss/lib/freebl/sha_fast.c:331,1
    - Dst: SHA_RND1
      Src: /src/nss/lib/freebl/sha_fast.c:332,1
    - Dst: LOAD
      Src: /src/nss/lib/freebl/sha_fast.c:333,1
    - Dst: SHA_RND1
      Src: /src/nss/lib/freebl/sha_fast.c:334,1
    - Dst: LOAD
      Src: /src/nss/lib/freebl/sha_fast.c:335,1
    - Dst: SHA_RND1
      Src: /src/nss/lib/freebl/sha_fast.c:336,1
    - Dst: LOAD
      Src: /src/nss/lib/freebl/sha_fast.c:337,1
    - Dst: SHA_RND1
      Src: /src/nss/lib/freebl/sha_fast.c:338,1
    - Dst: LOAD
      Src: /src/nss/lib/freebl/sha_fast.c:339,1
    - Dst: SHA_RND1
      Src: /src/nss/lib/freebl/sha_fast.c:340,1
    - Dst: LOAD
      Src: /src/nss/lib/freebl/sha_fast.c:341,1
    - Dst: SHA_RND1
      Src: /src/nss/lib/freebl/sha_fast.c:342,1
    - Dst: LOAD
      Src: /src/nss/lib/freebl/sha_fast.c:343,1
    - Dst: SHA_RND1
      Src: /src/nss/lib/freebl/sha_fast.c:344,1
    - Dst: LOAD
      Src: /src/nss/lib/freebl/sha_fast.c:345,1
    - Dst: SHA_RND1
      Src: /src/nss/lib/freebl/sha_fast.c:346,1
    - Dst: LOAD
      Src: /src/nss/lib/freebl/sha_fast.c:347,1
    - Dst: SHA_RND1
      Src: /src/nss/lib/freebl/sha_fast.c:348,1
    - Dst: LOAD
      Src: /src/nss/lib/freebl/sha_fast.c:349,1
    - Dst: SHA_RND1
      Src: /src/nss/lib/freebl/sha_fast.c:350,1
    - Dst: LOAD
      Src: /src/nss/lib/freebl/sha_fast.c:351,1
    - Dst: SHA_RND1
      Src: /src/nss/lib/freebl/sha_fast.c:352,1
    - Dst: LOAD
      Src: /src/nss/lib/freebl/sha_fast.c:353,1
    - Dst: SHA_RND1
      Src: /src/nss/lib/freebl/sha_fast.c:354,1
    - Dst: LOAD
      Src: /src/nss/lib/freebl/sha_fast.c:355,1
    - Dst: SHA_RND1
      Src: /src/nss/lib/freebl/sha_fast.c:356,1
    - Dst: LOAD
      Src: /src/nss/lib/freebl/sha_fast.c:357,1
    - Dst: SHA_RND1
      Src: /src/nss/lib/freebl/sha_fast.c:358,1
    - Dst: LOAD
      Src: /src/nss/lib/freebl/sha_fast.c:359,1
    - Dst: SHA_RND1
      Src: /src/nss/lib/freebl/sha_fast.c:360,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:362,1
    - Dst: SHA_RND1
      Src: /src/nss/lib/freebl/sha_fast.c:363,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:364,1
    - Dst: SHA_RND1
      Src: /src/nss/lib/freebl/sha_fast.c:365,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:366,1
    - Dst: SHA_RND1
      Src: /src/nss/lib/freebl/sha_fast.c:367,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:368,1
    - Dst: SHA_RND1
      Src: /src/nss/lib/freebl/sha_fast.c:369,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:371,1
    - Dst: SHA_RND2
      Src: /src/nss/lib/freebl/sha_fast.c:372,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:373,1
    - Dst: SHA_RND2
      Src: /src/nss/lib/freebl/sha_fast.c:374,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:375,1
    - Dst: SHA_RND2
      Src: /src/nss/lib/freebl/sha_fast.c:376,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:377,1
    - Dst: SHA_RND2
      Src: /src/nss/lib/freebl/sha_fast.c:378,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:379,1
    - Dst: SHA_RND2
      Src: /src/nss/lib/freebl/sha_fast.c:380,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:381,1
    - Dst: SHA_RND2
      Src: /src/nss/lib/freebl/sha_fast.c:382,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:383,1
    - Dst: SHA_RND2
      Src: /src/nss/lib/freebl/sha_fast.c:384,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:385,1
    - Dst: SHA_RND2
      Src: /src/nss/lib/freebl/sha_fast.c:386,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:387,1
    - Dst: SHA_RND2
      Src: /src/nss/lib/freebl/sha_fast.c:388,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:389,1
    - Dst: SHA_RND2
      Src: /src/nss/lib/freebl/sha_fast.c:390,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:391,1
    - Dst: SHA_RND2
      Src: /src/nss/lib/freebl/sha_fast.c:392,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:393,1
    - Dst: SHA_RND2
      Src: /src/nss/lib/freebl/sha_fast.c:394,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:396,1
    - Dst: SHA_RND2
      Src: /src/nss/lib/freebl/sha_fast.c:397,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:398,1
    - Dst: SHA_RND2
      Src: /src/nss/lib/freebl/sha_fast.c:399,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:400,1
    - Dst: SHA_RND2
      Src: /src/nss/lib/freebl/sha_fast.c:401,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:402,1
    - Dst: SHA_RND2
      Src: /src/nss/lib/freebl/sha_fast.c:403,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:404,1
    - Dst: SHA_RND2
      Src: /src/nss/lib/freebl/sha_fast.c:405,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:406,1
    - Dst: SHA_RND2
      Src: /src/nss/lib/freebl/sha_fast.c:407,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:408,1
    - Dst: SHA_RND2
      Src: /src/nss/lib/freebl/sha_fast.c:409,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:410,1
    - Dst: SHA_RND2
      Src: /src/nss/lib/freebl/sha_fast.c:411,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:413,1
    - Dst: SHA_RND3
      Src: /src/nss/lib/freebl/sha_fast.c:414,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:415,1
    - Dst: SHA_RND3
      Src: /src/nss/lib/freebl/sha_fast.c:416,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:417,1
    - Dst: SHA_RND3
      Src: /src/nss/lib/freebl/sha_fast.c:418,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:419,1
    - Dst: SHA_RND3
      Src: /src/nss/lib/freebl/sha_fast.c:420,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:421,1
    - Dst: SHA_RND3
      Src: /src/nss/lib/freebl/sha_fast.c:422,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:423,1
    - Dst: SHA_RND3
      Src: /src/nss/lib/freebl/sha_fast.c:424,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:425,1
    - Dst: SHA_RND3
      Src: /src/nss/lib/freebl/sha_fast.c:426,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:427,1
    - Dst: SHA_RND3
      Src: /src/nss/lib/freebl/sha_fast.c:428,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:430,1
    - Dst: SHA_RND3
      Src: /src/nss/lib/freebl/sha_fast.c:431,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:432,1
    - Dst: SHA_RND3
      Src: /src/nss/lib/freebl/sha_fast.c:433,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:434,1
    - Dst: SHA_RND3
      Src: /src/nss/lib/freebl/sha_fast.c:435,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:436,1
    - Dst: SHA_RND3
      Src: /src/nss/lib/freebl/sha_fast.c:437,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:438,1
    - Dst: SHA_RND3
      Src: /src/nss/lib/freebl/sha_fast.c:439,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:440,1
    - Dst: SHA_RND3
      Src: /src/nss/lib/freebl/sha_fast.c:441,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:442,1
    - Dst: SHA_RND3
      Src: /src/nss/lib/freebl/sha_fast.c:443,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:444,1
    - Dst: SHA_RND3
      Src: /src/nss/lib/freebl/sha_fast.c:445,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:446,1
    - Dst: SHA_RND3
      Src: /src/nss/lib/freebl/sha_fast.c:447,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:448,1
    - Dst: SHA_RND3
      Src: /src/nss/lib/freebl/sha_fast.c:449,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:450,1
    - Dst: SHA_RND3
      Src: /src/nss/lib/freebl/sha_fast.c:451,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:452,1
    - Dst: SHA_RND3
      Src: /src/nss/lib/freebl/sha_fast.c:453,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:455,1
    - Dst: SHA_RND4
      Src: /src/nss/lib/freebl/sha_fast.c:456,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:457,1
    - Dst: SHA_RND4
      Src: /src/nss/lib/freebl/sha_fast.c:458,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:459,1
    - Dst: SHA_RND4
      Src: /src/nss/lib/freebl/sha_fast.c:460,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:461,1
    - Dst: SHA_RND4
      Src: /src/nss/lib/freebl/sha_fast.c:462,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:464,1
    - Dst: SHA_RND4
      Src: /src/nss/lib/freebl/sha_fast.c:465,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:466,1
    - Dst: SHA_RND4
      Src: /src/nss/lib/freebl/sha_fast.c:467,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:468,1
    - Dst: SHA_RND4
      Src: /src/nss/lib/freebl/sha_fast.c:469,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:470,1
    - Dst: SHA_RND4
      Src: /src/nss/lib/freebl/sha_fast.c:471,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:472,1
    - Dst: SHA_RND4
      Src: /src/nss/lib/freebl/sha_fast.c:473,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:474,1
    - Dst: SHA_RND4
      Src: /src/nss/lib/freebl/sha_fast.c:475,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:476,1
    - Dst: SHA_RND4
      Src: /src/nss/lib/freebl/sha_fast.c:477,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:478,1
    - Dst: SHA_RND4
      Src: /src/nss/lib/freebl/sha_fast.c:479,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:480,1
    - Dst: SHA_RND4
      Src: /src/nss/lib/freebl/sha_fast.c:481,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:482,1
    - Dst: SHA_RND4
      Src: /src/nss/lib/freebl/sha_fast.c:483,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:484,1
    - Dst: SHA_RND4
      Src: /src/nss/lib/freebl/sha_fast.c:485,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:486,1
    - Dst: SHA_RND4
      Src: /src/nss/lib/freebl/sha_fast.c:487,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:488,1
    - Dst: SHA_RND4
      Src: /src/nss/lib/freebl/sha_fast.c:489,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:490,1
    - Dst: SHA_RND4
      Src: /src/nss/lib/freebl/sha_fast.c:491,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:492,1
    - Dst: SHA_RND4
      Src: /src/nss/lib/freebl/sha_fast.c:493,1
    - Dst: SHA_MIX
      Src: /src/nss/lib/freebl/sha_fast.c:494,1
    - Dst: SHA_RND4
      Src: /src/nss/lib/freebl/sha_fast.c:495,1
    - Dst: XH
      Src: /src/nss/lib/freebl/sha_fast.c:497,1
    - Dst: XH
      Src: /src/nss/lib/freebl/sha_fast.c:498,1
    - Dst: XH
      Src: /src/nss/lib/freebl/sha_fast.c:499,1
    - Dst: XH
      Src: /src/nss/lib/freebl/sha_fast.c:500,1
    - Dst: XH
      Src: /src/nss/lib/freebl/sha_fast.c:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 171
    argCount: 2
    argNames:
    - X
    - inbuf
    argTypes:
    - SHA_HW_t*
    - PRUint32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 502
    functionName: NO_SANITIZE_ALIGNMENT::shaCompress
    functionSourceFile: /src/nss/lib/freebl/sha_fast.c
    functionUses: 0
    functionsReached:
    - SHA_MIX
    - LOAD
    - SHA_RND4
    - SHA_RND2
    - SHA_RND1
    - XH
    - SHA_RND3
    linkageType: ''
    returnType: void
    signature: 'void NO_SANITIZE_ALIGNMENT

      shaCompress(volatile SHA_HW_t *X, const PRUint32 *inbuf)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 295
    functionName: XH
    functionSourceFile: /src/nss/lib/freebl/sha_fast.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XH(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 296
    functionName: XW
    functionSourceFile: /src/nss/lib/freebl/sha_fast.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XW(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 300
    functionName: XW
    functionSourceFile: /src/nss/lib/freebl/sha_fast.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XW(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 301
    functionName: XH
    functionSourceFile: /src/nss/lib/freebl/sha_fast.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XH(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 311
    functionName: SHA_RND1
    functionSourceFile: /src/nss/lib/freebl/sha_fast.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA_RND1(a, b, c, d, e, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 314
    functionName: SHA_RND2
    functionSourceFile: /src/nss/lib/freebl/sha_fast.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA_RND2(a, b, c, d, e, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 317
    functionName: SHA_RND3
    functionSourceFile: /src/nss/lib/freebl/sha_fast.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA_RND3(a, b, c, d, e, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 320
    functionName: SHA_RND4
    functionSourceFile: /src/nss/lib/freebl/sha_fast.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA_RND4(a, b, c, d, e, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 322
    functionName: LOAD
    functionSourceFile: /src/nss/lib/freebl/sha_fast.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: shaCompress
      Src: /src/nss/lib/freebl/sha_fast.c:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SHA1Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 504
    functionDepth: 1
    functionLinenumber: 504
    functionLinenumberEnd: 508
    functionName: SHA1_Compress_Generic
    functionSourceFile: /src/nss/lib/freebl/sha_fast.c
    functionUses: 0
    functionsReached:
    - shaCompress
    linkageType: ''
    returnType: void
    signature: void SHA1_Compress_Generic(SHA1Context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_New
      Src: /src/nss/lib/freebl/sha_fast.c:520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 514
    functionDepth: 1
    functionLinenumber: 514
    functionLinenumberEnd: 522
    functionName: SHA1_NewContext
    functionSourceFile: /src/nss/lib/freebl/sha_fast.c
    functionUses: 1
    functionsReached:
    - PORT_New
    linkageType: ''
    returnType: SHA1Context
    signature: 'SHA1Context *

      SHA1_NewContext(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/freebl/sha_fast.c:528,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/sha_fast.c:530,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - cx
    - freeit
    argTypes:
    - SHA1Context*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 525
    functionDepth: 0
    functionLinenumber: 525
    functionLinenumberEnd: 532
    functionName: SHA1_DestroyContext
    functionSourceFile: /src/nss/lib/freebl/sha_fast.c
    functionUses: 1
    functionsReached:
    - memset
    - PORT_Free
    linkageType: ''
    returnType: void
    signature: void SHA1_DestroyContext(SHA1Context *cx, PRBool freeit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA1_Begin
      Src: /src/nss/lib/freebl/sha_fast.c:540,1
    - Dst: SHA1Context::update
      Src: /src/nss/lib/freebl/sha_fast.c:541,1
    - Dst: SHA1_End
      Src: /src/nss/lib/freebl/sha_fast.c:542,1
    - Dst: memset
      Src: /src/nss/lib/freebl/sha_fast.c:543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - dest
    - src
    - src_length
    argTypes:
    - unsigned char*
    - unsigned char*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 534
    functionDepth: 1
    functionLinenumber: 534
    functionLinenumberEnd: 545
    functionName: SHA1_HashBuf
    functionSourceFile: /src/nss/lib/freebl/sha_fast.c
    functionUses: 1
    functionsReached:
    - memset
    - SHA1_End
    - SHA1Context::update
    - SHA1_Begin
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SHA1_HashBuf(unsigned char *dest, const unsigned char *src,
      PRUint32 src_length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA1_HashBuf
      Src: /src/nss/lib/freebl/sha_fast.c:551,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/freebl/sha_fast.c:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - unsigned char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 548
    functionDepth: 1
    functionLinenumber: 548
    functionLinenumberEnd: 552
    functionName: SHA1_Hash
    functionSourceFile: /src/nss/lib/freebl/sha_fast.c
    functionUses: 0
    functionsReached:
    - PORT_Strlen
    - SHA1_HashBuf
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SHA1_Hash(unsigned char *dest, const char *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cx
    argTypes:
    - SHA1Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 562
    functionName: SHA1_FlattenSize
    functionSourceFile: /src/nss/lib/freebl/sha_fast.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int SHA1_FlattenSize(SHA1Context *cx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/sha_fast.c:567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cx
    - space
    argTypes:
    - SHA1Context*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 569
    functionName: SHA1_Flatten
    functionSourceFile: /src/nss/lib/freebl/sha_fast.c
    functionUses: 1
    functionsReached:
    - PORT_Memcpy
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SHA1_Flatten(SHA1Context *cx, unsigned char *space)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SHA1_NewContext
      Src: /src/nss/lib/freebl/sha_fast.c:574,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/sha_fast.c:578,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - space
    - arg
    argTypes:
    - unsigned char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 580
    functionName: SHA1_Resurrect
    functionSourceFile: /src/nss/lib/freebl/sha_fast.c
    functionUses: 1
    functionsReached:
    - PORT_Memcpy
    - SHA1_NewContext
    linkageType: ''
    returnType: SHA1Context
    signature: 'SHA1Context *

      SHA1_Resurrect(unsigned char *space, void *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/sha_fast.c:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - SHA1Context*
    - SHA1Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 586
    functionName: SHA1_Clone
    functionSourceFile: /src/nss/lib/freebl/sha_fast.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void SHA1_Clone(SHA1Context *dest, SHA1Context *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/sha_fast.c:591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SHA1Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 592
    functionName: SHA1_TraceState
    functionSourceFile: /src/nss/lib/freebl/sha_fast.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: void
    signature: void SHA1_TraceState(SHA1Context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:57,1
    - Dst: assert
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - outlen
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (0)
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    constantsTouched: []
    func_position:
      end: 59
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 59
    functionName: randombytes
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - memset
    - assert
    linkageType: ''
    returnType: void
    signature: void randombytes(uint8_t *out, size_t outlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSS_SecureMemcmp
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - len
    argTypes:
    - uint8_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: verify
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 3
    functionsReached:
    - NSS_SecureMemcmp
    linkageType: ''
    returnType: int
    signature: int verify(const uint8_t *a, const uint8_t *b, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSS_SecureSelect
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - r
    - x
    - len
    - b
    argTypes:
    - uint8_t*
    - uint8_t*
    - size_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: cmov
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - NSS_SecureSelect
    linkageType: ''
    returnType: void
    signature: void cmov(uint8_t *r, const uint8_t *x, size_t len, uint8_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: KYBER_NAMESPACE
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KYBER_NAMESPACE(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: KYBER_NAMESPACE
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KYBER_NAMESPACE(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 111
    functionName: KYBER_NAMESPACE
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KYBER_NAMESPACE(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 290
    functionName: FIPS202_NAMESPACE
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FIPS202_NAMESPACE(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - OUT
    - ','
    - IN
    - ','
    - INBYTES
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 347
    functionName: hash_h
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hash_h(OUT, IN, INBYTES)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - OUT
    - ','
    - IN
    - ','
    - INBYTES
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 348
    functionName: hash_g
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hash_g(OUT, IN, INBYTES)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - STATE
    - ','
    - SEED
    - ','
    - X
    - ','
    - Y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 349
    functionName: xof_absorb
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xof_absorb(STATE, SEED, X, Y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - OUT
    - ','
    - OUTBLOCKS
    - ','
    - STATE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 350
    functionName: xof_squeezeblocks
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xof_squeezeblocks(OUT, OUTBLOCKS, STATE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - OUT
    - ','
    - OUTBYTES
    - ','
    - KEY
    - ','
    - NONCE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 351
    functionName: prf
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: prf(OUT, OUTBYTES, KEY, NONCE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - OUT
    - ','
    - IN
    - ','
    - INBYTES
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 352
    functionName: kdf
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: kdf(OUT, IN, INBYTES)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 404
    functionName: montgomery_reduce
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int16_t
    signature: int16_t montgomery_reduce(int32_t a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - int16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 425
    functionName: barrett_reduce
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int16_t
    signature: int16_t barrett_reduce(int16_t a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 448
    functionName: load32_littleendian
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t load32_littleendian(const uint8_t x[4])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 470
    functionName: load24_littleendian
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t load24_littleendian(const uint8_t x[3])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load32_littleendian
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:491,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - r
    - buf
    argTypes:
    - poly*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 483
    functionDepth: 1
    functionLinenumber: 483
    functionLinenumberEnd: 501
    functionName: cbd2
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - load32_littleendian
    linkageType: ''
    returnType: void
    signature: void cbd2(poly *r, const uint8_t buf[2 * KYBER_N / 4])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load24_littleendian
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:523,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - r
    - buf
    argTypes:
    - poly*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 515
    functionDepth: 1
    functionLinenumber: 515
    functionLinenumberEnd: 534
    functionName: cbd3
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - load24_littleendian
    linkageType: ''
    returnType: void
    signature: void cbd3(poly *r, const uint8_t buf[3 * KYBER_N / 4])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cbd2
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:541,1
    - Dst: cbd3
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - r
    - buf
    argTypes:
    - poly*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 537
    functionDepth: 2
    functionLinenumber: 537
    functionLinenumberEnd: 547
    functionName: poly_cbd_eta1
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - cbd3
    - cbd2
    linkageType: ''
    returnType: void
    signature: void poly_cbd_eta1(poly *r, const uint8_t buf[KYBER_ETA1 * KYBER_N
      / 4])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cbd2
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - buf
    argTypes:
    - poly*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 549
    functionDepth: 2
    functionLinenumber: 549
    functionLinenumberEnd: 557
    functionName: poly_cbd_eta2
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - cbd2
    linkageType: ''
    returnType: void
    signature: void poly_cbd_eta2(poly *r, const uint8_t buf[KYBER_ETA2 * KYBER_N
      / 4])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: montgomery_reduce
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int16_t
    - int16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 623
    functionDepth: 1
    functionLinenumber: 623
    functionLinenumberEnd: 627
    functionName: fqmul
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - montgomery_reduce
    linkageType: ''
    returnType: int16_t
    signature: int16_t fqmul(int16_t a, int16_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fqmul
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:648,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - r
    argTypes:
    - int16_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 637
    functionDepth: 2
    functionLinenumber: 637
    functionLinenumberEnd: 654
    functionName: ntt
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - fqmul
    linkageType: ''
    returnType: void
    signature: void ntt(int16_t r[256])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: barrett_reduce
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:678,1
    - Dst: fqmul
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:680,1
    - Dst: fqmul
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:686,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - r
    argTypes:
    - int16_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 665
    functionDepth: 2
    functionLinenumber: 665
    functionLinenumberEnd: 687
    functionName: invntt
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - barrett_reduce
    - fqmul
    linkageType: ''
    returnType: void
    signature: void invntt(int16_t r[256])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fqmul
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:703,1
    - Dst: fqmul
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:704,1
    - Dst: fqmul
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:705,1
    - Dst: fqmul
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:706,1
    - Dst: fqmul
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - r
    - a
    - b
    - zeta
    argTypes:
    - int16_t[]
    - int16_t[]
    - int16_t[]
    - int16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 700
    functionDepth: 2
    functionLinenumber: 700
    functionLinenumberEnd: 708
    functionName: basemul
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - fqmul
    linkageType: ''
    returnType: void
    signature: void basemul(int16_t r[2], const int16_t a[2], const int16_t b[2],
      int16_t zeta)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 34
    argCount: 2
    argNames:
    - r
    - a
    argTypes:
    - uint8_t[]
    - poly*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 721
    functionDepth: 0
    functionLinenumber: 721
    functionLinenumberEnd: 773
    functionName: poly_compress
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void poly_compress(uint8_t r[KYBER_POLYCOMPRESSEDBYTES], const poly
      *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - r
    - a
    argTypes:
    - poly*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 785
    functionDepth: 0
    functionLinenumber: 785
    functionLinenumberEnd: 816
    functionName: poly_decompress
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void poly_decompress(poly *r, const uint8_t a[KYBER_POLYCOMPRESSEDBYTES])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - r
    - a
    argTypes:
    - uint8_t[]
    - poly*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 827
    functionDepth: 0
    functionLinenumber: 827
    functionLinenumberEnd: 843
    functionName: poly_tobytes
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void poly_tobytes(uint8_t r[KYBER_POLYBYTES], const poly *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - r
    - a
    argTypes:
    - poly*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 855
    functionDepth: 0
    functionLinenumber: 855
    functionLinenumberEnd: 863
    functionName: poly_frombytes
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void poly_frombytes(poly *r, const uint8_t a[KYBER_POLYBYTES])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - r
    - msg
    argTypes:
    - poly*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 873
    functionDepth: 0
    functionLinenumber: 873
    functionLinenumberEnd: 889
    functionName: poly_frommsg
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void poly_frommsg(poly *r, const uint8_t msg[KYBER_INDCPA_MSGBYTES])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - msg
    - a
    argTypes:
    - uint8_t[]
    - poly*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 899
    functionDepth: 0
    functionLinenumber: 899
    functionLinenumberEnd: 919
    functionName: poly_tomsg
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void poly_tomsg(uint8_t msg[KYBER_INDCPA_MSGBYTES], const poly *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: prf
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:937,1
    - Dst: poly_cbd_eta1
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:938,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - r
    - seed
    - nonce
    argTypes:
    - poly*
    - uint8_t[]
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 933
    functionDepth: 3
    functionLinenumber: 933
    functionLinenumberEnd: 939
    functionName: poly_getnoise_eta1
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - poly_cbd_eta1
    - prf
    linkageType: ''
    returnType: void
    signature: void poly_getnoise_eta1(poly *r, const uint8_t seed[KYBER_SYMBYTES],
      uint8_t nonce)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: prf
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:957,1
    - Dst: poly_cbd_eta2
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:958,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - r
    - seed
    - nonce
    argTypes:
    - poly*
    - uint8_t[]
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 953
    functionDepth: 3
    functionLinenumber: 953
    functionLinenumberEnd: 959
    functionName: poly_getnoise_eta2
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - poly_cbd_eta2
    - prf
    linkageType: ''
    returnType: void
    signature: void poly_getnoise_eta2(poly *r, const uint8_t seed[KYBER_SYMBYTES],
      uint8_t nonce)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ntt
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:973,1
    - Dst: poly_reduce
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:974,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - r
    argTypes:
    - poly*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 970
    functionDepth: 3
    functionLinenumber: 970
    functionLinenumberEnd: 975
    functionName: poly_ntt
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - poly_reduce
    - ntt
    linkageType: ''
    returnType: void
    signature: void poly_ntt(poly *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: invntt
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:989,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - poly*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 986
    functionDepth: 3
    functionLinenumber: 986
    functionLinenumberEnd: 990
    functionName: poly_invntt_tomont
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - invntt
    linkageType: ''
    returnType: void
    signature: void poly_invntt_tomont(poly *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: basemul
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1006,1
    - Dst: basemul
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1007,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - r
    - a
    - b
    argTypes:
    - poly*
    - poly*
    - poly*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 1001
    functionDepth: 3
    functionLinenumber: 1001
    functionLinenumberEnd: 1009
    functionName: poly_basemul_montgomery
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - basemul
    linkageType: ''
    returnType: void
    signature: void poly_basemul_montgomery(poly *r, const poly *a, const poly *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: montgomery_reduce
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1025,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - r
    argTypes:
    - poly*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 1019
    functionDepth: 1
    functionLinenumber: 1019
    functionLinenumberEnd: 1026
    functionName: poly_tomont
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - montgomery_reduce
    linkageType: ''
    returnType: void
    signature: void poly_tomont(poly *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: barrett_reduce
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1041,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - r
    argTypes:
    - poly*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1036
    functionDepth: 1
    functionLinenumber: 1036
    functionLinenumberEnd: 1042
    functionName: poly_reduce
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 1
    functionsReached:
    - barrett_reduce
    linkageType: ''
    returnType: void
    signature: void poly_reduce(poly *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - r
    - a
    - b
    argTypes:
    - poly*
    - poly*
    - poly*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 1053
    functionDepth: 0
    functionLinenumber: 1053
    functionLinenumberEnd: 1059
    functionName: poly_add
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void poly_add(poly *r, const poly *a, const poly *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - r
    - a
    - b
    argTypes:
    - poly*
    - poly*
    - poly*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1070
    functionDepth: 0
    functionLinenumber: 1070
    functionLinenumberEnd: 1076
    functionName: poly_sub
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void poly_sub(poly *r, const poly *a, const poly *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 47
    argCount: 2
    argNames:
    - r
    - a
    argTypes:
    - uint8_t[]
    - polyvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1152
      start: 1089
    functionDepth: 0
    functionLinenumber: 1089
    functionLinenumberEnd: 1152
    functionName: polyvec_compress
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void polyvec_compress(uint8_t r[KYBER_POLYVECCOMPRESSEDBYTES], const
      polyvec *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - r
    - a
    argTypes:
    - polyvec*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1204
      start: 1164
    functionDepth: 0
    functionLinenumber: 1164
    functionLinenumberEnd: 1204
    functionName: polyvec_decompress
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void polyvec_decompress(polyvec *r, const uint8_t a[KYBER_POLYVECCOMPRESSEDBYTES])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: poly_tobytes
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - r
    - a
    argTypes:
    - uint8_t[]
    - polyvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1221
      start: 1215
    functionDepth: 1
    functionLinenumber: 1215
    functionLinenumberEnd: 1221
    functionName: polyvec_tobytes
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - poly_tobytes
    linkageType: ''
    returnType: void
    signature: void polyvec_tobytes(uint8_t r[KYBER_POLYVECBYTES], const polyvec *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: poly_frombytes
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - r
    - a
    argTypes:
    - polyvec*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1239
      start: 1233
    functionDepth: 1
    functionLinenumber: 1233
    functionLinenumberEnd: 1239
    functionName: polyvec_frombytes
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - poly_frombytes
    linkageType: ''
    returnType: void
    signature: void polyvec_frombytes(polyvec *r, const uint8_t a[KYBER_POLYVECBYTES])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: poly_ntt
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1253,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - r
    argTypes:
    - polyvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1254
      start: 1248
    functionDepth: 4
    functionLinenumber: 1248
    functionLinenumberEnd: 1254
    functionName: polyvec_ntt
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - poly_ntt
    linkageType: ''
    returnType: void
    signature: void polyvec_ntt(polyvec *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: poly_invntt_tomont
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - r
    argTypes:
    - polyvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1270
      start: 1264
    functionDepth: 4
    functionLinenumber: 1264
    functionLinenumberEnd: 1270
    functionName: polyvec_invntt_tomont
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - poly_invntt_tomont
    linkageType: ''
    returnType: void
    signature: void polyvec_invntt_tomont(polyvec *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: poly_basemul_montgomery
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1288,1
    - Dst: poly_basemul_montgomery
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1290,1
    - Dst: poly_add
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1291,1
    - Dst: poly_reduce
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - r
    - a
    - b
    argTypes:
    - poly*
    - polyvec*
    - polyvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1295
      start: 1282
    functionDepth: 4
    functionLinenumber: 1282
    functionLinenumberEnd: 1295
    functionName: polyvec_basemul_acc_montgomery
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - poly_add
    - poly_basemul_montgomery
    - poly_reduce
    linkageType: ''
    returnType: void
    signature: void polyvec_basemul_acc_montgomery(poly *r, const polyvec *a, const
      polyvec *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: poly_reduce
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1311,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - r
    argTypes:
    - polyvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1312
      start: 1306
    functionDepth: 2
    functionLinenumber: 1306
    functionLinenumberEnd: 1312
    functionName: polyvec_reduce
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - poly_reduce
    linkageType: ''
    returnType: void
    signature: void polyvec_reduce(polyvec *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: poly_add
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - r
    - a
    - b
    argTypes:
    - polyvec*
    - polyvec*
    - polyvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1329
      start: 1323
    functionDepth: 1
    functionLinenumber: 1323
    functionLinenumberEnd: 1329
    functionName: polyvec_add
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - poly_add
    linkageType: ''
    returnType: void
    signature: void polyvec_add(polyvec *r, const polyvec *a, const polyvec *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: polyvec_tobytes
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1350,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - r
    - pk
    - seed
    argTypes:
    - uint8_t[]
    - polyvec*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1353
      start: 1344
    functionDepth: 2
    functionLinenumber: 1344
    functionLinenumberEnd: 1353
    functionName: pack_pk
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - polyvec_tobytes
    linkageType: ''
    returnType: void
    signature: "void pack_pk(uint8_t r[KYBER_INDCPA_PUBLICKEYBYTES],\n        polyvec
      *pk,\n        const uint8_t seed[KYBER_SYMBYTES])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: polyvec_frombytes
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1371,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - pk
    - seed
    - packedpk
    argTypes:
    - polyvec*
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1374
      start: 1365
    functionDepth: 2
    functionLinenumber: 1365
    functionLinenumberEnd: 1374
    functionName: unpack_pk
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - polyvec_frombytes
    linkageType: ''
    returnType: void
    signature: "void unpack_pk(polyvec *pk,\n          uint8_t seed[KYBER_SYMBYTES],\n
      \         const uint8_t packedpk[KYBER_INDCPA_PUBLICKEYBYTES])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: polyvec_tobytes
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - r
    - sk
    argTypes:
    - uint8_t[]
    - polyvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1388
      start: 1384
    functionDepth: 2
    functionLinenumber: 1384
    functionLinenumberEnd: 1388
    functionName: pack_sk
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - polyvec_tobytes
    linkageType: ''
    returnType: void
    signature: void pack_sk(uint8_t r[KYBER_INDCPA_SECRETKEYBYTES], polyvec *sk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: polyvec_frombytes
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sk
    - packedsk
    argTypes:
    - polyvec*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1402
      start: 1398
    functionDepth: 2
    functionLinenumber: 1398
    functionLinenumberEnd: 1402
    functionName: unpack_sk
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - polyvec_frombytes
    linkageType: ''
    returnType: void
    signature: void unpack_sk(polyvec *sk, const uint8_t packedsk[KYBER_INDCPA_SECRETKEYBYTES])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: polyvec_compress
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1418,1
    - Dst: poly_compress
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - r
    - b
    - v
    argTypes:
    - uint8_t[]
    - polyvec*
    - poly*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1420
      start: 1415
    functionDepth: 1
    functionLinenumber: 1415
    functionLinenumberEnd: 1420
    functionName: pack_ciphertext
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - poly_compress
    - polyvec_compress
    linkageType: ''
    returnType: void
    signature: void pack_ciphertext(uint8_t r[KYBER_INDCPA_BYTES], polyvec *b, poly
      *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: polyvec_decompress
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1435,1
    - Dst: poly_decompress
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - b
    - v
    - c
    argTypes:
    - polyvec*
    - poly*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1437
      start: 1432
    functionDepth: 1
    functionLinenumber: 1432
    functionLinenumberEnd: 1437
    functionName: unpack_ciphertext
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - poly_decompress
    - polyvec_decompress
    linkageType: ''
    returnType: void
    signature: void unpack_ciphertext(polyvec *b, poly *v, const uint8_t c[KYBER_INDCPA_BYTES])
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 4
    argNames:
    - r
    - len
    - buf
    - buflen
    argTypes:
    - int16_t*
    - unsigned int
    - uint8_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1474
      start: 1452
    functionDepth: 0
    functionLinenumber: 1452
    functionLinenumberEnd: 1474
    functionName: rej_uniform
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int rej_uniform(int16_t *r,\n            unsigned int len,\n
      \           const uint8_t *buf,\n            unsigned int buflen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - A
    - ','
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1477
      start: 1476
    functionDepth: 0
    functionLinenumber: 1476
    functionLinenumberEnd: 1477
    functionName: gen_a
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gen_a(A, B)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - A
    - ','
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1478
      start: 1477
    functionDepth: 0
    functionLinenumber: 1477
    functionLinenumberEnd: 1478
    functionName: gen_at
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gen_at(A, B)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xof_absorb
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1504,1
    - Dst: xof_absorb
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1506,1
    - Dst: xof_squeezeblocks
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1508,1
    - Dst: rej_uniform
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1510,1
    - Dst: xof_squeezeblocks
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1516,1
    - Dst: rej_uniform
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1518,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - a
    - seed
    - transposed
    argTypes:
    - polyvec*
    - uint8_t[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1522
      start: 1493
    functionDepth: 1
    functionLinenumber: 1493
    functionLinenumberEnd: 1522
    functionName: gen_matrix
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - rej_uniform
    - xof_absorb
    - xof_squeezeblocks
    linkageType: ''
    returnType: void
    signature: void gen_matrix(polyvec *a, const uint8_t seed[KYBER_SYMBYTES], int
      transposed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hash_g
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1549,1
    - Dst: gen_a
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1551,1
    - Dst: poly_getnoise_eta1
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1554,1
    - Dst: poly_getnoise_eta1
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1556,1
    - Dst: polyvec_ntt
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1558,1
    - Dst: polyvec_ntt
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1559,1
    - Dst: polyvec_basemul_acc_montgomery
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1563,1
    - Dst: poly_tomont
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1564,1
    - Dst: polyvec_add
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1567,1
    - Dst: polyvec_reduce
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1568,1
    - Dst: pack_sk
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1570,1
    - Dst: pack_pk
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1571,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - pk
    - sk
    - coins
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1572
      start: 1537
    functionDepth: 5
    functionLinenumber: 1537
    functionLinenumberEnd: 1572
    functionName: indcpa_keypair_derand
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - polyvec_basemul_acc_montgomery
    - gen_a
    - pack_pk
    - polyvec_ntt
    - polyvec_add
    - poly_tomont
    - pack_sk
    - poly_getnoise_eta1
    - polyvec_reduce
    - hash_g
    linkageType: ''
    returnType: void
    signature: "void indcpa_keypair_derand(uint8_t pk[KYBER_INDCPA_PUBLICKEYBYTES],\n
      \                     uint8_t sk[KYBER_INDCPA_SECRETKEYBYTES],\n                      const
      uint8_t coins[KYBER_SYMBYTES])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpack_pk
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1602,1
    - Dst: poly_frommsg
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1603,1
    - Dst: gen_at
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1604,1
    - Dst: poly_getnoise_eta1
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1607,1
    - Dst: poly_getnoise_eta2
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1609,1
    - Dst: poly_getnoise_eta2
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1610,1
    - Dst: polyvec_ntt
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1612,1
    - Dst: polyvec_basemul_acc_montgomery
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1616,1
    - Dst: polyvec_basemul_acc_montgomery
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1618,1
    - Dst: polyvec_invntt_tomont
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1620,1
    - Dst: poly_invntt_tomont
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1621,1
    - Dst: polyvec_add
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1623,1
    - Dst: poly_add
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1624,1
    - Dst: poly_add
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1625,1
    - Dst: polyvec_reduce
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1626,1
    - Dst: poly_reduce
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1627,1
    - Dst: pack_ciphertext
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1629,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 4
    argNames:
    - c
    - m
    - pk
    - coins
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1630
      start: 1590
    functionDepth: 5
    functionLinenumber: 1590
    functionLinenumberEnd: 1630
    functionName: indcpa_enc
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - unpack_pk
    - polyvec_basemul_acc_montgomery
    - polyvec_invntt_tomont
    - poly_invntt_tomont
    - poly_frommsg
    - polyvec_ntt
    - polyvec_add
    - poly_getnoise_eta2
    - polyvec_reduce
    - gen_at
    - poly_reduce
    - poly_getnoise_eta1
    - pack_ciphertext
    - poly_add
    linkageType: ''
    returnType: void
    signature: "void indcpa_enc(uint8_t c[KYBER_INDCPA_BYTES],\n           const uint8_t
      m[KYBER_INDCPA_MSGBYTES],\n           const uint8_t pk[KYBER_INDCPA_PUBLICKEYBYTES],\n
      \          const uint8_t coins[KYBER_SYMBYTES])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unpack_ciphertext
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1653,1
    - Dst: unpack_sk
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1654,1
    - Dst: polyvec_ntt
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1656,1
    - Dst: polyvec_basemul_acc_montgomery
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1657,1
    - Dst: poly_invntt_tomont
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1658,1
    - Dst: poly_sub
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1660,1
    - Dst: poly_reduce
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1661,1
    - Dst: poly_tomsg
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - m
    - c
    - sk
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1664
      start: 1645
    functionDepth: 5
    functionLinenumber: 1645
    functionLinenumberEnd: 1664
    functionName: indcpa_dec
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - polyvec_basemul_acc_montgomery
    - poly_tomsg
    - poly_invntt_tomont
    - polyvec_ntt
    - unpack_sk
    - poly_reduce
    - unpack_ciphertext
    - poly_sub
    linkageType: ''
    returnType: void
    signature: "void indcpa_dec(uint8_t m[KYBER_INDCPA_MSGBYTES],\n           const
      uint8_t c[KYBER_INDCPA_BYTES],\n           const uint8_t sk[KYBER_INDCPA_SECRETKEYBYTES])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - offset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1675
      start: 1674
    functionDepth: 0
    functionLinenumber: 1674
    functionLinenumberEnd: 1675
    functionName: ROL
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROL(a, offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1695
      start: 1685
    functionDepth: 0
    functionLinenumber: 1685
    functionLinenumberEnd: 1695
    functionName: load64
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t load64(const uint8_t x[8])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - x
    - u
    argTypes:
    - uint8_t[]
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1712
      start: 1705
    functionDepth: 0
    functionLinenumber: 1705
    functionLinenumberEnd: 1712
    functionName: store64
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void store64(uint8_t x[8], uint64_t u)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ROL
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1803,1
    - Dst: ROL
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1804,1
    - Dst: ROL
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1805,1
    - Dst: ROL
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1806,1
    - Dst: ROL
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1807,1
    - Dst: ROL
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1812,1
    - Dst: ROL
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1814,1
    - Dst: ROL
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1816,1
    - Dst: ROL
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1818,1
    - Dst: ROL
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1827,1
    - Dst: ROL
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1829,1
    - Dst: ROL
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1831,1
    - Dst: ROL
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1833,1
    - Dst: ROL
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1835,1
    - Dst: ROL
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1843,1
    - Dst: ROL
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1845,1
    - Dst: ROL
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1847,1
    - Dst: ROL
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1849,1
    - Dst: ROL
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1851,1
    - Dst: ROL
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1859,1
    - Dst: ROL
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1861,1
    - Dst: ROL
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1863,1
    - Dst: ROL
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1865,1
    - Dst: ROL
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1867,1
    - Dst: ROL
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1875,1
    - Dst: ROL
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1877,1
    - Dst: ROL
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1879,1
    - Dst: ROL
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1881,1
    - Dst: ROL
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1883,1
    - Dst: ROL
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1898,1
    - Dst: ROL
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1899,1
    - Dst: ROL
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1900,1
    - Dst: ROL
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1901,1
    - Dst: ROL
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1902,1
    - Dst: ROL
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1907,1
    - Dst: ROL
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1909,1
    - Dst: ROL
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1911,1
    - Dst: ROL
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1913,1
    - Dst: ROL
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1922,1
    - Dst: ROL
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1924,1
    - Dst: ROL
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1926,1
    - Dst: ROL
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1928,1
    - Dst: ROL
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1930,1
    - Dst: ROL
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1938,1
    - Dst: ROL
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1940,1
    - Dst: ROL
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1942,1
    - Dst: ROL
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1944,1
    - Dst: ROL
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1946,1
    - Dst: ROL
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1954,1
    - Dst: ROL
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1956,1
    - Dst: ROL
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1958,1
    - Dst: ROL
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1960,1
    - Dst: ROL
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1962,1
    - Dst: ROL
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1970,1
    - Dst: ROL
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1972,1
    - Dst: ROL
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1974,1
    - Dst: ROL
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1976,1
    - Dst: ROL
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:1978,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 225
    argCount: 1
    argNames:
    - state
    argTypes:
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2012
      start: 1749
    functionDepth: 0
    functionLinenumber: 1749
    functionLinenumberEnd: 2012
    functionName: KeccakF1600_StatePermute
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - ROL
    linkageType: ''
    returnType: void
    signature: void KeccakF1600_StatePermute(uint64_t state[25])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2027
      start: 2021
    functionDepth: 0
    functionLinenumber: 2021
    functionLinenumberEnd: 2027
    functionName: keccak_init
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void keccak_init(uint64_t s[25])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KeccakF1600_StatePermute
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:2055,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - s
    - pos
    - r
    - in
    - inlen
    argTypes:
    - uint64_t[]
    - unsigned int
    - unsigned int
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2063
      start: 2042
    functionDepth: 1
    functionLinenumber: 2042
    functionLinenumberEnd: 2063
    functionName: keccak_absorb
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - KeccakF1600_StatePermute
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int keccak_absorb(uint64_t s[25],\n              unsigned
      int pos,\n              unsigned int r,\n              const uint8_t *in,\n
      \             size_t inlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - s
    - pos
    - r
    - p
    argTypes:
    - uint64_t[]
    - unsigned int
    - unsigned int
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2080
      start: 2075
    functionDepth: 0
    functionLinenumber: 2075
    functionLinenumberEnd: 2080
    functionName: keccak_finalize
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void keccak_finalize(uint64_t s[25], unsigned int pos, unsigned int
      r, uint8_t p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: KeccakF1600_StatePermute
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:2108,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 5
    argNames:
    - out
    - outlen
    - s
    - pos
    - r
    argTypes:
    - uint8_t*
    - size_t
    - uint64_t[]
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2118
      start: 2097
    functionDepth: 1
    functionLinenumber: 2097
    functionLinenumberEnd: 2118
    functionName: keccak_squeeze
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - KeccakF1600_StatePermute
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int keccak_squeeze(uint8_t *out,\n               size_t outlen,\n
      \              uint64_t s[25],\n               unsigned int pos,\n               unsigned
      int r)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load64
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:2146,1
    - Dst: KeccakF1600_StatePermute
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:2149,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 5
    argNames:
    - s
    - r
    - in
    - inlen
    - p
    argTypes:
    - uint64_t[]
    - unsigned int
    - uint8_t*
    - size_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2157
      start: 2132
    functionDepth: 1
    functionLinenumber: 2132
    functionLinenumberEnd: 2157
    functionName: keccak_absorb_once
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - load64
    - KeccakF1600_StatePermute
    linkageType: ''
    returnType: void
    signature: "void keccak_absorb_once(uint64_t s[25],\n                   unsigned
      int r,\n                   const uint8_t *in,\n                   size_t inlen,\n
      \                  uint8_t p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KeccakF1600_StatePermute
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:2181,1
    - Dst: store64
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:2183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - out
    - nblocks
    - s
    - r
    argTypes:
    - uint8_t*
    - size_t
    - uint64_t[]
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2187
      start: 2172
    functionDepth: 1
    functionLinenumber: 2172
    functionLinenumberEnd: 2187
    functionName: keccak_squeezeblocks
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - store64
    - KeccakF1600_StatePermute
    linkageType: ''
    returnType: void
    signature: "void keccak_squeezeblocks(uint8_t *out,\n                     size_t
      nblocks,\n                     uint64_t s[25],\n                     unsigned
      int r)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: keccak_init
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:2199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - keccak_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2201
      start: 2196
    functionDepth: 1
    functionLinenumber: 2196
    functionLinenumberEnd: 2201
    functionName: shake128_init
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - keccak_init
    linkageType: ''
    returnType: void
    signature: void shake128_init(keccak_state *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: keccak_absorb
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:2215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - in
    - inlen
    argTypes:
    - keccak_state*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2216
      start: 2212
    functionDepth: 2
    functionLinenumber: 2212
    functionLinenumberEnd: 2216
    functionName: shake128_absorb
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - keccak_absorb
    linkageType: ''
    returnType: void
    signature: void shake128_absorb(keccak_state *state, const uint8_t *in, size_t
      inlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: keccak_finalize
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:2228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - keccak_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2230
      start: 2225
    functionDepth: 1
    functionLinenumber: 2225
    functionLinenumberEnd: 2230
    functionName: shake128_finalize
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - keccak_finalize
    linkageType: ''
    returnType: void
    signature: void shake128_finalize(keccak_state *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: keccak_squeeze
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:2245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out
    - outlen
    - state
    argTypes:
    - uint8_t*
    - size_t
    - keccak_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2246
      start: 2242
    functionDepth: 2
    functionLinenumber: 2242
    functionLinenumberEnd: 2246
    functionName: shake128_squeeze
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - keccak_squeeze
    linkageType: ''
    returnType: void
    signature: void shake128_squeeze(uint8_t *out, size_t outlen, keccak_state *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: keccak_absorb_once
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:2260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - state
    - in
    - inlen
    argTypes:
    - keccak_state*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2262
      start: 2257
    functionDepth: 2
    functionLinenumber: 2257
    functionLinenumberEnd: 2262
    functionName: shake128_absorb_once
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - keccak_absorb_once
    linkageType: ''
    returnType: void
    signature: void shake128_absorb_once(keccak_state *state, const uint8_t *in, size_t
      inlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: keccak_squeezeblocks
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:2279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out
    - nblocks
    - state
    argTypes:
    - uint8_t*
    - size_t
    - keccak_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2280
      start: 2276
    functionDepth: 2
    functionLinenumber: 2276
    functionLinenumberEnd: 2280
    functionName: shake128_squeezeblocks
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - keccak_squeezeblocks
    linkageType: ''
    returnType: void
    signature: void shake128_squeezeblocks(uint8_t *out, size_t nblocks, keccak_state
      *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: keccak_init
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:2292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - keccak_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2294
      start: 2289
    functionDepth: 1
    functionLinenumber: 2289
    functionLinenumberEnd: 2294
    functionName: shake256_init
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - keccak_init
    linkageType: ''
    returnType: void
    signature: void shake256_init(keccak_state *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: keccak_absorb
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:2308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - in
    - inlen
    argTypes:
    - keccak_state*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2309
      start: 2305
    functionDepth: 2
    functionLinenumber: 2305
    functionLinenumberEnd: 2309
    functionName: shake256_absorb
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - keccak_absorb
    linkageType: ''
    returnType: void
    signature: void shake256_absorb(keccak_state *state, const uint8_t *in, size_t
      inlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: keccak_finalize
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:2321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - keccak_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2323
      start: 2318
    functionDepth: 1
    functionLinenumber: 2318
    functionLinenumberEnd: 2323
    functionName: shake256_finalize
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - keccak_finalize
    linkageType: ''
    returnType: void
    signature: void shake256_finalize(keccak_state *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: keccak_squeeze
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:2338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out
    - outlen
    - state
    argTypes:
    - uint8_t*
    - size_t
    - keccak_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2339
      start: 2335
    functionDepth: 2
    functionLinenumber: 2335
    functionLinenumberEnd: 2339
    functionName: shake256_squeeze
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - keccak_squeeze
    linkageType: ''
    returnType: void
    signature: void shake256_squeeze(uint8_t *out, size_t outlen, keccak_state *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: keccak_absorb_once
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:2353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - state
    - in
    - inlen
    argTypes:
    - keccak_state*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2355
      start: 2350
    functionDepth: 2
    functionLinenumber: 2350
    functionLinenumberEnd: 2355
    functionName: shake256_absorb_once
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - keccak_absorb_once
    linkageType: ''
    returnType: void
    signature: void shake256_absorb_once(keccak_state *state, const uint8_t *in, size_t
      inlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: keccak_squeezeblocks
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:2372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out
    - nblocks
    - state
    argTypes:
    - uint8_t*
    - size_t
    - keccak_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2373
      start: 2369
    functionDepth: 2
    functionLinenumber: 2369
    functionLinenumberEnd: 2373
    functionName: shake256_squeezeblocks
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - keccak_squeezeblocks
    linkageType: ''
    returnType: void
    signature: void shake256_squeezeblocks(uint8_t *out, size_t nblocks, keccak_state
      *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: shake128_absorb_once
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:2391,1
    - Dst: shake128_squeezeblocks
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:2393,1
    - Dst: shake128_squeeze
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:2396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - out
    - outlen
    - in
    - inlen
    argTypes:
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2397
      start: 2385
    functionDepth: 3
    functionLinenumber: 2385
    functionLinenumberEnd: 2397
    functionName: shake128
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - shake128_squeezeblocks
    - shake128_squeeze
    - shake128_absorb_once
    linkageType: ''
    returnType: void
    signature: void shake128(uint8_t *out, size_t outlen, const uint8_t *in, size_t
      inlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: shake256_absorb_once
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:2415,1
    - Dst: shake256_squeezeblocks
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:2417,1
    - Dst: shake256_squeeze
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:2420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - out
    - outlen
    - in
    - inlen
    argTypes:
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2421
      start: 2409
    functionDepth: 3
    functionLinenumber: 2409
    functionLinenumberEnd: 2421
    functionName: shake256
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - shake256_squeezeblocks
    - shake256_squeeze
    - shake256_absorb_once
    linkageType: ''
    returnType: void
    signature: void shake256(uint8_t *out, size_t outlen, const uint8_t *in, size_t
      inlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: keccak_absorb_once
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:2438,1
    - Dst: KeccakF1600_StatePermute
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:2439,1
    - Dst: store64
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:2441,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - h
    - in
    - inlen
    argTypes:
    - uint8_t[]
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2442
      start: 2432
    functionDepth: 2
    functionLinenumber: 2432
    functionLinenumberEnd: 2442
    functionName: sha3_256
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - store64
    - keccak_absorb_once
    - KeccakF1600_StatePermute
    linkageType: ''
    returnType: void
    signature: void sha3_256(uint8_t h[32], const uint8_t *in, size_t inlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: keccak_absorb_once
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:2459,1
    - Dst: KeccakF1600_StatePermute
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:2460,1
    - Dst: store64
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:2462,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - h
    - in
    - inlen
    argTypes:
    - uint8_t[]
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2463
      start: 2453
    functionDepth: 2
    functionLinenumber: 2453
    functionLinenumberEnd: 2463
    functionName: sha3_512
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - store64
    - keccak_absorb_once
    - KeccakF1600_StatePermute
    linkageType: ''
    returnType: void
    signature: void sha3_512(uint8_t h[64], const uint8_t *in, size_t inlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:2485,1
    - Dst: shake128_absorb_once
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:2489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - state
    - seed
    - x
    - y
    argTypes:
    - keccak_state*
    - uint8_t[]
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2490
      start: 2477
    functionDepth: 3
    functionLinenumber: 2477
    functionLinenumberEnd: 2490
    functionName: kyber_shake128_absorb
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - memcpy
    - shake128_absorb_once
    linkageType: ''
    returnType: void
    signature: "void kyber_shake128_absorb(keccak_state *state,\n                      const
      uint8_t seed[KYBER_SYMBYTES],\n                      uint8_t x,\n                      uint8_t
      y)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:2508,1
    - Dst: shake256
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:2511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - out
    - outlen
    - key
    - nonce
    argTypes:
    - uint8_t*
    - size_t
    - uint8_t[]
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2512
      start: 2503
    functionDepth: 4
    functionLinenumber: 2503
    functionLinenumberEnd: 2512
    functionName: kyber_shake256_prf
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - memcpy
    - shake256
    linkageType: ''
    returnType: void
    signature: void kyber_shake256_prf(uint8_t *out, size_t outlen, const uint8_t
      key[KYBER_SYMBYTES], uint8_t nonce)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: indcpa_keypair_derand
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:2537,1
    - Dst: hash_h
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:2540,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - pk
    - sk
    - coins
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2545
      start: 2531
    functionDepth: 6
    functionLinenumber: 2531
    functionLinenumberEnd: 2545
    functionName: crypto_kem_keypair_derand
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - indcpa_keypair_derand
    - hash_h
    linkageType: ''
    returnType: int
    signature: "int crypto_kem_keypair_derand(uint8_t *pk,\n                          uint8_t
      *sk,\n                          const uint8_t *coins)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: randombytes
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:2565,1
    - Dst: randombytes
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:2566,1
    - Dst: crypto_kem_keypair_derand
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:2567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - pk
    - sk
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2569
      start: 2560
    functionDepth: 7
    functionLinenumber: 2560
    functionLinenumberEnd: 2569
    functionName: crypto_kem_keypair
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - randombytes
    - crypto_kem_keypair_derand
    linkageType: ''
    returnType: int
    signature: "int crypto_kem_keypair(uint8_t *pk,\n                   uint8_t *sk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hash_h
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:2599,1
    - Dst: hash_h
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:2602,1
    - Dst: hash_g
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:2603,1
    - Dst: indcpa_enc
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:2606,1
    - Dst: hash_h
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:2609,1
    - Dst: kdf
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:2611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - ct
    - ss
    - pk
    - coins
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2613
      start: 2588
    functionDepth: 6
    functionLinenumber: 2588
    functionLinenumberEnd: 2613
    functionName: crypto_kem_enc_derand
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - kdf
    - indcpa_enc
    - hash_h
    - hash_g
    linkageType: ''
    returnType: int
    signature: "int crypto_kem_enc_derand(uint8_t *ct,\n                      uint8_t
      *ss,\n                      const uint8_t *pk,\n                      const
      uint8_t *coins)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: randombytes
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:2636,1
    - Dst: crypto_kem_enc_derand
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:2637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ct
    - ss
    - pk
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2639
      start: 2630
    functionDepth: 7
    functionLinenumber: 2630
    functionLinenumberEnd: 2639
    functionName: crypto_kem_enc
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - crypto_kem_enc_derand
    - randombytes
    linkageType: ''
    returnType: int
    signature: "int crypto_kem_enc(uint8_t *ct,\n               uint8_t *ss,\n               const
      uint8_t *pk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: indcpa_dec
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:2671,1
    - Dst: hash_g
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:2676,1
    - Dst: indcpa_enc
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:2679,1
    - Dst: verify
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:2681,1
    - Dst: hash_h
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:2684,1
    - Dst: cmov
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:2687,1
    - Dst: kdf
      Src: /src/nss/lib/freebl/kyber-pqcrystals-ref.c:2690,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - ss
    - ct
    - sk
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2692
      start: 2658
    functionDepth: 6
    functionLinenumber: 2658
    functionLinenumberEnd: 2692
    functionName: crypto_kem_dec
    functionSourceFile: /src/nss/lib/freebl/kyber-pqcrystals-ref.c
    functionUses: 0
    functionsReached:
    - kdf
    - indcpa_enc
    - verify
    - cmov
    - hash_h
    - indcpa_dec
    - hash_g
    linkageType: ''
    returnType: int
    signature: "int crypto_kem_dec(uint8_t *ss,\n               const uint8_t *ct,\n
      \              const uint8_t *sk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _xgetbv
      Src: /src/nss/lib/freebl/blinit.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 79
    functionName: check_xcr0_ymm
    functionSourceFile: /src/nss/lib/freebl/blinit.c
    functionUses: 0
    functionsReached:
    - _xgetbv
    linkageType: ''
    returnType: PRBool
    signature: PRBool check_xcr0_ymm()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/freebl/blinit.c:105,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/freebl/blinit.c:106,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/freebl/blinit.c:107,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/freebl/blinit.c:108,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/freebl/blinit.c:109,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/freebl/blinit.c:110,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/freebl/blinit.c:111,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/freebl/blinit.c:112,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/freebl/blinit.c:113,1
    - Dst: freebl_cpuid
      Src: /src/nss/lib/freebl/blinit.c:114,1
    - Dst: freebl_cpuid
      Src: /src/nss/lib/freebl/blinit.c:115,1
    - Dst: check_xcr0_ymm
      Src: /src/nss/lib/freebl/blinit.c:123,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 144
    functionName: CheckX86CPUSupport
    functionSourceFile: /src/nss/lib/freebl/blinit.c
    functionUses: 0
    functionsReached:
    - check_xcr0_ymm
    - freebl_cpuid
    - PR_GetEnvSecure
    linkageType: ''
    returnType: void
    signature: void CheckX86CPUSupport()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 151
    functionName: __has_include
    functionSourceFile: /src/nss/lib/freebl/blinit.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __has_include(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: elf_aux_info
      Src: /src/nss/lib/freebl/blinit.c:174,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - type
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 176
    functionName: getauxval
    functionSourceFile: /src/nss/lib/freebl/blinit.c
    functionUses: 0
    functionsReached:
    - elf_aux_info
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long getauxval(unsigned long type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: IsProcessorFeaturePresent
      Src: /src/nss/lib/freebl/blinit.c:232,1
    - Dst: getauxval
      Src: /src/nss/lib/freebl/blinit.c:239,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/freebl/blinit.c:247,1
    - Dst: READ_SPECIALREG
      Src: /src/nss/lib/freebl/blinit.c:248,1
    - Dst: ID_AA64ISAR0_AES_VAL
      Src: /src/nss/lib/freebl/blinit.c:249,1
    - Dst: ID_AA64ISAR0_AES_VAL
      Src: /src/nss/lib/freebl/blinit.c:250,1
    - Dst: ID_AA64ISAR0_SHA1_VAL
      Src: /src/nss/lib/freebl/blinit.c:251,1
    - Dst: ID_AA64ISAR0_SHA2_VAL
      Src: /src/nss/lib/freebl/blinit.c:252,1
    - Dst: sysctl
      Src: /src/nss/lib/freebl/blinit.c:258,1
    - Dst: ID_AA64ISAR0_AES
      Src: /src/nss/lib/freebl/blinit.c:260,1
    - Dst: ID_AA64ISAR0_AES
      Src: /src/nss/lib/freebl/blinit.c:261,1
    - Dst: ID_AA64ISAR0_SHA1
      Src: /src/nss/lib/freebl/blinit.c:262,1
    - Dst: ID_AA64ISAR0_SHA2
      Src: /src/nss/lib/freebl/blinit.c:263,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/freebl/blinit.c:275,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/freebl/blinit.c:276,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/freebl/blinit.c:277,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/freebl/blinit.c:278,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/freebl/blinit.c:279,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 280
    functionName: CheckARMSupport
    functionSourceFile: /src/nss/lib/freebl/blinit.c
    functionUses: 0
    functionsReached:
    - ID_AA64ISAR0_SHA1_VAL
    - sysctl
    - ID_AA64ISAR0_SHA2
    - ID_AA64ISAR0_SHA2_VAL
    - getauxval
    - ID_AA64ISAR0_AES_VAL
    - PR_GetEnvSecure
    - IsProcessorFeaturePresent
    - ID_AA64ISAR0_SHA1
    - ID_AA64ISAR0_AES
    - READ_SPECIALREG
    linkageType: ''
    returnType: void
    signature: void CheckARMSupport()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/freebl/blinit.c:311,1
    - Dst: getauxval
      Src: /src/nss/lib/freebl/blinit.c:332,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 336
    functionName: GetNeonSupport
    functionSourceFile: /src/nss/lib/freebl/blinit.c
    functionUses: 0
    functionsReached:
    - getauxval
    - PR_GetEnvSecure
    linkageType: ''
    returnType: PRBool
    signature: PRBool GetNeonSupport()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/nss/lib/freebl/blinit.c:347,1
    - Dst: fgets
      Src: /src/nss/lib/freebl/blinit.c:351,1
    - Dst: memcmp
      Src: /src/nss/lib/freebl/blinit.c:352,1
    - Dst: strstr
      Src: /src/nss/lib/freebl/blinit.c:353,1
    - Dst: strstr
      Src: /src/nss/lib/freebl/blinit.c:357,1
    - Dst: strstr
      Src: /src/nss/lib/freebl/blinit.c:361,1
    - Dst: strstr
      Src: /src/nss/lib/freebl/blinit.c:365,1
    - Dst: fclose
      Src: /src/nss/lib/freebl/blinit.c:373,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 375
    functionName: ReadCPUInfoForHWCAP2
    functionSourceFile: /src/nss/lib/freebl/blinit.c
    functionUses: 0
    functionsReached:
    - fclose
    - fgets
    - fopen
    - strstr
    - memcmp
    linkageType: ''
    returnType: long
    signature: long ReadCPUInfoForHWCAP2()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/freebl/blinit.c:381,1
    - Dst: getauxval
      Src: /src/nss/lib/freebl/blinit.c:389,1
    - Dst: ReadCPUInfoForHWCAP2
      Src: /src/nss/lib/freebl/blinit.c:394,1
    - Dst: GetNeonSupport
      Src: /src/nss/lib/freebl/blinit.c:402,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/freebl/blinit.c:403,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/freebl/blinit.c:404,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 378
    functionDepth: 2
    functionLinenumber: 378
    functionLinenumberEnd: 405
    functionName: CheckARMSupport
    functionSourceFile: /src/nss/lib/freebl/blinit.c
    functionUses: 0
    functionsReached:
    - ReadCPUInfoForHWCAP2
    - GetNeonSupport
    - getauxval
    - PR_GetEnvSecure
    linkageType: ''
    returnType: void
    signature: void CheckARMSupport()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 442
    functionName: aesni_support
    functionSourceFile: /src/nss/lib/freebl/blinit.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool aesni_support()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 447
    functionName: clmul_support
    functionSourceFile: /src/nss/lib/freebl/blinit.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool clmul_support()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 452
    functionName: sha_support
    functionSourceFile: /src/nss/lib/freebl/blinit.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool sha_support()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 457
    functionName: avx_support
    functionSourceFile: /src/nss/lib/freebl/blinit.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool avx_support()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 462
    functionName: avx2_support
    functionSourceFile: /src/nss/lib/freebl/blinit.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool avx2_support()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 467
    functionName: adx_support
    functionSourceFile: /src/nss/lib/freebl/blinit.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool adx_support()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 472
    functionName: ssse3_support
    functionSourceFile: /src/nss/lib/freebl/blinit.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool ssse3_support()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 477
    functionName: sse4_1_support
    functionSourceFile: /src/nss/lib/freebl/blinit.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool sse4_1_support()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 482
    functionName: sse4_2_support
    functionSourceFile: /src/nss/lib/freebl/blinit.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool sse4_2_support()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 487
    functionName: arm_neon_support
    functionSourceFile: /src/nss/lib/freebl/blinit.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool arm_neon_support()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 492
    functionName: arm_aes_support
    functionSourceFile: /src/nss/lib/freebl/blinit.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool arm_aes_support()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 497
    functionName: arm_pmull_support
    functionSourceFile: /src/nss/lib/freebl/blinit.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool arm_pmull_support()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 502
    functionName: arm_sha1_support
    functionSourceFile: /src/nss/lib/freebl/blinit.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool arm_sha1_support()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 507
    functionName: arm_sha2_support
    functionSourceFile: /src/nss/lib/freebl/blinit.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool arm_sha2_support()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 512
    functionName: ppc_crypto_support
    functionSourceFile: /src/nss/lib/freebl/blinit.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool ppc_crypto_support()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 518
    functionName: __has_include
    functionSourceFile: /src/nss/lib/freebl/blinit.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __has_include(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/freebl/blinit.c:537,1
    - Dst: getauxval
      Src: /src/nss/lib/freebl/blinit.c:542,1
    - Dst: elf_aux_info
      Src: /src/nss/lib/freebl/blinit.c:547,1
    - Dst: sizeof
      Src: /src/nss/lib/freebl/blinit.c:547,1
    - Dst: sysctlbyname
      Src: /src/nss/lib/freebl/blinit.c:551,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 534
    functionDepth: 1
    functionLinenumber: 534
    functionLinenumberEnd: 556
    functionName: CheckPPCSupport
    functionSourceFile: /src/nss/lib/freebl/blinit.c
    functionUses: 0
    functionsReached:
    - getauxval
    - PR_GetEnvSecure
    - sysctlbyname
    - elf_aux_info
    - sizeof
    linkageType: ''
    returnType: void
    signature: void CheckPPCSupport()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckX86CPUSupport
      Src: /src/nss/lib/freebl/blinit.c:565,1
    - Dst: CheckARMSupport
      Src: /src/nss/lib/freebl/blinit.c:567,1
    - Dst: CheckPPCSupport
      Src: /src/nss/lib/freebl/blinit.c:569,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 561
    functionDepth: 2
    functionLinenumber: 561
    functionLinenumberEnd: 572
    functionName: FreeblInit
    functionSourceFile: /src/nss/lib/freebl/blinit.c
    functionUses: 0
    functionsReached:
    - CheckPPCSupport
    - CheckX86CPUSupport
    - CheckARMSupport
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus FreeblInit(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_CallOnce
      Src: /src/nss/lib/freebl/blinit.c:577,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/blinit.c:578,1
    - Dst: RSA_Init
      Src: /src/nss/lib/freebl/blinit.c:581,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 574
    functionDepth: 2
    functionLinenumber: 574
    functionLinenumberEnd: 584
    functionName: BL_Init
    functionSourceFile: /src/nss/lib/freebl/blinit.c
    functionUses: 2
    functionsReached:
    - PR_CallOnce
    - PORT_SetError
    - RSA_Init
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus BL_Init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/gcm.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ghash
    - outbuf
    argTypes:
    - gcmHashContext*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 54
    functionName: gcm_HashWrite_hw
    functionSourceFile: /src/nss/lib/freebl/gcm.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus gcm_HashWrite_hw(gcmHashContext *ghash, unsigned char *outbuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/gcm.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ghash
    - buf
    - count
    argTypes:
    - gcmHashContext*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 62
    functionName: gcm_HashMult_hw
    functionSourceFile: /src/nss/lib/freebl/gcm.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus gcm_HashMult_hw(gcmHashContext *ghash, const unsigned char
      *buf,\n                unsigned int count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/gcm.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ghash
    argTypes:
    - gcmHashContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 69
    functionName: gcm_HashInit_hw
    functionSourceFile: /src/nss/lib/freebl/gcm.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus gcm_HashInit_hw(gcmHashContext *ghash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/gcm.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ghash
    argTypes:
    - gcmHashContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 76
    functionName: gcm_HashZeroX_hw
    functionSourceFile: /src/nss/lib/freebl/gcm.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus gcm_HashZeroX_hw(gcmHashContext *ghash)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 90
    functionName: get64
    functionSourceFile: /src/nss/lib/freebl/gcm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t get64(const unsigned char *bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 4
    argNames:
    - x
    - y
    - r_high
    - r_low
    argTypes:
    - uint64_t
    - uint64_t
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 169
    functionName: bmul
    functionSourceFile: /src/nss/lib/freebl/gcm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bmul(uint64_t x, uint64_t y, uint64_t *r_high, uint64_t *r_low)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get64
      Src: /src/nss/lib/freebl/gcm.c:183,1
    - Dst: get64
      Src: /src/nss/lib/freebl/gcm.c:184,1
    - Dst: bmul
      Src: /src/nss/lib/freebl/gcm.c:187,1
    - Dst: bmul
      Src: /src/nss/lib/freebl/gcm.c:188,1
    - Dst: bmul
      Src: /src/nss/lib/freebl/gcm.c:189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 3
    argNames:
    - ghash
    - buf
    - count
    argTypes:
    - gcmHashContext*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 208
    functionName: gcm_HashMult_sftw
    functionSourceFile: /src/nss/lib/freebl/gcm.c
    functionUses: 0
    functionsReached:
    - bmul
    - get64
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus gcm_HashMult_sftw(gcmHashContext *ghash, const unsigned
      char *buf,\n                  unsigned int count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 4
    argNames:
    - x
    - y
    - r_high
    - r_low
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 246
    functionName: bmul32
    functionSourceFile: /src/nss/lib/freebl/gcm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bmul32(uint32_t x, uint32_t y, uint32_t *r_high, uint32_t *r_low)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get64
      Src: /src/nss/lib/freebl/gcm.c:269,1
    - Dst: get64
      Src: /src/nss/lib/freebl/gcm.c:270,1
    - Dst: bmul32
      Src: /src/nss/lib/freebl/gcm.c:279,1
    - Dst: bmul32
      Src: /src/nss/lib/freebl/gcm.c:280,1
    - Dst: bmul32
      Src: /src/nss/lib/freebl/gcm.c:281,1
    - Dst: bmul32
      Src: /src/nss/lib/freebl/gcm.c:288,1
    - Dst: bmul32
      Src: /src/nss/lib/freebl/gcm.c:289,1
    - Dst: bmul32
      Src: /src/nss/lib/freebl/gcm.c:290,1
    - Dst: bmul32
      Src: /src/nss/lib/freebl/gcm.c:297,1
    - Dst: bmul32
      Src: /src/nss/lib/freebl/gcm.c:298,1
    - Dst: bmul32
      Src: /src/nss/lib/freebl/gcm.c:299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 50
    argCount: 3
    argNames:
    - ghash
    - buf
    - count
    argTypes:
    - gcmHashContext*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 332
    functionName: gcm_HashMult_sftw32
    functionSourceFile: /src/nss/lib/freebl/gcm.c
    functionUses: 0
    functionsReached:
    - bmul32
    - get64
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus gcm_HashMult_sftw32(gcmHashContext *ghash, const unsigned
      char *buf,\n                    unsigned int count)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gcm_HashZeroX_hw
      Src: /src/nss/lib/freebl/gcm.c:341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ghash
    argTypes:
    - gcmHashContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 346
    functionName: gcm_zeroX
    functionSourceFile: /src/nss/lib/freebl/gcm.c
    functionUses: 0
    functionsReached:
    - gcm_HashZeroX_hw
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus gcm_zeroX(gcmHashContext *ghash)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PR_MIN
      Src: /src/nss/lib/freebl/gcm.c:365,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/gcm.c:367,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/gcm.c:376,1
    - Dst: gcmHashContext*::ghash_mul
      Src: /src/nss/lib/freebl/gcm.c:378,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/gcm.c:379,1
    - Dst: gcmHashContext*::ghash_mul
      Src: /src/nss/lib/freebl/gcm.c:388,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/gcm.c:398,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 3
    argNames:
    - ghash
    - buf
    - len
    argTypes:
    - gcmHashContext*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 402
    functionName: gcmHash_Update
    functionSourceFile: /src/nss/lib/freebl/gcm.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_Memcpy
    - gcmHashContext*::ghash_mul
    - PR_MIN
    - PORT_Memset
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus gcmHash_Update(gcmHashContext *ghash, const unsigned char
      *buf,\n               unsigned int len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/gcm.c:415,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/gcm.c:426,1
    - Dst: gcmHashContext*::ghash_mul
      Src: /src/nss/lib/freebl/gcm.c:427,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/gcm.c:428,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - ghash
    argTypes:
    - gcmHashContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 435
    functionName: gcmHash_Sync
    functionSourceFile: /src/nss/lib/freebl/gcm.c
    functionUses: 0
    functionsReached:
    - PORT_Memset
    - PORT_Memcpy
    - gcmHashContext*::ghash_mul
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus gcmHash_Sync(gcmHashContext *ghash)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - bytes
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 446
    functionName: WRITE64
    functionSourceFile: /src/nss/lib/freebl/gcm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRITE64(x, bytes)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: gcmHash_Sync
      Src: /src/nss/lib/freebl/gcm.c:458,1
    - Dst: gcmHashContext*::ghash_mul
      Src: /src/nss/lib/freebl/gcm.c:463,1
    - Dst: gcm_HashWrite_hw
      Src: /src/nss/lib/freebl/gcm.c:470,1
    - Dst: WRITE64
      Src: /src/nss/lib/freebl/gcm.c:475,1
    - Dst: WRITE64
      Src: /src/nss/lib/freebl/gcm.c:476,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/gcm.c:482,1
    - Dst: PORT_SafeZero
      Src: /src/nss/lib/freebl/gcm.c:487,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 4
    argNames:
    - ghash
    - outbuf
    - outlen
    - maxout
    argTypes:
    - gcmHashContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 489
    functionName: gcmHash_Final
    functionSourceFile: /src/nss/lib/freebl/gcm.c
    functionUses: 0
    functionsReached:
    - WRITE64
    - PORT_Memcpy
    - gcm_HashWrite_hw
    - gcmHashContext*::ghash_mul
    - gcmHash_Sync
    - PORT_SafeZero
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus gcmHash_Final(gcmHashContext *ghash, unsigned char *outbuf,\n
      \             unsigned int *outlen, unsigned int maxout)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/gcm.c:501,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/gcm.c:507,1
    - Dst: gcm_zeroX
      Src: /src/nss/lib/freebl/gcm.c:509,1
    - Dst: gcmHash_Update
      Src: /src/nss/lib/freebl/gcm.c:516,1
    - Dst: gcmHash_Sync
      Src: /src/nss/lib/freebl/gcm.c:520,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - ghash
    - AAD
    - AADLen
    argTypes:
    - gcmHashContext*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 491
    functionDepth: 2
    functionLinenumber: 491
    functionLinenumberEnd: 526
    functionName: gcmHash_Reset
    functionSourceFile: /src/nss/lib/freebl/gcm.c
    functionUses: 0
    functionsReached:
    - gcmHash_Update
    - PORT_SetError
    - gcmHash_Sync
    - gcm_zeroX
    - PORT_Memset
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus gcmHash_Reset(gcmHashContext *ghash, const unsigned char
      *AAD,\n              unsigned int AADLen)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZNew
      Src: /src/nss/lib/freebl/gcm.c:564,1
    - Dst: PORT_ZNewAligned
      Src: /src/nss/lib/freebl/gcm.c:570,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/gcm.c:574,1
    - Dst: gcmHash_InitContext
      Src: /src/nss/lib/freebl/gcm.c:579,1
    - Dst: gcm_InitIVContext
      Src: /src/nss/lib/freebl/gcm.c:584,1
    - Dst: gcm_InitCounter
      Src: /src/nss/lib/freebl/gcm.c:597,1
    - Dst: PORT_SafeZero
      Src: /src/nss/lib/freebl/gcm.c:603,1
    - Dst: PORT_SafeZero
      Src: /src/nss/lib/freebl/gcm.c:608,1
    - Dst: PORT_SafeZero
      Src: /src/nss/lib/freebl/gcm.c:611,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/gcm.c:612,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/freebl/gcm.c:615,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 3
    argNames:
    - context
    - cipher
    - params
    argTypes:
    - void*
    - freeblCipherFunc
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 548
    functionDepth: 1
    functionLinenumber: 548
    functionLinenumberEnd: 618
    functionName: GCM_CreateContext
    functionSourceFile: /src/nss/lib/freebl/gcm.c
    functionUses: 0
    functionsReached:
    - PORT_ZFree
    - PORT_ZNew
    - PORT_Free
    - gcm_InitCounter
    - gcm_InitIVContext
    - PORT_ZNewAligned
    - gcmHash_InitContext
    - PORT_Memset
    - PORT_SafeZero
    linkageType: ''
    returnType: GCMContext
    signature: "GCMContext *\nGCM_CreateContext(void *context, freeblCipherFunc cipher,\n
      \                 const unsigned char *params)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 624
    functionName: load32_be
    functionSourceFile: /src/nss/lib/freebl/gcm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int load32_be(const unsigned char *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - p
    - c
    argTypes:
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 626
    functionDepth: 0
    functionLinenumber: 626
    functionLinenumberEnd: 633
    functionName: store32_be
    functionSourceFile: /src/nss/lib/freebl/gcm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void store32_be(unsigned char *p, const unsigned int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - target
    - x
    - y
    - count
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 635
    functionDepth: 0
    functionLinenumber: 635
    functionLinenumberEnd: 642
    functionName: gcm_ctr_xor
    functionSourceFile: /src/nss/lib/freebl/gcm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void gcm_ctr_xor(unsigned char *target, const unsigned char *x,\n
      \           const unsigned char *y, unsigned int count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vst1q_u8
      Src: /src/nss/lib/freebl/gcm.c:649,1
    - Dst: veorq_u8
      Src: /src/nss/lib/freebl/gcm.c:649,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/gcm.c:649,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/gcm.c:649,1
    - Dst: gcm_ctr_xor
      Src: /src/nss/lib/freebl/gcm.c:651,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - target
    - x
    - y
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 644
    functionDepth: 1
    functionLinenumber: 644
    functionLinenumberEnd: 653
    functionName: gcm_ctr_xor_block
    functionSourceFile: /src/nss/lib/freebl/gcm.c
    functionUses: 0
    functionsReached:
    - veorq_u8
    - vst1q_u8
    - vld1q_u8
    - gcm_ctr_xor
    linkageType: ''
    returnType: void
    signature: "void gcm_ctr_xor_block(unsigned char *target, const unsigned char
      *x,\n                  const unsigned char *y)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/gcm.c:660,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/gcm.c:661,1
    - Dst: load32_be
      Src: /src/nss/lib/freebl/gcm.c:667,1
    - Dst: load32_be
      Src: /src/nss/lib/freebl/gcm.c:671,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/gcm.c:690,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/gcm.c:696,1
    - Dst: PR_MIN
      Src: /src/nss/lib/freebl/gcm.c:701,1
    - Dst: gcm_ctr_xor
      Src: /src/nss/lib/freebl/gcm.c:702,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/gcm.c:707,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/gcm.c:713,1
    - Dst: store32_be
      Src: /src/nss/lib/freebl/gcm.c:715,1
    - Dst: gcm_ctr_xor_block
      Src: /src/nss/lib/freebl/gcm.c:716,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/gcm.c:725,1
    - Dst: store32_be
      Src: /src/nss/lib/freebl/gcm.c:727,1
    - Dst: gcm_ctr_xor
      Src: /src/nss/lib/freebl/gcm.c:728,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 45
    argCount: 6
    argNames:
    - ctr
    - outbuf
    - outlen
    - maxout
    - inbuf
    - inlen
    argTypes:
    - CTRContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 655
    functionDepth: 2
    functionLinenumber: 655
    functionLinenumberEnd: 732
    functionName: gcm_CTR_Update
    functionSourceFile: /src/nss/lib/freebl/gcm.c
    functionUses: 0
    functionsReached:
    - load32_be
    - PORT_Assert
    - PR_MIN
    - gcm_ctr_xor_block
    - PORT_SetError
    - gcm_ctr_xor
    - store32_be
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus gcm_CTR_Update(CTRContext *ctr, unsigned char *outbuf,\n
      \              unsigned int *outlen, unsigned int maxout,\n               const
      unsigned char *inbuf, unsigned int inlen)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/gcm.c:747,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/gcm.c:755,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/gcm.c:761,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/gcm.c:763,1
    - Dst: gcmHash_Reset
      Src: /src/nss/lib/freebl/gcm.c:766,1
    - Dst: gcmHash_Update
      Src: /src/nss/lib/freebl/gcm.c:770,1
    - Dst: gcmHash_Final
      Src: /src/nss/lib/freebl/gcm.c:774,1
    - Dst: CTR_InitContext
      Src: /src/nss/lib/freebl/gcm.c:779,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/gcm.c:790,1
    - Dst: gcm_CTR_Update
      Src: /src/nss/lib/freebl/gcm.c:791,1
    - Dst: gcmHash_Reset
      Src: /src/nss/lib/freebl/gcm.c:798,1
    - Dst: PORT_SafeZero
      Src: /src/nss/lib/freebl/gcm.c:803,1
    - Dst: PORT_SafeZero
      Src: /src/nss/lib/freebl/gcm.c:807,1
    - Dst: CTR_DestroyContext
      Src: /src/nss/lib/freebl/gcm.c:809,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 60
    argCount: 6
    argNames:
    - gcm
    - iv
    - ivLen
    - tagBits
    - aad
    - aadLen
    argTypes:
    - GCMContext*
    - unsigned char*
    - unsigned int
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 734
    functionDepth: 3
    functionLinenumber: 734
    functionLinenumberEnd: 812
    functionName: gcm_InitCounter
    functionSourceFile: /src/nss/lib/freebl/gcm.c
    functionUses: 1
    functionsReached:
    - PORT_Memcpy
    - gcm_CTR_Update
    - gcmHash_Final
    - CTR_InitContext
    - gcmHash_Update
    - PORT_SetError
    - gcmHash_Reset
    - PORT_Memset
    - PORT_SafeZero
    - CTR_DestroyContext
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus gcm_InitCounter(GCMContext *gcm, const unsigned char *iv,
      unsigned int ivLen,\n                unsigned int tagBits, const unsigned char
      *aad,\n                unsigned int aadLen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CTR_DestroyContext
      Src: /src/nss/lib/freebl/gcm.c:822,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/gcm.c:824,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/gcm.c:825,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/gcm.c:826,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/gcm.c:827,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/gcm.c:829,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - gcm
    - freeit
    argTypes:
    - GCMContext*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 814
    functionDepth: 1
    functionLinenumber: 814
    functionLinenumberEnd: 831
    functionName: GCM_DestroyContext
    functionSourceFile: /src/nss/lib/freebl/gcm.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - PORT_Memset
    - CTR_DestroyContext
    linkageType: ''
    returnType: void
    signature: void GCM_DestroyContext(GCMContext *gcm, PRBool freeit)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/gcm.c:847,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/gcm.c:853,1
    - Dst: gcmHash_Final
      Src: /src/nss/lib/freebl/gcm.c:857,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 4
    argNames:
    - gcm
    - outbuf
    - outlen
    - maxout
    argTypes:
    - GCMContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 833
    functionDepth: 2
    functionLinenumber: 833
    functionLinenumberEnd: 870
    functionName: gcm_GetTag
    functionSourceFile: /src/nss/lib/freebl/gcm.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - gcmHash_Final
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus gcm_GetTag(GCMContext *gcm, unsigned char *outbuf,\n           unsigned
      int *outlen, unsigned int maxout)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/gcm.c:887,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/gcm.c:889,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/gcm.c:894,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/gcm.c:900,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/gcm.c:905,1
    - Dst: gcm_CTR_Update
      Src: /src/nss/lib/freebl/gcm.c:909,1
    - Dst: gcmHash_Update
      Src: /src/nss/lib/freebl/gcm.c:914,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/gcm.c:916,1
    - Dst: gcm_GetTag
      Src: /src/nss/lib/freebl/gcm.c:920,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/gcm.c:922,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 7
    argNames:
    - gcm
    - outbuf
    - outlen
    - maxout
    - inbuf
    - inlen
    - blocksize
    argTypes:
    - GCMContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 877
    functionDepth: 3
    functionLinenumber: 877
    functionLinenumberEnd: 928
    functionName: GCM_EncryptUpdate
    functionSourceFile: /src/nss/lib/freebl/gcm.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - gcm_CTR_Update
    - gcmHash_Update
    - gcm_GetTag
    - PORT_SetError
    - PORT_Memset
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus GCM_EncryptUpdate(GCMContext *gcm, unsigned char *outbuf,\n
      \                 unsigned int *outlen, unsigned int maxout,\n                  const
      unsigned char *inbuf, unsigned int inlen,\n                  unsigned int blocksize)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/gcm.c:950,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/gcm.c:952,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/gcm.c:957,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/gcm.c:965,1
    - Dst: gcmHash_Update
      Src: /src/nss/lib/freebl/gcm.c:973,1
    - Dst: gcm_GetTag
      Src: /src/nss/lib/freebl/gcm.c:977,1
    - Dst: NSS_SecureMemcmp
      Src: /src/nss/lib/freebl/gcm.c:984,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/gcm.c:986,1
    - Dst: PORT_SafeZero
      Src: /src/nss/lib/freebl/gcm.c:987,1
    - Dst: PORT_SafeZero
      Src: /src/nss/lib/freebl/gcm.c:990,1
    - Dst: gcm_CTR_Update
      Src: /src/nss/lib/freebl/gcm.c:992,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 7
    argNames:
    - gcm
    - outbuf
    - outlen
    - maxout
    - inbuf
    - inlen
    - blocksize
    argTypes:
    - GCMContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 938
    functionDepth: 3
    functionLinenumber: 938
    functionLinenumberEnd: 994
    functionName: GCM_DecryptUpdate
    functionSourceFile: /src/nss/lib/freebl/gcm.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - gcm_CTR_Update
    - gcmHash_Update
    - gcm_GetTag
    - PORT_SetError
    - NSS_SecureMemcmp
    - PORT_SafeZero
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus GCM_DecryptUpdate(GCMContext *gcm, unsigned char *outbuf,\n
      \                 unsigned int *outlen, unsigned int maxout,\n                  const
      unsigned char *inbuf, unsigned int inlen,\n                  unsigned int blocksize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - gcmIv
    argTypes:
    - gcmIVContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 996
    functionDepth: 0
    functionLinenumber: 996
    functionLinenumberEnd: 1004
    functionName: gcm_InitIVContext
    functionSourceFile: /src/nss/lib/freebl/gcm.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void gcm_InitIVContext(gcmIVContext *gcmIv)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/gcm.c:1047,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/gcm.c:1059,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/gcm.c:1067,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/gcm.c:1076,1
    - Dst: PR_UINT64
      Src: /src/nss/lib/freebl/gcm.c:1081,1
    - Dst: PR_UINT64
      Src: /src/nss/lib/freebl/gcm.c:1083,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/gcm.c:1097,1
    - Dst: PORT_GET_BYTE_BE
      Src: /src/nss/lib/freebl/gcm.c:1111,1
    - Dst: PORT_GET_BYTE_BE
      Src: /src/nss/lib/freebl/gcm.c:1113,1
    - Dst: PORT_GET_BYTE_BE
      Src: /src/nss/lib/freebl/gcm.c:1119,1
    - Dst: PORT_GET_BYTE_BE
      Src: /src/nss/lib/freebl/gcm.c:1121,1
    - Dst: RNG_GenerateGlobalRandomBytes
      Src: /src/nss/lib/freebl/gcm.c:1126,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 70
    argCount: 5
    argNames:
    - gcmIv
    - iv
    - ivLen
    - fixedBits
    - ivGen
    argTypes:
    - gcmIVContext*
    - unsigned char*
    - unsigned int
    - unsigned int
    - CK_GENERATOR_FUNCTION
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 1030
    functionDepth: 1
    functionLinenumber: 1030
    functionLinenumberEnd: 1135
    functionName: gcm_GenerateIV
    functionSourceFile: /src/nss/lib/freebl/gcm.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    - RNG_GenerateGlobalRandomBytes
    - PORT_GET_BYTE_BE
    - PR_UINT64
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus gcm_GenerateIV(gcmIVContext *gcmIv, unsigned char *iv, unsigned
      int ivLen,\n               unsigned int fixedBits, CK_GENERATOR_FUNCTION ivGen)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/gcm.c:1151,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/gcm.c:1153,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/gcm.c:1160,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/gcm.c:1166,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/gcm.c:1172,1
    - Dst: gcm_GenerateIV
      Src: /src/nss/lib/freebl/gcm.c:1176,1
    - Dst: gcm_InitCounter
      Src: /src/nss/lib/freebl/gcm.c:1182,1
    - Dst: gcm_CTR_Update
      Src: /src/nss/lib/freebl/gcm.c:1190,1
    - Dst: CTR_DestroyContext
      Src: /src/nss/lib/freebl/gcm.c:1192,1
    - Dst: gcmHash_Update
      Src: /src/nss/lib/freebl/gcm.c:1196,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/gcm.c:1198,1
    - Dst: gcm_GetTag
      Src: /src/nss/lib/freebl/gcm.c:1202,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/gcm.c:1204,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 47
    argCount: 11
    argNames:
    - gcm
    - outbuf
    - outlen
    - maxout
    - inbuf
    - inlen
    - params
    - paramLen
    - aad
    - aadLen
    - blocksize
    argTypes:
    - GCMContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    - void*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1209
      start: 1137
    functionDepth: 4
    functionLinenumber: 1137
    functionLinenumberEnd: 1209
    functionName: GCM_EncryptAEAD
    functionSourceFile: /src/nss/lib/freebl/gcm.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - gcm_CTR_Update
    - gcmHash_Update
    - gcm_InitCounter
    - gcm_GenerateIV
    - gcm_GetTag
    - PORT_SetError
    - PORT_Memset
    - CTR_DestroyContext
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus GCM_EncryptAEAD(GCMContext *gcm, unsigned char *outbuf,\n
      \               unsigned int *outlen, unsigned int maxout,\n                const
      unsigned char *inbuf, unsigned int inlen,\n                void *params, unsigned
      int paramLen,\n                const unsigned char *aad, unsigned int aadLen,\n
      \               unsigned int blocksize)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/gcm.c:1227,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/gcm.c:1229,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/gcm.c:1236,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/gcm.c:1242,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/gcm.c:1248,1
    - Dst: gcm_InitCounter
      Src: /src/nss/lib/freebl/gcm.c:1252,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/gcm.c:1260,1
    - Dst: gcmHash_Update
      Src: /src/nss/lib/freebl/gcm.c:1263,1
    - Dst: CTR_DestroyContext
      Src: /src/nss/lib/freebl/gcm.c:1265,1
    - Dst: gcm_GetTag
      Src: /src/nss/lib/freebl/gcm.c:1268,1
    - Dst: CTR_DestroyContext
      Src: /src/nss/lib/freebl/gcm.c:1270,1
    - Dst: NSS_SecureMemcmp
      Src: /src/nss/lib/freebl/gcm.c:1276,1
    - Dst: CTR_DestroyContext
      Src: /src/nss/lib/freebl/gcm.c:1278,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/gcm.c:1279,1
    - Dst: PORT_SafeZero
      Src: /src/nss/lib/freebl/gcm.c:1280,1
    - Dst: PORT_SafeZero
      Src: /src/nss/lib/freebl/gcm.c:1283,1
    - Dst: gcm_CTR_Update
      Src: /src/nss/lib/freebl/gcm.c:1285,1
    - Dst: CTR_DestroyContext
      Src: /src/nss/lib/freebl/gcm.c:1287,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 46
    argCount: 11
    argNames:
    - gcm
    - outbuf
    - outlen
    - maxout
    - inbuf
    - inlen
    - params
    - paramLen
    - aad
    - aadLen
    - blocksize
    argTypes:
    - GCMContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    - void*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1289
      start: 1211
    functionDepth: 4
    functionLinenumber: 1211
    functionLinenumberEnd: 1289
    functionName: GCM_DecryptAEAD
    functionSourceFile: /src/nss/lib/freebl/gcm.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - gcm_CTR_Update
    - gcmHash_Update
    - gcm_InitCounter
    - gcm_GetTag
    - PORT_SetError
    - NSS_SecureMemcmp
    - PORT_SafeZero
    - CTR_DestroyContext
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus GCM_DecryptAEAD(GCMContext *gcm, unsigned char *outbuf,\n
      \               unsigned int *outlen, unsigned int maxout,\n                const
      unsigned char *inbuf, unsigned int inlen,\n                void *params, unsigned
      int paramLen,\n                const unsigned char *aad, unsigned int aadLen,\n
      \               unsigned int blocksize)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sysinfo
      Src: /src/nss/lib/freebl/blname.c:51,1
    - Dst: strstr
      Src: /src/nss/lib/freebl/blname.c:66,1
    - Dst: strstr
      Src: /src/nss/lib/freebl/blname.c:67,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 77
    functionName: getLibName
    functionSourceFile: /src/nss/lib/freebl/blname.c
    functionUses: 0
    functionsReached:
    - sysinfo
    - strstr
    linkageType: ''
    returnType: char
    signature: 'char *

      getLibName(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sysconf
      Src: /src/nss/lib/freebl/blname.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 92
    functionName: getLibName
    functionSourceFile: /src/nss/lib/freebl/blname.c
    functionUses: 0
    functionsReached:
    - sysconf
    linkageType: ''
    returnType: char
    signature: 'char *

      getLibName(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 99
    functionName: getLibName
    functionSourceFile: /src/nss/lib/freebl/blname.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      getLibName(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vrbitq_u8
      Src: /src/nss/lib/freebl/gcm-aarch64.c:20,1
    - Dst: vreinterpretq_u8_u64
      Src: /src/nss/lib/freebl/gcm-aarch64.c:20,1
    - Dst: vst1q_u8
      Src: /src/nss/lib/freebl/gcm-aarch64.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ghash
    - outbuf
    argTypes:
    - gcmHashContext*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 23
    functionName: gcm_HashWrite_hw
    functionSourceFile: /src/nss/lib/freebl/gcm-aarch64.c
    functionUses: 1
    functionsReached:
    - vst1q_u8
    - vrbitq_u8
    - vreinterpretq_u8_u64
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus gcm_HashWrite_hw(gcmHashContext *ghash, unsigned char *outbuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vdupq_n_p64
      Src: /src/nss/lib/freebl/gcm-aarch64.c:29,1
    - Dst: vdupq_n_u8
      Src: /src/nss/lib/freebl/gcm-aarch64.c:30,1
    - Dst: vreinterpretq_u64_u8
      Src: /src/nss/lib/freebl/gcm-aarch64.c:40,1
    - Dst: veorq_u8
      Src: /src/nss/lib/freebl/gcm-aarch64.c:40,1
    - Dst: vreinterpretq_u8_u64
      Src: /src/nss/lib/freebl/gcm-aarch64.c:40,1
    - Dst: vrbitq_u8
      Src: /src/nss/lib/freebl/gcm-aarch64.c:41,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/gcm-aarch64.c:41,1
    - Dst: vreinterpretq_u8_p128
      Src: /src/nss/lib/freebl/gcm-aarch64.c:44,1
    - Dst: vmull_p64
      Src: /src/nss/lib/freebl/gcm-aarch64.c:45,1
    - Dst: vget_low_p64
      Src: /src/nss/lib/freebl/gcm-aarch64.c:45,1
    - Dst: vreinterpretq_p64_u64
      Src: /src/nss/lib/freebl/gcm-aarch64.c:45,1
    - Dst: vget_low_p64
      Src: /src/nss/lib/freebl/gcm-aarch64.c:46,1
    - Dst: vreinterpretq_p64_u64
      Src: /src/nss/lib/freebl/gcm-aarch64.c:46,1
    - Dst: vreinterpretq_u8_p128
      Src: /src/nss/lib/freebl/gcm-aarch64.c:47,1
    - Dst: vmull_high_p64
      Src: /src/nss/lib/freebl/gcm-aarch64.c:48,1
    - Dst: vreinterpretq_p64_u64
      Src: /src/nss/lib/freebl/gcm-aarch64.c:48,1
    - Dst: vreinterpretq_p64_u64
      Src: /src/nss/lib/freebl/gcm-aarch64.c:48,1
    - Dst: vreinterpretq_p64_u8
      Src: /src/nss/lib/freebl/gcm-aarch64.c:49,1
    - Dst: vextq_u8
      Src: /src/nss/lib/freebl/gcm-aarch64.c:50,1
    - Dst: vreinterpretq_u8_u64
      Src: /src/nss/lib/freebl/gcm-aarch64.c:50,1
    - Dst: vreinterpretq_u8_u64
      Src: /src/nss/lib/freebl/gcm-aarch64.c:50,1
    - Dst: vreinterpretq_u8_p128
      Src: /src/nss/lib/freebl/gcm-aarch64.c:51,1
    - Dst: vmull_p64
      Src: /src/nss/lib/freebl/gcm-aarch64.c:52,1
    - Dst: vget_low_p64
      Src: /src/nss/lib/freebl/gcm-aarch64.c:52,1
    - Dst: vreinterpretq_p64_u64
      Src: /src/nss/lib/freebl/gcm-aarch64.c:52,1
    - Dst: vget_low_p64
      Src: /src/nss/lib/freebl/gcm-aarch64.c:53,1
    - Dst: vreinterpretq_u8_p128
      Src: /src/nss/lib/freebl/gcm-aarch64.c:54,1
    - Dst: vmull_high_p64
      Src: /src/nss/lib/freebl/gcm-aarch64.c:54,1
    - Dst: vreinterpretq_p64_u64
      Src: /src/nss/lib/freebl/gcm-aarch64.c:54,1
    - Dst: veorq_u8
      Src: /src/nss/lib/freebl/gcm-aarch64.c:55,1
    - Dst: veorq_u8
      Src: /src/nss/lib/freebl/gcm-aarch64.c:56,1
    - Dst: vextq_u8
      Src: /src/nss/lib/freebl/gcm-aarch64.c:56,1
    - Dst: veorq_u8
      Src: /src/nss/lib/freebl/gcm-aarch64.c:57,1
    - Dst: vextq_u8
      Src: /src/nss/lib/freebl/gcm-aarch64.c:57,1
    - Dst: vreinterpretq_u8_p128
      Src: /src/nss/lib/freebl/gcm-aarch64.c:60,1
    - Dst: vmull_high_p64
      Src: /src/nss/lib/freebl/gcm-aarch64.c:60,1
    - Dst: vreinterpretq_p64_u8
      Src: /src/nss/lib/freebl/gcm-aarch64.c:60,1
    - Dst: veorq_u8
      Src: /src/nss/lib/freebl/gcm-aarch64.c:61,1
    - Dst: vextq_u8
      Src: /src/nss/lib/freebl/gcm-aarch64.c:61,1
    - Dst: veorq_u8
      Src: /src/nss/lib/freebl/gcm-aarch64.c:62,1
    - Dst: vextq_u8
      Src: /src/nss/lib/freebl/gcm-aarch64.c:62,1
    - Dst: veorq_u64
      Src: /src/nss/lib/freebl/gcm-aarch64.c:63,1
    - Dst: vreinterpretq_u64_u8
      Src: /src/nss/lib/freebl/gcm-aarch64.c:63,1
    - Dst: vreinterpretq_u64_p128
      Src: /src/nss/lib/freebl/gcm-aarch64.c:64,1
    - Dst: vmull_p64
      Src: /src/nss/lib/freebl/gcm-aarch64.c:65,1
    - Dst: vget_low_p64
      Src: /src/nss/lib/freebl/gcm-aarch64.c:65,1
    - Dst: vreinterpretq_p64_u8
      Src: /src/nss/lib/freebl/gcm-aarch64.c:65,1
    - Dst: vget_low_p64
      Src: /src/nss/lib/freebl/gcm-aarch64.c:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 3
    argNames:
    - ghash
    - buf
    - count
    argTypes:
    - gcmHashContext*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 71
    functionName: gcm_HashMult_hw
    functionSourceFile: /src/nss/lib/freebl/gcm-aarch64.c
    functionUses: 0
    functionsReached:
    - vreinterpretq_u64_u8
    - vdupq_n_p64
    - vrbitq_u8
    - vmull_high_p64
    - vextq_u8
    - vreinterpretq_p64_u64
    - vld1q_u8
    - vget_low_p64
    - veorq_u64
    - veorq_u8
    - vreinterpretq_p64_u8
    - vmull_p64
    - vreinterpretq_u64_p128
    - vreinterpretq_u8_p128
    - vdupq_n_u8
    - vreinterpretq_u8_u64
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus gcm_HashMult_hw(gcmHashContext *ghash, const unsigned char
      *buf,\n                unsigned int count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vdupq_n_u64
      Src: /src/nss/lib/freebl/gcm-aarch64.c:77,1
    - Dst: vdupq_n_u64
      Src: /src/nss/lib/freebl/gcm-aarch64.c:80,1
    - Dst: vsetq_lane_u64
      Src: /src/nss/lib/freebl/gcm-aarch64.c:81,1
    - Dst: __builtin_bswap64
      Src: /src/nss/lib/freebl/gcm-aarch64.c:81,1
    - Dst: vsetq_lane_u64
      Src: /src/nss/lib/freebl/gcm-aarch64.c:82,1
    - Dst: __builtin_bswap64
      Src: /src/nss/lib/freebl/gcm-aarch64.c:82,1
    - Dst: vreinterpretq_u64_u8
      Src: /src/nss/lib/freebl/gcm-aarch64.c:83,1
    - Dst: vrbitq_u8
      Src: /src/nss/lib/freebl/gcm-aarch64.c:83,1
    - Dst: vreinterpretq_u8_u64
      Src: /src/nss/lib/freebl/gcm-aarch64.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ghash
    argTypes:
    - gcmHashContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 87
    functionName: gcm_HashInit_hw
    functionSourceFile: /src/nss/lib/freebl/gcm-aarch64.c
    functionUses: 0
    functionsReached:
    - __builtin_bswap64
    - vrbitq_u8
    - vdupq_n_u64
    - vreinterpretq_u8_u64
    - vsetq_lane_u64
    - vreinterpretq_u64_u8
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus gcm_HashInit_hw(gcmHashContext *ghash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vdupq_n_u64
      Src: /src/nss/lib/freebl/gcm-aarch64.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ghash
    argTypes:
    - gcmHashContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: gcm_HashZeroX_hw
    functionSourceFile: /src/nss/lib/freebl/gcm-aarch64.c
    functionUses: 1
    functionsReached:
    - vdupq_n_u64
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus gcm_HashZeroX_hw(gcmHashContext *ghash)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rng
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: PRNG_RESET_RESEED_COUNT
    functionSourceFile: /src/nss/lib/freebl/drbg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PRNG_RESET_RESEED_COUNT(rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rng
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: V
    functionSourceFile: /src/nss/lib/freebl/drbg.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: V(rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rng
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: VSize
    functionSourceFile: /src/nss/lib/freebl/drbg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VSize(rng)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SHA_HTONL
      Src: /src/nss/lib/freebl/drbg.c:132,1
    - Dst: SHA256_Begin
      Src: /src/nss/lib/freebl/drbg.c:136,1
    - Dst: SHA256_Update
      Src: /src/nss/lib/freebl/drbg.c:137,1
    - Dst: SHA256_Update
      Src: /src/nss/lib/freebl/drbg.c:138,1
    - Dst: SHA256_Update
      Src: /src/nss/lib/freebl/drbg.c:139,1
    - Dst: SHA256_Update
      Src: /src/nss/lib/freebl/drbg.c:141,1
    - Dst: SHA256_End
      Src: /src/nss/lib/freebl/drbg.c:143,1
    - Dst: SHA256_DestroyContext
      Src: /src/nss/lib/freebl/drbg.c:148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 6
    argNames:
    - requested_bytes
    - no_of_bytes_to_return
    - input_string_1
    - input_string_1_len
    - input_string_2
    - input_string_2_len
    argTypes:
    - PRUint8*
    - unsigned int
    - PRUint8*
    - unsigned int
    - PRUint8*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 150
    functionName: prng_Hash_df
    functionSourceFile: /src/nss/lib/freebl/drbg.c
    functionUses: 0
    functionsReached:
    - SHA_HTONL
    - SHA256_Update
    - SHA256_Begin
    - SHA256_End
    - SHA256_DestroyContext
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus prng_Hash_df(PRUint8 *requested_bytes, unsigned int no_of_bytes_to_return,\n
      \            const PRUint8 *input_string_1, unsigned int input_string_1_len,\n
      \            const PRUint8 *input_string_2, unsigned int input_string_2_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/drbg.c:166,1
    - Dst: prng_Hash_df
      Src: /src/nss/lib/freebl/drbg.c:169,1
    - Dst: V
      Src: /src/nss/lib/freebl/drbg.c:169,1
    - Dst: VSize
      Src: /src/nss/lib/freebl/drbg.c:169,1
    - Dst: prng_Hash_df
      Src: /src/nss/lib/freebl/drbg.c:171,1
    - Dst: PRNG_RESET_RESEED_COUNT
      Src: /src/nss/lib/freebl/drbg.c:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - rng
    - bytes
    - len
    argTypes:
    - RNGContext*
    - PRUint8*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 175
    functionName: prng_instantiate
    functionSourceFile: /src/nss/lib/freebl/drbg.c
    functionUses: 0
    functionsReached:
    - V
    - VSize
    - PORT_SetError
    - PRNG_RESET_RESEED_COUNT
    - prng_Hash_df
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus prng_instantiate(RNGContext *rng, const PRUint8 *bytes, unsigned
      int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RNG_SystemRNG
      Src: /src/nss/lib/freebl/drbg.c:189,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/drbg.c:193,1
    - Dst: SHA256_Begin
      Src: /src/nss/lib/freebl/drbg.c:197,1
    - Dst: SHA256_Update
      Src: /src/nss/lib/freebl/drbg.c:198,1
    - Dst: SHA256_End
      Src: /src/nss/lib/freebl/drbg.c:199,1
    - Dst: PORT_SafeZero
      Src: /src/nss/lib/freebl/drbg.c:201,1
    - Dst: SHA256_DestroyContext
      Src: /src/nss/lib/freebl/drbg.c:202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 204
    functionName: prng_initEntropy
    functionSourceFile: /src/nss/lib/freebl/drbg.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SHA256_Update
    - SHA256_Begin
    - SHA256_DestroyContext
    - RNG_SystemRNG
    - PORT_SafeZero
    - SHA256_End
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus prng_initEntropy(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PR_CallOnce
      Src: /src/nss/lib/freebl/drbg.c:215,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/drbg.c:216,1
    - Dst: RNG_SystemRNG
      Src: /src/nss/lib/freebl/drbg.c:224,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/drbg.c:229,1
    - Dst: SHA256_Begin
      Src: /src/nss/lib/freebl/drbg.c:233,1
    - Dst: SHA256_Update
      Src: /src/nss/lib/freebl/drbg.c:234,1
    - Dst: SHA256_End
      Src: /src/nss/lib/freebl/drbg.c:235,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/freebl/drbg.c:237,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/drbg.c:238,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/drbg.c:242,1
    - Dst: PR_MIN
      Src: /src/nss/lib/freebl/drbg.c:243,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/drbg.c:244,1
    - Dst: PORT_SafeZero
      Src: /src/nss/lib/freebl/drbg.c:250,1
    - Dst: PORT_SafeZero
      Src: /src/nss/lib/freebl/drbg.c:251,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 2
    argNames:
    - buffer
    - requestLength
    argTypes:
    - PRUint8*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 253
    functionName: prng_getEntropy
    functionSourceFile: /src/nss/lib/freebl/drbg.c
    functionUses: 0
    functionsReached:
    - SHA256_Begin
    - PORT_Assert
    - SHA256_Update
    - PORT_Memcpy
    - PR_MIN
    - PORT_Memcmp
    - PORT_SetError
    - RNG_SystemRNG
    - PR_CallOnce
    - PORT_SafeZero
    - SHA256_End
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus prng_getEntropy(PRUint8 *buffer, size_t requestLength)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: prng_getEntropy
      Src: /src/nss/lib/freebl/drbg.c:273,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/freebl/drbg.c:281,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/drbg.c:286,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/drbg.c:291,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/drbg.c:296,1
    - Dst: prng_Hash_df
      Src: /src/nss/lib/freebl/drbg.c:297,1
    - Dst: V
      Src: /src/nss/lib/freebl/drbg.c:297,1
    - Dst: VSize
      Src: /src/nss/lib/freebl/drbg.c:297,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/drbg.c:300,1
    - Dst: prng_Hash_df
      Src: /src/nss/lib/freebl/drbg.c:302,1
    - Dst: PRNG_RESET_RESEED_COUNT
      Src: /src/nss/lib/freebl/drbg.c:304,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/drbg.c:307,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 5
    argNames:
    - rng
    - entropy
    - entropy_len
    - additional_input
    - additional_input_len
    argTypes:
    - RNGContext*
    - PRUint8*
    - unsigned int
    - PRUint8*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 262
    functionDepth: 2
    functionLinenumber: 262
    functionLinenumberEnd: 310
    functionName: prng_reseed
    functionSourceFile: /src/nss/lib/freebl/drbg.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_Memcpy
    - V
    - prng_getEntropy
    - PORT_Free
    - VSize
    - PORT_SetError
    - PRNG_RESET_RESEED_COUNT
    - prng_Hash_df
    - PORT_Memset
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus prng_reseed(RNGContext *rng, const PRUint8 *entropy, unsigned
      int entropy_len,\n            const PRUint8 *additional_input, unsigned int
      additional_input_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PRNGTEST_RunHealthTests
      Src: /src/nss/lib/freebl/drbg.c:323,1
    - Dst: prng_reseed
      Src: /src/nss/lib/freebl/drbg.c:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - rng
    - entropy
    - entropy_len
    - additional_input
    - additional_input_len
    argTypes:
    - RNGContext*
    - PRUint8*
    - unsigned int
    - PRUint8*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 315
    functionDepth: 3
    functionLinenumber: 315
    functionLinenumberEnd: 331
    functionName: prng_reseed_test
    functionSourceFile: /src/nss/lib/freebl/drbg.c
    functionUses: 0
    functionsReached:
    - PRNGTEST_RunHealthTests
    - prng_reseed
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus prng_reseed_test(RNGContext *rng, const PRUint8 *entropy,\n
      \                unsigned int entropy_len, const PRUint8 *additional_input,\n
      \                unsigned int additional_input_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dest
    - ','
    - start
    - ','
    - carry
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 343
    functionName: PRNG_ADD_CARRY_ONLY
    functionSourceFile: /src/nss/lib/freebl/drbg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PRNG_ADD_CARRY_ONLY(dest, start, carry)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - dest
    - ','
    - dest_len
    - ','
    - add
    - ','
    - len
    - ','
    - carry
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 358
    functionName: PRNG_ADD_BITS
    functionSourceFile: /src/nss/lib/freebl/drbg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PRNG_ADD_BITS(dest, dest_len, add, len, carry)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - dest
    - ','
    - dest_len
    - ','
    - add
    - ','
    - len
    - ','
    - carry
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 362
    functionName: PRNG_ADD_BITS_AND_CARRY
    functionSourceFile: /src/nss/lib/freebl/drbg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PRNG_ADD_BITS_AND_CARRY(dest, dest_len, add, len, carry)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VSize
      Src: /src/nss/lib/freebl/drbg.c:374,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/drbg.c:377,1
    - Dst: V
      Src: /src/nss/lib/freebl/drbg.c:377,1
    - Dst: VSize
      Src: /src/nss/lib/freebl/drbg.c:377,1
    - Dst: SHA256_Begin
      Src: /src/nss/lib/freebl/drbg.c:383,1
    - Dst: SHA256_Update
      Src: /src/nss/lib/freebl/drbg.c:384,1
    - Dst: SHA256_End
      Src: /src/nss/lib/freebl/drbg.c:385,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/drbg.c:389,1
    - Dst: PRNG_ADD_CARRY_ONLY
      Src: /src/nss/lib/freebl/drbg.c:395,1
    - Dst: SHA256_DestroyContext
      Src: /src/nss/lib/freebl/drbg.c:396,1
    - Dst: PORT_SafeZero
      Src: /src/nss/lib/freebl/drbg.c:398,1
    - Dst: PORT_SafeZero
      Src: /src/nss/lib/freebl/drbg.c:399,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - rng
    - returned_bytes
    - no_of_returned_bytes
    argTypes:
    - RNGContext*
    - PRUint8*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 400
    functionName: prng_Hashgen
    functionSourceFile: /src/nss/lib/freebl/drbg.c
    functionUses: 0
    functionsReached:
    - SHA256_Begin
    - SHA256_Update
    - PORT_Memcpy
    - V
    - SHA256_DestroyContext
    - VSize
    - PRNG_ADD_CARRY_ONLY
    - PORT_SafeZero
    - SHA256_End
    linkageType: ''
    returnType: void
    signature: "void prng_Hashgen(RNGContext *rng, PRUint8 *returned_bytes,\n             unsigned
      int no_of_returned_bytes)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/drbg.c:419,1
    - Dst: SHA256_Begin
      Src: /src/nss/lib/freebl/drbg.c:433,1
    - Dst: SHA256_Update
      Src: /src/nss/lib/freebl/drbg.c:434,1
    - Dst: SHA256_Update
      Src: /src/nss/lib/freebl/drbg.c:435,1
    - Dst: SHA256_End
      Src: /src/nss/lib/freebl/drbg.c:436,1
    - Dst: PRNG_ADD_BITS_AND_CARRY
      Src: /src/nss/lib/freebl/drbg.c:437,1
    - Dst: V
      Src: /src/nss/lib/freebl/drbg.c:437,1
    - Dst: VSize
      Src: /src/nss/lib/freebl/drbg.c:437,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/drbg.c:438,1
    - Dst: SHA256_DestroyContext
      Src: /src/nss/lib/freebl/drbg.c:439,1
    - Dst: SHA256_HashBuf
      Src: /src/nss/lib/freebl/drbg.c:445,1
    - Dst: V
      Src: /src/nss/lib/freebl/drbg.c:445,1
    - Dst: VSize
      Src: /src/nss/lib/freebl/drbg.c:445,1
    - Dst: prng_Hashgen
      Src: /src/nss/lib/freebl/drbg.c:447,1
    - Dst: SHA256_HashBuf
      Src: /src/nss/lib/freebl/drbg.c:451,1
    - Dst: PRNG_ADD_BITS_AND_CARRY
      Src: /src/nss/lib/freebl/drbg.c:452,1
    - Dst: V
      Src: /src/nss/lib/freebl/drbg.c:452,1
    - Dst: VSize
      Src: /src/nss/lib/freebl/drbg.c:452,1
    - Dst: PRNG_ADD_BITS
      Src: /src/nss/lib/freebl/drbg.c:453,1
    - Dst: V
      Src: /src/nss/lib/freebl/drbg.c:453,1
    - Dst: VSize
      Src: /src/nss/lib/freebl/drbg.c:453,1
    - Dst: PRNG_ADD_BITS_AND_CARRY
      Src: /src/nss/lib/freebl/drbg.c:454,1
    - Dst: V
      Src: /src/nss/lib/freebl/drbg.c:454,1
    - Dst: VSize
      Src: /src/nss/lib/freebl/drbg.c:454,1
    - Dst: PRNG_ADD_CARRY_ONLY
      Src: /src/nss/lib/freebl/drbg.c:457,1
    - Dst: PORT_SafeZero
      Src: /src/nss/lib/freebl/drbg.c:460,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/drbg.c:462,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/drbg.c:463,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 5
    argNames:
    - rng
    - returned_bytes
    - no_of_returned_bytes
    - additional_input
    - additional_input_len
    argTypes:
    - RNGContext*
    - PRUint8*
    - unsigned int
    - PRUint8*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 408
    functionDepth: 2
    functionLinenumber: 408
    functionLinenumberEnd: 467
    functionName: prng_generateNewBytes
    functionSourceFile: /src/nss/lib/freebl/drbg.c
    functionUses: 0
    functionsReached:
    - SHA256_Begin
    - SHA256_Update
    - PRNG_ADD_BITS
    - V
    - SHA256_HashBuf
    - SHA256_DestroyContext
    - VSize
    - PORT_SetError
    - PRNG_ADD_CARRY_ONLY
    - PORT_Memset
    - PORT_SafeZero
    - SHA256_End
    - prng_Hashgen
    - PRNG_ADD_BITS_AND_CARRY
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus prng_generateNewBytes(RNGContext *rng,\n                      PRUint8
      *returned_bytes, unsigned int no_of_returned_bytes,\n                      const
      PRUint8 *additional_input,\n                      unsigned int additional_input_len)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PR_STATIC_ASSERT
      Src: /src/nss/lib/freebl/drbg.c:483,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/drbg.c:486,1
    - Dst: PZ_NewLock
      Src: /src/nss/lib/freebl/drbg.c:488,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/drbg.c:491,1
    - Dst: prng_getEntropy
      Src: /src/nss/lib/freebl/drbg.c:496,1
    - Dst: V
      Src: /src/nss/lib/freebl/drbg.c:501,1
    - Dst: prng_instantiate
      Src: /src/nss/lib/freebl/drbg.c:502,1
    - Dst: prng_reseed_test
      Src: /src/nss/lib/freebl/drbg.c:504,1
    - Dst: memset
      Src: /src/nss/lib/freebl/drbg.c:506,1
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/freebl/drbg.c:508,1
    - Dst: prng_generateNewBytes
      Src: /src/nss/lib/freebl/drbg.c:523,1
    - Dst: RNG_SystemInfoForRNG
      Src: /src/nss/lib/freebl/drbg.c:526,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 474
    functionDepth: 4
    functionLinenumber: 474
    functionLinenumberEnd: 529
    functionName: rng_init
    functionSourceFile: /src/nss/lib/freebl/drbg.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - V
    - prng_instantiate
    - prng_getEntropy
    - RNG_SystemInfoForRNG
    - memset
    - PORT_SetError
    - prng_reseed_test
    - prng_generateNewBytes
    - PZ_DestroyLock
    - PZ_NewLock
    - PR_STATIC_ASSERT
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus rng_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VSize
      Src: /src/nss/lib/freebl/drbg.c:537,1
    - Dst: SKIP_AFTER_FORK
      Src: /src/nss/lib/freebl/drbg.c:540,1
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/freebl/drbg.c:540,1
    - Dst: prng_Hash_df
      Src: /src/nss/lib/freebl/drbg.c:543,1
    - Dst: prng_Hash_df
      Src: /src/nss/lib/freebl/drbg.c:544,1
    - Dst: VSize
      Src: /src/nss/lib/freebl/drbg.c:544,1
    - Dst: V
      Src: /src/nss/lib/freebl/drbg.c:544,1
    - Dst: VSize
      Src: /src/nss/lib/freebl/drbg.c:544,1
    - Dst: memset
      Src: /src/nss/lib/freebl/drbg.c:546,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/drbg.c:547,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/drbg.c:548,1
    - Dst: V
      Src: /src/nss/lib/freebl/drbg.c:548,1
    - Dst: VSize
      Src: /src/nss/lib/freebl/drbg.c:548,1
    - Dst: memset
      Src: /src/nss/lib/freebl/drbg.c:550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - rng
    argTypes:
    - RNGContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 534
    functionDepth: 1
    functionLinenumber: 534
    functionLinenumberEnd: 551
    functionName: prng_freeRNGContext
    functionSourceFile: /src/nss/lib/freebl/drbg.c
    functionUses: 0
    functionsReached:
    - memcpy
    - SKIP_AFTER_FORK
    - V
    - VSize
    - memset
    - prng_Hash_df
    - PZ_DestroyLock
    linkageType: ''
    returnType: void
    signature: void prng_freeRNGContext(RNGContext *rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_CallOnce
      Src: /src/nss/lib/freebl/drbg.c:570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 566
    functionDepth: 1
    functionLinenumber: 566
    functionLinenumberEnd: 573
    functionName: RNG_RNGInit
    functionSourceFile: /src/nss/lib/freebl/drbg.c
    functionUses: 5
    functionsReached:
    - PR_CallOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus RNG_RNGInit(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PR_STATIC_ASSERT
      Src: /src/nss/lib/freebl/drbg.c:585,1
    - Dst: PR_STATIC_ASSERT
      Src: /src/nss/lib/freebl/drbg.c:611,1
    - Dst: PR_STATIC_ASSERT
      Src: /src/nss/lib/freebl/drbg.c:617,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/freebl/drbg.c:620,1
    - Dst: prng_reseed_test
      Src: /src/nss/lib/freebl/drbg.c:624,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/drbg.c:627,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/drbg.c:640,1
    - Dst: prng_reseed_test
      Src: /src/nss/lib/freebl/drbg.c:646,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/drbg.c:651,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/freebl/drbg.c:655,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - data
    - bytes
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 579
    functionDepth: 4
    functionLinenumber: 579
    functionLinenumberEnd: 657
    functionName: RNG_RandomUpdate
    functionSourceFile: /src/nss/lib/freebl/drbg.c
    functionUses: 2
    functionsReached:
    - PORT_Memcpy
    - PZ_Unlock
    - PZ_Lock
    - prng_reseed_test
    - PR_STATIC_ASSERT
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus RNG_RandomUpdate(const void *data, size_t bytes)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/drbg.c:670,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/drbg.c:672,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/drbg.c:677,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/freebl/drbg.c:681,1
    - Dst: prng_reseed_test
      Src: /src/nss/lib/freebl/drbg.c:686,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/freebl/drbg.c:687,1
    - Dst: RNG_SystemInfoForRNG
      Src: /src/nss/lib/freebl/drbg.c:691,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/freebl/drbg.c:692,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/drbg.c:698,1
    - Dst: memset
      Src: /src/nss/lib/freebl/drbg.c:699,1
    - Dst: prng_generateNewBytes
      Src: /src/nss/lib/freebl/drbg.c:705,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/drbg.c:710,1
    - Dst: memset
      Src: /src/nss/lib/freebl/drbg.c:711,1
    - Dst: prng_generateNewBytes
      Src: /src/nss/lib/freebl/drbg.c:716,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/freebl/drbg.c:721,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 40
    argCount: 3
    argNames:
    - rng
    - dest
    - len
    argTypes:
    - RNGContext*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 663
    functionDepth: 4
    functionLinenumber: 663
    functionLinenumberEnd: 724
    functionName: prng_GenerateGlobalRandomBytes
    functionSourceFile: /src/nss/lib/freebl/drbg.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - memcpy
    - RNG_SystemInfoForRNG
    - PZ_Unlock
    - memset
    - PORT_SetError
    - PZ_Lock
    - prng_reseed_test
    - prng_generateNewBytes
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus prng_GenerateGlobalRandomBytes(RNGContext *rng,\n                               void
      *dest, size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: prng_GenerateGlobalRandomBytes
      Src: /src/nss/lib/freebl/drbg.c:733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dest
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 730
    functionDepth: 5
    functionLinenumber: 730
    functionLinenumberEnd: 734
    functionName: RNG_GenerateGlobalRandomBytes
    functionSourceFile: /src/nss/lib/freebl/drbg.c
    functionUses: 9
    functionsReached:
    - prng_GenerateGlobalRandomBytes
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus RNG_GenerateGlobalRandomBytes(void *dest, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/drbg.c:740,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/drbg.c:743,1
    - Dst: prng_freeRNGContext
      Src: /src/nss/lib/freebl/drbg.c:747,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 736
    functionDepth: 2
    functionLinenumber: 736
    functionLinenumberEnd: 751
    functionName: RNG_RNGShutdown
    functionSourceFile: /src/nss/lib/freebl/drbg.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - prng_freeRNGContext
    linkageType: ''
    returnType: void
    signature: void RNG_RNGShutdown(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRNGTEST_Instantiate
      Src: /src/nss/lib/freebl/drbg.c:767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - entropy
    - entropy_len
    - nonce
    - nonce_len
    - personal_string
    - ps_len
    argTypes:
    - PRUint8*
    - unsigned int
    - PRUint8*
    - unsigned int
    - PRUint8*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 761
    functionDepth: 0
    functionLinenumber: 761
    functionLinenumberEnd: 770
    functionName: PRNGTEST_Instantiate_Kat
    functionSourceFile: /src/nss/lib/freebl/drbg.c
    functionUses: 0
    functionsReached:
    - PRNGTEST_Instantiate
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PRNGTEST_Instantiate_Kat(const PRUint8 *entropy, unsigned
      int entropy_len,\n                         const PRUint8 *nonce, unsigned int
      nonce_len,\n                         const PRUint8 *personal_string, unsigned
      int ps_len)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/drbg.c:786,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/freebl/drbg.c:790,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/drbg.c:792,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/drbg.c:797,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/drbg.c:799,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/drbg.c:801,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/drbg.c:804,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/drbg.c:806,1
    - Dst: prng_instantiate
      Src: /src/nss/lib/freebl/drbg.c:808,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/freebl/drbg.c:809,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 6
    argNames:
    - entropy
    - entropy_len
    - nonce
    - nonce_len
    - personal_string
    - ps_len
    argTypes:
    - PRUint8*
    - unsigned int
    - PRUint8*
    - unsigned int
    - PRUint8*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 776
    functionDepth: 2
    functionLinenumber: 776
    functionLinenumberEnd: 815
    functionName: PRNGTEST_Instantiate
    functionSourceFile: /src/nss/lib/freebl/drbg.c
    functionUses: 2
    functionsReached:
    - PORT_Alloc
    - PORT_Assert
    - PORT_ZFree
    - prng_instantiate
    - PORT_Memcpy
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PRNGTEST_Instantiate(const PRUint8 *entropy, unsigned int
      entropy_len,\n                     const PRUint8 *nonce, unsigned int nonce_len,\n
      \                    const PRUint8 *personal_string, unsigned int ps_len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/drbg.c:822,1
    - Dst: prng_reseed
      Src: /src/nss/lib/freebl/drbg.c:832,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 4
    argNames:
    - entropy
    - entropy_len
    - additional
    - additional_len
    argTypes:
    - PRUint8*
    - unsigned int
    - PRUint8*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 817
    functionDepth: 3
    functionLinenumber: 817
    functionLinenumberEnd: 834
    functionName: PRNGTEST_Reseed
    functionSourceFile: /src/nss/lib/freebl/drbg.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    - prng_reseed
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PRNGTEST_Reseed(const PRUint8 *entropy, unsigned int entropy_len,\n
      \               const PRUint8 *additional, unsigned int additional_len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/drbg.c:842,1
    - Dst: prng_reseed
      Src: /src/nss/lib/freebl/drbg.c:847,1
    - Dst: prng_generateNewBytes
      Src: /src/nss/lib/freebl/drbg.c:852,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - bytes
    - bytes_len
    - additional
    - additional_len
    argTypes:
    - PRUint8*
    - unsigned int
    - PRUint8*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 836
    functionDepth: 3
    functionLinenumber: 836
    functionLinenumberEnd: 854
    functionName: PRNGTEST_Generate
    functionSourceFile: /src/nss/lib/freebl/drbg.c
    functionUses: 1
    functionsReached:
    - prng_generateNewBytes
    - PORT_SetError
    - prng_reseed
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PRNGTEST_Generate(PRUint8 *bytes, unsigned int bytes_len,\n
      \                 const PRUint8 *additional, unsigned int additional_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/drbg.c:860,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/drbg.c:863,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 856
    functionDepth: 0
    functionLinenumber: 856
    functionLinenumberEnd: 865
    functionName: PRNGTEST_Uninstantiate
    functionSourceFile: /src/nss/lib/freebl/drbg.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    - PORT_Memset
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PRNGTEST_Uninstantiate()
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PR_STATIC_ASSERT
      Src: /src/nss/lib/freebl/drbg.c:923,1
    - Dst: PRNGTEST_Instantiate
      Src: /src/nss/lib/freebl/drbg.c:933,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/drbg.c:936,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/freebl/drbg.c:939,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/drbg.c:940,1
    - Dst: PRNGTEST_Instantiate
      Src: /src/nss/lib/freebl/drbg.c:948,1
    - Dst: PRNGTEST_Generate
      Src: /src/nss/lib/freebl/drbg.c:954,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/freebl/drbg.c:956,1
    - Dst: PRNGTEST_Uninstantiate
      Src: /src/nss/lib/freebl/drbg.c:958,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/drbg.c:959,1
    - Dst: PRNGTEST_Reseed
      Src: /src/nss/lib/freebl/drbg.c:962,1
    - Dst: PRNGTEST_Uninstantiate
      Src: /src/nss/lib/freebl/drbg.c:966,1
    - Dst: PRNGTEST_Generate
      Src: /src/nss/lib/freebl/drbg.c:969,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/freebl/drbg.c:971,1
    - Dst: PRNGTEST_Uninstantiate
      Src: /src/nss/lib/freebl/drbg.c:973,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/drbg.c:974,1
    - Dst: PRNGTEST_Reseed
      Src: /src/nss/lib/freebl/drbg.c:979,1
    - Dst: PRNGTEST_Uninstantiate
      Src: /src/nss/lib/freebl/drbg.c:981,1
    - Dst: PRNGTEST_Generate
      Src: /src/nss/lib/freebl/drbg.c:986,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/freebl/drbg.c:991,1
    - Dst: PRNGTEST_Uninstantiate
      Src: /src/nss/lib/freebl/drbg.c:993,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/drbg.c:994,1
    - Dst: PRNGTEST_Reseed
      Src: /src/nss/lib/freebl/drbg.c:998,1
    - Dst: PRNGTEST_Uninstantiate
      Src: /src/nss/lib/freebl/drbg.c:1000,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/drbg.c:1001,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/freebl/drbg.c:1004,1
    - Dst: PRNGTEST_Uninstantiate
      Src: /src/nss/lib/freebl/drbg.c:1005,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/drbg.c:1006,1
    - Dst: PRNGTEST_Uninstantiate
      Src: /src/nss/lib/freebl/drbg.c:1009,1
    - Dst: PRNGTEST_Uninstantiate
      Src: /src/nss/lib/freebl/drbg.c:1016,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/drbg.c:1018,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/freebl/drbg.c:1021,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 67
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 867
    functionDepth: 1
    functionLinenumber: 867
    functionLinenumberEnd: 1026
    functionName: PRNGTEST_RunHealthTests
    functionSourceFile: /src/nss/lib/freebl/drbg.c
    functionUses: 1
    functionsReached:
    - PRNGTEST_Reseed
    - PORT_Memcmp
    - PORT_GetError
    - PRNGTEST_Uninstantiate
    - PRNGTEST_Instantiate
    - PORT_SetError
    - PRNGTEST_Generate
    - PR_STATIC_ASSERT
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PRNGTEST_RunHealthTests()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:38,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:39,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:40,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:41,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:42,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:43,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:44,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:45,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:46,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:47,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:48,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:53,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/aes-armv8.c:56,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:57,1
    - Dst: __builtin_assume_aligned
      Src: /src/nss/lib/freebl/aes-armv8.c:57,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:59,1
    - Dst: __builtin_assume_aligned
      Src: /src/nss/lib/freebl/aes-armv8.c:59,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:66,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:67,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:68,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:69,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:70,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:71,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:72,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:73,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:74,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:75,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:76,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:77,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:78,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:79,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:80,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:81,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:82,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:83,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:84,1
    - Dst: veorq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:86,1
    - Dst: vst1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:89,1
    - Dst: vst1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:92,1
    - Dst: __builtin_assume_aligned
      Src: /src/nss/lib/freebl/aes-armv8.c:92,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/aes-armv8.c:93,1
    - Dst: vst1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:95,1
    - Dst: __builtin_assume_aligned
      Src: /src/nss/lib/freebl/aes-armv8.c:95,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 55
    argCount: 7
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    - blocksize
    argTypes:
    - AESContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 102
    functionName: arm_aes_encrypt_ecb_128
    functionSourceFile: /src/nss/lib/freebl/aes-armv8.c
    functionUses: 0
    functionsReached:
    - vaesmcq_u8
    - vaeseq_u8
    - memcpy
    - vld1q_u8
    - veorq_u8
    - vst1q_u8
    - __builtin_assume_aligned
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus arm_aes_encrypt_ecb_128(AESContext *cx, unsigned char *output,\n
      \                       unsigned int *outputLen,\n                        unsigned
      int maxOutputLen,\n                        const unsigned char *input,\n                        unsigned
      int inputLen,\n                        unsigned int blocksize)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:123,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:124,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:125,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:126,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:127,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:128,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:129,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:130,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:131,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:132,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:133,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:138,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/aes-armv8.c:141,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:142,1
    - Dst: __builtin_assume_aligned
      Src: /src/nss/lib/freebl/aes-armv8.c:142,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:144,1
    - Dst: __builtin_assume_aligned
      Src: /src/nss/lib/freebl/aes-armv8.c:144,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:151,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:152,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:153,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:154,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:155,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:156,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:157,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:158,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:159,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:160,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:161,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:162,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:163,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:164,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:165,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:166,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:167,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:168,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:169,1
    - Dst: veorq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:171,1
    - Dst: vst1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:174,1
    - Dst: vst1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:177,1
    - Dst: __builtin_assume_aligned
      Src: /src/nss/lib/freebl/aes-armv8.c:177,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/aes-armv8.c:178,1
    - Dst: vst1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:180,1
    - Dst: __builtin_assume_aligned
      Src: /src/nss/lib/freebl/aes-armv8.c:180,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 55
    argCount: 7
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    - blocksize
    argTypes:
    - AESContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 187
    functionName: arm_aes_decrypt_ecb_128
    functionSourceFile: /src/nss/lib/freebl/aes-armv8.c
    functionUses: 0
    functionsReached:
    - memcpy
    - vld1q_u8
    - vaesimcq_u8
    - veorq_u8
    - vaesdq_u8
    - vst1q_u8
    - __builtin_assume_aligned
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus arm_aes_decrypt_ecb_128(AESContext *cx, unsigned char *output,\n
      \                       unsigned int *outputLen,\n                        unsigned
      int maxOutputLen,\n                        const unsigned char *input,\n                        unsigned
      int inputLen,\n                        unsigned int blocksize)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:210,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:213,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:214,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:215,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:216,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:217,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:218,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:219,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:220,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:221,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:222,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:223,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:228,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/aes-armv8.c:231,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:232,1
    - Dst: __builtin_assume_aligned
      Src: /src/nss/lib/freebl/aes-armv8.c:232,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:234,1
    - Dst: __builtin_assume_aligned
      Src: /src/nss/lib/freebl/aes-armv8.c:234,1
    - Dst: veorq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:240,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:243,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:244,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:245,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:246,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:247,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:248,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:249,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:250,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:251,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:252,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:253,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:254,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:255,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:256,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:257,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:258,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:259,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:260,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:261,1
    - Dst: veorq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:263,1
    - Dst: vst1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:266,1
    - Dst: vst1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:269,1
    - Dst: __builtin_assume_aligned
      Src: /src/nss/lib/freebl/aes-armv8.c:269,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/aes-armv8.c:270,1
    - Dst: vst1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:272,1
    - Dst: __builtin_assume_aligned
      Src: /src/nss/lib/freebl/aes-armv8.c:272,1
    - Dst: vst1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:278,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 59
    argCount: 7
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    - blocksize
    argTypes:
    - AESContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 281
    functionName: arm_aes_encrypt_cbc_128
    functionSourceFile: /src/nss/lib/freebl/aes-armv8.c
    functionUses: 0
    functionsReached:
    - vaesmcq_u8
    - vaeseq_u8
    - memcpy
    - vld1q_u8
    - veorq_u8
    - vst1q_u8
    - __builtin_assume_aligned
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus arm_aes_encrypt_cbc_128(AESContext *cx, unsigned char *output,\n
      \                       unsigned int *outputLen,\n                        unsigned
      int maxOutputLen,\n                        const unsigned char *input,\n                        unsigned
      int inputLen,\n                        unsigned int blocksize)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:304,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:307,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:308,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:309,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:310,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:311,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:312,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:313,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:314,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:315,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:316,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:317,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:322,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/aes-armv8.c:325,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:326,1
    - Dst: __builtin_assume_aligned
      Src: /src/nss/lib/freebl/aes-armv8.c:326,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:328,1
    - Dst: __builtin_assume_aligned
      Src: /src/nss/lib/freebl/aes-armv8.c:328,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:336,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:337,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:338,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:339,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:340,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:341,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:342,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:343,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:344,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:345,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:346,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:347,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:348,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:349,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:350,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:351,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:352,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:353,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:354,1
    - Dst: veorq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:356,1
    - Dst: veorq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:358,1
    - Dst: vst1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:361,1
    - Dst: vst1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:364,1
    - Dst: __builtin_assume_aligned
      Src: /src/nss/lib/freebl/aes-armv8.c:364,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/aes-armv8.c:365,1
    - Dst: vst1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:367,1
    - Dst: __builtin_assume_aligned
      Src: /src/nss/lib/freebl/aes-armv8.c:367,1
    - Dst: vst1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:374,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 60
    argCount: 7
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    - blocksize
    argTypes:
    - AESContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 377
    functionName: arm_aes_decrypt_cbc_128
    functionSourceFile: /src/nss/lib/freebl/aes-armv8.c
    functionUses: 0
    functionsReached:
    - memcpy
    - vld1q_u8
    - vaesimcq_u8
    - veorq_u8
    - vaesdq_u8
    - vst1q_u8
    - __builtin_assume_aligned
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus arm_aes_decrypt_cbc_128(AESContext *cx, unsigned char *output,\n
      \                       unsigned int *outputLen,\n                        unsigned
      int maxOutputLen,\n                        const unsigned char *input,\n                        unsigned
      int inputLen,\n                        unsigned int blocksize)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:398,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:399,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:400,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:401,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:402,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:403,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:404,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:405,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:406,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:407,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:408,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:409,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:410,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:415,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/aes-armv8.c:418,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:419,1
    - Dst: __builtin_assume_aligned
      Src: /src/nss/lib/freebl/aes-armv8.c:419,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:421,1
    - Dst: __builtin_assume_aligned
      Src: /src/nss/lib/freebl/aes-armv8.c:421,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:428,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:429,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:430,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:431,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:432,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:433,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:434,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:435,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:436,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:437,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:438,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:439,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:440,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:441,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:442,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:443,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:444,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:445,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:446,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:447,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:448,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:449,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:450,1
    - Dst: veorq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:452,1
    - Dst: vst1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:455,1
    - Dst: vst1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:458,1
    - Dst: __builtin_assume_aligned
      Src: /src/nss/lib/freebl/aes-armv8.c:458,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/aes-armv8.c:459,1
    - Dst: vst1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:461,1
    - Dst: __builtin_assume_aligned
      Src: /src/nss/lib/freebl/aes-armv8.c:461,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 61
    argCount: 7
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    - blocksize
    argTypes:
    - AESContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 468
    functionName: arm_aes_encrypt_ecb_192
    functionSourceFile: /src/nss/lib/freebl/aes-armv8.c
    functionUses: 0
    functionsReached:
    - vaesmcq_u8
    - vaeseq_u8
    - memcpy
    - vld1q_u8
    - veorq_u8
    - vst1q_u8
    - __builtin_assume_aligned
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus arm_aes_encrypt_ecb_192(AESContext *cx, unsigned char *output,\n
      \                       unsigned int *outputLen,\n                        unsigned
      int maxOutputLen,\n                        const unsigned char *input,\n                        unsigned
      int inputLen,\n                        unsigned int blocksize)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:489,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:490,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:491,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:492,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:493,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:494,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:495,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:496,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:497,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:498,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:499,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:500,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:501,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:506,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/aes-armv8.c:509,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:510,1
    - Dst: __builtin_assume_aligned
      Src: /src/nss/lib/freebl/aes-armv8.c:510,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:512,1
    - Dst: __builtin_assume_aligned
      Src: /src/nss/lib/freebl/aes-armv8.c:512,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:519,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:520,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:521,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:522,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:523,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:524,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:525,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:526,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:527,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:528,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:529,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:530,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:531,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:532,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:533,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:534,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:535,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:536,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:537,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:538,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:539,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:540,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:541,1
    - Dst: veorq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:543,1
    - Dst: vst1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:546,1
    - Dst: vst1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:549,1
    - Dst: __builtin_assume_aligned
      Src: /src/nss/lib/freebl/aes-armv8.c:549,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/aes-armv8.c:550,1
    - Dst: vst1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:552,1
    - Dst: __builtin_assume_aligned
      Src: /src/nss/lib/freebl/aes-armv8.c:552,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 61
    argCount: 7
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    - blocksize
    argTypes:
    - AESContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 559
    functionName: arm_aes_decrypt_ecb_192
    functionSourceFile: /src/nss/lib/freebl/aes-armv8.c
    functionUses: 0
    functionsReached:
    - memcpy
    - vld1q_u8
    - vaesimcq_u8
    - veorq_u8
    - vaesdq_u8
    - vst1q_u8
    - __builtin_assume_aligned
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus arm_aes_decrypt_ecb_192(AESContext *cx, unsigned char *output,\n
      \                       unsigned int *outputLen,\n                        unsigned
      int maxOutputLen,\n                        const unsigned char *input,\n                        unsigned
      int inputLen,\n                        unsigned int blocksize)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:582,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:585,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:586,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:587,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:588,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:589,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:590,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:591,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:592,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:593,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:594,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:595,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:596,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:597,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:602,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/aes-armv8.c:605,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:606,1
    - Dst: __builtin_assume_aligned
      Src: /src/nss/lib/freebl/aes-armv8.c:606,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:608,1
    - Dst: __builtin_assume_aligned
      Src: /src/nss/lib/freebl/aes-armv8.c:608,1
    - Dst: veorq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:614,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:617,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:618,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:619,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:620,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:621,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:622,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:623,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:624,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:625,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:626,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:627,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:628,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:629,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:630,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:631,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:632,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:633,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:634,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:635,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:636,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:637,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:638,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:639,1
    - Dst: veorq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:640,1
    - Dst: vst1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:643,1
    - Dst: vst1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:646,1
    - Dst: __builtin_assume_aligned
      Src: /src/nss/lib/freebl/aes-armv8.c:646,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/aes-armv8.c:647,1
    - Dst: vst1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:649,1
    - Dst: __builtin_assume_aligned
      Src: /src/nss/lib/freebl/aes-armv8.c:649,1
    - Dst: vst1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:655,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 65
    argCount: 7
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    - blocksize
    argTypes:
    - AESContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 561
    functionDepth: 1
    functionLinenumber: 561
    functionLinenumberEnd: 658
    functionName: arm_aes_encrypt_cbc_192
    functionSourceFile: /src/nss/lib/freebl/aes-armv8.c
    functionUses: 0
    functionsReached:
    - vaesmcq_u8
    - vaeseq_u8
    - memcpy
    - vld1q_u8
    - veorq_u8
    - vst1q_u8
    - __builtin_assume_aligned
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus arm_aes_encrypt_cbc_192(AESContext *cx, unsigned char *output,\n
      \                       unsigned int *outputLen,\n                        unsigned
      int maxOutputLen,\n                        const unsigned char *input,\n                        unsigned
      int inputLen,\n                        unsigned int blocksize)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:681,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:684,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:685,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:686,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:687,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:688,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:689,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:690,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:691,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:692,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:693,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:694,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:695,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:696,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:701,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/aes-armv8.c:704,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:705,1
    - Dst: __builtin_assume_aligned
      Src: /src/nss/lib/freebl/aes-armv8.c:705,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:707,1
    - Dst: __builtin_assume_aligned
      Src: /src/nss/lib/freebl/aes-armv8.c:707,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:715,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:716,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:717,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:718,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:719,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:720,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:721,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:722,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:723,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:724,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:725,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:726,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:727,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:728,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:729,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:730,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:731,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:732,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:733,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:734,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:735,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:736,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:737,1
    - Dst: veorq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:739,1
    - Dst: veorq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:741,1
    - Dst: vst1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:744,1
    - Dst: vst1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:747,1
    - Dst: __builtin_assume_aligned
      Src: /src/nss/lib/freebl/aes-armv8.c:747,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/aes-armv8.c:748,1
    - Dst: vst1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:750,1
    - Dst: __builtin_assume_aligned
      Src: /src/nss/lib/freebl/aes-armv8.c:750,1
    - Dst: vst1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:757,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 66
    argCount: 7
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    - blocksize
    argTypes:
    - AESContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 660
    functionDepth: 1
    functionLinenumber: 660
    functionLinenumberEnd: 760
    functionName: arm_aes_decrypt_cbc_192
    functionSourceFile: /src/nss/lib/freebl/aes-armv8.c
    functionUses: 0
    functionsReached:
    - memcpy
    - vld1q_u8
    - vaesimcq_u8
    - veorq_u8
    - vaesdq_u8
    - vst1q_u8
    - __builtin_assume_aligned
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus arm_aes_decrypt_cbc_192(AESContext *cx, unsigned char *output,\n
      \                       unsigned int *outputLen,\n                        unsigned
      int maxOutputLen,\n                        const unsigned char *input,\n                        unsigned
      int inputLen,\n                        unsigned int blocksize)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:781,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:782,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:783,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:784,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:785,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:786,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:787,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:788,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:789,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:790,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:791,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:792,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:793,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:794,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:795,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:800,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/aes-armv8.c:803,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:804,1
    - Dst: __builtin_assume_aligned
      Src: /src/nss/lib/freebl/aes-armv8.c:804,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:806,1
    - Dst: __builtin_assume_aligned
      Src: /src/nss/lib/freebl/aes-armv8.c:806,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:813,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:814,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:815,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:816,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:817,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:818,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:819,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:820,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:821,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:822,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:823,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:824,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:825,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:826,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:827,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:828,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:829,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:830,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:831,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:832,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:833,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:834,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:835,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:836,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:837,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:838,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:839,1
    - Dst: veorq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:841,1
    - Dst: vst1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:844,1
    - Dst: vst1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:847,1
    - Dst: __builtin_assume_aligned
      Src: /src/nss/lib/freebl/aes-armv8.c:847,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/aes-armv8.c:848,1
    - Dst: vst1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:850,1
    - Dst: __builtin_assume_aligned
      Src: /src/nss/lib/freebl/aes-armv8.c:850,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 67
    argCount: 7
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    - blocksize
    argTypes:
    - AESContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 762
    functionDepth: 1
    functionLinenumber: 762
    functionLinenumberEnd: 856
    functionName: arm_aes_encrypt_ecb_256
    functionSourceFile: /src/nss/lib/freebl/aes-armv8.c
    functionUses: 0
    functionsReached:
    - vaesmcq_u8
    - vaeseq_u8
    - memcpy
    - vld1q_u8
    - veorq_u8
    - vst1q_u8
    - __builtin_assume_aligned
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus arm_aes_encrypt_ecb_256(AESContext *cx, unsigned char *output,\n
      \                       unsigned int *outputLen,\n                        unsigned
      int maxOutputLen,\n                        const unsigned char *input,\n                        unsigned
      int inputLen,\n                        unsigned int blocksize)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:877,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:878,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:879,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:880,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:881,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:882,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:883,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:884,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:885,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:886,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:887,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:888,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:889,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:890,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:891,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:896,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/aes-armv8.c:899,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:900,1
    - Dst: __builtin_assume_aligned
      Src: /src/nss/lib/freebl/aes-armv8.c:900,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:902,1
    - Dst: __builtin_assume_aligned
      Src: /src/nss/lib/freebl/aes-armv8.c:902,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:909,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:910,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:911,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:912,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:913,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:914,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:915,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:916,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:917,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:918,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:919,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:920,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:921,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:922,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:923,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:924,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:925,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:926,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:927,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:928,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:929,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:930,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:931,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:932,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:933,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:934,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:935,1
    - Dst: veorq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:937,1
    - Dst: vst1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:940,1
    - Dst: vst1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:943,1
    - Dst: __builtin_assume_aligned
      Src: /src/nss/lib/freebl/aes-armv8.c:943,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/aes-armv8.c:944,1
    - Dst: vst1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:946,1
    - Dst: __builtin_assume_aligned
      Src: /src/nss/lib/freebl/aes-armv8.c:946,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 67
    argCount: 7
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    - blocksize
    argTypes:
    - AESContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 858
    functionDepth: 1
    functionLinenumber: 858
    functionLinenumberEnd: 953
    functionName: arm_aes_decrypt_ecb_256
    functionSourceFile: /src/nss/lib/freebl/aes-armv8.c
    functionUses: 0
    functionsReached:
    - memcpy
    - vld1q_u8
    - vaesimcq_u8
    - veorq_u8
    - vaesdq_u8
    - vst1q_u8
    - __builtin_assume_aligned
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus arm_aes_decrypt_ecb_256(AESContext *cx, unsigned char *output,\n
      \                       unsigned int *outputLen,\n                        unsigned
      int maxOutputLen,\n                        const unsigned char *input,\n                        unsigned
      int inputLen,\n                        unsigned int blocksize)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:976,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:979,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:980,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:981,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:982,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:983,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:984,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:985,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:986,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:987,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:988,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:989,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:990,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:991,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:992,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:993,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:998,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/aes-armv8.c:1001,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1002,1
    - Dst: __builtin_assume_aligned
      Src: /src/nss/lib/freebl/aes-armv8.c:1002,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1004,1
    - Dst: __builtin_assume_aligned
      Src: /src/nss/lib/freebl/aes-armv8.c:1004,1
    - Dst: veorq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1010,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1013,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1014,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1015,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1016,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1017,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1018,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1019,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1020,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1021,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1022,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1023,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1024,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1025,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1026,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1027,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1028,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1029,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1030,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1031,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1032,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1033,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1034,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1035,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1036,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1037,1
    - Dst: vaesmcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1038,1
    - Dst: vaeseq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1039,1
    - Dst: veorq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1041,1
    - Dst: vst1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1044,1
    - Dst: vst1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1047,1
    - Dst: __builtin_assume_aligned
      Src: /src/nss/lib/freebl/aes-armv8.c:1047,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/aes-armv8.c:1048,1
    - Dst: vst1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1050,1
    - Dst: __builtin_assume_aligned
      Src: /src/nss/lib/freebl/aes-armv8.c:1050,1
    - Dst: vst1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1056,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 71
    argCount: 7
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    - blocksize
    argTypes:
    - AESContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 955
    functionDepth: 1
    functionLinenumber: 955
    functionLinenumberEnd: 1059
    functionName: arm_aes_encrypt_cbc_256
    functionSourceFile: /src/nss/lib/freebl/aes-armv8.c
    functionUses: 0
    functionsReached:
    - vaesmcq_u8
    - vaeseq_u8
    - memcpy
    - vld1q_u8
    - veorq_u8
    - vst1q_u8
    - __builtin_assume_aligned
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus arm_aes_encrypt_cbc_256(AESContext *cx, unsigned char *output,\n
      \                       unsigned int *outputLen,\n                        unsigned
      int maxOutputLen,\n                        const unsigned char *input,\n                        unsigned
      int inputLen,\n                        unsigned int blocksize)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1082,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1085,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1086,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1087,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1088,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1089,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1090,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1091,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1092,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1093,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1094,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1095,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1096,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1097,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1098,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1099,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1104,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/aes-armv8.c:1107,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1108,1
    - Dst: __builtin_assume_aligned
      Src: /src/nss/lib/freebl/aes-armv8.c:1108,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1110,1
    - Dst: __builtin_assume_aligned
      Src: /src/nss/lib/freebl/aes-armv8.c:1110,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1118,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1119,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1120,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1121,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1122,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1123,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1124,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1125,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1126,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1127,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1128,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1129,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1130,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1131,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1132,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1133,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1134,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1135,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1136,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1137,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1138,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1139,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1140,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1141,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1142,1
    - Dst: vaesimcq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1143,1
    - Dst: vaesdq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1144,1
    - Dst: veorq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1146,1
    - Dst: veorq_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1148,1
    - Dst: vst1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1151,1
    - Dst: vst1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1154,1
    - Dst: __builtin_assume_aligned
      Src: /src/nss/lib/freebl/aes-armv8.c:1154,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/aes-armv8.c:1155,1
    - Dst: vst1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1157,1
    - Dst: __builtin_assume_aligned
      Src: /src/nss/lib/freebl/aes-armv8.c:1157,1
    - Dst: vst1q_u8
      Src: /src/nss/lib/freebl/aes-armv8.c:1164,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 72
    argCount: 7
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    - blocksize
    argTypes:
    - AESContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1167
      start: 1061
    functionDepth: 1
    functionLinenumber: 1061
    functionLinenumberEnd: 1167
    functionName: arm_aes_decrypt_cbc_256
    functionSourceFile: /src/nss/lib/freebl/aes-armv8.c
    functionUses: 0
    functionsReached:
    - memcpy
    - vld1q_u8
    - vaesimcq_u8
    - veorq_u8
    - vaesdq_u8
    - vst1q_u8
    - __builtin_assume_aligned
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus arm_aes_decrypt_cbc_256(AESContext *cx, unsigned char *output,\n
      \                       unsigned int *outputLen,\n                        unsigned
      int maxOutputLen,\n                        const unsigned char *input,\n                        unsigned
      int inputLen,\n                        unsigned int blocksize)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZNew
      Src: /src/nss/lib/freebl/cts.c:27,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/cts.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - context
    - cipher
    - iv
    argTypes:
    - void*
    - freeblCipherFunc
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 35
    functionName: CTS_CreateContext
    functionSourceFile: /src/nss/lib/freebl/cts.c
    functionUses: 0
    functionsReached:
    - PORT_Memcpy
    - PORT_ZNew
    linkageType: ''
    returnType: CTSContext
    signature: "CTSContext *\nCTS_CreateContext(void *context, freeblCipherFunc cipher,\n
      \                 const unsigned char *iv)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/cts.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - cts
    - freeit
    argTypes:
    - CTSContext*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 43
    functionName: CTS_DestroyContext
    functionSourceFile: /src/nss/lib/freebl/cts.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    linkageType: ''
    returnType: void
    signature: void CTS_DestroyContext(CTSContext *cts, PRBool freeit)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/cts.c:100,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/cts.c:106,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/cts.c:134,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/cts.c:135,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/cts.c:138,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/cts.c:142,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 7
    argNames:
    - cts
    - outbuf
    - outlen
    - maxout
    - inbuf
    - inlen
    - blocksize
    argTypes:
    - CTSContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 145
    functionName: CTS_EncryptUpdate
    functionSourceFile: /src/nss/lib/freebl/cts.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PORT_Memcpy
    - PORT_Memset
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CTS_EncryptUpdate(CTSContext *cts, unsigned char *outbuf,\n
      \                 unsigned int *outlen, unsigned int maxout,\n                  const
      unsigned char *inbuf, unsigned int inlen,\n                  unsigned int blocksize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - count
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 150
    functionName: XOR_BLOCK
    functionSourceFile: /src/nss/lib/freebl/cts.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XOR_BLOCK(x, y, count)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/cts.c:194,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/cts.c:200,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/cts.c:214,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/cts.c:219,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/cts.c:222,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/cts.c:223,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/cts.c:228,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/cts.c:229,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/cts.c:244,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/cts.c:245,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/cts.c:246,1
    - Dst: XOR_BLOCK
      Src: /src/nss/lib/freebl/cts.c:270,1
    - Dst: XOR_BLOCK
      Src: /src/nss/lib/freebl/cts.c:271,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/cts.c:273,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/cts.c:276,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/cts.c:283,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/cts.c:284,1
    - Dst: XOR_BLOCK
      Src: /src/nss/lib/freebl/cts.c:288,1
    - Dst: XOR_BLOCK
      Src: /src/nss/lib/freebl/cts.c:289,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/cts.c:291,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/cts.c:300,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 56
    argCount: 7
    argNames:
    - cts
    - outbuf
    - outlen
    - maxout
    - inbuf
    - inlen
    - blocksize
    argTypes:
    - CTSContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 303
    functionName: CTS_DecryptUpdate
    functionSourceFile: /src/nss/lib/freebl/cts.c
    functionUses: 0
    functionsReached:
    - XOR_BLOCK
    - memcpy
    - PORT_Memcpy
    - PORT_SetError
    - PORT_Memset
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CTS_DecryptUpdate(CTSContext *cts, unsigned char *outbuf,\n
      \                 unsigned int *outlen, unsigned int maxout,\n                  const
      unsigned char *inbuf, unsigned int inlen,\n                  unsigned int blocksize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vec_xst_be
      Src: /src/nss/lib/freebl/gcm-ppc.c:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ghash
    - outbuf
    argTypes:
    - gcmHashContext*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 18
    functionName: gcm_HashWrite_hw
    functionSourceFile: /src/nss/lib/freebl/gcm-ppc.c
    functionUses: 1
    functionsReached:
    - vec_xst_be
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus gcm_HashWrite_hw(gcmHashContext *ghash, unsigned char *outbuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_altivec_crypto_vpmsumd
      Src: /src/nss/lib/freebl/gcm-ppc.c:25,1
    - Dst: __builtin_crypto_vpmsumd
      Src: /src/nss/lib/freebl/gcm-ppc.c:30,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - vec_u64
    - vec_u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 39
    functionName: vpmsumd
    functionSourceFile: /src/nss/lib/freebl/gcm-ppc.c
    functionUses: 1
    functionsReached:
    - __builtin_crypto_vpmsumd
    - __builtin_altivec_crypto_vpmsumd
    linkageType: ''
    returnType: vec_u64
    signature: vec_u64 vpmsumd(const vec_u64 a, const vec_u64 b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vec_splat_u8
      Src: /src/nss/lib/freebl/gcm-ppc.c:45,1
    - Dst: vec_xl_be
      Src: /src/nss/lib/freebl/gcm-ppc.c:57,1
    - Dst: vpmsumd
      Src: /src/nss/lib/freebl/gcm-ppc.c:61,1
    - Dst: vpmsumd
      Src: /src/nss/lib/freebl/gcm-ppc.c:62,1
    - Dst: vpmsumd
      Src: /src/nss/lib/freebl/gcm-ppc.c:64,1
    - Dst: vec_splat
      Src: /src/nss/lib/freebl/gcm-ppc.c:71,1
    - Dst: vec_rl
      Src: /src/nss/lib/freebl/gcm-ppc.c:72,1
    - Dst: vec_sll
      Src: /src/nss/lib/freebl/gcm-ppc.c:74,1
    - Dst: vec_sll
      Src: /src/nss/lib/freebl/gcm-ppc.c:75,1
    - Dst: vpmsumd
      Src: /src/nss/lib/freebl/gcm-ppc.c:79,1
    - Dst: vpmsumd
      Src: /src/nss/lib/freebl/gcm-ppc.c:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 3
    argNames:
    - ghash
    - buf
    - count
    argTypes:
    - gcmHashContext*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 90
    functionName: gcm_HashMult_hw
    functionSourceFile: /src/nss/lib/freebl/gcm-ppc.c
    functionUses: 0
    functionsReached:
    - vec_xl_be
    - vec_sll
    - vpmsumd
    - vec_splat
    - vec_splat_u8
    - vec_rl
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus gcm_HashMult_hw(gcmHashContext *ghash, const unsigned char
      *buf,\n                unsigned int count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vec_splat_u32
      Src: /src/nss/lib/freebl/gcm-ppc.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ghash
    argTypes:
    - gcmHashContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 100
    functionName: gcm_HashInit_hw
    functionSourceFile: /src/nss/lib/freebl/gcm-ppc.c
    functionUses: 0
    functionsReached:
    - vec_splat_u32
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus gcm_HashInit_hw(gcmHashContext *ghash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vec_splat_u32
      Src: /src/nss/lib/freebl/gcm-ppc.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ghash
    argTypes:
    - gcmHashContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 107
    functionName: gcm_HashZeroX_hw
    functionSourceFile: /src/nss/lib/freebl/gcm-ppc.c
    functionUses: 1
    functionsReached:
    - vec_splat_u32
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus gcm_HashZeroX_hw(gcmHashContext *ghash)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - inc
    argTypes:
    - BLAKE2BContext*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: blake2b_IncrementCounter
    functionSourceFile: /src/nss/lib/freebl/blake2b.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void blake2b_IncrementCounter(BLAKE2BContext* ctx, const uint64_t inc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 67
    functionName: G
    functionSourceFile: /src/nss/lib/freebl/blake2b.c
    functionUses: 39
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: G(a, b, c, d, x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 77
    functionName: ROUND
    functionSourceFile: /src/nss/lib/freebl/blake2b.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROUND(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/blake2b.c:89,1
    - Dst: FREEBL_HTONLL
      Src: /src/nss/lib/freebl/blake2b.c:92,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/blake2b.c:96,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/blake2b.c:97,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/blake2b.c:103,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/blake2b.c:104,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/blake2b.c:105,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/blake2b.c:106,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/blake2b.c:107,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/blake2b.c:108,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/blake2b.c:109,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/blake2b.c:110,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/blake2b.c:111,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/blake2b.c:112,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/blake2b.c:113,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/blake2b.c:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 2
    argNames:
    - ctx
    - block
    argTypes:
    - BLAKE2BContext*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 119
    functionName: blake2b_Compress
    functionSourceFile: /src/nss/lib/freebl/blake2b.c
    functionUses: 0
    functionsReached:
    - ROUND
    - PORT_Memcpy
    - FREEBL_HTONLL
    linkageType: ''
    returnType: void
    signature: void blake2b_Compress(BLAKE2BContext* ctx, const uint8_t* block)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZNew
      Src: /src/nss/lib/freebl/blake2b.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 128
    functionName: BLAKE2B_NewContext
    functionSourceFile: /src/nss/lib/freebl/blake2b.c
    functionUses: 0
    functionsReached:
    - PORT_ZNew
    linkageType: ''
    returnType: BLAKE2BContext
    signature: 'BLAKE2BContext *

      BLAKE2B_NewContext()'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/blake2b.c:136,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/blake2b.c:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - freeit
    argTypes:
    - BLAKE2BContext*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 140
    functionName: BLAKE2B_DestroyContext
    functionSourceFile: /src/nss/lib/freebl/blake2b.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - PORT_Memset
    linkageType: ''
    returnType: void
    signature: void BLAKE2B_DestroyContext(BLAKE2BContext* ctx, PRBool freeit)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/blake2b.c:167,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/blake2b.c:174,1
    - Dst: BLAKE2B_Update
      Src: /src/nss/lib/freebl/blake2b.c:175,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/blake2b.c:176,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/blake2b.c:182,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/blake2b.c:184,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 33
    argCount: 4
    argNames:
    - ctx
    - outlen
    - key
    - keylen
    argTypes:
    - BLAKE2BContext*
    - uint8_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 186
    functionName: blake2b_Begin
    functionSourceFile: /src/nss/lib/freebl/blake2b.c
    functionUses: 0
    functionsReached:
    - BLAKE2B_Update
    - PORT_Memset
    - PORT_SetError
    - PORT_Memcpy
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus blake2b_Begin(BLAKE2BContext* ctx, uint8_t outlen, const
      uint8_t* key,\n              size_t keylen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blake2b_Begin
      Src: /src/nss/lib/freebl/blake2b.c:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - BLAKE2BContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 192
    functionName: BLAKE2B_Begin
    functionSourceFile: /src/nss/lib/freebl/blake2b.c
    functionUses: 0
    functionsReached:
    - blake2b_Begin
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus BLAKE2B_Begin(BLAKE2BContext* ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/blake2b.c:197,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/blake2b.c:199,1
    - Dst: blake2b_Begin
      Src: /src/nss/lib/freebl/blake2b.c:202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ctx
    - key
    - keylen
    argTypes:
    - BLAKE2BContext*
    - PRUint8*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 203
    functionName: BLAKE2B_MAC_Begin
    functionSourceFile: /src/nss/lib/freebl/blake2b.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - blake2b_Begin
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus BLAKE2B_MAC_Begin(BLAKE2BContext* ctx, const PRUint8* key,
      const size_t keylen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blake2b_IncrementCounter
      Src: /src/nss/lib/freebl/blake2b.c:209,1
    - Dst: blake2b_Compress
      Src: /src/nss/lib/freebl/blake2b.c:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - blockLength
    - input
    argTypes:
    - BLAKE2BContext*
    - size_t
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 211
    functionName: blake2b_IncrementCompress
    functionSourceFile: /src/nss/lib/freebl/blake2b.c
    functionUses: 0
    functionsReached:
    - blake2b_IncrementCounter
    - blake2b_Compress
    linkageType: ''
    returnType: void
    signature: "void blake2b_IncrementCompress(BLAKE2BContext* ctx, size_t blockLength,\n
      \                         const unsigned char* input)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/blake2b.c:227,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/blake2b.c:233,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/blake2b.c:238,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/blake2b.c:245,1
    - Dst: blake2b_IncrementCompress
      Src: /src/nss/lib/freebl/blake2b.c:247,1
    - Dst: blake2b_IncrementCompress
      Src: /src/nss/lib/freebl/blake2b.c:252,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/blake2b.c:262,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/blake2b.c:263,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 3
    argNames:
    - ctx
    - in
    - inlen
    argTypes:
    - BLAKE2BContext*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 267
    functionName: BLAKE2B_Update
    functionSourceFile: /src/nss/lib/freebl/blake2b.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - blake2b_IncrementCompress
    - PORT_Memcpy
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus BLAKE2B_Update(BLAKE2BContext* ctx, const unsigned char*
      in,\n               unsigned int inlen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PR_MIN
      Src: /src/nss/lib/freebl/blake2b.c:278,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/blake2b.c:282,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/blake2b.c:288,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/blake2b.c:294,1
    - Dst: blake2b_IncrementCounter
      Src: /src/nss/lib/freebl/blake2b.c:299,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/blake2b.c:301,1
    - Dst: blake2b_Compress
      Src: /src/nss/lib/freebl/blake2b.c:303,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 4
    argNames:
    - ctx
    - out
    - digestLen
    - maxDigestLen
    argTypes:
    - BLAKE2BContext*
    - unsigned char*
    - unsigned int*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 315
    functionName: BLAKE2B_End
    functionSourceFile: /src/nss/lib/freebl/blake2b.c
    functionUses: 0
    functionsReached:
    - PR_MIN
    - blake2b_Compress
    - PORT_SetError
    - PORT_Memset
    - blake2b_IncrementCounter
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus BLAKE2B_End(BLAKE2BContext* ctx, unsigned char* out,\n            unsigned
      int* digestLen, size_t maxDigestLen)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/blake2b.c:325,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/blake2b.c:327,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/blake2b.c:332,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/blake2b.c:334,1
    - Dst: blake2b_Begin
      Src: /src/nss/lib/freebl/blake2b.c:338,1
    - Dst: BLAKE2B_Update
      Src: /src/nss/lib/freebl/blake2b.c:342,1
    - Dst: BLAKE2B_End
      Src: /src/nss/lib/freebl/blake2b.c:346,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/blake2b.c:352,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 6
    argNames:
    - output
    - input
    - outlen
    - inlen
    - key
    - keylen
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t
    - size_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 354
    functionName: blake2b_HashBuf
    functionSourceFile: /src/nss/lib/freebl/blake2b.c
    functionUses: 0
    functionsReached:
    - BLAKE2B_Update
    - PORT_Assert
    - BLAKE2B_End
    - blake2b_Begin
    - PORT_SetError
    - PORT_Memset
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus blake2b_HashBuf(uint8_t* output, const uint8_t* input, uint8_t
      outlen,\n                size_t inlen, const uint8_t* key, size_t keylen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blake2b_HashBuf
      Src: /src/nss/lib/freebl/blake2b.c:359,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/freebl/blake2b.c:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - unsigned char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 356
    functionDepth: 2
    functionLinenumber: 356
    functionLinenumberEnd: 361
    functionName: BLAKE2B_Hash
    functionSourceFile: /src/nss/lib/freebl/blake2b.c
    functionUses: 0
    functionsReached:
    - blake2b_HashBuf
    - PORT_Strlen
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus BLAKE2B_Hash(unsigned char* dest, const char* src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blake2b_HashBuf
      Src: /src/nss/lib/freebl/blake2b.c:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - output
    - input
    - inlen
    argTypes:
    - unsigned char*
    - unsigned char*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 363
    functionDepth: 2
    functionLinenumber: 363
    functionLinenumberEnd: 367
    functionName: BLAKE2B_HashBuf
    functionSourceFile: /src/nss/lib/freebl/blake2b.c
    functionUses: 0
    functionsReached:
    - blake2b_HashBuf
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus BLAKE2B_HashBuf(unsigned char* output, const unsigned char*
      input, PRUint32 inlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/blake2b.c:374,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/blake2b.c:376,1
    - Dst: blake2b_HashBuf
      Src: /src/nss/lib/freebl/blake2b.c:379,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - output
    - input
    - inlen
    - key
    - keylen
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 369
    functionDepth: 2
    functionLinenumber: 369
    functionLinenumberEnd: 380
    functionName: BLAKE2B_MAC_HashBuf
    functionSourceFile: /src/nss/lib/freebl/blake2b.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - blake2b_HashBuf
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus BLAKE2B_MAC_HashBuf(unsigned char* output, const unsigned
      char* input,\n                    unsigned int inlen, const unsigned char* key,\n
      \                   unsigned int keylen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - BLAKE2BContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 386
    functionName: BLAKE2B_FlattenSize
    functionSourceFile: /src/nss/lib/freebl/blake2b.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int BLAKE2B_FlattenSize(BLAKE2BContext* ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/blake2b.c:391,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/blake2b.c:393,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/blake2b.c:396,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - space
    argTypes:
    - BLAKE2BContext*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 398
    functionName: BLAKE2B_Flatten
    functionSourceFile: /src/nss/lib/freebl/blake2b.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - PORT_Memcpy
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus BLAKE2B_Flatten(BLAKE2BContext* ctx, unsigned char* space)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/blake2b.c:403,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/blake2b.c:405,1
    - Dst: BLAKE2B_NewContext
      Src: /src/nss/lib/freebl/blake2b.c:408,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/blake2b.c:410,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/blake2b.c:414,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - space
    - arg
    argTypes:
    - unsigned char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 416
    functionName: BLAKE2B_Resurrect
    functionSourceFile: /src/nss/lib/freebl/blake2b.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - PORT_Memcpy
    - BLAKE2B_NewContext
    linkageType: ''
    returnType: BLAKE2BContext
    signature: 'BLAKE2BContext *

      BLAKE2B_Resurrect(unsigned char* space, void* arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/blake2b.c:421,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/blake2b.c:422,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/blake2b.c:424,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/blake2b.c:427,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - BLAKE2BContext*
    - BLAKE2BContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 428
    functionName: BLAKE2B_Clone
    functionSourceFile: /src/nss/lib/freebl/blake2b.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - PORT_Memcpy
    linkageType: ''
    returnType: void
    signature: void BLAKE2B_Clone(BLAKE2BContext* dest, BLAKE2BContext* src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - bytes
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 22
    functionName: WRITE64
    functionSourceFile: /src/nss/lib/freebl/gcm-x86.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRITE64(x, bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_storeu_si128
      Src: /src/nss/lib/freebl/gcm-x86.c:27,1
    - Dst: WRITE64
      Src: /src/nss/lib/freebl/gcm-x86.c:29,1
    - Dst: WRITE64
      Src: /src/nss/lib/freebl/gcm-x86.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ghash
    - outbuf
    argTypes:
    - gcmHashContext*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 32
    functionName: gcm_HashWrite_hw
    functionSourceFile: /src/nss/lib/freebl/gcm-x86.c
    functionUses: 1
    functionsReached:
    - WRITE64
    - _mm_storeu_si128
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus gcm_HashWrite_hw(gcmHashContext *ghash, unsigned char *outbuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set_epi16
      Src: /src/nss/lib/freebl/gcm-x86.c:50,1
    - Dst: _mm_xor_si128
      Src: /src/nss/lib/freebl/gcm-x86.c:58,1
    - Dst: _mm_clmulepi64_si128
      Src: /src/nss/lib/freebl/gcm-x86.c:61,1
    - Dst: _mm_clmulepi64_si128
      Src: /src/nss/lib/freebl/gcm-x86.c:62,1
    - Dst: _mm_clmulepi64_si128
      Src: /src/nss/lib/freebl/gcm-x86.c:63,1
    - Dst: _mm_clmulepi64_si128
      Src: /src/nss/lib/freebl/gcm-x86.c:64,1
    - Dst: _mm_xor_si128
      Src: /src/nss/lib/freebl/gcm-x86.c:65,1
    - Dst: _mm_xor_si128
      Src: /src/nss/lib/freebl/gcm-x86.c:66,1
    - Dst: _mm_slli_si128
      Src: /src/nss/lib/freebl/gcm-x86.c:66,1
    - Dst: _mm_unpackhi_epi64
      Src: /src/nss/lib/freebl/gcm-x86.c:67,1
    - Dst: _mm_xor_si128
      Src: /src/nss/lib/freebl/gcm-x86.c:68,1
    - Dst: _mm_slli_si128
      Src: /src/nss/lib/freebl/gcm-x86.c:68,1
    - Dst: _mm_unpackhi_epi64
      Src: /src/nss/lib/freebl/gcm-x86.c:69,1
    - Dst: _mm_slli_si128
      Src: /src/nss/lib/freebl/gcm-x86.c:69,1
    - Dst: _mm_slli_si128
      Src: /src/nss/lib/freebl/gcm-x86.c:72,1
    - Dst: _mm_srli_epi64
      Src: /src/nss/lib/freebl/gcm-x86.c:73,1
    - Dst: _mm_slli_si128
      Src: /src/nss/lib/freebl/gcm-x86.c:74,1
    - Dst: _mm_srli_epi64
      Src: /src/nss/lib/freebl/gcm-x86.c:75,1
    - Dst: _mm_srli_si128
      Src: /src/nss/lib/freebl/gcm-x86.c:77,1
    - Dst: _mm_srli_epi64
      Src: /src/nss/lib/freebl/gcm-x86.c:78,1
    - Dst: _mm_or_si128
      Src: /src/nss/lib/freebl/gcm-x86.c:79,1
    - Dst: _mm_slli_epi64
      Src: /src/nss/lib/freebl/gcm-x86.c:79,1
    - Dst: _mm_or_si128
      Src: /src/nss/lib/freebl/gcm-x86.c:80,1
    - Dst: _mm_or_si128
      Src: /src/nss/lib/freebl/gcm-x86.c:80,1
    - Dst: _mm_slli_epi64
      Src: /src/nss/lib/freebl/gcm-x86.c:80,1
    - Dst: _mm_slli_si128
      Src: /src/nss/lib/freebl/gcm-x86.c:83,1
    - Dst: _mm_slli_epi64
      Src: /src/nss/lib/freebl/gcm-x86.c:85,1
    - Dst: _mm_slli_epi64
      Src: /src/nss/lib/freebl/gcm-x86.c:87,1
    - Dst: _mm_slli_epi64
      Src: /src/nss/lib/freebl/gcm-x86.c:89,1
    - Dst: _mm_xor_si128
      Src: /src/nss/lib/freebl/gcm-x86.c:91,1
    - Dst: _mm_xor_si128
      Src: /src/nss/lib/freebl/gcm-x86.c:91,1
    - Dst: _mm_xor_si128
      Src: /src/nss/lib/freebl/gcm-x86.c:91,1
    - Dst: _mm_srli_si128
      Src: /src/nss/lib/freebl/gcm-x86.c:92,1
    - Dst: _mm_slli_epi64
      Src: /src/nss/lib/freebl/gcm-x86.c:94,1
    - Dst: _mm_or_si128
      Src: /src/nss/lib/freebl/gcm-x86.c:95,1
    - Dst: _mm_srli_epi64
      Src: /src/nss/lib/freebl/gcm-x86.c:95,1
    - Dst: _mm_slli_epi64
      Src: /src/nss/lib/freebl/gcm-x86.c:97,1
    - Dst: _mm_or_si128
      Src: /src/nss/lib/freebl/gcm-x86.c:98,1
    - Dst: _mm_srli_epi64
      Src: /src/nss/lib/freebl/gcm-x86.c:98,1
    - Dst: _mm_slli_epi64
      Src: /src/nss/lib/freebl/gcm-x86.c:100,1
    - Dst: _mm_or_si128
      Src: /src/nss/lib/freebl/gcm-x86.c:101,1
    - Dst: _mm_srli_epi64
      Src: /src/nss/lib/freebl/gcm-x86.c:101,1
    - Dst: _mm_xor_si128
      Src: /src/nss/lib/freebl/gcm-x86.c:103,1
    - Dst: _mm_xor_si128
      Src: /src/nss/lib/freebl/gcm-x86.c:103,1
    - Dst: _mm_xor_si128
      Src: /src/nss/lib/freebl/gcm-x86.c:104,1
    - Dst: _mm_xor_si128
      Src: /src/nss/lib/freebl/gcm-x86.c:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 36
    argCount: 3
    argNames:
    - ghash
    - buf
    - count
    argTypes:
    - gcmHashContext*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 108
    functionName: gcm_HashMult_hw
    functionSourceFile: /src/nss/lib/freebl/gcm-x86.c
    functionUses: 0
    functionsReached:
    - _mm_slli_si128
    - _mm_srli_epi64
    - _mm_srli_si128
    - _mm_clmulepi64_si128
    - _mm_set_epi16
    - _mm_unpackhi_epi64
    - _mm_slli_epi64
    - _mm_xor_si128
    - _mm_or_si128
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus gcm_HashMult_hw(gcmHashContext *ghash, const unsigned char
      *buf,\n                unsigned int count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_setzero_si128
      Src: /src/nss/lib/freebl/gcm-x86.c:114,1
    - Dst: _mm_set_epi32
      Src: /src/nss/lib/freebl/gcm-x86.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ghash
    argTypes:
    - gcmHashContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 120
    functionName: gcm_HashInit_hw
    functionSourceFile: /src/nss/lib/freebl/gcm-x86.c
    functionUses: 0
    functionsReached:
    - _mm_set_epi32
    - _mm_setzero_si128
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus gcm_HashInit_hw(gcmHashContext *ghash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_setzero_si128
      Src: /src/nss/lib/freebl/gcm-x86.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ghash
    argTypes:
    - gcmHashContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 127
    functionName: gcm_HashZeroX_hw
    functionSourceFile: /src/nss/lib/freebl/gcm-x86.c
    functionUses: 1
    functionsReached:
    - _mm_setzero_si128
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus gcm_HashZeroX_hw(gcmHashContext *ghash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/freebl/aeskeywrap.c:41,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/aeskeywrap.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 48
    functionName: AESKeyWrap_AllocateContext
    functionSourceFile: /src/nss/lib/freebl/aeskeywrap.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PORT_ZAlloc
    linkageType: ''
    returnType: AESKeyWrapContext
    signature: 'AESKeyWrapContext *

      AESKeyWrap_AllocateContext(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/aeskeywrap.c:61,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/aeskeywrap.c:65,1
    - Dst: memset
      Src: /src/nss/lib/freebl/aeskeywrap.c:67,1
    - Dst: AES_InitContext
      Src: /src/nss/lib/freebl/aeskeywrap.c:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 7
    argNames:
    - cx
    - key
    - keylen
    - iv
    - x1
    - encrypt
    - x2
    argTypes:
    - AESKeyWrapContext*
    - unsigned char*
    - unsigned int
    - unsigned char*
    - int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 72
    functionName: AESKeyWrap_InitContext
    functionSourceFile: /src/nss/lib/freebl/aeskeywrap.c
    functionUses: 0
    functionsReached:
    - memset
    - PORT_SetError
    - AES_InitContext
    - memcpy
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus AESKeyWrap_InitContext(AESKeyWrapContext *cx,\n                       const
      unsigned char *key,\n                       unsigned int keylen,\n                       const
      unsigned char *iv,\n                       int x1,\n                       unsigned
      int encrypt,\n                       unsigned int x2)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: AESKeyWrap_AllocateContext
      Src: /src/nss/lib/freebl/aeskeywrap.c:84,1
    - Dst: AESKeyWrap_InitContext
      Src: /src/nss/lib/freebl/aeskeywrap.c:87,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/aeskeywrap.c:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - key
    - iv
    - encrypt
    - keylen
    argTypes:
    - unsigned char*
    - unsigned char*
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 93
    functionName: AESKeyWrap_CreateContext
    functionSourceFile: /src/nss/lib/freebl/aeskeywrap.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - AESKeyWrap_InitContext
    - AESKeyWrap_AllocateContext
    linkageType: ''
    returnType: AESKeyWrapContext
    signature: "AESKeyWrapContext *\nAESKeyWrap_CreateContext(const unsigned char
      *key, const unsigned char *iv,\n                         int encrypt, unsigned
      int keylen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: AES_DestroyContext
      Src: /src/nss/lib/freebl/aeskeywrap.c:104,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/aeskeywrap.c:107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - cx
    - freeit
    argTypes:
    - AESKeyWrapContext*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 110
    functionName: AESKeyWrap_DestroyContext
    functionSourceFile: /src/nss/lib/freebl/aeskeywrap.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - AES_DestroyContext
    linkageType: ''
    returnType: void
    signature: void AESKeyWrap_DestroyContext(AESKeyWrapContext *cx, PRBool freeit)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - A
    - T
    argTypes:
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 146
    functionName: increment_and_xor
    functionSourceFile: /src/nss/lib/freebl/aeskeywrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void increment_and_xor(unsigned char *A, unsigned char *T)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 2
    argNames:
    - A
    - T
    argTypes:
    - PRUint64*
    - PRUint64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 174
    functionName: xor_and_decrement
    functionSourceFile: /src/nss/lib/freebl/aeskeywrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void xor_and_decrement(PRUint64 *A, PRUint64 *T)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 2
    argNames:
    - pt
    - t
    argTypes:
    - unsigned char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 197
    functionName: set_t
    functionSourceFile: /src/nss/lib/freebl/aeskeywrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_t(unsigned char *pt, unsigned long t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_GET_BYTE_BE
      Src: /src/nss/lib/freebl/aeskeywrap.c:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - data
    - val
    argTypes:
    - unsigned char*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 208
    functionName: encode_PRUint32_BE
    functionSourceFile: /src/nss/lib/freebl/aeskeywrap.c
    functionUses: 0
    functionsReached:
    - PORT_GET_BYTE_BE
    linkageType: ''
    returnType: void
    signature: void encode_PRUint32_BE(unsigned char *data, PRUint32 val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 220
    functionName: decode_PRUint32_BE
    functionSourceFile: /src/nss/lib/freebl/aeskeywrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRUint32
    signature: PRUint32 decode_PRUint32_BE(unsigned char *data)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/aeskeywrap.c:254,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/aeskeywrap.c:264,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/aeskeywrap.c:268,1
    - Dst: PORT_NewArray
      Src: /src/nss/lib/freebl/aeskeywrap.c:272,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/aeskeywrap.c:278,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/aeskeywrap.c:279,1
    - Dst: memset
      Src: /src/nss/lib/freebl/aeskeywrap.c:283,1
    - Dst: AES_Encrypt
      Src: /src/nss/lib/freebl/aeskeywrap.c:291,1
    - Dst: increment_and_xor
      Src: /src/nss/lib/freebl/aeskeywrap.c:300,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/aeskeywrap.c:309,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/freebl/aeskeywrap.c:315,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 7
    argNames:
    - cx
    - iv
    - output
    - pOutputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - AESKeyWrapContext*
    - unsigned char*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 317
    functionName: AESKeyWrap_W
    functionSourceFile: /src/nss/lib/freebl/aeskeywrap.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PORT_ZFree
    - memset
    - PORT_SetError
    - PORT_NewArray
    - increment_and_xor
    - AES_Encrypt
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus AESKeyWrap_W(AESKeyWrapContext *cx, unsigned char *iv, unsigned
      char *output,\n             unsigned int *pOutputLen, unsigned int maxOutputLen,\n
      \            const unsigned char *input, unsigned int inputLen)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/aeskeywrap.c:352,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/aeskeywrap.c:363,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/aeskeywrap.c:367,1
    - Dst: PORT_NewArray
      Src: /src/nss/lib/freebl/aeskeywrap.c:371,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/aeskeywrap.c:378,1
    - Dst: set_t
      Src: /src/nss/lib/freebl/aeskeywrap.c:383,1
    - Dst: xor_and_decrement
      Src: /src/nss/lib/freebl/aeskeywrap.c:394,1
    - Dst: AES_Decrypt
      Src: /src/nss/lib/freebl/aeskeywrap.c:397,1
    - Dst: memcmp
      Src: /src/nss/lib/freebl/aeskeywrap.c:408,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/aeskeywrap.c:410,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/aeskeywrap.c:414,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/aeskeywrap.c:418,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/freebl/aeskeywrap.c:425,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 58
    argCount: 8
    argNames:
    - cx
    - iv
    - ivOut
    - output
    - pOutputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - AESKeyWrapContext*
    - unsigned char*
    - unsigned char*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 427
    functionName: AESKeyWrap_Winv
    functionSourceFile: /src/nss/lib/freebl/aeskeywrap.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PORT_ZFree
    - xor_and_decrement
    - memcmp
    - PORT_SetError
    - AES_Decrypt
    - PORT_NewArray
    - set_t
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus AESKeyWrap_Winv(AESKeyWrapContext *cx, unsigned char *iv,\n
      \               unsigned char *ivOut, unsigned char *output,\n                unsigned
      int *pOutputLen, unsigned int maxOutputLen,\n                const unsigned
      char *input, unsigned int inputLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AESKeyWrap_W
      Src: /src/nss/lib/freebl/aeskeywrap.c:446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - cx
    - output
    - pOutputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - AESKeyWrapContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 441
    functionDepth: 2
    functionLinenumber: 441
    functionLinenumberEnd: 448
    functionName: AESKeyWrap_Encrypt
    functionSourceFile: /src/nss/lib/freebl/aeskeywrap.c
    functionUses: 0
    functionsReached:
    - AESKeyWrap_W
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus AESKeyWrap_Encrypt(AESKeyWrapContext *cx, unsigned char
      *output,\n                   unsigned int *pOutputLen, unsigned int maxOutputLen,\n
      \                  const unsigned char *input, unsigned int inputLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AESKeyWrap_Winv
      Src: /src/nss/lib/freebl/aeskeywrap.c:466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - cx
    - output
    - pOutputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - AESKeyWrapContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 461
    functionDepth: 2
    functionLinenumber: 461
    functionLinenumberEnd: 468
    functionName: AESKeyWrap_Decrypt
    functionSourceFile: /src/nss/lib/freebl/aeskeywrap.c
    functionUses: 0
    functionsReached:
    - AESKeyWrap_Winv
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus AESKeyWrap_Decrypt(AESKeyWrapContext *cx, unsigned char
      *output,\n                   unsigned int *pOutputLen, unsigned int maxOutputLen,\n
      \                  const unsigned char *input, unsigned int inputLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - bs
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 471
    functionName: BLOCK_PAD_POWER2
    functionSourceFile: /src/nss/lib/freebl/aeskeywrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLOCK_PAD_POWER2(x, bs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BLOCK_PAD_POWER2
      Src: /src/nss/lib/freebl/aeskeywrap.c:491,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/aeskeywrap.c:500,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/aeskeywrap.c:503,1
    - Dst: encode_PRUint32_BE
      Src: /src/nss/lib/freebl/aeskeywrap.c:504,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/aeskeywrap.c:510,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/aeskeywrap.c:511,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/aeskeywrap.c:512,1
    - Dst: AES_Encrypt
      Src: /src/nss/lib/freebl/aeskeywrap.c:513,1
    - Dst: PORT_SafeZero
      Src: /src/nss/lib/freebl/aeskeywrap.c:515,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/freebl/aeskeywrap.c:520,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/aeskeywrap.c:524,1
    - Dst: AESKeyWrap_W
      Src: /src/nss/lib/freebl/aeskeywrap.c:526,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/freebl/aeskeywrap.c:528,1
    - Dst: PORT_SafeZero
      Src: /src/nss/lib/freebl/aeskeywrap.c:531,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 6
    argNames:
    - cx
    - output
    - pOutputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - AESKeyWrapContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 486
    functionDepth: 2
    functionLinenumber: 486
    functionLinenumberEnd: 533
    functionName: AESKeyWrap_EncryptKWP
    functionSourceFile: /src/nss/lib/freebl/aeskeywrap.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - BLOCK_PAD_POWER2
    - PORT_ZFree
    - PORT_Memcpy
    - encode_PRUint32_BE
    - AES_Encrypt
    - PORT_ZAlloc
    - AESKeyWrap_W
    - PORT_SetError
    - PORT_Memset
    - PORT_SafeZero
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus AESKeyWrap_EncryptKWP(AESKeyWrapContext *cx, unsigned char
      *output,\n                      unsigned int *pOutputLen, unsigned int maxOutputLen,\n
      \                     const unsigned char *input, unsigned int inputLen)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: AES_Decrypt
      Src: /src/nss/lib/freebl/aeskeywrap.c:566,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/freebl/aeskeywrap.c:576,1
    - Dst: AESKeyWrap_Winv
      Src: /src/nss/lib/freebl/aeskeywrap.c:585,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/aeskeywrap.c:593,1
    - Dst: decode_PRUint32_BE
      Src: /src/nss/lib/freebl/aeskeywrap.c:599,1
    - Dst: PORT_CT_EQ
      Src: /src/nss/lib/freebl/aeskeywrap.c:600,1
    - Dst: decode_PRUint32_BE
      Src: /src/nss/lib/freebl/aeskeywrap.c:602,1
    - Dst: PORT_CT_LE
      Src: /src/nss/lib/freebl/aeskeywrap.c:603,1
    - Dst: BLOCK_PAD_POWER2
      Src: /src/nss/lib/freebl/aeskeywrap.c:606,1
    - Dst: PORT_CT_EQ
      Src: /src/nss/lib/freebl/aeskeywrap.c:607,1
    - Dst: PORT_CT_GT
      Src: /src/nss/lib/freebl/aeskeywrap.c:609,1
    - Dst: PORT_CT_ZERO
      Src: /src/nss/lib/freebl/aeskeywrap.c:610,1
    - Dst: PORT_CT_SEL
      Src: /src/nss/lib/freebl/aeskeywrap.c:611,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/aeskeywrap.c:617,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/aeskeywrap.c:624,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/aeskeywrap.c:628,1
    - Dst: PORT_SafeZero
      Src: /src/nss/lib/freebl/aeskeywrap.c:634,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/freebl/aeskeywrap.c:638,1
    - Dst: PORT_SafeZero
      Src: /src/nss/lib/freebl/aeskeywrap.c:640,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 61
    argCount: 6
    argNames:
    - cx
    - output
    - pOutputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - AESKeyWrapContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 546
    functionDepth: 2
    functionLinenumber: 546
    functionLinenumberEnd: 642
    functionName: AESKeyWrap_DecryptKWP
    functionSourceFile: /src/nss/lib/freebl/aeskeywrap.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - BLOCK_PAD_POWER2
    - PORT_ZFree
    - PORT_Memcpy
    - PORT_CT_SEL
    - PORT_CT_EQ
    - PORT_CT_GT
    - PORT_SetError
    - AES_Decrypt
    - PORT_CT_LE
    - AESKeyWrap_Winv
    - PORT_SafeZero
    - decode_PRUint32_BE
    - PORT_CT_ZERO
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus AESKeyWrap_DecryptKWP(AESKeyWrapContext *cx, unsigned char
      *output,\n                      unsigned int *pOutputLen, unsigned int maxOutputLen,\n
      \                     const unsigned char *input, unsigned int inputLen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/lib/freebl/mknewpc2.c:132,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 136
    functionName: make_pc2a
    functionSourceFile: /src/nss/lib/freebl/mknewpc2.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void make_pc2a(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/lib/freebl/mknewpc2.c:168,1
    - Dst: printf
      Src: /src/nss/lib/freebl/mknewpc2.c:192,1
    - Dst: printf
      Src: /src/nss/lib/freebl/mknewpc2.c:194,1
    - Dst: printf
      Src: /src/nss/lib/freebl/mknewpc2.c:198,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 200
    functionName: mktable
    functionSourceFile: /src/nss/lib/freebl/mknewpc2.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void mktable()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mktable
      Src: /src/nss/lib/freebl/mknewpc2.c:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 208
    functionName: main
    functionSourceFile: /src/nss/lib/freebl/mknewpc2.c
    functionUses: 6
    functionsReached:
    - mktable
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ret
    - ','
    - fn
    - ','
    - args
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: STUB_DECLARE
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STUB_DECLARE(ret, fn, args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 73
    functionName: STUB_SAFE_CALL0
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STUB_SAFE_CALL0(fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fn
    - ','
    - a1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: STUB_SAFE_CALL1
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STUB_SAFE_CALL1(fn, a1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fn
    - ','
    - a1
    - ','
    - a2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: STUB_SAFE_CALL2
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STUB_SAFE_CALL2(fn, a1, a2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - fn
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: STUB_SAFE_CALL3
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STUB_SAFE_CALL3(fn, a1, a2, a3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - fn
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 89
    functionName: STUB_SAFE_CALL4
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STUB_SAFE_CALL4(fn, a1, a2, a3, a4)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - fn
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: STUB_SAFE_CALL5
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STUB_SAFE_CALL5(fn, a1, a2, a3, a4, a5)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - fn
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - ','
    - a6
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 97
    functionName: STUB_SAFE_CALL6
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STUB_SAFE_CALL6(fn, a1, a2, a3, a4, a5, a6)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 103
    functionName: STUB_FETCH_FUNCTION
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STUB_FETCH_FUNCTION(fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ret
    - ','
    - fn
    - ','
    - args
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: STUB_DECLARE
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STUB_DECLARE(ret, fn, args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 118
    functionName: STUB_SAFE_CALL0
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STUB_SAFE_CALL0(fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fn
    - ','
    - a1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 122
    functionName: STUB_SAFE_CALL1
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STUB_SAFE_CALL1(fn, a1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fn
    - ','
    - a1
    - ','
    - a2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 126
    functionName: STUB_SAFE_CALL2
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STUB_SAFE_CALL2(fn, a1, a2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - fn
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 130
    functionName: STUB_SAFE_CALL3
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STUB_SAFE_CALL3(fn, a1, a2, a3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - fn
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 134
    functionName: STUB_SAFE_CALL4
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STUB_SAFE_CALL4(fn, a1, a2, a3, a4)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - fn
    - ','
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - ','
    - a6
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 138
    functionName: STUB_SAFE_CALL6
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STUB_SAFE_CALL6(fn, a1, a2, a3, a4, a5, a6)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 191
    functionName: PORT_ZNew_stub
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PORT_ZNew_stub(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 192
    functionName: PORT_New_stub
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PORT_New_stub(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - num
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 194
    functionName: PORT_ZNewArray_stub
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PORT_ZNewArray_stub(type, num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - alignment
    - ','
    - mem
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 196
    functionName: PORT_ZNewAligned_stub
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PORT_ZNewAligned_stub(type, alignment, mem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STUB_SAFE_CALL1
      Src: /src/nss/lib/freebl/stubs.c:209,1
    - Dst: malloc
      Src: /src/nss/lib/freebl/stubs.c:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 211
    functionName: PORT_Alloc_stub
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached:
    - malloc
    - STUB_SAFE_CALL1
    linkageType: ''
    returnType: void
    signature: 'void *

      PORT_Alloc_stub(size_t len)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STUB_SAFE_CALL1
      Src: /src/nss/lib/freebl/stubs.c:216,1
    - Dst: free
      Src: /src/nss/lib/freebl/stubs.c:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 218
    functionName: PORT_Free_stub
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached:
    - free
    - STUB_SAFE_CALL1
    linkageType: ''
    returnType: void
    signature: void PORT_Free_stub(void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STUB_SAFE_CALL1
      Src: /src/nss/lib/freebl/stubs.c:223,1
    - Dst: malloc
      Src: /src/nss/lib/freebl/stubs.c:224,1
    - Dst: memset
      Src: /src/nss/lib/freebl/stubs.c:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 229
    functionName: PORT_ZAlloc_stub
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached:
    - malloc
    - memset
    - STUB_SAFE_CALL1
    linkageType: ''
    returnType: void
    signature: 'void *

      PORT_ZAlloc_stub(size_t len)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STUB_SAFE_CALL3
      Src: /src/nss/lib/freebl/stubs.c:235,1
    - Dst: malloc
      Src: /src/nss/lib/freebl/stubs.c:250,1
    - Dst: memset
      Src: /src/nss/lib/freebl/stubs.c:255,1
    - Dst: assert
      Src: /src/nss/lib/freebl/stubs.c:259,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - bytes
    - alignment
    - mem
    argTypes:
    - size_t
    - size_t
    - void**
    assertStmts:
    - condition: (ret)
      pos:
        line_end: 258
        line_start: 258
        source_file: /src/nss/lib/freebl/stubs.c
    constantsTouched: []
    func_position:
      end: 262
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 262
    functionName: PORT_ZAllocAligned_stub
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached:
    - STUB_SAFE_CALL3
    - assert
    - malloc
    - memset
    linkageType: ''
    returnType: void
    signature: 'void *

      PORT_ZAllocAligned_stub(size_t bytes, size_t alignment, void **mem)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STUB_SAFE_CALL3
      Src: /src/nss/lib/freebl/stubs.c:267,1
    - Dst: PORT_ZAllocAligned_stub
      Src: /src/nss/lib/freebl/stubs.c:273,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - size
    - alignment
    - offset
    argTypes:
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 264
    functionDepth: 2
    functionLinenumber: 264
    functionLinenumberEnd: 280
    functionName: PORT_ZAllocAlignedOffset_stub
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached:
    - STUB_SAFE_CALL3
    - PORT_ZAllocAligned_stub
    linkageType: ''
    returnType: void
    signature: 'void *

      PORT_ZAllocAlignedOffset_stub(size_t size, size_t alignment, size_t offset)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STUB_SAFE_CALL2
      Src: /src/nss/lib/freebl/stubs.c:285,1
    - Dst: memset
      Src: /src/nss/lib/freebl/stubs.c:286,1
    - Dst: free
      Src: /src/nss/lib/freebl/stubs.c:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 288
    functionName: PORT_ZFree_stub
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached:
    - memset
    - STUB_SAFE_CALL2
    - free
    linkageType: ''
    returnType: void
    signature: void PORT_ZFree_stub(void *ptr, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STUB_SAFE_CALL1
      Src: /src/nss/lib/freebl/stubs.c:293,1
    - Dst: free
      Src: /src/nss/lib/freebl/stubs.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 295
    functionName: PR_Free_stub
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached:
    - free
    - STUB_SAFE_CALL1
    linkageType: ''
    returnType: void
    signature: void PR_Free_stub(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STUB_SAFE_CALL1
      Src: /src/nss/lib/freebl/stubs.c:311,1
    - Dst: abort
      Src: /src/nss/lib/freebl/stubs.c:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - chunksize
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 314
    functionName: PORT_NewArena_stub
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached:
    - abort
    - STUB_SAFE_CALL1
    linkageType: ''
    returnType: PLArenaPool
    signature: 'PLArenaPool *

      PORT_NewArena_stub(unsigned long chunksize)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STUB_SAFE_CALL2
      Src: /src/nss/lib/freebl/stubs.c:320,1
    - Dst: abort
      Src: /src/nss/lib/freebl/stubs.c:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - arena
    - size
    argTypes:
    - PLArenaPool*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 323
    functionName: PORT_ArenaAlloc_stub
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached:
    - STUB_SAFE_CALL2
    - abort
    linkageType: ''
    returnType: void
    signature: 'void *

      PORT_ArenaAlloc_stub(PLArenaPool *arena, size_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STUB_SAFE_CALL2
      Src: /src/nss/lib/freebl/stubs.c:329,1
    - Dst: abort
      Src: /src/nss/lib/freebl/stubs.c:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - arena
    - size
    argTypes:
    - PLArenaPool*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 332
    functionName: PORT_ArenaZAlloc_stub
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached:
    - STUB_SAFE_CALL2
    - abort
    linkageType: ''
    returnType: void
    signature: 'void *

      PORT_ArenaZAlloc_stub(PLArenaPool *arena, size_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STUB_SAFE_CALL2
      Src: /src/nss/lib/freebl/stubs.c:338,1
    - Dst: abort
      Src: /src/nss/lib/freebl/stubs.c:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - arena
    - zero
    argTypes:
    - PLArenaPool*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 340
    functionName: PORT_FreeArena_stub
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached:
    - STUB_SAFE_CALL2
    - abort
    linkageType: ''
    returnType: void
    signature: void PORT_FreeArena_stub(PLArenaPool *arena, PRBool zero)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: STUB_SAFE_CALL3
      Src: /src/nss/lib/freebl/stubs.c:350,1
    - Dst: open
      Src: /src/nss/lib/freebl/stubs.c:367,1
    - Dst: PORT_New_stub
      Src: /src/nss/lib/freebl/stubs.c:369,1
    - Dst: close
      Src: /src/nss/lib/freebl/stubs.c:373,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - name
    - flags
    - mode
    argTypes:
    - char*
    - PRIntn
    - PRIntn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 377
    functionName: PR_Open_stub
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached:
    - STUB_SAFE_CALL3
    - close
    - PORT_New_stub
    - open
    linkageType: ''
    returnType: PRFileDesc
    signature: 'PRFileDesc *

      PR_Open_stub(const char *name, PRIntn flags, PRIntn mode)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STUB_SAFE_CALL1
      Src: /src/nss/lib/freebl/stubs.c:384,1
    - Dst: PORT_New_stub
      Src: /src/nss/lib/freebl/stubs.c:386,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - fd
    argTypes:
    - PROsfd
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 391
    functionName: PR_ImportPipe_stub
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached:
    - PORT_New_stub
    - STUB_SAFE_CALL1
    linkageType: ''
    returnType: PRFileDesc
    signature: 'PRFileDesc *

      PR_ImportPipe_stub(PROsfd fd)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STUB_SAFE_CALL1
      Src: /src/nss/lib/freebl/stubs.c:397,1
    - Dst: close
      Src: /src/nss/lib/freebl/stubs.c:400,1
    - Dst: PORT_Free_stub
      Src: /src/nss/lib/freebl/stubs.c:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - fd
    argTypes:
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 393
    functionDepth: 2
    functionLinenumber: 393
    functionLinenumberEnd: 404
    functionName: PR_Close_stub
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached:
    - close
    - PORT_Free_stub
    - STUB_SAFE_CALL1
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus PR_Close_stub(PRFileDesc *fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STUB_SAFE_CALL3
      Src: /src/nss/lib/freebl/stubs.c:410,1
    - Dst: read
      Src: /src/nss/lib/freebl/stubs.c:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - fd
    - buf
    - amount
    argTypes:
    - PRFileDesc*
    - void*
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 414
    functionName: PR_Read_stub
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached:
    - STUB_SAFE_CALL3
    - read
    linkageType: ''
    returnType: PRInt32
    signature: PRInt32 PR_Read_stub(PRFileDesc *fd, void *buf, PRInt32 amount)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STUB_SAFE_CALL3
      Src: /src/nss/lib/freebl/stubs.c:421,1
    - Dst: lseek
      Src: /src/nss/lib/freebl/stubs.c:434,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - fd
    - offset
    - whence
    argTypes:
    - PRFileDesc*
    - PROffset32
    - PRSeekWhence
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 435
    functionName: PR_Seek_stub
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached:
    - STUB_SAFE_CALL3
    - lseek
    linkageType: ''
    returnType: PROffset32
    signature: PROffset32 PR_Seek_stub(PRFileDesc *fd, PROffset32 offset, PRSeekWhence
      whence)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STUB_SAFE_CALL2
      Src: /src/nss/lib/freebl/stubs.c:442,1
    - Dst: access
      Src: /src/nss/lib/freebl/stubs.c:454,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - name
    - how
    argTypes:
    - char*
    - PRAccessHow
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 437
    functionDepth: 1
    functionLinenumber: 437
    functionLinenumberEnd: 459
    functionName: PR_Access_stub
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached:
    - STUB_SAFE_CALL2
    - access
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus PR_Access_stub(const char *name, PRAccessHow how)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STUB_SAFE_CALL2
      Src: /src/nss/lib/freebl/stubs.c:470,1
    - Dst: dladdr
      Src: /src/nss/lib/freebl/stubs.c:472,1
    - Dst: PORT_Alloc_stub
      Src: /src/nss/lib/freebl/stubs.c:475,1
    - Dst: strlen
      Src: /src/nss/lib/freebl/stubs.c:475,1
    - Dst: strcpy
      Src: /src/nss/lib/freebl/stubs.c:477,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - name
    - addr
    argTypes:
    - char*
    - PRFuncPtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 464
    functionDepth: 2
    functionLinenumber: 464
    functionLinenumberEnd: 480
    functionName: PR_GetLibraryFilePathname_stub
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached:
    - strcpy
    - PORT_Alloc_stub
    - dladdr
    - STUB_SAFE_CALL2
    - strlen
    linkageType: ''
    returnType: char
    signature: 'char *

      PR_GetLibraryFilePathname_stub(const char *name, PRFuncPtr addr)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STUB_SAFE_CALL0
      Src: /src/nss/lib/freebl/stubs.c:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 490
    functionName: PORT_GetError_stub
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached:
    - STUB_SAFE_CALL0
    linkageType: ''
    returnType: int
    signature: int PORT_GetError_stub(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STUB_SAFE_CALL2
      Src: /src/nss/lib/freebl/stubs.c:495,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - p
    - n
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 492
    functionDepth: 1
    functionLinenumber: 492
    functionLinenumberEnd: 504
    functionName: PORT_SafeZero
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 18
    functionsReached:
    - STUB_SAFE_CALL2
    linkageType: ''
    returnType: void
    signature: void PORT_SafeZero(void *p, size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STUB_SAFE_CALL1
      Src: /src/nss/lib/freebl/stubs.c:509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 506
    functionDepth: 1
    functionLinenumber: 506
    functionLinenumberEnd: 511
    functionName: PORT_SetError_stub
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached:
    - STUB_SAFE_CALL1
    linkageType: ''
    returnType: void
    signature: void PORT_SetError_stub(int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STUB_SAFE_CALL3
      Src: /src/nss/lib/freebl/stubs.c:517,1
    - Dst: fprintf
      Src: /src/nss/lib/freebl/stubs.c:518,1
    - Dst: abort
      Src: /src/nss/lib/freebl/stubs.c:519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - s
    - file
    - ln
    argTypes:
    - char*
    - char*
    - PRIntn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 514
    functionDepth: 1
    functionLinenumber: 514
    functionLinenumberEnd: 520
    functionName: PR_Assert_stub
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached:
    - STUB_SAFE_CALL3
    - fprintf
    - abort
    linkageType: ''
    returnType: void
    signature: void PR_Assert_stub(const char *s, const char *file, PRIntn ln)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STUB_SAFE_CALL1
      Src: /src/nss/lib/freebl/stubs.c:526,1
    - Dst: usleep
      Src: /src/nss/lib/freebl/stubs.c:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ticks
    argTypes:
    - PRIntervalTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 523
    functionDepth: 1
    functionLinenumber: 523
    functionLinenumberEnd: 529
    functionName: PR_Sleep_stub
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached:
    - usleep
    - STUB_SAFE_CALL1
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus PR_Sleep_stub(PRIntervalTime ticks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STUB_SAFE_CALL0
      Src: /src/nss/lib/freebl/stubs.c:535,1
    - Dst: abort
      Src: /src/nss/lib/freebl/stubs.c:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 532
    functionDepth: 1
    functionLinenumber: 532
    functionLinenumberEnd: 538
    functionName: PR_NewLock_stub
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached:
    - STUB_SAFE_CALL0
    - abort
    linkageType: ''
    returnType: PRLock
    signature: 'PRLock *

      PR_NewLock_stub(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STUB_SAFE_CALL1
      Src: /src/nss/lib/freebl/stubs.c:543,1
    - Dst: abort
      Src: /src/nss/lib/freebl/stubs.c:544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - lock
    argTypes:
    - PRLock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 540
    functionDepth: 1
    functionLinenumber: 540
    functionLinenumberEnd: 546
    functionName: PR_Unlock_stub
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached:
    - abort
    - STUB_SAFE_CALL1
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus PR_Unlock_stub(PRLock *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STUB_SAFE_CALL1
      Src: /src/nss/lib/freebl/stubs.c:551,1
    - Dst: abort
      Src: /src/nss/lib/freebl/stubs.c:552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - lock
    argTypes:
    - PRLock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 548
    functionDepth: 1
    functionLinenumber: 548
    functionLinenumberEnd: 554
    functionName: PR_Lock_stub
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached:
    - abort
    - STUB_SAFE_CALL1
    linkageType: ''
    returnType: void
    signature: void PR_Lock_stub(PRLock *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STUB_SAFE_CALL1
      Src: /src/nss/lib/freebl/stubs.c:559,1
    - Dst: abort
      Src: /src/nss/lib/freebl/stubs.c:560,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - lock
    argTypes:
    - PRLock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 556
    functionDepth: 1
    functionLinenumber: 556
    functionLinenumberEnd: 562
    functionName: PR_DestroyLock_stub
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached:
    - abort
    - STUB_SAFE_CALL1
    linkageType: ''
    returnType: void
    signature: void PR_DestroyLock_stub(PRLock *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STUB_SAFE_CALL1
      Src: /src/nss/lib/freebl/stubs.c:567,1
    - Dst: abort
      Src: /src/nss/lib/freebl/stubs.c:568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - lock
    argTypes:
    - PRLock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 564
    functionDepth: 1
    functionLinenumber: 564
    functionLinenumberEnd: 570
    functionName: PR_NewCondVar_stub
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached:
    - abort
    - STUB_SAFE_CALL1
    linkageType: ''
    returnType: PRCondVar
    signature: 'PRCondVar *

      PR_NewCondVar_stub(PRLock *lock)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STUB_SAFE_CALL1
      Src: /src/nss/lib/freebl/stubs.c:575,1
    - Dst: abort
      Src: /src/nss/lib/freebl/stubs.c:576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cvar
    argTypes:
    - PRCondVar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 572
    functionDepth: 1
    functionLinenumber: 572
    functionLinenumberEnd: 578
    functionName: PR_NotifyCondVar_stub
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached:
    - abort
    - STUB_SAFE_CALL1
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus PR_NotifyCondVar_stub(PRCondVar *cvar)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STUB_SAFE_CALL1
      Src: /src/nss/lib/freebl/stubs.c:583,1
    - Dst: abort
      Src: /src/nss/lib/freebl/stubs.c:584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cvar
    argTypes:
    - PRCondVar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 586
    functionName: PR_NotifyAllCondVar_stub
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached:
    - abort
    - STUB_SAFE_CALL1
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus PR_NotifyAllCondVar_stub(PRCondVar *cvar)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STUB_SAFE_CALL2
      Src: /src/nss/lib/freebl/stubs.c:591,1
    - Dst: abort
      Src: /src/nss/lib/freebl/stubs.c:592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - cvar
    - timeout
    argTypes:
    - PRCondVar*
    - PRIntervalTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 588
    functionDepth: 1
    functionLinenumber: 588
    functionLinenumberEnd: 594
    functionName: PR_WaitCondVar_stub
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached:
    - STUB_SAFE_CALL2
    - abort
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus PR_WaitCondVar_stub(PRCondVar *cvar, PRIntervalTime timeout)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STUB_SAFE_CALL1
      Src: /src/nss/lib/freebl/stubs.c:599,1
    - Dst: secure_getenv
      Src: /src/nss/lib/freebl/stubs.c:601,1
    - Dst: getenv
      Src: /src/nss/lib/freebl/stubs.c:603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - var
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 596
    functionDepth: 1
    functionLinenumber: 596
    functionLinenumberEnd: 605
    functionName: PR_GetEnvSecure_stub
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached:
    - getenv
    - secure_getenv
    - STUB_SAFE_CALL1
    linkageType: ''
    returnType: char
    signature: 'char *

      PR_GetEnvSecure_stub(const char *var)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STUB_SAFE_CALL1
      Src: /src/nss/lib/freebl/stubs.c:610,1
    - Dst: abort
      Src: /src/nss/lib/freebl/stubs.c:611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cvar
    argTypes:
    - PRCondVar*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 607
    functionDepth: 1
    functionLinenumber: 607
    functionLinenumberEnd: 613
    functionName: PR_DestroyCondVar_stub
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached:
    - abort
    - STUB_SAFE_CALL1
    linkageType: ''
    returnType: void
    signature: void PR_DestroyCondVar_stub(PRCondVar *cvar)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STUB_SAFE_CALL2
      Src: /src/nss/lib/freebl/stubs.c:621,1
    - Dst: abort
      Src: /src/nss/lib/freebl/stubs.c:622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - once
    - func
    argTypes:
    - PRCallOnceType*
    - PRCallOnceFN
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 618
    functionDepth: 1
    functionLinenumber: 618
    functionLinenumberEnd: 624
    functionName: PR_CallOnce_stub
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached:
    - STUB_SAFE_CALL2
    - abort
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus PR_CallOnce_stub(PRCallOnceType *once, PRCallOnceFN func)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STUB_SAFE_CALL2
      Src: /src/nss/lib/freebl/stubs.c:632,1
    - Dst: abort
      Src: /src/nss/lib/freebl/stubs.c:633,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - zap
    - freeit
    argTypes:
    - SECItem*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 629
    functionDepth: 1
    functionLinenumber: 629
    functionLinenumberEnd: 634
    functionName: SECITEM_FreeItem_stub
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached:
    - STUB_SAFE_CALL2
    - abort
    linkageType: ''
    returnType: void
    signature: void SECITEM_FreeItem_stub(SECItem *zap, PRBool freeit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STUB_SAFE_CALL3
      Src: /src/nss/lib/freebl/stubs.c:639,1
    - Dst: abort
      Src: /src/nss/lib/freebl/stubs.c:640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - arena
    - item
    - len
    argTypes:
    - PLArenaPool*
    - SECItem*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 636
    functionDepth: 1
    functionLinenumber: 636
    functionLinenumberEnd: 642
    functionName: SECITEM_AllocItem_stub
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached:
    - STUB_SAFE_CALL3
    - abort
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      SECITEM_AllocItem_stub(PLArenaPool *arena, SECItem *item, unsigned int len)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STUB_SAFE_CALL2
      Src: /src/nss/lib/freebl/stubs.c:647,1
    - Dst: abort
      Src: /src/nss/lib/freebl/stubs.c:648,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 644
    functionDepth: 1
    functionLinenumber: 644
    functionLinenumberEnd: 650
    functionName: SECITEM_CompareItem_stub
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached:
    - STUB_SAFE_CALL2
    - abort
    linkageType: ''
    returnType: SECComparison
    signature: SECComparison SECITEM_CompareItem_stub(const SECItem *a, const SECItem
      *b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STUB_SAFE_CALL2
      Src: /src/nss/lib/freebl/stubs.c:655,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/freebl/stubs.c:670,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 652
    functionDepth: 1
    functionLinenumber: 652
    functionLinenumberEnd: 674
    functionName: SECITEM_ItemsAreEqual_stub
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached:
    - PORT_Memcmp
    - STUB_SAFE_CALL2
    linkageType: ''
    returnType: PRBool
    signature: PRBool SECITEM_ItemsAreEqual_stub(const SECItem *a, const SECItem *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STUB_SAFE_CALL3
      Src: /src/nss/lib/freebl/stubs.c:679,1
    - Dst: abort
      Src: /src/nss/lib/freebl/stubs.c:680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - arena
    - to
    - from
    argTypes:
    - PLArenaPool*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 676
    functionDepth: 1
    functionLinenumber: 676
    functionLinenumberEnd: 682
    functionName: SECITEM_CopyItem_stub
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached:
    - STUB_SAFE_CALL3
    - abort
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SECITEM_CopyItem_stub(PLArenaPool *arena, SECItem *to, const
      SECItem *from)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STUB_SAFE_CALL1
      Src: /src/nss/lib/freebl/stubs.c:687,1
    - Dst: abort
      Src: /src/nss/lib/freebl/stubs.c:688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - oid
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 684
    functionDepth: 1
    functionLinenumber: 684
    functionLinenumberEnd: 690
    functionName: SECOID_FindOIDTag_stub
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached:
    - abort
    - STUB_SAFE_CALL1
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag SECOID_FindOIDTag_stub(const SECItem *oid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STUB_SAFE_CALL2
      Src: /src/nss/lib/freebl/stubs.c:699,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/stubs.c:702,1
    - Dst: PORT_Free_stub
      Src: /src/nss/lib/freebl/stubs.c:703,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/stubs.c:705,1
    - Dst: PORT_Free_stub
      Src: /src/nss/lib/freebl/stubs.c:707,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - zap
    - freeit
    argTypes:
    - SECItem*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 696
    functionDepth: 2
    functionLinenumber: 696
    functionLinenumberEnd: 710
    functionName: SECITEM_ZfreeItem_stub
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached:
    - STUB_SAFE_CALL2
    - PORT_Free_stub
    - PORT_Memset
    linkageType: ''
    returnType: void
    signature: void SECITEM_ZfreeItem_stub(SECItem *zap, PRBool freeit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STUB_SAFE_CALL3
      Src: /src/nss/lib/freebl/stubs.c:715,1
    - Dst: abort
      Src: /src/nss/lib/freebl/stubs.c:716,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - a
    - b
    - n
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 712
    functionDepth: 1
    functionLinenumber: 712
    functionLinenumberEnd: 717
    functionName: NSS_SecureMemcmp_stub
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached:
    - STUB_SAFE_CALL3
    - abort
    linkageType: ''
    returnType: int
    signature: int NSS_SecureMemcmp_stub(const void *a, const void *b, size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STUB_SAFE_CALL2
      Src: /src/nss/lib/freebl/stubs.c:722,1
    - Dst: abort
      Src: /src/nss/lib/freebl/stubs.c:723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mem
    - n
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 719
    functionDepth: 1
    functionLinenumber: 719
    functionLinenumberEnd: 724
    functionName: NSS_SecureMemcmpZero_stub
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached:
    - STUB_SAFE_CALL2
    - abort
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int NSS_SecureMemcmpZero_stub(const void *mem, size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STUB_SAFE_CALL5
      Src: /src/nss/lib/freebl/stubs.c:729,1
    - Dst: abort
      Src: /src/nss/lib/freebl/stubs.c:730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - dest
    - src0
    - src1
    - n
    - b
    argTypes:
    - void*
    - void*
    - void*
    - size_t
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 726
    functionDepth: 1
    functionLinenumber: 726
    functionLinenumberEnd: 731
    functionName: NSS_SecureSelect_stub
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached:
    - STUB_SAFE_CALL5
    - abort
    linkageType: ''
    returnType: void
    signature: void NSS_SecureSelect_stub(void *dest, const void *src0, const void
      *src1, size_t n, unsigned char b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STUB_SAFE_CALL0
      Src: /src/nss/lib/freebl/stubs.c:737,1
    - Dst: PR_GetEnvSecure_stub
      Src: /src/nss/lib/freebl/stubs.c:741,1
    - Dst: strcasecmp
      Src: /src/nss/lib/freebl/stubs.c:745,1
    - Dst: strcasecmp
      Src: /src/nss/lib/freebl/stubs.c:746,1
    - Dst: strcasecmp
      Src: /src/nss/lib/freebl/stubs.c:747,1
    - Dst: fopen
      Src: /src/nss/lib/freebl/stubs.c:758,1
    - Dst: fread
      Src: /src/nss/lib/freebl/stubs.c:762,1
    - Dst: fclose
      Src: /src/nss/lib/freebl/stubs.c:763,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 734
    functionDepth: 2
    functionLinenumber: 734
    functionLinenumberEnd: 771
    functionName: NSS_GetSystemFIPSEnabled_stub
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached:
    - fclose
    - STUB_SAFE_CALL0
    - PR_GetEnvSecure_stub
    - fopen
    - fread
    - strcasecmp
    linkageType: ''
    returnType: PRBool
    signature: PRBool NSS_GetSystemFIPSEnabled_stub(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STUB_FETCH_FUNCTION
      Src: /src/nss/lib/freebl/stubs.c:782,1
    - Dst: STUB_FETCH_FUNCTION
      Src: /src/nss/lib/freebl/stubs.c:783,1
    - Dst: STUB_FETCH_FUNCTION
      Src: /src/nss/lib/freebl/stubs.c:784,1
    - Dst: STUB_FETCH_FUNCTION
      Src: /src/nss/lib/freebl/stubs.c:785,1
    - Dst: STUB_FETCH_FUNCTION
      Src: /src/nss/lib/freebl/stubs.c:786,1
    - Dst: STUB_FETCH_FUNCTION
      Src: /src/nss/lib/freebl/stubs.c:787,1
    - Dst: STUB_FETCH_FUNCTION
      Src: /src/nss/lib/freebl/stubs.c:788,1
    - Dst: STUB_FETCH_FUNCTION
      Src: /src/nss/lib/freebl/stubs.c:789,1
    - Dst: STUB_FETCH_FUNCTION
      Src: /src/nss/lib/freebl/stubs.c:790,1
    - Dst: STUB_FETCH_FUNCTION
      Src: /src/nss/lib/freebl/stubs.c:791,1
    - Dst: STUB_FETCH_FUNCTION
      Src: /src/nss/lib/freebl/stubs.c:792,1
    - Dst: STUB_FETCH_FUNCTION
      Src: /src/nss/lib/freebl/stubs.c:793,1
    - Dst: STUB_FETCH_FUNCTION
      Src: /src/nss/lib/freebl/stubs.c:794,1
    - Dst: STUB_FETCH_FUNCTION
      Src: /src/nss/lib/freebl/stubs.c:795,1
    - Dst: STUB_FETCH_FUNCTION
      Src: /src/nss/lib/freebl/stubs.c:796,1
    - Dst: STUB_FETCH_FUNCTION
      Src: /src/nss/lib/freebl/stubs.c:797,1
    - Dst: STUB_FETCH_FUNCTION
      Src: /src/nss/lib/freebl/stubs.c:798,1
    - Dst: STUB_FETCH_FUNCTION
      Src: /src/nss/lib/freebl/stubs.c:799,1
    - Dst: STUB_FETCH_FUNCTION
      Src: /src/nss/lib/freebl/stubs.c:800,1
    - Dst: STUB_FETCH_FUNCTION
      Src: /src/nss/lib/freebl/stubs.c:801,1
    - Dst: STUB_FETCH_FUNCTION
      Src: /src/nss/lib/freebl/stubs.c:802,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 1
    argNames:
    - lib
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 779
    functionDepth: 1
    functionLinenumber: 779
    functionLinenumberEnd: 804
    functionName: freebl_InitNSPR
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached:
    - STUB_FETCH_FUNCTION
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus freebl_InitNSPR(void *lib)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STUB_FETCH_FUNCTION
      Src: /src/nss/lib/freebl/stubs.c:809,1
    - Dst: STUB_FETCH_FUNCTION
      Src: /src/nss/lib/freebl/stubs.c:810,1
    - Dst: STUB_FETCH_FUNCTION
      Src: /src/nss/lib/freebl/stubs.c:811,1
    - Dst: STUB_FETCH_FUNCTION
      Src: /src/nss/lib/freebl/stubs.c:812,1
    - Dst: STUB_FETCH_FUNCTION
      Src: /src/nss/lib/freebl/stubs.c:813,1
    - Dst: STUB_FETCH_FUNCTION
      Src: /src/nss/lib/freebl/stubs.c:814,1
    - Dst: STUB_FETCH_FUNCTION
      Src: /src/nss/lib/freebl/stubs.c:815,1
    - Dst: STUB_FETCH_FUNCTION
      Src: /src/nss/lib/freebl/stubs.c:816,1
    - Dst: STUB_FETCH_FUNCTION
      Src: /src/nss/lib/freebl/stubs.c:817,1
    - Dst: STUB_FETCH_FUNCTION
      Src: /src/nss/lib/freebl/stubs.c:818,1
    - Dst: STUB_FETCH_FUNCTION
      Src: /src/nss/lib/freebl/stubs.c:819,1
    - Dst: STUB_FETCH_FUNCTION
      Src: /src/nss/lib/freebl/stubs.c:820,1
    - Dst: STUB_FETCH_FUNCTION
      Src: /src/nss/lib/freebl/stubs.c:821,1
    - Dst: STUB_FETCH_FUNCTION
      Src: /src/nss/lib/freebl/stubs.c:822,1
    - Dst: STUB_FETCH_FUNCTION
      Src: /src/nss/lib/freebl/stubs.c:823,1
    - Dst: STUB_FETCH_FUNCTION
      Src: /src/nss/lib/freebl/stubs.c:824,1
    - Dst: STUB_FETCH_FUNCTION
      Src: /src/nss/lib/freebl/stubs.c:825,1
    - Dst: STUB_FETCH_FUNCTION
      Src: /src/nss/lib/freebl/stubs.c:826,1
    - Dst: STUB_FETCH_FUNCTION
      Src: /src/nss/lib/freebl/stubs.c:827,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 1
    argNames:
    - lib
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 806
    functionDepth: 1
    functionLinenumber: 806
    functionLinenumberEnd: 829
    functionName: freebl_InitNSSUtil
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached:
    - STUB_FETCH_FUNCTION
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus freebl_InitNSSUtil(void *lib)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - libName
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 834
    functionDepth: 0
    functionLinenumber: 834
    functionLinenumberEnd: 836
    functionName: freebl_getLibrary
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: freebl_getLibrary(libName)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lib
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 837
    functionDepth: 0
    functionLinenumber: 837
    functionLinenumberEnd: 840
    functionName: freebl_releaseLibrary
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: freebl_releaseLibrary(lib)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: freebl_releaseLibrary
      Src: /src/nss/lib/freebl/stubs.c:846,1
    - Dst: freebl_releaseLibrary
      Src: /src/nss/lib/freebl/stubs.c:847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 844
    functionDepth: 1
    functionLinenumber: 844
    functionLinenumberEnd: 848
    functionName: FREEBL_unload
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached:
    - freebl_releaseLibrary
    linkageType: ''
    returnType: void
    signature: void FREEBL_unload()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: freebl_getLibrary
      Src: /src/nss/lib/freebl/stubs.c:867,1
    - Dst: freebl_InitNSPR
      Src: /src/nss/lib/freebl/stubs.c:871,1
    - Dst: freebl_releaseLibrary
      Src: /src/nss/lib/freebl/stubs.c:873,1
    - Dst: freebl_getLibrary
      Src: /src/nss/lib/freebl/stubs.c:880,1
    - Dst: freebl_InitNSSUtil
      Src: /src/nss/lib/freebl/stubs.c:884,1
    - Dst: freebl_releaseLibrary
      Src: /src/nss/lib/freebl/stubs.c:886,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 857
    functionDepth: 2
    functionLinenumber: 857
    functionLinenumberEnd: 894
    functionName: FREEBL_InitStubs
    functionSourceFile: /src/nss/lib/freebl/stubs.c
    functionUses: 0
    functionsReached:
    - freebl_InitNSPR
    - freebl_getLibrary
    - freebl_InitNSSUtil
    - freebl_releaseLibrary
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus FREEBL_InitStubs()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - encrypt
    - ','
    - keysize
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 86
    functionName: native_aes_init
    functionSourceFile: /src/nss/lib/freebl/aes-armv8.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: native_aes_init(encrypt, keysize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 84
    functionName: makePinv
    functionSourceFile: /src/nss/lib/freebl/mksp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void makePinv(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/lib/freebl/mksp.c:92,1
    - Dst: printf
      Src: /src/nss/lib/freebl/mksp.c:106,1
    - Dst: printf
      Src: /src/nss/lib/freebl/mksp.c:109,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 111
    functionName: makeSP
    functionSourceFile: /src/nss/lib/freebl/mksp.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void makeSP(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: makePinv
      Src: /src/nss/lib/freebl/mksp.c:116,1
    - Dst: makeSP
      Src: /src/nss/lib/freebl/mksp.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 119
    functionName: main
    functionSourceFile: /src/nss/lib/freebl/mksp.c
    functionUses: 6
    functionsReached:
    - makePinv
    - makeSP
    linkageType: ''
    returnType: int
    signature: int main()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: GETU32
    functionSourceFile: /src/nss/lib/freebl/camellia.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETU32(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ct
    - ','
    - st
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: PUTU32
    functionSourceFile: /src/nss/lib/freebl/camellia.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUTU32(ct, st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: GETU32
    functionSourceFile: /src/nss/lib/freebl/camellia.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETU32(pt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ct
    - ','
    - st
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 63
    functionName: PUTU32
    functionSourceFile: /src/nss/lib/freebl/camellia.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUTU32(ct, st)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - INDEX
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: CamelliaSubkeyL
    functionSourceFile: /src/nss/lib/freebl/camellia.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CamelliaSubkeyL(INDEX)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - INDEX
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: CamelliaSubkeyR
    functionSourceFile: /src/nss/lib/freebl/camellia.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CamelliaSubkeyR(INDEX)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: CAMELLIA_RR8
    functionSourceFile: /src/nss/lib/freebl/camellia.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CAMELLIA_RR8(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: CAMELLIA_RL1
    functionSourceFile: /src/nss/lib/freebl/camellia.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CAMELLIA_RL1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: CAMELLIA_RL8
    functionSourceFile: /src/nss/lib/freebl/camellia.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CAMELLIA_RL8(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - ll
    - ','
    - lr
    - ','
    - rl
    - ','
    - rr
    - ','
    - w0
    - ','
    - w1
    - ','
    - bits
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 84
    functionName: CAMELLIA_ROLDQ
    functionSourceFile: /src/nss/lib/freebl/camellia.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CAMELLIA_ROLDQ(ll, lr, rl, rr, w0, w1, bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - ll
    - ','
    - lr
    - ','
    - rl
    - ','
    - rr
    - ','
    - w0
    - ','
    - w1
    - ','
    - bits
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 94
    functionName: CAMELLIA_ROLDQo32
    functionSourceFile: /src/nss/lib/freebl/camellia.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CAMELLIA_ROLDQo32(ll, lr, rl, rr, w0, w1, bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - INDEX
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 96
    functionName: CAMELLIA_SP1110
    functionSourceFile: /src/nss/lib/freebl/camellia.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CAMELLIA_SP1110(INDEX)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - INDEX
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 97
    functionName: CAMELLIA_SP0222
    functionSourceFile: /src/nss/lib/freebl/camellia.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CAMELLIA_SP0222(INDEX)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - INDEX
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 98
    functionName: CAMELLIA_SP3033
    functionSourceFile: /src/nss/lib/freebl/camellia.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CAMELLIA_SP3033(INDEX)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - INDEX
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 99
    functionName: CAMELLIA_SP4404
    functionSourceFile: /src/nss/lib/freebl/camellia.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CAMELLIA_SP4404(INDEX)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 21
    argNames:
    - (
    - xl
    - ','
    - xr
    - ','
    - kl
    - ','
    - kr
    - ','
    - yl
    - ','
    - yr
    - ','
    - il
    - ','
    - ir
    - ','
    - t0
    - ','
    - t1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 118
    functionName: CAMELLIA_F
    functionSourceFile: /src/nss/lib/freebl/camellia.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CAMELLIA_F(xl, xr, kl, kr, yl, yr, il, ir, t0, t1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 25
    argNames:
    - (
    - ll
    - ','
    - lr
    - ','
    - rl
    - ','
    - rr
    - ','
    - kll
    - ','
    - klr
    - ','
    - krl
    - ','
    - krr
    - ','
    - t0
    - ','
    - t1
    - ','
    - t2
    - ','
    - t3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 139
    functionName: CAMELLIA_FLS
    functionSourceFile: /src/nss/lib/freebl/camellia.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CAMELLIA_FLS(ll, lr, rl, rr, kll, klr, krl, krr, t0, t1, t2, t3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 21
    argNames:
    - (
    - xl
    - ','
    - xr
    - ','
    - kl
    - ','
    - kr
    - ','
    - yl
    - ','
    - yr
    - ','
    - il
    - ','
    - ir
    - ','
    - t0
    - ','
    - t1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 158
    functionName: CAMELLIA_ROUNDSM
    functionSourceFile: /src/nss/lib/freebl/camellia.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CAMELLIA_ROUNDSM(xl, xr, kl, kr, yl, yr, il, ir, t0, t1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 431
    functionName: subl
    functionSourceFile: /src/nss/lib/freebl/camellia.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: subl(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 432
    functionName: subr
    functionSourceFile: /src/nss/lib/freebl/camellia.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: subr(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GETU32
      Src: /src/nss/lib/freebl/camellia.c:448,1
    - Dst: GETU32
      Src: /src/nss/lib/freebl/camellia.c:449,1
    - Dst: GETU32
      Src: /src/nss/lib/freebl/camellia.c:450,1
    - Dst: GETU32
      Src: /src/nss/lib/freebl/camellia.c:451,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:455,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:456,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:457,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:458,1
    - Dst: CAMELLIA_ROLDQ
      Src: /src/nss/lib/freebl/camellia.c:459,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:460,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:461,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:462,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:463,1
    - Dst: CAMELLIA_ROLDQ
      Src: /src/nss/lib/freebl/camellia.c:464,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:465,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:466,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:467,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:468,1
    - Dst: CAMELLIA_ROLDQ
      Src: /src/nss/lib/freebl/camellia.c:469,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:470,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:471,1
    - Dst: CAMELLIA_ROLDQ
      Src: /src/nss/lib/freebl/camellia.c:472,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:473,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:474,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:475,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:476,1
    - Dst: CAMELLIA_ROLDQ
      Src: /src/nss/lib/freebl/camellia.c:477,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:478,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:479,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:480,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:481,1
    - Dst: CAMELLIA_ROLDQ
      Src: /src/nss/lib/freebl/camellia.c:482,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:483,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:484,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:485,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:486,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:489,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:490,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:491,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:492,1
    - Dst: CAMELLIA_F
      Src: /src/nss/lib/freebl/camellia.c:493,1
    - Dst: CAMELLIA_F
      Src: /src/nss/lib/freebl/camellia.c:498,1
    - Dst: CAMELLIA_F
      Src: /src/nss/lib/freebl/camellia.c:501,1
    - Dst: CAMELLIA_F
      Src: /src/nss/lib/freebl/camellia.c:506,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:513,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:514,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:515,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:516,1
    - Dst: CAMELLIA_ROLDQ
      Src: /src/nss/lib/freebl/camellia.c:517,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:518,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:519,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:520,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:521,1
    - Dst: CAMELLIA_ROLDQ
      Src: /src/nss/lib/freebl/camellia.c:522,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:523,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:524,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:525,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:526,1
    - Dst: CAMELLIA_ROLDQ
      Src: /src/nss/lib/freebl/camellia.c:527,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:528,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:529,1
    - Dst: CAMELLIA_ROLDQ
      Src: /src/nss/lib/freebl/camellia.c:530,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:531,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:532,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:533,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:534,1
    - Dst: CAMELLIA_ROLDQo32
      Src: /src/nss/lib/freebl/camellia.c:535,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:536,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:537,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:538,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:539,1
    - Dst: CAMELLIA_ROLDQ
      Src: /src/nss/lib/freebl/camellia.c:540,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:541,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:542,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:543,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:544,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:547,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:547,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:548,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:548,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:549,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:549,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:550,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:550,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:551,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:551,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:552,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:552,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:553,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:553,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:553,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:554,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:554,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:554,1
    - Dst: CAMELLIA_RL1
      Src: /src/nss/lib/freebl/camellia.c:554,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:555,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:555,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:556,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:556,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:557,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:557,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:558,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:558,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:559,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:559,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:560,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:560,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:561,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:561,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:561,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:562,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:562,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:562,1
    - Dst: CAMELLIA_RL1
      Src: /src/nss/lib/freebl/camellia.c:562,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:563,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:563,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:564,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:564,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:565,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:565,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:566,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:566,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:567,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:567,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:568,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:568,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:569,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:569,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:570,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:570,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:573,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:574,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:575,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:576,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:577,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:578,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:579,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:580,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:581,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:582,1
    - Dst: CAMELLIA_RL1
      Src: /src/nss/lib/freebl/camellia.c:582,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:583,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:584,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:585,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:586,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:587,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:588,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:589,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:590,1
    - Dst: CAMELLIA_RL1
      Src: /src/nss/lib/freebl/camellia.c:590,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:591,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:592,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:593,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:594,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:595,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:596,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:597,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:598,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:601,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:601,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:601,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:602,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:602,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:602,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:603,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:603,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:604,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:604,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:605,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:605,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:605,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:606,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:606,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:606,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:607,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:607,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:607,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:608,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:608,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:608,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:609,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:609,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:609,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:610,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:610,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:610,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:611,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:611,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:611,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:612,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:612,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:612,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:613,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:613,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:613,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:614,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:614,1
    - Dst: CAMELLIA_RL1
      Src: /src/nss/lib/freebl/camellia.c:614,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:615,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:615,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:616,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:616,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:617,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:617,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:618,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:618,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:619,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:619,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:620,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:620,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:621,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:621,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:621,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:622,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:622,1
    - Dst: CAMELLIA_RL1
      Src: /src/nss/lib/freebl/camellia.c:622,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:623,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:623,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:624,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:624,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:625,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:625,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:625,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:626,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:626,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:626,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:627,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:627,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:627,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:628,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:628,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:628,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:629,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:629,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:629,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:630,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:630,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:630,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:631,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:631,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:631,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:632,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:632,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:632,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:633,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:633,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:633,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:634,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:634,1
    - Dst: CAMELLIA_RL1
      Src: /src/nss/lib/freebl/camellia.c:634,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:635,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:635,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:636,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:636,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:637,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:637,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:638,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:638,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:639,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:639,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:640,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:640,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:641,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:641,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:641,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:642,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:642,1
    - Dst: CAMELLIA_RL1
      Src: /src/nss/lib/freebl/camellia.c:642,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:643,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:643,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:644,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:644,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:645,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:645,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:645,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:646,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:646,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:646,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:647,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:647,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:647,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:648,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:648,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:648,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:649,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:649,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:649,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:650,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:650,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:650,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:651,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:651,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:651,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:652,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:652,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:652,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:653,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:653,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:654,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:654,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:655,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:655,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:655,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:656,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:656,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:656,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:659,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:659,1
    - Dst: CAMELLIA_RL8
      Src: /src/nss/lib/freebl/camellia.c:659,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:660,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:660,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:660,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:661,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:661,1
    - Dst: CAMELLIA_RL8
      Src: /src/nss/lib/freebl/camellia.c:661,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:662,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:662,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:662,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:663,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:663,1
    - Dst: CAMELLIA_RL8
      Src: /src/nss/lib/freebl/camellia.c:663,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:664,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:664,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:664,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:665,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:665,1
    - Dst: CAMELLIA_RL8
      Src: /src/nss/lib/freebl/camellia.c:665,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:666,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:666,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:666,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:667,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:667,1
    - Dst: CAMELLIA_RL8
      Src: /src/nss/lib/freebl/camellia.c:667,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:668,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:668,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:668,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:669,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:669,1
    - Dst: CAMELLIA_RL8
      Src: /src/nss/lib/freebl/camellia.c:669,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:670,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:670,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:670,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:671,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:671,1
    - Dst: CAMELLIA_RL8
      Src: /src/nss/lib/freebl/camellia.c:671,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:672,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:672,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:672,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:673,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:673,1
    - Dst: CAMELLIA_RL8
      Src: /src/nss/lib/freebl/camellia.c:673,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:674,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:674,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:674,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:675,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:675,1
    - Dst: CAMELLIA_RL8
      Src: /src/nss/lib/freebl/camellia.c:675,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:676,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:676,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:676,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:677,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:677,1
    - Dst: CAMELLIA_RL8
      Src: /src/nss/lib/freebl/camellia.c:677,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:678,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:678,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:678,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:679,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:679,1
    - Dst: CAMELLIA_RL8
      Src: /src/nss/lib/freebl/camellia.c:679,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:680,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:680,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:680,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:681,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:681,1
    - Dst: CAMELLIA_RL8
      Src: /src/nss/lib/freebl/camellia.c:681,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:682,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:682,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:682,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:683,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:683,1
    - Dst: CAMELLIA_RL8
      Src: /src/nss/lib/freebl/camellia.c:683,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:684,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:684,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:684,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:685,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:685,1
    - Dst: CAMELLIA_RL8
      Src: /src/nss/lib/freebl/camellia.c:685,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:686,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:686,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:686,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:687,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:687,1
    - Dst: CAMELLIA_RL8
      Src: /src/nss/lib/freebl/camellia.c:687,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:688,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:688,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:688,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:689,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:689,1
    - Dst: CAMELLIA_RL8
      Src: /src/nss/lib/freebl/camellia.c:689,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:690,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:690,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:690,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:691,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:691,1
    - Dst: CAMELLIA_RL8
      Src: /src/nss/lib/freebl/camellia.c:691,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:692,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:692,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:692,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:693,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:693,1
    - Dst: CAMELLIA_RL8
      Src: /src/nss/lib/freebl/camellia.c:693,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:694,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:694,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 226
    argCount: 2
    argNames:
    - key
    - subkey
    argTypes:
    - unsigned char*
    - PRUint32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 697
    functionName: camellia_setup128
    functionSourceFile: /src/nss/lib/freebl/camellia.c
    functionUses: 0
    functionsReached:
    - CAMELLIA_F
    - GETU32
    - CamelliaSubkeyL
    - subr
    - CAMELLIA_RL8
    - CamelliaSubkeyR
    - subl
    - CAMELLIA_ROLDQ
    - CAMELLIA_RL1
    - CAMELLIA_ROLDQo32
    linkageType: ''
    returnType: void
    signature: void camellia_setup128(const unsigned char *key, PRUint32 *subkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GETU32
      Src: /src/nss/lib/freebl/camellia.c:717,1
    - Dst: GETU32
      Src: /src/nss/lib/freebl/camellia.c:718,1
    - Dst: GETU32
      Src: /src/nss/lib/freebl/camellia.c:719,1
    - Dst: GETU32
      Src: /src/nss/lib/freebl/camellia.c:720,1
    - Dst: GETU32
      Src: /src/nss/lib/freebl/camellia.c:721,1
    - Dst: GETU32
      Src: /src/nss/lib/freebl/camellia.c:722,1
    - Dst: GETU32
      Src: /src/nss/lib/freebl/camellia.c:723,1
    - Dst: GETU32
      Src: /src/nss/lib/freebl/camellia.c:724,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:727,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:728,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:729,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:730,1
    - Dst: CAMELLIA_ROLDQo32
      Src: /src/nss/lib/freebl/camellia.c:731,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:732,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:733,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:734,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:735,1
    - Dst: CAMELLIA_ROLDQ
      Src: /src/nss/lib/freebl/camellia.c:736,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:737,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:738,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:739,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:740,1
    - Dst: CAMELLIA_ROLDQ
      Src: /src/nss/lib/freebl/camellia.c:741,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:742,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:743,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:744,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:745,1
    - Dst: CAMELLIA_ROLDQo32
      Src: /src/nss/lib/freebl/camellia.c:746,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:747,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:748,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:749,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:750,1
    - Dst: CAMELLIA_ROLDQ
      Src: /src/nss/lib/freebl/camellia.c:753,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:754,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:755,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:756,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:757,1
    - Dst: CAMELLIA_ROLDQ
      Src: /src/nss/lib/freebl/camellia.c:758,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:759,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:760,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:761,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:762,1
    - Dst: CAMELLIA_ROLDQ
      Src: /src/nss/lib/freebl/camellia.c:763,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:764,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:765,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:766,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:767,1
    - Dst: CAMELLIA_ROLDQo32
      Src: /src/nss/lib/freebl/camellia.c:768,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:769,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:770,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:771,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:772,1
    - Dst: CAMELLIA_ROLDQo32
      Src: /src/nss/lib/freebl/camellia.c:773,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:776,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:777,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:778,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:779,1
    - Dst: CAMELLIA_F
      Src: /src/nss/lib/freebl/camellia.c:780,1
    - Dst: CAMELLIA_F
      Src: /src/nss/lib/freebl/camellia.c:785,1
    - Dst: CAMELLIA_F
      Src: /src/nss/lib/freebl/camellia.c:790,1
    - Dst: CAMELLIA_F
      Src: /src/nss/lib/freebl/camellia.c:795,1
    - Dst: CAMELLIA_F
      Src: /src/nss/lib/freebl/camellia.c:806,1
    - Dst: CAMELLIA_F
      Src: /src/nss/lib/freebl/camellia.c:811,1
    - Dst: CAMELLIA_ROLDQ
      Src: /src/nss/lib/freebl/camellia.c:818,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:819,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:820,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:821,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:822,1
    - Dst: CAMELLIA_ROLDQ
      Src: /src/nss/lib/freebl/camellia.c:823,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:824,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:825,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:826,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:827,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:828,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:829,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:830,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:831,1
    - Dst: CAMELLIA_ROLDQo32
      Src: /src/nss/lib/freebl/camellia.c:832,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:833,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:834,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:835,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:836,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:839,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:840,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:841,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:842,1
    - Dst: CAMELLIA_ROLDQ
      Src: /src/nss/lib/freebl/camellia.c:843,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:844,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:845,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:846,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:847,1
    - Dst: CAMELLIA_ROLDQ
      Src: /src/nss/lib/freebl/camellia.c:848,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:849,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:850,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:851,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:852,1
    - Dst: CAMELLIA_ROLDQo32
      Src: /src/nss/lib/freebl/camellia.c:853,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:854,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:855,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:856,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:857,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:860,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:860,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:861,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:861,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:862,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:862,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:863,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:863,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:864,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:864,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:865,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:865,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:866,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:866,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:866,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:867,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:867,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:867,1
    - Dst: CAMELLIA_RL1
      Src: /src/nss/lib/freebl/camellia.c:867,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:868,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:868,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:869,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:869,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:870,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:870,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:871,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:871,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:872,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:872,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:873,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:873,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:874,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:874,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:874,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:875,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:875,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:875,1
    - Dst: CAMELLIA_RL1
      Src: /src/nss/lib/freebl/camellia.c:875,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:876,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:876,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:877,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:877,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:878,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:878,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:879,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:879,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:880,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:880,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:881,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:881,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:882,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:882,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:882,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:883,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:883,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:883,1
    - Dst: CAMELLIA_RL1
      Src: /src/nss/lib/freebl/camellia.c:883,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:884,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:884,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:885,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:885,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:886,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:886,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:887,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:887,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:888,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:888,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:889,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:889,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:890,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:890,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:891,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:891,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:894,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:895,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:896,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:897,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:898,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:899,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:900,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:901,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:902,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:903,1
    - Dst: CAMELLIA_RL1
      Src: /src/nss/lib/freebl/camellia.c:903,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:904,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:905,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:906,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:907,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:908,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:909,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:910,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:911,1
    - Dst: CAMELLIA_RL1
      Src: /src/nss/lib/freebl/camellia.c:911,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:912,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:913,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:914,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:915,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:916,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:917,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:918,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:919,1
    - Dst: CAMELLIA_RL1
      Src: /src/nss/lib/freebl/camellia.c:919,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:920,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:921,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:922,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:923,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:924,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:925,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:926,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:927,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:930,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:930,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:930,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:931,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:931,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:931,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:932,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:932,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:933,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:933,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:934,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:934,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:934,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:935,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:935,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:935,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:936,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:936,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:936,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:937,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:937,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:937,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:938,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:938,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:938,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:939,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:939,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:939,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:940,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:940,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:940,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:941,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:941,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:941,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:942,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:942,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:942,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:943,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:943,1
    - Dst: CAMELLIA_RL1
      Src: /src/nss/lib/freebl/camellia.c:943,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:944,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:944,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:945,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:945,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:946,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:946,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:947,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:947,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:948,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:948,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:949,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:949,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:950,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:950,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:950,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:951,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:951,1
    - Dst: CAMELLIA_RL1
      Src: /src/nss/lib/freebl/camellia.c:951,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:952,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:952,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:953,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:953,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:954,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:954,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:954,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:955,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:955,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:955,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:956,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:956,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:956,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:957,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:957,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:957,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:958,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:958,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:958,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:959,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:959,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:959,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:960,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:960,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:960,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:961,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:961,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:961,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:962,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:962,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:962,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:963,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:963,1
    - Dst: CAMELLIA_RL1
      Src: /src/nss/lib/freebl/camellia.c:963,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:964,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:964,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:965,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:965,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:966,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:966,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:967,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:967,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:968,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:968,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:969,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:969,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:970,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:970,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:970,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:971,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:971,1
    - Dst: CAMELLIA_RL1
      Src: /src/nss/lib/freebl/camellia.c:971,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:972,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:972,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:973,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:973,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:974,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:974,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:974,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:975,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:975,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:975,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:976,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:976,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:976,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:977,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:977,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:977,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:978,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:978,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:978,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:979,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:979,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:979,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:980,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:980,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:980,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:981,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:981,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:981,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:982,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:982,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:982,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:983,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:983,1
    - Dst: CAMELLIA_RL1
      Src: /src/nss/lib/freebl/camellia.c:983,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:984,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:984,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:985,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:985,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:986,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:986,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:987,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:987,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:988,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:988,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:989,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:989,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:990,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:990,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:990,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:991,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:991,1
    - Dst: CAMELLIA_RL1
      Src: /src/nss/lib/freebl/camellia.c:991,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:992,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:992,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:993,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:993,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:994,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:994,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:994,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:995,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:995,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:995,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:996,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:996,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:996,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:997,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:997,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:997,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:998,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:998,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:998,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:999,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:999,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:999,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1000,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:1000,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:1000,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1001,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:1001,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:1001,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1002,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:1002,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1003,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:1003,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1004,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:1004,1
    - Dst: subl
      Src: /src/nss/lib/freebl/camellia.c:1004,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1005,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:1005,1
    - Dst: subr
      Src: /src/nss/lib/freebl/camellia.c:1005,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1008,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1008,1
    - Dst: CAMELLIA_RL8
      Src: /src/nss/lib/freebl/camellia.c:1008,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1009,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1009,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1009,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1010,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1010,1
    - Dst: CAMELLIA_RL8
      Src: /src/nss/lib/freebl/camellia.c:1010,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1011,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1011,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1011,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1012,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1012,1
    - Dst: CAMELLIA_RL8
      Src: /src/nss/lib/freebl/camellia.c:1012,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1013,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1013,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1013,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1014,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1014,1
    - Dst: CAMELLIA_RL8
      Src: /src/nss/lib/freebl/camellia.c:1014,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1015,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1015,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1015,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1016,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1016,1
    - Dst: CAMELLIA_RL8
      Src: /src/nss/lib/freebl/camellia.c:1016,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1017,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1017,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1017,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1018,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1018,1
    - Dst: CAMELLIA_RL8
      Src: /src/nss/lib/freebl/camellia.c:1018,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1019,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1019,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1019,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1020,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1020,1
    - Dst: CAMELLIA_RL8
      Src: /src/nss/lib/freebl/camellia.c:1020,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1021,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1021,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1021,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1022,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1022,1
    - Dst: CAMELLIA_RL8
      Src: /src/nss/lib/freebl/camellia.c:1022,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1023,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1023,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1023,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1024,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1024,1
    - Dst: CAMELLIA_RL8
      Src: /src/nss/lib/freebl/camellia.c:1024,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1025,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1025,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1025,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1026,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1026,1
    - Dst: CAMELLIA_RL8
      Src: /src/nss/lib/freebl/camellia.c:1026,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1027,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1027,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1027,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1028,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1028,1
    - Dst: CAMELLIA_RL8
      Src: /src/nss/lib/freebl/camellia.c:1028,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1029,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1029,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1029,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1030,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1030,1
    - Dst: CAMELLIA_RL8
      Src: /src/nss/lib/freebl/camellia.c:1030,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1031,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1031,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1031,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1032,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1032,1
    - Dst: CAMELLIA_RL8
      Src: /src/nss/lib/freebl/camellia.c:1032,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1033,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1033,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1033,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1034,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1034,1
    - Dst: CAMELLIA_RL8
      Src: /src/nss/lib/freebl/camellia.c:1034,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1035,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1035,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1035,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1036,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1036,1
    - Dst: CAMELLIA_RL8
      Src: /src/nss/lib/freebl/camellia.c:1036,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1037,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1037,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1037,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1038,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1038,1
    - Dst: CAMELLIA_RL8
      Src: /src/nss/lib/freebl/camellia.c:1038,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1039,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1039,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1039,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1040,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1040,1
    - Dst: CAMELLIA_RL8
      Src: /src/nss/lib/freebl/camellia.c:1040,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1041,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1041,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1041,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1042,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1042,1
    - Dst: CAMELLIA_RL8
      Src: /src/nss/lib/freebl/camellia.c:1042,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1043,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1043,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1043,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1044,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1044,1
    - Dst: CAMELLIA_RL8
      Src: /src/nss/lib/freebl/camellia.c:1044,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1045,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1045,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1045,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1046,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1046,1
    - Dst: CAMELLIA_RL8
      Src: /src/nss/lib/freebl/camellia.c:1046,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1047,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1047,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1047,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1048,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1048,1
    - Dst: CAMELLIA_RL8
      Src: /src/nss/lib/freebl/camellia.c:1048,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1049,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1049,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1049,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1050,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1050,1
    - Dst: CAMELLIA_RL8
      Src: /src/nss/lib/freebl/camellia.c:1050,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1051,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1051,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1051,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1052,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1052,1
    - Dst: CAMELLIA_RL8
      Src: /src/nss/lib/freebl/camellia.c:1052,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1053,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1053,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1053,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1054,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1054,1
    - Dst: CAMELLIA_RL8
      Src: /src/nss/lib/freebl/camellia.c:1054,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1055,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1055,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1055,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 309
    argCount: 2
    argNames:
    - key
    - subkey
    argTypes:
    - unsigned char*
    - PRUint32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 699
    functionDepth: 1
    functionLinenumber: 699
    functionLinenumberEnd: 1058
    functionName: camellia_setup256
    functionSourceFile: /src/nss/lib/freebl/camellia.c
    functionUses: 0
    functionsReached:
    - CAMELLIA_F
    - GETU32
    - CamelliaSubkeyL
    - subr
    - CAMELLIA_RL8
    - CamelliaSubkeyR
    - subl
    - CAMELLIA_ROLDQ
    - CAMELLIA_RL1
    - CAMELLIA_ROLDQo32
    linkageType: ''
    returnType: void
    signature: void camellia_setup256(const unsigned char *key, PRUint32 *subkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/camellia.c:1066,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/camellia.c:1067,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/camellia.c:1068,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/camellia.c:1071,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/camellia.c:1072,1
    - Dst: camellia_setup256
      Src: /src/nss/lib/freebl/camellia.c:1073,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - key
    - subkey
    argTypes:
    - unsigned char*
    - PRUint32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 1060
    functionDepth: 2
    functionLinenumber: 1060
    functionLinenumberEnd: 1075
    functionName: camellia_setup192
    functionSourceFile: /src/nss/lib/freebl/camellia.c
    functionUses: 0
    functionsReached:
    - camellia_setup256
    - memcpy
    linkageType: ''
    returnType: void
    signature: void camellia_setup192(const unsigned char *key, PRUint32 *subkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GETU32
      Src: /src/nss/lib/freebl/camellia.c:1092,1
    - Dst: GETU32
      Src: /src/nss/lib/freebl/camellia.c:1093,1
    - Dst: GETU32
      Src: /src/nss/lib/freebl/camellia.c:1094,1
    - Dst: GETU32
      Src: /src/nss/lib/freebl/camellia.c:1095,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1098,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1099,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1102,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1103,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1103,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1105,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1106,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1106,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1108,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1109,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1109,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1111,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1112,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1112,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1114,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1115,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1115,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1117,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1118,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1118,1
    - Dst: CAMELLIA_FLS
      Src: /src/nss/lib/freebl/camellia.c:1121,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1122,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1122,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1123,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1123,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1126,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1127,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1127,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1129,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1130,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1130,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1132,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1133,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1133,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1135,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1136,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1136,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1138,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1139,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1139,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1141,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1142,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1142,1
    - Dst: CAMELLIA_FLS
      Src: /src/nss/lib/freebl/camellia.c:1145,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1146,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1146,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1147,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1147,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1150,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1151,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1151,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1153,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1154,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1154,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1156,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1157,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1157,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1159,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1160,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1160,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1162,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1163,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1163,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1165,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1166,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1166,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1170,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1171,1
    - Dst: PUTU32
      Src: /src/nss/lib/freebl/camellia.c:1180,1
    - Dst: PUTU32
      Src: /src/nss/lib/freebl/camellia.c:1181,1
    - Dst: PUTU32
      Src: /src/nss/lib/freebl/camellia.c:1182,1
    - Dst: PUTU32
      Src: /src/nss/lib/freebl/camellia.c:1183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 40
    argCount: 3
    argNames:
    - subkey
    - output
    - input
    argTypes:
    - PRUint32*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1186
      start: 1081
    functionDepth: 1
    functionLinenumber: 1081
    functionLinenumberEnd: 1186
    functionName: NO_SANITIZE_ALIGNMENT::camellia_encrypt128
    functionSourceFile: /src/nss/lib/freebl/camellia.c
    functionUses: 0
    functionsReached:
    - GETU32
    - CamelliaSubkeyL
    - CAMELLIA_ROUNDSM
    - CamelliaSubkeyR
    - PUTU32
    - CAMELLIA_FLS
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus NO_SANITIZE_ALIGNMENT\ncamellia_encrypt128(const PRUint32
      *subkey,\n                    unsigned char *output,\n                    const
      unsigned char *input)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GETU32
      Src: /src/nss/lib/freebl/camellia.c:1199,1
    - Dst: GETU32
      Src: /src/nss/lib/freebl/camellia.c:1200,1
    - Dst: GETU32
      Src: /src/nss/lib/freebl/camellia.c:1201,1
    - Dst: GETU32
      Src: /src/nss/lib/freebl/camellia.c:1202,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1205,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1206,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1209,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1210,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1210,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1212,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1213,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1213,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1215,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1216,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1216,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1218,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1219,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1219,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1221,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1222,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1222,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1224,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1225,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1225,1
    - Dst: CAMELLIA_FLS
      Src: /src/nss/lib/freebl/camellia.c:1228,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1229,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1229,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1230,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1230,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1233,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1234,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1234,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1236,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1237,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1237,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1239,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1240,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1240,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1242,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1243,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1243,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1245,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1246,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1246,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1248,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1249,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1249,1
    - Dst: CAMELLIA_FLS
      Src: /src/nss/lib/freebl/camellia.c:1252,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1253,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1253,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1254,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1254,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1257,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1258,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1258,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1260,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1261,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1261,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1263,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1264,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1264,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1266,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1267,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1267,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1269,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1270,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1270,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1272,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1273,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1273,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1277,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1278,1
    - Dst: PUTU32
      Src: /src/nss/lib/freebl/camellia.c:1287,1
    - Dst: PUTU32
      Src: /src/nss/lib/freebl/camellia.c:1288,1
    - Dst: PUTU32
      Src: /src/nss/lib/freebl/camellia.c:1289,1
    - Dst: PUTU32
      Src: /src/nss/lib/freebl/camellia.c:1290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 40
    argCount: 3
    argNames:
    - subkey
    - output
    - input
    argTypes:
    - PRUint32*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1293
      start: 1188
    functionDepth: 1
    functionLinenumber: 1188
    functionLinenumberEnd: 1293
    functionName: NO_SANITIZE_ALIGNMENT::camellia_decrypt128
    functionSourceFile: /src/nss/lib/freebl/camellia.c
    functionUses: 0
    functionsReached:
    - GETU32
    - CamelliaSubkeyL
    - CAMELLIA_ROUNDSM
    - CamelliaSubkeyR
    - PUTU32
    - CAMELLIA_FLS
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus NO_SANITIZE_ALIGNMENT\ncamellia_decrypt128(const PRUint32
      *subkey,\n                    unsigned char *output,\n                    const
      unsigned char *input)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GETU32
      Src: /src/nss/lib/freebl/camellia.c:1309,1
    - Dst: GETU32
      Src: /src/nss/lib/freebl/camellia.c:1310,1
    - Dst: GETU32
      Src: /src/nss/lib/freebl/camellia.c:1311,1
    - Dst: GETU32
      Src: /src/nss/lib/freebl/camellia.c:1312,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1315,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1316,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1319,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1320,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1320,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1322,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1323,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1323,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1325,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1326,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1326,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1328,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1329,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1329,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1331,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1332,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1332,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1334,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1335,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1335,1
    - Dst: CAMELLIA_FLS
      Src: /src/nss/lib/freebl/camellia.c:1338,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1339,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1339,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1340,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1340,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1343,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1344,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1344,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1346,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1347,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1347,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1349,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1350,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1350,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1352,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1353,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1353,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1355,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1356,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1356,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1358,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1359,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1359,1
    - Dst: CAMELLIA_FLS
      Src: /src/nss/lib/freebl/camellia.c:1362,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1363,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1363,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1364,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1364,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1367,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1368,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1368,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1370,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1371,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1371,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1373,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1374,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1374,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1376,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1377,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1377,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1379,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1380,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1380,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1382,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1383,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1383,1
    - Dst: CAMELLIA_FLS
      Src: /src/nss/lib/freebl/camellia.c:1386,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1387,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1387,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1388,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1388,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1391,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1392,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1392,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1394,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1395,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1395,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1397,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1398,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1398,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1400,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1401,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1401,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1403,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1404,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1404,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1406,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1407,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1407,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1411,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1412,1
    - Dst: PUTU32
      Src: /src/nss/lib/freebl/camellia.c:1421,1
    - Dst: PUTU32
      Src: /src/nss/lib/freebl/camellia.c:1422,1
    - Dst: PUTU32
      Src: /src/nss/lib/freebl/camellia.c:1423,1
    - Dst: PUTU32
      Src: /src/nss/lib/freebl/camellia.c:1424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 47
    argCount: 3
    argNames:
    - subkey
    - output
    - input
    argTypes:
    - PRUint32*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1427
      start: 1298
    functionDepth: 1
    functionLinenumber: 1298
    functionLinenumberEnd: 1427
    functionName: NO_SANITIZE_ALIGNMENT::camellia_encrypt256
    functionSourceFile: /src/nss/lib/freebl/camellia.c
    functionUses: 0
    functionsReached:
    - GETU32
    - CamelliaSubkeyL
    - CAMELLIA_ROUNDSM
    - CamelliaSubkeyR
    - PUTU32
    - CAMELLIA_FLS
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus NO_SANITIZE_ALIGNMENT\ncamellia_encrypt256(const PRUint32
      *subkey,\n                    unsigned char *output,\n                    const
      unsigned char *input)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GETU32
      Src: /src/nss/lib/freebl/camellia.c:1440,1
    - Dst: GETU32
      Src: /src/nss/lib/freebl/camellia.c:1441,1
    - Dst: GETU32
      Src: /src/nss/lib/freebl/camellia.c:1442,1
    - Dst: GETU32
      Src: /src/nss/lib/freebl/camellia.c:1443,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1446,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1447,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1450,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1451,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1451,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1453,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1454,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1454,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1456,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1457,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1457,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1459,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1460,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1460,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1462,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1463,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1463,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1465,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1466,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1466,1
    - Dst: CAMELLIA_FLS
      Src: /src/nss/lib/freebl/camellia.c:1469,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1470,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1470,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1471,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1471,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1474,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1475,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1475,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1477,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1478,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1478,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1480,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1481,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1481,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1483,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1484,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1484,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1486,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1487,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1487,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1489,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1490,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1490,1
    - Dst: CAMELLIA_FLS
      Src: /src/nss/lib/freebl/camellia.c:1493,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1494,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1494,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1495,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1495,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1498,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1499,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1499,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1501,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1502,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1502,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1504,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1505,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1505,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1507,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1508,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1508,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1510,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1511,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1511,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1513,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1514,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1514,1
    - Dst: CAMELLIA_FLS
      Src: /src/nss/lib/freebl/camellia.c:1517,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1518,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1518,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1519,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1519,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1522,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1523,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1523,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1525,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1526,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1526,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1528,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1529,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1529,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1531,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1532,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1532,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1534,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1535,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1535,1
    - Dst: CAMELLIA_ROUNDSM
      Src: /src/nss/lib/freebl/camellia.c:1537,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1538,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1538,1
    - Dst: CamelliaSubkeyL
      Src: /src/nss/lib/freebl/camellia.c:1542,1
    - Dst: CamelliaSubkeyR
      Src: /src/nss/lib/freebl/camellia.c:1543,1
    - Dst: PUTU32
      Src: /src/nss/lib/freebl/camellia.c:1552,1
    - Dst: PUTU32
      Src: /src/nss/lib/freebl/camellia.c:1553,1
    - Dst: PUTU32
      Src: /src/nss/lib/freebl/camellia.c:1554,1
    - Dst: PUTU32
      Src: /src/nss/lib/freebl/camellia.c:1555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 47
    argCount: 3
    argNames:
    - subkey
    - output
    - input
    argTypes:
    - PRUint32*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1558
      start: 1429
    functionDepth: 1
    functionLinenumber: 1429
    functionLinenumberEnd: 1558
    functionName: NO_SANITIZE_ALIGNMENT::camellia_decrypt256
    functionSourceFile: /src/nss/lib/freebl/camellia.c
    functionUses: 0
    functionsReached:
    - GETU32
    - CamelliaSubkeyL
    - CAMELLIA_ROUNDSM
    - CamelliaSubkeyR
    - PUTU32
    - CAMELLIA_FLS
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus NO_SANITIZE_ALIGNMENT\ncamellia_decrypt256(const PRUint32
      *subkey,\n                    unsigned char *output,\n                    const
      unsigned char *input)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: camellia_setup128
      Src: /src/nss/lib/freebl/camellia.c:1575,1
    - Dst: camellia_setup192
      Src: /src/nss/lib/freebl/camellia.c:1578,1
    - Dst: camellia_setup256
      Src: /src/nss/lib/freebl/camellia.c:1581,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - cx
    - key
    - keysize
    argTypes:
    - CamelliaContext*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1587
      start: 1566
    functionDepth: 3
    functionLinenumber: 1566
    functionLinenumberEnd: 1587
    functionName: camellia_key_expansion
    functionSourceFile: /src/nss/lib/freebl/camellia.c
    functionUses: 0
    functionsReached:
    - camellia_setup256
    - camellia_setup192
    - camellia_setup128
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus camellia_key_expansion(CamelliaContext *cx,\n                       const
      unsigned char *key,\n                       const unsigned int keysize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 6
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - CamelliaContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1614
      start: 1595
    functionDepth: 0
    functionLinenumber: 1595
    functionLinenumberEnd: 1614
    functionName: camellia_encryptECB
    functionSourceFile: /src/nss/lib/freebl/camellia.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus camellia_encryptECB(CamelliaContext *cx, unsigned char *output,\n
      \                   unsigned int *outputLen, unsigned int maxOutputLen,\n                    const
      unsigned char *input, unsigned int inputLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/camellia.c:1647,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 6
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - CamelliaContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1649
      start: 1616
    functionDepth: 1
    functionLinenumber: 1616
    functionLinenumberEnd: 1649
    functionName: camellia_encryptCBC
    functionSourceFile: /src/nss/lib/freebl/camellia.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus camellia_encryptCBC(CamelliaContext *cx, unsigned char *output,\n
      \                   unsigned int *outputLen, unsigned int maxOutputLen,\n                    const
      unsigned char *input, unsigned int inputLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 6
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - CamelliaContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1671
      start: 1651
    functionDepth: 0
    functionLinenumber: 1651
    functionLinenumberEnd: 1671
    functionName: camellia_decryptECB
    functionSourceFile: /src/nss/lib/freebl/camellia.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus camellia_decryptECB(CamelliaContext *cx, unsigned char *output,\n
      \                   unsigned int *outputLen, unsigned int maxOutputLen,\n                    const
      unsigned char *input, unsigned int inputLen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/camellia.c:1687,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/camellia.c:1690,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/camellia.c:1713,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 6
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - CamelliaContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1715
      start: 1673
    functionDepth: 1
    functionLinenumber: 1673
    functionLinenumberEnd: 1715
    functionName: camellia_decryptCBC
    functionSourceFile: /src/nss/lib/freebl/camellia.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - memcpy
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus camellia_decryptCBC(CamelliaContext *cx, unsigned char *output,\n
      \                   unsigned int *outputLen, unsigned int maxOutputLen,\n                    const
      unsigned char *input, unsigned int inputLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZNew
      Src: /src/nss/lib/freebl/camellia.c:1726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1727
      start: 1723
    functionDepth: 1
    functionLinenumber: 1723
    functionLinenumberEnd: 1727
    functionName: Camellia_AllocateContext
    functionSourceFile: /src/nss/lib/freebl/camellia.c
    functionUses: 0
    functionsReached:
    - PORT_ZNew
    linkageType: ''
    returnType: CamelliaContext
    signature: 'CamelliaContext *

      Camellia_AllocateContext(void)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/camellia.c:1737,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/camellia.c:1741,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/camellia.c:1745,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/camellia.c:1749,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/camellia.c:1753,1
    - Dst: camellia_key_expansion
      Src: /src/nss/lib/freebl/camellia.c:1760,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 7
    argNames:
    - cx
    - key
    - keysize
    - iv
    - mode
    - encrypt
    - unused
    argTypes:
    - CamelliaContext*
    - unsigned char*
    - unsigned int
    - unsigned char*
    - int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1766
      start: 1729
    functionDepth: 4
    functionLinenumber: 1729
    functionLinenumberEnd: 1766
    functionName: Camellia_InitContext
    functionSourceFile: /src/nss/lib/freebl/camellia.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - memcpy
    - camellia_key_expansion
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus Camellia_InitContext(CamelliaContext *cx, const unsigned
      char *key,\n                     unsigned int keysize,\n                     const
      unsigned char *iv, int mode, unsigned int encrypt,\n                     unsigned
      int unused)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/camellia.c:1782,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/camellia.c:1786,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/camellia.c:1790,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/freebl/camellia.c:1793,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/camellia.c:1795,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/camellia.c:1801,1
    - Dst: camellia_key_expansion
      Src: /src/nss/lib/freebl/camellia.c:1810,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/freebl/camellia.c:1815,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 5
    argNames:
    - key
    - iv
    - mode
    - encrypt
    - keysize
    argTypes:
    - unsigned char*
    - unsigned char*
    - int
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1817
      start: 1773
    functionDepth: 4
    functionLinenumber: 1773
    functionLinenumberEnd: 1817
    functionName: Camellia_CreateContext
    functionSourceFile: /src/nss/lib/freebl/camellia.c
    functionUses: 1
    functionsReached:
    - PORT_ZFree
    - memcpy
    - PORT_ZNew
    - PORT_SetError
    - camellia_key_expansion
    linkageType: ''
    returnType: CamelliaContext
    signature: "CamelliaContext *\nCamellia_CreateContext(const unsigned char *key,
      const unsigned char *iv,\n                       int mode, int encrypt,\n                       unsigned
      int keysize)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/freebl/camellia.c:1829,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/camellia.c:1831,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - cx
    - freeit
    argTypes:
    - CamelliaContext*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1832
      start: 1825
    functionDepth: 0
    functionLinenumber: 1825
    functionLinenumberEnd: 1832
    functionName: Camellia_DestroyContext
    functionSourceFile: /src/nss/lib/freebl/camellia.c
    functionUses: 2
    functionsReached:
    - memset
    - PORT_Free
    linkageType: ''
    returnType: void
    signature: void Camellia_DestroyContext(CamelliaContext *cx, PRBool freeit)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/camellia.c:1849,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/camellia.c:1854,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/camellia.c:1858,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 6
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - CamelliaContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1865
      start: 1840
    functionDepth: 0
    functionLinenumber: 1840
    functionLinenumberEnd: 1865
    functionName: Camellia_Encrypt
    functionSourceFile: /src/nss/lib/freebl/camellia.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus Camellia_Encrypt(CamelliaContext *cx, unsigned char *output,\n
      \                unsigned int *outputLen, unsigned int maxOutputLen,\n                 const
      unsigned char *input, unsigned int inputLen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/camellia.c:1881,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/camellia.c:1885,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/camellia.c:1889,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 6
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - CamelliaContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1896
      start: 1873
    functionDepth: 0
    functionLinenumber: 1873
    functionLinenumberEnd: 1896
    functionName: Camellia_Decrypt
    functionSourceFile: /src/nss/lib/freebl/camellia.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus Camellia_Decrypt(CamelliaContext *cx, unsigned char *output,\n
      \                unsigned int *outputLen, unsigned int maxOutputLen,\n                 const
      unsigned char *input, unsigned int inputLen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/alghmac.c:31,1
    - Dst: HMACContext*::hashobj::destroy
      Src: /src/nss/lib/freebl/alghmac.c:33,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/alghmac.c:34,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/alghmac.c:37,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - cx
    - freeit
    argTypes:
    - HMACContext*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 38
    functionName: HMAC_Destroy
    functionSourceFile: /src/nss/lib/freebl/alghmac.c
    functionUses: 4
    functionsReached:
    - PORT_Free
    - PORT_Assert
    - PORT_Memset
    - HMACContext*::hashobj::destroy
    linkageType: ''
    returnType: void
    signature: void HMAC_Destroy(HMACContext *cx, PRBool freeit)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/alghmac.c:49,1
    - Dst: HMACContext*::hashobj::begin
      Src: /src/nss/lib/freebl/alghmac.c:54,1
    - Dst: HMACContext*::hashobj::update
      Src: /src/nss/lib/freebl/alghmac.c:55,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/alghmac.c:56,1
    - Dst: HMACContext*::hashobj::end
      Src: /src/nss/lib/freebl/alghmac.c:57,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/alghmac.c:60,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/alghmac.c:66,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/alghmac.c:67,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/alghmac.c:74,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/alghmac.c:78,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 4
    argNames:
    - cx
    - secret
    - secret_len
    - isFIPS
    argTypes:
    - HMACContext*
    - unsigned char*
    - unsigned int
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 80
    functionName: hmac_initKey
    functionSourceFile: /src/nss/lib/freebl/alghmac.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - HMACContext*::hashobj::update
    - PORT_SetError
    - PORT_Memset
    - HMACContext*::hashobj::begin
    - HMACContext*::hashobj::end
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus hmac_initKey(HMACContext *cx, const unsigned char *secret,\n
      \            unsigned int secret_len, PRBool isFIPS)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/alghmac.c:89,1
    - Dst: HMACContext*::hashobj::create
      Src: /src/nss/lib/freebl/alghmac.c:94,1
    - Dst: hmac_initKey
      Src: /src/nss/lib/freebl/alghmac.c:98,1
    - Dst: HMACContext*::hashobj::destroy
      Src: /src/nss/lib/freebl/alghmac.c:105,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 5
    argNames:
    - cx
    - hash_obj
    - secret
    - secret_len
    - isFIPS
    argTypes:
    - HMACContext*
    - SECHashObject*
    - unsigned char*
    - unsigned int
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 107
    functionName: HMAC_Init
    functionSourceFile: /src/nss/lib/freebl/alghmac.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - hmac_initKey
    - HMACContext*::hashobj::create
    - HMACContext*::hashobj::destroy
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus HMAC_Init(HMACContext *cx, const SECHashObject *hash_obj,\n
      \         const unsigned char *secret, unsigned int secret_len, PRBool isFIPS)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZNew
      Src: /src/nss/lib/freebl/alghmac.c:114,1
    - Dst: HMAC_Init
      Src: /src/nss/lib/freebl/alghmac.c:117,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/alghmac.c:120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - hash_obj
    - secret
    - secret_len
    - isFIPS
    argTypes:
    - SECHashObject*
    - unsigned char*
    - unsigned int
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 124
    functionName: HMAC_Create
    functionSourceFile: /src/nss/lib/freebl/alghmac.c
    functionUses: 3
    functionsReached:
    - PORT_Free
    - HMAC_Init
    - PORT_ZNew
    linkageType: ''
    returnType: HMACContext
    signature: "HMACContext *\nHMAC_Create(const SECHashObject *hash_obj, const unsigned
      char *secret,\n            unsigned int secret_len, PRBool isFIPS)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hmac_initKey
      Src: /src/nss/lib/freebl/alghmac.c:138,1
    - Dst: HMAC_Destroy
      Src: /src/nss/lib/freebl/alghmac.c:145,1
    - Dst: HMAC_Init
      Src: /src/nss/lib/freebl/alghmac.c:146,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - cx
    - hash_obj
    - secret
    - secret_len
    - isFIPS
    argTypes:
    - HMACContext*
    - SECHashObject*
    - unsigned char*
    - unsigned int
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 152
    functionName: HMAC_ReInit
    functionSourceFile: /src/nss/lib/freebl/alghmac.c
    functionUses: 1
    functionsReached:
    - HMAC_Destroy
    - hmac_initKey
    - HMAC_Init
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus HMAC_ReInit(HMACContext *cx, const SECHashObject *hash_obj,\n
      \           const unsigned char *secret, unsigned int secret_len, PRBool isFIPS)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HMACContext*::hashobj::begin
      Src: /src/nss/lib/freebl/alghmac.c:158,1
    - Dst: HMACContext*::hashobj::update
      Src: /src/nss/lib/freebl/alghmac.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cx
    argTypes:
    - HMACContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 160
    functionName: HMAC_Begin
    functionSourceFile: /src/nss/lib/freebl/alghmac.c
    functionUses: 4
    functionsReached:
    - HMACContext*::hashobj::update
    - HMACContext*::hashobj::begin
    linkageType: ''
    returnType: void
    signature: void HMAC_Begin(HMACContext *cx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HMACContext*::hashobj::update
      Src: /src/nss/lib/freebl/alghmac.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cx
    - data
    - data_len
    argTypes:
    - HMACContext*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 166
    functionName: HMAC_Update
    functionSourceFile: /src/nss/lib/freebl/alghmac.c
    functionUses: 4
    functionsReached:
    - HMACContext*::hashobj::update
    linkageType: ''
    returnType: void
    signature: void HMAC_Update(HMACContext *cx, const unsigned char *data, unsigned
      int data_len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/alghmac.c:173,1
    - Dst: HMACContext*::hashobj::end
      Src: /src/nss/lib/freebl/alghmac.c:177,1
    - Dst: HMACContext*::hashobj::begin
      Src: /src/nss/lib/freebl/alghmac.c:181,1
    - Dst: HMACContext*::hashobj::update
      Src: /src/nss/lib/freebl/alghmac.c:182,1
    - Dst: HMACContext*::hashobj::update
      Src: /src/nss/lib/freebl/alghmac.c:183,1
    - Dst: HMACContext*::hashobj::end
      Src: /src/nss/lib/freebl/alghmac.c:184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - cx
    - result
    - result_len
    - max_result_len
    argTypes:
    - HMACContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 186
    functionName: HMAC_Finish
    functionSourceFile: /src/nss/lib/freebl/alghmac.c
    functionUses: 4
    functionsReached:
    - PORT_SetError
    - HMACContext*::hashobj::update
    - HMACContext*::hashobj::begin
    - HMACContext*::hashobj::end
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus HMAC_Finish(HMACContext *cx, unsigned char *result, unsigned
      int *result_len,\n            unsigned int max_result_len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/freebl/alghmac.c:193,1
    - Dst: HMACContext*::hashobj::clone
      Src: /src/nss/lib/freebl/alghmac.c:199,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/alghmac.c:202,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/alghmac.c:203,1
    - Dst: HMAC_Destroy
      Src: /src/nss/lib/freebl/alghmac.c:207,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - cx
    argTypes:
    - HMACContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 209
    functionName: HMAC_Clone
    functionSourceFile: /src/nss/lib/freebl/alghmac.c
    functionUses: 0
    functionsReached:
    - HMAC_Destroy
    - HMACContext*::hashobj::clone
    - PORT_ZAlloc
    - PORT_Memcpy
    linkageType: ''
    returnType: HMACContext
    signature: 'HMACContext *

      HMAC_Clone(HMACContext *cx)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - Nk
    - ','
    - Nb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: RIJNDAEL_NUM_ROUNDS
    functionSourceFile: /src/nss/lib/freebl/rijndael.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RIJNDAEL_NUM_ROUNDS(Nk, Nb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/unix_rand.c:45,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/unix_rand.c:51,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/unix_rand.c:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - dst
    - dstlen
    - src
    - srclen
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 57
    functionName: CopyLowBits
    functionSourceFile: /src/nss/lib/freebl/unix_rand.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: size_t CopyLowBits(void *dst, size_t dstlen, void *src, size_t srclen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RNG_RandomUpdate
      Src: /src/nss/lib/freebl/unix_rand.c:82,1
    - Dst: PR_MIN
      Src: /src/nss/lib/freebl/unix_rand.c:89,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/unix_rand.c:90,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 5
    argNames:
    - inbuf
    - inlen
    - entropy_buf
    - entropy_buffered
    - total_fed
    argTypes:
    - char*
    - PRUint32
    - char*
    - PRUint32*
    - PRUint32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 97
    functionName: BufferEntropy
    functionSourceFile: /src/nss/lib/freebl/unix_rand.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PR_MIN
    - RNG_RandomUpdate
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus BufferEntropy(char *inbuf, PRUint32 inlen,\n              char
      *entropy_buf, PRUint32 *entropy_buffered,\n              PRUint32 *total_fed)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/unix_rand.c:111,1
    - Dst: kstat_open
      Src: /src/nss/lib/freebl/unix_rand.c:117,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/unix_rand.c:118,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/freebl/unix_rand.c:122,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/unix_rand.c:123,1
    - Dst: kstat_read
      Src: /src/nss/lib/freebl/unix_rand.c:126,1
    - Dst: BufferEntropy
      Src: /src/nss/lib/freebl/unix_rand.c:130,1
    - Dst: BufferEntropy
      Src: /src/nss/lib/freebl/unix_rand.c:138,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/lib/freebl/unix_rand.c:148,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/unix_rand.c:150,1
    - Dst: kstat_close
      Src: /src/nss/lib/freebl/unix_rand.c:154,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/unix_rand.c:155,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 41
    argCount: 1
    argNames:
    - fed
    argTypes:
    - PRUint32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 159
    functionName: RNG_kstat
    functionSourceFile: /src/nss/lib/freebl/unix_rand.c
    functionUses: 0
    functionsReached:
    - kstat_open
    - PORT_Assert
    - PORT_Alloc
    - kstat_read
    - kstat_close
    - PORT_Free
    - BufferEntropy
    - RNG_RandomUpdate
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus RNG_kstat(PRUint32 *fed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: times
      Src: /src/nss/lib/freebl/unix_rand.c:172,1
    - Dst: CopyLowBits
      Src: /src/nss/lib/freebl/unix_rand.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - maxbytes
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 166
    functionDepth: 2
    functionLinenumber: 166
    functionLinenumberEnd: 174
    functionName: GetHighResClock
    functionSourceFile: /src/nss/lib/freebl/unix_rand.c
    functionUses: 0
    functionsReached:
    - times
    - CopyLowBits
    linkageType: ''
    returnType: size_t
    signature: size_t GetHighResClock(void *buf, size_t maxbytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sysconf
      Src: /src/nss/lib/freebl/unix_rand.c:184,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/lib/freebl/unix_rand.c:185,1
    - Dst: sysconf
      Src: /src/nss/lib/freebl/unix_rand.c:187,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/lib/freebl/unix_rand.c:188,1
    - Dst: sysconf
      Src: /src/nss/lib/freebl/unix_rand.c:190,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/lib/freebl/unix_rand.c:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 192
    functionName: GiveSystemInfo
    functionSourceFile: /src/nss/lib/freebl/unix_rand.c
    functionUses: 0
    functionsReached:
    - RNG_RandomUpdate
    - sysconf
    linkageType: ''
    returnType: void
    signature: void GiveSystemInfo(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sysinfo
      Src: /src/nss/lib/freebl/unix_rand.c:205,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/lib/freebl/unix_rand.c:207,1
    - Dst: sysinfo
      Src: /src/nss/lib/freebl/unix_rand.c:209,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/lib/freebl/unix_rand.c:211,1
    - Dst: sysinfo
      Src: /src/nss/lib/freebl/unix_rand.c:213,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/lib/freebl/unix_rand.c:215,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 217
    functionName: GiveSystemInfo
    functionSourceFile: /src/nss/lib/freebl/unix_rand.c
    functionUses: 0
    functionsReached:
    - sysinfo
    - RNG_RandomUpdate
    linkageType: ''
    returnType: void
    signature: void GiveSystemInfo(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gethrtime
      Src: /src/nss/lib/freebl/unix_rand.c:223,1
    - Dst: CopyLowBits
      Src: /src/nss/lib/freebl/unix_rand.c:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - buf
    - maxbytes
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 219
    functionDepth: 2
    functionLinenumber: 219
    functionLinenumberEnd: 228
    functionName: GetHighResClock
    functionSourceFile: /src/nss/lib/freebl/unix_rand.c
    functionUses: 0
    functionsReached:
    - gethrtime
    - CopyLowBits
    linkageType: ''
    returnType: size_t
    signature: size_t GetHighResClock(void *buf, size_t maxbytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - maxbytes
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 237
    functionName: GetHighResClock
    functionSourceFile: /src/nss/lib/freebl/unix_rand.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t GetHighResClock(void *buf, size_t maxbytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sysconf
      Src: /src/nss/lib/freebl/unix_rand.c:245,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/lib/freebl/unix_rand.c:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 247
    functionName: GiveSystemInfo
    functionSourceFile: /src/nss/lib/freebl/unix_rand.c
    functionUses: 0
    functionsReached:
    - RNG_RandomUpdate
    - sysconf
    linkageType: ''
    returnType: void
    signature: void GiveSystemInfo(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _Asm_mov_from_ar
      Src: /src/nss/lib/freebl/unix_rand.c:262,1
    - Dst: CopyLowBits
      Src: /src/nss/lib/freebl/unix_rand.c:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - maxbytes
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 257
    functionDepth: 2
    functionLinenumber: 257
    functionLinenumberEnd: 264
    functionName: GetHighResClock
    functionSourceFile: /src/nss/lib/freebl/unix_rand.c
    functionUses: 0
    functionsReached:
    - _Asm_mov_from_ar
    - CopyLowBits
    linkageType: ''
    returnType: size_t
    signature: size_t GetHighResClock(void *buf, size_t maxbytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ret_cr16
      Src: /src/nss/lib/freebl/unix_rand.c:272,1
    - Dst: CopyLowBits
      Src: /src/nss/lib/freebl/unix_rand.c:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - maxbytes
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 266
    functionDepth: 2
    functionLinenumber: 266
    functionLinenumberEnd: 274
    functionName: GetHighResClock
    functionSourceFile: /src/nss/lib/freebl/unix_rand.c
    functionUses: 0
    functionsReached:
    - ret_cr16
    - CopyLowBits
    linkageType: ''
    returnType: size_t
    signature: size_t GetHighResClock(void *buf, size_t maxbytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sysconf
      Src: /src/nss/lib/freebl/unix_rand.c:283,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/lib/freebl/unix_rand.c:284,1
    - Dst: sysconf
      Src: /src/nss/lib/freebl/unix_rand.c:285,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/lib/freebl/unix_rand.c:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 287
    functionName: GiveSystemInfo
    functionSourceFile: /src/nss/lib/freebl/unix_rand.c
    functionUses: 0
    functionsReached:
    - RNG_RandomUpdate
    - sysconf
    linkageType: ''
    returnType: void
    signature: void GiveSystemInfo(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - maxbytes
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 295
    functionName: GetHighResClock
    functionSourceFile: /src/nss/lib/freebl/unix_rand.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t GetHighResClock(void *buf, size_t maxbytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 301
    functionName: GiveSystemInfo
    functionSourceFile: /src/nss/lib/freebl/unix_rand.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GiveSystemInfo(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - maxbytes
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 311
    functionName: GetHighResClock
    functionSourceFile: /src/nss/lib/freebl/unix_rand.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t GetHighResClock(void *buf, size_t maxbytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sysinfo
      Src: /src/nss/lib/freebl/unix_rand.c:318,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/lib/freebl/unix_rand.c:319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 322
    functionName: GiveSystemInfo
    functionSourceFile: /src/nss/lib/freebl/unix_rand.c
    functionUses: 0
    functionsReached:
    - sysinfo
    - RNG_RandomUpdate
    linkageType: ''
    returnType: void
    signature: void GiveSystemInfo(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - maxbytes
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 334
    functionName: GetHighResClock
    functionSourceFile: /src/nss/lib/freebl/unix_rand.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t GetHighResClock(void *buf, size_t maxbytes)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sysinfo
      Src: /src/nss/lib/freebl/unix_rand.c:342,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/lib/freebl/unix_rand.c:344,1
    - Dst: sysinfo
      Src: /src/nss/lib/freebl/unix_rand.c:346,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/lib/freebl/unix_rand.c:348,1
    - Dst: sysinfo
      Src: /src/nss/lib/freebl/unix_rand.c:350,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/lib/freebl/unix_rand.c:352,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 354
    functionName: GiveSystemInfo
    functionSourceFile: /src/nss/lib/freebl/unix_rand.c
    functionUses: 0
    functionsReached:
    - sysinfo
    - RNG_RandomUpdate
    linkageType: ''
    returnType: void
    signature: void GiveSystemInfo(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: syssgi
      Src: /src/nss/lib/freebl/unix_rand.c:374,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/lib/freebl/unix_rand.c:376,1
    - Dst: syssgi
      Src: /src/nss/lib/freebl/unix_rand.c:379,1
    - Dst: getpid
      Src: /src/nss/lib/freebl/unix_rand.c:379,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/lib/freebl/unix_rand.c:381,1
    - Dst: syssgi
      Src: /src/nss/lib/freebl/unix_rand.c:384,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/lib/freebl/unix_rand.c:386,1
    - Dst: sysinfo
      Src: /src/nss/lib/freebl/unix_rand.c:388,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/lib/freebl/unix_rand.c:390,1
    - Dst: sysinfo
      Src: /src/nss/lib/freebl/unix_rand.c:392,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/lib/freebl/unix_rand.c:394,1
    - Dst: sysinfo
      Src: /src/nss/lib/freebl/unix_rand.c:396,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/lib/freebl/unix_rand.c:398,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 400
    functionName: GiveSystemInfo
    functionSourceFile: /src/nss/lib/freebl/unix_rand.c
    functionUses: 0
    functionsReached:
    - getpid
    - sysinfo
    - RNG_RandomUpdate
    - syssgi
    linkageType: ''
    returnType: void
    signature: void GiveSystemInfo(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: syssgi
      Src: /src/nss/lib/freebl/unix_rand.c:427,1
    - Dst: getpagesize
      Src: /src/nss/lib/freebl/unix_rand.c:429,1
    - Dst: open
      Src: /src/nss/lib/freebl/unix_rand.c:433,1
    - Dst: mmap
      Src: /src/nss/lib/freebl/unix_rand.c:438,1
    - Dst: close
      Src: /src/nss/lib/freebl/unix_rand.c:440,1
    - Dst: syssgi
      Src: /src/nss/lib/freebl/unix_rand.c:448,1
    - Dst: uname
      Src: /src/nss/lib/freebl/unix_rand.c:459,1
    - Dst: strncmp
      Src: /src/nss/lib/freebl/unix_rand.c:460,1
    - Dst: strncmp
      Src: /src/nss/lib/freebl/unix_rand.c:461,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/unix_rand.c:473,1
    - Dst: CopyLowBits
      Src: /src/nss/lib/freebl/unix_rand.c:474,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 2
    argNames:
    - buf
    - maxbuf
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 402
    functionDepth: 2
    functionLinenumber: 402
    functionLinenumberEnd: 475
    functionName: GetHighResClock
    functionSourceFile: /src/nss/lib/freebl/unix_rand.c
    functionUses: 0
    functionsReached:
    - close
    - strncmp
    - memcpy
    - getpagesize
    - open
    - CopyLowBits
    - mmap
    - syssgi
    - uname
    linkageType: ''
    returnType: size_t
    signature: size_t GetHighResClock(void *buf, size_t maxbuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - maxbytes
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 485
    functionName: GetHighResClock
    functionSourceFile: /src/nss/lib/freebl/unix_rand.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t GetHighResClock(void *buf, size_t maxbytes)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sysinfo
      Src: /src/nss/lib/freebl/unix_rand.c:493,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/lib/freebl/unix_rand.c:495,1
    - Dst: sysinfo
      Src: /src/nss/lib/freebl/unix_rand.c:497,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/lib/freebl/unix_rand.c:499,1
    - Dst: sysinfo
      Src: /src/nss/lib/freebl/unix_rand.c:501,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/lib/freebl/unix_rand.c:503,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 505
    functionName: GiveSystemInfo
    functionSourceFile: /src/nss/lib/freebl/unix_rand.c
    functionUses: 0
    functionsReached:
    - sysinfo
    - RNG_RandomUpdate
    linkageType: ''
    returnType: void
    signature: void GiveSystemInfo(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: times
      Src: /src/nss/lib/freebl/unix_rand.c:521,1
    - Dst: CopyLowBits
      Src: /src/nss/lib/freebl/unix_rand.c:522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - maxbytes
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 515
    functionDepth: 2
    functionLinenumber: 515
    functionLinenumberEnd: 523
    functionName: GetHighResClock
    functionSourceFile: /src/nss/lib/freebl/unix_rand.c
    functionUses: 0
    functionsReached:
    - times
    - CopyLowBits
    linkageType: ''
    returnType: size_t
    signature: size_t GetHighResClock(void *buf, size_t maxbytes)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sysinfo
      Src: /src/nss/lib/freebl/unix_rand.c:531,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/lib/freebl/unix_rand.c:533,1
    - Dst: sysinfo
      Src: /src/nss/lib/freebl/unix_rand.c:535,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/lib/freebl/unix_rand.c:537,1
    - Dst: sysinfo
      Src: /src/nss/lib/freebl/unix_rand.c:539,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/lib/freebl/unix_rand.c:541,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 525
    functionDepth: 0
    functionLinenumber: 525
    functionLinenumberEnd: 543
    functionName: GiveSystemInfo
    functionSourceFile: /src/nss/lib/freebl/unix_rand.c
    functionUses: 0
    functionsReached:
    - sysinfo
    - RNG_RandomUpdate
    linkageType: ''
    returnType: void
    signature: void GiveSystemInfo(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - maxbytes
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 553
    functionName: GetHighResClock
    functionSourceFile: /src/nss/lib/freebl/unix_rand.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t GetHighResClock(void *buf, size_t maxbytes)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sysinfo
      Src: /src/nss/lib/freebl/unix_rand.c:561,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/lib/freebl/unix_rand.c:563,1
    - Dst: sysinfo
      Src: /src/nss/lib/freebl/unix_rand.c:565,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/lib/freebl/unix_rand.c:567,1
    - Dst: sysinfo
      Src: /src/nss/lib/freebl/unix_rand.c:569,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/lib/freebl/unix_rand.c:571,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 573
    functionName: GiveSystemInfo
    functionSourceFile: /src/nss/lib/freebl/unix_rand.c
    functionUses: 0
    functionsReached:
    - sysinfo
    - RNG_RandomUpdate
    linkageType: ''
    returnType: void
    signature: void GiveSystemInfo(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetHighResClock
      Src: /src/nss/lib/freebl/unix_rand.c:583,1
    - Dst: gettimeofday
      Src: /src/nss/lib/freebl/unix_rand.c:586,1
    - Dst: CopyLowBits
      Src: /src/nss/lib/freebl/unix_rand.c:587,1
    - Dst: CopyLowBits
      Src: /src/nss/lib/freebl/unix_rand.c:590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - buf
    - maxbytes
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 576
    functionDepth: 2
    functionLinenumber: 576
    functionLinenumberEnd: 593
    functionName: RNG_GetNoise
    functionSourceFile: /src/nss/lib/freebl/unix_rand.c
    functionUses: 1
    functionsReached:
    - GetHighResClock
    - gettimeofday
    - CopyLowBits
    linkageType: ''
    returnType: size_t
    signature: size_t RNG_GetNoise(void *buf, size_t maxbytes)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _NSGetEnviron
      Src: /src/nss/lib/freebl/unix_rand.c:614,1
    - Dst: GiveSystemInfo
      Src: /src/nss/lib/freebl/unix_rand.c:628,1
    - Dst: RNG_GetNoise
      Src: /src/nss/lib/freebl/unix_rand.c:630,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/lib/freebl/unix_rand.c:631,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/lib/freebl/unix_rand.c:642,1
    - Dst: strlen
      Src: /src/nss/lib/freebl/unix_rand.c:642,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/lib/freebl/unix_rand.c:645,1
    - Dst: gethostname
      Src: /src/nss/lib/freebl/unix_rand.c:649,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/lib/freebl/unix_rand.c:650,1
    - Dst: strlen
      Src: /src/nss/lib/freebl/unix_rand.c:650,1
    - Dst: RNG_FileUpdate
      Src: /src/nss/lib/freebl/unix_rand.c:654,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/unix_rand.c:656,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/freebl/unix_rand.c:660,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/freebl/unix_rand.c:662,1
    - Dst: atoi
      Src: /src/nss/lib/freebl/unix_rand.c:663,1
    - Dst: RNG_FileUpdate
      Src: /src/nss/lib/freebl/unix_rand.c:665,1
    - Dst: RNG_FileForRNG
      Src: /src/nss/lib/freebl/unix_rand.c:667,1
    - Dst: RNG_FileForRNG
      Src: /src/nss/lib/freebl/unix_rand.c:673,1
    - Dst: RNG_kstat
      Src: /src/nss/lib/freebl/unix_rand.c:684,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/unix_rand.c:685,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/unix_rand.c:688,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 602
    functionDepth: 3
    functionLinenumber: 602
    functionLinenumberEnd: 691
    functionName: RNG_SystemInfoForRNG
    functionSourceFile: /src/nss/lib/freebl/unix_rand.c
    functionUses: 5
    functionsReached:
    - PORT_Assert
    - RNG_FileUpdate
    - gethostname
    - GiveSystemInfo
    - RNG_FileForRNG
    - PR_GetEnvSecure
    - atoi
    - RNG_kstat
    - PORT_SetError
    - RNG_GetNoise
    - _NSGetEnviron
    - RNG_RandomUpdate
    - strlen
    linkageType: ''
    returnType: void
    signature: void RNG_SystemInfoForRNG(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/freebl/unix_rand.c:707,1
    - Dst: stat
      Src: /src/nss/lib/freebl/unix_rand.c:709,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/lib/freebl/unix_rand.c:711,1
    - Dst: fopen
      Src: /src/nss/lib/freebl/unix_rand.c:713,1
    - Dst: fileno
      Src: /src/nss/lib/freebl/unix_rand.c:722,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/unix_rand.c:724,1
    - Dst: PR_MIN
      Src: /src/nss/lib/freebl/unix_rand.c:726,1
    - Dst: read
      Src: /src/nss/lib/freebl/unix_rand.c:727,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/lib/freebl/unix_rand.c:730,1
    - Dst: fclose
      Src: /src/nss/lib/freebl/unix_rand.c:739,1
    - Dst: RNG_GetNoise
      Src: /src/nss/lib/freebl/unix_rand.c:745,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/lib/freebl/unix_rand.c:746,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - fileName
    - limit
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 695
    functionDepth: 1
    functionLinenumber: 695
    functionLinenumberEnd: 748
    functionName: RNG_FileUpdate
    functionSourceFile: /src/nss/lib/freebl/unix_rand.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - fileno
    - fclose
    - PR_MIN
    - read
    - memset
    - stat
    - fopen
    - RNG_GetNoise
    - RNG_RandomUpdate
    linkageType: ''
    returnType: size_t
    signature: size_t RNG_FileUpdate(const char *fileName, size_t limit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RNG_FileUpdate
      Src: /src/nss/lib/freebl/unix_rand.c:753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fileName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 750
    functionDepth: 2
    functionLinenumber: 750
    functionLinenumberEnd: 754
    functionName: RNG_FileForRNG
    functionSourceFile: /src/nss/lib/freebl/unix_rand.c
    functionUses: 1
    functionsReached:
    - RNG_FileUpdate
    linkageType: ''
    returnType: void
    signature: void RNG_FileForRNG(const char *fileName)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/nss/lib/freebl/unix_rand.c:764,1
    - Dst: stat
      Src: /src/nss/lib/freebl/unix_rand.c:770,1
    - Dst: S_ISREG
      Src: /src/nss/lib/freebl/unix_rand.c:772,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - dir
    - file
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 759
    functionDepth: 1
    functionLinenumber: 759
    functionLinenumberEnd: 773
    functionName: ReadFileOK
    functionSourceFile: /src/nss/lib/freebl/unix_rand.c
    functionUses: 0
    functionsReached:
    - stat
    - snprintf
    - S_ISREG
    linkageType: ''
    returnType: PRBool
    signature: PRBool ReadFileOK(char *dir, char *file)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/nss/lib/freebl/unix_rand.c:784,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/unix_rand.c:786,1
    - Dst: fileno
      Src: /src/nss/lib/freebl/unix_rand.c:794,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/unix_rand.c:796,1
    - Dst: read
      Src: /src/nss/lib/freebl/unix_rand.c:799,1
    - Dst: fclose
      Src: /src/nss/lib/freebl/unix_rand.c:805,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/unix_rand.c:807,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - dest
    - maxLen
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 775
    functionDepth: 0
    functionLinenumber: 775
    functionLinenumberEnd: 811
    functionName: RNG_SystemRNG
    functionSourceFile: /src/nss/lib/freebl/unix_rand.c
    functionUses: 3
    functionsReached:
    - PORT_Assert
    - fileno
    - fclose
    - read
    - PORT_SetError
    - fopen
    linkageType: ''
    returnType: size_t
    signature: size_t RNG_SystemRNG(void *dest, size_t maxLen)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - L
    - N
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 60
    functionName: prime_testcount_p
    functionSourceFile: /src/nss/lib/freebl/pqg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int prime_testcount_p(int L, int N)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: prime_testcount_p
      Src: /src/nss/lib/freebl/pqg.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - L
    - N
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: prime_testcount_q
    functionSourceFile: /src/nss/lib/freebl/pqg.c
    functionUses: 0
    functionsReached:
    - prime_testcount_p
    linkageType: ''
    returnType: int
    signature: int prime_testcount_q(int L, int N)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/pqg.c:83,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/pqg.c:89,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/pqg.c:95,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/pqg.c:100,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - L
    - N
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 104
    functionName: pqg_validate_dsa2
    functionSourceFile: /src/nss/lib/freebl/pqg.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus pqg_validate_dsa2(unsigned int L, unsigned int N)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/pqg.c:121,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - L
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 125
    functionName: pqg_get_default_N
    functionSourceFile: /src/nss/lib/freebl/pqg.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int pqg_get_default_N(unsigned int L)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - L
    - N
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 146
    functionName: getFirstHash
    functionSourceFile: /src/nss/lib/freebl/pqg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: HASH_HashType
    signature: HASH_HashType getFirstHash(unsigned int L, unsigned int N)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - hashtype
    argTypes:
    - HASH_HashType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 173
    functionName: getNextHash
    functionSourceFile: /src/nss/lib/freebl/pqg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: HASH_HashType
    signature: HASH_HashType getNextHash(HASH_HashType hashtype)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HASH_GetRawHashObject
      Src: /src/nss/lib/freebl/pqg.c:178,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/pqg.c:179,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/pqg.c:182,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/pqg.c:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - type
    argTypes:
    - HASH_HashType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 187
    functionName: HASH_ResultLen
    functionSourceFile: /src/nss/lib/freebl/pqg.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - HASH_GetRawHashObject
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int HASH_ResultLen(HASH_HashType type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HASH_GetRawHashObject
      Src: /src/nss/lib/freebl/pqg.c:193,1
    - Dst: SECHashObject*::create
      Src: /src/nss/lib/freebl/pqg.c:201,1
    - Dst: SECHashObject*::begin
      Src: /src/nss/lib/freebl/pqg.c:205,1
    - Dst: SECHashObject*::update
      Src: /src/nss/lib/freebl/pqg.c:206,1
    - Dst: SECHashObject*::end
      Src: /src/nss/lib/freebl/pqg.c:207,1
    - Dst: SECHashObject*::destroy
      Src: /src/nss/lib/freebl/pqg.c:208,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - type
    - dest
    - src
    - src_len
    argTypes:
    - HASH_HashType
    - unsigned char*
    - unsigned char*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 210
    functionName: PQG_HashBuf
    functionSourceFile: /src/nss/lib/freebl/pqg.c
    functionUses: 0
    functionsReached:
    - SECHashObject*::end
    - SECHashObject*::create
    - HASH_GetRawHashObject
    - SECHashObject*::destroy
    - SECHashObject*::begin
    - SECHashObject*::update
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PQG_HashBuf(HASH_HashType type, unsigned char *dest,\n            const
      unsigned char *src, PRUint32 src_len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - obj
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 224
    functionName: PQG_GetLength
    functionSourceFile: /src/nss/lib/freebl/pqg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int PQG_GetLength(const SECItem *obj)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/pqg.c:233,1
    - Dst: PQG_GetLength
      Src: /src/nss/lib/freebl/pqg.c:237,1
    - Dst: PQG_GetLength
      Src: /src/nss/lib/freebl/pqg.c:238,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/pqg.c:245,1
    - Dst: PQG_PBITS_TO_INDEX
      Src: /src/nss/lib/freebl/pqg.c:248,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/pqg.c:250,1
    - Dst: pqg_validate_dsa2
      Src: /src/nss/lib/freebl/pqg.c:255,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - params
    argTypes:
    - PQGParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 258
    functionName: PQG_Check
    functionSourceFile: /src/nss/lib/freebl/pqg.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PQG_GetLength
    - pqg_validate_dsa2
    - PQG_PBITS_TO_INDEX
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PQG_Check(const PQGParams *params)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/pqg.c:266,1
    - Dst: PQG_GetLength
      Src: /src/nss/lib/freebl/pqg.c:270,1
    - Dst: PQG_GetLength
      Src: /src/nss/lib/freebl/pqg.c:271,1
    - Dst: getFirstHash
      Src: /src/nss/lib/freebl/pqg.c:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - params
    argTypes:
    - PQGParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 273
    functionName: PQG_GetHashType
    functionSourceFile: /src/nss/lib/freebl/pqg.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    - PQG_GetLength
    - getFirstHash
    linkageType: ''
    returnType: HASH_HashType
    signature: HASH_HashType PQG_GetHashType(const PQGParams *params)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/freebl/pqg.c:285,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/pqg.c:288,1
    - Dst: RNG_GenerateGlobalRandomBytes
      Src: /src/nss/lib/freebl/pqg.c:291,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - seed
    - arena
    argTypes:
    - SECItem*
    - PLArenaPool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 300
    functionName: getPQseed
    functionSourceFile: /src/nss/lib/freebl/pqg.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - RNG_GenerateGlobalRandomBytes
    - PORT_ArenaZAlloc
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus getPQseed(SECItem *seed, PLArenaPool *arena)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/freebl/pqg.c:312,1
    - Dst: RNG_GenerateGlobalRandomBytes
      Src: /src/nss/lib/freebl/pqg.c:315,1
    - Dst: mp_read_unsigned_octets
      Src: /src/nss/lib/freebl/pqg.c:319,1
    - Dst: MP_TO_SEC_ERROR
      Src: /src/nss/lib/freebl/pqg.c:321,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - hit
    - H
    argTypes:
    - SECItem*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 325
    functionName: generate_h_candidate
    functionSourceFile: /src/nss/lib/freebl/pqg.c
    functionUses: 0
    functionsReached:
    - memset
    - MP_TO_SEC_ERROR
    - RNG_GenerateGlobalRandomBytes
    - mp_read_unsigned_octets
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus generate_h_candidate(SECItem *hit, mp_int *H)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/pqg.c:336,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/pqg.c:337,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/pqg.c:338,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/pqg.c:339,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:340,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/pqg.c:340,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:341,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/pqg.c:341,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:342,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/pqg.c:342,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/pqg.c:343,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:346,1
    - Dst: mp_add_d
      Src: /src/nss/lib/freebl/pqg.c:346,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:348,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/pqg.c:348,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:349,1
    - Dst: mp_set_ulong
      Src: /src/nss/lib/freebl/pqg.c:349,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:350,1
    - Dst: mp_add
      Src: /src/nss/lib/freebl/pqg.c:350,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:353,1
    - Dst: mp_div_2d
      Src: /src/nss/lib/freebl/pqg.c:353,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/freebl/pqg.c:355,1
    - Dst: MPINT_TO_SECITEM
      Src: /src/nss/lib/freebl/pqg.c:357,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/pqg.c:359,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/pqg.c:360,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/pqg.c:361,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/pqg.c:362,1
    - Dst: MP_TO_SEC_ERROR
      Src: /src/nss/lib/freebl/pqg.c:364,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 4
    argNames:
    - seed
    - addend
    - seedlen
    - seedout
    argTypes:
    - SECItem*
    - unsigned long
    - int
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 368
    functionName: addToSeed
    functionSourceFile: /src/nss/lib/freebl/pqg.c
    functionUses: 0
    functionsReached:
    - mp_init
    - mp_add_d
    - mp_add
    - MPINT_TO_SECITEM
    - CHECK_MPI_OK
    - SECITEM_TO_MPINT
    - mp_set_ulong
    - MP_TO_SEC_ERROR
    - mp_clear
    - mp_div_2d
    - MP_DIGITS
    - SECITEM_ZfreeItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus addToSeed(const SECItem *seed,\n          unsigned long
      addend,\n          int seedlen, /* g in 186-1 */\n          SECItem *seedout)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: addToSeed
      Src: /src/nss/lib/freebl/pqg.c:384,1
    - Dst: PQG_HashBuf
      Src: /src/nss/lib/freebl/pqg.c:388,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/freebl/pqg.c:390,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - hashtype
    - seed
    - addend
    - seedlen
    - hashOutBuf
    argTypes:
    - HASH_HashType
    - SECItem*
    - unsigned long
    - int
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 375
    functionDepth: 2
    functionLinenumber: 375
    functionLinenumberEnd: 392
    functionName: addToSeedThenHash
    functionSourceFile: /src/nss/lib/freebl/pqg.c
    functionUses: 0
    functionsReached:
    - addToSeed
    - PQG_HashBuf
    - SECITEM_ZfreeItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus addToSeedThenHash(HASH_HashType hashtype,\n                  const
      SECItem *seed,\n                  unsigned long addend,\n                  int
      seedlen, /* g in 186-1 */\n                  unsigned char *hashOutBuf)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/pqg.c:414,1
    - Dst: SHA1_HashBuf
      Src: /src/nss/lib/freebl/pqg.c:414,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/pqg.c:415,1
    - Dst: addToSeedThenHash
      Src: /src/nss/lib/freebl/pqg.c:415,1
    - Dst: mp_read_unsigned_octets
      Src: /src/nss/lib/freebl/pqg.c:426,1
    - Dst: memset
      Src: /src/nss/lib/freebl/pqg.c:428,1
    - Dst: memset
      Src: /src/nss/lib/freebl/pqg.c:429,1
    - Dst: memset
      Src: /src/nss/lib/freebl/pqg.c:430,1
    - Dst: MP_TO_SEC_ERROR
      Src: /src/nss/lib/freebl/pqg.c:432,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - g
    - seed
    - Q
    argTypes:
    - unsigned int
    - SECItem*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 398
    functionDepth: 3
    functionLinenumber: 398
    functionLinenumberEnd: 436
    functionName: makeQfromSeed
    functionSourceFile: /src/nss/lib/freebl/pqg.c
    functionUses: 0
    functionsReached:
    - addToSeedThenHash
    - CHECK_SEC_OK
    - memset
    - mp_read_unsigned_octets
    - SHA1_HashBuf
    - MP_TO_SEC_ERROR
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus makeQfromSeed(\n    unsigned int g,      /* input.  Length
      of seed in bits. */\n    const SECItem *seed, /* input.  */\n    mp_int *Q)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HASH_ResultLen
      Src: /src/nss/lib/freebl/pqg.c:453,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/pqg.c:460,1
    - Dst: PQG_HashBuf
      Src: /src/nss/lib/freebl/pqg.c:460,1
    - Dst: mp_read_unsigned_octets
      Src: /src/nss/lib/freebl/pqg.c:475,1
    - Dst: memset
      Src: /src/nss/lib/freebl/pqg.c:477,1
    - Dst: MP_TO_SEC_ERROR
      Src: /src/nss/lib/freebl/pqg.c:479,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - hashtype
    - N
    - seed
    - Q
    argTypes:
    - HASH_HashType
    - unsigned int
    - SECItem*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 483
    functionName: makeQ2fromSeed
    functionSourceFile: /src/nss/lib/freebl/pqg.c
    functionUses: 0
    functionsReached:
    - PQG_HashBuf
    - CHECK_SEC_OK
    - memset
    - mp_read_unsigned_octets
    - MP_TO_SEC_ERROR
    - HASH_ResultLen
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus makeQ2fromSeed(\n    HASH_HashType hashtype, /* selected
      Hashing algorithm */\n    unsigned int N,         /* input.  Length of q in
      bits. */\n    const SECItem *seed,    /* input.  */\n    mp_int *Q)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: HASH_ResultLen
      Src: /src/nss/lib/freebl/pqg.c:512,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/pqg.c:525,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/pqg.c:526,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/pqg.c:527,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/pqg.c:528,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/pqg.c:529,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/pqg.c:530,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:531,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/pqg.c:531,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:532,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/pqg.c:532,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:533,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/pqg.c:533,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:534,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/pqg.c:534,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:535,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/pqg.c:535,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:536,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/pqg.c:536,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/pqg.c:564,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/pqg.c:571,1
    - Dst: addToSeedThenHash
      Src: /src/nss/lib/freebl/pqg.c:571,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/pqg.c:575,1
    - Dst: addToSeed
      Src: /src/nss/lib/freebl/pqg.c:575,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:602,1
    - Dst: mp_read_unsigned_octets
      Src: /src/nss/lib/freebl/pqg.c:602,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:604,1
    - Dst: mp_mul
      Src: /src/nss/lib/freebl/pqg.c:604,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:605,1
    - Dst: mp_add
      Src: /src/nss/lib/freebl/pqg.c:605,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:606,1
    - Dst: mp_add
      Src: /src/nss/lib/freebl/pqg.c:606,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:607,1
    - Dst: mp_sub_d
      Src: /src/nss/lib/freebl/pqg.c:607,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:609,1
    - Dst: mp_div
      Src: /src/nss/lib/freebl/pqg.c:609,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:617,1
    - Dst: mp_2expt
      Src: /src/nss/lib/freebl/pqg.c:617,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:619,1
    - Dst: mp_mul
      Src: /src/nss/lib/freebl/pqg.c:619,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:620,1
    - Dst: mp_add_d
      Src: /src/nss/lib/freebl/pqg.c:620,1
    - Dst: mpl_significant_bits
      Src: /src/nss/lib/freebl/pqg.c:621,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:622,1
    - Dst: mp_sub_d
      Src: /src/nss/lib/freebl/pqg.c:622,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:624,1
    - Dst: mp_add
      Src: /src/nss/lib/freebl/pqg.c:624,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:627,1
    - Dst: mp_div
      Src: /src/nss/lib/freebl/pqg.c:627,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:628,1
    - Dst: mp_mul
      Src: /src/nss/lib/freebl/pqg.c:628,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:629,1
    - Dst: mp_add_d
      Src: /src/nss/lib/freebl/pqg.c:629,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/pqg.c:639,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/pqg.c:647,1
    - Dst: addToSeedThenHash
      Src: /src/nss/lib/freebl/pqg.c:647,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/pqg.c:651,1
    - Dst: addToSeed
      Src: /src/nss/lib/freebl/pqg.c:651,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:653,1
    - Dst: mp_read_unsigned_octets
      Src: /src/nss/lib/freebl/pqg.c:653,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:654,1
    - Dst: mp_sub_d
      Src: /src/nss/lib/freebl/pqg.c:654,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:655,1
    - Dst: mp_mod
      Src: /src/nss/lib/freebl/pqg.c:655,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:656,1
    - Dst: mp_add_d
      Src: /src/nss/lib/freebl/pqg.c:656,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:661,1
    - Dst: mp_mul
      Src: /src/nss/lib/freebl/pqg.c:661,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:662,1
    - Dst: mp_add
      Src: /src/nss/lib/freebl/pqg.c:662,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:663,1
    - Dst: mp_exptmod
      Src: /src/nss/lib/freebl/pqg.c:663,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:668,1
    - Dst: mp_sub_d
      Src: /src/nss/lib/freebl/pqg.c:668,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:669,1
    - Dst: mp_gcd
      Src: /src/nss/lib/freebl/pqg.c:669,1
    - Dst: mp_cmp_d
      Src: /src/nss/lib/freebl/pqg.c:670,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:671,1
    - Dst: mp_exptmod
      Src: /src/nss/lib/freebl/pqg.c:671,1
    - Dst: mp_cmp_d
      Src: /src/nss/lib/freebl/pqg.c:672,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:674,1
    - Dst: mp_copy
      Src: /src/nss/lib/freebl/pqg.c:674,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:691,1
    - Dst: mp_add_d
      Src: /src/nss/lib/freebl/pqg.c:691,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/pqg.c:700,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/pqg.c:701,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/pqg.c:702,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/pqg.c:703,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/pqg.c:704,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/pqg.c:705,1
    - Dst: PORT_SafeZero
      Src: /src/nss/lib/freebl/pqg.c:706,1
    - Dst: MP_TO_SEC_ERROR
      Src: /src/nss/lib/freebl/pqg.c:708,1
    - Dst: mp_zero
      Src: /src/nss/lib/freebl/pqg.c:712,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/freebl/pqg.c:714,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 93
    argCount: 8
    argNames:
    - hashtype
    - length
    - seedlen
    - c0
    - q
    - prime
    - prime_seed
    - prime_gen_counter
    argTypes:
    - HASH_HashType
    - unsigned int
    - unsigned int
    - mp_int*
    - mp_int*
    - mp_int*
    - SECItem*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 494
    functionDepth: 3
    functionLinenumber: 494
    functionLinenumberEnd: 719
    functionName: makePrimefromPrimesShaweTaylor
    functionSourceFile: /src/nss/lib/freebl/pqg.c
    functionUses: 0
    functionsReached:
    - addToSeed
    - MP_TO_SEC_ERROR
    - PORT_SafeZero
    - mp_add_d
    - mp_2expt
    - mp_add
    - mp_exptmod
    - mp_mul
    - CHECK_SEC_OK
    - CHECK_MPI_OK
    - mp_sub_d
    - mp_read_unsigned_octets
    - mp_div
    - HASH_ResultLen
    - MP_DIGITS
    - mp_clear
    - mp_init
    - addToSeedThenHash
    - mp_gcd
    - mp_cmp_d
    - mp_copy
    - mp_zero
    - SECITEM_ZfreeItem
    - mpl_significant_bits
    - mp_mod
    - PORT_Memset
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus makePrimefromPrimesShaweTaylor(\n    HASH_HashType hashtype,
      \         /* selected Hashing algorithm */\n    unsigned int length,             /*
      input. Length of prime in bits. */\n    unsigned int seedlen,            /*
      input seed length in bits */\n    mp_int *c0,                      /* seed prime
      */\n    mp_int *q,                       /* sub prime, can be 1 */\n    mp_int
      *prime,                   /* output.  */\n    SECItem *prime_seed,             /*
      input/output.  */\n    unsigned int *prime_gen_counter)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: HASH_ResultLen
      Src: /src/nss/lib/freebl/pqg.c:739,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/pqg.c:749,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/pqg.c:750,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/pqg.c:751,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:752,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/pqg.c:752,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:753,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/pqg.c:753,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:754,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/pqg.c:754,1
    - Dst: mp_zero
      Src: /src/nss/lib/freebl/pqg.c:763,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:764,1
    - Dst: mp_add_d
      Src: /src/nss/lib/freebl/pqg.c:764,1
    - Dst: makePrimefromSeedShaweTaylor
      Src: /src/nss/lib/freebl/pqg.c:769,1
    - Dst: makePrimefromPrimesShaweTaylor
      Src: /src/nss/lib/freebl/pqg.c:776,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/pqg.c:781,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/freebl/pqg.c:781,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/pqg.c:787,1
    - Dst: PQG_HashBuf
      Src: /src/nss/lib/freebl/pqg.c:787,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/pqg.c:788,1
    - Dst: addToSeedThenHash
      Src: /src/nss/lib/freebl/pqg.c:788,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:813,1
    - Dst: mp_read_unsigned_octets
      Src: /src/nss/lib/freebl/pqg.c:813,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/pqg.c:817,1
    - Dst: addToSeed
      Src: /src/nss/lib/freebl/pqg.c:817,1
    - Dst: mpp_divis_primes
      Src: /src/nss/lib/freebl/pqg.c:832,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:836,1
    - Dst: mp_copy
      Src: /src/nss/lib/freebl/pqg.c:836,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/pqg.c:859,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/pqg.c:860,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/pqg.c:861,1
    - Dst: PORT_SafeZero
      Src: /src/nss/lib/freebl/pqg.c:862,1
    - Dst: MP_TO_SEC_ERROR
      Src: /src/nss/lib/freebl/pqg.c:864,1
    - Dst: mp_zero
      Src: /src/nss/lib/freebl/pqg.c:868,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/freebl/pqg.c:870,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 84
    argCount: 6
    argNames:
    - hashtype
    - length
    - input_seed
    - prime
    - prime_seed
    - prime_gen_counter
    argTypes:
    - HASH_HashType
    - unsigned int
    - SECItem*
    - mp_int*
    - SECItem*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 726
    functionDepth: 4
    functionLinenumber: 726
    functionLinenumberEnd: 875
    functionName: makePrimefromSeedShaweTaylor
    functionSourceFile: /src/nss/lib/freebl/pqg.c
    functionUses: 1
    functionsReached:
    - addToSeed
    - MP_TO_SEC_ERROR
    - PORT_SafeZero
    - mp_add_d
    - CHECK_SEC_OK
    - CHECK_MPI_OK
    - mp_read_unsigned_octets
    - HASH_ResultLen
    - mp_clear
    - MP_DIGITS
    - mp_init
    - addToSeedThenHash
    - PQG_HashBuf
    - mp_copy
    - mp_zero
    - mpp_divis_primes
    - SECITEM_ZfreeItem
    - makePrimefromSeedShaweTaylor
    - makePrimefromPrimesShaweTaylor
    - SECITEM_CopyItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus makePrimefromSeedShaweTaylor(\n    HASH_HashType hashtype,
      \         /* selected Hashing algorithm */\n    unsigned int length,             /*
      input.  Length of prime in bits. */\n    const SECItem *input_seed,       /*
      input.  */\n    mp_int *prime,                   /* output.  */\n    SECItem
      *prime_seed,             /* output.  */\n    unsigned int *prime_gen_counter)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: makeQfromSeed
      Src: /src/nss/lib/freebl/pqg.c:902,1
    - Dst: mp_cmp
      Src: /src/nss/lib/freebl/pqg.c:903,1
    - Dst: mp_zero
      Src: /src/nss/lib/freebl/pqg.c:908,1
    - Dst: makeQfromSeed
      Src: /src/nss/lib/freebl/pqg.c:914,1
    - Dst: mp_cmp
      Src: /src/nss/lib/freebl/pqg.c:916,1
    - Dst: getFirstHash
      Src: /src/nss/lib/freebl/pqg.c:926,1
    - Dst: getNextHash
      Src: /src/nss/lib/freebl/pqg.c:927,1
    - Dst: makeQ2fromSeed
      Src: /src/nss/lib/freebl/pqg.c:928,1
    - Dst: mp_cmp
      Src: /src/nss/lib/freebl/pqg.c:932,1
    - Dst: getFirstHash
      Src: /src/nss/lib/freebl/pqg.c:943,1
    - Dst: getNextHash
      Src: /src/nss/lib/freebl/pqg.c:944,1
    - Dst: makePrimefromSeedShaweTaylor
      Src: /src/nss/lib/freebl/pqg.c:947,1
    - Dst: mp_cmp
      Src: /src/nss/lib/freebl/pqg.c:952,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/freebl/pqg.c:956,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/freebl/pqg.c:960,1
    - Dst: mp_zero
      Src: /src/nss/lib/freebl/pqg.c:961,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/freebl/pqg.c:968,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/freebl/pqg.c:971,1
    - Dst: mp_zero
      Src: /src/nss/lib/freebl/pqg.c:974,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 57
    argCount: 10
    argNames:
    - L
    - N
    - g
    - seed
    - Q
    - Q_
    - qseed_len
    - hashtypePtr
    - typePtr
    - qgen_counter
    argTypes:
    - unsigned int
    - unsigned int
    - unsigned int
    - SECItem*
    - mp_int*
    - mp_int*
    - unsigned int*
    - HASH_HashType*
    - pqgGenType*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 880
    functionDepth: 5
    functionLinenumber: 880
    functionLinenumberEnd: 976
    functionName: findQfromSeed
    functionSourceFile: /src/nss/lib/freebl/pqg.c
    functionUses: 0
    functionsReached:
    - makePrimefromSeedShaweTaylor
    - makeQ2fromSeed
    - PORT_Memcmp
    - getNextHash
    - getFirstHash
    - makeQfromSeed
    - mp_zero
    - mp_cmp
    - SECITEM_ZfreeItem
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus findQfromSeed(\n    unsigned int L,             /* input.
      \ Length of p in bits. */\n    unsigned int N,             /* input.  Length
      of q in bits. */\n    unsigned int g,             /* input.  Length of seed
      in bits. */\n    const SECItem *seed,        /* input.  */\n    mp_int *Q,                  /*
      input. */\n    mp_int *Q_,                 /* output. */\n    unsigned int *qseed_len,
      \   /* output */\n    HASH_HashType *hashtypePtr, /* output. Hash uses */\n
      \   pqgGenType *typePtr,        /* output. Generation Type used */\n    unsigned
      int *qgen_counter)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/pqg.c:1004,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/pqg.c:1005,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/pqg.c:1006,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/pqg.c:1007,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/pqg.c:1008,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/pqg.c:1009,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:1010,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/pqg.c:1010,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:1011,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/pqg.c:1011,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:1012,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/pqg.c:1012,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:1013,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/pqg.c:1013,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:1014,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/pqg.c:1014,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:1015,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/pqg.c:1015,1
    - Dst: HASH_ResultLen
      Src: /src/nss/lib/freebl/pqg.c:1017,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/pqg.c:1020,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/pqg.c:1039,1
    - Dst: addToSeedThenHash
      Src: /src/nss/lib/freebl/pqg.c:1039,1
    - Dst: OCTETS_TO_MPINT
      Src: /src/nss/lib/freebl/pqg.c:1043,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:1044,1
    - Dst: mpl_lsh
      Src: /src/nss/lib/freebl/pqg.c:1044,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:1045,1
    - Dst: mp_add
      Src: /src/nss/lib/freebl/pqg.c:1045,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/pqg.c:1050,1
    - Dst: addToSeedThenHash
      Src: /src/nss/lib/freebl/pqg.c:1050,1
    - Dst: OCTETS_TO_MPINT
      Src: /src/nss/lib/freebl/pqg.c:1051,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:1052,1
    - Dst: mp_div_2d
      Src: /src/nss/lib/freebl/pqg.c:1052,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:1053,1
    - Dst: mpl_lsh
      Src: /src/nss/lib/freebl/pqg.c:1053,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:1054,1
    - Dst: mp_add
      Src: /src/nss/lib/freebl/pqg.c:1054,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:1059,1
    - Dst: mpl_set_bit
      Src: /src/nss/lib/freebl/pqg.c:1059,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:1060,1
    - Dst: mp_add
      Src: /src/nss/lib/freebl/pqg.c:1060,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:1065,1
    - Dst: mp_mul_2
      Src: /src/nss/lib/freebl/pqg.c:1065,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:1066,1
    - Dst: mp_mod
      Src: /src/nss/lib/freebl/pqg.c:1066,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:1072,1
    - Dst: mp_sub_d
      Src: /src/nss/lib/freebl/pqg.c:1072,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:1073,1
    - Dst: mp_sub
      Src: /src/nss/lib/freebl/pqg.c:1073,1
    - Dst: PORT_SafeZero
      Src: /src/nss/lib/freebl/pqg.c:1075,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/pqg.c:1076,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/pqg.c:1077,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/pqg.c:1078,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/pqg.c:1079,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/pqg.c:1080,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/pqg.c:1081,1
    - Dst: MP_TO_SEC_ERROR
      Src: /src/nss/lib/freebl/pqg.c:1083,1
    - Dst: mp_zero
      Src: /src/nss/lib/freebl/pqg.c:1084,1
    - Dst: mp_zero
      Src: /src/nss/lib/freebl/pqg.c:1088,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 53
    argCount: 8
    argNames:
    - hashtype
    - L
    - N
    - offset
    - seedlen
    - seed
    - Q
    - P
    argTypes:
    - HASH_HashType
    - unsigned int
    - unsigned int
    - unsigned int
    - unsigned int
    - SECItem*
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 983
    functionDepth: 3
    functionLinenumber: 983
    functionLinenumberEnd: 1091
    functionName: makePfromQandSeed
    functionSourceFile: /src/nss/lib/freebl/pqg.c
    functionUses: 0
    functionsReached:
    - mpl_lsh
    - MP_TO_SEC_ERROR
    - PORT_SafeZero
    - mp_add
    - CHECK_SEC_OK
    - CHECK_MPI_OK
    - mp_sub_d
    - HASH_ResultLen
    - mp_clear
    - MP_DIGITS
    - mp_init
    - PORT_Assert
    - addToSeedThenHash
    - OCTETS_TO_MPINT
    - mp_zero
    - mpl_set_bit
    - mp_mod
    - mp_mul_2
    - mp_sub
    - mp_div_2d
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus makePfromQandSeed(\n    HASH_HashType hashtype, /* selected
      Hashing algorithm */\n    unsigned int L,         /* Length of P in bits.  Per
      FIPS 186. */\n    unsigned int N,         /* Length of Q in bits.  Per FIPS
      186. */\n    unsigned int offset,    /* Per FIPS 186, App 2.2. & 186-3 App A.1.1.2
      */\n    unsigned int seedlen,   /* input. Length of seed in bits. (g in 186-1)*/\n
      \   const SECItem *seed,    /* input.  */\n    const mp_int *Q,        /* input.
      \ */\n    mp_int *P)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/pqg.c:1107,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/pqg.c:1108,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:1109,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/pqg.c:1109,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:1110,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/pqg.c:1110,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:1111,1
    - Dst: mp_sub_d
      Src: /src/nss/lib/freebl/pqg.c:1111,1
    - Dst: mp_cmp
      Src: /src/nss/lib/freebl/pqg.c:1112,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:1113,1
    - Dst: mp_sub
      Src: /src/nss/lib/freebl/pqg.c:1113,1
    - Dst: mp_cmp_d
      Src: /src/nss/lib/freebl/pqg.c:1119,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:1124,1
    - Dst: mp_div
      Src: /src/nss/lib/freebl/pqg.c:1124,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:1125,1
    - Dst: mp_exptmod
      Src: /src/nss/lib/freebl/pqg.c:1125,1
    - Dst: mp_cmp_d
      Src: /src/nss/lib/freebl/pqg.c:1127,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/pqg.c:1133,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/pqg.c:1134,1
    - Dst: MP_TO_SEC_ERROR
      Src: /src/nss/lib/freebl/pqg.c:1136,1
    - Dst: mp_zero
      Src: /src/nss/lib/freebl/pqg.c:1140,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 5
    argNames:
    - P
    - Q
    - H
    - G
    - passed
    argTypes:
    - mp_int*
    - mp_int*
    - mp_int*
    - mp_int*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1143
      start: 1096
    functionDepth: 1
    functionLinenumber: 1096
    functionLinenumberEnd: 1143
    functionName: makeGfromH
    functionSourceFile: /src/nss/lib/freebl/pqg.c
    functionUses: 0
    functionsReached:
    - mp_init
    - mp_exptmod
    - mp_cmp_d
    - CHECK_MPI_OK
    - mp_sub
    - mp_sub_d
    - mp_zero
    - mp_div
    - MP_TO_SEC_ERROR
    - mp_cmp
    - mp_clear
    - MP_DIGITS
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus makeGfromH(const mp_int *P, /* input.  */\n           const
      mp_int *Q, /* input.  */\n           mp_int *H,       /* input and output. */\n
      \          mp_int *G,       /* output. */\n           PRBool *passed)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/pqg.c:1165,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/pqg.c:1166,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/pqg.c:1167,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:1168,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/pqg.c:1168,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:1169,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/pqg.c:1169,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:1170,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/pqg.c:1170,1
    - Dst: HASH_GetRawHashObject
      Src: /src/nss/lib/freebl/pqg.c:1173,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/pqg.c:1176,1
    - Dst: SECHashObject*::create
      Src: /src/nss/lib/freebl/pqg.c:1180,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:1186,1
    - Dst: mp_sub_d
      Src: /src/nss/lib/freebl/pqg.c:1186,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:1188,1
    - Dst: mp_div
      Src: /src/nss/lib/freebl/pqg.c:1188,1
    - Dst: SECHashObject*::begin
      Src: /src/nss/lib/freebl/pqg.c:1199,1
    - Dst: SECHashObject*::update
      Src: /src/nss/lib/freebl/pqg.c:1200,1
    - Dst: SECHashObject*::update
      Src: /src/nss/lib/freebl/pqg.c:1201,1
    - Dst: SECHashObject*::update
      Src: /src/nss/lib/freebl/pqg.c:1202,1
    - Dst: SECHashObject*::update
      Src: /src/nss/lib/freebl/pqg.c:1205,1
    - Dst: SECHashObject*::end
      Src: /src/nss/lib/freebl/pqg.c:1206,1
    - Dst: OCTETS_TO_MPINT
      Src: /src/nss/lib/freebl/pqg.c:1207,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:1209,1
    - Dst: mp_exptmod
      Src: /src/nss/lib/freebl/pqg.c:1209,1
    - Dst: mp_cmp_d
      Src: /src/nss/lib/freebl/pqg.c:1213,1
    - Dst: PORT_SafeZero
      Src: /src/nss/lib/freebl/pqg.c:1224,1
    - Dst: SECHashObject*::destroy
      Src: /src/nss/lib/freebl/pqg.c:1226,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/pqg.c:1228,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/pqg.c:1229,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/pqg.c:1230,1
    - Dst: MP_TO_SEC_ERROR
      Src: /src/nss/lib/freebl/pqg.c:1232,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 55
    argCount: 6
    argNames:
    - hashtype
    - P
    - Q
    - seed
    - index
    - G
    argTypes:
    - HASH_HashType
    - mp_int*
    - mp_int*
    - SECItem*
    - unsigned char
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1236
      start: 1148
    functionDepth: 1
    functionLinenumber: 1148
    functionLinenumberEnd: 1236
    functionName: makeGfromIndex
    functionSourceFile: /src/nss/lib/freebl/pqg.c
    functionUses: 0
    functionsReached:
    - mp_init
    - OCTETS_TO_MPINT
    - mp_exptmod
    - SECHashObject*::begin
    - mp_cmp_d
    - CHECK_MPI_OK
    - SECHashObject*::end
    - SECHashObject*::create
    - PORT_SetError
    - mp_sub_d
    - mp_div
    - SECHashObject*::destroy
    - HASH_GetRawHashObject
    - MP_TO_SEC_ERROR
    - PORT_SafeZero
    - mp_clear
    - MP_DIGITS
    - SECHashObject*::update
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus makeGfromIndex(HASH_HashType hashtype,\n               const
      mp_int *P,     /* input.  */\n               const mp_int *Q,     /* input.
      \ */\n               const SECItem *seed, /* input. */\n               unsigned
      char index, /* input. */\n               mp_int *G)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/pqg.c:1271,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/pqg.c:1276,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/pqg.c:1277,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/pqg.c:1278,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/pqg.c:1279,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/pqg.c:1280,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/pqg.c:1281,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:1282,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/pqg.c:1282,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:1283,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/pqg.c:1283,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:1284,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/pqg.c:1284,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:1285,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/pqg.c:1285,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:1286,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/pqg.c:1286,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:1287,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/pqg.c:1287,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/pqg.c:1295,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/pqg.c:1302,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/pqg.c:1303,1
    - Dst: getFirstHash
      Src: /src/nss/lib/freebl/pqg.c:1304,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/pqg.c:1305,1
    - Dst: makeGfromIndex
      Src: /src/nss/lib/freebl/pqg.c:1305,1
    - Dst: MPINT_TO_SECITEM
      Src: /src/nss/lib/freebl/pqg.c:1307,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/freebl/pqg.c:1311,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/pqg.c:1313,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/freebl/pqg.c:1316,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/pqg.c:1318,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/freebl/pqg.c:1319,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/freebl/pqg.c:1324,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/pqg.c:1326,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/freebl/pqg.c:1327,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/freebl/pqg.c:1330,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/pqg.c:1332,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/freebl/pqg.c:1333,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/freebl/pqg.c:1334,1
    - Dst: getFirstHash
      Src: /src/nss/lib/freebl/pqg.c:1344,1
    - Dst: HASH_ResultLen
      Src: /src/nss/lib/freebl/pqg.c:1345,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/pqg.c:1358,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/pqg.c:1362,1
    - Dst: getPQseed
      Src: /src/nss/lib/freebl/pqg.c:1362,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/pqg.c:1382,1
    - Dst: makeQfromSeed
      Src: /src/nss/lib/freebl/pqg.c:1382,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/pqg.c:1384,1
    - Dst: makeQ2fromSeed
      Src: /src/nss/lib/freebl/pqg.c:1384,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/pqg.c:1395,1
    - Dst: makePrimefromSeedShaweTaylor
      Src: /src/nss/lib/freebl/pqg.c:1395,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/pqg.c:1400,1
    - Dst: makePrimefromSeedShaweTaylor
      Src: /src/nss/lib/freebl/pqg.c:1400,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/pqg.c:1403,1
    - Dst: makePrimefromPrimesShaweTaylor
      Src: /src/nss/lib/freebl/pqg.c:1403,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/pqg.c:1408,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/freebl/pqg.c:1415,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/pqg.c:1419,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/pqg.c:1420,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/pqg.c:1421,1
    - Dst: mpp_pprime_secure
      Src: /src/nss/lib/freebl/pqg.c:1435,1
    - Dst: prime_testcount_q
      Src: /src/nss/lib/freebl/pqg.c:1435,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/pqg.c:1474,1
    - Dst: makePfromQandSeed
      Src: /src/nss/lib/freebl/pqg.c:1474,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:1480,1
    - Dst: mpl_set_bit
      Src: /src/nss/lib/freebl/pqg.c:1480,1
    - Dst: mp_cmp
      Src: /src/nss/lib/freebl/pqg.c:1481,1
    - Dst: mpp_pprime_secure
      Src: /src/nss/lib/freebl/pqg.c:1488,1
    - Dst: prime_testcount_p
      Src: /src/nss/lib/freebl/pqg.c:1488,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/freebl/pqg.c:1519,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/pqg.c:1524,1
    - Dst: generate_h_candidate
      Src: /src/nss/lib/freebl/pqg.c:1524,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/pqg.c:1525,1
    - Dst: makeGfromH
      Src: /src/nss/lib/freebl/pqg.c:1525,1
    - Dst: MPINT_TO_SECITEM
      Src: /src/nss/lib/freebl/pqg.c:1527,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/freebl/pqg.c:1530,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/pqg.c:1537,1
    - Dst: makeGfromIndex
      Src: /src/nss/lib/freebl/pqg.c:1537,1
    - Dst: MPINT_TO_SECITEM
      Src: /src/nss/lib/freebl/pqg.c:1540,1
    - Dst: MPINT_TO_SECITEM
      Src: /src/nss/lib/freebl/pqg.c:1541,1
    - Dst: MPINT_TO_SECITEM
      Src: /src/nss/lib/freebl/pqg.c:1542,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/freebl/pqg.c:1548,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/freebl/pqg.c:1551,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/pqg.c:1553,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/pqg.c:1554,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/pqg.c:1555,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/pqg.c:1556,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/pqg.c:1557,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/pqg.c:1558,1
    - Dst: MP_TO_SEC_ERROR
      Src: /src/nss/lib/freebl/pqg.c:1560,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/freebl/pqg.c:1565,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/freebl/pqg.c:1568,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/freebl/pqg.c:1572,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 185
    argCount: 6
    argNames:
    - L
    - N
    - type
    - seedBytes
    - pParams
    - pVfy
    argTypes:
    - unsigned int
    - unsigned int
    - pqgGenType
    - unsigned int
    - PQGParams**
    - PQGVerify**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1575
      start: 1243
    functionDepth: 5
    functionLinenumber: 1243
    functionLinenumberEnd: 1575
    functionName: pqg_ParamGen
    functionSourceFile: /src/nss/lib/freebl/pqg.c
    functionUses: 0
    functionsReached:
    - makeGfromH
    - makeQfromSeed
    - MP_TO_SEC_ERROR
    - generate_h_candidate
    - makePfromQandSeed
    - PORT_Memcpy
    - PORT_NewArena
    - CHECK_SEC_OK
    - CHECK_MPI_OK
    - prime_testcount_p
    - PORT_SetError
    - HASH_ResultLen
    - MP_DIGITS
    - mp_clear
    - mp_init
    - PORT_ArenaZAlloc
    - MPINT_TO_SECITEM
    - PORT_FreeArena
    - makeGfromIndex
    - getPQseed
    - makeQ2fromSeed
    - mpp_pprime_secure
    - prime_testcount_q
    - SECITEM_AllocItem
    - SECITEM_TO_MPINT
    - mp_cmp
    - SECITEM_ZfreeItem
    - mpl_set_bit
    - makePrimefromSeedShaweTaylor
    - makePrimefromPrimesShaweTaylor
    - getFirstHash
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus pqg_ParamGen(unsigned int L, unsigned int N, pqgGenType
      type,\n             unsigned int seedBytes, PQGParams **pParams, PQGVerify **pVfy)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/pqg.c:1584,1
    - Dst: pqg_ParamGen
      Src: /src/nss/lib/freebl/pqg.c:1589,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - j
    - pParams
    - pVfy
    argTypes:
    - unsigned int
    - PQGParams**
    - PQGVerify**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1591
      start: 1577
    functionDepth: 6
    functionLinenumber: 1577
    functionLinenumberEnd: 1591
    functionName: PQG_ParamGen
    functionSourceFile: /src/nss/lib/freebl/pqg.c
    functionUses: 3
    functionsReached:
    - PORT_SetError
    - pqg_ParamGen
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PQG_ParamGen(unsigned int j, PQGParams **pParams, PQGVerify
      **pVfy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/pqg.c:1600,1
    - Dst: pqg_ParamGen
      Src: /src/nss/lib/freebl/pqg.c:1604,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - j
    - seedBytes
    - pParams
    - pVfy
    argTypes:
    - unsigned int
    - unsigned int
    - PQGParams**
    - PQGVerify**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1606
      start: 1593
    functionDepth: 6
    functionLinenumber: 1593
    functionLinenumberEnd: 1606
    functionName: PQG_ParamGenSeedLen
    functionSourceFile: /src/nss/lib/freebl/pqg.c
    functionUses: 4
    functionsReached:
    - PORT_SetError
    - pqg_ParamGen
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PQG_ParamGenSeedLen(unsigned int j, unsigned int seedBytes,\n
      \                   PQGParams **pParams, PQGVerify **pVfy)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pqg_get_default_N
      Src: /src/nss/lib/freebl/pqg.c:1613,1
    - Dst: pqg_validate_dsa2
      Src: /src/nss/lib/freebl/pqg.c:1619,1
    - Dst: pqg_ParamGen
      Src: /src/nss/lib/freebl/pqg.c:1623,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - L
    - N
    - seedBytes
    - pParams
    - pVfy
    argTypes:
    - unsigned int
    - unsigned int
    - unsigned int
    - PQGParams**
    - PQGVerify**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1624
      start: 1608
    functionDepth: 6
    functionLinenumber: 1608
    functionLinenumberEnd: 1624
    functionName: PQG_ParamGenV2
    functionSourceFile: /src/nss/lib/freebl/pqg.c
    functionUses: 6
    functionsReached:
    - pqg_get_default_N
    - pqg_validate_dsa2
    - pqg_ParamGen
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PQG_ParamGenV2(unsigned int L, unsigned int N, unsigned
      int seedBytes,\n               PQGParams **pParams, PQGVerify **pVfy)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/pqg.c:1653,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/pqg.c:1659,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/pqg.c:1665,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/pqg.c:1669,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/pqg.c:1670,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/pqg.c:1671,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/pqg.c:1672,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/pqg.c:1673,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/pqg.c:1674,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/pqg.c:1675,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/pqg.c:1676,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/pqg.c:1677,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:1678,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/pqg.c:1678,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:1679,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/pqg.c:1679,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:1680,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/pqg.c:1680,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:1681,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/pqg.c:1681,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:1682,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/pqg.c:1682,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:1683,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/pqg.c:1683,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:1684,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/pqg.c:1684,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:1685,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/pqg.c:1685,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:1686,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/pqg.c:1686,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/pqg.c:1688,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/pqg.c:1689,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/pqg.c:1692,1
    - Dst: mpl_significant_bits
      Src: /src/nss/lib/freebl/pqg.c:1695,1
    - Dst: mpl_significant_bits
      Src: /src/nss/lib/freebl/pqg.c:1696,1
    - Dst: CHECKPARAM
      Src: /src/nss/lib/freebl/pqg.c:1699,1
    - Dst: PQG_PBITS_TO_INDEX
      Src: /src/nss/lib/freebl/pqg.c:1700,1
    - Dst: CHECKPARAM
      Src: /src/nss/lib/freebl/pqg.c:1701,1
    - Dst: CHECKPARAM
      Src: /src/nss/lib/freebl/pqg.c:1705,1
    - Dst: pqg_validate_dsa2
      Src: /src/nss/lib/freebl/pqg.c:1705,1
    - Dst: CHECKPARAM
      Src: /src/nss/lib/freebl/pqg.c:1710,1
    - Dst: mp_cmp
      Src: /src/nss/lib/freebl/pqg.c:1710,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:1713,1
    - Dst: mp_mod
      Src: /src/nss/lib/freebl/pqg.c:1713,1
    - Dst: CHECKPARAM
      Src: /src/nss/lib/freebl/pqg.c:1714,1
    - Dst: mp_cmp_d
      Src: /src/nss/lib/freebl/pqg.c:1714,1
    - Dst: CHECKPARAM
      Src: /src/nss/lib/freebl/pqg.c:1716,1
    - Dst: mpp_pprime_secure
      Src: /src/nss/lib/freebl/pqg.c:1716,1
    - Dst: prime_testcount_q
      Src: /src/nss/lib/freebl/pqg.c:1716,1
    - Dst: CHECKPARAM
      Src: /src/nss/lib/freebl/pqg.c:1718,1
    - Dst: mpp_pprime_secure
      Src: /src/nss/lib/freebl/pqg.c:1718,1
    - Dst: prime_testcount_p
      Src: /src/nss/lib/freebl/pqg.c:1718,1
    - Dst: CHECKPARAM
      Src: /src/nss/lib/freebl/pqg.c:1729,1
    - Dst: findQfromSeed
      Src: /src/nss/lib/freebl/pqg.c:1729,1
    - Dst: CHECKPARAM
      Src: /src/nss/lib/freebl/pqg.c:1731,1
    - Dst: mp_cmp
      Src: /src/nss/lib/freebl/pqg.c:1731,1
    - Dst: CHECKPARAM
      Src: /src/nss/lib/freebl/pqg.c:1734,1
    - Dst: CHECKPARAM
      Src: /src/nss/lib/freebl/pqg.c:1735,1
    - Dst: CHECKPARAM
      Src: /src/nss/lib/freebl/pqg.c:1764,1
    - Dst: CHECKPARAM
      Src: /src/nss/lib/freebl/pqg.c:1765,1
    - Dst: CHECKPARAM
      Src: /src/nss/lib/freebl/pqg.c:1766,1
    - Dst: CHECKPARAM
      Src: /src/nss/lib/freebl/pqg.c:1767,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/pqg.c:1781,1
    - Dst: makePrimefromSeedShaweTaylor
      Src: /src/nss/lib/freebl/pqg.c:1781,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/pqg.c:1784,1
    - Dst: makePrimefromPrimesShaweTaylor
      Src: /src/nss/lib/freebl/pqg.c:1784,1
    - Dst: CHECKPARAM
      Src: /src/nss/lib/freebl/pqg.c:1786,1
    - Dst: mp_cmp
      Src: /src/nss/lib/freebl/pqg.c:1786,1
    - Dst: CHECKPARAM
      Src: /src/nss/lib/freebl/pqg.c:1803,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/freebl/pqg.c:1803,1
    - Dst: CHECKPARAM
      Src: /src/nss/lib/freebl/pqg.c:1805,1
    - Dst: CHECKPARAM
      Src: /src/nss/lib/freebl/pqg.c:1806,1
    - Dst: CHECKPARAM
      Src: /src/nss/lib/freebl/pqg.c:1807,1
    - Dst: CHECKPARAM
      Src: /src/nss/lib/freebl/pqg.c:1808,1
    - Dst: CHECKPARAM
      Src: /src/nss/lib/freebl/pqg.c:1813,1
    - Dst: HASH_ResultLen
      Src: /src/nss/lib/freebl/pqg.c:1817,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/pqg.c:1818,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/pqg.c:1821,1
    - Dst: makePfromQandSeed
      Src: /src/nss/lib/freebl/pqg.c:1821,1
    - Dst: CHECKPARAM
      Src: /src/nss/lib/freebl/pqg.c:1823,1
    - Dst: mp_cmp
      Src: /src/nss/lib/freebl/pqg.c:1823,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:1833,1
    - Dst: mpl_set_bit
      Src: /src/nss/lib/freebl/pqg.c:1833,1
    - Dst: CHECKPARAM
      Src: /src/nss/lib/freebl/pqg.c:1834,1
    - Dst: mp_cmp_d
      Src: /src/nss/lib/freebl/pqg.c:1834,1
    - Dst: mp_cmp
      Src: /src/nss/lib/freebl/pqg.c:1834,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:1835,1
    - Dst: mpl_set_bit
      Src: /src/nss/lib/freebl/pqg.c:1835,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:1837,1
    - Dst: mp_exptmod
      Src: /src/nss/lib/freebl/pqg.c:1837,1
    - Dst: CHECKPARAM
      Src: /src/nss/lib/freebl/pqg.c:1838,1
    - Dst: mp_cmp_d
      Src: /src/nss/lib/freebl/pqg.c:1838,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/pqg.c:1856,1
    - Dst: makeGfromIndex
      Src: /src/nss/lib/freebl/pqg.c:1856,1
    - Dst: CHECKPARAM
      Src: /src/nss/lib/freebl/pqg.c:1858,1
    - Dst: mp_cmp
      Src: /src/nss/lib/freebl/pqg.c:1858,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/pqg.c:1862,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:1865,1
    - Dst: mpl_set_bit
      Src: /src/nss/lib/freebl/pqg.c:1865,1
    - Dst: CHECKPARAM
      Src: /src/nss/lib/freebl/pqg.c:1866,1
    - Dst: mp_cmp_d
      Src: /src/nss/lib/freebl/pqg.c:1866,1
    - Dst: mp_cmp
      Src: /src/nss/lib/freebl/pqg.c:1866,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/pqg.c:1867,1
    - Dst: mpl_set_bit
      Src: /src/nss/lib/freebl/pqg.c:1867,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/pqg.c:1869,1
    - Dst: makeGfromH
      Src: /src/nss/lib/freebl/pqg.c:1869,1
    - Dst: CHECKPARAM
      Src: /src/nss/lib/freebl/pqg.c:1870,1
    - Dst: mp_cmp
      Src: /src/nss/lib/freebl/pqg.c:1870,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/pqg.c:1873,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/pqg.c:1874,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/pqg.c:1875,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/pqg.c:1876,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/pqg.c:1877,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/pqg.c:1878,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/pqg.c:1879,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/pqg.c:1880,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/pqg.c:1881,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/freebl/pqg.c:1883,1
    - Dst: MP_TO_SEC_ERROR
      Src: /src/nss/lib/freebl/pqg.c:1886,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 149
    argCount: 3
    argNames:
    - params
    - vfy
    - result
    argTypes:
    - PQGParams*
    - PQGVerify*
    - SECStatus*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1890
      start: 1631
    functionDepth: 6
    functionLinenumber: 1631
    functionLinenumberEnd: 1890
    functionName: PQG_VerifyParams
    functionSourceFile: /src/nss/lib/freebl/pqg.c
    functionUses: 3
    functionsReached:
    - SECITEM_CompareItem
    - pqg_validate_dsa2
    - makeGfromH
    - PQG_PBITS_TO_INDEX
    - MP_TO_SEC_ERROR
    - makePfromQandSeed
    - mp_exptmod
    - findQfromSeed
    - CHECK_SEC_OK
    - CHECK_MPI_OK
    - prime_testcount_p
    - PORT_SetError
    - HASH_ResultLen
    - MP_DIGITS
    - mp_clear
    - mp_init
    - PORT_Assert
    - makeGfromIndex
    - mp_cmp_d
    - mpp_pprime_secure
    - prime_testcount_q
    - SECITEM_TO_MPINT
    - CHECKPARAM
    - mp_cmp
    - SECITEM_ZfreeItem
    - mpl_significant_bits
    - mpl_set_bit
    - makePrimefromSeedShaweTaylor
    - makePrimefromPrimesShaweTaylor
    - mp_mod
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PQG_VerifyParams(const PQGParams *params,\n                 const
      PQGVerify *vfy, SECStatus *result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1652
      start: 1647
    functionDepth: 0
    functionLinenumber: 1647
    functionLinenumberEnd: 1652
    functionName: CHECKPARAM
    functionSourceFile: /src/nss/lib/freebl/pqg.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECKPARAM(cond)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/freebl/pqg.c:1901,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/freebl/pqg.c:1903,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/freebl/pqg.c:1904,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/freebl/pqg.c:1905,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/pqg.c:1906,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - params
    argTypes:
    - PQGParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1908
      start: 1895
    functionDepth: 0
    functionLinenumber: 1895
    functionLinenumberEnd: 1908
    functionName: PQG_DestroyParams
    functionSourceFile: /src/nss/lib/freebl/pqg.c
    functionUses: 6
    functionsReached:
    - PORT_FreeArena
    - PORT_Free
    - SECITEM_ZfreeItem
    linkageType: ''
    returnType: void
    signature: void PQG_DestroyParams(PQGParams *params)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/freebl/pqg.c:1920,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/freebl/pqg.c:1922,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/freebl/pqg.c:1923,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/pqg.c:1924,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - vfy
    argTypes:
    - PQGVerify*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1926
      start: 1914
    functionDepth: 0
    functionLinenumber: 1914
    functionLinenumberEnd: 1926
    functionName: PQG_DestroyVerify
    functionSourceFile: /src/nss/lib/freebl/pqg.c
    functionUses: 6
    functionsReached:
    - PORT_FreeArena
    - PORT_Free
    - SECITEM_ZfreeItem
    linkageType: ''
    returnType: void
    signature: void PQG_DestroyVerify(PQGVerify *vfy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rijndael.c:67,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/rijndael.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - cx
    - key
    - Nk
    argTypes:
    - AESContext*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: rijndael_native_key_expansion
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    linkageType: ''
    returnType: void
    signature: "void rijndael_native_key_expansion(AESContext *cx, const unsigned
      char *key,\n                              unsigned int Nk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rijndael.c:76,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/rijndael.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - cx
    - output
    - input
    argTypes:
    - AESContext*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 78
    functionName: rijndael_native_encryptBlock
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    linkageType: ''
    returnType: void
    signature: "void rijndael_native_encryptBlock(AESContext *cx,\n                             unsigned
      char *output,\n                             const unsigned char *input)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rijndael.c:85,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/rijndael.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - cx
    - output
    - input
    argTypes:
    - AESContext*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 87
    functionName: rijndael_native_decryptBlock
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    linkageType: ''
    returnType: void
    signature: "void rijndael_native_decryptBlock(AESContext *cx,\n                             unsigned
      char *output,\n                             const unsigned char *input)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rijndael.c:93,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/rijndael.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - out
    - a
    - b
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 95
    functionName: native_xorBlock
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    linkageType: ''
    returnType: void
    signature: "void native_xorBlock(unsigned char *out, const unsigned char *a,\n
      \               const unsigned char *b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 122
    functionName: T0
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: T0(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 123
    functionName: T1
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: T1(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 124
    functionName: T2
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: T2(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 125
    functionName: T3
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: T3(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 126
    functionName: TInv0
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TInv0(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 127
    functionName: TInv1
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TInv1(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 128
    functionName: TInv2
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TInv2(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 129
    functionName: TInv3
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TInv3(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: IMXC0
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMXC0(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: IMXC1
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMXC1(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 132
    functionName: IMXC2
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMXC2(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 133
    functionName: IMXC3
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMXC3(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 136
    functionName: SBOX
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SBOX(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 138
    functionName: SBOX
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SBOX(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 140
    functionName: SINV
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SINV(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - b0
    - ','
    - b1
    - ','
    - b2
    - ','
    - b3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 153
    functionName: WORD4
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WORD4(b0, b1, b2, b3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - b0
    - ','
    - b1
    - ','
    - b2
    - ','
    - b3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 159
    functionName: WORD4
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WORD4(b0, b1, b2, b3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 165
    functionName: SBOX
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SBOX(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 166
    functionName: SINV
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SINV(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 172
    functionName: XTIME
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XTIME(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 181
    functionName: GFM01
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GFM01(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 183
    functionName: GFM02
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GFM02(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 185
    functionName: GFM04
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GFM04(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 187
    functionName: GFM08
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GFM08(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 189
    functionName: GFM03
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GFM03(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 191
    functionName: GFM09
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GFM09(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 193
    functionName: GFM0B
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GFM0B(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 195
    functionName: GFM0D
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GFM0D(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 197
    functionName: GFM0E
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GFM0E(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XTIME
      Src: /src/nss/lib/freebl/rijndael.c:210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - PRUint8
    - PRUint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 214
    functionName: gfm
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached:
    - XTIME
    linkageType: ''
    returnType: PRUint8
    signature: PRUint8 gfm(PRUint8 a, PRUint8 b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 218
    functionName: GFM01
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GFM01(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 220
    functionName: GFM02
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GFM02(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 222
    functionName: GFM03
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GFM03(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 224
    functionName: GFM09
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GFM09(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 226
    functionName: GFM0B
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GFM0B(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 228
    functionName: GFM0D
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GFM0D(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 230
    functionName: GFM0E
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GFM0E(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 238
    functionName: G_T0
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: G_T0(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 240
    functionName: G_T1
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: G_T1(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 242
    functionName: G_T2
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: G_T2(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 244
    functionName: G_T3
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: G_T3(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 250
    functionName: G_TInv0
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: G_TInv0(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 252
    functionName: G_TInv1
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: G_TInv1(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 254
    functionName: G_TInv2
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: G_TInv2(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 256
    functionName: G_TInv3
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: G_TInv3(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 262
    functionName: G_IMXC0
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: G_IMXC0(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 264
    functionName: G_IMXC1
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: G_IMXC1(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 266
    functionName: G_IMXC2
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: G_IMXC2(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 268
    functionName: G_IMXC3
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: G_IMXC3(i)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SINV
      Src: /src/nss/lib/freebl/rijndael.c:276,1
    - Dst: XTIME
      Src: /src/nss/lib/freebl/rijndael.c:277,1
    - Dst: XTIME
      Src: /src/nss/lib/freebl/rijndael.c:278,1
    - Dst: XTIME
      Src: /src/nss/lib/freebl/rijndael.c:279,1
    - Dst: WORD4
      Src: /src/nss/lib/freebl/rijndael.c:287,1
    - Dst: WORD4
      Src: /src/nss/lib/freebl/rijndael.c:289,1
    - Dst: WORD4
      Src: /src/nss/lib/freebl/rijndael.c:291,1
    - Dst: WORD4
      Src: /src/nss/lib/freebl/rijndael.c:293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 2
    argNames:
    - tx
    - i
    argTypes:
    - PRUint8
    - PRUint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 296
    functionName: gen_TInvXi
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached:
    - SINV
    - WORD4
    - XTIME
    linkageType: ''
    returnType: PRUint32
    signature: PRUint32 gen_TInvXi(PRUint8 tx, PRUint8 i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 298
    functionName: T0
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: T0(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 299
    functionName: T1
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: T1(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 300
    functionName: T2
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: T2(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 301
    functionName: T3
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: T3(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 302
    functionName: TInv0
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TInv0(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 303
    functionName: TInv1
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TInv1(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 304
    functionName: TInv2
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TInv2(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 305
    functionName: TInv3
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TInv3(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 306
    functionName: IMXC0
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMXC0(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 307
    functionName: IMXC1
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMXC1(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 308
    functionName: IMXC2
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMXC2(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 309
    functionName: IMXC3
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMXC3(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 312
    functionName: T0
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: T0(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 313
    functionName: T1
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: T1(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 314
    functionName: T2
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: T2(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 315
    functionName: T3
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: T3(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 316
    functionName: TInv0
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TInv0(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 317
    functionName: TInv1
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TInv1(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 318
    functionName: TInv2
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TInv2(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 319
    functionName: TInv3
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TInv3(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 320
    functionName: IMXC0
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMXC0(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 321
    functionName: IMXC1
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMXC1(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 322
    functionName: IMXC2
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMXC2(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 323
    functionName: IMXC3
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IMXC3(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - w
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 338
    functionName: SUBBYTE
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SUBBYTE(w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 342
    functionName: ROTBYTE
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTBYTE(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 345
    functionName: ROTBYTE
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROTBYTE(b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/rijndael.c:366,1
    - Dst: SUBBYTE
      Src: /src/nss/lib/freebl/rijndael.c:373,1
    - Dst: ROTBYTE
      Src: /src/nss/lib/freebl/rijndael.c:373,1
    - Dst: SUBBYTE
      Src: /src/nss/lib/freebl/rijndael.c:375,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - cx
    - key
    - Nk
    argTypes:
    - AESContext*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 378
    functionName: rijndael_key_expansion7
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached:
    - SUBBYTE
    - ROTBYTE
    - memcpy
    linkageType: ''
    returnType: void
    signature: void rijndael_key_expansion7(AESContext *cx, const unsigned char *key,
      unsigned int Nk)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: rijndael_key_expansion7
      Src: /src/nss/lib/freebl/rijndael.c:393,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/rijndael.c:398,1
    - Dst: SUBBYTE
      Src: /src/nss/lib/freebl/rijndael.c:404,1
    - Dst: ROTBYTE
      Src: /src/nss/lib/freebl/rijndael.c:404,1
    - Dst: SUBBYTE
      Src: /src/nss/lib/freebl/rijndael.c:417,1
    - Dst: SUBBYTE
      Src: /src/nss/lib/freebl/rijndael.c:432,1
    - Dst: ROTBYTE
      Src: /src/nss/lib/freebl/rijndael.c:432,1
    - Dst: SUBBYTE
      Src: /src/nss/lib/freebl/rijndael.c:450,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 53
    argCount: 3
    argNames:
    - cx
    - key
    - Nk
    argTypes:
    - AESContext*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 384
    functionDepth: 2
    functionLinenumber: 384
    functionLinenumberEnd: 454
    functionName: rijndael_key_expansion
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached:
    - SUBBYTE
    - rijndael_key_expansion7
    - memcpy
    - ROTBYTE
    linkageType: ''
    returnType: void
    signature: void rijndael_key_expansion(AESContext *cx, const unsigned char *key,
      unsigned int Nk)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rijndael_key_expansion
      Src: /src/nss/lib/freebl/rijndael.c:469,1
    - Dst: IMXC0
      Src: /src/nss/lib/freebl/rijndael.c:483,1
    - Dst: IMXC1
      Src: /src/nss/lib/freebl/rijndael.c:483,1
    - Dst: IMXC2
      Src: /src/nss/lib/freebl/rijndael.c:483,1
    - Dst: IMXC3
      Src: /src/nss/lib/freebl/rijndael.c:483,1
    - Dst: IMXC0
      Src: /src/nss/lib/freebl/rijndael.c:485,1
    - Dst: IMXC1
      Src: /src/nss/lib/freebl/rijndael.c:485,1
    - Dst: IMXC2
      Src: /src/nss/lib/freebl/rijndael.c:485,1
    - Dst: IMXC3
      Src: /src/nss/lib/freebl/rijndael.c:485,1
    - Dst: IMXC0
      Src: /src/nss/lib/freebl/rijndael.c:487,1
    - Dst: IMXC1
      Src: /src/nss/lib/freebl/rijndael.c:487,1
    - Dst: IMXC2
      Src: /src/nss/lib/freebl/rijndael.c:487,1
    - Dst: IMXC3
      Src: /src/nss/lib/freebl/rijndael.c:487,1
    - Dst: IMXC0
      Src: /src/nss/lib/freebl/rijndael.c:489,1
    - Dst: IMXC1
      Src: /src/nss/lib/freebl/rijndael.c:489,1
    - Dst: IMXC2
      Src: /src/nss/lib/freebl/rijndael.c:489,1
    - Dst: IMXC3
      Src: /src/nss/lib/freebl/rijndael.c:489,1
    - Dst: IMXC0
      Src: /src/nss/lib/freebl/rijndael.c:495,1
    - Dst: IMXC1
      Src: /src/nss/lib/freebl/rijndael.c:495,1
    - Dst: IMXC2
      Src: /src/nss/lib/freebl/rijndael.c:496,1
    - Dst: IMXC3
      Src: /src/nss/lib/freebl/rijndael.c:496,1
    - Dst: IMXC0
      Src: /src/nss/lib/freebl/rijndael.c:499,1
    - Dst: IMXC1
      Src: /src/nss/lib/freebl/rijndael.c:499,1
    - Dst: IMXC2
      Src: /src/nss/lib/freebl/rijndael.c:500,1
    - Dst: IMXC3
      Src: /src/nss/lib/freebl/rijndael.c:500,1
    - Dst: IMXC0
      Src: /src/nss/lib/freebl/rijndael.c:503,1
    - Dst: IMXC1
      Src: /src/nss/lib/freebl/rijndael.c:503,1
    - Dst: IMXC2
      Src: /src/nss/lib/freebl/rijndael.c:504,1
    - Dst: IMXC3
      Src: /src/nss/lib/freebl/rijndael.c:504,1
    - Dst: IMXC0
      Src: /src/nss/lib/freebl/rijndael.c:507,1
    - Dst: IMXC1
      Src: /src/nss/lib/freebl/rijndael.c:507,1
    - Dst: IMXC2
      Src: /src/nss/lib/freebl/rijndael.c:508,1
    - Dst: IMXC3
      Src: /src/nss/lib/freebl/rijndael.c:508,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 3
    argNames:
    - cx
    - key
    - Nk
    argTypes:
    - AESContext*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 461
    functionDepth: 3
    functionLinenumber: 461
    functionLinenumberEnd: 511
    functionName: rijndael_invkey_expansion
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached:
    - IMXC2
    - IMXC1
    - rijndael_key_expansion
    - IMXC3
    - IMXC0
    linkageType: ''
    returnType: void
    signature: void rijndael_invkey_expansion(AESContext *cx, const unsigned char
      *key, unsigned int Nk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - w
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 521
    functionName: BYTE0WORD
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTE0WORD(w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - w
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 522
    functionName: BYTE1WORD
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTE1WORD(w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - w
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 523
    functionName: BYTE2WORD
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTE2WORD(w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - w
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 524
    functionName: BYTE3WORD
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTE3WORD(w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - w
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 525
    functionDepth: 0
    functionLinenumber: 525
    functionLinenumberEnd: 526
    functionName: BYTE0WORD
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTE0WORD(w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - w
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 527
    functionName: BYTE1WORD
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTE1WORD(w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - w
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 527
    functionDepth: 0
    functionLinenumber: 527
    functionLinenumberEnd: 528
    functionName: BYTE2WORD
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTE2WORD(w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - w
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 529
    functionName: BYTE3WORD
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTE3WORD(w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - state
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 537
    functionName: COLUMN_0
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COLUMN_0(state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - state
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 537
    functionDepth: 0
    functionLinenumber: 537
    functionLinenumberEnd: 538
    functionName: COLUMN_1
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COLUMN_1(state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - state
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 539
    functionName: COLUMN_2
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COLUMN_2(state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - state
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 540
    functionName: COLUMN_3
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COLUMN_3(state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 542
    functionName: STATE_BYTE
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATE_BYTE(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - out
    - a
    - b
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 550
    functionName: xorBlock
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void xorBlock(unsigned char *out, const unsigned char *a, const unsigned
      char *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/rijndael.c:569,1
    - Dst: COLUMN_0
      Src: /src/nss/lib/freebl/rijndael.c:582,1
    - Dst: COLUMN_1
      Src: /src/nss/lib/freebl/rijndael.c:583,1
    - Dst: COLUMN_2
      Src: /src/nss/lib/freebl/rijndael.c:584,1
    - Dst: COLUMN_3
      Src: /src/nss/lib/freebl/rijndael.c:585,1
    - Dst: T0
      Src: /src/nss/lib/freebl/rijndael.c:589,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:589,1
    - Dst: T1
      Src: /src/nss/lib/freebl/rijndael.c:590,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:590,1
    - Dst: T2
      Src: /src/nss/lib/freebl/rijndael.c:591,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:591,1
    - Dst: T3
      Src: /src/nss/lib/freebl/rijndael.c:592,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:592,1
    - Dst: T0
      Src: /src/nss/lib/freebl/rijndael.c:593,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:593,1
    - Dst: T1
      Src: /src/nss/lib/freebl/rijndael.c:594,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:594,1
    - Dst: T2
      Src: /src/nss/lib/freebl/rijndael.c:595,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:595,1
    - Dst: T3
      Src: /src/nss/lib/freebl/rijndael.c:596,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:596,1
    - Dst: T0
      Src: /src/nss/lib/freebl/rijndael.c:597,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:597,1
    - Dst: T1
      Src: /src/nss/lib/freebl/rijndael.c:598,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:598,1
    - Dst: T2
      Src: /src/nss/lib/freebl/rijndael.c:599,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:599,1
    - Dst: T3
      Src: /src/nss/lib/freebl/rijndael.c:600,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:600,1
    - Dst: T0
      Src: /src/nss/lib/freebl/rijndael.c:601,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:601,1
    - Dst: T1
      Src: /src/nss/lib/freebl/rijndael.c:602,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:602,1
    - Dst: T2
      Src: /src/nss/lib/freebl/rijndael.c:603,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:603,1
    - Dst: T3
      Src: /src/nss/lib/freebl/rijndael.c:604,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:604,1
    - Dst: COLUMN_0
      Src: /src/nss/lib/freebl/rijndael.c:606,1
    - Dst: COLUMN_1
      Src: /src/nss/lib/freebl/rijndael.c:607,1
    - Dst: COLUMN_2
      Src: /src/nss/lib/freebl/rijndael.c:608,1
    - Dst: COLUMN_3
      Src: /src/nss/lib/freebl/rijndael.c:609,1
    - Dst: BYTE0WORD
      Src: /src/nss/lib/freebl/rijndael.c:613,1
    - Dst: T2
      Src: /src/nss/lib/freebl/rijndael.c:613,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:613,1
    - Dst: BYTE1WORD
      Src: /src/nss/lib/freebl/rijndael.c:614,1
    - Dst: T3
      Src: /src/nss/lib/freebl/rijndael.c:614,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:614,1
    - Dst: BYTE2WORD
      Src: /src/nss/lib/freebl/rijndael.c:615,1
    - Dst: T0
      Src: /src/nss/lib/freebl/rijndael.c:615,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:615,1
    - Dst: BYTE3WORD
      Src: /src/nss/lib/freebl/rijndael.c:616,1
    - Dst: T1
      Src: /src/nss/lib/freebl/rijndael.c:616,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:616,1
    - Dst: BYTE0WORD
      Src: /src/nss/lib/freebl/rijndael.c:618,1
    - Dst: T2
      Src: /src/nss/lib/freebl/rijndael.c:618,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:618,1
    - Dst: BYTE1WORD
      Src: /src/nss/lib/freebl/rijndael.c:619,1
    - Dst: T3
      Src: /src/nss/lib/freebl/rijndael.c:619,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:619,1
    - Dst: BYTE2WORD
      Src: /src/nss/lib/freebl/rijndael.c:620,1
    - Dst: T0
      Src: /src/nss/lib/freebl/rijndael.c:620,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:620,1
    - Dst: BYTE3WORD
      Src: /src/nss/lib/freebl/rijndael.c:621,1
    - Dst: T1
      Src: /src/nss/lib/freebl/rijndael.c:621,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:621,1
    - Dst: BYTE0WORD
      Src: /src/nss/lib/freebl/rijndael.c:623,1
    - Dst: T2
      Src: /src/nss/lib/freebl/rijndael.c:623,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:623,1
    - Dst: BYTE1WORD
      Src: /src/nss/lib/freebl/rijndael.c:624,1
    - Dst: T3
      Src: /src/nss/lib/freebl/rijndael.c:624,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:624,1
    - Dst: BYTE2WORD
      Src: /src/nss/lib/freebl/rijndael.c:625,1
    - Dst: T0
      Src: /src/nss/lib/freebl/rijndael.c:625,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:625,1
    - Dst: BYTE3WORD
      Src: /src/nss/lib/freebl/rijndael.c:626,1
    - Dst: T1
      Src: /src/nss/lib/freebl/rijndael.c:626,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:626,1
    - Dst: BYTE0WORD
      Src: /src/nss/lib/freebl/rijndael.c:628,1
    - Dst: T2
      Src: /src/nss/lib/freebl/rijndael.c:628,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:628,1
    - Dst: BYTE1WORD
      Src: /src/nss/lib/freebl/rijndael.c:629,1
    - Dst: T3
      Src: /src/nss/lib/freebl/rijndael.c:629,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:629,1
    - Dst: BYTE2WORD
      Src: /src/nss/lib/freebl/rijndael.c:630,1
    - Dst: T0
      Src: /src/nss/lib/freebl/rijndael.c:630,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:630,1
    - Dst: BYTE3WORD
      Src: /src/nss/lib/freebl/rijndael.c:631,1
    - Dst: T1
      Src: /src/nss/lib/freebl/rijndael.c:631,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:631,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/rijndael.c:642,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 38
    argCount: 3
    argNames:
    - cx
    - output
    - input
    argTypes:
    - AESContext*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 552
    functionDepth: 1
    functionLinenumber: 552
    functionLinenumberEnd: 645
    functionName: NO_SANITIZE_ALIGNMENT::rijndael_encryptBlock128
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached:
    - BYTE2WORD
    - COLUMN_2
    - memcpy
    - T0
    - STATE_BYTE
    - T2
    - BYTE3WORD
    - COLUMN_1
    - T3
    - BYTE1WORD
    - BYTE0WORD
    - COLUMN_0
    - T1
    - COLUMN_3
    linkageType: ''
    returnType: void
    signature: "void NO_SANITIZE_ALIGNMENT\nrijndael_encryptBlock128(AESContext *cx,\n
      \                        unsigned char *output,\n                         const
      unsigned char *input)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/rijndael.c:664,1
    - Dst: COLUMN_3
      Src: /src/nss/lib/freebl/rijndael.c:677,1
    - Dst: COLUMN_2
      Src: /src/nss/lib/freebl/rijndael.c:678,1
    - Dst: COLUMN_1
      Src: /src/nss/lib/freebl/rijndael.c:679,1
    - Dst: COLUMN_0
      Src: /src/nss/lib/freebl/rijndael.c:680,1
    - Dst: TInv0
      Src: /src/nss/lib/freebl/rijndael.c:684,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:684,1
    - Dst: TInv1
      Src: /src/nss/lib/freebl/rijndael.c:685,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:685,1
    - Dst: TInv2
      Src: /src/nss/lib/freebl/rijndael.c:686,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:686,1
    - Dst: TInv3
      Src: /src/nss/lib/freebl/rijndael.c:687,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:687,1
    - Dst: TInv0
      Src: /src/nss/lib/freebl/rijndael.c:688,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:688,1
    - Dst: TInv1
      Src: /src/nss/lib/freebl/rijndael.c:689,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:689,1
    - Dst: TInv2
      Src: /src/nss/lib/freebl/rijndael.c:690,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:690,1
    - Dst: TInv3
      Src: /src/nss/lib/freebl/rijndael.c:691,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:691,1
    - Dst: TInv0
      Src: /src/nss/lib/freebl/rijndael.c:692,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:692,1
    - Dst: TInv1
      Src: /src/nss/lib/freebl/rijndael.c:693,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:693,1
    - Dst: TInv2
      Src: /src/nss/lib/freebl/rijndael.c:694,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:694,1
    - Dst: TInv3
      Src: /src/nss/lib/freebl/rijndael.c:695,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:695,1
    - Dst: TInv0
      Src: /src/nss/lib/freebl/rijndael.c:696,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:696,1
    - Dst: TInv1
      Src: /src/nss/lib/freebl/rijndael.c:697,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:697,1
    - Dst: TInv2
      Src: /src/nss/lib/freebl/rijndael.c:698,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:698,1
    - Dst: TInv3
      Src: /src/nss/lib/freebl/rijndael.c:699,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:699,1
    - Dst: COLUMN_3
      Src: /src/nss/lib/freebl/rijndael.c:701,1
    - Dst: COLUMN_2
      Src: /src/nss/lib/freebl/rijndael.c:702,1
    - Dst: COLUMN_1
      Src: /src/nss/lib/freebl/rijndael.c:703,1
    - Dst: COLUMN_0
      Src: /src/nss/lib/freebl/rijndael.c:704,1
    - Dst: SINV
      Src: /src/nss/lib/freebl/rijndael.c:707,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:707,1
    - Dst: SINV
      Src: /src/nss/lib/freebl/rijndael.c:708,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:708,1
    - Dst: SINV
      Src: /src/nss/lib/freebl/rijndael.c:709,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:709,1
    - Dst: SINV
      Src: /src/nss/lib/freebl/rijndael.c:710,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:710,1
    - Dst: SINV
      Src: /src/nss/lib/freebl/rijndael.c:711,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:711,1
    - Dst: SINV
      Src: /src/nss/lib/freebl/rijndael.c:712,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:712,1
    - Dst: SINV
      Src: /src/nss/lib/freebl/rijndael.c:713,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:713,1
    - Dst: SINV
      Src: /src/nss/lib/freebl/rijndael.c:714,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:714,1
    - Dst: SINV
      Src: /src/nss/lib/freebl/rijndael.c:715,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:715,1
    - Dst: SINV
      Src: /src/nss/lib/freebl/rijndael.c:716,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:716,1
    - Dst: SINV
      Src: /src/nss/lib/freebl/rijndael.c:717,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:717,1
    - Dst: SINV
      Src: /src/nss/lib/freebl/rijndael.c:718,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:718,1
    - Dst: SINV
      Src: /src/nss/lib/freebl/rijndael.c:719,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:719,1
    - Dst: SINV
      Src: /src/nss/lib/freebl/rijndael.c:720,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:720,1
    - Dst: SINV
      Src: /src/nss/lib/freebl/rijndael.c:721,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:721,1
    - Dst: SINV
      Src: /src/nss/lib/freebl/rijndael.c:722,1
    - Dst: STATE_BYTE
      Src: /src/nss/lib/freebl/rijndael.c:722,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/rijndael.c:733,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 50
    argCount: 3
    argNames:
    - cx
    - output
    - input
    argTypes:
    - AESContext*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 647
    functionDepth: 1
    functionLinenumber: 647
    functionLinenumberEnd: 736
    functionName: NO_SANITIZE_ALIGNMENT::rijndael_decryptBlock128
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached:
    - SINV
    - COLUMN_2
    - memcpy
    - STATE_BYTE
    - TInv3
    - TInv0
    - TInv2
    - COLUMN_1
    - COLUMN_0
    - COLUMN_3
    - TInv1
    linkageType: ''
    returnType: void
    signature: "void NO_SANITIZE_ALIGNMENT\nrijndael_decryptBlock128(AESContext *cx,\n
      \                        unsigned char *output,\n                         const
      unsigned char *input)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/rijndael.c:749,1
    - Dst: aesni_support
      Src: /src/nss/lib/freebl/rijndael.c:750,1
    - Dst: rijndael_native_encryptBlock
      Src: /src/nss/lib/freebl/rijndael.c:753,1
    - Dst: rijndael_encryptBlock128
      Src: /src/nss/lib/freebl/rijndael.c:755,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 7
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    - blocksize
    argTypes:
    - AESContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 744
    functionDepth: 1
    functionLinenumber: 744
    functionLinenumberEnd: 762
    functionName: rijndael_encryptECB
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - aesni_support
    - rijndael_encryptBlock128
    - rijndael_native_encryptBlock
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus rijndael_encryptECB(AESContext *cx, unsigned char *output,\n
      \                   unsigned int *outputLen, unsigned int maxOutputLen,\n                    const
      unsigned char *input, unsigned int inputLen, unsigned int blocksize)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/rijndael.c:769,1
    - Dst: aesni_support
      Src: /src/nss/lib/freebl/rijndael.c:772,1
    - Dst: native_xorBlock
      Src: /src/nss/lib/freebl/rijndael.c:779,1
    - Dst: rijndael_native_encryptBlock
      Src: /src/nss/lib/freebl/rijndael.c:781,1
    - Dst: xorBlock
      Src: /src/nss/lib/freebl/rijndael.c:783,1
    - Dst: rijndael_encryptBlock128
      Src: /src/nss/lib/freebl/rijndael.c:784,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/rijndael.c:793,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 7
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    - blocksize
    argTypes:
    - AESContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 764
    functionDepth: 1
    functionLinenumber: 764
    functionLinenumberEnd: 795
    functionName: rijndael_encryptCBC
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - memcpy
    - xorBlock
    - rijndael_encryptBlock128
    - aesni_support
    - rijndael_native_encryptBlock
    - native_xorBlock
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus rijndael_encryptCBC(AESContext *cx, unsigned char *output,\n
      \                   unsigned int *outputLen, unsigned int maxOutputLen,\n                    const
      unsigned char *input, unsigned int inputLen, unsigned int blocksize)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/rijndael.c:802,1
    - Dst: aesni_support
      Src: /src/nss/lib/freebl/rijndael.c:803,1
    - Dst: rijndael_native_decryptBlock
      Src: /src/nss/lib/freebl/rijndael.c:806,1
    - Dst: rijndael_decryptBlock128
      Src: /src/nss/lib/freebl/rijndael.c:808,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 7
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    - blocksize
    argTypes:
    - AESContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 797
    functionDepth: 1
    functionLinenumber: 797
    functionLinenumberEnd: 815
    functionName: rijndael_decryptECB
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached:
    - rijndael_native_decryptBlock
    - PORT_Assert
    - rijndael_decryptBlock128
    - aesni_support
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus rijndael_decryptECB(AESContext *cx, unsigned char *output,\n
      \                   unsigned int *outputLen, unsigned int maxOutputLen,\n                    const
      unsigned char *input, unsigned int inputLen, unsigned int blocksize)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/rijndael.c:822,1
    - Dst: aesni_support
      Src: /src/nss/lib/freebl/rijndael.c:826,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/rijndael.c:830,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/rijndael.c:832,1
    - Dst: rijndael_native_decryptBlock
      Src: /src/nss/lib/freebl/rijndael.c:837,1
    - Dst: native_xorBlock
      Src: /src/nss/lib/freebl/rijndael.c:838,1
    - Dst: rijndael_decryptBlock128
      Src: /src/nss/lib/freebl/rijndael.c:840,1
    - Dst: xorBlock
      Src: /src/nss/lib/freebl/rijndael.c:841,1
    - Dst: rijndael_native_decryptBlock
      Src: /src/nss/lib/freebl/rijndael.c:849,1
    - Dst: native_xorBlock
      Src: /src/nss/lib/freebl/rijndael.c:850,1
    - Dst: rijndael_decryptBlock128
      Src: /src/nss/lib/freebl/rijndael.c:852,1
    - Dst: xorBlock
      Src: /src/nss/lib/freebl/rijndael.c:853,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/rijndael.c:856,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 7
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    - blocksize
    argTypes:
    - AESContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 817
    functionDepth: 1
    functionLinenumber: 817
    functionLinenumberEnd: 858
    functionName: rijndael_decryptCBC
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - memcpy
    - xorBlock
    - aesni_support
    - rijndael_native_decryptBlock
    - rijndael_decryptBlock128
    - native_xorBlock
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus rijndael_decryptCBC(AESContext *cx, unsigned char *output,\n
      \                   unsigned int *outputLen, unsigned int maxOutputLen,\n                    const
      unsigned char *input, unsigned int inputLen, unsigned int blocksize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctxtype
    - ','
    - mmm
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 860
    functionDepth: 0
    functionLinenumber: 860
    functionLinenumberEnd: 869
    functionName: FREEBL_CIPHER_WRAP
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FREEBL_CIPHER_WRAP(ctxtype, mmm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - encrypt
    - ','
    - keysize
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 903
    functionDepth: 0
    functionLinenumber: 903
    functionLinenumberEnd: 911
    functionName: freeblCipher_native_aes_ecb_worker
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: freeblCipher_native_aes_ecb_worker(encrypt, keysize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - encrypt
    - ','
    - keysize
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 912
    functionDepth: 0
    functionLinenumber: 912
    functionLinenumberEnd: 920
    functionName: freeblCipher_native_aes_cbc_worker
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: freeblCipher_native_aes_cbc_worker(encrypt, keysize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - encrypt
    - ','
    - keysize
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 934
    functionDepth: 0
    functionLinenumber: 934
    functionLinenumberEnd: 942
    functionName: freeblCipher_native_aes_ecb_worker
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: freeblCipher_native_aes_ecb_worker(encrypt, keysize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - encrypt
    - ','
    - keysize
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 943
    functionDepth: 0
    functionLinenumber: 943
    functionLinenumberEnd: 951
    functionName: freeblCipher_native_aes_cbc_worker
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: freeblCipher_native_aes_cbc_worker(encrypt, keysize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctxtype
    - ','
    - mmm
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 958
    functionDepth: 0
    functionLinenumber: 958
    functionLinenumberEnd: 969
    functionName: FREEBL_AEAD_WRAP
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FREEBL_AEAD_WRAP(ctxtype, mmm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctxtype
    - ','
    - mmm
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 981
    functionDepth: 0
    functionLinenumber: 981
    functionLinenumberEnd: 987
    functionName: FREEBL_DESTROY_WRAP
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FREEBL_DESTROY_WRAP(ctxtype, mmm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZNewAligned
      Src: /src/nss/lib/freebl/rijndael.c:1010,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 1007
    functionDepth: 1
    functionLinenumber: 1007
    functionLinenumberEnd: 1011
    functionName: AES_AllocateContext
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached:
    - PORT_ZNewAligned
    linkageType: ''
    returnType: AESContext
    signature: 'AESContext *

      AES_AllocateContext(void)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rijndael.c:1033,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rijndael.c:1037,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rijndael.c:1041,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rijndael.c:1045,1
    - Dst: aesni_support
      Src: /src/nss/lib/freebl/rijndael.c:1049,1
    - Dst: arm_aes_support
      Src: /src/nss/lib/freebl/rijndael.c:1049,1
    - Dst: RIJNDAEL_NUM_ROUNDS
      Src: /src/nss/lib/freebl/rijndael.c:1058,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/rijndael.c:1061,1
    - Dst: freeblCipher_native_aes_cbc_worker
      Src: /src/nss/lib/freebl/rijndael.c:1064,1
    - Dst: freeblCipher_native_aes_ecb_worker
      Src: /src/nss/lib/freebl/rijndael.c:1073,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/rijndael.c:1080,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rijndael.c:1082,1
    - Dst: native_aes_init
      Src: /src/nss/lib/freebl/rijndael.c:1087,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/rijndael.c:1095,1
    - Dst: rijndael_native_key_expansion
      Src: /src/nss/lib/freebl/rijndael.c:1097,1
    - Dst: rijndael_key_expansion
      Src: /src/nss/lib/freebl/rijndael.c:1099,1
    - Dst: rijndael_invkey_expansion
      Src: /src/nss/lib/freebl/rijndael.c:1102,1
    - Dst: BLAPI_CLEAR_STACK
      Src: /src/nss/lib/freebl/rijndael.c:1104,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 60
    argCount: 6
    argNames:
    - cx
    - key
    - keysize
    - iv
    - mode
    - encrypt
    argTypes:
    - AESContext*
    - unsigned char*
    - unsigned int
    - unsigned char*
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1018
    functionDepth: 4
    functionLinenumber: 1018
    functionLinenumberEnd: 1110
    functionName: aes_InitContext
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - memcpy
    - rijndael_invkey_expansion
    - freeblCipher_native_aes_ecb_worker
    - arm_aes_support
    - rijndael_key_expansion
    - aesni_support
    - PORT_SetError
    - native_aes_init
    - rijndael_native_key_expansion
    - RIJNDAEL_NUM_ROUNDS
    - BLAPI_CLEAR_STACK
    - freeblCipher_native_aes_cbc_worker
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus aes_InitContext(AESContext *cx, const unsigned char *key,
      unsigned int keysize,\n                const unsigned char *iv, int mode, unsigned
      int encrypt)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rijndael.c:1122,1
    - Dst: aes_InitContext
      Src: /src/nss/lib/freebl/rijndael.c:1140,1
    - Dst: AES_DestroyContext
      Src: /src/nss/lib/freebl/rijndael.c:1142,1
    - Dst: CTS_CreateContext
      Src: /src/nss/lib/freebl/rijndael.c:1150,1
    - Dst: aesni_support
      Src: /src/nss/lib/freebl/rijndael.c:1157,1
    - Dst: avx_support
      Src: /src/nss/lib/freebl/rijndael.c:1157,1
    - Dst: clmul_support
      Src: /src/nss/lib/freebl/rijndael.c:1158,1
    - Dst: intel_AES_GCM_CreateContext
      Src: /src/nss/lib/freebl/rijndael.c:1159,1
    - Dst: ppc_crypto_support
      Src: /src/nss/lib/freebl/rijndael.c:1168,1
    - Dst: ppc_AES_GCM_CreateContext
      Src: /src/nss/lib/freebl/rijndael.c:1169,1
    - Dst: GCM_CreateContext
      Src: /src/nss/lib/freebl/rijndael.c:1179,1
    - Dst: CTR_CreateContext
      Src: /src/nss/lib/freebl/rijndael.c:1190,1
    - Dst: aesni_support
      Src: /src/nss/lib/freebl/rijndael.c:1192,1
    - Dst: AES_DestroyContext
      Src: /src/nss/lib/freebl/rijndael.c:1212,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 72
    argCount: 7
    argNames:
    - cx
    - key
    - keysize
    - iv
    - mode
    - encrypt
    - blocksize
    argTypes:
    - AESContext*
    - unsigned char*
    - unsigned int
    - unsigned char*
    - int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1216
      start: 1112
    functionDepth: 5
    functionLinenumber: 1112
    functionLinenumberEnd: 1216
    functionName: AES_InitContext
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 1
    functionsReached:
    - GCM_CreateContext
    - avx_support
    - aesni_support
    - CTR_CreateContext
    - PORT_SetError
    - ppc_AES_GCM_CreateContext
    - aes_InitContext
    - ppc_crypto_support
    - AES_DestroyContext
    - clmul_support
    - intel_AES_GCM_CreateContext
    - CTS_CreateContext
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus AES_InitContext(AESContext *cx, const unsigned char *key,
      unsigned int keysize,\n                const unsigned char *iv, int mode, unsigned
      int encrypt,\n                unsigned int blocksize)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: AES_AllocateContext
      Src: /src/nss/lib/freebl/rijndael.c:1227,1
    - Dst: AES_InitContext
      Src: /src/nss/lib/freebl/rijndael.c:1229,1
    - Dst: AES_DestroyContext
      Src: /src/nss/lib/freebl/rijndael.c:1232,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 6
    argNames:
    - key
    - iv
    - mode
    - encrypt
    - keysize
    - blocksize
    argTypes:
    - unsigned char*
    - unsigned char*
    - int
    - int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1237
      start: 1222
    functionDepth: 0
    functionLinenumber: 1222
    functionLinenumberEnd: 1237
    functionName: AES_CreateContext
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 6
    functionsReached:
    - AES_DestroyContext
    - AES_InitContext
    - AES_AllocateContext
    linkageType: ''
    returnType: AESContext
    signature: "AESContext *\nAES_CreateContext(const unsigned char *key, const unsigned
      char *iv,\n                  int mode, int encrypt,\n                  unsigned
      int keysize, unsigned int blocksize)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SafeZero
      Src: /src/nss/lib/freebl/rijndael.c:1254,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/rijndael.c:1256,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - cx
    - freeit
    argTypes:
    - AESContext*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1262
      start: 1245
    functionDepth: 0
    functionLinenumber: 1245
    functionLinenumberEnd: 1262
    functionName: AES_DestroyContext
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 10
    functionsReached:
    - PORT_Free
    - PORT_SafeZero
    linkageType: ''
    returnType: void
    signature: void AES_DestroyContext(AESContext *cx, PRBool freeit)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rijndael.c:1278,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rijndael.c:1282,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rijndael.c:1286,1
    - Dst: PR_STATIC_ASSERT
      Src: /src/nss/lib/freebl/rijndael.c:1298,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rijndael.c:1301,1
    - Dst: PR_STATIC_ASSERT
      Src: /src/nss/lib/freebl/rijndael.c:1307,1
    - Dst: BLAPI_CLEAR_STACK
      Src: /src/nss/lib/freebl/rijndael.c:1313,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 6
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - AESContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1315
      start: 1270
    functionDepth: 1
    functionLinenumber: 1270
    functionLinenumberEnd: 1315
    functionName: AES_Encrypt
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 8
    functionsReached:
    - PORT_SetError
    - BLAPI_CLEAR_STACK
    - PR_STATIC_ASSERT
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus AES_Encrypt(AESContext *cx, unsigned char *output,\n            unsigned
      int *outputLen, unsigned int maxOutputLen,\n            const unsigned char
      *input, unsigned int inputLen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rijndael.c:1331,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rijndael.c:1335,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rijndael.c:1339,1
    - Dst: BLAPI_CLEAR_STACK
      Src: /src/nss/lib/freebl/rijndael.c:1345,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 6
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - AESContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1347
      start: 1323
    functionDepth: 1
    functionLinenumber: 1323
    functionLinenumberEnd: 1347
    functionName: AES_Decrypt
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 7
    functionsReached:
    - PORT_SetError
    - BLAPI_CLEAR_STACK
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus AES_Decrypt(AESContext *cx, unsigned char *output,\n            unsigned
      int *outputLen, unsigned int maxOutputLen,\n            const unsigned char
      *input, unsigned int inputLen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rijndael.c:1364,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rijndael.c:1368,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rijndael.c:1372,1
    - Dst: PR_STATIC_ASSERT
      Src: /src/nss/lib/freebl/rijndael.c:1384,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rijndael.c:1387,1
    - Dst: PR_STATIC_ASSERT
      Src: /src/nss/lib/freebl/rijndael.c:1393,1
    - Dst: BLAPI_CLEAR_STACK
      Src: /src/nss/lib/freebl/rijndael.c:1400,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 10
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    - params
    - paramsLen
    - aad
    - aadLen
    argTypes:
    - AESContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    - void*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1402
      start: 1354
    functionDepth: 1
    functionLinenumber: 1354
    functionLinenumberEnd: 1402
    functionName: AES_AEAD
    functionSourceFile: /src/nss/lib/freebl/rijndael.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - BLAPI_CLEAR_STACK
    - PR_STATIC_ASSERT
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus AES_AEAD(AESContext *cx, unsigned char *output,\n         unsigned
      int *outputLen, unsigned int maxOutputLen,\n         const unsigned char *input,
      unsigned int inputLen,\n         void *params, unsigned int paramsLen,\n         const
      unsigned char *aad, unsigned int aadLen)"
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - params
    argTypes:
    - KyberParams
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 49
    functionName: valid_params
    functionSourceFile: /src/nss/lib/freebl/kyber.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool valid_params(KyberParams params)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - params
    - pubkey
    argTypes:
    - KyberParams
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 63
    functionName: valid_pubkey
    functionSourceFile: /src/nss/lib/freebl/kyber.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool valid_pubkey(KyberParams params, const SECItem *pubkey)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - params
    - privkey
    argTypes:
    - KyberParams
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 77
    functionName: valid_privkey
    functionSourceFile: /src/nss/lib/freebl/kyber.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool valid_privkey(KyberParams params, const SECItem *privkey)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - params
    - ciphertext
    argTypes:
    - KyberParams
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 91
    functionName: valid_ciphertext
    functionSourceFile: /src/nss/lib/freebl/kyber.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool valid_ciphertext(KyberParams params, const SECItem *ciphertext)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - params
    - secret
    argTypes:
    - KyberParams
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 105
    functionName: valid_secret
    functionSourceFile: /src/nss/lib/freebl/kyber.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool valid_secret(KyberParams params, const SECItem *secret)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - params
    - seed
    argTypes:
    - KyberParams
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 119
    functionName: valid_keypair_seed
    functionSourceFile: /src/nss/lib/freebl/kyber.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool valid_keypair_seed(KyberParams params, const SECItem *seed)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - params
    - seed
    argTypes:
    - KyberParams
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 134
    functionName: valid_enc_seed
    functionSourceFile: /src/nss/lib/freebl/kyber.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool valid_enc_seed(KyberParams params, const SECItem *seed)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: valid_params
      Src: /src/nss/lib/freebl/kyber.c:139,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/kyber.c:140,1
    - Dst: valid_keypair_seed
      Src: /src/nss/lib/freebl/kyber.c:144,1
    - Dst: valid_privkey
      Src: /src/nss/lib/freebl/kyber.c:144,1
    - Dst: valid_pubkey
      Src: /src/nss/lib/freebl/kyber.c:144,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/kyber.c:145,1
    - Dst: RNG_GenerateGlobalRandomBytes
      Src: /src/nss/lib/freebl/kyber.c:154,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/kyber.c:155,1
    - Dst: NSS_CLASSIFY
      Src: /src/nss/lib/freebl/kyber.c:160,1
    - Dst: pqcrystals_kyber768_ref_keypair_derand
      Src: /src/nss/lib/freebl/kyber.c:162,1
    - Dst: libcrux_ml_kem_mlkem768_portable_generate_key_pair
      Src: /src/nss/lib/freebl/kyber.c:164,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/kyber.c:165,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/kyber.c:166,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/kyber.c:169,1
    - Dst: NSS_DECLASSIFY
      Src: /src/nss/lib/freebl/kyber.c:172,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 4
    argNames:
    - params
    - keypair_seed
    - privkey
    - pubkey
    argTypes:
    - KyberParams
    - SECItem*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 174
    functionName: Kyber_NewKey
    functionSourceFile: /src/nss/lib/freebl/kyber.c
    functionUses: 0
    functionsReached:
    - valid_privkey
    - memcpy
    - libcrux_ml_kem_mlkem768_portable_generate_key_pair
    - valid_keypair_seed
    - valid_pubkey
    - PORT_SetError
    - valid_params
    - RNG_GenerateGlobalRandomBytes
    - NSS_CLASSIFY
    - NSS_DECLASSIFY
    - pqcrystals_kyber768_ref_keypair_derand
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus Kyber_NewKey(KyberParams params, const SECItem *keypair_seed,
      SECItem *privkey, SECItem *pubkey)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: valid_params
      Src: /src/nss/lib/freebl/kyber.c:179,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/kyber.c:180,1
    - Dst: valid_enc_seed
      Src: /src/nss/lib/freebl/kyber.c:184,1
    - Dst: valid_pubkey
      Src: /src/nss/lib/freebl/kyber.c:184,1
    - Dst: valid_ciphertext
      Src: /src/nss/lib/freebl/kyber.c:184,1
    - Dst: valid_secret
      Src: /src/nss/lib/freebl/kyber.c:184,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/kyber.c:185,1
    - Dst: RNG_GenerateGlobalRandomBytes
      Src: /src/nss/lib/freebl/kyber.c:194,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/kyber.c:195,1
    - Dst: NSS_CLASSIFY
      Src: /src/nss/lib/freebl/kyber.c:200,1
    - Dst: pqcrystals_kyber768_ref_enc_derand
      Src: /src/nss/lib/freebl/kyber.c:202,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/kyber.c:205,1
    - Dst: libcrux_ml_kem_mlkem768_portable_validate_public_key
      Src: /src/nss/lib/freebl/kyber.c:207,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/kyber.c:209,1
    - Dst: libcrux_ml_kem_mlkem768_portable_encapsulate
      Src: /src/nss/lib/freebl/kyber.c:213,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/kyber.c:214,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/kyber.c:215,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/kyber.c:218,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 5
    argNames:
    - params
    - enc_seed
    - pubkey
    - ciphertext
    - secret
    argTypes:
    - KyberParams
    - SECItem*
    - SECItem*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 223
    functionName: Kyber_Encapsulate
    functionSourceFile: /src/nss/lib/freebl/kyber.c
    functionUses: 0
    functionsReached:
    - pqcrystals_kyber768_ref_enc_derand
    - memcpy
    - valid_ciphertext
    - libcrux_ml_kem_mlkem768_portable_encapsulate
    - valid_pubkey
    - PORT_SetError
    - valid_params
    - valid_secret
    - RNG_GenerateGlobalRandomBytes
    - NSS_CLASSIFY
    - libcrux_ml_kem_mlkem768_portable_validate_public_key
    - valid_enc_seed
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus Kyber_Encapsulate(KyberParams params, const SECItem *enc_seed,
      const SECItem *pubkey, SECItem *ciphertext, SECItem *secret)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: valid_params
      Src: /src/nss/lib/freebl/kyber.c:228,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/kyber.c:229,1
    - Dst: valid_privkey
      Src: /src/nss/lib/freebl/kyber.c:233,1
    - Dst: valid_ciphertext
      Src: /src/nss/lib/freebl/kyber.c:233,1
    - Dst: valid_secret
      Src: /src/nss/lib/freebl/kyber.c:233,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/kyber.c:234,1
    - Dst: pqcrystals_kyber768_ref_dec
      Src: /src/nss/lib/freebl/kyber.c:239,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/kyber.c:242,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/kyber.c:245,1
    - Dst: libcrux_ml_kem_mlkem768_portable_validate_private_key
      Src: /src/nss/lib/freebl/kyber.c:247,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/kyber.c:249,1
    - Dst: libcrux_ml_kem_mlkem768_portable_decapsulate
      Src: /src/nss/lib/freebl/kyber.c:253,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/kyber.c:256,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 4
    argNames:
    - params
    - privkey
    - ciphertext
    - secret
    argTypes:
    - KyberParams
    - SECItem*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 261
    functionName: Kyber_Decapsulate
    functionSourceFile: /src/nss/lib/freebl/kyber.c
    functionUses: 0
    functionsReached:
    - libcrux_ml_kem_mlkem768_portable_validate_private_key
    - valid_privkey
    - pqcrystals_kyber768_ref_dec
    - memcpy
    - valid_ciphertext
    - valid_secret
    - PORT_SetError
    - valid_params
    - libcrux_ml_kem_mlkem768_portable_decapsulate
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus Kyber_Decapsulate(KyberParams params, const SECItem *privkey,
      const SECItem *ciphertext, SECItem *secret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ldvector.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 26
    functionName: FREEBL_Deprecated
    functionSourceFile: /src/nss/lib/freebl/ldvector.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus FREEBL_Deprecated(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FREEBL_InitStubs
      Src: /src/nss/lib/freebl/ldvector.c:466,1
    - Dst: BL_POSTRan
      Src: /src/nss/lib/freebl/ldvector.c:475,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 454
    functionDepth: 3
    functionLinenumber: 454
    functionLinenumberEnd: 479
    functionName: FREEBL_GetVector
    functionSourceFile: /src/nss/lib/freebl/ldvector.c
    functionUses: 0
    functionsReached:
    - FREEBL_InitStubs
    - BL_POSTRan
    linkageType: ''
    returnType: FREEBLVector
    signature: 'FREEBLVector *

      FREEBL_GetVector(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 503
    functionName: NSSLOW_GetVector
    functionSourceFile: /src/nss/lib/freebl/ldvector.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSSLOWVector
    signature: 'NSSLOWVector *

      NSSLOW_GetVector(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: SKIP_AFTER_FORK
    functionSourceFile: /src/nss/lib/freebl/blapii.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SKIP_AFTER_FORK(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: SKIP_AFTER_FORK
    functionSourceFile: /src/nss/lib/freebl/blapii.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SKIP_AFTER_FORK(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - stack_size
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 121
    functionName: BLAPI_CLEAR_STACK
    functionSourceFile: /src/nss/lib/freebl/blapii.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BLAPI_CLEAR_STACK(stack_size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FREEBL_InitStubs
      Src: /src/nss/lib/freebl/nsslowhash.c:33,1
    - Dst: NSS_GetSystemFIPSEnabled
      Src: /src/nss/lib/freebl/nsslowhash.c:39,1
    - Dst: BL_FIPSEntryOK
      Src: /src/nss/lib/freebl/nsslowhash.c:40,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/nsslowhash.c:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 29
    functionDepth: 3
    functionLinenumber: 29
    functionLinenumberEnd: 50
    functionName: NSSLOW_Init
    functionSourceFile: /src/nss/lib/freebl/nsslowhash.c
    functionUses: 1
    functionsReached:
    - NSS_GetSystemFIPSEnabled
    - PORT_SetError
    - FREEBL_InitStubs
    - BL_FIPSEntryOK
    linkageType: ''
    returnType: NSSLOWInitContext
    signature: 'NSSLOWInitContext *

      NSSLOW_Init(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/nsslowhash.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - context
    argTypes:
    - NSSLOWInitContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 57
    functionName: NSSLOW_Shutdown
    functionSourceFile: /src/nss/lib/freebl/nsslowhash.c
    functionUses: 3
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: void
    signature: void NSSLOW_Shutdown(NSSLOWInitContext *context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/nsslowhash.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - context
    argTypes:
    - NSSLOWInitContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 64
    functionName: NSSLOW_Reset
    functionSourceFile: /src/nss/lib/freebl/nsslowhash.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: void
    signature: void NSSLOW_Reset(NSSLOWInitContext *context)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/nsslowhash.c:73,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/nsslowhash.c:78,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/freebl/nsslowhash.c:82,1
    - Dst: HASH_GetRawHashObject
      Src: /src/nss/lib/freebl/nsslowhash.c:86,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/nsslowhash.c:88,1
    - Dst: NSSLOWHASHContext*::hashObj::create
      Src: /src/nss/lib/freebl/nsslowhash.c:91,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/nsslowhash.c:93,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - initContext
    - hashType
    argTypes:
    - NSSLOWInitContext*
    - HASH_HashType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 98
    functionName: NSSLOWHASH_NewContext
    functionSourceFile: /src/nss/lib/freebl/nsslowhash.c
    functionUses: 2
    functionsReached:
    - PORT_ZNew
    - PORT_Free
    - NSSLOWHASHContext*::hashObj::create
    - PORT_SetError
    - HASH_GetRawHashObject
    linkageType: ''
    returnType: NSSLOWHASHContext
    signature: "NSSLOWHASHContext *\nNSSLOWHASH_NewContext(NSSLOWInitContext *initContext,\n
      \                     HASH_HashType hashType)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSSLOWHASHContext*::hashObj::begin
      Src: /src/nss/lib/freebl/nsslowhash.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - context
    argTypes:
    - NSSLOWHASHContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 104
    functionName: NSSLOWHASH_Begin
    functionSourceFile: /src/nss/lib/freebl/nsslowhash.c
    functionUses: 2
    functionsReached:
    - NSSLOWHASHContext*::hashObj::begin
    linkageType: ''
    returnType: void
    signature: void NSSLOWHASH_Begin(NSSLOWHASHContext *context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSSLOWHASHContext*::hashObj::update
      Src: /src/nss/lib/freebl/nsslowhash.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - context
    - buf
    - len
    argTypes:
    - NSSLOWHASHContext*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 111
    functionName: NSSLOWHASH_Update
    functionSourceFile: /src/nss/lib/freebl/nsslowhash.c
    functionUses: 2
    functionsReached:
    - NSSLOWHASHContext*::hashObj::update
    linkageType: ''
    returnType: void
    signature: "void NSSLOWHASH_Update(NSSLOWHASHContext *context, const unsigned
      char *buf,\n                  unsigned int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSSLOWHASHContext*::hashObj::end
      Src: /src/nss/lib/freebl/nsslowhash.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - context
    - buf
    - ret
    - len
    argTypes:
    - NSSLOWHASHContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 118
    functionName: NSSLOWHASH_End
    functionSourceFile: /src/nss/lib/freebl/nsslowhash.c
    functionUses: 2
    functionsReached:
    - NSSLOWHASHContext*::hashObj::end
    linkageType: ''
    returnType: void
    signature: "void NSSLOWHASH_End(NSSLOWHASHContext *context, unsigned char *buf,\n
      \              unsigned int *ret, unsigned int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSSLOWHASHContext*::hashObj::destroy
      Src: /src/nss/lib/freebl/nsslowhash.c:123,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/nsslowhash.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - context
    argTypes:
    - NSSLOWHASHContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 125
    functionName: NSSLOWHASH_Destroy
    functionSourceFile: /src/nss/lib/freebl/nsslowhash.c
    functionUses: 2
    functionsReached:
    - PORT_Free
    - NSSLOWHASHContext*::hashObj::destroy
    linkageType: ''
    returnType: void
    signature: void NSSLOWHASH_Destroy(NSSLOWHASHContext *context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - context
    argTypes:
    - NSSLOWHASHContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 131
    functionName: NSSLOWHASH_Length
    functionSourceFile: /src/nss/lib/freebl/nsslowhash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int NSSLOWHASH_Length(NSSLOWHASHContext *context)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZNew
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:59,1
    - Dst: intel_aes_gcmINIT
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:72,1
    - Dst: gcm_InitIVContext
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:74,1
    - Dst: intel_aes_gcmInitCounter
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:85,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:89,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - context
    - cipher
    - params
    argTypes:
    - void*
    - freeblCipherFunc
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 95
    functionName: intel_AES_GCM_CreateContext
    functionSourceFile: /src/nss/lib/freebl/intel-gcm-wrap.c
    functionUses: 1
    functionsReached:
    - PORT_ZNew
    - PORT_Free
    - gcm_InitIVContext
    - intel_aes_gcmINIT
    - intel_aes_gcmInitCounter
    linkageType: ''
    returnType: intel_AES_GCMContext
    signature: "intel_AES_GCMContext *\nintel_AES_GCM_CreateContext(void *context,\n
      \                           freeblCipherFunc cipher,\n                            const
      unsigned char *params)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _mm_setr_epi8
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:109,1
    - Dst: _mm_set_epi32
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:110,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:114,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:121,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:132,1
    - Dst: _mm_storeu_si128
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:136,1
    - Dst: _mm_setzero_si128
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:136,1
    - Dst: _mm_storeu_si128
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:137,1
    - Dst: _mm_setzero_si128
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:137,1
    - Dst: _mm_storeu_si128
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:141,1
    - Dst: _mm_setr_epi32
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:142,1
    - Dst: intel_aes_gcmAAD
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:149,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:153,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:154,1
    - Dst: intel_aes_gcmAAD
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:155,1
    - Dst: intel_aes_gcmTAG
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:158,1
    - Dst: _mm_storeu_si128
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:167,1
    - Dst: _mm_setzero_si128
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:167,1
    - Dst: _mm_storeu_si128
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:179,1
    - Dst: _mm_shuffle_epi8
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:179,1
    - Dst: _mm_add_epi32
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:179,1
    - Dst: _mm_shuffle_epi8
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:179,1
    - Dst: _mm_loadu_si128
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:179,1
    - Dst: intel_aes_gcmAAD
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:185,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:187,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:188,1
    - Dst: intel_aes_gcmAAD
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:189,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 6
    argNames:
    - gcm
    - iv
    - ivLen
    - tagBits
    - aad
    - aadLen
    argTypes:
    - intel_AES_GCMContext*
    - unsigned char*
    - unsigned long
    - unsigned long
    - unsigned char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 193
    functionName: intel_aes_gcmInitCounter
    functionSourceFile: /src/nss/lib/freebl/intel-gcm-wrap.c
    functionUses: 1
    functionsReached:
    - PORT_Memcpy
    - _mm_add_epi32
    - _mm_set_epi32
    - _mm_setzero_si128
    - PORT_SetError
    - _mm_setr_epi32
    - intel_aes_gcmAAD
    - PORT_Memset
    - intel_aes_gcmTAG
    - _mm_storeu_si128
    - _mm_shuffle_epi8
    - _mm_setr_epi8
    - _mm_loadu_si128
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus intel_aes_gcmInitCounter(intel_AES_GCMContext *gcm,\n                         const
      unsigned char *iv, unsigned long ivLen,\n                         unsigned long
      tagBits,\n                         const unsigned char *aad, unsigned long aadLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SafeZero
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:198,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - gcm
    - freeit
    argTypes:
    - intel_AES_GCMContext*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 202
    functionName: intel_AES_GCM_DestroyContext
    functionSourceFile: /src/nss/lib/freebl/intel-gcm-wrap.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - PORT_SafeZero
    linkageType: ''
    returnType: void
    signature: void intel_AES_GCM_DestroyContext(intel_AES_GCMContext *gcm, PRBool
      freeit)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:220,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:226,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:232,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:237,1
    - Dst: intel_aes_gcmENC
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:241,1
    - Dst: intel_aes_gcmTAG
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:249,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 7
    argNames:
    - gcm
    - outbuf
    - outlen
    - maxout
    - inbuf
    - inlen
    - blocksize
    argTypes:
    - intel_AES_GCMContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 263
    functionName: intel_AES_GCM_EncryptUpdate
    functionSourceFile: /src/nss/lib/freebl/intel-gcm-wrap.c
    functionUses: 0
    functionsReached:
    - intel_aes_gcmENC
    - PORT_SetError
    - intel_aes_gcmTAG
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus intel_AES_GCM_EncryptUpdate(intel_AES_GCMContext *gcm,\n
      \                           unsigned char *outbuf,\n                            unsigned
      int *outlen, unsigned int maxout,\n                            const unsigned
      char *inbuf, unsigned int inlen,\n                            unsigned int blocksize)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:277,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:285,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:297,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:304,1
    - Dst: intel_aes_gcmDEC
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:308,1
    - Dst: intel_aes_gcmTAG
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:315,1
    - Dst: NSS_SecureMemcmp
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:323,1
    - Dst: memset
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:324,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:327,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 7
    argNames:
    - gcm
    - outbuf
    - outlen
    - maxout
    - inbuf
    - inlen
    - blocksize
    argTypes:
    - intel_AES_GCMContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 333
    functionName: intel_AES_GCM_DecryptUpdate
    functionSourceFile: /src/nss/lib/freebl/intel-gcm-wrap.c
    functionUses: 0
    functionsReached:
    - NSS_SecureMemcmp
    - PORT_SetError
    - memset
    - intel_aes_gcmTAG
    - intel_aes_gcmDEC
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus intel_AES_GCM_DecryptUpdate(intel_AES_GCMContext *gcm,\n
      \                           unsigned char *outbuf,\n                            unsigned
      int *outlen, unsigned int maxout,\n                            const unsigned
      char *inbuf, unsigned int inlen,\n                            unsigned int blocksize)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:355,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:362,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:369,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:375,1
    - Dst: gcm_GenerateIV
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:379,1
    - Dst: intel_aes_gcmInitCounter
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:385,1
    - Dst: intel_aes_gcmENC
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:393,1
    - Dst: intel_aes_gcmTAG
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:397,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:400,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 11
    argNames:
    - gcm
    - outbuf
    - outlen
    - maxout
    - inbuf
    - inlen
    - params
    - paramLen
    - aad
    - aadLen
    - blocksize
    argTypes:
    - intel_AES_GCMContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    - void*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 335
    functionDepth: 2
    functionLinenumber: 335
    functionLinenumberEnd: 402
    functionName: intel_AES_GCM_EncryptAEAD
    functionSourceFile: /src/nss/lib/freebl/intel-gcm-wrap.c
    functionUses: 0
    functionsReached:
    - PORT_Memcpy
    - gcm_GenerateIV
    - intel_aes_gcmENC
    - PORT_SetError
    - intel_aes_gcmInitCounter
    - intel_aes_gcmTAG
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus intel_AES_GCM_EncryptAEAD(intel_AES_GCMContext *gcm,\n                          unsigned
      char *outbuf,\n                          unsigned int *outlen, unsigned int
      maxout,\n                          const unsigned char *inbuf, unsigned int
      inlen,\n                          void *params, unsigned int paramLen,\n                          const
      unsigned char *aad, unsigned int aadLen,\n                          unsigned
      int blocksize)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:423,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:429,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:438,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:445,1
    - Dst: intel_aes_gcmInitCounter
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:449,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:457,1
    - Dst: intel_aes_gcmDEC
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:459,1
    - Dst: intel_aes_gcmTAG
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:462,1
    - Dst: NSS_SecureMemcmp
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:464,1
    - Dst: memset
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:465,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/intel-gcm-wrap.c:468,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 11
    argNames:
    - gcm
    - outbuf
    - outlen
    - maxout
    - inbuf
    - inlen
    - params
    - paramLen
    - aad
    - aadLen
    - blocksize
    argTypes:
    - intel_AES_GCMContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    - void*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 474
    functionName: intel_AES_GCM_DecryptAEAD
    functionSourceFile: /src/nss/lib/freebl/intel-gcm-wrap.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - NSS_SecureMemcmp
    - PORT_SetError
    - intel_aes_gcmInitCounter
    - memset
    - intel_aes_gcmTAG
    - intel_aes_gcmDEC
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus intel_AES_GCM_DecryptAEAD(intel_AES_GCMContext *gcm,\n                          unsigned
      char *outbuf,\n                          unsigned int *outlen, unsigned int
      maxout,\n                          const unsigned char *inbuf, unsigned int
      inlen,\n                          void *params, unsigned int paramLen,\n                          const
      unsigned char *aad, unsigned int aadLen,\n                          unsigned
      int blocksize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - to
    - ','
    - from
    - ','
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: COPY8B
    functionSourceFile: /src/nss/lib/freebl/desblapi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY8B(to, from, ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - to
    - ','
    - from
    - ','
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: COPY8B
    functionSourceFile: /src/nss/lib/freebl/desblapi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY8B(to, from, ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - to
    - ','
    - from
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: COPY8BTOHALF
    functionSourceFile: /src/nss/lib/freebl/desblapi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY8BTOHALF(to, from)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - to
    - ','
    - from
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: COPY8BFROMHALF
    functionSourceFile: /src/nss/lib/freebl/desblapi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COPY8BFROMHALF(to, from)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DES_Do1Block
      Src: /src/nss/lib/freebl/desblapi.c:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - cx
    - out
    - in
    - len
    argTypes:
    - DESContext*
    - BYTE*
    - BYTE*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 43
    functionName: DES_ECB
    functionSourceFile: /src/nss/lib/freebl/desblapi.c
    functionUses: 0
    functionsReached:
    - DES_Do1Block
    linkageType: ''
    returnType: void
    signature: void DES_ECB(DESContext *cx, BYTE *out, const BYTE *in, unsigned int
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DES_Do1Block
      Src: /src/nss/lib/freebl/desblapi.c:49,1
    - Dst: DES_Do1Block
      Src: /src/nss/lib/freebl/desblapi.c:52,1
    - Dst: DES_Do1Block
      Src: /src/nss/lib/freebl/desblapi.c:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - cx
    - out
    - in
    - len
    argTypes:
    - DESContext*
    - BYTE*
    - BYTE*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 56
    functionName: DES_EDE3_ECB
    functionSourceFile: /src/nss/lib/freebl/desblapi.c
    functionUses: 0
    functionsReached:
    - DES_Do1Block
    linkageType: ''
    returnType: void
    signature: void DES_EDE3_ECB(DESContext *cx, BYTE *out, const BYTE *in, unsigned
      int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COPY8BTOHALF
      Src: /src/nss/lib/freebl/desblapi.c:65,1
    - Dst: NO_SANITIZE_ALIGNMENT::DES_Do1Block
      Src: /src/nss/lib/freebl/desblapi.c:69,1
    - Dst: COPY8BFROMHALF
      Src: /src/nss/lib/freebl/desblapi.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - cx
    - out
    - in
    - len
    argTypes:
    - DESContext*
    - BYTE*
    - BYTE*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 73
    functionName: NO_SANITIZE_ALIGNMENT::DES_CBCEn
    functionSourceFile: /src/nss/lib/freebl/desblapi.c
    functionUses: 0
    functionsReached:
    - COPY8BTOHALF
    - COPY8BFROMHALF
    - NO_SANITIZE_ALIGNMENT::DES_Do1Block
    linkageType: ''
    returnType: void
    signature: 'void NO_SANITIZE_ALIGNMENT

      DES_CBCEn(DESContext *cx, BYTE *out, const BYTE *in, unsigned int len)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COPY8BTOHALF
      Src: /src/nss/lib/freebl/desblapi.c:85,1
    - Dst: NO_SANITIZE_ALIGNMENT::DES_Do1Block
      Src: /src/nss/lib/freebl/desblapi.c:87,1
    - Dst: COPY8BFROMHALF
      Src: /src/nss/lib/freebl/desblapi.c:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - cx
    - out
    - in
    - len
    argTypes:
    - DESContext*
    - BYTE*
    - BYTE*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 93
    functionName: NO_SANITIZE_ALIGNMENT::DES_CBCDe
    functionSourceFile: /src/nss/lib/freebl/desblapi.c
    functionUses: 0
    functionsReached:
    - COPY8BTOHALF
    - COPY8BFROMHALF
    - NO_SANITIZE_ALIGNMENT::DES_Do1Block
    linkageType: ''
    returnType: void
    signature: 'void NO_SANITIZE_ALIGNMENT

      DES_CBCDe(DESContext *cx, BYTE *out, const BYTE *in, unsigned int len)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COPY8BTOHALF
      Src: /src/nss/lib/freebl/desblapi.c:102,1
    - Dst: NO_SANITIZE_ALIGNMENT::DES_Do1Block
      Src: /src/nss/lib/freebl/desblapi.c:106,1
    - Dst: NO_SANITIZE_ALIGNMENT::DES_Do1Block
      Src: /src/nss/lib/freebl/desblapi.c:107,1
    - Dst: NO_SANITIZE_ALIGNMENT::DES_Do1Block
      Src: /src/nss/lib/freebl/desblapi.c:108,1
    - Dst: COPY8BFROMHALF
      Src: /src/nss/lib/freebl/desblapi.c:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - cx
    - out
    - in
    - len
    argTypes:
    - DESContext*
    - BYTE*
    - BYTE*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 112
    functionName: NO_SANITIZE_ALIGNMENT::DES_EDE3CBCEn
    functionSourceFile: /src/nss/lib/freebl/desblapi.c
    functionUses: 0
    functionsReached:
    - COPY8BTOHALF
    - COPY8BFROMHALF
    - NO_SANITIZE_ALIGNMENT::DES_Do1Block
    linkageType: ''
    returnType: void
    signature: 'void NO_SANITIZE_ALIGNMENT

      DES_EDE3CBCEn(DESContext *cx, BYTE *out, const BYTE *in, unsigned int len)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: COPY8BTOHALF
      Src: /src/nss/lib/freebl/desblapi.c:124,1
    - Dst: NO_SANITIZE_ALIGNMENT::DES_Do1Block
      Src: /src/nss/lib/freebl/desblapi.c:126,1
    - Dst: NO_SANITIZE_ALIGNMENT::DES_Do1Block
      Src: /src/nss/lib/freebl/desblapi.c:127,1
    - Dst: NO_SANITIZE_ALIGNMENT::DES_Do1Block
      Src: /src/nss/lib/freebl/desblapi.c:128,1
    - Dst: COPY8BFROMHALF
      Src: /src/nss/lib/freebl/desblapi.c:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 4
    argNames:
    - cx
    - out
    - in
    - len
    argTypes:
    - DESContext*
    - BYTE*
    - BYTE*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 134
    functionName: NO_SANITIZE_ALIGNMENT::DES_EDE3CBCDe
    functionSourceFile: /src/nss/lib/freebl/desblapi.c
    functionUses: 0
    functionsReached:
    - COPY8BTOHALF
    - COPY8BFROMHALF
    - NO_SANITIZE_ALIGNMENT::DES_Do1Block
    linkageType: ''
    returnType: void
    signature: 'void NO_SANITIZE_ALIGNMENT

      DES_EDE3CBCDe(DESContext *cx, BYTE *out, const BYTE *in, unsigned int len)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZNew
      Src: /src/nss/lib/freebl/desblapi.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 140
    functionName: DES_AllocateContext
    functionSourceFile: /src/nss/lib/freebl/desblapi.c
    functionUses: 0
    functionsReached:
    - PORT_ZNew
    linkageType: ''
    returnType: DESContext
    signature: 'DESContext *

      DES_AllocateContext(void)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/desblapi.c:149,1
    - Dst: DES_MakeSchedule
      Src: /src/nss/lib/freebl/desblapi.c:156,1
    - Dst: DES_MakeSchedule
      Src: /src/nss/lib/freebl/desblapi.c:163,1
    - Dst: DES_MakeSchedule
      Src: /src/nss/lib/freebl/desblapi.c:164,1
    - Dst: DES_MakeSchedule
      Src: /src/nss/lib/freebl/desblapi.c:165,1
    - Dst: DES_MakeSchedule
      Src: /src/nss/lib/freebl/desblapi.c:167,1
    - Dst: DES_MakeSchedule
      Src: /src/nss/lib/freebl/desblapi.c:168,1
    - Dst: DES_MakeSchedule
      Src: /src/nss/lib/freebl/desblapi.c:169,1
    - Dst: COPY8BTOHALF
      Src: /src/nss/lib/freebl/desblapi.c:174,1
    - Dst: DES_MakeSchedule
      Src: /src/nss/lib/freebl/desblapi.c:176,1
    - Dst: COPY8BTOHALF
      Src: /src/nss/lib/freebl/desblapi.c:180,1
    - Dst: DES_MakeSchedule
      Src: /src/nss/lib/freebl/desblapi.c:183,1
    - Dst: DES_MakeSchedule
      Src: /src/nss/lib/freebl/desblapi.c:184,1
    - Dst: DES_MakeSchedule
      Src: /src/nss/lib/freebl/desblapi.c:185,1
    - Dst: DES_MakeSchedule
      Src: /src/nss/lib/freebl/desblapi.c:188,1
    - Dst: DES_MakeSchedule
      Src: /src/nss/lib/freebl/desblapi.c:189,1
    - Dst: DES_MakeSchedule
      Src: /src/nss/lib/freebl/desblapi.c:190,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/desblapi.c:195,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 48
    argCount: 7
    argNames:
    - cx
    - key
    - keylen
    - iv
    - mode
    - encrypt
    - unused
    argTypes:
    - DESContext*
    - unsigned char*
    - unsigned int
    - unsigned char*
    - int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 199
    functionName: DES_InitContext
    functionSourceFile: /src/nss/lib/freebl/desblapi.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - DES_MakeSchedule
    - COPY8BTOHALF
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus DES_InitContext(DESContext *cx, const unsigned char *key,
      unsigned int keylen,\n                const unsigned char *iv, int mode, unsigned
      int encrypt,\n                unsigned int unused)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZNew
      Src: /src/nss/lib/freebl/desblapi.c:204,1
    - Dst: DES_InitContext
      Src: /src/nss/lib/freebl/desblapi.c:205,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/freebl/desblapi.c:208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - key
    - iv
    - mode
    - encrypt
    argTypes:
    - BYTE*
    - BYTE*
    - int
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 212
    functionName: DES_CreateContext
    functionSourceFile: /src/nss/lib/freebl/desblapi.c
    functionUses: 3
    functionsReached:
    - DES_InitContext
    - PORT_ZFree
    - PORT_ZNew
    linkageType: ''
    returnType: DESContext
    signature: 'DESContext *

      DES_CreateContext(const BYTE *key, const BYTE *iv, int mode, PRBool encrypt)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/freebl/desblapi.c:218,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/desblapi.c:220,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - cx
    - freeit
    argTypes:
    - DESContext*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 222
    functionName: DES_DestroyContext
    functionSourceFile: /src/nss/lib/freebl/desblapi.c
    functionUses: 4
    functionsReached:
    - memset
    - PORT_Free
    linkageType: ''
    returnType: void
    signature: void DES_DestroyContext(DESContext *cx, PRBool freeit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/desblapi.c:231,1
    - Dst: DESContext*::worker
      Src: /src/nss/lib/freebl/desblapi.c:235,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 6
    argNames:
    - cx
    - out
    - outLen
    - maxOutLen
    - in
    - inLen
    argTypes:
    - DESContext*
    - BYTE*
    - unsigned int*
    - unsigned int
    - BYTE*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 239
    functionName: DES_Encrypt
    functionSourceFile: /src/nss/lib/freebl/desblapi.c
    functionUses: 3
    functionsReached:
    - PORT_SetError
    - DESContext*::worker
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus DES_Encrypt(DESContext *cx, BYTE *out, unsigned int *outLen,\n
      \           unsigned int maxOutLen, const BYTE *in, unsigned int inLen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/desblapi.c:248,1
    - Dst: DESContext*::worker
      Src: /src/nss/lib/freebl/desblapi.c:252,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 6
    argNames:
    - cx
    - out
    - outLen
    - maxOutLen
    - in
    - inLen
    argTypes:
    - DESContext*
    - BYTE*
    - unsigned int*
    - unsigned int
    - BYTE*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 256
    functionName: DES_Decrypt
    functionSourceFile: /src/nss/lib/freebl/desblapi.c
    functionUses: 3
    functionsReached:
    - PORT_SetError
    - DESContext*::worker
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus DES_Decrypt(DESContext *cx, BYTE *out, unsigned int *outLen,\n
      \           unsigned int maxOutLen, const BYTE *in, unsigned int inLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - word
    - ','
    - temp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 355
    functionName: FLIP_RIGHT_DIAGONAL
    functionSourceFile: /src/nss/lib/freebl/des.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLIP_RIGHT_DIAGONAL(word, temp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - word
    - ','
    - temp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 360
    functionName: BYTESWAP
    functionSourceFile: /src/nss/lib/freebl/des.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTESWAP(word, temp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - word
    - ','
    - temp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 365
    functionName: BYTESWAP
    functionSourceFile: /src/nss/lib/freebl/des.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTESWAP(word, temp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - word
    - ','
    - temp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 379
    functionName: BYTESWAP
    functionSourceFile: /src/nss/lib/freebl/des.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTESWAP(word, temp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - word
    - ','
    - temp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 384
    functionName: BYTESWAP
    functionSourceFile: /src/nss/lib/freebl/des.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTESWAP(word, temp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - left
    - ','
    - right
    - ','
    - c0
    - ','
    - d0
    - ','
    - temp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 394
    functionName: PC1
    functionSourceFile: /src/nss/lib/freebl/des.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PC1(left, right, c0, d0, temp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - reg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 396
    functionName: LEFT_SHIFT_1
    functionSourceFile: /src/nss/lib/freebl/des.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LEFT_SHIFT_1(reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - reg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 397
    functionName: LEFT_SHIFT_2
    functionSourceFile: /src/nss/lib/freebl/des.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LEFT_SHIFT_2(reg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: HALFPTR
      Src: /src/nss/lib/freebl/des.c:412,1
    - Dst: HALFPTR
      Src: /src/nss/lib/freebl/des.c:413,1
    - Dst: BYTESWAP
      Src: /src/nss/lib/freebl/des.c:415,1
    - Dst: BYTESWAP
      Src: /src/nss/lib/freebl/des.c:416,1
    - Dst: HALFPTR
      Src: /src/nss/lib/freebl/des.c:420,1
    - Dst: HALFPTR
      Src: /src/nss/lib/freebl/des.c:421,1
    - Dst: BYTESWAP
      Src: /src/nss/lib/freebl/des.c:423,1
    - Dst: BYTESWAP
      Src: /src/nss/lib/freebl/des.c:424,1
    - Dst: PC1
      Src: /src/nss/lib/freebl/des.c:434,1
    - Dst: LEFT_SHIFT_1
      Src: /src/nss/lib/freebl/des.c:445,1
    - Dst: LEFT_SHIFT_1
      Src: /src/nss/lib/freebl/des.c:446,1
    - Dst: LEFT_SHIFT_2
      Src: /src/nss/lib/freebl/des.c:448,1
    - Dst: LEFT_SHIFT_2
      Src: /src/nss/lib/freebl/des.c:449,1
    - Dst: PC2LOOKUP
      Src: /src/nss/lib/freebl/des.c:455,1
    - Dst: PC2LOOKUP
      Src: /src/nss/lib/freebl/des.c:456,1
    - Dst: PC2LOOKUP
      Src: /src/nss/lib/freebl/des.c:457,1
    - Dst: PC2LOOKUP
      Src: /src/nss/lib/freebl/des.c:458,1
    - Dst: PC2LOOKUP
      Src: /src/nss/lib/freebl/des.c:460,1
    - Dst: PC2LOOKUP
      Src: /src/nss/lib/freebl/des.c:461,1
    - Dst: PC2LOOKUP
      Src: /src/nss/lib/freebl/des.c:462,1
    - Dst: PC2LOOKUP
      Src: /src/nss/lib/freebl/des.c:463,1
    - Dst: PC2LOOKUP
      Src: /src/nss/lib/freebl/des.c:467,1
    - Dst: PC2LOOKUP
      Src: /src/nss/lib/freebl/des.c:468,1
    - Dst: PC2LOOKUP
      Src: /src/nss/lib/freebl/des.c:469,1
    - Dst: PC2LOOKUP
      Src: /src/nss/lib/freebl/des.c:470,1
    - Dst: PC2LOOKUP
      Src: /src/nss/lib/freebl/des.c:472,1
    - Dst: PC2LOOKUP
      Src: /src/nss/lib/freebl/des.c:473,1
    - Dst: PC2LOOKUP
      Src: /src/nss/lib/freebl/des.c:474,1
    - Dst: PC2LOOKUP
      Src: /src/nss/lib/freebl/des.c:475,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 51
    argCount: 3
    argNames:
    - ks
    - key
    - direction
    argTypes:
    - HALF*
    - BYTE*
    - DESDirection
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 489
    functionName: DES_MakeSchedule
    functionSourceFile: /src/nss/lib/freebl/des.c
    functionUses: 1
    functionsReached:
    - PC1
    - LEFT_SHIFT_2
    - PC2LOOKUP
    - HALFPTR
    - LEFT_SHIFT_1
    - BYTESWAP
    linkageType: ''
    returnType: void
    signature: void DES_MakeSchedule(HALF *ks, const BYTE *key, DESDirection direction)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 454
    functionName: PC2LOOKUP
    functionSourceFile: /src/nss/lib/freebl/des.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PC2LOOKUP(b, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 466
    functionName: PC2LOOKUP
    functionSourceFile: /src/nss/lib/freebl/des.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PC2LOOKUP(b, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - left
    - ','
    - right
    - ','
    - temp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 541
    functionName: IP
    functionSourceFile: /src/nss/lib/freebl/des.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IP(left, right, temp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - left
    - ','
    - right
    - ','
    - temp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 557
    functionName: FP
    functionSourceFile: /src/nss/lib/freebl/des.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FP(left, right, temp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HALFPTR
      Src: /src/nss/lib/freebl/des.c:565,1
    - Dst: HALFPTR
      Src: /src/nss/lib/freebl/des.c:566,1
    - Dst: BYTESWAP
      Src: /src/nss/lib/freebl/des.c:568,1
    - Dst: BYTESWAP
      Src: /src/nss/lib/freebl/des.c:569,1
    - Dst: HALFPTR
      Src: /src/nss/lib/freebl/des.c:573,1
    - Dst: HALFPTR
      Src: /src/nss/lib/freebl/des.c:574,1
    - Dst: BYTESWAP
      Src: /src/nss/lib/freebl/des.c:576,1
    - Dst: BYTESWAP
      Src: /src/nss/lib/freebl/des.c:577,1
    - Dst: IP
      Src: /src/nss/lib/freebl/des.c:587,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/des.c:611,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/des.c:612,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/des.c:613,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/des.c:614,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/des.c:615,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/des.c:616,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/des.c:617,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/des.c:618,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/des.c:619,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/des.c:620,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/des.c:621,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/des.c:622,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/des.c:623,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/des.c:624,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/des.c:625,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/des.c:626,1
    - Dst: FP
      Src: /src/nss/lib/freebl/des.c:635,1
    - Dst: BYTESWAP
      Src: /src/nss/lib/freebl/des.c:639,1
    - Dst: BYTESWAP
      Src: /src/nss/lib/freebl/des.c:640,1
    - Dst: HALFPTR
      Src: /src/nss/lib/freebl/des.c:642,1
    - Dst: HALFPTR
      Src: /src/nss/lib/freebl/des.c:644,1
    - Dst: BYTESWAP
      Src: /src/nss/lib/freebl/des.c:649,1
    - Dst: BYTESWAP
      Src: /src/nss/lib/freebl/des.c:650,1
    - Dst: HALFPTR
      Src: /src/nss/lib/freebl/des.c:652,1
    - Dst: HALFPTR
      Src: /src/nss/lib/freebl/des.c:654,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 55
    argCount: 3
    argNames:
    - ks
    - inbuf
    - outbuf
    argTypes:
    - HALF*
    - BYTE*
    - BYTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 558
    functionDepth: 1
    functionLinenumber: 558
    functionLinenumberEnd: 668
    functionName: NO_SANITIZE_ALIGNMENT::DES_Do1Block
    functionSourceFile: /src/nss/lib/freebl/des.c
    functionUses: 4
    functionsReached:
    - HALFPTR
    - ROUND
    - BYTESWAP
    - IP
    - FP
    linkageType: ''
    returnType: void
    signature: 'void NO_SANITIZE_ALIGNMENT

      DES_Do1Block(HALF *ks, const BYTE *inbuf, BYTE *outbuf)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 594
    functionDepth: 0
    functionLinenumber: 594
    functionLinenumberEnd: 595
    functionName: KSLOOKUP
    functionSourceFile: /src/nss/lib/freebl/des.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KSLOOKUP(s, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 596
    functionDepth: 0
    functionLinenumber: 596
    functionLinenumberEnd: 597
    functionName: KSLOOKUP
    functionSourceFile: /src/nss/lib/freebl/des.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KSLOOKUP(s, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - out
    - ','
    - in
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 609
    functionName: ROUND
    functionSourceFile: /src/nss/lib/freebl/des.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROUND(out, in, r)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: bl_startup_tests
      Src: /src/nss/lib/freebl/fipsfreebl.c:60,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - hinstDLL
    - fdwReason
    - lpReserved
    argTypes:
    - HINSTANCE
    - DWORD
    - LPVOID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 76
    functionName: DllMain
    functionSourceFile: /src/nss/lib/freebl/fipsfreebl.c
    functionUses: 0
    functionsReached:
    - bl_startup_tests
    linkageType: ''
    returnType: BOOL
    signature: "BOOL DllMain(\n    HINSTANCE hinstDLL, // handle to DLL module\n    DWORD
      fdwReason,    // reason for calling function\n    LPVOID lpReserved)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: DES_CreateContext
      Src: /src/nss/lib/freebl/fipsfreebl.c:164,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/fipsfreebl.c:168,1
    - Dst: DES_Encrypt
      Src: /src/nss/lib/freebl/fipsfreebl.c:172,1
    - Dst: DES_DestroyContext
      Src: /src/nss/lib/freebl/fipsfreebl.c:177,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/freebl/fipsfreebl.c:181,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/fipsfreebl.c:183,1
    - Dst: DES_CreateContext
      Src: /src/nss/lib/freebl/fipsfreebl.c:191,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/fipsfreebl.c:195,1
    - Dst: DES_Decrypt
      Src: /src/nss/lib/freebl/fipsfreebl.c:199,1
    - Dst: DES_DestroyContext
      Src: /src/nss/lib/freebl/fipsfreebl.c:204,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/freebl/fipsfreebl.c:208,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/fipsfreebl.c:210,1
    - Dst: DES_CreateContext
      Src: /src/nss/lib/freebl/fipsfreebl.c:218,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/fipsfreebl.c:223,1
    - Dst: DES_Encrypt
      Src: /src/nss/lib/freebl/fipsfreebl.c:227,1
    - Dst: DES_DestroyContext
      Src: /src/nss/lib/freebl/fipsfreebl.c:232,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/freebl/fipsfreebl.c:236,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/fipsfreebl.c:238,1
    - Dst: DES_CreateContext
      Src: /src/nss/lib/freebl/fipsfreebl.c:246,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/fipsfreebl.c:251,1
    - Dst: DES_Decrypt
      Src: /src/nss/lib/freebl/fipsfreebl.c:255,1
    - Dst: DES_DestroyContext
      Src: /src/nss/lib/freebl/fipsfreebl.c:260,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/freebl/fipsfreebl.c:264,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/fipsfreebl.c:266,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 271
    functionName: freebl_fips_DES3_PowerUpSelfTest
    functionSourceFile: /src/nss/lib/freebl/fipsfreebl.c
    functionUses: 0
    functionsReached:
    - DES_DestroyContext
    - PORT_Memcmp
    - PORT_SetError
    - DES_CreateContext
    - DES_Decrypt
    - DES_Encrypt
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus freebl_fips_DES3_PowerUpSelfTest(void)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/fipsfreebl.c:388,1
    - Dst: AES_CreateContext
      Src: /src/nss/lib/freebl/fipsfreebl.c:396,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/fipsfreebl.c:400,1
    - Dst: AES_Encrypt
      Src: /src/nss/lib/freebl/fipsfreebl.c:404,1
    - Dst: AES_DestroyContext
      Src: /src/nss/lib/freebl/fipsfreebl.c:409,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/freebl/fipsfreebl.c:413,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/fipsfreebl.c:415,1
    - Dst: AES_CreateContext
      Src: /src/nss/lib/freebl/fipsfreebl.c:423,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/fipsfreebl.c:427,1
    - Dst: AES_Decrypt
      Src: /src/nss/lib/freebl/fipsfreebl.c:431,1
    - Dst: AES_DestroyContext
      Src: /src/nss/lib/freebl/fipsfreebl.c:436,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/freebl/fipsfreebl.c:440,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/fipsfreebl.c:442,1
    - Dst: AES_CreateContext
      Src: /src/nss/lib/freebl/fipsfreebl.c:450,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/fipsfreebl.c:456,1
    - Dst: AES_Encrypt
      Src: /src/nss/lib/freebl/fipsfreebl.c:460,1
    - Dst: AES_DestroyContext
      Src: /src/nss/lib/freebl/fipsfreebl.c:465,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/freebl/fipsfreebl.c:469,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/fipsfreebl.c:471,1
    - Dst: AES_CreateContext
      Src: /src/nss/lib/freebl/fipsfreebl.c:479,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/fipsfreebl.c:485,1
    - Dst: AES_Decrypt
      Src: /src/nss/lib/freebl/fipsfreebl.c:489,1
    - Dst: AES_DestroyContext
      Src: /src/nss/lib/freebl/fipsfreebl.c:494,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/freebl/fipsfreebl.c:498,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/fipsfreebl.c:500,1
    - Dst: AES_CreateContext
      Src: /src/nss/lib/freebl/fipsfreebl.c:513,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/fipsfreebl.c:519,1
    - Dst: AES_Encrypt
      Src: /src/nss/lib/freebl/fipsfreebl.c:523,1
    - Dst: AES_DestroyContext
      Src: /src/nss/lib/freebl/fipsfreebl.c:528,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/freebl/fipsfreebl.c:532,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/fipsfreebl.c:534,1
    - Dst: AES_CreateContext
      Src: /src/nss/lib/freebl/fipsfreebl.c:542,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/fipsfreebl.c:548,1
    - Dst: AES_Decrypt
      Src: /src/nss/lib/freebl/fipsfreebl.c:552,1
    - Dst: AES_DestroyContext
      Src: /src/nss/lib/freebl/fipsfreebl.c:557,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/freebl/fipsfreebl.c:561,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/fipsfreebl.c:563,1
    - Dst: CMAC_Create
      Src: /src/nss/lib/freebl/fipsfreebl.c:570,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/fipsfreebl.c:573,1
    - Dst: CMAC_Begin
      Src: /src/nss/lib/freebl/fipsfreebl.c:577,1
    - Dst: CMAC_Destroy
      Src: /src/nss/lib/freebl/fipsfreebl.c:579,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/fipsfreebl.c:580,1
    - Dst: CMAC_Update
      Src: /src/nss/lib/freebl/fipsfreebl.c:584,1
    - Dst: CMAC_Destroy
      Src: /src/nss/lib/freebl/fipsfreebl.c:587,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/fipsfreebl.c:588,1
    - Dst: CMAC_Finish
      Src: /src/nss/lib/freebl/fipsfreebl.c:592,1
    - Dst: CMAC_Destroy
      Src: /src/nss/lib/freebl/fipsfreebl.c:595,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/freebl/fipsfreebl.c:599,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/fipsfreebl.c:601,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 100
    argCount: 1
    argNames:
    - aes_key_size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 606
    functionName: freebl_fips_AES_PowerUpSelfTest
    functionSourceFile: /src/nss/lib/freebl/fipsfreebl.c
    functionUses: 0
    functionsReached:
    - CMAC_Create
    - CMAC_Update
    - PORT_Memcmp
    - CMAC_Destroy
    - AES_DestroyContext
    - CMAC_Finish
    - PORT_SetError
    - AES_Decrypt
    - CMAC_Begin
    - AES_Encrypt
    - AES_CreateContext
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus freebl_fips_AES_PowerUpSelfTest(int aes_key_size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HASH_GetRawHashObject
      Src: /src/nss/lib/freebl/fipsfreebl.c:629,1
    - Dst: HMAC_Create
      Src: /src/nss/lib/freebl/fipsfreebl.c:634,1
    - Dst: HMAC_Begin
      Src: /src/nss/lib/freebl/fipsfreebl.c:641,1
    - Dst: HMAC_Update
      Src: /src/nss/lib/freebl/fipsfreebl.c:642,1
    - Dst: HMAC_Finish
      Src: /src/nss/lib/freebl/fipsfreebl.c:643,1
    - Dst: HMAC_Destroy
      Src: /src/nss/lib/freebl/fipsfreebl.c:646,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 6
    argNames:
    - hmac_computed
    - secret_key
    - secret_key_length
    - message
    - message_length
    - hashAlg
    argTypes:
    - unsigned char*
    - PRUint8*
    - unsigned int
    - PRUint8*
    - unsigned int
    - HASH_HashType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 649
    functionName: freebl_fips_HMAC
    functionSourceFile: /src/nss/lib/freebl/fipsfreebl.c
    functionUses: 0
    functionsReached:
    - HMAC_Finish
    - HMAC_Destroy
    - HMAC_Begin
    - HASH_GetRawHashObject
    - HMAC_Update
    - HMAC_Create
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus freebl_fips_HMAC(unsigned char *hmac_computed,\n                 const
      PRUint8 *secret_key,\n                 unsigned int secret_key_length,\n                 const
      PRUint8 *message,\n                 unsigned int message_length,\n                 HASH_HashType
      hashAlg)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: freebl_fips_HMAC
      Src: /src/nss/lib/freebl/fipsfreebl.c:712,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/freebl/fipsfreebl.c:720,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/fipsfreebl.c:722,1
    - Dst: freebl_fips_HMAC
      Src: /src/nss/lib/freebl/fipsfreebl.c:730,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/freebl/fipsfreebl.c:738,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/fipsfreebl.c:740,1
    - Dst: freebl_fips_HMAC
      Src: /src/nss/lib/freebl/fipsfreebl.c:748,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/freebl/fipsfreebl.c:756,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/fipsfreebl.c:758,1
    - Dst: freebl_fips_HMAC
      Src: /src/nss/lib/freebl/fipsfreebl.c:766,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/freebl/fipsfreebl.c:774,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/fipsfreebl.c:776,1
    - Dst: freebl_fips_HMAC
      Src: /src/nss/lib/freebl/fipsfreebl.c:784,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/freebl/fipsfreebl.c:792,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/fipsfreebl.c:794,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 651
    functionDepth: 1
    functionLinenumber: 651
    functionLinenumberEnd: 799
    functionName: freebl_fips_HMAC_PowerUpSelfTest
    functionSourceFile: /src/nss/lib/freebl/fipsfreebl.c
    functionUses: 0
    functionsReached:
    - freebl_fips_HMAC
    - PORT_SetError
    - PORT_Memcmp
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus freebl_fips_HMAC_PowerUpSelfTest(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TLS_PRF
      Src: /src/nss/lib/freebl/fipsfreebl.c:890,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/freebl/fipsfreebl.c:894,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/fipsfreebl.c:896,1
    - Dst: TLS_P_hash
      Src: /src/nss/lib/freebl/fipsfreebl.c:904,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/freebl/fipsfreebl.c:909,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/fipsfreebl.c:911,1
    - Dst: TLS_P_hash
      Src: /src/nss/lib/freebl/fipsfreebl.c:920,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/freebl/fipsfreebl.c:925,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/fipsfreebl.c:927,1
    - Dst: TLS_P_hash
      Src: /src/nss/lib/freebl/fipsfreebl.c:935,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/freebl/fipsfreebl.c:940,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/fipsfreebl.c:942,1
    - Dst: TLS_P_hash
      Src: /src/nss/lib/freebl/fipsfreebl.c:950,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/freebl/fipsfreebl.c:955,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/fipsfreebl.c:957,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 801
    functionDepth: 0
    functionLinenumber: 801
    functionLinenumberEnd: 963
    functionName: freebl_fips_TLS_PowerUpSelfTest
    functionSourceFile: /src/nss/lib/freebl/fipsfreebl.c
    functionUses: 0
    functionsReached:
    - TLS_PRF
    - PORT_SetError
    - PORT_Memcmp
    - TLS_P_hash
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus freebl_fips_TLS_PowerUpSelfTest(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SHA1_HashBuf
      Src: /src/nss/lib/freebl/fipsfreebl.c:1021,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/freebl/fipsfreebl.c:1025,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/fipsfreebl.c:1027,1
    - Dst: SHA224_HashBuf
      Src: /src/nss/lib/freebl/fipsfreebl.c:1035,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/freebl/fipsfreebl.c:1039,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/fipsfreebl.c:1041,1
    - Dst: SHA256_HashBuf
      Src: /src/nss/lib/freebl/fipsfreebl.c:1049,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/freebl/fipsfreebl.c:1053,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/fipsfreebl.c:1055,1
    - Dst: SHA384_HashBuf
      Src: /src/nss/lib/freebl/fipsfreebl.c:1063,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/freebl/fipsfreebl.c:1067,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/fipsfreebl.c:1069,1
    - Dst: SHA512_HashBuf
      Src: /src/nss/lib/freebl/fipsfreebl.c:1077,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/freebl/fipsfreebl.c:1081,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/fipsfreebl.c:1083,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1088
      start: 965
    functionDepth: 0
    functionLinenumber: 965
    functionLinenumberEnd: 1088
    functionName: freebl_fips_SHA_PowerUpSelfTest
    functionSourceFile: /src/nss/lib/freebl/fipsfreebl.c
    functionUses: 0
    functionsReached:
    - SHA384_HashBuf
    - PORT_Memcmp
    - SHA256_HashBuf
    - SHA512_HashBuf
    - PORT_SetError
    - SHA224_HashBuf
    - SHA1_HashBuf
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus freebl_fips_SHA_PowerUpSelfTest(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RSA_PublicKeyOp
      Src: /src/nss/lib/freebl/fipsfreebl.c:1359,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/freebl/fipsfreebl.c:1364,1
    - Dst: RSA_PrivateKeyOp
      Src: /src/nss/lib/freebl/fipsfreebl.c:1373,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/freebl/fipsfreebl.c:1378,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/fipsfreebl.c:1386,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1388
      start: 1090
    functionDepth: 0
    functionLinenumber: 1090
    functionLinenumberEnd: 1388
    functionName: freebl_fips_RSA_PowerUpSelfTest
    functionSourceFile: /src/nss/lib/freebl/fipsfreebl.c
    functionUses: 0
    functionsReached:
    - PORT_Memcmp
    - PORT_SetError
    - RSA_PublicKeyOp
    - RSA_PrivateKeyOp
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus freebl_fips_RSA_PowerUpSelfTest(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EC_NewKeyFromSeed
      Src: /src/nss/lib/freebl/fipsfreebl.c:1420,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/fipsfreebl.c:1424,1
    - Dst: EC_ValidatePublicKey
      Src: /src/nss/lib/freebl/fipsfreebl.c:1433,1
    - Dst: EC_ValidatePublicKey
      Src: /src/nss/lib/freebl/fipsfreebl.c:1440,1
    - Dst: SHA256_HashBuf
      Src: /src/nss/lib/freebl/fipsfreebl.c:1450,1
    - Dst: memset
      Src: /src/nss/lib/freebl/fipsfreebl.c:1458,1
    - Dst: ECDSA_SignDigestWithSeed
      Src: /src/nss/lib/freebl/fipsfreebl.c:1463,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/freebl/fipsfreebl.c:1470,1
    - Dst: ECDSA_VerifyDigest
      Src: /src/nss/lib/freebl/fipsfreebl.c:1481,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/freebl/fipsfreebl.c:1485,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/fipsfreebl.c:1488,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 49
    argCount: 3
    argNames:
    - ecparams
    - knownSignature
    - knownSignatureLen
    argTypes:
    - ECParams*
    - PRUint8*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1492
      start: 1390
    functionDepth: 0
    functionLinenumber: 1390
    functionLinenumberEnd: 1492
    functionName: freebl_fips_ECDSA_Test
    functionSourceFile: /src/nss/lib/freebl/fipsfreebl.c
    functionUses: 0
    functionsReached:
    - EC_ValidatePublicKey
    - ECDSA_VerifyDigest
    - PORT_Memcmp
    - PORT_FreeArena
    - SHA256_HashBuf
    - ECDSA_SignDigestWithSeed
    - memset
    - PORT_SetError
    - EC_NewKeyFromSeed
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus freebl_fips_ECDSA_Test(ECParams *ecparams,\n                       const
      PRUint8 *knownSignature,\n                       unsigned int knownSignatureLen)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ECDH_Derive
      Src: /src/nss/lib/freebl/fipsfreebl.c:1540,1
    - Dst: SHA256_HashBuf
      Src: /src/nss/lib/freebl/fipsfreebl.c:1544,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/freebl/fipsfreebl.c:1549,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/freebl/fipsfreebl.c:1557,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/fipsfreebl.c:1561,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 1
    argNames:
    - ecparams
    argTypes:
    - ECParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1565
      start: 1494
    functionDepth: 0
    functionLinenumber: 1494
    functionLinenumberEnd: 1565
    functionName: freebl_fips_ECDH_Test
    functionSourceFile: /src/nss/lib/freebl/fipsfreebl.c
    functionUses: 0
    functionsReached:
    - ECDH_Derive
    - PORT_Memcmp
    - SHA256_HashBuf
    - PORT_SetError
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus freebl_fips_ECDH_Test(ECParams *ecparams)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: freebl_fips_ECDSA_Test
      Src: /src/nss/lib/freebl/fipsfreebl.c:1650,1
    - Dst: freebl_fips_ECDH_Test
      Src: /src/nss/lib/freebl/fipsfreebl.c:1657,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1663
      start: 1567
    functionDepth: 1
    functionLinenumber: 1567
    functionLinenumberEnd: 1663
    functionName: freebl_fips_EC_PowerUpSelfTest
    functionSourceFile: /src/nss/lib/freebl/fipsfreebl.c
    functionUses: 0
    functionsReached:
    - freebl_fips_ECDSA_Test
    - freebl_fips_ECDH_Test
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus freebl_fips_EC_PowerUpSelfTest()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DH_Derive
      Src: /src/nss/lib/freebl/fipsfreebl.c:1769,1
    - Dst: SHA256_HashBuf
      Src: /src/nss/lib/freebl/fipsfreebl.c:1774,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/freebl/fipsfreebl.c:1779,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/freebl/fipsfreebl.c:1787,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/fipsfreebl.c:1791,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1795
      start: 1665
    functionDepth: 0
    functionLinenumber: 1665
    functionLinenumberEnd: 1795
    functionName: freebl_fips_DH_PowerUpSelfTest
    functionSourceFile: /src/nss/lib/freebl/fipsfreebl.c
    functionUses: 0
    functionsReached:
    - PORT_Memcmp
    - SHA256_HashBuf
    - PORT_SetError
    - DH_Derive
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus freebl_fips_DH_PowerUpSelfTest(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PRNGTEST_RunHealthTests
      Src: /src/nss/lib/freebl/fipsfreebl.c:1805,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/fipsfreebl.c:1807,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1812
      start: 1797
    functionDepth: 0
    functionLinenumber: 1797
    functionLinenumberEnd: 1812
    functionName: freebl_fips_RNG_PowerUpSelfTest
    functionSourceFile: /src/nss/lib/freebl/fipsfreebl.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PRNGTEST_RunHealthTests
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus freebl_fips_RNG_PowerUpSelfTest(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BLAPI_VerifySelf
      Src: /src/nss/lib/freebl/fipsfreebl.c:1820,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - libname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1824
      start: 1814
    functionDepth: 0
    functionLinenumber: 1814
    functionLinenumberEnd: 1824
    functionName: freebl_fipsSoftwareIntegrityTest
    functionSourceFile: /src/nss/lib/freebl/fipsfreebl.c
    functionUses: 0
    functionsReached:
    - BLAPI_VerifySelf
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus freebl_fipsSoftwareIntegrityTest(const char *libname)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: freebl_fips_SHA_PowerUpSelfTest
      Src: /src/nss/lib/freebl/fipsfreebl.c:1840,1
    - Dst: freebl_fips_RNG_PowerUpSelfTest
      Src: /src/nss/lib/freebl/fipsfreebl.c:1852,1
    - Dst: freebl_fips_DES3_PowerUpSelfTest
      Src: /src/nss/lib/freebl/fipsfreebl.c:1858,1
    - Dst: freebl_fips_AES_PowerUpSelfTest
      Src: /src/nss/lib/freebl/fipsfreebl.c:1864,1
    - Dst: freebl_fips_AES_PowerUpSelfTest
      Src: /src/nss/lib/freebl/fipsfreebl.c:1870,1
    - Dst: freebl_fips_AES_PowerUpSelfTest
      Src: /src/nss/lib/freebl/fipsfreebl.c:1876,1
    - Dst: freebl_fips_HMAC_PowerUpSelfTest
      Src: /src/nss/lib/freebl/fipsfreebl.c:1882,1
    - Dst: freebl_fips_TLS_PowerUpSelfTest
      Src: /src/nss/lib/freebl/fipsfreebl.c:1888,1
    - Dst: freebl_fips_RSA_PowerUpSelfTest
      Src: /src/nss/lib/freebl/fipsfreebl.c:1896,1
    - Dst: freebl_fips_DH_PowerUpSelfTest
      Src: /src/nss/lib/freebl/fipsfreebl.c:1902,1
    - Dst: freebl_fips_EC_PowerUpSelfTest
      Src: /src/nss/lib/freebl/fipsfreebl.c:1908,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 1
    argNames:
    - tests
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1915
      start: 1829
    functionDepth: 2
    functionLinenumber: 1829
    functionLinenumberEnd: 1915
    functionName: freebl_fipsPowerUpSelfTest
    functionSourceFile: /src/nss/lib/freebl/fipsfreebl.c
    functionUses: 0
    functionsReached:
    - freebl_fips_DES3_PowerUpSelfTest
    - freebl_fips_AES_PowerUpSelfTest
    - freebl_fips_HMAC_PowerUpSelfTest
    - freebl_fips_TLS_PowerUpSelfTest
    - freebl_fips_RNG_PowerUpSelfTest
    - freebl_fips_SHA_PowerUpSelfTest
    - freebl_fips_DH_PowerUpSelfTest
    - freebl_fips_EC_PowerUpSelfTest
    - freebl_fips_RSA_PowerUpSelfTest
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus freebl_fipsPowerUpSelfTest(unsigned int tests)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BL_Init
      Src: /src/nss/lib/freebl/fipsfreebl.c:1963,1
    - Dst: RNG_RNGInit
      Src: /src/nss/lib/freebl/fipsfreebl.c:1964,1
    - Dst: freebl_fipsPowerUpSelfTest
      Src: /src/nss/lib/freebl/fipsfreebl.c:1965,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - freebl_only
    argTypes:
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1970
      start: 1939
    functionDepth: 3
    functionLinenumber: 1939
    functionLinenumberEnd: 1970
    functionName: BL_POSTRan
    functionSourceFile: /src/nss/lib/freebl/fipsfreebl.c
    functionUses: 1
    functionsReached:
    - RNG_RNGInit
    - BL_Init
    - freebl_fipsPowerUpSelfTest
    linkageType: ''
    returnType: PRBool
    signature: PRBool BL_POSTRan(PRBool freebl_only)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/fipsfreebl.c:1985,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/fipsfreebl.c:1986,1
    - Dst: FREEBL_InitStubs
      Src: /src/nss/lib/freebl/fipsfreebl.c:1992,1
    - Dst: BL_Init
      Src: /src/nss/lib/freebl/fipsfreebl.c:2002,1
    - Dst: RNG_RNGInit
      Src: /src/nss/lib/freebl/fipsfreebl.c:2003,1
    - Dst: freebl_fipsPowerUpSelfTest
      Src: /src/nss/lib/freebl/fipsfreebl.c:2007,1
    - Dst: getLibName
      Src: /src/nss/lib/freebl/fipsfreebl.c:2012,1
    - Dst: freebl_fipsSoftwareIntegrityTest
      Src: /src/nss/lib/freebl/fipsfreebl.c:2013,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2023
      start: 1978
    functionDepth: 3
    functionLinenumber: 1978
    functionLinenumberEnd: 2023
    functionName: bl_startup_tests
    functionSourceFile: /src/nss/lib/freebl/fipsfreebl.c
    functionUses: 1
    functionsReached:
    - RNG_RNGInit
    - PORT_Assert
    - FREEBL_InitStubs
    - BL_Init
    - freebl_fipsPowerUpSelfTest
    - getLibName
    - freebl_fipsSoftwareIntegrityTest
    linkageType: ''
    returnType: void
    signature: void bl_startup_tests(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: bl_startup_tests
      Src: /src/nss/lib/freebl/fipsfreebl.c:2041,1
    - Dst: bl_startup_tests
      Src: /src/nss/lib/freebl/fipsfreebl.c:2050,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/fipsfreebl.c:2060,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - freebl_only
    - rerun
    argTypes:
    - PRBool
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2062
      start: 2030
    functionDepth: 4
    functionLinenumber: 2030
    functionLinenumberEnd: 2062
    functionName: BL_FIPSEntryOK
    functionSourceFile: /src/nss/lib/freebl/fipsfreebl.c
    functionUses: 2
    functionsReached:
    - PORT_SetError
    - bl_startup_tests
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus BL_FIPSEntryOK(PRBool freebl_only, PRBool rerun)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_CT_GE
      Src: /src/nss/lib/freebl/hmacct.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 25
    functionName: constantTimeGE
    functionSourceFile: /src/nss/lib/freebl/hmacct.c
    functionUses: 0
    functionsReached:
    - PORT_CT_GE
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char constantTimeGE(unsigned int a, unsigned int b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_CT_EQ
      Src: /src/nss/lib/freebl/hmacct.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - unsigned char
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: constantTimeEQ
    functionSourceFile: /src/nss/lib/freebl/hmacct.c
    functionUses: 0
    functionsReached:
    - PORT_CT_EQ
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char constantTimeEQ(unsigned char a, unsigned char b)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: SECHashObject*::create
      Src: /src/nss/lib/freebl/hmacct.c:63,1
    - Dst: SECHashObject*::begin
      Src: /src/nss/lib/freebl/hmacct.c:145,1
    - Dst: memset
      Src: /src/nss/lib/freebl/hmacct.c:151,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/hmacct.c:152,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/hmacct.c:153,1
    - Dst: SECHashObject*::update
      Src: /src/nss/lib/freebl/hmacct.c:156,1
    - Dst: memset
      Src: /src/nss/lib/freebl/hmacct.c:160,1
    - Dst: SECHashObject*::update
      Src: /src/nss/lib/freebl/hmacct.c:183,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/hmacct.c:184,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/hmacct.c:185,1
    - Dst: SECHashObject*::update
      Src: /src/nss/lib/freebl/hmacct.c:186,1
    - Dst: SECHashObject*::update
      Src: /src/nss/lib/freebl/hmacct.c:188,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/hmacct.c:193,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/hmacct.c:194,1
    - Dst: SECHashObject*::update
      Src: /src/nss/lib/freebl/hmacct.c:195,1
    - Dst: SECHashObject*::update
      Src: /src/nss/lib/freebl/hmacct.c:197,1
    - Dst: memset
      Src: /src/nss/lib/freebl/hmacct.c:203,1
    - Dst: constantTimeEQ
      Src: /src/nss/lib/freebl/hmacct.c:211,1
    - Dst: constantTimeEQ
      Src: /src/nss/lib/freebl/hmacct.c:212,1
    - Dst: constantTimeGE
      Src: /src/nss/lib/freebl/hmacct.c:214,1
    - Dst: constantTimeGE
      Src: /src/nss/lib/freebl/hmacct.c:215,1
    - Dst: SECHashObject*::update
      Src: /src/nss/lib/freebl/hmacct.c:247,1
    - Dst: SECHashObject*::end_raw
      Src: /src/nss/lib/freebl/hmacct.c:248,1
    - Dst: SECHashObject*::begin
      Src: /src/nss/lib/freebl/hmacct.c:255,1
    - Dst: SECHashObject*::update
      Src: /src/nss/lib/freebl/hmacct.c:262,1
    - Dst: SECHashObject*::update
      Src: /src/nss/lib/freebl/hmacct.c:263,1
    - Dst: SECHashObject*::update
      Src: /src/nss/lib/freebl/hmacct.c:264,1
    - Dst: SECHashObject*::update
      Src: /src/nss/lib/freebl/hmacct.c:270,1
    - Dst: SECHashObject*::update
      Src: /src/nss/lib/freebl/hmacct.c:271,1
    - Dst: SECHashObject*::end
      Src: /src/nss/lib/freebl/hmacct.c:274,1
    - Dst: SECHashObject*::destroy
      Src: /src/nss/lib/freebl/hmacct.c:275,1
    - Dst: PORT_SafeZero
      Src: /src/nss/lib/freebl/hmacct.c:277,1
    - Dst: PORT_SafeZero
      Src: /src/nss/lib/freebl/hmacct.c:278,1
    - Dst: PORT_SafeZero
      Src: /src/nss/lib/freebl/hmacct.c:279,1
    - Dst: PORT_SafeZero
      Src: /src/nss/lib/freebl/hmacct.c:280,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 92
    argCount: 12
    argNames:
    - mdOut
    - mdOutLen
    - mdOutMax
    - hashObj
    - macSecret
    - macSecretLen
    - header
    - headerLen
    - data
    - dataLen
    - dataTotalLen
    - isSSLv3
    argTypes:
    - unsigned char*
    - unsigned int*
    - unsigned int
    - SECHashObject*
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned int
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 283
    functionName: MAC
    functionSourceFile: /src/nss/lib/freebl/hmacct.c
    functionUses: 2
    functionsReached:
    - PORT_Assert
    - memcpy
    - PORT_SafeZero
    - SECHashObject*::end_raw
    - constantTimeGE
    - SECHashObject*::end
    - SECHashObject*::create
    - memset
    - constantTimeEQ
    - SECHashObject*::destroy
    - SECHashObject*::begin
    - SECHashObject*::update
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus MAC(unsigned char *mdOut,\n    unsigned int *mdOutLen,\n
      \   unsigned int mdOutMax,\n    const SECHashObject *hashObj,\n    const unsigned
      char *macSecret,\n    unsigned int macSecretLen,\n    const unsigned char *header,\n
      \   unsigned int headerLen,\n    const unsigned char *data,\n    unsigned int
      dataLen,\n    unsigned int dataTotalLen,\n    unsigned char isSSLv3)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAC
      Src: /src/nss/lib/freebl/hmacct.c:301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 11
    argNames:
    - result
    - resultLen
    - maxResultLen
    - hashObj
    - secret
    - secretLen
    - header
    - headerLen
    - body
    - bodyLen
    - bodyTotalLen
    argTypes:
    - unsigned char*
    - unsigned int*
    - unsigned int
    - SECHashObject*
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 285
    functionDepth: 3
    functionLinenumber: 285
    functionLinenumberEnd: 304
    functionName: HMAC_ConstantTime
    functionSourceFile: /src/nss/lib/freebl/hmacct.c
    functionUses: 0
    functionsReached:
    - MAC
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus HMAC_ConstantTime(\n    unsigned char *result,\n    unsigned
      int *resultLen,\n    unsigned int maxResultLen,\n    const SECHashObject *hashObj,\n
      \   const unsigned char *secret,\n    unsigned int secretLen,\n    const unsigned
      char *header,\n    unsigned int headerLen,\n    const unsigned char *body,\n
      \   unsigned int bodyLen,\n    unsigned int bodyTotalLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAC
      Src: /src/nss/lib/freebl/hmacct.c:322,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 11
    argNames:
    - result
    - resultLen
    - maxResultLen
    - hashObj
    - secret
    - secretLen
    - header
    - headerLen
    - body
    - bodyLen
    - bodyTotalLen
    argTypes:
    - unsigned char*
    - unsigned int*
    - unsigned int
    - SECHashObject*
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 306
    functionDepth: 3
    functionLinenumber: 306
    functionLinenumberEnd: 325
    functionName: SSLv3_MAC_ConstantTime
    functionSourceFile: /src/nss/lib/freebl/hmacct.c
    functionUses: 0
    functionsReached:
    - MAC
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSLv3_MAC_ConstantTime(\n    unsigned char *result,\n    unsigned
      int *resultLen,\n    unsigned int maxResultLen,\n    const SECHashObject *hashObj,\n
      \   const unsigned char *secret,\n    unsigned int secretLen,\n    const unsigned
      char *header,\n    unsigned int headerLen,\n    const unsigned char *body,\n
      \   unsigned int bodyLen,\n    unsigned int bodyTotalLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HASHContext*::hashobj::update
      Src: /src/nss/lib/freebl/jpake.c:28,1
    - Dst: HASHContext*::hashobj::update
      Src: /src/nss/lib/freebl/jpake.c:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - hash
    - it
    argTypes:
    - HASHContext*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 31
    functionName: hashSECItem
    functionSourceFile: /src/nss/lib/freebl/jpake.c
    functionUses: 0
    functionsReached:
    - HASHContext*::hashobj::update
    linkageType: ''
    returnType: mp_err
    signature: mp_err hashSECItem(HASHContext *hash, const SECItem *it)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: HASH_GetRawHashObject
      Src: /src/nss/lib/freebl/jpake.c:45,1
    - Dst: HASHContext::hashobj::create
      Src: /src/nss/lib/freebl/jpake.c:49,1
    - Dst: HASHContext::hashobj::begin
      Src: /src/nss/lib/freebl/jpake.c:57,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:58,1
    - Dst: hashSECItem
      Src: /src/nss/lib/freebl/jpake.c:58,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:59,1
    - Dst: hashSECItem
      Src: /src/nss/lib/freebl/jpake.c:59,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:60,1
    - Dst: hashSECItem
      Src: /src/nss/lib/freebl/jpake.c:60,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:61,1
    - Dst: hashSECItem
      Src: /src/nss/lib/freebl/jpake.c:61,1
    - Dst: HASHContext::hashobj::end
      Src: /src/nss/lib/freebl/jpake.c:62,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/jpake.c:64,1
    - Dst: HASHContext::hashobj::destroy
      Src: /src/nss/lib/freebl/jpake.c:68,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 6
    argNames:
    - hashType
    - g
    - gv
    - gx
    - signerID
    - h
    argTypes:
    - HASH_HashType
    - SECItem*
    - SECItem*
    - SECItem*
    - SECItem*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 72
    functionName: hashPublicParams
    functionSourceFile: /src/nss/lib/freebl/jpake.c
    functionUses: 0
    functionsReached:
    - HASHContext::hashobj::create
    - CHECK_MPI_OK
    - SECITEM_TO_MPINT
    - HASHContext::hashobj::destroy
    - hashSECItem
    - HASHContext::hashobj::begin
    - HASH_GetRawHashObject
    - HASHContext::hashobj::end
    linkageType: ''
    returnType: mp_err
    signature: "mp_err hashPublicParams(HASH_HashType hashType, const SECItem *g,\n
      \                const SECItem *gv, const SECItem *gx,\n                 const
      SECItem *signerID, mp_int *h)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/jpake.c:106,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/jpake.c:110,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/jpake.c:111,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/jpake.c:112,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/jpake.c:113,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/jpake.c:114,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/jpake.c:115,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/jpake.c:116,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/jpake.c:117,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/jpake.c:118,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/jpake.c:119,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:121,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/jpake.c:121,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:122,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/jpake.c:122,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:123,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/jpake.c:123,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:124,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/jpake.c:124,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:125,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/jpake.c:125,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:126,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/jpake.c:126,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:127,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/jpake.c:127,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:128,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/jpake.c:128,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:129,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/jpake.c:129,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:130,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/jpake.c:130,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/jpake.c:132,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/jpake.c:133,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/jpake.c:134,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/jpake.c:135,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:139,1
    - Dst: mp_exptmod
      Src: /src/nss/lib/freebl/jpake.c:139,1
    - Dst: MPINT_TO_SECITEM
      Src: /src/nss/lib/freebl/jpake.c:140,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/jpake.c:143,1
    - Dst: DSA_NewRandom
      Src: /src/nss/lib/freebl/jpake.c:149,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/jpake.c:157,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:160,1
    - Dst: mp_exptmod
      Src: /src/nss/lib/freebl/jpake.c:160,1
    - Dst: MPINT_TO_SECITEM
      Src: /src/nss/lib/freebl/jpake.c:161,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:164,1
    - Dst: hashPublicParams
      Src: /src/nss/lib/freebl/jpake.c:164,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:168,1
    - Dst: mp_mulmod
      Src: /src/nss/lib/freebl/jpake.c:168,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:169,1
    - Dst: mp_submod
      Src: /src/nss/lib/freebl/jpake.c:169,1
    - Dst: MPINT_TO_SECITEM
      Src: /src/nss/lib/freebl/jpake.c:170,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/jpake.c:173,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/jpake.c:174,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/jpake.c:175,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/jpake.c:176,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/jpake.c:177,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/jpake.c:178,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/jpake.c:179,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/jpake.c:180,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/jpake.c:181,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/jpake.c:182,1
    - Dst: MP_TO_SEC_ERROR
      Src: /src/nss/lib/freebl/jpake.c:185,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 71
    argCount: 10
    argNames:
    - arena
    - pqg
    - hashType
    - signerID
    - x
    - testRandom
    - gxIn
    - gxOut
    - gv
    - r
    argTypes:
    - PLArenaPool*
    - PQGParams*
    - HASH_HashType
    - SECItem*
    - SECItem*
    - SECItem*
    - SECItem*
    - SECItem*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 189
    functionName: JPAKE_Sign
    functionSourceFile: /src/nss/lib/freebl/jpake.c
    functionUses: 0
    functionsReached:
    - mp_init
    - hashPublicParams
    - mp_exptmod
    - MPINT_TO_SECITEM
    - DSA_NewRandom
    - mp_mulmod
    - CHECK_MPI_OK
    - SECITEM_TO_MPINT
    - PORT_SetError
    - mp_submod
    - MP_TO_SEC_ERROR
    - mp_clear
    - MP_DIGITS
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus JPAKE_Sign(PLArenaPool *arena, const PQGParams *pqg, HASH_HashType
      hashType,\n           const SECItem *signerID, const SECItem *x,\n           const
      SECItem *testRandom, const SECItem *gxIn, SECItem *gxOut,\n           SECItem
      *gv, SECItem *r)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/freebl/jpake.c:221,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/jpake.c:222,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/jpake.c:226,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/jpake.c:227,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/jpake.c:228,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/jpake.c:229,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/jpake.c:230,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/jpake.c:231,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/jpake.c:232,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/jpake.c:233,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/jpake.c:234,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/jpake.c:235,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/jpake.c:236,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:239,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/jpake.c:239,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:240,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/jpake.c:240,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:241,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/jpake.c:241,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:242,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/jpake.c:242,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:243,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/jpake.c:243,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:244,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/jpake.c:244,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:245,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/jpake.c:245,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:246,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/jpake.c:246,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:247,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/jpake.c:247,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:248,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/jpake.c:248,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:249,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/jpake.c:249,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/jpake.c:251,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/jpake.c:252,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/jpake.c:253,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/jpake.c:254,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/jpake.c:255,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:257,1
    - Dst: mp_sub_d
      Src: /src/nss/lib/freebl/jpake.c:257,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:258,1
    - Dst: mp_exptmod
      Src: /src/nss/lib/freebl/jpake.c:258,1
    - Dst: mp_cmp_z
      Src: /src/nss/lib/freebl/jpake.c:260,1
    - Dst: mp_cmp
      Src: /src/nss/lib/freebl/jpake.c:261,1
    - Dst: mp_cmp
      Src: /src/nss/lib/freebl/jpake.c:262,1
    - Dst: mp_cmp_d
      Src: /src/nss/lib/freebl/jpake.c:263,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:267,1
    - Dst: hashPublicParams
      Src: /src/nss/lib/freebl/jpake.c:267,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:271,1
    - Dst: mp_exptmod
      Src: /src/nss/lib/freebl/jpake.c:271,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:272,1
    - Dst: mp_exptmod
      Src: /src/nss/lib/freebl/jpake.c:272,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:273,1
    - Dst: mp_mulmod
      Src: /src/nss/lib/freebl/jpake.c:273,1
    - Dst: MPINT_TO_SECITEM
      Src: /src/nss/lib/freebl/jpake.c:276,1
    - Dst: NSS_SecureMemcmp
      Src: /src/nss/lib/freebl/jpake.c:278,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/jpake.c:282,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/jpake.c:287,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/jpake.c:288,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/jpake.c:289,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/jpake.c:290,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/jpake.c:291,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/jpake.c:292,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/jpake.c:293,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/jpake.c:294,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/jpake.c:295,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/jpake.c:296,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/jpake.c:297,1
    - Dst: MP_TO_SEC_ERROR
      Src: /src/nss/lib/freebl/jpake.c:300,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 70
    argCount: 8
    argNames:
    - arena
    - pqg
    - hashType
    - signerID
    - peerID
    - gx
    - gv
    - r
    argTypes:
    - PLArenaPool*
    - PQGParams*
    - HASH_HashType
    - SECItem*
    - SECItem*
    - SECItem*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 192
    functionDepth: 2
    functionLinenumber: 192
    functionLinenumberEnd: 304
    functionName: JPAKE_Verify
    functionSourceFile: /src/nss/lib/freebl/jpake.c
    functionUses: 0
    functionsReached:
    - mp_init
    - SECITEM_CompareItem
    - hashPublicParams
    - mp_exptmod
    - MPINT_TO_SECITEM
    - mp_cmp_z
    - mp_cmp_d
    - mp_mulmod
    - CHECK_MPI_OK
    - SECITEM_TO_MPINT
    - PORT_SetError
    - mp_sub_d
    - NSS_SecureMemcmp
    - MP_TO_SEC_ERROR
    - mp_cmp
    - mp_clear
    - MP_DIGITS
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus JPAKE_Verify(PLArenaPool *arena, const PQGParams *pqg, HASH_HashType
      hashType,\n             const SECItem *signerID, const SECItem *peerID,\n             const
      SECItem *gx, const SECItem *gv, const SECItem *r)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/jpake.c:317,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/jpake.c:318,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/jpake.c:319,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/jpake.c:320,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:322,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/jpake.c:322,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:323,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/jpake.c:323,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:324,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/jpake.c:324,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:325,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/jpake.c:325,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/jpake.c:327,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/jpake.c:328,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/jpake.c:329,1
    - Dst: mp_cmp
      Src: /src/nss/lib/freebl/jpake.c:333,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:337,1
    - Dst: mp_mul
      Src: /src/nss/lib/freebl/jpake.c:337,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:338,1
    - Dst: mp_mul
      Src: /src/nss/lib/freebl/jpake.c:338,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:339,1
    - Dst: mp_mod
      Src: /src/nss/lib/freebl/jpake.c:339,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/jpake.c:342,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/jpake.c:343,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/jpake.c:344,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/jpake.c:345,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 5
    argNames:
    - gx1
    - gx3
    - gx4
    - p
    - base
    argTypes:
    - SECItem*
    - SECItem*
    - SECItem*
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 347
    functionName: jpake_Round2Base
    functionSourceFile: /src/nss/lib/freebl/jpake.c
    functionUses: 0
    functionsReached:
    - mp_init
    - mp_mul
    - mp_mod
    - CHECK_MPI_OK
    - SECITEM_TO_MPINT
    - mp_cmp
    - mp_clear
    - MP_DIGITS
    linkageType: ''
    returnType: mp_err
    signature: "mp_err jpake_Round2Base(const SECItem *gx1, const SECItem *gx3,\n
      \                const SECItem *gx4, const mp_int *p, mp_int *base)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/jpake.c:372,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/jpake.c:376,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/jpake.c:377,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/jpake.c:378,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/jpake.c:379,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/jpake.c:380,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:382,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/jpake.c:382,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:383,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/jpake.c:383,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:384,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/jpake.c:384,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:387,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/jpake.c:387,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:388,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/jpake.c:388,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/jpake.c:390,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/jpake.c:391,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/jpake.c:393,1
    - Dst: mp_cmp_z
      Src: /src/nss/lib/freebl/jpake.c:395,1
    - Dst: mp_cmp
      Src: /src/nss/lib/freebl/jpake.c:395,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:400,1
    - Dst: mp_mulmod
      Src: /src/nss/lib/freebl/jpake.c:400,1
    - Dst: MPINT_TO_SECITEM
      Src: /src/nss/lib/freebl/jpake.c:401,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/jpake.c:404,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:405,1
    - Dst: jpake_Round2Base
      Src: /src/nss/lib/freebl/jpake.c:405,1
    - Dst: MPINT_TO_SECITEM
      Src: /src/nss/lib/freebl/jpake.c:406,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/jpake.c:409,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/jpake.c:410,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/jpake.c:411,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/jpake.c:412,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/jpake.c:413,1
    - Dst: MP_TO_SEC_ERROR
      Src: /src/nss/lib/freebl/jpake.c:416,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 42
    argCount: 10
    argNames:
    - arena
    - p
    - q
    - gx1
    - gx3
    - gx4
    - base
    - x2
    - s
    - x2s
    argTypes:
    - PLArenaPool*
    - SECItem*
    - SECItem*
    - SECItem*
    - SECItem*
    - SECItem*
    - SECItem*
    - SECItem*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 349
    functionDepth: 2
    functionLinenumber: 349
    functionLinenumberEnd: 420
    functionName: JPAKE_Round2
    functionSourceFile: /src/nss/lib/freebl/jpake.c
    functionUses: 0
    functionsReached:
    - mp_init
    - MP_TO_SEC_ERROR
    - MPINT_TO_SECITEM
    - mp_cmp_z
    - mp_mulmod
    - CHECK_MPI_OK
    - SECITEM_TO_MPINT
    - PORT_SetError
    - jpake_Round2Base
    - mp_cmp
    - mp_clear
    - MP_DIGITS
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus JPAKE_Round2(PLArenaPool *arena,\n             const SECItem
      *p, const SECItem *q, const SECItem *gx1,\n             const SECItem *gx3,
      const SECItem *gx4, SECItem *base,\n             const SECItem *x2, const SECItem
      *s, SECItem *x2s)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/jpake.c:443,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/jpake.c:447,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/jpake.c:448,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/jpake.c:449,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/jpake.c:450,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/jpake.c:451,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/jpake.c:452,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:454,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/jpake.c:454,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:455,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/jpake.c:455,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:456,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/jpake.c:456,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:457,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/jpake.c:457,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:458,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/jpake.c:458,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:459,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/jpake.c:459,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/jpake.c:462,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/jpake.c:463,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:465,1
    - Dst: mp_sub
      Src: /src/nss/lib/freebl/jpake.c:465,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/jpake.c:468,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/jpake.c:469,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:470,1
    - Dst: mp_exptmod
      Src: /src/nss/lib/freebl/jpake.c:470,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/jpake.c:473,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:474,1
    - Dst: mp_mulmod
      Src: /src/nss/lib/freebl/jpake.c:474,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/jpake.c:477,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/jpake.c:478,1
    - Dst: mp_exptmod
      Src: /src/nss/lib/freebl/jpake.c:478,1
    - Dst: MPINT_TO_SECITEM
      Src: /src/nss/lib/freebl/jpake.c:480,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/jpake.c:483,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/jpake.c:484,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/jpake.c:485,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/jpake.c:486,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/jpake.c:487,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/jpake.c:488,1
    - Dst: MP_TO_SEC_ERROR
      Src: /src/nss/lib/freebl/jpake.c:491,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 41
    argCount: 8
    argNames:
    - arena
    - p
    - q
    - x2
    - gx4
    - x2s
    - B
    - K
    argTypes:
    - PLArenaPool*
    - SECItem*
    - SECItem*
    - SECItem*
    - SECItem*
    - SECItem*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 495
    functionName: JPAKE_Final
    functionSourceFile: /src/nss/lib/freebl/jpake.c
    functionUses: 0
    functionsReached:
    - mp_init
    - mp_exptmod
    - MPINT_TO_SECITEM
    - mp_mulmod
    - CHECK_MPI_OK
    - mp_sub
    - SECITEM_TO_MPINT
    - PORT_SetError
    - MP_TO_SEC_ERROR
    - mp_clear
    - MP_DIGITS
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus JPAKE_Final(PLArenaPool *arena, const SECItem *p, const
      SECItem *q,\n            const SECItem *x2, const SECItem *gx4, const SECItem
      *x2s,\n            const SECItem *B, SECItem *K)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - k
    - ','
    - rcon
    - ','
    - res
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 20
    functionName: EXPAND_KEY128
    functionSourceFile: /src/nss/lib/freebl/aes-x86.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXPAND_KEY128(k, rcon, res)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_loadu_si128
      Src: /src/nss/lib/freebl/aes-x86.c:27,1
    - Dst: EXPAND_KEY128
      Src: /src/nss/lib/freebl/aes-x86.c:28,1
    - Dst: EXPAND_KEY128
      Src: /src/nss/lib/freebl/aes-x86.c:29,1
    - Dst: EXPAND_KEY128
      Src: /src/nss/lib/freebl/aes-x86.c:30,1
    - Dst: EXPAND_KEY128
      Src: /src/nss/lib/freebl/aes-x86.c:31,1
    - Dst: EXPAND_KEY128
      Src: /src/nss/lib/freebl/aes-x86.c:32,1
    - Dst: EXPAND_KEY128
      Src: /src/nss/lib/freebl/aes-x86.c:33,1
    - Dst: EXPAND_KEY128
      Src: /src/nss/lib/freebl/aes-x86.c:34,1
    - Dst: EXPAND_KEY128
      Src: /src/nss/lib/freebl/aes-x86.c:35,1
    - Dst: EXPAND_KEY128
      Src: /src/nss/lib/freebl/aes-x86.c:36,1
    - Dst: EXPAND_KEY128
      Src: /src/nss/lib/freebl/aes-x86.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - cx
    - key
    argTypes:
    - AESContext*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 38
    functionName: native_key_expansion128
    functionSourceFile: /src/nss/lib/freebl/aes-x86.c
    functionUses: 0
    functionsReached:
    - EXPAND_KEY128
    - _mm_loadu_si128
    linkageType: ''
    returnType: void
    signature: void native_key_expansion128(AESContext *cx, const unsigned char *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - res
    - ','
    - k0
    - ','
    - kt
    - ','
    - rcon
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 47
    functionName: EXPAND_KEY192_PART1
    functionSourceFile: /src/nss/lib/freebl/aes-x86.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXPAND_KEY192_PART1(res, k0, kt, rcon)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - res
    - ','
    - k1
    - ','
    - k2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: EXPAND_KEY192_PART2
    functionSourceFile: /src/nss/lib/freebl/aes-x86.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXPAND_KEY192_PART2(res, k1, k2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - k0
    - ','
    - res1
    - ','
    - res2
    - ','
    - res3
    - ','
    - carry
    - ','
    - rcon1
    - ','
    - rcon2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 60
    functionName: EXPAND_KEY192
    functionSourceFile: /src/nss/lib/freebl/aes-x86.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXPAND_KEY192(k0, res1, res2, res3, carry, rcon1, rcon2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_loadu_si128
      Src: /src/nss/lib/freebl/aes-x86.c:69,1
    - Dst: _mm_loadu_si128
      Src: /src/nss/lib/freebl/aes-x86.c:70,1
    - Dst: EXPAND_KEY192
      Src: /src/nss/lib/freebl/aes-x86.c:71,1
    - Dst: EXPAND_KEY192_PART2
      Src: /src/nss/lib/freebl/aes-x86.c:73,1
    - Dst: EXPAND_KEY192
      Src: /src/nss/lib/freebl/aes-x86.c:74,1
    - Dst: EXPAND_KEY192_PART2
      Src: /src/nss/lib/freebl/aes-x86.c:76,1
    - Dst: EXPAND_KEY192
      Src: /src/nss/lib/freebl/aes-x86.c:77,1
    - Dst: EXPAND_KEY192_PART2
      Src: /src/nss/lib/freebl/aes-x86.c:79,1
    - Dst: EXPAND_KEY192
      Src: /src/nss/lib/freebl/aes-x86.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - cx
    - key
    argTypes:
    - AESContext*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 82
    functionName: native_key_expansion192
    functionSourceFile: /src/nss/lib/freebl/aes-x86.c
    functionUses: 0
    functionsReached:
    - EXPAND_KEY192
    - EXPAND_KEY192_PART2
    - _mm_loadu_si128
    linkageType: ''
    returnType: void
    signature: void native_key_expansion192(AESContext *cx, const unsigned char *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - res
    - ','
    - rconx
    - ','
    - k1x
    - ','
    - k2x
    - ','
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 91
    functionName: EXPAND_KEY256_PART
    functionSourceFile: /src/nss/lib/freebl/aes-x86.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXPAND_KEY256_PART(res, rconx, k1x, k2x, X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - res1
    - ','
    - res2
    - ','
    - k1
    - ','
    - k2
    - ','
    - rcon
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: EXPAND_KEY256
    functionSourceFile: /src/nss/lib/freebl/aes-x86.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXPAND_KEY256(res1, res2, k1, k2, rcon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_loadu_si128
      Src: /src/nss/lib/freebl/aes-x86.c:103,1
    - Dst: _mm_loadu_si128
      Src: /src/nss/lib/freebl/aes-x86.c:104,1
    - Dst: EXPAND_KEY256
      Src: /src/nss/lib/freebl/aes-x86.c:105,1
    - Dst: EXPAND_KEY256
      Src: /src/nss/lib/freebl/aes-x86.c:107,1
    - Dst: EXPAND_KEY256
      Src: /src/nss/lib/freebl/aes-x86.c:109,1
    - Dst: EXPAND_KEY256
      Src: /src/nss/lib/freebl/aes-x86.c:111,1
    - Dst: EXPAND_KEY256
      Src: /src/nss/lib/freebl/aes-x86.c:113,1
    - Dst: EXPAND_KEY256
      Src: /src/nss/lib/freebl/aes-x86.c:115,1
    - Dst: EXPAND_KEY256_PART
      Src: /src/nss/lib/freebl/aes-x86.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - cx
    - key
    argTypes:
    - AESContext*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 119
    functionName: native_key_expansion256
    functionSourceFile: /src/nss/lib/freebl/aes-x86.c
    functionUses: 0
    functionsReached:
    - EXPAND_KEY256
    - EXPAND_KEY256_PART
    - _mm_loadu_si128
    linkageType: ''
    returnType: void
    signature: void native_key_expansion256(AESContext *cx, const unsigned char *key)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: native_key_expansion128
      Src: /src/nss/lib/freebl/aes-x86.c:130,1
    - Dst: native_key_expansion192
      Src: /src/nss/lib/freebl/aes-x86.c:133,1
    - Dst: native_key_expansion256
      Src: /src/nss/lib/freebl/aes-x86.c:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - cx
    - key
    - Nk
    argTypes:
    - AESContext*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 142
    functionName: rijndael_native_key_expansion
    functionSourceFile: /src/nss/lib/freebl/aes-x86.c
    functionUses: 1
    functionsReached:
    - native_key_expansion256
    - native_key_expansion192
    - native_key_expansion128
    linkageType: ''
    returnType: void
    signature: "void rijndael_native_key_expansion(AESContext *cx, const unsigned
      char *key,\n                              unsigned int Nk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_loadu_si128
      Src: /src/nss/lib/freebl/aes-x86.c:150,1
    - Dst: _mm_xor_si128
      Src: /src/nss/lib/freebl/aes-x86.c:151,1
    - Dst: _mm_aesenc_si128
      Src: /src/nss/lib/freebl/aes-x86.c:153,1
    - Dst: _mm_aesenclast_si128
      Src: /src/nss/lib/freebl/aes-x86.c:155,1
    - Dst: _mm_storeu_si128
      Src: /src/nss/lib/freebl/aes-x86.c:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - cx
    - output
    - input
    argTypes:
    - AESContext*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 157
    functionName: rijndael_native_encryptBlock
    functionSourceFile: /src/nss/lib/freebl/aes-x86.c
    functionUses: 2
    functionsReached:
    - _mm_aesenc_si128
    - _mm_aesenclast_si128
    - _mm_xor_si128
    - _mm_storeu_si128
    - _mm_loadu_si128
    linkageType: ''
    returnType: void
    signature: "void rijndael_native_encryptBlock(AESContext *cx,\n                             unsigned
      char *output,\n                             const unsigned char *input)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_loadu_si128
      Src: /src/nss/lib/freebl/aes-x86.c:165,1
    - Dst: _mm_xor_si128
      Src: /src/nss/lib/freebl/aes-x86.c:166,1
    - Dst: _mm_aesdec_si128
      Src: /src/nss/lib/freebl/aes-x86.c:168,1
    - Dst: _mm_aesdeclast_si128
      Src: /src/nss/lib/freebl/aes-x86.c:170,1
    - Dst: _mm_storeu_si128
      Src: /src/nss/lib/freebl/aes-x86.c:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - cx
    - output
    - input
    argTypes:
    - AESContext*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 172
    functionName: rijndael_native_decryptBlock
    functionSourceFile: /src/nss/lib/freebl/aes-x86.c
    functionUses: 2
    functionsReached:
    - _mm_aesdeclast_si128
    - _mm_aesdec_si128
    - _mm_xor_si128
    - _mm_storeu_si128
    - _mm_loadu_si128
    linkageType: ''
    returnType: void
    signature: "void rijndael_native_decryptBlock(AESContext *cx,\n                             unsigned
      char *output,\n                             const unsigned char *input)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_loadu_si128
      Src: /src/nss/lib/freebl/aes-x86.c:180,1
    - Dst: _mm_loadu_si128
      Src: /src/nss/lib/freebl/aes-x86.c:181,1
    - Dst: _mm_xor_si128
      Src: /src/nss/lib/freebl/aes-x86.c:182,1
    - Dst: _mm_storeu_si128
      Src: /src/nss/lib/freebl/aes-x86.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - out
    - a
    - b
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 184
    functionName: native_xorBlock
    functionSourceFile: /src/nss/lib/freebl/aes-x86.c
    functionUses: 2
    functionsReached:
    - _mm_xor_si128
    - _mm_storeu_si128
    - _mm_loadu_si128
    linkageType: ''
    returnType: void
    signature: "void native_xorBlock(unsigned char *out,\n                const unsigned
      char *a,\n                const unsigned char *b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - PRUint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 23
    functionName: swap8b
    functionSourceFile: /src/nss/lib/freebl/crypto_primitives.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRUint64
    signature: PRUint64 swap8b(PRUint64 value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - PRUint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 34
    functionName: swap8b
    functionSourceFile: /src/nss/lib/freebl/crypto_primitives.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRUint64
    signature: PRUint64 swap8b(PRUint64 x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: LSB
    functionSourceFile: /src/nss/lib/freebl/lowhash_vector.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LSB(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: MSB
    functionSourceFile: /src/nss/lib/freebl/lowhash_vector.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MSB(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: PR_GetDirectorySeparator
    functionSourceFile: /src/nss/lib/freebl/lowhash_vector.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PR_GetDirectorySeparator()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - libspec
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: PR_LoadLibraryWithFlags
    functionSourceFile: /src/nss/lib/freebl/lowhash_vector.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PR_LoadLibraryWithFlags(libspec, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - addr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: PR_GetLibraryFilePathname
    functionSourceFile: /src/nss/lib/freebl/lowhash_vector.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PR_GetLibraryFilePathname(name, addr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dladdr
      Src: /src/nss/lib/freebl/lowhash_vector.c:50,1
    - Dst: strdup
      Src: /src/nss/lib/freebl/lowhash_vector.c:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - addr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 54
    functionName: freebl_lowhash_getLibraryFilePath
    functionSourceFile: /src/nss/lib/freebl/lowhash_vector.c
    functionUses: 0
    functionsReached:
    - dladdr
    - strdup
    linkageType: ''
    returnType: char
    signature: 'char *

      freebl_lowhash_getLibraryFilePath(void *addr)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getLibName
      Src: /src/nss/lib/freebl/lowhash_vector.c:73,1
    - Dst: loader_LoadLibrary
      Src: /src/nss/lib/freebl/lowhash_vector.c:79,1
    - Dst: dlsym
      Src: /src/nss/lib/freebl/lowhash_vector.c:81,1
    - Dst: getVector
      Src: /src/nss/lib/freebl/lowhash_vector.c:84,1
    - Dst: MSB
      Src: /src/nss/lib/freebl/lowhash_vector.c:88,1
    - Dst: MSB
      Src: /src/nss/lib/freebl/lowhash_vector.c:88,1
    - Dst: LSB
      Src: /src/nss/lib/freebl/lowhash_vector.c:89,1
    - Dst: LSB
      Src: /src/nss/lib/freebl/lowhash_vector.c:89,1
    - Dst: dlclose
      Src: /src/nss/lib/freebl/lowhash_vector.c:98,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 101
    functionName: freebl_LoadDSO
    functionSourceFile: /src/nss/lib/freebl/lowhash_vector.c
    functionUses: 0
    functionsReached:
    - dlclose
    - dlsym
    - MSB
    - getVector
    - LSB
    - getLibName
    - loader_LoadLibrary
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus freebl_LoadDSO(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __sync_lock_test_and_set
      Src: /src/nss/lib/freebl/lowhash_vector.c:113,1
    - Dst: freebl_LoadDSO
      Src: /src/nss/lib/freebl/lowhash_vector.c:114,1
    - Dst: sleep
      Src: /src/nss/lib/freebl/lowhash_vector.c:122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 125
    functionName: freebl_RunLoaderOnce
    functionSourceFile: /src/nss/lib/freebl/lowhash_vector.c
    functionUses: 0
    functionsReached:
    - __sync_lock_test_and_set
    - freebl_LoadDSO
    - sleep
    linkageType: ''
    returnType: void
    signature: void freebl_RunLoaderOnce(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/lowhash_vector.c:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 134
    functionName: freebl_InitVector
    functionSourceFile: /src/nss/lib/freebl/lowhash_vector.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: NSSLOWVector
    signature: 'NSSLOWVector *

      freebl_InitVector(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_InitVector
      Src: /src/nss/lib/freebl/lowhash_vector.c:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 143
    functionName: FREEBL_GetVector
    functionSourceFile: /src/nss/lib/freebl/lowhash_vector.c
    functionUses: 0
    functionsReached:
    - freebl_InitVector
    linkageType: ''
    returnType: FREEBLVector
    signature: 'FREEBLVector *

      FREEBL_GetVector(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_InitVector
      Src: /src/nss/lib/freebl/lowhash_vector.c:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 152
    functionName: NSSLOW_Init
    functionSourceFile: /src/nss/lib/freebl/lowhash_vector.c
    functionUses: 1
    functionsReached:
    - freebl_InitVector
    linkageType: ''
    returnType: NSSLOWInitContext
    signature: 'NSSLOWInitContext *

      NSSLOW_Init(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_InitVector
      Src: /src/nss/lib/freebl/lowhash_vector.c:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - context
    argTypes:
    - NSSLOWInitContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 160
    functionName: NSSLOW_Shutdown
    functionSourceFile: /src/nss/lib/freebl/lowhash_vector.c
    functionUses: 3
    functionsReached:
    - freebl_InitVector
    linkageType: ''
    returnType: void
    signature: void NSSLOW_Shutdown(NSSLOWInitContext *context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_InitVector
      Src: /src/nss/lib/freebl/lowhash_vector.c:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - context
    argTypes:
    - NSSLOWInitContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 168
    functionName: NSSLOW_Reset
    functionSourceFile: /src/nss/lib/freebl/lowhash_vector.c
    functionUses: 0
    functionsReached:
    - freebl_InitVector
    linkageType: ''
    returnType: void
    signature: void NSSLOW_Reset(NSSLOWInitContext *context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_InitVector
      Src: /src/nss/lib/freebl/lowhash_vector.c:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - initContext
    - hashType
    argTypes:
    - NSSLOWInitContext*
    - HASH_HashType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 179
    functionName: NSSLOWHASH_NewContext
    functionSourceFile: /src/nss/lib/freebl/lowhash_vector.c
    functionUses: 2
    functionsReached:
    - freebl_InitVector
    linkageType: ''
    returnType: NSSLOWHASHContext
    signature: "NSSLOWHASHContext *\nNSSLOWHASH_NewContext(\n    NSSLOWInitContext
      *initContext,\n    HASH_HashType hashType)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_InitVector
      Src: /src/nss/lib/freebl/lowhash_vector.c:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - context
    argTypes:
    - NSSLOWHASHContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 187
    functionName: NSSLOWHASH_Begin
    functionSourceFile: /src/nss/lib/freebl/lowhash_vector.c
    functionUses: 2
    functionsReached:
    - freebl_InitVector
    linkageType: ''
    returnType: void
    signature: void NSSLOWHASH_Begin(NSSLOWHASHContext *context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_InitVector
      Src: /src/nss/lib/freebl/lowhash_vector.c:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - context
    - buf
    - len
    argTypes:
    - NSSLOWHASHContext*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 197
    functionName: NSSLOWHASH_Update
    functionSourceFile: /src/nss/lib/freebl/lowhash_vector.c
    functionUses: 2
    functionsReached:
    - freebl_InitVector
    linkageType: ''
    returnType: void
    signature: "void NSSLOWHASH_Update(NSSLOWHASHContext *context,\n                  const
      unsigned char *buf,\n                  unsigned int len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_InitVector
      Src: /src/nss/lib/freebl/lowhash_vector.c:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - context
    - buf
    - ret
    - len
    argTypes:
    - NSSLOWHASHContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 207
    functionName: NSSLOWHASH_End
    functionSourceFile: /src/nss/lib/freebl/lowhash_vector.c
    functionUses: 2
    functionsReached:
    - freebl_InitVector
    linkageType: ''
    returnType: void
    signature: "void NSSLOWHASH_End(NSSLOWHASHContext *context,\n               unsigned
      char *buf,\n               unsigned int *ret, unsigned int len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_InitVector
      Src: /src/nss/lib/freebl/lowhash_vector.c:212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - context
    argTypes:
    - NSSLOWHASHContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 215
    functionName: NSSLOWHASH_Destroy
    functionSourceFile: /src/nss/lib/freebl/lowhash_vector.c
    functionUses: 2
    functionsReached:
    - freebl_InitVector
    linkageType: ''
    returnType: void
    signature: void NSSLOWHASH_Destroy(NSSLOWHASHContext *context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_InitVector
      Src: /src/nss/lib/freebl/lowhash_vector.c:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - context
    argTypes:
    - NSSLOWHASHContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 224
    functionName: NSSLOWHASH_Length
    functionSourceFile: /src/nss/lib/freebl/lowhash_vector.c
    functionUses: 0
    functionsReached:
    - freebl_InitVector
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int NSSLOWHASH_Length(NSSLOWHASHContext *context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ec.c:29,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - px
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 33
    functionName: ec_ED25519_pt_validate
    functionSourceFile: /src/nss/lib/freebl/ec.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ec_ED25519_pt_validate(const SECItem *px)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ec.c:39,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - scalar
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 44
    functionName: ec_ED25519_scalar_validate
    functionSourceFile: /src/nss/lib/freebl/ec.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ec_ED25519_scalar_validate(const SECItem *scalar)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - ECCurveName
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 95
    functionName: ec_get_method_from_name
    functionSourceFile: /src/nss/lib/freebl/ec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ECMethod
    signature: 'ECMethod *

      ec_get_method_from_name(ECCurveName name)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ec.c:112,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ec.c:117,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/freebl/ec.c:122,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/freebl/ec.c:125,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/freebl/ec.c:131,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/ec.c:141,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/freebl/ec.c:141,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/ec.c:146,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/freebl/ec.c:146,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/ec.c:148,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/freebl/ec.c:148,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/ec.c:150,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/freebl/ec.c:150,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/ec.c:152,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/freebl/ec.c:152,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/ec.c:154,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/freebl/ec.c:154,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/ec.c:157,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/freebl/ec.c:157,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/ec.c:160,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/freebl/ec.c:160,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/freebl/ec.c:163,1
    - Dst: EC_GetPointSize
      Src: /src/nss/lib/freebl/ec.c:163,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/freebl/ec.c:165,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/ec.c:169,1
    - Dst: memset
      Src: /src/nss/lib/freebl/ec.c:171,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/ec.c:172,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/ec.c:179,1
    - Dst: ED_DerivePublicKey
      Src: /src/nss/lib/freebl/ec.c:179,1
    - Dst: ec_get_method_from_name
      Src: /src/nss/lib/freebl/ec.c:181,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ec.c:183,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/ec.c:187,1
    - Dst: ECMethod*::pt_mul
      Src: /src/nss/lib/freebl/ec.c:187,1
    - Dst: NSS_DECLASSIFY
      Src: /src/nss/lib/freebl/ec.c:190,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/freebl/ec.c:195,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 62
    argCount: 4
    argNames:
    - ecParams
    - privKey
    - privKeyBytes
    - privKeyLen
    argTypes:
    - ECParams*
    - ECPrivateKey**
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 197
    functionName: ec_NewKey
    functionSourceFile: /src/nss/lib/freebl/ec.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - ec_get_method_from_name
    - PORT_FreeArena
    - CHECK_SEC_OK
    - ED_DerivePublicKey
    - SECITEM_AllocItem
    - SECITEM_CopyItem
    - PORT_SetError
    - memset
    - EC_GetPointSize
    - NSS_DECLASSIFY
    - ECMethod*::pt_mul
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ec_NewKey(ECParams *ecParams, ECPrivateKey **privKey,\n
      \         const unsigned char *privKeyBytes, int privKeyLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ec_NewKey
      Src: /src/nss/lib/freebl/ec.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ecParams
    - privKey
    - seed
    - seedlen
    argTypes:
    - ECParams*
    - ECPrivateKey**
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 209
    functionName: EC_NewKeyFromSeed
    functionSourceFile: /src/nss/lib/freebl/ec.c
    functionUses: 2
    functionsReached:
    - ec_NewKey
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus EC_NewKeyFromSeed(ECParams *ecParams, ECPrivateKey **privKey,\n
      \                 const unsigned char *seed, int seedlen)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: EC_GetScalarSize
      Src: /src/nss/lib/freebl/ec.c:221,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ec.c:224,1
    - Dst: ec_get_method_from_name
      Src: /src/nss/lib/freebl/ec.c:228,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ec.c:230,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ec.c:246,1
    - Dst: RNG_GenerateGlobalRandomBytes
      Src: /src/nss/lib/freebl/ec.c:253,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ec.c:255,1
    - Dst: NSS_CLASSIFY
      Src: /src/nss/lib/freebl/ec.c:259,1
    - Dst: ECMethod*::scalar_validate
      Src: /src/nss/lib/freebl/ec.c:260,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ec.c:264,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 2
    argNames:
    - ecParams
    - privKey
    argTypes:
    - ECParams*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 268
    functionName: ec_GenerateRandomPrivateKey
    functionSourceFile: /src/nss/lib/freebl/ec.c
    functionUses: 0
    functionsReached:
    - ECMethod*::scalar_validate
    - ec_get_method_from_name
    - PORT_SetError
    - RNG_GenerateGlobalRandomBytes
    - EC_GetScalarSize
    - NSS_CLASSIFY
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ec_GenerateRandomPrivateKey(ECParams *ecParams, SECItem *privKey)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ec.c:281,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/freebl/ec.c:285,1
    - Dst: EC_GetScalarSize
      Src: /src/nss/lib/freebl/ec.c:285,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ec.c:287,1
    - Dst: ec_GenerateRandomPrivateKey
      Src: /src/nss/lib/freebl/ec.c:291,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/ec.c:296,1
    - Dst: ec_NewKey
      Src: /src/nss/lib/freebl/ec.c:296,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/freebl/ec.c:300,1
    - Dst: printf
      Src: /src/nss/lib/freebl/ec.c:303,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 2
    argNames:
    - ecParams
    - privKey
    argTypes:
    - ECParams*
    - ECPrivateKey**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 274
    functionDepth: 2
    functionLinenumber: 274
    functionLinenumberEnd: 308
    functionName: EC_NewKey
    functionSourceFile: /src/nss/lib/freebl/ec.c
    functionUses: 6
    functionsReached:
    - CHECK_SEC_OK
    - printf
    - SECITEM_AllocItem
    - PORT_SetError
    - ec_NewKey
    - EC_GetScalarSize
    - SECITEM_ZfreeItem
    - ec_GenerateRandomPrivateKey
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus EC_NewKey(ECParams *ecParams, ECPrivateKey **privKey)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ec.c:321,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ec.c:327,1
    - Dst: ec_get_method_from_name
      Src: /src/nss/lib/freebl/ec.c:331,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ec.c:334,1
    - Dst: ECMethod*::pt_validate
      Src: /src/nss/lib/freebl/ec.c:338,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ec.c:340,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 2
    argNames:
    - ecParams
    - publicValue
    argTypes:
    - ECParams*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 343
    functionName: EC_ValidatePublicKey
    functionSourceFile: /src/nss/lib/freebl/ec.c
    functionUses: 9
    functionsReached:
    - PORT_SetError
    - ECMethod*::pt_validate
    - ec_get_method_from_name
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus EC_ValidatePublicKey(ECParams *ecParams, SECItem *publicValue)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ec.c:365,1
    - Dst: EC_ValidatePublicKey
      Src: /src/nss/lib/freebl/ec.c:373,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ec.c:374,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ec.c:380,1
    - Dst: ec_get_method_from_name
      Src: /src/nss/lib/freebl/ec.c:384,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ec.c:387,1
    - Dst: memset
      Src: /src/nss/lib/freebl/ec.c:391,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/freebl/ec.c:392,1
    - Dst: EC_GetScalarSize
      Src: /src/nss/lib/freebl/ec.c:392,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ec.c:394,1
    - Dst: ECMethod*::pt_mul
      Src: /src/nss/lib/freebl/ec.c:398,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ec.c:400,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/freebl/ec.c:401,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 28
    argCount: 5
    argNames:
    - publicValue
    - ecParams
    - privateValue
    - withCofactor
    - derivedSecret
    argTypes:
    - SECItem*
    - ECParams*
    - SECItem*
    - PRBool
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 404
    functionName: ECDH_Derive
    functionSourceFile: /src/nss/lib/freebl/ec.c
    functionUses: 5
    functionsReached:
    - EC_ValidatePublicKey
    - ec_get_method_from_name
    - SECITEM_AllocItem
    - memset
    - PORT_SetError
    - EC_GetScalarSize
    - ECMethod*::pt_mul
    - SECITEM_ZfreeItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ECDH_Derive(SECItem *publicValue,\n            ECParams
      *ecParams,\n            SECItem *privateValue,\n            PRBool withCofactor,\n
      \           SECItem *derivedSecret)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ec.c:420,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ec.c:432,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ec.c:438,1
    - Dst: ec_get_method_from_name
      Src: /src/nss/lib/freebl/ec.c:442,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ec.c:444,1
    - Dst: ECMethod*::sign_digest
      Src: /src/nss/lib/freebl/ec.c:448,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ec.c:450,1
    - Dst: printf
      Src: /src/nss/lib/freebl/ec.c:454,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 5
    argNames:
    - key
    - signature
    - digest
    - kb
    - kblen
    argTypes:
    - ECPrivateKey*
    - SECItem*
    - SECItem*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 458
    functionName: ec_SignDigestWithSeed
    functionSourceFile: /src/nss/lib/freebl/ec.c
    functionUses: 0
    functionsReached:
    - ECMethod*::sign_digest
    - PORT_SetError
    - printf
    - ec_get_method_from_name
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ec_SignDigestWithSeed(ECPrivateKey *key, SECItem *signature,\n
      \                     const SECItem *digest, const unsigned char *kb, const
      int kblen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/freebl/ec.c:465,1
    - Dst: ec_SignDigestWithSeed
      Src: /src/nss/lib/freebl/ec.c:466,1
    - Dst: ec_SignDigestWithSeed
      Src: /src/nss/lib/freebl/ec.c:467,1
    - Dst: NSS_SecureMemcmp
      Src: /src/nss/lib/freebl/ec.c:468,1
    - Dst: printf
      Src: /src/nss/lib/freebl/ec.c:478,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/freebl/ec.c:481,1
    - Dst: ec_SignDigestWithSeed
      Src: /src/nss/lib/freebl/ec.c:484,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 5
    argNames:
    - key
    - signature
    - digest
    - kb
    - kblen
    argTypes:
    - ECPrivateKey*
    - SECItem*
    - SECItem*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 460
    functionDepth: 2
    functionLinenumber: 460
    functionLinenumberEnd: 486
    functionName: ECDSA_SignDigestWithSeed
    functionSourceFile: /src/nss/lib/freebl/ec.c
    functionUses: 2
    functionsReached:
    - ec_SignDigestWithSeed
    - printf
    - SECITEM_AllocItem
    - NSS_SecureMemcmp
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ECDSA_SignDigestWithSeed(ECPrivateKey *key, SECItem *signature,\n
      \                        const SECItem *digest, const unsigned char *kb, const
      int kblen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ec.c:498,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/freebl/ec.c:503,1
    - Dst: EC_GetScalarSize
      Src: /src/nss/lib/freebl/ec.c:503,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ec.c:505,1
    - Dst: ec_GenerateRandomPrivateKey
      Src: /src/nss/lib/freebl/ec.c:509,1
    - Dst: ECDSA_SignDigestWithSeed
      Src: /src/nss/lib/freebl/ec.c:515,1
    - Dst: NSS_DECLASSIFY
      Src: /src/nss/lib/freebl/ec.c:516,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/freebl/ec.c:519,1
    - Dst: printf
      Src: /src/nss/lib/freebl/ec.c:522,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - key
    - signature
    - digest
    argTypes:
    - ECPrivateKey*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 492
    functionDepth: 2
    functionLinenumber: 492
    functionLinenumberEnd: 527
    functionName: ECDSA_SignDigest
    functionSourceFile: /src/nss/lib/freebl/ec.c
    functionUses: 3
    functionsReached:
    - printf
    - ECDSA_SignDigestWithSeed
    - SECITEM_AllocItem
    - PORT_SetError
    - EC_GetScalarSize
    - NSS_DECLASSIFY
    - SECITEM_ZfreeItem
    - ec_GenerateRandomPrivateKey
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ECDSA_SignDigest(ECPrivateKey *key, SECItem *signature, const
      SECItem *digest)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ec.c:546,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ec.c:554,1
    - Dst: ec_get_method_from_name
      Src: /src/nss/lib/freebl/ec.c:558,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ec.c:560,1
    - Dst: ECMethod*::verify_digest
      Src: /src/nss/lib/freebl/ec.c:564,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ec.c:566,1
    - Dst: printf
      Src: /src/nss/lib/freebl/ec.c:570,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - key
    - signature
    - digest
    argTypes:
    - ECPublicKey*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 537
    functionDepth: 1
    functionLinenumber: 537
    functionLinenumberEnd: 575
    functionName: ECDSA_VerifyDigest
    functionSourceFile: /src/nss/lib/freebl/ec.c
    functionUses: 3
    functionsReached:
    - ECMethod*::verify_digest
    - PORT_SetError
    - printf
    - ec_get_method_from_name
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ECDSA_VerifyDigest(ECPublicKey *key, const SECItem *signature,\n
      \                  const SECItem *digest)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ec.c:587,1
    - Dst: ec_ED25519_pt_validate
      Src: /src/nss/lib/freebl/ec.c:590,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - key
    argTypes:
    - ECPublicKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 583
    functionDepth: 1
    functionLinenumber: 583
    functionLinenumberEnd: 591
    functionName: ec_ED25519_public_key_validate
    functionSourceFile: /src/nss/lib/freebl/ec.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - ec_ED25519_pt_validate
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ec_ED25519_public_key_validate(const ECPublicKey *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ec.c:598,1
    - Dst: ec_ED25519_scalar_validate
      Src: /src/nss/lib/freebl/ec.c:601,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - key
    argTypes:
    - ECPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 593
    functionDepth: 1
    functionLinenumber: 593
    functionLinenumberEnd: 602
    functionName: ec_ED25519_private_key_validate
    functionSourceFile: /src/nss/lib/freebl/ec.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - ec_ED25519_scalar_validate
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ec_ED25519_private_key_validate(const ECPrivateKey *key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ec.c:608,1
    - Dst: ec_ED25519_private_key_validate
      Src: /src/nss/lib/freebl/ec.c:612,1
    - Dst: Hacl_Ed25519_sign
      Src: /src/nss/lib/freebl/ec.c:617,1
    - Dst: BLAPI_CLEAR_STACK
      Src: /src/nss/lib/freebl/ec.c:621,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - key
    - signature
    - msg
    argTypes:
    - ECPrivateKey*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 604
    functionDepth: 2
    functionLinenumber: 604
    functionLinenumberEnd: 623
    functionName: ED_SignMessage
    functionSourceFile: /src/nss/lib/freebl/ec.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - Hacl_Ed25519_sign
    - BLAPI_CLEAR_STACK
    - ec_ED25519_private_key_validate
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ED_SignMessage(ECPrivateKey *key, SECItem *signature, const
      SECItem *msg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ec.c:634,1
    - Dst: ec_ED25519_public_key_validate
      Src: /src/nss/lib/freebl/ec.c:638,1
    - Dst: Hacl_Ed25519_verify
      Src: /src/nss/lib/freebl/ec.c:642,1
    - Dst: BLAPI_CLEAR_STACK
      Src: /src/nss/lib/freebl/ec.c:644,1
    - Dst: printf
      Src: /src/nss/lib/freebl/ec.c:647,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ec.c:655,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - key
    - signature
    - msg
    argTypes:
    - ECPublicKey*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 629
    functionDepth: 2
    functionLinenumber: 629
    functionLinenumberEnd: 657
    functionName: ED_VerifyMessage
    functionSourceFile: /src/nss/lib/freebl/ec.c
    functionUses: 0
    functionsReached:
    - Hacl_Ed25519_verify
    - ec_ED25519_public_key_validate
    - printf
    - PORT_SetError
    - BLAPI_CLEAR_STACK
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ED_VerifyMessage(ECPublicKey *key, const SECItem *signature,\n
      \                const SECItem *msg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ec.c:664,1
    - Dst: ec_ED25519_scalar_validate
      Src: /src/nss/lib/freebl/ec.c:668,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ec.c:669,1
    - Dst: Hacl_Ed25519_secret_to_public
      Src: /src/nss/lib/freebl/ec.c:673,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - privateKey
    - publicKey
    argTypes:
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 659
    functionDepth: 1
    functionLinenumber: 659
    functionLinenumberEnd: 675
    functionName: ED_DerivePublicKey
    functionSourceFile: /src/nss/lib/freebl/ec.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    - Hacl_Ed25519_secret_to_public
    - ec_ED25519_scalar_validate
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ED_DerivePublicKey(const SECItem *privateKey, SECItem *publicKey)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ec.c:683,1
    - Dst: ec_get_method_from_name
      Src: /src/nss/lib/freebl/ec.c:687,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ec.c:689,1
    - Dst: ECMethod*::pt_mul
      Src: /src/nss/lib/freebl/ec.c:693,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - privateKey
    - publicKey
    argTypes:
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 677
    functionDepth: 1
    functionLinenumber: 677
    functionLinenumberEnd: 695
    functionName: X25519_DerivePublicKey
    functionSourceFile: /src/nss/lib/freebl/ec.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - ECMethod*::pt_mul
    - ec_get_method_from_name
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus X25519_DerivePublicKey(const SECItem *privateKey, SECItem
      *publicKey)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EC_GetPointSize
      Src: /src/nss/lib/freebl/ec.c:700,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ec.c:701,1
    - Dst: ec_get_method_from_name
      Src: /src/nss/lib/freebl/ec.c:705,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ec.c:707,1
    - Dst: ECMethod*::pt_mul
      Src: /src/nss/lib/freebl/ec.c:711,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 3
    argNames:
    - privateKey
    - ecParams
    - publicKey
    argTypes:
    - SECItem*
    - ECParams*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 697
    functionDepth: 1
    functionLinenumber: 697
    functionLinenumberEnd: 712
    functionName: EC_DerivePublicKey
    functionSourceFile: /src/nss/lib/freebl/ec.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - ECMethod*::pt_mul
    - EC_GetPointSize
    - ec_get_method_from_name
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus EC_DerivePublicKey(const SECItem *privateKey, const ECParams
      *ecParams, SECItem *publicKey)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 19
    functionName: CHECK_OK
    functionSourceFile: /src/nss/lib/freebl/ecdecode.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_OK(func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: CHECK_SEC_OK
    functionSourceFile: /src/nss/lib/freebl/ecdecode.c
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_SEC_OK(func)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/ecdecode.c:35,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/freebl/ecdecode.c:35,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/ecdecode.c:40,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/freebl/ecdecode.c:40,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/ecdecode.c:42,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/freebl/ecdecode.c:42,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/ecdecode.c:44,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/freebl/ecdecode.c:44,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/ecdecode.c:46,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/freebl/ecdecode.c:46,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/ecdecode.c:48,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/freebl/ecdecode.c:48,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/ecdecode.c:50,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/freebl/ecdecode.c:50,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/ecdecode.c:53,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/freebl/ecdecode.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 3
    argNames:
    - arena
    - dstParams
    - srcParams
    argTypes:
    - PLArenaPool*
    - ECParams*
    - ECParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 61
    functionName: EC_CopyParams
    functionSourceFile: /src/nss/lib/freebl/ecdecode.c
    functionUses: 2
    functionsReached:
    - CHECK_SEC_OK
    - SECITEM_CopyItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus EC_CopyParams(PLArenaPool *arena, ECParams *dstParams,\n
      \             const ECParams *srcParams)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OK
      Src: /src/nss/lib/freebl/ecdecode.c:73,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 3
    argNames:
    - name
    - field_type
    - params
    argTypes:
    - ECCurveName
    - ECFieldType
    - ECParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 95
    functionName: gf_populate_params_bytes
    functionSourceFile: /src/nss/lib/freebl/ecdecode.c
    functionUses: 0
    functionsReached:
    - CHECK_OK
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus gf_populate_params_bytes(ECCurveName name, ECFieldType field_type,
      ECParams *params)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/lib/freebl/ecdecode.c:108,1
    - Dst: printf
      Src: /src/nss/lib/freebl/ecdecode.c:110,1
    - Dst: printf
      Src: /src/nss/lib/freebl/ecdecode.c:112,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecdecode.c:119,1
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/freebl/ecdecode.c:126,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecdecode.c:127,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/freebl/ecdecode.c:138,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/ecdecode.c:141,1
    - Dst: printf
      Src: /src/nss/lib/freebl/ecdecode.c:144,1
    - Dst: SECOID_FindOIDTagDescription
      Src: /src/nss/lib/freebl/ecdecode.c:144,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/ecdecode.c:152,1
    - Dst: gf_populate_params_bytes
      Src: /src/nss/lib/freebl/ecdecode.c:152,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/ecdecode.c:160,1
    - Dst: gf_populate_params_bytes
      Src: /src/nss/lib/freebl/ecdecode.c:160,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/ecdecode.c:168,1
    - Dst: gf_populate_params_bytes
      Src: /src/nss/lib/freebl/ecdecode.c:168,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/ecdecode.c:174,1
    - Dst: gf_populate_params_bytes
      Src: /src/nss/lib/freebl/ecdecode.c:174,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/ecdecode.c:183,1
    - Dst: gf_populate_params_bytes
      Src: /src/nss/lib/freebl/ecdecode.c:183,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecdecode.c:194,1
    - Dst: printf
      Src: /src/nss/lib/freebl/ecdecode.c:196,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 58
    argCount: 3
    argNames:
    - arena
    - encodedParams
    - params
    argTypes:
    - PLArenaPool*
    - SECItem*
    - ECParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 201
    functionName: EC_FillParams
    functionSourceFile: /src/nss/lib/freebl/ecdecode.c
    functionUses: 2
    functionsReached:
    - memcpy
    - SECOID_FindOIDTagDescription
    - PORT_ArenaAlloc
    - gf_populate_params_bytes
    - printf
    - CHECK_SEC_OK
    - SECOID_FindOIDTag
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus EC_FillParams(PLArenaPool *arena, const SECItem *encodedParams,\n
      \             ECParams *params)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/freebl/ecdecode.c:211,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/freebl/ecdecode.c:214,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/freebl/ecdecode.c:216,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/freebl/ecdecode.c:221,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/ecdecode.c:223,1
    - Dst: EC_FillParams
      Src: /src/nss/lib/freebl/ecdecode.c:228,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/freebl/ecdecode.c:230,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - encodedParams
    - ecparams
    argTypes:
    - SECItem*
    - ECParams**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 237
    functionName: EC_DecodeParams
    functionSourceFile: /src/nss/lib/freebl/ecdecode.c
    functionUses: 8
    functionsReached:
    - memcpy
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - PORT_FreeArena
    - SECITEM_AllocItem
    - EC_FillParams
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus EC_DecodeParams(const SECItem *encodedParams, ECParams **ecparams)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - params
    argTypes:
    - ECParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 258
    functionName: EC_GetPointSize
    functionSourceFile: /src/nss/lib/freebl/ecdecode.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EC_GetPointSize(const ECParams *params)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - params
    argTypes:
    - ECParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 273
    functionName: EC_GetScalarSize
    functionSourceFile: /src/nss/lib/freebl/ecdecode.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int EC_GetScalarSize(const ECParams *params)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/lib/freebl/rsa_blind.c:34,1
    - Dst: printf
      Src: /src/nss/lib/freebl/rsa_blind.c:35,1
    - Dst: printf
      Src: /src/nss/lib/freebl/rsa_blind.c:37,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - m
    - t
    argTypes:
    - PRUint8*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 38
    functionName: rsaBlind_Print
    functionSourceFile: /src/nss/lib/freebl/rsa_blind.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void rsaBlind_Print(PRUint8* m, size_t t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/rsa_blind.c:43,1
    - Dst: printf
      Src: /src/nss/lib/freebl/rsa_blind.c:45,1
    - Dst: printf
      Src: /src/nss/lib/freebl/rsa_blind.c:46,1
    - Dst: MP_DIGIT
      Src: /src/nss/lib/freebl/rsa_blind.c:46,1
    - Dst: printf
      Src: /src/nss/lib/freebl/rsa_blind.c:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - mp
    argTypes:
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 49
    functionName: mp_print_buf
    functionSourceFile: /src/nss/lib/freebl/rsa_blind.c
    functionUses: 0
    functionsReached:
    - MP_DIGIT
    - printf
    - MP_USED
    linkageType: ''
    returnType: void
    signature: void mp_print_buf(mp_int* mp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsa_blind.c:77,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsa_blind.c:84,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/rsa_blind.c:87,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsa_blind.c:94,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsa_blind.c:98,1
    - Dst: RNG_GenerateGlobalRandomBytes
      Src: /src/nss/lib/freebl/rsa_blind.c:102,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/rsa_blind.c:104,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 5
    argNames:
    - preparedMessage
    - preparedMessageLen
    - msg
    - msgLen
    - isDeterministic
    argTypes:
    - PRUint8*
    - size_t
    - PRUint8*
    - size_t
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 108
    functionName: RSABlinding_Prepare
    functionSourceFile: /src/nss/lib/freebl/rsa_blind.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - RNG_GenerateGlobalRandomBytes
    - PORT_Memcpy
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus RSABlinding_Prepare(PRUint8* preparedMessage, size_t preparedMessageLen,
      const PRUint8* msg,\n                    size_t msgLen, PRBool isDeterministic)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsa_blind.c:135,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsa_blind.c:143,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsa_blind.c:148,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsa_blind.c:153,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/freebl/rsa_blind.c:157,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/freebl/rsa_blind.c:158,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/freebl/rsa_blind.c:159,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa_blind.c:162,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa_blind.c:163,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa_blind.c:164,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa_blind.c:165,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa_blind.c:166,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa_blind.c:167,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa_blind.c:168,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa_blind.c:170,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa_blind.c:170,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa_blind.c:171,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa_blind.c:171,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa_blind.c:172,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa_blind.c:172,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa_blind.c:173,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa_blind.c:173,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa_blind.c:174,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa_blind.c:174,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa_blind.c:175,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa_blind.c:175,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa_blind.c:176,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa_blind.c:176,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa_blind.c:178,1
    - Dst: mp_read_unsigned_octets
      Src: /src/nss/lib/freebl/rsa_blind.c:178,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa_blind.c:183,1
    - Dst: mp_2expt
      Src: /src/nss/lib/freebl/rsa_blind.c:183,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa_blind.c:184,1
    - Dst: mp_sub_d
      Src: /src/nss/lib/freebl/rsa_blind.c:184,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa_blind.c:186,1
    - Dst: mpp_random_secure
      Src: /src/nss/lib/freebl/rsa_blind.c:186,1
    - Dst: mp_cmp
      Src: /src/nss/lib/freebl/rsa_blind.c:190,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa_blind.c:191,1
    - Dst: mp_init_copy
      Src: /src/nss/lib/freebl/rsa_blind.c:191,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa_blind.c:193,1
    - Dst: mp_read_unsigned_octets
      Src: /src/nss/lib/freebl/rsa_blind.c:193,1
    - Dst: PQG_HashBuf
      Src: /src/nss/lib/freebl/rsa_blind.c:198,1
    - Dst: RSA_EMSAEncodePSS
      Src: /src/nss/lib/freebl/rsa_blind.c:203,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsa_blind.c:207,1
    - Dst: printf
      Src: /src/nss/lib/freebl/rsa_blind.c:212,1
    - Dst: rsaBlind_Print
      Src: /src/nss/lib/freebl/rsa_blind.c:213,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa_blind.c:217,1
    - Dst: mp_read_unsigned_octets
      Src: /src/nss/lib/freebl/rsa_blind.c:217,1
    - Dst: mp_invmod
      Src: /src/nss/lib/freebl/rsa_blind.c:223,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsa_blind.c:225,1
    - Dst: printf
      Src: /src/nss/lib/freebl/rsa_blind.c:232,1
    - Dst: mp_print_buf
      Src: /src/nss/lib/freebl/rsa_blind.c:233,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa_blind.c:237,1
    - Dst: mp_to_fixlen_octets
      Src: /src/nss/lib/freebl/rsa_blind.c:237,1
    - Dst: RSA_PublicKeyOp
      Src: /src/nss/lib/freebl/rsa_blind.c:238,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa_blind.c:242,1
    - Dst: mp_read_unsigned_octets
      Src: /src/nss/lib/freebl/rsa_blind.c:242,1
    - Dst: printf
      Src: /src/nss/lib/freebl/rsa_blind.c:245,1
    - Dst: mp_print_buf
      Src: /src/nss/lib/freebl/rsa_blind.c:246,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa_blind.c:250,1
    - Dst: mp_mulmod
      Src: /src/nss/lib/freebl/rsa_blind.c:250,1
    - Dst: printf
      Src: /src/nss/lib/freebl/rsa_blind.c:253,1
    - Dst: mp_print_buf
      Src: /src/nss/lib/freebl/rsa_blind.c:254,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa_blind.c:257,1
    - Dst: mp_to_fixlen_octets
      Src: /src/nss/lib/freebl/rsa_blind.c:257,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa_blind.c:258,1
    - Dst: mp_to_fixlen_octets
      Src: /src/nss/lib/freebl/rsa_blind.c:258,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa_blind.c:261,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa_blind.c:262,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa_blind.c:263,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa_blind.c:264,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa_blind.c:265,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa_blind.c:266,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa_blind.c:267,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/rsa_blind.c:269,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/rsa_blind.c:270,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/rsa_blind.c:271,1
    - Dst: MP_TO_SEC_ERROR
      Src: /src/nss/lib/freebl/rsa_blind.c:274,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 102
    argCount: 12
    argNames:
    - hashAlg
    - blindedMsg
    - blindedMsgLen
    - inv
    - invLen
    - msg
    - msgLen
    - salt
    - saltLen
    - pkS
    - randomBuf
    - randomBufLen
    argTypes:
    - HASH_HashType
    - PRUint8*
    - size_t
    - PRUint8*
    - size_t
    - PRUint8*
    - size_t
    - PRUint8*
    - size_t
    - RSAPublicKey*
    - PRUint8*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 279
    functionName: RSABlinding_Blind
    functionSourceFile: /src/nss/lib/freebl/rsa_blind.c
    functionUses: 0
    functionsReached:
    - mp_invmod
    - printf
    - mpp_random_secure
    - RSA_EMSAEncodePSS
    - mp_init_copy
    - MP_TO_SEC_ERROR
    - mp_2expt
    - CHECK_MPI_OK
    - mp_sub_d
    - PORT_SetError
    - mp_print_buf
    - mp_read_unsigned_octets
    - MP_DIGITS
    - mp_clear
    - mp_init
    - PORT_ZAlloc
    - PQG_HashBuf
    - mp_mulmod
    - rsaBlind_Print
    - mp_cmp
    - PORT_Free
    - RSA_PublicKeyOp
    - mp_to_fixlen_octets
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus RSABlinding_Blind(HASH_HashType hashAlg, PRUint8* blindedMsg,
      size_t blindedMsgLen,\n                  PRUint8* inv, size_t invLen, const
      PRUint8* msg, size_t msgLen,\n                  const PRUint8* salt, size_t
      saltLen,\n                  RSAPublicKey* pkS, const PRUint8* randomBuf, size_t
      randomBufLen)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsa_blind.c:298,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsa_blind.c:303,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/freebl/rsa_blind.c:307,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/freebl/rsa_blind.c:308,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa_blind.c:312,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa_blind.c:313,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa_blind.c:315,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa_blind.c:315,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa_blind.c:316,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa_blind.c:316,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa_blind.c:318,1
    - Dst: mp_read_unsigned_octets
      Src: /src/nss/lib/freebl/rsa_blind.c:318,1
    - Dst: RSA_PrivateKeyOp
      Src: /src/nss/lib/freebl/rsa_blind.c:321,1
    - Dst: printf
      Src: /src/nss/lib/freebl/rsa_blind.c:327,1
    - Dst: mp_print_buf
      Src: /src/nss/lib/freebl/rsa_blind.c:328,1
    - Dst: RSA_PublicKeyOp
      Src: /src/nss/lib/freebl/rsa_blind.c:332,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa_blind.c:337,1
    - Dst: mp_read_unsigned_octets
      Src: /src/nss/lib/freebl/rsa_blind.c:337,1
    - Dst: printf
      Src: /src/nss/lib/freebl/rsa_blind.c:340,1
    - Dst: mp_print_buf
      Src: /src/nss/lib/freebl/rsa_blind.c:341,1
    - Dst: mp_cmp
      Src: /src/nss/lib/freebl/rsa_blind.c:345,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/rsa_blind.c:349,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa_blind.c:353,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa_blind.c:354,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/rsa_blind.c:356,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/rsa_blind.c:357,1
    - Dst: MP_TO_SEC_ERROR
      Src: /src/nss/lib/freebl/rsa_blind.c:360,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 6
    argNames:
    - blindSig
    - blindSigLen
    - blindedMsg
    - blindedMsgLen
    - skS
    - pkS
    argTypes:
    - PRUint8*
    - size_t
    - PRUint8*
    - size_t
    - RSAPrivateKey*
    - RSAPublicKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 292
    functionDepth: 2
    functionLinenumber: 292
    functionLinenumberEnd: 368
    functionName: RSABlinding_BlindSign
    functionSourceFile: /src/nss/lib/freebl/rsa_blind.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - mp_init
    - PORT_Memcpy
    - RSA_PrivateKeyOp
    - PORT_Free
    - printf
    - CHECK_MPI_OK
    - PORT_SetError
    - mp_print_buf
    - RSA_PublicKeyOp
    - mp_read_unsigned_octets
    - MP_TO_SEC_ERROR
    - mp_cmp
    - mp_clear
    - MP_DIGITS
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus RSABlinding_BlindSign(PRUint8* blindSig, size_t blindSigLen,\n
      \                     const PRUint8* blindedMsg, size_t blindedMsgLen, RSAPrivateKey*
      skS, RSAPublicKey* pkS)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsa_blind.c:400,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsa_blind.c:405,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa_blind.c:413,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa_blind.c:414,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa_blind.c:415,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/rsa_blind.c:416,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa_blind.c:418,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa_blind.c:418,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa_blind.c:419,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa_blind.c:419,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa_blind.c:420,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa_blind.c:420,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa_blind.c:421,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/rsa_blind.c:421,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa_blind.c:423,1
    - Dst: mp_read_unsigned_octets
      Src: /src/nss/lib/freebl/rsa_blind.c:423,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa_blind.c:424,1
    - Dst: mp_read_unsigned_octets
      Src: /src/nss/lib/freebl/rsa_blind.c:424,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa_blind.c:425,1
    - Dst: mp_read_unsigned_octets
      Src: /src/nss/lib/freebl/rsa_blind.c:425,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa_blind.c:428,1
    - Dst: mp_mulmod
      Src: /src/nss/lib/freebl/rsa_blind.c:428,1
    - Dst: printf
      Src: /src/nss/lib/freebl/rsa_blind.c:431,1
    - Dst: mp_print_buf
      Src: /src/nss/lib/freebl/rsa_blind.c:432,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/rsa_blind.c:435,1
    - Dst: mp_to_fixlen_octets
      Src: /src/nss/lib/freebl/rsa_blind.c:435,1
    - Dst: PQG_HashBuf
      Src: /src/nss/lib/freebl/rsa_blind.c:438,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsa_blind.c:440,1
    - Dst: RSA_CheckSignPSS
      Src: /src/nss/lib/freebl/rsa_blind.c:445,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/rsa_blind.c:449,1
    - Dst: printf
      Src: /src/nss/lib/freebl/rsa_blind.c:454,1
    - Dst: printf
      Src: /src/nss/lib/freebl/rsa_blind.c:456,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa_blind.c:461,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa_blind.c:462,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa_blind.c:463,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/rsa_blind.c:464,1
    - Dst: MP_TO_SEC_ERROR
      Src: /src/nss/lib/freebl/rsa_blind.c:466,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 50
    argCount: 10
    argNames:
    - hashAlg
    - signature
    - msg
    - msgLen
    - blindSig
    - blindSigLen
    - inv
    - invLen
    - pkS
    - saltLen
    argTypes:
    - HASH_HashType
    - PRUint8*
    - PRUint8*
    - PRUint32
    - PRUint8*
    - size_t
    - PRUint8*
    - size_t
    - RSAPublicKey*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 394
    functionDepth: 2
    functionLinenumber: 394
    functionLinenumberEnd: 471
    functionName: RSABlinding_Finalize
    functionSourceFile: /src/nss/lib/freebl/rsa_blind.c
    functionUses: 0
    functionsReached:
    - mp_init
    - mp_mulmod
    - printf
    - PQG_HashBuf
    - CHECK_MPI_OK
    - PORT_SetError
    - mp_print_buf
    - RSA_CheckSignPSS
    - mp_read_unsigned_octets
    - MP_TO_SEC_ERROR
    - mp_clear
    - MP_DIGITS
    - mp_to_fixlen_octets
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus RSABlinding_Finalize(HASH_HashType hashAlg, PRUint8* signature,
      const PRUint8* msg, PRUint32 msgLen,\n                     const PRUint8* blindSig,
      size_t blindSigLen,\n                     const PRUint8* inv, size_t invLen,
      RSAPublicKey* pkS, size_t saltLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MD5_HashBuf
      Src: /src/nss/lib/freebl/md5.c:198,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/freebl/md5.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - unsigned char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 199
    functionName: MD5_Hash
    functionSourceFile: /src/nss/lib/freebl/md5.c
    functionUses: 0
    functionsReached:
    - MD5_HashBuf
    - PORT_Strlen
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus MD5_Hash(unsigned char *dest, const char *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MD5_Begin
      Src: /src/nss/lib/freebl/md5.c:207,1
    - Dst: MD5_Update
      Src: /src/nss/lib/freebl/md5.c:208,1
    - Dst: MD5_End
      Src: /src/nss/lib/freebl/md5.c:209,1
    - Dst: memset
      Src: /src/nss/lib/freebl/md5.c:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - dest
    - src
    - src_length
    argTypes:
    - unsigned char*
    - unsigned char*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 212
    functionName: MD5_HashBuf
    functionSourceFile: /src/nss/lib/freebl/md5.c
    functionUses: 1
    functionsReached:
    - memset
    - MD5_Update
    - MD5_Begin
    - MD5_End
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus MD5_HashBuf(unsigned char *dest, const unsigned char *src,
      PRUint32 src_length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Alloc
      Src: /src/nss/lib/freebl/md5.c:218,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/md5.c:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 224
    functionName: MD5_NewContext
    functionSourceFile: /src/nss/lib/freebl/md5.c
    functionUses: 1
    functionsReached:
    - PORT_Alloc
    - PORT_SetError
    linkageType: ''
    returnType: MD5Context
    signature: 'MD5Context *

      MD5_NewContext(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/freebl/md5.c:229,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/md5.c:231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - cx
    - freeit
    argTypes:
    - MD5Context*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 233
    functionName: MD5_DestroyContext
    functionSourceFile: /src/nss/lib/freebl/md5.c
    functionUses: 1
    functionsReached:
    - memset
    - PORT_Free
    linkageType: ''
    returnType: void
    signature: void MD5_DestroyContext(MD5Context *cx, PRBool freeit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - cx
    argTypes:
    - MD5Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 245
    functionName: MD5_Begin
    functionSourceFile: /src/nss/lib/freebl/md5.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MD5_Begin(MD5Context *cx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i32
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 248
    functionName: cls
    functionSourceFile: /src/nss/lib/freebl/md5.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cls(i32, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - sumhigh
    - ','
    - sumlow
    - ','
    - addend
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 253
    functionName: addto64
    functionSourceFile: /src/nss/lib/freebl/md5.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: addto64(sumhigh, sumlow, addend)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - sumhigh
    - ','
    - sumlow
    - ','
    - addend
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 258
    functionName: addto64
    functionSourceFile: /src/nss/lib/freebl/md5.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: addto64(sumhigh, sumlow, addend)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i32
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 264
    functionName: lendian
    functionSourceFile: /src/nss/lib/freebl/md5.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: lendian(i32)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i32
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 267
    functionName: lendian
    functionSourceFile: /src/nss/lib/freebl/md5.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: lendian(i32)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b4
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 273
    functionName: lebytes
    functionSourceFile: /src/nss/lib/freebl/md5.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: lebytes(b4)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lendian
      Src: /src/nss/lib/freebl/md5.c:278,1
    - Dst: lendian
      Src: /src/nss/lib/freebl/md5.c:279,1
    - Dst: lendian
      Src: /src/nss/lib/freebl/md5.c:280,1
    - Dst: lendian
      Src: /src/nss/lib/freebl/md5.c:281,1
    - Dst: lendian
      Src: /src/nss/lib/freebl/md5.c:282,1
    - Dst: lendian
      Src: /src/nss/lib/freebl/md5.c:283,1
    - Dst: lendian
      Src: /src/nss/lib/freebl/md5.c:284,1
    - Dst: lendian
      Src: /src/nss/lib/freebl/md5.c:285,1
    - Dst: lendian
      Src: /src/nss/lib/freebl/md5.c:286,1
    - Dst: lendian
      Src: /src/nss/lib/freebl/md5.c:287,1
    - Dst: lendian
      Src: /src/nss/lib/freebl/md5.c:288,1
    - Dst: lendian
      Src: /src/nss/lib/freebl/md5.c:289,1
    - Dst: lendian
      Src: /src/nss/lib/freebl/md5.c:290,1
    - Dst: lendian
      Src: /src/nss/lib/freebl/md5.c:291,1
    - Dst: lendian
      Src: /src/nss/lib/freebl/md5.c:292,1
    - Dst: lendian
      Src: /src/nss/lib/freebl/md5.c:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - cx
    argTypes:
    - MD5Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 294
    functionName: md5_prep_state_le
    functionSourceFile: /src/nss/lib/freebl/md5.c
    functionUses: 0
    functionsReached:
    - lendian
    linkageType: ''
    returnType: void
    signature: void md5_prep_state_le(MD5Context *cx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lebytes
      Src: /src/nss/lib/freebl/md5.c:299,1
    - Dst: lebytes
      Src: /src/nss/lib/freebl/md5.c:300,1
    - Dst: lebytes
      Src: /src/nss/lib/freebl/md5.c:301,1
    - Dst: lebytes
      Src: /src/nss/lib/freebl/md5.c:302,1
    - Dst: lebytes
      Src: /src/nss/lib/freebl/md5.c:303,1
    - Dst: lebytes
      Src: /src/nss/lib/freebl/md5.c:304,1
    - Dst: lebytes
      Src: /src/nss/lib/freebl/md5.c:305,1
    - Dst: lebytes
      Src: /src/nss/lib/freebl/md5.c:306,1
    - Dst: lebytes
      Src: /src/nss/lib/freebl/md5.c:307,1
    - Dst: lebytes
      Src: /src/nss/lib/freebl/md5.c:308,1
    - Dst: lebytes
      Src: /src/nss/lib/freebl/md5.c:309,1
    - Dst: lebytes
      Src: /src/nss/lib/freebl/md5.c:310,1
    - Dst: lebytes
      Src: /src/nss/lib/freebl/md5.c:311,1
    - Dst: lebytes
      Src: /src/nss/lib/freebl/md5.c:312,1
    - Dst: lebytes
      Src: /src/nss/lib/freebl/md5.c:313,1
    - Dst: lebytes
      Src: /src/nss/lib/freebl/md5.c:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 2
    argNames:
    - cx
    - beBuf
    argTypes:
    - MD5Context*
    - PRUint8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 315
    functionName: md5_prep_buffer_le
    functionSourceFile: /src/nss/lib/freebl/md5.c
    functionUses: 0
    functionsReached:
    - lebytes
    linkageType: ''
    returnType: void
    signature: void md5_prep_buffer_le(MD5Context *cx, const PRUint8 *beBuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - X
    - ','
    - Y
    - ','
    - Z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 320
    functionName: F
    functionSourceFile: /src/nss/lib/freebl/md5.c
    functionUses: 38
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: F(X, Y, Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - X
    - ','
    - Y
    - ','
    - Z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 323
    functionName: G
    functionSourceFile: /src/nss/lib/freebl/md5.c
    functionUses: 46
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: G(X, Y, Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - X
    - ','
    - Y
    - ','
    - Z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 326
    functionName: H
    functionSourceFile: /src/nss/lib/freebl/md5.c
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: H(X, Y, Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - X
    - ','
    - Y
    - ','
    - Z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 329
    functionName: I
    functionSourceFile: /src/nss/lib/freebl/md5.c
    functionUses: 44
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: I(X, Y, Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - bufint
    - ','
    - s
    - ','
    - ti
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 332
    functionName: FF
    functionSourceFile: /src/nss/lib/freebl/md5.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FF(a, b, c, d, bufint, s, ti)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - bufint
    - ','
    - s
    - ','
    - ti
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 335
    functionName: GG
    functionSourceFile: /src/nss/lib/freebl/md5.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GG(a, b, c, d, bufint, s, ti)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - bufint
    - ','
    - s
    - ','
    - ti
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 338
    functionName: HH
    functionSourceFile: /src/nss/lib/freebl/md5.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HH(a, b, c, d, bufint, s, ti)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - bufint
    - ','
    - s
    - ','
    - ti
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 341
    functionName: II
    functionSourceFile: /src/nss/lib/freebl/md5.c
    functionUses: 33
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: II(a, b, c, d, bufint, s, ti)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FF
      Src: /src/nss/lib/freebl/md5.c:351,1
    - Dst: FF
      Src: /src/nss/lib/freebl/md5.c:352,1
    - Dst: FF
      Src: /src/nss/lib/freebl/md5.c:353,1
    - Dst: FF
      Src: /src/nss/lib/freebl/md5.c:354,1
    - Dst: FF
      Src: /src/nss/lib/freebl/md5.c:355,1
    - Dst: FF
      Src: /src/nss/lib/freebl/md5.c:356,1
    - Dst: FF
      Src: /src/nss/lib/freebl/md5.c:357,1
    - Dst: FF
      Src: /src/nss/lib/freebl/md5.c:358,1
    - Dst: FF
      Src: /src/nss/lib/freebl/md5.c:359,1
    - Dst: FF
      Src: /src/nss/lib/freebl/md5.c:360,1
    - Dst: FF
      Src: /src/nss/lib/freebl/md5.c:361,1
    - Dst: FF
      Src: /src/nss/lib/freebl/md5.c:362,1
    - Dst: FF
      Src: /src/nss/lib/freebl/md5.c:363,1
    - Dst: FF
      Src: /src/nss/lib/freebl/md5.c:364,1
    - Dst: FF
      Src: /src/nss/lib/freebl/md5.c:365,1
    - Dst: FF
      Src: /src/nss/lib/freebl/md5.c:366,1
    - Dst: GG
      Src: /src/nss/lib/freebl/md5.c:367,1
    - Dst: GG
      Src: /src/nss/lib/freebl/md5.c:368,1
    - Dst: GG
      Src: /src/nss/lib/freebl/md5.c:369,1
    - Dst: GG
      Src: /src/nss/lib/freebl/md5.c:370,1
    - Dst: GG
      Src: /src/nss/lib/freebl/md5.c:371,1
    - Dst: GG
      Src: /src/nss/lib/freebl/md5.c:372,1
    - Dst: GG
      Src: /src/nss/lib/freebl/md5.c:373,1
    - Dst: GG
      Src: /src/nss/lib/freebl/md5.c:374,1
    - Dst: GG
      Src: /src/nss/lib/freebl/md5.c:375,1
    - Dst: GG
      Src: /src/nss/lib/freebl/md5.c:376,1
    - Dst: GG
      Src: /src/nss/lib/freebl/md5.c:377,1
    - Dst: GG
      Src: /src/nss/lib/freebl/md5.c:378,1
    - Dst: GG
      Src: /src/nss/lib/freebl/md5.c:379,1
    - Dst: GG
      Src: /src/nss/lib/freebl/md5.c:380,1
    - Dst: GG
      Src: /src/nss/lib/freebl/md5.c:381,1
    - Dst: GG
      Src: /src/nss/lib/freebl/md5.c:382,1
    - Dst: HH
      Src: /src/nss/lib/freebl/md5.c:383,1
    - Dst: HH
      Src: /src/nss/lib/freebl/md5.c:384,1
    - Dst: HH
      Src: /src/nss/lib/freebl/md5.c:385,1
    - Dst: HH
      Src: /src/nss/lib/freebl/md5.c:386,1
    - Dst: HH
      Src: /src/nss/lib/freebl/md5.c:387,1
    - Dst: HH
      Src: /src/nss/lib/freebl/md5.c:388,1
    - Dst: HH
      Src: /src/nss/lib/freebl/md5.c:389,1
    - Dst: HH
      Src: /src/nss/lib/freebl/md5.c:390,1
    - Dst: HH
      Src: /src/nss/lib/freebl/md5.c:391,1
    - Dst: HH
      Src: /src/nss/lib/freebl/md5.c:392,1
    - Dst: HH
      Src: /src/nss/lib/freebl/md5.c:393,1
    - Dst: HH
      Src: /src/nss/lib/freebl/md5.c:394,1
    - Dst: HH
      Src: /src/nss/lib/freebl/md5.c:395,1
    - Dst: HH
      Src: /src/nss/lib/freebl/md5.c:396,1
    - Dst: HH
      Src: /src/nss/lib/freebl/md5.c:397,1
    - Dst: HH
      Src: /src/nss/lib/freebl/md5.c:398,1
    - Dst: II
      Src: /src/nss/lib/freebl/md5.c:399,1
    - Dst: II
      Src: /src/nss/lib/freebl/md5.c:400,1
    - Dst: II
      Src: /src/nss/lib/freebl/md5.c:401,1
    - Dst: II
      Src: /src/nss/lib/freebl/md5.c:402,1
    - Dst: II
      Src: /src/nss/lib/freebl/md5.c:403,1
    - Dst: II
      Src: /src/nss/lib/freebl/md5.c:404,1
    - Dst: II
      Src: /src/nss/lib/freebl/md5.c:405,1
    - Dst: II
      Src: /src/nss/lib/freebl/md5.c:406,1
    - Dst: II
      Src: /src/nss/lib/freebl/md5.c:407,1
    - Dst: II
      Src: /src/nss/lib/freebl/md5.c:408,1
    - Dst: II
      Src: /src/nss/lib/freebl/md5.c:409,1
    - Dst: II
      Src: /src/nss/lib/freebl/md5.c:410,1
    - Dst: II
      Src: /src/nss/lib/freebl/md5.c:411,1
    - Dst: II
      Src: /src/nss/lib/freebl/md5.c:412,1
    - Dst: II
      Src: /src/nss/lib/freebl/md5.c:413,1
    - Dst: II
      Src: /src/nss/lib/freebl/md5.c:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 73
    argCount: 2
    argNames:
    - cx
    - wBuf
    argTypes:
    - MD5Context*
    - PRUint32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 419
    functionName: NO_SANITIZE_ALIGNMENT::md5_compress
    functionSourceFile: /src/nss/lib/freebl/md5.c
    functionUses: 0
    functionsReached:
    - II
    - GG
    - HH
    - FF
    linkageType: ''
    returnType: void
    signature: 'void NO_SANITIZE_ALIGNMENT

      md5_compress(MD5Context *cx, const PRUint32 *wBuf)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: addto64
      Src: /src/nss/lib/freebl/md5.c:429,1
    - Dst: PR_MIN
      Src: /src/nss/lib/freebl/md5.c:432,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/md5.c:433,1
    - Dst: md5_prep_state_le
      Src: /src/nss/lib/freebl/md5.c:437,1
    - Dst: md5_compress
      Src: /src/nss/lib/freebl/md5.c:439,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/md5.c:455,1
    - Dst: md5_prep_buffer_le
      Src: /src/nss/lib/freebl/md5.c:463,1
    - Dst: md5_compress
      Src: /src/nss/lib/freebl/md5.c:466,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/md5.c:473,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 3
    argNames:
    - cx
    - input
    - inputLen
    argTypes:
    - MD5Context*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 421
    functionDepth: 2
    functionLinenumber: 421
    functionLinenumberEnd: 474
    functionName: MD5_Update
    functionSourceFile: /src/nss/lib/freebl/md5.c
    functionUses: 2
    functionsReached:
    - md5_prep_state_le
    - memcpy
    - PR_MIN
    - addto64
    - md5_prep_buffer_le
    - md5_compress
    linkageType: ''
    returnType: void
    signature: void MD5_Update(MD5Context *cx, const unsigned char *input, unsigned
      int inputLen)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/md5.c:502,1
    - Dst: MD5_Update
      Src: /src/nss/lib/freebl/md5.c:512,1
    - Dst: MD5_Update
      Src: /src/nss/lib/freebl/md5.c:514,1
    - Dst: lendian
      Src: /src/nss/lib/freebl/md5.c:519,1
    - Dst: lendian
      Src: /src/nss/lib/freebl/md5.c:520,1
    - Dst: md5_prep_state_le
      Src: /src/nss/lib/freebl/md5.c:524,1
    - Dst: md5_compress
      Src: /src/nss/lib/freebl/md5.c:526,1
    - Dst: lendian
      Src: /src/nss/lib/freebl/md5.c:532,1
    - Dst: lendian
      Src: /src/nss/lib/freebl/md5.c:533,1
    - Dst: lendian
      Src: /src/nss/lib/freebl/md5.c:534,1
    - Dst: lendian
      Src: /src/nss/lib/freebl/md5.c:535,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/md5.c:537,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 4
    argNames:
    - cx
    - digest
    - digestLen
    - maxDigestLen
    argTypes:
    - MD5Context*
    - unsigned char*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 491
    functionDepth: 2
    functionLinenumber: 491
    functionLinenumberEnd: 538
    functionName: MD5_End
    functionSourceFile: /src/nss/lib/freebl/md5.c
    functionUses: 2
    functionsReached:
    - md5_prep_state_le
    - memcpy
    - PORT_SetError
    - md5_compress
    - lendian
    - MD5_Update
    linkageType: ''
    returnType: void
    signature: "void MD5_End(MD5Context *cx, unsigned char *digest,\n        unsigned
      int *digestLen, unsigned int maxDigestLen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/md5.c:550,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/md5.c:554,1
    - Dst: lendian
      Src: /src/nss/lib/freebl/md5.c:556,1
    - Dst: lendian
      Src: /src/nss/lib/freebl/md5.c:557,1
    - Dst: lendian
      Src: /src/nss/lib/freebl/md5.c:558,1
    - Dst: lendian
      Src: /src/nss/lib/freebl/md5.c:559,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/md5.c:561,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - cx
    - digest
    - digestLen
    - maxDigestLen
    argTypes:
    - MD5Context*
    - unsigned char*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 540
    functionDepth: 1
    functionLinenumber: 540
    functionLinenumberEnd: 564
    functionName: MD5_EndRaw
    functionSourceFile: /src/nss/lib/freebl/md5.c
    functionUses: 0
    functionsReached:
    - lendian
    - PORT_SetError
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void MD5_EndRaw(MD5Context *cx, unsigned char *digest,\n           unsigned
      int *digestLen, unsigned int maxDigestLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cx
    argTypes:
    - MD5Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 570
    functionName: MD5_FlattenSize
    functionSourceFile: /src/nss/lib/freebl/md5.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int MD5_FlattenSize(MD5Context *cx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/md5.c:575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cx
    - space
    argTypes:
    - MD5Context*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 572
    functionDepth: 1
    functionLinenumber: 572
    functionLinenumberEnd: 577
    functionName: MD5_Flatten
    functionSourceFile: /src/nss/lib/freebl/md5.c
    functionUses: 1
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus MD5_Flatten(MD5Context *cx, unsigned char *space)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MD5_NewContext
      Src: /src/nss/lib/freebl/md5.c:582,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/md5.c:584,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - space
    - arg
    argTypes:
    - unsigned char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 579
    functionDepth: 1
    functionLinenumber: 579
    functionLinenumberEnd: 586
    functionName: MD5_Resurrect
    functionSourceFile: /src/nss/lib/freebl/md5.c
    functionUses: 1
    functionsReached:
    - memcpy
    - MD5_NewContext
    linkageType: ''
    returnType: MD5Context
    signature: 'MD5Context *

      MD5_Resurrect(unsigned char *space, void *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/md5.c:591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - MD5Context*
    - MD5Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 588
    functionDepth: 1
    functionLinenumber: 588
    functionLinenumberEnd: 592
    functionName: MD5_Clone
    functionSourceFile: /src/nss/lib/freebl/md5.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void MD5_Clone(MD5Context *dest, MD5Context *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/md5.c:597,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cx
    argTypes:
    - MD5Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 594
    functionDepth: 0
    functionLinenumber: 594
    functionLinenumberEnd: 598
    functionName: MD5_TraceState
    functionSourceFile: /src/nss/lib/freebl/md5.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: void
    signature: void MD5_TraceState(MD5Context *cx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RNG_SystemRNG
      Src: /src/nss/lib/freebl/unix_urandom.c:19,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/lib/freebl/unix_urandom.c:24,1
    - Dst: PORT_SafeZero
      Src: /src/nss/lib/freebl/unix_urandom.c:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 26
    functionName: RNG_SystemInfoForRNG
    functionSourceFile: /src/nss/lib/freebl/unix_urandom.c
    functionUses: 5
    functionsReached:
    - PORT_SafeZero
    - RNG_SystemRNG
    - RNG_RandomUpdate
    linkageType: ''
    returnType: void
    signature: void RNG_SystemInfoForRNG(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: getentropy
      Src: /src/nss/lib/freebl/unix_urandom.c:47,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/unix_urandom.c:61,1
    - Dst: open
      Src: /src/nss/lib/freebl/unix_urandom.c:68,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/unix_urandom.c:70,1
    - Dst: read
      Src: /src/nss/lib/freebl/unix_urandom.c:74,1
    - Dst: close
      Src: /src/nss/lib/freebl/unix_urandom.c:81,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/unix_urandom.c:83,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 40
    argCount: 2
    argNames:
    - dest
    - maxLen
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 87
    functionName: RNG_SystemRNG
    functionSourceFile: /src/nss/lib/freebl/unix_urandom.c
    functionUses: 4
    functionsReached:
    - close
    - read
    - open
    - getentropy
    - PORT_SetError
    linkageType: ''
    returnType: size_t
    signature: size_t RNG_SystemRNG(void *dest, size_t maxLen)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: HASH_GetRawHashObject
      Src: /src/nss/lib/freebl/tlsprfalg.c:30,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/tlsprfalg.c:32,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/tlsprfalg.c:33,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/tlsprfalg.c:34,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/freebl/tlsprfalg.c:40,1
    - Dst: HMAC_Create
      Src: /src/nss/lib/freebl/tlsprfalg.c:42,1
    - Dst: HMAC_Begin
      Src: /src/nss/lib/freebl/tlsprfalg.c:47,1
    - Dst: HMAC_Update
      Src: /src/nss/lib/freebl/tlsprfalg.c:48,1
    - Dst: HMAC_Update
      Src: /src/nss/lib/freebl/tlsprfalg.c:49,1
    - Dst: HMAC_Finish
      Src: /src/nss/lib/freebl/tlsprfalg.c:50,1
    - Dst: HMAC_Begin
      Src: /src/nss/lib/freebl/tlsprfalg.c:57,1
    - Dst: HMAC_Update
      Src: /src/nss/lib/freebl/tlsprfalg.c:58,1
    - Dst: HMAC_Update
      Src: /src/nss/lib/freebl/tlsprfalg.c:60,1
    - Dst: HMAC_Update
      Src: /src/nss/lib/freebl/tlsprfalg.c:61,1
    - Dst: HMAC_Finish
      Src: /src/nss/lib/freebl/tlsprfalg.c:62,1
    - Dst: HMAC_Begin
      Src: /src/nss/lib/freebl/tlsprfalg.c:67,1
    - Dst: HMAC_Update
      Src: /src/nss/lib/freebl/tlsprfalg.c:68,1
    - Dst: HMAC_Finish
      Src: /src/nss/lib/freebl/tlsprfalg.c:69,1
    - Dst: PR_MIN
      Src: /src/nss/lib/freebl/tlsprfalg.c:73,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/tlsprfalg.c:74,1
    - Dst: HMAC_Destroy
      Src: /src/nss/lib/freebl/tlsprfalg.c:84,1
    - Dst: PORT_SafeZero
      Src: /src/nss/lib/freebl/tlsprfalg.c:85,1
    - Dst: PORT_SafeZero
      Src: /src/nss/lib/freebl/tlsprfalg.c:86,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 48
    argCount: 6
    argNames:
    - hashType
    - secret
    - label
    - seed
    - result
    - isFIPS
    argTypes:
    - HASH_HashType
    - SECItem*
    - char*
    - SECItem*
    - SECItem*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 88
    functionName: TLS_P_hash
    functionSourceFile: /src/nss/lib/freebl/tlsprfalg.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - PORT_Memcpy
    - PR_MIN
    - HMAC_Finish
    - PORT_Strlen
    - HMAC_Destroy
    - HMAC_Begin
    - HASH_GetRawHashObject
    - PORT_SafeZero
    - HMAC_Update
    - HMAC_Create
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus TLS_P_hash(HASH_HashType hashType, const SECItem *secret,
      const char *label,\n           SECItem *seed, SECItem *result, PRBool isFIPS)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/tlsprfalg.c:100,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/tlsprfalg.c:101,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/tlsprfalg.c:102,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/freebl/tlsprfalg.c:112,1
    - Dst: TLS_P_hash
      Src: /src/nss/lib/freebl/tlsprfalg.c:117,1
    - Dst: TLS_P_hash
      Src: /src/nss/lib/freebl/tlsprfalg.c:121,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/freebl/tlsprfalg.c:132,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 5
    argNames:
    - secret
    - label
    - seed
    - result
    - isFIPS
    argTypes:
    - SECItem*
    - char*
    - SECItem*
    - SECItem*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 134
    functionName: TLS_PRF
    functionSourceFile: /src/nss/lib/freebl/tlsprfalg.c
    functionUses: 1
    functionsReached:
    - PORT_Alloc
    - PORT_Assert
    - PORT_ZFree
    - TLS_P_hash
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus TLS_PRF(const SECItem *secret, const char *label, SECItem
      *seed,\n        SECItem *result, PRBool isFIPS)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - nr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 107
    functionName: intel_aes_ctr_worker
    functionSourceFile: /src/nss/lib/freebl/intel-aes.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: intel_aes_ctr_worker(nr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - encrypt
    - ','
    - keysize
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 126
    functionName: native_aes_init
    functionSourceFile: /src/nss/lib/freebl/intel-aes.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: native_aes_init(encrypt, keysize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: SHA_HTONL
    functionSourceFile: /src/nss/lib/freebl/sha_fast.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA_HTONL(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: SHA_HTONL
    functionSourceFile: /src/nss/lib/freebl/sha_fast.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA_HTONL(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: SHA_ROTL
    functionSourceFile: /src/nss/lib/freebl/sha_fast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA_ROTL(x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - n
    argTypes:
    - PRUint64
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 79
    functionName: SHA_ROTL
    functionSourceFile: /src/nss/lib/freebl/sha_fast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRUint64
    signature: PRUint64 SHA_ROTL(PRUint64 x, PRUint32 n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - t
    - n
    argTypes:
    - PRUint32
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: SHA_ROTL
    functionSourceFile: /src/nss/lib/freebl/sha_fast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRUint32
    signature: PRUint32 SHA_ROTL(PRUint32 t, PRUint32 n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 96
    functionName: swap4b
    functionSourceFile: /src/nss/lib/freebl/sha_fast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRUint32
    signature: PRUint32 swap4b(PRUint32 value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 98
    functionName: SHA_HTONL
    functionSourceFile: /src/nss/lib/freebl/sha_fast.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA_HTONL(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 119
    functionName: swap4b
    functionSourceFile: /src/nss/lib/freebl/sha_fast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRUint32
    signature: PRUint32 swap4b(PRUint32 value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 121
    functionName: SHA_HTONL
    functionSourceFile: /src/nss/lib/freebl/sha_fast.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA_HTONL(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: SHA_ROTL
    functionSourceFile: /src/nss/lib/freebl/sha_fast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA_ROTL(X, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 139
    functionName: SHA_HTONL
    functionSourceFile: /src/nss/lib/freebl/sha_fast.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA_HTONL(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 141
    functionName: SHA_HTONL
    functionSourceFile: /src/nss/lib/freebl/sha_fast.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA_HTONL(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 145
    functionName: SHA_BYTESWAP
    functionSourceFile: /src/nss/lib/freebl/sha_fast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA_BYTESWAP(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 147
    functionName: SHA_STORE
    functionSourceFile: /src/nss/lib/freebl/sha_fast.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA_STORE(n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PZ_NewLock
      Src: /src/nss/lib/freebl/det_rng.c:23,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/det_rng.c:25,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/freebl/det_rng.c:29,1
    - Dst: memset
      Src: /src/nss/lib/freebl/det_rng.c:30,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/freebl/det_rng.c:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 35
    functionName: rng_init
    functionSourceFile: /src/nss/lib/freebl/det_rng.c
    functionUses: 0
    functionsReached:
    - PZ_Unlock
    - memset
    - PORT_SetError
    - PZ_Lock
    - PZ_NewLock
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus rng_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_CallOnce
      Src: /src/nss/lib/freebl/det_rng.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 46
    functionName: RNG_RNGInit
    functionSourceFile: /src/nss/lib/freebl/det_rng.c
    functionUses: 7
    functionsReached:
    - PR_CallOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus RNG_RNGInit(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/det_rng.c:54,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/det_rng.c:56,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/freebl/det_rng.c:61,1
    - Dst: memset
      Src: /src/nss/lib/freebl/det_rng.c:62,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/det_rng.c:65,1
    - Dst: PR_MIN
      Src: /src/nss/lib/freebl/det_rng.c:65,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/freebl/det_rng.c:67,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - data
    - bytes
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 71
    functionName: RNG_RandomUpdate
    functionSourceFile: /src/nss/lib/freebl/det_rng.c
    functionUses: 17
    functionsReached:
    - PORT_Assert
    - memcpy
    - PR_MIN
    - PZ_Unlock
    - memset
    - PORT_SetError
    - PZ_Lock
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus RNG_RandomUpdate(const void *data, size_t bytes)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/det_rng.c:80,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/det_rng.c:82,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/freebl/det_rng.c:87,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/det_rng.c:89,1
    - Dst: ChaCha20Poly1305_CreateContext
      Src: /src/nss/lib/freebl/det_rng.c:93,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/det_rng.c:95,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/freebl/det_rng.c:96,1
    - Dst: memset
      Src: /src/nss/lib/freebl/det_rng.c:100,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/det_rng.c:101,1
    - Dst: PR_MIN
      Src: /src/nss/lib/freebl/det_rng.c:101,1
    - Dst: Hacl_Chacha20_chacha20_encrypt
      Src: /src/nss/lib/freebl/det_rng.c:102,1
    - Dst: ChaCha20Poly1305_DestroyContext
      Src: /src/nss/lib/freebl/det_rng.c:104,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/freebl/det_rng.c:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 2
    argNames:
    - dest
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 110
    functionName: RNG_GenerateGlobalRandomBytes
    functionSourceFile: /src/nss/lib/freebl/det_rng.c
    functionUses: 15
    functionsReached:
    - Hacl_Chacha20_chacha20_encrypt
    - PORT_Assert
    - memcpy
    - PR_MIN
    - PZ_Unlock
    - memset
    - PORT_SetError
    - ChaCha20Poly1305_CreateContext
    - PZ_Lock
    - ChaCha20Poly1305_DestroyContext
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus RNG_GenerateGlobalRandomBytes(void *dest, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/freebl/det_rng.c:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 120
    functionName: RNG_RNGShutdown
    functionSourceFile: /src/nss/lib/freebl/det_rng.c
    functionUses: 1
    functionsReached:
    - PZ_DestroyLock
    linkageType: ''
    returnType: void
    signature: void RNG_RNGShutdown(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - entropy
    - entropy_len
    - nonce
    - nonce_len
    - personal_string
    - ps_len
    argTypes:
    - PRUint8*
    - unsigned int
    - PRUint8*
    - unsigned int
    - PRUint8*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 129
    functionName: PRNGTEST_Instantiate
    functionSourceFile: /src/nss/lib/freebl/det_rng.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PRNGTEST_Instantiate(const PRUint8 *entropy, unsigned int
      entropy_len,\n                     const PRUint8 *nonce, unsigned int nonce_len,\n
      \                    const PRUint8 *personal_string, unsigned int ps_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - entropy
    - entropy_len
    - additional
    - additional_len
    argTypes:
    - PRUint8*
    - unsigned int
    - PRUint8*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 136
    functionName: PRNGTEST_Reseed
    functionSourceFile: /src/nss/lib/freebl/det_rng.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PRNGTEST_Reseed(const PRUint8 *entropy, unsigned int entropy_len,\n
      \               const PRUint8 *additional, unsigned int additional_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - bytes
    - bytes_len
    - additional
    - additional_len
    argTypes:
    - PRUint8*
    - unsigned int
    - PRUint8*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 143
    functionName: PRNGTEST_Generate
    functionSourceFile: /src/nss/lib/freebl/det_rng.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PRNGTEST_Generate(PRUint8 *bytes, unsigned int bytes_len,\n
      \                 const PRUint8 *additional, unsigned int additional_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 149
    functionName: PRNGTEST_Uninstantiate
    functionSourceFile: /src/nss/lib/freebl/det_rng.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PRNGTEST_Uninstantiate()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 155
    functionName: PRNGTEST_RunHealthTests
    functionSourceFile: /src/nss/lib/freebl/det_rng.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PRNGTEST_RunHealthTests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - entropy
    - entropy_len
    - nonce
    - nonce_len
    - personal_string
    - ps_len
    argTypes:
    - PRUint8*
    - unsigned int
    - PRUint8*
    - unsigned int
    - PRUint8*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 163
    functionName: PRNGTEST_Instantiate_Kat
    functionSourceFile: /src/nss/lib/freebl/det_rng.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PRNGTEST_Instantiate_Kat(const PRUint8 *entropy, unsigned
      int entropy_len,\n                         const PRUint8 *nonce, unsigned int
      nonce_len,\n                         const PRUint8 *personal_string, unsigned
      int ps_len)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: realpath
      Src: /src/nss/lib/freebl/genload.c:32,1
    - Dst: PR_Malloc
      Src: /src/nss/lib/freebl/genload.c:36,1
    - Dst: strlen
      Src: /src/nss/lib/freebl/genload.c:36,1
    - Dst: strcpy
      Src: /src/nss/lib/freebl/genload.c:37,1
    - Dst: free
      Src: /src/nss/lib/freebl/genload.c:38,1
    - Dst: PR_SetError
      Src: /src/nss/lib/freebl/genload.c:46,1
    - Dst: PR_MAX
      Src: /src/nss/lib/freebl/genload.c:49,1
    - Dst: strlen
      Src: /src/nss/lib/freebl/genload.c:49,1
    - Dst: PR_Malloc
      Src: /src/nss/lib/freebl/genload.c:50,1
    - Dst: PR_Malloc
      Src: /src/nss/lib/freebl/genload.c:51,1
    - Dst: PR_Free
      Src: /src/nss/lib/freebl/genload.c:54,1
    - Dst: PR_Free
      Src: /src/nss/lib/freebl/genload.c:57,1
    - Dst: strcpy
      Src: /src/nss/lib/freebl/genload.c:61,1
    - Dst: readlink
      Src: /src/nss/lib/freebl/genload.c:63,1
    - Dst: PR_Free
      Src: /src/nss/lib/freebl/genload.c:69,1
    - Dst: PR_Free
      Src: /src/nss/lib/freebl/genload.c:71,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 1
    argNames:
    - link
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 76
    functionName: loader_GetOriginalPathname
    functionSourceFile: /src/nss/lib/freebl/genload.c
    functionUses: 0
    functionsReached:
    - PR_Malloc
    - free
    - strcpy
    - PR_Free
    - PR_SetError
    - realpath
    - readlink
    - PR_MAX
    - strlen
    linkageType: ''
    returnType: char
    signature: 'char *

      loader_GetOriginalPathname(const char* link)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/nss/lib/freebl/genload.c:92,1
    - Dst: PR_GetDirectorySeparator
      Src: /src/nss/lib/freebl/genload.c:92,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/freebl/genload.c:95,1
    - Dst: strlen
      Src: /src/nss/lib/freebl/genload.c:95,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/genload.c:97,1
    - Dst: strcpy
      Src: /src/nss/lib/freebl/genload.c:98,1
    - Dst: PR_fprintf
      Src: /src/nss/lib/freebl/genload.c:100,1
    - Dst: PR_LoadLibraryWithFlags
      Src: /src/nss/lib/freebl/genload.c:105,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/genload.c:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - referencePath
    - name
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 110
    functionName: loader_LoadLibInReferenceDir
    functionSourceFile: /src/nss/lib/freebl/genload.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - memcpy
    - PORT_Free
    - PR_fprintf
    - strcpy
    - PR_GetDirectorySeparator
    - PR_LoadLibraryWithFlags
    - strrchr
    - strlen
    linkageType: ''
    returnType: PRLibrary
    signature: 'PRLibrary *

      loader_LoadLibInReferenceDir(const char* referencePath, const char* name)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetLibraryFilePathname
      Src: /src/nss/lib/freebl/genload.c:132,1
    - Dst: loader_LoadLibInReferenceDir
      Src: /src/nss/lib/freebl/genload.c:136,1
    - Dst: loader_GetOriginalPathname
      Src: /src/nss/lib/freebl/genload.c:143,1
    - Dst: PR_Free
      Src: /src/nss/lib/freebl/genload.c:145,1
    - Dst: loader_LoadLibInReferenceDir
      Src: /src/nss/lib/freebl/genload.c:147,1
    - Dst: PR_Free
      Src: /src/nss/lib/freebl/genload.c:151,1
    - Dst: PR_fprintf
      Src: /src/nss/lib/freebl/genload.c:155,1
    - Dst: PR_LoadLibraryWithFlags
      Src: /src/nss/lib/freebl/genload.c:159,1
    - Dst: PR_fprintf
      Src: /src/nss/lib/freebl/genload.c:163,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - nameToLoad
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 167
    functionName: loader_LoadLibrary
    functionSourceFile: /src/nss/lib/freebl/genload.c
    functionUses: 1
    functionsReached:
    - loader_LoadLibInReferenceDir
    - PR_GetLibraryFilePathname
    - PR_fprintf
    - PR_Free
    - PR_LoadLibraryWithFlags
    - loader_GetOriginalPathname
    linkageType: ''
    returnType: PRLibrary
    signature: 'PRLibrary *

      loader_LoadLibrary(const char* nameToLoad)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MD2_NewContext
      Src: /src/nss/lib/freebl/md2.c:69,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/md2.c:71,1
    - Dst: MD2_Begin
      Src: /src/nss/lib/freebl/md2.c:74,1
    - Dst: MD2_Update
      Src: /src/nss/lib/freebl/md2.c:75,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/freebl/md2.c:75,1
    - Dst: MD2_End
      Src: /src/nss/lib/freebl/md2.c:76,1
    - Dst: MD2_DestroyContext
      Src: /src/nss/lib/freebl/md2.c:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - unsigned char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 79
    functionName: MD2_Hash
    functionSourceFile: /src/nss/lib/freebl/md2.c
    functionUses: 0
    functionsReached:
    - MD2_NewContext
    - MD2_Update
    - MD2_Begin
    - PORT_Strlen
    - MD2_End
    - PORT_SetError
    - MD2_DestroyContext
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus MD2_Hash(unsigned char *dest, const char *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/freebl/md2.c:84,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/md2.c:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 90
    functionName: MD2_NewContext
    functionSourceFile: /src/nss/lib/freebl/md2.c
    functionUses: 3
    functionsReached:
    - PORT_SetError
    - PORT_ZAlloc
    linkageType: ''
    returnType: MD2Context
    signature: 'MD2Context *

      MD2_NewContext(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZFree
      Src: /src/nss/lib/freebl/md2.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - cx
    - freeit
    argTypes:
    - MD2Context*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 97
    functionName: MD2_DestroyContext
    functionSourceFile: /src/nss/lib/freebl/md2.c
    functionUses: 3
    functionsReached:
    - PORT_ZFree
    linkageType: ''
    returnType: void
    signature: void MD2_DestroyContext(MD2Context *cx, PRBool freeit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/freebl/md2.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cx
    argTypes:
    - MD2Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 104
    functionName: MD2_Begin
    functionSourceFile: /src/nss/lib/freebl/md2.c
    functionUses: 3
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void MD2_Begin(MD2Context *cx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CKSUMFN
      Src: /src/nss/lib/freebl/md2.c:119,1
    - Dst: CKSUMFN
      Src: /src/nss/lib/freebl/md2.c:120,1
    - Dst: CKSUMFN
      Src: /src/nss/lib/freebl/md2.c:121,1
    - Dst: CKSUMFN
      Src: /src/nss/lib/freebl/md2.c:122,1
    - Dst: CKSUMFN
      Src: /src/nss/lib/freebl/md2.c:123,1
    - Dst: CKSUMFN
      Src: /src/nss/lib/freebl/md2.c:124,1
    - Dst: CKSUMFN
      Src: /src/nss/lib/freebl/md2.c:125,1
    - Dst: CKSUMFN
      Src: /src/nss/lib/freebl/md2.c:126,1
    - Dst: CKSUMFN
      Src: /src/nss/lib/freebl/md2.c:127,1
    - Dst: CKSUMFN
      Src: /src/nss/lib/freebl/md2.c:128,1
    - Dst: CKSUMFN
      Src: /src/nss/lib/freebl/md2.c:129,1
    - Dst: CKSUMFN
      Src: /src/nss/lib/freebl/md2.c:130,1
    - Dst: CKSUMFN
      Src: /src/nss/lib/freebl/md2.c:131,1
    - Dst: CKSUMFN
      Src: /src/nss/lib/freebl/md2.c:132,1
    - Dst: CKSUMFN
      Src: /src/nss/lib/freebl/md2.c:133,1
    - Dst: CKSUMFN
      Src: /src/nss/lib/freebl/md2.c:134,1
    - Dst: COMPRESS
      Src: /src/nss/lib/freebl/md2.c:141,1
    - Dst: COMPRESS
      Src: /src/nss/lib/freebl/md2.c:142,1
    - Dst: COMPRESS
      Src: /src/nss/lib/freebl/md2.c:143,1
    - Dst: COMPRESS
      Src: /src/nss/lib/freebl/md2.c:144,1
    - Dst: COMPRESS
      Src: /src/nss/lib/freebl/md2.c:145,1
    - Dst: COMPRESS
      Src: /src/nss/lib/freebl/md2.c:146,1
    - Dst: COMPRESS
      Src: /src/nss/lib/freebl/md2.c:147,1
    - Dst: COMPRESS
      Src: /src/nss/lib/freebl/md2.c:148,1
    - Dst: COMPRESS
      Src: /src/nss/lib/freebl/md2.c:149,1
    - Dst: COMPRESS
      Src: /src/nss/lib/freebl/md2.c:150,1
    - Dst: COMPRESS
      Src: /src/nss/lib/freebl/md2.c:151,1
    - Dst: COMPRESS
      Src: /src/nss/lib/freebl/md2.c:152,1
    - Dst: COMPRESS
      Src: /src/nss/lib/freebl/md2.c:153,1
    - Dst: COMPRESS
      Src: /src/nss/lib/freebl/md2.c:154,1
    - Dst: COMPRESS
      Src: /src/nss/lib/freebl/md2.c:155,1
    - Dst: COMPRESS
      Src: /src/nss/lib/freebl/md2.c:156,1
    - Dst: COMPRESS
      Src: /src/nss/lib/freebl/md2.c:157,1
    - Dst: COMPRESS
      Src: /src/nss/lib/freebl/md2.c:158,1
    - Dst: COMPRESS
      Src: /src/nss/lib/freebl/md2.c:159,1
    - Dst: COMPRESS
      Src: /src/nss/lib/freebl/md2.c:160,1
    - Dst: COMPRESS
      Src: /src/nss/lib/freebl/md2.c:161,1
    - Dst: COMPRESS
      Src: /src/nss/lib/freebl/md2.c:162,1
    - Dst: COMPRESS
      Src: /src/nss/lib/freebl/md2.c:163,1
    - Dst: COMPRESS
      Src: /src/nss/lib/freebl/md2.c:164,1
    - Dst: COMPRESS
      Src: /src/nss/lib/freebl/md2.c:165,1
    - Dst: COMPRESS
      Src: /src/nss/lib/freebl/md2.c:166,1
    - Dst: COMPRESS
      Src: /src/nss/lib/freebl/md2.c:167,1
    - Dst: COMPRESS
      Src: /src/nss/lib/freebl/md2.c:168,1
    - Dst: COMPRESS
      Src: /src/nss/lib/freebl/md2.c:169,1
    - Dst: COMPRESS
      Src: /src/nss/lib/freebl/md2.c:170,1
    - Dst: COMPRESS
      Src: /src/nss/lib/freebl/md2.c:171,1
    - Dst: COMPRESS
      Src: /src/nss/lib/freebl/md2.c:172,1
    - Dst: COMPRESS
      Src: /src/nss/lib/freebl/md2.c:173,1
    - Dst: COMPRESS
      Src: /src/nss/lib/freebl/md2.c:174,1
    - Dst: COMPRESS
      Src: /src/nss/lib/freebl/md2.c:175,1
    - Dst: COMPRESS
      Src: /src/nss/lib/freebl/md2.c:176,1
    - Dst: COMPRESS
      Src: /src/nss/lib/freebl/md2.c:177,1
    - Dst: COMPRESS
      Src: /src/nss/lib/freebl/md2.c:178,1
    - Dst: COMPRESS
      Src: /src/nss/lib/freebl/md2.c:179,1
    - Dst: COMPRESS
      Src: /src/nss/lib/freebl/md2.c:180,1
    - Dst: COMPRESS
      Src: /src/nss/lib/freebl/md2.c:181,1
    - Dst: COMPRESS
      Src: /src/nss/lib/freebl/md2.c:182,1
    - Dst: COMPRESS
      Src: /src/nss/lib/freebl/md2.c:183,1
    - Dst: COMPRESS
      Src: /src/nss/lib/freebl/md2.c:184,1
    - Dst: COMPRESS
      Src: /src/nss/lib/freebl/md2.c:185,1
    - Dst: COMPRESS
      Src: /src/nss/lib/freebl/md2.c:186,1
    - Dst: COMPRESS
      Src: /src/nss/lib/freebl/md2.c:187,1
    - Dst: COMPRESS
      Src: /src/nss/lib/freebl/md2.c:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 71
    argCount: 1
    argNames:
    - cx
    argTypes:
    - MD2Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 192
    functionName: md2_compress
    functionSourceFile: /src/nss/lib/freebl/md2.c
    functionUses: 0
    functionsReached:
    - COMPRESS
    - CKSUMFN
    linkageType: ''
    returnType: void
    signature: void md2_compress(MD2Context *cx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: CKSUMFN
    functionSourceFile: /src/nss/lib/freebl/md2.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CKSUMFN(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: COMPRESS
    functionSourceFile: /src/nss/lib/freebl/md2.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPRESS(n)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PR_MIN
      Src: /src/nss/lib/freebl/md2.c:201,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/md2.c:202,1
    - Dst: md2_compress
      Src: /src/nss/lib/freebl/md2.c:205,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/md2.c:212,1
    - Dst: md2_compress
      Src: /src/nss/lib/freebl/md2.c:213,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/md2.c:220,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - cx
    - input
    - inputLen
    argTypes:
    - MD2Context*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 194
    functionDepth: 2
    functionLinenumber: 194
    functionLinenumberEnd: 222
    functionName: MD2_Update
    functionSourceFile: /src/nss/lib/freebl/md2.c
    functionUses: 3
    functionsReached:
    - md2_compress
    - memcpy
    - PR_MIN
    linkageType: ''
    returnType: void
    signature: void MD2_Update(MD2Context *cx, const unsigned char *input, unsigned
      int inputLen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/md2.c:230,1
    - Dst: memset
      Src: /src/nss/lib/freebl/md2.c:234,1
    - Dst: md2_compress
      Src: /src/nss/lib/freebl/md2.c:236,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/md2.c:237,1
    - Dst: md2_compress
      Src: /src/nss/lib/freebl/md2.c:238,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/md2.c:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - cx
    - digest
    - digestLen
    - maxDigestLen
    argTypes:
    - MD2Context*
    - unsigned char*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 241
    functionName: MD2_End
    functionSourceFile: /src/nss/lib/freebl/md2.c
    functionUses: 3
    functionsReached:
    - memset
    - PORT_SetError
    - memcpy
    - md2_compress
    linkageType: ''
    returnType: void
    signature: "void MD2_End(MD2Context *cx, unsigned char *digest,\n        unsigned
      int *digestLen, unsigned int maxDigestLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cx
    argTypes:
    - MD2Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 247
    functionName: MD2_FlattenSize
    functionSourceFile: /src/nss/lib/freebl/md2.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int MD2_FlattenSize(MD2Context *cx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/md2.c:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cx
    - space
    argTypes:
    - MD2Context*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 254
    functionName: MD2_Flatten
    functionSourceFile: /src/nss/lib/freebl/md2.c
    functionUses: 1
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus MD2_Flatten(MD2Context *cx, unsigned char *space)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MD2_NewContext
      Src: /src/nss/lib/freebl/md2.c:259,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/md2.c:261,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - space
    - arg
    argTypes:
    - unsigned char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 263
    functionName: MD2_Resurrect
    functionSourceFile: /src/nss/lib/freebl/md2.c
    functionUses: 1
    functionsReached:
    - memcpy
    - MD2_NewContext
    linkageType: ''
    returnType: MD2Context
    signature: 'MD2Context *

      MD2_Resurrect(unsigned char *space, void *arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/md2.c:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - MD2Context*
    - MD2Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 269
    functionName: MD2_Clone
    functionSourceFile: /src/nss/lib/freebl/md2.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void MD2_Clone(MD2Context *dest, MD2Context *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bits
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 212
    functionName: PQG_PBITS_TO_INDEX
    functionSourceFile: /src/nss/lib/freebl/blapit.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PQG_PBITS_TO_INDEX(bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - j
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 218
    functionName: PQG_INDEX_TO_PBITS
    functionSourceFile: /src/nss/lib/freebl/blapit.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PQG_INDEX_TO_PBITS(j)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - primeLen
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 42
    functionName: dh_GetSecretKeyLen
    functionSourceFile: /src/nss/lib/freebl/dh.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int dh_GetSecretKeyLen(unsigned int primeLen)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/dh.c:54,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/freebl/dh.c:57,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/dh.c:59,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/freebl/dh.c:62,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/dh.c:64,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/freebl/dh.c:65,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/dh.c:69,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/dh.c:70,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/dh.c:71,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/dh.c:72,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/dh.c:73,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/dh.c:74,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dh.c:75,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/dh.c:75,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dh.c:76,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/dh.c:76,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dh.c:77,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/dh.c:77,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dh.c:78,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/dh.c:78,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dh.c:79,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/dh.c:79,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dh.c:80,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/dh.c:80,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/dh.c:82,1
    - Dst: generate_prime
      Src: /src/nss/lib/freebl/dh.c:82,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dh.c:84,1
    - Dst: mp_sub_d
      Src: /src/nss/lib/freebl/dh.c:84,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dh.c:85,1
    - Dst: mp_div_2
      Src: /src/nss/lib/freebl/dh.c:85,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/freebl/dh.c:87,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/dh.c:89,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/dh.c:94,1
    - Dst: RNG_GenerateGlobalRandomBytes
      Src: /src/nss/lib/freebl/dh.c:94,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dh.c:95,1
    - Dst: mp_read_unsigned_octets
      Src: /src/nss/lib/freebl/dh.c:95,1
    - Dst: mp_cmp
      Src: /src/nss/lib/freebl/dh.c:97,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dh.c:98,1
    - Dst: mp_sub
      Src: /src/nss/lib/freebl/dh.c:98,1
    - Dst: mp_cmp_d
      Src: /src/nss/lib/freebl/dh.c:101,1
    - Dst: mp_cmp
      Src: /src/nss/lib/freebl/dh.c:101,1
    - Dst: mp_set
      Src: /src/nss/lib/freebl/dh.c:103,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dh.c:106,1
    - Dst: mp_exptmod
      Src: /src/nss/lib/freebl/dh.c:106,1
    - Dst: mp_cmp_d
      Src: /src/nss/lib/freebl/dh.c:107,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dh.c:110,1
    - Dst: mp_add_d
      Src: /src/nss/lib/freebl/dh.c:110,1
    - Dst: MPINT_TO_SECITEM
      Src: /src/nss/lib/freebl/dh.c:112,1
    - Dst: MPINT_TO_SECITEM
      Src: /src/nss/lib/freebl/dh.c:113,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/dh.c:116,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/dh.c:117,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/dh.c:118,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/dh.c:119,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/dh.c:120,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/dh.c:121,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/freebl/dh.c:123,1
    - Dst: MP_TO_SEC_ERROR
      Src: /src/nss/lib/freebl/dh.c:126,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/freebl/dh.c:130,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 74
    argCount: 2
    argNames:
    - primeLen
    - params
    argTypes:
    - int
    - DHParams**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 44
    functionDepth: 2
    functionLinenumber: 44
    functionLinenumberEnd: 133
    functionName: DH_GenParam
    functionSourceFile: /src/nss/lib/freebl/dh.c
    functionUses: 0
    functionsReached:
    - RNG_GenerateGlobalRandomBytes
    - MP_TO_SEC_ERROR
    - mp_add_d
    - mp_exptmod
    - PORT_NewArena
    - CHECK_SEC_OK
    - CHECK_MPI_OK
    - mp_sub_d
    - PORT_SetError
    - mp_read_unsigned_octets
    - MP_DIGITS
    - mp_clear
    - mp_init
    - PORT_ZFree
    - PORT_ArenaZAlloc
    - MPINT_TO_SECITEM
    - PORT_FreeArena
    - mp_cmp_d
    - generate_prime
    - mp_cmp
    - PORT_Alloc
    - mp_div_2
    - mp_sub
    - mp_set
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus DH_GenParam(int primeLen, DHParams **params)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/dh.c:144,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/freebl/dh.c:147,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/dh.c:149,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/freebl/dh.c:152,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/dh.c:154,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/freebl/dh.c:155,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/dh.c:159,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/dh.c:160,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/dh.c:161,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/dh.c:162,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dh.c:163,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/dh.c:163,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dh.c:164,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/dh.c:164,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dh.c:165,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/dh.c:165,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dh.c:166,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/dh.c:166,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/dh.c:168,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/freebl/dh.c:168,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/dh.c:169,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/dh.c:171,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/freebl/dh.c:171,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/dh.c:172,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/freebl/dh.c:174,1
    - Dst: dh_GetSecretKeyLen
      Src: /src/nss/lib/freebl/dh.c:175,1
    - Dst: CHECK_SEC_OK
      Src: /src/nss/lib/freebl/dh.c:176,1
    - Dst: RNG_GenerateGlobalRandomBytes
      Src: /src/nss/lib/freebl/dh.c:176,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/dh.c:178,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dh.c:180,1
    - Dst: mp_mod
      Src: /src/nss/lib/freebl/dh.c:180,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dh.c:183,1
    - Dst: mp_exptmod
      Src: /src/nss/lib/freebl/dh.c:183,1
    - Dst: MPINT_TO_SECITEM
      Src: /src/nss/lib/freebl/dh.c:185,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/dh.c:188,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/dh.c:189,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/dh.c:190,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/dh.c:191,1
    - Dst: MP_TO_SEC_ERROR
      Src: /src/nss/lib/freebl/dh.c:193,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/freebl/dh.c:198,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 51
    argCount: 2
    argNames:
    - params
    - privKey
    argTypes:
    - DHParams*
    - DHPrivateKey**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 201
    functionName: DH_NewKey
    functionSourceFile: /src/nss/lib/freebl/dh.c
    functionUses: 0
    functionsReached:
    - mp_init
    - MP_TO_SEC_ERROR
    - mp_exptmod
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - MPINT_TO_SECITEM
    - PORT_FreeArena
    - mp_mod
    - CHECK_SEC_OK
    - CHECK_MPI_OK
    - SECITEM_CopyItem
    - SECITEM_TO_MPINT
    - PORT_SetError
    - SECITEM_AllocItem
    - RNG_GenerateGlobalRandomBytes
    - dh_GetSecretKeyLen
    - mp_clear
    - MP_DIGITS
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus DH_NewKey(DHParams *params, DHPrivateKey **privKey)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/dh.c:217,1
    - Dst: memset
      Src: /src/nss/lib/freebl/dh.c:220,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/dh.c:221,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/dh.c:222,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/dh.c:223,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/dh.c:224,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/dh.c:225,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dh.c:226,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/dh.c:226,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dh.c:227,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/dh.c:227,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dh.c:228,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/dh.c:228,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dh.c:229,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/dh.c:229,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dh.c:230,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/dh.c:230,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/dh.c:231,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/dh.c:232,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/dh.c:233,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dh.c:234,1
    - Dst: mp_sub_d
      Src: /src/nss/lib/freebl/dh.c:234,1
    - Dst: mp_cmp_d
      Src: /src/nss/lib/freebl/dh.c:246,1
    - Dst: mp_cmp
      Src: /src/nss/lib/freebl/dh.c:247,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dh.c:253,1
    - Dst: mp_exptmod
      Src: /src/nss/lib/freebl/dh.c:253,1
    - Dst: mp_unsigned_octet_size
      Src: /src/nss/lib/freebl/dh.c:255,1
    - Dst: mp_cmp_d
      Src: /src/nss/lib/freebl/dh.c:272,1
    - Dst: mp_cmp_d
      Src: /src/nss/lib/freebl/dh.c:272,1
    - Dst: mp_cmp
      Src: /src/nss/lib/freebl/dh.c:273,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/freebl/dh.c:279,1
    - Dst: mp_to_unsigned_octets
      Src: /src/nss/lib/freebl/dh.c:285,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/freebl/dh.c:298,1
    - Dst: memset
      Src: /src/nss/lib/freebl/dh.c:304,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/dh.c:305,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/dh.c:307,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/dh.c:310,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/dh.c:311,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/dh.c:312,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/dh.c:313,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/dh.c:314,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/freebl/dh.c:317,1
    - Dst: MP_TO_SEC_ERROR
      Src: /src/nss/lib/freebl/dh.c:320,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/freebl/dh.c:322,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 77
    argCount: 5
    argNames:
    - publicValue
    - prime
    - privateValue
    - derivedSecret
    - outBytes
    argTypes:
    - SECItem*
    - SECItem*
    - SECItem*
    - SECItem*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 326
    functionName: DH_Derive
    functionSourceFile: /src/nss/lib/freebl/dh.c
    functionUses: 8
    functionsReached:
    - mp_init
    - PORT_Alloc
    - mp_unsigned_octet_size
    - memcpy
    - mp_exptmod
    - mp_to_unsigned_octets
    - PORT_ZFree
    - mp_cmp_d
    - CHECK_MPI_OK
    - SECITEM_AllocItem
    - memset
    - PORT_SetError
    - SECITEM_TO_MPINT
    - mp_sub_d
    - MP_TO_SEC_ERROR
    - mp_cmp
    - mp_clear
    - MP_DIGITS
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus DH_Derive(SECItem *publicValue,\n          SECItem *prime,\n
      \         SECItem *privateValue,\n          SECItem *derivedSecret,\n          unsigned
      int outBytes)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/dh.c:342,1
    - Dst: memset
      Src: /src/nss/lib/freebl/dh.c:345,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/dh.c:346,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/dh.c:347,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/dh.c:348,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/dh.c:349,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/dh.c:350,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/dh.c:351,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/dh.c:352,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/dh.c:353,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dh.c:354,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/dh.c:354,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dh.c:355,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/dh.c:355,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dh.c:356,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/dh.c:356,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dh.c:357,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/dh.c:357,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dh.c:358,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/dh.c:358,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dh.c:359,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/dh.c:359,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dh.c:360,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/dh.c:360,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dh.c:361,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/dh.c:361,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/dh.c:362,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/dh.c:363,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/dh.c:364,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/dh.c:365,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/dh.c:366,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dh.c:368,1
    - Dst: mp_exptmod
      Src: /src/nss/lib/freebl/dh.c:368,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dh.c:370,1
    - Dst: mp_exptmod
      Src: /src/nss/lib/freebl/dh.c:370,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dh.c:372,1
    - Dst: mp_addmod
      Src: /src/nss/lib/freebl/dh.c:372,1
    - Dst: mp_unsigned_octet_size
      Src: /src/nss/lib/freebl/dh.c:374,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/freebl/dh.c:375,1
    - Dst: mp_to_unsigned_octets
      Src: /src/nss/lib/freebl/dh.c:381,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/freebl/dh.c:385,1
    - Dst: memset
      Src: /src/nss/lib/freebl/dh.c:389,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/dh.c:392,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/dh.c:396,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/dh.c:399,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/dh.c:400,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/dh.c:401,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/dh.c:402,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/dh.c:403,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/dh.c:404,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/dh.c:405,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/dh.c:406,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/freebl/dh.c:408,1
    - Dst: MP_TO_SEC_ERROR
      Src: /src/nss/lib/freebl/dh.c:410,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/freebl/dh.c:412,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 71
    argCount: 6
    argNames:
    - prime
    - public1
    - public2
    - private1
    - private2
    - derivedSecret
    argTypes:
    - SECItem*
    - SECItem*
    - SECItem*
    - SECItem*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 416
    functionName: KEA_Derive
    functionSourceFile: /src/nss/lib/freebl/dh.c
    functionUses: 0
    functionsReached:
    - mp_init
    - PORT_Alloc
    - mp_unsigned_octet_size
    - memcpy
    - mp_exptmod
    - mp_addmod
    - mp_to_unsigned_octets
    - PORT_ZFree
    - CHECK_MPI_OK
    - SECITEM_AllocItem
    - memset
    - PORT_SetError
    - SECITEM_TO_MPINT
    - MP_TO_SEC_ERROR
    - mp_clear
    - MP_DIGITS
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus KEA_Derive(SECItem *prime,\n           SECItem *public1,\n
      \          SECItem *public2,\n           SECItem *private1,\n           SECItem
      *private2,\n           SECItem *derivedSecret)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - prime_length
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 431
    functionName: dh_prime_testcount
    functionSourceFile: /src/nss/lib/freebl/dh.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dh_prime_testcount(int prime_length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/dh.c:438,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dh.c:439,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/dh.c:439,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/dh.c:440,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dh.c:441,1
    - Dst: mpp_pprime_secure
      Src: /src/nss/lib/freebl/dh.c:441,1
    - Dst: dh_prime_testcount
      Src: /src/nss/lib/freebl/dh.c:441,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/dh.c:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - prime
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 445
    functionName: KEA_PrimeCheck
    functionSourceFile: /src/nss/lib/freebl/dh.c
    functionUses: 0
    functionsReached:
    - mp_init
    - mpp_pprime_secure
    - CHECK_MPI_OK
    - SECITEM_TO_MPINT
    - mp_clear
    - MP_DIGITS
    - dh_prime_testcount
    linkageType: ''
    returnType: PRBool
    signature: PRBool KEA_PrimeCheck(SECItem *prime)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/dh.c:454,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/dh.c:457,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/dh.c:458,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/dh.c:459,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/dh.c:460,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/dh.c:461,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dh.c:462,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/dh.c:462,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dh.c:463,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/dh.c:463,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dh.c:464,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/dh.c:464,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dh.c:465,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/dh.c:465,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dh.c:466,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/dh.c:466,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/dh.c:467,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/dh.c:468,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/dh.c:469,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dh.c:470,1
    - Dst: mp_sub_d
      Src: /src/nss/lib/freebl/dh.c:470,1
    - Dst: mp_cmp_d
      Src: /src/nss/lib/freebl/dh.c:480,1
    - Dst: mp_cmp
      Src: /src/nss/lib/freebl/dh.c:481,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dh.c:486,1
    - Dst: mp_exptmod
      Src: /src/nss/lib/freebl/dh.c:486,1
    - Dst: mp_cmp_d
      Src: /src/nss/lib/freebl/dh.c:488,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/dh.c:490,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/dh.c:491,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/dh.c:492,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/dh.c:493,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/dh.c:494,1
    - Dst: MP_TO_SEC_ERROR
      Src: /src/nss/lib/freebl/dh.c:496,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 3
    argNames:
    - Y
    - prime
    - subPrime
    argTypes:
    - SECItem*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 500
    functionName: KEA_Verify
    functionSourceFile: /src/nss/lib/freebl/dh.c
    functionUses: 0
    functionsReached:
    - mp_init
    - mp_exptmod
    - mp_cmp_d
    - CHECK_MPI_OK
    - SECITEM_TO_MPINT
    - PORT_SetError
    - mp_sub_d
    - MP_TO_SEC_ERROR
    - mp_cmp
    - mp_clear
    - MP_DIGITS
    linkageType: ''
    returnType: PRBool
    signature: PRBool KEA_Verify(SECItem *Y, SECItem *prime, SECItem *subPrime)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/dsa.c:41,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/dsa.c:42,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/dsa.c:43,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dsa.c:44,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/dsa.c:44,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dsa.c:45,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/dsa.c:45,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dsa.c:46,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/dsa.c:46,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dsa.c:50,1
    - Dst: mp_read_unsigned_octets
      Src: /src/nss/lib/freebl/dsa.c:50,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dsa.c:51,1
    - Dst: mp_read_unsigned_octets
      Src: /src/nss/lib/freebl/dsa.c:51,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dsa.c:58,1
    - Dst: mp_mod
      Src: /src/nss/lib/freebl/dsa.c:58,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dsa.c:59,1
    - Dst: mp_to_fixlen_octets
      Src: /src/nss/lib/freebl/dsa.c:59,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/dsa.c:61,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/dsa.c:62,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/dsa.c:63,1
    - Dst: MP_TO_SEC_ERROR
      Src: /src/nss/lib/freebl/dsa.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 4
    argNames:
    - w
    - q
    - qLen
    - xj
    argTypes:
    - PRUint8*
    - PRUint8*
    - unsigned int
    - PRUint8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 69
    functionName: fips186Change_ReduceModQForDSA
    functionSourceFile: /src/nss/lib/freebl/dsa.c
    functionUses: 0
    functionsReached:
    - mp_init
    - mp_mod
    - CHECK_MPI_OK
    - mp_read_unsigned_octets
    - MP_TO_SEC_ERROR
    - mp_clear
    - MP_DIGITS
    - mp_to_fixlen_octets
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus fips186Change_ReduceModQForDSA(const PRUint8 *w, const PRUint8
      *q,\n                               unsigned int qLen, PRUint8 *xj)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fips186Change_ReduceModQForDSA
      Src: /src/nss/lib/freebl/dsa.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - w
    - q
    - xj
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 81
    functionName: FIPS186Change_ReduceModQForDSA
    functionSourceFile: /src/nss/lib/freebl/dsa.c
    functionUses: 2
    functionsReached:
    - fips186Change_ReduceModQForDSA
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus FIPS186Change_ReduceModQForDSA(const unsigned char *w,\n
      \                              const unsigned char *q,\n                               unsigned
      char *xj)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/dsa.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - XKEY
    - XSEEDj
    - x_j
    argTypes:
    - PRUint8*
    - PRUint8*
    - PRUint8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 97
    functionName: FIPS186Change_GenerateX
    functionSourceFile: /src/nss/lib/freebl/dsa.c
    functionUses: 2
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus FIPS186Change_GenerateX(PRUint8 *XKEY, const PRUint8 *XSEEDj,\n
      \                       PRUint8 *x_j)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/dsa.c:129,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/freebl/dsa.c:133,1
    - Dst: RNG_GenerateGlobalRandomBytes
      Src: /src/nss/lib/freebl/dsa.c:138,1
    - Dst: fips186Change_ReduceModQForDSA
      Src: /src/nss/lib/freebl/dsa.c:140,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/freebl/dsa.c:143,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - qItem
    - dest
    - destLen
    - maxDestLen
    argTypes:
    - SECItem*
    - PRUint8*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 145
    functionName: dsa_GenerateGlobalRandomBytes
    functionSourceFile: /src/nss/lib/freebl/dsa.c
    functionUses: 0
    functionsReached:
    - fips186Change_ReduceModQForDSA
    - SECITEM_AllocItem
    - PORT_SetError
    - RNG_GenerateGlobalRandomBytes
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus dsa_GenerateGlobalRandomBytes(const SECItem *qItem, PRUint8
      *dest,\n                              unsigned int *destLen, unsigned int maxDestLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MP_TO_SEC_ERROR
      Src: /src/nss/lib/freebl/dsa.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - mp_err
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: translate_mpi_error
    functionSourceFile: /src/nss/lib/freebl/dsa.c
    functionUses: 0
    functionsReached:
    - MP_TO_SEC_ERROR
    linkageType: ''
    returnType: void
    signature: void translate_mpi_error(mp_err err)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/dsa.c:164,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/freebl/dsa.c:168,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/dsa.c:170,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/freebl/dsa.c:173,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/dsa.c:175,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/freebl/dsa.c:176,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/dsa.c:181,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/dsa.c:182,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/dsa.c:183,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/dsa.c:184,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dsa.c:185,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/dsa.c:185,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dsa.c:186,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/dsa.c:186,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dsa.c:187,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/dsa.c:187,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dsa.c:188,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/dsa.c:188,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dsa.c:190,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/freebl/dsa.c:190,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dsa.c:192,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/freebl/dsa.c:192,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dsa.c:194,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/freebl/dsa.c:194,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/dsa.c:196,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/dsa.c:197,1
    - Dst: OCTETS_TO_MPINT
      Src: /src/nss/lib/freebl/dsa.c:198,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/freebl/dsa.c:200,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/dsa.c:201,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dsa.c:203,1
    - Dst: mp_exptmod
      Src: /src/nss/lib/freebl/dsa.c:203,1
    - Dst: MPINT_TO_SECITEM
      Src: /src/nss/lib/freebl/dsa.c:205,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/dsa.c:209,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/dsa.c:210,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/dsa.c:211,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/dsa.c:212,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/freebl/dsa.c:214,1
    - Dst: translate_mpi_error
      Src: /src/nss/lib/freebl/dsa.c:217,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 51
    argCount: 3
    argNames:
    - params
    - seed
    - privKey
    argTypes:
    - PQGParams*
    - SECItem*
    - DSAPrivateKey**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 221
    functionName: dsa_NewKeyExtended
    functionSourceFile: /src/nss/lib/freebl/dsa.c
    functionUses: 0
    functionsReached:
    - mp_init
    - OCTETS_TO_MPINT
    - PORT_Memcpy
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - mp_exptmod
    - PORT_FreeArena
    - MPINT_TO_SECITEM
    - translate_mpi_error
    - CHECK_MPI_OK
    - SECITEM_CopyItem
    - SECITEM_TO_MPINT
    - PORT_SetError
    - SECITEM_AllocItem
    - mp_clear
    - MP_DIGITS
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus dsa_NewKeyExtended(const PQGParams *params, const SECItem
      *seed,\n                   DSAPrivateKey **privKey)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/dsa.c:232,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/freebl/dsa.c:236,1
    - Dst: dsa_GenerateGlobalRandomBytes
      Src: /src/nss/lib/freebl/dsa.c:242,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/dsa.c:260,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/freebl/dsa.c:263,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 34
    argCount: 3
    argNames:
    - arena
    - q
    - seed
    argTypes:
    - PLArenaPool*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 223
    functionDepth: 3
    functionLinenumber: 223
    functionLinenumberEnd: 269
    functionName: DSA_NewRandom
    functionSourceFile: /src/nss/lib/freebl/dsa.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    - SECITEM_ZfreeItem
    - dsa_GenerateGlobalRandomBytes
    - SECITEM_AllocItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus DSA_NewRandom(PLArenaPool *arena, const SECItem *q, SECItem
      *seed)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PQG_Check
      Src: /src/nss/lib/freebl/dsa.c:283,1
    - Dst: DSA_NewRandom
      Src: /src/nss/lib/freebl/dsa.c:289,1
    - Dst: PQG_GetLength
      Src: /src/nss/lib/freebl/dsa.c:291,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/dsa.c:292,1
    - Dst: dsa_NewKeyExtended
      Src: /src/nss/lib/freebl/dsa.c:295,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/freebl/dsa.c:298,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - params
    - privKey
    argTypes:
    - PQGParams*
    - DSAPrivateKey**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 277
    functionDepth: 3
    functionLinenumber: 277
    functionLinenumberEnd: 300
    functionName: DSA_NewKey
    functionSourceFile: /src/nss/lib/freebl/dsa.c
    functionUses: 5
    functionsReached:
    - PQG_GetLength
    - DSA_NewRandom
    - PQG_Check
    - PORT_SetError
    - dsa_NewKeyExtended
    - SECITEM_ZfreeItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus DSA_NewKey(const PQGParams *params, DSAPrivateKey **privKey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PQG_GetLength
      Src: /src/nss/lib/freebl/dsa.c:310,1
    - Dst: dsa_NewKeyExtended
      Src: /src/nss/lib/freebl/dsa.c:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - params
    - seed
    - privKey
    argTypes:
    - PQGParams*
    - unsigned char*
    - DSAPrivateKey**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 303
    functionDepth: 3
    functionLinenumber: 303
    functionLinenumberEnd: 312
    functionName: DSA_NewKeyFromSeed
    functionSourceFile: /src/nss/lib/freebl/dsa.c
    functionUses: 0
    functionsReached:
    - PQG_GetLength
    - dsa_NewKeyExtended
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus DSA_NewKeyFromSeed(const PQGParams *params,\n                   const
      unsigned char *seed,\n                   DSAPrivateKey **privKey)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/dsa.c:334,1
    - Dst: PQG_GetLength
      Src: /src/nss/lib/freebl/dsa.c:338,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/dsa.c:343,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/dsa.c:351,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/dsa.c:353,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/dsa.c:359,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/dsa.c:360,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/dsa.c:361,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/dsa.c:362,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/dsa.c:363,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/dsa.c:364,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/dsa.c:365,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/dsa.c:366,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/dsa.c:367,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dsa.c:368,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/dsa.c:368,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dsa.c:369,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/dsa.c:369,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dsa.c:370,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/dsa.c:370,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dsa.c:371,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/dsa.c:371,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dsa.c:372,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/dsa.c:372,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dsa.c:373,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/dsa.c:373,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dsa.c:374,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/dsa.c:374,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dsa.c:375,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/dsa.c:375,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dsa.c:376,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/dsa.c:376,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/dsa.c:381,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/dsa.c:382,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/dsa.c:383,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/dsa.c:384,1
    - Dst: OCTETS_TO_MPINT
      Src: /src/nss/lib/freebl/dsa.c:385,1
    - Dst: RNG_GenerateGlobalRandomBytes
      Src: /src/nss/lib/freebl/dsa.c:389,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/dsa.c:390,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dsa.c:400,1
    - Dst: mp_mul_d
      Src: /src/nss/lib/freebl/dsa.c:400,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dsa.c:401,1
    - Dst: mp_add
      Src: /src/nss/lib/freebl/dsa.c:401,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dsa.c:403,1
    - Dst: mp_exptmod
      Src: /src/nss/lib/freebl/dsa.c:403,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dsa.c:405,1
    - Dst: mp_mod
      Src: /src/nss/lib/freebl/dsa.c:405,1
    - Dst: DSA_NewRandom
      Src: /src/nss/lib/freebl/dsa.c:414,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/dsa.c:415,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/dsa.c:419,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/freebl/dsa.c:420,1
    - Dst: DSA_NewRandom
      Src: /src/nss/lib/freebl/dsa.c:421,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/dsa.c:422,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/dsa.c:426,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/freebl/dsa.c:427,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dsa.c:430,1
    - Dst: mp_mul
      Src: /src/nss/lib/freebl/dsa.c:430,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dsa.c:431,1
    - Dst: mp_mulmod
      Src: /src/nss/lib/freebl/dsa.c:431,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dsa.c:433,1
    - Dst: mp_invmod
      Src: /src/nss/lib/freebl/dsa.c:433,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dsa.c:435,1
    - Dst: mp_mulmod
      Src: /src/nss/lib/freebl/dsa.c:435,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/dsa.c:437,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dsa.c:439,1
    - Dst: mp_mul
      Src: /src/nss/lib/freebl/dsa.c:439,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dsa.c:441,1
    - Dst: mp_mulmod
      Src: /src/nss/lib/freebl/dsa.c:441,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dsa.c:443,1
    - Dst: mp_mulmod
      Src: /src/nss/lib/freebl/dsa.c:443,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dsa.c:445,1
    - Dst: mp_add
      Src: /src/nss/lib/freebl/dsa.c:445,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dsa.c:447,1
    - Dst: mp_mulmod
      Src: /src/nss/lib/freebl/dsa.c:447,1
    - Dst: mp_cmp_z
      Src: /src/nss/lib/freebl/dsa.c:454,1
    - Dst: mp_cmp_z
      Src: /src/nss/lib/freebl/dsa.c:454,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/dsa.c:455,1
    - Dst: mp_to_fixlen_octets
      Src: /src/nss/lib/freebl/dsa.c:464,1
    - Dst: mp_to_fixlen_octets
      Src: /src/nss/lib/freebl/dsa.c:467,1
    - Dst: PORT_SafeZero
      Src: /src/nss/lib/freebl/dsa.c:474,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/dsa.c:475,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/dsa.c:476,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/dsa.c:477,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/dsa.c:478,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/dsa.c:479,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/dsa.c:480,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/dsa.c:481,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/dsa.c:482,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/dsa.c:483,1
    - Dst: translate_mpi_error
      Src: /src/nss/lib/freebl/dsa.c:485,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 110
    argCount: 4
    argNames:
    - key
    - signature
    - digest
    - kbytes
    argTypes:
    - DSAPrivateKey*
    - SECItem*
    - SECItem*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 314
    functionDepth: 2
    functionLinenumber: 314
    functionLinenumberEnd: 489
    functionName: dsa_SignDigest
    functionSourceFile: /src/nss/lib/freebl/dsa.c
    functionUses: 0
    functionsReached:
    - mp_invmod
    - PQG_GetLength
    - DSA_NewRandom
    - RNG_GenerateGlobalRandomBytes
    - PORT_SafeZero
    - mp_mul_d
    - PORT_Memcpy
    - mp_add
    - mp_exptmod
    - mp_mul
    - translate_mpi_error
    - mp_cmp_z
    - CHECK_MPI_OK
    - PORT_SetError
    - MP_DIGITS
    - mp_clear
    - mp_init
    - OCTETS_TO_MPINT
    - mp_mulmod
    - SECITEM_TO_MPINT
    - SECITEM_ZfreeItem
    - mp_mod
    - PORT_Memset
    - mp_to_fixlen_octets
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus dsa_SignDigest(DSAPrivateKey *key, SECItem *signature, const
      SECItem *digest,\n               const unsigned char *kbytes)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PQG_GetLength
      Src: /src/nss/lib/freebl/dsa.c:505,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/dsa.c:508,1
    - Dst: dsa_GenerateGlobalRandomBytes
      Src: /src/nss/lib/freebl/dsa.c:510,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/dsa.c:515,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/dsa.c:528,1
    - Dst: dsa_SignDigest
      Src: /src/nss/lib/freebl/dsa.c:532,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/freebl/dsa.c:533,1
    - Dst: PORT_SafeZero
      Src: /src/nss/lib/freebl/dsa.c:535,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 3
    argNames:
    - key
    - signature
    - digest
    argTypes:
    - DSAPrivateKey*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 497
    functionDepth: 3
    functionLinenumber: 497
    functionLinenumberEnd: 537
    functionName: DSA_SignDigest
    functionSourceFile: /src/nss/lib/freebl/dsa.c
    functionUses: 5
    functionsReached:
    - dsa_SignDigest
    - PQG_GetLength
    - PORT_GetError
    - PORT_SetError
    - dsa_GenerateGlobalRandomBytes
    - PORT_SafeZero
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus DSA_SignDigest(DSAPrivateKey *key, SECItem *signature, const
      SECItem *digest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dsa_SignDigest
      Src: /src/nss/lib/freebl/dsa.c:547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - key
    - signature
    - digest
    - seed
    argTypes:
    - DSAPrivateKey*
    - SECItem*
    - SECItem*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 540
    functionDepth: 3
    functionLinenumber: 540
    functionLinenumberEnd: 549
    functionName: DSA_SignDigestWithSeed
    functionSourceFile: /src/nss/lib/freebl/dsa.c
    functionUses: 4
    functionsReached:
    - dsa_SignDigest
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus DSA_SignDigestWithSeed(DSAPrivateKey *key,\n                       SECItem
      *signature,\n                       const SECItem *digest,\n                       const
      unsigned char *seed)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/dsa.c:572,1
    - Dst: PQG_GetLength
      Src: /src/nss/lib/freebl/dsa.c:576,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/dsa.c:581,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/dsa.c:589,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/freebl/dsa.c:591,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/dsa.c:597,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/dsa.c:598,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/dsa.c:599,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/dsa.c:600,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/dsa.c:601,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/dsa.c:602,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/dsa.c:603,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/dsa.c:604,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/dsa.c:605,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/dsa.c:606,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dsa.c:607,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/dsa.c:607,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dsa.c:608,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/dsa.c:608,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dsa.c:609,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/dsa.c:609,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dsa.c:610,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/dsa.c:610,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dsa.c:611,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/dsa.c:611,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dsa.c:612,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/dsa.c:612,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dsa.c:613,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/dsa.c:613,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dsa.c:614,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/dsa.c:614,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dsa.c:615,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/dsa.c:615,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dsa.c:616,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/dsa.c:616,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/dsa.c:620,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/dsa.c:621,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/dsa.c:622,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/dsa.c:623,1
    - Dst: OCTETS_TO_MPINT
      Src: /src/nss/lib/freebl/dsa.c:627,1
    - Dst: OCTETS_TO_MPINT
      Src: /src/nss/lib/freebl/dsa.c:628,1
    - Dst: mp_cmp_z
      Src: /src/nss/lib/freebl/dsa.c:632,1
    - Dst: mp_cmp_z
      Src: /src/nss/lib/freebl/dsa.c:632,1
    - Dst: mp_cmp
      Src: /src/nss/lib/freebl/dsa.c:633,1
    - Dst: mp_cmp
      Src: /src/nss/lib/freebl/dsa.c:633,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/dsa.c:635,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dsa.c:643,1
    - Dst: mp_invmod
      Src: /src/nss/lib/freebl/dsa.c:643,1
    - Dst: SECITEM_TO_MPINT
      Src: /src/nss/lib/freebl/dsa.c:649,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dsa.c:650,1
    - Dst: mp_mulmod
      Src: /src/nss/lib/freebl/dsa.c:650,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dsa.c:656,1
    - Dst: mp_mulmod
      Src: /src/nss/lib/freebl/dsa.c:656,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dsa.c:662,1
    - Dst: mp_exptmod
      Src: /src/nss/lib/freebl/dsa.c:662,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dsa.c:663,1
    - Dst: mp_exptmod
      Src: /src/nss/lib/freebl/dsa.c:663,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dsa.c:664,1
    - Dst: mp_mulmod
      Src: /src/nss/lib/freebl/dsa.c:664,1
    - Dst: CHECK_MPI_OK
      Src: /src/nss/lib/freebl/dsa.c:665,1
    - Dst: mp_mod
      Src: /src/nss/lib/freebl/dsa.c:665,1
    - Dst: mp_cmp
      Src: /src/nss/lib/freebl/dsa.c:669,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/dsa.c:670,1
    - Dst: PORT_SafeZero
      Src: /src/nss/lib/freebl/dsa.c:676,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/dsa.c:677,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/dsa.c:678,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/dsa.c:679,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/dsa.c:680,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/dsa.c:681,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/dsa.c:682,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/dsa.c:683,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/dsa.c:684,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/dsa.c:685,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/dsa.c:686,1
    - Dst: translate_mpi_error
      Src: /src/nss/lib/freebl/dsa.c:688,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 78
    argCount: 3
    argNames:
    - key
    - signature
    - digest
    argTypes:
    - DSAPublicKey*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 555
    functionDepth: 2
    functionLinenumber: 555
    functionLinenumberEnd: 691
    functionName: DSA_VerifyDigest
    functionSourceFile: /src/nss/lib/freebl/dsa.c
    functionUses: 6
    functionsReached:
    - mp_init
    - OCTETS_TO_MPINT
    - PORT_SafeZero
    - PORT_Memcpy
    - mp_exptmod
    - mp_invmod
    - translate_mpi_error
    - mp_mod
    - PQG_GetLength
    - mp_cmp_z
    - mp_mulmod
    - CHECK_MPI_OK
    - SECITEM_TO_MPINT
    - PORT_SetError
    - PORT_Memset
    - mp_cmp
    - mp_clear
    - MP_DIGITS
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus DSA_VerifyDigest(DSAPublicKey *key, const SECItem *signature,\n
      \                const SECItem *digest)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RNG_GenerateGlobalRandomBytes
      Src: /src/nss/lib/freebl/secmpi.c:10,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/secmpi.c:10,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/secmpi.c:10,1
    - Dst: MP_SIGN
      Src: /src/nss/lib/freebl/secmpi.c:14,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - a
    argTypes:
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 6
    functionDepth: 1
    functionLinenumber: 6
    functionLinenumberEnd: 16
    functionName: mpp_random_secure
    functionSourceFile: /src/nss/lib/freebl/secmpi.c
    functionUses: 1
    functionsReached:
    - MP_SIGN
    - RNG_GenerateGlobalRandomBytes
    - MP_DIGITS
    - MP_USED
    linkageType: ''
    returnType: mp_err
    signature: mp_err mpp_random_secure(mp_int *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpp_pprime_ext_random
      Src: /src/nss/lib/freebl/secmpi.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - nt
    argTypes:
    - mp_int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 22
    functionName: mpp_pprime_secure
    functionSourceFile: /src/nss/lib/freebl/secmpi.c
    functionUses: 5
    functionsReached:
    - mpp_pprime_ext_random
    linkageType: ''
    returnType: mp_err
    signature: mp_err mpp_pprime_secure(mp_int *a, int nt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpp_make_prime_ext_random
      Src: /src/nss/lib/freebl/secmpi.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - start
    - nBits
    - strong
    argTypes:
    - mp_int*
    - mp_size
    - mp_size
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: mpp_make_prime_secure
    functionSourceFile: /src/nss/lib/freebl/secmpi.c
    functionUses: 1
    functionsReached:
    - mpp_make_prime_ext_random
    linkageType: ''
    returnType: mp_err
    signature: mp_err mpp_make_prime_secure(mp_int *start, mp_size nBits, mp_size
      strong)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - n
    - ','
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 54
    functionName: ROUND
    functionSourceFile: /src/nss/lib/freebl/sha256-armv8.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROUND(n, a, b, c, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vld1q_u32
      Src: /src/nss/lib/freebl/sha256-armv8.c:58,1
    - Dst: vld1q_u32
      Src: /src/nss/lib/freebl/sha256-armv8.c:59,1
    - Dst: vld1q_u32
      Src: /src/nss/lib/freebl/sha256-armv8.c:60,1
    - Dst: vld1q_u32
      Src: /src/nss/lib/freebl/sha256-armv8.c:61,1
    - Dst: vld1q_u32
      Src: /src/nss/lib/freebl/sha256-armv8.c:62,1
    - Dst: vld1q_u32
      Src: /src/nss/lib/freebl/sha256-armv8.c:63,1
    - Dst: vld1q_u32
      Src: /src/nss/lib/freebl/sha256-armv8.c:64,1
    - Dst: vld1q_u32
      Src: /src/nss/lib/freebl/sha256-armv8.c:65,1
    - Dst: vld1q_u32
      Src: /src/nss/lib/freebl/sha256-armv8.c:66,1
    - Dst: vld1q_u32
      Src: /src/nss/lib/freebl/sha256-armv8.c:67,1
    - Dst: vld1q_u32
      Src: /src/nss/lib/freebl/sha256-armv8.c:68,1
    - Dst: vld1q_u32
      Src: /src/nss/lib/freebl/sha256-armv8.c:69,1
    - Dst: vld1q_u32
      Src: /src/nss/lib/freebl/sha256-armv8.c:70,1
    - Dst: vld1q_u32
      Src: /src/nss/lib/freebl/sha256-armv8.c:71,1
    - Dst: vld1q_u32
      Src: /src/nss/lib/freebl/sha256-armv8.c:72,1
    - Dst: vld1q_u32
      Src: /src/nss/lib/freebl/sha256-armv8.c:73,1
    - Dst: vld1q_u32
      Src: /src/nss/lib/freebl/sha256-armv8.c:75,1
    - Dst: vld1q_u32
      Src: /src/nss/lib/freebl/sha256-armv8.c:76,1
    - Dst: vreinterpretq_u32_u8
      Src: /src/nss/lib/freebl/sha256-armv8.c:80,1
    - Dst: vrev32q_u8
      Src: /src/nss/lib/freebl/sha256-armv8.c:80,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/sha256-armv8.c:80,1
    - Dst: vreinterpretq_u32_u8
      Src: /src/nss/lib/freebl/sha256-armv8.c:81,1
    - Dst: vrev32q_u8
      Src: /src/nss/lib/freebl/sha256-armv8.c:81,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/sha256-armv8.c:81,1
    - Dst: vreinterpretq_u32_u8
      Src: /src/nss/lib/freebl/sha256-armv8.c:82,1
    - Dst: vrev32q_u8
      Src: /src/nss/lib/freebl/sha256-armv8.c:82,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/sha256-armv8.c:82,1
    - Dst: vreinterpretq_u32_u8
      Src: /src/nss/lib/freebl/sha256-armv8.c:83,1
    - Dst: vrev32q_u8
      Src: /src/nss/lib/freebl/sha256-armv8.c:83,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/sha256-armv8.c:83,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-armv8.c:88,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-armv8.c:89,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-armv8.c:90,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-armv8.c:91,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-armv8.c:92,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-armv8.c:93,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-armv8.c:94,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-armv8.c:95,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-armv8.c:96,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-armv8.c:97,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-armv8.c:98,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-armv8.c:99,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-armv8.c:100,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-armv8.c:101,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-armv8.c:102,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-armv8.c:103,1
    - Dst: vaddq_u32
      Src: /src/nss/lib/freebl/sha256-armv8.c:105,1
    - Dst: vaddq_u32
      Src: /src/nss/lib/freebl/sha256-armv8.c:106,1
    - Dst: vst1q_u32
      Src: /src/nss/lib/freebl/sha256-armv8.c:108,1
    - Dst: vst1q_u32
      Src: /src/nss/lib/freebl/sha256-armv8.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SHA256Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 110
    functionName: SHA256_Compress_Native
    functionSourceFile: /src/nss/lib/freebl/sha256-armv8.c
    functionUses: 1
    functionsReached:
    - vst1q_u32
    - vld1q_u8
    - vrev32q_u8
    - ROUND
    - vld1q_u32
    - vreinterpretq_u32_u8
    - vaddq_u32
    linkageType: ''
    returnType: void
    signature: void SHA256_Compress_Native(SHA256Context *ctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: vld1q_u32
      Src: /src/nss/lib/freebl/sha256-armv8.c:116,1
    - Dst: vld1q_u32
      Src: /src/nss/lib/freebl/sha256-armv8.c:117,1
    - Dst: vld1q_u32
      Src: /src/nss/lib/freebl/sha256-armv8.c:118,1
    - Dst: vld1q_u32
      Src: /src/nss/lib/freebl/sha256-armv8.c:119,1
    - Dst: vld1q_u32
      Src: /src/nss/lib/freebl/sha256-armv8.c:120,1
    - Dst: vld1q_u32
      Src: /src/nss/lib/freebl/sha256-armv8.c:121,1
    - Dst: vld1q_u32
      Src: /src/nss/lib/freebl/sha256-armv8.c:122,1
    - Dst: vld1q_u32
      Src: /src/nss/lib/freebl/sha256-armv8.c:123,1
    - Dst: vld1q_u32
      Src: /src/nss/lib/freebl/sha256-armv8.c:124,1
    - Dst: vld1q_u32
      Src: /src/nss/lib/freebl/sha256-armv8.c:125,1
    - Dst: vld1q_u32
      Src: /src/nss/lib/freebl/sha256-armv8.c:126,1
    - Dst: vld1q_u32
      Src: /src/nss/lib/freebl/sha256-armv8.c:127,1
    - Dst: vld1q_u32
      Src: /src/nss/lib/freebl/sha256-armv8.c:128,1
    - Dst: vld1q_u32
      Src: /src/nss/lib/freebl/sha256-armv8.c:129,1
    - Dst: vld1q_u32
      Src: /src/nss/lib/freebl/sha256-armv8.c:130,1
    - Dst: vld1q_u32
      Src: /src/nss/lib/freebl/sha256-armv8.c:131,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/sha256-armv8.c:149,1
    - Dst: SHA256_Compress_Native
      Src: /src/nss/lib/freebl/sha256-armv8.c:153,1
    - Dst: vld1q_u32
      Src: /src/nss/lib/freebl/sha256-armv8.c:157,1
    - Dst: vld1q_u32
      Src: /src/nss/lib/freebl/sha256-armv8.c:158,1
    - Dst: vreinterpretq_u32_u8
      Src: /src/nss/lib/freebl/sha256-armv8.c:163,1
    - Dst: vrev32q_u8
      Src: /src/nss/lib/freebl/sha256-armv8.c:163,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/sha256-armv8.c:163,1
    - Dst: vreinterpretq_u32_u8
      Src: /src/nss/lib/freebl/sha256-armv8.c:164,1
    - Dst: vrev32q_u8
      Src: /src/nss/lib/freebl/sha256-armv8.c:164,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/sha256-armv8.c:164,1
    - Dst: vreinterpretq_u32_u8
      Src: /src/nss/lib/freebl/sha256-armv8.c:165,1
    - Dst: vrev32q_u8
      Src: /src/nss/lib/freebl/sha256-armv8.c:165,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/sha256-armv8.c:165,1
    - Dst: vreinterpretq_u32_u8
      Src: /src/nss/lib/freebl/sha256-armv8.c:166,1
    - Dst: vrev32q_u8
      Src: /src/nss/lib/freebl/sha256-armv8.c:166,1
    - Dst: vld1q_u8
      Src: /src/nss/lib/freebl/sha256-armv8.c:166,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-armv8.c:173,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-armv8.c:174,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-armv8.c:175,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-armv8.c:176,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-armv8.c:177,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-armv8.c:178,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-armv8.c:179,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-armv8.c:180,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-armv8.c:181,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-armv8.c:182,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-armv8.c:183,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-armv8.c:184,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-armv8.c:185,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-armv8.c:186,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-armv8.c:187,1
    - Dst: ROUND
      Src: /src/nss/lib/freebl/sha256-armv8.c:188,1
    - Dst: vaddq_u32
      Src: /src/nss/lib/freebl/sha256-armv8.c:190,1
    - Dst: vaddq_u32
      Src: /src/nss/lib/freebl/sha256-armv8.c:191,1
    - Dst: vst1q_u32
      Src: /src/nss/lib/freebl/sha256-armv8.c:194,1
    - Dst: vst1q_u32
      Src: /src/nss/lib/freebl/sha256-armv8.c:195,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/sha256-armv8.c:199,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 48
    argCount: 3
    argNames:
    - ctx
    - input
    - inputLen
    argTypes:
    - SHA256Context*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 201
    functionName: SHA256_Update_Native
    functionSourceFile: /src/nss/lib/freebl/sha256-armv8.c
    functionUses: 0
    functionsReached:
    - vst1q_u32
    - memcpy
    - vaddq_u32
    - vld1q_u8
    - vrev32q_u8
    - vld1q_u32
    - ROUND
    - vreinterpretq_u32_u8
    - SHA256_Compress_Native
    linkageType: ''
    returnType: void
    signature: "void SHA256_Update_Native(SHA256Context *ctx, const unsigned char
      *input,\n                     unsigned int inputLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_New
      Src: /src/nss/lib/freebl/sha3.c:21,1
    - Dst: Hacl_Streaming_Keccak_malloc
      Src: /src/nss/lib/freebl/sha3.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 24
    functionName: SHA3_224_NewContext
    functionSourceFile: /src/nss/lib/freebl/sha3.c
    functionUses: 0
    functionsReached:
    - Hacl_Streaming_Keccak_malloc
    - PORT_New
    linkageType: ''
    returnType: SHA3_224Context
    signature: 'SHA3_224Context *

      SHA3_224_NewContext()'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_New
      Src: /src/nss/lib/freebl/sha3.c:29,1
    - Dst: Hacl_Streaming_Keccak_malloc
      Src: /src/nss/lib/freebl/sha3.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 32
    functionName: SHA3_256_NewContext
    functionSourceFile: /src/nss/lib/freebl/sha3.c
    functionUses: 0
    functionsReached:
    - Hacl_Streaming_Keccak_malloc
    - PORT_New
    linkageType: ''
    returnType: SHA3_256Context
    signature: 'SHA3_256Context *

      SHA3_256_NewContext()'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_New
      Src: /src/nss/lib/freebl/sha3.c:37,1
    - Dst: Hacl_Streaming_Keccak_malloc
      Src: /src/nss/lib/freebl/sha3.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: SHA3_384_NewContext
    functionSourceFile: /src/nss/lib/freebl/sha3.c
    functionUses: 0
    functionsReached:
    - Hacl_Streaming_Keccak_malloc
    - PORT_New
    linkageType: ''
    returnType: SHA3_384Context
    signature: 'SHA3_384Context *

      SHA3_384_NewContext()'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_New
      Src: /src/nss/lib/freebl/sha3.c:45,1
    - Dst: Hacl_Streaming_Keccak_malloc
      Src: /src/nss/lib/freebl/sha3.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 48
    functionName: SHA3_512_NewContext
    functionSourceFile: /src/nss/lib/freebl/sha3.c
    functionUses: 0
    functionsReached:
    - Hacl_Streaming_Keccak_malloc
    - PORT_New
    linkageType: ''
    returnType: SHA3_512Context
    signature: 'SHA3_512Context *

      SHA3_512_NewContext()'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Streaming_Keccak_reset
      Src: /src/nss/lib/freebl/sha3.c:53,1
    - Dst: Hacl_Streaming_Keccak_free
      Src: /src/nss/lib/freebl/sha3.c:55,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/sha3.c:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - freeit
    argTypes:
    - SHA3_224Context*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 58
    functionName: SHA3_224_DestroyContext
    functionSourceFile: /src/nss/lib/freebl/sha3.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - Hacl_Streaming_Keccak_reset
    - Hacl_Streaming_Keccak_free
    linkageType: ''
    returnType: void
    signature: void SHA3_224_DestroyContext(SHA3_224Context *ctx, PRBool freeit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Streaming_Keccak_reset
      Src: /src/nss/lib/freebl/sha3.c:63,1
    - Dst: Hacl_Streaming_Keccak_free
      Src: /src/nss/lib/freebl/sha3.c:65,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/sha3.c:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - freeit
    argTypes:
    - SHA3_256Context*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 68
    functionName: SHA3_256_DestroyContext
    functionSourceFile: /src/nss/lib/freebl/sha3.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - Hacl_Streaming_Keccak_reset
    - Hacl_Streaming_Keccak_free
    linkageType: ''
    returnType: void
    signature: void SHA3_256_DestroyContext(SHA3_256Context *ctx, PRBool freeit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Streaming_Keccak_reset
      Src: /src/nss/lib/freebl/sha3.c:73,1
    - Dst: Hacl_Streaming_Keccak_free
      Src: /src/nss/lib/freebl/sha3.c:75,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/sha3.c:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - freeit
    argTypes:
    - SHA3_384Context*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 78
    functionName: SHA3_384_DestroyContext
    functionSourceFile: /src/nss/lib/freebl/sha3.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - Hacl_Streaming_Keccak_reset
    - Hacl_Streaming_Keccak_free
    linkageType: ''
    returnType: void
    signature: void SHA3_384_DestroyContext(SHA3_384Context *ctx, PRBool freeit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Streaming_Keccak_reset
      Src: /src/nss/lib/freebl/sha3.c:83,1
    - Dst: Hacl_Streaming_Keccak_free
      Src: /src/nss/lib/freebl/sha3.c:85,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/sha3.c:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - freeit
    argTypes:
    - SHA3_512Context*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 88
    functionName: SHA3_512_DestroyContext
    functionSourceFile: /src/nss/lib/freebl/sha3.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - Hacl_Streaming_Keccak_reset
    - Hacl_Streaming_Keccak_free
    linkageType: ''
    returnType: void
    signature: void SHA3_512_DestroyContext(SHA3_512Context *ctx, PRBool freeit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SHA3_224Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 94
    functionName: SHA3_224_FlattenSize
    functionSourceFile: /src/nss/lib/freebl/sha3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int SHA3_224_FlattenSize(SHA3_224Context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SHA3_256Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 100
    functionName: SHA3_256_FlattenSize
    functionSourceFile: /src/nss/lib/freebl/sha3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int SHA3_256_FlattenSize(SHA3_256Context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SHA3_384Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: SHA3_384_FlattenSize
    functionSourceFile: /src/nss/lib/freebl/sha3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int SHA3_384_FlattenSize(SHA3_384Context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SHA3_512Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 112
    functionName: SHA3_512_FlattenSize
    functionSourceFile: /src/nss/lib/freebl/sha3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int SHA3_512_FlattenSize(SHA3_512Context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Streaming_Keccak_reset
      Src: /src/nss/lib/freebl/sha3.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SHA3_224Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 118
    functionName: SHA3_224_Begin
    functionSourceFile: /src/nss/lib/freebl/sha3.c
    functionUses: 0
    functionsReached:
    - Hacl_Streaming_Keccak_reset
    linkageType: ''
    returnType: void
    signature: void SHA3_224_Begin(SHA3_224Context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Streaming_Keccak_reset
      Src: /src/nss/lib/freebl/sha3.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SHA3_256Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 124
    functionName: SHA3_256_Begin
    functionSourceFile: /src/nss/lib/freebl/sha3.c
    functionUses: 0
    functionsReached:
    - Hacl_Streaming_Keccak_reset
    linkageType: ''
    returnType: void
    signature: void SHA3_256_Begin(SHA3_256Context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Streaming_Keccak_reset
      Src: /src/nss/lib/freebl/sha3.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SHA3_384Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 130
    functionName: SHA3_384_Begin
    functionSourceFile: /src/nss/lib/freebl/sha3.c
    functionUses: 0
    functionsReached:
    - Hacl_Streaming_Keccak_reset
    linkageType: ''
    returnType: void
    signature: void SHA3_384_Begin(SHA3_384Context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Streaming_Keccak_reset
      Src: /src/nss/lib/freebl/sha3.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SHA3_512Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 136
    functionName: SHA3_512_Begin
    functionSourceFile: /src/nss/lib/freebl/sha3.c
    functionUses: 0
    functionsReached:
    - Hacl_Streaming_Keccak_reset
    linkageType: ''
    returnType: void
    signature: void SHA3_512_Begin(SHA3_512Context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Streaming_Keccak_update
      Src: /src/nss/lib/freebl/sha3.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - input
    - inputLen
    argTypes:
    - SHA3_224Context*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 143
    functionName: SHA3_224_Update
    functionSourceFile: /src/nss/lib/freebl/sha3.c
    functionUses: 0
    functionsReached:
    - Hacl_Streaming_Keccak_update
    linkageType: ''
    returnType: void
    signature: "void SHA3_224_Update(SHA3_224Context *ctx, const unsigned char *input,\n
      \               unsigned int inputLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Streaming_Keccak_update
      Src: /src/nss/lib/freebl/sha3.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - input
    - inputLen
    argTypes:
    - SHA3_256Context*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 150
    functionName: SHA3_256_Update
    functionSourceFile: /src/nss/lib/freebl/sha3.c
    functionUses: 0
    functionsReached:
    - Hacl_Streaming_Keccak_update
    linkageType: ''
    returnType: void
    signature: "void SHA3_256_Update(SHA3_256Context *ctx, const unsigned char *input,\n
      \               unsigned int inputLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Streaming_Keccak_update
      Src: /src/nss/lib/freebl/sha3.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - input
    - inputLen
    argTypes:
    - SHA3_384Context*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 157
    functionName: SHA3_384_Update
    functionSourceFile: /src/nss/lib/freebl/sha3.c
    functionUses: 0
    functionsReached:
    - Hacl_Streaming_Keccak_update
    linkageType: ''
    returnType: void
    signature: "void SHA3_384_Update(SHA3_384Context *ctx, const unsigned char *input,\n
      \               unsigned int inputLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Streaming_Keccak_update
      Src: /src/nss/lib/freebl/sha3.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - input
    - inputLen
    argTypes:
    - SHA3_512Context*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 164
    functionName: SHA3_512_Update
    functionSourceFile: /src/nss/lib/freebl/sha3.c
    functionUses: 0
    functionsReached:
    - Hacl_Streaming_Keccak_update
    linkageType: ''
    returnType: void
    signature: "void SHA3_512_Update(SHA3_512Context *ctx, const unsigned char *input,\n
      \               unsigned int inputLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Streaming_Keccak_finish
      Src: /src/nss/lib/freebl/sha3.c:171,1
    - Dst: PR_MIN
      Src: /src/nss/lib/freebl/sha3.c:173,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/sha3.c:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ctx
    - digest
    - digestLen
    - maxDigestLen
    argTypes:
    - SHA3_224Context*
    - unsigned char*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 177
    functionName: SHA3_224_End
    functionSourceFile: /src/nss/lib/freebl/sha3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - Hacl_Streaming_Keccak_finish
    - PR_MIN
    linkageType: ''
    returnType: void
    signature: "void SHA3_224_End(SHA3_224Context *ctx, unsigned char *digest,\n             unsigned
      int *digestLen, unsigned int maxDigestLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Streaming_Keccak_finish
      Src: /src/nss/lib/freebl/sha3.c:184,1
    - Dst: PR_MIN
      Src: /src/nss/lib/freebl/sha3.c:186,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/sha3.c:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ctx
    - digest
    - digestLen
    - maxDigestLen
    argTypes:
    - SHA3_256Context*
    - unsigned char*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 190
    functionName: SHA3_256_End
    functionSourceFile: /src/nss/lib/freebl/sha3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - Hacl_Streaming_Keccak_finish
    - PR_MIN
    linkageType: ''
    returnType: void
    signature: "void SHA3_256_End(SHA3_256Context *ctx, unsigned char *digest,\n             unsigned
      int *digestLen, unsigned int maxDigestLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Streaming_Keccak_finish
      Src: /src/nss/lib/freebl/sha3.c:197,1
    - Dst: PR_MIN
      Src: /src/nss/lib/freebl/sha3.c:199,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/sha3.c:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ctx
    - digest
    - digestLen
    - maxDigestLen
    argTypes:
    - SHA3_384Context*
    - unsigned char*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 203
    functionName: SHA3_384_End
    functionSourceFile: /src/nss/lib/freebl/sha3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - Hacl_Streaming_Keccak_finish
    - PR_MIN
    linkageType: ''
    returnType: void
    signature: "void SHA3_384_End(SHA3_384Context *ctx, unsigned char *digest,\n             unsigned
      int *digestLen, unsigned int maxDigestLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Streaming_Keccak_finish
      Src: /src/nss/lib/freebl/sha3.c:210,1
    - Dst: PR_MIN
      Src: /src/nss/lib/freebl/sha3.c:212,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/sha3.c:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - ctx
    - digest
    - digestLen
    - maxDigestLen
    argTypes:
    - SHA3_512Context*
    - unsigned char*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 216
    functionName: SHA3_512_End
    functionSourceFile: /src/nss/lib/freebl/sha3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - Hacl_Streaming_Keccak_finish
    - PR_MIN
    linkageType: ''
    returnType: void
    signature: "void SHA3_512_End(SHA3_512Context *ctx, unsigned char *digest,\n             unsigned
      int *digestLen, unsigned int maxDigestLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA3_224_NewContext
      Src: /src/nss/lib/freebl/sha3.c:222,1
    - Dst: SHA3_224_Begin
      Src: /src/nss/lib/freebl/sha3.c:223,1
    - Dst: SHA3_224_Update
      Src: /src/nss/lib/freebl/sha3.c:224,1
    - Dst: SHA3_224_End
      Src: /src/nss/lib/freebl/sha3.c:225,1
    - Dst: SHA3_224_DestroyContext
      Src: /src/nss/lib/freebl/sha3.c:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - dest
    - src
    - src_length
    argTypes:
    - unsigned char*
    - unsigned char*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 228
    functionName: SHA3_224_HashBuf
    functionSourceFile: /src/nss/lib/freebl/sha3.c
    functionUses: 0
    functionsReached:
    - SHA3_224_NewContext
    - SHA3_224_End
    - SHA3_224_DestroyContext
    - SHA3_224_Update
    - SHA3_224_Begin
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SHA3_224_HashBuf(unsigned char *dest, const unsigned char
      *src,\n                 PRUint32 src_length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA3_256_NewContext
      Src: /src/nss/lib/freebl/sha3.c:234,1
    - Dst: SHA3_256_Begin
      Src: /src/nss/lib/freebl/sha3.c:235,1
    - Dst: SHA3_256_Update
      Src: /src/nss/lib/freebl/sha3.c:236,1
    - Dst: SHA3_256_End
      Src: /src/nss/lib/freebl/sha3.c:237,1
    - Dst: SHA3_256_DestroyContext
      Src: /src/nss/lib/freebl/sha3.c:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - dest
    - src
    - src_length
    argTypes:
    - unsigned char*
    - unsigned char*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 240
    functionName: SHA3_256_HashBuf
    functionSourceFile: /src/nss/lib/freebl/sha3.c
    functionUses: 0
    functionsReached:
    - SHA3_256_Begin
    - SHA3_256_DestroyContext
    - SHA3_256_NewContext
    - SHA3_256_Update
    - SHA3_256_End
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SHA3_256_HashBuf(unsigned char *dest, const unsigned char
      *src,\n                 PRUint32 src_length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA3_384_NewContext
      Src: /src/nss/lib/freebl/sha3.c:246,1
    - Dst: SHA3_384_Begin
      Src: /src/nss/lib/freebl/sha3.c:247,1
    - Dst: SHA3_384_Update
      Src: /src/nss/lib/freebl/sha3.c:248,1
    - Dst: SHA3_384_End
      Src: /src/nss/lib/freebl/sha3.c:249,1
    - Dst: SHA3_384_DestroyContext
      Src: /src/nss/lib/freebl/sha3.c:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - dest
    - src
    - src_length
    argTypes:
    - unsigned char*
    - unsigned char*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 252
    functionName: SHA3_384_HashBuf
    functionSourceFile: /src/nss/lib/freebl/sha3.c
    functionUses: 0
    functionsReached:
    - SHA3_384_NewContext
    - SHA3_384_Update
    - SHA3_384_DestroyContext
    - SHA3_384_End
    - SHA3_384_Begin
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SHA3_384_HashBuf(unsigned char *dest, const unsigned char
      *src,\n                 PRUint32 src_length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA3_512_NewContext
      Src: /src/nss/lib/freebl/sha3.c:258,1
    - Dst: SHA3_512_Begin
      Src: /src/nss/lib/freebl/sha3.c:259,1
    - Dst: SHA3_512_Update
      Src: /src/nss/lib/freebl/sha3.c:260,1
    - Dst: SHA3_512_End
      Src: /src/nss/lib/freebl/sha3.c:261,1
    - Dst: SHA3_512_DestroyContext
      Src: /src/nss/lib/freebl/sha3.c:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - dest
    - src
    - src_length
    argTypes:
    - unsigned char*
    - unsigned char*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 264
    functionName: SHA3_512_HashBuf
    functionSourceFile: /src/nss/lib/freebl/sha3.c
    functionUses: 0
    functionsReached:
    - SHA3_512_NewContext
    - SHA3_512_Begin
    - SHA3_512_End
    - SHA3_512_DestroyContext
    - SHA3_512_Update
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SHA3_512_HashBuf(unsigned char *dest, const unsigned char
      *src,\n                 PRUint32 src_length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA3_224_HashBuf
      Src: /src/nss/lib/freebl/sha3.c:269,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/freebl/sha3.c:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - unsigned char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 270
    functionName: SHA3_224_Hash
    functionSourceFile: /src/nss/lib/freebl/sha3.c
    functionUses: 0
    functionsReached:
    - SHA3_224_HashBuf
    - PORT_Strlen
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SHA3_224_Hash(unsigned char *dest, const char *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA3_256_HashBuf
      Src: /src/nss/lib/freebl/sha3.c:275,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/freebl/sha3.c:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - unsigned char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 276
    functionName: SHA3_256_Hash
    functionSourceFile: /src/nss/lib/freebl/sha3.c
    functionUses: 0
    functionsReached:
    - SHA3_256_HashBuf
    - PORT_Strlen
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SHA3_256_Hash(unsigned char *dest, const char *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA3_384_HashBuf
      Src: /src/nss/lib/freebl/sha3.c:281,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/freebl/sha3.c:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - unsigned char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 282
    functionName: SHA3_384_Hash
    functionSourceFile: /src/nss/lib/freebl/sha3.c
    functionUses: 0
    functionsReached:
    - SHA3_384_HashBuf
    - PORT_Strlen
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SHA3_384_Hash(unsigned char *dest, const char *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA3_512_HashBuf
      Src: /src/nss/lib/freebl/sha3.c:287,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/freebl/sha3.c:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - unsigned char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 288
    functionName: SHA3_512_Hash
    functionSourceFile: /src/nss/lib/freebl/sha3.c
    functionUses: 0
    functionsReached:
    - SHA3_512_HashBuf
    - PORT_Strlen
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SHA3_512_Hash(unsigned char *dest, const char *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: LSB
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LSB(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: MSB
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MSB(x)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: getLibName
      Src: /src/nss/lib/freebl/loader.c:39,1
    - Dst: PR_SetError
      Src: /src/nss/lib/freebl/loader.c:42,1
    - Dst: loader_LoadLibrary
      Src: /src/nss/lib/freebl/loader.c:46,1
    - Dst: PR_FindFunctionSymbol
      Src: /src/nss/lib/freebl/loader.c:48,1
    - Dst: getVector
      Src: /src/nss/lib/freebl/loader.c:51,1
    - Dst: MSB
      Src: /src/nss/lib/freebl/loader.c:55,1
    - Dst: MSB
      Src: /src/nss/lib/freebl/loader.c:55,1
    - Dst: LSB
      Src: /src/nss/lib/freebl/loader.c:56,1
    - Dst: LSB
      Src: /src/nss/lib/freebl/loader.c:56,1
    - Dst: PR_UnloadLibrary
      Src: /src/nss/lib/freebl/loader.c:67,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/loader.c:68,1
    - Dst: PR_UnloadLibrary
      Src: /src/nss/lib/freebl/loader.c:72,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 76
    functionName: freebl_LoadDSO
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - PR_FindFunctionSymbol
    - MSB
    - PR_UnloadLibrary
    - getVector
    - LSB
    - PR_SetError
    - getLibName
    - loader_LoadLibrary
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus freebl_LoadDSO(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_CallOnce
      Src: /src/nss/lib/freebl/loader.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 88
    functionName: freebl_RunLoaderOnce
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - PR_CallOnce
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus freebl_RunLoaderOnce(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 96
    functionName: BL_Init
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 4
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus BL_Init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - keySizeInBits
    - publicExponent
    argTypes:
    - int
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 104
    functionName: RSA_NewKey
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 6
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: RSAPrivateKey
    signature: 'RSAPrivateKey *

      RSA_NewKey(int keySizeInBits, SECItem *publicExponent)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - key
    - output
    - input
    argTypes:
    - RSAPublicKey*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 114
    functionName: RSA_PublicKeyOp
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 12
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus RSA_PublicKeyOp(RSAPublicKey *key,\n                unsigned
      char *output,\n                const unsigned char *input)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - key
    - output
    - input
    argTypes:
    - RSAPrivateKey*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 124
    functionName: RSA_PrivateKeyOp
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 5
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus RSA_PrivateKeyOp(RSAPrivateKey *key,\n                 unsigned
      char *output,\n                 const unsigned char *input)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - key
    - output
    - input
    argTypes:
    - RSAPrivateKey*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 134
    functionName: RSA_PrivateKeyOpDoubleChecked
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 4
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus RSA_PrivateKeyOpDoubleChecked(RSAPrivateKey *key,\n                              unsigned
      char *output,\n                              const unsigned char *input)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - RSAPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 142
    functionName: RSA_PrivateKeyCheck
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus RSA_PrivateKeyCheck(const RSAPrivateKey *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:147,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - params
    - privKey
    argTypes:
    - PQGParams*
    - DSAPrivateKey**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 150
    functionName: DSA_NewKey
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 5
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus DSA_NewKey(const PQGParams *params, DSAPrivateKey **privKey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - key
    - signature
    - digest
    argTypes:
    - DSAPrivateKey*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 158
    functionName: DSA_SignDigest
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 5
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus DSA_SignDigest(DSAPrivateKey *key, SECItem *signature, const
      SECItem *digest)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:164,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - key
    - signature
    - digest
    argTypes:
    - DSAPublicKey*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 167
    functionName: DSA_VerifyDigest
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 6
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus DSA_VerifyDigest(DSAPublicKey *key, const SECItem *signature,\n
      \                const SECItem *digest)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - params
    - seed
    - privKey
    argTypes:
    - PQGParams*
    - unsigned char*
    - DSAPrivateKey**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 176
    functionName: DSA_NewKeyFromSeed
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus DSA_NewKeyFromSeed(const PQGParams *params, const unsigned
      char *seed,\n                   DSAPrivateKey **privKey)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:182,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - key
    - signature
    - digest
    - seed
    argTypes:
    - DSAPrivateKey*
    - SECItem*
    - SECItem*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 185
    functionName: DSA_SignDigestWithSeed
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 4
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus DSA_SignDigestWithSeed(DSAPrivateKey *key, SECItem *signature,\n
      \                      const SECItem *digest, const unsigned char *seed)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - arena
    - q
    - seed
    argTypes:
    - PLArenaPool*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 193
    functionName: DSA_NewRandom
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 3
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus DSA_NewRandom(PLArenaPool *arena, const SECItem *q, SECItem
      *seed)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - primeLen
    - params
    argTypes:
    - int
    - DHParams**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 201
    functionName: DH_GenParam
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus DH_GenParam(int primeLen, DHParams **params)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:206,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - params
    - privKey
    argTypes:
    - DHParams*
    - DHPrivateKey**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 209
    functionName: DH_NewKey
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus DH_NewKey(DHParams *params, DHPrivateKey **privKey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:215,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 5
    argNames:
    - publicValue
    - prime
    - privateValue
    - derivedSecret
    - maxOutBytes
    argTypes:
    - SECItem*
    - SECItem*
    - SECItem*
    - SECItem*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 219
    functionName: DH_Derive
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 8
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus DH_Derive(SECItem *publicValue, SECItem *prime, SECItem
      *privateValue,\n          SECItem *derivedSecret, unsigned int maxOutBytes)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:225,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 6
    argNames:
    - prime
    - public1
    - public2
    - private1
    - private2
    - derivedSecret
    argTypes:
    - SECItem*
    - SECItem*
    - SECItem*
    - SECItem*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 229
    functionName: KEA_Derive
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus KEA_Derive(SECItem *prime, SECItem *public1, SECItem *public2,\n
      \          SECItem *private1, SECItem *private2, SECItem *derivedSecret)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:234,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - Y
    - prime
    - subPrime
    argTypes:
    - SECItem*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 237
    functionName: KEA_Verify
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: PRBool
    signature: PRBool KEA_Verify(SECItem *Y, SECItem *prime, SECItem *subPrime)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:242,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - prime
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 245
    functionName: KEA_PrimeCheck
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: PRBool
    signature: PRBool KEA_PrimeCheck(SECItem *prime)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:250,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - key
    - len
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 253
    functionName: RC4_CreateContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: RC4Context
    signature: 'RC4Context *

      RC4_CreateContext(const unsigned char *key, int len)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:258,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - cx
    - freeit
    argTypes:
    - RC4Context*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 261
    functionName: RC4_DestroyContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 2
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void RC4_DestroyContext(RC4Context *cx, PRBool freeit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:268,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 6
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - RC4Context*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 272
    functionName: RC4_Encrypt
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus RC4_Encrypt(RC4Context *cx, unsigned char *output, unsigned
      int *outputLen,\n            unsigned int maxOutputLen, const unsigned char
      *input,\n            unsigned int inputLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:279,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 6
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - RC4Context*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 283
    functionName: RC4_Decrypt
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus RC4_Decrypt(RC4Context *cx, unsigned char *output, unsigned
      int *outputLen,\n            unsigned int maxOutputLen, const unsigned char
      *input,\n            unsigned int inputLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:289,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 5
    argNames:
    - key
    - len
    - iv
    - mode
    - effectiveKeyLen
    argTypes:
    - unsigned char*
    - unsigned int
    - unsigned char*
    - int
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 296
    functionName: RC2_CreateContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: RC2Context
    signature: "RC2Context *\nRC2_CreateContext(const unsigned char *key, unsigned
      int len,\n                  const unsigned char *iv, int mode, unsigned effectiveKeyLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:301,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - cx
    - freeit
    argTypes:
    - RC2Context*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 308
    functionName: RC2_DestroyContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 2
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void RC2_DestroyContext(RC2Context *cx, PRBool freeit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:315,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 6
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - RC2Context*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 323
    functionName: RC2_Encrypt
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus RC2_Encrypt(RC2Context *cx, unsigned char *output, unsigned
      int *outputLen,\n            unsigned int maxOutputLen, const unsigned char
      *input,\n            unsigned int inputLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:330,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 6
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - RC2Context*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 338
    functionName: RC2_Decrypt
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus RC2_Decrypt(RC2Context *cx, unsigned char *output, unsigned
      int *outputLen,\n            unsigned int maxOutputLen, const unsigned char
      *input,\n            unsigned int inputLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:344,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 5
    argNames:
    - key
    - rounds
    - wordSize
    - iv
    - mode
    argTypes:
    - SECItem*
    - unsigned int
    - unsigned int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 347
    functionName: RC5_CreateContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: RC5Context
    signature: "RC5Context *\nRC5_CreateContext(const SECItem *key, unsigned int rounds,\n
      \                 unsigned int wordSize, const unsigned char *iv, int mode)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:352,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - cx
    - freeit
    argTypes:
    - RC5Context*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 355
    functionName: RC5_DestroyContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void RC5_DestroyContext(RC5Context *cx, PRBool freeit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:362,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 6
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - RC5Context*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 366
    functionName: RC5_Encrypt
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus RC5_Encrypt(RC5Context *cx, unsigned char *output, unsigned
      int *outputLen,\n            unsigned int maxOutputLen, const unsigned char
      *input,\n            unsigned int inputLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:373,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 6
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - RC5Context*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 377
    functionName: RC5_Decrypt
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus RC5_Decrypt(RC5Context *cx, unsigned char *output, unsigned
      int *outputLen,\n            unsigned int maxOutputLen, const unsigned char
      *input,\n            unsigned int inputLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:383,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - key
    - iv
    - mode
    - encrypt
    argTypes:
    - unsigned char*
    - unsigned char*
    - int
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 386
    functionName: DES_CreateContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 4
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: DESContext
    signature: "DESContext *\nDES_CreateContext(const unsigned char *key, const unsigned
      char *iv,\n                  int mode, PRBool encrypt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:391,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - cx
    - freeit
    argTypes:
    - DESContext*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 394
    functionName: DES_DestroyContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 5
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void DES_DestroyContext(DESContext *cx, PRBool freeit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:401,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 6
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - DESContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 405
    functionName: DES_Encrypt
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 4
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus DES_Encrypt(DESContext *cx, unsigned char *output, unsigned
      int *outputLen,\n            unsigned int maxOutputLen, const unsigned char
      *input,\n            unsigned int inputLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:412,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 6
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - DESContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 416
    functionName: DES_Decrypt
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 4
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus DES_Decrypt(DESContext *cx, unsigned char *output, unsigned
      int *outputLen,\n            unsigned int maxOutputLen, const unsigned char
      *input,\n            unsigned int inputLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:421,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - key
    - iv
    - mode
    - encrypt
    argTypes:
    - unsigned char*
    - unsigned char*
    - int
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 428
    functionName: SEED_CreateContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SEEDContext
    signature: "SEEDContext *\nSEED_CreateContext(const unsigned char *key, const
      unsigned char *iv,\n                   int mode, PRBool encrypt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:433,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - cx
    - freeit
    argTypes:
    - SEEDContext*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 440
    functionName: SEED_DestroyContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 2
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void SEED_DestroyContext(SEEDContext *cx, PRBool freeit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:447,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 6
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - SEEDContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 455
    functionName: SEED_Encrypt
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SEED_Encrypt(SEEDContext *cx, unsigned char *output, unsigned
      int *outputLen,\n             unsigned int maxOutputLen, const unsigned char
      *input,\n             unsigned int inputLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:462,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 6
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - SEEDContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 470
    functionName: SEED_Decrypt
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SEED_Decrypt(SEEDContext *cx, unsigned char *output, unsigned
      int *outputLen,\n             unsigned int maxOutputLen, const unsigned char
      *input,\n             unsigned int inputLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:477,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 6
    argNames:
    - key
    - iv
    - mode
    - encrypt
    - keylen
    - blocklen
    argTypes:
    - unsigned char*
    - unsigned char*
    - int
    - int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 481
    functionName: AES_CreateContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 7
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: AESContext
    signature: "AESContext *\nAES_CreateContext(const unsigned char *key, const unsigned
      char *iv,\n                  int mode, int encrypt,\n                  unsigned
      int keylen, unsigned int blocklen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:486,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - cx
    - freeit
    argTypes:
    - AESContext*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 489
    functionName: AES_DestroyContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 11
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void AES_DestroyContext(AESContext *cx, PRBool freeit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:496,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 6
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - AESContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 500
    functionName: AES_Encrypt
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 9
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus AES_Encrypt(AESContext *cx, unsigned char *output,\n            unsigned
      int *outputLen, unsigned int maxOutputLen,\n            const unsigned char
      *input, unsigned int inputLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:507,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 6
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - AESContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 511
    functionName: AES_Decrypt
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 8
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus AES_Decrypt(AESContext *cx, unsigned char *output,\n            unsigned
      int *outputLen, unsigned int maxOutputLen,\n            const unsigned char
      *input, unsigned int inputLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:520,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 10
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    - params
    - paramsLen
    - aad
    - aadLen
    argTypes:
    - AESContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    - void*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 524
    functionName: AES_AEAD
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus AES_AEAD(AESContext *cx, unsigned char *output,\n         unsigned
      int *outputLen, unsigned int maxOutputLen,\n         const unsigned char *input,
      unsigned int inputLen,\n         void *params, unsigned int paramsLen,\n         const
      unsigned char *aad, unsigned int aadLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:529,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - unsigned char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 532
    functionName: MD5_Hash
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus MD5_Hash(unsigned char *dest, const char *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:537,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - dest
    - src
    - src_length
    argTypes:
    - unsigned char*
    - unsigned char*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 540
    functionName: MD5_HashBuf
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus MD5_HashBuf(unsigned char *dest, const unsigned char *src,
      PRUint32 src_length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:545,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 548
    functionName: MD5_NewContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 2
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: MD5Context
    signature: 'MD5Context *

      MD5_NewContext(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:553,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - cx
    - freeit
    argTypes:
    - MD5Context*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 550
    functionDepth: 0
    functionLinenumber: 550
    functionLinenumberEnd: 556
    functionName: MD5_DestroyContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void MD5_DestroyContext(MD5Context *cx, PRBool freeit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:561,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - cx
    argTypes:
    - MD5Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 564
    functionName: MD5_Begin
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 2
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void MD5_Begin(MD5Context *cx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:569,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - cx
    - input
    - inputLen
    argTypes:
    - MD5Context*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 572
    functionName: MD5_Update
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 3
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void MD5_Update(MD5Context *cx, const unsigned char *input, unsigned
      int inputLen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:578,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - cx
    - digest
    - digestLen
    - maxDigestLen
    argTypes:
    - MD5Context*
    - unsigned char*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 581
    functionName: MD5_End
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 2
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: "void MD5_End(MD5Context *cx, unsigned char *digest,\n        unsigned
      int *digestLen, unsigned int maxDigestLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:586,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - cx
    argTypes:
    - MD5Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 589
    functionName: MD5_FlattenSize
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int MD5_FlattenSize(MD5Context *cx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:594,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - cx
    - space
    argTypes:
    - MD5Context*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 597
    functionName: MD5_Flatten
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus MD5_Flatten(MD5Context *cx, unsigned char *space)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:602,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - space
    - arg
    argTypes:
    - unsigned char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 599
    functionDepth: 0
    functionLinenumber: 599
    functionLinenumberEnd: 605
    functionName: MD5_Resurrect
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: MD5Context
    signature: 'MD5Context *

      MD5_Resurrect(unsigned char *space, void *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:610,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - cx
    argTypes:
    - MD5Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 607
    functionDepth: 0
    functionLinenumber: 607
    functionLinenumberEnd: 613
    functionName: MD5_TraceState
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void MD5_TraceState(MD5Context *cx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:618,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - unsigned char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 615
    functionDepth: 0
    functionLinenumber: 615
    functionLinenumberEnd: 621
    functionName: MD2_Hash
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus MD2_Hash(unsigned char *dest, const char *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:626,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 623
    functionDepth: 0
    functionLinenumber: 623
    functionLinenumberEnd: 629
    functionName: MD2_NewContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 4
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: MD2Context
    signature: 'MD2Context *

      MD2_NewContext(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:634,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - cx
    - freeit
    argTypes:
    - MD2Context*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 631
    functionDepth: 0
    functionLinenumber: 631
    functionLinenumberEnd: 637
    functionName: MD2_DestroyContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 3
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void MD2_DestroyContext(MD2Context *cx, PRBool freeit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:642,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - cx
    argTypes:
    - MD2Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 639
    functionDepth: 0
    functionLinenumber: 639
    functionLinenumberEnd: 645
    functionName: MD2_Begin
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 3
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void MD2_Begin(MD2Context *cx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:650,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - cx
    - input
    - inputLen
    argTypes:
    - MD2Context*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 653
    functionName: MD2_Update
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 3
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void MD2_Update(MD2Context *cx, const unsigned char *input, unsigned
      int inputLen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:659,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - cx
    - digest
    - digestLen
    - maxDigestLen
    argTypes:
    - MD2Context*
    - unsigned char*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 662
    functionName: MD2_End
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 3
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: "void MD2_End(MD2Context *cx, unsigned char *digest,\n        unsigned
      int *digestLen, unsigned int maxDigestLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:667,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - cx
    argTypes:
    - MD2Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 664
    functionDepth: 0
    functionLinenumber: 664
    functionLinenumberEnd: 670
    functionName: MD2_FlattenSize
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int MD2_FlattenSize(MD2Context *cx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:675,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - cx
    - space
    argTypes:
    - MD2Context*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 672
    functionDepth: 0
    functionLinenumber: 672
    functionLinenumberEnd: 678
    functionName: MD2_Flatten
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus MD2_Flatten(MD2Context *cx, unsigned char *space)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:683,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - space
    - arg
    argTypes:
    - unsigned char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 686
    functionName: MD2_Resurrect
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: MD2Context
    signature: 'MD2Context *

      MD2_Resurrect(unsigned char *space, void *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:691,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - unsigned char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 688
    functionDepth: 0
    functionLinenumber: 688
    functionLinenumberEnd: 694
    functionName: SHA1_Hash
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SHA1_Hash(unsigned char *dest, const char *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:699,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - dest
    - src
    - src_length
    argTypes:
    - unsigned char*
    - unsigned char*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 696
    functionDepth: 0
    functionLinenumber: 696
    functionLinenumberEnd: 702
    functionName: SHA1_HashBuf
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 4
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SHA1_HashBuf(unsigned char *dest, const unsigned char *src,
      PRUint32 src_length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:707,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 704
    functionDepth: 0
    functionLinenumber: 704
    functionLinenumberEnd: 710
    functionName: SHA1_NewContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 2
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SHA1Context
    signature: 'SHA1Context *

      SHA1_NewContext(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:715,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - cx
    - freeit
    argTypes:
    - SHA1Context*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 712
    functionDepth: 0
    functionLinenumber: 712
    functionLinenumberEnd: 718
    functionName: SHA1_DestroyContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void SHA1_DestroyContext(SHA1Context *cx, PRBool freeit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:723,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - cx
    argTypes:
    - SHA1Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 720
    functionDepth: 0
    functionLinenumber: 720
    functionLinenumberEnd: 726
    functionName: SHA1_Begin
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 2
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void SHA1_Begin(SHA1Context *cx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:732,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - cx
    - input
    - inputLen
    argTypes:
    - SHA1Context*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 728
    functionDepth: 0
    functionLinenumber: 728
    functionLinenumberEnd: 735
    functionName: SHA1_Update
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 2
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: "void SHA1_Update(SHA1Context *cx, const unsigned char *input,\n            unsigned
      int inputLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:741,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - cx
    - digest
    - digestLen
    - maxDigestLen
    argTypes:
    - SHA1Context*
    - unsigned char*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 737
    functionDepth: 0
    functionLinenumber: 737
    functionLinenumberEnd: 744
    functionName: SHA1_End
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 2
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: "void SHA1_End(SHA1Context *cx, unsigned char *digest,\n         unsigned
      int *digestLen, unsigned int maxDigestLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:749,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - cx
    argTypes:
    - SHA1Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 752
    functionName: SHA1_TraceState
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void SHA1_TraceState(SHA1Context *cx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:757,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - cx
    argTypes:
    - SHA1Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 754
    functionDepth: 0
    functionLinenumber: 754
    functionLinenumberEnd: 760
    functionName: SHA1_FlattenSize
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int SHA1_FlattenSize(SHA1Context *cx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:765,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - cx
    - space
    argTypes:
    - SHA1Context*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 762
    functionDepth: 0
    functionLinenumber: 762
    functionLinenumberEnd: 768
    functionName: SHA1_Flatten
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SHA1_Flatten(SHA1Context *cx, unsigned char *space)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:773,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - space
    - arg
    argTypes:
    - unsigned char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 776
    functionName: SHA1_Resurrect
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SHA1Context
    signature: 'SHA1Context *

      SHA1_Resurrect(unsigned char *space, void *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:781,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 778
    functionDepth: 0
    functionLinenumber: 778
    functionLinenumberEnd: 784
    functionName: RNG_RNGInit
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 7
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus RNG_RNGInit(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:789,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - data
    - bytes
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 786
    functionDepth: 0
    functionLinenumber: 786
    functionLinenumberEnd: 792
    functionName: RNG_RandomUpdate
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 17
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus RNG_RandomUpdate(const void *data, size_t bytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:797,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - dest
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 794
    functionDepth: 0
    functionLinenumber: 794
    functionLinenumberEnd: 800
    functionName: RNG_GenerateGlobalRandomBytes
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 20
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus RNG_GenerateGlobalRandomBytes(void *dest, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:805,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 802
    functionDepth: 0
    functionLinenumber: 802
    functionLinenumberEnd: 808
    functionName: RNG_RNGShutdown
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void RNG_RNGShutdown(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:813,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - j
    - pParams
    - pVfy
    argTypes:
    - unsigned int
    - PQGParams**
    - PQGVerify**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 810
    functionDepth: 0
    functionLinenumber: 810
    functionLinenumberEnd: 816
    functionName: PQG_ParamGen
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 3
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PQG_ParamGen(unsigned int j, PQGParams **pParams, PQGVerify
      **pVfy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:822,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - j
    - seedBytes
    - pParams
    - pVfy
    argTypes:
    - unsigned int
    - unsigned int
    - PQGParams**
    - PQGVerify**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 818
    functionDepth: 0
    functionLinenumber: 818
    functionLinenumberEnd: 825
    functionName: PQG_ParamGenSeedLen
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 4
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PQG_ParamGenSeedLen(unsigned int j, unsigned int seedBytes,\n
      \                   PQGParams **pParams, PQGVerify **pVfy)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:831,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - params
    - vfy
    - result
    argTypes:
    - PQGParams*
    - PQGVerify*
    - SECStatus*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 827
    functionDepth: 0
    functionLinenumber: 827
    functionLinenumberEnd: 834
    functionName: PQG_VerifyParams
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 3
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PQG_VerifyParams(const PQGParams *params, const PQGVerify
      *vfy,\n                 SECStatus *result)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:839,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - params
    argTypes:
    - PQGParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 836
    functionDepth: 0
    functionLinenumber: 836
    functionLinenumberEnd: 842
    functionName: PQG_DestroyParams
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 6
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void PQG_DestroyParams(PQGParams *params)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:847,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - vfy
    argTypes:
    - PQGVerify*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 844
    functionDepth: 0
    functionLinenumber: 844
    functionLinenumberEnd: 850
    functionName: PQG_DestroyVerify
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 6
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void PQG_DestroyVerify(PQGVerify *vfy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:855,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 852
    functionDepth: 0
    functionLinenumber: 852
    functionLinenumberEnd: 858
    functionName: BL_Cleanup
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void BL_Cleanup(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/freebl/loader.c:869,1
    - Dst: PR_UnloadLibrary
      Src: /src/nss/lib/freebl/loader.c:872,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/loader.c:873,1
    - Dst: PR_UnloadLibrary
      Src: /src/nss/lib/freebl/loader.c:875,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 860
    functionDepth: 1
    functionLinenumber: 860
    functionLinenumberEnd: 880
    functionName: BL_Unload
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PR_UnloadLibrary
    - PR_GetEnvSecure
    linkageType: ''
    returnType: void
    signature: void BL_Unload(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:887,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - unsigned char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 884
    functionDepth: 0
    functionLinenumber: 884
    functionLinenumberEnd: 890
    functionName: SHA256_Hash
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SHA256_Hash(unsigned char *dest, const char *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:895,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - dest
    - src
    - src_length
    argTypes:
    - unsigned char*
    - unsigned char*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 892
    functionDepth: 0
    functionLinenumber: 892
    functionLinenumberEnd: 898
    functionName: SHA256_HashBuf
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 7
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SHA256_HashBuf(unsigned char *dest, const unsigned char *src,
      PRUint32 src_length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:903,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 900
    functionDepth: 0
    functionLinenumber: 900
    functionLinenumberEnd: 906
    functionName: SHA256_NewContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 3
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SHA256Context
    signature: 'SHA256Context *

      SHA256_NewContext(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:911,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - cx
    - freeit
    argTypes:
    - SHA256Context*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 908
    functionDepth: 0
    functionLinenumber: 908
    functionLinenumberEnd: 914
    functionName: SHA256_DestroyContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 6
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void SHA256_DestroyContext(SHA256Context *cx, PRBool freeit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:919,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - cx
    argTypes:
    - SHA256Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 916
    functionDepth: 0
    functionLinenumber: 916
    functionLinenumberEnd: 922
    functionName: SHA256_Begin
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 7
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void SHA256_Begin(SHA256Context *cx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:928,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - cx
    - input
    - inputLen
    argTypes:
    - SHA256Context*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 924
    functionDepth: 0
    functionLinenumber: 924
    functionLinenumberEnd: 931
    functionName: SHA256_Update
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 8
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: "void SHA256_Update(SHA256Context *cx, const unsigned char *input,\n
      \             unsigned int inputLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:937,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - cx
    - digest
    - digestLen
    - maxDigestLen
    argTypes:
    - SHA256Context*
    - unsigned char*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 933
    functionDepth: 0
    functionLinenumber: 933
    functionLinenumberEnd: 940
    functionName: SHA256_End
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 9
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: "void SHA256_End(SHA256Context *cx, unsigned char *digest,\n           unsigned
      int *digestLen, unsigned int maxDigestLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:945,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - cx
    argTypes:
    - SHA256Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 942
    functionDepth: 0
    functionLinenumber: 942
    functionLinenumberEnd: 948
    functionName: SHA256_TraceState
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void SHA256_TraceState(SHA256Context *cx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:953,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - cx
    argTypes:
    - SHA256Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 950
    functionDepth: 0
    functionLinenumber: 950
    functionLinenumberEnd: 956
    functionName: SHA256_FlattenSize
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 2
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int SHA256_FlattenSize(SHA256Context *cx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:961,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - cx
    - space
    argTypes:
    - SHA256Context*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 964
      start: 958
    functionDepth: 0
    functionLinenumber: 958
    functionLinenumberEnd: 964
    functionName: SHA256_Flatten
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 2
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SHA256_Flatten(SHA256Context *cx, unsigned char *space)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:969,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - space
    - arg
    argTypes:
    - unsigned char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 966
    functionDepth: 0
    functionLinenumber: 966
    functionLinenumberEnd: 972
    functionName: SHA256_Resurrect
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 2
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SHA256Context
    signature: 'SHA256Context *

      SHA256_Resurrect(unsigned char *space, void *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:977,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - unsigned char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 974
    functionDepth: 0
    functionLinenumber: 974
    functionLinenumberEnd: 980
    functionName: SHA512_Hash
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 2
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SHA512_Hash(unsigned char *dest, const char *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:985,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - dest
    - src
    - src_length
    argTypes:
    - unsigned char*
    - unsigned char*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 982
    functionDepth: 0
    functionLinenumber: 982
    functionLinenumberEnd: 988
    functionName: SHA512_HashBuf
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 4
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SHA512_HashBuf(unsigned char *dest, const unsigned char *src,
      PRUint32 src_length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:993,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 990
    functionDepth: 0
    functionLinenumber: 990
    functionLinenumberEnd: 996
    functionName: SHA512_NewContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 5
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SHA512Context
    signature: 'SHA512Context *

      SHA512_NewContext(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1001,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - cx
    - freeit
    argTypes:
    - SHA512Context*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 998
    functionDepth: 0
    functionLinenumber: 998
    functionLinenumberEnd: 1004
    functionName: SHA512_DestroyContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 4
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void SHA512_DestroyContext(SHA512Context *cx, PRBool freeit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1009,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - cx
    argTypes:
    - SHA512Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1012
      start: 1006
    functionDepth: 0
    functionLinenumber: 1006
    functionLinenumberEnd: 1012
    functionName: SHA512_Begin
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 4
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void SHA512_Begin(SHA512Context *cx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1018,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - cx
    - input
    - inputLen
    argTypes:
    - SHA512Context*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 1014
    functionDepth: 0
    functionLinenumber: 1014
    functionLinenumberEnd: 1021
    functionName: SHA512_Update
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 7
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: "void SHA512_Update(SHA512Context *cx, const unsigned char *input,\n
      \             unsigned int inputLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1027,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - cx
    - digest
    - digestLen
    - maxDigestLen
    argTypes:
    - SHA512Context*
    - unsigned char*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1030
      start: 1023
    functionDepth: 0
    functionLinenumber: 1023
    functionLinenumberEnd: 1030
    functionName: SHA512_End
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 6
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: "void SHA512_End(SHA512Context *cx, unsigned char *digest,\n           unsigned
      int *digestLen, unsigned int maxDigestLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1035,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - cx
    argTypes:
    - SHA512Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1038
      start: 1032
    functionDepth: 0
    functionLinenumber: 1032
    functionLinenumberEnd: 1038
    functionName: SHA512_TraceState
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void SHA512_TraceState(SHA512Context *cx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1043,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - cx
    argTypes:
    - SHA512Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 1040
    functionDepth: 0
    functionLinenumber: 1040
    functionLinenumberEnd: 1046
    functionName: SHA512_FlattenSize
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int SHA512_FlattenSize(SHA512Context *cx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1051,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - cx
    - space
    argTypes:
    - SHA512Context*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1048
    functionDepth: 0
    functionLinenumber: 1048
    functionLinenumberEnd: 1054
    functionName: SHA512_Flatten
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 2
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SHA512_Flatten(SHA512Context *cx, unsigned char *space)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1059,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - space
    - arg
    argTypes:
    - unsigned char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1056
    functionDepth: 0
    functionLinenumber: 1056
    functionLinenumberEnd: 1062
    functionName: SHA512_Resurrect
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 2
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SHA512Context
    signature: 'SHA512Context *

      SHA512_Resurrect(unsigned char *space, void *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1067,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - unsigned char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1070
      start: 1064
    functionDepth: 0
    functionLinenumber: 1064
    functionLinenumberEnd: 1070
    functionName: SHA384_Hash
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SHA384_Hash(unsigned char *dest, const char *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1075,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - dest
    - src
    - src_length
    argTypes:
    - unsigned char*
    - unsigned char*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1072
    functionDepth: 0
    functionLinenumber: 1072
    functionLinenumberEnd: 1078
    functionName: SHA384_HashBuf
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 3
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SHA384_HashBuf(unsigned char *dest, const unsigned char *src,
      PRUint32 src_length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1083,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1086
      start: 1080
    functionDepth: 0
    functionLinenumber: 1080
    functionLinenumberEnd: 1086
    functionName: SHA384_NewContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SHA384Context
    signature: 'SHA384Context *

      SHA384_NewContext(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1091,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - cx
    - freeit
    argTypes:
    - SHA384Context*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1094
      start: 1088
    functionDepth: 0
    functionLinenumber: 1088
    functionLinenumberEnd: 1094
    functionName: SHA384_DestroyContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void SHA384_DestroyContext(SHA384Context *cx, PRBool freeit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1099,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - cx
    argTypes:
    - SHA384Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1102
      start: 1096
    functionDepth: 0
    functionLinenumber: 1096
    functionLinenumberEnd: 1102
    functionName: SHA384_Begin
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 2
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void SHA384_Begin(SHA384Context *cx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - cx
    - input
    - inputLen
    argTypes:
    - SHA384Context*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1104
    functionDepth: 0
    functionLinenumber: 1104
    functionLinenumberEnd: 1111
    functionName: SHA384_Update
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: "void SHA384_Update(SHA384Context *cx, const unsigned char *input,\n
      \             unsigned int inputLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - cx
    - digest
    - digestLen
    - maxDigestLen
    argTypes:
    - SHA384Context*
    - unsigned char*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1120
      start: 1113
    functionDepth: 0
    functionLinenumber: 1113
    functionLinenumberEnd: 1120
    functionName: SHA384_End
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: "void SHA384_End(SHA384Context *cx, unsigned char *digest,\n           unsigned
      int *digestLen, unsigned int maxDigestLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - cx
    argTypes:
    - SHA384Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1128
      start: 1122
    functionDepth: 0
    functionLinenumber: 1122
    functionLinenumberEnd: 1128
    functionName: SHA384_TraceState
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void SHA384_TraceState(SHA384Context *cx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - cx
    argTypes:
    - SHA384Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1136
      start: 1130
    functionDepth: 0
    functionLinenumber: 1130
    functionLinenumberEnd: 1136
    functionName: SHA384_FlattenSize
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int SHA384_FlattenSize(SHA384Context *cx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - cx
    - space
    argTypes:
    - SHA384Context*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1144
      start: 1138
    functionDepth: 0
    functionLinenumber: 1138
    functionLinenumberEnd: 1144
    functionName: SHA384_Flatten
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SHA384_Flatten(SHA384Context *cx, unsigned char *space)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - space
    - arg
    argTypes:
    - unsigned char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1152
      start: 1146
    functionDepth: 0
    functionLinenumber: 1146
    functionLinenumberEnd: 1152
    functionName: SHA384_Resurrect
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SHA384Context
    signature: 'SHA384Context *

      SHA384_Resurrect(unsigned char *space, void *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1158,1
    - Dst: p_AESKeyWrap_CreateContext
      Src: /src/nss/lib/freebl/loader.c:1160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - key
    - iv
    - encrypt
    - keylen
    argTypes:
    - unsigned char*
    - unsigned char*
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1161
      start: 1154
    functionDepth: 0
    functionLinenumber: 1154
    functionLinenumberEnd: 1161
    functionName: AESKeyWrap_CreateContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    - p_AESKeyWrap_CreateContext
    linkageType: ''
    returnType: AESKeyWrapContext
    signature: "AESKeyWrapContext *\nAESKeyWrap_CreateContext(const unsigned char
      *key, const unsigned char *iv,\n                         int encrypt, unsigned
      int keylen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1166,1
    - Dst: p_AESKeyWrap_DestroyContext
      Src: /src/nss/lib/freebl/loader.c:1168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - cx
    - freeit
    argTypes:
    - AESKeyWrapContext*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1163
    functionDepth: 0
    functionLinenumber: 1163
    functionLinenumberEnd: 1169
    functionName: AESKeyWrap_DestroyContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    - p_AESKeyWrap_DestroyContext
    linkageType: ''
    returnType: void
    signature: void AESKeyWrap_DestroyContext(AESKeyWrapContext *cx, PRBool freeit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1176,1
    - Dst: p_AESKeyWrap_Encrypt
      Src: /src/nss/lib/freebl/loader.c:1178,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 6
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - AESKeyWrapContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1171
    functionDepth: 0
    functionLinenumber: 1171
    functionLinenumberEnd: 1180
    functionName: AESKeyWrap_Encrypt
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - p_AESKeyWrap_Encrypt
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus AESKeyWrap_Encrypt(AESKeyWrapContext *cx, unsigned char
      *output,\n                   unsigned int *outputLen, unsigned int maxOutputLen,\n
      \                  const unsigned char *input, unsigned int inputLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1187,1
    - Dst: p_AESKeyWrap_Decrypt
      Src: /src/nss/lib/freebl/loader.c:1189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 6
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - AESKeyWrapContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1182
    functionDepth: 0
    functionLinenumber: 1182
    functionLinenumberEnd: 1191
    functionName: AESKeyWrap_Decrypt
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    - p_AESKeyWrap_Decrypt
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus AESKeyWrap_Decrypt(AESKeyWrapContext *cx, unsigned char
      *output,\n                   unsigned int *outputLen, unsigned int maxOutputLen,\n
      \                  const unsigned char *input, unsigned int inputLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1198,1
    - Dst: p_AESKeyWrap_EncryptKWP
      Src: /src/nss/lib/freebl/loader.c:1200,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 6
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - AESKeyWrapContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1202
      start: 1193
    functionDepth: 0
    functionLinenumber: 1193
    functionLinenumberEnd: 1202
    functionName: AESKeyWrap_EncryptKWP
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    - p_AESKeyWrap_EncryptKWP
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus AESKeyWrap_EncryptKWP(AESKeyWrapContext *cx, unsigned char
      *output,\n                      unsigned int *outputLen, unsigned int maxOutputLen,\n
      \                     const unsigned char *input, unsigned int inputLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1209,1
    - Dst: p_AESKeyWrap_DecryptKWP
      Src: /src/nss/lib/freebl/loader.c:1211,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 6
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - AESKeyWrapContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1213
      start: 1204
    functionDepth: 0
    functionLinenumber: 1204
    functionLinenumberEnd: 1213
    functionName: AESKeyWrap_DecryptKWP
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    - p_AESKeyWrap_DecryptKWP
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus AESKeyWrap_DecryptKWP(AESKeyWrapContext *cx, unsigned char
      *output,\n                      unsigned int *outputLen, unsigned int maxOutputLen,\n
      \                     const unsigned char *input, unsigned int inputLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1218,1
    - Dst: p_BLAPI_SHVerify
      Src: /src/nss/lib/freebl/loader.c:1220,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - name
    - addr
    argTypes:
    - char*
    - PRFuncPtr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1221
      start: 1215
    functionDepth: 0
    functionLinenumber: 1215
    functionLinenumberEnd: 1221
    functionName: BLAPI_SHVerify
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    - p_BLAPI_SHVerify
    linkageType: ''
    returnType: PRBool
    signature: PRBool BLAPI_SHVerify(const char *name, PRFuncPtr addr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/loader.c:1232,1
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1233,1
    - Dst: p_BLAPI_VerifySelf
      Src: /src/nss/lib/freebl/loader.c:1235,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1236
      start: 1229
    functionDepth: 0
    functionLinenumber: 1229
    functionLinenumberEnd: 1236
    functionName: BLAPI_VerifySelf
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 2
    functionsReached:
    - freebl_RunLoaderOnce
    - PORT_Assert
    - p_BLAPI_VerifySelf
    linkageType: ''
    returnType: PRBool
    signature: PRBool BLAPI_VerifySelf(const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1243,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - params
    - privKey
    argTypes:
    - ECParams*
    - ECPrivateKey**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1246
      start: 1240
    functionDepth: 0
    functionLinenumber: 1240
    functionLinenumberEnd: 1246
    functionName: EC_NewKey
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 6
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus EC_NewKey(ECParams *params, ECPrivateKey **privKey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1252,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - params
    - privKey
    - seed
    - seedlen
    argTypes:
    - ECParams*
    - ECPrivateKey**
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 1248
    functionDepth: 0
    functionLinenumber: 1248
    functionLinenumberEnd: 1255
    functionName: EC_NewKeyFromSeed
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 2
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus EC_NewKeyFromSeed(ECParams *params, ECPrivateKey **privKey,\n
      \                 const unsigned char *seed, int seedlen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1260,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - params
    - publicValue
    argTypes:
    - ECParams*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1263
      start: 1257
    functionDepth: 0
    functionLinenumber: 1257
    functionLinenumberEnd: 1263
    functionName: EC_ValidatePublicKey
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 10
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus EC_ValidatePublicKey(ECParams *params, SECItem *publicValue)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1269,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 5
    argNames:
    - publicValue
    - params
    - privateValue
    - withCofactor
    - derivedSecret
    argTypes:
    - SECItem*
    - ECParams*
    - SECItem*
    - PRBool
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1265
    functionDepth: 0
    functionLinenumber: 1265
    functionLinenumberEnd: 1273
    functionName: ECDH_Derive
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 5
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ECDH_Derive(SECItem *publicValue, ECParams *params, SECItem
      *privateValue,\n            PRBool withCofactor, SECItem *derivedSecret)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1279,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - key
    - signature
    - digest
    argTypes:
    - ECPrivateKey*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1282
      start: 1275
    functionDepth: 0
    functionLinenumber: 1275
    functionLinenumberEnd: 1282
    functionName: ECDSA_SignDigest
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 3
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ECDSA_SignDigest(ECPrivateKey *key, SECItem *signature,\n
      \                const SECItem *digest)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1288,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - key
    - signature
    - digest
    argTypes:
    - ECPublicKey*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1291
      start: 1284
    functionDepth: 0
    functionLinenumber: 1284
    functionLinenumberEnd: 1291
    functionName: ECDSA_VerifyDigest
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 3
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ECDSA_VerifyDigest(ECPublicKey *key, const SECItem *signature,\n
      \                  const SECItem *digest)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1297,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 5
    argNames:
    - key
    - signature
    - digest
    - seed
    - seedlen
    argTypes:
    - ECPrivateKey*
    - SECItem*
    - SECItem*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1301
      start: 1293
    functionDepth: 0
    functionLinenumber: 1293
    functionLinenumberEnd: 1301
    functionName: ECDSA_SignDigestWithSeed
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 3
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ECDSA_SignDigestWithSeed(ECPrivateKey *key, SECItem *signature,\n
      \                        const SECItem *digest, const unsigned char *seed, const
      int seedlen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1308,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1305
    functionDepth: 0
    functionLinenumber: 1305
    functionLinenumberEnd: 1311
    functionName: AES_AllocateContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: AESContext
    signature: 'AESContext *

      AES_AllocateContext(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1316,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1319
      start: 1313
    functionDepth: 0
    functionLinenumber: 1313
    functionLinenumberEnd: 1319
    functionName: AESKeyWrap_AllocateContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: AESKeyWrapContext
    signature: 'AESKeyWrapContext *

      AESKeyWrap_AllocateContext(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1324,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1327
      start: 1321
    functionDepth: 0
    functionLinenumber: 1321
    functionLinenumberEnd: 1327
    functionName: DES_AllocateContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: DESContext
    signature: 'DESContext *

      DES_AllocateContext(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1332,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1339
      start: 1329
    functionDepth: 0
    functionLinenumber: 1329
    functionLinenumberEnd: 1339
    functionName: RC2_AllocateContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: RC2Context
    signature: 'RC2Context *

      RC2_AllocateContext(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1344,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1347
      start: 1341
    functionDepth: 0
    functionLinenumber: 1341
    functionLinenumberEnd: 1347
    functionName: RC4_AllocateContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: RC4Context
    signature: 'RC4Context *

      RC4_AllocateContext(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1354,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 7
    argNames:
    - cx
    - key
    - keylen
    - iv
    - mode
    - encrypt
    - blocklen
    argTypes:
    - AESContext*
    - unsigned char*
    - unsigned int
    - unsigned char*
    - int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1358
      start: 1349
    functionDepth: 0
    functionLinenumber: 1349
    functionLinenumberEnd: 1358
    functionName: AES_InitContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 2
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus AES_InitContext(AESContext *cx, const unsigned char *key,\n
      \               unsigned int keylen, const unsigned char *iv, int mode,\n                unsigned
      int encrypt, unsigned int blocklen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1365,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 7
    argNames:
    - cx
    - key
    - keylen
    - iv
    - mode
    - encrypt
    - blocklen
    argTypes:
    - AESKeyWrapContext*
    - unsigned char*
    - unsigned int
    - unsigned char*
    - int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1369
      start: 1360
    functionDepth: 0
    functionLinenumber: 1360
    functionLinenumberEnd: 1369
    functionName: AESKeyWrap_InitContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus AESKeyWrap_InitContext(AESKeyWrapContext *cx, const unsigned
      char *key,\n                       unsigned int keylen, const unsigned char
      *iv, int mode,\n                       unsigned int encrypt, unsigned int blocklen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1376,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 7
    argNames:
    - cx
    - key
    - keylen
    - iv
    - mode
    - encrypt
    - xtra
    argTypes:
    - DESContext*
    - unsigned char*
    - unsigned int
    - unsigned char*
    - int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1379
      start: 1371
    functionDepth: 0
    functionLinenumber: 1371
    functionLinenumberEnd: 1379
    functionName: DES_InitContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus DES_InitContext(DESContext *cx, const unsigned char *key,\n
      \               unsigned int keylen, const unsigned char *iv, int mode,\n                unsigned
      int encrypt, unsigned int xtra)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1386,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 7
    argNames:
    - cx
    - key
    - keylen
    - iv
    - mode
    - encrypt
    - xtra
    argTypes:
    - SEEDContext*
    - unsigned char*
    - unsigned int
    - unsigned char*
    - int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1393
      start: 1381
    functionDepth: 0
    functionLinenumber: 1381
    functionLinenumberEnd: 1393
    functionName: SEED_InitContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SEED_InitContext(SEEDContext *cx, const unsigned char *key,\n
      \                unsigned int keylen, const unsigned char *iv, int mode,\n                 unsigned
      int encrypt, unsigned int xtra)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1400,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 7
    argNames:
    - cx
    - key
    - keylen
    - iv
    - mode
    - effectiveKeyLen
    - xtra
    argTypes:
    - RC2Context*
    - unsigned char*
    - unsigned int
    - unsigned char*
    - int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1408
      start: 1395
    functionDepth: 0
    functionLinenumber: 1395
    functionLinenumberEnd: 1408
    functionName: RC2_InitContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus RC2_InitContext(RC2Context *cx, const unsigned char *key,\n
      \               unsigned int keylen, const unsigned char *iv, int mode,\n                unsigned
      int effectiveKeyLen, unsigned int xtra)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1415,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 7
    argNames:
    - cx
    - key
    - keylen
    - x1
    - x2
    - x3
    - x4
    argTypes:
    - RC4Context*
    - unsigned char*
    - unsigned int
    - unsigned char*
    - int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1418
      start: 1410
    functionDepth: 0
    functionLinenumber: 1410
    functionLinenumberEnd: 1418
    functionName: RC4_InitContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus RC4_InitContext(RC4Context *cx, const unsigned char *key,\n
      \               unsigned int keylen, const unsigned char *x1, int x2,\n                unsigned
      int x3, unsigned int x4)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1423,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - MD2Context*
    - MD2Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1426
      start: 1420
    functionDepth: 0
    functionLinenumber: 1420
    functionLinenumberEnd: 1426
    functionName: MD2_Clone
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void MD2_Clone(MD2Context *dest, MD2Context *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1431,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - MD5Context*
    - MD5Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1434
      start: 1428
    functionDepth: 0
    functionLinenumber: 1428
    functionLinenumberEnd: 1434
    functionName: MD5_Clone
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void MD5_Clone(MD5Context *dest, MD5Context *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1439,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - SHA1Context*
    - SHA1Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1442
      start: 1436
    functionDepth: 0
    functionLinenumber: 1436
    functionLinenumberEnd: 1442
    functionName: SHA1_Clone
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void SHA1_Clone(SHA1Context *dest, SHA1Context *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1447,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - SHA256Context*
    - SHA256Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1450
      start: 1444
    functionDepth: 0
    functionLinenumber: 1444
    functionLinenumberEnd: 1450
    functionName: SHA256_Clone
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void SHA256_Clone(SHA256Context *dest, SHA256Context *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1455,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - SHA384Context*
    - SHA384Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1458
      start: 1452
    functionDepth: 0
    functionLinenumber: 1452
    functionLinenumberEnd: 1458
    functionName: SHA384_Clone
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void SHA384_Clone(SHA384Context *dest, SHA384Context *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1463,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - SHA512Context*
    - SHA512Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1466
      start: 1460
    functionDepth: 0
    functionLinenumber: 1460
    functionLinenumberEnd: 1466
    functionName: SHA512_Clone
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void SHA512_Clone(SHA512Context *dest, SHA512Context *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1472,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 5
    argNames:
    - secret
    - label
    - seed
    - result
    - isFIPS
    argTypes:
    - SECItem*
    - char*
    - SECItem*
    - SECItem*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1475
      start: 1468
    functionDepth: 0
    functionLinenumber: 1468
    functionLinenumberEnd: 1475
    functionName: TLS_PRF
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus TLS_PRF(const SECItem *secret, const char *label,\n        SECItem
      *seed, SECItem *result, PRBool isFIPS)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1480,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - hashType
    argTypes:
    - HASH_HashType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1483
      start: 1477
    functionDepth: 0
    functionLinenumber: 1477
    functionLinenumberEnd: 1483
    functionName: HASH_GetRawHashObject
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 15
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECHashObject
    signature: 'SECHashObject *

      HASH_GetRawHashObject(HASH_HashType hashType)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1488,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - cx
    - freeit
    argTypes:
    - HMACContext*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1491
      start: 1485
    functionDepth: 0
    functionLinenumber: 1485
    functionLinenumberEnd: 1491
    functionName: HMAC_Destroy
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 8
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void HMAC_Destroy(HMACContext *cx, PRBool freeit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1497,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - hashObj
    - secret
    - secret_len
    - isFIPS
    argTypes:
    - SECHashObject*
    - unsigned char*
    - unsigned int
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1500
      start: 1493
    functionDepth: 0
    functionLinenumber: 1493
    functionLinenumberEnd: 1500
    functionName: HMAC_Create
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 5
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: HMACContext
    signature: "HMACContext *\nHMAC_Create(const SECHashObject *hashObj, const unsigned
      char *secret,\n            unsigned int secret_len, PRBool isFIPS)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1506,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 5
    argNames:
    - cx
    - hashObj
    - secret
    - secret_len
    - isFIPS
    argTypes:
    - HMACContext*
    - SECHashObject*
    - unsigned char*
    - unsigned int
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1509
      start: 1502
    functionDepth: 0
    functionLinenumber: 1502
    functionLinenumberEnd: 1509
    functionName: HMAC_Init
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 2
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus HMAC_Init(HMACContext *cx, const SECHashObject *hashObj,\n
      \         const unsigned char *secret, unsigned int secret_len, PRBool isFIPS)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1514,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - cx
    argTypes:
    - HMACContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1517
      start: 1511
    functionDepth: 0
    functionLinenumber: 1511
    functionLinenumberEnd: 1517
    functionName: HMAC_Begin
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 6
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void HMAC_Begin(HMACContext *cx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1522,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - cx
    - data
    - data_len
    argTypes:
    - HMACContext*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1525
      start: 1519
    functionDepth: 0
    functionLinenumber: 1519
    functionLinenumberEnd: 1525
    functionName: HMAC_Update
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 6
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void HMAC_Update(HMACContext *cx, const unsigned char *data, unsigned
      int data_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1531,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - cx
    - result
    - result_len
    - max_result_len
    argTypes:
    - HMACContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1534
      start: 1527
    functionDepth: 0
    functionLinenumber: 1527
    functionLinenumberEnd: 1534
    functionName: HMAC_Finish
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 6
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus HMAC_Finish(HMACContext *cx, unsigned char *result, unsigned
      int *result_len,\n            unsigned int max_result_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1539,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - cx
    argTypes:
    - HMACContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1542
      start: 1536
    functionDepth: 0
    functionLinenumber: 1536
    functionLinenumberEnd: 1542
    functionName: HMAC_Clone
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: HMACContext
    signature: 'HMACContext *

      HMAC_Clone(HMACContext *cx)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1547,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1550
      start: 1544
    functionDepth: 0
    functionLinenumber: 1544
    functionLinenumberEnd: 1550
    functionName: RNG_SystemInfoForRNG
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 5
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void RNG_SystemInfoForRNG(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1556,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - XKEY
    - XSEEDj
    - x_j
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1559
      start: 1552
    functionDepth: 0
    functionLinenumber: 1552
    functionLinenumberEnd: 1559
    functionName: FIPS186Change_GenerateX
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 2
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus FIPS186Change_GenerateX(unsigned char *XKEY, const unsigned
      char *XSEEDj,\n                        unsigned char *x_j)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1566,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - w
    - q
    - xj
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1569
      start: 1561
    functionDepth: 0
    functionLinenumber: 1561
    functionLinenumberEnd: 1569
    functionName: FIPS186Change_ReduceModQForDSA
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 2
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus FIPS186Change_ReduceModQForDSA(const unsigned char *w,\n
      \                              const unsigned char *q,\n                               unsigned
      char *xj)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1577,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 7
    argNames:
    - cx
    - key
    - keylen
    - iv
    - mode
    - encrypt
    - unused
    argTypes:
    - CamelliaContext*
    - unsigned char*
    - unsigned int
    - unsigned char*
    - int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1581
      start: 1572
    functionDepth: 0
    functionLinenumber: 1572
    functionLinenumberEnd: 1581
    functionName: Camellia_InitContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus Camellia_InitContext(CamelliaContext *cx, const unsigned
      char *key,\n                     unsigned int keylen, const unsigned char *iv,
      int mode,\n                     unsigned int encrypt, unsigned int unused)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1586,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1589
      start: 1583
    functionDepth: 0
    functionLinenumber: 1583
    functionLinenumberEnd: 1589
    functionName: Camellia_AllocateContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: CamelliaContext
    signature: 'CamelliaContext *

      Camellia_AllocateContext(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1596,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 5
    argNames:
    - key
    - iv
    - mode
    - encrypt
    - keylen
    argTypes:
    - unsigned char*
    - unsigned char*
    - int
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1599
      start: 1591
    functionDepth: 0
    functionLinenumber: 1591
    functionLinenumberEnd: 1599
    functionName: Camellia_CreateContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: CamelliaContext
    signature: "CamelliaContext *\nCamellia_CreateContext(const unsigned char *key,
      const unsigned char *iv,\n                       int mode, int encrypt,\n                       unsigned
      int keylen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1604,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - cx
    - freeit
    argTypes:
    - CamelliaContext*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1607
      start: 1601
    functionDepth: 0
    functionLinenumber: 1601
    functionLinenumberEnd: 1607
    functionName: Camellia_DestroyContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 2
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void Camellia_DestroyContext(CamelliaContext *cx, PRBool freeit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1614,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 6
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - CamelliaContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1618
      start: 1609
    functionDepth: 0
    functionLinenumber: 1609
    functionLinenumberEnd: 1618
    functionName: Camellia_Encrypt
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus Camellia_Encrypt(CamelliaContext *cx, unsigned char *output,\n
      \                unsigned int *outputLen, unsigned int maxOutputLen,\n                 const
      unsigned char *input, unsigned int inputLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1625,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 6
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - CamelliaContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1629
      start: 1620
    functionDepth: 0
    functionLinenumber: 1620
    functionLinenumberEnd: 1629
    functionName: Camellia_Decrypt
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus Camellia_Decrypt(CamelliaContext *cx, unsigned char *output,\n
      \                unsigned int *outputLen, unsigned int maxOutputLen,\n                 const
      unsigned char *input, unsigned int inputLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1634,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - forked
    argTypes:
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1637
      start: 1631
    functionDepth: 0
    functionLinenumber: 1631
    functionLinenumberEnd: 1637
    functionName: BL_SetForkState
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void BL_SetForkState(PRBool forked)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1644,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 6
    argNames:
    - entropy
    - entropy_len
    - nonce
    - nonce_len
    - personal_string
    - ps_len
    argTypes:
    - PRUint8*
    - unsigned int
    - PRUint8*
    - unsigned int
    - PRUint8*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1649
      start: 1639
    functionDepth: 0
    functionLinenumber: 1639
    functionLinenumberEnd: 1649
    functionName: PRNGTEST_Instantiate
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 3
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PRNGTEST_Instantiate(const PRUint8 *entropy, unsigned int
      entropy_len,\n                     const PRUint8 *nonce, unsigned int nonce_len,\n
      \                    const PRUint8 *personal_string, unsigned int ps_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1655,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - entropy
    - entropy_len
    - additional
    - additional_len
    argTypes:
    - PRUint8*
    - unsigned int
    - PRUint8*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1659
      start: 1651
    functionDepth: 0
    functionLinenumber: 1651
    functionLinenumberEnd: 1659
    functionName: PRNGTEST_Reseed
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 2
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PRNGTEST_Reseed(const PRUint8 *entropy, unsigned int entropy_len,\n
      \               const PRUint8 *additional, unsigned int additional_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1665,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - bytes
    - bytes_len
    - additional
    - additional_len
    argTypes:
    - PRUint8*
    - unsigned int
    - PRUint8*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1669
      start: 1661
    functionDepth: 0
    functionLinenumber: 1661
    functionLinenumberEnd: 1669
    functionName: PRNGTEST_Generate
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 2
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PRNGTEST_Generate(PRUint8 *bytes, unsigned int bytes_len,\n
      \                 const PRUint8 *additional, unsigned int additional_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1674,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1677
      start: 1671
    functionDepth: 0
    functionLinenumber: 1671
    functionLinenumberEnd: 1677
    functionName: PRNGTEST_Uninstantiate
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 2
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PRNGTEST_Uninstantiate()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1682,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - RSAPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1685
      start: 1679
    functionDepth: 0
    functionLinenumber: 1679
    functionLinenumberEnd: 1685
    functionName: RSA_PopulatePrivateKey
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 2
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus RSA_PopulatePrivateKey(RSAPrivateKey *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1693,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 10
    argNames:
    - arena
    - pqg
    - hashType
    - signerID
    - x
    - testRandom
    - gxIn
    - gxOut
    - gv
    - r
    argTypes:
    - PLArenaPool*
    - PQGParams*
    - HASH_HashType
    - SECItem*
    - SECItem*
    - SECItem*
    - SECItem*
    - SECItem*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1697
      start: 1687
    functionDepth: 0
    functionLinenumber: 1687
    functionLinenumberEnd: 1697
    functionName: JPAKE_Sign
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus JPAKE_Sign(PLArenaPool *arena, const PQGParams *pqg, HASH_HashType
      hashType,\n           const SECItem *signerID, const SECItem *x,\n           const
      SECItem *testRandom, const SECItem *gxIn, SECItem *gxOut,\n           SECItem
      *gv, SECItem *r)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1705,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 8
    argNames:
    - arena
    - pqg
    - hashType
    - signerID
    - peerID
    - gx
    - gv
    - r
    argTypes:
    - PLArenaPool*
    - PQGParams*
    - HASH_HashType
    - SECItem*
    - SECItem*
    - SECItem*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1709
      start: 1699
    functionDepth: 0
    functionLinenumber: 1699
    functionLinenumberEnd: 1709
    functionName: JPAKE_Verify
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus JPAKE_Verify(PLArenaPool *arena, const PQGParams *pqg,\n
      \            HASH_HashType hashType, const SECItem *signerID,\n             const
      SECItem *peerID, const SECItem *gx,\n             const SECItem *gv, const SECItem
      *r)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1716,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 10
    argNames:
    - arena
    - p
    - q
    - gx1
    - gx3
    - gx4
    - base
    - x2
    - s
    - x2s
    argTypes:
    - PLArenaPool*
    - SECItem*
    - SECItem*
    - SECItem*
    - SECItem*
    - SECItem*
    - SECItem*
    - SECItem*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1719
      start: 1711
    functionDepth: 0
    functionLinenumber: 1711
    functionLinenumberEnd: 1719
    functionName: JPAKE_Round2
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus JPAKE_Round2(PLArenaPool *arena, const SECItem *p, const
      SECItem *q,\n             const SECItem *gx1, const SECItem *gx3, const SECItem
      *gx4,\n             SECItem *base, const SECItem *x2, const SECItem *s, SECItem
      *x2s)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1726,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 8
    argNames:
    - arena
    - p
    - q
    - x2
    - gx4
    - x2s
    - B
    - K
    argTypes:
    - PLArenaPool*
    - SECItem*
    - SECItem*
    - SECItem*
    - SECItem*
    - SECItem*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1729
      start: 1721
    functionDepth: 0
    functionLinenumber: 1721
    functionLinenumberEnd: 1729
    functionName: JPAKE_Final
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus JPAKE_Final(PLArenaPool *arena, const SECItem *p, const
      SECItem *q,\n            const SECItem *x2, const SECItem *gx4, const SECItem
      *x2s,\n            const SECItem *B, SECItem *K)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1735,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 6
    argNames:
    - hashAlg
    - secret
    - label
    - seed
    - result
    - isFIPS
    argTypes:
    - HASH_HashType
    - SECItem*
    - char*
    - SECItem*
    - SECItem*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1738
      start: 1731
    functionDepth: 0
    functionLinenumber: 1731
    functionLinenumberEnd: 1738
    functionName: TLS_P_hash
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 2
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus TLS_P_hash(HASH_HashType hashAlg, const SECItem *secret,
      const char *label,\n           SECItem *seed, SECItem *result, PRBool isFIPS)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1743,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - unsigned char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1746
      start: 1740
    functionDepth: 0
    functionLinenumber: 1740
    functionLinenumberEnd: 1746
    functionName: SHA224_Hash
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SHA224_Hash(unsigned char *dest, const char *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1751,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - dest
    - src
    - src_length
    argTypes:
    - unsigned char*
    - unsigned char*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1754
      start: 1748
    functionDepth: 0
    functionLinenumber: 1748
    functionLinenumberEnd: 1754
    functionName: SHA224_HashBuf
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 3
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SHA224_HashBuf(unsigned char *dest, const unsigned char *src,
      PRUint32 src_length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1759,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1762
      start: 1756
    functionDepth: 0
    functionLinenumber: 1756
    functionLinenumberEnd: 1762
    functionName: SHA224_NewContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SHA224Context
    signature: 'SHA224Context *

      SHA224_NewContext(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1767,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - cx
    - freeit
    argTypes:
    - SHA224Context*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1770
      start: 1764
    functionDepth: 0
    functionLinenumber: 1764
    functionLinenumberEnd: 1770
    functionName: SHA224_DestroyContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void SHA224_DestroyContext(SHA224Context *cx, PRBool freeit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1775,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - cx
    argTypes:
    - SHA256Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1778
      start: 1772
    functionDepth: 0
    functionLinenumber: 1772
    functionLinenumberEnd: 1778
    functionName: SHA224_Begin
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 3
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void SHA224_Begin(SHA256Context *cx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1784,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - cx
    - input
    - inputLen
    argTypes:
    - SHA224Context*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1787
      start: 1780
    functionDepth: 0
    functionLinenumber: 1780
    functionLinenumberEnd: 1787
    functionName: SHA224_Update
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 2
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: "void SHA224_Update(SHA224Context *cx, const unsigned char *input,\n
      \             unsigned int inputLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1793,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - cx
    - digest
    - digestLen
    - maxDigestLen
    argTypes:
    - SHA224Context*
    - unsigned char*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1796
      start: 1789
    functionDepth: 0
    functionLinenumber: 1789
    functionLinenumberEnd: 1796
    functionName: SHA224_End
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 2
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: "void SHA224_End(SHA224Context *cx, unsigned char *digest,\n           unsigned
      int *digestLen, unsigned int maxDigestLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1801,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - cx
    argTypes:
    - SHA224Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1804
      start: 1798
    functionDepth: 0
    functionLinenumber: 1798
    functionLinenumberEnd: 1804
    functionName: SHA224_TraceState
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void SHA224_TraceState(SHA224Context *cx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1809,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - cx
    argTypes:
    - SHA224Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1812
      start: 1806
    functionDepth: 0
    functionLinenumber: 1806
    functionLinenumberEnd: 1812
    functionName: SHA224_FlattenSize
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int SHA224_FlattenSize(SHA224Context *cx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1817,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - cx
    - space
    argTypes:
    - SHA224Context*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1820
      start: 1814
    functionDepth: 0
    functionLinenumber: 1814
    functionLinenumberEnd: 1820
    functionName: SHA224_Flatten
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SHA224_Flatten(SHA224Context *cx, unsigned char *space)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1825,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - space
    - arg
    argTypes:
    - unsigned char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1828
      start: 1822
    functionDepth: 0
    functionLinenumber: 1822
    functionLinenumberEnd: 1828
    functionName: SHA224_Resurrect
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SHA224Context
    signature: 'SHA224Context *

      SHA224_Resurrect(unsigned char *space, void *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1833,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - SHA224Context*
    - SHA224Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1836
      start: 1830
    functionDepth: 0
    functionLinenumber: 1830
    functionLinenumberEnd: 1836
    functionName: SHA224_Clone
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void SHA224_Clone(SHA224Context *dest, SHA224Context *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1841,1
    - Dst: p_BLAPI_SHVerifyFile
      Src: /src/nss/lib/freebl/loader.c:1843,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1844
      start: 1838
    functionDepth: 0
    functionLinenumber: 1838
    functionLinenumberEnd: 1844
    functionName: BLAPI_SHVerifyFile
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 2
    functionsReached:
    - p_BLAPI_SHVerifyFile
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: PRBool
    signature: PRBool BLAPI_SHVerifyFile(const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1851,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 5
    argNames:
    - L
    - N
    - seedBytes
    - pParams
    - pVfy
    argTypes:
    - unsigned int
    - unsigned int
    - unsigned int
    - PQGParams**
    - PQGVerify**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1854
      start: 1847
    functionDepth: 0
    functionLinenumber: 1847
    functionLinenumberEnd: 1854
    functionName: PQG_ParamGenV2
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 6
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PQG_ParamGenV2(unsigned int L, unsigned int N, unsigned
      int seedBytes,\n               PQGParams **pParams, PQGVerify **pVfy)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1859,1
    - Dst: p_PRNGTEST_RunHealthTests
      Src: /src/nss/lib/freebl/loader.c:1861,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1862
      start: 1856
    functionDepth: 0
    functionLinenumber: 1856
    functionLinenumberEnd: 1862
    functionName: PRNGTEST_RunHealthTests
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 3
    functionsReached:
    - freebl_RunLoaderOnce
    - p_PRNGTEST_RunHealthTests
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PRNGTEST_RunHealthTests(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1878,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 11
    argNames:
    - result
    - resultLen
    - maxResultLen
    - hashObj
    - secret
    - secretLen
    - header
    - headerLen
    - body
    - bodyLen
    - bodyTotalLen
    argTypes:
    - unsigned char*
    - unsigned int*
    - unsigned int
    - SECHashObject*
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1886
      start: 1864
    functionDepth: 0
    functionLinenumber: 1864
    functionLinenumberEnd: 1886
    functionName: SSLv3_MAC_ConstantTime
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSLv3_MAC_ConstantTime(\n    unsigned char *result,\n    unsigned
      int *resultLen,\n    unsigned int maxResultLen,\n    const SECHashObject *hashObj,\n
      \   const unsigned char *secret,\n    unsigned int secretLen,\n    const unsigned
      char *header,\n    unsigned int headerLen,\n    const unsigned char *body,\n
      \   unsigned int bodyLen,\n    unsigned int bodyTotalLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1902,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 11
    argNames:
    - result
    - resultLen
    - maxResultLen
    - hashObj
    - secret
    - secretLen
    - header
    - headerLen
    - body
    - bodyLen
    - bodyTotalLen
    argTypes:
    - unsigned char*
    - unsigned int*
    - unsigned int
    - SECHashObject*
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1910
      start: 1888
    functionDepth: 0
    functionLinenumber: 1888
    functionLinenumberEnd: 1910
    functionName: HMAC_ConstantTime
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus HMAC_ConstantTime(\n    unsigned char *result,\n    unsigned
      int *resultLen,\n    unsigned int maxResultLen,\n    const SECHashObject *hashObj,\n
      \   const unsigned char *secret,\n    unsigned int secretLen,\n    const unsigned
      char *header,\n    unsigned int headerLen,\n    const unsigned char *body,\n
      \   unsigned int bodyLen,\n    unsigned int bodyTotalLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1920,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 6
    argNames:
    - key
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - RSAPrivateKey*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1924
      start: 1912
    functionDepth: 0
    functionLinenumber: 1912
    functionLinenumberEnd: 1924
    functionName: RSA_SignRaw
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus RSA_SignRaw(RSAPrivateKey *key,\n            unsigned char
      *output,\n            unsigned int *outputLen,\n            unsigned int maxOutputLen,\n
      \           const unsigned char *input,\n            unsigned int inputLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1933,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 5
    argNames:
    - key
    - sig
    - sigLen
    - hash
    - hashLen
    argTypes:
    - RSAPublicKey*
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1936
      start: 1926
    functionDepth: 0
    functionLinenumber: 1926
    functionLinenumberEnd: 1936
    functionName: RSA_CheckSignRaw
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus RSA_CheckSignRaw(RSAPublicKey *key,\n                 const
      unsigned char *sig,\n                 unsigned int sigLen,\n                 const
      unsigned char *hash,\n                 unsigned int hashLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1946,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 6
    argNames:
    - key
    - data
    - dataLen
    - maxDataLen
    - sig
    - sigLen
    argTypes:
    - RSAPublicKey*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1950
      start: 1938
    functionDepth: 0
    functionLinenumber: 1938
    functionLinenumberEnd: 1950
    functionName: RSA_CheckSignRecoverRaw
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus RSA_CheckSignRecoverRaw(RSAPublicKey *key,\n                        unsigned
      char *data,\n                        unsigned int *dataLen,\n                        unsigned
      int maxDataLen,\n                        const unsigned char *sig,\n                        unsigned
      int sigLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1960,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 6
    argNames:
    - key
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - RSAPublicKey*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1964
      start: 1952
    functionDepth: 0
    functionLinenumber: 1952
    functionLinenumberEnd: 1964
    functionName: RSA_EncryptRaw
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus RSA_EncryptRaw(RSAPublicKey *key,\n               unsigned
      char *output,\n               unsigned int *outputLen,\n               unsigned
      int maxOutputLen,\n               const unsigned char *input,\n               unsigned
      int inputLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1974,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 6
    argNames:
    - key
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - RSAPrivateKey*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1978
      start: 1966
    functionDepth: 0
    functionLinenumber: 1966
    functionLinenumberEnd: 1978
    functionName: RSA_DecryptRaw
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus RSA_DecryptRaw(RSAPrivateKey *key,\n               unsigned
      char *output,\n               unsigned int *outputLen,\n               unsigned
      int maxOutputLen,\n               const unsigned char *input,\n               unsigned
      int inputLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:1994,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 12
    argNames:
    - key
    - hashAlg
    - maskHashAlg
    - label
    - labelLen
    - seed
    - seedLen
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - RSAPublicKey*
    - HASH_HashType
    - HASH_HashType
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1999
      start: 1980
    functionDepth: 0
    functionLinenumber: 1980
    functionLinenumberEnd: 1999
    functionName: RSA_EncryptOAEP
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus RSA_EncryptOAEP(RSAPublicKey *key,\n                HASH_HashType
      hashAlg,\n                HASH_HashType maskHashAlg,\n                const
      unsigned char *label,\n                unsigned int labelLen,\n                const
      unsigned char *seed,\n                unsigned int seedLen,\n                unsigned
      char *output,\n                unsigned int *outputLen,\n                unsigned
      int maxOutputLen,\n                const unsigned char *input,\n                unsigned
      int inputLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2013,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 10
    argNames:
    - key
    - hashAlg
    - maskHashAlg
    - label
    - labelLen
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - RSAPrivateKey*
    - HASH_HashType
    - HASH_HashType
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2018
      start: 2001
    functionDepth: 0
    functionLinenumber: 2001
    functionLinenumberEnd: 2018
    functionName: RSA_DecryptOAEP
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus RSA_DecryptOAEP(RSAPrivateKey *key,\n                HASH_HashType
      hashAlg,\n                HASH_HashType maskHashAlg,\n                const
      unsigned char *label,\n                unsigned int labelLen,\n                unsigned
      char *output,\n                unsigned int *outputLen,\n                unsigned
      int maxOutputLen,\n                const unsigned char *input,\n                unsigned
      int inputLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2028,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 6
    argNames:
    - key
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - RSAPublicKey*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2032
      start: 2020
    functionDepth: 0
    functionLinenumber: 2020
    functionLinenumberEnd: 2032
    functionName: RSA_EncryptBlock
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus RSA_EncryptBlock(RSAPublicKey *key,\n                 unsigned
      char *output,\n                 unsigned int *outputLen,\n                 unsigned
      int maxOutputLen,\n                 const unsigned char *input,\n                 unsigned
      int inputLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2042,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 6
    argNames:
    - key
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - RSAPrivateKey*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2046
      start: 2034
    functionDepth: 0
    functionLinenumber: 2034
    functionLinenumberEnd: 2046
    functionName: RSA_DecryptBlock
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus RSA_DecryptBlock(RSAPrivateKey *key,\n                 unsigned
      char *output,\n                 unsigned int *outputLen,\n                 unsigned
      int maxOutputLen,\n                 const unsigned char *input,\n                 unsigned
      int inputLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2060,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 10
    argNames:
    - key
    - hashAlg
    - maskHashAlg
    - salt
    - saltLen
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - RSAPrivateKey*
    - HASH_HashType
    - HASH_HashType
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2065
      start: 2048
    functionDepth: 0
    functionLinenumber: 2048
    functionLinenumberEnd: 2065
    functionName: RSA_SignPSS
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus RSA_SignPSS(RSAPrivateKey *key,\n            HASH_HashType
      hashAlg,\n            HASH_HashType maskHashAlg,\n            const unsigned
      char *salt,\n            unsigned int saltLen,\n            unsigned char *output,\n
      \           unsigned int *outputLen,\n            unsigned int maxOutputLen,\n
      \           const unsigned char *input,\n            unsigned int inputLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2077,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 8
    argNames:
    - key
    - hashAlg
    - maskHashAlg
    - saltLen
    - sig
    - sigLen
    - hash
    - hashLen
    argTypes:
    - RSAPublicKey*
    - HASH_HashType
    - HASH_HashType
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2081
      start: 2067
    functionDepth: 0
    functionLinenumber: 2067
    functionLinenumberEnd: 2081
    functionName: RSA_CheckSignPSS
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 2
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus RSA_CheckSignPSS(RSAPublicKey *key,\n                 HASH_HashType
      hashAlg,\n                 HASH_HashType maskHashAlg,\n                 unsigned
      int saltLen,\n                 const unsigned char *sig,\n                 unsigned
      int sigLen,\n                 const unsigned char *hash,\n                 unsigned
      int hashLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2091,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 6
    argNames:
    - key
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - RSAPrivateKey*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2095
      start: 2083
    functionDepth: 0
    functionLinenumber: 2083
    functionLinenumberEnd: 2095
    functionName: RSA_Sign
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus RSA_Sign(RSAPrivateKey *key,\n         unsigned char *output,\n
      \        unsigned int *outputLen,\n         unsigned int maxOutputLen,\n         const
      unsigned char *input,\n         unsigned int inputLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 5
    argNames:
    - key
    - sig
    - sigLen
    - data
    - dataLen
    argTypes:
    - RSAPublicKey*
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2107
      start: 2097
    functionDepth: 0
    functionLinenumber: 2097
    functionLinenumberEnd: 2107
    functionName: RSA_CheckSign
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus RSA_CheckSign(RSAPublicKey *key,\n              const unsigned
      char *sig,\n              unsigned int sigLen,\n              const unsigned
      char *data,\n              unsigned int dataLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 6
    argNames:
    - key
    - output
    - outputLen
    - maxOutputLen
    - sig
    - sigLen
    argTypes:
    - RSAPublicKey*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2121
      start: 2109
    functionDepth: 0
    functionLinenumber: 2109
    functionLinenumberEnd: 2121
    functionName: RSA_CheckSignRecover
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus RSA_CheckSignRecover(RSAPublicKey *key,\n                     unsigned
      char *output,\n                     unsigned int *outputLen,\n                     unsigned
      int maxOutputLen,\n                     const unsigned char *sig,\n                     unsigned
      int sigLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - arena
    - encodedParams
    - params
    argTypes:
    - PLArenaPool*
    - SECItem*
    - ECParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2131
      start: 2123
    functionDepth: 0
    functionLinenumber: 2123
    functionLinenumberEnd: 2131
    functionName: EC_FillParams
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 3
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus EC_FillParams(PLArenaPool *arena,\n              const SECItem
      *encodedParams,\n              ECParams *params)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - encodedParams
    - ecparams
    argTypes:
    - SECItem*
    - ECParams**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2140
      start: 2133
    functionDepth: 0
    functionLinenumber: 2133
    functionLinenumberEnd: 2140
    functionName: EC_DecodeParams
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 8
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus EC_DecodeParams(const SECItem *encodedParams,\n                ECParams
      **ecparams)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - arena
    - dstParams
    - srcParams
    argTypes:
    - PLArenaPool*
    - ECParams*
    - ECParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2149
      start: 2142
    functionDepth: 0
    functionLinenumber: 2142
    functionLinenumberEnd: 2149
    functionName: EC_CopyParams
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 2
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus EC_CopyParams(PLArenaPool *arena, ECParams *dstParams,\n
      \             const ECParams *srcParams)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 6
    argNames:
    - output
    - block
    - len
    - k
    - nonce
    - ctr
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned char*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2159
      start: 2151
    functionDepth: 0
    functionLinenumber: 2151
    functionLinenumberEnd: 2159
    functionName: ChaCha20_Xor
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ChaCha20_Xor(unsigned char *output, const unsigned char
      *block, unsigned int len,\n             const unsigned char *k, const unsigned
      char *nonce, PRUint32 ctr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 6
    argNames:
    - ctx
    - key
    - keyLen
    - nonce
    - nonceLen
    - ctr
    argTypes:
    - ChaCha20Context*
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2171
      start: 2161
    functionDepth: 0
    functionLinenumber: 2161
    functionLinenumberEnd: 2171
    functionName: ChaCha20_InitContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ChaCha20_InitContext(ChaCha20Context *ctx, const unsigned
      char *key,\n                     unsigned int keyLen,\n                     const
      unsigned char *nonce,\n                     unsigned int nonceLen,\n                     PRUint32
      ctr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2178,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 5
    argNames:
    - key
    - keyLen
    - nonce
    - nonceLen
    - ctr
    argTypes:
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2181
      start: 2173
    functionDepth: 0
    functionLinenumber: 2173
    functionLinenumberEnd: 2181
    functionName: ChaCha20_CreateContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: ChaCha20Context
    signature: "ChaCha20Context *\nChaCha20_CreateContext(const unsigned char *key,
      unsigned int keyLen,\n                       const unsigned char *nonce, unsigned
      int nonceLen,\n                       PRUint32 ctr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2186,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - freeit
    argTypes:
    - ChaCha20Context*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2189
      start: 2183
    functionDepth: 0
    functionLinenumber: 2183
    functionLinenumberEnd: 2189
    functionName: ChaCha20_DestroyContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void ChaCha20_DestroyContext(ChaCha20Context *ctx, PRBool freeit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2196,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - key
    - keyLen
    - tagLen
    argTypes:
    - ChaCha20Poly1305Context*
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2199
      start: 2191
    functionDepth: 0
    functionLinenumber: 2191
    functionLinenumberEnd: 2199
    functionName: ChaCha20Poly1305_InitContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ChaCha20Poly1305_InitContext(ChaCha20Poly1305Context *ctx,\n
      \                            const unsigned char *key, unsigned int keyLen,\n
      \                            unsigned int tagLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - key
    - keyLen
    - tagLen
    argTypes:
    - unsigned char*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2208
      start: 2201
    functionDepth: 0
    functionLinenumber: 2201
    functionLinenumberEnd: 2208
    functionName: ChaCha20Poly1305_CreateContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 2
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: ChaCha20Poly1305Context
    signature: "ChaCha20Poly1305Context *\nChaCha20Poly1305_CreateContext(const unsigned
      char *key, unsigned int keyLen,\n                               unsigned int
      tagLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2213,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - freeit
    argTypes:
    - ChaCha20Poly1305Context*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2216
      start: 2210
    functionDepth: 0
    functionLinenumber: 2210
    functionLinenumberEnd: 2216
    functionName: ChaCha20Poly1305_DestroyContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 2
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void ChaCha20Poly1305_DestroyContext(ChaCha20Poly1305Context *ctx,
      PRBool freeit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2226,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 10
    argNames:
    - ctx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    - nonce
    - nonceLen
    - ad
    - adLen
    argTypes:
    - ChaCha20Poly1305Context*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2231
      start: 2218
    functionDepth: 0
    functionLinenumber: 2218
    functionLinenumberEnd: 2231
    functionName: ChaCha20Poly1305_Seal
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ChaCha20Poly1305_Seal(const ChaCha20Poly1305Context *ctx,\n
      \                     unsigned char *output, unsigned int *outputLen,\n                      unsigned
      int maxOutputLen,\n                      const unsigned char *input, unsigned
      int inputLen,\n                      const unsigned char *nonce, unsigned int
      nonceLen,\n                      const unsigned char *ad, unsigned int adLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2241,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 10
    argNames:
    - ctx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    - nonce
    - nonceLen
    - ad
    - adLen
    argTypes:
    - ChaCha20Poly1305Context*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2246
      start: 2233
    functionDepth: 0
    functionLinenumber: 2233
    functionLinenumberEnd: 2246
    functionName: ChaCha20Poly1305_Open
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ChaCha20Poly1305_Open(const ChaCha20Poly1305Context *ctx,\n
      \                     unsigned char *output, unsigned int *outputLen,\n                      unsigned
      int maxOutputLen,\n                      const unsigned char *input, unsigned
      int inputLen,\n                      const unsigned char *nonce, unsigned int
      nonceLen,\n                      const unsigned char *ad, unsigned int adLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 11
    argNames:
    - ctx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    - nonce
    - nonceLen
    - ad
    - adLen
    - tagOut
    argTypes:
    - ChaCha20Poly1305Context*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2262
      start: 2248
    functionDepth: 0
    functionLinenumber: 2248
    functionLinenumberEnd: 2262
    functionName: ChaCha20Poly1305_Encrypt
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ChaCha20Poly1305_Encrypt(const ChaCha20Poly1305Context *ctx,\n
      \                        unsigned char *output, unsigned int *outputLen,\n                         unsigned
      int maxOutputLen,\n                         const unsigned char *input, unsigned
      int inputLen,\n                         const unsigned char *nonce, unsigned
      int nonceLen,\n                         const unsigned char *ad, unsigned int
      adLen,\n                         unsigned char *tagOut)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2273,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 11
    argNames:
    - ctx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    - nonce
    - nonceLen
    - ad
    - adLen
    - tagIn
    argTypes:
    - ChaCha20Poly1305Context*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2278
      start: 2264
    functionDepth: 0
    functionLinenumber: 2264
    functionLinenumberEnd: 2278
    functionName: ChaCha20Poly1305_Decrypt
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ChaCha20Poly1305_Decrypt(const ChaCha20Poly1305Context *ctx,\n
      \                        unsigned char *output, unsigned int *outputLen,\n                         unsigned
      int maxOutputLen,\n                         const unsigned char *input, unsigned
      int inputLen,\n                         const unsigned char *nonce, unsigned
      int nonceLen,\n                         const unsigned char *ad, unsigned int
      adLen,\n                         unsigned char *tagIn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2283,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - params
    argTypes:
    - ECParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2286
      start: 2280
    functionDepth: 0
    functionLinenumber: 2280
    functionLinenumberEnd: 2286
    functionName: EC_GetPointSize
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 5
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: int
    signature: int EC_GetPointSize(const ECParams *params)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2291,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - unsigned char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2295
      start: 2288
    functionDepth: 0
    functionLinenumber: 2288
    functionLinenumberEnd: 2295
    functionName: BLAKE2B_Hash
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus BLAKE2B_Hash(unsigned char *dest, const char *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2300,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - output
    - input
    - inlen
    argTypes:
    - unsigned char*
    - unsigned char*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2304
      start: 2297
    functionDepth: 0
    functionLinenumber: 2297
    functionLinenumberEnd: 2304
    functionName: BLAKE2B_HashBuf
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus BLAKE2B_HashBuf(unsigned char *output, const unsigned char
      *input, PRUint32 inlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2311,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 5
    argNames:
    - output
    - input
    - inlen
    - key
    - keylen
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2315
      start: 2306
    functionDepth: 0
    functionLinenumber: 2306
    functionLinenumberEnd: 2315
    functionName: BLAKE2B_MAC_HashBuf
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus BLAKE2B_MAC_HashBuf(unsigned char *output, const unsigned
      char *input,\n                    unsigned int inlen, const unsigned char *key,\n
      \                   unsigned int keylen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2320,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2324
      start: 2317
    functionDepth: 0
    functionLinenumber: 2317
    functionLinenumberEnd: 2324
    functionName: BLAKE2B_NewContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: BLAKE2BContext
    signature: 'BLAKE2BContext *

      BLAKE2B_NewContext(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2329,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - freeit
    argTypes:
    - BLAKE2BContext*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2333
      start: 2326
    functionDepth: 0
    functionLinenumber: 2326
    functionLinenumberEnd: 2333
    functionName: BLAKE2B_DestroyContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void BLAKE2B_DestroyContext(BLAKE2BContext *ctx, PRBool freeit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2338,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - BLAKE2BContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2342
      start: 2335
    functionDepth: 0
    functionLinenumber: 2335
    functionLinenumberEnd: 2342
    functionName: BLAKE2B_Begin
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus BLAKE2B_Begin(BLAKE2BContext *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2347,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - key
    - keylen
    argTypes:
    - BLAKE2BContext*
    - PRUint8*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2351
      start: 2344
    functionDepth: 0
    functionLinenumber: 2344
    functionLinenumberEnd: 2351
    functionName: BLAKE2B_MAC_Begin
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus BLAKE2B_MAC_Begin(BLAKE2BContext *ctx, const PRUint8 *key,
      const size_t keylen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2356,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - in
    - inlen
    argTypes:
    - BLAKE2BContext*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2360
      start: 2353
    functionDepth: 0
    functionLinenumber: 2353
    functionLinenumberEnd: 2360
    functionName: BLAKE2B_Update
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 2
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus BLAKE2B_Update(BLAKE2BContext *ctx, const unsigned char *in,
      unsigned int inlen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2366,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - ctx
    - out
    - digestLen
    - maxDigestLen
    argTypes:
    - BLAKE2BContext*
    - unsigned char*
    - unsigned int*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2370
      start: 2362
    functionDepth: 0
    functionLinenumber: 2362
    functionLinenumberEnd: 2370
    functionName: BLAKE2B_End
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus BLAKE2B_End(BLAKE2BContext *ctx, unsigned char *out,\n            unsigned
      int *digestLen, size_t maxDigestLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2375,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - BLAKE2BContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2379
      start: 2372
    functionDepth: 0
    functionLinenumber: 2372
    functionLinenumberEnd: 2379
    functionName: BLAKE2B_FlattenSize
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int BLAKE2B_FlattenSize(BLAKE2BContext *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2384,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ctx
    - space
    argTypes:
    - BLAKE2BContext*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2388
      start: 2381
    functionDepth: 0
    functionLinenumber: 2381
    functionLinenumberEnd: 2388
    functionName: BLAKE2B_Flatten
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus BLAKE2B_Flatten(BLAKE2BContext *ctx, unsigned char *space)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2393,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - space
    - arg
    argTypes:
    - unsigned char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2397
      start: 2390
    functionDepth: 0
    functionLinenumber: 2390
    functionLinenumberEnd: 2397
    functionName: BLAKE2B_Resurrect
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: BLAKE2BContext
    signature: 'BLAKE2BContext *

      BLAKE2B_Resurrect(unsigned char *space, void *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2404,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - type
    - key
    - key_len
    argTypes:
    - CMACContext*
    - CMACCipher
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2407
      start: 2400
    functionDepth: 0
    functionLinenumber: 2400
    functionLinenumberEnd: 2407
    functionName: CMAC_Init
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CMAC_Init(CMACContext *ctx, CMACCipher type, const unsigned
      char *key,\n          unsigned int key_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2412,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - type
    - key
    - key_len
    argTypes:
    - CMACCipher
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2415
      start: 2409
    functionDepth: 0
    functionLinenumber: 2409
    functionLinenumberEnd: 2415
    functionName: CMAC_Create
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: CMACContext
    signature: 'CMACContext *

      CMAC_Create(CMACCipher type, const unsigned char *key, unsigned int key_len)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2420,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - CMACContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2423
      start: 2417
    functionDepth: 0
    functionLinenumber: 2417
    functionLinenumberEnd: 2423
    functionName: CMAC_Begin
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 2
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CMAC_Begin(CMACContext *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2428,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - data
    - data_len
    argTypes:
    - CMACContext*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2431
      start: 2425
    functionDepth: 0
    functionLinenumber: 2425
    functionLinenumberEnd: 2431
    functionName: CMAC_Update
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CMAC_Update(CMACContext *ctx, const unsigned char *data,
      unsigned int data_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2437,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - ctx
    - result
    - result_len
    - max_result_len
    argTypes:
    - CMACContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2440
      start: 2433
    functionDepth: 0
    functionLinenumber: 2433
    functionLinenumberEnd: 2440
    functionName: CMAC_Finish
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CMAC_Finish(CMACContext *ctx, unsigned char *result, unsigned
      int *result_len,\n            unsigned int max_result_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2445,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - free_it
    argTypes:
    - CMACContext*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2448
      start: 2442
    functionDepth: 0
    functionLinenumber: 2442
    functionLinenumberEnd: 2448
    functionName: CMAC_Destroy
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 3
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void CMAC_Destroy(CMACContext *ctx, PRBool free_it)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2455,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2458
      start: 2452
    functionDepth: 0
    functionLinenumber: 2452
    functionLinenumberEnd: 2458
    functionName: SHA3_224_NewContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SHA3_224Context
    signature: 'SHA3_224Context *

      SHA3_224_NewContext(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2463,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - cx
    - freeit
    argTypes:
    - SHA3_224Context*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2466
      start: 2460
    functionDepth: 0
    functionLinenumber: 2460
    functionLinenumberEnd: 2466
    functionName: SHA3_224_DestroyContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void SHA3_224_DestroyContext(SHA3_224Context *cx, PRBool freeit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2471,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - cx
    argTypes:
    - SHA3_224Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2474
      start: 2468
    functionDepth: 0
    functionLinenumber: 2468
    functionLinenumberEnd: 2474
    functionName: SHA3_224_FlattenSize
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int SHA3_224_FlattenSize(SHA3_224Context *cx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2479,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - cx
    argTypes:
    - SHA3_224Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2482
      start: 2476
    functionDepth: 0
    functionLinenumber: 2476
    functionLinenumberEnd: 2482
    functionName: SHA3_224_Begin
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void SHA3_224_Begin(SHA3_224Context *cx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2488,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - cx
    - input
    - inputLen
    argTypes:
    - SHA3_224Context*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2491
      start: 2484
    functionDepth: 0
    functionLinenumber: 2484
    functionLinenumberEnd: 2491
    functionName: SHA3_224_Update
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: "void SHA3_224_Update(SHA3_224Context *cx, const unsigned char *input,\n
      \               unsigned int inputLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2497,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - cx
    - digest
    - digestLen
    - maxDigestLen
    argTypes:
    - SHA3_224Context*
    - unsigned char*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2500
      start: 2493
    functionDepth: 0
    functionLinenumber: 2493
    functionLinenumberEnd: 2500
    functionName: SHA3_224_End
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: "void SHA3_224_End(SHA3_224Context *cx, unsigned char *digest,\n             unsigned
      int *digestLen, unsigned int maxDigestLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2505,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - unsigned char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2508
      start: 2502
    functionDepth: 0
    functionLinenumber: 2502
    functionLinenumberEnd: 2508
    functionName: SHA3_224_Hash
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SHA3_224_Hash(unsigned char *dest, const char *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2513,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - dest
    - src
    - src_length
    argTypes:
    - unsigned char*
    - unsigned char*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2516
      start: 2510
    functionDepth: 0
    functionLinenumber: 2510
    functionLinenumberEnd: 2516
    functionName: SHA3_224_HashBuf
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SHA3_224_HashBuf(unsigned char *dest, const unsigned char
      *src, PRUint32 src_length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2521,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2524
      start: 2518
    functionDepth: 0
    functionLinenumber: 2518
    functionLinenumberEnd: 2524
    functionName: SHA3_256_NewContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SHA3_256Context
    signature: 'SHA3_256Context *

      SHA3_256_NewContext(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2529,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - cx
    - freeit
    argTypes:
    - SHA3_256Context*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2532
      start: 2526
    functionDepth: 0
    functionLinenumber: 2526
    functionLinenumberEnd: 2532
    functionName: SHA3_256_DestroyContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void SHA3_256_DestroyContext(SHA3_256Context *cx, PRBool freeit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2537,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - cx
    argTypes:
    - SHA3_256Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2540
      start: 2534
    functionDepth: 0
    functionLinenumber: 2534
    functionLinenumberEnd: 2540
    functionName: SHA3_256_FlattenSize
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int SHA3_256_FlattenSize(SHA3_256Context *cx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2545,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - cx
    argTypes:
    - SHA3_256Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2548
      start: 2542
    functionDepth: 0
    functionLinenumber: 2542
    functionLinenumberEnd: 2548
    functionName: SHA3_256_Begin
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void SHA3_256_Begin(SHA3_256Context *cx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2554,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - cx
    - input
    - inputLen
    argTypes:
    - SHA3_256Context*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2557
      start: 2550
    functionDepth: 0
    functionLinenumber: 2550
    functionLinenumberEnd: 2557
    functionName: SHA3_256_Update
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: "void SHA3_256_Update(SHA3_256Context *cx, const unsigned char *input,\n
      \               unsigned int inputLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2563,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - cx
    - digest
    - digestLen
    - maxDigestLen
    argTypes:
    - SHA3_256Context*
    - unsigned char*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2566
      start: 2559
    functionDepth: 0
    functionLinenumber: 2559
    functionLinenumberEnd: 2566
    functionName: SHA3_256_End
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: "void SHA3_256_End(SHA3_256Context *cx, unsigned char *digest,\n             unsigned
      int *digestLen, unsigned int maxDigestLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2571,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - unsigned char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2574
      start: 2568
    functionDepth: 0
    functionLinenumber: 2568
    functionLinenumberEnd: 2574
    functionName: SHA3_256_Hash
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SHA3_256_Hash(unsigned char *dest, const char *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2579,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - dest
    - src
    - src_length
    argTypes:
    - unsigned char*
    - unsigned char*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2582
      start: 2576
    functionDepth: 0
    functionLinenumber: 2576
    functionLinenumberEnd: 2582
    functionName: SHA3_256_HashBuf
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SHA3_256_HashBuf(unsigned char *dest, const unsigned char
      *src, PRUint32 src_length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2587,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2590
      start: 2584
    functionDepth: 0
    functionLinenumber: 2584
    functionLinenumberEnd: 2590
    functionName: SHA3_384_NewContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SHA3_384Context
    signature: 'SHA3_384Context *

      SHA3_384_NewContext(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2595,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - cx
    - freeit
    argTypes:
    - SHA3_384Context*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2598
      start: 2592
    functionDepth: 0
    functionLinenumber: 2592
    functionLinenumberEnd: 2598
    functionName: SHA3_384_DestroyContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void SHA3_384_DestroyContext(SHA3_384Context *cx, PRBool freeit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2603,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - cx
    argTypes:
    - SHA3_384Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2606
      start: 2600
    functionDepth: 0
    functionLinenumber: 2600
    functionLinenumberEnd: 2606
    functionName: SHA3_384_FlattenSize
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int SHA3_384_FlattenSize(SHA3_384Context *cx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2611,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - cx
    argTypes:
    - SHA3_384Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2614
      start: 2608
    functionDepth: 0
    functionLinenumber: 2608
    functionLinenumberEnd: 2614
    functionName: SHA3_384_Begin
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void SHA3_384_Begin(SHA3_384Context *cx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2620,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - cx
    - input
    - inputLen
    argTypes:
    - SHA3_384Context*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2623
      start: 2616
    functionDepth: 0
    functionLinenumber: 2616
    functionLinenumberEnd: 2623
    functionName: SHA3_384_Update
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: "void SHA3_384_Update(SHA3_384Context *cx, const unsigned char *input,\n
      \               unsigned int inputLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2629,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - cx
    - digest
    - digestLen
    - maxDigestLen
    argTypes:
    - SHA3_384Context*
    - unsigned char*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2632
      start: 2625
    functionDepth: 0
    functionLinenumber: 2625
    functionLinenumberEnd: 2632
    functionName: SHA3_384_End
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: "void SHA3_384_End(SHA3_384Context *cx, unsigned char *digest,\n             unsigned
      int *digestLen, unsigned int maxDigestLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2637,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - unsigned char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2640
      start: 2634
    functionDepth: 0
    functionLinenumber: 2634
    functionLinenumberEnd: 2640
    functionName: SHA3_384_Hash
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SHA3_384_Hash(unsigned char *dest, const char *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2645,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - dest
    - src
    - src_length
    argTypes:
    - unsigned char*
    - unsigned char*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2648
      start: 2642
    functionDepth: 0
    functionLinenumber: 2642
    functionLinenumberEnd: 2648
    functionName: SHA3_384_HashBuf
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SHA3_384_HashBuf(unsigned char *dest, const unsigned char
      *src, PRUint32 src_length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2653,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2656
      start: 2650
    functionDepth: 0
    functionLinenumber: 2650
    functionLinenumberEnd: 2656
    functionName: SHA3_512_NewContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SHA3_512Context
    signature: 'SHA3_512Context *

      SHA3_512_NewContext(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2661,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - cx
    - freeit
    argTypes:
    - SHA3_512Context*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2664
      start: 2658
    functionDepth: 0
    functionLinenumber: 2658
    functionLinenumberEnd: 2664
    functionName: SHA3_512_DestroyContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void SHA3_512_DestroyContext(SHA3_512Context *cx, PRBool freeit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2669,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - cx
    argTypes:
    - SHA3_512Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2672
      start: 2666
    functionDepth: 0
    functionLinenumber: 2666
    functionLinenumberEnd: 2672
    functionName: SHA3_512_FlattenSize
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int SHA3_512_FlattenSize(SHA3_512Context *cx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2677,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - cx
    argTypes:
    - SHA3_512Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2680
      start: 2674
    functionDepth: 0
    functionLinenumber: 2674
    functionLinenumberEnd: 2680
    functionName: SHA3_512_Begin
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void SHA3_512_Begin(SHA3_512Context *cx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2686,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - cx
    - input
    - inputLen
    argTypes:
    - SHA3_512Context*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2689
      start: 2682
    functionDepth: 0
    functionLinenumber: 2682
    functionLinenumberEnd: 2689
    functionName: SHA3_512_Update
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: "void SHA3_512_Update(SHA3_512Context *cx, const unsigned char *input,\n
      \               unsigned int inputLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2695,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - cx
    - digest
    - digestLen
    - maxDigestLen
    argTypes:
    - SHA3_512Context*
    - unsigned char*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2698
      start: 2691
    functionDepth: 0
    functionLinenumber: 2691
    functionLinenumberEnd: 2698
    functionName: SHA3_512_End
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: "void SHA3_512_End(SHA3_512Context *cx, unsigned char *digest,\n             unsigned
      int *digestLen, unsigned int maxDigestLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2703,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - unsigned char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2706
      start: 2700
    functionDepth: 0
    functionLinenumber: 2700
    functionLinenumberEnd: 2706
    functionName: SHA3_512_Hash
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SHA3_512_Hash(unsigned char *dest, const char *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2711,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - dest
    - src
    - src_length
    argTypes:
    - unsigned char*
    - unsigned char*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2714
      start: 2708
    functionDepth: 0
    functionLinenumber: 2708
    functionLinenumberEnd: 2714
    functionName: SHA3_512_HashBuf
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SHA3_512_HashBuf(unsigned char *dest, const unsigned char
      *src, PRUint32 src_length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2719,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2722
      start: 2716
    functionDepth: 0
    functionLinenumber: 2716
    functionLinenumberEnd: 2722
    functionName: SHAKE_128_NewContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SHAKE_128Context
    signature: 'SHAKE_128Context *

      SHAKE_128_NewContext(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2727,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - cx
    - freeit
    argTypes:
    - SHAKE_128Context*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2730
      start: 2724
    functionDepth: 0
    functionLinenumber: 2724
    functionLinenumberEnd: 2730
    functionName: SHAKE_128_DestroyContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void SHAKE_128_DestroyContext(SHAKE_128Context *cx, PRBool freeit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2735,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - cx
    argTypes:
    - SHAKE_128Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2738
      start: 2732
    functionDepth: 0
    functionLinenumber: 2732
    functionLinenumberEnd: 2738
    functionName: SHAKE_128_Begin
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void SHAKE_128_Begin(SHAKE_128Context *cx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2744,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - cx
    - input
    - inputLen
    argTypes:
    - SHAKE_128Context*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2747
      start: 2740
    functionDepth: 0
    functionLinenumber: 2740
    functionLinenumberEnd: 2747
    functionName: SHAKE_128_Absorb
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: "void SHAKE_128_Absorb(SHAKE_128Context *cx, const unsigned char *input,\n
      \                unsigned int inputLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2753,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - cx
    - digest
    - digestLen
    argTypes:
    - SHAKE_128Context*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2756
      start: 2749
    functionDepth: 0
    functionLinenumber: 2749
    functionLinenumberEnd: 2756
    functionName: SHAKE_128_SqueezeEnd
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: "void SHAKE_128_SqueezeEnd(SHAKE_128Context *cx, unsigned char *digest,\n
      \                    unsigned int digestLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2761,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - dest
    - dest_length
    - src
    - src_length
    argTypes:
    - unsigned char*
    - PRUint32
    - unsigned char*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2764
      start: 2758
    functionDepth: 0
    functionLinenumber: 2758
    functionLinenumberEnd: 2764
    functionName: SHAKE_128_HashBuf
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SHAKE_128_HashBuf(unsigned char *dest, PRUint32 dest_length,
      const unsigned char *src, PRUint32 src_length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2769,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - dest
    - dest_length
    - src
    argTypes:
    - unsigned char*
    - PRUint32
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2772
      start: 2766
    functionDepth: 0
    functionLinenumber: 2766
    functionLinenumberEnd: 2772
    functionName: SHAKE_128_Hash
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SHAKE_128_Hash(unsigned char *dest, PRUint32 dest_length,
      const char *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2777,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2780
      start: 2774
    functionDepth: 0
    functionLinenumber: 2774
    functionLinenumberEnd: 2780
    functionName: SHAKE_256_NewContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SHAKE_256Context
    signature: 'SHAKE_256Context *

      SHAKE_256_NewContext(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2785,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - cx
    - freeit
    argTypes:
    - SHAKE_256Context*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2788
      start: 2782
    functionDepth: 0
    functionLinenumber: 2782
    functionLinenumberEnd: 2788
    functionName: SHAKE_256_DestroyContext
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void SHAKE_256_DestroyContext(SHAKE_256Context *cx, PRBool freeit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2793,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - cx
    argTypes:
    - SHAKE_256Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2796
      start: 2790
    functionDepth: 0
    functionLinenumber: 2790
    functionLinenumberEnd: 2796
    functionName: SHAKE_256_Begin
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: void SHAKE_256_Begin(SHAKE_256Context *cx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2802,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - cx
    - input
    - inputLen
    argTypes:
    - SHAKE_256Context*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2805
      start: 2798
    functionDepth: 0
    functionLinenumber: 2798
    functionLinenumberEnd: 2805
    functionName: SHAKE_256_Absorb
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: "void SHAKE_256_Absorb(SHAKE_256Context *cx, const unsigned char *input,\n
      \                unsigned int inputLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2811,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - cx
    - digest
    - digestLen
    argTypes:
    - SHAKE_256Context*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2814
      start: 2807
    functionDepth: 0
    functionLinenumber: 2807
    functionLinenumberEnd: 2814
    functionName: SHAKE_256_SqueezeEnd
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: void
    signature: "void SHAKE_256_SqueezeEnd(SHAKE_256Context *cx, unsigned char *digest,\n
      \                    unsigned int digestLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2819,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - dest
    - dest_length
    - src
    - src_length
    argTypes:
    - unsigned char*
    - PRUint32
    - unsigned char*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2822
      start: 2816
    functionDepth: 0
    functionLinenumber: 2816
    functionLinenumberEnd: 2822
    functionName: SHAKE_256_HashBuf
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SHAKE_256_HashBuf(unsigned char *dest, PRUint32 dest_length,
      const unsigned char *src, PRUint32 src_length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2827,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - dest
    - dest_length
    - src
    argTypes:
    - unsigned char*
    - PRUint32
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2830
      start: 2824
    functionDepth: 0
    functionLinenumber: 2824
    functionLinenumberEnd: 2830
    functionName: SHAKE_256_Hash
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SHAKE_256_Hash(unsigned char *dest, PRUint32 dest_length,
      const char *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2837,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - params
    - seed
    - privKey
    - pubKey
    argTypes:
    - KyberParams
    - SECItem*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2840
      start: 2834
    functionDepth: 0
    functionLinenumber: 2834
    functionLinenumberEnd: 2840
    functionName: Kyber_NewKey
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus Kyber_NewKey(KyberParams params, const SECItem *seed, SECItem
      *privKey, SECItem *pubKey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2845,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 5
    argNames:
    - params
    - seed
    - pubKey
    - ciphertext
    - secret
    argTypes:
    - KyberParams
    - SECItem*
    - SECItem*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2848
      start: 2842
    functionDepth: 0
    functionLinenumber: 2842
    functionLinenumberEnd: 2848
    functionName: Kyber_Encapsulate
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus Kyber_Encapsulate(KyberParams params, const SECItem *seed,
      const SECItem *pubKey, SECItem *ciphertext, SECItem *secret)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2853,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - params
    - privKey
    - ciphertext
    - secret
    argTypes:
    - KyberParams
    - SECItem*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2856
      start: 2850
    functionDepth: 0
    functionLinenumber: 2850
    functionLinenumberEnd: 2856
    functionName: Kyber_Decapsulate
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus Kyber_Decapsulate(KyberParams params, const SECItem *privKey,
      const SECItem *ciphertext, SECItem *secret)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2864,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - key
    - signature
    - msg
    argTypes:
    - ECPrivateKey*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2867
      start: 2860
    functionDepth: 0
    functionLinenumber: 2860
    functionLinenumberEnd: 2867
    functionName: ED_SignMessage
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ED_SignMessage(ECPrivateKey *key, SECItem *signature,\n
      \              const SECItem *msg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2873,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - key
    - signature
    - msg
    argTypes:
    - ECPublicKey*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2876
      start: 2869
    functionDepth: 0
    functionLinenumber: 2869
    functionLinenumberEnd: 2876
    functionName: ED_VerifyMessage
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ED_VerifyMessage(ECPublicKey *key, const SECItem *signature,\n
      \                const SECItem *msg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2881,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - privateKey
    - publicKey
    argTypes:
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2884
      start: 2878
    functionDepth: 0
    functionLinenumber: 2878
    functionLinenumberEnd: 2884
    functionName: ED_DerivePublicKey
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 1
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ED_DerivePublicKey(const SECItem *privateKey, SECItem *publicKey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2891,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - privateKey
    - publicKey
    argTypes:
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2894
      start: 2888
    functionDepth: 0
    functionLinenumber: 2888
    functionLinenumberEnd: 2894
    functionName: X25519_DerivePublicKey
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus X25519_DerivePublicKey(const SECItem *privateKey, SECItem
      *publicKey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_RunLoaderOnce
      Src: /src/nss/lib/freebl/loader.c:2901,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - privateKey
    - ecParams
    - publicKey
    argTypes:
    - SECItem*
    - ECParams*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2904
      start: 2898
    functionDepth: 0
    functionLinenumber: 2898
    functionLinenumberEnd: 2904
    functionName: EC_DerivePublicKey
    functionSourceFile: /src/nss/lib/freebl/loader.c
    functionUses: 0
    functionsReached:
    - freebl_RunLoaderOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus EC_DerivePublicKey(const SECItem *privateKey, const ECParams
      *ecParams, SECItem *publicKey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lib_IntVector_Intrinsics_vec128_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:33,1
    - Dst: Lib_IntVector_Intrinsics_vec128_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:34,1
    - Dst: Lib_IntVector_Intrinsics_vec128_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:35,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:36,1
    - Dst: Lib_IntVector_Intrinsics_vec128_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:37,1
    - Dst: Lib_IntVector_Intrinsics_vec128_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:38,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:39,1
    - Dst: Lib_IntVector_Intrinsics_vec128_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:40,1
    - Dst: Lib_IntVector_Intrinsics_vec128_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:41,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:42,1
    - Dst: Lib_IntVector_Intrinsics_vec128_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:43,1
    - Dst: Lib_IntVector_Intrinsics_vec128_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:44,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:45,1
    - Dst: Lib_IntVector_Intrinsics_vec128_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:46,1
    - Dst: Lib_IntVector_Intrinsics_vec128_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:47,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:48,1
    - Dst: Lib_IntVector_Intrinsics_vec128_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:49,1
    - Dst: Lib_IntVector_Intrinsics_vec128_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:50,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:51,1
    - Dst: Lib_IntVector_Intrinsics_vec128_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:52,1
    - Dst: Lib_IntVector_Intrinsics_vec128_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:53,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:54,1
    - Dst: Lib_IntVector_Intrinsics_vec128_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:55,1
    - Dst: Lib_IntVector_Intrinsics_vec128_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:56,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:57,1
    - Dst: Lib_IntVector_Intrinsics_vec128_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:58,1
    - Dst: Lib_IntVector_Intrinsics_vec128_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:59,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:60,1
    - Dst: Lib_IntVector_Intrinsics_vec128_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:61,1
    - Dst: Lib_IntVector_Intrinsics_vec128_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:62,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:63,1
    - Dst: Lib_IntVector_Intrinsics_vec128_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:64,1
    - Dst: Lib_IntVector_Intrinsics_vec128_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:65,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:66,1
    - Dst: Lib_IntVector_Intrinsics_vec128_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:67,1
    - Dst: Lib_IntVector_Intrinsics_vec128_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:68,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:69,1
    - Dst: Lib_IntVector_Intrinsics_vec128_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:70,1
    - Dst: Lib_IntVector_Intrinsics_vec128_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:71,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:72,1
    - Dst: Lib_IntVector_Intrinsics_vec128_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:73,1
    - Dst: Lib_IntVector_Intrinsics_vec128_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:74,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:75,1
    - Dst: Lib_IntVector_Intrinsics_vec128_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:76,1
    - Dst: Lib_IntVector_Intrinsics_vec128_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:77,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:78,1
    - Dst: Lib_IntVector_Intrinsics_vec128_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:79,1
    - Dst: Lib_IntVector_Intrinsics_vec128_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:80,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:81,1
    - Dst: Lib_IntVector_Intrinsics_vec128_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:82,1
    - Dst: Lib_IntVector_Intrinsics_vec128_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:83,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:84,1
    - Dst: Lib_IntVector_Intrinsics_vec128_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:85,1
    - Dst: Lib_IntVector_Intrinsics_vec128_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:86,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:87,1
    - Dst: Lib_IntVector_Intrinsics_vec128_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:88,1
    - Dst: Lib_IntVector_Intrinsics_vec128_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:89,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:90,1
    - Dst: Lib_IntVector_Intrinsics_vec128_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:91,1
    - Dst: Lib_IntVector_Intrinsics_vec128_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:92,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:93,1
    - Dst: Lib_IntVector_Intrinsics_vec128_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:94,1
    - Dst: Lib_IntVector_Intrinsics_vec128_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:95,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:96,1
    - Dst: Lib_IntVector_Intrinsics_vec128_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:97,1
    - Dst: Lib_IntVector_Intrinsics_vec128_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:98,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:99,1
    - Dst: Lib_IntVector_Intrinsics_vec128_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:100,1
    - Dst: Lib_IntVector_Intrinsics_vec128_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:101,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:102,1
    - Dst: Lib_IntVector_Intrinsics_vec128_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:103,1
    - Dst: Lib_IntVector_Intrinsics_vec128_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:104,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:105,1
    - Dst: Lib_IntVector_Intrinsics_vec128_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:106,1
    - Dst: Lib_IntVector_Intrinsics_vec128_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:107,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:108,1
    - Dst: Lib_IntVector_Intrinsics_vec128_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:109,1
    - Dst: Lib_IntVector_Intrinsics_vec128_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:110,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:111,1
    - Dst: Lib_IntVector_Intrinsics_vec128_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:112,1
    - Dst: Lib_IntVector_Intrinsics_vec128_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:113,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:114,1
    - Dst: Lib_IntVector_Intrinsics_vec128_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:115,1
    - Dst: Lib_IntVector_Intrinsics_vec128_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:116,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:117,1
    - Dst: Lib_IntVector_Intrinsics_vec128_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:118,1
    - Dst: Lib_IntVector_Intrinsics_vec128_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:119,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:120,1
    - Dst: Lib_IntVector_Intrinsics_vec128_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:121,1
    - Dst: Lib_IntVector_Intrinsics_vec128_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:122,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:123,1
    - Dst: Lib_IntVector_Intrinsics_vec128_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:124,1
    - Dst: Lib_IntVector_Intrinsics_vec128_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:125,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:126,1
    - Dst: Lib_IntVector_Intrinsics_vec128_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:127,1
    - Dst: Lib_IntVector_Intrinsics_vec128_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 65
    argCount: 1
    argNames:
    - st
    argTypes:
    - Lib_IntVector_Intrinsics_vec128*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 129
    functionName: double_round_128
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c
    functionUses: 0
    functionsReached:
    - Lib_IntVector_Intrinsics_vec128_xor
    - Lib_IntVector_Intrinsics_vec128_add32
    - Lib_IntVector_Intrinsics_vec128_rotate_left32
    linkageType: ''
    returnType: void
    signature: void double_round_128(Lib_IntVector_Intrinsics_vec128 *st)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:137,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:139,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:140,1
    - Dst: double_round_128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:141,1
    - Dst: double_round_128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:142,1
    - Dst: double_round_128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:143,1
    - Dst: double_round_128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:144,1
    - Dst: double_round_128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:145,1
    - Dst: double_round_128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:146,1
    - Dst: double_round_128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:147,1
    - Dst: double_round_128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:148,1
    - Dst: double_round_128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:149,1
    - Dst: double_round_128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:150,1
    - Dst: KRML_MAYBE_FOR16
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:151,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:156,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 3
    argNames:
    - k
    - ctx
    - ctr
    argTypes:
    - Lib_IntVector_Intrinsics_vec128*
    - Lib_IntVector_Intrinsics_vec128*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 159
    functionName: chacha20_core_128
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c
    functionUses: 0
    functionsReached:
    - Lib_IntVector_Intrinsics_vec128_add32
    - memcpy
    - KRML_MAYBE_FOR16
    - Lib_IntVector_Intrinsics_vec128_load32
    - double_round_128
    linkageType: ''
    returnType: void
    signature: "void chacha20_core_128(\n    Lib_IntVector_Intrinsics_vec128 *k,\n
      \   Lib_IntVector_Intrinsics_vec128 *ctx,\n    uint32_t ctr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_FOR4
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:165,1
    - Dst: KRML_MAYBE_FOR8
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:172,1
    - Dst: load32_le
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:178,1
    - Dst: KRML_MAYBE_FOR3
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:183,1
    - Dst: load32_le
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:189,1
    - Dst: KRML_MAYBE_FOR16
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:193,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:199,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load32s
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:203,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 4
    argNames:
    - ctx
    - k
    - n
    - ctr
    argTypes:
    - Lib_IntVector_Intrinsics_vec128*
    - uint8_t*
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 209
    functionName: chacha20_init_128
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c
    functionUses: 0
    functionsReached:
    - Lib_IntVector_Intrinsics_vec128_add32
    - KRML_MAYBE_FOR4
    - load32_le
    - KRML_MAYBE_FOR8
    - Lib_IntVector_Intrinsics_vec128_load32s
    - KRML_MAYBE_FOR3
    - KRML_MAYBE_FOR16
    - Lib_IntVector_Intrinsics_vec128_load32
    linkageType: ''
    returnType: void
    signature: void chacha20_init_128(Lib_IntVector_Intrinsics_vec128 *ctx, uint8_t
      *k, uint8_t *n, uint32_t ctr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: KRML_PRE_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:220,1
    - Dst: KRML_POST_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:221,1
    - Dst: chacha20_init_128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:222,1
    - Dst: KRML_PRE_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:229,1
    - Dst: KRML_POST_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:230,1
    - Dst: chacha20_core_128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:231,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:249,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:251,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:253,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:255,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:257,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:259,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:261,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:263,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:273,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:275,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:277,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:279,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:281,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:283,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:285,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:287,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:297,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:299,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:301,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:303,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:305,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:307,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:309,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:311,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:321,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:323,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:325,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:327,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:329,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:331,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:333,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:335,1
    - Dst: KRML_MAYBE_FOR16
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:360,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load32_le
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:365,1
    - Dst: Lib_IntVector_Intrinsics_vec128_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:366,1
    - Dst: Lib_IntVector_Intrinsics_vec128_store32_le
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:367,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:372,1
    - Dst: KRML_PRE_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:373,1
    - Dst: KRML_POST_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:374,1
    - Dst: chacha20_core_128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:375,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:393,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:395,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:397,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:399,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:401,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:403,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:405,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:407,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:417,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:419,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:421,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:423,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:425,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:427,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:429,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:431,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:441,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:443,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:445,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:447,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:449,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:451,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:453,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:455,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:465,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:467,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:469,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:471,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:473,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:475,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:477,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:479,1
    - Dst: KRML_MAYBE_FOR16
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:504,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load32_le
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:509,1
    - Dst: Lib_IntVector_Intrinsics_vec128_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:510,1
    - Dst: Lib_IntVector_Intrinsics_vec128_store32_le
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:511,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:512,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 54
    argCount: 6
    argNames:
    - len
    - out
    - text
    - key
    - n
    - ctr
    argTypes:
    - uint32_t
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 211
    functionDepth: 3
    functionLinenumber: 211
    functionLinenumberEnd: 514
    functionName: Hacl_Chacha20_Vec128_chacha20_encrypt_128
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c
    functionUses: 1
    functionsReached:
    - KRML_PRE_ALIGN
    - Lib_IntVector_Intrinsics_vec128_interleave_high64
    - memcpy
    - Lib_IntVector_Intrinsics_vec128_interleave_low64
    - chacha20_init_128
    - Lib_IntVector_Intrinsics_vec128_load32_le
    - Lib_IntVector_Intrinsics_vec128_xor
    - Lib_IntVector_Intrinsics_vec128_interleave_low32
    - KRML_MAYBE_FOR16
    - Lib_IntVector_Intrinsics_vec128_store32_le
    - KRML_POST_ALIGN
    - chacha20_core_128
    - Lib_IntVector_Intrinsics_vec128_interleave_high32
    linkageType: ''
    returnType: void
    signature: "void Hacl_Chacha20_Vec128_chacha20_encrypt_128(\n    uint32_t len,\n
      \   uint8_t *out,\n    uint8_t *text,\n    uint8_t *key,\n    uint8_t *n,\n
      \   uint32_t ctr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: KRML_PRE_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:525,1
    - Dst: KRML_POST_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:526,1
    - Dst: chacha20_init_128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:527,1
    - Dst: KRML_PRE_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:534,1
    - Dst: KRML_POST_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:535,1
    - Dst: chacha20_core_128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:536,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:554,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:556,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:558,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:560,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:562,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:564,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:566,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:568,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:578,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:580,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:582,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:584,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:586,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:588,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:590,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:592,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:602,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:604,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:606,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:608,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:610,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:612,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:614,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:616,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:626,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:628,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:630,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:632,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:634,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:636,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:638,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:640,1
    - Dst: KRML_MAYBE_FOR16
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:665,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load32_le
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:670,1
    - Dst: Lib_IntVector_Intrinsics_vec128_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:671,1
    - Dst: Lib_IntVector_Intrinsics_vec128_store32_le
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:672,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:677,1
    - Dst: KRML_PRE_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:678,1
    - Dst: KRML_POST_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:679,1
    - Dst: chacha20_core_128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:680,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:698,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:700,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:702,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:704,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:706,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:708,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:710,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:712,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:722,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:724,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:726,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:728,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:730,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:732,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:734,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:736,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:746,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:748,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:750,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:752,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:754,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:756,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:758,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:760,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:770,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:772,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:774,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:776,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:778,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:780,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:782,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:784,1
    - Dst: KRML_MAYBE_FOR16
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:809,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load32_le
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:814,1
    - Dst: Lib_IntVector_Intrinsics_vec128_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:815,1
    - Dst: Lib_IntVector_Intrinsics_vec128_store32_le
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:816,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c:817,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 54
    argCount: 6
    argNames:
    - len
    - out
    - cipher
    - key
    - n
    - ctr
    argTypes:
    - uint32_t
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 516
    functionDepth: 3
    functionLinenumber: 516
    functionLinenumberEnd: 819
    functionName: Hacl_Chacha20_Vec128_chacha20_decrypt_128
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec128.c
    functionUses: 0
    functionsReached:
    - KRML_PRE_ALIGN
    - Lib_IntVector_Intrinsics_vec128_interleave_high64
    - memcpy
    - Lib_IntVector_Intrinsics_vec128_interleave_low64
    - chacha20_init_128
    - Lib_IntVector_Intrinsics_vec128_load32_le
    - Lib_IntVector_Intrinsics_vec128_xor
    - Lib_IntVector_Intrinsics_vec128_interleave_low32
    - KRML_MAYBE_FOR16
    - Lib_IntVector_Intrinsics_vec128_store32_le
    - KRML_POST_ALIGN
    - chacha20_core_128
    - Lib_IntVector_Intrinsics_vec128_interleave_high32
    linkageType: ''
    returnType: void
    signature: "void Hacl_Chacha20_Vec128_chacha20_decrypt_128(\n    uint32_t len,\n
      \   uint8_t *out,\n    uint8_t *cipher,\n    uint8_t *key,\n    uint8_t *n,\n
      \   uint32_t ctr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Impl_Curve25519_Field51_fadd
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:46,1
    - Dst: Hacl_Impl_Curve25519_Field51_fsub
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:47,1
    - Dst: Hacl_Impl_Curve25519_Field51_fadd
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:52,1
    - Dst: Hacl_Impl_Curve25519_Field51_fsub
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:53,1
    - Dst: Hacl_Impl_Curve25519_Field51_fmul2
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:54,1
    - Dst: Hacl_Impl_Curve25519_Field51_fadd
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:55,1
    - Dst: Hacl_Impl_Curve25519_Field51_fsub
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:56,1
    - Dst: Hacl_Impl_Curve25519_Field51_fsqr2
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:63,1
    - Dst: Hacl_Impl_Curve25519_Field51_fsqr2
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:64,1
    - Dst: Hacl_Impl_Curve25519_Field51_fsub
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:70,1
    - Dst: Hacl_Impl_Curve25519_Field51_fmul1
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:71,1
    - Dst: Hacl_Impl_Curve25519_Field51_fadd
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:72,1
    - Dst: Hacl_Impl_Curve25519_Field51_fmul2
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:73,1
    - Dst: Hacl_Impl_Curve25519_Field51_fmul
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 3
    argNames:
    - q
    - p01_tmp1
    - tmp2
    argTypes:
    - uint64_t*
    - uint64_t*
    - FStar_UInt128_uint128*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 75
    functionName: point_add_and_double
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c
    functionUses: 0
    functionsReached:
    - Hacl_Impl_Curve25519_Field51_fmul2
    - Hacl_Impl_Curve25519_Field51_fadd
    - Hacl_Impl_Curve25519_Field51_fsqr2
    - Hacl_Impl_Curve25519_Field51_fsub
    - Hacl_Impl_Curve25519_Field51_fmul
    - Hacl_Impl_Curve25519_Field51_fmul1
    linkageType: ''
    returnType: void
    signature: void point_add_and_double(uint64_t *q, uint64_t *p01_tmp1, FStar_UInt128_uint128
      *tmp2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Impl_Curve25519_Field51_fadd
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:88,1
    - Dst: Hacl_Impl_Curve25519_Field51_fsub
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:89,1
    - Dst: Hacl_Impl_Curve25519_Field51_fsqr2
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:90,1
    - Dst: Hacl_Impl_Curve25519_Field51_fsub
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:96,1
    - Dst: Hacl_Impl_Curve25519_Field51_fmul1
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:97,1
    - Dst: Hacl_Impl_Curve25519_Field51_fadd
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:98,1
    - Dst: Hacl_Impl_Curve25519_Field51_fmul2
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - nq
    - tmp1
    - tmp2
    argTypes:
    - uint64_t*
    - uint64_t*
    - FStar_UInt128_uint128*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 100
    functionName: point_double
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c
    functionUses: 0
    functionsReached:
    - Hacl_Impl_Curve25519_Field51_fmul2
    - Hacl_Impl_Curve25519_Field51_fadd
    - Hacl_Impl_Curve25519_Field51_fsqr2
    - Hacl_Impl_Curve25519_Field51_fsub
    - Hacl_Impl_Curve25519_Field51_fmul1
    linkageType: ''
    returnType: void
    signature: void point_double(uint64_t *nq, uint64_t *tmp1, FStar_UInt128_uint128
      *tmp2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:107,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:113,1
    - Dst: Hacl_Impl_Curve25519_Field51_cswap2
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:131,1
    - Dst: point_add_and_double
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:132,1
    - Dst: Hacl_Impl_Curve25519_Field51_cswap2
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:143,1
    - Dst: point_add_and_double
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:144,1
    - Dst: Hacl_Impl_Curve25519_Field51_cswap2
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:148,1
    - Dst: point_double
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:151,1
    - Dst: point_double
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:152,1
    - Dst: point_double
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:153,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 3
    argNames:
    - out
    - key
    - init
    argTypes:
    - uint64_t*
    - uint8_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 155
    functionName: montgomery_ladder
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c
    functionUses: 0
    functionsReached:
    - memcpy
    - point_double
    - FStar_UInt128_uint64_to_uint128
    - Hacl_Impl_Curve25519_Field51_cswap2
    - point_add_and_double
    linkageType: ''
    returnType: void
    signature: void montgomery_ladder(uint64_t *out, uint8_t *key, uint64_t *init)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Impl_Curve25519_Field51_fsqr
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:164,1
    - Dst: Hacl_Impl_Curve25519_Field51_fsqr
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - o
    - inp
    - tmp
    - n
    argTypes:
    - uint64_t*
    - uint64_t*
    - FStar_UInt128_uint128*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 168
    functionName: Hacl_Curve25519_51_fsquare_times
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c
    functionUses: 0
    functionsReached:
    - Hacl_Impl_Curve25519_Field51_fsqr
    linkageType: ''
    returnType: void
    signature: "void Hacl_Curve25519_51_fsquare_times(\n    uint64_t *o,\n    uint64_t
      *inp,\n    FStar_UInt128_uint128 *tmp,\n    uint32_t n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Curve25519_51_fsquare_times
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:178,1
    - Dst: Hacl_Curve25519_51_fsquare_times
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:179,1
    - Dst: Hacl_Impl_Curve25519_Field51_fmul
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:180,1
    - Dst: Hacl_Impl_Curve25519_Field51_fmul
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:181,1
    - Dst: Hacl_Curve25519_51_fsquare_times
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:182,1
    - Dst: Hacl_Impl_Curve25519_Field51_fmul
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:183,1
    - Dst: Hacl_Curve25519_51_fsquare_times
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:184,1
    - Dst: Hacl_Impl_Curve25519_Field51_fmul
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:185,1
    - Dst: Hacl_Curve25519_51_fsquare_times
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:190,1
    - Dst: Hacl_Impl_Curve25519_Field51_fmul
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:191,1
    - Dst: Hacl_Curve25519_51_fsquare_times
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:192,1
    - Dst: Hacl_Impl_Curve25519_Field51_fmul
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:193,1
    - Dst: Hacl_Curve25519_51_fsquare_times
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:194,1
    - Dst: Hacl_Impl_Curve25519_Field51_fmul
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:195,1
    - Dst: Hacl_Curve25519_51_fsquare_times
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:196,1
    - Dst: Hacl_Impl_Curve25519_Field51_fmul
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:197,1
    - Dst: Hacl_Curve25519_51_fsquare_times
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:202,1
    - Dst: Hacl_Impl_Curve25519_Field51_fmul
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:203,1
    - Dst: Hacl_Curve25519_51_fsquare_times
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:204,1
    - Dst: Hacl_Impl_Curve25519_Field51_fmul
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:205,1
    - Dst: Hacl_Curve25519_51_fsquare_times
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:206,1
    - Dst: Hacl_Impl_Curve25519_Field51_fmul
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 3
    argNames:
    - o
    - i
    - tmp
    argTypes:
    - uint64_t*
    - uint64_t*
    - FStar_UInt128_uint128*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 210
    functionName: Hacl_Curve25519_51_finv
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c
    functionUses: 0
    functionsReached:
    - Hacl_Impl_Curve25519_Field51_fmul
    - Hacl_Curve25519_51_fsquare_times
    linkageType: ''
    returnType: void
    signature: void Hacl_Curve25519_51_finv(uint64_t *o, uint64_t *i, FStar_UInt128_uint128
      *tmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:221,1
    - Dst: Hacl_Curve25519_51_finv
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:222,1
    - Dst: Hacl_Impl_Curve25519_Field51_fmul
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:223,1
    - Dst: Hacl_Impl_Curve25519_Field51_store_felem
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:224,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:225,1
    - Dst: store64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - o
    - i
    argTypes:
    - uint8_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 212
    functionDepth: 3
    functionLinenumber: 212
    functionLinenumberEnd: 230
    functionName: encode_point
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c
    functionUses: 0
    functionsReached:
    - Hacl_Curve25519_51_finv
    - KRML_MAYBE_FOR4
    - FStar_UInt128_uint64_to_uint128
    - store64_le
    - Hacl_Impl_Curve25519_Field51_fmul
    - Hacl_Impl_Curve25519_Field51_store_felem
    linkageType: ''
    returnType: void
    signature: void encode_point(uint8_t *o, uint64_t *i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_FOR4
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:244,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:250,1
    - Dst: montgomery_ladder
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:276,1
    - Dst: encode_point
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 3
    argNames:
    - out
    - priv
    - pub
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 278
    functionName: Hacl_Curve25519_51_scalarmult
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c
    functionUses: 0
    functionsReached:
    - encode_point
    - KRML_MAYBE_FOR4
    - montgomery_ladder
    - load64_le
    linkageType: ''
    returnType: void
    signature: void Hacl_Curve25519_51_scalarmult(uint8_t *out, uint8_t *priv, uint8_t
      *pub)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Curve25519_51_scalarmult
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:297,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pub
    - priv
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 288
    functionDepth: 2
    functionLinenumber: 288
    functionLinenumberEnd: 298
    functionName: Hacl_Curve25519_51_secret_to_public
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c
    functionUses: 0
    functionsReached:
    - Hacl_Curve25519_51_scalarmult
    linkageType: ''
    returnType: void
    signature: void Hacl_Curve25519_51_secret_to_public(uint8_t *pub, uint8_t *priv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Curve25519_51_scalarmult
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:311,1
    - Dst: FStar_UInt8_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c:314,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - out
    - priv
    - pub
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 307
    functionDepth: 2
    functionLinenumber: 307
    functionLinenumberEnd: 320
    functionName: Hacl_Curve25519_51_ecdh
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Curve25519_51.c
    functionUses: 0
    functionsReached:
    - Hacl_Curve25519_51_scalarmult
    - FStar_UInt8_eq_mask
    linkageType: ''
    returnType: bool
    signature: bool Hacl_Curve25519_51_ecdh(uint8_t *out, uint8_t *priv, uint8_t *pub)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out
    - f1
    - f2
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 34
    functionName: add_scalar
    functionSourceFile: /src/nss/lib/freebl/verified/curve25519-inline.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void add_scalar(uint64_t *out, uint64_t *f1, uint64_t f2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out
    - f1
    - f2
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 76
    functionName: fadd
    functionSourceFile: /src/nss/lib/freebl/verified/curve25519-inline.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fadd(uint64_t *out, uint64_t *f1, uint64_t *f2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out
    - f1
    - f2
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 119
    functionName: fsub
    functionSourceFile: /src/nss/lib/freebl/verified/curve25519-inline.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fsub(uint64_t *out, uint64_t *f1, uint64_t *f2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - out
    - f1
    - f2
    - tmp
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 252
    functionName: fmul
    functionSourceFile: /src/nss/lib/freebl/verified/curve25519-inline.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fmul(uint64_t *out, uint64_t *f1, uint64_t *f2, uint64_t *tmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - out
    - f1
    - f2
    - tmp
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 503
    functionName: fmul2
    functionSourceFile: /src/nss/lib/freebl/verified/curve25519-inline.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fmul2(uint64_t *out, uint64_t *f1, uint64_t *f2, uint64_t *tmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out
    - f1
    - f2
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 547
    functionName: fmul_scalar
    functionSourceFile: /src/nss/lib/freebl/verified/curve25519-inline.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fmul_scalar(uint64_t *out, uint64_t *f1, uint64_t f2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bit
    - p1
    - p2
    argTypes:
    - uint64_t
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 550
    functionDepth: 0
    functionLinenumber: 550
    functionLinenumberEnd: 631
    functionName: cswap2
    functionSourceFile: /src/nss/lib/freebl/verified/curve25519-inline.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cswap2(uint64_t bit, uint64_t *p1, uint64_t *p2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out
    - f
    - tmp
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 635
    functionDepth: 0
    functionLinenumber: 635
    functionLinenumberEnd: 741
    functionName: fsqr
    functionSourceFile: /src/nss/lib/freebl/verified/curve25519-inline.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fsqr(uint64_t *out, uint64_t *f, uint64_t *tmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out
    - f
    - tmp
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 747
    functionDepth: 0
    functionLinenumber: 747
    functionLinenumberEnd: 939
    functionName: fsqr2
    functionSourceFile: /src/nss/lib/freebl/verified/curve25519-inline.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fsqr2(uint64_t *out, uint64_t *f, uint64_t *tmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - e
    - ','
    - t
    - ','
    - _ret_t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: LowStar_Ignore_ignore
    functionSourceFile: /src/nss/lib/freebl/verified/eurydice_glue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LowStar_Ignore_ignore(e, t, _ret_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: CLITERAL
    functionSourceFile: /src/nss/lib/freebl/verified/eurydice_glue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLITERAL(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: CLITERAL
    functionSourceFile: /src/nss/lib/freebl/verified/eurydice_glue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLITERAL(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - start
    - ','
    - end
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: EURYDICE_SLICE
    functionSourceFile: /src/nss/lib/freebl/verified/eurydice_glue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EURYDICE_SLICE(x, start, end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - _
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: EURYDICE_SLICE_LEN
    functionSourceFile: /src/nss/lib/freebl/verified/eurydice_glue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EURYDICE_SLICE_LEN(s, _)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - s
    - ','
    - i
    - ','
    - t
    - ','
    - t_ptr_t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: Eurydice_slice_index
    functionSourceFile: /src/nss/lib/freebl/verified/eurydice_glue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Eurydice_slice_index(s, i, t, t_ptr_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - s
    - ','
    - r
    - ','
    - t
    - ','
    - _
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: Eurydice_slice_subslice
    functionSourceFile: /src/nss/lib/freebl/verified/eurydice_glue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Eurydice_slice_subslice(s, r, t, _)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - s
    - ','
    - start
    - ','
    - end
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: Eurydice_slice_subslice2
    functionSourceFile: /src/nss/lib/freebl/verified/eurydice_glue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Eurydice_slice_subslice2(s, start, end, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - s
    - ','
    - subslice_end_pos
    - ','
    - t
    - ','
    - _
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: Eurydice_slice_subslice_to
    functionSourceFile: /src/nss/lib/freebl/verified/eurydice_glue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Eurydice_slice_subslice_to(s, subslice_end_pos, t, _)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - s
    - ','
    - subslice_start_pos
    - ','
    - t
    - ','
    - _
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: Eurydice_slice_subslice_from
    functionSourceFile: /src/nss/lib/freebl/verified/eurydice_glue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Eurydice_slice_subslice_from(s, subslice_start_pos, t, _)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - end
    - ','
    - x
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: Eurydice_array_to_slice
    functionSourceFile: /src/nss/lib/freebl/verified/eurydice_glue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Eurydice_array_to_slice(end, x, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _arraylen
    - ','
    - x
    - ','
    - r
    - ','
    - t
    - ','
    - _
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: Eurydice_array_to_subslice
    functionSourceFile: /src/nss/lib/freebl/verified/eurydice_glue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Eurydice_array_to_subslice(_arraylen, x, r, t, _)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x
    - ','
    - start
    - ','
    - end
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: Eurydice_array_to_subslice2
    functionSourceFile: /src/nss/lib/freebl/verified/eurydice_glue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Eurydice_array_to_subslice2(x, start, end, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - _size
    - ','
    - x
    - ','
    - r
    - ','
    - t
    - ','
    - _range_t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 78
    functionName: Eurydice_array_to_subslice_to
    functionSourceFile: /src/nss/lib/freebl/verified/eurydice_glue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Eurydice_array_to_subslice_to(_size, x, r, t, _range_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - size
    - ','
    - x
    - ','
    - r
    - ','
    - t
    - ','
    - _range_t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: Eurydice_array_to_subslice_from
    functionSourceFile: /src/nss/lib/freebl/verified/eurydice_glue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Eurydice_array_to_subslice_from(size, x, r, t, _range_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - dst
    - ','
    - len
    - ','
    - init
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: Eurydice_array_repeat
    functionSourceFile: /src/nss/lib/freebl/verified/eurydice_glue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Eurydice_array_repeat(dst, len, init, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: Eurydice_slice_len
    functionSourceFile: /src/nss/lib/freebl/verified/eurydice_glue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Eurydice_slice_len(s, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - dst
    - ','
    - src
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 85
    functionName: Eurydice_slice_copy
    functionSourceFile: /src/nss/lib/freebl/verified/eurydice_glue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Eurydice_slice_copy(dst, src, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - len_
    - ','
    - ptr_
    - ','
    - t
    - ','
    - _ret_t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: core_array___Array_T__N__23__as_slice
    functionSourceFile: /src/nss/lib/freebl/verified/eurydice_glue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: core_array___Array_T__N__23__as_slice(len_, ptr_, t, _ret_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - len
    - ','
    - src
    - ','
    - dst
    - ','
    - elem_type
    - ','
    - _ret_t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: core_array___core__clone__Clone_for__Array_T__N___20__clone
    functionSourceFile: /src/nss/lib/freebl/verified/eurydice_glue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "core_array___core__clone__Clone_for__Array_T__N___20__clone( \\\n
      \   len, src, dst, elem_type, _ret_t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - sz
    - ','
    - a1
    - ','
    - a2
    - ','
    - t
    - ','
    - _
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 95
    functionName: Eurydice_array_eq
    functionSourceFile: /src/nss/lib/freebl/verified/eurydice_glue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Eurydice_array_eq(sz, a1, a2, t, _)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - sz
    - ','
    - a1
    - ','
    - a2
    - ','
    - t
    - ','
    - _
    - ','
    - _ret_t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: core_array_equality___core__cmp__PartialEq__Array_U__N___for__Array_T__N____eq
    functionSourceFile: /src/nss/lib/freebl/verified/eurydice_glue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "core_array_equality___core__cmp__PartialEq__Array_U__N___for__Array_T__N____eq(
      \\\n    sz, a1, a2, t, _, _ret_t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - sz
    - ','
    - a1
    - ','
    - a2
    - ','
    - t
    - ','
    - _
    - ','
    - _ret_t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: core_array_equality___core__cmp__PartialEq__0___Slice_U____for__Array_T__N___3__eq
    functionSourceFile: /src/nss/lib/freebl/verified/eurydice_glue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "core_array_equality___core__cmp__PartialEq__0___Slice_U____for__Array_T__N___3__eq(
      \\\n    sz, a1, a2, t, _, _ret_t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - slice
    - ','
    - mid
    - ','
    - element_type
    - ','
    - ret_t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: Eurydice_slice_split_at
    functionSourceFile: /src/nss/lib/freebl/verified/eurydice_glue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Eurydice_slice_split_at(slice, mid, element_type, ret_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - slice
    - ','
    - mid
    - ','
    - element_type
    - ','
    - ret_t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 111
    functionName: Eurydice_slice_split_at_mut
    functionSourceFile: /src/nss/lib/freebl/verified/eurydice_glue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Eurydice_slice_split_at_mut(slice, mid, element_type, ret_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - dst
    - ','
    - src
    - ','
    - _
    - ','
    - t_arr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: Eurydice_slice_to_array2
    functionSourceFile: /src/nss/lib/freebl/verified/eurydice_glue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Eurydice_slice_to_array2(dst, src, _, t_arr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/eurydice_glue.h:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - dst_tag
    - dst_ok
    - src
    - sz
    argTypes:
    - uint8_t*
    - char*
    - Eurydice_slice
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 125
    functionName: Eurydice_slice_to_array3
    functionSourceFile: /src/nss/lib/freebl/verified/eurydice_glue.h
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void Eurydice_slice_to_array3(uint8_t *dst_tag, char *dst_ok,\n                         Eurydice_slice
      src, size_t sz)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htobe32
      Src: /src/nss/lib/freebl/verified/eurydice_glue.h:133,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/eurydice_glue.h:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - uint32_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 135
    functionName: core_num__u32_8__to_be_bytes
    functionSourceFile: /src/nss/lib/freebl/verified/eurydice_glue.h
    functionUses: 0
    functionsReached:
    - htobe32
    - memcpy
    linkageType: ''
    returnType: void
    signature: void core_num__u32_8__to_be_bytes(uint32_t src, uint8_t dst[4])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load32_le
      Src: /src/nss/lib/freebl/verified/eurydice_glue.h:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 141
    functionName: core_num__u32_8__from_le_bytes
    functionSourceFile: /src/nss/lib/freebl/verified/eurydice_glue.h
    functionUses: 0
    functionsReached:
    - load32_le
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t core_num__u32_8__from_le_bytes(uint8_t buf[4])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store64_le
      Src: /src/nss/lib/freebl/verified/eurydice_glue.h:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - buf
    argTypes:
    - uint64_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 147
    functionName: core_num__u64_9__to_le_bytes
    functionSourceFile: /src/nss/lib/freebl/verified/eurydice_glue.h
    functionUses: 0
    functionsReached:
    - store64_le
    linkageType: ''
    returnType: void
    signature: void core_num__u64_9__to_le_bytes(uint64_t v, uint8_t buf[8])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/eurydice_glue.h:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 152
    functionName: core_num__u64_9__from_le_bytes
    functionSourceFile: /src/nss/lib/freebl/verified/eurydice_glue.h
    functionUses: 0
    functionsReached:
    - load64_le
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t core_num__u64_9__from_le_bytes(uint8_t buf[8])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 158
    functionName: core_convert_num___core__convert__From_i32__for_i64__59__from
    functionSourceFile: /src/nss/lib/freebl/verified/eurydice_glue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t core_convert_num___core__convert__From_i32__for_i64__59__from(int32_t
      x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 164
    functionName: core_convert_num___core__convert__From_u8__for_u64__66__from
    functionSourceFile: /src/nss/lib/freebl/verified/eurydice_glue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t core_convert_num___core__convert__From_u8__for_u64__66__from(uint8_t
      x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 170
    functionName: core_convert_num___core__convert__From_u16__for_u64__70__from
    functionSourceFile: /src/nss/lib/freebl/verified/eurydice_glue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t core_convert_num___core__convert__From_u16__for_u64__70__from(uint16_t
      x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 176
    functionName: core_convert_num___core__convert__From_u16__for_usize__96__from
    functionSourceFile: /src/nss/lib/freebl/verified/eurydice_glue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t core_convert_num___core__convert__From_u16__for_usize__96__from(uint16_t
      x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __popcnt
      Src: /src/nss/lib/freebl/verified/eurydice_glue.h:182,1
    - Dst: __builtin_popcount
      Src: /src/nss/lib/freebl/verified/eurydice_glue.h:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x0
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 186
    functionName: core_num__u8_6__count_ones
    functionSourceFile: /src/nss/lib/freebl/verified/eurydice_glue.h
    functionUses: 0
    functionsReached:
    - __builtin_popcount
    - __popcnt
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t core_num__u8_6__count_ones(uint8_t x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - uint16_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 193
    functionName: core_num__u16_7__wrapping_add
    functionSourceFile: /src/nss/lib/freebl/verified/eurydice_glue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t core_num__u16_7__wrapping_add(uint16_t x, uint16_t y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 198
    functionName: core_num__u8_6__wrapping_sub
    functionSourceFile: /src/nss/lib/freebl/verified/eurydice_glue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t core_num__u8_6__wrapping_sub(uint8_t x, uint8_t y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x0
    - x1
    argTypes:
    - int32_t*
    - int32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 205
    functionName: core_ops_arith__i32_319__add_assign
    functionSourceFile: /src/nss/lib/freebl/verified/eurydice_glue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void core_ops_arith__i32_319__add_assign(int32_t *x0,\n                                    int32_t
      *x1)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - v
    argTypes:
    - uint8_t*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 211
    functionName: Eurydice_bitand_pv_u8
    functionSourceFile: /src/nss/lib/freebl/verified/eurydice_glue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t Eurydice_bitand_pv_u8(uint8_t *p, uint8_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - v
    argTypes:
    - uint8_t*
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 216
    functionName: Eurydice_shr_pv_u8
    functionSourceFile: /src/nss/lib/freebl/verified/eurydice_glue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t Eurydice_shr_pv_u8(uint8_t *p, int32_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x0
    argTypes:
    - core_num_nonzero_private_NonZeroUsizeInner*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 224
    functionName: core_num_nonzero_private___core__clone__Clone_for_core__num__nonzero__private__NonZeroUsizeInner__26__clone
    functionSourceFile: /src/nss/lib/freebl/verified/eurydice_glue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: core_num_nonzero_private_NonZeroUsizeInner
    signature: "core_num_nonzero_private_NonZeroUsizeInner core_num_nonzero_private___core__clone__Clone_for_core__num__nonzero__private__NonZeroUsizeInner__26__clone(\n
      \   core_num_nonzero_private_NonZeroUsizeInner *x0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - iter_ptr
    - ','
    - t
    - ','
    - ret_t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 232
    functionName: Eurydice_range_iter_next
    functionSourceFile: /src/nss/lib/freebl/verified/eurydice_glue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Eurydice_range_iter_next(iter_ptr, t, ret_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - t
    - ','
    - _ret_t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 242
    functionName: Eurydice_into_iter
    functionSourceFile: /src/nss/lib/freebl/verified/eurydice_glue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Eurydice_into_iter(x, t, _ret_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - chunks
    - element_size
    argTypes:
    - Eurydice_chunks*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 270
    functionName: chunk_next
    functionSourceFile: /src/nss/lib/freebl/verified/eurydice_glue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Eurydice_slice
    signature: "Eurydice_slice chunk_next(Eurydice_chunks *chunks,\n           size_t
      element_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - slice_
    - ','
    - sz_
    - ','
    - t
    - ','
    - _ret_t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 274
    functionName: core_slice___Slice_T___chunks
    functionSourceFile: /src/nss/lib/freebl/verified/eurydice_glue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: core_slice___Slice_T___chunks(slice_, sz_, t, _ret_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - slice_
    - ','
    - sz_
    - ','
    - t
    - ','
    - _ret_t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 278
    functionName: core_slice___Slice_T___chunks_exact
    functionSourceFile: /src/nss/lib/freebl/verified/eurydice_glue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: core_slice___Slice_T___chunks_exact(slice_, sz_, t, _ret_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - iter
    - ','
    - t
    - ','
    - ret_t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 284
    functionName: Eurydice_chunks_next
    functionSourceFile: /src/nss/lib/freebl/verified/eurydice_glue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Eurydice_chunks_next(iter, t, ret_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - iter
    - ','
    - t
    - ','
    - _ret_t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 292
    functionName: core_slice_iter__core__slice__iter__ChunksExact__a__T__89__next
    functionSourceFile: /src/nss/lib/freebl/verified/eurydice_glue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "core_slice_iter__core__slice__iter__ChunksExact__a__T__89__next( \\\n
      \   iter, t, _ret_t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - t
    - ','
    - _ret_t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 300
    functionName: core_slice___Slice_T___iter
    functionSourceFile: /src/nss/lib/freebl/verified/eurydice_glue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: core_slice___Slice_T___iter(x, t, _ret_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - iter
    - ','
    - t
    - ','
    - ret_t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 309
    functionName: core_slice_iter__core__slice__iter__Iter__a__T__181__next
    functionSourceFile: /src/nss/lib/freebl/verified/eurydice_glue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "core_slice_iter__core__slice__iter__Iter__a__T__181__next(iter, t,
      \\\n                                                                  ret_t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x1
    - ','
    - x2
    - ','
    - x3
    - ','
    - x4
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 322
    functionName: core_fmt_rt__core__fmt__rt__Argument__a__1__new_display
    functionSourceFile: /src/nss/lib/freebl/verified/eurydice_glue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "core_fmt_rt__core__fmt__rt__Argument__a__1__new_display(x1, x2, x3,
      \\\n                                                                x4)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 338
    functionName: EURYDICE_VEC_NEW
    functionSourceFile: /src/nss/lib/freebl/verified/eurydice_glue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EURYDICE_VEC_NEW(_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - v
    - ','
    - x
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 340
    functionName: EURYDICE_VEC_PUSH
    functionSourceFile: /src/nss/lib/freebl/verified/eurydice_glue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EURYDICE_VEC_PUSH(v, x, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 364
    functionName: EURYDICE_VEC_DROP
    functionSourceFile: /src/nss/lib/freebl/verified/eurydice_glue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EURYDICE_VEC_DROP(v, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - v
    - ','
    - i
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 366
    functionName: EURYDICE_VEC_INDEX
    functionSourceFile: /src/nss/lib/freebl/verified/eurydice_glue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EURYDICE_VEC_INDEX(v, i, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 367
    functionName: EURYDICE_VEC_LEN
    functionSourceFile: /src/nss/lib/freebl/verified/eurydice_glue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EURYDICE_VEC_LEN(v, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 375
    functionName: EURYDICE_BOX_NEW
    functionSourceFile: /src/nss/lib/freebl/verified/eurydice_glue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EURYDICE_BOX_NEW(x, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - new_v
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 382
    functionName: EURYDICE_REPLACE
    functionSourceFile: /src/nss/lib/freebl/verified/eurydice_glue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EURYDICE_REPLACE(ptr, new_v, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_PRE_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:30,1
    - Dst: KRML_POST_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:31,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:32,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:34,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:35,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:36,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:39,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:40,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:43,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:43,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:45,1
    - Dst: Lib_IntVector_Intrinsics_vec128_or
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:48,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:48,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_left64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:50,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:50,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:51,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:55,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:55,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:57,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:59,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:71,1
    - Dst: Lib_IntVector_Intrinsics_vec128_or
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:73,1
    - Dst: Lib_IntVector_Intrinsics_vec128_insert64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:85,1
    - Dst: Lib_IntVector_Intrinsics_vec128_insert64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:87,1
    - Dst: Lib_IntVector_Intrinsics_vec128_insert64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:89,1
    - Dst: Lib_IntVector_Intrinsics_vec128_insert64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:91,1
    - Dst: Lib_IntVector_Intrinsics_vec128_insert64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:93,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:94,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:95,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:96,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:97,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - acc
    - b
    argTypes:
    - Lib_IntVector_Intrinsics_vec128*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 109
    functionName: Hacl_Impl_Poly1305_Field32xN_128_load_acc2
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c
    functionUses: 0
    functionsReached:
    - Lib_IntVector_Intrinsics_vec128_add64
    - KRML_PRE_ALIGN
    - Lib_IntVector_Intrinsics_vec128_interleave_high64
    - Lib_IntVector_Intrinsics_vec128_interleave_low64
    - Lib_IntVector_Intrinsics_vec128_insert64
    - Lib_IntVector_Intrinsics_vec128_shift_right64
    - Lib_IntVector_Intrinsics_vec128_or
    - Lib_IntVector_Intrinsics_vec128_load64
    - Lib_IntVector_Intrinsics_vec128_shift_left64
    - Lib_IntVector_Intrinsics_vec128_and
    - KRML_POST_ALIGN
    - Lib_IntVector_Intrinsics_vec128_load64_le
    linkageType: ''
    returnType: void
    signature: void Hacl_Impl_Poly1305_Field32xN_128_load_acc2(Lib_IntVector_Intrinsics_vec128
      *acc, uint8_t *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:134,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:136,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:138,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:140,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:142,1
    - Dst: Lib_IntVector_Intrinsics_vec128_smul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:144,1
    - Dst: Lib_IntVector_Intrinsics_vec128_smul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:146,1
    - Dst: Lib_IntVector_Intrinsics_vec128_smul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:148,1
    - Dst: Lib_IntVector_Intrinsics_vec128_smul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:150,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:151,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:152,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:153,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:154,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:155,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:158,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:159,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:162,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:163,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:166,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:167,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:170,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:171,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:174,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:175,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:178,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:179,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:182,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:183,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:186,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:187,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:190,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:191,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:194,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:195,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:198,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:199,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:202,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:203,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:206,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:207,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:210,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:211,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:214,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:215,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:218,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:219,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:222,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:223,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:226,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:227,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:230,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:231,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:234,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:235,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:242,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:244,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:246,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:247,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:248,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:249,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:250,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:252,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:254,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_left64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:256,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:257,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:258,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:259,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:260,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:261,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:263,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:265,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:266,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:267,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:268,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:269,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:271,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:272,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:273,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:281,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:282,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:285,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:286,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:289,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:290,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:293,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:294,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:297,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:298,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:300,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:303,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:304,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:306,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:307,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:310,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:311,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:313,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:314,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:317,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:318,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:320,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:321,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:324,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:325,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:327,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:328,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:331,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:332,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:334,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:337,1
    - Dst: Lib_IntVector_Intrinsics_vec128_smul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - out
    - p
    argTypes:
    - Lib_IntVector_Intrinsics_vec128*
    - Lib_IntVector_Intrinsics_vec128*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 348
    functionName: Hacl_Impl_Poly1305_Field32xN_128_fmul_r2_normalize
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c
    functionUses: 0
    functionsReached:
    - Lib_IntVector_Intrinsics_vec128_add64
    - Lib_IntVector_Intrinsics_vec128_interleave_high64
    - Lib_IntVector_Intrinsics_vec128_smul64
    - Lib_IntVector_Intrinsics_vec128_interleave_low64
    - Lib_IntVector_Intrinsics_vec128_shift_right64
    - Lib_IntVector_Intrinsics_vec128_load64
    - Lib_IntVector_Intrinsics_vec128_shift_left64
    - Lib_IntVector_Intrinsics_vec128_and
    - Lib_IntVector_Intrinsics_vec128_mul64
    linkageType: ''
    returnType: void
    signature: "void Hacl_Impl_Poly1305_Field32xN_128_fmul_r2_normalize(\n    Lib_IntVector_Intrinsics_vec128
      *out,\n    Lib_IntVector_Intrinsics_vec128 *p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:361,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:363,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:373,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:374,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:377,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:378,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:381,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:381,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:383,1
    - Dst: Lib_IntVector_Intrinsics_vec128_or
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:386,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:386,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_left64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:388,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:388,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:389,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:393,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:393,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:395,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:397,1
    - Dst: Lib_IntVector_Intrinsics_vec128_smul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:413,1
    - Dst: Lib_IntVector_Intrinsics_vec128_smul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:414,1
    - Dst: Lib_IntVector_Intrinsics_vec128_smul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:415,1
    - Dst: Lib_IntVector_Intrinsics_vec128_smul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:416,1
    - Dst: Lib_IntVector_Intrinsics_vec128_smul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:417,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:432,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:433,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:434,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:435,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:436,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:439,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:440,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:442,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:442,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:444,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:444,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:446,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:446,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:448,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:448,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:451,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:452,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:455,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:456,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:459,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:460,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:463,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:464,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:467,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:468,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:471,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:472,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:475,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:476,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:479,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:480,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:483,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:484,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:487,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:488,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:491,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:492,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:495,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:496,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:499,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:500,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:503,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:504,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:507,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:508,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:515,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:517,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:519,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:520,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:521,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:522,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:523,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:525,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:527,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_left64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:529,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:530,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:531,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:532,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:533,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:534,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:536,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:538,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:539,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:540,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:541,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:542,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:544,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:545,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:546,1
    - Dst: Lib_IntVector_Intrinsics_vec128_smul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:562,1
    - Dst: Lib_IntVector_Intrinsics_vec128_smul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:563,1
    - Dst: Lib_IntVector_Intrinsics_vec128_smul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:564,1
    - Dst: Lib_IntVector_Intrinsics_vec128_smul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:565,1
    - Dst: Lib_IntVector_Intrinsics_vec128_smul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 2
    argNames:
    - ctx
    - key
    argTypes:
    - Lib_IntVector_Intrinsics_vec128*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 567
    functionName: Hacl_Poly1305_128_poly1305_init
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c
    functionUses: 0
    functionsReached:
    - Lib_IntVector_Intrinsics_vec128_add64
    - Lib_IntVector_Intrinsics_vec128_smul64
    - Lib_IntVector_Intrinsics_vec128_shift_right64
    - Lib_IntVector_Intrinsics_vec128_or
    - Lib_IntVector_Intrinsics_vec128_load64
    - Lib_IntVector_Intrinsics_vec128_shift_left64
    - Lib_IntVector_Intrinsics_vec128_and
    - load64_le
    - Lib_IntVector_Intrinsics_vec128_mul64
    linkageType: ''
    returnType: void
    signature: void Hacl_Poly1305_128_poly1305_init(Lib_IntVector_Intrinsics_vec128
      *ctx, uint8_t *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_PRE_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:574,1
    - Dst: KRML_POST_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:575,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:576,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:578,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:580,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:581,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:584,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:585,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:588,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:588,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:590,1
    - Dst: Lib_IntVector_Intrinsics_vec128_or
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:593,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:593,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_left64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:595,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:595,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:596,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:600,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:600,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:602,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:604,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:616,1
    - Dst: Lib_IntVector_Intrinsics_vec128_or
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:618,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:640,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:641,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:642,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:643,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:644,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:645,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:646,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:647,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:648,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:649,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:652,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:653,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:656,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:657,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:660,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:661,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:664,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:665,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:668,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:669,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:672,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:673,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:676,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:677,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:680,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:681,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:684,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:685,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:688,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:689,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:692,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:693,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:696,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:697,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:700,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:701,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:704,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:705,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:708,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:709,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:712,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:713,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:716,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:717,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:720,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:721,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:724,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:725,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:728,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:729,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:736,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:738,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:740,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:741,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:742,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:743,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:744,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:746,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:748,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_left64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:750,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:751,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:752,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:753,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:754,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:755,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:757,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:759,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:760,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:761,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:762,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:763,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:765,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:766,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - ctx
    - text
    argTypes:
    - Lib_IntVector_Intrinsics_vec128*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 569
    functionDepth: 1
    functionLinenumber: 569
    functionLinenumberEnd: 778
    functionName: Hacl_Poly1305_128_poly1305_update1
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c
    functionUses: 0
    functionsReached:
    - Lib_IntVector_Intrinsics_vec128_add64
    - KRML_PRE_ALIGN
    - Lib_IntVector_Intrinsics_vec128_shift_right64
    - Lib_IntVector_Intrinsics_vec128_or
    - Lib_IntVector_Intrinsics_vec128_load64
    - Lib_IntVector_Intrinsics_vec128_shift_left64
    - Lib_IntVector_Intrinsics_vec128_and
    - KRML_POST_ALIGN
    - load64_le
    - Lib_IntVector_Intrinsics_vec128_mul64
    linkageType: ''
    returnType: void
    signature: void Hacl_Poly1305_128_poly1305_update1(Lib_IntVector_Intrinsics_vec128
      *ctx, uint8_t *text)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Impl_Poly1305_Field32xN_128_load_acc2
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:794,1
    - Dst: KRML_PRE_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:800,1
    - Dst: KRML_POST_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:801,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:802,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:804,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:805,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:807,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:810,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:811,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:814,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:814,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:816,1
    - Dst: Lib_IntVector_Intrinsics_vec128_or
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:819,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:819,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_left64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:821,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:821,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:822,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:826,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:826,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:828,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:830,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:842,1
    - Dst: Lib_IntVector_Intrinsics_vec128_or
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:844,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:861,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:862,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:863,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:864,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:865,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:868,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:869,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:872,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:873,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:876,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:877,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:880,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:881,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:884,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:885,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:888,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:889,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:892,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:893,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:896,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:897,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:900,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:901,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:904,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:905,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:908,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:909,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:912,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:913,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:916,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:917,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:920,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:921,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:924,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:925,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:928,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:929,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:932,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:933,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:936,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:937,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:940,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:941,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:944,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:945,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:952,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:954,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:956,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:957,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:958,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:959,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:960,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:962,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:964,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_left64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:966,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:967,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:968,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:969,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:970,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:971,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:973,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:975,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:976,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:977,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:978,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:979,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:981,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:982,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:983,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1004,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1005,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1006,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1007,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1008,1
    - Dst: Hacl_Impl_Poly1305_Field32xN_128_fmul_r2_normalize
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1015,1
    - Dst: KRML_PRE_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1023,1
    - Dst: KRML_POST_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1024,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1025,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1027,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1029,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1030,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1033,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1034,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1037,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1037,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1039,1
    - Dst: Lib_IntVector_Intrinsics_vec128_or
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1042,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1042,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_left64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1044,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1044,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1045,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1049,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1049,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1051,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1053,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1065,1
    - Dst: Lib_IntVector_Intrinsics_vec128_or
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1067,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1089,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1090,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1091,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1092,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1093,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1094,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1095,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1096,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1097,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1098,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1101,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1102,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1105,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1106,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1109,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1110,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1113,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1114,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1117,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1118,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1121,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1122,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1125,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1126,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1129,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1130,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1133,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1134,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1137,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1138,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1141,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1142,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1145,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1146,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1149,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1150,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1153,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1154,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1157,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1158,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1161,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1162,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1165,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1166,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1169,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1170,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1173,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1174,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1177,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1178,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1185,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1187,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1189,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1190,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1191,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1192,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1193,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1195,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1197,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_left64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1199,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1200,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1201,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1202,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1203,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1204,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1206,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1208,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1209,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1210,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1211,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1212,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1214,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1215,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1216,1
    - Dst: KRML_PRE_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1230,1
    - Dst: KRML_POST_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1231,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1233,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1234,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1236,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1238,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1239,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1242,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1243,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1246,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1246,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1248,1
    - Dst: Lib_IntVector_Intrinsics_vec128_or
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1251,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1251,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_left64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1253,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1253,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1254,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1258,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1258,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1260,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1262,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1274,1
    - Dst: Lib_IntVector_Intrinsics_vec128_or
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1276,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1298,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1299,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1300,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1301,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1302,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1303,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1304,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1305,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1306,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1307,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1310,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1311,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1314,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1315,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1318,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1319,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1322,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1323,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1326,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1327,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1330,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1331,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1334,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1335,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1338,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1339,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1342,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1343,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1346,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1347,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1350,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1351,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1354,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1355,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1358,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1359,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1362,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1363,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1366,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1367,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1370,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1371,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1374,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1375,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1378,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1379,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1382,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1383,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1386,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1387,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1394,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1396,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1398,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1399,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1400,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1401,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1402,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1404,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1406,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_left64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1408,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1409,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1410,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1411,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1412,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1413,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1415,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1417,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1418,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1419,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1420,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1421,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1423,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1424,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1425,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 57
    argCount: 3
    argNames:
    - ctx
    - len
    - text
    argTypes:
    - Lib_IntVector_Intrinsics_vec128*
    - uint32_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1438
      start: 780
    functionDepth: 2
    functionLinenumber: 780
    functionLinenumberEnd: 1438
    functionName: Hacl_Poly1305_128_poly1305_update
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c
    functionUses: 0
    functionsReached:
    - Lib_IntVector_Intrinsics_vec128_add64
    - KRML_PRE_ALIGN
    - Lib_IntVector_Intrinsics_vec128_interleave_high64
    - Lib_IntVector_Intrinsics_vec128_mul64
    - memcpy
    - Hacl_Impl_Poly1305_Field32xN_128_load_acc2
    - Lib_IntVector_Intrinsics_vec128_interleave_low64
    - Hacl_Impl_Poly1305_Field32xN_128_fmul_r2_normalize
    - Lib_IntVector_Intrinsics_vec128_shift_right64
    - Lib_IntVector_Intrinsics_vec128_or
    - Lib_IntVector_Intrinsics_vec128_load64
    - Lib_IntVector_Intrinsics_vec128_shift_left64
    - Lib_IntVector_Intrinsics_vec128_and
    - KRML_POST_ALIGN
    - load64_le
    - Lib_IntVector_Intrinsics_vec128_load64_le
    linkageType: ''
    returnType: void
    signature: "void Hacl_Poly1305_128_poly1305_update(\n    Lib_IntVector_Intrinsics_vec128
      *ctx,\n    uint32_t len,\n    uint8_t *text)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1454,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1457,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1458,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1460,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1461,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1464,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1465,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1467,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1468,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1471,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1472,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1474,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1475,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1478,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1479,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1481,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1482,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1485,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1486,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1488,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1491,1
    - Dst: Lib_IntVector_Intrinsics_vec128_smul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1492,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1498,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1501,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1502,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1504,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1505,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1508,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1509,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1511,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1512,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1515,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1516,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1518,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1519,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1522,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1523,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1525,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1526,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1529,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1530,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1532,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1535,1
    - Dst: Lib_IntVector_Intrinsics_vec128_smul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1536,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1542,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1544,1
    - Dst: Lib_IntVector_Intrinsics_vec128_eq64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1545,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1548,1
    - Dst: Lib_IntVector_Intrinsics_vec128_eq64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1549,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1552,1
    - Dst: Lib_IntVector_Intrinsics_vec128_eq64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1553,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1556,1
    - Dst: Lib_IntVector_Intrinsics_vec128_eq64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1557,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1560,1
    - Dst: Lib_IntVector_Intrinsics_vec128_lognot
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1561,1
    - Dst: Lib_IntVector_Intrinsics_vec128_gt64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1561,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1562,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1563,1
    - Dst: Lib_IntVector_Intrinsics_vec128_sub64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1564,1
    - Dst: Lib_IntVector_Intrinsics_vec128_sub64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1565,1
    - Dst: Lib_IntVector_Intrinsics_vec128_sub64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1566,1
    - Dst: Lib_IntVector_Intrinsics_vec128_sub64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1567,1
    - Dst: Lib_IntVector_Intrinsics_vec128_sub64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1568,1
    - Dst: Lib_IntVector_Intrinsics_vec128_extract64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1584,1
    - Dst: Lib_IntVector_Intrinsics_vec128_extract64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1585,1
    - Dst: Lib_IntVector_Intrinsics_vec128_extract64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1586,1
    - Dst: Lib_IntVector_Intrinsics_vec128_extract64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1587,1
    - Dst: Lib_IntVector_Intrinsics_vec128_extract64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1588,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1593,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1595,1
    - Dst: store64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1605,1
    - Dst: store64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1606,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - tag
    - key
    - ctx
    argTypes:
    - uint8_t*
    - uint8_t*
    - Lib_IntVector_Intrinsics_vec128*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1607
      start: 1440
    functionDepth: 1
    functionLinenumber: 1440
    functionLinenumberEnd: 1607
    functionName: Hacl_Poly1305_128_poly1305_finish
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c
    functionUses: 0
    functionsReached:
    - Lib_IntVector_Intrinsics_vec128_add64
    - Lib_IntVector_Intrinsics_vec128_smul64
    - Lib_IntVector_Intrinsics_vec128_gt64
    - Lib_IntVector_Intrinsics_vec128_lognot
    - Lib_IntVector_Intrinsics_vec128_shift_right64
    - store64_le
    - Lib_IntVector_Intrinsics_vec128_load64
    - Lib_IntVector_Intrinsics_vec128_eq64
    - Lib_IntVector_Intrinsics_vec128_extract64
    - Lib_IntVector_Intrinsics_vec128_and
    - Lib_IntVector_Intrinsics_vec128_sub64
    - load64_le
    linkageType: ''
    returnType: void
    signature: "void Hacl_Poly1305_128_poly1305_finish(\n    uint8_t *tag,\n    uint8_t
      *key,\n    Lib_IntVector_Intrinsics_vec128 *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_PRE_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1612,1
    - Dst: KRML_POST_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1613,1
    - Dst: Hacl_Poly1305_128_poly1305_init
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1614,1
    - Dst: Hacl_Poly1305_128_poly1305_update
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1615,1
    - Dst: Hacl_Poly1305_128_poly1305_finish
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c:1616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - tag
    - len
    - text
    - key
    argTypes:
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1617
      start: 1609
    functionDepth: 3
    functionLinenumber: 1609
    functionLinenumberEnd: 1617
    functionName: Hacl_Poly1305_128_poly1305_mac
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Poly1305_128.c
    functionUses: 0
    functionsReached:
    - KRML_PRE_ALIGN
    - KRML_POST_ALIGN
    - Hacl_Poly1305_128_poly1305_update
    - Hacl_Poly1305_128_poly1305_finish
    - Hacl_Poly1305_128_poly1305_init
    linkageType: ''
    returnType: void
    signature: void Hacl_Poly1305_128_poly1305_mac(uint8_t *tag, uint32_t len, uint8_t
      *text, uint8_t *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x1
    - ','
    - x2
    - ','
    - x3
    - ','
    - x4
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: Lib_IntTypes_Intrinsics_add_carry_u64
    functionSourceFile: /src/nss/lib/freebl/verified/lib_intrinsics.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntTypes_Intrinsics_add_carry_u64(x1, x2, x3, x4)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x1
    - ','
    - x2
    - ','
    - x3
    - ','
    - x4
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: Lib_IntTypes_Intrinsics_sub_borrow_u64
    functionSourceFile: /src/nss/lib/freebl/verified/lib_intrinsics.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntTypes_Intrinsics_sub_borrow_u64(x1, x2, x3, x4)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x1
    - ','
    - x2
    - ','
    - x3
    - ','
    - x4
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: Lib_IntTypes_Intrinsics_add_carry_u64
    functionSourceFile: /src/nss/lib/freebl/verified/lib_intrinsics.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntTypes_Intrinsics_add_carry_u64(x1, x2, x3, x4)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x1
    - ','
    - x2
    - ','
    - x3
    - ','
    - x4
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: Lib_IntTypes_Intrinsics_sub_borrow_u64
    functionSourceFile: /src/nss/lib/freebl/verified/lib_intrinsics.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntTypes_Intrinsics_sub_borrow_u64(x1, x2, x3, x4)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x1
    - ','
    - x2
    - ','
    - x3
    - ','
    - x4
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: Lib_IntTypes_Intrinsics_add_carry_u32
    functionSourceFile: /src/nss/lib/freebl/verified/lib_intrinsics.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntTypes_Intrinsics_add_carry_u32(x1, x2, x3, x4)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x1
    - ','
    - x2
    - ','
    - x3
    - ','
    - x4
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: Lib_IntTypes_Intrinsics_sub_borrow_u32
    functionSourceFile: /src/nss/lib/freebl/verified/lib_intrinsics.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntTypes_Intrinsics_sub_borrow_u32(x1, x2, x3, x4)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x1
    - ','
    - x2
    - ','
    - x3
    - ','
    - x4
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: Lib_IntTypes_Intrinsics_add_carry_u32
    functionSourceFile: /src/nss/lib/freebl/verified/lib_intrinsics.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntTypes_Intrinsics_add_carry_u32(x1, x2, x3, x4)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x1
    - ','
    - x2
    - ','
    - x3
    - ','
    - x4
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: Lib_IntTypes_Intrinsics_add_carry_u64
    functionSourceFile: /src/nss/lib/freebl/verified/lib_intrinsics.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntTypes_Intrinsics_add_carry_u64(x1, x2, x3, x4)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x1
    - ','
    - x2
    - ','
    - x3
    - ','
    - x4
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: Lib_IntTypes_Intrinsics_sub_borrow_u32
    functionSourceFile: /src/nss/lib/freebl/verified/lib_intrinsics.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntTypes_Intrinsics_sub_borrow_u32(x1, x2, x3, x4)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x1
    - ','
    - x2
    - ','
    - x3
    - ','
    - x4
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: Lib_IntTypes_Intrinsics_sub_borrow_u64
    functionSourceFile: /src/nss/lib/freebl/verified/lib_intrinsics.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntTypes_Intrinsics_sub_borrow_u64(x1, x2, x3, x4)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x1
    - ','
    - x2
    - ','
    - x3
    - ','
    - x4
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: Lib_IntTypes_Intrinsics_sub_borrow_u32
    functionSourceFile: /src/nss/lib/freebl/verified/lib_intrinsics.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntTypes_Intrinsics_sub_borrow_u32(x1, x2, x3, x4)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x1
    - ','
    - x2
    - ','
    - x3
    - ','
    - x4
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 90
    functionName: Lib_IntTypes_Intrinsics_sub_borrow_u64
    functionSourceFile: /src/nss/lib/freebl/verified/lib_intrinsics.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntTypes_Intrinsics_sub_borrow_u64(x1, x2, x3, x4)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Impl_Curve25519_Field51_fadd
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out
    - a
    - b
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: fsum
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Ed25519.c
    functionUses: 0
    functionsReached:
    - Hacl_Impl_Curve25519_Field51_fadd
    linkageType: ''
    returnType: void
    signature: void fsum(uint64_t *out, uint64_t *a, uint64_t *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Impl_Curve25519_Field51_fsub
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - out
    - a
    - b
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: fdifference
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Ed25519.c
    functionUses: 0
    functionsReached:
    - Hacl_Impl_Curve25519_Field51_fsub
    linkageType: ''
    returnType: void
    signature: void fdifference(uint64_t *out, uint64_t *a, uint64_t *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - a
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 78
    functionName: Hacl_Bignum25519_reduce_513
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Ed25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hacl_Bignum25519_reduce_513(uint64_t *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:85,1
    - Dst: Hacl_Impl_Curve25519_Field51_fmul
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - output
    - input
    - input2
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 87
    functionName: fmul0
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Ed25519.c
    functionUses: 0
    functionsReached:
    - FStar_UInt128_uint64_to_uint128
    - Hacl_Impl_Curve25519_Field51_fmul
    linkageType: ''
    returnType: void
    signature: void fmul0(uint64_t *output, uint64_t *input, uint64_t *input2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - out
    - a
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 107
    functionName: times_2
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Ed25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void times_2(uint64_t *out, uint64_t *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - out
    - a
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 119
    functionName: times_d
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Ed25519.c
    functionUses: 0
    functionsReached:
    - fmul0
    linkageType: ''
    returnType: void
    signature: void times_d(uint64_t *out, uint64_t *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - out
    - a
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 131
    functionName: times_2d
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Ed25519.c
    functionUses: 0
    functionsReached:
    - fmul0
    linkageType: ''
    returnType: void
    signature: void times_2d(uint64_t *out, uint64_t *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:138,1
    - Dst: Hacl_Impl_Curve25519_Field51_fsqr
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - out
    - a
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 140
    functionName: fsquare
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Ed25519.c
    functionUses: 0
    functionsReached:
    - FStar_UInt128_uint64_to_uint128
    - Hacl_Impl_Curve25519_Field51_fsqr
    linkageType: ''
    returnType: void
    signature: void fsquare(uint64_t *out, uint64_t *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:147,1
    - Dst: Hacl_Curve25519_51_fsquare_times
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - output
    - input
    - count
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 149
    functionName: fsquare_times
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Ed25519.c
    functionUses: 2
    functionsReached:
    - FStar_UInt128_uint64_to_uint128
    - Hacl_Curve25519_51_fsquare_times
    linkageType: ''
    returnType: void
    signature: void fsquare_times(uint64_t *output, uint64_t *input, uint32_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:156,1
    - Dst: Hacl_Curve25519_51_fsquare_times
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - output
    - count
    argTypes:
    - uint64_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 158
    functionName: fsquare_times_inplace
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Ed25519.c
    functionUses: 0
    functionsReached:
    - FStar_UInt128_uint64_to_uint128
    - Hacl_Curve25519_51_fsquare_times
    linkageType: ''
    returnType: void
    signature: void fsquare_times_inplace(uint64_t *output, uint32_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:165,1
    - Dst: Hacl_Curve25519_51_finv
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - out
    - a
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 160
    functionDepth: 3
    functionLinenumber: 160
    functionLinenumberEnd: 167
    functionName: Hacl_Bignum25519_inverse
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Ed25519.c
    functionUses: 0
    functionsReached:
    - FStar_UInt128_uint64_to_uint128
    - Hacl_Curve25519_51_finv
    linkageType: ''
    returnType: void
    signature: void Hacl_Bignum25519_inverse(uint64_t *out, uint64_t *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt64_gte_mask
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:200,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:201,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:202,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:203,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - out
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 221
    functionName: reduce
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Ed25519.c
    functionUses: 10
    functionsReached:
    - FStar_UInt64_gte_mask
    - FStar_UInt64_eq_mask
    linkageType: ''
    returnType: void
    signature: void reduce(uint64_t *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_FOR4
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:227,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - output
    - input
    argTypes:
    - uint64_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 244
    functionName: Hacl_Bignum25519_load_51
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Ed25519.c
    functionUses: 0
    functionsReached:
    - KRML_MAYBE_FOR4
    - load64_le
    linkageType: ''
    returnType: void
    signature: void Hacl_Bignum25519_load_51(uint64_t *output, uint8_t *input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Impl_Curve25519_Field51_store_felem
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:250,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:251,1
    - Dst: store64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - output
    - input
    argTypes:
    - uint8_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 256
    functionName: Hacl_Bignum25519_store_51
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Ed25519.c
    functionUses: 0
    functionsReached:
    - store64_le
    - KRML_MAYBE_FOR4
    - Hacl_Impl_Curve25519_Field51_store_felem
    linkageType: ''
    returnType: void
    signature: void Hacl_Bignum25519_store_51(uint8_t *output, uint64_t *input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fsquare
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:269,1
    - Dst: fsquare
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:270,1
    - Dst: fsum
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:271,1
    - Dst: fdifference
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:272,1
    - Dst: fsquare
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:273,1
    - Dst: times_2
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:274,1
    - Dst: fsum
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:281,1
    - Dst: fsquare
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:282,1
    - Dst: Hacl_Bignum25519_reduce_513
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:283,1
    - Dst: fdifference
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:284,1
    - Dst: Hacl_Bignum25519_reduce_513
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:285,1
    - Dst: Hacl_Bignum25519_reduce_513
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:286,1
    - Dst: fsum
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:287,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:296,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:297,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:298,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 2
    argNames:
    - out
    - p
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 258
    functionDepth: 2
    functionLinenumber: 258
    functionLinenumberEnd: 300
    functionName: Hacl_Impl_Ed25519_PointDouble_point_double
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Ed25519.c
    functionUses: 0
    functionsReached:
    - Hacl_Bignum25519_reduce_513
    - fmul0
    - times_2
    - fsquare
    - fdifference
    - fsum
    linkageType: ''
    returnType: void
    signature: void Hacl_Impl_Ed25519_PointDouble_point_double(uint64_t *out, uint64_t
      *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fdifference
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:314,1
    - Dst: fdifference
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:315,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:316,1
    - Dst: fsum
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:317,1
    - Dst: fsum
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:318,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:319,1
    - Dst: times_2d
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:330,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:331,1
    - Dst: times_2
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:332,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:333,1
    - Dst: fdifference
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:334,1
    - Dst: fdifference
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:335,1
    - Dst: fsum
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:336,1
    - Dst: fsum
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:337,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:346,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:347,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:348,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 3
    argNames:
    - out
    - p
    - q
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 302
    functionDepth: 2
    functionLinenumber: 302
    functionLinenumberEnd: 350
    functionName: Hacl_Impl_Ed25519_PointAdd_point_add
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Ed25519.c
    functionUses: 0
    functionsReached:
    - times_2d
    - fmul0
    - times_2
    - fdifference
    - fsum
    linkageType: ''
    returnType: void
    signature: void Hacl_Impl_Ed25519_PointAdd_point_add(uint64_t *out, uint64_t *p,
      uint64_t *q)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 1
    argNames:
    - b
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 379
    functionName: Hacl_Impl_Ed25519_PointConstants_make_point_inf
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Ed25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hacl_Impl_Ed25519_PointConstants_make_point_inf(uint64_t *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fsquare_times
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:389,1
    - Dst: fsquare_times
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:390,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:391,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:392,1
    - Dst: fsquare_times
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:393,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:394,1
    - Dst: fsquare_times
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:395,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:396,1
    - Dst: fsquare_times
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:397,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:398,1
    - Dst: fsquare_times
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:399,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:400,1
    - Dst: fsquare_times_inplace
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:401,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:402,1
    - Dst: fsquare_times
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:403,1
    - Dst: fsquare_times
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:408,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:409,1
    - Dst: fsquare_times
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:410,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:411,1
    - Dst: fsquare_times_inplace
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:412,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:413,1
    - Dst: fsquare_times_inplace
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:414,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 2
    argNames:
    - out
    - z
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 381
    functionDepth: 3
    functionLinenumber: 381
    functionLinenumberEnd: 416
    functionName: pow2_252m2
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Ed25519.c
    functionUses: 0
    functionsReached:
    - fmul0
    - fsquare_times
    - fsquare_times_inplace
    linkageType: ''
    returnType: void
    signature: void pow2_252m2(uint64_t *out, uint64_t *z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 427
    functionName: is_0
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Ed25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_0(uint64_t *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 439
    functionName: mul_modp_sqrt_m1
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Ed25519.c
    functionUses: 0
    functionsReached:
    - fmul0
    linkageType: ''
    returnType: void
    signature: void mul_modp_sqrt_m1(uint64_t *x)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fsquare
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:468,1
    - Dst: times_d
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:469,1
    - Dst: fsum
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:470,1
    - Dst: Hacl_Bignum25519_reduce_513
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:471,1
    - Dst: Hacl_Bignum25519_inverse
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:472,1
    - Dst: fdifference
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:473,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:474,1
    - Dst: reduce
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:475,1
    - Dst: is_0
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:476,1
    - Dst: pow2_252m2
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:500,1
    - Dst: fsquare
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:501,1
    - Dst: fdifference
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:502,1
    - Dst: Hacl_Bignum25519_reduce_513
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:503,1
    - Dst: reduce
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:504,1
    - Dst: is_0
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:505,1
    - Dst: mul_modp_sqrt_m1
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:507,1
    - Dst: fsquare
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:512,1
    - Dst: fdifference
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:513,1
    - Dst: Hacl_Bignum25519_reduce_513
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:514,1
    - Dst: reduce
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:515,1
    - Dst: is_0
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:516,1
    - Dst: reduce
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:522,1
    - Dst: fdifference
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:531,1
    - Dst: Hacl_Bignum25519_reduce_513
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:532,1
    - Dst: reduce
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:533,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:535,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 69
    argCount: 3
    argNames:
    - x
    - y
    - sign
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 441
    functionDepth: 4
    functionLinenumber: 441
    functionLinenumberEnd: 542
    functionName: recover_x
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Ed25519.c
    functionUses: 0
    functionsReached:
    - memcpy
    - Hacl_Bignum25519_reduce_513
    - fmul0
    - is_0
    - fsquare
    - reduce
    - fdifference
    - times_d
    - mul_modp_sqrt_m1
    - fsum
    - pow2_252m2
    - Hacl_Bignum25519_inverse
    linkageType: ''
    returnType: bool
    signature: bool recover_x(uint64_t *x, uint64_t *y, uint64_t sign)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Bignum25519_load_51
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:553,1
    - Dst: recover_x
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:554,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:563,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:564,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:570,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - out
    - s
    argTypes:
    - uint64_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 544
    functionDepth: 5
    functionLinenumber: 544
    functionLinenumberEnd: 575
    functionName: Hacl_Impl_Ed25519_PointDecompress_point_decompress
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Ed25519.c
    functionUses: 0
    functionsReached:
    - recover_x
    - fmul0
    - memcpy
    - Hacl_Bignum25519_load_51
    linkageType: ''
    returnType: bool
    signature: bool Hacl_Impl_Ed25519_PointDecompress_point_decompress(uint64_t *out,
      uint8_t *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Bignum25519_inverse
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:589,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:590,1
    - Dst: reduce
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:591,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:592,1
    - Dst: Hacl_Bignum25519_reduce_513
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:593,1
    - Dst: Hacl_Bignum25519_store_51
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - z
    - p
    argTypes:
    - uint8_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 577
    functionDepth: 4
    functionLinenumber: 577
    functionLinenumberEnd: 600
    functionName: Hacl_Impl_Ed25519_PointCompress_point_compress
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Ed25519.c
    functionUses: 0
    functionsReached:
    - Hacl_Bignum25519_reduce_513
    - fmul0
    - Hacl_Bignum25519_store_51
    - reduce
    - Hacl_Bignum25519_inverse
    linkageType: ''
    returnType: void
    signature: void Hacl_Impl_Ed25519_PointCompress_point_compress(uint8_t *z, uint64_t
      *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:655,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:656,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:657,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:658,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:659,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:660,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:661,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:662,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:663,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:664,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:665,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:666,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:667,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:668,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:669,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:670,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:671,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:672,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:673,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:674,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:675,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:676,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:677,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:678,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:679,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:681,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:682,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:682,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:685,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:685,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:685,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:689,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:689,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:689,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:689,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:696,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:696,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:696,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:698,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:698,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:699,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:701,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:704,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:704,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:707,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:707,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:710,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:710,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:713,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:713,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:716,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:716,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:720,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:720,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:723,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:723,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:727,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:727,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:730,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:730,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:734,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:734,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:737,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:737,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:741,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:741,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:744,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:744,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:747,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:779,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:780,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:781,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:782,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:783,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:784,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:785,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:786,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:787,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:788,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:789,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:790,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:791,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:792,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:793,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:794,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:795,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:800,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:800,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:800,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:804,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:804,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:804,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:809,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:809,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:809,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:809,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:816,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:816,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:816,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:816,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:825,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:825,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:825,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:825,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:825,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:833,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:833,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:833,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:833,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:833,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:843,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:843,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:843,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:843,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:843,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:843,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - z
    - t
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 602
    functionDepth: 0
    functionLinenumber: 602
    functionLinenumberEnd: 935
    functionName: barrett_reduction
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Ed25519.c
    functionUses: 0
    functionsReached:
    - FStar_UInt128_uint128_to_uint64
    - FStar_UInt128_shift_right
    - FStar_UInt128_mul_wide
    - FStar_UInt128_add_mod
    linkageType: ''
    returnType: void
    signature: void barrett_reduction(uint64_t *z, uint64_t *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:951,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:952,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:953,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:954,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:955,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:956,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:957,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:958,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:959,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:960,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:961,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:962,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:963,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:964,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:965,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:966,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:967,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:968,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:969,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:970,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:971,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:972,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:973,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:974,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:975,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:977,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:978,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:978,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:981,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:981,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:981,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:985,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:985,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:985,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:985,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:992,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:992,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:992,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:994,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:994,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:995,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:997,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:998,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1002,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1002,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1005,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1005,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1009,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1009,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1012,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1012,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1016,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1016,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1019,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1019,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1023,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1023,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1026,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1026,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1030,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1030,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1033,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1033,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1037,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1037,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1040,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1040,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1044,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1044,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1047,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1047,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1051,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1051,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1054,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1054,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1057,1
    - Dst: barrett_reduction
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1078,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - out
    - x
    - y
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 937
    functionDepth: 1
    functionLinenumber: 937
    functionLinenumberEnd: 1079
    functionName: mul_modq
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Ed25519.c
    functionUses: 0
    functionsReached:
    - FStar_UInt128_uint128_to_uint64
    - FStar_UInt128_add_mod
    - barrett_reduction
    - FStar_UInt128_shift_right
    - FStar_UInt128_mul_wide
    linkageType: ''
    returnType: void
    signature: void mul_modq(uint64_t *out, uint64_t *x, uint64_t *y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - out
    - x
    - y
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1167
      start: 1081
    functionDepth: 0
    functionLinenumber: 1081
    functionLinenumberEnd: 1167
    functionName: add_modq
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Ed25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void add_modq(uint64_t *out, uint64_t *x, uint64_t *y)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - s
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1202
      start: 1169
    functionDepth: 0
    functionLinenumber: 1169
    functionLinenumberEnd: 1202
    functionName: gte_q
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Ed25519.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool gte_q(uint64_t *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1218
      start: 1204
    functionDepth: 0
    functionLinenumber: 1204
    functionLinenumberEnd: 1218
    functionName: eq
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Ed25519.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool eq(uint64_t *a, uint64_t *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1226,1
    - Dst: reduce
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1227,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1228,1
    - Dst: reduce
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1229,1
    - Dst: eq
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1230,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1234,1
    - Dst: reduce
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1235,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1236,1
    - Dst: reduce
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1237,1
    - Dst: eq
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - p
    - q
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1241
      start: 1220
    functionDepth: 2
    functionLinenumber: 1220
    functionLinenumberEnd: 1241
    functionName: Hacl_Impl_Ed25519_PointEqual_point_equal
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Ed25519.c
    functionUses: 0
    functionsReached:
    - reduce
    - fmul0
    - eq
    linkageType: ''
    returnType: bool
    signature: bool Hacl_Impl_Ed25519_PointEqual_point_equal(uint64_t *p, uint64_t
      *q)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fdifference
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1260,1
    - Dst: Hacl_Bignum25519_reduce_513
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1261,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1262,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1263,1
    - Dst: fdifference
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1264,1
    - Dst: Hacl_Bignum25519_reduce_513
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - p
    - out
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1266
      start: 1243
    functionDepth: 2
    functionLinenumber: 1243
    functionLinenumberEnd: 1266
    functionName: Hacl_Impl_Ed25519_PointNegate_point_negate
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Ed25519.c
    functionUses: 0
    functionsReached:
    - fdifference
    - memcpy
    - Hacl_Bignum25519_reduce_513
    linkageType: ''
    returnType: void
    signature: void Hacl_Impl_Ed25519_PointNegate_point_negate(uint64_t *p, uint64_t
      *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_FOR4
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1272,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1278,1
    - Dst: Hacl_Impl_Ed25519_PointConstants_make_point_inf
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1286,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1287,1
    - Dst: KRML_MAYBE_FOR7
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1288,1
    - Dst: Hacl_Impl_Ed25519_PointDouble_point_double
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1293,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1294,1
    - Dst: Hacl_Impl_Ed25519_PointAdd_point_add
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1298,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1299,1
    - Dst: Hacl_Impl_Ed25519_PointConstants_make_point_inf
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1302,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1305,1
    - Dst: Hacl_Impl_Ed25519_PointDouble_point_double
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1309,1
    - Dst: Hacl_Bignum_Lib_bn_get_bits_u64
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1311,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1312,1
    - Dst: KRML_MAYBE_FOR15
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1313,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1318,1
    - Dst: Hacl_Impl_Ed25519_PointAdd_point_add
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1325,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 3
    argNames:
    - out
    - scalar
    - q
    argTypes:
    - uint64_t*
    - uint8_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1327
      start: 1268
    functionDepth: 3
    functionLinenumber: 1268
    functionLinenumberEnd: 1327
    functionName: Hacl_Impl_Ed25519_Ladder_point_mul
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Ed25519.c
    functionUses: 0
    functionsReached:
    - memcpy
    - KRML_MAYBE_FOR4
    - Hacl_Bignum_Lib_bn_get_bits_u64
    - Hacl_Impl_Ed25519_PointDouble_point_double
    - FStar_UInt64_eq_mask
    - KRML_MAYBE_FOR7
    - Hacl_Impl_Ed25519_PointAdd_point_add
    - Hacl_Impl_Ed25519_PointConstants_make_point_inf
    - KRML_MAYBE_FOR15
    - load64_le
    linkageType: ''
    returnType: void
    signature: void Hacl_Impl_Ed25519_Ladder_point_mul(uint64_t *out, uint8_t *scalar,
      uint64_t *q)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1332,1
    - Dst: KRML_MAYBE_FOR15
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1333,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1338,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - table
    - bits_l
    - tmp
    argTypes:
    - uint64_t*
    - uint64_t
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1345
      start: 1329
    functionDepth: 1
    functionLinenumber: 1329
    functionLinenumberEnd: 1345
    functionName: precomp_get_consttime
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Ed25519.c
    functionUses: 0
    functionsReached:
    - KRML_MAYBE_FOR15
    - memcpy
    - FStar_UInt64_eq_mask
    linkageType: ''
    returnType: void
    signature: void precomp_get_consttime(const uint64_t *table, uint64_t bits_l,
      uint64_t *tmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_FOR4
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1351,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1357,1
    - Dst: Hacl_Impl_Ed25519_PointConstants_make_point_inf
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1420,1
    - Dst: KRML_MAYBE_FOR16
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1422,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1426,1
    - Dst: Hacl_Impl_Ed25519_PointDouble_point_double
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1430,1
    - Dst: Hacl_Bignum_Lib_bn_get_bits_u64
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1432,1
    - Dst: precomp_get_consttime
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1433,1
    - Dst: Hacl_Impl_Ed25519_PointAdd_point_add
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1434,1
    - Dst: Hacl_Bignum_Lib_bn_get_bits_u64
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1436,1
    - Dst: precomp_get_consttime
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1437,1
    - Dst: Hacl_Impl_Ed25519_PointAdd_point_add
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1438,1
    - Dst: Hacl_Bignum_Lib_bn_get_bits_u64
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1440,1
    - Dst: precomp_get_consttime
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1441,1
    - Dst: Hacl_Impl_Ed25519_PointAdd_point_add
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1442,1
    - Dst: Hacl_Bignum_Lib_bn_get_bits_u64
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1444,1
    - Dst: precomp_get_consttime
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1445,1
    - Dst: Hacl_Impl_Ed25519_PointAdd_point_add
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1446,1
    - Dst: KRML_HOST_IGNORE
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1447,1
    - Dst: KRML_HOST_IGNORE
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1448,1
    - Dst: KRML_HOST_IGNORE
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 2
    argNames:
    - out
    - scalar
    argTypes:
    - uint64_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1450
      start: 1347
    functionDepth: 3
    functionLinenumber: 1347
    functionLinenumberEnd: 1450
    functionName: point_mul_g
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Ed25519.c
    functionUses: 0
    functionsReached:
    - KRML_MAYBE_FOR4
    - Hacl_Bignum_Lib_bn_get_bits_u64
    - Hacl_Impl_Ed25519_PointDouble_point_double
    - precomp_get_consttime
    - Hacl_Impl_Ed25519_PointAdd_point_add
    - KRML_MAYBE_FOR16
    - Hacl_Impl_Ed25519_PointConstants_make_point_inf
    - load64_le
    - KRML_HOST_IGNORE
    linkageType: ''
    returnType: void
    signature: void point_mul_g(uint64_t *out, uint8_t *scalar)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_FOR4
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1483,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1489,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1493,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1499,1
    - Dst: Hacl_Impl_Ed25519_PointConstants_make_point_inf
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1507,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1508,1
    - Dst: KRML_MAYBE_FOR15
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1509,1
    - Dst: Hacl_Impl_Ed25519_PointDouble_point_double
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1514,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1515,1
    - Dst: Hacl_Impl_Ed25519_PointAdd_point_add
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1519,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1520,1
    - Dst: Hacl_Bignum_Lib_bn_get_bits_u64
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1525,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1529,1
    - Dst: Hacl_Bignum_Lib_bn_get_bits_u64
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1531,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1534,1
    - Dst: Hacl_Impl_Ed25519_PointAdd_point_add
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1535,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1538,1
    - Dst: Hacl_Impl_Ed25519_PointDouble_point_double
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1542,1
    - Dst: Hacl_Bignum_Lib_bn_get_bits_u64
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1544,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1547,1
    - Dst: Hacl_Impl_Ed25519_PointAdd_point_add
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1548,1
    - Dst: Hacl_Bignum_Lib_bn_get_bits_u64
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1550,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1554,1
    - Dst: Hacl_Impl_Ed25519_PointAdd_point_add
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1555,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 43
    argCount: 4
    argNames:
    - out
    - scalar1
    - scalar2
    - q2
    argTypes:
    - uint64_t*
    - uint8_t*
    - uint8_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1557
      start: 1452
    functionDepth: 3
    functionLinenumber: 1452
    functionLinenumberEnd: 1557
    functionName: point_mul_g_double_vartime
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Ed25519.c
    functionUses: 0
    functionsReached:
    - memcpy
    - KRML_MAYBE_FOR4
    - Hacl_Bignum_Lib_bn_get_bits_u64
    - Hacl_Impl_Ed25519_PointDouble_point_double
    - KRML_MAYBE_FOR5
    - Hacl_Impl_Ed25519_PointAdd_point_add
    - Hacl_Impl_Ed25519_PointConstants_make_point_inf
    - KRML_MAYBE_FOR15
    - load64_le
    linkageType: ''
    returnType: void
    signature: void point_mul_g_double_vartime(uint64_t *out, uint8_t *scalar1, uint8_t
      *scalar2, uint64_t *q2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Impl_Ed25519_PointNegate_point_negate
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1567,1
    - Dst: point_mul_g_double_vartime
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - out
    - scalar1
    - scalar2
    - q2
    argTypes:
    - uint64_t*
    - uint8_t*
    - uint8_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1569
      start: 1559
    functionDepth: 4
    functionLinenumber: 1559
    functionLinenumberEnd: 1569
    functionName: point_negate_mul_double_g_vartime
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Ed25519.c
    functionUses: 0
    functionsReached:
    - Hacl_Impl_Ed25519_PointNegate_point_negate
    - point_mul_g_double_vartime
    linkageType: ''
    returnType: void
    signature: "void point_negate_mul_double_g_vartime(\n    uint64_t *out,\n    uint8_t
      *scalar1,\n    uint8_t *scalar2,\n    uint64_t *q2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1581,1
    - Dst: store64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1583,1
    - Dst: store64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1585,1
    - Dst: store64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1587,1
    - Dst: store32_le
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - out
    - b
    argTypes:
    - uint8_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1589
      start: 1571
    functionDepth: 1
    functionLinenumber: 1571
    functionLinenumberEnd: 1589
    functionName: store_56
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Ed25519.c
    functionUses: 0
    functionsReached:
    - store32_le
    - store64_le
    linkageType: ''
    returnType: void
    signature: void store_56(uint8_t *out, uint64_t *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1595,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1599,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1603,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1607,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1611,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1615,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1619,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1623,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - out
    - b
    argTypes:
    - uint64_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1642
      start: 1591
    functionDepth: 1
    functionLinenumber: 1591
    functionLinenumberEnd: 1642
    functionName: load_64_bytes
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Ed25519.c
    functionUses: 0
    functionsReached:
    - load64_le
    linkageType: ''
    returnType: void
    signature: void load_64_bytes(uint64_t *out, uint8_t *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1648,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1652,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1656,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1660,1
    - Dst: load32_le
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - out
    - b
    argTypes:
    - uint64_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1671
      start: 1644
    functionDepth: 1
    functionLinenumber: 1644
    functionLinenumberEnd: 1671
    functionName: load_32_bytes
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Ed25519.c
    functionUses: 0
    functionsReached:
    - load32_le
    - load64_le
    linkageType: ''
    returnType: void
    signature: void load_32_bytes(uint64_t *out, uint8_t *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha512_pre_msg
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1678,1
    - Dst: load_64_bytes
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1679,1
    - Dst: barrett_reduction
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - out
    - prefix
    - len
    - input
    argTypes:
    - uint64_t*
    - uint8_t*
    - uint32_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1681
      start: 1673
    functionDepth: 2
    functionLinenumber: 1673
    functionLinenumberEnd: 1681
    functionName: sha512_modq_pre
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Ed25519.c
    functionUses: 0
    functionsReached:
    - load_64_bytes
    - sha512_pre_msg
    - barrett_reduction
    linkageType: ''
    returnType: void
    signature: void sha512_modq_pre(uint64_t *out, uint8_t *prefix, uint32_t len,
      uint8_t *input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha512_pre_pre2_msg
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1693,1
    - Dst: load_64_bytes
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1694,1
    - Dst: barrett_reduction
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1695,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - out
    - prefix
    - prefix2
    - len
    - input
    argTypes:
    - uint64_t*
    - uint8_t*
    - uint8_t*
    - uint32_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1696
      start: 1683
    functionDepth: 2
    functionLinenumber: 1683
    functionLinenumberEnd: 1696
    functionName: sha512_modq_pre_pre2
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Ed25519.c
    functionUses: 0
    functionsReached:
    - load_64_bytes
    - barrett_reduction
    - sha512_pre_pre2_msg
    linkageType: ''
    returnType: void
    signature: "void sha512_modq_pre_pre2(\n    uint64_t *out,\n    uint8_t *prefix,\n
      \   uint8_t *prefix2,\n    uint32_t len,\n    uint8_t *input)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: point_mul_g
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1702,1
    - Dst: Hacl_Impl_Ed25519_PointCompress_point_compress
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - s
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1704
      start: 1698
    functionDepth: 5
    functionLinenumber: 1698
    functionLinenumberEnd: 1704
    functionName: point_mul_g_compress
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Ed25519.c
    functionUses: 0
    functionsReached:
    - point_mul_g
    - Hacl_Impl_Ed25519_PointCompress_point_compress
    linkageType: ''
    returnType: void
    signature: void point_mul_g_compress(uint8_t *out, uint8_t *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Streaming_SHA2_hash_512
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1709,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - expanded
    - secret
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1715
      start: 1706
    functionDepth: 1
    functionLinenumber: 1706
    functionLinenumberEnd: 1715
    functionName: secret_expand
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Ed25519.c
    functionUses: 0
    functionsReached:
    - Hacl_Streaming_SHA2_hash_512
    linkageType: ''
    returnType: void
    signature: void secret_expand(uint8_t *expanded, uint8_t *secret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: secret_expand
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1731,1
    - Dst: point_mul_g_compress
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - public_key
    - private_key
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1734
      start: 1727
    functionDepth: 6
    functionLinenumber: 1727
    functionLinenumberEnd: 1734
    functionName: Hacl_Ed25519_secret_to_public
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Ed25519.c
    functionUses: 1
    functionsReached:
    - secret_expand
    - point_mul_g_compress
    linkageType: ''
    returnType: void
    signature: void Hacl_Ed25519_secret_to_public(uint8_t *public_key, uint8_t *private_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: secret_expand
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1751,1
    - Dst: point_mul_g_compress
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1752,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - expanded_keys
    - private_key
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1753
      start: 1745
    functionDepth: 6
    functionLinenumber: 1745
    functionLinenumberEnd: 1753
    functionName: Hacl_Ed25519_expand_keys
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Ed25519.c
    functionUses: 0
    functionsReached:
    - secret_expand
    - point_mul_g_compress
    linkageType: ''
    returnType: void
    signature: void Hacl_Ed25519_expand_keys(uint8_t *expanded_keys, uint8_t *private_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sha512_modq_pre
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1782,1
    - Dst: store_56
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1783,1
    - Dst: point_mul_g_compress
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1784,1
    - Dst: sha512_modq_pre_pre2
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1785,1
    - Dst: load_32_bytes
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1787,1
    - Dst: mul_modq
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1788,1
    - Dst: add_modq
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1789,1
    - Dst: store_56
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1790,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - signature
    - expanded_keys
    - msg_len
    - msg
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint32_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1791
      start: 1767
    functionDepth: 6
    functionLinenumber: 1767
    functionLinenumberEnd: 1791
    functionName: Hacl_Ed25519_sign_expanded
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Ed25519.c
    functionUses: 0
    functionsReached:
    - sha512_modq_pre
    - add_modq
    - sha512_modq_pre_pre2
    - point_mul_g_compress
    - store_56
    - mul_modq
    - load_32_bytes
    linkageType: ''
    returnType: void
    signature: "void Hacl_Ed25519_sign_expanded(\n    uint8_t *signature,\n    uint8_t
      *expanded_keys,\n    uint32_t msg_len,\n    uint8_t *msg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Ed25519_expand_keys
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1809,1
    - Dst: Hacl_Ed25519_sign_expanded
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - signature
    - private_key
    - msg_len
    - msg
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint32_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1811
      start: 1805
    functionDepth: 7
    functionLinenumber: 1805
    functionLinenumberEnd: 1811
    functionName: Hacl_Ed25519_sign
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Ed25519.c
    functionUses: 1
    functionsReached:
    - Hacl_Ed25519_expand_keys
    - Hacl_Ed25519_sign_expanded
    linkageType: ''
    returnType: void
    signature: void Hacl_Ed25519_sign(uint8_t *signature, uint8_t *private_key, uint32_t
      msg_len, uint8_t *msg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Impl_Ed25519_PointDecompress_point_decompress
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1826,1
    - Dst: Hacl_Impl_Ed25519_PointDecompress_point_decompress
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1830,1
    - Dst: load_32_bytes
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1836,1
    - Dst: gte_q
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1837,1
    - Dst: sha512_modq_pre_pre2
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1843,1
    - Dst: store_56
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1844,1
    - Dst: point_negate_mul_double_g_vartime
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1846,1
    - Dst: Hacl_Impl_Ed25519_PointEqual_point_equal
      Src: /src/nss/lib/freebl/verified/Hacl_Ed25519.c:1847,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - public_key
    - msg_len
    - msg
    - signature
    argTypes:
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1853
      start: 1822
    functionDepth: 6
    functionLinenumber: 1822
    functionLinenumberEnd: 1853
    functionName: Hacl_Ed25519_verify
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Ed25519.c
    functionUses: 1
    functionsReached:
    - sha512_modq_pre_pre2
    - Hacl_Impl_Ed25519_PointEqual_point_equal
    - Hacl_Impl_Ed25519_PointDecompress_point_decompress
    - point_negate_mul_double_g_vartime
    - gte_q
    - store_56
    - load_32_bytes
    linkageType: ''
    returnType: bool
    signature: bool Hacl_Ed25519_verify(uint8_t *public_key, uint32_t msg_len, uint8_t
      *msg, uint8_t *signature)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: libcrux_sha3_portable_keccak_zero_5a
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak_zero_5a(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - a
    - b
    - c
    - d
    - e
    argTypes:
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 69
    functionName: libcrux_sha3_portable_keccak__veor5q_u64
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_keccak__veor5q_u64(\n    uint64_t
      a, uint64_t b, uint64_t c, uint64_t d, uint64_t e)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak__veor5q_u64
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - a
    - b
    - c
    - d
    - e
    argTypes:
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: libcrux_sha3_portable_keccak_xor5_5a
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak__veor5q_u64
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_keccak_xor5_5a(\n    uint64_t
      a, uint64_t b, uint64_t c, uint64_t d, uint64_t e)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 92
    functionName: libcrux_sha3_portable_keccak_rotate_left_d6
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak_rotate_left_d6(uint64_t
      x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak_rotate_left_d6
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 99
    functionName: libcrux_sha3_portable_keccak__vrax1q_u64
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_rotate_left_d6
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak__vrax1q_u64(uint64_t a,
      uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak__vrax1q_u64
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 109
    functionName: libcrux_sha3_portable_keccak_rotate_left1_and_xor_5a
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak__vrax1q_u64
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak_rotate_left1_and_xor_5a(uint64_t
      a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - uint64_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: libcrux_sha3_portable_keccak__vbcaxq_u64
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak__vbcaxq_u64(uint64_t a,
      uint64_t b, uint64_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak__vbcaxq_u64
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - uint64_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 126
    functionName: libcrux_sha3_portable_keccak_and_not_xor_5a
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak__vbcaxq_u64
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_keccak_and_not_xor_5a(\n    uint64_t
      a, uint64_t b, uint64_t c)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - c
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 132
    functionName: libcrux_sha3_portable_keccak__veorq_n_u64
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak__veorq_n_u64(uint64_t
      a, uint64_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak__veorq_n_u64
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - c
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 142
    functionName: libcrux_sha3_portable_keccak_xor_constant_5a
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak__veorq_n_u64
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak_xor_constant_5a(uint64_t
      a, uint64_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 152
    functionName: libcrux_sha3_portable_keccak_xor_5a
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak_xor_5a(uint64_t a, uint64_t
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Eurydice_slice_subslice2
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - a
    - start
    - len
    - ret
    argTypes:
    - Eurydice_slice[]
    - size_t
    - size_t
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 159
    functionName: libcrux_sha3_portable_keccak_slice_1
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - Eurydice_slice_subslice2
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_keccak_slice_1(\n    Eurydice_slice
      a[1U], size_t start, size_t len, Eurydice_slice ret[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:171,1
    - Dst: libcrux_sha3_portable_keccak_slice_1
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:173,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - a
    - start
    - len
    - ret
    argTypes:
    - Eurydice_slice[]
    - size_t
    - size_t
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 175
    functionName: libcrux_sha3_portable_keccak_slice_n_5a
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - memcpy
    - libcrux_sha3_portable_keccak_slice_1
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_keccak_slice_n_5a(\n    Eurydice_slice
      a[1U], size_t start, size_t len, Eurydice_slice ret[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Eurydice_slice_split_at_mut
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - out
    - mid
    argTypes:
    - Eurydice_slice[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 189
    functionName: Eurydice_slice_uint8_t_1size_t__x2::libcrux_sha3_portable_keccak_split_at_mut_1
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - Eurydice_slice_split_at_mut
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE Eurydice_slice_uint8_t_1size_t__x2\nlibcrux_sha3_portable_keccak_split_at_mut_1(Eurydice_slice
      out[1U],\n                                            size_t mid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Eurydice_slice_uint8_t_1size_t__x2::libcrux_sha3_portable_keccak_split_at_mut_1
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - mid
    argTypes:
    - Eurydice_slice[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 200
    functionName: Eurydice_slice_uint8_t_1size_t__x2::libcrux_sha3_portable_keccak_split_at_mut_n_5a
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - Eurydice_slice_uint8_t_1size_t__x2::libcrux_sha3_portable_keccak_split_at_mut_1
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE Eurydice_slice_uint8_t_1size_t__x2\nlibcrux_sha3_portable_keccak_split_at_mut_n_5a(Eurydice_slice
      a[1U],\n                                               size_t mid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak_zero_5a
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:229,1
    - Dst: libcrux_sha3_portable_keccak_zero_5a
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:230,1
    - Dst: libcrux_sha3_portable_keccak_zero_5a
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:231,1
    - Dst: libcrux_sha3_portable_keccak_zero_5a
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:232,1
    - Dst: libcrux_sha3_portable_keccak_zero_5a
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:233,1
    - Dst: libcrux_sha3_portable_keccak_zero_5a
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:234,1
    - Dst: libcrux_sha3_portable_keccak_zero_5a
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:235,1
    - Dst: libcrux_sha3_portable_keccak_zero_5a
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:236,1
    - Dst: libcrux_sha3_portable_keccak_zero_5a
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:237,1
    - Dst: libcrux_sha3_portable_keccak_zero_5a
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:238,1
    - Dst: libcrux_sha3_portable_keccak_zero_5a
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:239,1
    - Dst: libcrux_sha3_portable_keccak_zero_5a
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:240,1
    - Dst: libcrux_sha3_portable_keccak_zero_5a
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:241,1
    - Dst: libcrux_sha3_portable_keccak_zero_5a
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:242,1
    - Dst: libcrux_sha3_portable_keccak_zero_5a
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:243,1
    - Dst: libcrux_sha3_portable_keccak_zero_5a
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:244,1
    - Dst: libcrux_sha3_portable_keccak_zero_5a
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:245,1
    - Dst: libcrux_sha3_portable_keccak_zero_5a
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:246,1
    - Dst: libcrux_sha3_portable_keccak_zero_5a
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:247,1
    - Dst: libcrux_sha3_portable_keccak_zero_5a
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:248,1
    - Dst: libcrux_sha3_portable_keccak_zero_5a
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:249,1
    - Dst: libcrux_sha3_portable_keccak_zero_5a
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:250,1
    - Dst: libcrux_sha3_portable_keccak_zero_5a
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:251,1
    - Dst: libcrux_sha3_portable_keccak_zero_5a
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:252,1
    - Dst: libcrux_sha3_portable_keccak_zero_5a
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 255
    functionName: libcrux_sha3_generic_keccak_KeccakState_48::libcrux_sha3_generic_keccak_new_1e_cf
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_zero_5a
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: 'KRML_MUSTINLINE libcrux_sha3_generic_keccak_KeccakState_48

      libcrux_sha3_generic_keccak_new_1e_cf(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Eurydice_slice_to_array2
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:270,1
    - Dst: Eurydice_slice_subslice2
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:272,1
    - Dst: core_result_unwrap_41_0e
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:275,1
    - Dst: core_num__u64_9__from_le_bytes
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - (*s)
    - blocks
    argTypes:
    - uint64_t[]
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 262
    functionDepth: 2
    functionLinenumber: 262
    functionLinenumberEnd: 281
    functionName: libcrux_sha3_portable_keccak_load_block_65
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - core_result_unwrap_41_0e
    - core_num__u64_9__from_le_bytes
    - Eurydice_slice_to_array2
    - Eurydice_slice_subslice2
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_keccak_load_block_65(\n    uint64_t
      (*s)[5U], Eurydice_slice blocks[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Eurydice_array_to_slice
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:293,1
    - Dst: libcrux_sha3_portable_keccak_load_block_65
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - (*s)
    - blocks
    argTypes:
    - uint64_t[]
    - uint8_t[][]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 288
    functionDepth: 3
    functionLinenumber: 288
    functionLinenumberEnd: 296
    functionName: libcrux_sha3_portable_keccak_load_block_full_d4
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_load_block_65
    - Eurydice_array_to_slice
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_keccak_load_block_full_d4(\n
      \   uint64_t (*s)[5U], uint8_t blocks[1U][200U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:314,1
    - Dst: libcrux_sha3_portable_keccak_load_block_full_d4
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - (*a)
    - b
    argTypes:
    - uint64_t[]
    - uint8_t[][]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 307
    functionDepth: 4
    functionLinenumber: 307
    functionLinenumberEnd: 316
    functionName: libcrux_sha3_portable_keccak_load_block_full_5a_05
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - memcpy
    - libcrux_sha3_portable_keccak_load_block_full_d4
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_keccak_load_block_full_5a_05(\n
      \   uint64_t (*a)[5U], uint8_t b[1U][200U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 328
    functionName: libcrux_sha3_portable_keccak_rotate_left_d60
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak_rotate_left_d60(uint64_t
      x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak_rotate_left_d60
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 341
    functionName: libcrux_sha3_portable_keccak__vxarq_u64_74
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_rotate_left_d60
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak__vxarq_u64_74(uint64_t
      a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak__vxarq_u64_74
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 353
    functionDepth: 2
    functionLinenumber: 353
    functionLinenumberEnd: 357
    functionName: libcrux_sha3_portable_keccak_xor_and_rotate_5a_03
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak__vxarq_u64_74
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak_xor_and_rotate_5a_03(uint64_t
      a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 369
    functionName: libcrux_sha3_portable_keccak_rotate_left_d61
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak_rotate_left_d61(uint64_t
      x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak_rotate_left_d61
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 382
    functionName: libcrux_sha3_portable_keccak__vxarq_u64_740
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_rotate_left_d61
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak__vxarq_u64_740(uint64_t
      a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak__vxarq_u64_740
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 394
    functionDepth: 2
    functionLinenumber: 394
    functionLinenumberEnd: 398
    functionName: libcrux_sha3_portable_keccak_xor_and_rotate_5a_030
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak__vxarq_u64_740
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak_xor_and_rotate_5a_030(uint64_t
      a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 410
    functionName: libcrux_sha3_portable_keccak_rotate_left_d62
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak_rotate_left_d62(uint64_t
      x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak_rotate_left_d62
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 423
    functionName: libcrux_sha3_portable_keccak__vxarq_u64_741
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_rotate_left_d62
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak__vxarq_u64_741(uint64_t
      a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak__vxarq_u64_741
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 435
    functionDepth: 2
    functionLinenumber: 435
    functionLinenumberEnd: 439
    functionName: libcrux_sha3_portable_keccak_xor_and_rotate_5a_031
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak__vxarq_u64_741
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak_xor_and_rotate_5a_031(uint64_t
      a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 451
    functionName: libcrux_sha3_portable_keccak_rotate_left_d63
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak_rotate_left_d63(uint64_t
      x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak_rotate_left_d63
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 459
    functionDepth: 1
    functionLinenumber: 459
    functionLinenumberEnd: 464
    functionName: libcrux_sha3_portable_keccak__vxarq_u64_742
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_rotate_left_d63
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak__vxarq_u64_742(uint64_t
      a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak__vxarq_u64_742
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 476
    functionDepth: 2
    functionLinenumber: 476
    functionLinenumberEnd: 480
    functionName: libcrux_sha3_portable_keccak_xor_and_rotate_5a_032
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak__vxarq_u64_742
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak_xor_and_rotate_5a_032(uint64_t
      a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak_rotate_left_d6
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 493
    functionName: libcrux_sha3_portable_keccak__vxarq_u64_743
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_rotate_left_d6
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak__vxarq_u64_743(uint64_t
      a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak__vxarq_u64_743
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 505
    functionDepth: 2
    functionLinenumber: 505
    functionLinenumberEnd: 509
    functionName: libcrux_sha3_portable_keccak_xor_and_rotate_5a_033
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak__vxarq_u64_743
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak_xor_and_rotate_5a_033(uint64_t
      a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 521
    functionName: libcrux_sha3_portable_keccak_rotate_left_d64
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak_rotate_left_d64(uint64_t
      x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak_rotate_left_d64
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 529
    functionDepth: 1
    functionLinenumber: 529
    functionLinenumberEnd: 534
    functionName: libcrux_sha3_portable_keccak__vxarq_u64_744
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_rotate_left_d64
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak__vxarq_u64_744(uint64_t
      a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak__vxarq_u64_744
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 546
    functionDepth: 2
    functionLinenumber: 546
    functionLinenumberEnd: 550
    functionName: libcrux_sha3_portable_keccak_xor_and_rotate_5a_034
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak__vxarq_u64_744
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak_xor_and_rotate_5a_034(uint64_t
      a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 562
    functionName: libcrux_sha3_portable_keccak_rotate_left_d65
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak_rotate_left_d65(uint64_t
      x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak_rotate_left_d65
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 575
    functionName: libcrux_sha3_portable_keccak__vxarq_u64_745
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_rotate_left_d65
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak__vxarq_u64_745(uint64_t
      a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak__vxarq_u64_745
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 587
    functionDepth: 2
    functionLinenumber: 587
    functionLinenumberEnd: 591
    functionName: libcrux_sha3_portable_keccak_xor_and_rotate_5a_035
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak__vxarq_u64_745
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak_xor_and_rotate_5a_035(uint64_t
      a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 599
    functionDepth: 0
    functionLinenumber: 599
    functionLinenumberEnd: 603
    functionName: libcrux_sha3_portable_keccak_rotate_left_d66
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak_rotate_left_d66(uint64_t
      x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak_rotate_left_d66
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 611
    functionDepth: 1
    functionLinenumber: 611
    functionLinenumberEnd: 616
    functionName: libcrux_sha3_portable_keccak__vxarq_u64_746
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_rotate_left_d66
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak__vxarq_u64_746(uint64_t
      a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak__vxarq_u64_746
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 628
    functionDepth: 2
    functionLinenumber: 628
    functionLinenumberEnd: 632
    functionName: libcrux_sha3_portable_keccak_xor_and_rotate_5a_036
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak__vxarq_u64_746
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak_xor_and_rotate_5a_036(uint64_t
      a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 640
    functionDepth: 0
    functionLinenumber: 640
    functionLinenumberEnd: 644
    functionName: libcrux_sha3_portable_keccak_rotate_left_d67
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak_rotate_left_d67(uint64_t
      x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak_rotate_left_d67
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:656,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 652
    functionDepth: 1
    functionLinenumber: 652
    functionLinenumberEnd: 657
    functionName: libcrux_sha3_portable_keccak__vxarq_u64_747
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_rotate_left_d67
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak__vxarq_u64_747(uint64_t
      a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak__vxarq_u64_747
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:672,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 669
    functionDepth: 2
    functionLinenumber: 669
    functionLinenumberEnd: 673
    functionName: libcrux_sha3_portable_keccak_xor_and_rotate_5a_037
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak__vxarq_u64_747
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak_xor_and_rotate_5a_037(uint64_t
      a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 681
    functionDepth: 0
    functionLinenumber: 681
    functionLinenumberEnd: 685
    functionName: libcrux_sha3_portable_keccak_rotate_left_d68
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak_rotate_left_d68(uint64_t
      x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak_rotate_left_d68
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 693
    functionDepth: 1
    functionLinenumber: 693
    functionLinenumberEnd: 698
    functionName: libcrux_sha3_portable_keccak__vxarq_u64_748
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_rotate_left_d68
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak__vxarq_u64_748(uint64_t
      a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak__vxarq_u64_748
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 710
    functionDepth: 2
    functionLinenumber: 710
    functionLinenumberEnd: 714
    functionName: libcrux_sha3_portable_keccak_xor_and_rotate_5a_038
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak__vxarq_u64_748
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak_xor_and_rotate_5a_038(uint64_t
      a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 722
    functionDepth: 0
    functionLinenumber: 722
    functionLinenumberEnd: 726
    functionName: libcrux_sha3_portable_keccak_rotate_left_d69
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak_rotate_left_d69(uint64_t
      x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak_rotate_left_d69
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:738,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 734
    functionDepth: 1
    functionLinenumber: 734
    functionLinenumberEnd: 739
    functionName: libcrux_sha3_portable_keccak__vxarq_u64_749
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_rotate_left_d69
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak__vxarq_u64_749(uint64_t
      a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak__vxarq_u64_749
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 751
    functionDepth: 2
    functionLinenumber: 751
    functionLinenumberEnd: 755
    functionName: libcrux_sha3_portable_keccak_xor_and_rotate_5a_039
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak__vxarq_u64_749
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak_xor_and_rotate_5a_039(uint64_t
      a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 763
    functionDepth: 0
    functionLinenumber: 763
    functionLinenumberEnd: 767
    functionName: libcrux_sha3_portable_keccak_rotate_left_d610
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak_rotate_left_d610(uint64_t
      x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak_rotate_left_d610
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:779,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 775
    functionDepth: 1
    functionLinenumber: 775
    functionLinenumberEnd: 780
    functionName: libcrux_sha3_portable_keccak__vxarq_u64_7410
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_rotate_left_d610
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak__vxarq_u64_7410(uint64_t
      a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak__vxarq_u64_7410
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:795,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 792
    functionDepth: 2
    functionLinenumber: 792
    functionLinenumberEnd: 796
    functionName: libcrux_sha3_portable_keccak_xor_and_rotate_5a_0310
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak__vxarq_u64_7410
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak_xor_and_rotate_5a_0310(uint64_t
      a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 804
    functionDepth: 0
    functionLinenumber: 804
    functionLinenumberEnd: 808
    functionName: libcrux_sha3_portable_keccak_rotate_left_d611
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak_rotate_left_d611(uint64_t
      x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak_rotate_left_d611
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:820,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 816
    functionDepth: 1
    functionLinenumber: 816
    functionLinenumberEnd: 821
    functionName: libcrux_sha3_portable_keccak__vxarq_u64_7411
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_rotate_left_d611
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak__vxarq_u64_7411(uint64_t
      a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak__vxarq_u64_7411
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:836,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 833
    functionDepth: 2
    functionLinenumber: 833
    functionLinenumberEnd: 837
    functionName: libcrux_sha3_portable_keccak_xor_and_rotate_5a_0311
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak__vxarq_u64_7411
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak_xor_and_rotate_5a_0311(uint64_t
      a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 845
    functionDepth: 0
    functionLinenumber: 845
    functionLinenumberEnd: 849
    functionName: libcrux_sha3_portable_keccak_rotate_left_d612
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak_rotate_left_d612(uint64_t
      x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak_rotate_left_d612
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:861,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 857
    functionDepth: 1
    functionLinenumber: 857
    functionLinenumberEnd: 862
    functionName: libcrux_sha3_portable_keccak__vxarq_u64_7412
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_rotate_left_d612
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak__vxarq_u64_7412(uint64_t
      a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak__vxarq_u64_7412
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:877,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 874
    functionDepth: 2
    functionLinenumber: 874
    functionLinenumberEnd: 878
    functionName: libcrux_sha3_portable_keccak_xor_and_rotate_5a_0312
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak__vxarq_u64_7412
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak_xor_and_rotate_5a_0312(uint64_t
      a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 886
    functionDepth: 0
    functionLinenumber: 886
    functionLinenumberEnd: 890
    functionName: libcrux_sha3_portable_keccak_rotate_left_d613
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak_rotate_left_d613(uint64_t
      x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak_rotate_left_d613
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:902,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 898
    functionDepth: 1
    functionLinenumber: 898
    functionLinenumberEnd: 903
    functionName: libcrux_sha3_portable_keccak__vxarq_u64_7413
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_rotate_left_d613
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak__vxarq_u64_7413(uint64_t
      a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak__vxarq_u64_7413
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:918,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 915
    functionDepth: 2
    functionLinenumber: 915
    functionLinenumberEnd: 919
    functionName: libcrux_sha3_portable_keccak_xor_and_rotate_5a_0313
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak__vxarq_u64_7413
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak_xor_and_rotate_5a_0313(uint64_t
      a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 927
    functionDepth: 0
    functionLinenumber: 927
    functionLinenumberEnd: 931
    functionName: libcrux_sha3_portable_keccak_rotate_left_d614
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak_rotate_left_d614(uint64_t
      x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak_rotate_left_d614
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:943,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 939
    functionDepth: 1
    functionLinenumber: 939
    functionLinenumberEnd: 944
    functionName: libcrux_sha3_portable_keccak__vxarq_u64_7414
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_rotate_left_d614
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak__vxarq_u64_7414(uint64_t
      a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak__vxarq_u64_7414
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:959,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 956
    functionDepth: 2
    functionLinenumber: 956
    functionLinenumberEnd: 960
    functionName: libcrux_sha3_portable_keccak_xor_and_rotate_5a_0314
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak__vxarq_u64_7414
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak_xor_and_rotate_5a_0314(uint64_t
      a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 968
    functionDepth: 0
    functionLinenumber: 968
    functionLinenumberEnd: 972
    functionName: libcrux_sha3_portable_keccak_rotate_left_d615
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak_rotate_left_d615(uint64_t
      x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak_rotate_left_d615
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:984,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 985
      start: 980
    functionDepth: 1
    functionLinenumber: 980
    functionLinenumberEnd: 985
    functionName: libcrux_sha3_portable_keccak__vxarq_u64_7415
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_rotate_left_d615
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak__vxarq_u64_7415(uint64_t
      a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak__vxarq_u64_7415
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1000,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 997
    functionDepth: 2
    functionLinenumber: 997
    functionLinenumberEnd: 1001
    functionName: libcrux_sha3_portable_keccak_xor_and_rotate_5a_0315
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak__vxarq_u64_7415
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak_xor_and_rotate_5a_0315(uint64_t
      a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 1009
    functionDepth: 0
    functionLinenumber: 1009
    functionLinenumberEnd: 1013
    functionName: libcrux_sha3_portable_keccak_rotate_left_d616
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak_rotate_left_d616(uint64_t
      x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak_rotate_left_d616
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1025,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 1021
    functionDepth: 1
    functionLinenumber: 1021
    functionLinenumberEnd: 1026
    functionName: libcrux_sha3_portable_keccak__vxarq_u64_7416
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_rotate_left_d616
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak__vxarq_u64_7416(uint64_t
      a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak__vxarq_u64_7416
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1041,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1038
    functionDepth: 2
    functionLinenumber: 1038
    functionLinenumberEnd: 1042
    functionName: libcrux_sha3_portable_keccak_xor_and_rotate_5a_0316
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak__vxarq_u64_7416
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak_xor_and_rotate_5a_0316(uint64_t
      a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1050
    functionDepth: 0
    functionLinenumber: 1050
    functionLinenumberEnd: 1054
    functionName: libcrux_sha3_portable_keccak_rotate_left_d617
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak_rotate_left_d617(uint64_t
      x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak_rotate_left_d617
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1066,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1067
      start: 1062
    functionDepth: 1
    functionLinenumber: 1062
    functionLinenumberEnd: 1067
    functionName: libcrux_sha3_portable_keccak__vxarq_u64_7417
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_rotate_left_d617
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak__vxarq_u64_7417(uint64_t
      a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak__vxarq_u64_7417
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1082,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1083
      start: 1079
    functionDepth: 2
    functionLinenumber: 1079
    functionLinenumberEnd: 1083
    functionName: libcrux_sha3_portable_keccak_xor_and_rotate_5a_0317
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak__vxarq_u64_7417
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak_xor_and_rotate_5a_0317(uint64_t
      a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1091
    functionDepth: 0
    functionLinenumber: 1091
    functionLinenumberEnd: 1095
    functionName: libcrux_sha3_portable_keccak_rotate_left_d618
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak_rotate_left_d618(uint64_t
      x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak_rotate_left_d618
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 1103
    functionDepth: 1
    functionLinenumber: 1103
    functionLinenumberEnd: 1108
    functionName: libcrux_sha3_portable_keccak__vxarq_u64_7418
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_rotate_left_d618
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak__vxarq_u64_7418(uint64_t
      a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak__vxarq_u64_7418
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1124
      start: 1120
    functionDepth: 2
    functionLinenumber: 1120
    functionLinenumberEnd: 1124
    functionName: libcrux_sha3_portable_keccak_xor_and_rotate_5a_0318
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak__vxarq_u64_7418
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak_xor_and_rotate_5a_0318(uint64_t
      a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1136
      start: 1132
    functionDepth: 0
    functionLinenumber: 1132
    functionLinenumberEnd: 1136
    functionName: libcrux_sha3_portable_keccak_rotate_left_d619
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak_rotate_left_d619(uint64_t
      x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak_rotate_left_d619
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1149
      start: 1144
    functionDepth: 1
    functionLinenumber: 1144
    functionLinenumberEnd: 1149
    functionName: libcrux_sha3_portable_keccak__vxarq_u64_7419
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_rotate_left_d619
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak__vxarq_u64_7419(uint64_t
      a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak__vxarq_u64_7419
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1165
      start: 1161
    functionDepth: 2
    functionLinenumber: 1161
    functionLinenumberEnd: 1165
    functionName: libcrux_sha3_portable_keccak_xor_and_rotate_5a_0319
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak__vxarq_u64_7419
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak_xor_and_rotate_5a_0319(uint64_t
      a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1173
    functionDepth: 0
    functionLinenumber: 1173
    functionLinenumberEnd: 1177
    functionName: libcrux_sha3_portable_keccak_rotate_left_d620
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak_rotate_left_d620(uint64_t
      x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak_rotate_left_d620
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1185
    functionDepth: 1
    functionLinenumber: 1185
    functionLinenumberEnd: 1190
    functionName: libcrux_sha3_portable_keccak__vxarq_u64_7420
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_rotate_left_d620
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak__vxarq_u64_7420(uint64_t
      a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak__vxarq_u64_7420
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1206
      start: 1202
    functionDepth: 2
    functionLinenumber: 1202
    functionLinenumberEnd: 1206
    functionName: libcrux_sha3_portable_keccak_xor_and_rotate_5a_0320
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak__vxarq_u64_7420
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak_xor_and_rotate_5a_0320(uint64_t
      a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1218
      start: 1214
    functionDepth: 0
    functionLinenumber: 1214
    functionLinenumberEnd: 1218
    functionName: libcrux_sha3_portable_keccak_rotate_left_d621
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak_rotate_left_d621(uint64_t
      x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak_rotate_left_d621
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1231
      start: 1226
    functionDepth: 1
    functionLinenumber: 1226
    functionLinenumberEnd: 1231
    functionName: libcrux_sha3_portable_keccak__vxarq_u64_7421
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_rotate_left_d621
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak__vxarq_u64_7421(uint64_t
      a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak__vxarq_u64_7421
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1247
      start: 1243
    functionDepth: 2
    functionLinenumber: 1243
    functionLinenumberEnd: 1247
    functionName: libcrux_sha3_portable_keccak_xor_and_rotate_5a_0321
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak__vxarq_u64_7421
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak_xor_and_rotate_5a_0321(uint64_t
      a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1259
      start: 1255
    functionDepth: 0
    functionLinenumber: 1255
    functionLinenumberEnd: 1259
    functionName: libcrux_sha3_portable_keccak_rotate_left_d622
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak_rotate_left_d622(uint64_t
      x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak_rotate_left_d622
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1272
      start: 1267
    functionDepth: 1
    functionLinenumber: 1267
    functionLinenumberEnd: 1272
    functionName: libcrux_sha3_portable_keccak__vxarq_u64_7422
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_rotate_left_d622
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak__vxarq_u64_7422(uint64_t
      a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak__vxarq_u64_7422
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1288
      start: 1284
    functionDepth: 2
    functionLinenumber: 1284
    functionLinenumberEnd: 1288
    functionName: libcrux_sha3_portable_keccak_xor_and_rotate_5a_0322
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak__vxarq_u64_7422
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_sha3_portable_keccak_xor_and_rotate_5a_0322(uint64_t
      a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak_xor5_5a
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1301,1
    - Dst: libcrux_sha3_portable_keccak_xor5_5a
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1304,1
    - Dst: libcrux_sha3_portable_keccak_xor5_5a
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1307,1
    - Dst: libcrux_sha3_portable_keccak_xor5_5a
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1310,1
    - Dst: libcrux_sha3_portable_keccak_xor5_5a
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1313,1
    - Dst: libcrux_sha3_portable_keccak_rotate_left1_and_xor_5a
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1317,1
    - Dst: libcrux_sha3_portable_keccak_rotate_left1_and_xor_5a
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1320,1
    - Dst: libcrux_sha3_portable_keccak_rotate_left1_and_xor_5a
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1323,1
    - Dst: libcrux_sha3_portable_keccak_rotate_left1_and_xor_5a
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1326,1
    - Dst: libcrux_sha3_portable_keccak_rotate_left1_and_xor_5a
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1330,1
    - Dst: libcrux_sha3_portable_keccak_xor_5a
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1333,1
    - Dst: libcrux_sha3_portable_keccak_xor_and_rotate_5a_03
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1335,1
    - Dst: libcrux_sha3_portable_keccak_xor_and_rotate_5a_030
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1337,1
    - Dst: libcrux_sha3_portable_keccak_xor_and_rotate_5a_031
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1339,1
    - Dst: libcrux_sha3_portable_keccak_xor_and_rotate_5a_032
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1341,1
    - Dst: libcrux_sha3_portable_keccak_xor_and_rotate_5a_033
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1343,1
    - Dst: libcrux_sha3_portable_keccak_xor_and_rotate_5a_034
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1345,1
    - Dst: libcrux_sha3_portable_keccak_xor_and_rotate_5a_035
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1347,1
    - Dst: libcrux_sha3_portable_keccak_xor_and_rotate_5a_036
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1349,1
    - Dst: libcrux_sha3_portable_keccak_xor_and_rotate_5a_037
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1351,1
    - Dst: libcrux_sha3_portable_keccak_xor_and_rotate_5a_038
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1353,1
    - Dst: libcrux_sha3_portable_keccak_xor_and_rotate_5a_039
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1355,1
    - Dst: libcrux_sha3_portable_keccak_xor_and_rotate_5a_0310
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1357,1
    - Dst: libcrux_sha3_portable_keccak_xor_and_rotate_5a_0311
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1359,1
    - Dst: libcrux_sha3_portable_keccak_xor_and_rotate_5a_0312
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1361,1
    - Dst: libcrux_sha3_portable_keccak_xor_and_rotate_5a_0313
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1363,1
    - Dst: libcrux_sha3_portable_keccak_xor_and_rotate_5a_0314
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1365,1
    - Dst: libcrux_sha3_portable_keccak_xor_and_rotate_5a_0315
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1367,1
    - Dst: libcrux_sha3_portable_keccak_xor_and_rotate_5a_0316
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1369,1
    - Dst: libcrux_sha3_portable_keccak_xor_and_rotate_5a_0317
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1371,1
    - Dst: libcrux_sha3_portable_keccak_xor_and_rotate_5a_0318
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1373,1
    - Dst: libcrux_sha3_portable_keccak_xor_and_rotate_5a_0319
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1375,1
    - Dst: libcrux_sha3_portable_keccak_xor_and_rotate_5a_0320
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1377,1
    - Dst: libcrux_sha3_portable_keccak_xor_and_rotate_5a_0321
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1379,1
    - Dst: libcrux_sha3_portable_keccak_xor_and_rotate_5a_0322
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 1
    argNames:
    - s
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakState_48*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1383
      start: 1296
    functionDepth: 3
    functionLinenumber: 1296
    functionLinenumberEnd: 1383
    functionName: libcrux_sha3_generic_keccak_theta_rho_a7
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_xor_and_rotate_5a_0310
    - libcrux_sha3_portable_keccak_xor_and_rotate_5a_030
    - libcrux_sha3_portable_keccak_xor_and_rotate_5a_035
    - libcrux_sha3_portable_keccak_xor_and_rotate_5a_037
    - libcrux_sha3_portable_keccak_xor_5a
    - libcrux_sha3_portable_keccak_xor_and_rotate_5a_0316
    - libcrux_sha3_portable_keccak_xor_and_rotate_5a_0319
    - libcrux_sha3_portable_keccak_xor_and_rotate_5a_0317
    - libcrux_sha3_portable_keccak_xor_and_rotate_5a_032
    - libcrux_sha3_portable_keccak_xor_and_rotate_5a_0311
    - libcrux_sha3_portable_keccak_xor_and_rotate_5a_0313
    - libcrux_sha3_portable_keccak_xor_and_rotate_5a_0321
    - libcrux_sha3_portable_keccak_xor_and_rotate_5a_0320
    - libcrux_sha3_portable_keccak_xor_and_rotate_5a_033
    - libcrux_sha3_portable_keccak_xor_and_rotate_5a_038
    - libcrux_sha3_portable_keccak_xor_and_rotate_5a_03
    - libcrux_sha3_portable_keccak_xor_and_rotate_5a_031
    - libcrux_sha3_portable_keccak_rotate_left1_and_xor_5a
    - libcrux_sha3_portable_keccak_xor_and_rotate_5a_039
    - libcrux_sha3_portable_keccak_xor_and_rotate_5a_0314
    - libcrux_sha3_portable_keccak_xor_and_rotate_5a_0322
    - libcrux_sha3_portable_keccak_xor_and_rotate_5a_034
    - libcrux_sha3_portable_keccak_xor_and_rotate_5a_0318
    - libcrux_sha3_portable_keccak_xor_and_rotate_5a_0312
    - libcrux_sha3_portable_keccak_xor_and_rotate_5a_036
    - libcrux_sha3_portable_keccak_xor_and_rotate_5a_0315
    - libcrux_sha3_portable_keccak_xor5_5a
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_generic_keccak_theta_rho_a7(\n    libcrux_sha3_generic_keccak_KeccakState_48
      *s)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 1
    argNames:
    - s
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakState_48*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1421
      start: 1391
    functionDepth: 1
    functionLinenumber: 1391
    functionLinenumberEnd: 1421
    functionName: libcrux_sha3_generic_keccak_pi_d5
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_generic_keccak_pi_d5(\n    libcrux_sha3_generic_keccak_KeccakState_48
      *s)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1434,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1435,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1436,1
    - Dst: libcrux_sha3_portable_keccak_and_not_xor_5a
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakState_48*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1441
      start: 1429
    functionDepth: 2
    functionLinenumber: 1429
    functionLinenumberEnd: 1441
    functionName: libcrux_sha3_generic_keccak_chi_3e
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_and_not_xor_5a
    - memcpy
    - KRML_MAYBE_FOR5
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_generic_keccak_chi_3e(\n    libcrux_sha3_generic_keccak_KeccakState_48
      *s)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak_xor_constant_5a
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - i
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakState_48*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1455
      start: 1449
    functionDepth: 2
    functionLinenumber: 1449
    functionLinenumberEnd: 1455
    functionName: libcrux_sha3_generic_keccak_iota_00
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_xor_constant_5a
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_generic_keccak_iota_00(\n    libcrux_sha3_generic_keccak_KeccakState_48
      *s, size_t i)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_generic_keccak_theta_rho_a7
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1469,1
    - Dst: libcrux_sha3_generic_keccak_pi_d5
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1470,1
    - Dst: libcrux_sha3_generic_keccak_chi_3e
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1471,1
    - Dst: libcrux_sha3_generic_keccak_iota_00
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1472,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakState_48*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1474
      start: 1463
    functionDepth: 4
    functionLinenumber: 1463
    functionLinenumberEnd: 1474
    functionName: libcrux_sha3_generic_keccak_keccakf1600_b8
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_generic_keccak_pi_d5
    - libcrux_sha3_generic_keccak_theta_rho_a7
    - libcrux_sha3_generic_keccak_chi_3e
    - libcrux_sha3_generic_keccak_iota_00
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_generic_keccak_keccakf1600_b8(\n    libcrux_sha3_generic_keccak_KeccakState_48
      *s)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Eurydice_slice_len
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1488,1
    - Dst: Eurydice_array_to_subslice2
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1494,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1504,1
    - Dst: libcrux_sha3_portable_keccak_load_block_full_5a_05
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1505,1
    - Dst: libcrux_sha3_generic_keccak_keccakf1600_b8
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1506,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - s
    - last
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakState_48*
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1507
      start: 1484
    functionDepth: 5
    functionLinenumber: 1484
    functionLinenumberEnd: 1507
    functionName: libcrux_sha3_generic_keccak_absorb_final_40
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - memcpy
    - Eurydice_array_to_subslice2
    - libcrux_sha3_portable_keccak_load_block_full_5a_05
    - Eurydice_slice_len
    - libcrux_sha3_generic_keccak_keccakf1600_b8
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_generic_keccak_absorb_final_40(\n    libcrux_sha3_generic_keccak_KeccakState_48
      *s, Eurydice_slice last[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Eurydice_slice_subslice2
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1520,1
    - Dst: core_num__u64_9__to_le_bytes
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1523,1
    - Dst: Eurydice_slice_copy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1524,1
    - Dst: Eurydice_array_to_slice
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1525,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - (*s)
    - out
    argTypes:
    - uint64_t[]
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1527
      start: 1514
    functionDepth: 2
    functionLinenumber: 1514
    functionLinenumberEnd: 1527
    functionName: libcrux_sha3_portable_keccak_store_block_9b
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - Eurydice_array_to_slice
    - Eurydice_slice_copy
    - Eurydice_slice_subslice2
    - core_num__u64_9__to_le_bytes
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_keccak_store_block_9b(\n    uint64_t
      (*s)[5U], Eurydice_slice out[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak_store_block_9b
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - (*a)
    - b
    argTypes:
    - uint64_t[]
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1543
      start: 1538
    functionDepth: 3
    functionLinenumber: 1538
    functionLinenumberEnd: 1543
    functionName: libcrux_sha3_portable_keccak_store_block_5a_49
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_store_block_9b
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_keccak_store_block_5a_49(\n
      \   uint64_t (*a)[5U], Eurydice_slice b[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_generic_keccak_keccakf1600_b8
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1556,1
    - Dst: libcrux_sha3_portable_keccak_store_block_5a_49
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - out
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakState_48*
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1558
      start: 1552
    functionDepth: 5
    functionLinenumber: 1552
    functionLinenumberEnd: 1558
    functionName: libcrux_sha3_generic_keccak_squeeze_next_block_c2
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_store_block_5a_49
    - libcrux_sha3_generic_keccak_keccakf1600_b8
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_generic_keccak_squeeze_next_block_c2(\n
      \   libcrux_sha3_generic_keccak_KeccakState_48 *s, Eurydice_slice out[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak_store_block_5a_49
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - out
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakState_48*
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1572
      start: 1567
    functionDepth: 4
    functionLinenumber: 1567
    functionLinenumberEnd: 1572
    functionName: libcrux_sha3_generic_keccak_squeeze_first_block_7b
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_store_block_5a_49
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_generic_keccak_squeeze_first_block_7b(\n
      \   libcrux_sha3_generic_keccak_KeccakState_48 *s, Eurydice_slice out[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Eurydice_slice_to_array2
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1587,1
    - Dst: Eurydice_slice_subslice2
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1589,1
    - Dst: core_result_unwrap_41_0e
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1592,1
    - Dst: core_num__u64_9__from_le_bytes
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1596,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - (*s)
    - blocks
    argTypes:
    - uint64_t[]
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1598
      start: 1579
    functionDepth: 2
    functionLinenumber: 1579
    functionLinenumberEnd: 1598
    functionName: libcrux_sha3_portable_keccak_load_block_650
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - core_result_unwrap_41_0e
    - core_num__u64_9__from_le_bytes
    - Eurydice_slice_to_array2
    - Eurydice_slice_subslice2
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_keccak_load_block_650(\n    uint64_t
      (*s)[5U], Eurydice_slice blocks[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Eurydice_array_to_slice
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1610,1
    - Dst: libcrux_sha3_portable_keccak_load_block_650
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - (*s)
    - blocks
    argTypes:
    - uint64_t[]
    - uint8_t[][]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1613
      start: 1605
    functionDepth: 3
    functionLinenumber: 1605
    functionLinenumberEnd: 1613
    functionName: libcrux_sha3_portable_keccak_load_block_full_d40
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_load_block_650
    - Eurydice_array_to_slice
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_keccak_load_block_full_d40(\n
      \   uint64_t (*s)[5U], uint8_t blocks[1U][200U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1631,1
    - Dst: libcrux_sha3_portable_keccak_load_block_full_d40
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - (*a)
    - b
    argTypes:
    - uint64_t[]
    - uint8_t[][]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1633
      start: 1624
    functionDepth: 4
    functionLinenumber: 1624
    functionLinenumberEnd: 1633
    functionName: libcrux_sha3_portable_keccak_load_block_full_5a_050
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - memcpy
    - libcrux_sha3_portable_keccak_load_block_full_d40
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_keccak_load_block_full_5a_050(\n
      \   uint64_t (*a)[5U], uint8_t b[1U][200U])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Eurydice_slice_len
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1647,1
    - Dst: Eurydice_array_to_subslice2
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1653,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1663,1
    - Dst: libcrux_sha3_portable_keccak_load_block_full_5a_050
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1664,1
    - Dst: libcrux_sha3_generic_keccak_keccakf1600_b8
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1665,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - s
    - last
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakState_48*
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1666
      start: 1643
    functionDepth: 5
    functionLinenumber: 1643
    functionLinenumberEnd: 1666
    functionName: libcrux_sha3_generic_keccak_absorb_final_400
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_load_block_full_5a_050
    - memcpy
    - Eurydice_array_to_subslice2
    - Eurydice_slice_len
    - libcrux_sha3_generic_keccak_keccakf1600_b8
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_generic_keccak_absorb_final_400(\n    libcrux_sha3_generic_keccak_KeccakState_48
      *s, Eurydice_slice last[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Eurydice_slice_subslice2
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1679,1
    - Dst: core_num__u64_9__to_le_bytes
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1682,1
    - Dst: Eurydice_slice_copy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1683,1
    - Dst: Eurydice_array_to_slice
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1684,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - (*s)
    - out
    argTypes:
    - uint64_t[]
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1686
      start: 1673
    functionDepth: 2
    functionLinenumber: 1673
    functionLinenumberEnd: 1686
    functionName: libcrux_sha3_portable_keccak_store_block_9b0
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - Eurydice_array_to_slice
    - Eurydice_slice_copy
    - Eurydice_slice_subslice2
    - core_num__u64_9__to_le_bytes
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_keccak_store_block_9b0(\n    uint64_t
      (*s)[5U], Eurydice_slice out[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak_store_block_9b0
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - (*a)
    - b
    argTypes:
    - uint64_t[]
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1702
      start: 1697
    functionDepth: 3
    functionLinenumber: 1697
    functionLinenumberEnd: 1702
    functionName: libcrux_sha3_portable_keccak_store_block_5a_490
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_store_block_9b0
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_keccak_store_block_5a_490(\n
      \   uint64_t (*a)[5U], Eurydice_slice b[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak_store_block_5a_490
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1715,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - out
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakState_48*
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1716
      start: 1711
    functionDepth: 4
    functionLinenumber: 1711
    functionLinenumberEnd: 1716
    functionName: libcrux_sha3_generic_keccak_squeeze_first_block_7b0
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_store_block_5a_490
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_generic_keccak_squeeze_first_block_7b0(\n
      \   libcrux_sha3_generic_keccak_KeccakState_48 *s, Eurydice_slice out[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_generic_keccak_keccakf1600_b8
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1729,1
    - Dst: libcrux_sha3_portable_keccak_store_block_5a_490
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - out
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakState_48*
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1731
      start: 1725
    functionDepth: 5
    functionLinenumber: 1725
    functionLinenumberEnd: 1731
    functionName: libcrux_sha3_generic_keccak_squeeze_next_block_c20
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_store_block_5a_490
    - libcrux_sha3_generic_keccak_keccakf1600_b8
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_generic_keccak_squeeze_next_block_c20(\n
      \   libcrux_sha3_generic_keccak_KeccakState_48 *s, Eurydice_slice out[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1749,1
    - Dst: libcrux_sha3_portable_keccak_load_block_650
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1750,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - (*a)
    - b
    argTypes:
    - uint64_t[]
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1751
      start: 1742
    functionDepth: 3
    functionLinenumber: 1742
    functionLinenumberEnd: 1751
    functionName: libcrux_sha3_portable_keccak_load_block_5a_35
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_load_block_650
    - memcpy
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_keccak_load_block_5a_35(\n    uint64_t
      (*a)[5U], Eurydice_slice b[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1769,1
    - Dst: libcrux_sha3_portable_keccak_load_block_65
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1770,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - (*a)
    - b
    argTypes:
    - uint64_t[]
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1771
      start: 1762
    functionDepth: 3
    functionLinenumber: 1762
    functionLinenumberEnd: 1771
    functionName: libcrux_sha3_portable_keccak_load_block_5a_350
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_load_block_65
    - memcpy
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_keccak_load_block_5a_350(\n
      \   uint64_t (*a)[5U], Eurydice_slice b[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1786,1
    - Dst: libcrux_sha3_portable_keccak_load_block_5a_350
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1787,1
    - Dst: libcrux_sha3_generic_keccak_keccakf1600_b8
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - s
    - blocks
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakState_48*
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1789
      start: 1780
    functionDepth: 5
    functionLinenumber: 1780
    functionLinenumberEnd: 1789
    functionName: libcrux_sha3_generic_keccak_absorb_block_403
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_generic_keccak_keccakf1600_b8
    - memcpy
    - libcrux_sha3_portable_keccak_load_block_5a_350
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_generic_keccak_absorb_block_403(\n    libcrux_sha3_generic_keccak_KeccakState_48
      *s, Eurydice_slice blocks[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Eurydice_array_to_slice
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1802,1
    - Dst: libcrux_sha3_portable_keccak_store_block_9b
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1804,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1807,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1808,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - (*s)
    - ret
    argTypes:
    - uint64_t[]
    - uint8_t[][]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1809
      start: 1796
    functionDepth: 3
    functionLinenumber: 1796
    functionLinenumberEnd: 1809
    functionName: libcrux_sha3_portable_keccak_store_block_full_7e3
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_store_block_9b
    - memcpy
    - Eurydice_array_to_slice
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_keccak_store_block_full_7e3(\n
      \   uint64_t (*s)[5U], uint8_t ret[1U][200U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak_store_block_full_7e3
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1824,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - (*a)
    - ret
    argTypes:
    - uint64_t[]
    - uint8_t[][]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1825
      start: 1820
    functionDepth: 4
    functionLinenumber: 1820
    functionLinenumberEnd: 1825
    functionName: libcrux_sha3_portable_keccak_store_block_full_5a_273
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_store_block_full_7e3
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_keccak_store_block_full_5a_273(uint64_t
      (*a)[5U],\n                                                     uint8_t ret[1U][200U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak_store_block_full_5a_273
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1839,1
    - Dst: Eurydice_slice_len
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1846,1
    - Dst: Eurydice_slice_copy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1847,1
    - Dst: Eurydice_array_to_subslice
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1849,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - s
    - out
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakState_48*
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1853
      start: 1834
    functionDepth: 5
    functionLinenumber: 1834
    functionLinenumberEnd: 1853
    functionName: libcrux_sha3_generic_keccak_squeeze_first_and_last_883
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_store_block_full_5a_273
    - Eurydice_slice_copy
    - Eurydice_slice_len
    - Eurydice_array_to_subslice
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_generic_keccak_squeeze_first_and_last_883(\n
      \   libcrux_sha3_generic_keccak_KeccakState_48 *s, Eurydice_slice out[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_generic_keccak_keccakf1600_b8
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1866,1
    - Dst: libcrux_sha3_portable_keccak_store_block_full_5a_273
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1868,1
    - Dst: Eurydice_slice_len
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1875,1
    - Dst: Eurydice_slice_copy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1876,1
    - Dst: Eurydice_array_to_subslice
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1878,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - s
    - out
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakState_48
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1882
      start: 1862
    functionDepth: 5
    functionLinenumber: 1862
    functionLinenumberEnd: 1882
    functionName: libcrux_sha3_generic_keccak_squeeze_last_ca3
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_store_block_full_5a_273
    - Eurydice_slice_copy
    - Eurydice_slice_len
    - Eurydice_array_to_subslice
    - libcrux_sha3_generic_keccak_keccakf1600_b8
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_generic_keccak_squeeze_last_ca3(\n    libcrux_sha3_generic_keccak_KeccakState_48
      s, Eurydice_slice out[1U])"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_generic_keccak_new_1e_cf
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1897,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1904,1
    - Dst: libcrux_sha3_portable_keccak_slice_n_5a
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1906,1
    - Dst: libcrux_sha3_generic_keccak_absorb_block_403
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1908,1
    - Dst: Eurydice_slice_len
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1910,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1914,1
    - Dst: libcrux_sha3_generic_keccak_absorb_final_40
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1918,1
    - Dst: Eurydice_slice_len
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1919,1
    - Dst: libcrux_sha3_generic_keccak_squeeze_first_and_last_883
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1923,1
    - Dst: libcrux_sha3_portable_keccak_split_at_mut_n_5a
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1926,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1928,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1930,1
    - Dst: libcrux_sha3_generic_keccak_squeeze_first_block_7b
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1931,1
    - Dst: core_iter_traits_collect___core__iter__traits__collect__IntoIterator_for_I__1__into_iter
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1933,1
    - Dst: CLITERAL
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1934,1
    - Dst: core_iter_range___core__iter__traits__iterator__Iterator_for_core__ops__range__Range_A___6__next
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1938,1
    - Dst: libcrux_sha3_portable_keccak_split_at_mut_n_5a
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1944,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1946,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1948,1
    - Dst: libcrux_sha3_generic_keccak_squeeze_next_block_c2
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1949,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1950,1
    - Dst: libcrux_sha3_generic_keccak_squeeze_last_ca3
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1954,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - data
    - out
    argTypes:
    - Eurydice_slice[]
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1957
      start: 1892
    functionDepth: 6
    functionLinenumber: 1892
    functionLinenumberEnd: 1957
    functionName: libcrux_sha3_generic_keccak_keccak_064
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - core_iter_range___core__iter__traits__iterator__Iterator_for_core__ops__range__Range_A___6__next
    - memcpy
    - libcrux_sha3_generic_keccak_squeeze_first_and_last_883
    - core_iter_traits_collect___core__iter__traits__collect__IntoIterator_for_I__1__into_iter
    - libcrux_sha3_generic_keccak_absorb_final_40
    - libcrux_sha3_generic_keccak_new_1e_cf
    - libcrux_sha3_portable_keccak_slice_n_5a
    - libcrux_sha3_generic_keccak_absorb_block_403
    - CLITERAL
    - Eurydice_slice_len
    - libcrux_sha3_generic_keccak_squeeze_first_block_7b
    - libcrux_sha3_generic_keccak_squeeze_last_ca3
    - libcrux_sha3_portable_keccak_split_at_mut_n_5a
    - libcrux_sha3_generic_keccak_squeeze_next_block_c2
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_generic_keccak_keccak_064(\n    Eurydice_slice
      data[1U], Eurydice_slice out[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1971,1
    - Dst: libcrux_sha3_generic_keccak_keccak_064
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1972,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - out
    argTypes:
    - Eurydice_slice[]
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1973
      start: 1965
    functionDepth: 7
    functionLinenumber: 1965
    functionLinenumberEnd: 1973
    functionName: libcrux_sha3_portable_keccakx1_e44
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - memcpy
    - libcrux_sha3_generic_keccak_keccak_064
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_keccakx1_e44(\n    Eurydice_slice
      data[1U], Eurydice_slice out[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Eurydice_slice_to_array2
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1988,1
    - Dst: Eurydice_slice_subslice2
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1990,1
    - Dst: core_result_unwrap_41_0e
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1993,1
    - Dst: core_num__u64_9__from_le_bytes
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:1997,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - (*s)
    - blocks
    argTypes:
    - uint64_t[]
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1999
      start: 1980
    functionDepth: 2
    functionLinenumber: 1980
    functionLinenumberEnd: 1999
    functionName: libcrux_sha3_portable_keccak_load_block_653
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - core_result_unwrap_41_0e
    - core_num__u64_9__from_le_bytes
    - Eurydice_slice_to_array2
    - Eurydice_slice_subslice2
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_keccak_load_block_653(\n    uint64_t
      (*s)[5U], Eurydice_slice blocks[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2017,1
    - Dst: libcrux_sha3_portable_keccak_load_block_653
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2018,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - (*a)
    - b
    argTypes:
    - uint64_t[]
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2019
      start: 2010
    functionDepth: 3
    functionLinenumber: 2010
    functionLinenumberEnd: 2019
    functionName: libcrux_sha3_portable_keccak_load_block_5a_353
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_load_block_653
    - memcpy
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_keccak_load_block_5a_353(\n
      \   uint64_t (*a)[5U], Eurydice_slice b[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2034,1
    - Dst: libcrux_sha3_portable_keccak_load_block_5a_353
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2035,1
    - Dst: libcrux_sha3_generic_keccak_keccakf1600_b8
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2036,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - s
    - blocks
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakState_48*
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2037
      start: 2028
    functionDepth: 5
    functionLinenumber: 2028
    functionLinenumberEnd: 2037
    functionName: libcrux_sha3_generic_keccak_absorb_block_402
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_load_block_5a_353
    - memcpy
    - libcrux_sha3_generic_keccak_keccakf1600_b8
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_generic_keccak_absorb_block_402(\n    libcrux_sha3_generic_keccak_KeccakState_48
      *s, Eurydice_slice blocks[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Eurydice_array_to_slice
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2049,1
    - Dst: libcrux_sha3_portable_keccak_load_block_653
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2051,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - (*s)
    - blocks
    argTypes:
    - uint64_t[]
    - uint8_t[][]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2052
      start: 2044
    functionDepth: 3
    functionLinenumber: 2044
    functionLinenumberEnd: 2052
    functionName: libcrux_sha3_portable_keccak_load_block_full_d43
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_load_block_653
    - Eurydice_array_to_slice
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_keccak_load_block_full_d43(\n
      \   uint64_t (*s)[5U], uint8_t blocks[1U][200U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2070,1
    - Dst: libcrux_sha3_portable_keccak_load_block_full_d43
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2071,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - (*a)
    - b
    argTypes:
    - uint64_t[]
    - uint8_t[][]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2072
      start: 2063
    functionDepth: 4
    functionLinenumber: 2063
    functionLinenumberEnd: 2072
    functionName: libcrux_sha3_portable_keccak_load_block_full_5a_053
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_load_block_full_d43
    - memcpy
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_keccak_load_block_full_5a_053(\n
      \   uint64_t (*a)[5U], uint8_t b[1U][200U])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Eurydice_slice_len
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2086,1
    - Dst: Eurydice_array_to_subslice2
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2092,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2102,1
    - Dst: libcrux_sha3_portable_keccak_load_block_full_5a_053
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2103,1
    - Dst: libcrux_sha3_generic_keccak_keccakf1600_b8
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - s
    - last
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakState_48*
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2105
      start: 2082
    functionDepth: 5
    functionLinenumber: 2082
    functionLinenumberEnd: 2105
    functionName: libcrux_sha3_generic_keccak_absorb_final_404
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - memcpy
    - Eurydice_array_to_subslice2
    - libcrux_sha3_portable_keccak_load_block_full_5a_053
    - Eurydice_slice_len
    - libcrux_sha3_generic_keccak_keccakf1600_b8
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_generic_keccak_absorb_final_404(\n    libcrux_sha3_generic_keccak_KeccakState_48
      *s, Eurydice_slice last[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Eurydice_slice_subslice2
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2118,1
    - Dst: core_num__u64_9__to_le_bytes
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2121,1
    - Dst: Eurydice_slice_copy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2122,1
    - Dst: Eurydice_array_to_slice
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - (*s)
    - out
    argTypes:
    - uint64_t[]
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2125
      start: 2112
    functionDepth: 2
    functionLinenumber: 2112
    functionLinenumberEnd: 2125
    functionName: libcrux_sha3_portable_keccak_store_block_9b3
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - Eurydice_array_to_slice
    - Eurydice_slice_copy
    - Eurydice_slice_subslice2
    - core_num__u64_9__to_le_bytes
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_keccak_store_block_9b3(\n    uint64_t
      (*s)[5U], Eurydice_slice out[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Eurydice_array_to_slice
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2138,1
    - Dst: libcrux_sha3_portable_keccak_store_block_9b3
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2140,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2143,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - (*s)
    - ret
    argTypes:
    - uint64_t[]
    - uint8_t[][]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2145
      start: 2132
    functionDepth: 3
    functionLinenumber: 2132
    functionLinenumberEnd: 2145
    functionName: libcrux_sha3_portable_keccak_store_block_full_7e2
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_store_block_9b3
    - memcpy
    - Eurydice_array_to_slice
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_keccak_store_block_full_7e2(\n
      \   uint64_t (*s)[5U], uint8_t ret[1U][200U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak_store_block_full_7e2
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - (*a)
    - ret
    argTypes:
    - uint64_t[]
    - uint8_t[][]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2161
      start: 2156
    functionDepth: 4
    functionLinenumber: 2156
    functionLinenumberEnd: 2161
    functionName: libcrux_sha3_portable_keccak_store_block_full_5a_272
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_store_block_full_7e2
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_keccak_store_block_full_5a_272(uint64_t
      (*a)[5U],\n                                                     uint8_t ret[1U][200U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak_store_block_full_5a_272
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2175,1
    - Dst: Eurydice_slice_len
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2182,1
    - Dst: Eurydice_slice_copy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2183,1
    - Dst: Eurydice_array_to_subslice
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - s
    - out
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakState_48*
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2189
      start: 2170
    functionDepth: 5
    functionLinenumber: 2170
    functionLinenumberEnd: 2189
    functionName: libcrux_sha3_generic_keccak_squeeze_first_and_last_882
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - Eurydice_slice_copy
    - Eurydice_slice_len
    - Eurydice_array_to_subslice
    - libcrux_sha3_portable_keccak_store_block_full_5a_272
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_generic_keccak_squeeze_first_and_last_882(\n
      \   libcrux_sha3_generic_keccak_KeccakState_48 *s, Eurydice_slice out[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak_store_block_9b3
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - (*a)
    - b
    argTypes:
    - uint64_t[]
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2205
      start: 2200
    functionDepth: 3
    functionLinenumber: 2200
    functionLinenumberEnd: 2205
    functionName: libcrux_sha3_portable_keccak_store_block_5a_493
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_store_block_9b3
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_keccak_store_block_5a_493(\n
      \   uint64_t (*a)[5U], Eurydice_slice b[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak_store_block_5a_493
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - out
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakState_48*
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2219
      start: 2214
    functionDepth: 4
    functionLinenumber: 2214
    functionLinenumberEnd: 2219
    functionName: libcrux_sha3_generic_keccak_squeeze_first_block_7b3
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_store_block_5a_493
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_generic_keccak_squeeze_first_block_7b3(\n
      \   libcrux_sha3_generic_keccak_KeccakState_48 *s, Eurydice_slice out[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_generic_keccak_keccakf1600_b8
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2232,1
    - Dst: libcrux_sha3_portable_keccak_store_block_5a_493
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - out
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakState_48*
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2234
      start: 2228
    functionDepth: 5
    functionLinenumber: 2228
    functionLinenumberEnd: 2234
    functionName: libcrux_sha3_generic_keccak_squeeze_next_block_c23
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_generic_keccak_keccakf1600_b8
    - libcrux_sha3_portable_keccak_store_block_5a_493
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_generic_keccak_squeeze_next_block_c23(\n
      \   libcrux_sha3_generic_keccak_KeccakState_48 *s, Eurydice_slice out[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_generic_keccak_keccakf1600_b8
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2247,1
    - Dst: libcrux_sha3_portable_keccak_store_block_full_5a_272
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2249,1
    - Dst: Eurydice_slice_len
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2256,1
    - Dst: Eurydice_slice_copy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2257,1
    - Dst: Eurydice_array_to_subslice
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - s
    - out
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakState_48
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2263
      start: 2243
    functionDepth: 5
    functionLinenumber: 2243
    functionLinenumberEnd: 2263
    functionName: libcrux_sha3_generic_keccak_squeeze_last_ca2
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - Eurydice_slice_copy
    - Eurydice_slice_len
    - Eurydice_array_to_subslice
    - libcrux_sha3_generic_keccak_keccakf1600_b8
    - libcrux_sha3_portable_keccak_store_block_full_5a_272
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_generic_keccak_squeeze_last_ca2(\n    libcrux_sha3_generic_keccak_KeccakState_48
      s, Eurydice_slice out[1U])"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_generic_keccak_new_1e_cf
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2278,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2285,1
    - Dst: libcrux_sha3_portable_keccak_slice_n_5a
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2287,1
    - Dst: libcrux_sha3_generic_keccak_absorb_block_402
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2289,1
    - Dst: Eurydice_slice_len
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2291,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2295,1
    - Dst: libcrux_sha3_generic_keccak_absorb_final_404
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2299,1
    - Dst: Eurydice_slice_len
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2300,1
    - Dst: libcrux_sha3_generic_keccak_squeeze_first_and_last_882
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2304,1
    - Dst: libcrux_sha3_portable_keccak_split_at_mut_n_5a
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2307,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2309,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2311,1
    - Dst: libcrux_sha3_generic_keccak_squeeze_first_block_7b3
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2312,1
    - Dst: core_iter_traits_collect___core__iter__traits__collect__IntoIterator_for_I__1__into_iter
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2314,1
    - Dst: CLITERAL
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2315,1
    - Dst: core_iter_range___core__iter__traits__iterator__Iterator_for_core__ops__range__Range_A___6__next
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2319,1
    - Dst: libcrux_sha3_portable_keccak_split_at_mut_n_5a
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2325,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2327,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2329,1
    - Dst: libcrux_sha3_generic_keccak_squeeze_next_block_c23
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2330,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2331,1
    - Dst: libcrux_sha3_generic_keccak_squeeze_last_ca2
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2335,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - data
    - out
    argTypes:
    - Eurydice_slice[]
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2338
      start: 2273
    functionDepth: 6
    functionLinenumber: 2273
    functionLinenumberEnd: 2338
    functionName: libcrux_sha3_generic_keccak_keccak_063
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_generic_keccak_squeeze_next_block_c23
    - libcrux_sha3_generic_keccak_absorb_block_402
    - core_iter_range___core__iter__traits__iterator__Iterator_for_core__ops__range__Range_A___6__next
    - memcpy
    - core_iter_traits_collect___core__iter__traits__collect__IntoIterator_for_I__1__into_iter
    - libcrux_sha3_generic_keccak_new_1e_cf
    - libcrux_sha3_portable_keccak_slice_n_5a
    - libcrux_sha3_generic_keccak_squeeze_first_and_last_882
    - CLITERAL
    - Eurydice_slice_len
    - libcrux_sha3_generic_keccak_absorb_final_404
    - libcrux_sha3_generic_keccak_squeeze_last_ca2
    - libcrux_sha3_portable_keccak_split_at_mut_n_5a
    - libcrux_sha3_generic_keccak_squeeze_first_block_7b3
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_generic_keccak_keccak_063(\n    Eurydice_slice
      data[1U], Eurydice_slice out[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2352,1
    - Dst: libcrux_sha3_generic_keccak_keccak_063
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - out
    argTypes:
    - Eurydice_slice[]
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2354
      start: 2346
    functionDepth: 7
    functionLinenumber: 2346
    functionLinenumberEnd: 2354
    functionName: libcrux_sha3_portable_keccakx1_e43
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_generic_keccak_keccak_063
    - memcpy
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_keccakx1_e43(\n    Eurydice_slice
      data[1U], Eurydice_slice out[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Eurydice_slice_to_array2
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2369,1
    - Dst: Eurydice_slice_subslice2
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2371,1
    - Dst: core_result_unwrap_41_0e
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2374,1
    - Dst: core_num__u64_9__from_le_bytes
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - (*s)
    - blocks
    argTypes:
    - uint64_t[]
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2380
      start: 2361
    functionDepth: 2
    functionLinenumber: 2361
    functionLinenumberEnd: 2380
    functionName: libcrux_sha3_portable_keccak_load_block_652
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - core_result_unwrap_41_0e
    - core_num__u64_9__from_le_bytes
    - Eurydice_slice_to_array2
    - Eurydice_slice_subslice2
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_keccak_load_block_652(\n    uint64_t
      (*s)[5U], Eurydice_slice blocks[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2398,1
    - Dst: libcrux_sha3_portable_keccak_load_block_652
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - (*a)
    - b
    argTypes:
    - uint64_t[]
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2400
      start: 2391
    functionDepth: 3
    functionLinenumber: 2391
    functionLinenumberEnd: 2400
    functionName: libcrux_sha3_portable_keccak_load_block_5a_352
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_load_block_652
    - memcpy
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_keccak_load_block_5a_352(\n
      \   uint64_t (*a)[5U], Eurydice_slice b[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2415,1
    - Dst: libcrux_sha3_portable_keccak_load_block_5a_352
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2416,1
    - Dst: libcrux_sha3_generic_keccak_keccakf1600_b8
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - s
    - blocks
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakState_48*
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2418
      start: 2409
    functionDepth: 5
    functionLinenumber: 2409
    functionLinenumberEnd: 2418
    functionName: libcrux_sha3_generic_keccak_absorb_block_401
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_generic_keccak_keccakf1600_b8
    - memcpy
    - libcrux_sha3_portable_keccak_load_block_5a_352
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_generic_keccak_absorb_block_401(\n    libcrux_sha3_generic_keccak_KeccakState_48
      *s, Eurydice_slice blocks[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Eurydice_array_to_slice
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2430,1
    - Dst: libcrux_sha3_portable_keccak_load_block_652
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - (*s)
    - blocks
    argTypes:
    - uint64_t[]
    - uint8_t[][]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2433
      start: 2425
    functionDepth: 3
    functionLinenumber: 2425
    functionLinenumberEnd: 2433
    functionName: libcrux_sha3_portable_keccak_load_block_full_d42
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_load_block_652
    - Eurydice_array_to_slice
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_keccak_load_block_full_d42(\n
      \   uint64_t (*s)[5U], uint8_t blocks[1U][200U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2451,1
    - Dst: libcrux_sha3_portable_keccak_load_block_full_d42
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - (*a)
    - b
    argTypes:
    - uint64_t[]
    - uint8_t[][]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2453
      start: 2444
    functionDepth: 4
    functionLinenumber: 2444
    functionLinenumberEnd: 2453
    functionName: libcrux_sha3_portable_keccak_load_block_full_5a_052
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - memcpy
    - libcrux_sha3_portable_keccak_load_block_full_d42
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_keccak_load_block_full_5a_052(\n
      \   uint64_t (*a)[5U], uint8_t b[1U][200U])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Eurydice_slice_len
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2467,1
    - Dst: Eurydice_array_to_subslice2
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2473,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2483,1
    - Dst: libcrux_sha3_portable_keccak_load_block_full_5a_052
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2484,1
    - Dst: libcrux_sha3_generic_keccak_keccakf1600_b8
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2485,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - s
    - last
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakState_48*
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2486
      start: 2463
    functionDepth: 5
    functionLinenumber: 2463
    functionLinenumberEnd: 2486
    functionName: libcrux_sha3_generic_keccak_absorb_final_403
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - memcpy
    - Eurydice_array_to_subslice2
    - Eurydice_slice_len
    - libcrux_sha3_portable_keccak_load_block_full_5a_052
    - libcrux_sha3_generic_keccak_keccakf1600_b8
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_generic_keccak_absorb_final_403(\n    libcrux_sha3_generic_keccak_KeccakState_48
      *s, Eurydice_slice last[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Eurydice_slice_subslice2
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2499,1
    - Dst: core_num__u64_9__to_le_bytes
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2502,1
    - Dst: Eurydice_slice_copy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2503,1
    - Dst: Eurydice_array_to_slice
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2504,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - (*s)
    - out
    argTypes:
    - uint64_t[]
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2506
      start: 2493
    functionDepth: 2
    functionLinenumber: 2493
    functionLinenumberEnd: 2506
    functionName: libcrux_sha3_portable_keccak_store_block_9b2
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - Eurydice_array_to_slice
    - Eurydice_slice_copy
    - Eurydice_slice_subslice2
    - core_num__u64_9__to_le_bytes
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_keccak_store_block_9b2(\n    uint64_t
      (*s)[5U], Eurydice_slice out[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Eurydice_array_to_slice
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2519,1
    - Dst: libcrux_sha3_portable_keccak_store_block_9b2
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2521,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2524,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - (*s)
    - ret
    argTypes:
    - uint64_t[]
    - uint8_t[][]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2526
      start: 2513
    functionDepth: 3
    functionLinenumber: 2513
    functionLinenumberEnd: 2526
    functionName: libcrux_sha3_portable_keccak_store_block_full_7e1
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - memcpy
    - libcrux_sha3_portable_keccak_store_block_9b2
    - Eurydice_array_to_slice
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_keccak_store_block_full_7e1(\n
      \   uint64_t (*s)[5U], uint8_t ret[1U][200U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak_store_block_full_7e1
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - (*a)
    - ret
    argTypes:
    - uint64_t[]
    - uint8_t[][]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2542
      start: 2537
    functionDepth: 4
    functionLinenumber: 2537
    functionLinenumberEnd: 2542
    functionName: libcrux_sha3_portable_keccak_store_block_full_5a_271
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_store_block_full_7e1
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_keccak_store_block_full_5a_271(uint64_t
      (*a)[5U],\n                                                     uint8_t ret[1U][200U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak_store_block_full_5a_271
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2556,1
    - Dst: Eurydice_slice_len
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2563,1
    - Dst: Eurydice_slice_copy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2564,1
    - Dst: Eurydice_array_to_subslice
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - s
    - out
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakState_48*
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2570
      start: 2551
    functionDepth: 5
    functionLinenumber: 2551
    functionLinenumberEnd: 2570
    functionName: libcrux_sha3_generic_keccak_squeeze_first_and_last_881
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - Eurydice_slice_copy
    - Eurydice_slice_len
    - Eurydice_array_to_subslice
    - libcrux_sha3_portable_keccak_store_block_full_5a_271
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_generic_keccak_squeeze_first_and_last_881(\n
      \   libcrux_sha3_generic_keccak_KeccakState_48 *s, Eurydice_slice out[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak_store_block_9b2
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - (*a)
    - b
    argTypes:
    - uint64_t[]
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2586
      start: 2581
    functionDepth: 3
    functionLinenumber: 2581
    functionLinenumberEnd: 2586
    functionName: libcrux_sha3_portable_keccak_store_block_5a_492
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_store_block_9b2
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_keccak_store_block_5a_492(\n
      \   uint64_t (*a)[5U], Eurydice_slice b[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak_store_block_5a_492
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - out
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakState_48*
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2600
      start: 2595
    functionDepth: 4
    functionLinenumber: 2595
    functionLinenumberEnd: 2600
    functionName: libcrux_sha3_generic_keccak_squeeze_first_block_7b2
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_store_block_5a_492
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_generic_keccak_squeeze_first_block_7b2(\n
      \   libcrux_sha3_generic_keccak_KeccakState_48 *s, Eurydice_slice out[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_generic_keccak_keccakf1600_b8
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2613,1
    - Dst: libcrux_sha3_portable_keccak_store_block_5a_492
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - out
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakState_48*
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2615
      start: 2609
    functionDepth: 5
    functionLinenumber: 2609
    functionLinenumberEnd: 2615
    functionName: libcrux_sha3_generic_keccak_squeeze_next_block_c22
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_store_block_5a_492
    - libcrux_sha3_generic_keccak_keccakf1600_b8
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_generic_keccak_squeeze_next_block_c22(\n
      \   libcrux_sha3_generic_keccak_KeccakState_48 *s, Eurydice_slice out[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_generic_keccak_keccakf1600_b8
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2628,1
    - Dst: libcrux_sha3_portable_keccak_store_block_full_5a_271
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2630,1
    - Dst: Eurydice_slice_len
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2637,1
    - Dst: Eurydice_slice_copy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2638,1
    - Dst: Eurydice_array_to_subslice
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - s
    - out
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakState_48
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2644
      start: 2624
    functionDepth: 5
    functionLinenumber: 2624
    functionLinenumberEnd: 2644
    functionName: libcrux_sha3_generic_keccak_squeeze_last_ca1
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - Eurydice_slice_copy
    - Eurydice_slice_len
    - libcrux_sha3_portable_keccak_store_block_full_5a_271
    - Eurydice_array_to_subslice
    - libcrux_sha3_generic_keccak_keccakf1600_b8
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_generic_keccak_squeeze_last_ca1(\n    libcrux_sha3_generic_keccak_KeccakState_48
      s, Eurydice_slice out[1U])"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_generic_keccak_new_1e_cf
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2659,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2666,1
    - Dst: libcrux_sha3_portable_keccak_slice_n_5a
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2668,1
    - Dst: libcrux_sha3_generic_keccak_absorb_block_401
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2670,1
    - Dst: Eurydice_slice_len
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2672,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2676,1
    - Dst: libcrux_sha3_generic_keccak_absorb_final_403
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2680,1
    - Dst: Eurydice_slice_len
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2681,1
    - Dst: libcrux_sha3_generic_keccak_squeeze_first_and_last_881
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2685,1
    - Dst: libcrux_sha3_portable_keccak_split_at_mut_n_5a
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2688,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2690,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2692,1
    - Dst: libcrux_sha3_generic_keccak_squeeze_first_block_7b2
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2693,1
    - Dst: core_iter_traits_collect___core__iter__traits__collect__IntoIterator_for_I__1__into_iter
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2695,1
    - Dst: CLITERAL
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2696,1
    - Dst: core_iter_range___core__iter__traits__iterator__Iterator_for_core__ops__range__Range_A___6__next
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2700,1
    - Dst: libcrux_sha3_portable_keccak_split_at_mut_n_5a
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2706,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2708,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2710,1
    - Dst: libcrux_sha3_generic_keccak_squeeze_next_block_c22
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2711,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2712,1
    - Dst: libcrux_sha3_generic_keccak_squeeze_last_ca1
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2716,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - data
    - out
    argTypes:
    - Eurydice_slice[]
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2719
      start: 2654
    functionDepth: 6
    functionLinenumber: 2654
    functionLinenumberEnd: 2719
    functionName: libcrux_sha3_generic_keccak_keccak_062
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - core_iter_range___core__iter__traits__iterator__Iterator_for_core__ops__range__Range_A___6__next
    - libcrux_sha3_generic_keccak_squeeze_next_block_c22
    - memcpy
    - core_iter_traits_collect___core__iter__traits__collect__IntoIterator_for_I__1__into_iter
    - libcrux_sha3_generic_keccak_absorb_final_403
    - libcrux_sha3_generic_keccak_absorb_block_401
    - libcrux_sha3_generic_keccak_new_1e_cf
    - libcrux_sha3_portable_keccak_slice_n_5a
    - libcrux_sha3_generic_keccak_squeeze_first_and_last_881
    - libcrux_sha3_generic_keccak_squeeze_last_ca1
    - CLITERAL
    - libcrux_sha3_generic_keccak_squeeze_first_block_7b2
    - Eurydice_slice_len
    - libcrux_sha3_portable_keccak_split_at_mut_n_5a
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_generic_keccak_keccak_062(\n    Eurydice_slice
      data[1U], Eurydice_slice out[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2733,1
    - Dst: libcrux_sha3_generic_keccak_keccak_062
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2734,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - out
    argTypes:
    - Eurydice_slice[]
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2735
      start: 2727
    functionDepth: 7
    functionLinenumber: 2727
    functionLinenumberEnd: 2735
    functionName: libcrux_sha3_portable_keccakx1_e42
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - memcpy
    - libcrux_sha3_generic_keccak_keccak_062
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_keccakx1_e42(\n    Eurydice_slice
      data[1U], Eurydice_slice out[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2750,1
    - Dst: libcrux_sha3_portable_keccak_load_block_5a_35
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2751,1
    - Dst: libcrux_sha3_generic_keccak_keccakf1600_b8
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2752,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - s
    - blocks
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakState_48*
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2753
      start: 2744
    functionDepth: 5
    functionLinenumber: 2744
    functionLinenumberEnd: 2753
    functionName: libcrux_sha3_generic_keccak_absorb_block_400
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - memcpy
    - libcrux_sha3_portable_keccak_load_block_5a_35
    - libcrux_sha3_generic_keccak_keccakf1600_b8
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_generic_keccak_absorb_block_400(\n    libcrux_sha3_generic_keccak_KeccakState_48
      *s, Eurydice_slice blocks[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Eurydice_array_to_slice
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2766,1
    - Dst: libcrux_sha3_portable_keccak_store_block_9b0
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2768,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2771,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2772,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - (*s)
    - ret
    argTypes:
    - uint64_t[]
    - uint8_t[][]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2773
      start: 2760
    functionDepth: 3
    functionLinenumber: 2760
    functionLinenumberEnd: 2773
    functionName: libcrux_sha3_portable_keccak_store_block_full_7e0
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - memcpy
    - libcrux_sha3_portable_keccak_store_block_9b0
    - Eurydice_array_to_slice
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_keccak_store_block_full_7e0(\n
      \   uint64_t (*s)[5U], uint8_t ret[1U][200U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak_store_block_full_7e0
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - (*a)
    - ret
    argTypes:
    - uint64_t[]
    - uint8_t[][]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2789
      start: 2784
    functionDepth: 4
    functionLinenumber: 2784
    functionLinenumberEnd: 2789
    functionName: libcrux_sha3_portable_keccak_store_block_full_5a_270
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_store_block_full_7e0
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_keccak_store_block_full_5a_270(uint64_t
      (*a)[5U],\n                                                     uint8_t ret[1U][200U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak_store_block_full_5a_270
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2803,1
    - Dst: Eurydice_slice_len
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2810,1
    - Dst: Eurydice_slice_copy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2811,1
    - Dst: Eurydice_array_to_subslice
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - s
    - out
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakState_48*
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2817
      start: 2798
    functionDepth: 5
    functionLinenumber: 2798
    functionLinenumberEnd: 2817
    functionName: libcrux_sha3_generic_keccak_squeeze_first_and_last_880
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - Eurydice_slice_copy
    - Eurydice_slice_len
    - Eurydice_array_to_subslice
    - libcrux_sha3_portable_keccak_store_block_full_5a_270
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_generic_keccak_squeeze_first_and_last_880(\n
      \   libcrux_sha3_generic_keccak_KeccakState_48 *s, Eurydice_slice out[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_generic_keccak_keccakf1600_b8
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2830,1
    - Dst: libcrux_sha3_portable_keccak_store_block_full_5a_270
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2832,1
    - Dst: Eurydice_slice_len
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2839,1
    - Dst: Eurydice_slice_copy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2840,1
    - Dst: Eurydice_array_to_subslice
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2842,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - s
    - out
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakState_48
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2846
      start: 2826
    functionDepth: 5
    functionLinenumber: 2826
    functionLinenumberEnd: 2846
    functionName: libcrux_sha3_generic_keccak_squeeze_last_ca0
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_generic_keccak_keccakf1600_b8
    - Eurydice_slice_copy
    - Eurydice_slice_len
    - Eurydice_array_to_subslice
    - libcrux_sha3_portable_keccak_store_block_full_5a_270
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_generic_keccak_squeeze_last_ca0(\n    libcrux_sha3_generic_keccak_KeccakState_48
      s, Eurydice_slice out[1U])"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_generic_keccak_new_1e_cf
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2861,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2868,1
    - Dst: libcrux_sha3_portable_keccak_slice_n_5a
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2870,1
    - Dst: libcrux_sha3_generic_keccak_absorb_block_400
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2872,1
    - Dst: Eurydice_slice_len
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2874,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2878,1
    - Dst: libcrux_sha3_generic_keccak_absorb_final_400
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2882,1
    - Dst: Eurydice_slice_len
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2883,1
    - Dst: libcrux_sha3_generic_keccak_squeeze_first_and_last_880
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2887,1
    - Dst: libcrux_sha3_portable_keccak_split_at_mut_n_5a
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2890,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2892,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2894,1
    - Dst: libcrux_sha3_generic_keccak_squeeze_first_block_7b0
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2895,1
    - Dst: core_iter_traits_collect___core__iter__traits__collect__IntoIterator_for_I__1__into_iter
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2897,1
    - Dst: CLITERAL
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2898,1
    - Dst: core_iter_range___core__iter__traits__iterator__Iterator_for_core__ops__range__Range_A___6__next
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2902,1
    - Dst: libcrux_sha3_portable_keccak_split_at_mut_n_5a
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2908,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2910,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2912,1
    - Dst: libcrux_sha3_generic_keccak_squeeze_next_block_c20
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2913,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2914,1
    - Dst: libcrux_sha3_generic_keccak_squeeze_last_ca0
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2918,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - data
    - out
    argTypes:
    - Eurydice_slice[]
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2921
      start: 2856
    functionDepth: 6
    functionLinenumber: 2856
    functionLinenumberEnd: 2921
    functionName: libcrux_sha3_generic_keccak_keccak_061
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_generic_keccak_squeeze_first_block_7b0
    - core_iter_range___core__iter__traits__iterator__Iterator_for_core__ops__range__Range_A___6__next
    - memcpy
    - libcrux_sha3_generic_keccak_squeeze_first_and_last_880
    - core_iter_traits_collect___core__iter__traits__collect__IntoIterator_for_I__1__into_iter
    - libcrux_sha3_generic_keccak_new_1e_cf
    - libcrux_sha3_portable_keccak_slice_n_5a
    - CLITERAL
    - libcrux_sha3_generic_keccak_absorb_final_400
    - Eurydice_slice_len
    - libcrux_sha3_generic_keccak_absorb_block_400
    - libcrux_sha3_generic_keccak_squeeze_next_block_c20
    - libcrux_sha3_generic_keccak_squeeze_last_ca0
    - libcrux_sha3_portable_keccak_split_at_mut_n_5a
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_generic_keccak_keccak_061(\n    Eurydice_slice
      data[1U], Eurydice_slice out[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2935,1
    - Dst: libcrux_sha3_generic_keccak_keccak_061
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2936,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - out
    argTypes:
    - Eurydice_slice[]
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2937
      start: 2929
    functionDepth: 7
    functionLinenumber: 2929
    functionLinenumberEnd: 2937
    functionName: libcrux_sha3_portable_keccakx1_e41
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - memcpy
    - libcrux_sha3_generic_keccak_keccak_061
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_keccakx1_e41(\n    Eurydice_slice
      data[1U], Eurydice_slice out[1U])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Eurydice_slice_len
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2951,1
    - Dst: Eurydice_array_to_subslice2
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2957,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2967,1
    - Dst: libcrux_sha3_portable_keccak_load_block_full_5a_050
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2968,1
    - Dst: libcrux_sha3_generic_keccak_keccakf1600_b8
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2969,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - s
    - last
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakState_48*
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2970
      start: 2947
    functionDepth: 5
    functionLinenumber: 2947
    functionLinenumberEnd: 2970
    functionName: libcrux_sha3_generic_keccak_absorb_final_402
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_load_block_full_5a_050
    - memcpy
    - Eurydice_array_to_subslice2
    - Eurydice_slice_len
    - libcrux_sha3_generic_keccak_keccakf1600_b8
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_generic_keccak_absorb_final_402(\n    libcrux_sha3_generic_keccak_KeccakState_48
      *s, Eurydice_slice last[1U])"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_generic_keccak_new_1e_cf
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2985,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2992,1
    - Dst: libcrux_sha3_portable_keccak_slice_n_5a
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2994,1
    - Dst: libcrux_sha3_generic_keccak_absorb_block_400
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2996,1
    - Dst: Eurydice_slice_len
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:2998,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3002,1
    - Dst: libcrux_sha3_generic_keccak_absorb_final_402
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3006,1
    - Dst: Eurydice_slice_len
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3007,1
    - Dst: libcrux_sha3_generic_keccak_squeeze_first_and_last_880
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3011,1
    - Dst: libcrux_sha3_portable_keccak_split_at_mut_n_5a
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3014,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3016,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3018,1
    - Dst: libcrux_sha3_generic_keccak_squeeze_first_block_7b0
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3019,1
    - Dst: core_iter_traits_collect___core__iter__traits__collect__IntoIterator_for_I__1__into_iter
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3021,1
    - Dst: CLITERAL
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3022,1
    - Dst: core_iter_range___core__iter__traits__iterator__Iterator_for_core__ops__range__Range_A___6__next
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3026,1
    - Dst: libcrux_sha3_portable_keccak_split_at_mut_n_5a
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3032,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3034,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3036,1
    - Dst: libcrux_sha3_generic_keccak_squeeze_next_block_c20
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3037,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3038,1
    - Dst: libcrux_sha3_generic_keccak_squeeze_last_ca0
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3042,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - data
    - out
    argTypes:
    - Eurydice_slice[]
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3045
      start: 2980
    functionDepth: 6
    functionLinenumber: 2980
    functionLinenumberEnd: 3045
    functionName: libcrux_sha3_generic_keccak_keccak_060
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_generic_keccak_squeeze_first_block_7b0
    - core_iter_range___core__iter__traits__iterator__Iterator_for_core__ops__range__Range_A___6__next
    - memcpy
    - libcrux_sha3_generic_keccak_squeeze_first_and_last_880
    - core_iter_traits_collect___core__iter__traits__collect__IntoIterator_for_I__1__into_iter
    - libcrux_sha3_generic_keccak_new_1e_cf
    - libcrux_sha3_portable_keccak_slice_n_5a
    - CLITERAL
    - Eurydice_slice_len
    - libcrux_sha3_generic_keccak_absorb_block_400
    - libcrux_sha3_generic_keccak_squeeze_next_block_c20
    - libcrux_sha3_generic_keccak_absorb_final_402
    - libcrux_sha3_generic_keccak_squeeze_last_ca0
    - libcrux_sha3_portable_keccak_split_at_mut_n_5a
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_generic_keccak_keccak_060(\n    Eurydice_slice
      data[1U], Eurydice_slice out[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3059,1
    - Dst: libcrux_sha3_generic_keccak_keccak_060
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3060,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - out
    argTypes:
    - Eurydice_slice[]
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3061
      start: 3053
    functionDepth: 7
    functionLinenumber: 3053
    functionLinenumberEnd: 3061
    functionName: libcrux_sha3_portable_keccakx1_e40
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_generic_keccak_keccak_060
    - memcpy
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_keccakx1_e40(\n    Eurydice_slice
      data[1U], Eurydice_slice out[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Eurydice_slice_to_array2
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3076,1
    - Dst: Eurydice_slice_subslice2
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3078,1
    - Dst: core_result_unwrap_41_0e
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3081,1
    - Dst: core_num__u64_9__from_le_bytes
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3085,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - (*s)
    - blocks
    argTypes:
    - uint64_t[]
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3087
      start: 3068
    functionDepth: 2
    functionLinenumber: 3068
    functionLinenumberEnd: 3087
    functionName: libcrux_sha3_portable_keccak_load_block_651
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - core_result_unwrap_41_0e
    - core_num__u64_9__from_le_bytes
    - Eurydice_slice_to_array2
    - Eurydice_slice_subslice2
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_keccak_load_block_651(\n    uint64_t
      (*s)[5U], Eurydice_slice blocks[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3105,1
    - Dst: libcrux_sha3_portable_keccak_load_block_651
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - (*a)
    - b
    argTypes:
    - uint64_t[]
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3107
      start: 3098
    functionDepth: 3
    functionLinenumber: 3098
    functionLinenumberEnd: 3107
    functionName: libcrux_sha3_portable_keccak_load_block_5a_351
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - memcpy
    - libcrux_sha3_portable_keccak_load_block_651
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_keccak_load_block_5a_351(\n
      \   uint64_t (*a)[5U], Eurydice_slice b[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3122,1
    - Dst: libcrux_sha3_portable_keccak_load_block_5a_351
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3123,1
    - Dst: libcrux_sha3_generic_keccak_keccakf1600_b8
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - s
    - blocks
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakState_48*
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3125
      start: 3116
    functionDepth: 5
    functionLinenumber: 3116
    functionLinenumberEnd: 3125
    functionName: libcrux_sha3_generic_keccak_absorb_block_40
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - memcpy
    - libcrux_sha3_portable_keccak_load_block_5a_351
    - libcrux_sha3_generic_keccak_keccakf1600_b8
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_generic_keccak_absorb_block_40(\n    libcrux_sha3_generic_keccak_KeccakState_48
      *s, Eurydice_slice blocks[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Eurydice_array_to_slice
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3137,1
    - Dst: libcrux_sha3_portable_keccak_load_block_651
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - (*s)
    - blocks
    argTypes:
    - uint64_t[]
    - uint8_t[][]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3140
      start: 3132
    functionDepth: 3
    functionLinenumber: 3132
    functionLinenumberEnd: 3140
    functionName: libcrux_sha3_portable_keccak_load_block_full_d41
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_load_block_651
    - Eurydice_array_to_slice
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_keccak_load_block_full_d41(\n
      \   uint64_t (*s)[5U], uint8_t blocks[1U][200U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3158,1
    - Dst: libcrux_sha3_portable_keccak_load_block_full_d41
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - (*a)
    - b
    argTypes:
    - uint64_t[]
    - uint8_t[][]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3160
      start: 3151
    functionDepth: 4
    functionLinenumber: 3151
    functionLinenumberEnd: 3160
    functionName: libcrux_sha3_portable_keccak_load_block_full_5a_051
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_load_block_full_d41
    - memcpy
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_keccak_load_block_full_5a_051(\n
      \   uint64_t (*a)[5U], uint8_t b[1U][200U])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Eurydice_slice_len
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3174,1
    - Dst: Eurydice_array_to_subslice2
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3180,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3190,1
    - Dst: libcrux_sha3_portable_keccak_load_block_full_5a_051
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3191,1
    - Dst: libcrux_sha3_generic_keccak_keccakf1600_b8
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - s
    - last
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakState_48*
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3193
      start: 3170
    functionDepth: 5
    functionLinenumber: 3170
    functionLinenumberEnd: 3193
    functionName: libcrux_sha3_generic_keccak_absorb_final_401
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - memcpy
    - Eurydice_array_to_subslice2
    - Eurydice_slice_len
    - libcrux_sha3_portable_keccak_load_block_full_5a_051
    - libcrux_sha3_generic_keccak_keccakf1600_b8
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_generic_keccak_absorb_final_401(\n    libcrux_sha3_generic_keccak_KeccakState_48
      *s, Eurydice_slice last[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Eurydice_slice_subslice2
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3206,1
    - Dst: core_num__u64_9__to_le_bytes
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3209,1
    - Dst: Eurydice_slice_copy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3210,1
    - Dst: Eurydice_array_to_slice
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - (*s)
    - out
    argTypes:
    - uint64_t[]
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3213
      start: 3200
    functionDepth: 2
    functionLinenumber: 3200
    functionLinenumberEnd: 3213
    functionName: libcrux_sha3_portable_keccak_store_block_9b1
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - Eurydice_array_to_slice
    - Eurydice_slice_copy
    - Eurydice_slice_subslice2
    - core_num__u64_9__to_le_bytes
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_keccak_store_block_9b1(\n    uint64_t
      (*s)[5U], Eurydice_slice out[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Eurydice_array_to_slice
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3226,1
    - Dst: libcrux_sha3_portable_keccak_store_block_9b1
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3228,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3231,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - (*s)
    - ret
    argTypes:
    - uint64_t[]
    - uint8_t[][]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3233
      start: 3220
    functionDepth: 3
    functionLinenumber: 3220
    functionLinenumberEnd: 3233
    functionName: libcrux_sha3_portable_keccak_store_block_full_7e
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_store_block_9b1
    - memcpy
    - Eurydice_array_to_slice
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_keccak_store_block_full_7e(\n
      \   uint64_t (*s)[5U], uint8_t ret[1U][200U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak_store_block_full_7e
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - (*a)
    - ret
    argTypes:
    - uint64_t[]
    - uint8_t[][]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3249
      start: 3244
    functionDepth: 4
    functionLinenumber: 3244
    functionLinenumberEnd: 3249
    functionName: libcrux_sha3_portable_keccak_store_block_full_5a_27
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_store_block_full_7e
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_keccak_store_block_full_5a_27(\n
      \   uint64_t (*a)[5U], uint8_t ret[1U][200U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak_store_block_full_5a_27
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3263,1
    - Dst: Eurydice_slice_len
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3270,1
    - Dst: Eurydice_slice_copy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3271,1
    - Dst: Eurydice_array_to_subslice
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - s
    - out
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakState_48*
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3277
      start: 3258
    functionDepth: 5
    functionLinenumber: 3258
    functionLinenumberEnd: 3277
    functionName: libcrux_sha3_generic_keccak_squeeze_first_and_last_88
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - Eurydice_slice_copy
    - Eurydice_slice_len
    - Eurydice_array_to_subslice
    - libcrux_sha3_portable_keccak_store_block_full_5a_27
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_generic_keccak_squeeze_first_and_last_88(\n
      \   libcrux_sha3_generic_keccak_KeccakState_48 *s, Eurydice_slice out[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak_store_block_9b1
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - (*a)
    - b
    argTypes:
    - uint64_t[]
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3293
      start: 3288
    functionDepth: 3
    functionLinenumber: 3288
    functionLinenumberEnd: 3293
    functionName: libcrux_sha3_portable_keccak_store_block_5a_491
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_store_block_9b1
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_keccak_store_block_5a_491(\n
      \   uint64_t (*a)[5U], Eurydice_slice b[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak_store_block_5a_491
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - out
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakState_48*
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3307
      start: 3302
    functionDepth: 4
    functionLinenumber: 3302
    functionLinenumberEnd: 3307
    functionName: libcrux_sha3_generic_keccak_squeeze_first_block_7b1
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_store_block_5a_491
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_generic_keccak_squeeze_first_block_7b1(\n
      \   libcrux_sha3_generic_keccak_KeccakState_48 *s, Eurydice_slice out[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_generic_keccak_keccakf1600_b8
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3320,1
    - Dst: libcrux_sha3_portable_keccak_store_block_5a_491
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - out
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakState_48*
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3322
      start: 3316
    functionDepth: 5
    functionLinenumber: 3316
    functionLinenumberEnd: 3322
    functionName: libcrux_sha3_generic_keccak_squeeze_next_block_c21
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_store_block_5a_491
    - libcrux_sha3_generic_keccak_keccakf1600_b8
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_generic_keccak_squeeze_next_block_c21(\n
      \   libcrux_sha3_generic_keccak_KeccakState_48 *s, Eurydice_slice out[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_generic_keccak_keccakf1600_b8
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3335,1
    - Dst: libcrux_sha3_portable_keccak_store_block_full_5a_27
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3337,1
    - Dst: Eurydice_slice_len
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3344,1
    - Dst: Eurydice_slice_copy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3345,1
    - Dst: Eurydice_array_to_subslice
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - s
    - out
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakState_48
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3351
      start: 3331
    functionDepth: 5
    functionLinenumber: 3331
    functionLinenumberEnd: 3351
    functionName: libcrux_sha3_generic_keccak_squeeze_last_ca
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_store_block_full_5a_27
    - Eurydice_slice_copy
    - Eurydice_slice_len
    - Eurydice_array_to_subslice
    - libcrux_sha3_generic_keccak_keccakf1600_b8
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_generic_keccak_squeeze_last_ca(\n    libcrux_sha3_generic_keccak_KeccakState_48
      s, Eurydice_slice out[1U])"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_generic_keccak_new_1e_cf
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3366,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3373,1
    - Dst: libcrux_sha3_portable_keccak_slice_n_5a
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3375,1
    - Dst: libcrux_sha3_generic_keccak_absorb_block_40
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3377,1
    - Dst: Eurydice_slice_len
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3379,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3383,1
    - Dst: libcrux_sha3_generic_keccak_absorb_final_401
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3387,1
    - Dst: Eurydice_slice_len
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3388,1
    - Dst: libcrux_sha3_generic_keccak_squeeze_first_and_last_88
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3392,1
    - Dst: libcrux_sha3_portable_keccak_split_at_mut_n_5a
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3395,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3397,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3399,1
    - Dst: libcrux_sha3_generic_keccak_squeeze_first_block_7b1
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3400,1
    - Dst: core_iter_traits_collect___core__iter__traits__collect__IntoIterator_for_I__1__into_iter
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3402,1
    - Dst: CLITERAL
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3403,1
    - Dst: core_iter_range___core__iter__traits__iterator__Iterator_for_core__ops__range__Range_A___6__next
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3407,1
    - Dst: libcrux_sha3_portable_keccak_split_at_mut_n_5a
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3413,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3415,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3417,1
    - Dst: libcrux_sha3_generic_keccak_squeeze_next_block_c21
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3418,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3419,1
    - Dst: libcrux_sha3_generic_keccak_squeeze_last_ca
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3423,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - data
    - out
    argTypes:
    - Eurydice_slice[]
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3426
      start: 3361
    functionDepth: 6
    functionLinenumber: 3361
    functionLinenumberEnd: 3426
    functionName: libcrux_sha3_generic_keccak_keccak_06
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - core_iter_range___core__iter__traits__iterator__Iterator_for_core__ops__range__Range_A___6__next
    - libcrux_sha3_generic_keccak_squeeze_last_ca
    - memcpy
    - libcrux_sha3_generic_keccak_squeeze_first_and_last_88
    - core_iter_traits_collect___core__iter__traits__collect__IntoIterator_for_I__1__into_iter
    - libcrux_sha3_generic_keccak_new_1e_cf
    - libcrux_sha3_portable_keccak_slice_n_5a
    - libcrux_sha3_generic_keccak_squeeze_first_block_7b1
    - libcrux_sha3_generic_keccak_absorb_block_40
    - CLITERAL
    - Eurydice_slice_len
    - libcrux_sha3_generic_keccak_absorb_final_401
    - libcrux_sha3_generic_keccak_squeeze_next_block_c21
    - libcrux_sha3_portable_keccak_split_at_mut_n_5a
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_generic_keccak_keccak_06(\n    Eurydice_slice
      data[1U], Eurydice_slice out[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3440,1
    - Dst: libcrux_sha3_generic_keccak_keccak_06
      Src: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h:3441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - out
    argTypes:
    - Eurydice_slice[]
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3442
      start: 3434
    functionDepth: 7
    functionLinenumber: 3434
    functionLinenumberEnd: 3442
    functionName: libcrux_sha3_portable_keccakx1_e4
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - memcpy
    - libcrux_sha3_generic_keccak_keccak_06
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_keccakx1_e4(\n    Eurydice_slice
      data[1U], Eurydice_slice out[1U])"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Impl_Poly1305_Field32xN_256_load_acc4
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:46,1
    - Dst: KRML_PRE_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:52,1
    - Dst: KRML_POST_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:53,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:54,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:56,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:58,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:60,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:62,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:64,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:66,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:68,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:70,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:72,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:74,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:75,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:77,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:78,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:79,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:81,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:82,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:84,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:96,1
    - Dst: Lib_IntVector_Intrinsics_vec256_or
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:98,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:115,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:116,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:117,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:118,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:119,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:122,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:123,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:126,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:127,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:130,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:131,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:134,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:135,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:138,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:139,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:142,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:143,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:146,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:147,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:150,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:151,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:154,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:155,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:158,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:159,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:162,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:163,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:166,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:167,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:170,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:171,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:174,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:175,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:178,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:179,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:182,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:183,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:186,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:187,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:190,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:191,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:194,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:195,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:198,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:199,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:206,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:208,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:210,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:211,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:212,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:213,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:214,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:216,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:218,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_left64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:220,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:221,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:222,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:223,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:224,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:225,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:227,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:229,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:230,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:231,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:232,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:233,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:235,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:236,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:237,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:258,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:259,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:260,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:261,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:262,1
    - Dst: Hacl_Impl_Poly1305_Field32xN_256_fmul_r4_normalize
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:269,1
    - Dst: KRML_PRE_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:277,1
    - Dst: KRML_POST_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:278,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:279,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:281,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:283,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:284,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:287,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:288,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:291,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:291,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:293,1
    - Dst: Lib_IntVector_Intrinsics_vec256_or
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:296,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:296,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_left64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:298,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:298,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:299,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:303,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:303,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:305,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:307,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:319,1
    - Dst: Lib_IntVector_Intrinsics_vec256_or
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:321,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:343,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:344,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:345,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:346,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:347,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:348,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:349,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:350,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:351,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:352,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:355,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:356,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:359,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:360,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:363,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:364,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:367,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:368,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:371,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:372,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:375,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:376,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:379,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:380,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:383,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:384,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:387,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:388,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:391,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:392,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:395,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:396,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:399,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:400,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:403,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:404,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:407,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:408,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:411,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:412,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:415,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:416,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:419,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:420,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:423,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:424,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:427,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:428,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:431,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:432,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:439,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:441,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:443,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:444,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:445,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:446,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:447,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:449,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:451,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_left64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:453,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:454,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:455,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:456,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:457,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:458,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:460,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:462,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:463,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:464,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:465,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:466,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:468,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:469,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:470,1
    - Dst: KRML_PRE_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:484,1
    - Dst: KRML_POST_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:485,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:487,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:488,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:490,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:492,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:493,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:496,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:497,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:500,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:500,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:502,1
    - Dst: Lib_IntVector_Intrinsics_vec256_or
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:505,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:505,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_left64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:507,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:507,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:508,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:512,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:512,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:514,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:516,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:528,1
    - Dst: Lib_IntVector_Intrinsics_vec256_or
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:530,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:552,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:553,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:554,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:555,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:556,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:557,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:558,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:559,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:560,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:561,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:564,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:565,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:568,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:569,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:572,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:573,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:576,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:577,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:580,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:581,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:584,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:585,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:588,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:589,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:592,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:593,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:596,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:597,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:600,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:601,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:604,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:605,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:608,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:609,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:612,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:613,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:616,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:617,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:620,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:621,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:624,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:625,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:628,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:629,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:632,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:633,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:636,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:637,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:640,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:641,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:648,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:650,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:652,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:653,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:654,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:655,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:656,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:658,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:660,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_left64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:662,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:663,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:664,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:665,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:666,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:667,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:669,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:671,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:672,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:673,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:674,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:675,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:677,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:678,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:679,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:692,1
    - Dst: KRML_PRE_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:696,1
    - Dst: KRML_POST_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:697,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:698,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:700,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:702,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:703,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:706,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:707,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:710,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:710,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:712,1
    - Dst: Lib_IntVector_Intrinsics_vec256_or
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:715,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:715,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_left64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:717,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:717,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:718,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:722,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:722,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:724,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:726,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:738,1
    - Dst: Lib_IntVector_Intrinsics_vec256_or
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:740,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:762,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:763,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:764,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:765,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:766,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:767,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:768,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:769,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:770,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:771,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:774,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:775,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:778,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:779,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:782,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:783,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:786,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:787,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:790,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:791,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:794,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:795,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:798,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:799,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:802,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:803,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:806,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:807,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:810,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:811,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:814,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:815,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:818,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:819,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:822,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:823,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:826,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:827,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:830,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:831,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:834,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:835,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:838,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:839,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:842,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:843,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:846,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:847,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:850,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:851,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:858,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:860,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:862,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:863,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:864,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:865,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:866,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:868,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:870,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_left64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:872,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:873,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:874,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:875,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:876,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:877,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:879,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:881,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:882,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:883,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:884,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:885,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:887,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:888,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:889,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 73
    argCount: 3
    argNames:
    - ctx
    - len
    - text
    argTypes:
    - Lib_IntVector_Intrinsics_vec256*
    - uint32_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 902
    functionName: poly1305_padded_256
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c
    functionUses: 0
    functionsReached:
    - Lib_IntVector_Intrinsics_vec256_add64
    - Hacl_Impl_Poly1305_Field32xN_256_load_acc4
    - Lib_IntVector_Intrinsics_vec256_mul64
    - memcpy
    - Lib_IntVector_Intrinsics_vec256_interleave_low128
    - Lib_IntVector_Intrinsics_vec256_shift_right
    - Lib_IntVector_Intrinsics_vec256_or
    - Lib_IntVector_Intrinsics_vec256_load64_le
    - KRML_PRE_ALIGN
    - Lib_IntVector_Intrinsics_vec256_and
    - Lib_IntVector_Intrinsics_vec256_interleave_high64
    - Lib_IntVector_Intrinsics_vec256_shift_left64
    - Lib_IntVector_Intrinsics_vec256_load64
    - Lib_IntVector_Intrinsics_vec256_interleave_high128
    - Lib_IntVector_Intrinsics_vec256_interleave_low64
    - KRML_POST_ALIGN
    - load64_le
    - Lib_IntVector_Intrinsics_vec256_shift_right64
    - Hacl_Impl_Poly1305_Field32xN_256_fmul_r4_normalize
    linkageType: ''
    returnType: void
    signature: void poly1305_padded_256(Lib_IntVector_Intrinsics_vec256 *ctx, uint32_t
      len, uint8_t *text)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: KRML_PRE_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:913,1
    - Dst: KRML_POST_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:914,1
    - Dst: Hacl_Poly1305_256_poly1305_init
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:916,1
    - Dst: poly1305_padded_256
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:918,1
    - Dst: poly1305_padded_256
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:921,1
    - Dst: store64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:923,1
    - Dst: store64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:924,1
    - Dst: KRML_PRE_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:927,1
    - Dst: KRML_POST_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:928,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:929,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:931,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:933,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:934,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:937,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:938,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:941,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:941,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:943,1
    - Dst: Lib_IntVector_Intrinsics_vec256_or
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:946,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:946,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_left64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:948,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:948,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:949,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:953,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:953,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:955,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:957,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:969,1
    - Dst: Lib_IntVector_Intrinsics_vec256_or
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:971,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:993,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:994,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:995,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:996,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:997,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:998,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:999,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1000,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1001,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1002,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1005,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1006,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1009,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1010,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1013,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1014,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1017,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1018,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1021,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1022,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1025,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1026,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1029,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1030,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1033,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1034,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1037,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1038,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1041,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1042,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1045,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1046,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1049,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1050,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1053,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1054,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1057,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1058,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1061,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1062,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1065,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1066,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1069,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1070,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1073,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1074,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1077,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1078,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1081,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1082,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1089,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1091,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1093,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1094,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1095,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1096,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1097,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1099,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1101,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_left64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1103,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1104,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1105,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1106,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1107,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1108,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1110,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1112,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1113,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1114,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1115,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1116,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1118,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1119,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1120,1
    - Dst: Hacl_Poly1305_256_poly1305_finish
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 6
    argNames:
    - k
    - aadlen
    - aad
    - mlen
    - m
    - out
    argTypes:
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1132
      start: 904
    functionDepth: 2
    functionLinenumber: 904
    functionLinenumberEnd: 1132
    functionName: poly1305_do_256
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c
    functionUses: 0
    functionsReached:
    - KRML_PRE_ALIGN
    - Lib_IntVector_Intrinsics_vec256_and
    - poly1305_padded_256
    - Hacl_Poly1305_256_poly1305_init
    - Lib_IntVector_Intrinsics_vec256_add64
    - Lib_IntVector_Intrinsics_vec256_shift_left64
    - Lib_IntVector_Intrinsics_vec256_load64
    - store64_le
    - Lib_IntVector_Intrinsics_vec256_mul64
    - Lib_IntVector_Intrinsics_vec256_or
    - Hacl_Poly1305_256_poly1305_finish
    - Lib_IntVector_Intrinsics_vec256_shift_right64
    - KRML_POST_ALIGN
    - load64_le
    linkageType: ''
    returnType: void
    signature: "void poly1305_do_256(\n    uint8_t *k,\n    uint32_t aadlen,\n    uint8_t
      *aad,\n    uint32_t mlen,\n    uint8_t *m,\n    uint8_t *out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Chacha20_Vec256_chacha20_encrypt_256
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1161,1
    - Dst: Hacl_Chacha20_Vec256_chacha20_encrypt_256
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1163,1
    - Dst: poly1305_do_256
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 8
    argNames:
    - k
    - n
    - aadlen
    - aad
    - mlen
    - m
    - cipher
    - mac
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1150
    functionDepth: 3
    functionLinenumber: 1150
    functionLinenumberEnd: 1166
    functionName: Hacl_Chacha20Poly1305_256_aead_encrypt
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c
    functionUses: 2
    functionsReached:
    - poly1305_do_256
    - Hacl_Chacha20_Vec256_chacha20_encrypt_256
    linkageType: ''
    returnType: void
    signature: "void Hacl_Chacha20Poly1305_256_aead_encrypt(\n    uint8_t *k,\n    uint8_t
      *n,\n    uint32_t aadlen,\n    uint8_t *aad,\n    uint32_t mlen,\n    uint8_t
      *m,\n    uint8_t *cipher,\n    uint8_t *mac)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Chacha20_Vec256_chacha20_encrypt_256
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1202,1
    - Dst: poly1305_do_256
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1204,1
    - Dst: KRML_MAYBE_FOR16
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1206,1
    - Dst: FStar_UInt8_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1210,1
    - Dst: Hacl_Chacha20_Vec256_chacha20_encrypt_256
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c:1214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 8
    argNames:
    - k
    - n
    - aadlen
    - aad
    - mlen
    - m
    - cipher
    - mac
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1218
      start: 1189
    functionDepth: 3
    functionLinenumber: 1189
    functionLinenumberEnd: 1218
    functionName: Hacl_Chacha20Poly1305_256_aead_decrypt
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_256.c
    functionUses: 2
    functionsReached:
    - poly1305_do_256
    - FStar_UInt8_eq_mask
    - KRML_MAYBE_FOR16
    - Hacl_Chacha20_Vec256_chacha20_encrypt_256
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t Hacl_Chacha20Poly1305_256_aead_decrypt(\n    uint8_t *k,\n
      \   uint8_t *n,\n    uint32_t aadlen,\n    uint8_t *aad,\n    uint32_t mlen,\n
      \   uint8_t *m,\n    uint8_t *cipher,\n    uint8_t *mac)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccakx1_e4
      Src: /src/nss/lib/freebl/verified/libcrux_sha3.h:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - digest
    - data
    argTypes:
    - Eurydice_slice
    - Eurydice_slice
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 28
    functionDepth: 8
    functionLinenumber: 28
    functionLinenumberEnd: 35
    functionName: libcrux_sha3_portable_sha512
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccakx1_e4
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_sha512(Eurydice_slice digest,\n
      \                            Eurydice_slice data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccakx1_e40
      Src: /src/nss/lib/freebl/verified/libcrux_sha3.h:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - digest
    - data
    argTypes:
    - Eurydice_slice
    - Eurydice_slice
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 40
    functionDepth: 8
    functionLinenumber: 40
    functionLinenumberEnd: 47
    functionName: libcrux_sha3_portable_sha256
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccakx1_e40
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_sha256(Eurydice_slice digest,\n
      \                            Eurydice_slice data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccakx1_e41
      Src: /src/nss/lib/freebl/verified/libcrux_sha3.h:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - digest
    - data
    argTypes:
    - Eurydice_slice
    - Eurydice_slice
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 52
    functionDepth: 8
    functionLinenumber: 52
    functionLinenumberEnd: 59
    functionName: libcrux_sha3_portable_shake256
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccakx1_e41
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_shake256(\n    Eurydice_slice
      digest, Eurydice_slice data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccakx1_e42
      Src: /src/nss/lib/freebl/verified/libcrux_sha3.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - digest
    - data
    argTypes:
    - Eurydice_slice
    - Eurydice_slice
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 64
    functionDepth: 8
    functionLinenumber: 64
    functionLinenumberEnd: 71
    functionName: libcrux_sha3_portable_sha224
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccakx1_e42
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_sha224(Eurydice_slice digest,\n
      \                            Eurydice_slice data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccakx1_e43
      Src: /src/nss/lib/freebl/verified/libcrux_sha3.h:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - digest
    - data
    argTypes:
    - Eurydice_slice
    - Eurydice_slice
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 76
    functionDepth: 8
    functionLinenumber: 76
    functionLinenumberEnd: 83
    functionName: libcrux_sha3_portable_sha384
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccakx1_e43
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_sha384(Eurydice_slice digest,\n
      \                            Eurydice_slice data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_sha224
      Src: /src/nss/lib/freebl/verified/libcrux_sha3.h:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - digest
    - payload
    argTypes:
    - Eurydice_slice
    - Eurydice_slice
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 91
    functionDepth: 9
    functionLinenumber: 91
    functionLinenumberEnd: 96
    functionName: libcrux_sha3_sha224_ema
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_sha224
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_sha224_ema(Eurydice_slice digest,\n                        Eurydice_slice
      payload)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_sha224_ema
      Src: /src/nss/lib/freebl/verified/libcrux_sha3.h:106,1
    - Dst: Eurydice_array_to_slice
      Src: /src/nss/lib/freebl/verified/libcrux_sha3.h:106,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3.h:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - ret
    argTypes:
    - Eurydice_slice
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 101
    functionDepth: 10
    functionLinenumber: 101
    functionLinenumberEnd: 109
    functionName: libcrux_sha3_sha224
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3.h
    functionUses: 0
    functionsReached:
    - Eurydice_array_to_slice
    - memcpy
    - libcrux_sha3_sha224_ema
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_sha224(Eurydice_slice data,\n                    uint8_t
      ret[28U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_sha256
      Src: /src/nss/lib/freebl/verified/libcrux_sha3.h:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - digest
    - payload
    argTypes:
    - Eurydice_slice
    - Eurydice_slice
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 114
    functionDepth: 9
    functionLinenumber: 114
    functionLinenumberEnd: 119
    functionName: libcrux_sha3_sha256_ema
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_sha256
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_sha256_ema(Eurydice_slice digest,\n                        Eurydice_slice
      payload)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_sha256_ema
      Src: /src/nss/lib/freebl/verified/libcrux_sha3.h:129,1
    - Dst: Eurydice_array_to_slice
      Src: /src/nss/lib/freebl/verified/libcrux_sha3.h:129,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3.h:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - ret
    argTypes:
    - Eurydice_slice
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 124
    functionDepth: 10
    functionLinenumber: 124
    functionLinenumberEnd: 132
    functionName: libcrux_sha3_sha256
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_sha256_ema
    - memcpy
    - Eurydice_array_to_slice
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_sha256(Eurydice_slice data,\n                    uint8_t
      ret[32U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_sha384
      Src: /src/nss/lib/freebl/verified/libcrux_sha3.h:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - digest
    - payload
    argTypes:
    - Eurydice_slice
    - Eurydice_slice
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 9
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: libcrux_sha3_sha384_ema
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_sha384
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_sha384_ema(Eurydice_slice digest,\n                        Eurydice_slice
      payload)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_sha384_ema
      Src: /src/nss/lib/freebl/verified/libcrux_sha3.h:152,1
    - Dst: Eurydice_array_to_slice
      Src: /src/nss/lib/freebl/verified/libcrux_sha3.h:152,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3.h:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - ret
    argTypes:
    - Eurydice_slice
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 147
    functionDepth: 10
    functionLinenumber: 147
    functionLinenumberEnd: 155
    functionName: libcrux_sha3_sha384
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3.h
    functionUses: 0
    functionsReached:
    - Eurydice_array_to_slice
    - memcpy
    - libcrux_sha3_sha384_ema
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_sha384(Eurydice_slice data,\n                    uint8_t
      ret[48U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_sha512
      Src: /src/nss/lib/freebl/verified/libcrux_sha3.h:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - digest
    - payload
    argTypes:
    - Eurydice_slice
    - Eurydice_slice
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 160
    functionDepth: 9
    functionLinenumber: 160
    functionLinenumberEnd: 165
    functionName: libcrux_sha3_sha512_ema
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_sha512
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_sha512_ema(Eurydice_slice digest,\n                        Eurydice_slice
      payload)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_sha512_ema
      Src: /src/nss/lib/freebl/verified/libcrux_sha3.h:175,1
    - Dst: Eurydice_array_to_slice
      Src: /src/nss/lib/freebl/verified/libcrux_sha3.h:175,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_sha3.h:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - ret
    argTypes:
    - Eurydice_slice
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 170
    functionDepth: 10
    functionLinenumber: 170
    functionLinenumberEnd: 178
    functionName: libcrux_sha3_sha512
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3.h
    functionUses: 0
    functionsReached:
    - Eurydice_array_to_slice
    - memcpy
    - libcrux_sha3_sha512_ema
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_sha512(Eurydice_slice data,\n                    uint8_t
      ret[64U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccakx1_e44
      Src: /src/nss/lib/freebl/verified/libcrux_sha3.h:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - digest
    - data
    argTypes:
    - Eurydice_slice
    - Eurydice_slice
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 183
    functionDepth: 8
    functionLinenumber: 183
    functionLinenumberEnd: 190
    functionName: libcrux_sha3_portable_shake128
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccakx1_e44
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_shake128(\n    Eurydice_slice
      digest, Eurydice_slice data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_shake128
      Src: /src/nss/lib/freebl/verified/libcrux_sha3.h:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out
    - data
    argTypes:
    - Eurydice_slice
    - Eurydice_slice
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 197
    functionDepth: 9
    functionLinenumber: 197
    functionLinenumberEnd: 202
    functionName: libcrux_sha3_shake128_ema
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_shake128
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_shake128_ema(Eurydice_slice out,\n                          Eurydice_slice
      data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_shake256
      Src: /src/nss/lib/freebl/verified/libcrux_sha3.h:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out
    - data
    argTypes:
    - Eurydice_slice
    - Eurydice_slice
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 209
    functionDepth: 9
    functionLinenumber: 209
    functionLinenumberEnd: 214
    functionName: libcrux_sha3_shake256_ema
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_sha3.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_shake256
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_shake256_ema(Eurydice_slice out,\n                          Eurydice_slice
      data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: Lib_IntVector_Intrinsics_bit_mask64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_bit_mask64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: Lib_IntVector_Intrinsics_ni_aes_enc
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_ni_aes_enc(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: Lib_IntVector_Intrinsics_ni_aes_enc_last
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_ni_aes_enc_last(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: Lib_IntVector_Intrinsics_ni_aes_keygen_assist
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_ni_aes_keygen_assist(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x0
    - ','
    - x1
    - ','
    - x2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: Lib_IntVector_Intrinsics_ni_clmul
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_ni_clmul(x0, x1, x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: Lib_IntVector_Intrinsics_vec128_xor
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_xor(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: Lib_IntVector_Intrinsics_vec128_eq64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_eq64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: Lib_IntVector_Intrinsics_vec128_eq32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_eq32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: Lib_IntVector_Intrinsics_vec128_gt64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_gt64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: Lib_IntVector_Intrinsics_vec128_gt32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_gt32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: Lib_IntVector_Intrinsics_vec128_or
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_or(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: Lib_IntVector_Intrinsics_vec128_and
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_and(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: Lib_IntVector_Intrinsics_vec128_lognot
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_lognot(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: Lib_IntVector_Intrinsics_vec128_shift_left
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_shift_left(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: Lib_IntVector_Intrinsics_vec128_shift_right
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_shift_right(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: Lib_IntVector_Intrinsics_vec128_shift_left64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_shift_left64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: Lib_IntVector_Intrinsics_vec128_shift_right64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_shift_right64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: Lib_IntVector_Intrinsics_vec128_shift_left32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_shift_left32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 85
    functionName: Lib_IntVector_Intrinsics_vec128_shift_right32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_shift_right32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: Lib_IntVector_Intrinsics_vec128_rotate_left32_8
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_rotate_left32_8(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 91
    functionName: Lib_IntVector_Intrinsics_vec128_rotate_left32_16
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_rotate_left32_16(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 94
    functionName: Lib_IntVector_Intrinsics_vec128_rotate_left32_24
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_rotate_left32_24(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 97
    functionName: Lib_IntVector_Intrinsics_vec128_rotate_left32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_rotate_left32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: Lib_IntVector_Intrinsics_vec128_rotate_right32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_rotate_right32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - x0
    - ','
    - x1
    - ','
    - x2
    - ','
    - x3
    - ','
    - x4
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 103
    functionName: Lib_IntVector_Intrinsics_vec128_shuffle32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_shuffle32(x0, x1, x2, x3, x4)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x0
    - ','
    - x1
    - ','
    - x2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 106
    functionName: Lib_IntVector_Intrinsics_vec128_shuffle64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_shuffle64(x0, x1, x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 109
    functionName: Lib_IntVector_Intrinsics_vec128_rotate_right_lanes32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_rotate_right_lanes32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: Lib_IntVector_Intrinsics_vec128_rotate_right_lanes64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_rotate_right_lanes64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 115
    functionName: Lib_IntVector_Intrinsics_vec128_load32_le
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_load32_le(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 118
    functionName: Lib_IntVector_Intrinsics_vec128_load64_le
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_load64_le(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 121
    functionName: Lib_IntVector_Intrinsics_vec128_store32_le
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_store32_le(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 124
    functionName: Lib_IntVector_Intrinsics_vec128_store64_le
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_store64_le(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: Lib_IntVector_Intrinsics_vec128_load_be
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_load_be(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 130
    functionName: Lib_IntVector_Intrinsics_vec128_load32_be
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_load32_be(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 133
    functionName: Lib_IntVector_Intrinsics_vec128_load64_be
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_load64_be(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 136
    functionName: Lib_IntVector_Intrinsics_vec128_store_be
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_store_be(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 139
    functionName: Lib_IntVector_Intrinsics_vec128_store32_be
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_store32_be(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 142
    functionName: Lib_IntVector_Intrinsics_vec128_store64_be
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_store64_be(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x0
    - ','
    - x1
    - ','
    - x2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 145
    functionName: Lib_IntVector_Intrinsics_vec128_insert8
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_insert8(x0, x1, x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x0
    - ','
    - x1
    - ','
    - x2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 148
    functionName: Lib_IntVector_Intrinsics_vec128_insert32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_insert32(x0, x1, x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x0
    - ','
    - x1
    - ','
    - x2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 151
    functionName: Lib_IntVector_Intrinsics_vec128_insert64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_insert64(x0, x1, x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 154
    functionName: Lib_IntVector_Intrinsics_vec128_extract8
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_extract8(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 157
    functionName: Lib_IntVector_Intrinsics_vec128_extract32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_extract32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 160
    functionName: Lib_IntVector_Intrinsics_vec128_extract64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_extract64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 166
    functionName: Lib_IntVector_Intrinsics_vec128_add64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_add64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 169
    functionName: Lib_IntVector_Intrinsics_vec128_sub64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_sub64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 172
    functionName: Lib_IntVector_Intrinsics_vec128_mul64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_mul64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 175
    functionName: Lib_IntVector_Intrinsics_vec128_smul64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_smul64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 178
    functionName: Lib_IntVector_Intrinsics_vec128_add32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_add32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 181
    functionName: Lib_IntVector_Intrinsics_vec128_sub32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_sub32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 184
    functionName: Lib_IntVector_Intrinsics_vec128_mul32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_mul32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 187
    functionName: Lib_IntVector_Intrinsics_vec128_smul32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_smul32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 190
    functionName: Lib_IntVector_Intrinsics_vec128_load128
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_load128(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 193
    functionName: Lib_IntVector_Intrinsics_vec128_load64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_load64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 196
    functionName: Lib_IntVector_Intrinsics_vec128_load64s
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_load64s(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 199
    functionName: Lib_IntVector_Intrinsics_vec128_load32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_load32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x0
    - ','
    - x1
    - ','
    - x2
    - ','
    - x3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 202
    functionName: Lib_IntVector_Intrinsics_vec128_load32s
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_load32s(x0, x1, x2, x3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x1
    - ','
    - x2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 205
    functionName: Lib_IntVector_Intrinsics_vec128_interleave_low32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_interleave_low32(x1, x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x1
    - ','
    - x2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 208
    functionName: Lib_IntVector_Intrinsics_vec128_interleave_high32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_interleave_high32(x1, x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x1
    - ','
    - x2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 211
    functionName: Lib_IntVector_Intrinsics_vec128_interleave_low64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_interleave_low64(x1, x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x1
    - ','
    - x2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 214
    functionName: Lib_IntVector_Intrinsics_vec128_interleave_high64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_interleave_high64(x1, x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 225
    functionName: Lib_IntVector_Intrinsics_vec256_eq64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_eq64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 228
    functionName: Lib_IntVector_Intrinsics_vec256_eq32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_eq32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 231
    functionName: Lib_IntVector_Intrinsics_vec256_gt64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_gt64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 234
    functionName: Lib_IntVector_Intrinsics_vec256_gt32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_gt32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 237
    functionName: Lib_IntVector_Intrinsics_vec256_xor
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_xor(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 240
    functionName: Lib_IntVector_Intrinsics_vec256_or
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_or(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 243
    functionName: Lib_IntVector_Intrinsics_vec256_and
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_and(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 246
    functionName: Lib_IntVector_Intrinsics_vec256_lognot
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_lognot(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 249
    functionName: Lib_IntVector_Intrinsics_vec256_shift_left
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_shift_left(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 252
    functionName: Lib_IntVector_Intrinsics_vec256_shift_right
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_shift_right(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 255
    functionName: Lib_IntVector_Intrinsics_vec256_shift_left64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_shift_left64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 258
    functionName: Lib_IntVector_Intrinsics_vec256_shift_right64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_shift_right64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 261
    functionName: Lib_IntVector_Intrinsics_vec256_shift_left32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_shift_left32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 264
    functionName: Lib_IntVector_Intrinsics_vec256_shift_right32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_shift_right32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 267
    functionName: Lib_IntVector_Intrinsics_vec256_rotate_left32_8
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_rotate_left32_8(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 270
    functionName: Lib_IntVector_Intrinsics_vec256_rotate_left32_16
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_rotate_left32_16(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 273
    functionName: Lib_IntVector_Intrinsics_vec256_rotate_left32_24
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_rotate_left32_24(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 276
    functionName: Lib_IntVector_Intrinsics_vec256_rotate_left32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_rotate_left32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 279
    functionName: Lib_IntVector_Intrinsics_vec256_rotate_right32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_rotate_right32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 282
    functionName: Lib_IntVector_Intrinsics_vec256_rotate_right64_8
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_rotate_right64_8(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 285
    functionName: Lib_IntVector_Intrinsics_vec256_rotate_right64_16
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_rotate_right64_16(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 288
    functionName: Lib_IntVector_Intrinsics_vec256_rotate_right64_24
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_rotate_right64_24(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 291
    functionName: Lib_IntVector_Intrinsics_vec256_rotate_right64_32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_rotate_right64_32(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 294
    functionName: Lib_IntVector_Intrinsics_vec256_rotate_right64_40
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_rotate_right64_40(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 297
    functionName: Lib_IntVector_Intrinsics_vec256_rotate_right64_48
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_rotate_right64_48(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 300
    functionName: Lib_IntVector_Intrinsics_vec256_rotate_right64_56
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_rotate_right64_56(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 303
    functionName: Lib_IntVector_Intrinsics_vec256_rotate_right64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_rotate_right64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 306
    functionName: Lib_IntVector_Intrinsics_vec256_rotate_left64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_rotate_left64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - x0
    - ','
    - x1
    - ','
    - x2
    - ','
    - x3
    - ','
    - x4
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 309
    functionName: Lib_IntVector_Intrinsics_vec256_shuffle64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_shuffle64(x0, x1, x2, x3, x4)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - x0
    - ','
    - x1
    - ','
    - x2
    - ','
    - x3
    - ','
    - x4
    - ','
    - x5
    - ','
    - x6
    - ','
    - x7
    - ','
    - x8
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 312
    functionName: Lib_IntVector_Intrinsics_vec256_shuffle32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_shuffle32(x0, x1, x2, x3, x4, x5, x6,
      x7, x8)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 315
    functionName: Lib_IntVector_Intrinsics_vec256_rotate_right_lanes32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_rotate_right_lanes32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 318
    functionName: Lib_IntVector_Intrinsics_vec256_rotate_right_lanes64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_rotate_right_lanes64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 321
    functionName: Lib_IntVector_Intrinsics_vec256_load32_le
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_load32_le(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 324
    functionName: Lib_IntVector_Intrinsics_vec256_load64_le
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_load64_le(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 327
    functionName: Lib_IntVector_Intrinsics_vec256_load32_be
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_load32_be(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 330
    functionName: Lib_IntVector_Intrinsics_vec256_load64_be
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_load64_be(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 333
    functionName: Lib_IntVector_Intrinsics_vec256_store32_le
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_store32_le(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 336
    functionName: Lib_IntVector_Intrinsics_vec256_store64_le
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_store64_le(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 339
    functionName: Lib_IntVector_Intrinsics_vec256_store32_be
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_store32_be(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 342
    functionName: Lib_IntVector_Intrinsics_vec256_store64_be
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_store64_be(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x0
    - ','
    - x1
    - ','
    - x2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 345
    functionName: Lib_IntVector_Intrinsics_vec256_insert8
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_insert8(x0, x1, x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x0
    - ','
    - x1
    - ','
    - x2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 348
    functionName: Lib_IntVector_Intrinsics_vec256_insert32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_insert32(x0, x1, x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x0
    - ','
    - x1
    - ','
    - x2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 351
    functionName: Lib_IntVector_Intrinsics_vec256_insert64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_insert64(x0, x1, x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 354
    functionName: Lib_IntVector_Intrinsics_vec256_extract8
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_extract8(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 357
    functionName: Lib_IntVector_Intrinsics_vec256_extract32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_extract32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 360
    functionName: Lib_IntVector_Intrinsics_vec256_extract64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_extract64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 366
    functionName: Lib_IntVector_Intrinsics_vec256_add64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_add64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 369
    functionName: Lib_IntVector_Intrinsics_vec256_sub64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_sub64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 372
    functionName: Lib_IntVector_Intrinsics_vec256_mul64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_mul64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 375
    functionName: Lib_IntVector_Intrinsics_vec256_smul64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_smul64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 378
    functionName: Lib_IntVector_Intrinsics_vec256_add32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_add32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 381
    functionName: Lib_IntVector_Intrinsics_vec256_sub32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_sub32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 384
    functionName: Lib_IntVector_Intrinsics_vec256_mul32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_mul32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 387
    functionName: Lib_IntVector_Intrinsics_vec256_smul32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_smul32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 390
    functionName: Lib_IntVector_Intrinsics_vec256_load64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_load64(x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x0
    - ','
    - x1
    - ','
    - x2
    - ','
    - x3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 393
    functionName: Lib_IntVector_Intrinsics_vec256_load64s
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_load64s(x0, x1, x2, x3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 396
    functionName: Lib_IntVector_Intrinsics_vec256_load32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_load32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - x0
    - ','
    - x1
    - ','
    - x2
    - ','
    - x3
    - ','
    - x4
    - ','
    - x5
    - ','
    - x6
    - ','
    - x7
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 399
    functionName: Lib_IntVector_Intrinsics_vec256_load32s
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_load32s(x0, x1, x2, x3, x4, x5, x6,
      x7)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 402
    functionName: Lib_IntVector_Intrinsics_vec256_load128
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_load128(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 405
    functionName: Lib_IntVector_Intrinsics_vec256_load128s
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_load128s(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x1
    - ','
    - x2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 408
    functionName: Lib_IntVector_Intrinsics_vec256_interleave_low32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_interleave_low32(x1, x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x1
    - ','
    - x2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 411
    functionName: Lib_IntVector_Intrinsics_vec256_interleave_high32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_interleave_high32(x1, x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x1
    - ','
    - x2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 414
    functionName: Lib_IntVector_Intrinsics_vec256_interleave_low64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_interleave_low64(x1, x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x1
    - ','
    - x2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 417
    functionName: Lib_IntVector_Intrinsics_vec256_interleave_high64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_interleave_high64(x1, x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x1
    - ','
    - x2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 420
    functionName: Lib_IntVector_Intrinsics_vec256_interleave_low128
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_interleave_low128(x1, x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x1
    - ','
    - x2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 423
    functionName: Lib_IntVector_Intrinsics_vec256_interleave_high128
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec256_interleave_high128(x1, x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 436
    functionName: Lib_IntVector_Intrinsics_vec128_xor
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_xor(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 439
    functionName: Lib_IntVector_Intrinsics_vec128_eq64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_eq64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 442
    functionName: Lib_IntVector_Intrinsics_vec128_eq32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_eq32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 445
    functionName: Lib_IntVector_Intrinsics_vec128_gt32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_gt32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 448
    functionName: high32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: high32(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 451
    functionName: low32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: low32(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 454
    functionName: Lib_IntVector_Intrinsics_vec128_gt64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_gt64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 457
    functionName: Lib_IntVector_Intrinsics_vec128_or
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_or(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 460
    functionName: Lib_IntVector_Intrinsics_vec128_and
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_and(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 463
    functionName: Lib_IntVector_Intrinsics_vec128_lognot
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_lognot(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 466
    functionName: Lib_IntVector_Intrinsics_vec128_shift_left
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_shift_left(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 469
    functionName: Lib_IntVector_Intrinsics_vec128_shift_right
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_shift_right(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 472
    functionName: Lib_IntVector_Intrinsics_vec128_shift_left64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_shift_left64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 475
    functionName: Lib_IntVector_Intrinsics_vec128_shift_right64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_shift_right64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 478
    functionName: Lib_IntVector_Intrinsics_vec128_shift_left32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_shift_left32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 481
    functionName: Lib_IntVector_Intrinsics_vec128_shift_right32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_shift_right32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 484
    functionName: Lib_IntVector_Intrinsics_vec128_rotate_left32_16
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_rotate_left32_16(x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 487
    functionName: Lib_IntVector_Intrinsics_vec128_rotate_left32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_rotate_left32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 490
    functionName: Lib_IntVector_Intrinsics_vec128_rotate_right32_16
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_rotate_right32_16(x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 493
    functionName: Lib_IntVector_Intrinsics_vec128_rotate_right32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_rotate_right32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 496
    functionName: Lib_IntVector_Intrinsics_vec128_rotate_right_lanes32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_rotate_right_lanes32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 499
    functionName: Lib_IntVector_Intrinsics_vec128_rotate_right_lanes64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_rotate_right_lanes64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 510
    functionName: Lib_IntVector_Intrinsics_vec128_load32_le
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_load32_le(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 513
    functionName: Lib_IntVector_Intrinsics_vec128_load64_le
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_load64_le(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 516
    functionName: Lib_IntVector_Intrinsics_vec128_store32_le
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_store32_le(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 519
    functionName: Lib_IntVector_Intrinsics_vec128_store64_le
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_store64_le(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 528
    functionName: Lib_IntVector_Intrinsics_vec128_load32_be
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_load32_be(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 531
    functionName: Lib_IntVector_Intrinsics_vec128_load64_be
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_load64_be(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 537
    functionDepth: 0
    functionLinenumber: 537
    functionLinenumberEnd: 539
    functionName: Lib_IntVector_Intrinsics_vec128_store32_be
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_store32_be(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 542
    functionName: Lib_IntVector_Intrinsics_vec128_store64_be
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_store64_be(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x0
    - ','
    - x1
    - ','
    - x2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 545
    functionName: Lib_IntVector_Intrinsics_vec128_insert8
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_insert8(x0, x1, x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x0
    - ','
    - x1
    - ','
    - x2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 548
    functionName: Lib_IntVector_Intrinsics_vec128_insert32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_insert32(x0, x1, x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x0
    - ','
    - x1
    - ','
    - x2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 551
    functionName: Lib_IntVector_Intrinsics_vec128_insert64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_insert64(x0, x1, x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 554
    functionName: Lib_IntVector_Intrinsics_vec128_extract8
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_extract8(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 557
    functionName: Lib_IntVector_Intrinsics_vec128_extract32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_extract32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 560
    functionName: Lib_IntVector_Intrinsics_vec128_extract64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_extract64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 566
    functionName: Lib_IntVector_Intrinsics_vec128_add64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_add64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 569
    functionName: Lib_IntVector_Intrinsics_vec128_sub64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_sub64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 572
    functionName: Lib_IntVector_Intrinsics_vec128_mul64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_mul64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 573
    functionDepth: 0
    functionLinenumber: 573
    functionLinenumberEnd: 575
    functionName: Lib_IntVector_Intrinsics_vec128_smul64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_smul64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 576
    functionDepth: 0
    functionLinenumber: 576
    functionLinenumberEnd: 578
    functionName: Lib_IntVector_Intrinsics_vec128_add32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_add32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 579
    functionDepth: 0
    functionLinenumber: 579
    functionLinenumberEnd: 581
    functionName: Lib_IntVector_Intrinsics_vec128_sub32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_sub32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 582
    functionDepth: 0
    functionLinenumber: 582
    functionLinenumberEnd: 584
    functionName: Lib_IntVector_Intrinsics_vec128_mul32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_mul32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 585
    functionDepth: 0
    functionLinenumber: 585
    functionLinenumberEnd: 587
    functionName: Lib_IntVector_Intrinsics_vec128_smul32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_smul32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 590
    functionName: Lib_IntVector_Intrinsics_vec128_load128
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_load128(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 593
    functionName: Lib_IntVector_Intrinsics_vec128_load64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_load64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 594
    functionDepth: 0
    functionLinenumber: 594
    functionLinenumberEnd: 596
    functionName: Lib_IntVector_Intrinsics_vec128_load32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_load32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vreinterpretq_u32_u64
      Src: /src/nss/lib/freebl/verified/libintvector.h:601,1
    - Dst: vld1q_u64
      Src: /src/nss/lib/freebl/verified/libintvector.h:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x1
    - x2
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 602
    functionName: Lib_IntVector_Intrinsics_vec128_load64s
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached:
    - vreinterpretq_u32_u64
    - vld1q_u64
    linkageType: ''
    returnType: Lib_IntVector_Intrinsics_vec128
    signature: Lib_IntVector_Intrinsics_vec128 Lib_IntVector_Intrinsics_vec128_load64s(uint64_t
      x1, uint64_t x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vld1q_u32
      Src: /src/nss/lib/freebl/verified/libintvector.h:608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - x1
    - x2
    - x3
    - x4
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 609
    functionName: Lib_IntVector_Intrinsics_vec128_load32s
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 1
    functionsReached:
    - vld1q_u32
    linkageType: ''
    returnType: Lib_IntVector_Intrinsics_vec128
    signature: Lib_IntVector_Intrinsics_vec128 Lib_IntVector_Intrinsics_vec128_load32s(uint32_t
      x1, uint32_t x2, uint32_t x3, uint32_t x4)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x1
    - ','
    - x2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 611
    functionDepth: 0
    functionLinenumber: 611
    functionLinenumberEnd: 613
    functionName: Lib_IntVector_Intrinsics_vec128_interleave_low32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_interleave_low32(x1, x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x1
    - ','
    - x2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 614
    functionDepth: 0
    functionLinenumber: 614
    functionLinenumberEnd: 616
    functionName: Lib_IntVector_Intrinsics_vec128_interleave_high32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_interleave_high32(x1, x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x1
    - ','
    - x2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 619
    functionName: Lib_IntVector_Intrinsics_vec128_interleave_low64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_interleave_low64(x1, x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x1
    - ','
    - x2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 622
    functionName: Lib_IntVector_Intrinsics_vec128_interleave_high64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_interleave_high64(x1, x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 644
    functionDepth: 0
    functionLinenumber: 644
    functionLinenumberEnd: 646
    functionName: Lib_IntVector_Intrinsics_vec128_load32_le
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_load32_le(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 649
    functionName: Lib_IntVector_Intrinsics_vec128_load32_be
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_load32_be(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 650
    functionDepth: 0
    functionLinenumber: 650
    functionLinenumberEnd: 652
    functionName: Lib_IntVector_Intrinsics_vec128_load64_le
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_load64_le(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vec_revb
      Src: /src/nss/lib/freebl/verified/libintvector.h:656,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x0
    - x1
    argTypes:
    - uint8_t*
    - vector128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 653
    functionDepth: 0
    functionLinenumber: 653
    functionLinenumberEnd: 657
    functionName: Lib_IntVector_Intrinsics_vec128_store32_le
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 2
    functionsReached:
    - vec_revb
    linkageType: ''
    returnType: void
    signature: void Lib_IntVector_Intrinsics_vec128_store32_le(const uint8_t *x0,
      vector128 x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x0
    - x1
    argTypes:
    - uint8_t*
    - vector128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 659
    functionDepth: 0
    functionLinenumber: 659
    functionLinenumberEnd: 663
    functionName: Lib_IntVector_Intrinsics_vec128_store32_be
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Lib_IntVector_Intrinsics_vec128_store32_be(const uint8_t *x0,
      vector128 x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vec_revb
      Src: /src/nss/lib/freebl/verified/libintvector.h:668,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x0
    - x1
    argTypes:
    - uint8_t*
    - vector128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 665
    functionDepth: 0
    functionLinenumber: 665
    functionLinenumberEnd: 669
    functionName: Lib_IntVector_Intrinsics_vec128_store64_le
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached:
    - vec_revb
    linkageType: ''
    returnType: void
    signature: void Lib_IntVector_Intrinsics_vec128_store64_le(const uint8_t *x0,
      vector128 x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 671
    functionDepth: 0
    functionLinenumber: 671
    functionLinenumberEnd: 673
    functionName: Lib_IntVector_Intrinsics_vec128_add32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_add32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 674
    functionDepth: 0
    functionLinenumber: 674
    functionLinenumberEnd: 676
    functionName: Lib_IntVector_Intrinsics_vec128_add64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_add64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 677
    functionDepth: 0
    functionLinenumber: 677
    functionLinenumberEnd: 679
    functionName: Lib_IntVector_Intrinsics_vec128_and
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_and(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 682
    functionName: Lib_IntVector_Intrinsics_vec128_eq32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_eq32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 683
    functionDepth: 0
    functionLinenumber: 683
    functionLinenumberEnd: 685
    functionName: Lib_IntVector_Intrinsics_vec128_eq64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_eq64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 686
    functionDepth: 0
    functionLinenumber: 686
    functionLinenumberEnd: 688
    functionName: Lib_IntVector_Intrinsics_vec128_extract32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_extract32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 689
    functionDepth: 0
    functionLinenumber: 689
    functionLinenumberEnd: 691
    functionName: Lib_IntVector_Intrinsics_vec128_extract64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_extract64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 692
    functionDepth: 0
    functionLinenumber: 692
    functionLinenumberEnd: 694
    functionName: Lib_IntVector_Intrinsics_vec128_gt32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_gt32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 695
    functionDepth: 0
    functionLinenumber: 695
    functionLinenumberEnd: 697
    functionName: Lib_IntVector_Intrinsics_vec128_gt64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_gt64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x0
    - ','
    - x1
    - ','
    - x2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 698
    functionDepth: 0
    functionLinenumber: 698
    functionLinenumberEnd: 700
    functionName: Lib_IntVector_Intrinsics_vec128_insert32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_insert32(x0, x1, x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x0
    - ','
    - x1
    - ','
    - x2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 701
    functionDepth: 0
    functionLinenumber: 701
    functionLinenumberEnd: 703
    functionName: Lib_IntVector_Intrinsics_vec128_insert64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_insert64(x0, x1, x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 704
    functionDepth: 0
    functionLinenumber: 704
    functionLinenumberEnd: 706
    functionName: Lib_IntVector_Intrinsics_vec128_interleave_high32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_interleave_high32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 707
    functionDepth: 0
    functionLinenumber: 707
    functionLinenumberEnd: 709
    functionName: Lib_IntVector_Intrinsics_vec128_interleave_high64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_interleave_high64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 710
    functionDepth: 0
    functionLinenumber: 710
    functionLinenumberEnd: 712
    functionName: Lib_IntVector_Intrinsics_vec128_interleave_low32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_interleave_low32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 713
    functionDepth: 0
    functionLinenumber: 713
    functionLinenumberEnd: 715
    functionName: Lib_IntVector_Intrinsics_vec128_interleave_low64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_interleave_low64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 716
    functionDepth: 0
    functionLinenumber: 716
    functionLinenumberEnd: 719
    functionName: Lib_IntVector_Intrinsics_vec128_load32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_load32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x0
    - ','
    - x1
    - ','
    - x2
    - ','
    - x3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 720
    functionDepth: 0
    functionLinenumber: 720
    functionLinenumberEnd: 722
    functionName: Lib_IntVector_Intrinsics_vec128_load32s
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_load32s(x0, x1, x2, x3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 723
    functionDepth: 0
    functionLinenumber: 723
    functionLinenumberEnd: 725
    functionName: Lib_IntVector_Intrinsics_vec128_load64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_load64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 726
    functionDepth: 0
    functionLinenumber: 726
    functionLinenumberEnd: 728
    functionName: Lib_IntVector_Intrinsics_vec128_lognot
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_lognot(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 729
    functionDepth: 0
    functionLinenumber: 729
    functionLinenumberEnd: 732
    functionName: Lib_IntVector_Intrinsics_vec128_mul64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_mul64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 733
    functionDepth: 0
    functionLinenumber: 733
    functionLinenumberEnd: 735
    functionName: Lib_IntVector_Intrinsics_vec128_or
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_or(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 736
    functionDepth: 0
    functionLinenumber: 736
    functionLinenumberEnd: 738
    functionName: Lib_IntVector_Intrinsics_vec128_rotate_left32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_rotate_left32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 741
    functionName: Lib_IntVector_Intrinsics_vec128_rotate_right32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_rotate_right32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 742
    functionDepth: 0
    functionLinenumber: 742
    functionLinenumberEnd: 744
    functionName: Lib_IntVector_Intrinsics_vec128_rotate_right_lanes32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_rotate_right_lanes32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 745
    functionDepth: 0
    functionLinenumber: 745
    functionLinenumberEnd: 748
    functionName: Lib_IntVector_Intrinsics_vec128_shift_left64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_shift_left64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 749
    functionDepth: 0
    functionLinenumber: 749
    functionLinenumberEnd: 752
    functionName: Lib_IntVector_Intrinsics_vec128_shift_right64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_shift_right64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 753
    functionDepth: 0
    functionLinenumber: 753
    functionLinenumberEnd: 757
    functionName: Lib_IntVector_Intrinsics_vec128_shift_right32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_shift_right32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 759
    functionDepth: 0
    functionLinenumber: 759
    functionLinenumberEnd: 761
    functionName: Lib_IntVector_Intrinsics_vec128_smul64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_smul64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 762
    functionDepth: 0
    functionLinenumber: 762
    functionLinenumberEnd: 764
    functionName: Lib_IntVector_Intrinsics_vec128_sub64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_sub64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vec_xor
      Src: /src/nss/lib/freebl/verified/libintvector.h:768,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x0
    - x1
    argTypes:
    - vector128
    - vector128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 765
    functionDepth: 0
    functionLinenumber: 765
    functionLinenumberEnd: 769
    functionName: Lib_IntVector_Intrinsics_vec128_xor
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 3
    functionsReached:
    - vec_xor
    linkageType: ''
    returnType: vector128
    signature: vector128 Lib_IntVector_Intrinsics_vec128_xor(vector128 x0, vector128
      x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 795
    functionDepth: 0
    functionLinenumber: 795
    functionLinenumberEnd: 797
    functionName: Lib_IntVector_Intrinsics_vec128_load32_le
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_load32_le(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 798
    functionDepth: 0
    functionLinenumber: 798
    functionLinenumberEnd: 800
    functionName: Lib_IntVector_Intrinsics_vec128_load64_le
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_load64_le(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 801
    functionDepth: 0
    functionLinenumber: 801
    functionLinenumberEnd: 803
    functionName: Lib_IntVector_Intrinsics_vec128_store32_le
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_store32_le(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 804
    functionDepth: 0
    functionLinenumber: 804
    functionLinenumberEnd: 806
    functionName: Lib_IntVector_Intrinsics_vec128_store64_le
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_store64_le(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 807
    functionDepth: 0
    functionLinenumber: 807
    functionLinenumberEnd: 809
    functionName: Lib_IntVector_Intrinsics_vec128_add32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_add32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 810
    functionDepth: 0
    functionLinenumber: 810
    functionLinenumberEnd: 812
    functionName: Lib_IntVector_Intrinsics_vec128_add64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_add64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 813
    functionDepth: 0
    functionLinenumber: 813
    functionLinenumberEnd: 815
    functionName: Lib_IntVector_Intrinsics_vec128_and
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_and(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 816
    functionDepth: 0
    functionLinenumber: 816
    functionLinenumberEnd: 818
    functionName: Lib_IntVector_Intrinsics_vec128_eq32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_eq32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 819
    functionDepth: 0
    functionLinenumber: 819
    functionLinenumberEnd: 821
    functionName: Lib_IntVector_Intrinsics_vec128_eq64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_eq64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 822
    functionDepth: 0
    functionLinenumber: 822
    functionLinenumberEnd: 824
    functionName: Lib_IntVector_Intrinsics_vec128_extract32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_extract32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 825
    functionDepth: 0
    functionLinenumber: 825
    functionLinenumberEnd: 827
    functionName: Lib_IntVector_Intrinsics_vec128_extract64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_extract64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 828
    functionDepth: 0
    functionLinenumber: 828
    functionLinenumberEnd: 830
    functionName: Lib_IntVector_Intrinsics_vec128_gt32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_gt32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 831
    functionDepth: 0
    functionLinenumber: 831
    functionLinenumberEnd: 833
    functionName: Lib_IntVector_Intrinsics_vec128_gt64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_gt64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x0
    - ','
    - x1
    - ','
    - x2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 834
    functionDepth: 0
    functionLinenumber: 834
    functionLinenumberEnd: 836
    functionName: Lib_IntVector_Intrinsics_vec128_insert32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_insert32(x0, x1, x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x0
    - ','
    - x1
    - ','
    - x2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 837
    functionDepth: 0
    functionLinenumber: 837
    functionLinenumberEnd: 839
    functionName: Lib_IntVector_Intrinsics_vec128_insert64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_insert64(x0, x1, x2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 840
    functionDepth: 0
    functionLinenumber: 840
    functionLinenumberEnd: 842
    functionName: Lib_IntVector_Intrinsics_vec128_interleave_high32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_interleave_high32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 843
    functionDepth: 0
    functionLinenumber: 843
    functionLinenumberEnd: 845
    functionName: Lib_IntVector_Intrinsics_vec128_interleave_high64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_interleave_high64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 846
    functionDepth: 0
    functionLinenumber: 846
    functionLinenumberEnd: 848
    functionName: Lib_IntVector_Intrinsics_vec128_interleave_low32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_interleave_low32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 851
      start: 849
    functionDepth: 0
    functionLinenumber: 849
    functionLinenumberEnd: 851
    functionName: Lib_IntVector_Intrinsics_vec128_interleave_low64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_interleave_low64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 852
    functionDepth: 0
    functionLinenumber: 852
    functionLinenumberEnd: 855
    functionName: Lib_IntVector_Intrinsics_vec128_load32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_load32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x0
    - ','
    - x1
    - ','
    - x2
    - ','
    - x3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 856
    functionDepth: 0
    functionLinenumber: 856
    functionLinenumberEnd: 858
    functionName: Lib_IntVector_Intrinsics_vec128_load32s
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_load32s(x0, x1, x2, x3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 859
    functionDepth: 0
    functionLinenumber: 859
    functionLinenumberEnd: 861
    functionName: Lib_IntVector_Intrinsics_vec128_load64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_load64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x0
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 862
    functionDepth: 0
    functionLinenumber: 862
    functionLinenumberEnd: 864
    functionName: Lib_IntVector_Intrinsics_vec128_lognot
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_lognot(x0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 865
    functionDepth: 0
    functionLinenumber: 865
    functionLinenumberEnd: 868
    functionName: Lib_IntVector_Intrinsics_vec128_mul64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_mul64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 869
    functionDepth: 0
    functionLinenumber: 869
    functionLinenumberEnd: 871
    functionName: Lib_IntVector_Intrinsics_vec128_or
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_or(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 872
    functionDepth: 0
    functionLinenumber: 872
    functionLinenumberEnd: 874
    functionName: Lib_IntVector_Intrinsics_vec128_rotate_left32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_rotate_left32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 875
    functionDepth: 0
    functionLinenumber: 875
    functionLinenumberEnd: 877
    functionName: Lib_IntVector_Intrinsics_vec128_rotate_right32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_rotate_right32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 878
    functionDepth: 0
    functionLinenumber: 878
    functionLinenumberEnd: 880
    functionName: Lib_IntVector_Intrinsics_vec128_rotate_right_lanes32
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_rotate_right_lanes32(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 881
    functionDepth: 0
    functionLinenumber: 881
    functionLinenumberEnd: 883
    functionName: Lib_IntVector_Intrinsics_vec128_shift_left64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_shift_left64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 884
    functionDepth: 0
    functionLinenumber: 884
    functionLinenumberEnd: 886
    functionName: Lib_IntVector_Intrinsics_vec128_shift_right64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_shift_right64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 888
    functionDepth: 0
    functionLinenumber: 888
    functionLinenumberEnd: 890
    functionName: Lib_IntVector_Intrinsics_vec128_smul64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_smul64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 891
    functionDepth: 0
    functionLinenumber: 891
    functionLinenumberEnd: 893
    functionName: Lib_IntVector_Intrinsics_vec128_sub64
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_sub64(x0, x1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x0
    - ','
    - x1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 894
    functionDepth: 0
    functionLinenumber: 894
    functionLinenumberEnd: 896
    functionName: Lib_IntVector_Intrinsics_vec128_xor
    functionSourceFile: /src/nss/lib/freebl/verified/libintvector.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Lib_IntVector_Intrinsics_vec128_xor(x0, x1)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Impl_Poly1305_Field32xN_128_load_acc2
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:46,1
    - Dst: KRML_PRE_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:52,1
    - Dst: KRML_POST_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:53,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:54,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:56,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:57,1
    - Dst: Lib_IntVector_Intrinsics_vec128_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:59,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:62,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:63,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:66,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:66,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:68,1
    - Dst: Lib_IntVector_Intrinsics_vec128_or
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:71,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:71,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_left64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:73,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:73,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:74,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:78,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:78,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:80,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:82,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:94,1
    - Dst: Lib_IntVector_Intrinsics_vec128_or
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:96,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:113,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:114,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:115,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:116,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:117,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:120,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:121,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:124,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:125,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:128,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:129,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:132,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:133,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:136,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:137,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:140,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:141,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:144,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:145,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:148,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:149,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:152,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:153,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:156,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:157,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:160,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:161,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:164,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:165,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:168,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:169,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:172,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:173,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:176,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:177,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:180,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:181,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:184,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:185,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:188,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:189,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:192,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:193,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:196,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:197,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:204,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:206,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:208,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:209,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:210,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:211,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:212,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:214,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:216,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_left64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:218,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:219,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:220,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:221,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:222,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:223,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:225,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:227,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:228,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:229,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:230,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:231,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:233,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:234,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:235,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:256,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:257,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:258,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:259,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:260,1
    - Dst: Hacl_Impl_Poly1305_Field32xN_128_fmul_r2_normalize
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:267,1
    - Dst: KRML_PRE_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:275,1
    - Dst: KRML_POST_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:276,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:277,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:279,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:281,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:282,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:285,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:286,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:289,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:289,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:291,1
    - Dst: Lib_IntVector_Intrinsics_vec128_or
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:294,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:294,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_left64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:296,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:296,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:297,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:301,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:301,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:303,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:305,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:317,1
    - Dst: Lib_IntVector_Intrinsics_vec128_or
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:319,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:341,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:342,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:343,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:344,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:345,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:346,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:347,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:348,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:349,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:350,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:353,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:354,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:357,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:358,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:361,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:362,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:365,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:366,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:369,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:370,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:373,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:374,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:377,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:378,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:381,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:382,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:385,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:386,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:389,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:390,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:393,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:394,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:397,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:398,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:401,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:402,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:405,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:406,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:409,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:410,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:413,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:414,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:417,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:418,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:421,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:422,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:425,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:426,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:429,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:430,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:437,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:439,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:441,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:442,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:443,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:444,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:445,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:447,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:449,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_left64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:451,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:452,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:453,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:454,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:455,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:456,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:458,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:460,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:461,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:462,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:463,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:464,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:466,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:467,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:468,1
    - Dst: KRML_PRE_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:482,1
    - Dst: KRML_POST_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:483,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:485,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:486,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:488,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:490,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:491,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:494,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:495,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:498,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:498,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:500,1
    - Dst: Lib_IntVector_Intrinsics_vec128_or
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:503,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:503,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_left64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:505,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:505,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:506,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:510,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:510,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:512,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:514,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:526,1
    - Dst: Lib_IntVector_Intrinsics_vec128_or
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:528,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:550,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:551,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:552,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:553,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:554,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:555,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:556,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:557,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:558,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:559,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:562,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:563,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:566,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:567,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:570,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:571,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:574,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:575,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:578,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:579,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:582,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:583,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:586,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:587,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:590,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:591,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:594,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:595,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:598,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:599,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:602,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:603,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:606,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:607,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:610,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:611,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:614,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:615,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:618,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:619,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:622,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:623,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:626,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:627,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:630,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:631,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:634,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:635,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:638,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:639,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:646,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:648,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:650,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:651,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:652,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:653,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:654,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:656,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:658,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_left64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:660,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:661,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:662,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:663,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:664,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:665,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:667,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:669,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:670,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:671,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:672,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:673,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:675,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:676,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:677,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:690,1
    - Dst: KRML_PRE_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:694,1
    - Dst: KRML_POST_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:695,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:696,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:698,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:700,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:701,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:704,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:705,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:708,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:708,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:710,1
    - Dst: Lib_IntVector_Intrinsics_vec128_or
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:713,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:713,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_left64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:715,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:715,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:716,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:720,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:720,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:722,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:724,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:736,1
    - Dst: Lib_IntVector_Intrinsics_vec128_or
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:738,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:760,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:761,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:762,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:763,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:764,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:765,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:766,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:767,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:768,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:769,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:772,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:773,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:776,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:777,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:780,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:781,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:784,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:785,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:788,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:789,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:792,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:793,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:796,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:797,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:800,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:801,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:804,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:805,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:808,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:809,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:812,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:813,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:816,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:817,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:820,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:821,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:824,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:825,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:828,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:829,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:832,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:833,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:836,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:837,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:840,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:841,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:844,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:845,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:848,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:849,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:856,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:858,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:860,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:861,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:862,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:863,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:864,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:866,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:868,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_left64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:870,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:871,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:872,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:873,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:874,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:875,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:877,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:879,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:880,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:881,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:882,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:883,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:885,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:886,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:887,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 73
    argCount: 3
    argNames:
    - ctx
    - len
    - text
    argTypes:
    - Lib_IntVector_Intrinsics_vec128*
    - uint32_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 900
    functionName: poly1305_padded_128
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c
    functionUses: 0
    functionsReached:
    - Lib_IntVector_Intrinsics_vec128_add64
    - KRML_PRE_ALIGN
    - Lib_IntVector_Intrinsics_vec128_interleave_high64
    - Lib_IntVector_Intrinsics_vec128_mul64
    - memcpy
    - Hacl_Impl_Poly1305_Field32xN_128_load_acc2
    - Lib_IntVector_Intrinsics_vec128_interleave_low64
    - Hacl_Impl_Poly1305_Field32xN_128_fmul_r2_normalize
    - Lib_IntVector_Intrinsics_vec128_shift_right64
    - Lib_IntVector_Intrinsics_vec128_or
    - Lib_IntVector_Intrinsics_vec128_load64
    - Lib_IntVector_Intrinsics_vec128_shift_left64
    - Lib_IntVector_Intrinsics_vec128_and
    - KRML_POST_ALIGN
    - load64_le
    - Lib_IntVector_Intrinsics_vec128_load64_le
    linkageType: ''
    returnType: void
    signature: void poly1305_padded_128(Lib_IntVector_Intrinsics_vec128 *ctx, uint32_t
      len, uint8_t *text)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: KRML_PRE_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:911,1
    - Dst: KRML_POST_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:912,1
    - Dst: Hacl_Poly1305_128_poly1305_init
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:914,1
    - Dst: poly1305_padded_128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:916,1
    - Dst: poly1305_padded_128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:919,1
    - Dst: store64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:921,1
    - Dst: store64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:922,1
    - Dst: KRML_PRE_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:925,1
    - Dst: KRML_POST_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:926,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:927,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:929,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:931,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:932,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:935,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:936,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:939,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:939,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:941,1
    - Dst: Lib_IntVector_Intrinsics_vec128_or
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:944,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:944,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_left64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:946,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:946,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:947,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:951,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:951,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:953,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:955,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:967,1
    - Dst: Lib_IntVector_Intrinsics_vec128_or
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:969,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:991,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:992,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:993,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:994,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:995,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:996,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:997,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:998,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:999,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1000,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1003,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1004,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1007,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1008,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1011,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1012,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1015,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1016,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1019,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1020,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1023,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1024,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1027,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1028,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1031,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1032,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1035,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1036,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1039,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1040,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1043,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1044,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1047,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1048,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1051,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1052,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1055,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1056,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1059,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1060,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1063,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1064,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1067,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1068,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1071,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1072,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1075,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1076,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1079,1
    - Dst: Lib_IntVector_Intrinsics_vec128_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1080,1
    - Dst: Lib_IntVector_Intrinsics_vec128_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1087,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1089,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1091,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1092,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1093,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1094,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1095,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1097,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1099,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_left64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1101,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1102,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1103,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1104,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1105,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1106,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1108,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1110,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1111,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1112,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1113,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1114,1
    - Dst: Lib_IntVector_Intrinsics_vec128_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1116,1
    - Dst: Lib_IntVector_Intrinsics_vec128_and
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1117,1
    - Dst: Lib_IntVector_Intrinsics_vec128_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1118,1
    - Dst: Hacl_Poly1305_128_poly1305_finish
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 6
    argNames:
    - k
    - aadlen
    - aad
    - mlen
    - m
    - out
    argTypes:
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 902
    functionDepth: 3
    functionLinenumber: 902
    functionLinenumberEnd: 1130
    functionName: poly1305_do_128
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c
    functionUses: 0
    functionsReached:
    - Lib_IntVector_Intrinsics_vec128_add64
    - KRML_PRE_ALIGN
    - Lib_IntVector_Intrinsics_vec128_mul64
    - Lib_IntVector_Intrinsics_vec128_shift_right64
    - Lib_IntVector_Intrinsics_vec128_or
    - store64_le
    - Lib_IntVector_Intrinsics_vec128_load64
    - Lib_IntVector_Intrinsics_vec128_shift_left64
    - Hacl_Poly1305_128_poly1305_finish
    - poly1305_padded_128
    - Lib_IntVector_Intrinsics_vec128_and
    - KRML_POST_ALIGN
    - load64_le
    - Hacl_Poly1305_128_poly1305_init
    linkageType: ''
    returnType: void
    signature: "void poly1305_do_128(\n    uint8_t *k,\n    uint32_t aadlen,\n    uint8_t
      *aad,\n    uint32_t mlen,\n    uint8_t *m,\n    uint8_t *out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Chacha20_Vec128_chacha20_encrypt_128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1159,1
    - Dst: Hacl_Chacha20_Vec128_chacha20_encrypt_128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1161,1
    - Dst: poly1305_do_128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 8
    argNames:
    - k
    - n
    - aadlen
    - aad
    - mlen
    - m
    - cipher
    - mac
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1164
      start: 1148
    functionDepth: 4
    functionLinenumber: 1148
    functionLinenumberEnd: 1164
    functionName: Hacl_Chacha20Poly1305_128_aead_encrypt
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c
    functionUses: 2
    functionsReached:
    - poly1305_do_128
    - Hacl_Chacha20_Vec128_chacha20_encrypt_128
    linkageType: ''
    returnType: void
    signature: "void Hacl_Chacha20Poly1305_128_aead_encrypt(\n    uint8_t *k,\n    uint8_t
      *n,\n    uint32_t aadlen,\n    uint8_t *aad,\n    uint32_t mlen,\n    uint8_t
      *m,\n    uint8_t *cipher,\n    uint8_t *mac)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Chacha20_Vec128_chacha20_encrypt_128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1200,1
    - Dst: poly1305_do_128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1202,1
    - Dst: KRML_MAYBE_FOR16
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1204,1
    - Dst: FStar_UInt8_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1208,1
    - Dst: Hacl_Chacha20_Vec128_chacha20_encrypt_128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c:1212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 8
    argNames:
    - k
    - n
    - aadlen
    - aad
    - mlen
    - m
    - cipher
    - mac
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1216
      start: 1187
    functionDepth: 4
    functionLinenumber: 1187
    functionLinenumberEnd: 1216
    functionName: Hacl_Chacha20Poly1305_128_aead_decrypt
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_128.c
    functionUses: 2
    functionsReached:
    - FStar_UInt8_eq_mask
    - poly1305_do_128
    - Hacl_Chacha20_Vec128_chacha20_encrypt_128
    - KRML_MAYBE_FOR16
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t Hacl_Chacha20Poly1305_128_aead_decrypt(\n    uint8_t *k,\n
      \   uint8_t *n,\n    uint32_t aadlen,\n    uint8_t *aad,\n    uint32_t mlen,\n
      \   uint8_t *m,\n    uint8_t *cipher,\n    uint8_t *mac)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_sha512
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:24,1
    - Dst: Eurydice_array_to_slice
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:25,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - input
    - ret
    argTypes:
    - Eurydice_slice
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 19
    functionDepth: 9
    functionLinenumber: 19
    functionLinenumberEnd: 27
    functionName: libcrux_ml_kem_hash_functions_portable_G
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_sha512
    - memcpy
    - Eurydice_array_to_slice
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_ml_kem_hash_functions_portable_G(\n    Eurydice_slice
      input, uint8_t ret[64U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_sha256
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:34,1
    - Dst: Eurydice_array_to_slice
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:35,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - input
    - ret
    argTypes:
    - Eurydice_slice
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 29
    functionDepth: 9
    functionLinenumber: 29
    functionLinenumberEnd: 37
    functionName: libcrux_ml_kem_hash_functions_portable_H
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_sha256
    - memcpy
    - Eurydice_array_to_slice
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_ml_kem_hash_functions_portable_H(\n    Eurydice_slice
      input, uint8_t ret[32U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Eurydice_slice_to_array2
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:81,1
    - Dst: Eurydice_slice_subslice2
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:82,1
    - Dst: core_result_unwrap_41_30
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:84,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - array
    argTypes:
    - Eurydice_slice
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 87
    functionName: libcrux_ml_kem_vector_portable_vector_type_PortableVector::libcrux_ml_kem_vector_portable_vector_type_from_i16_array
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c
    functionUses: 0
    functionsReached:
    - memcpy
    - Eurydice_slice_to_array2
    - core_result_unwrap_41_30
    - Eurydice_slice_subslice2
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_ml_kem_vector_portable_vector_type_PortableVector\nlibcrux_ml_kem_vector_portable_vector_type_from_i16_array(\n
      \   Eurydice_slice array)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_ml_kem_vector_portable_vector_type_from_i16_array
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - array
    argTypes:
    - Eurydice_slice
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 97
    functionName: libcrux_ml_kem_vector_portable_from_i16_array_0d
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c
    functionUses: 0
    functionsReached:
    - libcrux_ml_kem_vector_portable_vector_type_from_i16_array
    linkageType: ''
    returnType: libcrux_ml_kem_vector_portable_vector_type_PortableVector
    signature: libcrux_ml_kem_vector_portable_vector_type_PortableVector libcrux_ml_kem_vector_portable_from_i16_array_0d(Eurydice_slice
      array)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Eurydice_slice_index
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:102,1
    - Dst: Eurydice_slice_index
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:103,1
    - Dst: Eurydice_slice_index
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:107,1
    - Dst: Eurydice_slice_index
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:110,1
    - Dst: Eurydice_slice_index
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:114,1
    - Dst: Eurydice_slice_index
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:118,1
    - Dst: Eurydice_slice_index
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:120,1
    - Dst: Eurydice_slice_index
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:124,1
    - Dst: Eurydice_slice_index
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:127,1
    - Dst: Eurydice_slice_index
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:131,1
    - Dst: Eurydice_slice_index
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:134,1
    - Dst: Eurydice_slice_index
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:138,1
    - Dst: Eurydice_slice_index
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:142,1
    - Dst: Eurydice_slice_index
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:144,1
    - Dst: Eurydice_slice_index
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:148,1
    - Dst: Eurydice_slice_index
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:151,1
    - Dst: Eurydice_slice_index
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:155,1
    - Dst: Eurydice_slice_index
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:159,1
    - Dst: CLITERAL
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:160,1
    - Dst: uint8_t_x11::libcrux_ml_kem_vector_portable_serialize_serialize_11_int
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:178,1
    - Dst: Eurydice_array_to_subslice2
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:179,1
    - Dst: uint8_t_x11::libcrux_ml_kem_vector_portable_serialize_serialize_11_int
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:181,1
    - Dst: Eurydice_array_to_subslice2
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:182,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:207,1
    - Dst: libcrux_ml_kem_vector_portable_serialize_11_0d
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:215,1
    - Dst: libcrux_ml_kem_vector_portable_serialize_serialize_11
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:219,1
    - Dst: Eurydice_slice_index
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:227,1
    - Dst: Eurydice_slice_index
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:230,1
    - Dst: Eurydice_slice_index
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:232,1
    - Dst: Eurydice_slice_index
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:235,1
    - Dst: Eurydice_slice_index
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:238,1
    - Dst: Eurydice_slice_index
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:241,1
    - Dst: Eurydice_slice_index
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:243,1
    - Dst: Eurydice_slice_index
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:246,1
    - Dst: Eurydice_slice_index
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:249,1
    - Dst: Eurydice_slice_index
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:252,1
    - Dst: Eurydice_slice_index
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:255,1
    - Dst: Eurydice_slice_index
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:258,1
    - Dst: Eurydice_slice_index
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:261,1
    - Dst: Eurydice_slice_index
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:263,1
    - Dst: Eurydice_slice_index
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:266,1
    - Dst: Eurydice_slice_index
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:269,1
    - Dst: Eurydice_slice_index
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:272,1
    - Dst: Eurydice_slice_index
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:274,1
    - Dst: CLITERAL
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:276,1
    - Dst: libcrux_ml_kem_vector_portable_serialize_deserialize_11_int
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:312,1
    - Dst: Eurydice_slice_subslice2
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:313,1
    - Dst: libcrux_ml_kem_vector_portable_serialize_deserialize_11_int
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:315,1
    - Dst: Eurydice_slice_subslice2
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:316,1
    - Dst: libcrux_ml_kem_vector_portable_vector_type_zero
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:318,1
    - Dst: 'libcrux_ml_kem_vector_portable_vector_type_PortableVector

        libcrux_ml_kem_vector_portable_deserialize_11_0d'
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:342,1
    - Dst: libcrux_ml_kem_vector_portable_serialize_deserialize_11
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:345,1
    - Dst: 'libcrux_ml_kem_vector_portable_vector_type_PortableVector

        libcrux_ml_kem_vector_portable_add_0d'
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:911,1
    - Dst: libcrux_ml_kem_vector_portable_arithmetic_add
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:916,1
    - Dst: libcrux_ml_kem_vector_portable_arithmetic_sub
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:920,1
    - Dst: 'libcrux_ml_kem_vector_portable_vector_type_PortableVector

        libcrux_ml_kem_vector_portable_sub_0d'
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:937,1
    - Dst: libcrux_ml_kem_vector_portable_arithmetic_sub
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:942,1
    - Dst: libcrux_ml_kem_vector_portable_arithmetic_multiply_by_constant
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:946,1
    - Dst: 'libcrux_ml_kem_vector_portable_vector_type_PortableVector

        libcrux_ml_kem_vector_portable_multiply_by_constant_0d'
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:962,1
    - Dst: libcrux_ml_kem_vector_portable_arithmetic_multiply_by_constant
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:966,1
    - Dst: libcrux_ml_kem_vector_portable_arithmetic_bitwise_and_with_constant
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:970,1
    - Dst: 'libcrux_ml_kem_vector_portable_vector_type_PortableVector

        libcrux_ml_kem_vector_portable_bitwise_and_with_constant_0d'
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:986,1
    - Dst: libcrux_ml_kem_vector_portable_arithmetic_bitwise_and_with_constant
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:990,1
    - Dst: libcrux_ml_kem_vector_portable_arithmetic_cond_subtract_3329
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:995,1
    - Dst: core_iter_traits_collect___core__iter__traits__collect__IntoIterator_for_I__1__into_iter
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:999,1
    - Dst: CLITERAL
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1000,1
    - Dst: core_iter_range___core__iter__traits__iterator__Iterator_for_core__ops__range__Range_A___6__next
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1006,1
    - Dst: f0
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1009,1
    - Dst: 'libcrux_ml_kem_vector_portable_vector_type_PortableVector

        libcrux_ml_kem_vector_portable_cond_subtract_3329_0d'
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1024,1
    - Dst: libcrux_ml_kem_vector_portable_arithmetic_cond_subtract_3329
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1028,1
    - Dst: libcrux_ml_kem_vector_portable_arithmetic_barrett_reduce_element
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1045,1
    - Dst: libcrux_ml_kem_vector_portable_arithmetic_barrett_reduce_element
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1066,1
    - Dst: 'libcrux_ml_kem_vector_portable_vector_type_PortableVector

        libcrux_ml_kem_vector_portable_barrett_reduce_0d'
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1076,1
    - Dst: libcrux_ml_kem_vector_portable_arithmetic_barrett_reduce
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1080,1
    - Dst: libcrux_ml_kem_vector_portable_arithmetic_montgomery_multiply_fe_by_fer
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1129,1
    - Dst: libcrux_ml_kem_vector_portable_arithmetic_montgomery_reduce_element
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1132,1
    - Dst: libcrux_ml_kem_vector_portable_arithmetic_montgomery_multiply_by_constant
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1137,1
    - Dst: libcrux_ml_kem_vector_portable_arithmetic_montgomery_multiply_fe_by_fer
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1144,1
    - Dst: 'libcrux_ml_kem_vector_portable_vector_type_PortableVector

        libcrux_ml_kem_vector_portable_montgomery_multiply_by_constant_0d'
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1154,1
    - Dst: libcrux_ml_kem_vector_portable_arithmetic_montgomery_multiply_by_constant
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1158,1
    - Dst: libcrux_ml_kem_vector_portable_compress_compress_message_coefficient
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1203,1
    - Dst: 'libcrux_ml_kem_vector_portable_vector_type_PortableVector

        libcrux_ml_kem_vector_portable_compress_1_0d'
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1213,1
    - Dst: libcrux_ml_kem_vector_portable_compress_compress_1
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1217,1
    - Dst: libcrux_ml_kem_vector_portable_arithmetic_get_n_least_significant_bits
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1221,1
    - Dst: libcrux_ml_kem_vector_portable_arithmetic_get_n_least_significant_bits
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1236,1
    - Dst: libcrux_ml_kem_vector_portable_arithmetic_montgomery_multiply_fe_by_fer
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1246,1
    - Dst: libcrux_ml_kem_vector_portable_ntt_ntt_step
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1257,1
    - Dst: libcrux_ml_kem_vector_portable_ntt_ntt_step
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1259,1
    - Dst: libcrux_ml_kem_vector_portable_ntt_ntt_step
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1261,1
    - Dst: libcrux_ml_kem_vector_portable_ntt_ntt_step
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1263,1
    - Dst: libcrux_ml_kem_vector_portable_ntt_ntt_step
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1265,1
    - Dst: libcrux_ml_kem_vector_portable_ntt_ntt_step
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1267,1
    - Dst: libcrux_ml_kem_vector_portable_ntt_ntt_step
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1269,1
    - Dst: libcrux_ml_kem_vector_portable_ntt_ntt_step
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1271,1
    - Dst: libcrux_ml_kem_vector_portable_ntt_ntt_layer_1_step
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1285,1
    - Dst: libcrux_ml_kem_vector_portable_ntt_ntt_step
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1296,1
    - Dst: libcrux_ml_kem_vector_portable_ntt_ntt_step
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1298,1
    - Dst: libcrux_ml_kem_vector_portable_ntt_ntt_step
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1300,1
    - Dst: libcrux_ml_kem_vector_portable_ntt_ntt_step
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1302,1
    - Dst: libcrux_ml_kem_vector_portable_ntt_ntt_step
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1304,1
    - Dst: libcrux_ml_kem_vector_portable_ntt_ntt_step
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1306,1
    - Dst: libcrux_ml_kem_vector_portable_ntt_ntt_step
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1308,1
    - Dst: 'libcrux_ml_kem_vector_portable_vector_type_PortableVector

        libcrux_ml_kem_vector_portable_ntt_layer_2_step_0d'
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1317,1
    - Dst: libcrux_ml_kem_vector_portable_ntt_ntt_layer_2_step
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1322,1
    - Dst: libcrux_ml_kem_vector_portable_ntt_ntt_step
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1330,1
    - Dst: libcrux_ml_kem_vector_portable_ntt_ntt_step
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1331,1
    - Dst: libcrux_ml_kem_vector_portable_ntt_ntt_step
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1333,1
    - Dst: libcrux_ml_kem_vector_portable_ntt_ntt_step
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1335,1
    - Dst: libcrux_ml_kem_vector_portable_ntt_ntt_step
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1337,1
    - Dst: libcrux_ml_kem_vector_portable_ntt_ntt_step
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1339,1
    - Dst: libcrux_ml_kem_vector_portable_ntt_ntt_step
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1341,1
    - Dst: 'libcrux_ml_kem_vector_portable_vector_type_PortableVector

        libcrux_ml_kem_vector_portable_ntt_layer_3_step_0d'
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1350,1
    - Dst: libcrux_ml_kem_vector_portable_ntt_ntt_layer_3_step
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1354,1
    - Dst: libcrux_ml_kem_vector_portable_arithmetic_barrett_reduce_element
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1364,1
    - Dst: libcrux_ml_kem_vector_portable_arithmetic_montgomery_multiply_fe_by_fer
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1367,1
    - Dst: libcrux_ml_kem_vector_portable_ntt_inv_ntt_layer_1_step
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1372,1
    - Dst: libcrux_ml_kem_vector_portable_ntt_inv_ntt_step
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1376,1
    - Dst: libcrux_ml_kem_vector_portable_ntt_inv_ntt_step
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1378,1
    - Dst: libcrux_ml_kem_vector_portable_ntt_inv_ntt_step
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1380,1
    - Dst: libcrux_ml_kem_vector_portable_ntt_inv_ntt_step
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1382,1
    - Dst: libcrux_ml_kem_vector_portable_ntt_inv_ntt_step
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1384,1
    - Dst: libcrux_ml_kem_vector_portable_ntt_inv_ntt_step
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1386,1
    - Dst: libcrux_ml_kem_vector_portable_ntt_inv_ntt_step
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1388,1
    - Dst: libcrux_ml_kem_vector_portable_ntt_inv_ntt_step
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1390,1
    - Dst: libcrux_ml_kem_vector_portable_ntt_inv_ntt_layer_1_step
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1404,1
    - Dst: libcrux_ml_kem_vector_portable_ntt_inv_ntt_step
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1413,1
    - Dst: libcrux_ml_kem_vector_portable_ntt_inv_ntt_step
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1415,1
    - Dst: libcrux_ml_kem_vector_portable_ntt_inv_ntt_step
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1417,1
    - Dst: libcrux_ml_kem_vector_portable_ntt_inv_ntt_step
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1419,1
    - Dst: libcrux_ml_kem_vector_portable_ntt_inv_ntt_step
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1421,1
    - Dst: libcrux_ml_kem_vector_portable_ntt_inv_ntt_step
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1423,1
    - Dst: libcrux_ml_kem_vector_portable_ntt_inv_ntt_step
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1425,1
    - Dst: libcrux_ml_kem_vector_portable_ntt_inv_ntt_step
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1427,1
    - Dst: libcrux_ml_kem_vector_portable_ntt_inv_ntt_layer_2_step
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1441,1
    - Dst: libcrux_ml_kem_vector_portable_arithmetic_montgomery_reduce_element
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1508,1
    - Dst: libcrux_ml_kem_vector_portable_arithmetic_montgomery_reduce_element
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1511,1
    - Dst: libcrux_ml_kem_vector_portable_vector_type_zero
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - Eurydice_slice
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1561
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 1561
    functionName: uint8_t_x11::libcrux_ml_kem_vector_portable_serialize_serialize_11_int
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c
    functionUses: 1
    functionsReached:
    - libcrux_ml_kem_vector_portable_compress_compress_message_coefficient
    - libcrux_ml_kem_vector_portable_arithmetic_montgomery_multiply_by_constant
    - libcrux_ml_kem_vector_portable_ntt_ntt_layer_2_step
    - libcrux_ml_kem_vector_portable_ntt_ntt_step
    - libcrux_ml_kem_vector_portable_ntt_inv_ntt_layer_1_step
    - libcrux_ml_kem_vector_portable_arithmetic_bitwise_and_with_constant
    - libcrux_ml_kem_vector_portable_serialize_deserialize_11_int
    - libcrux_ml_kem_vector_portable_vector_type_zero
    - libcrux_ml_kem_vector_portable_serialize_serialize_11
    - 'libcrux_ml_kem_vector_portable_vector_type_PortableVector

      libcrux_ml_kem_vector_portable_multiply_by_constant_0d'
    - memcpy
    - 'libcrux_ml_kem_vector_portable_vector_type_PortableVector

      libcrux_ml_kem_vector_portable_deserialize_11_0d'
    - core_iter_traits_collect___core__iter__traits__collect__IntoIterator_for_I__1__into_iter
    - 'libcrux_ml_kem_vector_portable_vector_type_PortableVector

      libcrux_ml_kem_vector_portable_cond_subtract_3329_0d'
    - libcrux_ml_kem_vector_portable_ntt_inv_ntt_layer_2_step
    - libcrux_ml_kem_vector_portable_ntt_ntt_layer_1_step
    - 'libcrux_ml_kem_vector_portable_vector_type_PortableVector

      libcrux_ml_kem_vector_portable_compress_1_0d'
    - libcrux_ml_kem_vector_portable_arithmetic_get_n_least_significant_bits
    - Eurydice_slice_subslice2
    - libcrux_ml_kem_vector_portable_serialize_deserialize_11
    - libcrux_ml_kem_vector_portable_arithmetic_multiply_by_constant
    - core_iter_range___core__iter__traits__iterator__Iterator_for_core__ops__range__Range_A___6__next
    - Eurydice_array_to_subslice2
    - 'libcrux_ml_kem_vector_portable_vector_type_PortableVector

      libcrux_ml_kem_vector_portable_montgomery_multiply_by_constant_0d'
    - 'libcrux_ml_kem_vector_portable_vector_type_PortableVector

      libcrux_ml_kem_vector_portable_add_0d'
    - libcrux_ml_kem_vector_portable_arithmetic_sub
    - libcrux_ml_kem_vector_portable_serialize_11_0d
    - CLITERAL
    - libcrux_ml_kem_vector_portable_arithmetic_cond_subtract_3329
    - Eurydice_slice_index
    - libcrux_ml_kem_vector_portable_ntt_ntt_layer_3_step
    - uint8_t_x11::libcrux_ml_kem_vector_portable_serialize_serialize_11_int
    - libcrux_ml_kem_vector_portable_arithmetic_montgomery_multiply_fe_by_fer
    - libcrux_ml_kem_vector_portable_arithmetic_barrett_reduce
    - libcrux_ml_kem_vector_portable_arithmetic_montgomery_reduce_element
    - 'libcrux_ml_kem_vector_portable_vector_type_PortableVector

      libcrux_ml_kem_vector_portable_ntt_layer_3_step_0d'
    - libcrux_ml_kem_vector_portable_compress_compress_1
    - libcrux_ml_kem_vector_portable_arithmetic_add
    - 'libcrux_ml_kem_vector_portable_vector_type_PortableVector

      libcrux_ml_kem_vector_portable_bitwise_and_with_constant_0d'
    - 'libcrux_ml_kem_vector_portable_vector_type_PortableVector

      libcrux_ml_kem_vector_portable_sub_0d'
    - 'libcrux_ml_kem_vector_portable_vector_type_PortableVector

      libcrux_ml_kem_vector_portable_barrett_reduce_0d'
    - libcrux_ml_kem_vector_portable_arithmetic_barrett_reduce_element
    - libcrux_ml_kem_vector_portable_ntt_inv_ntt_step
    - 'libcrux_ml_kem_vector_portable_vector_type_PortableVector

      libcrux_ml_kem_vector_portable_ntt_layer_2_step_0d'
    - f0
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: 'KRML_MUSTINLINE uint8_t_x11

      libcrux_ml_kem_vector_portable_serialize_serialize_11_int(Eurydice_slice v)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_FOR8
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1569,1
    - Dst: KRML_MAYBE_FOR8
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1574,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - v
    - ret
    argTypes:
    - libcrux_ml_kem_vector_portable_vector_type_PortableVector
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1580
      start: 1563
    functionDepth: 1
    functionLinenumber: 1563
    functionLinenumberEnd: 1580
    functionName: libcrux_ml_kem_vector_portable_serialize_serialize_1
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c
    functionUses: 0
    functionsReached:
    - memcpy
    - KRML_MAYBE_FOR8
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_ml_kem_vector_portable_serialize_serialize_1(\n
      \   libcrux_ml_kem_vector_portable_vector_type_PortableVector v,\n    uint8_t
      ret[2U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_ml_kem_vector_portable_serialize_serialize_1
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - ret
    argTypes:
    - libcrux_ml_kem_vector_portable_vector_type_PortableVector
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1592
      start: 1586
    functionDepth: 2
    functionLinenumber: 1586
    functionLinenumberEnd: 1592
    functionName: libcrux_ml_kem_vector_portable_serialize_1_0d
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c
    functionUses: 0
    functionsReached:
    - libcrux_ml_kem_vector_portable_serialize_serialize_1
    linkageType: ''
    returnType: void
    signature: "void libcrux_ml_kem_vector_portable_serialize_1_0d(\n    libcrux_ml_kem_vector_portable_vector_type_PortableVector
      a,\n    uint8_t ret[2U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_ml_kem_vector_portable_vector_type_zero
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1598,1
    - Dst: KRML_MAYBE_FOR8
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1599,1
    - Dst: Eurydice_slice_index
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1601,1
    - Dst: Eurydice_slice_index
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1608,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - Eurydice_slice
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1614
      start: 1594
    functionDepth: 1
    functionLinenumber: 1594
    functionLinenumberEnd: 1614
    functionName: libcrux_ml_kem_vector_portable_vector_type_PortableVector::libcrux_ml_kem_vector_portable_serialize_deserialize_1
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c
    functionUses: 0
    functionsReached:
    - libcrux_ml_kem_vector_portable_vector_type_zero
    - Eurydice_slice_index
    - KRML_MAYBE_FOR8
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: 'KRML_MUSTINLINE libcrux_ml_kem_vector_portable_vector_type_PortableVector

      libcrux_ml_kem_vector_portable_serialize_deserialize_1(Eurydice_slice v)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_ml_kem_vector_portable_serialize_deserialize_1
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - Eurydice_slice
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1624
      start: 1620
    functionDepth: 0
    functionLinenumber: 1620
    functionLinenumberEnd: 1624
    functionName: libcrux_ml_kem_vector_portable_deserialize_1_0d
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c
    functionUses: 0
    functionsReached:
    - libcrux_ml_kem_vector_portable_serialize_deserialize_1
    linkageType: ''
    returnType: libcrux_ml_kem_vector_portable_vector_type_PortableVector
    signature: libcrux_ml_kem_vector_portable_vector_type_PortableVector libcrux_ml_kem_vector_portable_deserialize_1_0d(Eurydice_slice
      a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Eurydice_slice_index
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1630,1
    - Dst: Eurydice_slice_index
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1632,1
    - Dst: Eurydice_slice_index
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1635,1
    - Dst: Eurydice_slice_index
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1637,1
    - Dst: Eurydice_slice_index
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1640,1
    - Dst: Eurydice_slice_index
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1642,1
    - Dst: Eurydice_slice_index
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1645,1
    - Dst: Eurydice_slice_index
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1647,1
    - Dst: CLITERAL
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - Eurydice_slice
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1651
      start: 1626
    functionDepth: 1
    functionLinenumber: 1626
    functionLinenumberEnd: 1651
    functionName: libcrux_ml_kem_vector_portable_serialize_serialize_4_int
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c
    functionUses: 0
    functionsReached:
    - CLITERAL
    - Eurydice_slice_index
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE libcrux_ml_kem_vector_portable_serialize_serialize_4_int(Eurydice_slice
      v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_ml_kem_vector_portable_serialize_serialize_4_int
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1659,1
    - Dst: Eurydice_array_to_subslice2
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1660,1
    - Dst: libcrux_ml_kem_vector_portable_serialize_serialize_4_int
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1663,1
    - Dst: Eurydice_array_to_subslice2
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1664,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1675,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - v
    - ret
    argTypes:
    - libcrux_ml_kem_vector_portable_vector_type_PortableVector
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1676
      start: 1653
    functionDepth: 2
    functionLinenumber: 1653
    functionLinenumberEnd: 1676
    functionName: libcrux_ml_kem_vector_portable_serialize_serialize_4
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c
    functionUses: 0
    functionsReached:
    - memcpy
    - libcrux_ml_kem_vector_portable_serialize_serialize_4_int
    - Eurydice_array_to_subslice2
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_ml_kem_vector_portable_serialize_serialize_4(\n
      \   libcrux_ml_kem_vector_portable_vector_type_PortableVector v,\n    uint8_t
      ret[8U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_ml_kem_vector_portable_serialize_serialize_4
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - ret
    argTypes:
    - libcrux_ml_kem_vector_portable_vector_type_PortableVector
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1688
      start: 1682
    functionDepth: 3
    functionLinenumber: 1682
    functionLinenumberEnd: 1688
    functionName: libcrux_ml_kem_vector_portable_serialize_4_0d
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c
    functionUses: 0
    functionsReached:
    - libcrux_ml_kem_vector_portable_serialize_serialize_4
    linkageType: ''
    returnType: void
    signature: "void libcrux_ml_kem_vector_portable_serialize_4_0d(\n    libcrux_ml_kem_vector_portable_vector_type_PortableVector
      a,\n    uint8_t ret[8U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Eurydice_slice_index
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1694,1
    - Dst: Eurydice_slice_index
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1697,1
    - Dst: Eurydice_slice_index
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1701,1
    - Dst: Eurydice_slice_index
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1704,1
    - Dst: Eurydice_slice_index
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1708,1
    - Dst: Eurydice_slice_index
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1711,1
    - Dst: Eurydice_slice_index
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1715,1
    - Dst: Eurydice_slice_index
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1718,1
    - Dst: CLITERAL
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1722,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - Eurydice_slice
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1730
      start: 1690
    functionDepth: 1
    functionLinenumber: 1690
    functionLinenumberEnd: 1730
    functionName: libcrux_ml_kem_vector_portable_serialize_deserialize_4_int
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c
    functionUses: 0
    functionsReached:
    - CLITERAL
    - Eurydice_slice_index
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_ml_kem_vector_portable_serialize_deserialize_4_int(\n
      \   Eurydice_slice bytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_ml_kem_vector_portable_serialize_deserialize_4_int
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1735,1
    - Dst: Eurydice_slice_subslice2
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1736,1
    - Dst: libcrux_ml_kem_vector_portable_serialize_deserialize_4_int
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1737,1
    - Dst: Eurydice_slice_subslice2
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1738,1
    - Dst: libcrux_ml_kem_vector_portable_vector_type_zero
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1740,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - Eurydice_slice
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1758
      start: 1732
    functionDepth: 2
    functionLinenumber: 1732
    functionLinenumberEnd: 1758
    functionName: libcrux_ml_kem_vector_portable_vector_type_PortableVector::libcrux_ml_kem_vector_portable_serialize_deserialize_4
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c
    functionUses: 0
    functionsReached:
    - libcrux_ml_kem_vector_portable_vector_type_zero
    - libcrux_ml_kem_vector_portable_serialize_deserialize_4_int
    - Eurydice_slice_subslice2
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: 'KRML_MUSTINLINE libcrux_ml_kem_vector_portable_vector_type_PortableVector

      libcrux_ml_kem_vector_portable_serialize_deserialize_4(Eurydice_slice bytes)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_ml_kem_vector_portable_serialize_deserialize_4
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c:1767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - Eurydice_slice
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1768
      start: 1764
    functionDepth: 0
    functionLinenumber: 1764
    functionLinenumberEnd: 1768
    functionName: libcrux_ml_kem_vector_portable_deserialize_4_0d
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_mlkem_portable.c
    functionUses: 0
    functionsReached:
    - libcrux_ml_kem_vector_portable_serialize_deserialize_4
    linkageType: ''
    returnType: libcrux_ml_kem_vector_portable_vector_type_PortableVector
    signature: libcrux_ml_kem_vector_portable_vector_type_PortableVector libcrux_ml_kem_vector_portable_deserialize_4_0d(Eurydice_slice
      a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_scalar
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:36,1
    - Dst: KRML_HOST_IGNORE
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:38,1
    - Dst: add_scalar_e
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - out
    - f1
    - f2
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 40
    functionName: add_scalar0
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c
    functionUses: 0
    functionsReached:
    - add_scalar
    - add_scalar_e
    - KRML_HOST_IGNORE
    linkageType: ''
    returnType: void
    signature: void add_scalar0(uint64_t *out, uint64_t *f1, uint64_t f2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fadd
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:46,1
    - Dst: KRML_HOST_IGNORE
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:48,1
    - Dst: fadd_e
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - out
    - f1
    - f2
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 50
    functionName: fadd0
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c
    functionUses: 0
    functionsReached:
    - fadd
    - fadd_e
    - KRML_HOST_IGNORE
    linkageType: ''
    returnType: void
    signature: void fadd0(uint64_t *out, uint64_t *f1, uint64_t *f2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fsub
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:56,1
    - Dst: KRML_HOST_IGNORE
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:58,1
    - Dst: fsub_e
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - out
    - f1
    - f2
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 60
    functionName: fsub0
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c
    functionUses: 0
    functionsReached:
    - fsub
    - fsub_e
    - KRML_HOST_IGNORE
    linkageType: ''
    returnType: void
    signature: void fsub0(uint64_t *out, uint64_t *f1, uint64_t *f2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmul
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:66,1
    - Dst: KRML_HOST_IGNORE
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:68,1
    - Dst: fmul_e
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - out
    - f1
    - f2
    - tmp
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 70
    functionName: fmul0
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c
    functionUses: 10
    functionsReached:
    - fmul_e
    - fmul
    - KRML_HOST_IGNORE
    linkageType: ''
    returnType: void
    signature: void fmul0(uint64_t *out, uint64_t *f1, uint64_t *f2, uint64_t *tmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmul2
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:76,1
    - Dst: KRML_HOST_IGNORE
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:78,1
    - Dst: fmul2_e
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - out
    - f1
    - f2
    - tmp
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 80
    functionName: fmul20
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c
    functionUses: 0
    functionsReached:
    - KRML_HOST_IGNORE
    - fmul2_e
    - fmul2
    linkageType: ''
    returnType: void
    signature: void fmul20(uint64_t *out, uint64_t *f1, uint64_t *f2, uint64_t *tmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmul_scalar
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:86,1
    - Dst: KRML_HOST_IGNORE
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:88,1
    - Dst: fmul_scalar_e
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - out
    - f1
    - f2
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 90
    functionName: fmul_scalar0
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c
    functionUses: 0
    functionsReached:
    - fmul_scalar_e
    - fmul_scalar
    - KRML_HOST_IGNORE
    linkageType: ''
    returnType: void
    signature: void fmul_scalar0(uint64_t *out, uint64_t *f1, uint64_t f2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fsqr
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:96,1
    - Dst: KRML_HOST_IGNORE
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:98,1
    - Dst: fsqr_e
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - out
    - f1
    - tmp
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 100
    functionName: fsqr0
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c
    functionUses: 0
    functionsReached:
    - fsqr_e
    - fsqr
    - KRML_HOST_IGNORE
    linkageType: ''
    returnType: void
    signature: void fsqr0(uint64_t *out, uint64_t *f1, uint64_t *tmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fsqr2
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:106,1
    - Dst: KRML_HOST_IGNORE
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:108,1
    - Dst: fsqr2_e
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - out
    - f
    - tmp
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 110
    functionName: fsqr20
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c
    functionUses: 0
    functionsReached:
    - fsqr2
    - fsqr2_e
    - KRML_HOST_IGNORE
    linkageType: ''
    returnType: void
    signature: void fsqr20(uint64_t *out, uint64_t *f, uint64_t *tmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cswap2
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:116,1
    - Dst: KRML_HOST_IGNORE
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:118,1
    - Dst: cswap2_e
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - bit
    - p1
    - p2
    argTypes:
    - uint64_t
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 120
    functionName: cswap20
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c
    functionUses: 0
    functionsReached:
    - cswap2_e
    - cswap2
    - KRML_HOST_IGNORE
    linkageType: ''
    returnType: void
    signature: void cswap20(uint64_t bit, uint64_t *p1, uint64_t *p2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:138,1
    - Dst: fsub0
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:139,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:144,1
    - Dst: fsub0
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:145,1
    - Dst: fmul20
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:146,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:147,1
    - Dst: fsub0
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:148,1
    - Dst: fsqr20
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:155,1
    - Dst: fsqr20
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:156,1
    - Dst: fsub0
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:161,1
    - Dst: fmul_scalar0
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:162,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:163,1
    - Dst: fmul20
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:164,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 3
    argNames:
    - q
    - p01_tmp1
    - tmp2
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 166
    functionName: point_add_and_double
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c
    functionUses: 1
    functionsReached:
    - fadd0
    - fmul0
    - fsub0
    - fsqr20
    - fmul_scalar0
    - fmul20
    linkageType: ''
    returnType: void
    signature: void point_add_and_double(uint64_t *q, uint64_t *p01_tmp1, uint64_t
      *tmp2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:179,1
    - Dst: fsub0
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:180,1
    - Dst: fsqr20
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:181,1
    - Dst: fsub0
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:186,1
    - Dst: fmul_scalar0
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:187,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:188,1
    - Dst: fmul20
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - nq
    - tmp1
    - tmp2
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 168
    functionDepth: 2
    functionLinenumber: 168
    functionLinenumberEnd: 190
    functionName: point_double
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c
    functionUses: 4
    functionsReached:
    - fadd0
    - fsub0
    - fsqr20
    - fmul_scalar0
    - fmul20
    linkageType: ''
    returnType: void
    signature: void point_double(uint64_t *nq, uint64_t *tmp1, uint64_t *tmp2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:201,1
    - Dst: cswap20
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:217,1
    - Dst: point_add_and_double
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:218,1
    - Dst: cswap20
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:229,1
    - Dst: point_add_and_double
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:230,1
    - Dst: cswap20
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:234,1
    - Dst: point_double
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:237,1
    - Dst: point_double
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:238,1
    - Dst: point_double
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:239,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 3
    argNames:
    - out
    - key
    - init
    argTypes:
    - uint64_t*
    - uint8_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 192
    functionDepth: 2
    functionLinenumber: 192
    functionLinenumberEnd: 241
    functionName: montgomery_ladder
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c
    functionUses: 1
    functionsReached:
    - point_double
    - memcpy
    - point_add_and_double
    - cswap20
    linkageType: ''
    returnType: void
    signature: void montgomery_ladder(uint64_t *out, uint8_t *key, uint64_t *init)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fsqr0
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:246,1
    - Dst: fsqr0
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - o
    - inp
    - tmp
    - n
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 250
    functionName: fsquare_times
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c
    functionUses: 4
    functionsReached:
    - fsqr0
    linkageType: ''
    returnType: void
    signature: void fsquare_times(uint64_t *o, uint64_t *inp, uint64_t *tmp, uint32_t
      n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fsquare_times
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:260,1
    - Dst: fsquare_times
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:261,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:262,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:263,1
    - Dst: fsquare_times
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:264,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:265,1
    - Dst: fsquare_times
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:266,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:267,1
    - Dst: fsquare_times
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:272,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:273,1
    - Dst: fsquare_times
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:274,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:275,1
    - Dst: fsquare_times
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:276,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:277,1
    - Dst: fsquare_times
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:278,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:279,1
    - Dst: fsquare_times
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:284,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:285,1
    - Dst: fsquare_times
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:286,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:287,1
    - Dst: fsquare_times
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:288,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 3
    argNames:
    - o
    - i
    - tmp
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 292
    functionName: finv
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c
    functionUses: 2
    functionsReached:
    - fmul0
    - fsquare_times
    linkageType: ''
    returnType: void
    signature: void finv(uint64_t *o, uint64_t *i, uint64_t *tmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_scalar0
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:300,1
    - Dst: add_scalar0
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:304,1
    - Dst: FStar_UInt64_gte_mask
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:309,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:310,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:311,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - b
    - f
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 294
    functionDepth: 2
    functionLinenumber: 294
    functionLinenumberEnd: 326
    functionName: store_felem
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c
    functionUses: 2
    functionsReached:
    - FStar_UInt64_gte_mask
    - add_scalar0
    - FStar_UInt64_eq_mask
    linkageType: ''
    returnType: void
    signature: void store_felem(uint64_t *b, uint64_t *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: finv
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:336,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:337,1
    - Dst: store_felem
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:338,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:339,1
    - Dst: store64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - o
    - i
    argTypes:
    - uint8_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 328
    functionDepth: 3
    functionLinenumber: 328
    functionLinenumberEnd: 344
    functionName: encode_point
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c
    functionUses: 1
    functionsReached:
    - KRML_MAYBE_FOR4
    - fmul0
    - finv
    - store_felem
    - store64_le
    linkageType: ''
    returnType: void
    signature: void encode_point(uint8_t *o, uint64_t *i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_FOR4
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:358,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:364,1
    - Dst: montgomery_ladder
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:380,1
    - Dst: encode_point
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 3
    argNames:
    - out
    - priv
    - pub
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 382
    functionName: Hacl_Curve25519_64_scalarmult
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c
    functionUses: 0
    functionsReached:
    - encode_point
    - KRML_MAYBE_FOR4
    - montgomery_ladder
    - load64_le
    linkageType: ''
    returnType: void
    signature: void Hacl_Curve25519_64_scalarmult(uint8_t *out, uint8_t *priv, uint8_t
      *pub)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Curve25519_64_scalarmult
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pub
    - priv
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 392
    functionDepth: 2
    functionLinenumber: 392
    functionLinenumberEnd: 402
    functionName: Hacl_Curve25519_64_secret_to_public
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c
    functionUses: 0
    functionsReached:
    - Hacl_Curve25519_64_scalarmult
    linkageType: ''
    returnType: void
    signature: void Hacl_Curve25519_64_secret_to_public(uint8_t *pub, uint8_t *priv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Curve25519_64_scalarmult
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:415,1
    - Dst: FStar_UInt8_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c:418,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - out
    - priv
    - pub
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 411
    functionDepth: 2
    functionLinenumber: 411
    functionLinenumberEnd: 424
    functionName: Hacl_Curve25519_64_ecdh
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Curve25519_64.c
    functionUses: 0
    functionsReached:
    - Hacl_Curve25519_64_scalarmult
    - FStar_UInt8_eq_mask
    linkageType: ''
    returnType: bool
    signature: bool Hacl_Curve25519_64_ecdh(uint8_t *out, uint8_t *priv, uint8_t *pub)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_ml_kem_ind_cca_decapsulate_1f
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem768_portable.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - private_key
    - ciphertext
    - ret
    argTypes:
    - libcrux_ml_kem_types_MlKemPrivateKey_55*
    - libcrux_ml_kem_mlkem768_MlKem768Ciphertext*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 47
    functionName: decapsulate_67
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_mlkem768_portable.c
    functionUses: 0
    functionsReached:
    - libcrux_ml_kem_ind_cca_decapsulate_1f
    linkageType: ''
    returnType: void
    signature: "void decapsulate_67(\n    libcrux_ml_kem_types_MlKemPrivateKey_55
      *private_key,\n    libcrux_ml_kem_mlkem768_MlKem768Ciphertext *ciphertext, uint8_t
      ret[32U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: decapsulate_67
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem768_portable.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - private_key
    - ciphertext
    - ret
    argTypes:
    - libcrux_ml_kem_types_MlKemPrivateKey_55*
    - libcrux_ml_kem_mlkem768_MlKem768Ciphertext*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 62
    functionName: libcrux_ml_kem_mlkem768_portable_decapsulate
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_mlkem768_portable.c
    functionUses: 1
    functionsReached:
    - decapsulate_67
    linkageType: ''
    returnType: void
    signature: "void libcrux_ml_kem_mlkem768_portable_decapsulate(\n    libcrux_ml_kem_types_MlKemPrivateKey_55
      *private_key,\n    libcrux_ml_kem_mlkem768_MlKem768Ciphertext *ciphertext, uint8_t
      ret[32U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem768_portable.c:89,1
    - Dst: libcrux_ml_kem_ind_cca_encapsulate_eb
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem768_portable.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - public_key
    - randomness
    argTypes:
    - libcrux_ml_kem_types_MlKemPublicKey_15*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 91
    functionName: encapsulate_02
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_mlkem768_portable.c
    functionUses: 0
    functionsReached:
    - libcrux_ml_kem_ind_cca_encapsulate_eb
    - memcpy
    linkageType: ''
    returnType: tuple_3c
    signature: "tuple_3c encapsulate_02(\n    libcrux_ml_kem_types_MlKemPublicKey_15
      *public_key,\n    uint8_t randomness[32U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem768_portable.c:108,1
    - Dst: encapsulate_02
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem768_portable.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - public_key
    - randomness
    argTypes:
    - libcrux_ml_kem_types_MlKemPublicKey_15*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 110
    functionName: libcrux_ml_kem_mlkem768_portable_encapsulate
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_mlkem768_portable.c
    functionUses: 1
    functionsReached:
    - encapsulate_02
    - memcpy
    linkageType: ''
    returnType: tuple_3c
    signature: "tuple_3c libcrux_ml_kem_mlkem768_portable_encapsulate(\n    libcrux_ml_kem_types_MlKemPublicKey_15
      *public_key,\n    uint8_t randomness[32U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem768_portable.c:133,1
    - Dst: libcrux_ml_kem_ind_cca_generate_keypair_f6
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem768_portable.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - randomness
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 135
    functionName: generate_keypair_87
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_mlkem768_portable.c
    functionUses: 0
    functionsReached:
    - memcpy
    - libcrux_ml_kem_ind_cca_generate_keypair_f6
    linkageType: ''
    returnType: libcrux_ml_kem_mlkem768_MlKem768KeyPair
    signature: "libcrux_ml_kem_mlkem768_MlKem768KeyPair generate_keypair_87(\n    uint8_t
      randomness[64U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem768_portable.c:145,1
    - Dst: generate_keypair_87
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem768_portable.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - randomness
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 140
    functionDepth: 2
    functionLinenumber: 140
    functionLinenumberEnd: 147
    functionName: libcrux_ml_kem_mlkem768_portable_generate_key_pair
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_mlkem768_portable.c
    functionUses: 1
    functionsReached:
    - generate_keypair_87
    - memcpy
    linkageType: ''
    returnType: libcrux_ml_kem_mlkem768_MlKem768KeyPair
    signature: libcrux_ml_kem_mlkem768_MlKem768KeyPair libcrux_ml_kem_mlkem768_portable_generate_key_pair(uint8_t
      randomness[64U])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_ml_kem_ind_cca_validate_private_key_05
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem768_portable.c:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - private_key
    - ciphertext
    argTypes:
    - libcrux_ml_kem_types_MlKemPrivateKey_55*
    - libcrux_ml_kem_mlkem768_MlKem768Ciphertext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 167
    functionName: validate_private_key_e8
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_mlkem768_portable.c
    functionUses: 0
    functionsReached:
    - libcrux_ml_kem_ind_cca_validate_private_key_05
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE validate_private_key_e8(\n    libcrux_ml_kem_types_MlKemPrivateKey_55
      *private_key,\n    libcrux_ml_kem_mlkem768_MlKem768Ciphertext *ciphertext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: validate_private_key_e8
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem768_portable.c:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - private_key
    - ciphertext
    argTypes:
    - libcrux_ml_kem_types_MlKemPrivateKey_55*
    - libcrux_ml_kem_mlkem768_MlKem768Ciphertext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 180
    functionName: libcrux_ml_kem_mlkem768_portable_validate_private_key
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_mlkem768_portable.c
    functionUses: 1
    functionsReached:
    - validate_private_key_e8
    linkageType: ''
    returnType: bool
    signature: "bool libcrux_ml_kem_mlkem768_portable_validate_private_key(\n    libcrux_ml_kem_types_MlKemPrivateKey_55
      *private_key,\n    libcrux_ml_kem_mlkem768_MlKem768Ciphertext *ciphertext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_ml_kem_ind_cca_validate_public_key_b7
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem768_portable.c:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - public_key
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 197
    functionName: validate_public_key_7d
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_mlkem768_portable.c
    functionUses: 0
    functionsReached:
    - libcrux_ml_kem_ind_cca_validate_public_key_b7
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: KRML_MUSTINLINE validate_public_key_7d(uint8_t *public_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: validate_public_key_7d
      Src: /src/nss/lib/freebl/verified/libcrux_mlkem768_portable.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - public_key
    argTypes:
    - libcrux_ml_kem_types_MlKemPublicKey_15*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 209
    functionName: libcrux_ml_kem_mlkem768_portable_validate_public_key
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_mlkem768_portable.c
    functionUses: 1
    functionsReached:
    - validate_public_key_7d
    linkageType: ''
    returnType: bool
    signature: "bool libcrux_ml_kem_mlkem768_portable_validate_public_key(\n    libcrux_ml_kem_types_MlKemPublicKey_15
      *public_key)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: KRML_HOST_EPRINTF
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:50,1
    - Dst: KRML_HOST_EXIT
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 1
    argNames:
    - a
    argTypes:
    - Spec_Hash_Definitions_hash_alg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 54
    functionName: block_len
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c
    functionUses: 0
    functionsReached:
    - KRML_HOST_EPRINTF
    - KRML_HOST_EXIT
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t block_len(Spec_Hash_Definitions_hash_alg a)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: KRML_HOST_EPRINTF
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:73,1
    - Dst: KRML_HOST_EXIT
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - a
    argTypes:
    - Spec_Hash_Definitions_hash_alg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 77
    functionName: hash_len
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c
    functionUses: 0
    functionsReached:
    - KRML_HOST_EPRINTF
    - KRML_HOST_EXIT
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t hash_len(Spec_Hash_Definitions_hash_alg a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: block_len
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:87,1
    - Dst: Hacl_Impl_SHA3_absorb_inner
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:88,1
    - Dst: block_len
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - a
    - s
    - blocks
    - n_blocks
    argTypes:
    - Spec_Hash_Definitions_hash_alg
    - uint64_t*
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 90
    functionName: Hacl_Hash_SHA3_update_multi_sha3
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c
    functionUses: 0
    functionsReached:
    - block_len
    - Hacl_Impl_SHA3_absorb_inner
    linkageType: ''
    returnType: void
    signature: "void Hacl_Hash_SHA3_update_multi_sha3(\n    Spec_Hash_Definitions_hash_alg
      a,\n    uint64_t *s,\n    uint8_t *blocks,\n    uint32_t n_blocks)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: block_len
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:105,1
    - Dst: Hacl_Impl_SHA3_absorb_inner
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:107,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:110,1
    - Dst: Hacl_Impl_SHA3_loadState
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:112,1
    - Dst: Hacl_Impl_SHA3_state_permute
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:114,1
    - Dst: Hacl_Impl_SHA3_loadState
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:119,1
    - Dst: Hacl_Impl_SHA3_state_permute
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:120,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:125,1
    - Dst: Hacl_Impl_SHA3_loadState
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:127,1
    - Dst: Hacl_Impl_SHA3_state_permute
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:129,1
    - Dst: Hacl_Impl_SHA3_loadState
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:134,1
    - Dst: Hacl_Impl_SHA3_state_permute
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:135,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 4
    argNames:
    - a
    - s
    - input
    - input_len
    argTypes:
    - Spec_Hash_Definitions_hash_alg
    - uint64_t*
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 136
    functionName: Hacl_Hash_SHA3_update_last_sha3
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c
    functionUses: 0
    functionsReached:
    - block_len
    - Hacl_Impl_SHA3_state_permute
    - memcpy
    - Hacl_Impl_SHA3_loadState
    - Hacl_Impl_SHA3_absorb_inner
    linkageType: ''
    returnType: void
    signature: "void Hacl_Hash_SHA3_update_last_sha3(\n    Spec_Hash_Definitions_hash_alg
      a,\n    uint64_t *s,\n    uint8_t *input,\n    uint32_t input_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - Hacl_Streaming_Keccak_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 148
    functionName: Hacl_Streaming_Keccak_get_alg
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Spec_Hash_Definitions_hash_alg
    signature: Spec_Hash_Definitions_hash_alg Hacl_Streaming_Keccak_get_alg(Hacl_Streaming_Keccak_state
      *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_CHECK_SIZE
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:153,1
    - Dst: block_len
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:153,1
    - Dst: KRML_HOST_CALLOC
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:154,1
    - Dst: block_len
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:154,1
    - Dst: KRML_HOST_CALLOC
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:155,1
    - Dst: KRML_HOST_MALLOC
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:160,1
    - Dst: memset
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - a
    argTypes:
    - Spec_Hash_Definitions_hash_alg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 165
    functionName: Hacl_Streaming_Keccak_malloc
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c
    functionUses: 6
    functionsReached:
    - block_len
    - KRML_HOST_CALLOC
    - memset
    - KRML_CHECK_SIZE
    - KRML_HOST_MALLOC
    linkageType: ''
    returnType: Hacl_Streaming_Keccak_state
    signature: 'Hacl_Streaming_Keccak_state *

      Hacl_Streaming_Keccak_malloc(Spec_Hash_Definitions_hash_alg a)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_HOST_FREE
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:174,1
    - Dst: KRML_HOST_FREE
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:175,1
    - Dst: KRML_HOST_FREE
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - Hacl_Streaming_Keccak_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 177
    functionName: Hacl_Streaming_Keccak_free
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c
    functionUses: 6
    functionsReached:
    - KRML_HOST_FREE
    linkageType: ''
    returnType: void
    signature: void Hacl_Streaming_Keccak_free(Hacl_Streaming_Keccak_state *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_CHECK_SIZE
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:187,1
    - Dst: block_len
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:187,1
    - Dst: KRML_HOST_CALLOC
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:188,1
    - Dst: block_len
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:188,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:189,1
    - Dst: block_len
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:189,1
    - Dst: KRML_HOST_CALLOC
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:190,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:195,1
    - Dst: KRML_HOST_MALLOC
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - s0
    argTypes:
    - Hacl_Streaming_Keccak_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 202
    functionName: Hacl_Streaming_Keccak_copy
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c
    functionUses: 0
    functionsReached:
    - block_len
    - memcpy
    - KRML_HOST_CALLOC
    - KRML_CHECK_SIZE
    - KRML_HOST_MALLOC
    linkageType: ''
    returnType: Hacl_Streaming_Keccak_state
    signature: 'Hacl_Streaming_Keccak_state *

      Hacl_Streaming_Keccak_copy(Hacl_Streaming_Keccak_state *s0)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_HOST_IGNORE
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:211,1
    - Dst: memset
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - Hacl_Streaming_Keccak_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 217
    functionName: Hacl_Streaming_Keccak_reset
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c
    functionUses: 12
    functionsReached:
    - memset
    - KRML_HOST_IGNORE
    linkageType: ''
    returnType: void
    signature: void Hacl_Streaming_Keccak_reset(Hacl_Streaming_Keccak_state *s)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: block_len
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:230,1
    - Dst: block_len
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:231,1
    - Dst: block_len
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:233,1
    - Dst: block_len
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:235,1
    - Dst: block_len
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:241,1
    - Dst: block_len
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:242,1
    - Dst: block_len
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:244,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:247,1
    - Dst: block_len
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:260,1
    - Dst: block_len
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:261,1
    - Dst: block_len
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:263,1
    - Dst: Hacl_Hash_SHA3_update_multi_sha3
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:268,1
    - Dst: block_len
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:268,1
    - Dst: block_len
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:268,1
    - Dst: block_len
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:271,1
    - Dst: block_len
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:272,1
    - Dst: block_len
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:274,1
    - Dst: block_len
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:276,1
    - Dst: block_len
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:277,1
    - Dst: Hacl_Hash_SHA3_update_multi_sha3
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:283,1
    - Dst: block_len
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:283,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:285,1
    - Dst: block_len
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:292,1
    - Dst: block_len
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:300,1
    - Dst: block_len
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:301,1
    - Dst: block_len
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:303,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:306,1
    - Dst: block_len
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:318,1
    - Dst: block_len
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:319,1
    - Dst: block_len
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:321,1
    - Dst: Hacl_Hash_SHA3_update_multi_sha3
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:326,1
    - Dst: block_len
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:326,1
    - Dst: block_len
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:326,1
    - Dst: block_len
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:330,1
    - Dst: block_len
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:331,1
    - Dst: block_len
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:333,1
    - Dst: block_len
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:335,1
    - Dst: block_len
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:336,1
    - Dst: Hacl_Hash_SHA3_update_multi_sha3
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:342,1
    - Dst: block_len
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:342,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:344,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 61
    argCount: 3
    argNames:
    - p
    - data
    - len
    argTypes:
    - Hacl_Streaming_Keccak_state*
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 219
    functionDepth: 3
    functionLinenumber: 219
    functionLinenumberEnd: 352
    functionName: Hacl_Streaming_Keccak_update
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c
    functionUses: 6
    functionsReached:
    - block_len
    - memcpy
    - Hacl_Hash_SHA3_update_multi_sha3
    linkageType: ''
    returnType: Hacl_Streaming_Types_error_code
    signature: Hacl_Streaming_Types_error_code Hacl_Streaming_Keccak_update(Hacl_Streaming_Keccak_state
      *p, uint8_t *data, uint32_t len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: block_len
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:366,1
    - Dst: block_len
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:367,1
    - Dst: block_len
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:369,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:377,1
    - Dst: block_len
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:379,1
    - Dst: block_len
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:380,1
    - Dst: block_len
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:382,1
    - Dst: Hacl_Hash_SHA3_update_multi_sha3
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:388,1
    - Dst: block_len
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:388,1
    - Dst: Hacl_Hash_SHA3_update_last_sha3
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:391,1
    - Dst: Hacl_Impl_SHA3_squeeze
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:395,1
    - Dst: block_len
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:395,1
    - Dst: Hacl_Impl_SHA3_squeeze
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:398,1
    - Dst: block_len
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:398,1
    - Dst: hash_len
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:398,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 4
    argNames:
    - a
    - p
    - dst
    - l
    argTypes:
    - Spec_Hash_Definitions_hash_alg
    - Hacl_Streaming_Keccak_state*
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 354
    functionDepth: 3
    functionLinenumber: 354
    functionLinenumberEnd: 399
    functionName: finish_
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c
    functionUses: 0
    functionsReached:
    - block_len
    - memcpy
    - Hacl_Impl_SHA3_squeeze
    - hash_len
    - Hacl_Hash_SHA3_update_last_sha3
    - Hacl_Hash_SHA3_update_multi_sha3
    linkageType: ''
    returnType: void
    signature: "void finish_(\n    Spec_Hash_Definitions_hash_alg a,\n    Hacl_Streaming_Keccak_state
      *p,\n    uint8_t *dst,\n    uint32_t l)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Streaming_Keccak_get_alg
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:404,1
    - Dst: finish_
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:408,1
    - Dst: hash_len
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:408,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - s
    - dst
    argTypes:
    - Hacl_Streaming_Keccak_state*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 401
    functionDepth: 4
    functionLinenumber: 401
    functionLinenumberEnd: 410
    functionName: Hacl_Streaming_Keccak_finish
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c
    functionUses: 4
    functionsReached:
    - hash_len
    - Hacl_Streaming_Keccak_get_alg
    - finish_
    linkageType: ''
    returnType: Hacl_Streaming_Types_error_code
    signature: Hacl_Streaming_Types_error_code Hacl_Streaming_Keccak_finish(Hacl_Streaming_Keccak_state
      *s, uint8_t *dst)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Streaming_Keccak_get_alg
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:415,1
    - Dst: finish_
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:422,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - s
    - dst
    - l
    argTypes:
    - Hacl_Streaming_Keccak_state*
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 412
    functionDepth: 4
    functionLinenumber: 412
    functionLinenumberEnd: 424
    functionName: Hacl_Streaming_Keccak_squeeze
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c
    functionUses: 2
    functionsReached:
    - Hacl_Streaming_Keccak_get_alg
    - finish_
    linkageType: ''
    returnType: Hacl_Streaming_Types_error_code
    signature: Hacl_Streaming_Types_error_code Hacl_Streaming_Keccak_squeeze(Hacl_Streaming_Keccak_state
      *s, uint8_t *dst, uint32_t l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Streaming_Keccak_get_alg
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:429,1
    - Dst: block_len
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - Hacl_Streaming_Keccak_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 426
    functionDepth: 2
    functionLinenumber: 426
    functionLinenumberEnd: 431
    functionName: Hacl_Streaming_Keccak_block_len
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c
    functionUses: 0
    functionsReached:
    - block_len
    - Hacl_Streaming_Keccak_get_alg
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Hacl_Streaming_Keccak_block_len(Hacl_Streaming_Keccak_state
      *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Streaming_Keccak_get_alg
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:436,1
    - Dst: hash_len
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - Hacl_Streaming_Keccak_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 433
    functionDepth: 2
    functionLinenumber: 433
    functionLinenumberEnd: 438
    functionName: Hacl_Streaming_Keccak_hash_len
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c
    functionUses: 0
    functionsReached:
    - hash_len
    - Hacl_Streaming_Keccak_get_alg
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Hacl_Streaming_Keccak_hash_len(Hacl_Streaming_Keccak_state
      *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Streaming_Keccak_get_alg
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - Hacl_Streaming_Keccak_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 445
    functionName: Hacl_Streaming_Keccak_is_shake
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c
    functionUses: 0
    functionsReached:
    - Hacl_Streaming_Keccak_get_alg
    linkageType: ''
    returnType: bool
    signature: bool Hacl_Streaming_Keccak_is_shake(Hacl_Streaming_Keccak_state *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Impl_SHA3_keccak
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - inputByteLen
    - input
    - outputByteLen
    - output
    argTypes:
    - uint32_t
    - uint8_t*
    - uint32_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 461
    functionName: Hacl_SHA3_shake128_hacl
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c
    functionUses: 0
    functionsReached:
    - Hacl_Impl_SHA3_keccak
    linkageType: ''
    returnType: void
    signature: "void Hacl_SHA3_shake128_hacl(\n    uint32_t inputByteLen,\n    uint8_t
      *input,\n    uint32_t outputByteLen,\n    uint8_t *output)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Impl_SHA3_keccak
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - inputByteLen
    - input
    - outputByteLen
    - output
    argTypes:
    - uint32_t
    - uint8_t*
    - uint32_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 463
    functionDepth: 1
    functionLinenumber: 463
    functionLinenumberEnd: 477
    functionName: Hacl_SHA3_shake256_hacl
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c
    functionUses: 0
    functionsReached:
    - Hacl_Impl_SHA3_keccak
    linkageType: ''
    returnType: void
    signature: "void Hacl_SHA3_shake256_hacl(\n    uint32_t inputByteLen,\n    uint8_t
      *input,\n    uint32_t outputByteLen,\n    uint8_t *output)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Impl_SHA3_keccak
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - inputByteLen
    - input
    - output
    argTypes:
    - uint32_t
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 479
    functionDepth: 1
    functionLinenumber: 479
    functionLinenumberEnd: 489
    functionName: Hacl_SHA3_sha3_224
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c
    functionUses: 0
    functionsReached:
    - Hacl_Impl_SHA3_keccak
    linkageType: ''
    returnType: void
    signature: void Hacl_SHA3_sha3_224(uint32_t inputByteLen, uint8_t *input, uint8_t
      *output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Impl_SHA3_keccak
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - inputByteLen
    - input
    - output
    argTypes:
    - uint32_t
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 501
    functionName: Hacl_SHA3_sha3_256
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c
    functionUses: 0
    functionsReached:
    - Hacl_Impl_SHA3_keccak
    linkageType: ''
    returnType: void
    signature: void Hacl_SHA3_sha3_256(uint32_t inputByteLen, uint8_t *input, uint8_t
      *output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Impl_SHA3_keccak
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - inputByteLen
    - input
    - output
    argTypes:
    - uint32_t
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 513
    functionName: Hacl_SHA3_sha3_384
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c
    functionUses: 0
    functionsReached:
    - Hacl_Impl_SHA3_keccak
    linkageType: ''
    returnType: void
    signature: void Hacl_SHA3_sha3_384(uint32_t inputByteLen, uint8_t *input, uint8_t
      *output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Impl_SHA3_keccak
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - inputByteLen
    - input
    - output
    argTypes:
    - uint32_t
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 515
    functionDepth: 1
    functionLinenumber: 515
    functionLinenumberEnd: 525
    functionName: Hacl_SHA3_sha3_512
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c
    functionUses: 0
    functionsReached:
    - Hacl_Impl_SHA3_keccak
    linkageType: ''
    returnType: void
    signature: void Hacl_SHA3_sha3_512(uint32_t inputByteLen, uint8_t *input, uint8_t
      *output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_FOR5
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:560,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:567,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:575,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:590,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - s
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 555
    functionDepth: 1
    functionLinenumber: 555
    functionLinenumberEnd: 617
    functionName: Hacl_Impl_SHA3_state_permute
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c
    functionUses: 1
    functionsReached:
    - KRML_MAYBE_FOR5
    linkageType: ''
    returnType: void
    signature: void Hacl_Impl_SHA3_state_permute(uint64_t *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:623,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:625,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - rateInBytes
    - input
    - s
    argTypes:
    - uint32_t
    - uint8_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 619
    functionDepth: 1
    functionLinenumber: 619
    functionLinenumberEnd: 629
    functionName: Hacl_Impl_SHA3_loadState
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c
    functionUses: 1
    functionsReached:
    - memcpy
    - load64_le
    linkageType: ''
    returnType: void
    signature: void Hacl_Impl_SHA3_loadState(uint32_t rateInBytes, uint8_t *input,
      uint64_t *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:637,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:639,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - rateInBytes
    - s
    - res
    argTypes:
    - uint32_t
    - uint64_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 631
    functionDepth: 1
    functionLinenumber: 631
    functionLinenumberEnd: 640
    functionName: storeState
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c
    functionUses: 0
    functionsReached:
    - store64_le
    - memcpy
    linkageType: ''
    returnType: void
    signature: void storeState(uint32_t rateInBytes, uint64_t *s, uint8_t *res)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Impl_SHA3_loadState
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:645,1
    - Dst: Hacl_Impl_SHA3_state_permute
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - rateInBytes
    - block
    - s
    argTypes:
    - uint32_t
    - uint8_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 642
    functionDepth: 2
    functionLinenumber: 642
    functionLinenumberEnd: 647
    functionName: Hacl_Impl_SHA3_absorb_inner
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c
    functionUses: 2
    functionsReached:
    - Hacl_Impl_SHA3_state_permute
    - Hacl_Impl_SHA3_loadState
    linkageType: ''
    returnType: void
    signature: void Hacl_Impl_SHA3_absorb_inner(uint32_t rateInBytes, uint8_t *block,
      uint64_t *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Impl_SHA3_absorb_inner
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:661,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:666,1
    - Dst: Hacl_Impl_SHA3_loadState
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:668,1
    - Dst: Hacl_Impl_SHA3_state_permute
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:670,1
    - Dst: Hacl_Impl_SHA3_loadState
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:675,1
    - Dst: Hacl_Impl_SHA3_state_permute
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:676,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - s
    - rateInBytes
    - inputByteLen
    - input
    - delimitedSuffix
    argTypes:
    - uint64_t*
    - uint32_t
    - uint32_t
    - uint8_t*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 649
    functionDepth: 3
    functionLinenumber: 649
    functionLinenumberEnd: 677
    functionName: absorb
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c
    functionUses: 3
    functionsReached:
    - Hacl_Impl_SHA3_state_permute
    - memcpy
    - Hacl_Impl_SHA3_loadState
    - Hacl_Impl_SHA3_absorb_inner
    linkageType: ''
    returnType: void
    signature: "void absorb(\n    uint64_t *s,\n    uint32_t rateInBytes,\n    uint32_t
      inputByteLen,\n    uint8_t *input,\n    uint8_t delimitedSuffix)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: storeState
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:691,1
    - Dst: Hacl_Impl_SHA3_state_permute
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:692,1
    - Dst: storeState
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:694,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - s
    - rateInBytes
    - outputByteLen
    - output
    argTypes:
    - uint64_t*
    - uint32_t
    - uint32_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 679
    functionDepth: 2
    functionLinenumber: 679
    functionLinenumberEnd: 695
    functionName: Hacl_Impl_SHA3_squeeze
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c
    functionUses: 1
    functionsReached:
    - Hacl_Impl_SHA3_state_permute
    - storeState
    linkageType: ''
    returnType: void
    signature: "void Hacl_Impl_SHA3_squeeze(\n    uint64_t *s,\n    uint32_t rateInBytes,\n
      \   uint32_t outputByteLen,\n    uint8_t *output)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_HOST_IGNORE
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:707,1
    - Dst: absorb
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:710,1
    - Dst: Hacl_Impl_SHA3_squeeze
      Src: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c:711,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 7
    argNames:
    - rate
    - capacity
    - inputByteLen
    - input
    - delimitedSuffix
    - outputByteLen
    - output
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint8_t*
    - uint8_t
    - uint32_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 697
    functionDepth: 4
    functionLinenumber: 697
    functionLinenumberEnd: 712
    functionName: Hacl_Impl_SHA3_keccak
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Hash_SHA3.c
    functionUses: 6
    functionsReached:
    - Hacl_Impl_SHA3_squeeze
    - absorb
    - KRML_HOST_IGNORE
    linkageType: ''
    returnType: void
    signature: "void Hacl_Impl_SHA3_keccak(\n    uint32_t rate,\n    uint32_t capacity,\n
      \   uint32_t inputByteLen,\n    uint8_t *input,\n    uint8_t delimitedSuffix,\n
      \   uint32_t outputByteLen,\n    uint8_t *output)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_FOR6
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:34,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 42
    functionName: bn_is_eq_mask
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P384.c
    functionUses: 0
    functionsReached:
    - FStar_UInt64_eq_mask
    - KRML_MAYBE_FOR6
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t bn_is_eq_mask(uint64_t *x, uint64_t *y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:47,1
    - Dst: KRML_MAYBE_FOR6
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - a
    - b
    - c
    - d
    argTypes:
    - uint64_t*
    - uint64_t
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 56
    functionName: bn_cmovznz
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P384.c
    functionUses: 0
    functionsReached:
    - KRML_MAYBE_FOR6
    - FStar_UInt64_eq_mask
    linkageType: ''
    returnType: void
    signature: void bn_cmovznz(uint64_t *a, uint64_t b, uint64_t *c, uint64_t *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lib_IntTypes_Intrinsics_add_carry_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:66,1
    - Dst: Lib_IntTypes_Intrinsics_add_carry_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:70,1
    - Dst: Lib_IntTypes_Intrinsics_add_carry_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:74,1
    - Dst: Lib_IntTypes_Intrinsics_add_carry_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:78,1
    - Dst: KRML_MAYBE_FOR2
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:80,1
    - Dst: Lib_IntTypes_Intrinsics_add_carry_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:87,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:95,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:99,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:103,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:107,1
    - Dst: KRML_MAYBE_FOR2
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:109,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:116,1
    - Dst: KRML_MAYBE_FOR6
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 4
    argNames:
    - a
    - b
    - c
    - d
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 126
    functionName: bn_add_mod
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P384.c
    functionUses: 0
    functionsReached:
    - KRML_MAYBE_FOR6
    - Lib_IntTypes_Intrinsics_sub_borrow_u64
    - KRML_MAYBE_FOR2
    - Lib_IntTypes_Intrinsics_add_carry_u64
    linkageType: ''
    returnType: void
    signature: void bn_add_mod(uint64_t *a, uint64_t *b, uint64_t *c, uint64_t *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:136,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:140,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:144,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:148,1
    - Dst: KRML_MAYBE_FOR2
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:150,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 160
    functionName: bn_sub
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P384.c
    functionUses: 0
    functionsReached:
    - Lib_IntTypes_Intrinsics_sub_borrow_u64
    - KRML_MAYBE_FOR2
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t bn_sub(uint64_t *a, uint64_t *b, uint64_t *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:170,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:174,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:178,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:182,1
    - Dst: KRML_MAYBE_FOR2
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:184,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:191,1
    - Dst: Lib_IntTypes_Intrinsics_add_carry_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:199,1
    - Dst: Lib_IntTypes_Intrinsics_add_carry_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:203,1
    - Dst: Lib_IntTypes_Intrinsics_add_carry_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:207,1
    - Dst: Lib_IntTypes_Intrinsics_add_carry_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:211,1
    - Dst: KRML_MAYBE_FOR2
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:213,1
    - Dst: Lib_IntTypes_Intrinsics_add_carry_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:220,1
    - Dst: KRML_MAYBE_UNUSED_VAR
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:222,1
    - Dst: KRML_MAYBE_FOR6
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 4
    argNames:
    - a
    - b
    - c
    - d
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 231
    functionName: bn_sub_mod
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P384.c
    functionUses: 0
    functionsReached:
    - KRML_MAYBE_FOR2
    - KRML_MAYBE_UNUSED_VAR
    - KRML_MAYBE_FOR6
    - Lib_IntTypes_Intrinsics_sub_borrow_u64
    - Lib_IntTypes_Intrinsics_add_carry_u64
    linkageType: ''
    returnType: void
    signature: void bn_sub_mod(uint64_t *a, uint64_t *b, uint64_t *c, uint64_t *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:236,1
    - Dst: KRML_MAYBE_FOR6
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:237,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:248,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:251,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:254,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:257,1
    - Dst: KRML_MAYBE_FOR2
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:258,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 267
    functionName: bn_mul
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P384.c
    functionUses: 0
    functionsReached:
    - memset
    - Hacl_Bignum_Base_mul_wide_add2_u64
    - KRML_MAYBE_FOR2
    - KRML_MAYBE_FOR6
    linkageType: ''
    returnType: void
    signature: void bn_mul(uint64_t *a, uint64_t *b, uint64_t *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:272,1
    - Dst: KRML_MAYBE_FOR6
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:273,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:285,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:288,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:291,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:294,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:298,1
    - Dst: Hacl_Bignum_Addition_bn_add_eq_len_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:301,1
    - Dst: KRML_MAYBE_UNUSED_VAR
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:302,1
    - Dst: KRML_MAYBE_FOR6
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:304,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:308,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:309,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:309,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:310,1
    - Dst: Hacl_Bignum_Addition_bn_add_eq_len_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:313,1
    - Dst: KRML_MAYBE_UNUSED_VAR
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:314,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 315
    functionName: bn_sqr
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P384.c
    functionUses: 0
    functionsReached:
    - FStar_UInt128_uint128_to_uint64
    - FStar_UInt128_shift_right
    - FStar_UInt128_mul_wide
    - memset
    - Hacl_Bignum_Base_mul_wide_add2_u64
    - KRML_MAYBE_UNUSED_VAR
    - KRML_MAYBE_FOR6
    - Hacl_Bignum_Addition_bn_add_eq_len_u64
    linkageType: ''
    returnType: void
    signature: void bn_sqr(uint64_t *a, uint64_t *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_UNUSED_VAR
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:321,1
    - Dst: KRML_MAYBE_FOR6
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:322,1
    - Dst: store64_be
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint8_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 323
    functionName: bn_to_bytes_be
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P384.c
    functionUses: 0
    functionsReached:
    - store64_be
    - KRML_MAYBE_UNUSED_VAR
    - KRML_MAYBE_FOR6
    linkageType: ''
    returnType: void
    signature: void bn_to_bytes_be(uint8_t *a, uint64_t *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_FOR6
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:328,1
    - Dst: load64_be
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 336
    functionName: bn_from_bytes_be
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P384.c
    functionUses: 0
    functionsReached:
    - load64_be
    - KRML_MAYBE_FOR6
    linkageType: ''
    returnType: void
    signature: void bn_from_bytes_be(uint64_t *a, uint8_t *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - n
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 347
    functionName: p384_make_prime
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P384.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void p384_make_prime(uint64_t *n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - n
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 358
    functionName: p384_make_order
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P384.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void p384_make_order(uint64_t *n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - a
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 369
    functionName: p384_make_a_coeff
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P384.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void p384_make_a_coeff(uint64_t *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - b
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 380
    functionName: p384_make_b_coeff
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P384.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void p384_make_b_coeff(uint64_t *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - n
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 391
    functionName: p384_make_g_x
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P384.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void p384_make_g_x(uint64_t *n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - n
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 402
    functionName: p384_make_g_y
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P384.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void p384_make_g_y(uint64_t *n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - n
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 413
    functionName: p384_make_fmont_R2
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P384.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void p384_make_fmont_R2(uint64_t *n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - n
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 420
    functionName: p384_make_fzero
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P384.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void p384_make_fzero(uint64_t *n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - n
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 431
    functionName: p384_make_fone
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P384.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void p384_make_fone(uint64_t *n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - f
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 442
    functionName: p384_make_qone
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P384.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void p384_make_qone(uint64_t *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p384_make_prime
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:448,1
    - Dst: KRML_MAYBE_FOR6
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:450,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:461,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:464,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:467,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:470,1
    - Dst: KRML_MAYBE_FOR2
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:471,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:477,1
    - Dst: Lib_IntTypes_Intrinsics_add_carry_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:482,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:483,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:491,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:495,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:499,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:503,1
    - Dst: KRML_MAYBE_FOR2
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:505,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:512,1
    - Dst: KRML_MAYBE_FOR6
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 2
    argNames:
    - res
    - x
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 522
    functionName: fmont_reduction
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P384.c
    functionUses: 0
    functionsReached:
    - memcpy
    - KRML_MAYBE_FOR2
    - Hacl_Bignum_Base_mul_wide_add2_u64
    - KRML_MAYBE_FOR6
    - p384_make_prime
    - Lib_IntTypes_Intrinsics_sub_borrow_u64
    - Lib_IntTypes_Intrinsics_add_carry_u64
    linkageType: ''
    returnType: void
    signature: void fmont_reduction(uint64_t *res, uint64_t *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p384_make_order
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:528,1
    - Dst: KRML_MAYBE_FOR6
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:530,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:541,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:544,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:547,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:550,1
    - Dst: KRML_MAYBE_FOR2
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:551,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:557,1
    - Dst: Lib_IntTypes_Intrinsics_add_carry_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:562,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:563,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:571,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:575,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:579,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:583,1
    - Dst: KRML_MAYBE_FOR2
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:585,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:592,1
    - Dst: KRML_MAYBE_FOR6
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:595,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 2
    argNames:
    - res
    - x
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 602
    functionName: qmont_reduction
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P384.c
    functionUses: 0
    functionsReached:
    - memcpy
    - KRML_MAYBE_FOR2
    - p384_make_order
    - Hacl_Bignum_Base_mul_wide_add2_u64
    - KRML_MAYBE_FOR6
    - Lib_IntTypes_Intrinsics_sub_borrow_u64
    - Lib_IntTypes_Intrinsics_add_carry_u64
    linkageType: ''
    returnType: void
    signature: void qmont_reduction(uint64_t *res, uint64_t *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p384_make_prime
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:608,1
    - Dst: bn_sub
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:609,1
    - Dst: FStar_UInt64_gte_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:610,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 604
    functionDepth: 1
    functionLinenumber: 604
    functionLinenumberEnd: 612
    functionName: bn_is_lt_prime_mask
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P384.c
    functionUses: 0
    functionsReached:
    - FStar_UInt64_gte_mask
    - bn_sub
    - p384_make_prime
    - FStar_UInt64_eq_mask
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t bn_is_lt_prime_mask(uint64_t *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p384_make_prime
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:618,1
    - Dst: bn_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 614
    functionDepth: 1
    functionLinenumber: 614
    functionLinenumberEnd: 620
    functionName: fadd0
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P384.c
    functionUses: 2
    functionsReached:
    - p384_make_prime
    - bn_add_mod
    linkageType: ''
    returnType: void
    signature: void fadd0(uint64_t *a, uint64_t *b, uint64_t *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p384_make_prime
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:626,1
    - Dst: bn_sub_mod
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 622
    functionDepth: 1
    functionLinenumber: 622
    functionLinenumberEnd: 628
    functionName: fsub0
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P384.c
    functionUses: 2
    functionsReached:
    - p384_make_prime
    - bn_sub_mod
    linkageType: ''
    returnType: void
    signature: void fsub0(uint64_t *a, uint64_t *b, uint64_t *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_mul
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:634,1
    - Dst: fmont_reduction
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 630
    functionDepth: 0
    functionLinenumber: 630
    functionLinenumberEnd: 636
    functionName: fmul0
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P384.c
    functionUses: 13
    functionsReached:
    - bn_mul
    - fmont_reduction
    linkageType: ''
    returnType: void
    signature: void fmul0(uint64_t *a, uint64_t *b, uint64_t *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_sqr
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:642,1
    - Dst: fmont_reduction
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 644
    functionName: fsqr0
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P384.c
    functionUses: 1
    functionsReached:
    - bn_sqr
    - fmont_reduction
    linkageType: ''
    returnType: void
    signature: void fsqr0(uint64_t *a, uint64_t *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:650,1
    - Dst: fmont_reduction
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 646
    functionDepth: 1
    functionLinenumber: 646
    functionLinenumberEnd: 652
    functionName: from_mont
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P384.c
    functionUses: 0
    functionsReached:
    - memcpy
    - fmont_reduction
    linkageType: ''
    returnType: void
    signature: void from_mont(uint64_t *a, uint64_t *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p384_make_fmont_R2
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:658,1
    - Dst: bn_mul
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:660,1
    - Dst: fmont_reduction
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 654
    functionDepth: 1
    functionLinenumber: 654
    functionLinenumberEnd: 662
    functionName: to_mont
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P384.c
    functionUses: 1
    functionsReached:
    - bn_mul
    - fmont_reduction
    - p384_make_fmont_R2
    linkageType: ''
    returnType: void
    signature: void to_mont(uint64_t *a, uint64_t *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p384_make_fone
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:671,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:672,1
    - Dst: KRML_MAYBE_FOR15
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:673,1
    - Dst: fsqr0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:678,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:679,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:681,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:682,1
    - Dst: Hacl_Bignum_Lib_bn_get_bits_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:684,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:685,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:687,1
    - Dst: KRML_MAYBE_FOR6
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:689,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:699,1
    - Dst: fsqr0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:699,1
    - Dst: Hacl_Bignum_Lib_bn_get_bits_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:701,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:702,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:704,1
    - Dst: KRML_MAYBE_FOR6
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:706,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:714,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 3
    argNames:
    - out
    - a
    - b
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 664
    functionDepth: 1
    functionLinenumber: 664
    functionLinenumberEnd: 716
    functionName: fexp_consttime
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P384.c
    functionUses: 0
    functionsReached:
    - fsqr0
    - memcpy
    - Hacl_Bignum_Lib_bn_get_bits_u64
    - fmul0
    - KRML_MAYBE_FOR5
    - FStar_UInt64_eq_mask
    - p384_make_fone
    - KRML_MAYBE_FOR6
    - KRML_MAYBE_FOR15
    linkageType: ''
    returnType: void
    signature: void fexp_consttime(uint64_t *out, uint64_t *a, uint64_t *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fexp_consttime
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - res
    - a
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 718
    functionDepth: 2
    functionLinenumber: 718
    functionLinenumberEnd: 729
    functionName: p384_finv
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P384.c
    functionUses: 0
    functionsReached:
    - fexp_consttime
    linkageType: ''
    returnType: void
    signature: void p384_finv(uint64_t *res, uint64_t *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fexp_consttime
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - res
    - a
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 731
    functionDepth: 2
    functionLinenumber: 731
    functionLinenumberEnd: 742
    functionName: p384_fsqrt
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P384.c
    functionUses: 0
    functionsReached:
    - fexp_consttime
    linkageType: ''
    returnType: void
    signature: void p384_fsqrt(uint64_t *res, uint64_t *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_from_bytes_be
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:747,1
    - Dst: p384_make_order
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:749,1
    - Dst: bn_sub
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:750,1
    - Dst: FStar_UInt64_gte_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:751,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:751,1
    - Dst: bn_is_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:753,1
    - Dst: memset
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:757,1
    - Dst: KRML_MAYBE_FOR6
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 744
    functionDepth: 1
    functionLinenumber: 744
    functionLinenumberEnd: 768
    functionName: load_qelem_conditional
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P384.c
    functionUses: 0
    functionsReached:
    - p384_make_order
    - FStar_UInt64_eq_mask
    - memset
    - bn_is_eq_mask
    - bn_from_bytes_be
    - KRML_MAYBE_FOR6
    - FStar_UInt64_gte_mask
    - bn_sub
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t load_qelem_conditional(uint64_t *a, uint8_t *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p384_make_order
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:774,1
    - Dst: bn_sub
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:775,1
    - Dst: bn_cmovznz
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 770
    functionDepth: 1
    functionLinenumber: 770
    functionLinenumberEnd: 777
    functionName: qmod_short
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P384.c
    functionUses: 0
    functionsReached:
    - p384_make_order
    - bn_sub
    - bn_cmovznz
    linkageType: ''
    returnType: void
    signature: void qmod_short(uint64_t *a, uint64_t *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p384_make_order
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:783,1
    - Dst: bn_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 779
    functionDepth: 1
    functionLinenumber: 779
    functionLinenumberEnd: 785
    functionName: qadd
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P384.c
    functionUses: 0
    functionsReached:
    - p384_make_order
    - bn_add_mod
    linkageType: ''
    returnType: void
    signature: void qadd(uint64_t *a, uint64_t *b, uint64_t *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_mul
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:791,1
    - Dst: qmont_reduction
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:792,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 787
    functionDepth: 0
    functionLinenumber: 787
    functionLinenumberEnd: 793
    functionName: qmul
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P384.c
    functionUses: 3
    functionsReached:
    - bn_mul
    - qmont_reduction
    linkageType: ''
    returnType: void
    signature: void qmul(uint64_t *a, uint64_t *b, uint64_t *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_sqr
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:799,1
    - Dst: qmont_reduction
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:800,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 795
    functionDepth: 0
    functionLinenumber: 795
    functionLinenumberEnd: 801
    functionName: qsqr
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P384.c
    functionUses: 0
    functionsReached:
    - qmont_reduction
    - bn_sqr
    linkageType: ''
    returnType: void
    signature: void qsqr(uint64_t *a, uint64_t *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:807,1
    - Dst: qmont_reduction
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:808,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 803
    functionDepth: 1
    functionLinenumber: 803
    functionLinenumberEnd: 809
    functionName: from_qmont
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P384.c
    functionUses: 0
    functionsReached:
    - memcpy
    - qmont_reduction
    linkageType: ''
    returnType: void
    signature: void from_qmont(uint64_t *a, uint64_t *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p384_make_qone
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:818,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:819,1
    - Dst: KRML_MAYBE_FOR15
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:820,1
    - Dst: qsqr
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:825,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:826,1
    - Dst: qmul
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:828,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:829,1
    - Dst: Hacl_Bignum_Lib_bn_get_bits_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:831,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:832,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:834,1
    - Dst: KRML_MAYBE_FOR6
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:836,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:846,1
    - Dst: qsqr
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:846,1
    - Dst: Hacl_Bignum_Lib_bn_get_bits_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:848,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:849,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:851,1
    - Dst: KRML_MAYBE_FOR6
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:853,1
    - Dst: qmul
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:861,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 3
    argNames:
    - out
    - a
    - b
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 811
    functionDepth: 1
    functionLinenumber: 811
    functionLinenumberEnd: 863
    functionName: qexp_consttime
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P384.c
    functionUses: 0
    functionsReached:
    - memcpy
    - Hacl_Bignum_Lib_bn_get_bits_u64
    - qsqr
    - KRML_MAYBE_FOR5
    - p384_make_qone
    - qmul
    - FStar_UInt64_eq_mask
    - KRML_MAYBE_FOR6
    - KRML_MAYBE_FOR15
    linkageType: ''
    returnType: void
    signature: void qexp_consttime(uint64_t *out, uint64_t *a, uint64_t *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qexp_consttime
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:875,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - res
    - a
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 865
    functionDepth: 2
    functionLinenumber: 865
    functionLinenumberEnd: 876
    functionName: p384_qinv
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P384.c
    functionUses: 0
    functionsReached:
    - qexp_consttime
    linkageType: ''
    returnType: void
    signature: void p384_qinv(uint64_t *res, uint64_t *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:899,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:900,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:901,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:902,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:903,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:904,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:905,1
    - Dst: fsub0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:910,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:911,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:912,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:913,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:914,1
    - Dst: fsub0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:915,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:920,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:921,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:922,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:923,1
    - Dst: fsub0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:924,1
    - Dst: p384_make_b_coeff
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:926,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:927,1
    - Dst: fsub0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:928,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:929,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:930,1
    - Dst: fsub0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:931,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:932,1
    - Dst: p384_make_b_coeff
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:934,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:935,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:936,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:937,1
    - Dst: fsub0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:938,1
    - Dst: fsub0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:939,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:940,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:941,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:942,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:943,1
    - Dst: fsub0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:944,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:945,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:946,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:947,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:948,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:949,1
    - Dst: fsub0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:950,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:951,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:952,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:953,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:954,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 47
    argCount: 3
    argNames:
    - x
    - y
    - xy
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 878
    functionDepth: 1
    functionLinenumber: 878
    functionLinenumberEnd: 955
    functionName: point_add
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P384.c
    functionUses: 3
    functionsReached:
    - memcpy
    - fadd0
    - fmul0
    - fsub0
    - p384_make_b_coeff
    linkageType: ''
    returnType: void
    signature: void point_add(uint64_t *x, uint64_t *y, uint64_t *xy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fsqr0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:974,1
    - Dst: fsqr0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:975,1
    - Dst: fsqr0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:976,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:977,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:978,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:979,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:980,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:981,1
    - Dst: p384_make_b_coeff
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:983,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:984,1
    - Dst: fsub0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:985,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:986,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:987,1
    - Dst: fsub0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:988,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:989,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:990,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:991,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:992,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:993,1
    - Dst: p384_make_b_coeff
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:995,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:996,1
    - Dst: fsub0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:997,1
    - Dst: fsub0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:998,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:999,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1000,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1001,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1002,1
    - Dst: fsub0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1003,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1004,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1005,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1006,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1007,1
    - Dst: fsub0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1008,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1009,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1010,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1011,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 37
    argCount: 2
    argNames:
    - x
    - xx
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1012
      start: 957
    functionDepth: 1
    functionLinenumber: 957
    functionLinenumberEnd: 1012
    functionName: point_double
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P384.c
    functionUses: 5
    functionsReached:
    - fsqr0
    - fadd0
    - fmul0
    - fsub0
    - p384_make_b_coeff
    linkageType: ''
    returnType: void
    signature: void point_double(uint64_t *x, uint64_t *xx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p384_make_fzero
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1020,1
    - Dst: p384_make_fone
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1021,1
    - Dst: p384_make_fzero
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1022,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - one
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 1014
    functionDepth: 1
    functionLinenumber: 1014
    functionLinenumberEnd: 1023
    functionName: point_zero
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P384.c
    functionUses: 0
    functionsReached:
    - p384_make_fone
    - p384_make_fzero
    linkageType: ''
    returnType: void
    signature: void point_zero(uint64_t *one)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: point_zero
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1032,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1033,1
    - Dst: KRML_MAYBE_FOR7
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1034,1
    - Dst: point_double
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1039,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1040,1
    - Dst: point_add
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1042,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1043,1
    - Dst: point_zero
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1044,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1047,1
    - Dst: point_double
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1047,1
    - Dst: Hacl_Bignum_Lib_bn_get_bits_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1049,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1050,1
    - Dst: KRML_MAYBE_FOR15
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1051,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1056,1
    - Dst: point_add
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1063,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - res
    - scalar
    - p
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1065
      start: 1025
    functionDepth: 1
    functionLinenumber: 1025
    functionLinenumberEnd: 1065
    functionName: point_mul
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P384.c
    functionUses: 0
    functionsReached:
    - point_add
    - memcpy
    - KRML_MAYBE_FOR4
    - point_double
    - Hacl_Bignum_Lib_bn_get_bits_u64
    - FStar_UInt64_eq_mask
    - KRML_MAYBE_FOR7
    - KRML_MAYBE_FOR15
    - point_zero
    linkageType: ''
    returnType: void
    signature: void point_mul(uint64_t *res, uint64_t *scalar, uint64_t *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p384_make_g_x
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1074,1
    - Dst: p384_make_g_y
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1075,1
    - Dst: p384_make_fone
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1076,1
    - Dst: point_mul
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1077,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - res
    - scalar
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1067
    functionDepth: 1
    functionLinenumber: 1067
    functionLinenumberEnd: 1078
    functionName: point_mul_g
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P384.c
    functionUses: 1
    functionsReached:
    - p384_make_g_y
    - p384_make_fone
    - point_mul
    - p384_make_g_x
    linkageType: ''
    returnType: void
    signature: void point_mul_g(uint64_t *res, uint64_t *scalar)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: point_mul_g
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1084,1
    - Dst: point_mul
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1085,1
    - Dst: point_add
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1086,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - res
    - scalar1
    - scalar2
    - p
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1087
      start: 1080
    functionDepth: 0
    functionLinenumber: 1080
    functionLinenumberEnd: 1087
    functionName: point_mul_double_g
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P384.c
    functionUses: 0
    functionsReached:
    - point_add
    - point_mul_g
    - point_mul
    linkageType: ''
    returnType: void
    signature: void point_mul_double_g(uint64_t *res, uint64_t *scalar1, uint64_t
      *scalar2, uint64_t *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_qelem_conditional
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1101,1
    - Dst: load_qelem_conditional
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1102,1
    - Dst: point_mul_g
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1105,1
    - Dst: p384_finv
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1109,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1110,1
    - Dst: from_mont
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1111,1
    - Dst: qmod_short
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1112,1
    - Dst: p384_qinv
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1114,1
    - Dst: qmul
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1115,1
    - Dst: from_qmont
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1116,1
    - Dst: qadd
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1117,1
    - Dst: qmul
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1118,1
    - Dst: bn_to_bytes_be
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1119,1
    - Dst: bn_to_bytes_be
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1120,1
    - Dst: bn_is_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1122,1
    - Dst: bn_is_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 4
    argNames:
    - signature
    - m_q
    - private_key
    - nonce
    argTypes:
    - uint8_t*
    - uint64_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1089
    functionDepth: 3
    functionLinenumber: 1089
    functionLinenumberEnd: 1130
    functionName: ecdsa_sign_msg_as_qelem
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P384.c
    functionUses: 0
    functionsReached:
    - fmul0
    - qmod_short
    - bn_to_bytes_be
    - qmul
    - bn_is_eq_mask
    - from_qmont
    - from_mont
    - point_mul_g
    - load_qelem_conditional
    - qadd
    - p384_qinv
    - p384_finv
    linkageType: ''
    returnType: bool
    signature: "bool ecdsa_sign_msg_as_qelem(\n    uint8_t *signature,\n    uint64_t
      *m_q,\n    uint8_t *private_key,\n    uint8_t *nonce)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: bn_from_bytes_be
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1150,1
    - Dst: bn_from_bytes_be
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1151,1
    - Dst: bn_is_lt_prime_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1154,1
    - Dst: bn_is_lt_prime_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1155,1
    - Dst: to_mont
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1167,1
    - Dst: to_mont
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1168,1
    - Dst: fsqr0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1170,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1171,1
    - Dst: p384_make_a_coeff
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1172,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1173,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1174,1
    - Dst: p384_make_b_coeff
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1175,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1176,1
    - Dst: fsqr0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1177,1
    - Dst: bn_is_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1178,1
    - Dst: to_mont
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1189,1
    - Dst: to_mont
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1190,1
    - Dst: p384_make_fone
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1191,1
    - Dst: bn_from_bytes_be
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1194,1
    - Dst: bn_from_bytes_be
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1195,1
    - Dst: p384_make_order
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1197,1
    - Dst: bn_sub
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1198,1
    - Dst: FStar_UInt64_gte_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1199,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1199,1
    - Dst: bn_is_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1201,1
    - Dst: p384_make_order
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1205,1
    - Dst: bn_sub
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1206,1
    - Dst: FStar_UInt64_gte_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1207,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1207,1
    - Dst: bn_is_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1209,1
    - Dst: p384_qinv
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1217,1
    - Dst: from_qmont
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1219,1
    - Dst: qmul
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1220,1
    - Dst: from_qmont
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1222,1
    - Dst: qmul
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1223,1
    - Dst: point_mul_double_g
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1225,1
    - Dst: bn_is_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1228,1
    - Dst: p384_finv
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1237,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1238,1
    - Dst: from_mont
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1239,1
    - Dst: qmod_short
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1240,1
    - Dst: bn_is_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1241,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 44
    argCount: 4
    argNames:
    - m_q
    - public_key
    - signature_r
    - signature_s
    argTypes:
    - uint64_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1244
      start: 1132
    functionDepth: 3
    functionLinenumber: 1132
    functionLinenumberEnd: 1244
    functionName: ecdsa_verify_msg_as_qelem
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P384.c
    functionUses: 0
    functionsReached:
    - bn_is_lt_prime_mask
    - fmul0
    - fadd0
    - FStar_UInt64_eq_mask
    - bn_is_eq_mask
    - bn_sub
    - qmod_short
    - point_mul_double_g
    - to_mont
    - p384_make_b_coeff
    - FStar_UInt64_gte_mask
    - fsqr0
    - bn_from_bytes_be
    - from_mont
    - p384_make_a_coeff
    - p384_finv
    - p384_make_order
    - p384_make_fone
    - qmul
    - from_qmont
    - p384_qinv
    linkageType: ''
    returnType: bool
    signature: "bool ecdsa_verify_msg_as_qelem(\n    uint64_t *m_q,\n    uint8_t *public_key,\n
      \   uint8_t *signature_r,\n    uint8_t *signature_s)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1292,1
    - Dst: KRML_MAYBE_UNUSED_VAR
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1293,1
    - Dst: bn_from_bytes_be
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1295,1
    - Dst: qmod_short
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1296,1
    - Dst: ecdsa_sign_msg_as_qelem
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - signature
    - msg_len
    - msg
    - private_key
    - nonce
    argTypes:
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1299
      start: 1282
    functionDepth: 1
    functionLinenumber: 1282
    functionLinenumberEnd: 1299
    functionName: Hacl_P384_ecdsa_sign_p384_without_hash
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P384.c
    functionUses: 0
    functionsReached:
    - memcpy
    - qmod_short
    - bn_from_bytes_be
    - KRML_MAYBE_UNUSED_VAR
    - ecdsa_sign_msg_as_qelem
    linkageType: ''
    returnType: bool
    signature: "bool Hacl_P384_ecdsa_sign_p384_without_hash(\n    uint8_t *signature,\n
      \   uint32_t msg_len,\n    uint8_t *msg,\n    uint8_t *private_key,\n    uint8_t
      *nonce)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1331,1
    - Dst: KRML_MAYBE_UNUSED_VAR
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1332,1
    - Dst: bn_from_bytes_be
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1334,1
    - Dst: qmod_short
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1335,1
    - Dst: ecdsa_verify_msg_as_qelem
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - msg_len
    - msg
    - public_key
    - signature_r
    - signature_s
    argTypes:
    - uint32_t
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1338
      start: 1321
    functionDepth: 1
    functionLinenumber: 1321
    functionLinenumberEnd: 1338
    functionName: Hacl_P384_ecdsa_verif_without_hash
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P384.c
    functionUses: 0
    functionsReached:
    - memcpy
    - qmod_short
    - bn_from_bytes_be
    - KRML_MAYBE_UNUSED_VAR
    - ecdsa_verify_msg_as_qelem
    linkageType: ''
    returnType: bool
    signature: "bool Hacl_P384_ecdsa_verif_without_hash(\n    uint32_t msg_len,\n
      \   uint8_t *msg,\n    uint8_t *public_key,\n    uint8_t *signature_r,\n    uint8_t
      *signature_s)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bn_from_bytes_be
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1367,1
    - Dst: bn_from_bytes_be
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1368,1
    - Dst: bn_is_lt_prime_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1371,1
    - Dst: bn_is_lt_prime_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1372,1
    - Dst: to_mont
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1384,1
    - Dst: to_mont
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1385,1
    - Dst: fsqr0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1387,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1388,1
    - Dst: p384_make_a_coeff
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1389,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1390,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1391,1
    - Dst: p384_make_b_coeff
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1392,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1393,1
    - Dst: fsqr0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1394,1
    - Dst: bn_is_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1395,1
    - Dst: to_mont
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1406,1
    - Dst: to_mont
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1407,1
    - Dst: p384_make_fone
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1408,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 1
    argNames:
    - public_key
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1412
      start: 1358
    functionDepth: 1
    functionLinenumber: 1358
    functionLinenumberEnd: 1412
    functionName: Hacl_P384_validate_public_key
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P384.c
    functionUses: 0
    functionsReached:
    - fsqr0
    - bn_is_lt_prime_mask
    - fmul0
    - fadd0
    - to_mont
    - p384_make_fone
    - bn_is_eq_mask
    - bn_from_bytes_be
    - p384_make_b_coeff
    - p384_make_a_coeff
    linkageType: ''
    returnType: bool
    signature: bool Hacl_P384_validate_public_key(uint8_t *public_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_from_bytes_be
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1428,1
    - Dst: p384_make_order
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1430,1
    - Dst: bn_sub
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1431,1
    - Dst: FStar_UInt64_gte_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1432,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1432,1
    - Dst: bn_is_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - private_key
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1438
      start: 1424
    functionDepth: 1
    functionLinenumber: 1424
    functionLinenumberEnd: 1438
    functionName: Hacl_P384_validate_private_key
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P384.c
    functionUses: 0
    functionsReached:
    - p384_make_order
    - FStar_UInt64_eq_mask
    - bn_is_eq_mask
    - bn_from_bytes_be
    - FStar_UInt64_gte_mask
    - bn_sub
    linkageType: ''
    returnType: bool
    signature: bool Hacl_P384_validate_private_key(uint8_t *private_key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1469,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pk
    - pk_raw
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1471
      start: 1462
    functionDepth: 1
    functionLinenumber: 1462
    functionLinenumberEnd: 1471
    functionName: Hacl_P384_uncompressed_to_raw
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P384.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: bool
    signature: bool Hacl_P384_uncompressed_to_raw(uint8_t *pk, uint8_t *pk_raw)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: bn_from_bytes_be
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1496,1
    - Dst: bn_is_lt_prime_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1497,1
    - Dst: to_mont
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1506,1
    - Dst: fsqr0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1508,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1509,1
    - Dst: p384_make_a_coeff
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1510,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1511,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1512,1
    - Dst: p384_make_b_coeff
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1513,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1514,1
    - Dst: p384_fsqrt
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1515,1
    - Dst: from_mont
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1516,1
    - Dst: fsqr0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1517,1
    - Dst: bn_is_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1518,1
    - Dst: fsub0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1529,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1536,1
    - Dst: bn_to_bytes_be
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1537,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 2
    argNames:
    - pk
    - pk_raw
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1540
      start: 1483
    functionDepth: 3
    functionLinenumber: 1483
    functionLinenumberEnd: 1540
    functionName: Hacl_P384_compressed_to_raw
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P384.c
    functionUses: 0
    functionsReached:
    - fsqr0
    - memcpy
    - bn_is_lt_prime_mask
    - fmul0
    - fadd0
    - fsub0
    - bn_to_bytes_be
    - to_mont
    - bn_is_eq_mask
    - bn_from_bytes_be
    - p384_make_b_coeff
    - from_mont
    - p384_fsqrt
    - p384_make_a_coeff
    linkageType: ''
    returnType: bool
    signature: bool Hacl_P384_compressed_to_raw(uint8_t *pk, uint8_t *pk_raw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pk_raw
    - pk
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1555
      start: 1550
    functionDepth: 1
    functionLinenumber: 1550
    functionLinenumberEnd: 1555
    functionName: Hacl_P384_raw_to_uncompressed
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P384.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void Hacl_P384_raw_to_uncompressed(uint8_t *pk_raw, uint8_t *pk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_from_bytes_be
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1571,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pk_raw
    - pk
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1575
      start: 1565
    functionDepth: 1
    functionLinenumber: 1565
    functionLinenumberEnd: 1575
    functionName: Hacl_P384_raw_to_compressed
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P384.c
    functionUses: 0
    functionsReached:
    - bn_from_bytes_be
    - memcpy
    linkageType: ''
    returnType: void
    signature: void Hacl_P384_raw_to_compressed(uint8_t *pk_raw, uint8_t *pk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_qelem_conditional
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1598,1
    - Dst: point_mul_g
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1599,1
    - Dst: p384_finv
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1607,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1608,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1609,1
    - Dst: from_mont
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1610,1
    - Dst: from_mont
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1611,1
    - Dst: bn_to_bytes_be
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1614,1
    - Dst: bn_to_bytes_be
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - public_key
    - private_key
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1617
      start: 1592
    functionDepth: 3
    functionLinenumber: 1592
    functionLinenumberEnd: 1617
    functionName: Hacl_P384_dh_initiator
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P384.c
    functionUses: 0
    functionsReached:
    - fmul0
    - bn_to_bytes_be
    - from_mont
    - point_mul_g
    - load_qelem_conditional
    - p384_finv
    linkageType: ''
    returnType: bool
    signature: bool Hacl_P384_dh_initiator(uint8_t *public_key, uint8_t *private_key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bn_from_bytes_be
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1642,1
    - Dst: bn_from_bytes_be
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1643,1
    - Dst: bn_is_lt_prime_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1646,1
    - Dst: bn_is_lt_prime_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1647,1
    - Dst: to_mont
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1659,1
    - Dst: to_mont
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1660,1
    - Dst: fsqr0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1662,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1663,1
    - Dst: p384_make_a_coeff
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1664,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1665,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1666,1
    - Dst: p384_make_b_coeff
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1667,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1668,1
    - Dst: fsqr0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1669,1
    - Dst: bn_is_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1670,1
    - Dst: to_mont
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1681,1
    - Dst: to_mont
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1682,1
    - Dst: p384_make_fone
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1683,1
    - Dst: load_qelem_conditional
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1686,1
    - Dst: point_mul
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1689,1
    - Dst: p384_finv
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1697,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1698,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1699,1
    - Dst: from_mont
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1700,1
    - Dst: from_mont
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1701,1
    - Dst: bn_to_bytes_be
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1704,1
    - Dst: bn_to_bytes_be
      Src: /src/nss/lib/freebl/verified/Hacl_P384.c:1705,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 34
    argCount: 3
    argNames:
    - shared_secret
    - their_pubkey
    - private_key
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1708
      start: 1631
    functionDepth: 3
    functionLinenumber: 1631
    functionLinenumberEnd: 1708
    functionName: Hacl_P384_dh_responder
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P384.c
    functionUses: 0
    functionsReached:
    - fsqr0
    - bn_is_lt_prime_mask
    - fmul0
    - fadd0
    - point_mul
    - to_mont
    - bn_to_bytes_be
    - p384_make_fone
    - bn_is_eq_mask
    - bn_from_bytes_be
    - p384_make_b_coeff
    - from_mont
    - load_qelem_conditional
    - p384_make_a_coeff
    - p384_finv
    linkageType: ''
    returnType: bool
    signature: bool Hacl_P384_dh_responder(uint8_t *shared_secret, uint8_t *their_pubkey,
      uint8_t *private_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_FOR4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:37,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 46
    functionName: bn_is_zero_mask4
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 0
    functionsReached:
    - KRML_MAYBE_FOR4
    - FStar_UInt64_eq_mask
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t bn_is_zero_mask4(uint64_t *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_is_zero_mask4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 53
    functionName: bn_is_zero_vartime4
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 0
    functionsReached:
    - bn_is_zero_mask4
    linkageType: ''
    returnType: bool
    signature: bool bn_is_zero_vartime4(uint64_t *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_FOR4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:59,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 67
    functionName: bn_is_eq_mask4
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 0
    functionsReached:
    - KRML_MAYBE_FOR4
    - FStar_UInt64_eq_mask
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t bn_is_eq_mask4(uint64_t *a, uint64_t *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_is_eq_mask4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 74
    functionName: bn_is_eq_vartime4
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 0
    functionsReached:
    - bn_is_eq_mask4
    linkageType: ''
    returnType: bool
    signature: bool bn_is_eq_vartime4(uint64_t *a, uint64_t *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:79,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - res
    - cin
    - x
    - y
    argTypes:
    - uint64_t*
    - uint64_t
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 88
    functionName: bn_cmovznz4
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 0
    functionsReached:
    - KRML_MAYBE_FOR4
    - FStar_UInt64_eq_mask
    linkageType: ''
    returnType: void
    signature: void bn_cmovznz4(uint64_t *res, uint64_t cin, uint64_t *x, uint64_t
      *y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lib_IntTypes_Intrinsics_add_carry_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:98,1
    - Dst: Lib_IntTypes_Intrinsics_add_carry_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:102,1
    - Dst: Lib_IntTypes_Intrinsics_add_carry_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:106,1
    - Dst: Lib_IntTypes_Intrinsics_add_carry_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:110,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:119,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:123,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:127,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:131,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 4
    argNames:
    - res
    - n
    - x
    - y
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 142
    functionName: bn_add_mod4
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 0
    functionsReached:
    - KRML_MAYBE_FOR4
    - Lib_IntTypes_Intrinsics_sub_borrow_u64
    - Lib_IntTypes_Intrinsics_add_carry_u64
    linkageType: ''
    returnType: void
    signature: void bn_add_mod4(uint64_t *res, uint64_t *n, uint64_t *x, uint64_t
      *y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:152,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:156,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:160,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - res
    - x
    - y
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 168
    functionName: bn_sub4
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 0
    functionsReached:
    - Lib_IntTypes_Intrinsics_sub_borrow_u64
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t bn_sub4(uint64_t *res, uint64_t *x, uint64_t *y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:178,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:182,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:186,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:190,1
    - Dst: Lib_IntTypes_Intrinsics_add_carry_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:199,1
    - Dst: Lib_IntTypes_Intrinsics_add_carry_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:203,1
    - Dst: Lib_IntTypes_Intrinsics_add_carry_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:207,1
    - Dst: Lib_IntTypes_Intrinsics_add_carry_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:211,1
    - Dst: KRML_HOST_IGNORE
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:214,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 4
    argNames:
    - res
    - n
    - x
    - y
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 223
    functionName: bn_sub_mod4
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 0
    functionsReached:
    - KRML_HOST_IGNORE
    - KRML_MAYBE_FOR4
    - Lib_IntTypes_Intrinsics_sub_borrow_u64
    - Lib_IntTypes_Intrinsics_add_carry_u64
    linkageType: ''
    returnType: void
    signature: void bn_sub_mod4(uint64_t *res, uint64_t *n, uint64_t *x, uint64_t
      *y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:228,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:229,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:240,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:243,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:246,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - res
    - x
    - y
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 252
    functionName: bn_mul4
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 0
    functionsReached:
    - memset
    - Hacl_Bignum_Base_mul_wide_add2_u64
    - KRML_MAYBE_FOR4
    linkageType: ''
    returnType: void
    signature: void bn_mul4(uint64_t *res, uint64_t *x, uint64_t *y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:257,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:258,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:270,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:273,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:276,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:279,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:283,1
    - Dst: Hacl_Bignum_Addition_bn_add_eq_len_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:286,1
    - Dst: KRML_HOST_IGNORE
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:287,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:289,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:293,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:294,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:294,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:295,1
    - Dst: Hacl_Bignum_Addition_bn_add_eq_len_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:298,1
    - Dst: KRML_HOST_IGNORE
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:299,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 2
    argNames:
    - res
    - x
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 300
    functionName: bn_sqr4
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 0
    functionsReached:
    - KRML_MAYBE_FOR4
    - FStar_UInt128_uint128_to_uint64
    - FStar_UInt128_shift_right
    - FStar_UInt128_mul_wide
    - memset
    - Hacl_Bignum_Base_mul_wide_add2_u64
    - Hacl_Bignum_Addition_bn_add_eq_len_u64
    - KRML_HOST_IGNORE
    linkageType: ''
    returnType: void
    signature: void bn_sqr4(uint64_t *res, uint64_t *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_HOST_IGNORE
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:306,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:307,1
    - Dst: store64_be
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - res
    - f
    argTypes:
    - uint8_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 312
    functionName: bn_to_bytes_be4
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 0
    functionsReached:
    - store64_be
    - KRML_MAYBE_FOR4
    - KRML_HOST_IGNORE
    linkageType: ''
    returnType: void
    signature: void bn_to_bytes_be4(uint8_t *res, uint64_t *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_FOR4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:317,1
    - Dst: load64_be
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - res
    - b
    argTypes:
    - uint64_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 325
    functionName: bn_from_bytes_be4
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 0
    functionsReached:
    - KRML_MAYBE_FOR4
    - load64_be
    linkageType: ''
    returnType: void
    signature: void bn_from_bytes_be4(uint64_t *res, uint8_t *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_to_bytes_be4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:330,1
    - Dst: bn_to_bytes_be4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - res
    - x
    - y
    argTypes:
    - uint8_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 327
    functionDepth: 2
    functionLinenumber: 327
    functionLinenumberEnd: 332
    functionName: bn2_to_bytes_be4
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 0
    functionsReached:
    - bn_to_bytes_be4
    linkageType: ''
    returnType: void
    signature: void bn2_to_bytes_be4(uint8_t *res, uint64_t *x, uint64_t *y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - n
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 341
    functionName: make_prime
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void make_prime(uint64_t *n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - n
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 350
    functionName: make_order
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void make_order(uint64_t *n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - a
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 359
    functionName: make_a_coeff
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void make_a_coeff(uint64_t *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - b
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 368
    functionName: make_b_coeff
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void make_b_coeff(uint64_t *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - n
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 377
    functionName: make_g_x
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void make_g_x(uint64_t *n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - n
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 386
    functionName: make_g_y
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void make_g_y(uint64_t *n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - n
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 395
    functionName: make_fmont_R2
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void make_fmont_R2(uint64_t *n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - n
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 404
    functionName: make_fzero
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void make_fzero(uint64_t *n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - n
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 413
    functionName: make_fone
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void make_fone(uint64_t *n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_prime
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:419,1
    - Dst: bn_sub4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 415
    functionDepth: 2
    functionLinenumber: 415
    functionLinenumberEnd: 422
    functionName: bn_is_lt_prime_mask4
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 0
    functionsReached:
    - make_prime
    - bn_sub4
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t bn_is_lt_prime_mask4(uint64_t *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_is_eq_mask4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 424
    functionDepth: 2
    functionLinenumber: 424
    functionLinenumberEnd: 429
    functionName: feq_mask
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 0
    functionsReached:
    - bn_is_eq_mask4
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t feq_mask(uint64_t *a, uint64_t *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_prime
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:435,1
    - Dst: bn_add_mod4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - res
    - x
    - y
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 431
    functionDepth: 2
    functionLinenumber: 431
    functionLinenumberEnd: 437
    functionName: fadd0
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 8
    functionsReached:
    - make_prime
    - bn_add_mod4
    linkageType: ''
    returnType: void
    signature: void fadd0(uint64_t *res, uint64_t *x, uint64_t *y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_prime
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:443,1
    - Dst: bn_sub_mod4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - res
    - x
    - y
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 439
    functionDepth: 2
    functionLinenumber: 439
    functionLinenumberEnd: 445
    functionName: fsub0
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 5
    functionsReached:
    - make_prime
    - bn_sub_mod4
    linkageType: ''
    returnType: void
    signature: void fsub0(uint64_t *res, uint64_t *x, uint64_t *y)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fsub0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:452,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - f
    - is_negate
    argTypes:
    - uint64_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 454
    functionName: fnegate_conditional_vartime
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 0
    functionsReached:
    - fsub0
    linkageType: ''
    returnType: void
    signature: void fnegate_conditional_vartime(uint64_t *f, bool is_negate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_prime
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:460,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:462,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:473,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:476,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:479,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:482,1
    - Dst: Lib_IntTypes_Intrinsics_add_carry_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:487,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:488,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:496,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:500,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:504,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:508,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 2
    argNames:
    - res
    - x
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 519
    functionName: mont_reduction
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 7
    functionsReached:
    - memcpy
    - KRML_MAYBE_FOR4
    - make_prime
    - Hacl_Bignum_Base_mul_wide_add2_u64
    - Lib_IntTypes_Intrinsics_sub_borrow_u64
    - Lib_IntTypes_Intrinsics_add_carry_u64
    linkageType: ''
    returnType: void
    signature: void mont_reduction(uint64_t *res, uint64_t *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_mul4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:525,1
    - Dst: mont_reduction
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - res
    - x
    - y
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 521
    functionDepth: 2
    functionLinenumber: 521
    functionLinenumberEnd: 527
    functionName: fmul0
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 22
    functionsReached:
    - mont_reduction
    - bn_mul4
    linkageType: ''
    returnType: void
    signature: void fmul0(uint64_t *res, uint64_t *x, uint64_t *y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_sqr4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:533,1
    - Dst: mont_reduction
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - res
    - x
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 529
    functionDepth: 2
    functionLinenumber: 529
    functionLinenumberEnd: 535
    functionName: fsqr0
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 7
    functionsReached:
    - mont_reduction
    - bn_sqr4
    linkageType: ''
    returnType: void
    signature: void fsqr0(uint64_t *res, uint64_t *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:541,1
    - Dst: mont_reduction
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - res
    - a
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 537
    functionDepth: 2
    functionLinenumber: 537
    functionLinenumberEnd: 543
    functionName: from_mont
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 5
    functionsReached:
    - mont_reduction
    - memcpy
    linkageType: ''
    returnType: void
    signature: void from_mont(uint64_t *res, uint64_t *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_fmont_R2
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:549,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - res
    - a
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 545
    functionDepth: 1
    functionLinenumber: 545
    functionLinenumberEnd: 551
    functionName: to_mont
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 5
    functionsReached:
    - make_fmont_R2
    - fmul0
    linkageType: ''
    returnType: void
    signature: void to_mont(uint64_t *res, uint64_t *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_b_coeff
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:557,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - res
    - x
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 553
    functionDepth: 1
    functionLinenumber: 553
    functionLinenumberEnd: 559
    functionName: fmul_by_b_coeff
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 0
    functionsReached:
    - fmul0
    - make_b_coeff
    linkageType: ''
    returnType: void
    signature: void fmul_by_b_coeff(uint64_t *res, uint64_t *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fsqr0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:564,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - res
    - x
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 561
    functionDepth: 0
    functionLinenumber: 561
    functionLinenumberEnd: 566
    functionName: fcube
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 0
    functionsReached:
    - fmul0
    - fsqr0
    linkageType: ''
    returnType: void
    signature: void fcube(uint64_t *res, uint64_t *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:576,1
    - Dst: fsqr0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:578,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:580,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:581,1
    - Dst: fsqr0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:583,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:585,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:586,1
    - Dst: KRML_MAYBE_FOR3
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:587,1
    - Dst: fsqr0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:587,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:588,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:589,1
    - Dst: KRML_MAYBE_FOR6
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:590,1
    - Dst: fsqr0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:590,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:591,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:592,1
    - Dst: KRML_MAYBE_FOR3
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:593,1
    - Dst: fsqr0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:593,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:594,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:595,1
    - Dst: KRML_MAYBE_FOR15
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:596,1
    - Dst: fsqr0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:596,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:597,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:598,1
    - Dst: KRML_MAYBE_FOR2
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:599,1
    - Dst: fsqr0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:599,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:600,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:601,1
    - Dst: fsqr0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:603,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:605,1
    - Dst: fsqr0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:607,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:609,1
    - Dst: fsqr0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:611,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:613,1
    - Dst: fsqr0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:615,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:617,1
    - Dst: KRML_MAYBE_FOR2
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:618,1
    - Dst: fsqr0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:618,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:619,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:620,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 44
    argCount: 2
    argNames:
    - res
    - a
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 621
    functionName: finv
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 7
    functionsReached:
    - fsqr0
    - memcpy
    - KRML_MAYBE_FOR2
    - fmul0
    - KRML_MAYBE_FOR3
    - KRML_MAYBE_FOR6
    - KRML_MAYBE_FOR15
    linkageType: ''
    returnType: void
    signature: void finv(uint64_t *res, uint64_t *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:629,1
    - Dst: fsqr0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:631,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:633,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:634,1
    - Dst: KRML_MAYBE_FOR2
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:635,1
    - Dst: fsqr0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:635,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:636,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:637,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:638,1
    - Dst: fsqr0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:638,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:639,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:640,1
    - Dst: KRML_MAYBE_FOR8
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:641,1
    - Dst: fsqr0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:641,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:642,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:643,1
    - Dst: KRML_MAYBE_FOR16
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:644,1
    - Dst: fsqr0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:644,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:645,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:646,1
    - Dst: fsqr0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:648,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:650,1
    - Dst: fsqr0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:652,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:654,1
    - Dst: fsqr0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:656,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:658,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 2
    argNames:
    - res
    - a
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 623
    functionDepth: 1
    functionLinenumber: 623
    functionLinenumberEnd: 659
    functionName: fsqrt
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 1
    functionsReached:
    - fsqr0
    - memcpy
    - KRML_MAYBE_FOR4
    - KRML_MAYBE_FOR2
    - fmul0
    - KRML_MAYBE_FOR8
    - KRML_MAYBE_FOR16
    linkageType: ''
    returnType: void
    signature: void fsqrt(uint64_t *res, uint64_t *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_g_x
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:667,1
    - Dst: make_g_y
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:668,1
    - Dst: make_fone
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 661
    functionDepth: 1
    functionLinenumber: 661
    functionLinenumberEnd: 670
    functionName: make_base_point
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 0
    functionsReached:
    - make_g_y
    - make_g_x
    - make_fone
    linkageType: ''
    returnType: void
    signature: void make_base_point(uint64_t *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_fzero
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:678,1
    - Dst: make_fone
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:679,1
    - Dst: make_fzero
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 672
    functionDepth: 1
    functionLinenumber: 672
    functionLinenumberEnd: 681
    functionName: make_point_at_inf
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 0
    functionsReached:
    - make_fzero
    - make_fone
    linkageType: ''
    returnType: void
    signature: void make_point_at_inf(uint64_t *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_is_zero_vartime4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 683
    functionDepth: 3
    functionLinenumber: 683
    functionLinenumberEnd: 688
    functionName: is_point_at_inf_vartime
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 0
    functionsReached:
    - bn_is_zero_vartime4
    linkageType: ''
    returnType: bool
    signature: bool is_point_at_inf_vartime(uint64_t *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: finv
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:699,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:700,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:701,1
    - Dst: from_mont
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:702,1
    - Dst: from_mont
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - res
    - p
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 690
    functionDepth: 0
    functionLinenumber: 690
    functionLinenumberEnd: 704
    functionName: to_aff_point
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 0
    functionsReached:
    - fmul0
    - finv
    - from_mont
    linkageType: ''
    returnType: void
    signature: void to_aff_point(uint64_t *res, uint64_t *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: finv
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:712,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:713,1
    - Dst: from_mont
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - res
    - p
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 706
    functionDepth: 0
    functionLinenumber: 706
    functionLinenumberEnd: 715
    functionName: to_aff_point_x
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 0
    functionsReached:
    - fmul0
    - finv
    - from_mont
    linkageType: ''
    returnType: void
    signature: void to_aff_point_x(uint64_t *res, uint64_t *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_mont
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:725,1
    - Dst: to_mont
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:726,1
    - Dst: make_fone
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:727,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - res
    - p
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 717
    functionDepth: 1
    functionLinenumber: 717
    functionLinenumberEnd: 728
    functionName: to_proj_point
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 0
    functionsReached:
    - make_fone
    - to_mont
    linkageType: ''
    returnType: void
    signature: void to_proj_point(uint64_t *res, uint64_t *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_mont
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:738,1
    - Dst: to_mont
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:739,1
    - Dst: fcube
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:741,1
    - Dst: make_a_coeff
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:742,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:743,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:744,1
    - Dst: make_b_coeff
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:745,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:746,1
    - Dst: fsqr0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:747,1
    - Dst: feq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:748,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - p
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 730
    functionDepth: 3
    functionLinenumber: 730
    functionLinenumberEnd: 751
    functionName: is_on_curve_vartime
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 0
    functionsReached:
    - fsqr0
    - fadd0
    - fmul0
    - fcube
    - to_mont
    - make_a_coeff
    - feq_mask
    - make_b_coeff
    linkageType: ''
    returnType: bool
    signature: bool is_on_curve_vartime(uint64_t *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn2_to_bytes_be4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:758,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - res
    - p
    argTypes:
    - uint8_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 753
    functionDepth: 3
    functionLinenumber: 753
    functionLinenumberEnd: 759
    functionName: aff_point_store
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 0
    functionsReached:
    - bn2_to_bytes_be4
    linkageType: ''
    returnType: void
    signature: void aff_point_store(uint8_t *res, uint64_t *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_aff_point
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:765,1
    - Dst: aff_point_store
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - res
    - p
    argTypes:
    - uint8_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 761
    functionDepth: 4
    functionLinenumber: 761
    functionLinenumberEnd: 767
    functionName: point_store
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 1
    functionsReached:
    - aff_point_store
    - to_aff_point
    linkageType: ''
    returnType: void
    signature: void point_store(uint8_t *res, uint64_t *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bn_from_bytes_be4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:776,1
    - Dst: bn_from_bytes_be4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:777,1
    - Dst: bn_is_lt_prime_mask4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:780,1
    - Dst: bn_is_lt_prime_mask4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:781,1
    - Dst: is_on_curve_vartime
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:787,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - p
    - b
    argTypes:
    - uint64_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 769
    functionDepth: 4
    functionLinenumber: 769
    functionLinenumberEnd: 788
    functionName: aff_point_load_vartime
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 0
    functionsReached:
    - bn_is_lt_prime_mask4
    - bn_from_bytes_be4
    - is_on_curve_vartime
    linkageType: ''
    returnType: bool
    signature: bool aff_point_load_vartime(uint64_t *p, uint8_t *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: aff_point_load_vartime
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:794,1
    - Dst: to_proj_point
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:796,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - p
    - b
    argTypes:
    - uint64_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 790
    functionDepth: 5
    functionLinenumber: 790
    functionLinenumberEnd: 799
    functionName: load_point_vartime
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 0
    functionsReached:
    - aff_point_load_vartime
    - to_proj_point
    linkageType: ''
    returnType: bool
    signature: bool load_point_vartime(uint64_t *p, uint8_t *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bn_from_bytes_be4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:810,1
    - Dst: bn_is_lt_prime_mask4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:811,1
    - Dst: to_mont
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:820,1
    - Dst: fcube
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:822,1
    - Dst: make_a_coeff
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:823,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:824,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:825,1
    - Dst: make_b_coeff
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:826,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:827,1
    - Dst: fsqrt
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:828,1
    - Dst: from_mont
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:829,1
    - Dst: fsqr0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:830,1
    - Dst: feq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:831,1
    - Dst: fnegate_conditional_vartime
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:839,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - x
    - y
    - s
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 801
    functionDepth: 3
    functionLinenumber: 801
    functionLinenumberEnd: 841
    functionName: aff_point_decompress_vartime
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 0
    functionsReached:
    - bn_is_lt_prime_mask4
    - fsqr0
    - fadd0
    - fmul0
    - fcube
    - fnegate_conditional_vartime
    - to_mont
    - make_a_coeff
    - from_mont
    - feq_mask
    - fsqrt
    - bn_from_bytes_be4
    - make_b_coeff
    linkageType: ''
    returnType: bool
    signature: bool aff_point_decompress_vartime(uint64_t *x, uint64_t *y, uint8_t
      *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fsqr0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:860,1
    - Dst: fsqr0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:861,1
    - Dst: fsqr0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:862,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:863,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:864,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:865,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:866,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:867,1
    - Dst: fmul_by_b_coeff
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:868,1
    - Dst: fsub0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:869,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:870,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:871,1
    - Dst: fsub0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:872,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:873,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:874,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:875,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:876,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:877,1
    - Dst: fmul_by_b_coeff
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:878,1
    - Dst: fsub0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:879,1
    - Dst: fsub0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:880,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:881,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:882,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:883,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:884,1
    - Dst: fsub0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:885,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:886,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:887,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:888,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:889,1
    - Dst: fsub0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:890,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:891,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:892,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:893,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 2
    argNames:
    - res
    - p
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 843
    functionDepth: 2
    functionLinenumber: 843
    functionLinenumberEnd: 894
    functionName: point_double
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 6
    functionsReached:
    - fsqr0
    - fadd0
    - fmul0
    - fsub0
    - fmul_by_b_coeff
    linkageType: ''
    returnType: void
    signature: void point_double(uint64_t *res, uint64_t *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:917,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:918,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:919,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:920,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:921,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:922,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:923,1
    - Dst: fsub0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:928,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:929,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:930,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:931,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:932,1
    - Dst: fsub0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:933,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:938,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:939,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:940,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:941,1
    - Dst: fsub0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:942,1
    - Dst: fmul_by_b_coeff
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:943,1
    - Dst: fsub0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:944,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:945,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:946,1
    - Dst: fsub0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:947,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:948,1
    - Dst: fmul_by_b_coeff
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:949,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:950,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:951,1
    - Dst: fsub0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:952,1
    - Dst: fsub0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:953,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:954,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:955,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:956,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:957,1
    - Dst: fsub0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:958,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:959,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:960,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:961,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:962,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:963,1
    - Dst: fsub0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:964,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:965,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:966,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:967,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:968,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 45
    argCount: 3
    argNames:
    - res
    - p
    - q
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 896
    functionDepth: 2
    functionLinenumber: 896
    functionLinenumberEnd: 969
    functionName: point_add
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 5
    functionsReached:
    - memcpy
    - fadd0
    - fmul0
    - fsub0
    - fmul_by_b_coeff
    linkageType: ''
    returnType: void
    signature: void point_add(uint64_t *res, uint64_t *p, uint64_t *q)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_point_at_inf
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:978,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:979,1
    - Dst: KRML_MAYBE_FOR7
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:980,1
    - Dst: point_double
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:985,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:986,1
    - Dst: point_add
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:990,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:991,1
    - Dst: make_point_at_inf
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:994,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:997,1
    - Dst: point_double
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:997,1
    - Dst: Hacl_Bignum_Lib_bn_get_bits_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:999,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1000,1
    - Dst: KRML_MAYBE_FOR15
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1001,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1005,1
    - Dst: KRML_MAYBE_FOR12
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1007,1
    - Dst: point_add
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1014,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 3
    argNames:
    - res
    - scalar
    - p
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 971
    functionDepth: 2
    functionLinenumber: 971
    functionLinenumberEnd: 1016
    functionName: point_mul
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 3
    functionsReached:
    - point_add
    - memcpy
    - KRML_MAYBE_FOR4
    - point_double
    - KRML_MAYBE_FOR12
    - Hacl_Bignum_Lib_bn_get_bits_u64
    - FStar_UInt64_eq_mask
    - KRML_MAYBE_FOR7
    - make_point_at_inf
    - KRML_MAYBE_FOR15
    linkageType: ''
    returnType: void
    signature: void point_mul(uint64_t *res, uint64_t *scalar, uint64_t *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1021,1
    - Dst: KRML_MAYBE_FOR15
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1022,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1026,1
    - Dst: KRML_MAYBE_FOR12
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1028,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - table
    - bits_l
    - tmp
    argTypes:
    - uint64_t*
    - uint64_t
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1018
    functionDepth: 1
    functionLinenumber: 1018
    functionLinenumberEnd: 1035
    functionName: precomp_get_consttime
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 1
    functionsReached:
    - KRML_MAYBE_FOR15
    - memcpy
    - KRML_MAYBE_FOR12
    - FStar_UInt64_eq_mask
    linkageType: ''
    returnType: void
    signature: void precomp_get_consttime(const uint64_t *table, uint64_t bits_l,
      uint64_t *tmp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_base_point
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1041,1
    - Dst: make_point_at_inf
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1073,1
    - Dst: KRML_MAYBE_FOR16
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1075,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1079,1
    - Dst: point_double
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1079,1
    - Dst: Hacl_Bignum_Lib_bn_get_bits_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1081,1
    - Dst: precomp_get_consttime
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1082,1
    - Dst: point_add
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1083,1
    - Dst: Hacl_Bignum_Lib_bn_get_bits_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1085,1
    - Dst: precomp_get_consttime
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1086,1
    - Dst: point_add
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1087,1
    - Dst: Hacl_Bignum_Lib_bn_get_bits_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1089,1
    - Dst: precomp_get_consttime
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1090,1
    - Dst: point_add
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1091,1
    - Dst: Hacl_Bignum_Lib_bn_get_bits_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1093,1
    - Dst: precomp_get_consttime
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1094,1
    - Dst: point_add
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1095,1
    - Dst: KRML_HOST_IGNORE
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1096,1
    - Dst: KRML_HOST_IGNORE
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1097,1
    - Dst: KRML_HOST_IGNORE
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1098,1
    - Dst: KRML_HOST_IGNORE
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1099,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 2
    argNames:
    - res
    - scalar
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 1037
    functionDepth: 2
    functionLinenumber: 1037
    functionLinenumberEnd: 1100
    functionName: point_mul_g
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 4
    functionsReached:
    - point_add
    - KRML_MAYBE_FOR4
    - point_double
    - Hacl_Bignum_Lib_bn_get_bits_u64
    - precomp_get_consttime
    - make_point_at_inf
    - KRML_MAYBE_FOR16
    - make_base_point
    - KRML_HOST_IGNORE
    linkageType: ''
    returnType: void
    signature: void point_mul_g(uint64_t *res, uint64_t *scalar)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_base_point
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1106,1
    - Dst: make_point_at_inf
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1111,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1112,1
    - Dst: KRML_MAYBE_FOR15
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1113,1
    - Dst: point_double
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1118,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1119,1
    - Dst: point_add
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1123,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1124,1
    - Dst: Hacl_Bignum_Lib_bn_get_bits_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1129,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1133,1
    - Dst: Hacl_Bignum_Lib_bn_get_bits_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1135,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1138,1
    - Dst: point_add
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1139,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1142,1
    - Dst: point_double
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1142,1
    - Dst: Hacl_Bignum_Lib_bn_get_bits_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1144,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1147,1
    - Dst: point_add
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1148,1
    - Dst: Hacl_Bignum_Lib_bn_get_bits_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1150,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1154,1
    - Dst: point_add
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 4
    argNames:
    - res
    - scalar1
    - scalar2
    - q2
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1157
      start: 1102
    functionDepth: 2
    functionLinenumber: 1102
    functionLinenumberEnd: 1157
    functionName: point_mul_double_g
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 1
    functionsReached:
    - point_add
    - memcpy
    - point_double
    - Hacl_Bignum_Lib_bn_get_bits_u64
    - KRML_MAYBE_FOR5
    - KRML_MAYBE_FOR15
    - make_point_at_inf
    - make_base_point
    linkageType: ''
    returnType: void
    signature: void point_mul_double_g(uint64_t *res, uint64_t *scalar1, uint64_t
      *scalar2, uint64_t *q2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_order
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1163,1
    - Dst: bn_sub4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1159
    functionDepth: 2
    functionLinenumber: 1159
    functionLinenumberEnd: 1166
    functionName: bn_is_lt_order_mask4
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 0
    functionsReached:
    - make_order
    - bn_sub4
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t bn_is_lt_order_mask4(uint64_t *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_is_lt_order_mask4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1171,1
    - Dst: bn_is_zero_mask4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1174
      start: 1168
    functionDepth: 3
    functionLinenumber: 1168
    functionLinenumberEnd: 1174
    functionName: bn_is_lt_order_and_gt_zero_mask4
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 0
    functionsReached:
    - bn_is_zero_mask4
    - bn_is_lt_order_mask4
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t bn_is_lt_order_and_gt_zero_mask4(uint64_t *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_order
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1180,1
    - Dst: bn_sub4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1181,1
    - Dst: bn_cmovznz4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - res
    - x
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1183
      start: 1176
    functionDepth: 2
    functionLinenumber: 1176
    functionLinenumberEnd: 1183
    functionName: qmod_short
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 4
    functionsReached:
    - bn_cmovznz4
    - make_order
    - bn_sub4
    linkageType: ''
    returnType: void
    signature: void qmod_short(uint64_t *res, uint64_t *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_order
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1189,1
    - Dst: bn_add_mod4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - res
    - x
    - y
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1185
    functionDepth: 2
    functionLinenumber: 1185
    functionLinenumberEnd: 1191
    functionName: qadd
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 1
    functionsReached:
    - make_order
    - bn_add_mod4
    linkageType: ''
    returnType: void
    signature: void qadd(uint64_t *res, uint64_t *x, uint64_t *y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_order
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1197,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1199,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1210,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1213,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1216,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1219,1
    - Dst: Lib_IntTypes_Intrinsics_add_carry_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1224,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1225,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1233,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1237,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1241,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1245,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 2
    argNames:
    - res
    - x
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1256
      start: 1193
    functionDepth: 1
    functionLinenumber: 1193
    functionLinenumberEnd: 1256
    functionName: qmont_reduction
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 3
    functionsReached:
    - memcpy
    - KRML_MAYBE_FOR4
    - make_order
    - Hacl_Bignum_Base_mul_wide_add2_u64
    - Lib_IntTypes_Intrinsics_sub_borrow_u64
    - Lib_IntTypes_Intrinsics_add_carry_u64
    linkageType: ''
    returnType: void
    signature: void qmont_reduction(uint64_t *res, uint64_t *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1262,1
    - Dst: qmont_reduction
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - res
    - x
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1258
    functionDepth: 1
    functionLinenumber: 1258
    functionLinenumberEnd: 1264
    functionName: from_qmont
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 2
    functionsReached:
    - memcpy
    - qmont_reduction
    linkageType: ''
    returnType: void
    signature: void from_qmont(uint64_t *res, uint64_t *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_mul4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1270,1
    - Dst: qmont_reduction
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - res
    - x
    - y
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1272
      start: 1266
    functionDepth: 2
    functionLinenumber: 1266
    functionLinenumberEnd: 1272
    functionName: qmul
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 6
    functionsReached:
    - bn_mul4
    - qmont_reduction
    linkageType: ''
    returnType: void
    signature: void qmul(uint64_t *res, uint64_t *x, uint64_t *y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_sqr4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1278,1
    - Dst: qmont_reduction
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - res
    - x
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1280
      start: 1274
    functionDepth: 2
    functionLinenumber: 1274
    functionLinenumberEnd: 1280
    functionName: qsqr
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 1
    functionsReached:
    - bn_sqr4
    - qmont_reduction
    linkageType: ''
    returnType: void
    signature: void qsqr(uint64_t *res, uint64_t *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_from_bytes_be4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1288,1
    - Dst: bn_is_lt_order_and_gt_zero_mask4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1289,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1295,1
    - Dst: point_mul_g
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1304,1
    - Dst: point_store
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - public_key
    - private_key
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1307
      start: 1282
    functionDepth: 5
    functionLinenumber: 1282
    functionLinenumberEnd: 1307
    functionName: Hacl_Impl_P256_DH_ecp256dh_i
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 0
    functionsReached:
    - KRML_MAYBE_FOR4
    - point_mul_g
    - bn_is_lt_order_and_gt_zero_mask4
    - point_store
    - bn_from_bytes_be4
    linkageType: ''
    returnType: bool
    signature: bool Hacl_Impl_P256_DH_ecp256dh_i(uint8_t *public_key, uint8_t *private_key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: load_point_vartime
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1318,1
    - Dst: bn_from_bytes_be4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1319,1
    - Dst: bn_is_lt_order_and_gt_zero_mask4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1320,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1326,1
    - Dst: point_mul
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1337,1
    - Dst: point_store
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1338,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - shared_secret
    - their_pubkey
    - private_key
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1341
      start: 1309
    functionDepth: 6
    functionLinenumber: 1309
    functionLinenumberEnd: 1341
    functionName: Hacl_Impl_P256_DH_ecp256dh_r
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 0
    functionsReached:
    - load_point_vartime
    - KRML_MAYBE_FOR4
    - point_mul
    - bn_is_lt_order_and_gt_zero_mask4
    - point_store
    - bn_from_bytes_be4
    linkageType: ''
    returnType: bool
    signature: "bool Hacl_Impl_P256_DH_ecp256dh_r(\n    uint8_t *shared_secret,\n
      \   uint8_t *their_pubkey,\n    uint8_t *private_key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1354,1
    - Dst: qsqr
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1356,1
    - Dst: qmul
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1358,1
    - Dst: qmul
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1359,1
    - Dst: qmul
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1360,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1361,1
    - Dst: qsqr
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1363,1
    - Dst: qmul
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1365,1
    - Dst: qsqr
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1367,1
    - Dst: qmul
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1369,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1370,1
    - Dst: qsqr
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1372,1
    - Dst: qmul
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1374,1
    - Dst: qmul
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1375,1
    - Dst: KRML_MAYBE_FOR2
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1377,1
    - Dst: qsqr
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1377,1
    - Dst: qmul
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1378,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1379,1
    - Dst: KRML_MAYBE_FOR8
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1380,1
    - Dst: qsqr
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1380,1
    - Dst: qmul
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1381,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1382,1
    - Dst: KRML_MAYBE_FOR16
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1383,1
    - Dst: qsqr
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1383,1
    - Dst: qmul
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1384,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1385,1
    - Dst: qsqr
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1387,1
    - Dst: qmul
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1389,1
    - Dst: qsqr
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1391,1
    - Dst: qmul
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1393,1
    - Dst: KRML_MAYBE_FOR6
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1394,1
    - Dst: qsqr
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1394,1
    - Dst: qmul
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1395,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1396,1
    - Dst: qsqr
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1396,1
    - Dst: qmul
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1397,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1398,1
    - Dst: qsqr
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1398,1
    - Dst: qmul
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1399,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1400,1
    - Dst: qsqr
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1400,1
    - Dst: qmul
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1401,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1402,1
    - Dst: qsqr
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1402,1
    - Dst: qmul
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1403,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1404,1
    - Dst: qsqr
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1404,1
    - Dst: qmul
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1405,1
    - Dst: KRML_MAYBE_FOR3
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1406,1
    - Dst: qsqr
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1406,1
    - Dst: qmul
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1407,1
    - Dst: KRML_MAYBE_FOR3
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1408,1
    - Dst: qsqr
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1408,1
    - Dst: qmul
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1409,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1410,1
    - Dst: qsqr
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1410,1
    - Dst: qmul
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1411,1
    - Dst: KRML_MAYBE_FOR9
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1412,1
    - Dst: qsqr
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1412,1
    - Dst: qmul
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1413,1
    - Dst: KRML_MAYBE_FOR6
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1414,1
    - Dst: qsqr
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1414,1
    - Dst: qmul
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1415,1
    - Dst: KRML_MAYBE_FOR2
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1416,1
    - Dst: qsqr
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1416,1
    - Dst: qmul
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1417,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1418,1
    - Dst: qsqr
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1418,1
    - Dst: qmul
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1419,1
    - Dst: KRML_MAYBE_FOR6
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1420,1
    - Dst: qsqr
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1420,1
    - Dst: qmul
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1421,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1422,1
    - Dst: qsqr
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1422,1
    - Dst: qmul
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1423,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1424,1
    - Dst: qsqr
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1424,1
    - Dst: qmul
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1425,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1426,1
    - Dst: qsqr
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1426,1
    - Dst: qmul
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1427,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1428,1
    - Dst: qsqr
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1428,1
    - Dst: qmul
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1429,1
    - Dst: KRML_MAYBE_FOR3
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1430,1
    - Dst: qsqr
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1430,1
    - Dst: qmul
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1431,1
    - Dst: KRML_MAYBE_FOR10
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1432,1
    - Dst: qsqr
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1432,1
    - Dst: qmul
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1433,1
    - Dst: KRML_MAYBE_FOR2
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1434,1
    - Dst: qsqr
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1434,1
    - Dst: qmul
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1435,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1436,1
    - Dst: qsqr
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1436,1
    - Dst: qmul
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1437,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1438,1
    - Dst: qsqr
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1438,1
    - Dst: qmul
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1439,1
    - Dst: KRML_MAYBE_FOR3
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1440,1
    - Dst: qsqr
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1440,1
    - Dst: qmul
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1441,1
    - Dst: KRML_MAYBE_FOR7
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1442,1
    - Dst: qsqr
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1442,1
    - Dst: qmul
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1443,1
    - Dst: KRML_MAYBE_FOR6
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1444,1
    - Dst: qsqr
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1444,1
    - Dst: qmul
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1445,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1446,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1447,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 90
    argCount: 2
    argNames:
    - res
    - r
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1448
      start: 1343
    functionDepth: 1
    functionLinenumber: 1343
    functionLinenumberEnd: 1448
    functionName: qinv
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 2
    functionsReached:
    - memcpy
    - KRML_MAYBE_FOR4
    - KRML_MAYBE_FOR2
    - qsqr
    - KRML_MAYBE_FOR5
    - KRML_MAYBE_FOR10
    - KRML_MAYBE_FOR8
    - qmul
    - KRML_MAYBE_FOR7
    - KRML_MAYBE_FOR3
    - KRML_MAYBE_FOR16
    - KRML_MAYBE_FOR6
    - KRML_MAYBE_FOR9
    linkageType: ''
    returnType: void
    signature: void qinv(uint64_t *res, uint64_t *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: from_qmont
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1454,1
    - Dst: qmul
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - sinv
    - b
    - res
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1456
      start: 1450
    functionDepth: 0
    functionLinenumber: 1450
    functionLinenumberEnd: 1456
    functionName: qmul_mont
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 0
    functionsReached:
    - qmul
    - from_qmont
    linkageType: ''
    returnType: void
    signature: void qmul_mont(uint64_t *sinv, uint64_t *b, uint64_t *res)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: load_point_vartime
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1471,1
    - Dst: bn_from_bytes_be4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1472,1
    - Dst: bn_from_bytes_be4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1473,1
    - Dst: bn_is_lt_order_and_gt_zero_mask4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1474,1
    - Dst: bn_is_lt_order_and_gt_zero_mask4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1475,1
    - Dst: qinv
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1483,1
    - Dst: qmul_mont
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1484,1
    - Dst: qmul_mont
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1485,1
    - Dst: point_mul_double_g
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1487,1
    - Dst: is_point_at_inf_vartime
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1488,1
    - Dst: to_aff_point_x
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1492,1
    - Dst: qmod_short
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1493,1
    - Dst: bn_is_eq_vartime4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1494,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - m_q
    - public_key
    - signature_r
    - signature_s
    argTypes:
    - uint64_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1496
      start: 1458
    functionDepth: 6
    functionLinenumber: 1458
    functionLinenumberEnd: 1496
    functionName: ecdsa_verify_msg_as_qelem
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 1
    functionsReached:
    - load_point_vartime
    - is_point_at_inf_vartime
    - qmod_short
    - point_mul_double_g
    - bn_is_eq_vartime4
    - to_aff_point_x
    - bn_is_lt_order_and_gt_zero_mask4
    - bn_from_bytes_be4
    - qinv
    - qmul_mont
    linkageType: ''
    returnType: bool
    signature: "bool ecdsa_verify_msg_as_qelem(\n    uint64_t *m_q,\n    uint8_t *public_key,\n
      \   uint8_t *signature_r,\n    uint8_t *signature_s)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_from_bytes_be4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1510,1
    - Dst: bn_is_lt_order_and_gt_zero_mask4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1511,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1517,1
    - Dst: bn_from_bytes_be4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1526,1
    - Dst: bn_is_lt_order_and_gt_zero_mask4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1527,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1533,1
    - Dst: point_mul_g
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1544,1
    - Dst: to_aff_point_x
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1545,1
    - Dst: qmod_short
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1546,1
    - Dst: qinv
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1548,1
    - Dst: qmul
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1549,1
    - Dst: from_qmont
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1550,1
    - Dst: qadd
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1551,1
    - Dst: qmul
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1552,1
    - Dst: bn2_to_bytes_be4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1553,1
    - Dst: bn_is_zero_mask4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1554,1
    - Dst: bn_is_zero_mask4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 4
    argNames:
    - signature
    - m_q
    - private_key
    - nonce
    argTypes:
    - uint8_t*
    - uint64_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1559
      start: 1498
    functionDepth: 4
    functionLinenumber: 1498
    functionLinenumberEnd: 1559
    functionName: ecdsa_sign_msg_as_qelem
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 1
    functionsReached:
    - KRML_MAYBE_FOR4
    - bn_is_zero_mask4
    - point_mul_g
    - qmod_short
    - qmul
    - qadd
    - to_aff_point_x
    - bn2_to_bytes_be4
    - bn_is_lt_order_and_gt_zero_mask4
    - from_qmont
    - bn_from_bytes_be4
    - qinv
    linkageType: ''
    returnType: bool
    signature: "bool ecdsa_sign_msg_as_qelem(\n    uint8_t *signature,\n    uint64_t
      *m_q,\n    uint8_t *private_key,\n    uint8_t *nonce)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1607,1
    - Dst: KRML_HOST_IGNORE
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1608,1
    - Dst: bn_from_bytes_be4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1610,1
    - Dst: qmod_short
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1611,1
    - Dst: ecdsa_sign_msg_as_qelem
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - signature
    - msg_len
    - msg
    - private_key
    - nonce
    argTypes:
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1614
      start: 1597
    functionDepth: 2
    functionLinenumber: 1597
    functionLinenumberEnd: 1614
    functionName: Hacl_P256_ecdsa_sign_p256_without_hash
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 0
    functionsReached:
    - memcpy
    - qmod_short
    - ecdsa_sign_msg_as_qelem
    - bn_from_bytes_be4
    - KRML_HOST_IGNORE
    linkageType: ''
    returnType: bool
    signature: "bool Hacl_P256_ecdsa_sign_p256_without_hash(\n    uint8_t *signature,\n
      \   uint32_t msg_len,\n    uint8_t *msg,\n    uint8_t *private_key,\n    uint8_t
      *nonce)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1646,1
    - Dst: KRML_HOST_IGNORE
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1647,1
    - Dst: bn_from_bytes_be4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1649,1
    - Dst: qmod_short
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1650,1
    - Dst: ecdsa_verify_msg_as_qelem
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - msg_len
    - msg
    - public_key
    - signature_r
    - signature_s
    argTypes:
    - uint32_t
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1653
      start: 1636
    functionDepth: 2
    functionLinenumber: 1636
    functionLinenumberEnd: 1653
    functionName: Hacl_P256_ecdsa_verif_without_hash
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 0
    functionsReached:
    - memcpy
    - qmod_short
    - bn_from_bytes_be4
    - ecdsa_verify_msg_as_qelem
    - KRML_HOST_IGNORE
    linkageType: ''
    returnType: bool
    signature: "bool Hacl_P256_ecdsa_verif_without_hash(\n    uint32_t msg_len,\n
      \   uint8_t *msg,\n    uint8_t *public_key,\n    uint8_t *signature_r,\n    uint8_t
      *signature_s)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_point_vartime
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - public_key
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1679
      start: 1673
    functionDepth: 6
    functionLinenumber: 1673
    functionLinenumberEnd: 1679
    functionName: Hacl_P256_validate_public_key
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 0
    functionsReached:
    - load_point_vartime
    linkageType: ''
    returnType: bool
    signature: bool Hacl_P256_validate_public_key(uint8_t *public_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_from_bytes_be4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1695,1
    - Dst: bn_is_lt_order_and_gt_zero_mask4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1696,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - private_key
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1698
      start: 1691
    functionDepth: 4
    functionLinenumber: 1691
    functionLinenumberEnd: 1698
    functionName: Hacl_P256_validate_private_key
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 0
    functionsReached:
    - bn_from_bytes_be4
    - bn_is_lt_order_and_gt_zero_mask4
    linkageType: ''
    returnType: bool
    signature: bool Hacl_P256_validate_private_key(uint8_t *private_key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1729,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pk
    - pk_raw
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1731
      start: 1722
    functionDepth: 1
    functionLinenumber: 1722
    functionLinenumberEnd: 1731
    functionName: Hacl_P256_uncompressed_to_raw
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: bool
    signature: bool Hacl_P256_uncompressed_to_raw(uint8_t *pk, uint8_t *pk_raw)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: aff_point_decompress_vartime
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1749,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1751,1
    - Dst: bn_to_bytes_be4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1752,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pk
    - pk_raw
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1755
      start: 1743
    functionDepth: 4
    functionLinenumber: 1743
    functionLinenumberEnd: 1755
    functionName: Hacl_P256_compressed_to_raw
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 0
    functionsReached:
    - aff_point_decompress_vartime
    - memcpy
    - bn_to_bytes_be4
    linkageType: ''
    returnType: bool
    signature: bool Hacl_P256_compressed_to_raw(uint8_t *pk, uint8_t *pk_raw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1769,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pk_raw
    - pk
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1770
      start: 1765
    functionDepth: 1
    functionLinenumber: 1765
    functionLinenumberEnd: 1770
    functionName: Hacl_P256_raw_to_uncompressed
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void Hacl_P256_raw_to_uncompressed(uint8_t *pk_raw, uint8_t *pk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_from_bytes_be4
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1786,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1789,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pk_raw
    - pk
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1790
      start: 1780
    functionDepth: 2
    functionLinenumber: 1780
    functionLinenumberEnd: 1790
    functionName: Hacl_P256_raw_to_compressed
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 0
    functionsReached:
    - bn_from_bytes_be4
    - memcpy
    linkageType: ''
    returnType: void
    signature: void Hacl_P256_raw_to_compressed(uint8_t *pk_raw, uint8_t *pk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Impl_P256_DH_ecp256dh_i
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - public_key
    - private_key
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1811
      start: 1807
    functionDepth: 6
    functionLinenumber: 1807
    functionLinenumberEnd: 1811
    functionName: Hacl_P256_dh_initiator
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 0
    functionsReached:
    - Hacl_Impl_P256_DH_ecp256dh_i
    linkageType: ''
    returnType: bool
    signature: bool Hacl_P256_dh_initiator(uint8_t *public_key, uint8_t *private_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Impl_P256_DH_ecp256dh_r
      Src: /src/nss/lib/freebl/verified/Hacl_P256.c:1828,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - shared_secret
    - their_pubkey
    - private_key
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1829
      start: 1825
    functionDepth: 7
    functionLinenumber: 1825
    functionLinenumberEnd: 1829
    functionName: Hacl_P256_dh_responder
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P256.c
    functionUses: 0
    functionsReached:
    - Hacl_Impl_P256_DH_ecp256dh_r
    linkageType: ''
    returnType: bool
    signature: bool Hacl_P256_dh_responder(uint8_t *shared_secret, uint8_t *their_pubkey,
      uint8_t *private_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_FOR9
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:34,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 42
    functionName: bn_is_eq_mask
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P521.c
    functionUses: 7
    functionsReached:
    - FStar_UInt64_eq_mask
    - KRML_MAYBE_FOR9
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t bn_is_eq_mask(uint64_t *x, uint64_t *y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:47,1
    - Dst: KRML_MAYBE_FOR9
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - a
    - b
    - c
    - d
    argTypes:
    - uint64_t*
    - uint64_t
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 56
    functionName: bn_cmovznz
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P521.c
    functionUses: 1
    functionsReached:
    - KRML_MAYBE_FOR9
    - FStar_UInt64_eq_mask
    linkageType: ''
    returnType: void
    signature: void bn_cmovznz(uint64_t *a, uint64_t b, uint64_t *c, uint64_t *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_FOR2
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:62,1
    - Dst: Lib_IntTypes_Intrinsics_add_carry_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:69,1
    - Dst: Lib_IntTypes_Intrinsics_add_carry_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:73,1
    - Dst: Lib_IntTypes_Intrinsics_add_carry_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:77,1
    - Dst: Lib_IntTypes_Intrinsics_add_carry_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:81,1
    - Dst: Lib_IntTypes_Intrinsics_add_carry_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:86,1
    - Dst: KRML_MAYBE_FOR2
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:91,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:98,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:102,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:106,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:110,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:115,1
    - Dst: KRML_MAYBE_FOR9
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 4
    argNames:
    - a
    - b
    - c
    - d
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 126
    functionName: bn_add_mod
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P521.c
    functionUses: 2
    functionsReached:
    - KRML_MAYBE_FOR9
    - Lib_IntTypes_Intrinsics_sub_borrow_u64
    - KRML_MAYBE_FOR2
    - Lib_IntTypes_Intrinsics_add_carry_u64
    linkageType: ''
    returnType: void
    signature: void bn_add_mod(uint64_t *a, uint64_t *b, uint64_t *c, uint64_t *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_FOR2
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:132,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:139,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:143,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:147,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:151,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 160
    functionName: bn_sub
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P521.c
    functionUses: 5
    functionsReached:
    - Lib_IntTypes_Intrinsics_sub_borrow_u64
    - KRML_MAYBE_FOR2
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t bn_sub(uint64_t *a, uint64_t *b, uint64_t *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_FOR2
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:166,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:173,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:177,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:181,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:185,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:190,1
    - Dst: KRML_MAYBE_FOR2
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:195,1
    - Dst: Lib_IntTypes_Intrinsics_add_carry_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:202,1
    - Dst: Lib_IntTypes_Intrinsics_add_carry_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:206,1
    - Dst: Lib_IntTypes_Intrinsics_add_carry_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:210,1
    - Dst: Lib_IntTypes_Intrinsics_add_carry_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:214,1
    - Dst: Lib_IntTypes_Intrinsics_add_carry_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:219,1
    - Dst: KRML_MAYBE_UNUSED_VAR
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:222,1
    - Dst: KRML_MAYBE_FOR9
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 4
    argNames:
    - a
    - b
    - c
    - d
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 231
    functionName: bn_sub_mod
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P521.c
    functionUses: 1
    functionsReached:
    - Lib_IntTypes_Intrinsics_add_carry_u64
    - KRML_MAYBE_FOR2
    - KRML_MAYBE_UNUSED_VAR
    - Lib_IntTypes_Intrinsics_sub_borrow_u64
    - KRML_MAYBE_FOR9
    linkageType: ''
    returnType: void
    signature: void bn_sub_mod(uint64_t *a, uint64_t *b, uint64_t *c, uint64_t *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:236,1
    - Dst: KRML_MAYBE_FOR9
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:237,1
    - Dst: KRML_MAYBE_FOR2
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:245,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:251,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:254,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:257,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:260,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 267
    functionName: bn_mul
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P521.c
    functionUses: 3
    functionsReached:
    - memset
    - Hacl_Bignum_Base_mul_wide_add2_u64
    - KRML_MAYBE_FOR2
    - KRML_MAYBE_FOR9
    linkageType: ''
    returnType: void
    signature: void bn_mul(uint64_t *a, uint64_t *b, uint64_t *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:272,1
    - Dst: KRML_MAYBE_FOR9
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:273,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:285,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:288,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:291,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:294,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:298,1
    - Dst: Hacl_Bignum_Addition_bn_add_eq_len_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:301,1
    - Dst: KRML_MAYBE_UNUSED_VAR
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:302,1
    - Dst: KRML_MAYBE_FOR9
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:304,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:308,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:309,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:309,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:310,1
    - Dst: Hacl_Bignum_Addition_bn_add_eq_len_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:313,1
    - Dst: KRML_MAYBE_UNUSED_VAR
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:314,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 315
    functionName: bn_sqr
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P521.c
    functionUses: 2
    functionsReached:
    - FStar_UInt128_uint128_to_uint64
    - FStar_UInt128_shift_right
    - FStar_UInt128_mul_wide
    - memset
    - Hacl_Bignum_Base_mul_wide_add2_u64
    - KRML_MAYBE_UNUSED_VAR
    - Hacl_Bignum_Addition_bn_add_eq_len_u64
    - KRML_MAYBE_FOR9
    linkageType: ''
    returnType: void
    signature: void bn_sqr(uint64_t *a, uint64_t *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_FOR9
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:321,1
    - Dst: store64_be
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:321,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint8_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 323
    functionName: bn_to_bytes_be
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P521.c
    functionUses: 4
    functionsReached:
    - store64_be
    - memcpy
    - KRML_MAYBE_FOR9
    linkageType: ''
    returnType: void
    signature: void bn_to_bytes_be(uint8_t *a, uint64_t *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:329,1
    - Dst: KRML_MAYBE_FOR9
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:330,1
    - Dst: load64_be
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 338
    functionName: bn_from_bytes_be
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P521.c
    functionUses: 9
    functionsReached:
    - memcpy
    - load64_be
    - KRML_MAYBE_FOR9
    linkageType: ''
    returnType: void
    signature: void bn_from_bytes_be(uint64_t *a, uint8_t *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - n
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 352
    functionName: p521_make_prime
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P521.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void p521_make_prime(uint64_t *n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - n
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 366
    functionName: p521_make_order
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P521.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void p521_make_order(uint64_t *n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - a
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 380
    functionName: p521_make_a_coeff
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P521.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void p521_make_a_coeff(uint64_t *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - b
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 394
    functionName: p521_make_b_coeff
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P521.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void p521_make_b_coeff(uint64_t *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - n
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 408
    functionName: p521_make_g_x
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P521.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void p521_make_g_x(uint64_t *n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - n
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 422
    functionName: p521_make_g_y
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P521.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void p521_make_g_y(uint64_t *n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - n
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 436
    functionName: p521_make_fmont_R2
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P521.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void p521_make_fmont_R2(uint64_t *n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - n
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 443
    functionName: p521_make_fzero
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P521.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void p521_make_fzero(uint64_t *n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - n
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 457
    functionName: p521_make_fone
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P521.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void p521_make_fone(uint64_t *n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - f
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 471
    functionName: p521_make_qone
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P521.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void p521_make_qone(uint64_t *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p521_make_prime
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:477,1
    - Dst: KRML_MAYBE_FOR9
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:479,1
    - Dst: KRML_MAYBE_FOR2
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:487,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:493,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:496,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:499,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:502,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:506,1
    - Dst: Lib_IntTypes_Intrinsics_add_carry_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:511,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:512,1
    - Dst: KRML_MAYBE_FOR2
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:516,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:523,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:527,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:531,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:535,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:540,1
    - Dst: KRML_MAYBE_FOR9
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 2
    argNames:
    - res
    - x
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 473
    functionDepth: 1
    functionLinenumber: 473
    functionLinenumberEnd: 551
    functionName: fmont_reduction
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P521.c
    functionUses: 4
    functionsReached:
    - p521_make_prime
    - memcpy
    - KRML_MAYBE_FOR2
    - KRML_MAYBE_FOR9
    - Hacl_Bignum_Base_mul_wide_add2_u64
    - Lib_IntTypes_Intrinsics_sub_borrow_u64
    - Lib_IntTypes_Intrinsics_add_carry_u64
    linkageType: ''
    returnType: void
    signature: void fmont_reduction(uint64_t *res, uint64_t *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p521_make_order
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:557,1
    - Dst: KRML_MAYBE_FOR9
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:559,1
    - Dst: KRML_MAYBE_FOR2
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:567,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:573,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:576,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:579,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:582,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:586,1
    - Dst: Lib_IntTypes_Intrinsics_add_carry_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:591,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:592,1
    - Dst: KRML_MAYBE_FOR2
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:596,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:603,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:607,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:611,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:615,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:620,1
    - Dst: KRML_MAYBE_FOR9
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 2
    argNames:
    - res
    - x
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 553
    functionDepth: 1
    functionLinenumber: 553
    functionLinenumberEnd: 631
    functionName: qmont_reduction
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P521.c
    functionUses: 6
    functionsReached:
    - memcpy
    - KRML_MAYBE_FOR2
    - KRML_MAYBE_FOR9
    - Hacl_Bignum_Base_mul_wide_add2_u64
    - p521_make_order
    - Lib_IntTypes_Intrinsics_sub_borrow_u64
    - Lib_IntTypes_Intrinsics_add_carry_u64
    linkageType: ''
    returnType: void
    signature: void qmont_reduction(uint64_t *res, uint64_t *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p521_make_prime
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:637,1
    - Dst: bn_sub
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:638,1
    - Dst: FStar_UInt64_gte_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:639,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 641
    functionName: bn_is_lt_prime_mask
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P521.c
    functionUses: 4
    functionsReached:
    - FStar_UInt64_gte_mask
    - p521_make_prime
    - bn_sub
    - FStar_UInt64_eq_mask
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t bn_is_lt_prime_mask(uint64_t *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p521_make_prime
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:647,1
    - Dst: bn_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:648,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 643
    functionDepth: 1
    functionLinenumber: 643
    functionLinenumberEnd: 649
    functionName: fadd0
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P521.c
    functionUses: 12
    functionsReached:
    - p521_make_prime
    - bn_add_mod
    linkageType: ''
    returnType: void
    signature: void fadd0(uint64_t *a, uint64_t *b, uint64_t *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p521_make_prime
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:655,1
    - Dst: bn_sub_mod
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:656,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 651
    functionDepth: 1
    functionLinenumber: 651
    functionLinenumberEnd: 657
    functionName: fsub0
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P521.c
    functionUses: 8
    functionsReached:
    - p521_make_prime
    - bn_sub_mod
    linkageType: ''
    returnType: void
    signature: void fsub0(uint64_t *a, uint64_t *b, uint64_t *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_mul
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:663,1
    - Dst: fmont_reduction
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 659
    functionDepth: 0
    functionLinenumber: 659
    functionLinenumberEnd: 665
    functionName: fmul0
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P521.c
    functionUses: 33
    functionsReached:
    - bn_mul
    - fmont_reduction
    linkageType: ''
    returnType: void
    signature: void fmul0(uint64_t *a, uint64_t *b, uint64_t *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_sqr
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:671,1
    - Dst: fmont_reduction
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:672,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 667
    functionDepth: 0
    functionLinenumber: 667
    functionLinenumberEnd: 673
    functionName: fsqr0
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P521.c
    functionUses: 13
    functionsReached:
    - bn_sqr
    - fmont_reduction
    linkageType: ''
    returnType: void
    signature: void fsqr0(uint64_t *a, uint64_t *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:679,1
    - Dst: fmont_reduction
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 675
    functionDepth: 1
    functionLinenumber: 675
    functionLinenumberEnd: 681
    functionName: from_mont
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P521.c
    functionUses: 8
    functionsReached:
    - memcpy
    - fmont_reduction
    linkageType: ''
    returnType: void
    signature: void from_mont(uint64_t *a, uint64_t *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p521_make_fmont_R2
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:687,1
    - Dst: bn_mul
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:689,1
    - Dst: fmont_reduction
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 683
    functionDepth: 1
    functionLinenumber: 683
    functionLinenumberEnd: 691
    functionName: to_mont
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P521.c
    functionUses: 8
    functionsReached:
    - bn_mul
    - fmont_reduction
    - p521_make_fmont_R2
    linkageType: ''
    returnType: void
    signature: void to_mont(uint64_t *a, uint64_t *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:707,1
    - Dst: p521_make_fone
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:712,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:713,1
    - Dst: KRML_MAYBE_FOR15
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:714,1
    - Dst: fsqr0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:719,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:720,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:722,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:723,1
    - Dst: Hacl_Bignum_Lib_bn_get_bits_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:725,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:726,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:728,1
    - Dst: KRML_MAYBE_FOR9
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:730,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:740,1
    - Dst: fsqr0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:740,1
    - Dst: Hacl_Bignum_Lib_bn_get_bits_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:742,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:743,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:745,1
    - Dst: KRML_MAYBE_FOR9
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:747,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:755,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 33
    argCount: 2
    argNames:
    - res
    - a
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 693
    functionDepth: 1
    functionLinenumber: 693
    functionLinenumberEnd: 757
    functionName: p521_finv
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P521.c
    functionUses: 0
    functionsReached:
    - fsqr0
    - memcpy
    - Hacl_Bignum_Lib_bn_get_bits_u64
    - fmul0
    - KRML_MAYBE_FOR5
    - FStar_UInt64_eq_mask
    - p521_make_fone
    - KRML_MAYBE_FOR15
    - KRML_MAYBE_FOR9
    linkageType: ''
    returnType: void
    signature: void p521_finv(uint64_t *res, uint64_t *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:773,1
    - Dst: p521_make_fone
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:778,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:779,1
    - Dst: KRML_MAYBE_FOR15
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:780,1
    - Dst: fsqr0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:785,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:786,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:788,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:789,1
    - Dst: Hacl_Bignum_Lib_bn_get_bits_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:791,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:792,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:794,1
    - Dst: KRML_MAYBE_FOR9
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:796,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:806,1
    - Dst: fsqr0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:806,1
    - Dst: Hacl_Bignum_Lib_bn_get_bits_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:808,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:809,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:811,1
    - Dst: KRML_MAYBE_FOR9
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:813,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:821,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 33
    argCount: 2
    argNames:
    - res
    - a
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 759
    functionDepth: 1
    functionLinenumber: 759
    functionLinenumberEnd: 823
    functionName: p521_fsqrt
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P521.c
    functionUses: 0
    functionsReached:
    - fsqr0
    - memcpy
    - Hacl_Bignum_Lib_bn_get_bits_u64
    - fmul0
    - KRML_MAYBE_FOR5
    - FStar_UInt64_eq_mask
    - p521_make_fone
    - KRML_MAYBE_FOR15
    - KRML_MAYBE_FOR9
    linkageType: ''
    returnType: void
    signature: void p521_fsqrt(uint64_t *res, uint64_t *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_from_bytes_be
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:828,1
    - Dst: p521_make_order
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:830,1
    - Dst: bn_sub
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:831,1
    - Dst: FStar_UInt64_gte_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:832,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:832,1
    - Dst: bn_is_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:834,1
    - Dst: memset
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:838,1
    - Dst: KRML_MAYBE_FOR9
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 825
    functionDepth: 1
    functionLinenumber: 825
    functionLinenumberEnd: 849
    functionName: load_qelem_conditional
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P521.c
    functionUses: 3
    functionsReached:
    - FStar_UInt64_eq_mask
    - memset
    - bn_is_eq_mask
    - bn_from_bytes_be
    - FStar_UInt64_gte_mask
    - bn_sub
    - p521_make_order
    - KRML_MAYBE_FOR9
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t load_qelem_conditional(uint64_t *a, uint8_t *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p521_make_order
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:855,1
    - Dst: bn_sub
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:856,1
    - Dst: bn_cmovznz
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:857,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 851
    functionDepth: 1
    functionLinenumber: 851
    functionLinenumberEnd: 858
    functionName: qmod_short
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P521.c
    functionUses: 8
    functionsReached:
    - bn_sub
    - p521_make_order
    - bn_cmovznz
    linkageType: ''
    returnType: void
    signature: void qmod_short(uint64_t *a, uint64_t *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p521_make_order
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:864,1
    - Dst: bn_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:865,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 860
    functionDepth: 1
    functionLinenumber: 860
    functionLinenumberEnd: 866
    functionName: qadd
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P521.c
    functionUses: 2
    functionsReached:
    - p521_make_order
    - bn_add_mod
    linkageType: ''
    returnType: void
    signature: void qadd(uint64_t *a, uint64_t *b, uint64_t *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_mul
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:872,1
    - Dst: qmont_reduction
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:873,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 868
    functionDepth: 0
    functionLinenumber: 868
    functionLinenumberEnd: 874
    functionName: qmul
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P521.c
    functionUses: 9
    functionsReached:
    - bn_mul
    - qmont_reduction
    linkageType: ''
    returnType: void
    signature: void qmul(uint64_t *a, uint64_t *b, uint64_t *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_sqr
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:880,1
    - Dst: qmont_reduction
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:881,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 876
    functionDepth: 0
    functionLinenumber: 876
    functionLinenumberEnd: 882
    functionName: qsqr
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P521.c
    functionUses: 2
    functionsReached:
    - qmont_reduction
    - bn_sqr
    linkageType: ''
    returnType: void
    signature: void qsqr(uint64_t *a, uint64_t *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:888,1
    - Dst: qmont_reduction
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:889,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 884
    functionDepth: 1
    functionLinenumber: 884
    functionLinenumberEnd: 890
    functionName: from_qmont
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P521.c
    functionUses: 4
    functionsReached:
    - memcpy
    - qmont_reduction
    linkageType: ''
    returnType: void
    signature: void from_qmont(uint64_t *a, uint64_t *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:906,1
    - Dst: p521_make_qone
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:911,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:912,1
    - Dst: KRML_MAYBE_FOR15
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:913,1
    - Dst: qsqr
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:918,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:919,1
    - Dst: qmul
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:921,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:922,1
    - Dst: Hacl_Bignum_Lib_bn_get_bits_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:924,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:925,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:927,1
    - Dst: KRML_MAYBE_FOR9
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:929,1
    - Dst: KRML_MAYBE_FOR5
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:939,1
    - Dst: qsqr
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:939,1
    - Dst: Hacl_Bignum_Lib_bn_get_bits_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:941,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:942,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:944,1
    - Dst: KRML_MAYBE_FOR9
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:946,1
    - Dst: qmul
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:954,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 33
    argCount: 2
    argNames:
    - res
    - a
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 892
    functionDepth: 1
    functionLinenumber: 892
    functionLinenumberEnd: 956
    functionName: p521_qinv
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P521.c
    functionUses: 0
    functionsReached:
    - memcpy
    - Hacl_Bignum_Lib_bn_get_bits_u64
    - p521_make_qone
    - qsqr
    - KRML_MAYBE_FOR5
    - FStar_UInt64_eq_mask
    - qmul
    - KRML_MAYBE_FOR15
    - KRML_MAYBE_FOR9
    linkageType: ''
    returnType: void
    signature: void p521_qinv(uint64_t *res, uint64_t *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:979,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:980,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:981,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:982,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:983,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:984,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:985,1
    - Dst: fsub0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:990,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:991,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:992,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:993,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:994,1
    - Dst: fsub0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:995,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1000,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1001,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1002,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1003,1
    - Dst: fsub0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1004,1
    - Dst: p521_make_b_coeff
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1006,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1007,1
    - Dst: fsub0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1008,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1009,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1010,1
    - Dst: fsub0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1011,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1012,1
    - Dst: p521_make_b_coeff
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1014,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1015,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1016,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1017,1
    - Dst: fsub0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1018,1
    - Dst: fsub0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1019,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1020,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1021,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1022,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1023,1
    - Dst: fsub0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1024,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1025,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1026,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1027,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1028,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1029,1
    - Dst: fsub0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1030,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1031,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1032,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1033,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1034,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 47
    argCount: 3
    argNames:
    - x
    - y
    - xy
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 958
    functionDepth: 1
    functionLinenumber: 958
    functionLinenumberEnd: 1035
    functionName: point_add
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P521.c
    functionUses: 8
    functionsReached:
    - memcpy
    - fadd0
    - fmul0
    - fsub0
    - p521_make_b_coeff
    linkageType: ''
    returnType: void
    signature: void point_add(uint64_t *x, uint64_t *y, uint64_t *xy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fsqr0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1054,1
    - Dst: fsqr0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1055,1
    - Dst: fsqr0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1056,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1057,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1058,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1059,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1060,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1061,1
    - Dst: p521_make_b_coeff
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1063,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1064,1
    - Dst: fsub0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1065,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1066,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1067,1
    - Dst: fsub0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1068,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1069,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1070,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1071,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1072,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1073,1
    - Dst: p521_make_b_coeff
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1075,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1076,1
    - Dst: fsub0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1077,1
    - Dst: fsub0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1078,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1079,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1080,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1081,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1082,1
    - Dst: fsub0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1083,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1084,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1085,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1086,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1087,1
    - Dst: fsub0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1088,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1089,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1090,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1091,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 37
    argCount: 2
    argNames:
    - x
    - xx
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1092
      start: 1037
    functionDepth: 1
    functionLinenumber: 1037
    functionLinenumberEnd: 1092
    functionName: point_double
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P521.c
    functionUses: 9
    functionsReached:
    - fsqr0
    - fadd0
    - fmul0
    - fsub0
    - p521_make_b_coeff
    linkageType: ''
    returnType: void
    signature: void point_double(uint64_t *x, uint64_t *xx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p521_make_fzero
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1100,1
    - Dst: p521_make_fone
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1101,1
    - Dst: p521_make_fzero
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - one
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 1094
    functionDepth: 1
    functionLinenumber: 1094
    functionLinenumberEnd: 1103
    functionName: point_zero
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P521.c
    functionUses: 1
    functionsReached:
    - p521_make_fzero
    - p521_make_fone
    linkageType: ''
    returnType: void
    signature: void point_zero(uint64_t *one)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: point_zero
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1112,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1113,1
    - Dst: KRML_MAYBE_FOR7
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1114,1
    - Dst: point_double
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1119,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1120,1
    - Dst: point_add
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1122,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1123,1
    - Dst: Hacl_Bignum_Lib_bn_get_bits_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1125,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1126,1
    - Dst: KRML_MAYBE_FOR15
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1127,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1132,1
    - Dst: KRML_MAYBE_FOR4
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1141,1
    - Dst: point_double
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1141,1
    - Dst: Hacl_Bignum_Lib_bn_get_bits_u64
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1143,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1144,1
    - Dst: KRML_MAYBE_FOR15
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1145,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1150,1
    - Dst: point_add
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1157,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 3
    argNames:
    - res
    - scalar
    - p
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1159
      start: 1105
    functionDepth: 1
    functionLinenumber: 1105
    functionLinenumberEnd: 1159
    functionName: point_mul
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P521.c
    functionUses: 4
    functionsReached:
    - point_add
    - memcpy
    - KRML_MAYBE_FOR4
    - point_double
    - Hacl_Bignum_Lib_bn_get_bits_u64
    - FStar_UInt64_eq_mask
    - KRML_MAYBE_FOR7
    - KRML_MAYBE_FOR15
    - point_zero
    linkageType: ''
    returnType: void
    signature: void point_mul(uint64_t *res, uint64_t *scalar, uint64_t *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p521_make_g_x
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1168,1
    - Dst: p521_make_g_y
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1169,1
    - Dst: p521_make_fone
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1170,1
    - Dst: point_mul
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - res
    - scalar
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1172
      start: 1161
    functionDepth: 1
    functionLinenumber: 1161
    functionLinenumberEnd: 1172
    functionName: point_mul_g
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P521.c
    functionUses: 6
    functionsReached:
    - p521_make_fone
    - p521_make_g_y
    - p521_make_g_x
    - point_mul
    linkageType: ''
    returnType: void
    signature: void point_mul_g(uint64_t *res, uint64_t *scalar)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: point_mul_g
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1178,1
    - Dst: point_mul
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1179,1
    - Dst: point_add
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - res
    - scalar1
    - scalar2
    - p
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1181
      start: 1174
    functionDepth: 0
    functionLinenumber: 1174
    functionLinenumberEnd: 1181
    functionName: point_mul_double_g
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P521.c
    functionUses: 2
    functionsReached:
    - point_add
    - point_mul_g
    - point_mul
    linkageType: ''
    returnType: void
    signature: void point_mul_double_g(uint64_t *res, uint64_t *scalar1, uint64_t
      *scalar2, uint64_t *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_qelem_conditional
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1195,1
    - Dst: load_qelem_conditional
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1196,1
    - Dst: point_mul_g
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1199,1
    - Dst: p521_finv
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1203,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1204,1
    - Dst: from_mont
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1205,1
    - Dst: qmod_short
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1206,1
    - Dst: p521_qinv
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1208,1
    - Dst: qmul
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1209,1
    - Dst: from_qmont
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1210,1
    - Dst: qadd
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1211,1
    - Dst: qmul
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1212,1
    - Dst: bn_to_bytes_be
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1213,1
    - Dst: bn_to_bytes_be
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1214,1
    - Dst: bn_is_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1216,1
    - Dst: bn_is_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 4
    argNames:
    - signature
    - m_q
    - private_key
    - nonce
    argTypes:
    - uint8_t*
    - uint64_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1224
      start: 1183
    functionDepth: 2
    functionLinenumber: 1183
    functionLinenumberEnd: 1224
    functionName: ecdsa_sign_msg_as_qelem
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P521.c
    functionUses: 2
    functionsReached:
    - fmul0
    - p521_finv
    - qmod_short
    - bn_to_bytes_be
    - qmul
    - bn_is_eq_mask
    - from_qmont
    - from_mont
    - p521_qinv
    - point_mul_g
    - load_qelem_conditional
    - qadd
    linkageType: ''
    returnType: bool
    signature: "bool ecdsa_sign_msg_as_qelem(\n    uint8_t *signature,\n    uint64_t
      *m_q,\n    uint8_t *private_key,\n    uint8_t *nonce)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: bn_from_bytes_be
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1244,1
    - Dst: bn_from_bytes_be
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1245,1
    - Dst: bn_is_lt_prime_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1248,1
    - Dst: bn_is_lt_prime_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1249,1
    - Dst: to_mont
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1261,1
    - Dst: to_mont
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1262,1
    - Dst: fsqr0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1264,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1265,1
    - Dst: p521_make_a_coeff
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1266,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1267,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1268,1
    - Dst: p521_make_b_coeff
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1269,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1270,1
    - Dst: fsqr0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1271,1
    - Dst: bn_is_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1272,1
    - Dst: to_mont
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1283,1
    - Dst: to_mont
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1284,1
    - Dst: p521_make_fone
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1285,1
    - Dst: bn_from_bytes_be
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1288,1
    - Dst: bn_from_bytes_be
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1289,1
    - Dst: p521_make_order
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1291,1
    - Dst: bn_sub
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1292,1
    - Dst: FStar_UInt64_gte_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1293,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1293,1
    - Dst: bn_is_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1295,1
    - Dst: p521_make_order
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1299,1
    - Dst: bn_sub
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1300,1
    - Dst: FStar_UInt64_gte_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1301,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1301,1
    - Dst: bn_is_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1303,1
    - Dst: p521_qinv
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1311,1
    - Dst: from_qmont
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1313,1
    - Dst: qmul
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1314,1
    - Dst: from_qmont
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1316,1
    - Dst: qmul
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1317,1
    - Dst: point_mul_double_g
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1319,1
    - Dst: bn_is_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1322,1
    - Dst: p521_finv
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1331,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1332,1
    - Dst: from_mont
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1333,1
    - Dst: qmod_short
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1334,1
    - Dst: bn_is_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1335,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 44
    argCount: 4
    argNames:
    - m_q
    - public_key
    - signature_r
    - signature_s
    argTypes:
    - uint64_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1338
      start: 1226
    functionDepth: 2
    functionLinenumber: 1226
    functionLinenumberEnd: 1338
    functionName: ecdsa_verify_msg_as_qelem
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P521.c
    functionUses: 2
    functionsReached:
    - bn_is_lt_prime_mask
    - fmul0
    - fadd0
    - p521_finv
    - FStar_UInt64_eq_mask
    - bn_is_eq_mask
    - bn_sub
    - qmod_short
    - point_mul_double_g
    - to_mont
    - FStar_UInt64_gte_mask
    - p521_make_b_coeff
    - fsqr0
    - bn_from_bytes_be
    - from_mont
    - p521_qinv
    - p521_make_order
    - p521_make_a_coeff
    - qmul
    - p521_make_fone
    - from_qmont
    linkageType: ''
    returnType: bool
    signature: "bool ecdsa_verify_msg_as_qelem(\n    uint64_t *m_q,\n    uint8_t *public_key,\n
      \   uint8_t *signature_r,\n    uint8_t *signature_s)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1386,1
    - Dst: KRML_MAYBE_UNUSED_VAR
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1387,1
    - Dst: bn_from_bytes_be
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1388,1
    - Dst: qmod_short
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1389,1
    - Dst: ecdsa_sign_msg_as_qelem
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - signature
    - msg_len
    - msg
    - private_key
    - nonce
    argTypes:
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1392
      start: 1376
    functionDepth: 1
    functionLinenumber: 1376
    functionLinenumberEnd: 1392
    functionName: Hacl_P521_ecdsa_sign_p521_without_hash
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P521.c
    functionUses: 0
    functionsReached:
    - memcpy
    - qmod_short
    - bn_from_bytes_be
    - KRML_MAYBE_UNUSED_VAR
    - ecdsa_sign_msg_as_qelem
    linkageType: ''
    returnType: bool
    signature: "bool Hacl_P521_ecdsa_sign_p521_without_hash(\n    uint8_t *signature,\n
      \   uint32_t msg_len,\n    uint8_t *msg,\n    uint8_t *private_key,\n    uint8_t
      *nonce)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1424,1
    - Dst: KRML_MAYBE_UNUSED_VAR
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1425,1
    - Dst: bn_from_bytes_be
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1426,1
    - Dst: qmod_short
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1427,1
    - Dst: ecdsa_verify_msg_as_qelem
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - msg_len
    - msg
    - public_key
    - signature_r
    - signature_s
    argTypes:
    - uint32_t
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1430
      start: 1414
    functionDepth: 1
    functionLinenumber: 1414
    functionLinenumberEnd: 1430
    functionName: Hacl_P521_ecdsa_verif_without_hash
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P521.c
    functionUses: 0
    functionsReached:
    - memcpy
    - qmod_short
    - bn_from_bytes_be
    - KRML_MAYBE_UNUSED_VAR
    - ecdsa_verify_msg_as_qelem
    linkageType: ''
    returnType: bool
    signature: "bool Hacl_P521_ecdsa_verif_without_hash(\n    uint32_t msg_len,\n
      \   uint8_t *msg,\n    uint8_t *public_key,\n    uint8_t *signature_r,\n    uint8_t
      *signature_s)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bn_from_bytes_be
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1459,1
    - Dst: bn_from_bytes_be
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1460,1
    - Dst: bn_is_lt_prime_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1463,1
    - Dst: bn_is_lt_prime_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1464,1
    - Dst: to_mont
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1476,1
    - Dst: to_mont
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1477,1
    - Dst: fsqr0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1479,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1480,1
    - Dst: p521_make_a_coeff
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1481,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1482,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1483,1
    - Dst: p521_make_b_coeff
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1484,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1485,1
    - Dst: fsqr0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1486,1
    - Dst: bn_is_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1487,1
    - Dst: to_mont
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1498,1
    - Dst: to_mont
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1499,1
    - Dst: p521_make_fone
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1500,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 1
    argNames:
    - public_key
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1504
      start: 1450
    functionDepth: 1
    functionLinenumber: 1450
    functionLinenumberEnd: 1504
    functionName: Hacl_P521_validate_public_key
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P521.c
    functionUses: 0
    functionsReached:
    - fsqr0
    - p521_make_a_coeff
    - bn_is_lt_prime_mask
    - fmul0
    - fadd0
    - to_mont
    - bn_is_eq_mask
    - bn_from_bytes_be
    - p521_make_fone
    - p521_make_b_coeff
    linkageType: ''
    returnType: bool
    signature: bool Hacl_P521_validate_public_key(uint8_t *public_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_from_bytes_be
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1520,1
    - Dst: p521_make_order
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1522,1
    - Dst: bn_sub
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1523,1
    - Dst: FStar_UInt64_gte_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1524,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1524,1
    - Dst: bn_is_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - private_key
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1530
      start: 1516
    functionDepth: 1
    functionLinenumber: 1516
    functionLinenumberEnd: 1530
    functionName: Hacl_P521_validate_private_key
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P521.c
    functionUses: 0
    functionsReached:
    - FStar_UInt64_eq_mask
    - bn_is_eq_mask
    - bn_from_bytes_be
    - FStar_UInt64_gte_mask
    - bn_sub
    - p521_make_order
    linkageType: ''
    returnType: bool
    signature: bool Hacl_P521_validate_private_key(uint8_t *private_key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1561,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pk
    - pk_raw
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1563
      start: 1554
    functionDepth: 1
    functionLinenumber: 1554
    functionLinenumberEnd: 1563
    functionName: Hacl_P521_uncompressed_to_raw
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P521.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: bool
    signature: bool Hacl_P521_uncompressed_to_raw(uint8_t *pk, uint8_t *pk_raw)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: bn_from_bytes_be
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1588,1
    - Dst: bn_is_lt_prime_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1589,1
    - Dst: to_mont
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1598,1
    - Dst: fsqr0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1600,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1601,1
    - Dst: p521_make_a_coeff
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1602,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1603,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1604,1
    - Dst: p521_make_b_coeff
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1605,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1606,1
    - Dst: p521_fsqrt
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1607,1
    - Dst: from_mont
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1608,1
    - Dst: fsqr0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1609,1
    - Dst: bn_is_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1610,1
    - Dst: fsub0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1621,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1628,1
    - Dst: bn_to_bytes_be
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1629,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 2
    argNames:
    - pk
    - pk_raw
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1632
      start: 1575
    functionDepth: 2
    functionLinenumber: 1575
    functionLinenumberEnd: 1632
    functionName: Hacl_P521_compressed_to_raw
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P521.c
    functionUses: 0
    functionsReached:
    - fsqr0
    - memcpy
    - p521_make_a_coeff
    - bn_is_lt_prime_mask
    - fmul0
    - fadd0
    - fsub0
    - bn_to_bytes_be
    - to_mont
    - bn_is_eq_mask
    - bn_from_bytes_be
    - from_mont
    - p521_make_b_coeff
    - p521_fsqrt
    linkageType: ''
    returnType: bool
    signature: bool Hacl_P521_compressed_to_raw(uint8_t *pk, uint8_t *pk_raw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pk_raw
    - pk
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1647
      start: 1642
    functionDepth: 1
    functionLinenumber: 1642
    functionLinenumberEnd: 1647
    functionName: Hacl_P521_raw_to_uncompressed
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P521.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void Hacl_P521_raw_to_uncompressed(uint8_t *pk_raw, uint8_t *pk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bn_from_bytes_be
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1663,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pk_raw
    - pk
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1667
      start: 1657
    functionDepth: 1
    functionLinenumber: 1657
    functionLinenumberEnd: 1667
    functionName: Hacl_P521_raw_to_compressed
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P521.c
    functionUses: 0
    functionsReached:
    - bn_from_bytes_be
    - memcpy
    linkageType: ''
    returnType: void
    signature: void Hacl_P521_raw_to_compressed(uint8_t *pk_raw, uint8_t *pk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_qelem_conditional
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1690,1
    - Dst: point_mul_g
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1691,1
    - Dst: p521_finv
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1699,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1700,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1701,1
    - Dst: from_mont
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1702,1
    - Dst: from_mont
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1703,1
    - Dst: bn_to_bytes_be
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1706,1
    - Dst: bn_to_bytes_be
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - public_key
    - private_key
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1709
      start: 1684
    functionDepth: 2
    functionLinenumber: 1684
    functionLinenumberEnd: 1709
    functionName: Hacl_P521_dh_initiator
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P521.c
    functionUses: 0
    functionsReached:
    - fmul0
    - p521_finv
    - bn_to_bytes_be
    - from_mont
    - point_mul_g
    - load_qelem_conditional
    linkageType: ''
    returnType: bool
    signature: bool Hacl_P521_dh_initiator(uint8_t *public_key, uint8_t *private_key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bn_from_bytes_be
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1734,1
    - Dst: bn_from_bytes_be
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1735,1
    - Dst: bn_is_lt_prime_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1738,1
    - Dst: bn_is_lt_prime_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1739,1
    - Dst: to_mont
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1751,1
    - Dst: to_mont
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1752,1
    - Dst: fsqr0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1754,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1755,1
    - Dst: p521_make_a_coeff
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1756,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1757,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1758,1
    - Dst: p521_make_b_coeff
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1759,1
    - Dst: fadd0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1760,1
    - Dst: fsqr0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1761,1
    - Dst: bn_is_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1762,1
    - Dst: to_mont
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1773,1
    - Dst: to_mont
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1774,1
    - Dst: p521_make_fone
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1775,1
    - Dst: load_qelem_conditional
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1778,1
    - Dst: point_mul
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1781,1
    - Dst: p521_finv
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1789,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1790,1
    - Dst: fmul0
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1791,1
    - Dst: from_mont
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1792,1
    - Dst: from_mont
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1793,1
    - Dst: bn_to_bytes_be
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1796,1
    - Dst: bn_to_bytes_be
      Src: /src/nss/lib/freebl/verified/Hacl_P521.c:1797,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 34
    argCount: 3
    argNames:
    - shared_secret
    - their_pubkey
    - private_key
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1800
      start: 1723
    functionDepth: 2
    functionLinenumber: 1723
    functionLinenumberEnd: 1800
    functionName: Hacl_P521_dh_responder
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_P521.c
    functionUses: 0
    functionsReached:
    - fsqr0
    - p521_make_a_coeff
    - bn_is_lt_prime_mask
    - fmul0
    - fadd0
    - p521_finv
    - point_mul
    - to_mont
    - bn_to_bytes_be
    - bn_is_eq_mask
    - bn_from_bytes_be
    - p521_make_fone
    - from_mont
    - p521_make_b_coeff
    - load_qelem_conditional
    linkageType: ''
    returnType: bool
    signature: bool Hacl_P521_dh_responder(uint8_t *shared_secret, uint8_t *their_pubkey,
      uint8_t *private_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 5
    argNames:
    - st
    - a
    - b
    - c
    - d
    argTypes:
    - uint32_t*
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 65
    functionName: quarter_round
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Chacha20.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void quarter_round(uint32_t *st, uint32_t a, uint32_t b, uint32_t c,
      uint32_t d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quarter_round
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20.c:70,1
    - Dst: quarter_round
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20.c:71,1
    - Dst: quarter_round
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20.c:72,1
    - Dst: quarter_round
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20.c:73,1
    - Dst: quarter_round
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20.c:74,1
    - Dst: quarter_round
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20.c:75,1
    - Dst: quarter_round
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20.c:76,1
    - Dst: quarter_round
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - st
    argTypes:
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 78
    functionName: double_round
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Chacha20.c
    functionUses: 0
    functionsReached:
    - quarter_round
    linkageType: ''
    returnType: void
    signature: void double_round(uint32_t *st)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: double_round
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20.c:83,1
    - Dst: double_round
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20.c:84,1
    - Dst: double_round
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20.c:85,1
    - Dst: double_round
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20.c:86,1
    - Dst: double_round
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20.c:87,1
    - Dst: double_round
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20.c:88,1
    - Dst: double_round
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20.c:89,1
    - Dst: double_round
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20.c:90,1
    - Dst: double_round
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20.c:91,1
    - Dst: double_round
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - st
    argTypes:
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 93
    functionName: rounds
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Chacha20.c
    functionUses: 0
    functionsReached:
    - double_round
    linkageType: ''
    returnType: void
    signature: void rounds(uint32_t *st)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20.c:98,1
    - Dst: rounds
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20.c:101,1
    - Dst: KRML_MAYBE_FOR16
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - k
    - ctx
    - ctr
    argTypes:
    - uint32_t*
    - uint32_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 95
    functionDepth: 3
    functionLinenumber: 95
    functionLinenumberEnd: 110
    functionName: chacha20_core
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Chacha20.c
    functionUses: 0
    functionsReached:
    - memcpy
    - KRML_MAYBE_FOR16
    - rounds
    linkageType: ''
    returnType: void
    signature: void chacha20_core(uint32_t *k, uint32_t *ctx, uint32_t ctr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_FOR4
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20.c:118,1
    - Dst: KRML_MAYBE_FOR8
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20.c:125,1
    - Dst: load32_le
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20.c:131,1
    - Dst: KRML_MAYBE_FOR3
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20.c:136,1
    - Dst: load32_le
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 4
    argNames:
    - ctx
    - k
    - n
    - ctr
    argTypes:
    - uint32_t*
    - uint8_t*
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 146
    functionName: Hacl_Impl_Chacha20_chacha20_init
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Chacha20.c
    functionUses: 0
    functionsReached:
    - load32_le
    - KRML_MAYBE_FOR4
    - KRML_MAYBE_FOR3
    - KRML_MAYBE_FOR8
    linkageType: ''
    returnType: void
    signature: void Hacl_Impl_Chacha20_chacha20_init(uint32_t *ctx, uint8_t *k, uint8_t
      *n, uint32_t ctr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: chacha20_core
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20.c:152,1
    - Dst: KRML_MAYBE_FOR16
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20.c:154,1
    - Dst: load32_le
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20.c:160,1
    - Dst: KRML_MAYBE_FOR16
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20.c:164,1
    - Dst: KRML_MAYBE_FOR16
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20.c:171,1
    - Dst: store32_le
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - ctx
    - out
    - incr
    - text
    argTypes:
    - uint32_t*
    - uint8_t*
    - uint32_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 148
    functionDepth: 4
    functionLinenumber: 148
    functionLinenumberEnd: 176
    functionName: chacha20_encrypt_block
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Chacha20.c
    functionUses: 0
    functionsReached:
    - load32_le
    - chacha20_core
    - store32_le
    - KRML_MAYBE_FOR16
    linkageType: ''
    returnType: void
    signature: void chacha20_encrypt_block(uint32_t *ctx, uint8_t *out, uint32_t incr,
      uint8_t *text)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20.c:182,1
    - Dst: chacha20_encrypt_block
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20.c:183,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - ctx
    - len
    - out
    - incr
    - text
    argTypes:
    - uint32_t*
    - uint32_t
    - uint8_t*
    - uint32_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 178
    functionDepth: 5
    functionLinenumber: 178
    functionLinenumberEnd: 185
    functionName: chacha20_encrypt_last
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Chacha20.c
    functionUses: 0
    functionsReached:
    - memcpy
    - chacha20_encrypt_block
    linkageType: ''
    returnType: void
    signature: void chacha20_encrypt_last(uint32_t *ctx, uint32_t len, uint8_t *out,
      uint32_t incr, uint8_t *text)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: chacha20_encrypt_block
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20.c:194,1
    - Dst: chacha20_encrypt_last
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20.c:197,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - ctx
    - len
    - out
    - text
    argTypes:
    - uint32_t*
    - uint32_t
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 187
    functionDepth: 6
    functionLinenumber: 187
    functionLinenumberEnd: 199
    functionName: Hacl_Impl_Chacha20_chacha20_update
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Chacha20.c
    functionUses: 0
    functionsReached:
    - chacha20_encrypt_last
    - chacha20_encrypt_block
    linkageType: ''
    returnType: void
    signature: void Hacl_Impl_Chacha20_chacha20_update(uint32_t *ctx, uint32_t len,
      uint8_t *out, uint8_t *text)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Impl_Chacha20_chacha20_init
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20.c:211,1
    - Dst: Hacl_Impl_Chacha20_chacha20_update
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - len
    - out
    - text
    - key
    - n
    - ctr
    argTypes:
    - uint32_t
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 201
    functionDepth: 7
    functionLinenumber: 201
    functionLinenumberEnd: 213
    functionName: Hacl_Chacha20_chacha20_encrypt
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Chacha20.c
    functionUses: 2
    functionsReached:
    - Hacl_Impl_Chacha20_chacha20_init
    - Hacl_Impl_Chacha20_chacha20_update
    linkageType: ''
    returnType: void
    signature: "void Hacl_Chacha20_chacha20_encrypt(\n    uint32_t len,\n    uint8_t
      *out,\n    uint8_t *text,\n    uint8_t *key,\n    uint8_t *n,\n    uint32_t
      ctr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Impl_Chacha20_chacha20_init
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20.c:225,1
    - Dst: Hacl_Impl_Chacha20_chacha20_update
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20.c:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - len
    - out
    - cipher
    - key
    - n
    - ctr
    argTypes:
    - uint32_t
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 215
    functionDepth: 7
    functionLinenumber: 215
    functionLinenumberEnd: 227
    functionName: Hacl_Chacha20_chacha20_decrypt
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Chacha20.c
    functionUses: 0
    functionsReached:
    - Hacl_Impl_Chacha20_chacha20_init
    - Hacl_Impl_Chacha20_chacha20_update
    linkageType: ''
    returnType: void
    signature: "void Hacl_Chacha20_chacha20_decrypt(\n    uint32_t len,\n    uint8_t
      *out,\n    uint8_t *cipher,\n    uint8_t *key,\n    uint8_t *n,\n    uint32_t
      ctr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_32.c:38,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_32.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 2
    argNames:
    - ctx
    - key
    argTypes:
    - uint64_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 87
    functionName: Hacl_Poly1305_32_poly1305_init
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Poly1305_32.c
    functionUses: 1
    functionsReached:
    - load64_le
    linkageType: ''
    returnType: void
    signature: void Hacl_Poly1305_32_poly1305_init(uint64_t *ctx, uint8_t *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_32.c:95,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_32.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - text
    argTypes:
    - uint64_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 210
    functionName: Hacl_Poly1305_32_poly1305_update1
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Poly1305_32.c
    functionUses: 0
    functionsReached:
    - load64_le
    linkageType: ''
    returnType: void
    signature: void Hacl_Poly1305_32_poly1305_update1(uint64_t *ctx, uint8_t *text)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_32.c:222,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_32.c:224,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_32.c:342,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_32.c:343,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_32.c:345,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 3
    argNames:
    - ctx
    - len
    - text
    argTypes:
    - uint64_t*
    - uint32_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 460
    functionName: Hacl_Poly1305_32_poly1305_update
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Poly1305_32.c
    functionUses: 0
    functionsReached:
    - memcpy
    - load64_le
    linkageType: ''
    returnType: void
    signature: void Hacl_Poly1305_32_poly1305_update(uint64_t *ctx, uint32_t len,
      uint8_t *text)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_32.c:514,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_32.c:515,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_32.c:516,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_32.c:517,1
    - Dst: FStar_UInt64_gte_mask
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_32.c:518,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_32.c:550,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_32.c:552,1
    - Dst: store64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_32.c:562,1
    - Dst: store64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_32.c:563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - tag
    - key
    - ctx
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 564
    functionName: Hacl_Poly1305_32_poly1305_finish
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Poly1305_32.c
    functionUses: 1
    functionsReached:
    - FStar_UInt64_gte_mask
    - store64_le
    - load64_le
    - FStar_UInt64_eq_mask
    linkageType: ''
    returnType: void
    signature: void Hacl_Poly1305_32_poly1305_finish(uint8_t *tag, uint8_t *key, uint64_t
      *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Poly1305_32_poly1305_init
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_32.c:570,1
    - Dst: Hacl_Poly1305_32_poly1305_update
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_32.c:571,1
    - Dst: Hacl_Poly1305_32_poly1305_finish
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_32.c:572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - tag
    - len
    - text
    - key
    argTypes:
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 566
    functionDepth: 2
    functionLinenumber: 566
    functionLinenumberEnd: 573
    functionName: Hacl_Poly1305_32_poly1305_mac
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Poly1305_32.c
    functionUses: 0
    functionsReached:
    - Hacl_Poly1305_32_poly1305_finish
    - Hacl_Poly1305_32_poly1305_update
    - Hacl_Poly1305_32_poly1305_init
    linkageType: ''
    returnType: void
    signature: void Hacl_Poly1305_32_poly1305_mac(uint8_t *tag, uint32_t len, uint8_t
      *text, uint8_t *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_PRE_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:30,1
    - Dst: KRML_POST_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:31,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:32,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:34,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:36,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low128
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:37,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high128
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:39,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:41,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:43,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:44,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:45,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:46,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:48,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:49,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:51,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:52,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:53,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:55,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:56,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:58,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:70,1
    - Dst: Lib_IntVector_Intrinsics_vec256_or
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:72,1
    - Dst: Lib_IntVector_Intrinsics_vec256_insert64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:90,1
    - Dst: Lib_IntVector_Intrinsics_vec256_extract64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:91,1
    - Dst: Lib_IntVector_Intrinsics_vec256_insert64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:95,1
    - Dst: Lib_IntVector_Intrinsics_vec256_extract64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:96,1
    - Dst: Lib_IntVector_Intrinsics_vec256_insert64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:100,1
    - Dst: Lib_IntVector_Intrinsics_vec256_extract64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:101,1
    - Dst: Lib_IntVector_Intrinsics_vec256_insert64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:105,1
    - Dst: Lib_IntVector_Intrinsics_vec256_extract64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:106,1
    - Dst: Lib_IntVector_Intrinsics_vec256_insert64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:110,1
    - Dst: Lib_IntVector_Intrinsics_vec256_extract64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:111,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:113,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:114,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:115,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:116,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - acc
    - b
    argTypes:
    - Lib_IntVector_Intrinsics_vec256*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 128
    functionName: Hacl_Impl_Poly1305_Field32xN_256_load_acc4
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c
    functionUses: 1
    functionsReached:
    - KRML_PRE_ALIGN
    - Lib_IntVector_Intrinsics_vec256_and
    - Lib_IntVector_Intrinsics_vec256_add64
    - Lib_IntVector_Intrinsics_vec256_interleave_low128
    - Lib_IntVector_Intrinsics_vec256_shift_right
    - Lib_IntVector_Intrinsics_vec256_interleave_high64
    - Lib_IntVector_Intrinsics_vec256_load64
    - Lib_IntVector_Intrinsics_vec256_extract64
    - Lib_IntVector_Intrinsics_vec256_or
    - Lib_IntVector_Intrinsics_vec256_interleave_high128
    - Lib_IntVector_Intrinsics_vec256_insert64
    - Lib_IntVector_Intrinsics_vec256_interleave_low64
    - Lib_IntVector_Intrinsics_vec256_shift_right64
    - KRML_POST_ALIGN
    - Lib_IntVector_Intrinsics_vec256_load64_le
    linkageType: ''
    returnType: void
    signature: void Hacl_Impl_Poly1305_Field32xN_256_load_acc4(Lib_IntVector_Intrinsics_vec256
      *acc, uint8_t *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:157,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:158,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:159,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:160,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:161,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:164,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:165,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:168,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:169,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:172,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:173,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:176,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:177,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:180,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:181,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:184,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:185,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:188,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:189,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:192,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:193,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:196,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:197,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:200,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:201,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:204,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:205,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:208,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:209,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:212,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:213,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:216,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:217,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:220,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:221,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:224,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:225,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:228,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:229,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:232,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:233,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:236,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:237,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:240,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:241,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:248,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:250,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:252,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:253,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:254,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:255,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:256,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:258,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:260,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_left64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:262,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:263,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:264,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:265,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:266,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:267,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:269,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:271,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:272,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:273,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:274,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:275,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:277,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:278,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:279,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:285,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:286,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:287,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:288,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:289,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:292,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:293,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:296,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:297,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:300,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:301,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:304,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:305,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:308,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:309,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:312,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:313,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:316,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:317,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:320,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:321,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:324,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:325,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:328,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:329,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:332,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:333,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:336,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:337,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:340,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:341,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:344,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:345,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:348,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:349,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:352,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:353,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:356,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:357,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:360,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:361,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:364,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:365,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:368,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:369,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:376,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:378,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:380,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:381,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:382,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:383,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:384,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:386,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:388,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_left64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:390,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:391,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:392,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:393,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:394,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:395,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:397,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:399,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:400,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:401,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:402,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:403,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:405,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:406,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:407,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:414,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:416,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low128
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:418,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:420,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:422,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low128
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:424,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:426,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:428,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low128
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:430,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:432,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:434,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low128
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:436,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:438,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:440,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low128
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:442,1
    - Dst: Lib_IntVector_Intrinsics_vec256_smul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:444,1
    - Dst: Lib_IntVector_Intrinsics_vec256_smul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:446,1
    - Dst: Lib_IntVector_Intrinsics_vec256_smul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:448,1
    - Dst: Lib_IntVector_Intrinsics_vec256_smul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:450,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:451,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:452,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:453,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:454,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:455,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:458,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:459,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:462,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:463,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:466,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:467,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:470,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:471,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:474,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:475,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:478,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:479,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:482,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:483,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:486,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:487,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:490,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:491,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:494,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:495,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:498,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:499,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:502,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:503,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:506,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:507,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:510,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:511,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:514,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:515,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:518,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:519,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:522,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:523,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:526,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:527,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:530,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:531,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:534,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:535,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:542,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:544,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:546,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:547,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:548,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:549,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:550,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:552,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:554,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_left64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:556,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:557,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:558,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:559,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:560,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:561,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:563,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:565,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:566,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:567,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:568,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:569,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:571,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:572,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:573,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high128
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:580,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:581,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:583,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:584,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high128
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:586,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:587,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:589,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:590,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high128
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:592,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:593,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:595,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:596,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high128
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:598,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:599,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:601,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:602,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high128
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:604,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:605,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:607,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:608,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:610,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:613,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:614,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:616,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:617,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:620,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:621,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:623,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:624,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:627,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:628,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:630,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:631,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:634,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:635,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:637,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:638,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:641,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:642,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:644,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:647,1
    - Dst: Lib_IntVector_Intrinsics_vec256_smul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:648,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - out
    - p
    argTypes:
    - Lib_IntVector_Intrinsics_vec256*
    - Lib_IntVector_Intrinsics_vec256*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 658
    functionName: Hacl_Impl_Poly1305_Field32xN_256_fmul_r4_normalize
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c
    functionUses: 1
    functionsReached:
    - Lib_IntVector_Intrinsics_vec256_and
    - Lib_IntVector_Intrinsics_vec256_add64
    - Lib_IntVector_Intrinsics_vec256_smul64
    - Lib_IntVector_Intrinsics_vec256_interleave_low128
    - Lib_IntVector_Intrinsics_vec256_interleave_high64
    - Lib_IntVector_Intrinsics_vec256_shift_left64
    - Lib_IntVector_Intrinsics_vec256_load64
    - Lib_IntVector_Intrinsics_vec256_mul64
    - Lib_IntVector_Intrinsics_vec256_interleave_high128
    - Lib_IntVector_Intrinsics_vec256_interleave_low64
    - Lib_IntVector_Intrinsics_vec256_shift_right64
    linkageType: ''
    returnType: void
    signature: "void Hacl_Impl_Poly1305_Field32xN_256_fmul_r4_normalize(\n    Lib_IntVector_Intrinsics_vec256
      *out,\n    Lib_IntVector_Intrinsics_vec256 *p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:671,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:673,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:683,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:684,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:687,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:688,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:691,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:691,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:693,1
    - Dst: Lib_IntVector_Intrinsics_vec256_or
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:696,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:696,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_left64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:698,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:698,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:699,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:703,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:703,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:705,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:707,1
    - Dst: Lib_IntVector_Intrinsics_vec256_smul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:723,1
    - Dst: Lib_IntVector_Intrinsics_vec256_smul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:724,1
    - Dst: Lib_IntVector_Intrinsics_vec256_smul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:725,1
    - Dst: Lib_IntVector_Intrinsics_vec256_smul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:726,1
    - Dst: Lib_IntVector_Intrinsics_vec256_smul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:727,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:742,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:743,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:744,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:745,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:746,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:749,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:750,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:753,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:754,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:757,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:758,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:761,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:762,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:765,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:766,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:769,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:770,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:773,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:774,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:777,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:778,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:781,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:782,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:785,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:786,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:789,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:790,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:793,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:794,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:797,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:798,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:801,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:802,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:805,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:806,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:809,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:810,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:813,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:814,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:817,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:818,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:821,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:822,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:825,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:826,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:833,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:835,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:837,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:838,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:839,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:840,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:841,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:843,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:845,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_left64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:847,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:848,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:849,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:850,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:851,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:852,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:854,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:856,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:857,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:858,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:859,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:860,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:862,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:863,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:864,1
    - Dst: Lib_IntVector_Intrinsics_vec256_smul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:880,1
    - Dst: Lib_IntVector_Intrinsics_vec256_smul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:881,1
    - Dst: Lib_IntVector_Intrinsics_vec256_smul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:882,1
    - Dst: Lib_IntVector_Intrinsics_vec256_smul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:883,1
    - Dst: Lib_IntVector_Intrinsics_vec256_smul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:884,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:899,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:900,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:901,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:902,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:903,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:906,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:907,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:910,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:911,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:913,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:913,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:915,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:915,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:917,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:917,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:920,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:921,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:924,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:925,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:928,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:929,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:932,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:933,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:936,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:937,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:940,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:941,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:944,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:945,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:948,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:949,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:952,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:953,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:956,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:957,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:960,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:961,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:964,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:965,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:968,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:969,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:972,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:973,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:976,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:977,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:984,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:986,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:988,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:989,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:990,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:991,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:992,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:994,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:996,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_left64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:998,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:999,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1000,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1001,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1002,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1003,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1005,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1007,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1008,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1009,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1010,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1011,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1013,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1014,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1015,1
    - Dst: Lib_IntVector_Intrinsics_vec256_smul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1031,1
    - Dst: Lib_IntVector_Intrinsics_vec256_smul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1032,1
    - Dst: Lib_IntVector_Intrinsics_vec256_smul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1033,1
    - Dst: Lib_IntVector_Intrinsics_vec256_smul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1034,1
    - Dst: Lib_IntVector_Intrinsics_vec256_smul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1035,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 2
    argNames:
    - ctx
    - key
    argTypes:
    - Lib_IntVector_Intrinsics_vec256*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 660
    functionDepth: 1
    functionLinenumber: 660
    functionLinenumberEnd: 1036
    functionName: Hacl_Poly1305_256_poly1305_init
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c
    functionUses: 1
    functionsReached:
    - Lib_IntVector_Intrinsics_vec256_and
    - Lib_IntVector_Intrinsics_vec256_add64
    - Lib_IntVector_Intrinsics_vec256_smul64
    - Lib_IntVector_Intrinsics_vec256_shift_left64
    - Lib_IntVector_Intrinsics_vec256_load64
    - Lib_IntVector_Intrinsics_vec256_mul64
    - Lib_IntVector_Intrinsics_vec256_or
    - Lib_IntVector_Intrinsics_vec256_shift_right64
    - load64_le
    linkageType: ''
    returnType: void
    signature: void Hacl_Poly1305_256_poly1305_init(Lib_IntVector_Intrinsics_vec256
      *ctx, uint8_t *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_PRE_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1043,1
    - Dst: KRML_POST_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1044,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1045,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1047,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1049,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1050,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1053,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1054,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1057,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1057,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1059,1
    - Dst: Lib_IntVector_Intrinsics_vec256_or
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1062,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1062,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_left64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1064,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1064,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1065,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1069,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1069,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1071,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1073,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1085,1
    - Dst: Lib_IntVector_Intrinsics_vec256_or
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1087,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1109,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1110,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1111,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1112,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1113,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1114,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1115,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1116,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1117,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1118,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1121,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1122,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1125,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1126,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1129,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1130,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1133,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1134,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1137,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1138,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1141,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1142,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1145,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1146,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1149,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1150,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1153,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1154,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1157,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1158,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1161,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1162,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1165,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1166,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1169,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1170,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1173,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1174,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1177,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1178,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1181,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1182,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1185,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1186,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1189,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1190,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1193,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1194,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1197,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1198,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1205,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1207,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1209,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1210,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1211,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1212,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1213,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1215,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1217,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_left64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1219,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1220,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1221,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1222,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1223,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1224,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1226,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1228,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1229,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1230,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1231,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1232,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1234,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1235,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - ctx
    - text
    argTypes:
    - Lib_IntVector_Intrinsics_vec256*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1247
      start: 1038
    functionDepth: 1
    functionLinenumber: 1038
    functionLinenumberEnd: 1247
    functionName: Hacl_Poly1305_256_poly1305_update1
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c
    functionUses: 0
    functionsReached:
    - KRML_PRE_ALIGN
    - Lib_IntVector_Intrinsics_vec256_and
    - Lib_IntVector_Intrinsics_vec256_add64
    - Lib_IntVector_Intrinsics_vec256_shift_left64
    - Lib_IntVector_Intrinsics_vec256_load64
    - Lib_IntVector_Intrinsics_vec256_mul64
    - Lib_IntVector_Intrinsics_vec256_or
    - Lib_IntVector_Intrinsics_vec256_shift_right64
    - KRML_POST_ALIGN
    - load64_le
    linkageType: ''
    returnType: void
    signature: void Hacl_Poly1305_256_poly1305_update1(Lib_IntVector_Intrinsics_vec256
      *ctx, uint8_t *text)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Impl_Poly1305_Field32xN_256_load_acc4
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1263,1
    - Dst: KRML_PRE_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1269,1
    - Dst: KRML_POST_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1270,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1271,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1273,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1275,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low128
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1277,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high128
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1279,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1281,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1283,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1285,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1287,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1289,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1291,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1292,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1294,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1295,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1296,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1298,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1299,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1301,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1313,1
    - Dst: Lib_IntVector_Intrinsics_vec256_or
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1315,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1332,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1333,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1334,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1335,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1336,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1339,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1340,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1343,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1344,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1347,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1348,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1351,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1352,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1355,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1356,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1359,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1360,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1363,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1364,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1367,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1368,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1371,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1372,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1375,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1376,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1379,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1380,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1383,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1384,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1387,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1388,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1391,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1392,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1395,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1396,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1399,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1400,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1403,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1404,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1407,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1408,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1411,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1412,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1415,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1416,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1423,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1425,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1427,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1428,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1429,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1430,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1431,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1433,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1435,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_left64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1437,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1438,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1439,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1440,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1441,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1442,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1444,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1446,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1447,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1448,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1449,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1450,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1452,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1453,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1454,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1475,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1476,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1477,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1478,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1479,1
    - Dst: Hacl_Impl_Poly1305_Field32xN_256_fmul_r4_normalize
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1486,1
    - Dst: KRML_PRE_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1494,1
    - Dst: KRML_POST_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1495,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1496,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1498,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1500,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1501,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1504,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1505,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1508,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1508,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1510,1
    - Dst: Lib_IntVector_Intrinsics_vec256_or
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1513,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1513,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_left64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1515,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1515,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1516,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1520,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1520,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1522,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1524,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1536,1
    - Dst: Lib_IntVector_Intrinsics_vec256_or
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1538,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1560,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1561,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1562,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1563,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1564,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1565,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1566,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1567,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1568,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1569,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1572,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1573,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1576,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1577,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1580,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1581,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1584,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1585,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1588,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1589,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1592,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1593,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1596,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1597,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1600,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1601,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1604,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1605,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1608,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1609,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1612,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1613,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1616,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1617,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1620,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1621,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1624,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1625,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1628,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1629,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1632,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1633,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1636,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1637,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1640,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1641,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1644,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1645,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1648,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1649,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1656,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1658,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1660,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1661,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1662,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1663,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1664,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1666,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1668,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_left64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1670,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1671,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1672,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1673,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1674,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1675,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1677,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1679,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1680,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1681,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1682,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1683,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1685,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1686,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1687,1
    - Dst: KRML_PRE_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1701,1
    - Dst: KRML_POST_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1702,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1704,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1705,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1707,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1709,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1710,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1713,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1714,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1717,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1717,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1719,1
    - Dst: Lib_IntVector_Intrinsics_vec256_or
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1722,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1722,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_left64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1724,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1724,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1725,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1729,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1729,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1731,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1733,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1745,1
    - Dst: Lib_IntVector_Intrinsics_vec256_or
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1747,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1769,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1770,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1771,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1772,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1773,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1774,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1775,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1776,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1777,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1778,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1781,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1782,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1785,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1786,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1789,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1790,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1793,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1794,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1797,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1798,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1801,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1802,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1805,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1806,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1809,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1810,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1813,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1814,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1817,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1818,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1821,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1822,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1825,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1826,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1829,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1830,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1833,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1834,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1837,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1838,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1841,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1842,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1845,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1846,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1849,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1850,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1853,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1854,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1857,1
    - Dst: Lib_IntVector_Intrinsics_vec256_mul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1858,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1865,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1867,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1869,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1870,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1871,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1872,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1873,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1875,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1877,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_left64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1879,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1880,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1881,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1882,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1883,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1884,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1886,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1888,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1889,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1890,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1891,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1892,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1894,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1895,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1896,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 57
    argCount: 3
    argNames:
    - ctx
    - len
    - text
    argTypes:
    - Lib_IntVector_Intrinsics_vec256*
    - uint32_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1909
      start: 1249
    functionDepth: 2
    functionLinenumber: 1249
    functionLinenumberEnd: 1909
    functionName: Hacl_Poly1305_256_poly1305_update
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c
    functionUses: 0
    functionsReached:
    - Lib_IntVector_Intrinsics_vec256_add64
    - Hacl_Impl_Poly1305_Field32xN_256_load_acc4
    - Lib_IntVector_Intrinsics_vec256_mul64
    - memcpy
    - Lib_IntVector_Intrinsics_vec256_interleave_low128
    - Lib_IntVector_Intrinsics_vec256_shift_right
    - Lib_IntVector_Intrinsics_vec256_or
    - Lib_IntVector_Intrinsics_vec256_load64_le
    - KRML_PRE_ALIGN
    - Lib_IntVector_Intrinsics_vec256_and
    - Lib_IntVector_Intrinsics_vec256_interleave_high64
    - Lib_IntVector_Intrinsics_vec256_shift_left64
    - Lib_IntVector_Intrinsics_vec256_load64
    - Lib_IntVector_Intrinsics_vec256_interleave_high128
    - Lib_IntVector_Intrinsics_vec256_interleave_low64
    - KRML_POST_ALIGN
    - load64_le
    - Lib_IntVector_Intrinsics_vec256_shift_right64
    - Hacl_Impl_Poly1305_Field32xN_256_fmul_r4_normalize
    linkageType: ''
    returnType: void
    signature: "void Hacl_Poly1305_256_poly1305_update(\n    Lib_IntVector_Intrinsics_vec256
      *ctx,\n    uint32_t len,\n    uint8_t *text)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1925,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1928,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1929,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1931,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1932,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1935,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1936,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1938,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1939,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1942,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1943,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1945,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1946,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1949,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1950,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1952,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1953,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1956,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1957,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1959,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1962,1
    - Dst: Lib_IntVector_Intrinsics_vec256_smul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1963,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1969,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1972,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1973,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1975,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1976,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1979,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1980,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1982,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1983,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1986,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1987,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1989,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1990,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1993,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1994,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1996,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:1997,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:2000,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:2001,1
    - Dst: Lib_IntVector_Intrinsics_vec256_shift_right64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:2003,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:2006,1
    - Dst: Lib_IntVector_Intrinsics_vec256_smul64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:2007,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:2013,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:2015,1
    - Dst: Lib_IntVector_Intrinsics_vec256_eq64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:2016,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:2019,1
    - Dst: Lib_IntVector_Intrinsics_vec256_eq64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:2020,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:2023,1
    - Dst: Lib_IntVector_Intrinsics_vec256_eq64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:2024,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:2027,1
    - Dst: Lib_IntVector_Intrinsics_vec256_eq64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:2028,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:2031,1
    - Dst: Lib_IntVector_Intrinsics_vec256_lognot
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:2032,1
    - Dst: Lib_IntVector_Intrinsics_vec256_gt64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:2032,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:2033,1
    - Dst: Lib_IntVector_Intrinsics_vec256_and
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:2034,1
    - Dst: Lib_IntVector_Intrinsics_vec256_sub64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:2035,1
    - Dst: Lib_IntVector_Intrinsics_vec256_sub64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:2036,1
    - Dst: Lib_IntVector_Intrinsics_vec256_sub64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:2037,1
    - Dst: Lib_IntVector_Intrinsics_vec256_sub64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:2038,1
    - Dst: Lib_IntVector_Intrinsics_vec256_sub64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:2039,1
    - Dst: Lib_IntVector_Intrinsics_vec256_extract64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:2055,1
    - Dst: Lib_IntVector_Intrinsics_vec256_extract64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:2056,1
    - Dst: Lib_IntVector_Intrinsics_vec256_extract64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:2057,1
    - Dst: Lib_IntVector_Intrinsics_vec256_extract64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:2058,1
    - Dst: Lib_IntVector_Intrinsics_vec256_extract64
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:2059,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:2064,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:2066,1
    - Dst: store64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:2076,1
    - Dst: store64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:2077,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - tag
    - key
    - ctx
    argTypes:
    - uint8_t*
    - uint8_t*
    - Lib_IntVector_Intrinsics_vec256*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2078
      start: 1911
    functionDepth: 1
    functionLinenumber: 1911
    functionLinenumberEnd: 2078
    functionName: Hacl_Poly1305_256_poly1305_finish
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c
    functionUses: 1
    functionsReached:
    - Lib_IntVector_Intrinsics_vec256_sub64
    - Lib_IntVector_Intrinsics_vec256_and
    - Lib_IntVector_Intrinsics_vec256_add64
    - Lib_IntVector_Intrinsics_vec256_lognot
    - Lib_IntVector_Intrinsics_vec256_smul64
    - Lib_IntVector_Intrinsics_vec256_eq64
    - Lib_IntVector_Intrinsics_vec256_load64
    - Lib_IntVector_Intrinsics_vec256_gt64
    - Lib_IntVector_Intrinsics_vec256_extract64
    - store64_le
    - Lib_IntVector_Intrinsics_vec256_shift_right64
    - load64_le
    linkageType: ''
    returnType: void
    signature: "void Hacl_Poly1305_256_poly1305_finish(\n    uint8_t *tag,\n    uint8_t
      *key,\n    Lib_IntVector_Intrinsics_vec256 *ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_PRE_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:2083,1
    - Dst: KRML_POST_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:2084,1
    - Dst: Hacl_Poly1305_256_poly1305_init
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:2085,1
    - Dst: Hacl_Poly1305_256_poly1305_update
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:2086,1
    - Dst: Hacl_Poly1305_256_poly1305_finish
      Src: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c:2087,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - tag
    - len
    - text
    - key
    argTypes:
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2088
      start: 2080
    functionDepth: 3
    functionLinenumber: 2080
    functionLinenumberEnd: 2088
    functionName: Hacl_Poly1305_256_poly1305_mac
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Poly1305_256.c
    functionUses: 0
    functionsReached:
    - KRML_PRE_ALIGN
    - Hacl_Poly1305_256_poly1305_init
    - Hacl_Poly1305_256_poly1305_finish
    - Hacl_Poly1305_256_poly1305_update
    - KRML_POST_ALIGN
    linkageType: ''
    returnType: void
    signature: void Hacl_Poly1305_256_poly1305_mac(uint8_t *tag, uint32_t len, uint8_t
      *text, uint8_t *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: core_num__u16_7__wrapping_add
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 29
    functionName: inz
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_core.c
    functionUses: 0
    functionsReached:
    - core_num__u16_7__wrapping_add
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t inz(uint8_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inz
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: is_non_zero
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_core.c
    functionUses: 0
    functionsReached:
    - inz
    linkageType: ''
    returnType: KRML_NOINLINE
    signature: KRML_NOINLINE is_non_zero(uint8_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Eurydice_slice_index
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:48,1
    - Dst: Eurydice_slice_index
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:49,1
    - Dst: is_non_zero
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - Eurydice_slice
    - Eurydice_slice
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 41
    functionDepth: 3
    functionLinenumber: 41
    functionLinenumberEnd: 52
    functionName: compare
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_core.c
    functionUses: 0
    functionsReached:
    - is_non_zero
    - Eurydice_slice_index
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t compare(Eurydice_slice lhs, Eurydice_slice rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: compare
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - Eurydice_slice
    - Eurydice_slice
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: compare_ciphertexts_in_constant_time
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_core.c
    functionUses: 0
    functionsReached:
    - compare
    linkageType: ''
    returnType: KRML_NOINLINE
    signature: KRML_NOINLINE compare_ciphertexts_in_constant_time(Eurydice_slice lhs,
      Eurydice_slice rhs)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: core_num__u8_6__wrapping_sub
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:68,1
    - Dst: is_non_zero
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:68,1
    - Dst: Eurydice_slice_index
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:73,1
    - Dst: Eurydice_slice_index
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:75,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:78,1
    - Dst: select_shared_secret_in_constant_time
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:82,1
    - Dst: select_ct
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:86,1
    - Dst: compare_ciphertexts_in_constant_time
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:94,1
    - Dst: select_shared_secret_in_constant_time
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:96,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:97,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:115,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:117,1
    - Dst: CLITERAL
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:140,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:158,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:160,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:179,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:181,1
    - Dst: Eurydice_array_to_slice
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:216,1
    - Dst: Eurydice_slice_copy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:233,1
    - Dst: Eurydice_array_to_subslice2
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:234,1
    - Dst: Eurydice_slice_len
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:235,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:237,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:255,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:257,1
    - Dst: CLITERAL
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:280,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:298,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:300,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:319,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:321,1
    - Dst: Eurydice_array_to_slice
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:356,1
    - Dst: Eurydice_slice_copy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:373,1
    - Dst: Eurydice_array_to_subslice2
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:374,1
    - Dst: Eurydice_slice_len
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:375,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:377,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:395,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:397,1
    - Dst: CLITERAL
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:419,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:437,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:439,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:456,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:457,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:459,1
    - Dst: KRML_HOST_EXIT
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:461,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:480,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:482,1
    - Dst: Eurydice_slice_copy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:518,1
    - Dst: Eurydice_array_to_subslice2
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:519,1
    - Dst: Eurydice_slice_len
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:520,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:522,1
    - Dst: Eurydice_slice_copy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:539,1
    - Dst: Eurydice_array_to_subslice2
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:540,1
    - Dst: Eurydice_slice_len
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:541,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:543,1
    - Dst: Eurydice_array_to_slice
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:559,1
    - Dst: Eurydice_slice_copy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:576,1
    - Dst: Eurydice_array_to_subslice2
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:577,1
    - Dst: Eurydice_slice_len
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:578,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:580,1
    - Dst: Eurydice_slice_copy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:597,1
    - Dst: Eurydice_array_to_subslice2
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:598,1
    - Dst: Eurydice_slice_len
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:599,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:601,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:617,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:618,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:620,1
    - Dst: KRML_HOST_EXIT
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:622,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:639,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:640,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:642,1
    - Dst: KRML_HOST_EXIT
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:644,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:661,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:662,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:664,1
    - Dst: KRML_HOST_EXIT
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:666,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:683,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:684,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:686,1
    - Dst: KRML_HOST_EXIT
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:688,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:705,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:706,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:708,1
    - Dst: KRML_HOST_EXIT
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:710,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 126
    argCount: 4
    argNames:
    - lhs
    - rhs
    - selector
    - ret
    argTypes:
    - Eurydice_slice
    - Eurydice_slice
    - uint8_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 64
    functionDepth: 3
    functionLinenumber: 64
    functionLinenumberEnd: 712
    functionName: select_ct
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_core.c
    functionUses: 1
    functionsReached:
    - memcpy
    - Eurydice_array_to_subslice2
    - Eurydice_array_to_slice
    - compare_ciphertexts_in_constant_time
    - select_ct
    - CLITERAL
    - Eurydice_slice_copy
    - is_non_zero
    - Eurydice_slice_index
    - Eurydice_slice_len
    - core_num__u8_6__wrapping_sub
    - KRML_HOST_EXIT
    - select_shared_secret_in_constant_time
    - KRML_HOST_EPRINTF
    linkageType: ''
    returnType: void
    signature: "void select_ct(Eurydice_slice lhs, Eurydice_slice rhs, uint8_t selector,\n
      \         uint8_t ret[32U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:115,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 119
    functionName: libcrux_ml_kem_types_from_b6_961
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_core.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: libcrux_ml_kem_types_MlKemPublicKey_1f
    signature: "libcrux_ml_kem_types_MlKemPublicKey_1f libcrux_ml_kem_types_from_b6_961(\n
      \   uint8_t value[1568U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CLITERAL
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sk
    - pk
    argTypes:
    - libcrux_ml_kem_types_MlKemPrivateKey_95
    - libcrux_ml_kem_types_MlKemPublicKey_1f
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 141
    functionName: libcrux_ml_kem_types_from_17_821
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_core.c
    functionUses: 0
    functionsReached:
    - CLITERAL
    linkageType: ''
    returnType: libcrux_ml_kem_mlkem1024_MlKem1024KeyPair
    signature: "libcrux_ml_kem_mlkem1024_MlKem1024KeyPair libcrux_ml_kem_types_from_17_821(\n
      \   libcrux_ml_kem_types_MlKemPrivateKey_95 sk,\n    libcrux_ml_kem_types_MlKemPublicKey_1f
      pk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:158,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 162
    functionName: libcrux_ml_kem_types_from_05_891
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_core.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: libcrux_ml_kem_types_MlKemPrivateKey_95
    signature: "libcrux_ml_kem_types_MlKemPrivateKey_95 libcrux_ml_kem_types_from_05_891(\n
      \   uint8_t value[3168U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:179,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 183
    functionName: libcrux_ml_kem_types_from_01_331
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_core.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: libcrux_ml_kem_mlkem1024_MlKem1024Ciphertext
    signature: "libcrux_ml_kem_mlkem1024_MlKem1024Ciphertext libcrux_ml_kem_types_from_01_331(\n
      \   uint8_t value[1568U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - libcrux_ml_kem_types_MlKemPublicKey_1f*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 201
    functionName: libcrux_ml_kem_types_as_slice_cb_3d1
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t *\nlibcrux_ml_kem_types_as_slice_cb_3d1(\n    libcrux_ml_kem_types_MlKemPublicKey_1f
      *self)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Eurydice_array_to_slice
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - libcrux_ml_kem_mlkem1024_MlKem1024Ciphertext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 217
    functionName: libcrux_ml_kem_types_as_ref_00_d81
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_core.c
    functionUses: 0
    functionsReached:
    - Eurydice_array_to_slice
    linkageType: ''
    returnType: Eurydice_slice
    signature: "Eurydice_slice libcrux_ml_kem_types_as_ref_00_d81(\n    libcrux_ml_kem_mlkem1024_MlKem1024Ciphertext
      *self)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Eurydice_slice_copy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:233,1
    - Dst: Eurydice_array_to_subslice2
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:234,1
    - Dst: Eurydice_slice_len
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:235,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - slice
    - ret
    argTypes:
    - Eurydice_slice
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 238
    functionName: libcrux_ml_kem_utils_into_padded_array_6d4
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_core.c
    functionUses: 0
    functionsReached:
    - memcpy
    - Eurydice_slice_copy
    - Eurydice_array_to_subslice2
    - Eurydice_slice_len
    linkageType: ''
    returnType: void
    signature: "void libcrux_ml_kem_utils_into_padded_array_6d4(Eurydice_slice slice,\n
      \                                          uint8_t ret[1600U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:255,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 259
    functionName: libcrux_ml_kem_types_from_b6_960
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_core.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: libcrux_ml_kem_types_MlKemPublicKey_15
    signature: "libcrux_ml_kem_types_MlKemPublicKey_15 libcrux_ml_kem_types_from_b6_960(\n
      \   uint8_t value[1184U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CLITERAL
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sk
    - pk
    argTypes:
    - libcrux_ml_kem_types_MlKemPrivateKey_55
    - libcrux_ml_kem_types_MlKemPublicKey_15
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 281
    functionName: libcrux_ml_kem_types_from_17_820
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_core.c
    functionUses: 0
    functionsReached:
    - CLITERAL
    linkageType: ''
    returnType: libcrux_ml_kem_mlkem768_MlKem768KeyPair
    signature: "libcrux_ml_kem_mlkem768_MlKem768KeyPair libcrux_ml_kem_types_from_17_820(\n
      \   libcrux_ml_kem_types_MlKemPrivateKey_55 sk,\n    libcrux_ml_kem_types_MlKemPublicKey_15
      pk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:298,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 302
    functionName: libcrux_ml_kem_types_from_05_890
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_core.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: libcrux_ml_kem_types_MlKemPrivateKey_55
    signature: "libcrux_ml_kem_types_MlKemPrivateKey_55 libcrux_ml_kem_types_from_05_890(\n
      \   uint8_t value[2400U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:319,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 323
    functionName: libcrux_ml_kem_types_from_01_330
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_core.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: libcrux_ml_kem_mlkem768_MlKem768Ciphertext
    signature: "libcrux_ml_kem_mlkem768_MlKem768Ciphertext libcrux_ml_kem_types_from_01_330(\n
      \   uint8_t value[1088U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - libcrux_ml_kem_types_MlKemPublicKey_15*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 341
    functionName: libcrux_ml_kem_types_as_slice_cb_3d0
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t *\nlibcrux_ml_kem_types_as_slice_cb_3d0(\n    libcrux_ml_kem_types_MlKemPublicKey_15
      *self)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Eurydice_array_to_slice
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - libcrux_ml_kem_mlkem768_MlKem768Ciphertext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 357
    functionName: libcrux_ml_kem_types_as_ref_00_d80
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_core.c
    functionUses: 0
    functionsReached:
    - Eurydice_array_to_slice
    linkageType: ''
    returnType: Eurydice_slice
    signature: "Eurydice_slice libcrux_ml_kem_types_as_ref_00_d80(\n    libcrux_ml_kem_mlkem768_MlKem768Ciphertext
      *self)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Eurydice_slice_copy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:373,1
    - Dst: Eurydice_array_to_subslice2
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:374,1
    - Dst: Eurydice_slice_len
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:375,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - slice
    - ret
    argTypes:
    - Eurydice_slice
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 378
    functionName: libcrux_ml_kem_utils_into_padded_array_6d3
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_core.c
    functionUses: 0
    functionsReached:
    - memcpy
    - Eurydice_slice_copy
    - Eurydice_array_to_subslice2
    - Eurydice_slice_len
    linkageType: ''
    returnType: void
    signature: "void libcrux_ml_kem_utils_into_padded_array_6d3(Eurydice_slice slice,\n
      \                                          uint8_t ret[1120U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:395,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 399
    functionName: libcrux_ml_kem_types_from_b6_96
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_core.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: libcrux_ml_kem_types_MlKemPublicKey_be
    signature: "libcrux_ml_kem_types_MlKemPublicKey_be libcrux_ml_kem_types_from_b6_96(\n
      \   uint8_t value[800U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CLITERAL
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sk
    - pk
    argTypes:
    - libcrux_ml_kem_types_MlKemPrivateKey_5e
    - libcrux_ml_kem_types_MlKemPublicKey_be
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 420
    functionName: libcrux_ml_kem_types_from_17_82
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_core.c
    functionUses: 0
    functionsReached:
    - CLITERAL
    linkageType: ''
    returnType: libcrux_ml_kem_types_MlKemKeyPair_cb
    signature: "libcrux_ml_kem_types_MlKemKeyPair_cb libcrux_ml_kem_types_from_17_82(\n
      \   libcrux_ml_kem_types_MlKemPrivateKey_5e sk,\n    libcrux_ml_kem_types_MlKemPublicKey_be
      pk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:437,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 431
    functionDepth: 1
    functionLinenumber: 431
    functionLinenumberEnd: 441
    functionName: libcrux_ml_kem_types_from_05_89
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_core.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: libcrux_ml_kem_types_MlKemPrivateKey_5e
    signature: "libcrux_ml_kem_types_MlKemPrivateKey_5e libcrux_ml_kem_types_from_05_89(\n
      \   uint8_t value[1632U])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:456,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:457,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:459,1
    - Dst: KRML_HOST_EXIT
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:461,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - ret
    argTypes:
    - core_result_Result_00
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 463
    functionName: core_result_unwrap_41_33
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_core.c
    functionUses: 0
    functionsReached:
    - memcpy
    - KRML_HOST_EPRINTF
    - KRML_HOST_EXIT
    linkageType: ''
    returnType: void
    signature: void core_result_unwrap_41_33(core_result_Result_00 self, uint8_t ret[32U])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:480,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 474
    functionDepth: 1
    functionLinenumber: 474
    functionLinenumberEnd: 484
    functionName: libcrux_ml_kem_types_from_01_33
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_core.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: libcrux_ml_kem_types_MlKemCiphertext_e8
    signature: "libcrux_ml_kem_types_MlKemCiphertext_e8 libcrux_ml_kem_types_from_01_33(\n
      \   uint8_t value[768U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - libcrux_ml_kem_types_MlKemPublicKey_be*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 502
    functionName: libcrux_ml_kem_types_as_slice_cb_3d
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_core.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t *\nlibcrux_ml_kem_types_as_slice_cb_3d(\n    libcrux_ml_kem_types_MlKemPublicKey_be
      *self)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Eurydice_slice_copy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:518,1
    - Dst: Eurydice_array_to_subslice2
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:519,1
    - Dst: Eurydice_slice_len
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:520,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - slice
    - ret
    argTypes:
    - Eurydice_slice
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 523
    functionName: libcrux_ml_kem_utils_into_padded_array_6d2
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_core.c
    functionUses: 0
    functionsReached:
    - memcpy
    - Eurydice_slice_copy
    - Eurydice_array_to_subslice2
    - Eurydice_slice_len
    linkageType: ''
    returnType: void
    signature: "void libcrux_ml_kem_utils_into_padded_array_6d2(Eurydice_slice slice,\n
      \                                          uint8_t ret[33U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Eurydice_slice_copy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:539,1
    - Dst: Eurydice_array_to_subslice2
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:540,1
    - Dst: Eurydice_slice_len
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:541,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - slice
    - ret
    argTypes:
    - Eurydice_slice
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 533
    functionDepth: 1
    functionLinenumber: 533
    functionLinenumberEnd: 544
    functionName: libcrux_ml_kem_utils_into_padded_array_6d1
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_core.c
    functionUses: 0
    functionsReached:
    - memcpy
    - Eurydice_slice_copy
    - Eurydice_array_to_subslice2
    - Eurydice_slice_len
    linkageType: ''
    returnType: void
    signature: "void libcrux_ml_kem_utils_into_padded_array_6d1(Eurydice_slice slice,\n
      \                                          uint8_t ret[34U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Eurydice_array_to_slice
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - libcrux_ml_kem_types_MlKemCiphertext_e8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 555
    functionDepth: 1
    functionLinenumber: 555
    functionLinenumberEnd: 560
    functionName: libcrux_ml_kem_types_as_ref_00_d8
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_core.c
    functionUses: 0
    functionsReached:
    - Eurydice_array_to_slice
    linkageType: ''
    returnType: Eurydice_slice
    signature: "Eurydice_slice libcrux_ml_kem_types_as_ref_00_d8(\n    libcrux_ml_kem_types_MlKemCiphertext_e8
      *self)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Eurydice_slice_copy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:576,1
    - Dst: Eurydice_array_to_subslice2
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:577,1
    - Dst: Eurydice_slice_len
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:578,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - slice
    - ret
    argTypes:
    - Eurydice_slice
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 581
    functionName: libcrux_ml_kem_utils_into_padded_array_6d0
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_core.c
    functionUses: 0
    functionsReached:
    - memcpy
    - Eurydice_slice_copy
    - Eurydice_array_to_subslice2
    - Eurydice_slice_len
    linkageType: ''
    returnType: void
    signature: "void libcrux_ml_kem_utils_into_padded_array_6d0(Eurydice_slice slice,\n
      \                                          uint8_t ret[800U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Eurydice_slice_copy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:597,1
    - Dst: Eurydice_array_to_subslice2
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:598,1
    - Dst: Eurydice_slice_len
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:599,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - slice
    - ret
    argTypes:
    - Eurydice_slice
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 591
    functionDepth: 1
    functionLinenumber: 591
    functionLinenumberEnd: 602
    functionName: libcrux_ml_kem_utils_into_padded_array_6d
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_core.c
    functionUses: 0
    functionsReached:
    - memcpy
    - Eurydice_slice_copy
    - Eurydice_array_to_subslice2
    - Eurydice_slice_len
    linkageType: ''
    returnType: void
    signature: "void libcrux_ml_kem_utils_into_padded_array_6d(Eurydice_slice slice,\n
      \                                         uint8_t ret[64U])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:617,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:618,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:620,1
    - Dst: KRML_HOST_EXIT
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:622,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - ret
    argTypes:
    - core_result_Result_6f
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 612
    functionDepth: 1
    functionLinenumber: 612
    functionLinenumberEnd: 624
    functionName: core_result_unwrap_41_76
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_core.c
    functionUses: 0
    functionsReached:
    - memcpy
    - KRML_HOST_EPRINTF
    - KRML_HOST_EXIT
    linkageType: ''
    returnType: void
    signature: void core_result_unwrap_41_76(core_result_Result_6f self, uint8_t ret[24U])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:639,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:640,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:642,1
    - Dst: KRML_HOST_EXIT
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:644,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - ret
    argTypes:
    - core_result_Result_7a
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 634
    functionDepth: 1
    functionLinenumber: 634
    functionLinenumberEnd: 646
    functionName: core_result_unwrap_41_ea
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_core.c
    functionUses: 0
    functionsReached:
    - memcpy
    - KRML_HOST_EPRINTF
    - KRML_HOST_EXIT
    linkageType: ''
    returnType: void
    signature: void core_result_unwrap_41_ea(core_result_Result_7a self, uint8_t ret[20U])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:661,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:662,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:664,1
    - Dst: KRML_HOST_EXIT
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:666,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - ret
    argTypes:
    - core_result_Result_cd
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 656
    functionDepth: 1
    functionLinenumber: 656
    functionLinenumberEnd: 668
    functionName: core_result_unwrap_41_07
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_core.c
    functionUses: 0
    functionsReached:
    - memcpy
    - KRML_HOST_EPRINTF
    - KRML_HOST_EXIT
    linkageType: ''
    returnType: void
    signature: void core_result_unwrap_41_07(core_result_Result_cd self, uint8_t ret[10U])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:683,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:684,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:686,1
    - Dst: KRML_HOST_EXIT
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:688,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - ret
    argTypes:
    - core_result_Result_c0
    - int16_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 678
    functionDepth: 1
    functionLinenumber: 678
    functionLinenumberEnd: 690
    functionName: core_result_unwrap_41_30
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_core.c
    functionUses: 1
    functionsReached:
    - memcpy
    - KRML_HOST_EPRINTF
    - KRML_HOST_EXIT
    linkageType: ''
    returnType: void
    signature: void core_result_unwrap_41_30(core_result_Result_c0 self, int16_t ret[16U])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:705,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:706,1
    - Dst: KRML_HOST_EPRINTF
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:708,1
    - Dst: KRML_HOST_EXIT
      Src: /src/nss/lib/freebl/verified/libcrux_core.c:710,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - self
    - ret
    argTypes:
    - core_result_Result_56
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 700
    functionDepth: 1
    functionLinenumber: 700
    functionLinenumberEnd: 712
    functionName: core_result_unwrap_41_0e
    functionSourceFile: /src/nss/lib/freebl/verified/libcrux_core.c
    functionUses: 5
    functionsReached:
    - memcpy
    - KRML_HOST_EPRINTF
    - KRML_HOST_EXIT
    linkageType: ''
    returnType: void
    signature: void core_result_unwrap_41_0e(core_result_Result_56 self, uint8_t ret[8U])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lib_IntVector_Intrinsics_vec256_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:33,1
    - Dst: Lib_IntVector_Intrinsics_vec256_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:34,1
    - Dst: Lib_IntVector_Intrinsics_vec256_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:35,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:36,1
    - Dst: Lib_IntVector_Intrinsics_vec256_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:37,1
    - Dst: Lib_IntVector_Intrinsics_vec256_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:38,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:39,1
    - Dst: Lib_IntVector_Intrinsics_vec256_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:40,1
    - Dst: Lib_IntVector_Intrinsics_vec256_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:41,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:42,1
    - Dst: Lib_IntVector_Intrinsics_vec256_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:43,1
    - Dst: Lib_IntVector_Intrinsics_vec256_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:44,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:45,1
    - Dst: Lib_IntVector_Intrinsics_vec256_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:46,1
    - Dst: Lib_IntVector_Intrinsics_vec256_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:47,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:48,1
    - Dst: Lib_IntVector_Intrinsics_vec256_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:49,1
    - Dst: Lib_IntVector_Intrinsics_vec256_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:50,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:51,1
    - Dst: Lib_IntVector_Intrinsics_vec256_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:52,1
    - Dst: Lib_IntVector_Intrinsics_vec256_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:53,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:54,1
    - Dst: Lib_IntVector_Intrinsics_vec256_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:55,1
    - Dst: Lib_IntVector_Intrinsics_vec256_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:56,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:57,1
    - Dst: Lib_IntVector_Intrinsics_vec256_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:58,1
    - Dst: Lib_IntVector_Intrinsics_vec256_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:59,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:60,1
    - Dst: Lib_IntVector_Intrinsics_vec256_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:61,1
    - Dst: Lib_IntVector_Intrinsics_vec256_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:62,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:63,1
    - Dst: Lib_IntVector_Intrinsics_vec256_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:64,1
    - Dst: Lib_IntVector_Intrinsics_vec256_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:65,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:66,1
    - Dst: Lib_IntVector_Intrinsics_vec256_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:67,1
    - Dst: Lib_IntVector_Intrinsics_vec256_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:68,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:69,1
    - Dst: Lib_IntVector_Intrinsics_vec256_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:70,1
    - Dst: Lib_IntVector_Intrinsics_vec256_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:71,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:72,1
    - Dst: Lib_IntVector_Intrinsics_vec256_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:73,1
    - Dst: Lib_IntVector_Intrinsics_vec256_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:74,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:75,1
    - Dst: Lib_IntVector_Intrinsics_vec256_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:76,1
    - Dst: Lib_IntVector_Intrinsics_vec256_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:77,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:78,1
    - Dst: Lib_IntVector_Intrinsics_vec256_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:79,1
    - Dst: Lib_IntVector_Intrinsics_vec256_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:80,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:81,1
    - Dst: Lib_IntVector_Intrinsics_vec256_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:82,1
    - Dst: Lib_IntVector_Intrinsics_vec256_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:83,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:84,1
    - Dst: Lib_IntVector_Intrinsics_vec256_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:85,1
    - Dst: Lib_IntVector_Intrinsics_vec256_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:86,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:87,1
    - Dst: Lib_IntVector_Intrinsics_vec256_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:88,1
    - Dst: Lib_IntVector_Intrinsics_vec256_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:89,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:90,1
    - Dst: Lib_IntVector_Intrinsics_vec256_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:91,1
    - Dst: Lib_IntVector_Intrinsics_vec256_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:92,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:93,1
    - Dst: Lib_IntVector_Intrinsics_vec256_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:94,1
    - Dst: Lib_IntVector_Intrinsics_vec256_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:95,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:96,1
    - Dst: Lib_IntVector_Intrinsics_vec256_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:97,1
    - Dst: Lib_IntVector_Intrinsics_vec256_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:98,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:99,1
    - Dst: Lib_IntVector_Intrinsics_vec256_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:100,1
    - Dst: Lib_IntVector_Intrinsics_vec256_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:101,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:102,1
    - Dst: Lib_IntVector_Intrinsics_vec256_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:103,1
    - Dst: Lib_IntVector_Intrinsics_vec256_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:104,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:105,1
    - Dst: Lib_IntVector_Intrinsics_vec256_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:106,1
    - Dst: Lib_IntVector_Intrinsics_vec256_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:107,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:108,1
    - Dst: Lib_IntVector_Intrinsics_vec256_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:109,1
    - Dst: Lib_IntVector_Intrinsics_vec256_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:110,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:111,1
    - Dst: Lib_IntVector_Intrinsics_vec256_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:112,1
    - Dst: Lib_IntVector_Intrinsics_vec256_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:113,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:114,1
    - Dst: Lib_IntVector_Intrinsics_vec256_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:115,1
    - Dst: Lib_IntVector_Intrinsics_vec256_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:116,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:117,1
    - Dst: Lib_IntVector_Intrinsics_vec256_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:118,1
    - Dst: Lib_IntVector_Intrinsics_vec256_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:119,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:120,1
    - Dst: Lib_IntVector_Intrinsics_vec256_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:121,1
    - Dst: Lib_IntVector_Intrinsics_vec256_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:122,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:123,1
    - Dst: Lib_IntVector_Intrinsics_vec256_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:124,1
    - Dst: Lib_IntVector_Intrinsics_vec256_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:125,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:126,1
    - Dst: Lib_IntVector_Intrinsics_vec256_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:127,1
    - Dst: Lib_IntVector_Intrinsics_vec256_rotate_left32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 65
    argCount: 1
    argNames:
    - st
    argTypes:
    - Lib_IntVector_Intrinsics_vec256*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 129
    functionName: double_round_256
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c
    functionUses: 0
    functionsReached:
    - Lib_IntVector_Intrinsics_vec256_xor
    - Lib_IntVector_Intrinsics_vec256_rotate_left32
    - Lib_IntVector_Intrinsics_vec256_add32
    linkageType: ''
    returnType: void
    signature: void double_round_256(Lib_IntVector_Intrinsics_vec256 *st)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:137,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:139,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:140,1
    - Dst: double_round_256
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:141,1
    - Dst: double_round_256
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:142,1
    - Dst: double_round_256
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:143,1
    - Dst: double_round_256
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:144,1
    - Dst: double_round_256
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:145,1
    - Dst: double_round_256
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:146,1
    - Dst: double_round_256
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:147,1
    - Dst: double_round_256
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:148,1
    - Dst: double_round_256
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:149,1
    - Dst: double_round_256
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:150,1
    - Dst: KRML_MAYBE_FOR16
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:151,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:156,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 3
    argNames:
    - k
    - ctx
    - ctr
    argTypes:
    - Lib_IntVector_Intrinsics_vec256*
    - Lib_IntVector_Intrinsics_vec256*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 159
    functionName: chacha20_core_256
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c
    functionUses: 0
    functionsReached:
    - memcpy
    - double_round_256
    - Lib_IntVector_Intrinsics_vec256_add32
    - Lib_IntVector_Intrinsics_vec256_load32
    - KRML_MAYBE_FOR16
    linkageType: ''
    returnType: void
    signature: "void chacha20_core_256(\n    Lib_IntVector_Intrinsics_vec256 *k,\n
      \   Lib_IntVector_Intrinsics_vec256 *ctx,\n    uint32_t ctr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_FOR4
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:165,1
    - Dst: KRML_MAYBE_FOR8
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:172,1
    - Dst: load32_le
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:178,1
    - Dst: KRML_MAYBE_FOR3
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:183,1
    - Dst: load32_le
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:189,1
    - Dst: KRML_MAYBE_FOR16
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:193,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:199,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load32s
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:203,1
    - Dst: Lib_IntVector_Intrinsics_vec256_add32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 4
    argNames:
    - ctx
    - k
    - n
    - ctr
    argTypes:
    - Lib_IntVector_Intrinsics_vec256*
    - uint8_t*
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 213
    functionName: chacha20_init_256
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c
    functionUses: 0
    functionsReached:
    - KRML_MAYBE_FOR4
    - Lib_IntVector_Intrinsics_vec256_add32
    - load32_le
    - KRML_MAYBE_FOR8
    - Lib_IntVector_Intrinsics_vec256_load32
    - KRML_MAYBE_FOR3
    - KRML_MAYBE_FOR16
    - Lib_IntVector_Intrinsics_vec256_load32s
    linkageType: ''
    returnType: void
    signature: void chacha20_init_256(Lib_IntVector_Intrinsics_vec256 *ctx, uint8_t
      *k, uint8_t *n, uint32_t ctr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: KRML_PRE_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:224,1
    - Dst: KRML_POST_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:225,1
    - Dst: chacha20_init_256
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:226,1
    - Dst: KRML_PRE_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:233,1
    - Dst: KRML_POST_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:234,1
    - Dst: chacha20_core_256
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:235,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:261,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:263,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:265,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:267,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:269,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:271,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:273,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:275,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:285,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:287,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:289,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:291,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:293,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:295,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:297,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:299,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:309,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:311,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:313,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:315,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:317,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:319,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:321,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:323,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:357,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:359,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:361,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:363,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:365,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:367,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:369,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:371,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:381,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:383,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:385,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:387,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:389,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:391,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:393,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:395,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:405,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:407,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:409,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:411,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:413,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:415,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:417,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:419,1
    - Dst: KRML_MAYBE_FOR16
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:460,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load32_le
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:465,1
    - Dst: Lib_IntVector_Intrinsics_vec256_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:466,1
    - Dst: Lib_IntVector_Intrinsics_vec256_store32_le
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:467,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:472,1
    - Dst: KRML_PRE_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:473,1
    - Dst: KRML_POST_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:474,1
    - Dst: chacha20_core_256
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:475,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:501,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:503,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:505,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:507,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:509,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:511,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:513,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:515,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:525,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:527,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:529,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:531,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:533,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:535,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:537,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:539,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:549,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:551,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:553,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:555,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:557,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:559,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:561,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:563,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:597,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:599,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:601,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:603,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:605,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:607,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:609,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:611,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:621,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:623,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:625,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:627,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:629,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:631,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:633,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:635,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:645,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:647,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:649,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:651,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:653,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:655,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:657,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:659,1
    - Dst: KRML_MAYBE_FOR16
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:700,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load32_le
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:705,1
    - Dst: Lib_IntVector_Intrinsics_vec256_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:706,1
    - Dst: Lib_IntVector_Intrinsics_vec256_store32_le
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:707,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:708,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 54
    argCount: 6
    argNames:
    - len
    - out
    - text
    - key
    - n
    - ctr
    argTypes:
    - uint32_t
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 215
    functionDepth: 3
    functionLinenumber: 215
    functionLinenumberEnd: 710
    functionName: Hacl_Chacha20_Vec256_chacha20_encrypt_256
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c
    functionUses: 3
    functionsReached:
    - KRML_PRE_ALIGN
    - Lib_IntVector_Intrinsics_vec256_store32_le
    - memcpy
    - Lib_IntVector_Intrinsics_vec256_interleave_low128
    - Lib_IntVector_Intrinsics_vec256_xor
    - Lib_IntVector_Intrinsics_vec256_interleave_high64
    - Lib_IntVector_Intrinsics_vec256_load32_le
    - Lib_IntVector_Intrinsics_vec256_interleave_low32
    - Lib_IntVector_Intrinsics_vec256_interleave_high128
    - KRML_MAYBE_FOR16
    - chacha20_core_256
    - Lib_IntVector_Intrinsics_vec256_interleave_low64
    - chacha20_init_256
    - KRML_POST_ALIGN
    - Lib_IntVector_Intrinsics_vec256_interleave_high32
    linkageType: ''
    returnType: void
    signature: "void Hacl_Chacha20_Vec256_chacha20_encrypt_256(\n    uint32_t len,\n
      \   uint8_t *out,\n    uint8_t *text,\n    uint8_t *key,\n    uint8_t *n,\n
      \   uint32_t ctr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: KRML_PRE_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:721,1
    - Dst: KRML_POST_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:722,1
    - Dst: chacha20_init_256
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:723,1
    - Dst: KRML_PRE_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:730,1
    - Dst: KRML_POST_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:731,1
    - Dst: chacha20_core_256
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:732,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:758,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:760,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:762,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:764,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:766,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:768,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:770,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:772,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:782,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:784,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:786,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:788,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:790,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:792,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:794,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:796,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:806,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:808,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:810,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:812,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:814,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:816,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:818,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:820,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:854,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:856,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:858,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:860,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:862,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:864,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:866,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:868,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:878,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:880,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:882,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:884,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:886,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:888,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:890,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:892,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:902,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:904,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:906,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:908,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:910,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:912,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:914,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:916,1
    - Dst: KRML_MAYBE_FOR16
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:957,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load32_le
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:962,1
    - Dst: Lib_IntVector_Intrinsics_vec256_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:963,1
    - Dst: Lib_IntVector_Intrinsics_vec256_store32_le
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:964,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:969,1
    - Dst: KRML_PRE_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:970,1
    - Dst: KRML_POST_ALIGN
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:971,1
    - Dst: chacha20_core_256
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:972,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:998,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:1000,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:1002,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:1004,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:1006,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:1008,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:1010,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:1012,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:1022,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:1024,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:1026,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:1028,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:1030,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:1032,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:1034,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:1036,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:1046,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:1048,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:1050,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:1052,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:1054,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:1056,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:1058,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:1060,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:1094,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:1096,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:1098,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:1100,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:1102,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:1104,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:1106,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:1108,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:1118,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:1120,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:1122,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:1124,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:1126,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:1128,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:1130,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high64
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:1132,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:1142,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:1144,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:1146,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:1148,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:1150,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:1152,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_low128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:1154,1
    - Dst: Lib_IntVector_Intrinsics_vec256_interleave_high128
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:1156,1
    - Dst: KRML_MAYBE_FOR16
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:1197,1
    - Dst: Lib_IntVector_Intrinsics_vec256_load32_le
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:1202,1
    - Dst: Lib_IntVector_Intrinsics_vec256_xor
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:1203,1
    - Dst: Lib_IntVector_Intrinsics_vec256_store32_le
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:1204,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c:1205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 54
    argCount: 6
    argNames:
    - len
    - out
    - cipher
    - key
    - n
    - ctr
    argTypes:
    - uint32_t
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1207
      start: 712
    functionDepth: 3
    functionLinenumber: 712
    functionLinenumberEnd: 1207
    functionName: Hacl_Chacha20_Vec256_chacha20_decrypt_256
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Chacha20_Vec256.c
    functionUses: 0
    functionsReached:
    - KRML_PRE_ALIGN
    - Lib_IntVector_Intrinsics_vec256_store32_le
    - memcpy
    - Lib_IntVector_Intrinsics_vec256_interleave_low128
    - Lib_IntVector_Intrinsics_vec256_xor
    - Lib_IntVector_Intrinsics_vec256_interleave_high64
    - Lib_IntVector_Intrinsics_vec256_load32_le
    - Lib_IntVector_Intrinsics_vec256_interleave_low32
    - Lib_IntVector_Intrinsics_vec256_interleave_high128
    - KRML_MAYBE_FOR16
    - chacha20_core_256
    - Lib_IntVector_Intrinsics_vec256_interleave_low64
    - chacha20_init_256
    - KRML_POST_ALIGN
    - Lib_IntVector_Intrinsics_vec256_interleave_high32
    linkageType: ''
    returnType: void
    signature: "void Hacl_Chacha20_Vec256_chacha20_decrypt_256(\n    uint32_t len,\n
      \   uint8_t *out,\n    uint8_t *cipher,\n    uint8_t *key,\n    uint8_t *n,\n
      \   uint32_t ctr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - cin
    - x
    - y
    - r
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 46
    functionName: Hacl_IntTypes_Intrinsics_add_carry_u32
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_IntTypes_Intrinsics.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Hacl_IntTypes_Intrinsics_add_carry_u32(uint32_t cin, uint32_t
      x, uint32_t y, uint32_t *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - cin
    - x
    - y
    - r
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 55
    functionName: Hacl_IntTypes_Intrinsics_sub_borrow_u32
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_IntTypes_Intrinsics.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Hacl_IntTypes_Intrinsics_sub_borrow_u32(uint32_t cin, uint32_t
      x, uint32_t y, uint32_t *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt64_gte_mask
      Src: /src/nss/lib/freebl/verified/Hacl_IntTypes_Intrinsics.h:62,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_IntTypes_Intrinsics.h:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - cin
    - x
    - y
    - r
    argTypes:
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 65
    functionName: Hacl_IntTypes_Intrinsics_add_carry_u64
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_IntTypes_Intrinsics.h
    functionUses: 0
    functionsReached:
    - FStar_UInt64_gte_mask
    - FStar_UInt64_eq_mask
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t Hacl_IntTypes_Intrinsics_add_carry_u64(uint64_t cin, uint64_t
      x, uint64_t y, uint64_t *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt64_gte_mask
      Src: /src/nss/lib/freebl/verified/Hacl_IntTypes_Intrinsics.h:73,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_IntTypes_Intrinsics.h:73,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_IntTypes_Intrinsics.h:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - cin
    - x
    - y
    - r
    argTypes:
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 76
    functionName: Hacl_IntTypes_Intrinsics_sub_borrow_u64
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_IntTypes_Intrinsics.h
    functionUses: 0
    functionsReached:
    - FStar_UInt64_gte_mask
    - FStar_UInt64_eq_mask
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t Hacl_IntTypes_Intrinsics_sub_borrow_u64(uint64_t cin, uint64_t
      x, uint64_t y, uint64_t *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_IntTypes_Intrinsics_128.h:44,1
    - Dst: FStar_UInt128_add_mod
      Src: /src/nss/lib/freebl/verified/Hacl_IntTypes_Intrinsics_128.h:44,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/nss/lib/freebl/verified/Hacl_IntTypes_Intrinsics_128.h:44,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/nss/lib/freebl/verified/Hacl_IntTypes_Intrinsics_128.h:45,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/nss/lib/freebl/verified/Hacl_IntTypes_Intrinsics_128.h:46,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/Hacl_IntTypes_Intrinsics_128.h:47,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/Hacl_IntTypes_Intrinsics_128.h:47,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/Hacl_IntTypes_Intrinsics_128.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - cin
    - x
    - y
    - r
    argTypes:
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 50
    functionName: Hacl_IntTypes_Intrinsics_128_add_carry_u64
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_IntTypes_Intrinsics_128.h
    functionUses: 0
    functionsReached:
    - FStar_UInt128_uint64_to_uint128
    - FStar_UInt128_uint128_to_uint64
    - FStar_UInt128_add_mod
    - FStar_UInt128_shift_right
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t Hacl_IntTypes_Intrinsics_128_add_carry_u64(uint64_t cin, uint64_t
      x, uint64_t y, uint64_t *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_sub_mod
      Src: /src/nss/lib/freebl/verified/Hacl_IntTypes_Intrinsics_128.h:57,1
    - Dst: FStar_UInt128_sub_mod
      Src: /src/nss/lib/freebl/verified/Hacl_IntTypes_Intrinsics_128.h:57,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/nss/lib/freebl/verified/Hacl_IntTypes_Intrinsics_128.h:57,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/nss/lib/freebl/verified/Hacl_IntTypes_Intrinsics_128.h:58,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/nss/lib/freebl/verified/Hacl_IntTypes_Intrinsics_128.h:59,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/Hacl_IntTypes_Intrinsics_128.h:62,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/Hacl_IntTypes_Intrinsics_128.h:62,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/Hacl_IntTypes_Intrinsics_128.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - cin
    - x
    - y
    - r
    argTypes:
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 65
    functionName: Hacl_IntTypes_Intrinsics_128_sub_borrow_u64
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_IntTypes_Intrinsics_128.h
    functionUses: 0
    functionsReached:
    - FStar_UInt128_uint64_to_uint128
    - FStar_UInt128_uint128_to_uint64
    - FStar_UInt128_sub_mod
    - FStar_UInt128_shift_right
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t Hacl_IntTypes_Intrinsics_128_sub_borrow_u64(uint64_t cin,
      uint64_t x, uint64_t y, uint64_t *r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_32.c:43,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_32.c:45,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_32.c:163,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_32.c:164,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_32.c:166,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_32.c:281,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_32.c:286,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_32.c:288,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 43
    argCount: 3
    argNames:
    - ctx
    - len
    - text
    argTypes:
    - uint64_t*
    - uint32_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 403
    functionName: poly1305_padded_32
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_32.c
    functionUses: 1
    functionsReached:
    - memcpy
    - load64_le
    linkageType: ''
    returnType: void
    signature: void poly1305_padded_32(uint64_t *ctx, uint32_t len, uint8_t *text)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Poly1305_32_poly1305_init
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_32.c:416,1
    - Dst: poly1305_padded_32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_32.c:418,1
    - Dst: poly1305_padded_32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_32.c:421,1
    - Dst: store64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_32.c:423,1
    - Dst: store64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_32.c:424,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_32.c:428,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_32.c:430,1
    - Dst: Hacl_Poly1305_32_poly1305_finish
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_32.c:543,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 6
    argNames:
    - k
    - aadlen
    - aad
    - mlen
    - m
    - out
    argTypes:
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 405
    functionDepth: 2
    functionLinenumber: 405
    functionLinenumberEnd: 544
    functionName: poly1305_do_32
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_32.c
    functionUses: 2
    functionsReached:
    - poly1305_padded_32
    - Hacl_Poly1305_32_poly1305_finish
    - Hacl_Poly1305_32_poly1305_init
    - store64_le
    - load64_le
    linkageType: ''
    returnType: void
    signature: "void poly1305_do_32(\n    uint8_t *k,\n    uint32_t aadlen,\n    uint8_t
      *aad,\n    uint32_t mlen,\n    uint8_t *m,\n    uint8_t *out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Chacha20_chacha20_encrypt
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_32.c:573,1
    - Dst: Hacl_Chacha20_chacha20_encrypt
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_32.c:575,1
    - Dst: poly1305_do_32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_32.c:577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 8
    argNames:
    - k
    - n
    - aadlen
    - aad
    - mlen
    - m
    - cipher
    - mac
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 562
    functionDepth: 8
    functionLinenumber: 562
    functionLinenumberEnd: 578
    functionName: Hacl_Chacha20Poly1305_32_aead_encrypt
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_32.c
    functionUses: 2
    functionsReached:
    - Hacl_Chacha20_chacha20_encrypt
    - poly1305_do_32
    linkageType: ''
    returnType: void
    signature: "void Hacl_Chacha20Poly1305_32_aead_encrypt(\n    uint8_t *k,\n    uint8_t
      *n,\n    uint32_t aadlen,\n    uint8_t *aad,\n    uint32_t mlen,\n    uint8_t
      *m,\n    uint8_t *cipher,\n    uint8_t *mac)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Chacha20_chacha20_encrypt
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_32.c:614,1
    - Dst: poly1305_do_32
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_32.c:616,1
    - Dst: KRML_MAYBE_FOR16
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_32.c:618,1
    - Dst: FStar_UInt8_eq_mask
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_32.c:622,1
    - Dst: Hacl_Chacha20_chacha20_encrypt
      Src: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_32.c:626,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 8
    argNames:
    - k
    - n
    - aadlen
    - aad
    - mlen
    - m
    - cipher
    - mac
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint32_t
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 601
    functionDepth: 8
    functionLinenumber: 601
    functionLinenumberEnd: 630
    functionName: Hacl_Chacha20Poly1305_32_aead_decrypt
    functionSourceFile: /src/nss/lib/freebl/verified/Hacl_Chacha20Poly1305_32.c
    functionUses: 2
    functionsReached:
    - Hacl_Chacha20_chacha20_encrypt
    - poly1305_do_32
    - FStar_UInt8_eq_mask
    - KRML_MAYBE_FOR16
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t Hacl_Chacha20Poly1305_32_aead_decrypt(\n    uint8_t *k,\n
      \   uint8_t *n,\n    uint32_t aadlen,\n    uint8_t *aad,\n    uint32_t mlen,\n
      \   uint8_t *m,\n    uint8_t *cipher,\n    uint8_t *mac)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_generic_keccak_KeccakState_48::libcrux_sha3_generic_keccak_new_1e_cf
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 34
    functionName: libcrux_sha3_generic_keccak_KeccakState_48::libcrux_sha3_portable_incremental_shake128_init
    functionSourceFile: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_generic_keccak_KeccakState_48::libcrux_sha3_generic_keccak_new_1e_cf
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: 'KRML_MUSTINLINE libcrux_sha3_generic_keccak_KeccakState_48

      libcrux_sha3_portable_incremental_shake128_init(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_generic_keccak_absorb_final_40
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - data0
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakState_48*
    - Eurydice_slice
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 39
    functionDepth: 6
    functionLinenumber: 39
    functionLinenumberEnd: 45
    functionName: libcrux_sha3_portable_incremental_shake128_absorb_final
    functionSourceFile: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_generic_keccak_absorb_final_40
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_incremental_shake128_absorb_final(\n
      \   libcrux_sha3_generic_keccak_KeccakState_48 *s, Eurydice_slice data0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_generic_keccak_squeeze_next_block_c2
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - out0
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakState_48*
    - Eurydice_slice
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 50
    functionDepth: 6
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: libcrux_sha3_portable_incremental_shake128_squeeze_next_block
    functionSourceFile: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_generic_keccak_squeeze_next_block_c2
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_incremental_shake128_squeeze_next_block(\n
      \   libcrux_sha3_generic_keccak_KeccakState_48 *s, Eurydice_slice out0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak_split_at_mut_n_5a
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:70,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:72,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:74,1
    - Dst: libcrux_sha3_generic_keccak_squeeze_first_block_7b
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:75,1
    - Dst: libcrux_sha3_portable_keccak_split_at_mut_n_5a
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:77,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:79,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:81,1
    - Dst: libcrux_sha3_generic_keccak_squeeze_next_block_c2
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:82,1
    - Dst: libcrux_sha3_generic_keccak_squeeze_next_block_c2
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - s
    - out
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakState_48*
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 65
    functionDepth: 6
    functionLinenumber: 65
    functionLinenumberEnd: 84
    functionName: libcrux_sha3_generic_keccak_squeeze_first_three_blocks_5c
    functionSourceFile: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_generic_keccak_squeeze_first_block_7b
    - memcpy
    - libcrux_sha3_portable_keccak_split_at_mut_n_5a
    - libcrux_sha3_generic_keccak_squeeze_next_block_c2
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_generic_keccak_squeeze_first_three_blocks_5c(\n
      \   libcrux_sha3_generic_keccak_KeccakState_48 *s, Eurydice_slice out[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_generic_keccak_squeeze_first_three_blocks_5c
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - out0
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakState_48*
    - Eurydice_slice
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 89
    functionDepth: 7
    functionLinenumber: 89
    functionLinenumberEnd: 95
    functionName: libcrux_sha3_portable_incremental_shake128_squeeze_first_three_blocks
    functionSourceFile: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_generic_keccak_squeeze_first_three_blocks_5c
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_incremental_shake128_squeeze_first_three_blocks(\n
      \   libcrux_sha3_generic_keccak_KeccakState_48 *s, Eurydice_slice out0)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: KRML_HOST_EPRINTF
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:129,1
    - Dst: KRML_HOST_EXIT
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:131,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - mode
    argTypes:
    - libcrux_sha3_Algorithm
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 135
    functionName: libcrux_sha3_digest_size
    functionSourceFile: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - KRML_HOST_EPRINTF
    - KRML_HOST_EXIT
    linkageType: ''
    returnType: size_t
    signature: size_t libcrux_sha3_digest_size(libcrux_sha3_Algorithm mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_portable_keccak_split_at_mut_n_5a
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:165,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:167,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:169,1
    - Dst: libcrux_sha3_generic_keccak_squeeze_first_block_7b
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:170,1
    - Dst: libcrux_sha3_portable_keccak_split_at_mut_n_5a
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:172,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:174,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:176,1
    - Dst: libcrux_sha3_generic_keccak_squeeze_next_block_c2
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:177,1
    - Dst: libcrux_sha3_portable_keccak_split_at_mut_n_5a
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:179,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:181,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:183,1
    - Dst: libcrux_sha3_generic_keccak_squeeze_next_block_c2
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:184,1
    - Dst: libcrux_sha3_portable_keccak_split_at_mut_n_5a
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:186,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:188,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:190,1
    - Dst: libcrux_sha3_generic_keccak_squeeze_next_block_c2
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:191,1
    - Dst: libcrux_sha3_generic_keccak_squeeze_next_block_c2
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - s
    - out
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakState_48*
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 160
    functionDepth: 6
    functionLinenumber: 160
    functionLinenumberEnd: 193
    functionName: libcrux_sha3_generic_keccak_squeeze_first_five_blocks_3e
    functionSourceFile: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_generic_keccak_squeeze_first_block_7b
    - memcpy
    - libcrux_sha3_portable_keccak_split_at_mut_n_5a
    - libcrux_sha3_generic_keccak_squeeze_next_block_c2
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_generic_keccak_squeeze_first_five_blocks_3e(\n
      \   libcrux_sha3_generic_keccak_KeccakState_48 *s, Eurydice_slice out[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_generic_keccak_squeeze_first_five_blocks_3e
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - out0
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakState_48*
    - Eurydice_slice
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 198
    functionDepth: 7
    functionLinenumber: 198
    functionLinenumberEnd: 204
    functionName: libcrux_sha3_portable_incremental_shake128_squeeze_first_five_blocks
    functionSourceFile: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_generic_keccak_squeeze_first_five_blocks_3e
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_incremental_shake128_squeeze_first_five_blocks(\n
      \   libcrux_sha3_generic_keccak_KeccakState_48 *s, Eurydice_slice out0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_generic_keccak_absorb_final_400
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - data
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakState_48*
    - Eurydice_slice
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 209
    functionDepth: 6
    functionLinenumber: 209
    functionLinenumberEnd: 215
    functionName: libcrux_sha3_portable_incremental_shake256_absorb_final
    functionSourceFile: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_generic_keccak_absorb_final_400
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_incremental_shake256_absorb_final(\n
      \   libcrux_sha3_generic_keccak_KeccakState_48 *s, Eurydice_slice data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_generic_keccak_KeccakState_48::libcrux_sha3_generic_keccak_new_1e_cf
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 224
    functionName: libcrux_sha3_generic_keccak_KeccakState_48::libcrux_sha3_portable_incremental_shake256_init
    functionSourceFile: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_generic_keccak_KeccakState_48::libcrux_sha3_generic_keccak_new_1e_cf
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: 'KRML_MUSTINLINE libcrux_sha3_generic_keccak_KeccakState_48

      libcrux_sha3_portable_incremental_shake256_init(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_generic_keccak_squeeze_first_block_7b0
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - out
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakState_48*
    - Eurydice_slice
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 229
    functionDepth: 5
    functionLinenumber: 229
    functionLinenumberEnd: 235
    functionName: libcrux_sha3_portable_incremental_shake256_squeeze_first_block
    functionSourceFile: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_generic_keccak_squeeze_first_block_7b0
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_incremental_shake256_squeeze_first_block(\n
      \   libcrux_sha3_generic_keccak_KeccakState_48 *s, Eurydice_slice out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_generic_keccak_squeeze_next_block_c20
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - out
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakState_48*
    - Eurydice_slice
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 240
    functionDepth: 6
    functionLinenumber: 240
    functionLinenumberEnd: 246
    functionName: libcrux_sha3_portable_incremental_shake256_squeeze_next_block
    functionSourceFile: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_generic_keccak_squeeze_next_block_c20
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_incremental_shake256_squeeze_next_block(\n
      \   libcrux_sha3_generic_keccak_KeccakState_48 *s, Eurydice_slice out)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Eurydice_slice_len
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:290,1
    - Dst: Eurydice_array_to_subslice_from
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:297,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - inputs
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakXofState_4f*
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 308
    functionName: libcrux_sha3_generic_keccak_fill_buffer_9d_15
    functionSourceFile: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - Eurydice_array_to_subslice_from
    - Eurydice_slice_len
    linkageType: ''
    returnType: size_t
    signature: "size_t libcrux_sha3_generic_keccak_fill_buffer_9d_15(\n    libcrux_sha3_generic_keccak_KeccakXofState_4f
      *self,\n    Eurydice_slice inputs[1U])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:329,1
    - Dst: libcrux_sha3_generic_keccak_fill_buffer_9d_15
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:331,1
    - Dst: core_array___Array_T__N__23__as_slice
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:336,1
    - Dst: Eurydice_array_to_slice
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:342,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:346,1
    - Dst: libcrux_sha3_portable_keccak_load_block_5a_35
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:347,1
    - Dst: libcrux_sha3_generic_keccak_keccakf1600_b8
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:348,1
    - Dst: Eurydice_slice_len
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:352,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:360,1
    - Dst: libcrux_sha3_portable_keccak_slice_n_5a
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:362,1
    - Dst: libcrux_sha3_portable_keccak_load_block_5a_35
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:364,1
    - Dst: libcrux_sha3_generic_keccak_keccakf1600_b8
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:365,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 2
    argNames:
    - self
    - inputs
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakXofState_4f*
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 321
    functionDepth: 5
    functionLinenumber: 321
    functionLinenumberEnd: 368
    functionName: libcrux_sha3_generic_keccak_absorb_full_9d_7a
    functionSourceFile: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - memcpy
    - Eurydice_array_to_slice
    - libcrux_sha3_portable_keccak_slice_n_5a
    - libcrux_sha3_portable_keccak_load_block_5a_35
    - core_array___Array_T__N__23__as_slice
    - libcrux_sha3_generic_keccak_fill_buffer_9d_15
    - Eurydice_slice_len
    - libcrux_sha3_generic_keccak_keccakf1600_b8
    linkageType: ''
    returnType: size_t
    signature: "size_t libcrux_sha3_generic_keccak_absorb_full_9d_7a(\n    libcrux_sha3_generic_keccak_KeccakXofState_4f
      *self,\n    Eurydice_slice inputs[1U])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:401,1
    - Dst: libcrux_sha3_generic_keccak_absorb_full_9d_7a
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:403,1
    - Dst: Eurydice_slice_len
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:405,1
    - Dst: Eurydice_array_to_subslice2
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:408,1
    - Dst: Eurydice_slice_copy
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:411,1
    - Dst: Eurydice_slice_subslice_from
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:413,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - inputs
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakXofState_4f*
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 393
    functionDepth: 6
    functionLinenumber: 393
    functionLinenumberEnd: 419
    functionName: libcrux_sha3_generic_keccak_absorb_9d_45
    functionSourceFile: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - memcpy
    - Eurydice_array_to_subslice2
    - Eurydice_slice_subslice_from
    - Eurydice_slice_copy
    - Eurydice_slice_len
    - libcrux_sha3_generic_keccak_absorb_full_9d_7a
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_generic_keccak_absorb_9d_45(\n    libcrux_sha3_generic_keccak_KeccakXofState_4f
      *self,\n    Eurydice_slice inputs[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_generic_keccak_absorb_9d_45
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - input
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakXofState_4f*
    - Eurydice_slice
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 429
    functionDepth: 7
    functionLinenumber: 429
    functionLinenumberEnd: 435
    functionName: libcrux_sha3_portable_incremental_absorb_7d
    functionSourceFile: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_generic_keccak_absorb_9d_45
    linkageType: ''
    returnType: void
    signature: "void libcrux_sha3_portable_incremental_absorb_7d(\n    libcrux_sha3_generic_keccak_KeccakXofState_4f
      *self, Eurydice_slice input)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:466,1
    - Dst: libcrux_sha3_generic_keccak_absorb_full_9d_7a
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:468,1
    - Dst: Eurydice_slice_len
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:469,1
    - Dst: Eurydice_array_to_subslice2
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:474,1
    - Dst: Eurydice_slice_copy
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:476,1
    - Dst: Eurydice_array_to_subslice2
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:477,1
    - Dst: Eurydice_array_to_subslice2
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:482,1
    - Dst: Eurydice_slice_copy
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:485,1
    - Dst: Eurydice_slice_subslice_from
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:487,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:498,1
    - Dst: libcrux_sha3_portable_keccak_load_block_full_5a_050
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:499,1
    - Dst: libcrux_sha3_generic_keccak_keccakf1600_b8
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:500,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - self
    - inputs
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakXofState_4f*
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 458
    functionDepth: 6
    functionLinenumber: 458
    functionLinenumberEnd: 501
    functionName: libcrux_sha3_generic_keccak_absorb_final_9d_b6
    functionSourceFile: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_portable_keccak_load_block_full_5a_050
    - memcpy
    - Eurydice_array_to_subslice2
    - Eurydice_slice_subslice_from
    - Eurydice_slice_copy
    - Eurydice_slice_len
    - libcrux_sha3_generic_keccak_absorb_full_9d_7a
    - libcrux_sha3_generic_keccak_keccakf1600_b8
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_generic_keccak_absorb_final_9d_b6(\n
      \   libcrux_sha3_generic_keccak_KeccakXofState_4f *self,\n    Eurydice_slice
      inputs[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_generic_keccak_absorb_final_9d_b6
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - input
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakXofState_4f
    - Eurydice_slice
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 511
    functionDepth: 7
    functionLinenumber: 511
    functionLinenumberEnd: 518
    functionName: libcrux_sha3_portable_incremental_absorb_final_7d
    functionSourceFile: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_generic_keccak_absorb_final_9d_b6
    linkageType: ''
    returnType: libcrux_sha3_generic_keccak_KeccakXofState_4f
    signature: "libcrux_sha3_generic_keccak_KeccakXofState_4f libcrux_sha3_portable_incremental_absorb_final_7d(\n
      \   libcrux_sha3_generic_keccak_KeccakXofState_4f self, Eurydice_slice input)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 137
    argCount: 1
    argNames:
    - ret
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 674
    functionName: libcrux_sha3_generic_keccak_zero_block_9d_5e
    functionSourceFile: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void libcrux_sha3_generic_keccak_zero_block_9d_5e(\n    uint8_t ret[136U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_generic_keccak_new_1e_cf
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:694,1
    - Dst: libcrux_sha3_generic_keccak_zero_block_9d_5e
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:696,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 690
    functionDepth: 1
    functionLinenumber: 690
    functionLinenumberEnd: 701
    functionName: libcrux_sha3_generic_keccak_new_9d_47
    functionSourceFile: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - memcpy
    - libcrux_sha3_generic_keccak_zero_block_9d_5e
    - libcrux_sha3_generic_keccak_new_1e_cf
    linkageType: ''
    returnType: libcrux_sha3_generic_keccak_KeccakXofState_4f
    signature: libcrux_sha3_generic_keccak_KeccakXofState_4f libcrux_sha3_generic_keccak_new_9d_47(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_generic_keccak_new_9d_47
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 711
    functionDepth: 2
    functionLinenumber: 711
    functionLinenumberEnd: 715
    functionName: libcrux_sha3_portable_incremental_new_7d
    functionSourceFile: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_generic_keccak_new_9d_47
    linkageType: ''
    returnType: libcrux_sha3_generic_keccak_KeccakXofState_4f
    signature: libcrux_sha3_generic_keccak_KeccakXofState_4f libcrux_sha3_portable_incremental_new_7d(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Eurydice_slice_len
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:759,1
    - Dst: Eurydice_array_to_subslice_from
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:766,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - self
    - inputs
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakXofState_78*
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 754
    functionDepth: 1
    functionLinenumber: 754
    functionLinenumberEnd: 777
    functionName: libcrux_sha3_generic_keccak_fill_buffer_9d_150
    functionSourceFile: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - Eurydice_array_to_subslice_from
    - Eurydice_slice_len
    linkageType: ''
    returnType: size_t
    signature: "size_t libcrux_sha3_generic_keccak_fill_buffer_9d_150(\n    libcrux_sha3_generic_keccak_KeccakXofState_78
      *self,\n    Eurydice_slice inputs[1U])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:798,1
    - Dst: libcrux_sha3_generic_keccak_fill_buffer_9d_150
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:800,1
    - Dst: core_array___Array_T__N__23__as_slice
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:805,1
    - Dst: Eurydice_array_to_slice
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:811,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:815,1
    - Dst: libcrux_sha3_portable_keccak_load_block_5a_350
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:816,1
    - Dst: libcrux_sha3_generic_keccak_keccakf1600_b8
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:817,1
    - Dst: Eurydice_slice_len
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:821,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:829,1
    - Dst: libcrux_sha3_portable_keccak_slice_n_5a
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:831,1
    - Dst: libcrux_sha3_portable_keccak_load_block_5a_350
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:833,1
    - Dst: libcrux_sha3_generic_keccak_keccakf1600_b8
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:834,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 2
    argNames:
    - self
    - inputs
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakXofState_78*
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 790
    functionDepth: 5
    functionLinenumber: 790
    functionLinenumberEnd: 837
    functionName: libcrux_sha3_generic_keccak_absorb_full_9d_7a0
    functionSourceFile: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - memcpy
    - Eurydice_array_to_slice
    - libcrux_sha3_portable_keccak_slice_n_5a
    - core_array___Array_T__N__23__as_slice
    - libcrux_sha3_generic_keccak_keccakf1600_b8
    - Eurydice_slice_len
    - libcrux_sha3_generic_keccak_fill_buffer_9d_150
    - libcrux_sha3_portable_keccak_load_block_5a_350
    linkageType: ''
    returnType: size_t
    signature: "size_t libcrux_sha3_generic_keccak_absorb_full_9d_7a0(\n    libcrux_sha3_generic_keccak_KeccakXofState_78
      *self,\n    Eurydice_slice inputs[1U])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:870,1
    - Dst: libcrux_sha3_generic_keccak_absorb_full_9d_7a0
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:872,1
    - Dst: Eurydice_slice_len
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:874,1
    - Dst: Eurydice_array_to_subslice2
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:877,1
    - Dst: Eurydice_slice_copy
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:880,1
    - Dst: Eurydice_slice_subslice_from
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:882,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - self
    - inputs
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakXofState_78*
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 862
    functionDepth: 6
    functionLinenumber: 862
    functionLinenumberEnd: 888
    functionName: libcrux_sha3_generic_keccak_absorb_9d_450
    functionSourceFile: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - Eurydice_array_to_subslice2
    - memcpy
    - Eurydice_slice_subslice_from
    - Eurydice_slice_copy
    - Eurydice_slice_len
    - libcrux_sha3_generic_keccak_absorb_full_9d_7a0
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_generic_keccak_absorb_9d_450(\n    libcrux_sha3_generic_keccak_KeccakXofState_78
      *self,\n    Eurydice_slice inputs[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_generic_keccak_absorb_9d_450
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:900,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - input
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakXofState_78*
    - Eurydice_slice
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 895
    functionDepth: 7
    functionLinenumber: 895
    functionLinenumberEnd: 901
    functionName: libcrux_sha3_portable_incremental_absorb_1c
    functionSourceFile: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_generic_keccak_absorb_9d_450
    linkageType: ''
    returnType: void
    signature: "void libcrux_sha3_portable_incremental_absorb_1c(\n    libcrux_sha3_generic_keccak_KeccakXofState_78
      *self, Eurydice_slice input)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:932,1
    - Dst: libcrux_sha3_generic_keccak_absorb_full_9d_7a0
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:934,1
    - Dst: Eurydice_slice_len
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:935,1
    - Dst: Eurydice_array_to_subslice2
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:940,1
    - Dst: Eurydice_slice_copy
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:942,1
    - Dst: Eurydice_array_to_subslice2
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:943,1
    - Dst: Eurydice_array_to_subslice2
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:948,1
    - Dst: Eurydice_slice_copy
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:951,1
    - Dst: Eurydice_slice_subslice_from
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:953,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:964,1
    - Dst: libcrux_sha3_portable_keccak_load_block_full_5a_05
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:965,1
    - Dst: libcrux_sha3_generic_keccak_keccakf1600_b8
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:966,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - self
    - inputs
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakXofState_78*
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 924
    functionDepth: 6
    functionLinenumber: 924
    functionLinenumberEnd: 967
    functionName: libcrux_sha3_generic_keccak_absorb_final_9d_b60
    functionSourceFile: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - Eurydice_array_to_subslice2
    - memcpy
    - Eurydice_slice_subslice_from
    - libcrux_sha3_generic_keccak_keccakf1600_b8
    - Eurydice_slice_copy
    - Eurydice_slice_len
    - libcrux_sha3_portable_keccak_load_block_full_5a_05
    - libcrux_sha3_generic_keccak_absorb_full_9d_7a0
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_generic_keccak_absorb_final_9d_b60(\n
      \   libcrux_sha3_generic_keccak_KeccakXofState_78 *self,\n    Eurydice_slice
      inputs[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_generic_keccak_absorb_final_9d_b60
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:979,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - self
    - input
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakXofState_78
    - Eurydice_slice
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 981
      start: 974
    functionDepth: 7
    functionLinenumber: 974
    functionLinenumberEnd: 981
    functionName: libcrux_sha3_portable_incremental_absorb_final_1c
    functionSourceFile: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_generic_keccak_absorb_final_9d_b60
    linkageType: ''
    returnType: libcrux_sha3_generic_keccak_KeccakXofState_78
    signature: "libcrux_sha3_generic_keccak_KeccakXofState_78 libcrux_sha3_portable_incremental_absorb_final_1c(\n
      \   libcrux_sha3_generic_keccak_KeccakXofState_78 self, Eurydice_slice input)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 169
    argCount: 1
    argNames:
    - ret
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 997
    functionDepth: 0
    functionLinenumber: 997
    functionLinenumberEnd: 1169
    functionName: libcrux_sha3_generic_keccak_zero_block_9d_5e0
    functionSourceFile: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void libcrux_sha3_generic_keccak_zero_block_9d_5e0(\n    uint8_t ret[168U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_generic_keccak_new_1e_cf
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1189,1
    - Dst: libcrux_sha3_generic_keccak_zero_block_9d_5e0
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1191,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1196
      start: 1185
    functionDepth: 1
    functionLinenumber: 1185
    functionLinenumberEnd: 1196
    functionName: libcrux_sha3_generic_keccak_new_9d_470
    functionSourceFile: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_generic_keccak_zero_block_9d_5e0
    - memcpy
    - libcrux_sha3_generic_keccak_new_1e_cf
    linkageType: ''
    returnType: libcrux_sha3_generic_keccak_KeccakXofState_78
    signature: libcrux_sha3_generic_keccak_KeccakXofState_78 libcrux_sha3_generic_keccak_new_9d_470(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_generic_keccak_new_9d_470
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1207
      start: 1203
    functionDepth: 2
    functionLinenumber: 1203
    functionLinenumberEnd: 1207
    functionName: libcrux_sha3_portable_incremental_new_1c
    functionSourceFile: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_generic_keccak_new_9d_470
    linkageType: ''
    returnType: libcrux_sha3_generic_keccak_KeccakXofState_78
    signature: libcrux_sha3_generic_keccak_KeccakXofState_78 libcrux_sha3_portable_incremental_new_1c(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Eurydice_slice_len
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1225,1
    - Dst: Eurydice_slice_len
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1226,1
    - Dst: Eurydice_slice_subslice2
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1229,1
    - Dst: core_num__u64_9__to_le_bytes
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1232,1
    - Dst: Eurydice_slice_copy
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1233,1
    - Dst: Eurydice_array_to_slice
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1234,1
    - Dst: Eurydice_slice_subslice2
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1237,1
    - Dst: core_num__u64_9__to_le_bytes
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1241,1
    - Dst: Eurydice_slice_copy
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1243,1
    - Dst: Eurydice_array_to_subslice2
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1245,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - (*state)
    - out
    argTypes:
    - uint64_t[]
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1248
      start: 1221
    functionDepth: 2
    functionLinenumber: 1221
    functionLinenumberEnd: 1248
    functionName: libcrux_sha3_portable_keccak_store_5a_81
    functionSourceFile: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - Eurydice_array_to_subslice2
    - Eurydice_array_to_slice
    - core_num__u64_9__to_le_bytes
    - Eurydice_slice_copy
    - Eurydice_slice_len
    - Eurydice_slice_subslice2
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_keccak_store_5a_81(\n    uint64_t
      (*state)[5U], Eurydice_slice out[1U])"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_generic_keccak_keccakf1600_b8
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1270,1
    - Dst: Eurydice_slice_len
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1272,1
    - Dst: libcrux_sha3_portable_keccak_split_at_mut_n_5a
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1282,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1284,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1286,1
    - Dst: libcrux_sha3_portable_keccak_store_5a_81
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1287,1
    - Dst: core_iter_traits_collect___core__iter__traits__collect__IntoIterator_for_I__1__into_iter
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1289,1
    - Dst: CLITERAL
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1290,1
    - Dst: core_iter_range___core__iter__traits__iterator__Iterator_for_core__ops__range__Range_A___6__next
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1294,1
    - Dst: libcrux_sha3_portable_keccak_split_at_mut_n_5a
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1300,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1303,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1305,1
    - Dst: libcrux_sha3_generic_keccak_keccakf1600_b8
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1306,1
    - Dst: libcrux_sha3_portable_keccak_store_5a_81
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1307,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1308,1
    - Dst: libcrux_sha3_generic_keccak_keccakf1600_b8
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1312,1
    - Dst: libcrux_sha3_portable_keccak_store_5a_81
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1313,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - self
    - out
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakXofState_4f*
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1316
      start: 1264
    functionDepth: 5
    functionLinenumber: 1264
    functionLinenumberEnd: 1316
    functionName: libcrux_sha3_generic_keccak_squeeze_9d_ba
    functionSourceFile: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - core_iter_range___core__iter__traits__iterator__Iterator_for_core__ops__range__Range_A___6__next
    - memcpy
    - core_iter_traits_collect___core__iter__traits__collect__IntoIterator_for_I__1__into_iter
    - libcrux_sha3_portable_keccak_store_5a_81
    - libcrux_sha3_generic_keccak_keccakf1600_b8
    - CLITERAL
    - Eurydice_slice_len
    - libcrux_sha3_portable_keccak_split_at_mut_n_5a
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_generic_keccak_squeeze_9d_ba(\n    libcrux_sha3_generic_keccak_KeccakXofState_4f
      *self,\n    Eurydice_slice out[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_generic_keccak_squeeze_9d_ba
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - out
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakXofState_4f*
    - Eurydice_slice
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1332
      start: 1326
    functionDepth: 6
    functionLinenumber: 1326
    functionLinenumberEnd: 1332
    functionName: libcrux_sha3_portable_incremental_squeeze_8a
    functionSourceFile: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_generic_keccak_squeeze_9d_ba
    linkageType: ''
    returnType: void
    signature: "void libcrux_sha3_portable_incremental_squeeze_8a(\n    libcrux_sha3_generic_keccak_KeccakXofState_4f
      *self, Eurydice_slice out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Eurydice_slice_len
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1350,1
    - Dst: Eurydice_slice_len
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1351,1
    - Dst: Eurydice_slice_subslice2
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1354,1
    - Dst: core_num__u64_9__to_le_bytes
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1357,1
    - Dst: Eurydice_slice_copy
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1358,1
    - Dst: Eurydice_array_to_slice
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1359,1
    - Dst: Eurydice_slice_subslice2
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1362,1
    - Dst: core_num__u64_9__to_le_bytes
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1366,1
    - Dst: Eurydice_slice_copy
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1368,1
    - Dst: Eurydice_array_to_subslice2
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1370,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - (*state)
    - out
    argTypes:
    - uint64_t[]
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1373
      start: 1346
    functionDepth: 2
    functionLinenumber: 1346
    functionLinenumberEnd: 1373
    functionName: libcrux_sha3_portable_keccak_store_5a_810
    functionSourceFile: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - Eurydice_array_to_subslice2
    - Eurydice_array_to_slice
    - core_num__u64_9__to_le_bytes
    - Eurydice_slice_copy
    - Eurydice_slice_len
    - Eurydice_slice_subslice2
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_portable_keccak_store_5a_810(\n    uint64_t
      (*state)[5U], Eurydice_slice out[1U])"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_generic_keccak_keccakf1600_b8
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1395,1
    - Dst: Eurydice_slice_len
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1397,1
    - Dst: libcrux_sha3_portable_keccak_split_at_mut_n_5a
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1407,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1409,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1411,1
    - Dst: libcrux_sha3_portable_keccak_store_5a_810
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1412,1
    - Dst: core_iter_traits_collect___core__iter__traits__collect__IntoIterator_for_I__1__into_iter
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1414,1
    - Dst: CLITERAL
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1415,1
    - Dst: core_iter_range___core__iter__traits__iterator__Iterator_for_core__ops__range__Range_A___6__next
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1419,1
    - Dst: libcrux_sha3_portable_keccak_split_at_mut_n_5a
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1425,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1428,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1430,1
    - Dst: libcrux_sha3_generic_keccak_keccakf1600_b8
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1431,1
    - Dst: libcrux_sha3_portable_keccak_store_5a_810
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1432,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1433,1
    - Dst: libcrux_sha3_generic_keccak_keccakf1600_b8
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1437,1
    - Dst: libcrux_sha3_portable_keccak_store_5a_810
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1438,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - self
    - out
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakXofState_78*
    - Eurydice_slice[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1441
      start: 1389
    functionDepth: 5
    functionLinenumber: 1389
    functionLinenumberEnd: 1441
    functionName: libcrux_sha3_generic_keccak_squeeze_9d_ba0
    functionSourceFile: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - core_iter_range___core__iter__traits__iterator__Iterator_for_core__ops__range__Range_A___6__next
    - memcpy
    - core_iter_traits_collect___core__iter__traits__collect__IntoIterator_for_I__1__into_iter
    - libcrux_sha3_portable_keccak_store_5a_810
    - libcrux_sha3_generic_keccak_keccakf1600_b8
    - CLITERAL
    - Eurydice_slice_len
    - libcrux_sha3_portable_keccak_split_at_mut_n_5a
    linkageType: ''
    returnType: KRML_MUSTINLINE
    signature: "KRML_MUSTINLINE libcrux_sha3_generic_keccak_squeeze_9d_ba0(\n    libcrux_sha3_generic_keccak_KeccakXofState_78
      *self,\n    Eurydice_slice out[1U])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libcrux_sha3_generic_keccak_squeeze_9d_ba0
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - self
    - out
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakXofState_78*
    - Eurydice_slice
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1457
      start: 1451
    functionDepth: 6
    functionLinenumber: 1451
    functionLinenumberEnd: 1457
    functionName: libcrux_sha3_portable_incremental_squeeze_10
    functionSourceFile: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - libcrux_sha3_generic_keccak_squeeze_9d_ba0
    linkageType: ''
    returnType: void
    signature: "void libcrux_sha3_portable_incremental_squeeze_10(\n    libcrux_sha3_generic_keccak_KeccakXofState_78
      *self, Eurydice_slice out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - self
    argTypes:
    - libcrux_sha3_generic_keccak_KeccakState_48*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1468
      start: 1463
    functionDepth: 0
    functionLinenumber: 1463
    functionLinenumberEnd: 1468
    functionName: libcrux_sha3_portable_clone_3d
    functionSourceFile: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: libcrux_sha3_generic_keccak_KeccakState_48
    signature: "libcrux_sha3_generic_keccak_KeccakState_48 libcrux_sha3_portable_clone_3d(\n
      \   libcrux_sha3_generic_keccak_KeccakState_48 *self)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: KRML_HOST_EPRINTF
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1496,1
    - Dst: KRML_HOST_EXIT
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1498,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - v
    argTypes:
    - libcrux_sha3_Algorithm
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1502
      start: 1474
    functionDepth: 1
    functionLinenumber: 1474
    functionLinenumberEnd: 1502
    functionName: libcrux_sha3_from_eb
    functionSourceFile: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - KRML_HOST_EPRINTF
    - KRML_HOST_EXIT
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t libcrux_sha3_from_eb(libcrux_sha3_Algorithm v)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: KRML_HOST_EPRINTF
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1530,1
    - Dst: KRML_HOST_EXIT
      Src: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h:1532,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - v
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1536
      start: 1508
    functionDepth: 1
    functionLinenumber: 1508
    functionLinenumberEnd: 1536
    functionName: libcrux_sha3_from_2d
    functionSourceFile: /src/nss/lib/freebl/verified/internal/libcrux_sha3_internal.h
    functionUses: 0
    functionsReached:
    - KRML_HOST_EPRINTF
    - KRML_HOST_EXIT
    linkageType: ''
    returnType: libcrux_sha3_Algorithm
    signature: libcrux_sha3_Algorithm libcrux_sha3_from_2d(uint32_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - a
    - b
    - c_in
    - out
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 49
    functionName: Hacl_Bignum_Base_mul_wide_add2_u32
    functionSourceFile: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Hacl_Bignum_Base_mul_wide_add2_u32(uint32_t a, uint32_t b,
      uint32_t c_in, uint32_t *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:57,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:57,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:57,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:58,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:59,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:60,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:61,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - a
    - b
    - c_in
    - out
    argTypes:
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 62
    functionName: Hacl_Bignum_Base_mul_wide_add2_u64
    functionSourceFile: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h
    functionUses: 12
    functionsReached:
    - FStar_UInt128_uint128_to_uint64
    - FStar_UInt128_uint64_to_uint128
    - FStar_UInt128_shift_right
    - FStar_UInt128_mul_wide
    - FStar_UInt128_add
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t Hacl_Bignum_Base_mul_wide_add2_u64(uint64_t a, uint64_t b,
      uint64_t c_in, uint64_t *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_CHECK_SIZE
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:69,1
    - Dst: alloca
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:70,1
    - Dst: memset
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:71,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:72,1
    - Dst: load64_be
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - len
    - b
    - res
    argTypes:
    - uint32_t
    - uint8_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 79
    functionName: Hacl_Bignum_Convert_bn_from_bytes_be_uint64
    functionSourceFile: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h
    functionUses: 0
    functionsReached:
    - memcpy
    - alloca
    - memset
    - KRML_CHECK_SIZE
    - load64_be
    linkageType: ''
    returnType: void
    signature: void Hacl_Bignum_Convert_bn_from_bytes_be_uint64(uint32_t len, uint8_t
      *b, uint64_t *res)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_CHECK_SIZE
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:86,1
    - Dst: alloca
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:87,1
    - Dst: memset
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:88,1
    - Dst: store64_be
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:90,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - len
    - b
    - res
    argTypes:
    - uint32_t
    - uint64_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 93
    functionName: Hacl_Bignum_Convert_bn_to_bytes_be_uint64
    functionSourceFile: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h
    functionUses: 0
    functionsReached:
    - store64_be
    - memcpy
    - alloca
    - memset
    - KRML_CHECK_SIZE
    linkageType: ''
    returnType: void
    signature: void Hacl_Bignum_Convert_bn_to_bytes_be_uint64(uint32_t len, uint64_t
      *b, uint8_t *res)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt32_eq_mask
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - len
    - b
    argTypes:
    - uint32_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 104
    functionName: Hacl_Bignum_Lib_bn_get_top_index_u32
    functionSourceFile: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h
    functionUses: 0
    functionsReached:
    - FStar_UInt32_eq_mask
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Hacl_Bignum_Lib_bn_get_top_index_u32(uint32_t len, uint32_t
      *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - len
    - b
    argTypes:
    - uint32_t
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 115
    functionName: Hacl_Bignum_Lib_bn_get_top_index_u64
    functionSourceFile: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h
    functionUses: 0
    functionsReached:
    - FStar_UInt64_eq_mask
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t Hacl_Bignum_Lib_bn_get_top_index_u64(uint32_t len, uint64_t
      *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - len
    - b
    - i
    - l
    argTypes:
    - uint32_t
    - uint32_t*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 130
    functionName: Hacl_Bignum_Lib_bn_get_bits_u32
    functionSourceFile: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Hacl_Bignum_Lib_bn_get_bits_u32(uint32_t len, uint32_t *b,
      uint32_t i, uint32_t l)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - len
    - b
    - i
    - l
    argTypes:
    - uint32_t
    - uint64_t*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 145
    functionName: Hacl_Bignum_Lib_bn_get_bits_u64
    functionSourceFile: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t Hacl_Bignum_Lib_bn_get_bits_u64(uint32_t len, uint64_t *b,
      uint32_t i, uint32_t l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u32
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:155,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u32
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:159,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u32
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:163,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u32
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:167,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u32
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - aLen
    - a
    - b
    - res
    argTypes:
    - uint32_t
    - uint32_t*
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 176
    functionName: Hacl_Bignum_Addition_bn_sub_eq_len_u32
    functionSourceFile: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h
    functionUses: 0
    functionsReached:
    - Lib_IntTypes_Intrinsics_sub_borrow_u32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Hacl_Bignum_Addition_bn_sub_eq_len_u32(uint32_t aLen, uint32_t
      *a, uint32_t *b, uint32_t *res)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:186,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:190,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:194,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:198,1
    - Dst: Lib_IntTypes_Intrinsics_sub_borrow_u64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:204,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - aLen
    - a
    - b
    - res
    argTypes:
    - uint32_t
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 207
    functionName: Hacl_Bignum_Addition_bn_sub_eq_len_u64
    functionSourceFile: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h
    functionUses: 0
    functionsReached:
    - Lib_IntTypes_Intrinsics_sub_borrow_u64
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t Hacl_Bignum_Addition_bn_sub_eq_len_u64(uint32_t aLen, uint64_t
      *a, uint64_t *b, uint64_t *res)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lib_IntTypes_Intrinsics_add_carry_u32
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:217,1
    - Dst: Lib_IntTypes_Intrinsics_add_carry_u32
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:221,1
    - Dst: Lib_IntTypes_Intrinsics_add_carry_u32
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:225,1
    - Dst: Lib_IntTypes_Intrinsics_add_carry_u32
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:229,1
    - Dst: Lib_IntTypes_Intrinsics_add_carry_u32
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:235,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - aLen
    - a
    - b
    - res
    argTypes:
    - uint32_t
    - uint32_t*
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 238
    functionName: Hacl_Bignum_Addition_bn_add_eq_len_u32
    functionSourceFile: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h
    functionUses: 0
    functionsReached:
    - Lib_IntTypes_Intrinsics_add_carry_u32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Hacl_Bignum_Addition_bn_add_eq_len_u32(uint32_t aLen, uint32_t
      *a, uint32_t *b, uint32_t *res)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lib_IntTypes_Intrinsics_add_carry_u64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:248,1
    - Dst: Lib_IntTypes_Intrinsics_add_carry_u64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:252,1
    - Dst: Lib_IntTypes_Intrinsics_add_carry_u64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:256,1
    - Dst: Lib_IntTypes_Intrinsics_add_carry_u64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:260,1
    - Dst: Lib_IntTypes_Intrinsics_add_carry_u64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:266,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - aLen
    - a
    - b
    - res
    argTypes:
    - uint32_t
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 269
    functionName: Hacl_Bignum_Addition_bn_add_eq_len_u64
    functionSourceFile: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h
    functionUses: 3
    functionsReached:
    - Lib_IntTypes_Intrinsics_add_carry_u64
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t Hacl_Bignum_Addition_bn_add_eq_len_u64(uint32_t aLen, uint64_t
      *a, uint64_t *b, uint64_t *res)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:279,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u32
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:287,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u32
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:290,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u32
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:293,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u32
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:296,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u32
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:301,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - aLen
    - a
    - bLen
    - b
    - res
    argTypes:
    - uint32_t
    - uint32_t*
    - uint32_t
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 306
    functionName: Hacl_Bignum_Multiplication_bn_mul_u32
    functionSourceFile: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h
    functionUses: 0
    functionsReached:
    - memset
    - Hacl_Bignum_Base_mul_wide_add2_u32
    linkageType: ''
    returnType: void
    signature: "void Hacl_Bignum_Multiplication_bn_mul_u32(\n    uint32_t aLen,\n
      \   uint32_t *a,\n    uint32_t bLen,\n    uint32_t *b,\n    uint32_t *res)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:316,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:324,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:327,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:330,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:333,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:338,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - aLen
    - a
    - bLen
    - b
    - res
    argTypes:
    - uint32_t
    - uint64_t*
    - uint32_t
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 343
    functionName: Hacl_Bignum_Multiplication_bn_mul_u64
    functionSourceFile: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h
    functionUses: 0
    functionsReached:
    - memset
    - Hacl_Bignum_Base_mul_wide_add2_u64
    linkageType: ''
    returnType: void
    signature: "void Hacl_Bignum_Multiplication_bn_mul_u64(\n    uint32_t aLen,\n
      \   uint64_t *a,\n    uint32_t bLen,\n    uint64_t *b,\n    uint64_t *res)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:348,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u32
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:357,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u32
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:360,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u32
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:363,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u32
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:366,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u32
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:371,1
    - Dst: Hacl_Bignum_Addition_bn_add_eq_len_u32
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:376,1
    - Dst: KRML_HOST_IGNORE
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:377,1
    - Dst: KRML_CHECK_SIZE
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:378,1
    - Dst: alloca
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:379,1
    - Dst: memset
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:380,1
    - Dst: Hacl_Bignum_Addition_bn_add_eq_len_u32
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:388,1
    - Dst: KRML_HOST_IGNORE
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:389,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - aLen
    - a
    - res
    argTypes:
    - uint32_t
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 345
    functionDepth: 2
    functionLinenumber: 345
    functionLinenumberEnd: 390
    functionName: Hacl_Bignum_Multiplication_bn_sqr_u32
    functionSourceFile: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h
    functionUses: 0
    functionsReached:
    - Hacl_Bignum_Base_mul_wide_add2_u32
    - alloca
    - Hacl_Bignum_Addition_bn_add_eq_len_u32
    - memset
    - KRML_CHECK_SIZE
    - KRML_HOST_IGNORE
    linkageType: ''
    returnType: void
    signature: void Hacl_Bignum_Multiplication_bn_sqr_u32(uint32_t aLen, uint32_t
      *a, uint32_t *res)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:395,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:404,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:407,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:410,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:413,1
    - Dst: Hacl_Bignum_Base_mul_wide_add2_u64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:418,1
    - Dst: Hacl_Bignum_Addition_bn_add_eq_len_u64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:423,1
    - Dst: KRML_HOST_IGNORE
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:424,1
    - Dst: KRML_CHECK_SIZE
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:425,1
    - Dst: alloca
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:426,1
    - Dst: memset
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:427,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:429,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:430,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:430,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:431,1
    - Dst: Hacl_Bignum_Addition_bn_add_eq_len_u64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:435,1
    - Dst: KRML_HOST_IGNORE
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h:436,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - aLen
    - a
    - res
    argTypes:
    - uint32_t
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 392
    functionDepth: 2
    functionLinenumber: 392
    functionLinenumberEnd: 437
    functionName: Hacl_Bignum_Multiplication_bn_sqr_u64
    functionSourceFile: /src/nss/lib/freebl/verified/internal/Hacl_Bignum_Base.h
    functionUses: 0
    functionsReached:
    - FStar_UInt128_uint128_to_uint64
    - alloca
    - FStar_UInt128_shift_right
    - FStar_UInt128_mul_wide
    - memset
    - Hacl_Bignum_Base_mul_wide_add2_u64
    - KRML_CHECK_SIZE
    - Hacl_Bignum_Addition_bn_add_eq_len_u64
    - KRML_HOST_IGNORE
    linkageType: ''
    returnType: void
    signature: void Hacl_Bignum_Multiplication_bn_sqr_u64(uint32_t aLen, uint64_t
      *a, uint64_t *res)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - out
    - f1
    - f2
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 58
    functionName: Hacl_Impl_Curve25519_Field51_fadd
    functionSourceFile: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hacl_Impl_Curve25519_Field51_fadd(uint64_t *out, uint64_t *f1,
      uint64_t *f2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - out
    - f1
    - f2
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 78
    functionName: Hacl_Impl_Curve25519_Field51_fsub
    functionSourceFile: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hacl_Impl_Curve25519_Field51_fsub(uint64_t *out, uint64_t *f1,
      uint64_t *f2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_HOST_IGNORE
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:87,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:102,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:103,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:104,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:105,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:106,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:107,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:107,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:108,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:108,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:109,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:109,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:110,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:110,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:111,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:111,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:112,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:112,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:113,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:113,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:114,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:114,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:115,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:115,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:116,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:116,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:117,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:117,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:118,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:118,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:119,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:119,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:120,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:120,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:121,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:121,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:122,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:122,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:123,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:123,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:124,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:124,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:125,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:125,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:126,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:126,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:133,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:133,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:134,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:135,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:135,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:136,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:136,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:137,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:138,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:138,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:139,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:139,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:140,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:141,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:141,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:142,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:142,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:143,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:144,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:144,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:145,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:145,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:146,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:147,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - out
    - f1
    - f2
    - uu___
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    - FStar_UInt128_uint128*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 161
    functionName: Hacl_Impl_Curve25519_Field51_fmul
    functionSourceFile: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h
    functionUses: 4
    functionsReached:
    - FStar_UInt128_uint128_to_uint64
    - FStar_UInt128_uint64_to_uint128
    - FStar_UInt128_shift_right
    - FStar_UInt128_mul_wide
    - FStar_UInt128_add
    - KRML_HOST_IGNORE
    linkageType: ''
    returnType: void
    signature: "void Hacl_Impl_Curve25519_Field51_fmul(\n    uint64_t *out,\n    uint64_t
      *f1,\n    uint64_t *f2,\n    FStar_UInt128_uint128 *uu___)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_HOST_IGNORE
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:170,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:199,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:200,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:201,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:202,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:203,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:204,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:204,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:205,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:205,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:206,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:206,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:207,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:207,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:208,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:208,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:209,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:209,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:210,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:210,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:211,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:211,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:212,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:212,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:213,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:213,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:214,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:214,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:215,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:215,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:216,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:216,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:217,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:217,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:218,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:218,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:219,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:219,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:220,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:220,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:221,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:221,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:222,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:222,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:223,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:223,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:229,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:230,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:231,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:232,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:233,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:234,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:234,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:235,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:235,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:236,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:236,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:237,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:237,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:238,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:238,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:239,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:239,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:240,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:240,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:241,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:241,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:242,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:242,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:243,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:243,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:244,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:244,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:245,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:245,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:246,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:246,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:247,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:247,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:248,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:248,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:249,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:249,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:250,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:250,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:251,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:251,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:252,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:252,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:253,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:253,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:260,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:260,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:261,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:262,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:262,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:263,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:263,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:264,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:265,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:265,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:266,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:266,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:267,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:268,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:268,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:269,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:269,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:270,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:271,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:271,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:272,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:272,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:273,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:274,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:274,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:284,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:284,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:285,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:286,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:286,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:287,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:287,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:288,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:289,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:289,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:290,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:290,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:291,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:292,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:292,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:293,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:293,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:294,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:295,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:295,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:296,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:296,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:297,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:298,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 4
    argNames:
    - out
    - f1
    - f2
    - uu___
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t*
    - FStar_UInt128_uint128*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 327
    functionName: Hacl_Impl_Curve25519_Field51_fmul2
    functionSourceFile: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h
    functionUses: 2
    functionsReached:
    - FStar_UInt128_uint128_to_uint64
    - FStar_UInt128_uint64_to_uint128
    - FStar_UInt128_shift_right
    - FStar_UInt128_mul_wide
    - FStar_UInt128_add
    - KRML_HOST_IGNORE
    linkageType: ''
    returnType: void
    signature: "void Hacl_Impl_Curve25519_Field51_fmul2(\n    uint64_t *out,\n    uint64_t
      *f1,\n    uint64_t *f2,\n    FStar_UInt128_uint128 *uu___)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:337,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:338,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:339,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:340,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:341,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:343,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:343,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:344,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:345,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:345,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:346,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:346,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:347,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:348,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:348,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:349,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:349,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:350,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:351,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:351,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:352,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:352,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:353,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:354,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:354,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:355,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:355,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:356,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:357,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - out
    - f1
    - f2
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 371
    functionName: Hacl_Impl_Curve25519_Field51_fmul1
    functionSourceFile: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h
    functionUses: 2
    functionsReached:
    - FStar_UInt128_uint128_to_uint64
    - FStar_UInt128_uint64_to_uint128
    - FStar_UInt128_shift_right
    - FStar_UInt128_mul_wide
    - FStar_UInt128_add
    linkageType: ''
    returnType: void
    signature: void Hacl_Impl_Curve25519_Field51_fmul1(uint64_t *out, uint64_t *f1,
      uint64_t f2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_HOST_IGNORE
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:376,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:390,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:390,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:390,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:391,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:392,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:395,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:395,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:395,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:396,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:397,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:400,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:400,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:400,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:401,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:402,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:405,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:405,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:405,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:406,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:407,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:410,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:410,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:410,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:411,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:412,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:419,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:419,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:420,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:421,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:421,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:422,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:422,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:423,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:424,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:424,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:425,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:425,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:426,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:427,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:427,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:428,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:428,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:429,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:430,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:430,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:431,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:431,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:432,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:433,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - out
    - f
    - uu___
    argTypes:
    - uint64_t*
    - uint64_t*
    - FStar_UInt128_uint128*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 447
    functionName: Hacl_Impl_Curve25519_Field51_fsqr
    functionSourceFile: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h
    functionUses: 2
    functionsReached:
    - FStar_UInt128_uint128_to_uint64
    - FStar_UInt128_uint64_to_uint128
    - FStar_UInt128_shift_right
    - FStar_UInt128_mul_wide
    - FStar_UInt128_add
    - KRML_HOST_IGNORE
    linkageType: ''
    returnType: void
    signature: void Hacl_Impl_Curve25519_Field51_fsqr(uint64_t *out, uint64_t *f,
      FStar_UInt128_uint128 *uu___)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_HOST_IGNORE
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:452,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:471,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:471,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:471,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:472,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:473,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:476,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:476,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:476,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:477,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:478,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:481,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:481,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:481,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:482,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:483,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:486,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:486,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:486,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:487,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:488,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:491,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:491,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:491,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:492,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:493,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:507,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:507,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:507,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:508,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:509,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:512,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:512,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:512,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:513,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:514,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:517,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:517,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:517,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:518,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:519,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:522,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:522,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:522,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:523,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:524,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:527,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:527,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:527,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:528,1
    - Dst: FStar_UInt128_mul_wide
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:529,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:536,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:536,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:537,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:538,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:538,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:539,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:539,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:540,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:541,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:541,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:542,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:542,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:543,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:544,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:544,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:545,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:545,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:546,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:547,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:547,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:548,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:548,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:549,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:550,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:550,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:560,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:560,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:561,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:562,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:562,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:563,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:563,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:564,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:565,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:565,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:566,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:566,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:567,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:568,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:568,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:569,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:569,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:570,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:571,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:571,1
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:572,1
    - Dst: FStar_UInt128_uint64_to_uint128
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:572,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:573,1
    - Dst: FStar_UInt128_uint128_to_uint64
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:574,1
    - Dst: FStar_UInt128_shift_right
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - out
    - f
    - uu___
    argTypes:
    - uint64_t*
    - uint64_t*
    - FStar_UInt128_uint128*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 603
    functionName: Hacl_Impl_Curve25519_Field51_fsqr2
    functionSourceFile: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h
    functionUses: 2
    functionsReached:
    - FStar_UInt128_uint128_to_uint64
    - FStar_UInt128_uint64_to_uint128
    - FStar_UInt128_shift_right
    - FStar_UInt128_mul_wide
    - FStar_UInt128_add
    - KRML_HOST_IGNORE
    linkageType: ''
    returnType: void
    signature: void Hacl_Impl_Curve25519_Field51_fsqr2(uint64_t *out, uint64_t *f,
      FStar_UInt128_uint128 *uu___)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt64_gte_mask
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:636,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:637,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:638,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:639,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - u64s
    - f
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 605
    functionDepth: 1
    functionLinenumber: 605
    functionLinenumberEnd: 664
    functionName: Hacl_Impl_Curve25519_Field51_store_felem
    functionSourceFile: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h
    functionUses: 2
    functionsReached:
    - FStar_UInt64_gte_mask
    - FStar_UInt64_eq_mask
    linkageType: ''
    returnType: void
    signature: void Hacl_Impl_Curve25519_Field51_store_felem(uint64_t *u64s, uint64_t
      *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_MAYBE_FOR10
      Src: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h:670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bit
    - p1
    - p2
    argTypes:
    - uint64_t
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 666
    functionDepth: 1
    functionLinenumber: 666
    functionLinenumberEnd: 677
    functionName: Hacl_Impl_Curve25519_Field51_cswap2
    functionSourceFile: /src/nss/lib/freebl/verified/internal/Hacl_Bignum25519_51.h
    functionUses: 1
    functionsReached:
    - KRML_MAYBE_FOR10
    linkageType: ''
    returnType: void
    signature: void Hacl_Impl_Curve25519_Field51_cswap2(uint64_t bit, uint64_t *p1,
      uint64_t *p2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_HOST_EPRINTF
      Src: /src/nss/lib/freebl/verified/karamel/include/krml/fstar_int.h:29,1
    - Dst: KRML_HOST_EXIT
      Src: /src/nss/lib/freebl/verified/karamel/include/krml/fstar_int.h:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int8_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 32
    functionName: FStar_Int8_shift_arithmetic_right
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/fstar_int.h
    functionUses: 0
    functionsReached:
    - KRML_HOST_EPRINTF
    - KRML_HOST_EXIT
    linkageType: ''
    returnType: int8_t
    signature: int8_t FStar_Int8_shift_arithmetic_right(int8_t a, uint32_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_HOST_EPRINTF
      Src: /src/nss/lib/freebl/verified/karamel/include/krml/fstar_int.h:38,1
    - Dst: KRML_HOST_EXIT
      Src: /src/nss/lib/freebl/verified/karamel/include/krml/fstar_int.h:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int16_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 41
    functionName: FStar_Int16_shift_arithmetic_right
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/fstar_int.h
    functionUses: 0
    functionsReached:
    - KRML_HOST_EPRINTF
    - KRML_HOST_EXIT
    linkageType: ''
    returnType: int16_t
    signature: int16_t FStar_Int16_shift_arithmetic_right(int16_t a, uint32_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_HOST_EPRINTF
      Src: /src/nss/lib/freebl/verified/karamel/include/krml/fstar_int.h:47,1
    - Dst: KRML_HOST_EXIT
      Src: /src/nss/lib/freebl/verified/karamel/include/krml/fstar_int.h:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 50
    functionName: FStar_Int32_shift_arithmetic_right
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/fstar_int.h
    functionUses: 0
    functionsReached:
    - KRML_HOST_EPRINTF
    - KRML_HOST_EXIT
    linkageType: ''
    returnType: int32_t
    signature: int32_t FStar_Int32_shift_arithmetic_right(int32_t a, uint32_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KRML_HOST_EPRINTF
      Src: /src/nss/lib/freebl/verified/karamel/include/krml/fstar_int.h:56,1
    - Dst: KRML_HOST_EXIT
      Src: /src/nss/lib/freebl/verified/karamel/include/krml/fstar_int.h:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int64_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 59
    functionName: FStar_Int64_shift_arithmetic_right
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/fstar_int.h
    functionUses: 0
    functionsReached:
    - KRML_HOST_EPRINTF
    - KRML_HOST_EXIT
    linkageType: ''
    returnType: int64_t
    signature: int64_t FStar_Int64_shift_arithmetic_right(int64_t a, uint32_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int8_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 67
    functionName: FStar_Int8_shift_arithmetic_right
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/fstar_int.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int8_t
    signature: int8_t FStar_Int8_shift_arithmetic_right(int8_t a, uint32_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int16_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 73
    functionName: FStar_Int16_shift_arithmetic_right
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/fstar_int.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int16_t
    signature: int16_t FStar_Int16_shift_arithmetic_right(int16_t a, uint32_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: FStar_Int32_shift_arithmetic_right
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/fstar_int.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t FStar_Int32_shift_arithmetic_right(int32_t a, uint32_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int64_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: FStar_Int64_shift_arithmetic_right
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/fstar_int.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int64_t
    signature: int64_t FStar_Int64_shift_arithmetic_right(int64_t a, uint32_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: htole64
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htole64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: le64toh
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: le64toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: htobe64
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htobe64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: be64toh
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: be64toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: htole16
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htole16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: le16toh
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: le16toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: htobe16
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htobe16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: be16toh
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: be16toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: htole32
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htole32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: le32toh
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: le32toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: htobe32
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htobe32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: be32toh
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: be32toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: htole64
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htole64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: le64toh
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: le64toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: htobe64
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htobe64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: be64toh
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: be64toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: htole16
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htole16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: le16toh
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: le16toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: htobe16
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htobe16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: be16toh
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: be16toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: htole32
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htole32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: le32toh
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: le32toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: htobe32
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htobe32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: be32toh
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: be32toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: htobe16
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htobe16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: htole16
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htole16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    functionName: be16toh
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: be16toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: le16toh
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: le16toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: htobe32
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htobe32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: htole32
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htole32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: be32toh
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: be32toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: le32toh
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: le32toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: htobe64
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htobe64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: htole64
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htole64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: be64toh
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: be64toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: le64toh
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: le64toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: htobe16
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htobe16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: htole16
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htole16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: be16toh
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: be16toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: le16toh
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: le16toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 89
    functionName: htobe32
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htobe32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 90
    functionName: htole32
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htole32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: be32toh
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: be32toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 92
    functionName: le32toh
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: le32toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 94
    functionName: htobe64
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htobe64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 95
    functionName: htole64
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htole64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 96
    functionName: be64toh
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: be64toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 97
    functionName: le64toh
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: le64toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: htobe32
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htobe32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: be32toh
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: be32toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 114
    functionName: htole32
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htole32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 115
    functionName: le32toh
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: le32toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 117
    functionName: htobe64
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htobe64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 118
    functionName: be64toh
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: be64toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 125
    functionName: htole64
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htole64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 126
    functionName: le64toh
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: le64toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: htole32
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htole32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 132
    functionName: le32toh
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: le32toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 138
    functionName: htobe32
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htobe32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 139
    functionName: be32toh
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: be32toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 141
    functionName: htole64
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htole64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 142
    functionName: le64toh
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: le64toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 149
    functionName: htobe64
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: htobe64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 150
    functionName: be64toh
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: be64toh(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - b
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 166
    functionName: load16
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t load16(uint8_t *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - b
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 174
    functionName: load32
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 4
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t load32(uint8_t *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - b
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 182
    functionName: load64
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 17
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t load64(uint8_t *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - i
    argTypes:
    - uint8_t*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 188
    functionName: store16
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void store16(uint8_t *b, uint16_t i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - i
    argTypes:
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 194
    functionName: store32
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void store32(uint8_t *b, uint32_t i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - i
    argTypes:
    - uint8_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 200
    functionName: store64
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 3
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void store64(uint8_t *b, uint64_t i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 205
    functionName: load16_le
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: load16_le(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 206
    functionName: store16_le
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: store16_le(b, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 207
    functionName: load16_be
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: load16_be(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 208
    functionName: store16_be
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: store16_be(b, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 210
    functionName: load32_le
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: load32_le(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 211
    functionName: store32_le
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: store32_le(b, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 212
    functionName: load32_be
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: load32_be(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 213
    functionName: store32_be
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: store32_be(b, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 215
    functionName: load64_le
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: load64_le(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 216
    functionName: store64_le
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: store64_le(b, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 217
    functionName: load64_be
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: load64_be(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 218
    functionName: store64_be
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/lowstar_endianness.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: store64_be(b, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 31
    functionName: RETURN_OR
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/compat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RETURN_OR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 34
    functionName: KRML_FORMAT
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/debug.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_FORMAT(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 45
    functionName: KRML_FORMAT_ARG
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/debug.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_FORMAT_ARG(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 55
    functionName: KRML_DEBUG_RETURN
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/debug.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_DEBUG_RETURN(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: KRML_HOST_EPRINTF
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_HOST_EPRINTF(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: KRML_HOST_EPRINTF
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_HOST_EPRINTF(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: KRML_HOST_IGNORE
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 24
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_HOST_IGNORE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: KRML_MAYBE_UNUSED_VAR
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_UNUSED_VAR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: KRML_ATTRIBUTE_TARGET
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_ATTRIBUTE_TARGET(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: KRML_PRE_ALIGN
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_PRE_ALIGN(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 120
    functionName: KRML_POST_ALIGN
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_POST_ALIGN(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - Y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 133
    functionName: KRML_ALIGNED_MALLOC
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_ALIGNED_MALLOC(X, Y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - Y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 135
    functionName: KRML_ALIGNED_MALLOC
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_ALIGNED_MALLOC(X, Y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 149
    functionName: KRML_ALIGNED_FREE
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_ALIGNED_FREE(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 151
    functionName: KRML_ALIGNED_FREE
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_ALIGNED_FREE(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 163
    functionName: krml_time
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 0
    functionsReached:
    - time
    linkageType: ''
    returnType: int32_t
    signature: int32_t krml_time(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - t
    - ','
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 181
    functionName: KRML_EABORT
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_EABORT(t, msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - size_elt
    - ','
    - sz
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 203
    functionName: KRML_CHECK_SIZE
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_CHECK_SIZE(size_elt, sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - buf
    - ','
    - sz
    - ','
    - fmt
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 207
    functionName: KRML_HOST_SNPRINTF
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_HOST_SNPRINTF(buf, sz, fmt, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - buf
    - ','
    - sz
    - ','
    - fmt
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 209
    functionName: KRML_HOST_SNPRINTF
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_HOST_SNPRINTF(buf, sz, fmt, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 213
    functionName: KRML_DEPRECATED
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_DEPRECATED(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 218
    functionName: KRML_DEPRECATED
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_DEPRECATED(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - i
    - ','
    - n
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 226
    functionName: KRML_LOOP1
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_LOOP1(i, n, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - i
    - ','
    - n
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 230
    functionName: KRML_LOOP2
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_LOOP2(i, n, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - i
    - ','
    - n
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 234
    functionName: KRML_LOOP3
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_LOOP3(i, n, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - i
    - ','
    - n
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 238
    functionName: KRML_LOOP4
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_LOOP4(i, n, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - i
    - ','
    - n
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 242
    functionName: KRML_LOOP5
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_LOOP5(i, n, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - i
    - ','
    - n
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 246
    functionName: KRML_LOOP6
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_LOOP6(i, n, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - i
    - ','
    - n
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 250
    functionName: KRML_LOOP7
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_LOOP7(i, n, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - i
    - ','
    - n
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 254
    functionName: KRML_LOOP8
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_LOOP8(i, n, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - i
    - ','
    - n
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 258
    functionName: KRML_LOOP9
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_LOOP9(i, n, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - i
    - ','
    - n
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 262
    functionName: KRML_LOOP10
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_LOOP10(i, n, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - i
    - ','
    - n
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 266
    functionName: KRML_LOOP11
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_LOOP11(i, n, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - i
    - ','
    - n
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 270
    functionName: KRML_LOOP12
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_LOOP12(i, n, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - i
    - ','
    - n
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 274
    functionName: KRML_LOOP13
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_LOOP13(i, n, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - i
    - ','
    - n
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 278
    functionName: KRML_LOOP14
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_LOOP14(i, n, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - i
    - ','
    - n
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 282
    functionName: KRML_LOOP15
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_LOOP15(i, n, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - i
    - ','
    - n
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 286
    functionName: KRML_LOOP16
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_LOOP16(i, n, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 292
    functionName: KRML_UNROLL_FOR
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_UNROLL_FOR(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 299
    functionName: KRML_ACTUAL_FOR
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_ACTUAL_FOR(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 309
    functionName: KRML_MAYBE_FOR0
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR0(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 313
    functionName: KRML_MAYBE_FOR1
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR1(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 315
    functionName: KRML_MAYBE_FOR1
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR1(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 319
    functionName: KRML_MAYBE_FOR2
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR2(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 321
    functionName: KRML_MAYBE_FOR2
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR2(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 325
    functionName: KRML_MAYBE_FOR3
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR3(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 327
    functionName: KRML_MAYBE_FOR3
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR3(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 331
    functionName: KRML_MAYBE_FOR4
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR4(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 333
    functionName: KRML_MAYBE_FOR4
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR4(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 337
    functionName: KRML_MAYBE_FOR5
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR5(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 339
    functionName: KRML_MAYBE_FOR5
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR5(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 343
    functionName: KRML_MAYBE_FOR6
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR6(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 345
    functionName: KRML_MAYBE_FOR6
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR6(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 349
    functionName: KRML_MAYBE_FOR7
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR7(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 351
    functionName: KRML_MAYBE_FOR7
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR7(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 355
    functionName: KRML_MAYBE_FOR8
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR8(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 357
    functionName: KRML_MAYBE_FOR8
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR8(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 361
    functionName: KRML_MAYBE_FOR9
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR9(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 363
    functionName: KRML_MAYBE_FOR9
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR9(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 367
    functionName: KRML_MAYBE_FOR10
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR10(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 369
    functionName: KRML_MAYBE_FOR10
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR10(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 373
    functionName: KRML_MAYBE_FOR11
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR11(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 375
    functionName: KRML_MAYBE_FOR11
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR11(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 379
    functionName: KRML_MAYBE_FOR12
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR12(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 381
    functionName: KRML_MAYBE_FOR12
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR12(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 385
    functionName: KRML_MAYBE_FOR13
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR13(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 387
    functionName: KRML_MAYBE_FOR13
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR13(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 391
    functionName: KRML_MAYBE_FOR14
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR14(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 393
    functionName: KRML_MAYBE_FOR14
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR14(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 397
    functionName: KRML_MAYBE_FOR15
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR15(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 399
    functionName: KRML_MAYBE_FOR15
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR15(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 403
    functionName: KRML_MAYBE_FOR16
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR16(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - i
    - ','
    - z
    - ','
    - n
    - ','
    - k
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 405
    functionName: KRML_MAYBE_FOR16
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/include/krml/internal/target.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KRML_MAYBE_FOR16(i, z, n, k, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 42
    functionName: FStar_UInt64_eq_mask
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt_8_16_32_64.h
    functionUses: 33
    functionsReached: []
    linkageType: ''
    returnType: KRML_NOINLINE
    signature: KRML_NOINLINE FStar_UInt64_eq_mask(uint64_t a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 56
    functionName: FStar_UInt64_gte_mask
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt_8_16_32_64.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: KRML_NOINLINE
    signature: KRML_NOINLINE FStar_UInt64_gte_mask(uint64_t a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 92
    functionName: FStar_UInt32_eq_mask
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt_8_16_32_64.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: KRML_NOINLINE
    signature: KRML_NOINLINE FStar_UInt32_eq_mask(uint32_t a, uint32_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 106
    functionName: FStar_UInt32_gte_mask
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt_8_16_32_64.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KRML_NOINLINE
    signature: KRML_NOINLINE FStar_UInt32_gte_mask(uint32_t a, uint32_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint16_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 142
    functionName: FStar_UInt16_eq_mask
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt_8_16_32_64.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KRML_NOINLINE
    signature: KRML_NOINLINE FStar_UInt16_eq_mask(uint16_t a, uint16_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint16_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 156
    functionName: FStar_UInt16_gte_mask
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt_8_16_32_64.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KRML_NOINLINE
    signature: KRML_NOINLINE FStar_UInt16_gte_mask(uint16_t a, uint16_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 192
    functionName: FStar_UInt8_eq_mask
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt_8_16_32_64.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: KRML_NOINLINE
    signature: KRML_NOINLINE FStar_UInt8_eq_mask(uint8_t a, uint8_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 206
    functionName: FStar_UInt8_gte_mask
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt_8_16_32_64.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KRML_NOINLINE
    signature: KRML_NOINLINE FStar_UInt8_gte_mask(uint8_t a, uint8_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 12
    functionName: HIGH64_OF
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_struct_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HIGH64_OF(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 13
    functionName: LOW64_OF
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_struct_endianness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOW64_OF(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOW64_OF
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_struct_endianness.h:19,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_struct_endianness.h:19,1
    - Dst: HIGH64_OF
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_struct_endianness.h:20,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_struct_endianness.h:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - b
    - r
    argTypes:
    - uint8_t*
    - uint128_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 21
    functionName: load128_le_
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_struct_endianness.h
    functionUses: 0
    functionsReached:
    - LOW64_OF
    - load64_le
    - HIGH64_OF
    linkageType: ''
    returnType: void
    signature: void load128_le_(uint8_t *b, uint128_t *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store64_le
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_struct_endianness.h:26,1
    - Dst: LOW64_OF
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_struct_endianness.h:26,1
    - Dst: store64_le
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_struct_endianness.h:27,1
    - Dst: HIGH64_OF
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_struct_endianness.h:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - b
    - n
    argTypes:
    - uint8_t*
    - uint128_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: store128_le_
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_struct_endianness.h
    functionUses: 0
    functionsReached:
    - LOW64_OF
    - store64_le
    - HIGH64_OF
    linkageType: ''
    returnType: void
    signature: void store128_le_(uint8_t *b, uint128_t *n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HIGH64_OF
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_struct_endianness.h:33,1
    - Dst: load64_be
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_struct_endianness.h:33,1
    - Dst: LOW64_OF
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_struct_endianness.h:34,1
    - Dst: load64_be
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_struct_endianness.h:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - b
    - r
    argTypes:
    - uint8_t*
    - uint128_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: load128_be_
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_struct_endianness.h
    functionUses: 0
    functionsReached:
    - HIGH64_OF
    - load64_be
    - LOW64_OF
    linkageType: ''
    returnType: void
    signature: void load128_be_(uint8_t *b, uint128_t *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store64_be
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_struct_endianness.h:40,1
    - Dst: HIGH64_OF
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_struct_endianness.h:40,1
    - Dst: store64_be
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_struct_endianness.h:41,1
    - Dst: LOW64_OF
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_struct_endianness.h:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - b
    - n
    argTypes:
    - uint8_t*
    - uint128_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: store128_be_
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_struct_endianness.h
    functionUses: 0
    functionsReached:
    - HIGH64_OF
    - store64_be
    - LOW64_OF
    linkageType: ''
    returnType: void
    signature: void store128_be_(uint8_t *b, uint128_t *n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load128_le_
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_struct_endianness.h:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - b
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 52
    functionName: load128_le
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_struct_endianness.h
    functionUses: 0
    functionsReached:
    - load128_le_
    linkageType: ''
    returnType: uint128_t
    signature: uint128_t load128_le(uint8_t *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store128_le_
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_struct_endianness.h:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - n
    argTypes:
    - uint8_t*
    - uint128_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: store128_le
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_struct_endianness.h
    functionUses: 0
    functionsReached:
    - store128_le_
    linkageType: ''
    returnType: void
    signature: void store128_le(uint8_t *b, uint128_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load128_be_
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_struct_endianness.h:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - b
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 66
    functionName: load128_be
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_struct_endianness.h
    functionUses: 0
    functionsReached:
    - load128_be_
    linkageType: ''
    returnType: uint128_t
    signature: uint128_t load128_be(uint8_t *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store128_be_
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_struct_endianness.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - n
    argTypes:
    - uint8_t*
    - uint128_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: store128_be
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_struct_endianness.h
    functionUses: 0
    functionsReached:
    - store128_be_
    linkageType: ''
    returnType: void
    signature: void store128_be(uint8_t *b, uint128_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 19
    functionName: FStar_UInt128_constant_time_carry
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t FStar_UInt128_constant_time_carry(uint64_t a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_constant_time_carry
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 25
    functionName: FStar_UInt128_carry
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached:
    - FStar_UInt128_constant_time_carry
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t FStar_UInt128_carry(uint64_t a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_carry
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FStar_UInt128_uint128
    - FStar_UInt128_uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 34
    functionName: FStar_UInt128_add
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h
    functionUses: 6
    functionsReached:
    - FStar_UInt128_carry
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_add(FStar_UInt128_uint128 a, FStar_UInt128_uint128
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_carry
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FStar_UInt128_uint128
    - FStar_UInt128_uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 43
    functionName: FStar_UInt128_add_underspec
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached:
    - FStar_UInt128_carry
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_add_underspec(FStar_UInt128_uint128
      a, FStar_UInt128_uint128 b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_carry
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FStar_UInt128_uint128
    - FStar_UInt128_uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 52
    functionName: FStar_UInt128_add_mod
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h
    functionUses: 3
    functionsReached:
    - FStar_UInt128_carry
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_add_mod(FStar_UInt128_uint128 a,
      FStar_UInt128_uint128 b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_carry
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FStar_UInt128_uint128
    - FStar_UInt128_uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 61
    functionName: FStar_UInt128_sub
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached:
    - FStar_UInt128_carry
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_sub(FStar_UInt128_uint128 a, FStar_UInt128_uint128
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_carry
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FStar_UInt128_uint128
    - FStar_UInt128_uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 70
    functionName: FStar_UInt128_sub_underspec
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached:
    - FStar_UInt128_carry
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_sub_underspec(FStar_UInt128_uint128
      a, FStar_UInt128_uint128 b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_carry
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FStar_UInt128_uint128
    - FStar_UInt128_uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 79
    functionName: FStar_UInt128_sub_mod_impl
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached:
    - FStar_UInt128_carry
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_sub_mod_impl(FStar_UInt128_uint128
      a, FStar_UInt128_uint128 b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_sub_mod_impl
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FStar_UInt128_uint128
    - FStar_UInt128_uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: FStar_UInt128_sub_mod
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h
    functionUses: 1
    functionsReached:
    - FStar_UInt128_sub_mod_impl
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_sub_mod(FStar_UInt128_uint128 a,
      FStar_UInt128_uint128 b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FStar_UInt128_uint128
    - FStar_UInt128_uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 94
    functionName: FStar_UInt128_logand
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_logand(FStar_UInt128_uint128 a,
      FStar_UInt128_uint128 b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FStar_UInt128_uint128
    - FStar_UInt128_uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 103
    functionName: FStar_UInt128_logxor
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_logxor(FStar_UInt128_uint128 a,
      FStar_UInt128_uint128 b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FStar_UInt128_uint128
    - FStar_UInt128_uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 112
    functionName: FStar_UInt128_logor
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_logor(FStar_UInt128_uint128 a,
      FStar_UInt128_uint128 b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - FStar_UInt128_uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 121
    functionName: FStar_UInt128_lognot
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_lognot(FStar_UInt128_uint128 a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - hi
    - lo
    - s
    argTypes:
    - uint64_t
    - uint64_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: FStar_UInt128_add_u64_shift_left
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t FStar_UInt128_add_u64_shift_left(uint64_t hi, uint64_t lo,
      uint32_t s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_add_u64_shift_left
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - hi
    - lo
    - s
    argTypes:
    - uint64_t
    - uint64_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 135
    functionName: FStar_UInt128_add_u64_shift_left_respec
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached:
    - FStar_UInt128_add_u64_shift_left
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t FStar_UInt128_add_u64_shift_left_respec(uint64_t hi, uint64_t
      lo, uint32_t s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_add_u64_shift_left_respec
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - a
    - s
    argTypes:
    - FStar_UInt128_uint128
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 148
    functionName: FStar_UInt128_shift_left_small
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached:
    - FStar_UInt128_add_u64_shift_left_respec
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_shift_left_small(FStar_UInt128_uint128
      a, uint32_t s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - s
    argTypes:
    - FStar_UInt128_uint128
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 157
    functionName: FStar_UInt128_shift_left_large
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_shift_left_large(FStar_UInt128_uint128
      a, uint32_t s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_shift_left_small
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h:163,1
    - Dst: FStar_UInt128_shift_left_large
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - a
    - s
    argTypes:
    - FStar_UInt128_uint128
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 167
    functionName: FStar_UInt128_shift_left
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached:
    - FStar_UInt128_shift_left_large
    - FStar_UInt128_shift_left_small
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_shift_left(FStar_UInt128_uint128
      a, uint32_t s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - hi
    - lo
    - s
    argTypes:
    - uint64_t
    - uint64_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 173
    functionName: FStar_UInt128_add_u64_shift_right
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t FStar_UInt128_add_u64_shift_right(uint64_t hi, uint64_t lo,
      uint32_t s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_add_u64_shift_right
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - hi
    - lo
    - s
    argTypes:
    - uint64_t
    - uint64_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 179
    functionName: FStar_UInt128_add_u64_shift_right_respec
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached:
    - FStar_UInt128_add_u64_shift_right
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t FStar_UInt128_add_u64_shift_right_respec(uint64_t hi, uint64_t
      lo, uint32_t s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_add_u64_shift_right_respec
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - a
    - s
    argTypes:
    - FStar_UInt128_uint128
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 192
    functionName: FStar_UInt128_shift_right_small
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached:
    - FStar_UInt128_add_u64_shift_right_respec
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_shift_right_small(FStar_UInt128_uint128
      a, uint32_t s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - s
    argTypes:
    - FStar_UInt128_uint128
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 201
    functionName: FStar_UInt128_shift_right_large
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_shift_right_large(FStar_UInt128_uint128
      a, uint32_t s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_shift_right_small
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h:207,1
    - Dst: FStar_UInt128_shift_right_large
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - a
    - s
    argTypes:
    - FStar_UInt128_uint128
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 211
    functionName: FStar_UInt128_shift_right
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h
    functionUses: 14
    functionsReached:
    - FStar_UInt128_shift_right_large
    - FStar_UInt128_shift_right_small
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_shift_right(FStar_UInt128_uint128
      a, uint32_t s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FStar_UInt128_uint128
    - FStar_UInt128_uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 217
    functionName: FStar_UInt128_eq
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool FStar_UInt128_eq(FStar_UInt128_uint128 a, FStar_UInt128_uint128
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FStar_UInt128_uint128
    - FStar_UInt128_uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 223
    functionName: FStar_UInt128_gt
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool FStar_UInt128_gt(FStar_UInt128_uint128 a, FStar_UInt128_uint128
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FStar_UInt128_uint128
    - FStar_UInt128_uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 229
    functionName: FStar_UInt128_lt
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool FStar_UInt128_lt(FStar_UInt128_uint128 a, FStar_UInt128_uint128
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FStar_UInt128_uint128
    - FStar_UInt128_uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 235
    functionName: FStar_UInt128_gte
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool FStar_UInt128_gte(FStar_UInt128_uint128 a, FStar_UInt128_uint128
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FStar_UInt128_uint128
    - FStar_UInt128_uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 241
    functionName: FStar_UInt128_lte
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool FStar_UInt128_lte(FStar_UInt128_uint128 a, FStar_UInt128_uint128
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h:247,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h:247,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h:248,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FStar_UInt128_uint128
    - FStar_UInt128_uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 250
    functionName: FStar_UInt128_eq_mask
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached:
    - FStar_UInt64_eq_mask
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_eq_mask(FStar_UInt128_uint128 a,
      FStar_UInt128_uint128 b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt64_gte_mask
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h:257,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h:257,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h:257,1
    - Dst: FStar_UInt64_gte_mask
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h:257,1
    - Dst: FStar_UInt64_gte_mask
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h:259,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h:259,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h:259,1
    - Dst: FStar_UInt64_gte_mask
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FStar_UInt128_uint128
    - FStar_UInt128_uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 261
    functionName: FStar_UInt128_gte_mask
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached:
    - FStar_UInt64_gte_mask
    - FStar_UInt64_eq_mask
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_gte_mask(FStar_UInt128_uint128
      a, FStar_UInt128_uint128 b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 270
    functionName: FStar_UInt128_uint64_to_uint128
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_uint64_to_uint128(uint64_t a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - FStar_UInt128_uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 276
    functionName: FStar_UInt128_uint128_to_uint64
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t FStar_UInt128_uint128_to_uint64(FStar_UInt128_uint128 a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 282
    functionName: FStar_UInt128_u64_mod_32
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t FStar_UInt128_u64_mod_32(uint64_t a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hi
    - lo
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 290
    functionName: FStar_UInt128_u32_combine
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t FStar_UInt128_u32_combine(uint64_t hi, uint64_t lo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_u32_combine
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h:297,1
    - Dst: FStar_UInt128_u64_mod_32
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h:297,1
    - Dst: FStar_UInt128_u64_mod_32
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h:298,1
    - Dst: FStar_UInt128_u64_mod_32
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h:298,1
    - Dst: FStar_UInt128_u64_mod_32
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - uint64_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 302
    functionName: FStar_UInt128_mul32
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached:
    - FStar_UInt128_u32_combine
    - FStar_UInt128_u64_mod_32
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_mul32(uint64_t x, uint32_t y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hi
    - lo
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 308
    functionName: FStar_UInt128_u32_combine_
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t FStar_UInt128_u32_combine_(uint64_t hi, uint64_t lo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_u32_combine_
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h:315,1
    - Dst: FStar_UInt128_u64_mod_32
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h:315,1
    - Dst: FStar_UInt128_u64_mod_32
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h:316,1
    - Dst: FStar_UInt128_u64_mod_32
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h:316,1
    - Dst: FStar_UInt128_u64_mod_32
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h:316,1
    - Dst: FStar_UInt128_u64_mod_32
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h:316,1
    - Dst: FStar_UInt128_u64_mod_32
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h:317,1
    - Dst: FStar_UInt128_u64_mod_32
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h:317,1
    - Dst: FStar_UInt128_u64_mod_32
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h:317,1
    - Dst: FStar_UInt128_u64_mod_32
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h:320,1
    - Dst: FStar_UInt128_u64_mod_32
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h:320,1
    - Dst: FStar_UInt128_u64_mod_32
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h:320,1
    - Dst: FStar_UInt128_u64_mod_32
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h:321,1
    - Dst: FStar_UInt128_u64_mod_32
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h:322,1
    - Dst: FStar_UInt128_u64_mod_32
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h:322,1
    - Dst: FStar_UInt128_u64_mod_32
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h:322,1
    - Dst: FStar_UInt128_u64_mod_32
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 325
    functionName: FStar_UInt128_mul_wide
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/FStar_UInt128_Verified.h
    functionUses: 12
    functionsReached:
    - FStar_UInt128_u32_combine_
    - FStar_UInt128_u64_mod_32
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_mul_wide(uint64_t x, uint64_t y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_gcc64.h:35,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_gcc64.h:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 38
    functionName: load128_le
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_gcc64.h
    functionUses: 0
    functionsReached:
    - load64_le
    linkageType: ''
    returnType: uint128_t
    signature: uint128_t load128_le(uint8_t *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store64_le
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_gcc64.h:43,1
    - Dst: store64_le
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_gcc64.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - b
    - n
    argTypes:
    - uint8_t*
    - uint128_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: store128_le
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_gcc64.h
    functionUses: 0
    functionsReached:
    - store64_le
    linkageType: ''
    returnType: void
    signature: void store128_le(uint8_t *b, uint128_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load64_be
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_gcc64.h:50,1
    - Dst: load64_be
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_gcc64.h:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 53
    functionName: load128_be
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_gcc64.h
    functionUses: 0
    functionsReached:
    - load64_be
    linkageType: ''
    returnType: uint128_t
    signature: uint128_t load128_be(uint8_t *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store64_be
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_gcc64.h:58,1
    - Dst: store64_be
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_gcc64.h:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - b
    - n
    argTypes:
    - uint8_t*
    - uint128_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 60
    functionName: store128_be
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_gcc64.h
    functionUses: 0
    functionsReached:
    - store64_be
    linkageType: ''
    returnType: void
    signature: void store128_be(uint8_t *b, uint128_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - uint128_t
    - uint128_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: FStar_UInt128_add
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_gcc64.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: uint128_t
    signature: uint128_t FStar_UInt128_add(uint128_t x, uint128_t y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - uint128_t
    - uint128_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: FStar_UInt128_mul
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_gcc64.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint128_t
    signature: uint128_t FStar_UInt128_mul(uint128_t x, uint128_t y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - uint128_t
    - uint128_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 78
    functionName: FStar_UInt128_add_mod
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_gcc64.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: uint128_t
    signature: uint128_t FStar_UInt128_add_mod(uint128_t x, uint128_t y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - uint128_t
    - uint128_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 84
    functionName: FStar_UInt128_sub
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_gcc64.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint128_t
    signature: uint128_t FStar_UInt128_sub(uint128_t x, uint128_t y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - uint128_t
    - uint128_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: FStar_UInt128_sub_mod
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_gcc64.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint128_t
    signature: uint128_t FStar_UInt128_sub_mod(uint128_t x, uint128_t y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - uint128_t
    - uint128_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: FStar_UInt128_logand
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_gcc64.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint128_t
    signature: uint128_t FStar_UInt128_logand(uint128_t x, uint128_t y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - uint128_t
    - uint128_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: FStar_UInt128_logor
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_gcc64.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint128_t
    signature: uint128_t FStar_UInt128_logor(uint128_t x, uint128_t y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - uint128_t
    - uint128_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: FStar_UInt128_logxor
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_gcc64.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint128_t
    signature: uint128_t FStar_UInt128_logxor(uint128_t x, uint128_t y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint128_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: FStar_UInt128_lognot
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_gcc64.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint128_t
    signature: uint128_t FStar_UInt128_lognot(uint128_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - uint128_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 120
    functionName: FStar_UInt128_shift_left
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_gcc64.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint128_t
    signature: uint128_t FStar_UInt128_shift_left(uint128_t x, uint32_t y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - uint128_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 126
    functionName: FStar_UInt128_shift_right
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_gcc64.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: uint128_t
    signature: uint128_t FStar_UInt128_shift_right(uint128_t x, uint32_t y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 132
    functionName: FStar_UInt128_uint64_to_uint128
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_gcc64.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: uint128_t
    signature: uint128_t FStar_UInt128_uint64_to_uint128(uint64_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint128_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 138
    functionName: FStar_UInt128_uint128_to_uint64
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_gcc64.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t FStar_UInt128_uint128_to_uint64(uint128_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 144
    functionName: FStar_UInt128_mul_wide
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_gcc64.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: uint128_t
    signature: uint128_t FStar_UInt128_mul_wide(uint64_t x, uint64_t y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_gcc64.h:150,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_gcc64.h:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - uint128_t
    - uint128_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 153
    functionName: FStar_UInt128_eq_mask
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_gcc64.h
    functionUses: 0
    functionsReached:
    - FStar_UInt64_eq_mask
    linkageType: ''
    returnType: uint128_t
    signature: uint128_t FStar_UInt128_eq_mask(uint128_t x, uint128_t y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt64_gte_mask
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_gcc64.h:159,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_gcc64.h:160,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_gcc64.h:161,1
    - Dst: FStar_UInt64_gte_mask
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_gcc64.h:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - uint128_t
    - uint128_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 163
    functionName: FStar_UInt128_gte_mask
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_gcc64.h
    functionUses: 0
    functionsReached:
    - FStar_UInt64_gte_mask
    - FStar_UInt64_eq_mask
    linkageType: ''
    returnType: uint128_t
    signature: uint128_t FStar_UInt128_gte_mask(uint128_t x, uint128_t y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint128_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 169
    functionName: FStar_UInt128___proj__Mkuint128__item__low
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_gcc64.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t FStar_UInt128___proj__Mkuint128__item__low(uint128_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint128_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 175
    functionName: FStar_UInt128___proj__Mkuint128__item__high
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_gcc64.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t FStar_UInt128___proj__Mkuint128__item__high(uint128_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - uint128_t
    - uint128_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 181
    functionName: FStar_UInt128_add_underspec
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_gcc64.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint128_t
    signature: uint128_t FStar_UInt128_add_underspec(uint128_t x, uint128_t y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - uint128_t
    - uint128_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 187
    functionName: FStar_UInt128_sub_underspec
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_gcc64.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint128_t
    signature: uint128_t FStar_UInt128_sub_underspec(uint128_t x, uint128_t y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - uint128_t
    - uint128_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 193
    functionName: FStar_UInt128_eq
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_gcc64.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool FStar_UInt128_eq(uint128_t x, uint128_t y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - uint128_t
    - uint128_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 199
    functionName: FStar_UInt128_gt
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_gcc64.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool FStar_UInt128_gt(uint128_t x, uint128_t y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - uint128_t
    - uint128_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 205
    functionName: FStar_UInt128_lt
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_gcc64.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool FStar_UInt128_lt(uint128_t x, uint128_t y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - uint128_t
    - uint128_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 211
    functionName: FStar_UInt128_gte
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_gcc64.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool FStar_UInt128_gte(uint128_t x, uint128_t y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - uint128_t
    - uint128_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 217
    functionName: FStar_UInt128_lte
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_gcc64.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool FStar_UInt128_lte(uint128_t x, uint128_t y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - uint64_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 223
    functionName: FStar_UInt128_mul32
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_gcc64.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint128_t
    signature: uint128_t FStar_UInt128_mul32(uint64_t x, uint32_t y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_loadu_si128
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:45,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:48,1
    - Dst: load64_le
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - b
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 52
    functionName: load128_le
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h
    functionUses: 0
    functionsReached:
    - load64_le
    - _mm_loadu_si128
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 load128_le(uint8_t *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store64_le
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:57,1
    - Dst: store64_le
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - b
    - n
    argTypes:
    - uint8_t*
    - FStar_UInt128_uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 59
    functionName: store128_le
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h
    functionUses: 0
    functionsReached:
    - store64_le
    linkageType: ''
    returnType: void
    signature: void store128_le(uint8_t *b, FStar_UInt128_uint128 n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load64_be
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:64,1
    - Dst: load64_be
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:65,1
    - Dst: _mm_set_epi64x
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - b
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 74
    functionName: load128_be
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h
    functionUses: 0
    functionsReached:
    - _mm_set_epi64x
    - load64_be
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 load128_be(uint8_t *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store64_be
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:79,1
    - Dst: store64_be
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - b
    - n
    argTypes:
    - uint8_t*
    - uint128_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 81
    functionName: store128_be
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h
    functionUses: 0
    functionsReached:
    - store64_be
    linkageType: ''
    returnType: void
    signature: void store128_be(uint8_t *b, uint128_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: FStar_UInt128_constant_time_carry
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t FStar_UInt128_constant_time_carry(uint64_t a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_constant_time_carry
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: FStar_UInt128_carry
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h
    functionUses: 6
    functionsReached:
    - FStar_UInt128_constant_time_carry
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t FStar_UInt128_carry(uint64_t a, uint64_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _addcarry_u64
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:102,1
    - Dst: _addcarry_u64
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:103,1
    - Dst: _mm_set_epi64x
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:104,1
    - Dst: FStar_UInt128_carry
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FStar_UInt128_uint128
    - FStar_UInt128_uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 111
    functionName: FStar_UInt128_add
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h
    functionUses: 6
    functionsReached:
    - FStar_UInt128_carry
    - _mm_set_epi64x
    - _addcarry_u64
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_add(FStar_UInt128_uint128 a, FStar_UInt128_uint128
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:117,1
    - Dst: FStar_UInt128_carry
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FStar_UInt128_uint128
    - FStar_UInt128_uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 124
    functionName: FStar_UInt128_add_underspec
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h
    functionUses: 0
    functionsReached:
    - FStar_UInt128_carry
    - FStar_UInt128_add
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_add_underspec(FStar_UInt128_uint128
      a, FStar_UInt128_uint128 b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_add
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:130,1
    - Dst: FStar_UInt128_carry
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FStar_UInt128_uint128
    - FStar_UInt128_uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 137
    functionName: FStar_UInt128_add_mod
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h
    functionUses: 3
    functionsReached:
    - FStar_UInt128_carry
    - FStar_UInt128_add
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_add_mod(FStar_UInt128_uint128 a,
      FStar_UInt128_uint128 b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _subborrow_u64
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:145,1
    - Dst: _subborrow_u64
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:146,1
    - Dst: _mm_set_epi64x
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:147,1
    - Dst: FStar_UInt128_carry
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FStar_UInt128_uint128
    - FStar_UInt128_uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 154
    functionName: FStar_UInt128_sub
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h
    functionUses: 0
    functionsReached:
    - FStar_UInt128_carry
    - _mm_set_epi64x
    - _subborrow_u64
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_sub(FStar_UInt128_uint128 a, FStar_UInt128_uint128
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_sub
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:160,1
    - Dst: FStar_UInt128_carry
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FStar_UInt128_uint128
    - FStar_UInt128_uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 167
    functionName: FStar_UInt128_sub_underspec
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h
    functionUses: 0
    functionsReached:
    - FStar_UInt128_sub
    - FStar_UInt128_carry
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_sub_underspec(FStar_UInt128_uint128
      a, FStar_UInt128_uint128 b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_carry
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FStar_UInt128_uint128
    - FStar_UInt128_uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 176
    functionName: FStar_UInt128_sub_mod_impl
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h
    functionUses: 1
    functionsReached:
    - FStar_UInt128_carry
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_sub_mod_impl(FStar_UInt128_uint128
      a, FStar_UInt128_uint128 b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_sub
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:182,1
    - Dst: FStar_UInt128_sub_mod_impl
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FStar_UInt128_uint128
    - FStar_UInt128_uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 186
    functionName: FStar_UInt128_sub_mod
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h
    functionUses: 1
    functionsReached:
    - FStar_UInt128_sub
    - FStar_UInt128_sub_mod_impl
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_sub_mod(FStar_UInt128_uint128 a,
      FStar_UInt128_uint128 b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_and_si128
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FStar_UInt128_uint128
    - FStar_UInt128_uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 199
    functionName: FStar_UInt128_logand
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h
    functionUses: 0
    functionsReached:
    - _mm_and_si128
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_logand(FStar_UInt128_uint128 a,
      FStar_UInt128_uint128 b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_xor_si128
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FStar_UInt128_uint128
    - FStar_UInt128_uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 212
    functionName: FStar_UInt128_logxor
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h
    functionUses: 0
    functionsReached:
    - _mm_xor_si128
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_logxor(FStar_UInt128_uint128 a,
      FStar_UInt128_uint128 b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_or_si128
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FStar_UInt128_uint128
    - FStar_UInt128_uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 225
    functionName: FStar_UInt128_logor
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h
    functionUses: 0
    functionsReached:
    - _mm_or_si128
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_logor(FStar_UInt128_uint128 a,
      FStar_UInt128_uint128 b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_andnot_si128
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - a
    argTypes:
    - FStar_UInt128_uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 238
    functionName: FStar_UInt128_lognot
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h
    functionUses: 0
    functionsReached:
    - _mm_andnot_si128
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_lognot(FStar_UInt128_uint128 a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - hi
    - lo
    - s
    argTypes:
    - uint64_t
    - uint64_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 246
    functionName: FStar_UInt128_add_u64_shift_left
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t FStar_UInt128_add_u64_shift_left(uint64_t hi, uint64_t lo,
      uint32_t s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_add_u64_shift_left
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - hi
    - lo
    - s
    argTypes:
    - uint64_t
    - uint64_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 252
    functionName: FStar_UInt128_add_u64_shift_left_respec
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h
    functionUses: 1
    functionsReached:
    - FStar_UInt128_add_u64_shift_left
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t FStar_UInt128_add_u64_shift_left_respec(uint64_t hi, uint64_t
      lo, uint32_t s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_add_u64_shift_left_respec
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - a
    - s
    argTypes:
    - FStar_UInt128_uint128
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 265
    functionName: FStar_UInt128_shift_left_small
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h
    functionUses: 1
    functionsReached:
    - FStar_UInt128_add_u64_shift_left_respec
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_shift_left_small(FStar_UInt128_uint128
      a, uint32_t s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - s
    argTypes:
    - FStar_UInt128_uint128
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 274
    functionName: FStar_UInt128_shift_left_large
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_shift_left_large(FStar_UInt128_uint128
      a, uint32_t s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __shiftleft128
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:284,1
    - Dst: _mm_set_epi64x
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:285,1
    - Dst: _mm_set_epi64x
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:287,1
    - Dst: FStar_UInt128_shift_left_small
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:291,1
    - Dst: FStar_UInt128_shift_left_large
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:293,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - a
    - s
    argTypes:
    - FStar_UInt128_uint128
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 295
    functionName: FStar_UInt128_shift_left
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h
    functionUses: 0
    functionsReached:
    - FStar_UInt128_shift_left_large
    - _mm_set_epi64x
    - __shiftleft128
    - FStar_UInt128_shift_left_small
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_shift_left(FStar_UInt128_uint128
      a, uint32_t s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - hi
    - lo
    - s
    argTypes:
    - uint64_t
    - uint64_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 301
    functionName: FStar_UInt128_add_u64_shift_right
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t FStar_UInt128_add_u64_shift_right(uint64_t hi, uint64_t lo,
      uint32_t s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_add_u64_shift_right
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - hi
    - lo
    - s
    argTypes:
    - uint64_t
    - uint64_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 307
    functionName: FStar_UInt128_add_u64_shift_right_respec
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h
    functionUses: 1
    functionsReached:
    - FStar_UInt128_add_u64_shift_right
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t FStar_UInt128_add_u64_shift_right_respec(uint64_t hi, uint64_t
      lo, uint32_t s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_add_u64_shift_right_respec
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:316,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - a
    - s
    argTypes:
    - FStar_UInt128_uint128
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 320
    functionName: FStar_UInt128_shift_right_small
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h
    functionUses: 1
    functionsReached:
    - FStar_UInt128_add_u64_shift_right_respec
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_shift_right_small(FStar_UInt128_uint128
      a, uint32_t s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - a
    - s
    argTypes:
    - FStar_UInt128_uint128
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 329
    functionName: FStar_UInt128_shift_right_large
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_shift_right_large(FStar_UInt128_uint128
      a, uint32_t s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __shiftright128
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:338,1
    - Dst: _mm_set_epi64x
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:340,1
    - Dst: _mm_set_epi64x
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:342,1
    - Dst: FStar_UInt128_shift_right_small
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:346,1
    - Dst: FStar_UInt128_shift_right_large
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:348,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - a
    - s
    argTypes:
    - FStar_UInt128_uint128
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 350
    functionName: FStar_UInt128_shift_right
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h
    functionUses: 14
    functionsReached:
    - _mm_set_epi64x
    - FStar_UInt128_shift_right_small
    - __shiftright128
    - FStar_UInt128_shift_right_large
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_shift_right(FStar_UInt128_uint128
      a, uint32_t s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FStar_UInt128_uint128
    - FStar_UInt128_uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 356
    functionName: FStar_UInt128_eq
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool FStar_UInt128_eq(FStar_UInt128_uint128 a, FStar_UInt128_uint128
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FStar_UInt128_uint128
    - FStar_UInt128_uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 362
    functionName: FStar_UInt128_gt
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool FStar_UInt128_gt(FStar_UInt128_uint128 a, FStar_UInt128_uint128
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FStar_UInt128_uint128
    - FStar_UInt128_uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 368
    functionName: FStar_UInt128_lt
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool FStar_UInt128_lt(FStar_UInt128_uint128 a, FStar_UInt128_uint128
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FStar_UInt128_uint128
    - FStar_UInt128_uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 374
    functionName: FStar_UInt128_gte
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool FStar_UInt128_gte(FStar_UInt128_uint128 a, FStar_UInt128_uint128
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FStar_UInt128_uint128
    - FStar_UInt128_uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 380
    functionName: FStar_UInt128_lte
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool FStar_UInt128_lte(FStar_UInt128_uint128 a, FStar_UInt128_uint128
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_cmpeq_epi32
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:387,1
    - Dst: _mm_shuffle_epi32
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:389,1
    - Dst: _MM_SHUFFLE
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:389,1
    - Dst: _mm_and_si128
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:391,1
    - Dst: _mm_shuffle_epi32
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:394,1
    - Dst: _MM_SHUFFLE
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:394,1
    - Dst: _mm_and_si128
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:396,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:399,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:399,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:400,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FStar_UInt128_uint128
    - FStar_UInt128_uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 403
    functionName: FStar_UInt128_eq_mask
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h
    functionUses: 0
    functionsReached:
    - _mm_cmpeq_epi32
    - FStar_UInt64_eq_mask
    - _MM_SHUFFLE
    - _mm_shuffle_epi32
    - _mm_and_si128
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_eq_mask(FStar_UInt128_uint128 a,
      FStar_UInt128_uint128 b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_cmpgt_epi32
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:413,1
    - Dst: _mm_cmpeq_epi32
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:414,1
    - Dst: _mm_or_si128
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:415,1
    - Dst: _mm_srli_si128
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:418,1
    - Dst: _mm_and_si128
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:419,1
    - Dst: _mm_or_si128
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:420,1
    - Dst: _mm_srli_si128
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:421,1
    - Dst: _mm_srli_si128
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:423,1
    - Dst: _mm_and_si128
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:425,1
    - Dst: _mm_and_si128
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:425,1
    - Dst: _mm_or_si128
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:426,1
    - Dst: _mm_srli_si128
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:427,1
    - Dst: _mm_srli_si128
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:429,1
    - Dst: _mm_and_si128
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:430,1
    - Dst: _mm_and_si128
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:431,1
    - Dst: _mm_and_si128
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:432,1
    - Dst: _mm_or_si128
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:433,1
    - Dst: _mm_shuffle_epi32
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:434,1
    - Dst: _MM_SHUFFLE
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:436,1
    - Dst: FStar_UInt64_gte_mask
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:439,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:440,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:441,1
    - Dst: FStar_UInt64_gte_mask
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:442,1
    - Dst: FStar_UInt64_gte_mask
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:443,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:444,1
    - Dst: FStar_UInt64_eq_mask
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:445,1
    - Dst: FStar_UInt64_gte_mask
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:446,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - FStar_UInt128_uint128
    - FStar_UInt128_uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 449
    functionName: FStar_UInt128_gte_mask
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h
    functionUses: 0
    functionsReached:
    - _mm_cmpeq_epi32
    - _mm_srli_si128
    - _MM_SHUFFLE
    - FStar_UInt64_eq_mask
    - _mm_shuffle_epi32
    - FStar_UInt64_gte_mask
    - _mm_and_si128
    - _mm_or_si128
    - _mm_cmpgt_epi32
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_gte_mask(FStar_UInt128_uint128
      a, FStar_UInt128_uint128 b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_set_epi64x
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - a
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 462
    functionName: FStar_UInt128_uint64_to_uint128
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h
    functionUses: 15
    functionsReached:
    - _mm_set_epi64x
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_uint64_to_uint128(uint64_t a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - FStar_UInt128_uint128
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 468
    functionName: FStar_UInt128_uint128_to_uint64
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t FStar_UInt128_uint128_to_uint64(FStar_UInt128_uint128 a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 474
    functionName: FStar_UInt128_u64_mod_32
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t FStar_UInt128_u64_mod_32(uint64_t a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hi
    - lo
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 482
    functionName: FStar_UInt128_u32_combine
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t FStar_UInt128_u32_combine(uint64_t hi, uint64_t lo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _umul128
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:489,1
    - Dst: _mm_set_epi64x
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:490,1
    - Dst: FStar_UInt128_u32_combine
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:493,1
    - Dst: FStar_UInt128_u64_mod_32
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:495,1
    - Dst: FStar_UInt128_u64_mod_32
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:497,1
    - Dst: FStar_UInt128_u64_mod_32
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:497,1
    - Dst: FStar_UInt128_u64_mod_32
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - uint64_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 504
    functionName: FStar_UInt128_mul32
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h
    functionUses: 0
    functionsReached:
    - FStar_UInt128_u32_combine
    - _mm_set_epi64x
    - FStar_UInt128_u64_mod_32
    - _umul128
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_mul32(uint64_t x, uint32_t y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_u64_mod_32
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:521,1
    - Dst: FStar_UInt128_u64_mod_32
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:522,1
    - Dst: FStar_UInt128_u64_mod_32
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:523,1
    - Dst: FStar_UInt128_u64_mod_32
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:523,1
    - Dst: FStar_UInt128_u64_mod_32
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:525,1
    - Dst: FStar_UInt128_u64_mod_32
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:526,1
    - Dst: FStar_UInt128_u64_mod_32
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 529
    functionName: FStar_UInt128_mul_wide_impl_t_
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h
    functionUses: 0
    functionsReached:
    - FStar_UInt128_u64_mod_32
    linkageType: ''
    returnType: K_quad
    signature: K_quad FStar_UInt128_mul_wide_impl_t_(uint64_t x, uint64_t y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hi
    - lo
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 535
    functionName: FStar_UInt128_u32_combine_
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t FStar_UInt128_u32_combine_(uint64_t hi, uint64_t lo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FStar_UInt128_mul_wide_impl_t_
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:541,1
    - Dst: FStar_UInt128_u32_combine_
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:547,1
    - Dst: FStar_UInt128_u64_mod_32
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:548,1
    - Dst: FStar_UInt128_u64_mod_32
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 537
    functionDepth: 1
    functionLinenumber: 537
    functionLinenumberEnd: 554
    functionName: FStar_UInt128_mul_wide_impl
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h
    functionUses: 0
    functionsReached:
    - FStar_UInt128_u32_combine_
    - FStar_UInt128_mul_wide_impl_t_
    - FStar_UInt128_u64_mod_32
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_mul_wide_impl(uint64_t x, uint64_t
      y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _umul128
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:561,1
    - Dst: _mm_set_epi64x
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:562,1
    - Dst: FStar_UInt128_mul_wide_impl
      Src: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h:564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 556
    functionDepth: 2
    functionLinenumber: 556
    functionLinenumberEnd: 566
    functionName: FStar_UInt128_mul_wide
    functionSourceFile: /src/nss/lib/freebl/verified/karamel/krmllib/dist/minimal/fstar_uint128_msvc.h
    functionUses: 12
    functionsReached:
    - _mm_set_epi64x
    - FStar_UInt128_mul_wide_impl
    - _umul128
    linkageType: ''
    returnType: FStar_UInt128_uint128
    signature: FStar_UInt128_uint128 FStar_UInt128_mul_wide(uint64_t x, uint64_t y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: BYTESWAP
    functionSourceFile: /src/nss/lib/freebl/deprecated/alg2268.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTESWAP(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: SWAPK
    functionSourceFile: /src/nss/lib/freebl/deprecated/alg2268.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWAPK(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - R
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 59
    functionName: LOAD_HARD
    functionSourceFile: /src/nss/lib/freebl/deprecated/alg2268.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_HARD(R)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - R
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 64
    functionName: LOAD_EASY
    functionSourceFile: /src/nss/lib/freebl/deprecated/alg2268.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_EASY(R)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - R
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 73
    functionName: STORE_HARD
    functionSourceFile: /src/nss/lib/freebl/deprecated/alg2268.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE_HARD(R)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - R
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: STORE_EASY
    functionSourceFile: /src/nss/lib/freebl/deprecated/alg2268.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE_EASY(R)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - R
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: LOAD
    functionSourceFile: /src/nss/lib/freebl/deprecated/alg2268.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD(R)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - R
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: STORE
    functionSourceFile: /src/nss/lib/freebl/deprecated/alg2268.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE(R)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - R
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: LOAD
    functionSourceFile: /src/nss/lib/freebl/deprecated/alg2268.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD(R)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - R
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: STORE
    functionSourceFile: /src/nss/lib/freebl/deprecated/alg2268.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE(R)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - R
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 92
    functionName: LOAD
    functionSourceFile: /src/nss/lib/freebl/deprecated/alg2268.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD(R)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - R
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 98
    functionName: STORE
    functionSourceFile: /src/nss/lib/freebl/deprecated/alg2268.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE(R)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZNew
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 123
    functionName: RC2_AllocateContext
    functionSourceFile: /src/nss/lib/freebl/deprecated/alg2268.c
    functionUses: 0
    functionsReached:
    - PORT_ZNew
    linkageType: ''
    returnType: RC2Context
    signature: 'RC2Context *

      RC2_AllocateContext(void)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:138,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:145,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:149,1
    - Dst: LOAD
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:156,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:163,1
    - Dst: SWAPK
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:186,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 7
    argNames:
    - cx
    - key
    - len
    - input
    - mode
    - efLen8
    - unused
    argTypes:
    - RC2Context*
    - unsigned char*
    - unsigned int
    - unsigned char*
    - int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 190
    functionName: RC2_InitContext
    functionSourceFile: /src/nss/lib/freebl/deprecated/alg2268.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - memcpy
    - LOAD
    - SWAPK
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus RC2_InitContext(RC2Context *cx, const unsigned char *key,
      unsigned int len,\n                const unsigned char *input, int mode, unsigned
      int efLen8,\n                unsigned int unused)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZNew
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:207,1
    - Dst: RC2_InitContext
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:209,1
    - Dst: RC2_DestroyContext
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:211,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - key
    - len
    - iv
    - mode
    - efLen8
    argTypes:
    - unsigned char*
    - unsigned int
    - unsigned char*
    - int
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 216
    functionName: RC2_CreateContext
    functionSourceFile: /src/nss/lib/freebl/deprecated/alg2268.c
    functionUses: 1
    functionsReached:
    - RC2_DestroyContext
    - RC2_InitContext
    - PORT_ZNew
    linkageType: ''
    returnType: RC2Context
    signature: "RC2Context *\nRC2_CreateContext(const unsigned char *key, unsigned
      int len,\n                  const unsigned char *iv, int mode, unsigned efLen8)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:227,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:229,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - cx
    - freeit
    argTypes:
    - RC2Context*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 232
    functionName: RC2_DestroyContext
    functionSourceFile: /src/nss/lib/freebl/deprecated/alg2268.c
    functionUses: 3
    functionsReached:
    - memset
    - PORT_Free
    linkageType: ''
    returnType: void
    signature: void RC2_DestroyContext(RC2Context *cx, PRBool freeit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - k
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 235
    functionName: ROL
    functionSourceFile: /src/nss/lib/freebl/deprecated/alg2268.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROL(x, k)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - j
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 244
    functionName: MIX
    functionSourceFile: /src/nss/lib/freebl/deprecated/alg2268.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIX(j)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MIX
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:266,1
    - Dst: MIX
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:267,1
    - Dst: MIX
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:268,1
    - Dst: MIX
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:269,1
    - Dst: MIX
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:270,1
    - Dst: MIX
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:277,1
    - Dst: MIX
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:278,1
    - Dst: MIX
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:279,1
    - Dst: MIX
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:280,1
    - Dst: MIX
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:281,1
    - Dst: MIX
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:282,1
    - Dst: MIX
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:289,1
    - Dst: MIX
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:290,1
    - Dst: MIX
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:291,1
    - Dst: MIX
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:292,1
    - Dst: MIX
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 3
    argNames:
    - cx
    - output
    - input
    argTypes:
    - RC2Context*
    - RC2Block*
    - RC2Block*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 300
    functionName: rc2_Encrypt1Block
    functionSourceFile: /src/nss/lib/freebl/deprecated/alg2268.c
    functionUses: 0
    functionsReached:
    - MIX
    linkageType: ''
    returnType: void
    signature: void rc2_Encrypt1Block(RC2Context *cx, RC2Block *output, RC2Block *input)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - k
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 303
    functionName: ROR
    functionSourceFile: /src/nss/lib/freebl/deprecated/alg2268.c
    functionUses: 341
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROR(x, k)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - j
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 312
    functionName: R_MIX
    functionSourceFile: /src/nss/lib/freebl/deprecated/alg2268.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R_MIX(j)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: R_MIX
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:333,1
    - Dst: R_MIX
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:334,1
    - Dst: R_MIX
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:335,1
    - Dst: R_MIX
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:336,1
    - Dst: R_MIX
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:337,1
    - Dst: R_MIX
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:343,1
    - Dst: R_MIX
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:344,1
    - Dst: R_MIX
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:345,1
    - Dst: R_MIX
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:346,1
    - Dst: R_MIX
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:347,1
    - Dst: R_MIX
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:348,1
    - Dst: R_MIX
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:354,1
    - Dst: R_MIX
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:355,1
    - Dst: R_MIX
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:356,1
    - Dst: R_MIX
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:357,1
    - Dst: R_MIX
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 3
    argNames:
    - cx
    - output
    - input
    argTypes:
    - RC2Context*
    - RC2Block*
    - RC2Block*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 365
    functionName: rc2_Decrypt1Block
    functionSourceFile: /src/nss/lib/freebl/deprecated/alg2268.c
    functionUses: 0
    functionsReached:
    - R_MIX
    linkageType: ''
    returnType: void
    signature: void rc2_Decrypt1Block(RC2Context *cx, RC2Block *output, RC2Block *input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOAD
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:374,1
    - Dst: rc2_Encrypt1Block
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:375,1
    - Dst: STORE
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:376,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - cx
    - output
    - input
    - inputLen
    argTypes:
    - RC2Context*
    - unsigned char*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 367
    functionDepth: 2
    functionLinenumber: 367
    functionLinenumberEnd: 382
    functionName: NO_SANITIZE_ALIGNMENT::rc2_EncryptECB
    functionSourceFile: /src/nss/lib/freebl/deprecated/alg2268.c
    functionUses: 0
    functionsReached:
    - rc2_Encrypt1Block
    - LOAD
    - STORE
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus NO_SANITIZE_ALIGNMENT\nrc2_EncryptECB(RC2Context *cx, unsigned
      char *output,\n               const unsigned char *input, unsigned int inputLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOAD
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:391,1
    - Dst: rc2_Decrypt1Block
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:392,1
    - Dst: STORE
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:393,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - cx
    - output
    - input
    - inputLen
    argTypes:
    - RC2Context*
    - unsigned char*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 384
    functionDepth: 2
    functionLinenumber: 384
    functionLinenumberEnd: 399
    functionName: NO_SANITIZE_ALIGNMENT::rc2_DecryptECB
    functionSourceFile: /src/nss/lib/freebl/deprecated/alg2268.c
    functionUses: 0
    functionsReached:
    - LOAD
    - rc2_Decrypt1Block
    - STORE
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus NO_SANITIZE_ALIGNMENT\nrc2_DecryptECB(RC2Context *cx, unsigned
      char *output,\n               const unsigned char *input, unsigned int inputLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOAD
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:409,1
    - Dst: rc2_Encrypt1Block
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:412,1
    - Dst: STORE
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:414,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - cx
    - output
    - input
    - inputLen
    argTypes:
    - RC2Context*
    - unsigned char*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 401
    functionDepth: 2
    functionLinenumber: 401
    functionLinenumberEnd: 420
    functionName: NO_SANITIZE_ALIGNMENT::rc2_EncryptCBC
    functionSourceFile: /src/nss/lib/freebl/deprecated/alg2268.c
    functionUses: 0
    functionsReached:
    - rc2_Encrypt1Block
    - LOAD
    - STORE
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus NO_SANITIZE_ALIGNMENT\nrc2_EncryptCBC(RC2Context *cx, unsigned
      char *output,\n               const unsigned char *input, unsigned int inputLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOAD
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:430,1
    - Dst: rc2_Decrypt1Block
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:431,1
    - Dst: STORE
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:435,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - cx
    - output
    - input
    - inputLen
    argTypes:
    - RC2Context*
    - unsigned char*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 422
    functionDepth: 2
    functionLinenumber: 422
    functionLinenumberEnd: 441
    functionName: NO_SANITIZE_ALIGNMENT::rc2_DecryptCBC
    functionSourceFile: /src/nss/lib/freebl/deprecated/alg2268.c
    functionUses: 0
    functionsReached:
    - LOAD
    - rc2_Decrypt1Block
    - STORE
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus NO_SANITIZE_ALIGNMENT\nrc2_DecryptCBC(RC2Context *cx, unsigned
      char *output,\n               const unsigned char *input, unsigned int inputLen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:462,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:466,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 6
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - RC2Context*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 475
    functionName: RC2_Encrypt
    functionSourceFile: /src/nss/lib/freebl/deprecated/alg2268.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus RC2_Encrypt(RC2Context *cx, unsigned char *output,\n            unsigned
      int *outputLen, unsigned int maxOutputLen,\n            const unsigned char
      *input, unsigned int inputLen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:496,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/deprecated/alg2268.c:500,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 6
    argNames:
    - cx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - RC2Context*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 509
    functionName: RC2_Decrypt
    functionSourceFile: /src/nss/lib/freebl/deprecated/alg2268.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus RC2_Decrypt(RC2Context *cx, unsigned char *output,\n            unsigned
      int *outputLen, unsigned int maxOutputLen,\n            const unsigned char
      *input, unsigned int inputLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: char2word
      Src: /src/nss/lib/freebl/deprecated/seed.c:304,1
    - Dst: char2word
      Src: /src/nss/lib/freebl/deprecated/seed.c:305,1
    - Dst: char2word
      Src: /src/nss/lib/freebl/deprecated/seed.c:306,1
    - Dst: char2word
      Src: /src/nss/lib/freebl/deprecated/seed.c:307,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/nss/lib/freebl/deprecated/seed.c:311,1
    - Dst: KEYSCHEDULE_UPDATE1
      Src: /src/nss/lib/freebl/deprecated/seed.c:312,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/nss/lib/freebl/deprecated/seed.c:313,1
    - Dst: KEYSCHEDULE_UPDATE0
      Src: /src/nss/lib/freebl/deprecated/seed.c:314,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/nss/lib/freebl/deprecated/seed.c:315,1
    - Dst: KEYSCHEDULE_UPDATE1
      Src: /src/nss/lib/freebl/deprecated/seed.c:316,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/nss/lib/freebl/deprecated/seed.c:317,1
    - Dst: KEYSCHEDULE_UPDATE0
      Src: /src/nss/lib/freebl/deprecated/seed.c:318,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/nss/lib/freebl/deprecated/seed.c:319,1
    - Dst: KEYSCHEDULE_UPDATE1
      Src: /src/nss/lib/freebl/deprecated/seed.c:320,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/nss/lib/freebl/deprecated/seed.c:321,1
    - Dst: KEYSCHEDULE_UPDATE0
      Src: /src/nss/lib/freebl/deprecated/seed.c:322,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/nss/lib/freebl/deprecated/seed.c:323,1
    - Dst: KEYSCHEDULE_UPDATE1
      Src: /src/nss/lib/freebl/deprecated/seed.c:324,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/nss/lib/freebl/deprecated/seed.c:325,1
    - Dst: KEYSCHEDULE_UPDATE0
      Src: /src/nss/lib/freebl/deprecated/seed.c:326,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/nss/lib/freebl/deprecated/seed.c:327,1
    - Dst: KEYSCHEDULE_UPDATE1
      Src: /src/nss/lib/freebl/deprecated/seed.c:328,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/nss/lib/freebl/deprecated/seed.c:329,1
    - Dst: KEYSCHEDULE_UPDATE0
      Src: /src/nss/lib/freebl/deprecated/seed.c:330,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/nss/lib/freebl/deprecated/seed.c:331,1
    - Dst: KEYSCHEDULE_UPDATE1
      Src: /src/nss/lib/freebl/deprecated/seed.c:332,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/nss/lib/freebl/deprecated/seed.c:333,1
    - Dst: KEYSCHEDULE_UPDATE0
      Src: /src/nss/lib/freebl/deprecated/seed.c:334,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/nss/lib/freebl/deprecated/seed.c:335,1
    - Dst: KEYSCHEDULE_UPDATE1
      Src: /src/nss/lib/freebl/deprecated/seed.c:336,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/nss/lib/freebl/deprecated/seed.c:337,1
    - Dst: KEYSCHEDULE_UPDATE0
      Src: /src/nss/lib/freebl/deprecated/seed.c:338,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/nss/lib/freebl/deprecated/seed.c:339,1
    - Dst: KEYSCHEDULE_UPDATE1
      Src: /src/nss/lib/freebl/deprecated/seed.c:340,1
    - Dst: KEYUPDATE_TEMP
      Src: /src/nss/lib/freebl/deprecated/seed.c:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 2
    argNames:
    - rawkey
    - ks
    argTypes:
    - unsigned char[]
    - SEED_KEY_SCHEDULE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 342
    functionName: SEED_set_key
    functionSourceFile: /src/nss/lib/freebl/deprecated/seed.c
    functionUses: 0
    functionsReached:
    - KEYSCHEDULE_UPDATE1
    - KEYSCHEDULE_UPDATE0
    - KEYUPDATE_TEMP
    - char2word
    linkageType: ''
    returnType: void
    signature: "void SEED_set_key(const unsigned char rawkey[SEED_KEY_LENGTH],\n             SEED_KEY_SCHEDULE
      *ks)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: char2word
      Src: /src/nss/lib/freebl/deprecated/seed.c:352,1
    - Dst: char2word
      Src: /src/nss/lib/freebl/deprecated/seed.c:353,1
    - Dst: char2word
      Src: /src/nss/lib/freebl/deprecated/seed.c:354,1
    - Dst: char2word
      Src: /src/nss/lib/freebl/deprecated/seed.c:355,1
    - Dst: E_SEED
      Src: /src/nss/lib/freebl/deprecated/seed.c:357,1
    - Dst: E_SEED
      Src: /src/nss/lib/freebl/deprecated/seed.c:358,1
    - Dst: E_SEED
      Src: /src/nss/lib/freebl/deprecated/seed.c:359,1
    - Dst: E_SEED
      Src: /src/nss/lib/freebl/deprecated/seed.c:360,1
    - Dst: E_SEED
      Src: /src/nss/lib/freebl/deprecated/seed.c:361,1
    - Dst: E_SEED
      Src: /src/nss/lib/freebl/deprecated/seed.c:362,1
    - Dst: E_SEED
      Src: /src/nss/lib/freebl/deprecated/seed.c:363,1
    - Dst: E_SEED
      Src: /src/nss/lib/freebl/deprecated/seed.c:364,1
    - Dst: E_SEED
      Src: /src/nss/lib/freebl/deprecated/seed.c:365,1
    - Dst: E_SEED
      Src: /src/nss/lib/freebl/deprecated/seed.c:366,1
    - Dst: E_SEED
      Src: /src/nss/lib/freebl/deprecated/seed.c:367,1
    - Dst: E_SEED
      Src: /src/nss/lib/freebl/deprecated/seed.c:368,1
    - Dst: E_SEED
      Src: /src/nss/lib/freebl/deprecated/seed.c:369,1
    - Dst: E_SEED
      Src: /src/nss/lib/freebl/deprecated/seed.c:370,1
    - Dst: E_SEED
      Src: /src/nss/lib/freebl/deprecated/seed.c:371,1
    - Dst: E_SEED
      Src: /src/nss/lib/freebl/deprecated/seed.c:372,1
    - Dst: word2char
      Src: /src/nss/lib/freebl/deprecated/seed.c:374,1
    - Dst: word2char
      Src: /src/nss/lib/freebl/deprecated/seed.c:375,1
    - Dst: word2char
      Src: /src/nss/lib/freebl/deprecated/seed.c:376,1
    - Dst: word2char
      Src: /src/nss/lib/freebl/deprecated/seed.c:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 3
    argNames:
    - s
    - d
    - ks
    argTypes:
    - unsigned char[]
    - unsigned char[]
    - SEED_KEY_SCHEDULE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 344
    functionDepth: 1
    functionLinenumber: 344
    functionLinenumberEnd: 378
    functionName: SEED_encrypt
    functionSourceFile: /src/nss/lib/freebl/deprecated/seed.c
    functionUses: 0
    functionsReached:
    - E_SEED
    - word2char
    - char2word
    linkageType: ''
    returnType: void
    signature: "void SEED_encrypt(const unsigned char s[SEED_BLOCK_SIZE],\n             unsigned
      char d[SEED_BLOCK_SIZE],\n             const SEED_KEY_SCHEDULE *ks)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: char2word
      Src: /src/nss/lib/freebl/deprecated/seed.c:388,1
    - Dst: char2word
      Src: /src/nss/lib/freebl/deprecated/seed.c:389,1
    - Dst: char2word
      Src: /src/nss/lib/freebl/deprecated/seed.c:390,1
    - Dst: char2word
      Src: /src/nss/lib/freebl/deprecated/seed.c:391,1
    - Dst: E_SEED
      Src: /src/nss/lib/freebl/deprecated/seed.c:393,1
    - Dst: E_SEED
      Src: /src/nss/lib/freebl/deprecated/seed.c:394,1
    - Dst: E_SEED
      Src: /src/nss/lib/freebl/deprecated/seed.c:395,1
    - Dst: E_SEED
      Src: /src/nss/lib/freebl/deprecated/seed.c:396,1
    - Dst: E_SEED
      Src: /src/nss/lib/freebl/deprecated/seed.c:397,1
    - Dst: E_SEED
      Src: /src/nss/lib/freebl/deprecated/seed.c:398,1
    - Dst: E_SEED
      Src: /src/nss/lib/freebl/deprecated/seed.c:399,1
    - Dst: E_SEED
      Src: /src/nss/lib/freebl/deprecated/seed.c:400,1
    - Dst: E_SEED
      Src: /src/nss/lib/freebl/deprecated/seed.c:401,1
    - Dst: E_SEED
      Src: /src/nss/lib/freebl/deprecated/seed.c:402,1
    - Dst: E_SEED
      Src: /src/nss/lib/freebl/deprecated/seed.c:403,1
    - Dst: E_SEED
      Src: /src/nss/lib/freebl/deprecated/seed.c:404,1
    - Dst: E_SEED
      Src: /src/nss/lib/freebl/deprecated/seed.c:405,1
    - Dst: E_SEED
      Src: /src/nss/lib/freebl/deprecated/seed.c:406,1
    - Dst: E_SEED
      Src: /src/nss/lib/freebl/deprecated/seed.c:407,1
    - Dst: E_SEED
      Src: /src/nss/lib/freebl/deprecated/seed.c:408,1
    - Dst: word2char
      Src: /src/nss/lib/freebl/deprecated/seed.c:410,1
    - Dst: word2char
      Src: /src/nss/lib/freebl/deprecated/seed.c:411,1
    - Dst: word2char
      Src: /src/nss/lib/freebl/deprecated/seed.c:412,1
    - Dst: word2char
      Src: /src/nss/lib/freebl/deprecated/seed.c:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 3
    argNames:
    - s
    - d
    - ks
    argTypes:
    - unsigned char[]
    - unsigned char[]
    - SEED_KEY_SCHEDULE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 414
    functionName: SEED_decrypt
    functionSourceFile: /src/nss/lib/freebl/deprecated/seed.c
    functionUses: 0
    functionsReached:
    - E_SEED
    - word2char
    - char2word
    linkageType: ''
    returnType: void
    signature: "void SEED_decrypt(const unsigned char s[SEED_BLOCK_SIZE],\n             unsigned
      char d[SEED_BLOCK_SIZE],\n             const SEED_KEY_SCHEDULE *ks)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SEED_encrypt
      Src: /src/nss/lib/freebl/deprecated/seed.c:424,1
    - Dst: SEED_decrypt
      Src: /src/nss/lib/freebl/deprecated/seed.c:431,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 5
    argNames:
    - in
    - out
    - inLen
    - ks
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - SEED_KEY_SCHEDULE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 416
    functionDepth: 2
    functionLinenumber: 416
    functionLinenumberEnd: 437
    functionName: SEED_ecb_encrypt
    functionSourceFile: /src/nss/lib/freebl/deprecated/seed.c
    functionUses: 0
    functionsReached:
    - SEED_decrypt
    - SEED_encrypt
    linkageType: ''
    returnType: void
    signature: "void SEED_ecb_encrypt(const unsigned char *in,\n                 unsigned
      char *out,\n                 size_t inLen,\n                 const SEED_KEY_SCHEDULE
      *ks, int enc)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SEED_encrypt
      Src: /src/nss/lib/freebl/deprecated/seed.c:454,1
    - Dst: SEED_encrypt
      Src: /src/nss/lib/freebl/deprecated/seed.c:470,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/deprecated/seed.c:474,1
    - Dst: SEED_decrypt
      Src: /src/nss/lib/freebl/deprecated/seed.c:477,1
    - Dst: SEED_decrypt
      Src: /src/nss/lib/freebl/deprecated/seed.c:490,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/deprecated/seed.c:499,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/deprecated/seed.c:502,1
    - Dst: SEED_decrypt
      Src: /src/nss/lib/freebl/deprecated/seed.c:503,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/deprecated/seed.c:509,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/deprecated/seed.c:516,1
    - Dst: SEED_decrypt
      Src: /src/nss/lib/freebl/deprecated/seed.c:517,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/deprecated/seed.c:523,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 64
    argCount: 6
    argNames:
    - in
    - out
    - len
    - ks
    - ivec
    - enc
    argTypes:
    - unsigned char*
    - unsigned char*
    - size_t
    - SEED_KEY_SCHEDULE*
    - unsigned char[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 439
    functionDepth: 2
    functionLinenumber: 439
    functionLinenumberEnd: 526
    functionName: SEED_cbc_encrypt
    functionSourceFile: /src/nss/lib/freebl/deprecated/seed.c
    functionUses: 0
    functionsReached:
    - SEED_decrypt
    - memcpy
    - SEED_encrypt
    linkageType: ''
    returnType: void
    signature: "void SEED_cbc_encrypt(const unsigned char *in, unsigned char *out,\n
      \                size_t len, const SEED_KEY_SCHEDULE *ks,\n                 unsigned
      char ivec[SEED_BLOCK_SIZE], int enc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZNew
      Src: /src/nss/lib/freebl/deprecated/seed.c:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 528
    functionDepth: 1
    functionLinenumber: 528
    functionLinenumberEnd: 532
    functionName: SEED_AllocateContext
    functionSourceFile: /src/nss/lib/freebl/deprecated/seed.c
    functionUses: 0
    functionsReached:
    - PORT_ZNew
    linkageType: ''
    returnType: SEEDContext
    signature: 'SEEDContext *

      SEED_AllocateContext(void)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/deprecated/seed.c:540,1
    - Dst: SEED_set_key
      Src: /src/nss/lib/freebl/deprecated/seed.c:546,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/deprecated/seed.c:552,1
    - Dst: SEED_set_key
      Src: /src/nss/lib/freebl/deprecated/seed.c:553,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/deprecated/seed.c:559,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 7
    argNames:
    - cx
    - key
    - keylen
    - iv
    - mode
    - encrypt
    - unused
    argTypes:
    - SEEDContext*
    - unsigned char*
    - unsigned int
    - unsigned char*
    - int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 534
    functionDepth: 2
    functionLinenumber: 534
    functionLinenumberEnd: 564
    functionName: SEED_InitContext
    functionSourceFile: /src/nss/lib/freebl/deprecated/seed.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - memcpy
    - SEED_set_key
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SEED_InitContext(SEEDContext *cx, const unsigned char *key,\n
      \                unsigned int keylen, const unsigned char *iv,\n                 int
      mode, unsigned int encrypt, unsigned int unused)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZNew
      Src: /src/nss/lib/freebl/deprecated/seed.c:570,1
    - Dst: SEED_InitContext
      Src: /src/nss/lib/freebl/deprecated/seed.c:571,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/freebl/deprecated/seed.c:575,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - key
    - iv
    - mode
    - encrypt
    argTypes:
    - unsigned char*
    - unsigned char*
    - int
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 566
    functionDepth: 1
    functionLinenumber: 566
    functionLinenumberEnd: 580
    functionName: SEED_CreateContext
    functionSourceFile: /src/nss/lib/freebl/deprecated/seed.c
    functionUses: 1
    functionsReached:
    - PORT_ZFree
    - SEED_InitContext
    - PORT_ZNew
    linkageType: ''
    returnType: SEEDContext
    signature: "SEEDContext *\nSEED_CreateContext(const unsigned char *key, const
      unsigned char *iv,\n                   int mode, PRBool encrypt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/freebl/deprecated/seed.c:586,1
    - Dst: PORT_Free
      Src: /src/nss/lib/freebl/deprecated/seed.c:589,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - cx
    - freeit
    argTypes:
    - SEEDContext*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 582
    functionDepth: 0
    functionLinenumber: 582
    functionLinenumberEnd: 591
    functionName: SEED_DestroyContext
    functionSourceFile: /src/nss/lib/freebl/deprecated/seed.c
    functionUses: 2
    functionsReached:
    - memset
    - PORT_Free
    linkageType: ''
    returnType: void
    signature: void SEED_DestroyContext(SEEDContext *cx, PRBool freeit)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/deprecated/seed.c:599,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/deprecated/seed.c:605,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/deprecated/seed.c:610,1
    - Dst: SEED_ecb_encrypt
      Src: /src/nss/lib/freebl/deprecated/seed.c:616,1
    - Dst: SEED_cbc_encrypt
      Src: /src/nss/lib/freebl/deprecated/seed.c:621,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/deprecated/seed.c:626,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 6
    argNames:
    - cx
    - out
    - outLen
    - maxOutLen
    - in
    - inLen
    argTypes:
    - SEEDContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 593
    functionDepth: 3
    functionLinenumber: 593
    functionLinenumberEnd: 631
    functionName: SEED_Encrypt
    functionSourceFile: /src/nss/lib/freebl/deprecated/seed.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    - SEED_cbc_encrypt
    - SEED_ecb_encrypt
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SEED_Encrypt(SEEDContext *cx, unsigned char *out, unsigned
      int *outLen,\n             unsigned int maxOutLen, const unsigned char *in,\n
      \            unsigned int inLen)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/deprecated/seed.c:639,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/deprecated/seed.c:645,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/deprecated/seed.c:650,1
    - Dst: SEED_ecb_encrypt
      Src: /src/nss/lib/freebl/deprecated/seed.c:656,1
    - Dst: SEED_cbc_encrypt
      Src: /src/nss/lib/freebl/deprecated/seed.c:661,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/deprecated/seed.c:666,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 6
    argNames:
    - cx
    - out
    - outLen
    - maxOutLen
    - in
    - inLen
    argTypes:
    - SEEDContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 633
    functionDepth: 3
    functionLinenumber: 633
    functionLinenumberEnd: 671
    functionName: SEED_Decrypt
    functionSourceFile: /src/nss/lib/freebl/deprecated/seed.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    - SEED_cbc_encrypt
    - SEED_ecb_encrypt
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SEED_Decrypt(SEEDContext *cx, unsigned char *out, unsigned
      int *outLen,\n             unsigned int maxOutLen, const unsigned char *in,\n
      \            unsigned int inLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 22
    functionName: G_FUNC
    functionSourceFile: /src/nss/lib/freebl/deprecated/seed.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: G_FUNC(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: char2word
    functionSourceFile: /src/nss/lib/freebl/deprecated/seed.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: char2word(c, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: word2char
    functionSourceFile: /src/nss/lib/freebl/deprecated/seed.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: word2char(l, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - T0
    - ','
    - T1
    - ','
    - K0
    - ','
    - K1
    - ','
    - K2
    - ','
    - K3
    - ','
    - KC
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 41
    functionName: KEYSCHEDULE_UPDATE0
    functionSourceFile: /src/nss/lib/freebl/deprecated/seed.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KEYSCHEDULE_UPDATE0(T0, T1, K0, K1, K2, K3, KC)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - T0
    - ','
    - T1
    - ','
    - K0
    - ','
    - K1
    - ','
    - K2
    - ','
    - K3
    - ','
    - KC
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 48
    functionName: KEYSCHEDULE_UPDATE1
    functionSourceFile: /src/nss/lib/freebl/deprecated/seed.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KEYSCHEDULE_UPDATE1(T0, T1, K0, K1, K2, K3, KC)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - T0
    - ','
    - T1
    - ','
    - K
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: KEYUPDATE_TEMP
    functionSourceFile: /src/nss/lib/freebl/deprecated/seed.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KEYUPDATE_TEMP(T0, T1, K)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - DST
    - ','
    - SRC
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 58
    functionName: XOR_SEEDBLOCK
    functionSourceFile: /src/nss/lib/freebl/deprecated/seed.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XOR_SEEDBLOCK(DST, SRC)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - DST
    - ','
    - SRC
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 64
    functionName: MOV_SEEDBLOCK
    functionSourceFile: /src/nss/lib/freebl/deprecated/seed.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MOV_SEEDBLOCK(DST, SRC)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - C
    - ','
    - I
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 70
    functionName: CHAR2WORD
    functionSourceFile: /src/nss/lib/freebl/deprecated/seed.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHAR2WORD(C, I)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - I
    - ','
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 76
    functionName: WORD2CHAR
    functionSourceFile: /src/nss/lib/freebl/deprecated/seed.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WORD2CHAR(I, C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - T0
    - ','
    - T1
    - ','
    - X1
    - ','
    - X2
    - ','
    - X3
    - ','
    - X4
    - ','
    - rbase
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 89
    functionName: E_SEED
    functionSourceFile: /src/nss/lib/freebl/deprecated/seed.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: E_SEED(T0, T1, X1, X2, X3, X4, rbase)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_diag_little
      Src: /src/nss/lib/freebl/mpi/mpi_hp.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pa
    - a_len
    - ps
    argTypes:
    - mp_digit*
    - mp_size
    - mp_digit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: s_mpv_sqr_add_prop
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi_hp.c
    functionUses: 0
    functionsReached:
    - add_diag_little
    linkageType: ''
    returnType: void
    signature: void s_mpv_sqr_add_prop(const mp_digit *pa, mp_size a_len, mp_digit
      *ps)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/nss/lib/freebl/mpi/mpi_hp.c:52,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/mpi/mpi_hp.c:56,1
    - Dst: s_mp_setz
      Src: /src/nss/lib/freebl/mpi/mpi_hp.c:59,1
    - Dst: HP_MPY_ADD_FN
      Src: /src/nss/lib/freebl/mpi/mpi_hp.c:60,1
    - Dst: memset
      Src: /src/nss/lib/freebl/mpi/mpi_hp.c:62,1
    - Dst: free
      Src: /src/nss/lib/freebl/mpi/mpi_hp.c:63,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - a
    - a_len
    - b
    - c
    argTypes:
    - mp_digit*
    - mp_size
    - mp_digit
    - mp_digit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 65
    functionName: s_mpv_mul_d
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi_hp.c
    functionUses: 0
    functionsReached:
    - malloc
    - free
    - memcpy
    - HP_MPY_ADD_FN
    - s_mp_setz
    - memset
    linkageType: ''
    returnType: void
    signature: void s_mpv_mul_d(const mp_digit *a, mp_size a_len, mp_digit b, mp_digit
      *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HP_MPY_ADD_FN
      Src: /src/nss/lib/freebl/mpi/mpi_hp.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - a
    - a_len
    - b
    - c
    argTypes:
    - mp_digit*
    - mp_size
    - mp_digit
    - mp_digit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 73
    functionName: s_mpv_mul_d_add
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi_hp.c
    functionUses: 0
    functionsReached:
    - HP_MPY_ADD_FN
    linkageType: ''
    returnType: void
    signature: void s_mpv_mul_d_add(const mp_digit *a, mp_size a_len, mp_digit b,
      mp_digit *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HP_MPY_ADD_FN
      Src: /src/nss/lib/freebl/mpi/mpi_hp.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - a
    - a_len
    - b
    - c
    argTypes:
    - mp_digit*
    - mp_size
    - mp_digit
    - mp_digit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 81
    functionName: s_mpv_mul_d_add_prop
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi_hp.c
    functionUses: 0
    functionsReached:
    - HP_MPY_ADD_FN
    linkageType: ''
    returnType: void
    signature: "void s_mpv_mul_d_add_prop(const mp_digit *a, mp_size a_len, mp_digit
      b,\n                     mp_digit *c)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: floor
    functionSourceFile: /src/nss/lib/freebl/mpi/montmulf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: floor(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: floor
      Src: /src/nss/lib/freebl/mpi/montmulf.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: upper32
    functionSourceFile: /src/nss/lib/freebl/mpi/montmulf.c
    functionUses: 0
    functionsReached:
    - floor
    linkageType: ''
    returnType: double
    signature: double upper32(double x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: floor
      Src: /src/nss/lib/freebl/mpi/montmulf.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: lower32
    functionSourceFile: /src/nss/lib/freebl/mpi/montmulf.c
    functionUses: 0
    functionsReached:
    - floor
    linkageType: ''
    returnType: double
    signature: double lower32(double x, double y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: floor
      Src: /src/nss/lib/freebl/mpi/montmulf.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - oneoverm
    - m
    argTypes:
    - double
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: mod
    functionSourceFile: /src/nss/lib/freebl/mpi/montmulf.c
    functionUses: 49
    functionsReached:
    - floor
    linkageType: ''
    returnType: double
    signature: double mod(double x, double oneoverm, double m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lower32
      Src: /src/nss/lib/freebl/mpi/montmulf.c:77,1
    - Dst: lower32
      Src: /src/nss/lib/freebl/mpi/montmulf.c:78,1
    - Dst: upper32
      Src: /src/nss/lib/freebl/mpi/montmulf.c:79,1
    - Dst: upper32
      Src: /src/nss/lib/freebl/mpi/montmulf.c:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - dt
    - from
    - tlen
    argTypes:
    - double*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 83
    functionName: cleanup
    functionSourceFile: /src/nss/lib/freebl/mpi/montmulf.c
    functionUses: 0
    functionsReached:
    - upper32
    - lower32
    linkageType: ''
    returnType: void
    signature: void cleanup(double *dt, int from, int tlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 4
    argNames:
    - i32
    - d16
    - tmp
    - ilen
    argTypes:
    - unsigned int*
    - double*
    - long long*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 110
    functionName: conv_d16_to_i32
    functionSourceFile: /src/nss/lib/freebl/mpi/montmulf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void conv_d16_to_i32(unsigned int *i32, double *d16, long long *tmp,
      int ilen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - d32
    - i32
    - len
    argTypes:
    - double*
    - unsigned int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 120
    functionName: conv_i32_to_d32
    functionSourceFile: /src/nss/lib/freebl/mpi/montmulf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void conv_i32_to_d32(double *d32, unsigned int *i32, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - d16
    - i32
    - len
    argTypes:
    - double*
    - unsigned int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 134
    functionName: conv_i32_to_d16
    functionSourceFile: /src/nss/lib/freebl/mpi/montmulf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void conv_i32_to_d16(double *d16, unsigned int *i32, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: i16_to_d16_and_d32x4
      Src: /src/nss/lib/freebl/mpi/montmulf.c:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - d32
    - d16
    - i32
    - len
    argTypes:
    - double*
    - double*
    - unsigned int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 156
    functionName: conv_i32_to_d32_and_d16
    functionSourceFile: /src/nss/lib/freebl/mpi/montmulf.c
    functionUses: 0
    functionsReached:
    - i16_to_d16_and_d32x4
    linkageType: ''
    returnType: void
    signature: "void conv_i32_to_d32_and_d16(double *d32, double *d16,\n                        unsigned
      int *i32, int len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 3
    argNames:
    - i32
    - nint
    - len
    argTypes:
    - unsigned int*
    - unsigned int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 180
    functionName: adjust_montf_result
    functionSourceFile: /src/nss/lib/freebl/mpi/montmulf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void adjust_montf_result(unsigned int *i32, unsigned int *nint, int
      len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mod
      Src: /src/nss/lib/freebl/mpi/montmulf.c:209,1
    - Dst: lower32
      Src: /src/nss/lib/freebl/mpi/montmulf.c:209,1
    - Dst: cleanup
      Src: /src/nss/lib/freebl/mpi/montmulf.c:223,1
    - Dst: mod
      Src: /src/nss/lib/freebl/mpi/montmulf.c:227,1
    - Dst: lower32
      Src: /src/nss/lib/freebl/mpi/montmulf.c:227,1
    - Dst: mod
      Src: /src/nss/lib/freebl/mpi/montmulf.c:247,1
    - Dst: lower32
      Src: /src/nss/lib/freebl/mpi/montmulf.c:247,1
    - Dst: mod
      Src: /src/nss/lib/freebl/mpi/montmulf.c:279,1
    - Dst: lower32
      Src: /src/nss/lib/freebl/mpi/montmulf.c:279,1
    - Dst: conv_d16_to_i32
      Src: /src/nss/lib/freebl/mpi/montmulf.c:283,1
    - Dst: adjust_montf_result
      Src: /src/nss/lib/freebl/mpi/montmulf.c:285,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 57
    argCount: 8
    argNames:
    - result
    - dm1
    - dm2
    - dt
    - dn
    - nint
    - nlen
    - dn0
    argTypes:
    - unsigned int*
    - double*
    - double*
    - double*
    - double*
    - unsigned int*
    - int
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 188
    functionDepth: 3
    functionLinenumber: 188
    functionLinenumberEnd: 286
    functionName: mont_mulf_noconv
    functionSourceFile: /src/nss/lib/freebl/mpi/montmulf.c
    functionUses: 0
    functionsReached:
    - conv_d16_to_i32
    - adjust_montf_result
    - cleanup
    - mod
    - lower32
    linkageType: ''
    returnType: void
    signature: "void mont_mulf_noconv(unsigned int *result,\n                 double
      *dm1, double *dm2, double *dt,\n                 double *dn, unsigned int *nint,\n
      \                int nlen, double dn0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - w
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: gf2m_SQR1
    functionSourceFile: /src/nss/lib/freebl/mpi/mp_gf2m-priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gf2m_SQR1(w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - w
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: gf2m_SQR0
    functionSourceFile: /src/nss/lib/freebl/mpi/mp_gf2m-priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gf2m_SQR0(w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - w
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: gf2m_SQR1
    functionSourceFile: /src/nss/lib/freebl/mpi/mp_gf2m-priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gf2m_SQR1(w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - w
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 43
    functionName: gf2m_SQR0
    functionSourceFile: /src/nss/lib/freebl/mpi/mp_gf2m-priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gf2m_SQR0(w)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 54
    argCount: 4
    argNames:
    - rh
    - rl
    - a
    - b
    argTypes:
    - mp_digit*
    - mp_digit*
    - mp_digit
    - mp_digit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 86
    functionName: s_bmul_1x1
    functionSourceFile: /src/nss/lib/freebl/mpi/mp_gf2m.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void s_bmul_1x1(mp_digit *rh, mp_digit *rl, const mp_digit a, const
      mp_digit b)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 82
    argCount: 4
    argNames:
    - rh
    - rl
    - a
    - b
    argTypes:
    - mp_digit*
    - mp_digit*
    - mp_digit
    - mp_digit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 181
    functionName: s_bmul_1x1
    functionSourceFile: /src/nss/lib/freebl/mpi/mp_gf2m.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void s_bmul_1x1(mp_digit *rh, mp_digit *rl, const mp_digit a, const
      mp_digit b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s_bmul_1x1
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:194,1
    - Dst: s_bmul_1x1
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:195,1
    - Dst: s_bmul_1x1
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - r
    - a1
    - a0
    - b1
    - b0
    argTypes:
    - mp_digit*
    - mp_digit
    - mp_digit
    - mp_digit
    - mp_digit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 200
    functionName: s_bmul_2x2
    functionSourceFile: /src/nss/lib/freebl/mpi/mp_gf2m.c
    functionUses: 0
    functionsReached:
    - s_bmul_1x1
    linkageType: ''
    returnType: void
    signature: "void s_bmul_2x2(mp_digit *r, const mp_digit a1, const mp_digit a0,
      const mp_digit b1,\n           const mp_digit b0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s_bmul_1x1
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:212,1
    - Dst: s_bmul_2x2
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:213,1
    - Dst: s_bmul_2x2
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 7
    argNames:
    - r
    - a2
    - a1
    - a0
    - b2
    - b1
    - b0
    argTypes:
    - mp_digit*
    - mp_digit
    - mp_digit
    - mp_digit
    - mp_digit
    - mp_digit
    - mp_digit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 225
    functionName: s_bmul_3x3
    functionSourceFile: /src/nss/lib/freebl/mpi/mp_gf2m.c
    functionUses: 0
    functionsReached:
    - s_bmul_2x2
    - s_bmul_1x1
    linkageType: ''
    returnType: void
    signature: "void s_bmul_3x3(mp_digit *r, const mp_digit a2, const mp_digit a1,
      const mp_digit a0,\n           const mp_digit b2, const mp_digit b1, const mp_digit
      b0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s_bmul_2x2
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:238,1
    - Dst: s_bmul_2x2
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:239,1
    - Dst: s_bmul_2x2
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 9
    argNames:
    - r
    - a3
    - a2
    - a1
    - a0
    - b3
    - b2
    - b1
    - b0
    argTypes:
    - mp_digit*
    - mp_digit
    - mp_digit
    - mp_digit
    - mp_digit
    - mp_digit
    - mp_digit
    - mp_digit
    - mp_digit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 251
    functionName: s_bmul_4x4
    functionSourceFile: /src/nss/lib/freebl/mpi/mp_gf2m.c
    functionUses: 0
    functionsReached:
    - s_bmul_2x2
    linkageType: ''
    returnType: void
    signature: "void s_bmul_4x4(mp_digit *r, const mp_digit a3, const mp_digit a2,
      const mp_digit a1,\n           const mp_digit a0, const mp_digit b3, const mp_digit
      b2, const mp_digit b1,\n           const mp_digit b0)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:268,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:268,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:269,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:270,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:271,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:272,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:274,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:275,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:276,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:277,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:281,1
    - Dst: s_mp_pad
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:281,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:284,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:294,1
    - Dst: MP_SIGN
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:295,1
    - Dst: s_mp_clamp
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:296,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - mp_int*
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 300
    functionName: mp_badd
    functionSourceFile: /src/nss/lib/freebl/mpi/mp_gf2m.c
    functionUses: 0
    functionsReached:
    - MP_CHECKOK
    - s_mp_clamp
    - MP_SIGN
    - s_mp_pad
    - MP_USED
    - MP_DIGITS
    linkageType: ''
    returnType: mp_err
    signature: mp_err mp_badd(const mp_int *a, const mp_int *b, mp_int *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 303
    functionName: s_mp_div2
    functionSourceFile: /src/nss/lib/freebl/mpi/mp_gf2m.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: s_mp_div2(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s_bmul_1x1
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:311,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - a
    - a_len
    - b
    - d
    argTypes:
    - mp_digit*
    - mp_size
    - mp_digit
    - mp_digit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 316
    functionName: s_bmul_d
    functionSourceFile: /src/nss/lib/freebl/mpi/mp_gf2m.c
    functionUses: 0
    functionsReached:
    - s_bmul_1x1
    linkageType: ''
    returnType: void
    signature: void s_bmul_d(const mp_digit *a, mp_size a_len, mp_digit b, mp_digit
      *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s_bmul_1x1
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - a
    - a_len
    - b
    - d
    argTypes:
    - mp_digit*
    - mp_size
    - mp_digit
    - mp_digit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 330
    functionName: s_bmul_d_add
    functionSourceFile: /src/nss/lib/freebl/mpi/mp_gf2m.c
    functionUses: 0
    functionsReached:
    - s_bmul_1x1
    linkageType: ''
    returnType: void
    signature: void s_bmul_d_add(const mp_digit *a, mp_size a_len, mp_digit b, mp_digit
      *d)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:343,1
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:345,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:348,1
    - Dst: mp_init_copy
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:348,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:353,1
    - Dst: mp_init_copy
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:353,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:357,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:357,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:363,1
    - Dst: MP_DIGIT
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:364,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:365,1
    - Dst: s_mp_pad
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:365,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:365,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:365,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:367,1
    - Dst: s_bmul_d
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:368,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:368,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:368,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:368,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:371,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:372,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:373,1
    - Dst: s_bmul_d_add
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:379,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:379,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:379,1
    - Dst: MP_DIGIT
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:381,1
    - Dst: s_mp_clamp
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:384,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:386,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:389,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - mp_int*
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 335
    functionDepth: 2
    functionLinenumber: 335
    functionLinenumberEnd: 391
    functionName: mp_bmul
    functionSourceFile: /src/nss/lib/freebl/mpi/mp_gf2m.c
    functionUses: 0
    functionsReached:
    - MP_CHECKOK
    - s_bmul_d
    - USED
    - ARGCHK
    - s_mp_clamp
    - s_bmul_d_add
    - s_mp_pad
    - MP_USED
    - mp_init_copy
    - mp_clear
    - MP_DIGIT
    - SIGN
    - MP_DIGITS
    linkageType: ''
    returnType: mp_err
    signature: mp_err mp_bmul(const mp_int *a, const mp_int *b, mp_int *c)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:413,1
    - Dst: mp_copy
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:413,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:415,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:420,1
    - Dst: s_mp_clamp
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:486,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 3
    argNames:
    - a
    - p
    - r
    argTypes:
    - mp_int*
    - unsigned int[]
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 489
    functionName: mp_bmod
    functionSourceFile: /src/nss/lib/freebl/mpi/mp_gf2m.c
    functionUses: 0
    functionsReached:
    - MP_CHECKOK
    - s_mp_clamp
    - mp_copy
    - MP_USED
    - MP_DIGITS
    linkageType: ''
    returnType: mp_err
    signature: mp_err mp_bmod(const mp_int *a, const unsigned int p[], mp_int *r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mp_bsqrmod
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:500,1
    - Dst: mp_bmul
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:501,1
    - Dst: mp_bmod
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:503,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - a
    - b
    - p
    - r
    argTypes:
    - mp_int*
    - mp_int*
    - unsigned int[]
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 494
    functionDepth: 3
    functionLinenumber: 494
    functionLinenumberEnd: 504
    functionName: mp_bmulmod
    functionSourceFile: /src/nss/lib/freebl/mpi/mp_gf2m.c
    functionUses: 0
    functionsReached:
    - mp_bmod
    - mp_bmul
    - mp_bsqrmod
    linkageType: ''
    returnType: mp_err
    signature: mp_err mp_bmulmod(const mp_int *a, const mp_int *b, const unsigned
      int p[], mp_int *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:518,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:519,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:522,1
    - Dst: mp_init_copy
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:522,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:526,1
    - Dst: MP_DIGIT
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:527,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:528,1
    - Dst: s_mp_pad
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:528,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:528,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:530,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:531,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:532,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:533,1
    - Dst: gf2m_SQR0
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:537,1
    - Dst: gf2m_SQR1
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:538,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:541,1
    - Dst: mp_bmod
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:541,1
    - Dst: s_mp_clamp
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:542,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:543,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:546,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 3
    argNames:
    - a
    - p
    - r
    argTypes:
    - mp_int*
    - unsigned int[]
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 510
    functionDepth: 2
    functionLinenumber: 510
    functionLinenumberEnd: 548
    functionName: mp_bsqrmod
    functionSourceFile: /src/nss/lib/freebl/mpi/mp_gf2m.c
    functionUses: 1
    functionsReached:
    - MP_CHECKOK
    - USED
    - ARGCHK
    - s_mp_clamp
    - s_mp_pad
    - gf2m_SQR0
    - gf2m_SQR1
    - MP_USED
    - mp_init_copy
    - mp_clear
    - mp_bmod
    - MP_DIGIT
    - SIGN
    - MP_DIGITS
    linkageType: ''
    returnType: mp_err
    signature: mp_err mp_bsqrmod(const mp_int *a, const unsigned int p[], mp_int *r)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:564,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:565,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:566,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:568,1
    - Dst: mp_init_copy
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:568,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:569,1
    - Dst: mp_init_copy
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:569,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:570,1
    - Dst: mp_init_copy
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:570,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:571,1
    - Dst: s_mp_pad
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:571,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:571,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:572,1
    - Dst: MP_DIGIT
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:573,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:580,1
    - Dst: mp_bmod
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:580,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:581,1
    - Dst: mp_bmod
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:581,1
    - Dst: mp_isodd
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:583,1
    - Dst: s_mp_div2
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:584,1
    - Dst: mp_isodd
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:585,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:586,1
    - Dst: mp_badd
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:586,1
    - Dst: s_mp_div2
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:588,1
    - Dst: mp_cmp_mag
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:592,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:593,1
    - Dst: mp_badd
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:593,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:594,1
    - Dst: mp_badd
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:594,1
    - Dst: s_mp_div2
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:596,1
    - Dst: mp_isodd
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:597,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:598,1
    - Dst: mp_badd
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:598,1
    - Dst: s_mp_div2
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:600,1
    - Dst: mp_isodd
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:601,1
    - Dst: MP_DIGIT
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:602,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:602,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:605,1
    - Dst: mp_badd
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:605,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:606,1
    - Dst: mp_badd
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:606,1
    - Dst: s_mp_div2
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:608,1
    - Dst: mp_isodd
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:609,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:610,1
    - Dst: mp_badd
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:610,1
    - Dst: s_mp_div2
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:612,1
    - Dst: mp_isodd
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:613,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:617,1
    - Dst: mp_copy
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:617,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:620,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:621,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:622,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 55
    argCount: 5
    argNames:
    - y
    - x
    - pp
    - p
    - r
    argTypes:
    - mp_int*
    - mp_int*
    - mp_int*
    - unsigned int[]
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 556
    functionDepth: 2
    functionLinenumber: 556
    functionLinenumberEnd: 624
    functionName: mp_bdivmod
    functionSourceFile: /src/nss/lib/freebl/mpi/mp_gf2m.c
    functionUses: 0
    functionsReached:
    - MP_CHECKOK
    - USED
    - mp_badd
    - s_mp_pad
    - mp_cmp_mag
    - s_mp_div2
    - mp_copy
    - MP_USED
    - mp_init_copy
    - mp_isodd
    - mp_bmod
    - MP_DIGIT
    - mp_clear
    - MP_DIGITS
    linkageType: ''
    returnType: int
    signature: "int mp_bdivmod(const mp_int *y, const mp_int *x, const mp_int *pp,\n
      \          const unsigned int p[], mp_int *r)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:644,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:647,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - a
    - p
    - max
    argTypes:
    - mp_int*
    - unsigned int[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 631
    functionDepth: 1
    functionLinenumber: 631
    functionLinenumberEnd: 657
    functionName: mp_bpoly2arr
    functionSourceFile: /src/nss/lib/freebl/mpi/mp_gf2m.c
    functionUses: 0
    functionsReached:
    - MP_DIGITS
    - MP_USED
    linkageType: ''
    returnType: int
    signature: int mp_bpoly2arr(const mp_int *a, unsigned int p[], int max)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mp_zero
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:669,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:671,1
    - Dst: mpl_set_bit
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:671,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:673,1
    - Dst: mpl_set_bit
      Src: /src/nss/lib/freebl/mpi/mp_gf2m.c:673,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - p
    - a
    argTypes:
    - unsigned int[]
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 662
    functionDepth: 1
    functionLinenumber: 662
    functionLinenumberEnd: 677
    functionName: mp_barr2poly
    functionSourceFile: /src/nss/lib/freebl/mpi/mp_gf2m.c
    functionUses: 0
    functionsReached:
    - MP_CHECKOK
    - mp_zero
    - mpl_set_bit
    linkageType: ''
    returnType: mp_err
    signature: mp_err mp_barr2poly(const unsigned int p[], mp_int *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - Phi
    - ','
    - Plo
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 33
    functionName: MP_MUL_DxD
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi_sparc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MP_MUL_DxD(a, b, Phi, Plo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ACCUM
      Src: /src/nss/lib/freebl/mpi/mpi_sparc.c:44,1
    - Dst: CARRYOUT
      Src: /src/nss/lib/freebl/mpi/mpi_sparc.c:45,1
    - Dst: MP_MUL_DxD
      Src: /src/nss/lib/freebl/mpi/mpi_sparc.c:54,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - a
    - a_len
    - b
    - c
    argTypes:
    - mp_digit*
    - mp_size
    - mp_digit
    - mp_digit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 64
    functionName: v8_mpv_mul_d
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi_sparc.c
    functionUses: 0
    functionsReached:
    - ACCUM
    - MP_MUL_DxD
    - CARRYOUT
    linkageType: ''
    returnType: void
    signature: void v8_mpv_mul_d(const mp_digit *a, mp_size a_len, mp_digit b, mp_digit
      *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ACCUM
      Src: /src/nss/lib/freebl/mpi/mpi_sparc.c:76,1
    - Dst: CARRYOUT
      Src: /src/nss/lib/freebl/mpi/mpi_sparc.c:77,1
    - Dst: MP_MUL_DxD
      Src: /src/nss/lib/freebl/mpi/mpi_sparc.c:86,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - a
    - a_len
    - b
    - c
    argTypes:
    - mp_digit*
    - mp_size
    - mp_digit
    - mp_digit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 99
    functionName: v8_mpv_mul_d_add
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi_sparc.c
    functionUses: 0
    functionsReached:
    - ACCUM
    - MP_MUL_DxD
    - CARRYOUT
    linkageType: ''
    returnType: void
    signature: void v8_mpv_mul_d_add(const mp_digit *a, mp_size a_len, mp_digit b,
      mp_digit *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ACCUM
      Src: /src/nss/lib/freebl/mpi/mpi_sparc.c:112,1
    - Dst: CARRYOUT
      Src: /src/nss/lib/freebl/mpi/mpi_sparc.c:113,1
    - Dst: ACCUM
      Src: /src/nss/lib/freebl/mpi/mpi_sparc.c:118,1
    - Dst: CARRYOUT
      Src: /src/nss/lib/freebl/mpi/mpi_sparc.c:119,1
    - Dst: MP_MUL_DxD
      Src: /src/nss/lib/freebl/mpi/mpi_sparc.c:127,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 4
    argNames:
    - a
    - a_len
    - b
    - c
    argTypes:
    - mp_digit*
    - mp_size
    - mp_digit
    - mp_digit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 147
    functionName: v8_mpv_mul_d_add_prop
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi_sparc.c
    functionUses: 0
    functionsReached:
    - ACCUM
    - MP_MUL_DxD
    - CARRYOUT
    linkageType: ''
    returnType: void
    signature: void v8_mpv_mul_d_add_prop(const mp_digit *a, mp_size a_len, mp_digit
      b, mp_digit *c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/mpi/mpi_sparc.c:161,1
    - Dst: s_mp_setz
      Src: /src/nss/lib/freebl/mpi/mpi_sparc.c:167,1
    - Dst: mul_add_inp
      Src: /src/nss/lib/freebl/mpi/mpi_sparc.c:168,1
    - Dst: v8_mpv_mul_d
      Src: /src/nss/lib/freebl/mpi/mpi_sparc.c:171,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - a
    - a_len
    - b
    - c
    argTypes:
    - mp_digit*
    - mp_size
    - mp_digit
    - mp_digit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 173
    functionName: s_mpv_mul_d
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi_sparc.c
    functionUses: 0
    functionsReached:
    - mul_add_inp
    - memcpy
    - s_mp_setz
    - v8_mpv_mul_d
    linkageType: ''
    returnType: void
    signature: void s_mpv_mul_d(const mp_digit *a, mp_size a_len, mp_digit b, mp_digit
      *c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/mpi/mpi_sparc.c:185,1
    - Dst: mul_add_inp
      Src: /src/nss/lib/freebl/mpi/mpi_sparc.c:191,1
    - Dst: v8_mpv_mul_d_add
      Src: /src/nss/lib/freebl/mpi/mpi_sparc.c:194,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - a
    - a_len
    - b
    - c
    argTypes:
    - mp_digit*
    - mp_size
    - mp_digit
    - mp_digit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 196
    functionName: s_mpv_mul_d_add
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi_sparc.c
    functionUses: 0
    functionsReached:
    - mul_add_inp
    - memcpy
    - v8_mpv_mul_d_add
    linkageType: ''
    returnType: void
    signature: void s_mpv_mul_d_add(const mp_digit *a, mp_size a_len, mp_digit b,
      mp_digit *c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/mpi/mpi_sparc.c:208,1
    - Dst: mul_add_inp
      Src: /src/nss/lib/freebl/mpi/mpi_sparc.c:214,1
    - Dst: v8_mpv_mul_d_add_prop
      Src: /src/nss/lib/freebl/mpi/mpi_sparc.c:224,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - a
    - a_len
    - b
    - c
    argTypes:
    - mp_digit*
    - mp_size
    - mp_digit
    - mp_digit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 199
    functionDepth: 2
    functionLinenumber: 199
    functionLinenumberEnd: 226
    functionName: s_mpv_mul_d_add_prop
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi_sparc.c
    functionUses: 0
    functionsReached:
    - mul_add_inp
    - memcpy
    - v8_mpv_mul_d_add_prop
    linkageType: ''
    returnType: void
    signature: void s_mpv_mul_d_add_prop(const mp_digit *a, mp_size a_len, mp_digit
      b, mp_digit *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - farg
    - ','
    - darg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 190
    functionName: vis_fmul8x16
    functionSourceFile: /src/nss/lib/freebl/mpi/vis_proto.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vis_fmul8x16(farg, darg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 226
    functionName: vis_fcmplt16
    functionSourceFile: /src/nss/lib/freebl/mpi/vis_proto.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vis_fcmplt16(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 227
    functionName: vis_fcmplt32
    functionSourceFile: /src/nss/lib/freebl/mpi/vis_proto.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vis_fcmplt32(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 228
    functionName: vis_fcmpge16
    functionSourceFile: /src/nss/lib/freebl/mpi/vis_proto.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vis_fcmpge16(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 229
    functionName: vis_fcmpge32
    functionSourceFile: /src/nss/lib/freebl/mpi/vis_proto.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vis_fcmpge32(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 75
    functionName: mp_get_prec
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mp_size
    signature: mp_size mp_get_prec(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - prec
    argTypes:
    - mp_size
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 85
    functionName: mp_set_prec
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mp_set_prec(mp_size prec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VALGRIND_MAKE_MEM_UNDEFINED
      Src: /src/nss/lib/freebl/mpi/mpi.c:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - mp
    argTypes:
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 97
    functionName: mp_taint
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 0
    functionsReached:
    - VALGRIND_MAKE_MEM_UNDEFINED
    linkageType: ''
    returnType: void
    signature: void mp_taint(mp_int *mp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VALGRIND_MAKE_MEM_DEFINED
      Src: /src/nss/lib/freebl/mpi/mpi.c:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - mp
    argTypes:
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 106
    functionName: mp_untaint
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 0
    functionsReached:
    - VALGRIND_MAKE_MEM_DEFINED
    linkageType: ''
    returnType: void
    signature: void mp_untaint(mp_int *mp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mp_init_size
      Src: /src/nss/lib/freebl/mpi/mpi.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mp
    argTypes:
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 124
    functionName: mp_init
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 80
    functionsReached:
    - mp_init_size
    linkageType: ''
    returnType: mp_err
    signature: mp_err mp_init(mp_int *mp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:141,1
    - Dst: MP_ROUNDUP
      Src: /src/nss/lib/freebl/mpi/mpi.c:143,1
    - Dst: DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:144,1
    - Dst: s_mp_alloc
      Src: /src/nss/lib/freebl/mpi/mpi.c:144,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:147,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:148,1
    - Dst: ALLOC
      Src: /src/nss/lib/freebl/mpi/mpi.c:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - mp
    - prec
    argTypes:
    - mp_int*
    - mp_size
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 153
    functionName: mp_init_size
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 2
    functionsReached:
    - ALLOC
    - MP_ROUNDUP
    - USED
    - ARGCHK
    - s_mp_alloc
    - DIGITS
    - SIGN
    linkageType: ''
    returnType: mp_err
    signature: mp_err mp_init_size(mp_int *mp, mp_size prec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:170,1
    - Dst: DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:175,1
    - Dst: s_mp_alloc
      Src: /src/nss/lib/freebl/mpi/mpi.c:175,1
    - Dst: ALLOC
      Src: /src/nss/lib/freebl/mpi/mpi.c:175,1
    - Dst: s_mp_copy
      Src: /src/nss/lib/freebl/mpi/mpi.c:178,1
    - Dst: DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:178,1
    - Dst: DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:178,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:178,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:179,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:179,1
    - Dst: ALLOC
      Src: /src/nss/lib/freebl/mpi/mpi.c:180,1
    - Dst: ALLOC
      Src: /src/nss/lib/freebl/mpi/mpi.c:180,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:181,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:181,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - mp
    - from
    argTypes:
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 185
    functionName: mp_init_copy
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 4
    functionsReached:
    - s_mp_copy
    - ALLOC
    - USED
    - ARGCHK
    - s_mp_alloc
    - DIGITS
    - SIGN
    linkageType: ''
    returnType: mp_err
    signature: mp_err mp_init_copy(mp_int *mp, const mp_int *from)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:202,1
    - Dst: ALLOC
      Src: /src/nss/lib/freebl/mpi/mpi.c:217,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:217,1
    - Dst: s_mp_setz
      Src: /src/nss/lib/freebl/mpi/mpi.c:218,1
    - Dst: DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:218,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:218,1
    - Dst: ALLOC
      Src: /src/nss/lib/freebl/mpi/mpi.c:218,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:218,1
    - Dst: s_mp_copy
      Src: /src/nss/lib/freebl/mpi/mpi.c:219,1
    - Dst: DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:219,1
    - Dst: DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:219,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:219,1
    - Dst: s_mp_alloc
      Src: /src/nss/lib/freebl/mpi/mpi.c:222,1
    - Dst: ALLOC
      Src: /src/nss/lib/freebl/mpi/mpi.c:222,1
    - Dst: s_mp_copy
      Src: /src/nss/lib/freebl/mpi/mpi.c:225,1
    - Dst: DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:225,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:225,1
    - Dst: DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:227,1
    - Dst: s_mp_setz
      Src: /src/nss/lib/freebl/mpi/mpi.c:228,1
    - Dst: DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:228,1
    - Dst: ALLOC
      Src: /src/nss/lib/freebl/mpi/mpi.c:228,1
    - Dst: s_mp_free
      Src: /src/nss/lib/freebl/mpi/mpi.c:229,1
    - Dst: DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:229,1
    - Dst: DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:232,1
    - Dst: ALLOC
      Src: /src/nss/lib/freebl/mpi/mpi.c:233,1
    - Dst: ALLOC
      Src: /src/nss/lib/freebl/mpi/mpi.c:233,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:237,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:237,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:238,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:238,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - from
    - to
    argTypes:
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 243
    functionName: mp_copy
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 10
    functionsReached:
    - ALLOC
    - s_mp_copy
    - USED
    - ARGCHK
    - s_mp_setz
    - s_mp_alloc
    - s_mp_free
    - DIGITS
    - SIGN
    linkageType: ''
    returnType: mp_err
    signature: mp_err mp_copy(const mp_int *from, mp_int *to)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/freebl/mpi/mpi.c:261,1
    - Dst: s_mp_exch
      Src: /src/nss/lib/freebl/mpi/mpi.c:267,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - mp1
    - mp2
    argTypes:
    - mp_int*
    - mp_int*
    assertStmts:
    - condition: (mp1 != NULL && mp2 != NULL)
      pos:
        line_end: 260
        line_start: 260
        source_file: /src/nss/lib/freebl/mpi/mpi.c
    constantsTouched: []
    func_position:
      end: 269
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 269
    functionName: mp_exch
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 5
    functionsReached:
    - assert
    - s_mp_exch
    linkageType: ''
    returnType: void
    signature: void mp_exch(mp_int *mp1, mp_int *mp2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:289,1
    - Dst: s_mp_setz
      Src: /src/nss/lib/freebl/mpi/mpi.c:290,1
    - Dst: DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:290,1
    - Dst: ALLOC
      Src: /src/nss/lib/freebl/mpi/mpi.c:290,1
    - Dst: s_mp_free
      Src: /src/nss/lib/freebl/mpi/mpi.c:291,1
    - Dst: DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:291,1
    - Dst: DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:292,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - mp
    argTypes:
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 298
    functionName: mp_clear
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 84
    functionsReached:
    - ALLOC
    - DIGITS
    - s_mp_setz
    - s_mp_free
    linkageType: ''
    returnType: void
    signature: void mp_clear(mp_int *mp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 295
    functionName: USED
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void USED(mp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 296
    functionName: ALLOC
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ALLOC(mp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: s_mp_setz
      Src: /src/nss/lib/freebl/mpi/mpi.c:316,1
    - Dst: DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:316,1
    - Dst: ALLOC
      Src: /src/nss/lib/freebl/mpi/mpi.c:316,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:317,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - mp
    argTypes:
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 320
    functionName: mp_zero
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 8
    functionsReached:
    - ALLOC
    - USED
    - s_mp_setz
    - DIGITS
    - SIGN
    linkageType: ''
    returnType: void
    signature: void mp_zero(mp_int *mp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mp_zero
      Src: /src/nss/lib/freebl/mpi/mpi.c:332,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:333,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mp
    - d
    argTypes:
    - mp_int*
    - mp_digit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 326
    functionDepth: 2
    functionLinenumber: 326
    functionLinenumberEnd: 335
    functionName: mp_set
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 2
    functionsReached:
    - mp_zero
    - DIGIT
    linkageType: ''
    returnType: void
    signature: void mp_set(mp_int *mp, mp_digit d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: labs
      Src: /src/nss/lib/freebl/mpi/mpi.c:344,1
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:347,1
    - Dst: mp_set_ulong
      Src: /src/nss/lib/freebl/mpi/mpi.c:350,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:355,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - mp
    - z
    argTypes:
    - mp_int*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 359
    functionName: mp_set_int
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 4
    functionsReached:
    - ARGCHK
    - labs
    - mp_set_ulong
    - SIGN
    linkageType: ''
    returnType: mp_err
    signature: mp_err mp_set_int(mp_int *mp, long z)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:371,1
    - Dst: mp_zero
      Src: /src/nss/lib/freebl/mpi/mpi.c:373,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:378,1
    - Dst: s_mp_mul_d
      Src: /src/nss/lib/freebl/mpi/mpi.c:381,1
    - Dst: s_mp_add_d
      Src: /src/nss/lib/freebl/mpi/mpi.c:384,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - mp
    - z
    argTypes:
    - mp_int*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 365
    functionDepth: 2
    functionLinenumber: 365
    functionLinenumberEnd: 390
    functionName: mp_set_ulong
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 2
    functionsReached:
    - DIGIT
    - s_mp_add_d
    - ARGCHK
    - mp_zero
    - s_mp_mul_d
    linkageType: ''
    returnType: mp_err
    signature: mp_err mp_set_ulong(mp_int *mp, unsigned long z)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:412,1
    - Dst: mp_init_copy
      Src: /src/nss/lib/freebl/mpi/mpi.c:414,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:417,1
    - Dst: s_mp_add_d
      Src: /src/nss/lib/freebl/mpi/mpi.c:418,1
    - Dst: s_mp_cmp_d
      Src: /src/nss/lib/freebl/mpi/mpi.c:420,1
    - Dst: s_mp_sub_d
      Src: /src/nss/lib/freebl/mpi/mpi.c:421,1
    - Dst: mp_neg
      Src: /src/nss/lib/freebl/mpi/mpi.c:424,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:426,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:426,1
    - Dst: s_mp_cmp_d
      Src: /src/nss/lib/freebl/mpi/mpi.c:429,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:430,1
    - Dst: s_mp_exch
      Src: /src/nss/lib/freebl/mpi/mpi.c:432,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpi.c:435,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 3
    argNames:
    - a
    - d
    - b
    argTypes:
    - mp_int*
    - mp_digit
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 406
    functionDepth: 2
    functionLinenumber: 406
    functionLinenumberEnd: 438
    functionName: mp_add_d
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 9
    functionsReached:
    - s_mp_add_d
    - mp_neg
    - s_mp_cmp_d
    - DIGIT
    - ARGCHK
    - s_mp_exch
    - s_mp_sub_d
    - mp_init_copy
    - SIGN
    - mp_clear
    linkageType: ''
    returnType: mp_err
    signature: mp_err mp_add_d(const mp_int *a, mp_digit d, mp_int *b)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:457,1
    - Dst: mp_init_copy
      Src: /src/nss/lib/freebl/mpi/mpi.c:459,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:462,1
    - Dst: s_mp_add_d
      Src: /src/nss/lib/freebl/mpi/mpi.c:463,1
    - Dst: s_mp_cmp_d
      Src: /src/nss/lib/freebl/mpi/mpi.c:465,1
    - Dst: s_mp_sub_d
      Src: /src/nss/lib/freebl/mpi/mpi.c:466,1
    - Dst: mp_neg
      Src: /src/nss/lib/freebl/mpi/mpi.c:469,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:471,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:471,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:472,1
    - Dst: s_mp_cmp_d
      Src: /src/nss/lib/freebl/mpi/mpi.c:475,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:476,1
    - Dst: s_mp_exch
      Src: /src/nss/lib/freebl/mpi/mpi.c:478,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpi.c:481,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - a
    - d
    - b
    argTypes:
    - mp_int*
    - mp_digit
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 451
    functionDepth: 2
    functionLinenumber: 451
    functionLinenumberEnd: 484
    functionName: mp_sub_d
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 16
    functionsReached:
    - s_mp_add_d
    - mp_neg
    - s_mp_cmp_d
    - DIGIT
    - ARGCHK
    - s_mp_exch
    - s_mp_sub_d
    - mp_init_copy
    - SIGN
    - mp_clear
    linkageType: ''
    returnType: mp_err
    signature: mp_err mp_sub_d(const mp_int *a, mp_digit d, mp_int *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:502,1
    - Dst: mp_zero
      Src: /src/nss/lib/freebl/mpi/mpi.c:505,1
    - Dst: mp_copy
      Src: /src/nss/lib/freebl/mpi/mpi.c:509,1
    - Dst: s_mp_mul_d
      Src: /src/nss/lib/freebl/mpi/mpi.c:512,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - a
    - d
    - b
    argTypes:
    - mp_int*
    - mp_digit
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 497
    functionDepth: 2
    functionLinenumber: 497
    functionLinenumberEnd: 516
    functionName: mp_mul_d
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 4
    functionsReached:
    - ARGCHK
    - mp_zero
    - s_mp_mul_d
    - mp_copy
    linkageType: ''
    returnType: mp_err
    signature: mp_err mp_mul_d(const mp_int *a, mp_digit d, mp_int *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:527,1
    - Dst: mp_copy
      Src: /src/nss/lib/freebl/mpi/mpi.c:529,1
    - Dst: s_mp_mul_2
      Src: /src/nss/lib/freebl/mpi/mpi.c:532,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - a
    - c
    argTypes:
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 522
    functionDepth: 2
    functionLinenumber: 522
    functionLinenumberEnd: 534
    functionName: mp_mul_2
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 2
    functionsReached:
    - ARGCHK
    - s_mp_mul_2
    - mp_copy
    linkageType: ''
    returnType: mp_err
    signature: mp_err mp_mul_2(const mp_int *a, mp_int *c)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:556,1
    - Dst: s_mp_ispow2d
      Src: /src/nss/lib/freebl/mpi/mpi.c:562,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:566,1
    - Dst: mp_copy
      Src: /src/nss/lib/freebl/mpi/mpi.c:569,1
    - Dst: s_mp_div_2d
      Src: /src/nss/lib/freebl/mpi/mpi.c:572,1
    - Dst: mp_init_copy
      Src: /src/nss/lib/freebl/mpi/mpi.c:581,1
    - Dst: s_mp_div_d
      Src: /src/nss/lib/freebl/mpi/mpi.c:584,1
    - Dst: s_mp_cmp_d
      Src: /src/nss/lib/freebl/mpi/mpi.c:586,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:587,1
    - Dst: s_mp_exch
      Src: /src/nss/lib/freebl/mpi/mpi.c:594,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpi.c:596,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 4
    argNames:
    - a
    - d
    - q
    - r
    argTypes:
    - mp_int*
    - mp_digit
    - mp_int*
    - mp_digit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 548
    functionDepth: 2
    functionLinenumber: 548
    functionLinenumberEnd: 599
    functionName: mp_div_d
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 2
    functionsReached:
    - DIGIT
    - s_mp_cmp_d
    - s_mp_div_2d
    - ARGCHK
    - s_mp_exch
    - mp_copy
    - s_mp_ispow2d
    - s_mp_div_d
    - mp_init_copy
    - SIGN
    - mp_clear
    linkageType: ''
    returnType: mp_err
    signature: mp_err mp_div_d(const mp_int *a, mp_digit d, mp_int *q, mp_digit *r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:616,1
    - Dst: mp_copy
      Src: /src/nss/lib/freebl/mpi/mpi.c:618,1
    - Dst: s_mp_div_2
      Src: /src/nss/lib/freebl/mpi/mpi.c:621,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - c
    argTypes:
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 611
    functionDepth: 2
    functionLinenumber: 611
    functionLinenumberEnd: 625
    functionName: mp_div_2
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 4
    functionsReached:
    - ARGCHK
    - mp_copy
    - s_mp_div_2
    linkageType: ''
    returnType: mp_err
    signature: mp_err mp_div_2(const mp_int *a, mp_int *c)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:637,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/mpi/mpi.c:639,1
    - Dst: mp_init_copy
      Src: /src/nss/lib/freebl/mpi/mpi.c:641,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:644,1
    - Dst: s_mp_mul
      Src: /src/nss/lib/freebl/mpi/mpi.c:648,1
    - Dst: s_mp_sqr
      Src: /src/nss/lib/freebl/mpi/mpi.c:654,1
    - Dst: s_mp_exch
      Src: /src/nss/lib/freebl/mpi/mpi.c:658,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpi.c:661,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpi.c:663,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 3
    argNames:
    - a
    - d
    - c
    argTypes:
    - mp_int*
    - mp_digit
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 631
    functionDepth: 2
    functionLinenumber: 631
    functionLinenumberEnd: 667
    functionName: mp_expt_d
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 1
    functionsReached:
    - mp_init
    - DIGIT
    - ARGCHK
    - s_mp_exch
    - s_mp_mul
    - mp_init_copy
    - s_mp_sqr
    - mp_clear
    linkageType: ''
    returnType: mp_err
    signature: mp_err mp_expt_d(const mp_int *a, mp_digit d, mp_int *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:689,1
    - Dst: mp_copy
      Src: /src/nss/lib/freebl/mpi/mpi.c:691,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:694,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 684
    functionDepth: 2
    functionLinenumber: 684
    functionLinenumberEnd: 698
    functionName: mp_abs
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 1
    functionsReached:
    - ARGCHK
    - SIGN
    - mp_copy
    linkageType: ''
    returnType: mp_err
    signature: mp_err mp_abs(const mp_int *a, mp_int *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:715,1
    - Dst: mp_copy
      Src: /src/nss/lib/freebl/mpi/mpi.c:717,1
    - Dst: s_mp_cmp_d
      Src: /src/nss/lib/freebl/mpi/mpi.c:720,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:721,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:723,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:723,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 710
    functionDepth: 2
    functionLinenumber: 710
    functionLinenumberEnd: 727
    functionName: mp_neg
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 3
    functionsReached:
    - ARGCHK
    - SIGN
    - s_mp_cmp_d
    - mp_copy
    linkageType: ''
    returnType: mp_err
    signature: mp_err mp_neg(const mp_int *a, mp_int *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:744,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:746,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:746,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:747,1
    - Dst: s_mp_add_3arg
      Src: /src/nss/lib/freebl/mpi/mpi.c:747,1
    - Dst: s_mp_cmp
      Src: /src/nss/lib/freebl/mpi/mpi.c:748,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:749,1
    - Dst: s_mp_sub_3arg
      Src: /src/nss/lib/freebl/mpi/mpi.c:749,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:751,1
    - Dst: s_mp_sub_3arg
      Src: /src/nss/lib/freebl/mpi/mpi.c:751,1
    - Dst: s_mp_cmp_d
      Src: /src/nss/lib/freebl/mpi/mpi.c:754,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:755,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - mp_int*
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 739
    functionDepth: 1
    functionLinenumber: 739
    functionLinenumberEnd: 760
    functionName: mp_add
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 6
    functionsReached:
    - MP_CHECKOK
    - s_mp_cmp
    - s_mp_cmp_d
    - ARGCHK
    - s_mp_add_3arg
    - s_mp_sub_3arg
    - SIGN
    linkageType: ''
    returnType: mp_err
    signature: mp_err mp_add(const mp_int *a, const mp_int *b, mp_int *c)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:778,1
    - Dst: mp_zero
      Src: /src/nss/lib/freebl/mpi/mpi.c:781,1
    - Dst: MP_SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:785,1
    - Dst: MP_SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:785,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:786,1
    - Dst: s_mp_add_3arg
      Src: /src/nss/lib/freebl/mpi/mpi.c:786,1
    - Dst: s_mp_cmp
      Src: /src/nss/lib/freebl/mpi/mpi.c:787,1
    - Dst: mp_zero
      Src: /src/nss/lib/freebl/mpi/mpi.c:788,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:791,1
    - Dst: s_mp_sub_3arg
      Src: /src/nss/lib/freebl/mpi/mpi.c:791,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:793,1
    - Dst: s_mp_sub_3arg
      Src: /src/nss/lib/freebl/mpi/mpi.c:793,1
    - Dst: MP_SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:794,1
    - Dst: MP_SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:794,1
    - Dst: s_mp_cmp_d
      Src: /src/nss/lib/freebl/mpi/mpi.c:797,1
    - Dst: MP_SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:798,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - mp_int*
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 772
    functionDepth: 2
    functionLinenumber: 772
    functionLinenumberEnd: 803
    functionName: mp_sub
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 7
    functionsReached:
    - MP_CHECKOK
    - s_mp_cmp
    - s_mp_cmp_d
    - ARGCHK
    - MP_SIGN
    - s_mp_add_3arg
    - mp_zero
    - s_mp_sub_3arg
    linkageType: ''
    returnType: mp_err
    signature: mp_err mp_sub(const mp_int *a, const mp_int *b, mp_int *c)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:826,1
    - Dst: mp_init_copy
      Src: /src/nss/lib/freebl/mpi/mpi.c:829,1
    - Dst: mp_init_copy
      Src: /src/nss/lib/freebl/mpi/mpi.c:835,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:839,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:842,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:842,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:848,1
    - Dst: MP_DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:849,1
    - Dst: s_mp_pad
      Src: /src/nss/lib/freebl/mpi/mpi.c:850,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:850,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:850,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:861,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:861,1
    - Dst: IS_POWER_OF_2
      Src: /src/nss/lib/freebl/mpi/mpi.c:861,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:861,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:862,1
    - Dst: s_mp_mul_comba_4
      Src: /src/nss/lib/freebl/mpi/mpi.c:863,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:866,1
    - Dst: s_mp_mul_comba_8
      Src: /src/nss/lib/freebl/mpi/mpi.c:867,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:870,1
    - Dst: s_mp_mul_comba_16
      Src: /src/nss/lib/freebl/mpi/mpi.c:871,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:874,1
    - Dst: s_mp_mul_comba_32
      Src: /src/nss/lib/freebl/mpi/mpi.c:875,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:881,1
    - Dst: s_mpv_mul_d
      Src: /src/nss/lib/freebl/mpi/mpi.c:882,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:882,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:882,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:882,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:885,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:886,1
    - Dst: s_mpv_mul_d_add
      Src: /src/nss/lib/freebl/mpi/mpi.c:892,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:892,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:892,1
    - Dst: MP_DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:894,1
    - Dst: s_mp_clamp
      Src: /src/nss/lib/freebl/mpi/mpi.c:898,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:901,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:901,1
    - Dst: s_mp_cmp_d
      Src: /src/nss/lib/freebl/mpi/mpi.c:901,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:902,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:904,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpi.c:907,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 66
    argCount: 4
    argNames:
    - a
    - b
    - c
    - constantTime
    argTypes:
    - mp_int*
    - mp_int*
    - mp_int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 817
    functionDepth: 2
    functionLinenumber: 817
    functionLinenumberEnd: 909
    functionName: s_mp_mulg
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 0
    functionsReached:
    - MP_DIGITS
    - s_mp_cmp_d
    - USED
    - ARGCHK
    - s_mp_mul_comba_16
    - s_mp_clamp
    - mp_clear
    - s_mp_pad
    - s_mpv_mul_d_add
    - s_mp_mul_comba_4
    - MP_USED
    - mp_init_copy
    - s_mp_mul_comba_32
    - s_mpv_mul_d
    - s_mp_mul_comba_8
    - SIGN
    - MP_DIGIT
    - IS_POWER_OF_2
    linkageType: ''
    returnType: mp_err
    signature: mp_err s_mp_mulg(const mp_int *a, const mp_int *b, mp_int *c, int constantTime)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s_mp_mulg
      Src: /src/nss/lib/freebl/mpi/mpi.c:924,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - mp_int*
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 921
    functionDepth: 3
    functionLinenumber: 921
    functionLinenumberEnd: 925
    functionName: mp_mul
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 11
    functionsReached:
    - s_mp_mulg
    linkageType: ''
    returnType: mp_err
    signature: mp_err mp_mul(const mp_int *a, const mp_int *b, mp_int *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:947,1
    - Dst: s_mp_pad
      Src: /src/nss/lib/freebl/mpi/mpi.c:947,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:948,1
    - Dst: s_mp_pad
      Src: /src/nss/lib/freebl/mpi/mpi.c:948,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:949,1
    - Dst: s_mp_pad
      Src: /src/nss/lib/freebl/mpi/mpi.c:949,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:950,1
    - Dst: s_mp_mulg
      Src: /src/nss/lib/freebl/mpi/mpi.c:950,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - a
    - b
    - c
    - setSize
    argTypes:
    - mp_int*
    - mp_int*
    - mp_int*
    - mp_size
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 938
    functionDepth: 3
    functionLinenumber: 938
    functionLinenumberEnd: 953
    functionName: mp_mulCT
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 0
    functionsReached:
    - MP_CHECKOK
    - s_mp_mulg
    - s_mp_pad
    linkageType: ''
    returnType: mp_err
    signature: mp_err mp_mulCT(mp_int *a, mp_int *b, mp_int *c, mp_size setSize)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:979,1
    - Dst: mp_init_copy
      Src: /src/nss/lib/freebl/mpi/mpi.c:982,1
    - Dst: DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:986,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:990,1
    - Dst: MP_ALLOC
      Src: /src/nss/lib/freebl/mpi/mpi.c:991,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:992,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:993,1
    - Dst: s_mp_grow
      Src: /src/nss/lib/freebl/mpi/mpi.c:993,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:995,1
    - Dst: MP_DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:996,1
    - Dst: IS_POWER_OF_2
      Src: /src/nss/lib/freebl/mpi/mpi.c:999,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:999,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:1000,1
    - Dst: s_mp_sqr_comba_4
      Src: /src/nss/lib/freebl/mpi/mpi.c:1001,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:1004,1
    - Dst: s_mp_sqr_comba_8
      Src: /src/nss/lib/freebl/mpi/mpi.c:1005,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:1008,1
    - Dst: s_mp_sqr_comba_16
      Src: /src/nss/lib/freebl/mpi/mpi.c:1009,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:1012,1
    - Dst: s_mp_sqr_comba_32
      Src: /src/nss/lib/freebl/mpi/mpi.c:1013,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:1019,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:1020,1
    - Dst: s_mpv_mul_d
      Src: /src/nss/lib/freebl/mpi/mpi.c:1023,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:1023,1
    - Dst: s_mpv_mul_d_add
      Src: /src/nss/lib/freebl/mpi/mpi.c:1026,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:1026,1
    - Dst: MP_DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:1028,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:1028,1
    - Dst: s_mp_mul_2
      Src: /src/nss/lib/freebl/mpi/mpi.c:1031,1
    - Dst: MP_DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:1033,1
    - Dst: s_mpv_sqr_add_prop
      Src: /src/nss/lib/freebl/mpi/mpi.c:1037,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:1037,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:1037,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:1037,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:1039,1
    - Dst: s_mp_clamp
      Src: /src/nss/lib/freebl/mpi/mpi.c:1040,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpi.c:1043,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 60
    argCount: 2
    argNames:
    - a
    - sqr
    argTypes:
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 969
    functionDepth: 2
    functionLinenumber: 969
    functionLinenumberEnd: 1046
    functionName: mp_sqr
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 2
    functionsReached:
    - s_mp_clamp
    - MP_USED
    - mp_init_copy
    - s_mpv_mul_d
    - DIGITS
    - s_mp_grow
    - s_mp_sqr_comba_32
    - s_mp_sqr_comba_4
    - s_mp_sqr_comba_8
    - s_mpv_sqr_add_prop
    - MP_DIGITS
    - IS_POWER_OF_2
    - mp_clear
    - ARGCHK
    - s_mpv_mul_d_add
    - SIGN
    - MP_ALLOC
    - MP_CHECKOK
    - s_mp_mul_2
    - s_mp_sqr_comba_16
    - MP_DIGIT
    linkageType: ''
    returnType: mp_err
    signature: mp_err mp_sqr(const mp_int *a, mp_int *sqr)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:1070,1
    - Dst: MP_SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:1072,1
    - Dst: MP_SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:1073,1
    - Dst: mp_cmp_z
      Src: /src/nss/lib/freebl/mpi/mpi.c:1075,1
    - Dst: DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:1078,1
    - Dst: DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:1079,1
    - Dst: DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:1080,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:1084,1
    - Dst: mp_init_copy
      Src: /src/nss/lib/freebl/mpi/mpi.c:1084,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:1087,1
    - Dst: mp_copy
      Src: /src/nss/lib/freebl/mpi/mpi.c:1087,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:1092,1
    - Dst: mp_init_size
      Src: /src/nss/lib/freebl/mpi/mpi.c:1092,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:1092,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:1095,1
    - Dst: s_mp_pad
      Src: /src/nss/lib/freebl/mpi/mpi.c:1095,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:1095,1
    - Dst: mp_zero
      Src: /src/nss/lib/freebl/mpi/mpi.c:1097,1
    - Dst: s_mp_cmp
      Src: /src/nss/lib/freebl/mpi/mpi.c:1104,1
    - Dst: mp_zero
      Src: /src/nss/lib/freebl/mpi/mpi.c:1107,1
    - Dst: mp_set
      Src: /src/nss/lib/freebl/mpi/mpi.c:1109,1
    - Dst: mp_zero
      Src: /src/nss/lib/freebl/mpi/mpi.c:1110,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:1113,1
    - Dst: mp_init_copy
      Src: /src/nss/lib/freebl/mpi/mpi.c:1113,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:1114,1
    - Dst: s_mp_div
      Src: /src/nss/lib/freebl/mpi/mpi.c:1114,1
    - Dst: MP_SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:1118,1
    - Dst: MP_SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:1120,1
    - Dst: s_mp_cmp_d
      Src: /src/nss/lib/freebl/mpi/mpi.c:1122,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:1123,1
    - Dst: s_mp_cmp_d
      Src: /src/nss/lib/freebl/mpi/mpi.c:1124,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:1125,1
    - Dst: s_mp_exch
      Src: /src/nss/lib/freebl/mpi/mpi.c:1129,1
    - Dst: s_mp_exch
      Src: /src/nss/lib/freebl/mpi/mpi.c:1132,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpi.c:1135,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpi.c:1136,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpi.c:1137,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 51
    argCount: 4
    argNames:
    - a
    - b
    - q
    - r
    argTypes:
    - mp_int*
    - mp_int*
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1141
      start: 1060
    functionDepth: 3
    functionLinenumber: 1060
    functionLinenumberEnd: 1141
    functionName: mp_div
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 8
    functionsReached:
    - MP_CHECKOK
    - s_mp_cmp
    - s_mp_cmp_d
    - ARGCHK
    - mp_cmp_z
    - MP_SIGN
    - mp_copy
    - s_mp_pad
    - mp_set
    - mp_zero
    - s_mp_exch
    - MP_USED
    - mp_init_copy
    - SIGN
    - DIGITS
    - s_mp_div
    - mp_clear
    - mp_init_size
    linkageType: ''
    returnType: mp_err
    signature: mp_err mp_div(const mp_int *a, const mp_int *b, mp_int *q, mp_int *r)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:1152,1
    - Dst: mp_copy
      Src: /src/nss/lib/freebl/mpi/mpi.c:1155,1
    - Dst: mp_copy
      Src: /src/nss/lib/freebl/mpi/mpi.c:1159,1
    - Dst: s_mp_div_2d
      Src: /src/nss/lib/freebl/mpi/mpi.c:1163,1
    - Dst: s_mp_mod_2d
      Src: /src/nss/lib/freebl/mpi/mpi.c:1166,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - a
    - d
    - q
    - r
    argTypes:
    - mp_int*
    - mp_digit
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1147
    functionDepth: 2
    functionLinenumber: 1147
    functionLinenumberEnd: 1171
    functionName: mp_div_2d
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 5
    functionsReached:
    - ARGCHK
    - s_mp_mod_2d
    - mp_copy
    - s_mp_div_2d
    linkageType: ''
    returnType: mp_err
    signature: mp_err mp_div_2d(const mp_int *a, mp_digit d, mp_int *q, mp_int *r)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:1192,1
    - Dst: mp_cmp_z
      Src: /src/nss/lib/freebl/mpi/mpi.c:1194,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/mpi/mpi.c:1197,1
    - Dst: mp_set
      Src: /src/nss/lib/freebl/mpi/mpi.c:1200,1
    - Dst: mp_init_copy
      Src: /src/nss/lib/freebl/mpi/mpi.c:1202,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:1206,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:1207,1
    - Dst: s_mp_mul
      Src: /src/nss/lib/freebl/mpi/mpi.c:1212,1
    - Dst: s_mp_sqr
      Src: /src/nss/lib/freebl/mpi/mpi.c:1218,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:1224,1
    - Dst: s_mp_mul
      Src: /src/nss/lib/freebl/mpi/mpi.c:1228,1
    - Dst: s_mp_sqr
      Src: /src/nss/lib/freebl/mpi/mpi.c:1234,1
    - Dst: mp_iseven
      Src: /src/nss/lib/freebl/mpi/mpi.c:1238,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:1239,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:1239,1
    - Dst: mp_copy
      Src: /src/nss/lib/freebl/mpi/mpi.c:1241,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpi.c:1244,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpi.c:1246,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 46
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - mp_int*
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1250
      start: 1184
    functionDepth: 3
    functionLinenumber: 1184
    functionLinenumberEnd: 1250
    functionName: mp_expt
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 1
    functionsReached:
    - mp_init
    - DIGIT
    - USED
    - ARGCHK
    - mp_cmp_z
    - mp_iseven
    - s_mp_mul
    - mp_copy
    - mp_set
    - mp_init_copy
    - s_mp_sqr
    - SIGN
    - mp_clear
    linkageType: ''
    returnType: mp_err
    signature: mp_err mp_expt(mp_int *a, mp_int *b, mp_int *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:1261,1
    - Dst: s_mp_2expt
      Src: /src/nss/lib/freebl/mpi/mpi.c:1263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - k
    argTypes:
    - mp_int*
    - mp_digit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1265
      start: 1258
    functionDepth: 1
    functionLinenumber: 1258
    functionLinenumberEnd: 1265
    functionName: mp_2expt
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 6
    functionsReached:
    - ARGCHK
    - s_mp_2expt
    linkageType: ''
    returnType: mp_err
    signature: mp_err mp_2expt(mp_int *a, mp_digit k)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:1283,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:1285,1
    - Dst: s_mp_cmp
      Src: /src/nss/lib/freebl/mpi/mpi.c:1301,1
    - Dst: mp_div
      Src: /src/nss/lib/freebl/mpi/mpi.c:1302,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:1305,1
    - Dst: mp_add
      Src: /src/nss/lib/freebl/mpi/mpi.c:1306,1
    - Dst: mp_copy
      Src: /src/nss/lib/freebl/mpi/mpi.c:1311,1
    - Dst: mp_cmp_z
      Src: /src/nss/lib/freebl/mpi/mpi.c:1314,1
    - Dst: mp_add
      Src: /src/nss/lib/freebl/mpi/mpi.c:1315,1
    - Dst: mp_zero
      Src: /src/nss/lib/freebl/mpi/mpi.c:1320,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 3
    argNames:
    - a
    - m
    - c
    argTypes:
    - mp_int*
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1325
      start: 1277
    functionDepth: 4
    functionLinenumber: 1277
    functionLinenumberEnd: 1325
    functionName: mp_mod
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 13
    functionsReached:
    - s_mp_cmp
    - mp_add
    - ARGCHK
    - mp_cmp_z
    - mp_copy
    - mp_zero
    - mp_div
    - SIGN
    linkageType: ''
    returnType: mp_err
    signature: mp_err mp_mod(const mp_int *a, const mp_int *m, mp_int *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MP_CT_LTU
      Src: /src/nss/lib/freebl/mpi/mpi.c:1340,1
    - Dst: MP_CT_EQ
      Src: /src/nss/lib/freebl/mpi/mpi.c:1340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - a
    - b
    - borrow
    - ret
    argTypes:
    - mp_digit
    - mp_digit
    - mp_digit
    - mp_digit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1341
      start: 1336
    functionDepth: 1
    functionLinenumber: 1336
    functionLinenumberEnd: 1341
    functionName: s_mp_subCT_d
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 0
    functionsReached:
    - MP_CT_LTU
    - MP_CT_EQ
    linkageType: ''
    returnType: mp_digit
    signature: mp_digit s_mp_subCT_d(mp_digit a, mp_digit b, mp_digit borrow, mp_digit
      *ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:1353,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:1357,1
    - Dst: s_mp_pad
      Src: /src/nss/lib/freebl/mpi/mpi.c:1357,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:1358,1
    - Dst: s_mp_pad
      Src: /src/nss/lib/freebl/mpi/mpi.c:1358,1
    - Dst: s_mp_subCT_d
      Src: /src/nss/lib/freebl/mpi/mpi.c:1361,1
    - Dst: MP_DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:1361,1
    - Dst: MP_DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:1361,1
    - Dst: MP_DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:1362,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - a
    - b
    - ret
    - borrow
    argTypes:
    - mp_int*
    - mp_int*
    - mp_int*
    - mp_digit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1368
      start: 1350
    functionDepth: 2
    functionLinenumber: 1350
    functionLinenumberEnd: 1368
    functionName: mp_subCT
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 0
    functionsReached:
    - MP_CHECKOK
    - s_mp_pad
    - s_mp_subCT_d
    - MP_USED
    - MP_DIGIT
    linkageType: ''
    returnType: mp_err
    signature: mp_err mp_subCT(const mp_int *a, mp_int *b, mp_int *ret, mp_digit *borrow)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:1380,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:1389,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:1393,1
    - Dst: s_mp_pad
      Src: /src/nss/lib/freebl/mpi/mpi.c:1393,1
    - Dst: MP_DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:1395,1
    - Dst: MP_CT_SEL_DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:1395,1
    - Dst: MP_DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:1395,1
    - Dst: MP_DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:1395,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - cond
    - a
    - b
    - ret
    argTypes:
    - mp_digit
    - mp_int*
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1400
      start: 1377
    functionDepth: 1
    functionLinenumber: 1377
    functionLinenumberEnd: 1400
    functionName: mp_selectCT
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 0
    functionsReached:
    - MP_CHECKOK
    - s_mp_pad
    - MP_USED
    - MP_DIGIT
    - MP_CT_SEL_DIGIT
    linkageType: ''
    returnType: mp_err
    signature: mp_err mp_selectCT(mp_digit cond, const mp_int *a, const mp_int *b,
      mp_int *ret)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:1418,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:1426,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:1427,1
    - Dst: mp_init_size
      Src: /src/nss/lib/freebl/mpi/mpi.c:1427,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:1430,1
    - Dst: mp_copy
      Src: /src/nss/lib/freebl/mpi/mpi.c:1430,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:1432,1
    - Dst: s_mp_pad
      Src: /src/nss/lib/freebl/mpi/mpi.c:1432,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:1433,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:1434,1
    - Dst: MP_DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:1436,1
    - Dst: s_mpv_mul_d_add_propCT
      Src: /src/nss/lib/freebl/mpi/mpi.c:1437,1
    - Dst: s_mp_rshd
      Src: /src/nss/lib/freebl/mpi/mpi.c:1439,1
    - Dst: MP_DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:1443,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:1445,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:1449,1
    - Dst: mp_subCT
      Src: /src/nss/lib/freebl/mpi/mpi.c:1449,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:1452,1
    - Dst: mp_selectCT
      Src: /src/nss/lib/freebl/mpi/mpi.c:1452,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpi.c:1455,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 4
    argNames:
    - a
    - m
    - n0i
    - c
    argTypes:
    - mp_int*
    - mp_int*
    - mp_digit
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1457
      start: 1415
    functionDepth: 3
    functionLinenumber: 1415
    functionLinenumberEnd: 1457
    functionName: mp_reduceCT
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 0
    functionsReached:
    - MP_CHECKOK
    - s_mpv_mul_d_add_propCT
    - s_mp_rshd
    - s_mp_pad
    - mp_copy
    - mp_subCT
    - MP_USED
    - mp_selectCT
    - MP_DIGIT
    - mp_clear
    - MP_DIGITS
    - mp_init_size
    linkageType: ''
    returnType: mp_err
    signature: mp_err mp_reduceCT(const mp_int *a, const mp_int *m, mp_digit n0i,
      mp_int *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1444
      start: 1444
    functionDepth: 0
    functionLinenumber: 1444
    functionLinenumberEnd: 1444
    functionName: MP_DIGIT
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MP_DIGIT(c, used_m)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:1474,1
    - Dst: s_mp_cmp_d
      Src: /src/nss/lib/freebl/mpi/mpi.c:1476,1
    - Dst: mp_div_d
      Src: /src/nss/lib/freebl/mpi/mpi.c:1477,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:1481,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:1482,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:1484,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - a
    - d
    - c
    argTypes:
    - mp_int*
    - mp_digit
    - mp_digit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1492
      start: 1468
    functionDepth: 3
    functionLinenumber: 1468
    functionLinenumberEnd: 1492
    functionName: mp_mod_d
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 1
    functionsReached:
    - DIGIT
    - s_mp_cmp_d
    - ARGCHK
    - SIGN
    - mp_div_d
    linkageType: ''
    returnType: mp_err
    signature: mp_err mp_mod_d(const mp_int *a, mp_digit d, mp_digit *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:1515,1
    - Dst: mp_add
      Src: /src/nss/lib/freebl/mpi/mpi.c:1517,1
    - Dst: mp_mod
      Src: /src/nss/lib/freebl/mpi/mpi.c:1519,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 4
    argNames:
    - a
    - b
    - m
    - c
    argTypes:
    - mp_int*
    - mp_int*
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1523
      start: 1510
    functionDepth: 5
    functionLinenumber: 1510
    functionLinenumberEnd: 1523
    functionName: mp_addmod
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 2
    functionsReached:
    - ARGCHK
    - mp_mod
    - mp_add
    linkageType: ''
    returnType: mp_err
    signature: mp_err mp_addmod(const mp_int *a, const mp_int *b, const mp_int *m,
      mp_int *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:1540,1
    - Dst: mp_sub
      Src: /src/nss/lib/freebl/mpi/mpi.c:1542,1
    - Dst: mp_mod
      Src: /src/nss/lib/freebl/mpi/mpi.c:1544,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 4
    argNames:
    - a
    - b
    - m
    - c
    argTypes:
    - mp_int*
    - mp_int*
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1548
      start: 1535
    functionDepth: 5
    functionLinenumber: 1535
    functionLinenumberEnd: 1548
    functionName: mp_submod
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 3
    functionsReached:
    - ARGCHK
    - mp_mod
    - mp_sub
    linkageType: ''
    returnType: mp_err
    signature: mp_err mp_submod(const mp_int *a, const mp_int *b, const mp_int *m,
      mp_int *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:1565,1
    - Dst: mp_mul
      Src: /src/nss/lib/freebl/mpi/mpi.c:1567,1
    - Dst: mp_mod
      Src: /src/nss/lib/freebl/mpi/mpi.c:1569,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 4
    argNames:
    - a
    - b
    - m
    - c
    argTypes:
    - mp_int*
    - mp_int*
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1573
      start: 1560
    functionDepth: 5
    functionLinenumber: 1560
    functionLinenumberEnd: 1573
    functionName: mp_mulmod
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 12
    functionsReached:
    - ARGCHK
    - mp_mod
    - mp_mul
    linkageType: ''
    returnType: mp_err
    signature: mp_err mp_mulmod(const mp_int *a, const mp_int *b, const mp_int *m,
      mp_int *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:1595,1
    - Dst: mp_mulCT
      Src: /src/nss/lib/freebl/mpi/mpi.c:1597,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:1597,1
    - Dst: mp_reduceCT
      Src: /src/nss/lib/freebl/mpi/mpi.c:1600,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 5
    argNames:
    - a
    - b
    - m
    - n0i
    - c
    argTypes:
    - mp_int*
    - mp_int*
    - mp_int*
    - mp_digit
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1604
      start: 1589
    functionDepth: 4
    functionLinenumber: 1589
    functionLinenumberEnd: 1604
    functionName: mp_mulmontmodCT
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 1
    functionsReached:
    - ARGCHK
    - mp_reduceCT
    - MP_USED
    - mp_mulCT
    linkageType: ''
    returnType: mp_err
    signature: "mp_err mp_mulmontmodCT(mp_int *a, mp_int *b, const mp_int *m, mp_digit
      n0i,\n                mp_int *c)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:1616,1
    - Dst: mp_sqr
      Src: /src/nss/lib/freebl/mpi/mpi.c:1618,1
    - Dst: mp_mod
      Src: /src/nss/lib/freebl/mpi/mpi.c:1620,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - a
    - m
    - c
    argTypes:
    - mp_int*
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1625
      start: 1611
    functionDepth: 5
    functionLinenumber: 1611
    functionLinenumberEnd: 1625
    functionName: mp_sqrmod
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 1
    functionsReached:
    - ARGCHK
    - mp_sqr
    - mp_mod
    linkageType: ''
    returnType: mp_err
    signature: mp_err mp_sqrmod(const mp_int *a, const mp_int *m, mp_int *c)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:1651,1
    - Dst: mp_cmp_z
      Src: /src/nss/lib/freebl/mpi/mpi.c:1653,1
    - Dst: mp_cmp_z
      Src: /src/nss/lib/freebl/mpi/mpi.c:1653,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/mpi/mpi.c:1656,1
    - Dst: mp_init_copy
      Src: /src/nss/lib/freebl/mpi/mpi.c:1658,1
    - Dst: mp_mod
      Src: /src/nss/lib/freebl/mpi/mpi.c:1659,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/mpi/mpi.c:1661,1
    - Dst: mp_set
      Src: /src/nss/lib/freebl/mpi/mpi.c:1664,1
    - Dst: s_mp_add_d
      Src: /src/nss/lib/freebl/mpi/mpi.c:1667,1
    - Dst: s_mp_lshd
      Src: /src/nss/lib/freebl/mpi/mpi.c:1669,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:1669,1
    - Dst: mp_div
      Src: /src/nss/lib/freebl/mpi/mpi.c:1671,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:1675,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:1676,1
    - Dst: s_mp_mul
      Src: /src/nss/lib/freebl/mpi/mpi.c:1681,1
    - Dst: s_mp_reduce
      Src: /src/nss/lib/freebl/mpi/mpi.c:1683,1
    - Dst: s_mp_sqr
      Src: /src/nss/lib/freebl/mpi/mpi.c:1689,1
    - Dst: s_mp_reduce
      Src: /src/nss/lib/freebl/mpi/mpi.c:1691,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:1697,1
    - Dst: s_mp_mul
      Src: /src/nss/lib/freebl/mpi/mpi.c:1701,1
    - Dst: s_mp_reduce
      Src: /src/nss/lib/freebl/mpi/mpi.c:1703,1
    - Dst: s_mp_sqr
      Src: /src/nss/lib/freebl/mpi/mpi.c:1709,1
    - Dst: s_mp_reduce
      Src: /src/nss/lib/freebl/mpi/mpi.c:1711,1
    - Dst: s_mp_exch
      Src: /src/nss/lib/freebl/mpi/mpi.c:1715,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpi.c:1718,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpi.c:1720,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpi.c:1722,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 71
    argCount: 4
    argNames:
    - a
    - b
    - m
    - c
    argTypes:
    - mp_int*
    - mp_int*
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1726
      start: 1643
    functionDepth: 5
    functionLinenumber: 1643
    functionLinenumberEnd: 1726
    functionName: s_mp_exptmod
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 0
    functionsReached:
    - mp_init
    - s_mp_add_d
    - DIGIT
    - USED
    - s_mp_lshd
    - ARGCHK
    - mp_mod
    - mp_cmp_z
    - s_mp_exch
    - s_mp_mul
    - mp_set
    - s_mp_reduce
    - mp_init_copy
    - mp_div
    - s_mp_sqr
    - mp_clear
    linkageType: ''
    returnType: mp_err
    signature: mp_err s_mp_exptmod(const mp_int *a, const mp_int *b, const mp_int
      *m, mp_int *c)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:1738,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/mpi/mpi.c:1740,1
    - Dst: mp_init_copy
      Src: /src/nss/lib/freebl/mpi/mpi.c:1742,1
    - Dst: mp_set
      Src: /src/nss/lib/freebl/mpi/mpi.c:1745,1
    - Dst: s_mp_mul
      Src: /src/nss/lib/freebl/mpi/mpi.c:1749,1
    - Dst: mp_mod
      Src: /src/nss/lib/freebl/mpi/mpi.c:1750,1
    - Dst: s_mp_sqr
      Src: /src/nss/lib/freebl/mpi/mpi.c:1756,1
    - Dst: mp_mod
      Src: /src/nss/lib/freebl/mpi/mpi.c:1757,1
    - Dst: s_mp_exch
      Src: /src/nss/lib/freebl/mpi/mpi.c:1761,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpi.c:1764,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpi.c:1766,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 27
    argCount: 4
    argNames:
    - a
    - d
    - m
    - c
    argTypes:
    - mp_int*
    - mp_digit
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1770
      start: 1732
    functionDepth: 5
    functionLinenumber: 1732
    functionLinenumberEnd: 1770
    functionName: mp_exptmod_d
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 3
    functionsReached:
    - mp_init
    - ARGCHK
    - mp_mod
    - s_mp_exch
    - s_mp_mul
    - mp_set
    - mp_init_copy
    - s_mp_sqr
    - mp_clear
    linkageType: ''
    returnType: mp_err
    signature: mp_err mp_exptmod_d(const mp_int *a, mp_digit d, const mp_int *m, mp_int
      *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARGMPCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:1791,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:1793,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:1795,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:1795,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - a
    argTypes:
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1800
      start: 1788
    functionDepth: 1
    functionLinenumber: 1788
    functionLinenumberEnd: 1800
    functionName: mp_cmp_z
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 11
    functionsReached:
    - USED
    - ARGMPCHK
    - DIGIT
    - SIGN
    linkageType: ''
    returnType: int
    signature: int mp_cmp_z(const mp_int *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:1815,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:1817,1
    - Dst: s_mp_cmp_d
      Src: /src/nss/lib/freebl/mpi/mpi.c:1820,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - a
    - d
    argTypes:
    - mp_int*
    - mp_digit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1822
      start: 1812
    functionDepth: 1
    functionLinenumber: 1812
    functionLinenumberEnd: 1822
    functionName: mp_cmp_d
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 22
    functionsReached:
    - ARGCHK
    - SIGN
    - s_mp_cmp_d
    linkageType: ''
    returnType: int
    signature: int mp_cmp_d(const mp_int *a, mp_digit d)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:1831,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:1833,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:1833,1
    - Dst: s_mp_cmp
      Src: /src/nss/lib/freebl/mpi/mpi.c:1836,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:1839,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:1844,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1850
      start: 1828
    functionDepth: 1
    functionLinenumber: 1828
    functionLinenumberEnd: 1850
    functionName: mp_cmp
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 28
    functionsReached:
    - ARGCHK
    - s_mp_cmp
    - SIGN
    linkageType: ''
    returnType: int
    signature: int mp_cmp(const mp_int *a, const mp_int *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:1865,1
    - Dst: s_mp_cmp
      Src: /src/nss/lib/freebl/mpi/mpi.c:1867,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1869
      start: 1862
    functionDepth: 1
    functionLinenumber: 1862
    functionLinenumberEnd: 1869
    functionName: mp_cmp_mag
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 2
    functionsReached:
    - ARGCHK
    - s_mp_cmp
    linkageType: ''
    returnType: int
    signature: int mp_cmp_mag(const mp_int *a, const mp_int *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARGMPCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:1883,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:1885,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - a
    argTypes:
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1887
      start: 1880
    functionDepth: 1
    functionLinenumber: 1880
    functionLinenumberEnd: 1887
    functionName: mp_isodd
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 2
    functionsReached:
    - DIGIT
    - ARGMPCHK
    linkageType: ''
    returnType: int
    signature: int mp_isodd(const mp_int *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mp_isodd
      Src: /src/nss/lib/freebl/mpi/mpi.c:1896,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1898
      start: 1893
    functionDepth: 2
    functionLinenumber: 1893
    functionLinenumberEnd: 1898
    functionName: mp_iseven
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 3
    functionsReached:
    - mp_isodd
    linkageType: ''
    returnType: int
    signature: int mp_iseven(const mp_int *a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:1924,1
    - Dst: mp_cmp_z
      Src: /src/nss/lib/freebl/mpi/mpi.c:1929,1
    - Dst: mp_copy
      Src: /src/nss/lib/freebl/mpi/mpi.c:1930,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:1931,1
    - Dst: mp_cmp_z
      Src: /src/nss/lib/freebl/mpi/mpi.c:1933,1
    - Dst: mp_copy
      Src: /src/nss/lib/freebl/mpi/mpi.c:1934,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:1935,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:1939,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/mpi/mpi.c:1939,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:1941,1
    - Dst: mp_init_copy
      Src: /src/nss/lib/freebl/mpi/mpi.c:1941,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:1943,1
    - Dst: mp_init_copy
      Src: /src/nss/lib/freebl/mpi/mpi.c:1943,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:1950,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:1950,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:1951,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:1951,1
    - Dst: s_mp_div_2d
      Src: /src/nss/lib/freebl/mpi/mpi.c:1959,1
    - Dst: s_mp_div_2d
      Src: /src/nss/lib/freebl/mpi/mpi.c:1960,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:1963,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:1963,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:1963,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:1963,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:1964,1
    - Dst: s_mp_grow
      Src: /src/nss/lib/freebl/mpi/mpi.c:1964,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:1965,1
    - Dst: s_mp_grow
      Src: /src/nss/lib/freebl/mpi/mpi.c:1965,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:1966,1
    - Dst: s_mp_grow
      Src: /src/nss/lib/freebl/mpi/mpi.c:1966,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:1969,1
    - Dst: mp_cswap
      Src: /src/nss/lib/freebl/mpi/mpi.c:1969,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:1969,1
    - Dst: mpl_significant_bits
      Src: /src/nss/lib/freebl/mpi/mpi.c:1972,1
    - Dst: mpl_significant_bits
      Src: /src/nss/lib/freebl/mpi/mpi.c:1973,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:1984,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:1987,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:1989,1
    - Dst: mp_cswap
      Src: /src/nss/lib/freebl/mpi/mpi.c:1989,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:1995,1
    - Dst: mp_add
      Src: /src/nss/lib/freebl/mpi/mpi.c:1995,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:1996,1
    - Dst: mp_cswap
      Src: /src/nss/lib/freebl/mpi/mpi.c:1996,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:1996,1
    - Dst: s_mp_div_2
      Src: /src/nss/lib/freebl/mpi/mpi.c:1997,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:2005,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2008,1
    - Dst: s_mp_mul_2d
      Src: /src/nss/lib/freebl/mpi/mpi.c:2008,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2010,1
    - Dst: mp_copy
      Src: /src/nss/lib/freebl/mpi/mpi.c:2010,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpi.c:2014,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 54
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - mp_int*
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2016
      start: 1914
    functionDepth: 2
    functionLinenumber: 1914
    functionLinenumberEnd: 2016
    functionName: mp_gcd
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 4
    functionsReached:
    - MP_CHECKOK
    - mp_init
    - DIGIT
    - s_mp_mul_2d
    - mp_add
    - USED
    - s_mp_div_2d
    - ARGCHK
    - mp_cswap
    - mp_cmp_z
    - mp_copy
    - s_mp_div_2
    - mp_init_copy
    - s_mp_grow
    - SIGN
    - mp_clear
    - mpl_significant_bits
    linkageType: ''
    returnType: mp_err
    signature: mp_err mp_gcd(mp_int *a, mp_int *b, mp_int *c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2035,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/mpi/mpi.c:2038,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/mpi/mpi.c:2040,1
    - Dst: mp_mul
      Src: /src/nss/lib/freebl/mpi/mpi.c:2043,1
    - Dst: mp_gcd
      Src: /src/nss/lib/freebl/mpi/mpi.c:2045,1
    - Dst: mp_div
      Src: /src/nss/lib/freebl/mpi/mpi.c:2048,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpi.c:2051,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpi.c:2053,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - mp_int*
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2057
      start: 2029
    functionDepth: 4
    functionLinenumber: 2029
    functionLinenumberEnd: 2057
    functionName: mp_lcm
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 2
    functionsReached:
    - mp_init
    - mp_gcd
    - mp_mul
    - ARGCHK
    - mp_div
    - mp_clear
    linkageType: ''
    returnType: mp_err
    signature: mp_err mp_lcm(mp_int *a, mp_int *b, mp_int *c)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mp_cmp_z
      Src: /src/nss/lib/freebl/mpi/mpi.c:2080,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2084,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/mpi/mpi.c:2084,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2086,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/mpi/mpi.c:2086,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2088,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/mpi/mpi.c:2088,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2090,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/mpi/mpi.c:2090,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2092,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/mpi/mpi.c:2092,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2094,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/mpi/mpi.c:2094,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2096,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/mpi/mpi.c:2096,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2098,1
    - Dst: mp_init_copy
      Src: /src/nss/lib/freebl/mpi/mpi.c:2098,1
    - Dst: mp_abs
      Src: /src/nss/lib/freebl/mpi/mpi.c:2100,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2101,1
    - Dst: mp_init_copy
      Src: /src/nss/lib/freebl/mpi/mpi.c:2101,1
    - Dst: mp_abs
      Src: /src/nss/lib/freebl/mpi/mpi.c:2103,1
    - Dst: mp_set
      Src: /src/nss/lib/freebl/mpi/mpi.c:2105,1
    - Dst: mp_iseven
      Src: /src/nss/lib/freebl/mpi/mpi.c:2108,1
    - Dst: mp_iseven
      Src: /src/nss/lib/freebl/mpi/mpi.c:2108,1
    - Dst: mp_trailing_zeros
      Src: /src/nss/lib/freebl/mpi/mpi.c:2109,1
    - Dst: mp_trailing_zeros
      Src: /src/nss/lib/freebl/mpi/mpi.c:2110,1
    - Dst: MP_MIN
      Src: /src/nss/lib/freebl/mpi/mpi.c:2111,1
    - Dst: s_mp_div_2d
      Src: /src/nss/lib/freebl/mpi/mpi.c:2112,1
    - Dst: s_mp_div_2d
      Src: /src/nss/lib/freebl/mpi/mpi.c:2113,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2114,1
    - Dst: s_mp_mul_2d
      Src: /src/nss/lib/freebl/mpi/mpi.c:2114,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2117,1
    - Dst: mp_copy
      Src: /src/nss/lib/freebl/mpi/mpi.c:2117,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2118,1
    - Dst: mp_copy
      Src: /src/nss/lib/freebl/mpi/mpi.c:2118,1
    - Dst: mp_set
      Src: /src/nss/lib/freebl/mpi/mpi.c:2119,1
    - Dst: mp_set
      Src: /src/nss/lib/freebl/mpi/mpi.c:2120,1
    - Dst: mp_iseven
      Src: /src/nss/lib/freebl/mpi/mpi.c:2124,1
    - Dst: s_mp_div_2
      Src: /src/nss/lib/freebl/mpi/mpi.c:2125,1
    - Dst: mp_iseven
      Src: /src/nss/lib/freebl/mpi/mpi.c:2127,1
    - Dst: mp_iseven
      Src: /src/nss/lib/freebl/mpi/mpi.c:2127,1
    - Dst: s_mp_div_2
      Src: /src/nss/lib/freebl/mpi/mpi.c:2128,1
    - Dst: s_mp_div_2
      Src: /src/nss/lib/freebl/mpi/mpi.c:2129,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2131,1
    - Dst: mp_add
      Src: /src/nss/lib/freebl/mpi/mpi.c:2131,1
    - Dst: s_mp_div_2
      Src: /src/nss/lib/freebl/mpi/mpi.c:2132,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2133,1
    - Dst: mp_sub
      Src: /src/nss/lib/freebl/mpi/mpi.c:2133,1
    - Dst: s_mp_div_2
      Src: /src/nss/lib/freebl/mpi/mpi.c:2134,1
    - Dst: mp_iseven
      Src: /src/nss/lib/freebl/mpi/mpi.c:2138,1
    - Dst: s_mp_div_2
      Src: /src/nss/lib/freebl/mpi/mpi.c:2139,1
    - Dst: mp_iseven
      Src: /src/nss/lib/freebl/mpi/mpi.c:2141,1
    - Dst: mp_iseven
      Src: /src/nss/lib/freebl/mpi/mpi.c:2141,1
    - Dst: s_mp_div_2
      Src: /src/nss/lib/freebl/mpi/mpi.c:2142,1
    - Dst: s_mp_div_2
      Src: /src/nss/lib/freebl/mpi/mpi.c:2143,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2145,1
    - Dst: mp_add
      Src: /src/nss/lib/freebl/mpi/mpi.c:2145,1
    - Dst: s_mp_div_2
      Src: /src/nss/lib/freebl/mpi/mpi.c:2146,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2147,1
    - Dst: mp_sub
      Src: /src/nss/lib/freebl/mpi/mpi.c:2147,1
    - Dst: s_mp_div_2
      Src: /src/nss/lib/freebl/mpi/mpi.c:2148,1
    - Dst: mp_cmp
      Src: /src/nss/lib/freebl/mpi/mpi.c:2152,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2153,1
    - Dst: mp_sub
      Src: /src/nss/lib/freebl/mpi/mpi.c:2153,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2154,1
    - Dst: mp_sub
      Src: /src/nss/lib/freebl/mpi/mpi.c:2154,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2155,1
    - Dst: mp_sub
      Src: /src/nss/lib/freebl/mpi/mpi.c:2155,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2157,1
    - Dst: mp_sub
      Src: /src/nss/lib/freebl/mpi/mpi.c:2157,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2158,1
    - Dst: mp_sub
      Src: /src/nss/lib/freebl/mpi/mpi.c:2158,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2159,1
    - Dst: mp_sub
      Src: /src/nss/lib/freebl/mpi/mpi.c:2159,1
    - Dst: mp_cmp_z
      Src: /src/nss/lib/freebl/mpi/mpi.c:2161,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2165,1
    - Dst: mp_copy
      Src: /src/nss/lib/freebl/mpi/mpi.c:2165,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2168,1
    - Dst: mp_copy
      Src: /src/nss/lib/freebl/mpi/mpi.c:2168,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2171,1
    - Dst: mp_mul
      Src: /src/nss/lib/freebl/mpi/mpi.c:2171,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpi.c:2175,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 79
    argCount: 5
    argNames:
    - a
    - b
    - g
    - x
    - y
    argTypes:
    - mp_int*
    - mp_int*
    - mp_int*
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2179
      start: 2072
    functionDepth: 4
    functionLinenumber: 2072
    functionLinenumberEnd: 2179
    functionName: mp_xgcd
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 0
    functionsReached:
    - MP_CHECKOK
    - mp_init
    - mp_abs
    - s_mp_mul_2d
    - mp_add
    - MP_MIN
    - s_mp_div_2d
    - mp_mul
    - mp_cmp_z
    - mp_iseven
    - mp_copy
    - mp_sub
    - mp_set
    - mp_init_copy
    - mp_trailing_zeros
    - mp_cmp
    - mp_clear
    - s_mp_div_2
    linkageType: ''
    returnType: mp_err
    signature: mp_err mp_xgcd(const mp_int *a, const mp_int *b, mp_int *g, mp_int
      *x, mp_int *y)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:2190,1
    - Dst: mp_cmp_z
      Src: /src/nss/lib/freebl/mpi/mpi.c:2190,1
    - Dst: MP_DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:2193,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:2193,1
    - Dst: assert
      Src: /src/nss/lib/freebl/mpi/mpi.c:2224,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 1
    argNames:
    - mp
    argTypes:
    - mp_int*
    assertStmts:
    - condition: (0 != (d & 1))
      pos:
        line_end: 2223
        line_start: 2223
        source_file: /src/nss/lib/freebl/mpi/mpi.c
    constantsTouched: []
    func_position:
      end: 2227
      start: 2183
    functionDepth: 2
    functionLinenumber: 2183
    functionLinenumberEnd: 2227
    functionName: mp_trailing_zeros
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 1
    functionsReached:
    - MP_DIGITS
    - mp_cmp_z
    - assert
    - MP_USED
    - MP_DIGIT
    linkageType: ''
    returnType: mp_size
    signature: mp_size mp_trailing_zeros(const mp_int *mp)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2241,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:2243,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:2244,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:2245,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2246,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/mpi/mpi.c:2246,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2247,1
    - Dst: mp_init_copy
      Src: /src/nss/lib/freebl/mpi/mpi.c:2247,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2248,1
    - Dst: mp_init_copy
      Src: /src/nss/lib/freebl/mpi/mpi.c:2248,1
    - Dst: mp_set
      Src: /src/nss/lib/freebl/mpi/mpi.c:2250,1
    - Dst: mp_zero
      Src: /src/nss/lib/freebl/mpi/mpi.c:2251,1
    - Dst: mp_cmp_z
      Src: /src/nss/lib/freebl/mpi/mpi.c:2253,1
    - Dst: mp_iseven
      Src: /src/nss/lib/freebl/mpi/mpi.c:2258,1
    - Dst: mp_trailing_zeros
      Src: /src/nss/lib/freebl/mpi/mpi.c:2259,1
    - Dst: s_mp_div_2d
      Src: /src/nss/lib/freebl/mpi/mpi.c:2264,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2265,1
    - Dst: s_mp_mul_2d
      Src: /src/nss/lib/freebl/mpi/mpi.c:2265,1
    - Dst: mp_cmp_d
      Src: /src/nss/lib/freebl/mpi/mpi.c:2268,1
    - Dst: mp_cmp
      Src: /src/nss/lib/freebl/mpi/mpi.c:2272,1
    - Dst: s_mp_exch
      Src: /src/nss/lib/freebl/mpi/mpi.c:2274,1
    - Dst: s_mp_exch
      Src: /src/nss/lib/freebl/mpi/mpi.c:2275,1
    - Dst: MP_DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:2280,1
    - Dst: MP_DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:2280,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2281,1
    - Dst: mp_sub
      Src: /src/nss/lib/freebl/mpi/mpi.c:2281,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2282,1
    - Dst: mp_sub
      Src: /src/nss/lib/freebl/mpi/mpi.c:2282,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2284,1
    - Dst: mp_add
      Src: /src/nss/lib/freebl/mpi/mpi.c:2284,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2285,1
    - Dst: mp_add
      Src: /src/nss/lib/freebl/mpi/mpi.c:2285,1
    - Dst: mp_cmp_mag
      Src: /src/nss/lib/freebl/mpi/mpi.c:2289,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2290,1
    - Dst: mp_div
      Src: /src/nss/lib/freebl/mpi/mpi.c:2290,1
    - Dst: MP_SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:2292,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2293,1
    - Dst: mp_add
      Src: /src/nss/lib/freebl/mpi/mpi.c:2293,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpi.c:2299,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpi.c:2300,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpi.c:2301,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 60
    argCount: 3
    argNames:
    - a
    - p
    - c
    argTypes:
    - mp_int*
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2303
      start: 2234
    functionDepth: 4
    functionLinenumber: 2234
    functionLinenumberEnd: 2303
    functionName: s_mp_almost_inverse
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 0
    functionsReached:
    - s_mp_div_2d
    - s_mp_exch
    - mp_init_copy
    - mp_add
    - mp_cmp_z
    - mp_iseven
    - mp_trailing_zeros
    - mp_div
    - MP_DIGITS
    - mp_clear
    - mp_init
    - ARGCHK
    - mp_cmp_d
    - mp_cmp_mag
    - mp_zero
    - mp_cmp
    - MP_CHECKOK
    - s_mp_mul_2d
    - MP_SIGN
    - mp_sub
    - mp_set
    - MP_DIGIT
    linkageType: ''
    returnType: mp_err
    signature: mp_err s_mp_almost_inverse(const mp_int *a, const mp_int *p, mp_int
      *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - P
    argTypes:
    - mp_digit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2322
      start: 2309
    functionDepth: 0
    functionLinenumber: 2309
    functionLinenumberEnd: 2322
    functionName: s_mp_invmod_radix
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mp_digit
    signature: mp_digit s_mp_invmod_radix(mp_digit P)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mp_cmp_z
      Src: /src/nss/lib/freebl/mpi/mpi.c:2337,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2338,1
    - Dst: mp_add
      Src: /src/nss/lib/freebl/mpi/mpi.c:2338,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2340,1
    - Dst: mp_copy
      Src: /src/nss/lib/freebl/mpi/mpi.c:2340,1
    - Dst: MP_HOWMANY
      Src: /src/nss/lib/freebl/mpi/mpi.c:2344,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:2344,1
    - Dst: MP_MAX
      Src: /src/nss/lib/freebl/mpi/mpi.c:2345,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:2345,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2346,1
    - Dst: s_mp_pad
      Src: /src/nss/lib/freebl/mpi/mpi.c:2346,1
    - Dst: s_mp_invmod_radix
      Src: /src/nss/lib/freebl/mpi/mpi.c:2348,1
    - Dst: MP_DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:2348,1
    - Dst: MP_MIN
      Src: /src/nss/lib/freebl/mpi/mpi.c:2351,1
    - Dst: MP_DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:2352,1
    - Dst: s_mp_mul_d_add_offset
      Src: /src/nss/lib/freebl/mpi/mpi.c:2356,1
    - Dst: s_mp_clamp
      Src: /src/nss/lib/freebl/mpi/mpi.c:2359,1
    - Dst: s_mp_div_2d
      Src: /src/nss/lib/freebl/mpi/mpi.c:2360,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 4
    argNames:
    - c
    - p
    - k
    - x
    argTypes:
    - mp_int*
    - mp_int*
    - int
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2365
      start: 2329
    functionDepth: 2
    functionLinenumber: 2329
    functionLinenumberEnd: 2365
    functionName: s_mp_fixup_reciprocal
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 0
    functionsReached:
    - MP_CHECKOK
    - mp_add
    - MP_MIN
    - s_mp_div_2d
    - s_mp_clamp
    - mp_cmp_z
    - MP_MAX
    - s_mp_pad
    - mp_copy
    - s_mp_invmod_radix
    - MP_HOWMANY
    - MP_USED
    - MP_DIGIT
    - s_mp_mul_d_add_offset
    linkageType: ''
    returnType: mp_err
    signature: mp_err s_mp_fixup_reciprocal(const mp_int *c, const mp_int *p, int
      k, mp_int *x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2382,1
    - Dst: mp_cmp_z
      Src: /src/nss/lib/freebl/mpi/mpi.c:2384,1
    - Dst: mp_cmp_d
      Src: /src/nss/lib/freebl/mpi/mpi.c:2384,1
    - Dst: mp_iseven
      Src: /src/nss/lib/freebl/mpi/mpi.c:2387,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2390,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/mpi/mpi.c:2390,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2392,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/mpi/mpi.c:2392,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2394,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/mpi/mpi.c:2394,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2396,1
    - Dst: mp_init_copy
      Src: /src/nss/lib/freebl/mpi/mpi.c:2396,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2398,1
    - Dst: mp_init_copy
      Src: /src/nss/lib/freebl/mpi/mpi.c:2398,1
    - Dst: mp_set
      Src: /src/nss/lib/freebl/mpi/mpi.c:2401,1
    - Dst: mp_set
      Src: /src/nss/lib/freebl/mpi/mpi.c:2402,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:2405,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:2405,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:2405,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:2405,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2406,1
    - Dst: s_mp_grow
      Src: /src/nss/lib/freebl/mpi/mpi.c:2406,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2407,1
    - Dst: s_mp_grow
      Src: /src/nss/lib/freebl/mpi/mpi.c:2407,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2408,1
    - Dst: s_mp_grow
      Src: /src/nss/lib/freebl/mpi/mpi.c:2408,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2409,1
    - Dst: s_mp_grow
      Src: /src/nss/lib/freebl/mpi/mpi.c:2409,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2410,1
    - Dst: s_mp_grow
      Src: /src/nss/lib/freebl/mpi/mpi.c:2410,1
    - Dst: mpl_significant_bits
      Src: /src/nss/lib/freebl/mpi/mpi.c:2413,1
    - Dst: mpl_significant_bits
      Src: /src/nss/lib/freebl/mpi/mpi.c:2414,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:2425,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:2428,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:2429,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2431,1
    - Dst: mp_cswap
      Src: /src/nss/lib/freebl/mpi/mpi.c:2431,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2432,1
    - Dst: mp_cswap
      Src: /src/nss/lib/freebl/mpi/mpi.c:2432,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2438,1
    - Dst: mp_add
      Src: /src/nss/lib/freebl/mpi/mpi.c:2438,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2439,1
    - Dst: mp_cswap
      Src: /src/nss/lib/freebl/mpi/mpi.c:2439,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:2439,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2441,1
    - Dst: mp_add
      Src: /src/nss/lib/freebl/mpi/mpi.c:2441,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2442,1
    - Dst: mp_cswap
      Src: /src/nss/lib/freebl/mpi/mpi.c:2442,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:2442,1
    - Dst: s_mp_div_2
      Src: /src/nss/lib/freebl/mpi/mpi.c:2443,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2449,1
    - Dst: mp_add
      Src: /src/nss/lib/freebl/mpi/mpi.c:2449,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2450,1
    - Dst: mp_cswap
      Src: /src/nss/lib/freebl/mpi/mpi.c:2450,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:2450,1
    - Dst: s_mp_div_2
      Src: /src/nss/lib/freebl/mpi/mpi.c:2451,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:2459,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:2459,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:2461,1
    - Dst: mp_cmp_d
      Src: /src/nss/lib/freebl/mpi/mpi.c:2464,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2470,1
    - Dst: mp_mod
      Src: /src/nss/lib/freebl/mpi/mpi.c:2470,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpi.c:2474,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 57
    argCount: 3
    argNames:
    - a
    - m
    - c
    argTypes:
    - mp_int*
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2476
      start: 2372
    functionDepth: 5
    functionLinenumber: 2372
    functionLinenumberEnd: 2476
    functionName: s_mp_invmod_odd_m
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 0
    functionsReached:
    - MP_CHECKOK
    - mp_init
    - DIGIT
    - mp_add
    - USED
    - mp_cswap
    - ARGCHK
    - mp_mod
    - mp_cmp_z
    - mp_iseven
    - mp_cmp_d
    - mp_set
    - s_mp_div_2
    - mp_init_copy
    - s_mp_grow
    - SIGN
    - mp_clear
    - mpl_significant_bits
    linkageType: ''
    returnType: mp_err
    signature: mp_err s_mp_invmod_odd_m(const mp_int *a, const mp_int *m, mp_int *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2485,1
    - Dst: mp_cmp_z
      Src: /src/nss/lib/freebl/mpi/mpi.c:2487,1
    - Dst: mp_cmp_z
      Src: /src/nss/lib/freebl/mpi/mpi.c:2487,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:2490,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:2491,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2492,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/mpi/mpi.c:2492,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2493,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/mpi/mpi.c:2493,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2495,1
    - Dst: mp_xgcd
      Src: /src/nss/lib/freebl/mpi/mpi.c:2495,1
    - Dst: mp_cmp_d
      Src: /src/nss/lib/freebl/mpi/mpi.c:2497,1
    - Dst: mp_mod
      Src: /src/nss/lib/freebl/mpi/mpi.c:2502,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:2503,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:2503,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpi.c:2506,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpi.c:2507,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - a
    - m
    - c
    argTypes:
    - mp_int*
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2510
      start: 2479
    functionDepth: 5
    functionLinenumber: 2479
    functionLinenumberEnd: 2510
    functionName: mp_invmod_xgcd
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 1
    functionsReached:
    - mp_init
    - MP_CHECKOK
    - ARGCHK
    - mp_mod
    - mp_cmp_z
    - mp_xgcd
    - mp_cmp_d
    - mp_clear
    - SIGN
    - MP_DIGITS
    linkageType: ''
    returnType: mp_err
    signature: mp_err mp_invmod_xgcd(const mp_int *a, const mp_int *m, mp_int *c)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mp_iseven
      Src: /src/nss/lib/freebl/mpi/mpi.c:2524,1
    - Dst: s_mp_invmod_radix
      Src: /src/nss/lib/freebl/mpi/mpi.c:2532,1
    - Dst: MP_DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:2532,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:2534,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:2534,1
    - Dst: mp_set
      Src: /src/nss/lib/freebl/mpi/mpi.c:2537,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:2544,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:2545,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:2546,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:2547,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:2548,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2549,1
    - Dst: mp_init_copy
      Src: /src/nss/lib/freebl/mpi/mpi.c:2549,1
    - Dst: s_mp_mod_2d
      Src: /src/nss/lib/freebl/mpi/mpi.c:2550,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2551,1
    - Dst: mp_init_copy
      Src: /src/nss/lib/freebl/mpi/mpi.c:2551,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2552,1
    - Dst: mp_init_copy
      Src: /src/nss/lib/freebl/mpi/mpi.c:2552,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2553,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/mpi/mpi.c:2553,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2554,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/mpi/mpi.c:2554,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2555,1
    - Dst: s_mp_2expt
      Src: /src/nss/lib/freebl/mpi/mpi.c:2555,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2557,1
    - Dst: mp_mul
      Src: /src/nss/lib/freebl/mpi/mpi.c:2557,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2558,1
    - Dst: mp_sub
      Src: /src/nss/lib/freebl/mpi/mpi.c:2558,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2559,1
    - Dst: mp_mul
      Src: /src/nss/lib/freebl/mpi/mpi.c:2559,1
    - Dst: s_mp_mod_2d
      Src: /src/nss/lib/freebl/mpi/mpi.c:2560,1
    - Dst: MP_SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:2561,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2562,1
    - Dst: mp_add
      Src: /src/nss/lib/freebl/mpi/mpi.c:2562,1
    - Dst: mp_cmp
      Src: /src/nss/lib/freebl/mpi/mpi.c:2564,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2566,1
    - Dst: mp_copy
      Src: /src/nss/lib/freebl/mpi/mpi.c:2566,1
    - Dst: mp_exch
      Src: /src/nss/lib/freebl/mpi/mpi.c:2571,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpi.c:2575,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpi.c:2576,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpi.c:2577,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpi.c:2578,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpi.c:2579,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 47
    argCount: 3
    argNames:
    - a
    - k
    - c
    argTypes:
    - mp_int*
    - mp_size
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2581
      start: 2514
    functionDepth: 4
    functionLinenumber: 2514
    functionLinenumberEnd: 2581
    functionName: s_mp_invmod_2d
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 0
    functionsReached:
    - s_mp_2expt
    - mp_init_copy
    - mp_add
    - mp_mul
    - mp_exch
    - mp_iseven
    - MP_DIGITS
    - mp_clear
    - mp_init
    - mp_copy
    - s_mp_invmod_radix
    - mp_cmp
    - SIGN
    - MP_CHECKOK
    - s_mp_mod_2d
    - MP_SIGN
    - mp_sub
    - mp_set
    - MP_DIGIT
    linkageType: ''
    returnType: mp_err
    signature: mp_err s_mp_invmod_2d(const mp_int *a, mp_size k, mp_int *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2592,1
    - Dst: s_mp_ispow2
      Src: /src/nss/lib/freebl/mpi/mpi.c:2597,1
    - Dst: s_mp_invmod_2d
      Src: /src/nss/lib/freebl/mpi/mpi.c:2599,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:2601,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:2602,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:2603,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:2604,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:2605,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:2606,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:2607,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2609,1
    - Dst: mp_init_copy
      Src: /src/nss/lib/freebl/mpi/mpi.c:2609,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2610,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/mpi/mpi.c:2610,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2611,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/mpi/mpi.c:2611,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2612,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/mpi/mpi.c:2612,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2613,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/mpi/mpi.c:2613,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2614,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/mpi/mpi.c:2614,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2615,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/mpi/mpi.c:2615,1
    - Dst: mp_trailing_zeros
      Src: /src/nss/lib/freebl/mpi/mpi.c:2617,1
    - Dst: s_mp_div_2d
      Src: /src/nss/lib/freebl/mpi/mpi.c:2618,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2619,1
    - Dst: s_mp_2expt
      Src: /src/nss/lib/freebl/mpi/mpi.c:2619,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2622,1
    - Dst: s_mp_invmod_odd_m
      Src: /src/nss/lib/freebl/mpi/mpi.c:2622,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2624,1
    - Dst: s_mp_invmod_2d
      Src: /src/nss/lib/freebl/mpi/mpi.c:2624,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2632,1
    - Dst: s_mp_invmod_2d
      Src: /src/nss/lib/freebl/mpi/mpi.c:2632,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2635,1
    - Dst: mp_sub
      Src: /src/nss/lib/freebl/mpi/mpi.c:2635,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2636,1
    - Dst: mp_mul
      Src: /src/nss/lib/freebl/mpi/mpi.c:2636,1
    - Dst: s_mp_mod_2d
      Src: /src/nss/lib/freebl/mpi/mpi.c:2637,1
    - Dst: MP_SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:2638,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2639,1
    - Dst: mp_add
      Src: /src/nss/lib/freebl/mpi/mpi.c:2639,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2643,1
    - Dst: mp_mul
      Src: /src/nss/lib/freebl/mpi/mpi.c:2643,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2644,1
    - Dst: mp_add
      Src: /src/nss/lib/freebl/mpi/mpi.c:2644,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2646,1
    - Dst: mp_mod
      Src: /src/nss/lib/freebl/mpi/mpi.c:2646,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpi.c:2649,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpi.c:2650,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpi.c:2651,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpi.c:2652,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpi.c:2653,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpi.c:2654,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpi.c:2655,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 45
    argCount: 3
    argNames:
    - a
    - m
    - c
    argTypes:
    - mp_int*
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2657
      start: 2583
    functionDepth: 6
    functionLinenumber: 2583
    functionLinenumberEnd: 2657
    functionName: s_mp_invmod_even_m
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 0
    functionsReached:
    - MP_CHECKOK
    - mp_init
    - s_mp_invmod_odd_m
    - mp_add
    - s_mp_div_2d
    - ARGCHK
    - mp_mul
    - s_mp_2expt
    - s_mp_mod_2d
    - mp_mod
    - MP_SIGN
    - mp_sub
    - s_mp_invmod_2d
    - mp_init_copy
    - mp_trailing_zeros
    - mp_clear
    - s_mp_ispow2
    - MP_DIGITS
    linkageType: ''
    returnType: mp_err
    signature: mp_err s_mp_invmod_even_m(const mp_int *a, const mp_int *m, mp_int
      *c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2672,1
    - Dst: mp_cmp_z
      Src: /src/nss/lib/freebl/mpi/mpi.c:2674,1
    - Dst: mp_cmp_z
      Src: /src/nss/lib/freebl/mpi/mpi.c:2674,1
    - Dst: mp_isodd
      Src: /src/nss/lib/freebl/mpi/mpi.c:2677,1
    - Dst: s_mp_invmod_odd_m
      Src: /src/nss/lib/freebl/mpi/mpi.c:2678,1
    - Dst: mp_iseven
      Src: /src/nss/lib/freebl/mpi/mpi.c:2680,1
    - Dst: s_mp_invmod_even_m
      Src: /src/nss/lib/freebl/mpi/mpi.c:2683,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 3
    argNames:
    - a
    - m
    - c
    argTypes:
    - mp_int*
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2685
      start: 2669
    functionDepth: 7
    functionLinenumber: 2669
    functionLinenumberEnd: 2685
    functionName: mp_invmod
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 6
    functionsReached:
    - s_mp_invmod_odd_m
    - ARGCHK
    - mp_cmp_z
    - mp_iseven
    - mp_isodd
    - s_mp_invmod_even_m
    linkageType: ''
    returnType: mp_err
    signature: mp_err mp_invmod(const mp_int *a, const mp_int *m, mp_int *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fputc
      Src: /src/nss/lib/freebl/mpi/mpi.c:2710,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:2710,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:2712,1
    - Dst: fprintf
      Src: /src/nss/lib/freebl/mpi/mpi.c:2713,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:2713,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - mp
    - ofp
    argTypes:
    - mp_int*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2716
      start: 2702
    functionDepth: 1
    functionLinenumber: 2702
    functionLinenumberEnd: 2716
    functionName: mp_print
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 0
    functionsReached:
    - DIGIT
    - fputc
    - USED
    - fprintf
    - SIGN
    linkageType: ''
    returnType: void
    signature: void mp_print(mp_int *mp, FILE *ofp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2740,1
    - Dst: mp_zero
      Src: /src/nss/lib/freebl/mpi/mpi.c:2742,1
    - Dst: mp_mul_d
      Src: /src/nss/lib/freebl/mpi/mpi.c:2746,1
    - Dst: mp_add_d
      Src: /src/nss/lib/freebl/mpi/mpi.c:2748,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:2754,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:2756,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 3
    argNames:
    - mp
    - str
    - len
    argTypes:
    - mp_int*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2760
      start: 2733
    functionDepth: 3
    functionLinenumber: 2733
    functionLinenumberEnd: 2760
    functionName: mp_read_raw
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 1
    functionsReached:
    - mp_add_d
    - ARGCHK
    - mp_zero
    - SIGN
    - mp_mul_d
    linkageType: ''
    returnType: mp_err
    signature: mp_err mp_read_raw(mp_int *mp, char *str, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2769,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:2771,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mp
    argTypes:
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2773
      start: 2766
    functionDepth: 1
    functionLinenumber: 2766
    functionLinenumberEnd: 2773
    functionName: mp_raw_size
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 1
    functionsReached:
    - ARGCHK
    - USED
    linkageType: ''
    returnType: int
    signature: int mp_raw_size(mp_int *mp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2784,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:2786,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:2789,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:2790,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - mp
    - str
    argTypes:
    - mp_int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2800
      start: 2779
    functionDepth: 1
    functionLinenumber: 2779
    functionLinenumberEnd: 2800
    functionName: mp_toraw
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 1
    functionsReached:
    - ARGCHK
    - DIGIT
    - SIGN
    - USED
    linkageType: ''
    returnType: mp_err
    signature: mp_err mp_toraw(mp_int *mp, char *str)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2822,1
    - Dst: mp_zero
      Src: /src/nss/lib/freebl/mpi/mpi.c:2825,1
    - Dst: s_mp_tovalue
      Src: /src/nss/lib/freebl/mpi/mpi.c:2829,1
    - Dst: s_mp_tovalue
      Src: /src/nss/lib/freebl/mpi/mpi.c:2843,1
    - Dst: s_mp_mul_d
      Src: /src/nss/lib/freebl/mpi/mpi.c:2844,1
    - Dst: s_mp_add_d
      Src: /src/nss/lib/freebl/mpi/mpi.c:2846,1
    - Dst: s_mp_cmp_d
      Src: /src/nss/lib/freebl/mpi/mpi.c:2851,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:2852,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:2854,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 25
    argCount: 3
    argNames:
    - mp
    - str
    - radix
    argTypes:
    - mp_int*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2858
      start: 2815
    functionDepth: 2
    functionLinenumber: 2815
    functionLinenumberEnd: 2858
    functionName: mp_read_radix
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 38
    functionsReached:
    - s_mp_tovalue
    - s_mp_add_d
    - s_mp_cmp_d
    - ARGCHK
    - mp_zero
    - s_mp_mul_d
    - SIGN
    linkageType: ''
    returnType: mp_err
    signature: mp_err mp_read_radix(mp_int *mp, const char *str, int radix)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: s_mp_tovalue
      Src: /src/nss/lib/freebl/mpi/mpi.c:2870,1
    - Dst: mp_read_radix
      Src: /src/nss/lib/freebl/mpi/mpi.c:2893,1
    - Dst: MP_SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:2895,1
    - Dst: s_mp_cmp_d
      Src: /src/nss/lib/freebl/mpi/mpi.c:2895,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 3
    argNames:
    - a
    - str
    - default_radix
    argTypes:
    - mp_int*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2898
      start: 2860
    functionDepth: 3
    functionLinenumber: 2860
    functionLinenumberEnd: 2898
    functionName: mp_read_variable_radix
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 0
    functionsReached:
    - s_mp_cmp_d
    - s_mp_tovalue
    - mp_read_radix
    - MP_SIGN
    linkageType: ''
    returnType: mp_err
    signature: mp_err mp_read_variable_radix(mp_int *a, const char *str, int default_radix)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:2912,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:2914,1
    - Dst: s_mp_outlen
      Src: /src/nss/lib/freebl/mpi/mpi.c:2914,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - mp
    - radix
    argTypes:
    - mp_int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2916
      start: 2904
    functionDepth: 1
    functionLinenumber: 2904
    functionLinenumberEnd: 2916
    functionName: mp_radix_size
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 0
    functionsReached:
    - s_mp_outlen
    - SIGN
    - USED
    linkageType: ''
    returnType: int
    signature: int mp_radix_size(mp_int *mp, int radix)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2927,1
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:2928,1
    - Dst: mp_cmp_z
      Src: /src/nss/lib/freebl/mpi/mpi.c:2930,1
    - Dst: mp_init_copy
      Src: /src/nss/lib/freebl/mpi/mpi.c:2940,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:2944,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:2945,1
    - Dst: mp_cmp_z
      Src: /src/nss/lib/freebl/mpi/mpi.c:2948,1
    - Dst: mp_div_d
      Src: /src/nss/lib/freebl/mpi/mpi.c:2949,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpi.c:2950,1
    - Dst: s_mp_todigit
      Src: /src/nss/lib/freebl/mpi/mpi.c:2955,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpi.c:2978,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 3
    argNames:
    - mp
    - str
    - radix
    argTypes:
    - mp_int*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2983
      start: 2922
    functionDepth: 3
    functionLinenumber: 2922
    functionLinenumberEnd: 2983
    functionName: mp_toradix
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 28
    functionsReached:
    - ARGCHK
    - mp_cmp_z
    - mp_init_copy
    - s_mp_todigit
    - SIGN
    - mp_div_d
    - mp_clear
    linkageType: ''
    returnType: mp_err
    signature: mp_err mp_toradix(mp_int *mp, char *str, int radix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s_mp_tovalue
      Src: /src/nss/lib/freebl/mpi/mpi.c:2992,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ch
    - r
    argTypes:
    - char
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2994
      start: 2989
    functionDepth: 1
    functionLinenumber: 2989
    functionLinenumberEnd: 2994
    functionName: mp_tovalue
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 3
    functionsReached:
    - s_mp_tovalue
    linkageType: ''
    returnType: int
    signature: int mp_tovalue(char ch, int r)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ec
    argTypes:
    - mp_err
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3023
      start: 3010
    functionDepth: 0
    functionLinenumber: 3010
    functionLinenumberEnd: 3023
    functionName: mp_strerror
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      mp_strerror(mp_err ec)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:3039,1
    - Dst: ALLOC
      Src: /src/nss/lib/freebl/mpi/mpi.c:3041,1
    - Dst: MP_ROUNDUP
      Src: /src/nss/lib/freebl/mpi/mpi.c:3045,1
    - Dst: s_mp_alloc
      Src: /src/nss/lib/freebl/mpi/mpi.c:3047,1
    - Dst: s_mp_copy
      Src: /src/nss/lib/freebl/mpi/mpi.c:3050,1
    - Dst: DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:3050,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:3050,1
    - Dst: s_mp_setz
      Src: /src/nss/lib/freebl/mpi/mpi.c:3052,1
    - Dst: DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:3052,1
    - Dst: ALLOC
      Src: /src/nss/lib/freebl/mpi/mpi.c:3052,1
    - Dst: s_mp_free
      Src: /src/nss/lib/freebl/mpi/mpi.c:3053,1
    - Dst: DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:3053,1
    - Dst: DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:3054,1
    - Dst: ALLOC
      Src: /src/nss/lib/freebl/mpi/mpi.c:3055,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - mp
    - min
    argTypes:
    - mp_int*
    - mp_size
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3060
      start: 3036
    functionDepth: 1
    functionLinenumber: 3036
    functionLinenumberEnd: 3060
    functionName: s_mp_grow
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 3
    functionsReached:
    - s_mp_copy
    - ALLOC
    - MP_ROUNDUP
    - USED
    - ARGCHK
    - s_mp_setz
    - s_mp_alloc
    - s_mp_free
    - DIGITS
    linkageType: ''
    returnType: mp_err
    signature: mp_err s_mp_grow(mp_int *mp, mp_size min)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:3070,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:3072,1
    - Dst: ALLOC
      Src: /src/nss/lib/freebl/mpi/mpi.c:3076,1
    - Dst: s_mp_grow
      Src: /src/nss/lib/freebl/mpi/mpi.c:3077,1
    - Dst: s_mp_setz
      Src: /src/nss/lib/freebl/mpi/mpi.c:3080,1
    - Dst: DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:3080,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:3080,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:3080,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:3084,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - mp
    - min
    argTypes:
    - mp_int*
    - mp_size
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3089
      start: 3067
    functionDepth: 2
    functionLinenumber: 3067
    functionLinenumberEnd: 3089
    functionName: s_mp_pad
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 11
    functionsReached:
    - ALLOC
    - USED
    - ARGCHK
    - s_mp_setz
    - DIGITS
    - s_mp_grow
    linkageType: ''
    returnType: mp_err
    signature: mp_err s_mp_pad(mp_int *mp, mp_size min)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/freebl/mpi/mpi.c:3099,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dp
    - count
    argTypes:
    - mp_digit*
    - mp_size
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3100
      start: 3096
    functionDepth: 0
    functionLinenumber: 3096
    functionLinenumberEnd: 3100
    functionName: s_mp_setz
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 7
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void s_mp_setz(mp_digit *dp, mp_size count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/mpi/mpi.c:3110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - sp
    - dp
    - count
    argTypes:
    - mp_digit*
    - mp_digit*
    - mp_size
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3111
      start: 3107
    functionDepth: 1
    functionLinenumber: 3107
    functionLinenumberEnd: 3111
    functionName: s_mp_copy
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 3
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void s_mp_copy(const mp_digit *sp, mp_digit *dp, mp_size count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/nss/lib/freebl/mpi/mpi.c:3121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nb
    - ni
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3123
      start: 3118
    functionDepth: 1
    functionLinenumber: 3118
    functionLinenumberEnd: 3123
    functionName: s_mp_alloc
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 4
    functionsReached:
    - calloc
    linkageType: ''
    returnType: void
    signature: 'void *

      s_mp_alloc(size_t nb, size_t ni)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/nss/lib/freebl/mpi/mpi.c:3134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3136
      start: 3130
    functionDepth: 1
    functionLinenumber: 3130
    functionLinenumberEnd: 3136
    functionName: s_mp_free
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 3
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void s_mp_free(void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:3146,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:3147,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:3149,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:3150,1
    - Dst: MP_SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:3151,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - mp
    argTypes:
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3152
      start: 3143
    functionDepth: 1
    functionLinenumber: 3143
    functionLinenumberEnd: 3152
    functionName: s_mp_clamp
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 7
    functionsReached:
    - MP_SIGN
    - DIGIT
    - MP_USED
    linkageType: ''
    returnType: void
    signature: void s_mp_clamp(mp_int *mp)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3171
      start: 3159
    functionDepth: 0
    functionLinenumber: 3159
    functionLinenumberEnd: 3171
    functionName: s_mp_exch
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void s_mp_exch(mp_int *a, mp_int *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:3193,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:3198,1
    - Dst: MP_DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:3198,1
    - Dst: s_mp_pad
      Src: /src/nss/lib/freebl/mpi/mpi.c:3201,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:3201,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:3205,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:3206,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:3206,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:3211,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - mp
    - p
    argTypes:
    - mp_int*
    - mp_size
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3215
      start: 3187
    functionDepth: 3
    functionLinenumber: 3187
    functionLinenumberEnd: 3215
    functionName: s_mp_lshd
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 1
    functionsReached:
    - DIGIT
    - USED
    - ARGCHK
    - s_mp_pad
    - MP_USED
    - MP_DIGIT
    linkageType: ''
    returnType: mp_err
    signature: mp_err s_mp_lshd(mp_int *mp, mp_size p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:3233,1
    - Dst: MP_DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:3245,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:3245,1
    - Dst: s_mp_pad
      Src: /src/nss/lib/freebl/mpi/mpi.c:3247,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:3247,1
    - Dst: s_mp_lshd
      Src: /src/nss/lib/freebl/mpi/mpi.c:3250,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:3253,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:3255,1
    - Dst: s_mp_clamp
      Src: /src/nss/lib/freebl/mpi/mpi.c:3261,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - mp
    - d
    argTypes:
    - mp_int*
    - mp_digit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3263
      start: 3225
    functionDepth: 4
    functionLinenumber: 3225
    functionLinenumberEnd: 3263
    functionName: s_mp_mul_2d
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 3
    functionsReached:
    - MP_DIGITS
    - s_mp_lshd
    - ARGCHK
    - s_mp_clamp
    - s_mp_pad
    - MP_USED
    - MP_DIGIT
    linkageType: ''
    returnType: mp_err
    signature: mp_err s_mp_mul_2d(mp_int *mp, mp_digit d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:3283,1
    - Dst: s_mp_setz
      Src: /src/nss/lib/freebl/mpi/mpi.c:3284,1
    - Dst: DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:3284,1
    - Dst: ALLOC
      Src: /src/nss/lib/freebl/mpi/mpi.c:3284,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:3285,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:3286,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:3291,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:3293,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:3296,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - mp
    - p
    argTypes:
    - mp_int*
    - mp_size
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3301
      start: 3273
    functionDepth: 1
    functionLinenumber: 3273
    functionLinenumberEnd: 3301
    functionName: s_mp_rshd
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 1
    functionsReached:
    - ALLOC
    - USED
    - s_mp_setz
    - MP_USED
    - DIGITS
    - SIGN
    - MP_DIGITS
    linkageType: ''
    returnType: void
    signature: void s_mp_rshd(mp_int *mp, mp_size p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s_mp_div_2d
      Src: /src/nss/lib/freebl/mpi/mpi.c:3311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mp
    argTypes:
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3313
      start: 3308
    functionDepth: 1
    functionLinenumber: 3308
    functionLinenumberEnd: 3313
    functionName: s_mp_div_2
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 4
    functionsReached:
    - s_mp_div_2d
    linkageType: ''
    returnType: void
    signature: void s_mp_div_2(mp_int *mp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:3326,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:3329,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:3330,1
    - Dst: ALLOC
      Src: /src/nss/lib/freebl/mpi/mpi.c:3339,1
    - Dst: s_mp_grow
      Src: /src/nss/lib/freebl/mpi/mpi.c:3341,1
    - Dst: ALLOC
      Src: /src/nss/lib/freebl/mpi/mpi.c:3341,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:3345,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:3346,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - mp
    argTypes:
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3351
      start: 3319
    functionDepth: 2
    functionLinenumber: 3319
    functionLinenumberEnd: 3351
    functionName: s_mp_mul_2
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 2
    functionsReached:
    - ALLOC
    - DIGIT
    - USED
    - ARGCHK
    - MP_USED
    - s_mp_grow
    - MP_DIGITS
    linkageType: ''
    returnType: mp_err
    signature: mp_err s_mp_mul_2(mp_int *mp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:3369,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:3374,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:3377,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:3378,1
    - Dst: s_mp_clamp
      Src: /src/nss/lib/freebl/mpi/mpi.c:3380,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - mp
    - d
    argTypes:
    - mp_int*
    - mp_digit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3382
      start: 3362
    functionDepth: 2
    functionLinenumber: 3362
    functionLinenumberEnd: 3382
    functionName: s_mp_mod_2d
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 3
    functionsReached:
    - s_mp_clamp
    - DIGIT
    - USED
    linkageType: ''
    returnType: void
    signature: void s_mp_mod_2d(mp_int *mp, mp_digit d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s_mp_rshd
      Src: /src/nss/lib/freebl/mpi/mpi.c:3399,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:3407,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:3408,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:3409,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:3409,1
    - Dst: s_mp_clamp
      Src: /src/nss/lib/freebl/mpi/mpi.c:3412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - mp
    - d
    argTypes:
    - mp_int*
    - mp_digit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3414
      start: 3393
    functionDepth: 2
    functionLinenumber: 3393
    functionLinenumberEnd: 3414
    functionName: s_mp_div_2d
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 8
    functionsReached:
    - s_mp_clamp
    - DIGIT
    - s_mp_rshd
    - USED
    linkageType: ''
    returnType: void
    signature: void s_mp_div_2d(mp_int *mp, mp_digit d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:3439,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:3443,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:3443,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:3450,1
    - Dst: s_mp_mul_2d
      Src: /src/nss/lib/freebl/mpi/mpi.c:3450,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:3451,1
    - Dst: s_mp_mul_2d
      Src: /src/nss/lib/freebl/mpi/mpi.c:3451,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - a
    - b
    - pd
    argTypes:
    - mp_int*
    - mp_int*
    - mp_digit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3458
      start: 3431
    functionDepth: 5
    functionLinenumber: 3431
    functionLinenumberEnd: 3458
    functionName: s_mp_norm
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 0
    functionsReached:
    - MP_CHECKOK
    - DIGIT
    - s_mp_mul_2d
    - USED
    - ARGCHK
    linkageType: ''
    returnType: mp_err
    signature: mp_err s_mp_norm(mp_int *a, mp_int *b, mp_digit *pd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:3476,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:3477,1
    - Dst: ACCUM
      Src: /src/nss/lib/freebl/mpi/mpi.c:3477,1
    - Dst: CARRYOUT
      Src: /src/nss/lib/freebl/mpi/mpi.c:3478,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:3480,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:3481,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:3482,1
    - Dst: ACCUM
      Src: /src/nss/lib/freebl/mpi/mpi.c:3482,1
    - Dst: CARRYOUT
      Src: /src/nss/lib/freebl/mpi/mpi.c:3483,1
    - Dst: s_mp_pad
      Src: /src/nss/lib/freebl/mpi/mpi.c:3490,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:3490,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:3493,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:3498,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:3501,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:3513,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:3514,1
    - Dst: s_mp_pad
      Src: /src/nss/lib/freebl/mpi/mpi.c:3514,1
    - Dst: MP_DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:3515,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - mp
    - d
    argTypes:
    - mp_int*
    - mp_digit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3520
      start: 3469
    functionDepth: 3
    functionLinenumber: 3469
    functionLinenumberEnd: 3520
    functionName: s_mp_add_d
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 5
    functionsReached:
    - MP_CHECKOK
    - DIGIT
    - USED
    - CARRYOUT
    - ACCUM
    - s_mp_pad
    - MP_USED
    - MP_DIGIT
    - MP_DIGITS
    linkageType: ''
    returnType: mp_err
    signature: mp_err s_mp_add_d(mp_int *mp, mp_digit d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:3535,1
    - Dst: CARRYOUT
      Src: /src/nss/lib/freebl/mpi/mpi.c:3536,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:3537,1
    - Dst: ACCUM
      Src: /src/nss/lib/freebl/mpi/mpi.c:3537,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:3540,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:3541,1
    - Dst: CARRYOUT
      Src: /src/nss/lib/freebl/mpi/mpi.c:3542,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:3543,1
    - Dst: ACCUM
      Src: /src/nss/lib/freebl/mpi/mpi.c:3543,1
    - Dst: s_mp_clamp
      Src: /src/nss/lib/freebl/mpi/mpi.c:3548,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:3556,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:3558,1
    - Dst: s_mp_clamp
      Src: /src/nss/lib/freebl/mpi/mpi.c:3568,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - mp
    - d
    argTypes:
    - mp_int*
    - mp_digit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3571
      start: 3527
    functionDepth: 2
    functionLinenumber: 3527
    functionLinenumberEnd: 3571
    functionName: s_mp_sub_d
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 2
    functionsReached:
    - DIGIT
    - USED
    - CARRYOUT
    - ACCUM
    - s_mp_clamp
    - MP_USED
    - MP_DIGITS
    linkageType: ''
    returnType: mp_err
    signature: mp_err s_mp_sub_d(mp_int *mp, mp_digit d)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mp_zero
      Src: /src/nss/lib/freebl/mpi/mpi.c:3586,1
    - Dst: s_mp_ispow2d
      Src: /src/nss/lib/freebl/mpi/mpi.c:3591,1
    - Dst: s_mp_mul_2d
      Src: /src/nss/lib/freebl/mpi/mpi.c:3592,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:3595,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:3596,1
    - Dst: s_mp_pad
      Src: /src/nss/lib/freebl/mpi/mpi.c:3596,1
    - Dst: s_mpv_mul_d
      Src: /src/nss/lib/freebl/mpi/mpi.c:3598,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:3598,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:3598,1
    - Dst: s_mp_clamp
      Src: /src/nss/lib/freebl/mpi/mpi.c:3600,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - a
    - d
    argTypes:
    - mp_int*
    - mp_digit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3605
      start: 3578
    functionDepth: 5
    functionLinenumber: 3578
    functionLinenumberEnd: 3605
    functionName: s_mp_mul_d
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 3
    functionsReached:
    - MP_CHECKOK
    - s_mp_mul_2d
    - s_mp_clamp
    - s_mp_pad
    - s_mp_ispow2d
    - mp_zero
    - MP_USED
    - s_mpv_mul_d
    - MP_DIGITS
    linkageType: ''
    returnType: mp_err
    signature: mp_err s_mp_mul_d(mp_int *a, mp_digit d)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:3639,1
    - Dst: MP_DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:3640,1
    - Dst: MP_DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:3645,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:3652,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:3653,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:3655,1
    - Dst: mp_init_size
      Src: /src/nss/lib/freebl/mpi/mpi.c:3655,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:3655,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:3658,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:3659,1
    - Dst: s_mp_lshd
      Src: /src/nss/lib/freebl/mpi/mpi.c:3668,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:3669,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:3678,1
    - Dst: mp_init_copy
      Src: /src/nss/lib/freebl/mpi/mpi.c:3678,1
    - Dst: MP_DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:3681,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:3682,1
    - Dst: s_mp_norm
      Src: /src/nss/lib/freebl/mpi/mpi.c:3682,1
    - Dst: MP_DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:3685,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:3689,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:3690,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:3693,1
    - Dst: s_mpv_div_2dx1d
      Src: /src/nss/lib/freebl/mpi/mpi.c:3693,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:3701,1
    - Dst: s_mp_lshd
      Src: /src/nss/lib/freebl/mpi/mpi.c:3701,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:3702,1
    - Dst: s_mp_clamp
      Src: /src/nss/lib/freebl/mpi/mpi.c:3717,1
    - Dst: mp_exch
      Src: /src/nss/lib/freebl/mpi/mpi.c:3718,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpi.c:3720,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpi.c:3721,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 66
    argCount: 3
    argNames:
    - mp
    - d
    - r
    argTypes:
    - mp_int*
    - mp_digit
    - mp_digit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3724
      start: 3618
    functionDepth: 6
    functionLinenumber: 3618
    functionLinenumberEnd: 3724
    functionName: s_mp_div_d
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 1
    functionsReached:
    - MP_CHECKOK
    - DIGIT
    - MP_DIGITS
    - USED
    - s_mp_lshd
    - s_mp_norm
    - s_mpv_div_2dx1d
    - s_mp_clamp
    - mp_exch
    - MP_USED
    - mp_init_copy
    - mp_clear
    - MP_DIGIT
    - mp_init_size
    linkageType: ''
    returnType: mp_err
    signature: mp_err s_mp_div_d(mp_int *mp, mp_digit d, mp_digit *r)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:3749,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:3749,1
    - Dst: s_mp_pad
      Src: /src/nss/lib/freebl/mpi/mpi.c:3749,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:3749,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:3759,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:3760,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:3761,1
    - Dst: ACCUM
      Src: /src/nss/lib/freebl/mpi/mpi.c:3765,1
    - Dst: CARRYOUT
      Src: /src/nss/lib/freebl/mpi/mpi.c:3766,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:3779,1
    - Dst: ACCUM
      Src: /src/nss/lib/freebl/mpi/mpi.c:3783,1
    - Dst: CARRYOUT
      Src: /src/nss/lib/freebl/mpi/mpi.c:3784,1
    - Dst: s_mp_pad
      Src: /src/nss/lib/freebl/mpi/mpi.c:3802,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:3805,1
    - Dst: s_mp_pad
      Src: /src/nss/lib/freebl/mpi/mpi.c:3809,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:3812,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3817
      start: 3735
    functionDepth: 3
    functionLinenumber: 3735
    functionLinenumberEnd: 3817
    functionName: s_mp_add
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 0
    functionsReached:
    - DIGIT
    - USED
    - CARRYOUT
    - ACCUM
    - s_mp_pad
    - MP_USED
    - MP_DIGITS
    linkageType: ''
    returnType: mp_err
    signature: mp_err s_mp_add(mp_int *a, const mp_int *b)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: MP_SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:3835,1
    - Dst: MP_SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:3835,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:3836,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:3836,1
    - Dst: s_mp_pad
      Src: /src/nss/lib/freebl/mpi/mpi.c:3843,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:3843,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:3853,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:3854,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:3855,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:3856,1
    - Dst: ACCUM
      Src: /src/nss/lib/freebl/mpi/mpi.c:3860,1
    - Dst: CARRYOUT
      Src: /src/nss/lib/freebl/mpi/mpi.c:3861,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:3874,1
    - Dst: ACCUM
      Src: /src/nss/lib/freebl/mpi/mpi.c:3877,1
    - Dst: CARRYOUT
      Src: /src/nss/lib/freebl/mpi/mpi.c:3878,1
    - Dst: s_mp_pad
      Src: /src/nss/lib/freebl/mpi/mpi.c:3891,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:3894,1
    - Dst: s_mp_pad
      Src: /src/nss/lib/freebl/mpi/mpi.c:3899,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:3902,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:3906,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - mp_int*
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3908
      start: 3822
    functionDepth: 3
    functionLinenumber: 3822
    functionLinenumberEnd: 3908
    functionName: s_mp_add_3arg
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 2
    functionsReached:
    - DIGIT
    - CARRYOUT
    - ACCUM
    - MP_SIGN
    - s_mp_pad
    - MP_USED
    - MP_DIGITS
    linkageType: ''
    returnType: mp_err
    signature: mp_err s_mp_add_3arg(const mp_int *a, const mp_int *b, mp_int *c)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:3926,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:3927,1
    - Dst: s_mp_pad
      Src: /src/nss/lib/freebl/mpi/mpi.c:3927,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:3937,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:3940,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:3940,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:3941,1
    - Dst: ACCUM
      Src: /src/nss/lib/freebl/mpi/mpi.c:3941,1
    - Dst: CARRYOUT
      Src: /src/nss/lib/freebl/mpi/mpi.c:3942,1
    - Dst: MP_DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:3944,1
    - Dst: MP_DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:3945,1
    - Dst: MP_DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:3947,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:3956,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:3957,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:3958,1
    - Dst: ACCUM
      Src: /src/nss/lib/freebl/mpi/mpi.c:3958,1
    - Dst: CARRYOUT
      Src: /src/nss/lib/freebl/mpi/mpi.c:3959,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:3962,1
    - Dst: MP_DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:3963,1
    - Dst: MP_DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:3964,1
    - Dst: s_mp_pad
      Src: /src/nss/lib/freebl/mpi/mpi.c:3975,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:3975,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:3978,1
    - Dst: s_mp_pad
      Src: /src/nss/lib/freebl/mpi/mpi.c:3982,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:3985,1
    - Dst: s_mp_clamp
      Src: /src/nss/lib/freebl/mpi/mpi.c:3988,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 37
    argCount: 3
    argNames:
    - a
    - b
    - offset
    argTypes:
    - mp_int*
    - mp_int*
    - mp_size
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3992
      start: 3912
    functionDepth: 3
    functionLinenumber: 3912
    functionLinenumberEnd: 3992
    functionName: s_mp_add_offset
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 0
    functionsReached:
    - DIGIT
    - USED
    - CARRYOUT
    - ACCUM
    - s_mp_clamp
    - s_mp_pad
    - MP_USED
    - MP_DIGIT
    linkageType: ''
    returnType: mp_err
    signature: mp_err s_mp_add_offset(mp_int *a, mp_int *b, mp_size offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:4015,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:4016,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:4017,1
    - Dst: ACCUM
      Src: /src/nss/lib/freebl/mpi/mpi.c:4021,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:4033,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:4033,1
    - Dst: ACCUM
      Src: /src/nss/lib/freebl/mpi/mpi.c:4037,1
    - Dst: s_mp_clamp
      Src: /src/nss/lib/freebl/mpi/mpi.c:4049,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4061
      start: 3999
    functionDepth: 2
    functionLinenumber: 3999
    functionLinenumberEnd: 4061
    functionName: s_mp_sub
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 0
    functionsReached:
    - ACCUM
    - s_mp_clamp
    - MP_DIGITS
    - MP_USED
    linkageType: ''
    returnType: mp_err
    signature: mp_err s_mp_sub(mp_int *a, const mp_int *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MP_SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:4078,1
    - Dst: MP_SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:4078,1
    - Dst: s_mp_pad
      Src: /src/nss/lib/freebl/mpi/mpi.c:4081,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:4081,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:4090,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:4091,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:4092,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:4093,1
    - Dst: ACCUM
      Src: /src/nss/lib/freebl/mpi/mpi.c:4097,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:4109,1
    - Dst: ACCUM
      Src: /src/nss/lib/freebl/mpi/mpi.c:4112,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:4122,1
    - Dst: s_mp_clamp
      Src: /src/nss/lib/freebl/mpi/mpi.c:4123,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - mp_int*
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4135
      start: 4066
    functionDepth: 3
    functionLinenumber: 4066
    functionLinenumberEnd: 4135
    functionName: s_mp_sub_3arg
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 2
    functionsReached:
    - ACCUM
    - s_mp_clamp
    - MP_SIGN
    - s_mp_pad
    - MP_USED
    - MP_DIGITS
    linkageType: ''
    returnType: mp_err
    signature: mp_err s_mp_sub_3arg(const mp_int *a, const mp_int *b, mp_int *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mp_mul
      Src: /src/nss/lib/freebl/mpi/mpi.c:4142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4143
      start: 4139
    functionDepth: 4
    functionLinenumber: 4139
    functionLinenumberEnd: 4143
    functionName: s_mp_mul
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 4
    functionsReached:
    - mp_mul
    linkageType: ''
    returnType: mp_err
    signature: mp_err s_mp_mul(mp_int *a, const mp_int *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - Phi
    - ','
    - Plo
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4155
      start: 4149
    functionDepth: 0
    functionLinenumber: 4149
    functionLinenumberEnd: 4155
    functionName: MP_MUL_DxD
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MP_MUL_DxD(a, b, Phi, Plo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - Phi
    - ','
    - Plo
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4170
      start: 4156
    functionDepth: 0
    functionLinenumber: 4156
    functionLinenumberEnd: 4170
    functionName: MP_MUL_DxD
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MP_MUL_DxD(a, b, Phi, Plo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ACCUM
      Src: /src/nss/lib/freebl/mpi/mpi.c:4186,1
    - Dst: CARRYOUT
      Src: /src/nss/lib/freebl/mpi/mpi.c:4187,1
    - Dst: ACCUM
      Src: /src/nss/lib/freebl/mpi/mpi.c:4193,1
    - Dst: CARRYOUT
      Src: /src/nss/lib/freebl/mpi/mpi.c:4194,1
    - Dst: MP_MUL_DxD
      Src: /src/nss/lib/freebl/mpi/mpi.c:4202,1
    - Dst: MP_CT_LTU
      Src: /src/nss/lib/freebl/mpi/mpi.c:4205,1
    - Dst: MP_CT_LTU
      Src: /src/nss/lib/freebl/mpi/mpi.c:4207,1
    - Dst: MP_CT_LTU
      Src: /src/nss/lib/freebl/mpi/mpi.c:4217,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 5
    argNames:
    - a
    - a_len
    - b
    - c
    - c_len
    argTypes:
    - mp_digit*
    - mp_size
    - mp_digit
    - mp_digit*
    - mp_size
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4220
      start: 4175
    functionDepth: 1
    functionLinenumber: 4175
    functionLinenumberEnd: 4220
    functionName: s_mpv_mul_d_add_propCT
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 1
    functionsReached:
    - ACCUM
    - MP_CT_LTU
    - MP_MUL_DxD
    - CARRYOUT
    linkageType: ''
    returnType: void
    signature: "void s_mpv_mul_d_add_propCT(const mp_digit *a, mp_size a_len, mp_digit
      b,\n                       mp_digit *c, mp_size c_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ACCUM
      Src: /src/nss/lib/freebl/mpi/mpi.c:4233,1
    - Dst: CARRYOUT
      Src: /src/nss/lib/freebl/mpi/mpi.c:4234,1
    - Dst: MP_MUL_DxD
      Src: /src/nss/lib/freebl/mpi/mpi.c:4243,1
    - Dst: MP_CT_LTU
      Src: /src/nss/lib/freebl/mpi/mpi.c:4246,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - a
    - a_len
    - b
    - c
    argTypes:
    - mp_digit*
    - mp_size
    - mp_digit
    - mp_digit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4252
      start: 4224
    functionDepth: 1
    functionLinenumber: 4224
    functionLinenumberEnd: 4252
    functionName: s_mpv_mul_d
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 3
    functionsReached:
    - ACCUM
    - MP_CT_LTU
    - MP_MUL_DxD
    - CARRYOUT
    linkageType: ''
    returnType: void
    signature: void s_mpv_mul_d(const mp_digit *a, mp_size a_len, mp_digit b, mp_digit
      *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ACCUM
      Src: /src/nss/lib/freebl/mpi/mpi.c:4265,1
    - Dst: CARRYOUT
      Src: /src/nss/lib/freebl/mpi/mpi.c:4266,1
    - Dst: MP_MUL_DxD
      Src: /src/nss/lib/freebl/mpi/mpi.c:4275,1
    - Dst: MP_CT_LTU
      Src: /src/nss/lib/freebl/mpi/mpi.c:4278,1
    - Dst: MP_CT_LTU
      Src: /src/nss/lib/freebl/mpi/mpi.c:4280,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - a
    - a_len
    - b
    - c
    argTypes:
    - mp_digit*
    - mp_size
    - mp_digit
    - mp_digit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4286
      start: 4255
    functionDepth: 1
    functionLinenumber: 4255
    functionLinenumberEnd: 4286
    functionName: s_mpv_mul_d_add
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 2
    functionsReached:
    - ACCUM
    - MP_CT_LTU
    - MP_MUL_DxD
    - CARRYOUT
    linkageType: ''
    returnType: void
    signature: "void s_mpv_mul_d_add(const mp_digit *a, mp_size a_len, mp_digit b,\n
      \               mp_digit *c)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ACCUM
      Src: /src/nss/lib/freebl/mpi/mpi.c:4299,1
    - Dst: CARRYOUT
      Src: /src/nss/lib/freebl/mpi/mpi.c:4300,1
    - Dst: ACCUM
      Src: /src/nss/lib/freebl/mpi/mpi.c:4305,1
    - Dst: CARRYOUT
      Src: /src/nss/lib/freebl/mpi/mpi.c:4306,1
    - Dst: MP_MUL_DxD
      Src: /src/nss/lib/freebl/mpi/mpi.c:4314,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 4
    argNames:
    - a
    - a_len
    - b
    - c
    argTypes:
    - mp_digit*
    - mp_size
    - mp_digit
    - mp_digit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4334
      start: 4290
    functionDepth: 1
    functionLinenumber: 4290
    functionLinenumberEnd: 4334
    functionName: s_mpv_mul_d_add_prop
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 0
    functionsReached:
    - ACCUM
    - MP_MUL_DxD
    - CARRYOUT
    linkageType: ''
    returnType: void
    signature: void s_mpv_mul_d_add_prop(const mp_digit *a, mp_size a_len, mp_digit
      b, mp_digit *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - Phi
    - ','
    - Plo
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4345
      start: 4339
    functionDepth: 0
    functionLinenumber: 4339
    functionLinenumberEnd: 4345
    functionName: MP_SQR_D
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MP_SQR_D(a, Phi, Plo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - Phi
    - ','
    - Plo
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4358
      start: 4346
    functionDepth: 0
    functionLinenumber: 4346
    functionLinenumberEnd: 4358
    functionName: MP_SQR_D
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MP_SQR_D(a, Phi, Plo)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ADD_SQUARE
      Src: /src/nss/lib/freebl/mpi/mpi.c:4380,1
    - Dst: ADD_SQUARE
      Src: /src/nss/lib/freebl/mpi/mpi.c:4381,1
    - Dst: ADD_SQUARE
      Src: /src/nss/lib/freebl/mpi/mpi.c:4382,1
    - Dst: ADD_SQUARE
      Src: /src/nss/lib/freebl/mpi/mpi.c:4383,1
    - Dst: ADD_SQUARE
      Src: /src/nss/lib/freebl/mpi/mpi.c:4392,1
    - Dst: ADD_SQUARE
      Src: /src/nss/lib/freebl/mpi/mpi.c:4394,1
    - Dst: ADD_SQUARE
      Src: /src/nss/lib/freebl/mpi/mpi.c:4396,1
    - Dst: ACCUM
      Src: /src/nss/lib/freebl/mpi/mpi.c:4403,1
    - Dst: MP_SQR_D
      Src: /src/nss/lib/freebl/mpi/mpi.c:4412,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 47
    argCount: 3
    argNames:
    - pa
    - a_len
    - ps
    argTypes:
    - mp_digit*
    - mp_size
    - mp_digit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4435
      start: 4362
    functionDepth: 1
    functionLinenumber: 4362
    functionLinenumberEnd: 4435
    functionName: s_mpv_sqr_add_prop
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 1
    functionsReached:
    - ADD_SQUARE
    - ACCUM
    - MP_SQR_D
    linkageType: ''
    returnType: void
    signature: void s_mpv_sqr_add_prop(const mp_digit *pa, mp_size a_len, mp_digit
      *ps)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4378
      start: 4371
    functionDepth: 0
    functionLinenumber: 4371
    functionLinenumberEnd: 4378
    functionName: ADD_SQUARE
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_SQUARE(n)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 5
    argNames:
    - Nhi
    - Nlo
    - divisor
    - qp
    - rp
    argTypes:
    - mp_digit
    - mp_digit
    - mp_digit
    - mp_digit*
    - mp_digit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4478
      start: 4443
    functionDepth: 0
    functionLinenumber: 4443
    functionLinenumberEnd: 4478
    functionName: s_mpv_div_2dx1d
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: mp_err
    signature: "mp_err s_mpv_div_2dx1d(mp_digit Nhi, mp_digit Nlo, mp_digit divisor,\n
      \               mp_digit *qp, mp_digit *rp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mp_init_size
      Src: /src/nss/lib/freebl/mpi/mpi.c:4490,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:4490,1
    - Dst: mp_sqr
      Src: /src/nss/lib/freebl/mpi/mpi.c:4492,1
    - Dst: s_mp_exch
      Src: /src/nss/lib/freebl/mpi/mpi.c:4494,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpi.c:4496,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - a
    argTypes:
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4498
      start: 4484
    functionDepth: 2
    functionLinenumber: 4484
    functionLinenumberEnd: 4498
    functionName: s_mp_sqr
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 4
    functionsReached:
    - mp_sqr
    - USED
    - s_mp_exch
    - mp_clear
    - mp_init_size
    linkageType: ''
    returnType: mp_err
    signature: mp_err s_mp_sqr(mp_int *a)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mp_cmp_z
      Src: /src/nss/lib/freebl/mpi/mpi.c:4523,1
    - Dst: DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:4526,1
    - Dst: s_mp_ispow2
      Src: /src/nss/lib/freebl/mpi/mpi.c:4528,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:4529,1
    - Dst: mp_copy
      Src: /src/nss/lib/freebl/mpi/mpi.c:4529,1
    - Dst: s_mp_div_2d
      Src: /src/nss/lib/freebl/mpi/mpi.c:4530,1
    - Dst: s_mp_mod_2d
      Src: /src/nss/lib/freebl/mpi/mpi.c:4531,1
    - Dst: MP_SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:4536,1
    - Dst: MP_SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:4537,1
    - Dst: MP_SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:4538,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:4541,1
    - Dst: mp_init_size
      Src: /src/nss/lib/freebl/mpi/mpi.c:4541,1
    - Dst: MP_ALLOC
      Src: /src/nss/lib/freebl/mpi/mpi.c:4541,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:4544,1
    - Dst: s_mp_norm
      Src: /src/nss/lib/freebl/mpi/mpi.c:4544,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:4547,1
    - Dst: MP_ALLOC
      Src: /src/nss/lib/freebl/mpi/mpi.c:4547,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:4551,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:4551,1
    - Dst: s_mp_cmp
      Src: /src/nss/lib/freebl/mpi/mpi.c:4551,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:4556,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:4556,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:4557,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:4557,1
    - Dst: MP_ALLOC
      Src: /src/nss/lib/freebl/mpi/mpi.c:4558,1
    - Dst: MP_ALLOC
      Src: /src/nss/lib/freebl/mpi/mpi.c:4558,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:4559,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:4559,1
    - Dst: s_mp_cmp
      Src: /src/nss/lib/freebl/mpi/mpi.c:4563,1
    - Dst: assert
      Src: /src/nss/lib/freebl/mpi/mpi.c:4566,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:4568,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:4569,1
    - Dst: MP_ALLOC
      Src: /src/nss/lib/freebl/mpi/mpi.c:4570,1
    - Dst: MP_DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:4575,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:4575,1
    - Dst: MP_DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:4576,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:4576,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:4589,1
    - Dst: s_mpv_div_2dx1d
      Src: /src/nss/lib/freebl/mpi/mpi.c:4589,1
    - Dst: MP_DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:4589,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:4589,1
    - Dst: assert
      Src: /src/nss/lib/freebl/mpi/mpi.c:4594,1
    - Dst: mp_copy
      Src: /src/nss/lib/freebl/mpi/mpi.c:4600,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:4601,1
    - Dst: s_mp_mul_d
      Src: /src/nss/lib/freebl/mpi/mpi.c:4601,1
    - Dst: s_mp_cmp
      Src: /src/nss/lib/freebl/mpi/mpi.c:4610,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:4612,1
    - Dst: s_mp_sub
      Src: /src/nss/lib/freebl/mpi/mpi.c:4612,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:4620,1
    - Dst: s_mp_sub
      Src: /src/nss/lib/freebl/mpi/mpi.c:4620,1
    - Dst: s_mp_clamp
      Src: /src/nss/lib/freebl/mpi/mpi.c:4621,1
    - Dst: MP_DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:4628,1
    - Dst: s_mp_div_2d
      Src: /src/nss/lib/freebl/mpi/mpi.c:4633,1
    - Dst: s_mp_clamp
      Src: /src/nss/lib/freebl/mpi/mpi.c:4636,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpi.c:4639,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 66
    argCount: 3
    argNames:
    - rem
    - div
    - quot
    argTypes:
    - mp_int*
    - mp_int*
    - mp_int*
    assertStmts:
    - condition: (unusedRem >= 0)
      pos:
        line_end: 4565
        line_start: 4565
        source_file: /src/nss/lib/freebl/mpi/mpi.c
    - condition: (q_msd > 0)
      pos:
        line_end: 4593
        line_start: 4593
        source_file: /src/nss/lib/freebl/mpi/mpi.c
    constantsTouched: []
    func_position:
      end: 4643
      start: 4511
    functionDepth: 6
    functionLinenumber: 4511
    functionLinenumberEnd: 4643
    functionName: s_mp_div
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 1
    functionsReached:
    - s_mp_div_2d
    - s_mp_clamp
    - MP_USED
    - DIGITS
    - s_mp_norm
    - mp_cmp_z
    - assert
    - s_mp_mul_d
    - MP_DIGITS
    - mp_clear
    - s_mpv_div_2dx1d
    - s_mp_sub
    - mp_copy
    - s_mp_ispow2
    - MP_ALLOC
    - mp_init_size
    - MP_CHECKOK
    - s_mp_cmp
    - s_mp_mod_2d
    - MP_SIGN
    - MP_DIGIT
    linkageType: ''
    returnType: mp_err
    signature: "mp_err s_mp_div(mp_int *rem,  /* i: dividend, o: remainder */\n         mp_int
      *div,  /* i: divisor                */\n         mp_int *quot)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mp_zero
      Src: /src/nss/lib/freebl/mpi/mpi.c:4658,1
    - Dst: s_mp_pad
      Src: /src/nss/lib/freebl/mpi/mpi.c:4659,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:4662,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - a
    - k
    argTypes:
    - mp_int*
    - mp_digit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4666
      start: 4649
    functionDepth: 3
    functionLinenumber: 4649
    functionLinenumberEnd: 4666
    functionName: s_mp_2expt
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 3
    functionsReached:
    - mp_zero
    - DIGIT
    - s_mp_pad
    linkageType: ''
    returnType: mp_err
    signature: mp_err s_mp_2expt(mp_int *a, mp_digit k)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mp_init_copy
      Src: /src/nss/lib/freebl/mpi/mpi.c:4691,1
    - Dst: s_mp_rshd
      Src: /src/nss/lib/freebl/mpi/mpi.c:4694,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:4694,1
    - Dst: s_mp_mul
      Src: /src/nss/lib/freebl/mpi/mpi.c:4695,1
    - Dst: s_mp_rshd
      Src: /src/nss/lib/freebl/mpi/mpi.c:4696,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:4696,1
    - Dst: s_mp_mod_2d
      Src: /src/nss/lib/freebl/mpi/mpi.c:4699,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:4699,1
    - Dst: s_mp_mul
      Src: /src/nss/lib/freebl/mpi/mpi.c:4702,1
    - Dst: s_mp_mod_2d
      Src: /src/nss/lib/freebl/mpi/mpi.c:4703,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:4703,1
    - Dst: mp_sub
      Src: /src/nss/lib/freebl/mpi/mpi.c:4706,1
    - Dst: mp_cmp_z
      Src: /src/nss/lib/freebl/mpi/mpi.c:4710,1
    - Dst: mp_set
      Src: /src/nss/lib/freebl/mpi/mpi.c:4711,1
    - Dst: s_mp_lshd
      Src: /src/nss/lib/freebl/mpi/mpi.c:4712,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:4712,1
    - Dst: mp_add
      Src: /src/nss/lib/freebl/mpi/mpi.c:4714,1
    - Dst: mp_cmp
      Src: /src/nss/lib/freebl/mpi/mpi.c:4719,1
    - Dst: s_mp_sub
      Src: /src/nss/lib/freebl/mpi/mpi.c:4720,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpi.c:4725,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 3
    argNames:
    - x
    - m
    - mu
    argTypes:
    - mp_int*
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4729
      start: 4685
    functionDepth: 5
    functionLinenumber: 4685
    functionLinenumberEnd: 4729
    functionName: s_mp_reduce
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 1
    functionsReached:
    - mp_add
    - USED
    - s_mp_mod_2d
    - s_mp_lshd
    - mp_cmp_z
    - s_mp_rshd
    - s_mp_sub
    - s_mp_mul
    - mp_sub
    - mp_set
    - mp_init_copy
    - mp_cmp
    - mp_clear
    linkageType: ''
    returnType: mp_err
    signature: mp_err s_mp_reduce(mp_int *x, const mp_int *m, const mp_int *mu)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ARGMPCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:4743,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:4745,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:4747,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:4762,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpi.c:4763,1
    - Dst: CMP_AB
      Src: /src/nss/lib/freebl/mpi/mpi.c:4768,1
    - Dst: CMP_AB
      Src: /src/nss/lib/freebl/mpi/mpi.c:4769,1
    - Dst: CMP_AB
      Src: /src/nss/lib/freebl/mpi/mpi.c:4770,1
    - Dst: CMP_AB
      Src: /src/nss/lib/freebl/mpi/mpi.c:4771,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4786
      start: 4740
    functionDepth: 1
    functionLinenumber: 4740
    functionLinenumberEnd: 4786
    functionName: s_mp_cmp
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 7
    functionsReached:
    - MP_DIGITS
    - ARGMPCHK
    - CMP_AB
    - MP_USED
    linkageType: ''
    returnType: int
    signature: int s_mp_cmp(const mp_int *a, const mp_int *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4761
      start: 4758
    functionDepth: 0
    functionLinenumber: 4758
    functionLinenumberEnd: 4761
    functionName: CMP_AB
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CMP_AB(n)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ARGMPCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:4796,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:4798,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:4801,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:4803,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - a
    - d
    argTypes:
    - mp_int*
    - mp_digit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4808
      start: 4793
    functionDepth: 1
    functionLinenumber: 4793
    functionLinenumberEnd: 4808
    functionName: s_mp_cmp_d
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 12
    functionsReached:
    - DIGIT
    - ARGMPCHK
    - USED
    linkageType: ''
    returnType: int
    signature: int s_mp_cmp_d(const mp_int *a, mp_digit d)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARGMPCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:4824,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:4826,1
    - Dst: MP_DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:4827,1
    - Dst: s_mp_ispow2d
      Src: /src/nss/lib/freebl/mpi/mpi.c:4829,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:4834,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - v
    argTypes:
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4841
      start: 4818
    functionDepth: 1
    functionLinenumber: 4818
    functionLinenumberEnd: 4841
    functionName: s_mp_ispow2
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 2
    functionsReached:
    - DIGIT
    - ARGMPCHK
    - s_mp_ispow2d
    - MP_USED
    - MP_DIGIT
    linkageType: ''
    returnType: int
    signature: int s_mp_ispow2(const mp_int *v)
  - BBCount: 19
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 39
    argCount: 1
    argNames:
    - d
    argTypes:
    - mp_digit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4896
      start: 4847
    functionDepth: 0
    functionLinenumber: 4847
    functionLinenumberEnd: 4896
    functionName: s_mp_ispow2d
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int s_mp_ispow2d(mp_digit d)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: toupper
      Src: /src/nss/lib/freebl/mpi/mpi.c:4922,1
    - Dst: isdigit
      Src: /src/nss/lib/freebl/mpi/mpi.c:4924,1
    - Dst: isupper
      Src: /src/nss/lib/freebl/mpi/mpi.c:4926,1
    - Dst: islower
      Src: /src/nss/lib/freebl/mpi/mpi.c:4928,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 2
    argNames:
    - ch
    - r
    argTypes:
    - char
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4942
      start: 4914
    functionDepth: 0
    functionLinenumber: 4914
    functionLinenumberEnd: 4942
    functionName: s_mp_tovalue
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 3
    functionsReached:
    - isupper
    - isdigit
    - toupper
    - islower
    linkageType: ''
    returnType: int
    signature: int s_mp_tovalue(char ch, int r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tolower
      Src: /src/nss/lib/freebl/mpi/mpi.c:4968,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - val
    - r
    - low
    argTypes:
    - mp_digit
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4972
      start: 4957
    functionDepth: 0
    functionLinenumber: 4957
    functionLinenumberEnd: 4972
    functionName: s_mp_todigit
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 1
    functionsReached:
    - tolower
    linkageType: ''
    returnType: char
    signature: char s_mp_todigit(mp_digit val, int r, int low)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOG_V_2
      Src: /src/nss/lib/freebl/mpi/mpi.c:4986,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bits
    - r
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4988
      start: 4983
    functionDepth: 1
    functionLinenumber: 4983
    functionLinenumberEnd: 4988
    functionName: s_mp_outlen
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 1
    functionsReached:
    - LOG_V_2
    linkageType: ''
    returnType: int
    signature: int s_mp_outlen(int bits, int r)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:5007,1
    - Dst: mp_zero
      Src: /src/nss/lib/freebl/mpi/mpi.c:5009,1
    - Dst: MP_DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:5016,1
    - Dst: mp_cmp_z
      Src: /src/nss/lib/freebl/mpi/mpi.c:5024,1
    - Dst: s_mp_lshd
      Src: /src/nss/lib/freebl/mpi/mpi.c:5028,1
    - Dst: MP_DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:5031,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 3
    argNames:
    - mp
    - str
    - len
    argTypes:
    - mp_int*
    - unsigned char*
    - mp_size
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5034
      start: 5000
    functionDepth: 4
    functionLinenumber: 5000
    functionLinenumberEnd: 5034
    functionName: mp_read_unsigned_octets
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 13
    functionsReached:
    - s_mp_lshd
    - ARGCHK
    - mp_cmp_z
    - mp_zero
    - MP_DIGIT
    linkageType: ''
    returnType: mp_err
    signature: mp_err mp_read_unsigned_octets(mp_int *mp, const unsigned char *str,
      mp_size len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:5045,1
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:5046,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:5046,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:5048,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:5052,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:5053,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - mp
    argTypes:
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5069
      start: 5038
    functionDepth: 1
    functionLinenumber: 5038
    functionLinenumberEnd: 5069
    functionName: mp_unsigned_octet_size
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 2
    functionsReached:
    - ARGCHK
    - DIGIT
    - SIGN
    - USED
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int mp_unsigned_octet_size(const mp_int *mp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:5080,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:5080,1
    - Dst: mp_unsigned_octet_size
      Src: /src/nss/lib/freebl/mpi/mpi.c:5082,1
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:5083,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:5086,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:5087,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 3
    argNames:
    - mp
    - str
    - maxlen
    argTypes:
    - mp_int*
    - unsigned char*
    - mp_size
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5101
      start: 5074
    functionDepth: 2
    functionLinenumber: 5074
    functionLinenumberEnd: 5101
    functionName: mp_to_unsigned_octets
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 2
    functionsReached:
    - mp_unsigned_octet_size
    - DIGIT
    - USED
    - ARGCHK
    - SIGN
    linkageType: ''
    returnType: mp_err
    signature: mp_err mp_to_unsigned_octets(const mp_int *mp, unsigned char *str,
      mp_size maxlen)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:5112,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:5112,1
    - Dst: mp_unsigned_octet_size
      Src: /src/nss/lib/freebl/mpi/mpi.c:5114,1
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:5115,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:5118,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:5119,1
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:5129,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 3
    argNames:
    - mp
    - str
    - maxlen
    argTypes:
    - mp_int*
    - unsigned char*
    - mp_size
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5141
      start: 5106
    functionDepth: 2
    functionLinenumber: 5106
    functionLinenumberEnd: 5141
    functionName: mp_to_signed_octets
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 0
    functionsReached:
    - mp_unsigned_octet_size
    - DIGIT
    - USED
    - ARGCHK
    - SIGN
    linkageType: ''
    returnType: mp_err
    signature: mp_err mp_to_signed_octets(const mp_int *mp, unsigned char *str, mp_size
      maxlen)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:5153,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:5153,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:5156,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:5162,1
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:5167,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:5167,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:5173,1
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpi.c:5175,1
    - Dst: memset
      Src: /src/nss/lib/freebl/mpi/mpi.c:5184,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:5190,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - mp
    - str
    - length
    argTypes:
    - mp_int*
    - unsigned char*
    - mp_size
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5198
      start: 5147
    functionDepth: 1
    functionLinenumber: 5147
    functionLinenumberEnd: 5198
    functionName: mp_to_fixlen_octets
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 6
    functionsReached:
    - DIGIT
    - USED
    - ARGCHK
    - memset
    - SIGN
    linkageType: ''
    returnType: mp_err
    signature: mp_err mp_to_fixlen_octets(const mp_int *mp, unsigned char *str, mp_size
      length)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MP_ALLOC
      Src: /src/nss/lib/freebl/mpi/mpi.c:5214,1
    - Dst: MP_ALLOC
      Src: /src/nss/lib/freebl/mpi/mpi.c:5214,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:5215,1
    - Dst: s_mp_grow
      Src: /src/nss/lib/freebl/mpi/mpi.c:5215,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpi.c:5216,1
    - Dst: s_mp_grow
      Src: /src/nss/lib/freebl/mpi/mpi.c:5216,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:5221,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:5221,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:5222,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpi.c:5223,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:5225,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:5225,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:5226,1
    - Dst: SIGN
      Src: /src/nss/lib/freebl/mpi/mpi.c:5227,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:5230,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:5230,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:5231,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpi.c:5232,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - condition
    - a
    - b
    - numdigits
    argTypes:
    - mp_digit
    - mp_int*
    - mp_int*
    - mp_size
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5237
      start: 5203
    functionDepth: 2
    functionLinenumber: 5203
    functionLinenumberEnd: 5237
    functionName: mp_cswap
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.c
    functionUses: 2
    functionsReached:
    - MP_CHECKOK
    - DIGIT
    - USED
    - s_mp_grow
    - SIGN
    - MP_ALLOC
    linkageType: ''
    returnType: mp_err
    signature: mp_err mp_cswap(mp_digit condition, mp_int *a, mp_int *b, mp_size numdigits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - a
    - a_len
    - b
    - c
    argTypes:
    - mp_digit*
    - mp_size
    - mp_digit
    - mp_digit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 44
    functionName: s_mpv_mul_d
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi_arm.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void s_mpv_mul_d(const mp_digit *a, mp_size a_len, mp_digit b, mp_digit
      *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - a
    - a_len
    - b
    - c
    argTypes:
    - mp_digit*
    - mp_size
    - mp_digit
    - mp_digit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 77
    functionName: s_mpv_mul_d_add
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi_arm.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void s_mpv_mul_d_add(const mp_digit *a, mp_size a_len, mp_digit b,
      mp_digit *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - a
    - a_len
    - b
    - c
    argTypes:
    - mp_digit*
    - mp_size
    - mp_digit
    - mp_digit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 121
    functionName: s_mpv_mul_d_add_prop
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi_arm.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void s_mpv_mul_d_add_prop(const mp_digit *a, mp_size a_len, mp_digit
      b, mp_digit *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - pa
    - a_len
    - ps
    argTypes:
    - mp_digit*
    - mp_size
    - mp_digit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 173
    functionName: s_mpv_sqr_add_prop
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi_arm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void s_mpv_sqr_add_prop(const mp_digit *pa, mp_size a_len, mp_digit
      *ps)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 31
    functionName: mp_clamp
    functionSourceFile: /src/nss/lib/freebl/mpi/mp_comba.c
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mp_clamp(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - j
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 61
    functionName: MULADD
    functionSourceFile: /src/nss/lib/freebl/mpi/mp_comba.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MULADD(i, j)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: COMBA_STORE
    functionSourceFile: /src/nss/lib/freebl/mpi/mp_comba.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMBA_STORE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: COMBA_STORE2
    functionSourceFile: /src/nss/lib/freebl/mpi/mp_comba.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMBA_STORE2(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - j
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 91
    functionName: SQRADD
    functionSourceFile: /src/nss/lib/freebl/mpi/mp_comba.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQRADD(i, j)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - j
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 105
    functionName: SQRADD2
    functionSourceFile: /src/nss/lib/freebl/mpi/mp_comba.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQRADD2(i, j)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - j
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 116
    functionName: SQRADDSC
    functionSourceFile: /src/nss/lib/freebl/mpi/mp_comba.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQRADDSC(i, j)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - j
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 127
    functionName: SQRADDAC
    functionSourceFile: /src/nss/lib/freebl/mpi/mp_comba.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQRADDAC(i, j)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:145,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:146,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:151,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:152,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:155,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:156,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:157,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:160,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:161,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:162,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:163,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:166,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:167,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:168,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:169,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:170,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:173,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:174,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:175,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:176,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:179,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:180,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:181,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:184,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:185,1
    - Dst: COMBA_STORE2
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:186,1
    - Dst: mp_clamp
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 39
    argCount: 3
    argNames:
    - A
    - B
    - C
    argTypes:
    - mp_int*
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 191
    functionName: s_mp_mul_comba_4
    functionSourceFile: /src/nss/lib/freebl/mpi/mp_comba.c
    functionUses: 1
    functionsReached:
    - memcpy
    - COMBA_STORE
    - mp_clamp
    - MULADD
    - COMBA_STORE2
    linkageType: ''
    returnType: void
    signature: void s_mp_mul_comba_4(const mp_int *A, const mp_int *B, mp_int *C)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:198,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:199,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:204,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:205,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:208,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:209,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:210,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:213,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:214,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:215,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:216,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:219,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:220,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:221,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:222,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:223,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:226,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:227,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:228,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:229,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:230,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:231,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:234,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:235,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:236,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:237,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:238,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:239,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:240,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:243,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:244,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:245,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:246,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:247,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:248,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:249,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:250,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:253,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:254,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:255,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:256,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:257,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:258,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:259,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:260,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:261,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:264,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:265,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:266,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:267,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:268,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:269,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:270,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:271,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:274,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:275,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:276,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:277,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:278,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:279,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:280,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:283,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:284,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:285,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:286,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:287,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:288,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:291,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:292,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:293,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:294,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:295,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:298,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:299,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:300,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:301,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:304,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:305,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:306,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:309,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:310,1
    - Dst: COMBA_STORE2
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:311,1
    - Dst: mp_clamp
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 103
    argCount: 3
    argNames:
    - A
    - B
    - C
    argTypes:
    - mp_int*
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 316
    functionName: s_mp_mul_comba_8
    functionSourceFile: /src/nss/lib/freebl/mpi/mp_comba.c
    functionUses: 1
    functionsReached:
    - memcpy
    - COMBA_STORE
    - mp_clamp
    - MULADD
    - COMBA_STORE2
    linkageType: ''
    returnType: void
    signature: void s_mp_mul_comba_8(const mp_int *A, const mp_int *B, mp_int *C)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:323,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:324,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:329,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:330,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:333,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:334,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:335,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:338,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:339,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:340,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:341,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:344,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:345,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:346,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:347,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:348,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:351,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:352,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:353,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:354,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:355,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:356,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:359,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:360,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:361,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:362,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:363,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:364,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:365,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:368,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:369,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:370,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:371,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:372,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:373,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:374,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:375,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:378,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:379,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:380,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:381,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:382,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:383,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:384,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:385,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:386,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:389,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:390,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:391,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:392,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:393,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:394,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:395,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:396,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:397,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:398,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:401,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:402,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:403,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:404,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:405,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:406,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:407,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:408,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:409,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:410,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:411,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:414,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:415,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:416,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:417,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:418,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:419,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:420,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:421,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:422,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:423,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:424,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:425,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:428,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:429,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:430,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:431,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:432,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:433,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:434,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:435,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:436,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:437,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:438,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:439,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:440,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:443,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:444,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:445,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:446,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:447,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:448,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:449,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:450,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:451,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:452,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:453,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:454,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:455,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:456,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:459,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:460,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:461,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:462,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:463,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:464,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:465,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:466,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:467,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:468,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:469,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:470,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:471,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:472,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:473,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:476,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:477,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:478,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:479,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:480,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:481,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:482,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:483,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:484,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:485,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:486,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:487,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:488,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:489,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:490,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:491,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:494,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:495,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:496,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:497,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:498,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:499,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:500,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:501,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:502,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:503,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:504,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:505,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:506,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:507,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:508,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:509,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:510,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:513,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:514,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:515,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:516,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:517,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:518,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:519,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:520,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:521,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:522,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:523,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:524,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:525,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:526,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:527,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:528,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:531,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:532,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:533,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:534,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:535,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:536,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:537,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:538,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:539,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:540,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:541,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:542,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:543,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:544,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:545,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:548,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:549,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:550,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:551,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:552,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:553,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:554,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:555,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:556,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:557,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:558,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:559,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:560,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:561,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:564,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:565,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:566,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:567,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:568,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:569,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:570,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:571,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:572,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:573,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:574,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:575,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:576,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:579,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:580,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:581,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:582,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:583,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:584,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:585,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:586,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:587,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:588,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:589,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:590,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:593,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:594,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:595,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:596,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:597,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:598,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:599,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:600,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:601,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:602,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:603,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:606,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:607,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:608,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:609,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:610,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:611,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:612,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:613,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:614,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:615,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:618,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:619,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:620,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:621,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:622,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:623,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:624,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:625,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:626,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:629,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:630,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:631,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:632,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:633,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:634,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:635,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:636,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:639,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:640,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:641,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:642,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:643,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:644,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:645,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:648,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:649,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:650,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:651,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:652,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:653,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:656,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:657,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:658,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:659,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:660,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:663,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:664,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:665,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:666,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:669,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:670,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:671,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:674,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:675,1
    - Dst: COMBA_STORE2
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:676,1
    - Dst: mp_clamp
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 327
    argCount: 3
    argNames:
    - A
    - B
    - C
    argTypes:
    - mp_int*
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 681
    functionName: s_mp_mul_comba_16
    functionSourceFile: /src/nss/lib/freebl/mpi/mp_comba.c
    functionUses: 1
    functionsReached:
    - memcpy
    - COMBA_STORE
    - mp_clamp
    - MULADD
    - COMBA_STORE2
    linkageType: ''
    returnType: void
    signature: void s_mp_mul_comba_16(const mp_int *A, const mp_int *B, mp_int *C)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:688,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:689,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:694,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:695,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:698,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:699,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:700,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:703,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:704,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:705,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:706,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:709,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:710,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:711,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:712,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:713,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:716,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:717,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:718,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:719,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:720,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:721,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:724,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:725,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:726,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:727,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:728,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:729,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:730,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:733,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:734,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:735,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:736,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:737,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:738,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:739,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:740,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:743,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:744,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:745,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:746,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:747,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:748,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:749,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:750,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:751,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:754,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:755,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:756,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:757,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:758,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:759,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:760,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:761,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:762,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:763,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:766,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:767,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:768,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:769,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:770,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:771,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:772,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:773,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:774,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:775,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:776,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:779,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:780,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:781,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:782,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:783,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:784,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:785,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:786,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:787,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:788,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:789,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:790,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:793,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:794,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:795,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:796,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:797,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:798,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:799,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:800,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:801,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:802,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:803,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:804,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:805,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:808,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:809,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:810,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:811,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:812,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:813,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:814,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:815,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:816,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:817,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:818,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:819,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:820,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:821,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:824,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:825,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:826,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:827,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:828,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:829,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:830,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:831,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:832,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:833,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:834,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:835,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:836,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:837,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:838,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:841,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:842,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:843,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:844,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:845,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:846,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:847,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:848,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:849,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:850,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:851,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:852,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:853,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:854,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:855,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:856,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:859,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:860,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:861,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:862,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:863,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:864,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:865,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:866,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:867,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:868,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:869,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:870,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:871,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:872,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:873,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:874,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:875,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:878,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:879,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:880,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:881,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:882,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:883,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:884,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:885,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:886,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:887,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:888,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:889,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:890,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:891,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:892,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:893,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:894,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:895,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:898,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:899,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:900,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:901,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:902,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:903,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:904,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:905,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:906,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:907,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:908,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:909,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:910,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:911,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:912,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:913,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:914,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:915,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:916,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:919,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:920,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:921,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:922,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:923,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:924,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:925,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:926,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:927,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:928,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:929,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:930,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:931,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:932,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:933,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:934,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:935,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:936,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:937,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:938,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:941,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:942,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:943,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:944,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:945,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:946,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:947,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:948,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:949,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:950,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:951,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:952,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:953,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:954,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:955,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:956,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:957,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:958,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:959,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:960,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:961,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:964,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:965,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:966,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:967,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:968,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:969,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:970,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:971,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:972,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:973,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:974,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:975,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:976,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:977,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:978,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:979,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:980,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:981,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:982,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:983,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:984,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:985,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:988,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:989,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:990,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:991,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:992,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:993,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:994,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:995,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:996,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:997,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:998,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:999,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1000,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1001,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1002,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1003,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1004,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1005,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1006,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1007,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1008,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1009,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1010,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1013,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1014,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1015,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1016,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1017,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1018,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1019,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1020,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1021,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1022,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1023,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1024,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1025,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1026,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1027,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1028,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1029,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1030,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1031,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1032,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1033,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1034,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1035,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1036,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1039,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1040,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1041,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1042,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1043,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1044,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1045,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1046,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1047,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1048,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1049,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1050,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1051,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1052,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1053,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1054,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1055,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1056,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1057,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1058,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1059,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1060,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1061,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1062,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1063,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1066,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1067,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1068,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1069,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1070,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1071,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1072,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1073,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1074,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1075,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1076,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1077,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1078,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1079,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1080,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1081,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1082,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1083,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1084,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1085,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1086,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1087,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1088,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1089,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1090,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1091,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1094,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1095,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1096,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1097,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1098,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1099,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1100,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1101,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1102,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1103,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1104,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1105,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1106,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1107,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1108,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1109,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1110,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1111,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1112,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1113,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1114,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1115,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1116,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1117,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1118,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1119,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1120,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1123,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1124,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1125,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1126,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1127,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1128,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1129,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1130,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1131,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1132,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1133,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1134,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1135,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1136,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1137,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1138,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1139,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1140,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1141,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1142,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1143,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1144,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1145,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1146,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1147,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1148,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1149,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1150,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1153,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1154,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1155,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1156,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1157,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1158,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1159,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1160,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1161,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1162,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1163,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1164,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1165,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1166,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1167,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1168,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1169,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1170,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1171,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1172,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1173,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1174,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1175,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1176,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1177,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1178,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1179,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1180,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1181,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1184,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1185,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1186,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1187,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1188,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1189,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1190,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1191,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1192,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1193,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1194,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1195,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1196,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1197,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1198,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1199,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1200,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1201,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1202,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1203,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1204,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1205,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1206,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1207,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1208,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1209,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1210,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1211,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1212,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1213,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1216,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1217,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1218,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1219,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1220,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1221,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1222,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1223,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1224,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1225,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1226,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1227,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1228,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1229,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1230,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1231,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1232,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1233,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1234,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1235,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1236,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1237,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1238,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1239,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1240,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1241,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1242,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1243,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1244,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1245,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1246,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1249,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1250,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1251,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1252,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1253,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1254,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1255,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1256,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1257,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1258,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1259,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1260,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1261,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1262,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1263,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1264,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1265,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1266,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1267,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1268,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1269,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1270,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1271,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1272,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1273,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1274,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1275,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1276,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1277,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1278,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1279,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1280,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1283,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1284,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1285,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1286,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1287,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1288,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1289,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1290,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1291,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1292,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1293,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1294,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1295,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1296,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1297,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1298,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1299,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1300,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1301,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1302,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1303,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1304,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1305,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1306,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1307,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1308,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1309,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1310,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1311,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1312,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1313,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1314,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1315,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1318,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1319,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1320,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1321,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1322,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1323,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1324,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1325,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1326,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1327,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1328,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1329,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1330,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1331,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1332,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1333,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1334,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1335,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1336,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1337,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1338,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1339,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1340,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1341,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1342,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1343,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1344,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1345,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1346,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1347,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1348,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1349,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1352,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1353,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1354,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1355,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1356,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1357,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1358,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1359,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1360,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1361,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1362,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1363,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1364,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1365,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1366,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1367,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1368,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1369,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1370,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1371,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1372,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1373,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1374,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1375,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1376,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1377,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1378,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1379,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1380,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1381,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1382,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1385,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1386,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1387,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1388,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1389,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1390,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1391,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1392,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1393,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1394,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1395,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1396,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1397,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1398,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1399,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1400,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1401,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1402,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1403,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1404,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1405,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1406,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1407,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1408,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1409,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1410,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1411,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1412,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1413,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1414,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1417,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1418,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1419,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1420,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1421,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1422,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1423,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1424,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1425,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1426,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1427,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1428,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1429,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1430,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1431,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1432,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1433,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1434,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1435,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1436,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1437,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1438,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1439,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1440,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1441,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1442,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1443,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1444,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1445,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1448,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1449,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1450,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1451,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1452,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1453,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1454,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1455,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1456,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1457,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1458,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1459,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1460,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1461,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1462,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1463,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1464,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1465,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1466,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1467,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1468,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1469,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1470,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1471,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1472,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1473,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1474,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1475,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1478,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1479,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1480,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1481,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1482,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1483,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1484,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1485,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1486,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1487,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1488,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1489,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1490,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1491,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1492,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1493,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1494,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1495,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1496,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1497,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1498,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1499,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1500,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1501,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1502,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1503,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1504,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1507,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1508,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1509,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1510,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1511,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1512,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1513,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1514,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1515,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1516,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1517,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1518,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1519,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1520,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1521,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1522,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1523,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1524,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1525,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1526,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1527,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1528,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1529,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1530,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1531,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1532,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1535,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1536,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1537,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1538,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1539,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1540,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1541,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1542,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1543,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1544,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1545,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1546,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1547,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1548,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1549,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1550,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1551,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1552,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1553,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1554,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1555,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1556,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1557,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1558,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1559,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1562,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1563,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1564,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1565,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1566,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1567,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1568,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1569,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1570,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1571,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1572,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1573,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1574,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1575,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1576,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1577,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1578,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1579,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1580,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1581,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1582,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1583,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1584,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1585,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1588,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1589,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1590,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1591,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1592,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1593,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1594,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1595,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1596,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1597,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1598,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1599,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1600,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1601,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1602,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1603,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1604,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1605,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1606,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1607,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1608,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1609,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1610,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1613,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1614,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1615,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1616,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1617,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1618,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1619,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1620,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1621,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1622,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1623,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1624,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1625,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1626,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1627,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1628,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1629,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1630,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1631,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1632,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1633,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1634,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1637,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1638,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1639,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1640,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1641,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1642,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1643,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1644,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1645,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1646,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1647,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1648,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1649,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1650,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1651,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1652,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1653,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1654,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1655,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1656,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1657,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1660,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1661,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1662,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1663,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1664,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1665,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1666,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1667,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1668,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1669,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1670,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1671,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1672,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1673,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1674,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1675,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1676,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1677,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1678,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1679,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1682,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1683,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1684,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1685,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1686,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1687,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1688,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1689,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1690,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1691,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1692,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1693,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1694,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1695,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1696,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1697,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1698,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1699,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1700,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1703,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1704,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1705,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1706,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1707,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1708,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1709,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1710,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1711,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1712,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1713,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1714,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1715,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1716,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1717,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1718,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1719,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1720,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1723,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1724,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1725,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1726,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1727,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1728,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1729,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1730,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1731,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1732,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1733,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1734,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1735,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1736,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1737,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1738,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1739,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1742,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1743,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1744,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1745,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1746,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1747,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1748,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1749,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1750,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1751,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1752,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1753,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1754,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1755,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1756,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1757,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1760,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1761,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1762,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1763,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1764,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1765,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1766,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1767,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1768,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1769,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1770,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1771,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1772,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1773,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1774,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1777,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1778,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1779,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1780,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1781,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1782,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1783,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1784,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1785,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1786,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1787,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1788,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1789,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1790,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1793,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1794,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1795,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1796,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1797,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1798,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1799,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1800,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1801,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1802,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1803,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1804,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1805,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1808,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1809,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1810,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1811,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1812,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1813,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1814,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1815,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1816,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1817,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1818,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1819,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1822,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1823,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1824,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1825,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1826,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1827,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1828,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1829,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1830,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1831,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1832,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1835,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1836,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1837,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1838,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1839,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1840,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1841,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1842,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1843,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1844,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1847,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1848,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1849,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1850,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1851,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1852,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1853,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1854,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1855,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1858,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1859,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1860,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1861,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1862,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1863,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1864,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1865,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1868,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1869,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1870,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1871,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1872,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1873,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1874,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1877,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1878,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1879,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1880,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1881,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1882,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1885,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1886,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1887,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1888,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1889,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1892,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1893,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1894,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1895,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1898,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1899,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1900,1
    - Dst: MULADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1903,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1904,1
    - Dst: COMBA_STORE2
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1905,1
    - Dst: mp_clamp
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1908,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1159
    argCount: 3
    argNames:
    - A
    - B
    - C
    argTypes:
    - mp_int*
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1910
      start: 683
    functionDepth: 1
    functionLinenumber: 683
    functionLinenumberEnd: 1910
    functionName: s_mp_mul_comba_32
    functionSourceFile: /src/nss/lib/freebl/mpi/mp_comba.c
    functionUses: 1
    functionsReached:
    - memcpy
    - COMBA_STORE
    - mp_clamp
    - MULADD
    - COMBA_STORE2
    linkageType: ''
    returnType: void
    signature: void s_mp_mul_comba_32(const mp_int *A, const mp_int *B, mp_int *C)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1924,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1925,1
    - Dst: SQRADD2
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1929,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1930,1
    - Dst: SQRADD2
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1934,1
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1935,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1936,1
    - Dst: SQRADD2
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1940,1
    - Dst: SQRADD2
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1941,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1942,1
    - Dst: SQRADD2
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1946,1
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1947,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1948,1
    - Dst: SQRADD2
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1952,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1953,1
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1957,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1958,1
    - Dst: COMBA_STORE2
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1959,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1964,1
    - Dst: mp_clamp
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1965,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 2
    argNames:
    - A
    - B
    argTypes:
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1966
      start: 1912
    functionDepth: 1
    functionLinenumber: 1912
    functionLinenumberEnd: 1966
    functionName: s_mp_sqr_comba_4
    functionSourceFile: /src/nss/lib/freebl/mpi/mp_comba.c
    functionUses: 1
    functionsReached:
    - SQRADD
    - memcpy
    - COMBA_STORE
    - SQRADD2
    - mp_clamp
    - COMBA_STORE2
    linkageType: ''
    returnType: void
    signature: void s_mp_sqr_comba_4(const mp_int *A, mp_int *B)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1980,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1981,1
    - Dst: SQRADD2
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1985,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1986,1
    - Dst: SQRADD2
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1990,1
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1991,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1992,1
    - Dst: SQRADD2
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1996,1
    - Dst: SQRADD2
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1997,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:1998,1
    - Dst: SQRADD2
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2002,1
    - Dst: SQRADD2
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2003,1
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2004,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2005,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2009,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2010,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2011,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2013,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2017,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2018,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2019,1
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2021,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2022,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2026,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2027,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2028,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2029,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2031,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2035,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2036,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2037,1
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2039,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2040,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2044,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2045,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2046,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2048,1
    - Dst: SQRADD2
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2052,1
    - Dst: SQRADD2
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2053,1
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2054,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2055,1
    - Dst: SQRADD2
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2059,1
    - Dst: SQRADD2
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2060,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2061,1
    - Dst: SQRADD2
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2065,1
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2066,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2067,1
    - Dst: SQRADD2
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2071,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2072,1
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2076,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2077,1
    - Dst: COMBA_STORE2
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2078,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2083,1
    - Dst: mp_clamp
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2084,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 80
    argCount: 2
    argNames:
    - A
    - B
    argTypes:
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2085
      start: 1968
    functionDepth: 1
    functionLinenumber: 1968
    functionLinenumberEnd: 2085
    functionName: s_mp_sqr_comba_8
    functionSourceFile: /src/nss/lib/freebl/mpi/mp_comba.c
    functionUses: 1
    functionsReached:
    - SQRADDSC
    - SQRADD
    - COMBA_STORE
    - SQRADD2
    - memcpy
    - mp_clamp
    - COMBA_STORE2
    - SQRADDAC
    linkageType: ''
    returnType: void
    signature: void s_mp_sqr_comba_8(const mp_int *A, mp_int *B)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2099,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2100,1
    - Dst: SQRADD2
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2104,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2105,1
    - Dst: SQRADD2
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2109,1
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2110,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2111,1
    - Dst: SQRADD2
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2115,1
    - Dst: SQRADD2
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2116,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2117,1
    - Dst: SQRADD2
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2121,1
    - Dst: SQRADD2
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2122,1
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2123,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2124,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2128,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2129,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2130,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2132,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2136,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2137,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2138,1
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2140,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2141,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2145,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2146,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2147,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2148,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2150,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2154,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2155,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2156,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2157,1
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2159,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2160,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2164,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2165,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2166,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2167,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2168,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2170,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2174,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2175,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2176,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2177,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2178,1
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2180,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2181,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2185,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2186,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2187,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2188,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2189,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2190,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2192,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2196,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2197,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2198,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2199,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2200,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2201,1
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2203,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2204,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2208,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2209,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2210,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2211,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2212,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2213,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2214,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2216,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2220,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2221,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2222,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2223,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2224,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2225,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2226,1
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2228,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2229,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2233,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2234,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2235,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2236,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2237,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2238,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2239,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2240,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2242,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2246,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2247,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2248,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2249,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2250,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2251,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2252,1
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2254,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2255,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2259,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2260,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2261,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2262,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2263,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2264,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2265,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2267,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2271,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2272,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2273,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2274,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2275,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2276,1
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2278,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2279,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2283,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2284,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2285,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2286,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2287,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2288,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2290,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2294,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2295,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2296,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2297,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2298,1
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2300,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2301,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2305,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2306,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2307,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2308,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2309,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2311,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2315,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2316,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2317,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2318,1
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2320,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2321,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2325,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2326,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2327,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2328,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2330,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2334,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2335,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2336,1
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2338,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2339,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2343,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2344,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2345,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2347,1
    - Dst: SQRADD2
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2351,1
    - Dst: SQRADD2
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2352,1
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2353,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2354,1
    - Dst: SQRADD2
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2358,1
    - Dst: SQRADD2
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2359,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2360,1
    - Dst: SQRADD2
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2364,1
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2365,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2366,1
    - Dst: SQRADD2
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2370,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2371,1
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2375,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2376,1
    - Dst: COMBA_STORE2
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2377,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2382,1
    - Dst: mp_clamp
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 228
    argCount: 2
    argNames:
    - A
    - B
    argTypes:
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2384
      start: 2087
    functionDepth: 1
    functionLinenumber: 2087
    functionLinenumberEnd: 2384
    functionName: s_mp_sqr_comba_16
    functionSourceFile: /src/nss/lib/freebl/mpi/mp_comba.c
    functionUses: 1
    functionsReached:
    - SQRADDSC
    - SQRADD
    - COMBA_STORE
    - SQRADD2
    - memcpy
    - mp_clamp
    - COMBA_STORE2
    - SQRADDAC
    linkageType: ''
    returnType: void
    signature: void s_mp_sqr_comba_16(const mp_int *A, mp_int *B)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2398,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2399,1
    - Dst: SQRADD2
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2403,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2404,1
    - Dst: SQRADD2
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2408,1
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2409,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2410,1
    - Dst: SQRADD2
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2414,1
    - Dst: SQRADD2
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2415,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2416,1
    - Dst: SQRADD2
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2420,1
    - Dst: SQRADD2
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2421,1
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2422,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2423,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2427,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2428,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2429,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2431,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2435,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2436,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2437,1
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2439,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2440,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2444,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2445,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2446,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2447,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2449,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2453,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2454,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2455,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2456,1
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2458,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2459,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2463,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2464,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2465,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2466,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2467,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2469,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2473,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2474,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2475,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2476,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2477,1
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2479,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2480,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2484,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2485,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2486,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2487,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2488,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2489,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2491,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2495,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2496,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2497,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2498,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2499,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2500,1
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2502,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2503,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2507,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2508,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2509,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2510,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2511,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2512,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2513,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2515,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2519,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2520,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2521,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2522,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2523,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2524,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2525,1
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2527,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2528,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2532,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2533,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2534,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2535,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2536,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2537,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2538,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2539,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2541,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2545,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2546,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2547,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2548,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2549,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2550,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2551,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2552,1
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2554,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2555,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2559,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2560,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2561,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2562,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2563,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2564,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2565,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2566,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2567,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2569,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2573,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2574,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2575,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2576,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2577,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2578,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2579,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2580,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2581,1
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2583,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2584,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2588,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2589,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2590,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2591,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2592,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2593,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2594,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2595,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2596,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2597,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2599,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2603,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2604,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2605,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2606,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2607,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2608,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2609,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2610,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2611,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2612,1
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2614,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2615,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2619,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2620,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2621,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2622,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2623,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2624,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2625,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2626,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2627,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2628,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2629,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2631,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2635,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2636,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2637,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2638,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2639,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2640,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2641,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2642,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2643,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2644,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2645,1
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2647,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2648,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2652,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2653,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2654,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2655,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2656,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2657,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2658,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2659,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2660,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2661,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2662,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2663,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2665,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2669,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2670,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2671,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2672,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2673,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2674,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2675,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2676,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2677,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2678,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2679,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2680,1
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2682,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2683,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2687,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2688,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2689,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2690,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2691,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2692,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2693,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2694,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2695,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2696,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2697,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2698,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2699,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2701,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2705,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2706,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2707,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2708,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2709,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2710,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2711,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2712,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2713,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2714,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2715,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2716,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2717,1
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2719,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2720,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2724,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2725,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2726,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2727,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2728,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2729,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2730,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2731,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2732,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2733,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2734,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2735,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2736,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2737,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2739,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2743,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2744,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2745,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2746,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2747,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2748,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2749,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2750,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2751,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2752,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2753,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2754,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2755,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2756,1
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2758,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2759,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2763,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2764,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2765,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2766,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2767,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2768,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2769,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2770,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2771,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2772,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2773,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2774,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2775,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2776,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2777,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2779,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2783,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2784,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2785,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2786,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2787,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2788,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2789,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2790,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2791,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2792,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2793,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2794,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2795,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2796,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2797,1
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2799,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2800,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2804,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2805,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2806,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2807,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2808,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2809,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2810,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2811,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2812,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2813,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2814,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2815,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2816,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2817,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2818,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2819,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2821,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2825,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2826,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2827,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2828,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2829,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2830,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2831,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2832,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2833,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2834,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2835,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2836,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2837,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2838,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2839,1
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2841,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2842,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2846,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2847,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2848,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2849,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2850,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2851,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2852,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2853,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2854,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2855,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2856,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2857,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2858,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2859,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2860,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2862,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2866,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2867,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2868,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2869,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2870,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2871,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2872,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2873,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2874,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2875,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2876,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2877,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2878,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2879,1
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2881,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2882,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2886,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2887,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2888,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2889,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2890,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2891,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2892,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2893,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2894,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2895,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2896,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2897,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2898,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2899,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2901,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2905,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2906,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2907,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2908,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2909,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2910,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2911,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2912,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2913,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2914,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2915,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2916,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2917,1
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2919,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2920,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2924,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2925,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2926,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2927,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2928,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2929,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2930,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2931,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2932,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2933,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2934,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2935,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2936,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2938,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2942,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2943,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2944,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2945,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2946,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2947,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2948,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2949,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2950,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2951,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2952,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2953,1
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2955,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2956,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2960,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2961,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2962,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2963,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2964,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2965,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2966,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2967,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2968,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2969,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2970,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2971,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2973,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2977,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2978,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2979,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2980,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2981,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2982,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2983,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2984,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2985,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2986,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2987,1
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2989,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2990,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2994,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2995,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2996,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2997,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2998,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:2999,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3000,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3001,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3002,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3003,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3004,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3006,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3010,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3011,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3012,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3013,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3014,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3015,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3016,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3017,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3018,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3019,1
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3021,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3022,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3026,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3027,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3028,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3029,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3030,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3031,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3032,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3033,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3034,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3035,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3037,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3041,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3042,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3043,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3044,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3045,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3046,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3047,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3048,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3049,1
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3051,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3052,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3056,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3057,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3058,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3059,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3060,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3061,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3062,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3063,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3064,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3066,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3070,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3071,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3072,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3073,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3074,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3075,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3076,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3077,1
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3079,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3080,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3084,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3085,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3086,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3087,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3088,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3089,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3090,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3091,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3093,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3097,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3098,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3099,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3100,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3101,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3102,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3103,1
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3105,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3106,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3110,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3111,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3112,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3113,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3114,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3115,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3116,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3118,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3122,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3123,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3124,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3125,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3126,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3127,1
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3129,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3130,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3134,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3135,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3136,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3137,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3138,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3139,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3141,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3145,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3146,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3147,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3148,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3149,1
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3151,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3152,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3156,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3157,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3158,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3159,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3160,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3162,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3166,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3167,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3168,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3169,1
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3171,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3172,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3176,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3177,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3178,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3179,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3181,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3185,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3186,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3187,1
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3189,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3190,1
    - Dst: SQRADDSC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3194,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3195,1
    - Dst: SQRADDAC
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3196,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3198,1
    - Dst: SQRADD2
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3202,1
    - Dst: SQRADD2
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3203,1
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3204,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3205,1
    - Dst: SQRADD2
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3209,1
    - Dst: SQRADD2
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3210,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3211,1
    - Dst: SQRADD2
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3215,1
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3216,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3217,1
    - Dst: SQRADD2
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3221,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3222,1
    - Dst: SQRADD
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3226,1
    - Dst: COMBA_STORE
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3227,1
    - Dst: COMBA_STORE2
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3228,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3233,1
    - Dst: mp_clamp
      Src: /src/nss/lib/freebl/mpi/mp_comba.c:3234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 716
    argCount: 2
    argNames:
    - A
    - B
    argTypes:
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3235
      start: 2386
    functionDepth: 1
    functionLinenumber: 2386
    functionLinenumberEnd: 3235
    functionName: s_mp_sqr_comba_32
    functionSourceFile: /src/nss/lib/freebl/mpi/mp_comba.c
    functionUses: 1
    functionsReached:
    - SQRADDSC
    - SQRADD
    - COMBA_STORE
    - SQRADD2
    - memcpy
    - mp_clamp
    - COMBA_STORE2
    - SQRADDAC
    linkageType: ''
    returnType: void
    signature: void s_mp_sqr_comba_32(const mp_int *A, mp_int *B)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: RANDOM
    functionSourceFile: /src/nss/lib/freebl/mpi/mpprime.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RANDOM()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mp_init
      Src: /src/nss/lib/freebl/mpi/mpprime.c:44,1
    - Dst: mp_mod
      Src: /src/nss/lib/freebl/mpi/mpprime.c:47,1
    - Dst: mp_cmp_z
      Src: /src/nss/lib/freebl/mpi/mpprime.c:50,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpprime.c:56,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 38
    functionDepth: 5
    functionLinenumber: 38
    functionLinenumberEnd: 59
    functionName: mpp_divis
    functionSourceFile: /src/nss/lib/freebl/mpi/mpprime.c
    functionUses: 0
    functionsReached:
    - mp_init
    - mp_mod
    - mp_cmp_z
    - mp_clear
    linkageType: ''
    returnType: mp_err
    signature: mp_err mpp_divis(mp_int *a, mp_int *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpprime.c:77,1
    - Dst: mp_mod_d
      Src: /src/nss/lib/freebl/mpi/mpprime.c:82,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - a
    - d
    argTypes:
    - mp_int*
    - mp_digit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 71
    functionDepth: 4
    functionLinenumber: 71
    functionLinenumberEnd: 90
    functionName: mpp_divis_d
    functionSourceFile: /src/nss/lib/freebl/mpi/mpprime.c
    functionUses: 2
    functionsReached:
    - ARGCHK
    - mp_mod_d
    linkageType: ''
    returnType: mp_err
    signature: mp_err mpp_divis_d(mp_int *a, mp_digit d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpprime.c:114,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpprime.c:116,1
    - Dst: RANDOM
      Src: /src/nss/lib/freebl/mpi/mpprime.c:118,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mpprime.c:120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - a
    argTypes:
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 125
    functionName: mpp_random
    functionSourceFile: /src/nss/lib/freebl/mpi/mpprime.c
    functionUses: 0
    functionsReached:
    - ARGCHK
    - RANDOM
    - DIGIT
    - USED
    linkageType: ''
    returnType: mp_err
    signature: mp_err mpp_random(mp_int *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpprime.c:138,1
    - Dst: s_mp_pad
      Src: /src/nss/lib/freebl/mpi/mpprime.c:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - a
    - prec
    argTypes:
    - mp_int*
    - mp_size
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 133
    functionDepth: 3
    functionLinenumber: 133
    functionLinenumberEnd: 145
    functionName: mpp_random_size
    functionSourceFile: /src/nss/lib/freebl/mpi/mpprime.c
    functionUses: 0
    functionsReached:
    - ARGCHK
    - s_mp_pad
    linkageType: ''
    returnType: mp_err
    signature: mp_err mpp_random_size(mp_int *a, mp_size prec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpprime.c:162,1
    - Dst: s_mpp_divp
      Src: /src/nss/lib/freebl/mpi/mpprime.c:164,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 4
    argNames:
    - a
    - vec
    - size
    - which
    argTypes:
    - mp_int*
    - mp_digit*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 166
    functionName: mpp_divis_vector
    functionSourceFile: /src/nss/lib/freebl/mpi/mpprime.c
    functionUses: 0
    functionsReached:
    - ARGCHK
    - s_mpp_divp
    linkageType: ''
    returnType: mp_err
    signature: mp_err mpp_divis_vector(mp_int *a, const mp_digit *vec, int size, int
      *which)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpprime.c:185,1
    - Dst: mpp_divis_vector
      Src: /src/nss/lib/freebl/mpi/mpprime.c:191,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - a
    - np
    argTypes:
    - mp_int*
    - mp_digit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 197
    functionName: mpp_divis_primes
    functionSourceFile: /src/nss/lib/freebl/mpi/mpprime.c
    functionUses: 1
    functionsReached:
    - ARGCHK
    - mpp_divis_vector
    linkageType: ''
    returnType: mp_err
    signature: mp_err mpp_divis_primes(mp_int *a, mp_digit *np)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mp_init
      Src: /src/nss/lib/freebl/mpi/mpprime.c:216,1
    - Dst: mp_set
      Src: /src/nss/lib/freebl/mpi/mpprime.c:219,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/mpi/mpprime.c:221,1
    - Dst: mp_exptmod
      Src: /src/nss/lib/freebl/mpi/mpprime.c:225,1
    - Dst: mp_cmp
      Src: /src/nss/lib/freebl/mpi/mpprime.c:228,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpprime.c:234,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpprime.c:236,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - a
    - w
    argTypes:
    - mp_int*
    - mp_digit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 210
    functionDepth: 3
    functionLinenumber: 210
    functionLinenumberEnd: 240
    functionName: mpp_fermat
    functionSourceFile: /src/nss/lib/freebl/mpi/mpprime.c
    functionUses: 2
    functionsReached:
    - mp_init
    - mp_exptmod
    - mp_set
    - mp_cmp
    - mp_clear
    linkageType: ''
    returnType: mp_err
    signature: mp_err mpp_fermat(mp_int *a, mp_digit w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpp_fermat
      Src: /src/nss/lib/freebl/mpi/mpprime.c:258,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - a
    - primes
    - nPrimes
    argTypes:
    - mp_int*
    - mp_digit*
    - mp_size
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 252
    functionDepth: 4
    functionLinenumber: 252
    functionLinenumberEnd: 261
    functionName: mpp_fermat_list
    functionSourceFile: /src/nss/lib/freebl/mpi/mpprime.c
    functionUses: 0
    functionsReached:
    - mpp_fermat
    linkageType: ''
    returnType: mp_err
    signature: mp_err mpp_fermat_list(mp_int *a, const mp_digit *primes, mp_size nPrimes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpp_pprime_ext_random
      Src: /src/nss/lib/freebl/mpi/mpprime.c:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - nt
    argTypes:
    - mp_int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 278
    functionName: mpp_pprime
    functionSourceFile: /src/nss/lib/freebl/mpi/mpprime.c
    functionUses: 0
    functionsReached:
    - mpp_pprime_ext_random
    linkageType: ''
    returnType: mp_err
    signature: mp_err mpp_pprime(mp_int *a, int nt)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpprime.c:289,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpprime.c:291,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpprime.c:292,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpprime.c:293,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpprime.c:294,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpprime.c:297,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/mpi/mpprime.c:297,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpprime.c:299,1
    - Dst: mp_sub_d
      Src: /src/nss/lib/freebl/mpi/mpprime.c:299,1
    - Dst: mp_trailing_zeros
      Src: /src/nss/lib/freebl/mpi/mpprime.c:301,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpprime.c:307,1
    - Dst: mp_init_size
      Src: /src/nss/lib/freebl/mpi/mpprime.c:307,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpprime.c:307,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpprime.c:308,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/mpi/mpprime.c:308,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpprime.c:309,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/mpi/mpprime.c:309,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpprime.c:310,1
    - Dst: mp_div_2d
      Src: /src/nss/lib/freebl/mpi/mpprime.c:310,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpprime.c:316,1
    - Dst: s_mp_pad
      Src: /src/nss/lib/freebl/mpi/mpprime.c:316,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mpprime.c:316,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpprime.c:317,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpprime.c:318,1
    - Dst: mp_mod
      Src: /src/nss/lib/freebl/mpi/mpprime.c:318,1
    - Dst: mp_cmp_d
      Src: /src/nss/lib/freebl/mpi/mpprime.c:319,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpprime.c:325,1
    - Dst: mp_exptmod
      Src: /src/nss/lib/freebl/mpi/mpprime.c:325,1
    - Dst: mp_cmp_d
      Src: /src/nss/lib/freebl/mpi/mpprime.c:327,1
    - Dst: mp_cmp
      Src: /src/nss/lib/freebl/mpi/mpprime.c:327,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpprime.c:335,1
    - Dst: mp_sqrmod
      Src: /src/nss/lib/freebl/mpi/mpprime.c:335,1
    - Dst: mp_cmp_d
      Src: /src/nss/lib/freebl/mpi/mpprime.c:338,1
    - Dst: mp_cmp
      Src: /src/nss/lib/freebl/mpi/mpprime.c:341,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpprime.c:357,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpprime.c:358,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpprime.c:359,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpprime.c:360,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 53
    argCount: 3
    argNames:
    - a
    - nt
    - random
    argTypes:
    - mp_int*
    - int
    - mpp_random_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 280
    functionDepth: 5
    functionLinenumber: 280
    functionLinenumberEnd: 363
    functionName: mpp_pprime_ext_random
    functionSourceFile: /src/nss/lib/freebl/mpi/mpprime.c
    functionUses: 2
    functionsReached:
    - mp_init
    - MP_CHECKOK
    - mp_exptmod
    - USED
    - ARGCHK
    - mp_mod
    - mp_cmp_d
    - mp_clear
    - s_mp_pad
    - mp_sub_d
    - MP_USED
    - mp_trailing_zeros
    - mp_cmp
    - mp_sqrmod
    - mp_div_2d
    - MP_DIGITS
    - mp_init_size
    linkageType: ''
    returnType: mp_err
    signature: mp_err mpp_pprime_ext_random(mp_int *a, int nt, mpp_random_fn random)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/freebl/mpi/mpprime.c:386,1
    - Dst: mp_mod_d
      Src: /src/nss/lib/freebl/mpi/mpprime.c:391,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 5
    argNames:
    - trial
    - primes
    - nPrimes
    - sieve
    - nSieve
    argTypes:
    - mp_int*
    - mp_digit*
    - mp_size
    - unsigned char*
    - mp_size
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 377
    functionDepth: 4
    functionLinenumber: 377
    functionLinenumberEnd: 408
    functionName: mpp_sieve
    functionSourceFile: /src/nss/lib/freebl/mpi/mpprime.c
    functionUses: 0
    functionsReached:
    - memset
    - mp_mod_d
    linkageType: ''
    returnType: mp_err
    signature: "mp_err mpp_sieve(mp_int *trial, const mp_digit *primes, mp_size nPrimes,\n
      \         unsigned char *sieve, mp_size nSieve)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mpp_make_prime_ext_random
      Src: /src/nss/lib/freebl/mpi/mpprime.c:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - start
    - nBits
    - strong
    argTypes:
    - mp_int*
    - mp_size
    - mp_size
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 416
    functionName: mpp_make_prime
    functionSourceFile: /src/nss/lib/freebl/mpi/mpprime.c
    functionUses: 0
    functionsReached:
    - mpp_make_prime_ext_random
    linkageType: ''
    returnType: mp_err
    signature: mp_err mpp_make_prime(mp_int *start, mp_size nBits, mp_size strong)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpprime.c:429,1
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpprime.c:430,1
    - Dst: malloc
      Src: /src/nss/lib/freebl/mpi/mpprime.c:432,1
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpprime.c:433,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpprime.c:435,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpprime.c:436,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpprime.c:437,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/mpi/mpprime.c:437,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpprime.c:438,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/mpi/mpprime.c:438,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpprime.c:470,1
    - Dst: mpl_set_bit
      Src: /src/nss/lib/freebl/mpi/mpprime.c:470,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpprime.c:471,1
    - Dst: mpl_set_bit
      Src: /src/nss/lib/freebl/mpi/mpprime.c:471,1
    - Dst: mpl_significant_bits
      Src: /src/nss/lib/freebl/mpi/mpprime.c:472,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpprime.c:473,1
    - Dst: mpl_set_bit
      Src: /src/nss/lib/freebl/mpi/mpprime.c:473,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpprime.c:476,1
    - Dst: mpp_sieve
      Src: /src/nss/lib/freebl/mpi/mpprime.c:476,1
    - Dst: fprintf
      Src: /src/nss/lib/freebl/mpi/mpprime.c:485,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpprime.c:495,1
    - Dst: mp_add_d
      Src: /src/nss/lib/freebl/mpi/mpprime.c:495,1
    - Dst: FPUTC
      Src: /src/nss/lib/freebl/mpi/mpprime.c:496,1
    - Dst: mpp_fermat
      Src: /src/nss/lib/freebl/mpi/mpprime.c:498,1
    - Dst: FPUTC
      Src: /src/nss/lib/freebl/mpi/mpprime.c:505,1
    - Dst: mpp_pprime_ext_random
      Src: /src/nss/lib/freebl/mpi/mpprime.c:507,1
    - Dst: FPUTC
      Src: /src/nss/lib/freebl/mpi/mpprime.c:513,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpprime.c:522,1
    - Dst: mp_mul_2
      Src: /src/nss/lib/freebl/mpi/mpprime.c:522,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpprime.c:523,1
    - Dst: mp_add_d
      Src: /src/nss/lib/freebl/mpi/mpprime.c:523,1
    - Dst: mpp_divis_primes
      Src: /src/nss/lib/freebl/mpi/mpprime.c:527,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpprime.c:529,1
    - Dst: mpp_fermat
      Src: /src/nss/lib/freebl/mpi/mpprime.c:536,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpprime.c:538,1
    - Dst: mpp_pprime_ext_random
      Src: /src/nss/lib/freebl/mpi/mpprime.c:545,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpprime.c:547,1
    - Dst: mp_exch
      Src: /src/nss/lib/freebl/mpi/mpprime.c:554,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpprime.c:555,1
    - Dst: mp_exch
      Src: /src/nss/lib/freebl/mpi/mpprime.c:560,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpprime.c:562,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpprime.c:563,1
    - Dst: memset
      Src: /src/nss/lib/freebl/mpi/mpprime.c:565,1
    - Dst: free
      Src: /src/nss/lib/freebl/mpi/mpprime.c:566,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 123
    argCount: 4
    argNames:
    - start
    - nBits
    - strong
    - random
    argTypes:
    - mp_int*
    - mp_size
    - mp_size
    - mpp_random_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 418
    functionDepth: 6
    functionLinenumber: 418
    functionLinenumberEnd: 569
    functionName: mpp_make_prime_ext_random
    functionSourceFile: /src/nss/lib/freebl/mpi/mpprime.c
    functionUses: 2
    functionsReached:
    - FPUTC
    - fprintf
    - mp_add_d
    - mp_exch
    - memset
    - mpp_fermat
    - mp_clear
    - MP_DIGITS
    - mp_init
    - ARGCHK
    - mpp_divis_primes
    - mpl_significant_bits
    - malloc
    - MP_CHECKOK
    - free
    - mpl_set_bit
    - mp_mul_2
    - mpp_sieve
    - mpp_pprime_ext_random
    linkageType: ''
    returnType: mp_err
    signature: mp_err mpp_make_prime_ext_random(mp_int *start, mp_size nBits, mp_size
      strong, mpp_random_fn random)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 487
    functionName: FPUTC
    functionSourceFile: /src/nss/lib/freebl/mpi/mpprime.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FPUTC(x, y)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mp_mod_d
      Src: /src/nss/lib/freebl/mpi/mpprime.c:593,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - a
    - vec
    - size
    - which
    argTypes:
    - mp_int*
    - mp_digit*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 584
    functionDepth: 4
    functionLinenumber: 584
    functionLinenumberEnd: 605
    functionName: s_mpp_divp
    functionSourceFile: /src/nss/lib/freebl/mpi/mpprime.c
    functionUses: 1
    functionsReached:
    - mp_mod_d
    linkageType: ''
    returnType: mp_err
    signature: mp_err s_mpp_divp(mp_int *a, const mp_digit *vec, int size, int *which)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/nss/lib/freebl/mpi/mulsqr.c:27,1
    - Dst: fprintf
      Src: /src/nss/lib/freebl/mpi/mulsqr.c:30,1
    - Dst: abs
      Src: /src/nss/lib/freebl/mpi/mulsqr.c:34,1
    - Dst: atoi
      Src: /src/nss/lib/freebl/mpi/mulsqr.c:34,1
    - Dst: fprintf
      Src: /src/nss/lib/freebl/mpi/mulsqr.c:35,1
    - Dst: abs
      Src: /src/nss/lib/freebl/mpi/mulsqr.c:38,1
    - Dst: atoi
      Src: /src/nss/lib/freebl/mpi/mulsqr.c:38,1
    - Dst: fprintf
      Src: /src/nss/lib/freebl/mpi/mulsqr.c:39,1
    - Dst: mp_init_size
      Src: /src/nss/lib/freebl/mpi/mulsqr.c:46,1
    - Dst: mp_init_size
      Src: /src/nss/lib/freebl/mpi/mulsqr.c:47,1
    - Dst: srand
      Src: /src/nss/lib/freebl/mpi/mulsqr.c:50,1
    - Dst: clock
      Src: /src/nss/lib/freebl/mpi/mulsqr.c:51,1
    - Dst: mpp_random_size
      Src: /src/nss/lib/freebl/mpi/mulsqr.c:53,1
    - Dst: mp_mul
      Src: /src/nss/lib/freebl/mpi/mulsqr.c:54,1
    - Dst: clock
      Src: /src/nss/lib/freebl/mpi/mulsqr.c:56,1
    - Dst: srand
      Src: /src/nss/lib/freebl/mpi/mulsqr.c:61,1
    - Dst: clock
      Src: /src/nss/lib/freebl/mpi/mulsqr.c:62,1
    - Dst: mpp_random_size
      Src: /src/nss/lib/freebl/mpi/mulsqr.c:64,1
    - Dst: mp_sqr
      Src: /src/nss/lib/freebl/mpi/mulsqr.c:65,1
    - Dst: clock
      Src: /src/nss/lib/freebl/mpi/mulsqr.c:67,1
    - Dst: printf
      Src: /src/nss/lib/freebl/mpi/mulsqr.c:71,1
    - Dst: printf
      Src: /src/nss/lib/freebl/mpi/mulsqr.c:72,1
    - Dst: printf
      Src: /src/nss/lib/freebl/mpi/mulsqr.c:74,1
    - Dst: printf
      Src: /src/nss/lib/freebl/mpi/mulsqr.c:75,1
    - Dst: printf
      Src: /src/nss/lib/freebl/mpi/mulsqr.c:77,1
    - Dst: printf
      Src: /src/nss/lib/freebl/mpi/mulsqr.c:78,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mulsqr.c:81,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mulsqr.c:82,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 45
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 18
    functionDepth: 4
    functionLinenumber: 18
    functionLinenumberEnd: 84
    functionName: main
    functionSourceFile: /src/nss/lib/freebl/mpi/mulsqr.c
    functionUses: 6
    functionsReached:
    - mp_sqr
    - mp_mul
    - printf
    - atoi
    - fprintf
    - abs
    - srand
    - mpp_random_size
    - clock
    - time
    - mp_clear
    - mp_init_size
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:38,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:39,1
    - Dst: s_mp_pad
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:39,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:40,1
    - Dst: MP_DIGIT
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:41,1
    - Dst: s_mp_mul_d_add_offset
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:43,1
    - Dst: s_mp_clamp
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:45,1
    - Dst: s_mp_rshd
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:48,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:48,1
    - Dst: s_mp_cmp
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:50,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:52,1
    - Dst: s_mp_sub
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:52,1
    - Dst: mp_cmp
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:54,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - T
    - mmm
    argTypes:
    - mp_int*
    - mp_mont_modulus*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 32
    functionDepth: 3
    functionLinenumber: 32
    functionLinenumberEnd: 63
    functionName: s_mp_redc
    functionSourceFile: /src/nss/lib/freebl/mpi/mpmontg.c
    functionUses: 0
    functionsReached:
    - MP_CHECKOK
    - s_mp_cmp
    - s_mp_clamp
    - s_mp_rshd
    - s_mp_sub
    - s_mp_pad
    - MP_USED
    - mp_cmp
    - MP_DIGIT
    - s_mp_mul_d_add_offset
    linkageType: ''
    returnType: mp_err
    signature: mp_err s_mp_redc(mp_int *T, mp_mont_modulus *mmm)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:82,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:84,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:84,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:90,1
    - Dst: MP_DIGIT
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:91,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:92,1
    - Dst: s_mp_pad
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:93,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:96,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:97,1
    - Dst: s_mpv_mul_d
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:98,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:98,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:98,1
    - Dst: s_mp_setz
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:99,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:99,1
    - Dst: MP_DIGIT
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:100,1
    - Dst: s_mp_mul_d_add_offset
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:101,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:104,1
    - Dst: s_mpv_mul_d_add_prop
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:110,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:110,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:110,1
    - Dst: MP_DIGIT
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:111,1
    - Dst: s_mp_mul_d_add_offset
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:112,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:114,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:115,1
    - Dst: MP_DIGIT
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:116,1
    - Dst: s_mp_mul_d_add_offset
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:117,1
    - Dst: s_mp_clamp
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:120,1
    - Dst: s_mp_rshd
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:121,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:121,1
    - Dst: s_mp_cmp
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:122,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:123,1
    - Dst: s_mp_sub
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:123,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 4
    argNames:
    - a
    - b
    - c
    - mmm
    argTypes:
    - mp_int*
    - mp_int*
    - mp_int*
    - mp_mont_modulus*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 72
    functionDepth: 3
    functionLinenumber: 72
    functionLinenumberEnd: 129
    functionName: s_mp_mul_mont
    functionSourceFile: /src/nss/lib/freebl/mpi/mpmontg.c
    functionUses: 0
    functionsReached:
    - MP_CHECKOK
    - s_mp_cmp
    - MP_DIGITS
    - ARGCHK
    - s_mp_clamp
    - s_mpv_mul_d_add_prop
    - s_mp_rshd
    - s_mp_setz
    - s_mp_pad
    - s_mp_sub
    - MP_USED
    - s_mpv_mul_d
    - MP_DIGIT
    - s_mp_mul_d_add_offset
    linkageType: ''
    returnType: mp_err
    signature: "mp_err s_mp_mul_mont(const mp_int *a, const mp_int *b, mp_int *c,\n
      \             mp_mont_modulus *mmm)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:139,1
    - Dst: mp_copy
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:139,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:141,1
    - Dst: s_mp_lshd
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:141,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:141,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:142,1
    - Dst: mp_div
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - x
    - N
    - xMont
    argTypes:
    - mp_int*
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 132
    functionDepth: 4
    functionLinenumber: 132
    functionLinenumberEnd: 145
    functionName: mp_to_mont
    functionSourceFile: /src/nss/lib/freebl/mpi/mpmontg.c
    functionUses: 1
    functionsReached:
    - MP_CHECKOK
    - s_mp_lshd
    - mp_copy
    - MP_USED
    - mp_div
    linkageType: ''
    returnType: mp_err
    signature: mp_err mp_to_mont(const mp_int *x, const mp_int *N, mp_int *xMont)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s_mp_invmod_radix
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:150,1
    - Dst: MP_DIGIT
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - N
    argTypes:
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: mp_calculate_mont_n0i
    functionSourceFile: /src/nss/lib/freebl/mpi/mpmontg.c
    functionUses: 1
    functionsReached:
    - s_mp_invmod_radix
    - MP_DIGIT
    linkageType: ''
    returnType: mp_digit
    signature: mp_digit mp_calculate_mont_n0i(const mp_int *N)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 175
    functionName: MUL
    functionSourceFile: /src/nss/lib/freebl/mpi/mpmontg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MUL(x)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:200,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:205,1
    - Dst: mp_init_size
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:205,1
    - Dst: mp_set
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:207,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:208,1
    - Dst: mp_to_mont
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:208,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:209,1
    - Dst: s_mp_pad
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:209,1
    - Dst: malloc
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:215,1
    - Dst: conv_i32_to_d32
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:233,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:233,1
    - Dst: conv_i32_to_d32_and_d16
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:237,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:237,1
    - Dst: mont_mulf_noconv
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:238,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:239,1
    - Dst: conv_i32_to_d32
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:240,1
    - Dst: mont_mulf_noconv
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:243,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:244,1
    - Dst: conv_i32_to_d16
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:245,1
    - Dst: s_mp_copy
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:248,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:248,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:252,1
    - Dst: mpl_get_bits
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:252,1
    - Dst: MUL
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:260,1
    - Dst: abort
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:262,1
    - Dst: MUL
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:275,1
    - Dst: MUL
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:280,1
    - Dst: MUL
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:285,1
    - Dst: MUL
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:290,1
    - Dst: abort
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:295,1
    - Dst: MUL
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:310,1
    - Dst: MUL
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:316,1
    - Dst: MUL
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:322,1
    - Dst: MUL
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:328,1
    - Dst: MUL
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:334,1
    - Dst: abort
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:340,1
    - Dst: MUL
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:357,1
    - Dst: MUL
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:364,1
    - Dst: MUL
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:371,1
    - Dst: MUL
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:378,1
    - Dst: MUL
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:385,1
    - Dst: MUL
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:392,1
    - Dst: abort
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:399,1
    - Dst: abort
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:402,1
    - Dst: s_mp_copy
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:406,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:406,1
    - Dst: s_mp_redc
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:408,1
    - Dst: mp_exch
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:409,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:412,1
    - Dst: memset
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:415,1
    - Dst: free
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:416,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 221
    argCount: 9
    argNames:
    - montBase
    - exponent
    - modulus
    - result
    - mmm
    - nLen
    - bits_in_exponent
    - window_bits
    - odd_ints
    argTypes:
    - mp_int*
    - mp_int*
    - mp_int*
    - mp_int*
    - mp_mont_modulus*
    - int
    - mp_size
    - mp_size
    - mp_size
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 177
    functionDepth: 5
    functionLinenumber: 177
    functionLinenumberEnd: 420
    functionName: mp_exptmod_f
    functionSourceFile: /src/nss/lib/freebl/mpi/mpmontg.c
    functionUses: 0
    functionsReached:
    - conv_i32_to_d32_and_d16
    - conv_i32_to_d16
    - s_mp_copy
    - mp_exch
    - conv_i32_to_d32
    - mp_to_mont
    - abort
    - s_mp_pad
    - memset
    - mp_clear
    - MP_DIGITS
    - mont_mulf_noconv
    - MUL
    - mpl_get_bits
    - mp_init_size
    - MP_CHECKOK
    - malloc
    - free
    - mp_set
    - s_mp_redc
    linkageType: ''
    returnType: mp_err
    signature: "mp_err mp_exptmod_f(const mp_int *montBase,\n             const mp_int
      *exponent,\n             const mp_int *modulus,\n             mp_int *result,\n
      \            mp_mont_modulus *mmm,\n             int nLen,\n             mp_size
      bits_in_exponent,\n             mp_size window_bits,\n             mp_size odd_ints)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 428
    functionName: SQR
    functionSourceFile: /src/nss/lib/freebl/mpi/mpmontg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQR(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 433
    functionName: MUL
    functionSourceFile: /src/nss/lib/freebl/mpi/mpmontg.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MUL(x, a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 436
    functionName: MUL
    functionSourceFile: /src/nss/lib/freebl/mpi/mpmontg.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MUL(x, a, b)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:464,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:465,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:466,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:468,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:471,1
    - Dst: mp_init_size
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:471,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:472,1
    - Dst: mp_init_size
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:472,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:474,1
    - Dst: mp_init_copy
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:474,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:476,1
    - Dst: mp_init_size
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:476,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:476,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:477,1
    - Dst: mp_sqr
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:477,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:478,1
    - Dst: s_mp_redc
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:478,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:481,1
    - Dst: mp_init_size
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:481,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:481,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:482,1
    - Dst: mp_mul
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:482,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:483,1
    - Dst: s_mp_redc
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:483,1
    - Dst: mp_set
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:487,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:488,1
    - Dst: mp_to_mont
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:488,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:494,1
    - Dst: mpl_get_bits
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:494,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:499,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:502,1
    - Dst: MUL
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:503,1
    - Dst: abort
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:505,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:509,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:510,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:511,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:512,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:514,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:515,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:516,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:517,1
    - Dst: MUL
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:518,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:521,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:522,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:523,1
    - Dst: MUL
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:524,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:525,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:528,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:529,1
    - Dst: MUL
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:530,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:531,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:532,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:535,1
    - Dst: MUL
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:536,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:537,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:538,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:539,1
    - Dst: abort
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:542,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:546,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:547,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:548,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:549,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:550,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:553,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:554,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:555,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:556,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:557,1
    - Dst: MUL
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:558,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:560,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:561,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:562,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:563,1
    - Dst: MUL
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:564,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:565,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:567,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:568,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:569,1
    - Dst: MUL
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:570,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:571,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:572,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:574,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:575,1
    - Dst: MUL
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:576,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:577,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:578,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:579,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:581,1
    - Dst: MUL
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:582,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:583,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:584,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:585,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:586,1
    - Dst: abort
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:588,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:592,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:593,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:594,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:595,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:596,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:597,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:599,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:600,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:601,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:602,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:603,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:604,1
    - Dst: MUL
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:605,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:608,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:609,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:610,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:611,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:612,1
    - Dst: MUL
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:613,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:614,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:617,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:618,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:619,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:620,1
    - Dst: MUL
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:621,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:622,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:623,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:626,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:627,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:628,1
    - Dst: MUL
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:629,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:630,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:631,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:632,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:635,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:636,1
    - Dst: MUL
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:637,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:638,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:639,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:640,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:641,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:644,1
    - Dst: MUL
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:645,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:646,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:647,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:648,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:649,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:650,1
    - Dst: abort
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:653,1
    - Dst: abort
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:656,1
    - Dst: s_mp_redc
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:660,1
    - Dst: mp_exch
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:661,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:664,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:665,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:666,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:668,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 217
    argCount: 9
    argNames:
    - montBase
    - exponent
    - modulus
    - result
    - mmm
    - nLen
    - bits_in_exponent
    - window_bits
    - odd_ints
    argTypes:
    - mp_int*
    - mp_int*
    - mp_int*
    - mp_int*
    - mp_mont_modulus*
    - int
    - mp_size
    - mp_size
    - mp_size
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 444
    functionDepth: 5
    functionLinenumber: 444
    functionLinenumberEnd: 671
    functionName: mp_exptmod_i
    functionSourceFile: /src/nss/lib/freebl/mpi/mpmontg.c
    functionUses: 0
    functionsReached:
    - MP_CHECKOK
    - mp_sqr
    - SQR
    - mp_mul
    - mp_exch
    - mp_to_mont
    - abort
    - mp_set
    - MUL
    - MP_USED
    - mp_init_copy
    - mpl_get_bits
    - mp_clear
    - s_mp_redc
    - MP_DIGITS
    - mp_init_size
    linkageType: ''
    returnType: mp_err
    signature: "mp_err mp_exptmod_i(const mp_int *montBase,\n             const mp_int
      *exponent,\n             const mp_int *modulus,\n             mp_int *result,\n
      \            mp_mont_modulus *mmm,\n             int nLen,\n             mp_size
      bits_in_exponent,\n             mp_size window_bits,\n             mp_size odd_ints)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - value
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 679
    functionDepth: 0
    functionLinenumber: 679
    functionLinenumberEnd: 691
    functionName: mp_set_safe_modexp
    functionSourceFile: /src/nss/lib/freebl/mpi/mpmontg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mp_err
    signature: mp_err mp_set_safe_modexp(int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:743,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:744,1
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:748,1
    - Dst: MP_SIGN
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:748,1
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:749,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - bignums
    - weaved
    - nDigits
    - nBignums
    argTypes:
    - mp_int*
    - mp_digit*
    - mp_size
    - mp_size
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 733
    functionDepth: 1
    functionLinenumber: 733
    functionLinenumberEnd: 762
    functionName: mpi_to_weave
    functionSourceFile: /src/nss/lib/freebl/mpi/mpmontg.c
    functionUses: 0
    functionsReached:
    - ARGCHK
    - MP_SIGN
    - MP_DIGITS
    - MP_USED
    linkageType: ''
    returnType: mp_err
    signature: "mp_err mpi_to_weave(const mp_int *bignums,\n             mp_digit
      *weaved,\n             mp_size nDigits,  /* in each mp_int of input */\n             mp_size
      nBignums)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 767
    functionDepth: 0
    functionLinenumber: 767
    functionLinenumberEnd: 768
    functionName: CONST_TIME_MSB
    functionSourceFile: /src/nss/lib/freebl/mpi/mpmontg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONST_TIME_MSB(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 768
    functionDepth: 0
    functionLinenumber: 768
    functionLinenumberEnd: 769
    functionName: CONST_TIME_EQ_Z
    functionSourceFile: /src/nss/lib/freebl/mpi/mpmontg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONST_TIME_EQ_Z(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 769
    functionDepth: 0
    functionLinenumber: 769
    functionLinenumberEnd: 770
    functionName: CONST_TIME_EQ
    functionSourceFile: /src/nss/lib/freebl/mpi/mpmontg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONST_TIME_EQ(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:787,1
    - Dst: MP_SIGN
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:789,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:790,1
    - Dst: assert
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:792,1
    - Dst: CONST_TIME_EQ
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:798,1
    - Dst: s_mp_clamp
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:803,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - a
    - weaved
    - index
    - nDigits
    - nBignums
    argTypes:
    - mp_int*
    - mp_digit*
    - mp_size
    - mp_size
    - mp_size
    assertStmts:
    - condition: (weaved != NULL)
      pos:
        line_end: 791
        line_start: 791
        source_file: /src/nss/lib/freebl/mpi/mpmontg.c
    constantsTouched: []
    func_position:
      end: 805
      start: 776
    functionDepth: 2
    functionLinenumber: 776
    functionLinenumberEnd: 805
    functionName: weave_to_mpi
    functionSourceFile: /src/nss/lib/freebl/mpi/mpmontg.c
    functionUses: 0
    functionsReached:
    - CONST_TIME_EQ
    - s_mp_clamp
    - MP_SIGN
    - assert
    - MP_USED
    - MP_DIGITS
    linkageType: ''
    returnType: mp_err
    signature: "mp_err weave_to_mpi(mp_int *a,              /* out, result */\n             const
      mp_digit *weaved, /* in, byte matrix */\n             mp_size index,          /*
      which column to read */\n             mp_size nDigits,        /* number of mp_digits
      in each bignum */\n             mp_size nBignums)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 807
    functionDepth: 0
    functionLinenumber: 807
    functionLinenumberEnd: 810
    functionName: SQR
    functionSourceFile: /src/nss/lib/freebl/mpi/mpmontg.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQR(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 812
    functionDepth: 0
    functionLinenumber: 812
    functionLinenumberEnd: 815
    functionName: MUL_NOWEAVE
    functionSourceFile: /src/nss/lib/freebl/mpi/mpmontg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MUL_NOWEAVE(x, a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 816
    functionDepth: 0
    functionLinenumber: 816
    functionLinenumberEnd: 818
    functionName: MUL_NOWEAVE
    functionSourceFile: /src/nss/lib/freebl/mpi/mpmontg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MUL_NOWEAVE(x, a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 820
    functionDepth: 0
    functionLinenumber: 820
    functionLinenumberEnd: 823
    functionName: MUL
    functionSourceFile: /src/nss/lib/freebl/mpi/mpmontg.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MUL(x, a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 828
    functionDepth: 0
    functionLinenumber: 828
    functionLinenumberEnd: 829
    functionName: MP_ALIGN
    functionSourceFile: /src/nss/lib/freebl/mpi/mpmontg.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MP_ALIGN(x, y)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:852,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:853,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:854,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:855,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:856,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:857,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:858,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:862,1
    - Dst: mpl_get_bits
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:862,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:866,1
    - Dst: mp_init_size
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:866,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:867,1
    - Dst: mp_init_size
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:867,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:872,1
    - Dst: mp_init_size
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:872,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:873,1
    - Dst: mp_init_size
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:873,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:874,1
    - Dst: mp_init_size
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:874,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:875,1
    - Dst: mp_init_size
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:875,1
    - Dst: mp_set
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:876,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:877,1
    - Dst: mp_to_mont
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:877,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:878,1
    - Dst: mp_copy
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:878,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:879,1
    - Dst: MUL_NOWEAVE
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:880,1
    - Dst: malloc
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:881,1
    - Dst: MP_ALIGN
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:887,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:888,1
    - Dst: mpi_to_weave
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:888,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:890,1
    - Dst: mp_copy
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:890,1
    - Dst: mp_set
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:895,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:896,1
    - Dst: mp_to_mont
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:896,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:899,1
    - Dst: mp_copy
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:899,1
    - Dst: MUL_NOWEAVE
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:916,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:919,1
    - Dst: mpi_to_weave
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:919,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:923,1
    - Dst: mp_copy
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:923,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:934,1
    - Dst: weave_to_mpi
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:934,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:935,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:940,1
    - Dst: mp_copy
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:940,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:941,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:943,1
    - Dst: assert
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:952,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:952,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:961,1
    - Dst: mp_init_size
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:961,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:966,1
    - Dst: mpl_get_bits
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:966,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:973,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:976,1
    - Dst: MUL_NOWEAVE
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:977,1
    - Dst: abort
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:979,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:983,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:984,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:987,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:988,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:989,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:990,1
    - Dst: MUL
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:991,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:995,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:996,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:997,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:998,1
    - Dst: SQR
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:999,1
    - Dst: MUL
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:1000,1
    - Dst: abort
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:1003,1
    - Dst: s_mp_redc
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:1007,1
    - Dst: mp_exch
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:1008,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:1011,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:1012,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:1013,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:1014,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:1015,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:1016,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:1017,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:1021,1
    - Dst: free
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:1023,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 127
    argCount: 9
    argNames:
    - montBase
    - exponent
    - modulus
    - result
    - mmm
    - nLen
    - bits_in_exponent
    - window_bits
    - num_powers
    argTypes:
    - mp_int*
    - mp_int*
    - mp_int*
    - mp_int*
    - mp_mont_modulus*
    - int
    - mp_size
    - mp_size
    - mp_size
    assertStmts:
    - condition: (MP_USED(&accum1) != 0)
      pos:
        line_end: 951
        line_start: 951
        source_file: /src/nss/lib/freebl/mpi/mpmontg.c
    constantsTouched: []
    func_position:
      end: 1025
      start: 831
    functionDepth: 5
    functionLinenumber: 831
    functionLinenumberEnd: 1025
    functionName: mp_exptmod_safe_i
    functionSourceFile: /src/nss/lib/freebl/mpi/mpmontg.c
    functionUses: 0
    functionsReached:
    - MP_USED
    - mp_exch
    - mp_to_mont
    - abort
    - assert
    - MP_DIGITS
    - mp_clear
    - mp_copy
    - MUL
    - weave_to_mpi
    - mpl_get_bits
    - SQR
    - mp_init_size
    - MP_CHECKOK
    - malloc
    - free
    - MUL_NOWEAVE
    - MP_ALIGN
    - mpi_to_weave
    - mp_set
    - PORT_Memset
    - s_mp_redc
    linkageType: ''
    returnType: mp_err
    signature: "mp_err mp_exptmod_safe_i(const mp_int *montBase,\n                  const
      mp_int *exponent,\n                  const mp_int *modulus,\n                  mp_int
      *result,\n                  mp_mont_modulus *mmm,\n                  int nLen,\n
      \                 mp_size bits_in_exponent,\n                  mp_size window_bits,\n
      \                 mp_size num_powers)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: mp_isodd
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:1045,1
    - Dst: s_mp_exptmod
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:1046,1
    - Dst: mp_cmp_z
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:1048,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:1050,1
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:1051,1
    - Dst: mp_cmp
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:1053,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:1056,1
    - Dst: mp_init
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:1056,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:1058,1
    - Dst: mp_mod
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:1058,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:1061,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:1062,1
    - Dst: mp_init_size
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:1062,1
    - Dst: mp_calculate_mont_n0i
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:1069,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:1071,1
    - Dst: mp_to_mont
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:1071,1
    - Dst: mpl_significant_bits
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:1073,1
    - Dst: s_mpi_getProcessorLineSize
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:1107,1
    - Dst: MP_CHECKOK
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:1138,1
    - Dst: s_mp_pad
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:1138,1
    - Dst: mp_exptmod_f
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:1139,1
    - Dst: mp_exptmod_safe_i
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:1145,1
    - Dst: mp_exptmod_i
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:1149,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:1153,1
    - Dst: mp_clear
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:1154,1
    - Dst: memset
      Src: /src/nss/lib/freebl/mpi/mpmontg.c:1158,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 75
    argCount: 4
    argNames:
    - inBase
    - exponent
    - modulus
    - result
    argTypes:
    - mp_int*
    - mp_int*
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1030
    functionDepth: 6
    functionLinenumber: 1030
    functionLinenumberEnd: 1160
    functionName: mp_exptmod
    functionSourceFile: /src/nss/lib/freebl/mpi/mpmontg.c
    functionUses: 25
    functionsReached:
    - mp_calculate_mont_n0i
    - s_mpi_getProcessorLineSize
    - mp_exptmod_safe_i
    - MP_USED
    - mp_exptmod_i
    - mp_cmp_z
    - mp_to_mont
    - s_mp_pad
    - mp_exptmod_f
    - memset
    - s_mp_exptmod
    - mp_clear
    - MP_DIGITS
    - mp_init
    - mp_isodd
    - mp_cmp
    - mp_init_size
    - mpl_significant_bits
    - MP_CHECKOK
    - mp_mod
    linkageType: ''
    returnType: mp_err
    signature: "mp_err mp_exptmod(const mp_int *inBase, const mp_int *exponent,\n
      \          const mp_int *modulus, mp_int *result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 4
    argNames:
    - a
    - a_len
    - b
    - c
    argTypes:
    - mp_digit*
    - mp_size
    - mp_digit
    - mp_digit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 355
    functionName: s_mpv_mul_d_add_prop
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi_x86_asm.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void s_mpv_mul_d_add_prop(const mp_digit *a, mp_size a_len, mp_digit
      b, mp_digit *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqr
      Src: /src/nss/lib/freebl/mpi/mpi_x86_asm.c:455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 3
    argNames:
    - a
    - a_len
    - sqrs
    argTypes:
    - mp_digit*
    - mp_size
    - mp_digit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 489
    functionName: s_mpv_sqr_add_prop
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi_x86_asm.c
    functionUses: 1
    functionsReached:
    - sqr
    linkageType: ''
    returnType: void
    signature: void s_mpv_sqr_add_prop(const mp_digit *a, mp_size a_len, mp_digit
      *sqrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - MP
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 150
    functionName: MP_SIGN
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MP_SIGN(MP)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - MP
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 151
    functionName: MP_USED
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.h
    functionUses: 45
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MP_USED(MP)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - MP
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 152
    functionName: MP_ALLOC
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MP_ALLOC(MP)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - MP
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 153
    functionName: MP_DIGITS
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.h
    functionUses: 77
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MP_DIGITS(MP)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - MP
    - ','
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 154
    functionName: MP_DIGIT
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.h
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MP_DIGIT(MP, N)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 160
    functionName: MP_CT_HIGH_TO_LOW
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MP_CT_HIGH_TO_LOW(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 165
    functionName: MP_CT_NOT_ZERO
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MP_CT_NOT_ZERO(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 166
    functionName: MP_CT_ZERO
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MP_CT_ZERO(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 172
    functionName: MP_CT_EQ
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MP_CT_EQ(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 173
    functionName: MP_CT_NE
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MP_CT_NE(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 174
    functionName: MP_CT_GT
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MP_CT_GT(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 175
    functionName: MP_CT_LT
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MP_CT_LT(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 176
    functionName: MP_CT_GE
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MP_CT_GE(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 177
    functionName: MP_CT_LE
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MP_CT_LE(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - m
    - ','
    - l
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 181
    functionName: MP_CT_SEL
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MP_CT_SEL(m, l, r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - m
    - ','
    - l
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 182
    functionName: MP_CT_SELB
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MP_CT_SELB(m, l, r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - m
    - ','
    - l
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 183
    functionName: MP_CT_SEL_DIGIT
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MP_CT_SEL_DIGIT(m, l, r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 188
    functionName: MP_CT_OVERFLOW
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MP_CT_OVERFLOW(a, b, c, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 189
    functionName: MP_CT_LTU
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MP_CT_LTU(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mp
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 212
    functionName: mp_set_long
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mp_set_long(mp, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 237
    functionName: mp_sqr
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mp_sqr(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - m
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 254
    functionName: mp_sqrmod
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mp_sqrmod(a, m, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - M
    - ','
    - S
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 297
    functionName: mp_tobinary
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mp_tobinary(M, S)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - M
    - ','
    - S
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 298
    functionName: mp_tooctal
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mp_tooctal(M, S)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - M
    - ','
    - S
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 299
    functionName: mp_todecimal
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mp_todecimal(M, S)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - M
    - ','
    - S
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 300
    functionName: mp_tohex
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mp_tohex(M, S)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 321
    functionName: MP_CHECKOK
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.h
    functionUses: 37
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MP_CHECKOK(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 324
    functionName: MP_CHECKERR
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MP_CHECKERR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - MP
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 333
    functionName: SIGN
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.h
    functionUses: 53
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIGN(MP)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - MP
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 334
    functionName: USED
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.h
    functionUses: 74
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: USED(MP)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - MP
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 335
    functionName: ALLOC
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALLOC(MP)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - MP
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 336
    functionName: DIGITS
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.h
    functionUses: 85
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DIGITS(MP)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - MP
    - ','
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 337
    functionName: DIGIT
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.h
    functionUses: 59
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DIGIT(MP, N)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - Y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 352
    functionName: ARGCHK
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.h
    functionUses: 68
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARGCHK(X, Y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 355
    functionName: ARGMPCHK
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARGMPCHK(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - Y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 356
    functionName: ARGCHK
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi.h
    functionUses: 68
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARGCHK(X, Y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - op
    - eax
    - ebx
    - ecx
    - edx
    argTypes:
    - unsigned long
    - unsigned long*
    - unsigned long*
    - unsigned long*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 49
    functionName: freebl_cpuid
    functionSourceFile: /src/nss/lib/freebl/mpi/mpcpucache.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void freebl_cpuid(unsigned long op, unsigned long *eax,\n             unsigned
      long *ebx, unsigned long *ecx,\n             unsigned long *edx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cpuid
      Src: /src/nss/lib/freebl/mpi/mpcpucache.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - op
    - eax
    - ebx
    - ecx
    - edx
    argTypes:
    - unsigned long
    - unsigned long*
    - unsigned long*
    - unsigned long*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 67
    functionName: freebl_cpuid
    functionSourceFile: /src/nss/lib/freebl/mpi/mpcpucache.c
    functionUses: 1
    functionsReached:
    - __cpuid
    linkageType: ''
    returnType: void
    signature: "void freebl_cpuid(unsigned long op, unsigned long *eax,\n             unsigned
      long *ebx, unsigned long *ecx,\n             unsigned long *edx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - op
    - eax
    - ebx
    - ecx
    - edx
    argTypes:
    - unsigned long
    - unsigned long*
    - unsigned long*
    - unsigned long*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 96
    functionName: freebl_cpuid
    functionSourceFile: /src/nss/lib/freebl/mpi/mpcpucache.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void freebl_cpuid(unsigned long op, unsigned long *eax,\n             unsigned
      long *ebx, unsigned long *ecx,\n             unsigned long *edx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - flag
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 120
    functionName: changeFlag
    functionSourceFile: /src/nss/lib/freebl/mpi/mpcpucache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long changeFlag(unsigned long flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: changeFlag
      Src: /src/nss/lib/freebl/mpi/mpcpucache.c:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 187
    functionName: is386
    functionSourceFile: /src/nss/lib/freebl/mpi/mpcpucache.c
    functionUses: 0
    functionsReached:
    - changeFlag
    linkageType: ''
    returnType: int
    signature: int is386()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: changeFlag
      Src: /src/nss/lib/freebl/mpi/mpcpucache.c:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 194
    functionName: is486
    functionSourceFile: /src/nss/lib/freebl/mpi/mpcpucache.c
    functionUses: 0
    functionsReached:
    - changeFlag
    linkageType: ''
    returnType: int
    signature: int is486()
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 3
    argNames:
    - val
    - level
    - lineSize
    argTypes:
    - unsigned long
    - int*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 518
    functionName: getIntelCacheEntryLineSize
    functionSourceFile: /src/nss/lib/freebl/mpi/mpcpucache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void getIntelCacheEntryLineSize(unsigned long val, int *level,\n                           unsigned
      long *lineSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getIntelCacheEntryLineSize
      Src: /src/nss/lib/freebl/mpi/mpcpucache.c:524,1
    - Dst: getIntelCacheEntryLineSize
      Src: /src/nss/lib/freebl/mpi/mpcpucache.c:525,1
    - Dst: getIntelCacheEntryLineSize
      Src: /src/nss/lib/freebl/mpi/mpcpucache.c:526,1
    - Dst: getIntelCacheEntryLineSize
      Src: /src/nss/lib/freebl/mpi/mpcpucache.c:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - val
    - level
    - lineSize
    argTypes:
    - unsigned long
    - int*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 528
    functionName: getIntelRegisterCacheLineSize
    functionSourceFile: /src/nss/lib/freebl/mpi/mpcpucache.c
    functionUses: 0
    functionsReached:
    - getIntelCacheEntryLineSize
    linkageType: ''
    returnType: void
    signature: "void getIntelRegisterCacheLineSize(unsigned long val,\n                              int
      *level, unsigned long *lineSize)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: freebl_cpuid
      Src: /src/nss/lib/freebl/mpi/mpcpucache.c:556,1
    - Dst: getIntelRegisterCacheLineSize
      Src: /src/nss/lib/freebl/mpi/mpcpucache.c:560,1
    - Dst: getIntelRegisterCacheLineSize
      Src: /src/nss/lib/freebl/mpi/mpcpucache.c:563,1
    - Dst: getIntelRegisterCacheLineSize
      Src: /src/nss/lib/freebl/mpi/mpcpucache.c:566,1
    - Dst: getIntelRegisterCacheLineSize
      Src: /src/nss/lib/freebl/mpi/mpcpucache.c:569,1
    - Dst: freebl_cpuid
      Src: /src/nss/lib/freebl/mpi/mpcpucache.c:572,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - cpuidLevel
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 534
    functionDepth: 2
    functionLinenumber: 534
    functionLinenumberEnd: 576
    functionName: getIntelCacheLineSize
    functionSourceFile: /src/nss/lib/freebl/mpi/mpcpucache.c
    functionUses: 0
    functionsReached:
    - freebl_cpuid
    - getIntelRegisterCacheLineSize
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long getIntelCacheLineSize(int cpuidLevel)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freebl_cpuid
      Src: /src/nss/lib/freebl/mpi/mpcpucache.c:592,1
    - Dst: freebl_cpuid
      Src: /src/nss/lib/freebl/mpi/mpcpucache.c:596,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - cpuidLevel
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 585
    functionDepth: 1
    functionLinenumber: 585
    functionLinenumberEnd: 600
    functionName: getOtherCacheLineSize
    functionSourceFile: /src/nss/lib/freebl/mpi/mpcpucache.c
    functionUses: 0
    functionsReached:
    - freebl_cpuid
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long getOtherCacheLineSize(unsigned long cpuidLevel)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is386
      Src: /src/nss/lib/freebl/mpi/mpcpucache.c:636,1
    - Dst: is486
      Src: /src/nss/lib/freebl/mpi/mpcpucache.c:636,1
    - Dst: freebl_cpuid
      Src: /src/nss/lib/freebl/mpi/mpcpucache.c:639,1
    - Dst: freebl_cpuid
      Src: /src/nss/lib/freebl/mpi/mpcpucache.c:646,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 631
    functionDepth: 2
    functionLinenumber: 631
    functionLinenumberEnd: 648
    functionName: s_mpi_is_sse2
    functionSourceFile: /src/nss/lib/freebl/mpi/mpcpucache.c
    functionUses: 0
    functionsReached:
    - freebl_cpuid
    - is386
    - is486
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long s_mpi_is_sse2()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: is386
      Src: /src/nss/lib/freebl/mpi/mpcpucache.c:663,1
    - Dst: is486
      Src: /src/nss/lib/freebl/mpi/mpcpucache.c:666,1
    - Dst: freebl_cpuid
      Src: /src/nss/lib/freebl/mpi/mpcpucache.c:672,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/mpi/mpcpucache.c:681,1
    - Dst: strcmp
      Src: /src/nss/lib/freebl/mpi/mpcpucache.c:686,1
    - Dst: getIntelCacheLineSize
      Src: /src/nss/lib/freebl/mpi/mpcpucache.c:692,1
    - Dst: getOtherCacheLineSize
      Src: /src/nss/lib/freebl/mpi/mpcpucache.c:694,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 651
    functionDepth: 3
    functionLinenumber: 651
    functionLinenumberEnd: 704
    functionName: s_mpi_getProcessorLineSize
    functionSourceFile: /src/nss/lib/freebl/mpi/mpcpucache.c
    functionUses: 1
    functionsReached:
    - strcmp
    - memcpy
    - freebl_cpuid
    - getIntelCacheLineSize
    - is486
    - getOtherCacheLineSize
    - is386
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long s_mpi_getProcessorLineSize()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - array
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 727
    functionDepth: 0
    functionLinenumber: 727
    functionLinenumberEnd: 734
    functionName: dcbzl
    functionSourceFile: /src/nss/lib/freebl/mpi/mpcpucache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dcbzl(char *array)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 736
    functionDepth: 0
    functionLinenumber: 736
    functionLinenumberEnd: 737
    functionName: PPC_DO_ALIGN
    functionSourceFile: /src/nss/lib/freebl/mpi/mpcpucache.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PPC_DO_ALIGN(x, y)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PPC_DO_ALIGN
      Src: /src/nss/lib/freebl/mpi/mpcpucache.c:748,1
    - Dst: memset
      Src: /src/nss/lib/freebl/mpi/mpcpucache.c:750,1
    - Dst: dcbzl
      Src: /src/nss/lib/freebl/mpi/mpcpucache.c:752,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 739
    functionDepth: 1
    functionLinenumber: 739
    functionLinenumberEnd: 761
    functionName: s_mpi_getProcessorLineSize
    functionSourceFile: /src/nss/lib/freebl/mpi/mpcpucache.c
    functionUses: 1
    functionsReached:
    - PPC_DO_ALIGN
    - dcbzl
    - memset
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long s_mpi_getProcessorLineSize()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 783
    functionDepth: 0
    functionLinenumber: 783
    functionLinenumberEnd: 787
    functionName: s_mpi_getProcessorLineSize
    functionSourceFile: /src/nss/lib/freebl/mpi/mpcpucache.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long s_mpi_getProcessorLineSize()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - T
    - ','
    - V
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 29
    functionName: DIAG
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi-priv.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DIAG(T, V)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - R
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: LOG_V_2
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi-priv.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOG_V_2(R)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - R
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: LOG_V_2
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi-priv.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOG_V_2(R)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - W
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: CARRYOUT
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi-priv.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CARRYOUT(W)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - W
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: ACCUM
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi-priv.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ACCUM(W)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: MP_MIN
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi-priv.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MP_MIN(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: MP_MAX
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi-priv.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MP_MAX(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 89
    functionName: MP_HOWMANY
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi-priv.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MP_HOWMANY(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 90
    functionName: MP_ROUNDUP
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi-priv.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MP_ROUNDUP(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 134
    functionName: s_mp_sqr
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi-priv.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: s_mp_sqr(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 154
    functionName: IS_POWER_OF_2
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi-priv.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_POWER_OF_2(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - a_len
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 182
    functionName: s_mpv_mul_d
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi-priv.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: s_mpv_mul_d(a, a_len, b, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - a_len
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 186
    functionName: s_mpv_mul_d_add
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi-priv.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: s_mpv_mul_d_add(a, a_len, b, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - 'off'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 214
    functionName: s_mp_mul_d_add_offset
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi-priv.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: s_mp_mul_d_add_offset(a, b, c, off)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - Phi
    - ','
    - Plo
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 13
    functionName: MP_MUL_DxD
    functionSourceFile: /src/nss/lib/freebl/mpi/mpvalpha.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MP_MUL_DxD(a, b, Phi, Plo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - CALL
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 87
    functionName: EXPAND_256
    functionSourceFile: /src/nss/lib/freebl/mpi/mpvalpha.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXPAND_256(CALL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 93
    functionName: FUNC_NAME
    functionSourceFile: /src/nss/lib/freebl/mpi/mpvalpha.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FUNC_NAME(NAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - FNAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 106
    functionName: DECLARE_MUL_256
    functionSourceFile: /src/nss/lib/freebl/mpi/mpvalpha.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_MUL_256(FNAME)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MP_MUL_DxD
      Src: /src/nss/lib/freebl/mpi/mpvalpha.c:129,1
    - Dst: EXPAND_256
      Src: /src/nss/lib/freebl/mpi/mpvalpha.c:138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - a
    - a_len
    - b
    - c
    argTypes:
    - mp_digit*
    - mp_size
    - mp_digit
    - mp_digit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 141
    functionName: s_mpv_mul_d
    functionSourceFile: /src/nss/lib/freebl/mpi/mpvalpha.c
    functionUses: 4
    functionsReached:
    - MP_MUL_DxD
    - EXPAND_256
    linkageType: ''
    returnType: void
    signature: "void s_mpv_mul_d(const mp_digit *a, mp_size a_len,\n            mp_digit
      b, mp_digit *c)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPAND_256
      Src: /src/nss/lib/freebl/mpi/mpvalpha.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - a
    - a_len
    - b
    - c
    argTypes:
    - mp_digit*
    - mp_size
    - mp_digit
    - mp_digit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 165
    functionName: s_mpv_mul_d_add
    functionSourceFile: /src/nss/lib/freebl/mpi/mpvalpha.c
    functionUses: 2
    functionsReached:
    - EXPAND_256
    linkageType: ''
    returnType: void
    signature: "void s_mpv_mul_d_add(const mp_digit *a, mp_size a_len,\n                mp_digit
      b, mp_digit *c)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPAND_256
      Src: /src/nss/lib/freebl/mpi/mpvalpha.c:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - a
    - a_len
    - b
    - c
    argTypes:
    - mp_digit*
    - mp_size
    - mp_digit
    - mp_digit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 183
    functionName: s_mpv_mul_d_add_prop
    functionSourceFile: /src/nss/lib/freebl/mpi/mpvalpha.c
    functionUses: 1
    functionsReached:
    - EXPAND_256
    linkageType: ''
    returnType: void
    signature: "void s_mpv_mul_d_add_prop(const mp_digit *a, mp_size a_len,\n                     mp_digit
      b, mp_digit *c)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mplogic.c:52,1
    - Dst: mp_copy
      Src: /src/nss/lib/freebl/mpi/mplogic.c:54,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mplogic.c:58,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mplogic.c:59,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mplogic.c:59,1
    - Dst: s_mp_clamp
      Src: /src/nss/lib/freebl/mpi/mplogic.c:61,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 65
    functionName: mpl_not
    functionSourceFile: /src/nss/lib/freebl/mpi/mplogic.c
    functionUses: 0
    functionsReached:
    - DIGIT
    - USED
    - ARGCHK
    - s_mp_clamp
    - mp_copy
    linkageType: ''
    returnType: mp_err
    signature: mp_err mpl_not(mp_int *a, mp_int *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mplogic.c:78,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mplogic.c:80,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mplogic.c:80,1
    - Dst: mp_copy
      Src: /src/nss/lib/freebl/mpi/mplogic.c:88,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mplogic.c:91,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mplogic.c:92,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mplogic.c:92,1
    - Dst: s_mp_clamp
      Src: /src/nss/lib/freebl/mpi/mplogic.c:94,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - mp_int*
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 98
    functionName: mpl_and
    functionSourceFile: /src/nss/lib/freebl/mpi/mplogic.c
    functionUses: 0
    functionsReached:
    - DIGIT
    - USED
    - ARGCHK
    - s_mp_clamp
    - mp_copy
    linkageType: ''
    returnType: mp_err
    signature: mp_err mpl_and(mp_int *a, mp_int *b, mp_int *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mplogic.c:111,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mplogic.c:113,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mplogic.c:113,1
    - Dst: mp_copy
      Src: /src/nss/lib/freebl/mpi/mplogic.c:121,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mplogic.c:124,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mplogic.c:125,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mplogic.c:125,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - mp_int*
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 129
    functionName: mpl_or
    functionSourceFile: /src/nss/lib/freebl/mpi/mplogic.c
    functionUses: 0
    functionsReached:
    - ARGCHK
    - mp_copy
    - DIGIT
    - USED
    linkageType: ''
    returnType: mp_err
    signature: mp_err mpl_or(mp_int *a, mp_int *b, mp_int *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mplogic.c:142,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mplogic.c:144,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mplogic.c:144,1
    - Dst: mp_copy
      Src: /src/nss/lib/freebl/mpi/mplogic.c:152,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mplogic.c:155,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mplogic.c:156,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mplogic.c:156,1
    - Dst: s_mp_clamp
      Src: /src/nss/lib/freebl/mpi/mplogic.c:158,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - mp_int*
    - mp_int*
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 162
    functionName: mpl_xor
    functionSourceFile: /src/nss/lib/freebl/mpi/mplogic.c
    functionUses: 0
    functionsReached:
    - DIGIT
    - USED
    - ARGCHK
    - s_mp_clamp
    - mp_copy
    linkageType: ''
    returnType: mp_err
    signature: mp_err mpl_xor(mp_int *a, mp_int *b, mp_int *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mplogic.c:179,1
    - Dst: mp_copy
      Src: /src/nss/lib/freebl/mpi/mplogic.c:181,1
    - Dst: s_mp_div_2d
      Src: /src/nss/lib/freebl/mpi/mplogic.c:184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - a
    - b
    - d
    argTypes:
    - mp_int*
    - mp_int*
    - mp_digit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 174
    functionDepth: 3
    functionLinenumber: 174
    functionLinenumberEnd: 188
    functionName: mpl_rsh
    functionSourceFile: /src/nss/lib/freebl/mpi/mplogic.c
    functionUses: 0
    functionsReached:
    - ARGCHK
    - mp_copy
    - s_mp_div_2d
    linkageType: ''
    returnType: mp_err
    signature: mp_err mpl_rsh(const mp_int *a, mp_int *b, mp_digit d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mplogic.c:199,1
    - Dst: mp_copy
      Src: /src/nss/lib/freebl/mpi/mplogic.c:201,1
    - Dst: s_mp_mul_2d
      Src: /src/nss/lib/freebl/mpi/mplogic.c:204,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - a
    - b
    - d
    argTypes:
    - mp_int*
    - mp_int*
    - mp_digit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 194
    functionDepth: 5
    functionLinenumber: 194
    functionLinenumberEnd: 206
    functionName: mpl_lsh
    functionSourceFile: /src/nss/lib/freebl/mpi/mplogic.c
    functionUses: 1
    functionsReached:
    - ARGCHK
    - s_mp_mul_2d
    - mp_copy
    linkageType: ''
    returnType: mp_err
    signature: mp_err mpl_lsh(const mp_int *a, mp_int *b, mp_digit d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mplogic.c:231,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mplogic.c:233,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mplogic.c:234,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - a
    - num
    argTypes:
    - mp_int*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 248
    functionName: mpl_num_set
    functionSourceFile: /src/nss/lib/freebl/mpi/mplogic.c
    functionUses: 0
    functionsReached:
    - ARGCHK
    - DIGIT
    - USED
    linkageType: ''
    returnType: mp_err
    signature: mp_err mpl_num_set(mp_int *a, unsigned int *num)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mplogic.c:261,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mplogic.c:263,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mplogic.c:264,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - a
    - num
    argTypes:
    - mp_int*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 278
    functionName: mpl_num_clear
    functionSourceFile: /src/nss/lib/freebl/mpi/mplogic.c
    functionUses: 0
    functionsReached:
    - ARGCHK
    - DIGIT
    - USED
    linkageType: ''
    returnType: mp_err
    signature: mp_err mpl_num_clear(mp_int *a, unsigned int *num)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mplogic.c:300,1
    - Dst: USED
      Src: /src/nss/lib/freebl/mpi/mplogic.c:302,1
    - Dst: DIGIT
      Src: /src/nss/lib/freebl/mpi/mplogic.c:305,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - a
    argTypes:
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 323
    functionName: mpl_parity
    functionSourceFile: /src/nss/lib/freebl/mpi/mplogic.c
    functionUses: 0
    functionsReached:
    - ARGCHK
    - DIGIT
    - USED
    linkageType: ''
    returnType: mp_err
    signature: mp_err mpl_parity(mp_int *a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mplogic.c:340,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mplogic.c:343,1
    - Dst: s_mp_pad
      Src: /src/nss/lib/freebl/mpi/mplogic.c:344,1
    - Dst: MP_DIGIT
      Src: /src/nss/lib/freebl/mpi/mplogic.c:352,1
    - Dst: MP_DIGIT
      Src: /src/nss/lib/freebl/mpi/mplogic.c:354,1
    - Dst: s_mp_clamp
      Src: /src/nss/lib/freebl/mpi/mplogic.c:355,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - a
    - bitNum
    - value
    argTypes:
    - mp_int*
    - mp_size
    - mp_size
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 333
    functionDepth: 3
    functionLinenumber: 333
    functionLinenumberEnd: 357
    functionName: mpl_set_bit
    functionSourceFile: /src/nss/lib/freebl/mpi/mplogic.c
    functionUses: 5
    functionsReached:
    - ARGCHK
    - s_mp_clamp
    - s_mp_pad
    - MP_USED
    - MP_DIGIT
    linkageType: ''
    returnType: mp_err
    signature: mp_err mpl_set_bit(mp_int *a, mp_size bitNum, mp_size value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mplogic.c:370,1
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mplogic.c:373,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mplogic.c:373,1
    - Dst: MP_DIGIT
      Src: /src/nss/lib/freebl/mpi/mplogic.c:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - a
    - bitNum
    argTypes:
    - mp_int*
    - mp_size
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 378
    functionName: mpl_get_bit
    functionSourceFile: /src/nss/lib/freebl/mpi/mplogic.c
    functionUses: 0
    functionsReached:
    - ARGCHK
    - MP_DIGIT
    - MP_USED
    linkageType: ''
    returnType: mp_err
    signature: mp_err mpl_get_bit(const mp_int *a, mp_size bitNum)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MP_DIGITS
      Src: /src/nss/lib/freebl/mpi/mplogic.c:395,1
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mplogic.c:398,1
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mplogic.c:399,1
    - Dst: MP_HOWMANY
      Src: /src/nss/lib/freebl/mpi/mplogic.c:399,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mplogic.c:399,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mplogic.c:402,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - a
    - lsbNum
    - numBits
    argTypes:
    - mp_int*
    - mp_size
    - mp_size
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 408
    functionName: mpl_get_bits
    functionSourceFile: /src/nss/lib/freebl/mpi/mplogic.c
    functionUses: 3
    functionsReached:
    - ARGCHK
    - MP_HOWMANY
    - MP_DIGITS
    - MP_USED
    linkageType: ''
    returnType: mp_err
    signature: mp_err mpl_get_bits(const mp_int *a, mp_size lsbNum, mp_size numBits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 418
    functionName: LZCNTLOOP
    functionSourceFile: /src/nss/lib/freebl/mpi/mplogic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LZCNTLOOP(i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARGCHK
      Src: /src/nss/lib/freebl/mpi/mplogic.c:437,1
    - Dst: MP_USED
      Src: /src/nss/lib/freebl/mpi/mplogic.c:439,1
    - Dst: MP_DIGIT
      Src: /src/nss/lib/freebl/mpi/mplogic.c:441,1
    - Dst: LZCNTLOOP
      Src: /src/nss/lib/freebl/mpi/mplogic.c:444,1
    - Dst: LZCNTLOOP
      Src: /src/nss/lib/freebl/mpi/mplogic.c:446,1
    - Dst: LZCNTLOOP
      Src: /src/nss/lib/freebl/mpi/mplogic.c:447,1
    - Dst: LZCNTLOOP
      Src: /src/nss/lib/freebl/mpi/mplogic.c:448,1
    - Dst: LZCNTLOOP
      Src: /src/nss/lib/freebl/mpi/mplogic.c:449,1
    - Dst: LZCNTLOOP
      Src: /src/nss/lib/freebl/mpi/mplogic.c:450,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - a
    argTypes:
    - mp_int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 455
    functionName: mpl_significant_bits
    functionSourceFile: /src/nss/lib/freebl/mpi/mplogic.c
    functionUses: 9
    functionsReached:
    - ARGCHK
    - MP_DIGIT
    - MP_USED
    - LZCNTLOOP
    linkageType: ''
    returnType: mp_size
    signature: mp_size mpl_significant_bits(const mp_int *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: s_mpv_mul_add_vec64
      Src: /src/nss/lib/freebl/mpi/mpi_amd64.c:25,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - a
    - a_len
    - b
    - c
    argTypes:
    - mp_digit*
    - mp_size
    - mp_digit
    - mp_digit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 32
    functionName: MPI_ASM_DECL::s_mpv_mul_d_add_prop
    functionSourceFile: /src/nss/lib/freebl/mpi/mpi_amd64.c
    functionUses: 0
    functionsReached:
    - s_mpv_mul_add_vec64
    linkageType: ''
    returnType: void
    signature: "void MPI_ASM_DECL\ns_mpv_mul_d_add_prop(const mp_digit *a, mp_size
      a_len,\n                     mp_digit b, mp_digit *c)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 52
    functionName: DEF_VARS
    functionSourceFile: /src/nss/lib/freebl/mpi/mpv_sparc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEF_VARS(N)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: MUL_U32_S64_2
    functionSourceFile: /src/nss/lib/freebl/mpi/mpv_sparc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MUL_U32_S64_2(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 68
    functionName: MUL_U32_S64_2_D
    functionSourceFile: /src/nss/lib/freebl/mpi/mpv_sparc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MUL_U32_S64_2_D(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: ADD_S64_U32
    functionSourceFile: /src/nss/lib/freebl/mpi/mpv_sparc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_S64_U32(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 80
    functionName: ADD_S64_U32_D
    functionSourceFile: /src/nss/lib/freebl/mpi/mpv_sparc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_S64_U32_D(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 88
    functionName: MUL_U32_S64_8
    functionSourceFile: /src/nss/lib/freebl/mpi/mpv_sparc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MUL_U32_S64_8(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: MUL_U32_S64_D_8
    functionSourceFile: /src/nss/lib/freebl/mpi/mpv_sparc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MUL_U32_S64_D_8(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 106
    functionName: ADD_S64_U32_8
    functionSourceFile: /src/nss/lib/freebl/mpi/mpv_sparc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_S64_U32_8(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 116
    functionName: ADD_S64_U32_D_8
    functionSourceFile: /src/nss/lib/freebl/mpi/mpv_sparc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_S64_U32_D_8(i)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DEF_VARS
      Src: /src/nss/lib/freebl/mpi/mpv_sparc.c:125,1
    - Dst: MUL_U32_S64_8
      Src: /src/nss/lib/freebl/mpi/mpv_sparc.c:128,1
    - Dst: ADD_S64_U32_8
      Src: /src/nss/lib/freebl/mpi/mpv_sparc.c:129,1
    - Dst: DEF_VARS
      Src: /src/nss/lib/freebl/mpi/mpv_sparc.c:134,1
    - Dst: MUL_U32_S64_8
      Src: /src/nss/lib/freebl/mpi/mpv_sparc.c:137,1
    - Dst: MUL_U32_S64_8
      Src: /src/nss/lib/freebl/mpi/mpv_sparc.c:138,1
    - Dst: ADD_S64_U32_8
      Src: /src/nss/lib/freebl/mpi/mpv_sparc.c:139,1
    - Dst: ADD_S64_U32_8
      Src: /src/nss/lib/freebl/mpi/mpv_sparc.c:140,1
    - Dst: DEF_VARS
      Src: /src/nss/lib/freebl/mpi/mpv_sparc.c:145,1
    - Dst: MUL_U32_S64_2
      Src: /src/nss/lib/freebl/mpi/mpv_sparc.c:150,1
    - Dst: ADD_S64_U32
      Src: /src/nss/lib/freebl/mpi/mpv_sparc.c:155,1
    - Dst: DEF_VARS
      Src: /src/nss/lib/freebl/mpi/mpv_sparc.c:163,1
    - Dst: MUL_U32_S64_D_8
      Src: /src/nss/lib/freebl/mpi/mpv_sparc.c:170,1
    - Dst: ADD_S64_U32_D_8
      Src: /src/nss/lib/freebl/mpi/mpv_sparc.c:171,1
    - Dst: DEF_VARS
      Src: /src/nss/lib/freebl/mpi/mpv_sparc.c:176,1
    - Dst: MUL_U32_S64_D_8
      Src: /src/nss/lib/freebl/mpi/mpv_sparc.c:183,1
    - Dst: MUL_U32_S64_D_8
      Src: /src/nss/lib/freebl/mpi/mpv_sparc.c:184,1
    - Dst: ADD_S64_U32_D_8
      Src: /src/nss/lib/freebl/mpi/mpv_sparc.c:185,1
    - Dst: ADD_S64_U32_D_8
      Src: /src/nss/lib/freebl/mpi/mpv_sparc.c:186,1
    - Dst: DEF_VARS
      Src: /src/nss/lib/freebl/mpi/mpv_sparc.c:191,1
    - Dst: MUL_U32_S64_2_D
      Src: /src/nss/lib/freebl/mpi/mpv_sparc.c:200,1
    - Dst: ADD_S64_U32_D
      Src: /src/nss/lib/freebl/mpi/mpv_sparc.c:205,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 56
    argCount: 5
    argNames:
    - z
    - x
    - y
    - n
    - a
    argTypes:
    - t_u32*
    - t_u32*
    - t_u32*
    - int
    - t_u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 211
    functionName: mul_add
    functionSourceFile: /src/nss/lib/freebl/mpi/mpv_sparc.c
    functionUses: 0
    functionsReached:
    - ADD_S64_U32_D_8
    - MUL_U32_S64_2
    - MUL_U32_S64_D_8
    - MUL_U32_S64_8
    - ADD_S64_U32_8
    - MUL_U32_S64_2_D
    - DEF_VARS
    - ADD_S64_U32_D
    - ADD_S64_U32
    linkageType: ''
    returnType: t_u32
    signature: t_u32 mul_add(t_u32 *z, t_u32 *x, t_u32 *y, int n, t_u32 a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mul_add
      Src: /src/nss/lib/freebl/mpi/mpv_sparc.c:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - x
    - y
    - n
    - a
    argTypes:
    - t_u32*
    - t_u32*
    - int
    - t_u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 219
    functionName: mul_add_inp
    functionSourceFile: /src/nss/lib/freebl/mpi/mpv_sparc.c
    functionUses: 3
    functionsReached:
    - mul_add
    linkageType: ''
    returnType: t_u32
    signature: t_u32 mul_add_inp(t_u32 *x, t_u32 *y, int n, t_u32 a)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp521r1.c:24,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp521r1.c:30,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp521r1.c:36,1
    - Dst: Hacl_P521_validate_public_key
      Src: /src/nss/lib/freebl/ecl/ecp_secp521r1.c:42,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp521r1.c:48,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - pt
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 52
    functionName: ec_secp521r1_pt_validate
    functionSourceFile: /src/nss/lib/freebl/ecl/ecp_secp521r1.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - Hacl_P521_validate_public_key
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ec_secp521r1_pt_validate(const SECItem *pt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp521r1.c:63,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp521r1.c:69,1
    - Dst: Hacl_P521_validate_private_key
      Src: /src/nss/lib/freebl/ecl/ecp_secp521r1.c:75,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp521r1.c:81,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - scalar
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 85
    functionName: ec_secp521r1_scalar_validate
    functionSourceFile: /src/nss/lib/freebl/ecl/ecp_secp521r1.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - Hacl_P521_validate_private_key
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ec_secp521r1_scalar_validate(const SECItem *scalar)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp521r1.c:102,1
    - Dst: Hacl_P521_dh_initiator
      Src: /src/nss/lib/freebl/ecl/ecp_secp521r1.c:108,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp521r1.c:114,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/ecl/ecp_secp521r1.c:121,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp521r1.c:131,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/ecl/ecp_secp521r1.c:138,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp521r1.c:145,1
    - Dst: Hacl_P521_dh_responder
      Src: /src/nss/lib/freebl/ecl/ecp_secp521r1.c:151,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp521r1.c:157,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/ecl/ecp_secp521r1.c:163,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 44
    argCount: 3
    argNames:
    - X
    - k
    - P
    argTypes:
    - SECItem*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 93
    functionDepth: 3
    functionLinenumber: 93
    functionLinenumberEnd: 167
    functionName: ec_secp521r1_pt_mul
    functionSourceFile: /src/nss/lib/freebl/ecl/ecp_secp521r1.c
    functionUses: 0
    functionsReached:
    - Hacl_P521_dh_initiator
    - PORT_SetError
    - Hacl_P521_dh_responder
    - memcpy
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ec_secp521r1_pt_mul(SECItem *X, SECItem *k, SECItem *P)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp521r1.c:184,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp521r1.c:189,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/ecl/ecp_secp521r1.c:204,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp521r1.c:207,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/ecl/ecp_secp521r1.c:213,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/ecl/ecp_secp521r1.c:224,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/ecl/ecp_secp521r1.c:226,1
    - Dst: Hacl_P521_ecdsa_sign_p521_without_hash
      Src: /src/nss/lib/freebl/ecl/ecp_secp521r1.c:230,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp521r1.c:237,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 42
    argCount: 5
    argNames:
    - ecPrivKey
    - signature
    - digest
    - kb
    - kblen
    argTypes:
    - ECPrivateKey*
    - SECItem*
    - SECItem*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 173
    functionDepth: 2
    functionLinenumber: 173
    functionLinenumberEnd: 244
    functionName: ec_secp521r1_sign_digest
    functionSourceFile: /src/nss/lib/freebl/ecl/ecp_secp521r1.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - memcpy
    - Hacl_P521_ecdsa_sign_p521_without_hash
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ec_secp521r1_sign_digest(ECPrivateKey *ecPrivKey, SECItem
      *signature,\n                         const SECItem *digest, const unsigned
      char *kb,\n                         const unsigned int kblen)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp521r1.c:260,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp521r1.c:268,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp521r1.c:274,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/ecl/ecp_secp521r1.c:286,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/ecl/ecp_secp521r1.c:287,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/ecl/ecp_secp521r1.c:296,1
    - Dst: Hacl_P521_ecdsa_verif_without_hash
      Src: /src/nss/lib/freebl/ecl/ecp_secp521r1.c:306,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp521r1.c:313,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 37
    argCount: 3
    argNames:
    - key
    - signature
    - digest
    argTypes:
    - ECPublicKey*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 250
    functionDepth: 2
    functionLinenumber: 250
    functionLinenumberEnd: 319
    functionName: ec_secp521r1_verify_digest
    functionSourceFile: /src/nss/lib/freebl/ecl/ecp_secp521r1.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - memcpy
    - Hacl_P521_ecdsa_verif_without_hash
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ec_secp521r1_verify_digest(ECPublicKey *key, const SECItem
      *signature,\n                           const SECItem *digest)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 62
    functionName: assert_fe
    functionSourceFile: /src/nss/lib/freebl/ecl/curve25519_32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_fe(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 70
    functionName: assert_fe_loose
    functionSourceFile: /src/nss/lib/freebl/ecl/curve25519_32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_fe_loose(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - out1
    - out2
    - arg1
    - arg2
    - arg3
    argTypes:
    - uint32_t*
    - uint8_t*
    - uint8_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 93
    functionName: fiat_25519_subborrowx_u26
    functionSourceFile: /src/nss/lib/freebl/ecl/curve25519_32.c
    functionUses: 0
    functionsReached:
    - UINT32_C
    linkageType: ''
    returnType: void
    signature: void fiat_25519_subborrowx_u26(uint32_t *out1, uint8_t *out2, uint8_t
      arg1, uint32_t arg2, uint32_t arg3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - out1
    - out2
    - arg1
    - arg2
    - arg3
    argTypes:
    - uint32_t*
    - uint8_t*
    - uint8_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 117
    functionName: fiat_25519_subborrowx_u25
    functionSourceFile: /src/nss/lib/freebl/ecl/curve25519_32.c
    functionUses: 0
    functionsReached:
    - UINT32_C
    linkageType: ''
    returnType: void
    signature: void fiat_25519_subborrowx_u25(uint32_t *out1, uint8_t *out2, uint8_t
      arg1, uint32_t arg2, uint32_t arg3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - out1
    - out2
    - arg1
    - arg2
    - arg3
    argTypes:
    - uint32_t*
    - uint8_t*
    - uint8_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 141
    functionName: fiat_25519_addcarryx_u26
    functionSourceFile: /src/nss/lib/freebl/ecl/curve25519_32.c
    functionUses: 0
    functionsReached:
    - UINT32_C
    linkageType: ''
    returnType: void
    signature: void fiat_25519_addcarryx_u26(uint32_t *out1, uint8_t *out2, uint8_t
      arg1, uint32_t arg2, uint32_t arg3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - out1
    - out2
    - arg1
    - arg2
    - arg3
    argTypes:
    - uint32_t*
    - uint8_t*
    - uint8_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 165
    functionName: fiat_25519_addcarryx_u25
    functionSourceFile: /src/nss/lib/freebl/ecl/curve25519_32.c
    functionUses: 0
    functionsReached:
    - UINT32_C
    linkageType: ''
    returnType: void
    signature: void fiat_25519_addcarryx_u25(uint32_t *out1, uint8_t *out2, uint8_t
      arg1, uint32_t arg2, uint32_t arg3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - out1
    - arg1
    - arg2
    - arg3
    argTypes:
    - uint32_t*
    - uint8_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 186
    functionName: fiat_25519_cmovznz_u32
    functionSourceFile: /src/nss/lib/freebl/ecl/curve25519_32.c
    functionUses: 0
    functionsReached:
    - UINT32_C
    linkageType: ''
    returnType: void
    signature: void fiat_25519_cmovznz_u32(uint32_t *out1, uint8_t arg1, uint32_t
      arg2, uint32_t arg3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:235,1
    - Dst: UINT32_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:247,1
    - Dst: UINT32_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:250,1
    - Dst: UINT32_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:253,1
    - Dst: UINT32_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:255,1
    - Dst: UINT32_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:257,1
    - Dst: UINT32_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:260,1
    - Dst: UINT32_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:263,1
    - Dst: UINT32_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - out1
    - arg1
    argTypes:
    - uint32_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 278
    functionName: fiat_25519_from_bytes
    functionSourceFile: /src/nss/lib/freebl/ecl/curve25519_32.c
    functionUses: 0
    functionsReached:
    - UINT32_C
    linkageType: ''
    returnType: void
    signature: void fiat_25519_from_bytes(uint32_t out1[10], const uint8_t arg1[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:284,1
    - Dst: fiat_25519_from_bytes
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:285,1
    - Dst: assert_fe
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - h
    - s
    argTypes:
    - fe*
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 287
    functionName: fe_frombytes_strict
    functionSourceFile: /src/nss/lib/freebl/ecl/curve25519_32.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - fiat_25519_from_bytes
    - assert_fe
    linkageType: ''
    returnType: void
    signature: void fe_frombytes_strict(fe *h, const uint8_t s[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:293,1
    - Dst: fe_frombytes_strict
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - h
    - s
    argTypes:
    - fe*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 289
    functionDepth: 2
    functionLinenumber: 289
    functionLinenumberEnd: 296
    functionName: fe_frombytes
    functionSourceFile: /src/nss/lib/freebl/ecl/curve25519_32.c
    functionUses: 0
    functionsReached:
    - memcpy
    - fe_frombytes_strict
    linkageType: ''
    returnType: void
    signature: void fe_frombytes(fe *h, const uint8_t *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fiat_25519_subborrowx_u26
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:313,1
    - Dst: UINT32_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:313,1
    - Dst: fiat_25519_subborrowx_u25
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:316,1
    - Dst: UINT32_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:316,1
    - Dst: fiat_25519_subborrowx_u26
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:319,1
    - Dst: UINT32_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:319,1
    - Dst: fiat_25519_subborrowx_u25
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:322,1
    - Dst: UINT32_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:322,1
    - Dst: fiat_25519_subborrowx_u26
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:325,1
    - Dst: UINT32_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:325,1
    - Dst: fiat_25519_subborrowx_u25
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:328,1
    - Dst: UINT32_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:328,1
    - Dst: fiat_25519_subborrowx_u26
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:331,1
    - Dst: UINT32_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:331,1
    - Dst: fiat_25519_subborrowx_u25
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:334,1
    - Dst: UINT32_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:334,1
    - Dst: fiat_25519_subborrowx_u26
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:337,1
    - Dst: UINT32_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:337,1
    - Dst: fiat_25519_subborrowx_u25
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:340,1
    - Dst: UINT32_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:340,1
    - Dst: fiat_25519_cmovznz_u32
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:342,1
    - Dst: UINT32_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:342,1
    - Dst: fiat_25519_addcarryx_u26
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:345,1
    - Dst: UINT32_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:345,1
    - Dst: fiat_25519_addcarryx_u25
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:348,1
    - Dst: UINT32_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:348,1
    - Dst: fiat_25519_addcarryx_u26
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:351,1
    - Dst: UINT32_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:351,1
    - Dst: fiat_25519_addcarryx_u25
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:354,1
    - Dst: UINT32_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:354,1
    - Dst: fiat_25519_addcarryx_u26
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:357,1
    - Dst: UINT32_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:357,1
    - Dst: fiat_25519_addcarryx_u25
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:360,1
    - Dst: UINT32_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:360,1
    - Dst: fiat_25519_addcarryx_u26
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:363,1
    - Dst: UINT32_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:363,1
    - Dst: fiat_25519_addcarryx_u25
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:366,1
    - Dst: UINT32_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:366,1
    - Dst: fiat_25519_addcarryx_u26
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:369,1
    - Dst: UINT32_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:369,1
    - Dst: fiat_25519_addcarryx_u25
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:372,1
    - Dst: UINT32_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:372,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:382,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:384,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:386,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:389,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:391,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:393,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:396,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:398,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:400,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:403,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:405,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:407,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:410,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:412,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:414,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:415,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:417,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:419,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:421,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:424,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:426,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:428,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:431,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:433,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:435,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:438,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:440,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:442,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:445,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:447,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 54
    argCount: 2
    argNames:
    - out1
    - arg1
    argTypes:
    - uint8_t[]
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 482
    functionName: fiat_25519_to_bytes
    functionSourceFile: /src/nss/lib/freebl/ecl/curve25519_32.c
    functionUses: 0
    functionsReached:
    - fiat_25519_addcarryx_u26
    - UINT32_C
    - UINT8_C
    - fiat_25519_cmovznz_u32
    - fiat_25519_addcarryx_u25
    - fiat_25519_subborrowx_u26
    - fiat_25519_subborrowx_u25
    linkageType: ''
    returnType: void
    signature: void fiat_25519_to_bytes(uint8_t out1[32], const uint32_t arg1[10])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_fe
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:487,1
    - Dst: fiat_25519_to_bytes
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - f
    argTypes:
    - uint8_t[]
    - fe*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 484
    functionDepth: 2
    functionLinenumber: 484
    functionLinenumberEnd: 489
    functionName: fe_tobytes
    functionSourceFile: /src/nss/lib/freebl/ecl/curve25519_32.c
    functionUses: 0
    functionsReached:
    - fiat_25519_to_bytes
    - assert_fe
    linkageType: ''
    returnType: void
    signature: void fe_tobytes(uint8_t s[32], const fe *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memmove
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - f
    argTypes:
    - fe*
    - fe*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 492
    functionDepth: 1
    functionLinenumber: 492
    functionLinenumberEnd: 496
    functionName: fe_copy
    functionSourceFile: /src/nss/lib/freebl/ecl/curve25519_32.c
    functionUses: 0
    functionsReached:
    - memmove
    linkageType: ''
    returnType: void
    signature: void fe_copy(fe *h, const fe *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:501,1
    - Dst: memmove
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - h
    - f
    argTypes:
    - fe_loose*
    - fe*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 503
    functionName: fe_copy_lt
    functionSourceFile: /src/nss/lib/freebl/ecl/curve25519_32.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - memmove
    linkageType: ''
    returnType: void
    signature: void fe_copy_lt(fe_loose *h, const fe *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h
    argTypes:
    - fe*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 512
    functionName: fe_0
    functionSourceFile: /src/nss/lib/freebl/ecl/curve25519_32.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void fe_0(fe *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - h
    argTypes:
    - fe*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 522
    functionName: fe_1
    functionSourceFile: /src/nss/lib/freebl/ecl/curve25519_32.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void fe_1(fe *h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - out1
    - arg1
    - arg2
    argTypes:
    - uint32_t[]
    - uint32_t[]
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 557
    functionName: fiat_25519_add
    functionSourceFile: /src/nss/lib/freebl/ecl/curve25519_32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fiat_25519_add(uint32_t out1[10], const uint32_t arg1[10], const
      uint32_t arg2[10])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_fe
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:566,1
    - Dst: assert_fe
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:567,1
    - Dst: fiat_25519_add
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:568,1
    - Dst: assert_fe_loose
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - h
    - f
    - g
    argTypes:
    - fe_loose*
    - fe*
    - fe*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 563
    functionDepth: 1
    functionLinenumber: 563
    functionLinenumberEnd: 570
    functionName: fe_add
    functionSourceFile: /src/nss/lib/freebl/ecl/curve25519_32.c
    functionUses: 0
    functionsReached:
    - assert_fe
    - fiat_25519_add
    - assert_fe_loose
    linkageType: ''
    returnType: void
    signature: void fe_add(fe_loose *h, const fe *f, const fe *g)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:586,1
    - Dst: UINT32_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:587,1
    - Dst: UINT32_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:588,1
    - Dst: UINT32_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:589,1
    - Dst: UINT32_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:590,1
    - Dst: UINT32_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:591,1
    - Dst: UINT32_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:592,1
    - Dst: UINT32_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:593,1
    - Dst: UINT32_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:594,1
    - Dst: UINT32_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:595,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - out1
    - arg1
    - arg2
    argTypes:
    - uint32_t[]
    - uint32_t[]
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 606
    functionName: fiat_25519_sub
    functionSourceFile: /src/nss/lib/freebl/ecl/curve25519_32.c
    functionUses: 0
    functionsReached:
    - UINT32_C
    linkageType: ''
    returnType: void
    signature: void fiat_25519_sub(uint32_t out1[10], const uint32_t arg1[10], const
      uint32_t arg2[10])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_fe
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:615,1
    - Dst: assert_fe
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:616,1
    - Dst: fiat_25519_sub
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:617,1
    - Dst: assert_fe_loose
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - h
    - f
    - g
    argTypes:
    - fe_loose*
    - fe*
    - fe*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 612
    functionDepth: 1
    functionLinenumber: 612
    functionLinenumberEnd: 619
    functionName: fe_sub
    functionSourceFile: /src/nss/lib/freebl/ecl/curve25519_32.c
    functionUses: 0
    functionsReached:
    - fiat_25519_sub
    - assert_fe
    - assert_fe_loose
    linkageType: ''
    returnType: void
    signature: void fe_sub(fe_loose *h, const fe *f, const fe *g)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:635,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:636,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:637,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:638,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:639,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:640,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:641,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:642,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:643,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:644,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:645,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:646,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:647,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:648,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:649,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:650,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:651,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:652,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:653,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:654,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:655,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:656,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:657,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:658,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:659,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:660,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:661,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:662,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:663,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:664,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:665,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:666,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:667,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:668,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:669,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:670,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:671,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:672,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:673,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:674,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:675,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:676,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:677,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:678,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:679,1
    - Dst: UINT32_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:737,1
    - Dst: UINT32_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:749,1
    - Dst: UINT32_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:752,1
    - Dst: UINT32_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:755,1
    - Dst: UINT32_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:758,1
    - Dst: UINT32_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:761,1
    - Dst: UINT32_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:764,1
    - Dst: UINT32_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:767,1
    - Dst: UINT32_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:770,1
    - Dst: UINT32_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:773,1
    - Dst: UINT8_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:774,1
    - Dst: UINT32_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:777,1
    - Dst: UINT32_C
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:780,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - out1
    - arg1
    - arg2
    argTypes:
    - uint32_t[]
    - uint32_t[]
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 632
    functionDepth: 0
    functionLinenumber: 632
    functionLinenumberEnd: 792
    functionName: fiat_25519_carry_mul
    functionSourceFile: /src/nss/lib/freebl/ecl/curve25519_32.c
    functionUses: 0
    functionsReached:
    - UINT32_C
    - UINT8_C
    linkageType: ''
    returnType: void
    signature: void fiat_25519_carry_mul(uint32_t out1[10], const uint32_t arg1[10],
      const uint32_t arg2[10])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_fe_loose
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:797,1
    - Dst: assert_fe_loose
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:798,1
    - Dst: fiat_25519_carry_mul
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:799,1
    - Dst: assert_fe
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:800,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - out1
    - arg1
    - arg2
    argTypes:
    - uint32_t[]
    - uint32_t[]
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 794
    functionDepth: 1
    functionLinenumber: 794
    functionLinenumberEnd: 801
    functionName: fe_mul
    functionSourceFile: /src/nss/lib/freebl/ecl/curve25519_32.c
    functionUses: 0
    functionsReached:
    - assert_fe
    - fiat_25519_carry_mul
    - assert_fe_loose
    linkageType: ''
    returnType: void
    signature: void fe_mul(uint32_t out1[10], const uint32_t arg1[10], const uint32_t
      arg2[10])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_mul
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - h
    - f
    - g
    argTypes:
    - fe*
    - fe*
    - fe*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 803
    functionDepth: 2
    functionLinenumber: 803
    functionLinenumberEnd: 807
    functionName: fe_mul_ttt
    functionSourceFile: /src/nss/lib/freebl/ecl/curve25519_32.c
    functionUses: 0
    functionsReached:
    - fe_mul
    linkageType: ''
    returnType: void
    signature: void fe_mul_ttt(fe *h, const fe *f, const fe *g)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_mul
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:812,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - h
    - f
    - g
    argTypes:
    - fe*
    - fe_loose*
    - fe*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 809
    functionDepth: 2
    functionLinenumber: 809
    functionLinenumberEnd: 813
    functionName: fe_mul_tlt
    functionSourceFile: /src/nss/lib/freebl/ecl/curve25519_32.c
    functionUses: 0
    functionsReached:
    - fe_mul
    linkageType: ''
    returnType: void
    signature: void fe_mul_tlt(fe *h, const fe_loose *f, const fe *g)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_mul
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:818,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - h
    - f
    - g
    argTypes:
    - fe*
    - fe_loose*
    - fe_loose*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 815
    functionDepth: 2
    functionLinenumber: 815
    functionLinenumberEnd: 819
    functionName: fe_mul_tll
    functionSourceFile: /src/nss/lib/freebl/ecl/curve25519_32.c
    functionUses: 0
    functionsReached:
    - fe_mul
    linkageType: ''
    returnType: void
    signature: void fe_mul_tll(fe *h, const fe_loose *f, const fe_loose *g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - out
    - in1
    argTypes:
    - uint32_t[]
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 821
    functionDepth: 0
    functionLinenumber: 821
    functionLinenumberEnd: 925
    functionName: fe_sq
    functionSourceFile: /src/nss/lib/freebl/ecl/curve25519_32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fe_sq(uint32_t out[10], const uint32_t in1[10])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_sq
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:930,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - f
    argTypes:
    - fe*
    - fe_loose*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 927
    functionDepth: 1
    functionLinenumber: 927
    functionLinenumberEnd: 931
    functionName: fe_sq_tl
    functionSourceFile: /src/nss/lib/freebl/ecl/curve25519_32.c
    functionUses: 0
    functionsReached:
    - fe_sq
    linkageType: ''
    returnType: void
    signature: void fe_sq_tl(fe *h, const fe_loose *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_sq
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:936,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - f
    argTypes:
    - fe*
    - fe*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 933
    functionDepth: 1
    functionLinenumber: 933
    functionLinenumberEnd: 937
    functionName: fe_sq_tt
    functionSourceFile: /src/nss/lib/freebl/ecl/curve25519_32.c
    functionUses: 0
    functionsReached:
    - fe_sq
    linkageType: ''
    returnType: void
    signature: void fe_sq_tt(fe *h, const fe *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_sq_tl
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:945,1
    - Dst: fe_sq_tt
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:946,1
    - Dst: fe_sq_tt
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:948,1
    - Dst: fe_mul_tlt
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:950,1
    - Dst: fe_mul_ttt
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:951,1
    - Dst: fe_sq_tt
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:952,1
    - Dst: fe_mul_ttt
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:953,1
    - Dst: fe_sq_tt
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:954,1
    - Dst: fe_sq_tt
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:956,1
    - Dst: fe_mul_ttt
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:958,1
    - Dst: fe_sq_tt
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:959,1
    - Dst: fe_sq_tt
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:961,1
    - Dst: fe_mul_ttt
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:963,1
    - Dst: fe_sq_tt
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:964,1
    - Dst: fe_sq_tt
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:966,1
    - Dst: fe_mul_ttt
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:968,1
    - Dst: fe_sq_tt
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:969,1
    - Dst: fe_sq_tt
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:971,1
    - Dst: fe_mul_ttt
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:973,1
    - Dst: fe_sq_tt
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:974,1
    - Dst: fe_sq_tt
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:976,1
    - Dst: fe_mul_ttt
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:978,1
    - Dst: fe_sq_tt
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:979,1
    - Dst: fe_sq_tt
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:981,1
    - Dst: fe_mul_ttt
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:983,1
    - Dst: fe_sq_tt
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:984,1
    - Dst: fe_sq_tt
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:986,1
    - Dst: fe_mul_ttt
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:988,1
    - Dst: fe_sq_tt
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:989,1
    - Dst: fe_sq_tt
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:991,1
    - Dst: fe_mul_ttt
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:993,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 50
    argCount: 2
    argNames:
    - out
    - z
    argTypes:
    - fe*
    - fe_loose*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 939
    functionDepth: 3
    functionLinenumber: 939
    functionLinenumberEnd: 994
    functionName: fe_loose_invert
    functionSourceFile: /src/nss/lib/freebl/ecl/curve25519_32.c
    functionUses: 0
    functionsReached:
    - fe_sq_tl
    - fe_mul_ttt
    - fe_mul_tlt
    - fe_sq_tt
    linkageType: ''
    returnType: void
    signature: void fe_loose_invert(fe *out, const fe_loose *z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fe_copy_lt
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:1000,1
    - Dst: fe_loose_invert
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:1001,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - z
    argTypes:
    - fe*
    - fe*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 996
    functionDepth: 4
    functionLinenumber: 996
    functionLinenumberEnd: 1002
    functionName: fe_invert
    functionSourceFile: /src/nss/lib/freebl/ecl/curve25519_32.c
    functionUses: 0
    functionsReached:
    - fe_loose_invert
    - fe_copy_lt
    linkageType: ''
    returnType: void
    signature: void fe_invert(fe *out, const fe *z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:1012,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - f
    - g
    - b
    argTypes:
    - fe*
    - fe*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 1009
    functionDepth: 0
    functionLinenumber: 1009
    functionLinenumberEnd: 1021
    functionName: fe_cswap
    functionSourceFile: /src/nss/lib/freebl/ecl/curve25519_32.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: void
    signature: void fe_cswap(fe *f, fe *g, unsigned int b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - out
    - in1
    argTypes:
    - uint32_t[]
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1138
      start: 1024
    functionDepth: 0
    functionLinenumber: 1024
    functionLinenumberEnd: 1138
    functionName: fe_mul_121666
    functionSourceFile: /src/nss/lib/freebl/ecl/curve25519_32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fe_mul_121666(uint32_t out[10], const uint32_t in1[10])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_fe_loose
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:1143,1
    - Dst: fe_mul_121666
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:1144,1
    - Dst: assert_fe
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:1145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - h
    - f
    argTypes:
    - fe*
    - fe_loose*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1140
    functionDepth: 1
    functionLinenumber: 1140
    functionLinenumberEnd: 1146
    functionName: fe_mul_121666_tl
    functionSourceFile: /src/nss/lib/freebl/ecl/curve25519_32.c
    functionUses: 0
    functionsReached:
    - assert_fe
    - fe_mul_121666
    - assert_fe_loose
    linkageType: ''
    returnType: void
    signature: void fe_mul_121666_tl(fe *h, const fe_loose *f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:1158,1
    - Dst: fe_frombytes
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:1163,1
    - Dst: fe_1
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:1164,1
    - Dst: fe_0
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:1165,1
    - Dst: fe_copy
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:1166,1
    - Dst: fe_1
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:1167,1
    - Dst: fe_cswap
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:1173,1
    - Dst: fe_cswap
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:1174,1
    - Dst: fe_sub
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:1176,1
    - Dst: fe_sub
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:1177,1
    - Dst: fe_add
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:1178,1
    - Dst: fe_add
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:1179,1
    - Dst: fe_mul_tll
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:1180,1
    - Dst: fe_mul_tll
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:1181,1
    - Dst: fe_sq_tl
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:1182,1
    - Dst: fe_sq_tl
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:1183,1
    - Dst: fe_add
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:1184,1
    - Dst: fe_sub
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:1185,1
    - Dst: fe_mul_ttt
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:1186,1
    - Dst: fe_sub
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:1187,1
    - Dst: fe_sq_tl
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:1188,1
    - Dst: fe_mul_121666_tl
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:1189,1
    - Dst: fe_sq_tl
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:1190,1
    - Dst: fe_add
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:1191,1
    - Dst: fe_mul_ttt
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:1192,1
    - Dst: fe_mul_tll
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:1193,1
    - Dst: fe_cswap
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:1196,1
    - Dst: fe_cswap
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:1197,1
    - Dst: fe_invert
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:1199,1
    - Dst: fe_mul_ttt
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:1200,1
    - Dst: fe_tobytes
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:1201,1
    - Dst: memset
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:1203,1
    - Dst: memset
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:1204,1
    - Dst: memset
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:1205,1
    - Dst: memset
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:1206,1
    - Dst: memset
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:1207,1
    - Dst: memset
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:1208,1
    - Dst: memset
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:1209,1
    - Dst: memset
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:1210,1
    - Dst: memset
      Src: /src/nss/lib/freebl/ecl/curve25519_32.c:1211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 51
    argCount: 3
    argNames:
    - out
    - scalar
    - point
    argTypes:
    - PRUint8*
    - PRUint8*
    - PRUint8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1213
      start: 1148
    functionDepth: 5
    functionLinenumber: 1148
    functionLinenumberEnd: 1213
    functionName: ec_Curve25519_mul
    functionSourceFile: /src/nss/lib/freebl/ecl/curve25519_32.c
    functionUses: 0
    functionsReached:
    - memcpy
    - fe_cswap
    - fe_frombytes
    - fe_0
    - fe_add
    - fe_1
    - fe_mul_121666_tl
    - fe_invert
    - fe_mul_tll
    - memset
    - fe_sub
    - fe_mul_ttt
    - fe_sq_tl
    - fe_tobytes
    - fe_copy
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ec_Curve25519_mul(PRUint8 *out, const PRUint8 *scalar, const
      PRUint8 *point)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hacl_Curve25519_64_ecdh
      Src: /src/nss/lib/freebl/ecl/curve25519_64.c:18,1
    - Dst: Hacl_Curve25519_51_ecdh
      Src: /src/nss/lib/freebl/ecl/curve25519_64.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - mypublic
    - secret
    - basepoint
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 13
    functionDepth: 3
    functionLinenumber: 13
    functionLinenumberEnd: 24
    functionName: ec_Curve25519_mul
    functionSourceFile: /src/nss/lib/freebl/ecl/curve25519_64.c
    functionUses: 0
    functionsReached:
    - Hacl_Curve25519_51_ecdh
    - Hacl_Curve25519_64_ecdh
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ec_Curve25519_mul(uint8_t *mypublic, const uint8_t *secret,
      const uint8_t *basepoint)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/freebl/ecl/ecp_25519.c:84,1
    - Dst: NSS_SecureMemcmp
      Src: /src/nss/lib/freebl/ecl/ecp_25519.c:85,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - px
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 91
    functionName: ec_Curve25519_pt_validate
    functionSourceFile: /src/nss/lib/freebl/ecl/ecp_25519.c
    functionUses: 0
    functionsReached:
    - NSS_SecureMemcmp
    - PR_ARRAY_SIZE
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ec_Curve25519_pt_validate(const SECItem *px)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_25519.c:100,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_25519.c:105,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - scalar
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 109
    functionName: ec_Curve25519_scalar_validate
    functionSourceFile: /src/nss/lib/freebl/ecl/ecp_25519.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ec_Curve25519_scalar_validate(const SECItem *scalar)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/freebl/ecl/ecp_25519.c:125,1
    - Dst: ec_Curve25519_mul
      Src: /src/nss/lib/freebl/ecl/ecp_25519.c:135,1
    - Dst: NSS_SecureMemcmpZero
      Src: /src/nss/lib/freebl/ecl/ecp_25519.c:136,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - X
    - k
    - P
    argTypes:
    - SECItem*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 143
    functionName: ec_Curve25519_pt_mul
    functionSourceFile: /src/nss/lib/freebl/ecl/ecp_25519.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - ec_Curve25519_mul
    - NSS_SecureMemcmpZero
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ec_Curve25519_pt_mul(SECItem *X, SECItem *k, SECItem *P)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp256r1.c:22,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp256r1.c:28,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp256r1.c:34,1
    - Dst: Hacl_P256_validate_public_key
      Src: /src/nss/lib/freebl/ecl/ecp_secp256r1.c:40,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp256r1.c:46,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - pt
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 17
    functionDepth: 7
    functionLinenumber: 17
    functionLinenumberEnd: 50
    functionName: ec_secp256r1_pt_validate
    functionSourceFile: /src/nss/lib/freebl/ecl/ecp_secp256r1.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - Hacl_P256_validate_public_key
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ec_secp256r1_pt_validate(const SECItem *pt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp256r1.c:61,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp256r1.c:67,1
    - Dst: Hacl_P256_validate_private_key
      Src: /src/nss/lib/freebl/ecl/ecp_secp256r1.c:73,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp256r1.c:79,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - scalar
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 56
    functionDepth: 5
    functionLinenumber: 56
    functionLinenumberEnd: 83
    functionName: ec_secp256r1_scalar_validate
    functionSourceFile: /src/nss/lib/freebl/ecl/ecp_secp256r1.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - Hacl_P256_validate_private_key
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ec_secp256r1_scalar_validate(const SECItem *scalar)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp256r1.c:100,1
    - Dst: Hacl_P256_dh_initiator
      Src: /src/nss/lib/freebl/ecl/ecp_secp256r1.c:106,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp256r1.c:112,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/ecl/ecp_secp256r1.c:119,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp256r1.c:129,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/ecl/ecp_secp256r1.c:136,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp256r1.c:143,1
    - Dst: Hacl_P256_dh_responder
      Src: /src/nss/lib/freebl/ecl/ecp_secp256r1.c:148,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp256r1.c:151,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/ecl/ecp_secp256r1.c:157,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 44
    argCount: 3
    argNames:
    - X
    - k
    - P
    argTypes:
    - SECItem*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 91
    functionDepth: 8
    functionLinenumber: 91
    functionLinenumberEnd: 161
    functionName: ec_secp256r1_pt_mul
    functionSourceFile: /src/nss/lib/freebl/ecl/ecp_secp256r1.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - Hacl_P256_dh_responder
    - memcpy
    - Hacl_P256_dh_initiator
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ec_secp256r1_pt_mul(SECItem *X, SECItem *k, SECItem *P)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp256r1.c:178,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp256r1.c:184,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/ecl/ecp_secp256r1.c:200,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp256r1.c:203,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/ecl/ecp_secp256r1.c:209,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/ecl/ecp_secp256r1.c:211,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/ecl/ecp_secp256r1.c:216,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/ecl/ecp_secp256r1.c:218,1
    - Dst: Hacl_P256_ecdsa_sign_p256_without_hash
      Src: /src/nss/lib/freebl/ecl/ecp_secp256r1.c:222,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp256r1.c:229,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 41
    argCount: 5
    argNames:
    - ecPrivKey
    - signature
    - digest
    - kb
    - kblen
    argTypes:
    - ECPrivateKey*
    - SECItem*
    - SECItem*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 167
    functionDepth: 3
    functionLinenumber: 167
    functionLinenumberEnd: 236
    functionName: ec_secp256r1_sign_digest
    functionSourceFile: /src/nss/lib/freebl/ecl/ecp_secp256r1.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - memcpy
    - Hacl_P256_ecdsa_sign_p256_without_hash
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ec_secp256r1_sign_digest(ECPrivateKey *ecPrivKey, SECItem
      *signature,\n                         const SECItem *digest, const unsigned
      char *kb,\n                         const unsigned int kblen)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp256r1.c:255,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp256r1.c:264,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp256r1.c:270,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/ecl/ecp_secp256r1.c:283,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/ecl/ecp_secp256r1.c:284,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/ecl/ecp_secp256r1.c:295,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/ecl/ecp_secp256r1.c:297,1
    - Dst: Hacl_P256_ecdsa_verif_without_hash
      Src: /src/nss/lib/freebl/ecl/ecp_secp256r1.c:301,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp256r1.c:310,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 36
    argCount: 3
    argNames:
    - key
    - signature
    - digest
    argTypes:
    - ECPublicKey*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 242
    functionDepth: 3
    functionLinenumber: 242
    functionLinenumberEnd: 316
    functionName: ec_secp256r1_verify_digest
    functionSourceFile: /src/nss/lib/freebl/ecl/ecp_secp256r1.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - Hacl_P256_ecdsa_verif_without_hash
    - memcpy
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ec_secp256r1_verify_digest(ECPublicKey *key, const SECItem
      *signature,\n                           const SECItem *digest)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp384r1.c:24,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp384r1.c:30,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp384r1.c:36,1
    - Dst: Hacl_P384_validate_public_key
      Src: /src/nss/lib/freebl/ecl/ecp_secp384r1.c:42,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp384r1.c:48,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - pt
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 52
    functionName: ec_secp384r1_pt_validate
    functionSourceFile: /src/nss/lib/freebl/ecl/ecp_secp384r1.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - Hacl_P384_validate_public_key
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ec_secp384r1_pt_validate(const SECItem *pt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp384r1.c:63,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp384r1.c:69,1
    - Dst: Hacl_P384_validate_private_key
      Src: /src/nss/lib/freebl/ecl/ecp_secp384r1.c:75,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp384r1.c:81,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - scalar
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 85
    functionName: ec_secp384r1_scalar_validate
    functionSourceFile: /src/nss/lib/freebl/ecl/ecp_secp384r1.c
    functionUses: 0
    functionsReached:
    - Hacl_P384_validate_private_key
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ec_secp384r1_scalar_validate(const SECItem *scalar)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp384r1.c:102,1
    - Dst: Hacl_P384_dh_initiator
      Src: /src/nss/lib/freebl/ecl/ecp_secp384r1.c:108,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp384r1.c:114,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/ecl/ecp_secp384r1.c:121,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp384r1.c:131,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/ecl/ecp_secp384r1.c:138,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp384r1.c:145,1
    - Dst: Hacl_P384_dh_responder
      Src: /src/nss/lib/freebl/ecl/ecp_secp384r1.c:151,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp384r1.c:157,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/ecl/ecp_secp384r1.c:163,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 44
    argCount: 3
    argNames:
    - X
    - k
    - P
    argTypes:
    - SECItem*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 93
    functionDepth: 4
    functionLinenumber: 93
    functionLinenumberEnd: 167
    functionName: ec_secp384r1_pt_mul
    functionSourceFile: /src/nss/lib/freebl/ecl/ecp_secp384r1.c
    functionUses: 0
    functionsReached:
    - Hacl_P384_dh_responder
    - PORT_SetError
    - memcpy
    - Hacl_P384_dh_initiator
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ec_secp384r1_pt_mul(SECItem *X, SECItem *k, SECItem *P)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp384r1.c:184,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp384r1.c:190,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/ecl/ecp_secp384r1.c:206,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp384r1.c:209,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/ecl/ecp_secp384r1.c:215,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/ecl/ecp_secp384r1.c:217,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/ecl/ecp_secp384r1.c:222,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/ecl/ecp_secp384r1.c:224,1
    - Dst: Hacl_P384_ecdsa_sign_p384_without_hash
      Src: /src/nss/lib/freebl/ecl/ecp_secp384r1.c:228,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp384r1.c:235,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 41
    argCount: 5
    argNames:
    - ecPrivKey
    - signature
    - digest
    - kb
    - kblen
    argTypes:
    - ECPrivateKey*
    - SECItem*
    - SECItem*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 173
    functionDepth: 2
    functionLinenumber: 173
    functionLinenumberEnd: 242
    functionName: ec_secp384r1_sign_digest
    functionSourceFile: /src/nss/lib/freebl/ecl/ecp_secp384r1.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - memcpy
    - Hacl_P384_ecdsa_sign_p384_without_hash
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ec_secp384r1_sign_digest(ECPrivateKey *ecPrivKey, SECItem
      *signature,\n                         const SECItem *digest, const unsigned
      char *kb,\n                         const unsigned int kblen)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp384r1.c:258,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp384r1.c:266,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp384r1.c:272,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/ecl/ecp_secp384r1.c:284,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/ecl/ecp_secp384r1.c:285,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/ecl/ecp_secp384r1.c:294,1
    - Dst: memcpy
      Src: /src/nss/lib/freebl/ecl/ecp_secp384r1.c:296,1
    - Dst: Hacl_P384_ecdsa_verif_without_hash
      Src: /src/nss/lib/freebl/ecl/ecp_secp384r1.c:300,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/freebl/ecl/ecp_secp384r1.c:307,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 34
    argCount: 3
    argNames:
    - key
    - signature
    - digest
    argTypes:
    - ECPublicKey*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 248
    functionDepth: 2
    functionLinenumber: 248
    functionLinenumberEnd: 313
    functionName: ec_secp384r1_verify_digest
    functionSourceFile: /src/nss/lib/freebl/ecl/ecp_secp384r1.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - Hacl_P384_ecdsa_verif_without_hash
    - memcpy
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ec_secp384r1_verify_digest(ECPublicKey *key, const SECItem
      *signature,\n                           const SECItem *digest)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fwFindObjects
    argTypes:
    - NSSCKFWFindObjects*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 65
    functionName: findObjects_add_pointer
    functionSourceFile: /src/nss/lib/ckfw/find.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV findObjects_add_pointer(\n    const NSSCKFWFindObjects *fwFindObjects)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fwFindObjects
    argTypes:
    - NSSCKFWFindObjects*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 72
    functionName: findObjects_remove_pointer
    functionSourceFile: /src/nss/lib/ckfw/find.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV findObjects_remove_pointer(\n    const NSSCKFWFindObjects *fwFindObjects)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fwFindObjects
    argTypes:
    - NSSCKFWFindObjects*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 79
    functionName: nssCKFWFindObjects_verifyPointer
    functionSourceFile: /src/nss/lib/ckfw/find.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWFindObjects_verifyPointer(\n    const NSSCKFWFindObjects
      *fwFindObjects)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSession_GetMDSession
      Src: /src/nss/lib/ckfw/find.c:101,1
    - Dst: nssCKFWToken_GetMDToken
      Src: /src/nss/lib/ckfw/find.c:102,1
    - Dst: nssCKFWInstance_GetMDInstance
      Src: /src/nss/lib/ckfw/find.c:103,1
    - Dst: nss_ZNEW
      Src: /src/nss/lib/ckfw/find.c:105,1
    - Dst: nssCKFWInstance_CreateMutex
      Src: /src/nss/lib/ckfw/find.c:120,1
    - Dst: findObjects_add_pointer
      Src: /src/nss/lib/ckfw/find.c:126,1
    - Dst: Final
      Src: /src/nss/lib/ckfw/find.c:139,1
    - Dst: Final
      Src: /src/nss/lib/ckfw/find.c:147,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/ckfw/find.c:152,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 160
    functionName: "NSSCKFWFindObjects *\nnssCKFWFindObjects_Create(\n    NSSCKFWSession
      *fwSession,\n    NSSCKFWToken *fwToken,\n    NSSCKFWInstance *fwInstance,\n
      \   NSSCKMDFindObjects *mdFindObjects1,\n    NSSCKMDFindObjects *mdFindObjects2,\n
      \   CK_RV *pError)"
    functionSourceFile: /src/nss/lib/ckfw/find.c
    functionUses: 0
    functionsReached:
    - nssCKFWSession_GetMDSession
    - nssCKFWInstance_CreateMutex
    - Final
    - nssCKFWInstance_GetMDInstance
    - nss_ZNEW
    - nss_ZFreeIf
    - nssCKFWToken_GetMDToken
    - findObjects_add_pointer
    linkageType: ''
    returnType: NSS_EXTERN
    signature: "NSS_EXTERN NSSCKFWFindObjects *\nnssCKFWFindObjects_Create(\n    NSSCKFWSession
      *fwSession,\n    NSSCKFWToken *fwToken,\n    NSSCKFWInstance *fwInstance,\n
      \   NSSCKMDFindObjects *mdFindObjects1,\n    NSSCKMDFindObjects *mdFindObjects2,\n
      \   CK_RV *pError)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWFindObjects_verifyPointer
      Src: /src/nss/lib/ckfw/find.c:171,1
    - Dst: nssCKFWMutex_Destroy
      Src: /src/nss/lib/ckfw/find.c:176,1
    - Dst: NSSCKFWFindObjects*::mdfo1::Final
      Src: /src/nss/lib/ckfw/find.c:181,1
    - Dst: NSSCKFWFindObjects*::mdfo2::Final
      Src: /src/nss/lib/ckfw/find.c:191,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/ckfw/find.c:198,1
    - Dst: findObjects_remove_pointer
      Src: /src/nss/lib/ckfw/find.c:201,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - fwFindObjects
    argTypes:
    - NSSCKFWFindObjects*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 205
    functionName: nssCKFWFindObjects_Destroy
    functionSourceFile: /src/nss/lib/ckfw/find.c
    functionUses: 0
    functionsReached:
    - nssCKFWFindObjects_verifyPointer
    - findObjects_remove_pointer
    - NSSCKFWFindObjects*::mdfo2::Final
    - nss_ZFreeIf
    - nssCKFWMutex_Destroy
    - NSSCKFWFindObjects*::mdfo1::Final
    linkageType: ''
    returnType: NSS_EXTERN
    signature: "NSS_EXTERN nssCKFWFindObjects_Destroy(\n    NSSCKFWFindObjects *fwFindObjects)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWFindObjects_verifyPointer
      Src: /src/nss/lib/ckfw/find.c:216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 222
    functionName: "NSSCKMDFindObjects *\nnssCKFWFindObjects_GetMDFindObjects(\n    NSSCKFWFindObjects
      *fwFindObjects)"
    functionSourceFile: /src/nss/lib/ckfw/find.c
    functionUses: 0
    functionsReached:
    - nssCKFWFindObjects_verifyPointer
    linkageType: ''
    returnType: NSS_EXTERN
    signature: "NSS_EXTERN NSSCKMDFindObjects *\nnssCKFWFindObjects_GetMDFindObjects(\n
      \   NSSCKFWFindObjects *fwFindObjects)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWFindObjects_verifyPointer
      Src: /src/nss/lib/ckfw/find.c:243,1
    - Dst: nssCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/find.c:249,1
    - Dst: mdfo1::Next
      Src: /src/nss/lib/ckfw/find.c:257,1
    - Dst: mdfo1::Final
      Src: /src/nss/lib/ckfw/find.c:268,1
    - Dst: mdfo2::Next
      Src: /src/nss/lib/ckfw/find.c:282,1
    - Dst: mdfo2::Final
      Src: /src/nss/lib/ckfw/find.c:293,1
    - Dst: nssCKFWToken_GetArena
      Src: /src/nss/lib/ckfw/find.c:324,1
    - Dst: nssCKFWObject_Create
      Src: /src/nss/lib/ckfw/find.c:332,1
    - Dst: nssCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/find.c:342,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 69
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 344
    functionName: "NSSCKFWObject *\nnssCKFWFindObjects_Next(\n    NSSCKFWFindObjects
      *fwFindObjects,\n    NSSArena *arenaOpt,\n    CK_RV *pError)"
    functionSourceFile: /src/nss/lib/ckfw/find.c
    functionUses: 0
    functionsReached:
    - nssCKFWFindObjects_verifyPointer
    - mdfo1::Next
    - nssCKFWMutex_Unlock
    - mdfo1::Final
    - nssCKFWMutex_Lock
    - mdfo2::Next
    - nssCKFWObject_Create
    - mdfo2::Final
    - nssCKFWToken_GetArena
    linkageType: ''
    returnType: NSS_EXTERN
    signature: "NSS_EXTERN NSSCKFWObject *\nnssCKFWFindObjects_Next(\n    NSSCKFWFindObjects
      *fwFindObjects,\n    NSSArena *arenaOpt,\n    CK_RV *pError)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWFindObjects_verifyPointer
      Src: /src/nss/lib/ckfw/find.c:356,1
    - Dst: nssCKFWFindObjects_GetMDFindObjects
      Src: /src/nss/lib/ckfw/find.c:361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 362
    functionName: "NSSCKMDFindObjects *\nNSSCKFWFindObjects_GetMDFindObjects(\n    NSSCKFWFindObjects
      *fwFindObjects)"
    functionSourceFile: /src/nss/lib/ckfw/find.c
    functionUses: 0
    functionsReached:
    - nssCKFWFindObjects_verifyPointer
    - nssCKFWFindObjects_GetMDFindObjects
    linkageType: ''
    returnType: NSS_EXTERN
    signature: "NSS_EXTERN NSSCKMDFindObjects *\nNSSCKFWFindObjects_GetMDFindObjects(\n
      \   NSSCKFWFindObjects *fwFindObjects)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fwSlot
    argTypes:
    - NSSCKFWSlot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: slot_add_pointer
    functionSourceFile: /src/nss/lib/ckfw/slot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV slot_add_pointer(\n    const NSSCKFWSlot *fwSlot)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fwSlot
    argTypes:
    - NSSCKFWSlot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 105
    functionName: slot_remove_pointer
    functionSourceFile: /src/nss/lib/ckfw/slot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV slot_remove_pointer(\n    const NSSCKFWSlot *fwSlot)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fwSlot
    argTypes:
    - NSSCKFWSlot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 112
    functionName: nssCKFWSlot_verifyPointer
    functionSourceFile: /src/nss/lib/ckfw/slot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWSlot_verifyPointer(\n    const NSSCKFWSlot *fwSlot)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_verifyPointer
      Src: /src/nss/lib/ckfw/slot.c:136,1
    - Dst: nssCKFWInstance_GetMDInstance
      Src: /src/nss/lib/ckfw/slot.c:142,1
    - Dst: nssCKFWInstance_GetArena
      Src: /src/nss/lib/ckfw/slot.c:148,1
    - Dst: nss_ZNEW
      Src: /src/nss/lib/ckfw/slot.c:155,1
    - Dst: nssCKFWInstance_CreateMutex
      Src: /src/nss/lib/ckfw/slot.c:166,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/ckfw/slot.c:171,1
    - Dst: Initialize
      Src: /src/nss/lib/ckfw/slot.c:177,1
    - Dst: nssCKFWMutex_Destroy
      Src: /src/nss/lib/ckfw/slot.c:179,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/ckfw/slot.c:180,1
    - Dst: slot_add_pointer
      Src: /src/nss/lib/ckfw/slot.c:186,1
    - Dst: Destroy
      Src: /src/nss/lib/ckfw/slot.c:189,1
    - Dst: nssCKFWMutex_Destroy
      Src: /src/nss/lib/ckfw/slot.c:192,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/ckfw/slot.c:193,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 199
    functionName: "NSSCKFWSlot *\nnssCKFWSlot_Create(\n    NSSCKFWInstance *fwInstance,\n
      \   NSSCKMDSlot *mdSlot,\n    CK_SLOT_ID slotID,\n    CK_RV *pError)"
    functionSourceFile: /src/nss/lib/ckfw/slot.c
    functionUses: 0
    functionsReached:
    - slot_add_pointer
    - nssCKFWInstance_CreateMutex
    - nssCKFWInstance_verifyPointer
    - Initialize
    - nssCKFWInstance_GetMDInstance
    - nss_ZNEW
    - Destroy
    - nss_ZFreeIf
    - nssCKFWMutex_Destroy
    - nssCKFWInstance_GetArena
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWSlot *\nnssCKFWSlot_Create(\n    NSSCKFWInstance
      *fwInstance,\n    NSSCKMDSlot *mdSlot,\n    CK_SLOT_ID slotID,\n    CK_RV *pError)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSlot_verifyPointer
      Src: /src/nss/lib/ckfw/slot.c:212,1
    - Dst: nssCKFWToken_Destroy
      Src: /src/nss/lib/ckfw/slot.c:218,1
    - Dst: nssCKFWMutex_Destroy
      Src: /src/nss/lib/ckfw/slot.c:221,1
    - Dst: NSSCKFWSlot*::mdSlot::Destroy
      Src: /src/nss/lib/ckfw/slot.c:224,1
    - Dst: slot_remove_pointer
      Src: /src/nss/lib/ckfw/slot.c:229,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/ckfw/slot.c:231,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - fwSlot
    argTypes:
    - NSSCKFWSlot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 233
    functionName: nssCKFWSlot_Destroy
    functionSourceFile: /src/nss/lib/ckfw/slot.c
    functionUses: 0
    functionsReached:
    - nssCKFWSlot_verifyPointer
    - nssCKFWToken_Destroy
    - slot_remove_pointer
    - nssCKFWMutex_Destroy
    - nss_ZFreeIf
    - NSSCKFWSlot*::mdSlot::Destroy
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWSlot_Destroy(\n    NSSCKFWSlot *fwSlot)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSlot_verifyPointer
      Src: /src/nss/lib/ckfw/slot.c:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 250
    functionName: "NSSCKMDSlot *\nnssCKFWSlot_GetMDSlot(\n    NSSCKFWSlot *fwSlot)"
    functionSourceFile: /src/nss/lib/ckfw/slot.c
    functionUses: 0
    functionsReached:
    - nssCKFWSlot_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKMDSlot *\nnssCKFWSlot_GetMDSlot(\n    NSSCKFWSlot
      *fwSlot)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSlot_verifyPointer
      Src: /src/nss/lib/ckfw/slot.c:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 268
    functionName: "NSSCKFWInstance *\nnssCKFWSlot_GetFWInstance(\n    NSSCKFWSlot
      *fwSlot)"
    functionSourceFile: /src/nss/lib/ckfw/slot.c
    functionUses: 0
    functionsReached:
    - nssCKFWSlot_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWInstance *\nnssCKFWSlot_GetFWInstance(\n    NSSCKFWSlot
      *fwSlot)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSlot_verifyPointer
      Src: /src/nss/lib/ckfw/slot.c:280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 286
    functionName: "NSSCKMDInstance *\nnssCKFWSlot_GetMDInstance(\n    NSSCKFWSlot
      *fwSlot)"
    functionSourceFile: /src/nss/lib/ckfw/slot.c
    functionUses: 0
    functionsReached:
    - nssCKFWSlot_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKMDInstance *\nnssCKFWSlot_GetMDInstance(\n    NSSCKFWSlot
      *fwSlot)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSlot_verifyPointer
      Src: /src/nss/lib/ckfw/slot.c:297,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fwSlot
    argTypes:
    - NSSCKFWSlot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 303
    functionName: nssCKFWSlot_GetSlotID
    functionSourceFile: /src/nss/lib/ckfw/slot.c
    functionUses: 0
    functionsReached:
    - nssCKFWSlot_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWSlot_GetSlotID(\n    NSSCKFWSlot *fwSlot)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSlot_verifyPointer
      Src: /src/nss/lib/ckfw/slot.c:321,1
    - Dst: nssCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/slot.c:327,1
    - Dst: NSSCKFWSlot*::mdSlot::GetSlotDescription
      Src: /src/nss/lib/ckfw/slot.c:334,1
    - Dst: nssUTF8_CopyIntoFixedBuffer
      Src: /src/nss/lib/ckfw/slot.c:345,1
    - Dst: nssCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/slot.c:349,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - fwSlot
    - slotDescription
    argTypes:
    - NSSCKFWSlot*
    - CK_CHAR[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 351
    functionName: nssCKFWSlot_GetSlotDescription
    functionSourceFile: /src/nss/lib/ckfw/slot.c
    functionUses: 0
    functionsReached:
    - NSSCKFWSlot*::mdSlot::GetSlotDescription
    - nssCKFWSlot_verifyPointer
    - nssCKFWMutex_Lock
    - nssCKFWMutex_Unlock
    - nssUTF8_CopyIntoFixedBuffer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWSlot_GetSlotDescription(\n    NSSCKFWSlot *fwSlot,\n
      \   CK_CHAR slotDescription[64])"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSlot_verifyPointer
      Src: /src/nss/lib/ckfw/slot.c:369,1
    - Dst: nssCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/slot.c:375,1
    - Dst: NSSCKFWSlot*::mdSlot::GetManufacturerID
      Src: /src/nss/lib/ckfw/slot.c:382,1
    - Dst: nssUTF8_CopyIntoFixedBuffer
      Src: /src/nss/lib/ckfw/slot.c:393,1
    - Dst: nssCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/slot.c:397,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - fwSlot
    - manufacturerID
    argTypes:
    - NSSCKFWSlot*
    - CK_CHAR[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 399
    functionName: nssCKFWSlot_GetManufacturerID
    functionSourceFile: /src/nss/lib/ckfw/slot.c
    functionUses: 0
    functionsReached:
    - nssCKFWSlot_verifyPointer
    - nssCKFWMutex_Lock
    - NSSCKFWSlot*::mdSlot::GetManufacturerID
    - nssCKFWMutex_Unlock
    - nssUTF8_CopyIntoFixedBuffer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWSlot_GetManufacturerID(\n    NSSCKFWSlot *fwSlot,\n
      \   CK_CHAR manufacturerID[32])"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSlot_verifyPointer
      Src: /src/nss/lib/ckfw/slot.c:410,1
    - Dst: NSSCKFWSlot*::mdSlot::GetTokenPresent
      Src: /src/nss/lib/ckfw/slot.c:419,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - fwSlot
    argTypes:
    - NSSCKFWSlot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 421
    functionName: nssCKFWSlot_GetTokenPresent
    functionSourceFile: /src/nss/lib/ckfw/slot.c
    functionUses: 0
    functionsReached:
    - NSSCKFWSlot*::mdSlot::GetTokenPresent
    - nssCKFWSlot_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWSlot_GetTokenPresent(\n    NSSCKFWSlot *fwSlot)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSlot_verifyPointer
      Src: /src/nss/lib/ckfw/slot.c:432,1
    - Dst: NSSCKFWSlot*::mdSlot::GetRemovableDevice
      Src: /src/nss/lib/ckfw/slot.c:441,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - fwSlot
    argTypes:
    - NSSCKFWSlot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 443
    functionName: nssCKFWSlot_GetRemovableDevice
    functionSourceFile: /src/nss/lib/ckfw/slot.c
    functionUses: 0
    functionsReached:
    - NSSCKFWSlot*::mdSlot::GetRemovableDevice
    - nssCKFWSlot_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWSlot_GetRemovableDevice(\n    NSSCKFWSlot *fwSlot)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSlot_verifyPointer
      Src: /src/nss/lib/ckfw/slot.c:454,1
    - Dst: NSSCKFWSlot*::mdSlot::GetHardwareSlot
      Src: /src/nss/lib/ckfw/slot.c:463,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - fwSlot
    argTypes:
    - NSSCKFWSlot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 465
    functionName: nssCKFWSlot_GetHardwareSlot
    functionSourceFile: /src/nss/lib/ckfw/slot.c
    functionUses: 0
    functionsReached:
    - nssCKFWSlot_verifyPointer
    - NSSCKFWSlot*::mdSlot::GetHardwareSlot
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWSlot_GetHardwareSlot(\n    NSSCKFWSlot *fwSlot)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSlot_verifyPointer
      Src: /src/nss/lib/ckfw/slot.c:478,1
    - Dst: nssCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/slot.c:484,1
    - Dst: NSSCKFWSlot*::mdSlot::GetHardwareVersion
      Src: /src/nss/lib/ckfw/slot.c:496,1
    - Dst: nssCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/slot.c:505,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - fwSlot
    argTypes:
    - NSSCKFWSlot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 471
    functionDepth: 1
    functionLinenumber: 471
    functionLinenumberEnd: 507
    functionName: nssCKFWSlot_GetHardwareVersion
    functionSourceFile: /src/nss/lib/ckfw/slot.c
    functionUses: 0
    functionsReached:
    - NSSCKFWSlot*::mdSlot::GetHardwareVersion
    - nssCKFWSlot_verifyPointer
    - nssCKFWMutex_Unlock
    - nssCKFWMutex_Lock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWSlot_GetHardwareVersion(\n    NSSCKFWSlot *fwSlot)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSlot_verifyPointer
      Src: /src/nss/lib/ckfw/slot.c:520,1
    - Dst: nssCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/slot.c:526,1
    - Dst: NSSCKFWSlot*::mdSlot::GetFirmwareVersion
      Src: /src/nss/lib/ckfw/slot.c:538,1
    - Dst: nssCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/slot.c:547,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - fwSlot
    argTypes:
    - NSSCKFWSlot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 549
    functionName: nssCKFWSlot_GetFirmwareVersion
    functionSourceFile: /src/nss/lib/ckfw/slot.c
    functionUses: 0
    functionsReached:
    - nssCKFWMutex_Unlock
    - nssCKFWSlot_verifyPointer
    - nssCKFWMutex_Lock
    - NSSCKFWSlot*::mdSlot::GetFirmwareVersion
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWSlot_GetFirmwareVersion(\n    NSSCKFWSlot *fwSlot)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSlot_verifyPointer
      Src: /src/nss/lib/ckfw/slot.c:568,1
    - Dst: nssCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/slot.c:574,1
    - Dst: mdSlot::GetToken
      Src: /src/nss/lib/ckfw/slot.c:586,1
    - Dst: nssCKFWToken_Create
      Src: /src/nss/lib/ckfw/slot.c:595,1
    - Dst: nssCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/slot.c:602,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 555
    functionDepth: 1
    functionLinenumber: 555
    functionLinenumberEnd: 604
    functionName: "NSSCKFWToken *\nnssCKFWSlot_GetToken(\n    NSSCKFWSlot *fwSlot,\n
      \   CK_RV *pError)"
    functionSourceFile: /src/nss/lib/ckfw/slot.c
    functionUses: 0
    functionsReached:
    - mdSlot::GetToken
    - nssCKFWSlot_verifyPointer
    - nssCKFWToken_Create
    - nssCKFWMutex_Lock
    - nssCKFWMutex_Unlock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWToken *\nnssCKFWSlot_GetToken(\n    NSSCKFWSlot
      *fwSlot,\n    CK_RV *pError)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSlot_verifyPointer
      Src: /src/nss/lib/ckfw/slot.c:615,1
    - Dst: nssCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/slot.c:620,1
    - Dst: nssCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/slot.c:626,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - fwSlot
    argTypes:
    - NSSCKFWSlot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 610
    functionDepth: 1
    functionLinenumber: 610
    functionLinenumberEnd: 628
    functionName: nssCKFWSlot_ClearToken
    functionSourceFile: /src/nss/lib/ckfw/slot.c
    functionUses: 0
    functionsReached:
    - nssCKFWMutex_Unlock
    - nssCKFWSlot_verifyPointer
    - nssCKFWMutex_Lock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWSlot_ClearToken(\n    NSSCKFWSlot *fwSlot)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSlot_verifyPointer
      Src: /src/nss/lib/ckfw/slot.c:640,1
    - Dst: nssCKFWSlot_GetMDSlot
      Src: /src/nss/lib/ckfw/slot.c:645,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 635
    functionDepth: 1
    functionLinenumber: 635
    functionLinenumberEnd: 646
    functionName: "NSSCKMDSlot *\nNSSCKFWSlot_GetMDSlot(\n    NSSCKFWSlot *fwSlot)"
    functionSourceFile: /src/nss/lib/ckfw/slot.c
    functionUses: 0
    functionsReached:
    - nssCKFWSlot_GetMDSlot
    - nssCKFWSlot_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKMDSlot *\nNSSCKFWSlot_GetMDSlot(\n    NSSCKFWSlot
      *fwSlot)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSlot_verifyPointer
      Src: /src/nss/lib/ckfw/slot.c:658,1
    - Dst: nssCKFWSlot_GetFWInstance
      Src: /src/nss/lib/ckfw/slot.c:663,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 653
    functionDepth: 1
    functionLinenumber: 653
    functionLinenumberEnd: 664
    functionName: "NSSCKFWInstance *\nNSSCKFWSlot_GetFWInstance(\n    NSSCKFWSlot
      *fwSlot)"
    functionSourceFile: /src/nss/lib/ckfw/slot.c
    functionUses: 0
    functionsReached:
    - nssCKFWSlot_GetFWInstance
    - nssCKFWSlot_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWInstance *\nNSSCKFWSlot_GetFWInstance(\n    NSSCKFWSlot
      *fwSlot)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSlot_verifyPointer
      Src: /src/nss/lib/ckfw/slot.c:676,1
    - Dst: nssCKFWSlot_GetMDInstance
      Src: /src/nss/lib/ckfw/slot.c:681,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 671
    functionDepth: 1
    functionLinenumber: 671
    functionLinenumberEnd: 682
    functionName: "NSSCKMDInstance *\nNSSCKFWSlot_GetMDInstance(\n    NSSCKFWSlot
      *fwSlot)"
    functionSourceFile: /src/nss/lib/ckfw/slot.c
    functionUses: 0
    functionsReached:
    - nssCKFWSlot_verifyPointer
    - nssCKFWSlot_GetMDInstance
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKMDInstance *\nNSSCKFWSlot_GetMDInstance(\n    NSSCKFWSlot
      *fwSlot)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSlot_GetSlotID
      Src: /src/nss/lib/ckfw/slot.c:693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fwSlot
    argTypes:
    - NSSCKFWSlot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 689
    functionDepth: 2
    functionLinenumber: 689
    functionLinenumberEnd: 694
    functionName: NSSCKFWSlot_GetSlotID
    functionSourceFile: /src/nss/lib/ckfw/slot.c
    functionUses: 0
    functionsReached:
    - nssCKFWSlot_GetSlotID
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWSlot_GetSlotID(\n    NSSCKFWSlot *fwSlot)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fwObject
    argTypes:
    - NSSCKFWObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 83
    functionName: object_add_pointer
    functionSourceFile: /src/nss/lib/ckfw/object.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV object_add_pointer(\n    const NSSCKFWObject *fwObject)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fwObject
    argTypes:
    - NSSCKFWObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 90
    functionName: object_remove_pointer
    functionSourceFile: /src/nss/lib/ckfw/object.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV object_remove_pointer(\n    const NSSCKFWObject *fwObject)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fwObject
    argTypes:
    - NSSCKFWObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 97
    functionName: nssCKFWObject_verifyPointer
    functionSourceFile: /src/nss/lib/ckfw/object.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWObject_verifyPointer(\n    const NSSCKFWObject
      *fwObject)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: nssArena_verifyPointer
      Src: /src/nss/lib/ckfw/object.c:124,1
    - Dst: nssCKFWToken_GetMDObjectHash
      Src: /src/nss/lib/ckfw/object.c:134,1
    - Dst: nssCKFWHash_Exists
      Src: /src/nss/lib/ckfw/object.c:140,1
    - Dst: nssCKFWHash_Lookup
      Src: /src/nss/lib/ckfw/object.c:141,1
    - Dst: NSSArena_Create
      Src: /src/nss/lib/ckfw/object.c:147,1
    - Dst: nss_ZNEW
      Src: /src/nss/lib/ckfw/object.c:154,1
    - Dst: nssCKFWSession_GetMDSession
      Src: /src/nss/lib/ckfw/object.c:166,1
    - Dst: nssCKFWToken_GetMDToken
      Src: /src/nss/lib/ckfw/object.c:170,1
    - Dst: nssCKFWInstance_GetMDInstance
      Src: /src/nss/lib/ckfw/object.c:172,1
    - Dst: nssCKFWInstance_CreateMutex
      Src: /src/nss/lib/ckfw/object.c:173,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/ckfw/object.c:178,1
    - Dst: NSSArena_Destroy
      Src: /src/nss/lib/ckfw/object.c:180,1
    - Dst: nssCKFWHash_Add
      Src: /src/nss/lib/ckfw/object.c:185,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/ckfw/object.c:187,1
    - Dst: NSSArena_Destroy
      Src: /src/nss/lib/ckfw/object.c:189,1
    - Dst: object_add_pointer
      Src: /src/nss/lib/ckfw/object.c:195,1
    - Dst: nssCKFWHash_Remove
      Src: /src/nss/lib/ckfw/object.c:197,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/ckfw/object.c:198,1
    - Dst: NSSArena_Destroy
      Src: /src/nss/lib/ckfw/object.c:200,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 74
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 208
    functionName: "NSSCKFWObject *\nnssCKFWObject_Create(\n    NSSArena *arena,\n
      \   NSSCKMDObject *mdObject,\n    NSSCKFWSession *fwSession,\n    NSSCKFWToken
      *fwToken,\n    NSSCKFWInstance *fwInstance,\n    CK_RV *pError)"
    functionSourceFile: /src/nss/lib/ckfw/object.c
    functionUses: 0
    functionsReached:
    - nssCKFWHash_Remove
    - nssCKFWSession_GetMDSession
    - nssCKFWInstance_CreateMutex
    - nssArena_verifyPointer
    - nssCKFWInstance_GetMDInstance
    - nssCKFWHash_Lookup
    - nss_ZNEW
    - nss_ZFreeIf
    - nssCKFWHash_Add
    - nssCKFWToken_GetMDToken
    - object_add_pointer
    - nssCKFWHash_Exists
    - NSSArena_Create
    - NSSArena_Destroy
    - nssCKFWToken_GetMDObjectHash
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWObject *\nnssCKFWObject_Create(\n    NSSArena
      *arena,\n    NSSCKMDObject *mdObject,\n    NSSCKFWSession *fwSession,\n    NSSCKFWToken
      *fwToken,\n    NSSCKFWInstance *fwInstance,\n    CK_RV *pError)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWObject_verifyPointer
      Src: /src/nss/lib/ckfw/object.c:223,1
    - Dst: nssCKFWMutex_Destroy
      Src: /src/nss/lib/ckfw/object.c:228,1
    - Dst: NSSCKFWObject*::mdObject::Finalize
      Src: /src/nss/lib/ckfw/object.c:231,1
    - Dst: nssCKFWToken_GetMDObjectHash
      Src: /src/nss/lib/ckfw/object.c:237,1
    - Dst: nssCKFWHash_Remove
      Src: /src/nss/lib/ckfw/object.c:239,1
    - Dst: nssCKFWSession_DeregisterSessionObject
      Src: /src/nss/lib/ckfw/object.c:244,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/ckfw/object.c:247,1
    - Dst: NSSArena_Destroy
      Src: /src/nss/lib/ckfw/object.c:249,1
    - Dst: object_remove_pointer
      Src: /src/nss/lib/ckfw/object.c:253,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - fwObject
    - removeFromHash
    argTypes:
    - NSSCKFWObject*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 257
    functionName: nssCKFWObject_Finalize
    functionSourceFile: /src/nss/lib/ckfw/object.c
    functionUses: 0
    functionsReached:
    - nssCKFWHash_Remove
    - NSSCKFWObject*::mdObject::Finalize
    - nssCKFWObject_verifyPointer
    - nssCKFWSession_DeregisterSessionObject
    - nss_ZFreeIf
    - nssCKFWMutex_Destroy
    - object_remove_pointer
    - NSSArena_Destroy
    - nssCKFWToken_GetMDObjectHash
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWObject_Finalize(\n    NSSCKFWObject *fwObject,\n
      \   PRBool removeFromHash)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWObject_verifyPointer
      Src: /src/nss/lib/ckfw/object.c:271,1
    - Dst: nssCKFWMutex_Destroy
      Src: /src/nss/lib/ckfw/object.c:276,1
    - Dst: NSSCKFWObject*::mdObject::Destroy
      Src: /src/nss/lib/ckfw/object.c:279,1
    - Dst: nssCKFWToken_GetMDObjectHash
      Src: /src/nss/lib/ckfw/object.c:284,1
    - Dst: nssCKFWHash_Remove
      Src: /src/nss/lib/ckfw/object.c:286,1
    - Dst: nssCKFWSession_DeregisterSessionObject
      Src: /src/nss/lib/ckfw/object.c:290,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/ckfw/object.c:293,1
    - Dst: NSSArena_Destroy
      Src: /src/nss/lib/ckfw/object.c:295,1
    - Dst: object_remove_pointer
      Src: /src/nss/lib/ckfw/object.c:299,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - fwObject
    argTypes:
    - NSSCKFWObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 303
    functionName: nssCKFWObject_Destroy
    functionSourceFile: /src/nss/lib/ckfw/object.c
    functionUses: 0
    functionsReached:
    - NSSCKFWObject*::mdObject::Destroy
    - nssCKFWHash_Remove
    - nssCKFWObject_verifyPointer
    - nssCKFWSession_DeregisterSessionObject
    - nss_ZFreeIf
    - nssCKFWMutex_Destroy
    - object_remove_pointer
    - NSSArena_Destroy
    - nssCKFWToken_GetMDObjectHash
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWObject_Destroy(\n    NSSCKFWObject *fwObject)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWObject_verifyPointer
      Src: /src/nss/lib/ckfw/object.c:314,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 320
    functionName: "NSSCKMDObject *\nnssCKFWObject_GetMDObject(\n    NSSCKFWObject
      *fwObject)"
    functionSourceFile: /src/nss/lib/ckfw/object.c
    functionUses: 0
    functionsReached:
    - nssCKFWObject_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKMDObject *\nnssCKFWObject_GetMDObject(\n    NSSCKFWObject
      *fwObject)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWObject_verifyPointer
      Src: /src/nss/lib/ckfw/object.c:336,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - fwObject
    - pError
    argTypes:
    - NSSCKFWObject*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 343
    functionName: nssCKFWObject_GetArena
    functionSourceFile: /src/nss/lib/ckfw/object.c
    functionUses: 0
    functionsReached:
    - nssCKFWObject_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nnssCKFWObject_GetArena(\n    NSSCKFWObject *fwObject,\n
      \   CK_RV *pError)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWObject_verifyPointer
      Src: /src/nss/lib/ckfw/object.c:359,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - fwObject
    - hObject
    argTypes:
    - NSSCKFWObject*
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 372
    functionName: nssCKFWObject_SetHandle
    functionSourceFile: /src/nss/lib/ckfw/object.c
    functionUses: 0
    functionsReached:
    - nssCKFWObject_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWObject_SetHandle(\n    NSSCKFWObject *fwObject,\n
      \   CK_OBJECT_HANDLE hObject)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWObject_verifyPointer
      Src: /src/nss/lib/ckfw/object.c:383,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fwObject
    argTypes:
    - NSSCKFWObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 389
    functionName: CK_OBJECT_HANDLE::nssCKFWObject_GetHandle
    functionSourceFile: /src/nss/lib/ckfw/object.c
    functionUses: 0
    functionsReached:
    - nssCKFWObject_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT CK_OBJECT_HANDLE\nnssCKFWObject_GetHandle(\n    NSSCKFWObject
      *fwObject)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWObject_verifyPointer
      Src: /src/nss/lib/ckfw/object.c:402,1
    - Dst: nssCKFWObject_GetAttribute
      Src: /src/nss/lib/ckfw/object.c:415,1
    - Dst: NSSCKFWObject*::mdObject::IsTokenObject
      Src: /src/nss/lib/ckfw/object.c:426,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - fwObject
    argTypes:
    - NSSCKFWObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 432
    functionName: nssCKFWObject_IsTokenObject
    functionSourceFile: /src/nss/lib/ckfw/object.c
    functionUses: 0
    functionsReached:
    - NSSCKFWObject*::mdObject::IsTokenObject
    - nssCKFWObject_GetAttribute
    - nssCKFWObject_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWObject_IsTokenObject(\n    NSSCKFWObject *fwObject)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWObject_verifyPointer
      Src: /src/nss/lib/ckfw/object.c:450,1
    - Dst: nssCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/object.c:461,1
    - Dst: NSSCKFWObject*::mdObject::GetAttributeCount
      Src: /src/nss/lib/ckfw/object.c:466,1
    - Dst: nssCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/object.c:471,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - fwObject
    - pError
    argTypes:
    - NSSCKFWObject*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 473
    functionName: nssCKFWObject_GetAttributeCount
    functionSourceFile: /src/nss/lib/ckfw/object.c
    functionUses: 0
    functionsReached:
    - NSSCKFWObject*::mdObject::GetAttributeCount
    - nssCKFWObject_verifyPointer
    - nssCKFWMutex_Unlock
    - nssCKFWMutex_Lock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWObject_GetAttributeCount(\n    NSSCKFWObject
      *fwObject,\n    CK_RV *pError)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWObject_verifyPointer
      Src: /src/nss/lib/ckfw/object.c:488,1
    - Dst: nssCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/object.c:502,1
    - Dst: NSSCKFWObject*::mdObject::GetAttributeTypes
      Src: /src/nss/lib/ckfw/object.c:507,1
    - Dst: nssCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/object.c:512,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - fwObject
    - typeArray
    - ulCount
    argTypes:
    - NSSCKFWObject*
    - CK_ATTRIBUTE_TYPE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 479
    functionDepth: 1
    functionLinenumber: 479
    functionLinenumberEnd: 514
    functionName: nssCKFWObject_GetAttributeTypes
    functionSourceFile: /src/nss/lib/ckfw/object.c
    functionUses: 0
    functionsReached:
    - nssCKFWMutex_Unlock
    - NSSCKFWObject*::mdObject::GetAttributeTypes
    - nssCKFWObject_verifyPointer
    - nssCKFWMutex_Lock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWObject_GetAttributeTypes(\n    NSSCKFWObject
      *fwObject,\n    CK_ATTRIBUTE_TYPE_PTR typeArray,\n    CK_ULONG ulCount)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/object.c:537,1
    - Dst: NSSCKFWObject*::mdObject::GetAttributeSize
      Src: /src/nss/lib/ckfw/object.c:542,1
    - Dst: nssCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/object.c:547,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - fwObject
    - attribute
    - pError
    argTypes:
    - NSSCKFWObject*
    - CK_ATTRIBUTE_TYPE
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 549
    functionName: nssCKFWObject_GetAttributeSize
    functionSourceFile: /src/nss/lib/ckfw/object.c
    functionUses: 0
    functionsReached:
    - NSSCKFWObject*::mdObject::GetAttributeSize
    - nssCKFWMutex_Unlock
    - nssCKFWMutex_Lock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWObject_GetAttributeSize(\n    NSSCKFWObject *fwObject,\n
      \   CK_ATTRIBUTE_TYPE attribute,\n    CK_RV *pError)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWObject_verifyPointer
      Src: /src/nss/lib/ckfw/object.c:577,1
    - Dst: nssCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/object.c:588,1
    - Dst: NSSCKFWObject*::mdObject::GetAttribute
      Src: /src/nss/lib/ckfw/object.c:593,1
    - Dst: nss_ZNEW
      Src: /src/nss/lib/ckfw/object.c:607,1
    - Dst: nss_ZAlloc
      Src: /src/nss/lib/ckfw/object.c:618,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/ckfw/object.c:622,1
    - Dst: nsslibc_memcpy
      Src: /src/nss/lib/ckfw/object.c:639,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ckfw/object.c:642,1
    - Dst: NSSCKFWObject*::mdObject::FreeAttribute
      Src: /src/nss/lib/ckfw/object.c:644,1
    - Dst: nssCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/object.c:649,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 67
    argCount: 5
    argNames:
    - fwObject
    - attribute
    - itemOpt
    - arenaOpt
    - pError
    argTypes:
    - NSSCKFWObject*
    - CK_ATTRIBUTE_TYPE
    - NSSItem*
    - NSSArena*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 561
    functionDepth: 1
    functionLinenumber: 561
    functionLinenumberEnd: 651
    functionName: nssCKFWObject_GetAttribute
    functionSourceFile: /src/nss/lib/ckfw/object.c
    functionUses: 1
    functionsReached:
    - NSSCKFWObject*::mdObject::GetAttribute
    - nssCKFWObject_verifyPointer
    - nss_ZNEW
    - nss_ZAlloc
    - nssCKFWMutex_Lock
    - PR_ASSERT
    - nss_ZFreeIf
    - nsslibc_memcpy
    - NSSCKFWObject*::mdObject::FreeAttribute
    - nssCKFWMutex_Unlock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nnssCKFWObject_GetAttribute(\n    NSSCKFWObject *fwObject,\n
      \   CK_ATTRIBUTE_TYPE attribute,\n    NSSItem *itemOpt,\n    NSSArena *arenaOpt,\n
      \   CK_RV *pError)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWObject_verifyPointer
      Src: /src/nss/lib/ckfw/object.c:667,1
    - Dst: nssCKFWSession_CopyObject
      Src: /src/nss/lib/ckfw/object.c:687,1
    - Dst: nssCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/object.c:700,1
    - Dst: nssCKFWObject_Destroy
      Src: /src/nss/lib/ckfw/object.c:702,1
    - Dst: nssCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/object.c:706,1
    - Dst: nssCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/object.c:708,1
    - Dst: nssCKFWObject_Destroy
      Src: /src/nss/lib/ckfw/object.c:709,1
    - Dst: nssCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/object.c:726,1
    - Dst: nssCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/object.c:727,1
    - Dst: nssCKFWSession_RegisterSessionObject
      Src: /src/nss/lib/ckfw/object.c:738,1
    - Dst: nssCKFWSession_DeregisterSessionObject
      Src: /src/nss/lib/ckfw/object.c:745,1
    - Dst: nssCKFWObject_Destroy
      Src: /src/nss/lib/ckfw/object.c:752,1
    - Dst: nssCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/object.c:764,1
    - Dst: NSSCKFWObject*::mdObject::SetAttribute
      Src: /src/nss/lib/ckfw/object.c:769,1
    - Dst: nssCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/object.c:774,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 56
    argCount: 4
    argNames:
    - fwObject
    - fwSession
    - attribute
    - value
    argTypes:
    - NSSCKFWObject*
    - NSSCKFWSession*
    - CK_ATTRIBUTE_TYPE
    - NSSItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 657
    functionDepth: 2
    functionLinenumber: 657
    functionLinenumberEnd: 778
    functionName: nssCKFWObject_SetAttribute
    functionSourceFile: /src/nss/lib/ckfw/object.c
    functionUses: 0
    functionsReached:
    - nssCKFWObject_Destroy
    - nssCKFWObject_verifyPointer
    - nssCKFWSession_RegisterSessionObject
    - nssCKFWMutex_Lock
    - NSSCKFWObject*::mdObject::SetAttribute
    - nssCKFWSession_DeregisterSessionObject
    - nssCKFWSession_CopyObject
    - nssCKFWMutex_Unlock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWObject_SetAttribute(\n    NSSCKFWObject *fwObject,\n
      \   NSSCKFWSession *fwSession,\n    CK_ATTRIBUTE_TYPE attribute,\n    NSSItem
      *value)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWObject_verifyPointer
      Src: /src/nss/lib/ckfw/object.c:796,1
    - Dst: nssCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/object.c:807,1
    - Dst: NSSCKFWObject*::mdObject::GetObjectSize
      Src: /src/nss/lib/ckfw/object.c:812,1
    - Dst: nssCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/object.c:817,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - fwObject
    - pError
    argTypes:
    - NSSCKFWObject*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 784
    functionDepth: 1
    functionLinenumber: 784
    functionLinenumberEnd: 819
    functionName: nssCKFWObject_GetObjectSize
    functionSourceFile: /src/nss/lib/ckfw/object.c
    functionUses: 0
    functionsReached:
    - nssCKFWMutex_Unlock
    - NSSCKFWObject*::mdObject::GetObjectSize
    - nssCKFWObject_verifyPointer
    - nssCKFWMutex_Lock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWObject_GetObjectSize(\n    NSSCKFWObject *fwObject,\n
      \   CK_RV *pError)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWObject_verifyPointer
      Src: /src/nss/lib/ckfw/object.c:830,1
    - Dst: nssCKFWObject_GetMDObject
      Src: /src/nss/lib/ckfw/object.c:835,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 825
    functionDepth: 1
    functionLinenumber: 825
    functionLinenumberEnd: 836
    functionName: "NSSCKMDObject *\nNSSCKFWObject_GetMDObject(\n    NSSCKFWObject
      *fwObject)"
    functionSourceFile: /src/nss/lib/ckfw/object.c
    functionUses: 0
    functionsReached:
    - nssCKFWObject_verifyPointer
    - nssCKFWObject_GetMDObject
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKMDObject *\nNSSCKFWObject_GetMDObject(\n    NSSCKFWObject
      *fwObject)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWObject_verifyPointer
      Src: /src/nss/lib/ckfw/object.c:852,1
    - Dst: nssCKFWObject_GetArena
      Src: /src/nss/lib/ckfw/object.c:858,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - fwObject
    - pError
    argTypes:
    - NSSCKFWObject*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 842
    functionDepth: 2
    functionLinenumber: 842
    functionLinenumberEnd: 859
    functionName: NSSCKFWObject_GetArena
    functionSourceFile: /src/nss/lib/ckfw/object.c
    functionUses: 0
    functionsReached:
    - nssCKFWObject_GetArena
    - nssCKFWObject_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSCKFWObject_GetArena(\n    NSSCKFWObject *fwObject,\n
      \   CK_RV *pError)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWObject_verifyPointer
      Src: /src/nss/lib/ckfw/object.c:870,1
    - Dst: nssCKFWObject_IsTokenObject
      Src: /src/nss/lib/ckfw/object.c:875,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fwObject
    argTypes:
    - NSSCKFWObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 865
    functionDepth: 2
    functionLinenumber: 865
    functionLinenumberEnd: 876
    functionName: NSSCKFWObject_IsTokenObject
    functionSourceFile: /src/nss/lib/ckfw/object.c
    functionUses: 0
    functionsReached:
    - nssCKFWObject_IsTokenObject
    - nssCKFWObject_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWObject_IsTokenObject(\n    NSSCKFWObject *fwObject)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWObject_verifyPointer
      Src: /src/nss/lib/ckfw/object.c:892,1
    - Dst: nssCKFWObject_GetAttributeCount
      Src: /src/nss/lib/ckfw/object.c:898,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - fwObject
    - pError
    argTypes:
    - NSSCKFWObject*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 882
    functionDepth: 2
    functionLinenumber: 882
    functionLinenumberEnd: 899
    functionName: NSSCKFWObject_GetAttributeCount
    functionSourceFile: /src/nss/lib/ckfw/object.c
    functionUses: 0
    functionsReached:
    - nssCKFWObject_verifyPointer
    - nssCKFWObject_GetAttributeCount
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWObject_GetAttributeCount(\n    NSSCKFWObject
      *fwObject,\n    CK_RV *pError)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWObject_verifyPointer
      Src: /src/nss/lib/ckfw/object.c:914,1
    - Dst: nssCKFWObject_GetAttributeTypes
      Src: /src/nss/lib/ckfw/object.c:924,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - fwObject
    - typeArray
    - ulCount
    argTypes:
    - NSSCKFWObject*
    - CK_ATTRIBUTE_TYPE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 905
    functionDepth: 2
    functionLinenumber: 905
    functionLinenumberEnd: 925
    functionName: NSSCKFWObject_GetAttributeTypes
    functionSourceFile: /src/nss/lib/ckfw/object.c
    functionUses: 0
    functionsReached:
    - nssCKFWObject_verifyPointer
    - nssCKFWObject_GetAttributeTypes
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWObject_GetAttributeTypes(\n    NSSCKFWObject
      *fwObject,\n    CK_ATTRIBUTE_TYPE_PTR typeArray,\n    CK_ULONG ulCount)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWObject_verifyPointer
      Src: /src/nss/lib/ckfw/object.c:942,1
    - Dst: nssCKFWObject_GetAttributeSize
      Src: /src/nss/lib/ckfw/object.c:948,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - fwObject
    - attribute
    - pError
    argTypes:
    - NSSCKFWObject*
    - CK_ATTRIBUTE_TYPE
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 931
    functionDepth: 2
    functionLinenumber: 931
    functionLinenumberEnd: 949
    functionName: NSSCKFWObject_GetAttributeSize
    functionSourceFile: /src/nss/lib/ckfw/object.c
    functionUses: 0
    functionsReached:
    - nssCKFWObject_verifyPointer
    - nssCKFWObject_GetAttributeSize
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWObject_GetAttributeSize(\n    NSSCKFWObject *fwObject,\n
      \   CK_ATTRIBUTE_TYPE attribute,\n    CK_RV *pError)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWObject_verifyPointer
      Src: /src/nss/lib/ckfw/object.c:968,1
    - Dst: nssCKFWObject_GetAttribute
      Src: /src/nss/lib/ckfw/object.c:974,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - fwObject
    - attribute
    - itemOpt
    - arenaOpt
    - pError
    argTypes:
    - NSSCKFWObject*
    - CK_ATTRIBUTE_TYPE
    - NSSItem*
    - NSSArena*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 955
    functionDepth: 2
    functionLinenumber: 955
    functionLinenumberEnd: 975
    functionName: NSSCKFWObject_GetAttribute
    functionSourceFile: /src/nss/lib/ckfw/object.c
    functionUses: 0
    functionsReached:
    - nssCKFWObject_GetAttribute
    - nssCKFWObject_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSCKFWObject_GetAttribute(\n    NSSCKFWObject *fwObject,\n
      \   CK_ATTRIBUTE_TYPE attribute,\n    NSSItem *itemOpt,\n    NSSArena *arenaOpt,\n
      \   CK_RV *pError)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWObject_verifyPointer
      Src: /src/nss/lib/ckfw/object.c:991,1
    - Dst: nssCKFWObject_GetObjectSize
      Src: /src/nss/lib/ckfw/object.c:997,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - fwObject
    - pError
    argTypes:
    - NSSCKFWObject*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 981
    functionDepth: 2
    functionLinenumber: 981
    functionLinenumberEnd: 998
    functionName: NSSCKFWObject_GetObjectSize
    functionSourceFile: /src/nss/lib/ckfw/object.c
    functionUses: 0
    functionsReached:
    - nssCKFWObject_verifyPointer
    - nssCKFWObject_GetObjectSize
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWObject_GetObjectSize(\n    NSSCKFWObject *fwObject,\n
      \   CK_RV *pError)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nss_ZNEW
      Src: /src/nss/lib/ckfw/mechanism.c:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 90
    functionName: "NSSCKFWMechanism *\nnssCKFWMechanism_Create(\n    NSSCKMDMechanism
      *mdMechanism,\n    NSSCKMDToken *mdToken,\n    NSSCKFWToken *fwToken,\n    NSSCKMDInstance
      *mdInstance,\n    NSSCKFWInstance *fwInstance)"
    functionSourceFile: /src/nss/lib/ckfw/mechanism.c
    functionUses: 0
    functionsReached:
    - nss_ZNEW
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWMechanism *\nnssCKFWMechanism_Create(\n    NSSCKMDMechanism
      *mdMechanism,\n    NSSCKMDToken *mdToken,\n    NSSCKFWToken *fwToken,\n    NSSCKMDInstance
      *mdInstance,\n    NSSCKFWInstance *fwInstance)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSSCKFWMechanism*::mdMechanism::Destroy
      Src: /src/nss/lib/ckfw/mechanism.c:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fwMechanism
    argTypes:
    - NSSCKFWMechanism*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 113
    functionName: nssCKFWMechanism_Destroy
    functionSourceFile: /src/nss/lib/ckfw/mechanism.c
    functionUses: 0
    functionsReached:
    - NSSCKFWMechanism*::mdMechanism::Destroy
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWMechanism_Destroy(\n    NSSCKFWMechanism *fwMechanism)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 124
    functionName: "NSSCKMDMechanism *\nnssCKFWMechanism_GetMDMechanism(\n    NSSCKFWMechanism
      *fwMechanism)"
    functionSourceFile: /src/nss/lib/ckfw/mechanism.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKMDMechanism *\nnssCKFWMechanism_GetMDMechanism(\n
      \   NSSCKFWMechanism *fwMechanism)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSSCKFWMechanism*::mdMechanism::GetMinKeySize
      Src: /src/nss/lib/ckfw/mechanism.c:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - fwMechanism
    - pError
    argTypes:
    - NSSCKFWMechanism*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 142
    functionName: nssCKFWMechanism_GetMinKeySize
    functionSourceFile: /src/nss/lib/ckfw/mechanism.c
    functionUses: 0
    functionsReached:
    - NSSCKFWMechanism*::mdMechanism::GetMinKeySize
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWMechanism_GetMinKeySize(\n    NSSCKFWMechanism
      *fwMechanism,\n    CK_RV *pError)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSSCKFWMechanism*::mdMechanism::GetMaxKeySize
      Src: /src/nss/lib/ckfw/mechanism.c:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - fwMechanism
    - pError
    argTypes:
    - NSSCKFWMechanism*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 160
    functionName: nssCKFWMechanism_GetMaxKeySize
    functionSourceFile: /src/nss/lib/ckfw/mechanism.c
    functionUses: 0
    functionsReached:
    - NSSCKFWMechanism*::mdMechanism::GetMaxKeySize
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWMechanism_GetMaxKeySize(\n    NSSCKFWMechanism
      *fwMechanism,\n    CK_RV *pError)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSSCKFWMechanism*::mdMechanism::GetInHardware
      Src: /src/nss/lib/ckfw/mechanism.c:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - fwMechanism
    - pError
    argTypes:
    - NSSCKFWMechanism*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 178
    functionName: nssCKFWMechanism_GetInHardware
    functionSourceFile: /src/nss/lib/ckfw/mechanism.c
    functionUses: 0
    functionsReached:
    - NSSCKFWMechanism*::mdMechanism::GetInHardware
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWMechanism_GetInHardware(\n    NSSCKFWMechanism
      *fwMechanism,\n    CK_RV *pError)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - fwMechanism
    - pError
    argTypes:
    - NSSCKFWMechanism*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 197
    functionName: nssCKFWMechanism_GetCanEncrypt
    functionSourceFile: /src/nss/lib/ckfw/mechanism.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSS_EXTERN
    signature: "NSS_EXTERN nssCKFWMechanism_GetCanEncrypt(\n    NSSCKFWMechanism *fwMechanism,\n
      \   CK_RV *pError)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - fwMechanism
    - pError
    argTypes:
    - NSSCKFWMechanism*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 212
    functionName: nssCKFWMechanism_GetCanDecrypt
    functionSourceFile: /src/nss/lib/ckfw/mechanism.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSS_EXTERN
    signature: "NSS_EXTERN nssCKFWMechanism_GetCanDecrypt(\n    NSSCKFWMechanism *fwMechanism,\n
      \   CK_RV *pError)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - fwMechanism
    - pError
    argTypes:
    - NSSCKFWMechanism*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 227
    functionName: nssCKFWMechanism_GetCanDigest
    functionSourceFile: /src/nss/lib/ckfw/mechanism.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSS_EXTERN
    signature: "NSS_EXTERN nssCKFWMechanism_GetCanDigest(\n    NSSCKFWMechanism *fwMechanism,\n
      \   CK_RV *pError)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - fwMechanism
    - pError
    argTypes:
    - NSSCKFWMechanism*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 242
    functionName: nssCKFWMechanism_GetCanSign
    functionSourceFile: /src/nss/lib/ckfw/mechanism.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSS_EXTERN
    signature: "NSS_EXTERN nssCKFWMechanism_GetCanSign(\n    NSSCKFWMechanism *fwMechanism,\n
      \   CK_RV *pError)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - fwMechanism
    - pError
    argTypes:
    - NSSCKFWMechanism*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 257
    functionName: nssCKFWMechanism_GetCanSignRecover
    functionSourceFile: /src/nss/lib/ckfw/mechanism.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSS_EXTERN
    signature: "NSS_EXTERN nssCKFWMechanism_GetCanSignRecover(\n    NSSCKFWMechanism
      *fwMechanism,\n    CK_RV *pError)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - fwMechanism
    - pError
    argTypes:
    - NSSCKFWMechanism*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 272
    functionName: nssCKFWMechanism_GetCanVerify
    functionSourceFile: /src/nss/lib/ckfw/mechanism.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSS_EXTERN
    signature: "NSS_EXTERN nssCKFWMechanism_GetCanVerify(\n    NSSCKFWMechanism *fwMechanism,\n
      \   CK_RV *pError)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - fwMechanism
    - pError
    argTypes:
    - NSSCKFWMechanism*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 287
    functionName: nssCKFWMechanism_GetCanVerifyRecover
    functionSourceFile: /src/nss/lib/ckfw/mechanism.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSS_EXTERN
    signature: "NSS_EXTERN nssCKFWMechanism_GetCanVerifyRecover(\n    NSSCKFWMechanism
      *fwMechanism,\n    CK_RV *pError)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - fwMechanism
    - pError
    argTypes:
    - NSSCKFWMechanism*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 302
    functionName: nssCKFWMechanism_GetCanGenerate
    functionSourceFile: /src/nss/lib/ckfw/mechanism.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSS_EXTERN
    signature: "NSS_EXTERN nssCKFWMechanism_GetCanGenerate(\n    NSSCKFWMechanism
      *fwMechanism,\n    CK_RV *pError)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - fwMechanism
    - pError
    argTypes:
    - NSSCKFWMechanism*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 317
    functionName: nssCKFWMechanism_GetCanGenerateKeyPair
    functionSourceFile: /src/nss/lib/ckfw/mechanism.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSS_EXTERN
    signature: "NSS_EXTERN nssCKFWMechanism_GetCanGenerateKeyPair(\n    NSSCKFWMechanism
      *fwMechanism,\n    CK_RV *pError)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - fwMechanism
    - pError
    argTypes:
    - NSSCKFWMechanism*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 332
    functionName: nssCKFWMechanism_GetCanUnwrap
    functionSourceFile: /src/nss/lib/ckfw/mechanism.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSS_EXTERN
    signature: "NSS_EXTERN nssCKFWMechanism_GetCanUnwrap(\n    NSSCKFWMechanism *fwMechanism,\n
      \   CK_RV *pError)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - fwMechanism
    - pError
    argTypes:
    - NSSCKFWMechanism*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 347
    functionName: nssCKFWMechanism_GetCanWrap
    functionSourceFile: /src/nss/lib/ckfw/mechanism.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSS_EXTERN
    signature: "NSS_EXTERN nssCKFWMechanism_GetCanWrap(\n    NSSCKFWMechanism *fwMechanism,\n
      \   CK_RV *pError)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - fwMechanism
    - pError
    argTypes:
    - NSSCKFWMechanism*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 362
    functionName: nssCKFWMechanism_GetCanDerive
    functionSourceFile: /src/nss/lib/ckfw/mechanism.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSS_EXTERN
    signature: "NSS_EXTERN nssCKFWMechanism_GetCanDerive(\n    NSSCKFWMechanism *fwMechanism,\n
      \   CK_RV *pError)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSession_GetCurrentCryptoOperation
      Src: /src/nss/lib/ckfw/mechanism.c:385,1
    - Dst: nssCKFWSession_GetMDSession
      Src: /src/nss/lib/ckfw/mechanism.c:395,1
    - Dst: nssCKFWObject_GetMDObject
      Src: /src/nss/lib/ckfw/mechanism.c:396,1
    - Dst: NSSCKFWMechanism*::mdMechanism::EncryptInit
      Src: /src/nss/lib/ckfw/mechanism.c:397,1
    - Dst: nssCKFWCryptoOperation_Create
      Src: /src/nss/lib/ckfw/mechanism.c:414,1
    - Dst: nssCKFWSession_SetCurrentCryptoOperation
      Src: /src/nss/lib/ckfw/mechanism.c:419,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - fwMechanism
    - pMechanism
    - fwSession
    - fwObject
    argTypes:
    - NSSCKFWMechanism*
    - CK_MECHANISM*
    - NSSCKFWSession*
    - NSSCKFWObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 425
    functionName: nssCKFWMechanism_EncryptInit
    functionSourceFile: /src/nss/lib/ckfw/mechanism.c
    functionUses: 0
    functionsReached:
    - nssCKFWSession_GetMDSession
    - NSSCKFWMechanism*::mdMechanism::EncryptInit
    - nssCKFWCryptoOperation_Create
    - nssCKFWSession_SetCurrentCryptoOperation
    - nssCKFWObject_GetMDObject
    - nssCKFWSession_GetCurrentCryptoOperation
    linkageType: ''
    returnType: NSS_EXTERN
    signature: "NSS_EXTERN nssCKFWMechanism_EncryptInit(\n    NSSCKFWMechanism *fwMechanism,\n
      \   CK_MECHANISM *pMechanism,\n    NSSCKFWSession *fwSession,\n    NSSCKFWObject
      *fwObject)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSession_GetCurrentCryptoOperation
      Src: /src/nss/lib/ckfw/mechanism.c:444,1
    - Dst: nssCKFWSession_GetMDSession
      Src: /src/nss/lib/ckfw/mechanism.c:454,1
    - Dst: nssCKFWObject_GetMDObject
      Src: /src/nss/lib/ckfw/mechanism.c:455,1
    - Dst: NSSCKFWMechanism*::mdMechanism::DecryptInit
      Src: /src/nss/lib/ckfw/mechanism.c:456,1
    - Dst: nssCKFWCryptoOperation_Create
      Src: /src/nss/lib/ckfw/mechanism.c:473,1
    - Dst: nssCKFWSession_SetCurrentCryptoOperation
      Src: /src/nss/lib/ckfw/mechanism.c:478,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - fwMechanism
    - pMechanism
    - fwSession
    - fwObject
    argTypes:
    - NSSCKFWMechanism*
    - CK_MECHANISM*
    - NSSCKFWSession*
    - NSSCKFWObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 431
    functionDepth: 1
    functionLinenumber: 431
    functionLinenumberEnd: 484
    functionName: nssCKFWMechanism_DecryptInit
    functionSourceFile: /src/nss/lib/ckfw/mechanism.c
    functionUses: 0
    functionsReached:
    - nssCKFWSession_GetMDSession
    - NSSCKFWMechanism*::mdMechanism::DecryptInit
    - nssCKFWCryptoOperation_Create
    - nssCKFWSession_SetCurrentCryptoOperation
    - nssCKFWObject_GetMDObject
    - nssCKFWSession_GetCurrentCryptoOperation
    linkageType: ''
    returnType: NSS_EXTERN
    signature: "NSS_EXTERN nssCKFWMechanism_DecryptInit(\n    NSSCKFWMechanism *fwMechanism,\n
      \   CK_MECHANISM *pMechanism,\n    NSSCKFWSession *fwSession,\n    NSSCKFWObject
      *fwObject)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSession_GetCurrentCryptoOperation
      Src: /src/nss/lib/ckfw/mechanism.c:501,1
    - Dst: nssCKFWSession_GetMDSession
      Src: /src/nss/lib/ckfw/mechanism.c:511,1
    - Dst: NSSCKFWMechanism*::mdMechanism::DigestInit
      Src: /src/nss/lib/ckfw/mechanism.c:512,1
    - Dst: nssCKFWCryptoOperation_Create
      Src: /src/nss/lib/ckfw/mechanism.c:527,1
    - Dst: nssCKFWSession_SetCurrentCryptoOperation
      Src: /src/nss/lib/ckfw/mechanism.c:532,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - fwMechanism
    - pMechanism
    - fwSession
    argTypes:
    - NSSCKFWMechanism*
    - CK_MECHANISM*
    - NSSCKFWSession*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 490
    functionDepth: 1
    functionLinenumber: 490
    functionLinenumberEnd: 538
    functionName: nssCKFWMechanism_DigestInit
    functionSourceFile: /src/nss/lib/ckfw/mechanism.c
    functionUses: 0
    functionsReached:
    - nssCKFWSession_GetMDSession
    - NSSCKFWMechanism*::mdMechanism::DigestInit
    - nssCKFWCryptoOperation_Create
    - nssCKFWSession_SetCurrentCryptoOperation
    - nssCKFWSession_GetCurrentCryptoOperation
    linkageType: ''
    returnType: NSS_EXTERN
    signature: "NSS_EXTERN nssCKFWMechanism_DigestInit(\n    NSSCKFWMechanism *fwMechanism,\n
      \   CK_MECHANISM *pMechanism,\n    NSSCKFWSession *fwSession)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSession_GetCurrentCryptoOperation
      Src: /src/nss/lib/ckfw/mechanism.c:557,1
    - Dst: nssCKFWSession_GetMDSession
      Src: /src/nss/lib/ckfw/mechanism.c:567,1
    - Dst: nssCKFWObject_GetMDObject
      Src: /src/nss/lib/ckfw/mechanism.c:568,1
    - Dst: NSSCKFWMechanism*::mdMechanism::SignInit
      Src: /src/nss/lib/ckfw/mechanism.c:569,1
    - Dst: nssCKFWCryptoOperation_Create
      Src: /src/nss/lib/ckfw/mechanism.c:586,1
    - Dst: nssCKFWSession_SetCurrentCryptoOperation
      Src: /src/nss/lib/ckfw/mechanism.c:591,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - fwMechanism
    - pMechanism
    - fwSession
    - fwObject
    argTypes:
    - NSSCKFWMechanism*
    - CK_MECHANISM*
    - NSSCKFWSession*
    - NSSCKFWObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 544
    functionDepth: 1
    functionLinenumber: 544
    functionLinenumberEnd: 597
    functionName: nssCKFWMechanism_SignInit
    functionSourceFile: /src/nss/lib/ckfw/mechanism.c
    functionUses: 0
    functionsReached:
    - nssCKFWSession_GetMDSession
    - NSSCKFWMechanism*::mdMechanism::SignInit
    - nssCKFWCryptoOperation_Create
    - nssCKFWSession_SetCurrentCryptoOperation
    - nssCKFWObject_GetMDObject
    - nssCKFWSession_GetCurrentCryptoOperation
    linkageType: ''
    returnType: NSS_EXTERN
    signature: "NSS_EXTERN nssCKFWMechanism_SignInit(\n    NSSCKFWMechanism *fwMechanism,\n
      \   CK_MECHANISM *pMechanism,\n    NSSCKFWSession *fwSession,\n    NSSCKFWObject
      *fwObject)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSession_GetCurrentCryptoOperation
      Src: /src/nss/lib/ckfw/mechanism.c:616,1
    - Dst: nssCKFWSession_GetMDSession
      Src: /src/nss/lib/ckfw/mechanism.c:626,1
    - Dst: nssCKFWObject_GetMDObject
      Src: /src/nss/lib/ckfw/mechanism.c:627,1
    - Dst: NSSCKFWMechanism*::mdMechanism::VerifyInit
      Src: /src/nss/lib/ckfw/mechanism.c:628,1
    - Dst: nssCKFWCryptoOperation_Create
      Src: /src/nss/lib/ckfw/mechanism.c:645,1
    - Dst: nssCKFWSession_SetCurrentCryptoOperation
      Src: /src/nss/lib/ckfw/mechanism.c:650,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - fwMechanism
    - pMechanism
    - fwSession
    - fwObject
    argTypes:
    - NSSCKFWMechanism*
    - CK_MECHANISM*
    - NSSCKFWSession*
    - NSSCKFWObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 603
    functionDepth: 1
    functionLinenumber: 603
    functionLinenumberEnd: 656
    functionName: nssCKFWMechanism_VerifyInit
    functionSourceFile: /src/nss/lib/ckfw/mechanism.c
    functionUses: 0
    functionsReached:
    - nssCKFWSession_GetMDSession
    - NSSCKFWMechanism*::mdMechanism::VerifyInit
    - nssCKFWCryptoOperation_Create
    - nssCKFWSession_SetCurrentCryptoOperation
    - nssCKFWObject_GetMDObject
    - nssCKFWSession_GetCurrentCryptoOperation
    linkageType: ''
    returnType: NSS_EXTERN
    signature: "NSS_EXTERN nssCKFWMechanism_VerifyInit(\n    NSSCKFWMechanism *fwMechanism,\n
      \   CK_MECHANISM *pMechanism,\n    NSSCKFWSession *fwSession,\n    NSSCKFWObject
      *fwObject)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSession_GetCurrentCryptoOperation
      Src: /src/nss/lib/ckfw/mechanism.c:675,1
    - Dst: nssCKFWSession_GetMDSession
      Src: /src/nss/lib/ckfw/mechanism.c:685,1
    - Dst: nssCKFWObject_GetMDObject
      Src: /src/nss/lib/ckfw/mechanism.c:686,1
    - Dst: NSSCKFWMechanism*::mdMechanism::SignRecoverInit
      Src: /src/nss/lib/ckfw/mechanism.c:687,1
    - Dst: nssCKFWCryptoOperation_Create
      Src: /src/nss/lib/ckfw/mechanism.c:704,1
    - Dst: nssCKFWSession_SetCurrentCryptoOperation
      Src: /src/nss/lib/ckfw/mechanism.c:709,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - fwMechanism
    - pMechanism
    - fwSession
    - fwObject
    argTypes:
    - NSSCKFWMechanism*
    - CK_MECHANISM*
    - NSSCKFWSession*
    - NSSCKFWObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 662
    functionDepth: 1
    functionLinenumber: 662
    functionLinenumberEnd: 715
    functionName: nssCKFWMechanism_SignRecoverInit
    functionSourceFile: /src/nss/lib/ckfw/mechanism.c
    functionUses: 0
    functionsReached:
    - nssCKFWSession_GetMDSession
    - NSSCKFWMechanism*::mdMechanism::SignRecoverInit
    - nssCKFWCryptoOperation_Create
    - nssCKFWSession_SetCurrentCryptoOperation
    - nssCKFWObject_GetMDObject
    - nssCKFWSession_GetCurrentCryptoOperation
    linkageType: ''
    returnType: NSS_EXTERN
    signature: "NSS_EXTERN nssCKFWMechanism_SignRecoverInit(\n    NSSCKFWMechanism
      *fwMechanism,\n    CK_MECHANISM *pMechanism,\n    NSSCKFWSession *fwSession,\n
      \   NSSCKFWObject *fwObject)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSession_GetCurrentCryptoOperation
      Src: /src/nss/lib/ckfw/mechanism.c:734,1
    - Dst: nssCKFWSession_GetMDSession
      Src: /src/nss/lib/ckfw/mechanism.c:744,1
    - Dst: nssCKFWObject_GetMDObject
      Src: /src/nss/lib/ckfw/mechanism.c:745,1
    - Dst: NSSCKFWMechanism*::mdMechanism::VerifyRecoverInit
      Src: /src/nss/lib/ckfw/mechanism.c:746,1
    - Dst: nssCKFWCryptoOperation_Create
      Src: /src/nss/lib/ckfw/mechanism.c:763,1
    - Dst: nssCKFWSession_SetCurrentCryptoOperation
      Src: /src/nss/lib/ckfw/mechanism.c:768,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - fwMechanism
    - pMechanism
    - fwSession
    - fwObject
    argTypes:
    - NSSCKFWMechanism*
    - CK_MECHANISM*
    - NSSCKFWSession*
    - NSSCKFWObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 721
    functionDepth: 1
    functionLinenumber: 721
    functionLinenumberEnd: 774
    functionName: nssCKFWMechanism_VerifyRecoverInit
    functionSourceFile: /src/nss/lib/ckfw/mechanism.c
    functionUses: 0
    functionsReached:
    - nssCKFWSession_GetMDSession
    - NSSCKFWMechanism*::mdMechanism::VerifyRecoverInit
    - nssCKFWCryptoOperation_Create
    - nssCKFWSession_SetCurrentCryptoOperation
    - nssCKFWObject_GetMDObject
    - nssCKFWSession_GetCurrentCryptoOperation
    linkageType: ''
    returnType: NSS_EXTERN
    signature: "NSS_EXTERN nssCKFWMechanism_VerifyRecoverInit(\n    NSSCKFWMechanism
      *fwMechanism,\n    CK_MECHANISM *pMechanism,\n    NSSCKFWSession *fwSession,\n
      \   NSSCKFWObject *fwObject)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWToken_GetArena
      Src: /src/nss/lib/ckfw/mechanism.c:798,1
    - Dst: nssCKFWSession_GetMDSession
      Src: /src/nss/lib/ckfw/mechanism.c:806,1
    - Dst: mdMechanism::GenerateKey
      Src: /src/nss/lib/ckfw/mechanism.c:807,1
    - Dst: nssCKFWObject_Create
      Src: /src/nss/lib/ckfw/mechanism.c:825,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 779
    functionDepth: 1
    functionLinenumber: 779
    functionLinenumberEnd: 829
    functionName: "NSSCKFWObject *\nnssCKFWMechanism_GenerateKey(\n    NSSCKFWMechanism
      *fwMechanism,\n    CK_MECHANISM_PTR pMechanism,\n    NSSCKFWSession *fwSession,\n
      \   CK_ATTRIBUTE_PTR pTemplate,\n    CK_ULONG ulAttributeCount,\n    CK_RV *pError)"
    functionSourceFile: /src/nss/lib/ckfw/mechanism.c
    functionUses: 0
    functionsReached:
    - nssCKFWObject_Create
    - nssCKFWToken_GetArena
    - nssCKFWSession_GetMDSession
    - mdMechanism::GenerateKey
    linkageType: ''
    returnType: NSS_EXTERN
    signature: "NSS_EXTERN NSSCKFWObject *\nnssCKFWMechanism_GenerateKey(\n    NSSCKFWMechanism
      *fwMechanism,\n    CK_MECHANISM_PTR pMechanism,\n    NSSCKFWSession *fwSession,\n
      \   CK_ATTRIBUTE_PTR pTemplate,\n    CK_ULONG ulAttributeCount,\n    CK_RV *pError)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWToken_GetArena
      Src: /src/nss/lib/ckfw/mechanism.c:856,1
    - Dst: nssCKFWSession_GetMDSession
      Src: /src/nss/lib/ckfw/mechanism.c:864,1
    - Dst: NSSCKFWMechanism*::mdMechanism::GenerateKeyPair
      Src: /src/nss/lib/ckfw/mechanism.c:865,1
    - Dst: nssCKFWObject_Create
      Src: /src/nss/lib/ckfw/mechanism.c:886,1
    - Dst: nssCKFWObject_Create
      Src: /src/nss/lib/ckfw/mechanism.c:891,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 9
    argNames:
    - fwMechanism
    - pMechanism
    - fwSession
    - pPublicKeyTemplate
    - ulPublicKeyAttributeCount
    - pPrivateKeyTemplate
    - ulPrivateKeyAttributeCount
    - fwPublicKeyObject
    - fwPrivateKeyObject
    argTypes:
    - NSSCKFWMechanism*
    - CK_MECHANISM_PTR
    - NSSCKFWSession*
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    - NSSCKFWObject**
    - NSSCKFWObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 834
    functionDepth: 2
    functionLinenumber: 834
    functionLinenumberEnd: 895
    functionName: nssCKFWMechanism_GenerateKeyPair
    functionSourceFile: /src/nss/lib/ckfw/mechanism.c
    functionUses: 0
    functionsReached:
    - nssCKFWObject_Create
    - nssCKFWToken_GetArena
    - NSSCKFWMechanism*::mdMechanism::GenerateKeyPair
    - nssCKFWSession_GetMDSession
    linkageType: ''
    returnType: NSS_EXTERN
    signature: "NSS_EXTERN nssCKFWMechanism_GenerateKeyPair(\n    NSSCKFWMechanism
      *fwMechanism,\n    CK_MECHANISM_PTR pMechanism,\n    NSSCKFWSession *fwSession,\n
      \   CK_ATTRIBUTE_PTR pPublicKeyTemplate,\n    CK_ULONG ulPublicKeyAttributeCount,\n
      \   CK_ATTRIBUTE_PTR pPrivateKeyTemplate,\n    CK_ULONG ulPrivateKeyAttributeCount,\n
      \   NSSCKFWObject **fwPublicKeyObject,\n    NSSCKFWObject **fwPrivateKeyObject)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSession_GetMDSession
      Src: /src/nss/lib/ckfw/mechanism.c:918,1
    - Dst: nssCKFWObject_GetMDObject
      Src: /src/nss/lib/ckfw/mechanism.c:919,1
    - Dst: nssCKFWObject_GetMDObject
      Src: /src/nss/lib/ckfw/mechanism.c:920,1
    - Dst: NSSCKFWMechanism*::mdMechanism::GetWrapKeyLength
      Src: /src/nss/lib/ckfw/mechanism.c:921,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 6
    argNames:
    - fwMechanism
    - pMechanism
    - fwSession
    - fwWrappingKeyObject
    - fwKeyObject
    - pError
    argTypes:
    - NSSCKFWMechanism*
    - CK_MECHANISM_PTR
    - NSSCKFWSession*
    - NSSCKFWObject*
    - NSSCKFWObject*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 900
    functionDepth: 0
    functionLinenumber: 900
    functionLinenumberEnd: 936
    functionName: nssCKFWMechanism_GetWrapKeyLength
    functionSourceFile: /src/nss/lib/ckfw/mechanism.c
    functionUses: 0
    functionsReached:
    - NSSCKFWMechanism*::mdMechanism::GetWrapKeyLength
    - nssCKFWObject_GetMDObject
    - nssCKFWSession_GetMDSession
    linkageType: ''
    returnType: NSS_EXTERN
    signature: "NSS_EXTERN nssCKFWMechanism_GetWrapKeyLength(\n    NSSCKFWMechanism
      *fwMechanism,\n    CK_MECHANISM_PTR pMechanism,\n    NSSCKFWSession *fwSession,\n
      \   NSSCKFWObject *fwWrappingKeyObject,\n    NSSCKFWObject *fwKeyObject,\n    CK_RV
      *pError)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSession_GetMDSession
      Src: /src/nss/lib/ckfw/mechanism.c:958,1
    - Dst: nssCKFWObject_GetMDObject
      Src: /src/nss/lib/ckfw/mechanism.c:959,1
    - Dst: nssCKFWObject_GetMDObject
      Src: /src/nss/lib/ckfw/mechanism.c:960,1
    - Dst: NSSCKFWMechanism*::mdMechanism::WrapKey
      Src: /src/nss/lib/ckfw/mechanism.c:961,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 6
    argNames:
    - fwMechanism
    - pMechanism
    - fwSession
    - fwWrappingKeyObject
    - fwKeyObject
    - wrappedKey
    argTypes:
    - NSSCKFWMechanism*
    - CK_MECHANISM_PTR
    - NSSCKFWSession*
    - NSSCKFWObject*
    - NSSCKFWObject*
    - NSSItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 941
    functionDepth: 0
    functionLinenumber: 941
    functionLinenumberEnd: 976
    functionName: nssCKFWMechanism_WrapKey
    functionSourceFile: /src/nss/lib/ckfw/mechanism.c
    functionUses: 0
    functionsReached:
    - nssCKFWObject_GetMDObject
    - nssCKFWSession_GetMDSession
    - NSSCKFWMechanism*::mdMechanism::WrapKey
    linkageType: ''
    returnType: NSS_EXTERN
    signature: "NSS_EXTERN nssCKFWMechanism_WrapKey(\n    NSSCKFWMechanism *fwMechanism,\n
      \   CK_MECHANISM_PTR pMechanism,\n    NSSCKFWSession *fwSession,\n    NSSCKFWObject
      *fwWrappingKeyObject,\n    NSSCKFWObject *fwKeyObject,\n    NSSItem *wrappedKey)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWToken_GetArena
      Src: /src/nss/lib/ckfw/mechanism.c:1007,1
    - Dst: nssCKFWSession_GetMDSession
      Src: /src/nss/lib/ckfw/mechanism.c:1015,1
    - Dst: nssCKFWObject_GetMDObject
      Src: /src/nss/lib/ckfw/mechanism.c:1016,1
    - Dst: mdMechanism::UnwrapKey
      Src: /src/nss/lib/ckfw/mechanism.c:1017,1
    - Dst: nssCKFWObject_Create
      Src: /src/nss/lib/ckfw/mechanism.c:1038,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 981
    functionDepth: 1
    functionLinenumber: 981
    functionLinenumberEnd: 1042
    functionName: "NSSCKFWObject *\nnssCKFWMechanism_UnwrapKey(\n    NSSCKFWMechanism
      *fwMechanism,\n    CK_MECHANISM_PTR pMechanism,\n    NSSCKFWSession *fwSession,\n
      \   NSSCKFWObject *fwWrappingKeyObject,\n    NSSItem *wrappedKey,\n    CK_ATTRIBUTE_PTR
      pTemplate,\n    CK_ULONG ulAttributeCount,\n    CK_RV *pError)"
    functionSourceFile: /src/nss/lib/ckfw/mechanism.c
    functionUses: 0
    functionsReached:
    - mdMechanism::UnwrapKey
    - nssCKFWSession_GetMDSession
    - nssCKFWObject_Create
    - nssCKFWToken_GetArena
    - nssCKFWObject_GetMDObject
    linkageType: ''
    returnType: NSS_EXTERN
    signature: "NSS_EXTERN NSSCKFWObject *\nnssCKFWMechanism_UnwrapKey(\n    NSSCKFWMechanism
      *fwMechanism,\n    CK_MECHANISM_PTR pMechanism,\n    NSSCKFWSession *fwSession,\n
      \   NSSCKFWObject *fwWrappingKeyObject,\n    NSSItem *wrappedKey,\n    CK_ATTRIBUTE_PTR
      pTemplate,\n    CK_ULONG ulAttributeCount,\n    CK_RV *pError)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWToken_GetArena
      Src: /src/nss/lib/ckfw/mechanism.c:1068,1
    - Dst: nssCKFWSession_GetMDSession
      Src: /src/nss/lib/ckfw/mechanism.c:1076,1
    - Dst: nssCKFWObject_GetMDObject
      Src: /src/nss/lib/ckfw/mechanism.c:1077,1
    - Dst: mdMechanism::DeriveKey
      Src: /src/nss/lib/ckfw/mechanism.c:1078,1
    - Dst: nssCKFWObject_Create
      Src: /src/nss/lib/ckfw/mechanism.c:1098,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1102
      start: 1047
    functionDepth: 1
    functionLinenumber: 1047
    functionLinenumberEnd: 1102
    functionName: "NSSCKFWObject *\nnssCKFWMechanism_DeriveKey(\n    NSSCKFWMechanism
      *fwMechanism,\n    CK_MECHANISM_PTR pMechanism,\n    NSSCKFWSession *fwSession,\n
      \   NSSCKFWObject *fwBaseKeyObject,\n    CK_ATTRIBUTE_PTR pTemplate,\n    CK_ULONG
      ulAttributeCount,\n    CK_RV *pError)"
    functionSourceFile: /src/nss/lib/ckfw/mechanism.c
    functionUses: 0
    functionsReached:
    - nssCKFWSession_GetMDSession
    - mdMechanism::DeriveKey
    - nssCKFWObject_Create
    - nssCKFWToken_GetArena
    - nssCKFWObject_GetMDObject
    linkageType: ''
    returnType: NSS_EXTERN
    signature: "NSS_EXTERN NSSCKFWObject *\nnssCKFWMechanism_DeriveKey(\n    NSSCKFWMechanism
      *fwMechanism,\n    CK_MECHANISM_PTR pMechanism,\n    NSSCKFWSession *fwSession,\n
      \   NSSCKFWObject *fwBaseKeyObject,\n    CK_ATTRIBUTE_PTR pTemplate,\n    CK_ULONG
      ulAttributeCount,\n    CK_RV *pError)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fwToken
    argTypes:
    - NSSCKFWToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 140
    functionName: token_add_pointer
    functionSourceFile: /src/nss/lib/ckfw/token.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV token_add_pointer(\n    const NSSCKFWToken *fwToken)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fwToken
    argTypes:
    - NSSCKFWToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 147
    functionName: token_remove_pointer
    functionSourceFile: /src/nss/lib/ckfw/token.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV token_remove_pointer(\n    const NSSCKFWToken *fwToken)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fwToken
    argTypes:
    - NSSCKFWToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 154
    functionName: nssCKFWToken_verifyPointer
    functionSourceFile: /src/nss/lib/ckfw/token.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWToken_verifyPointer(\n    const NSSCKFWToken
      *fwToken)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: NSSArena_Create
      Src: /src/nss/lib/ckfw/token.c:176,1
    - Dst: nss_ZNEW
      Src: /src/nss/lib/ckfw/token.c:182,1
    - Dst: nssCKFWSlot_GetFWInstance
      Src: /src/nss/lib/ckfw/token.c:191,1
    - Dst: nssCKFWSlot_GetMDInstance
      Src: /src/nss/lib/ckfw/token.c:192,1
    - Dst: nssCKFWInstance_CreateMutex
      Src: /src/nss/lib/ckfw/token.c:197,1
    - Dst: nssCKFWHash_Create
      Src: /src/nss/lib/ckfw/token.c:205,1
    - Dst: nssCKFWInstance_GetModuleHandlesSessionObjects
      Src: /src/nss/lib/ckfw/token.c:213,1
    - Dst: nssCKFWHash_Create
      Src: /src/nss/lib/ckfw/token.c:215,1
    - Dst: nssCKFWHash_Create
      Src: /src/nss/lib/ckfw/token.c:225,1
    - Dst: nssCKFWHash_Create
      Src: /src/nss/lib/ckfw/token.c:234,1
    - Dst: Setup
      Src: /src/nss/lib/ckfw/token.c:246,1
    - Dst: token_add_pointer
      Src: /src/nss/lib/ckfw/token.c:255,1
    - Dst: Invalidate
      Src: /src/nss/lib/ckfw/token.c:268,1
    - Dst: NSSArena_Destroy
      Src: /src/nss/lib/ckfw/token.c:273,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 89
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 277
    functionName: "NSSCKFWToken *\nnssCKFWToken_Create(\n    NSSCKFWSlot *fwSlot,\n
      \   NSSCKMDToken *mdToken,\n    CK_RV *pError)"
    functionSourceFile: /src/nss/lib/ckfw/token.c
    functionUses: 0
    functionsReached:
    - nssCKFWInstance_CreateMutex
    - nssCKFWHash_Create
    - nssCKFWSlot_GetMDInstance
    - Setup
    - nss_ZNEW
    - Invalidate
    - nssCKFWSlot_GetFWInstance
    - token_add_pointer
    - NSSArena_Create
    - NSSArena_Destroy
    - nssCKFWInstance_GetModuleHandlesSessionObjects
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWToken *\nnssCKFWToken_Create(\n    NSSCKFWSlot
      *fwSlot,\n    NSSCKMDToken *mdToken,\n    CK_RV *pError)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSession_Destroy
      Src: /src/nss/lib/ckfw/token.c:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - value
    - closure
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 291
    functionName: nss_ckfwtoken_session_iterator
    functionSourceFile: /src/nss/lib/ckfw/token.c
    functionUses: 0
    functionsReached:
    - nssCKFWSession_Destroy
    linkageType: ''
    returnType: void
    signature: "void nss_ckfwtoken_session_iterator(\n    const void *key,\n    void
      *value,\n    void *closure)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWObject_Finalize
      Src: /src/nss/lib/ckfw/token.c:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - value
    - closure
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 293
    functionDepth: 2
    functionLinenumber: 293
    functionLinenumberEnd: 305
    functionName: nss_ckfwtoken_object_iterator
    functionSourceFile: /src/nss/lib/ckfw/token.c
    functionUses: 0
    functionsReached:
    - nssCKFWObject_Finalize
    linkageType: ''
    returnType: void
    signature: "void nss_ckfwtoken_object_iterator(\n    const void *key,\n    void
      *value,\n    void *closure)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWToken_verifyPointer
      Src: /src/nss/lib/ckfw/token.c:318,1
    - Dst: nssCKFWMutex_Destroy
      Src: /src/nss/lib/ckfw/token.c:324,1
    - Dst: NSSCKFWToken*::mdToken::Invalidate
      Src: /src/nss/lib/ckfw/token.c:327,1
    - Dst: nssCKFWHash_Iterate
      Src: /src/nss/lib/ckfw/token.c:333,1
    - Dst: nssCKFWHash_Destroy
      Src: /src/nss/lib/ckfw/token.c:335,1
    - Dst: nssCKFWHash_Destroy
      Src: /src/nss/lib/ckfw/token.c:339,1
    - Dst: nssCKFWHash_Iterate
      Src: /src/nss/lib/ckfw/token.c:344,1
    - Dst: nssCKFWHash_Destroy
      Src: /src/nss/lib/ckfw/token.c:346,1
    - Dst: nssCKFWHash_Destroy
      Src: /src/nss/lib/ckfw/token.c:349,1
    - Dst: nssCKFWSlot_ClearToken
      Src: /src/nss/lib/ckfw/token.c:352,1
    - Dst: token_remove_pointer
      Src: /src/nss/lib/ckfw/token.c:355,1
    - Dst: NSSArena_Destroy
      Src: /src/nss/lib/ckfw/token.c:358,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 1
    argNames:
    - fwToken
    argTypes:
    - NSSCKFWToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 311
    functionDepth: 2
    functionLinenumber: 311
    functionLinenumberEnd: 360
    functionName: nssCKFWToken_Destroy
    functionSourceFile: /src/nss/lib/ckfw/token.c
    functionUses: 1
    functionsReached:
    - nssCKFWHash_Destroy
    - nssCKFWToken_verifyPointer
    - nssCKFWMutex_Destroy
    - nssCKFWHash_Iterate
    - NSSCKFWToken*::mdToken::Invalidate
    - nssCKFWSlot_ClearToken
    - NSSArena_Destroy
    - token_remove_pointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWToken_Destroy(\n    NSSCKFWToken *fwToken)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWToken_verifyPointer
      Src: /src/nss/lib/ckfw/token.c:371,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 377
    functionName: "NSSCKMDToken *\nnssCKFWToken_GetMDToken(\n    NSSCKFWToken *fwToken)"
    functionSourceFile: /src/nss/lib/ckfw/token.c
    functionUses: 0
    functionsReached:
    - nssCKFWToken_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKMDToken *\nnssCKFWToken_GetMDToken(\n    NSSCKFWToken
      *fwToken)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWToken_verifyPointer
      Src: /src/nss/lib/ckfw/token.c:393,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - fwToken
    - pError
    argTypes:
    - NSSCKFWToken*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 400
    functionName: nssCKFWToken_GetArena
    functionSourceFile: /src/nss/lib/ckfw/token.c
    functionUses: 5
    functionsReached:
    - nssCKFWToken_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nnssCKFWToken_GetArena(\n    NSSCKFWToken *fwToken,\n
      \   CK_RV *pError)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWToken_verifyPointer
      Src: /src/nss/lib/ckfw/token.c:411,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 417
    functionName: "NSSCKFWSlot *\nnssCKFWToken_GetFWSlot(\n    NSSCKFWToken *fwToken)"
    functionSourceFile: /src/nss/lib/ckfw/token.c
    functionUses: 0
    functionsReached:
    - nssCKFWToken_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWSlot *\nnssCKFWToken_GetFWSlot(\n    NSSCKFWToken
      *fwToken)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWToken_verifyPointer
      Src: /src/nss/lib/ckfw/token.c:428,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 434
    functionName: "NSSCKMDSlot *\nnssCKFWToken_GetMDSlot(\n    NSSCKFWToken *fwToken)"
    functionSourceFile: /src/nss/lib/ckfw/token.c
    functionUses: 0
    functionsReached:
    - nssCKFWToken_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKMDSlot *\nnssCKFWToken_GetMDSlot(\n    NSSCKFWToken
      *fwToken)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWToken_verifyPointer
      Src: /src/nss/lib/ckfw/token.c:445,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fwToken
    argTypes:
    - NSSCKFWToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 462
    functionName: nssCKFWToken_GetSessionState
    functionSourceFile: /src/nss/lib/ckfw/token.c
    functionUses: 0
    functionsReached:
    - nssCKFWToken_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWToken_GetSessionState(\n    NSSCKFWToken *fwToken)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWToken_verifyPointer
      Src: /src/nss/lib/ckfw/token.c:477,1
    - Dst: nssCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/token.c:483,1
    - Dst: nssCKFWToken_GetHasProtectedAuthenticationPath
      Src: /src/nss/lib/ckfw/token.c:499,1
    - Dst: NSSCKFWToken*::mdToken::InitToken
      Src: /src/nss/lib/ckfw/token.c:511,1
    - Dst: nssCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/token.c:515,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 3
    argNames:
    - fwToken
    - pin
    - label
    argTypes:
    - NSSCKFWToken*
    - NSSItem*
    - NSSUTF8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 517
    functionName: nssCKFWToken_InitToken
    functionSourceFile: /src/nss/lib/ckfw/token.c
    functionUses: 0
    functionsReached:
    - nssCKFWToken_GetHasProtectedAuthenticationPath
    - nssCKFWToken_verifyPointer
    - nssCKFWMutex_Lock
    - NSSCKFWToken*::mdToken::InitToken
    - nssCKFWMutex_Unlock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWToken_InitToken(\n    NSSCKFWToken *fwToken,\n
      \   NSSItem *pin,\n    NSSUTF8 *label)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWToken_verifyPointer
      Src: /src/nss/lib/ckfw/token.c:535,1
    - Dst: nssCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/token.c:541,1
    - Dst: NSSCKFWToken*::mdToken::GetLabel
      Src: /src/nss/lib/ckfw/token.c:548,1
    - Dst: nssUTF8_CopyIntoFixedBuffer
      Src: /src/nss/lib/ckfw/token.c:558,1
    - Dst: nssCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/token.c:562,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - fwToken
    - label
    argTypes:
    - NSSCKFWToken*
    - CK_CHAR[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 523
    functionDepth: 1
    functionLinenumber: 523
    functionLinenumberEnd: 564
    functionName: nssCKFWToken_GetLabel
    functionSourceFile: /src/nss/lib/ckfw/token.c
    functionUses: 0
    functionsReached:
    - nssCKFWToken_verifyPointer
    - nssCKFWMutex_Lock
    - NSSCKFWToken*::mdToken::GetLabel
    - nssCKFWMutex_Unlock
    - nssUTF8_CopyIntoFixedBuffer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWToken_GetLabel(\n    NSSCKFWToken *fwToken,\n
      \   CK_CHAR label[32])"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWToken_verifyPointer
      Src: /src/nss/lib/ckfw/token.c:582,1
    - Dst: nssCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/token.c:588,1
    - Dst: NSSCKFWToken*::mdToken::GetManufacturerID
      Src: /src/nss/lib/ckfw/token.c:595,1
    - Dst: nssUTF8_CopyIntoFixedBuffer
      Src: /src/nss/lib/ckfw/token.c:605,1
    - Dst: nssCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/token.c:609,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - fwToken
    - manufacturerID
    argTypes:
    - NSSCKFWToken*
    - CK_CHAR[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 611
    functionName: nssCKFWToken_GetManufacturerID
    functionSourceFile: /src/nss/lib/ckfw/token.c
    functionUses: 0
    functionsReached:
    - nssCKFWToken_verifyPointer
    - nssCKFWMutex_Lock
    - NSSCKFWToken*::mdToken::GetManufacturerID
    - nssCKFWMutex_Unlock
    - nssUTF8_CopyIntoFixedBuffer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWToken_GetManufacturerID(\n    NSSCKFWToken *fwToken,\n
      \   CK_CHAR manufacturerID[32])"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWToken_verifyPointer
      Src: /src/nss/lib/ckfw/token.c:629,1
    - Dst: nssCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/token.c:635,1
    - Dst: NSSCKFWToken*::mdToken::GetModel
      Src: /src/nss/lib/ckfw/token.c:642,1
    - Dst: nssUTF8_CopyIntoFixedBuffer
      Src: /src/nss/lib/ckfw/token.c:652,1
    - Dst: nssCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/token.c:656,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - fwToken
    - model
    argTypes:
    - NSSCKFWToken*
    - CK_CHAR[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 617
    functionDepth: 1
    functionLinenumber: 617
    functionLinenumberEnd: 658
    functionName: nssCKFWToken_GetModel
    functionSourceFile: /src/nss/lib/ckfw/token.c
    functionUses: 0
    functionsReached:
    - NSSCKFWToken*::mdToken::GetModel
    - nssCKFWToken_verifyPointer
    - nssCKFWMutex_Lock
    - nssCKFWMutex_Unlock
    - nssUTF8_CopyIntoFixedBuffer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWToken_GetModel(\n    NSSCKFWToken *fwToken,\n
      \   CK_CHAR model[16])"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWToken_verifyPointer
      Src: /src/nss/lib/ckfw/token.c:676,1
    - Dst: nssCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/token.c:682,1
    - Dst: NSSCKFWToken*::mdToken::GetSerialNumber
      Src: /src/nss/lib/ckfw/token.c:689,1
    - Dst: nssUTF8_CopyIntoFixedBuffer
      Src: /src/nss/lib/ckfw/token.c:699,1
    - Dst: nssCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/token.c:703,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - fwToken
    - serialNumber
    argTypes:
    - NSSCKFWToken*
    - CK_CHAR[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 664
    functionDepth: 1
    functionLinenumber: 664
    functionLinenumberEnd: 705
    functionName: nssCKFWToken_GetSerialNumber
    functionSourceFile: /src/nss/lib/ckfw/token.c
    functionUses: 0
    functionsReached:
    - NSSCKFWToken*::mdToken::GetSerialNumber
    - nssCKFWToken_verifyPointer
    - nssCKFWMutex_Lock
    - nssCKFWMutex_Unlock
    - nssUTF8_CopyIntoFixedBuffer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWToken_GetSerialNumber(\n    NSSCKFWToken *fwToken,\n
      \   CK_CHAR serialNumber[16])"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWToken_verifyPointer
      Src: /src/nss/lib/ckfw/token.c:716,1
    - Dst: NSSCKFWToken*::mdToken::GetHasRNG
      Src: /src/nss/lib/ckfw/token.c:725,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - fwToken
    argTypes:
    - NSSCKFWToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 711
    functionDepth: 1
    functionLinenumber: 711
    functionLinenumberEnd: 727
    functionName: nssCKFWToken_GetHasRNG
    functionSourceFile: /src/nss/lib/ckfw/token.c
    functionUses: 0
    functionsReached:
    - NSSCKFWToken*::mdToken::GetHasRNG
    - nssCKFWToken_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWToken_GetHasRNG(\n    NSSCKFWToken *fwToken)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWToken_verifyPointer
      Src: /src/nss/lib/ckfw/token.c:738,1
    - Dst: NSSCKFWToken*::mdToken::GetIsWriteProtected
      Src: /src/nss/lib/ckfw/token.c:747,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - fwToken
    argTypes:
    - NSSCKFWToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 733
    functionDepth: 1
    functionLinenumber: 733
    functionLinenumberEnd: 749
    functionName: nssCKFWToken_GetIsWriteProtected
    functionSourceFile: /src/nss/lib/ckfw/token.c
    functionUses: 0
    functionsReached:
    - nssCKFWToken_verifyPointer
    - NSSCKFWToken*::mdToken::GetIsWriteProtected
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWToken_GetIsWriteProtected(\n    NSSCKFWToken
      *fwToken)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWToken_verifyPointer
      Src: /src/nss/lib/ckfw/token.c:760,1
    - Dst: NSSCKFWToken*::mdToken::GetLoginRequired
      Src: /src/nss/lib/ckfw/token.c:769,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - fwToken
    argTypes:
    - NSSCKFWToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 755
    functionDepth: 1
    functionLinenumber: 755
    functionLinenumberEnd: 771
    functionName: nssCKFWToken_GetLoginRequired
    functionSourceFile: /src/nss/lib/ckfw/token.c
    functionUses: 0
    functionsReached:
    - NSSCKFWToken*::mdToken::GetLoginRequired
    - nssCKFWToken_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWToken_GetLoginRequired(\n    NSSCKFWToken *fwToken)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWToken_verifyPointer
      Src: /src/nss/lib/ckfw/token.c:782,1
    - Dst: NSSCKFWToken*::mdToken::GetUserPinInitialized
      Src: /src/nss/lib/ckfw/token.c:791,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - fwToken
    argTypes:
    - NSSCKFWToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 777
    functionDepth: 1
    functionLinenumber: 777
    functionLinenumberEnd: 793
    functionName: nssCKFWToken_GetUserPinInitialized
    functionSourceFile: /src/nss/lib/ckfw/token.c
    functionUses: 0
    functionsReached:
    - NSSCKFWToken*::mdToken::GetUserPinInitialized
    - nssCKFWToken_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWToken_GetUserPinInitialized(\n    NSSCKFWToken
      *fwToken)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWToken_verifyPointer
      Src: /src/nss/lib/ckfw/token.c:804,1
    - Dst: NSSCKFWToken*::mdToken::GetRestoreKeyNotNeeded
      Src: /src/nss/lib/ckfw/token.c:813,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - fwToken
    argTypes:
    - NSSCKFWToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 799
    functionDepth: 1
    functionLinenumber: 799
    functionLinenumberEnd: 815
    functionName: nssCKFWToken_GetRestoreKeyNotNeeded
    functionSourceFile: /src/nss/lib/ckfw/token.c
    functionUses: 0
    functionsReached:
    - NSSCKFWToken*::mdToken::GetRestoreKeyNotNeeded
    - nssCKFWToken_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWToken_GetRestoreKeyNotNeeded(\n    NSSCKFWToken
      *fwToken)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWToken_verifyPointer
      Src: /src/nss/lib/ckfw/token.c:826,1
    - Dst: NSSCKFWToken*::mdToken::GetHasClockOnToken
      Src: /src/nss/lib/ckfw/token.c:835,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - fwToken
    argTypes:
    - NSSCKFWToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 821
    functionDepth: 1
    functionLinenumber: 821
    functionLinenumberEnd: 837
    functionName: nssCKFWToken_GetHasClockOnToken
    functionSourceFile: /src/nss/lib/ckfw/token.c
    functionUses: 0
    functionsReached:
    - NSSCKFWToken*::mdToken::GetHasClockOnToken
    - nssCKFWToken_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWToken_GetHasClockOnToken(\n    NSSCKFWToken *fwToken)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWToken_verifyPointer
      Src: /src/nss/lib/ckfw/token.c:848,1
    - Dst: NSSCKFWToken*::mdToken::GetHasProtectedAuthenticationPath
      Src: /src/nss/lib/ckfw/token.c:857,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - fwToken
    argTypes:
    - NSSCKFWToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 843
    functionDepth: 1
    functionLinenumber: 843
    functionLinenumberEnd: 859
    functionName: nssCKFWToken_GetHasProtectedAuthenticationPath
    functionSourceFile: /src/nss/lib/ckfw/token.c
    functionUses: 1
    functionsReached:
    - nssCKFWToken_verifyPointer
    - NSSCKFWToken*::mdToken::GetHasProtectedAuthenticationPath
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWToken_GetHasProtectedAuthenticationPath(\n    NSSCKFWToken
      *fwToken)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWToken_verifyPointer
      Src: /src/nss/lib/ckfw/token.c:870,1
    - Dst: NSSCKFWToken*::mdToken::GetSupportsDualCryptoOperations
      Src: /src/nss/lib/ckfw/token.c:879,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - fwToken
    argTypes:
    - NSSCKFWToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 865
    functionDepth: 1
    functionLinenumber: 865
    functionLinenumberEnd: 881
    functionName: nssCKFWToken_GetSupportsDualCryptoOperations
    functionSourceFile: /src/nss/lib/ckfw/token.c
    functionUses: 0
    functionsReached:
    - NSSCKFWToken*::mdToken::GetSupportsDualCryptoOperations
    - nssCKFWToken_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWToken_GetSupportsDualCryptoOperations(\n    NSSCKFWToken
      *fwToken)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWToken_verifyPointer
      Src: /src/nss/lib/ckfw/token.c:892,1
    - Dst: NSSCKFWToken*::mdToken::GetMaxSessionCount
      Src: /src/nss/lib/ckfw/token.c:901,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - fwToken
    argTypes:
    - NSSCKFWToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 887
    functionDepth: 1
    functionLinenumber: 887
    functionLinenumberEnd: 903
    functionName: nssCKFWToken_GetMaxSessionCount
    functionSourceFile: /src/nss/lib/ckfw/token.c
    functionUses: 0
    functionsReached:
    - NSSCKFWToken*::mdToken::GetMaxSessionCount
    - nssCKFWToken_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWToken_GetMaxSessionCount(\n    NSSCKFWToken *fwToken)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWToken_verifyPointer
      Src: /src/nss/lib/ckfw/token.c:914,1
    - Dst: NSSCKFWToken*::mdToken::GetMaxRwSessionCount
      Src: /src/nss/lib/ckfw/token.c:923,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - fwToken
    argTypes:
    - NSSCKFWToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 909
    functionDepth: 1
    functionLinenumber: 909
    functionLinenumberEnd: 925
    functionName: nssCKFWToken_GetMaxRwSessionCount
    functionSourceFile: /src/nss/lib/ckfw/token.c
    functionUses: 0
    functionsReached:
    - NSSCKFWToken*::mdToken::GetMaxRwSessionCount
    - nssCKFWToken_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWToken_GetMaxRwSessionCount(\n    NSSCKFWToken
      *fwToken)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWToken_verifyPointer
      Src: /src/nss/lib/ckfw/token.c:936,1
    - Dst: NSSCKFWToken*::mdToken::GetMaxPinLen
      Src: /src/nss/lib/ckfw/token.c:945,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - fwToken
    argTypes:
    - NSSCKFWToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 931
    functionDepth: 1
    functionLinenumber: 931
    functionLinenumberEnd: 947
    functionName: nssCKFWToken_GetMaxPinLen
    functionSourceFile: /src/nss/lib/ckfw/token.c
    functionUses: 0
    functionsReached:
    - NSSCKFWToken*::mdToken::GetMaxPinLen
    - nssCKFWToken_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWToken_GetMaxPinLen(\n    NSSCKFWToken *fwToken)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWToken_verifyPointer
      Src: /src/nss/lib/ckfw/token.c:958,1
    - Dst: NSSCKFWToken*::mdToken::GetMinPinLen
      Src: /src/nss/lib/ckfw/token.c:967,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - fwToken
    argTypes:
    - NSSCKFWToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 953
    functionDepth: 1
    functionLinenumber: 953
    functionLinenumberEnd: 969
    functionName: nssCKFWToken_GetMinPinLen
    functionSourceFile: /src/nss/lib/ckfw/token.c
    functionUses: 0
    functionsReached:
    - NSSCKFWToken*::mdToken::GetMinPinLen
    - nssCKFWToken_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWToken_GetMinPinLen(\n    NSSCKFWToken *fwToken)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWToken_verifyPointer
      Src: /src/nss/lib/ckfw/token.c:980,1
    - Dst: NSSCKFWToken*::mdToken::GetTotalPublicMemory
      Src: /src/nss/lib/ckfw/token.c:989,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - fwToken
    argTypes:
    - NSSCKFWToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 975
    functionDepth: 1
    functionLinenumber: 975
    functionLinenumberEnd: 991
    functionName: nssCKFWToken_GetTotalPublicMemory
    functionSourceFile: /src/nss/lib/ckfw/token.c
    functionUses: 0
    functionsReached:
    - nssCKFWToken_verifyPointer
    - NSSCKFWToken*::mdToken::GetTotalPublicMemory
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWToken_GetTotalPublicMemory(\n    NSSCKFWToken
      *fwToken)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWToken_verifyPointer
      Src: /src/nss/lib/ckfw/token.c:1002,1
    - Dst: NSSCKFWToken*::mdToken::GetFreePublicMemory
      Src: /src/nss/lib/ckfw/token.c:1011,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - fwToken
    argTypes:
    - NSSCKFWToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 997
    functionDepth: 1
    functionLinenumber: 997
    functionLinenumberEnd: 1013
    functionName: nssCKFWToken_GetFreePublicMemory
    functionSourceFile: /src/nss/lib/ckfw/token.c
    functionUses: 0
    functionsReached:
    - NSSCKFWToken*::mdToken::GetFreePublicMemory
    - nssCKFWToken_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWToken_GetFreePublicMemory(\n    NSSCKFWToken
      *fwToken)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWToken_verifyPointer
      Src: /src/nss/lib/ckfw/token.c:1024,1
    - Dst: NSSCKFWToken*::mdToken::GetTotalPrivateMemory
      Src: /src/nss/lib/ckfw/token.c:1033,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - fwToken
    argTypes:
    - NSSCKFWToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1019
    functionDepth: 1
    functionLinenumber: 1019
    functionLinenumberEnd: 1035
    functionName: nssCKFWToken_GetTotalPrivateMemory
    functionSourceFile: /src/nss/lib/ckfw/token.c
    functionUses: 0
    functionsReached:
    - nssCKFWToken_verifyPointer
    - NSSCKFWToken*::mdToken::GetTotalPrivateMemory
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWToken_GetTotalPrivateMemory(\n    NSSCKFWToken
      *fwToken)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWToken_verifyPointer
      Src: /src/nss/lib/ckfw/token.c:1046,1
    - Dst: NSSCKFWToken*::mdToken::GetFreePrivateMemory
      Src: /src/nss/lib/ckfw/token.c:1055,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - fwToken
    argTypes:
    - NSSCKFWToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1041
    functionDepth: 1
    functionLinenumber: 1041
    functionLinenumberEnd: 1057
    functionName: nssCKFWToken_GetFreePrivateMemory
    functionSourceFile: /src/nss/lib/ckfw/token.c
    functionUses: 0
    functionsReached:
    - NSSCKFWToken*::mdToken::GetFreePrivateMemory
    - nssCKFWToken_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWToken_GetFreePrivateMemory(\n    NSSCKFWToken
      *fwToken)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWToken_verifyPointer
      Src: /src/nss/lib/ckfw/token.c:1070,1
    - Dst: nssCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/token.c:1076,1
    - Dst: NSSCKFWToken*::mdToken::GetHardwareVersion
      Src: /src/nss/lib/ckfw/token.c:1088,1
    - Dst: nssCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/token.c:1098,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - fwToken
    argTypes:
    - NSSCKFWToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 1063
    functionDepth: 1
    functionLinenumber: 1063
    functionLinenumberEnd: 1100
    functionName: nssCKFWToken_GetHardwareVersion
    functionSourceFile: /src/nss/lib/ckfw/token.c
    functionUses: 0
    functionsReached:
    - nssCKFWMutex_Unlock
    - NSSCKFWToken*::mdToken::GetHardwareVersion
    - nssCKFWToken_verifyPointer
    - nssCKFWMutex_Lock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWToken_GetHardwareVersion(\n    NSSCKFWToken *fwToken)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWToken_verifyPointer
      Src: /src/nss/lib/ckfw/token.c:1113,1
    - Dst: nssCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/token.c:1119,1
    - Dst: NSSCKFWToken*::mdToken::GetFirmwareVersion
      Src: /src/nss/lib/ckfw/token.c:1131,1
    - Dst: nssCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/token.c:1141,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - fwToken
    argTypes:
    - NSSCKFWToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1143
      start: 1106
    functionDepth: 1
    functionLinenumber: 1106
    functionLinenumberEnd: 1143
    functionName: nssCKFWToken_GetFirmwareVersion
    functionSourceFile: /src/nss/lib/ckfw/token.c
    functionUses: 0
    functionsReached:
    - nssCKFWMutex_Unlock
    - NSSCKFWToken*::mdToken::GetFirmwareVersion
    - nssCKFWToken_verifyPointer
    - nssCKFWMutex_Lock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWToken_GetFirmwareVersion(\n    NSSCKFWToken *fwToken)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWToken_verifyPointer
      Src: /src/nss/lib/ckfw/token.c:1157,1
    - Dst: nssCKFWToken_GetHasClockOnToken
      Src: /src/nss/lib/ckfw/token.c:1167,1
    - Dst: nssUTF8_CopyIntoFixedBuffer
      Src: /src/nss/lib/ckfw/token.c:1169,1
    - Dst: NSSCKFWToken*::mdToken::GetUTCTime
      Src: /src/nss/lib/ckfw/token.c:1178,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 65
    argCount: 2
    argNames:
    - fwToken
    - utcTime
    argTypes:
    - NSSCKFWToken*
    - CK_CHAR[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1238
      start: 1149
    functionDepth: 2
    functionLinenumber: 1149
    functionLinenumberEnd: 1238
    functionName: nssCKFWToken_GetUTCTime
    functionSourceFile: /src/nss/lib/ckfw/token.c
    functionUses: 0
    functionsReached:
    - nssCKFWToken_GetHasClockOnToken
    - NSSCKFWToken*::mdToken::GetUTCTime
    - nssCKFWToken_verifyPointer
    - nssUTF8_CopyIntoFixedBuffer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWToken_GetUTCTime(\n    NSSCKFWToken *fwToken,\n
      \   CK_CHAR utcTime[16])"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWToken_verifyPointer
      Src: /src/nss/lib/ckfw/token.c:1260,1
    - Dst: nssCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/token.c:1275,1
    - Dst: nssCKFWToken_GetIsWriteProtected
      Src: /src/nss/lib/ckfw/token.c:1282,1
    - Dst: nssCKFWToken_GetSessionState
      Src: /src/nss/lib/ckfw/token.c:1288,1
    - Dst: nssCKFWSession_Create
      Src: /src/nss/lib/ckfw/token.c:1306,1
    - Dst: mdToken::OpenSession
      Src: /src/nss/lib/ckfw/token.c:1314,1
    - Dst: nssCKFWSession_Destroy
      Src: /src/nss/lib/ckfw/token.c:1318,1
    - Dst: nssCKFWSession_SetMDSession
      Src: /src/nss/lib/ckfw/token.c:1325,1
    - Dst: NSSCKMDSession*::Close
      Src: /src/nss/lib/ckfw/token.c:1328,1
    - Dst: nssCKFWSession_Destroy
      Src: /src/nss/lib/ckfw/token.c:1331,1
    - Dst: nssCKFWHash_Add
      Src: /src/nss/lib/ckfw/token.c:1335,1
    - Dst: nssCKFWSession_Destroy
      Src: /src/nss/lib/ckfw/token.c:1337,1
    - Dst: nssCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/token.c:1343,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 75
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1345
      start: 1244
    functionDepth: 2
    functionLinenumber: 1244
    functionLinenumberEnd: 1345
    functionName: "NSSCKFWSession *\nnssCKFWToken_OpenSession(\n    NSSCKFWToken *fwToken,\n
      \   CK_BBOOL rw,\n    CK_VOID_PTR pApplication,\n    CK_NOTIFY Notify,\n    CK_RV
      *pError)"
    functionSourceFile: /src/nss/lib/ckfw/token.c
    functionUses: 0
    functionsReached:
    - nssCKFWSession_Create
    - nssCKFWToken_verifyPointer
    - nssCKFWMutex_Lock
    - nssCKFWToken_GetIsWriteProtected
    - NSSCKMDSession*::Close
    - nssCKFWHash_Add
    - mdToken::OpenSession
    - nssCKFWSession_SetMDSession
    - nssCKFWToken_GetSessionState
    - nssCKFWMutex_Unlock
    - nssCKFWSession_Destroy
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWSession *\nnssCKFWToken_OpenSession(\n    NSSCKFWToken
      *fwToken,\n    CK_BBOOL rw,\n    CK_VOID_PTR pApplication,\n    CK_NOTIFY Notify,\n
      \   CK_RV *pError)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWToken_verifyPointer
      Src: /src/nss/lib/ckfw/token.c:1356,1
    - Dst: NSSCKFWToken*::mdToken::GetMechanismCount
      Src: /src/nss/lib/ckfw/token.c:1365,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - fwToken
    argTypes:
    - NSSCKFWToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1367
      start: 1351
    functionDepth: 1
    functionLinenumber: 1351
    functionLinenumberEnd: 1367
    functionName: nssCKFWToken_GetMechanismCount
    functionSourceFile: /src/nss/lib/ckfw/token.c
    functionUses: 0
    functionsReached:
    - NSSCKFWToken*::mdToken::GetMechanismCount
    - nssCKFWToken_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWToken_GetMechanismCount(\n    NSSCKFWToken *fwToken)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWToken_verifyPointer
      Src: /src/nss/lib/ckfw/token.c:1379,1
    - Dst: NSSCKFWToken*::mdToken::GetMechanismTypes
      Src: /src/nss/lib/ckfw/token.c:1398,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - fwToken
    - types
    argTypes:
    - NSSCKFWToken*
    - CK_MECHANISM_TYPE[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1400
      start: 1373
    functionDepth: 1
    functionLinenumber: 1373
    functionLinenumberEnd: 1400
    functionName: nssCKFWToken_GetMechanismTypes
    functionSourceFile: /src/nss/lib/ckfw/token.c
    functionUses: 0
    functionsReached:
    - NSSCKFWToken*::mdToken::GetMechanismTypes
    - nssCKFWToken_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWToken_GetMechanismTypes(\n    NSSCKFWToken *fwToken,\n
      \   CK_MECHANISM_TYPE types[])"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mdToken::GetMechanism
      Src: /src/nss/lib/ckfw/token.c:1428,1
    - Dst: nssCKFWMechanism_Create
      Src: /src/nss/lib/ckfw/token.c:1434,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1436
      start: 1406
    functionDepth: 0
    functionLinenumber: 1406
    functionLinenumberEnd: 1436
    functionName: "NSSCKFWMechanism *\nnssCKFWToken_GetMechanism(\n    NSSCKFWToken
      *fwToken,\n    CK_MECHANISM_TYPE which,\n    CK_RV *pError)"
    functionSourceFile: /src/nss/lib/ckfw/token.c
    functionUses: 0
    functionsReached:
    - nssCKFWMechanism_Create
    - mdToken::GetMechanism
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWMechanism *\nnssCKFWToken_GetMechanism(\n    NSSCKFWToken
      *fwToken,\n    CK_MECHANISM_TYPE which,\n    CK_RV *pError)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWToken_verifyPointer
      Src: /src/nss/lib/ckfw/token.c:1446,1
    - Dst: nssCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/token.c:1463,1
    - Dst: nssCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/token.c:1469,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - fwToken
    - newState
    argTypes:
    - NSSCKFWToken*
    - CK_STATE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1471
      start: 1438
    functionDepth: 1
    functionLinenumber: 1438
    functionLinenumberEnd: 1471
    functionName: nssCKFWToken_SetSessionState
    functionSourceFile: /src/nss/lib/ckfw/token.c
    functionUses: 0
    functionsReached:
    - nssCKFWMutex_Unlock
    - nssCKFWToken_verifyPointer
    - nssCKFWMutex_Lock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWToken_SetSessionState(\n    NSSCKFWToken *fwToken,\n
      \   CK_STATE newState)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWToken_verifyPointer
      Src: /src/nss/lib/ckfw/token.c:1485,1
    - Dst: nssCKFWSession_verifyPointer
      Src: /src/nss/lib/ckfw/token.c:1490,1
    - Dst: nssCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/token.c:1496,1
    - Dst: nssCKFWHash_Exists
      Src: /src/nss/lib/ckfw/token.c:1501,1
    - Dst: nssCKFWHash_Remove
      Src: /src/nss/lib/ckfw/token.c:1506,1
    - Dst: nssCKFWSession_IsRWSession
      Src: /src/nss/lib/ckfw/token.c:1509,1
    - Dst: nssCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/token.c:1521,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 2
    argNames:
    - fwToken
    - fwSession
    argTypes:
    - NSSCKFWToken*
    - NSSCKFWSession*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1523
      start: 1477
    functionDepth: 1
    functionLinenumber: 1477
    functionLinenumberEnd: 1523
    functionName: nssCKFWToken_RemoveSession
    functionSourceFile: /src/nss/lib/ckfw/token.c
    functionUses: 0
    functionsReached:
    - nssCKFWHash_Remove
    - nssCKFWHash_Exists
    - nssCKFWSession_IsRWSession
    - nssCKFWToken_verifyPointer
    - nssCKFWMutex_Lock
    - nssCKFWSession_verifyPointer
    - nssCKFWMutex_Unlock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWToken_RemoveSession(\n    NSSCKFWToken *fwToken,\n
      \   NSSCKFWSession *fwSession)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWToken_verifyPointer
      Src: /src/nss/lib/ckfw/token.c:1536,1
    - Dst: nssCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/token.c:1542,1
    - Dst: nssCKFWHash_Iterate
      Src: /src/nss/lib/ckfw/token.c:1547,1
    - Dst: nssCKFWHash_Destroy
      Src: /src/nss/lib/ckfw/token.c:1549,1
    - Dst: nssCKFWHash_Create
      Src: /src/nss/lib/ckfw/token.c:1551,1
    - Dst: nssCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/token.c:1566,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 1
    argNames:
    - fwToken
    argTypes:
    - NSSCKFWToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1568
      start: 1529
    functionDepth: 1
    functionLinenumber: 1529
    functionLinenumberEnd: 1568
    functionName: nssCKFWToken_CloseAllSessions
    functionSourceFile: /src/nss/lib/ckfw/token.c
    functionUses: 0
    functionsReached:
    - nssCKFWHash_Destroy
    - nssCKFWHash_Create
    - nssCKFWToken_verifyPointer
    - nssCKFWMutex_Lock
    - nssCKFWHash_Iterate
    - nssCKFWMutex_Unlock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWToken_CloseAllSessions(\n    NSSCKFWToken *fwToken)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWToken_verifyPointer
      Src: /src/nss/lib/ckfw/token.c:1581,1
    - Dst: nssCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/token.c:1586,1
    - Dst: nssCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/token.c:1591,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - fwToken
    argTypes:
    - NSSCKFWToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1593
      start: 1574
    functionDepth: 1
    functionLinenumber: 1574
    functionLinenumberEnd: 1593
    functionName: nssCKFWToken_GetSessionCount
    functionSourceFile: /src/nss/lib/ckfw/token.c
    functionUses: 0
    functionsReached:
    - nssCKFWMutex_Unlock
    - nssCKFWToken_verifyPointer
    - nssCKFWMutex_Lock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWToken_GetSessionCount(\n    NSSCKFWToken *fwToken)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWToken_verifyPointer
      Src: /src/nss/lib/ckfw/token.c:1606,1
    - Dst: nssCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/token.c:1611,1
    - Dst: nssCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/token.c:1616,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - fwToken
    argTypes:
    - NSSCKFWToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1618
      start: 1599
    functionDepth: 1
    functionLinenumber: 1599
    functionLinenumberEnd: 1618
    functionName: nssCKFWToken_GetRwSessionCount
    functionSourceFile: /src/nss/lib/ckfw/token.c
    functionUses: 0
    functionsReached:
    - nssCKFWMutex_Unlock
    - nssCKFWToken_verifyPointer
    - nssCKFWMutex_Lock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWToken_GetRwSessionCount(\n    NSSCKFWToken *fwToken)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWToken_verifyPointer
      Src: /src/nss/lib/ckfw/token.c:1631,1
    - Dst: nssCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/token.c:1636,1
    - Dst: nssCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/token.c:1641,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - fwToken
    argTypes:
    - NSSCKFWToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1643
      start: 1624
    functionDepth: 1
    functionLinenumber: 1624
    functionLinenumberEnd: 1643
    functionName: nssCKFWToken_GetRoSessionCount
    functionSourceFile: /src/nss/lib/ckfw/token.c
    functionUses: 0
    functionsReached:
    - nssCKFWMutex_Unlock
    - nssCKFWToken_verifyPointer
    - nssCKFWMutex_Lock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWToken_GetRoSessionCount(\n    NSSCKFWToken *fwToken)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWToken_verifyPointer
      Src: /src/nss/lib/ckfw/token.c:1654,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1660
      start: 1649
    functionDepth: 1
    functionLinenumber: 1649
    functionLinenumberEnd: 1660
    functionName: "nssCKFWHash *\nnssCKFWToken_GetSessionObjectHash(\n    NSSCKFWToken
      *fwToken)"
    functionSourceFile: /src/nss/lib/ckfw/token.c
    functionUses: 0
    functionsReached:
    - nssCKFWToken_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWHash *\nnssCKFWToken_GetSessionObjectHash(\n
      \   NSSCKFWToken *fwToken)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWToken_verifyPointer
      Src: /src/nss/lib/ckfw/token.c:1671,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1677
      start: 1666
    functionDepth: 1
    functionLinenumber: 1666
    functionLinenumberEnd: 1677
    functionName: "nssCKFWHash *\nnssCKFWToken_GetMDObjectHash(\n    NSSCKFWToken
      *fwToken)"
    functionSourceFile: /src/nss/lib/ckfw/token.c
    functionUses: 0
    functionsReached:
    - nssCKFWToken_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWHash *\nnssCKFWToken_GetMDObjectHash(\n    NSSCKFWToken
      *fwToken)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWToken_verifyPointer
      Src: /src/nss/lib/ckfw/token.c:1688,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1694
      start: 1683
    functionDepth: 1
    functionLinenumber: 1683
    functionLinenumberEnd: 1694
    functionName: "nssCKFWHash *\nnssCKFWToken_GetObjectHandleHash(\n    NSSCKFWToken
      *fwToken)"
    functionSourceFile: /src/nss/lib/ckfw/token.c
    functionUses: 0
    functionsReached:
    - nssCKFWToken_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWHash *\nnssCKFWToken_GetObjectHandleHash(\n    NSSCKFWToken
      *fwToken)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWToken_verifyPointer
      Src: /src/nss/lib/ckfw/token.c:1706,1
    - Dst: nssCKFWToken_GetMDToken
      Src: /src/nss/lib/ckfw/token.c:1711,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1712
      start: 1701
    functionDepth: 1
    functionLinenumber: 1701
    functionLinenumberEnd: 1712
    functionName: "NSSCKMDToken *\nNSSCKFWToken_GetMDToken(\n    NSSCKFWToken *fwToken)"
    functionSourceFile: /src/nss/lib/ckfw/token.c
    functionUses: 0
    functionsReached:
    - nssCKFWToken_GetMDToken
    - nssCKFWToken_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKMDToken *\nNSSCKFWToken_GetMDToken(\n    NSSCKFWToken
      *fwToken)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWToken_verifyPointer
      Src: /src/nss/lib/ckfw/token.c:1729,1
    - Dst: nssCKFWToken_GetArena
      Src: /src/nss/lib/ckfw/token.c:1735,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - fwToken
    - pError
    argTypes:
    - NSSCKFWToken*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1736
      start: 1719
    functionDepth: 2
    functionLinenumber: 1719
    functionLinenumberEnd: 1736
    functionName: NSSCKFWToken_GetArena
    functionSourceFile: /src/nss/lib/ckfw/token.c
    functionUses: 0
    functionsReached:
    - nssCKFWToken_GetArena
    - nssCKFWToken_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSCKFWToken_GetArena(\n    NSSCKFWToken *fwToken,\n
      \   CK_RV *pError)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWToken_verifyPointer
      Src: /src/nss/lib/ckfw/token.c:1748,1
    - Dst: nssCKFWToken_GetFWSlot
      Src: /src/nss/lib/ckfw/token.c:1753,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1754
      start: 1743
    functionDepth: 1
    functionLinenumber: 1743
    functionLinenumberEnd: 1754
    functionName: "NSSCKFWSlot *\nNSSCKFWToken_GetFWSlot(\n    NSSCKFWToken *fwToken)"
    functionSourceFile: /src/nss/lib/ckfw/token.c
    functionUses: 0
    functionsReached:
    - nssCKFWToken_GetFWSlot
    - nssCKFWToken_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWSlot *\nNSSCKFWToken_GetFWSlot(\n    NSSCKFWToken
      *fwToken)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWToken_verifyPointer
      Src: /src/nss/lib/ckfw/token.c:1766,1
    - Dst: nssCKFWToken_GetMDSlot
      Src: /src/nss/lib/ckfw/token.c:1771,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1772
      start: 1761
    functionDepth: 1
    functionLinenumber: 1761
    functionLinenumberEnd: 1772
    functionName: "NSSCKMDSlot *\nNSSCKFWToken_GetMDSlot(\n    NSSCKFWToken *fwToken)"
    functionSourceFile: /src/nss/lib/ckfw/token.c
    functionUses: 0
    functionsReached:
    - nssCKFWToken_verifyPointer
    - nssCKFWToken_GetMDSlot
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKMDSlot *\nNSSCKFWToken_GetMDSlot(\n    NSSCKFWToken
      *fwToken)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWToken_verifyPointer
      Src: /src/nss/lib/ckfw/token.c:1784,1
    - Dst: nssCKFWToken_GetSessionState
      Src: /src/nss/lib/ckfw/token.c:1789,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fwToken
    argTypes:
    - NSSCKFWToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1790
      start: 1779
    functionDepth: 2
    functionLinenumber: 1779
    functionLinenumberEnd: 1790
    functionName: NSSCKFWSession_GetSessionState
    functionSourceFile: /src/nss/lib/ckfw/token.c
    functionUses: 0
    functionsReached:
    - nssCKFWToken_GetSessionState
    - nssCKFWToken_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWSession_GetSessionState(\n    NSSCKFWToken *fwToken)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mdObject
    argTypes:
    - NSSCKMDObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 60
    functionName: nss_ckmdSessionObject_add_pointer
    functionSourceFile: /src/nss/lib/ckfw/sessobj.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV nss_ckmdSessionObject_add_pointer(\n    const NSSCKMDObject
      *mdObject)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mdObject
    argTypes:
    - NSSCKMDObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 67
    functionName: nss_ckmdSessionObject_remove_pointer
    functionSourceFile: /src/nss/lib/ckfw/sessobj.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV nss_ckmdSessionObject_remove_pointer(\n    const NSSCKMDObject
      *mdObject)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mdObject
    argTypes:
    - NSSCKMDObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 75
    functionName: nss_ckmdSessionObject_verifyPointer
    functionSourceFile: /src/nss/lib/ckfw/sessobj.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV nss_ckmdSessionObject_verifyPointer(\n    const NSSCKMDObject
      *mdObject)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: nss_ZNEW
      Src: /src/nss/lib/ckfw/sessobj.c:211,1
    - Dst: nss_ZNEWARRAY
      Src: /src/nss/lib/ckfw/sessobj.c:218,1
    - Dst: nss_ZNEWARRAY
      Src: /src/nss/lib/ckfw/sessobj.c:223,1
    - Dst: nss_ZAlloc
      Src: /src/nss/lib/ckfw/sessobj.c:230,1
    - Dst: nsslibc_memcpy
      Src: /src/nss/lib/ckfw/sessobj.c:234,1
    - Dst: nss_ZNEW
      Src: /src/nss/lib/ckfw/sessobj.c:238,1
    - Dst: nssCKFWToken_GetSessionObjectHash
      Src: /src/nss/lib/ckfw/sessobj.c:254,1
    - Dst: nssCKFWHash_Add
      Src: /src/nss/lib/ckfw/sessobj.c:262,1
    - Dst: nss_ckmdSessionObject_add_pointer
      Src: /src/nss/lib/ckfw/sessobj.c:268,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/ckfw/sessobj.c:279,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/ckfw/sessobj.c:281,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/ckfw/sessobj.c:283,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/ckfw/sessobj.c:284,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/ckfw/sessobj.c:287,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 78
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 292
    functionName: "NSSCKMDObject *\nnssCKMDSessionObject_Create(\n    NSSCKFWToken
      *fwToken,\n    NSSArena *arena,\n    CK_ATTRIBUTE_PTR attributes,\n    CK_ULONG
      ulCount,\n    CK_RV *pError)"
    functionSourceFile: /src/nss/lib/ckfw/sessobj.c
    functionUses: 0
    functionsReached:
    - nss_ZNEWARRAY
    - nss_ZNEW
    - nss_ZAlloc
    - nss_ZFreeIf
    - nsslibc_memcpy
    - nssCKFWHash_Add
    - nss_ckmdSessionObject_add_pointer
    - nssCKFWToken_GetSessionObjectHash
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKMDObject *\nnssCKMDSessionObject_Create(\n    NSSCKFWToken
      *fwToken,\n    NSSArena *arena,\n    CK_ATTRIBUTE_PTR attributes,\n    CK_ULONG
      ulCount,\n    CK_RV *pError)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - mdObject
    - fwObject
    - mdSession
    - fwSession
    - mdToken
    - fwToken
    - mdInstance
    - fwInstance
    argTypes:
    - NSSCKMDObject*
    - NSSCKFWObject*
    - NSSCKMDSession*
    - NSSCKFWSession*
    - NSSCKMDToken*
    - NSSCKFWToken*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 311
    functionName: nss_ckmdSessionObject_Finalize
    functionSourceFile: /src/nss/lib/ckfw/sessobj.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void nss_ckmdSessionObject_Finalize(\n    NSSCKMDObject *mdObject,\n
      \   NSSCKFWObject *fwObject,\n    NSSCKMDSession *mdSession,\n    NSSCKFWSession
      *fwSession,\n    NSSCKMDToken *mdToken,\n    NSSCKFWToken *fwToken,\n    NSSCKMDInstance
      *mdInstance,\n    NSSCKFWInstance *fwInstance)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nss_ckmdSessionObject_verifyPointer
      Src: /src/nss/lib/ckfw/sessobj.c:336,1
    - Dst: nssCKFWHash_Remove
      Src: /src/nss/lib/ckfw/sessobj.c:344,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/ckfw/sessobj.c:347,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/ckfw/sessobj.c:349,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/ckfw/sessobj.c:350,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/ckfw/sessobj.c:351,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/ckfw/sessobj.c:352,1
    - Dst: nss_ckmdSessionObject_remove_pointer
      Src: /src/nss/lib/ckfw/sessobj.c:355,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 8
    argNames:
    - mdObject
    - fwObject
    - mdSession
    - fwSession
    - mdToken
    - fwToken
    - mdInstance
    - fwInstance
    argTypes:
    - NSSCKMDObject*
    - NSSCKFWObject*
    - NSSCKMDSession*
    - NSSCKFWSession*
    - NSSCKMDToken*
    - NSSCKFWToken*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 359
    functionName: nss_ckmdSessionObject_Destroy
    functionSourceFile: /src/nss/lib/ckfw/sessobj.c
    functionUses: 0
    functionsReached:
    - nssCKFWHash_Remove
    - nss_ZFreeIf
    - nss_ckmdSessionObject_verifyPointer
    - nss_ckmdSessionObject_remove_pointer
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV nss_ckmdSessionObject_Destroy(\n    NSSCKMDObject *mdObject,\n
      \   NSSCKFWObject *fwObject,\n    NSSCKMDSession *mdSession,\n    NSSCKFWSession
      *fwSession,\n    NSSCKMDToken *mdToken,\n    NSSCKFWToken *fwToken,\n    NSSCKMDInstance
      *mdInstance,\n    NSSCKFWInstance *fwInstance)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nss_ckmdSessionObject_verifyPointer
      Src: /src/nss/lib/ckfw/sessobj.c:378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 8
    argNames:
    - mdObject
    - fwObject
    - mdSession
    - fwSession
    - mdToken
    - fwToken
    - mdInstance
    - fwInstance
    argTypes:
    - NSSCKMDObject*
    - NSSCKFWObject*
    - NSSCKMDSession*
    - NSSCKFWSession*
    - NSSCKMDToken*
    - NSSCKFWToken*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 387
    functionName: nss_ckmdSessionObject_IsTokenObject
    functionSourceFile: /src/nss/lib/ckfw/sessobj.c
    functionUses: 0
    functionsReached:
    - nss_ckmdSessionObject_verifyPointer
    linkageType: ''
    returnType: CK_BBOOL
    signature: "CK_BBOOL nss_ckmdSessionObject_IsTokenObject(\n    NSSCKMDObject *mdObject,\n
      \   NSSCKFWObject *fwObject,\n    NSSCKMDSession *mdSession,\n    NSSCKFWSession
      *fwSession,\n    NSSCKMDToken *mdToken,\n    NSSCKFWToken *fwToken,\n    NSSCKMDInstance
      *mdInstance,\n    NSSCKFWInstance *fwInstance)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nss_ckmdSessionObject_verifyPointer
      Src: /src/nss/lib/ckfw/sessobj.c:412,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 9
    argNames:
    - mdObject
    - fwObject
    - mdSession
    - fwSession
    - mdToken
    - fwToken
    - mdInstance
    - fwInstance
    - pError
    argTypes:
    - NSSCKMDObject*
    - NSSCKFWObject*
    - NSSCKMDSession*
    - NSSCKFWSession*
    - NSSCKMDToken*
    - NSSCKFWToken*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 423
    functionName: nss_ckmdSessionObject_GetAttributeCount
    functionSourceFile: /src/nss/lib/ckfw/sessobj.c
    functionUses: 0
    functionsReached:
    - nss_ckmdSessionObject_verifyPointer
    linkageType: ''
    returnType: CK_ULONG
    signature: "CK_ULONG nss_ckmdSessionObject_GetAttributeCount(\n    NSSCKMDObject
      *mdObject,\n    NSSCKFWObject *fwObject,\n    NSSCKMDSession *mdSession,\n    NSSCKFWSession
      *fwSession,\n    NSSCKMDToken *mdToken,\n    NSSCKFWToken *fwToken,\n    NSSCKMDInstance
      *mdInstance,\n    NSSCKFWInstance *fwInstance,\n    CK_RV *pError)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nss_ckmdSessionObject_verifyPointer
      Src: /src/nss/lib/ckfw/sessobj.c:448,1
    - Dst: nsslibc_memcpy
      Src: /src/nss/lib/ckfw/sessobj.c:462,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 10
    argNames:
    - mdObject
    - fwObject
    - mdSession
    - fwSession
    - mdToken
    - fwToken
    - mdInstance
    - fwInstance
    - typeArray
    - ulCount
    argTypes:
    - NSSCKMDObject*
    - NSSCKFWObject*
    - NSSCKMDSession*
    - NSSCKFWSession*
    - NSSCKMDToken*
    - NSSCKFWToken*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    - CK_ATTRIBUTE_TYPE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 467
    functionName: nss_ckmdSessionObject_GetAttributeTypes
    functionSourceFile: /src/nss/lib/ckfw/sessobj.c
    functionUses: 0
    functionsReached:
    - nss_ckmdSessionObject_verifyPointer
    - nsslibc_memcpy
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV nss_ckmdSessionObject_GetAttributeTypes(\n    NSSCKMDObject
      *mdObject,\n    NSSCKFWObject *fwObject,\n    NSSCKMDSession *mdSession,\n    NSSCKFWSession
      *fwSession,\n    NSSCKMDToken *mdToken,\n    NSSCKFWToken *fwToken,\n    NSSCKMDInstance
      *mdInstance,\n    NSSCKFWInstance *fwInstance,\n    CK_ATTRIBUTE_TYPE_PTR typeArray,\n
      \   CK_ULONG ulCount)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nss_ckmdSessionObject_verifyPointer
      Src: /src/nss/lib/ckfw/sessobj.c:494,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 10
    argNames:
    - mdObject
    - fwObject
    - mdSession
    - fwSession
    - mdToken
    - fwToken
    - mdInstance
    - fwInstance
    - attribute
    - pError
    argTypes:
    - NSSCKMDObject*
    - NSSCKFWObject*
    - NSSCKMDSession*
    - NSSCKFWSession*
    - NSSCKMDToken*
    - NSSCKFWToken*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    - CK_ATTRIBUTE_TYPE
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 473
    functionDepth: 1
    functionLinenumber: 473
    functionLinenumberEnd: 512
    functionName: nss_ckmdSessionObject_GetAttributeSize
    functionSourceFile: /src/nss/lib/ckfw/sessobj.c
    functionUses: 0
    functionsReached:
    - nss_ckmdSessionObject_verifyPointer
    linkageType: ''
    returnType: CK_ULONG
    signature: "CK_ULONG nss_ckmdSessionObject_GetAttributeSize(\n    NSSCKMDObject
      *mdObject,\n    NSSCKFWObject *fwObject,\n    NSSCKMDSession *mdSession,\n    NSSCKFWSession
      *fwSession,\n    NSSCKMDToken *mdToken,\n    NSSCKFWToken *fwToken,\n    NSSCKMDInstance
      *mdInstance,\n    NSSCKFWInstance *fwInstance,\n    CK_ATTRIBUTE_TYPE attribute,\n
      \   CK_RV *pError)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nss_ckmdSessionObject_verifyPointer
      Src: /src/nss/lib/ckfw/sessobj.c:542,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 10
    argNames:
    - mdObject
    - fwObject
    - mdSession
    - fwSession
    - mdToken
    - fwToken
    - mdInstance
    - fwInstance
    - attribute
    - pError
    argTypes:
    - NSSCKMDObject*
    - NSSCKFWObject*
    - NSSCKMDSession*
    - NSSCKFWSession*
    - NSSCKMDToken*
    - NSSCKFWToken*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    - CK_ATTRIBUTE_TYPE
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 561
    functionName: nss_ckmdSessionObject_GetAttribute
    functionSourceFile: /src/nss/lib/ckfw/sessobj.c
    functionUses: 0
    functionsReached:
    - nss_ckmdSessionObject_verifyPointer
    linkageType: ''
    returnType: NSSCKFWItem
    signature: "NSSCKFWItem nss_ckmdSessionObject_GetAttribute(\n    NSSCKMDObject
      *mdObject,\n    NSSCKFWObject *fwObject,\n    NSSCKMDSession *mdSession,\n    NSSCKFWSession
      *fwSession,\n    NSSCKMDToken *mdToken,\n    NSSCKFWToken *fwToken,\n    NSSCKMDInstance
      *mdInstance,\n    NSSCKFWInstance *fwInstance,\n    CK_ATTRIBUTE_TYPE attribute,\n
      \   CK_RV *pError)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: nss_ckmdSessionObject_verifyPointer
      Src: /src/nss/lib/ckfw/sessobj.c:598,1
    - Dst: nss_ZAlloc
      Src: /src/nss/lib/ckfw/sessobj.c:609,1
    - Dst: nsslibc_memcpy
      Src: /src/nss/lib/ckfw/sessobj.c:613,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/ckfw/sessobj.c:617,1
    - Dst: nss_ZRealloc
      Src: /src/nss/lib/ckfw/sessobj.c:627,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/ckfw/sessobj.c:629,1
    - Dst: nss_ZRealloc
      Src: /src/nss/lib/ckfw/sessobj.c:634,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/ckfw/sessobj.c:637,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 10
    argNames:
    - mdObject
    - fwObject
    - mdSession
    - fwSession
    - mdToken
    - fwToken
    - mdInstance
    - fwInstance
    - attribute
    - value
    argTypes:
    - NSSCKMDObject*
    - NSSCKFWObject*
    - NSSCKMDSession*
    - NSSCKFWSession*
    - NSSCKMDToken*
    - NSSCKFWToken*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    - CK_ATTRIBUTE_TYPE
    - NSSItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 575
    functionDepth: 1
    functionLinenumber: 575
    functionLinenumberEnd: 647
    functionName: nss_ckmdSessionObject_SetAttribute
    functionSourceFile: /src/nss/lib/ckfw/sessobj.c
    functionUses: 0
    functionsReached:
    - nss_ZRealloc
    - nss_ZAlloc
    - nss_ZFreeIf
    - nsslibc_memcpy
    - nss_ckmdSessionObject_verifyPointer
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV nss_ckmdSessionObject_SetAttribute(\n    NSSCKMDObject *mdObject,\n
      \   NSSCKFWObject *fwObject,\n    NSSCKMDSession *mdSession,\n    NSSCKFWSession
      *fwSession,\n    NSSCKMDToken *mdToken,\n    NSSCKFWToken *fwToken,\n    NSSCKMDInstance
      *mdInstance,\n    NSSCKFWInstance *fwInstance,\n    CK_ATTRIBUTE_TYPE attribute,\n
      \   NSSItem *value)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nss_ckmdSessionObject_verifyPointer
      Src: /src/nss/lib/ckfw/sessobj.c:674,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 9
    argNames:
    - mdObject
    - fwObject
    - mdSession
    - fwSession
    - mdToken
    - fwToken
    - mdInstance
    - fwInstance
    - pError
    argTypes:
    - NSSCKMDObject*
    - NSSCKFWObject*
    - NSSCKMDSession*
    - NSSCKFWSession*
    - NSSCKMDToken*
    - NSSCKFWToken*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 653
    functionDepth: 1
    functionLinenumber: 653
    functionLinenumberEnd: 693
    functionName: nss_ckmdSessionObject_GetObjectSize
    functionSourceFile: /src/nss/lib/ckfw/sessobj.c
    functionUses: 0
    functionsReached:
    - nss_ckmdSessionObject_verifyPointer
    linkageType: ''
    returnType: CK_ULONG
    signature: "CK_ULONG nss_ckmdSessionObject_GetObjectSize(\n    NSSCKMDObject *mdObject,\n
      \   NSSCKFWObject *fwObject,\n    NSSCKMDSession *mdSession,\n    NSSCKFWSession
      *fwSession,\n    NSSCKMDToken *mdToken,\n    NSSCKFWToken *fwToken,\n    NSSCKMDInstance
      *mdInstance,\n    NSSCKFWInstance *fwInstance,\n    CK_RV *pError)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mdFindObjects
    argTypes:
    - NSSCKMDFindObjects*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 733
    functionDepth: 0
    functionLinenumber: 733
    functionLinenumberEnd: 738
    functionName: nss_ckmdFindSessionObjects_add_pointer
    functionSourceFile: /src/nss/lib/ckfw/sessobj.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV nss_ckmdFindSessionObjects_add_pointer(\n    const NSSCKMDFindObjects
      *mdFindObjects)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mdFindObjects
    argTypes:
    - NSSCKMDFindObjects*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 740
    functionDepth: 0
    functionLinenumber: 740
    functionLinenumberEnd: 745
    functionName: nss_ckmdFindSessionObjects_remove_pointer
    functionSourceFile: /src/nss/lib/ckfw/sessobj.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV nss_ckmdFindSessionObjects_remove_pointer(\n    const NSSCKMDFindObjects
      *mdFindObjects)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mdFindObjects
    argTypes:
    - NSSCKMDFindObjects*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 748
    functionDepth: 0
    functionLinenumber: 748
    functionLinenumberEnd: 753
    functionName: nss_ckmdFindSessionObjects_verifyPointer
    functionSourceFile: /src/nss/lib/ckfw/sessobj.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV nss_ckmdFindSessionObjects_verifyPointer(\n    const NSSCKMDFindObjects
      *mdFindObjects)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nsslibc_memequal
      Src: /src/nss/lib/ckfw/sessobj.c:795,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - a
    - pValue
    - ulValueLen
    argTypes:
    - NSSItem*
    - CK_VOID_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 785
    functionDepth: 1
    functionLinenumber: 785
    functionLinenumberEnd: 800
    functionName: items_match
    functionSourceFile: /src/nss/lib/ckfw/sessobj.c
    functionUses: 0
    functionsReached:
    - nsslibc_memequal
    linkageType: ''
    returnType: CK_BBOOL
    signature: "CK_BBOOL items_match(\n    NSSItem *a,\n    CK_VOID_PTR pValue,\n
      \   CK_ULONG ulValueLen)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: items_match
      Src: /src/nss/lib/ckfw/sessobj.c:826,1
    - Dst: nss_ZNEW
      Src: /src/nss/lib/ckfw/sessobj.c:841,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - key
    - value
    - closure
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 805
    functionDepth: 2
    functionLinenumber: 805
    functionLinenumberEnd: 852
    functionName: findfcn
    functionSourceFile: /src/nss/lib/ckfw/sessobj.c
    functionUses: 0
    functionsReached:
    - items_match
    - nss_ZNEW
    linkageType: ''
    returnType: void
    signature: "void findfcn(\n    const void *key,\n    void *value,\n    void *closure)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWToken_verifyPointer
      Src: /src/nss/lib/ckfw/sessobj.c:875,1
    - Dst: nssCKFWToken_GetSessionObjectHash
      Src: /src/nss/lib/ckfw/sessobj.c:888,1
    - Dst: NSSArena_Create
      Src: /src/nss/lib/ckfw/sessobj.c:894,1
    - Dst: nss_ZNEW
      Src: /src/nss/lib/ckfw/sessobj.c:900,1
    - Dst: nss_ZNEW
      Src: /src/nss/lib/ckfw/sessobj.c:905,1
    - Dst: nssCKFWHash_Iterate
      Src: /src/nss/lib/ckfw/sessobj.c:915,1
    - Dst: nss_ckmdFindSessionObjects_add_pointer
      Src: /src/nss/lib/ckfw/sessobj.c:926,1
    - Dst: NSSArena_Destroy
      Src: /src/nss/lib/ckfw/sessobj.c:936,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 60
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 858
    functionDepth: 1
    functionLinenumber: 858
    functionLinenumberEnd: 942
    functionName: "NSSCKMDFindObjects *\nnssCKMDFindSessionObjects_Create(\n    NSSCKFWToken
      *fwToken,\n    CK_ATTRIBUTE_PTR pTemplate,\n    CK_ULONG ulCount,\n    CK_RV
      *pError)"
    functionSourceFile: /src/nss/lib/ckfw/sessobj.c
    functionUses: 0
    functionsReached:
    - nss_ckmdFindSessionObjects_add_pointer
    - nss_ZNEW
    - nssCKFWToken_verifyPointer
    - nssCKFWHash_Iterate
    - NSSArena_Create
    - nssCKFWToken_GetSessionObjectHash
    - NSSArena_Destroy
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKMDFindObjects *\nnssCKMDFindSessionObjects_Create(\n
      \   NSSCKFWToken *fwToken,\n    CK_ATTRIBUTE_PTR pTemplate,\n    CK_ULONG ulCount,\n
      \   CK_RV *pError)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nss_ckmdFindSessionObjects_verifyPointer
      Src: /src/nss/lib/ckfw/sessobj.c:958,1
    - Dst: NSSArena_Destroy
      Src: /src/nss/lib/ckfw/sessobj.c:965,1
    - Dst: nss_ckmdFindSessionObjects_remove_pointer
      Src: /src/nss/lib/ckfw/sessobj.c:968,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 8
    argNames:
    - mdFindObjects
    - fwFindObjects
    - mdSession
    - fwSession
    - mdToken
    - fwToken
    - mdInstance
    - fwInstance
    argTypes:
    - NSSCKMDFindObjects*
    - NSSCKFWFindObjects*
    - NSSCKMDSession*
    - NSSCKFWSession*
    - NSSCKMDToken*
    - NSSCKFWToken*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 944
    functionDepth: 1
    functionLinenumber: 944
    functionLinenumberEnd: 972
    functionName: nss_ckmdFindSessionObjects_Final
    functionSourceFile: /src/nss/lib/ckfw/sessobj.c
    functionUses: 0
    functionsReached:
    - nss_ckmdFindSessionObjects_remove_pointer
    - nss_ckmdFindSessionObjects_verifyPointer
    - NSSArena_Destroy
    linkageType: ''
    returnType: void
    signature: "void nss_ckmdFindSessionObjects_Final(\n    NSSCKMDFindObjects *mdFindObjects,\n
      \   NSSCKFWFindObjects *fwFindObjects,\n    NSSCKMDSession *mdSession,\n    NSSCKFWSession
      *fwSession,\n    NSSCKMDToken *mdToken,\n    NSSCKFWToken *fwToken,\n    NSSCKMDInstance
      *mdInstance,\n    NSSCKFWInstance *fwInstance)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nss_ckmdFindSessionObjects_verifyPointer
      Src: /src/nss/lib/ckfw/sessobj.c:991,1
    - Dst: nssCKFWHash_Exists
      Src: /src/nss/lib/ckfw/sessobj.c:1004,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 10
    argNames:
    - mdFindObjects
    - fwFindObjects
    - mdSession
    - fwSession
    - mdToken
    - fwToken
    - mdInstance
    - fwInstance
    - arena
    - pError
    argTypes:
    - NSSCKMDFindObjects*
    - NSSCKFWFindObjects*
    - NSSCKMDSession*
    - NSSCKFWSession*
    - NSSCKMDToken*
    - NSSCKFWToken*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    - NSSArena*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1012
      start: 974
    functionDepth: 1
    functionLinenumber: 974
    functionLinenumberEnd: 1012
    functionName: nss_ckmdFindSessionObjects_Next
    functionSourceFile: /src/nss/lib/ckfw/sessobj.c
    functionUses: 0
    functionsReached:
    - nssCKFWHash_Exists
    - nss_ckmdFindSessionObjects_verifyPointer
    linkageType: ''
    returnType: NSSCKMDObject
    signature: "NSSCKMDObject *\nnss_ckmdFindSessionObjects_Next(\n    NSSCKMDFindObjects
      *mdFindObjects,\n    NSSCKFWFindObjects *fwFindObjects,\n    NSSCKMDSession
      *mdSession,\n    NSSCKFWSession *fwSession,\n    NSSCKMDToken *mdToken,\n    NSSCKFWToken
      *fwToken,\n    NSSCKMDInstance *mdInstance,\n    NSSCKFWInstance *fwInstance,\n
      \   NSSArena *arena,\n    CK_RV *pError)"
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - pInitArgs
    - pLocking_state
    argTypes:
    - CK_C_INITIALIZE_ARGS_PTR
    - CryptokiLockingState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 135
    functionName: nssCKFW_GetThreadSafeState
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV nssCKFW_GetThreadSafeState(CK_C_INITIALIZE_ARGS_PTR pInitArgs,\n
      \                          CryptokiLockingState *pLocking_state)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFW_GetThreadSafeState
      Src: /src/nss/lib/ckfw/wrap.c:167,1
    - Dst: nssCKFWInstance_Create
      Src: /src/nss/lib/ckfw/wrap.c:172,1
    - Dst: PR_ATOMIC_INCREMENT
      Src: /src/nss/lib/ckfw/wrap.c:176,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 3
    argNames:
    - pFwInstance
    - mdInstance
    - pInitArgs
    argTypes:
    - NSSCKFWInstance**
    - NSSCKMDInstance*
    - CK_VOID_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 196
    functionName: NSSCKFWC_Initialize
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWInstance_Create
    - PR_ATOMIC_INCREMENT
    - nssCKFW_GetThreadSafeState
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_Initialize(\n    NSSCKFWInstance **pFwInstance,\n
      \   NSSCKMDInstance *mdInstance,\n    CK_VOID_PTR pInitArgs)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_Destroy
      Src: /src/nss/lib/ckfw/wrap.c:218,1
    - Dst: PR_ATOMIC_DECREMENT
      Src: /src/nss/lib/ckfw/wrap.c:227,1
    - Dst: nssArena_Shutdown
      Src: /src/nss/lib/ckfw/wrap.c:229,1
    - Dst: nss_DestroyErrorStack
      Src: /src/nss/lib/ckfw/wrap.c:253,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 1
    argNames:
    - pFwInstance
    argTypes:
    - NSSCKFWInstance**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 255
    functionName: NSSCKFWC_Finalize
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nss_DestroyErrorStack
    - PR_ATOMIC_DECREMENT
    - nssCKFWInstance_Destroy
    - nssArena_Shutdown
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_Finalize(\n    NSSCKFWInstance **pFwInstance)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: nsslibc_memset
      Src: /src/nss/lib/ckfw/wrap.c:276,1
    - Dst: nssCKFWInstance_GetCryptokiVersion
      Src: /src/nss/lib/ckfw/wrap.c:278,1
    - Dst: nssCKFWInstance_GetManufacturerID
      Src: /src/nss/lib/ckfw/wrap.c:280,1
    - Dst: nssCKFWInstance_GetFlags
      Src: /src/nss/lib/ckfw/wrap.c:285,1
    - Dst: nssCKFWInstance_GetLibraryDescription
      Src: /src/nss/lib/ckfw/wrap.c:287,1
    - Dst: nssCKFWInstance_GetLibraryVersion
      Src: /src/nss/lib/ckfw/wrap.c:292,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 2
    argNames:
    - fwInstance
    - pInfo
    argTypes:
    - NSSCKFWInstance*
    - CK_INFO_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 309
    functionName: NSSCKFWC_GetInfo
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWInstance_GetCryptokiVersion
    - nssCKFWInstance_GetFlags
    - nssCKFWInstance_GetLibraryVersion
    - nssCKFWInstance_GetLibraryDescription
    - nssCKFWInstance_GetManufacturerID
    - nsslibc_memset
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_GetInfo(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_INFO_PTR pInfo)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_GetNSlots
      Src: /src/nss/lib/ckfw/wrap.c:350,1
    - Dst: nsslibc_memset
      Src: /src/nss/lib/ckfw/wrap.c:363,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 57
    argCount: 4
    argNames:
    - fwInstance
    - tokenPresent
    - pSlotList
    - pulCount
    argTypes:
    - NSSCKFWInstance*
    - CK_BBOOL
    - CK_SLOT_ID_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 400
    functionName: NSSCKFWC_GetSlotList
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWInstance_GetNSlots
    - nsslibc_memset
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_GetSlotList(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_BBOOL tokenPresent,\n    CK_SLOT_ID_PTR pSlotList,\n    CK_ULONG_PTR
      pulCount)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_GetNSlots
      Src: /src/nss/lib/ckfw/wrap.c:422,1
    - Dst: nsslibc_memset
      Src: /src/nss/lib/ckfw/wrap.c:440,1
    - Dst: nssCKFWInstance_GetSlots
      Src: /src/nss/lib/ckfw/wrap.c:442,1
    - Dst: nssCKFWSlot_GetSlotDescription
      Src: /src/nss/lib/ckfw/wrap.c:449,1
    - Dst: nssCKFWSlot_GetManufacturerID
      Src: /src/nss/lib/ckfw/wrap.c:454,1
    - Dst: nssCKFWSlot_GetTokenPresent
      Src: /src/nss/lib/ckfw/wrap.c:459,1
    - Dst: nssCKFWSlot_GetRemovableDevice
      Src: /src/nss/lib/ckfw/wrap.c:463,1
    - Dst: nssCKFWSlot_GetHardwareSlot
      Src: /src/nss/lib/ckfw/wrap.c:467,1
    - Dst: nssCKFWSlot_GetHardwareVersion
      Src: /src/nss/lib/ckfw/wrap.c:471,1
    - Dst: nssCKFWSlot_GetFirmwareVersion
      Src: /src/nss/lib/ckfw/wrap.c:472,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 65
    argCount: 3
    argNames:
    - fwInstance
    - slotID
    - pInfo
    argTypes:
    - NSSCKFWInstance*
    - CK_SLOT_ID
    - CK_SLOT_INFO_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 406
    functionDepth: 2
    functionLinenumber: 406
    functionLinenumberEnd: 491
    functionName: NSSCKFWC_GetSlotInfo
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWSlot_GetTokenPresent
    - nssCKFWSlot_GetFirmwareVersion
    - nssCKFWSlot_GetHardwareVersion
    - nssCKFWSlot_GetManufacturerID
    - nssCKFWInstance_GetNSlots
    - nssCKFWSlot_GetSlotDescription
    - nssCKFWInstance_GetSlots
    - nssCKFWSlot_GetHardwareSlot
    - nssCKFWSlot_GetRemovableDevice
    - nsslibc_memset
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_GetSlotInfo(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SLOT_ID slotID,\n    CK_SLOT_INFO_PTR pInfo)"
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_GetNSlots
      Src: /src/nss/lib/ckfw/wrap.c:514,1
    - Dst: nsslibc_memset
      Src: /src/nss/lib/ckfw/wrap.c:532,1
    - Dst: nssCKFWInstance_GetSlots
      Src: /src/nss/lib/ckfw/wrap.c:534,1
    - Dst: nssCKFWSlot_GetTokenPresent
      Src: /src/nss/lib/ckfw/wrap.c:541,1
    - Dst: nssCKFWSlot_GetToken
      Src: /src/nss/lib/ckfw/wrap.c:546,1
    - Dst: nssCKFWToken_GetLabel
      Src: /src/nss/lib/ckfw/wrap.c:551,1
    - Dst: nssCKFWToken_GetManufacturerID
      Src: /src/nss/lib/ckfw/wrap.c:556,1
    - Dst: nssCKFWToken_GetModel
      Src: /src/nss/lib/ckfw/wrap.c:561,1
    - Dst: nssCKFWToken_GetSerialNumber
      Src: /src/nss/lib/ckfw/wrap.c:566,1
    - Dst: nssCKFWToken_GetHasRNG
      Src: /src/nss/lib/ckfw/wrap.c:571,1
    - Dst: nssCKFWToken_GetIsWriteProtected
      Src: /src/nss/lib/ckfw/wrap.c:575,1
    - Dst: nssCKFWToken_GetLoginRequired
      Src: /src/nss/lib/ckfw/wrap.c:579,1
    - Dst: nssCKFWToken_GetUserPinInitialized
      Src: /src/nss/lib/ckfw/wrap.c:583,1
    - Dst: nssCKFWToken_GetRestoreKeyNotNeeded
      Src: /src/nss/lib/ckfw/wrap.c:587,1
    - Dst: nssCKFWToken_GetHasClockOnToken
      Src: /src/nss/lib/ckfw/wrap.c:591,1
    - Dst: nssCKFWToken_GetHasProtectedAuthenticationPath
      Src: /src/nss/lib/ckfw/wrap.c:595,1
    - Dst: nssCKFWToken_GetSupportsDualCryptoOperations
      Src: /src/nss/lib/ckfw/wrap.c:599,1
    - Dst: nssCKFWToken_GetMaxSessionCount
      Src: /src/nss/lib/ckfw/wrap.c:603,1
    - Dst: nssCKFWToken_GetSessionCount
      Src: /src/nss/lib/ckfw/wrap.c:604,1
    - Dst: nssCKFWToken_GetMaxRwSessionCount
      Src: /src/nss/lib/ckfw/wrap.c:605,1
    - Dst: nssCKFWToken_GetRwSessionCount
      Src: /src/nss/lib/ckfw/wrap.c:606,1
    - Dst: nssCKFWToken_GetMaxPinLen
      Src: /src/nss/lib/ckfw/wrap.c:607,1
    - Dst: nssCKFWToken_GetMinPinLen
      Src: /src/nss/lib/ckfw/wrap.c:608,1
    - Dst: nssCKFWToken_GetTotalPublicMemory
      Src: /src/nss/lib/ckfw/wrap.c:609,1
    - Dst: nssCKFWToken_GetFreePublicMemory
      Src: /src/nss/lib/ckfw/wrap.c:610,1
    - Dst: nssCKFWToken_GetTotalPrivateMemory
      Src: /src/nss/lib/ckfw/wrap.c:611,1
    - Dst: nssCKFWToken_GetFreePrivateMemory
      Src: /src/nss/lib/ckfw/wrap.c:612,1
    - Dst: nssCKFWToken_GetHardwareVersion
      Src: /src/nss/lib/ckfw/wrap.c:613,1
    - Dst: nssCKFWToken_GetFirmwareVersion
      Src: /src/nss/lib/ckfw/wrap.c:614,1
    - Dst: nssCKFWToken_GetUTCTime
      Src: /src/nss/lib/ckfw/wrap.c:616,1
    - Dst: nssCKFWToken_Destroy
      Src: /src/nss/lib/ckfw/wrap.c:628,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 123
    argCount: 3
    argNames:
    - fwInstance
    - slotID
    - pInfo
    argTypes:
    - NSSCKFWInstance*
    - CK_SLOT_ID
    - CK_TOKEN_INFO_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 497
    functionDepth: 3
    functionLinenumber: 497
    functionLinenumberEnd: 646
    functionName: NSSCKFWC_GetTokenInfo
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWSlot_GetToken
    - nssCKFWToken_GetTotalPublicMemory
    - nssCKFWToken_GetHardwareVersion
    - nssCKFWToken_Destroy
    - nssCKFWToken_GetFreePrivateMemory
    - nssCKFWToken_GetFreePublicMemory
    - nssCKFWToken_GetHasRNG
    - nssCKFWInstance_GetNSlots
    - nssCKFWToken_GetSupportsDualCryptoOperations
    - nssCKFWToken_GetMaxRwSessionCount
    - nssCKFWInstance_GetSlots
    - nssCKFWToken_GetSerialNumber
    - nssCKFWToken_GetTotalPrivateMemory
    - nssCKFWToken_GetHasClockOnToken
    - nssCKFWToken_GetRestoreKeyNotNeeded
    - nssCKFWToken_GetUTCTime
    - nssCKFWToken_GetRwSessionCount
    - nssCKFWToken_GetIsWriteProtected
    - nssCKFWToken_GetSessionCount
    - nssCKFWToken_GetMaxSessionCount
    - nssCKFWToken_GetLabel
    - nssCKFWToken_GetMinPinLen
    - nssCKFWToken_GetFirmwareVersion
    - nssCKFWToken_GetUserPinInitialized
    - nssCKFWToken_GetHasProtectedAuthenticationPath
    - nssCKFWToken_GetManufacturerID
    - nssCKFWSlot_GetTokenPresent
    - nssCKFWToken_GetLoginRequired
    - nssCKFWToken_GetMaxPinLen
    - nssCKFWToken_GetModel
    - nsslibc_memset
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_GetTokenInfo(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SLOT_ID slotID,\n    CK_TOKEN_INFO_PTR pInfo)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_GetNSlots
      Src: /src/nss/lib/ckfw/wrap.c:678,1
    - Dst: nssCKFWInstance_GetSlots
      Src: /src/nss/lib/ckfw/wrap.c:693,1
    - Dst: nssCKFWInstance_WaitForSlotEvent
      Src: /src/nss/lib/ckfw/wrap.c:698,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 59
    argCount: 4
    argNames:
    - fwInstance
    - flags
    - pSlot
    - pReserved
    argTypes:
    - NSSCKFWInstance*
    - CK_FLAGS
    - CK_SLOT_ID_PTR
    - CK_VOID_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 652
    functionDepth: 1
    functionLinenumber: 652
    functionLinenumberEnd: 727
    functionName: NSSCKFWC_WaitForSlotEvent
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWInstance_GetSlots
    - nssCKFWInstance_WaitForSlotEvent
    - nssCKFWInstance_GetNSlots
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_WaitForSlotEvent(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_FLAGS flags,\n    CK_SLOT_ID_PTR pSlot,\n    CK_VOID_PTR pReserved)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_GetNSlots
      Src: /src/nss/lib/ckfw/wrap.c:752,1
    - Dst: nssCKFWInstance_GetSlots
      Src: /src/nss/lib/ckfw/wrap.c:767,1
    - Dst: nssCKFWSlot_GetTokenPresent
      Src: /src/nss/lib/ckfw/wrap.c:774,1
    - Dst: nssCKFWSlot_GetToken
      Src: /src/nss/lib/ckfw/wrap.c:779,1
    - Dst: nssCKFWToken_GetMechanismCount
      Src: /src/nss/lib/ckfw/wrap.c:784,1
    - Dst: nsslibc_memset
      Src: /src/nss/lib/ckfw/wrap.c:800,1
    - Dst: nssCKFWToken_GetMechanismTypes
      Src: /src/nss/lib/ckfw/wrap.c:805,1
    - Dst: nssCKFWToken_Destroy
      Src: /src/nss/lib/ckfw/wrap.c:819,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 83
    argCount: 4
    argNames:
    - fwInstance
    - slotID
    - pMechanismList
    - pulCount
    argTypes:
    - NSSCKFWInstance*
    - CK_SLOT_ID
    - CK_MECHANISM_TYPE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 733
    functionDepth: 3
    functionLinenumber: 733
    functionLinenumberEnd: 839
    functionName: NSSCKFWC_GetMechanismList
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWSlot_GetToken
    - nssCKFWSlot_GetTokenPresent
    - nssCKFWToken_Destroy
    - nssCKFWToken_GetMechanismCount
    - nssCKFWToken_GetMechanismTypes
    - nssCKFWInstance_GetNSlots
    - nssCKFWInstance_GetSlots
    - nsslibc_memset
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_GetMechanismList(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SLOT_ID slotID,\n    CK_MECHANISM_TYPE_PTR pMechanismList,\n    CK_ULONG_PTR
      pulCount)"
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_GetNSlots
      Src: /src/nss/lib/ckfw/wrap.c:864,1
    - Dst: nssCKFWInstance_GetSlots
      Src: /src/nss/lib/ckfw/wrap.c:874,1
    - Dst: nssCKFWSlot_GetTokenPresent
      Src: /src/nss/lib/ckfw/wrap.c:881,1
    - Dst: nsslibc_memset
      Src: /src/nss/lib/ckfw/wrap.c:894,1
    - Dst: nssCKFWSlot_GetToken
      Src: /src/nss/lib/ckfw/wrap.c:896,1
    - Dst: nssCKFWToken_GetMechanism
      Src: /src/nss/lib/ckfw/wrap.c:901,1
    - Dst: nssCKFWMechanism_GetMinKeySize
      Src: /src/nss/lib/ckfw/wrap.c:906,1
    - Dst: nssCKFWMechanism_GetMaxKeySize
      Src: /src/nss/lib/ckfw/wrap.c:907,1
    - Dst: nssCKFWMechanism_GetInHardware
      Src: /src/nss/lib/ckfw/wrap.c:909,1
    - Dst: nssCKFWMechanism_GetCanEncrypt
      Src: /src/nss/lib/ckfw/wrap.c:912,1
    - Dst: nssCKFWMechanism_GetCanDecrypt
      Src: /src/nss/lib/ckfw/wrap.c:915,1
    - Dst: nssCKFWMechanism_GetCanDigest
      Src: /src/nss/lib/ckfw/wrap.c:918,1
    - Dst: nssCKFWMechanism_GetCanSign
      Src: /src/nss/lib/ckfw/wrap.c:921,1
    - Dst: nssCKFWMechanism_GetCanSignRecover
      Src: /src/nss/lib/ckfw/wrap.c:924,1
    - Dst: nssCKFWMechanism_GetCanVerify
      Src: /src/nss/lib/ckfw/wrap.c:927,1
    - Dst: nssCKFWMechanism_GetCanVerifyRecover
      Src: /src/nss/lib/ckfw/wrap.c:930,1
    - Dst: nssCKFWMechanism_GetCanGenerate
      Src: /src/nss/lib/ckfw/wrap.c:933,1
    - Dst: nssCKFWMechanism_GetCanGenerateKeyPair
      Src: /src/nss/lib/ckfw/wrap.c:936,1
    - Dst: nssCKFWMechanism_GetCanWrap
      Src: /src/nss/lib/ckfw/wrap.c:939,1
    - Dst: nssCKFWMechanism_GetCanUnwrap
      Src: /src/nss/lib/ckfw/wrap.c:942,1
    - Dst: nssCKFWMechanism_GetCanDerive
      Src: /src/nss/lib/ckfw/wrap.c:945,1
    - Dst: nssCKFWMechanism_Destroy
      Src: /src/nss/lib/ckfw/wrap.c:948,1
    - Dst: nssCKFWToken_Destroy
      Src: /src/nss/lib/ckfw/wrap.c:957,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 111
    argCount: 4
    argNames:
    - fwInstance
    - slotID
    - type
    - pInfo
    argTypes:
    - NSSCKFWInstance*
    - CK_SLOT_ID
    - CK_MECHANISM_TYPE
    - CK_MECHANISM_INFO_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 845
    functionDepth: 3
    functionLinenumber: 845
    functionLinenumberEnd: 977
    functionName: NSSCKFWC_GetMechanismInfo
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWMechanism_GetCanVerifyRecover
    - nssCKFWMechanism_GetMaxKeySize
    - nssCKFWSlot_GetToken
    - nssCKFWMechanism_GetCanDecrypt
    - nssCKFWToken_Destroy
    - nssCKFWMechanism_Destroy
    - nssCKFWInstance_GetNSlots
    - nssCKFWInstance_GetSlots
    - nssCKFWMechanism_GetInHardware
    - nssCKFWToken_GetMechanism
    - nssCKFWMechanism_GetCanVerify
    - nssCKFWMechanism_GetCanGenerate
    - nssCKFWMechanism_GetCanGenerateKeyPair
    - nssCKFWMechanism_GetCanUnwrap
    - nssCKFWMechanism_GetCanDigest
    - nssCKFWMechanism_GetCanSignRecover
    - nssCKFWSlot_GetTokenPresent
    - nssCKFWMechanism_GetCanEncrypt
    - nssCKFWMechanism_GetMinKeySize
    - nssCKFWMechanism_GetCanSign
    - nssCKFWMechanism_GetCanWrap
    - nssCKFWMechanism_GetCanDerive
    - nsslibc_memset
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_GetMechanismInfo(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SLOT_ID slotID,\n    CK_MECHANISM_TYPE type,\n    CK_MECHANISM_INFO_PTR
      pInfo)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_GetNSlots
      Src: /src/nss/lib/ckfw/wrap.c:1004,1
    - Dst: nssCKFWInstance_GetSlots
      Src: /src/nss/lib/ckfw/wrap.c:1014,1
    - Dst: nssCKFWSlot_GetTokenPresent
      Src: /src/nss/lib/ckfw/wrap.c:1021,1
    - Dst: nssCKFWSlot_GetToken
      Src: /src/nss/lib/ckfw/wrap.c:1026,1
    - Dst: nssCKFWToken_InitToken
      Src: /src/nss/lib/ckfw/wrap.c:1035,1
    - Dst: nssCKFWToken_Destroy
      Src: /src/nss/lib/ckfw/wrap.c:1047,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 69
    argCount: 5
    argNames:
    - fwInstance
    - slotID
    - pPin
    - ulPinLen
    - pLabel
    argTypes:
    - NSSCKFWInstance*
    - CK_SLOT_ID
    - CK_CHAR_PTR
    - CK_ULONG
    - CK_CHAR_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1070
      start: 983
    functionDepth: 3
    functionLinenumber: 983
    functionLinenumberEnd: 1070
    functionName: NSSCKFWC_InitToken
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWToken_InitToken
    - nssCKFWSlot_GetToken
    - nssCKFWSlot_GetTokenPresent
    - nssCKFWToken_Destroy
    - nssCKFWInstance_GetNSlots
    - nssCKFWInstance_GetSlots
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_InitToken(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SLOT_ID slotID,\n    CK_CHAR_PTR pPin,\n    CK_ULONG ulPinLen,\n    CK_CHAR_PTR
      pLabel)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_ResolveSessionHandle
      Src: /src/nss/lib/ckfw/wrap.c:1092,1
    - Dst: nssCKFWSession_InitPIN
      Src: /src/nss/lib/ckfw/wrap.c:1106,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 52
    argCount: 4
    argNames:
    - fwInstance
    - hSession
    - pPin
    - ulPinLen
    argTypes:
    - NSSCKFWInstance*
    - CK_SESSION_HANDLE
    - CK_CHAR_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1142
      start: 1076
    functionDepth: 1
    functionLinenumber: 1076
    functionLinenumberEnd: 1142
    functionName: NSSCKFWC_InitPIN
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWInstance_ResolveSessionHandle
    - nssCKFWSession_InitPIN
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_InitPIN(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SESSION_HANDLE hSession,\n    CK_CHAR_PTR pPin,\n    CK_ULONG ulPinLen)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_ResolveSessionHandle
      Src: /src/nss/lib/ckfw/wrap.c:1166,1
    - Dst: nssCKFWSession_SetPIN
      Src: /src/nss/lib/ckfw/wrap.c:1188,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 60
    argCount: 6
    argNames:
    - fwInstance
    - hSession
    - pOldPin
    - ulOldLen
    - pNewPin
    - ulNewLen
    argTypes:
    - NSSCKFWInstance*
    - CK_SESSION_HANDLE
    - CK_CHAR_PTR
    - CK_ULONG
    - CK_CHAR_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1225
      start: 1148
    functionDepth: 1
    functionLinenumber: 1148
    functionLinenumberEnd: 1225
    functionName: NSSCKFWC_SetPIN
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWInstance_ResolveSessionHandle
    - nssCKFWSession_SetPIN
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_SetPIN(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SESSION_HANDLE hSession,\n    CK_CHAR_PTR pOldPin,\n    CK_ULONG ulOldLen,\n
      \   CK_CHAR_PTR pNewPin,\n    CK_ULONG ulNewLen)"
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_GetNSlots
      Src: /src/nss/lib/ckfw/wrap.c:1253,1
    - Dst: nssCKFWInstance_GetSlots
      Src: /src/nss/lib/ckfw/wrap.c:1291,1
    - Dst: nssCKFWSlot_GetTokenPresent
      Src: /src/nss/lib/ckfw/wrap.c:1298,1
    - Dst: nssCKFWSlot_GetToken
      Src: /src/nss/lib/ckfw/wrap.c:1303,1
    - Dst: nssCKFWToken_OpenSession
      Src: /src/nss/lib/ckfw/wrap.c:1308,1
    - Dst: nssCKFWInstance_CreateSessionHandle
      Src: /src/nss/lib/ckfw/wrap.c:1314,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 94
    argCount: 6
    argNames:
    - fwInstance
    - slotID
    - flags
    - pApplication
    - Notify
    - phSession
    argTypes:
    - NSSCKFWInstance*
    - CK_SLOT_ID
    - CK_FLAGS
    - CK_VOID_PTR
    - CK_NOTIFY
    - CK_SESSION_HANDLE_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1352
      start: 1231
    functionDepth: 2
    functionLinenumber: 1231
    functionLinenumberEnd: 1352
    functionName: NSSCKFWC_OpenSession
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWToken_OpenSession
    - nssCKFWSlot_GetToken
    - nssCKFWSlot_GetTokenPresent
    - nssCKFWInstance_GetNSlots
    - nssCKFWInstance_GetSlots
    - nssCKFWInstance_CreateSessionHandle
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_OpenSession(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SLOT_ID slotID,\n    CK_FLAGS flags,\n    CK_VOID_PTR pApplication,\n
      \   CK_NOTIFY Notify,\n    CK_SESSION_HANDLE_PTR phSession)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_ResolveSessionHandle
      Src: /src/nss/lib/ckfw/wrap.c:1371,1
    - Dst: nssCKFWInstance_DestroySessionHandle
      Src: /src/nss/lib/ckfw/wrap.c:1377,1
    - Dst: nssCKFWSession_Destroy
      Src: /src/nss/lib/ckfw/wrap.c:1378,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 2
    argNames:
    - fwInstance
    - hSession
    argTypes:
    - NSSCKFWInstance*
    - CK_SESSION_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1409
      start: 1358
    functionDepth: 1
    functionLinenumber: 1358
    functionLinenumberEnd: 1409
    functionName: NSSCKFWC_CloseSession
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWSession_Destroy
    - nssCKFWInstance_ResolveSessionHandle
    - nssCKFWInstance_DestroySessionHandle
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_CloseSession(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SESSION_HANDLE hSession)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_GetNSlots
      Src: /src/nss/lib/ckfw/wrap.c:1431,1
    - Dst: nssCKFWInstance_GetSlots
      Src: /src/nss/lib/ckfw/wrap.c:1441,1
    - Dst: nssCKFWSlot_GetTokenPresent
      Src: /src/nss/lib/ckfw/wrap.c:1448,1
    - Dst: nssCKFWSlot_GetToken
      Src: /src/nss/lib/ckfw/wrap.c:1453,1
    - Dst: nssCKFWToken_CloseAllSessions
      Src: /src/nss/lib/ckfw/wrap.c:1458,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 58
    argCount: 2
    argNames:
    - fwInstance
    - slotID
    argTypes:
    - NSSCKFWInstance*
    - CK_SLOT_ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1486
      start: 1415
    functionDepth: 2
    functionLinenumber: 1415
    functionLinenumberEnd: 1486
    functionName: NSSCKFWC_CloseAllSessions
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWSlot_GetToken
    - nssCKFWSlot_GetTokenPresent
    - nssCKFWToken_CloseAllSessions
    - nssCKFWInstance_GetNSlots
    - nssCKFWInstance_GetSlots
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_CloseAllSessions(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SLOT_ID slotID)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_ResolveSessionHandle
      Src: /src/nss/lib/ckfw/wrap.c:1507,1
    - Dst: nsslibc_memset
      Src: /src/nss/lib/ckfw/wrap.c:1521,1
    - Dst: nssCKFWSession_GetFWSlot
      Src: /src/nss/lib/ckfw/wrap.c:1523,1
    - Dst: nssCKFWSlot_GetSlotID
      Src: /src/nss/lib/ckfw/wrap.c:1529,1
    - Dst: nssCKFWSession_GetSessionState
      Src: /src/nss/lib/ckfw/wrap.c:1530,1
    - Dst: nssCKFWSession_IsRWSession
      Src: /src/nss/lib/ckfw/wrap.c:1532,1
    - Dst: nssCKFWSession_GetDeviceError
      Src: /src/nss/lib/ckfw/wrap.c:1538,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 53
    argCount: 3
    argNames:
    - fwInstance
    - hSession
    - pInfo
    argTypes:
    - NSSCKFWInstance*
    - CK_SESSION_HANDLE
    - CK_SESSION_INFO_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1565
      start: 1492
    functionDepth: 2
    functionLinenumber: 1492
    functionLinenumberEnd: 1565
    functionName: NSSCKFWC_GetSessionInfo
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWSession_GetSessionState
    - nssCKFWSession_IsRWSession
    - nssCKFWSlot_GetSlotID
    - nssCKFWSession_GetFWSlot
    - nssCKFWInstance_ResolveSessionHandle
    - nssCKFWSession_GetDeviceError
    - nsslibc_memset
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_GetSessionInfo(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SESSION_HANDLE hSession,\n    CK_SESSION_INFO_PTR pInfo)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_ResolveSessionHandle
      Src: /src/nss/lib/ckfw/wrap.c:1588,1
    - Dst: nssCKFWSession_GetOperationStateLen
      Src: /src/nss/lib/ckfw/wrap.c:1599,1
    - Dst: nssCKFWSession_GetOperationState
      Src: /src/nss/lib/ckfw/wrap.c:1618,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 65
    argCount: 4
    argNames:
    - fwInstance
    - hSession
    - pOperationState
    - pulOperationStateLen
    argTypes:
    - NSSCKFWInstance*
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1652
      start: 1571
    functionDepth: 1
    functionLinenumber: 1571
    functionLinenumberEnd: 1652
    functionName: NSSCKFWC_GetOperationState
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWInstance_ResolveSessionHandle
    - nssCKFWSession_GetOperationState
    - nssCKFWSession_GetOperationStateLen
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_GetOperationState(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SESSION_HANDLE hSession,\n    CK_BYTE_PTR pOperationState,\n    CK_ULONG_PTR
      pulOperationStateLen)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_ResolveSessionHandle
      Src: /src/nss/lib/ckfw/wrap.c:1688,1
    - Dst: nssCKFWInstance_ResolveObjectHandle
      Src: /src/nss/lib/ckfw/wrap.c:1697,1
    - Dst: nssCKFWInstance_ResolveObjectHandle
      Src: /src/nss/lib/ckfw/wrap.c:1707,1
    - Dst: nssCKFWSession_SetOperationState
      Src: /src/nss/lib/ckfw/wrap.c:1717,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 70
    argCount: 6
    argNames:
    - fwInstance
    - hSession
    - pOperationState
    - ulOperationStateLen
    - hEncryptionKey
    - hAuthenticationKey
    argTypes:
    - NSSCKFWInstance*
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_OBJECT_HANDLE
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1751
      start: 1658
    functionDepth: 1
    functionLinenumber: 1658
    functionLinenumberEnd: 1751
    functionName: NSSCKFWC_SetOperationState
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWInstance_ResolveSessionHandle
    - nssCKFWInstance_ResolveObjectHandle
    - nssCKFWSession_SetOperationState
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_SetOperationState(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SESSION_HANDLE hSession,\n    CK_BYTE_PTR pOperationState,\n    CK_ULONG
      ulOperationStateLen,\n    CK_OBJECT_HANDLE hEncryptionKey,\n    CK_OBJECT_HANDLE
      hAuthenticationKey)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_ResolveSessionHandle
      Src: /src/nss/lib/ckfw/wrap.c:1774,1
    - Dst: nssCKFWSession_Login
      Src: /src/nss/lib/ckfw/wrap.c:1788,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 5
    argNames:
    - fwInstance
    - hSession
    - userType
    - pPin
    - ulPinLen
    argTypes:
    - NSSCKFWInstance*
    - CK_SESSION_HANDLE
    - CK_USER_TYPE
    - CK_CHAR_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1827
      start: 1757
    functionDepth: 1
    functionLinenumber: 1757
    functionLinenumberEnd: 1827
    functionName: NSSCKFWC_Login
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWInstance_ResolveSessionHandle
    - nssCKFWSession_Login
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_Login(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SESSION_HANDLE hSession,\n    CK_USER_TYPE userType,\n    CK_CHAR_PTR
      pPin,\n    CK_ULONG ulPinLen)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_ResolveSessionHandle
      Src: /src/nss/lib/ckfw/wrap.c:1846,1
    - Dst: nssCKFWSession_Logout
      Src: /src/nss/lib/ckfw/wrap.c:1852,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 2
    argNames:
    - fwInstance
    - hSession
    argTypes:
    - NSSCKFWInstance*
    - CK_SESSION_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1883
      start: 1833
    functionDepth: 1
    functionLinenumber: 1833
    functionLinenumberEnd: 1883
    functionName: NSSCKFWC_Logout
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWInstance_ResolveSessionHandle
    - nssCKFWSession_Logout
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_Logout(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SESSION_HANDLE hSession)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_ResolveSessionHandle
      Src: /src/nss/lib/ckfw/wrap.c:1906,1
    - Dst: nssCKFWSession_CreateObject
      Src: /src/nss/lib/ckfw/wrap.c:1922,1
    - Dst: nssCKFWInstance_CreateObjectHandle
      Src: /src/nss/lib/ckfw/wrap.c:1928,1
    - Dst: nssCKFWObject_Destroy
      Src: /src/nss/lib/ckfw/wrap.c:1930,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 59
    argCount: 5
    argNames:
    - fwInstance
    - hSession
    - pTemplate
    - ulCount
    - phObject
    argTypes:
    - NSSCKFWInstance*
    - CK_SESSION_HANDLE
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    - CK_OBJECT_HANDLE_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1967
      start: 1889
    functionDepth: 2
    functionLinenumber: 1889
    functionLinenumberEnd: 1967
    functionName: NSSCKFWC_CreateObject
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWInstance_ResolveSessionHandle
    - nssCKFWInstance_CreateObjectHandle
    - nssCKFWObject_Destroy
    - nssCKFWSession_CreateObject
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_CreateObject(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SESSION_HANDLE hSession,\n    CK_ATTRIBUTE_PTR pTemplate,\n    CK_ULONG
      ulCount,\n    CK_OBJECT_HANDLE_PTR phObject)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_ResolveSessionHandle
      Src: /src/nss/lib/ckfw/wrap.c:1992,1
    - Dst: nssCKFWInstance_ResolveObjectHandle
      Src: /src/nss/lib/ckfw/wrap.c:2008,1
    - Dst: nssCKFWSession_CopyObject
      Src: /src/nss/lib/ckfw/wrap.c:2014,1
    - Dst: nssCKFWInstance_CreateObjectHandle
      Src: /src/nss/lib/ckfw/wrap.c:2020,1
    - Dst: nssCKFWObject_Destroy
      Src: /src/nss/lib/ckfw/wrap.c:2023,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 65
    argCount: 6
    argNames:
    - fwInstance
    - hSession
    - hObject
    - pTemplate
    - ulCount
    - phNewObject
    argTypes:
    - NSSCKFWInstance*
    - CK_SESSION_HANDLE
    - CK_OBJECT_HANDLE
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    - CK_OBJECT_HANDLE_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2060
      start: 1973
    functionDepth: 2
    functionLinenumber: 1973
    functionLinenumberEnd: 2060
    functionName: NSSCKFWC_CopyObject
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWInstance_CreateObjectHandle
    - nssCKFWObject_Destroy
    - nssCKFWInstance_ResolveObjectHandle
    - nssCKFWSession_CopyObject
    - nssCKFWInstance_ResolveSessionHandle
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_CopyObject(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SESSION_HANDLE hSession,\n    CK_OBJECT_HANDLE hObject,\n    CK_ATTRIBUTE_PTR
      pTemplate,\n    CK_ULONG ulCount,\n    CK_OBJECT_HANDLE_PTR phNewObject)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_ResolveSessionHandle
      Src: /src/nss/lib/ckfw/wrap.c:2081,1
    - Dst: nssCKFWInstance_ResolveObjectHandle
      Src: /src/nss/lib/ckfw/wrap.c:2087,1
    - Dst: nssCKFWInstance_DestroyObjectHandle
      Src: /src/nss/lib/ckfw/wrap.c:2093,1
    - Dst: nssCKFWObject_Destroy
      Src: /src/nss/lib/ckfw/wrap.c:2094,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 3
    argNames:
    - fwInstance
    - hSession
    - hObject
    argTypes:
    - NSSCKFWInstance*
    - CK_SESSION_HANDLE
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2124
      start: 2066
    functionDepth: 2
    functionLinenumber: 2066
    functionLinenumberEnd: 2124
    functionName: NSSCKFWC_DestroyObject
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWInstance_DestroyObjectHandle
    - nssCKFWInstance_ResolveSessionHandle
    - nssCKFWInstance_ResolveObjectHandle
    - nssCKFWObject_Destroy
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_DestroyObject(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SESSION_HANDLE hSession,\n    CK_OBJECT_HANDLE hObject)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_ResolveSessionHandle
      Src: /src/nss/lib/ckfw/wrap.c:2146,1
    - Dst: nssCKFWInstance_ResolveObjectHandle
      Src: /src/nss/lib/ckfw/wrap.c:2152,1
    - Dst: nssCKFWObject_GetObjectSize
      Src: /src/nss/lib/ckfw/wrap.c:2168,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 53
    argCount: 4
    argNames:
    - fwInstance
    - hSession
    - hObject
    - pulSize
    argTypes:
    - NSSCKFWInstance*
    - CK_SESSION_HANDLE
    - CK_OBJECT_HANDLE
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2200
      start: 2130
    functionDepth: 2
    functionLinenumber: 2130
    functionLinenumberEnd: 2200
    functionName: NSSCKFWC_GetObjectSize
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWInstance_ResolveSessionHandle
    - nssCKFWInstance_ResolveObjectHandle
    - nssCKFWObject_GetObjectSize
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_GetObjectSize(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SESSION_HANDLE hSession,\n    CK_OBJECT_HANDLE hObject,\n    CK_ULONG_PTR
      pulSize)"
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_ResolveSessionHandle
      Src: /src/nss/lib/ckfw/wrap.c:2227,1
    - Dst: nssCKFWInstance_ResolveObjectHandle
      Src: /src/nss/lib/ckfw/wrap.c:2233,1
    - Dst: nssCKFWObject_GetAttributeSize
      Src: /src/nss/lib/ckfw/wrap.c:2245,1
    - Dst: nssCKFWObject_GetAttribute
      Src: /src/nss/lib/ckfw/wrap.c:2281,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 112
    argCount: 5
    argNames:
    - fwInstance
    - hSession
    - hObject
    - pTemplate
    - ulCount
    argTypes:
    - NSSCKFWInstance*
    - CK_SESSION_HANDLE
    - CK_OBJECT_HANDLE
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2347
      start: 2206
    functionDepth: 2
    functionLinenumber: 2206
    functionLinenumberEnd: 2347
    functionName: NSSCKFWC_GetAttributeValue
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWInstance_ResolveSessionHandle
    - nssCKFWInstance_ResolveObjectHandle
    - nssCKFWObject_GetAttribute
    - nssCKFWObject_GetAttributeSize
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_GetAttributeValue(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SESSION_HANDLE hSession,\n    CK_OBJECT_HANDLE hObject,\n    CK_ATTRIBUTE_PTR
      pTemplate,\n    CK_ULONG ulCount)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_ResolveSessionHandle
      Src: /src/nss/lib/ckfw/wrap.c:2371,1
    - Dst: nssCKFWInstance_ResolveObjectHandle
      Src: /src/nss/lib/ckfw/wrap.c:2377,1
    - Dst: nssCKFWObject_SetAttribute
      Src: /src/nss/lib/ckfw/wrap.c:2394,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 61
    argCount: 5
    argNames:
    - fwInstance
    - hSession
    - hObject
    - pTemplate
    - ulCount
    argTypes:
    - NSSCKFWInstance*
    - CK_SESSION_HANDLE
    - CK_OBJECT_HANDLE
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2434
      start: 2353
    functionDepth: 3
    functionLinenumber: 2353
    functionLinenumberEnd: 2434
    functionName: NSSCKFWC_SetAttributeValue
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWObject_SetAttribute
    - nssCKFWInstance_ResolveSessionHandle
    - nssCKFWInstance_ResolveObjectHandle
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_SetAttributeValue(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SESSION_HANDLE hSession,\n    CK_OBJECT_HANDLE hObject,\n    CK_ATTRIBUTE_PTR
      pTemplate,\n    CK_ULONG ulCount)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_ResolveSessionHandle
      Src: /src/nss/lib/ckfw/wrap.c:2456,1
    - Dst: nssCKFWSession_GetFWFindObjects
      Src: /src/nss/lib/ckfw/wrap.c:2467,1
    - Dst: nssCKFWSession_FindObjectsInit
      Src: /src/nss/lib/ckfw/wrap.c:2477,1
    - Dst: nssCKFWSession_SetFWFindObjects
      Src: /src/nss/lib/ckfw/wrap.c:2483,1
    - Dst: nssCKFWFindObjects_Destroy
      Src: /src/nss/lib/ckfw/wrap.c:2486,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 63
    argCount: 4
    argNames:
    - fwInstance
    - hSession
    - pTemplate
    - ulCount
    argTypes:
    - NSSCKFWInstance*
    - CK_SESSION_HANDLE
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2518
      start: 2440
    functionDepth: 2
    functionLinenumber: 2440
    functionLinenumberEnd: 2518
    functionName: NSSCKFWC_FindObjectsInit
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWSession_FindObjectsInit
    - nssCKFWSession_GetFWFindObjects
    - nssCKFWSession_SetFWFindObjects
    - nssCKFWInstance_ResolveSessionHandle
    - nssCKFWFindObjects_Destroy
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_FindObjectsInit(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SESSION_HANDLE hSession,\n    CK_ATTRIBUTE_PTR pTemplate,\n    CK_ULONG
      ulCount)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_ResolveSessionHandle
      Src: /src/nss/lib/ckfw/wrap.c:2542,1
    - Dst: nsslibc_memset
      Src: /src/nss/lib/ckfw/wrap.c:2556,1
    - Dst: nssCKFWSession_GetFWFindObjects
      Src: /src/nss/lib/ckfw/wrap.c:2559,1
    - Dst: nssCKFWFindObjects_Next
      Src: /src/nss/lib/ckfw/wrap.c:2565,1
    - Dst: nssCKFWInstance_FindObjectHandle
      Src: /src/nss/lib/ckfw/wrap.c:2571,1
    - Dst: nssCKFWInstance_CreateObjectHandle
      Src: /src/nss/lib/ckfw/wrap.c:2573,1
    - Dst: nssCKFWInstance_FindObjectHandle
      Src: /src/nss/lib/ckfw/wrap.c:2580,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 65
    argCount: 5
    argNames:
    - fwInstance
    - hSession
    - phObject
    - ulMaxObjectCount
    - pulObjectCount
    argTypes:
    - NSSCKFWInstance*
    - CK_SESSION_HANDLE
    - CK_OBJECT_HANDLE_PTR
    - CK_ULONG
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2616
      start: 2524
    functionDepth: 1
    functionLinenumber: 2524
    functionLinenumberEnd: 2616
    functionName: NSSCKFWC_FindObjects
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWInstance_CreateObjectHandle
    - nssCKFWSession_GetFWFindObjects
    - nssCKFWInstance_ResolveSessionHandle
    - nssCKFWFindObjects_Next
    - nssCKFWInstance_FindObjectHandle
    - nsslibc_memset
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_FindObjects(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SESSION_HANDLE hSession,\n    CK_OBJECT_HANDLE_PTR phObject,\n    CK_ULONG
      ulMaxObjectCount,\n    CK_ULONG_PTR pulObjectCount)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_ResolveSessionHandle
      Src: /src/nss/lib/ckfw/wrap.c:2636,1
    - Dst: nssCKFWSession_GetFWFindObjects
      Src: /src/nss/lib/ckfw/wrap.c:2642,1
    - Dst: nssCKFWFindObjects_Destroy
      Src: /src/nss/lib/ckfw/wrap.c:2648,1
    - Dst: nssCKFWSession_SetFWFindObjects
      Src: /src/nss/lib/ckfw/wrap.c:2649,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 2
    argNames:
    - fwInstance
    - hSession
    argTypes:
    - NSSCKFWInstance*
    - CK_SESSION_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2682
      start: 2622
    functionDepth: 2
    functionLinenumber: 2622
    functionLinenumberEnd: 2682
    functionName: NSSCKFWC_FindObjectsFinal
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWInstance_ResolveSessionHandle
    - nssCKFWSession_GetFWFindObjects
    - nssCKFWFindObjects_Destroy
    - nssCKFWSession_SetFWFindObjects
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_FindObjectsFinal(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SESSION_HANDLE hSession)"
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_ResolveSessionHandle
      Src: /src/nss/lib/ckfw/wrap.c:2707,1
    - Dst: nssCKFWInstance_ResolveObjectHandle
      Src: /src/nss/lib/ckfw/wrap.c:2713,1
    - Dst: nssCKFWSession_GetFWSlot
      Src: /src/nss/lib/ckfw/wrap.c:2719,1
    - Dst: nssCKFWSlot_GetTokenPresent
      Src: /src/nss/lib/ckfw/wrap.c:2725,1
    - Dst: nssCKFWSlot_GetToken
      Src: /src/nss/lib/ckfw/wrap.c:2730,1
    - Dst: nssCKFWToken_GetMechanism
      Src: /src/nss/lib/ckfw/wrap.c:2735,1
    - Dst: nssCKFWMechanism_EncryptInit
      Src: /src/nss/lib/ckfw/wrap.c:2740,1
    - Dst: nssCKFWMechanism_Destroy
      Src: /src/nss/lib/ckfw/wrap.c:2743,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 73
    argCount: 4
    argNames:
    - fwInstance
    - hSession
    - pMechanism
    - hKey
    argTypes:
    - NSSCKFWInstance*
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2778
      start: 2688
    functionDepth: 2
    functionLinenumber: 2688
    functionLinenumberEnd: 2778
    functionName: NSSCKFWC_EncryptInit
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWToken_GetMechanism
    - nssCKFWSlot_GetToken
    - nssCKFWInstance_ResolveObjectHandle
    - nssCKFWMechanism_Destroy
    - nssCKFWSession_GetFWSlot
    - nssCKFWSlot_GetTokenPresent
    - nssCKFWInstance_ResolveSessionHandle
    - nssCKFWMechanism_EncryptInit
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_EncryptInit(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SESSION_HANDLE hSession,\n    CK_MECHANISM_PTR pMechanism,\n    CK_OBJECT_HANDLE
      hKey)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_ResolveSessionHandle
      Src: /src/nss/lib/ckfw/wrap.c:2801,1
    - Dst: nssCKFWSession_UpdateFinal
      Src: /src/nss/lib/ckfw/wrap.c:2807,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 6
    argNames:
    - fwInstance
    - hSession
    - pData
    - ulDataLen
    - pEncryptedData
    - pulEncryptedDataLen
    argTypes:
    - NSSCKFWInstance*
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2841
      start: 2784
    functionDepth: 1
    functionLinenumber: 2784
    functionLinenumberEnd: 2841
    functionName: NSSCKFWC_Encrypt
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWInstance_ResolveSessionHandle
    - nssCKFWSession_UpdateFinal
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_Encrypt(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SESSION_HANDLE hSession,\n    CK_BYTE_PTR pData,\n    CK_ULONG ulDataLen,\n
      \   CK_BYTE_PTR pEncryptedData,\n    CK_ULONG_PTR pulEncryptedDataLen)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_ResolveSessionHandle
      Src: /src/nss/lib/ckfw/wrap.c:2864,1
    - Dst: nssCKFWSession_Update
      Src: /src/nss/lib/ckfw/wrap.c:2870,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    argCount: 6
    argNames:
    - fwInstance
    - hSession
    - pPart
    - ulPartLen
    - pEncryptedPart
    - pulEncryptedPartLen
    argTypes:
    - NSSCKFWInstance*
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2903
      start: 2847
    functionDepth: 1
    functionLinenumber: 2847
    functionLinenumberEnd: 2903
    functionName: NSSCKFWC_EncryptUpdate
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWInstance_ResolveSessionHandle
    - nssCKFWSession_Update
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_EncryptUpdate(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SESSION_HANDLE hSession,\n    CK_BYTE_PTR pPart,\n    CK_ULONG ulPartLen,\n
      \   CK_BYTE_PTR pEncryptedPart,\n    CK_ULONG_PTR pulEncryptedPartLen)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_ResolveSessionHandle
      Src: /src/nss/lib/ckfw/wrap.c:2924,1
    - Dst: nssCKFWSession_Final
      Src: /src/nss/lib/ckfw/wrap.c:2930,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    argCount: 4
    argNames:
    - fwInstance
    - hSession
    - pLastEncryptedPart
    - pulLastEncryptedPartLen
    argTypes:
    - NSSCKFWInstance*
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2963
      start: 2909
    functionDepth: 1
    functionLinenumber: 2909
    functionLinenumberEnd: 2963
    functionName: NSSCKFWC_EncryptFinal
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWInstance_ResolveSessionHandle
    - nssCKFWSession_Final
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_EncryptFinal(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SESSION_HANDLE hSession,\n    CK_BYTE_PTR pLastEncryptedPart,\n    CK_ULONG_PTR
      pulLastEncryptedPartLen)"
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_ResolveSessionHandle
      Src: /src/nss/lib/ckfw/wrap.c:2988,1
    - Dst: nssCKFWInstance_ResolveObjectHandle
      Src: /src/nss/lib/ckfw/wrap.c:2994,1
    - Dst: nssCKFWSession_GetFWSlot
      Src: /src/nss/lib/ckfw/wrap.c:3000,1
    - Dst: nssCKFWSlot_GetTokenPresent
      Src: /src/nss/lib/ckfw/wrap.c:3006,1
    - Dst: nssCKFWSlot_GetToken
      Src: /src/nss/lib/ckfw/wrap.c:3011,1
    - Dst: nssCKFWToken_GetMechanism
      Src: /src/nss/lib/ckfw/wrap.c:3016,1
    - Dst: nssCKFWMechanism_DecryptInit
      Src: /src/nss/lib/ckfw/wrap.c:3021,1
    - Dst: nssCKFWMechanism_Destroy
      Src: /src/nss/lib/ckfw/wrap.c:3023,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 74
    argCount: 4
    argNames:
    - fwInstance
    - hSession
    - pMechanism
    - hKey
    argTypes:
    - NSSCKFWInstance*
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3059
      start: 2969
    functionDepth: 2
    functionLinenumber: 2969
    functionLinenumberEnd: 3059
    functionName: NSSCKFWC_DecryptInit
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWToken_GetMechanism
    - nssCKFWSlot_GetToken
    - nssCKFWInstance_ResolveObjectHandle
    - nssCKFWMechanism_DecryptInit
    - nssCKFWMechanism_Destroy
    - nssCKFWSession_GetFWSlot
    - nssCKFWSlot_GetTokenPresent
    - nssCKFWInstance_ResolveSessionHandle
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_DecryptInit(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SESSION_HANDLE hSession,\n    CK_MECHANISM_PTR pMechanism,\n    CK_OBJECT_HANDLE
      hKey)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_ResolveSessionHandle
      Src: /src/nss/lib/ckfw/wrap.c:3082,1
    - Dst: nssCKFWSession_UpdateFinal
      Src: /src/nss/lib/ckfw/wrap.c:3088,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 48
    argCount: 6
    argNames:
    - fwInstance
    - hSession
    - pEncryptedData
    - ulEncryptedDataLen
    - pData
    - pulDataLen
    argTypes:
    - NSSCKFWInstance*
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3129
      start: 3065
    functionDepth: 1
    functionLinenumber: 3065
    functionLinenumberEnd: 3129
    functionName: NSSCKFWC_Decrypt
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWInstance_ResolveSessionHandle
    - nssCKFWSession_UpdateFinal
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_Decrypt(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SESSION_HANDLE hSession,\n    CK_BYTE_PTR pEncryptedData,\n    CK_ULONG
      ulEncryptedDataLen,\n    CK_BYTE_PTR pData,\n    CK_ULONG_PTR pulDataLen)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_ResolveSessionHandle
      Src: /src/nss/lib/ckfw/wrap.c:3152,1
    - Dst: nssCKFWSession_Update
      Src: /src/nss/lib/ckfw/wrap.c:3158,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 48
    argCount: 6
    argNames:
    - fwInstance
    - hSession
    - pEncryptedPart
    - ulEncryptedPartLen
    - pPart
    - pulPartLen
    argTypes:
    - NSSCKFWInstance*
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3199
      start: 3135
    functionDepth: 1
    functionLinenumber: 3135
    functionLinenumberEnd: 3199
    functionName: NSSCKFWC_DecryptUpdate
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWInstance_ResolveSessionHandle
    - nssCKFWSession_Update
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_DecryptUpdate(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SESSION_HANDLE hSession,\n    CK_BYTE_PTR pEncryptedPart,\n    CK_ULONG
      ulEncryptedPartLen,\n    CK_BYTE_PTR pPart,\n    CK_ULONG_PTR pulPartLen)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_ResolveSessionHandle
      Src: /src/nss/lib/ckfw/wrap.c:3220,1
    - Dst: nssCKFWSession_Final
      Src: /src/nss/lib/ckfw/wrap.c:3226,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 48
    argCount: 4
    argNames:
    - fwInstance
    - hSession
    - pLastPart
    - pulLastPartLen
    argTypes:
    - NSSCKFWInstance*
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3267
      start: 3205
    functionDepth: 1
    functionLinenumber: 3205
    functionLinenumberEnd: 3267
    functionName: NSSCKFWC_DecryptFinal
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWInstance_ResolveSessionHandle
    - nssCKFWSession_Final
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_DecryptFinal(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SESSION_HANDLE hSession,\n    CK_BYTE_PTR pLastPart,\n    CK_ULONG_PTR
      pulLastPartLen)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_ResolveSessionHandle
      Src: /src/nss/lib/ckfw/wrap.c:3290,1
    - Dst: nssCKFWSession_GetFWSlot
      Src: /src/nss/lib/ckfw/wrap.c:3296,1
    - Dst: nssCKFWSlot_GetTokenPresent
      Src: /src/nss/lib/ckfw/wrap.c:3302,1
    - Dst: nssCKFWSlot_GetToken
      Src: /src/nss/lib/ckfw/wrap.c:3307,1
    - Dst: nssCKFWToken_GetMechanism
      Src: /src/nss/lib/ckfw/wrap.c:3312,1
    - Dst: nssCKFWMechanism_DigestInit
      Src: /src/nss/lib/ckfw/wrap.c:3317,1
    - Dst: nssCKFWMechanism_Destroy
      Src: /src/nss/lib/ckfw/wrap.c:3319,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 64
    argCount: 3
    argNames:
    - fwInstance
    - hSession
    - pMechanism
    argTypes:
    - NSSCKFWInstance*
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3351
      start: 3273
    functionDepth: 2
    functionLinenumber: 3273
    functionLinenumberEnd: 3351
    functionName: NSSCKFWC_DigestInit
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWToken_GetMechanism
    - nssCKFWSlot_GetToken
    - nssCKFWMechanism_Destroy
    - nssCKFWSession_GetFWSlot
    - nssCKFWSlot_GetTokenPresent
    - nssCKFWInstance_ResolveSessionHandle
    - nssCKFWMechanism_DigestInit
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_DigestInit(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SESSION_HANDLE hSession,\n    CK_MECHANISM_PTR pMechanism)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_ResolveSessionHandle
      Src: /src/nss/lib/ckfw/wrap.c:3374,1
    - Dst: nssCKFWSession_UpdateFinal
      Src: /src/nss/lib/ckfw/wrap.c:3380,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 6
    argNames:
    - fwInstance
    - hSession
    - pData
    - ulDataLen
    - pDigest
    - pulDigestLen
    argTypes:
    - NSSCKFWInstance*
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3412
      start: 3357
    functionDepth: 1
    functionLinenumber: 3357
    functionLinenumberEnd: 3412
    functionName: NSSCKFWC_Digest
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWInstance_ResolveSessionHandle
    - nssCKFWSession_UpdateFinal
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_Digest(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SESSION_HANDLE hSession,\n    CK_BYTE_PTR pData,\n    CK_ULONG ulDataLen,\n
      \   CK_BYTE_PTR pDigest,\n    CK_ULONG_PTR pulDigestLen)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_ResolveSessionHandle
      Src: /src/nss/lib/ckfw/wrap.c:3433,1
    - Dst: nssCKFWSession_DigestUpdate
      Src: /src/nss/lib/ckfw/wrap.c:3439,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 4
    argNames:
    - fwInstance
    - hSession
    - pData
    - ulDataLen
    argTypes:
    - NSSCKFWInstance*
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3470
      start: 3418
    functionDepth: 1
    functionLinenumber: 3418
    functionLinenumberEnd: 3470
    functionName: NSSCKFWC_DigestUpdate
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWInstance_ResolveSessionHandle
    - nssCKFWSession_DigestUpdate
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_DigestUpdate(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SESSION_HANDLE hSession,\n    CK_BYTE_PTR pData,\n    CK_ULONG ulDataLen)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_ResolveSessionHandle
      Src: /src/nss/lib/ckfw/wrap.c:3491,1
    - Dst: nssCKFWInstance_ResolveObjectHandle
      Src: /src/nss/lib/ckfw/wrap.c:3497,1
    - Dst: nssCKFWSession_DigestKey
      Src: /src/nss/lib/ckfw/wrap.c:3503,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 46
    argCount: 3
    argNames:
    - fwInstance
    - hSession
    - hKey
    argTypes:
    - NSSCKFWInstance*
    - CK_SESSION_HANDLE
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3533
      start: 3476
    functionDepth: 1
    functionLinenumber: 3476
    functionLinenumberEnd: 3533
    functionName: NSSCKFWC_DigestKey
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWInstance_ResolveSessionHandle
    - nssCKFWInstance_ResolveObjectHandle
    - nssCKFWSession_DigestKey
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_DigestKey(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SESSION_HANDLE hSession,\n    CK_OBJECT_HANDLE hKey)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_ResolveSessionHandle
      Src: /src/nss/lib/ckfw/wrap.c:3554,1
    - Dst: nssCKFWSession_Final
      Src: /src/nss/lib/ckfw/wrap.c:3560,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 4
    argNames:
    - fwInstance
    - hSession
    - pDigest
    - pulDigestLen
    argTypes:
    - NSSCKFWInstance*
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3592
      start: 3539
    functionDepth: 1
    functionLinenumber: 3539
    functionLinenumberEnd: 3592
    functionName: NSSCKFWC_DigestFinal
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWInstance_ResolveSessionHandle
    - nssCKFWSession_Final
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_DigestFinal(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SESSION_HANDLE hSession,\n    CK_BYTE_PTR pDigest,\n    CK_ULONG_PTR
      pulDigestLen)"
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_ResolveSessionHandle
      Src: /src/nss/lib/ckfw/wrap.c:3617,1
    - Dst: nssCKFWInstance_ResolveObjectHandle
      Src: /src/nss/lib/ckfw/wrap.c:3623,1
    - Dst: nssCKFWSession_GetFWSlot
      Src: /src/nss/lib/ckfw/wrap.c:3629,1
    - Dst: nssCKFWSlot_GetTokenPresent
      Src: /src/nss/lib/ckfw/wrap.c:3635,1
    - Dst: nssCKFWSlot_GetToken
      Src: /src/nss/lib/ckfw/wrap.c:3640,1
    - Dst: nssCKFWToken_GetMechanism
      Src: /src/nss/lib/ckfw/wrap.c:3645,1
    - Dst: nssCKFWMechanism_SignInit
      Src: /src/nss/lib/ckfw/wrap.c:3650,1
    - Dst: nssCKFWMechanism_Destroy
      Src: /src/nss/lib/ckfw/wrap.c:3653,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 74
    argCount: 4
    argNames:
    - fwInstance
    - hSession
    - pMechanism
    - hKey
    argTypes:
    - NSSCKFWInstance*
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3689
      start: 3598
    functionDepth: 2
    functionLinenumber: 3598
    functionLinenumberEnd: 3689
    functionName: NSSCKFWC_SignInit
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWToken_GetMechanism
    - nssCKFWMechanism_SignInit
    - nssCKFWSlot_GetToken
    - nssCKFWInstance_ResolveObjectHandle
    - nssCKFWMechanism_Destroy
    - nssCKFWSession_GetFWSlot
    - nssCKFWSlot_GetTokenPresent
    - nssCKFWInstance_ResolveSessionHandle
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_SignInit(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SESSION_HANDLE hSession,\n    CK_MECHANISM_PTR pMechanism,\n    CK_OBJECT_HANDLE
      hKey)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_ResolveSessionHandle
      Src: /src/nss/lib/ckfw/wrap.c:3712,1
    - Dst: nssCKFWSession_UpdateFinal
      Src: /src/nss/lib/ckfw/wrap.c:3718,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 43
    argCount: 6
    argNames:
    - fwInstance
    - hSession
    - pData
    - ulDataLen
    - pSignature
    - pulSignatureLen
    argTypes:
    - NSSCKFWInstance*
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3754
      start: 3695
    functionDepth: 1
    functionLinenumber: 3695
    functionLinenumberEnd: 3754
    functionName: NSSCKFWC_Sign
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWInstance_ResolveSessionHandle
    - nssCKFWSession_UpdateFinal
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_Sign(\n    NSSCKFWInstance *fwInstance,\n    CK_SESSION_HANDLE
      hSession,\n    CK_BYTE_PTR pData,\n    CK_ULONG ulDataLen,\n    CK_BYTE_PTR
      pSignature,\n    CK_ULONG_PTR pulSignatureLen)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_ResolveSessionHandle
      Src: /src/nss/lib/ckfw/wrap.c:3775,1
    - Dst: nssCKFWSession_DigestUpdate
      Src: /src/nss/lib/ckfw/wrap.c:3781,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    argCount: 4
    argNames:
    - fwInstance
    - hSession
    - pPart
    - ulPartLen
    argTypes:
    - NSSCKFWInstance*
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3814
      start: 3760
    functionDepth: 1
    functionLinenumber: 3760
    functionLinenumberEnd: 3814
    functionName: NSSCKFWC_SignUpdate
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWInstance_ResolveSessionHandle
    - nssCKFWSession_DigestUpdate
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_SignUpdate(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SESSION_HANDLE hSession,\n    CK_BYTE_PTR pPart,\n    CK_ULONG ulPartLen)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_ResolveSessionHandle
      Src: /src/nss/lib/ckfw/wrap.c:3835,1
    - Dst: nssCKFWSession_Final
      Src: /src/nss/lib/ckfw/wrap.c:3841,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 42
    argCount: 4
    argNames:
    - fwInstance
    - hSession
    - pSignature
    - pulSignatureLen
    argTypes:
    - NSSCKFWInstance*
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3876
      start: 3820
    functionDepth: 1
    functionLinenumber: 3820
    functionLinenumberEnd: 3876
    functionName: NSSCKFWC_SignFinal
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWInstance_ResolveSessionHandle
    - nssCKFWSession_Final
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_SignFinal(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SESSION_HANDLE hSession,\n    CK_BYTE_PTR pSignature,\n    CK_ULONG_PTR
      pulSignatureLen)"
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_ResolveSessionHandle
      Src: /src/nss/lib/ckfw/wrap.c:3901,1
    - Dst: nssCKFWInstance_ResolveObjectHandle
      Src: /src/nss/lib/ckfw/wrap.c:3907,1
    - Dst: nssCKFWSession_GetFWSlot
      Src: /src/nss/lib/ckfw/wrap.c:3913,1
    - Dst: nssCKFWSlot_GetTokenPresent
      Src: /src/nss/lib/ckfw/wrap.c:3919,1
    - Dst: nssCKFWSlot_GetToken
      Src: /src/nss/lib/ckfw/wrap.c:3924,1
    - Dst: nssCKFWToken_GetMechanism
      Src: /src/nss/lib/ckfw/wrap.c:3929,1
    - Dst: nssCKFWMechanism_SignRecoverInit
      Src: /src/nss/lib/ckfw/wrap.c:3934,1
    - Dst: nssCKFWMechanism_Destroy
      Src: /src/nss/lib/ckfw/wrap.c:3937,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 74
    argCount: 4
    argNames:
    - fwInstance
    - hSession
    - pMechanism
    - hKey
    argTypes:
    - NSSCKFWInstance*
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3973
      start: 3882
    functionDepth: 2
    functionLinenumber: 3882
    functionLinenumberEnd: 3973
    functionName: NSSCKFWC_SignRecoverInit
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWToken_GetMechanism
    - nssCKFWSlot_GetToken
    - nssCKFWMechanism_SignRecoverInit
    - nssCKFWInstance_ResolveObjectHandle
    - nssCKFWMechanism_Destroy
    - nssCKFWSession_GetFWSlot
    - nssCKFWSlot_GetTokenPresent
    - nssCKFWInstance_ResolveSessionHandle
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_SignRecoverInit(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SESSION_HANDLE hSession,\n    CK_MECHANISM_PTR pMechanism,\n    CK_OBJECT_HANDLE
      hKey)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_ResolveSessionHandle
      Src: /src/nss/lib/ckfw/wrap.c:3996,1
    - Dst: nssCKFWSession_UpdateFinal
      Src: /src/nss/lib/ckfw/wrap.c:4002,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 42
    argCount: 6
    argNames:
    - fwInstance
    - hSession
    - pData
    - ulDataLen
    - pSignature
    - pulSignatureLen
    argTypes:
    - NSSCKFWInstance*
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4037
      start: 3979
    functionDepth: 1
    functionLinenumber: 3979
    functionLinenumberEnd: 4037
    functionName: NSSCKFWC_SignRecover
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWInstance_ResolveSessionHandle
    - nssCKFWSession_UpdateFinal
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_SignRecover(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SESSION_HANDLE hSession,\n    CK_BYTE_PTR pData,\n    CK_ULONG ulDataLen,\n
      \   CK_BYTE_PTR pSignature,\n    CK_ULONG_PTR pulSignatureLen)"
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_ResolveSessionHandle
      Src: /src/nss/lib/ckfw/wrap.c:4062,1
    - Dst: nssCKFWInstance_ResolveObjectHandle
      Src: /src/nss/lib/ckfw/wrap.c:4068,1
    - Dst: nssCKFWSession_GetFWSlot
      Src: /src/nss/lib/ckfw/wrap.c:4074,1
    - Dst: nssCKFWSlot_GetTokenPresent
      Src: /src/nss/lib/ckfw/wrap.c:4080,1
    - Dst: nssCKFWSlot_GetToken
      Src: /src/nss/lib/ckfw/wrap.c:4085,1
    - Dst: nssCKFWToken_GetMechanism
      Src: /src/nss/lib/ckfw/wrap.c:4090,1
    - Dst: nssCKFWMechanism_VerifyInit
      Src: /src/nss/lib/ckfw/wrap.c:4095,1
    - Dst: nssCKFWMechanism_Destroy
      Src: /src/nss/lib/ckfw/wrap.c:4098,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 74
    argCount: 4
    argNames:
    - fwInstance
    - hSession
    - pMechanism
    - hKey
    argTypes:
    - NSSCKFWInstance*
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4134
      start: 4043
    functionDepth: 2
    functionLinenumber: 4043
    functionLinenumberEnd: 4134
    functionName: NSSCKFWC_VerifyInit
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWToken_GetMechanism
    - nssCKFWSlot_GetToken
    - nssCKFWInstance_ResolveObjectHandle
    - nssCKFWMechanism_Destroy
    - nssCKFWSession_GetFWSlot
    - nssCKFWMechanism_VerifyInit
    - nssCKFWSlot_GetTokenPresent
    - nssCKFWInstance_ResolveSessionHandle
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_VerifyInit(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SESSION_HANDLE hSession,\n    CK_MECHANISM_PTR pMechanism,\n    CK_OBJECT_HANDLE
      hKey)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_ResolveSessionHandle
      Src: /src/nss/lib/ckfw/wrap.c:4157,1
    - Dst: nssCKFWSession_UpdateFinal
      Src: /src/nss/lib/ckfw/wrap.c:4163,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 42
    argCount: 6
    argNames:
    - fwInstance
    - hSession
    - pData
    - ulDataLen
    - pSignature
    - ulSignatureLen
    argTypes:
    - NSSCKFWInstance*
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4198
      start: 4140
    functionDepth: 1
    functionLinenumber: 4140
    functionLinenumberEnd: 4198
    functionName: NSSCKFWC_Verify
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWInstance_ResolveSessionHandle
    - nssCKFWSession_UpdateFinal
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_Verify(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SESSION_HANDLE hSession,\n    CK_BYTE_PTR pData,\n    CK_ULONG ulDataLen,\n
      \   CK_BYTE_PTR pSignature,\n    CK_ULONG ulSignatureLen)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_ResolveSessionHandle
      Src: /src/nss/lib/ckfw/wrap.c:4219,1
    - Dst: nssCKFWSession_DigestUpdate
      Src: /src/nss/lib/ckfw/wrap.c:4225,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 4
    argNames:
    - fwInstance
    - hSession
    - pPart
    - ulPartLen
    argTypes:
    - NSSCKFWInstance*
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4257
      start: 4204
    functionDepth: 1
    functionLinenumber: 4204
    functionLinenumberEnd: 4257
    functionName: NSSCKFWC_VerifyUpdate
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWInstance_ResolveSessionHandle
    - nssCKFWSession_DigestUpdate
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_VerifyUpdate(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SESSION_HANDLE hSession,\n    CK_BYTE_PTR pPart,\n    CK_ULONG ulPartLen)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_ResolveSessionHandle
      Src: /src/nss/lib/ckfw/wrap.c:4278,1
    - Dst: nssCKFWSession_Final
      Src: /src/nss/lib/ckfw/wrap.c:4284,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 4
    argNames:
    - fwInstance
    - hSession
    - pSignature
    - ulSignatureLen
    argTypes:
    - NSSCKFWInstance*
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4318
      start: 4263
    functionDepth: 1
    functionLinenumber: 4263
    functionLinenumberEnd: 4318
    functionName: NSSCKFWC_VerifyFinal
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWInstance_ResolveSessionHandle
    - nssCKFWSession_Final
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_VerifyFinal(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SESSION_HANDLE hSession,\n    CK_BYTE_PTR pSignature,\n    CK_ULONG ulSignatureLen)"
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_ResolveSessionHandle
      Src: /src/nss/lib/ckfw/wrap.c:4343,1
    - Dst: nssCKFWInstance_ResolveObjectHandle
      Src: /src/nss/lib/ckfw/wrap.c:4349,1
    - Dst: nssCKFWSession_GetFWSlot
      Src: /src/nss/lib/ckfw/wrap.c:4355,1
    - Dst: nssCKFWSlot_GetTokenPresent
      Src: /src/nss/lib/ckfw/wrap.c:4361,1
    - Dst: nssCKFWSlot_GetToken
      Src: /src/nss/lib/ckfw/wrap.c:4366,1
    - Dst: nssCKFWToken_GetMechanism
      Src: /src/nss/lib/ckfw/wrap.c:4371,1
    - Dst: nssCKFWMechanism_VerifyRecoverInit
      Src: /src/nss/lib/ckfw/wrap.c:4376,1
    - Dst: nssCKFWMechanism_Destroy
      Src: /src/nss/lib/ckfw/wrap.c:4379,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 74
    argCount: 4
    argNames:
    - fwInstance
    - hSession
    - pMechanism
    - hKey
    argTypes:
    - NSSCKFWInstance*
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4415
      start: 4324
    functionDepth: 2
    functionLinenumber: 4324
    functionLinenumberEnd: 4415
    functionName: NSSCKFWC_VerifyRecoverInit
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWToken_GetMechanism
    - nssCKFWSlot_GetToken
    - nssCKFWInstance_ResolveObjectHandle
    - nssCKFWMechanism_Destroy
    - nssCKFWSession_GetFWSlot
    - nssCKFWSlot_GetTokenPresent
    - nssCKFWInstance_ResolveSessionHandle
    - nssCKFWMechanism_VerifyRecoverInit
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_VerifyRecoverInit(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SESSION_HANDLE hSession,\n    CK_MECHANISM_PTR pMechanism,\n    CK_OBJECT_HANDLE
      hKey)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_ResolveSessionHandle
      Src: /src/nss/lib/ckfw/wrap.c:4438,1
    - Dst: nssCKFWSession_UpdateFinal
      Src: /src/nss/lib/ckfw/wrap.c:4444,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 43
    argCount: 6
    argNames:
    - fwInstance
    - hSession
    - pSignature
    - ulSignatureLen
    - pData
    - pulDataLen
    argTypes:
    - NSSCKFWInstance*
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4478
      start: 4421
    functionDepth: 1
    functionLinenumber: 4421
    functionLinenumberEnd: 4478
    functionName: NSSCKFWC_VerifyRecover
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWInstance_ResolveSessionHandle
    - nssCKFWSession_UpdateFinal
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_VerifyRecover(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SESSION_HANDLE hSession,\n    CK_BYTE_PTR pSignature,\n    CK_ULONG ulSignatureLen,\n
      \   CK_BYTE_PTR pData,\n    CK_ULONG_PTR pulDataLen)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_ResolveSessionHandle
      Src: /src/nss/lib/ckfw/wrap.c:4501,1
    - Dst: nssCKFWSession_UpdateCombo
      Src: /src/nss/lib/ckfw/wrap.c:4507,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    argCount: 6
    argNames:
    - fwInstance
    - hSession
    - pPart
    - ulPartLen
    - pEncryptedPart
    - pulEncryptedPartLen
    argTypes:
    - NSSCKFWInstance*
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4541
      start: 4484
    functionDepth: 1
    functionLinenumber: 4484
    functionLinenumberEnd: 4541
    functionName: NSSCKFWC_DigestEncryptUpdate
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWSession_UpdateCombo
    - nssCKFWInstance_ResolveSessionHandle
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_DigestEncryptUpdate(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SESSION_HANDLE hSession,\n    CK_BYTE_PTR pPart,\n    CK_ULONG ulPartLen,\n
      \   CK_BYTE_PTR pEncryptedPart,\n    CK_ULONG_PTR pulEncryptedPartLen)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_ResolveSessionHandle
      Src: /src/nss/lib/ckfw/wrap.c:4564,1
    - Dst: nssCKFWSession_UpdateCombo
      Src: /src/nss/lib/ckfw/wrap.c:4570,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 47
    argCount: 6
    argNames:
    - fwInstance
    - hSession
    - pEncryptedPart
    - ulEncryptedPartLen
    - pPart
    - pulPartLen
    argTypes:
    - NSSCKFWInstance*
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4611
      start: 4547
    functionDepth: 1
    functionLinenumber: 4547
    functionLinenumberEnd: 4611
    functionName: NSSCKFWC_DecryptDigestUpdate
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWSession_UpdateCombo
    - nssCKFWInstance_ResolveSessionHandle
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_DecryptDigestUpdate(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SESSION_HANDLE hSession,\n    CK_BYTE_PTR pEncryptedPart,\n    CK_ULONG
      ulEncryptedPartLen,\n    CK_BYTE_PTR pPart,\n    CK_ULONG_PTR pulPartLen)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_ResolveSessionHandle
      Src: /src/nss/lib/ckfw/wrap.c:4634,1
    - Dst: nssCKFWSession_UpdateCombo
      Src: /src/nss/lib/ckfw/wrap.c:4640,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 6
    argNames:
    - fwInstance
    - hSession
    - pPart
    - ulPartLen
    - pEncryptedPart
    - pulEncryptedPartLen
    argTypes:
    - NSSCKFWInstance*
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4675
      start: 4617
    functionDepth: 1
    functionLinenumber: 4617
    functionLinenumberEnd: 4675
    functionName: NSSCKFWC_SignEncryptUpdate
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWSession_UpdateCombo
    - nssCKFWInstance_ResolveSessionHandle
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_SignEncryptUpdate(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SESSION_HANDLE hSession,\n    CK_BYTE_PTR pPart,\n    CK_ULONG ulPartLen,\n
      \   CK_BYTE_PTR pEncryptedPart,\n    CK_ULONG_PTR pulEncryptedPartLen)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_ResolveSessionHandle
      Src: /src/nss/lib/ckfw/wrap.c:4698,1
    - Dst: nssCKFWSession_UpdateCombo
      Src: /src/nss/lib/ckfw/wrap.c:4704,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 45
    argCount: 6
    argNames:
    - fwInstance
    - hSession
    - pEncryptedPart
    - ulEncryptedPartLen
    - pPart
    - pulPartLen
    argTypes:
    - NSSCKFWInstance*
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4743
      start: 4681
    functionDepth: 1
    functionLinenumber: 4681
    functionLinenumberEnd: 4743
    functionName: NSSCKFWC_DecryptVerifyUpdate
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWSession_UpdateCombo
    - nssCKFWInstance_ResolveSessionHandle
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_DecryptVerifyUpdate(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SESSION_HANDLE hSession,\n    CK_BYTE_PTR pEncryptedPart,\n    CK_ULONG
      ulEncryptedPartLen,\n    CK_BYTE_PTR pPart,\n    CK_ULONG_PTR pulPartLen)"
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_ResolveSessionHandle
      Src: /src/nss/lib/ckfw/wrap.c:4770,1
    - Dst: nssCKFWSession_GetFWSlot
      Src: /src/nss/lib/ckfw/wrap.c:4776,1
    - Dst: nssCKFWSlot_GetTokenPresent
      Src: /src/nss/lib/ckfw/wrap.c:4782,1
    - Dst: nssCKFWSlot_GetToken
      Src: /src/nss/lib/ckfw/wrap.c:4787,1
    - Dst: nssCKFWToken_GetMechanism
      Src: /src/nss/lib/ckfw/wrap.c:4792,1
    - Dst: nssCKFWMechanism_GenerateKey
      Src: /src/nss/lib/ckfw/wrap.c:4797,1
    - Dst: nssCKFWMechanism_Destroy
      Src: /src/nss/lib/ckfw/wrap.c:4805,1
    - Dst: nssCKFWInstance_CreateObjectHandle
      Src: /src/nss/lib/ckfw/wrap.c:4809,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 76
    argCount: 6
    argNames:
    - fwInstance
    - hSession
    - pMechanism
    - pTemplate
    - ulCount
    - phKey
    argTypes:
    - NSSCKFWInstance*
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    - CK_OBJECT_HANDLE_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4848
      start: 4749
    functionDepth: 2
    functionLinenumber: 4749
    functionLinenumberEnd: 4848
    functionName: NSSCKFWC_GenerateKey
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWToken_GetMechanism
    - nssCKFWInstance_CreateObjectHandle
    - nssCKFWSlot_GetToken
    - nssCKFWMechanism_GenerateKey
    - nssCKFWMechanism_Destroy
    - nssCKFWSession_GetFWSlot
    - nssCKFWSlot_GetTokenPresent
    - nssCKFWInstance_ResolveSessionHandle
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_GenerateKey(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SESSION_HANDLE hSession,\n    CK_MECHANISM_PTR pMechanism,\n    CK_ATTRIBUTE_PTR
      pTemplate,\n    CK_ULONG ulCount,\n    CK_OBJECT_HANDLE_PTR phKey)"
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_ResolveSessionHandle
      Src: /src/nss/lib/ckfw/wrap.c:4879,1
    - Dst: nssCKFWSession_GetFWSlot
      Src: /src/nss/lib/ckfw/wrap.c:4885,1
    - Dst: nssCKFWSlot_GetTokenPresent
      Src: /src/nss/lib/ckfw/wrap.c:4891,1
    - Dst: nssCKFWSlot_GetToken
      Src: /src/nss/lib/ckfw/wrap.c:4896,1
    - Dst: nssCKFWToken_GetMechanism
      Src: /src/nss/lib/ckfw/wrap.c:4901,1
    - Dst: nssCKFWMechanism_GenerateKeyPair
      Src: /src/nss/lib/ckfw/wrap.c:4906,1
    - Dst: nssCKFWMechanism_Destroy
      Src: /src/nss/lib/ckfw/wrap.c:4917,1
    - Dst: nssCKFWInstance_CreateObjectHandle
      Src: /src/nss/lib/ckfw/wrap.c:4921,1
    - Dst: nssCKFWInstance_CreateObjectHandle
      Src: /src/nss/lib/ckfw/wrap.c:4927,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 82
    argCount: 9
    argNames:
    - fwInstance
    - hSession
    - pMechanism
    - pPublicKeyTemplate
    - ulPublicKeyAttributeCount
    - pPrivateKeyTemplate
    - ulPrivateKeyAttributeCount
    - phPublicKey
    - phPrivateKey
    argTypes:
    - NSSCKFWInstance*
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    - CK_OBJECT_HANDLE_PTR
    - CK_OBJECT_HANDLE_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4968
      start: 4854
    functionDepth: 3
    functionLinenumber: 4854
    functionLinenumberEnd: 4968
    functionName: NSSCKFWC_GenerateKeyPair
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWToken_GetMechanism
    - nssCKFWInstance_CreateObjectHandle
    - nssCKFWSlot_GetToken
    - nssCKFWMechanism_Destroy
    - nssCKFWSession_GetFWSlot
    - nssCKFWSlot_GetTokenPresent
    - nssCKFWInstance_ResolveSessionHandle
    - nssCKFWMechanism_GenerateKeyPair
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_GenerateKeyPair(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SESSION_HANDLE hSession,\n    CK_MECHANISM_PTR pMechanism,\n    CK_ATTRIBUTE_PTR
      pPublicKeyTemplate,\n    CK_ULONG ulPublicKeyAttributeCount,\n    CK_ATTRIBUTE_PTR
      pPrivateKeyTemplate,\n    CK_ULONG ulPrivateKeyAttributeCount,\n    CK_OBJECT_HANDLE_PTR
      phPublicKey,\n    CK_OBJECT_HANDLE_PTR phPrivateKey)"
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_ResolveSessionHandle
      Src: /src/nss/lib/ckfw/wrap.c:4999,1
    - Dst: nssCKFWInstance_ResolveObjectHandle
      Src: /src/nss/lib/ckfw/wrap.c:5005,1
    - Dst: nssCKFWInstance_ResolveObjectHandle
      Src: /src/nss/lib/ckfw/wrap.c:5012,1
    - Dst: nssCKFWSession_GetFWSlot
      Src: /src/nss/lib/ckfw/wrap.c:5018,1
    - Dst: nssCKFWSlot_GetTokenPresent
      Src: /src/nss/lib/ckfw/wrap.c:5024,1
    - Dst: nssCKFWSlot_GetToken
      Src: /src/nss/lib/ckfw/wrap.c:5029,1
    - Dst: nssCKFWToken_GetMechanism
      Src: /src/nss/lib/ckfw/wrap.c:5034,1
    - Dst: nssCKFWMechanism_GetWrapKeyLength
      Src: /src/nss/lib/ckfw/wrap.c:5042,1
    - Dst: nssCKFWMechanism_Destroy
      Src: /src/nss/lib/ckfw/wrap.c:5050,1
    - Dst: nssCKFWMechanism_Destroy
      Src: /src/nss/lib/ckfw/wrap.c:5055,1
    - Dst: nssCKFWMechanism_Destroy
      Src: /src/nss/lib/ckfw/wrap.c:5060,1
    - Dst: nssCKFWMechanism_WrapKey
      Src: /src/nss/lib/ckfw/wrap.c:5068,1
    - Dst: nssCKFWMechanism_Destroy
      Src: /src/nss/lib/ckfw/wrap.c:5076,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 107
    argCount: 7
    argNames:
    - fwInstance
    - hSession
    - pMechanism
    - hWrappingKey
    - hKey
    - pWrappedKey
    - pulWrappedKeyLen
    argTypes:
    - NSSCKFWInstance*
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_OBJECT_HANDLE
    - CK_OBJECT_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5119
      start: 4974
    functionDepth: 2
    functionLinenumber: 4974
    functionLinenumberEnd: 5119
    functionName: NSSCKFWC_WrapKey
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWToken_GetMechanism
    - nssCKFWSlot_GetToken
    - nssCKFWInstance_ResolveObjectHandle
    - nssCKFWMechanism_GetWrapKeyLength
    - nssCKFWMechanism_Destroy
    - nssCKFWSession_GetFWSlot
    - nssCKFWMechanism_WrapKey
    - nssCKFWSlot_GetTokenPresent
    - nssCKFWInstance_ResolveSessionHandle
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_WrapKey(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SESSION_HANDLE hSession,\n    CK_MECHANISM_PTR pMechanism,\n    CK_OBJECT_HANDLE
      hWrappingKey,\n    CK_OBJECT_HANDLE hKey,\n    CK_BYTE_PTR pWrappedKey,\n    CK_ULONG_PTR
      pulWrappedKeyLen)"
  - BBCount: 47
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_ResolveSessionHandle
      Src: /src/nss/lib/ckfw/wrap.c:5151,1
    - Dst: nssCKFWInstance_ResolveObjectHandle
      Src: /src/nss/lib/ckfw/wrap.c:5157,1
    - Dst: nssCKFWSession_GetFWSlot
      Src: /src/nss/lib/ckfw/wrap.c:5164,1
    - Dst: nssCKFWSlot_GetTokenPresent
      Src: /src/nss/lib/ckfw/wrap.c:5170,1
    - Dst: nssCKFWSlot_GetToken
      Src: /src/nss/lib/ckfw/wrap.c:5175,1
    - Dst: nssCKFWToken_GetMechanism
      Src: /src/nss/lib/ckfw/wrap.c:5180,1
    - Dst: nssCKFWMechanism_UnwrapKey
      Src: /src/nss/lib/ckfw/wrap.c:5188,1
    - Dst: nssCKFWMechanism_Destroy
      Src: /src/nss/lib/ckfw/wrap.c:5198,1
    - Dst: nssCKFWInstance_CreateObjectHandle
      Src: /src/nss/lib/ckfw/wrap.c:5202,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 106
    argCount: 9
    argNames:
    - fwInstance
    - hSession
    - pMechanism
    - hUnwrappingKey
    - pWrappedKey
    - ulWrappedKeyLen
    - pTemplate
    - ulAttributeCount
    - phKey
    argTypes:
    - NSSCKFWInstance*
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_OBJECT_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    - CK_OBJECT_HANDLE_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5263
      start: 5125
    functionDepth: 2
    functionLinenumber: 5125
    functionLinenumberEnd: 5263
    functionName: NSSCKFWC_UnwrapKey
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWToken_GetMechanism
    - nssCKFWInstance_CreateObjectHandle
    - nssCKFWSlot_GetToken
    - nssCKFWInstance_ResolveObjectHandle
    - nssCKFWMechanism_Destroy
    - nssCKFWSession_GetFWSlot
    - nssCKFWMechanism_UnwrapKey
    - nssCKFWSlot_GetTokenPresent
    - nssCKFWInstance_ResolveSessionHandle
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_UnwrapKey(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SESSION_HANDLE hSession,\n    CK_MECHANISM_PTR pMechanism,\n    CK_OBJECT_HANDLE
      hUnwrappingKey,\n    CK_BYTE_PTR pWrappedKey,\n    CK_ULONG ulWrappedKeyLen,\n
      \   CK_ATTRIBUTE_PTR pTemplate,\n    CK_ULONG ulAttributeCount,\n    CK_OBJECT_HANDLE_PTR
      phKey)"
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_ResolveSessionHandle
      Src: /src/nss/lib/ckfw/wrap.c:5292,1
    - Dst: nssCKFWInstance_ResolveObjectHandle
      Src: /src/nss/lib/ckfw/wrap.c:5298,1
    - Dst: nssCKFWSession_GetFWSlot
      Src: /src/nss/lib/ckfw/wrap.c:5304,1
    - Dst: nssCKFWSlot_GetTokenPresent
      Src: /src/nss/lib/ckfw/wrap.c:5310,1
    - Dst: nssCKFWSlot_GetToken
      Src: /src/nss/lib/ckfw/wrap.c:5315,1
    - Dst: nssCKFWToken_GetMechanism
      Src: /src/nss/lib/ckfw/wrap.c:5320,1
    - Dst: nssCKFWMechanism_DeriveKey
      Src: /src/nss/lib/ckfw/wrap.c:5325,1
    - Dst: nssCKFWMechanism_Destroy
      Src: /src/nss/lib/ckfw/wrap.c:5334,1
    - Dst: nssCKFWInstance_CreateObjectHandle
      Src: /src/nss/lib/ckfw/wrap.c:5338,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 86
    argCount: 7
    argNames:
    - fwInstance
    - hSession
    - pMechanism
    - hBaseKey
    - pTemplate
    - ulAttributeCount
    - phKey
    argTypes:
    - NSSCKFWInstance*
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_OBJECT_HANDLE
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    - CK_OBJECT_HANDLE_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5381
      start: 5269
    functionDepth: 2
    functionLinenumber: 5269
    functionLinenumberEnd: 5381
    functionName: NSSCKFWC_DeriveKey
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWToken_GetMechanism
    - nssCKFWInstance_CreateObjectHandle
    - nssCKFWSlot_GetToken
    - nssCKFWInstance_ResolveObjectHandle
    - nssCKFWMechanism_DeriveKey
    - nssCKFWMechanism_Destroy
    - nssCKFWSession_GetFWSlot
    - nssCKFWSlot_GetTokenPresent
    - nssCKFWInstance_ResolveSessionHandle
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_DeriveKey(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SESSION_HANDLE hSession,\n    CK_MECHANISM_PTR pMechanism,\n    CK_OBJECT_HANDLE
      hBaseKey,\n    CK_ATTRIBUTE_PTR pTemplate,\n    CK_ULONG ulAttributeCount,\n
      \   CK_OBJECT_HANDLE_PTR phKey)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_ResolveSessionHandle
      Src: /src/nss/lib/ckfw/wrap.c:5403,1
    - Dst: nssCKFWSession_SeedRandom
      Src: /src/nss/lib/ckfw/wrap.c:5419,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 52
    argCount: 4
    argNames:
    - fwInstance
    - hSession
    - pSeed
    - ulSeedLen
    argTypes:
    - NSSCKFWInstance*
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5456
      start: 5387
    functionDepth: 1
    functionLinenumber: 5387
    functionLinenumberEnd: 5456
    functionName: NSSCKFWC_SeedRandom
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWInstance_ResolveSessionHandle
    - nssCKFWSession_SeedRandom
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_SeedRandom(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SESSION_HANDLE hSession,\n    CK_BYTE_PTR pSeed,\n    CK_ULONG ulSeedLen)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_ResolveSessionHandle
      Src: /src/nss/lib/ckfw/wrap.c:5478,1
    - Dst: nsslibc_memset
      Src: /src/nss/lib/ckfw/wrap.c:5492,1
    - Dst: nssCKFWSession_GetRandom
      Src: /src/nss/lib/ckfw/wrap.c:5497,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 52
    argCount: 4
    argNames:
    - fwInstance
    - hSession
    - pRandomData
    - ulRandomLen
    argTypes:
    - NSSCKFWInstance*
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5533
      start: 5462
    functionDepth: 1
    functionLinenumber: 5462
    functionLinenumberEnd: 5533
    functionName: NSSCKFWC_GenerateRandom
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached:
    - nssCKFWSession_GetRandom
    - nssCKFWInstance_ResolveSessionHandle
    - nsslibc_memset
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_GenerateRandom(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SESSION_HANDLE hSession,\n    CK_BYTE_PTR pRandomData,\n    CK_ULONG
      ulRandomLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fwInstance
    - hSession
    argTypes:
    - NSSCKFWInstance*
    - CK_SESSION_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5545
      start: 5539
    functionDepth: 0
    functionLinenumber: 5539
    functionLinenumberEnd: 5545
    functionName: NSSCKFWC_GetFunctionStatus
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_GetFunctionStatus(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SESSION_HANDLE hSession)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fwInstance
    - hSession
    argTypes:
    - NSSCKFWInstance*
    - CK_SESSION_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5557
      start: 5551
    functionDepth: 0
    functionLinenumber: 5551
    functionLinenumberEnd: 5557
    functionName: NSSCKFWC_CancelFunction
    functionSourceFile: /src/nss/lib/ckfw/wrap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWC_CancelFunction(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_SESSION_HANDLE hSession)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fwMutex
    argTypes:
    - NSSCKFWMutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 54
    functionName: mutex_add_pointer
    functionSourceFile: /src/nss/lib/ckfw/mutex.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV mutex_add_pointer(\n    const NSSCKFWMutex *fwMutex)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fwMutex
    argTypes:
    - NSSCKFWMutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: mutex_remove_pointer
    functionSourceFile: /src/nss/lib/ckfw/mutex.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV mutex_remove_pointer(\n    const NSSCKFWMutex *fwMutex)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fwMutex
    argTypes:
    - NSSCKFWMutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 68
    functionName: nssCKFWMutex_verifyPointer
    functionSourceFile: /src/nss/lib/ckfw/mutex.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWMutex_verifyPointer(\n    const NSSCKFWMutex
      *fwMutex)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: nss_ZNEW
      Src: /src/nss/lib/ckfw/mutex.c:85,1
    - Dst: PR_NewLock
      Src: /src/nss/lib/ckfw/mutex.c:93,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/ckfw/mutex.c:100,1
    - Dst: mutex_add_pointer
      Src: /src/nss/lib/ckfw/mutex.c:105,1
    - Dst: PR_DestroyLock
      Src: /src/nss/lib/ckfw/mutex.c:108,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/ckfw/mutex.c:110,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 116
    functionName: "NSSCKFWMutex *\nnssCKFWMutex_Create(\n    CK_C_INITIALIZE_ARGS_PTR
      pInitArgs,\n    CryptokiLockingState LockingState,\n    NSSArena *arena,\n    CK_RV
      *pError)"
    functionSourceFile: /src/nss/lib/ckfw/mutex.c
    functionUses: 0
    functionsReached:
    - mutex_add_pointer
    - nss_ZNEW
    - nss_ZFreeIf
    - PR_NewLock
    - PR_DestroyLock
    linkageType: ''
    returnType: NSS_EXTERN
    signature: "NSS_EXTERN NSSCKFWMutex *\nnssCKFWMutex_Create(\n    CK_C_INITIALIZE_ARGS_PTR
      pInitArgs,\n    CryptokiLockingState LockingState,\n    NSSArena *arena,\n    CK_RV
      *pError)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWMutex_verifyPointer
      Src: /src/nss/lib/ckfw/mutex.c:129,1
    - Dst: PR_DestroyLock
      Src: /src/nss/lib/ckfw/mutex.c:136,1
    - Dst: mutex_remove_pointer
      Src: /src/nss/lib/ckfw/mutex.c:140,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/ckfw/mutex.c:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - mutex
    argTypes:
    - NSSCKFWMutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 145
    functionName: nssCKFWMutex_Destroy
    functionSourceFile: /src/nss/lib/ckfw/mutex.c
    functionUses: 6
    functionsReached:
    - nss_ZFreeIf
    - nssCKFWMutex_verifyPointer
    - PR_DestroyLock
    - mutex_remove_pointer
    linkageType: ''
    returnType: NSS_EXTERN
    signature: "NSS_EXTERN nssCKFWMutex_Destroy(\n    NSSCKFWMutex *mutex)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWMutex_verifyPointer
      Src: /src/nss/lib/ckfw/mutex.c:156,1
    - Dst: PR_Lock
      Src: /src/nss/lib/ckfw/mutex.c:162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - mutex
    argTypes:
    - NSSCKFWMutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 166
    functionName: nssCKFWMutex_Lock
    functionSourceFile: /src/nss/lib/ckfw/mutex.c
    functionUses: 27
    functionsReached:
    - PR_Lock
    - nssCKFWMutex_verifyPointer
    linkageType: ''
    returnType: NSS_EXTERN
    signature: "NSS_EXTERN nssCKFWMutex_Lock(\n    NSSCKFWMutex *mutex)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWMutex_verifyPointer
      Src: /src/nss/lib/ckfw/mutex.c:178,1
    - Dst: PR_Unlock
      Src: /src/nss/lib/ckfw/mutex.c:188,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - mutex
    argTypes:
    - NSSCKFWMutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 194
    functionName: nssCKFWMutex_Unlock
    functionSourceFile: /src/nss/lib/ckfw/mutex.c
    functionUses: 27
    functionsReached:
    - nssCKFWMutex_verifyPointer
    - PR_Unlock
    linkageType: ''
    returnType: NSS_EXTERN
    signature: "NSS_EXTERN nssCKFWMutex_Unlock(\n    NSSCKFWMutex *mutex)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWMutex_verifyPointer
      Src: /src/nss/lib/ckfw/mutex.c:205,1
    - Dst: nssCKFWMutex_Destroy
      Src: /src/nss/lib/ckfw/mutex.c:211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mutex
    argTypes:
    - NSSCKFWMutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 200
    functionDepth: 2
    functionLinenumber: 200
    functionLinenumberEnd: 212
    functionName: NSSCKFWMutex_Destroy
    functionSourceFile: /src/nss/lib/ckfw/mutex.c
    functionUses: 0
    functionsReached:
    - nssCKFWMutex_Destroy
    - nssCKFWMutex_verifyPointer
    linkageType: ''
    returnType: NSS_EXTERN
    signature: "NSS_EXTERN NSSCKFWMutex_Destroy(\n    NSSCKFWMutex *mutex)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWMutex_verifyPointer
      Src: /src/nss/lib/ckfw/mutex.c:223,1
    - Dst: nssCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/mutex.c:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mutex
    argTypes:
    - NSSCKFWMutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 230
    functionName: NSSCKFWMutex_Lock
    functionSourceFile: /src/nss/lib/ckfw/mutex.c
    functionUses: 0
    functionsReached:
    - nssCKFWMutex_verifyPointer
    - nssCKFWMutex_Lock
    linkageType: ''
    returnType: NSS_EXTERN
    signature: "NSS_EXTERN NSSCKFWMutex_Lock(\n    NSSCKFWMutex *mutex)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWMutex_verifyPointer
      Src: /src/nss/lib/ckfw/mutex.c:241,1
    - Dst: nssCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/mutex.c:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mutex
    argTypes:
    - NSSCKFWMutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 248
    functionName: NSSCKFWMutex_Unlock
    functionSourceFile: /src/nss/lib/ckfw/mutex.c
    functionUses: 0
    functionsReached:
    - nssCKFWMutex_verifyPointer
    - nssCKFWMutex_Unlock
    linkageType: ''
    returnType: NSS_EXTERN
    signature: "NSS_EXTERN NSSCKFWMutex_Unlock(\n    NSSCKFWMutex *mutex)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fwSession
    argTypes:
    - NSSCKFWSession*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 104
    functionName: session_add_pointer
    functionSourceFile: /src/nss/lib/ckfw/session.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV session_add_pointer(\n    const NSSCKFWSession *fwSession)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fwSession
    argTypes:
    - NSSCKFWSession*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 111
    functionName: session_remove_pointer
    functionSourceFile: /src/nss/lib/ckfw/session.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV session_remove_pointer(\n    const NSSCKFWSession *fwSession)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fwSession
    argTypes:
    - NSSCKFWSession*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 118
    functionName: nssCKFWSession_verifyPointer
    functionSourceFile: /src/nss/lib/ckfw/session.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWSession_verifyPointer(\n    const NSSCKFWSession
      *fwSession)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWToken_verifyPointer
      Src: /src/nss/lib/ckfw/session.c:143,1
    - Dst: NSSArena_Create
      Src: /src/nss/lib/ckfw/session.c:149,1
    - Dst: nss_ZNEW
      Src: /src/nss/lib/ckfw/session.c:155,1
    - Dst: nssCKFWToken_GetMDToken
      Src: /src/nss/lib/ckfw/session.c:164,1
    - Dst: nssCKFWToken_GetFWSlot
      Src: /src/nss/lib/ckfw/session.c:166,1
    - Dst: nssCKFWSlot_GetFWInstance
      Src: /src/nss/lib/ckfw/session.c:167,1
    - Dst: nssCKFWSlot_GetMDInstance
      Src: /src/nss/lib/ckfw/session.c:168,1
    - Dst: nssCKFWHash_Create
      Src: /src/nss/lib/ckfw/session.c:176,1
    - Dst: session_add_pointer
      Src: /src/nss/lib/ckfw/session.c:185,1
    - Dst: nssCKFWHash_Destroy
      Src: /src/nss/lib/ckfw/session.c:196,1
    - Dst: NSSArena_Destroy
      Src: /src/nss/lib/ckfw/session.c:198,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 202
    functionName: "NSSCKFWSession *\nnssCKFWSession_Create(\n    NSSCKFWToken *fwToken,\n
      \   CK_BBOOL rw,\n    CK_VOID_PTR pApplication,\n    CK_NOTIFY Notify,\n    CK_RV
      *pError)"
    functionSourceFile: /src/nss/lib/ckfw/session.c
    functionUses: 0
    functionsReached:
    - nssCKFWHash_Destroy
    - session_add_pointer
    - nssCKFWHash_Create
    - nssCKFWToken_GetFWSlot
    - nssCKFWSlot_GetMDInstance
    - nss_ZNEW
    - nssCKFWToken_verifyPointer
    - nssCKFWSlot_GetFWInstance
    - nssCKFWToken_GetMDToken
    - NSSArena_Create
    - NSSArena_Destroy
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWSession *\nnssCKFWSession_Create(\n    NSSCKFWToken
      *fwToken,\n    CK_BBOOL rw,\n    CK_VOID_PTR pApplication,\n    CK_NOTIFY Notify,\n
      \   CK_RV *pError)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWObject_Finalize
      Src: /src/nss/lib/ckfw/session.c:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - value
    - closure
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 212
    functionName: nss_ckfw_session_object_destroy_iterator
    functionSourceFile: /src/nss/lib/ckfw/session.c
    functionUses: 0
    functionsReached:
    - nssCKFWObject_Finalize
    linkageType: ''
    returnType: void
    signature: "void nss_ckfw_session_object_destroy_iterator(\n    const void *key,\n
      \   void *value,\n    void *closure)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSession_verifyPointer
      Src: /src/nss/lib/ckfw/session.c:228,1
    - Dst: nssCKFWToken_RemoveSession
      Src: /src/nss/lib/ckfw/session.c:235,1
    - Dst: nssCKFWHash_Iterate
      Src: /src/nss/lib/ckfw/session.c:245,1
    - Dst: nssCKFWCryptoOperation_Destroy
      Src: /src/nss/lib/ckfw/session.c:251,1
    - Dst: session_remove_pointer
      Src: /src/nss/lib/ckfw/session.c:256,1
    - Dst: nssCKFWHash_Destroy
      Src: /src/nss/lib/ckfw/session.c:258,1
    - Dst: NSSArena_Destroy
      Src: /src/nss/lib/ckfw/session.c:259,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - fwSession
    - removeFromTokenHash
    argTypes:
    - NSSCKFWSession*
    - CK_BBOOL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 262
    functionName: nssCKFWSession_Destroy
    functionSourceFile: /src/nss/lib/ckfw/session.c
    functionUses: 3
    functionsReached:
    - session_remove_pointer
    - nssCKFWHash_Destroy
    - nssCKFWCryptoOperation_Destroy
    - nssCKFWHash_Iterate
    - nssCKFWSession_verifyPointer
    - nssCKFWToken_RemoveSession
    - NSSArena_Destroy
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWSession_Destroy(\n    NSSCKFWSession *fwSession,\n
      \   CK_BBOOL removeFromTokenHash)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSession_verifyPointer
      Src: /src/nss/lib/ckfw/session.c:273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 279
    functionName: "NSSCKMDSession *\nnssCKFWSession_GetMDSession(\n    NSSCKFWSession
      *fwSession)"
    functionSourceFile: /src/nss/lib/ckfw/session.c
    functionUses: 0
    functionsReached:
    - nssCKFWSession_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKMDSession *\nnssCKFWSession_GetMDSession(\n    NSSCKFWSession
      *fwSession)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSession_verifyPointer
      Src: /src/nss/lib/ckfw/session.c:295,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - fwSession
    - pError
    argTypes:
    - NSSCKFWSession*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 302
    functionName: nssCKFWSession_GetArena
    functionSourceFile: /src/nss/lib/ckfw/session.c
    functionUses: 0
    functionsReached:
    - nssCKFWSession_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nnssCKFWSession_GetArena(\n    NSSCKFWSession *fwSession,\n
      \   CK_RV *pError)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSession_verifyPointer
      Src: /src/nss/lib/ckfw/session.c:317,1
    - Dst: nssCKFWInstance_FindSessionHandle
      Src: /src/nss/lib/ckfw/session.c:327,1
    - Dst: NSSCKFWSession*::Notify
      Src: /src/nss/lib/ckfw/session.c:332,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - fwSession
    - event
    argTypes:
    - NSSCKFWSession*
    - CK_NOTIFICATION
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 335
    functionName: nssCKFWSession_CallNotification
    functionSourceFile: /src/nss/lib/ckfw/session.c
    functionUses: 0
    functionsReached:
    - NSSCKFWSession*::Notify
    - nssCKFWSession_verifyPointer
    - nssCKFWInstance_FindSessionHandle
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWSession_CallNotification(\n    NSSCKFWSession
      *fwSession,\n    CK_NOTIFICATION event)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSession_verifyPointer
      Src: /src/nss/lib/ckfw/session.c:346,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fwSession
    argTypes:
    - NSSCKFWSession*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 352
    functionName: nssCKFWSession_IsRWSession
    functionSourceFile: /src/nss/lib/ckfw/session.c
    functionUses: 2
    functionsReached:
    - nssCKFWSession_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWSession_IsRWSession(\n    NSSCKFWSession *fwSession)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSession_verifyPointer
      Src: /src/nss/lib/ckfw/session.c:365,1
    - Dst: nssCKFWToken_GetSessionState
      Src: /src/nss/lib/ckfw/session.c:370,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - fwSession
    argTypes:
    - NSSCKFWSession*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 358
    functionDepth: 2
    functionLinenumber: 358
    functionLinenumberEnd: 382
    functionName: nssCKFWSession_IsSO
    functionSourceFile: /src/nss/lib/ckfw/session.c
    functionUses: 0
    functionsReached:
    - nssCKFWToken_GetSessionState
    - nssCKFWSession_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWSession_IsSO(\n    NSSCKFWSession *fwSession)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSession_verifyPointer
      Src: /src/nss/lib/ckfw/session.c:393,1
    - Dst: nssCKFWToken_GetFWSlot
      Src: /src/nss/lib/ckfw/session.c:398,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 399
    functionName: "NSSCKFWSlot *\nnssCKFWSession_GetFWSlot(\n    NSSCKFWSession *fwSession)"
    functionSourceFile: /src/nss/lib/ckfw/session.c
    functionUses: 0
    functionsReached:
    - nssCKFWSession_verifyPointer
    - nssCKFWToken_GetFWSlot
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWSlot *\nnssCKFWSession_GetFWSlot(\n    NSSCKFWSession
      *fwSession)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSession_verifyPointer
      Src: /src/nss/lib/ckfw/session.c:410,1
    - Dst: nssCKFWToken_GetSessionState
      Src: /src/nss/lib/ckfw/session.c:415,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fwSession
    argTypes:
    - NSSCKFWSession*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 405
    functionDepth: 2
    functionLinenumber: 405
    functionLinenumberEnd: 416
    functionName: nssCKFWSession_GetSessionState
    functionSourceFile: /src/nss/lib/ckfw/session.c
    functionUses: 1
    functionsReached:
    - nssCKFWToken_GetSessionState
    - nssCKFWSession_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWSession_GetSessionState(\n    NSSCKFWSession
      *fwSession)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSession_verifyPointer
      Src: /src/nss/lib/ckfw/session.c:432,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - fwSession
    - fwFindObjects
    argTypes:
    - NSSCKFWSession*
    - NSSCKFWFindObjects*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 448
    functionName: nssCKFWSession_SetFWFindObjects
    functionSourceFile: /src/nss/lib/ckfw/session.c
    functionUses: 2
    functionsReached:
    - nssCKFWSession_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWSession_SetFWFindObjects(\n    NSSCKFWSession
      *fwSession,\n    NSSCKFWFindObjects *fwFindObjects)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSession_verifyPointer
      Src: /src/nss/lib/ckfw/session.c:464,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 476
    functionName: "NSSCKFWFindObjects *\nnssCKFWSession_GetFWFindObjects(\n    NSSCKFWSession
      *fwSession,\n    CK_RV *pError)"
    functionSourceFile: /src/nss/lib/ckfw/session.c
    functionUses: 0
    functionsReached:
    - nssCKFWSession_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWFindObjects *\nnssCKFWSession_GetFWFindObjects(\n
      \   NSSCKFWSession *fwSession,\n    CK_RV *pError)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSession_verifyPointer
      Src: /src/nss/lib/ckfw/session.c:492,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - fwSession
    - mdSession
    argTypes:
    - NSSCKFWSession*
    - NSSCKMDSession*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 482
    functionDepth: 1
    functionLinenumber: 482
    functionLinenumberEnd: 509
    functionName: nssCKFWSession_SetMDSession
    functionSourceFile: /src/nss/lib/ckfw/session.c
    functionUses: 1
    functionsReached:
    - nssCKFWSession_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWSession_SetMDSession(\n    NSSCKFWSession *fwSession,\n
      \   NSSCKMDSession *mdSession)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSession_verifyPointer
      Src: /src/nss/lib/ckfw/session.c:525,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - fwSession
    - hSession
    argTypes:
    - NSSCKFWSession*
    - CK_SESSION_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 515
    functionDepth: 1
    functionLinenumber: 515
    functionLinenumberEnd: 538
    functionName: nssCKFWSession_SetHandle
    functionSourceFile: /src/nss/lib/ckfw/session.c
    functionUses: 0
    functionsReached:
    - nssCKFWSession_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWSession_SetHandle(\n    NSSCKFWSession *fwSession,\n
      \   CK_SESSION_HANDLE hSession)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSession_verifyPointer
      Src: /src/nss/lib/ckfw/session.c:549,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fwSession
    argTypes:
    - NSSCKFWSession*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 544
    functionDepth: 1
    functionLinenumber: 544
    functionLinenumberEnd: 555
    functionName: CK_SESSION_HANDLE::nssCKFWSession_GetHandle
    functionSourceFile: /src/nss/lib/ckfw/session.c
    functionUses: 0
    functionsReached:
    - nssCKFWSession_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT CK_SESSION_HANDLE\nnssCKFWSession_GetHandle(\n    NSSCKFWSession
      *fwSession)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSession_verifyPointer
      Src: /src/nss/lib/ckfw/session.c:569,1
    - Dst: nssCKFWHash_Add
      Src: /src/nss/lib/ckfw/session.c:575,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - fwSession
    - fwObject
    argTypes:
    - NSSCKFWSession*
    - NSSCKFWObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 561
    functionDepth: 1
    functionLinenumber: 561
    functionLinenumberEnd: 579
    functionName: nssCKFWSession_RegisterSessionObject
    functionSourceFile: /src/nss/lib/ckfw/session.c
    functionUses: 1
    functionsReached:
    - nssCKFWSession_verifyPointer
    - nssCKFWHash_Add
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWSession_RegisterSessionObject(\n    NSSCKFWSession
      *fwSession,\n    NSSCKFWObject *fwObject)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSession_verifyPointer
      Src: /src/nss/lib/ckfw/session.c:591,1
    - Dst: nssCKFWHash_Remove
      Src: /src/nss/lib/ckfw/session.c:597,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - fwSession
    - fwObject
    argTypes:
    - NSSCKFWSession*
    - NSSCKFWObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 585
    functionDepth: 1
    functionLinenumber: 585
    functionLinenumberEnd: 601
    functionName: nssCKFWSession_DeregisterSessionObject
    functionSourceFile: /src/nss/lib/ckfw/session.c
    functionUses: 3
    functionsReached:
    - nssCKFWHash_Remove
    - nssCKFWSession_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWSession_DeregisterSessionObject(\n    NSSCKFWSession
      *fwSession,\n    NSSCKFWObject *fwObject)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSession_verifyPointer
      Src: /src/nss/lib/ckfw/session.c:612,1
    - Dst: NSSCKFWSession*::mdSession::GetDeviceError
      Src: /src/nss/lib/ckfw/session.c:625,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - fwSession
    argTypes:
    - NSSCKFWSession*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 607
    functionDepth: 1
    functionLinenumber: 607
    functionLinenumberEnd: 628
    functionName: nssCKFWSession_GetDeviceError
    functionSourceFile: /src/nss/lib/ckfw/session.c
    functionUses: 1
    functionsReached:
    - nssCKFWSession_verifyPointer
    - NSSCKFWSession*::mdSession::GetDeviceError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWSession_GetDeviceError(\n    NSSCKFWSession *fwSession)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSession_verifyPointer
      Src: /src/nss/lib/ckfw/session.c:645,1
    - Dst: nssCKFWToken_GetHasProtectedAuthenticationPath
      Src: /src/nss/lib/ckfw/session.c:659,1
    - Dst: nssCKFWToken_GetSessionState
      Src: /src/nss/lib/ckfw/session.c:669,1
    - Dst: NSSCKFWSession*::mdSession::Login
      Src: /src/nss/lib/ckfw/session.c:736,1
    - Dst: nssCKFWToken_SetSessionState
      Src: /src/nss/lib/ckfw/session.c:744,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 65
    argCount: 3
    argNames:
    - fwSession
    - userType
    - pin
    argTypes:
    - NSSCKFWSession*
    - CK_USER_TYPE
    - NSSItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 634
    functionDepth: 2
    functionLinenumber: 634
    functionLinenumberEnd: 746
    functionName: nssCKFWSession_Login
    functionSourceFile: /src/nss/lib/ckfw/session.c
    functionUses: 1
    functionsReached:
    - NSSCKFWSession*::mdSession::Login
    - nssCKFWToken_SetSessionState
    - nssCKFWToken_GetHasProtectedAuthenticationPath
    - nssCKFWToken_GetSessionState
    - nssCKFWSession_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWSession_Login(\n    NSSCKFWSession *fwSession,\n
      \   CK_USER_TYPE userType,\n    NSSItem *pin)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSession_verifyPointer
      Src: /src/nss/lib/ckfw/session.c:761,1
    - Dst: nssCKFWToken_GetSessionState
      Src: /src/nss/lib/ckfw/session.c:771,1
    - Dst: NSSCKFWSession*::mdSession::Logout
      Src: /src/nss/lib/ckfw/session.c:805,1
    - Dst: nssCKFWToken_SetSessionState
      Src: /src/nss/lib/ckfw/session.c:817,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 1
    argNames:
    - fwSession
    argTypes:
    - NSSCKFWSession*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 752
    functionDepth: 2
    functionLinenumber: 752
    functionLinenumberEnd: 819
    functionName: nssCKFWSession_Logout
    functionSourceFile: /src/nss/lib/ckfw/session.c
    functionUses: 1
    functionsReached:
    - nssCKFWToken_GetSessionState
    - nssCKFWSession_verifyPointer
    - NSSCKFWSession*::mdSession::Logout
    - nssCKFWToken_SetSessionState
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWSession_Logout(\n    NSSCKFWSession *fwSession)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSession_verifyPointer
      Src: /src/nss/lib/ckfw/session.c:834,1
    - Dst: nssCKFWToken_GetSessionState
      Src: /src/nss/lib/ckfw/session.c:844,1
    - Dst: nssCKFWToken_GetHasProtectedAuthenticationPath
      Src: /src/nss/lib/ckfw/session.c:850,1
    - Dst: NSSCKFWSession*::mdSession::InitPIN
      Src: /src/nss/lib/ckfw/session.c:860,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - fwSession
    - pin
    argTypes:
    - NSSCKFWSession*
    - NSSItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 825
    functionDepth: 2
    functionLinenumber: 825
    functionLinenumberEnd: 865
    functionName: nssCKFWSession_InitPIN
    functionSourceFile: /src/nss/lib/ckfw/session.c
    functionUses: 1
    functionsReached:
    - nssCKFWToken_GetSessionState
    - nssCKFWSession_verifyPointer
    - nssCKFWToken_GetHasProtectedAuthenticationPath
    - NSSCKFWSession*::mdSession::InitPIN
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWSession_InitPIN(\n    NSSCKFWSession *fwSession,\n
      \   NSSItem *pin)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSession_verifyPointer
      Src: /src/nss/lib/ckfw/session.c:880,1
    - Dst: nssCKFWToken_GetHasProtectedAuthenticationPath
      Src: /src/nss/lib/ckfw/session.c:891,1
    - Dst: nssCKFWToken_GetHasProtectedAuthenticationPath
      Src: /src/nss/lib/ckfw/session.c:898,1
    - Dst: NSSCKFWSession*::mdSession::SetPIN
      Src: /src/nss/lib/ckfw/session.c:908,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - fwSession
    - oldPin
    - newPin
    argTypes:
    - NSSCKFWSession*
    - NSSItem*
    - NSSItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 871
    functionDepth: 2
    functionLinenumber: 871
    functionLinenumberEnd: 913
    functionName: nssCKFWSession_SetPIN
    functionSourceFile: /src/nss/lib/ckfw/session.c
    functionUses: 1
    functionsReached:
    - nssCKFWSession_verifyPointer
    - nssCKFWToken_GetHasProtectedAuthenticationPath
    - NSSCKFWSession*::mdSession::SetPIN
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWSession_SetPIN(\n    NSSCKFWSession *fwSession,\n
      \   const NSSItem *oldPin,\n    NSSItem *newPin)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSession_verifyPointer
      Src: /src/nss/lib/ckfw/session.c:932,1
    - Dst: NSSCKFWSession*::mdSession::GetOperationStateLen
      Src: /src/nss/lib/ckfw/session.c:952,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - fwSession
    - pError
    argTypes:
    - NSSCKFWSession*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 919
    functionDepth: 1
    functionLinenumber: 919
    functionLinenumberEnd: 966
    functionName: nssCKFWSession_GetOperationStateLen
    functionSourceFile: /src/nss/lib/ckfw/session.c
    functionUses: 1
    functionsReached:
    - nssCKFWSession_verifyPointer
    - NSSCKFWSession*::mdSession::GetOperationStateLen
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWSession_GetOperationStateLen(\n    NSSCKFWSession
      *fwSession,\n    CK_RV *pError)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSession_verifyPointer
      Src: /src/nss/lib/ckfw/session.c:984,1
    - Dst: nssCKFWSession_GetOperationStateLen
      Src: /src/nss/lib/ckfw/session.c:1011,1
    - Dst: NSSCKFWSession*::mdSession::GetOperationState
      Src: /src/nss/lib/ckfw/session.c:1025,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 2
    argNames:
    - fwSession
    - buffer
    argTypes:
    - NSSCKFWSession*
    - NSSItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 972
    functionDepth: 2
    functionLinenumber: 972
    functionLinenumberEnd: 1047
    functionName: nssCKFWSession_GetOperationState
    functionSourceFile: /src/nss/lib/ckfw/session.c
    functionUses: 1
    functionsReached:
    - NSSCKFWSession*::mdSession::GetOperationState
    - nssCKFWSession_verifyPointer
    - nssCKFWSession_GetOperationStateLen
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWSession_GetOperationState(\n    NSSCKFWSession
      *fwSession,\n    NSSItem *buffer)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSession_verifyPointer
      Src: /src/nss/lib/ckfw/session.c:1069,1
    - Dst: nssCKFWObject_verifyPointer
      Src: /src/nss/lib/ckfw/session.c:1083,1
    - Dst: nssCKFWObject_verifyPointer
      Src: /src/nss/lib/ckfw/session.c:1090,1
    - Dst: nssCKFWObject_GetMDObject
      Src: /src/nss/lib/ckfw/session.c:1123,1
    - Dst: nssCKFWObject_GetMDObject
      Src: /src/nss/lib/ckfw/session.c:1129,1
    - Dst: NSSCKFWSession*::mdSession::SetOperationState
      Src: /src/nss/lib/ckfw/session.c:1134,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 58
    argCount: 4
    argNames:
    - fwSession
    - state
    - encryptionKey
    - authenticationKey
    argTypes:
    - NSSCKFWSession*
    - NSSItem*
    - NSSCKFWObject*
    - NSSCKFWObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1147
      start: 1053
    functionDepth: 1
    functionLinenumber: 1053
    functionLinenumberEnd: 1147
    functionName: nssCKFWSession_SetOperationState
    functionSourceFile: /src/nss/lib/ckfw/session.c
    functionUses: 1
    functionsReached:
    - nssCKFWSession_verifyPointer
    - nssCKFWObject_verifyPointer
    - NSSCKFWSession*::mdSession::SetOperationState
    - nssCKFWObject_GetMDObject
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWSession_SetOperationState(\n    NSSCKFWSession
      *fwSession,\n    NSSItem *state,\n    NSSCKFWObject *encryptionKey,\n    NSSCKFWObject
      *authenticationKey)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nsslibc_memcpy
      Src: /src/nss/lib/ckfw/session.c:1161,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - pTemplate
    - ulAttributeCount
    argTypes:
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1149
    functionDepth: 1
    functionLinenumber: 1149
    functionLinenumberEnd: 1170
    functionName: nss_attributes_form_token_object
    functionSourceFile: /src/nss/lib/ckfw/session.c
    functionUses: 0
    functionsReached:
    - nsslibc_memcpy
    linkageType: ''
    returnType: CK_BBOOL
    signature: "CK_BBOOL nss_attributes_form_token_object(\n    CK_ATTRIBUTE_PTR pTemplate,\n
      \   CK_ULONG ulAttributeCount)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSession_verifyPointer
      Src: /src/nss/lib/ckfw/session.c:1193,1
    - Dst: nss_attributes_form_token_object
      Src: /src/nss/lib/ckfw/session.c:1213,1
    - Dst: nssCKFWToken_GetArena
      Src: /src/nss/lib/ckfw/session.c:1222,1
    - Dst: nssCKFWSession_GetArena
      Src: /src/nss/lib/ckfw/session.c:1234,1
    - Dst: nssCKFWInstance_GetModuleHandlesSessionObjects
      Src: /src/nss/lib/ckfw/session.c:1242,1
    - Dst: nssCKMDSessionObject_Create
      Src: /src/nss/lib/ckfw/session.c:1254,1
    - Dst: mdSession::CreateObject
      Src: /src/nss/lib/ckfw/session.c:1261,1
    - Dst: nssCKFWObject_Create
      Src: /src/nss/lib/ckfw/session.c:1274,1
    - Dst: NSSCKMDObject*::Destroy
      Src: /src/nss/lib/ckfw/session.c:1284,1
    - Dst: nssCKFWHash_Exists
      Src: /src/nss/lib/ckfw/session.c:1293,1
    - Dst: nssCKFWHash_Add
      Src: /src/nss/lib/ckfw/session.c:1294,1
    - Dst: nssCKFWObject_Finalize
      Src: /src/nss/lib/ckfw/session.c:1296,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 83
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1303
      start: 1176
    functionDepth: 2
    functionLinenumber: 1176
    functionLinenumberEnd: 1303
    functionName: "NSSCKFWObject *\nnssCKFWSession_CreateObject(\n    NSSCKFWSession
      *fwSession,\n    CK_ATTRIBUTE_PTR pTemplate,\n    CK_ULONG ulAttributeCount,\n
      \   CK_RV *pError)"
    functionSourceFile: /src/nss/lib/ckfw/session.c
    functionUses: 0
    functionsReached:
    - mdSession::CreateObject
    - NSSCKMDObject*::Destroy
    - nssCKFWHash_Exists
    - nss_attributes_form_token_object
    - nssCKFWObject_Finalize
    - nssCKMDSessionObject_Create
    - nssCKFWHash_Add
    - nssCKFWSession_verifyPointer
    - nssCKFWToken_GetArena
    - nssCKFWObject_Create
    - nssCKFWSession_GetArena
    - nssCKFWInstance_GetModuleHandlesSessionObjects
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWObject *\nnssCKFWSession_CreateObject(\n    NSSCKFWSession
      *fwSession,\n    CK_ATTRIBUTE_PTR pTemplate,\n    CK_ULONG ulAttributeCount,\n
      \   CK_RV *pError)"
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSession_verifyPointer
      Src: /src/nss/lib/ckfw/session.c:1327,1
    - Dst: nssCKFWObject_verifyPointer
      Src: /src/nss/lib/ckfw/session.c:1332,1
    - Dst: nssCKFWObject_IsTokenObject
      Src: /src/nss/lib/ckfw/session.c:1352,1
    - Dst: nsslibc_memcpy
      Src: /src/nss/lib/ckfw/session.c:1358,1
    - Dst: nssCKFWInstance_GetModuleHandlesSessionObjects
      Src: /src/nss/lib/ckfw/session.c:1370,1
    - Dst: nssCKFWObject_GetMDObject
      Src: /src/nss/lib/ckfw/session.c:1377,1
    - Dst: nssCKFWToken_GetArena
      Src: /src/nss/lib/ckfw/session.c:1380,1
    - Dst: nssCKFWSession_GetArena
      Src: /src/nss/lib/ckfw/session.c:1382,1
    - Dst: mdSession::CopyObject
      Src: /src/nss/lib/ckfw/session.c:1391,1
    - Dst: nssCKFWObject_Create
      Src: /src/nss/lib/ckfw/session.c:1402,1
    - Dst: nssCKFWHash_Exists
      Src: /src/nss/lib/ckfw/session.c:1408,1
    - Dst: nssCKFWHash_Add
      Src: /src/nss/lib/ckfw/session.c:1409,1
    - Dst: nssCKFWObject_Finalize
      Src: /src/nss/lib/ckfw/session.c:1411,1
    - Dst: nssCKFWObject_GetAttributeCount
      Src: /src/nss/lib/ckfw/session.c:1425,1
    - Dst: NSSArena_Create
      Src: /src/nss/lib/ckfw/session.c:1430,1
    - Dst: nss_ZNEWARRAY
      Src: /src/nss/lib/ckfw/session.c:1436,1
    - Dst: NSSArena_Destroy
      Src: /src/nss/lib/ckfw/session.c:1438,1
    - Dst: nssCKFWObject_GetAttributeTypes
      Src: /src/nss/lib/ckfw/session.c:1443,1
    - Dst: NSSArena_Destroy
      Src: /src/nss/lib/ckfw/session.c:1445,1
    - Dst: nss_ZNEWARRAY
      Src: /src/nss/lib/ckfw/session.c:1467,1
    - Dst: NSSArena_Destroy
      Src: /src/nss/lib/ckfw/session.c:1469,1
    - Dst: nssCKFWObject_GetAttribute
      Src: /src/nss/lib/ckfw/session.c:1500,1
    - Dst: NSSArena_Destroy
      Src: /src/nss/lib/ckfw/session.c:1508,1
    - Dst: nssCKFWSession_CreateObject
      Src: /src/nss/lib/ckfw/session.c:1519,1
    - Dst: NSSArena_Destroy
      Src: /src/nss/lib/ckfw/session.c:1524,1
    - Dst: NSSArena_Destroy
      Src: /src/nss/lib/ckfw/session.c:1528,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 143
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1531
      start: 1309
    functionDepth: 2
    functionLinenumber: 1309
    functionLinenumberEnd: 1531
    functionName: "NSSCKFWObject *\nnssCKFWSession_CopyObject(\n    NSSCKFWSession
      *fwSession,\n    NSSCKFWObject *fwObject,\n    CK_ATTRIBUTE_PTR pTemplate,\n
      \   CK_ULONG ulAttributeCount,\n    CK_RV *pError)"
    functionSourceFile: /src/nss/lib/ckfw/session.c
    functionUses: 0
    functionsReached:
    - nssCKFWObject_GetAttributeTypes
    - nssCKFWHash_Add
    - nssCKFWSession_verifyPointer
    - nssCKFWObject_IsTokenObject
    - nss_ZNEWARRAY
    - nssCKFWHash_Exists
    - NSSArena_Destroy
    - nssCKFWObject_GetAttributeCount
    - mdSession::CopyObject
    - nssCKFWObject_Finalize
    - nssCKFWObject_verifyPointer
    - nsslibc_memcpy
    - nssCKFWObject_Create
    - NSSArena_Create
    - nssCKFWSession_CreateObject
    - nssCKFWObject_GetAttribute
    - nssCKFWToken_GetArena
    - nssCKFWObject_GetMDObject
    - nssCKFWSession_GetArena
    - nssCKFWInstance_GetModuleHandlesSessionObjects
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWObject *\nnssCKFWSession_CopyObject(\n    NSSCKFWSession
      *fwSession,\n    NSSCKFWObject *fwObject,\n    CK_ATTRIBUTE_PTR pTemplate,\n
      \   CK_ULONG ulAttributeCount,\n    CK_RV *pError)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSession_verifyPointer
      Src: /src/nss/lib/ckfw/session.c:1552,1
    - Dst: nssCKFWInstance_GetModuleHandlesSessionObjects
      Src: /src/nss/lib/ckfw/session.c:1568,1
    - Dst: nsslibc_memcpy
      Src: /src/nss/lib/ckfw/session.c:1586,1
    - Dst: mdSession::FindObjectsInit
      Src: /src/nss/lib/ckfw/session.c:1595,1
    - Dst: nssCKMDFindSessionObjects_Create
      Src: /src/nss/lib/ckfw/session.c:1602,1
    - Dst: mdSession::FindObjectsInit
      Src: /src/nss/lib/ckfw/session.c:1621,1
    - Dst: nssCKMDFindSessionObjects_Create
      Src: /src/nss/lib/ckfw/session.c:1634,1
    - Dst: NSSCKMDFindObjects*::Final
      Src: /src/nss/lib/ckfw/session.c:1642,1
    - Dst: mdSession::FindObjectsInit
      Src: /src/nss/lib/ckfw/session.c:1654,1
    - Dst: nssCKFWFindObjects_Create
      Src: /src/nss/lib/ckfw/session.c:1670,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 78
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1672
      start: 1537
    functionDepth: 1
    functionLinenumber: 1537
    functionLinenumberEnd: 1672
    functionName: "NSSCKFWFindObjects *\nnssCKFWSession_FindObjectsInit(\n    NSSCKFWSession
      *fwSession,\n    CK_ATTRIBUTE_PTR pTemplate,\n    CK_ULONG ulAttributeCount,\n
      \   CK_RV *pError)"
    functionSourceFile: /src/nss/lib/ckfw/session.c
    functionUses: 0
    functionsReached:
    - nssCKFWFindObjects_Create
    - mdSession::FindObjectsInit
    - nssCKMDFindSessionObjects_Create
    - NSSCKMDFindObjects*::Final
    - nsslibc_memcpy
    - nssCKFWSession_verifyPointer
    - nssCKFWInstance_GetModuleHandlesSessionObjects
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWFindObjects *\nnssCKFWSession_FindObjectsInit(\n
      \   NSSCKFWSession *fwSession,\n    CK_ATTRIBUTE_PTR pTemplate,\n    CK_ULONG
      ulAttributeCount,\n    CK_RV *pError)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSession_verifyPointer
      Src: /src/nss/lib/ckfw/session.c:1686,1
    - Dst: NSSCKFWSession*::mdSession::SeedRandom
      Src: /src/nss/lib/ckfw/session.c:1712,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - fwSession
    - seed
    argTypes:
    - NSSCKFWSession*
    - NSSItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1717
      start: 1678
    functionDepth: 1
    functionLinenumber: 1678
    functionLinenumberEnd: 1717
    functionName: nssCKFWSession_SeedRandom
    functionSourceFile: /src/nss/lib/ckfw/session.c
    functionUses: 1
    functionsReached:
    - nssCKFWSession_verifyPointer
    - NSSCKFWSession*::mdSession::SeedRandom
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWSession_SeedRandom(\n    NSSCKFWSession *fwSession,\n
      \   NSSItem *seed)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSession_verifyPointer
      Src: /src/nss/lib/ckfw/session.c:1731,1
    - Dst: nssCKFWToken_GetHasRNG
      Src: /src/nss/lib/ckfw/session.c:1750,1
    - Dst: NSSCKFWSession*::mdSession::GetRandom
      Src: /src/nss/lib/ckfw/session.c:1761,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - fwSession
    - buffer
    argTypes:
    - NSSCKFWSession*
    - NSSItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1766
      start: 1723
    functionDepth: 2
    functionLinenumber: 1723
    functionLinenumberEnd: 1766
    functionName: nssCKFWSession_GetRandom
    functionSourceFile: /src/nss/lib/ckfw/session.c
    functionUses: 1
    functionsReached:
    - NSSCKFWSession*::mdSession::GetRandom
    - nssCKFWSession_verifyPointer
    - nssCKFWToken_GetHasRNG
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWSession_GetRandom(\n    NSSCKFWSession *fwSession,\n
      \   NSSItem *buffer)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSession_verifyPointer
      Src: /src/nss/lib/ckfw/session.c:1779,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - fwSession
    - fwOperation
    - state
    argTypes:
    - NSSCKFWSession*
    - NSSCKFWCryptoOperation*
    - NSSCKFWCryptoOperationState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1794
      start: 1771
    functionDepth: 1
    functionLinenumber: 1771
    functionLinenumberEnd: 1794
    functionName: nssCKFWSession_SetCurrentCryptoOperation
    functionSourceFile: /src/nss/lib/ckfw/session.c
    functionUses: 7
    functionsReached:
    - nssCKFWSession_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWSession_SetCurrentCryptoOperation(\n    NSSCKFWSession
      *fwSession,\n    NSSCKFWCryptoOperation *fwOperation,\n    NSSCKFWCryptoOperationState
      state)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSession_verifyPointer
      Src: /src/nss/lib/ckfw/session.c:1806,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1820
      start: 1799
    functionDepth: 1
    functionLinenumber: 1799
    functionLinenumberEnd: 1820
    functionName: "NSSCKFWCryptoOperation *\nnssCKFWSession_GetCurrentCryptoOperation(\n
      \   NSSCKFWSession *fwSession,\n    NSSCKFWCryptoOperationState state)"
    functionSourceFile: /src/nss/lib/ckfw/session.c
    functionUses: 0
    functionsReached:
    - nssCKFWSession_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWCryptoOperation *\nnssCKFWSession_GetCurrentCryptoOperation(\n
      \   NSSCKFWSession *fwSession,\n    NSSCKFWCryptoOperationState state)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSession_verifyPointer
      Src: /src/nss/lib/ckfw/session.c:1838,1
    - Dst: nssCKFWSession_GetCurrentCryptoOperation
      Src: /src/nss/lib/ckfw/session.c:1849,1
    - Dst: nssCKFWCryptoOperation_GetType
      Src: /src/nss/lib/ckfw/session.c:1855,1
    - Dst: nssCKFWCryptoOperation_GetFinalLength
      Src: /src/nss/lib/ckfw/session.c:1866,1
    - Dst: nssCKFWCryptoOperation_Final
      Src: /src/nss/lib/ckfw/session.c:1884,1
    - Dst: nssCKFWCryptoOperation_Destroy
      Src: /src/nss/lib/ckfw/session.c:1890,1
    - Dst: nssCKFWSession_SetCurrentCryptoOperation
      Src: /src/nss/lib/ckfw/session.c:1891,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 5
    argNames:
    - fwSession
    - type
    - state
    - outBuf
    - outBufLen
    argTypes:
    - NSSCKFWSession*
    - NSSCKFWCryptoOperationType
    - NSSCKFWCryptoOperationState
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1893
      start: 1825
    functionDepth: 2
    functionLinenumber: 1825
    functionLinenumberEnd: 1893
    functionName: nssCKFWSession_Final
    functionSourceFile: /src/nss/lib/ckfw/session.c
    functionUses: 5
    functionsReached:
    - nssCKFWCryptoOperation_GetType
    - nssCKFWCryptoOperation_GetFinalLength
    - nssCKFWCryptoOperation_Destroy
    - nssCKFWCryptoOperation_Final
    - nssCKFWSession_verifyPointer
    - nssCKFWSession_SetCurrentCryptoOperation
    - nssCKFWSession_GetCurrentCryptoOperation
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWSession_Final(\n    NSSCKFWSession *fwSession,\n
      \   NSSCKFWCryptoOperationType type,\n    NSSCKFWCryptoOperationState state,\n
      \   CK_BYTE_PTR outBuf,\n    CK_ULONG_PTR outBufLen)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSession_verifyPointer
      Src: /src/nss/lib/ckfw/session.c:1916,1
    - Dst: nssCKFWSession_GetCurrentCryptoOperation
      Src: /src/nss/lib/ckfw/session.c:1927,1
    - Dst: nssCKFWCryptoOperation_GetType
      Src: /src/nss/lib/ckfw/session.c:1933,1
    - Dst: nssCKFWCryptoOperation_GetOperationLength
      Src: /src/nss/lib/ckfw/session.c:1941,1
    - Dst: nssCKFWCryptoOperation_Update
      Src: /src/nss/lib/ckfw/session.c:1959,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 7
    argNames:
    - fwSession
    - type
    - state
    - inBuf
    - inBufLen
    - outBuf
    - outBufLen
    argTypes:
    - NSSCKFWSession*
    - NSSCKFWCryptoOperationType
    - NSSCKFWCryptoOperationState
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1961
      start: 1898
    functionDepth: 1
    functionLinenumber: 1898
    functionLinenumberEnd: 1961
    functionName: nssCKFWSession_Update
    functionSourceFile: /src/nss/lib/ckfw/session.c
    functionUses: 2
    functionsReached:
    - nssCKFWCryptoOperation_GetType
    - nssCKFWCryptoOperation_Update
    - nssCKFWCryptoOperation_GetOperationLength
    - nssCKFWSession_verifyPointer
    - nssCKFWSession_GetCurrentCryptoOperation
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWSession_Update(\n    NSSCKFWSession *fwSession,\n
      \   NSSCKFWCryptoOperationType type,\n    NSSCKFWCryptoOperationState state,\n
      \   CK_BYTE_PTR inBuf,\n    CK_ULONG inBufLen,\n    CK_BYTE_PTR outBuf,\n    CK_ULONG_PTR
      outBufLen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSession_verifyPointer
      Src: /src/nss/lib/ckfw/session.c:1979,1
    - Dst: nssCKFWSession_GetCurrentCryptoOperation
      Src: /src/nss/lib/ckfw/session.c:1990,1
    - Dst: nssCKFWCryptoOperation_GetType
      Src: /src/nss/lib/ckfw/session.c:1996,1
    - Dst: nssCKFWCryptoOperation_DigestUpdate
      Src: /src/nss/lib/ckfw/session.c:2003,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 5
    argNames:
    - fwSession
    - type
    - state
    - inBuf
    - inBufLen
    argTypes:
    - NSSCKFWSession*
    - NSSCKFWCryptoOperationType
    - NSSCKFWCryptoOperationState
    - CK_BYTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2005
      start: 1966
    functionDepth: 1
    functionLinenumber: 1966
    functionLinenumberEnd: 2005
    functionName: nssCKFWSession_DigestUpdate
    functionSourceFile: /src/nss/lib/ckfw/session.c
    functionUses: 3
    functionsReached:
    - nssCKFWCryptoOperation_GetType
    - nssCKFWSession_verifyPointer
    - nssCKFWCryptoOperation_DigestUpdate
    - nssCKFWSession_GetCurrentCryptoOperation
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWSession_DigestUpdate(\n    NSSCKFWSession *fwSession,\n
      \   NSSCKFWCryptoOperationType type,\n    NSSCKFWCryptoOperationState state,\n
      \   CK_BYTE_PTR inBuf,\n    CK_ULONG inBufLen)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSession_verifyPointer
      Src: /src/nss/lib/ckfw/session.c:2020,1
    - Dst: nssCKFWSession_GetCurrentCryptoOperation
      Src: /src/nss/lib/ckfw/session.c:2031,1
    - Dst: nssCKFWCryptoOperation_GetType
      Src: /src/nss/lib/ckfw/session.c:2039,1
    - Dst: nssCKFWCryptoOperation_DigestKey
      Src: /src/nss/lib/ckfw/session.c:2043,1
    - Dst: nssCKFWObject_GetAttribute
      Src: /src/nss/lib/ckfw/session.c:2049,1
    - Dst: nssCKFWCryptoOperation_DigestUpdate
      Src: /src/nss/lib/ckfw/session.c:2054,1
    - Dst: nssItem_Destroy
      Src: /src/nss/lib/ckfw/session.c:2055,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - fwSession
    - fwKey
    argTypes:
    - NSSCKFWSession*
    - NSSCKFWObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2057
      start: 2010
    functionDepth: 2
    functionLinenumber: 2010
    functionLinenumberEnd: 2057
    functionName: nssCKFWSession_DigestKey
    functionSourceFile: /src/nss/lib/ckfw/session.c
    functionUses: 1
    functionsReached:
    - nssCKFWCryptoOperation_GetType
    - nssCKFWCryptoOperation_DigestUpdate
    - nssCKFWObject_GetAttribute
    - nssCKFWCryptoOperation_DigestKey
    - nssCKFWSession_verifyPointer
    - nssItem_Destroy
    - nssCKFWSession_GetCurrentCryptoOperation
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWSession_DigestKey(\n    NSSCKFWSession *fwSession,\n
      \   NSSCKFWObject *fwKey)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSession_verifyPointer
      Src: /src/nss/lib/ckfw/session.c:2079,1
    - Dst: nssCKFWSession_GetCurrentCryptoOperation
      Src: /src/nss/lib/ckfw/session.c:2090,1
    - Dst: nssCKFWCryptoOperation_GetType
      Src: /src/nss/lib/ckfw/session.c:2096,1
    - Dst: nssCKFWCryptoOperation_GetOperationLength
      Src: /src/nss/lib/ckfw/session.c:2115,1
    - Dst: nssCKFWCryptoOperation_GetFinalLength
      Src: /src/nss/lib/ckfw/session.c:2117,1
    - Dst: nssCKFWCryptoOperation_UpdateFinal
      Src: /src/nss/lib/ckfw/session.c:2135,1
    - Dst: nssCKFWCryptoOperation_Update
      Src: /src/nss/lib/ckfw/session.c:2140,1
    - Dst: nssCKFWCryptoOperation_DigestUpdate
      Src: /src/nss/lib/ckfw/session.c:2141,1
    - Dst: nssCKFWCryptoOperation_Final
      Src: /src/nss/lib/ckfw/session.c:2144,1
    - Dst: nssCKFWCryptoOperation_Destroy
      Src: /src/nss/lib/ckfw/session.c:2156,1
    - Dst: nssCKFWSession_SetCurrentCryptoOperation
      Src: /src/nss/lib/ckfw/session.c:2157,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 55
    argCount: 7
    argNames:
    - fwSession
    - type
    - state
    - inBuf
    - inBufLen
    - outBuf
    - outBufLen
    argTypes:
    - NSSCKFWSession*
    - NSSCKFWCryptoOperationType
    - NSSCKFWCryptoOperationState
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2159
      start: 2062
    functionDepth: 2
    functionLinenumber: 2062
    functionLinenumberEnd: 2159
    functionName: nssCKFWSession_UpdateFinal
    functionSourceFile: /src/nss/lib/ckfw/session.c
    functionUses: 7
    functionsReached:
    - nssCKFWCryptoOperation_GetType
    - nssCKFWCryptoOperation_UpdateFinal
    - nssCKFWCryptoOperation_Update
    - nssCKFWCryptoOperation_GetFinalLength
    - nssCKFWCryptoOperation_DigestUpdate
    - nssCKFWCryptoOperation_Destroy
    - nssCKFWCryptoOperation_Final
    - nssCKFWCryptoOperation_GetOperationLength
    - nssCKFWSession_verifyPointer
    - nssCKFWSession_SetCurrentCryptoOperation
    - nssCKFWSession_GetCurrentCryptoOperation
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWSession_UpdateFinal(\n    NSSCKFWSession *fwSession,\n
      \   NSSCKFWCryptoOperationType type,\n    NSSCKFWCryptoOperationState state,\n
      \   CK_BYTE_PTR inBuf,\n    CK_ULONG inBufLen,\n    CK_BYTE_PTR outBuf,\n    CK_ULONG_PTR
      outBufLen)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSession_verifyPointer
      Src: /src/nss/lib/ckfw/session.c:2181,1
    - Dst: nssCKFWSession_GetCurrentCryptoOperation
      Src: /src/nss/lib/ckfw/session.c:2192,1
    - Dst: nssCKFWCryptoOperation_GetType
      Src: /src/nss/lib/ckfw/session.c:2199,1
    - Dst: nssCKFWSession_GetCurrentCryptoOperation
      Src: /src/nss/lib/ckfw/session.c:2203,1
    - Dst: nssCKFWCryptoOperation_GetType
      Src: /src/nss/lib/ckfw/session.c:2210,1
    - Dst: nssCKFWCryptoOperation_GetOperationLength
      Src: /src/nss/lib/ckfw/session.c:2216,1
    - Dst: nssCKFWCryptoOperation_UpdateCombo
      Src: /src/nss/lib/ckfw/session.c:2234,1
    - Dst: nssCKFWCryptoOperation_DigestUpdate
      Src: /src/nss/lib/ckfw/session.c:2241,1
    - Dst: nssCKFWCryptoOperation_Update
      Src: /src/nss/lib/ckfw/session.c:2247,1
    - Dst: nssCKFWCryptoOperation_DigestUpdate
      Src: /src/nss/lib/ckfw/session.c:2253,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 54
    argCount: 8
    argNames:
    - fwSession
    - encryptType
    - digestType
    - digestState
    - inBuf
    - inBufLen
    - outBuf
    - outBufLen
    argTypes:
    - NSSCKFWSession*
    - NSSCKFWCryptoOperationType
    - NSSCKFWCryptoOperationType
    - NSSCKFWCryptoOperationState
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2258
      start: 2161
    functionDepth: 1
    functionLinenumber: 2161
    functionLinenumberEnd: 2258
    functionName: nssCKFWSession_UpdateCombo
    functionSourceFile: /src/nss/lib/ckfw/session.c
    functionUses: 4
    functionsReached:
    - nssCKFWCryptoOperation_GetType
    - nssCKFWCryptoOperation_Update
    - nssCKFWCryptoOperation_DigestUpdate
    - nssCKFWCryptoOperation_UpdateCombo
    - nssCKFWCryptoOperation_GetOperationLength
    - nssCKFWSession_verifyPointer
    - nssCKFWSession_GetCurrentCryptoOperation
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWSession_UpdateCombo(\n    NSSCKFWSession *fwSession,\n
      \   NSSCKFWCryptoOperationType encryptType,\n    NSSCKFWCryptoOperationType
      digestType,\n    NSSCKFWCryptoOperationState digestState,\n    CK_BYTE_PTR inBuf,\n
      \   CK_ULONG inBufLen,\n    CK_BYTE_PTR outBuf,\n    CK_ULONG_PTR outBufLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSession_verifyPointer
      Src: /src/nss/lib/ckfw/session.c:2270,1
    - Dst: nssCKFWSession_GetMDSession
      Src: /src/nss/lib/ckfw/session.c:2275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2276
      start: 2265
    functionDepth: 1
    functionLinenumber: 2265
    functionLinenumberEnd: 2276
    functionName: "NSSCKMDSession *\nNSSCKFWSession_GetMDSession(\n    NSSCKFWSession
      *fwSession)"
    functionSourceFile: /src/nss/lib/ckfw/session.c
    functionUses: 0
    functionsReached:
    - nssCKFWSession_verifyPointer
    - nssCKFWSession_GetMDSession
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKMDSession *\nNSSCKFWSession_GetMDSession(\n    NSSCKFWSession
      *fwSession)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSession_verifyPointer
      Src: /src/nss/lib/ckfw/session.c:2293,1
    - Dst: nssCKFWSession_GetArena
      Src: /src/nss/lib/ckfw/session.c:2299,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - fwSession
    - pError
    argTypes:
    - NSSCKFWSession*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2300
      start: 2283
    functionDepth: 2
    functionLinenumber: 2283
    functionLinenumberEnd: 2300
    functionName: NSSCKFWSession_GetArena
    functionSourceFile: /src/nss/lib/ckfw/session.c
    functionUses: 0
    functionsReached:
    - nssCKFWSession_verifyPointer
    - nssCKFWSession_GetArena
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSCKFWSession_GetArena(\n    NSSCKFWSession *fwSession,\n
      \   CK_RV *pError)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSession_verifyPointer
      Src: /src/nss/lib/ckfw/session.c:2315,1
    - Dst: nssCKFWSession_CallNotification
      Src: /src/nss/lib/ckfw/session.c:2321,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - fwSession
    - event
    argTypes:
    - NSSCKFWSession*
    - CK_NOTIFICATION
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2322
      start: 2307
    functionDepth: 2
    functionLinenumber: 2307
    functionLinenumberEnd: 2322
    functionName: NSSCKFWSession_CallNotification
    functionSourceFile: /src/nss/lib/ckfw/session.c
    functionUses: 0
    functionsReached:
    - nssCKFWSession_verifyPointer
    - nssCKFWSession_CallNotification
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWSession_CallNotification(\n    NSSCKFWSession
      *fwSession,\n    CK_NOTIFICATION event)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSession_verifyPointer
      Src: /src/nss/lib/ckfw/session.c:2334,1
    - Dst: nssCKFWSession_IsRWSession
      Src: /src/nss/lib/ckfw/session.c:2339,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fwSession
    argTypes:
    - NSSCKFWSession*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2340
      start: 2329
    functionDepth: 2
    functionLinenumber: 2329
    functionLinenumberEnd: 2340
    functionName: NSSCKFWSession_IsRWSession
    functionSourceFile: /src/nss/lib/ckfw/session.c
    functionUses: 0
    functionsReached:
    - nssCKFWSession_verifyPointer
    - nssCKFWSession_IsRWSession
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWSession_IsRWSession(\n    NSSCKFWSession *fwSession)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSession_verifyPointer
      Src: /src/nss/lib/ckfw/session.c:2352,1
    - Dst: nssCKFWSession_IsSO
      Src: /src/nss/lib/ckfw/session.c:2357,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fwSession
    argTypes:
    - NSSCKFWSession*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2358
      start: 2347
    functionDepth: 3
    functionLinenumber: 2347
    functionLinenumberEnd: 2358
    functionName: NSSCKFWSession_IsSO
    functionSourceFile: /src/nss/lib/ckfw/session.c
    functionUses: 0
    functionsReached:
    - nssCKFWSession_IsSO
    - nssCKFWSession_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWSession_IsSO(\n    NSSCKFWSession *fwSession)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSession_verifyPointer
      Src: /src/nss/lib/ckfw/session.c:2367,1
    - Dst: nssCKFWSession_GetCurrentCryptoOperation
      Src: /src/nss/lib/ckfw/session.c:2376,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2377
      start: 2360
    functionDepth: 1
    functionLinenumber: 2360
    functionLinenumberEnd: 2377
    functionName: "NSSCKFWCryptoOperation *\nNSSCKFWSession_GetCurrentCryptoOperation(\n
      \   NSSCKFWSession *fwSession,\n    NSSCKFWCryptoOperationState state)"
    functionSourceFile: /src/nss/lib/ckfw/session.c
    functionUses: 0
    functionsReached:
    - nssCKFWSession_verifyPointer
    - nssCKFWSession_GetCurrentCryptoOperation
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWCryptoOperation *\nNSSCKFWSession_GetCurrentCryptoOperation(\n
      \   NSSCKFWSession *fwSession,\n    NSSCKFWCryptoOperationState state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWSession_GetFWSlot
      Src: /src/nss/lib/ckfw/session.c:2388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2389
      start: 2384
    functionDepth: 0
    functionLinenumber: 2384
    functionLinenumberEnd: 2389
    functionName: "NSSCKFWSlot *\nNSSCKFWSession_GetFWSlot(\n    NSSCKFWSession *fwSession)"
    functionSourceFile: /src/nss/lib/ckfw/session.c
    functionUses: 0
    functionsReached:
    - nssCKFWSession_GetFWSlot
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWSlot *\nNSSCKFWSession_GetFWSlot(\n    NSSCKFWSession
      *fwSession)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 50
    functionName: nss_ckfw_identity_hash
    functionSourceFile: /src/nss/lib/ckfw/hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PLHashNumber
    signature: "PLHashNumber nss_ckfw_identity_hash(\n    const void *key)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: nssArena_verifyPointer
      Src: /src/nss/lib/ckfw/hash.c:69,1
    - Dst: nss_ZNEW
      Src: /src/nss/lib/ckfw/hash.c:75,1
    - Dst: nssCKFWInstance_CreateMutex
      Src: /src/nss/lib/ckfw/hash.c:81,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/ckfw/hash.c:86,1
    - Dst: PL_NewHashTable
      Src: /src/nss/lib/ckfw/hash.c:90,1
    - Dst: nssCKFWMutex_Destroy
      Src: /src/nss/lib/ckfw/hash.c:93,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/ckfw/hash.c:94,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 102
    functionName: "nssCKFWHash *\nnssCKFWHash_Create(\n    NSSCKFWInstance *fwInstance,\n
      \   NSSArena *arena,\n    CK_RV *pError)"
    functionSourceFile: /src/nss/lib/ckfw/hash.c
    functionUses: 0
    functionsReached:
    - nssCKFWInstance_CreateMutex
    - nssArena_verifyPointer
    - nss_ZNEW
    - nss_ZFreeIf
    - nssCKFWMutex_Destroy
    - PL_NewHashTable
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWHash *\nnssCKFWHash_Create(\n    NSSCKFWInstance
      *fwInstance,\n    NSSArena *arena,\n    CK_RV *pError)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWMutex_Destroy
      Src: /src/nss/lib/ckfw/hash.c:112,1
    - Dst: PL_HashTableDestroy
      Src: /src/nss/lib/ckfw/hash.c:113,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/ckfw/hash.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - hash
    argTypes:
    - nssCKFWHash*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 115
    functionName: nssCKFWHash_Destroy
    functionSourceFile: /src/nss/lib/ckfw/hash.c
    functionUses: 4
    functionsReached:
    - nss_ZFreeIf
    - nssCKFWMutex_Destroy
    - PL_HashTableDestroy
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWHash_Destroy(\n    nssCKFWHash *hash)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/hash.c:130,1
    - Dst: PL_HashTableAdd
      Src: /src/nss/lib/ckfw/hash.c:135,1
    - Dst: nssCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/hash.c:142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - hash
    - key
    - value
    argTypes:
    - nssCKFWHash*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 145
    functionName: nssCKFWHash_Add
    functionSourceFile: /src/nss/lib/ckfw/hash.c
    functionUses: 6
    functionsReached:
    - nssCKFWMutex_Unlock
    - PL_HashTableAdd
    - nssCKFWMutex_Lock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWHash_Add(\n    nssCKFWHash *hash,\n    const
      void *key,\n    const void *value)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/hash.c:158,1
    - Dst: PL_HashTableRemove
      Src: /src/nss/lib/ckfw/hash.c:162,1
    - Dst: nssCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/hash.c:167,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - hash
    - it
    argTypes:
    - nssCKFWHash*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 169
    functionName: nssCKFWHash_Remove
    functionSourceFile: /src/nss/lib/ckfw/hash.c
    functionUses: 6
    functionsReached:
    - nssCKFWMutex_Unlock
    - PL_HashTableRemove
    - nssCKFWMutex_Lock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWHash_Remove(\n    nssCKFWHash *hash,\n    const
      void *it)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/hash.c:181,1
    - Dst: nssCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/hash.c:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - hash
    argTypes:
    - nssCKFWHash*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 175
    functionDepth: 2
    functionLinenumber: 175
    functionLinenumberEnd: 190
    functionName: nssCKFWHash_Count
    functionSourceFile: /src/nss/lib/ckfw/hash.c
    functionUses: 0
    functionsReached:
    - nssCKFWMutex_Unlock
    - nssCKFWMutex_Lock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWHash_Count(\n    nssCKFWHash *hash)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/hash.c:203,1
    - Dst: PL_HashTableLookup
      Src: /src/nss/lib/ckfw/hash.c:207,1
    - Dst: nssCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/hash.c:209,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - hash
    - it
    argTypes:
    - nssCKFWHash*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 216
    functionName: nssCKFWHash_Exists
    functionSourceFile: /src/nss/lib/ckfw/hash.c
    functionUses: 5
    functionsReached:
    - nssCKFWMutex_Unlock
    - PL_HashTableLookup
    - nssCKFWMutex_Lock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWHash_Exists(\n    nssCKFWHash *hash,\n    const
      void *it)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/hash.c:229,1
    - Dst: PL_HashTableLookup
      Src: /src/nss/lib/ckfw/hash.c:233,1
    - Dst: nssCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/hash.c:235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - hash
    - it
    argTypes:
    - nssCKFWHash*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 222
    functionDepth: 2
    functionLinenumber: 222
    functionLinenumberEnd: 238
    functionName: nssCKFWHash_Lookup
    functionSourceFile: /src/nss/lib/ckfw/hash.c
    functionUses: 1
    functionsReached:
    - nssCKFWMutex_Unlock
    - PL_HashTableLookup
    - nssCKFWMutex_Lock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nnssCKFWHash_Lookup(\n    nssCKFWHash *hash,\n    const
      void *it)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct arg_str*::fcn
      Src: /src/nss/lib/ckfw/hash.c:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - he
    - index
    - arg
    argTypes:
    - PLHashEntry*
    - PRIntn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 254
    functionName: nss_ckfwhash_enumerator
    functionSourceFile: /src/nss/lib/ckfw/hash.c
    functionUses: 0
    functionsReached:
    - struct arg_str*::fcn
    linkageType: ''
    returnType: PRIntn
    signature: "PRIntn nss_ckfwhash_enumerator(\n    PLHashEntry *he,\n    PRIntn
      index,\n    void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/hash.c:271,1
    - Dst: PL_HashTableEnumerateEntries
      Src: /src/nss/lib/ckfw/hash.c:275,1
    - Dst: nssCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/hash.c:277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - hash
    - fcn
    - closure
    argTypes:
    - nssCKFWHash*
    - nssCKFWHashIterator
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 280
    functionName: nssCKFWHash_Iterate
    functionSourceFile: /src/nss/lib/ckfw/hash.c
    functionUses: 4
    functionsReached:
    - nssCKFWMutex_Unlock
    - PL_HashTableEnumerateEntries
    - nssCKFWMutex_Lock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWHash_Iterate(\n    nssCKFWHash *hash,\n    nssCKFWHashIterator
      fcn,\n    void *closure)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fwInstance
    argTypes:
    - NSSCKFWInstance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 132
    functionName: instance_add_pointer
    functionSourceFile: /src/nss/lib/ckfw/instance.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV instance_add_pointer(\n    const NSSCKFWInstance *fwInstance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fwInstance
    argTypes:
    - NSSCKFWInstance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 139
    functionName: instance_remove_pointer
    functionSourceFile: /src/nss/lib/ckfw/instance.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV instance_remove_pointer(\n    const NSSCKFWInstance *fwInstance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fwInstance
    argTypes:
    - NSSCKFWInstance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 146
    functionName: nssCKFWInstance_verifyPointer
    functionSourceFile: /src/nss/lib/ckfw/instance.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWInstance_verifyPointer(\n    const NSSCKFWInstance
      *fwInstance)"
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: NSSArena_Create
      Src: /src/nss/lib/ckfw/instance.c:177,1
    - Dst: nss_ZNEW
      Src: /src/nss/lib/ckfw/instance.c:183,1
    - Dst: nssCKFWMutex_Create
      Src: /src/nss/lib/ckfw/instance.c:205,1
    - Dst: Initialize
      Src: /src/nss/lib/ckfw/instance.c:215,1
    - Dst: ModuleHandlesSessionObjects
      Src: /src/nss/lib/ckfw/instance.c:225,1
    - Dst: GetNSlots
      Src: /src/nss/lib/ckfw/instance.c:236,1
    - Dst: nss_ZNEWARRAY
      Src: /src/nss/lib/ckfw/instance.c:245,1
    - Dst: nss_ZNEWARRAY
      Src: /src/nss/lib/ckfw/instance.c:250,1
    - Dst: nssCKFWHash_Create
      Src: /src/nss/lib/ckfw/instance.c:255,1
    - Dst: nssCKFWHash_Create
      Src: /src/nss/lib/ckfw/instance.c:261,1
    - Dst: GetSlots
      Src: /src/nss/lib/ckfw/instance.c:273,1
    - Dst: nssCKFWSlot_Create
      Src: /src/nss/lib/ckfw/instance.c:286,1
    - Dst: nssCKFWSlot_Destroy
      Src: /src/nss/lib/ckfw/instance.c:291,1
    - Dst: NSSCKMDSlot*::Destroy
      Src: /src/nss/lib/ckfw/instance.c:297,1
    - Dst: instance_add_pointer
      Src: /src/nss/lib/ckfw/instance.c:306,1
    - Dst: nssCKFWSlot_Destroy
      Src: /src/nss/lib/ckfw/instance.c:309,1
    - Dst: Finalize
      Src: /src/nss/lib/ckfw/instance.c:326,1
    - Dst: nssCKFWMutex_Destroy
      Src: /src/nss/lib/ckfw/instance.c:331,1
    - Dst: NSSArena_Destroy
      Src: /src/nss/lib/ckfw/instance.c:335,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 144
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 338
    functionName: "NSSCKFWInstance *\nnssCKFWInstance_Create(\n    CK_C_INITIALIZE_ARGS_PTR
      pInitArgs,\n    CryptokiLockingState LockingState,\n    NSSCKMDInstance *mdInstance,\n
      \   CK_RV *pError)"
    functionSourceFile: /src/nss/lib/ckfw/instance.c
    functionUses: 0
    functionsReached:
    - nssCKFWSlot_Create
    - Initialize
    - nssCKFWHash_Create
    - nssCKFWMutex_Create
    - GetNSlots
    - ModuleHandlesSessionObjects
    - nss_ZNEWARRAY
    - nssCKFWSlot_Destroy
    - nss_ZNEW
    - Finalize
    - GetSlots
    - NSSCKMDSlot*::Destroy
    - nssCKFWMutex_Destroy
    - NSSArena_Create
    - NSSArena_Destroy
    - instance_add_pointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWInstance *\nnssCKFWInstance_Create(\n    CK_C_INITIALIZE_ARGS_PTR
      pInitArgs,\n    CryptokiLockingState LockingState,\n    NSSCKMDInstance *mdInstance,\n
      \   CK_RV *pError)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_verifyPointer
      Src: /src/nss/lib/ckfw/instance.c:354,1
    - Dst: nssCKFWMutex_Destroy
      Src: /src/nss/lib/ckfw/instance.c:360,1
    - Dst: nssCKFWSlot_Destroy
      Src: /src/nss/lib/ckfw/instance.c:363,1
    - Dst: NSSCKFWInstance*::mdInstance::Finalize
      Src: /src/nss/lib/ckfw/instance.c:367,1
    - Dst: nssCKFWHash_Destroy
      Src: /src/nss/lib/ckfw/instance.c:371,1
    - Dst: nssCKFWHash_Destroy
      Src: /src/nss/lib/ckfw/instance.c:375,1
    - Dst: instance_remove_pointer
      Src: /src/nss/lib/ckfw/instance.c:379,1
    - Dst: NSSArena_Destroy
      Src: /src/nss/lib/ckfw/instance.c:382,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - fwInstance
    argTypes:
    - NSSCKFWInstance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 344
    functionDepth: 3
    functionLinenumber: 344
    functionLinenumberEnd: 384
    functionName: nssCKFWInstance_Destroy
    functionSourceFile: /src/nss/lib/ckfw/instance.c
    functionUses: 1
    functionsReached:
    - nssCKFWHash_Destroy
    - nssCKFWInstance_verifyPointer
    - nssCKFWSlot_Destroy
    - NSSCKFWInstance*::mdInstance::Finalize
    - nssCKFWMutex_Destroy
    - instance_remove_pointer
    - NSSArena_Destroy
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWInstance_Destroy(\n    NSSCKFWInstance *fwInstance)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_verifyPointer
      Src: /src/nss/lib/ckfw/instance.c:395,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 401
    functionName: "NSSCKMDInstance *\nnssCKFWInstance_GetMDInstance(\n    NSSCKFWInstance
      *fwInstance)"
    functionSourceFile: /src/nss/lib/ckfw/instance.c
    functionUses: 0
    functionsReached:
    - nssCKFWInstance_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKMDInstance *\nnssCKFWInstance_GetMDInstance(\n
      \   NSSCKFWInstance *fwInstance)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_verifyPointer
      Src: /src/nss/lib/ckfw/instance.c:417,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - fwInstance
    - pError
    argTypes:
    - NSSCKFWInstance*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 425
    functionName: nssCKFWInstance_GetArena
    functionSourceFile: /src/nss/lib/ckfw/instance.c
    functionUses: 1
    functionsReached:
    - nssCKFWInstance_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nnssCKFWInstance_GetArena(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_RV *pError)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_verifyPointer
      Src: /src/nss/lib/ckfw/instance.c:436,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fwInstance
    argTypes:
    - NSSCKFWInstance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 431
    functionDepth: 1
    functionLinenumber: 431
    functionLinenumberEnd: 442
    functionName: nssCKFWInstance_MayCreatePthreads
    functionSourceFile: /src/nss/lib/ckfw/instance.c
    functionUses: 0
    functionsReached:
    - nssCKFWInstance_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWInstance_MayCreatePthreads(\n    NSSCKFWInstance
      *fwInstance)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_verifyPointer
      Src: /src/nss/lib/ckfw/instance.c:461,1
    - Dst: nssCKFWMutex_Create
      Src: /src/nss/lib/ckfw/instance.c:467,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 478
    functionName: "NSSCKFWMutex *\nnssCKFWInstance_CreateMutex(\n    NSSCKFWInstance
      *fwInstance,\n    NSSArena *arena,\n    CK_RV *pError)"
    functionSourceFile: /src/nss/lib/ckfw/instance.c
    functionUses: 0
    functionsReached:
    - nssCKFWMutex_Create
    - nssCKFWInstance_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWMutex *\nnssCKFWInstance_CreateMutex(\n    NSSCKFWInstance
      *fwInstance,\n    NSSArena *arena,\n    CK_RV *pError)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_verifyPointer
      Src: /src/nss/lib/ckfw/instance.c:489,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fwInstance
    argTypes:
    - NSSCKFWInstance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 484
    functionDepth: 1
    functionLinenumber: 484
    functionLinenumberEnd: 495
    functionName: nssCKFWInstance_GetConfigurationData
    functionSourceFile: /src/nss/lib/ckfw/instance.c
    functionUses: 0
    functionsReached:
    - nssCKFWInstance_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nnssCKFWInstance_GetConfigurationData(\n    NSSCKFWInstance
      *fwInstance)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_verifyPointer
      Src: /src/nss/lib/ckfw/instance.c:506,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fwInstance
    argTypes:
    - NSSCKFWInstance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 501
    functionDepth: 1
    functionLinenumber: 501
    functionLinenumberEnd: 512
    functionName: nssCKFWInstance_GetInitArgs
    functionSourceFile: /src/nss/lib/ckfw/instance.c
    functionUses: 0
    functionsReached:
    - nssCKFWInstance_verifyPointer
    linkageType: ''
    returnType: CK_C_INITIALIZE_ARGS_PTR
    signature: "CK_C_INITIALIZE_ARGS_PTR nssCKFWInstance_GetInitArgs(\n    NSSCKFWInstance
      *fwInstance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - CK_SESSION_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 528
    functionName: CKSessionHandleToVoidPtr
    functionSourceFile: /src/nss/lib/ckfw/instance.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void *

      CKSessionHandleToVoidPtr(CK_SESSION_HANDLE handle)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_verifyPointer
      Src: /src/nss/lib/ckfw/instance.c:553,1
    - Dst: nssCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/instance.c:559,1
    - Dst: nssCKFWSession_SetHandle
      Src: /src/nss/lib/ckfw/instance.c:568,1
    - Dst: nssCKFWHash_Add
      Src: /src/nss/lib/ckfw/instance.c:573,1
    - Dst: CKSessionHandleToVoidPtr
      Src: /src/nss/lib/ckfw/instance.c:574,1
    - Dst: nssCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/instance.c:581,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - fwInstance
    - fwSession
    - pError
    argTypes:
    - NSSCKFWInstance*
    - NSSCKFWSession*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 540
    functionDepth: 3
    functionLinenumber: 540
    functionLinenumberEnd: 583
    functionName: CK_SESSION_HANDLE::nssCKFWInstance_CreateSessionHandle
    functionSourceFile: /src/nss/lib/ckfw/instance.c
    functionUses: 0
    functionsReached:
    - nssCKFWInstance_verifyPointer
    - nssCKFWSession_SetHandle
    - nssCKFWMutex_Lock
    - nssCKFWHash_Add
    - CKSessionHandleToVoidPtr
    - nssCKFWMutex_Unlock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT CK_SESSION_HANDLE\nnssCKFWInstance_CreateSessionHandle(\n
      \   NSSCKFWInstance *fwInstance,\n    NSSCKFWSession *fwSession,\n    CK_RV
      *pError)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_verifyPointer
      Src: /src/nss/lib/ckfw/instance.c:597,1
    - Dst: nssCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/instance.c:602,1
    - Dst: nssCKFWHash_Lookup
      Src: /src/nss/lib/ckfw/instance.c:606,1
    - Dst: CKSessionHandleToVoidPtr
      Src: /src/nss/lib/ckfw/instance.c:607,1
    - Dst: nssCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/instance.c:611,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 589
    functionDepth: 3
    functionLinenumber: 589
    functionLinenumberEnd: 614
    functionName: "NSSCKFWSession *\nnssCKFWInstance_ResolveSessionHandle(\n    NSSCKFWInstance
      *fwInstance,\n    CK_SESSION_HANDLE hSession)"
    functionSourceFile: /src/nss/lib/ckfw/instance.c
    functionUses: 0
    functionsReached:
    - nssCKFWInstance_verifyPointer
    - nssCKFWHash_Lookup
    - nssCKFWMutex_Lock
    - CKSessionHandleToVoidPtr
    - nssCKFWMutex_Unlock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWSession *\nnssCKFWInstance_ResolveSessionHandle(\n
      \   NSSCKFWInstance *fwInstance,\n    CK_SESSION_HANDLE hSession)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_verifyPointer
      Src: /src/nss/lib/ckfw/instance.c:628,1
    - Dst: nssCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/instance.c:633,1
    - Dst: nssCKFWHash_Lookup
      Src: /src/nss/lib/ckfw/instance.c:637,1
    - Dst: CKSessionHandleToVoidPtr
      Src: /src/nss/lib/ckfw/instance.c:638,1
    - Dst: nssCKFWHash_Remove
      Src: /src/nss/lib/ckfw/instance.c:640,1
    - Dst: CKSessionHandleToVoidPtr
      Src: /src/nss/lib/ckfw/instance.c:640,1
    - Dst: nssCKFWSession_SetHandle
      Src: /src/nss/lib/ckfw/instance.c:641,1
    - Dst: nssCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/instance.c:644,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - fwInstance
    - hSession
    argTypes:
    - NSSCKFWInstance*
    - CK_SESSION_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 620
    functionDepth: 3
    functionLinenumber: 620
    functionLinenumberEnd: 647
    functionName: nssCKFWInstance_DestroySessionHandle
    functionSourceFile: /src/nss/lib/ckfw/instance.c
    functionUses: 1
    functionsReached:
    - nssCKFWHash_Remove
    - nssCKFWInstance_verifyPointer
    - nssCKFWSession_SetHandle
    - nssCKFWHash_Lookup
    - nssCKFWMutex_Lock
    - CKSessionHandleToVoidPtr
    - nssCKFWMutex_Unlock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWInstance_DestroySessionHandle(\n    NSSCKFWInstance
      *fwInstance,\n    CK_SESSION_HANDLE hSession)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_verifyPointer
      Src: /src/nss/lib/ckfw/instance.c:659,1
    - Dst: nssCKFWSession_verifyPointer
      Src: /src/nss/lib/ckfw/instance.c:663,1
    - Dst: CK_SESSION_HANDLE::nssCKFWSession_GetHandle
      Src: /src/nss/lib/ckfw/instance.c:668,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - fwInstance
    - fwSession
    argTypes:
    - NSSCKFWInstance*
    - NSSCKFWSession*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 653
    functionDepth: 2
    functionLinenumber: 653
    functionLinenumberEnd: 670
    functionName: CK_SESSION_HANDLE::nssCKFWInstance_FindSessionHandle
    functionSourceFile: /src/nss/lib/ckfw/instance.c
    functionUses: 0
    functionsReached:
    - nssCKFWSession_verifyPointer
    - CK_SESSION_HANDLE::nssCKFWSession_GetHandle
    - nssCKFWInstance_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT CK_SESSION_HANDLE\nnssCKFWInstance_FindSessionHandle(\n
      \   NSSCKFWInstance *fwInstance,\n    NSSCKFWSession *fwSession)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_verifyPointer
      Src: /src/nss/lib/ckfw/instance.c:689,1
    - Dst: nssCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/instance.c:695,1
    - Dst: nssCKFWObject_SetHandle
      Src: /src/nss/lib/ckfw/instance.c:702,1
    - Dst: nssCKFWHash_Add
      Src: /src/nss/lib/ckfw/instance.c:708,1
    - Dst: CKSessionHandleToVoidPtr
      Src: /src/nss/lib/ckfw/instance.c:709,1
    - Dst: nssCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/instance.c:716,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 3
    argNames:
    - fwInstance
    - fwObject
    - pError
    argTypes:
    - NSSCKFWInstance*
    - NSSCKFWObject*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 676
    functionDepth: 3
    functionLinenumber: 676
    functionLinenumberEnd: 718
    functionName: CK_OBJECT_HANDLE::nssCKFWInstance_CreateObjectHandle
    functionSourceFile: /src/nss/lib/ckfw/instance.c
    functionUses: 0
    functionsReached:
    - nssCKFWObject_SetHandle
    - nssCKFWInstance_verifyPointer
    - nssCKFWMutex_Lock
    - nssCKFWHash_Add
    - CKSessionHandleToVoidPtr
    - nssCKFWMutex_Unlock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT CK_OBJECT_HANDLE\nnssCKFWInstance_CreateObjectHandle(\n
      \   NSSCKFWInstance *fwInstance,\n    NSSCKFWObject *fwObject,\n    CK_RV *pError)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_verifyPointer
      Src: /src/nss/lib/ckfw/instance.c:732,1
    - Dst: nssCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/instance.c:737,1
    - Dst: nssCKFWHash_Lookup
      Src: /src/nss/lib/ckfw/instance.c:741,1
    - Dst: CKSessionHandleToVoidPtr
      Src: /src/nss/lib/ckfw/instance.c:742,1
    - Dst: nssCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/instance.c:746,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 724
    functionDepth: 3
    functionLinenumber: 724
    functionLinenumberEnd: 748
    functionName: "NSSCKFWObject *\nnssCKFWInstance_ResolveObjectHandle(\n    NSSCKFWInstance
      *fwInstance,\n    CK_OBJECT_HANDLE hObject)"
    functionSourceFile: /src/nss/lib/ckfw/instance.c
    functionUses: 0
    functionsReached:
    - nssCKFWInstance_verifyPointer
    - nssCKFWHash_Lookup
    - nssCKFWMutex_Lock
    - CKSessionHandleToVoidPtr
    - nssCKFWMutex_Unlock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWObject *\nnssCKFWInstance_ResolveObjectHandle(\n
      \   NSSCKFWInstance *fwInstance,\n    CK_OBJECT_HANDLE hObject)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_verifyPointer
      Src: /src/nss/lib/ckfw/instance.c:764,1
    - Dst: nssCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/instance.c:770,1
    - Dst: nssCKFWHash_Lookup
      Src: /src/nss/lib/ckfw/instance.c:775,1
    - Dst: CKSessionHandleToVoidPtr
      Src: /src/nss/lib/ckfw/instance.c:776,1
    - Dst: nssCKFWObject_SetHandle
      Src: /src/nss/lib/ckfw/instance.c:779,1
    - Dst: nssCKFWHash_Remove
      Src: /src/nss/lib/ckfw/instance.c:780,1
    - Dst: CKSessionHandleToVoidPtr
      Src: /src/nss/lib/ckfw/instance.c:780,1
    - Dst: nssCKFWObject_SetHandle
      Src: /src/nss/lib/ckfw/instance.c:783,1
    - Dst: nssCKFWHash_Add
      Src: /src/nss/lib/ckfw/instance.c:787,1
    - Dst: CKSessionHandleToVoidPtr
      Src: /src/nss/lib/ckfw/instance.c:788,1
    - Dst: nssCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/instance.c:791,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - fwInstance
    - hObject
    - fwObject
    argTypes:
    - NSSCKFWInstance*
    - CK_OBJECT_HANDLE
    - NSSCKFWObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 754
    functionDepth: 3
    functionLinenumber: 754
    functionLinenumberEnd: 793
    functionName: nssCKFWInstance_ReassignObjectHandle
    functionSourceFile: /src/nss/lib/ckfw/instance.c
    functionUses: 0
    functionsReached:
    - nssCKFWHash_Remove
    - nssCKFWObject_SetHandle
    - nssCKFWInstance_verifyPointer
    - nssCKFWHash_Lookup
    - nssCKFWMutex_Lock
    - nssCKFWHash_Add
    - CKSessionHandleToVoidPtr
    - nssCKFWMutex_Unlock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWInstance_ReassignObjectHandle(\n    NSSCKFWInstance
      *fwInstance,\n    CK_OBJECT_HANDLE hObject,\n    NSSCKFWObject *fwObject)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_verifyPointer
      Src: /src/nss/lib/ckfw/instance.c:807,1
    - Dst: nssCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/instance.c:812,1
    - Dst: nssCKFWHash_Lookup
      Src: /src/nss/lib/ckfw/instance.c:816,1
    - Dst: CKSessionHandleToVoidPtr
      Src: /src/nss/lib/ckfw/instance.c:817,1
    - Dst: nssCKFWHash_Remove
      Src: /src/nss/lib/ckfw/instance.c:820,1
    - Dst: CKSessionHandleToVoidPtr
      Src: /src/nss/lib/ckfw/instance.c:820,1
    - Dst: nssCKFWObject_SetHandle
      Src: /src/nss/lib/ckfw/instance.c:821,1
    - Dst: nssCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/instance.c:824,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - fwInstance
    - hObject
    argTypes:
    - NSSCKFWInstance*
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 799
    functionDepth: 3
    functionLinenumber: 799
    functionLinenumberEnd: 826
    functionName: nssCKFWInstance_DestroyObjectHandle
    functionSourceFile: /src/nss/lib/ckfw/instance.c
    functionUses: 1
    functionsReached:
    - nssCKFWHash_Remove
    - nssCKFWObject_SetHandle
    - nssCKFWInstance_verifyPointer
    - nssCKFWHash_Lookup
    - nssCKFWMutex_Lock
    - CKSessionHandleToVoidPtr
    - nssCKFWMutex_Unlock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWInstance_DestroyObjectHandle(\n    NSSCKFWInstance
      *fwInstance,\n    CK_OBJECT_HANDLE hObject)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_verifyPointer
      Src: /src/nss/lib/ckfw/instance.c:838,1
    - Dst: nssCKFWObject_verifyPointer
      Src: /src/nss/lib/ckfw/instance.c:842,1
    - Dst: CK_OBJECT_HANDLE::nssCKFWObject_GetHandle
      Src: /src/nss/lib/ckfw/instance.c:847,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - fwInstance
    - fwObject
    argTypes:
    - NSSCKFWInstance*
    - NSSCKFWObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 832
    functionDepth: 2
    functionLinenumber: 832
    functionLinenumberEnd: 848
    functionName: CK_OBJECT_HANDLE::nssCKFWInstance_FindObjectHandle
    functionSourceFile: /src/nss/lib/ckfw/instance.c
    functionUses: 0
    functionsReached:
    - nssCKFWObject_verifyPointer
    - nssCKFWInstance_verifyPointer
    - CK_OBJECT_HANDLE::nssCKFWObject_GetHandle
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT CK_OBJECT_HANDLE\nnssCKFWInstance_FindObjectHandle(\n
      \   NSSCKFWInstance *fwInstance,\n    NSSCKFWObject *fwObject)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_verifyPointer
      Src: /src/nss/lib/ckfw/instance.c:864,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - fwInstance
    - pError
    argTypes:
    - NSSCKFWInstance*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 854
    functionDepth: 1
    functionLinenumber: 854
    functionLinenumberEnd: 872
    functionName: nssCKFWInstance_GetNSlots
    functionSourceFile: /src/nss/lib/ckfw/instance.c
    functionUses: 9
    functionsReached:
    - nssCKFWInstance_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWInstance_GetNSlots(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_RV *pError)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_verifyPointer
      Src: /src/nss/lib/ckfw/instance.c:885,1
    - Dst: nssCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/instance.c:891,1
    - Dst: NSSCKFWInstance*::mdInstance::GetCryptokiVersion
      Src: /src/nss/lib/ckfw/instance.c:903,1
    - Dst: nssCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/instance.c:913,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - fwInstance
    argTypes:
    - NSSCKFWInstance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 878
    functionDepth: 2
    functionLinenumber: 878
    functionLinenumberEnd: 915
    functionName: nssCKFWInstance_GetCryptokiVersion
    functionSourceFile: /src/nss/lib/ckfw/instance.c
    functionUses: 1
    functionsReached:
    - nssCKFWMutex_Unlock
    - NSSCKFWInstance*::mdInstance::GetCryptokiVersion
    - nssCKFWInstance_verifyPointer
    - nssCKFWMutex_Lock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWInstance_GetCryptokiVersion(\n    NSSCKFWInstance
      *fwInstance)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_verifyPointer
      Src: /src/nss/lib/ckfw/instance.c:933,1
    - Dst: nssCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/instance.c:939,1
    - Dst: NSSCKFWInstance*::mdInstance::GetManufacturerID
      Src: /src/nss/lib/ckfw/instance.c:946,1
    - Dst: nssUTF8_CopyIntoFixedBuffer
      Src: /src/nss/lib/ckfw/instance.c:956,1
    - Dst: nssCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/instance.c:960,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - fwInstance
    - manufacturerID
    argTypes:
    - NSSCKFWInstance*
    - CK_CHAR[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 921
    functionDepth: 2
    functionLinenumber: 921
    functionLinenumberEnd: 962
    functionName: nssCKFWInstance_GetManufacturerID
    functionSourceFile: /src/nss/lib/ckfw/instance.c
    functionUses: 1
    functionsReached:
    - NSSCKFWInstance*::mdInstance::GetManufacturerID
    - nssCKFWInstance_verifyPointer
    - nssCKFWMutex_Lock
    - nssCKFWMutex_Unlock
    - nssUTF8_CopyIntoFixedBuffer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWInstance_GetManufacturerID(\n    NSSCKFWInstance
      *fwInstance,\n    CK_CHAR manufacturerID[32])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_verifyPointer
      Src: /src/nss/lib/ckfw/instance.c:973,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fwInstance
    argTypes:
    - NSSCKFWInstance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 968
    functionDepth: 1
    functionLinenumber: 968
    functionLinenumberEnd: 980
    functionName: nssCKFWInstance_GetFlags
    functionSourceFile: /src/nss/lib/ckfw/instance.c
    functionUses: 1
    functionsReached:
    - nssCKFWInstance_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWInstance_GetFlags(\n    NSSCKFWInstance *fwInstance)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_verifyPointer
      Src: /src/nss/lib/ckfw/instance.c:998,1
    - Dst: nssCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/instance.c:1004,1
    - Dst: NSSCKFWInstance*::mdInstance::GetLibraryDescription
      Src: /src/nss/lib/ckfw/instance.c:1011,1
    - Dst: nssUTF8_CopyIntoFixedBuffer
      Src: /src/nss/lib/ckfw/instance.c:1021,1
    - Dst: nssCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/instance.c:1025,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - fwInstance
    - libraryDescription
    argTypes:
    - NSSCKFWInstance*
    - CK_CHAR[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1027
      start: 986
    functionDepth: 2
    functionLinenumber: 986
    functionLinenumberEnd: 1027
    functionName: nssCKFWInstance_GetLibraryDescription
    functionSourceFile: /src/nss/lib/ckfw/instance.c
    functionUses: 1
    functionsReached:
    - nssCKFWInstance_verifyPointer
    - nssCKFWMutex_Lock
    - NSSCKFWInstance*::mdInstance::GetLibraryDescription
    - nssCKFWMutex_Unlock
    - nssUTF8_CopyIntoFixedBuffer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWInstance_GetLibraryDescription(\n    NSSCKFWInstance
      *fwInstance,\n    CK_CHAR libraryDescription[32])"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_verifyPointer
      Src: /src/nss/lib/ckfw/instance.c:1040,1
    - Dst: nssCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/instance.c:1046,1
    - Dst: NSSCKFWInstance*::mdInstance::GetLibraryVersion
      Src: /src/nss/lib/ckfw/instance.c:1058,1
    - Dst: nssCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/instance.c:1067,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - fwInstance
    argTypes:
    - NSSCKFWInstance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1033
    functionDepth: 2
    functionLinenumber: 1033
    functionLinenumberEnd: 1069
    functionName: nssCKFWInstance_GetLibraryVersion
    functionSourceFile: /src/nss/lib/ckfw/instance.c
    functionUses: 1
    functionsReached:
    - nssCKFWMutex_Unlock
    - NSSCKFWInstance*::mdInstance::GetLibraryVersion
    - nssCKFWInstance_verifyPointer
    - nssCKFWMutex_Lock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWInstance_GetLibraryVersion(\n    NSSCKFWInstance
      *fwInstance)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_verifyPointer
      Src: /src/nss/lib/ckfw/instance.c:1080,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fwInstance
    argTypes:
    - NSSCKFWInstance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1086
      start: 1075
    functionDepth: 1
    functionLinenumber: 1075
    functionLinenumberEnd: 1086
    functionName: nssCKFWInstance_GetModuleHandlesSessionObjects
    functionSourceFile: /src/nss/lib/ckfw/instance.c
    functionUses: 4
    functionsReached:
    - nssCKFWInstance_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKFWInstance_GetModuleHandlesSessionObjects(\n    NSSCKFWInstance
      *fwInstance)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_verifyPointer
      Src: /src/nss/lib/ckfw/instance.c:1102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1109
      start: 1092
    functionDepth: 1
    functionLinenumber: 1092
    functionLinenumberEnd: 1109
    functionName: "NSSCKFWSlot **\nnssCKFWInstance_GetSlots(\n    NSSCKFWInstance
      *fwInstance,\n    CK_RV *pError)"
    functionSourceFile: /src/nss/lib/ckfw/instance.c
    functionUses: 0
    functionsReached:
    - nssCKFWInstance_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWSlot **\nnssCKFWInstance_GetSlots(\n    NSSCKFWInstance
      *fwInstance,\n    CK_RV *pError)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_verifyPointer
      Src: /src/nss/lib/ckfw/instance.c:1130,1
    - Dst: mdInstance::WaitForSlotEvent
      Src: /src/nss/lib/ckfw/instance.c:1150,1
    - Dst: nssCKFWInstance_GetNSlots
      Src: /src/nss/lib/ckfw/instance.c:1160,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1115
    functionDepth: 2
    functionLinenumber: 1115
    functionLinenumberEnd: 1179
    functionName: "NSSCKFWSlot *\nnssCKFWInstance_WaitForSlotEvent(\n    NSSCKFWInstance
      *fwInstance,\n    CK_BBOOL block,\n    CK_RV *pError)"
    functionSourceFile: /src/nss/lib/ckfw/instance.c
    functionUses: 0
    functionsReached:
    - mdInstance::WaitForSlotEvent
    - nssCKFWInstance_GetNSlots
    - nssCKFWInstance_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWSlot *\nnssCKFWInstance_WaitForSlotEvent(\n    NSSCKFWInstance
      *fwInstance,\n    CK_BBOOL block,\n    CK_RV *pError)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_verifyPointer
      Src: /src/nss/lib/ckfw/instance.c:1190,1
    - Dst: nssCKFWInstance_GetMDInstance
      Src: /src/nss/lib/ckfw/instance.c:1195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1196
      start: 1185
    functionDepth: 1
    functionLinenumber: 1185
    functionLinenumberEnd: 1196
    functionName: "NSSCKMDInstance *\nNSSCKFWInstance_GetMDInstance(\n    NSSCKFWInstance
      *fwInstance)"
    functionSourceFile: /src/nss/lib/ckfw/instance.c
    functionUses: 0
    functionsReached:
    - nssCKFWInstance_GetMDInstance
    - nssCKFWInstance_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKMDInstance *\nNSSCKFWInstance_GetMDInstance(\n
      \   NSSCKFWInstance *fwInstance)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_verifyPointer
      Src: /src/nss/lib/ckfw/instance.c:1212,1
    - Dst: nssCKFWInstance_GetArena
      Src: /src/nss/lib/ckfw/instance.c:1218,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - fwInstance
    - pError
    argTypes:
    - NSSCKFWInstance*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1219
      start: 1202
    functionDepth: 2
    functionLinenumber: 1202
    functionLinenumberEnd: 1219
    functionName: NSSCKFWInstance_GetArena
    functionSourceFile: /src/nss/lib/ckfw/instance.c
    functionUses: 0
    functionsReached:
    - nssCKFWInstance_GetArena
    - nssCKFWInstance_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSCKFWInstance_GetArena(\n    NSSCKFWInstance *fwInstance,\n
      \   CK_RV *pError)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_verifyPointer
      Src: /src/nss/lib/ckfw/instance.c:1230,1
    - Dst: nssCKFWInstance_MayCreatePthreads
      Src: /src/nss/lib/ckfw/instance.c:1235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fwInstance
    argTypes:
    - NSSCKFWInstance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1236
      start: 1225
    functionDepth: 2
    functionLinenumber: 1225
    functionLinenumberEnd: 1236
    functionName: NSSCKFWInstance_MayCreatePthreads
    functionSourceFile: /src/nss/lib/ckfw/instance.c
    functionUses: 0
    functionsReached:
    - nssCKFWInstance_MayCreatePthreads
    - nssCKFWInstance_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWInstance_MayCreatePthreads(\n    NSSCKFWInstance
      *fwInstance)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_verifyPointer
      Src: /src/nss/lib/ckfw/instance.c:1253,1
    - Dst: nssCKFWInstance_CreateMutex
      Src: /src/nss/lib/ckfw/instance.c:1259,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1260
      start: 1242
    functionDepth: 1
    functionLinenumber: 1242
    functionLinenumberEnd: 1260
    functionName: "NSSCKFWMutex *\nNSSCKFWInstance_CreateMutex(\n    NSSCKFWInstance
      *fwInstance,\n    NSSArena *arena,\n    CK_RV *pError)"
    functionSourceFile: /src/nss/lib/ckfw/instance.c
    functionUses: 0
    functionsReached:
    - nssCKFWInstance_CreateMutex
    - nssCKFWInstance_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWMutex *\nNSSCKFWInstance_CreateMutex(\n    NSSCKFWInstance
      *fwInstance,\n    NSSArena *arena,\n    CK_RV *pError)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_verifyPointer
      Src: /src/nss/lib/ckfw/instance.c:1271,1
    - Dst: nssCKFWInstance_GetConfigurationData
      Src: /src/nss/lib/ckfw/instance.c:1276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fwInstance
    argTypes:
    - NSSCKFWInstance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1277
      start: 1266
    functionDepth: 2
    functionLinenumber: 1266
    functionLinenumberEnd: 1277
    functionName: NSSCKFWInstance_GetConfigurationData
    functionSourceFile: /src/nss/lib/ckfw/instance.c
    functionUses: 0
    functionsReached:
    - nssCKFWInstance_GetConfigurationData
    - nssCKFWInstance_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSCKFWInstance_GetConfigurationData(\n    NSSCKFWInstance
      *fwInstance)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_verifyPointer
      Src: /src/nss/lib/ckfw/instance.c:1288,1
    - Dst: nssCKFWInstance_GetInitArgs
      Src: /src/nss/lib/ckfw/instance.c:1293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fwInstance
    argTypes:
    - NSSCKFWInstance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1294
      start: 1283
    functionDepth: 2
    functionLinenumber: 1283
    functionLinenumberEnd: 1294
    functionName: CK_C_INITIALIZE_ARGS_PTR::NSSCKFWInstance_GetInitArgs
    functionSourceFile: /src/nss/lib/ckfw/instance.c
    functionUses: 0
    functionsReached:
    - nssCKFWInstance_GetInitArgs
    - nssCKFWInstance_verifyPointer
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT CK_C_INITIALIZE_ARGS_PTR\nNSSCKFWInstance_GetInitArgs(\n
      \   NSSCKFWInstance *fwInstance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWInstance_DestroySessionHandle
      Src: /src/nss/lib/ckfw/instance.c:1305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fwInstance
    - hSession
    argTypes:
    - NSSCKFWInstance*
    - CK_SESSION_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1306
      start: 1300
    functionDepth: 4
    functionLinenumber: 1300
    functionLinenumberEnd: 1306
    functionName: NSSCKFWInstance_DestroySessionHandle
    functionSourceFile: /src/nss/lib/ckfw/instance.c
    functionUses: 0
    functionsReached:
    - nssCKFWInstance_DestroySessionHandle
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKFWInstance_DestroySessionHandle(\n    NSSCKFWInstance
      *fwInstance,\n    CK_SESSION_HANDLE hSession)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CK_SESSION_HANDLE::nssCKFWInstance_FindSessionHandle
      Src: /src/nss/lib/ckfw/instance.c:1317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fwInstance
    - fwSession
    argTypes:
    - NSSCKFWInstance*
    - NSSCKFWSession*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1318
      start: 1312
    functionDepth: 3
    functionLinenumber: 1312
    functionLinenumberEnd: 1318
    functionName: CK_SESSION_HANDLE::NSSCKFWInstance_FindSessionHandle
    functionSourceFile: /src/nss/lib/ckfw/instance.c
    functionUses: 0
    functionsReached:
    - CK_SESSION_HANDLE::nssCKFWInstance_FindSessionHandle
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT CK_SESSION_HANDLE\nNSSCKFWInstance_FindSessionHandle(\n
      \   NSSCKFWInstance *fwInstance,\n    NSSCKFWSession *fwSession)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nss_ZNEW
      Src: /src/nss/lib/ckfw/crypto.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 79
    functionName: "NSSCKFWCryptoOperation *\nnssCKFWCryptoOperation_Create(\n    NSSCKMDCryptoOperation
      *mdOperation,\n    NSSCKMDSession *mdSession,\n    NSSCKFWSession *fwSession,\n
      \   NSSCKMDToken *mdToken,\n    NSSCKFWToken *fwToken,\n    NSSCKMDInstance
      *mdInstance,\n    NSSCKFWInstance *fwInstance,\n    NSSCKFWCryptoOperationType
      type,\n    CK_RV *pError)"
    functionSourceFile: /src/nss/lib/ckfw/crypto.c
    functionUses: 0
    functionsReached:
    - nss_ZNEW
    linkageType: ''
    returnType: NSS_EXTERN
    signature: "NSS_EXTERN NSSCKFWCryptoOperation *\nnssCKFWCryptoOperation_Create(\n
      \   NSSCKMDCryptoOperation *mdOperation,\n    NSSCKMDSession *mdSession,\n    NSSCKFWSession
      *fwSession,\n    NSSCKMDToken *mdToken,\n    NSSCKFWToken *fwToken,\n    NSSCKMDInstance
      *mdInstance,\n    NSSCKFWInstance *fwInstance,\n    NSSCKFWCryptoOperationType
      type,\n    CK_RV *pError)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NSSCKFWCryptoOperation*::mdOperation::Destroy
      Src: /src/nss/lib/ckfw/crypto.c:90,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/ckfw/crypto.c:97,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - fwOperation
    argTypes:
    - NSSCKFWCryptoOperation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 98
    functionName: nssCKFWCryptoOperation_Destroy
    functionSourceFile: /src/nss/lib/ckfw/crypto.c
    functionUses: 3
    functionsReached:
    - nss_ZFreeIf
    - NSSCKFWCryptoOperation*::mdOperation::Destroy
    linkageType: ''
    returnType: NSS_EXTERN
    signature: "NSS_EXTERN nssCKFWCryptoOperation_Destroy(\n    NSSCKFWCryptoOperation
      *fwOperation)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 108
    functionName: "NSSCKMDCryptoOperation *\nnssCKFWCryptoOperation_GetMDCryptoOperation(\n
      \   NSSCKFWCryptoOperation *fwOperation)"
    functionSourceFile: /src/nss/lib/ckfw/crypto.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSS_EXTERN
    signature: "NSS_EXTERN NSSCKMDCryptoOperation *\nnssCKFWCryptoOperation_GetMDCryptoOperation(\n
      \   NSSCKFWCryptoOperation *fwOperation)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fwOperation
    argTypes:
    - NSSCKFWCryptoOperation*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 118
    functionName: NSSCKFWCryptoOperationType::nssCKFWCryptoOperation_GetType
    functionSourceFile: /src/nss/lib/ckfw/crypto.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSS_EXTERN
    signature: "NSS_EXTERN NSSCKFWCryptoOperationType\nnssCKFWCryptoOperation_GetType(\n
      \   NSSCKFWCryptoOperation *fwOperation)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSSCKFWCryptoOperation*::mdOperation::GetFinalLength
      Src: /src/nss/lib/ckfw/crypto.c:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - fwOperation
    - pError
    argTypes:
    - NSSCKFWCryptoOperation*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 142
    functionName: nssCKFWCryptoOperation_GetFinalLength
    functionSourceFile: /src/nss/lib/ckfw/crypto.c
    functionUses: 2
    functionsReached:
    - NSSCKFWCryptoOperation*::mdOperation::GetFinalLength
    linkageType: ''
    returnType: NSS_EXTERN
    signature: "NSS_EXTERN nssCKFWCryptoOperation_GetFinalLength(\n    NSSCKFWCryptoOperation
      *fwOperation,\n    CK_RV *pError)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSSCKFWCryptoOperation*::mdOperation::GetOperationLength
      Src: /src/nss/lib/ckfw/crypto.c:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - fwOperation
    - inputBuffer
    - pError
    argTypes:
    - NSSCKFWCryptoOperation*
    - NSSItem*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 168
    functionName: nssCKFWCryptoOperation_GetOperationLength
    functionSourceFile: /src/nss/lib/ckfw/crypto.c
    functionUses: 3
    functionsReached:
    - NSSCKFWCryptoOperation*::mdOperation::GetOperationLength
    linkageType: ''
    returnType: NSS_EXTERN
    signature: "NSS_EXTERN nssCKFWCryptoOperation_GetOperationLength(\n    NSSCKFWCryptoOperation
      *fwOperation,\n    NSSItem *inputBuffer,\n    CK_RV *pError)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSSCKFWCryptoOperation*::mdOperation::Final
      Src: /src/nss/lib/ckfw/crypto.c:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - fwOperation
    - outputBuffer
    argTypes:
    - NSSCKFWCryptoOperation*
    - NSSItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 191
    functionName: nssCKFWCryptoOperation_Final
    functionSourceFile: /src/nss/lib/ckfw/crypto.c
    functionUses: 2
    functionsReached:
    - NSSCKFWCryptoOperation*::mdOperation::Final
    linkageType: ''
    returnType: NSS_EXTERN
    signature: "NSS_EXTERN nssCKFWCryptoOperation_Final(\n    NSSCKFWCryptoOperation
      *fwOperation,\n    NSSItem *outputBuffer)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSSCKFWCryptoOperation*::mdOperation::Update
      Src: /src/nss/lib/ckfw/crypto.c:205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - fwOperation
    - inputBuffer
    - outputBuffer
    argTypes:
    - NSSCKFWCryptoOperation*
    - NSSItem*
    - NSSItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 216
    functionName: nssCKFWCryptoOperation_Update
    functionSourceFile: /src/nss/lib/ckfw/crypto.c
    functionUses: 3
    functionsReached:
    - NSSCKFWCryptoOperation*::mdOperation::Update
    linkageType: ''
    returnType: NSS_EXTERN
    signature: "NSS_EXTERN nssCKFWCryptoOperation_Update(\n    NSSCKFWCryptoOperation
      *fwOperation,\n    NSSItem *inputBuffer,\n    NSSItem *outputBuffer)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSSCKFWCryptoOperation*::mdOperation::DigestUpdate
      Src: /src/nss/lib/ckfw/crypto.c:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - fwOperation
    - inputBuffer
    argTypes:
    - NSSCKFWCryptoOperation*
    - NSSItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 239
    functionName: nssCKFWCryptoOperation_DigestUpdate
    functionSourceFile: /src/nss/lib/ckfw/crypto.c
    functionUses: 4
    functionsReached:
    - NSSCKFWCryptoOperation*::mdOperation::DigestUpdate
    linkageType: ''
    returnType: NSS_EXTERN
    signature: "NSS_EXTERN nssCKFWCryptoOperation_DigestUpdate(\n    NSSCKFWCryptoOperation
      *fwOperation,\n    NSSItem *inputBuffer)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssCKFWObject_GetMDObject
      Src: /src/nss/lib/ckfw/crypto.c:255,1
    - Dst: NSSCKFWCryptoOperation*::mdOperation::DigestKey
      Src: /src/nss/lib/ckfw/crypto.c:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - fwOperation
    - fwObject
    argTypes:
    - NSSCKFWCryptoOperation*
    - NSSCKFWObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 265
    functionName: nssCKFWCryptoOperation_DigestKey
    functionSourceFile: /src/nss/lib/ckfw/crypto.c
    functionUses: 1
    functionsReached:
    - NSSCKFWCryptoOperation*::mdOperation::DigestKey
    - nssCKFWObject_GetMDObject
    linkageType: ''
    returnType: NSS_EXTERN
    signature: "NSS_EXTERN nssCKFWCryptoOperation_DigestKey(\n    NSSCKFWCryptoOperation
      *fwOperation,\n    NSSCKFWObject *fwObject /* Key */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSSCKFWCryptoOperation*::mdOperation::UpdateFinal
      Src: /src/nss/lib/ckfw/crypto.c:279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - fwOperation
    - inputBuffer
    - outputBuffer
    argTypes:
    - NSSCKFWCryptoOperation*
    - NSSItem*
    - NSSItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 290
    functionName: nssCKFWCryptoOperation_UpdateFinal
    functionSourceFile: /src/nss/lib/ckfw/crypto.c
    functionUses: 1
    functionsReached:
    - NSSCKFWCryptoOperation*::mdOperation::UpdateFinal
    linkageType: ''
    returnType: NSS_EXTERN
    signature: "NSS_EXTERN nssCKFWCryptoOperation_UpdateFinal(\n    NSSCKFWCryptoOperation
      *fwOperation,\n    NSSItem *inputBuffer,\n    NSSItem *outputBuffer)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSSCKFWCryptoOperation*::mdOperation::UpdateCombo
      Src: /src/nss/lib/ckfw/crypto.c:305,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - fwOperation
    - fwPeerOperation
    - inputBuffer
    - outputBuffer
    argTypes:
    - NSSCKFWCryptoOperation*
    - NSSCKFWCryptoOperation*
    - NSSItem*
    - NSSItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 318
    functionName: nssCKFWCryptoOperation_UpdateCombo
    functionSourceFile: /src/nss/lib/ckfw/crypto.c
    functionUses: 1
    functionsReached:
    - NSSCKFWCryptoOperation*::mdOperation::UpdateCombo
    linkageType: ''
    returnType: NSS_EXTERN
    signature: "NSS_EXTERN nssCKFWCryptoOperation_UpdateCombo(\n    NSSCKFWCryptoOperation
      *fwOperation,\n    NSSCKFWCryptoOperation *fwPeerOperation,\n    NSSItem *inputBuffer,\n
      \   NSSItem *outputBuffer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - mdObject
    - fwObject
    - mdSession
    - fwSession
    - mdToken
    - fwToken
    - mdInstance
    - fwInstance
    argTypes:
    - NSSCKMDObject*
    - NSSCKFWObject*
    - NSSCKMDSession*
    - NSSCKFWSession*
    - NSSCKMDToken*
    - NSSCKFWToken*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 38
    functionName: builtins_mdObject_Destroy
    functionSourceFile: /src/nss/lib/ckfw/builtins/bobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV builtins_mdObject_Destroy(\n    NSSCKMDObject *mdObject,\n    NSSCKFWObject
      *fwObject,\n    NSSCKMDSession *mdSession,\n    NSSCKFWSession *fwSession,\n
      \   NSSCKMDToken *mdToken,\n    NSSCKFWToken *fwToken,\n    NSSCKMDInstance
      *mdInstance,\n    NSSCKFWInstance *fwInstance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - mdObject
    - fwObject
    - mdSession
    - fwSession
    - mdToken
    - fwToken
    - mdInstance
    - fwInstance
    argTypes:
    - NSSCKMDObject*
    - NSSCKFWObject*
    - NSSCKMDSession*
    - NSSCKFWSession*
    - NSSCKMDToken*
    - NSSCKFWToken*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 52
    functionName: builtins_mdObject_IsTokenObject
    functionSourceFile: /src/nss/lib/ckfw/builtins/bobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_BBOOL
    signature: "CK_BBOOL builtins_mdObject_IsTokenObject(\n    NSSCKMDObject *mdObject,\n
      \   NSSCKFWObject *fwObject,\n    NSSCKMDSession *mdSession,\n    NSSCKFWSession
      *fwSession,\n    NSSCKMDToken *mdToken,\n    NSSCKFWToken *fwToken,\n    NSSCKMDInstance
      *mdInstance,\n    NSSCKFWInstance *fwInstance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 9
    argNames:
    - mdObject
    - fwObject
    - mdSession
    - fwSession
    - mdToken
    - fwToken
    - mdInstance
    - fwInstance
    - pError
    argTypes:
    - NSSCKMDObject*
    - NSSCKFWObject*
    - NSSCKMDSession*
    - NSSCKFWSession*
    - NSSCKMDToken*
    - NSSCKFWToken*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 68
    functionName: builtins_mdObject_GetAttributeCount
    functionSourceFile: /src/nss/lib/ckfw/builtins/bobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_ULONG
    signature: "CK_ULONG builtins_mdObject_GetAttributeCount(\n    NSSCKMDObject *mdObject,\n
      \   NSSCKFWObject *fwObject,\n    NSSCKMDSession *mdSession,\n    NSSCKFWSession
      *fwSession,\n    NSSCKMDToken *mdToken,\n    NSSCKFWToken *fwToken,\n    NSSCKMDInstance
      *mdInstance,\n    NSSCKFWInstance *fwInstance,\n    CK_RV *pError)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 10
    argNames:
    - mdObject
    - fwObject
    - mdSession
    - fwSession
    - mdToken
    - fwToken
    - mdInstance
    - fwInstance
    - typeArray
    - ulCount
    argTypes:
    - NSSCKMDObject*
    - NSSCKFWObject*
    - NSSCKMDSession*
    - NSSCKFWSession*
    - NSSCKMDToken*
    - NSSCKFWToken*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    - CK_ATTRIBUTE_TYPE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 95
    functionName: builtins_mdObject_GetAttributeTypes
    functionSourceFile: /src/nss/lib/ckfw/builtins/bobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV builtins_mdObject_GetAttributeTypes(\n    NSSCKMDObject *mdObject,\n
      \   NSSCKFWObject *fwObject,\n    NSSCKMDSession *mdSession,\n    NSSCKFWSession
      *fwSession,\n    NSSCKMDToken *mdToken,\n    NSSCKFWToken *fwToken,\n    NSSCKMDInstance
      *mdInstance,\n    NSSCKFWInstance *fwInstance,\n    CK_ATTRIBUTE_TYPE_PTR typeArray,\n
      \   CK_ULONG ulCount)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 10
    argNames:
    - mdObject
    - fwObject
    - mdSession
    - fwSession
    - mdToken
    - fwToken
    - mdInstance
    - fwInstance
    - attribute
    - pError
    argTypes:
    - NSSCKMDObject*
    - NSSCKFWObject*
    - NSSCKMDSession*
    - NSSCKFWSession*
    - NSSCKMDToken*
    - NSSCKFWToken*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    - CK_ATTRIBUTE_TYPE
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 121
    functionName: builtins_mdObject_GetAttributeSize
    functionSourceFile: /src/nss/lib/ckfw/builtins/bobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_ULONG
    signature: "CK_ULONG builtins_mdObject_GetAttributeSize(\n    NSSCKMDObject *mdObject,\n
      \   NSSCKFWObject *fwObject,\n    NSSCKMDSession *mdSession,\n    NSSCKFWSession
      *fwSession,\n    NSSCKMDToken *mdToken,\n    NSSCKFWToken *fwToken,\n    NSSCKMDInstance
      *mdInstance,\n    NSSCKFWInstance *fwInstance,\n    CK_ATTRIBUTE_TYPE attribute,\n
      \   CK_RV *pError)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 10
    argNames:
    - mdObject
    - fwObject
    - mdSession
    - fwSession
    - mdToken
    - fwToken
    - mdInstance
    - fwInstance
    - attribute
    - pError
    argTypes:
    - NSSCKMDObject*
    - NSSCKFWObject*
    - NSSCKMDSession*
    - NSSCKFWSession*
    - NSSCKMDToken*
    - NSSCKFWToken*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    - CK_ATTRIBUTE_TYPE
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 152
    functionName: builtins_mdObject_GetAttribute
    functionSourceFile: /src/nss/lib/ckfw/builtins/bobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSSCKFWItem
    signature: "NSSCKFWItem builtins_mdObject_GetAttribute(\n    NSSCKMDObject *mdObject,\n
      \   NSSCKFWObject *fwObject,\n    NSSCKMDSession *mdSession,\n    NSSCKFWSession
      *fwSession,\n    NSSCKMDToken *mdToken,\n    NSSCKFWToken *fwToken,\n    NSSCKMDInstance
      *mdInstance,\n    NSSCKFWInstance *fwInstance,\n    CK_ATTRIBUTE_TYPE attribute,\n
      \   CK_RV *pError)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 9
    argNames:
    - mdObject
    - fwObject
    - mdSession
    - fwSession
    - mdToken
    - fwToken
    - mdInstance
    - fwInstance
    - pError
    argTypes:
    - NSSCKMDObject*
    - NSSCKFWObject*
    - NSSCKMDSession*
    - NSSCKFWSession*
    - NSSCKMDToken*
    - NSSCKFWToken*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 175
    functionName: builtins_mdObject_GetObjectSize
    functionSourceFile: /src/nss/lib/ckfw/builtins/bobject.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_ULONG
    signature: "CK_ULONG builtins_mdObject_GetObjectSize(\n    NSSCKMDObject *mdObject,\n
      \   NSSCKFWObject *fwObject,\n    NSSCKMDSession *mdSession,\n    NSSCKFWSession
      *fwSession,\n    NSSCKMDToken *mdToken,\n    NSSCKFWToken *fwToken,\n    NSSCKMDInstance
      *mdInstance,\n    NSSCKFWInstance *fwInstance,\n    CK_RV *pError)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nsslibc_memcpy
      Src: /src/nss/lib/ckfw/builtins/bobject.c:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 206
    functionName: "NSSCKMDObject *\nnss_builtins_CreateMDObject(\n    NSSArena *arena,\n
      \   builtinsInternalObject *io,\n    CK_RV *pError)"
    functionSourceFile: /src/nss/lib/ckfw/builtins/bobject.c
    functionUses: 0
    functionsReached:
    - nsslibc_memcpy
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKMDObject *\nnss_builtins_CreateMDObject(\n    NSSArena
      *arena,\n    builtinsInternalObject *io,\n    CK_RV *pError)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - mdSlot
    - fwSlot
    - mdInstance
    - fwInstance
    - pError
    argTypes:
    - NSSCKMDSlot*
    - NSSCKFWSlot*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 23
    functionName: builtins_mdSlot_GetSlotDescription
    functionSourceFile: /src/nss/lib/ckfw/builtins/bslot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSSUTF8
    signature: "NSSUTF8 *\nbuiltins_mdSlot_GetSlotDescription(\n    NSSCKMDSlot *mdSlot,\n
      \   NSSCKFWSlot *fwSlot,\n    NSSCKMDInstance *mdInstance,\n    NSSCKFWInstance
      *fwInstance,\n    CK_RV *pError)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - mdSlot
    - fwSlot
    - mdInstance
    - fwInstance
    - pError
    argTypes:
    - NSSCKMDSlot*
    - NSSCKFWSlot*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 34
    functionName: builtins_mdSlot_GetManufacturerID
    functionSourceFile: /src/nss/lib/ckfw/builtins/bslot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSSUTF8
    signature: "NSSUTF8 *\nbuiltins_mdSlot_GetManufacturerID(\n    NSSCKMDSlot *mdSlot,\n
      \   NSSCKFWSlot *fwSlot,\n    NSSCKMDInstance *mdInstance,\n    NSSCKFWInstance
      *fwInstance,\n    CK_RV *pError)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - mdSlot
    - fwSlot
    - mdInstance
    - fwInstance
    argTypes:
    - NSSCKMDSlot*
    - NSSCKFWSlot*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 44
    functionName: builtins_mdSlot_GetHardwareVersion
    functionSourceFile: /src/nss/lib/ckfw/builtins/bslot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_VERSION
    signature: "CK_VERSION builtins_mdSlot_GetHardwareVersion(\n    NSSCKMDSlot *mdSlot,\n
      \   NSSCKFWSlot *fwSlot,\n    NSSCKMDInstance *mdInstance,\n    NSSCKFWInstance
      *fwInstance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - mdSlot
    - fwSlot
    - mdInstance
    - fwInstance
    argTypes:
    - NSSCKMDSlot*
    - NSSCKFWSlot*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 54
    functionName: builtins_mdSlot_GetFirmwareVersion
    functionSourceFile: /src/nss/lib/ckfw/builtins/bslot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_VERSION
    signature: "CK_VERSION builtins_mdSlot_GetFirmwareVersion(\n    NSSCKMDSlot *mdSlot,\n
      \   NSSCKFWSlot *fwSlot,\n    NSSCKMDInstance *mdInstance,\n    NSSCKFWInstance
      *fwInstance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - mdSlot
    - fwSlot
    - mdInstance
    - fwInstance
    - pError
    argTypes:
    - NSSCKMDSlot*
    - NSSCKFWSlot*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 65
    functionName: builtins_mdSlot_GetToken
    functionSourceFile: /src/nss/lib/ckfw/builtins/bslot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSSCKMDToken
    signature: "NSSCKMDToken *\nbuiltins_mdSlot_GetToken(\n    NSSCKMDSlot *mdSlot,\n
      \   NSSCKFWSlot *fwSlot,\n    NSSCKMDInstance *mdInstance,\n    NSSCKFWInstance
      *fwInstance,\n    CK_RV *pError)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mdInstance
    - fwInstance
    - pError
    argTypes:
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 25
    functionName: builtins_mdInstance_GetNSlots
    functionSourceFile: /src/nss/lib/ckfw/builtins/binst.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_ULONG
    signature: "CK_ULONG builtins_mdInstance_GetNSlots(\n    NSSCKMDInstance *mdInstance,\n
      \   NSSCKFWInstance *fwInstance,\n    CK_RV *pError)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mdInstance
    - fwInstance
    argTypes:
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 33
    functionName: builtins_mdInstance_GetCryptokiVersion
    functionSourceFile: /src/nss/lib/ckfw/builtins/binst.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_VERSION
    signature: "CK_VERSION builtins_mdInstance_GetCryptokiVersion(\n    NSSCKMDInstance
      *mdInstance,\n    NSSCKFWInstance *fwInstance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mdInstance
    - fwInstance
    - pError
    argTypes:
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 42
    functionName: builtins_mdInstance_GetManufacturerID
    functionSourceFile: /src/nss/lib/ckfw/builtins/binst.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSSUTF8
    signature: "NSSUTF8 *\nbuiltins_mdInstance_GetManufacturerID(\n    NSSCKMDInstance
      *mdInstance,\n    NSSCKFWInstance *fwInstance,\n    CK_RV *pError)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mdInstance
    - fwInstance
    - pError
    argTypes:
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 51
    functionName: builtins_mdInstance_GetLibraryDescription
    functionSourceFile: /src/nss/lib/ckfw/builtins/binst.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSSUTF8
    signature: "NSSUTF8 *\nbuiltins_mdInstance_GetLibraryDescription(\n    NSSCKMDInstance
      *mdInstance,\n    NSSCKFWInstance *fwInstance,\n    CK_RV *pError)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mdInstance
    - fwInstance
    argTypes:
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 61
    functionName: builtins_mdInstance_GetLibraryVersion
    functionSourceFile: /src/nss/lib/ckfw/builtins/binst.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_VERSION
    signature: "CK_VERSION builtins_mdInstance_GetLibraryVersion(\n    NSSCKMDInstance
      *mdInstance,\n    NSSCKFWInstance *fwInstance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - mdInstance
    - fwInstance
    - slots
    argTypes:
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    - NSSCKMDSlot*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 71
    functionName: builtins_mdInstance_GetSlots
    functionSourceFile: /src/nss/lib/ckfw/builtins/binst.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV builtins_mdInstance_GetSlots(\n    NSSCKMDInstance *mdInstance,\n
      \   NSSCKFWInstance *fwInstance,\n    NSSCKMDSlot *slots[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/ckfw/builtins/bfind.c:37,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/ckfw/builtins/bfind.c:38,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/ckfw/builtins/bfind.c:39,1
    - Dst: NSSArena_Destroy
      Src: /src/nss/lib/ckfw/builtins/bfind.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 8
    argNames:
    - mdFindObjects
    - fwFindObjects
    - mdSession
    - fwSession
    - mdToken
    - fwToken
    - mdInstance
    - fwInstance
    argTypes:
    - NSSCKMDFindObjects*
    - NSSCKFWFindObjects*
    - NSSCKMDSession*
    - NSSCKFWSession*
    - NSSCKMDToken*
    - NSSCKFWToken*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 45
    functionName: builtins_mdFindObjects_Final
    functionSourceFile: /src/nss/lib/ckfw/builtins/bfind.c
    functionUses: 0
    functionsReached:
    - nss_ZFreeIf
    - NSSArena_Destroy
    linkageType: ''
    returnType: void
    signature: "void builtins_mdFindObjects_Final(\n    NSSCKMDFindObjects *mdFindObjects,\n
      \   NSSCKFWFindObjects *fwFindObjects,\n    NSSCKMDSession *mdSession,\n    NSSCKFWSession
      *fwSession,\n    NSSCKMDToken *mdToken,\n    NSSCKFWToken *fwToken,\n    NSSCKMDInstance
      *mdInstance,\n    NSSCKFWInstance *fwInstance)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nss_builtins_CreateMDObject
      Src: /src/nss/lib/ckfw/builtins/bfind.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 10
    argNames:
    - mdFindObjects
    - fwFindObjects
    - mdSession
    - fwSession
    - mdToken
    - fwToken
    - mdInstance
    - fwInstance
    - arena
    - pError
    argTypes:
    - NSSCKMDFindObjects*
    - NSSCKFWFindObjects*
    - NSSCKMDSession*
    - NSSCKFWSession*
    - NSSCKMDToken*
    - NSSCKFWToken*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    - NSSArena*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 72
    functionName: builtins_mdFindObjects_Next
    functionSourceFile: /src/nss/lib/ckfw/builtins/bfind.c
    functionUses: 0
    functionsReached:
    - nss_builtins_CreateMDObject
    linkageType: ''
    returnType: NSSCKMDObject
    signature: "NSSCKMDObject *\nbuiltins_mdFindObjects_Next(\n    NSSCKMDFindObjects
      *mdFindObjects,\n    NSSCKFWFindObjects *fwFindObjects,\n    NSSCKMDSession
      *mdSession,\n    NSSCKFWSession *fwSession,\n    NSSCKMDToken *mdToken,\n    NSSCKFWToken
      *fwToken,\n    NSSCKMDInstance *mdInstance,\n    NSSCKFWInstance *fwInstance,\n
      \   NSSArena *arena,\n    CK_RV *pError)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - src
    - size
    - dest
    argTypes:
    - unsigned char*
    - int
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 100
    functionName: builtins_derUnwrapInt
    functionSourceFile: /src/nss/lib/ckfw/builtins/bfind.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int builtins_derUnwrapInt(unsigned char *src, int size, unsigned char
      **dest)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: builtins_derUnwrapInt
      Src: /src/nss/lib/ckfw/builtins/bfind.c:115,1
    - Dst: nsslibc_memequal
      Src: /src/nss/lib/ckfw/builtins/bfind.c:118,1
    - Dst: nsslibc_memequal
      Src: /src/nss/lib/ckfw/builtins/bfind.c:125,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - CK_ATTRIBUTE_PTR
    - NSSItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 132
    functionName: builtins_attrmatch
    functionSourceFile: /src/nss/lib/ckfw/builtins/bfind.c
    functionUses: 0
    functionsReached:
    - builtins_derUnwrapInt
    - nsslibc_memequal
    linkageType: ''
    returnType: CK_BBOOL
    signature: "CK_BBOOL builtins_attrmatch(\n    CK_ATTRIBUTE_PTR a,\n    const NSSItem
      *b)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: builtins_attrmatch
      Src: /src/nss/lib/ckfw/builtins/bfind.c:147,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - pTemplate
    - ulAttributeCount
    - o
    argTypes:
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    - builtinsInternalObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 163
    functionName: builtins_match
    functionSourceFile: /src/nss/lib/ckfw/builtins/bfind.c
    functionUses: 0
    functionsReached:
    - builtins_attrmatch
    linkageType: ''
    returnType: CK_BBOOL
    signature: "CK_BBOOL builtins_match(\n    CK_ATTRIBUTE_PTR pTemplate,\n    CK_ULONG
      ulAttributeCount,\n    builtinsInternalObject *o)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: NSSArena_Create
      Src: /src/nss/lib/ckfw/builtins/bfind.c:188,1
    - Dst: nss_ZNEW
      Src: /src/nss/lib/ckfw/builtins/bfind.c:193,1
    - Dst: nss_ZNEW
      Src: /src/nss/lib/ckfw/builtins/bfind.c:199,1
    - Dst: builtins_match
      Src: /src/nss/lib/ckfw/builtins/bfind.c:216,1
    - Dst: nss_ZNEWARRAY
      Src: /src/nss/lib/ckfw/builtins/bfind.c:220,1
    - Dst: nsslibc_memcpy
      Src: /src/nss/lib/ckfw/builtins/bfind.c:228,1
    - Dst: nss_ZNEWARRAY
      Src: /src/nss/lib/ckfw/builtins/bfind.c:237,1
    - Dst: nsslibc_memcpy
      Src: /src/nss/lib/ckfw/builtins/bfind.c:243,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/ckfw/builtins/bfind.c:245,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/ckfw/builtins/bfind.c:253,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/ckfw/builtins/bfind.c:255,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/ckfw/builtins/bfind.c:256,1
    - Dst: NSSArena_Destroy
      Src: /src/nss/lib/ckfw/builtins/bfind.c:258,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 62
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 165
    functionDepth: 3
    functionLinenumber: 165
    functionLinenumberEnd: 261
    functionName: "NSSCKMDFindObjects *\nnss_builtins_FindObjectsInit(\n    NSSCKFWSession
      *fwSession,\n    CK_ATTRIBUTE_PTR pTemplate,\n    CK_ULONG ulAttributeCount,\n
      \   CK_RV *pError)"
    functionSourceFile: /src/nss/lib/ckfw/builtins/bfind.c
    functionUses: 0
    functionsReached:
    - builtins_match
    - nss_ZNEWARRAY
    - nss_ZNEW
    - nss_ZFreeIf
    - nsslibc_memcpy
    - NSSArena_Create
    - NSSArena_Destroy
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKMDFindObjects *\nnss_builtins_FindObjectsInit(\n
      \   NSSCKFWSession *fwSession,\n    CK_ATTRIBUTE_PTR pTemplate,\n    CK_ULONG
      ulAttributeCount,\n    CK_RV *pError)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_builtins_FindObjectsInit
      Src: /src/nss/lib/ckfw/builtins/bsession.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 9
    argNames:
    - mdSession
    - fwSession
    - mdToken
    - fwToken
    - mdInstance
    - fwInstance
    - pTemplate
    - ulAttributeCount
    - pError
    argTypes:
    - NSSCKMDSession*
    - NSSCKFWSession*
    - NSSCKMDToken*
    - NSSCKFWToken*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 27
    functionName: builtins_mdSession_FindObjectsInit
    functionSourceFile: /src/nss/lib/ckfw/builtins/bsession.c
    functionUses: 0
    functionsReached:
    - nss_builtins_FindObjectsInit
    linkageType: ''
    returnType: NSSCKMDFindObjects
    signature: "NSSCKMDFindObjects *\nbuiltins_mdSession_FindObjectsInit(\n    NSSCKMDSession
      *mdSession,\n    NSSCKFWSession *fwSession,\n    NSSCKMDToken *mdToken,\n    NSSCKFWToken
      *fwToken,\n    NSSCKMDInstance *mdInstance,\n    NSSCKFWInstance *fwInstance,\n
      \   CK_ATTRIBUTE_PTR pTemplate,\n    CK_ULONG ulAttributeCount,\n    CK_RV *pError)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NSSCKFWSession_GetArena
      Src: /src/nss/lib/ckfw/builtins/bsession.c:37,1
    - Dst: nss_ZNEW
      Src: /src/nss/lib/ckfw/builtins/bsession.c:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 29
    functionDepth: 3
    functionLinenumber: 29
    functionLinenumberEnd: 71
    functionName: "NSSCKMDSession *\nnss_builtins_CreateSession(\n    NSSCKFWSession
      *fwSession,\n    CK_RV *pError)"
    functionSourceFile: /src/nss/lib/ckfw/builtins/bsession.c
    functionUses: 0
    functionsReached:
    - NSSCKFWSession_GetArena
    - nss_ZNEW
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKMDSession *\nnss_builtins_CreateSession(\n    NSSCKFWSession
      *fwSession,\n    CK_RV *pError)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - mdToken
    - fwToken
    - mdInstance
    - fwInstance
    - pError
    argTypes:
    - NSSCKMDToken*
    - NSSCKFWToken*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 23
    functionName: builtins_mdToken_GetLabel
    functionSourceFile: /src/nss/lib/ckfw/builtins/btoken.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSSUTF8
    signature: "NSSUTF8 *\nbuiltins_mdToken_GetLabel(\n    NSSCKMDToken *mdToken,\n
      \   NSSCKFWToken *fwToken,\n    NSSCKMDInstance *mdInstance,\n    NSSCKFWInstance
      *fwInstance,\n    CK_RV *pError)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - mdToken
    - fwToken
    - mdInstance
    - fwInstance
    - pError
    argTypes:
    - NSSCKMDToken*
    - NSSCKFWToken*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 34
    functionName: builtins_mdToken_GetManufacturerID
    functionSourceFile: /src/nss/lib/ckfw/builtins/btoken.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSSUTF8
    signature: "NSSUTF8 *\nbuiltins_mdToken_GetManufacturerID(\n    NSSCKMDToken *mdToken,\n
      \   NSSCKFWToken *fwToken,\n    NSSCKMDInstance *mdInstance,\n    NSSCKFWInstance
      *fwInstance,\n    CK_RV *pError)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - mdToken
    - fwToken
    - mdInstance
    - fwInstance
    - pError
    argTypes:
    - NSSCKMDToken*
    - NSSCKFWToken*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 45
    functionName: builtins_mdToken_GetModel
    functionSourceFile: /src/nss/lib/ckfw/builtins/btoken.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSSUTF8
    signature: "NSSUTF8 *\nbuiltins_mdToken_GetModel(\n    NSSCKMDToken *mdToken,\n
      \   NSSCKFWToken *fwToken,\n    NSSCKMDInstance *mdInstance,\n    NSSCKFWInstance
      *fwInstance,\n    CK_RV *pError)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - mdToken
    - fwToken
    - mdInstance
    - fwInstance
    - pError
    argTypes:
    - NSSCKMDToken*
    - NSSCKFWToken*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 56
    functionName: builtins_mdToken_GetSerialNumber
    functionSourceFile: /src/nss/lib/ckfw/builtins/btoken.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSSUTF8
    signature: "NSSUTF8 *\nbuiltins_mdToken_GetSerialNumber(\n    NSSCKMDToken *mdToken,\n
      \   NSSCKFWToken *fwToken,\n    NSSCKMDInstance *mdInstance,\n    NSSCKFWInstance
      *fwInstance,\n    CK_RV *pError)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - mdToken
    - fwToken
    - mdInstance
    - fwInstance
    argTypes:
    - NSSCKMDToken*
    - NSSCKFWToken*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 66
    functionName: builtins_mdToken_GetIsWriteProtected
    functionSourceFile: /src/nss/lib/ckfw/builtins/btoken.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_BBOOL
    signature: "CK_BBOOL builtins_mdToken_GetIsWriteProtected(\n    NSSCKMDToken *mdToken,\n
      \   NSSCKFWToken *fwToken,\n    NSSCKMDInstance *mdInstance,\n    NSSCKFWInstance
      *fwInstance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - mdToken
    - fwToken
    - mdInstance
    - fwInstance
    argTypes:
    - NSSCKMDToken*
    - NSSCKFWToken*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 76
    functionName: builtins_mdToken_GetHardwareVersion
    functionSourceFile: /src/nss/lib/ckfw/builtins/btoken.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_VERSION
    signature: "CK_VERSION builtins_mdToken_GetHardwareVersion(\n    NSSCKMDToken
      *mdToken,\n    NSSCKFWToken *fwToken,\n    NSSCKMDInstance *mdInstance,\n    NSSCKFWInstance
      *fwInstance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - mdToken
    - fwToken
    - mdInstance
    - fwInstance
    argTypes:
    - NSSCKMDToken*
    - NSSCKFWToken*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 86
    functionName: builtins_mdToken_GetFirmwareVersion
    functionSourceFile: /src/nss/lib/ckfw/builtins/btoken.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_VERSION
    signature: "CK_VERSION builtins_mdToken_GetFirmwareVersion(\n    NSSCKMDToken
      *mdToken,\n    NSSCKFWToken *fwToken,\n    NSSCKMDInstance *mdInstance,\n    NSSCKFWInstance
      *fwInstance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_builtins_CreateSession
      Src: /src/nss/lib/ckfw/builtins/btoken.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - mdToken
    - fwToken
    - mdInstance
    - fwInstance
    - fwSession
    - rw
    - pError
    argTypes:
    - NSSCKMDToken*
    - NSSCKFWToken*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    - NSSCKFWSession*
    - CK_BBOOL
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 99
    functionName: builtins_mdToken_OpenSession
    functionSourceFile: /src/nss/lib/ckfw/builtins/btoken.c
    functionUses: 0
    functionsReached:
    - nss_builtins_CreateSession
    linkageType: ''
    returnType: NSSCKMDSession
    signature: "NSSCKMDSession *\nbuiltins_mdToken_OpenSession(\n    NSSCKMDToken
      *mdToken,\n    NSSCKFWToken *fwToken,\n    NSSCKMDInstance *mdInstance,\n    NSSCKFWInstance
      *fwInstance,\n    NSSCKFWSession *fwSession,\n    CK_BBOOL rw,\n    CK_RV *pError)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSSCKFWMutex_Destroy
      Src: /src/nss/lib/ckfw/dbm/find.c:21,1
    - Dst: NSSArena_Destroy
      Src: /src/nss/lib/ckfw/dbm/find.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 8
    argNames:
    - mdFindObjects
    - fwFindObjects
    - mdSession
    - fwSession
    - mdToken
    - fwToken
    - mdInstance
    - fwInstance
    argTypes:
    - NSSCKMDFindObjects*
    - NSSCKFWFindObjects*
    - NSSCKMDSession*
    - NSSCKFWSession*
    - NSSCKMDToken*
    - NSSCKFWToken*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 7
    functionDepth: 3
    functionLinenumber: 7
    functionLinenumberEnd: 23
    functionName: nss_dbm_mdFindObjects_Final
    functionSourceFile: /src/nss/lib/ckfw/dbm/find.c
    functionUses: 0
    functionsReached:
    - NSSCKFWMutex_Destroy
    - NSSArena_Destroy
    linkageType: ''
    returnType: void
    signature: "void nss_dbm_mdFindObjects_Final(\n    NSSCKMDFindObjects *mdFindObjects,\n
      \   NSSCKFWFindObjects *fwFindObjects,\n    NSSCKMDSession *mdSession,\n    NSSCKFWSession
      *fwSession,\n    NSSCKMDToken *mdToken,\n    NSSCKFWToken *fwToken,\n    NSSCKMDInstance
      *mdInstance,\n    NSSCKFWInstance *fwInstance)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: NSSCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/dbm/find.c:46,1
    - Dst: NSSCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/dbm/find.c:56,1
    - Dst: nss_dbm_db_object_still_exists
      Src: /src/nss/lib/ckfw/dbm/find.c:67,1
    - Dst: nss_ZNEW
      Src: /src/nss/lib/ckfw/dbm/find.c:77,1
    - Dst: nss_ZNEW
      Src: /src/nss/lib/ckfw/dbm/find.c:84,1
    - Dst: nss_ZAlloc
      Src: /src/nss/lib/ckfw/dbm/find.c:92,1
    - Dst: memcpy
      Src: /src/nss/lib/ckfw/dbm/find.c:98,1
    - Dst: nss_dbm_mdObject_factory
      Src: /src/nss/lib/ckfw/dbm/find.c:100,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 50
    argCount: 10
    argNames:
    - mdFindObjects
    - fwFindObjects
    - mdSession
    - fwSession
    - mdToken
    - fwToken
    - mdInstance
    - fwInstance
    - arena
    - pError
    argTypes:
    - NSSCKMDFindObjects*
    - NSSCKFWFindObjects*
    - NSSCKMDSession*
    - NSSCKFWSession*
    - NSSCKMDToken*
    - NSSCKFWToken*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    - NSSArena*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 25
    functionDepth: 3
    functionLinenumber: 25
    functionLinenumberEnd: 106
    functionName: nss_dbm_mdFindObjects_Next
    functionSourceFile: /src/nss/lib/ckfw/dbm/find.c
    functionUses: 0
    functionsReached:
    - nss_dbm_db_object_still_exists
    - memcpy
    - NSSCKFWMutex_Unlock
    - nss_dbm_mdObject_factory
    - nss_ZNEW
    - nss_ZAlloc
    - NSSCKFWMutex_Lock
    linkageType: ''
    returnType: NSSCKMDObject
    signature: "NSSCKMDObject *\nnss_dbm_mdFindObjects_Next(\n    NSSCKMDFindObjects
      *mdFindObjects,\n    NSSCKFWFindObjects *fwFindObjects,\n    NSSCKMDSession
      *mdSession,\n    NSSCKFWSession *fwSession,\n    NSSCKMDToken *mdToken,\n    NSSCKFWToken
      *fwToken,\n    NSSCKMDInstance *mdInstance,\n    NSSCKFWInstance *fwInstance,\n
      \   NSSArena *arena,\n    CK_RV *pError)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nss_ZNEW
      Src: /src/nss/lib/ckfw/dbm/find.c:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 126
    functionName: "NSSCKMDFindObjects *\nnss_dbm_mdFindObjects_factory(\n    nss_dbm_find_t
      *find,\n    CK_RV *pError)"
    functionSourceFile: /src/nss/lib/ckfw/dbm/find.c
    functionUses: 0
    functionsReached:
    - nss_ZNEW
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKMDFindObjects *\nnss_dbm_mdFindObjects_factory(\n
      \   nss_dbm_find_t *find,\n    CK_RV *pError)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nss_dbm_db_open
      Src: /src/nss/lib/ckfw/dbm/slot.c:18,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - mdSlot
    - fwSlot
    - mdInstance
    - fwInstance
    argTypes:
    - NSSCKMDSlot*
    - NSSCKFWSlot*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 28
    functionName: nss_dbm_mdSlot_Initialize
    functionSourceFile: /src/nss/lib/ckfw/dbm/slot.c
    functionUses: 0
    functionsReached:
    - nss_dbm_db_open
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV nss_dbm_mdSlot_Initialize(\n    NSSCKMDSlot *mdSlot,\n    NSSCKFWSlot
      *fwSlot,\n    NSSCKMDInstance *mdInstance,\n    NSSCKFWInstance *fwInstance)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nss_dbm_db_close
      Src: /src/nss/lib/ckfw/dbm/slot.c:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - mdSlot
    - fwSlot
    - mdInstance
    - fwInstance
    argTypes:
    - NSSCKMDSlot*
    - NSSCKFWSlot*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 43
    functionName: nss_dbm_mdSlot_Destroy
    functionSourceFile: /src/nss/lib/ckfw/dbm/slot.c
    functionUses: 0
    functionsReached:
    - nss_dbm_db_close
    linkageType: ''
    returnType: void
    signature: "void nss_dbm_mdSlot_Destroy(\n    NSSCKMDSlot *mdSlot,\n    NSSCKFWSlot
      *fwSlot,\n    NSSCKMDInstance *mdInstance,\n    NSSCKFWInstance *fwInstance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - mdSlot
    - fwSlot
    - mdInstance
    - fwInstance
    - pError
    argTypes:
    - NSSCKMDSlot*
    - NSSCKFWSlot*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 54
    functionName: nss_dbm_mdSlot_GetSlotDescription
    functionSourceFile: /src/nss/lib/ckfw/dbm/slot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSSUTF8
    signature: "NSSUTF8 *\nnss_dbm_mdSlot_GetSlotDescription(\n    NSSCKMDSlot *mdSlot,\n
      \   NSSCKFWSlot *fwSlot,\n    NSSCKMDInstance *mdInstance,\n    NSSCKFWInstance
      *fwInstance,\n    CK_RV *pError)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - mdSlot
    - fwSlot
    - mdInstance
    - fwInstance
    - pError
    argTypes:
    - NSSCKMDSlot*
    - NSSCKFWSlot*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 65
    functionName: nss_dbm_mdSlot_GetManufacturerID
    functionSourceFile: /src/nss/lib/ckfw/dbm/slot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSSUTF8
    signature: "NSSUTF8 *\nnss_dbm_mdSlot_GetManufacturerID(\n    NSSCKMDSlot *mdSlot,\n
      \   NSSCKFWSlot *fwSlot,\n    NSSCKMDInstance *mdInstance,\n    NSSCKFWInstance
      *fwInstance,\n    CK_RV *pError)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - mdSlot
    - fwSlot
    - mdInstance
    - fwInstance
    argTypes:
    - NSSCKMDSlot*
    - NSSCKFWSlot*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 81
    functionName: nss_dbm_mdSlot_GetTokenPresent
    functionSourceFile: /src/nss/lib/ckfw/dbm/slot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_BBOOL
    signature: "CK_BBOOL nss_dbm_mdSlot_GetTokenPresent(\n    NSSCKMDSlot *mdSlot,\n
      \   NSSCKFWSlot *fwSlot,\n    NSSCKMDInstance *mdInstance,\n    NSSCKFWInstance
      *fwInstance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - mdSlot
    - fwSlot
    - mdInstance
    - fwInstance
    argTypes:
    - NSSCKMDSlot*
    - NSSCKFWSlot*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 99
    functionName: nss_dbm_mdSlot_GetRemovableDevice
    functionSourceFile: /src/nss/lib/ckfw/dbm/slot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_BBOOL
    signature: "CK_BBOOL nss_dbm_mdSlot_GetRemovableDevice(\n    NSSCKMDSlot *mdSlot,\n
      \   NSSCKFWSlot *fwSlot,\n    NSSCKMDInstance *mdInstance,\n    NSSCKFWInstance
      *fwInstance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_dbm_mdToken_factory
      Src: /src/nss/lib/ckfw/dbm/slot.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - mdSlot
    - fwSlot
    - mdInstance
    - fwInstance
    - pError
    argTypes:
    - NSSCKMDSlot*
    - NSSCKFWSlot*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 122
    functionName: nss_dbm_mdSlot_GetToken
    functionSourceFile: /src/nss/lib/ckfw/dbm/slot.c
    functionUses: 0
    functionsReached:
    - nss_dbm_mdToken_factory
    linkageType: ''
    returnType: NSSCKMDToken
    signature: "NSSCKMDToken *\nnss_dbm_mdSlot_GetToken(\n    NSSCKMDSlot *mdSlot,\n
      \   NSSCKFWSlot *fwSlot,\n    NSSCKMDInstance *mdInstance,\n    NSSCKFWInstance
      *fwInstance,\n    CK_RV *pError)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nss_ZNEW
      Src: /src/nss/lib/ckfw/dbm/slot.c:134,1
    - Dst: nss_ZNEW
      Src: /src/nss/lib/ckfw/dbm/slot.c:145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 165
    functionName: "NSSCKMDSlot *\nnss_dbm_mdSlot_factory(\n    nss_dbm_instance_t
      *instance,\n    char *filename,\n    int flags,\n    CK_RV *pError)"
    functionSourceFile: /src/nss/lib/ckfw/dbm/slot.c
    functionUses: 0
    functionsReached:
    - nss_ZNEW
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKMDSlot *\nnss_dbm_mdSlot_factory(\n    nss_dbm_instance_t
      *instance,\n    char *filename,\n    int flags,\n    CK_RV *pError)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - mdObject
    - fwObject
    - mdSession
    - fwSession
    - mdToken
    - fwToken
    - mdInstance
    - fwInstance
    argTypes:
    - NSSCKMDObject*
    - NSSCKFWObject*
    - NSSCKMDSession*
    - NSSCKFWSession*
    - NSSCKMDToken*
    - NSSCKFWToken*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 19
    functionName: nss_dbm_mdObject_Finalize
    functionSourceFile: /src/nss/lib/ckfw/dbm/object.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void nss_dbm_mdObject_Finalize(\n    NSSCKMDObject *mdObject,\n    NSSCKFWObject
      *fwObject,\n    NSSCKMDSession *mdSession,\n    NSSCKFWSession *fwSession,\n
      \   NSSCKMDToken *mdToken,\n    NSSCKFWToken *fwToken,\n    NSSCKMDInstance
      *mdInstance,\n    NSSCKFWInstance *fwInstance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_dbm_db_delete_object
      Src: /src/nss/lib/ckfw/dbm/object.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - mdObject
    - fwObject
    - mdSession
    - fwSession
    - mdToken
    - fwToken
    - mdInstance
    - fwInstance
    argTypes:
    - NSSCKMDObject*
    - NSSCKFWObject*
    - NSSCKMDSession*
    - NSSCKFWSession*
    - NSSCKMDToken*
    - NSSCKFWToken*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 34
    functionName: nss_dbm_mdObject_Destroy
    functionSourceFile: /src/nss/lib/ckfw/dbm/object.c
    functionUses: 0
    functionsReached:
    - nss_dbm_db_delete_object
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV nss_dbm_mdObject_Destroy(\n    NSSCKMDObject *mdObject,\n    NSSCKFWObject
      *fwObject,\n    NSSCKMDSession *mdSession,\n    NSSCKFWSession *fwSession,\n
      \   NSSCKMDToken *mdToken,\n    NSSCKFWToken *fwToken,\n    NSSCKMDInstance
      *mdInstance,\n    NSSCKFWInstance *fwInstance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_dbm_db_get_object_attribute_count
      Src: /src/nss/lib/ckfw/dbm/object.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 9
    argNames:
    - mdObject
    - fwObject
    - mdSession
    - fwSession
    - mdToken
    - fwToken
    - mdInstance
    - fwInstance
    - pError
    argTypes:
    - NSSCKMDObject*
    - NSSCKFWObject*
    - NSSCKMDSession*
    - NSSCKFWSession*
    - NSSCKMDToken*
    - NSSCKFWToken*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 52
    functionName: nss_dbm_mdObject_GetAttributeCount
    functionSourceFile: /src/nss/lib/ckfw/dbm/object.c
    functionUses: 0
    functionsReached:
    - nss_dbm_db_get_object_attribute_count
    linkageType: ''
    returnType: CK_ULONG
    signature: "CK_ULONG nss_dbm_mdObject_GetAttributeCount(\n    NSSCKMDObject *mdObject,\n
      \   NSSCKFWObject *fwObject,\n    NSSCKMDSession *mdSession,\n    NSSCKFWSession
      *fwSession,\n    NSSCKMDToken *mdToken,\n    NSSCKFWToken *fwToken,\n    NSSCKMDInstance
      *mdInstance,\n    NSSCKFWInstance *fwInstance,\n    CK_RV *pError)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_dbm_db_get_object_attribute_types
      Src: /src/nss/lib/ckfw/dbm/object.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 10
    argNames:
    - mdObject
    - fwObject
    - mdSession
    - fwSession
    - mdToken
    - fwToken
    - mdInstance
    - fwInstance
    - typeArray
    - ulCount
    argTypes:
    - NSSCKMDObject*
    - NSSCKFWObject*
    - NSSCKMDSession*
    - NSSCKFWSession*
    - NSSCKMDToken*
    - NSSCKFWToken*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    - CK_ATTRIBUTE_TYPE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 71
    functionName: nss_dbm_mdObject_GetAttributeTypes
    functionSourceFile: /src/nss/lib/ckfw/dbm/object.c
    functionUses: 0
    functionsReached:
    - nss_dbm_db_get_object_attribute_types
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV nss_dbm_mdObject_GetAttributeTypes(\n    NSSCKMDObject *mdObject,\n
      \   NSSCKFWObject *fwObject,\n    NSSCKMDSession *mdSession,\n    NSSCKFWSession
      *fwSession,\n    NSSCKMDToken *mdToken,\n    NSSCKFWToken *fwToken,\n    NSSCKMDInstance
      *mdInstance,\n    NSSCKFWInstance *fwInstance,\n    CK_ATTRIBUTE_TYPE_PTR typeArray,\n
      \   CK_ULONG ulCount)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_dbm_db_get_object_attribute_size
      Src: /src/nss/lib/ckfw/dbm/object.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 10
    argNames:
    - mdObject
    - fwObject
    - mdSession
    - fwSession
    - mdToken
    - fwToken
    - mdInstance
    - fwInstance
    - attribute
    - pError
    argTypes:
    - NSSCKMDObject*
    - NSSCKFWObject*
    - NSSCKMDSession*
    - NSSCKFWSession*
    - NSSCKMDToken*
    - NSSCKFWToken*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    - CK_ATTRIBUTE_TYPE
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 90
    functionName: nss_dbm_mdObject_GetAttributeSize
    functionSourceFile: /src/nss/lib/ckfw/dbm/object.c
    functionUses: 0
    functionsReached:
    - nss_dbm_db_get_object_attribute_size
    linkageType: ''
    returnType: CK_ULONG
    signature: "CK_ULONG nss_dbm_mdObject_GetAttributeSize(\n    NSSCKMDObject *mdObject,\n
      \   NSSCKFWObject *fwObject,\n    NSSCKMDSession *mdSession,\n    NSSCKFWSession
      *fwSession,\n    NSSCKMDToken *mdToken,\n    NSSCKFWToken *fwToken,\n    NSSCKMDInstance
      *mdInstance,\n    NSSCKFWInstance *fwInstance,\n    CK_ATTRIBUTE_TYPE attribute,\n
      \   CK_RV *pError)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_dbm_db_get_object_attribute
      Src: /src/nss/lib/ckfw/dbm/object.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 10
    argNames:
    - mdObject
    - fwObject
    - mdSession
    - fwSession
    - mdToken
    - fwToken
    - mdInstance
    - fwInstance
    - attribute
    - pError
    argTypes:
    - NSSCKMDObject*
    - NSSCKFWObject*
    - NSSCKMDSession*
    - NSSCKFWSession*
    - NSSCKMDToken*
    - NSSCKFWToken*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    - CK_ATTRIBUTE_TYPE
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 109
    functionName: nss_dbm_mdObject_GetAttribute
    functionSourceFile: /src/nss/lib/ckfw/dbm/object.c
    functionUses: 0
    functionsReached:
    - nss_dbm_db_get_object_attribute
    linkageType: ''
    returnType: NSSItem
    signature: "NSSItem *\nnss_dbm_mdObject_GetAttribute(\n    NSSCKMDObject *mdObject,\n
      \   NSSCKFWObject *fwObject,\n    NSSCKMDSession *mdSession,\n    NSSCKFWSession
      *fwSession,\n    NSSCKMDToken *mdToken,\n    NSSCKFWToken *fwToken,\n    NSSCKMDInstance
      *mdInstance,\n    NSSCKFWInstance *fwInstance,\n    CK_ATTRIBUTE_TYPE attribute,\n
      \   CK_RV *pError)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_dbm_db_set_object_attribute
      Src: /src/nss/lib/ckfw/dbm/object.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 10
    argNames:
    - mdObject
    - fwObject
    - mdSession
    - fwSession
    - mdToken
    - fwToken
    - mdInstance
    - fwInstance
    - attribute
    - value
    argTypes:
    - NSSCKMDObject*
    - NSSCKFWObject*
    - NSSCKMDSession*
    - NSSCKFWSession*
    - NSSCKMDToken*
    - NSSCKFWToken*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    - CK_ATTRIBUTE_TYPE
    - NSSItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 128
    functionName: nss_dbm_mdObject_SetAttribute
    functionSourceFile: /src/nss/lib/ckfw/dbm/object.c
    functionUses: 0
    functionsReached:
    - nss_dbm_db_set_object_attribute
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV nss_dbm_mdObject_SetAttribute(\n    NSSCKMDObject *mdObject,\n
      \   NSSCKFWObject *fwObject,\n    NSSCKMDSession *mdSession,\n    NSSCKFWSession
      *fwSession,\n    NSSCKMDToken *mdToken,\n    NSSCKFWToken *fwToken,\n    NSSCKMDInstance
      *mdInstance,\n    NSSCKFWInstance *fwInstance,\n    CK_ATTRIBUTE_TYPE attribute,\n
      \   NSSItem *value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nss_ZNEW
      Src: /src/nss/lib/ckfw/dbm/object.c:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 155
    functionName: "NSSCKMDObject *\nnss_dbm_mdObject_factory(\n    nss_dbm_object_t
      *object,\n    CK_RV *pError)"
    functionSourceFile: /src/nss/lib/ckfw/dbm/object.c
    functionUses: 0
    functionsReached:
    - nss_ZNEW
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKMDObject *\nnss_dbm_mdObject_factory(\n    nss_dbm_object_t
      *object,\n    CK_RV *pError)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSSCKFWToken_GetArena
      Src: /src/nss/lib/ckfw/dbm/token.c:17,1
    - Dst: nss_dbm_db_open
      Src: /src/nss/lib/ckfw/dbm/token.c:18,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - mdToken
    - fwToken
    - mdInstance
    - fwInstance
    argTypes:
    - NSSCKMDToken*
    - NSSCKFWToken*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 7
    functionDepth: 3
    functionLinenumber: 7
    functionLinenumberEnd: 27
    functionName: nss_dbm_mdToken_Setup
    functionSourceFile: /src/nss/lib/ckfw/dbm/token.c
    functionUses: 0
    functionsReached:
    - NSSCKFWToken_GetArena
    - nss_dbm_db_open
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV nss_dbm_mdToken_Setup(\n    NSSCKMDToken *mdToken,\n    NSSCKFWToken
      *fwToken,\n    NSSCKMDInstance *mdInstance,\n    NSSCKFWInstance *fwInstance)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nss_dbm_db_close
      Src: /src/nss/lib/ckfw/dbm/token.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - mdToken
    - fwToken
    - mdInstance
    - fwInstance
    argTypes:
    - NSSCKMDToken*
    - NSSCKFWToken*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 42
    functionName: nss_dbm_mdToken_Invalidate
    functionSourceFile: /src/nss/lib/ckfw/dbm/token.c
    functionUses: 0
    functionsReached:
    - nss_dbm_db_close
    linkageType: ''
    returnType: void
    signature: "void nss_dbm_mdToken_Invalidate(\n    NSSCKMDToken *mdToken,\n    NSSCKFWToken
      *fwToken,\n    NSSCKMDInstance *mdInstance,\n    NSSCKFWInstance *fwInstance)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: nss_dbm_db_close
      Src: /src/nss/lib/ckfw/dbm/token.c:60,1
    - Dst: nss_dbm_db_open
      Src: /src/nss/lib/ckfw/dbm/token.c:63,1
    - Dst: nss_dbm_db_close
      Src: /src/nss/lib/ckfw/dbm/token.c:73,1
    - Dst: nss_dbm_db_open
      Src: /src/nss/lib/ckfw/dbm/token.c:76,1
    - Dst: nss_dbm_db_set_label
      Src: /src/nss/lib/ckfw/dbm/token.c:86,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 6
    argNames:
    - mdToken
    - fwToken
    - mdInstance
    - fwInstance
    - pin
    - label
    argTypes:
    - NSSCKMDToken*
    - NSSCKFWToken*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    - NSSItem*
    - NSSUTF8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 93
    functionName: nss_dbm_mdToken_InitToken
    functionSourceFile: /src/nss/lib/ckfw/dbm/token.c
    functionUses: 0
    functionsReached:
    - nss_dbm_db_close
    - nss_dbm_db_set_label
    - nss_dbm_db_open
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV nss_dbm_mdToken_InitToken(\n    NSSCKMDToken *mdToken,\n    NSSCKFWToken
      *fwToken,\n    NSSCKMDInstance *mdInstance,\n    NSSCKFWInstance *fwInstance,\n
      \   NSSItem *pin,\n    NSSUTF8 *label)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nss_dbm_db_get_label
      Src: /src/nss/lib/ckfw/dbm/token.c:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - mdToken
    - fwToken
    - mdInstance
    - fwInstance
    - pError
    argTypes:
    - NSSCKMDToken*
    - NSSCKFWToken*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 115
    functionName: nss_dbm_mdToken_GetLabel
    functionSourceFile: /src/nss/lib/ckfw/dbm/token.c
    functionUses: 0
    functionsReached:
    - nss_dbm_db_get_label
    linkageType: ''
    returnType: NSSUTF8
    signature: "NSSUTF8 *\nnss_dbm_mdToken_GetLabel(\n    NSSCKMDToken *mdToken,\n
      \   NSSCKFWToken *fwToken,\n    NSSCKMDInstance *mdInstance,\n    NSSCKFWInstance
      *fwInstance,\n    CK_RV *pError)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - mdToken
    - fwToken
    - mdInstance
    - fwInstance
    - pError
    argTypes:
    - NSSCKMDToken*
    - NSSCKFWToken*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 126
    functionName: nss_dbm_mdToken_GetManufacturerID
    functionSourceFile: /src/nss/lib/ckfw/dbm/token.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSSUTF8
    signature: "NSSUTF8 *\nnss_dbm_mdToken_GetManufacturerID(\n    NSSCKMDToken *mdToken,\n
      \   NSSCKFWToken *fwToken,\n    NSSCKMDInstance *mdInstance,\n    NSSCKFWInstance
      *fwInstance,\n    CK_RV *pError)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - mdToken
    - fwToken
    - mdInstance
    - fwInstance
    - pError
    argTypes:
    - NSSCKMDToken*
    - NSSCKFWToken*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 137
    functionName: nss_dbm_mdToken_GetModel
    functionSourceFile: /src/nss/lib/ckfw/dbm/token.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSSUTF8
    signature: "NSSUTF8 *\nnss_dbm_mdToken_GetModel(\n    NSSCKMDToken *mdToken,\n
      \   NSSCKFWToken *fwToken,\n    NSSCKMDInstance *mdInstance,\n    NSSCKFWInstance
      *fwInstance,\n    CK_RV *pError)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - mdToken
    - fwToken
    - mdInstance
    - fwInstance
    argTypes:
    - NSSCKMDToken*
    - NSSCKFWToken*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 156
    functionName: nss_dbm_mdToken_GetIsWriteProtected
    functionSourceFile: /src/nss/lib/ckfw/dbm/token.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_BBOOL
    signature: "CK_BBOOL nss_dbm_mdToken_GetIsWriteProtected(\n    NSSCKMDToken *mdToken,\n
      \   NSSCKFWToken *fwToken,\n    NSSCKMDInstance *mdInstance,\n    NSSCKFWInstance
      *fwInstance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - mdToken
    - fwToken
    - mdInstance
    - fwInstance
    argTypes:
    - NSSCKMDToken*
    - NSSCKFWToken*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 173
    functionName: nss_dbm_mdToken_effectively_infinite
    functionSourceFile: /src/nss/lib/ckfw/dbm/token.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_ULONG
    signature: "CK_ULONG nss_dbm_mdToken_effectively_infinite(\n    NSSCKMDToken *mdToken,\n
      \   NSSCKFWToken *fwToken,\n    NSSCKMDInstance *mdInstance,\n    NSSCKFWInstance
      *fwInstance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_dbm_db_get_format_version
      Src: /src/nss/lib/ckfw/dbm/token.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - mdToken
    - fwToken
    - mdInstance
    - fwInstance
    argTypes:
    - NSSCKMDToken*
    - NSSCKFWToken*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 184
    functionName: nss_dbm_mdToken_GetHardwareVersion
    functionSourceFile: /src/nss/lib/ckfw/dbm/token.c
    functionUses: 0
    functionsReached:
    - nss_dbm_db_get_format_version
    linkageType: ''
    returnType: CK_VERSION
    signature: "CK_VERSION nss_dbm_mdToken_GetHardwareVersion(\n    NSSCKMDToken *mdToken,\n
      \   NSSCKFWToken *fwToken,\n    NSSCKMDInstance *mdInstance,\n    NSSCKFWInstance
      *fwInstance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_dbm_mdSession_factory
      Src: /src/nss/lib/ckfw/dbm/token.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - mdToken
    - fwToken
    - mdInstance
    - fwInstance
    - fwSession
    - rw
    - pError
    argTypes:
    - NSSCKMDToken*
    - NSSCKFWToken*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    - NSSCKFWSession*
    - CK_BBOOL
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 201
    functionName: nss_dbm_mdToken_OpenSession
    functionSourceFile: /src/nss/lib/ckfw/dbm/token.c
    functionUses: 0
    functionsReached:
    - nss_dbm_mdSession_factory
    linkageType: ''
    returnType: NSSCKMDSession
    signature: "NSSCKMDSession *\nnss_dbm_mdToken_OpenSession(\n    NSSCKMDToken *mdToken,\n
      \   NSSCKFWToken *fwToken,\n    NSSCKMDInstance *mdInstance,\n    NSSCKFWInstance
      *fwInstance,\n    NSSCKFWSession *fwSession,\n    CK_BBOOL rw,\n    CK_RV *pError)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nss_ZNEW
      Src: /src/nss/lib/ckfw/dbm/token.c:215,1
    - Dst: nss_ZNEW
      Src: /src/nss/lib/ckfw/dbm/token.c:221,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 260
    functionName: "NSSCKMDToken *\nnss_dbm_mdToken_factory(\n    nss_dbm_slot_t *slot,\n
      \   CK_RV *pError)"
    functionSourceFile: /src/nss/lib/ckfw/dbm/token.c
    functionUses: 0
    functionsReached:
    - nss_ZNEW
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKMDToken *\nnss_dbm_mdToken_factory(\n    nss_dbm_slot_t
      *slot,\n    CK_RV *pError)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nss_ZNEW
      Src: /src/nss/lib/ckfw/dbm/db.c:28,1
    - Dst: dbopen
      Src: /src/nss/lib/ckfw/dbm/db.c:34,1
    - Dst: NSSCKFWInstance_CreateMutex
      Src: /src/nss/lib/ckfw/dbm/db.c:40,1
    - Dst: nss_dbm_db_get_format_version
      Src: /src/nss/lib/ckfw/dbm/db.c:45,1
    - Dst: nss_dbm_db_close
      Src: /src/nss/lib/ckfw/dbm/db.c:47,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 53
    functionName: "nss_dbm_db_t *\nnss_dbm_db_open(\n    NSSArena *arena,\n    NSSCKFWInstance
      *fwInstance,\n    char *filename,\n    int flags,\n    CK_RV *pError)"
    functionSourceFile: /src/nss/lib/ckfw/dbm/db.c
    functionUses: 0
    functionsReached:
    - dbopen
    - nss_dbm_db_get_format_version
    - nss_ZNEW
    - NSSCKFWInstance_CreateMutex
    - nss_dbm_db_close
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nss_dbm_db_t *\nnss_dbm_db_open(\n    NSSArena *arena,\n
      \   NSSCKFWInstance *fwInstance,\n    char *filename,\n    int flags,\n    CK_RV
      *pError)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NSSCKFWMutex_Destroy
      Src: /src/nss/lib/ckfw/dbm/db.c:60,1
    - Dst: nss_dbm_db_t*::db::close
      Src: /src/nss/lib/ckfw/dbm/db.c:64,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/ckfw/dbm/db.c:67,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - db
    argTypes:
    - nss_dbm_db_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 55
    functionDepth: 3
    functionLinenumber: 55
    functionLinenumberEnd: 68
    functionName: nss_dbm_db_close
    functionSourceFile: /src/nss/lib/ckfw/dbm/db.c
    functionUses: 4
    functionsReached:
    - NSSCKFWMutex_Destroy
    - nss_ZFreeIf
    - nss_dbm_db_t*::db::close
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nss_dbm_db_close(\n    nss_dbm_db_t *db)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nssUTF8_Size
      Src: /src/nss/lib/ckfw/dbm/db.c:82,1
    - Dst: memset
      Src: /src/nss/lib/ckfw/dbm/db.c:83,1
    - Dst: NSSCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/dbm/db.c:87,1
    - Dst: nss_dbm_db_t*::db::get
      Src: /src/nss/lib/ckfw/dbm/db.c:91,1
    - Dst: PR_sscanf
      Src: /src/nss/lib/ckfw/dbm/db.c:94,1
    - Dst: PR_snprintf
      Src: /src/nss/lib/ckfw/dbm/db.c:98,1
    - Dst: nssUTF8_Size
      Src: /src/nss/lib/ckfw/dbm/db.c:101,1
    - Dst: nss_dbm_db_t*::db::put
      Src: /src/nss/lib/ckfw/dbm/db.c:102,1
    - Dst: nss_dbm_db_t*::db::sync
      Src: /src/nss/lib/ckfw/dbm/db.c:103,1
    - Dst: NSSCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/dbm/db.c:110,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 1
    argNames:
    - db
    argTypes:
    - nss_dbm_db_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 70
    functionDepth: 3
    functionLinenumber: 70
    functionLinenumberEnd: 114
    functionName: nss_dbm_db_get_format_version
    functionSourceFile: /src/nss/lib/ckfw/dbm/db.c
    functionUses: 2
    functionsReached:
    - PR_snprintf
    - NSSCKFWMutex_Unlock
    - nss_dbm_db_t*::db::put
    - nss_dbm_db_t*::db::sync
    - nss_dbm_db_t*::db::get
    - memset
    - PR_sscanf
    - NSSCKFWMutex_Lock
    - nssUTF8_Size
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nss_dbm_db_get_format_version(\n    nss_dbm_db_t *db)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nssUTF8_Size
      Src: /src/nss/lib/ckfw/dbm/db.c:126,1
    - Dst: nssUTF8_Size
      Src: /src/nss/lib/ckfw/dbm/db.c:128,1
    - Dst: NSSCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/dbm/db.c:132,1
    - Dst: nss_dbm_db_t*::db::put
      Src: /src/nss/lib/ckfw/dbm/db.c:137,1
    - Dst: nss_dbm_db_t*::db::sync
      Src: /src/nss/lib/ckfw/dbm/db.c:142,1
    - Dst: NSSCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/dbm/db.c:147,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - db
    - label
    argTypes:
    - nss_dbm_db_t*
    - NSSUTF8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 116
    functionDepth: 3
    functionLinenumber: 116
    functionLinenumberEnd: 151
    functionName: nss_dbm_db_set_label
    functionSourceFile: /src/nss/lib/ckfw/dbm/db.c
    functionUses: 1
    functionsReached:
    - NSSCKFWMutex_Unlock
    - nss_dbm_db_t*::db::put
    - nss_dbm_db_t*::db::sync
    - NSSCKFWMutex_Lock
    - nssUTF8_Size
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nss_dbm_db_set_label(\n    nss_dbm_db_t *db,\n    NSSUTF8
      *label)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nssUTF8_Size
      Src: /src/nss/lib/ckfw/dbm/db.c:164,1
    - Dst: NSSCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/dbm/db.c:168,1
    - Dst: nss_dbm_db_t*::db::get
      Src: /src/nss/lib/ckfw/dbm/db.c:172,1
    - Dst: nssUTF8_Duplicate
      Src: /src/nss/lib/ckfw/dbm/db.c:174,1
    - Dst: NSSCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/dbm/db.c:186,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - db
    - arena
    - pError
    argTypes:
    - nss_dbm_db_t*
    - NSSArena*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 153
    functionDepth: 3
    functionLinenumber: 153
    functionLinenumberEnd: 190
    functionName: nss_dbm_db_get_label
    functionSourceFile: /src/nss/lib/ckfw/dbm/db.c
    functionUses: 1
    functionsReached:
    - NSSCKFWMutex_Unlock
    - nssUTF8_Duplicate
    - nss_dbm_db_t*::db::get
    - NSSCKFWMutex_Lock
    - nssUTF8_Size
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nnss_dbm_db_get_label(\n    nss_dbm_db_t *db,\n    NSSArena
      *arena,\n    CK_RV *pError)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NSSCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/dbm/db.c:201,1
    - Dst: nss_dbm_dbt_t*::my_db::db::del
      Src: /src/nss/lib/ckfw/dbm/db.c:206,1
    - Dst: nss_dbm_dbt_t*::my_db::db::sync
      Src: /src/nss/lib/ckfw/dbm/db.c:212,1
    - Dst: NSSCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/dbm/db.c:219,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - dbt
    argTypes:
    - nss_dbm_dbt_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 192
    functionDepth: 3
    functionLinenumber: 192
    functionLinenumberEnd: 223
    functionName: nss_dbm_db_delete_object
    functionSourceFile: /src/nss/lib/ckfw/dbm/db.c
    functionUses: 1
    functionsReached:
    - nss_dbm_dbt_t*::my_db::db::sync
    - NSSCKFWMutex_Unlock
    - NSSCKFWMutex_Lock
    - nss_dbm_dbt_t*::my_db::db::del
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nss_dbm_db_delete_object(\n    nss_dbm_dbt_t *dbt)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: NSSCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/dbm/db.c:242,1
    - Dst: nssUTF8_Size
      Src: /src/nss/lib/ckfw/dbm/db.c:248,1
    - Dst: memset
      Src: /src/nss/lib/ckfw/dbm/db.c:249,1
    - Dst: nss_dbm_db_t*::db::get
      Src: /src/nss/lib/ckfw/dbm/db.c:251,1
    - Dst: memcpy
      Src: /src/nss/lib/ckfw/dbm/db.c:253,1
    - Dst: ntohl
      Src: /src/nss/lib/ckfw/dbm/db.c:254,1
    - Dst: htonl
      Src: /src/nss/lib/ckfw/dbm/db.c:263,1
    - Dst: nss_dbm_db_t*::db::put
      Src: /src/nss/lib/ckfw/dbm/db.c:267,1
    - Dst: nss_dbm_db_t*::db::sync
      Src: /src/nss/lib/ckfw/dbm/db.c:272,1
    - Dst: NSSCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/dbm/db.c:278,1
    - Dst: memcpy
      Src: /src/nss/lib/ckfw/dbm/db.c:286,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 48
    argCount: 3
    argNames:
    - db
    - dbt
    - pError
    argTypes:
    - nss_dbm_db_t*
    - DBT*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 225
    functionDepth: 3
    functionLinenumber: 225
    functionLinenumberEnd: 290
    functionName: nss_dbm_db_new_handle
    functionSourceFile: /src/nss/lib/ckfw/dbm/db.c
    functionUses: 0
    functionsReached:
    - memcpy
    - NSSCKFWMutex_Unlock
    - nss_dbm_db_t*::db::put
    - ntohl
    - htonl
    - nss_dbm_db_t*::db::get
    - nss_dbm_db_t*::db::sync
    - memset
    - NSSCKFWMutex_Lock
    - nssUTF8_Size
    linkageType: ''
    returnType: CK_ULONG
    signature: "CK_ULONG nss_dbm_db_new_handle(\n    nss_dbm_db_t *db,\n    DBT *dbt,
      /* pre-allocated */\n    CK_RV *pError)"
  - BBCount: 69
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 139
    argCount: 1
    argNames:
    - type
    argTypes:
    - CK_ATTRIBUTE_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 446
    functionName: nss_dbm_db_swap_type
    functionSourceFile: /src/nss/lib/ckfw/dbm/db.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum swap_type
    signature: "enum swap_type nss_dbm_db_swap_type(\n    CK_ATTRIBUTE_TYPE type)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nss_dbm_db_swap_type
      Src: /src/nss/lib/ckfw/dbm/db.c:455,1
    - Dst: memcpy
      Src: /src/nss/lib/ckfw/dbm/db.c:458,1
    - Dst: memcpy
      Src: /src/nss/lib/ckfw/dbm/db.c:462,1
    - Dst: htons
      Src: /src/nss/lib/ckfw/dbm/db.c:463,1
    - Dst: memcpy
      Src: /src/nss/lib/ckfw/dbm/db.c:464,1
    - Dst: memcpy
      Src: /src/nss/lib/ckfw/dbm/db.c:469,1
    - Dst: htonl
      Src: /src/nss/lib/ckfw/dbm/db.c:470,1
    - Dst: memcpy
      Src: /src/nss/lib/ckfw/dbm/db.c:471,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - type
    - dest
    - src
    - len
    argTypes:
    - CK_ATTRIBUTE_TYPE
    - void*
    - void*
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 475
    functionName: nss_dbm_db_swap_copy
    functionSourceFile: /src/nss/lib/ckfw/dbm/db.c
    functionUses: 0
    functionsReached:
    - htonl
    - memcpy
    - nss_dbm_db_swap_type
    - htons
    linkageType: ''
    returnType: void
    signature: "void nss_dbm_db_swap_copy(\n    CK_ATTRIBUTE_TYPE type,\n    void
      *dest,\n    void *src,\n    CK_ULONG len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nss_ZAlloc
      Src: /src/nss/lib/ckfw/dbm/db.c:497,1
    - Dst: htonl
      Src: /src/nss/lib/ckfw/dbm/db.c:505,1
    - Dst: htonl
      Src: /src/nss/lib/ckfw/dbm/db.c:508,1
    - Dst: htonl
      Src: /src/nss/lib/ckfw/dbm/db.c:509,1
    - Dst: htonl
      Src: /src/nss/lib/ckfw/dbm/db.c:510,1
    - Dst: nss_dbm_db_swap_copy
      Src: /src/nss/lib/ckfw/dbm/db.c:511,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 4
    argNames:
    - arena
    - pTemplate
    - ulAttributeCount
    - object
    argTypes:
    - NSSArena*
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    - DBT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 477
    functionDepth: 2
    functionLinenumber: 477
    functionLinenumberEnd: 516
    functionName: nss_dbm_db_wrap_object
    functionSourceFile: /src/nss/lib/ckfw/dbm/db.c
    functionUses: 0
    functionsReached:
    - htonl
    - nss_dbm_db_swap_copy
    - nss_ZAlloc
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV nss_dbm_db_wrap_object(\n    NSSArena *arena,\n    CK_ATTRIBUTE_PTR
      pTemplate,\n    CK_ULONG ulAttributeCount,\n    DBT *object)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ntohl
      Src: /src/nss/lib/ckfw/dbm/db.c:533,1
    - Dst: nss_ZNEWARRAY
      Src: /src/nss/lib/ckfw/dbm/db.c:535,1
    - Dst: ntohl
      Src: /src/nss/lib/ckfw/dbm/db.c:545,1
    - Dst: ntohl
      Src: /src/nss/lib/ckfw/dbm/db.c:546,1
    - Dst: ntohl
      Src: /src/nss/lib/ckfw/dbm/db.c:547,1
    - Dst: nss_ZAlloc
      Src: /src/nss/lib/ckfw/dbm/db.c:549,1
    - Dst: nss_dbm_db_swap_copy
      Src: /src/nss/lib/ckfw/dbm/db.c:554,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 4
    argNames:
    - arena
    - object
    - ppTemplate
    - pulAttributeCount
    argTypes:
    - NSSArena*
    - DBT*
    - CK_ATTRIBUTE_PTR*
    - CK_ULONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 518
    functionDepth: 2
    functionLinenumber: 518
    functionLinenumberEnd: 561
    functionName: nss_dbm_db_unwrap_object
    functionSourceFile: /src/nss/lib/ckfw/dbm/db.c
    functionUses: 0
    functionsReached:
    - nss_ZNEWARRAY
    - ntohl
    - nss_dbm_db_swap_copy
    - nss_ZAlloc
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV nss_dbm_db_unwrap_object(\n    NSSArena *arena,\n    DBT *object,\n
      \   CK_ATTRIBUTE_PTR *ppTemplate,\n    CK_ULONG *pulAttributeCount)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: nss_ZNEW
      Src: /src/nss/lib/ckfw/dbm/db.c:576,1
    - Dst: nss_ZAlloc
      Src: /src/nss/lib/ckfw/dbm/db.c:584,1
    - Dst: nss_dbm_db_new_handle
      Src: /src/nss/lib/ckfw/dbm/db.c:590,1
    - Dst: NSSArena_Create
      Src: /src/nss/lib/ckfw/dbm/db.c:595,1
    - Dst: nss_dbm_db_wrap_object
      Src: /src/nss/lib/ckfw/dbm/db.c:601,1
    - Dst: NSSCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/dbm/db.c:608,1
    - Dst: db::put
      Src: /src/nss/lib/ckfw/dbm/db.c:613,1
    - Dst: db::sync
      Src: /src/nss/lib/ckfw/dbm/db.c:618,1
    - Dst: NSSCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/dbm/db.c:620,1
    - Dst: NSSArena_Destroy
      Src: /src/nss/lib/ckfw/dbm/db.c:625,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 563
    functionDepth: 4
    functionLinenumber: 563
    functionLinenumberEnd: 629
    functionName: "nss_dbm_dbt_t *\nnss_dbm_db_create_object(\n    NSSArena *arena,\n
      \   nss_dbm_db_t *db,\n    CK_ATTRIBUTE_PTR pTemplate,\n    CK_ULONG ulAttributeCount,\n
      \   CK_RV *pError,\n    CK_ULONG *pdbrv)"
    functionSourceFile: /src/nss/lib/ckfw/dbm/db.c
    functionUses: 0
    functionsReached:
    - nss_dbm_db_new_handle
    - NSSCKFWMutex_Unlock
    - db::put
    - nss_ZNEW
    - nss_ZAlloc
    - NSSCKFWMutex_Lock
    - db::sync
    - NSSArena_Create
    - nss_dbm_db_wrap_object
    - NSSArena_Destroy
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nss_dbm_dbt_t *\nnss_dbm_db_create_object(\n    NSSArena
      *arena,\n    nss_dbm_db_t *db,\n    CK_ATTRIBUTE_PTR pTemplate,\n    CK_ULONG
      ulAttributeCount,\n    CK_RV *pError,\n    CK_ULONG *pdbrv)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: NSSCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/dbm/db.c:644,1
    - Dst: nss_dbm_db_t*::db::seq
      Src: /src/nss/lib/ckfw/dbm/db.c:649,1
    - Dst: memcmp
      Src: /src/nss/lib/ckfw/dbm/db.c:656,1
    - Dst: NSSArena_Create
      Src: /src/nss/lib/ckfw/dbm/db.c:660,1
    - Dst: nss_dbm_db_unwrap_object
      Src: /src/nss/lib/ckfw/dbm/db.c:662,1
    - Dst: memcmp
      Src: /src/nss/lib/ckfw/dbm/db.c:676,1
    - Dst: nss_ZNEW
      Src: /src/nss/lib/ckfw/dbm/db.c:691,1
    - Dst: nss_ZNEW
      Src: /src/nss/lib/ckfw/dbm/db.c:698,1
    - Dst: nss_ZAlloc
      Src: /src/nss/lib/ckfw/dbm/db.c:706,1
    - Dst: memcpy
      Src: /src/nss/lib/ckfw/dbm/db.c:713,1
    - Dst: NSSArena_Destroy
      Src: /src/nss/lib/ckfw/dbm/db.c:723,1
    - Dst: nss_dbm_db_t*::db::seq
      Src: /src/nss/lib/ckfw/dbm/db.c:725,1
    - Dst: NSSCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/dbm/db.c:736,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 79
    argCount: 5
    argNames:
    - find
    - db
    - pTemplate
    - ulAttributeCount
    - pdbrv
    argTypes:
    - nss_dbm_find_t*
    - nss_dbm_db_t*
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    - CK_ULONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 631
    functionDepth: 3
    functionLinenumber: 631
    functionLinenumberEnd: 740
    functionName: nss_dbm_db_find_objects
    functionSourceFile: /src/nss/lib/ckfw/dbm/db.c
    functionUses: 0
    functionsReached:
    - memcpy
    - NSSCKFWMutex_Unlock
    - nss_dbm_db_unwrap_object
    - nss_ZNEW
    - nss_ZAlloc
    - nss_dbm_db_t*::db::seq
    - NSSArena_Create
    - memcmp
    - NSSCKFWMutex_Lock
    - NSSArena_Destroy
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nss_dbm_db_find_objects(\n    nss_dbm_find_t *find,\n
      \   nss_dbm_db_t *db,\n    CK_ATTRIBUTE_PTR pTemplate,\n    CK_ULONG ulAttributeCount,\n
      \   CK_ULONG *pdbrv)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NSSCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/dbm/db.c:751,1
    - Dst: nss_dbm_dbt_t*::my_db::db::get
      Src: /src/nss/lib/ckfw/dbm/db.c:756,1
    - Dst: NSSCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/dbm/db.c:763,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - dbt
    argTypes:
    - nss_dbm_dbt_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 742
    functionDepth: 3
    functionLinenumber: 742
    functionLinenumberEnd: 766
    functionName: nss_dbm_db_object_still_exists
    functionSourceFile: /src/nss/lib/ckfw/dbm/db.c
    functionUses: 1
    functionsReached:
    - NSSCKFWMutex_Unlock
    - NSSCKFWMutex_Lock
    - nss_dbm_dbt_t*::my_db::db::get
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nss_dbm_db_object_still_exists(\n    nss_dbm_dbt_t *dbt)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NSSCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/dbm/db.c:780,1
    - Dst: nss_dbm_dbt_t*::my_db::db::get
      Src: /src/nss/lib/ckfw/dbm/db.c:785,1
    - Dst: ntohl
      Src: /src/nss/lib/ckfw/dbm/db.c:797,1
    - Dst: NSSCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/dbm/db.c:800,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - dbt
    - pError
    - pdbrv
    argTypes:
    - nss_dbm_dbt_t*
    - CK_RV*
    - CK_ULONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 768
    functionDepth: 3
    functionLinenumber: 768
    functionLinenumberEnd: 804
    functionName: nss_dbm_db_get_object_attribute_count
    functionSourceFile: /src/nss/lib/ckfw/dbm/db.c
    functionUses: 1
    functionsReached:
    - ntohl
    - NSSCKFWMutex_Unlock
    - NSSCKFWMutex_Lock
    - nss_dbm_dbt_t*::my_db::db::get
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nss_dbm_db_get_object_attribute_count(\n    nss_dbm_dbt_t
      *dbt,\n    CK_RV *pError,\n    CK_ULONG *pdbrv)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NSSCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/dbm/db.c:820,1
    - Dst: nss_dbm_dbt_t*::my_db::db::get
      Src: /src/nss/lib/ckfw/dbm/db.c:825,1
    - Dst: ntohl
      Src: /src/nss/lib/ckfw/dbm/db.c:837,1
    - Dst: ntohl
      Src: /src/nss/lib/ckfw/dbm/db.c:845,1
    - Dst: NSSCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/dbm/db.c:849,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 4
    argNames:
    - dbt
    - typeArray
    - ulCount
    - pdbrv
    argTypes:
    - nss_dbm_dbt_t*
    - CK_ATTRIBUTE_TYPE_PTR
    - CK_ULONG
    - CK_ULONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 806
    functionDepth: 3
    functionLinenumber: 806
    functionLinenumberEnd: 853
    functionName: nss_dbm_db_get_object_attribute_types
    functionSourceFile: /src/nss/lib/ckfw/dbm/db.c
    functionUses: 1
    functionsReached:
    - ntohl
    - NSSCKFWMutex_Unlock
    - NSSCKFWMutex_Lock
    - nss_dbm_dbt_t*::my_db::db::get
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nss_dbm_db_get_object_attribute_types(\n    nss_dbm_dbt_t
      *dbt,\n    CK_ATTRIBUTE_TYPE_PTR typeArray,\n    CK_ULONG ulCount,\n    CK_ULONG
      *pdbrv)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NSSCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/dbm/db.c:869,1
    - Dst: nss_dbm_dbt_t*::my_db::db::get
      Src: /src/nss/lib/ckfw/dbm/db.c:874,1
    - Dst: ntohl
      Src: /src/nss/lib/ckfw/dbm/db.c:886,1
    - Dst: ntohl
      Src: /src/nss/lib/ckfw/dbm/db.c:889,1
    - Dst: ntohl
      Src: /src/nss/lib/ckfw/dbm/db.c:890,1
    - Dst: NSSCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/dbm/db.c:900,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 4
    argNames:
    - dbt
    - type
    - pError
    - pdbrv
    argTypes:
    - nss_dbm_dbt_t*
    - CK_ATTRIBUTE_TYPE
    - CK_RV*
    - CK_ULONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 855
    functionDepth: 3
    functionLinenumber: 855
    functionLinenumberEnd: 904
    functionName: nss_dbm_db_get_object_attribute_size
    functionSourceFile: /src/nss/lib/ckfw/dbm/db.c
    functionUses: 1
    functionsReached:
    - ntohl
    - NSSCKFWMutex_Unlock
    - NSSCKFWMutex_Lock
    - nss_dbm_dbt_t*::my_db::db::get
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nss_dbm_db_get_object_attribute_size(\n    nss_dbm_dbt_t
      *dbt,\n    CK_ATTRIBUTE_TYPE type,\n    CK_RV *pError,\n    CK_ULONG *pdbrv)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: NSSArena_Create
      Src: /src/nss/lib/ckfw/dbm/db.c:917,1
    - Dst: NSSCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/dbm/db.c:923,1
    - Dst: nss_dbm_dbt_t*::my_db::db::get
      Src: /src/nss/lib/ckfw/dbm/db.c:928,1
    - Dst: nss_dbm_db_unwrap_object
      Src: /src/nss/lib/ckfw/dbm/db.c:939,1
    - Dst: nss_ZNEW
      Src: /src/nss/lib/ckfw/dbm/db.c:946,1
    - Dst: nss_ZAlloc
      Src: /src/nss/lib/ckfw/dbm/db.c:953,1
    - Dst: memcpy
      Src: /src/nss/lib/ckfw/dbm/db.c:959,1
    - Dst: NSSCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/dbm/db.c:969,1
    - Dst: NSSArena_Destroy
      Src: /src/nss/lib/ckfw/dbm/db.c:974,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 58
    argCount: 5
    argNames:
    - dbt
    - arena
    - type
    - pError
    - pdbrv
    argTypes:
    - nss_dbm_dbt_t*
    - NSSArena*
    - CK_ATTRIBUTE_TYPE
    - CK_RV*
    - CK_ULONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 978
      start: 906
    functionDepth: 3
    functionLinenumber: 906
    functionLinenumberEnd: 978
    functionName: nss_dbm_db_get_object_attribute
    functionSourceFile: /src/nss/lib/ckfw/dbm/db.c
    functionUses: 1
    functionsReached:
    - memcpy
    - NSSCKFWMutex_Unlock
    - nss_dbm_db_unwrap_object
    - nss_dbm_dbt_t*::my_db::db::get
    - nss_ZNEW
    - nss_ZAlloc
    - NSSArena_Create
    - NSSCKFWMutex_Lock
    - NSSArena_Destroy
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nnss_dbm_db_get_object_attribute(\n    nss_dbm_dbt_t
      *dbt,\n    NSSArena *arena,\n    CK_ATTRIBUTE_TYPE type,\n    CK_RV *pError,\n
      \   CK_ULONG *pdbrv)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: NSSArena_Create
      Src: /src/nss/lib/ckfw/dbm/db.c:990,1
    - Dst: NSSCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/dbm/db.c:996,1
    - Dst: nss_dbm_dbt_t*::my_db::db::get
      Src: /src/nss/lib/ckfw/dbm/db.c:1001,1
    - Dst: nss_dbm_db_unwrap_object
      Src: /src/nss/lib/ckfw/dbm/db.c:1012,1
    - Dst: nss_ZNEWARRAY
      Src: /src/nss/lib/ckfw/dbm/db.c:1028,1
    - Dst: nss_dbm_db_wrap_object
      Src: /src/nss/lib/ckfw/dbm/db.c:1046,1
    - Dst: nss_dbm_dbt_t*::my_db::db::put
      Src: /src/nss/lib/ckfw/dbm/db.c:1051,1
    - Dst: nss_dbm_dbt_t*::my_db::db::sync
      Src: /src/nss/lib/ckfw/dbm/db.c:1057,1
    - Dst: NSSCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/dbm/db.c:1060,1
    - Dst: NSSArena_Destroy
      Src: /src/nss/lib/ckfw/dbm/db.c:1065,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 68
    argCount: 4
    argNames:
    - dbt
    - type
    - value
    - pdbrv
    argTypes:
    - nss_dbm_dbt_t*
    - CK_ATTRIBUTE_TYPE
    - NSSItem*
    - CK_ULONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 980
    functionDepth: 3
    functionLinenumber: 980
    functionLinenumberEnd: 1069
    functionName: nss_dbm_db_set_object_attribute
    functionSourceFile: /src/nss/lib/ckfw/dbm/db.c
    functionUses: 1
    functionsReached:
    - NSSCKFWMutex_Unlock
    - nss_dbm_db_unwrap_object
    - nss_dbm_dbt_t*::my_db::db::get
    - nss_dbm_dbt_t*::my_db::db::put
    - nss_ZNEWARRAY
    - nss_dbm_dbt_t*::my_db::db::sync
    - nss_dbm_db_wrap_object
    - NSSArena_Create
    - NSSCKFWMutex_Lock
    - NSSArena_Destroy
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nss_dbm_db_set_object_attribute(\n    nss_dbm_dbt_t
      *dbt,\n    CK_ATTRIBUTE_TYPE type,\n    NSSItem *value,\n    CK_ULONG *pdbrv)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSSCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/dbm/session.c:22,1
    - Dst: NSSCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/dbm/session.c:29,1
    - Dst: nss_dbm_db_delete_object
      Src: /src/nss/lib/ckfw/dbm/session.c:33,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 6
    argNames:
    - mdSession
    - fwSession
    - mdToken
    - fwToken
    - mdInstance
    - fwInstance
    argTypes:
    - NSSCKMDSession*
    - NSSCKFWSession*
    - NSSCKMDToken*
    - NSSCKFWToken*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 7
    functionDepth: 4
    functionLinenumber: 7
    functionLinenumberEnd: 35
    functionName: nss_dbm_mdSession_Close
    functionSourceFile: /src/nss/lib/ckfw/dbm/session.c
    functionUses: 0
    functionsReached:
    - NSSCKFWMutex_Unlock
    - NSSCKFWMutex_Lock
    - nss_dbm_db_delete_object
    linkageType: ''
    returnType: void
    signature: "void nss_dbm_mdSession_Close(\n    NSSCKMDSession *mdSession,\n    NSSCKFWSession
      *fwSession,\n    NSSCKMDToken *mdToken,\n    NSSCKFWToken *fwToken,\n    NSSCKMDInstance
      *mdInstance,\n    NSSCKFWInstance *fwInstance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - mdSession
    - fwSession
    - mdToken
    - fwToken
    - mdInstance
    - fwInstance
    argTypes:
    - NSSCKMDSession*
    - NSSCKFWSession*
    - NSSCKMDToken*
    - NSSCKFWToken*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 48
    functionName: nss_dbm_mdSession_GetDeviceError
    functionSourceFile: /src/nss/lib/ckfw/dbm/session.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_ULONG
    signature: "CK_ULONG nss_dbm_mdSession_GetDeviceError(\n    NSSCKMDSession *mdSession,\n
      \   NSSCKFWSession *fwSession,\n    NSSCKMDToken *mdToken,\n    NSSCKFWToken
      *fwToken,\n    NSSCKMDInstance *mdInstance,\n    NSSCKFWInstance *fwInstance)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: nss_ZNEW
      Src: /src/nss/lib/ckfw/dbm/session.c:88,1
    - Dst: nss_dbm_mdObject_factory
      Src: /src/nss/lib/ckfw/dbm/session.c:98,1
    - Dst: nss_ZNEW
      Src: /src/nss/lib/ckfw/dbm/session.c:104,1
    - Dst: nss_dbm_db_create_object
      Src: /src/nss/lib/ckfw/dbm/session.c:111,1
    - Dst: NSSCKFWMutex_Lock
      Src: /src/nss/lib/ckfw/dbm/session.c:122,1
    - Dst: nss_dbm_db_delete_object
      Src: /src/nss/lib/ckfw/dbm/session.c:124,1
    - Dst: NSSCKFWMutex_Unlock
      Src: /src/nss/lib/ckfw/dbm/session.c:131,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 10
    argNames:
    - mdSession
    - fwSession
    - mdToken
    - fwToken
    - mdInstance
    - fwInstance
    - handyArenaPointer
    - pTemplate
    - ulAttributeCount
    - pError
    argTypes:
    - NSSCKMDSession*
    - NSSCKFWSession*
    - NSSCKMDToken*
    - NSSCKFWToken*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    - NSSArena*
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 58
    functionDepth: 4
    functionLinenumber: 58
    functionLinenumberEnd: 136
    functionName: nss_dbm_mdSession_CreateObject
    functionSourceFile: /src/nss/lib/ckfw/dbm/session.c
    functionUses: 0
    functionsReached:
    - NSSCKFWMutex_Unlock
    - nss_dbm_mdObject_factory
    - nss_ZNEW
    - nss_dbm_db_delete_object
    - NSSCKFWMutex_Lock
    - nss_dbm_db_create_object
    linkageType: ''
    returnType: NSSCKMDObject
    signature: "NSSCKMDObject *\nnss_dbm_mdSession_CreateObject(\n    NSSCKMDSession
      *mdSession,\n    NSSCKFWSession *fwSession,\n    NSSCKMDToken *mdToken,\n    NSSCKFWToken
      *fwToken,\n    NSSCKMDInstance *mdInstance,\n    NSSCKFWInstance *fwInstance,\n
      \   NSSArena *handyArenaPointer,\n    CK_ATTRIBUTE_PTR pTemplate,\n    CK_ULONG
      ulAttributeCount,\n    CK_RV *pError)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: NSSArena_Create
      Src: /src/nss/lib/ckfw/dbm/session.c:158,1
    - Dst: nss_ZNEW
      Src: /src/nss/lib/ckfw/dbm/session.c:164,1
    - Dst: NSSCKFWInstance_CreateMutex
      Src: /src/nss/lib/ckfw/dbm/session.c:171,1
    - Dst: nss_dbm_db_find_objects
      Src: /src/nss/lib/ckfw/dbm/session.c:176,1
    - Dst: nss_dbm_db_find_objects
      Src: /src/nss/lib/ckfw/dbm/session.c:182,1
    - Dst: nss_dbm_mdFindObjects_factory
      Src: /src/nss/lib/ckfw/dbm/session.c:188,1
    - Dst: NSSArena_Destroy
      Src: /src/nss/lib/ckfw/dbm/session.c:197,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 9
    argNames:
    - mdSession
    - fwSession
    - mdToken
    - fwToken
    - mdInstance
    - fwInstance
    - pTemplate
    - ulAttributeCount
    - pError
    argTypes:
    - NSSCKMDSession*
    - NSSCKFWSession*
    - NSSCKMDToken*
    - NSSCKFWToken*
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 140
    functionDepth: 4
    functionLinenumber: 140
    functionLinenumberEnd: 201
    functionName: nss_dbm_mdSession_FindObjectsInit
    functionSourceFile: /src/nss/lib/ckfw/dbm/session.c
    functionUses: 0
    functionsReached:
    - nss_dbm_db_find_objects
    - nss_ZNEW
    - nss_dbm_mdFindObjects_factory
    - NSSCKFWInstance_CreateMutex
    - NSSArena_Create
    - NSSArena_Destroy
    linkageType: ''
    returnType: NSSCKMDFindObjects
    signature: "NSSCKMDFindObjects *\nnss_dbm_mdSession_FindObjectsInit(\n    NSSCKMDSession
      *mdSession,\n    NSSCKFWSession *fwSession,\n    NSSCKMDToken *mdToken,\n    NSSCKFWToken
      *fwToken,\n    NSSCKMDInstance *mdInstance,\n    NSSCKFWInstance *fwInstance,\n
      \   CK_ATTRIBUTE_PTR pTemplate,\n    CK_ULONG ulAttributeCount,\n    CK_RV *pError)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NSSCKFWSession_GetArena
      Src: /src/nss/lib/ckfw/dbm/session.c:218,1
    - Dst: nss_ZNEW
      Src: /src/nss/lib/ckfw/dbm/session.c:220,1
    - Dst: nss_ZNEW
      Src: /src/nss/lib/ckfw/dbm/session.c:226,1
    - Dst: NSSCKFWInstance_CreateMutex
      Src: /src/nss/lib/ckfw/dbm/session.c:234,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 206
    functionDepth: 3
    functionLinenumber: 206
    functionLinenumberEnd: 255
    functionName: "NSSCKMDSession *\nnss_dbm_mdSession_factory(\n    nss_dbm_token_t
      *token,\n    NSSCKFWSession *fwSession,\n    NSSCKFWInstance *fwInstance,\n
      \   CK_BBOOL rw,\n    CK_RV *pError)"
    functionSourceFile: /src/nss/lib/ckfw/dbm/session.c
    functionUses: 0
    functionsReached:
    - NSSCKFWSession_GetArena
    - NSSCKFWInstance_CreateMutex
    - nss_ZNEW
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCKMDSession *\nnss_dbm_mdSession_factory(\n    nss_dbm_token_t
      *token,\n    NSSCKFWSession *fwSession,\n    NSSCKFWInstance *fwInstance,\n
      \   CK_BBOOL rw,\n    CK_RV *pError)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NSSCKFWInstance_GetArena
      Src: /src/nss/lib/ckfw/dbm/instance.c:17,1
    - Dst: nss_ZNEW
      Src: /src/nss/lib/ckfw/dbm/instance.c:22,1
    - Dst: nss_ZNEWARRAY
      Src: /src/nss/lib/ckfw/dbm/instance.c:37,1
    - Dst: nss_ZNEWARRAY
      Src: /src/nss/lib/ckfw/dbm/instance.c:42,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - mdInstance
    - fwInstance
    - configurationData
    argTypes:
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    - NSSUTF8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 7
    functionDepth: 3
    functionLinenumber: 7
    functionLinenumberEnd: 52
    functionName: nss_dbm_mdInstance_Initialize
    functionSourceFile: /src/nss/lib/ckfw/dbm/instance.c
    functionUses: 0
    functionsReached:
    - NSSCKFWInstance_GetArena
    - nss_ZNEW
    - nss_ZNEWARRAY
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV nss_dbm_mdInstance_Initialize(\n    NSSCKMDInstance *mdInstance,\n
      \   NSSCKFWInstance *fwInstance,\n    NSSUTF8 *configurationData)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mdInstance
    - fwInstance
    - pError
    argTypes:
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 64
    functionName: nss_dbm_mdInstance_GetNSlots
    functionSourceFile: /src/nss/lib/ckfw/dbm/instance.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_ULONG
    signature: "CK_ULONG nss_dbm_mdInstance_GetNSlots(\n    NSSCKMDInstance *mdInstance,\n
      \   NSSCKFWInstance *fwInstance,\n    CK_RV *pError)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mdInstance
    - fwInstance
    argTypes:
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 73
    functionName: nss_dbm_mdInstance_GetCryptokiVersion
    functionSourceFile: /src/nss/lib/ckfw/dbm/instance.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_VERSION
    signature: "CK_VERSION nss_dbm_mdInstance_GetCryptokiVersion(\n    NSSCKMDInstance
      *mdInstance,\n    NSSCKFWInstance *fwInstance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mdInstance
    - fwInstance
    - pError
    argTypes:
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 82
    functionName: nss_dbm_mdInstance_GetManufacturerID
    functionSourceFile: /src/nss/lib/ckfw/dbm/instance.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSSUTF8
    signature: "NSSUTF8 *\nnss_dbm_mdInstance_GetManufacturerID(\n    NSSCKMDInstance
      *mdInstance,\n    NSSCKFWInstance *fwInstance,\n    CK_RV *pError)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mdInstance
    - fwInstance
    - pError
    argTypes:
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 91
    functionName: nss_dbm_mdInstance_GetLibraryDescription
    functionSourceFile: /src/nss/lib/ckfw/dbm/instance.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSSUTF8
    signature: "NSSUTF8 *\nnss_dbm_mdInstance_GetLibraryDescription(\n    NSSCKMDInstance
      *mdInstance,\n    NSSCKFWInstance *fwInstance,\n    CK_RV *pError)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mdInstance
    - fwInstance
    argTypes:
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 100
    functionName: nss_dbm_mdInstance_GetLibraryVersion
    functionSourceFile: /src/nss/lib/ckfw/dbm/instance.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_VERSION
    signature: "CK_VERSION nss_dbm_mdInstance_GetLibraryVersion(\n    NSSCKMDInstance
      *mdInstance,\n    NSSCKFWInstance *fwInstance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mdInstance
    - fwInstance
    argTypes:
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 108
    functionName: nss_dbm_mdInstance_ModuleHandlesSessionObjects
    functionSourceFile: /src/nss/lib/ckfw/dbm/instance.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_BBOOL
    signature: "CK_BBOOL nss_dbm_mdInstance_ModuleHandlesSessionObjects(\n    NSSCKMDInstance
      *mdInstance,\n    NSSCKFWInstance *fwInstance)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nss_dbm_mdSlot_factory
      Src: /src/nss/lib/ckfw/dbm/instance.c:121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - mdInstance
    - fwInstance
    - slots
    argTypes:
    - NSSCKMDInstance*
    - NSSCKFWInstance*
    - NSSCKMDSlot*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 129
    functionName: nss_dbm_mdInstance_GetSlots
    functionSourceFile: /src/nss/lib/ckfw/dbm/instance.c
    functionUses: 0
    functionsReached:
    - nss_dbm_mdSlot_factory
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV nss_dbm_mdInstance_GetSlots(\n    NSSCKMDInstance *mdInstance,\n
      \   NSSCKFWInstance *fwInstance,\n    NSSCKMDSlot *slots[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/nss/lib/pki/tdcache.c:44,1
    - Dst: snprintf
      Src: /src/nss/lib/pki/tdcache.c:47,1
    - Dst: snprintf
      Src: /src/nss/lib/pki/tdcache.c:50,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pki/tdcache.c:53,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - msg
    - it
    argTypes:
    - char*
    - NSSItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 54
    functionName: log_item_dump
    functionSourceFile: /src/nss/lib/pki/tdcache.c
    functionUses: 0
    functionsReached:
    - snprintf
    - PR_LOG
    linkageType: ''
    returnType: void
    signature: void log_item_dump(const char *msg, NSSItem *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pki/tdcache.c:61,1
    - Dst: log_item_dump
      Src: /src/nss/lib/pki/tdcache.c:62,1
    - Dst: log_item_dump
      Src: /src/nss/lib/pki/tdcache.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - msg
    - c
    argTypes:
    - char*
    - NSSCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: log_cert_ref
    functionSourceFile: /src/nss/lib/pki/tdcache.c
    functionUses: 0
    functionsReached:
    - log_item_dump
    - PR_LOG
    linkageType: ''
    returnType: void
    signature: void log_cert_ref(const char *msg, NSSCertificate *c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nss_ZNEW
      Src: /src/nss/lib/pki/tdcache.c:101,1
    - Dst: PR_Now
      Src: /src/nss/lib/pki/tdcache.c:105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - arena
    - value
    - ownArena
    argTypes:
    - NSSArena*
    - void*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 112
    functionName: new_cache_entry
    functionSourceFile: /src/nss/lib/pki/tdcache.c
    functionUses: 0
    functionsReached:
    - nss_ZNEW
    - PR_Now
    linkageType: ''
    returnType: cache_entry
    signature: 'cache_entry *

      new_cache_entry(NSSArena *arena, void *value, PRBool ownArena)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PR_NewLogModule
      Src: /src/nss/lib/pki/tdcache.c:125,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/pki/tdcache.c:126,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/pki/tdcache.c:128,1
    - Dst: nssArena_Create
      Src: /src/nss/lib/pki/tdcache.c:129,1
    - Dst: nss_ZNEW
      Src: /src/nss/lib/pki/tdcache.c:133,1
    - Dst: nssArena_Destroy
      Src: /src/nss/lib/pki/tdcache.c:135,1
    - Dst: PZ_NewLock
      Src: /src/nss/lib/pki/tdcache.c:138,1
    - Dst: nssArena_Destroy
      Src: /src/nss/lib/pki/tdcache.c:140,1
    - Dst: nssHash_CreateCertificate
      Src: /src/nss/lib/pki/tdcache.c:144,1
    - Dst: nssHash_CreateItem
      Src: /src/nss/lib/pki/tdcache.c:149,1
    - Dst: nssHash_CreateString
      Src: /src/nss/lib/pki/tdcache.c:154,1
    - Dst: nssHash_CreateString
      Src: /src/nss/lib/pki/tdcache.c:159,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pki/tdcache.c:166,1
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/pki/tdcache.c:170,1
    - Dst: nssArena_Destroy
      Src: /src/nss/lib/pki/tdcache.c:171,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pki/tdcache.c:174,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 49
    argCount: 2
    argNames:
    - td
    - cacheSize
    argTypes:
    - NSSTrustDomain*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 177
    functionName: nssTrustDomain_InitializeCache
    functionSourceFile: /src/nss/lib/pki/tdcache.c
    functionUses: 0
    functionsReached:
    - nssArena_Create
    - nssHash_CreateCertificate
    - nssHash_CreateString
    - nssHash_CreateItem
    - nss_ZNEW
    - PR_ASSERT
    - PR_NewLogModule
    - PZ_DestroyLock
    - nssArena_Destroy
    - PZ_NewLock
    - PR_LOG
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssTrustDomain_InitializeCache(\n    NSSTrustDomain
      *td,\n    PRUint32 cacheSize)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/tdcache.c:193,1
    - Dst: nssHash_Count
      Src: /src/nss/lib/pki/tdcache.c:196,1
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/tdcache.c:197,1
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/pki/tdcache.c:200,1
    - Dst: nssHash_Destroy
      Src: /src/nss/lib/pki/tdcache.c:201,1
    - Dst: nssHash_Destroy
      Src: /src/nss/lib/pki/tdcache.c:202,1
    - Dst: nssHash_Destroy
      Src: /src/nss/lib/pki/tdcache.c:203,1
    - Dst: nssHash_Destroy
      Src: /src/nss/lib/pki/tdcache.c:204,1
    - Dst: nssArena_Destroy
      Src: /src/nss/lib/pki/tdcache.c:205,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pki/tdcache.c:208,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - td
    argTypes:
    - NSSTrustDomain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 211
    functionName: nssTrustDomain_DestroyCache
    functionSourceFile: /src/nss/lib/pki/tdcache.c
    functionUses: 0
    functionsReached:
    - nssHash_Count
    - nss_SetError
    - nssArena_Destroy
    - PZ_DestroyLock
    - PR_LOG
    - nssHash_Destroy
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nssTrustDomain_DestroyCache(NSSTrustDomain *td)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssHash_Remove
      Src: /src/nss/lib/pki/tdcache.c:219,1
    - Dst: log_cert_ref
      Src: /src/nss/lib/pki/tdcache.c:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - cache
    - cert
    argTypes:
    - nssTDCertificateCache*
    - NSSCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 213
    functionDepth: 3
    functionLinenumber: 213
    functionLinenumberEnd: 224
    functionName: remove_issuer_and_serial_entry
    functionSourceFile: /src/nss/lib/pki/tdcache.c
    functionUses: 0
    functionsReached:
    - log_cert_ref
    - nssHash_Remove
    linkageType: ''
    returnType: PRStatus
    signature: "PRStatus remove_issuer_and_serial_entry(\n    nssTDCertificateCache
      *cache,\n    NSSCertificate *cert)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssHash_Lookup
      Src: /src/nss/lib/pki/tdcache.c:239,1
    - Dst: nssList_Remove
      Src: /src/nss/lib/pki/tdcache.c:242,1
    - Dst: log_cert_ref
      Src: /src/nss/lib/pki/tdcache.c:248,1
    - Dst: log_item_dump
      Src: /src/nss/lib/pki/tdcache.c:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 5
    argNames:
    - cache
    - cert
    - subjectList
    - nickname
    - arena
    argTypes:
    - nssTDCertificateCache*
    - NSSCertificate*
    - nssList**
    - NSSUTF8**
    - NSSArena**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 226
    functionDepth: 3
    functionLinenumber: 226
    functionLinenumberEnd: 255
    functionName: remove_subject_entry
    functionSourceFile: /src/nss/lib/pki/tdcache.c
    functionUses: 0
    functionsReached:
    - nssHash_Lookup
    - log_cert_ref
    - nssList_Remove
    - log_item_dump
    linkageType: ''
    returnType: PRStatus
    signature: "PRStatus remove_subject_entry(\n    nssTDCertificateCache *cache,\n
      \   NSSCertificate *cert,\n    nssList **subjectList,\n    NSSUTF8 **nickname,\n
      \   NSSArena **arena)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssHash_Remove
      Src: /src/nss/lib/pki/tdcache.c:265,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pki/tdcache.c:268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - cache
    - nickname
    - subjectList
    argTypes:
    - nssTDCertificateCache*
    - NSSUTF8*
    - nssList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 274
    functionName: remove_nickname_entry
    functionSourceFile: /src/nss/lib/pki/tdcache.c
    functionUses: 0
    functionsReached:
    - PR_LOG
    - nssHash_Remove
    linkageType: ''
    returnType: PRStatus
    signature: "PRStatus remove_nickname_entry(\n    nssTDCertificateCache *cache,\n
      \   NSSUTF8 *nickname,\n    nssList *subjectList)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nssHash_Lookup
      Src: /src/nss/lib/pki/tdcache.c:286,1
    - Dst: nssList_Remove
      Src: /src/nss/lib/pki/tdcache.c:291,1
    - Dst: log_item_dump
      Src: /src/nss/lib/pki/tdcache.c:293,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pki/tdcache.c:294,1
    - Dst: nssList_Count
      Src: /src/nss/lib/pki/tdcache.c:296,1
    - Dst: nssList_Destroy
      Src: /src/nss/lib/pki/tdcache.c:300,1
    - Dst: nssHash_Remove
      Src: /src/nss/lib/pki/tdcache.c:301,1
    - Dst: nssArena_Destroy
      Src: /src/nss/lib/pki/tdcache.c:305,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pki/tdcache.c:307,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - cache
    - cert
    - subjectList
    argTypes:
    - nssTDCertificateCache*
    - NSSCertificate*
    - nssList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 315
    functionName: remove_email_entry
    functionSourceFile: /src/nss/lib/pki/tdcache.c
    functionUses: 0
    functionsReached:
    - log_item_dump
    - nssArena_Destroy
    - nssHash_Lookup
    - nssList_Count
    - nssList_Destroy
    - nssList_Remove
    - PR_LOG
    - nssHash_Remove
    linkageType: ''
    returnType: PRStatus
    signature: "PRStatus remove_email_entry(\n    nssTDCertificateCache *cache,\n
      \   NSSCertificate *cert,\n    nssList *subjectList)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: log_cert_ref
      Src: /src/nss/lib/pki/tdcache.c:328,1
    - Dst: nssHash_Lookup
      Src: /src/nss/lib/pki/tdcache.c:330,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pki/tdcache.c:336,1
    - Dst: remove_issuer_and_serial_entry
      Src: /src/nss/lib/pki/tdcache.c:340,1
    - Dst: remove_subject_entry
      Src: /src/nss/lib/pki/tdcache.c:341,1
    - Dst: nssList_Count
      Src: /src/nss/lib/pki/tdcache.c:343,1
    - Dst: remove_nickname_entry
      Src: /src/nss/lib/pki/tdcache.c:344,1
    - Dst: remove_email_entry
      Src: /src/nss/lib/pki/tdcache.c:345,1
    - Dst: nssList_Destroy
      Src: /src/nss/lib/pki/tdcache.c:346,1
    - Dst: nssHash_Remove
      Src: /src/nss/lib/pki/tdcache.c:347,1
    - Dst: nssArena_Destroy
      Src: /src/nss/lib/pki/tdcache.c:352,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - td
    - cert
    argTypes:
    - NSSTrustDomain*
    - NSSCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 317
    functionDepth: 4
    functionLinenumber: 317
    functionLinenumberEnd: 355
    functionName: nssTrustDomain_RemoveCertFromCacheLOCKED
    functionSourceFile: /src/nss/lib/pki/tdcache.c
    functionUses: 0
    functionsReached:
    - log_cert_ref
    - remove_subject_entry
    - remove_nickname_entry
    - remove_issuer_and_serial_entry
    - remove_email_entry
    - nssArena_Destroy
    - nssHash_Lookup
    - nssList_Count
    - nssList_Destroy
    - PR_LOG
    - nssHash_Remove
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssTrustDomain_RemoveCertFromCacheLOCKED(\n    NSSTrustDomain
      *td,\n    NSSCertificate *cert)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/pki/tdcache.c:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - td
    argTypes:
    - NSSTrustDomain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 361
    functionName: nssTrustDomain_LockCertCache
    functionSourceFile: /src/nss/lib/pki/tdcache.c
    functionUses: 0
    functionsReached:
    - PZ_Lock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nssTrustDomain_LockCertCache(NSSTrustDomain *td)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Unlock
      Src: /src/nss/lib/pki/tdcache.c:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - td
    argTypes:
    - NSSTrustDomain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 363
    functionDepth: 1
    functionLinenumber: 363
    functionLinenumberEnd: 367
    functionName: nssTrustDomain_UnlockCertCache
    functionSourceFile: /src/nss/lib/pki/tdcache.c
    functionUses: 0
    functionsReached:
    - PZ_Unlock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nssTrustDomain_UnlockCertCache(NSSTrustDomain *td)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssPKIObject_AddRef
      Src: /src/nss/lib/pki/tdcache.c:383,1
    - Dst: nssPKIObject_Lock
      Src: /src/nss/lib/pki/tdcache.c:384,1
    - Dst: nssCryptokiObject_Destroy
      Src: /src/nss/lib/pki/tdcache.c:387,1
    - Dst: nss_ZREALLOCARRAY
      Src: /src/nss/lib/pki/tdcache.c:394,1
    - Dst: nssPKIObject_Unlock
      Src: /src/nss/lib/pki/tdcache.c:401,1
    - Dst: nssPKIObject_Destroy
      Src: /src/nss/lib/pki/tdcache.c:402,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - k
    - v
    - a
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 404
    functionName: remove_token_certs
    functionSourceFile: /src/nss/lib/pki/tdcache.c
    functionUses: 0
    functionsReached:
    - nss_ZREALLOCARRAY
    - nssPKIObject_AddRef
    - nssPKIObject_Unlock
    - nssCryptokiObject_Destroy
    - nssPKIObject_Destroy
    - nssPKIObject_Lock
    linkageType: ''
    returnType: void
    signature: void remove_token_certs(const void *k, void *v, void *a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nss_ZNEWARRAY
      Src: /src/nss/lib/pki/tdcache.c:418,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/pki/tdcache.c:427,1
    - Dst: nssHash_Iterate
      Src: /src/nss/lib/pki/tdcache.c:428,1
    - Dst: nssTrustDomain_RemoveCertFromCacheLOCKED
      Src: /src/nss/lib/pki/tdcache.c:431,1
    - Dst: nssCertificate_AddRef
      Src: /src/nss/lib/pki/tdcache.c:435,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/pki/tdcache.c:438,1
    - Dst: STAN_ForceCERTCertificateUpdate
      Src: /src/nss/lib/pki/tdcache.c:441,1
    - Dst: nssCertificate_Destroy
      Src: /src/nss/lib/pki/tdcache.c:442,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/pki/tdcache.c:445,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 2
    argNames:
    - td
    - token
    argTypes:
    - NSSTrustDomain*
    - NSSToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 410
    functionDepth: 5
    functionLinenumber: 410
    functionLinenumberEnd: 447
    functionName: nssTrustDomain_RemoveTokenCertsFromCache
    functionSourceFile: /src/nss/lib/pki/tdcache.c
    functionUses: 0
    functionsReached:
    - nssTrustDomain_RemoveCertFromCacheLOCKED
    - nssHash_Iterate
    - nss_ZNEWARRAY
    - nssCertificate_Destroy
    - PZ_Unlock
    - nssCertificate_AddRef
    - nss_ZFreeIf
    - STAN_ForceCERTCertificateUpdate
    - PZ_Lock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssTrustDomain_RemoveTokenCertsFromCache(\n    NSSTrustDomain
      *td,\n    NSSToken *token)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nssList_Create
      Src: /src/nss/lib/pki/tdcache.c:457,1
    - Dst: nssTrustDomain_GetCertsFromCache
      Src: /src/nss/lib/pki/tdcache.c:460,1
    - Dst: nssList_Count
      Src: /src/nss/lib/pki/tdcache.c:461,1
    - Dst: nss_ZNEWARRAY
      Src: /src/nss/lib/pki/tdcache.c:463,1
    - Dst: nssList_Destroy
      Src: /src/nss/lib/pki/tdcache.c:465,1
    - Dst: nssList_GetArray
      Src: /src/nss/lib/pki/tdcache.c:468,1
    - Dst: nssToken_FindCertificateByIssuerAndSerialNumber
      Src: /src/nss/lib/pki/tdcache.c:473,1
    - Dst: nssPKIObject_AddInstance
      Src: /src/nss/lib/pki/tdcache.c:481,1
    - Dst: STAN_ForceCERTCertificateUpdate
      Src: /src/nss/lib/pki/tdcache.c:482,1
    - Dst: nssCertificateArray_Destroy
      Src: /src/nss/lib/pki/tdcache.c:485,1
    - Dst: nssList_Destroy
      Src: /src/nss/lib/pki/tdcache.c:487,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - td
    - token
    argTypes:
    - NSSTrustDomain*
    - NSSToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 489
    functionName: nssTrustDomain_UpdateCachedTokenCerts
    functionSourceFile: /src/nss/lib/pki/tdcache.c
    functionUses: 0
    functionsReached:
    - nssToken_FindCertificateByIssuerAndSerialNumber
    - nssCertificateArray_Destroy
    - nss_ZNEWARRAY
    - nssTrustDomain_GetCertsFromCache
    - nssList_Create
    - STAN_ForceCERTCertificateUpdate
    - nssList_GetArray
    - nssPKIObject_AddInstance
    - nssList_Count
    - nssList_Destroy
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssTrustDomain_UpdateCachedTokenCerts(\n    NSSTrustDomain
      *td,\n    NSSToken *token)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_cache_entry
      Src: /src/nss/lib/pki/tdcache.c:498,1
    - Dst: log_cert_ref
      Src: /src/nss/lib/pki/tdcache.c:500,1
    - Dst: nssHash_Add
      Src: /src/nss/lib/pki/tdcache.c:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - arena
    - cache
    - cert
    argTypes:
    - NSSArena*
    - nssTDCertificateCache*
    - NSSCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 491
    functionDepth: 3
    functionLinenumber: 491
    functionLinenumberEnd: 503
    functionName: add_issuer_and_serial_entry
    functionSourceFile: /src/nss/lib/pki/tdcache.c
    functionUses: 0
    functionsReached:
    - log_cert_ref
    - new_cache_entry
    - nssHash_Add
    linkageType: ''
    returnType: PRStatus
    signature: "PRStatus add_issuer_and_serial_entry(\n    NSSArena *arena,\n    nssTDCertificateCache
      *cache,\n    NSSCertificate *cert)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: nssHash_Lookup
      Src: /src/nss/lib/pki/tdcache.c:517,1
    - Dst: PR_Now
      Src: /src/nss/lib/pki/tdcache.c:520,1
    - Dst: nssList_AddUnique
      Src: /src/nss/lib/pki/tdcache.c:522,1
    - Dst: log_cert_ref
      Src: /src/nss/lib/pki/tdcache.c:524,1
    - Dst: nssList_Create
      Src: /src/nss/lib/pki/tdcache.c:529,1
    - Dst: new_cache_entry
      Src: /src/nss/lib/pki/tdcache.c:533,1
    - Dst: nssUTF8_Duplicate
      Src: /src/nss/lib/pki/tdcache.c:538,1
    - Dst: nssList_SetSortFunction
      Src: /src/nss/lib/pki/tdcache.c:540,1
    - Dst: nssList_AddUnique
      Src: /src/nss/lib/pki/tdcache.c:542,1
    - Dst: nssItem_Duplicate
      Src: /src/nss/lib/pki/tdcache.c:547,1
    - Dst: nssHash_Add
      Src: /src/nss/lib/pki/tdcache.c:551,1
    - Dst: log_cert_ref
      Src: /src/nss/lib/pki/tdcache.c:557,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 5
    argNames:
    - arena
    - cache
    - cert
    - nickname
    - subjectList
    argTypes:
    - NSSArena*
    - nssTDCertificateCache*
    - NSSCertificate*
    - NSSUTF8*
    - nssList**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 505
    functionDepth: 3
    functionLinenumber: 505
    functionLinenumberEnd: 561
    functionName: add_subject_entry
    functionSourceFile: /src/nss/lib/pki/tdcache.c
    functionUses: 0
    functionsReached:
    - log_cert_ref
    - nssItem_Duplicate
    - nssHash_Add
    - new_cache_entry
    - PR_Now
    - nssList_SetSortFunction
    - nssList_Create
    - nssHash_Lookup
    - nssList_AddUnique
    - nssUTF8_Duplicate
    linkageType: ''
    returnType: PRStatus
    signature: "PRStatus add_subject_entry(\n    NSSArena *arena,\n    nssTDCertificateCache
      *cache,\n    NSSCertificate *cert,\n    NSSUTF8 *nickname,\n    nssList **subjectList)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nssHash_Lookup
      Src: /src/nss/lib/pki/tdcache.c:572,1
    - Dst: new_cache_entry
      Src: /src/nss/lib/pki/tdcache.c:581,1
    - Dst: nssUTF8_Duplicate
      Src: /src/nss/lib/pki/tdcache.c:585,1
    - Dst: nssHash_Add
      Src: /src/nss/lib/pki/tdcache.c:589,1
    - Dst: log_cert_ref
      Src: /src/nss/lib/pki/tdcache.c:591,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - arena
    - cache
    - certNickname
    - subjectList
    argTypes:
    - NSSArena*
    - nssTDCertificateCache*
    - NSSUTF8*
    - nssList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 563
    functionDepth: 3
    functionLinenumber: 563
    functionLinenumberEnd: 595
    functionName: add_nickname_entry
    functionSourceFile: /src/nss/lib/pki/tdcache.c
    functionUses: 0
    functionsReached:
    - log_cert_ref
    - nssHash_Add
    - new_cache_entry
    - nssHash_Lookup
    - nssUTF8_Duplicate
    linkageType: ''
    returnType: PRStatus
    signature: "PRStatus add_nickname_entry(\n    NSSArena *arena,\n    nssTDCertificateCache
      *cache,\n    NSSUTF8 *certNickname,\n    nssList *subjectList)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: nssHash_Lookup
      Src: /src/nss/lib/pki/tdcache.c:606,1
    - Dst: nssList_AddUnique
      Src: /src/nss/lib/pki/tdcache.c:610,1
    - Dst: PR_Now
      Src: /src/nss/lib/pki/tdcache.c:612,1
    - Dst: log_cert_ref
      Src: /src/nss/lib/pki/tdcache.c:614,1
    - Dst: nssArena_Create
      Src: /src/nss/lib/pki/tdcache.c:619,1
    - Dst: nssList_Create
      Src: /src/nss/lib/pki/tdcache.c:624,1
    - Dst: nssArena_Destroy
      Src: /src/nss/lib/pki/tdcache.c:626,1
    - Dst: nssList_AddUnique
      Src: /src/nss/lib/pki/tdcache.c:630,1
    - Dst: nssArena_Destroy
      Src: /src/nss/lib/pki/tdcache.c:632,1
    - Dst: new_cache_entry
      Src: /src/nss/lib/pki/tdcache.c:636,1
    - Dst: nssArena_Destroy
      Src: /src/nss/lib/pki/tdcache.c:638,1
    - Dst: nssUTF8_Duplicate
      Src: /src/nss/lib/pki/tdcache.c:641,1
    - Dst: nssArena_Destroy
      Src: /src/nss/lib/pki/tdcache.c:643,1
    - Dst: nssHash_Add
      Src: /src/nss/lib/pki/tdcache.c:646,1
    - Dst: nssArena_Destroy
      Src: /src/nss/lib/pki/tdcache.c:648,1
    - Dst: log_cert_ref
      Src: /src/nss/lib/pki/tdcache.c:652,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 41
    argCount: 3
    argNames:
    - cache
    - cert
    - subjectList
    argTypes:
    - nssTDCertificateCache*
    - NSSCertificate*
    - nssList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 597
    functionDepth: 3
    functionLinenumber: 597
    functionLinenumberEnd: 656
    functionName: add_email_entry
    functionSourceFile: /src/nss/lib/pki/tdcache.c
    functionUses: 0
    functionsReached:
    - log_cert_ref
    - nssArena_Create
    - nssHash_Add
    - new_cache_entry
    - PR_Now
    - nssList_Create
    - nssHash_Lookup
    - nssArena_Destroy
    - nssList_AddUnique
    - nssUTF8_Duplicate
    linkageType: ''
    returnType: PRStatus
    signature: "PRStatus add_email_entry(\n    nssTDCertificateCache *cache,\n    NSSCertificate
      *cert,\n    nssList *subjectList)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssPKIObject_RemoveInstanceForToken
      Src: /src/nss/lib/pki/tdcache.c:669,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - object
    - instances
    - numInstances
    argTypes:
    - nssPKIObject*
    - nssCryptokiObject**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 660
    functionDepth: 1
    functionLinenumber: 660
    functionLinenumberEnd: 671
    functionName: remove_object_instances
    functionSourceFile: /src/nss/lib/pki/tdcache.c
    functionUses: 0
    functionsReached:
    - nssPKIObject_RemoveInstanceForToken
    linkageType: ''
    returnType: void
    signature: "void remove_object_instances(\n    nssPKIObject *object,\n    nssCryptokiObject
      **instances,\n    int numInstances)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nssPKIObject_GetInstances
      Src: /src/nss/lib/pki/tdcache.c:682,1
    - Dst: nssCryptokiObject_Clone
      Src: /src/nss/lib/pki/tdcache.c:687,1
    - Dst: nssPKIObject_AddInstance
      Src: /src/nss/lib/pki/tdcache.c:689,1
    - Dst: nssCryptokiObject_Destroy
      Src: /src/nss/lib/pki/tdcache.c:692,1
    - Dst: remove_object_instances
      Src: /src/nss/lib/pki/tdcache.c:694,1
    - Dst: nssCryptokiObjectArray_Destroy
      Src: /src/nss/lib/pki/tdcache.c:698,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - to
    - from
    argTypes:
    - nssPKIObject*
    - nssPKIObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 673
    functionDepth: 2
    functionLinenumber: 673
    functionLinenumberEnd: 700
    functionName: merge_object_instances
    functionSourceFile: /src/nss/lib/pki/tdcache.c
    functionUses: 0
    functionsReached:
    - remove_object_instances
    - nssCryptokiObjectArray_Destroy
    - nssCryptokiObject_Destroy
    - nssPKIObject_AddInstance
    - nssPKIObject_GetInstances
    - nssCryptokiObject_Clone
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus merge_object_instances(\n    nssPKIObject *to,\n    nssPKIObject
      *from)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: nssCertificate_GetNickname
      Src: /src/nss/lib/pki/tdcache.c:713,1
    - Dst: STAN_GetCERTCertificate
      Src: /src/nss/lib/pki/tdcache.c:720,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/pki/tdcache.c:723,1
    - Dst: nssHash_Lookup
      Src: /src/nss/lib/pki/tdcache.c:725,1
    - Dst: PR_Now
      Src: /src/nss/lib/pki/tdcache.c:728,1
    - Dst: nssCertificate_AddRef
      Src: /src/nss/lib/pki/tdcache.c:729,1
    - Dst: log_cert_ref
      Src: /src/nss/lib/pki/tdcache.c:731,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/pki/tdcache.c:733,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/pki/tdcache.c:734,1
    - Dst: merge_object_instances
      Src: /src/nss/lib/pki/tdcache.c:739,1
    - Dst: nssCertificate_Destroy
      Src: /src/nss/lib/pki/tdcache.c:740,1
    - Dst: STAN_ForceCERTCertificateUpdate
      Src: /src/nss/lib/pki/tdcache.c:743,1
    - Dst: nssCertificate_Destroy
      Src: /src/nss/lib/pki/tdcache.c:744,1
    - Dst: add_issuer_and_serial_entry
      Src: /src/nss/lib/pki/tdcache.c:748,1
    - Dst: nssArena_Create
      Src: /src/nss/lib/pki/tdcache.c:754,1
    - Dst: add_subject_entry
      Src: /src/nss/lib/pki/tdcache.c:759,1
    - Dst: add_nickname_entry
      Src: /src/nss/lib/pki/tdcache.c:771,1
    - Dst: add_email_entry
      Src: /src/nss/lib/pki/tdcache.c:782,1
    - Dst: nssArena_Destroy
      Src: /src/nss/lib/pki/tdcache.c:804,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/pki/tdcache.c:807,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/pki/tdcache.c:808,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/pki/tdcache.c:811,1
    - Dst: remove_issuer_and_serial_entry
      Src: /src/nss/lib/pki/tdcache.c:816,1
    - Dst: remove_subject_entry
      Src: /src/nss/lib/pki/tdcache.c:819,1
    - Dst: remove_nickname_entry
      Src: /src/nss/lib/pki/tdcache.c:823,1
    - Dst: remove_email_entry
      Src: /src/nss/lib/pki/tdcache.c:826,1
    - Dst: nssHash_Remove
      Src: /src/nss/lib/pki/tdcache.c:829,1
    - Dst: nssList_Destroy
      Src: /src/nss/lib/pki/tdcache.c:830,1
    - Dst: nssArena_Destroy
      Src: /src/nss/lib/pki/tdcache.c:833,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/pki/tdcache.c:835,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 95
    argCount: 2
    argNames:
    - td
    - cert
    argTypes:
    - NSSTrustDomain*
    - NSSCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 702
    functionDepth: 4
    functionLinenumber: 702
    functionLinenumberEnd: 837
    functionName: add_cert_to_cache
    functionSourceFile: /src/nss/lib/pki/tdcache.c
    functionUses: 0
    functionsReached:
    - remove_issuer_and_serial_entry
    - PZ_Unlock
    - remove_email_entry
    - PR_Now
    - nss_ZFreeIf
    - STAN_ForceCERTCertificateUpdate
    - merge_object_instances
    - add_subject_entry
    - nssHash_Lookup
    - nssArena_Destroy
    - nssHash_Remove
    - add_email_entry
    - nssList_Destroy
    - log_cert_ref
    - nssArena_Create
    - remove_subject_entry
    - nssCertificate_Destroy
    - remove_nickname_entry
    - nssCertificate_AddRef
    - nssCertificate_GetNickname
    - add_issuer_and_serial_entry
    - STAN_GetCERTCertificate
    - PZ_Lock
    - add_nickname_entry
    linkageType: ''
    returnType: NSSCertificate
    signature: "NSSCertificate *\nadd_cert_to_cache(\n    NSSTrustDomain *td,\n    NSSCertificate
      *cert)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: add_cert_to_cache
      Src: /src/nss/lib/pki/tdcache.c:848,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - td
    - certs
    - numCerts
    argTypes:
    - NSSTrustDomain*
    - NSSCertificate**
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 839
    functionDepth: 5
    functionLinenumber: 839
    functionLinenumberEnd: 856
    functionName: nssTrustDomain_AddCertsToCache
    functionSourceFile: /src/nss/lib/pki/tdcache.c
    functionUses: 0
    functionsReached:
    - add_cert_to_cache
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssTrustDomain_AddCertsToCache(\n    NSSTrustDomain
      *td,\n    NSSCertificate **certs,\n    PRUint32 numCerts)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nssCertificateList_AddReferences
      Src: /src/nss/lib/pki/tdcache.c:866,1
    - Dst: nssList_CreateIterator
      Src: /src/nss/lib/pki/tdcache.c:868,1
    - Dst: nssListIterator_Start
      Src: /src/nss/lib/pki/tdcache.c:872,1
    - Dst: nssListIterator_Next
      Src: /src/nss/lib/pki/tdcache.c:874,1
    - Dst: nssList_Add
      Src: /src/nss/lib/pki/tdcache.c:875,1
    - Dst: nssListIterator_Finish
      Src: /src/nss/lib/pki/tdcache.c:877,1
    - Dst: nssListIterator_Destroy
      Src: /src/nss/lib/pki/tdcache.c:878,1
    - Dst: nssList_Count
      Src: /src/nss/lib/pki/tdcache.c:880,1
    - Dst: nss_ZNEWARRAY
      Src: /src/nss/lib/pki/tdcache.c:881,1
    - Dst: nssList_GetArray
      Src: /src/nss/lib/pki/tdcache.c:885,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 858
    functionDepth: 1
    functionLinenumber: 858
    functionLinenumberEnd: 888
    functionName: collect_subject_certs
    functionSourceFile: /src/nss/lib/pki/tdcache.c
    functionUses: 0
    functionsReached:
    - nssListIterator_Destroy
    - nssList_CreateIterator
    - nssListIterator_Finish
    - nss_ZNEWARRAY
    - nssListIterator_Next
    - nssListIterator_Start
    - nssCertificateList_AddReferences
    - nssList_GetArray
    - nssList_Add
    - nssList_Count
    linkageType: ''
    returnType: NSSCertificate
    signature: "NSSCertificate **\ncollect_subject_certs(\n    nssList *subjectList,\n
      \   nssList *rvCertListOpt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log_item_dump
      Src: /src/nss/lib/pki/tdcache.c:902,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/pki/tdcache.c:904,1
    - Dst: nssHash_Lookup
      Src: /src/nss/lib/pki/tdcache.c:905,1
    - Dst: PR_Now
      Src: /src/nss/lib/pki/tdcache.c:908,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pki/tdcache.c:910,1
    - Dst: collect_subject_certs
      Src: /src/nss/lib/pki/tdcache.c:912,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/pki/tdcache.c:914,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 893
    functionDepth: 2
    functionLinenumber: 893
    functionLinenumberEnd: 916
    functionName: "NSSCertificate **\nnssTrustDomain_GetCertsForSubjectFromCache(\n
      \   NSSTrustDomain *td,\n    NSSDER *subject,\n    nssList *certListOpt)"
    functionSourceFile: /src/nss/lib/pki/tdcache.c
    functionUses: 0
    functionsReached:
    - log_item_dump
    - PZ_Unlock
    - PR_Now
    - PZ_Lock
    - collect_subject_certs
    - nssHash_Lookup
    - PR_LOG
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate **\nnssTrustDomain_GetCertsForSubjectFromCache(\n
      \   NSSTrustDomain *td,\n    NSSDER *subject,\n    nssList *certListOpt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pki/tdcache.c:930,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/pki/tdcache.c:932,1
    - Dst: nssHash_Lookup
      Src: /src/nss/lib/pki/tdcache.c:933,1
    - Dst: PR_Now
      Src: /src/nss/lib/pki/tdcache.c:936,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pki/tdcache.c:938,1
    - Dst: collect_subject_certs
      Src: /src/nss/lib/pki/tdcache.c:940,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/pki/tdcache.c:942,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 921
    functionDepth: 2
    functionLinenumber: 921
    functionLinenumberEnd: 944
    functionName: "NSSCertificate **\nnssTrustDomain_GetCertsForNicknameFromCache(\n
      \   NSSTrustDomain *td,\n    const NSSUTF8 *nickname,\n    nssList *certListOpt)"
    functionSourceFile: /src/nss/lib/pki/tdcache.c
    functionUses: 0
    functionsReached:
    - PZ_Unlock
    - PR_Now
    - PZ_Lock
    - collect_subject_certs
    - nssHash_Lookup
    - PR_LOG
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate **\nnssTrustDomain_GetCertsForNicknameFromCache(\n
      \   NSSTrustDomain *td,\n    const NSSUTF8 *nickname,\n    nssList *certListOpt)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pki/tdcache.c:961,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/pki/tdcache.c:963,1
    - Dst: nssHash_Lookup
      Src: /src/nss/lib/pki/tdcache.c:964,1
    - Dst: PR_Now
      Src: /src/nss/lib/pki/tdcache.c:967,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pki/tdcache.c:969,1
    - Dst: nssList_Create
      Src: /src/nss/lib/pki/tdcache.c:975,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/pki/tdcache.c:977,1
    - Dst: nssList_CreateIterator
      Src: /src/nss/lib/pki/tdcache.c:981,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/pki/tdcache.c:983,1
    - Dst: nssList_Destroy
      Src: /src/nss/lib/pki/tdcache.c:985,1
    - Dst: nssListIterator_Start
      Src: /src/nss/lib/pki/tdcache.c:989,1
    - Dst: nssListIterator_Next
      Src: /src/nss/lib/pki/tdcache.c:991,1
    - Dst: collect_subject_certs
      Src: /src/nss/lib/pki/tdcache.c:992,1
    - Dst: nssListIterator_Finish
      Src: /src/nss/lib/pki/tdcache.c:994,1
    - Dst: nssListIterator_Destroy
      Src: /src/nss/lib/pki/tdcache.c:995,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/pki/tdcache.c:997,1
    - Dst: nssList_Count
      Src: /src/nss/lib/pki/tdcache.c:999,1
    - Dst: nss_ZNEWARRAY
      Src: /src/nss/lib/pki/tdcache.c:1000,1
    - Dst: nssList_GetArray
      Src: /src/nss/lib/pki/tdcache.c:1002,1
    - Dst: nssList_Destroy
      Src: /src/nss/lib/pki/tdcache.c:1004,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1007
      start: 949
    functionDepth: 2
    functionLinenumber: 949
    functionLinenumberEnd: 1007
    functionName: "NSSCertificate **\nnssTrustDomain_GetCertsForEmailAddressFromCache(\n
      \   NSSTrustDomain *td,\n    NSSASCII7 *email,\n    nssList *certListOpt)"
    functionSourceFile: /src/nss/lib/pki/tdcache.c
    functionUses: 0
    functionsReached:
    - nssListIterator_Destroy
    - nssList_CreateIterator
    - nssListIterator_Finish
    - nss_ZNEWARRAY
    - PZ_Unlock
    - nssListIterator_Start
    - PR_Now
    - nssListIterator_Next
    - nssList_Create
    - PZ_Lock
    - nssList_GetArray
    - collect_subject_certs
    - nssHash_Lookup
    - nssList_Count
    - nssList_Destroy
    - PR_LOG
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate **\nnssTrustDomain_GetCertsForEmailAddressFromCache(\n
      \   NSSTrustDomain *td,\n    NSSASCII7 *email,\n    nssList *certListOpt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log_item_dump
      Src: /src/nss/lib/pki/tdcache.c:1026,1
    - Dst: log_item_dump
      Src: /src/nss/lib/pki/tdcache.c:1027,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/pki/tdcache.c:1029,1
    - Dst: nssHash_Lookup
      Src: /src/nss/lib/pki/tdcache.c:1030,1
    - Dst: PR_Now
      Src: /src/nss/lib/pki/tdcache.c:1033,1
    - Dst: nssCertificate_AddRef
      Src: /src/nss/lib/pki/tdcache.c:1034,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pki/tdcache.c:1036,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/pki/tdcache.c:1039,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 1012
    functionDepth: 2
    functionLinenumber: 1012
    functionLinenumberEnd: 1041
    functionName: "NSSCertificate *\nnssTrustDomain_GetCertForIssuerAndSNFromCache(\n
      \   NSSTrustDomain *td,\n    NSSDER *issuer,\n    NSSDER *serial)"
    functionSourceFile: /src/nss/lib/pki/tdcache.c
    functionUses: 0
    functionsReached:
    - log_item_dump
    - PZ_Unlock
    - PR_Now
    - nssCertificate_AddRef
    - PZ_Lock
    - nssHash_Lookup
    - PR_LOG
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate *\nnssTrustDomain_GetCertForIssuerAndSNFromCache(\n
      \   NSSTrustDomain *td,\n    NSSDER *issuer,\n    NSSDER *serial)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssPKIX509_GetIssuerAndSerialFromDER
      Src: /src/nss/lib/pki/tdcache.c:1054,1
    - Dst: log_item_dump
      Src: /src/nss/lib/pki/tdcache.c:1059,1
    - Dst: nssTrustDomain_GetCertForIssuerAndSNFromCache
      Src: /src/nss/lib/pki/tdcache.c:1061,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pki/tdcache.c:1063,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pki/tdcache.c:1064,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1046
    functionDepth: 2
    functionLinenumber: 1046
    functionLinenumberEnd: 1066
    functionName: "NSSCertificate *\nnssTrustDomain_GetCertByDERFromCache(\n    NSSTrustDomain
      *td,\n    NSSDER *der)"
    functionSourceFile: /src/nss/lib/pki/tdcache.c
    functionUses: 0
    functionsReached:
    - log_item_dump
    - PORT_Free
    - nssTrustDomain_GetCertForIssuerAndSNFromCache
    - nssPKIX509_GetIssuerAndSerialFromDER
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate *\nnssTrustDomain_GetCertByDERFromCache(\n
      \   NSSTrustDomain *td,\n    NSSDER *der)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssList_Add
      Src: /src/nss/lib/pki/tdcache.c:1073,1
    - Dst: nssCertificate_AddRef
      Src: /src/nss/lib/pki/tdcache.c:1073,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - k
    - v
    - a
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1074
      start: 1068
    functionDepth: 1
    functionLinenumber: 1068
    functionLinenumberEnd: 1074
    functionName: cert_iter
    functionSourceFile: /src/nss/lib/pki/tdcache.c
    functionUses: 0
    functionsReached:
    - nssCertificate_AddRef
    - nssList_Add
    linkageType: ''
    returnType: void
    signature: void cert_iter(const void *k, void *v, void *a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nssList_Create
      Src: /src/nss/lib/pki/tdcache.c:1086,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/pki/tdcache.c:1091,1
    - Dst: nssHash_Iterate
      Src: /src/nss/lib/pki/tdcache.c:1092,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/pki/tdcache.c:1093,1
    - Dst: nssList_Count
      Src: /src/nss/lib/pki/tdcache.c:1095,1
    - Dst: nss_ZNEWARRAY
      Src: /src/nss/lib/pki/tdcache.c:1096,1
    - Dst: nssList_GetArray
      Src: /src/nss/lib/pki/tdcache.c:1097,1
    - Dst: nssList_Destroy
      Src: /src/nss/lib/pki/tdcache.c:1099,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1102
      start: 1076
    functionDepth: 1
    functionLinenumber: 1076
    functionLinenumberEnd: 1102
    functionName: "NSSCertificate **\nnssTrustDomain_GetCertsFromCache(\n    NSSTrustDomain
      *td,\n    nssList *certListOpt)"
    functionSourceFile: /src/nss/lib/pki/tdcache.c
    functionUses: 0
    functionsReached:
    - nssHash_Iterate
    - nss_ZNEWARRAY
    - PZ_Unlock
    - nssList_Create
    - PZ_Lock
    - nssList_GetArray
    - nssList_Count
    - nssList_Destroy
    linkageType: ''
    returnType: NSS_EXTERN
    signature: "NSS_EXTERN NSSCertificate **\nnssTrustDomain_GetCertsFromCache(\n
      \   NSSTrustDomain *td,\n    nssList *certListOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/pki/tdcache.c:1110,1
    - Dst: nssHash_Iterate
      Src: /src/nss/lib/pki/tdcache.c:1111,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/pki/tdcache.c:1112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - td
    - arg
    argTypes:
    - NSSTrustDomain*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1113
      start: 1104
    functionDepth: 1
    functionLinenumber: 1104
    functionLinenumberEnd: 1113
    functionName: nssTrustDomain_DumpCacheInfo
    functionSourceFile: /src/nss/lib/pki/tdcache.c
    functionUses: 0
    functionsReached:
    - nssHash_Iterate
    - PZ_Lock
    - PZ_Unlock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssTrustDomain_DumpCacheInfo(\n    NSSTrustDomain *td,\n
      \   void (*cert_dump_iter)(const void *, void *, void *),\n    void *arg)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: nssArena_Create
      Src: /src/nss/lib/pki/pkistore.c:72,1
    - Dst: nss_ZNEW
      Src: /src/nss/lib/pki/pkistore.c:78,1
    - Dst: PZ_NewLock
      Src: /src/nss/lib/pki/pkistore.c:82,1
    - Dst: nssHash_CreateCertificate
      Src: /src/nss/lib/pki/pkistore.c:87,1
    - Dst: nssHash_CreateItem
      Src: /src/nss/lib/pki/pkistore.c:92,1
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/pki/pkistore.c:102,1
    - Dst: nssHash_Destroy
      Src: /src/nss/lib/pki/pkistore.c:105,1
    - Dst: nssHash_Destroy
      Src: /src/nss/lib/pki/pkistore.c:108,1
    - Dst: nssArena_Destroy
      Src: /src/nss/lib/pki/pkistore.c:112,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 115
    functionName: 'nssCertificateStore *

      nssCertificateStore_Create(NSSArena *arenaOpt)'
    functionSourceFile: /src/nss/lib/pki/pkistore.c
    functionUses: 0
    functionsReached:
    - nssArena_Create
    - nssHash_CreateCertificate
    - nssHash_CreateItem
    - nss_ZNEW
    - nssArena_Destroy
    - PZ_DestroyLock
    - PZ_NewLock
    - nssHash_Destroy
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: 'NSS_IMPLEMENT nssCertificateStore *

      nssCertificateStore_Create(NSSArena *arenaOpt)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssHash_Count
      Src: /src/nss/lib/pki/pkistore.c:122,1
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/pkistore.c:123,1
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/pki/pkistore.c:126,1
    - Dst: nssHash_Destroy
      Src: /src/nss/lib/pki/pkistore.c:127,1
    - Dst: nssHash_Destroy
      Src: /src/nss/lib/pki/pkistore.c:128,1
    - Dst: nssArena_Destroy
      Src: /src/nss/lib/pki/pkistore.c:130,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/pki/pkistore.c:132,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - store
    argTypes:
    - nssCertificateStore*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 135
    functionName: nssCertificateStore_Destroy
    functionSourceFile: /src/nss/lib/pki/pkistore.c
    functionUses: 0
    functionsReached:
    - nss_ZFreeIf
    - nssHash_Count
    - nss_SetError
    - nssArena_Destroy
    - PZ_DestroyLock
    - nssHash_Destroy
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nssCertificateStore_Destroy(nssCertificateStore *store)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nss_ZNEW
      Src: /src/nss/lib/pki/pkistore.c:144,1
    - Dst: nssHash_Add
      Src: /src/nss/lib/pki/pkistore.c:149,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/pki/pkistore.c:151,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - store
    - cert
    argTypes:
    - nssCertificateStore*
    - NSSCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 154
    functionName: add_certificate_entry
    functionSourceFile: /src/nss/lib/pki/pkistore.c
    functionUses: 0
    functionsReached:
    - nssHash_Add
    - nss_ZFreeIf
    - nss_ZNEW
    linkageType: ''
    returnType: PRStatus
    signature: "PRStatus add_certificate_entry(\n    nssCertificateStore *store,\n
      \   NSSCertificate *cert)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nssHash_Lookup
      Src: /src/nss/lib/pki/pkistore.c:163,1
    - Dst: nssList_AddUnique
      Src: /src/nss/lib/pki/pkistore.c:166,1
    - Dst: nssList_Create
      Src: /src/nss/lib/pki/pkistore.c:169,1
    - Dst: nssList_SetSortFunction
      Src: /src/nss/lib/pki/pkistore.c:173,1
    - Dst: nssList_Add
      Src: /src/nss/lib/pki/pkistore.c:175,1
    - Dst: nssHash_Add
      Src: /src/nss/lib/pki/pkistore.c:180,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - store
    - cert
    argTypes:
    - nssCertificateStore*
    - NSSCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 183
    functionName: add_subject_entry
    functionSourceFile: /src/nss/lib/pki/pkistore.c
    functionUses: 1
    functionsReached:
    - nssHash_Add
    - nssList_SetSortFunction
    - nssList_Create
    - nssList_Add
    - nssHash_Lookup
    - nssList_AddUnique
    linkageType: ''
    returnType: PRStatus
    signature: "PRStatus add_subject_entry(\n    nssCertificateStore *store,\n    NSSCertificate
      *cert)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: add_certificate_entry
      Src: /src/nss/lib/pki/pkistore.c:197,1
    - Dst: add_subject_entry
      Src: /src/nss/lib/pki/pkistore.c:199,1
    - Dst: remove_certificate_entry
      Src: /src/nss/lib/pki/pkistore.c:201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - store
    - cert
    argTypes:
    - nssCertificateStore*
    - NSSCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 192
    functionDepth: 2
    functionLinenumber: 192
    functionLinenumberEnd: 205
    functionName: nssCertificateStore_AddLocked
    functionSourceFile: /src/nss/lib/pki/pkistore.c
    functionUses: 0
    functionsReached:
    - remove_certificate_entry
    - add_certificate_entry
    - add_subject_entry
    linkageType: ''
    returnType: PRStatus
    signature: "PRStatus nssCertificateStore_AddLocked(\n    nssCertificateStore *store,\n
      \   NSSCertificate *cert)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/pki/pkistore.c:215,1
    - Dst: nssCertStore_FindCertByIssuerAndSerialNumberLocked
      Src: /src/nss/lib/pki/pkistore.c:216,1
    - Dst: nssCertificateStore_AddLocked
      Src: /src/nss/lib/pki/pkistore.c:219,1
    - Dst: nssCertificate_AddRef
      Src: /src/nss/lib/pki/pkistore.c:221,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/pki/pkistore.c:224,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 207
    functionDepth: 3
    functionLinenumber: 207
    functionLinenumberEnd: 226
    functionName: "NSSCertificate *\nnssCertificateStore_FindOrAdd(\n    nssCertificateStore
      *store,\n    NSSCertificate *c)"
    functionSourceFile: /src/nss/lib/pki/pkistore.c
    functionUses: 0
    functionsReached:
    - PZ_Unlock
    - nssCertificate_AddRef
    - nssCertificateStore_AddLocked
    - PZ_Lock
    - nssCertStore_FindCertByIssuerAndSerialNumberLocked
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate *\nnssCertificateStore_FindOrAdd(\n    nssCertificateStore
      *store,\n    NSSCertificate *c)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nssHash_Lookup
      Src: /src/nss/lib/pki/pkistore.c:235,1
    - Dst: nssHash_Remove
      Src: /src/nss/lib/pki/pkistore.c:237,1
    - Dst: nssTrust_Destroy
      Src: /src/nss/lib/pki/pkistore.c:239,1
    - Dst: nssSMIMEProfile_Destroy
      Src: /src/nss/lib/pki/pkistore.c:242,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/pki/pkistore.c:244,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - store
    - cert
    argTypes:
    - nssCertificateStore*
    - NSSCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 246
    functionName: remove_certificate_entry
    functionSourceFile: /src/nss/lib/pki/pkistore.c
    functionUses: 1
    functionsReached:
    - nss_ZFreeIf
    - nssTrust_Destroy
    - nssSMIMEProfile_Destroy
    - nssHash_Lookup
    - nssHash_Remove
    linkageType: ''
    returnType: void
    signature: "void remove_certificate_entry(\n    nssCertificateStore *store,\n
      \   NSSCertificate *cert)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssHash_Lookup
      Src: /src/nss/lib/pki/pkistore.c:255,1
    - Dst: nssList_Remove
      Src: /src/nss/lib/pki/pkistore.c:258,1
    - Dst: nssHash_Remove
      Src: /src/nss/lib/pki/pkistore.c:259,1
    - Dst: nssList_Count
      Src: /src/nss/lib/pki/pkistore.c:260,1
    - Dst: nssList_Destroy
      Src: /src/nss/lib/pki/pkistore.c:261,1
    - Dst: nssList_GetArray
      Src: /src/nss/lib/pki/pkistore.c:268,1
    - Dst: nssHash_Add
      Src: /src/nss/lib/pki/pkistore.c:269,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - store
    - cert
    argTypes:
    - nssCertificateStore*
    - NSSCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 272
    functionName: remove_subject_entry
    functionSourceFile: /src/nss/lib/pki/pkistore.c
    functionUses: 2
    functionsReached:
    - nssHash_Add
    - nssList_GetArray
    - nssHash_Lookup
    - nssList_Count
    - nssList_Destroy
    - nssList_Remove
    - nssHash_Remove
    linkageType: ''
    returnType: void
    signature: "void remove_subject_entry(\n    nssCertificateStore *store,\n    NSSCertificate
      *cert)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssHash_Lookup
      Src: /src/nss/lib/pki/pkistore.c:281,1
    - Dst: remove_certificate_entry
      Src: /src/nss/lib/pki/pkistore.c:283,1
    - Dst: remove_subject_entry
      Src: /src/nss/lib/pki/pkistore.c:284,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - store
    - cert
    argTypes:
    - nssCertificateStore*
    - NSSCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 274
    functionDepth: 2
    functionLinenumber: 274
    functionLinenumberEnd: 286
    functionName: nssCertificateStore_RemoveCertLOCKED
    functionSourceFile: /src/nss/lib/pki/pkistore.c
    functionUses: 0
    functionsReached:
    - nssHash_Lookup
    - remove_certificate_entry
    - remove_subject_entry
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCertificateStore_RemoveCertLOCKED(\n    nssCertificateStore
      *store,\n    NSSCertificate *cert)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pki/pkistore.c:292,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/pki/pkistore.c:296,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/pki/pkistore.c:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - store
    - out
    argTypes:
    - nssCertificateStore*
    - nssCertificateStoreTrace*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 300
    functionName: nssCertificateStore_Lock
    functionSourceFile: /src/nss/lib/pki/pkistore.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PZ_Lock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nssCertificateStore_Lock(nssCertificateStore *store,
      nssCertificateStoreTrace *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pki/pkistore.c:308,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pki/pkistore.c:309,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pki/pkistore.c:312,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pki/pkistore.c:315,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pki/pkistore.c:316,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pki/pkistore.c:317,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pki/pkistore.c:318,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/pki/pkistore.c:320,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/pki/pkistore.c:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - store
    - in
    - out
    argTypes:
    - nssCertificateStore*
    - nssCertificateStoreTrace*
    - nssCertificateStoreTrace*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 324
    functionName: nssCertificateStore_Unlock
    functionSourceFile: /src/nss/lib/pki/pkistore.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PZ_Unlock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCertificateStore_Unlock(\n    nssCertificateStore
      *store, const nssCertificateStoreTrace *in,\n    nssCertificateStoreTrace *out)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nssList_Count
      Src: /src/nss/lib/pki/pkistore.c:335,1
    - Dst: PR_MIN
      Src: /src/nss/lib/pki/pkistore.c:340,1
    - Dst: nssList_GetArray
      Src: /src/nss/lib/pki/pkistore.c:343,1
    - Dst: nss_ZNEWARRAY
      Src: /src/nss/lib/pki/pkistore.c:345,1
    - Dst: nssList_GetArray
      Src: /src/nss/lib/pki/pkistore.c:347,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 351
    functionName: get_array_from_list
    functionSourceFile: /src/nss/lib/pki/pkistore.c
    functionUses: 0
    functionsReached:
    - nss_ZNEWARRAY
    - nssList_Count
    - nssList_GetArray
    - PR_MIN
    linkageType: ''
    returnType: NSSCertificate
    signature: "NSSCertificate **\nget_array_from_list(\n    nssList *certList,\n
      \   NSSCertificate *rvOpt[],\n    PRUint32 maximumOpt,\n    NSSArena *arenaOpt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/pki/pkistore.c:363,1
    - Dst: nssHash_Lookup
      Src: /src/nss/lib/pki/pkistore.c:364,1
    - Dst: nssCertificateList_AddReferences
      Src: /src/nss/lib/pki/pkistore.c:366,1
    - Dst: get_array_from_list
      Src: /src/nss/lib/pki/pkistore.c:367,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/pki/pkistore.c:370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 353
    functionDepth: 2
    functionLinenumber: 353
    functionLinenumberEnd: 372
    functionName: "NSSCertificate **\nnssCertificateStore_FindCertificatesBySubject(\n
      \   nssCertificateStore *store,\n    NSSDER *subject,\n    NSSCertificate *rvOpt[],\n
      \   PRUint32 maximumOpt,\n    NSSArena *arenaOpt)"
    functionSourceFile: /src/nss/lib/pki/pkistore.c
    functionUses: 0
    functionsReached:
    - get_array_from_list
    - PZ_Unlock
    - nssCertificateList_AddReferences
    - PZ_Lock
    - nssHash_Lookup
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate **\nnssCertificateStore_FindCertificatesBySubject(\n
      \   nssCertificateStore *store,\n    NSSDER *subject,\n    NSSCertificate *rvOpt[],\n
      \   PRUint32 maximumOpt,\n    NSSArena *arenaOpt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssList_GetArray
      Src: /src/nss/lib/pki/pkistore.c:398,1
    - Dst: nssCertificate_GetNickname
      Src: /src/nss/lib/pki/pkistore.c:399,1
    - Dst: nssUTF8_Equal
      Src: /src/nss/lib/pki/pkistore.c:401,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/pki/pkistore.c:404,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - k
    - v
    - a
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 405
    functionName: match_nickname
    functionSourceFile: /src/nss/lib/pki/pkistore.c
    functionUses: 0
    functionsReached:
    - nssUTF8_Equal
    - nss_ZFreeIf
    - nssCertificate_GetNickname
    - nssList_GetArray
    linkageType: ''
    returnType: void
    signature: void match_nickname(const void *k, void *v, void *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/pki/pkistore.c:422,1
    - Dst: nssHash_Iterate
      Src: /src/nss/lib/pki/pkistore.c:423,1
    - Dst: nssCertificateList_AddReferences
      Src: /src/nss/lib/pki/pkistore.c:425,1
    - Dst: get_array_from_list
      Src: /src/nss/lib/pki/pkistore.c:426,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/pki/pkistore.c:429,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 410
    functionDepth: 2
    functionLinenumber: 410
    functionLinenumberEnd: 431
    functionName: "NSSCertificate **\nnssCertificateStore_FindCertificatesByNickname(\n
      \   nssCertificateStore *store,\n    const NSSUTF8 *nickname,\n    NSSCertificate
      *rvOpt[],\n    PRUint32 maximumOpt,\n    NSSArena *arenaOpt)"
    functionSourceFile: /src/nss/lib/pki/pkistore.c
    functionUses: 0
    functionsReached:
    - get_array_from_list
    - nssHash_Iterate
    - PZ_Unlock
    - nssCertificateList_AddReferences
    - PZ_Lock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate **\nnssCertificateStore_FindCertificatesByNickname(\n
      \   nssCertificateStore *store,\n    const NSSUTF8 *nickname,\n    NSSCertificate
      *rvOpt[],\n    PRUint32 maximumOpt,\n    NSSArena *arenaOpt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssList_GetArray
      Src: /src/nss/lib/pki/pkistore.c:445,1
    - Dst: nssUTF8_Equal
      Src: /src/nss/lib/pki/pkistore.c:447,1
    - Dst: nssList_CreateIterator
      Src: /src/nss/lib/pki/pkistore.c:448,1
    - Dst: nssListIterator_Start
      Src: /src/nss/lib/pki/pkistore.c:450,1
    - Dst: nssListIterator_Next
      Src: /src/nss/lib/pki/pkistore.c:452,1
    - Dst: nssList_Add
      Src: /src/nss/lib/pki/pkistore.c:453,1
    - Dst: nssListIterator_Finish
      Src: /src/nss/lib/pki/pkistore.c:455,1
    - Dst: nssListIterator_Destroy
      Src: /src/nss/lib/pki/pkistore.c:456,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - k
    - v
    - a
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 459
    functionName: match_email
    functionSourceFile: /src/nss/lib/pki/pkistore.c
    functionUses: 0
    functionsReached:
    - nssListIterator_Destroy
    - nssList_CreateIterator
    - nssUTF8_Equal
    - nssListIterator_Finish
    - nssListIterator_Next
    - nssListIterator_Start
    - nssList_GetArray
    - nssList_Add
    linkageType: ''
    returnType: void
    signature: void match_email(const void *k, void *v, void *a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nssList_Create
      Src: /src/nss/lib/pki/pkistore.c:475,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/pki/pkistore.c:479,1
    - Dst: nssHash_Iterate
      Src: /src/nss/lib/pki/pkistore.c:480,1
    - Dst: nssCertificateList_AddReferences
      Src: /src/nss/lib/pki/pkistore.c:483,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/pki/pkistore.c:485,1
    - Dst: get_array_from_list
      Src: /src/nss/lib/pki/pkistore.c:487,1
    - Dst: nssList_Destroy
      Src: /src/nss/lib/pki/pkistore.c:489,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 464
    functionDepth: 2
    functionLinenumber: 464
    functionLinenumberEnd: 492
    functionName: "NSSCertificate **\nnssCertificateStore_FindCertificatesByEmail(\n
      \   nssCertificateStore *store,\n    NSSASCII7 *email,\n    NSSCertificate *rvOpt[],\n
      \   PRUint32 maximumOpt,\n    NSSArena *arenaOpt)"
    functionSourceFile: /src/nss/lib/pki/pkistore.c
    functionUses: 0
    functionsReached:
    - get_array_from_list
    - nssHash_Iterate
    - PZ_Unlock
    - nssCertificateList_AddReferences
    - nssList_Create
    - PZ_Lock
    - nssList_Destroy
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate **\nnssCertificateStore_FindCertificatesByEmail(\n
      \   nssCertificateStore *store,\n    NSSASCII7 *email,\n    NSSCertificate *rvOpt[],\n
      \   PRUint32 maximumOpt,\n    NSSArena *arenaOpt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssHash_Lookup
      Src: /src/nss/lib/pki/pkistore.c:508,1
    - Dst: nssCertificate_AddRef
      Src: /src/nss/lib/pki/pkistore.c:510,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - store
    - issuer
    - serial
    argTypes:
    - nssCertificateStore*
    - NSSDER*
    - NSSDER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 495
    functionDepth: 1
    functionLinenumber: 495
    functionLinenumberEnd: 513
    functionName: nssCertStore_FindCertByIssuerAndSerialNumberLocked
    functionSourceFile: /src/nss/lib/pki/pkistore.c
    functionUses: 1
    functionsReached:
    - nssHash_Lookup
    - nssCertificate_AddRef
    linkageType: ''
    returnType: NSSCertificate
    signature: "NSSCertificate *\nnssCertStore_FindCertByIssuerAndSerialNumberLocked(\n
      \   nssCertificateStore *store,\n    NSSDER *issuer,\n    NSSDER *serial)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/pki/pkistore.c:523,1
    - Dst: nssCertStore_FindCertByIssuerAndSerialNumberLocked
      Src: /src/nss/lib/pki/pkistore.c:524,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/pki/pkistore.c:526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 515
    functionDepth: 2
    functionLinenumber: 515
    functionLinenumberEnd: 528
    functionName: "NSSCertificate *\nnssCertificateStore_FindCertificateByIssuerAndSerialNumber(\n
      \   nssCertificateStore *store,\n    NSSDER *issuer,\n    NSSDER *serial)"
    functionSourceFile: /src/nss/lib/pki/pkistore.c
    functionUses: 0
    functionsReached:
    - nssCertStore_FindCertByIssuerAndSerialNumberLocked
    - PZ_Lock
    - PZ_Unlock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate *\nnssCertificateStore_FindCertificateByIssuerAndSerialNumber(\n
      \   nssCertificateStore *store,\n    NSSDER *issuer,\n    NSSDER *serial)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssPKIX509_GetIssuerAndSerialFromDER
      Src: /src/nss/lib/pki/pkistore.c:538,1
    - Dst: nssCertificateStore_FindCertificateByIssuerAndSerialNumber
      Src: /src/nss/lib/pki/pkistore.c:542,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pki/pkistore.c:545,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pki/pkistore.c:546,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 530
    functionDepth: 1
    functionLinenumber: 530
    functionLinenumberEnd: 548
    functionName: "NSSCertificate *\nnssCertificateStore_FindCertificateByEncodedCertificate(\n
      \   nssCertificateStore *store,\n    NSSDER *encoding)"
    functionSourceFile: /src/nss/lib/pki/pkistore.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - nssPKIX509_GetIssuerAndSerialFromDER
    - nssCertificateStore_FindCertificateByIssuerAndSerialNumber
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate *\nnssCertificateStore_FindCertificateByEncodedCertificate(\n
      \   nssCertificateStore *store,\n    NSSDER *encoding)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/pki/pkistore.c:558,1
    - Dst: nssHash_Lookup
      Src: /src/nss/lib/pki/pkistore.c:560,1
    - Dst: nssTrust_AddRef
      Src: /src/nss/lib/pki/pkistore.c:562,1
    - Dst: nssTrust_Destroy
      Src: /src/nss/lib/pki/pkistore.c:564,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/pki/pkistore.c:568,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - store
    - trust
    argTypes:
    - nssCertificateStore*
    - NSSTrust*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 550
    functionDepth: 1
    functionLinenumber: 550
    functionLinenumberEnd: 570
    functionName: nssCertificateStore_AddTrust
    functionSourceFile: /src/nss/lib/pki/pkistore.c
    functionUses: 0
    functionsReached:
    - PZ_Unlock
    - nssTrust_Destroy
    - PZ_Lock
    - nssHash_Lookup
    - nssTrust_AddRef
    linkageType: ''
    returnType: NSS_EXTERN
    signature: "NSS_EXTERN nssCertificateStore_AddTrust(\n    nssCertificateStore
      *store,\n    NSSTrust *trust)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/pki/pkistore.c:579,1
    - Dst: nssHash_Lookup
      Src: /src/nss/lib/pki/pkistore.c:581,1
    - Dst: nssTrust_AddRef
      Src: /src/nss/lib/pki/pkistore.c:583,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/pki/pkistore.c:585,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - store
    - cert
    argTypes:
    - nssCertificateStore*
    - NSSCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 572
    functionDepth: 1
    functionLinenumber: 572
    functionLinenumberEnd: 587
    functionName: nssCertificateStore_FindTrustForCertificate
    functionSourceFile: /src/nss/lib/pki/pkistore.c
    functionUses: 0
    functionsReached:
    - nssHash_Lookup
    - nssTrust_AddRef
    - PZ_Lock
    - PZ_Unlock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nnssCertificateStore_FindTrustForCertificate(\n    nssCertificateStore
      *store,\n    NSSCertificate *cert)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/pki/pkistore.c:597,1
    - Dst: nssHash_Lookup
      Src: /src/nss/lib/pki/pkistore.c:599,1
    - Dst: nssSMIMEProfile_AddRef
      Src: /src/nss/lib/pki/pkistore.c:601,1
    - Dst: nssSMIMEProfile_Destroy
      Src: /src/nss/lib/pki/pkistore.c:603,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/pki/pkistore.c:607,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - store
    - profile
    argTypes:
    - nssCertificateStore*
    - nssSMIMEProfile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 589
    functionDepth: 1
    functionLinenumber: 589
    functionLinenumberEnd: 609
    functionName: nssCertificateStore_AddSMIMEProfile
    functionSourceFile: /src/nss/lib/pki/pkistore.c
    functionUses: 0
    functionsReached:
    - PZ_Unlock
    - nssSMIMEProfile_AddRef
    - PZ_Lock
    - nssSMIMEProfile_Destroy
    - nssHash_Lookup
    linkageType: ''
    returnType: NSS_EXTERN
    signature: "NSS_EXTERN nssCertificateStore_AddSMIMEProfile(\n    nssCertificateStore
      *store,\n    nssSMIMEProfile *profile)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/pki/pkistore.c:618,1
    - Dst: nssHash_Lookup
      Src: /src/nss/lib/pki/pkistore.c:620,1
    - Dst: nssSMIMEProfile_AddRef
      Src: /src/nss/lib/pki/pkistore.c:622,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/pki/pkistore.c:624,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 611
    functionDepth: 1
    functionLinenumber: 611
    functionLinenumberEnd: 626
    functionName: "nssSMIMEProfile *\nnssCertificateStore_FindSMIMEProfileForCertificate(\n
      \   nssCertificateStore *store,\n    NSSCertificate *cert)"
    functionSourceFile: /src/nss/lib/pki/pkistore.c
    functionUses: 0
    functionsReached:
    - nssHash_Lookup
    - PZ_Unlock
    - PZ_Lock
    - nssSMIMEProfile_AddRef
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssSMIMEProfile *\nnssCertificateStore_FindSMIMEProfileForCertificate(\n
      \   nssCertificateStore *store,\n    NSSCertificate *cert)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_ROTATE_LEFT32
      Src: /src/nss/lib/pki/pkistore.c:638,1
    - Dst: PR_ROTATE_LEFT32
      Src: /src/nss/lib/pki/pkistore.c:640,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - key
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 630
    functionDepth: 1
    functionLinenumber: 630
    functionLinenumberEnd: 642
    functionName: nss_certificate_hash
    functionSourceFile: /src/nss/lib/pki/pkistore.c
    functionUses: 0
    functionsReached:
    - PR_ROTATE_LEFT32
    linkageType: ''
    returnType: PLHashNumber
    signature: PLHashNumber nss_certificate_hash(const void *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssItem_Equal
      Src: /src/nss/lib/pki/pkistore.c:650,1
    - Dst: nssItem_Equal
      Src: /src/nss/lib/pki/pkistore.c:651,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - v1
    - v2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 644
    functionDepth: 1
    functionLinenumber: 644
    functionLinenumberEnd: 652
    functionName: nss_compare_certs
    functionSourceFile: /src/nss/lib/pki/pkistore.c
    functionUses: 0
    functionsReached:
    - nssItem_Equal
    linkageType: ''
    returnType: int
    signature: int nss_compare_certs(const void *v1, const void *v2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssHash_Create
      Src: /src/nss/lib/pki/pkistore.c:659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - arenaOpt
    - numBuckets
    argTypes:
    - NSSArena*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 654
    functionDepth: 1
    functionLinenumber: 654
    functionLinenumberEnd: 664
    functionName: nssHash_CreateCertificate
    functionSourceFile: /src/nss/lib/pki/pkistore.c
    functionUses: 2
    functionsReached:
    - nssHash_Create
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nnssHash_CreateCertificate(\n    NSSArena *arenaOpt,\n
      \   PRUint32 numBuckets)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/pki/pkistore.c:672,1
    - Dst: nssHash_Iterate
      Src: /src/nss/lib/pki/pkistore.c:673,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/pki/pkistore.c:674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - store
    - arg
    argTypes:
    - nssCertificateStore*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 666
    functionDepth: 1
    functionLinenumber: 666
    functionLinenumberEnd: 675
    functionName: nssCertificateStore_DumpStoreInfo
    functionSourceFile: /src/nss/lib/pki/pkistore.c
    functionUses: 0
    functionsReached:
    - nssHash_Iterate
    - PZ_Lock
    - PZ_Unlock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCertificateStore_DumpStoreInfo(\n    nssCertificateStore
      *store,\n    void (*cert_dump_iter)(const void *, void *, void *),\n    void
      *arg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NSSArena_Create
      Src: /src/nss/lib/pki/trustdomain.c:35,1
    - Dst: nss_ZNEW
      Src: /src/nss/lib/pki/trustdomain.c:39,1
    - Dst: NSSRWLock_New
      Src: /src/nss/lib/pki/trustdomain.c:44,1
    - Dst: nssTrustDomain_InitializeCache
      Src: /src/nss/lib/pki/trustdomain.c:48,1
    - Dst: NSSRWLock_Destroy
      Src: /src/nss/lib/pki/trustdomain.c:55,1
    - Dst: nssArena_Destroy
      Src: /src/nss/lib/pki/trustdomain.c:57,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 59
    functionName: "NSSTrustDomain *\nNSSTrustDomain_Create(\n    NSSUTF8 *moduleOpt,\n
      \   NSSUTF8 *uriOpt,\n    NSSUTF8 *opaqueOpt,\n    void *reserved)"
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached:
    - NSSRWLock_New
    - nss_ZNEW
    - nssTrustDomain_InitializeCache
    - NSSRWLock_Destroy
    - nssArena_Destroy
    - NSSArena_Create
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSTrustDomain *\nNSSTrustDomain_Create(\n    NSSUTF8
      *moduleOpt,\n    NSSUTF8 *uriOpt,\n    NSSUTF8 *opaqueOpt,\n    void *reserved)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssToken_Destroy
      Src: /src/nss/lib/pki/trustdomain.c:66,1
    - Dst: PK11Slot_SetNSSToken
      Src: /src/nss/lib/pki/trustdomain.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - t
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 73
    functionName: token_destructor
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached:
    - nssToken_Destroy
    - PK11Slot_SetNSSToken
    linkageType: ''
    returnType: void
    signature: void token_destructor(void *t)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: nssListIterator_Destroy
      Src: /src/nss/lib/pki/trustdomain.c:83,1
    - Dst: nssList_Clear
      Src: /src/nss/lib/pki/trustdomain.c:87,1
    - Dst: nssList_Destroy
      Src: /src/nss/lib/pki/trustdomain.c:88,1
    - Dst: NSSRWLock_Destroy
      Src: /src/nss/lib/pki/trustdomain.c:91,1
    - Dst: nssTrustDomain_DestroyCache
      Src: /src/nss/lib/pki/trustdomain.c:93,1
    - Dst: NSSTrustDomain*::statusConfig::statusDestroy
      Src: /src/nss/lib/pki/trustdomain.c:98,1
    - Dst: nssArena_Destroy
      Src: /src/nss/lib/pki/trustdomain.c:102,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - td
    argTypes:
    - NSSTrustDomain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 105
    functionName: NSSTrustDomain_Destroy
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached:
    - nssListIterator_Destroy
    - nssList_Clear
    - NSSRWLock_Destroy
    - nssTrustDomain_DestroyCache
    - nssArena_Destroy
    - nssList_Destroy
    - NSSTrustDomain*::statusConfig::statusDestroy
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSTrustDomain_Destroy(\n    NSSTrustDomain *td)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NSSRWLock_LockRead
      Src: /src/nss/lib/pki/trustdomain.c:120,1
    - Dst: nssList_Count
      Src: /src/nss/lib/pki/trustdomain.c:121,1
    - Dst: nss_ZNEWARRAY
      Src: /src/nss/lib/pki/trustdomain.c:122,1
    - Dst: NSSRWLock_UnlockRead
      Src: /src/nss/lib/pki/trustdomain.c:124,1
    - Dst: nss_ZNEWARRAY
      Src: /src/nss/lib/pki/trustdomain.c:127,1
    - Dst: NSSRWLock_UnlockRead
      Src: /src/nss/lib/pki/trustdomain.c:129,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/pki/trustdomain.c:130,1
    - Dst: nssList_GetArray
      Src: /src/nss/lib/pki/trustdomain.c:133,1
    - Dst: nssToken_GetSlot
      Src: /src/nss/lib/pki/trustdomain.c:136,1
    - Dst: PK11_IsDisabled
      Src: /src/nss/lib/pki/trustdomain.c:137,1
    - Dst: nssSlot_Destroy
      Src: /src/nss/lib/pki/trustdomain.c:140,1
    - Dst: NSSRWLock_UnlockRead
      Src: /src/nss/lib/pki/trustdomain.c:143,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/pki/trustdomain.c:144,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/pki/trustdomain.c:146,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 150
    functionName: nssTrustDomain_GetActiveSlots
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached:
    - nssToken_GetSlot
    - nss_ZNEWARRAY
    - PK11_IsDisabled
    - NSSRWLock_UnlockRead
    - nss_ZFreeIf
    - nssList_GetArray
    - NSSRWLock_LockRead
    - nssList_Count
    - nssSlot_Destroy
    linkageType: ''
    returnType: NSSSlot
    signature: "NSSSlot **\nnssTrustDomain_GetActiveSlots(\n    NSSTrustDomain *td,\n
      \   nssUpdateLevel *updateLevel)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssToken_GetDefaultSession
      Src: /src/nss/lib/pki/trustdomain.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - td
    - token
    argTypes:
    - NSSTrustDomain*
    - NSSToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 159
    functionName: nssTrustDomain_GetSessionForToken
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached:
    - nssToken_GetDefaultSession
    linkageType: ''
    returnType: nssSession
    signature: "nssSession *\nnssTrustDomain_GetSessionForToken(\n    NSSTrustDomain
      *td,\n    NSSToken *token)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - td
    - newCallback
    - oldCallbackOpt
    argTypes:
    - NSSTrustDomain*
    - NSSCallback*
    - NSSCallback**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 172
    functionName: NSSTrustDomain_SetDefaultCallback
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSTrustDomain_SetDefaultCallback(\n    NSSTrustDomain
      *td,\n    NSSCallback *newCallback,\n    NSSCallback **oldCallbackOpt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 183
    functionName: "NSSCallback *\nnssTrustDomain_GetDefaultCallback(\n    NSSTrustDomain
      *td,\n    PRStatus *statusOpt)"
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCallback *\nnssTrustDomain_GetDefaultCallback(\n
      \   NSSTrustDomain *td,\n    PRStatus *statusOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssTrustDomain_GetDefaultCallback
      Src: /src/nss/lib/pki/trustdomain.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 191
    functionName: "NSSCallback *\nNSSTrustDomain_GetDefaultCallback(\n    NSSTrustDomain
      *td,\n    PRStatus *statusOpt)"
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached:
    - nssTrustDomain_GetDefaultCallback
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCallback *\nNSSTrustDomain_GetDefaultCallback(\n
      \   NSSTrustDomain *td,\n    PRStatus *statusOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - td
    - moduleOpt
    - uriOpt
    - opaqueOpt
    - reserved
    argTypes:
    - NSSTrustDomain*
    - NSSUTF8*
    - NSSUTF8*
    - NSSUTF8*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 202
    functionName: NSSTrustDomain_LoadModule
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSTrustDomain_LoadModule(\n    NSSTrustDomain *td,\n
      \   NSSUTF8 *moduleOpt,\n    NSSUTF8 *uriOpt,\n    NSSUTF8 *opaqueOpt,\n    void
      *reserved)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/trustdomain.c:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - td
    - token
    - why
    argTypes:
    - NSSTrustDomain*
    - NSSToken*
    - NSSError
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 212
    functionName: NSSTrustDomain_DisableToken
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSTrustDomain_DisableToken(\n    NSSTrustDomain *td,\n
      \   NSSToken *token,\n    NSSError why)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/trustdomain.c:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - td
    - token
    argTypes:
    - NSSTrustDomain*
    - NSSToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 221
    functionName: NSSTrustDomain_EnableToken
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSTrustDomain_EnableToken(\n    NSSTrustDomain *td,\n
      \   NSSToken *token)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/trustdomain.c:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - td
    - token
    - whyOpt
    argTypes:
    - NSSTrustDomain*
    - NSSToken*
    - NSSError*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 231
    functionName: NSSTrustDomain_IsTokenEnabled
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSTrustDomain_IsTokenEnabled(\n    NSSTrustDomain *td,\n
      \   NSSToken *token,\n    NSSError *whyOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/trustdomain.c:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - td
    - slotName
    argTypes:
    - NSSTrustDomain*
    - NSSUTF8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 240
    functionName: NSSTrustDomain_FindSlotByName
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSTrustDomain_FindSlotByName(\n    NSSTrustDomain
      *td,\n    NSSUTF8 *slotName)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NSSRWLock_LockRead
      Src: /src/nss/lib/pki/trustdomain.c:252,1
    - Dst: nssList_Count
      Src: /src/nss/lib/pki/trustdomain.c:253,1
    - Dst: nss_ZNEWARRAY
      Src: /src/nss/lib/pki/trustdomain.c:254,1
    - Dst: nssListIterator_Start
      Src: /src/nss/lib/pki/trustdomain.c:258,1
    - Dst: nssListIterator_Next
      Src: /src/nss/lib/pki/trustdomain.c:260,1
    - Dst: nssToken_IsPresent
      Src: /src/nss/lib/pki/trustdomain.c:261,1
    - Dst: pk11_MatchUriTokenInfo
      Src: /src/nss/lib/pki/trustdomain.c:263,1
    - Dst: nssToken_AddRef
      Src: /src/nss/lib/pki/trustdomain.c:264,1
    - Dst: nssListIterator_Finish
      Src: /src/nss/lib/pki/trustdomain.c:268,1
    - Dst: NSSRWLock_UnlockRead
      Src: /src/nss/lib/pki/trustdomain.c:269,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 271
    functionName: NSSTrustDomain_FindTokensByURI
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached:
    - nssToken_AddRef
    - nss_ZNEWARRAY
    - nssToken_IsPresent
    - nssListIterator_Finish
    - nssListIterator_Next
    - nssListIterator_Start
    - pk11_MatchUriTokenInfo
    - NSSRWLock_UnlockRead
    - NSSRWLock_LockRead
    - nssList_Count
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT **\nNSSTrustDomain_FindTokensByURI(\n    NSSTrustDomain
      *td,\n    PK11URI *uri)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NSSRWLock_LockRead
      Src: /src/nss/lib/pki/trustdomain.c:281,1
    - Dst: nssListIterator_Start
      Src: /src/nss/lib/pki/trustdomain.c:282,1
    - Dst: nssListIterator_Next
      Src: /src/nss/lib/pki/trustdomain.c:284,1
    - Dst: nssToken_IsPresent
      Src: /src/nss/lib/pki/trustdomain.c:285,1
    - Dst: nssToken_GetName
      Src: /src/nss/lib/pki/trustdomain.c:286,1
    - Dst: nssUTF8_Equal
      Src: /src/nss/lib/pki/trustdomain.c:287,1
    - Dst: nssToken_AddRef
      Src: /src/nss/lib/pki/trustdomain.c:288,1
    - Dst: nssListIterator_Finish
      Src: /src/nss/lib/pki/trustdomain.c:293,1
    - Dst: NSSRWLock_UnlockRead
      Src: /src/nss/lib/pki/trustdomain.c:294,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - td
    - tokenName
    argTypes:
    - NSSTrustDomain*
    - NSSUTF8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 296
    functionName: NSSTrustDomain_FindTokenByName
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached:
    - nssToken_AddRef
    - nssToken_IsPresent
    - nssUTF8_Equal
    - nssListIterator_Finish
    - nssListIterator_Next
    - nssListIterator_Start
    - NSSRWLock_UnlockRead
    - NSSRWLock_LockRead
    - nssToken_GetName
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSTrustDomain_FindTokenByName(\n    NSSTrustDomain
      *td,\n    NSSUTF8 *tokenName)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/trustdomain.c:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - td
    - slotName
    argTypes:
    - NSSTrustDomain*
    - NSSUTF8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 305
    functionName: NSSTrustDomain_FindTokenBySlotName
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSTrustDomain_FindTokenBySlotName(\n    NSSTrustDomain
      *td,\n    NSSUTF8 *slotName)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/trustdomain.c:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - td
    - algorithm
    argTypes:
    - NSSTrustDomain*
    - NSSOID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 314
    functionName: NSSTrustDomain_FindTokenForAlgorithm
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSTrustDomain_FindTokenForAlgorithm(\n    NSSTrustDomain
      *td,\n    NSSOID *algorithm)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/trustdomain.c:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - td
    - algorithms
    - nAlgorithmsOpt
    argTypes:
    - NSSTrustDomain*
    - NSSOID*[]
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 325
    functionName: NSSTrustDomain_FindBestTokenForAlgorithms
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSTrustDomain_FindBestTokenForAlgorithms(\n    NSSTrustDomain
      *td,\n    NSSOID *algorithms[],   /* may be null-terminated */\n    PRUint32
      nAlgorithmsOpt /* limits the array if nonzero */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/trustdomain.c:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - td
    - uhhOpt
    argTypes:
    - NSSTrustDomain*
    - NSSCallback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 334
    functionName: NSSTrustDomain_Login
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSTrustDomain_Login(\n    NSSTrustDomain *td,\n    NSSCallback
      *uhhOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/trustdomain.c:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - td
    argTypes:
    - NSSTrustDomain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 341
    functionName: NSSTrustDomain_Logout
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT NSSTrustDomain_Logout(NSSTrustDomain *td)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/trustdomain.c:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 350
    functionName: "NSSCertificate *\nNSSTrustDomain_ImportCertificate(\n    NSSTrustDomain
      *td,\n    NSSCertificate *c)"
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate *\nNSSTrustDomain_ImportCertificate(\n
      \   NSSTrustDomain *td,\n    NSSCertificate *c)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/trustdomain.c:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 360
    functionName: "NSSCertificate *\nNSSTrustDomain_ImportPKIXCertificate(\n    NSSTrustDomain
      *td,\n    /* declared as a struct until these \"data types\" are defined */\n
      \   struct NSSPKIXCertificateStr *pc)"
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate *\nNSSTrustDomain_ImportPKIXCertificate(\n
      \   NSSTrustDomain *td,\n    /* declared as a struct until these \"data types\"
      are defined */\n    struct NSSPKIXCertificateStr *pc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/trustdomain.c:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 369
    functionName: "NSSCertificate *\nNSSTrustDomain_ImportEncodedCertificate(\n    NSSTrustDomain
      *td,\n    NSSBER *ber)"
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate *\nNSSTrustDomain_ImportEncodedCertificate(\n
      \   NSSTrustDomain *td,\n    NSSBER *ber)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/trustdomain.c:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 381
    functionName: "NSSCertificate **\nNSSTrustDomain_ImportEncodedCertificateChain(\n
      \   NSSTrustDomain *td,\n    NSSBER *ber,\n    NSSCertificate *rvOpt[],\n    PRUint32
      maximumOpt, /* 0 for no max */\n    NSSArena *arenaOpt)"
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate **\nNSSTrustDomain_ImportEncodedCertificateChain(\n
      \   NSSTrustDomain *td,\n    NSSBER *ber,\n    NSSCertificate *rvOpt[],\n    PRUint32
      maximumOpt, /* 0 for no max */\n    NSSArena *arenaOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/trustdomain.c:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 393
    functionName: "NSSPrivateKey *\nNSSTrustDomain_ImportEncodedPrivateKey(\n    NSSTrustDomain
      *td,\n    NSSBER *ber,\n    NSSItem *passwordOpt, /* NULL will cause a callback
      */\n    NSSCallback *uhhOpt,\n    NSSToken *destination)"
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSPrivateKey *\nNSSTrustDomain_ImportEncodedPrivateKey(\n
      \   NSSTrustDomain *td,\n    NSSBER *ber,\n    NSSItem *passwordOpt, /* NULL
      will cause a callback */\n    NSSCallback *uhhOpt,\n    NSSToken *destination)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/trustdomain.c:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 402
    functionName: "NSSPublicKey *\nNSSTrustDomain_ImportEncodedPublicKey(\n    NSSTrustDomain
      *td,\n    NSSBER *ber)"
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSPublicKey *\nNSSTrustDomain_ImportEncodedPublicKey(\n
      \   NSSTrustDomain *td,\n    NSSBER *ber)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssList_Count
      Src: /src/nss/lib/pki/trustdomain.c:407,1
    - Dst: nss_ZNEWARRAY
      Src: /src/nss/lib/pki/trustdomain.c:410,1
    - Dst: nssList_GetArray
      Src: /src/nss/lib/pki/trustdomain.c:412,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 416
    functionName: get_certs_from_list
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached:
    - nss_ZNEWARRAY
    - nssList_Count
    - nssList_GetArray
    linkageType: ''
    returnType: NSSCertificate
    signature: 'NSSCertificate **

      get_certs_from_list(nssList *list)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: nssList_Create
      Src: /src/nss/lib/pki/trustdomain.c:438,1
    - Dst: nssTrustDomain_GetCertsForNicknameFromCache
      Src: /src/nss/lib/pki/trustdomain.c:442,1
    - Dst: get_certs_from_list
      Src: /src/nss/lib/pki/trustdomain.c:443,1
    - Dst: nssCertificateCollection_Create
      Src: /src/nss/lib/pki/trustdomain.c:447,1
    - Dst: nssCertificateArray_Destroy
      Src: /src/nss/lib/pki/trustdomain.c:448,1
    - Dst: nssList_Destroy
      Src: /src/nss/lib/pki/trustdomain.c:449,1
    - Dst: nssTrustDomain_GetActiveSlots
      Src: /src/nss/lib/pki/trustdomain.c:454,1
    - Dst: nssSlot_GetToken
      Src: /src/nss/lib/pki/trustdomain.c:460,1
    - Dst: nssTrustDomain_GetSessionForToken
      Src: /src/nss/lib/pki/trustdomain.c:467,1
    - Dst: nssToken_FindCertificatesByNickname
      Src: /src/nss/lib/pki/trustdomain.c:469,1
    - Dst: nssToken_Destroy
      Src: /src/nss/lib/pki/trustdomain.c:476,1
    - Dst: nssPKIObjectCollection_AddInstances
      Src: /src/nss/lib/pki/trustdomain.c:482,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/pki/trustdomain.c:484,1
    - Dst: nssPKIObjectCollection_Count
      Src: /src/nss/lib/pki/trustdomain.c:489,1
    - Dst: nssPKIObjectCollection_GetCertificates
      Src: /src/nss/lib/pki/trustdomain.c:501,1
    - Dst: nssPKIObjectCollection_Destroy
      Src: /src/nss/lib/pki/trustdomain.c:505,1
    - Dst: nssSlotArray_Destroy
      Src: /src/nss/lib/pki/trustdomain.c:506,1
    - Dst: nssSlotArray_Destroy
      Src: /src/nss/lib/pki/trustdomain.c:510,1
    - Dst: nssPKIObjectCollection_Destroy
      Src: /src/nss/lib/pki/trustdomain.c:513,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 62
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 418
    functionDepth: 2
    functionLinenumber: 418
    functionLinenumberEnd: 516
    functionName: "NSSCertificate **\nnssTrustDomain_FindCertificatesByNickname(\n
      \   NSSTrustDomain *td,\n    const NSSUTF8 *name,\n    NSSCertificate *rvOpt[],\n
      \   PRUint32 maximumOpt, /* 0 for no max */\n    NSSArena *arenaOpt)"
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached:
    - nssCertificateArray_Destroy
    - nssTrustDomain_GetActiveSlots
    - nssToken_Destroy
    - nssPKIObjectCollection_Destroy
    - nssCertificateCollection_Create
    - nssSlotArray_Destroy
    - nssTrustDomain_GetSessionForToken
    - nssTrustDomain_GetCertsForNicknameFromCache
    - nssPKIObjectCollection_AddInstances
    - nss_ZFreeIf
    - nssList_Create
    - nssToken_FindCertificatesByNickname
    - get_certs_from_list
    - nssSlot_GetToken
    - nssPKIObjectCollection_Count
    - nssList_Destroy
    - nssPKIObjectCollection_GetCertificates
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate **\nnssTrustDomain_FindCertificatesByNickname(\n
      \   NSSTrustDomain *td,\n    const NSSUTF8 *name,\n    NSSCertificate *rvOpt[],\n
      \   PRUint32 maximumOpt, /* 0 for no max */\n    NSSArena *arenaOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssTrustDomain_FindCertificatesByNickname
      Src: /src/nss/lib/pki/trustdomain.c:526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 531
    functionName: "NSSCertificate **\nNSSTrustDomain_FindCertificatesByNickname(\n
      \   NSSTrustDomain *td,\n    NSSUTF8 *name,\n    NSSCertificate *rvOpt[],\n
      \   PRUint32 maximumOpt, /* 0 for no max */\n    NSSArena *arenaOpt)"
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached:
    - nssTrustDomain_FindCertificatesByNickname
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate **\nNSSTrustDomain_FindCertificatesByNickname(\n
      \   NSSTrustDomain *td,\n    NSSUTF8 *name,\n    NSSCertificate *rvOpt[],\n
      \   PRUint32 maximumOpt, /* 0 for no max */\n    NSSArena *arenaOpt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssTrustDomain_FindCertificatesByNickname
      Src: /src/nss/lib/pki/trustdomain.c:543,1
    - Dst: nssCertificateArray_FindBestCertificate
      Src: /src/nss/lib/pki/trustdomain.c:548,1
    - Dst: nssCertificateArray_Destroy
      Src: /src/nss/lib/pki/trustdomain.c:552,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 533
    functionDepth: 1
    functionLinenumber: 533
    functionLinenumberEnd: 555
    functionName: "NSSCertificate *\nnssTrustDomain_FindBestCertificateByNickname(\n
      \   NSSTrustDomain *td,\n    const NSSUTF8 *name,\n    NSSTime *timeOpt,\n    NSSUsage
      *usage,\n    NSSPolicies *policiesOpt)"
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached:
    - nssTrustDomain_FindCertificatesByNickname
    - nssCertificateArray_Destroy
    - nssCertificateArray_FindBestCertificate
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate *\nnssTrustDomain_FindBestCertificateByNickname(\n
      \   NSSTrustDomain *td,\n    const NSSUTF8 *name,\n    NSSTime *timeOpt,\n    NSSUsage
      *usage,\n    NSSPolicies *policiesOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssTrustDomain_FindBestCertificateByNickname
      Src: /src/nss/lib/pki/trustdomain.c:565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 570
    functionName: "NSSCertificate *\nNSSTrustDomain_FindBestCertificateByNickname(\n
      \   NSSTrustDomain *td,\n    const NSSUTF8 *name,\n    NSSTime *timeOpt,\n    NSSUsage
      *usage,\n    NSSPolicies *policiesOpt)"
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached:
    - nssTrustDomain_FindBestCertificateByNickname
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate *\nNSSTrustDomain_FindBestCertificateByNickname(\n
      \   NSSTrustDomain *td,\n    const NSSUTF8 *name,\n    NSSTime *timeOpt,\n    NSSUsage
      *usage,\n    NSSPolicies *policiesOpt)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: nssList_Create
      Src: /src/nss/lib/pki/trustdomain.c:592,1
    - Dst: nssTrustDomain_GetCertsForSubjectFromCache
      Src: /src/nss/lib/pki/trustdomain.c:596,1
    - Dst: get_certs_from_list
      Src: /src/nss/lib/pki/trustdomain.c:597,1
    - Dst: nssCertificateCollection_Create
      Src: /src/nss/lib/pki/trustdomain.c:598,1
    - Dst: nssCertificateArray_Destroy
      Src: /src/nss/lib/pki/trustdomain.c:599,1
    - Dst: nssList_Destroy
      Src: /src/nss/lib/pki/trustdomain.c:600,1
    - Dst: nssTrustDomain_GetActiveSlots
      Src: /src/nss/lib/pki/trustdomain.c:604,1
    - Dst: nssSlot_GetToken
      Src: /src/nss/lib/pki/trustdomain.c:609,1
    - Dst: nssTrustDomain_GetSessionForToken
      Src: /src/nss/lib/pki/trustdomain.c:616,1
    - Dst: nssToken_FindCertificatesBySubject
      Src: /src/nss/lib/pki/trustdomain.c:618,1
    - Dst: nssToken_Destroy
      Src: /src/nss/lib/pki/trustdomain.c:625,1
    - Dst: nssPKIObjectCollection_AddInstances
      Src: /src/nss/lib/pki/trustdomain.c:631,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/pki/trustdomain.c:633,1
    - Dst: nssPKIObjectCollection_Count
      Src: /src/nss/lib/pki/trustdomain.c:638,1
    - Dst: nssPKIObjectCollection_GetCertificates
      Src: /src/nss/lib/pki/trustdomain.c:649,1
    - Dst: nssPKIObjectCollection_Destroy
      Src: /src/nss/lib/pki/trustdomain.c:652,1
    - Dst: nssSlotArray_Destroy
      Src: /src/nss/lib/pki/trustdomain.c:653,1
    - Dst: nssSlotArray_Destroy
      Src: /src/nss/lib/pki/trustdomain.c:657,1
    - Dst: nssPKIObjectCollection_Destroy
      Src: /src/nss/lib/pki/trustdomain.c:660,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 62
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 572
    functionDepth: 2
    functionLinenumber: 572
    functionLinenumberEnd: 663
    functionName: "NSSCertificate **\nnssTrustDomain_FindCertificatesBySubject(\n
      \   NSSTrustDomain *td,\n    NSSDER *subject,\n    NSSCertificate *rvOpt[],\n
      \   PRUint32 maximumOpt, /* 0 for no max */\n    NSSArena *arenaOpt)"
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached:
    - nssCertificateArray_Destroy
    - nssTrustDomain_GetActiveSlots
    - nssToken_Destroy
    - nssPKIObjectCollection_Destroy
    - nssCertificateCollection_Create
    - nssSlotArray_Destroy
    - nssTrustDomain_GetSessionForToken
    - nssPKIObjectCollection_AddInstances
    - nssPKIObjectCollection_GetCertificates
    - nss_ZFreeIf
    - nssList_Create
    - get_certs_from_list
    - nssSlot_GetToken
    - nssPKIObjectCollection_Count
    - nssList_Destroy
    - nssToken_FindCertificatesBySubject
    - nssTrustDomain_GetCertsForSubjectFromCache
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate **\nnssTrustDomain_FindCertificatesBySubject(\n
      \   NSSTrustDomain *td,\n    NSSDER *subject,\n    NSSCertificate *rvOpt[],\n
      \   PRUint32 maximumOpt, /* 0 for no max */\n    NSSArena *arenaOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssTrustDomain_FindCertificatesBySubject
      Src: /src/nss/lib/pki/trustdomain.c:673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 665
    functionDepth: 0
    functionLinenumber: 665
    functionLinenumberEnd: 678
    functionName: "NSSCertificate **\nNSSTrustDomain_FindCertificatesBySubject(\n
      \   NSSTrustDomain *td,\n    NSSDER *subject,\n    NSSCertificate *rvOpt[],\n
      \   PRUint32 maximumOpt,\n    NSSArena *arenaOpt)"
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached:
    - nssTrustDomain_FindCertificatesBySubject
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate **\nNSSTrustDomain_FindCertificatesBySubject(\n
      \   NSSTrustDomain *td,\n    NSSDER *subject,\n    NSSCertificate *rvOpt[],\n
      \   PRUint32 maximumOpt,\n    NSSArena *arenaOpt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssTrustDomain_FindCertificatesBySubject
      Src: /src/nss/lib/pki/trustdomain.c:690,1
    - Dst: nssCertificateArray_FindBestCertificate
      Src: /src/nss/lib/pki/trustdomain.c:695,1
    - Dst: nssCertificateArray_Destroy
      Src: /src/nss/lib/pki/trustdomain.c:699,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 680
    functionDepth: 1
    functionLinenumber: 680
    functionLinenumberEnd: 702
    functionName: "NSSCertificate *\nnssTrustDomain_FindBestCertificateBySubject(\n
      \   NSSTrustDomain *td,\n    NSSDER *subject,\n    NSSTime *timeOpt,\n    NSSUsage
      *usage,\n    NSSPolicies *policiesOpt)"
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached:
    - nssTrustDomain_FindCertificatesBySubject
    - nssCertificateArray_Destroy
    - nssCertificateArray_FindBestCertificate
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate *\nnssTrustDomain_FindBestCertificateBySubject(\n
      \   NSSTrustDomain *td,\n    NSSDER *subject,\n    NSSTime *timeOpt,\n    NSSUsage
      *usage,\n    NSSPolicies *policiesOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssTrustDomain_FindBestCertificateBySubject
      Src: /src/nss/lib/pki/trustdomain.c:712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 704
    functionDepth: 0
    functionLinenumber: 704
    functionLinenumberEnd: 717
    functionName: "NSSCertificate *\nNSSTrustDomain_FindBestCertificateBySubject(\n
      \   NSSTrustDomain *td,\n    NSSDER *subject,\n    NSSTime *timeOpt,\n    NSSUsage
      *usage,\n    NSSPolicies *policiesOpt)"
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached:
    - nssTrustDomain_FindBestCertificateBySubject
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate *\nNSSTrustDomain_FindBestCertificateBySubject(\n
      \   NSSTrustDomain *td,\n    NSSDER *subject,\n    NSSTime *timeOpt,\n    NSSUsage
      *usage,\n    NSSPolicies *policiesOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/trustdomain.c:727,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 719
    functionDepth: 1
    functionLinenumber: 719
    functionLinenumberEnd: 729
    functionName: "NSSCertificate *\nNSSTrustDomain_FindBestCertificateByNameComponents(\n
      \   NSSTrustDomain *td,\n    NSSUTF8 *nameComponents,\n    NSSTime *timeOpt,\n
      \   NSSUsage *usage,\n    NSSPolicies *policiesOpt)"
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate *\nNSSTrustDomain_FindBestCertificateByNameComponents(\n
      \   NSSTrustDomain *td,\n    NSSUTF8 *nameComponents,\n    NSSTime *timeOpt,\n
      \   NSSUsage *usage,\n    NSSPolicies *policiesOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/trustdomain.c:739,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 731
    functionDepth: 1
    functionLinenumber: 731
    functionLinenumberEnd: 741
    functionName: "NSSCertificate **\nNSSTrustDomain_FindCertificatesByNameComponents(\n
      \   NSSTrustDomain *td,\n    NSSUTF8 *nameComponents,\n    NSSCertificate *rvOpt[],\n
      \   PRUint32 maximumOpt, /* 0 for no max */\n    NSSArena *arenaOpt)"
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate **\nNSSTrustDomain_FindCertificatesByNameComponents(\n
      \   NSSTrustDomain *td,\n    NSSUTF8 *nameComponents,\n    NSSCertificate *rvOpt[],\n
      \   PRUint32 maximumOpt, /* 0 for no max */\n    NSSArena *arenaOpt)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: nssTrustDomain_GetCertForIssuerAndSNFromCache
      Src: /src/nss/lib/pki/trustdomain.c:759,1
    - Dst: nssTrustDomain_GetActiveSlots
      Src: /src/nss/lib/pki/trustdomain.c:765,1
    - Dst: nssSlot_GetToken
      Src: /src/nss/lib/pki/trustdomain.c:768,1
    - Dst: nssTrustDomain_GetSessionForToken
      Src: /src/nss/lib/pki/trustdomain.c:776,1
    - Dst: nssToken_FindCertificateByIssuerAndSerialNumber
      Src: /src/nss/lib/pki/trustdomain.c:778,1
    - Dst: nssToken_Destroy
      Src: /src/nss/lib/pki/trustdomain.c:786,1
    - Dst: nssCertificateCollection_Create
      Src: /src/nss/lib/pki/trustdomain.c:792,1
    - Dst: nssPKIObjectCollection_AddInstances
      Src: /src/nss/lib/pki/trustdomain.c:797,1
    - Dst: nssPKIObjectCollection_GetCertificates
      Src: /src/nss/lib/pki/trustdomain.c:800,1
    - Dst: nssPKIObjectCollection_Destroy
      Src: /src/nss/lib/pki/trustdomain.c:810,1
    - Dst: nssSlotArray_Destroy
      Src: /src/nss/lib/pki/trustdomain.c:813,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 746
    functionDepth: 2
    functionLinenumber: 746
    functionLinenumberEnd: 816
    functionName: "NSSCertificate *\nnssTrustDomain_FindCertificateByIssuerAndSerialNumber(\n
      \   NSSTrustDomain *td,\n    NSSDER *issuer,\n    NSSDER *serial)"
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached:
    - nssToken_FindCertificateByIssuerAndSerialNumber
    - nssTrustDomain_GetActiveSlots
    - nssToken_Destroy
    - nssPKIObjectCollection_Destroy
    - nssCertificateCollection_Create
    - nssSlotArray_Destroy
    - nssTrustDomain_GetSessionForToken
    - nssPKIObjectCollection_AddInstances
    - nssTrustDomain_GetCertForIssuerAndSNFromCache
    - nssSlot_GetToken
    - nssPKIObjectCollection_GetCertificates
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate *\nnssTrustDomain_FindCertificateByIssuerAndSerialNumber(\n
      \   NSSTrustDomain *td,\n    NSSDER *issuer,\n    NSSDER *serial)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssTrustDomain_FindCertificateByIssuerAndSerialNumber
      Src: /src/nss/lib/pki/trustdomain.c:824,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 818
    functionDepth: 0
    functionLinenumber: 818
    functionLinenumberEnd: 827
    functionName: "NSSCertificate *\nNSSTrustDomain_FindCertificateByIssuerAndSerialNumber(\n
      \   NSSTrustDomain *td,\n    NSSDER *issuer,\n    NSSDER *serial)"
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached:
    - nssTrustDomain_FindCertificateByIssuerAndSerialNumber
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate *\nNSSTrustDomain_FindCertificateByIssuerAndSerialNumber(\n
      \   NSSTrustDomain *td,\n    NSSDER *issuer,\n    NSSDER *serial)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssPKIX509_GetIssuerAndSerialFromDER
      Src: /src/nss/lib/pki/trustdomain.c:839,1
    - Dst: nssTrustDomain_FindCertificateByIssuerAndSerialNumber
      Src: /src/nss/lib/pki/trustdomain.c:843,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pki/trustdomain.c:846,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pki/trustdomain.c:847,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 829
    functionDepth: 1
    functionLinenumber: 829
    functionLinenumberEnd: 849
    functionName: "NSSCertificate *\nnssTrustDomain_FindCertificateByEncodedCertificate(\n
      \   NSSTrustDomain *td,\n    NSSBER *ber)"
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - nssPKIX509_GetIssuerAndSerialFromDER
    - nssTrustDomain_FindCertificateByIssuerAndSerialNumber
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate *\nnssTrustDomain_FindCertificateByEncodedCertificate(\n
      \   NSSTrustDomain *td,\n    NSSBER *ber)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssTrustDomain_FindCertificateByEncodedCertificate
      Src: /src/nss/lib/pki/trustdomain.c:856,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 851
    functionDepth: 0
    functionLinenumber: 851
    functionLinenumberEnd: 857
    functionName: "NSSCertificate *\nNSSTrustDomain_FindCertificateByEncodedCertificate(\n
      \   NSSTrustDomain *td,\n    NSSBER *ber)"
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached:
    - nssTrustDomain_FindCertificateByEncodedCertificate
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate *\nNSSTrustDomain_FindCertificateByEncodedCertificate(\n
      \   NSSTrustDomain *td,\n    NSSBER *ber)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 859
    functionDepth: 0
    functionLinenumber: 859
    functionLinenumberEnd: 868
    functionName: "NSSCertificate *\nNSSTrustDomain_FindBestCertificateByEmail(\n
      \   NSSTrustDomain *td,\n    NSSASCII7 *email,\n    NSSTime *timeOpt,\n    NSSUsage
      *usage,\n    NSSPolicies *policiesOpt)"
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate *\nNSSTrustDomain_FindBestCertificateByEmail(\n
      \   NSSTrustDomain *td,\n    NSSASCII7 *email,\n    NSSTime *timeOpt,\n    NSSUsage
      *usage,\n    NSSPolicies *policiesOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/trustdomain.c:878,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 870
    functionDepth: 1
    functionLinenumber: 870
    functionLinenumberEnd: 880
    functionName: "NSSCertificate **\nNSSTrustDomain_FindCertificatesByEmail(\n    NSSTrustDomain
      *td,\n    NSSASCII7 *email,\n    NSSCertificate *rvOpt[],\n    PRUint32 maximumOpt,
      /* 0 for no max */\n    NSSArena *arenaOpt)"
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate **\nNSSTrustDomain_FindCertificatesByEmail(\n
      \   NSSTrustDomain *td,\n    NSSASCII7 *email,\n    NSSCertificate *rvOpt[],\n
      \   PRUint32 maximumOpt, /* 0 for no max */\n    NSSArena *arenaOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/trustdomain.c:887,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 882
    functionDepth: 1
    functionLinenumber: 882
    functionLinenumberEnd: 889
    functionName: "NSSCertificate *\nNSSTrustDomain_FindCertificateByOCSPHash(\n    NSSTrustDomain
      *td,\n    NSSItem *hash)"
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate *\nNSSTrustDomain_FindCertificateByOCSPHash(\n
      \   NSSTrustDomain *td,\n    NSSItem *hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/trustdomain.c:898,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 891
    functionDepth: 1
    functionLinenumber: 891
    functionLinenumberEnd: 900
    functionName: "NSSCertificate *\nNSSTrustDomain_FindBestUserCertificate(\n    NSSTrustDomain
      *td,\n    NSSTime *timeOpt,\n    NSSUsage *usage,\n    NSSPolicies *policiesOpt)"
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate *\nNSSTrustDomain_FindBestUserCertificate(\n
      \   NSSTrustDomain *td,\n    NSSTime *timeOpt,\n    NSSUsage *usage,\n    NSSPolicies
      *policiesOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/trustdomain.c:912,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 902
    functionDepth: 1
    functionLinenumber: 902
    functionLinenumberEnd: 914
    functionName: "NSSCertificate **\nNSSTrustDomain_FindUserCertificates(\n    NSSTrustDomain
      *td,\n    NSSTime *timeOpt,\n    NSSUsage *usageOpt,\n    NSSPolicies *policiesOpt,\n
      \   NSSCertificate **rvOpt,\n    PRUint32 rvLimit, /* zero for no limit */\n
      \   NSSArena *arenaOpt)"
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate **\nNSSTrustDomain_FindUserCertificates(\n
      \   NSSTrustDomain *td,\n    NSSTime *timeOpt,\n    NSSUsage *usageOpt,\n    NSSPolicies
      *policiesOpt,\n    NSSCertificate **rvOpt,\n    PRUint32 rvLimit, /* zero for
      no limit */\n    NSSArena *arenaOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/trustdomain.c:925,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 927
      start: 916
    functionDepth: 1
    functionLinenumber: 916
    functionLinenumberEnd: 927
    functionName: "NSSCertificate *\nNSSTrustDomain_FindBestUserCertificateForSSLClientAuth(\n
      \   NSSTrustDomain *td,\n    NSSUTF8 *sslHostOpt,\n    NSSDER *rootCAsOpt[],
      \  /* null pointer for none */\n    PRUint32 rootCAsMaxOpt, /* zero means list
      is null-terminated */\n    NSSAlgorithmAndParameters *apOpt,\n    NSSPolicies
      *policiesOpt)"
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate *\nNSSTrustDomain_FindBestUserCertificateForSSLClientAuth(\n
      \   NSSTrustDomain *td,\n    NSSUTF8 *sslHostOpt,\n    NSSDER *rootCAsOpt[],
      \  /* null pointer for none */\n    PRUint32 rootCAsMaxOpt, /* zero means list
      is null-terminated */\n    NSSAlgorithmAndParameters *apOpt,\n    NSSPolicies
      *policiesOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/trustdomain.c:941,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 929
    functionDepth: 1
    functionLinenumber: 929
    functionLinenumberEnd: 943
    functionName: "NSSCertificate **\nNSSTrustDomain_FindUserCertificatesForSSLClientAuth(\n
      \   NSSTrustDomain *td,\n    NSSUTF8 *sslHostOpt,\n    NSSDER *rootCAsOpt[],
      \  /* null pointer for none */\n    PRUint32 rootCAsMaxOpt, /* zero means list
      is null-terminated */\n    NSSAlgorithmAndParameters *apOpt,\n    NSSPolicies
      *policiesOpt,\n    NSSCertificate **rvOpt,\n    PRUint32 rvLimit, /* zero for
      no limit */\n    NSSArena *arenaOpt)"
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate **\nNSSTrustDomain_FindUserCertificatesForSSLClientAuth(\n
      \   NSSTrustDomain *td,\n    NSSUTF8 *sslHostOpt,\n    NSSDER *rootCAsOpt[],
      \  /* null pointer for none */\n    PRUint32 rootCAsMaxOpt, /* zero means list
      is null-terminated */\n    NSSAlgorithmAndParameters *apOpt,\n    NSSPolicies
      *policiesOpt,\n    NSSCertificate **rvOpt,\n    PRUint32 rvLimit, /* zero for
      no limit */\n    NSSArena *arenaOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/trustdomain.c:954,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 945
    functionDepth: 1
    functionLinenumber: 945
    functionLinenumberEnd: 956
    functionName: "NSSCertificate *\nNSSTrustDomain_FindBestUserCertificateForEmailSigning(\n
      \   NSSTrustDomain *td,\n    NSSASCII7 *signerOpt,\n    NSSASCII7 *recipientOpt,\n
      \   /* anything more here? */\n    NSSAlgorithmAndParameters *apOpt,\n    NSSPolicies
      *policiesOpt)"
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate *\nNSSTrustDomain_FindBestUserCertificateForEmailSigning(\n
      \   NSSTrustDomain *td,\n    NSSASCII7 *signerOpt,\n    NSSASCII7 *recipientOpt,\n
      \   /* anything more here? */\n    NSSAlgorithmAndParameters *apOpt,\n    NSSPolicies
      *policiesOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/trustdomain.c:970,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 958
    functionDepth: 1
    functionLinenumber: 958
    functionLinenumberEnd: 972
    functionName: "NSSCertificate **\nNSSTrustDomain_FindUserCertificatesForEmailSigning(\n
      \   NSSTrustDomain *td,\n    NSSASCII7 *signerOpt,\n    NSSASCII7 *recipientOpt,\n
      \   /* anything more here? */\n    NSSAlgorithmAndParameters *apOpt,\n    NSSPolicies
      *policiesOpt,\n    NSSCertificate **rvOpt,\n    PRUint32 rvLimit, /* zero for
      no limit */\n    NSSArena *arenaOpt)"
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate **\nNSSTrustDomain_FindUserCertificatesForEmailSigning(\n
      \   NSSTrustDomain *td,\n    NSSASCII7 *signerOpt,\n    NSSASCII7 *recipientOpt,\n
      \   /* anything more here? */\n    NSSAlgorithmAndParameters *apOpt,\n    NSSPolicies
      *policiesOpt,\n    NSSCertificate **rvOpt,\n    PRUint32 rvLimit, /* zero for
      no limit */\n    NSSArena *arenaOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssPKIObjectCollection_AddInstanceAsObject
      Src: /src/nss/lib/pki/trustdomain.c:978,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - instance
    - arg
    argTypes:
    - nssCryptokiObject*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 974
    functionDepth: 1
    functionLinenumber: 974
    functionLinenumberEnd: 979
    functionName: collector
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached:
    - nssPKIObjectCollection_AddInstanceAsObject
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus collector(nssCryptokiObject *instance, void *arg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: nssList_Create
      Src: /src/nss/lib/pki/trustdomain.c:996,1
    - Dst: nssTrustDomain_GetCertsFromCache
      Src: /src/nss/lib/pki/trustdomain.c:999,1
    - Dst: get_certs_from_list
      Src: /src/nss/lib/pki/trustdomain.c:1000,1
    - Dst: nssCertificateCollection_Create
      Src: /src/nss/lib/pki/trustdomain.c:1001,1
    - Dst: nssCertificateArray_Destroy
      Src: /src/nss/lib/pki/trustdomain.c:1002,1
    - Dst: nssList_Destroy
      Src: /src/nss/lib/pki/trustdomain.c:1003,1
    - Dst: nssTrustDomain_GetActiveSlots
      Src: /src/nss/lib/pki/trustdomain.c:1008,1
    - Dst: nssSlot_GetToken
      Src: /src/nss/lib/pki/trustdomain.c:1015,1
    - Dst: nssTrustDomain_GetSessionForToken
      Src: /src/nss/lib/pki/trustdomain.c:1020,1
    - Dst: nssToken_TraverseCertificates
      Src: /src/nss/lib/pki/trustdomain.c:1023,1
    - Dst: nssToken_Destroy
      Src: /src/nss/lib/pki/trustdomain.c:1029,1
    - Dst: nssPKIObjectCollection_Traverse
      Src: /src/nss/lib/pki/trustdomain.c:1036,1
    - Dst: nssSlotArray_Destroy
      Src: /src/nss/lib/pki/trustdomain.c:1039,1
    - Dst: nssPKIObjectCollection_Destroy
      Src: /src/nss/lib/pki/trustdomain.c:1042,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 2
    argNames:
    - td
    - arg
    argTypes:
    - NSSTrustDomain*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1045
      start: 981
    functionDepth: 2
    functionLinenumber: 981
    functionLinenumberEnd: 1045
    functionName: NSSTrustDomain_TraverseCertificates
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached:
    - nssPKIObjectCollection_Traverse
    - nssCertificateArray_Destroy
    - nssTrustDomain_GetActiveSlots
    - nssToken_Destroy
    - nssPKIObjectCollection_Destroy
    - nssCertificateCollection_Create
    - nssSlotArray_Destroy
    - nssTrustDomain_GetCertsFromCache
    - nssTrustDomain_GetSessionForToken
    - nssList_Create
    - get_certs_from_list
    - nssSlot_GetToken
    - nssList_Destroy
    - nssToken_TraverseCertificates
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSTrustDomain_TraverseCertificates(\n    NSSTrustDomain
      *td,\n    PRStatus (*callback)(NSSCertificate *c, void *arg),\n    void *arg)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: nssTrustDomain_GetActiveSlots
      Src: /src/nss/lib/pki/trustdomain.c:1058,1
    - Dst: nssSlot_GetToken
      Src: /src/nss/lib/pki/trustdomain.c:1063,1
    - Dst: nssToken_FindTrustForCertificate
      Src: /src/nss/lib/pki/trustdomain.c:1066,1
    - Dst: nssPKIObject_Create
      Src: /src/nss/lib/pki/trustdomain.c:1074,1
    - Dst: nssPKIObject_AddInstance
      Src: /src/nss/lib/pki/trustdomain.c:1077,1
    - Dst: nssCryptokiObject_Destroy
      Src: /src/nss/lib/pki/trustdomain.c:1080,1
    - Dst: nssToken_Destroy
      Src: /src/nss/lib/pki/trustdomain.c:1083,1
    - Dst: nssTrust_Create
      Src: /src/nss/lib/pki/trustdomain.c:1087,1
    - Dst: nssSlotArray_Destroy
      Src: /src/nss/lib/pki/trustdomain.c:1092,1
    - Dst: nssPKIObject_Destroy
      Src: /src/nss/lib/pki/trustdomain.c:1094,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 2
    argNames:
    - td
    - c
    argTypes:
    - NSSTrustDomain*
    - NSSCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1047
    functionDepth: 2
    functionLinenumber: 1047
    functionLinenumberEnd: 1097
    functionName: nssTrustDomain_FindTrustForCertificate
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached:
    - nssTrustDomain_GetActiveSlots
    - nssToken_Destroy
    - nssSlotArray_Destroy
    - nssCryptokiObject_Destroy
    - nssPKIObject_Create
    - nssTrust_Create
    - nssPKIObject_AddInstance
    - nssSlot_GetToken
    - nssPKIObject_Destroy
    - nssToken_FindTrustForCertificate
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nnssTrustDomain_FindTrustForCertificate(\n    NSSTrustDomain
      *td,\n    NSSCertificate *c)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: nssCRLCollection_Create
      Src: /src/nss/lib/pki/trustdomain.c:1110,1
    - Dst: nssTrustDomain_GetActiveSlots
      Src: /src/nss/lib/pki/trustdomain.c:1114,1
    - Dst: nssSlot_GetToken
      Src: /src/nss/lib/pki/trustdomain.c:1119,1
    - Dst: nssTrustDomain_GetSessionForToken
      Src: /src/nss/lib/pki/trustdomain.c:1127,1
    - Dst: nssToken_FindCRLsBySubject
      Src: /src/nss/lib/pki/trustdomain.c:1130,1
    - Dst: nssToken_Destroy
      Src: /src/nss/lib/pki/trustdomain.c:1133,1
    - Dst: nssPKIObjectCollection_AddInstances
      Src: /src/nss/lib/pki/trustdomain.c:1136,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/pki/trustdomain.c:1139,1
    - Dst: nssPKIObjectCollection_GetCRLs
      Src: /src/nss/lib/pki/trustdomain.c:1142,1
    - Dst: nssPKIObjectCollection_Destroy
      Src: /src/nss/lib/pki/trustdomain.c:1144,1
    - Dst: nssSlotArray_Destroy
      Src: /src/nss/lib/pki/trustdomain.c:1145,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1147
      start: 1099
    functionDepth: 2
    functionLinenumber: 1099
    functionLinenumberEnd: 1147
    functionName: nssTrustDomain_FindCRLsBySubject
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached:
    - nssToken_FindCRLsBySubject
    - nssTrustDomain_GetActiveSlots
    - nssToken_Destroy
    - nssPKIObjectCollection_Destroy
    - nssSlotArray_Destroy
    - nssCRLCollection_Create
    - nssTrustDomain_GetSessionForToken
    - nssPKIObjectCollection_AddInstances
    - nssPKIObjectCollection_GetCRLs
    - nss_ZFreeIf
    - nssSlot_GetToken
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT **\nnssTrustDomain_FindCRLsBySubject(\n    NSSTrustDomain
      *td,\n    NSSDER *subject)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/trustdomain.c:1159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 7
    argNames:
    - td
    - ap
    - pvkOpt
    - pbkOpt
    - privateKeyIsSensitive
    - destination
    - uhhOpt
    argTypes:
    - NSSTrustDomain*
    - NSSAlgorithmAndParameters*
    - NSSPrivateKey**
    - NSSPublicKey**
    - PRBool
    - NSSToken*
    - NSSCallback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1161
      start: 1149
    functionDepth: 1
    functionLinenumber: 1149
    functionLinenumberEnd: 1161
    functionName: NSSTrustDomain_GenerateKeyPair
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSTrustDomain_GenerateKeyPair(\n    NSSTrustDomain
      *td,\n    NSSAlgorithmAndParameters *ap,\n    NSSPrivateKey **pvkOpt,\n    NSSPublicKey
      **pbkOpt,\n    PRBool privateKeyIsSensitive,\n    NSSToken *destination,\n    NSSCallback
      *uhhOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/trustdomain.c:1171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1173
      start: 1163
    functionDepth: 1
    functionLinenumber: 1163
    functionLinenumberEnd: 1173
    functionName: "NSSSymmetricKey *\nNSSTrustDomain_GenerateSymmetricKey(\n    NSSTrustDomain
      *td,\n    NSSAlgorithmAndParameters *ap,\n    PRUint32 keysize,\n    NSSToken
      *destination,\n    NSSCallback *uhhOpt)"
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSSymmetricKey *\nNSSTrustDomain_GenerateSymmetricKey(\n
      \   NSSTrustDomain *td,\n    NSSAlgorithmAndParameters *ap,\n    PRUint32 keysize,\n
      \   NSSToken *destination,\n    NSSCallback *uhhOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/trustdomain.c:1183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1185
      start: 1175
    functionDepth: 1
    functionLinenumber: 1175
    functionLinenumberEnd: 1185
    functionName: "NSSSymmetricKey *\nNSSTrustDomain_GenerateSymmetricKeyFromPassword(\n
      \   NSSTrustDomain *td,\n    NSSAlgorithmAndParameters *ap,\n    NSSUTF8 *passwordOpt,
      /* if null, prompt */\n    NSSToken *destinationOpt,\n    NSSCallback *uhhOpt)"
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSSymmetricKey *\nNSSTrustDomain_GenerateSymmetricKeyFromPassword(\n
      \   NSSTrustDomain *td,\n    NSSAlgorithmAndParameters *ap,\n    NSSUTF8 *passwordOpt,
      /* if null, prompt */\n    NSSToken *destinationOpt,\n    NSSCallback *uhhOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/trustdomain.c:1194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1196
      start: 1187
    functionDepth: 1
    functionLinenumber: 1187
    functionLinenumberEnd: 1196
    functionName: "NSSSymmetricKey *\nNSSTrustDomain_FindSymmetricKeyByAlgorithmAndKeyID(\n
      \   NSSTrustDomain *td,\n    NSSOID *algorithm,\n    NSSItem *keyID,\n    NSSCallback
      *uhhOpt)"
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSSymmetricKey *\nNSSTrustDomain_FindSymmetricKeyByAlgorithmAndKeyID(\n
      \   NSSTrustDomain *td,\n    NSSOID *algorithm,\n    NSSItem *keyID,\n    NSSCallback
      *uhhOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssCryptoContext_Create
      Src: /src/nss/lib/pki/trustdomain.c:1203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1204
      start: 1198
    functionDepth: 0
    functionLinenumber: 1198
    functionLinenumberEnd: 1204
    functionName: "NSSCryptoContext *\nnssTrustDomain_CreateCryptoContext(\n    NSSTrustDomain
      *td,\n    NSSCallback *uhhOpt)"
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached:
    - nssCryptoContext_Create
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCryptoContext *\nnssTrustDomain_CreateCryptoContext(\n
      \   NSSTrustDomain *td,\n    NSSCallback *uhhOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssTrustDomain_CreateCryptoContext
      Src: /src/nss/lib/pki/trustdomain.c:1211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1212
      start: 1206
    functionDepth: 0
    functionLinenumber: 1206
    functionLinenumberEnd: 1212
    functionName: "NSSCryptoContext *\nNSSTrustDomain_CreateCryptoContext(\n    NSSTrustDomain
      *td,\n    NSSCallback *uhhOpt)"
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached:
    - nssTrustDomain_CreateCryptoContext
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCryptoContext *\nNSSTrustDomain_CreateCryptoContext(\n
      \   NSSTrustDomain *td,\n    NSSCallback *uhhOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/trustdomain.c:1219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1221
      start: 1214
    functionDepth: 1
    functionLinenumber: 1214
    functionLinenumberEnd: 1221
    functionName: "NSSCryptoContext *\nNSSTrustDomain_CreateCryptoContextForAlgorithm(\n
      \   NSSTrustDomain *td,\n    NSSOID *algorithm)"
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCryptoContext *\nNSSTrustDomain_CreateCryptoContextForAlgorithm(\n
      \   NSSTrustDomain *td,\n    NSSOID *algorithm)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/trustdomain.c:1228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1230
      start: 1223
    functionDepth: 1
    functionLinenumber: 1223
    functionLinenumberEnd: 1230
    functionName: "NSSCryptoContext *\nNSSTrustDomain_CreateCryptoContextForAlgorithmAndParameters(\n
      \   NSSTrustDomain *td,\n    NSSAlgorithmAndParameters *ap)"
    functionSourceFile: /src/nss/lib/pki/trustdomain.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCryptoContext *\nNSSTrustDomain_CreateCryptoContextForAlgorithmAndParameters(\n
      \   NSSTrustDomain *td,\n    NSSAlgorithmAndParameters *ap)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssDecodedPKIXCertificate_Create
      Src: /src/nss/lib/pki/certdecode.c:32,1
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/certdecode.c:36,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 41
    functionName: "nssDecodedCert *\nnssDecodedCert_Create(\n    NSSArena *arenaOpt,\n
      \   NSSDER *encoding,\n    NSSCertificateType type)"
    functionSourceFile: /src/nss/lib/pki/certdecode.c
    functionUses: 0
    functionsReached:
    - nssDecodedPKIXCertificate_Create
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssDecodedCert *\nnssDecodedCert_Create(\n    NSSArena
      *arenaOpt,\n    NSSDER *encoding,\n    NSSCertificateType type)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nssDecodedPKIXCertificate_Destroy
      Src: /src/nss/lib/pki/certdecode.c:52,1
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/certdecode.c:55,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - dc
    argTypes:
    - nssDecodedCert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 60
    functionName: nssDecodedCert_Destroy
    functionSourceFile: /src/nss/lib/pki/certdecode.c
    functionUses: 0
    functionsReached:
    - nssDecodedPKIXCertificate_Destroy
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssDecodedCert_Destroy(\n    nssDecodedCert *dc)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PR_ASSERT
      Src: /src/nss/lib/pki/certificate.c:42,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/pki/certificate.c:43,1
    - Dst: nssArena_Mark
      Src: /src/nss/lib/pki/certificate.c:44,1
    - Dst: nss_ZNEW
      Src: /src/nss/lib/pki/certificate.c:45,1
    - Dst: nssCryptokiCertificate_GetAttributes
      Src: /src/nss/lib/pki/certificate.c:51,1
    - Dst: nssArena_Release
      Src: /src/nss/lib/pki/certificate.c:68,1
    - Dst: nssArena_Unmark
      Src: /src/nss/lib/pki/certificate.c:72,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 74
    functionName: "NSSCertificate *\nnssCertificate_Create(\n    nssPKIObject *object)"
    functionSourceFile: /src/nss/lib/pki/certificate.c
    functionUses: 0
    functionsReached:
    - nss_ZNEW
    - nssCryptokiCertificate_GetAttributes
    - PR_ASSERT
    - nssArena_Unmark
    - nssArena_Mark
    - nssArena_Release
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate *\nnssCertificate_Create(\n    nssPKIObject
      *object)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssPKIObject_AddRef
      Src: /src/nss/lib/pki/certificate.c:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 84
    functionName: "NSSCertificate *\nnssCertificate_AddRef(\n    NSSCertificate *c)"
    functionSourceFile: /src/nss/lib/pki/certificate.c
    functionUses: 0
    functionsReached:
    - nssPKIObject_AddRef
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate *\nnssCertificate_AddRef(\n    NSSCertificate
      *c)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: STAN_GetDefaultTrustDomain
      Src: /src/nss/lib/pki/certificate.c:96,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/pki/certificate.c:99,1
    - Dst: nssCertificateStore_Lock
      Src: /src/nss/lib/pki/certificate.c:103,1
    - Dst: nssTrustDomain_LockCertCache
      Src: /src/nss/lib/pki/certificate.c:105,1
    - Dst: PR_ATOMIC_DECREMENT
      Src: /src/nss/lib/pki/certificate.c:107,1
    - Dst: nssCertificateStore_RemoveCertLOCKED
      Src: /src/nss/lib/pki/certificate.c:110,1
    - Dst: nssCertificateStore_Unlock
      Src: /src/nss/lib/pki/certificate.c:111,1
    - Dst: nssTrustDomain_RemoveCertFromCacheLOCKED
      Src: /src/nss/lib/pki/certificate.c:114,1
    - Dst: nssTrustDomain_UnlockCertCache
      Src: /src/nss/lib/pki/certificate.c:115,1
    - Dst: nssCryptokiObject_Destroy
      Src: /src/nss/lib/pki/certificate.c:119,1
    - Dst: nssPKIObject_DestroyLock
      Src: /src/nss/lib/pki/certificate.c:121,1
    - Dst: nssArena_Destroy
      Src: /src/nss/lib/pki/certificate.c:122,1
    - Dst: nssDecodedCert_Destroy
      Src: /src/nss/lib/pki/certificate.c:123,1
    - Dst: nssCertificateStore_Unlock
      Src: /src/nss/lib/pki/certificate.c:127,1
    - Dst: nssTrustDomain_UnlockCertCache
      Src: /src/nss/lib/pki/certificate.c:131,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 1
    argNames:
    - c
    argTypes:
    - NSSCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 86
    functionDepth: 5
    functionLinenumber: 86
    functionLinenumberEnd: 136
    functionName: nssCertificate_Destroy
    functionSourceFile: /src/nss/lib/pki/certificate.c
    functionUses: 2
    functionsReached:
    - nssTrustDomain_RemoveCertFromCacheLOCKED
    - STAN_GetDefaultTrustDomain
    - PR_ATOMIC_DECREMENT
    - nssPKIObject_DestroyLock
    - PR_ASSERT
    - nssCertificateStore_Lock
    - nssCryptokiObject_Destroy
    - nssDecodedCert_Destroy
    - nssArena_Destroy
    - nssCertificateStore_Unlock
    - nssTrustDomain_LockCertCache
    - nssCertificateStore_RemoveCertLOCKED
    - nssTrustDomain_UnlockCertCache
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCertificate_Destroy(\n    NSSCertificate *c)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssCertificate_Destroy
      Src: /src/nss/lib/pki/certificate.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - NSSCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 138
    functionDepth: 6
    functionLinenumber: 138
    functionLinenumberEnd: 142
    functionName: NSSCertificate_Destroy
    functionSourceFile: /src/nss/lib/pki/certificate.c
    functionUses: 0
    functionsReached:
    - nssCertificate_Destroy
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT NSSCertificate_Destroy(NSSCertificate *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - NSSCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 152
    functionName: nssCertificate_GetEncoding
    functionSourceFile: /src/nss/lib/pki/certificate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: 'NSS_IMPLEMENT *

      nssCertificate_GetEncoding(NSSCertificate *c)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - NSSCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 162
    functionName: nssCertificate_GetIssuer
    functionSourceFile: /src/nss/lib/pki/certificate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: 'NSS_IMPLEMENT *

      nssCertificate_GetIssuer(NSSCertificate *c)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - NSSCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 172
    functionName: nssCertificate_GetSerialNumber
    functionSourceFile: /src/nss/lib/pki/certificate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: 'NSS_IMPLEMENT *

      nssCertificate_GetSerialNumber(NSSCertificate *c)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - NSSCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 182
    functionName: nssCertificate_GetSubject
    functionSourceFile: /src/nss/lib/pki/certificate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: 'NSS_IMPLEMENT *

      nssCertificate_GetSubject(NSSCertificate *c)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssPKIObject_GetNicknameForToken
      Src: /src/nss/lib/pki/certificate.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - tokenOpt
    argTypes:
    - NSSCertificate*
    - NSSToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 191
    functionName: nssCertificate_GetNickname
    functionSourceFile: /src/nss/lib/pki/certificate.c
    functionUses: 2
    functionsReached:
    - nssPKIObject_GetNicknameForToken
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nnssCertificate_GetNickname(\n    NSSCertificate *c,\n
      \   NSSToken *tokenOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - NSSCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 197
    functionName: nssCertificate_GetEmailAddress
    functionSourceFile: /src/nss/lib/pki/certificate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: 'NSS_IMPLEMENT *

      nssCertificate_GetEmailAddress(NSSCertificate *c)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssPKIObject_DeleteStoredObject
      Src: /src/nss/lib/pki/certificate.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - uhh
    argTypes:
    - NSSCertificate*
    - NSSCallback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 205
    functionName: NSSCertificate_DeleteStoredObject
    functionSourceFile: /src/nss/lib/pki/certificate.c
    functionUses: 0
    functionsReached:
    - nssPKIObject_DeleteStoredObject
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate_DeleteStoredObject(\n    NSSCertificate
      *c,\n    NSSCallback *uhh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/certificate.c:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - c
    - timeOpt
    - usage
    - policiesOpt
    argTypes:
    - NSSCertificate*
    - NSSTime*
    - NSSUsage*
    - NSSPolicies*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 217
    functionName: NSSCertificate_Validate
    functionSourceFile: /src/nss/lib/pki/certificate.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate_Validate(\n    NSSCertificate *c,\n    NSSTime
      *timeOpt, /* NULL for \"now\" */\n    NSSUsage *usage,\n    NSSPolicies *policiesOpt
      /* NULL for none */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/certificate.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 232
    functionName: NSSCertificate_ValidateCompletely
    functionSourceFile: /src/nss/lib/pki/certificate.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT ** /* void *[] */\nNSSCertificate_ValidateCompletely(\n
      \   NSSCertificate *c,\n    NSSTime *timeOpt, /* NULL for \"now\" */\n    NSSUsage
      *usage,\n    NSSPolicies *policiesOpt, /* NULL for none */\n    void **rvOpt,
      \            /* NULL for allocate */\n    PRUint32 rvLimit,         /* zero
      for no limit */\n    NSSArena *arenaOpt        /* NULL for heap */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/certificate.c:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 8
    argNames:
    - c
    - notBeforeOutOpt
    - notAfterOutOpt
    - allowedUsages
    - disallowedUsages
    - allowedPolicies
    - disallowedPolicies
    - arenaOpt
    argTypes:
    - NSSCertificate*
    - NSSTime**
    - NSSTime**
    - void*
    - void*
    - void*
    - void*
    - NSSArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 248
    functionName: NSSCertificate_ValidateAndDiscoverUsagesAndPolicies
    functionSourceFile: /src/nss/lib/pki/certificate.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate_ValidateAndDiscoverUsagesAndPolicies(\n
      \   NSSCertificate *c,\n    NSSTime **notBeforeOutOpt,\n    NSSTime **notAfterOutOpt,\n
      \   void *allowedUsages,\n    void *disallowedUsages,\n    void *allowedPolicies,\n
      \   void *disallowedPolicies,\n    /* more args.. work on this fgmr */\n    NSSArena
      *arenaOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssItem_Duplicate
      Src: /src/nss/lib/pki/certificate.c:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - c
    - rvOpt
    - arenaOpt
    argTypes:
    - NSSCertificate*
    - NSSDER*
    - NSSArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 258
    functionName: NSSCertificate_Encode
    functionSourceFile: /src/nss/lib/pki/certificate.c
    functionUses: 0
    functionsReached:
    - nssItem_Duplicate
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSCertificate_Encode(\n    NSSCertificate *c,\n
      \   NSSDER *rvOpt,\n    NSSArena *arenaOpt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STAN_GetCERTCertificate
      Src: /src/nss/lib/pki/certificate.c:266,1
    - Dst: nssPKIObject_Lock
      Src: /src/nss/lib/pki/certificate.c:268,1
    - Dst: nssDecodedCert_Create
      Src: /src/nss/lib/pki/certificate.c:270,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pki/certificate.c:271,1
    - Dst: nssPKIObject_Unlock
      Src: /src/nss/lib/pki/certificate.c:276,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 278
    functionName: "nssDecodedCert *\nnssCertificate_GetDecoding(\n    NSSCertificate
      *c)"
    functionSourceFile: /src/nss/lib/pki/certificate.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - nssDecodedCert_Create
    - STAN_GetCERTCertificate
    - nssPKIObject_Unlock
    - nssPKIObject_Lock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssDecodedCert *\nnssCertificate_GetDecoding(\n    NSSCertificate
      *c)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: nssCertificate_GetDecoding
      Src: /src/nss/lib/pki/certificate.c:294,1
    - Dst: NSSCertificate_Destroy
      Src: /src/nss/lib/pki/certificate.c:296,1
    - Dst: nssDecodedCert*::matchIdentifier
      Src: /src/nss/lib/pki/certificate.c:299,1
    - Dst: NSSCertificate_Destroy
      Src: /src/nss/lib/pki/certificate.c:305,1
    - Dst: NSSCertificate_Destroy
      Src: /src/nss/lib/pki/certificate.c:324,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 280
    functionDepth: 7
    functionLinenumber: 280
    functionLinenumberEnd: 330
    functionName: filter_subject_certs_for_id
    functionSourceFile: /src/nss/lib/pki/certificate.c
    functionUses: 0
    functionsReached:
    - nssDecodedCert*::matchIdentifier
    - nssCertificate_GetDecoding
    - NSSCertificate_Destroy
    linkageType: ''
    returnType: NSSCertificate
    signature: "NSSCertificate **\nfilter_subject_certs_for_id(\n    NSSCertificate
      **subjectCerts,\n    void *id)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssCertificate_GetDecoding
      Src: /src/nss/lib/pki/certificate.c:340,1
    - Dst: nssDecodedCert*::isValidIssuer
      Src: /src/nss/lib/pki/certificate.c:341,1
    - Dst: NSSCertificate_Destroy
      Src: /src/nss/lib/pki/certificate.c:344,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 332
    functionDepth: 7
    functionLinenumber: 332
    functionLinenumberEnd: 349
    functionName: filter_certs_for_valid_issuers
    functionSourceFile: /src/nss/lib/pki/certificate.c
    functionUses: 0
    functionsReached:
    - nssCertificate_GetDecoding
    - nssDecodedCert*::isValidIssuer
    - NSSCertificate_Destroy
    linkageType: ''
    returnType: NSSCertificate
    signature: 'NSSCertificate **

      filter_certs_for_valid_issuers(NSSCertificate **certs)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: NSSCertificate_GetTrustDomain
      Src: /src/nss/lib/pki/certificate.c:369,1
    - Dst: nssArena_Create
      Src: /src/nss/lib/pki/certificate.c:370,1
    - Dst: nssCryptoContext_FindCertificatesBySubject
      Src: /src/nss/lib/pki/certificate.c:375,1
    - Dst: nssTrustDomain_FindCertificatesBySubject
      Src: /src/nss/lib/pki/certificate.c:382,1
    - Dst: nssCertificateArray_Join
      Src: /src/nss/lib/pki/certificate.c:387,1
    - Dst: nssCertificate_GetDecoding
      Src: /src/nss/lib/pki/certificate.c:391,1
    - Dst: nssDecodedCert*::getIssuerIdentifier
      Src: /src/nss/lib/pki/certificate.c:393,1
    - Dst: filter_subject_certs_for_id
      Src: /src/nss/lib/pki/certificate.c:400,1
    - Dst: filter_certs_for_valid_issuers
      Src: /src/nss/lib/pki/certificate.c:402,1
    - Dst: nssCertificateArray_FindBestCertificate
      Src: /src/nss/lib/pki/certificate.c:403,1
    - Dst: nssCertificateArray_Destroy
      Src: /src/nss/lib/pki/certificate.c:407,1
    - Dst: nssArena_Destroy
      Src: /src/nss/lib/pki/certificate.c:409,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 6
    argNames:
    - c
    - timeOpt
    - usage
    - policiesOpt
    - td
    - cc
    argTypes:
    - NSSCertificate*
    - NSSTime*
    - NSSUsage*
    - NSSPolicies*
    - NSSTrustDomain*
    - NSSCryptoContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 351
    functionDepth: 8
    functionLinenumber: 351
    functionLinenumberEnd: 411
    functionName: find_cert_issuer
    functionSourceFile: /src/nss/lib/pki/certificate.c
    functionUses: 0
    functionsReached:
    - nssArena_Create
    - nssCertificateArray_Destroy
    - nssDecodedCert*::getIssuerIdentifier
    - NSSCertificate_GetTrustDomain
    - nssCertificateArray_FindBestCertificate
    - nssCertificateArray_Join
    - nssCertificate_GetDecoding
    - filter_subject_certs_for_id
    - nssTrustDomain_FindCertificatesBySubject
    - nssCryptoContext_FindCertificatesBySubject
    - nssArena_Destroy
    - filter_certs_for_valid_issuers
    linkageType: ''
    returnType: NSSCertificate
    signature: "NSSCertificate *\nfind_cert_issuer(\n    NSSCertificate *c,\n    NSSTime
      *timeOpt,\n    NSSUsage *usage,\n    NSSPolicies *policiesOpt,\n    NSSTrustDomain
      *td,\n    NSSCryptoContext *cc)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: NSSCertificate_GetTrustDomain
      Src: /src/nss/lib/pki/certificate.c:437,1
    - Dst: nssCertificateCollection_Create
      Src: /src/nss/lib/pki/certificate.c:442,1
    - Dst: nssPKIObjectCollection_AddObject
      Src: /src/nss/lib/pki/certificate.c:445,1
    - Dst: STAN_GetCERTCertificate
      Src: /src/nss/lib/pki/certificate.c:449,1
    - Dst: find_cert_issuer
      Src: /src/nss/lib/pki/certificate.c:456,1
    - Dst: nssPKIObjectCollection_AddObject
      Src: /src/nss/lib/pki/certificate.c:461,1
    - Dst: nssCertificate_Destroy
      Src: /src/nss/lib/pki/certificate.c:462,1
    - Dst: nssPKIObjectCollection_GetCertificates
      Src: /src/nss/lib/pki/certificate.c:466,1
    - Dst: nssPKIObjectCollection_Destroy
      Src: /src/nss/lib/pki/certificate.c:471,1
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/certificate.c:475,1
    - Dst: nssPKIObjectCollection_Destroy
      Src: /src/nss/lib/pki/certificate.c:481,1
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/certificate.c:484,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 416
    functionDepth: 9
    functionLinenumber: 416
    functionLinenumberEnd: 486
    functionName: "NSSCertificate **\nnssCertificate_BuildChain(\n    NSSCertificate
      *c,\n    NSSTime *timeOpt,\n    NSSUsage *usage,\n    NSSPolicies *policiesOpt,\n
      \   NSSCertificate **rvOpt,\n    PRUint32 rvLimit,\n    NSSArena *arenaOpt,\n
      \   PRStatus *statusOpt,\n    NSSTrustDomain *td,\n    NSSCryptoContext *cc)"
    functionSourceFile: /src/nss/lib/pki/certificate.c
    functionUses: 0
    functionsReached:
    - nssPKIObjectCollection_AddObject
    - NSSCertificate_GetTrustDomain
    - find_cert_issuer
    - nssCertificate_Destroy
    - nssPKIObjectCollection_Destroy
    - nssCertificateCollection_Create
    - STAN_GetCERTCertificate
    - nss_SetError
    - nssPKIObjectCollection_GetCertificates
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate **\nnssCertificate_BuildChain(\n    NSSCertificate
      *c,\n    NSSTime *timeOpt,\n    NSSUsage *usage,\n    NSSPolicies *policiesOpt,\n
      \   NSSCertificate **rvOpt,\n    PRUint32 rvLimit,\n    NSSArena *arenaOpt,\n
      \   PRStatus *statusOpt,\n    NSSTrustDomain *td,\n    NSSCryptoContext *cc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssCertificate_BuildChain
      Src: /src/nss/lib/pki/certificate.c:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 504
    functionName: "NSSCertificate **\nNSSCertificate_BuildChain(\n    NSSCertificate
      *c,\n    NSSTime *timeOpt,\n    NSSUsage *usage,\n    NSSPolicies *policiesOpt,\n
      \   NSSCertificate **rvOpt,\n    PRUint32 rvLimit, /* zero for no limit */\n
      \   NSSArena *arenaOpt,\n    PRStatus *statusOpt,\n    NSSTrustDomain *td,\n
      \   NSSCryptoContext *cc)"
    functionSourceFile: /src/nss/lib/pki/certificate.c
    functionUses: 0
    functionsReached:
    - nssCertificate_BuildChain
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate **\nNSSCertificate_BuildChain(\n    NSSCertificate
      *c,\n    NSSTime *timeOpt,\n    NSSUsage *usage,\n    NSSPolicies *policiesOpt,\n
      \   NSSCertificate **rvOpt,\n    PRUint32 rvLimit, /* zero for no limit */\n
      \   NSSArena *arenaOpt,\n    PRStatus *statusOpt,\n    NSSTrustDomain *td,\n
      \   NSSCryptoContext *cc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 510
    functionName: 'NSSCryptoContext *

      nssCertificate_GetCryptoContext(NSSCertificate *c)'
    functionSourceFile: /src/nss/lib/pki/certificate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: 'NSS_IMPLEMENT NSSCryptoContext *

      nssCertificate_GetCryptoContext(NSSCertificate *c)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 516
    functionName: 'NSSTrustDomain *

      nssCertificate_GetTrustDomain(NSSCertificate *c)'
    functionSourceFile: /src/nss/lib/pki/certificate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: 'NSS_IMPLEMENT NSSTrustDomain *

      nssCertificate_GetTrustDomain(NSSCertificate *c)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssCertificate_GetTrustDomain
      Src: /src/nss/lib/pki/certificate.c:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 522
    functionName: 'NSSTrustDomain *

      NSSCertificate_GetTrustDomain(NSSCertificate *c)'
    functionSourceFile: /src/nss/lib/pki/certificate.c
    functionUses: 0
    functionsReached:
    - nssCertificate_GetTrustDomain
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: 'NSS_IMPLEMENT NSSTrustDomain *

      NSSCertificate_GetTrustDomain(NSSCertificate *c)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - statusOpt
    argTypes:
    - NSSCertificate*
    - PRStatus*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 524
    functionDepth: 0
    functionLinenumber: 524
    functionLinenumberEnd: 530
    functionName: NSSCertificate_GetToken
    functionSourceFile: /src/nss/lib/pki/certificate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSCertificate_GetToken(\n    NSSCertificate *c,\n
      \   PRStatus *statusOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - statusOpt
    argTypes:
    - NSSCertificate*
    - PRStatus*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 532
    functionDepth: 0
    functionLinenumber: 532
    functionLinenumberEnd: 538
    functionName: NSSCertificate_GetSlot
    functionSourceFile: /src/nss/lib/pki/certificate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSCertificate_GetSlot(\n    NSSCertificate *c,\n
      \   PRStatus *statusOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - statusOpt
    argTypes:
    - NSSCertificate*
    - PRStatus*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 546
    functionName: NSSCertificate_GetModule
    functionSourceFile: /src/nss/lib/pki/certificate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSCertificate_GetModule(\n    NSSCertificate *c,\n
      \   PRStatus *statusOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/certificate.c:560,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 9
    argNames:
    - c
    - apOpt
    - data
    - timeOpt
    - usage
    - policiesOpt
    - uhh
    - rvOpt
    - arenaOpt
    argTypes:
    - NSSCertificate*
    - NSSAlgorithmAndParameters*
    - NSSItem*
    - NSSTime*
    - NSSUsage*
    - NSSPolicies*
    - NSSCallback*
    - NSSItem*
    - NSSArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 548
    functionDepth: 1
    functionLinenumber: 548
    functionLinenumberEnd: 562
    functionName: NSSCertificate_Encrypt
    functionSourceFile: /src/nss/lib/pki/certificate.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSCertificate_Encrypt(\n    NSSCertificate *c,\n
      \   NSSAlgorithmAndParameters *apOpt,\n    NSSItem *data,\n    NSSTime *timeOpt,\n
      \   NSSUsage *usage,\n    NSSPolicies *policiesOpt,\n    NSSCallback *uhh,\n
      \   NSSItem *rvOpt,\n    NSSArena *arenaOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/certificate.c:575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 8
    argNames:
    - c
    - apOpt
    - data
    - signature
    - timeOpt
    - usage
    - policiesOpt
    - uhh
    argTypes:
    - NSSCertificate*
    - NSSAlgorithmAndParameters*
    - NSSItem*
    - NSSItem*
    - NSSTime*
    - NSSUsage*
    - NSSPolicies*
    - NSSCallback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 564
    functionDepth: 1
    functionLinenumber: 564
    functionLinenumberEnd: 577
    functionName: NSSCertificate_Verify
    functionSourceFile: /src/nss/lib/pki/certificate.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate_Verify(\n    NSSCertificate *c,\n    NSSAlgorithmAndParameters
      *apOpt,\n    NSSItem *data,\n    NSSItem *signature,\n    NSSTime *timeOpt,\n
      \   NSSUsage *usage,\n    NSSPolicies *policiesOpt,\n    NSSCallback *uhh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/certificate.c:591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 9
    argNames:
    - c
    - apOpt
    - signature
    - timeOpt
    - usage
    - policiesOpt
    - uhh
    - rvOpt
    - arenaOpt
    argTypes:
    - NSSCertificate*
    - NSSAlgorithmAndParameters*
    - NSSItem*
    - NSSTime*
    - NSSUsage*
    - NSSPolicies*
    - NSSCallback*
    - NSSItem*
    - NSSArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 579
    functionDepth: 1
    functionLinenumber: 579
    functionLinenumberEnd: 593
    functionName: NSSCertificate_VerifyRecover
    functionSourceFile: /src/nss/lib/pki/certificate.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSCertificate_VerifyRecover(\n    NSSCertificate
      *c,\n    NSSAlgorithmAndParameters *apOpt,\n    NSSItem *signature,\n    NSSTime
      *timeOpt,\n    NSSUsage *usage,\n    NSSPolicies *policiesOpt,\n    NSSCallback
      *uhh,\n    NSSItem *rvOpt,\n    NSSArena *arenaOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/certificate.c:607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 9
    argNames:
    - c
    - apOpt
    - keyToWrap
    - timeOpt
    - usage
    - policiesOpt
    - uhh
    - rvOpt
    - arenaOpt
    argTypes:
    - NSSCertificate*
    - NSSAlgorithmAndParameters*
    - NSSSymmetricKey*
    - NSSTime*
    - NSSUsage*
    - NSSPolicies*
    - NSSCallback*
    - NSSItem*
    - NSSArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 595
    functionDepth: 1
    functionLinenumber: 595
    functionLinenumberEnd: 609
    functionName: NSSCertificate_WrapSymmetricKey
    functionSourceFile: /src/nss/lib/pki/certificate.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSCertificate_WrapSymmetricKey(\n    NSSCertificate
      *c,\n    NSSAlgorithmAndParameters *apOpt,\n    NSSSymmetricKey *keyToWrap,\n
      \   NSSTime *timeOpt,\n    NSSUsage *usage,\n    NSSPolicies *policiesOpt,\n
      \   NSSCallback *uhh,\n    NSSItem *rvOpt,\n    NSSArena *arenaOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/certificate.c:620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 611
    functionDepth: 1
    functionLinenumber: 611
    functionLinenumberEnd: 622
    functionName: "NSSCryptoContext *\nNSSCertificate_CreateCryptoContext(\n    NSSCertificate
      *c,\n    NSSAlgorithmAndParameters *apOpt,\n    NSSTime *timeOpt,\n    NSSUsage
      *usage,\n    NSSPolicies *policiesOpt,\n    NSSCallback *uhh)"
    functionSourceFile: /src/nss/lib/pki/certificate.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCryptoContext *\nNSSCertificate_CreateCryptoContext(\n
      \   NSSCertificate *c,\n    NSSAlgorithmAndParameters *apOpt,\n    NSSTime *timeOpt,\n
      \   NSSUsage *usage,\n    NSSPolicies *policiesOpt,\n    NSSCallback *uhh)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/pki/certificate.c:636,1
    - Dst: NSS_CK_ITEM_TO_ATTRIBUTE
      Src: /src/nss/lib/pki/certificate.c:639,1
    - Dst: NSS_CK_ITEM_TO_ATTRIBUTE
      Src: /src/nss/lib/pki/certificate.c:646,1
    - Dst: nssToken_FindObjectByTemplate
      Src: /src/nss/lib/pki/certificate.c:653,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 624
    functionDepth: 1
    functionLinenumber: 624
    functionLinenumberEnd: 658
    functionName: "NSSPublicKey *\nNSSCertificate_GetPublicKey(\n    NSSCertificate
      *c)"
    functionSourceFile: /src/nss/lib/pki/certificate.c
    functionUses: 0
    functionsReached:
    - nssToken_FindObjectByTemplate
    - NSS_CK_SET_ATTRIBUTE_ITEM
    - NSS_CK_ITEM_TO_ATTRIBUTE
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSPublicKey *\nNSSCertificate_GetPublicKey(\n    NSSCertificate
      *c)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/certificate.c:665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 660
    functionDepth: 1
    functionLinenumber: 660
    functionLinenumberEnd: 667
    functionName: "NSSPrivateKey *\nNSSCertificate_FindPrivateKey(\n    NSSCertificate
      *c,\n    NSSCallback *uhh)"
    functionSourceFile: /src/nss/lib/pki/certificate.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSPrivateKey *\nNSSCertificate_FindPrivateKey(\n    NSSCertificate
      *c,\n    NSSCallback *uhh)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssPKIObject_GetInstances
      Src: /src/nss/lib/pki/certificate.c:677,1
    - Dst: nssToken_IsPrivateKeyAvailable
      Src: /src/nss/lib/pki/certificate.c:683,1
    - Dst: nssCryptokiObjectArray_Destroy
      Src: /src/nss/lib/pki/certificate.c:687,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - c
    - uhh
    - statusOpt
    argTypes:
    - NSSCertificate*
    - NSSCallback*
    - PRStatus*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 669
    functionDepth: 1
    functionLinenumber: 669
    functionLinenumberEnd: 689
    functionName: NSSCertificate_IsPrivateKeyAvailable
    functionSourceFile: /src/nss/lib/pki/certificate.c
    functionUses: 0
    functionsReached:
    - nssPKIObject_GetInstances
    - nssToken_IsPrivateKeyAvailable
    - nssCryptokiObjectArray_Destroy
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate_IsPrivateKeyAvailable(\n    NSSCertificate
      *c,\n    NSSCallback *uhh,\n    PRStatus *statusOpt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssCertificate_GetDecoding
      Src: /src/nss/lib/pki/certificate.c:699,1
    - Dst: nssCertificate_GetDecoding
      Src: /src/nss/lib/pki/certificate.c:700,1
    - Dst: nssDecodedCert*::isNewerThan
      Src: /src/nss/lib/pki/certificate.c:706,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - v1
    - v2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 692
    functionDepth: 0
    functionLinenumber: 692
    functionLinenumberEnd: 708
    functionName: nssCertificate_SubjectListSort
    functionSourceFile: /src/nss/lib/pki/certificate.c
    functionUses: 0
    functionsReached:
    - nssCertificate_GetDecoding
    - nssDecodedCert*::isNewerThan
    linkageType: ''
    returnType: PRIntn
    signature: "PRIntn nssCertificate_SubjectListSort(\n    void *v1,\n    void *v2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/certificate.c:715,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - uc
    - statusOpt
    argTypes:
    - NSSUserCertificate*
    - PRStatus*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 710
    functionDepth: 1
    functionLinenumber: 710
    functionLinenumberEnd: 717
    functionName: NSSUserCertificate_IsStillPresent
    functionSourceFile: /src/nss/lib/pki/certificate.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSUserCertificate_IsStillPresent(\n    NSSUserCertificate
      *uc,\n    PRStatus *statusOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/certificate.c:731,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 9
    argNames:
    - uc
    - apOpt
    - data
    - timeOpt
    - usage
    - policiesOpt
    - uhh
    - rvOpt
    - arenaOpt
    argTypes:
    - NSSUserCertificate*
    - NSSAlgorithmAndParameters*
    - NSSItem*
    - NSSTime*
    - NSSUsage*
    - NSSPolicies*
    - NSSCallback*
    - NSSItem*
    - NSSArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 719
    functionDepth: 1
    functionLinenumber: 719
    functionLinenumberEnd: 733
    functionName: NSSUserCertificate_Decrypt
    functionSourceFile: /src/nss/lib/pki/certificate.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSUserCertificate_Decrypt(\n    NSSUserCertificate
      *uc,\n    NSSAlgorithmAndParameters *apOpt,\n    NSSItem *data,\n    NSSTime
      *timeOpt,\n    NSSUsage *usage,\n    NSSPolicies *policiesOpt,\n    NSSCallback
      *uhh,\n    NSSItem *rvOpt,\n    NSSArena *arenaOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/certificate.c:747,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 9
    argNames:
    - uc
    - apOpt
    - data
    - timeOpt
    - usage
    - policiesOpt
    - uhh
    - rvOpt
    - arenaOpt
    argTypes:
    - NSSUserCertificate*
    - NSSAlgorithmAndParameters*
    - NSSItem*
    - NSSTime*
    - NSSUsage*
    - NSSPolicies*
    - NSSCallback*
    - NSSItem*
    - NSSArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 735
    functionDepth: 1
    functionLinenumber: 735
    functionLinenumberEnd: 749
    functionName: NSSUserCertificate_Sign
    functionSourceFile: /src/nss/lib/pki/certificate.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSUserCertificate_Sign(\n    NSSUserCertificate
      *uc,\n    NSSAlgorithmAndParameters *apOpt,\n    NSSItem *data,\n    NSSTime
      *timeOpt,\n    NSSUsage *usage,\n    NSSPolicies *policiesOpt,\n    NSSCallback
      *uhh,\n    NSSItem *rvOpt,\n    NSSArena *arenaOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/certificate.c:763,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 9
    argNames:
    - uc
    - apOpt
    - data
    - timeOpt
    - usage
    - policiesOpt
    - uhh
    - rvOpt
    - arenaOpt
    argTypes:
    - NSSUserCertificate*
    - NSSAlgorithmAndParameters*
    - NSSItem*
    - NSSTime*
    - NSSUsage*
    - NSSPolicies*
    - NSSCallback*
    - NSSItem*
    - NSSArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 751
    functionDepth: 1
    functionLinenumber: 751
    functionLinenumberEnd: 765
    functionName: NSSUserCertificate_SignRecover
    functionSourceFile: /src/nss/lib/pki/certificate.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSUserCertificate_SignRecover(\n    NSSUserCertificate
      *uc,\n    NSSAlgorithmAndParameters *apOpt,\n    NSSItem *data,\n    NSSTime
      *timeOpt,\n    NSSUsage *usage,\n    NSSPolicies *policiesOpt,\n    NSSCallback
      *uhh,\n    NSSItem *rvOpt,\n    NSSArena *arenaOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/certificate.c:779,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 767
    functionDepth: 1
    functionLinenumber: 767
    functionLinenumberEnd: 781
    functionName: "NSSSymmetricKey *\nNSSUserCertificate_UnwrapSymmetricKey(\n    NSSUserCertificate
      *uc,\n    NSSAlgorithmAndParameters *apOpt,\n    NSSItem *wrappedKey,\n    NSSTime
      *timeOpt,\n    NSSUsage *usage,\n    NSSPolicies *policiesOpt,\n    NSSCallback
      *uhh,\n    NSSItem *rvOpt,\n    NSSArena *arenaOpt)"
    functionSourceFile: /src/nss/lib/pki/certificate.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSSymmetricKey *\nNSSUserCertificate_UnwrapSymmetricKey(\n
      \   NSSUserCertificate *uc,\n    NSSAlgorithmAndParameters *apOpt,\n    NSSItem
      *wrappedKey,\n    NSSTime *timeOpt,\n    NSSUsage *usage,\n    NSSPolicies *policiesOpt,\n
      \   NSSCallback *uhh,\n    NSSItem *rvOpt,\n    NSSArena *arenaOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/certificate.c:793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 783
    functionDepth: 1
    functionLinenumber: 783
    functionLinenumberEnd: 795
    functionName: "NSSSymmetricKey *\nNSSUserCertificate_DeriveSymmetricKey(\n    NSSUserCertificate
      *uc, /* provides private key */\n    NSSCertificate *c,      /* provides public
      key */\n    NSSAlgorithmAndParameters *apOpt,\n    NSSOID *target,\n    PRUint32
      keySizeOpt, /* zero for best allowed */\n    NSSOperations operations,\n    NSSCallback
      *uhh)"
    functionSourceFile: /src/nss/lib/pki/certificate.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSSymmetricKey *\nNSSUserCertificate_DeriveSymmetricKey(\n
      \   NSSUserCertificate *uc, /* provides private key */\n    NSSCertificate *c,
      \     /* provides public key */\n    NSSAlgorithmAndParameters *apOpt,\n    NSSOID
      *target,\n    PRUint32 keySizeOpt, /* zero for best allowed */\n    NSSOperations
      operations,\n    NSSCallback *uhh)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: nssCertificate_GetTrustDomain
      Src: /src/nss/lib/pki/certificate.c:806,1
    - Dst: nssCertificate_GetCryptoContext
      Src: /src/nss/lib/pki/certificate.c:807,1
    - Dst: nssArena_Create
      Src: /src/nss/lib/pki/certificate.c:808,1
    - Dst: nssPKIObject_Create
      Src: /src/nss/lib/pki/certificate.c:812,1
    - Dst: nss_ZNEW
      Src: /src/nss/lib/pki/certificate.c:816,1
    - Dst: nssUTF8_Duplicate
      Src: /src/nss/lib/pki/certificate.c:822,1
    - Dst: nssItem_Duplicate
      Src: /src/nss/lib/pki/certificate.c:823,1
    - Dst: nssItem_Duplicate
      Src: /src/nss/lib/pki/certificate.c:825,1
    - Dst: nssItem_Duplicate
      Src: /src/nss/lib/pki/certificate.c:828,1
    - Dst: nssPKIObject_Destroy
      Src: /src/nss/lib/pki/certificate.c:833,1
    - Dst: nssArena_Destroy
      Src: /src/nss/lib/pki/certificate.c:835,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 797
    functionDepth: 1
    functionLinenumber: 797
    functionLinenumberEnd: 837
    functionName: "nssSMIMEProfile *\nnssSMIMEProfile_Create(\n    NSSCertificate
      *cert,\n    NSSItem *profileTime,\n    NSSItem *profileData)"
    functionSourceFile: /src/nss/lib/pki/certificate.c
    functionUses: 0
    functionsReached:
    - nssArena_Create
    - nssItem_Duplicate
    - nss_ZNEW
    - nssPKIObject_Create
    - nssCertificate_GetTrustDomain
    - nssPKIObject_Destroy
    - nssArena_Destroy
    - nssCertificate_GetCryptoContext
    - nssUTF8_Duplicate
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssSMIMEProfile *\nnssSMIMEProfile_Create(\n    NSSCertificate
      *cert,\n    NSSItem *profileTime,\n    NSSItem *profileData)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssList_CreateIterator
      Src: /src/nss/lib/pki/certificate.c:848,1
    - Dst: nssListIterator_Start
      Src: /src/nss/lib/pki/certificate.c:852,1
    - Dst: nssListIterator_Next
      Src: /src/nss/lib/pki/certificate.c:854,1
    - Dst: nssListIterator_Finish
      Src: /src/nss/lib/pki/certificate.c:857,1
    - Dst: nssListIterator_Destroy
      Src: /src/nss/lib/pki/certificate.c:858,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - certList
    - arg
    argTypes:
    - nssList*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 840
    functionDepth: 1
    functionLinenumber: 840
    functionLinenumberEnd: 860
    functionName: nssCertificateList_DoCallback
    functionSourceFile: /src/nss/lib/pki/certificate.c
    functionUses: 0
    functionsReached:
    - nssListIterator_Destroy
    - nssList_CreateIterator
    - nssListIterator_Finish
    - nssListIterator_Next
    - nssListIterator_Start
    linkageType: ''
    returnType: NSS_EXTERN
    signature: "NSS_EXTERN nssCertificateList_DoCallback(\n    nssList *certList,\n
      \   PRStatus (*callback)(NSSCertificate *c, void *arg),\n    void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssCertificate_AddRef
      Src: /src/nss/lib/pki/certificate.c:865,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - c
    - a
    argTypes:
    - NSSCertificate*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 862
    functionDepth: 0
    functionLinenumber: 862
    functionLinenumberEnd: 867
    functionName: add_ref_callback
    functionSourceFile: /src/nss/lib/pki/certificate.c
    functionUses: 0
    functionsReached:
    - nssCertificate_AddRef
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus add_ref_callback(NSSCertificate *c, void *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssCertificateList_DoCallback
      Src: /src/nss/lib/pki/certificate.c:873,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - certList
    argTypes:
    - nssList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 869
    functionDepth: 2
    functionLinenumber: 869
    functionLinenumberEnd: 874
    functionName: nssCertificateList_AddReferences
    functionSourceFile: /src/nss/lib/pki/certificate.c
    functionUses: 4
    functionsReached:
    - nssCertificateList_DoCallback
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCertificateList_AddReferences(\n    nssList *certList)"
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 5
    argNames:
    - serverAuth
    - clientAuth
    - codeSigning
    - email
    - stepup
    argTypes:
    - nssTrustLevel
    - nssTrustLevel
    - nssTrustLevel
    - nssTrustLevel
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 883
    functionDepth: 0
    functionLinenumber: 883
    functionLinenumberEnd: 911
    functionName: nssTrust_IsSafeToIgnoreCertHash
    functionSourceFile: /src/nss/lib/pki/certificate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: "PRBool nssTrust_IsSafeToIgnoreCertHash(nssTrustLevel serverAuth,\n
      \                               nssTrustLevel clientAuth, nssTrustLevel codeSigning,\n
      \                               nssTrustLevel email, PRBool stepup)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NSSAlgorithm_DigestBuf
      Src: /src/nss/lib/pki/certificate.c:928,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/pki/certificate.c:935,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 5
    argNames:
    - hash
    - hashMech
    - cert
    - hashCache
    - hashCacheMech
    argTypes:
    - NSSItem*
    - CK_MECHANISM_TYPE
    - NSSItem*
    - NSSItem*
    - CK_MECHANISM_TYPE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 916
    functionDepth: 1
    functionLinenumber: 916
    functionLinenumberEnd: 938
    functionName: nssTrust_isValidHash
    functionSourceFile: /src/nss/lib/pki/certificate.c
    functionUses: 0
    functionsReached:
    - PORT_Memcmp
    - NSSAlgorithm_DigestBuf
    linkageType: ''
    returnType: PRBool
    signature: "PRBool nssTrust_isValidHash(const NSSItem *hash, CK_MECHANISM_TYPE
      hashMech,\n                     NSSItem *cert, NSSItem *hashCache,\n                     CK_MECHANISM_TYPE
      *hashCacheMech)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PR_ASSERT
      Src: /src/nss/lib/pki/certificate.c:960,1
    - Dst: nss_ZNEW
      Src: /src/nss/lib/pki/certificate.c:961,1
    - Dst: nssPKIObject_Lock
      Src: /src/nss/lib/pki/certificate.c:972,1
    - Dst: nssToken_GetTrustOrder
      Src: /src/nss/lib/pki/certificate.c:975,1
    - Dst: nssCryptokiTrust_GetAttributes
      Src: /src/nss/lib/pki/certificate.c:976,1
    - Dst: nssPKIObject_Unlock
      Src: /src/nss/lib/pki/certificate.c:985,1
    - Dst: nssTrust_IsSafeToIgnoreCertHash
      Src: /src/nss/lib/pki/certificate.c:995,1
    - Dst: nssTrust_isValidHash
      Src: /src/nss/lib/pki/certificate.c:999,1
    - Dst: nssPKIObject_Unlock
      Src: /src/nss/lib/pki/certificate.c:1002,1
    - Dst: nssPKIObject_Unlock
      Src: /src/nss/lib/pki/certificate.c:1024,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 42
    argCount: 2
    argNames:
    - object
    - certData
    argTypes:
    - nssPKIObject*
    - NSSItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 940
    functionDepth: 2
    functionLinenumber: 940
    functionLinenumberEnd: 1026
    functionName: nssTrust_Create
    functionSourceFile: /src/nss/lib/pki/certificate.c
    functionUses: 1
    functionsReached:
    - nssTrust_isValidHash
    - nssCryptokiTrust_GetAttributes
    - nssTrust_IsSafeToIgnoreCertHash
    - nssToken_GetTrustOrder
    - nss_ZNEW
    - PR_ASSERT
    - nssPKIObject_Unlock
    - nssPKIObject_Lock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nnssTrust_Create(\n    nssPKIObject *object,\n    NSSItem
      *certData)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssPKIObject_AddRef
      Src: /src/nss/lib/pki/certificate.c:1032,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - trust
    argTypes:
    - NSSTrust*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1028
    functionDepth: 0
    functionLinenumber: 1028
    functionLinenumberEnd: 1035
    functionName: nssTrust_AddRef
    functionSourceFile: /src/nss/lib/pki/certificate.c
    functionUses: 2
    functionsReached:
    - nssPKIObject_AddRef
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: 'NSS_IMPLEMENT *

      nssTrust_AddRef(NSSTrust *trust)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssPKIObject_Destroy
      Src: /src/nss/lib/pki/certificate.c:1041,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - trust
    argTypes:
    - NSSTrust*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1037
    functionDepth: 1
    functionLinenumber: 1037
    functionLinenumberEnd: 1044
    functionName: nssTrust_Destroy
    functionSourceFile: /src/nss/lib/pki/certificate.c
    functionUses: 2
    functionsReached:
    - nssPKIObject_Destroy
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nssTrust_Destroy(NSSTrust *trust)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssPKIObject_AddRef
      Src: /src/nss/lib/pki/certificate.c:1050,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1053
      start: 1046
    functionDepth: 0
    functionLinenumber: 1046
    functionLinenumberEnd: 1053
    functionName: 'nssSMIMEProfile *

      nssSMIMEProfile_AddRef(nssSMIMEProfile *profile)'
    functionSourceFile: /src/nss/lib/pki/certificate.c
    functionUses: 0
    functionsReached:
    - nssPKIObject_AddRef
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: 'NSS_IMPLEMENT nssSMIMEProfile *

      nssSMIMEProfile_AddRef(nssSMIMEProfile *profile)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssPKIObject_Destroy
      Src: /src/nss/lib/pki/certificate.c:1059,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - profile
    argTypes:
    - nssSMIMEProfile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1055
    functionDepth: 1
    functionLinenumber: 1055
    functionLinenumberEnd: 1062
    functionName: nssSMIMEProfile_Destroy
    functionSourceFile: /src/nss/lib/pki/certificate.c
    functionUses: 2
    functionsReached:
    - nssPKIObject_Destroy
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nssSMIMEProfile_Destroy(nssSMIMEProfile *profile)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PR_ASSERT
      Src: /src/nss/lib/pki/certificate.c:1070,1
    - Dst: nss_ZNEW
      Src: /src/nss/lib/pki/certificate.c:1071,1
    - Dst: nssCryptokiCRL_GetAttributes
      Src: /src/nss/lib/pki/certificate.c:1077,1
    - Dst: nssPKIObject_Destroy
      Src: /src/nss/lib/pki/certificate.c:1087,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - object
    argTypes:
    - nssPKIObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1092
      start: 1064
    functionDepth: 1
    functionLinenumber: 1064
    functionLinenumberEnd: 1092
    functionName: nssCRL_Create
    functionSourceFile: /src/nss/lib/pki/certificate.c
    functionUses: 0
    functionsReached:
    - nssCryptokiCRL_GetAttributes
    - nss_ZNEW
    - nssPKIObject_Destroy
    - PR_ASSERT
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: 'NSS_IMPLEMENT *

      nssCRL_Create(nssPKIObject *object)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssPKIObject_AddRef
      Src: /src/nss/lib/pki/certificate.c:1098,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - crl
    argTypes:
    - NSSCRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1101
      start: 1094
    functionDepth: 0
    functionLinenumber: 1094
    functionLinenumberEnd: 1101
    functionName: nssCRL_AddRef
    functionSourceFile: /src/nss/lib/pki/certificate.c
    functionUses: 0
    functionsReached:
    - nssPKIObject_AddRef
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: 'NSS_IMPLEMENT *

      nssCRL_AddRef(NSSCRL *crl)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssPKIObject_Destroy
      Src: /src/nss/lib/pki/certificate.c:1107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - crl
    argTypes:
    - NSSCRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1103
    functionDepth: 1
    functionLinenumber: 1103
    functionLinenumberEnd: 1110
    functionName: nssCRL_Destroy
    functionSourceFile: /src/nss/lib/pki/certificate.c
    functionUses: 0
    functionsReached:
    - nssPKIObject_Destroy
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nssCRL_Destroy(NSSCRL *crl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssPKIObject_DeleteStoredObject
      Src: /src/nss/lib/pki/certificate.c:1117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - crl
    - uhh
    argTypes:
    - NSSCRL*
    - NSSCallback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1118
      start: 1112
    functionDepth: 1
    functionLinenumber: 1112
    functionLinenumberEnd: 1118
    functionName: nssCRL_DeleteStoredObject
    functionSourceFile: /src/nss/lib/pki/certificate.c
    functionUses: 0
    functionsReached:
    - nssPKIObject_DeleteStoredObject
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCRL_DeleteStoredObject(\n    NSSCRL *crl,\n    NSSCallback
      *uhh)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - crl
    argTypes:
    - NSSCRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1128
      start: 1120
    functionDepth: 0
    functionLinenumber: 1120
    functionLinenumberEnd: 1128
    functionName: nssCRL_GetEncoding
    functionSourceFile: /src/nss/lib/pki/certificate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: 'NSS_IMPLEMENT *

      nssCRL_GetEncoding(NSSCRL *crl)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/symmkey.c:14,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mk
    argTypes:
    - NSSSymmetricKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 16
    functionName: NSSSymmetricKey_Destroy
    functionSourceFile: /src/nss/lib/pki/symmkey.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT NSSSymmetricKey_Destroy(NSSSymmetricKey *mk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/symmkey.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mk
    - uhh
    argTypes:
    - NSSSymmetricKey*
    - NSSCallback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 25
    functionName: NSSSymmetricKey_DeleteStoredObject
    functionSourceFile: /src/nss/lib/pki/symmkey.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSSymmetricKey_DeleteStoredObject(\n    NSSSymmetricKey
      *mk,\n    NSSCallback *uhh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/symmkey.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mk
    argTypes:
    - NSSSymmetricKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 32
    functionName: NSSSymmetricKey_GetKeyLength
    functionSourceFile: /src/nss/lib/pki/symmkey.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT NSSSymmetricKey_GetKeyLength(NSSSymmetricKey *mk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/symmkey.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mk
    argTypes:
    - NSSSymmetricKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: NSSSymmetricKey_GetKeyStrength
    functionSourceFile: /src/nss/lib/pki/symmkey.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT NSSSymmetricKey_GetKeyStrength(NSSSymmetricKey *mk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/symmkey.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mk
    argTypes:
    - NSSSymmetricKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: NSSSymmetricKey_IsStillPresent
    functionSourceFile: /src/nss/lib/pki/symmkey.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT NSSSymmetricKey_IsStillPresent(NSSSymmetricKey *mk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/symmkey.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 55
    functionName: "NSSTrustDomain *\nNSSSymmetricKey_GetTrustDomain(\n    NSSSymmetricKey
      *mk,\n    PRStatus *statusOpt)"
    functionSourceFile: /src/nss/lib/pki/symmkey.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSTrustDomain *\nNSSSymmetricKey_GetTrustDomain(\n
      \   NSSSymmetricKey *mk,\n    PRStatus *statusOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/symmkey.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mk
    - statusOpt
    argTypes:
    - NSSSymmetricKey*
    - PRStatus*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 64
    functionName: NSSSymmetricKey_GetToken
    functionSourceFile: /src/nss/lib/pki/symmkey.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSSymmetricKey_GetToken(\n    NSSSymmetricKey *mk,\n
      \   PRStatus *statusOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/symmkey.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mk
    - statusOpt
    argTypes:
    - NSSSymmetricKey*
    - PRStatus*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 73
    functionName: NSSSymmetricKey_GetSlot
    functionSourceFile: /src/nss/lib/pki/symmkey.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSSymmetricKey_GetSlot(\n    NSSSymmetricKey *mk,\n
      \   PRStatus *statusOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/symmkey.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mk
    - statusOpt
    argTypes:
    - NSSSymmetricKey*
    - PRStatus*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 82
    functionName: NSSSymmetricKey_GetModule
    functionSourceFile: /src/nss/lib/pki/symmkey.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSSymmetricKey_GetModule(\n    NSSSymmetricKey *mk,\n
      \   PRStatus *statusOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/symmkey.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - mk
    - apOpt
    - data
    - uhh
    - rvOpt
    - arenaOpt
    argTypes:
    - NSSSymmetricKey*
    - NSSAlgorithmAndParameters*
    - NSSItem*
    - NSSCallback*
    - NSSItem*
    - NSSArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 95
    functionName: NSSSymmetricKey_Encrypt
    functionSourceFile: /src/nss/lib/pki/symmkey.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSSymmetricKey_Encrypt(\n    NSSSymmetricKey *mk,\n
      \   NSSAlgorithmAndParameters *apOpt,\n    NSSItem *data,\n    NSSCallback *uhh,\n
      \   NSSItem *rvOpt,\n    NSSArena *arenaOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/symmkey.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - mk
    - apOpt
    - encryptedData
    - uhh
    - rvOpt
    - arenaOpt
    argTypes:
    - NSSSymmetricKey*
    - NSSAlgorithmAndParameters*
    - NSSItem*
    - NSSCallback*
    - NSSItem*
    - NSSArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 108
    functionName: NSSSymmetricKey_Decrypt
    functionSourceFile: /src/nss/lib/pki/symmkey.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSSymmetricKey_Decrypt(\n    NSSSymmetricKey *mk,\n
      \   NSSAlgorithmAndParameters *apOpt,\n    NSSItem *encryptedData,\n    NSSCallback
      *uhh,\n    NSSItem *rvOpt,\n    NSSArena *arenaOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/symmkey.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - mk
    - apOpt
    - data
    - uhh
    - rvOpt
    - arenaOpt
    argTypes:
    - NSSSymmetricKey*
    - NSSAlgorithmAndParameters*
    - NSSItem*
    - NSSCallback*
    - NSSItem*
    - NSSArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 121
    functionName: NSSSymmetricKey_Sign
    functionSourceFile: /src/nss/lib/pki/symmkey.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSSymmetricKey_Sign(\n    NSSSymmetricKey *mk,\n
      \   NSSAlgorithmAndParameters *apOpt,\n    NSSItem *data,\n    NSSCallback *uhh,\n
      \   NSSItem *rvOpt,\n    NSSArena *arenaOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/symmkey.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - mk
    - apOpt
    - data
    - uhh
    - rvOpt
    - arenaOpt
    argTypes:
    - NSSSymmetricKey*
    - NSSAlgorithmAndParameters*
    - NSSItem*
    - NSSCallback*
    - NSSItem*
    - NSSArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 134
    functionName: NSSSymmetricKey_SignRecover
    functionSourceFile: /src/nss/lib/pki/symmkey.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSSymmetricKey_SignRecover(\n    NSSSymmetricKey
      *mk,\n    NSSAlgorithmAndParameters *apOpt,\n    NSSItem *data,\n    NSSCallback
      *uhh,\n    NSSItem *rvOpt,\n    NSSArena *arenaOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/symmkey.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - mk
    - apOpt
    - data
    - signature
    - uhh
    argTypes:
    - NSSSymmetricKey*
    - NSSAlgorithmAndParameters*
    - NSSItem*
    - NSSItem*
    - NSSCallback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 146
    functionName: NSSSymmetricKey_Verify
    functionSourceFile: /src/nss/lib/pki/symmkey.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSSymmetricKey_Verify(\n    NSSSymmetricKey *mk,\n
      \   NSSAlgorithmAndParameters *apOpt,\n    NSSItem *data,\n    NSSItem *signature,\n
      \   NSSCallback *uhh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/symmkey.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - mk
    - apOpt
    - signature
    - uhh
    - rvOpt
    - arenaOpt
    argTypes:
    - NSSSymmetricKey*
    - NSSAlgorithmAndParameters*
    - NSSItem*
    - NSSCallback*
    - NSSItem*
    - NSSArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 159
    functionName: NSSSymmetricKey_VerifyRecover
    functionSourceFile: /src/nss/lib/pki/symmkey.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSSymmetricKey_VerifyRecover(\n    NSSSymmetricKey
      *mk,\n    NSSAlgorithmAndParameters *apOpt,\n    NSSItem *signature,\n    NSSCallback
      *uhh,\n    NSSItem *rvOpt,\n    NSSArena *arenaOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/symmkey.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - wrappingKey
    - apOpt
    - keyToWrap
    - uhh
    - rvOpt
    - arenaOpt
    argTypes:
    - NSSSymmetricKey*
    - NSSAlgorithmAndParameters*
    - NSSSymmetricKey*
    - NSSCallback*
    - NSSItem*
    - NSSArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 172
    functionName: NSSSymmetricKey_WrapSymmetricKey
    functionSourceFile: /src/nss/lib/pki/symmkey.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSSymmetricKey_WrapSymmetricKey(\n    NSSSymmetricKey
      *wrappingKey,\n    NSSAlgorithmAndParameters *apOpt,\n    NSSSymmetricKey *keyToWrap,\n
      \   NSSCallback *uhh,\n    NSSItem *rvOpt,\n    NSSArena *arenaOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/symmkey.c:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - wrappingKey
    - apOpt
    - keyToWrap
    - uhh
    - rvOpt
    - arenaOpt
    argTypes:
    - NSSSymmetricKey*
    - NSSAlgorithmAndParameters*
    - NSSPrivateKey*
    - NSSCallback*
    - NSSItem*
    - NSSArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 185
    functionName: NSSSymmetricKey_WrapPrivateKey
    functionSourceFile: /src/nss/lib/pki/symmkey.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSSymmetricKey_WrapPrivateKey(\n    NSSSymmetricKey
      *wrappingKey,\n    NSSAlgorithmAndParameters *apOpt,\n    NSSPrivateKey *keyToWrap,\n
      \   NSSCallback *uhh,\n    NSSItem *rvOpt,\n    NSSArena *arenaOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/symmkey.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 199
    functionName: "NSSSymmetricKey *\nNSSSymmetricKey_UnwrapSymmetricKey(\n    NSSSymmetricKey
      *wrappingKey,\n    NSSAlgorithmAndParameters *apOpt,\n    NSSItem *wrappedKey,\n
      \   NSSOID *target,\n    PRUint32 keySizeOpt,\n    NSSOperations operations,\n
      \   NSSCallback *uhh)"
    functionSourceFile: /src/nss/lib/pki/symmkey.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSSymmetricKey *\nNSSSymmetricKey_UnwrapSymmetricKey(\n
      \   NSSSymmetricKey *wrappingKey,\n    NSSAlgorithmAndParameters *apOpt,\n    NSSItem
      *wrappedKey,\n    NSSOID *target,\n    PRUint32 keySizeOpt,\n    NSSOperations
      operations,\n    NSSCallback *uhh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/symmkey.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 215
    functionName: "NSSPrivateKey *\nNSSSymmetricKey_UnwrapPrivateKey(\n    NSSSymmetricKey
      *wrappingKey,\n    NSSAlgorithmAndParameters *apOpt,\n    NSSItem *wrappedKey,\n
      \   NSSUTF8 *labelOpt,\n    NSSItem *keyIDOpt,\n    PRBool persistant,\n    PRBool
      sensitive,\n    NSSToken *destinationOpt,\n    NSSCallback *uhh)"
    functionSourceFile: /src/nss/lib/pki/symmkey.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSPrivateKey *\nNSSSymmetricKey_UnwrapPrivateKey(\n
      \   NSSSymmetricKey *wrappingKey,\n    NSSAlgorithmAndParameters *apOpt,\n    NSSItem
      *wrappedKey,\n    NSSUTF8 *labelOpt,\n    NSSItem *keyIDOpt,\n    PRBool persistant,\n
      \   PRBool sensitive,\n    NSSToken *destinationOpt,\n    NSSCallback *uhh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/symmkey.c:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 228
    functionName: "NSSSymmetricKey *\nNSSSymmetricKey_DeriveSymmetricKey(\n    NSSSymmetricKey
      *originalKey,\n    NSSAlgorithmAndParameters *apOpt,\n    NSSOID *target,\n
      \   PRUint32 keySizeOpt,\n    NSSOperations operations,\n    NSSCallback *uhh)"
    functionSourceFile: /src/nss/lib/pki/symmkey.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSSymmetricKey *\nNSSSymmetricKey_DeriveSymmetricKey(\n
      \   NSSSymmetricKey *originalKey,\n    NSSAlgorithmAndParameters *apOpt,\n    NSSOID
      *target,\n    PRUint32 keySizeOpt,\n    NSSOperations operations,\n    NSSCallback
      *uhh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/symmkey.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 238
    functionName: "NSSCryptoContext *\nNSSSymmetricKey_CreateCryptoContext(\n    NSSSymmetricKey
      *mk,\n    NSSAlgorithmAndParameters *apOpt,\n    NSSCallback *uhh)"
    functionSourceFile: /src/nss/lib/pki/symmkey.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCryptoContext *\nNSSSymmetricKey_CreateCryptoContext(\n
      \   NSSSymmetricKey *mk,\n    NSSAlgorithmAndParameters *apOpt,\n    NSSCallback
      *uhh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/asymmkey.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - vk
    argTypes:
    - NSSPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 21
    functionName: NSSPrivateKey_Destroy
    functionSourceFile: /src/nss/lib/pki/asymmkey.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSPrivateKey_Destroy(\n    NSSPrivateKey *vk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/asymmkey.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - vk
    - uhh
    argTypes:
    - NSSPrivateKey*
    - NSSCallback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 30
    functionName: NSSPrivateKey_DeleteStoredObject
    functionSourceFile: /src/nss/lib/pki/asymmkey.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSPrivateKey_DeleteStoredObject(\n    NSSPrivateKey
      *vk,\n    NSSCallback *uhh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/asymmkey.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - vk
    argTypes:
    - NSSPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 38
    functionName: NSSPrivateKey_GetSignatureLength
    functionSourceFile: /src/nss/lib/pki/asymmkey.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSPrivateKey_GetSignatureLength(\n    NSSPrivateKey
      *vk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/asymmkey.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - vk
    argTypes:
    - NSSPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 46
    functionName: NSSPrivateKey_GetPrivateModulusLength
    functionSourceFile: /src/nss/lib/pki/asymmkey.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSPrivateKey_GetPrivateModulusLength(\n    NSSPrivateKey
      *vk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/asymmkey.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - vk
    - statusOpt
    argTypes:
    - NSSPrivateKey*
    - PRStatus*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 55
    functionName: NSSPrivateKey_IsStillPresent
    functionSourceFile: /src/nss/lib/pki/asymmkey.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSPrivateKey_IsStillPresent(\n    NSSPrivateKey *vk,\n
      \   PRStatus *statusOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/asymmkey.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - vk
    - ap
    - passwordOpt
    - uhhOpt
    - rvOpt
    - arenaOpt
    argTypes:
    - NSSPrivateKey*
    - NSSAlgorithmAndParameters*
    - NSSItem*
    - NSSCallback*
    - NSSItem*
    - NSSArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 68
    functionName: NSSPrivateKey_Encode
    functionSourceFile: /src/nss/lib/pki/asymmkey.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSPrivateKey_Encode(\n    NSSPrivateKey *vk,\n    NSSAlgorithmAndParameters
      *ap,\n    NSSItem *passwordOpt, /* NULL will cause a callback; \"\" for no password
      */\n    NSSCallback *uhhOpt,\n    NSSItem *rvOpt,\n    NSSArena *arenaOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/asymmkey.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 77
    functionName: "NSSTrustDomain *\nNSSPrivateKey_GetTrustDomain(\n    NSSPrivateKey
      *vk,\n    PRStatus *statusOpt)"
    functionSourceFile: /src/nss/lib/pki/asymmkey.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSTrustDomain *\nNSSPrivateKey_GetTrustDomain(\n    NSSPrivateKey
      *vk,\n    PRStatus *statusOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/asymmkey.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - vk
    argTypes:
    - NSSPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 84
    functionName: NSSPrivateKey_GetToken
    functionSourceFile: /src/nss/lib/pki/asymmkey.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: 'NSS_IMPLEMENT *

      NSSPrivateKey_GetToken(NSSPrivateKey *vk)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/asymmkey.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - vk
    argTypes:
    - NSSPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 91
    functionName: NSSPrivateKey_GetSlot
    functionSourceFile: /src/nss/lib/pki/asymmkey.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: 'NSS_IMPLEMENT *

      NSSPrivateKey_GetSlot(NSSPrivateKey *vk)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/asymmkey.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - vk
    argTypes:
    - NSSPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 99
    functionName: NSSPrivateKey_GetModule
    functionSourceFile: /src/nss/lib/pki/asymmkey.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSPrivateKey_GetModule(\n    NSSPrivateKey *vk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/asymmkey.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - vk
    - apOpt
    - encryptedData
    - uhh
    - rvOpt
    - arenaOpt
    argTypes:
    - NSSPrivateKey*
    - NSSAlgorithmAndParameters*
    - NSSItem*
    - NSSCallback*
    - NSSItem*
    - NSSArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 112
    functionName: NSSPrivateKey_Decrypt
    functionSourceFile: /src/nss/lib/pki/asymmkey.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSPrivateKey_Decrypt(\n    NSSPrivateKey *vk,\n
      \   NSSAlgorithmAndParameters *apOpt,\n    NSSItem *encryptedData,\n    NSSCallback
      *uhh,\n    NSSItem *rvOpt,\n    NSSArena *arenaOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/asymmkey.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - vk
    - apOpt
    - data
    - uhh
    - rvOpt
    - arenaOpt
    argTypes:
    - NSSPrivateKey*
    - NSSAlgorithmAndParameters*
    - NSSItem*
    - NSSCallback*
    - NSSItem*
    - NSSArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 125
    functionName: NSSPrivateKey_Sign
    functionSourceFile: /src/nss/lib/pki/asymmkey.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSPrivateKey_Sign(\n    NSSPrivateKey *vk,\n    NSSAlgorithmAndParameters
      *apOpt,\n    NSSItem *data,\n    NSSCallback *uhh,\n    NSSItem *rvOpt,\n    NSSArena
      *arenaOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/asymmkey.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - vk
    - apOpt
    - data
    - uhh
    - rvOpt
    - arenaOpt
    argTypes:
    - NSSPrivateKey*
    - NSSAlgorithmAndParameters*
    - NSSItem*
    - NSSCallback*
    - NSSItem*
    - NSSArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 138
    functionName: NSSPrivateKey_SignRecover
    functionSourceFile: /src/nss/lib/pki/asymmkey.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSPrivateKey_SignRecover(\n    NSSPrivateKey *vk,\n
      \   NSSAlgorithmAndParameters *apOpt,\n    NSSItem *data,\n    NSSCallback *uhh,\n
      \   NSSItem *rvOpt,\n    NSSArena *arenaOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/asymmkey.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 149
    functionName: "NSSSymmetricKey *\nNSSPrivateKey_UnwrapSymmetricKey(\n    NSSPrivateKey
      *vk,\n    NSSAlgorithmAndParameters *apOpt,\n    NSSItem *wrappedKey,\n    NSSCallback
      *uhh)"
    functionSourceFile: /src/nss/lib/pki/asymmkey.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSSymmetricKey *\nNSSPrivateKey_UnwrapSymmetricKey(\n
      \   NSSPrivateKey *vk,\n    NSSAlgorithmAndParameters *apOpt,\n    NSSItem *wrappedKey,\n
      \   NSSCallback *uhh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/asymmkey.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 163
    functionName: "NSSSymmetricKey *\nNSSPrivateKey_DeriveSymmetricKey(\n    NSSPrivateKey
      *vk,\n    NSSPublicKey *bk,\n    NSSAlgorithmAndParameters *apOpt,\n    NSSOID
      *target,\n    PRUint32 keySizeOpt, /* zero for best allowed */\n    NSSOperations
      operations,\n    NSSCallback *uhh)"
    functionSourceFile: /src/nss/lib/pki/asymmkey.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSSymmetricKey *\nNSSPrivateKey_DeriveSymmetricKey(\n
      \   NSSPrivateKey *vk,\n    NSSPublicKey *bk,\n    NSSAlgorithmAndParameters
      *apOpt,\n    NSSOID *target,\n    PRUint32 keySizeOpt, /* zero for best allowed
      */\n    NSSOperations operations,\n    NSSCallback *uhh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/asymmkey.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 173
    functionName: "NSSPublicKey *\nNSSPrivateKey_FindPublicKey(\n    NSSPrivateKey
      *vk\n    /* { don't need the callback here, right? } */\n)"
    functionSourceFile: /src/nss/lib/pki/asymmkey.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSPublicKey *\nNSSPrivateKey_FindPublicKey(\n    NSSPrivateKey
      *vk\n    /* { don't need the callback here, right? } */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/asymmkey.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 183
    functionName: "NSSCryptoContext *\nNSSPrivateKey_CreateCryptoContext(\n    NSSPrivateKey
      *vk,\n    NSSAlgorithmAndParameters *apOpt,\n    NSSCallback *uhh)"
    functionSourceFile: /src/nss/lib/pki/asymmkey.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCryptoContext *\nNSSPrivateKey_CreateCryptoContext(\n
      \   NSSPrivateKey *vk,\n    NSSAlgorithmAndParameters *apOpt,\n    NSSCallback
      *uhh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/asymmkey.c:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 194
    functionName: "NSSCertificate **\nNSSPrivateKey_FindCertificates(\n    NSSPrivateKey
      *vk,\n    NSSCertificate *rvOpt[],\n    PRUint32 maximumOpt, /* 0 for no max
      */\n    NSSArena *arenaOpt)"
    functionSourceFile: /src/nss/lib/pki/asymmkey.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate **\nNSSPrivateKey_FindCertificates(\n
      \   NSSPrivateKey *vk,\n    NSSCertificate *rvOpt[],\n    PRUint32 maximumOpt,
      /* 0 for no max */\n    NSSArena *arenaOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/asymmkey.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 205
    functionName: "NSSCertificate *\nNSSPrivateKey_FindBestCertificate(\n    NSSPrivateKey
      *vk,\n    NSSTime *timeOpt,\n    NSSUsage *usageOpt,\n    NSSPolicies *policiesOpt)"
    functionSourceFile: /src/nss/lib/pki/asymmkey.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate *\nNSSPrivateKey_FindBestCertificate(\n
      \   NSSPrivateKey *vk,\n    NSSTime *timeOpt,\n    NSSUsage *usageOpt,\n    NSSPolicies
      *policiesOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/asymmkey.c:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bk
    argTypes:
    - NSSPublicKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 212
    functionName: NSSPublicKey_Destroy
    functionSourceFile: /src/nss/lib/pki/asymmkey.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT NSSPublicKey_Destroy(NSSPublicKey *bk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/asymmkey.c:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bk
    - uhh
    argTypes:
    - NSSPublicKey*
    - NSSCallback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 221
    functionName: NSSPublicKey_DeleteStoredObject
    functionSourceFile: /src/nss/lib/pki/asymmkey.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSPublicKey_DeleteStoredObject(\n    NSSPublicKey *bk,\n
      \   NSSCallback *uhh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/asymmkey.c:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - bk
    - ap
    - uhhOpt
    - rvOpt
    - arenaOpt
    argTypes:
    - NSSPublicKey*
    - NSSAlgorithmAndParameters*
    - NSSCallback*
    - NSSItem*
    - NSSArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 233
    functionName: NSSPublicKey_Encode
    functionSourceFile: /src/nss/lib/pki/asymmkey.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSPublicKey_Encode(\n    NSSPublicKey *bk,\n    NSSAlgorithmAndParameters
      *ap,\n    NSSCallback *uhhOpt,\n    NSSItem *rvOpt,\n    NSSArena *arenaOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/asymmkey.c:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 242
    functionName: "NSSTrustDomain *\nNSSPublicKey_GetTrustDomain(\n    NSSPublicKey
      *bk,\n    PRStatus *statusOpt)"
    functionSourceFile: /src/nss/lib/pki/asymmkey.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSTrustDomain *\nNSSPublicKey_GetTrustDomain(\n    NSSPublicKey
      *bk,\n    PRStatus *statusOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/asymmkey.c:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bk
    - statusOpt
    argTypes:
    - NSSPublicKey*
    - PRStatus*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 251
    functionName: NSSPublicKey_GetToken
    functionSourceFile: /src/nss/lib/pki/asymmkey.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSPublicKey_GetToken(\n    NSSPublicKey *bk,\n    PRStatus
      *statusOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/asymmkey.c:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bk
    - statusOpt
    argTypes:
    - NSSPublicKey*
    - PRStatus*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 260
    functionName: NSSPublicKey_GetSlot
    functionSourceFile: /src/nss/lib/pki/asymmkey.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSPublicKey_GetSlot(\n    NSSPublicKey *bk,\n    PRStatus
      *statusOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/asymmkey.c:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bk
    - statusOpt
    argTypes:
    - NSSPublicKey*
    - PRStatus*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 269
    functionName: NSSPublicKey_GetModule
    functionSourceFile: /src/nss/lib/pki/asymmkey.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSPublicKey_GetModule(\n    NSSPublicKey *bk,\n
      \   PRStatus *statusOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/asymmkey.c:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - bk
    - apOpt
    - data
    - uhh
    - rvOpt
    - arenaOpt
    argTypes:
    - NSSPublicKey*
    - NSSAlgorithmAndParameters*
    - NSSItem*
    - NSSCallback*
    - NSSItem*
    - NSSArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 282
    functionName: NSSPublicKey_Encrypt
    functionSourceFile: /src/nss/lib/pki/asymmkey.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSPublicKey_Encrypt(\n    NSSPublicKey *bk,\n    NSSAlgorithmAndParameters
      *apOpt,\n    NSSItem *data,\n    NSSCallback *uhh,\n    NSSItem *rvOpt,\n    NSSArena
      *arenaOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/asymmkey.c:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - bk
    - apOpt
    - data
    - signature
    - uhh
    argTypes:
    - NSSPublicKey*
    - NSSAlgorithmAndParameters*
    - NSSItem*
    - NSSItem*
    - NSSCallback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 294
    functionName: NSSPublicKey_Verify
    functionSourceFile: /src/nss/lib/pki/asymmkey.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSPublicKey_Verify(\n    NSSPublicKey *bk,\n    NSSAlgorithmAndParameters
      *apOpt,\n    NSSItem *data,\n    NSSItem *signature,\n    NSSCallback *uhh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/asymmkey.c:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - bk
    - apOpt
    - signature
    - uhh
    - rvOpt
    - arenaOpt
    argTypes:
    - NSSPublicKey*
    - NSSAlgorithmAndParameters*
    - NSSItem*
    - NSSCallback*
    - NSSItem*
    - NSSArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 307
    functionName: NSSPublicKey_VerifyRecover
    functionSourceFile: /src/nss/lib/pki/asymmkey.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSPublicKey_VerifyRecover(\n    NSSPublicKey *bk,\n
      \   NSSAlgorithmAndParameters *apOpt,\n    NSSItem *signature,\n    NSSCallback
      *uhh,\n    NSSItem *rvOpt,\n    NSSArena *arenaOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/asymmkey.c:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - bk
    - apOpt
    - keyToWrap
    - uhh
    - rvOpt
    - arenaOpt
    argTypes:
    - NSSPublicKey*
    - NSSAlgorithmAndParameters*
    - NSSSymmetricKey*
    - NSSCallback*
    - NSSItem*
    - NSSArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 320
    functionName: NSSPublicKey_WrapSymmetricKey
    functionSourceFile: /src/nss/lib/pki/asymmkey.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSPublicKey_WrapSymmetricKey(\n    NSSPublicKey
      *bk,\n    NSSAlgorithmAndParameters *apOpt,\n    NSSSymmetricKey *keyToWrap,\n
      \   NSSCallback *uhh,\n    NSSItem *rvOpt,\n    NSSArena *arenaOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/asymmkey.c:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 330
    functionName: "NSSCryptoContext *\nNSSPublicKey_CreateCryptoContext(\n    NSSPublicKey
      *bk,\n    NSSAlgorithmAndParameters *apOpt,\n    NSSCallback *uhh)"
    functionSourceFile: /src/nss/lib/pki/asymmkey.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCryptoContext *\nNSSPublicKey_CreateCryptoContext(\n
      \   NSSPublicKey *bk,\n    NSSAlgorithmAndParameters *apOpt,\n    NSSCallback
      *uhh)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/asymmkey.c:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 341
    functionName: "NSSCertificate **\nNSSPublicKey_FindCertificates(\n    NSSPublicKey
      *bk,\n    NSSCertificate *rvOpt[],\n    PRUint32 maximumOpt, /* 0 for no max
      */\n    NSSArena *arenaOpt)"
    functionSourceFile: /src/nss/lib/pki/asymmkey.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate **\nNSSPublicKey_FindCertificates(\n
      \   NSSPublicKey *bk,\n    NSSCertificate *rvOpt[],\n    PRUint32 maximumOpt,
      /* 0 for no max */\n    NSSArena *arenaOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/asymmkey.c:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 352
    functionName: "NSSCertificate *\nNSSPublicKey_FindBestCertificate(\n    NSSPublicKey
      *bk,\n    NSSTime *timeOpt,\n    NSSUsage *usageOpt,\n    NSSPolicies *policiesOpt)"
    functionSourceFile: /src/nss/lib/pki/asymmkey.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate *\nNSSPublicKey_FindBestCertificate(\n
      \   NSSPublicKey *bk,\n    NSSTime *timeOpt,\n    NSSUsage *usageOpt,\n    NSSPolicies
      *policiesOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/asymmkey.c:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 361
    functionName: "NSSPrivateKey *\nNSSPublicKey_FindPrivateKey(\n    NSSPublicKey
      *bk,\n    NSSCallback *uhh)"
    functionSourceFile: /src/nss/lib/pki/asymmkey.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSPrivateKey *\nNSSPublicKey_FindPrivateKey(\n    NSSPublicKey
      *bk,\n    NSSCallback *uhh)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PZ_EnterMonitor
      Src: /src/nss/lib/pki/pkibase.c:22,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/pki/pkibase.c:25,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pki/pkibase.c:28,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - object
    argTypes:
    - nssPKIObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 30
    functionName: nssPKIObject_Lock
    functionSourceFile: /src/nss/lib/pki/pkibase.c
    functionUses: 3
    functionsReached:
    - PORT_Assert
    - PZ_EnterMonitor
    - PZ_Lock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nssPKIObject_Lock(nssPKIObject *object)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PZ_ExitMonitor
      Src: /src/nss/lib/pki/pkibase.c:37,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/pki/pkibase.c:40,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pki/pkibase.c:43,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - object
    argTypes:
    - nssPKIObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 45
    functionName: nssPKIObject_Unlock
    functionSourceFile: /src/nss/lib/pki/pkibase.c
    functionUses: 3
    functionsReached:
    - PORT_Assert
    - PZ_ExitMonitor
    - PZ_Unlock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nssPKIObject_Unlock(nssPKIObject *object)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PZ_NewMonitor
      Src: /src/nss/lib/pki/pkibase.c:53,1
    - Dst: PZ_NewLock
      Src: /src/nss/lib/pki/pkibase.c:56,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pki/pkibase.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - object
    - lockType
    argTypes:
    - nssPKIObject*
    - nssPKILockType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 62
    functionName: nssPKIObject_NewLock
    functionSourceFile: /src/nss/lib/pki/pkibase.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PZ_NewMonitor
    - PZ_NewLock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nssPKIObject_NewLock(nssPKIObject *object, nssPKILockType
      lockType)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PZ_DestroyMonitor
      Src: /src/nss/lib/pki/pkibase.c:69,1
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/pki/pkibase.c:73,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pki/pkibase.c:77,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - object
    argTypes:
    - nssPKIObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 79
    functionName: nssPKIObject_DestroyLock
    functionSourceFile: /src/nss/lib/pki/pkibase.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - PZ_DestroyLock
    - PZ_DestroyMonitor
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nssPKIObject_DestroyLock(nssPKIObject *object)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: nssArena_Mark
      Src: /src/nss/lib/pki/pkibase.c:94,1
    - Dst: nssArena_Create
      Src: /src/nss/lib/pki/pkibase.c:96,1
    - Dst: nss_ZNEW
      Src: /src/nss/lib/pki/pkibase.c:101,1
    - Dst: nssPKIObject_NewLock
      Src: /src/nss/lib/pki/pkibase.c:108,1
    - Dst: nssPKIObject_AddInstance
      Src: /src/nss/lib/pki/pkibase.c:112,1
    - Dst: PR_ATOMIC_INCREMENT
      Src: /src/nss/lib/pki/pkibase.c:116,1
    - Dst: nssArena_Unmark
      Src: /src/nss/lib/pki/pkibase.c:118,1
    - Dst: nssArena_Release
      Src: /src/nss/lib/pki/pkibase.c:123,1
    - Dst: nssArena_Destroy
      Src: /src/nss/lib/pki/pkibase.c:125,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 128
    functionName: "nssPKIObject *\nnssPKIObject_Create(\n    NSSArena *arenaOpt,\n
      \   nssCryptokiObject *instanceOpt,\n    NSSTrustDomain *td,\n    NSSCryptoContext
      *cc,\n    nssPKILockType lockType)"
    functionSourceFile: /src/nss/lib/pki/pkibase.c
    functionUses: 0
    functionsReached:
    - nssArena_Create
    - PR_ATOMIC_INCREMENT
    - nss_ZNEW
    - nssArena_Unmark
    - nssPKIObject_NewLock
    - nssArena_Mark
    - nssPKIObject_AddInstance
    - nssArena_Destroy
    - nssArena_Release
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssPKIObject *\nnssPKIObject_Create(\n    NSSArena *arenaOpt,\n
      \   nssCryptokiObject *instanceOpt,\n    NSSTrustDomain *td,\n    NSSCryptoContext
      *cc,\n    nssPKILockType lockType)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_ASSERT
      Src: /src/nss/lib/pki/pkibase.c:135,1
    - Dst: PR_ATOMIC_DECREMENT
      Src: /src/nss/lib/pki/pkibase.c:136,1
    - Dst: nssCryptokiObject_Destroy
      Src: /src/nss/lib/pki/pkibase.c:138,1
    - Dst: nssPKIObject_DestroyLock
      Src: /src/nss/lib/pki/pkibase.c:140,1
    - Dst: nssArena_Destroy
      Src: /src/nss/lib/pki/pkibase.c:141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - object
    argTypes:
    - nssPKIObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 145
    functionName: nssPKIObject_Destroy
    functionSourceFile: /src/nss/lib/pki/pkibase.c
    functionUses: 7
    functionsReached:
    - PR_ATOMIC_DECREMENT
    - nssPKIObject_DestroyLock
    - PR_ASSERT
    - nssCryptokiObject_Destroy
    - nssArena_Destroy
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssPKIObject_Destroy(\n    nssPKIObject *object)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_ATOMIC_INCREMENT
      Src: /src/nss/lib/pki/pkibase.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 153
    functionName: "nssPKIObject *\nnssPKIObject_AddRef(\n    nssPKIObject *object)"
    functionSourceFile: /src/nss/lib/pki/pkibase.c
    functionUses: 0
    functionsReached:
    - PR_ATOMIC_INCREMENT
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssPKIObject *\nnssPKIObject_AddRef(\n    nssPKIObject
      *object)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nssPKIObject_Lock
      Src: /src/nss/lib/pki/pkibase.c:162,1
    - Dst: nss_ZNEWARRAY
      Src: /src/nss/lib/pki/pkibase.c:164,1
    - Dst: nssCryptokiObject_Equal
      Src: /src/nss/lib/pki/pkibase.c:171,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/pki/pkibase.c:182,1
    - Dst: nssPKIObject_Unlock
      Src: /src/nss/lib/pki/pkibase.c:184,1
    - Dst: nssCryptokiObject_Destroy
      Src: /src/nss/lib/pki/pkibase.c:186,1
    - Dst: nss_ZREALLOCARRAY
      Src: /src/nss/lib/pki/pkibase.c:189,1
    - Dst: nssPKIObject_Unlock
      Src: /src/nss/lib/pki/pkibase.c:197,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - object
    - instance
    argTypes:
    - nssPKIObject*
    - nssCryptokiObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 199
    functionName: nssPKIObject_AddInstance
    functionSourceFile: /src/nss/lib/pki/pkibase.c
    functionUses: 4
    functionsReached:
    - nss_ZREALLOCARRAY
    - nss_ZNEWARRAY
    - nss_ZFreeIf
    - nssPKIObject_Unlock
    - nssCryptokiObject_Destroy
    - nssCryptokiObject_Equal
    - nssPKIObject_Lock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssPKIObject_AddInstance(\n    nssPKIObject *object,\n
      \   nssCryptokiObject *instance)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssPKIObject_Lock
      Src: /src/nss/lib/pki/pkibase.c:209,1
    - Dst: nssCryptokiObject_Equal
      Src: /src/nss/lib/pki/pkibase.c:211,1
    - Dst: nssPKIObject_Unlock
      Src: /src/nss/lib/pki/pkibase.c:216,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - object
    - instance
    argTypes:
    - nssPKIObject*
    - nssCryptokiObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 218
    functionName: nssPKIObject_HasInstance
    functionSourceFile: /src/nss/lib/pki/pkibase.c
    functionUses: 0
    functionsReached:
    - nssPKIObject_Unlock
    - nssPKIObject_Lock
    - nssCryptokiObject_Equal
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssPKIObject_HasInstance(\n    nssPKIObject *object,\n
      \   nssCryptokiObject *instance)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nssPKIObject_Lock
      Src: /src/nss/lib/pki/pkibase.c:227,1
    - Dst: nssPKIObject_Unlock
      Src: /src/nss/lib/pki/pkibase.c:229,1
    - Dst: nss_ZREALLOCARRAY
      Src: /src/nss/lib/pki/pkibase.c:241,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/pki/pkibase.c:248,1
    - Dst: nssCryptokiObject_Destroy
      Src: /src/nss/lib/pki/pkibase.c:250,1
    - Dst: nssPKIObject_Unlock
      Src: /src/nss/lib/pki/pkibase.c:251,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - object
    - token
    argTypes:
    - nssPKIObject*
    - NSSToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 253
    functionName: nssPKIObject_RemoveInstanceForToken
    functionSourceFile: /src/nss/lib/pki/pkibase.c
    functionUses: 1
    functionsReached:
    - nss_ZREALLOCARRAY
    - nss_ZFreeIf
    - nssPKIObject_Unlock
    - nssCryptokiObject_Destroy
    - nssPKIObject_Lock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssPKIObject_RemoveInstanceForToken(\n    nssPKIObject
      *object,\n    NSSToken *token)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssPKIObject_Lock
      Src: /src/nss/lib/pki/pkibase.c:267,1
    - Dst: nssToken_DeleteStoredObject
      Src: /src/nss/lib/pki/pkibase.c:270,1
    - Dst: nssCryptokiObject_Destroy
      Src: /src/nss/lib/pki/pkibase.c:273,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/pki/pkibase.c:279,1
    - Dst: nssPKIObject_Unlock
      Src: /src/nss/lib/pki/pkibase.c:284,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - object
    - uhh
    - isFriendly
    argTypes:
    - nssPKIObject*
    - NSSCallback*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 258
    functionDepth: 2
    functionLinenumber: 258
    functionLinenumberEnd: 286
    functionName: nssPKIObject_DeleteStoredObject
    functionSourceFile: /src/nss/lib/pki/pkibase.c
    functionUses: 2
    functionsReached:
    - nss_ZFreeIf
    - nssPKIObject_Unlock
    - nssCryptokiObject_Destroy
    - nssPKIObject_Lock
    - nssToken_DeleteStoredObject
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssPKIObject_DeleteStoredObject(\n    nssPKIObject *object,\n
      \   NSSCallback *uhh,\n    PRBool isFriendly)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nssPKIObject_Lock
      Src: /src/nss/lib/pki/pkibase.c:294,1
    - Dst: nss_ZNEWARRAY
      Src: /src/nss/lib/pki/pkibase.c:296,1
    - Dst: nssToken_AddRef
      Src: /src/nss/lib/pki/pkibase.c:300,1
    - Dst: nssPKIObject_Unlock
      Src: /src/nss/lib/pki/pkibase.c:304,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 288
    functionDepth: 2
    functionLinenumber: 288
    functionLinenumberEnd: 308
    functionName: nssPKIObject_GetTokens
    functionSourceFile: /src/nss/lib/pki/pkibase.c
    functionUses: 0
    functionsReached:
    - nss_ZNEWARRAY
    - nssPKIObject_Unlock
    - nssPKIObject_Lock
    - nssToken_AddRef
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT **\nnssPKIObject_GetTokens(\n    nssPKIObject *object,\n
      \   PRStatus *statusOpt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssPKIObject_Lock
      Src: /src/nss/lib/pki/pkibase.c:317,1
    - Dst: nssUTF8_Duplicate
      Src: /src/nss/lib/pki/pkibase.c:322,1
    - Dst: nssPKIObject_Unlock
      Src: /src/nss/lib/pki/pkibase.c:326,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - object
    - tokenOpt
    argTypes:
    - nssPKIObject*
    - NSSToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 310
    functionDepth: 2
    functionLinenumber: 310
    functionLinenumberEnd: 328
    functionName: nssPKIObject_GetNicknameForToken
    functionSourceFile: /src/nss/lib/pki/pkibase.c
    functionUses: 1
    functionsReached:
    - nssPKIObject_Unlock
    - nssPKIObject_Lock
    - nssUTF8_Duplicate
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nnssPKIObject_GetNicknameForToken(\n    nssPKIObject
      *object,\n    NSSToken *tokenOpt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssPKIObject_Lock
      Src: /src/nss/lib/pki/pkibase.c:337,1
    - Dst: nssPKIObject_Unlock
      Src: /src/nss/lib/pki/pkibase.c:339,1
    - Dst: nss_ZNEWARRAY
      Src: /src/nss/lib/pki/pkibase.c:342,1
    - Dst: nssCryptokiObject_Clone
      Src: /src/nss/lib/pki/pkibase.c:346,1
    - Dst: nssPKIObject_Unlock
      Src: /src/nss/lib/pki/pkibase.c:349,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 330
    functionDepth: 2
    functionLinenumber: 330
    functionLinenumberEnd: 351
    functionName: "nssCryptokiObject **\nnssPKIObject_GetInstances(\n    nssPKIObject
      *object)"
    functionSourceFile: /src/nss/lib/pki/pkibase.c
    functionUses: 0
    functionsReached:
    - nss_ZNEWARRAY
    - nssPKIObject_Unlock
    - nssPKIObject_Lock
    - nssCryptokiObject_Clone
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCryptokiObject **\nnssPKIObject_GetInstances(\n    nssPKIObject
      *object)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: STAN_GetCERTCertificate
      Src: /src/nss/lib/pki/pkibase.c:361,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/pki/pkibase.c:363,1
    - Dst: nssCertificate_Destroy
      Src: /src/nss/lib/pki/pkibase.c:367,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/pki/pkibase.c:369,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - certs
    argTypes:
    - NSSCertificate**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 353
    functionDepth: 6
    functionLinenumber: 353
    functionLinenumberEnd: 371
    functionName: nssCertificateArray_Destroy
    functionSourceFile: /src/nss/lib/pki/pkibase.c
    functionUses: 7
    functionsReached:
    - STAN_GetCERTCertificate
    - nss_ZFreeIf
    - nssCertificate_Destroy
    - CERT_DestroyCertificate
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCertificateArray_Destroy(\n    NSSCertificate **certs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssCertificateArray_Destroy
      Src: /src/nss/lib/pki/pkibase.c:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - certs
    argTypes:
    - NSSCertificate**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 373
    functionDepth: 7
    functionLinenumber: 373
    functionLinenumberEnd: 378
    functionName: NSSCertificateArray_Destroy
    functionSourceFile: /src/nss/lib/pki/pkibase.c
    functionUses: 0
    functionsReached:
    - nssCertificateArray_Destroy
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificateArray_Destroy(\n    NSSCertificate **certs)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nss_ZREALLOCARRAY
      Src: /src/nss/lib/pki/pkibase.c:396,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/pki/pkibase.c:398,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/pki/pkibase.c:399,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/pki/pkibase.c:405,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 412
    functionName: "NSSCertificate **\nnssCertificateArray_Join(\n    NSSCertificate
      **certs1,\n    NSSCertificate **certs2)"
    functionSourceFile: /src/nss/lib/pki/pkibase.c
    functionUses: 0
    functionsReached:
    - nss_ZFreeIf
    - nss_ZREALLOCARRAY
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate **\nnssCertificateArray_Join(\n    NSSCertificate
      **certs1,\n    NSSCertificate **certs2)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: NSSTime_Now
      Src: /src/nss/lib/pki/pkibase.c:432,1
    - Dst: nssCertificate_GetDecoding
      Src: /src/nss/lib/pki/pkibase.c:441,1
    - Dst: nssDecodedCert*::matchUsage
      Src: /src/nss/lib/pki/pkibase.c:444,1
    - Dst: nssCertificate_AddRef
      Src: /src/nss/lib/pki/pkibase.c:449,1
    - Dst: nssCertificate_Destroy
      Src: /src/nss/lib/pki/pkibase.c:461,1
    - Dst: nssCertificate_AddRef
      Src: /src/nss/lib/pki/pkibase.c:462,1
    - Dst: nssDecodedCert*::isValidAtTime
      Src: /src/nss/lib/pki/pkibase.c:472,1
    - Dst: nssDecodedCert*::isValidAtTime
      Src: /src/nss/lib/pki/pkibase.c:475,1
    - Dst: nssDecodedCert*::isValidAtTime
      Src: /src/nss/lib/pki/pkibase.c:481,1
    - Dst: nssCertificate_Destroy
      Src: /src/nss/lib/pki/pkibase.c:483,1
    - Dst: nssCertificate_AddRef
      Src: /src/nss/lib/pki/pkibase.c:484,1
    - Dst: nssDecodedCert*::isTrustedForUsage
      Src: /src/nss/lib/pki/pkibase.c:493,1
    - Dst: nssDecodedCert*::isTrustedForUsage
      Src: /src/nss/lib/pki/pkibase.c:495,1
    - Dst: nssDecodedCert*::isTrustedForUsage
      Src: /src/nss/lib/pki/pkibase.c:500,1
    - Dst: nssCertificate_Destroy
      Src: /src/nss/lib/pki/pkibase.c:502,1
    - Dst: nssCertificate_AddRef
      Src: /src/nss/lib/pki/pkibase.c:503,1
    - Dst: nssDecodedCert*::isNewerThan
      Src: /src/nss/lib/pki/pkibase.c:510,1
    - Dst: nssCertificate_Destroy
      Src: /src/nss/lib/pki/pkibase.c:511,1
    - Dst: nssCertificate_AddRef
      Src: /src/nss/lib/pki/pkibase.c:512,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 414
    functionDepth: 6
    functionLinenumber: 414
    functionLinenumberEnd: 520
    functionName: "NSSCertificate *\nnssCertificateArray_FindBestCertificate(\n    NSSCertificate
      **certs,\n    NSSTime *timeOpt,\n    const NSSUsage *usage,\n    NSSPolicies
      *policiesOpt)"
    functionSourceFile: /src/nss/lib/pki/pkibase.c
    functionUses: 0
    functionsReached:
    - nssDecodedCert*::matchUsage
    - nssDecodedCert*::isTrustedForUsage
    - nssCertificate_Destroy
    - nssCertificate_GetDecoding
    - nssDecodedCert*::isValidAtTime
    - nssCertificate_AddRef
    - NSSTime_Now
    - nssDecodedCert*::isNewerThan
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate *\nnssCertificateArray_FindBestCertificate(\n
      \   NSSCertificate **certs,\n    NSSTime *timeOpt,\n    const NSSUsage *usage,\n
      \   NSSPolicies *policiesOpt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - certs
    - arg
    argTypes:
    - NSSCertificate**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 539
    functionName: nssCertificateArray_Traverse
    functionSourceFile: /src/nss/lib/pki/pkibase.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCertificateArray_Traverse(\n    NSSCertificate **certs,\n
      \   PRStatus (*callback)(NSSCertificate *c, void *arg),\n    void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssCRL_Destroy
      Src: /src/nss/lib/pki/pkibase.c:548,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/pki/pkibase.c:550,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - crls
    argTypes:
    - NSSCRL**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 541
    functionDepth: 2
    functionLinenumber: 541
    functionLinenumberEnd: 552
    functionName: nssCRLArray_Destroy
    functionSourceFile: /src/nss/lib/pki/pkibase.c
    functionUses: 0
    functionsReached:
    - nssCRL_Destroy
    - nss_ZFreeIf
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCRLArray_Destroy(\n    NSSCRL **crls)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssArena_Create
      Src: /src/nss/lib/pki/pkibase.c:617,1
    - Dst: nss_ZNEW
      Src: /src/nss/lib/pki/pkibase.c:621,1
    - Dst: PR_INIT_CLIST
      Src: /src/nss/lib/pki/pkibase.c:625,1
    - Dst: nssArena_Destroy
      Src: /src/nss/lib/pki/pkibase.c:632,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - td
    - ccOpt
    - lockType
    argTypes:
    - NSSTrustDomain*
    - NSSCryptoContext*
    - nssPKILockType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 609
    functionDepth: 1
    functionLinenumber: 609
    functionLinenumberEnd: 634
    functionName: nssPKIObjectCollection_Create
    functionSourceFile: /src/nss/lib/pki/pkibase.c
    functionUses: 0
    functionsReached:
    - nssArena_Create
    - nssArena_Destroy
    - PR_INIT_CLIST
    - nss_ZNEW
    linkageType: ''
    returnType: nssPKIObjectCollection
    signature: "nssPKIObjectCollection *\nnssPKIObjectCollection_Create(\n    NSSTrustDomain
      *td,\n    NSSCryptoContext *ccOpt,\n    nssPKILockType lockType)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/pki/pkibase.c:644,1
    - Dst: nssPKIObject_Destroy
      Src: /src/nss/lib/pki/pkibase.c:650,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/pki/pkibase.c:652,1
    - Dst: nssArena_Destroy
      Src: /src/nss/lib/pki/pkibase.c:655,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - collection
    argTypes:
    - nssPKIObjectCollection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 636
    functionDepth: 3
    functionLinenumber: 636
    functionLinenumberEnd: 657
    functionName: nssPKIObjectCollection_Destroy
    functionSourceFile: /src/nss/lib/pki/pkibase.c
    functionUses: 6
    functionsReached:
    - nssArena_Destroy
    - PR_NEXT_LINK
    - nssPKIObject_Destroy
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssPKIObjectCollection_Destroy(\n    nssPKIObjectCollection
      *collection)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - collection
    argTypes:
    - nssPKIObjectCollection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 659
    functionDepth: 0
    functionLinenumber: 659
    functionLinenumberEnd: 664
    functionName: nssPKIObjectCollection_Count
    functionSourceFile: /src/nss/lib/pki/pkibase.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssPKIObjectCollection_Count(\n    nssPKIObjectCollection
      *collection)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nss_ZNEW
      Src: /src/nss/lib/pki/pkibase.c:672,1
    - Dst: nssPKIObject_AddRef
      Src: /src/nss/lib/pki/pkibase.c:677,1
    - Dst: PR_INIT_CLIST
      Src: /src/nss/lib/pki/pkibase.c:679,1
    - Dst: PR_INSERT_BEFORE
      Src: /src/nss/lib/pki/pkibase.c:680,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - collection
    - object
    argTypes:
    - nssPKIObjectCollection*
    - nssPKIObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 666
    functionDepth: 1
    functionLinenumber: 666
    functionLinenumberEnd: 683
    functionName: nssPKIObjectCollection_AddObject
    functionSourceFile: /src/nss/lib/pki/pkibase.c
    functionUses: 1
    functionsReached:
    - PR_INSERT_BEFORE
    - nssPKIObject_AddRef
    - PR_INIT_CLIST
    - nss_ZNEW
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssPKIObjectCollection_AddObject(\n    nssPKIObjectCollection
      *collection,\n    nssPKIObject *object)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/pki/pkibase.c:692,1
    - Dst: nssPKIObject_HasInstance
      Src: /src/nss/lib/pki/pkibase.c:695,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/pki/pkibase.c:698,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - collection
    - instance
    argTypes:
    - nssPKIObjectCollection*
    - nssCryptokiObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 685
    functionDepth: 3
    functionLinenumber: 685
    functionLinenumberEnd: 701
    functionName: find_instance_in_collection
    functionSourceFile: /src/nss/lib/pki/pkibase.c
    functionUses: 0
    functionsReached:
    - nssPKIObject_HasInstance
    - PR_NEXT_LINK
    linkageType: ''
    returnType: pkiObjectCollectionNode
    signature: "pkiObjectCollectionNode *\nfind_instance_in_collection(\n    nssPKIObjectCollection
      *collection,\n    nssCryptokiObject *instance)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/pki/pkibase.c:712,1
    - Dst: nssItem_Equal
      Src: /src/nss/lib/pki/pkibase.c:716,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/pki/pkibase.c:723,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - collection
    - uid
    argTypes:
    - nssPKIObjectCollection*
    - NSSItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 703
    functionDepth: 1
    functionLinenumber: 703
    functionLinenumberEnd: 726
    functionName: find_object_in_collection
    functionSourceFile: /src/nss/lib/pki/pkibase.c
    functionUses: 0
    functionsReached:
    - nssItem_Equal
    - PR_NEXT_LINK
    linkageType: ''
    returnType: pkiObjectCollectionNode
    signature: "pkiObjectCollectionNode *\nfind_object_in_collection(\n    nssPKIObjectCollection
      *collection,\n    NSSItem *uid)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: nsslibc_memset
      Src: /src/nss/lib/pki/pkibase.c:739,1
    - Dst: find_instance_in_collection
      Src: /src/nss/lib/pki/pkibase.c:746,1
    - Dst: nssCryptokiObject_Destroy
      Src: /src/nss/lib/pki/pkibase.c:751,1
    - Dst: nssArena_Mark
      Src: /src/nss/lib/pki/pkibase.c:755,1
    - Dst: find_object_in_collection
      Src: /src/nss/lib/pki/pkibase.c:768,1
    - Dst: nssPKIObject_AddInstance
      Src: /src/nss/lib/pki/pkibase.c:771,1
    - Dst: nss_ZNEW
      Src: /src/nss/lib/pki/pkibase.c:774,1
    - Dst: nssPKIObject_Create
      Src: /src/nss/lib/pki/pkibase.c:778,1
    - Dst: PR_INIT_CLIST
      Src: /src/nss/lib/pki/pkibase.c:788,1
    - Dst: PR_INSERT_BEFORE
      Src: /src/nss/lib/pki/pkibase.c:789,1
    - Dst: nssArena_Unmark
      Src: /src/nss/lib/pki/pkibase.c:793,1
    - Dst: nssArena_Release
      Src: /src/nss/lib/pki/pkibase.c:797,1
    - Dst: nssCryptokiObject_Destroy
      Src: /src/nss/lib/pki/pkibase.c:799,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 51
    argCount: 3
    argNames:
    - collection
    - instance
    - foundIt
    argTypes:
    - nssPKIObjectCollection*
    - nssCryptokiObject*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 728
    functionDepth: 4
    functionLinenumber: 728
    functionLinenumberEnd: 801
    functionName: add_object_instance
    functionSourceFile: /src/nss/lib/pki/pkibase.c
    functionUses: 0
    functionsReached:
    - find_object_in_collection
    - find_instance_in_collection
    - PR_INSERT_BEFORE
    - nss_ZNEW
    - nssArena_Unmark
    - nssCryptokiObject_Destroy
    - nssArena_Mark
    - nssPKIObject_Create
    - nssPKIObject_AddInstance
    - PR_INIT_CLIST
    - nssArena_Release
    - nsslibc_memset
    linkageType: ''
    returnType: pkiObjectCollectionNode
    signature: "pkiObjectCollectionNode *\nadd_object_instance(\n    nssPKIObjectCollection
      *collection,\n    nssCryptokiObject *instance,\n    PRBool *foundIt)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: add_object_instance
      Src: /src/nss/lib/pki/pkibase.c:816,1
    - Dst: nssCryptokiObject_Destroy
      Src: /src/nss/lib/pki/pkibase.c:823,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - collection
    - instances
    - numInstances
    argTypes:
    - nssPKIObjectCollection*
    - nssCryptokiObject**
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 803
    functionDepth: 5
    functionLinenumber: 803
    functionLinenumberEnd: 830
    functionName: nssPKIObjectCollection_AddInstances
    functionSourceFile: /src/nss/lib/pki/pkibase.c
    functionUses: 4
    functionsReached:
    - nssCryptokiObject_Destroy
    - add_object_instance
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssPKIObjectCollection_AddInstances(\n    nssPKIObjectCollection
      *collection,\n    nssCryptokiObject **instances,\n    PRUint32 numInstances)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_REMOVE_LINK
      Src: /src/nss/lib/pki/pkibase.c:837,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - collection
    - node
    argTypes:
    - nssPKIObjectCollection*
    - pkiObjectCollectionNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 832
    functionDepth: 1
    functionLinenumber: 832
    functionLinenumberEnd: 839
    functionName: nssPKIObjectCollection_RemoveNode
    functionSourceFile: /src/nss/lib/pki/pkibase.c
    functionUses: 0
    functionsReached:
    - PR_REMOVE_LINK
    linkageType: ''
    returnType: void
    signature: "void nssPKIObjectCollection_RemoveNode(\n    nssPKIObjectCollection
      *collection,\n    pkiObjectCollectionNode *node)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/pki/pkibase.c:848,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/pki/pkibase.c:857,1
    - Dst: nssPKIObjectCollection_RemoveNode
      Src: /src/nss/lib/pki/pkibase.c:859,1
    - Dst: nssPKIObject_AddRef
      Src: /src/nss/lib/pki/pkibase.c:865,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/pki/pkibase.c:866,1
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/pkibase.c:869,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - collection
    - rvObjects
    - rvSize
    argTypes:
    - nssPKIObjectCollection*
    - nssPKIObject**
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 841
    functionDepth: 2
    functionLinenumber: 841
    functionLinenumberEnd: 872
    functionName: nssPKIObjectCollection_GetObjects
    functionSourceFile: /src/nss/lib/pki/pkibase.c
    functionUses: 0
    functionsReached:
    - nssPKIObject_AddRef
    - PR_NEXT_LINK
    - nss_SetError
    - nssPKIObjectCollection_RemoveNode
    linkageType: ''
    returnType: PRStatus
    signature: "PRStatus nssPKIObjectCollection_GetObjects(\n    nssPKIObjectCollection
      *collection,\n    nssPKIObject **rvObjects,\n    PRUint32 rvSize)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/pki/pkibase.c:879,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/pki/pkibase.c:886,1
    - Dst: nssPKIObjectCollection_RemoveNode
      Src: /src/nss/lib/pki/pkibase.c:888,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/pki/pkibase.c:911,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - collection
    - callback
    argTypes:
    - nssPKIObjectCollection*
    - nssPKIObjectCallback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 874
    functionDepth: 2
    functionLinenumber: 874
    functionLinenumberEnd: 914
    functionName: nssPKIObjectCollection_Traverse
    functionSourceFile: /src/nss/lib/pki/pkibase.c
    functionUses: 1
    functionsReached:
    - PR_NEXT_LINK
    - nssPKIObjectCollection_RemoveNode
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssPKIObjectCollection_Traverse(\n    nssPKIObjectCollection
      *collection,\n    nssPKIObjectCallback *callback)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: add_object_instance
      Src: /src/nss/lib/pki/pkibase.c:923,1
    - Dst: nssPKIObject_Destroy
      Src: /src/nss/lib/pki/pkibase.c:932,1
    - Dst: nssPKIObjectCollection_RemoveNode
      Src: /src/nss/lib/pki/pkibase.c:933,1
    - Dst: STAN_ForceCERTCertificateUpdate
      Src: /src/nss/lib/pki/pkibase.c:946,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - collection
    - instance
    argTypes:
    - nssPKIObjectCollection*
    - nssCryptokiObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 916
    functionDepth: 5
    functionLinenumber: 916
    functionLinenumberEnd: 949
    functionName: nssPKIObjectCollection_AddInstanceAsObject
    functionSourceFile: /src/nss/lib/pki/pkibase.c
    functionUses: 1
    functionsReached:
    - nssPKIObjectCollection_RemoveNode
    - nssPKIObject_Destroy
    - STAN_ForceCERTCertificateUpdate
    - add_object_instance
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssPKIObjectCollection_AddInstanceAsObject(\n    nssPKIObjectCollection
      *collection,\n    nssCryptokiObject *instance)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STAN_GetCERTCertificate
      Src: /src/nss/lib/pki/pkibase.c:960,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/pki/pkibase.c:962,1
    - Dst: nssCertificate_Destroy
      Src: /src/nss/lib/pki/pkibase.c:966,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - o
    argTypes:
    - nssPKIObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 955
    functionDepth: 6
    functionLinenumber: 955
    functionLinenumberEnd: 967
    functionName: cert_destroyObject
    functionSourceFile: /src/nss/lib/pki/pkibase.c
    functionUses: 0
    functionsReached:
    - STAN_GetCERTCertificate
    - nssCertificate_Destroy
    - CERT_DestroyCertificate
    linkageType: ''
    returnType: void
    signature: void cert_destroyObject(nssPKIObject *o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssCertificate_GetEncoding
      Src: /src/nss/lib/pki/pkibase.c:978,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - o
    - uid
    argTypes:
    - nssPKIObject*
    - NSSItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 969
    functionDepth: 1
    functionLinenumber: 969
    functionLinenumberEnd: 987
    functionName: cert_getUIDFromObject
    functionSourceFile: /src/nss/lib/pki/pkibase.c
    functionUses: 0
    functionsReached:
    - nssCertificate_GetEncoding
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus cert_getUIDFromObject(nssPKIObject *o, NSSItem *uid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssCryptokiCertificate_GetAttributes
      Src: /src/nss/lib/pki/pkibase.c:999,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - instance
    - uid
    - arena
    argTypes:
    - nssCryptokiObject*
    - NSSItem*
    - NSSArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1008
      start: 989
    functionDepth: 1
    functionLinenumber: 989
    functionLinenumberEnd: 1008
    functionName: cert_getUIDFromInstance
    functionSourceFile: /src/nss/lib/pki/pkibase.c
    functionUses: 0
    functionsReached:
    - nssCryptokiCertificate_GetAttributes
    linkageType: ''
    returnType: PRStatus
    signature: "PRStatus cert_getUIDFromInstance(nssCryptokiObject *instance, NSSItem
      *uid,\n                        NSSArena *arena)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssCertificate_Create
      Src: /src/nss/lib/pki/pkibase.c:1014,1
    - Dst: nssTrustDomain_AddCertsToCache
      Src: /src/nss/lib/pki/pkibase.c:1025,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - o
    argTypes:
    - nssPKIObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 1010
    functionDepth: 6
    functionLinenumber: 1010
    functionLinenumberEnd: 1028
    functionName: cert_createObject
    functionSourceFile: /src/nss/lib/pki/pkibase.c
    functionUses: 0
    functionsReached:
    - nssTrustDomain_AddCertsToCache
    - nssCertificate_Create
    linkageType: ''
    returnType: nssPKIObject
    signature: 'nssPKIObject *

      cert_createObject(nssPKIObject *o)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssPKIObjectCollection_Create
      Src: /src/nss/lib/pki/pkibase.c:1036,1
    - Dst: nssPKIObjectCollection_AddObject
      Src: /src/nss/lib/pki/pkibase.c:1048,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1030
    functionDepth: 2
    functionLinenumber: 1030
    functionLinenumberEnd: 1052
    functionName: "nssPKIObjectCollection *\nnssCertificateCollection_Create(\n    NSSTrustDomain
      *td,\n    NSSCertificate **certsOpt)"
    functionSourceFile: /src/nss/lib/pki/pkibase.c
    functionUses: 0
    functionsReached:
    - nssPKIObjectCollection_Create
    - nssPKIObjectCollection_AddObject
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssPKIObjectCollection *\nnssCertificateCollection_Create(\n
      \   NSSTrustDomain *td,\n    NSSCertificate **certsOpt)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PR_MIN
      Src: /src/nss/lib/pki/pkibase.c:1070,1
    - Dst: nss_ZNEWARRAY
      Src: /src/nss/lib/pki/pkibase.c:1073,1
    - Dst: nssPKIObjectCollection_GetObjects
      Src: /src/nss/lib/pki/pkibase.c:1079,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/pki/pkibase.c:1084,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 1054
    functionDepth: 3
    functionLinenumber: 1054
    functionLinenumberEnd: 1089
    functionName: "NSSCertificate **\nnssPKIObjectCollection_GetCertificates(\n    nssPKIObjectCollection
      *collection,\n    NSSCertificate **rvOpt,\n    PRUint32 maximumOpt,\n    NSSArena
      *arenaOpt)"
    functionSourceFile: /src/nss/lib/pki/pkibase.c
    functionUses: 0
    functionsReached:
    - nss_ZNEWARRAY
    - nssPKIObjectCollection_GetObjects
    - nss_ZFreeIf
    - PR_MIN
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate **\nnssPKIObjectCollection_GetCertificates(\n
      \   nssPKIObjectCollection *collection,\n    NSSCertificate **rvOpt,\n    PRUint32
      maximumOpt,\n    NSSArena *arenaOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssCRL_Destroy
      Src: /src/nss/lib/pki/pkibase.c:1099,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - nssPKIObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 1095
    functionDepth: 2
    functionLinenumber: 1095
    functionLinenumberEnd: 1100
    functionName: crl_destroyObject
    functionSourceFile: /src/nss/lib/pki/pkibase.c
    functionUses: 0
    functionsReached:
    - nssCRL_Destroy
    linkageType: ''
    returnType: void
    signature: void crl_destroyObject(nssPKIObject *o)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssCRL_GetEncoding
      Src: /src/nss/lib/pki/pkibase.c:1107,1
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/pkibase.c:1109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - o
    - uid
    argTypes:
    - nssPKIObject*
    - NSSItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1102
    functionDepth: 1
    functionLinenumber: 1102
    functionLinenumberEnd: 1116
    functionName: crl_getUIDFromObject
    functionSourceFile: /src/nss/lib/pki/pkibase.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    - nssCRL_GetEncoding
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus crl_getUIDFromObject(nssPKIObject *o, NSSItem *uid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssCryptokiCRL_GetAttributes
      Src: /src/nss/lib/pki/pkibase.c:1122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - instance
    - uid
    - arena
    argTypes:
    - nssCryptokiObject*
    - NSSItem*
    - NSSArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1118
    functionDepth: 1
    functionLinenumber: 1118
    functionLinenumberEnd: 1130
    functionName: crl_getUIDFromInstance
    functionSourceFile: /src/nss/lib/pki/pkibase.c
    functionUses: 0
    functionsReached:
    - nssCryptokiCRL_GetAttributes
    linkageType: ''
    returnType: PRStatus
    signature: "PRStatus crl_getUIDFromInstance(nssCryptokiObject *instance, NSSItem
      *uid,\n                       NSSArena *arena)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssCRL_Create
      Src: /src/nss/lib/pki/pkibase.c:1135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - o
    argTypes:
    - nssPKIObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1136
      start: 1132
    functionDepth: 2
    functionLinenumber: 1132
    functionLinenumberEnd: 1136
    functionName: crl_createObject
    functionSourceFile: /src/nss/lib/pki/pkibase.c
    functionUses: 0
    functionsReached:
    - nssCRL_Create
    linkageType: ''
    returnType: nssPKIObject
    signature: 'nssPKIObject *

      crl_createObject(nssPKIObject *o)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssPKIObjectCollection_Create
      Src: /src/nss/lib/pki/pkibase.c:1144,1
    - Dst: nssPKIObjectCollection_AddObject
      Src: /src/nss/lib/pki/pkibase.c:1156,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1138
    functionDepth: 2
    functionLinenumber: 1138
    functionLinenumberEnd: 1160
    functionName: "nssPKIObjectCollection *\nnssCRLCollection_Create(\n    NSSTrustDomain
      *td,\n    NSSCRL **crlsOpt)"
    functionSourceFile: /src/nss/lib/pki/pkibase.c
    functionUses: 0
    functionsReached:
    - nssPKIObjectCollection_Create
    - nssPKIObjectCollection_AddObject
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssPKIObjectCollection *\nnssCRLCollection_Create(\n
      \   NSSTrustDomain *td,\n    NSSCRL **crlsOpt)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PR_MIN
      Src: /src/nss/lib/pki/pkibase.c:1178,1
    - Dst: nss_ZNEWARRAY
      Src: /src/nss/lib/pki/pkibase.c:1181,1
    - Dst: nssPKIObjectCollection_GetObjects
      Src: /src/nss/lib/pki/pkibase.c:1187,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/pki/pkibase.c:1192,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1197
      start: 1162
    functionDepth: 3
    functionLinenumber: 1162
    functionLinenumberEnd: 1197
    functionName: nssPKIObjectCollection_GetCRLs
    functionSourceFile: /src/nss/lib/pki/pkibase.c
    functionUses: 1
    functionsReached:
    - nss_ZNEWARRAY
    - nssPKIObjectCollection_GetObjects
    - nss_ZFreeIf
    - PR_MIN
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT **\nnssPKIObjectCollection_GetCRLs(\n    nssPKIObjectCollection
      *collection,\n    NSSCRL **rvOpt,\n    PRUint32 maximumOpt,\n    NSSArena *arenaOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSSTime_SetPRTime
      Src: /src/nss/lib/pki/pkibase.c:1205,1
    - Dst: PR_Now
      Src: /src/nss/lib/pki/pkibase.c:1205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - timeOpt
    argTypes:
    - NSSTime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1206
      start: 1202
    functionDepth: 1
    functionLinenumber: 1202
    functionLinenumberEnd: 1206
    functionName: NSSTime_Now
    functionSourceFile: /src/nss/lib/pki/pkibase.c
    functionUses: 1
    functionsReached:
    - NSSTime_SetPRTime
    - PR_Now
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: 'NSS_IMPLEMENT *

      NSSTime_Now(NSSTime *timeOpt)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nss_ZNEW
      Src: /src/nss/lib/pki/pkibase.c:1214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - timeOpt
    - prTime
    argTypes:
    - NSSTime*
    - PRTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1219
      start: 1208
    functionDepth: 1
    functionLinenumber: 1208
    functionLinenumberEnd: 1219
    functionName: NSSTime_SetPRTime
    functionSourceFile: /src/nss/lib/pki/pkibase.c
    functionUses: 1
    functionsReached:
    - nss_ZNEW
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSTime_SetPRTime(\n    NSSTime *timeOpt,\n    PRTime
      prTime)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - time
    argTypes:
    - NSSTime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1226
      start: 1221
    functionDepth: 0
    functionLinenumber: 1221
    functionLinenumberEnd: 1226
    functionName: NSSTime_GetPRTime
    functionSourceFile: /src/nss/lib/pki/pkibase.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSTime_GetPRTime(\n    NSSTime *time)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - secit
    - ','
    - nssit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: SECITEM_FROM_NSSITEM
    functionSourceFile: /src/nss/lib/pki/pki3hack.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SECITEM_FROM_NSSITEM(secit, nssit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: STAN_GetDefaultTrustDomain
    functionSourceFile: /src/nss/lib/pki/pki3hack.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: NSSTrustDomain
    signature: 'NSSTrustDomain *

      STAN_GetDefaultTrustDomain()'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: STAN_GetDefaultCryptoContext
    functionSourceFile: /src/nss/lib/pki/pki3hack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSSCryptoContext
    signature: 'NSSCryptoContext *

      STAN_GetDefaultCryptoContext()'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nssToken_CreateFromPK11SlotInfo
      Src: /src/nss/lib/pki/pki3hack.c:74,1
    - Dst: PK11Slot_SetNSSToken
      Src: /src/nss/lib/pki/pki3hack.c:77,1
    - Dst: NSSRWLock_LockWrite
      Src: /src/nss/lib/pki/pki3hack.c:80,1
    - Dst: nssList_Add
      Src: /src/nss/lib/pki/pki3hack.c:81,1
    - Dst: NSSRWLock_UnlockWrite
      Src: /src/nss/lib/pki/pki3hack.c:82,1
    - Dst: PK11Slot_SetNSSToken
      Src: /src/nss/lib/pki/pki3hack.c:84,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - td
    - slot
    argTypes:
    - NSSTrustDomain*
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 87
    functionName: STAN_InitTokenForSlotInfo
    functionSourceFile: /src/nss/lib/pki/pki3hack.c
    functionUses: 0
    functionsReached:
    - nssToken_CreateFromPK11SlotInfo
    - NSSRWLock_UnlockWrite
    - PK11Slot_SetNSSToken
    - NSSRWLock_LockWrite
    - nssList_Add
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT STAN_InitTokenForSlotInfo(NSSTrustDomain *td, PK11SlotInfo
      *slot)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NSSRWLock_LockWrite
      Src: /src/nss/lib/pki/pki3hack.c:100,1
    - Dst: nssListIterator_Destroy
      Src: /src/nss/lib/pki/pki3hack.c:101,1
    - Dst: nssList_CreateIterator
      Src: /src/nss/lib/pki/pki3hack.c:102,1
    - Dst: NSSRWLock_UnlockWrite
      Src: /src/nss/lib/pki/pki3hack.c:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - td
    argTypes:
    - NSSTrustDomain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 105
    functionName: STAN_ResetTokenInterator
    functionSourceFile: /src/nss/lib/pki/pki3hack.c
    functionUses: 0
    functionsReached:
    - nssList_CreateIterator
    - nssListIterator_Destroy
    - NSSRWLock_LockWrite
    - NSSRWLock_UnlockWrite
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT STAN_ResetTokenInterator(NSSTrustDomain *td)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SECMOD_GetDefaultModuleListLock
      Src: /src/nss/lib/pki/pki3hack.c:113,1
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/pki3hack.c:118,1
    - Dst: NSSTrustDomain_Create
      Src: /src/nss/lib/pki/pki3hack.c:121,1
    - Dst: nssList_Create
      Src: /src/nss/lib/pki/pki3hack.c:130,1
    - Dst: SECMOD_GetReadLock
      Src: /src/nss/lib/pki/pki3hack.c:134,1
    - Dst: NSSRWLock_LockWrite
      Src: /src/nss/lib/pki/pki3hack.c:135,1
    - Dst: SECMOD_GetDefaultModuleList
      Src: /src/nss/lib/pki/pki3hack.c:136,1
    - Dst: STAN_InitTokenForSlotInfo
      Src: /src/nss/lib/pki/pki3hack.c:138,1
    - Dst: nssList_CreateIterator
      Src: /src/nss/lib/pki/pki3hack.c:141,1
    - Dst: NSSRWLock_UnlockWrite
      Src: /src/nss/lib/pki/pki3hack.c:142,1
    - Dst: SECMOD_ReleaseReadLock
      Src: /src/nss/lib/pki/pki3hack.c:143,1
    - Dst: NSSTrustDomain_CreateCryptoContext
      Src: /src/nss/lib/pki/pki3hack.c:147,1
    - Dst: NSSTrustDomain_Destroy
      Src: /src/nss/lib/pki/pki3hack.c:155,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 107
    functionDepth: 3
    functionLinenumber: 107
    functionLinenumberEnd: 157
    functionName: STAN_LoadDefaultNSS3TrustDomain
    functionSourceFile: /src/nss/lib/pki/pki3hack.c
    functionUses: 0
    functionsReached:
    - SECMOD_ReleaseReadLock
    - nssList_CreateIterator
    - NSSTrustDomain_Destroy
    - SECMOD_GetReadLock
    - NSSRWLock_UnlockWrite
    - SECMOD_GetDefaultModuleListLock
    - nssList_Create
    - SECMOD_GetDefaultModuleList
    - nss_SetError
    - NSSRWLock_LockWrite
    - STAN_InitTokenForSlotInfo
    - NSSTrustDomain_Create
    - NSSTrustDomain_CreateCryptoContext
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT STAN_LoadDefaultNSS3TrustDomain(\n    void)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STAN_GetDefaultTrustDomain
      Src: /src/nss/lib/pki/pki3hack.c:168,1
    - Dst: STAN_InitTokenForSlotInfo
      Src: /src/nss/lib/pki/pki3hack.c:170,1
    - Dst: STAN_ResetTokenInterator
      Src: /src/nss/lib/pki/pki3hack.c:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - module
    argTypes:
    - SECMODModule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 174
    functionName: STAN_AddModuleToDefaultTrustDomain
    functionSourceFile: /src/nss/lib/pki/pki3hack.c
    functionUses: 0
    functionsReached:
    - STAN_GetDefaultTrustDomain
    - STAN_ResetTokenInterator
    - STAN_InitTokenForSlotInfo
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT STAN_AddModuleToDefaultTrustDomain(\n    SECMODModule
      *module)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STAN_GetDefaultTrustDomain
      Src: /src/nss/lib/pki/pki3hack.c:186,1
    - Dst: PK11Slot_GetNSSToken
      Src: /src/nss/lib/pki/pki3hack.c:188,1
    - Dst: nssToken_NotifyCertsNotVisible
      Src: /src/nss/lib/pki/pki3hack.c:190,1
    - Dst: NSSRWLock_LockWrite
      Src: /src/nss/lib/pki/pki3hack.c:191,1
    - Dst: nssList_Remove
      Src: /src/nss/lib/pki/pki3hack.c:192,1
    - Dst: NSSRWLock_UnlockWrite
      Src: /src/nss/lib/pki/pki3hack.c:193,1
    - Dst: PK11Slot_SetNSSToken
      Src: /src/nss/lib/pki/pki3hack.c:194,1
    - Dst: nssToken_Destroy
      Src: /src/nss/lib/pki/pki3hack.c:195,1
    - Dst: nssToken_Destroy
      Src: /src/nss/lib/pki/pki3hack.c:196,1
    - Dst: NSSRWLock_LockWrite
      Src: /src/nss/lib/pki/pki3hack.c:199,1
    - Dst: nssListIterator_Destroy
      Src: /src/nss/lib/pki/pki3hack.c:200,1
    - Dst: nssList_CreateIterator
      Src: /src/nss/lib/pki/pki3hack.c:201,1
    - Dst: NSSRWLock_UnlockWrite
      Src: /src/nss/lib/pki/pki3hack.c:202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - module
    argTypes:
    - SECMODModule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 204
    functionName: STAN_RemoveModuleFromDefaultTrustDomain
    functionSourceFile: /src/nss/lib/pki/pki3hack.c
    functionUses: 0
    functionsReached:
    - nssListIterator_Destroy
    - nssToken_Destroy
    - STAN_GetDefaultTrustDomain
    - nssList_CreateIterator
    - NSSRWLock_UnlockWrite
    - PK11Slot_SetNSSToken
    - nssToken_NotifyCertsNotVisible
    - NSSRWLock_LockWrite
    - PK11Slot_GetNSSToken
    - nssList_Remove
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT STAN_RemoveModuleFromDefaultTrustDomain(\n    SECMODModule
      *module)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NSSTrustDomain_Destroy
      Src: /src/nss/lib/pki/pki3hack.c:211,1
    - Dst: NSSCryptoContext_Destroy
      Src: /src/nss/lib/pki/pki3hack.c:218,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 206
    functionDepth: 3
    functionLinenumber: 206
    functionLinenumberEnd: 225
    functionName: STAN_Shutdown
    functionSourceFile: /src/nss/lib/pki/pki3hack.c
    functionUses: 0
    functionsReached:
    - NSSTrustDomain_Destroy
    - NSSCryptoContext_Destroy
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT STAN_Shutdown()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_FROM_NSSITEM
      Src: /src/nss/lib/pki/pki3hack.c:237,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/pki/pki3hack.c:240,1
    - Dst: CERT_KeyFromDERCert
      Src: /src/nss/lib/pki/pki3hack.c:244,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pki/pki3hack.c:246,1
    - Dst: nssItem_Create
      Src: /src/nss/lib/pki/pki3hack.c:249,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pki/pki3hack.c:250,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - arenaOpt
    - der
    argTypes:
    - NSSArena*
    - NSSDER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 252
    functionName: STAN_GetCertIdentifierFromDER
    functionSourceFile: /src/nss/lib/pki/pki3hack.c
    functionUses: 0
    functionsReached:
    - PORT_NewArena
    - PORT_FreeArena
    - SECITEM_FROM_NSSITEM
    - nssItem_Create
    - CERT_KeyFromDERCert
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: 'NSS_IMPLEMENT *

      STAN_GetCertIdentifierFromDER(NSSArena *arenaOpt, NSSDER *der)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CERT_IssuerNameFromDERCert
      Src: /src/nss/lib/pki/pki3hack.c:264,1
    - Dst: CERT_SerialNumberFromDERCert
      Src: /src/nss/lib/pki/pki3hack.c:268,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pki/pki3hack.c:270,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - der
    - issuer
    - serial
    argTypes:
    - NSSDER*
    - NSSDER*
    - NSSDER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 278
    functionName: nssPKIX509_GetIssuerAndSerialFromDER
    functionSourceFile: /src/nss/lib/pki/pki3hack.c
    functionUses: 3
    functionsReached:
    - PORT_Free
    - CERT_IssuerNameFromDERCert
    - CERT_SerialNumberFromDERCert
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssPKIX509_GetIssuerAndSerialFromDER(NSSDER *der,\n
      \                                    NSSDER *issuer, NSSDER *serial)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssItem_Create
      Src: /src/nss/lib/pki/pki3hack.c:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dc
    argTypes:
    - nssDecodedCert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 287
    functionName: nss3certificate_getIdentifier
    functionSourceFile: /src/nss/lib/pki/pki3hack.c
    functionUses: 0
    functionsReached:
    - nssItem_Create
    linkageType: ''
    returnType: NSSItem
    signature: 'NSSItem *

      nss3certificate_getIdentifier(nssDecodedCert *dc)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dc
    argTypes:
    - nssDecodedCert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 294
    functionName: nss3certificate_getIssuerIdentifier
    functionSourceFile: /src/nss/lib/pki/pki3hack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void *

      nss3certificate_getIssuerIdentifier(nssDecodedCert *dc)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CERT_FindSubjectKeyIDExtension
      Src: /src/nss/lib/pki/pki3hack.c:306,1
    - Dst: SECITEM_ItemsAreEqual
      Src: /src/nss/lib/pki/pki3hack.c:308,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pki/pki3hack.c:309,1
    - Dst: CERT_GetGeneralNameByType
      Src: /src/nss/lib/pki/pki3hack.c:324,1
    - Dst: SECITEM_ItemsAreEqual
      Src: /src/nss/lib/pki/pki3hack.c:328,1
    - Dst: SECITEM_ItemsAreEqual
      Src: /src/nss/lib/pki/pki3hack.c:329,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - dc
    - id
    argTypes:
    - nssDecodedCert*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 336
    functionName: nss3certificate_matchIdentifier
    functionSourceFile: /src/nss/lib/pki/pki3hack.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - SECITEM_ItemsAreEqual
    - CERT_GetGeneralNameByType
    - CERT_FindSubjectKeyIDExtension
    linkageType: ''
    returnType: nssCertIDMatch
    signature: nssCertIDMatch nss3certificate_matchIdentifier(nssDecodedCert *dc,
      void *id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CERT_IsCACert
      Src: /src/nss/lib/pki/pki3hack.c:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dc
    argTypes:
    - nssDecodedCert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 344
    functionName: nss3certificate_isValidIssuer
    functionSourceFile: /src/nss/lib/pki/pki3hack.c
    functionUses: 0
    functionsReached:
    - CERT_IsCACert
    linkageType: ''
    returnType: PRBool
    signature: PRBool nss3certificate_isValidIssuer(nssDecodedCert *dc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dc
    argTypes:
    - nssDecodedCert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 351
    functionName: nss3certificate_getUsage
    functionSourceFile: /src/nss/lib/pki/pki3hack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSSUsage
    signature: 'NSSUsage *

      nss3certificate_getUsage(nssDecodedCert *dc)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CERT_CheckCertValidTimes
      Src: /src/nss/lib/pki/pki3hack.c:358,1
    - Dst: NSSTime_GetPRTime
      Src: /src/nss/lib/pki/pki3hack.c:358,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - dc
    - time
    argTypes:
    - nssDecodedCert*
    - NSSTime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 363
    functionName: nss3certificate_isValidAtTime
    functionSourceFile: /src/nss/lib/pki/pki3hack.c
    functionUses: 0
    functionsReached:
    - CERT_CheckCertValidTimes
    - NSSTime_GetPRTime
    linkageType: ''
    returnType: PRBool
    signature: PRBool nss3certificate_isValidAtTime(nssDecodedCert *dc, NSSTime *time)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CERT_IsNewer
      Src: /src/nss/lib/pki/pki3hack.c:372,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - dc
    - cmpdc
    argTypes:
    - nssDecodedCert*
    - nssDecodedCert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 375
    functionName: nss3certificate_isNewerThan
    functionSourceFile: /src/nss/lib/pki/pki3hack.c
    functionUses: 0
    functionsReached:
    - CERT_IsNewer
    linkageType: ''
    returnType: PRBool
    signature: PRBool nss3certificate_isNewerThan(nssDecodedCert *dc, nssDecodedCert
      *cmpdc)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CERT_KeyUsageAndTypeForCertUsage
      Src: /src/nss/lib/pki/pki3hack.c:393,1
    - Dst: CERT_CheckKeyUsage
      Src: /src/nss/lib/pki/pki3hack.c:400,1
    - Dst: CERT_IsCACert
      Src: /src/nss/lib/pki/pki3hack.c:405,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - dc
    - usage
    argTypes:
    - nssDecodedCert*
    - NSSUsage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 414
    functionName: nss3certificate_matchUsage
    functionSourceFile: /src/nss/lib/pki/pki3hack.c
    functionUses: 0
    functionsReached:
    - CERT_IsCACert
    - CERT_CheckKeyUsage
    - CERT_KeyUsageAndTypeForCertUsage
    linkageType: ''
    returnType: PRBool
    signature: PRBool nss3certificate_matchUsage(nssDecodedCert *dc, const NSSUsage
      *usage)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cert_CheckLeafTrust
      Src: /src/nss/lib/pki/pki3hack.c:436,1
    - Dst: CERT_TrustFlagsForCACertUsage
      Src: /src/nss/lib/pki/pki3hack.c:440,1
    - Dst: CERT_GetCertTrust
      Src: /src/nss/lib/pki/pki3hack.c:445,1
    - Dst: SEC_GET_TRUST_FLAGS
      Src: /src/nss/lib/pki/pki3hack.c:455,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - dc
    - usage
    argTypes:
    - nssDecodedCert*
    - NSSUsage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 458
    functionName: nss3certificate_isTrustedForUsage
    functionSourceFile: /src/nss/lib/pki/pki3hack.c
    functionUses: 0
    functionsReached:
    - CERT_GetCertTrust
    - SEC_GET_TRUST_FLAGS
    - cert_CheckLeafTrust
    - CERT_TrustFlagsForCACertUsage
    linkageType: ''
    returnType: PRBool
    signature: PRBool nss3certificate_isTrustedForUsage(nssDecodedCert *dc, const
      NSSUsage *usage)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - dc
    argTypes:
    - nssDecodedCert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 467
    functionName: nss3certificate_getEmailAddress
    functionSourceFile: /src/nss/lib/pki/pki3hack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSSASCII7
    signature: 'NSSASCII7 *

      nss3certificate_getEmailAddress(nssDecodedCert *dc)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CERT_SerialNumberFromDERCert
      Src: /src/nss/lib/pki/pki3hack.c:476,1
    - Dst: nssItem_Create
      Src: /src/nss/lib/pki/pki3hack.c:478,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pki/pki3hack.c:479,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - dc
    - serial
    - arena
    argTypes:
    - nssDecodedCert*
    - NSSDER*
    - NSSArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 483
    functionName: nss3certificate_getDERSerialNumber
    functionSourceFile: /src/nss/lib/pki/pki3hack.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - nssItem_Create
    - CERT_SerialNumberFromDERCert
    linkageType: ''
    returnType: PRStatus
    signature: "PRStatus nss3certificate_getDERSerialNumber(nssDecodedCert *dc,\n
      \                                  NSSDER *serial, NSSArena *arena)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_FROM_NSSITEM
      Src: /src/nss/lib/pki/pki3hack.c:495,1
    - Dst: CERT_DecodeDERCertificate
      Src: /src/nss/lib/pki/pki3hack.c:496,1
    - Dst: nss_ZNEW
      Src: /src/nss/lib/pki/pki3hack.c:498,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/pki/pki3hack.c:514,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 486
    functionDepth: 1
    functionLinenumber: 486
    functionLinenumberEnd: 518
    functionName: "nssDecodedCert *\nnssDecodedPKIXCertificate_Create(\n    NSSArena
      *arenaOpt,\n    NSSDER *encoding)"
    functionSourceFile: /src/nss/lib/pki/pki3hack.c
    functionUses: 0
    functionsReached:
    - CERT_DecodeDERCertificate
    - SECITEM_FROM_NSSITEM
    - nss_ZNEW
    - CERT_DestroyCertificate
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssDecodedCert *\nnssDecodedPKIXCertificate_Create(\n
      \   NSSArena *arenaOpt,\n    NSSDER *encoding)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nss_ZNEW
      Src: /src/nss/lib/pki/pki3hack.c:525,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - arenaOpt
    - cc
    argTypes:
    - NSSArena*
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 542
    functionName: create_decoded_pkix_cert_from_nss3cert
    functionSourceFile: /src/nss/lib/pki/pki3hack.c
    functionUses: 0
    functionsReached:
    - nss_ZNEW
    linkageType: ''
    returnType: nssDecodedCert
    signature: "nssDecodedCert *\ncreate_decoded_pkix_cert_from_nss3cert(\n    NSSArena
      *arenaOpt,\n    CERTCertificate *cc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memset
      Src: /src/nss/lib/pki/pki3hack.c:558,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pki/pki3hack.c:560,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pki/pki3hack.c:562,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/pki/pki3hack.c:565,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - dc
    argTypes:
    - nssDecodedCert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 544
    functionDepth: 1
    functionLinenumber: 544
    functionLinenumberEnd: 567
    functionName: nssDecodedPKIXCertificate_Destroy
    functionSourceFile: /src/nss/lib/pki/pki3hack.c
    functionUses: 1
    functionsReached:
    - PORT_FreeArena
    - PORT_Memset
    - nss_ZFreeIf
    - PK11_FreeSlot
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nssDecodedPKIXCertificate_Destroy(nssDecodedCert *dc)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - t
    argTypes:
    - nssTrustLevel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 587
    functionName: get_nss3trust_from_nss4trust
    functionSourceFile: /src/nss/lib/pki/pki3hack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int get_nss3trust_from_nss4trust(nssTrustLevel t)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/pki/pki3hack.c:597,1
    - Dst: get_nss3trust_from_nss4trust
      Src: /src/nss/lib/pki/pki3hack.c:600,1
    - Dst: get_nss3trust_from_nss4trust
      Src: /src/nss/lib/pki/pki3hack.c:601,1
    - Dst: get_nss3trust_from_nss4trust
      Src: /src/nss/lib/pki/pki3hack.c:607,1
    - Dst: get_nss3trust_from_nss4trust
      Src: /src/nss/lib/pki/pki3hack.c:608,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - t
    - arena
    argTypes:
    - NSSTrust*
    - PLArenaPool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 589
    functionDepth: 1
    functionLinenumber: 589
    functionLinenumberEnd: 610
    functionName: cert_trust_from_stan_trust
    functionSourceFile: /src/nss/lib/pki/pki3hack.c
    functionUses: 0
    functionsReached:
    - PORT_ArenaAlloc
    - get_nss3trust_from_nss4trust
    linkageType: ''
    returnType: CERTCertTrust
    signature: 'CERTCertTrust *

      cert_trust_from_stan_trust(NSSTrust *t, PLArenaPool *arena)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STAN_GetDefaultTrustDomain
      Src: /src/nss/lib/pki/pki3hack.c:616,1
    - Dst: nssTrustDomain_FindTrustForCertificate
      Src: /src/nss/lib/pki/pki3hack.c:618,1
    - Dst: cert_trust_from_stan_trust
      Src: /src/nss/lib/pki/pki3hack.c:621,1
    - Dst: nssTrust_Destroy
      Src: /src/nss/lib/pki/pki3hack.c:622,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - cert
    - trustPtr
    argTypes:
    - CERTCertificate*
    - CERTCertTrust*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 612
    functionDepth: 3
    functionLinenumber: 612
    functionLinenumberEnd: 629
    functionName: nssTrust_HandleTrustForCERTCert
    functionSourceFile: /src/nss/lib/pki/pki3hack.c
    functionUses: 0
    functionsReached:
    - STAN_GetDefaultTrustDomain
    - cert_trust_from_stan_trust
    - nssTrustDomain_FindTrustForCertificate
    - nssTrust_Destroy
    linkageType: ''
    returnType: PRBool
    signature: PRBool nssTrust_HandleTrustForCERTCert(CERTCertificate *cert, CERTCertTrust
      *trustPtr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STAN_GetDefaultTrustDomain
      Src: /src/nss/lib/pki/pki3hack.c:635,1
    - Dst: nssTrustDomain_FindTrustForCertificate
      Src: /src/nss/lib/pki/pki3hack.c:637,1
    - Dst: cert_trust_from_stan_trust
      Src: /src/nss/lib/pki/pki3hack.c:639,1
    - Dst: nssTrust_Destroy
      Src: /src/nss/lib/pki/pki3hack.c:641,1
    - Dst: nssTrust_Destroy
      Src: /src/nss/lib/pki/pki3hack.c:644,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/pki/pki3hack.c:646,1
    - Dst: memset
      Src: /src/nss/lib/pki/pki3hack.c:650,1
    - Dst: NSSCertificate_IsPrivateKeyAvailable
      Src: /src/nss/lib/pki/pki3hack.c:652,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - c
    - cc
    argTypes:
    - NSSCertificate*
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 631
    functionDepth: 3
    functionLinenumber: 631
    functionLinenumberEnd: 658
    functionName: nssTrust_GetCERTCertTrustForCert
    functionSourceFile: /src/nss/lib/pki/pki3hack.c
    functionUses: 0
    functionsReached:
    - NSSCertificate_IsPrivateKeyAvailable
    - STAN_GetDefaultTrustDomain
    - cert_trust_from_stan_trust
    - PORT_ArenaAlloc
    - memset
    - nssTrust_Destroy
    - nssTrustDomain_FindTrustForCertificate
    linkageType: ''
    returnType: CERTCertTrust
    signature: 'CERTCertTrust *

      nssTrust_GetCERTCertTrustForCert(NSSCertificate *c, CERTCertificate *cc)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nssPKIObject_GetInstances
      Src: /src/nss/lib/pki/pki3hack.c:664,1
    - Dst: nssCryptokiObject_Clone
      Src: /src/nss/lib/pki/pki3hack.c:671,1
    - Dst: PK11_IsInternal
      Src: /src/nss/lib/pki/pki3hack.c:678,1
    - Dst: nssCryptokiObject_Destroy
      Src: /src/nss/lib/pki/pki3hack.c:679,1
    - Dst: nssCryptokiObject_Clone
      Src: /src/nss/lib/pki/pki3hack.c:680,1
    - Dst: nssCryptokiObjectArray_Destroy
      Src: /src/nss/lib/pki/pki3hack.c:684,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - c
    argTypes:
    - NSSCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 660
    functionDepth: 1
    functionLinenumber: 660
    functionLinenumberEnd: 686
    functionName: get_cert_instance
    functionSourceFile: /src/nss/lib/pki/pki3hack.c
    functionUses: 0
    functionsReached:
    - nssCryptokiObject_Clone
    - nssCryptokiObjectArray_Destroy
    - nssCryptokiObject_Destroy
    - nssPKIObject_GetInstances
    - PK11_IsInternal
    linkageType: ''
    returnType: nssCryptokiInstance
    signature: 'nssCryptokiInstance *

      get_cert_instance(NSSCertificate *c)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PK11_IsInternalKeySlot
      Src: /src/nss/lib/pki/pki3hack.c:709,1
    - Dst: PORT_Strchr
      Src: /src/nss/lib/pki/pki3hack.c:710,1
    - Dst: nssToken_GetName
      Src: /src/nss/lib/pki/pki3hack.c:711,1
    - Dst: nssUTF8_Size
      Src: /src/nss/lib/pki/pki3hack.c:712,1
    - Dst: nssUTF8_Size
      Src: /src/nss/lib/pki/pki3hack.c:717,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/pki/pki3hack.c:720,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/pki/pki3hack.c:722,1
    - Dst: memcpy
      Src: /src/nss/lib/pki/pki3hack.c:726,1
    - Dst: memcpy
      Src: /src/nss/lib/pki/pki3hack.c:730,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 3
    argNames:
    - arenaOpt
    - c
    - instance
    argTypes:
    - PLArenaPool*
    - NSSCertificate*
    - nssCryptokiInstance*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 688
    functionDepth: 1
    functionLinenumber: 688
    functionLinenumberEnd: 734
    functionName: STAN_GetCERTCertificateNameForInstance
    functionSourceFile: /src/nss/lib/pki/pki3hack.c
    functionUses: 0
    functionsReached:
    - PORT_Strchr
    - PORT_Alloc
    - memcpy
    - PORT_ArenaAlloc
    - PK11_IsInternalKeySlot
    - nssToken_GetName
    - nssUTF8_Size
    linkageType: ''
    returnType: char
    signature: "char *\nSTAN_GetCERTCertificateNameForInstance(\n    PLArenaPool *arenaOpt,\n
      \   NSSCertificate *c,\n    nssCryptokiInstance *instance)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_cert_instance
      Src: /src/nss/lib/pki/pki3hack.c:740,1
    - Dst: STAN_GetCERTCertificateNameForInstance
      Src: /src/nss/lib/pki/pki3hack.c:742,1
    - Dst: nssCryptokiObject_Destroy
      Src: /src/nss/lib/pki/pki3hack.c:744,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - arenaOpt
    - c
    argTypes:
    - PLArenaPool*
    - NSSCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 736
    functionDepth: 2
    functionLinenumber: 736
    functionLinenumberEnd: 746
    functionName: STAN_GetCERTCertificateName
    functionSourceFile: /src/nss/lib/pki/pki3hack.c
    functionUses: 0
    functionsReached:
    - nssCryptokiObject_Destroy
    - get_cert_instance
    - STAN_GetCERTCertificateNameForInstance
    linkageType: ''
    returnType: char
    signature: 'char *

      STAN_GetCERTCertificateName(PLArenaPool *arenaOpt, NSSCertificate *c)'
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: get_cert_instance
      Src: /src/nss/lib/pki/pki3hack.c:761,1
    - Dst: PK11_IsInternalKeySlot
      Src: /src/nss/lib/pki/pki3hack.c:775,1
    - Dst: PORT_Strchr
      Src: /src/nss/lib/pki/pki3hack.c:776,1
    - Dst: nssToken_GetName
      Src: /src/nss/lib/pki/pki3hack.c:777,1
    - Dst: nssUTF8_Size
      Src: /src/nss/lib/pki/pki3hack.c:778,1
    - Dst: nssUTF8_Size
      Src: /src/nss/lib/pki/pki3hack.c:784,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/pki/pki3hack.c:786,1
    - Dst: memcpy
      Src: /src/nss/lib/pki/pki3hack.c:788,1
    - Dst: memcpy
      Src: /src/nss/lib/pki/pki3hack.c:790,1
    - Dst: memcpy
      Src: /src/nss/lib/pki/pki3hack.c:792,1
    - Dst: nssCryptoContext_FindTrustForCertificate
      Src: /src/nss/lib/pki/pki3hack.c:802,1
    - Dst: nssTrustDomain_FindTrustForCertificate
      Src: /src/nss/lib/pki/pki3hack.c:817,1
    - Dst: cert_trust_from_stan_trust
      Src: /src/nss/lib/pki/pki3hack.c:820,1
    - Dst: CERT_LockCertTrust
      Src: /src/nss/lib/pki/pki3hack.c:825,1
    - Dst: CERT_UnlockCertTrust
      Src: /src/nss/lib/pki/pki3hack.c:827,1
    - Dst: nssTrust_Destroy
      Src: /src/nss/lib/pki/pki3hack.c:829,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pki/pki3hack.c:835,1
    - Dst: PK11_ReferenceSlot
      Src: /src/nss/lib/pki/pki3hack.c:837,1
    - Dst: nssTrust_GetCERTCertTrustForCert
      Src: /src/nss/lib/pki/pki3hack.c:843,1
    - Dst: CERT_LockCertTrust
      Src: /src/nss/lib/pki/pki3hack.c:848,1
    - Dst: CERT_UnlockCertTrust
      Src: /src/nss/lib/pki/pki3hack.c:850,1
    - Dst: PK11_IsReadOnly
      Src: /src/nss/lib/pki/pki3hack.c:855,1
    - Dst: PK11_HasRootCerts
      Src: /src/nss/lib/pki/pki3hack.c:855,1
    - Dst: PK11_ReadAttribute
      Src: /src/nss/lib/pki/pki3hack.c:862,1
    - Dst: PK11_ReadAttribute
      Src: /src/nss/lib/pki/pki3hack.c:865,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/pki/pki3hack.c:874,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pki/pki3hack.c:876,1
    - Dst: nssCryptokiObject_Destroy
      Src: /src/nss/lib/pki/pki3hack.c:884,1
    - Dst: CERT_LockCertTempPerm
      Src: /src/nss/lib/pki/pki3hack.c:890,1
    - Dst: CERT_UnlockCertTempPerm
      Src: /src/nss/lib/pki/pki3hack.c:895,1
    - Dst: cert_ComputeCertType
      Src: /src/nss/lib/pki/pki3hack.c:898,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pki/pki3hack.c:901,1
    - Dst: PR_ATOMIC_SET
      Src: /src/nss/lib/pki/pki3hack.c:902,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 90
    argCount: 3
    argNames:
    - c
    - cc
    - forced
    argTypes:
    - NSSCertificate*
    - CERTCertificate*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 748
    functionDepth: 4
    functionLinenumber: 748
    functionLinenumberEnd: 904
    functionName: fill_CERTCertificateFields
    functionSourceFile: /src/nss/lib/pki/pki3hack.c
    functionUses: 0
    functionsReached:
    - CERT_UnlockCertTempPerm
    - cert_trust_from_stan_trust
    - CERT_LockCertTempPerm
    - nssToken_GetName
    - CERT_LockCertTrust
    - memcpy
    - PORT_Memcpy
    - PORT_ArenaAlloc
    - PK11_HasRootCerts
    - PK11_IsInternalKeySlot
    - get_cert_instance
    - PK11_ReferenceSlot
    - PK11_IsReadOnly
    - PORT_Strchr
    - PORT_Assert
    - nssCryptoContext_FindTrustForCertificate
    - cert_ComputeCertType
    - nssTrust_GetCERTCertTrustForCert
    - PR_ATOMIC_SET
    - CERT_UnlockCertTrust
    - nssTrustDomain_FindTrustForCertificate
    - PK11_FreeSlot
    - nssUTF8_Size
    - nssCryptokiObject_Destroy
    - nssTrust_Destroy
    - PK11_ReadAttribute
    linkageType: ''
    returnType: void
    signature: void fill_CERTCertificateFields(NSSCertificate *c, CERTCertificate
      *cc, PRBool forced)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: nssPKIObject_AddRef
      Src: /src/nss/lib/pki/pki3hack.c:914,1
    - Dst: nssPKIObject_Lock
      Src: /src/nss/lib/pki/pki3hack.c:915,1
    - Dst: nssDecodedPKIXCertificate_Create
      Src: /src/nss/lib/pki/pki3hack.c:919,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pki/pki3hack.c:924,1
    - Dst: nssDecodedPKIXCertificate_Destroy
      Src: /src/nss/lib/pki/pki3hack.c:926,1
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/pki3hack.c:927,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pki/pki3hack.c:930,1
    - Dst: nssDecodedPKIXCertificate_Destroy
      Src: /src/nss/lib/pki/pki3hack.c:935,1
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/pki3hack.c:936,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pki/pki3hack.c:941,1
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/pki3hack.c:943,1
    - Dst: CERT_LockCertTempPerm
      Src: /src/nss/lib/pki/pki3hack.c:946,1
    - Dst: CERT_UnlockCertTempPerm
      Src: /src/nss/lib/pki/pki3hack.c:948,1
    - Dst: fill_CERTCertificateFields
      Src: /src/nss/lib/pki/pki3hack.c:950,1
    - Dst: CERT_GetCertTrust
      Src: /src/nss/lib/pki/pki3hack.c:951,1
    - Dst: nssTrust_GetCERTCertTrustForCert
      Src: /src/nss/lib/pki/pki3hack.c:957,1
    - Dst: nssTrustDomain_FindTrustForCertificate
      Src: /src/nss/lib/pki/pki3hack.c:963,1
    - Dst: cert_trust_from_stan_trust
      Src: /src/nss/lib/pki/pki3hack.c:967,1
    - Dst: nssTrust_Destroy
      Src: /src/nss/lib/pki/pki3hack.c:968,1
    - Dst: CERT_LockCertTrust
      Src: /src/nss/lib/pki/pki3hack.c:974,1
    - Dst: CERT_UnlockCertTrust
      Src: /src/nss/lib/pki/pki3hack.c:976,1
    - Dst: nssPKIObject_Unlock
      Src: /src/nss/lib/pki/pki3hack.c:980,1
    - Dst: nssPKIObject_Destroy
      Src: /src/nss/lib/pki/pki3hack.c:981,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 64
    argCount: 2
    argNames:
    - c
    - forceUpdate
    argTypes:
    - NSSCertificate*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 906
    functionDepth: 5
    functionLinenumber: 906
    functionLinenumberEnd: 983
    functionName: stan_GetCERTCertificate
    functionSourceFile: /src/nss/lib/pki/pki3hack.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - nssPKIObject_AddRef
    - CERT_LockCertTrust
    - CERT_UnlockCertTempPerm
    - CERT_GetCertTrust
    - cert_trust_from_stan_trust
    - nssTrust_GetCERTCertTrustForCert
    - nssPKIObject_Unlock
    - nss_SetError
    - CERT_LockCertTempPerm
    - nssTrust_Destroy
    - nssDecodedPKIXCertificate_Create
    - fill_CERTCertificateFields
    - nssPKIObject_Lock
    - CERT_UnlockCertTrust
    - nssTrustDomain_FindTrustForCertificate
    - nssDecodedPKIXCertificate_Destroy
    - nssPKIObject_Destroy
    linkageType: ''
    returnType: CERTCertificate
    signature: 'CERTCertificate *

      stan_GetCERTCertificate(NSSCertificate *c, PRBool forceUpdate)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stan_GetCERTCertificate
      Src: /src/nss/lib/pki/pki3hack.c:989,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 985
    functionDepth: 6
    functionLinenumber: 985
    functionLinenumberEnd: 992
    functionName: 'CERTCertificate *

      STAN_ForceCERTCertificateUpdate(NSSCertificate *c)'
    functionSourceFile: /src/nss/lib/pki/pki3hack.c
    functionUses: 0
    functionsReached:
    - stan_GetCERTCertificate
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: 'NSS_IMPLEMENT CERTCertificate *

      STAN_ForceCERTCertificateUpdate(NSSCertificate *c)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stan_GetCERTCertificate
      Src: /src/nss/lib/pki/pki3hack.c:997,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 994
    functionDepth: 6
    functionLinenumber: 994
    functionLinenumberEnd: 998
    functionName: 'CERTCertificate *

      STAN_GetCERTCertificate(NSSCertificate *c)'
    functionSourceFile: /src/nss/lib/pki/pki3hack.c
    functionUses: 0
    functionsReached:
    - stan_GetCERTCertificate
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: 'NSS_IMPLEMENT CERTCertificate *

      STAN_GetCERTCertificate(NSSCertificate *c)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stan_GetCERTCertificate
      Src: /src/nss/lib/pki/pki3hack.c:1010,1
    - Dst: nssCertificate_Destroy
      Src: /src/nss/lib/pki/pki3hack.c:1012,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 1007
    functionDepth: 6
    functionLinenumber: 1007
    functionLinenumberEnd: 1015
    functionName: 'CERTCertificate *

      STAN_GetCERTCertificateOrRelease(NSSCertificate *c)'
    functionSourceFile: /src/nss/lib/pki/pki3hack.c
    functionUses: 0
    functionsReached:
    - nssCertificate_Destroy
    - stan_GetCERTCertificate
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: 'NSS_IMPLEMENT CERTCertificate *

      STAN_GetCERTCertificateOrRelease(NSSCertificate *c)'
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - t
    - isClientAuth
    argTypes:
    - unsigned int
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 1017
    functionDepth: 0
    functionLinenumber: 1017
    functionLinenumberEnd: 1039
    functionName: get_stan_trust
    functionSourceFile: /src/nss/lib/pki/pki3hack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: nssTrustLevel
    signature: nssTrustLevel get_stan_trust(unsigned int t, PRBool isClientAuth)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: CERT_LockCertTempPerm
      Src: /src/nss/lib/pki/pki3hack.c:1048,1
    - Dst: CERT_UnlockCertTempPerm
      Src: /src/nss/lib/pki/pki3hack.c:1050,1
    - Dst: NSSArena_Create
      Src: /src/nss/lib/pki/pki3hack.c:1057,1
    - Dst: nss_ZNEW
      Src: /src/nss/lib/pki/pki3hack.c:1061,1
    - Dst: nssArena_Destroy
      Src: /src/nss/lib/pki/pki3hack.c:1063,1
    - Dst: NSSITEM_FROM_SECITEM
      Src: /src/nss/lib/pki/pki3hack.c:1066,1
    - Dst: nssPKIObject_Create
      Src: /src/nss/lib/pki/pki3hack.c:1068,1
    - Dst: nssArena_Destroy
      Src: /src/nss/lib/pki/pki3hack.c:1070,1
    - Dst: nssItem_Create
      Src: /src/nss/lib/pki/pki3hack.c:1074,1
    - Dst: nssItem_Create
      Src: /src/nss/lib/pki/pki3hack.c:1076,1
    - Dst: CERT_SerialNumberFromDERCert
      Src: /src/nss/lib/pki/pki3hack.c:1083,1
    - Dst: nssArena_Destroy
      Src: /src/nss/lib/pki/pki3hack.c:1085,1
    - Dst: nssItem_Create
      Src: /src/nss/lib/pki/pki3hack.c:1088,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pki/pki3hack.c:1089,1
    - Dst: nssUTF8_Create
      Src: /src/nss/lib/pki/pki3hack.c:1092,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/pki/pki3hack.c:1095,1
    - Dst: nss_ZNEW
      Src: /src/nss/lib/pki/pki3hack.c:1098,1
    - Dst: nssArena_Destroy
      Src: /src/nss/lib/pki/pki3hack.c:1100,1
    - Dst: PK11Slot_GetNSSToken
      Src: /src/nss/lib/pki/pki3hack.c:1103,1
    - Dst: nssArena_Destroy
      Src: /src/nss/lib/pki/pki3hack.c:1105,1
    - Dst: nssUTF8_Create
      Src: /src/nss/lib/pki/pki3hack.c:1111,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/pki/pki3hack.c:1114,1
    - Dst: nssPKIObject_AddInstance
      Src: /src/nss/lib/pki/pki3hack.c:1116,1
    - Dst: create_decoded_pkix_cert_from_nss3cert
      Src: /src/nss/lib/pki/pki3hack.c:1118,1
    - Dst: CERT_LockCertTempPerm
      Src: /src/nss/lib/pki/pki3hack.c:1119,1
    - Dst: CERT_UnlockCertTempPerm
      Src: /src/nss/lib/pki/pki3hack.c:1121,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1123
      start: 1041
    functionDepth: 3
    functionLinenumber: 1041
    functionLinenumberEnd: 1123
    functionName: 'NSSCertificate *

      STAN_GetNSSCertificate(CERTCertificate *cc)'
    functionSourceFile: /src/nss/lib/pki/pki3hack.c
    functionUses: 0
    functionsReached:
    - CERT_UnlockCertTempPerm
    - CERT_SerialNumberFromDERCert
    - NSSITEM_FROM_SECITEM
    - PORT_Free
    - nssUTF8_Create
    - nss_ZNEW
    - nssItem_Create
    - PORT_Strlen
    - create_decoded_pkix_cert_from_nss3cert
    - nssPKIObject_Create
    - CERT_LockCertTempPerm
    - nssArena_Destroy
    - nssPKIObject_AddInstance
    - PK11Slot_GetNSSToken
    - NSSArena_Create
    linkageType: ''
    returnType: NSS_EXTERN
    signature: 'NSS_EXTERN NSSCertificate *

      STAN_GetNSSCertificate(CERTCertificate *cc)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: nssPKIObject_GetInstances
      Src: /src/nss/lib/pki/pki3hack.c:1133,1
    - Dst: nssToken_FindTrustForCertificate
      Src: /src/nss/lib/pki/pki3hack.c:1140,1
    - Dst: PK11_IsReadOnly
      Src: /src/nss/lib/pki/pki3hack.c:1144,1
    - Dst: nssCryptokiObject_Destroy
      Src: /src/nss/lib/pki/pki3hack.c:1147,1
    - Dst: nssCryptokiObjectArray_Destroy
      Src: /src/nss/lib/pki/pki3hack.c:1161,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 1
    argNames:
    - c
    argTypes:
    - NSSCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1163
      start: 1125
    functionDepth: 1
    functionLinenumber: 1125
    functionLinenumberEnd: 1163
    functionName: stan_GetTrustToken
    functionSourceFile: /src/nss/lib/pki/pki3hack.c
    functionUses: 0
    functionsReached:
    - nssCryptokiObjectArray_Destroy
    - nssCryptokiObject_Destroy
    - nssToken_FindTrustForCertificate
    - nssPKIObject_GetInstances
    - PK11_IsReadOnly
    linkageType: ''
    returnType: NSSToken
    signature: "NSSToken *\nstan_GetTrustToken(\n    NSSCertificate *c)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: STAN_GetNSSCertificate
      Src: /src/nss/lib/pki/pki3hack.c:1169,1
    - Dst: nssTrust_GetCERTCertTrustForCert
      Src: /src/nss/lib/pki/pki3hack.c:1184,1
    - Dst: memcmp
      Src: /src/nss/lib/pki/pki3hack.c:1186,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/pki/pki3hack.c:1194,1
    - Dst: memcpy
      Src: /src/nss/lib/pki/pki3hack.c:1196,1
    - Dst: CERT_LockCertTrust
      Src: /src/nss/lib/pki/pki3hack.c:1197,1
    - Dst: CERT_UnlockCertTrust
      Src: /src/nss/lib/pki/pki3hack.c:1199,1
    - Dst: nssArena_Create
      Src: /src/nss/lib/pki/pki3hack.c:1201,1
    - Dst: nss_ZNEW
      Src: /src/nss/lib/pki/pki3hack.c:1204,1
    - Dst: nssArena_Destroy
      Src: /src/nss/lib/pki/pki3hack.c:1206,1
    - Dst: nssPKIObject_Create
      Src: /src/nss/lib/pki/pki3hack.c:1209,1
    - Dst: nssArena_Destroy
      Src: /src/nss/lib/pki/pki3hack.c:1211,1
    - Dst: get_stan_trust
      Src: /src/nss/lib/pki/pki3hack.c:1216,1
    - Dst: get_stan_trust
      Src: /src/nss/lib/pki/pki3hack.c:1217,1
    - Dst: get_stan_trust
      Src: /src/nss/lib/pki/pki3hack.c:1218,1
    - Dst: get_stan_trust
      Src: /src/nss/lib/pki/pki3hack.c:1219,1
    - Dst: nssCryptoContext_ImportTrust
      Src: /src/nss/lib/pki/pki3hack.c:1225,1
    - Dst: STAN_GetDefaultTrustDomain
      Src: /src/nss/lib/pki/pki3hack.c:1234,1
    - Dst: stan_GetTrustToken
      Src: /src/nss/lib/pki/pki3hack.c:1235,1
    - Dst: PK11_IsReadOnly
      Src: /src/nss/lib/pki/pki3hack.c:1237,1
    - Dst: NSSRWLock_LockRead
      Src: /src/nss/lib/pki/pki3hack.c:1238,1
    - Dst: nssList_CreateIterator
      Src: /src/nss/lib/pki/pki3hack.c:1239,1
    - Dst: NSSRWLock_UnlockRead
      Src: /src/nss/lib/pki/pki3hack.c:1242,1
    - Dst: nssListIterator_Start
      Src: /src/nss/lib/pki/pki3hack.c:1245,1
    - Dst: nssListIterator_Next
      Src: /src/nss/lib/pki/pki3hack.c:1247,1
    - Dst: PK11_IsReadOnly
      Src: /src/nss/lib/pki/pki3hack.c:1248,1
    - Dst: nssListIterator_Finish
      Src: /src/nss/lib/pki/pki3hack.c:1251,1
    - Dst: nssListIterator_Destroy
      Src: /src/nss/lib/pki/pki3hack.c:1252,1
    - Dst: NSSRWLock_UnlockRead
      Src: /src/nss/lib/pki/pki3hack.c:1253,1
    - Dst: nssCertificate_GetNickname
      Src: /src/nss/lib/pki/pki3hack.c:1261,1
    - Dst: PK11_IsInternal
      Src: /src/nss/lib/pki/pki3hack.c:1264,1
    - Dst: nssToken_ImportCertificate
      Src: /src/nss/lib/pki/pki3hack.c:1267,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/pki/pki3hack.c:1277,1
    - Dst: nssPKIObject_AddInstance
      Src: /src/nss/lib/pki/pki3hack.c:1283,1
    - Dst: nssToken_ImportTrust
      Src: /src/nss/lib/pki/pki3hack.c:1285,1
    - Dst: PK11_IsInternalKeySlot
      Src: /src/nss/lib/pki/pki3hack.c:1294,1
    - Dst: PK11_GetInternalKeySlot
      Src: /src/nss/lib/pki/pki3hack.c:1295,1
    - Dst: nssCertificate_GetNickname
      Src: /src/nss/lib/pki/pki3hack.c:1296,1
    - Dst: PK11Slot_GetNSSToken
      Src: /src/nss/lib/pki/pki3hack.c:1298,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pki/pki3hack.c:1299,1
    - Dst: nssToken_ImportCertificate
      Src: /src/nss/lib/pki/pki3hack.c:1305,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/pki/pki3hack.c:1315,1
    - Dst: nssToken_Destroy
      Src: /src/nss/lib/pki/pki3hack.c:1318,1
    - Dst: nssPKIObject_AddInstance
      Src: /src/nss/lib/pki/pki3hack.c:1322,1
    - Dst: nssToken_ImportTrust
      Src: /src/nss/lib/pki/pki3hack.c:1323,1
    - Dst: nssToken_Destroy
      Src: /src/nss/lib/pki/pki3hack.c:1330,1
    - Dst: nssCryptokiObject_Destroy
      Src: /src/nss/lib/pki/pki3hack.c:1333,1
    - Dst: nssTrust_Destroy
      Src: /src/nss/lib/pki/pki3hack.c:1342,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 120
    argCount: 2
    argNames:
    - cc
    - trust
    argTypes:
    - CERTCertificate*
    - CERTCertTrust*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1344
      start: 1165
    functionDepth: 4
    functionLinenumber: 1165
    functionLinenumberEnd: 1344
    functionName: STAN_ChangeCertTrust
    functionSourceFile: /src/nss/lib/pki/pki3hack.c
    functionUses: 0
    functionsReached:
    - PK11_GetInternalKeySlot
    - stan_GetTrustToken
    - STAN_GetDefaultTrustDomain
    - nssListIterator_Finish
    - nss_ZFreeIf
    - nssPKIObject_Create
    - nssArena_Destroy
    - CERT_LockCertTrust
    - memcpy
    - nssListIterator_Destroy
    - nssToken_Destroy
    - PORT_ArenaAlloc
    - NSSRWLock_UnlockRead
    - PK11_IsInternalKeySlot
    - PK11Slot_GetNSSToken
    - memcmp
    - PK11_IsReadOnly
    - nssArena_Create
    - STAN_GetNSSCertificate
    - nssList_CreateIterator
    - nssTrust_GetCERTCertTrustForCert
    - nssListIterator_Start
    - get_stan_trust
    - nssCryptoContext_ImportTrust
    - CERT_UnlockCertTrust
    - nssPKIObject_AddInstance
    - NSSRWLock_LockRead
    - nssCertificate_GetNickname
    - PK11_IsInternal
    - nssToken_ImportTrust
    - PK11_FreeSlot
    - nssToken_ImportCertificate
    - nss_ZNEW
    - nssListIterator_Next
    - nssCryptokiObject_Destroy
    - nssTrust_Destroy
    linkageType: ''
    returnType: NSS_EXTERN
    signature: NSS_EXTERN STAN_ChangeCertTrust(CERTCertificate *cc, CERTCertTrust
      *trust)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nssPKIObject_AddRef
      Src: /src/nss/lib/pki/pki3hack.c:1361,1
    - Dst: nssPKIObject_Lock
      Src: /src/nss/lib/pki/pki3hack.c:1362,1
    - Dst: PK11_IsReadOnly
      Src: /src/nss/lib/pki/pki3hack.c:1371,1
    - Dst: nssToken_DeleteStoredObject
      Src: /src/nss/lib/pki/pki3hack.c:1379,1
    - Dst: nssCryptokiObject_Destroy
      Src: /src/nss/lib/pki/pki3hack.c:1380,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/pki/pki3hack.c:1387,1
    - Dst: nssPKIObject_Unlock
      Src: /src/nss/lib/pki/pki3hack.c:1393,1
    - Dst: nssPKIObject_Destroy
      Src: /src/nss/lib/pki/pki3hack.c:1394,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - pk11slot
    - tObject
    argTypes:
    - PK11SlotInfo*
    - nssPKIObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1397
      start: 1354
    functionDepth: 3
    functionLinenumber: 1354
    functionLinenumberEnd: 1397
    functionName: DeleteCertTrustMatchingSlot
    functionSourceFile: /src/nss/lib/pki/pki3hack.c
    functionUses: 0
    functionsReached:
    - nssPKIObject_AddRef
    - PK11_IsReadOnly
    - nss_ZFreeIf
    - nssCryptokiObject_Destroy
    - nssPKIObject_Unlock
    - nssPKIObject_Destroy
    - nssPKIObject_Lock
    - nssToken_DeleteStoredObject
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus DeleteCertTrustMatchingSlot(PK11SlotInfo *pk11slot, nssPKIObject
      *tObject)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STAN_GetDefaultTrustDomain
      Src: /src/nss/lib/pki/pki3hack.c:1412,1
    - Dst: nssTrustDomain_FindTrustForCertificate
      Src: /src/nss/lib/pki/pki3hack.c:1413,1
    - Dst: NSSRWLock_LockRead
      Src: /src/nss/lib/pki/pki3hack.c:1425,1
    - Dst: nssPKIObject_AddRef
      Src: /src/nss/lib/pki/pki3hack.c:1426,1
    - Dst: nssPKIObject_Lock
      Src: /src/nss/lib/pki/pki3hack.c:1427,1
    - Dst: PK11_IsReadOnly
      Src: /src/nss/lib/pki/pki3hack.c:1430,1
    - Dst: DeleteCertTrustMatchingSlot
      Src: /src/nss/lib/pki/pki3hack.c:1434,1
    - Dst: nssTrust_Destroy
      Src: /src/nss/lib/pki/pki3hack.c:1441,1
    - Dst: nssPKIObject_Unlock
      Src: /src/nss/lib/pki/pki3hack.c:1442,1
    - Dst: nssPKIObject_Destroy
      Src: /src/nss/lib/pki/pki3hack.c:1443,1
    - Dst: NSSRWLock_UnlockRead
      Src: /src/nss/lib/pki/pki3hack.c:1444,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - c
    argTypes:
    - NSSCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1446
      start: 1403
    functionDepth: 4
    functionLinenumber: 1403
    functionLinenumberEnd: 1446
    functionName: STAN_DeleteCertTrustMatchingSlot
    functionSourceFile: /src/nss/lib/pki/pki3hack.c
    functionUses: 0
    functionsReached:
    - nssPKIObject_AddRef
    - DeleteCertTrustMatchingSlot
    - STAN_GetDefaultTrustDomain
    - NSSRWLock_UnlockRead
    - nssPKIObject_Unlock
    - nssTrust_Destroy
    - nssPKIObject_Destroy
    - NSSRWLock_LockRead
    - nssPKIObject_Lock
    - nssTrustDomain_FindTrustForCertificate
    - PK11_IsReadOnly
    linkageType: ''
    returnType: NSS_EXTERN
    signature: NSS_EXTERN STAN_DeleteCertTrustMatchingSlot(NSSCertificate *c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NSSArena_Create
      Src: /src/nss/lib/pki/pki3hack.c:1461,1
    - Dst: NSSTrustDomain_FindCertificatesBySubject
      Src: /src/nss/lib/pki/pki3hack.c:1465,1
    - Dst: callback
      Src: /src/nss/lib/pki/pki3hack.c:1469,1
    - Dst: nssArena_Destroy
      Src: /src/nss/lib/pki/pki3hack.c:1474,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - td
    - subject
    - arg
    argTypes:
    - NSSTrustDomain*
    - NSSDER*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1476
      start: 1449
    functionDepth: 1
    functionLinenumber: 1449
    functionLinenumberEnd: 1476
    functionName: nssTrustDomain_TraverseCertificatesBySubject
    functionSourceFile: /src/nss/lib/pki/pki3hack.c
    functionUses: 0
    functionsReached:
    - callback
    - NSSTrustDomain_FindCertificatesBySubject
    - NSSArena_Create
    - nssArena_Destroy
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssTrustDomain_TraverseCertificatesBySubject(\n    NSSTrustDomain
      *td,\n    NSSDER *subject,\n    PRStatus (*callback)(NSSCertificate *c, void
      *arg),\n    void *arg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NSSArena_Create
      Src: /src/nss/lib/pki/pki3hack.c:1491,1
    - Dst: NSSTrustDomain_FindCertificatesByNickname
      Src: /src/nss/lib/pki/pki3hack.c:1495,1
    - Dst: callback
      Src: /src/nss/lib/pki/pki3hack.c:1499,1
    - Dst: nssArena_Destroy
      Src: /src/nss/lib/pki/pki3hack.c:1504,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - td
    - nickname
    - arg
    argTypes:
    - NSSTrustDomain*
    - NSSUTF8*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1506
      start: 1479
    functionDepth: 1
    functionLinenumber: 1479
    functionLinenumberEnd: 1506
    functionName: nssTrustDomain_TraverseCertificatesByNickname
    functionSourceFile: /src/nss/lib/pki/pki3hack.c
    functionUses: 0
    functionsReached:
    - callback
    - NSSArena_Create
    - NSSTrustDomain_FindCertificatesByNickname
    - nssArena_Destroy
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssTrustDomain_TraverseCertificatesByNickname(\n    NSSTrustDomain
      *td,\n    NSSUTF8 *nickname,\n    PRStatus (*callback)(NSSCertificate *c, void
      *arg),\n    void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STAN_GetCERTCertificate
      Src: /src/nss/lib/pki/pki3hack.c:1512,1
    - Dst: printf
      Src: /src/nss/lib/pki/pki3hack.c:1513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - k
    - v
    - a
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1514
      start: 1508
    functionDepth: 0
    functionLinenumber: 1508
    functionLinenumberEnd: 1514
    functionName: cert_dump_iter
    functionSourceFile: /src/nss/lib/pki/pki3hack.c
    functionUses: 0
    functionsReached:
    - STAN_GetCERTCertificate
    - printf
    linkageType: ''
    returnType: void
    signature: void cert_dump_iter(const void *k, void *v, void *a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STAN_GetDefaultTrustDomain
      Src: /src/nss/lib/pki/pki3hack.c:1521,1
    - Dst: STAN_GetDefaultCryptoContext
      Src: /src/nss/lib/pki/pki3hack.c:1522,1
    - Dst: printf
      Src: /src/nss/lib/pki/pki3hack.c:1523,1
    - Dst: nssTrustDomain_DumpCacheInfo
      Src: /src/nss/lib/pki/pki3hack.c:1524,1
    - Dst: printf
      Src: /src/nss/lib/pki/pki3hack.c:1525,1
    - Dst: nssCertificateStore_DumpStoreInfo
      Src: /src/nss/lib/pki/pki3hack.c:1527,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1529
      start: 1516
    functionDepth: 2
    functionLinenumber: 1516
    functionLinenumberEnd: 1529
    functionName: nss_DumpCertificateCacheInfo
    functionSourceFile: /src/nss/lib/pki/pki3hack.c
    functionUses: 1
    functionsReached:
    - STAN_GetDefaultTrustDomain
    - printf
    - nssCertificateStore_DumpStoreInfo
    - STAN_GetDefaultCryptoContext
    - nssTrustDomain_DumpCacheInfo
    linkageType: ''
    returnType: void
    signature: void nss_DumpCertificateCacheInfo()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NSSArena_Create
      Src: /src/nss/lib/pki/cryptocontext.c:27,1
    - Dst: nss_ZNEW
      Src: /src/nss/lib/pki/cryptocontext.c:31,1
    - Dst: nssCertificateStore_Create
      Src: /src/nss/lib/pki/cryptocontext.c:37,1
    - Dst: nssArena_Destroy
      Src: /src/nss/lib/pki/cryptocontext.c:39,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 44
    functionName: "NSSCryptoContext *\nnssCryptoContext_Create(\n    NSSTrustDomain
      *td,\n    NSSCallback *uhhOpt)"
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - NSSArena_Create
    - nssCertificateStore_Create
    - nss_ZNEW
    - nssArena_Destroy
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCryptoContext *\nnssCryptoContext_Create(\n    NSSTrustDomain
      *td,\n    NSSCallback *uhhOpt)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pki/cryptocontext.c:50,1
    - Dst: nssCertificateStore_Destroy
      Src: /src/nss/lib/pki/cryptocontext.c:55,1
    - Dst: nssArena_Destroy
      Src: /src/nss/lib/pki/cryptocontext.c:62,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - cc
    argTypes:
    - NSSCryptoContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 64
    functionName: NSSCryptoContext_Destroy
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - nssArena_Destroy
    - nssCertificateStore_Destroy
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT NSSCryptoContext_Destroy(NSSCryptoContext *cc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/cryptocontext.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - td
    - newCallback
    - oldCallbackOpt
    argTypes:
    - NSSCryptoContext*
    - NSSCallback*
    - NSSCallback**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 74
    functionName: NSSCryptoContext_SetDefaultCallback
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCryptoContext_SetDefaultCallback(\n    NSSCryptoContext
      *td,\n    NSSCallback *newCallback,\n    NSSCallback **oldCallbackOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/cryptocontext.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 83
    functionName: "NSSCallback *\nNSSCryptoContext_GetDefaultCallback(\n    NSSCryptoContext
      *td,\n    PRStatus *statusOpt)"
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCallback *\nNSSCryptoContext_GetDefaultCallback(\n
      \   NSSCryptoContext *td,\n    PRStatus *statusOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/cryptocontext.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 90
    functionName: 'NSSTrustDomain *

      NSSCryptoContext_GetTrustDomain(NSSCryptoContext *td)'
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: 'NSS_IMPLEMENT NSSTrustDomain *

      NSSCryptoContext_GetTrustDomain(NSSCryptoContext *td)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pki/cryptocontext.c:99,1
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/cryptocontext.c:101,1
    - Dst: nssCertificateStore_FindOrAdd
      Src: /src/nss/lib/pki/cryptocontext.c:104,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pki/cryptocontext.c:106,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pki/cryptocontext.c:114,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 117
    functionName: "NSSCertificate *\nNSSCryptoContext_FindOrImportCertificate(\n    NSSCryptoContext
      *cc,\n    NSSCertificate *c)"
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - nssCertificateStore_FindOrAdd
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate *\nNSSCryptoContext_FindOrImportCertificate(\n
      \   NSSCryptoContext *cc,\n    NSSCertificate *c)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/cryptocontext.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 126
    functionName: "NSSCertificate *\nNSSCryptoContext_ImportPKIXCertificate(\n    NSSCryptoContext
      *cc,\n    struct NSSPKIXCertificateStr *pc)"
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate *\nNSSCryptoContext_ImportPKIXCertificate(\n
      \   NSSCryptoContext *cc,\n    struct NSSPKIXCertificateStr *pc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/cryptocontext.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 135
    functionName: "NSSCertificate *\nNSSCryptoContext_ImportEncodedCertificate(\n
      \   NSSCryptoContext *cc,\n    NSSBER *ber)"
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate *\nNSSCryptoContext_ImportEncodedCertificate(\n
      \   NSSCryptoContext *cc,\n    NSSBER *ber)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/cryptocontext.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cc
    - ber
    argTypes:
    - NSSCryptoContext*
    - NSSBER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 144
    functionName: NSSCryptoContext_ImportEncodedPKIXCertificateChain
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCryptoContext_ImportEncodedPKIXCertificateChain(\n
      \   NSSCryptoContext *cc,\n    NSSBER *ber)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pki/cryptocontext.c:152,1
    - Dst: nssCertificateStore_AddTrust
      Src: /src/nss/lib/pki/cryptocontext.c:156,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - cc
    - trust
    argTypes:
    - NSSCryptoContext*
    - NSSTrust*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 163
    functionName: nssCryptoContext_ImportTrust
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - nssCertificateStore_AddTrust
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCryptoContext_ImportTrust(\n    NSSCryptoContext
      *cc,\n    NSSTrust *trust)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pki/cryptocontext.c:171,1
    - Dst: nssCertificateStore_AddSMIMEProfile
      Src: /src/nss/lib/pki/cryptocontext.c:175,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - cc
    - profile
    argTypes:
    - NSSCryptoContext*
    - nssSMIMEProfile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 182
    functionName: nssCryptoContext_ImportSMIMEProfile
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - nssCertificateStore_AddSMIMEProfile
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCryptoContext_ImportSMIMEProfile(\n    NSSCryptoContext
      *cc,\n    nssSMIMEProfile *profile)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pki/cryptocontext.c:195,1
    - Dst: nssCertificateStore_FindCertificatesByNickname
      Src: /src/nss/lib/pki/cryptocontext.c:199,1
    - Dst: nssCertificateArray_FindBestCertificate
      Src: /src/nss/lib/pki/cryptocontext.c:203,1
    - Dst: nssCertificateArray_Destroy
      Src: /src/nss/lib/pki/cryptocontext.c:207,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 184
    functionDepth: 7
    functionLinenumber: 184
    functionLinenumberEnd: 210
    functionName: "NSSCertificate *\nNSSCryptoContext_FindBestCertificateByNickname(\n
      \   NSSCryptoContext *cc,\n    const NSSUTF8 *name,\n    NSSTime *timeOpt, /*
      NULL for \"now\" */\n    NSSUsage *usage,\n    NSSPolicies *policiesOpt /* NULL
      for none */\n)"
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - nssCertificateArray_Destroy
    - nssCertificateArray_FindBestCertificate
    - nssCertificateStore_FindCertificatesByNickname
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate *\nNSSCryptoContext_FindBestCertificateByNickname(\n
      \   NSSCryptoContext *cc,\n    const NSSUTF8 *name,\n    NSSTime *timeOpt, /*
      NULL for \"now\" */\n    NSSUsage *usage,\n    NSSPolicies *policiesOpt /* NULL
      for none */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pki/cryptocontext.c:221,1
    - Dst: nssCertificateStore_FindCertificatesByNickname
      Src: /src/nss/lib/pki/cryptocontext.c:225,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 231
    functionName: "NSSCertificate **\nNSSCryptoContext_FindCertificatesByNickname(\n
      \   NSSCryptoContext *cc,\n    NSSUTF8 *name,\n    NSSCertificate *rvOpt[],\n
      \   PRUint32 maximumOpt, /* 0 for no max */\n    NSSArena *arenaOpt)"
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - nssCertificateStore_FindCertificatesByNickname
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate **\nNSSCryptoContext_FindCertificatesByNickname(\n
      \   NSSCryptoContext *cc,\n    NSSUTF8 *name,\n    NSSCertificate *rvOpt[],\n
      \   PRUint32 maximumOpt, /* 0 for no max */\n    NSSArena *arenaOpt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pki/cryptocontext.c:239,1
    - Dst: nssCertificateStore_FindCertificateByIssuerAndSerialNumber
      Src: /src/nss/lib/pki/cryptocontext.c:243,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 247
    functionName: "NSSCertificate *\nNSSCryptoContext_FindCertificateByIssuerAndSerialNumber(\n
      \   NSSCryptoContext *cc,\n    NSSDER *issuer,\n    NSSDER *serialNumber)"
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - nssCertificateStore_FindCertificateByIssuerAndSerialNumber
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate *\nNSSCryptoContext_FindCertificateByIssuerAndSerialNumber(\n
      \   NSSCryptoContext *cc,\n    NSSDER *issuer,\n    NSSDER *serialNumber)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pki/cryptocontext.c:259,1
    - Dst: nssCertificateStore_FindCertificatesBySubject
      Src: /src/nss/lib/pki/cryptocontext.c:263,1
    - Dst: nssCertificateArray_FindBestCertificate
      Src: /src/nss/lib/pki/cryptocontext.c:267,1
    - Dst: nssCertificateArray_Destroy
      Src: /src/nss/lib/pki/cryptocontext.c:271,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 249
    functionDepth: 7
    functionLinenumber: 249
    functionLinenumberEnd: 274
    functionName: "NSSCertificate *\nNSSCryptoContext_FindBestCertificateBySubject(\n
      \   NSSCryptoContext *cc,\n    NSSDER *subject,\n    NSSTime *timeOpt,\n    NSSUsage
      *usage,\n    NSSPolicies *policiesOpt)"
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - nssCertificateStore_FindCertificatesBySubject
    - nssCertificateArray_Destroy
    - nssCertificateArray_FindBestCertificate
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate *\nNSSCryptoContext_FindBestCertificateBySubject(\n
      \   NSSCryptoContext *cc,\n    NSSDER *subject,\n    NSSTime *timeOpt,\n    NSSUsage
      *usage,\n    NSSPolicies *policiesOpt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pki/cryptocontext.c:285,1
    - Dst: nssCertificateStore_FindCertificatesBySubject
      Src: /src/nss/lib/pki/cryptocontext.c:289,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 295
    functionName: "NSSCertificate **\nnssCryptoContext_FindCertificatesBySubject(\n
      \   NSSCryptoContext *cc,\n    NSSDER *subject,\n    NSSCertificate *rvOpt[],\n
      \   PRUint32 maximumOpt, /* 0 for no max */\n    NSSArena *arenaOpt)"
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - nssCertificateStore_FindCertificatesBySubject
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate **\nnssCryptoContext_FindCertificatesBySubject(\n
      \   NSSCryptoContext *cc,\n    NSSDER *subject,\n    NSSCertificate *rvOpt[],\n
      \   PRUint32 maximumOpt, /* 0 for no max */\n    NSSArena *arenaOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssCryptoContext_FindCertificatesBySubject
      Src: /src/nss/lib/pki/cryptocontext.c:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 308
    functionName: "NSSCertificate **\nNSSCryptoContext_FindCertificatesBySubject(\n
      \   NSSCryptoContext *cc,\n    NSSDER *subject,\n    NSSCertificate *rvOpt[],\n
      \   PRUint32 maximumOpt, /* 0 for no max */\n    NSSArena *arenaOpt)"
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - nssCryptoContext_FindCertificatesBySubject
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate **\nNSSCryptoContext_FindCertificatesBySubject(\n
      \   NSSCryptoContext *cc,\n    NSSDER *subject,\n    NSSCertificate *rvOpt[],\n
      \   PRUint32 maximumOpt, /* 0 for no max */\n    NSSArena *arenaOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/cryptocontext.c:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 320
    functionName: "NSSCertificate *\nNSSCryptoContext_FindBestCertificateByNameComponents(\n
      \   NSSCryptoContext *cc,\n    NSSUTF8 *nameComponents,\n    NSSTime *timeOpt,\n
      \   NSSUsage *usage,\n    NSSPolicies *policiesOpt)"
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate *\nNSSCryptoContext_FindBestCertificateByNameComponents(\n
      \   NSSCryptoContext *cc,\n    NSSUTF8 *nameComponents,\n    NSSTime *timeOpt,\n
      \   NSSUsage *usage,\n    NSSPolicies *policiesOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/cryptocontext.c:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 332
    functionName: "NSSCertificate **\nNSSCryptoContext_FindCertificatesByNameComponents(\n
      \   NSSCryptoContext *cc,\n    NSSUTF8 *nameComponents,\n    NSSCertificate
      *rvOpt[],\n    PRUint32 maximumOpt, /* 0 for no max */\n    NSSArena *arenaOpt)"
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate **\nNSSCryptoContext_FindCertificatesByNameComponents(\n
      \   NSSCryptoContext *cc,\n    NSSUTF8 *nameComponents,\n    NSSCertificate
      *rvOpt[],\n    PRUint32 maximumOpt, /* 0 for no max */\n    NSSArena *arenaOpt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pki/cryptocontext.c:339,1
    - Dst: nssCertificateStore_FindCertificateByEncodedCertificate
      Src: /src/nss/lib/pki/cryptocontext.c:343,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 346
    functionName: "NSSCertificate *\nNSSCryptoContext_FindCertificateByEncodedCertificate(\n
      \   NSSCryptoContext *cc,\n    NSSBER *encodedCertificate)"
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - nssCertificateStore_FindCertificateByEncodedCertificate
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate *\nNSSCryptoContext_FindCertificateByEncodedCertificate(\n
      \   NSSCryptoContext *cc,\n    NSSBER *encodedCertificate)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pki/cryptocontext.c:359,1
    - Dst: nssCertificateStore_FindCertificatesByEmail
      Src: /src/nss/lib/pki/cryptocontext.c:363,1
    - Dst: nssCertificateArray_FindBestCertificate
      Src: /src/nss/lib/pki/cryptocontext.c:367,1
    - Dst: nssCertificateArray_Destroy
      Src: /src/nss/lib/pki/cryptocontext.c:371,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 348
    functionDepth: 7
    functionLinenumber: 348
    functionLinenumberEnd: 374
    functionName: "NSSCertificate *\nNSSCryptoContext_FindBestCertificateByEmail(\n
      \   NSSCryptoContext *cc,\n    NSSASCII7 *email,\n    NSSTime *timeOpt,\n    NSSUsage
      *usage,\n    NSSPolicies *policiesOpt)"
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - nssCertificateStore_FindCertificatesByEmail
    - PORT_Assert
    - nssCertificateArray_Destroy
    - nssCertificateArray_FindBestCertificate
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate *\nNSSCryptoContext_FindBestCertificateByEmail(\n
      \   NSSCryptoContext *cc,\n    NSSASCII7 *email,\n    NSSTime *timeOpt,\n    NSSUsage
      *usage,\n    NSSPolicies *policiesOpt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pki/cryptocontext.c:385,1
    - Dst: nssCertificateStore_FindCertificatesByEmail
      Src: /src/nss/lib/pki/cryptocontext.c:389,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 395
    functionName: "NSSCertificate **\nNSSCryptoContext_FindCertificatesByEmail(\n
      \   NSSCryptoContext *cc,\n    NSSASCII7 *email,\n    NSSCertificate *rvOpt[],\n
      \   PRUint32 maximumOpt, /* 0 for no max */\n    NSSArena *arenaOpt)"
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - nssCertificateStore_FindCertificatesByEmail
    - PORT_Assert
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate **\nNSSCryptoContext_FindCertificatesByEmail(\n
      \   NSSCryptoContext *cc,\n    NSSASCII7 *email,\n    NSSCertificate *rvOpt[],\n
      \   PRUint32 maximumOpt, /* 0 for no max */\n    NSSArena *arenaOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/cryptocontext.c:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 404
    functionName: "NSSCertificate *\nNSSCryptoContext_FindCertificateByOCSPHash(\n
      \   NSSCryptoContext *cc,\n    NSSItem *hash)"
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate *\nNSSCryptoContext_FindCertificateByOCSPHash(\n
      \   NSSCryptoContext *cc,\n    NSSItem *hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/cryptocontext.c:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 415
    functionName: "NSSCertificate *\nNSSCryptoContext_FindBestUserCertificate(\n    NSSCryptoContext
      *cc,\n    NSSTime *timeOpt,\n    NSSUsage *usage,\n    NSSPolicies *policiesOpt)"
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate *\nNSSCryptoContext_FindBestUserCertificate(\n
      \   NSSCryptoContext *cc,\n    NSSTime *timeOpt,\n    NSSUsage *usage,\n    NSSPolicies
      *policiesOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/cryptocontext.c:427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 417
    functionDepth: 1
    functionLinenumber: 417
    functionLinenumberEnd: 429
    functionName: "NSSCertificate **\nNSSCryptoContext_FindUserCertificates(\n    NSSCryptoContext
      *cc,\n    NSSTime *timeOpt,\n    NSSUsage *usageOpt,\n    NSSPolicies *policiesOpt,\n
      \   NSSCertificate **rvOpt,\n    PRUint32 rvLimit, /* zero for no limit */\n
      \   NSSArena *arenaOpt)"
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate **\nNSSCryptoContext_FindUserCertificates(\n
      \   NSSCryptoContext *cc,\n    NSSTime *timeOpt,\n    NSSUsage *usageOpt,\n
      \   NSSPolicies *policiesOpt,\n    NSSCertificate **rvOpt,\n    PRUint32 rvLimit,
      /* zero for no limit */\n    NSSArena *arenaOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/cryptocontext.c:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 431
    functionDepth: 1
    functionLinenumber: 431
    functionLinenumberEnd: 442
    functionName: "NSSCertificate *\nNSSCryptoContext_FindBestUserCertificateForSSLClientAuth(\n
      \   NSSCryptoContext *cc,\n    NSSUTF8 *sslHostOpt,\n    NSSDER *rootCAsOpt[],
      \  /* null pointer for none */\n    PRUint32 rootCAsMaxOpt, /* zero means list
      is null-terminated */\n    NSSAlgorithmAndParameters *apOpt,\n    NSSPolicies
      *policiesOpt)"
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate *\nNSSCryptoContext_FindBestUserCertificateForSSLClientAuth(\n
      \   NSSCryptoContext *cc,\n    NSSUTF8 *sslHostOpt,\n    NSSDER *rootCAsOpt[],
      \  /* null pointer for none */\n    PRUint32 rootCAsMaxOpt, /* zero means list
      is null-terminated */\n    NSSAlgorithmAndParameters *apOpt,\n    NSSPolicies
      *policiesOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/cryptocontext.c:456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 458
    functionName: "NSSCertificate **\nNSSCryptoContext_FindUserCertificatesForSSLClientAuth(\n
      \   NSSCryptoContext *cc,\n    NSSUTF8 *sslHostOpt,\n    NSSDER *rootCAsOpt[],
      \  /* null pointer for none */\n    PRUint32 rootCAsMaxOpt, /* zero means list
      is null-terminated */\n    NSSAlgorithmAndParameters *apOpt,\n    NSSPolicies
      *policiesOpt,\n    NSSCertificate **rvOpt,\n    PRUint32 rvLimit, /* zero for
      no limit */\n    NSSArena *arenaOpt)"
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate **\nNSSCryptoContext_FindUserCertificatesForSSLClientAuth(\n
      \   NSSCryptoContext *cc,\n    NSSUTF8 *sslHostOpt,\n    NSSDER *rootCAsOpt[],
      \  /* null pointer for none */\n    PRUint32 rootCAsMaxOpt, /* zero means list
      is null-terminated */\n    NSSAlgorithmAndParameters *apOpt,\n    NSSPolicies
      *policiesOpt,\n    NSSCertificate **rvOpt,\n    PRUint32 rvLimit, /* zero for
      no limit */\n    NSSArena *arenaOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/cryptocontext.c:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 471
    functionName: "NSSCertificate *\nNSSCryptoContext_FindBestUserCertificateForEmailSigning(\n
      \   NSSCryptoContext *cc,\n    NSSASCII7 *signerOpt,\n    NSSASCII7 *recipientOpt,\n
      \   /* anything more here? */\n    NSSAlgorithmAndParameters *apOpt,\n    NSSPolicies
      *policiesOpt)"
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate *\nNSSCryptoContext_FindBestUserCertificateForEmailSigning(\n
      \   NSSCryptoContext *cc,\n    NSSASCII7 *signerOpt,\n    NSSASCII7 *recipientOpt,\n
      \   /* anything more here? */\n    NSSAlgorithmAndParameters *apOpt,\n    NSSPolicies
      *policiesOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/cryptocontext.c:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 473
    functionDepth: 1
    functionLinenumber: 473
    functionLinenumberEnd: 487
    functionName: "NSSCertificate *\nNSSCryptoContext_FindUserCertificatesForEmailSigning(\n
      \   NSSCryptoContext *cc,\n    NSSASCII7 *signerOpt, /* fgmr or a more general
      name? */\n    NSSASCII7 *recipientOpt,\n    /* anything more here? */\n    NSSAlgorithmAndParameters
      *apOpt,\n    NSSPolicies *policiesOpt,\n    NSSCertificate **rvOpt,\n    PRUint32
      rvLimit, /* zero for no limit */\n    NSSArena *arenaOpt)"
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCertificate *\nNSSCryptoContext_FindUserCertificatesForEmailSigning(\n
      \   NSSCryptoContext *cc,\n    NSSASCII7 *signerOpt, /* fgmr or a more general
      name? */\n    NSSASCII7 *recipientOpt,\n    /* anything more here? */\n    NSSAlgorithmAndParameters
      *apOpt,\n    NSSPolicies *policiesOpt,\n    NSSCertificate **rvOpt,\n    PRUint32
      rvLimit, /* zero for no limit */\n    NSSArena *arenaOpt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pki/cryptocontext.c:494,1
    - Dst: nssCertificateStore_FindTrustForCertificate
      Src: /src/nss/lib/pki/cryptocontext.c:498,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - cc
    - cert
    argTypes:
    - NSSCryptoContext*
    - NSSCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 489
    functionDepth: 2
    functionLinenumber: 489
    functionLinenumberEnd: 499
    functionName: nssCryptoContext_FindTrustForCertificate
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - nssCertificateStore_FindTrustForCertificate
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nnssCryptoContext_FindTrustForCertificate(\n    NSSCryptoContext
      *cc,\n    NSSCertificate *cert)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pki/cryptocontext.c:506,1
    - Dst: nssCertificateStore_FindSMIMEProfileForCertificate
      Src: /src/nss/lib/pki/cryptocontext.c:510,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 512
    functionName: "nssSMIMEProfile *\nnssCryptoContext_FindSMIMEProfileForCertificate(\n
      \   NSSCryptoContext *cc,\n    NSSCertificate *cert)"
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - nssCertificateStore_FindSMIMEProfileForCertificate
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssSMIMEProfile *\nnssCryptoContext_FindSMIMEProfileForCertificate(\n
      \   NSSCryptoContext *cc,\n    NSSCertificate *cert)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/cryptocontext.c:524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 7
    argNames:
    - cc
    - ap
    - pvkOpt
    - pbkOpt
    - privateKeyIsSensitive
    - destination
    - uhhOpt
    argTypes:
    - NSSCryptoContext*
    - NSSAlgorithmAndParameters*
    - NSSPrivateKey**
    - NSSPublicKey**
    - PRBool
    - NSSToken*
    - NSSCallback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 514
    functionDepth: 1
    functionLinenumber: 514
    functionLinenumberEnd: 526
    functionName: NSSCryptoContext_GenerateKeyPair
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCryptoContext_GenerateKeyPair(\n    NSSCryptoContext
      *cc,\n    NSSAlgorithmAndParameters *ap,\n    NSSPrivateKey **pvkOpt,\n    NSSPublicKey
      **pbkOpt,\n    PRBool privateKeyIsSensitive,\n    NSSToken *destination,\n    NSSCallback
      *uhhOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/cryptocontext.c:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 528
    functionDepth: 1
    functionLinenumber: 528
    functionLinenumberEnd: 538
    functionName: "NSSSymmetricKey *\nNSSCryptoContext_GenerateSymmetricKey(\n    NSSCryptoContext
      *cc,\n    NSSAlgorithmAndParameters *ap,\n    PRUint32 keysize,\n    NSSToken
      *destination,\n    NSSCallback *uhhOpt)"
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSSymmetricKey *\nNSSCryptoContext_GenerateSymmetricKey(\n
      \   NSSCryptoContext *cc,\n    NSSAlgorithmAndParameters *ap,\n    PRUint32
      keysize,\n    NSSToken *destination,\n    NSSCallback *uhhOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/cryptocontext.c:548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 540
    functionDepth: 1
    functionLinenumber: 540
    functionLinenumberEnd: 550
    functionName: "NSSSymmetricKey *\nNSSCryptoContext_GenerateSymmetricKeyFromPassword(\n
      \   NSSCryptoContext *cc,\n    NSSAlgorithmAndParameters *ap,\n    NSSUTF8 *passwordOpt,
      /* if null, prompt */\n    NSSToken *destinationOpt,\n    NSSCallback *uhhOpt)"
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSSymmetricKey *\nNSSCryptoContext_GenerateSymmetricKeyFromPassword(\n
      \   NSSCryptoContext *cc,\n    NSSAlgorithmAndParameters *ap,\n    NSSUTF8 *passwordOpt,
      /* if null, prompt */\n    NSSToken *destinationOpt,\n    NSSCallback *uhhOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/cryptocontext.c:559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 552
    functionDepth: 1
    functionLinenumber: 552
    functionLinenumberEnd: 561
    functionName: "NSSSymmetricKey *\nNSSCryptoContext_FindSymmetricKeyByAlgorithmAndKeyID(\n
      \   NSSCryptoContext *cc,\n    NSSOID *algorithm,\n    NSSItem *keyID,\n    NSSCallback
      *uhhOpt)"
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSSymmetricKey *\nNSSCryptoContext_FindSymmetricKeyByAlgorithmAndKeyID(\n
      \   NSSCryptoContext *cc,\n    NSSOID *algorithm,\n    NSSItem *keyID,\n    NSSCallback
      *uhhOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/cryptocontext.c:577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - cc
    - apOpt
    - encryptedData
    - uhhOpt
    - rvOpt
    - arenaOpt
    argTypes:
    - NSSCryptoContext*
    - NSSAlgorithmAndParameters*
    - NSSItem*
    - NSSCallback*
    - NSSItem*
    - NSSArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 579
    functionName: NSSCryptoContext_Decrypt
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSCryptoContext_Decrypt(\n    NSSCryptoContext *cc,\n
      \   NSSAlgorithmAndParameters *apOpt,\n    NSSItem *encryptedData,\n    NSSCallback
      *uhhOpt,\n    NSSItem *rvOpt,\n    NSSArena *arenaOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/cryptocontext.c:587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - cc
    - apOpt
    - uhhOpt
    argTypes:
    - NSSCryptoContext*
    - NSSAlgorithmAndParameters*
    - NSSCallback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 581
    functionDepth: 1
    functionLinenumber: 581
    functionLinenumberEnd: 589
    functionName: NSSCryptoContext_BeginDecrypt
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCryptoContext_BeginDecrypt(\n    NSSCryptoContext
      *cc,\n    NSSAlgorithmAndParameters *apOpt,\n    NSSCallback *uhhOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/cryptocontext.c:598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - cc
    - data
    - rvOpt
    - arenaOpt
    argTypes:
    - NSSCryptoContext*
    - NSSItem*
    - NSSItem*
    - NSSArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 591
    functionDepth: 1
    functionLinenumber: 591
    functionLinenumberEnd: 600
    functionName: NSSCryptoContext_ContinueDecrypt
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSCryptoContext_ContinueDecrypt(\n    NSSCryptoContext
      *cc,\n    NSSItem *data,\n    NSSItem *rvOpt,\n    NSSArena *arenaOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/cryptocontext.c:608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - cc
    - rvOpt
    - arenaOpt
    argTypes:
    - NSSCryptoContext*
    - NSSItem*
    - NSSArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 602
    functionDepth: 1
    functionLinenumber: 602
    functionLinenumberEnd: 610
    functionName: NSSCryptoContext_FinishDecrypt
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSCryptoContext_FinishDecrypt(\n    NSSCryptoContext
      *cc,\n    NSSItem *rvOpt,\n    NSSArena *arenaOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/cryptocontext.c:621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - cc
    - apOpt
    - data
    - uhhOpt
    - rvOpt
    - arenaOpt
    argTypes:
    - NSSCryptoContext*
    - NSSAlgorithmAndParameters*
    - NSSItem*
    - NSSCallback*
    - NSSItem*
    - NSSArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 612
    functionDepth: 1
    functionLinenumber: 612
    functionLinenumberEnd: 623
    functionName: NSSCryptoContext_Sign
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSCryptoContext_Sign(\n    NSSCryptoContext *cc,\n
      \   NSSAlgorithmAndParameters *apOpt,\n    NSSItem *data,\n    NSSCallback *uhhOpt,\n
      \   NSSItem *rvOpt,\n    NSSArena *arenaOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/cryptocontext.c:631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - cc
    - apOpt
    - uhhOpt
    argTypes:
    - NSSCryptoContext*
    - NSSAlgorithmAndParameters*
    - NSSCallback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 625
    functionDepth: 1
    functionLinenumber: 625
    functionLinenumberEnd: 633
    functionName: NSSCryptoContext_BeginSign
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCryptoContext_BeginSign(\n    NSSCryptoContext *cc,\n
      \   NSSAlgorithmAndParameters *apOpt,\n    NSSCallback *uhhOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/cryptocontext.c:640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cc
    - data
    argTypes:
    - NSSCryptoContext*
    - NSSItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 635
    functionDepth: 1
    functionLinenumber: 635
    functionLinenumberEnd: 642
    functionName: NSSCryptoContext_ContinueSign
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCryptoContext_ContinueSign(\n    NSSCryptoContext
      *cc,\n    NSSItem *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/cryptocontext.c:650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - cc
    - rvOpt
    - arenaOpt
    argTypes:
    - NSSCryptoContext*
    - NSSItem*
    - NSSArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 644
    functionDepth: 1
    functionLinenumber: 644
    functionLinenumberEnd: 652
    functionName: NSSCryptoContext_FinishSign
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSCryptoContext_FinishSign(\n    NSSCryptoContext
      *cc,\n    NSSItem *rvOpt,\n    NSSArena *arenaOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/cryptocontext.c:663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - cc
    - apOpt
    - data
    - uhhOpt
    - rvOpt
    - arenaOpt
    argTypes:
    - NSSCryptoContext*
    - NSSAlgorithmAndParameters*
    - NSSItem*
    - NSSCallback*
    - NSSItem*
    - NSSArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 654
    functionDepth: 1
    functionLinenumber: 654
    functionLinenumberEnd: 665
    functionName: NSSCryptoContext_SignRecover
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSCryptoContext_SignRecover(\n    NSSCryptoContext
      *cc,\n    NSSAlgorithmAndParameters *apOpt,\n    NSSItem *data,\n    NSSCallback
      *uhhOpt,\n    NSSItem *rvOpt,\n    NSSArena *arenaOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/cryptocontext.c:673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - cc
    - apOpt
    - uhhOpt
    argTypes:
    - NSSCryptoContext*
    - NSSAlgorithmAndParameters*
    - NSSCallback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 667
    functionDepth: 1
    functionLinenumber: 667
    functionLinenumberEnd: 675
    functionName: NSSCryptoContext_BeginSignRecover
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCryptoContext_BeginSignRecover(\n    NSSCryptoContext
      *cc,\n    NSSAlgorithmAndParameters *apOpt,\n    NSSCallback *uhhOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/cryptocontext.c:684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - cc
    - data
    - rvOpt
    - arenaOpt
    argTypes:
    - NSSCryptoContext*
    - NSSItem*
    - NSSItem*
    - NSSArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 677
    functionDepth: 1
    functionLinenumber: 677
    functionLinenumberEnd: 686
    functionName: NSSCryptoContext_ContinueSignRecover
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSCryptoContext_ContinueSignRecover(\n    NSSCryptoContext
      *cc,\n    NSSItem *data,\n    NSSItem *rvOpt,\n    NSSArena *arenaOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/cryptocontext.c:694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - cc
    - rvOpt
    - arenaOpt
    argTypes:
    - NSSCryptoContext*
    - NSSItem*
    - NSSArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 688
    functionDepth: 1
    functionLinenumber: 688
    functionLinenumberEnd: 696
    functionName: NSSCryptoContext_FinishSignRecover
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSCryptoContext_FinishSignRecover(\n    NSSCryptoContext
      *cc,\n    NSSItem *rvOpt,\n    NSSArena *arenaOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/cryptocontext.c:705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 698
    functionDepth: 1
    functionLinenumber: 698
    functionLinenumberEnd: 707
    functionName: "NSSSymmetricKey *\nNSSCryptoContext_UnwrapSymmetricKey(\n    NSSCryptoContext
      *cc,\n    NSSAlgorithmAndParameters *apOpt,\n    NSSItem *wrappedKey,\n    NSSCallback
      *uhhOpt)"
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSSymmetricKey *\nNSSCryptoContext_UnwrapSymmetricKey(\n
      \   NSSCryptoContext *cc,\n    NSSAlgorithmAndParameters *apOpt,\n    NSSItem
      *wrappedKey,\n    NSSCallback *uhhOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/cryptocontext.c:719,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 709
    functionDepth: 1
    functionLinenumber: 709
    functionLinenumberEnd: 721
    functionName: "NSSSymmetricKey *\nNSSCryptoContext_DeriveSymmetricKey(\n    NSSCryptoContext
      *cc,\n    NSSPublicKey *bk,\n    NSSAlgorithmAndParameters *apOpt,\n    NSSOID
      *target,\n    PRUint32 keySizeOpt, /* zero for best allowed */\n    NSSOperations
      operations,\n    NSSCallback *uhhOpt)"
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSSymmetricKey *\nNSSCryptoContext_DeriveSymmetricKey(\n
      \   NSSCryptoContext *cc,\n    NSSPublicKey *bk,\n    NSSAlgorithmAndParameters
      *apOpt,\n    NSSOID *target,\n    PRUint32 keySizeOpt, /* zero for best allowed
      */\n    NSSOperations operations,\n    NSSCallback *uhhOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/cryptocontext.c:732,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - cc
    - apOpt
    - data
    - uhhOpt
    - rvOpt
    - arenaOpt
    argTypes:
    - NSSCryptoContext*
    - NSSAlgorithmAndParameters*
    - NSSItem*
    - NSSCallback*
    - NSSItem*
    - NSSArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 723
    functionDepth: 1
    functionLinenumber: 723
    functionLinenumberEnd: 734
    functionName: NSSCryptoContext_Encrypt
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSCryptoContext_Encrypt(\n    NSSCryptoContext *cc,\n
      \   NSSAlgorithmAndParameters *apOpt,\n    NSSItem *data,\n    NSSCallback *uhhOpt,\n
      \   NSSItem *rvOpt,\n    NSSArena *arenaOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/cryptocontext.c:742,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - cc
    - apOpt
    - uhhOpt
    argTypes:
    - NSSCryptoContext*
    - NSSAlgorithmAndParameters*
    - NSSCallback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 736
    functionDepth: 1
    functionLinenumber: 736
    functionLinenumberEnd: 744
    functionName: NSSCryptoContext_BeginEncrypt
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCryptoContext_BeginEncrypt(\n    NSSCryptoContext
      *cc,\n    NSSAlgorithmAndParameters *apOpt,\n    NSSCallback *uhhOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/cryptocontext.c:753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - cc
    - data
    - rvOpt
    - arenaOpt
    argTypes:
    - NSSCryptoContext*
    - NSSItem*
    - NSSItem*
    - NSSArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 746
    functionDepth: 1
    functionLinenumber: 746
    functionLinenumberEnd: 755
    functionName: NSSCryptoContext_ContinueEncrypt
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSCryptoContext_ContinueEncrypt(\n    NSSCryptoContext
      *cc,\n    NSSItem *data,\n    NSSItem *rvOpt,\n    NSSArena *arenaOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/cryptocontext.c:763,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - cc
    - rvOpt
    - arenaOpt
    argTypes:
    - NSSCryptoContext*
    - NSSItem*
    - NSSArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 757
    functionDepth: 1
    functionLinenumber: 757
    functionLinenumberEnd: 765
    functionName: NSSCryptoContext_FinishEncrypt
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSCryptoContext_FinishEncrypt(\n    NSSCryptoContext
      *cc,\n    NSSItem *rvOpt,\n    NSSArena *arenaOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/cryptocontext.c:775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - cc
    - apOpt
    - data
    - signature
    - uhhOpt
    argTypes:
    - NSSCryptoContext*
    - NSSAlgorithmAndParameters*
    - NSSItem*
    - NSSItem*
    - NSSCallback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 767
    functionDepth: 1
    functionLinenumber: 767
    functionLinenumberEnd: 777
    functionName: NSSCryptoContext_Verify
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCryptoContext_Verify(\n    NSSCryptoContext *cc,\n
      \   NSSAlgorithmAndParameters *apOpt,\n    NSSItem *data,\n    NSSItem *signature,\n
      \   NSSCallback *uhhOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/cryptocontext.c:786,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - cc
    - apOpt
    - signature
    - uhhOpt
    argTypes:
    - NSSCryptoContext*
    - NSSAlgorithmAndParameters*
    - NSSItem*
    - NSSCallback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 779
    functionDepth: 1
    functionLinenumber: 779
    functionLinenumberEnd: 788
    functionName: NSSCryptoContext_BeginVerify
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCryptoContext_BeginVerify(\n    NSSCryptoContext
      *cc,\n    NSSAlgorithmAndParameters *apOpt,\n    NSSItem *signature,\n    NSSCallback
      *uhhOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/cryptocontext.c:795,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cc
    - data
    argTypes:
    - NSSCryptoContext*
    - NSSItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 790
    functionDepth: 1
    functionLinenumber: 790
    functionLinenumberEnd: 797
    functionName: NSSCryptoContext_ContinueVerify
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCryptoContext_ContinueVerify(\n    NSSCryptoContext
      *cc,\n    NSSItem *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/cryptocontext.c:803,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cc
    argTypes:
    - NSSCryptoContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 799
    functionDepth: 1
    functionLinenumber: 799
    functionLinenumberEnd: 805
    functionName: NSSCryptoContext_FinishVerify
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCryptoContext_FinishVerify(\n    NSSCryptoContext
      *cc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/cryptocontext.c:816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - cc
    - apOpt
    - signature
    - uhhOpt
    - rvOpt
    - arenaOpt
    argTypes:
    - NSSCryptoContext*
    - NSSAlgorithmAndParameters*
    - NSSItem*
    - NSSCallback*
    - NSSItem*
    - NSSArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 807
    functionDepth: 1
    functionLinenumber: 807
    functionLinenumberEnd: 818
    functionName: NSSCryptoContext_VerifyRecover
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSCryptoContext_VerifyRecover(\n    NSSCryptoContext
      *cc,\n    NSSAlgorithmAndParameters *apOpt,\n    NSSItem *signature,\n    NSSCallback
      *uhhOpt,\n    NSSItem *rvOpt,\n    NSSArena *arenaOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/cryptocontext.c:826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - cc
    - apOpt
    - uhhOpt
    argTypes:
    - NSSCryptoContext*
    - NSSAlgorithmAndParameters*
    - NSSCallback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 820
    functionDepth: 1
    functionLinenumber: 820
    functionLinenumberEnd: 828
    functionName: NSSCryptoContext_BeginVerifyRecover
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCryptoContext_BeginVerifyRecover(\n    NSSCryptoContext
      *cc,\n    NSSAlgorithmAndParameters *apOpt,\n    NSSCallback *uhhOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/cryptocontext.c:837,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - cc
    - data
    - rvOpt
    - arenaOpt
    argTypes:
    - NSSCryptoContext*
    - NSSItem*
    - NSSItem*
    - NSSArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 830
    functionDepth: 1
    functionLinenumber: 830
    functionLinenumberEnd: 839
    functionName: NSSCryptoContext_ContinueVerifyRecover
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSCryptoContext_ContinueVerifyRecover(\n    NSSCryptoContext
      *cc,\n    NSSItem *data,\n    NSSItem *rvOpt,\n    NSSArena *arenaOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/cryptocontext.c:847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - cc
    - rvOpt
    - arenaOpt
    argTypes:
    - NSSCryptoContext*
    - NSSItem*
    - NSSArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 841
    functionDepth: 1
    functionLinenumber: 841
    functionLinenumberEnd: 849
    functionName: NSSCryptoContext_FinishVerifyRecover
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSCryptoContext_FinishVerifyRecover(\n    NSSCryptoContext
      *cc,\n    NSSItem *rvOpt,\n    NSSArena *arenaOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/cryptocontext.c:860,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - cc
    - apOpt
    - keyToWrap
    - uhhOpt
    - rvOpt
    - arenaOpt
    argTypes:
    - NSSCryptoContext*
    - NSSAlgorithmAndParameters*
    - NSSSymmetricKey*
    - NSSCallback*
    - NSSItem*
    - NSSArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 851
    functionDepth: 1
    functionLinenumber: 851
    functionLinenumberEnd: 862
    functionName: NSSCryptoContext_WrapSymmetricKey
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSCryptoContext_WrapSymmetricKey(\n    NSSCryptoContext
      *cc,\n    NSSAlgorithmAndParameters *apOpt,\n    NSSSymmetricKey *keyToWrap,\n
      \   NSSCallback *uhhOpt,\n    NSSItem *rvOpt,\n    NSSArena *arenaOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssToken_Digest
      Src: /src/nss/lib/pki/cryptocontext.c:873,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - cc
    - apOpt
    - data
    - uhhOpt
    - rvOpt
    - arenaOpt
    argTypes:
    - NSSCryptoContext*
    - NSSAlgorithmAndParameters*
    - NSSItem*
    - NSSCallback*
    - NSSItem*
    - NSSArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 864
    functionDepth: 1
    functionLinenumber: 864
    functionLinenumberEnd: 875
    functionName: NSSCryptoContext_Digest
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - nssToken_Digest
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSCryptoContext_Digest(\n    NSSCryptoContext *cc,\n
      \   NSSAlgorithmAndParameters *apOpt,\n    NSSItem *data,\n    NSSCallback *uhhOpt,\n
      \   NSSItem *rvOpt,\n    NSSArena *arenaOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssToken_BeginDigest
      Src: /src/nss/lib/pki/cryptocontext.c:883,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cc
    - apOpt
    - uhhOpt
    argTypes:
    - NSSCryptoContext*
    - NSSAlgorithmAndParameters*
    - NSSCallback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 877
    functionDepth: 1
    functionLinenumber: 877
    functionLinenumberEnd: 884
    functionName: NSSCryptoContext_BeginDigest
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - nssToken_BeginDigest
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCryptoContext_BeginDigest(\n    NSSCryptoContext
      *cc,\n    NSSAlgorithmAndParameters *apOpt,\n    NSSCallback *uhhOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssToken_ContinueDigest
      Src: /src/nss/lib/pki/cryptocontext.c:897,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cc
    - apOpt
    - item
    argTypes:
    - NSSCryptoContext*
    - NSSAlgorithmAndParameters*
    - NSSItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 886
    functionDepth: 1
    functionLinenumber: 886
    functionLinenumberEnd: 898
    functionName: NSSCryptoContext_ContinueDigest
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - nssToken_ContinueDigest
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSCryptoContext_ContinueDigest(\n    NSSCryptoContext
      *cc,\n    NSSAlgorithmAndParameters *apOpt,\n    NSSItem *item)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssToken_FinishDigest
      Src: /src/nss/lib/pki/cryptocontext.c:906,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cc
    - rvOpt
    - arenaOpt
    argTypes:
    - NSSCryptoContext*
    - NSSItem*
    - NSSArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 900
    functionDepth: 1
    functionLinenumber: 900
    functionLinenumberEnd: 907
    functionName: NSSCryptoContext_FinishDigest
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - nssToken_FinishDigest
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSCryptoContext_FinishDigest(\n    NSSCryptoContext
      *cc,\n    NSSItem *rvOpt,\n    NSSArena *arenaOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/pki/cryptocontext.c:912,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 909
    functionDepth: 1
    functionLinenumber: 909
    functionLinenumberEnd: 914
    functionName: 'NSSCryptoContext *

      NSSCryptoContext_Clone(NSSCryptoContext *cc)'
    functionSourceFile: /src/nss/lib/pki/cryptocontext.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: 'NSS_IMPLEMENT NSSCryptoContext *

      NSSCryptoContext_Clone(NSSCryptoContext *cc)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/pk11wrap/pk11pars.c:32,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/pk11wrap/pk11pars.c:37,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pk11wrap/pk11pars.c:39,1
    - Dst: PZ_NewLock
      Src: /src/nss/lib/pk11wrap/pk11pars.c:70,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pk11wrap/pk11pars.c:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 76
    functionName: secmod_NewModule
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pars.c
    functionUses: 0
    functionsReached:
    - PORT_FreeArena
    - PORT_ArenaAlloc
    - PZ_NewLock
    - PORT_NewArena
    linkageType: ''
    returnType: SECMODModule
    signature: 'SECMODModule *

      secmod_NewModule(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECMOD_CreateModuleEx
      Src: /src/nss/lib/pk11wrap/pk11pars.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - library
    - moduleName
    - parameters
    - nss
    argTypes:
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: SECMOD_CreateModule
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pars.c
    functionUses: 0
    functionsReached:
    - SECMOD_CreateModuleEx
    linkageType: ''
    returnType: SECMODModule
    signature: "SECMODModule *\nSECMOD_CreateModule(const char *library, const char
      *moduleName,\n                    const char *parameters, const char *nss)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 202
    functionName: CIPHER_NAME
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pars.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CIPHER_NAME(x)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - cipher
    - sep1
    - sep2
    - len
    - next
    argTypes:
    - char*
    - char
    - char
    - int*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 596
    functionName: secmod_ArgGetSubValue
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pars.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: "char *\nsecmod_ArgGetSubValue(const char *cipher, char sep1, char
      sep2,\n                      int *len, const char **next)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: secmod_ArgGetSubValue
      Src: /src/nss/lib/pk11wrap/pk11pars.c:610,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/pk11wrap/pk11pars.c:615,1
    - Dst: PORT_Strncasecmp
      Src: /src/nss/lib/pk11wrap/pk11pars.c:619,1
    - Dst: PR_SetEnv
      Src: /src/nss/lib/pk11wrap/pk11pars.c:627,1
    - Dst: fprintf
      Src: /src/nss/lib/pk11wrap/pk11pars.c:628,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 19
    argCount: 4
    argNames:
    - policyFlags
    - policyLength
    - printPolicyFeedback
    - policyCheckFlags
    argTypes:
    - char*
    - int
    - PRBool
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 598
    functionDepth: 1
    functionLinenumber: 598
    functionLinenumberEnd: 633
    functionName: secmod_parsePolicyValue
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pars.c
    functionUses: 0
    functionsReached:
    - PORT_Strncasecmp
    - PR_ARRAY_SIZE
    - fprintf
    - PR_SetEnv
    - secmod_ArgGetSubValue
    linkageType: ''
    returnType: PRUint32
    signature: "PRUint32 secmod_parsePolicyValue(const char *policyFlags, int policyLength,\n
      \                       PRBool printPolicyFeedback, PRUint32 policyCheckFlags)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/nss/lib/pk11wrap/pk11pars.c:641,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/pk11wrap/pk11pars.c:652,1
    - Dst: PORT_Strncasecmp
      Src: /src/nss/lib/pk11wrap/pk11pars.c:654,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/pk11wrap/pk11pars.c:665,1
    - Dst: PORT_Strncasecmp
      Src: /src/nss/lib/pk11wrap/pk11pars.c:666,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 3
    argNames:
    - policyValue
    - policyValueLength
    - result
    argTypes:
    - char*
    - int
    - PRInt32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 637
    functionDepth: 0
    functionLinenumber: 637
    functionLinenumberEnd: 685
    functionName: secmod_getPolicyOptValue
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pars.c
    functionUses: 0
    functionsReached:
    - PORT_Strncasecmp
    - PR_ARRAY_SIZE
    - atoi
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus secmod_getPolicyOptValue(const char *policyValue, int policyValueLength,\n
      \                        PRInt32 *result)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NSS_GetAlgorithmPolicy
      Src: /src/nss/lib/pk11wrap/pk11pars.c:742,1
    - Dst: NSS_SetAlgorithmPolicy
      Src: /src/nss/lib/pk11wrap/pk11pars.c:750,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - oid
    - operation
    - value
    argTypes:
    - SECOidTag
    - NSSPolicyOperation
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 707
    functionDepth: 1
    functionLinenumber: 707
    functionLinenumberEnd: 751
    functionName: secmod_setDefault
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pars.c
    functionUses: 0
    functionsReached:
    - NSS_GetAlgorithmPolicy
    - NSS_SetAlgorithmPolicy
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus secmod_setDefault(SECOidTag oid, NSSPolicyOperation operation,\n
      \                 PRUint32 value)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NSS_SetAlgorithmPolicy
      Src: /src/nss/lib/pk11wrap/pk11pars.c:762,1
    - Dst: NSS_SetAlgorithmPolicy
      Src: /src/nss/lib/pk11wrap/pk11pars.c:766,1
    - Dst: secmod_setDefault
      Src: /src/nss/lib/pk11wrap/pk11pars.c:770,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11pars.c:773,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - oid
    - operation
    - value
    argTypes:
    - SECOidTag
    - NSSPolicyOperation
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 754
    functionDepth: 2
    functionLinenumber: 754
    functionLinenumberEnd: 778
    functionName: secmod_setPolicyOperation
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pars.c
    functionUses: 0
    functionsReached:
    - secmod_setDefault
    - PORT_SetError
    - NSS_SetAlgorithmPolicy
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus secmod_setPolicyOperation(SECOidTag oid, NSSPolicyOperation
      operation,\n                          PRUint32 value)"
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - operation
    argTypes:
    - NSSPolicyOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 780
    functionDepth: 0
    functionLinenumber: 780
    functionLinenumberEnd: 796
    functionName: secmod_getOperationString
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pars.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      secmod_getOperationString(NSSPolicyOperation operation)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strcasecmp
      Src: /src/nss/lib/pk11wrap/pk11pars.c:805,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/pk11wrap/pk11pars.c:806,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/pk11wrap/pk11pars.c:809,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/lib/pk11wrap/pk11pars.c:811,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/lib/pk11wrap/pk11pars.c:816,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - policy
    - list
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 802
    functionDepth: 1
    functionLinenumber: 802
    functionLinenumberEnd: 823
    functionName: SECMOD_PolicyStringToOid
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pars.c
    functionUses: 1
    functionsReached:
    - PORT_Strcasecmp
    - PR_ARRAY_SIZE
    - PORT_Strlen
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag SECMOD_PolicyStringToOid(const char *policy, const char *list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strlen
      Src: /src/nss/lib/pk11wrap/pk11pars.c:830,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/pk11wrap/pk11pars.c:833,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/lib/pk11wrap/pk11pars.c:837,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - policy
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 827
    functionDepth: 1
    functionLinenumber: 827
    functionLinenumberEnd: 842
    functionName: SECMOD_PolicyStringToOpt
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pars.c
    functionUses: 1
    functionsReached:
    - PORT_Strcasecmp
    - PR_ARRAY_SIZE
    - PORT_Strlen
    linkageType: ''
    returnType: PRUint32
    signature: PRUint32 SECMOD_PolicyStringToOpt(const char *policy)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/pk11wrap/pk11pars.c:859,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - val
    - exact
    argTypes:
    - PRUint32
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 854
    functionDepth: 0
    functionLinenumber: 854
    functionLinenumberEnd: 869
    functionName: SECMOD_FlagsToPolicyString
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pars.c
    functionUses: 1
    functionsReached:
    - PR_ARRAY_SIZE
    linkageType: ''
    returnType: char
    signature: 'char *

      SECMOD_FlagsToPolicyString(PRUint32 val, PRBool exact)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: NSS_SetAlgorithmPolicy
      Src: /src/nss/lib/pk11wrap/pk11pars.c:885,1
    - Dst: secmod_ArgGetSubValue
      Src: /src/nss/lib/pk11wrap/pk11pars.c:891,1
    - Dst: PORT_Strncasecmp
      Src: /src/nss/lib/pk11wrap/pk11pars.c:897,1
    - Dst: secmod_parsePolicyValue
      Src: /src/nss/lib/pk11wrap/pk11pars.c:901,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/pk11wrap/pk11pars.c:903,1
    - Dst: secmod_setPolicyOperation
      Src: /src/nss/lib/pk11wrap/pk11pars.c:909,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/pk11wrap/pk11pars.c:915,1
    - Dst: PORT_Strncasecmp
      Src: /src/nss/lib/pk11wrap/pk11pars.c:926,1
    - Dst: secmod_parsePolicyValue
      Src: /src/nss/lib/pk11wrap/pk11pars.c:929,1
    - Dst: secmod_setPolicyOperation
      Src: /src/nss/lib/pk11wrap/pk11pars.c:934,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/pk11wrap/pk11pars.c:949,1
    - Dst: PORT_Strncasecmp
      Src: /src/nss/lib/pk11wrap/pk11pars.c:954,1
    - Dst: secmod_getPolicyOptValue
      Src: /src/nss/lib/pk11wrap/pk11pars.c:958,1
    - Dst: PR_SetEnv
      Src: /src/nss/lib/pk11wrap/pk11pars.c:963,1
    - Dst: fprintf
      Src: /src/nss/lib/pk11wrap/pk11pars.c:964,1
    - Dst: NSS_OptionSet
      Src: /src/nss/lib/pk11wrap/pk11pars.c:969,1
    - Dst: PR_SetEnv
      Src: /src/nss/lib/pk11wrap/pk11pars.c:984,1
    - Dst: fprintf
      Src: /src/nss/lib/pk11wrap/pk11pars.c:985,1
    - Dst: secmod_getOperationString
      Src: /src/nss/lib/pk11wrap/pk11pars.c:986,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 70
    argCount: 4
    argNames:
    - policyString
    - operation
    - printPolicyFeedback
    - policyCheckFlags
    argTypes:
    - char*
    - NSSPolicyOperation
    - PRBool
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 871
    functionDepth: 3
    functionLinenumber: 871
    functionLinenumberEnd: 990
    functionName: secmod_applyCryptoPolicy
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pars.c
    functionUses: 0
    functionsReached:
    - NSS_OptionSet
    - PORT_Strncasecmp
    - secmod_getPolicyOptValue
    - secmod_getOperationString
    - secmod_parsePolicyValue
    - PR_ARRAY_SIZE
    - fprintf
    - PR_SetEnv
    - secmod_ArgGetSubValue
    - secmod_setPolicyOperation
    - NSS_SetAlgorithmPolicy
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus secmod_applyCryptoPolicy(const char *policyString, NSSPolicyOperation
      operation,\n                         PRBool printPolicyFeedback, PRUint32 policyCheckFlags)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1000,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1005,1
    - Dst: NSS_GetAlgorithmPolicy
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1012,1
    - Dst: PR_SetEnv
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1014,1
    - Dst: fprintf
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1015,1
    - Dst: fprintf
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1022,1
    - Dst: fprintf
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1027,1
    - Dst: fprintf
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1033,1
    - Dst: fprintf
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1040,1
    - Dst: fprintf
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1041,1
    - Dst: fprintf
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1042,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1046,1
    - Dst: fprintf
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1048,1
    - Dst: PR_SetEnv
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1054,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 992
    functionDepth: 1
    functionLinenumber: 992
    functionLinenumberEnd: 1056
    functionName: secmod_sanityCheckCryptoPolicy
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pars.c
    functionUses: 0
    functionsReached:
    - fprintf
    - NSS_GetAlgorithmPolicy
    - PR_ARRAY_SIZE
    - PR_SetEnv
    linkageType: ''
    returnType: void
    signature: void secmod_sanityCheckCryptoPolicy(void)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_Init
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1070,1
    - Dst: NSSUTIL_ArgGetParamValue
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1074,1
    - Dst: secmod_applyCryptoPolicy
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1075,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1078,1
    - Dst: NSSUTIL_ArgGetParamValue
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1082,1
    - Dst: secmod_applyCryptoPolicy
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1083,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1086,1
    - Dst: NSSUTIL_ArgGetParamValue
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1090,1
    - Dst: secmod_applyCryptoPolicy
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1091,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1094,1
    - Dst: NSSUTIL_ArgGetParamValue
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1098,1
    - Dst: secmod_applyCryptoPolicy
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1099,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1102,1
    - Dst: NSSUTIL_ArgHasFlag
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1107,1
    - Dst: NSS_OptionGet
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1110,1
    - Dst: NSS_OptionSet
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1112,1
    - Dst: NSSUTIL_ArgHasFlag
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1118,1
    - Dst: NSS_LockPolicy
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1119,1
    - Dst: PR_SetEnv
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1124,1
    - Dst: fprintf
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1125,1
    - Dst: secmod_sanityCheckCryptoPolicy
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1126,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 54
    argCount: 3
    argNames:
    - policyConfig
    - printPolicyFeedback
    - policyCheckFlags
    argTypes:
    - char*
    - PRBool
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1129
      start: 1058
    functionDepth: 4
    functionLinenumber: 1058
    functionLinenumberEnd: 1129
    functionName: secmod_parseCryptoPolicy
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pars.c
    functionUses: 0
    functionsReached:
    - NSSUTIL_ArgGetParamValue
    - secmod_applyCryptoPolicy
    - NSS_OptionGet
    - secmod_sanityCheckCryptoPolicy
    - PORT_Free
    - fprintf
    - SECOID_Init
    - NSSUTIL_ArgHasFlag
    - PR_SetEnv
    - NSS_OptionSet
    - NSS_LockPolicy
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus secmod_parseCryptoPolicy(const char *policyConfig, PRBool
      printPolicyFeedback,\n                         PRUint32 policyCheckFlags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NSSUTIL_ArgHasFlag
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1136,1
    - Dst: NSSUTIL_ArgHasFlag
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - nss
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1145
      start: 1131
    functionDepth: 1
    functionLinenumber: 1131
    functionLinenumberEnd: 1145
    functionName: secmod_parsePolicyCheckFlags
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pars.c
    functionUses: 0
    functionsReached:
    - NSSUTIL_ArgHasFlag
    linkageType: ''
    returnType: PRUint32
    signature: PRUint32 secmod_parsePolicyCheckFlags(const char *nss)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: NSSUTIL_ArgHasFlag
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1158,1
    - Dst: secmod_parsePolicyCheckFlags
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1159,1
    - Dst: secmod_parseCryptoPolicy
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1161,1
    - Dst: PR_SetEnv
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1166,1
    - Dst: fprintf
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1167,1
    - Dst: secmod_NewModule
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1172,1
    - Dst: PORT_ArenaStrdup
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1176,1
    - Dst: PORT_ArenaStrdup
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1178,1
    - Dst: PORT_ArenaStrdup
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1182,1
    - Dst: NSSUTIL_ArgHasFlag
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1185,1
    - Dst: NSSUTIL_ArgHasFlag
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1186,1
    - Dst: SECMOD_GetSystemFIPSEnabled
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1188,1
    - Dst: NSSUTIL_ArgHasFlag
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1191,1
    - Dst: NSSUTIL_ArgGetParamValue
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1192,1
    - Dst: NSSUTIL_ArgParseSlotInfo
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1193,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1196,1
    - Dst: NSSUTIL_ArgReadLong
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1198,1
    - Dst: NSSUTIL_ArgReadLong
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1201,1
    - Dst: NSSUTIL_ArgHasFlag
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1204,1
    - Dst: NSSUTIL_ArgHasFlag
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1205,1
    - Dst: NSSUTIL_ArgHasFlag
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1217,1
    - Dst: NSSUTIL_ArgHasFlag
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1220,1
    - Dst: NSSUTIL_ArgHasFlag
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1223,1
    - Dst: NSSUTIL_ArgHasFlag
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1233,1
    - Dst: NSSUTIL_ArgGetParamValue
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1239,1
    - Dst: NSSUTIL_ArgParseCipherFlags
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1240,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1242,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 59
    argCount: 5
    argNames:
    - library
    - moduleName
    - parameters
    - nss
    - config
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1247
      start: 1150
    functionDepth: 5
    functionLinenumber: 1150
    functionLinenumberEnd: 1247
    functionName: SECMOD_CreateModuleEx
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pars.c
    functionUses: 1
    functionsReached:
    - NSSUTIL_ArgGetParamValue
    - SECMOD_GetSystemFIPSEnabled
    - PORT_ArenaStrdup
    - PORT_Free
    - secmod_parseCryptoPolicy
    - NSSUTIL_ArgParseCipherFlags
    - fprintf
    - NSSUTIL_ArgParseSlotInfo
    - NSSUTIL_ArgReadLong
    - PR_SetEnv
    - NSSUTIL_ArgHasFlag
    - secmod_parsePolicyCheckFlags
    - secmod_NewModule
    linkageType: ''
    returnType: SECMODModule
    signature: "SECMODModule *\nSECMOD_CreateModuleEx(const char *library, const char
      *moduleName,\n                      const char *parameters, const char *nss,\n
      \                     const char *config)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mod
    argTypes:
    - SECMODModule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 1249
    functionDepth: 0
    functionLinenumber: 1249
    functionLinenumberEnd: 1255
    functionName: SECMOD_GetSkipFirstFlag
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pars.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool SECMOD_GetSkipFirstFlag(SECMODModule *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mod
    argTypes:
    - SECMODModule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1263
      start: 1257
    functionDepth: 0
    functionLinenumber: 1257
    functionLinenumberEnd: 1263
    functionName: SECMOD_GetDefaultModDBFlag
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pars.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool SECMOD_GetDefaultModDBFlag(SECMODModule *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mod
    argTypes:
    - SECMODModule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1271
      start: 1265
    functionDepth: 0
    functionLinenumber: 1265
    functionLinenumberEnd: 1271
    functionName: secmod_PolicyOnly
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pars.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool secmod_PolicyOnly(SECMODModule *mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mod
    argTypes:
    - SECMODModule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1279
      start: 1273
    functionDepth: 0
    functionLinenumber: 1273
    functionLinenumberEnd: 1279
    functionName: secmod_IsInternalKeySlot
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pars.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool secmod_IsInternalKeySlot(SECMODModule *mod)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - mod
    - val
    argTypes:
    - SECMODModule*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1292
      start: 1281
    functionDepth: 0
    functionLinenumber: 1281
    functionLinenumberEnd: 1292
    functionName: secmod_SetInternalKeySlotFlag
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pars.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void secmod_SetInternalKeySlotFlag(SECMODModule *mod, PRBool val)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NSSUTIL_EscapeSize
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1309,1
    - Dst: strlen
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1310,1
    - Dst: PORT_Realloc
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1315,1
    - Dst: NSSUTIL_Escape
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1322,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1327,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1330,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1334,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 6
    argNames:
    - target
    - base
    - baseLen
    - desc
    - descLen
    - value
    argTypes:
    - char*
    - char**
    - int*
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1337
      start: 1303
    functionDepth: 1
    functionLinenumber: 1303
    functionLinenumberEnd: 1337
    functionName: secmod_doDescCopy
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pars.c
    functionUses: 0
    functionsReached:
    - NSSUTIL_EscapeSize
    - PORT_Memcpy
    - PORT_Free
    - NSSUTIL_Escape
    - PORT_Realloc
    - strlen
    linkageType: ''
    returnType: char
    signature: "char *\nsecmod_doDescCopy(char *target, char **base, int *baseLen,\n
      \                 const char *desc, int descLen, char *value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - new
    - ','
    - start
    - ','
    - end
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1345
      start: 1339
    functionDepth: 0
    functionLinenumber: 1339
    functionLinenumberEnd: 1345
    functionName: SECMOD_SPEC_COPY
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pars.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SECMOD_SPEC_COPY(new, start, end)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strlen
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1362,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1363,1
    - Dst: NSSUTIL_ArgStrip
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1382,1
    - Dst: SECMOD_SPEC_COPY
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1383,1
    - Dst: NSSUTIL_HANDLE_STRING_ARG
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1414,1
    - Dst: NSSUTIL_HANDLE_STRING_ARG
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1417,1
    - Dst: if
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1419,1
    - Dst: NSSUTIL_HANDLE_STRING_ARG
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1420,1
    - Dst: if
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1422,1
    - Dst: NSSUTIL_HANDLE_STRING_ARG
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1423,1
    - Dst: if
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1425,1
    - Dst: secmod_doDescCopy
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1428,1
    - Dst: NSSUTIL_HANDLE_STRING_ARG
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1435,1
    - Dst: if
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1437,1
    - Dst: secmod_doDescCopy
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1440,1
    - Dst: NSSUTIL_HANDLE_STRING_ARG
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1447,1
    - Dst: if
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1449,1
    - Dst: secmod_doDescCopy
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1452,1
    - Dst: NSSUTIL_HANDLE_STRING_ARG
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1459,1
    - Dst: if
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1461,1
    - Dst: secmod_doDescCopy
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1464,1
    - Dst: NSSUTIL_HANDLE_FINAL_ARG
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1471,1
    - Dst: SECMOD_SPEC_COPY
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1472,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1475,1
    - Dst: NSSUTIL_ArgStrip
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1487,1
    - Dst: NSSUTIL_ArgStrip
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1488,1
    - Dst: NSSUTIL_ArgSkipParameter
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1488,1
    - Dst: PORT_NewArray
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1492,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1495,1
    - Dst: PORT_NewArray
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1499,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1501,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1502,1
    - Dst: NSSUTIL_ArgStrip
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1508,1
    - Dst: NSSUTIL_ArgStrip
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1510,1
    - Dst: NSSUTIL_ArgGetLabel
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1512,1
    - Dst: NSSUTIL_ArgDecodeNumber
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1516,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1519,1
    - Dst: NSSUTIL_ArgIsBlank
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1522,1
    - Dst: NSSUTIL_ArgFetchValue
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1523,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1528,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 91
    argCount: 5
    argNames:
    - convert
    - isFIPS
    - moduleSpec
    - children
    - ids
    argTypes:
    - PRBool
    - PRBool
    - char*
    - char***
    - CK_SLOT_ID**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1540
      start: 1357
    functionDepth: 2
    functionLinenumber: 1357
    functionLinenumberEnd: 1540
    functionName: secmod_ParseModuleSpecForTokens
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pars.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - NSSUTIL_ArgStrip
    - PORT_Free
    - NSSUTIL_ArgSkipParameter
    - NSSUTIL_HANDLE_FINAL_ARG
    - PORT_Strlen
    - NSSUTIL_ArgFetchValue
    - PORT_NewArray
    - if
    - NSSUTIL_ArgGetLabel
    - NSSUTIL_ArgDecodeNumber
    - NSSUTIL_ArgIsBlank
    - NSSUTIL_HANDLE_STRING_ARG
    - SECMOD_SPEC_COPY
    - secmod_doDescCopy
    linkageType: ''
    returnType: char
    signature: "char *\nsecmod_ParseModuleSpecForTokens(PRBool convert, PRBool isFIPS,\n
      \                               const char *moduleSpec, char ***children,\n
      \                               CK_SLOT_ID **ids)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: secmod_getConfigDir
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1716,1
    - Dst: secmod_configIsDBM
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1726,1
    - Dst: secmod_matchConfig
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1730,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1741,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1742,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1743,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - spec
    - conflist
    - count
    argTypes:
    - char*
    - SECMODConfigList*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1745
      start: 1706
    functionDepth: 0
    functionLinenumber: 1706
    functionLinenumberEnd: 1745
    functionName: secmod_MatchConfigList
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pars.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - secmod_matchConfig
    - secmod_getConfigDir
    - secmod_configIsDBM
    linkageType: ''
    returnType: PRBool
    signature: PRBool secmod_MatchConfigList(const char *spec, SECMODConfigList *conflist,
      int count)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: secmod_getConfigDir
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1762,1
    - Dst: secmod_configIsDBM
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1768,1
    - Dst: secmod_ParseModuleSpecForTokens
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1772,1
    - Dst: secmod_getConfigDir
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1779,1
    - Dst: secmod_matchConfig
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1784,1
    - Dst: PK11_GetInternalKeySlot
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1787,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1790,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1797,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1798,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1799,1
    - Dst: secmod_getConfigDir
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1800,1
    - Dst: secmod_matchConfig
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1805,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1813,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1814,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1815,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1816,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1817,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1818,1
    - Dst: secmod_FreeChildren
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1820,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1821,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 53
    argCount: 2
    argNames:
    - moduleSpec
    - module
    argTypes:
    - char*
    - SECMODModule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1824
      start: 1751
    functionDepth: 3
    functionLinenumber: 1751
    functionLinenumberEnd: 1824
    functionName: secmod_GetSlotIDFromModuleSpec
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pars.c
    functionUses: 0
    functionsReached:
    - PK11_FreeSlot
    - PK11_GetInternalKeySlot
    - secmod_ParseModuleSpecForTokens
    - secmod_configIsDBM
    - PORT_Free
    - secmod_getConfigDir
    - secmod_FreeChildren
    - secmod_matchConfig
    linkageType: ''
    returnType: CK_SLOT_ID
    signature: CK_SLOT_ID secmod_GetSlotIDFromModuleSpec(const char *moduleSpec, SECMODModule
      *module)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1831,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1832,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1833,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1835,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - conflist
    - count
    argTypes:
    - SECMODConfigList*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1836
      start: 1826
    functionDepth: 0
    functionLinenumber: 1826
    functionLinenumberEnd: 1836
    functionName: secmod_FreeConfigList
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pars.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    linkageType: ''
    returnType: void
    signature: void secmod_FreeConfigList(SECMODConfigList *conflist, int count)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1848,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1850,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1852,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - children
    - ids
    argTypes:
    - char**
    - CK_SLOT_ID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1855
      start: 1838
    functionDepth: 0
    functionLinenumber: 1838
    functionLinenumberEnd: 1855
    functionName: secmod_FreeChildren
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pars.c
    functionUses: 1
    functionsReached:
    - PORT_Free
    linkageType: ''
    returnType: void
    signature: void secmod_FreeChildren(char **children, CK_SLOT_ID *ids)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSSUTIL_DoubleEscapeSize
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1864,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - child
    - id
    argTypes:
    - char*
    - CK_SLOT_ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1874
      start: 1861
    functionDepth: 1
    functionLinenumber: 1861
    functionLinenumberEnd: 1874
    functionName: secmod_getChildLength
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pars.c
    functionUses: 0
    functionsReached:
    - NSSUTIL_DoubleEscapeSize
    linkageType: ''
    returnType: int
    signature: int secmod_getChildLength(char *child, CK_SLOT_ID id)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PR_snprintf
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1886,1
    - Dst: NSSUTIL_DoubleEscape
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1892,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1897,1
    - Dst: strlen
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1900,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1902,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1905,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1908,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 4
    argNames:
    - next
    - length
    - child
    - id
    argTypes:
    - char**
    - int*
    - char*
    - CK_SLOT_ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1913
      start: 1880
    functionDepth: 1
    functionLinenumber: 1880
    functionLinenumberEnd: 1913
    functionName: secmod_mkTokenChild
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pars.c
    functionUses: 0
    functionsReached:
    - NSSUTIL_DoubleEscape
    - PR_snprintf
    - PORT_Memcpy
    - PORT_Free
    - strlen
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus secmod_mkTokenChild(char **next, int *length, char *child,
      CK_SLOT_ID id)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: secmod_ParseModuleSpecForTokens
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1932,1
    - Dst: strlen
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1941,1
    - Dst: secmod_getChildLength
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1944,1
    - Dst: secmod_getChildLength
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1948,1
    - Dst: secmod_getChildLength
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1955,1
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1959,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1963,1
    - Dst: PORT_Strcpy
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1968,1
    - Dst: strlen
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1969,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1972,1
    - Dst: secmod_mkTokenChild
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1977,1
    - Dst: secmod_mkTokenChild
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1983,1
    - Dst: secmod_mkTokenChild
      Src: /src/nss/lib/pk11wrap/pk11pars.c:1992,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2006,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2011,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2016,1
    - Dst: secmod_FreeChildren
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2019,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 77
    argCount: 6
    argNames:
    - arena
    - oldParam
    - newToken
    - newID
    - children
    - ids
    argTypes:
    - PLArenaPool*
    - char*
    - char*
    - CK_SLOT_ID
    - char**
    - CK_SLOT_ID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2022
      start: 1917
    functionDepth: 3
    functionLinenumber: 1917
    functionLinenumberEnd: 2022
    functionName: secmod_MkAppendTokensList
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pars.c
    functionUses: 0
    functionsReached:
    - secmod_ParseModuleSpecForTokens
    - PORT_Memcpy
    - PORT_ArenaAlloc
    - PORT_Free
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - PORT_Strcpy
    - secmod_FreeChildren
    - secmod_getChildLength
    - PORT_ArenaUnmark
    - secmod_mkTokenChild
    - strlen
    linkageType: ''
    returnType: char
    signature: "char *\nsecmod_MkAppendTokensList(PLArenaPool *arena, char *oldParam,
      char *newToken,\n                          CK_SLOT_ID newID, char **children,
      CK_SLOT_ID *ids)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SECMOD_GetDefaultModuleListLock
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2029,1
    - Dst: SECMOD_GetReadLock
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2034,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2045,1
    - Dst: SECMOD_ReleaseReadLock
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2047,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2055,1
    - Dst: NSSUTIL_MkSlotString
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2058,1
    - Dst: NSSUTIL_MkSlotString
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2069,1
    - Dst: SECMOD_ReleaseReadLock
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2079,1
    - Dst: NSSUTIL_MkNSSString
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2080,1
    - Dst: NSSUTIL_MkModuleSpec
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2085,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2087,1
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2088,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 1
    argNames:
    - module
    argTypes:
    - SECMODModule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2091
      start: 2024
    functionDepth: 1
    functionLinenumber: 2024
    functionLinenumberEnd: 2091
    functionName: secmod_mkModuleSpec
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pars.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SECMOD_ReleaseReadLock
    - PORT_Free
    - PORT_ZAlloc
    - SECMOD_GetReadLock
    - SECMOD_GetDefaultModuleListLock
    - PR_smprintf_free
    - NSSUTIL_MkNSSString
    - NSSUTIL_MkModuleSpec
    - NSSUTIL_MkSlotString
    linkageType: ''
    returnType: char
    signature: 'char *

      secmod_mkModuleSpec(SECMODModule *module)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2102
      start: 2093
    functionDepth: 0
    functionLinenumber: 2093
    functionLinenumberEnd: 2102
    functionName: SECMOD_GetModuleSpecList
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pars.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char **

      SECMOD_GetModuleSpecList(SECMODModule *module)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: secmod_mkModuleSpec
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2116,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2119,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - module
    argTypes:
    - SECMODModule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2124
      start: 2104
    functionDepth: 2
    functionLinenumber: 2104
    functionLinenumberEnd: 2124
    functionName: SECMOD_AddPermDB
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pars.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - secmod_mkModuleSpec
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SECMOD_AddPermDB(SECMODModule *module)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: secmod_mkModuleSpec
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2138,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2141,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - module
    argTypes:
    - SECMODModule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2146
      start: 2126
    functionDepth: 2
    functionLinenumber: 2126
    functionLinenumberEnd: 2146
    functionName: SECMOD_DeletePermDB
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pars.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - secmod_mkModuleSpec
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SECMOD_DeletePermDB(SECMODModule *module)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - module
    - moduleSpecList
    argTypes:
    - SECMODModule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2160
      start: 2148
    functionDepth: 0
    functionLinenumber: 2148
    functionLinenumberEnd: 2160
    functionName: SECMOD_FreeModuleSpecList
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pars.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SECMOD_FreeModuleSpecList(SECMODModule *module, char **moduleSpecList)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: SECMOD_Init
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2178,1
    - Dst: NSSUTIL_ArgParseModuleSpecEx
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2180,1
    - Dst: SECMOD_CreateModuleEx
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2187,1
    - Dst: NSSUTIL_ArgHasFlag
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2188,1
    - Dst: secmod_parsePolicyCheckFlags
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2189,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2192,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2194,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2196,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2198,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2200,1
    - Dst: secmod_PolicyOnly
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2207,1
    - Dst: SECMOD_ReferenceModule
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2211,1
    - Dst: secmod_IsInternalKeySlot
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2212,1
    - Dst: secmod_LoadPKCS11Module
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2218,1
    - Dst: SECMOD_DestroyModule
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2228,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2234,1
    - Dst: SECMOD_GetModuleSpecList
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2236,1
    - Dst: SECMOD_GetSkipFirstFlag
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2241,1
    - Dst: PORT_Strcmp
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2247,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2249,1
    - Dst: SECMOD_LoadModule
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2254,1
    - Dst: NSSUTIL_AddNSSFlagToModuleSpec
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2258,1
    - Dst: NSSUTIL_AddNSSFlagToModuleSpec
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2261,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2262,1
    - Dst: NSSUTIL_AddNSSFlagToModuleSpec
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2266,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2267,1
    - Dst: SECMOD_LoadModule
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2270,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2271,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2276,1
    - Dst: SECMOD_DestroyModule
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2279,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2280,1
    - Dst: SECMOD_DestroyModule
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2284,1
    - Dst: SECMOD_FreeModuleSpecList
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2286,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2288,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2289,1
    - Dst: SECMOD_AddModuleToList
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2300,1
    - Dst: SECMOD_AddModuleToDBOnlyList
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2302,1
    - Dst: SECMOD_UnloadModule
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2311,1
    - Dst: SECMOD_AddModuleToUnloadList
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2313,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 110
    argCount: 3
    argNames:
    - modulespec
    - parent
    - recurse
    argTypes:
    - char*
    - SECMODModule*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2316
      start: 2165
    functionDepth: 6
    functionLinenumber: 2165
    functionLinenumberEnd: 2316
    functionName: SECMOD_LoadModule
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pars.c
    functionUses: 4
    functionsReached:
    - secmod_LoadPKCS11Module
    - SECMOD_ReferenceModule
    - secmod_parsePolicyCheckFlags
    - SECMOD_FreeModuleSpecList
    - secmod_IsInternalKeySlot
    - SECMOD_AddModuleToUnloadList
    - PORT_SetError
    - NSSUTIL_ArgParseModuleSpecEx
    - SECMOD_AddModuleToList
    - NSSUTIL_AddNSSFlagToModuleSpec
    - SECMOD_DestroyModule
    - secmod_PolicyOnly
    - SECMOD_GetModuleSpecList
    - SECMOD_GetSkipFirstFlag
    - SECMOD_LoadModule
    - PORT_Free
    - SECMOD_AddModuleToDBOnlyList
    - PORT_GetError
    - SECMOD_CreateModuleEx
    - SECMOD_UnloadModule
    - NSSUTIL_ArgHasFlag
    - SECMOD_Init
    - PORT_Strcmp
    linkageType: ''
    returnType: SECMODModule
    signature: 'SECMODModule *

      SECMOD_LoadModule(char *modulespec, SECMODModule *parent, PRBool recurse)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SECMOD_Init
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2326,1
    - Dst: secmod_NewModule
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2328,1
    - Dst: PORT_ArenaStrdup
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2333,1
    - Dst: SECMOD_GetSystemFIPSEnabled
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2337,1
    - Dst: secmod_LoadPKCS11ModuleFromFunction
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2356,1
    - Dst: SECMOD_DestroyModule
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2366,1
    - Dst: SECMOD_AddModuleToList
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2370,1
    - Dst: SECMOD_UnloadModule
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2377,1
    - Dst: SECMOD_AddModuleToUnloadList
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2379,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 2
    argNames:
    - moduleName
    - fentry
    argTypes:
    - char*
    - CK_C_GetFunctionList
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2382
      start: 2318
    functionDepth: 2
    functionLinenumber: 2318
    functionLinenumberEnd: 2382
    functionName: SECMOD_LoadModuleWithFunction
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pars.c
    functionUses: 0
    functionsReached:
    - PORT_ArenaStrdup
    - SECMOD_AddModuleToUnloadList
    - SECMOD_DestroyModule
    - secmod_LoadPKCS11ModuleFromFunction
    - secmod_NewModule
    - SECMOD_AddModuleToList
    - SECMOD_UnloadModule
    - SECMOD_Init
    - SECMOD_GetSystemFIPSEnabled
    linkageType: ''
    returnType: SECMODModule
    signature: 'SECMODModule *

      SECMOD_LoadModuleWithFunction(const char *moduleName, CK_C_GetFunctionList fentry)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECMOD_LoadModule
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2391,1
    - Dst: SECMOD_GetDefaultModuleListLock
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2392,1
    - Dst: SECMOD_GetReadLock
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2395,1
    - Dst: STAN_AddModuleToDefaultTrustDomain
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2396,1
    - Dst: SECMOD_ReleaseReadLock
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2397,1
    - Dst: SECMOD_DestroyModule
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2399,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - modulespec
    - parent
    - recurse
    argTypes:
    - char*
    - SECMODModule*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2404
      start: 2387
    functionDepth: 7
    functionLinenumber: 2387
    functionLinenumberEnd: 2404
    functionName: SECMOD_LoadUserModule
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pars.c
    functionUses: 0
    functionsReached:
    - SECMOD_LoadModule
    - SECMOD_ReleaseReadLock
    - STAN_AddModuleToDefaultTrustDomain
    - SECMOD_GetReadLock
    - SECMOD_DestroyModule
    - SECMOD_GetDefaultModuleListLock
    linkageType: ''
    returnType: SECMODModule
    signature: 'SECMODModule *

      SECMOD_LoadUserModule(char *modulespec, SECMODModule *parent, PRBool recurse)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECMOD_LoadModuleWithFunction
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2410,1
    - Dst: SECMOD_GetDefaultModuleListLock
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2411,1
    - Dst: SECMOD_GetReadLock
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2414,1
    - Dst: STAN_AddModuleToDefaultTrustDomain
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2415,1
    - Dst: SECMOD_ReleaseReadLock
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2416,1
    - Dst: SECMOD_DestroyModule
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2418,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - moduleName
    - fentry
    argTypes:
    - char*
    - CK_C_GetFunctionList
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2423
      start: 2406
    functionDepth: 3
    functionLinenumber: 2406
    functionLinenumberEnd: 2423
    functionName: SECMOD_LoadUserModuleWithFunction
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pars.c
    functionUses: 0
    functionsReached:
    - SECMOD_LoadModuleWithFunction
    - SECMOD_ReleaseReadLock
    - STAN_AddModuleToDefaultTrustDomain
    - SECMOD_GetReadLock
    - SECMOD_DestroyModule
    - SECMOD_GetDefaultModuleListLock
    linkageType: ''
    returnType: SECMODModule
    signature: 'SECMODModule *

      SECMOD_LoadUserModuleWithFunction(const char *moduleName, CK_C_GetFunctionList
      fentry)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECMOD_GetDefaultModuleListLock
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2434,1
    - Dst: SECMOD_GetReadLock
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2439,1
    - Dst: STAN_RemoveModuleFromDefaultTrustDomain
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2440,1
    - Dst: SECMOD_ReleaseReadLock
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2441,1
    - Dst: SECMOD_DeleteModuleEx
      Src: /src/nss/lib/pk11wrap/pk11pars.c:2445,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - mod
    argTypes:
    - SECMODModule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2446
      start: 2429
    functionDepth: 2
    functionLinenumber: 2429
    functionLinenumberEnd: 2446
    functionName: SECMOD_UnloadUserModule
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pars.c
    functionUses: 0
    functionsReached:
    - SECMOD_ReleaseReadLock
    - SECMOD_GetReadLock
    - SECMOD_GetDefaultModuleListLock
    - SECMOD_DeleteModuleEx
    - STAN_RemoveModuleFromDefaultTrustDomain
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SECMOD_UnloadUserModule(SECMODModule *mod)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11akey.c:55,1
    - Dst: PK11_MakeIDFromPubKey
      Src: /src/nss/lib/pk11wrap/pk11akey.c:57,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - pubKey
    argTypes:
    - SECKEYPublicKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 58
    functionName: pk11_MakeIDFromPublicKey
    functionSourceFile: /src/nss/lib/pk11wrap/pk11akey.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PK11_MakeIDFromPubKey
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      pk11_MakeIDFromPublicKey(SECKEYPublicKey *pubKey)'
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: PK11_IsPermObject
      Src: /src/nss/lib/pk11wrap/pk11akey.c:96,1
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11akey.c:97,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11akey.c:98,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11akey.c:100,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11akey.c:102,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:105,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:107,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:109,1
    - Dst: pk11_MakeIDFromPublicKey
      Src: /src/nss/lib/pk11wrap/pk11akey.c:113,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11akey.c:115,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:118,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:127,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:129,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:132,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:135,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:138,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:145,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:148,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:151,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:154,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:157,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:163,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:166,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:169,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:173,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:176,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:182,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:185,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:188,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:191,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:197,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:199,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:203,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:210,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:212,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:216,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:223,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:225,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:227,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/pk11wrap/pk11akey.c:231,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:232,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/pk11wrap/pk11akey.c:237,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/pk11wrap/pk11akey.c:239,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11akey.c:242,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:246,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:267,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:271,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11akey.c:277,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11akey.c:279,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11akey.c:283,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11akey.c:286,1
    - Dst: pk11_SignedToUnsigned
      Src: /src/nss/lib/pk11wrap/pk11akey.c:289,1
    - Dst: PK11_CreateNewObject
      Src: /src/nss/lib/pk11wrap/pk11akey.c:292,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11akey.c:295,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11akey.c:298,1
    - Dst: PK11_ReferenceSlot
      Src: /src/nss/lib/pk11wrap/pk11akey.c:306,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 175
    argCount: 3
    argNames:
    - slot
    - pubKey
    - isToken
    argTypes:
    - PK11SlotInfo*
    - SECKEYPublicKey*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 309
    functionName: PK11_ImportPublicKey
    functionSourceFile: /src/nss/lib/pk11wrap/pk11akey.c
    functionUses: 3
    functionsReached:
    - PORT_Assert
    - PK11_ReferenceSlot
    - SEC_ASN1EncodeItem
    - PK11_IsPermObject
    - PR_GetEnvSecure
    - pk11_MakeIDFromPublicKey
    - PK11_GETTAB
    - PK11_SETATTRS
    - PORT_SetError
    - PK11_EnterSlotMonitor
    - PK11_CreateNewObject
    - pk11_SignedToUnsigned
    - PK11_ExitSlotMonitor
    - SEC_ASN1_GET
    - PK11_FreeSlot
    - SECITEM_FreeItem
    linkageType: ''
    returnType: CK_OBJECT_HANDLE
    signature: "CK_OBJECT_HANDLE PK11_ImportPublicKey(PK11SlotInfo *slot, SECKEYPublicKey
      *pubKey,\n                     PRBool isToken)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/pk11wrap/pk11akey.c:319,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11akey.c:323,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - arena
    - attr
    - item
    argTypes:
    - PLArenaPool*
    - CK_ATTRIBUTE*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 325
    functionName: pk11_Attr2SecItem
    functionSourceFile: /src/nss/lib/pk11wrap/pk11akey.c
    functionUses: 0
    functionsReached:
    - PORT_Memcpy
    - SECITEM_AllocItem
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV pk11_Attr2SecItem(PLArenaPool *arena, const CK_ATTRIBUTE *attr,
      SECItem *item)
  - BBCount: 60
    BranchProfiles: []
    Callsites:
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/pk11wrap/pk11akey.c:352,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/pk11wrap/pk11akey.c:353,1
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/pk11wrap/pk11akey.c:364,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 94
    argCount: 3
    argNames:
    - arena
    - ecParams
    - plain
    argTypes:
    - PLArenaPool*
    - SECItem*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 453
    functionName: pk11_get_EC_PointLenInBytes
    functionSourceFile: /src/nss/lib/pk11wrap/pk11akey.c
    functionUses: 0
    functionsReached:
    - SECOID_FindOIDTag
    - SEC_QuickDERDecodeItem
    - SEC_ASN1_GET
    linkageType: ''
    returnType: int
    signature: "int pk11_get_EC_PointLenInBytes(PLArenaPool *arena, const SECItem
      *ecParams,\n                            PRBool *plain)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: pk11_get_EC_PointLenInBytes
      Src: /src/nss/lib/pk11wrap/pk11akey.c:492,1
    - Dst: pk11_Attr2SecItem
      Src: /src/nss/lib/pk11wrap/pk11akey.c:503,1
    - Dst: pk11_Attr2SecItem
      Src: /src/nss/lib/pk11wrap/pk11akey.c:510,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/pk11wrap/pk11akey.c:518,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/pk11wrap/pk11akey.c:519,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/pk11wrap/pk11akey.c:549,1
    - Dst: pk11_Attr2SecItem
      Src: /src/nss/lib/pk11wrap/pk11akey.c:559,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 33
    argCount: 4
    argNames:
    - arena
    - ecParams
    - ecPoint
    - publicKeyValue
    argTypes:
    - PLArenaPool*
    - SECItem*
    - CK_ATTRIBUTE*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 462
    functionDepth: 2
    functionLinenumber: 462
    functionLinenumberEnd: 641
    functionName: pk11_get_Decoded_ECPoint
    functionSourceFile: /src/nss/lib/pk11wrap/pk11akey.c
    functionUses: 0
    functionsReached:
    - PORT_Memcmp
    - pk11_get_EC_PointLenInBytes
    - SEC_QuickDERDecodeItem
    - pk11_Attr2SecItem
    - SEC_ASN1_GET
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV pk11_get_Decoded_ECPoint(PLArenaPool *arena, const SECItem *ecParams,\n
      \                        const CK_ATTRIBUTE *ecPoint, SECItem *publicKeyValue)"
  - BBCount: 51
    BranchProfiles: []
    Callsites:
    - Dst: PK11_ReadULongAttribute
      Src: /src/nss/lib/pk11wrap/pk11akey.c:664,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11akey.c:692,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/pk11wrap/pk11akey.c:698,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/pk11wrap/pk11akey.c:701,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pk11wrap/pk11akey.c:703,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pk11wrap/pk11akey.c:708,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pk11wrap/pk11akey.c:710,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pk11wrap/pk11akey.c:711,1
    - Dst: PK11_ReferenceSlot
      Src: /src/nss/lib/pk11wrap/pk11akey.c:717,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:719,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:722,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:728,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:731,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/pk11wrap/pk11akey.c:735,1
    - Dst: PK11_GetAttributes
      Src: /src/nss/lib/pk11wrap/pk11akey.c:736,1
    - Dst: pk11_Attr2SecItem
      Src: /src/nss/lib/pk11wrap/pk11akey.c:744,1
    - Dst: pk11_Attr2SecItem
      Src: /src/nss/lib/pk11wrap/pk11akey.c:747,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:753,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:756,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:759,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:762,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/pk11wrap/pk11akey.c:765,1
    - Dst: PK11_GetAttributes
      Src: /src/nss/lib/pk11wrap/pk11akey.c:766,1
    - Dst: pk11_Attr2SecItem
      Src: /src/nss/lib/pk11wrap/pk11akey.c:774,1
    - Dst: pk11_Attr2SecItem
      Src: /src/nss/lib/pk11wrap/pk11akey.c:777,1
    - Dst: pk11_Attr2SecItem
      Src: /src/nss/lib/pk11wrap/pk11akey.c:780,1
    - Dst: pk11_Attr2SecItem
      Src: /src/nss/lib/pk11wrap/pk11akey.c:783,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:789,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:792,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:795,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/pk11wrap/pk11akey.c:798,1
    - Dst: PK11_GetAttributes
      Src: /src/nss/lib/pk11wrap/pk11akey.c:799,1
    - Dst: pk11_Attr2SecItem
      Src: /src/nss/lib/pk11wrap/pk11akey.c:807,1
    - Dst: pk11_Attr2SecItem
      Src: /src/nss/lib/pk11wrap/pk11akey.c:810,1
    - Dst: pk11_Attr2SecItem
      Src: /src/nss/lib/pk11wrap/pk11akey.c:813,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:822,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:825,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/pk11wrap/pk11akey.c:828,1
    - Dst: PK11_GetAttributes
      Src: /src/nss/lib/pk11wrap/pk11akey.c:829,1
    - Dst: pk11_Attr2SecItem
      Src: /src/nss/lib/pk11wrap/pk11akey.c:841,1
    - Dst: pk11_get_Decoded_ECPoint
      Src: /src/nss/lib/pk11wrap/pk11akey.c:846,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:852,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:855,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/pk11wrap/pk11akey.c:858,1
    - Dst: PK11_GetAttributes
      Src: /src/nss/lib/pk11wrap/pk11akey.c:860,1
    - Dst: pk11_Attr2SecItem
      Src: /src/nss/lib/pk11wrap/pk11akey.c:890,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pk11wrap/pk11akey.c:899,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pk11wrap/pk11akey.c:902,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11akey.c:903,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11akey.c:904,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11akey.c:904,1
    CyclomaticComplexity: 79
    EdgeCount: 79
    ICount: 221
    argCount: 3
    argNames:
    - slot
    - keyType
    - id
    argTypes:
    - PK11SlotInfo*
    - KeyType
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 646
    functionDepth: 3
    functionLinenumber: 646
    functionLinenumberEnd: 909
    functionName: PK11_ExtractPublicKey
    functionSourceFile: /src/nss/lib/pk11wrap/pk11akey.c
    functionUses: 0
    functionsReached:
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - PORT_FreeArena
    - PR_ASSERT
    - PORT_SetError
    - PK11_SETATTRS
    - pk11_Attr2SecItem
    - PK11_ReferenceSlot
    - PK11_ReadULongAttribute
    - PK11_GetAttributes
    - pk11_get_Decoded_ECPoint
    - PK11_MapError
    - PK11_FreeSlot
    linkageType: ''
    returnType: SECKEYPublicKey
    signature: 'SECKEYPublicKey *

      PK11_ExtractPublicKey(PK11SlotInfo *slot, KeyType keyType, CK_OBJECT_HANDLE
      id)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PK11_ReadULongAttribute
      Src: /src/nss/lib/pk11wrap/pk11akey.c:927,1
    - Dst: PK11_HasAttributeSet
      Src: /src/nss/lib/pk11wrap/pk11akey.c:928,1
    - Dst: PK11_HasAttributeSet
      Src: /src/nss/lib/pk11wrap/pk11akey.c:962,1
    - Dst: PK11_Authenticate
      Src: /src/nss/lib/pk11wrap/pk11akey.c:964,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/pk11wrap/pk11akey.c:971,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pk11wrap/pk11akey.c:976,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pk11wrap/pk11akey.c:978,1
    - Dst: PK11_ReferenceSlot
      Src: /src/nss/lib/pk11wrap/pk11akey.c:984,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 56
    argCount: 5
    argNames:
    - slot
    - keyType
    - isTemp
    - privID
    - wincx
    argTypes:
    - PK11SlotInfo*
    - KeyType
    - PRBool
    - CK_OBJECT_HANDLE
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 914
    functionDepth: 1
    functionLinenumber: 914
    functionLinenumberEnd: 990
    functionName: PK11_MakePrivKey
    functionSourceFile: /src/nss/lib/pk11wrap/pk11akey.c
    functionUses: 0
    functionsReached:
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - PORT_FreeArena
    - PK11_HasAttributeSet
    - PK11_ReferenceSlot
    - PK11_ReadULongAttribute
    - PK11_Authenticate
    linkageType: ''
    returnType: SECKEYPrivateKey
    signature: "SECKEYPrivateKey *\nPK11_MakePrivKey(PK11SlotInfo *slot, KeyType keyType,\n
      \                PRBool isTemp, CK_OBJECT_HANDLE privID, void *wincx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_ReferenceSlot
      Src: /src/nss/lib/pk11wrap/pk11akey.c:996,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key
    argTypes:
    - SECKEYPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 992
    functionDepth: 1
    functionLinenumber: 992
    functionLinenumberEnd: 998
    functionName: PK11_GetSlotFromPrivateKey
    functionSourceFile: /src/nss/lib/pk11wrap/pk11akey.c
    functionUses: 1
    functionsReached:
    - PK11_ReferenceSlot
    linkageType: ''
    returnType: PK11SlotInfo
    signature: 'PK11SlotInfo *

      PK11_GetSlotFromPrivateKey(SECKEYPrivateKey *key)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetAttributes
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1013,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1015,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1015,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1019,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1019,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1026,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1036,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1037,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 1
    argNames:
    - key
    argTypes:
    - SECKEYPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 1003
    functionDepth: 1
    functionLinenumber: 1003
    functionLinenumberEnd: 1039
    functionName: PK11_GetPrivateModulusLen
    functionSourceFile: /src/nss/lib/pk11wrap/pk11akey.c
    functionUses: 2
    functionsReached:
    - PORT_Free
    - PK11_GetAttributes
    - PORT_SetError
    - PK11_MapError
    linkageType: ''
    returnType: int
    signature: int PK11_GetPrivateModulusLen(SECKEYPrivateKey *key)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: pk11_BadAttrFlags
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1093,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1094,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1105,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1107,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1188,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1192,1
    - Dst: PK11_GetAttributes
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1198,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1201,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1201,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1202,1
    - Dst: pk11_AttrFlagsToAttributes
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1207,1
    - Dst: pk11_SignedToUnsigned
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1216,1
    - Dst: PK11_CreateNewObject
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1221,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1223,1
    - Dst: PK11_ImportPublicKey
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1230,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1232,1
    - Dst: PK11_MakePrivKey
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1239,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 123
    argCount: 4
    argNames:
    - slot
    - privKey
    - pubKey
    - attrFlags
    argTypes:
    - PK11SlotInfo*
    - SECKEYPrivateKey*
    - SECKEYPublicKey*
    - PK11AttrFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1241
      start: 1047
    functionDepth: 3
    functionLinenumber: 1047
    functionLinenumberEnd: 1241
    functionName: pk11_loadPrivKeyWithFlags
    functionSourceFile: /src/nss/lib/pk11wrap/pk11akey.c
    functionUses: 0
    functionsReached:
    - PK11_FreeSlot
    - PORT_Assert
    - PK11_GetAttributes
    - PORT_NewArena
    - PORT_FreeArena
    - PORT_SetError
    - PK11_MakePrivKey
    - PK11_CreateNewObject
    - pk11_SignedToUnsigned
    - pk11_BadAttrFlags
    - pk11_AttrFlagsToAttributes
    - PK11_MapError
    - PK11_ImportPublicKey
    linkageType: ''
    returnType: SECKEYPrivateKey
    signature: "SECKEYPrivateKey *\npk11_loadPrivKeyWithFlags(PK11SlotInfo *slot,
      SECKEYPrivateKey *privKey,\n                          SECKEYPublicKey *pubKey,
      PK11AttrFlags attrFlags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pk11_loadPrivKeyWithFlags
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1258,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - slot
    - privKey
    - pubKey
    - token
    - sensitive
    argTypes:
    - PK11SlotInfo*
    - SECKEYPrivateKey*
    - SECKEYPublicKey*
    - PRBool
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1259
      start: 1243
    functionDepth: 4
    functionLinenumber: 1243
    functionLinenumberEnd: 1259
    functionName: pk11_loadPrivKey
    functionSourceFile: /src/nss/lib/pk11wrap/pk11akey.c
    functionUses: 0
    functionsReached:
    - pk11_loadPrivKeyWithFlags
    linkageType: ''
    returnType: SECKEYPrivateKey
    signature: "SECKEYPrivateKey *\npk11_loadPrivKey(PK11SlotInfo *slot, SECKEYPrivateKey
      *privKey,\n                 SECKEYPublicKey *pubKey, PRBool token, PRBool sensitive)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pk11_loadPrivKey
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - slot
    - privKey
    - pubKey
    - token
    - sensitive
    argTypes:
    - PK11SlotInfo*
    - SECKEYPrivateKey*
    - SECKEYPublicKey*
    - PRBool
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1269
      start: 1264
    functionDepth: 5
    functionLinenumber: 1264
    functionLinenumberEnd: 1269
    functionName: PK11_LoadPrivKey
    functionSourceFile: /src/nss/lib/pk11wrap/pk11akey.c
    functionUses: 0
    functionsReached:
    - pk11_loadPrivKey
    linkageType: ''
    returnType: SECKEYPrivateKey
    signature: "SECKEYPrivateKey *\nPK11_LoadPrivKey(PK11SlotInfo *slot, SECKEYPrivateKey
      *privKey,\n                 SECKEYPublicKey *pubKey, PRBool token, PRBool sensitive)"
  - BBCount: 54
    BranchProfiles: []
    Callsites:
    - Dst: pk11_BadAttrFlags
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1385,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1386,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1391,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1406,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1409,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1411,1
    - Dst: PK11_DoesMechanism
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1417,1
    - Dst: PK11_GetInternalSlot
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1418,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1422,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1423,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1429,1
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1434,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1436,1
    - Dst: pk11_loadPrivKeyWithFlags
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1440,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1442,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1444,1
    - Dst: pk11_AttrFlagsToAttributes
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1463,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1472,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1487,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1489,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1492,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1502,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1505,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1508,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1518,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1521,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1532,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1563,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1574,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1585,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1595,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1603,1
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1609,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1610,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1626,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1635,1
    - Dst: pk11_AttrFlagsToAttributes
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1669,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1671,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1675,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1679,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1683,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1687,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1692,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1696,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1700,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1704,1
    - Dst: PK11_GetRWSession
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1710,1
    - Dst: PK11_RWSessionHasLock
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1711,1
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1716,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1722,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1727,1
    - Dst: PK11_RestoreROSession
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1732,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1734,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1735,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1735,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1742,1
    - Dst: PK11_ReadULongAttribute
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1746,1
    - Dst: PK11_ExtractPublicKey
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1753,1
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1759,1
    - Dst: PK11_RestoreROSession
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1760,1
    - Dst: PK11_DestroyObject
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1762,1
    - Dst: PK11_DestroyObject
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1763,1
    - Dst: pk11_MakeIDFromPublicKey
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1768,1
    - Dst: PK11_HasAttributeSet
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1769,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1771,1
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1774,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1776,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1780,1
    - Dst: PK11_RestoreROSession
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1785,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1787,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1789,1
    - Dst: PK11_DestroyObject
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1792,1
    - Dst: PK11_DestroyObject
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1793,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1794,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1794,1
    - Dst: PK11_MakePrivKey
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1799,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1801,1
    - Dst: PK11_DestroyObject
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1802,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 298
    argCount: 8
    argNames:
    - slot
    - type
    - param
    - pubKey
    - attrFlags
    - opFlags
    - opFlagsMask
    - wincx
    argTypes:
    - PK11SlotInfo*
    - CK_MECHANISM_TYPE
    - void*
    - SECKEYPublicKey**
    - PK11AttrFlags
    - CK_FLAGS
    - CK_FLAGS
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1808
      start: 1274
    functionDepth: 4
    functionLinenumber: 1274
    functionLinenumberEnd: 1808
    functionName: PK11_GenerateKeyPairWithOpFlags
    functionSourceFile: /src/nss/lib/pk11wrap/pk11akey.c
    functionUses: 3
    functionsReached:
    - PK11_RWSessionHasLock
    - PK11_DoesMechanism
    - pk11_MakeIDFromPublicKey
    - pk11_BadAttrFlags
    - PK11_ReadULongAttribute
    - pk11_loadPrivKeyWithFlags
    - SECKEY_DestroyPublicKey
    - PK11_GetRWSession
    - PORT_SetError
    - PK11_RestoreROSession
    - pk11_AttrFlagsToAttributes
    - SECITEM_FreeItem
    - PORT_Assert
    - PK11_ExtractPublicKey
    - SECKEY_DestroyPrivateKey
    - PK11_FreeSlot
    - PK11_GenerateKeyPair
    - PK11_HasAttributeSet
    - PK11_DestroyObject
    - PK11_GETTAB
    - PK11_SETATTRS
    - PK11_MakePrivKey
    - PK11_EnterSlotMonitor
    - PK11_GetInternalSlot
    - PK11_ExitSlotMonitor
    - PK11_MapError
    linkageType: ''
    returnType: SECKEYPrivateKey
    signature: "SECKEYPrivateKey *\nPK11_GenerateKeyPairWithOpFlags(PK11SlotInfo *slot,
      CK_MECHANISM_TYPE type,\n                                void *param, SECKEYPublicKey
      **pubKey, PK11AttrFlags attrFlags,\n                                CK_FLAGS
      opFlags, CK_FLAGS opFlagsMask, void *wincx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GenerateKeyPairWithOpFlags
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1814,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - slot
    - type
    - param
    - pubKey
    - attrFlags
    - wincx
    argTypes:
    - PK11SlotInfo*
    - CK_MECHANISM_TYPE
    - void*
    - SECKEYPublicKey**
    - PK11AttrFlags
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1816
      start: 1810
    functionDepth: 5
    functionLinenumber: 1810
    functionLinenumberEnd: 1816
    functionName: PK11_GenerateKeyPairWithFlags
    functionSourceFile: /src/nss/lib/pk11wrap/pk11akey.c
    functionUses: 0
    functionsReached:
    - PK11_GenerateKeyPairWithOpFlags
    linkageType: ''
    returnType: SECKEYPrivateKey
    signature: "SECKEYPrivateKey *\nPK11_GenerateKeyPairWithFlags(PK11SlotInfo *slot,
      CK_MECHANISM_TYPE type,\n                              void *param, SECKEYPublicKey
      **pubKey, PK11AttrFlags attrFlags, void *wincx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GenerateKeyPairWithFlags
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1838,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 7
    argNames:
    - slot
    - type
    - param
    - pubKey
    - token
    - sensitive
    - wincx
    argTypes:
    - PK11SlotInfo*
    - CK_MECHANISM_TYPE
    - void*
    - SECKEYPublicKey**
    - PRBool
    - PRBool
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1840
      start: 1821
    functionDepth: 6
    functionLinenumber: 1821
    functionLinenumberEnd: 1840
    functionName: PK11_GenerateKeyPair
    functionSourceFile: /src/nss/lib/pk11wrap/pk11akey.c
    functionUses: 10
    functionsReached:
    - PK11_GenerateKeyPairWithFlags
    linkageType: ''
    returnType: SECKEYPrivateKey
    signature: "SECKEYPrivateKey *\nPK11_GenerateKeyPair(PK11SlotInfo *slot, CK_MECHANISM_TYPE
      type,\n                     void *param, SECKEYPublicKey **pubKey, PRBool token,\n
      \                    PRBool sensitive, void *wincx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1855,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1859,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1861,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1869,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1871,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - keyData
    - length
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1875
      start: 1843
    functionDepth: 0
    functionLinenumber: 1843
    functionLinenumberEnd: 1875
    functionName: PK11_MakeKEAPubKey
    functionSourceFile: /src/nss/lib/pk11wrap/pk11akey.c
    functionUses: 0
    functionsReached:
    - PORT_FreeArena
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - SECITEM_CopyItem
    linkageType: ''
    returnType: SECKEYPublicKey
    signature: 'SECKEYPublicKey *

      PK11_MakeKEAPubKey(unsigned char *keyData, int length)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1888,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1899,1
    - Dst: PK11_ReadAttribute
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1914,1
    - Dst: PK11_ReadAttribute
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1919,1
    - Dst: PK11_ReadAttribute
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1924,1
    - Dst: PK11_ReadAttribute
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1929,1
    - Dst: PK11_ReadAttribute
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1934,1
    - Dst: PK11_ReadAttribute
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1939,1
    - Dst: PK11_ReadAttribute
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1948,1
    - Dst: PK11_ImportPublicKey
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1953,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1963,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 58
    argCount: 2
    argNames:
    - privKey
    - publicValue
    argTypes:
    - SECKEYPrivateKey*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1966
      start: 1877
    functionDepth: 3
    functionLinenumber: 1877
    functionLinenumberEnd: 1966
    functionName: SECKEY_SetPublicValue
    functionSourceFile: /src/nss/lib/pk11wrap/pk11akey.c
    functionUses: 0
    functionsReached:
    - SECKEY_DestroyPublicKey
    - PORT_NewArena
    - PORT_SetError
    - PK11_ImportPublicKey
    - PK11_ReadAttribute
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SECKEY_SetPublicValue(SECKEYPrivateKey *privKey, SECItem
      *publicValue)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1982,1
    - Dst: PK11_ImportEncryptedPrivateKeyInfoAndReturnKey
      Src: /src/nss/lib/pk11wrap/pk11akey.c:1985,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 10
    argNames:
    - slot
    - epki
    - pwitem
    - nickname
    - publicValue
    - isPerm
    - isPrivate
    - keyType
    - keyUsage
    - wincx
    argTypes:
    - PK11SlotInfo*
    - SECKEYEncryptedPrivateKeyInfo*
    - SECItem*
    - SECItem*
    - SECItem*
    - PRBool
    - PRBool
    - KeyType
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1988
      start: 1974
    functionDepth: 1
    functionLinenumber: 1974
    functionLinenumberEnd: 1988
    functionName: PK11_ImportEncryptedPrivateKeyInfo
    functionSourceFile: /src/nss/lib/pk11wrap/pk11akey.c
    functionUses: 0
    functionsReached:
    - PK11_ImportEncryptedPrivateKeyInfoAndReturnKey
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_ImportEncryptedPrivateKeyInfo(PK11SlotInfo *slot,\n
      \                                  SECKEYEncryptedPrivateKeyInfo *epki, SECItem
      *pwitem,\n                                   SECItem *nickname, SECItem *publicValue,
      PRBool isPerm,\n                                   PRBool isPrivate, KeyType
      keyType,\n                                   unsigned int keyUsage, void *wincx)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: PK11_AlgtagToMechanism
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2018,1
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2018,1
    - Dst: PK11_PBEKeyGen
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2083,1
    - Dst: pk11_GetPBECryptoMechanism
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2088,1
    - Dst: PK11_GetPadMechanism
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2095,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2097,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2098,1
    - Dst: PK11_UnwrapPrivKey
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2099,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2117,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2121,1
    - Dst: SECKEY_SetPublicValue
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2141,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2148,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2153,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2157,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 118
    argCount: 11
    argNames:
    - slot
    - epki
    - pwitem
    - nickname
    - publicValue
    - isPerm
    - isPrivate
    - keyType
    - keyUsage
    - privk
    - wincx
    argTypes:
    - PK11SlotInfo*
    - SECKEYEncryptedPrivateKeyInfo*
    - SECItem*
    - SECItem*
    - SECItem*
    - PRBool
    - PRBool
    - KeyType
    - unsigned int
    - SECKEYPrivateKey**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2161
      start: 1990
    functionDepth: 4
    functionLinenumber: 1990
    functionLinenumberEnd: 2161
    functionName: PK11_ImportEncryptedPrivateKeyInfoAndReturnKey
    functionSourceFile: /src/nss/lib/pk11wrap/pk11akey.c
    functionUses: 2
    functionsReached:
    - pk11_GetPBECryptoMechanism
    - PK11_GetPadMechanism
    - PORT_Assert
    - PK11_PBEKeyGen
    - SECKEY_SetPublicValue
    - PK11_AlgtagToMechanism
    - SECOID_FindOIDTag
    - SECKEY_DestroyPrivateKey
    - PK11_FreeSymKey
    - SECITEM_ZfreeItem
    - PK11_UnwrapPrivKey
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_ImportEncryptedPrivateKeyInfoAndReturnKey(PK11SlotInfo
      *slot,\n                                               SECKEYEncryptedPrivateKeyInfo
      *epki, SECItem *pwitem,\n                                               SECItem
      *nickname, SECItem *publicValue, PRBool isPerm,\n                                               PRBool
      isPrivate, KeyType keyType,\n                                               unsigned
      int keyUsage, SECKEYPrivateKey **privk,\n                                               void
      *wincx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_FindKeyByAnyCert
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2167,1
    - Dst: PK11_ExportPrivKeyInfo
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2169,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - cert
    - wincx
    argTypes:
    - CERTCertificate*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2173
      start: 2163
    functionDepth: 2
    functionLinenumber: 2163
    functionLinenumberEnd: 2173
    functionName: PK11_ExportPrivateKeyInfo
    functionSourceFile: /src/nss/lib/pk11wrap/pk11akey.c
    functionUses: 0
    functionsReached:
    - SECKEY_DestroyPrivateKey
    - PK11_ExportPrivKeyInfo
    - PK11_FindKeyByAnyCert
    linkageType: ''
    returnType: SECKEYPrivateKeyInfo
    signature: 'SECKEYPrivateKeyInfo *

      PK11_ExportPrivateKeyInfo(CERTCertificate *cert, void *wincx)'
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2205,1
    - Dst: sec_pkcs5CreateAlgorithmID
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2209,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2215,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2217,1
    - Dst: PK11_AlgtagToMechanism
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2232,1
    - Dst: PK11_DoesMechanism
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2234,1
    - Dst: PK11_PBEKeyGen
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2238,1
    - Dst: PK11_GetPBECryptoMechanism
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2244,1
    - Dst: PK11_GetPadMechanism
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2250,1
    - Dst: pk11_CopyToSlot
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2256,1
    - Dst: pk11_loadPrivKey
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2261,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2269,1
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2280,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2281,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2282,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2287,1
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2292,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2293,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2294,1
    - Dst: SECOID_CopyAlgorithmID
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2306,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2310,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2315,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2318,1
    - Dst: SECOID_DestroyAlgorithmID
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2320,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2324,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 106
    argCount: 8
    argNames:
    - slot
    - pbeAlg
    - encAlg
    - prfAlg
    - pwitem
    - pk
    - iteration
    - pwArg
    argTypes:
    - PK11SlotInfo*
    - SECOidTag
    - SECOidTag
    - SECOidTag
    - SECItem*
    - SECKEYPrivateKey*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2330
      start: 2179
    functionDepth: 5
    functionLinenumber: 2179
    functionLinenumberEnd: 2330
    functionName: PK11_ExportEncryptedPrivKeyInfoV2
    functionSourceFile: /src/nss/lib/pk11wrap/pk11akey.c
    functionUses: 0
    functionsReached:
    - PK11_GetPadMechanism
    - pk11_loadPrivKey
    - PK11_DoesMechanism
    - PK11_AlgtagToMechanism
    - SECOID_CopyAlgorithmID
    - SECOID_DestroyAlgorithmID
    - PK11_PBEKeyGen
    - PORT_NewArena
    - pk11_CopyToSlot
    - PORT_ArenaAlloc
    - PORT_SetError
    - PORT_ArenaZNew
    - PORT_FreeArena
    - PK11_ExitSlotMonitor
    - SECITEM_ZfreeItem
    - sec_pkcs5CreateAlgorithmID
    - PK11_GetPBECryptoMechanism
    - PK11_GETTAB
    - PK11_EnterSlotMonitor
    - SECKEY_DestroyPrivateKey
    - PK11_FreeSymKey
    linkageType: ''
    returnType: SECKEYEncryptedPrivateKeyInfo
    signature: "SECKEYEncryptedPrivateKeyInfo *\nPK11_ExportEncryptedPrivKeyInfoV2(\n
      \   PK11SlotInfo *slot,   /* optional, encrypt key in this slot */\n    SECOidTag
      pbeAlg,     /* PBE algorithm to encrypt the with key */\n    SECOidTag encAlg,
      \    /* Encryption algorithm to Encrypt the key with */\n    SECOidTag prfAlg,
      \    /* Hash algorithm for PRF */\n    SECItem *pwitem,      /* password for
      PBE encryption */\n    SECKEYPrivateKey *pk, /* encrypt this private key */\n
      \   int iteration,        /* interations for PBE alg */\n    void *pwArg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_ExportEncryptedPrivKeyInfoV2
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - slot
    - algTag
    - pwitem
    - pk
    - iteration
    - pwArg
    argTypes:
    - PK11SlotInfo*
    - SECOidTag
    - SECItem*
    - SECKEYPrivateKey*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2344
      start: 2332
    functionDepth: 6
    functionLinenumber: 2332
    functionLinenumberEnd: 2344
    functionName: PK11_ExportEncryptedPrivKeyInfo
    functionSourceFile: /src/nss/lib/pk11wrap/pk11akey.c
    functionUses: 1
    functionsReached:
    - PK11_ExportEncryptedPrivKeyInfoV2
    linkageType: ''
    returnType: SECKEYEncryptedPrivateKeyInfo
    signature: "SECKEYEncryptedPrivateKeyInfo *\nPK11_ExportEncryptedPrivKeyInfo(\n
      \   PK11SlotInfo *slot,   /* optional, encrypt key in this slot */\n    SECOidTag
      algTag,     /* PBE algorithm to encrypt the with key */\n    SECItem *pwitem,
      \     /* password for PBE encryption */\n    SECKEYPrivateKey *pk, /* encrypt
      this private key */\n    int iteration,        /* interations for PBE alg */\n
      \   void *pwArg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_FindKeyByAnyCert
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2362,1
    - Dst: PK11_ExportEncryptedPrivKeyInfoV2
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2364,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2367,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 8
    argNames:
    - slot
    - pbeAlg
    - encAlg
    - prfAlg
    - pwitem
    - cert
    - iteration
    - pwArg
    argTypes:
    - PK11SlotInfo*
    - SECOidTag
    - SECOidTag
    - SECOidTag
    - SECItem*
    - CERTCertificate*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2370
      start: 2350
    functionDepth: 6
    functionLinenumber: 2350
    functionLinenumberEnd: 2370
    functionName: PK11_ExportEncryptedPrivateKeyInfoV2
    functionSourceFile: /src/nss/lib/pk11wrap/pk11akey.c
    functionUses: 0
    functionsReached:
    - PK11_ExportEncryptedPrivKeyInfoV2
    - SECKEY_DestroyPrivateKey
    - PK11_FindKeyByAnyCert
    linkageType: ''
    returnType: SECKEYEncryptedPrivateKeyInfo
    signature: "SECKEYEncryptedPrivateKeyInfo *\nPK11_ExportEncryptedPrivateKeyInfoV2(\n
      \   PK11SlotInfo *slot,    /* optional, encrypt key in this slot */\n    SECOidTag
      pbeAlg,      /* PBE algorithm to encrypt the with key */\n    SECOidTag encAlg,
      \     /* Encryption algorithm to Encrypt the key with */\n    SECOidTag prfAlg,
      \     /* HMAC algorithm for PRF*/\n    SECItem *pwitem,       /* password for
      PBE encryption */\n    CERTCertificate *cert, /* wrap priv key for this user
      cert */\n    int iteration,         /* interations for PBE alg */\n    void
      *pwArg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_ExportEncryptedPrivateKeyInfoV2
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - slot
    - algTag
    - pwitem
    - cert
    - iteration
    - pwArg
    argTypes:
    - PK11SlotInfo*
    - SECOidTag
    - SECItem*
    - CERTCertificate*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2384
      start: 2372
    functionDepth: 7
    functionLinenumber: 2372
    functionLinenumberEnd: 2384
    functionName: PK11_ExportEncryptedPrivateKeyInfo
    functionSourceFile: /src/nss/lib/pk11wrap/pk11akey.c
    functionUses: 0
    functionsReached:
    - PK11_ExportEncryptedPrivateKeyInfoV2
    linkageType: ''
    returnType: SECKEYEncryptedPrivateKeyInfo
    signature: "SECKEYEncryptedPrivateKeyInfo *\nPK11_ExportEncryptedPrivateKeyInfo(\n
      \   PK11SlotInfo *slot,    /* optional, encrypt key in this slot */\n    SECOidTag
      algTag,      /* encrypt key with this algorithm */\n    SECItem *pwitem,       /*
      password for PBE encryption */\n    CERTCertificate *cert, /* wrap priv key
      for this user cert */\n    int iteration,         /* interations for PBE alg
      */\n    void *pwArg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECKEY_EncodeDERSubjectPublicKeyInfo
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pubk
    argTypes:
    - SECKEYPublicKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2390
      start: 2386
    functionDepth: 5
    functionLinenumber: 2386
    functionLinenumberEnd: 2390
    functionName: PK11_DEREncodePublicKey
    functionSourceFile: /src/nss/lib/pk11wrap/pk11akey.c
    functionUses: 0
    functionsReached:
    - SECKEY_EncodeDERSubjectPublicKeyInfo
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      PK11_DEREncodePublicKey(const SECKEYPublicKey *pubk)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetObjectNickname
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - privKey
    argTypes:
    - SECKEYPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2396
      start: 2392
    functionDepth: 1
    functionLinenumber: 2392
    functionLinenumberEnd: 2396
    functionName: PK11_GetPrivateKeyNickname
    functionSourceFile: /src/nss/lib/pk11wrap/pk11akey.c
    functionUses: 1
    functionsReached:
    - PK11_GetObjectNickname
    linkageType: ''
    returnType: char
    signature: 'char *

      PK11_GetPrivateKeyNickname(SECKEYPrivateKey *privKey)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetObjectNickname
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pubKey
    argTypes:
    - SECKEYPublicKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2402
      start: 2398
    functionDepth: 1
    functionLinenumber: 2398
    functionLinenumberEnd: 2402
    functionName: PK11_GetPublicKeyNickname
    functionSourceFile: /src/nss/lib/pk11wrap/pk11akey.c
    functionUses: 0
    functionsReached:
    - PK11_GetObjectNickname
    linkageType: ''
    returnType: char
    signature: 'char *

      PK11_GetPublicKeyNickname(SECKEYPublicKey *pubKey)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_SetObjectNickname
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - privKey
    - nickname
    argTypes:
    - SECKEYPrivateKey*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2409
      start: 2404
    functionDepth: 1
    functionLinenumber: 2404
    functionLinenumberEnd: 2409
    functionName: PK11_SetPrivateKeyNickname
    functionSourceFile: /src/nss/lib/pk11wrap/pk11akey.c
    functionUses: 0
    functionsReached:
    - PK11_SetObjectNickname
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11_SetPrivateKeyNickname(SECKEYPrivateKey *privKey, const
      char *nickname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_SetObjectNickname
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pubKey
    - nickname
    argTypes:
    - SECKEYPublicKey*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2416
      start: 2411
    functionDepth: 1
    functionLinenumber: 2411
    functionLinenumberEnd: 2416
    functionName: PK11_SetPublicKeyNickname
    functionSourceFile: /src/nss/lib/pk11wrap/pk11akey.c
    functionUses: 0
    functionsReached:
    - PK11_SetObjectNickname
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11_SetPublicKeyNickname(SECKEYPublicKey *pubKey, const
      char *nickname)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2431,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2435,1
    - Dst: PK11_GetAttributes
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2440,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2443,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2443,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2459,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 1
    argNames:
    - privKey
    argTypes:
    - SECKEYPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2462
      start: 2418
    functionDepth: 1
    functionLinenumber: 2418
    functionLinenumberEnd: 2462
    functionName: PK11_GetPQGParamsFromPrivateKey
    functionSourceFile: /src/nss/lib/pk11wrap/pk11akey.c
    functionUses: 0
    functionsReached:
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - PORT_FreeArena
    - PORT_SetError
    - PK11_GetAttributes
    - PK11_MapError
    linkageType: ''
    returnType: SECKEYPQGParams
    signature: 'SECKEYPQGParams *

      PK11_GetPQGParamsFromPrivateKey(SECKEYPrivateKey *privKey)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - destSlot
    - privKey
    argTypes:
    - PK11SlotInfo*
    - SECKEYPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2474
      start: 2464
    functionDepth: 0
    functionLinenumber: 2464
    functionLinenumberEnd: 2474
    functionName: PK11_CopyTokenPrivKeyToSessionPrivKey
    functionSourceFile: /src/nss/lib/pk11wrap/pk11akey.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECKEYPrivateKey
    signature: "SECKEYPrivateKey *\nPK11_CopyTokenPrivKeyToSessionPrivKey(PK11SlotInfo
      *destSlot,\n                                      SECKEYPrivateKey *privKey)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2515,1
    - Dst: PK11_Authenticate
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2518,1
    - Dst: PK11_GetRWSession
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2519,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2521,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2524,1
    - Dst: PK11_RestoreROSession
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2526,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2529,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2529,1
    - Dst: PK11_MakePrivKey
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2533,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - privk
    - wincx
    argTypes:
    - SECKEYPrivateKey*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2535
      start: 2504
    functionDepth: 2
    functionLinenumber: 2504
    functionLinenumberEnd: 2535
    functionName: PK11_ConvertSessionPrivKeyToTokenPrivKey
    functionSourceFile: /src/nss/lib/pk11wrap/pk11akey.c
    functionUses: 0
    functionsReached:
    - PK11_GetRWSession
    - PORT_SetError
    - PK11_GETTAB
    - PK11_SETATTRS
    - PK11_MakePrivKey
    - PK11_RestoreROSession
    - PK11_MapError
    - PK11_Authenticate
    linkageType: ''
    returnType: SECKEYPrivateKey
    signature: 'SECKEYPrivateKey *

      PK11_ConvertSessionPrivKeyToTokenPrivKey(SECKEYPrivateKey *privk, void *wincx)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetCertFromPrivateKey
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2544,1
    - Dst: PK11_DestroyTokenObject
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2549,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2552,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2554,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - privKey
    - force
    argTypes:
    - SECKEYPrivateKey*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2556
      start: 2541
    functionDepth: 2
    functionLinenumber: 2541
    functionLinenumberEnd: 2556
    functionName: PK11_DeleteTokenPrivateKey
    functionSourceFile: /src/nss/lib/pk11wrap/pk11akey.c
    functionUses: 1
    functionsReached:
    - SECKEY_DestroyPrivateKey
    - PK11_GetCertFromPrivateKey
    - CERT_DestroyCertificate
    - PK11_DestroyTokenObject
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11_DeleteTokenPrivateKey(SECKEYPrivateKey *privKey, PRBool
      force)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_DestroyTokenObject
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2569,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2570,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pubKey
    argTypes:
    - SECKEYPublicKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2572
      start: 2562
    functionDepth: 2
    functionLinenumber: 2562
    functionLinenumberEnd: 2572
    functionName: PK11_DeleteTokenPublicKey
    functionSourceFile: /src/nss/lib/pk11wrap/pk11akey.c
    functionUses: 0
    functionsReached:
    - SECKEY_DestroyPublicKey
    - PK11_DestroyTokenObject
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11_DeleteTokenPublicKey(SECKEYPublicKey *pubKey)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PK11_MakePrivKey
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2596,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2606,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - slot
    - keyHandle
    - arg
    argTypes:
    - PK11SlotInfo*
    - CK_OBJECT_HANDLE
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2608
      start: 2586
    functionDepth: 2
    functionLinenumber: 2586
    functionLinenumberEnd: 2608
    functionName: pk11_DoKeys
    functionSourceFile: /src/nss/lib/pk11wrap/pk11akey.c
    functionUses: 0
    functionsReached:
    - SECKEY_DestroyPrivateKey
    - PK11_MakePrivKey
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus pk11_DoKeys(PK11SlotInfo *slot, CK_OBJECT_HANDLE keyHandle,
      void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_TraverseSlot
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2653,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 2
    argNames:
    - slot
    - arg
    argTypes:
    - PK11SlotInfo*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2654
      start: 2623
    functionDepth: 1
    functionLinenumber: 2623
    functionLinenumberEnd: 2654
    functionName: PK11_TraversePrivateKeysInSlot
    functionSourceFile: /src/nss/lib/pk11wrap/pk11akey.c
    functionUses: 0
    functionsReached:
    - PK11_TraverseSlot
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_TraversePrivateKeysInSlot(PK11SlotInfo *slot,\n                               SECStatus
      (*callback)(SECKEYPrivateKey *, void *), void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2671,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2673,1
    - Dst: pk11_FindObjectByTemplate
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2675,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - slot
    - keyID
    argTypes:
    - PK11SlotInfo*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2676
      start: 2659
    functionDepth: 1
    functionLinenumber: 2659
    functionLinenumberEnd: 2676
    functionName: pk11_FindPrivateKeyFromCertID
    functionSourceFile: /src/nss/lib/pk11wrap/pk11akey.c
    functionUses: 0
    functionsReached:
    - PK11_SETATTRS
    - pk11_FindObjectByTemplate
    linkageType: ''
    returnType: CK_OBJECT_HANDLE
    signature: CK_OBJECT_HANDLE pk11_FindPrivateKeyFromCertID(PK11SlotInfo *slot,
      SECItem *keyID)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pk11_FindPrivateKeyFromCertID
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2684,1
    - Dst: PK11_MakePrivKey
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2688,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - slot
    - keyID
    - wincx
    argTypes:
    - PK11SlotInfo*
    - SECItem*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2690
      start: 2678
    functionDepth: 2
    functionLinenumber: 2678
    functionLinenumberEnd: 2690
    functionName: PK11_FindKeyByKeyID
    functionSourceFile: /src/nss/lib/pk11wrap/pk11akey.c
    functionUses: 2
    functionsReached:
    - PK11_MakePrivKey
    - pk11_FindPrivateKeyFromCertID
    linkageType: ''
    returnType: SECKEYPrivateKey
    signature: 'SECKEYPrivateKey *

      PK11_FindKeyByKeyID(PK11SlotInfo *slot, SECItem *keyID, void *wincx)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2710,1
    - Dst: PK11_CreateDigestContext
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2713,1
    - Dst: PK11_DigestBegin
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2718,1
    - Dst: PK11_DigestOp
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2720,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2723,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2727,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2729,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2734,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2736,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2737,1
    - Dst: PK11_DigestFinal
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2741,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2743,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2745,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 1
    argNames:
    - pubKeyData
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2750
      start: 2697
    functionDepth: 1
    functionLinenumber: 2697
    functionLinenumberEnd: 2750
    functionName: PK11_MakeIDFromPubKey
    functionSourceFile: /src/nss/lib/pk11wrap/pk11akey.c
    functionUses: 2
    functionsReached:
    - PORT_Alloc
    - SECITEM_DupItem
    - PK11_DestroyContext
    - PK11_DigestOp
    - PK11_CreateDigestContext
    - PORT_Free
    - SECITEM_FreeItem
    - PK11_DigestBegin
    - PK11_DigestFinal
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      PK11_MakeIDFromPubKey(SECItem *pubKeyData)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pk11_GetLowLevelKeyFromHandle
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - privKey
    argTypes:
    - SECKEYPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2760
      start: 2756
    functionDepth: 1
    functionLinenumber: 2756
    functionLinenumberEnd: 2760
    functionName: PK11_GetLowLevelKeyIDForPrivateKey
    functionSourceFile: /src/nss/lib/pk11wrap/pk11akey.c
    functionUses: 1
    functionsReached:
    - pk11_GetLowLevelKeyFromHandle
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      PK11_GetLowLevelKeyIDForPrivateKey(SECKEYPrivateKey *privKey)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECKEY_AddPrivateKeyToListTail
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2766,1
    - Dst: SECKEY_CopyPrivateKey
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - arg
    argTypes:
    - SECKEYPrivateKey*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2767
      start: 2762
    functionDepth: 2
    functionLinenumber: 2762
    functionLinenumberEnd: 2767
    functionName: privateKeyListCallback
    functionSourceFile: /src/nss/lib/pk11wrap/pk11akey.c
    functionUses: 0
    functionsReached:
    - SECKEY_CopyPrivateKey
    - SECKEY_AddPrivateKeyToListTail
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus privateKeyListCallback(SECKEYPrivateKey *key, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECKEY_NewPrivateKeyList
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2775,1
    - Dst: PK11_TraversePrivateKeysInSlot
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2779,1
    - Dst: SECKEY_DestroyPrivateKeyList
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2783,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - slot
    argTypes:
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2788
      start: 2769
    functionDepth: 2
    functionLinenumber: 2769
    functionLinenumberEnd: 2788
    functionName: PK11_ListPrivateKeysInSlot
    functionSourceFile: /src/nss/lib/pk11wrap/pk11akey.c
    functionUses: 1
    functionsReached:
    - SECKEY_NewPrivateKeyList
    - PK11_TraversePrivateKeysInSlot
    - SECKEY_DestroyPrivateKeyList
    linkageType: ''
    returnType: SECKEYPrivateKeyList
    signature: 'SECKEYPrivateKeyList *

      PK11_ListPrivateKeysInSlot(PK11SlotInfo *slot)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2804,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2806,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2809,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2810,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2814,1
    - Dst: pk11_FindObjectsByTemplate
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2816,1
    - Dst: SECKEY_NewPublicKeyList
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2820,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2822,1
    - Dst: PK11_ExtractPublicKey
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2828,1
    - Dst: SECKEY_AddPublicKeyToListTail
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2830,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2834,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 2
    argNames:
    - slot
    - nickname
    argTypes:
    - PK11SlotInfo*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2836
      start: 2790
    functionDepth: 4
    functionLinenumber: 2790
    functionLinenumberEnd: 2836
    functionName: PK11_ListPublicKeysInSlot
    functionSourceFile: /src/nss/lib/pk11wrap/pk11akey.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_Free
    - PK11_ExtractPublicKey
    - SECKEY_AddPublicKeyToListTail
    - PORT_Strlen
    - PK11_SETATTRS
    - SECKEY_NewPublicKeyList
    - pk11_FindObjectsByTemplate
    linkageType: ''
    returnType: SECKEYPublicKeyList
    signature: 'SECKEYPublicKeyList *

      PK11_ListPublicKeysInSlot(PK11SlotInfo *slot, char *nickname)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2852,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2854,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2857,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2858,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2862,1
    - Dst: pk11_FindObjectsByTemplate
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2864,1
    - Dst: SECKEY_NewPrivateKeyList
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2868,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2870,1
    - Dst: PK11_MakePrivKey
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2876,1
    - Dst: SECKEY_AddPrivateKeyToListTail
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2877,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11akey.c:2880,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 3
    argNames:
    - slot
    - nickname
    - wincx
    argTypes:
    - PK11SlotInfo*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2882
      start: 2838
    functionDepth: 2
    functionLinenumber: 2838
    functionLinenumberEnd: 2882
    functionName: PK11_ListPrivKeysInSlot
    functionSourceFile: /src/nss/lib/pk11wrap/pk11akey.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - SECKEY_AddPrivateKeyToListTail
    - PORT_Free
    - PORT_Strlen
    - PK11_SETATTRS
    - PK11_MakePrivKey
    - SECKEY_NewPrivateKeyList
    - pk11_FindObjectsByTemplate
    linkageType: ''
    returnType: SECKEYPrivateKeyList
    signature: 'SECKEYPrivateKeyList *

      PK11_ListPrivKeysInSlot(PK11SlotInfo *slot, char *nickname, void *wincx)'
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:76,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:79,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:82,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:87,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:92,1
    - Dst: PK11_GetInternalSlot
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:94,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:97,1
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:106,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:107,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:111,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:116,1
    - Dst: PK11_GetBestSlotWithAttributes
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:117,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:120,1
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:136,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:137,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:139,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:142,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:142,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:146,1
    - Dst: PK11_GetAttributes
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:151,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:153,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:153,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:157,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:174,1
    - Dst: PK11_GetAttributes
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:179,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:181,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:181,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:185,1
    - Dst: PK11_DestroyObject
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:199,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:200,1
    - Dst: PK11_DestroyObject
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:209,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:212,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:215,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:218,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 126
    argCount: 5
    argNames:
    - L
    - N
    - seedBytes
    - pParams
    - pVfy
    argTypes:
    - unsigned int
    - unsigned int
    - unsigned int
    - PQGParams**
    - PQGVerify**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 221
    functionName: PK11_PQG_ParamGenV2
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pqg.c
    functionUses: 2
    functionsReached:
    - PK11_GetAttributes
    - PORT_NewArena
    - PK11_GetBestSlotWithAttributes
    - PORT_FreeArena
    - PORT_ArenaAlloc
    - PR_ASSERT
    - PK11_DestroyObject
    - PORT_SetError
    - PK11_GETTAB
    - PK11_SETATTRS
    - PK11_EnterSlotMonitor
    - PK11_GetInternalSlot
    - PK11_ExitSlotMonitor
    - PK11_MapError
    - PK11_FreeSlot
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_PQG_ParamGenV2(unsigned int L, unsigned int N,\n                    unsigned
      int seedBytes, PQGParams **pParams, PQGVerify **pVfy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PQG_INDEX_TO_PBITS
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:232,1
    - Dst: PK11_PQG_ParamGenV2
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - j
    - seedBytes
    - pParams
    - pVfy
    argTypes:
    - unsigned int
    - unsigned int
    - PQGParams**
    - PQGVerify**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 228
    functionDepth: 2
    functionLinenumber: 228
    functionLinenumberEnd: 234
    functionName: PK11_PQG_ParamGenSeedLen
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pqg.c
    functionUses: 1
    functionsReached:
    - PQG_INDEX_TO_PBITS
    - PK11_PQG_ParamGenV2
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_PQG_ParamGenSeedLen(unsigned int j, unsigned int seedBytes,\n
      \                        PQGParams **pParams, PQGVerify **pVfy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PQG_INDEX_TO_PBITS
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:243,1
    - Dst: PK11_PQG_ParamGenV2
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - j
    - pParams
    - pVfy
    argTypes:
    - unsigned int
    - PQGParams**
    - PQGVerify**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 240
    functionDepth: 2
    functionLinenumber: 240
    functionLinenumberEnd: 245
    functionName: PK11_PQG_ParamGen
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pqg.c
    functionUses: 2
    functionsReached:
    - PQG_INDEX_TO_PBITS
    - PK11_PQG_ParamGenV2
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11_PQG_ParamGen(unsigned int j, PQGParams **pParams, PQGVerify
      **pVfy)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:285,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:287,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:289,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:292,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:296,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:299,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:304,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:308,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:312,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:319,1
    - Dst: PK11_GetInternalSlot
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:321,1
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:326,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:327,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:329,1
    - Dst: PK11_DestroyObject
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:332,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:333,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:339,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:339,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 49
    argCount: 3
    argNames:
    - params
    - vfy
    - result
    argTypes:
    - PQGParams*
    - PQGVerify*
    - SECStatus*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 343
    functionName: PK11_PQG_VerifyParams
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pqg.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - PK11_DestroyObject
    - PORT_SetError
    - PK11_GETTAB
    - PK11_SETATTRS
    - PK11_EnterSlotMonitor
    - PK11_GetInternalSlot
    - PK11_ExitSlotMonitor
    - PK11_MapError
    - PK11_FreeSlot
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_PQG_VerifyParams(const PQGParams *params, const PQGVerify
      *vfy,\n                      SECStatus *result)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:354,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:356,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:357,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:358,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:359,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - params
    argTypes:
    - PQGParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 361
    functionName: PK11_PQG_DestroyParams
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pqg.c
    functionUses: 3
    functionsReached:
    - PORT_FreeArena
    - PORT_Free
    - SECITEM_FreeItem
    linkageType: ''
    returnType: void
    signature: void PK11_PQG_DestroyParams(PQGParams *params)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:372,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:374,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:375,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:376,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - vfy
    argTypes:
    - PQGVerify*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 378
    functionName: PK11_PQG_DestroyVerify
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pqg.c
    functionUses: 3
    functionsReached:
    - PORT_FreeArena
    - PORT_Free
    - SECITEM_FreeItem
    linkageType: ''
    returnType: void
    signature: void PK11_PQG_DestroyVerify(PQGVerify *vfy)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:395,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:399,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:405,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:409,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:413,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:421,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 3
    argNames:
    - prime
    - subPrime
    - base
    argTypes:
    - SECItem*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 423
    functionName: PK11_PQG_NewParams
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pqg.c
    functionUses: 0
    functionsReached:
    - PORT_FreeArena
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - SECITEM_CopyItem
    linkageType: ''
    returnType: PQGParams
    signature: "PQGParams *\nPK11_PQG_NewParams(const SECItem *prime, const SECItem
      *subPrime,\n                   const SECItem *base)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - params
    - prime
    argTypes:
    - PQGParams*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 433
    functionName: PK11_PQG_GetPrimeFromParams
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pqg.c
    functionUses: 1
    functionsReached:
    - SECITEM_CopyItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11_PQG_GetPrimeFromParams(const PQGParams *params, SECItem
      *prime)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - params
    - subPrime
    argTypes:
    - PQGParams*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 443
    functionName: PK11_PQG_GetSubPrimeFromParams
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pqg.c
    functionUses: 1
    functionsReached:
    - SECITEM_CopyItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11_PQG_GetSubPrimeFromParams(const PQGParams *params, SECItem
      *subPrime)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - params
    - base
    argTypes:
    - PQGParams*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 453
    functionName: PK11_PQG_GetBaseFromParams
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pqg.c
    functionUses: 1
    functionsReached:
    - SECITEM_CopyItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11_PQG_GetBaseFromParams(const PQGParams *params, SECItem
      *base)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:468,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:472,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:479,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:483,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:491,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - counter
    - seed
    - h
    argTypes:
    - unsigned int
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 493
    functionName: PK11_PQG_NewVerify
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pqg.c
    functionUses: 0
    functionsReached:
    - PORT_FreeArena
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - SECITEM_CopyItem
    linkageType: ''
    returnType: PQGVerify
    signature: "PQGVerify *\nPK11_PQG_NewVerify(unsigned int counter, const SECItem
      *seed,\n                   const SECItem *h)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - verify
    argTypes:
    - PQGVerify*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 502
    functionName: PK11_PQG_GetCounterFromVerify
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pqg.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int PK11_PQG_GetCounterFromVerify(const PQGVerify *verify)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - verify
    - seed
    argTypes:
    - PQGVerify*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 512
    functionName: PK11_PQG_GetSeedFromVerify
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pqg.c
    functionUses: 1
    functionsReached:
    - SECITEM_CopyItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11_PQG_GetSeedFromVerify(const PQGVerify *verify, SECItem
      *seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/pk11wrap/pk11pqg.c:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - verify
    - h
    argTypes:
    - PQGVerify*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 522
    functionName: PK11_PQG_GetHFromVerify
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pqg.c
    functionUses: 1
    functionsReached:
    - SECITEM_CopyItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11_PQG_GetHFromVerify(const PQGVerify *verify, SECItem
      *h)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetRWSession
      Src: /src/nss/lib/pk11wrap/pk11merge.c:38,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11merge.c:40,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11merge.c:43,1
    - Dst: PK11_RestoreROSession
      Src: /src/nss/lib/pk11wrap/pk11merge.c:45,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11merge.c:47,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11merge.c:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - slot
    - id
    - setTemplate
    - setTemplCount
    argTypes:
    - PK11SlotInfo*
    - CK_OBJECT_HANDLE
    - CK_ATTRIBUTE*
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 51
    functionName: pk11_setAttributes
    functionSourceFile: /src/nss/lib/pk11wrap/pk11merge.c
    functionUses: 0
    functionsReached:
    - PK11_GetRWSession
    - PORT_SetError
    - PK11_GETTAB
    - PK11_RestoreROSession
    - PK11_MapError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus pk11_setAttributes(PK11SlotInfo *slot, CK_OBJECT_HANDLE
      id,\n                   CK_ATTRIBUTE *setTemplate, CK_ULONG setTemplCount)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetAttributes
      Src: /src/nss/lib/pk11wrap/pk11merge.c:67,1
    - Dst: PORT_NewArray
      Src: /src/nss/lib/pk11wrap/pk11merge.c:72,1
    - Dst: PK11_GetAttributes
      Src: /src/nss/lib/pk11wrap/pk11merge.c:86,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11merge.c:90,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11merge.c:90,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11merge.c:91,1
    - Dst: PK11_CreateNewObject
      Src: /src/nss/lib/pk11wrap/pk11merge.c:96,1
    - Dst: pk11_setAttributes
      Src: /src/nss/lib/pk11wrap/pk11merge.c:100,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11merge.c:104,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 7
    argNames:
    - arena
    - targetSlot
    - targetID
    - sourceSlot
    - sourceID
    - copyTemplate
    - copyTemplateCount
    argTypes:
    - PLArenaPool*
    - PK11SlotInfo*
    - CK_OBJECT_HANDLE
    - PK11SlotInfo*
    - CK_OBJECT_HANDLE
    - CK_ATTRIBUTE*
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 107
    functionName: pk11_copyAttributes
    functionSourceFile: /src/nss/lib/pk11wrap/pk11merge.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - pk11_setAttributes
    - PORT_SetError
    - PORT_NewArray
    - PK11_CreateNewObject
    - PK11_GetAttributes
    - PK11_MapError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus pk11_copyAttributes(PLArenaPool *arena,\n                    PK11SlotInfo
      *targetSlot, CK_OBJECT_HANDLE targetID,\n                    PK11SlotInfo *sourceSlot,
      CK_OBJECT_HANDLE sourceID,\n                    CK_ATTRIBUTE *copyTemplate,
      CK_ULONG copyTemplateCount)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - tsize
    argTypes:
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 120
    functionName: pk11_getClassFromTemplate
    functionSourceFile: /src/nss/lib/pk11wrap/pk11merge.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_OBJECT_CLASS
    signature: CK_OBJECT_CLASS pk11_getClassFromTemplate(CK_ATTRIBUTE *template, CK_ULONG
      tsize)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11merge.c:130,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - tsize
    - objClass
    argTypes:
    - CK_ULONG
    - CK_OBJECT_CLASS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 133
    functionName: pk11_setClassInTemplate
    functionSourceFile: /src/nss/lib/pk11wrap/pk11merge.c
    functionUses: 0
    functionsReached:
    - PORT_Memcpy
    linkageType: ''
    returnType: void
    signature: "void pk11_setClassInTemplate(CK_ATTRIBUTE *template, CK_ULONG tsize,\n
      \                       CK_OBJECT_CLASS objClass)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetAttributes
      Src: /src/nss/lib/pk11wrap/pk11merge.c:149,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11merge.c:151,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11merge.c:151,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11merge.c:157,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11merge.c:157,1
    - Dst: pk11_getClassFromTemplate
      Src: /src/nss/lib/pk11wrap/pk11merge.c:163,1
    - Dst: pk11_FindObjectByTemplate
      Src: /src/nss/lib/pk11wrap/pk11merge.c:169,1
    - Dst: pk11_FindObjectByTemplate
      Src: /src/nss/lib/pk11wrap/pk11merge.c:173,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 6
    argNames:
    - arena
    - targetSlot
    - sourceSlot
    - tsize
    - id
    - peer
    argTypes:
    - PLArenaPool*
    - PK11SlotInfo*
    - PK11SlotInfo*
    - CK_ULONG
    - CK_OBJECT_HANDLE
    - CK_OBJECT_HANDLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 179
    functionName: pk11_matchAcrossTokens
    functionSourceFile: /src/nss/lib/pk11wrap/pk11merge.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PK11_GetAttributes
    - pk11_getClassFromTemplate
    - pk11_FindObjectByTemplate
    - PK11_MapError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus pk11_matchAcrossTokens(PLArenaPool *arena, PK11SlotInfo
      *targetSlot,\n                       PK11SlotInfo *sourceSlot,\n                       CK_ATTRIBUTE
      *template, CK_ULONG tsize,\n                       CK_OBJECT_HANDLE id, CK_OBJECT_HANDLE
      *peer)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11merge.c:192,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/pk11wrap/pk11merge.c:194,1
    - Dst: PK11_CreateContextBySymKey
      Src: /src/nss/lib/pk11wrap/pk11merge.c:200,1
    - Dst: PK11_CipherOp
      Src: /src/nss/lib/pk11wrap/pk11merge.c:206,1
    - Dst: PK11_Finalize
      Src: /src/nss/lib/pk11wrap/pk11merge.c:212,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/pk11wrap/pk11merge.c:213,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11merge.c:217,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 5
    argNames:
    - symKey
    - mechType
    - param
    - input
    - output
    argTypes:
    - PK11SymKey*
    - CK_MECHANISM_TYPE
    - SECItem*
    - SECItem*
    - SECItem**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 222
    functionName: pk11_encrypt
    functionSourceFile: /src/nss/lib/pk11wrap/pk11merge.c
    functionUses: 0
    functionsReached:
    - PK11_DestroyContext
    - PK11_Finalize
    - SECITEM_AllocItem
    - PK11_CipherOp
    - PK11_CreateContextBySymKey
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus pk11_encrypt(PK11SymKey *symKey, CK_MECHANISM_TYPE mechType,
      SECItem *param,\n             SECItem *input, SECItem **output)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PK11_HasAttributeSet
      Src: /src/nss/lib/pk11wrap/pk11merge.c:238,1
    - Dst: PK11_HasAttributeSet
      Src: /src/nss/lib/pk11wrap/pk11merge.c:239,1
    - Dst: PK11_HasAttributeSet
      Src: /src/nss/lib/pk11wrap/pk11merge.c:242,1
    - Dst: PK11_HasAttributeSet
      Src: /src/nss/lib/pk11wrap/pk11merge.c:245,1
    - Dst: PK11_HasAttributeSet
      Src: /src/nss/lib/pk11wrap/pk11merge.c:246,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - slot
    - id
    argTypes:
    - PK11SlotInfo*
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 250
    functionName: pk11_getPrivateKeyUsage
    functionSourceFile: /src/nss/lib/pk11wrap/pk11merge.c
    functionUses: 0
    functionsReached:
    - PK11_HasAttributeSet
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int pk11_getPrivateKeyUsage(PK11SlotInfo *slot, CK_OBJECT_HANDLE
      id)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/pk11wrap/pk11merge.c:286,1
    - Dst: pk11_matchAcrossTokens
      Src: /src/nss/lib/pk11wrap/pk11merge.c:293,1
    - Dst: PK11_MakePrivKey
      Src: /src/nss/lib/pk11wrap/pk11merge.c:305,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/lib/pk11wrap/pk11merge.c:314,1
    - Dst: PK11_ExportEncryptedPrivKeyInfo
      Src: /src/nss/lib/pk11wrap/pk11merge.c:321,1
    - Dst: PK11_GetObjectNickname
      Src: /src/nss/lib/pk11wrap/pk11merge.c:327,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/pk11wrap/pk11merge.c:331,1
    - Dst: pk11_getPrivateKeyUsage
      Src: /src/nss/lib/pk11wrap/pk11merge.c:333,1
    - Dst: PK11_ImportEncryptedPrivateKeyInfo
      Src: /src/nss/lib/pk11wrap/pk11merge.c:337,1
    - Dst: pk11_matchAcrossTokens
      Src: /src/nss/lib/pk11wrap/pk11merge.c:346,1
    - Dst: pk11_copyAttributes
      Src: /src/nss/lib/pk11wrap/pk11merge.c:359,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/pk11wrap/pk11merge.c:363,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11merge.c:365,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/lib/pk11wrap/pk11merge.c:368,1
    - Dst: SECKEY_DestroyEncryptedPrivateKeyInfo
      Src: /src/nss/lib/pk11wrap/pk11merge.c:371,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pk11wrap/pk11merge.c:374,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 75
    argCount: 5
    argNames:
    - targetSlot
    - sourceSlot
    - id
    - targetPwArg
    - sourcePwArg
    argTypes:
    - PK11SlotInfo*
    - PK11SlotInfo*
    - CK_OBJECT_HANDLE
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 259
    functionDepth: 7
    functionLinenumber: 259
    functionLinenumberEnd: 377
    functionName: pk11_mergePrivateKey
    functionSourceFile: /src/nss/lib/pk11wrap/pk11merge.c
    functionUses: 0
    functionsReached:
    - PK11_ImportEncryptedPrivateKeyInfo
    - PORT_NewArena
    - pk11_matchAcrossTokens
    - pk11_copyAttributes
    - PORT_FreeArena
    - PORT_Free
    - SECKEY_DestroyPrivateKey
    - PORT_Strlen
    - PK11_MakePrivKey
    - PK11_GenerateRandom
    - pk11_getPrivateKeyUsage
    - PORT_Memset
    - PK11_ExportEncryptedPrivKeyInfo
    - PK11_GetObjectNickname
    - SECKEY_DestroyEncryptedPrivateKeyInfo
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus pk11_mergePrivateKey(PK11SlotInfo *targetSlot, PK11SlotInfo
      *sourceSlot,\n                     CK_OBJECT_HANDLE id, void *targetPwArg, void
      *sourcePwArg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pk11wrap/pk11merge.c:425,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - arena
    - ptemplate
    argTypes:
    - PLArenaPool*
    - CK_ATTRIBUTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 432
    functionName: pk11_incrementID
    functionSourceFile: /src/nss/lib/pk11wrap/pk11merge.c
    functionUses: 0
    functionsReached:
    - PORT_ArenaZAlloc
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus pk11_incrementID(PLArenaPool *arena, CK_ATTRIBUTE *ptemplate)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PK11_HasAttributeSet
      Src: /src/nss/lib/pk11wrap/pk11merge.c:439,1
    - Dst: PK11_HasAttributeSet
      Src: /src/nss/lib/pk11wrap/pk11merge.c:442,1
    - Dst: PK11_HasAttributeSet
      Src: /src/nss/lib/pk11wrap/pk11merge.c:445,1
    - Dst: PK11_HasAttributeSet
      Src: /src/nss/lib/pk11wrap/pk11merge.c:448,1
    - Dst: PK11_HasAttributeSet
      Src: /src/nss/lib/pk11wrap/pk11merge.c:451,1
    - Dst: PK11_HasAttributeSet
      Src: /src/nss/lib/pk11wrap/pk11merge.c:454,1
    - Dst: PK11_HasAttributeSet
      Src: /src/nss/lib/pk11wrap/pk11merge.c:457,1
    - Dst: PK11_HasAttributeSet
      Src: /src/nss/lib/pk11wrap/pk11merge.c:460,1
    - Dst: PK11_HasAttributeSet
      Src: /src/nss/lib/pk11wrap/pk11merge.c:463,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - slot
    - id
    argTypes:
    - PK11SlotInfo*
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 434
    functionDepth: 1
    functionLinenumber: 434
    functionLinenumberEnd: 467
    functionName: pk11_getSecretKeyFlags
    functionSourceFile: /src/nss/lib/pk11wrap/pk11merge.c
    functionUses: 0
    functionsReached:
    - PK11_HasAttributeSet
    linkageType: ''
    returnType: CK_FLAGS
    signature: CK_FLAGS pk11_getSecretKeyFlags(PK11SlotInfo *slot, CK_OBJECT_HANDLE
      id)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/pk11wrap/pk11merge.c:514,1
    - Dst: PK11_ReadULongAttribute
      Src: /src/nss/lib/pk11wrap/pk11merge.c:520,1
    - Dst: PK11_GetKeyMechanism
      Src: /src/nss/lib/pk11wrap/pk11merge.c:527,1
    - Dst: PK11_SymKeyFromHandle
      Src: /src/nss/lib/pk11wrap/pk11merge.c:539,1
    - Dst: pk11_matchAcrossTokens
      Src: /src/nss/lib/pk11wrap/pk11merge.c:550,1
    - Dst: PK11_GetBlockSize
      Src: /src/nss/lib/pk11wrap/pk11merge.c:558,1
    - Dst: PK11_ReadULongAttribute
      Src: /src/nss/lib/pk11wrap/pk11merge.c:569,1
    - Dst: PK11_SymKeyFromHandle
      Src: /src/nss/lib/pk11wrap/pk11merge.c:572,1
    - Dst: PK11_GenerateNewParam
      Src: /src/nss/lib/pk11wrap/pk11merge.c:577,1
    - Dst: pk11_encrypt
      Src: /src/nss/lib/pk11wrap/pk11merge.c:585,1
    - Dst: pk11_encrypt
      Src: /src/nss/lib/pk11wrap/pk11merge.c:592,1
    - Dst: SECITEM_ItemsAreEqual
      Src: /src/nss/lib/pk11wrap/pk11merge.c:595,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11merge.c:600,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11merge.c:603,1
    - Dst: pk11_incrementID
      Src: /src/nss/lib/pk11wrap/pk11merge.c:607,1
    - Dst: pk11_FindObjectByTemplate
      Src: /src/nss/lib/pk11wrap/pk11merge.c:611,1
    - Dst: pk11_getSecretKeyFlags
      Src: /src/nss/lib/pk11wrap/pk11merge.c:617,1
    - Dst: PK11_MoveSymKey
      Src: /src/nss/lib/pk11wrap/pk11merge.c:618,1
    - Dst: pk11_setAttributes
      Src: /src/nss/lib/pk11wrap/pk11merge.c:625,1
    - Dst: pk11_copyAttributes
      Src: /src/nss/lib/pk11wrap/pk11merge.c:631,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11merge.c:635,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11merge.c:638,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11merge.c:641,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11merge.c:644,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11merge.c:647,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pk11wrap/pk11merge.c:650,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 112
    argCount: 5
    argNames:
    - targetSlot
    - sourceSlot
    - id
    - targetPwArg
    - sourcePwArg
    argTypes:
    - PK11SlotInfo*
    - PK11SlotInfo*
    - CK_OBJECT_HANDLE
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 486
    functionDepth: 3
    functionLinenumber: 486
    functionLinenumberEnd: 653
    functionName: pk11_mergeSecretKey
    functionSourceFile: /src/nss/lib/pk11wrap/pk11merge.c
    functionUses: 0
    functionsReached:
    - PK11_SymKeyFromHandle
    - SECITEM_ItemsAreEqual
    - PK11_MoveSymKey
    - PORT_NewArena
    - pk11_matchAcrossTokens
    - pk11_copyAttributes
    - PORT_FreeArena
    - SECITEM_FreeItem
    - pk11_setAttributes
    - PK11_GenerateNewParam
    - pk11_incrementID
    - pk11_encrypt
    - PK11_ReadULongAttribute
    - pk11_getSecretKeyFlags
    - pk11_FindObjectByTemplate
    - PK11_GetKeyMechanism
    - PK11_GetBlockSize
    - PK11_FreeSymKey
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus pk11_mergeSecretKey(PK11SlotInfo *targetSlot, PK11SlotInfo
      *sourceSlot,\n                    CK_OBJECT_HANDLE id, void *targetPwArg, void
      *sourcePwArg)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/pk11wrap/pk11merge.c:688,1
    - Dst: pk11_matchAcrossTokens
      Src: /src/nss/lib/pk11wrap/pk11merge.c:695,1
    - Dst: PK11_ExtractPublicKey
      Src: /src/nss/lib/pk11wrap/pk11merge.c:708,1
    - Dst: PK11_ImportPublicKey
      Src: /src/nss/lib/pk11wrap/pk11merge.c:715,1
    - Dst: pk11_copyAttributes
      Src: /src/nss/lib/pk11wrap/pk11merge.c:722,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/pk11wrap/pk11merge.c:727,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pk11wrap/pk11merge.c:730,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 5
    argNames:
    - targetSlot
    - sourceSlot
    - id
    - targetPwArg
    - sourcePwArg
    argTypes:
    - PK11SlotInfo*
    - PK11SlotInfo*
    - CK_OBJECT_HANDLE
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 667
    functionDepth: 4
    functionLinenumber: 667
    functionLinenumberEnd: 733
    functionName: pk11_mergePublicKey
    functionSourceFile: /src/nss/lib/pk11wrap/pk11merge.c
    functionUses: 0
    functionsReached:
    - SECKEY_DestroyPublicKey
    - PORT_NewArena
    - pk11_copyAttributes
    - pk11_matchAcrossTokens
    - PORT_FreeArena
    - PK11_ExtractPublicKey
    - PK11_ImportPublicKey
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus pk11_mergePublicKey(PK11SlotInfo *targetSlot, PK11SlotInfo
      *sourceSlot,\n                    CK_OBJECT_HANDLE id, void *targetPwArg, void
      *sourcePwArg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nss/lib/pk11wrap/pk11merge.c:752,1
    - Dst: PORT_Realloc
      Src: /src/nss/lib/pk11wrap/pk11merge.c:767,1
    - Dst: PORT_Strcat
      Src: /src/nss/lib/pk11wrap/pk11merge.c:769,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11merge.c:771,1
    - Dst: PORT_Realloc
      Src: /src/nss/lib/pk11wrap/pk11merge.c:787,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/pk11wrap/pk11merge.c:790,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11merge.c:793,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 1
    argNames:
    - nickname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 796
    functionName: pk11_IncrementNickname
    functionSourceFile: /src/nss/lib/pk11wrap/pk11merge.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - PORT_Memset
    - PORT_Realloc
    - PORT_Strcat
    - strlen
    linkageType: ''
    returnType: char
    signature: 'char *

      pk11_IncrementNickname(char *nickname)'
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: PK11_MakeCertFromHandle
      Src: /src/nss/lib/pk11wrap/pk11merge.c:817,1
    - Dst: PK11_GetObjectNickname
      Src: /src/nss/lib/pk11wrap/pk11merge.c:823,1
    - Dst: PK11_GetTokenName
      Src: /src/nss/lib/pk11wrap/pk11merge.c:829,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/pk11wrap/pk11merge.c:833,1
    - Dst: SEC_CertNicknameConflict
      Src: /src/nss/lib/pk11wrap/pk11merge.c:837,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/lib/pk11wrap/pk11merge.c:838,1
    - Dst: pk11_IncrementNickname
      Src: /src/nss/lib/pk11wrap/pk11merge.c:841,1
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/pk11wrap/pk11merge.c:845,1
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/pk11wrap/pk11merge.c:848,1
    - Dst: PK11_FindCertInSlot
      Src: /src/nss/lib/pk11wrap/pk11merge.c:853,1
    - Dst: PK11_ImportCert
      Src: /src/nss/lib/pk11wrap/pk11merge.c:857,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/pk11wrap/pk11merge.c:865,1
    - Dst: PK11_GetAttributes
      Src: /src/nss/lib/pk11wrap/pk11merge.c:872,1
    - Dst: PK11_GetAttributes
      Src: /src/nss/lib/pk11wrap/pk11merge.c:880,1
    - Dst: pk11_setAttributes
      Src: /src/nss/lib/pk11wrap/pk11merge.c:887,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/pk11wrap/pk11merge.c:889,1
    - Dst: PK11_GetObjectNickname
      Src: /src/nss/lib/pk11wrap/pk11merge.c:898,1
    - Dst: PK11_SetObjectNickname
      Src: /src/nss/lib/pk11wrap/pk11merge.c:901,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11merge.c:904,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11merge.c:911,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11merge.c:916,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/pk11wrap/pk11merge.c:919,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pk11wrap/pk11merge.c:922,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 81
    argCount: 5
    argNames:
    - targetSlot
    - sourceSlot
    - id
    - targetPwArg
    - sourcePwArg
    argTypes:
    - PK11SlotInfo*
    - PK11SlotInfo*
    - CK_OBJECT_HANDLE
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 803
    functionDepth: 2
    functionLinenumber: 803
    functionLinenumberEnd: 925
    functionName: pk11_mergeCert
    functionSourceFile: /src/nss/lib/pk11wrap/pk11merge.c
    functionUses: 0
    functionsReached:
    - PK11_FindCertInSlot
    - PK11_SetObjectNickname
    - PK11_GetAttributes
    - PORT_NewArena
    - PORT_SetError
    - PR_smprintf_free
    - PR_smprintf
    - CERT_GetDefaultCertDB
    - PORT_FreeArena
    - PK11_GetTokenName
    - SEC_CertNicknameConflict
    - CERT_DestroyCertificate
    - PK11_ImportCert
    - PK11_MakeCertFromHandle
    - PORT_Free
    - PORT_GetError
    - pk11_setAttributes
    - pk11_IncrementNickname
    - PK11_GetObjectNickname
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus pk11_mergeCert(PK11SlotInfo *targetSlot, PK11SlotInfo *sourceSlot,\n
      \              CK_OBJECT_HANDLE id, void *targetPwArg, void *sourcePwArg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/pk11wrap/pk11merge.c:965,1
    - Dst: pk11_matchAcrossTokens
      Src: /src/nss/lib/pk11wrap/pk11merge.c:971,1
    - Dst: pk11_copyAttributes
      Src: /src/nss/lib/pk11wrap/pk11merge.c:982,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pk11wrap/pk11merge.c:986,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 5
    argNames:
    - targetSlot
    - sourceSlot
    - id
    - targetPwArg
    - sourcePwArg
    argTypes:
    - PK11SlotInfo*
    - PK11SlotInfo*
    - CK_OBJECT_HANDLE
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 938
    functionDepth: 3
    functionLinenumber: 938
    functionLinenumberEnd: 989
    functionName: pk11_mergeCrl
    functionSourceFile: /src/nss/lib/pk11wrap/pk11merge.c
    functionUses: 0
    functionsReached:
    - PORT_FreeArena
    - pk11_copyAttributes
    - PORT_NewArena
    - pk11_matchAcrossTokens
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus pk11_mergeCrl(PK11SlotInfo *targetSlot, PK11SlotInfo *sourceSlot,\n
      \             CK_OBJECT_HANDLE id, void *targetPwArg, void *sourcePwArg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/pk11wrap/pk11merge.c:1028,1
    - Dst: pk11_matchAcrossTokens
      Src: /src/nss/lib/pk11wrap/pk11merge.c:1034,1
    - Dst: pk11_copyAttributes
      Src: /src/nss/lib/pk11wrap/pk11merge.c:1045,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pk11wrap/pk11merge.c:1049,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 5
    argNames:
    - targetSlot
    - sourceSlot
    - id
    - targetPwArg
    - sourcePwArg
    argTypes:
    - PK11SlotInfo*
    - PK11SlotInfo*
    - CK_OBJECT_HANDLE
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1000
    functionDepth: 3
    functionLinenumber: 1000
    functionLinenumberEnd: 1052
    functionName: pk11_mergeSmime
    functionSourceFile: /src/nss/lib/pk11wrap/pk11merge.c
    functionUses: 0
    functionsReached:
    - PORT_FreeArena
    - pk11_copyAttributes
    - PORT_NewArena
    - pk11_matchAcrossTokens
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus pk11_mergeSmime(PK11SlotInfo *targetSlot, PK11SlotInfo *sourceSlot,\n
      \               CK_OBJECT_HANDLE id, void *targetPwArg, void *sourcePwArg)"
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 17
    argCount: 2
    argNames:
    - target
    - source
    argTypes:
    - CK_ATTRIBUTE*
    - CK_ATTRIBUTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1119
      start: 1065
    functionDepth: 0
    functionLinenumber: 1065
    functionLinenumberEnd: 1119
    functionName: pk11_mergeTrustEntry
    functionSourceFile: /src/nss/lib/pk11wrap/pk11merge.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool pk11_mergeTrustEntry(CK_ATTRIBUTE *target, CK_ATTRIBUTE *source)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetAttributes
      Src: /src/nss/lib/pk11wrap/pk11merge.c:1267,1
    - Dst: PK11_GetAttributes
      Src: /src/nss/lib/pk11wrap/pk11merge.c:1268,1
    - Dst: pk11_mergeTrustEntry
      Src: /src/nss/lib/pk11wrap/pk11merge.c:1270,1
    - Dst: SECStatus
      Src: /src/nss/lib/pk11wrap/pk11merge.c:1272,1
    - Dst: pk11_map_trust_entry
      Src: /src/nss/lib/pk11wrap/pk11merge.c:1276,1
    - Dst: pk11_setAttributes
      Src: /src/nss/lib/pk11wrap/pk11merge.c:1279,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/pk11wrap/pk11merge.c:1283,1
    - Dst: PK11_GetAttributes
      Src: /src/nss/lib/pk11wrap/pk11merge.c:1297,1
    - Dst: pk11_setAttributes
      Src: /src/nss/lib/pk11wrap/pk11merge.c:1301,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/pk11wrap/pk11merge.c:1305,1
    - Dst: pk11_copyAttributes
      Src: /src/nss/lib/pk11wrap/pk11merge.c:1319,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pk11wrap/pk11merge.c:1323,1
    - Dst: if
      Src: /src/nss/lib/pk11wrap/pk11merge.c:1327,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11merge.c:1328,1
    - Dst: pk11_mergeObject
      Src: /src/nss/lib/pk11wrap/pk11merge.c:1343,1
    - Dst: PK11_ReadULongAttribute
      Src: /src/nss/lib/pk11wrap/pk11merge.c:1349,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11merge.c:1351,1
    - Dst: switch
      Src: /src/nss/lib/pk11wrap/pk11merge.c:1355,1
    - Dst: pk11_mergeCert
      Src: /src/nss/lib/pk11wrap/pk11merge.c:1357,1
    - Dst: pk11_mergeTrust
      Src: /src/nss/lib/pk11wrap/pk11merge.c:1361,1
    - Dst: pk11_mergePublicKey
      Src: /src/nss/lib/pk11wrap/pk11merge.c:1364,1
    - Dst: pk11_mergePrivateKey
      Src: /src/nss/lib/pk11wrap/pk11merge.c:1367,1
    - Dst: pk11_mergeSecretKey
      Src: /src/nss/lib/pk11wrap/pk11merge.c:1370,1
    - Dst: pk11_mergeCrl
      Src: /src/nss/lib/pk11wrap/pk11merge.c:1373,1
    - Dst: pk11_mergeSmime
      Src: /src/nss/lib/pk11wrap/pk11merge.c:1376,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11merge.c:1382,1
    - Dst: pk11_newMergeLogNode
      Src: /src/nss/lib/pk11wrap/pk11merge.c:1387,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/pk11wrap/pk11merge.c:1393,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/pk11wrap/pk11merge.c:1398,1
    - Dst: pk11_mergeByObjectIDs
      Src: /src/nss/lib/pk11wrap/pk11merge.c:1417,1
    - Dst: pk11_mergeObject
      Src: /src/nss/lib/pk11wrap/pk11merge.c:1431,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/pk11wrap/pk11merge.c:1440,1
    - Dst: pk11_newMergeLogNode
      Src: /src/nss/lib/pk11wrap/pk11merge.c:1447,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11merge.c:1494,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11merge.c:1495,1
    - Dst: PK11_Authenticate
      Src: /src/nss/lib/pk11wrap/pk11merge.c:1499,1
    - Dst: PK11_Authenticate
      Src: /src/nss/lib/pk11wrap/pk11merge.c:1503,1
    - Dst: count
      Src: /src/nss/lib/pk11wrap/pk11merge.c:1510,1
    - Dst: pk11_mergeByObjectIDs
      Src: /src/nss/lib/pk11wrap/pk11merge.c:1512,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/pk11wrap/pk11merge.c:1516,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11merge.c:1518,1
    - Dst: pk11_FindObjectsByTemplate
      Src: /src/nss/lib/pk11wrap/pk11merge.c:1525,1
    - Dst: pk11_mergeByObjectIDs
      Src: /src/nss/lib/pk11wrap/pk11merge.c:1531,1
    - Dst: if
      Src: /src/nss/lib/pk11wrap/pk11merge.c:1538,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11merge.c:1540,1
    - Dst: PK11_CreateMergeLog
      Src: /src/nss/lib/pk11wrap/pk11merge.c:1552,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/pk11wrap/pk11merge.c:1557,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/pk11wrap/pk11merge.c:1562,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pk11wrap/pk11merge.c:1564,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 1
    argNames:
    - targetClass
    argTypes:
    - CK_OBJECT_CLASS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1578
      start: 1124
    functionDepth: 8
    functionLinenumber: 1124
    functionLinenumberEnd: 1578
    functionName: pk11_map_trust_entry
    functionSourceFile: /src/nss/lib/pk11wrap/pk11merge.c
    functionUses: 1
    functionsReached:
    - pk11_mergePublicKey
    - pk11_mergeCert
    - pk11_mergeTrust
    - pk11_mergeSecretKey
    - PK11_ReadULongAttribute
    - PK11_GetAttributes
    - pk11_FindObjectsByTemplate
    - PORT_NewArena
    - SECStatus
    - PORT_SetError
    - PORT_ArenaZNew
    - pk11_map_trust_entry
    - PK11_CreateMergeLog
    - pk11_copyAttributes
    - PORT_FreeArena
    - pk11_mergeObject
    - switch
    - pk11_mergePrivateKey
    - pk11_mergeCrl
    - if
    - pk11_mergeTrustEntry
    - pk11_mergeByObjectIDs
    - PK11_Authenticate
    - count
    - PORT_Free
    - PORT_GetError
    - pk11_newMergeLogNode
    - pk11_setAttributes
    - PK11_SETATTRS
    - pk11_mergeSmime
    linkageType: ''
    returnType: void
    signature: void pk11_map_trust_entry(CK_OBJECT_CLASS targetClass, CK_ATTRIBUTE
      *template)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - size
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 71
    functionName: PK11_GetDefaultArray
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: PK11DefaultArrayEntry
    signature: 'PK11DefaultArrayEntry *

      PK11_GetDefaultArray(int *size)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Alloc
      Src: /src/nss/lib/pk11wrap/pk11slot.c:111,1
    - Dst: PZ_NewLock
      Src: /src/nss/lib/pk11wrap/pk11slot.c:116,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11slot.c:118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 123
    functionName: PK11_NewSlotList
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_Free
    - PZ_NewLock
    linkageType: ''
    returnType: PK11SlotList
    signature: 'PK11SlotList *

      PK11_NewSlotList(void)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11slot.c:134,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/pk11wrap/pk11slot.c:138,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/pk11wrap/pk11slot.c:142,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11slot.c:144,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11slot.c:145,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - list
    - le
    argTypes:
    - PK11SlotList*
    - PK11SlotListElement*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 148
    functionName: PK11_FreeSlotListElement
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 1
    functionsReached:
    - PORT_Free
    - PZ_Unlock
    - PORT_SetError
    - PZ_Lock
    - PK11_FreeSlot
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11_FreeSlotListElement(PK11SlotList *list, PK11SlotListElement
      *le)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PK11_FreeSlotListElement
      Src: /src/nss/lib/pk11wrap/pk11slot.c:159,1
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/pk11wrap/pk11slot.c:162,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - list
    argTypes:
    - PK11SlotList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 166
    functionName: pk11_FreeSlotListStatic
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 0
    functionsReached:
    - PZ_DestroyLock
    - PK11_FreeSlotListElement
    linkageType: ''
    returnType: void
    signature: void pk11_FreeSlotListStatic(PK11SlotList *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pk11_FreeSlotListStatic
      Src: /src/nss/lib/pk11wrap/pk11slot.c:175,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11slot.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - list
    argTypes:
    - PK11SlotList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 172
    functionDepth: 3
    functionLinenumber: 172
    functionLinenumberEnd: 177
    functionName: PK11_FreeSlotList
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 6
    functionsReached:
    - PORT_Free
    - pk11_FreeSlotListStatic
    linkageType: ''
    returnType: void
    signature: void PK11_FreeSlotList(PK11SlotList *list)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Alloc
      Src: /src/nss/lib/pk11wrap/pk11slot.c:192,1
    - Dst: PK11_ReferenceSlot
      Src: /src/nss/lib/pk11wrap/pk11slot.c:196,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/pk11wrap/pk11slot.c:199,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/pk11wrap/pk11slot.c:218,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - list
    - slot
    - sorted
    argTypes:
    - PK11SlotList*
    - PK11SlotInfo*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 221
    functionName: PK11_AddSlotToList
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PZ_Lock
    - PZ_Unlock
    - PK11_ReferenceSlot
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11_AddSlotToList(PK11SlotList *list, PK11SlotInfo *slot,
      PRBool sorted)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/pk11wrap/pk11slot.c:229,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/pk11wrap/pk11slot.c:239,1
    - Dst: PK11_FreeSlotListElement
      Src: /src/nss/lib/pk11wrap/pk11slot.c:240,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - list
    - le
    argTypes:
    - PK11SlotList*
    - PK11SlotListElement*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 242
    functionName: PK11_DeleteSlotFromList
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 0
    functionsReached:
    - PK11_FreeSlotListElement
    - PZ_Lock
    - PZ_Unlock
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11_DeleteSlotFromList(PK11SlotList *list, PK11SlotListElement
      *le)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - target
    - src
    argTypes:
    - PK11SlotList*
    - PK11SlotList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 264
    functionName: pk11_MoveListToList
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus pk11_MoveListToList(PK11SlotList *target, PK11SlotList *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - list
    argTypes:
    - PK11SlotList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 278
    functionName: PK11_GetFirstRef
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PK11SlotListElement
    signature: 'PK11SlotListElement *

      PK11_GetFirstRef(PK11SlotList *list)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_FreeSlotListElement
      Src: /src/nss/lib/pk11wrap/pk11slot.c:290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - list
    - le
    - restart
    argTypes:
    - PK11SlotList*
    - PK11SlotListElement*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 283
    functionDepth: 2
    functionLinenumber: 283
    functionLinenumberEnd: 292
    functionName: PK11_GetNextRef
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 0
    functionsReached:
    - PK11_FreeSlotListElement
    linkageType: ''
    returnType: PK11SlotListElement
    signature: 'PK11SlotListElement *

      PK11_GetNextRef(PK11SlotList *list, PK11SlotListElement *le, PRBool restart)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/pk11wrap/pk11slot.c:303,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/pk11wrap/pk11slot.c:307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - list
    argTypes:
    - PK11SlotList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 309
    functionName: PK11_GetFirstSafe
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 3
    functionsReached:
    - PZ_Lock
    - PZ_Unlock
    linkageType: ''
    returnType: PK11SlotListElement
    signature: 'PK11SlotListElement *

      PK11_GetFirstSafe(PK11SlotList *list)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/pk11wrap/pk11slot.c:320,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/pk11wrap/pk11slot.c:332,1
    - Dst: PK11_FreeSlotListElement
      Src: /src/nss/lib/pk11wrap/pk11slot.c:333,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - list
    - le
    - restart
    argTypes:
    - PK11SlotList*
    - PK11SlotListElement*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 316
    functionDepth: 2
    functionLinenumber: 316
    functionLinenumberEnd: 335
    functionName: PK11_GetNextSafe
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 3
    functionsReached:
    - PK11_FreeSlotListElement
    - PZ_Lock
    - PZ_Unlock
    linkageType: ''
    returnType: PK11SlotListElement
    signature: 'PK11SlotListElement *

      PK11_GetNextSafe(PK11SlotList *list, PK11SlotListElement *le, PRBool restart)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetFirstSafe
      Src: /src/nss/lib/pk11wrap/pk11slot.c:345,1
    - Dst: PK11_GetNextSafe
      Src: /src/nss/lib/pk11wrap/pk11slot.c:346,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - list
    - slot
    argTypes:
    - PK11SlotList*
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 340
    functionDepth: 3
    functionLinenumber: 340
    functionLinenumberEnd: 351
    functionName: PK11_FindSlotElement
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 0
    functionsReached:
    - PK11_GetFirstSafe
    - PK11_GetNextSafe
    linkageType: ''
    returnType: PK11SlotListElement
    signature: 'PK11SlotListElement *

      PK11_FindSlotElement(PK11SlotList *list, PK11SlotInfo *slot)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Alloc
      Src: /src/nss/lib/pk11wrap/pk11slot.c:364,1
    - Dst: PZ_NewLock
      Src: /src/nss/lib/pk11wrap/pk11slot.c:368,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11slot.c:370,1
    - Dst: PZ_NewLock
      Src: /src/nss/lib/pk11wrap/pk11slot.c:373,1
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/pk11wrap/pk11slot.c:375,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11slot.c:376,1
    - Dst: PZ_NewLock
      Src: /src/nss/lib/pk11wrap/pk11slot.c:379,1
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/pk11wrap/pk11slot.c:381,1
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/pk11wrap/pk11slot.c:382,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11slot.c:383,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/pk11wrap/pk11slot.c:422,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/pk11wrap/pk11slot.c:423,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 72
    argCount: 1
    argNames:
    - mod
    argTypes:
    - SECMODModule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 435
    functionName: PK11_NewSlotInfo
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_Free
    - PORT_Memset
    - PZ_DestroyLock
    - PZ_NewLock
    linkageType: ''
    returnType: PK11SlotInfo
    signature: 'PK11SlotInfo *

      PK11_NewSlotInfo(SECMODModule *mod)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_ATOMIC_INCREMENT
      Src: /src/nss/lib/pk11wrap/pk11slot.c:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - slot
    argTypes:
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 443
    functionName: PK11_ReferenceSlot
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 10
    functionsReached:
    - PR_ATOMIC_INCREMENT
    linkageType: ''
    returnType: PK11SlotInfo
    signature: 'PK11SlotInfo *

      PK11_ReferenceSlot(PK11SlotInfo *slot)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PK11_CleanKeyList
      Src: /src/nss/lib/pk11wrap/pk11slot.c:450,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11slot.c:454,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11slot.c:459,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11slot.c:462,1
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/pk11wrap/pk11slot.c:465,1
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/pk11wrap/pk11slot.c:469,1
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/pk11wrap/pk11slot.c:473,1
    - Dst: SECMOD_SlotDestroyModule
      Src: /src/nss/lib/pk11wrap/pk11slot.c:479,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11slot.c:483,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - slot
    argTypes:
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 484
    functionName: PK11_DestroySlot
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 0
    functionsReached:
    - SECMOD_SlotDestroyModule
    - PORT_Free
    - PK11_CleanKeyList
    - PK11_GETTAB
    - PZ_DestroyLock
    linkageType: ''
    returnType: void
    signature: void PK11_DestroySlot(PK11SlotInfo *slot)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_ATOMIC_DECREMENT
      Src: /src/nss/lib/pk11wrap/pk11slot.c:490,1
    - Dst: PK11_DestroySlot
      Src: /src/nss/lib/pk11wrap/pk11slot.c:491,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - slot
    argTypes:
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 487
    functionDepth: 2
    functionLinenumber: 487
    functionLinenumberEnd: 493
    functionName: PK11_FreeSlot
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 51
    functionsReached:
    - PK11_DestroySlot
    - PR_ATOMIC_DECREMENT
    linkageType: ''
    returnType: void
    signature: void PK11_FreeSlot(PK11SlotInfo *slot)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/pk11wrap/pk11slot.c:498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - slot
    argTypes:
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 495
    functionDepth: 1
    functionLinenumber: 495
    functionLinenumberEnd: 499
    functionName: PK11_EnterSlotMonitor
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 6
    functionsReached:
    - PZ_Lock
    linkageType: ''
    returnType: void
    signature: void PK11_EnterSlotMonitor(PK11SlotInfo *slot)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Unlock
      Src: /src/nss/lib/pk11wrap/pk11slot.c:504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - slot
    argTypes:
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 501
    functionDepth: 1
    functionLinenumber: 501
    functionLinenumberEnd: 505
    functionName: PK11_ExitSlotMonitor
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 6
    functionsReached:
    - PZ_Unlock
    linkageType: ''
    returnType: void
    signature: void PK11_ExitSlotMonitor(PK11SlotInfo *slot)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SECMOD_GetDefaultModuleListLock
      Src: /src/nss/lib/pk11wrap/pk11slot.c:515,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11slot.c:520,1
    - Dst: SECMOD_GetReadLock
      Src: /src/nss/lib/pk11wrap/pk11slot.c:525,1
    - Dst: SECMOD_GetDefaultModuleList
      Src: /src/nss/lib/pk11wrap/pk11slot.c:526,1
    - Dst: PK11_IsPresent
      Src: /src/nss/lib/pk11wrap/pk11slot.c:530,1
    - Dst: SECMOD_ReleaseReadLock
      Src: /src/nss/lib/pk11wrap/pk11slot.c:540,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 510
    functionDepth: 1
    functionLinenumber: 510
    functionLinenumberEnd: 543
    functionName: SECMOD_HasRootCerts
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 0
    functionsReached:
    - SECMOD_ReleaseReadLock
    - SECMOD_GetReadLock
    - PK11_IsPresent
    - SECMOD_GetDefaultModuleListLock
    - PORT_SetError
    - SECMOD_GetDefaultModuleList
    linkageType: ''
    returnType: PRBool
    signature: PRBool SECMOD_HasRootCerts(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: SECMOD_GetDefaultModuleListLock
      Src: /src/nss/lib/pk11wrap/pk11slot.c:554,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11slot.c:561,1
    - Dst: PK11_NewSlotList
      Src: /src/nss/lib/pk11wrap/pk11slot.c:565,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11slot.c:567,1
    - Dst: PK11_GetInternalKeySlot
      Src: /src/nss/lib/pk11wrap/pk11slot.c:579,1
    - Dst: PK11_AddSlotToList
      Src: /src/nss/lib/pk11wrap/pk11slot.c:580,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11slot.c:581,1
    - Dst: SECMOD_GetReadLock
      Src: /src/nss/lib/pk11wrap/pk11slot.c:586,1
    - Dst: SECMOD_GetDefaultModuleList
      Src: /src/nss/lib/pk11wrap/pk11slot.c:587,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11slot.c:589,1
    - Dst: PORT_Strcmp
      Src: /src/nss/lib/pk11wrap/pk11slot.c:595,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11slot.c:598,1
    - Dst: PK11_IsPresent
      Src: /src/nss/lib/pk11wrap/pk11slot.c:603,1
    - Dst: PORT_Strcmp
      Src: /src/nss/lib/pk11wrap/pk11slot.c:605,1
    - Dst: PORT_Strcmp
      Src: /src/nss/lib/pk11wrap/pk11slot.c:607,1
    - Dst: PK11_AddSlotToList
      Src: /src/nss/lib/pk11wrap/pk11slot.c:608,1
    - Dst: SECMOD_ReleaseReadLock
      Src: /src/nss/lib/pk11wrap/pk11slot.c:614,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11slot.c:617,1
    - Dst: PK11_FreeSlotList
      Src: /src/nss/lib/pk11wrap/pk11slot.c:618,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11slot.c:623,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 47
    argCount: 4
    argNames:
    - dllName
    - slotName
    - tokenName
    - presentOnly
    argTypes:
    - char*
    - char*
    - char*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 548
    functionDepth: 4
    functionLinenumber: 548
    functionLinenumberEnd: 627
    functionName: PK11_FindSlotsByNames
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 0
    functionsReached:
    - PK11_FreeSlotList
    - PORT_Assert
    - PK11_NewSlotList
    - PK11_GetInternalKeySlot
    - SECMOD_ReleaseReadLock
    - SECMOD_GetReadLock
    - PK11_IsPresent
    - SECMOD_GetDefaultModuleListLock
    - PORT_SetError
    - SECMOD_GetDefaultModuleList
    - PK11_AddSlotToList
    - PORT_Strcmp
    - PK11_FreeSlot
    linkageType: ''
    returnType: PK11SlotList
    signature: "PK11SlotList *\nPK11_FindSlotsByNames(const char *dllName, const char
      *slotName,\n                      const char *tokenName, PRBool presentOnly)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strcmp
      Src: /src/nss/lib/pk11wrap/pk11slot.c:634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - slot
    - arg
    argTypes:
    - PK11SlotInfo*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 631
    functionDepth: 0
    functionLinenumber: 631
    functionLinenumberEnd: 635
    functionName: pk11_MatchSlotByTokenName
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 0
    functionsReached:
    - PORT_Strcmp
    linkageType: ''
    returnType: PRBool
    signature: PRBool pk11_MatchSlotByTokenName(PK11SlotInfo *slot, const void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/pk11wrap/pk11slot.c:640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - slot
    - arg
    argTypes:
    - PK11SlotInfo*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 637
    functionDepth: 0
    functionLinenumber: 637
    functionLinenumberEnd: 641
    functionName: pk11_MatchSlotBySerial
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 0
    functionsReached:
    - PORT_Memcmp
    linkageType: ''
    returnType: PRBool
    signature: PRBool pk11_MatchSlotBySerial(PK11SlotInfo *slot, const void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pk11_MatchUriTokenInfo
      Src: /src/nss/lib/pk11wrap/pk11slot.c:646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - slot
    - arg
    argTypes:
    - PK11SlotInfo*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 643
    functionDepth: 1
    functionLinenumber: 643
    functionLinenumberEnd: 647
    functionName: pk11_MatchSlotByTokenURI
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 0
    functionsReached:
    - pk11_MatchUriTokenInfo
    linkageType: ''
    returnType: PRBool
    signature: PRBool pk11_MatchSlotByTokenURI(PK11SlotInfo *slot, const void *arg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SECMOD_GetDefaultModuleListLock
      Src: /src/nss/lib/pk11wrap/pk11slot.c:652,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11slot.c:659,1
    - Dst: SECMOD_GetReadLock
      Src: /src/nss/lib/pk11wrap/pk11slot.c:663,1
    - Dst: SECMOD_GetDefaultModuleList
      Src: /src/nss/lib/pk11wrap/pk11slot.c:664,1
    - Dst: PK11_IsPresent
      Src: /src/nss/lib/pk11wrap/pk11slot.c:668,1
    - Dst: func
      Src: /src/nss/lib/pk11wrap/pk11slot.c:669,1
    - Dst: PK11_ReferenceSlot
      Src: /src/nss/lib/pk11wrap/pk11slot.c:670,1
    - Dst: SECMOD_ReleaseReadLock
      Src: /src/nss/lib/pk11wrap/pk11slot.c:678,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11slot.c:681,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 2
    argNames:
    - arg
    - func
    argTypes:
    - void*
    - PK11SlotMatchFunc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 649
    functionDepth: 2
    functionLinenumber: 649
    functionLinenumberEnd: 685
    functionName: pk11_FindSlot
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 0
    functionsReached:
    - SECMOD_ReleaseReadLock
    - SECMOD_GetReadLock
    - PK11_IsPresent
    - func
    - SECMOD_GetDefaultModuleListLock
    - PORT_SetError
    - SECMOD_GetDefaultModuleList
    - PK11_ReferenceSlot
    linkageType: ''
    returnType: PK11SlotInfo
    signature: 'PK11SlotInfo *

      pk11_FindSlot(const void *arg, PK11SlotMatchFunc func)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11URI_ParseURI
      Src: /src/nss/lib/pk11wrap/pk11slot.c:693,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11slot.c:695,1
    - Dst: pk11_FindSlot
      Src: /src/nss/lib/pk11wrap/pk11slot.c:699,1
    - Dst: PK11URI_DestroyURI
      Src: /src/nss/lib/pk11wrap/pk11slot.c:700,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - uriString
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 687
    functionDepth: 3
    functionLinenumber: 687
    functionLinenumberEnd: 702
    functionName: pk11_FindSlotByTokenURI
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PK11URI_DestroyURI
    - pk11_FindSlot
    - PK11URI_ParseURI
    linkageType: ''
    returnType: PK11SlotInfo
    signature: 'PK11SlotInfo *

      pk11_FindSlotByTokenURI(const char *uriString)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetInternalKeySlot
      Src: /src/nss/lib/pk11wrap/pk11slot.c:708,1
    - Dst: PORT_Strncasecmp
      Src: /src/nss/lib/pk11wrap/pk11slot.c:711,1
    - Dst: strlen
      Src: /src/nss/lib/pk11wrap/pk11slot.c:711,1
    - Dst: pk11_FindSlotByTokenURI
      Src: /src/nss/lib/pk11wrap/pk11slot.c:712,1
    - Dst: pk11_FindSlot
      Src: /src/nss/lib/pk11wrap/pk11slot.c:715,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 704
    functionDepth: 4
    functionLinenumber: 704
    functionLinenumberEnd: 716
    functionName: PK11_FindSlotByName
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 9
    functionsReached:
    - PK11_GetInternalKeySlot
    - PORT_Strncasecmp
    - pk11_FindSlot
    - pk11_FindSlotByTokenURI
    - strlen
    linkageType: ''
    returnType: PK11SlotInfo
    signature: 'PK11SlotInfo *

      PK11_FindSlotByName(const char *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pk11_FindSlot
      Src: /src/nss/lib/pk11wrap/pk11slot.c:721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - serial
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 718
    functionDepth: 3
    functionLinenumber: 718
    functionLinenumberEnd: 722
    functionName: PK11_FindSlotBySerial
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 0
    functionsReached:
    - pk11_FindSlot
    linkageType: ''
    returnType: PK11SlotInfo
    signature: 'PK11SlotInfo *

      PK11_FindSlotBySerial(char *serial)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - session
    - event
    - pdata
    argTypes:
    - CK_SESSION_HANDLE
    - CK_NOTIFICATION
    - CK_VOID_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 729
    functionDepth: 0
    functionLinenumber: 729
    functionLinenumberEnd: 734
    functionName: pk11_notify
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV pk11_notify(CK_SESSION_HANDLE session, CK_NOTIFICATION event,\n
      \           CK_VOID_PTR pdata)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11slot.c:750,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11slot.c:754,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11slot.c:759,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11slot.c:762,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11slot.c:767,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11slot.c:768,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11slot.c:768,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 1
    argNames:
    - slot
    argTypes:
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 742
    functionDepth: 2
    functionLinenumber: 742
    functionLinenumberEnd: 775
    functionName: PK11_GetRWSession
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 3
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - PK11_GETTAB
    - PK11_EnterSlotMonitor
    - PK11_ExitSlotMonitor
    - PK11_MapError
    linkageType: ''
    returnType: CK_SESSION_HANDLE
    signature: CK_SESSION_HANDLE PK11_GetRWSession(PK11SlotInfo *slot)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - slot
    - session_handle
    argTypes:
    - PK11SlotInfo*
    - CK_SESSION_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 777
    functionDepth: 0
    functionLinenumber: 777
    functionLinenumberEnd: 784
    functionName: PK11_RWSessionHasLock
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool PK11_RWSessionHasLock(PK11SlotInfo *slot, CK_SESSION_HANDLE
      session_handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - slot
    - rwsession
    argTypes:
    - PK11SlotInfo*
    - CK_SESSION_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 786
    functionDepth: 0
    functionLinenumber: 786
    functionLinenumberEnd: 794
    functionName: pk11_RWSessionIsDefault
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool pk11_RWSessionIsDefault(PK11SlotInfo *slot, CK_SESSION_HANDLE
      rwsession)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11slot.c:804,1
    - Dst: PK11_RWSessionHasLock
      Src: /src/nss/lib/pk11wrap/pk11slot.c:806,1
    - Dst: pk11_RWSessionIsDefault
      Src: /src/nss/lib/pk11wrap/pk11slot.c:807,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11slot.c:808,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11slot.c:811,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - slot
    - rwsession
    argTypes:
    - PK11SlotInfo*
    - CK_SESSION_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 801
    functionDepth: 2
    functionLinenumber: 801
    functionLinenumberEnd: 813
    functionName: PK11_RestoreROSession
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 3
    functionsReached:
    - PORT_Assert
    - PK11_RWSessionHasLock
    - pk11_RWSessionIsDefault
    - PK11_GETTAB
    - PK11_ExitSlotMonitor
    linkageType: ''
    returnType: void
    signature: void PK11_RestoreROSession(PK11SlotInfo *slot, CK_SESSION_HANDLE rwsession)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PZ_NewLock
      Src: /src/nss/lib/pk11wrap/pk11slot.c:824,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - list
    argTypes:
    - PK11SlotList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 821
    functionDepth: 1
    functionLinenumber: 821
    functionLinenumberEnd: 826
    functionName: pk11_InitSlotListStatic
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 0
    functionsReached:
    - PZ_NewLock
    linkageType: ''
    returnType: void
    signature: void pk11_InitSlotListStatic(PK11SlotList *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pk11_InitSlotListStatic
      Src: /src/nss/lib/pk11wrap/pk11slot.c:832,1
    - Dst: pk11_InitSlotListStatic
      Src: /src/nss/lib/pk11wrap/pk11slot.c:833,1
    - Dst: pk11_InitSlotListStatic
      Src: /src/nss/lib/pk11wrap/pk11slot.c:834,1
    - Dst: pk11_InitSlotListStatic
      Src: /src/nss/lib/pk11wrap/pk11slot.c:835,1
    - Dst: pk11_InitSlotListStatic
      Src: /src/nss/lib/pk11wrap/pk11slot.c:836,1
    - Dst: pk11_InitSlotListStatic
      Src: /src/nss/lib/pk11wrap/pk11slot.c:837,1
    - Dst: pk11_InitSlotListStatic
      Src: /src/nss/lib/pk11wrap/pk11slot.c:838,1
    - Dst: pk11_InitSlotListStatic
      Src: /src/nss/lib/pk11wrap/pk11slot.c:839,1
    - Dst: pk11_InitSlotListStatic
      Src: /src/nss/lib/pk11wrap/pk11slot.c:840,1
    - Dst: pk11_InitSlotListStatic
      Src: /src/nss/lib/pk11wrap/pk11slot.c:841,1
    - Dst: pk11_InitSlotListStatic
      Src: /src/nss/lib/pk11wrap/pk11slot.c:842,1
    - Dst: pk11_InitSlotListStatic
      Src: /src/nss/lib/pk11wrap/pk11slot.c:843,1
    - Dst: pk11_InitSlotListStatic
      Src: /src/nss/lib/pk11wrap/pk11slot.c:844,1
    - Dst: pk11_InitSlotListStatic
      Src: /src/nss/lib/pk11wrap/pk11slot.c:845,1
    - Dst: pk11_InitSlotListStatic
      Src: /src/nss/lib/pk11wrap/pk11slot.c:846,1
    - Dst: pk11_InitSlotListStatic
      Src: /src/nss/lib/pk11wrap/pk11slot.c:847,1
    - Dst: pk11_InitSlotListStatic
      Src: /src/nss/lib/pk11wrap/pk11slot.c:848,1
    - Dst: pk11_InitSlotListStatic
      Src: /src/nss/lib/pk11wrap/pk11slot.c:849,1
    - Dst: pk11_InitSlotListStatic
      Src: /src/nss/lib/pk11wrap/pk11slot.c:850,1
    - Dst: pk11_InitSlotListStatic
      Src: /src/nss/lib/pk11wrap/pk11slot.c:851,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 829
    functionDepth: 2
    functionLinenumber: 829
    functionLinenumberEnd: 853
    functionName: PK11_InitSlotLists
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 0
    functionsReached:
    - pk11_InitSlotListStatic
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11_InitSlotLists(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pk11_FreeSlotListStatic
      Src: /src/nss/lib/pk11wrap/pk11slot.c:858,1
    - Dst: pk11_FreeSlotListStatic
      Src: /src/nss/lib/pk11wrap/pk11slot.c:859,1
    - Dst: pk11_FreeSlotListStatic
      Src: /src/nss/lib/pk11wrap/pk11slot.c:860,1
    - Dst: pk11_FreeSlotListStatic
      Src: /src/nss/lib/pk11wrap/pk11slot.c:861,1
    - Dst: pk11_FreeSlotListStatic
      Src: /src/nss/lib/pk11wrap/pk11slot.c:862,1
    - Dst: pk11_FreeSlotListStatic
      Src: /src/nss/lib/pk11wrap/pk11slot.c:863,1
    - Dst: pk11_FreeSlotListStatic
      Src: /src/nss/lib/pk11wrap/pk11slot.c:864,1
    - Dst: pk11_FreeSlotListStatic
      Src: /src/nss/lib/pk11wrap/pk11slot.c:865,1
    - Dst: pk11_FreeSlotListStatic
      Src: /src/nss/lib/pk11wrap/pk11slot.c:866,1
    - Dst: pk11_FreeSlotListStatic
      Src: /src/nss/lib/pk11wrap/pk11slot.c:867,1
    - Dst: pk11_FreeSlotListStatic
      Src: /src/nss/lib/pk11wrap/pk11slot.c:868,1
    - Dst: pk11_FreeSlotListStatic
      Src: /src/nss/lib/pk11wrap/pk11slot.c:869,1
    - Dst: pk11_FreeSlotListStatic
      Src: /src/nss/lib/pk11wrap/pk11slot.c:870,1
    - Dst: pk11_FreeSlotListStatic
      Src: /src/nss/lib/pk11wrap/pk11slot.c:871,1
    - Dst: pk11_FreeSlotListStatic
      Src: /src/nss/lib/pk11wrap/pk11slot.c:872,1
    - Dst: pk11_FreeSlotListStatic
      Src: /src/nss/lib/pk11wrap/pk11slot.c:873,1
    - Dst: pk11_FreeSlotListStatic
      Src: /src/nss/lib/pk11wrap/pk11slot.c:874,1
    - Dst: pk11_FreeSlotListStatic
      Src: /src/nss/lib/pk11wrap/pk11slot.c:875,1
    - Dst: pk11_FreeSlotListStatic
      Src: /src/nss/lib/pk11wrap/pk11slot.c:876,1
    - Dst: pk11_FreeSlotListStatic
      Src: /src/nss/lib/pk11wrap/pk11slot.c:877,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 855
    functionDepth: 3
    functionLinenumber: 855
    functionLinenumberEnd: 879
    functionName: PK11_DestroySlotLists
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 0
    functionsReached:
    - pk11_FreeSlotListStatic
    linkageType: ''
    returnType: void
    signature: void PK11_DestroySlotLists(void)
  - BBCount: 58
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 82
    argCount: 1
    argNames:
    - type
    argTypes:
    - CK_MECHANISM_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 882
    functionDepth: 0
    functionLinenumber: 882
    functionLinenumberEnd: 969
    functionName: PK11_GetSlotList
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PK11SlotList
    signature: 'PK11SlotList *

      PK11_GetSlotList(CK_MECHANISM_TYPE type)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetSlotList
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1011,1
    - Dst: PK11_AddSlotToList
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1014,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - slot
    - psi
    - count
    argTypes:
    - PK11SlotInfo*
    - PK11PreSlotInfo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 976
    functionDepth: 2
    functionLinenumber: 976
    functionLinenumberEnd: 1019
    functionName: PK11_LoadSlotList
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 0
    functionsReached:
    - PK11_AddSlotToList
    - PK11_GetSlotList
    linkageType: ''
    returnType: void
    signature: void PK11_LoadSlotList(PK11SlotInfo *slot, PK11PreSlotInfo *psi, int
      count)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetSlotList
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1032,1
    - Dst: PK11_AddSlotToList
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1041,1
    - Dst: PK11_FindSlotElement
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1050,1
    - Dst: PK11_DeleteSlotFromList
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1054,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - slot
    - entry
    - add
    argTypes:
    - PK11SlotInfo*
    - PK11DefaultArrayEntry*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 1025
    functionDepth: 4
    functionLinenumber: 1025
    functionLinenumberEnd: 1058
    functionName: PK11_UpdateSlotAttribute
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 2
    functionsReached:
    - PK11_AddSlotToList
    - PK11_GetSlotList
    - PK11_FindSlotElement
    - PK11_DeleteSlotFromList
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_UpdateSlotAttribute(PK11SlotInfo *slot,\n                         const
      PK11DefaultArrayEntry *entry,\n                         PRBool add)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetSlotList
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1076,1
    - Dst: PK11_FindSlotElement
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1080,1
    - Dst: PK11_DeleteSlotFromList
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1083,1
    - Dst: PK11_FreeSlotListElement
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1084,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - slot
    argTypes:
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1088
      start: 1063
    functionDepth: 4
    functionLinenumber: 1063
    functionLinenumberEnd: 1088
    functionName: PK11_ClearSlotList
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 0
    functionsReached:
    - PK11_GetSlotList
    - PK11_FindSlotElement
    - PK11_FreeSlotListElement
    - PK11_DeleteSlotFromList
    linkageType: ''
    returnType: void
    signature: void PK11_ClearSlotList(PK11SlotInfo *slot)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1109,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1113,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1119,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 4
    argNames:
    - arena
    - space
    - staticString
    - stringLen
    argTypes:
    - PLArenaPool*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1123
      start: 1096
    functionDepth: 0
    functionLinenumber: 1096
    functionLinenumberEnd: 1123
    functionName: PK11_MakeString
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_ArenaAlloc
    - PORT_Memcpy
    linkageType: ''
    returnType: char
    signature: "char *\nPK11_MakeString(PLArenaPool *arena, char *space,\n                char
      *staticString, int stringLen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1141,1
    - Dst: memcmp
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1141,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - string
    - staticString
    - staticStringLen
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1128
    functionDepth: 0
    functionLinenumber: 1128
    functionLinenumberEnd: 1146
    functionName: pk11_MatchString
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 0
    functionsReached:
    - memcmp
    - strlen
    linkageType: ''
    returnType: PRBool
    signature: "PRBool pk11_MatchString(const char *string,\n                 const
      char *staticString, size_t staticStringLen)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1159,1
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1165,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1166,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1169,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1170,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1170,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1175,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1178,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1181,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1184,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1186,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1188,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1188,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1192,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 1
    argNames:
    - slot
    argTypes:
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1201
      start: 1151
    functionDepth: 2
    functionLinenumber: 1151
    functionLinenumberEnd: 1201
    functionName: PK11_ReadMechanismList
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_Free
    - PORT_SetError
    - PK11_GETTAB
    - PK11_EnterSlotMonitor
    - PORT_Memset
    - PK11_ExitSlotMonitor
    - PK11_MapError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11_ReadMechanismList(PK11SlotInfo *slot)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1216,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1218,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1221,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1224,1
    - Dst: pk11_FindObjectsByTemplate
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1230,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1235,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1240,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1242,1
    - Dst: PK11_ReadULongAttribute
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1249,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1256,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 1
    argNames:
    - slot
    argTypes:
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1258
      start: 1203
    functionDepth: 1
    functionLinenumber: 1203
    functionLinenumberEnd: 1258
    functionName: pk11_ReadProfileList
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_Assert
    - PORT_Free
    - PK11_SETATTRS
    - PK11_ReadULongAttribute
    - pk11_FindObjectsByTemplate
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus pk11_ReadProfileList(PK11SlotInfo *slot)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - slot
    - id
    argTypes:
    - PK11SlotInfo*
    - CK_PROFILE_ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1271
      start: 1260
    functionDepth: 0
    functionLinenumber: 1260
    functionLinenumberEnd: 1271
    functionName: pk11_HasProfile
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool pk11_HasProfile(PK11SlotInfo *slot, CK_PROFILE_ID id)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1289,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1290,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1292,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1294,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1294,1
    - Dst: PK11_MakeString
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1317,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1321,1
    - Dst: PK11Slot_GetNSSToken
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1323,1
    - Dst: nssToken_UpdateName
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1324,1
    - Dst: nssToken_Destroy
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1325,1
    - Dst: PK11_ReadMechanismList
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1329,1
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1353,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1354,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1358,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1360,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1360,1
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1370,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1371,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1373,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1378,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1382,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1382,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1385,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1390,1
    - Dst: PK11Slot_GetNSSToken
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1393,1
    - Dst: nssToken_Refresh
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1394,1
    - Dst: nssToken_Destroy
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1395,1
    - Dst: pk11_ReadProfileList
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1401,1
    - Dst: PK11_GetInternalSlot
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1406,1
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1414,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1415,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1416,1
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1418,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1419,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1422,1
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1427,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1428,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1430,1
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1432,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1433,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1435,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1437,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1446,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1457,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1464,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 117
    argCount: 2
    argNames:
    - slot
    - loadCerts
    argTypes:
    - PK11SlotInfo*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1470
      start: 1279
    functionDepth: 3
    functionLinenumber: 1279
    functionLinenumberEnd: 1470
    functionName: PK11_InitToken
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 0
    functionsReached:
    - PORT_Memcpy
    - nssToken_Destroy
    - PK11_ReadMechanismList
    - nssToken_UpdateName
    - pk11_ReadProfileList
    - PORT_SetError
    - PK11_GETTAB
    - PK11_EnterSlotMonitor
    - PK11_GetInternalSlot
    - PK11_MakeString
    - nssToken_Refresh
    - PK11_ExitSlotMonitor
    - PK11_MapError
    - PK11_FreeSlot
    - PK11Slot_GetNSSToken
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11_InitToken(PK11SlotInfo *slot, PRBool loadCerts)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1485,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1486,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1488,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1490,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1490,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - slot
    argTypes:
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1508
      start: 1478
    functionDepth: 2
    functionLinenumber: 1478
    functionLinenumberEnd: 1508
    functionName: PK11_TokenRefresh
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PK11_GETTAB
    - PK11_EnterSlotMonitor
    - PK11_ExitSlotMonitor
    - PK11_MapError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11_TokenRefresh(PK11SlotInfo *slot)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1520,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1523,1
    - Dst: pk11_FindObjectByTemplate
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1525,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - slot
    argTypes:
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1530
      start: 1510
    functionDepth: 1
    functionLinenumber: 1510
    functionLinenumberEnd: 1530
    functionName: pk11_isRootSlot
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PK11_SETATTRS
    - pk11_FindObjectByTemplate
    linkageType: ''
    returnType: PRBool
    signature: PRBool pk11_isRootSlot(PK11SlotInfo *slot)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetSlotInfo
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1557,1
    - Dst: PK11_MakeString
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1565,1
    - Dst: PORT_Strncmp
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1569,1
    - Dst: PK11_InitToken
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1582,1
    - Dst: pk11_isRootSlot
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1590,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 3
    argNames:
    - mod
    - slotID
    - slot
    argTypes:
    - SECMODModule*
    - CK_SLOT_ID
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1600
      start: 1540
    functionDepth: 4
    functionLinenumber: 1540
    functionLinenumberEnd: 1600
    functionName: PK11_InitSlot
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 0
    functionsReached:
    - PK11_GetSlotInfo
    - PORT_Strncmp
    - pk11_isRootSlot
    - PK11_InitToken
    - PK11_MakeString
    linkageType: ''
    returnType: void
    signature: void PK11_InitSlot(SECMODModule *mod, CK_SLOT_ID slotID, PK11SlotInfo
      *slot)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PK11Slot_GetNSSToken
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1628,1
    - Dst: nssToken_IsPresent
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1630,1
    - Dst: nssToken_Destroy
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1631,1
    - Dst: PK11_GetSlotInfo
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1636,1
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1644,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1646,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1650,1
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1660,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1662,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1664,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1669,1
    - Dst: PK11_InitToken
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1678,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 2
    argNames:
    - slot
    - loadCerts
    argTypes:
    - PK11SlotInfo*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1683
      start: 1611
    functionDepth: 4
    functionLinenumber: 1611
    functionLinenumberEnd: 1683
    functionName: pk11_IsPresentCertLoad
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 0
    functionsReached:
    - PK11_GetSlotInfo
    - nssToken_Destroy
    - nssToken_IsPresent
    - PK11_GETTAB
    - PK11_EnterSlotMonitor
    - PK11_InitToken
    - PK11Slot_GetNSSToken
    - PK11_ExitSlotMonitor
    linkageType: ''
    returnType: PRBool
    signature: PRBool pk11_IsPresentCertLoad(PK11SlotInfo *slot, PRBool loadCerts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pk11_IsPresentCertLoad
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - slot
    argTypes:
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1692
      start: 1688
    functionDepth: 5
    functionLinenumber: 1688
    functionLinenumberEnd: 1692
    functionName: PK11_IsPresent
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 5
    functionsReached:
    - pk11_IsPresentCertLoad
    linkageType: ''
    returnType: PRBool
    signature: PRBool PK11_IsPresent(PK11SlotInfo *slot)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - slot
    argTypes:
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1699
      start: 1695
    functionDepth: 0
    functionLinenumber: 1695
    functionLinenumberEnd: 1699
    functionName: PK11_IsDisabled
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool PK11_IsDisabled(PK11SlotInfo *slot)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - slot
    argTypes:
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1706
      start: 1702
    functionDepth: 0
    functionLinenumber: 1702
    functionLinenumberEnd: 1706
    functionName: PK11_GetDisabledReason
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: PK11DisableReasons
    signature: PK11DisableReasons PK11_GetDisabledReason(PK11SlotInfo *slot)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1716,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - slot
    argTypes:
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1725
      start: 1710
    functionDepth: 0
    functionLinenumber: 1710
    functionLinenumberEnd: 1725
    functionName: PK11_UserDisableSlot
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: PRBool
    signature: PRBool PK11_UserDisableSlot(PK11SlotInfo *slot)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - slot
    argTypes:
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1735
      start: 1727
    functionDepth: 0
    functionLinenumber: 1727
    functionLinenumberEnd: 1735
    functionName: PK11_UserEnableSlot
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool PK11_UserEnableSlot(PK11SlotInfo *slot)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - slot
    argTypes:
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1741
      start: 1737
    functionDepth: 0
    functionLinenumber: 1737
    functionLinenumberEnd: 1741
    functionName: PK11_HasRootCerts
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool PK11_HasRootCerts(PK11SlotInfo *slot)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - slot
    argTypes:
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1748
      start: 1744
    functionDepth: 0
    functionLinenumber: 1744
    functionLinenumberEnd: 1748
    functionName: PK11_GetModule
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECMODModule
    signature: 'SECMODModule *

      PK11_GetModule(PK11SlotInfo *slot)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - slot
    argTypes:
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1755
      start: 1751
    functionDepth: 0
    functionLinenumber: 1751
    functionLinenumberEnd: 1755
    functionName: PK11_GetDefaultFlags
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long PK11_GetDefaultFlags(PK11SlotInfo *slot)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - slot
    argTypes:
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1764
      start: 1760
    functionDepth: 0
    functionLinenumber: 1760
    functionLinenumberEnd: 1764
    functionName: PK11_IsReadOnly
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool PK11_IsReadOnly(PK11SlotInfo *slot)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - slot
    argTypes:
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1770
      start: 1766
    functionDepth: 0
    functionLinenumber: 1766
    functionLinenumberEnd: 1770
    functionName: PK11_IsHW
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool PK11_IsHW(PK11SlotInfo *slot)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - slot
    argTypes:
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1776
      start: 1772
    functionDepth: 0
    functionLinenumber: 1772
    functionLinenumberEnd: 1776
    functionName: PK11_IsRemovable
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool PK11_IsRemovable(PK11SlotInfo *slot)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - slot
    argTypes:
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1782
      start: 1778
    functionDepth: 0
    functionLinenumber: 1778
    functionLinenumberEnd: 1782
    functionName: PK11_IsInternal
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool PK11_IsInternal(PK11SlotInfo *slot)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetInternalKeySlot
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1794,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1796,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - slot
    argTypes:
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1798
      start: 1784
    functionDepth: 3
    functionLinenumber: 1784
    functionLinenumberEnd: 1798
    functionName: PK11_IsInternalKeySlot
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 3
    functionsReached:
    - PK11_GetInternalKeySlot
    - PK11_FreeSlot
    linkageType: ''
    returnType: PRBool
    signature: PRBool PK11_IsInternalKeySlot(PK11SlotInfo *slot)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - slot
    argTypes:
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1804
      start: 1800
    functionDepth: 0
    functionLinenumber: 1800
    functionLinenumberEnd: 1804
    functionName: PK11_NeedLogin
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool PK11_NeedLogin(PK11SlotInfo *slot)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pk11_HasProfile
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1811,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - slot
    argTypes:
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1814
      start: 1806
    functionDepth: 1
    functionLinenumber: 1806
    functionLinenumberEnd: 1814
    functionName: PK11_IsFriendly
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 1
    functionsReached:
    - pk11_HasProfile
    linkageType: ''
    returnType: PRBool
    signature: PRBool PK11_IsFriendly(PK11SlotInfo *slot)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - slot
    argTypes:
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1820
      start: 1816
    functionDepth: 0
    functionLinenumber: 1816
    functionLinenumberEnd: 1820
    functionName: PK11_GetTokenName
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      PK11_GetTokenName(PK11SlotInfo *slot)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PK11_MakeString
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1831,1
    - Dst: PK11_MakeString
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1839,1
    - Dst: PK11_MakeString
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1847,1
    - Dst: PK11_MakeString
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1855,1
    - Dst: PK11URI_CreateURI
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1863,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1865,1
    - Dst: PK11URI_FormatURI
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1869,1
    - Dst: PK11URI_DestroyURI
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1870,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1873,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 1
    argNames:
    - slot
    argTypes:
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1877
      start: 1822
    functionDepth: 1
    functionLinenumber: 1822
    functionLinenumberEnd: 1877
    functionName: PK11_GetTokenURI
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 2
    functionsReached:
    - PK11URI_DestroyURI
    - PK11URI_CreateURI
    - PORT_SetError
    - PK11_MakeString
    - PK11URI_FormatURI
    linkageType: ''
    returnType: char
    signature: 'char *

      PK11_GetTokenURI(PK11SlotInfo *slot)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - slot
    argTypes:
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1883
      start: 1879
    functionDepth: 0
    functionLinenumber: 1879
    functionLinenumberEnd: 1883
    functionName: PK11_GetSlotName
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      PK11_GetSlotName(PK11SlotInfo *slot)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - slot
    argTypes:
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1889
      start: 1885
    functionDepth: 0
    functionLinenumber: 1885
    functionLinenumberEnd: 1889
    functionName: PK11_GetSlotSeries
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PK11_GetSlotSeries(PK11SlotInfo *slot)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - slot
    argTypes:
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1895
      start: 1891
    functionDepth: 0
    functionLinenumber: 1891
    functionLinenumberEnd: 1895
    functionName: PK11_GetCurrentWrapIndex
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PK11_GetCurrentWrapIndex(PK11SlotInfo *slot)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - slot
    argTypes:
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1901
      start: 1897
    functionDepth: 0
    functionLinenumber: 1897
    functionLinenumberEnd: 1901
    functionName: PK11_GetSlotID
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_SLOT_ID
    signature: CK_SLOT_ID PK11_GetSlotID(PK11SlotInfo *slot)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - slot
    argTypes:
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1907
      start: 1903
    functionDepth: 0
    functionLinenumber: 1903
    functionLinenumberEnd: 1907
    functionName: PK11_GetModuleID
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECMODModuleID
    signature: SECMODModuleID PK11_GetModuleID(PK11SlotInfo *slot)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - buffer
    - buffer_size
    argTypes:
    - CK_CHAR*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1924
      start: 1909
    functionDepth: 0
    functionLinenumber: 1909
    functionLinenumberEnd: 1924
    functionName: pk11_zeroTerminatedToBlankPadded
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pk11_zeroTerminatedToBlankPadded(CK_CHAR *buffer, size_t buffer_size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1933,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1938,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1939,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1940,1
    - Dst: pk11_zeroTerminatedToBlankPadded
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1941,1
    - Dst: pk11_zeroTerminatedToBlankPadded
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1943,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1946,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1948,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1948,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - slot
    - info
    argTypes:
    - PK11SlotInfo*
    - CK_SLOT_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1952
      start: 1927
    functionDepth: 2
    functionLinenumber: 1927
    functionLinenumberEnd: 1952
    functionName: PK11_GetSlotInfo
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 3
    functionsReached:
    - PORT_SetError
    - PK11_GETTAB
    - PK11_EnterSlotMonitor
    - PORT_Memset
    - pk11_zeroTerminatedToBlankPadded
    - PK11_MapError
    - PK11_ExitSlotMonitor
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11_GetSlotInfo(PK11SlotInfo *slot, CK_SLOT_INFO *info)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1960,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1965,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1966,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1967,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1968,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1969,1
    - Dst: pk11_zeroTerminatedToBlankPadded
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1970,1
    - Dst: pk11_zeroTerminatedToBlankPadded
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1971,1
    - Dst: pk11_zeroTerminatedToBlankPadded
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1973,1
    - Dst: pk11_zeroTerminatedToBlankPadded
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1974,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1977,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1979,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1979,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - slot
    - info
    argTypes:
    - PK11SlotInfo*
    - CK_TOKEN_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1983
      start: 1955
    functionDepth: 2
    functionLinenumber: 1955
    functionLinenumberEnd: 1983
    functionName: PK11_GetTokenInfo
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    - PK11_GETTAB
    - PK11_EnterSlotMonitor
    - PORT_Memset
    - pk11_zeroTerminatedToBlankPadded
    - PK11_MapError
    - PK11_ExitSlotMonitor
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11_GetTokenInfo(PK11SlotInfo *slot, CK_TOKEN_INFO *info)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PK11URI_GetPathAttribute
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1990,1
    - Dst: pk11_MatchString
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1992,1
    - Dst: PK11URI_GetPathAttribute
      Src: /src/nss/lib/pk11wrap/pk11slot.c:1998,1
    - Dst: pk11_MatchString
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2000,1
    - Dst: PK11URI_GetPathAttribute
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2006,1
    - Dst: pk11_MatchString
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2008,1
    - Dst: PK11URI_GetPathAttribute
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2014,1
    - Dst: pk11_MatchString
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2016,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - slot
    - uri
    argTypes:
    - PK11SlotInfo*
    - PK11URI*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2023
      start: 1985
    functionDepth: 1
    functionLinenumber: 1985
    functionLinenumberEnd: 2023
    functionName: pk11_MatchUriTokenInfo
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 2
    functionsReached:
    - PK11URI_GetPathAttribute
    - pk11_MatchString
    linkageType: ''
    returnType: PRBool
    signature: PRBool pk11_MatchUriTokenInfo(PK11SlotInfo *slot, PK11URI *uri)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetTokenInfo
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2036,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - slot
    argTypes:
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2042
      start: 2026
    functionDepth: 3
    functionLinenumber: 2026
    functionLinenumberEnd: 2042
    functionName: PK11_NeedUserInit
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 9
    functionsReached:
    - PK11_GetTokenInfo
    linkageType: ''
    returnType: PRBool
    signature: PRBool PK11_NeedUserInit(PK11SlotInfo *slot)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2055,1
    - Dst: PK11_ReferenceSlot
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2057,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - slot
    argTypes:
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2058
      start: 2051
    functionDepth: 3
    functionLinenumber: 2051
    functionLinenumberEnd: 2058
    functionName: pk11_SetInternalKeySlot
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 0
    functionsReached:
    - PK11_FreeSlot
    - PK11_ReferenceSlot
    linkageType: ''
    returnType: void
    signature: void pk11_SetInternalKeySlot(PK11SlotInfo *slot)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_ReferenceSlot
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2071,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - slot
    argTypes:
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2072
      start: 2065
    functionDepth: 2
    functionLinenumber: 2065
    functionLinenumberEnd: 2072
    functionName: pk11_SetInternalKeySlotIfFirst
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 0
    functionsReached:
    - PK11_ReferenceSlot
    linkageType: ''
    returnType: void
    signature: void pk11_SetInternalKeySlotIfFirst(PK11SlotInfo *slot)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_ReferenceSlot
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2082,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - slot
    argTypes:
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2084
      start: 2077
    functionDepth: 2
    functionLinenumber: 2077
    functionLinenumberEnd: 2084
    functionName: pk11_SwapInternalKeySlot
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 0
    functionsReached:
    - PK11_ReferenceSlot
    linkageType: ''
    returnType: PK11SlotInfo
    signature: 'PK11SlotInfo *

      pk11_SwapInternalKeySlot(PK11SlotInfo *slot)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PK11_ReferenceSlot
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2094,1
    - Dst: SECMOD_GetInternalModule
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2097,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2098,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2100,1
    - Dst: PK11_ReferenceSlot
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2104
      start: 2088
    functionDepth: 2
    functionLinenumber: 2088
    functionLinenumberEnd: 2104
    functionName: PK11_GetInternalKeySlot
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 27
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - SECMOD_GetInternalModule
    - PK11_ReferenceSlot
    linkageType: ''
    returnType: PK11SlotInfo
    signature: 'PK11SlotInfo *

      PK11_GetInternalKeySlot(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECMOD_GetInternalModule
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2110,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2111,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2113,1
    - Dst: PK11_GetInternalKeySlot
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2117,1
    - Dst: PK11_ReferenceSlot
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2120
      start: 2107
    functionDepth: 3
    functionLinenumber: 2107
    functionLinenumberEnd: 2120
    functionName: PK11_GetInternalSlot
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 10
    functionsReached:
    - PORT_Assert
    - PK11_GetInternalKeySlot
    - PORT_SetError
    - PK11_ReferenceSlot
    - SECMOD_GetInternalModule
    linkageType: ''
    returnType: PK11SlotInfo
    signature: 'PK11SlotInfo *

      PK11_GetInternalSlot(void)'
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - slot
    - type
    argTypes:
    - PK11SlotInfo*
    - CK_MECHANISM_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2147
      start: 2125
    functionDepth: 0
    functionLinenumber: 2125
    functionLinenumberEnd: 2147
    functionName: PK11_DoesMechanism
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool PK11_DoesMechanism(PK11SlotInfo *slot, CK_MECHANISM_TYPE type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pk11_filterSlot
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - slot
    - type
    - flags
    argTypes:
    - PK11SlotInfo*
    - CK_MECHANISM_TYPE
    - CK_FLAGS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2160
      start: 2155
    functionDepth: 1
    functionLinenumber: 2155
    functionLinenumberEnd: 2160
    functionName: PK11_DoesMechanismFlag
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 3
    functionsReached:
    - pk11_filterSlot
    linkageType: ''
    returnType: PRBool
    signature: "PRBool PK11_DoesMechanismFlag(PK11SlotInfo *slot, CK_MECHANISM_TYPE
      type,\n                       CK_FLAGS flags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SECMOD_GetDefaultModuleListLock
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2172,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2178,1
    - Dst: PK11_GetInternalSlot
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2184,1
    - Dst: PK11_DoesMechanism
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2186,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2187,1
    - Dst: SECMOD_GetReadLock
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2192,1
    - Dst: SECMOD_GetDefaultModuleList
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2193,1
    - Dst: PK11_IsPresent
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2197,1
    - Dst: PK11_DoesMechanism
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2198,1
    - Dst: SECMOD_ReleaseReadLock
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2205,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 1
    argNames:
    - type
    argTypes:
    - CK_MECHANISM_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2207
      start: 2167
    functionDepth: 6
    functionLinenumber: 2167
    functionLinenumberEnd: 2207
    functionName: PK11_TokenExists
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 0
    functionsReached:
    - SECMOD_ReleaseReadLock
    - SECMOD_GetReadLock
    - PK11_IsPresent
    - PK11_DoesMechanism
    - SECMOD_GetDefaultModuleListLock
    - PORT_SetError
    - SECMOD_GetDefaultModuleList
    - PK11_GetInternalSlot
    - PK11_FreeSlot
    linkageType: ''
    returnType: PRBool
    signature: PRBool PK11_TokenExists(CK_MECHANISM_TYPE type)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: SECMOD_GetDefaultModuleListLock
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2227,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2229,1
    - Dst: PK11_NewSlotList
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2233,1
    - Dst: PK11_NewSlotList
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2234,1
    - Dst: PK11_NewSlotList
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2235,1
    - Dst: PK11_FreeSlotList
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2238,1
    - Dst: PK11_FreeSlotList
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2240,1
    - Dst: PK11_FreeSlotList
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2242,1
    - Dst: SECMOD_GetReadLock
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2246,1
    - Dst: SECMOD_GetDefaultModuleList
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2248,1
    - Dst: pk11_IsPresentCertLoad
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2253,1
    - Dst: PK11_DoesMechanism
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2256,1
    - Dst: pk11_LoginStillRequired
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2257,1
    - Dst: PK11_IsFriendly
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2258,1
    - Dst: PK11_AddSlotToList
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2259,1
    - Dst: PK11_AddSlotToList
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2261,1
    - Dst: PK11_AddSlotToList
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2264,1
    - Dst: SECMOD_ReleaseReadLock
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2270,1
    - Dst: pk11_MoveListToList
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2272,1
    - Dst: PK11_FreeSlotList
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2273,1
    - Dst: pk11_MoveListToList
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2274,1
    - Dst: PK11_FreeSlotList
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2275,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 45
    argCount: 4
    argNames:
    - type
    - needRW
    - loadCerts
    - wincx
    argTypes:
    - CK_MECHANISM_TYPE
    - PRBool
    - PRBool
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2278
      start: 2215
    functionDepth: 5
    functionLinenumber: 2215
    functionLinenumberEnd: 2278
    functionName: PK11_GetAllTokens
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 4
    functionsReached:
    - PK11_FreeSlotList
    - PK11_NewSlotList
    - pk11_IsPresentCertLoad
    - PK11_IsFriendly
    - SECMOD_ReleaseReadLock
    - SECMOD_GetReadLock
    - pk11_MoveListToList
    - PK11_DoesMechanism
    - SECMOD_GetDefaultModuleListLock
    - PORT_SetError
    - pk11_LoginStillRequired
    - SECMOD_GetDefaultModuleList
    - PK11_AddSlotToList
    linkageType: ''
    returnType: PK11SlotList
    signature: "PK11SlotList *\nPK11_GetAllTokens(CK_MECHANISM_TYPE type, PRBool needRW,
      PRBool loadCerts,\n                  void *wincx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetAllTokens
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2287,1
    - Dst: PK11_Authenticate
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2297,1
    - Dst: PK11_DeleteSlotFromList
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2299,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - type
    - needRW
    - wincx
    argTypes:
    - CK_MECHANISM_TYPE
    - PRBool
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2304
      start: 2284
    functionDepth: 6
    functionLinenumber: 2284
    functionLinenumberEnd: 2304
    functionName: PK11_GetPrivateKeyTokens
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 0
    functionsReached:
    - PK11_GetAllTokens
    - PK11_DeleteSlotFromList
    - PK11_Authenticate
    linkageType: ''
    returnType: PK11SlotList
    signature: 'PK11SlotList *

      PK11_GetPrivateKeyTokens(CK_MECHANISM_TYPE type, PRBool needRW, void *wincx)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2322,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2323,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2326,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 24
    argCount: 4
    argNames:
    - slot
    - mechanism
    - mechanismInfoFlags
    - keySize
    argTypes:
    - PK11SlotInfo*
    - CK_MECHANISM_TYPE
    - CK_FLAGS
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2347
      start: 2309
    functionDepth: 2
    functionLinenumber: 2309
    functionLinenumberEnd: 2347
    functionName: pk11_filterSlot
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 1
    functionsReached:
    - PK11_ExitSlotMonitor
    - PK11_GETTAB
    - PK11_EnterSlotMonitor
    linkageType: ''
    returnType: PRBool
    signature: "PRBool pk11_filterSlot(PK11SlotInfo *slot, CK_MECHANISM_TYPE mechanism,\n
      \               CK_FLAGS mechanismInfoFlags, unsigned int keySize)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetSlotList
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2371,1
    - Dst: PK11_GetAllTokens
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2375,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2381,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2385,1
    - Dst: PK11_GetFirstSafe
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2402,1
    - Dst: PK11_GetNextSafe
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2403,1
    - Dst: PK11_IsPresent
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2404,1
    - Dst: PK11_DoesMechanism
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2407,1
    - Dst: pk11_filterSlot
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2413,1
    - Dst: PK11_Authenticate
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2426,1
    - Dst: PK11_ReferenceSlot
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2431,1
    - Dst: PK11_FreeSlotListElement
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2432,1
    - Dst: PK11_FreeSlotList
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2434,1
    - Dst: PK11_FreeSlotList
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2440,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2442,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2443,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 55
    argCount: 5
    argNames:
    - type
    - mechanismInfoFlags
    - keySize
    - mech_count
    - wincx
    argTypes:
    - CK_MECHANISM_TYPE*
    - CK_FLAGS*
    - unsigned int*
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2446
      start: 2358
    functionDepth: 6
    functionLinenumber: 2358
    functionLinenumberEnd: 2446
    functionName: PK11_GetBestSlotMultipleWithAttributes
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 0
    functionsReached:
    - PK11_FreeSlotList
    - PK11_GetAllTokens
    - PK11_GetNextSafe
    - pk11_filterSlot
    - PK11_GetSlotList
    - PK11_IsPresent
    - PORT_GetError
    - PK11_DoesMechanism
    - PK11_GetFirstSafe
    - PORT_SetError
    - PK11_FreeSlotListElement
    - PK11_ReferenceSlot
    - PK11_Authenticate
    linkageType: ''
    returnType: PK11SlotInfo
    signature: "PK11SlotInfo *\nPK11_GetBestSlotMultipleWithAttributes(CK_MECHANISM_TYPE
      *type,\n                                       CK_FLAGS *mechanismInfoFlags,
      unsigned int *keySize,\n                                       unsigned int
      mech_count, void *wincx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetBestSlotMultipleWithAttributes
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - type
    - mech_count
    - wincx
    argTypes:
    - CK_MECHANISM_TYPE*
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2454
      start: 2448
    functionDepth: 7
    functionLinenumber: 2448
    functionLinenumberEnd: 2454
    functionName: PK11_GetBestSlotMultiple
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 0
    functionsReached:
    - PK11_GetBestSlotMultipleWithAttributes
    linkageType: ''
    returnType: PK11SlotInfo
    signature: "PK11SlotInfo *\nPK11_GetBestSlotMultiple(CK_MECHANISM_TYPE *type,\n
      \                        unsigned int mech_count, void *wincx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetBestSlotMultipleWithAttributes
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - wincx
    argTypes:
    - CK_MECHANISM_TYPE
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2461
      start: 2457
    functionDepth: 7
    functionLinenumber: 2457
    functionLinenumberEnd: 2461
    functionName: PK11_GetBestSlot
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 4
    functionsReached:
    - PK11_GetBestSlotMultipleWithAttributes
    linkageType: ''
    returnType: PK11SlotInfo
    signature: 'PK11SlotInfo *

      PK11_GetBestSlot(CK_MECHANISM_TYPE type, void *wincx)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetBestSlotMultipleWithAttributes
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - type
    - mechanismFlags
    - keySize
    - wincx
    argTypes:
    - CK_MECHANISM_TYPE
    - CK_FLAGS
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2469
      start: 2463
    functionDepth: 7
    functionLinenumber: 2463
    functionLinenumberEnd: 2469
    functionName: PK11_GetBestSlotWithAttributes
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 3
    functionsReached:
    - PK11_GetBestSlotMultipleWithAttributes
    linkageType: ''
    returnType: PK11SlotInfo
    signature: "PK11SlotInfo *\nPK11_GetBestSlotWithAttributes(CK_MECHANISM_TYPE type,
      CK_FLAGS mechanismFlags,\n                               unsigned int keySize,
      void *wincx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2478,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2479,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2482,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - slot
    - mechanism
    argTypes:
    - PK11SlotInfo*
    - CK_MECHANISM_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2489
      start: 2471
    functionDepth: 2
    functionLinenumber: 2471
    functionLinenumberEnd: 2489
    functionName: PK11_GetBestKeyLength
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 0
    functionsReached:
    - PK11_ExitSlotMonitor
    - PK11_GETTAB
    - PK11_EnterSlotMonitor
    linkageType: ''
    returnType: int
    signature: int PK11_GetBestKeyLength(PK11SlotInfo *slot, CK_MECHANISM_TYPE mechanism)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetSlotList
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2511,1
    - Dst: PK11_GetAllTokens
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2515,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2521,1
    - Dst: PK11_GetFirstSafe
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2525,1
    - Dst: PK11_GetNextSafe
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2526,1
    - Dst: PK11_IsPresent
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2529,1
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2531,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2532,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2535,1
    - Dst: PK11_GetKeyType
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2546,1
    - Dst: pk11_GetPredefinedKeyLength
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2547,1
    - Dst: PK11_FreeSlotListElement
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2551,1
    - Dst: PK11_FreeSlotList
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2553,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 32
    argCount: 1
    argNames:
    - mechanism
    argTypes:
    - CK_MECHANISM_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2555
      start: 2502
    functionDepth: 6
    functionLinenumber: 2502
    functionLinenumberEnd: 2555
    functionName: PK11_GetMaxKeyLength
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 0
    functionsReached:
    - PK11_FreeSlotList
    - PK11_GetAllTokens
    - PK11_GetNextSafe
    - pk11_GetPredefinedKeyLength
    - PK11_GetSlotList
    - PK11_IsPresent
    - PK11_GetFirstSafe
    - PORT_SetError
    - PK11_GETTAB
    - PK11_GetKeyType
    - PK11_EnterSlotMonitor
    - PK11_FreeSlotListElement
    - PK11_ExitSlotMonitor
    linkageType: ''
    returnType: int
    signature: int PK11_GetMaxKeyLength(CK_MECHANISM_TYPE mechanism)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2562,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2563,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2564,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2566,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2566,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - slot
    - data
    - len
    argTypes:
    - PK11SlotInfo*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2570
      start: 2557
    functionDepth: 2
    functionLinenumber: 2557
    functionLinenumberEnd: 2570
    functionName: PK11_SeedRandom
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PK11_GETTAB
    - PK11_EnterSlotMonitor
    - PK11_ExitSlotMonitor
    - PK11_MapError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11_SeedRandom(PK11SlotInfo *slot, unsigned char *data,
      int len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2578,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2579,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2582,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2584,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2584,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - slot
    - data
    - len
    argTypes:
    - PK11SlotInfo*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2588
      start: 2572
    functionDepth: 2
    functionLinenumber: 2572
    functionLinenumberEnd: 2588
    functionName: PK11_GenerateRandomOnSlot
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PK11_GETTAB
    - PK11_EnterSlotMonitor
    - PK11_ExitSlotMonitor
    - PK11_MapError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11_GenerateRandomOnSlot(PK11SlotInfo *slot, unsigned char
      *data, int len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetBestSlot
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2602,1
    - Dst: PK11_GetInternalSlot
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2604,1
    - Dst: PK11_IsInternal
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2609,1
    - Dst: PK11_SeedRandom
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2610,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2611,1
    - Dst: PK11_GetInternalSlot
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2615,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2616,1
    - Dst: PK11_SeedRandom
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2620,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2621,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - data
    - bytes
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2624
      start: 2595
    functionDepth: 8
    functionLinenumber: 2595
    functionLinenumberEnd: 2624
    functionName: PK11_RandomUpdate
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 2
    functionsReached:
    - PORT_Assert
    - PK11_IsInternal
    - PK11_GetBestSlot
    - PK11_SeedRandom
    - PK11_GetInternalSlot
    - PK11_FreeSlot
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11_RandomUpdate(void *data, size_t bytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetBestSlot
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2632,1
    - Dst: PK11_GenerateRandomOnSlot
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2636,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2637,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2639
      start: 2626
    functionDepth: 8
    functionLinenumber: 2626
    functionLinenumberEnd: 2639
    functionName: PK11_GenerateRandom
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 5
    functionsReached:
    - PK11_GetBestSlot
    - PK11_FreeSlot
    - PK11_GenerateRandomOnSlot
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11_GenerateRandom(unsigned char *data, int len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strlen
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2653,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2658,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2660,1
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2665,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2668,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2673,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2674,1
    - Dst: PK11_InitToken
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2677,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2678,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2680,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2680,1
    - Dst: PK11Slot_GetNSSToken
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2683,1
    - Dst: nssTrustDomain_UpdateCachedTokenCerts
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2685,1
    - Dst: nssToken_Destroy
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2686,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - slot
    - sso_pwd
    argTypes:
    - PK11SlotInfo*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2689
      start: 2645
    functionDepth: 4
    functionLinenumber: 2645
    functionLinenumberEnd: 2689
    functionName: PK11_ResetToken
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 1
    functionsReached:
    - PORT_Memcpy
    - nssToken_Destroy
    - PORT_Strlen
    - PORT_SetError
    - PK11_GETTAB
    - nssTrustDomain_UpdateCachedTokenCerts
    - PK11_EnterSlotMonitor
    - PK11_InitToken
    - PORT_Memset
    - PK11_MapError
    - PK11_ExitSlotMonitor
    - PK11Slot_GetNSSToken
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11_ResetToken(PK11SlotInfo *slot, char *sso_pwd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssToken_AddRef
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2696,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2699,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2702,1
    - Dst: nssToken_Destroy
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2705,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - sl
    - nsst
    argTypes:
    - PK11SlotInfo*
    - NSSToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2707
      start: 2691
    functionDepth: 1
    functionLinenumber: 2691
    functionLinenumberEnd: 2707
    functionName: PK11Slot_SetNSSToken
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 3
    functionsReached:
    - nssToken_AddRef
    - nssToken_Destroy
    - PZ_Lock
    - PZ_Unlock
    linkageType: ''
    returnType: void
    signature: void PK11Slot_SetNSSToken(PK11SlotInfo *sl, NSSToken *nsst)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2714,1
    - Dst: nssToken_AddRef
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2716,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2718,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - sl
    argTypes:
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2721
      start: 2709
    functionDepth: 1
    functionLinenumber: 2709
    functionLinenumberEnd: 2721
    functionName: PK11Slot_GetNSSToken
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 6
    functionsReached:
    - nssToken_AddRef
    - PZ_Lock
    - PZ_Unlock
    linkageType: ''
    returnType: NSSToken
    signature: 'NSSToken *

      PK11Slot_GetNSSToken(PK11SlotInfo *sl)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SECMODModule*::fipsIndicator
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2742,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - slot
    - session
    - object
    - operationType
    argTypes:
    - PK11SlotInfo*
    - CK_SESSION_HANDLE
    - CK_OBJECT_HANDLE
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2747
      start: 2723
    functionDepth: 0
    functionLinenumber: 2723
    functionLinenumberEnd: 2747
    functionName: pk11slot_GetFIPSStatus
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 0
    functionsReached:
    - SECMODModule*::fipsIndicator
    linkageType: ''
    returnType: PRBool
    signature: "PRBool pk11slot_GetFIPSStatus(PK11SlotInfo *slot, CK_SESSION_HANDLE
      session,\n                       CK_OBJECT_HANDLE object, CK_ULONG operationType)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pk11slot_GetFIPSStatus
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2752,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - slot
    argTypes:
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2754
      start: 2749
    functionDepth: 1
    functionLinenumber: 2749
    functionLinenumberEnd: 2754
    functionName: PK11_SlotGetLastFIPSStatus
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 0
    functionsReached:
    - pk11slot_GetFIPSStatus
    linkageType: ''
    returnType: PRBool
    signature: PRBool PK11_SlotGetLastFIPSStatus(PK11SlotInfo *slot)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PR_SecondsToInterval
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2772,1
    - Dst: PK11_GetSlotSeries
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2777,1
    - Dst: PK11_IsPresent
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2779,1
    - Dst: PK11_GetSlotSeries
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2782,1
    - Dst: PR_IntervalNow
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2789,1
    - Dst: PR_Sleep
      Src: /src/nss/lib/pk11wrap/pk11slot.c:2798,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 5
    argNames:
    - slot
    - event
    - timeout
    - latency
    - series
    argTypes:
    - PK11SlotInfo*
    - PK11TokenEvent
    - PRIntervalTime
    - PRIntervalTime
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2801
      start: 2760
    functionDepth: 6
    functionLinenumber: 2760
    functionLinenumberEnd: 2801
    functionName: PK11_WaitForTokenEvent
    functionSourceFile: /src/nss/lib/pk11wrap/pk11slot.c
    functionUses: 1
    functionsReached:
    - PR_SecondsToInterval
    - PK11_IsPresent
    - PR_Sleep
    - PR_IntervalNow
    - PK11_GetSlotSeries
    linkageType: ''
    returnType: PK11TokenStatus
    signature: "PK11TokenStatus PK11_WaitForTokenEvent(PK11SlotInfo *slot, PK11TokenEvent
      event,\n                       PRIntervalTime timeout, PRIntervalTime latency,
      int series)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Alloc
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:63,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - data
    - blockSize
    - result
    argTypes:
    - SECItem*
    - int
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 73
    functionName: padBlock
    functionSourceFile: /src/nss/lib/pk11wrap/pk11sdr.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_Memcpy
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus padBlock(SECItem *data, int blockSize, SECItem *result)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Alloc
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:106,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:112,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 3
    argNames:
    - data
    - blockSize
    - result
    argTypes:
    - SECItem*
    - int
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 120
    functionName: unpadBlock
    functionSourceFile: /src/nss/lib/pk11wrap/pk11sdr.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_Memcpy
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus unpadBlock(SECItem *data, int blockSize, SECItem *result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_NewLock
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 128
    functionName: pk11sdr_Init
    functionSourceFile: /src/nss/lib/pk11wrap/pk11sdr.c
    functionUses: 0
    functionsReached:
    - PR_NewLock
    linkageType: ''
    returnType: void
    signature: void pk11sdr_Init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_DestroyLock
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 137
    functionName: pk11sdr_Shutdown
    functionSourceFile: /src/nss/lib/pk11wrap/pk11sdr.c
    functionUses: 0
    functionsReached:
    - PR_DestroyLock
    linkageType: ''
    returnType: void
    signature: void pk11sdr_Shutdown(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11SDR_EncryptWithMechanism
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - keyid
    - data
    - result
    - cx
    argTypes:
    - SECItem*
    - SECItem*
    - SECItem*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 147
    functionName: PK11SDR_Encrypt
    functionSourceFile: /src/nss/lib/pk11wrap/pk11sdr.c
    functionUses: 0
    functionsReached:
    - PK11SDR_EncryptWithMechanism
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11SDR_Encrypt(SECItem *keyid, SECItem *data, SECItem *result,
      void *cx)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:173,1
    - Dst: PK11_GetInternalKeySlot
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:186,1
    - Dst: PK11_Authenticate
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:197,1
    - Dst: PK11_GetBestKeyLength
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:204,1
    - Dst: PR_Lock
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:212,1
    - Dst: PK11_FindFixedKey
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:215,1
    - Dst: PK11_TokenKeyGen
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:219,1
    - Dst: PR_Unlock
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:221,1
    - Dst: PK11_FindFixedKey
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:223,1
    - Dst: PK11_GenerateNewParam
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:231,1
    - Dst: PK11_CreateContextBySymKey
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:237,1
    - Dst: padBlock
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:243,1
    - Dst: PK11_GetBlockSize
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:243,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:248,1
    - Dst: PK11_CipherOp
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:250,1
    - Dst: PK11_Finalize
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:255,1
    - Dst: SECOID_FindOIDByMechanism
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:259,1
    - Dst: PK11_ParamToAlgid
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:260,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:264,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:270,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:272,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:274,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:276,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:278,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:280,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 87
    argCount: 6
    argNames:
    - slot
    - keyid
    - type
    - data
    - result
    - cx
    argTypes:
    - PK11SlotInfo*
    - SECItem*
    - CK_MECHANISM_TYPE
    - SECItem*
    - SECItem*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 155
    functionDepth: 3
    functionLinenumber: 155
    functionLinenumberEnd: 283
    functionName: PK11SDR_EncryptWithMechanism
    functionSourceFile: /src/nss/lib/pk11wrap/pk11sdr.c
    functionUses: 2
    functionsReached:
    - PK11_GetInternalKeySlot
    - PK11_Finalize
    - PK11_CreateContextBySymKey
    - PK11_DestroyContext
    - SEC_ASN1EncodeItem
    - PORT_NewArena
    - PORT_ArenaAlloc
    - SECOID_FindOIDByMechanism
    - PR_Lock
    - PK11_TokenKeyGen
    - PR_Unlock
    - PK11_GetBestKeyLength
    - PK11_FindFixedKey
    - PK11_ParamToAlgid
    - PORT_FreeArena
    - PK11_GenerateNewParam
    - PK11_CipherOp
    - padBlock
    - SECITEM_ZfreeItem
    - PK11_FreeSlot
    - PK11_GetBlockSize
    - PK11_Authenticate
    - PK11_FreeSymKey
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11SDR_EncryptWithMechanism(PK11SlotInfo *slot, SECItem
      *keyid, CK_MECHANISM_TYPE type, SECItem *data, SECItem *result, void *cx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PK11_CreateContextBySymKey
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:298,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:305,1
    - Dst: PK11_CipherOp
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:307,1
    - Dst: PK11_Finalize
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:313,1
    - Dst: unpadBlock
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:316,1
    - Dst: PK11_GetBlockSize
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:316,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:322,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 7
    argNames:
    - slot
    - arena
    - type
    - key
    - params
    - in
    - result
    argTypes:
    - PK11SlotInfo*
    - PLArenaPool*
    - CK_MECHANISM_TYPE
    - PK11SymKey*
    - SECItem*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 324
    functionName: pk11Decrypt
    functionSourceFile: /src/nss/lib/pk11wrap/pk11sdr.c
    functionUses: 0
    functionsReached:
    - PK11_DestroyContext
    - PK11_Finalize
    - PORT_ArenaAlloc
    - PK11_CipherOp
    - unpadBlock
    - PK11_CreateContextBySymKey
    - PK11_GetBlockSize
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus pk11Decrypt(PK11SlotInfo *slot, PLArenaPool *arena,\n            CK_MECHANISM_TYPE
      type, PK11SymKey *key,\n            SECItem *params, SECItem *in, SECItem *result)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:344,1
    - Dst: memset
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:351,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:352,1
    - Dst: PK11_GetInternalKeySlot
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:357,1
    - Dst: PK11_Authenticate
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:363,1
    - Dst: PK11_ParamFromAlgid
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:368,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:374,1
    - Dst: PK11_AlgtagToMechanism
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:375,1
    - Dst: PK11_FindFixedKey
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:376,1
    - Dst: pk11Decrypt
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:380,1
    - Dst: PK11_ListFixedKeysInSlot
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:398,1
    - Dst: PK11_GetNextSymKey
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:403,1
    - Dst: PK11_GetSymKeyType
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:404,1
    - Dst: PK11_GetKeyType
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:404,1
    - Dst: pk11Decrypt
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:408,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:420,1
    - Dst: PK11_GetNextSymKey
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:429,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:430,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:443,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:445,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:447,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:449,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pk11wrap/pk11sdr.c:451,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 79
    argCount: 3
    argNames:
    - data
    - result
    - cx
    argTypes:
    - SECItem*
    - SECItem*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 331
    functionDepth: 3
    functionLinenumber: 331
    functionLinenumberEnd: 454
    functionName: PK11SDR_Decrypt
    functionSourceFile: /src/nss/lib/pk11wrap/pk11sdr.c
    functionUses: 2
    functionsReached:
    - PK11_GetInternalKeySlot
    - PORT_NewArena
    - SECOID_GetAlgorithmTag
    - PORT_FreeArena
    - PK11_ParamFromAlgid
    - PK11_ListFixedKeysInSlot
    - memset
    - SEC_QuickDERDecodeItem
    - PK11_AlgtagToMechanism
    - PK11_GetNextSymKey
    - PK11_GetSymKeyType
    - PK11_GetKeyType
    - pk11Decrypt
    - PK11_FindFixedKey
    - PK11_FreeSymKey
    - SECITEM_ZfreeItem
    - PK11_FreeSlot
    - PK11_Authenticate
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11SDR_Decrypt(SECItem *data, SECItem *result, void *cx)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - kemId
    argTypes:
    - HpkeKemId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 81
    functionName: kemId2Params
    functionSourceFile: /src/nss/lib/pk11wrap/pk11hpke.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: hpkeKemParams
    signature: 'hpkeKemParams *

      kemId2Params(HpkeKemId kemId)'
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - kdfId
    argTypes:
    - HpkeKdfId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 96
    functionName: kdfId2Params
    functionSourceFile: /src/nss/lib/pk11wrap/pk11hpke.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: hpkeKdfParams
    signature: 'hpkeKdfParams *

      kdfId2Params(HpkeKdfId kdfId)'
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - aeadId
    argTypes:
    - HpkeAeadId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 111
    functionName: aeadId2Params
    functionSourceFile: /src/nss/lib/pk11wrap/pk11hpke.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: hpkeAeadParams
    signature: 'hpkeAeadParams *

      aeadId2Params(HpkeAeadId aeadId)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:117,1
    - Dst: PR_htonll
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:119,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - value
    - b
    - count
    argTypes:
    - PRUint64
    - PRUint8*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 123
    functionName: encodeNumber
    functionSourceFile: /src/nss/lib/pk11wrap/pk11hpke.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_Memcpy
    - PR_htonll
    linkageType: ''
    returnType: PRUint8
    signature: 'PRUint8 *

      encodeNumber(PRUint64 value, PRUint8 *b, size_t count)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:130,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - value
    - b
    - count
    argTypes:
    - PRUint64*
    - PRUint8*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 137
    functionName: decodeNumber
    functionSourceFile: /src/nss/lib/pk11wrap/pk11hpke.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: PRUint8
    signature: 'PRUint8 *

      decodeNumber(PRUint64 *value, PRUint8 *b, size_t count)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kemId2Params
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:144,1
    - Dst: kdfId2Params
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:145,1
    - Dst: aeadId2Params
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:146,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:148,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - kemId
    - kdfId
    - aeadId
    argTypes:
    - HpkeKemId
    - HpkeKdfId
    - HpkeAeadId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 152
    functionName: PK11_HPKE_ValidateParameters
    functionSourceFile: /src/nss/lib/pk11wrap/pk11hpke.c
    functionUses: 0
    functionsReached:
    - kemId2Params
    - PORT_SetError
    - aeadId2Params
    - kdfId2Params
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11_HPKE_ValidateParameters(HpkeKemId kemId, HpkeKdfId kdfId,
      HpkeAeadId aeadId)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZNew
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:164,1
    - Dst: kemId2Params
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:169,1
    - Dst: kdfId2Params
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:170,1
    - Dst: aeadId2Params
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:171,1
    - Dst: CHECK_FAIL_ERR
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:172,1
    - Dst: CHECK_FAIL_ERR
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:173,1
    - Dst: PK11_GetBestSlot
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:177,1
    - Dst: CHECK_FAIL
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:178,1
    - Dst: PK11_ReferenceSymKey
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:180,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:181,1
    - Dst: PK11_ImportDataKey
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:183,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:185,1
    - Dst: CHECK_FAIL
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:187,1
    - Dst: CHECK_FAIL
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:188,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:192,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:193,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:196,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:200,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 5
    argNames:
    - kemId
    - kdfId
    - aeadId
    - psk
    - pskId
    argTypes:
    - HpkeKemId
    - HpkeKdfId
    - HpkeAeadId
    - PK11SymKey*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 154
    functionDepth: 8
    functionLinenumber: 154
    functionLinenumberEnd: 203
    functionName: PK11_HPKE_NewContext
    functionSourceFile: /src/nss/lib/pk11wrap/pk11hpke.c
    functionUses: 0
    functionsReached:
    - SECITEM_DupItem
    - PORT_ZNew
    - CHECK_FAIL_ERR
    - PORT_Free
    - PK11_GetBestSlot
    - kdfId2Params
    - PK11_ImportDataKey
    - kemId2Params
    - SECITEM_FreeItem
    - PK11_FreeSymKey
    - PK11_ReferenceSymKey
    - PK11_FreeSlot
    - aeadId2Params
    - CHECK_FAIL
    linkageType: ''
    returnType: HpkeContext
    signature: "HpkeContext *\nPK11_HPKE_NewContext(HpkeKemId kemId, HpkeKdfId kdfId,
      HpkeAeadId aeadId,\n                     PK11SymKey *psk, const SECItem *pskId)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:213,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:216,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:217,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:218,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:219,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:220,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:221,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:222,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:231,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 2
    argNames:
    - cx
    - freeit
    argTypes:
    - HpkeContext*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 233
    functionName: PK11_HPKE_DestroyContext
    functionSourceFile: /src/nss/lib/pk11wrap/pk11hpke.c
    functionUses: 1
    functionsReached:
    - PORT_ZFree
    - PK11_DestroyContext
    - SECITEM_FreeItem
    - PK11_FreeSymKey
    linkageType: ''
    returnType: void
    signature: void PK11_HPKE_DestroyContext(HpkeContext *cx, PRBool freeit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - walker
    - ','
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 252
    functionName: REMAINING_BYTES
    functionSourceFile: /src/nss/lib/pk11wrap/pk11hpke.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REMAINING_BYTES(walker, buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FAIL_ERR
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:266,1
    - Dst: CHECK_FAIL_ERR
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:267,1
    - Dst: PK11_WrapSymKey
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:273,1
    - Dst: CHECK_RV
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:275,1
    - Dst: PK11_WrapSymKey
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:276,1
    - Dst: CHECK_RV
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:278,1
    - Dst: PK11_ExtractKeyValue
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:283,1
    - Dst: CHECK_RV
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:284,1
    - Dst: PK11_GetKeyData
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:285,1
    - Dst: CHECK_FAIL
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:286,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:287,1
    - Dst: PK11_ExtractKeyValue
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:289,1
    - Dst: CHECK_RV
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:290,1
    - Dst: PK11_GetKeyData
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:291,1
    - Dst: CHECK_FAIL
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:292,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:293,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:300,1
    - Dst: CHECK_FAIL
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:301,1
    - Dst: encodeNumber
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:306,1
    - Dst: encodeNumber
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:307,1
    - Dst: encodeNumber
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:308,1
    - Dst: encodeNumber
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:309,1
    - Dst: encodeNumber
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:310,1
    - Dst: encodeNumber
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:313,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:314,1
    - Dst: encodeNumber
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:318,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:319,1
    - Dst: encodeNumber
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:323,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:324,1
    - Dst: encodeNumber
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:328,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:329,1
    - Dst: CHECK_FAIL_ERR
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:332,1
    - Dst: REMAINING_BYTES
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:332,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:338,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 54
    argCount: 3
    argNames:
    - cx
    - wrapKey
    - serialized
    argTypes:
    - HpkeContext*
    - PK11SymKey*
    - SECItem**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 252
    functionDepth: 2
    functionLinenumber: 252
    functionLinenumberEnd: 341
    functionName: PK11_HPKE_ExportContext
    functionSourceFile: /src/nss/lib/pk11wrap/pk11hpke.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_Memcpy
    - CHECK_RV
    - REMAINING_BYTES
    - CHECK_FAIL_ERR
    - SECITEM_AllocItem
    - PK11_ExtractKeyValue
    - encodeNumber
    - PK11_GetKeyData
    - PK11_WrapSymKey
    - SECITEM_ZfreeItem
    - CHECK_FAIL
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11_HPKE_ExportContext(const HpkeContext *cx, PK11SymKey
      *wrapKey, SECItem **serialized)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FAIL_ERR
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:359,1
    - Dst: CHECK_FAIL_ERR
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:361,1
    - Dst: CHECK_FAIL_ERR
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:366,1
    - Dst: decodeNumber
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:368,1
    - Dst: decodeNumber
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:371,1
    - Dst: decodeNumber
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:374,1
    - Dst: PK11_HPKE_NewContext
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:379,1
    - Dst: CHECK_FAIL
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:380,1
    - Dst: decodeNumber
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:382,1
    - Dst: CHECK_FAIL_ERR
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:383,1
    - Dst: decodeNumber
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:387,1
    - Dst: PK11_GetBestSlot
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:388,1
    - Dst: CHECK_FAIL
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:389,1
    - Dst: decodeNumber
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:392,1
    - Dst: CHECK_FAIL_ERR
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:393,1
    - Dst: REMAINING_BYTES
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:393,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:397,1
    - Dst: CHECK_FAIL
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:398,1
    - Dst: decodeNumber
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:402,1
    - Dst: CHECK_FAIL_ERR
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:403,1
    - Dst: CHECK_FAIL_ERR
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:404,1
    - Dst: REMAINING_BYTES
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:404,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:408,1
    - Dst: CHECK_FAIL
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:409,1
    - Dst: decodeNumber
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:413,1
    - Dst: CHECK_FAIL_ERR
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:414,1
    - Dst: REMAINING_BYTES
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:414,1
    - Dst: PK11_UnwrapSymKey
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:420,1
    - Dst: CHECK_FAIL
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:423,1
    - Dst: CHECK_FAIL_ERR
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:425,1
    - Dst: PK11_ImportSymKey
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:426,1
    - Dst: CHECK_FAIL
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:429,1
    - Dst: decodeNumber
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:434,1
    - Dst: CHECK_FAIL_ERR
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:435,1
    - Dst: REMAINING_BYTES
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:435,1
    - Dst: PK11_UnwrapSymKey
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:442,1
    - Dst: CHECK_FAIL
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:445,1
    - Dst: CHECK_FAIL_ERR
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:447,1
    - Dst: PK11_ImportSymKey
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:448,1
    - Dst: CHECK_FAIL
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:450,1
    - Dst: PK11_CreateContextBySymKey
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:454,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:460,1
    - Dst: PK11_HPKE_DestroyContext
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:461,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:465,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 75
    argCount: 2
    argNames:
    - serialized
    - wrapKey
    argTypes:
    - SECItem*
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 343
    functionDepth: 9
    functionLinenumber: 343
    functionLinenumberEnd: 469
    functionName: PK11_HPKE_ImportContext
    functionSourceFile: /src/nss/lib/pk11wrap/pk11hpke.c
    functionUses: 0
    functionsReached:
    - SECITEM_DupItem
    - REMAINING_BYTES
    - PK11_HPKE_DestroyContext
    - CHECK_FAIL_ERR
    - PK11_GetBestSlot
    - PK11_FreeSymKey
    - PK11_HPKE_NewContext
    - PK11_UnwrapSymKey
    - PK11_ImportSymKey
    - PK11_CreateContextBySymKey
    - PK11_FreeSlot
    - CHECK_FAIL
    - decodeNumber
    linkageType: ''
    returnType: HpkeContext
    signature: 'HpkeContext *

      PK11_HPKE_ImportContext(const SECItem *serialized, PK11SymKey *wrapKey)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:475,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:487,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:491,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - pk
    - buf
    - len
    - maxLen
    argTypes:
    - SECKEYPublicKey*
    - PRUint8*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 494
    functionName: PK11_HPKE_Serialize
    functionSourceFile: /src/nss/lib/pk11wrap/pk11hpke.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PORT_Memcpy
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11_HPKE_Serialize(const SECKEYPublicKey *pk, PRUint8 *buf,
      unsigned int *len, unsigned int maxLen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:506,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:510,1
    - Dst: CHECK_FAIL
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:511,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:512,1
    - Dst: CHECK_FAIL
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:513,1
    - Dst: SECITEM_MakeItem
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:520,1
    - Dst: CHECK_RV
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:522,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:526,1
    - Dst: CHECK_FAIL_ERR
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:527,1
    - Dst: CHECK_FAIL
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:530,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:530,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:536,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:541,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 4
    argNames:
    - cx
    - enc
    - encLen
    - outPubKey
    argTypes:
    - HpkeContext*
    - PRUint8*
    - unsigned int
    - SECKEYPublicKey**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 496
    functionDepth: 2
    functionLinenumber: 496
    functionLinenumberEnd: 544
    functionName: PK11_HPKE_Deserialize
    functionSourceFile: /src/nss/lib/pk11wrap/pk11hpke.c
    functionUses: 0
    functionsReached:
    - SECKEY_DestroyPublicKey
    - PORT_Memcpy
    - PORT_NewArena
    - CHECK_RV
    - SECOID_FindOIDByTag
    - CHECK_FAIL_ERR
    - SECITEM_AllocItem
    - PORT_SetError
    - PORT_ArenaZNew
    - SECITEM_MakeItem
    - CHECK_FAIL
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_HPKE_Deserialize(const HpkeContext *cx, const PRUint8
      *enc,\n                      unsigned int encLen, SECKEYPublicKey **outPubKey)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:553,1
    - Dst: SECKEY_GetECCOid
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:556,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:558,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:561,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - cx
    - pk
    - sk
    argTypes:
    - HpkeContext*
    - SECKEYPublicKey*
    - SECKEYPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 546
    functionDepth: 1
    functionLinenumber: 546
    functionLinenumberEnd: 568
    functionName: pk11_hpke_CheckKeys
    functionSourceFile: /src/nss/lib/pk11wrap/pk11hpke.c
    functionUses: 0
    functionsReached:
    - SECKEY_GetECCOid
    - PORT_SetError
    - PR_ARRAY_SIZE
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus pk11_hpke_CheckKeys(const HpkeContext *cx, const SECKEYPublicKey
      *pk,\n                    const SECKEYPrivateKey *sk)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:581,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:583,1
    - Dst: CHECK_FAIL_ERR
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:584,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:585,1
    - Dst: CHECK_FAIL
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:586,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:592,1
    - Dst: PK11_GetBestSlot
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:594,1
    - Dst: CHECK_FAIL
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:595,1
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:597,1
    - Dst: CHECK_FAIL_ERR
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:599,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:600,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:606,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:607,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:610,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:612,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 3
    argNames:
    - cx
    - pkE
    - skE
    argTypes:
    - HpkeContext*
    - SECKEYPublicKey**
    - SECKEYPrivateKey**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 570
    functionDepth: 8
    functionLinenumber: 570
    functionLinenumberEnd: 614
    functionName: pk11_hpke_GenerateKeyPair
    functionSourceFile: /src/nss/lib/pk11wrap/pk11hpke.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_Assert
    - SECKEY_DestroyPublicKey
    - PORT_Memcpy
    - SECOID_FindOIDByTag
    - CHECK_FAIL_ERR
    - PORT_Free
    - PK11_GenerateKeyPair
    - PK11_GetBestSlot
    - SECKEY_DestroyPrivateKey
    - PK11_FreeSlot
    - CHECK_FAIL
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus pk11_hpke_GenerateKeyPair(const HpkeContext *cx, SECKEYPublicKey
      **pkE,\n                          SECKEYPrivateKey **skE)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:623,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:629,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:631,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:633,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:636,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 6
    argNames:
    - prefix
    - prefixLen
    - label
    - labelLen
    - suiteId
    - ikm
    argTypes:
    - char*
    - unsigned int
    - char*
    - unsigned int
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 640
    functionName: pk11_hpke_MakeExtractLabel
    functionSourceFile: /src/nss/lib/pk11wrap/pk11hpke.c
    functionUses: 0
    functionsReached:
    - PORT_Memcpy
    - SECITEM_AllocItem
    linkageType: ''
    returnType: SECItem
    signature: "SECItem *\npk11_hpke_MakeExtractLabel(const char *prefix, unsigned
      int prefixLen,\n                           const char *label, unsigned int labelLen,\n
      \                          const SECItem *suiteId, const SECItem *ikm)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:657,1
    - Dst: pk11_hpke_MakeExtractLabel
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:659,1
    - Dst: strlen
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:659,1
    - Dst: CHECK_FAIL
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:660,1
    - Dst: PK11_GetBestSlot
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:670,1
    - Dst: CHECK_FAIL
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:671,1
    - Dst: PK11_ImportDataKey
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:673,1
    - Dst: CHECK_FAIL
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:675,1
    - Dst: PK11_Derive
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:676,1
    - Dst: CHECK_FAIL
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:678,1
    - Dst: PK11_ExtractKeyValue
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:679,1
    - Dst: CHECK_RV
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:680,1
    - Dst: PK11_GetKeyData
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:681,1
    - Dst: CHECK_FAIL
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:682,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:683,1
    - Dst: CHECK_FAIL
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:684,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:689,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:690,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:691,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:693,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 7
    argNames:
    - cx
    - salt
    - suiteId
    - label
    - labelLen
    - ikm
    - out
    argTypes:
    - HpkeContext*
    - SECItem*
    - SECItem*
    - char*
    - unsigned int
    - SECItem*
    - SECItem**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 642
    functionDepth: 8
    functionLinenumber: 642
    functionLinenumberEnd: 696
    functionName: pk11_hpke_LabeledExtractData
    functionSourceFile: /src/nss/lib/pk11wrap/pk11hpke.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SECITEM_DupItem
    - pk11_hpke_MakeExtractLabel
    - CHECK_RV
    - PK11_GetBestSlot
    - PK11_ImportDataKey
    - PK11_ExtractKeyValue
    - PK11_Derive
    - PK11_GetKeyData
    - SECITEM_FreeItem
    - PK11_FreeSymKey
    - PK11_FreeSlot
    - CHECK_FAIL
    - strlen
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus pk11_hpke_LabeledExtractData(const HpkeContext *cx, SECItem
      *salt,\n                             const SECItem *suiteId, const char *label,\n
      \                            unsigned int labelLen, const SECItem *ikm, SECItem
      **out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:712,1
    - Dst: pk11_hpke_MakeExtractLabel
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:714,1
    - Dst: strlen
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:714,1
    - Dst: CHECK_FAIL
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:715,1
    - Dst: PK11_Derive
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:720,1
    - Dst: CHECK_FAIL
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:722,1
    - Dst: PK11_GetSymKeyHandle
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:728,1
    - Dst: PK11_Derive
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:730,1
    - Dst: CHECK_FAIL
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:732,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:736,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:737,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 8
    argNames:
    - cx
    - salt
    - suiteId
    - label
    - hashMech
    - labelLen
    - ikm
    - out
    argTypes:
    - HpkeContext*
    - PK11SymKey*
    - SECItem*
    - char*
    - CK_MECHANISM_TYPE
    - unsigned int
    - PK11SymKey*
    - PK11SymKey**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 698
    functionDepth: 1
    functionLinenumber: 698
    functionLinenumberEnd: 739
    functionName: pk11_hpke_LabeledExtract
    functionSourceFile: /src/nss/lib/pk11wrap/pk11hpke.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - pk11_hpke_MakeExtractLabel
    - PK11_GetSymKeyHandle
    - PK11_Derive
    - PK11_FreeSymKey
    - SECITEM_ZfreeItem
    - CHECK_FAIL
    - strlen
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus pk11_hpke_LabeledExtract(const HpkeContext *cx, PK11SymKey
      *salt,\n                         const SECItem *suiteId, const char *label,
      CK_MECHANISM_TYPE hashMech,\n                         unsigned int labelLen,
      PK11SymKey *ikm, PK11SymKey **out)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:759,1
    - Dst: encodeNumber
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:761,1
    - Dst: strlen
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:763,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:764,1
    - Dst: CHECK_FAIL
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:765,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:768,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:770,1
    - Dst: strlen
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:770,1
    - Dst: strlen
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:771,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:772,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:774,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:777,1
    - Dst: strcmp
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:788,1
    - Dst: PK11_Derive
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:790,1
    - Dst: CHECK_FAIL
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:791,1
    - Dst: CHECK_FAIL_ERR
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:795,1
    - Dst: PK11_ExtractKeyValue
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:796,1
    - Dst: CHECK_RV
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:797,1
    - Dst: PK11_GetKeyData
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:798,1
    - Dst: CHECK_FAIL_ERR
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:799,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:800,1
    - Dst: CHECK_FAIL
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:801,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:802,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:809,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:811,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 48
    argCount: 10
    argNames:
    - cx
    - prk
    - suiteId
    - label
    - labelLen
    - info
    - L
    - hashMech
    - outKey
    - outItem
    argTypes:
    - HpkeContext*
    - PK11SymKey*
    - SECItem*
    - char*
    - unsigned int
    - SECItem*
    - unsigned int
    - CK_MECHANISM_TYPE
    - PK11SymKey**
    - SECItem**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 741
    functionDepth: 2
    functionLinenumber: 741
    functionLinenumberEnd: 813
    functionName: pk11_hpke_LabeledExpand
    functionSourceFile: /src/nss/lib/pk11wrap/pk11hpke.c
    functionUses: 0
    functionsReached:
    - strcmp
    - PORT_Assert
    - SECITEM_DupItem
    - PORT_Memcpy
    - CHECK_RV
    - CHECK_FAIL_ERR
    - SECITEM_AllocItem
    - PK11_ExtractKeyValue
    - PK11_Derive
    - encodeNumber
    - PK11_GetKeyData
    - PK11_FreeSymKey
    - SECITEM_ZfreeItem
    - CHECK_FAIL
    - strlen
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus pk11_hpke_LabeledExpand(const HpkeContext *cx, PK11SymKey
      *prk, const SECItem *suiteId,\n                        const char *label, unsigned
      int labelLen, const SECItem *info,\n                        unsigned int L,
      CK_MECHANISM_TYPE hashMech, PK11SymKey **outKey,\n                        SECItem
      **outItem)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:824,1
    - Dst: strlen
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:824,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:826,1
    - Dst: encodeNumber
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:829,1
    - Dst: pk11_hpke_LabeledExtract
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:831,1
    - Dst: strlen
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:832,1
    - Dst: CHECK_RV
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:834,1
    - Dst: pk11_hpke_LabeledExpand
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:836,1
    - Dst: strlen
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:836,1
    - Dst: CHECK_RV
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:839,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:844,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:846,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - cx
    - ikm
    - kemContext
    - out
    argTypes:
    - HpkeContext*
    - PK11SymKey*
    - SECItem*
    - PK11SymKey**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 815
    functionDepth: 3
    functionLinenumber: 815
    functionLinenumberEnd: 848
    functionName: pk11_hpke_ExtractAndExpand
    functionSourceFile: /src/nss/lib/pk11wrap/pk11hpke.c
    functionUses: 0
    functionsReached:
    - pk11_hpke_LabeledExpand
    - PORT_Assert
    - PORT_Memcpy
    - CHECK_RV
    - encodeNumber
    - pk11_hpke_LabeledExtract
    - PK11_FreeSymKey
    - strlen
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus pk11_hpke_ExtractAndExpand(const HpkeContext *cx, PK11SymKey
      *ikm,\n                           const SECItem *kemContext, PK11SymKey **out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:860,1
    - Dst: pk11_hpke_CheckKeys
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:862,1
    - Dst: CHECK_RV
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:863,1
    - Dst: pk11_hpke_CheckKeys
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:864,1
    - Dst: CHECK_RV
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:865,1
    - Dst: PK11_PubDeriveWithKDF
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:867,1
    - Dst: CHECK_FAIL
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:870,1
    - Dst: PK11_HPKE_Serialize
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:875,1
    - Dst: CHECK_RV
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:876,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:877,1
    - Dst: CHECK_FAIL
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:878,1
    - Dst: PK11_HPKE_Serialize
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:879,1
    - Dst: CHECK_RV
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:881,1
    - Dst: PK11_HPKE_Serialize
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:883,1
    - Dst: CHECK_RV
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:884,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:886,1
    - Dst: CHECK_FAIL
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:887,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:889,1
    - Dst: PK11_HPKE_Serialize
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:890,1
    - Dst: CHECK_RV
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:891,1
    - Dst: pk11_hpke_ExtractAndExpand
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:893,1
    - Dst: CHECK_RV
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:894,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:898,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:901,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:902,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:903,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 4
    argNames:
    - cx
    - pkE
    - skE
    - pkR
    argTypes:
    - HpkeContext*
    - SECKEYPublicKey*
    - SECKEYPrivateKey*
    - SECKEYPublicKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 850
    functionDepth: 4
    functionLinenumber: 850
    functionLinenumberEnd: 905
    functionName: pk11_hpke_Encap
    functionSourceFile: /src/nss/lib/pk11wrap/pk11hpke.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_Memcpy
    - CHECK_RV
    - pk11_hpke_ExtractAndExpand
    - SECITEM_AllocItem
    - PK11_HPKE_Serialize
    - pk11_hpke_CheckKeys
    - SECITEM_FreeItem
    - PK11_FreeSymKey
    - CHECK_FAIL
    - PK11_PubDeriveWithKDF
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus pk11_hpke_Encap(HpkeContext *cx, const SECKEYPublicKey *pkE,
      SECKEYPrivateKey *skE,\n                SECKEYPublicKey *pkR)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:915,1
    - Dst: strlen
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:915,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:921,1
    - Dst: encodeNumber
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:926,1
    - Dst: encodeNumber
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:927,1
    - Dst: encodeNumber
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:928,1
    - Dst: pk11_hpke_LabeledExpand
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:930,1
    - Dst: strlen
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:931,1
    - Dst: CHECK_RV
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:933,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 4
    argNames:
    - cx
    - info
    - L
    - out
    argTypes:
    - HpkeContext*
    - SECItem*
    - unsigned int
    - PK11SymKey**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 907
    functionDepth: 3
    functionLinenumber: 907
    functionLinenumberEnd: 938
    functionName: PK11_HPKE_ExportSecret
    functionSourceFile: /src/nss/lib/pk11wrap/pk11hpke.c
    functionUses: 0
    functionsReached:
    - pk11_hpke_LabeledExpand
    - PORT_Memcpy
    - CHECK_RV
    - PORT_SetError
    - encodeNumber
    - strlen
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_HPKE_ExportSecret(const HpkeContext *cx, const SECItem
      *info, unsigned int L,\n                       PK11SymKey **out)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:952,1
    - Dst: PK11_HPKE_Deserialize
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:956,1
    - Dst: CHECK_RV
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:957,1
    - Dst: pk11_hpke_CheckKeys
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:959,1
    - Dst: CHECK_RV
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:960,1
    - Dst: pk11_hpke_CheckKeys
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:961,1
    - Dst: CHECK_RV
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:962,1
    - Dst: PK11_PubDeriveWithKDF
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:964,1
    - Dst: CHECK_FAIL
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:967,1
    - Dst: PK11_HPKE_Serialize
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:970,1
    - Dst: CHECK_RV
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:971,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:973,1
    - Dst: CHECK_FAIL
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:974,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:976,1
    - Dst: PK11_HPKE_Serialize
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:977,1
    - Dst: CHECK_RV
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:979,1
    - Dst: pk11_hpke_ExtractAndExpand
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:980,1
    - Dst: CHECK_RV
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:981,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:985,1
    - Dst: CHECK_FAIL
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:986,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:990,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:993,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:994,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:995,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:996,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 4
    argNames:
    - cx
    - pkR
    - skR
    - encS
    argTypes:
    - HpkeContext*
    - SECKEYPublicKey*
    - SECKEYPrivateKey*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 940
    functionDepth: 4
    functionLinenumber: 940
    functionLinenumberEnd: 998
    functionName: pk11_hpke_Decap
    functionSourceFile: /src/nss/lib/pk11wrap/pk11hpke.c
    functionUses: 0
    functionsReached:
    - SECITEM_DupItem
    - SECKEY_DestroyPublicKey
    - PORT_Memcpy
    - CHECK_RV
    - pk11_hpke_ExtractAndExpand
    - SECITEM_FreeItem
    - SECITEM_AllocItem
    - PORT_SetError
    - PK11_HPKE_Serialize
    - pk11_hpke_CheckKeys
    - PK11_HPKE_Deserialize
    - PK11_FreeSymKey
    - SECITEM_ZfreeItem
    - CHECK_FAIL
    - PK11_PubDeriveWithKDF
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus pk11_hpke_Decap(HpkeContext *cx, const SECKEYPublicKey *pkR,
      SECKEYPrivateKey *skR,\n                const SECItem *encS)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cx
    argTypes:
    - HpkeContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1007
      start: 1000
    functionDepth: 0
    functionLinenumber: 1000
    functionLinenumberEnd: 1007
    functionName: PK11_HPKE_GetEncapPubKey
    functionSourceFile: /src/nss/lib/pk11wrap/pk11hpke.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      PK11_HPKE_GetEncapPubKey(const HpkeContext *cx)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1021,1
    - Dst: strlen
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1021,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1023,1
    - Dst: encodeNumber
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1026,1
    - Dst: encodeNumber
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1027,1
    - Dst: encodeNumber
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1028,1
    - Dst: pk11_hpke_LabeledExtractData
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1030,1
    - Dst: strlen
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1031,1
    - Dst: CHECK_RV
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1032,1
    - Dst: pk11_hpke_LabeledExtractData
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1033,1
    - Dst: strlen
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1034,1
    - Dst: CHECK_RV
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1035,1
    - Dst: CHECK_FAIL
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1039,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1039,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1041,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1043,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1045,1
    - Dst: pk11_hpke_LabeledExtract
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1049,1
    - Dst: strlen
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1050,1
    - Dst: CHECK_RV
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1052,1
    - Dst: pk11_hpke_LabeledExpand
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1053,1
    - Dst: strlen
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1053,1
    - Dst: CHECK_RV
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1056,1
    - Dst: pk11_hpke_LabeledExpand
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1057,1
    - Dst: strlen
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1057,1
    - Dst: CHECK_RV
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1060,1
    - Dst: pk11_hpke_LabeledExpand
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1061,1
    - Dst: strlen
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1061,1
    - Dst: CHECK_RV
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1064,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1068,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1069,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1070,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1071,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 35
    argCount: 2
    argNames:
    - cx
    - info
    argTypes:
    - HpkeContext*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 1009
    functionDepth: 9
    functionLinenumber: 1009
    functionLinenumberEnd: 1073
    functionName: pk11_hpke_KeySchedule
    functionSourceFile: /src/nss/lib/pk11wrap/pk11hpke.c
    functionUses: 0
    functionsReached:
    - pk11_hpke_LabeledExpand
    - PORT_Assert
    - PORT_Memcpy
    - CHECK_RV
    - pk11_hpke_LabeledExtractData
    - SECITEM_FreeItem
    - SECITEM_AllocItem
    - encodeNumber
    - pk11_hpke_LabeledExtract
    - PK11_FreeSymKey
    - CHECK_FAIL
    - strlen
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus pk11_hpke_KeySchedule(HpkeContext *cx, const SECItem *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FAIL_ERR
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1082,1
    - Dst: CHECK_FAIL_ERR
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1085,1
    - Dst: pk11_hpke_Decap
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1087,1
    - Dst: CHECK_RV
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1088,1
    - Dst: pk11_hpke_KeySchedule
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1089,1
    - Dst: CHECK_RV
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1090,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1094,1
    - Dst: PK11_CreateContextBySymKey
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1095,1
    - Dst: CHECK_FAIL_ERR
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1098,1
    - Dst: PK11_HPKE_DestroyContext
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1103,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 5
    argNames:
    - cx
    - pkR
    - skR
    - enc
    - info
    argTypes:
    - HpkeContext*
    - SECKEYPublicKey*
    - SECKEYPrivateKey*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 1075
    functionDepth: 10
    functionLinenumber: 1075
    functionLinenumberEnd: 1106
    functionName: PK11_HPKE_SetupR
    functionSourceFile: /src/nss/lib/pk11wrap/pk11hpke.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - pk11_hpke_KeySchedule
    - CHECK_RV
    - PK11_HPKE_DestroyContext
    - CHECK_FAIL_ERR
    - PK11_CreateContextBySymKey
    - pk11_hpke_Decap
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_HPKE_SetupR(HpkeContext *cx, const SECKEYPublicKey
      *pkR, SECKEYPrivateKey *skR,\n                 const SECItem *enc, const SECItem
      *info)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FAIL_ERR
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1116,1
    - Dst: CHECK_FAIL_ERR
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1118,1
    - Dst: pk11_hpke_GenerateKeyPair
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1122,1
    - Dst: pk11_hpke_Encap
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1127,1
    - Dst: pk11_hpke_Encap
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1129,1
    - Dst: CHECK_RV
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1131,1
    - Dst: pk11_hpke_KeySchedule
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1137,1
    - Dst: CHECK_RV
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1138,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1140,1
    - Dst: PK11_CreateContextBySymKey
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1141,1
    - Dst: CHECK_FAIL_ERR
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1144,1
    - Dst: PK11_HPKE_DestroyContext
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1149,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1151,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1152,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 5
    argNames:
    - cx
    - pkE
    - skE
    - pkR
    - info
    argTypes:
    - HpkeContext*
    - SECKEYPublicKey*
    - SECKEYPrivateKey*
    - SECKEYPublicKey*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1154
      start: 1108
    functionDepth: 10
    functionLinenumber: 1108
    functionLinenumberEnd: 1154
    functionName: PK11_HPKE_SetupS
    functionSourceFile: /src/nss/lib/pk11wrap/pk11hpke.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SECKEY_DestroyPublicKey
    - pk11_hpke_KeySchedule
    - CHECK_RV
    - PK11_HPKE_DestroyContext
    - CHECK_FAIL_ERR
    - PK11_CreateContextBySymKey
    - pk11_hpke_Encap
    - SECKEY_DestroyPrivateKey
    - pk11_hpke_GenerateKeyPair
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_HPKE_SetupS(HpkeContext *cx, const SECKEYPublicKey
      *pkE, SECKEYPrivateKey *skE,\n                 SECKEYPublicKey *pkR, const SECItem
      *info)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1173,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1177,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1178,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1183,1
    - Dst: CHECK_FAIL
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1184,1
    - Dst: PK11_AEADOp
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1186,1
    - Dst: CHECK_RV
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1194,1
    - Dst: CHECK_FAIL_ERR
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1195,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1198,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1204,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 4
    argNames:
    - cx
    - aad
    - pt
    - out
    argTypes:
    - HpkeContext*
    - SECItem*
    - SECItem*
    - SECItem**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1207
      start: 1156
    functionDepth: 1
    functionLinenumber: 1156
    functionLinenumberEnd: 1207
    functionName: PK11_HPKE_Seal
    functionSourceFile: /src/nss/lib/pk11wrap/pk11hpke.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_Memcpy
    - CHECK_RV
    - CHECK_FAIL_ERR
    - SECITEM_AllocItem
    - PORT_SetError
    - PK11_AEADOp
    - SECITEM_ZfreeItem
    - CHECK_FAIL
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_HPKE_Seal(HpkeContext *cx, const SECItem *aad, const
      SECItem *pt,\n               SECItem **out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1218,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1219,1
    - Dst: PR_UINT64
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1220,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1222,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1226,1
    - Dst: PORT_GET_BYTE_BE
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1229,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - cx
    - iv
    - ivLen
    argTypes:
    - HpkeContext*
    - PRUint8*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1233
      start: 1214
    functionDepth: 1
    functionLinenumber: 1214
    functionLinenumberEnd: 1233
    functionName: pk11_hpke_makeIv
    functionSourceFile: /src/nss/lib/pk11wrap/pk11hpke.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PR_UINT64
    - PORT_Memcpy
    - PORT_GET_BYTE_BE
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus pk11_hpke_makeIv(HpkeContext *cx, PRUint8 *iv, size_t ivLen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1248,1
    - Dst: CHECK_FAIL_ERR
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1252,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1254,1
    - Dst: CHECK_FAIL
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1255,1
    - Dst: pk11_hpke_makeIv
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1257,1
    - Dst: CHECK_RV
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1258,1
    - Dst: PK11_AEADOp
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1260,1
    - Dst: CHECK_RV
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1267,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pk11wrap/pk11hpke.c:1273,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 4
    argNames:
    - cx
    - aad
    - ct
    - out
    argTypes:
    - HpkeContext*
    - SECItem*
    - SECItem*
    - SECItem**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1276
      start: 1235
    functionDepth: 2
    functionLinenumber: 1235
    functionLinenumberEnd: 1276
    functionName: PK11_HPKE_Open
    functionSourceFile: /src/nss/lib/pk11wrap/pk11hpke.c
    functionUses: 0
    functionsReached:
    - CHECK_RV
    - CHECK_FAIL_ERR
    - SECITEM_AllocItem
    - PORT_SetError
    - pk11_hpke_makeIv
    - PK11_AEADOp
    - SECITEM_ZfreeItem
    - CHECK_FAIL
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_HPKE_Open(HpkeContext *cx, const SECItem *aad,\n               const
      SECItem *ct, SECItem **out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rv
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 20
    functionName: CHECK_RV
    functionSourceFile: /src/nss/lib/pk11wrap/pk11hpke.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_RV(rv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 27
    functionName: CHECK_FAIL
    functionSourceFile: /src/nss/lib/pk11wrap/pk11hpke.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_FAIL(cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cond
    - ','
    - err
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 34
    functionName: CHECK_FAIL_ERR
    functionSourceFile: /src/nss/lib/pk11wrap/pk11hpke.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_FAIL_ERR(cond, err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSSRWLock_New
      Src: /src/nss/lib/pk11wrap/pk11list.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 23
    functionName: SECMOD_NewListLock
    functionSourceFile: /src/nss/lib/pk11wrap/pk11list.c
    functionUses: 0
    functionsReached:
    - NSSRWLock_New
    linkageType: ''
    returnType: SECMODListLock
    signature: 'SECMODListLock *

      SECMOD_NewListLock()'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSSRWLock_Destroy
      Src: /src/nss/lib/pk11wrap/pk11list.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lock
    argTypes:
    - SECMODListLock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: SECMOD_DestroyListLock
    functionSourceFile: /src/nss/lib/pk11wrap/pk11list.c
    functionUses: 0
    functionsReached:
    - NSSRWLock_Destroy
    linkageType: ''
    returnType: void
    signature: void SECMOD_DestroyListLock(SECMODListLock *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSSRWLock_LockRead
      Src: /src/nss/lib/pk11wrap/pk11list.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - modLock
    argTypes:
    - SECMODListLock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: SECMOD_GetReadLock
    functionSourceFile: /src/nss/lib/pk11wrap/pk11list.c
    functionUses: 13
    functionsReached:
    - NSSRWLock_LockRead
    linkageType: ''
    returnType: void
    signature: void SECMOD_GetReadLock(SECMODListLock *modLock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSSRWLock_UnlockRead
      Src: /src/nss/lib/pk11wrap/pk11list.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - modLock
    argTypes:
    - SECMODListLock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: SECMOD_ReleaseReadLock
    functionSourceFile: /src/nss/lib/pk11wrap/pk11list.c
    functionUses: 13
    functionsReached:
    - NSSRWLock_UnlockRead
    linkageType: ''
    returnType: void
    signature: void SECMOD_ReleaseReadLock(SECMODListLock *modLock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSSRWLock_LockWrite
      Src: /src/nss/lib/pk11wrap/pk11list.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - modLock
    argTypes:
    - SECMODListLock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: SECMOD_GetWriteLock
    functionSourceFile: /src/nss/lib/pk11wrap/pk11list.c
    functionUses: 0
    functionsReached:
    - NSSRWLock_LockWrite
    linkageType: ''
    returnType: void
    signature: void SECMOD_GetWriteLock(SECMODListLock *modLock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSSRWLock_UnlockWrite
      Src: /src/nss/lib/pk11wrap/pk11list.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - modLock
    argTypes:
    - SECMODListLock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: SECMOD_ReleaseWriteLock
    functionSourceFile: /src/nss/lib/pk11wrap/pk11list.c
    functionUses: 0
    functionsReached:
    - NSSRWLock_UnlockWrite
    linkageType: ''
    returnType: void
    signature: void SECMOD_ReleaseWriteLock(SECMODListLock *modLock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - parent
    - child
    argTypes:
    - SECMODModuleList**
    - SECMODModuleList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: SECMOD_RemoveList
    functionSourceFile: /src/nss/lib/pk11wrap/pk11list.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SECMOD_RemoveList(SECMODModuleList **parent, SECMODModuleList
      *child)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECMOD_GetWriteLock
      Src: /src/nss/lib/pk11wrap/pk11list.c:90,1
    - Dst: SECMOD_ReleaseWriteLock
      Src: /src/nss/lib/pk11wrap/pk11list.c:97,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - parent
    - child
    - lock
    argTypes:
    - SECMODModuleList*
    - SECMODModuleList*
    - SECMODListLock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 99
    functionName: SECMOD_AddList
    functionSourceFile: /src/nss/lib/pk11wrap/pk11list.c
    functionUses: 0
    functionsReached:
    - SECMOD_GetWriteLock
    - SECMOD_ReleaseWriteLock
    linkageType: ''
    returnType: void
    signature: "void SECMOD_AddList(SECMODModuleList *parent, SECMODModuleList *child,\n
      \              SECMODListLock *lock)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PR_Now
      Src: /src/nss/lib/pk11wrap/pk11auth.c:56,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11auth.c:64,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/pk11wrap/pk11auth.c:67,1
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11auth.c:72,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11auth.c:73,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11auth.c:79,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11auth.c:91,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11auth.c:101,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11auth.c:101,1
    - Dst: PK11_InitToken
      Src: /src/nss/lib/pk11wrap/pk11auth.c:106,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11auth.c:113,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11auth.c:113,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11auth.c:121,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11auth.c:121,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 5
    argNames:
    - slot
    - session
    - pw
    - alreadyLocked
    - contextSpecific
    argTypes:
    - PK11SlotInfo*
    - CK_SESSION_HANDLE
    - char*
    - PRBool
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 49
    functionDepth: 4
    functionLinenumber: 49
    functionLinenumberEnd: 126
    functionName: pk11_CheckPassword
    functionSourceFile: /src/nss/lib/pk11wrap/pk11auth.c
    functionUses: 0
    functionsReached:
    - PORT_Strlen
    - PR_Now
    - PORT_SetError
    - PK11_GETTAB
    - PK11_EnterSlotMonitor
    - PK11_InitToken
    - PK11_ExitSlotMonitor
    - PK11_MapError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus pk11_CheckPassword(PK11SlotInfo *slot, CK_SESSION_HANDLE
      session,\n                   char *pw, PRBool alreadyLocked, PRBool contextSpecific)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PR_Now
      Src: /src/nss/lib/pk11wrap/pk11auth.c:138,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11auth.c:144,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/pk11wrap/pk11auth.c:147,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11auth.c:159,1
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11auth.c:166,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11auth.c:167,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11auth.c:169,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11auth.c:172,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11auth.c:181,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11auth.c:185,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11auth.c:185,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 40
    argCount: 2
    argNames:
    - slot
    - pw
    argTypes:
    - PK11SlotInfo*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 189
    functionName: PK11_CheckUserPassword
    functionSourceFile: /src/nss/lib/pk11wrap/pk11auth.c
    functionUses: 2
    functionsReached:
    - PORT_Strlen
    - PR_Now
    - PORT_SetError
    - PK11_GETTAB
    - PK11_EnterSlotMonitor
    - PK11_ExitSlotMonitor
    - PK11_MapError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11_CheckUserPassword(PK11SlotInfo *slot, const char *pw)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11auth.c:197,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11auth.c:198,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11auth.c:200,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11auth.c:202,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11auth.c:202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - slot
    argTypes:
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 191
    functionDepth: 2
    functionLinenumber: 191
    functionLinenumberEnd: 206
    functionName: PK11_Logout
    functionSourceFile: /src/nss/lib/pk11wrap/pk11auth.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    - PK11_GETTAB
    - PK11_EnterSlotMonitor
    - PK11_ExitSlotMonitor
    - PK11_MapError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11_Logout(PK11SlotInfo *slot)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 217
    functionName: PK11_StartAuthTransaction
    functionSourceFile: /src/nss/lib/pk11wrap/pk11auth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK11_StartAuthTransaction(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 224
    functionName: PK11_EndAuthTransaction
    functionSourceFile: /src/nss/lib/pk11wrap/pk11auth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK11_EndAuthTransaction(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetInternalKeySlot
      Src: /src/nss/lib/pk11wrap/pk11auth.c:240,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11auth.c:244,1
    - Dst: PK11_IsLoggedIn
      Src: /src/nss/lib/pk11wrap/pk11auth.c:249,1
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11auth.c:254,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11auth.c:255,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11auth.c:257,1
    - Dst: PK11_DoPassword
      Src: /src/nss/lib/pk11wrap/pk11auth.c:262,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - slot
    - wincx
    argTypes:
    - PK11SlotInfo*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 230
    functionDepth: 3
    functionLinenumber: 230
    functionLinenumberEnd: 264
    functionName: PK11_HandlePasswordCheck
    functionSourceFile: /src/nss/lib/pk11wrap/pk11auth.c
    functionUses: 0
    functionsReached:
    - PK11_GetInternalKeySlot
    - PK11_DoPassword
    - PK11_IsLoggedIn
    - PK11_GETTAB
    - PK11_EnterSlotMonitor
    - PK11_ExitSlotMonitor
    - PK11_FreeSlot
    linkageType: ''
    returnType: void
    signature: void PK11_HandlePasswordCheck(PK11SlotInfo *slot, void *wincx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECMOD_UpdateModule
      Src: /src/nss/lib/pk11wrap/pk11auth.c:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - slot
    argTypes:
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 270
    functionName: PK11_SlotDBUpdate
    functionSourceFile: /src/nss/lib/pk11wrap/pk11auth.c
    functionUses: 0
    functionsReached:
    - SECMOD_UpdateModule
    linkageType: ''
    returnType: void
    signature: void PK11_SlotDBUpdate(PK11SlotInfo *slot)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_SlotDBUpdate
      Src: /src/nss/lib/pk11wrap/pk11auth.c:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - slot
    - askpw
    - timeout
    argTypes:
    - PK11SlotInfo*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 275
    functionDepth: 2
    functionLinenumber: 275
    functionLinenumberEnd: 282
    functionName: PK11_SetSlotPWValues
    functionSourceFile: /src/nss/lib/pk11wrap/pk11auth.c
    functionUses: 0
    functionsReached:
    - PK11_SlotDBUpdate
    linkageType: ''
    returnType: void
    signature: void PK11_SetSlotPWValues(PK11SlotInfo *slot, int askpw, int timeout)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetInternalKeySlot
      Src: /src/nss/lib/pk11wrap/pk11auth.c:294,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11auth.c:299,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - slot
    - askpw
    - timeout
    argTypes:
    - PK11SlotInfo*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 287
    functionDepth: 3
    functionLinenumber: 287
    functionLinenumberEnd: 302
    functionName: PK11_GetSlotPWValues
    functionSourceFile: /src/nss/lib/pk11wrap/pk11auth.c
    functionUses: 0
    functionsReached:
    - PK11_GetInternalKeySlot
    - PK11_FreeSlot
    linkageType: ''
    returnType: void
    signature: void PK11_GetSlotPWValues(PK11SlotInfo *slot, int *askpw, int *timeout)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_IsLoggedIn
      Src: /src/nss/lib/pk11wrap/pk11auth.c:312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - slot
    - wincx
    argTypes:
    - PK11SlotInfo*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 313
    functionName: pk11_LoginStillRequired
    functionSourceFile: /src/nss/lib/pk11wrap/pk11auth.c
    functionUses: 1
    functionsReached:
    - PK11_IsLoggedIn
    linkageType: ''
    returnType: PRBool
    signature: PRBool pk11_LoginStillRequired(PK11SlotInfo *slot, void *wincx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pk11_LoginStillRequired
      Src: /src/nss/lib/pk11wrap/pk11auth.c:325,1
    - Dst: PK11_DoPassword
      Src: /src/nss/lib/pk11wrap/pk11auth.c:326,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - slot
    - loadCerts
    - wincx
    argTypes:
    - PK11SlotInfo*
    - PRBool
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 319
    functionDepth: 2
    functionLinenumber: 319
    functionLinenumberEnd: 330
    functionName: PK11_Authenticate
    functionSourceFile: /src/nss/lib/pk11wrap/pk11auth.c
    functionUses: 28
    functionsReached:
    - pk11_LoginStillRequired
    - PK11_DoPassword
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11_Authenticate(PK11SlotInfo *slot, PRBool loadCerts, void
      *wincx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_IsFriendly
      Src: /src/nss/lib/pk11wrap/pk11auth.c:340,1
    - Dst: PK11_Authenticate
      Src: /src/nss/lib/pk11wrap/pk11auth.c:341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - slot
    - loadCerts
    - wincx
    argTypes:
    - PK11SlotInfo*
    - PRBool
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 336
    functionDepth: 3
    functionLinenumber: 336
    functionLinenumberEnd: 344
    functionName: pk11_AuthenticateUnfriendly
    functionSourceFile: /src/nss/lib/pk11wrap/pk11auth.c
    functionUses: 0
    functionsReached:
    - PK11_IsFriendly
    - PK11_Authenticate
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus pk11_AuthenticateUnfriendly(PK11SlotInfo *slot, PRBool loadCerts,
      void *wincx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetRWSession
      Src: /src/nss/lib/pk11wrap/pk11auth.c:358,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11auth.c:360,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11auth.c:368,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/pk11wrap/pk11auth.c:371,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11auth.c:375,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11auth.c:384,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11auth.c:388,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11auth.c:388,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11auth.c:391,1
    - Dst: PK11_RestoreROSession
      Src: /src/nss/lib/pk11wrap/pk11auth.c:395,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 2
    argNames:
    - slot
    - ssopw
    argTypes:
    - PK11SlotInfo*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 349
    functionDepth: 3
    functionLinenumber: 349
    functionLinenumberEnd: 397
    functionName: PK11_CheckSSOPassword
    functionSourceFile: /src/nss/lib/pk11wrap/pk11auth.c
    functionUses: 0
    functionsReached:
    - PORT_Strlen
    - PK11_GetRWSession
    - PORT_SetError
    - PK11_GETTAB
    - PK11_RestoreROSession
    - PK11_MapError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11_CheckSSOPassword(PK11SlotInfo *slot, char *ssopw)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strlen
      Src: /src/nss/lib/pk11wrap/pk11auth.c:405,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11auth.c:408,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - slot
    - pw
    argTypes:
    - PK11SlotInfo*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 412
    functionName: PK11_VerifyPW
    functionSourceFile: /src/nss/lib/pk11wrap/pk11auth.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PORT_Strlen
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11_VerifyPW(PK11SlotInfo *slot, char *pw)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strlen
      Src: /src/nss/lib/pk11wrap/pk11auth.c:431,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/pk11wrap/pk11auth.c:432,1
    - Dst: PK11_GetRWSession
      Src: /src/nss/lib/pk11wrap/pk11auth.c:435,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11auth.c:437,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11auth.c:450,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11auth.c:454,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11auth.c:454,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11auth.c:458,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11auth.c:460,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11auth.c:460,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11auth.c:466,1
    - Dst: PK11_RestoreROSession
      Src: /src/nss/lib/pk11wrap/pk11auth.c:468,1
    - Dst: PK11_InitToken
      Src: /src/nss/lib/pk11wrap/pk11auth.c:471,1
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11auth.c:473,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11auth.c:474,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11auth.c:477,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 47
    argCount: 3
    argNames:
    - slot
    - ssopw
    - userpw
    argTypes:
    - PK11SlotInfo*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 417
    functionDepth: 4
    functionLinenumber: 417
    functionLinenumberEnd: 481
    functionName: PK11_InitPin
    functionSourceFile: /src/nss/lib/pk11wrap/pk11auth.c
    functionUses: 5
    functionsReached:
    - PORT_Strlen
    - PK11_GetRWSession
    - PORT_SetError
    - PK11_GETTAB
    - PK11_EnterSlotMonitor
    - PK11_RestoreROSession
    - PK11_InitToken
    - PK11_ExitSlotMonitor
    - PK11_MapError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11_InitPin(PK11SlotInfo *slot, const char *ssopw, const
      char *userpw)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strlen
      Src: /src/nss/lib/pk11wrap/pk11auth.c:503,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/pk11wrap/pk11auth.c:505,1
    - Dst: PK11_GetRWSession
      Src: /src/nss/lib/pk11wrap/pk11auth.c:508,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11auth.c:510,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11auth.c:514,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11auth.c:519,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11auth.c:519,1
    - Dst: PK11_RestoreROSession
      Src: /src/nss/lib/pk11wrap/pk11auth.c:522,1
    - Dst: PK11_InitToken
      Src: /src/nss/lib/pk11wrap/pk11auth.c:525,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - slot
    - oldpw
    - newpw
    argTypes:
    - PK11SlotInfo*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 486
    functionDepth: 4
    functionLinenumber: 486
    functionLinenumberEnd: 527
    functionName: PK11_ChangePW
    functionSourceFile: /src/nss/lib/pk11wrap/pk11auth.c
    functionUses: 2
    functionsReached:
    - PORT_Strlen
    - PK11_GetRWSession
    - PORT_SetError
    - PK11_GETTAB
    - PK11_RestoreROSession
    - PK11_InitToken
    - PK11_MapError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11_ChangePW(PK11SlotInfo *slot, const char *oldpw, const
      char *newpw)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - slot
    - retry
    - wincx
    argTypes:
    - PK11SlotInfo*
    - PRBool
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 535
    functionName: pk11_GetPassword
    functionSourceFile: /src/nss/lib/pk11wrap/pk11auth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      pk11_GetPassword(PK11SlotInfo *slot, PRBool retry, void *wincx)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - func
    argTypes:
    - PK11PasswordFunc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 537
    functionDepth: 0
    functionLinenumber: 537
    functionLinenumberEnd: 541
    functionName: PK11_SetPasswordFunc
    functionSourceFile: /src/nss/lib/pk11wrap/pk11auth.c
    functionUses: 24
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK11_SetPasswordFunc(PK11PasswordFunc func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - func
    argTypes:
    - PK11VerifyPasswordFunc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 547
    functionName: PK11_SetVerifyPasswordFunc
    functionSourceFile: /src/nss/lib/pk11wrap/pk11auth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK11_SetVerifyPasswordFunc(PK11VerifyPasswordFunc func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - func
    argTypes:
    - PK11IsLoggedInFunc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 553
    functionName: PK11_SetIsLoggedInFunc
    functionSourceFile: /src/nss/lib/pk11wrap/pk11auth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK11_SetIsLoggedInFunc(PK11IsLoggedInFunc func)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PK11_NeedUserInit
      Src: /src/nss/lib/pk11wrap/pk11auth.c:571,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11auth.c:572,1
    - Dst: PK11_IsLoggedIn
      Src: /src/nss/lib/pk11wrap/pk11auth.c:586,1
    - Dst: verifyPass
      Src: /src/nss/lib/pk11wrap/pk11auth.c:588,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11auth.c:589,1
    - Dst: pk11_GetPassword
      Src: /src/nss/lib/pk11wrap/pk11auth.c:604,1
    - Dst: strcmp
      Src: /src/nss/lib/pk11wrap/pk11auth.c:621,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11auth.c:623,1
    - Dst: strcmp
      Src: /src/nss/lib/pk11wrap/pk11auth.c:627,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11auth.c:629,1
    - Dst: pk11_CheckPassword
      Src: /src/nss/lib/pk11wrap/pk11auth.c:633,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/pk11wrap/pk11auth.c:635,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/pk11wrap/pk11auth.c:635,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11auth.c:636,1
    - Dst: PK11_IsFriendly
      Src: /src/nss/lib/pk11wrap/pk11auth.c:641,1
    - Dst: PK11Slot_GetNSSToken
      Src: /src/nss/lib/pk11wrap/pk11auth.c:642,1
    - Dst: nssTrustDomain_UpdateCachedTokenCerts
      Src: /src/nss/lib/pk11wrap/pk11auth.c:644,1
    - Dst: nssToken_Destroy
      Src: /src/nss/lib/pk11wrap/pk11auth.c:645,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11auth.c:649,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 43
    argCount: 6
    argNames:
    - slot
    - session
    - loadCerts
    - wincx
    - alreadyLocked
    - contextSpecific
    argTypes:
    - PK11SlotInfo*
    - CK_SESSION_HANDLE
    - PRBool
    - void*
    - PRBool
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 562
    functionDepth: 5
    functionLinenumber: 562
    functionLinenumberEnd: 651
    functionName: PK11_DoPassword
    functionSourceFile: /src/nss/lib/pk11wrap/pk11auth.c
    functionUses: 2
    functionsReached:
    - strcmp
    - PK11_IsFriendly
    - nssToken_Destroy
    - PORT_Free
    - PK11_IsLoggedIn
    - PK11_NeedUserInit
    - PORT_Strlen
    - PORT_SetError
    - nssTrustDomain_UpdateCachedTokenCerts
    - pk11_CheckPassword
    - pk11_GetPassword
    - PORT_Memset
    - verifyPass
    - PK11Slot_GetNSSToken
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_DoPassword(PK11SlotInfo *slot, CK_SESSION_HANDLE session,\n
      \               PRBool loadCerts, void *wincx, PRBool alreadyLocked,\n                PRBool
      contextSpecific)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECMOD_GetDefaultModuleListLock
      Src: /src/nss/lib/pk11wrap/pk11auth.c:656,1
    - Dst: SECMOD_GetReadLock
      Src: /src/nss/lib/pk11wrap/pk11auth.c:666,1
    - Dst: SECMOD_GetDefaultModuleList
      Src: /src/nss/lib/pk11wrap/pk11auth.c:667,1
    - Dst: PK11_Logout
      Src: /src/nss/lib/pk11wrap/pk11auth.c:671,1
    - Dst: SECMOD_ReleaseReadLock
      Src: /src/nss/lib/pk11wrap/pk11auth.c:675,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 653
    functionDepth: 3
    functionLinenumber: 653
    functionLinenumberEnd: 676
    functionName: PK11_LogoutAll
    functionSourceFile: /src/nss/lib/pk11wrap/pk11auth.c
    functionUses: 0
    functionsReached:
    - SECMOD_ReleaseReadLock
    - PK11_Logout
    - SECMOD_GetReadLock
    - SECMOD_GetDefaultModuleListLock
    - SECMOD_GetDefaultModuleList
    linkageType: ''
    returnType: void
    signature: void PK11_LogoutAll(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - slot
    argTypes:
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 678
    functionDepth: 0
    functionLinenumber: 678
    functionLinenumberEnd: 682
    functionName: PK11_GetMinimumPwdLength
    functionSourceFile: /src/nss/lib/pk11wrap/pk11auth.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PK11_GetMinimumPwdLength(PK11SlotInfo *slot)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - slot
    argTypes:
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 685
    functionDepth: 0
    functionLinenumber: 685
    functionLinenumberEnd: 689
    functionName: PK11_ProtectedAuthenticationPath
    functionSourceFile: /src/nss/lib/pk11wrap/pk11auth.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool PK11_ProtectedAuthenticationPath(PK11SlotInfo *slot)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PK11_NeedUserInit
      Src: /src/nss/lib/pk11wrap/pk11auth.c:699,1
    - Dst: PK11_NeedUserInit
      Src: /src/nss/lib/pk11wrap/pk11auth.c:702,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - slot
    argTypes:
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 696
    functionDepth: 4
    functionLinenumber: 696
    functionLinenumberEnd: 706
    functionName: PK11_NeedPWInitForSlot
    functionSourceFile: /src/nss/lib/pk11wrap/pk11auth.c
    functionUses: 0
    functionsReached:
    - PK11_NeedUserInit
    linkageType: ''
    returnType: PRBool
    signature: PRBool PK11_NeedPWInitForSlot(PK11SlotInfo *slot)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetInternalKeySlot
      Src: /src/nss/lib/pk11wrap/pk11auth.c:711,1
    - Dst: PK11_NeedPWInitForSlot
      Src: /src/nss/lib/pk11wrap/pk11auth.c:714,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11auth.c:715,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 708
    functionDepth: 5
    functionLinenumber: 708
    functionLinenumberEnd: 718
    functionName: PK11_NeedPWInit
    functionSourceFile: /src/nss/lib/pk11wrap/pk11auth.c
    functionUses: 0
    functionsReached:
    - PK11_GetInternalKeySlot
    - PK11_NeedPWInitForSlot
    - PK11_FreeSlot
    linkageType: ''
    returnType: PRBool
    signature: PRBool PK11_NeedPWInit()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_IntervalNow
      Src: /src/nss/lib/pk11wrap/pk11auth.c:726,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - lastTime
    - delayTime
    - retTime
    argTypes:
    - PRIntervalTime
    - PRIntervalTime
    - PRIntervalTime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 720
    functionDepth: 1
    functionLinenumber: 720
    functionLinenumberEnd: 728
    functionName: pk11_InDelayPeriod
    functionSourceFile: /src/nss/lib/pk11wrap/pk11auth.c
    functionUses: 0
    functionsReached:
    - PR_IntervalNow
    linkageType: ''
    returnType: PRBool
    signature: "PRBool pk11_InDelayPeriod(PRIntervalTime lastTime, PRIntervalTime
      delayTime,\n                   PRIntervalTime *retTime)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PR_SecondsToInterval
      Src: /src/nss/lib/pk11wrap/pk11auth.c:745,1
    - Dst: PK11_GetInternalKeySlot
      Src: /src/nss/lib/pk11wrap/pk11auth.c:751,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11auth.c:756,1
    - Dst: PR_Now
      Src: /src/nss/lib/pk11wrap/pk11auth.c:767,1
    - Dst: LL_I2L
      Src: /src/nss/lib/pk11wrap/pk11auth.c:771,1
    - Dst: LL_I2L
      Src: /src/nss/lib/pk11wrap/pk11auth.c:772,1
    - Dst: LL_MUL
      Src: /src/nss/lib/pk11wrap/pk11auth.c:773,1
    - Dst: LL_ADD
      Src: /src/nss/lib/pk11wrap/pk11auth.c:774,1
    - Dst: LL_CMP
      Src: /src/nss/lib/pk11wrap/pk11auth.c:775,1
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11auth.c:776,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11auth.c:777,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11auth.c:779,1
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11auth.c:785,1
    - Dst: pk11_InDelayPeriod
      Src: /src/nss/lib/pk11wrap/pk11auth.c:786,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11auth.c:790,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11auth.c:796,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 55
    argCount: 2
    argNames:
    - slot
    - wincx
    argTypes:
    - PK11SlotInfo*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 734
    functionDepth: 3
    functionLinenumber: 734
    functionLinenumberEnd: 814
    functionName: PK11_IsLoggedIn
    functionSourceFile: /src/nss/lib/pk11wrap/pk11auth.c
    functionUses: 6
    functionsReached:
    - LL_I2L
    - PK11_GetInternalKeySlot
    - LL_ADD
    - PR_SecondsToInterval
    - LL_MUL
    - pk11_InDelayPeriod
    - PR_Now
    - PK11_GETTAB
    - LL_CMP
    - PK11_EnterSlotMonitor
    - PK11_ExitSlotMonitor
    - PK11_FreeSlot
    linkageType: ''
    returnType: PRBool
    signature: PRBool PK11_IsLoggedIn(PK11SlotInfo *slot, void *wincx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nss_ZNEW
      Src: /src/nss/lib/pk11wrap/dev3hack.c:32,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - arenaOpt
    - session
    - lock
    - rw
    argTypes:
    - NSSArena*
    - CK_SESSION_HANDLE
    - PZLock*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 41
    functionName: nssSession_ImportNSS3Session
    functionSourceFile: /src/nss/lib/pk11wrap/dev3hack.c
    functionUses: 0
    functionsReached:
    - nss_ZNEW
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nnssSession_ImportNSS3Session(NSSArena *arenaOpt,\n
      \                            CK_SESSION_HANDLE session,\n                             PZLock
      *lock, PRBool rw)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nss_ZNEW
      Src: /src/nss/lib/pk11wrap/dev3hack.c:55,1
    - Dst: PK11_GetRWSession
      Src: /src/nss/lib/pk11wrap/dev3hack.c:60,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/pk11wrap/dev3hack.c:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - slot
    - arenaOpt
    - readWrite
    argTypes:
    - NSSSlot*
    - NSSArena*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 43
    functionDepth: 3
    functionLinenumber: 43
    functionLinenumberEnd: 85
    functionName: nssSlot_CreateSession
    functionSourceFile: /src/nss/lib/pk11wrap/dev3hack.c
    functionUses: 0
    functionsReached:
    - nss_ZFreeIf
    - nss_ZNEW
    - PK11_GetRWSession
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nnssSlot_CreateSession(\n    NSSSlot *slot,\n    NSSArena
      *arenaOpt,\n    PRBool readWrite)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PK11_RestoreROSession
      Src: /src/nss/lib/pk11wrap/dev3hack.c:93,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/pk11wrap/dev3hack.c:95,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - nssSession*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 87
    functionDepth: 3
    functionLinenumber: 87
    functionLinenumberEnd: 98
    functionName: nssSession_Destroy
    functionSourceFile: /src/nss/lib/pk11wrap/dev3hack.c
    functionUses: 0
    functionsReached:
    - nss_ZFreeIf
    - PK11_RestoreROSession
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nssSession_Destroy(nssSession *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssArena_Create
      Src: /src/nss/lib/pk11wrap/dev3hack.c:105,1
    - Dst: nss_ZNEW
      Src: /src/nss/lib/pk11wrap/dev3hack.c:109,1
    - Dst: nssArena_Destroy
      Src: /src/nss/lib/pk11wrap/dev3hack.c:111,1
    - Dst: PZ_NewLock
      Src: /src/nss/lib/pk11wrap/dev3hack.c:115,1
    - Dst: PK11_ReferenceSlot
      Src: /src/nss/lib/pk11wrap/dev3hack.c:117,1
    - Dst: nssUTF8_Duplicate
      Src: /src/nss/lib/pk11wrap/dev3hack.c:121,1
    - Dst: PZ_NewLock
      Src: /src/nss/lib/pk11wrap/dev3hack.c:123,1
    - Dst: PR_NewCondVar
      Src: /src/nss/lib/pk11wrap/dev3hack.c:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 2
    argNames:
    - td
    - nss3slot
    argTypes:
    - NSSTrustDomain*
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 128
    functionName: nssSlot_CreateFromPK11SlotInfo
    functionSourceFile: /src/nss/lib/pk11wrap/dev3hack.c
    functionUses: 0
    functionsReached:
    - nssArena_Create
    - PR_NewCondVar
    - nss_ZNEW
    - PK11_ReferenceSlot
    - nssArena_Destroy
    - PZ_NewLock
    - nssUTF8_Duplicate
    linkageType: ''
    returnType: NSSSlot
    signature: 'NSSSlot *

      nssSlot_CreateFromPK11SlotInfo(NSSTrustDomain *td, PK11SlotInfo *nss3slot)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/dev3hack.c:138,1
    - Dst: nssArena_Create
      Src: /src/nss/lib/pk11wrap/dev3hack.c:141,1
    - Dst: nss_ZNEW
      Src: /src/nss/lib/pk11wrap/dev3hack.c:145,1
    - Dst: nssArena_Destroy
      Src: /src/nss/lib/pk11wrap/dev3hack.c:147,1
    - Dst: PZ_NewLock
      Src: /src/nss/lib/pk11wrap/dev3hack.c:151,1
    - Dst: nssArena_Destroy
      Src: /src/nss/lib/pk11wrap/dev3hack.c:153,1
    - Dst: PK11_ReferenceSlot
      Src: /src/nss/lib/pk11wrap/dev3hack.c:157,1
    - Dst: nssSession_ImportNSS3Session
      Src: /src/nss/lib/pk11wrap/dev3hack.c:159,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/dev3hack.c:165,1
    - Dst: PK11_IsInternal
      Src: /src/nss/lib/pk11wrap/dev3hack.c:169,1
    - Dst: PK11_IsHW
      Src: /src/nss/lib/pk11wrap/dev3hack.c:169,1
    - Dst: nssTokenObjectCache_Create
      Src: /src/nss/lib/pk11wrap/dev3hack.c:170,1
    - Dst: nssUTF8_Duplicate
      Src: /src/nss/lib/pk11wrap/dev3hack.c:177,1
    - Dst: nssSlot_CreateFromPK11SlotInfo
      Src: /src/nss/lib/pk11wrap/dev3hack.c:178,1
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/pk11wrap/dev3hack.c:186,1
    - Dst: nssArena_Destroy
      Src: /src/nss/lib/pk11wrap/dev3hack.c:187,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 50
    argCount: 2
    argNames:
    - td
    - nss3slot
    argTypes:
    - NSSTrustDomain*
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 130
    functionDepth: 3
    functionLinenumber: 130
    functionLinenumberEnd: 189
    functionName: nssToken_CreateFromPK11SlotInfo
    functionSourceFile: /src/nss/lib/pk11wrap/dev3hack.c
    functionUses: 1
    functionsReached:
    - nssArena_Create
    - PK11_IsHW
    - nssSession_ImportNSS3Session
    - nss_ZNEW
    - PZ_DestroyLock
    - PORT_SetError
    - nssTokenObjectCache_Create
    - nssSlot_CreateFromPK11SlotInfo
    - PK11_ReferenceSlot
    - nssArena_Destroy
    - PZ_NewLock
    - nssUTF8_Duplicate
    - PK11_IsInternal
    linkageType: ''
    returnType: NSSToken
    signature: 'NSSToken *

      nssToken_CreateFromPK11SlotInfo(NSSTrustDomain *td, PK11SlotInfo *nss3slot)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssUTF8_Duplicate
      Src: /src/nss/lib/pk11wrap/dev3hack.c:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - token
    argTypes:
    - NSSToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 198
    functionName: nssToken_UpdateName
    functionSourceFile: /src/nss/lib/pk11wrap/dev3hack.c
    functionUses: 1
    functionsReached:
    - nssUTF8_Duplicate
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nssToken_UpdateName(NSSToken *token)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - slot
    argTypes:
    - NSSSlot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 204
    functionName: nssSlot_IsPermanent
    functionSourceFile: /src/nss/lib/pk11wrap/dev3hack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nssSlot_IsPermanent(NSSSlot *slot)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_IsFriendly
      Src: /src/nss/lib/pk11wrap/dev3hack.c:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - slot
    argTypes:
    - NSSSlot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 210
    functionName: nssSlot_IsFriendly
    functionSourceFile: /src/nss/lib/pk11wrap/dev3hack.c
    functionUses: 0
    functionsReached:
    - PK11_IsFriendly
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nssSlot_IsFriendly(NSSSlot *slot)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssSession_ImportNSS3Session
      Src: /src/nss/lib/pk11wrap/dev3hack.c:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - token
    argTypes:
    - NSSToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 227
    functionName: nssToken_Refresh
    functionSourceFile: /src/nss/lib/pk11wrap/dev3hack.c
    functionUses: 1
    functionsReached:
    - nssSession_ImportNSS3Session
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nssToken_Refresh(NSSToken *token)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetModule
      Src: /src/nss/lib/pk11wrap/dev3hack.c:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tok
    argTypes:
    - NSSToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 237
    functionName: nssToken_GetTrustOrder
    functionSourceFile: /src/nss/lib/pk11wrap/dev3hack.c
    functionUses: 1
    functionsReached:
    - PK11_GetModule
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nssToken_GetTrustOrder(NSSToken *tok)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_IsLoggedIn
      Src: /src/nss/lib/pk11wrap/dev3hack.c:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - slot
    argTypes:
    - NSSSlot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 239
    functionDepth: 4
    functionLinenumber: 239
    functionLinenumberEnd: 246
    functionName: nssSlot_IsLoggedIn
    functionSourceFile: /src/nss/lib/pk11wrap/dev3hack.c
    functionUses: 0
    functionsReached:
    - PK11_IsLoggedIn
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nssSlot_IsLoggedIn(NSSSlot *slot)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - token
    argTypes:
    - NSSToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 252
    functionName: nssToken_GetTrustDomain
    functionSourceFile: /src/nss/lib/pk11wrap/dev3hack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSSTrustDomain
    signature: 'NSSTrustDomain *

      nssToken_GetTrustDomain(NSSToken *token)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssTrustDomain_RemoveTokenCertsFromCache
      Src: /src/nss/lib/pk11wrap/dev3hack.c:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tok
    argTypes:
    - NSSToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 259
    functionDepth: 6
    functionLinenumber: 259
    functionLinenumberEnd: 264
    functionName: nssToken_NotifyCertsNotVisible
    functionSourceFile: /src/nss/lib/pk11wrap/dev3hack.c
    functionUses: 1
    functionsReached:
    - nssTrustDomain_RemoveTokenCertsFromCache
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssToken_NotifyCertsNotVisible(\n    NSSToken *tok)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssTrust_HandleTrustForCERTCert
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - slot
    - cert
    - trust
    argTypes:
    - PK11SlotInfo*
    - CERTCertificate*
    - CERTCertTrust*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 36
    functionDepth: 4
    functionLinenumber: 36
    functionLinenumberEnd: 40
    functionName: pk11_HandleTrustObject
    functionSourceFile: /src/nss/lib/pk11wrap/pk11nobj.c
    functionUses: 0
    functionsReached:
    - nssTrust_HandleTrustForCERTCert
    linkageType: ''
    returnType: PRBool
    signature: PRBool pk11_HandleTrustObject(PK11SlotInfo *slot, CERTCertificate *cert,
      CERTCertTrust *trust)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetAttributes
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:57,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:59,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:59,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:64,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:68,1
    - Dst: CERT_DecodeDERCrl
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:81,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:88,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:92,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 50
    argCount: 3
    argNames:
    - slot
    - crlID
    - arg
    argTypes:
    - PK11SlotInfo*
    - CK_OBJECT_HANDLE
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 109
    functionName: pk11_CollectCrls
    functionSourceFile: /src/nss/lib/pk11wrap/pk11nobj.c
    functionUses: 0
    functionsReached:
    - PORT_Memcpy
    - CERT_DecodeDERCrl
    - PORT_ArenaAlloc
    - PORT_SetError
    - PK11_GetAttributes
    - PK11_MapError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus pk11_CollectCrls(PK11SlotInfo *slot, CK_OBJECT_HANDLE crlID,
      void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:125,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:129,1
    - Dst: pk11_TraverseAllSlots
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - nodes
    - type
    - wincx
    argTypes:
    - CERTCrlHeadNode*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 139
    functionName: PK11_LookupCrls
    functionSourceFile: /src/nss/lib/pk11wrap/pk11nobj.c
    functionUses: 0
    functionsReached:
    - pk11_TraverseAllSlots
    - PK11_SETATTRS
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11_LookupCrls(CERTCrlHeadNode *nodes, int type, void *wincx)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetAttributes
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:168,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:170,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:170,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:176,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:180,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:188,1
    - Dst: CERT_DecodeDERCrlWithFlags
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:195,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:206,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:211,1
    - Dst: PK11_ReferenceSlot
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:225,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:232,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:237,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:244,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 69
    argCount: 3
    argNames:
    - slot
    - crlID
    - arg
    argTypes:
    - PK11SlotInfo*
    - CK_OBJECT_HANDLE
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 247
    functionName: pk11_RetrieveCrlsCallback
    functionSourceFile: /src/nss/lib/pk11wrap/pk11nobj.c
    functionUses: 0
    functionsReached:
    - PORT_Memcpy
    - CERT_DecodeDERCrlWithFlags
    - PORT_ArenaAlloc
    - PORT_Free
    - SECITEM_AllocItem
    - PORT_SetError
    - PK11_ReferenceSlot
    - PK11_GetAttributes
    - PK11_MapError
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus pk11_RetrieveCrlsCallback(PK11SlotInfo *slot, CK_OBJECT_HANDLE
      crlID,\n                          void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:266,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:281,1
    - Dst: pk11_TraverseAllSlots
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - nodes
    - issuer
    - wincx
    argTypes:
    - CERTCrlHeadNode*
    - SECItem*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 291
    functionName: pk11_RetrieveCrls
    functionSourceFile: /src/nss/lib/pk11wrap/pk11nobj.c
    functionUses: 0
    functionsReached:
    - pk11_TraverseAllSlots
    - PK11_SETATTRS
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus pk11_RetrieveCrls(CERTCrlHeadNode *nodes, SECItem *issuer,\n
      \                 void *wincx)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: STAN_GetDefaultTrustDomain
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:303,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:306,1
    - Dst: NSSITEM_FROM_SECITEM
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:307,1
    - Dst: PK11Slot_GetNSSToken
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:312,1
    - Dst: nssCRLCollection_Create
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:316,1
    - Dst: nssToken_Destroy
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:318,1
    - Dst: nssToken_FindCRLsBySubject
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:321,1
    - Dst: nssToken_Destroy
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:323,1
    - Dst: nssPKIObjectCollection_AddInstances
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:324,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:325,1
    - Dst: nssPKIObjectCollection_GetCRLs
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:326,1
    - Dst: nssPKIObjectCollection_Destroy
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:327,1
    - Dst: nssTrustDomain_FindCRLsBySubject
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:329,1
    - Dst: nssCRLArray_Destroy
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:333,1
    - Dst: NSS_GetError
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:335,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:336,1
    - Dst: nssCRL_AddRef
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:343,1
    - Dst: nssCRLArray_Destroy
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:347,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:351,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:355,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:360,1
    - Dst: memcpy
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:364,1
    - Dst: PK11_ReferenceSlot
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:365,1
    - Dst: nssCRL_Destroy
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:368,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:373,1
    - Dst: nssCRL_Destroy
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:375,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:376,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:377,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 73
    argCount: 5
    argNames:
    - slot
    - crlHandle
    - name
    - type
    - pUrl
    argTypes:
    - PK11SlotInfo**
    - CK_OBJECT_HANDLE*
    - SECItem*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 296
    functionDepth: 6
    functionLinenumber: 296
    functionLinenumberEnd: 380
    functionName: PK11_FindCrlByName
    functionSourceFile: /src/nss/lib/pk11wrap/pk11nobj.c
    functionUses: 0
    functionsReached:
    - STAN_GetDefaultTrustDomain
    - NSSITEM_FROM_SECITEM
    - nssPKIObjectCollection_AddInstances
    - nss_ZFreeIf
    - nssTrustDomain_FindCRLsBySubject
    - memcpy
    - nssToken_FindCRLsBySubject
    - nssToken_Destroy
    - nssPKIObjectCollection_Destroy
    - nssCRLCollection_Create
    - PORT_SetError
    - PK11_ReferenceSlot
    - PK11Slot_GetNSSToken
    - nssCRLArray_Destroy
    - SECITEM_AllocItem
    - nssCRL_Destroy
    - nssCRL_AddRef
    - NSS_GetError
    - PORT_Free
    - PORT_GetError
    - nssPKIObjectCollection_GetCRLs
    - PORT_Strdup
    linkageType: ''
    returnType: SECItem
    signature: "SECItem *\nPK11_FindCrlByName(PK11SlotInfo **slot, CK_OBJECT_HANDLE
      *crlHandle,\n                   SECItem *name, int type, char **pUrl)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NSSITEM_FROM_SECITEM
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:392,1
    - Dst: NSSITEM_FROM_SECITEM
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:393,1
    - Dst: PK11Slot_GetNSSToken
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:394,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:396,1
    - Dst: nssToken_ImportCRL
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:399,1
    - Dst: nssToken_Destroy
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:401,1
    - Dst: nssCryptokiObject_Destroy
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:405,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:408,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 5
    argNames:
    - slot
    - crl
    - name
    - url
    - type
    argTypes:
    - PK11SlotInfo*
    - SECItem*
    - SECItem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 382
    functionDepth: 2
    functionLinenumber: 382
    functionLinenumberEnd: 411
    functionName: PK11_PutCrl
    functionSourceFile: /src/nss/lib/pk11wrap/pk11nobj.c
    functionUses: 0
    functionsReached:
    - nssToken_Destroy
    - NSSITEM_FROM_SECITEM
    - nssToken_ImportCRL
    - PORT_SetError
    - nssCryptokiObject_Destroy
    - PK11Slot_GetNSSToken
    linkageType: ''
    returnType: CK_OBJECT_HANDLE
    signature: "CK_OBJECT_HANDLE PK11_PutCrl(PK11SlotInfo *slot, SECItem *crl, SECItem
      *name,\n            char *url, int type)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:425,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:427,1
    - Dst: PK11Slot_GetNSSToken
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:431,1
    - Dst: nss_ZNEW
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:435,1
    - Dst: nssToken_Destroy
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:437,1
    - Dst: nssToken_DeleteStoredObject
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:444,1
    - Dst: nssCryptokiObject_Destroy
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:446,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - crl
    argTypes:
    - CERTSignedCrl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 416
    functionDepth: 2
    functionLinenumber: 416
    functionLinenumberEnd: 448
    functionName: SEC_DeletePermCRL
    functionSourceFile: /src/nss/lib/pk11wrap/pk11nobj.c
    functionUses: 2
    functionsReached:
    - PORT_Assert
    - nssToken_Destroy
    - nss_ZNEW
    - PORT_SetError
    - nssCryptokiObject_Destroy
    - PK11Slot_GetNSSToken
    - nssToken_DeleteStoredObject
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SEC_DeletePermCRL(CERTSignedCrl *crl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:461,1
    - Dst: pk11_FindObjectByTemplate
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:463,1
    - Dst: pk11_FindObjectByTemplate
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:471,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - slot
    - theTemplate
    - tsize
    argTypes:
    - PK11SlotInfo*
    - CK_ATTRIBUTE*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 476
    functionName: pk11_FindSMimeObjectByTemplate
    functionSourceFile: /src/nss/lib/pk11wrap/pk11nobj.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - pk11_FindObjectByTemplate
    linkageType: ''
    returnType: CK_OBJECT_HANDLE
    signature: "CK_OBJECT_HANDLE pk11_FindSMimeObjectByTemplate(PK11SlotInfo *slot,\n
      \                              CK_ATTRIBUTE *theTemplate, size_t tsize)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:503,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:507,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:509,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:511,1
    - Dst: strlen
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:511,1
    - Dst: pk11_FindSMimeObjectByTemplate
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:515,1
    - Dst: PK11_GetAllTokens
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:517,1
    - Dst: pk11_FindSMimeObjectByTemplate
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:526,1
    - Dst: PK11_ReferenceSlot
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:528,1
    - Dst: PK11_FreeSlotList
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:532,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:536,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:541,1
    - Dst: PK11_GetAttributes
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:544,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:546,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:546,1
    - Dst: SECITEM_ItemsAreEqual
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:555,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:560,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:569,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:579,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:584,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 74
    argCount: 4
    argNames:
    - slot
    - emailAddr
    - name
    - profileTime
    argTypes:
    - PK11SlotInfo**
    - char*
    - SECItem*
    - SECItem**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 481
    functionDepth: 6
    functionLinenumber: 481
    functionLinenumberEnd: 588
    functionName: PK11_FindSMimeProfile
    functionSourceFile: /src/nss/lib/pk11wrap/pk11nobj.c
    functionUses: 0
    functionsReached:
    - PK11_FreeSlotList
    - PK11_GetAllTokens
    - SECITEM_ItemsAreEqual
    - PORT_Free
    - pk11_FindSMimeObjectByTemplate
    - PORT_ZAlloc
    - PORT_SetError
    - PK11_SETATTRS
    - PK11_ReferenceSlot
    - PK11_GetAttributes
    - PK11_MapError
    - strlen
    linkageType: ''
    returnType: SECItem
    signature: "SECItem *\nPK11_FindSMimeProfile(PK11SlotInfo **slot, char *emailAddr,\n
      \                     SECItem *name, SECItem **profileTime)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:615,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:617,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:619,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:621,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:622,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:625,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:628,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:633,1
    - Dst: PK11_GetInternalKeySlot
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:636,1
    - Dst: PK11_GetRWSession
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:640,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:642,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:644,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:649,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:651,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:651,1
    - Dst: PK11_RestoreROSession
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:654,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:657,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 37
    argCount: 5
    argNames:
    - slot
    - emailAddr
    - derSubj
    - emailProfile
    - profileTime
    argTypes:
    - PK11SlotInfo*
    - char*
    - SECItem*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 590
    functionDepth: 3
    functionLinenumber: 590
    functionLinenumberEnd: 660
    functionName: PK11_SaveSMimeProfile
    functionSourceFile: /src/nss/lib/pk11wrap/pk11nobj.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PK11_GetInternalKeySlot
    - PORT_Strlen
    - PK11_GetRWSession
    - PORT_SetError
    - PK11_GETTAB
    - PK11_SETATTRS
    - PK11_RestoreROSession
    - PK11_MapError
    - PK11_FreeSlot
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_SaveSMimeProfile(PK11SlotInfo *slot, char *emailAddr,
      SECItem *derSubj,\n                      SECItem *emailProfile, SECItem *profileTime)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: CERT_DecodeDERCrlWithFlags
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:679,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:684,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:685,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:687,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:693,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:694,1
    - Dst: CERT_FindCertByName
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:695,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:698,1
    - Dst: CERT_CheckCertUsage
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:704,1
    - Dst: CERT_VerifySignedData
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:709,1
    - Dst: PR_Now
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:710,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:713,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:715,1
    - Dst: crl_storeCRL
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:721,1
    - Dst: SEC_DestroyCrl
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:726,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/pk11wrap/pk11nobj.c:729,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 8
    argNames:
    - slot
    - derCRL
    - url
    - type
    - wincx
    - importOptions
    - arena
    - decodeoptions
    argTypes:
    - PK11SlotInfo*
    - SECItem*
    - char*
    - int
    - void*
    - PRInt32
    - PLArenaPool*
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 667
    functionDepth: 1
    functionLinenumber: 667
    functionLinenumberEnd: 732
    functionName: PK11_ImportCRL
    functionSourceFile: /src/nss/lib/pk11wrap/pk11nobj.c
    functionUses: 2
    functionsReached:
    - CERT_DecodeDERCrlWithFlags
    - CERT_CheckCertUsage
    - PORT_GetError
    - PR_ASSERT
    - PR_Now
    - PORT_SetError
    - CERT_FindCertByName
    - CERT_GetDefaultCertDB
    - CERT_VerifySignedData
    - SEC_DestroyCrl
    - CERT_DestroyCertificate
    - crl_storeCRL
    linkageType: ''
    returnType: CERTSignedCrl
    signature: "CERTSignedCrl *\nPK11_ImportCRL(PK11SlotInfo *slot, SECItem *derCRL,
      char *url,\n               int type, void *wincx, PRInt32 importOptions, PLArenaPool
      *arena,\n               PRInt32 decodeoptions)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - type
    argTypes:
    - CK_MECHANISM_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 83
    functionName: pk11_lookup
    functionSourceFile: /src/nss/lib/pk11wrap/pk11mech.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pk11MechanismData
    signature: 'pk11MechanismData *

      pk11_lookup(CK_MECHANISM_TYPE type)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_DoesMechanism
      Src: /src/nss/lib/pk11wrap/pk11mech.c:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - slot
    argTypes:
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 98
    functionName: PK11_GetBestWrapMechanism
    functionSourceFile: /src/nss/lib/pk11wrap/pk11mech.c
    functionUses: 0
    functionsReached:
    - PK11_DoesMechanism
    linkageType: ''
    returnType: CK_MECHANISM_TYPE
    signature: CK_MECHANISM_TYPE PK11_GetBestWrapMechanism(PK11SlotInfo *slot)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArray
      Src: /src/nss/lib/pk11wrap/pk11mech.c:123,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11mech.c:128,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11mech.c:143,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 6
    argNames:
    - type
    - key
    - keyGen
    - padType
    - ivLen
    - blockSize
    argTypes:
    - CK_MECHANISM_TYPE
    - CK_KEY_TYPE
    - CK_MECHANISM_TYPE
    - CK_MECHANISM_TYPE
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 144
    functionName: PK11_AddMechanismEntry
    functionSourceFile: /src/nss/lib/pk11wrap/pk11mech.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - PORT_NewArray
    - PORT_Memcpy
    linkageType: ''
    returnType: void
    signature: "void PK11_AddMechanismEntry(CK_MECHANISM_TYPE type, CK_KEY_TYPE key,\n
      \                      CK_MECHANISM_TYPE keyGen,\n                       CK_MECHANISM_TYPE
      padType,\n                       int ivLen, int blockSize)"
  - BBCount: 29
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 58
    argCount: 1
    argNames:
    - type
    argTypes:
    - CK_KEY_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 209
    functionName: PK11_GetKeyMechanism
    functionSourceFile: /src/nss/lib/pk11wrap/pk11mech.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: CK_MECHANISM_TYPE
    signature: CK_MECHANISM_TYPE PK11_GetKeyMechanism(CK_KEY_TYPE type)
  - BBCount: 190
    BranchProfiles: []
    Callsites:
    - Dst: pk11_lookup
      Src: /src/nss/lib/pk11wrap/pk11mech.c:437,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 223
    argCount: 2
    argNames:
    - type
    - len
    argTypes:
    - CK_MECHANISM_TYPE
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 439
    functionName: PK11_GetKeyType
    functionSourceFile: /src/nss/lib/pk11wrap/pk11mech.c
    functionUses: 2
    functionsReached:
    - pk11_lookup
    linkageType: ''
    returnType: CK_KEY_TYPE
    signature: CK_KEY_TYPE PK11_GetKeyType(CK_MECHANISM_TYPE type, unsigned long len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetKeyGenWithSize
      Src: /src/nss/lib/pk11wrap/pk11mech.c:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - CK_MECHANISM_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 449
    functionName: PK11_GetKeyGen
    functionSourceFile: /src/nss/lib/pk11wrap/pk11mech.c
    functionUses: 0
    functionsReached:
    - PK11_GetKeyGenWithSize
    linkageType: ''
    returnType: CK_MECHANISM_TYPE
    signature: CK_MECHANISM_TYPE PK11_GetKeyGen(CK_MECHANISM_TYPE type)
  - BBCount: 186
    BranchProfiles: []
    Callsites:
    - Dst: pk11_lookup
      Src: /src/nss/lib/pk11wrap/pk11mech.c:670,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 219
    argCount: 2
    argNames:
    - type
    - size
    argTypes:
    - CK_MECHANISM_TYPE
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 672
    functionName: PK11_GetKeyGenWithSize
    functionSourceFile: /src/nss/lib/pk11wrap/pk11mech.c
    functionUses: 1
    functionsReached:
    - pk11_lookup
    linkageType: ''
    returnType: CK_MECHANISM_TYPE
    signature: CK_MECHANISM_TYPE PK11_GetKeyGenWithSize(CK_MECHANISM_TYPE type, int
      size)
  - BBCount: 76
    BranchProfiles: []
    Callsites:
    - Dst: pk11_lookup
      Src: /src/nss/lib/pk11wrap/pk11mech.c:774,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 94
    argCount: 2
    argNames:
    - type
    - params
    argTypes:
    - CK_MECHANISM_TYPE
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 677
    functionDepth: 1
    functionLinenumber: 677
    functionLinenumberEnd: 776
    functionName: PK11_GetBlockSize
    functionSourceFile: /src/nss/lib/pk11wrap/pk11mech.c
    functionUses: 3
    functionsReached:
    - pk11_lookup
    linkageType: ''
    returnType: int
    signature: int PK11_GetBlockSize(CK_MECHANISM_TYPE type, SECItem *params)
  - BBCount: 77
    BranchProfiles: []
    Callsites:
    - Dst: pk11_lookup
      Src: /src/nss/lib/pk11wrap/pk11mech.c:867,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 86
    argCount: 1
    argNames:
    - type
    argTypes:
    - CK_MECHANISM_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 781
    functionDepth: 1
    functionLinenumber: 781
    functionLinenumberEnd: 869
    functionName: PK11_GetIVLength
    functionSourceFile: /src/nss/lib/pk11wrap/pk11mech.c
    functionUses: 0
    functionsReached:
    - pk11_lookup
    linkageType: ''
    returnType: int
    signature: int PK11_GetIVLength(CK_MECHANISM_TYPE type)
  - BBCount: 70
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Alloc
      Src: /src/nss/lib/pk11wrap/pk11mech.c:884,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/pk11wrap/pk11mech.c:907,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/pk11wrap/pk11mech.c:917,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11mech.c:923,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/pk11wrap/pk11mech.c:930,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11mech.c:935,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/pk11wrap/pk11mech.c:948,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/pk11wrap/pk11mech.c:998,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1000,1
    - Dst: pk11_lookup
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1006,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1012,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1014,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 132
    argCount: 3
    argNames:
    - type
    - iv
    - keyLen
    argTypes:
    - CK_MECHANISM_TYPE
    - SECItem*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 875
    functionDepth: 1
    functionLinenumber: 875
    functionLinenumberEnd: 1020
    functionName: pk11_ParamFromIVWithLen
    functionSourceFile: /src/nss/lib/pk11wrap/pk11mech.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_Memcpy
    - pk11_lookup
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      pk11_ParamFromIVWithLen(CK_MECHANISM_TYPE type, SECItem *iv, int keyLen)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pk11_ParamFromIVWithLen
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1029,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - iv
    argTypes:
    - CK_MECHANISM_TYPE
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1030
      start: 1026
    functionDepth: 2
    functionLinenumber: 1026
    functionLinenumberEnd: 1030
    functionName: PK11_ParamFromIV
    functionSourceFile: /src/nss/lib/pk11wrap/pk11mech.c
    functionUses: 0
    functionsReached:
    - pk11_ParamFromIVWithLen
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      PK11_ParamFromIV(CK_MECHANISM_TYPE type, SECItem *iv)'
  - BBCount: 57
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 73
    argCount: 3
    argNames:
    - type
    - param
    - len
    argTypes:
    - CK_MECHANISM_TYPE
    - SECItem*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1032
    functionDepth: 0
    functionLinenumber: 1032
    functionLinenumberEnd: 1111
    functionName: PK11_IVFromParam
    functionSourceFile: /src/nss/lib/pk11wrap/pk11mech.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: 'unsigned char *

      PK11_IVFromParam(CK_MECHANISM_TYPE type, SECItem *param, int *len)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DER_GetInteger
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - version
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1188
      start: 1172
    functionDepth: 0
    functionLinenumber: 1172
    functionLinenumberEnd: 1188
    functionName: rc2_map
    functionSourceFile: /src/nss/lib/pk11wrap/pk11mech.c
    functionUses: 0
    functionsReached:
    - DER_GetInteger
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char rc2_map(SECItem *version)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - x
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1202
      start: 1190
    functionDepth: 0
    functionLinenumber: 1190
    functionLinenumberEnd: 1202
    functionName: rc2_unmap
    functionSourceFile: /src/nss/lib/pk11wrap/pk11mech.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long rc2_unmap(unsigned long x)
  - BBCount: 87
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1222,1
    - Dst: PK11_AlgtagToMechanism
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1223,1
    - Dst: PORT_New
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1225,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1233,1
    - Dst: SEC_ASN1DecodeItem
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1241,1
    - Dst: PORT_New
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1246,1
    - Dst: rc2_map
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1250,1
    - Dst: SEC_ASN1DecodeItem
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1256,1
    - Dst: PORT_New
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1261,1
    - Dst: rc2_map
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1267,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1269,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1272,1
    - Dst: SEC_ASN1DecodeItem
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1275,1
    - Dst: PORT_New
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1280,1
    - Dst: DER_GetInteger
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1284,1
    - Dst: DER_GetInteger
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1285,1
    - Dst: SEC_ASN1DecodeItem
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1291,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1297,1
    - Dst: DER_GetInteger
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1303,1
    - Dst: DER_GetInteger
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1304,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1307,1
    - Dst: pbe_PK11AlgidToParam
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1325,1
    - Dst: pk11_lookup
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1344,1
    - Dst: SEC_ASN1DecodeItem
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1385,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1386,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1392,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1396,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1400,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1405,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1406,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 185
    argCount: 1
    argNames:
    - algid
    argTypes:
    - SECAlgorithmID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1408
      start: 1205
    functionDepth: 1
    functionLinenumber: 1205
    functionLinenumberEnd: 1408
    functionName: PK11_ParamFromAlgid
    functionSourceFile: /src/nss/lib/pk11wrap/pk11mech.c
    functionUses: 1
    functionsReached:
    - PORT_Alloc
    - pk11_lookup
    - PORT_Memcpy
    - PORT_NewArena
    - SECOID_GetAlgorithmTag
    - PORT_FreeArena
    - PK11_AlgtagToMechanism
    - SEC_ASN1DecodeItem
    - PORT_SetError
    - rc2_map
    - PORT_New
    - SECITEM_FreeItem
    - SEC_ASN1_GET
    - pbe_PK11AlgidToParam
    - DER_GetInteger
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      PK11_ParamFromAlgid(SECAlgorithmID *algid)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetIVLength
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1416,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1425,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1431,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1433,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - type
    - iv
    argTypes:
    - CK_MECHANISM_TYPE
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1439
      start: 1413
    functionDepth: 9
    functionLinenumber: 1413
    functionLinenumberEnd: 1439
    functionName: pk11_GenIV
    functionSourceFile: /src/nss/lib/pk11wrap/pk11mech.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_Free
    - PK11_GenerateRandom
    - PK11_GetIVLength
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus pk11_GenIV(CK_MECHANISM_TYPE type, SECItem *iv)
  - BBCount: 63
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Alloc
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1454,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1476,1
    - Dst: pk11_GenIV
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1489,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1493,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1495,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1503,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1506,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1509,1
    - Dst: PK11_ParamFromIV
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1510,1
    - Dst: pk11_GenIV
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1513,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1517,1
    - Dst: PK11_ParamFromIV
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1518,1
    - Dst: pk11_lookup
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1520,1
    - Dst: pk11_GenIV
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1556,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1560,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1562,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1567,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1570,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1574,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 120
    argCount: 2
    argNames:
    - type
    - keyLen
    argTypes:
    - CK_MECHANISM_TYPE
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1578
      start: 1445
    functionDepth: 10
    functionLinenumber: 1445
    functionLinenumberEnd: 1578
    functionName: pk11_GenerateNewParamWithKeyLen
    functionSourceFile: /src/nss/lib/pk11wrap/pk11mech.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - pk11_lookup
    - PORT_Memcpy
    - PORT_Free
    - pk11_GenIV
    - PK11_ParamFromIV
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      pk11_GenerateNewParamWithKeyLen(CK_MECHANISM_TYPE type, int keyLen)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetKeyLength
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1583,1
    - Dst: pk11_GenerateNewParamWithKeyLen
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - key
    argTypes:
    - CK_MECHANISM_TYPE
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1586
      start: 1580
    functionDepth: 11
    functionLinenumber: 1580
    functionLinenumberEnd: 1586
    functionName: PK11_GenerateNewParam
    functionSourceFile: /src/nss/lib/pk11wrap/pk11mech.c
    functionUses: 2
    functionsReached:
    - pk11_GenerateNewParamWithKeyLen
    - PK11_GetKeyLength
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      PK11_GenerateNewParam(CK_MECHANISM_TYPE type, PK11SymKey *key)'
  - BBCount: 78
    BranchProfiles: []
    Callsites:
    - Dst: PK11_AlgtagToMechanism
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1599,1
    - Dst: rc2_unmap
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1624,1
    - Dst: SEC_ASN1EncodeUnsignedInteger
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1625,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1630,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1632,1
    - Dst: SEC_ASN1EncodeUnsignedInteger
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1643,1
    - Dst: SEC_ASN1EncodeUnsignedInteger
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1645,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1647,1
    - Dst: SEC_ASN1EncodeUnsignedInteger
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1650,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1652,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1653,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1658,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1660,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1661,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1662,1
    - Dst: PBE_PK11ParamToAlgid
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1682,1
    - Dst: pk11_lookup
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1684,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1723,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1724,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1741,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1745,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1746,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 131
    argCount: 4
    argNames:
    - algTag
    - param
    - arena
    - algid
    argTypes:
    - SECOidTag
    - SECItem*
    - PLArenaPool*
    - SECAlgorithmID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1748
      start: 1591
    functionDepth: 1
    functionLinenumber: 1591
    functionLinenumberEnd: 1748
    functionName: PK11_ParamToAlgid
    functionSourceFile: /src/nss/lib/pk11wrap/pk11mech.c
    functionUses: 1
    functionsReached:
    - pk11_lookup
    - SEC_ASN1EncodeItem
    - PORT_Free
    - SEC_ASN1EncodeUnsignedInteger
    - PBE_PK11ParamToAlgid
    - rc2_unmap
    - PK11_AlgtagToMechanism
    - SECOID_SetAlgorithmID
    - SEC_ASN1_GET
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_ParamToAlgid(SECOidTag algTag, SECItem *param,\n                  PLArenaPool
      *arena, SECAlgorithmID *algid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1756,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - algTag
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1761
      start: 1753
    functionDepth: 0
    functionLinenumber: 1753
    functionLinenumberEnd: 1761
    functionName: PK11_AlgtagToMechanism
    functionSourceFile: /src/nss/lib/pk11wrap/pk11mech.c
    functionUses: 6
    functionsReached:
    - SECOID_FindOIDByTag
    linkageType: ''
    returnType: CK_MECHANISM_TYPE
    signature: CK_MECHANISM_TYPE PK11_AlgtagToMechanism(SECOidTag algTag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOIDByMechanism
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1767,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - type
    argTypes:
    - CK_MECHANISM_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1772
      start: 1764
    functionDepth: 1
    functionLinenumber: 1764
    functionLinenumberEnd: 1772
    functionName: PK11_MechanismToAlgtag
    functionSourceFile: /src/nss/lib/pk11wrap/pk11mech.c
    functionUses: 0
    functionsReached:
    - SECOID_FindOIDByMechanism
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag PK11_MechanismToAlgtag(CK_MECHANISM_TYPE type)
  - BBCount: 14
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 1
    argNames:
    - type
    argTypes:
    - CK_MECHANISM_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1811
      start: 1778
    functionDepth: 0
    functionLinenumber: 1778
    functionLinenumberEnd: 1811
    functionName: PK11_GetPadMechanism
    functionSourceFile: /src/nss/lib/pk11wrap/pk11mech.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: CK_MECHANISM_TYPE
    signature: CK_MECHANISM_TYPE PK11_GetPadMechanism(CK_MECHANISM_TYPE type)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1822
      start: 1813
    functionDepth: 0
    functionLinenumber: 1813
    functionLinenumberEnd: 1822
    functionName: pk11_isAllZero
    functionSourceFile: /src/nss/lib/pk11wrap/pk11mech.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool pk11_isAllZero(unsigned char *data, int len)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetIVLength
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1847,1
    - Dst: pk11_isAllZero
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1850,1
    - Dst: PK11_GetInternalSlot
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1853,1
    - Dst: PK11_RawPBEKeyGen
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1862,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1864,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1868,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1884,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1889,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1911,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11mech.c:1916,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 76
    argCount: 4
    argNames:
    - pPBEMechanism
    - pCryptoMechanism
    - pbe_pwd
    - faulty3DES
    argTypes:
    - CK_MECHANISM_PTR
    - CK_MECHANISM_PTR
    - SECItem*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1926
      start: 1824
    functionDepth: 4
    functionLinenumber: 1824
    functionLinenumberEnd: 1926
    functionName: PK11_MapPBEMechanismToCryptoMechanism
    functionSourceFile: /src/nss/lib/pk11wrap/pk11mech.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PK11_RawPBEKeyGen
    - PORT_Memcpy
    - PORT_ZAlloc
    - PK11_GetIVLength
    - pk11_isAllZero
    - PK11_GetInternalSlot
    - PK11_FreeSlot
    - PK11_FreeSymKey
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV PK11_MapPBEMechanismToCryptoMechanism(CK_MECHANISM_PTR pPBEMechanism,\n
      \                                     CK_MECHANISM_PTR pCryptoMechanism,\n                                      SECItem
      *pbe_pwd, PRBool faulty3DES)"
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - keyType
    argTypes:
    - KeyType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1947
      start: 1929
    functionDepth: 0
    functionLinenumber: 1929
    functionLinenumberEnd: 1947
    functionName: PK11_MapSignKeyType
    functionSourceFile: /src/nss/lib/pk11wrap/pk11mech.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_MECHANISM_TYPE
    signature: CK_MECHANISM_TYPE PK11_MapSignKeyType(KeyType keyType)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - keyType
    argTypes:
    - KeyType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1960
      start: 1949
    functionDepth: 0
    functionLinenumber: 1949
    functionLinenumberEnd: 1960
    functionName: pk11_mapWrapKeyType
    functionSourceFile: /src/nss/lib/pk11wrap/pk11mech.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_MECHANISM_TYPE
    signature: CK_MECHANISM_TYPE pk11_mapWrapKeyType(KeyType keyType)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - algTag
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1976
      start: 1962
    functionDepth: 0
    functionLinenumber: 1962
    functionLinenumberEnd: 1976
    functionName: PK11_FortezzaMapSig
    functionSourceFile: /src/nss/lib/pk11wrap/pk11mech.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag PK11_FortezzaMapSig(SECOidTag algTag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 103
    functionName: PK11_GETTAB
    functionSourceFile: /src/nss/lib/pk11wrap/secmodi.h
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PK11_GETTAB(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - x
    - ','
    - id
    - ','
    - v
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 107
    functionName: PK11_SETATTRS
    functionSourceFile: /src/nss/lib/pk11wrap/secmodi.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PK11_SETATTRS(x, id, v, l)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - rv
    argTypes:
    - CK_RV
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 129
    functionName: PK11_MapError
    functionSourceFile: /src/nss/lib/pk11wrap/pk11err.c
    functionUses: 30
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PK11_MapError(CK_RV rv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11skey.c:30,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - symKey
    argTypes:
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 31
    functionName: pk11_EnterKeyMonitor
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 0
    functionsReached:
    - PK11_EnterSlotMonitor
    linkageType: ''
    returnType: void
    signature: void pk11_EnterKeyMonitor(PK11SymKey *symKey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11skey.c:37,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - symKey
    argTypes:
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: pk11_ExitKeyMonitor
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 0
    functionsReached:
    - PK11_ExitSlotMonitor
    linkageType: ''
    returnType: void
    signature: void pk11_ExitKeyMonitor(PK11SymKey *symKey)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/pk11wrap/pk11skey.c:50,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/pk11wrap/pk11skey.c:69,1
    - Dst: pk11_GetNewSession
      Src: /src/nss/lib/pk11wrap/pk11skey.c:80,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11skey.c:82,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11skey.c:85,1
    - Dst: PORT_New
      Src: /src/nss/lib/pk11wrap/pk11skey.c:92,1
    - Dst: pk11_GetNewSession
      Src: /src/nss/lib/pk11wrap/pk11skey.c:99,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11skey.c:100,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11skey.c:102,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 47
    argCount: 2
    argNames:
    - slot
    - needSession
    argTypes:
    - PK11SlotInfo*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 109
    functionName: pk11_getKeyFromList
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PZ_Unlock
    - PZ_Lock
    - PORT_New
    - pk11_GetNewSession
    - PK11_FreeSymKey
    linkageType: ''
    returnType: PK11SymKey
    signature: 'PK11SymKey *

      pk11_getKeyFromList(PK11SlotInfo *slot, PRBool needSession)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pk11_CloseSession
      Src: /src/nss/lib/pk11wrap/pk11skey.c:120,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11skey.c:121,1
    - Dst: pk11_CloseSession
      Src: /src/nss/lib/pk11wrap/pk11skey.c:126,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11skey.c:127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - slot
    argTypes:
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 130
    functionName: PK11_CleanKeyList
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 1
    functionsReached:
    - PORT_Free
    - pk11_CloseSession
    linkageType: ''
    returnType: void
    signature: void PK11_CleanKeyList(PK11SlotInfo *slot)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pk11_getKeyFromList
      Src: /src/nss/lib/pk11wrap/pk11skey.c:146,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11skey.c:155,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:156,1
    - Dst: PK11_ReferenceSlot
      Src: /src/nss/lib/pk11wrap/pk11skey.c:175,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 5
    argNames:
    - slot
    - type
    - owner
    - needSession
    - wincx
    argTypes:
    - PK11SlotInfo*
    - CK_MECHANISM_TYPE
    - PRBool
    - PRBool
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 177
    functionName: pk11_CreateSymKey
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 0
    functionsReached:
    - pk11_getKeyFromList
    - PK11_ReferenceSlot
    - PORT_SetError
    - PK11_FreeSymKey
    linkageType: ''
    returnType: PK11SymKey
    signature: "PK11SymKey *\npk11_CreateSymKey(PK11SlotInfo *slot, CK_MECHANISM_TYPE
      type,\n                  PRBool owner, PRBool needSession, void *wincx)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PR_ATOMIC_DECREMENT
      Src: /src/nss/lib/pk11wrap/pk11skey.c:192,1
    - Dst: pk11_EnterKeyMonitor
      Src: /src/nss/lib/pk11wrap/pk11skey.c:197,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11skey.c:198,1
    - Dst: pk11_ExitKeyMonitor
      Src: /src/nss/lib/pk11wrap/pk11skey.c:199,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/pk11wrap/pk11skey.c:202,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11skey.c:203,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/pk11wrap/pk11skey.c:210,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11skey.c:224,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/pk11wrap/pk11skey.c:236,1
    - Dst: pk11_CloseSession
      Src: /src/nss/lib/pk11wrap/pk11skey.c:238,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11skey.c:240,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11skey.c:242,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11skey.c:245,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 1
    argNames:
    - symKey
    argTypes:
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 182
    functionDepth: 3
    functionLinenumber: 182
    functionLinenumberEnd: 248
    functionName: PK11_FreeSymKey
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 30
    functionsReached:
    - PORT_Assert
    - pk11_ExitKeyMonitor
    - PORT_Free
    - PR_ATOMIC_DECREMENT
    - PZ_Unlock
    - PK11_GETTAB
    - pk11_EnterKeyMonitor
    - PZ_Lock
    - PORT_Memset
    - pk11_CloseSession
    - PK11_FreeSlot
    - PK11_FreeSymKey
    linkageType: ''
    returnType: void
    signature: void PK11_FreeSymKey(PK11SymKey *symKey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_ATOMIC_INCREMENT
      Src: /src/nss/lib/pk11wrap/pk11skey.c:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - symKey
    argTypes:
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 255
    functionName: PK11_ReferenceSymKey
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 1
    functionsReached:
    - PR_ATOMIC_INCREMENT
    linkageType: ''
    returnType: PK11SymKey
    signature: 'PK11SymKey *

      PK11_ReferenceSymKey(PK11SymKey *symKey)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - symKey
    argTypes:
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 264
    functionName: PK11_GetMechanism
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_MECHANISM_TYPE
    signature: CK_MECHANISM_TYPE PK11_GetMechanism(PK11SymKey *symKey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_ReferenceSlot
      Src: /src/nss/lib/pk11wrap/pk11skey.c:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - symKey
    argTypes:
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 269
    functionDepth: 2
    functionLinenumber: 269
    functionLinenumberEnd: 273
    functionName: PK11_GetSlotFromKey
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 0
    functionsReached:
    - PK11_ReferenceSlot
    linkageType: ''
    returnType: PK11SlotInfo
    signature: 'PK11SlotInfo *

      PK11_GetSlotFromKey(PK11SymKey *symKey)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetKeyType
      Src: /src/nss/lib/pk11wrap/pk11skey.c:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - symKey
    argTypes:
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 275
    functionDepth: 2
    functionLinenumber: 275
    functionLinenumberEnd: 279
    functionName: PK11_GetSymKeyType
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 4
    functionsReached:
    - PK11_GetKeyType
    linkageType: ''
    returnType: CK_KEY_TYPE
    signature: CK_KEY_TYPE PK11_GetSymKeyType(PK11SymKey *symKey)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - symKey
    argTypes:
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 285
    functionName: PK11_GetNextSymKey
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: PK11SymKey
    signature: 'PK11SymKey *

      PK11_GetNextSymKey(PK11SymKey *symKey)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetObjectNickname
      Src: /src/nss/lib/pk11wrap/pk11skey.c:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - symKey
    argTypes:
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 291
    functionName: PK11_GetSymKeyNickname
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 3
    functionsReached:
    - PK11_GetObjectNickname
    linkageType: ''
    returnType: char
    signature: 'char *

      PK11_GetSymKeyNickname(PK11SymKey *symKey)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_SetObjectNickname
      Src: /src/nss/lib/pk11wrap/pk11skey.c:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - symKey
    - nickname
    argTypes:
    - PK11SymKey*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 297
    functionName: PK11_SetSymKeyNickname
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 1
    functionsReached:
    - PK11_SetObjectNickname
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11_SetSymKeyNickname(PK11SymKey *symKey, const char *nickname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - symKey
    argTypes:
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 303
    functionName: PK11_GetSymKeyUserData
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void *

      PK11_GetSymKeyUserData(PK11SymKey *symKey)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - symKey
    - userData
    - freeFunc
    argTypes:
    - PK11SymKey*
    - void*
    - PK11FreeDataFunc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 316
    functionName: PK11_SetSymKeyUserData
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void PK11_SetSymKeyUserData(PK11SymKey *symKey, void *userData,\n
      \                      PK11FreeDataFunc freeFunc)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pk11_CreateSymKey
      Src: /src/nss/lib/pk11wrap/pk11skey.c:332,1
    - Dst: PK11_ReferenceSymKey
      Src: /src/nss/lib/pk11wrap/pk11skey.c:347,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11skey.c:351,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11skey.c:353,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:354,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 7
    argNames:
    - slot
    - parent
    - origin
    - type
    - keyID
    - owner
    - wincx
    argTypes:
    - PK11SlotInfo*
    - PK11SymKey*
    - PK11Origin
    - CK_MECHANISM_TYPE
    - CK_OBJECT_HANDLE
    - PRBool
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 321
    functionDepth: 4
    functionLinenumber: 321
    functionLinenumberEnd: 360
    functionName: PK11_SymKeyFromHandle
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - pk11_CreateSymKey
    - PORT_SetError
    - PK11_ReferenceSymKey
    - PK11_FreeSymKey
    linkageType: ''
    returnType: PK11SymKey
    signature: "PK11SymKey *\nPK11_SymKeyFromHandle(PK11SlotInfo *slot, PK11SymKey
      *parent, PK11Origin origin,\n                      CK_MECHANISM_TYPE type, CK_OBJECT_HANDLE
      keyID, PRBool owner, void *wincx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11skey.c:374,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11skey.c:377,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11skey.c:386,1
    - Dst: PK11_SymKeyFromHandle
      Src: /src/nss/lib/pk11wrap/pk11skey.c:387,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - slot
    - wrap
    - type
    - series
    - wincx
    argTypes:
    - PK11SlotInfo*
    - int
    - CK_MECHANISM_TYPE
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 367
    functionDepth: 5
    functionLinenumber: 367
    functionLinenumberEnd: 390
    functionName: PK11_GetWrapKey
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 0
    functionsReached:
    - PK11_ExitSlotMonitor
    - PK11_SymKeyFromHandle
    - PK11_EnterSlotMonitor
    linkageType: ''
    returnType: PK11SymKey
    signature: "PK11SymKey *\nPK11_GetWrapKey(PK11SlotInfo *slot, int wrap, CK_MECHANISM_TYPE
      type,\n                int series, void *wincx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11skey.c:408,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/pk11wrap/pk11skey.c:411,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11skey.c:423,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - slot
    - wrap
    - wrapKey
    argTypes:
    - PK11SlotInfo*
    - int
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 405
    functionDepth: 2
    functionLinenumber: 405
    functionLinenumberEnd: 424
    functionName: PK11_SetWrapKey
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 0
    functionsReached:
    - PK11_ExitSlotMonitor
    - PK11_EnterSlotMonitor
    - PR_ARRAY_SIZE
    linkageType: ''
    returnType: void
    signature: void PK11_SetWrapKey(PK11SlotInfo *slot, int wrap, PK11SymKey *wrapKey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_IsPresent
      Src: /src/nss/lib/pk11wrap/pk11skey.c:432,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - key
    argTypes:
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 429
    functionDepth: 6
    functionLinenumber: 429
    functionLinenumberEnd: 436
    functionName: PK11_VerifyKeyOK
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 0
    functionsReached:
    - PK11_IsPresent
    linkageType: ''
    returnType: PRBool
    signature: PRBool PK11_VerifyKeyOK(PK11SymKey *key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pk11_CreateSymKey
      Src: /src/nss/lib/pk11wrap/pk11skey.c:446,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11skey.c:453,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/pk11wrap/pk11skey.c:456,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11skey.c:457,1
    - Dst: PK11_CreateNewObject
      Src: /src/nss/lib/pk11wrap/pk11skey.c:464,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11skey.c:467,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 8
    argNames:
    - slot
    - type
    - origin
    - isToken
    - keyTemplate
    - templateCount
    - key
    - wincx
    argTypes:
    - PK11SlotInfo*
    - CK_MECHANISM_TYPE
    - PK11Origin
    - PRBool
    - CK_ATTRIBUTE*
    - unsigned int
    - SECItem*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 438
    functionDepth: 4
    functionLinenumber: 438
    functionLinenumberEnd: 472
    functionName: pk11_ImportSymKeyWithTempl
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 0
    functionsReached:
    - pk11_CreateSymKey
    - SECITEM_CopyItem
    - PK11_SETATTRS
    - PK11_CreateNewObject
    - PK11_FreeSymKey
    linkageType: ''
    returnType: PK11SymKey
    signature: "PK11SymKey *\npk11_ImportSymKeyWithTempl(PK11SlotInfo *slot, CK_MECHANISM_TYPE
      type,\n                           PK11Origin origin, PRBool isToken, CK_ATTRIBUTE
      *keyTemplate,\n                           unsigned int templateCount, SECItem
      *key, void *wincx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11skey.c:498,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11skey.c:500,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11skey.c:502,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/pk11wrap/pk11skey.c:505,1
    - Dst: PK11_GetKeyType
      Src: /src/nss/lib/pk11wrap/pk11skey.c:507,1
    - Dst: pk11_ImportSymKeyWithTempl
      Src: /src/nss/lib/pk11wrap/pk11skey.c:508,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 6
    argNames:
    - slot
    - type
    - origin
    - operation
    - key
    - wincx
    argTypes:
    - PK11SlotInfo*
    - CK_MECHANISM_TYPE
    - PK11Origin
    - CK_ATTRIBUTE_TYPE
    - SECItem*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 477
    functionDepth: 5
    functionLinenumber: 477
    functionLinenumberEnd: 511
    functionName: PK11_ImportSymKey
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 6
    functionsReached:
    - PK11_GetKeyType
    - PK11_SETATTRS
    - pk11_ImportSymKeyWithTempl
    - PR_ASSERT
    linkageType: ''
    returnType: PK11SymKey
    signature: "PK11SymKey *\nPK11_ImportSymKey(PK11SlotInfo *slot, CK_MECHANISM_TYPE
      type,\n                  PK11Origin origin, CK_ATTRIBUTE_TYPE operation, SECItem
      *key, void *wincx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11skey.c:565,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11skey.c:567,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11skey.c:570,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11skey.c:574,1
    - Dst: pk11_OpFlagsToAttributes
      Src: /src/nss/lib/pk11wrap/pk11skey.c:577,1
    - Dst: pk11_FindAttrInTemplate
      Src: /src/nss/lib/pk11wrap/pk11skey.c:579,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11skey.c:580,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/pk11wrap/pk11skey.c:584,1
    - Dst: PK11_GetKeyType
      Src: /src/nss/lib/pk11wrap/pk11skey.c:586,1
    - Dst: pk11_ImportSymKeyWithTempl
      Src: /src/nss/lib/pk11wrap/pk11skey.c:587,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 8
    argNames:
    - slot
    - type
    - origin
    - operation
    - key
    - flags
    - isPerm
    - wincx
    argTypes:
    - PK11SlotInfo*
    - CK_MECHANISM_TYPE
    - PK11Origin
    - CK_ATTRIBUTE_TYPE
    - SECItem*
    - CK_FLAGS
    - PRBool
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 543
    functionDepth: 5
    functionLinenumber: 543
    functionLinenumberEnd: 593
    functionName: PK11_ImportSymKeyWithFlags
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 0
    functionsReached:
    - pk11_OpFlagsToAttributes
    - PR_ASSERT
    - PK11_SETATTRS
    - PK11_GetKeyType
    - pk11_ImportSymKeyWithTempl
    - pk11_FindAttrInTemplate
    linkageType: ''
    returnType: PK11SymKey
    signature: "PK11SymKey *\nPK11_ImportSymKeyWithFlags(PK11SlotInfo *slot, CK_MECHANISM_TYPE
      type,\n                           PK11Origin origin, CK_ATTRIBUTE_TYPE operation,
      SECItem *key,\n                           CK_FLAGS flags, PRBool isPerm, void
      *wincx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetKeyType
      Src: /src/nss/lib/pk11wrap/pk11skey.c:605,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11skey.c:608,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11skey.c:610,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11skey.c:612,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11skey.c:615,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11skey.c:619,1
    - Dst: pk11_FindObjectByTemplate
      Src: /src/nss/lib/pk11wrap/pk11skey.c:621,1
    - Dst: PK11_SymKeyFromHandle
      Src: /src/nss/lib/pk11wrap/pk11skey.c:625,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 4
    argNames:
    - slot
    - type
    - keyID
    - wincx
    argTypes:
    - PK11SlotInfo*
    - CK_MECHANISM_TYPE
    - SECItem*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 595
    functionDepth: 5
    functionLinenumber: 595
    functionLinenumberEnd: 627
    functionName: PK11_FindFixedKey
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 4
    functionsReached:
    - PORT_Assert
    - PK11_SymKeyFromHandle
    - PK11_SETATTRS
    - PK11_GetKeyType
    - pk11_FindObjectByTemplate
    linkageType: ''
    returnType: PK11SymKey
    signature: "PK11SymKey *\nPK11_FindFixedKey(PK11SlotInfo *slot, CK_MECHANISM_TYPE
      type, SECItem *keyID,\n                  void *wincx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11skey.c:644,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11skey.c:646,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/pk11wrap/pk11skey.c:649,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11skey.c:650,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11skey.c:654,1
    - Dst: pk11_FindObjectsByTemplate
      Src: /src/nss/lib/pk11wrap/pk11skey.c:656,1
    - Dst: PK11_ReadAttribute
      Src: /src/nss/lib/pk11wrap/pk11skey.c:664,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11skey.c:670,1
    - Dst: PK11_SymKeyFromHandle
      Src: /src/nss/lib/pk11wrap/pk11skey.c:672,1
    - Dst: PK11_GetKeyMechanism
      Src: /src/nss/lib/pk11wrap/pk11skey.c:673,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11skey.c:679,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 3
    argNames:
    - slot
    - nickname
    - wincx
    argTypes:
    - PK11SlotInfo*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 629
    functionDepth: 5
    functionLinenumber: 629
    functionLinenumberEnd: 681
    functionName: PK11_ListFixedKeysInSlot
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 3
    functionsReached:
    - PORT_Assert
    - PK11_SymKeyFromHandle
    - pk11_FindObjectsByTemplate
    - PORT_Free
    - PORT_Strlen
    - PK11_SETATTRS
    - PK11_GetKeyMechanism
    - PK11_ReadAttribute
    linkageType: ''
    returnType: PK11SymKey
    signature: 'PK11SymKey *

      PK11_ListFixedKeysInSlot(PK11SlotInfo *slot, char *nickname, void *wincx)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 683
    functionDepth: 0
    functionLinenumber: 683
    functionLinenumberEnd: 687
    functionName: PK11_GetWindow
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void *

      PK11_GetWindow(PK11SymKey *key)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:699,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:711,1
    - Dst: PK11_ReadAttribute
      Src: /src/nss/lib/pk11wrap/pk11skey.c:715,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - symKey
    argTypes:
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 693
    functionDepth: 1
    functionLinenumber: 693
    functionLinenumberEnd: 721
    functionName: PK11_ExtractKeyValue
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 5
    functionsReached:
    - PORT_SetError
    - PK11_ReadAttribute
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11_ExtractKeyValue(PK11SymKey *symKey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_IsPermObject
      Src: /src/nss/lib/pk11wrap/pk11skey.c:726,1
    - Dst: PK11_DestroyTokenObject
      Src: /src/nss/lib/pk11wrap/pk11skey.c:729,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - symKey
    argTypes:
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 723
    functionDepth: 1
    functionLinenumber: 723
    functionLinenumberEnd: 732
    functionName: PK11_DeleteTokenSymKey
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 1
    functionsReached:
    - PK11_IsPermObject
    - PK11_DestroyTokenObject
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11_DeleteTokenSymKey(PK11SymKey *symKey)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - symKey
    argTypes:
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 734
    functionDepth: 0
    functionLinenumber: 734
    functionLinenumberEnd: 738
    functionName: PK11_GetKeyData
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      PK11_GetKeyData(PK11SymKey *symKey)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetKeyData
      Src: /src/nss/lib/pk11wrap/pk11skey.c:744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - symKey
    argTypes:
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 741
    functionDepth: 1
    functionLinenumber: 741
    functionLinenumberEnd: 745
    functionName: __PK11_GetKeyData
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 0
    functionsReached:
    - PK11_GetKeyData
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      __PK11_GetKeyData(PK11SymKey *symKey)'
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - keyType
    argTypes:
    - CK_KEY_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 750
    functionDepth: 0
    functionLinenumber: 750
    functionLinenumberEnd: 777
    functionName: pk11_GetPredefinedKeyLength
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int pk11_GetPredefinedKeyLength(CK_KEY_TYPE keyType)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PK11_ReadULongAttribute
      Src: /src/nss/lib/pk11wrap/pk11skey.c:789,1
    - Dst: pk11_GetPredefinedKeyLength
      Src: /src/nss/lib/pk11wrap/pk11skey.c:790,1
    - Dst: PK11_ExtractKeyValue
      Src: /src/nss/lib/pk11wrap/pk11skey.c:800,1
    - Dst: PK11_ReadULongAttribute
      Src: /src/nss/lib/pk11wrap/pk11skey.c:807,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - key
    argTypes:
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 780
    functionDepth: 2
    functionLinenumber: 780
    functionLinenumberEnd: 814
    functionName: PK11_GetKeyLength
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 3
    functionsReached:
    - PK11_ReadULongAttribute
    - pk11_GetPredefinedKeyLength
    - PK11_ExtractKeyValue
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int PK11_GetKeyLength(PK11SymKey *key)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetKeyType
      Src: /src/nss/lib/pk11wrap/pk11skey.c:829,1
    - Dst: PK11_GetKeyLength
      Src: /src/nss/lib/pk11wrap/pk11skey.c:836,1
    - Dst: PK11_AlgtagToMechanism
      Src: /src/nss/lib/pk11wrap/pk11skey.c:857,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/pk11wrap/pk11skey.c:857,1
    - Dst: PK11_ParamFromAlgid
      Src: /src/nss/lib/pk11wrap/pk11skey.c:863,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11skey.c:871,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11skey.c:873,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11skey.c:877,1
    - Dst: PK11_GetKeyLength
      Src: /src/nss/lib/pk11wrap/pk11skey.c:883,1
    - Dst: PK11_GetKeyLength
      Src: /src/nss/lib/pk11wrap/pk11skey.c:894,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 2
    argNames:
    - key
    - algid
    argTypes:
    - PK11SymKey*
    - SECAlgorithmID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 820
    functionDepth: 3
    functionLinenumber: 820
    functionLinenumberEnd: 895
    functionName: PK11_GetKeyStrength
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 2
    functionsReached:
    - PORT_Assert
    - PK11_GetKeyLength
    - SECOID_GetAlgorithmTag
    - PK11_ParamFromAlgid
    - PK11_AlgtagToMechanism
    - PK11_GetKeyType
    - SECITEM_FreeItem
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int PK11_GetKeyStrength(PK11SymKey *key, SECAlgorithmID *algid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PK11_ExtractKeyValue
      Src: /src/nss/lib/pk11wrap/pk11skey.c:912,1
    - Dst: pk11_KeyExchange
      Src: /src/nss/lib/pk11wrap/pk11skey.c:915,1
    - Dst: PK11_ImportSymKeyWithFlags
      Src: /src/nss/lib/pk11wrap/pk11skey.c:920,1
    - Dst: pk11_KeyExchange
      Src: /src/nss/lib/pk11wrap/pk11skey.c:923,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 6
    argNames:
    - slot
    - type
    - operation
    - flags
    - isPerm
    - symKey
    argTypes:
    - PK11SlotInfo*
    - CK_MECHANISM_TYPE
    - CK_ATTRIBUTE_TYPE
    - CK_FLAGS
    - PRBool
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 902
    functionDepth: 6
    functionLinenumber: 902
    functionLinenumberEnd: 926
    functionName: pk11_CopyToSlotPerm
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 0
    functionsReached:
    - PK11_ExtractKeyValue
    - PK11_ImportSymKeyWithFlags
    - pk11_KeyExchange
    linkageType: ''
    returnType: PK11SymKey
    signature: "PK11SymKey *\npk11_CopyToSlotPerm(PK11SlotInfo *slot, CK_MECHANISM_TYPE
      type,\n                    CK_ATTRIBUTE_TYPE operation, CK_FLAGS flags,\n                    PRBool
      isPerm, PK11SymKey *symKey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pk11_CopyToSlotPerm
      Src: /src/nss/lib/pk11wrap/pk11skey.c:932,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - slot
    - type
    - operation
    - symKey
    argTypes:
    - PK11SlotInfo*
    - CK_MECHANISM_TYPE
    - CK_ATTRIBUTE_TYPE
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 933
      start: 928
    functionDepth: 7
    functionLinenumber: 928
    functionLinenumberEnd: 933
    functionName: pk11_CopyToSlot
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 1
    functionsReached:
    - pk11_CopyToSlotPerm
    linkageType: ''
    returnType: PK11SymKey
    signature: "PK11SymKey *\npk11_CopyToSlot(PK11SlotInfo *slot, CK_MECHANISM_TYPE
      type,\n                CK_ATTRIBUTE_TYPE operation, PK11SymKey *symKey)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PK11_DoesMechanism
      Src: /src/nss/lib/pk11wrap/pk11skey.c:953,1
    - Dst: PK11_GetBestSlotMultiple
      Src: /src/nss/lib/pk11wrap/pk11skey.c:961,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:963,1
    - Dst: pk11_CopyToSlot
      Src: /src/nss/lib/pk11wrap/pk11skey.c:966,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11skey.c:967,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 4
    argNames:
    - symKey
    - type
    - mechCount
    - operation
    argTypes:
    - PK11SymKey*
    - CK_MECHANISM_TYPE*
    - int
    - CK_ATTRIBUTE_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 939
    functionDepth: 8
    functionLinenumber: 939
    functionLinenumberEnd: 970
    functionName: pk11_ForceSlotMultiple
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 0
    functionsReached:
    - pk11_CopyToSlot
    - PK11_DoesMechanism
    - PORT_SetError
    - PK11_GetBestSlotMultiple
    - PK11_FreeSlot
    linkageType: ''
    returnType: PK11SymKey
    signature: "PK11SymKey *\npk11_ForceSlotMultiple(PK11SymKey *symKey, CK_MECHANISM_TYPE
      *type,\n                       int mechCount, CK_ATTRIBUTE_TYPE operation)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pk11_ForceSlotMultiple
      Src: /src/nss/lib/pk11wrap/pk11skey.c:979,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - symKey
    - type
    - operation
    argTypes:
    - PK11SymKey*
    - CK_MECHANISM_TYPE
    - CK_ATTRIBUTE_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 975
    functionDepth: 9
    functionLinenumber: 975
    functionLinenumberEnd: 980
    functionName: pk11_ForceSlot
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 0
    functionsReached:
    - pk11_ForceSlotMultiple
    linkageType: ''
    returnType: PK11SymKey
    signature: "PK11SymKey *\npk11_ForceSlot(PK11SymKey *symKey, CK_MECHANISM_TYPE
      type,\n               CK_ATTRIBUTE_TYPE operation)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PK11_ConvertSessionSymKeyToTokenSymKey
      Src: /src/nss/lib/pk11wrap/pk11skey.c:988,1
    - Dst: PK11_ReferenceSymKey
      Src: /src/nss/lib/pk11wrap/pk11skey.c:990,1
    - Dst: pk11_CopyToSlotPerm
      Src: /src/nss/lib/pk11wrap/pk11skey.c:994,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - slot
    - operation
    - flags
    - perm
    - symKey
    argTypes:
    - PK11SlotInfo*
    - CK_ATTRIBUTE_TYPE
    - CK_FLAGS
    - PRBool
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 982
    functionDepth: 7
    functionLinenumber: 982
    functionLinenumberEnd: 996
    functionName: PK11_MoveSymKey
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 2
    functionsReached:
    - pk11_CopyToSlotPerm
    - PK11_ReferenceSymKey
    - PK11_ConvertSessionSymKeyToTokenSymKey
    linkageType: ''
    returnType: PK11SymKey
    signature: "PK11SymKey *\nPK11_MoveSymKey(PK11SlotInfo *slot, CK_ATTRIBUTE_TYPE
      operation,\n                CK_FLAGS flags, PRBool perm, PK11SymKey *symKey)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pk11_BadAttrFlags
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1033,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1034,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1042,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1047,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1053,1
    - Dst: pk11_AttrFlagsToAttributes
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1057,1
    - Dst: pk11_OpFlagsToAttributes
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1058,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1061,1
    - Dst: PK11_GetKeyGenWithSize
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1063,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1065,1
    - Dst: PK11_KeyGenWithTemplate
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1068,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 9
    argNames:
    - slot
    - type
    - param
    - keyType
    - keySize
    - keyid
    - opFlags
    - attrFlags
    - wincx
    argTypes:
    - PK11SlotInfo*
    - CK_MECHANISM_TYPE
    - SECItem*
    - CK_KEY_TYPE
    - int
    - SECItem*
    - CK_FLAGS
    - PK11AttrFlags
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1074
      start: 1019
    functionDepth: 2
    functionLinenumber: 1019
    functionLinenumberEnd: 1074
    functionName: pk11_TokenKeyGenWithFlagsAndKeyType
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 0
    functionsReached:
    - pk11_OpFlagsToAttributes
    - PR_ASSERT
    - PORT_SetError
    - PK11_SETATTRS
    - pk11_BadAttrFlags
    - pk11_AttrFlagsToAttributes
    - PK11_KeyGenWithTemplate
    - PK11_GetKeyGenWithSize
    linkageType: ''
    returnType: PK11SymKey
    signature: "PK11SymKey *\npk11_TokenKeyGenWithFlagsAndKeyType(PK11SlotInfo *slot,
      CK_MECHANISM_TYPE type,\n                                    SECItem *param,
      CK_KEY_TYPE keyType, int keySize, SECItem *keyid,\n                                    CK_FLAGS
      opFlags, PK11AttrFlags attrFlags, void *wincx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pk11_TokenKeyGenWithFlagsAndKeyType
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1095,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - slot
    - type
    - param
    - keySize
    - keyid
    - opFlags
    - attrFlags
    - wincx
    argTypes:
    - PK11SlotInfo*
    - CK_MECHANISM_TYPE
    - SECItem*
    - int
    - SECItem*
    - CK_FLAGS
    - PK11AttrFlags
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1090
    functionDepth: 3
    functionLinenumber: 1090
    functionLinenumberEnd: 1097
    functionName: PK11_TokenKeyGenWithFlags
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 0
    functionsReached:
    - pk11_TokenKeyGenWithFlagsAndKeyType
    linkageType: ''
    returnType: PK11SymKey
    signature: "PK11SymKey *\nPK11_TokenKeyGenWithFlags(PK11SlotInfo *slot, CK_MECHANISM_TYPE
      type,\n                          SECItem *param, int keySize, SECItem *keyid,
      CK_FLAGS opFlags,\n                          PK11AttrFlags attrFlags, void *wincx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pk11_TokenKeyGenWithFlagsAndKeyType
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1128,1
    - Dst: PK11_SetFortezzaHack
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1131,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 7
    argNames:
    - slot
    - type
    - param
    - keySize
    - keyid
    - isToken
    - wincx
    argTypes:
    - PK11SlotInfo*
    - CK_MECHANISM_TYPE
    - SECItem*
    - int
    - SECItem*
    - PRBool
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 1108
    functionDepth: 3
    functionLinenumber: 1108
    functionLinenumberEnd: 1135
    functionName: PK11_TokenKeyGen
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 3
    functionsReached:
    - pk11_TokenKeyGenWithFlagsAndKeyType
    - PK11_SetFortezzaHack
    linkageType: ''
    returnType: PK11SymKey
    signature: "PK11SymKey *\nPK11_TokenKeyGen(PK11SlotInfo *slot, CK_MECHANISM_TYPE
      type, SECItem *param,\n                 int keySize, SECItem *keyid, PRBool
      isToken, void *wincx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_TokenKeyGen
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - slot
    - type
    - param
    - keySize
    - wincx
    argTypes:
    - PK11SlotInfo*
    - CK_MECHANISM_TYPE
    - SECItem*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1142
      start: 1137
    functionDepth: 4
    functionLinenumber: 1137
    functionLinenumberEnd: 1142
    functionName: PK11_KeyGen
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 0
    functionsReached:
    - PK11_TokenKeyGen
    linkageType: ''
    returnType: PK11SymKey
    signature: "PK11SymKey *\nPK11_KeyGen(PK11SlotInfo *slot, CK_MECHANISM_TYPE type,
      SECItem *param,\n            int keySize, void *wincx)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1165,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1165,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1173,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1173,1
    - Dst: PK11_DoesMechanism
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1183,1
    - Dst: PK11_GetBestSlot
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1184,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1186,1
    - Dst: pk11_CreateSymKey
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1189,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1190,1
    - Dst: pk11_CreateSymKey
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1192,1
    - Dst: PK11_Authenticate
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1211,1
    - Dst: PK11_GetRWSession
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1213,1
    - Dst: pk11_EnterKeyMonitor
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1218,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1221,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1222,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1226,1
    - Dst: PK11_RestoreROSession
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1230,1
    - Dst: pk11_ExitKeyMonitor
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1232,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1236,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1237,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1237,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 66
    argCount: 7
    argNames:
    - slot
    - type
    - keyGenType
    - param
    - attrs
    - attrsCount
    - wincx
    argTypes:
    - PK11SlotInfo*
    - CK_MECHANISM_TYPE
    - CK_MECHANISM_TYPE
    - SECItem*
    - CK_ATTRIBUTE*
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1242
      start: 1144
    functionDepth: 8
    functionLinenumber: 1144
    functionLinenumberEnd: 1242
    functionName: PK11_KeyGenWithTemplate
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 1
    functionsReached:
    - pk11_CreateSymKey
    - pk11_ExitKeyMonitor
    - PK11_GetBestSlot
    - PK11_DoesMechanism
    - PK11_GetRWSession
    - PORT_SetError
    - PK11_GETTAB
    - pk11_EnterKeyMonitor
    - PK11_RestoreROSession
    - PK11_FreeSymKey
    - PK11_MapError
    - PK11_FreeSlot
    - PK11_Authenticate
    linkageType: ''
    returnType: PK11SymKey
    signature: "PK11SymKey *\nPK11_KeyGenWithTemplate(PK11SlotInfo *slot, CK_MECHANISM_TYPE
      type,\n                        CK_MECHANISM_TYPE keyGenType,\n                        SECItem
      *param, CK_ATTRIBUTE *attrs,\n                        unsigned int attrsCount,
      void *wincx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1255,1
    - Dst: PK11_Authenticate
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1258,1
    - Dst: PK11_GetRWSession
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1259,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1261,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1264,1
    - Dst: PK11_RestoreROSession
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1266,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1269,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1269,1
    - Dst: PK11_SymKeyFromHandle
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1273,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - symk
    - wincx
    argTypes:
    - PK11SymKey*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1275
      start: 1244
    functionDepth: 5
    functionLinenumber: 1244
    functionLinenumberEnd: 1275
    functionName: PK11_ConvertSessionSymKeyToTokenSymKey
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 1
    functionsReached:
    - PK11_SymKeyFromHandle
    - PK11_GetRWSession
    - PORT_SetError
    - PK11_GETTAB
    - PK11_SETATTRS
    - PK11_RestoreROSession
    - PK11_MapError
    - PK11_Authenticate
    linkageType: ''
    returnType: PK11SymKey
    signature: 'PK11SymKey *

      PK11_ConvertSessionSymKeyToTokenSymKey(PK11SymKey *symk, void *wincx)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pk11_mapWrapKeyType
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1283,1
    - Dst: PK11_PubWrapSymKeyWithMechanism
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - type
    - pubKey
    - symKey
    - wrappedKey
    argTypes:
    - CK_MECHANISM_TYPE
    - SECKEYPublicKey*
    - PK11SymKey*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1286
      start: 1279
    functionDepth: 1
    functionLinenumber: 1279
    functionLinenumberEnd: 1286
    functionName: PK11_PubWrapSymKey
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 0
    functionsReached:
    - PK11_PubWrapSymKeyWithMechanism
    - pk11_mapWrapKeyType
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_PubWrapSymKey(CK_MECHANISM_TYPE type, SECKEYPublicKey
      *pubKey,\n                   PK11SymKey *symKey, SECItem *wrappedKey)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1305,1
    - Dst: pk11_ForceSlot
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1310,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1316,1
    - Dst: PK11_ImportPublicKey
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1331,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1334,1
    - Dst: pk11_GetNewSession
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1339,1
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1341,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1342,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1345,1
    - Dst: pk11_CloseSession
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1346,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1348,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1352,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1352,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 5
    argNames:
    - pubKey
    - mechType
    - param
    - symKey
    - wrappedKey
    argTypes:
    - SECKEYPublicKey*
    - CK_MECHANISM_TYPE
    - SECItem*
    - PK11SymKey*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1357
      start: 1290
    functionDepth: 10
    functionLinenumber: 1290
    functionLinenumberEnd: 1357
    functionName: PK11_PubWrapSymKeyWithMechanism
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 1
    functionsReached:
    - PK11_ExitSlotMonitor
    - PORT_SetError
    - PK11_GETTAB
    - PK11_EnterSlotMonitor
    - pk11_ForceSlot
    - pk11_GetNewSession
    - pk11_CloseSession
    - PK11_MapError
    - PK11_ImportPublicKey
    - PK11_FreeSymKey
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_PubWrapSymKeyWithMechanism(SECKEYPublicKey *pubKey,\n
      \                               CK_MECHANISM_TYPE mechType, SECItem *param,\n
      \                               PK11SymKey *symKey, SECItem *wrappedKey)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pk11_GetNewSession
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1385,1
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1387,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1388,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1392,1
    - Dst: pk11_CloseSession
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1393,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1394,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1394,1
    - Dst: PK11_BlockData
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1400,1
    - Dst: PK11_GetBlockSize
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1400,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1403,1
    - Dst: pk11_CloseSession
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1404,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1405,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1409,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1412,1
    - Dst: pk11_CloseSession
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1413,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1414,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1417,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1417,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 5
    argNames:
    - wrappingKey
    - param
    - type
    - inKey
    - outKey
    argTypes:
    - PK11SymKey*
    - SECItem*
    - CK_MECHANISM_TYPE
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1421
      start: 1363
    functionDepth: 2
    functionLinenumber: 1363
    functionLinenumberEnd: 1421
    functionName: pk11_HandWrap
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PK11_GETTAB
    - PK11_BlockData
    - PK11_EnterSlotMonitor
    - SECITEM_FreeItem
    - PK11_ExitSlotMonitor
    - pk11_CloseSession
    - PK11_MapError
    - pk11_GetNewSession
    - PK11_GetBlockSize
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus pk11_HandWrap(PK11SymKey *wrappingKey, SECItem *param, CK_MECHANISM_TYPE
      type,\n              SECItem *inKey, SECItem *outKey)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetBestSlot
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1438,1
    - Dst: pk11_CopyToSlot
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1442,1
    - Dst: pk11_CopyToSlot
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1447,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1453,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1456,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1457,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1458,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 7
    argNames:
    - mech
    - preferedOperation
    - movingOperation
    - preferedKey
    - movingKey
    - newPreferedKey
    - newMovingKey
    argTypes:
    - CK_MECHANISM_TYPE
    - CK_ATTRIBUTE_TYPE
    - CK_ATTRIBUTE_TYPE
    - PK11SymKey*
    - PK11SymKey*
    - PK11SymKey**
    - PK11SymKey**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1462
      start: 1427
    functionDepth: 8
    functionLinenumber: 1427
    functionLinenumberEnd: 1462
    functionName: pk11_moveTwoKeys
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 0
    functionsReached:
    - pk11_CopyToSlot
    - PK11_GetBestSlot
    - PK11_FreeSlot
    - PK11_FreeSymKey
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus pk11_moveTwoKeys(CK_MECHANISM_TYPE mech,\n                 CK_ATTRIBUTE_TYPE
      preferedOperation,\n                 CK_ATTRIBUTE_TYPE movingOperation,\n                 PK11SymKey
      *preferedKey, PK11SymKey *movingKey,\n                 PK11SymKey **newPreferedKey,
      PK11SymKey **newMovingKey)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PK11_DoesMechanism
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1490,1
    - Dst: pk11_moveTwoKeys
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1496,1
    - Dst: PK11_DoesMechanism
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1504,1
    - Dst: pk11_CopyToSlot
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1505,1
    - Dst: PK11_DoesMechanism
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1514,1
    - Dst: pk11_CopyToSlot
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1515,1
    - Dst: pk11_moveTwoKeys
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1524,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 7
    argNames:
    - mech
    - preferedOperation
    - movingOperation
    - preferedKey
    - movingKey
    - newPreferedKey
    - newMovingKey
    argTypes:
    - CK_MECHANISM_TYPE
    - CK_ATTRIBUTE_TYPE
    - CK_ATTRIBUTE_TYPE
    - PK11SymKey*
    - PK11SymKey*
    - PK11SymKey**
    - PK11SymKey**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1527
      start: 1476
    functionDepth: 9
    functionLinenumber: 1476
    functionLinenumberEnd: 1527
    functionName: PK11_SymKeysToSameSlot
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 0
    functionsReached:
    - pk11_CopyToSlot
    - pk11_moveTwoKeys
    - PK11_DoesMechanism
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_SymKeysToSameSlot(CK_MECHANISM_TYPE mech,\n                       CK_ATTRIBUTE_TYPE
      preferedOperation,\n                       CK_ATTRIBUTE_TYPE movingOperation,\n
      \                      PK11SymKey *preferedKey, PK11SymKey *movingKey,\n                       PK11SymKey
      **newPreferedKey, PK11SymKey **newMovingKey)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PK11_SymKeysToSameSlot
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1549,1
    - Dst: PK11_ExtractKeyValue
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1555,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1557,1
    - Dst: PK11_ParamFromIV
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1562,1
    - Dst: pk11_HandWrap
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1564,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1566,1
    - Dst: PK11_ParamFromIV
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1581,1
    - Dst: pk11_GetNewSession
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1593,1
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1595,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1596,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1600,1
    - Dst: pk11_CloseSession
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1601,1
    - Dst: PK11_ExtractKeyValue
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1607,1
    - Dst: pk11_HandWrap
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1611,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1617,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1618,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1620,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 62
    argCount: 5
    argNames:
    - type
    - param
    - wrappingKey
    - symKey
    - wrappedKey
    argTypes:
    - CK_MECHANISM_TYPE
    - SECItem*
    - PK11SymKey*
    - PK11SymKey*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1622
      start: 1532
    functionDepth: 10
    functionLinenumber: 1532
    functionLinenumberEnd: 1622
    functionName: PK11_WrapSymKey
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 2
    functionsReached:
    - PK11_SymKeysToSameSlot
    - pk11_HandWrap
    - PK11_ExtractKeyValue
    - PORT_SetError
    - PK11_ParamFromIV
    - PK11_GETTAB
    - PK11_EnterSlotMonitor
    - PK11_ExitSlotMonitor
    - pk11_CloseSession
    - pk11_GetNewSession
    - SECITEM_FreeItem
    - PK11_FreeSymKey
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_WrapSymKey(CK_MECHANISM_TYPE type, SECItem *param,\n
      \               PK11SymKey *wrappingKey, PK11SymKey *symKey,\n                SECItem
      *wrappedKey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_DeriveWithTemplate
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - baseKey
    - derive
    - param
    - target
    - operation
    - keySize
    argTypes:
    - PK11SymKey*
    - CK_MECHANISM_TYPE
    - SECItem*
    - CK_MECHANISM_TYPE
    - CK_ATTRIBUTE_TYPE
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1634
      start: 1627
    functionDepth: 1
    functionLinenumber: 1627
    functionLinenumberEnd: 1634
    functionName: PK11_Derive
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 3
    functionsReached:
    - PK11_DeriveWithTemplate
    linkageType: ''
    returnType: PK11SymKey
    signature: "PK11SymKey *\nPK11_Derive(PK11SymKey *baseKey, CK_MECHANISM_TYPE derive,
      SECItem *param,\n            CK_MECHANISM_TYPE target, CK_ATTRIBUTE_TYPE operation,\n
      \           int keySize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pk11_OpFlagsToAttributes
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1645,1
    - Dst: PK11_DeriveWithTemplate
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 7
    argNames:
    - baseKey
    - derive
    - param
    - target
    - operation
    - keySize
    - flags
    argTypes:
    - PK11SymKey*
    - CK_MECHANISM_TYPE
    - SECItem*
    - CK_MECHANISM_TYPE
    - CK_ATTRIBUTE_TYPE
    - int
    - CK_FLAGS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1648
      start: 1636
    functionDepth: 1
    functionLinenumber: 1636
    functionLinenumberEnd: 1648
    functionName: PK11_DeriveWithFlags
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 0
    functionsReached:
    - pk11_OpFlagsToAttributes
    - PK11_DeriveWithTemplate
    linkageType: ''
    returnType: PK11SymKey
    signature: "PK11SymKey *\nPK11_DeriveWithFlags(PK11SymKey *baseKey, CK_MECHANISM_TYPE
      derive,\n                     SECItem *param, CK_MECHANISM_TYPE target, CK_ATTRIBUTE_TYPE
      operation,\n                     int keySize, CK_FLAGS flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1662,1
    - Dst: pk11_OpFlagsToAttributes
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1666,1
    - Dst: PK11_DeriveWithTemplate
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1667,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 8
    argNames:
    - baseKey
    - derive
    - param
    - target
    - operation
    - keySize
    - flags
    - isPerm
    argTypes:
    - PK11SymKey*
    - CK_MECHANISM_TYPE
    - SECItem*
    - CK_MECHANISM_TYPE
    - CK_ATTRIBUTE_TYPE
    - int
    - CK_FLAGS
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1669
      start: 1650
    functionDepth: 1
    functionLinenumber: 1650
    functionLinenumberEnd: 1669
    functionName: PK11_DeriveWithFlagsPerm
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 0
    functionsReached:
    - pk11_OpFlagsToAttributes
    - PK11_DeriveWithTemplate
    - PK11_SETATTRS
    linkageType: ''
    returnType: PK11SymKey
    signature: "PK11SymKey *\nPK11_DeriveWithFlagsPerm(PK11SymKey *baseKey, CK_MECHANISM_TYPE
      derive,\n                         SECItem *param, CK_MECHANISM_TYPE target,
      CK_ATTRIBUTE_TYPE operation,\n                         int keySize, CK_FLAGS
      flags, PRBool isPerm)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1694,1
    - Dst: pk11_FindAttrInTemplate
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1714,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1715,1
    - Dst: pk11_FindAttrInTemplate
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1718,1
    - Dst: PK11_GetKeyType
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1719,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1720,1
    - Dst: pk11_FindAttrInTemplate
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1724,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1726,1
    - Dst: pk11_FindAttrInTemplate
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1730,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1731,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1736,1
    - Dst: PK11_DoesMechanism
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1739,1
    - Dst: PK11_GetBestSlot
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1741,1
    - Dst: pk11_CopyToSlot
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1746,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1748,1
    - Dst: pk11_CreateSymKey
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1756,1
    - Dst: PK11_GetRWSession
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1774,1
    - Dst: pk11_EnterKeyMonitor
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1776,1
    - Dst: pk11_ExitKeyMonitor
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1781,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1784,1
    - Dst: PK11_RestoreROSession
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1787,1
    - Dst: pk11_ExitKeyMonitor
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1789,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1793,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1795,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1796,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1796,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 81
    argCount: 9
    argNames:
    - baseKey
    - derive
    - param
    - target
    - operation
    - keySize
    - userAttr
    - numAttrs
    - isPerm
    argTypes:
    - PK11SymKey*
    - CK_MECHANISM_TYPE
    - SECItem*
    - CK_MECHANISM_TYPE
    - CK_ATTRIBUTE_TYPE
    - int
    - CK_ATTRIBUTE*
    - unsigned int
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1800
      start: 1671
    functionDepth: 8
    functionLinenumber: 1671
    functionLinenumberEnd: 1800
    functionName: PK11_DeriveWithTemplate
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 3
    functionsReached:
    - pk11_CreateSymKey
    - pk11_ExitKeyMonitor
    - pk11_CopyToSlot
    - PK11_GetBestSlot
    - PR_ASSERT
    - PK11_DoesMechanism
    - PORT_SetError
    - PK11_GetRWSession
    - PK11_GetKeyType
    - PK11_SETATTRS
    - pk11_EnterKeyMonitor
    - PK11_GETTAB
    - PK11_RestoreROSession
    - pk11_FindAttrInTemplate
    - PK11_MapError
    - PK11_FreeSlot
    - PK11_FreeSymKey
    linkageType: ''
    returnType: PK11SymKey
    signature: "PK11SymKey *\nPK11_DeriveWithTemplate(PK11SymKey *baseKey, CK_MECHANISM_TYPE
      derive,\n                        SECItem *param, CK_MECHANISM_TYPE target, CK_ATTRIBUTE_TYPE
      operation,\n                        int keySize, CK_ATTRIBUTE *userAttr, unsigned
      int numAttrs,\n                        PRBool isPerm)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1813,1
    - Dst: PK11_Derive
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1822,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - base
    - data
    - dataLen
    - target
    - operation
    argTypes:
    - PK11SymKey*
    - CK_BYTE*
    - CK_ULONG
    - CK_MECHANISM_TYPE
    - CK_ATTRIBUTE_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1824
      start: 1804
    functionDepth: 2
    functionLinenumber: 1804
    functionLinenumberEnd: 1824
    functionName: pk11_ConcatenateBaseAndData
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PK11_Derive
    linkageType: ''
    returnType: PK11SymKey
    signature: "PK11SymKey *\npk11_ConcatenateBaseAndData(PK11SymKey *base,\n                            CK_BYTE
      *data, CK_ULONG dataLen, CK_MECHANISM_TYPE target,\n                            CK_ATTRIBUTE_TYPE
      operation)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1836,1
    - Dst: PK11_Derive
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1843,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - base
    - key
    - target
    - operation
    - keySize
    argTypes:
    - PK11SymKey*
    - PK11SymKey*
    - CK_MECHANISM_TYPE
    - CK_ATTRIBUTE_TYPE
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1845
      start: 1828
    functionDepth: 2
    functionLinenumber: 1828
    functionLinenumberEnd: 1845
    functionName: pk11_ConcatenateBaseAndKey
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PK11_Derive
    linkageType: ''
    returnType: PK11SymKey
    signature: "PK11SymKey *\npk11_ConcatenateBaseAndKey(PK11SymKey *base,\n                           PK11SymKey
      *key, CK_MECHANISM_TYPE target,\n                           CK_ATTRIBUTE_TYPE
      operation, CK_ULONG keySize)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1855,1
    - Dst: PK11_SymKeysToSameSlot
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1859,1
    - Dst: pk11_ConcatenateBaseAndKey
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1867,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1868,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1869,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - left
    - right
    - target
    - operation
    argTypes:
    - PK11SymKey*
    - PK11SymKey*
    - CK_MECHANISM_TYPE
    - CK_ATTRIBUTE_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1871
      start: 1847
    functionDepth: 10
    functionLinenumber: 1847
    functionLinenumberEnd: 1871
    functionName: PK11_ConcatSymKeys
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 0
    functionsReached:
    - PK11_SymKeysToSameSlot
    - PORT_SetError
    - pk11_ConcatenateBaseAndKey
    - PK11_FreeSymKey
    linkageType: ''
    returnType: PK11SymKey
    signature: 'PK11SymKey *

      PK11_ConcatSymKeys(PK11SymKey *left, PK11SymKey *right, CK_MECHANISM_TYPE target,
      CK_ATTRIBUTE_TYPE operation)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_Derive
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1881,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - toBeHashed
    - hashMechanism
    - target
    - operation
    - keySize
    argTypes:
    - PK11SymKey*
    - CK_MECHANISM_TYPE
    - CK_MECHANISM_TYPE
    - CK_ATTRIBUTE_TYPE
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1882
      start: 1876
    functionDepth: 2
    functionLinenumber: 1876
    functionLinenumberEnd: 1882
    functionName: pk11_HashKeyDerivation
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 0
    functionsReached:
    - PK11_Derive
    linkageType: ''
    returnType: PK11SymKey
    signature: "PK11SymKey *\npk11_HashKeyDerivation(PK11SymKey *toBeHashed,\n                       CK_MECHANISM_TYPE
      hashMechanism, CK_MECHANISM_TYPE target,\n                       CK_ATTRIBUTE_TYPE
      operation, CK_ULONG keySize)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1902,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1928,1
    - Dst: PK11_GetKeyType
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1934,1
    - Dst: pk11_GetPredefinedKeyLength
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1935,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1945,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1962,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1964,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1973,1
    - Dst: pk11_ForceSlotMultiple
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1985,1
    - Dst: pk11_ConcatenateBaseAndData
      Src: /src/nss/lib/pk11wrap/pk11skey.c:1993,1
    - Dst: pk11_HashKeyDerivation
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2005,1
    - Dst: pk11_HashKeyDerivation
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2010,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2013,1
    - Dst: pk11_ConcatenateBaseAndKey
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2028,1
    - Dst: pk11_ConcatenateBaseAndKey
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2034,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2039,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2040,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2050,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2052,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2056,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2058,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2060,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 115
    argCount: 6
    argNames:
    - sharedSecret
    - kdf
    - sharedData
    - target
    - operation
    - keySize
    argTypes:
    - PK11SymKey*
    - CK_EC_KDF_TYPE
    - SECItem*
    - CK_MECHANISM_TYPE
    - CK_ATTRIBUTE_TYPE
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2062
      start: 1886
    functionDepth: 9
    functionLinenumber: 1886
    functionLinenumberEnd: 2062
    functionName: pk11_ANSIX963Derive
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - pk11_ConcatenateBaseAndKey
    - PORT_ZFree
    - PORT_Memcpy
    - pk11_ConcatenateBaseAndData
    - PORT_SetError
    - PK11_GetKeyType
    - pk11_GetPredefinedKeyLength
    - pk11_HashKeyDerivation
    - pk11_ForceSlotMultiple
    - PK11_FreeSymKey
    linkageType: ''
    returnType: PK11SymKey
    signature: "PK11SymKey *\npk11_ANSIX963Derive(PK11SymKey *sharedSecret,\n                    CK_EC_KDF_TYPE
      kdf, SECItem *sharedData,\n                    CK_MECHANISM_TYPE target, CK_ATTRIBUTE_TYPE
      operation,\n                    CK_ULONG keySize)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2081,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2082,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2085,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2087,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2087,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - privKey
    argTypes:
    - SECKEYPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2091
      start: 2069
    functionDepth: 2
    functionLinenumber: 2069
    functionLinenumberEnd: 2091
    functionName: PK11_DerivePubKeyFromPrivKey
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    - PK11_GETTAB
    - PK11_EnterSlotMonitor
    - PK11_ExitSlotMonitor
    - PK11_MapError
    linkageType: ''
    returnType: CK_OBJECT_HANDLE
    signature: CK_OBJECT_HANDLE PK11_DerivePubKeyFromPrivKey(SECKEYPrivateKey *privKey)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: pk11_CreateSymKey
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2110,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2134,1
    - Dst: pk11_EnterKeyMonitor
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2163,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2164,1
    - Dst: pk11_ExitKeyMonitor
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2167,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2170,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2170,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2182,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2186,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2188,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2190,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2192,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2195,1
    - Dst: PK11_GetKeyType
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2197,1
    - Dst: pk11_EnterKeyMonitor
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2210,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2211,1
    - Dst: pk11_ExitKeyMonitor
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2214,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2217,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2217,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2230,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2234,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2236,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2238,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2240,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2243,1
    - Dst: PK11_GetKeyType
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2245,1
    - Dst: pk11_GetPredefinedKeyLength
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2248,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2258,1
    - Dst: pk11_EnterKeyMonitor
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2269,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2270,1
    - Dst: pk11_ExitKeyMonitor
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2273,1
    - Dst: pk11_ECGetPubkeyEncoding
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2277,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2278,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2280,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2282,1
    - Dst: pk11_EnterKeyMonitor
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2288,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2289,1
    - Dst: pk11_ExitKeyMonitor
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2292,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2294,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2297,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2301,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2301,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2305,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 135
    argCount: 10
    argNames:
    - privKey
    - pubKey
    - isSender
    - randomA
    - randomB
    - derive
    - target
    - operation
    - keySize
    - wincx
    argTypes:
    - SECKEYPrivateKey*
    - SECKEYPublicKey*
    - PRBool
    - SECItem*
    - SECItem*
    - CK_MECHANISM_TYPE
    - CK_MECHANISM_TYPE
    - CK_ATTRIBUTE_TYPE
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2307
      start: 2098
    functionDepth: 4
    functionLinenumber: 2098
    functionLinenumberEnd: 2307
    functionName: PK11_PubDerive
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 0
    functionsReached:
    - pk11_CreateSymKey
    - SEC_ASN1EncodeItem
    - PORT_ZFree
    - pk11_ExitKeyMonitor
    - PORT_ZNew
    - PR_ASSERT
    - PORT_SetError
    - PK11_GETTAB
    - PK11_SETATTRS
    - pk11_EnterKeyMonitor
    - PK11_GetKeyType
    - pk11_GetPredefinedKeyLength
    - SEC_ASN1_GET
    - PK11_FreeSymKey
    - PK11_MapError
    - SECITEM_FreeItem
    - pk11_ECGetPubkeyEncoding
    linkageType: ''
    returnType: PK11SymKey
    signature: "PK11SymKey *\nPK11_PubDerive(SECKEYPrivateKey *privKey, SECKEYPublicKey
      *pubKey,\n               PRBool isSender, SECItem *randomA, SECItem *randomB,\n
      \              CK_MECHANISM_TYPE derive, CK_MECHANISM_TYPE target,\n               CK_ATTRIBUTE_TYPE
      operation, int keySize, void *wincx)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_InitCheapArena
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2319,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2322,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2323,1
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2326,1
    - Dst: PORT_DestroyCheapArena
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2340,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - pubKey
    argTypes:
    - SECKEYPublicKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2342
      start: 2311
    functionDepth: 1
    functionLinenumber: 2311
    functionLinenumberEnd: 2342
    functionName: pk11_ECGetPubkeyEncoding
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 1
    functionsReached:
    - SECOID_FindOIDTag
    - SEC_QuickDERDecodeItem
    - PORT_InitCheapArena
    - SEC_ASN1_GET
    - PORT_DestroyCheapArena
    linkageType: ''
    returnType: ECPointEncoding
    signature: ECPointEncoding pk11_ECGetPubkeyEncoding(const SECKEYPublicKey *pubKey)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pk11_ECGetPubkeyEncoding
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2351,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - pubKey
    argTypes:
    - SECKEYPublicKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2361
      start: 2346
    functionDepth: 2
    functionLinenumber: 2346
    functionLinenumberEnd: 2361
    functionName: pk11_ECPubKeySize
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 0
    functionsReached:
    - pk11_ECGetPubkeyEncoding
    linkageType: ''
    returnType: CK_ULONG
    signature: CK_ULONG pk11_ECPubKeySize(SECKEYPublicKey *pubKey)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2386,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2392,1
    - Dst: pk11_CreateSymKey
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2397,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2412,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2414,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2416,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2418,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2421,1
    - Dst: PK11_GetKeyType
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2423,1
    - Dst: pk11_GetPredefinedKeyLength
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2426,1
    - Dst: pk11_ECPubKeySize
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2433,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2435,1
    - Dst: PORT_AssertNotReached
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2455,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2456,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2457,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2464,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2466,1
    - Dst: pk11_EnterKeyMonitor
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2484,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2485,1
    - Dst: pk11_ExitKeyMonitor
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2488,1
    - Dst: pk11_ECGetPubkeyEncoding
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2495,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2498,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2500,1
    - Dst: pk11_EnterKeyMonitor
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2507,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2508,1
    - Dst: pk11_ExitKeyMonitor
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2511,1
    - Dst: pk11_ECPubKeySize
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2521,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2523,1
    - Dst: pk11_EnterKeyMonitor
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2535,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2536,1
    - Dst: pk11_ExitKeyMonitor
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2539,1
    - Dst: pk11_EnterKeyMonitor
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2547,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2548,1
    - Dst: pk11_ExitKeyMonitor
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2551,1
    - Dst: pk11_ANSIX963Derive
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2556,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2559,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2561,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2562,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2567,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2571,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2574,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2576,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2576,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 146
    argCount: 12
    argNames:
    - privKey
    - pubKey
    - isSender
    - randomA
    - randomB
    - derive
    - target
    - operation
    - keySize
    - kdf
    - sharedData
    - wincx
    argTypes:
    - SECKEYPrivateKey*
    - SECKEYPublicKey*
    - PRBool
    - SECItem*
    - SECItem*
    - CK_MECHANISM_TYPE
    - CK_MECHANISM_TYPE
    - CK_ATTRIBUTE_TYPE
    - int
    - CK_ULONG
    - SECItem*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2579
      start: 2363
    functionDepth: 10
    functionLinenumber: 2363
    functionLinenumberEnd: 2579
    functionName: pk11_PubDeriveECKeyWithKDF
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 0
    functionsReached:
    - pk11_CreateSymKey
    - PORT_ZNew
    - pk11_ANSIX963Derive
    - pk11_EnterKeyMonitor
    - SEC_ASN1EncodeItem
    - PK11_MapError
    - PORT_SetError
    - PK11_FreeSymKey
    - SECITEM_FreeItem
    - PORT_ZFree
    - PK11_GetKeyType
    - pk11_ExitKeyMonitor
    - PORT_AssertNotReached
    - PR_ASSERT
    - PK11_GETTAB
    - PK11_SETATTRS
    - pk11_GetPredefinedKeyLength
    - SEC_ASN1_GET
    - pk11_ECPubKeySize
    - pk11_ECGetPubkeyEncoding
    linkageType: ''
    returnType: PK11SymKey
    signature: "PK11SymKey *\npk11_PubDeriveECKeyWithKDF(\n    SECKEYPrivateKey *privKey,
      SECKEYPublicKey *pubKey,\n    PRBool isSender, SECItem *randomA, SECItem *randomB,\n
      \   CK_MECHANISM_TYPE derive, CK_MECHANISM_TYPE target,\n    CK_ATTRIBUTE_TYPE
      operation, int keySize,\n    CK_ULONG kdf, SECItem *sharedData, void *wincx)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PK11_PubDerive
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2596,1
    - Dst: pk11_PubDeriveECKeyWithKDF
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2600,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2605,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 12
    argNames:
    - privKey
    - pubKey
    - isSender
    - randomA
    - randomB
    - derive
    - target
    - operation
    - keySize
    - kdf
    - sharedData
    - wincx
    argTypes:
    - SECKEYPrivateKey*
    - SECKEYPublicKey*
    - PRBool
    - SECItem*
    - SECItem*
    - CK_MECHANISM_TYPE
    - CK_MECHANISM_TYPE
    - CK_ATTRIBUTE_TYPE
    - int
    - CK_ULONG
    - SECItem*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2610
      start: 2581
    functionDepth: 11
    functionLinenumber: 2581
    functionLinenumberEnd: 2610
    functionName: PK11_PubDeriveWithKDF
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 3
    functionsReached:
    - pk11_PubDeriveECKeyWithKDF
    - PORT_SetError
    - PK11_PubDerive
    linkageType: ''
    returnType: PK11SymKey
    signature: "PK11SymKey *\nPK11_PubDeriveWithKDF(SECKEYPrivateKey *privKey, SECKEYPublicKey
      *pubKey,\n                      PRBool isSender, SECItem *randomA, SECItem *randomB,\n
      \                     CK_MECHANISM_TYPE derive, CK_MECHANISM_TYPE target,\n
      \                     CK_ATTRIBUTE_TYPE operation, int keySize,\n                      CK_ULONG
      kdf, SECItem *sharedData, void *wincx)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Alloc
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2637,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2639,1
    - Dst: pk11_GetNewSession
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2647,1
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2649,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2650,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2653,1
    - Dst: pk11_CloseSession
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2654,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2655,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2656,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2656,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2661,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2664,1
    - Dst: pk11_CloseSession
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2665,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2667,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2668,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2668,1
    - Dst: PK11_DoesMechanism
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2677,1
    - Dst: pk11_ImportSymKeyWithTempl
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2678,1
    - Dst: PK11_GetBestSlot
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2682,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2684,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2685,1
    - Dst: pk11_ImportSymKeyWithTempl
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2690,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2693,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2695,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 57
    argCount: 11
    argNames:
    - slot
    - wrappingKey
    - mech
    - inKey
    - target
    - keyTemplate
    - templateCount
    - key_size
    - wincx
    - crvp
    - isPerm
    argTypes:
    - PK11SlotInfo*
    - CK_OBJECT_HANDLE
    - CK_MECHANISM*
    - SECItem*
    - CK_MECHANISM_TYPE
    - CK_ATTRIBUTE*
    - unsigned int
    - int
    - void*
    - CK_RV*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2700
      start: 2617
    functionDepth: 8
    functionLinenumber: 2617
    functionLinenumberEnd: 2700
    functionName: pk11_HandUnwrap
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PK11_FreeSlot
    - PORT_Free
    - PK11_GetBestSlot
    - PK11_DoesMechanism
    - PORT_SetError
    - PK11_GETTAB
    - PK11_EnterSlotMonitor
    - pk11_ImportSymKeyWithTempl
    - PK11_ExitSlotMonitor
    - pk11_CloseSession
    - PK11_MapError
    - pk11_GetNewSession
    linkageType: ''
    returnType: PK11SymKey
    signature: "PK11SymKey *\npk11_HandUnwrap(PK11SlotInfo *slot, CK_OBJECT_HANDLE
      wrappingKey,\n                CK_MECHANISM *mech, SECItem *inKey, CK_MECHANISM_TYPE
      target,\n                CK_ATTRIBUTE *keyTemplate, unsigned int templateCount,\n
      \               int key_size, void *wincx, CK_RV *crvp, PRBool isPerm)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2730,1
    - Dst: pk11_FindAttrInTemplate
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2750,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2751,1
    - Dst: pk11_FindAttrInTemplate
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2754,1
    - Dst: PK11_GetKeyType
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2755,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2756,1
    - Dst: pk11_FindAttrInTemplate
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2760,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2761,1
    - Dst: pk11_FindAttrInTemplate
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2769,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2771,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2776,1
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2784,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2785,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2788,1
    - Dst: PK11_ParamFromIV
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2802,1
    - Dst: PK11_DoesMechanism
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2811,1
    - Dst: pk11_HandUnwrap
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2812,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2817,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2826,1
    - Dst: pk11_CreateSymKey
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2833,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2836,1
    - Dst: PK11_GetRWSession
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2844,1
    - Dst: pk11_EnterKeyMonitor
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2846,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2849,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2853,1
    - Dst: PK11_RestoreROSession
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2859,1
    - Dst: pk11_ExitKeyMonitor
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2861,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2864,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2866,1
    - Dst: pk11_HandUnwrap
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2870,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 104
    argCount: 12
    argNames:
    - slot
    - wrappingKey
    - wrapType
    - param
    - wrappedKey
    - target
    - operation
    - keySize
    - wincx
    - userAttr
    - numAttrs
    - isPerm
    argTypes:
    - PK11SlotInfo*
    - CK_OBJECT_HANDLE
    - CK_MECHANISM_TYPE
    - SECItem*
    - SECItem*
    - CK_MECHANISM_TYPE
    - CK_ATTRIBUTE_TYPE
    - int
    - void*
    - CK_ATTRIBUTE*
    - unsigned int
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2877
      start: 2707
    functionDepth: 9
    functionLinenumber: 2707
    functionLinenumberEnd: 2877
    functionName: pk11_AnyUnwrapKey
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 0
    functionsReached:
    - pk11_CreateSymKey
    - PK11_DoesMechanism
    - pk11_EnterKeyMonitor
    - pk11_HandUnwrap
    - PK11_GetRWSession
    - PORT_SetError
    - PK11_RestoreROSession
    - pk11_FindAttrInTemplate
    - SECITEM_FreeItem
    - PORT_Assert
    - PK11_ParamFromIV
    - PK11_GetKeyType
    - pk11_ExitKeyMonitor
    - PR_ASSERT
    - PK11_GETTAB
    - PK11_SETATTRS
    - PK11_EnterSlotMonitor
    - PK11_ExitSlotMonitor
    - PK11_FreeSymKey
    linkageType: ''
    returnType: PK11SymKey
    signature: "PK11SymKey *\npk11_AnyUnwrapKey(PK11SlotInfo *slot, CK_OBJECT_HANDLE
      wrappingKey,\n                  CK_MECHANISM_TYPE wrapType, SECItem *param,
      SECItem *wrappedKey,\n                  CK_MECHANISM_TYPE target, CK_ATTRIBUTE_TYPE
      operation, int keySize,\n                  void *wincx, CK_ATTRIBUTE *userAttr,
      unsigned int numAttrs, PRBool isPerm)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pk11_AnyUnwrapKey
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2886,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - wrappingKey
    - wrapType
    - param
    - wrappedKey
    - target
    - operation
    - keySize
    argTypes:
    - PK11SymKey*
    - CK_MECHANISM_TYPE
    - SECItem*
    - SECItem*
    - CK_MECHANISM_TYPE
    - CK_ATTRIBUTE_TYPE
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2889
      start: 2880
    functionDepth: 10
    functionLinenumber: 2880
    functionLinenumberEnd: 2889
    functionName: PK11_UnwrapSymKey
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 1
    functionsReached:
    - pk11_AnyUnwrapKey
    linkageType: ''
    returnType: PK11SymKey
    signature: "PK11SymKey *\nPK11_UnwrapSymKey(PK11SymKey *wrappingKey, CK_MECHANISM_TYPE
      wrapType,\n                  SECItem *param, SECItem *wrappedKey,\n                  CK_MECHANISM_TYPE
      target, CK_ATTRIBUTE_TYPE operation,\n                  int keySize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pk11_OpFlagsToAttributes
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2902,1
    - Dst: pk11_AnyUnwrapKey
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2903,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 8
    argNames:
    - wrappingKey
    - wrapType
    - param
    - wrappedKey
    - target
    - operation
    - keySize
    - flags
    argTypes:
    - PK11SymKey*
    - CK_MECHANISM_TYPE
    - SECItem*
    - SECItem*
    - CK_MECHANISM_TYPE
    - CK_ATTRIBUTE_TYPE
    - int
    - CK_FLAGS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2906
      start: 2892
    functionDepth: 10
    functionLinenumber: 2892
    functionLinenumberEnd: 2906
    functionName: PK11_UnwrapSymKeyWithFlags
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 0
    functionsReached:
    - pk11_OpFlagsToAttributes
    - pk11_AnyUnwrapKey
    linkageType: ''
    returnType: PK11SymKey
    signature: "PK11SymKey *\nPK11_UnwrapSymKeyWithFlags(PK11SymKey *wrappingKey,
      CK_MECHANISM_TYPE wrapType,\n                           SECItem *param, SECItem
      *wrappedKey,\n                           CK_MECHANISM_TYPE target, CK_ATTRIBUTE_TYPE
      operation,\n                           int keySize, CK_FLAGS flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2922,1
    - Dst: pk11_OpFlagsToAttributes
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2926,1
    - Dst: pk11_AnyUnwrapKey
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2928,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 9
    argNames:
    - wrappingKey
    - wrapType
    - param
    - wrappedKey
    - target
    - operation
    - keySize
    - flags
    - isPerm
    argTypes:
    - PK11SymKey*
    - CK_MECHANISM_TYPE
    - SECItem*
    - SECItem*
    - CK_MECHANISM_TYPE
    - CK_ATTRIBUTE_TYPE
    - int
    - CK_FLAGS
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2931
      start: 2908
    functionDepth: 10
    functionLinenumber: 2908
    functionLinenumberEnd: 2931
    functionName: PK11_UnwrapSymKeyWithFlagsPerm
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 1
    functionsReached:
    - pk11_OpFlagsToAttributes
    - pk11_AnyUnwrapKey
    - PK11_SETATTRS
    linkageType: ''
    returnType: PK11SymKey
    signature: "PK11SymKey *\nPK11_UnwrapSymKeyWithFlagsPerm(PK11SymKey *wrappingKey,\n
      \                              CK_MECHANISM_TYPE wrapType,\n                               SECItem
      *param, SECItem *wrappedKey,\n                               CK_MECHANISM_TYPE
      target, CK_ATTRIBUTE_TYPE operation,\n                               int keySize,
      CK_FLAGS flags, PRBool isPerm)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pk11_mapWrapKeyType
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2938,1
    - Dst: PK11_PubUnwrapSymKeyWithMechanism
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2940,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - wrappingKey
    - wrappedKey
    - target
    - operation
    - keySize
    argTypes:
    - SECKEYPrivateKey*
    - SECItem*
    - CK_MECHANISM_TYPE
    - CK_ATTRIBUTE_TYPE
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2943
      start: 2934
    functionDepth: 1
    functionLinenumber: 2934
    functionLinenumberEnd: 2943
    functionName: PK11_PubUnwrapSymKey
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 0
    functionsReached:
    - PK11_PubUnwrapSymKeyWithMechanism
    - pk11_mapWrapKeyType
    linkageType: ''
    returnType: PK11SymKey
    signature: "PK11SymKey *\nPK11_PubUnwrapSymKey(SECKEYPrivateKey *wrappingKey,
      SECItem *wrappedKey,\n                     CK_MECHANISM_TYPE target, CK_ATTRIBUTE_TYPE
      operation, int keySize)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECKEY_HAS_ATTRIBUTE_SET
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2954,1
    - Dst: PK11_HandlePasswordCheck
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2955,1
    - Dst: pk11_AnyUnwrapKey
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2958,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 7
    argNames:
    - wrappingKey
    - mechType
    - param
    - wrappedKey
    - target
    - operation
    - keySize
    argTypes:
    - SECKEYPrivateKey*
    - CK_MECHANISM_TYPE
    - SECItem*
    - SECItem*
    - CK_MECHANISM_TYPE
    - CK_ATTRIBUTE_TYPE
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2961
      start: 2946
    functionDepth: 10
    functionLinenumber: 2946
    functionLinenumberEnd: 2961
    functionName: PK11_PubUnwrapSymKeyWithMechanism
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 1
    functionsReached:
    - PK11_HandlePasswordCheck
    - pk11_AnyUnwrapKey
    - SECKEY_HAS_ATTRIBUTE_SET
    linkageType: ''
    returnType: PK11SymKey
    signature: "PK11SymKey *\nPK11_PubUnwrapSymKeyWithMechanism(SECKEYPrivateKey *wrappingKey,\n
      \                                 CK_MECHANISM_TYPE mechType, SECItem *param,\n
      \                                 SECItem *wrappedKey, CK_MECHANISM_TYPE target,\n
      \                                 CK_ATTRIBUTE_TYPE operation, int keySize)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pk11_mapWrapKeyType
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2969,1
    - Dst: pk11_OpFlagsToAttributes
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2975,1
    - Dst: SECKEY_HAS_ATTRIBUTE_SET
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2977,1
    - Dst: PK11_HandlePasswordCheck
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2978,1
    - Dst: pk11_AnyUnwrapKey
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2981,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - wrappingKey
    - wrappedKey
    - target
    - operation
    - keySize
    - flags
    argTypes:
    - SECKEYPrivateKey*
    - SECItem*
    - CK_MECHANISM_TYPE
    - CK_ATTRIBUTE_TYPE
    - int
    - CK_FLAGS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2984
      start: 2964
    functionDepth: 10
    functionLinenumber: 2964
    functionLinenumberEnd: 2984
    functionName: PK11_PubUnwrapSymKeyWithFlags
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 0
    functionsReached:
    - pk11_OpFlagsToAttributes
    - SECKEY_HAS_ATTRIBUTE_SET
    - PK11_HandlePasswordCheck
    - pk11_AnyUnwrapKey
    - pk11_mapWrapKeyType
    linkageType: ''
    returnType: PK11SymKey
    signature: "PK11SymKey *\nPK11_PubUnwrapSymKeyWithFlags(SECKEYPrivateKey *wrappingKey,\n
      \                             SECItem *wrappedKey, CK_MECHANISM_TYPE target,\n
      \                             CK_ATTRIBUTE_TYPE operation, int keySize, CK_FLAGS
      flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pk11_mapWrapKeyType
      Src: /src/nss/lib/pk11wrap/pk11skey.c:2992,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11skey.c:3001,1
    - Dst: pk11_OpFlagsToAttributes
      Src: /src/nss/lib/pk11wrap/pk11skey.c:3006,1
    - Dst: SECKEY_HAS_ATTRIBUTE_SET
      Src: /src/nss/lib/pk11wrap/pk11skey.c:3008,1
    - Dst: PK11_HandlePasswordCheck
      Src: /src/nss/lib/pk11wrap/pk11skey.c:3009,1
    - Dst: pk11_AnyUnwrapKey
      Src: /src/nss/lib/pk11wrap/pk11skey.c:3012,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 7
    argNames:
    - wrappingKey
    - wrappedKey
    - target
    - operation
    - keySize
    - flags
    - isPerm
    argTypes:
    - SECKEYPrivateKey*
    - SECItem*
    - CK_MECHANISM_TYPE
    - CK_ATTRIBUTE_TYPE
    - int
    - CK_FLAGS
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3015
      start: 2986
    functionDepth: 10
    functionLinenumber: 2986
    functionLinenumberEnd: 3015
    functionName: PK11_PubUnwrapSymKeyWithFlagsPerm
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 0
    functionsReached:
    - pk11_OpFlagsToAttributes
    - SECKEY_HAS_ATTRIBUTE_SET
    - PK11_HandlePasswordCheck
    - pk11_AnyUnwrapKey
    - PK11_SETATTRS
    - pk11_mapWrapKeyType
    linkageType: ''
    returnType: PK11SymKey
    signature: "PK11SymKey *\nPK11_PubUnwrapSymKeyWithFlagsPerm(SECKEYPrivateKey *wrappingKey,\n
      \                                 SECItem *wrappedKey, CK_MECHANISM_TYPE target,\n
      \                                 CK_ATTRIBUTE_TYPE operation, int keySize,\n
      \                                 CK_FLAGS flags, PRBool isPerm)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11skey.c:3026,1
    - Dst: pk11_EnterKeyMonitor
      Src: /src/nss/lib/pk11wrap/pk11skey.c:3027,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11skey.c:3028,1
    - Dst: pk11_ExitKeyMonitor
      Src: /src/nss/lib/pk11wrap/pk11skey.c:3030,1
    - Dst: PK11_ReferenceSymKey
      Src: /src/nss/lib/pk11wrap/pk11skey.c:3032,1
    - Dst: pk11_CopyToSlot
      Src: /src/nss/lib/pk11wrap/pk11skey.c:3036,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - originalKey
    - mech
    argTypes:
    - PK11SymKey*
    - CK_MECHANISM_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3037
      start: 3017
    functionDepth: 8
    functionLinenumber: 3017
    functionLinenumberEnd: 3037
    functionName: PK11_CopySymKeyForSigning
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 0
    functionsReached:
    - pk11_ExitKeyMonitor
    - pk11_CopyToSlot
    - PK11_GETTAB
    - PK11_SETATTRS
    - pk11_EnterKeyMonitor
    - PK11_ReferenceSymKey
    linkageType: ''
    returnType: PK11SymKey
    signature: 'PK11SymKey *

      PK11_CopySymKeyForSigning(PK11SymKey *originalKey, CK_MECHANISM_TYPE mech)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - symKey
    argTypes:
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3043
      start: 3039
    functionDepth: 0
    functionLinenumber: 3039
    functionLinenumberEnd: 3043
    functionName: PK11_SetFortezzaHack
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK11_SetFortezzaHack(PK11SymKey *symKey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11skey.c:3062,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11skey.c:3063,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11skey.c:3065,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11skey.c:3068,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - symKey
    - iv
    - len
    argTypes:
    - PK11SymKey*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3070
      start: 3049
    functionDepth: 2
    functionLinenumber: 3049
    functionLinenumberEnd: 3070
    functionName: PK11_GenerateFortezzaIV
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 0
    functionsReached:
    - PK11_ExitSlotMonitor
    - PK11_GETTAB
    - PK11_EnterSlotMonitor
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11_GenerateFortezzaIV(PK11SymKey *symKey, unsigned char
      *iv, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - symKey
    argTypes:
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3076
      start: 3072
    functionDepth: 0
    functionLinenumber: 3072
    functionLinenumberEnd: 3076
    functionName: PK11_GetSymKeyHandle
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: CK_OBJECT_HANDLE
    signature: CK_OBJECT_HANDLE PK11_GetSymKeyHandle(PK11SymKey *symKey)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - pubKey
    argTypes:
    - SECKEYKyberPublicKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3091
      start: 3078
    functionDepth: 0
    functionLinenumber: 3078
    functionLinenumberEnd: 3091
    functionName: pk11_KyberCiphertextLength
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_ULONG
    signature: CK_ULONG pk11_KyberCiphertextLength(SECKEYKyberPublicKey *pubKey)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pk11_KyberCiphertextLength
      Src: /src/nss/lib/pk11wrap/pk11skey.c:3098,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11skey.c:3101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - pubKey
    argTypes:
    - SECKEYPublicKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3104
      start: 3093
    functionDepth: 1
    functionLinenumber: 3093
    functionLinenumberEnd: 3104
    functionName: pk11_KEMCiphertextLength
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - pk11_KyberCiphertextLength
    linkageType: ''
    returnType: CK_ULONG
    signature: CK_ULONG pk11_KEMCiphertextLength(SECKEYPublicKey *pubKey)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11skey.c:3109,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11skey.c:3110,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11skey.c:3111,1
    - Dst: PK11_ReadULongAttribute
      Src: /src/nss/lib/pk11wrap/pk11skey.c:3138,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:3147,1
    - Dst: pk11_CreateSymKey
      Src: /src/nss/lib/pk11wrap/pk11skey.c:3152,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:3154,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11skey.c:3160,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11skey.c:3163,1
    - Dst: pk11_AttrFlagsToAttributes
      Src: /src/nss/lib/pk11wrap/pk11skey.c:3166,1
    - Dst: pk11_OpFlagsToAttributes
      Src: /src/nss/lib/pk11wrap/pk11skey.c:3167,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/pk11wrap/pk11skey.c:3170,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11skey.c:3172,1
    - Dst: pk11_KEMCiphertextLength
      Src: /src/nss/lib/pk11wrap/pk11skey.c:3178,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/pk11wrap/pk11skey.c:3179,1
    - Dst: pk11_EnterKeyMonitor
      Src: /src/nss/lib/pk11wrap/pk11skey.c:3185,1
    - Dst: CK_NSS_KEM_FUNCTIONS*::C_Encapsulate
      Src: /src/nss/lib/pk11wrap/pk11skey.c:3186,1
    - Dst: pk11_ExitKeyMonitor
      Src: /src/nss/lib/pk11wrap/pk11skey.c:3194,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11skey.c:3199,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:3207,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:3207,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11skey.c:3208,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11skey.c:3209,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 61
    argCount: 6
    argNames:
    - pubKey
    - target
    - attrFlags
    - opFlags
    - outKey
    - outCiphertext
    argTypes:
    - SECKEYPublicKey*
    - CK_MECHANISM_TYPE
    - PK11AttrFlags
    - CK_FLAGS
    - PK11SymKey**
    - SECItem**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3211
      start: 3106
    functionDepth: 4
    functionLinenumber: 3106
    functionLinenumberEnd: 3211
    functionName: PK11_Encapsulate
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 0
    functionsReached:
    - pk11_OpFlagsToAttributes
    - PORT_Assert
    - pk11_CreateSymKey
    - pk11_KEMCiphertextLength
    - pk11_ExitKeyMonitor
    - PR_ASSERT
    - SECITEM_AllocItem
    - PORT_SetError
    - PK11_GETTAB
    - PK11_SETATTRS
    - pk11_EnterKeyMonitor
    - PK11_MapError
    - PK11_ReadULongAttribute
    - pk11_AttrFlagsToAttributes
    - CK_NSS_KEM_FUNCTIONS*::C_Encapsulate
    - SECITEM_FreeItem
    - PK11_FreeSymKey
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11_Encapsulate(SECKEYPublicKey *pubKey, CK_MECHANISM_TYPE
      target, PK11AttrFlags attrFlags, CK_FLAGS opFlags, PK11SymKey **outKey, SECItem
      **outCiphertext)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11skey.c:3216,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11skey.c:3217,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11skey.c:3218,1
    - Dst: PK11_ReadULongAttribute
      Src: /src/nss/lib/pk11wrap/pk11skey.c:3243,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:3252,1
    - Dst: pk11_CreateSymKey
      Src: /src/nss/lib/pk11wrap/pk11skey.c:3257,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:3259,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11skey.c:3265,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11skey.c:3268,1
    - Dst: pk11_AttrFlagsToAttributes
      Src: /src/nss/lib/pk11wrap/pk11skey.c:3271,1
    - Dst: pk11_OpFlagsToAttributes
      Src: /src/nss/lib/pk11wrap/pk11skey.c:3272,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/pk11wrap/pk11skey.c:3275,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11skey.c:3277,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:3279,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11skey.c:3279,1
    - Dst: pk11_EnterKeyMonitor
      Src: /src/nss/lib/pk11wrap/pk11skey.c:3284,1
    - Dst: CK_NSS_KEM_FUNCTIONS*::C_Decapsulate
      Src: /src/nss/lib/pk11wrap/pk11skey.c:3285,1
    - Dst: pk11_ExitKeyMonitor
      Src: /src/nss/lib/pk11wrap/pk11skey.c:3293,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11skey.c:3302,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 51
    argCount: 6
    argNames:
    - privKey
    - ciphertext
    - target
    - attrFlags
    - opFlags
    - outKey
    argTypes:
    - SECKEYPrivateKey*
    - SECItem*
    - CK_MECHANISM_TYPE
    - PK11AttrFlags
    - CK_FLAGS
    - PK11SymKey**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3304
      start: 3213
    functionDepth: 4
    functionLinenumber: 3213
    functionLinenumberEnd: 3304
    functionName: PK11_Decapsulate
    functionSourceFile: /src/nss/lib/pk11wrap/pk11skey.c
    functionUses: 0
    functionsReached:
    - pk11_OpFlagsToAttributes
    - PORT_Assert
    - pk11_CreateSymKey
    - pk11_ExitKeyMonitor
    - PR_ASSERT
    - PORT_SetError
    - PK11_GETTAB
    - PK11_SETATTRS
    - pk11_EnterKeyMonitor
    - CK_NSS_KEM_FUNCTIONS*::C_Decapsulate
    - PK11_ReadULongAttribute
    - pk11_AttrFlagsToAttributes
    - PK11_MapError
    - PK11_FreeSymKey
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11_Decapsulate(SECKEYPrivateKey *privKey, const SECItem
      *ciphertext, CK_MECHANISM_TYPE target, PK11AttrFlags attrFlags, CK_FLAGS opFlags,
      PK11SymKey **outKey)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fips
    - ','
    - slot
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 291
    functionName: SECMOD_MAKE_NSS_FLAGS
    functionSourceFile: /src/nss/lib/pk11wrap/secmodt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SECMOD_MAKE_NSS_FLAGS(fips, slot)
  - BBCount: 19
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 28
    argCount: 1
    argNames:
    - algorithm
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 134
    functionName: sec_pkcs5GetCryptoFromAlgTag
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pbe.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag sec_pkcs5GetCryptoFromAlgTag(SECOidTag algorithm)
  - BBCount: 16
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 1
    argNames:
    - algtag
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 165
    functionName: SEC_PKCS5GetHashFromAlgTag
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pbe.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag SEC_PKCS5GetHashFromAlgTag(SECOidTag algtag)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:179,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:184,1
    - Dst: SEC_ASN1DecodeItem
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:189,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:199,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - arena
    - algid
    argTypes:
    - PLArenaPool*
    - SECAlgorithmID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 202
    functionName: sec_pkcs5_v2_get_v2_param
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pbe.c
    functionUses: 0
    functionsReached:
    - SEC_ASN1DecodeItem
    - PORT_ArenaZNew
    - PORT_FreeArena
    - PORT_NewArena
    linkageType: ''
    returnType: sec_pkcs5V2Parameter
    signature: 'sec_pkcs5V2Parameter *

      sec_pkcs5_v2_get_v2_param(PLArenaPool *arena, SECAlgorithmID *algid)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:208,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - param
    argTypes:
    - sec_pkcs5V2Parameter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 210
    functionName: sec_pkcs5_v2_destroy_v2_param
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pbe.c
    functionUses: 0
    functionsReached:
    - PORT_FreeArena
    linkageType: ''
    returnType: void
    signature: void sec_pkcs5_v2_destroy_v2_param(sec_pkcs5V2Parameter *param)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:225,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:234,1
    - Dst: sec_pkcs5_v2_get_v2_param
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:239,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:244,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:250,1
    - Dst: SEC_ASN1DecodeItem
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:251,1
    - Dst: HASH_GetHashOidTagByHMACOidTag
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:261,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:262,1
    - Dst: SEC_PKCS5GetHashFromAlgTag
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:265,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:269,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 1
    argNames:
    - algid
    argTypes:
    - SECAlgorithmID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 273
    functionName: SEC_PKCS5GetHashAlgorithm
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pbe.c
    functionUses: 0
    functionsReached:
    - PORT_NewArena
    - SECOID_GetAlgorithmTag
    - PORT_FreeArena
    - sec_pkcs5_v2_get_v2_param
    - SEC_ASN1DecodeItem
    - PORT_Memset
    - HASH_GetHashOidTagByHMACOidTag
    - SEC_PKCS5GetHashFromAlgTag
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag SEC_PKCS5GetHashAlgorithm(SECAlgorithmID *algid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:287,1
    - Dst: sec_pkcs5GetCryptoFromAlgTag
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:288,1
    - Dst: sec_pkcs5_v2_get_v2_param
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:294,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:296,1
    - Dst: sec_pkcs5_v2_destroy_v2_param
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:297,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - algid
    argTypes:
    - SECAlgorithmID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 277
    functionDepth: 2
    functionLinenumber: 277
    functionLinenumberEnd: 302
    functionName: SEC_PKCS5GetCryptoAlgorithm
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pbe.c
    functionUses: 0
    functionsReached:
    - sec_pkcs5_v2_destroy_v2_param
    - sec_pkcs5GetCryptoFromAlgTag
    - SECOID_GetAlgorithmTag
    - sec_pkcs5_v2_get_v2_param
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag SEC_PKCS5GetCryptoAlgorithm(SECAlgorithmID *algid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sec_pkcs5GetCryptoFromAlgTag
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - algtag
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 317
    functionName: SEC_PKCS5GetCryptoFromAlgTag
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pbe.c
    functionUses: 0
    functionsReached:
    - sec_pkcs5GetCryptoFromAlgTag
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag SEC_PKCS5GetCryptoFromAlgTag(SECOidTag algtag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SEC_PKCS5GetCryptoAlgorithm
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - algid
    argTypes:
    - SECAlgorithmID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 321
    functionDepth: 3
    functionLinenumber: 321
    functionLinenumberEnd: 325
    functionName: SEC_PKCS5IsAlgorithmPBEAlg
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pbe.c
    functionUses: 0
    functionsReached:
    - SEC_PKCS5GetCryptoAlgorithm
    linkageType: ''
    returnType: PRBool
    signature: PRBool SEC_PKCS5IsAlgorithmPBEAlg(SECAlgorithmID *algid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sec_pkcs5GetCryptoFromAlgTag
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - algtag
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 331
    functionName: SEC_PKCS5IsAlgorithmPBEAlgTag
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pbe.c
    functionUses: 2
    functionsReached:
    - sec_pkcs5GetCryptoFromAlgTag
    linkageType: ''
    returnType: PRBool
    signature: PRBool SEC_PKCS5IsAlgorithmPBEAlgTag(SECOidTag algtag)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: HASH_GetHashOidTagByHMACOidTag
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:341,1
    - Dst: HASH_GetHashTypeByOidTag
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:345,1
    - Dst: PK11_AlgtagToMechanism
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:349,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - algTag
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 356
    functionName: sec_pkcs5v2_get_pbe
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pbe.c
    functionUses: 0
    functionsReached:
    - PK11_AlgtagToMechanism
    - HASH_GetHashOidTagByHMACOidTag
    - HASH_GetHashTypeByOidTag
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag sec_pkcs5v2_get_pbe(SECOidTag algTag)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: sec_pkcs5v2_get_pbe
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:404,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 2
    argNames:
    - algTag
    - keyLen
    argTypes:
    - SECOidTag
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 362
    functionDepth: 2
    functionLinenumber: 362
    functionLinenumberEnd: 408
    functionName: SEC_PKCS5GetPBEAlgorithm
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pbe.c
    functionUses: 1
    functionsReached:
    - sec_pkcs5v2_get_pbe
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag SEC_PKCS5GetPBEAlgorithm(SECOidTag algTag, int keyLen)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - algorithm
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 432
    functionName: sec_pkcs5v2_key_length_by_oid
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pbe.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sec_pkcs5v2_key_length_by_oid(SECOidTag algorithm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sec_pkcs5v2_key_length_by_oid
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:439,1
    - Dst: PK11_AlgtagToMechanism
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:443,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:445,1
    - Dst: PK11_GetMaxKeyLength
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:448,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - algorithm
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 435
    functionDepth: 7
    functionLinenumber: 435
    functionLinenumberEnd: 449
    functionName: sec_pkcs5v2_default_key_length
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pbe.c
    functionUses: 0
    functionsReached:
    - PK11_AlgtagToMechanism
    - PORT_SetError
    - sec_pkcs5v2_key_length_by_oid
    - PK11_GetMaxKeyLength
    linkageType: ''
    returnType: int
    signature: int sec_pkcs5v2_default_key_length(SECOidTag algorithm)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:464,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:470,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:474,1
    - Dst: SEC_ASN1DecodeItem
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:475,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:482,1
    - Dst: DER_GetInteger
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:490,1
    - Dst: sec_pkcs5v2_default_key_length
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:494,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:499,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - algid
    - cipherAlgId
    argTypes:
    - SECAlgorithmID*
    - SECAlgorithmID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 454
    functionDepth: 8
    functionLinenumber: 454
    functionLinenumberEnd: 502
    functionName: sec_pkcs5v2_key_length
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pbe.c
    functionUses: 0
    functionsReached:
    - PORT_NewArena
    - SECOID_GetAlgorithmTag
    - PORT_FreeArena
    - SEC_ASN1DecodeItem
    - PORT_Memset
    - sec_pkcs5v2_default_key_length
    - DER_GetInteger
    linkageType: ''
    returnType: int
    signature: int sec_pkcs5v2_key_length(SECAlgorithmID *algid, SECAlgorithmID *cipherAlgId)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:516,1
    - Dst: sec_pkcs5v2_key_length
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:538,1
    - Dst: sec_pkcs5_v2_get_v2_param
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:543,1
    - Dst: sec_pkcs5v2_key_length
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:545,1
    - Dst: sec_pkcs5_v2_destroy_v2_param
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:547,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 38
    argCount: 1
    argNames:
    - algid
    argTypes:
    - SECAlgorithmID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 507
    functionDepth: 9
    functionLinenumber: 507
    functionLinenumberEnd: 556
    functionName: SEC_PKCS5GetKeyLength
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pbe.c
    functionUses: 0
    functionsReached:
    - sec_pkcs5_v2_destroy_v2_param
    - sec_pkcs5_v2_get_v2_param
    - SECOID_GetAlgorithmTag
    - sec_pkcs5v2_key_length
    linkageType: ''
    returnType: int
    signature: int SEC_PKCS5GetKeyLength(SECAlgorithmID *algid)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - algorithm
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 561
    functionDepth: 0
    functionLinenumber: 561
    functionLinenumberEnd: 577
    functionName: sec_pkcs5_is_algorithm_v2_pkcs12_algorithm
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pbe.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool sec_pkcs5_is_algorithm_v2_pkcs12_algorithm(SECOidTag algorithm)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - algorithm
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 579
    functionDepth: 0
    functionLinenumber: 579
    functionLinenumberEnd: 592
    functionName: sec_pkcs5_is_algorithm_v2_pkcs5_algorithm
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pbe.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool sec_pkcs5_is_algorithm_v2_pkcs5_algorithm(SECOidTag algorithm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:602,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - pbe_param
    argTypes:
    - SEC_PKCS5PBEParameter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 603
    functionName: sec_pkcs5_destroy_pbe_param
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pbe.c
    functionUses: 0
    functionsReached:
    - PORT_FreeArena
    linkageType: ''
    returnType: void
    signature: void sec_pkcs5_destroy_pbe_param(SEC_PKCS5PBEParameter *pbe_param)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:634,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:638,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:641,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:649,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:654,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:656,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:661,1
    - Dst: SEC_ASN1EncodeInteger
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:666,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:671,1
    - Dst: SEC_ASN1EncodeInteger
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:679,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:683,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:686,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:688,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 48
    argCount: 5
    argNames:
    - algorithm
    - salt
    - iteration
    - keyLength
    - prfAlg
    argTypes:
    - SECOidTag
    - SECItem*
    - int
    - int
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 618
    functionDepth: 9
    functionLinenumber: 618
    functionLinenumberEnd: 695
    functionName: sec_pkcs5_create_pbe_parameter
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pbe.c
    functionUses: 0
    functionsReached:
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - PORT_FreeArena
    - SECITEM_CopyItem
    - SECOID_SetAlgorithmID
    - PK11_GenerateRandom
    - SEC_ASN1EncodeInteger
    linkageType: ''
    returnType: SEC_PKCS5PBEParameter
    signature: "SEC_PKCS5PBEParameter *\nsec_pkcs5_create_pbe_parameter(SECOidTag
      algorithm,\n                               SECItem *salt,\n                               int
      iteration,\n                               int keyLength,\n                               SECOidTag
      prfAlg)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:726,1
    - Dst: SEC_PKCS5IsAlgorithmPBEAlgTag
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:731,1
    - Dst: sec_pkcs5_is_algorithm_v2_pkcs5_algorithm
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:732,1
    - Dst: sec_pkcs5_is_algorithm_v2_pkcs5_algorithm
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:742,1
    - Dst: sec_pkcs5v2_get_pbe
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:770,1
    - Dst: HASH_GetHashOidTagByHMACOidTag
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:773,1
    - Dst: HASH_ResultLenByOidTag
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:778,1
    - Dst: sec_pkcs5v2_default_key_length
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:780,1
    - Dst: pk11_GenerateNewParamWithKeyLen
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:794,1
    - Dst: PK11_AlgtagToMechanism
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:795,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:803,1
    - Dst: PK11_ParamToAlgid
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:805,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:808,1
    - Dst: sec_pkcs5_create_pbe_parameter
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:816,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:823,1
    - Dst: sec_pkcs5_is_algorithm_v2_pkcs5_algorithm
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:830,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:832,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:837,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:846,1
    - Dst: sec_pkcs5_is_algorithm_v2_pkcs12_algorithm
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:848,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:849,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:852,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:859,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:864,1
    - Dst: SECOID_CopyAlgorithmID
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:869,1
    - Dst: SECOID_DestroyAlgorithmID
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:871,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:879,1
    - Dst: sec_pkcs5_destroy_pbe_param
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:884,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 120
    argCount: 7
    argNames:
    - algorithm
    - cipherAlgorithm
    - prfAlg
    - pPbeAlgorithm
    - keyLength
    - salt
    - iteration
    argTypes:
    - SECOidTag
    - SECOidTag
    - SECOidTag
    - SECOidTag*
    - int
    - SECItem*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 704
    functionDepth: 11
    functionLinenumber: 704
    functionLinenumberEnd: 888
    functionName: sec_pkcs5CreateAlgorithmID
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pbe.c
    functionUses: 1
    functionsReached:
    - HASH_ResultLenByOidTag
    - SECOID_CopyAlgorithmID
    - PK11_AlgtagToMechanism
    - sec_pkcs5_destroy_pbe_param
    - SECOID_DestroyAlgorithmID
    - pk11_GenerateNewParamWithKeyLen
    - SEC_ASN1EncodeItem
    - PORT_NewArena
    - SECOID_SetAlgorithmID
    - SEC_PKCS5IsAlgorithmPBEAlgTag
    - sec_pkcs5v2_default_key_length
    - SECITEM_FreeItem
    - PK11_ParamToAlgid
    - PORT_ArenaZAlloc
    - sec_pkcs5_is_algorithm_v2_pkcs12_algorithm
    - PORT_FreeArena
    - PORT_ZAlloc
    - sec_pkcs5_is_algorithm_v2_pkcs5_algorithm
    - sec_pkcs5v2_get_pbe
    - HASH_GetHashOidTagByHMACOidTag
    - sec_pkcs5_create_pbe_parameter
    - PORT_Memset
    linkageType: ''
    returnType: SECAlgorithmID
    signature: "SECAlgorithmID *\nsec_pkcs5CreateAlgorithmID(SECOidTag algorithm,\n
      \                          SECOidTag cipherAlgorithm,\n                           SECOidTag
      prfAlg,\n                           SECOidTag *pPbeAlgorithm,\n                           int
      keyLength,\n                           SECItem *salt,\n                           int
      iteration)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:895,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:904,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:912,1
    - Dst: sec_pkcs5_is_algorithm_v2_pkcs12_algorithm
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:913,1
    - Dst: PK11_GetIVLength
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:914,1
    - Dst: PK11_AlgtagToMechanism
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:914,1
    - Dst: SEC_ASN1DecodeItem
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:915,1
    - Dst: SEC_ASN1DecodeItem
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:919,1
    - Dst: PK11_GetIVLength
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:922,1
    - Dst: PK11_AlgtagToMechanism
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:922,1
    - Dst: SEC_ASN1DecodeItem
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:923,1
    - Dst: DER_GetInteger
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:937,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:944,1
    - Dst: PR_MAX
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:945,1
    - Dst: PR_MAX
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:951,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:957,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:976,1
    - Dst: PR_MAX
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:984,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:986,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:993,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1004,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1018,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1024,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1027,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 104
    argCount: 2
    argNames:
    - algid
    - mech
    argTypes:
    - SECAlgorithmID*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1030
      start: 890
    functionDepth: 2
    functionLinenumber: 890
    functionLinenumberEnd: 1030
    functionName: pbe_PK11AlgidToParam
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pbe.c
    functionUses: 1
    functionsReached:
    - PORT_Memcpy
    - PORT_NewArena
    - SECOID_GetAlgorithmTag
    - sec_pkcs5_is_algorithm_v2_pkcs12_algorithm
    - PORT_FreeArena
    - PORT_Free
    - PORT_ZAlloc
    - PR_MAX
    - PK11_GetIVLength
    - PK11_AlgtagToMechanism
    - SEC_ASN1DecodeItem
    - PORT_SetError
    - PORT_Memset
    - DER_GetInteger
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus pbe_PK11AlgidToParam(SECAlgorithmID *algid, SECItem *mech)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sec_pkcs5CreateAlgorithmID
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1054,1
    - Dst: SECOID_CopyAlgorithmID
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1061,1
    - Dst: SECOID_DestroyAlgorithmID
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1062,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - algTag
    - param
    - arena
    - algId
    argTypes:
    - SECOidTag
    - SECItem*
    - PLArenaPool*
    - SECAlgorithmID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1038
    functionDepth: 12
    functionLinenumber: 1038
    functionLinenumberEnd: 1064
    functionName: PBE_PK11ParamToAlgid
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pbe.c
    functionUses: 1
    functionsReached:
    - SECOID_DestroyAlgorithmID
    - sec_pkcs5CreateAlgorithmID
    - SECOID_CopyAlgorithmID
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PBE_PK11ParamToAlgid(SECOidTag algTag, SECItem *param, PLArenaPool
      *arena,\n                     SECAlgorithmID *algId)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetInternalSlot
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1145,1
    - Dst: PK11_RawPBEKeyGen
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1146,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1148,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1156,1
    - Dst: PK11_ExtractKeyValue
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1159,1
    - Dst: PK11_GetKeyData
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1160,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1164,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1167,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 72
    argCount: 6
    argNames:
    - hashAlgorithm
    - bitGenPurpose
    - pwitem
    - salt
    - bitsNeeded
    - iterations
    argTypes:
    - SECOidTag
    - PBEBitGenID
    - SECItem*
    - SECItem*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1073
    functionDepth: 4
    functionLinenumber: 1073
    functionLinenumberEnd: 1171
    functionName: PBE_CreateContext
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pbe.c
    functionUses: 0
    functionsReached:
    - PK11_RawPBEKeyGen
    - SECITEM_DupItem
    - PK11_ExtractKeyValue
    - PK11_GetInternalSlot
    - PK11_GetKeyData
    - PK11_FreeSlot
    - PK11_FreeSymKey
    linkageType: ''
    returnType: PBEBitGenContext
    signature: "PBEBitGenContext *\nPBE_CreateContext(SECOidTag hashAlgorithm, PBEBitGenID
      bitGenPurpose,\n                  SECItem *pwitem, SECItem *salt, unsigned int
      bitsNeeded,\n                  unsigned int iterations)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - context
    argTypes:
    - PBEBitGenContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1184
      start: 1180
    functionDepth: 0
    functionLinenumber: 1180
    functionLinenumberEnd: 1184
    functionName: PBE_GenerateBits
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pbe.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      PBE_GenerateBits(PBEBitGenContext *context)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - context
    argTypes:
    - PBEBitGenContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1197
      start: 1193
    functionDepth: 0
    functionLinenumber: 1193
    functionLinenumberEnd: 1197
    functionName: PBE_DestroyContext
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pbe.c
    functionUses: 0
    functionsReached:
    - SECITEM_FreeItem
    linkageType: ''
    returnType: void
    signature: void PBE_DestroyContext(PBEBitGenContext *context)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1216,1
    - Dst: sec_pkcs5_is_algorithm_v2_pkcs5_algorithm
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1217,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1223,1
    - Dst: sec_pkcs5_v2_get_v2_param
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1226,1
    - Dst: PK11_AlgtagToMechanism
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1232,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1233,1
    - Dst: PK11_ParamFromAlgid
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1234,1
    - Dst: sec_pkcs5_v2_destroy_v2_param
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1235,1
    - Dst: PK11_IVFromParam
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1240,1
    - Dst: PK11_AlgtagToMechanism
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1246,1
    - Dst: PK11_ParamFromAlgid
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1247,1
    - Dst: PK11_GetInternalSlot
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1251,1
    - Dst: PK11_RawPBEKeyGen
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1252,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1253,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1257,1
    - Dst: PK11_GetIVLength
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1259,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1265,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1269,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 53
    argCount: 3
    argNames:
    - algid
    - pwitem
    - faulty3DES
    argTypes:
    - SECAlgorithmID*
    - SECItem*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1272
      start: 1202
    functionDepth: 4
    functionLinenumber: 1202
    functionLinenumberEnd: 1272
    functionName: SEC_PKCS5GetIV
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pbe.c
    functionUses: 0
    functionsReached:
    - PK11_RawPBEKeyGen
    - SECITEM_DupItem
    - SECOID_GetAlgorithmTag
    - PK11_ParamFromAlgid
    - sec_pkcs5_v2_destroy_v2_param
    - PK11_GetIVLength
    - sec_pkcs5_v2_get_v2_param
    - PK11_AlgtagToMechanism
    - PORT_SetError
    - PK11_IVFromParam
    - sec_pkcs5_is_algorithm_v2_pkcs5_algorithm
    - PK11_GetInternalSlot
    - SECITEM_ZfreeItem
    - PK11_FreeSlot
    - PK11_FreeSymKey
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      SEC_PKCS5GetIV(SECAlgorithmID *algid, SECItem *pwitem, PRBool faulty3DES)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - hashAlgorithm
    - bitGenPurpose
    - pwitem
    - salt
    - bitsNeeded
    - iterations
    argTypes:
    - SECOidTag
    - PBEBitGenID
    - SECItem*
    - SECItem*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1284
      start: 1277
    functionDepth: 0
    functionLinenumber: 1277
    functionLinenumberEnd: 1284
    functionName: __PBE_CreateContext
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pbe.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: PBEBitGenContext
    signature: "PBEBitGenContext *\n__PBE_CreateContext(SECOidTag hashAlgorithm, PBEBitGenID
      bitGenPurpose,\n                    SECItem *pwitem, SECItem *salt, unsigned
      int bitsNeeded,\n                    unsigned int iterations)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - context
    argTypes:
    - PBEBitGenContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1291
      start: 1286
    functionDepth: 0
    functionLinenumber: 1286
    functionLinenumberEnd: 1291
    functionName: __PBE_GenerateBits
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pbe.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      __PBE_GenerateBits(PBEBitGenContext *context)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - context
    argTypes:
    - PBEBitGenContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1297
      start: 1293
    functionDepth: 0
    functionLinenumber: 1293
    functionLinenumberEnd: 1297
    functionName: __PBE_DestroyContext
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pbe.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: void
    signature: void __PBE_DestroyContext(PBEBitGenContext *context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - result
    - modulusLen
    - blockType
    - data
    argTypes:
    - SECItem*
    - unsigned
    - int
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1305
      start: 1299
    functionDepth: 0
    functionLinenumber: 1299
    functionLinenumberEnd: 1305
    functionName: RSA_FormatBlock
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pbe.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus RSA_FormatBlock(SECItem *result, unsigned modulusLen,\n
      \               int blockType, SECItem *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZFree
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1318,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1320,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1321,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - pbe_params
    argTypes:
    - CK_PBE_PARAMS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1323
      start: 1313
    functionDepth: 0
    functionLinenumber: 1313
    functionLinenumberEnd: 1323
    functionName: pk11_destroy_ck_pbe_params
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pbe.c
    functionUses: 0
    functionsReached:
    - PORT_ZFree
    linkageType: ''
    returnType: void
    signature: void pk11_destroy_ck_pbe_params(CK_PBE_PARAMS *pbe_params)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1337,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1342,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1345,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1350,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1354,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1358,1
    - Dst: pk11_destroy_ck_pbe_params
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1366,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1368,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 3
    argNames:
    - salt
    - pwd
    - iterations
    argTypes:
    - SECItem*
    - SECItem*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1370
      start: 1331
    functionDepth: 1
    functionLinenumber: 1331
    functionLinenumberEnd: 1370
    functionName: PK11_CreatePBEParams
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pbe.c
    functionUses: 0
    functionsReached:
    - PORT_ZFree
    - PORT_Memcpy
    - PORT_ZAlloc
    - pk11_destroy_ck_pbe_params
    - SECITEM_AllocItem
    - PORT_Memset
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      PK11_CreatePBEParams(SECItem *salt, SECItem *pwd, unsigned int iterations)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pk11_destroy_ck_pbe_params
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1381,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1382,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pItem
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1384
      start: 1375
    functionDepth: 1
    functionLinenumber: 1375
    functionLinenumberEnd: 1384
    functionName: PK11_DestroyPBEParams
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pbe.c
    functionUses: 0
    functionsReached:
    - PORT_ZFree
    - pk11_destroy_ck_pbe_params
    linkageType: ''
    returnType: void
    signature: void PK11_DestroyPBEParams(SECItem *pItem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sec_pkcs5CreateAlgorithmID
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - algorithm
    - iteration
    - salt
    argTypes:
    - SECOidTag
    - int
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1399
      start: 1391
    functionDepth: 12
    functionLinenumber: 1391
    functionLinenumberEnd: 1399
    functionName: PK11_CreatePBEAlgorithmID
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pbe.c
    functionUses: 1
    functionsReached:
    - sec_pkcs5CreateAlgorithmID
    linkageType: ''
    returnType: SECAlgorithmID
    signature: 'SECAlgorithmID *

      PK11_CreatePBEAlgorithmID(SECOidTag algorithm, int iteration, SECItem *salt)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sec_pkcs5CreateAlgorithmID
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - pbeAlgTag
    - cipherAlgTag
    - prfAlgTag
    - keyLength
    - iteration
    - salt
    argTypes:
    - SECOidTag
    - SECOidTag
    - SECOidTag
    - int
    - int
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1413
      start: 1404
    functionDepth: 12
    functionLinenumber: 1404
    functionLinenumberEnd: 1413
    functionName: PK11_CreatePBEV2AlgorithmID
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pbe.c
    functionUses: 0
    functionsReached:
    - sec_pkcs5CreateAlgorithmID
    linkageType: ''
    returnType: SECAlgorithmID
    signature: "SECAlgorithmID *\nPK11_CreatePBEV2AlgorithmID(SECOidTag pbeAlgTag,
      SECOidTag cipherAlgTag,\n                            SECOidTag prfAlgTag, int
      keyLength, int iteration,\n                            SECItem *salt)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1431,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1436,1
    - Dst: PR_MIN
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1444,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1445,1
    - Dst: memcpy
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1461,1
    - Dst: PR_MIN
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1462,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1474,1
    - Dst: pk11_TokenKeyGenWithFlagsAndKeyType
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1483,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 7
    argNames:
    - slot
    - type
    - params
    - keyType
    - keyLen
    - pwitem
    - wincx
    argTypes:
    - PK11SlotInfo*
    - CK_MECHANISM_TYPE
    - SECItem*
    - CK_KEY_TYPE
    - int
    - SECItem*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1486
      start: 1418
    functionDepth: 3
    functionLinenumber: 1418
    functionLinenumberEnd: 1486
    functionName: pk11_RawPBEKeyGenWithKeyType
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pbe.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - pk11_TokenKeyGenWithFlagsAndKeyType
    - memcpy
    - PR_MIN
    linkageType: ''
    returnType: PK11SymKey
    signature: "PK11SymKey *\npk11_RawPBEKeyGenWithKeyType(PK11SlotInfo *slot, CK_MECHANISM_TYPE
      type,\n                             SECItem *params, CK_KEY_TYPE keyType, int
      keyLen,\n                             SECItem *pwitem, void *wincx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pk11_RawPBEKeyGenWithKeyType
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1498,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 6
    argNames:
    - slot
    - type
    - mech
    - pwitem
    - faulty3DES
    - wincx
    argTypes:
    - PK11SlotInfo*
    - CK_MECHANISM_TYPE
    - SECItem*
    - SECItem*
    - PRBool
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1499
      start: 1491
    functionDepth: 4
    functionLinenumber: 1491
    functionLinenumberEnd: 1499
    functionName: PK11_RawPBEKeyGen
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pbe.c
    functionUses: 3
    functionsReached:
    - pk11_RawPBEKeyGenWithKeyType
    linkageType: ''
    returnType: PK11SymKey
    signature: "PK11SymKey *\nPK11_RawPBEKeyGen(PK11SlotInfo *slot, CK_MECHANISM_TYPE
      type, SECItem *mech,\n                  SECItem *pwitem, PRBool faulty3DES,
      void *wincx)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1519,1
    - Dst: sec_pkcs5_is_algorithm_v2_pkcs5_algorithm
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1522,1
    - Dst: sec_pkcs5_v2_get_v2_param
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1526,1
    - Dst: PK11_AlgtagToMechanism
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1530,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1531,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1532,1
    - Dst: PK11_ParamFromAlgid
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1533,1
    - Dst: sec_pkcs5_v2_destroy_v2_param
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1534,1
    - Dst: SEC_PKCS5GetKeyLength
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1535,1
    - Dst: PK11_GetKeyType
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1539,1
    - Dst: PK11_ParamFromAlgid
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1541,1
    - Dst: PK11_AlgtagToMechanism
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1548,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1550,1
    - Dst: pk11_RawPBEKeyGenWithKeyType
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1556,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1561,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 5
    argNames:
    - slot
    - algid
    - pwitem
    - faulty3DES
    - wincx
    argTypes:
    - PK11SlotInfo*
    - SECAlgorithmID*
    - SECItem*
    - PRBool
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1564
      start: 1508
    functionDepth: 10
    functionLinenumber: 1508
    functionLinenumberEnd: 1564
    functionName: PK11_PBEKeyGen
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pbe.c
    functionUses: 2
    functionsReached:
    - SECOID_GetAlgorithmTag
    - PK11_ParamFromAlgid
    - sec_pkcs5_v2_destroy_v2_param
    - pk11_RawPBEKeyGenWithKeyType
    - sec_pkcs5_v2_get_v2_param
    - PK11_AlgtagToMechanism
    - PORT_SetError
    - sec_pkcs5_is_algorithm_v2_pkcs5_algorithm
    - PK11_GetKeyType
    - SECITEM_ZfreeItem
    - SEC_PKCS5GetKeyLength
    linkageType: ''
    returnType: PK11SymKey
    signature: "PK11SymKey *\nPK11_PBEKeyGen(PK11SlotInfo *slot, SECAlgorithmID *algid,
      SECItem *pwitem,\n               PRBool faulty3DES, void *wincx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SEC_PKCS5GetIV
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - algid
    - pwitem
    argTypes:
    - SECAlgorithmID*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1573
      start: 1569
    functionDepth: 5
    functionLinenumber: 1569
    functionLinenumberEnd: 1573
    functionName: PK11_GetPBEIV
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pbe.c
    functionUses: 0
    functionsReached:
    - SEC_PKCS5GetIV
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      PK11_GetPBEIV(SECAlgorithmID *algid, SECItem *pwitem)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SEC_PKCS5GetCryptoAlgorithm
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1580,1
    - Dst: PK11_AlgtagToMechanism
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1581,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1586,1
    - Dst: PK11_GetIVLength
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1589,1
    - Dst: SEC_PKCS5GetIV
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1590,1
    - Dst: SEC_PKCS5GetKeyLength
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1596,1
    - Dst: pk11_ParamFromIVWithLen
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1598,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1606,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 4
    argNames:
    - algid
    - param
    - pbe_pwd
    - faulty3DES
    argTypes:
    - SECAlgorithmID*
    - SECItem**
    - SECItem*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1609
      start: 1575
    functionDepth: 10
    functionLinenumber: 1575
    functionLinenumberEnd: 1609
    functionName: pk11_GetPBECryptoMechanism
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pbe.c
    functionUses: 1
    functionsReached:
    - SEC_PKCS5GetIV
    - pk11_ParamFromIVWithLen
    - PK11_GetIVLength
    - SEC_PKCS5GetCryptoAlgorithm
    - PK11_AlgtagToMechanism
    - PORT_SetError
    - SECITEM_FreeItem
    - SEC_PKCS5GetKeyLength
    linkageType: ''
    returnType: CK_MECHANISM_TYPE
    signature: "CK_MECHANISM_TYPE pk11_GetPBECryptoMechanism(SECAlgorithmID *algid,
      SECItem **param,\n                           SECItem *pbe_pwd, PRBool faulty3DES)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pk11_GetPBECryptoMechanism
      Src: /src/nss/lib/pk11wrap/pk11pbe.c:1626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - algid
    - param
    - pbe_pwd
    argTypes:
    - SECAlgorithmID*
    - SECItem**
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1627
      start: 1622
    functionDepth: 11
    functionLinenumber: 1622
    functionLinenumberEnd: 1627
    functionName: PK11_GetPBECryptoMechanism
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pbe.c
    functionUses: 1
    functionsReached:
    - pk11_GetPBECryptoMechanism
    linkageType: ''
    returnType: CK_MECHANISM_TYPE
    signature: "CK_MECHANISM_TYPE PK11_GetPBECryptoMechanism(SECAlgorithmID *algid,
      SECItem **param,\n                           SECItem *pbe_pwd)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:41,1
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - cx
    argTypes:
    - PK11Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 34
    functionDepth: 2
    functionLinenumber: 34
    functionLinenumberEnd: 45
    functionName: PK11_EnterContextMonitor
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cxt.c
    functionUses: 0
    functionsReached:
    - PK11_EnterSlotMonitor
    - PZ_Lock
    linkageType: ''
    returnType: void
    signature: void PK11_EnterContextMonitor(PK11Context *cx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Unlock
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:54,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - cx
    argTypes:
    - PK11Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 58
    functionName: PK11_ExitContextMonitor
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cxt.c
    functionUses: 0
    functionsReached:
    - PK11_ExitSlotMonitor
    - PZ_Unlock
    linkageType: ''
    returnType: void
    signature: void PK11_ExitContextMonitor(PK11Context *cx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pk11_CloseSession
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:66,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:69,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:71,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:73,1
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:75,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:76,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:78,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - context
    - freeit
    argTypes:
    - PK11Context*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 63
    functionDepth: 4
    functionLinenumber: 63
    functionLinenumberEnd: 79
    functionName: PK11_DestroyContext
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cxt.c
    functionUses: 12
    functionsReached:
    - PORT_Free
    - PZ_DestroyLock
    - pk11_CloseSession
    - PK11_FreeSlot
    - SECITEM_FreeItem
    - PK11_FreeSymKey
    linkageType: ''
    returnType: void
    signature: void PK11_DestroyContext(PK11Context *context, PRBool freeit)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:91,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:98,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:102,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:104,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:108,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:108,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - context
    - buffer
    - savedLength
    argTypes:
    - PK11Context*
    - unsigned char*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 112
    functionName: pk11_saveContextHelper
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cxt.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_ZFree
    - PORT_SetError
    - PK11_GETTAB
    - PK11_MapError
    linkageType: ''
    returnType: unsigned char
    signature: "unsigned char *\npk11_saveContextHelper(PK11Context *context, unsigned
      char *buffer,\n                       unsigned long *savedLength)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pk11_saveContextHelper
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - context
    - space
    - savedLength
    argTypes:
    - PK11Context*
    - void*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 119
    functionName: pk11_saveContext
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cxt.c
    functionUses: 0
    functionsReached:
    - pk11_saveContextHelper
    linkageType: ''
    returnType: void
    signature: 'void *

      pk11_saveContext(PK11Context *context, void *space, unsigned long *savedLength)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:130,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:132,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:135,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:137,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - context
    - space
    - savedLength
    argTypes:
    - PK11Context*
    - void*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 141
    functionName: pk11_restoreContext
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cxt.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PK11_GETTAB
    - PORT_SetError
    - PK11_MapError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus pk11_restoreContext(PK11Context *context, void *space, unsigned
      long savedLength)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PK11_DoesMechanismFlag
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:175,1
    - Dst: PK11_EnterContextMonitor
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:176,1
    - Dst: PK11_ExitContextMonitor
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:178,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 5
    argNames:
    - context
    - mech
    - initFunc
    - flags
    - scrv
    argTypes:
    - PK11Context*
    - CK_MECHANISM_PTR
    - CK_C_MessageEncryptInit
    - CK_FLAGS
    - CK_RV
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 151
    functionDepth: 3
    functionLinenumber: 151
    functionLinenumberEnd: 191
    functionName: pk11_contextInitMessage
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cxt.c
    functionUses: 0
    functionsReached:
    - PK11_ExitContextMonitor
    - PK11_EnterContextMonitor
    - PK11_DoesMechanismFlag
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV pk11_contextInitMessage(PK11Context *context, CK_MECHANISM_PTR
      mech,\n                        CK_C_MessageEncryptInit initFunc,\n                        CK_FLAGS
      flags, CK_RV scrv)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: PK11_EnterContextMonitor
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:205,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:206,1
    - Dst: PK11_ExitContextMonitor
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:207,1
    - Dst: PK11_EnterContextMonitor
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:210,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:214,1
    - Dst: PK11_ExitContextMonitor
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:216,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:219,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:223,1
    - Dst: PK11_ExitContextMonitor
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:224,1
    - Dst: PK11_EnterContextMonitor
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:227,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:228,1
    - Dst: PK11_ExitContextMonitor
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:229,1
    - Dst: PK11_EnterContextMonitor
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:239,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:240,1
    - Dst: PK11_ExitContextMonitor
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:241,1
    - Dst: PK11_EnterContextMonitor
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:244,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:245,1
    - Dst: PK11_ExitContextMonitor
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:246,1
    - Dst: pk11_contextInitMessage
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:250,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:251,1
    - Dst: pk11_contextInitMessage
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:255,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:256,1
    - Dst: pk11_contextInitMessage
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:260,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:261,1
    - Dst: pk11_contextInitMessage
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:265,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:266,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:275,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:275,1
    - Dst: PK11_DoesMechanism
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:281,1
    - Dst: PK11_DoesMechanism
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:283,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:286,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:286,1
    - Dst: PK11_EnterContextMonitor
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:295,1
    - Dst: pk11_saveContext
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:296,1
    - Dst: pk11_Finalize
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:301,1
    - Dst: PK11_ExitContextMonitor
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:302,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 73
    argCount: 2
    argNames:
    - context
    - mech_info
    argTypes:
    - PK11Context*
    - CK_MECHANISM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 196
    functionDepth: 4
    functionLinenumber: 196
    functionLinenumberEnd: 305
    functionName: pk11_context_init
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cxt.c
    functionUses: 0
    functionsReached:
    - PK11_ExitContextMonitor
    - pk11_contextInitMessage
    - PK11_DoesMechanism
    - PORT_SetError
    - PK11_GETTAB
    - pk11_saveContext
    - pk11_Finalize
    - PK11_MapError
    - PK11_EnterContextMonitor
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus pk11_context_init(PK11Context *context, CK_MECHANISM *mech_info)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:319,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:329,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:332,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:335,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:339,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:339,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - context
    argTypes:
    - PK11Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 344
    functionName: _PK11_ContextSetAEADSimulation
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cxt.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PK11_GETTAB
    - PK11_MapError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus _PK11_ContextSetAEADSimulation(PK11Context *context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - context
    argTypes:
    - PK11Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 350
    functionName: _PK11_ContextGetAEADSimulation
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cxt.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool _PK11_ContextGetAEADSimulation(PK11Context *context)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:365,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:368,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:371,1
    - Dst: PK11_ReferenceSymKey
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:397,1
    - Dst: PK11_ReferenceSlot
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:399,1
    - Dst: pk11_GetNewSession
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:400,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:410,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:415,1
    - Dst: PZ_NewLock
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:419,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:421,1
    - Dst: pk11_context_init
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:428,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:431,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 50
    argCount: 7
    argNames:
    - type
    - slot
    - operation
    - symKey
    - objectID
    - param
    - pwArg
    argTypes:
    - CK_MECHANISM_TYPE
    - PK11SlotInfo*
    - CK_ATTRIBUTE_TYPE
    - PK11SymKey*
    - CK_OBJECT_HANDLE
    - SECItem*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 355
    functionDepth: 5
    functionLinenumber: 355
    functionLinenumberEnd: 436
    functionName: pk11_CreateNewContextInSlot
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cxt.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_Assert
    - SECITEM_DupItem
    - PK11_DestroyContext
    - pk11_context_init
    - PORT_SetError
    - PK11_ReferenceSlot
    - PZ_NewLock
    - PK11_ReferenceSymKey
    - pk11_GetNewSession
    linkageType: ''
    returnType: PK11Context
    signature: "PK11Context *\npk11_CreateNewContextInSlot(CK_MECHANISM_TYPE type,\n
      \                           PK11SlotInfo *slot, CK_ATTRIBUTE_TYPE operation,\n
      \                           PK11SymKey *symKey, CK_OBJECT_HANDLE objectID,\n
      \                           const SECItem *param, void *pwArg)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetBestSlot
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:452,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:454,1
    - Dst: PK11_ReferenceSlot
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:458,1
    - Dst: PK11_ImportSymKey
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:462,1
    - Dst: PK11_CreateContextBySymKey
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:466,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:470,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:473,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 7
    argNames:
    - slot
    - type
    - origin
    - operation
    - key
    - param
    - wincx
    argTypes:
    - PK11SlotInfo*
    - CK_MECHANISM_TYPE
    - PK11Origin
    - CK_ATTRIBUTE_TYPE
    - SECItem*
    - SECItem*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 442
    functionDepth: 8
    functionLinenumber: 442
    functionLinenumberEnd: 477
    functionName: __PK11_CreateContextByRawKey
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cxt.c
    functionUses: 0
    functionsReached:
    - PK11_GetBestSlot
    - PK11_ImportSymKey
    - PORT_SetError
    - PK11_ReferenceSlot
    - PK11_CreateContextBySymKey
    - PK11_FreeSlot
    - PK11_FreeSymKey
    linkageType: ''
    returnType: PK11Context
    signature: "PK11Context *\n__PK11_CreateContextByRawKey(PK11SlotInfo *slot, CK_MECHANISM_TYPE
      type,\n                             PK11Origin origin, CK_ATTRIBUTE_TYPE operation,
      SECItem *key,\n                             SECItem *param, void *wincx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __PK11_CreateContextByRawKey
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - slot
    - type
    - origin
    - operation
    - key
    - param
    - wincx
    argTypes:
    - PK11SlotInfo*
    - CK_MECHANISM_TYPE
    - PK11Origin
    - CK_ATTRIBUTE_TYPE
    - SECItem*
    - SECItem*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 479
    functionDepth: 9
    functionLinenumber: 479
    functionLinenumberEnd: 486
    functionName: PK11_CreateContextByRawKey
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cxt.c
    functionUses: 1
    functionsReached:
    - __PK11_CreateContextByRawKey
    linkageType: ''
    returnType: PK11Context
    signature: "PK11Context *\nPK11_CreateContextByRawKey(PK11SlotInfo *slot, CK_MECHANISM_TYPE
      type,\n                           PK11Origin origin, CK_ATTRIBUTE_TYPE operation,
      SECItem *key,\n                           SECItem *param, void *wincx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pk11_ForceSlot
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:500,1
    - Dst: PK11_ReferenceSymKey
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:502,1
    - Dst: pk11_CreateNewContextInSlot
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:510,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:512,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - type
    - operation
    - symKey
    - param
    argTypes:
    - CK_MECHANISM_TYPE
    - CK_ATTRIBUTE_TYPE
    - PK11SymKey*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 492
    functionDepth: 10
    functionLinenumber: 492
    functionLinenumberEnd: 514
    functionName: PK11_CreateContextBySymKey
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cxt.c
    functionUses: 7
    functionsReached:
    - pk11_ForceSlot
    - pk11_CreateNewContextInSlot
    - PK11_ReferenceSymKey
    - PK11_FreeSymKey
    linkageType: ''
    returnType: PK11Context
    signature: "PK11Context *\nPK11_CreateContextBySymKey(CK_MECHANISM_TYPE type,
      CK_ATTRIBUTE_TYPE operation,\n                           PK11SymKey *symKey,
      const SECItem *param)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PK11_DoesMechanism
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:530,1
    - Dst: PK11_GetBestSlot
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:532,1
    - Dst: PK11_ImportPublicKey
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:536,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:537,1
    - Dst: pk11_CreateNewContextInSlot
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:546,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 5
    argNames:
    - type
    - operation
    - pubKey
    - param
    - pwArg
    argTypes:
    - CK_MECHANISM_TYPE
    - CK_ATTRIBUTE_TYPE
    - SECKEYPublicKey*
    - SECItem*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 518
    functionDepth: 8
    functionLinenumber: 518
    functionLinenumberEnd: 549
    functionName: PK11_CreateContextByPubKey
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cxt.c
    functionUses: 1
    functionsReached:
    - PK11_GetBestSlot
    - PK11_DoesMechanism
    - PK11_ImportPublicKey
    - pk11_CreateNewContextInSlot
    - PK11_FreeSlot
    linkageType: ''
    returnType: PK11Context
    signature: "PK11Context *\nPK11_CreateContextByPubKey(CK_MECHANISM_TYPE type,
      CK_ATTRIBUTE_TYPE operation,\n                           SECKEYPublicKey *pubKey,
      const SECItem *param,\n                           void *pwArg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pk11_CreateNewContextInSlot
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - type
    - operation
    - privKey
    - param
    argTypes:
    - CK_MECHANISM_TYPE
    - CK_ATTRIBUTE_TYPE
    - SECKEYPrivateKey*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 553
    functionDepth: 6
    functionLinenumber: 553
    functionLinenumberEnd: 571
    functionName: PK11_CreateContextByPrivKey
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cxt.c
    functionUses: 1
    functionsReached:
    - pk11_CreateNewContextInSlot
    linkageType: ''
    returnType: PK11Context
    signature: "PK11Context *\nPK11_CreateContextByPrivKey(CK_MECHANISM_TYPE type,
      CK_ATTRIBUTE_TYPE operation,\n                            SECKEYPrivateKey *privKey,
      const SECItem *param)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_AlgtagToMechanism
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:586,1
    - Dst: PK11_GetBestSlot
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:587,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:589,1
    - Dst: pk11_CreateNewContextInSlot
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:598,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:600,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - hashAlg
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 577
    functionDepth: 8
    functionLinenumber: 577
    functionLinenumberEnd: 602
    functionName: PK11_CreateDigestContext
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cxt.c
    functionUses: 13
    functionsReached:
    - PK11_GetBestSlot
    - PK11_AlgtagToMechanism
    - PORT_SetError
    - pk11_CreateNewContextInSlot
    - PK11_FreeSlot
    linkageType: ''
    returnType: PK11Context
    signature: 'PK11Context *

      PK11_CreateDigestContext(SECOidTag hashAlg)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pk11_CreateNewContextInSlot
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:616,1
    - Dst: PK11_EnterContextMonitor
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:626,1
    - Dst: pk11_saveContext
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:627,1
    - Dst: PK11_ExitContextMonitor
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:628,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:636,1
    - Dst: PK11_EnterContextMonitor
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:645,1
    - Dst: pk11_restoreContext
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:646,1
    - Dst: PK11_ExitContextMonitor
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:647,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:649,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:651,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:654,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:660,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:663,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 1
    argNames:
    - old
    argTypes:
    - PK11Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 607
    functionDepth: 6
    functionLinenumber: 607
    functionLinenumberEnd: 667
    functionName: PK11_CloneContext
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cxt.c
    functionUses: 1
    functionsReached:
    - PK11_ExitContextMonitor
    - PORT_Assert
    - PK11_DestroyContext
    - PORT_Memcpy
    - PORT_Free
    - pk11_restoreContext
    - PORT_SetError
    - pk11_saveContext
    - pk11_CreateNewContextInSlot
    - PK11_EnterContextMonitor
    linkageType: ''
    returnType: PK11Context
    signature: 'PK11Context *

      PK11_CloneContext(PK11Context *old)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PK11_EnterContextMonitor
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:680,1
    - Dst: pk11_saveContextHelper
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:681,1
    - Dst: PK11_ExitContextMonitor
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:682,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:688,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:694,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - cx
    - save
    - len
    - saveLength
    argTypes:
    - PK11Context*
    - unsigned char*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 673
    functionDepth: 3
    functionLinenumber: 673
    functionLinenumberEnd: 700
    functionName: PK11_SaveContext
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cxt.c
    functionUses: 0
    functionsReached:
    - PK11_ExitContextMonitor
    - PORT_ZFree
    - PORT_Memcpy
    - pk11_saveContextHelper
    - PK11_EnterContextMonitor
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11_SaveContext(PK11Context *cx, unsigned char *save, int
      *len, int saveLength)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PK11_EnterContextMonitor
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:712,1
    - Dst: pk11_saveContextHelper
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:713,1
    - Dst: PK11_ExitContextMonitor
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:714,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:718,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:726,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 4
    argNames:
    - cx
    - preAllocBuf
    - pabLen
    - stateLen
    argTypes:
    - PK11Context*
    - unsigned char*
    - unsigned int
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 703
    functionDepth: 3
    functionLinenumber: 703
    functionLinenumberEnd: 731
    functionName: PK11_SaveContextAlloc
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cxt.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PK11_ExitContextMonitor
    - PORT_Memcpy
    - pk11_saveContextHelper
    - PK11_EnterContextMonitor
    linkageType: ''
    returnType: unsigned char
    signature: "unsigned char *\nPK11_SaveContextAlloc(PK11Context *cx,\n                      unsigned
      char *preAllocBuf, unsigned int pabLen,\n                      unsigned int
      *stateLen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PK11_EnterContextMonitor
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:742,1
    - Dst: pk11_Finalize
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:743,1
    - Dst: pk11_restoreContext
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:744,1
    - Dst: PK11_ExitContextMonitor
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:745,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:747,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:749,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:752,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - cx
    - save
    - len
    argTypes:
    - PK11Context*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 737
    functionDepth: 3
    functionLinenumber: 737
    functionLinenumberEnd: 757
    functionName: PK11_RestoreContext
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cxt.c
    functionUses: 0
    functionsReached:
    - PK11_ExitContextMonitor
    - PORT_Assert
    - PORT_Memcpy
    - pk11_restoreContext
    - PORT_SetError
    - pk11_Finalize
    - PK11_EnterContextMonitor
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11_RestoreContext(PK11Context *cx, unsigned char *save,
      int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_CreateDigestContext
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:769,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:772,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - algID
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 764
    functionDepth: 9
    functionLinenumber: 764
    functionLinenumberEnd: 774
    functionName: PK11_HashOK
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cxt.c
    functionUses: 0
    functionsReached:
    - PK11_DestroyContext
    - PK11_CreateDigestContext
    linkageType: ''
    returnType: PRBool
    signature: PRBool PK11_HashOK(SECOidTag algID)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PK11_EnterContextMonitor
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:792,1
    - Dst: pk11_Finalize
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:793,1
    - Dst: PK11_ExitContextMonitor
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:794,1
    - Dst: pk11_context_init
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:799,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - cx
    argTypes:
    - PK11Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 779
    functionDepth: 5
    functionLinenumber: 779
    functionLinenumberEnd: 806
    functionName: PK11_DigestBegin
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cxt.c
    functionUses: 3
    functionsReached:
    - pk11_Finalize
    - PK11_ExitContextMonitor
    - PK11_EnterContextMonitor
    - pk11_context_init
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11_DigestBegin(PK11Context *cx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:819,1
    - Dst: PK11_CreateDigestContext
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:823,1
    - Dst: PK11_DigestBegin
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:827,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:829,1
    - Dst: PK11_DigestOp
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:833,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:835,1
    - Dst: HASH_ResultLenByOidTag
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:840,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:841,1
    - Dst: PK11_DigestFinal
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:845,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:846,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 4
    argNames:
    - hashAlg
    - out
    - in
    - len
    argTypes:
    - SECOidTag
    - unsigned char*
    - unsigned char*
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 808
    functionDepth: 9
    functionLinenumber: 808
    functionLinenumberEnd: 848
    functionName: PK11_HashBuf
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cxt.c
    functionUses: 3
    functionsReached:
    - PORT_Assert
    - PK11_DestroyContext
    - HASH_ResultLenByOidTag
    - PK11_DigestOp
    - PK11_CreateDigestContext
    - PORT_SetError
    - PK11_DigestBegin
    - PK11_DigestFinal
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_HashBuf(SECOidTag hashAlg, unsigned char *out, const
      unsigned char *in,\n             PRInt32 len)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PK11_EnterContextMonitor
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:867,1
    - Dst: pk11_restoreContext
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:869,1
    - Dst: PK11_ExitContextMonitor
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:872,1
    - Dst: PK11_ExitContextMonitor
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:884,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:885,1
    - Dst: PK11_EnterContextMonitor
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:886,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:891,1
    - Dst: PK11_ExitContextMonitor
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:893,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:896,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:903,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:913,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:918,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:926,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:926,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:935,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:936,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:937,1
    - Dst: pk11_saveContext
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:946,1
    - Dst: pk11_Finalize
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:952,1
    - Dst: PK11_ExitContextMonitor
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:954,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 69
    argCount: 6
    argNames:
    - context
    - out
    - outlen
    - maxout
    - in
    - inlen
    argTypes:
    - PK11Context*
    - unsigned char*
    - int*
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 853
    functionDepth: 9
    functionLinenumber: 853
    functionLinenumberEnd: 956
    functionName: PK11_CipherOp
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cxt.c
    functionUses: 3
    functionsReached:
    - PORT_Alloc
    - PK11_ExitContextMonitor
    - PORT_Assert
    - PORT_Memcpy
    - PORT_Free
    - pk11_restoreContext
    - PORT_SetError
    - PK11_GETTAB
    - pk11_saveContext
    - PK11_GenerateRandom
    - pk11_Finalize
    - PK11_MapError
    - PK11_EnterContextMonitor
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_CipherOp(PK11Context *context, unsigned char *out,
      int *outlen,\n              int maxout, const unsigned char *in, int inlen)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:988,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1000,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1008,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1017,1
    - Dst: PR_UINT64
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1022,1
    - Dst: PR_UINT64
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1024,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1038,1
    - Dst: PORT_GET_BYTE_BE
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1052,1
    - Dst: PORT_GET_BYTE_BE
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1055,1
    - Dst: PORT_GET_BYTE_BE
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1060,1
    - Dst: PORT_GET_BYTE_BE
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1063,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1068,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 70
    argCount: 5
    argNames:
    - context
    - ivgen
    - fixedBits
    - iv
    - ivLen
    argTypes:
    - PK11Context*
    - CK_GENERATOR_FUNCTION
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 970
    functionDepth: 9
    functionLinenumber: 970
    functionLinenumberEnd: 1077
    functionName: pk11_GenerateIV
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cxt.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PK11_GenerateRandom
    - PORT_GET_BYTE_BE
    - PR_UINT64
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus pk11_GenerateIV(PK11Context *context, CK_GENERATOR_FUNCTION
      ivgen,\n                int fixedBits, unsigned char *iv, int ivLen)"
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1122,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1130,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1148,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1167,1
    - Dst: pk11_GenerateIV
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1183,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1194,1
    - Dst: pk11_GenerateIV
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1210,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1219,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1230,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1234,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1235,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1243,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1249,1
    - Dst: PK11_Encrypt
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1259,1
    - Dst: PK11_Decrypt
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1262,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1270,1
    - Dst: PK11_Encrypt
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1281,1
    - Dst: PK11_Decrypt
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1284,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1300,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1310,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1314,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1321,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 173
    argCount: 10
    argNames:
    - context
    - params
    - paramslen
    - aad
    - aadlen
    - out
    - outlen
    - maxout
    - in
    - inlen
    argTypes:
    - PK11Context*
    - void*
    - int
    - unsigned char*
    - int
    - unsigned char*
    - int*
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1324
      start: 1082
    functionDepth: 10
    functionLinenumber: 1082
    functionLinenumberEnd: 1324
    functionName: pk11_AEADSimulateOp
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cxt.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PK11_Encrypt
    - PK11_Decrypt
    - PORT_Memcpy
    - PORT_Free
    - PORT_GetError
    - pk11_GenerateIV
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus pk11_AEADSimulateOp(PK11Context *context, void *params,
      int paramslen,\n                    const unsigned char *aad, int aadlen,\n
      \                   unsigned char *out, int *outlen,\n                    int
      maxout, const unsigned char *in, int inlen)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pk11_GenerateIV
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1361,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1392,1
    - Dst: PK11_AEADRawOp
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1395,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 43
    argCount: 14
    argNames:
    - context
    - ivgen
    - fixedbits
    - iv
    - ivlen
    - aad
    - aadlen
    - out
    - outlen
    - maxout
    - tag
    - taglen
    - in
    - inlen
    argTypes:
    - PK11Context*
    - CK_GENERATOR_FUNCTION
    - int
    - unsigned char*
    - int
    - unsigned char*
    - int
    - unsigned char*
    - int*
    - int
    - unsigned char*
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1397
      start: 1333
    functionDepth: 10
    functionLinenumber: 1333
    functionLinenumberEnd: 1397
    functionName: PK11_AEADOp
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cxt.c
    functionUses: 2
    functionsReached:
    - PK11_AEADRawOp
    - PORT_SetError
    - pk11_GenerateIV
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_AEADOp(PK11Context *context, CK_GENERATOR_FUNCTION
      ivgen,\n            int fixedbits, unsigned char *iv, int ivlen,\n            const
      unsigned char *aad, int aadlen,\n            unsigned char *out, int *outlen,\n
      \           int maxout, unsigned char *tag, int taglen,\n            const unsigned
      char *in, int inlen)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1413,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1416,1
    - Dst: pk11_AEADSimulateOp
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1424,1
    - Dst: PK11_EnterContextMonitor
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1431,1
    - Dst: pk11_restoreContext
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1433,1
    - Dst: PK11_ExitContextMonitor
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1436,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1444,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1448,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1452,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1456,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1464,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1464,1
    - Dst: pk11_saveContext
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1474,1
    - Dst: pk11_Finalize
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1480,1
    - Dst: PK11_ExitContextMonitor
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1482,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 53
    argCount: 10
    argNames:
    - context
    - params
    - paramslen
    - aad
    - aadlen
    - out
    - outlen
    - maxout
    - in
    - inlen
    argTypes:
    - PK11Context*
    - void*
    - int
    - unsigned char*
    - int
    - unsigned char*
    - int*
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1484
      start: 1403
    functionDepth: 11
    functionLinenumber: 1403
    functionLinenumberEnd: 1484
    functionName: PK11_AEADRawOp
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cxt.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - PK11_ExitContextMonitor
    - pk11_AEADSimulateOp
    - pk11_restoreContext
    - PORT_SetError
    - PK11_GETTAB
    - pk11_saveContext
    - pk11_Finalize
    - PK11_MapError
    - PK11_EnterContextMonitor
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_AEADRawOp(PK11Context *context, void *params, int paramslen,\n
      \              const unsigned char *aad, int aadlen,\n               unsigned
      char *out, int *outlen,\n               int maxout, const unsigned char *in,
      int inlen)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1499,1
    - Dst: PK11_EnterContextMonitor
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1507,1
    - Dst: pk11_restoreContext
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1509,1
    - Dst: PK11_ExitContextMonitor
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1512,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1520,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1523,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1526,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1534,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1534,1
    - Dst: pk11_saveContext
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1542,1
    - Dst: pk11_Finalize
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1548,1
    - Dst: PK11_ExitContextMonitor
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1550,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 3
    argNames:
    - context
    - in
    - inLen
    argTypes:
    - PK11Context*
    - unsigned char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1552
      start: 1489
    functionDepth: 3
    functionLinenumber: 1489
    functionLinenumberEnd: 1552
    functionName: PK11_DigestOp
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cxt.c
    functionUses: 6
    functionsReached:
    - PK11_ExitContextMonitor
    - pk11_restoreContext
    - PORT_SetError
    - PK11_GETTAB
    - pk11_saveContext
    - pk11_Finalize
    - PK11_MapError
    - PK11_EnterContextMonitor
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11_DigestOp(PK11Context *context, const unsigned char *in,
      unsigned inLen)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1565,1
    - Dst: pk11_CopyToSlot
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1573,1
    - Dst: PK11_ReferenceSymKey
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1575,1
    - Dst: PK11_EnterContextMonitor
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1579,1
    - Dst: pk11_restoreContext
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1581,1
    - Dst: PK11_ExitContextMonitor
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1584,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1585,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1593,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1596,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1600,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1600,1
    - Dst: pk11_saveContext
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1608,1
    - Dst: pk11_Finalize
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1614,1
    - Dst: PK11_ExitContextMonitor
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1616,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1618,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 2
    argNames:
    - context
    - key
    argTypes:
    - PK11Context*
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1620
      start: 1557
    functionDepth: 8
    functionLinenumber: 1557
    functionLinenumberEnd: 1620
    functionName: PK11_DigestKey
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cxt.c
    functionUses: 0
    functionsReached:
    - PK11_ExitContextMonitor
    - pk11_CopyToSlot
    - pk11_restoreContext
    - PK11_MapError
    - PORT_SetError
    - PK11_GETTAB
    - pk11_saveContext
    - pk11_Finalize
    - PK11_ReferenceSymKey
    - PK11_EnterContextMonitor
    - PK11_FreeSymKey
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11_DigestKey(PK11Context *context, PK11SymKey *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_EnterContextMonitor
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1630,1
    - Dst: pk11_Finalize
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1631,1
    - Dst: PK11_ExitContextMonitor
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - context
    argTypes:
    - PK11Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1634
      start: 1625
    functionDepth: 3
    functionLinenumber: 1625
    functionLinenumberEnd: 1634
    functionName: PK11_Finalize
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cxt.c
    functionUses: 3
    functionsReached:
    - pk11_Finalize
    - PK11_ExitContextMonitor
    - PK11_EnterContextMonitor
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11_Finalize(PK11Context *context)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1655,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1658,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1661,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1664,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1667,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1670,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1673,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1676,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1679,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1688,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1694,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1694,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1708,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1716,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 67
    argCount: 1
    argNames:
    - context
    argTypes:
    - PK11Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1719
      start: 1640
    functionDepth: 1
    functionLinenumber: 1640
    functionLinenumberEnd: 1719
    functionName: pk11_Finalize
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cxt.c
    functionUses: 8
    functionsReached:
    - PORT_Alloc
    - PORT_Free
    - PORT_SetError
    - PK11_GETTAB
    - PK11_MapError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus pk11_Finalize(PK11Context *context)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1737,1
    - Dst: PK11_EnterContextMonitor
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1744,1
    - Dst: pk11_restoreContext
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1746,1
    - Dst: PK11_ExitContextMonitor
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1749,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1757,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1760,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1763,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1766,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1769,1
    - Dst: PK11_ExitContextMonitor
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1775,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1780,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1780,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 4
    argNames:
    - context
    - data
    - outLen
    - length
    argTypes:
    - PK11Context*
    - unsigned char*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1785
      start: 1726
    functionDepth: 3
    functionLinenumber: 1726
    functionLinenumberEnd: 1785
    functionName: PK11_DigestFinal
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cxt.c
    functionUses: 6
    functionsReached:
    - PK11_ExitContextMonitor
    - pk11_restoreContext
    - PORT_SetError
    - PK11_GETTAB
    - PK11_MapError
    - PK11_EnterContextMonitor
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_DigestFinal(PK11Context *context, unsigned char *data,\n
      \                unsigned int *outLen, unsigned int length)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pk11slot_GetFIPSStatus
      Src: /src/nss/lib/pk11wrap/pk11cxt.c:1793,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - context
    argTypes:
    - PK11Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1795
      start: 1787
    functionDepth: 1
    functionLinenumber: 1787
    functionLinenumberEnd: 1795
    functionName: PK11_ContextGetFIPSStatus
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cxt.c
    functionUses: 0
    functionsReached:
    - pk11slot_GetFIPSStatus
    linkageType: ''
    returnType: PRBool
    signature: PRBool PK11_ContextGetFIPSStatus(PK11Context *context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PZ_NewLock
      Src: /src/nss/lib/pk11wrap/pk11load.c:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pmutex
    argTypes:
    - CK_VOID_PTR_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 42
    functionName: PR_CALLBACK::secmodCreateMutext
    functionSourceFile: /src/nss/lib/pk11wrap/pk11load.c
    functionUses: 0
    functionsReached:
    - PZ_NewLock
    linkageType: ''
    returnType: CK_RV
    signature: 'CK_RV PR_CALLBACK

      secmodCreateMutext(CK_VOID_PTR_PTR pmutex)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/pk11wrap/pk11load.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mutext
    argTypes:
    - CK_VOID_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: PR_CALLBACK::secmodDestroyMutext
    functionSourceFile: /src/nss/lib/pk11wrap/pk11load.c
    functionUses: 0
    functionsReached:
    - PZ_DestroyLock
    linkageType: ''
    returnType: CK_RV
    signature: 'CK_RV PR_CALLBACK

      secmodDestroyMutext(CK_VOID_PTR mutext)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/pk11wrap/pk11load.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mutext
    argTypes:
    - CK_VOID_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: PR_CALLBACK::secmodLockMutext
    functionSourceFile: /src/nss/lib/pk11wrap/pk11load.c
    functionUses: 0
    functionsReached:
    - PZ_Lock
    linkageType: ''
    returnType: CK_RV
    signature: 'CK_RV PR_CALLBACK

      secmodLockMutext(CK_VOID_PTR mutext)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Unlock
      Src: /src/nss/lib/pk11wrap/pk11load.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mutext
    argTypes:
    - CK_VOID_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: PR_CALLBACK::secmodUnlockMutext
    functionSourceFile: /src/nss/lib/pk11wrap/pk11load.c
    functionUses: 0
    functionsReached:
    - PZ_Unlock
    linkageType: ''
    returnType: CK_RV
    signature: 'CK_RV PR_CALLBACK

      secmodUnlockMutext(CK_VOID_PTR mutext)'
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - noSingleThreadedModules
    - allowAlreadyInitializedModules
    - dontFinalizeModules
    argTypes:
    - PRBool
    - PRBool
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 102
    functionName: pk11_setGlobalOptions
    functionSourceFile: /src/nss/lib/pk11wrap/pk11load.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus pk11_setGlobalOptions(PRBool noSingleThreadedModules,\n
      \                     PRBool allowAlreadyInitializedModules,\n                      PRBool
      dontFinalizeModules)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: pk11_getFinalizeModulesOption
    functionSourceFile: /src/nss/lib/pk11wrap/pk11load.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool pk11_getFinalizeModulesOption(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: secmod_ParseModuleSpecForTokens
      Src: /src/nss/lib/pk11wrap/pk11load.c:136,1
    - Dst: secmod_GetConfigList
      Src: /src/nss/lib/pk11wrap/pk11load.c:151,1
    - Dst: secmod_MatchConfigList
      Src: /src/nss/lib/pk11wrap/pk11load.c:156,1
    - Dst: SECMOD_OpenNewSlot
      Src: /src/nss/lib/pk11wrap/pk11load.c:160,1
    - Dst: secmod_IsInternalKeySlot
      Src: /src/nss/lib/pk11wrap/pk11load.c:167,1
    - Dst: pk11_SetInternalKeySlotIfFirst
      Src: /src/nss/lib/pk11wrap/pk11load.c:168,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11load.c:171,1
    - Dst: secmod_MatchConfigList
      Src: /src/nss/lib/pk11wrap/pk11load.c:175,1
    - Dst: SECMOD_OpenNewSlot
      Src: /src/nss/lib/pk11wrap/pk11load.c:179,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11load.c:182,1
    - Dst: secmod_MkAppendTokensList
      Src: /src/nss/lib/pk11wrap/pk11load.c:191,1
    - Dst: secmod_FreeChildren
      Src: /src/nss/lib/pk11wrap/pk11load.c:202,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11load.c:203,1
    - Dst: secmod_FreeConfigList
      Src: /src/nss/lib/pk11wrap/pk11load.c:205,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 48
    argCount: 2
    argNames:
    - oldModule
    - newModule
    argTypes:
    - SECMODModule*
    - SECMODModule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 122
    functionDepth: 4
    functionLinenumber: 122
    functionLinenumberEnd: 208
    functionName: secmod_handleReload
    functionSourceFile: /src/nss/lib/pk11wrap/pk11load.c
    functionUses: 0
    functionsReached:
    - PK11_FreeSlot
    - secmod_ParseModuleSpecForTokens
    - pk11_SetInternalKeySlotIfFirst
    - secmod_IsInternalKeySlot
    - secmod_GetConfigList
    - PORT_Free
    - secmod_MatchConfigList
    - secmod_FreeConfigList
    - secmod_FreeChildren
    - SECMOD_OpenNewSlot
    - secmod_MkAppendTokensList
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus secmod_handleReload(SECMODModule *oldModule, SECMODModule
      *newModule)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11load.c:226,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11load.c:245,1
    - Dst: secmod_FindModuleByFuncPtr
      Src: /src/nss/lib/pk11wrap/pk11load.c:252,1
    - Dst: secmod_handleReload
      Src: /src/nss/lib/pk11wrap/pk11load.c:258,1
    - Dst: SECMOD_DestroyModule
      Src: /src/nss/lib/pk11wrap/pk11load.c:269,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11load.c:281,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11load.c:281,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11load.c:289,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11load.c:301,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11load.c:308,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11load.c:308,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 70
    argCount: 3
    argNames:
    - mod
    - reload
    - alreadyLoaded
    argTypes:
    - SECMODModule*
    - SECMODModule**
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 213
    functionDepth: 5
    functionLinenumber: 213
    functionLinenumberEnd: 313
    functionName: secmod_ModuleInit
    functionSourceFile: /src/nss/lib/pk11wrap/pk11load.c
    functionUses: 0
    functionsReached:
    - SECMOD_DestroyModule
    - secmod_handleReload
    - PORT_SetError
    - PK11_GETTAB
    - secmod_FindModuleByFuncPtr
    - PK11_MapError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus secmod_ModuleInit(SECMODModule *mod, SECMODModule **reload,\n
      \                 PRBool *alreadyLoaded)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/pk11wrap/pk11load.c:335,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11load.c:339,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - slot
    - mod
    argTypes:
    - PK11SlotInfo*
    - SECMODModule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 355
    functionName: SECMOD_SetRootCerts
    functionSourceFile: /src/nss/lib/pk11wrap/pk11load.c
    functionUses: 0
    functionsReached:
    - PORT_ArenaAlloc
    - PORT_Memcpy
    linkageType: ''
    returnType: void
    signature: void SECMOD_SetRootCerts(PK11SlotInfo *slot, SECMODModule *mod)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_LoadLibraryFromOrigin
      Src: /src/nss/lib/pk11wrap/pk11load.c:374,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 382
    functionName: softoken_LoadDSO
    functionSourceFile: /src/nss/lib/pk11wrap/pk11load.c
    functionUses: 0
    functionsReached:
    - PORT_LoadLibraryFromOrigin
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus softoken_LoadDSO(void)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: PR_CallOnce
      Src: /src/nss/lib/pk11wrap/pk11load.c:413,1
    - Dst: PR_ATOMIC_INCREMENT
      Src: /src/nss/lib/pk11wrap/pk11load.c:416,1
    - Dst: PR_FindSymbol
      Src: /src/nss/lib/pk11wrap/pk11load.c:427,1
    - Dst: PR_FindSymbol
      Src: /src/nss/lib/pk11wrap/pk11load.c:430,1
    - Dst: PR_FindSymbol
      Src: /src/nss/lib/pk11wrap/pk11load.c:442,1
    - Dst: nssUTF8_Length
      Src: /src/nss/lib/pk11wrap/pk11load.c:460,1
    - Dst: _NSSUTIL_UTF8ToWide
      Src: /src/nss/lib/pk11wrap/pk11load.c:461,1
    - Dst: PR_LoadLibraryWithFlags
      Src: /src/nss/lib/pk11wrap/pk11load.c:466,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11load.c:467,1
    - Dst: PR_LoadLibrary
      Src: /src/nss/lib/pk11wrap/pk11load.c:472,1
    - Dst: PR_LoadLibrary
      Src: /src/nss/lib/pk11wrap/pk11load.c:475,1
    - Dst: PR_FindSymbol
      Src: /src/nss/lib/pk11wrap/pk11load.c:488,1
    - Dst: PR_FindSymbol
      Src: /src/nss/lib/pk11wrap/pk11load.c:491,1
    - Dst: PR_FindSymbol
      Src: /src/nss/lib/pk11wrap/pk11load.c:496,1
    - Dst: PR_UnloadLibrary
      Src: /src/nss/lib/pk11wrap/pk11load.c:506,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/pk11wrap/pk11load.c:537,1
    - Dst: strcmp
      Src: /src/nss/lib/pk11wrap/pk11load.c:538,1
    - Dst: nss_InsertDeviceLog
      Src: /src/nss/lib/pk11wrap/pk11load.c:539,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/pk11wrap/pk11load.c:548,1
    - Dst: PR_UnloadLibrary
      Src: /src/nss/lib/pk11wrap/pk11load.c:550,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 101
    argCount: 1
    argNames:
    - mod
    argTypes:
    - SECMODModule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 553
    functionName: secmod_DetermineModuleFunctionList
    functionSourceFile: /src/nss/lib/pk11wrap/pk11load.c
    functionUses: 0
    functionsReached:
    - _NSSUTIL_UTF8ToWide
    - strcmp
    - PR_LoadLibrary
    - PR_ATOMIC_INCREMENT
    - PORT_Free
    - PR_UnloadLibrary
    - PR_GetEnvSecure
    - PR_LoadLibraryWithFlags
    - PR_FindSymbol
    - nss_InsertDeviceLog
    - PR_CallOnce
    - nssUTF8_Length
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus secmod_DetermineModuleFunctionList(SECMODModule *mod)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/pk11wrap/pk11load.c:566,1
    - Dst: secmod_ModuleInit
      Src: /src/nss/lib/pk11wrap/pk11load.c:569,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11load.c:582,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11load.c:589,1
    - Dst: PK11_MakeString
      Src: /src/nss/lib/pk11wrap/pk11load.c:599,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11load.c:606,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/pk11wrap/pk11load.c:611,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/pk11wrap/pk11load.c:616,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11load.c:620,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11load.c:622,1
    - Dst: PK11_NewSlotInfo
      Src: /src/nss/lib/pk11wrap/pk11load.c:628,1
    - Dst: PK11_InitSlot
      Src: /src/nss/lib/pk11wrap/pk11load.c:629,1
    - Dst: PK11_LoadSlotList
      Src: /src/nss/lib/pk11wrap/pk11load.c:631,1
    - Dst: SECMOD_SetRootCerts
      Src: /src/nss/lib/pk11wrap/pk11load.c:632,1
    - Dst: secmod_IsInternalKeySlot
      Src: /src/nss/lib/pk11wrap/pk11load.c:635,1
    - Dst: pk11_SetInternalKeySlotIfFirst
      Src: /src/nss/lib/pk11wrap/pk11load.c:636,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11load.c:641,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11load.c:649,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 74
    argCount: 2
    argNames:
    - mod
    - oldModule
    argTypes:
    - SECMODModule*
    - SECMODModule**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 555
    functionDepth: 6
    functionLinenumber: 555
    functionLinenumberEnd: 654
    functionName: secmod_InitializeModuleAndGetSlotInfo
    functionSourceFile: /src/nss/lib/pk11wrap/pk11load.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - pk11_SetInternalKeySlotIfFirst
    - SECMOD_SetRootCerts
    - secmod_IsInternalKeySlot
    - PORT_ArenaAlloc
    - secmod_ModuleInit
    - PORT_Free
    - PR_GetEnvSecure
    - PORT_SetError
    - PK11_GETTAB
    - PK11_LoadSlotList
    - PK11_MakeString
    - PK11_InitSlot
    - PK11_NewSlotInfo
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus secmod_InitializeModuleAndGetSlotInfo(SECMODModule *mod,
      SECMODModule **oldModule)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: secmod_DetermineModuleFunctionList
      Src: /src/nss/lib/pk11wrap/pk11load.c:669,1
    - Dst: secmod_InitializeModuleAndGetSlotInfo
      Src: /src/nss/lib/pk11wrap/pk11load.c:678,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - mod
    - oldModule
    argTypes:
    - SECMODModule*
    - SECMODModule**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 659
    functionDepth: 7
    functionLinenumber: 659
    functionLinenumberEnd: 684
    functionName: secmod_LoadPKCS11Module
    functionSourceFile: /src/nss/lib/pk11wrap/pk11load.c
    functionUses: 1
    functionsReached:
    - secmod_DetermineModuleFunctionList
    - secmod_InitializeModuleAndGetSlotInfo
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus secmod_LoadPKCS11Module(SECMODModule *mod, SECMODModule **oldModule)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11load.c:702,1
    - Dst: fentry
      Src: /src/nss/lib/pk11wrap/pk11load.c:706,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11load.c:709,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11load.c:709,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11load.c:714,1
    - Dst: secmod_InitializeModuleAndGetSlotInfo
      Src: /src/nss/lib/pk11wrap/pk11load.c:719,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - mod
    - oldModule
    - fentry
    argTypes:
    - SECMODModule*
    - SECMODModule**
    - CK_C_GetFunctionList
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 689
    functionDepth: 7
    functionLinenumber: 689
    functionLinenumberEnd: 725
    functionName: secmod_LoadPKCS11ModuleFromFunction
    functionSourceFile: /src/nss/lib/pk11wrap/pk11load.c
    functionUses: 1
    functionsReached:
    - fentry
    - PORT_SetError
    - PK11_MapError
    - secmod_InitializeModuleAndGetSlotInfo
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus secmod_LoadPKCS11ModuleFromFunction(SECMODModule *mod, SECMODModule
      **oldModule,\n                                    CK_C_GetFunctionList fentry)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11load.c:738,1
    - Dst: PR_ATOMIC_DECREMENT
      Src: /src/nss/lib/pk11wrap/pk11load.c:749,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/pk11wrap/pk11load.c:751,1
    - Dst: PR_UnloadLibrary
      Src: /src/nss/lib/pk11wrap/pk11load.c:754,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11load.c:755,1
    - Dst: PR_UnloadLibrary
      Src: /src/nss/lib/pk11wrap/pk11load.c:757,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/pk11wrap/pk11load.c:774,1
    - Dst: PR_UnloadLibrary
      Src: /src/nss/lib/pk11wrap/pk11load.c:776,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 1
    argNames:
    - mod
    argTypes:
    - SECMODModule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 727
    functionDepth: 1
    functionLinenumber: 727
    functionLinenumberEnd: 779
    functionName: SECMOD_UnloadModule
    functionSourceFile: /src/nss/lib/pk11wrap/pk11load.c
    functionUses: 2
    functionsReached:
    - PORT_Assert
    - PR_ATOMIC_DECREMENT
    - PR_UnloadLibrary
    - PR_GetEnvSecure
    - PK11_GETTAB
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SECMOD_UnloadModule(SECMODModule *mod)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: print_final_statistics
      Src: /src/nss/lib/pk11wrap/pk11load.c:786,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 781
    functionDepth: 1
    functionLinenumber: 781
    functionLinenumberEnd: 789
    functionName: nss_DumpModuleLog
    functionSourceFile: /src/nss/lib/pk11wrap/pk11load.c
    functionUses: 0
    functionsReached:
    - print_final_statistics
    linkageType: ''
    returnType: void
    signature: void nss_DumpModuleLog(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:92,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:93,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:94,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:95,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:96,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:97,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:98,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:99,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:100,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:101,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:102,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:103,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:104,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:105,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:106,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:107,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:108,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:109,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:110,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:111,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:112,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:113,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:114,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:115,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:116,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:117,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:118,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:119,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:120,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:121,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:122,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:123,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:124,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:125,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:126,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:127,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:128,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:129,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:130,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:131,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:132,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:133,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:134,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:135,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:136,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:137,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:138,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:139,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:140,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:141,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:142,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:143,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:144,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:145,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:146,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:147,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:148,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:149,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:150,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:151,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:152,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:153,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:154,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:155,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:156,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:157,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:158,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:159,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:160,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:161,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:162,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:163,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:164,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:165,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:166,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:167,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:168,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:169,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:170,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:171,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:172,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:173,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:174,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:175,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:176,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:177,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:178,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:179,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:180,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:181,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:182,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:183,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:184,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:185,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:186,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:187,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:188,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:189,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:190,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:191,1
    - Dst: PR_snprintf
      Src: /src/nss/lib/pk11wrap/debug_module.c:196,1
    - Dst: PR_snprintf
      Src: /src/nss/lib/pk11wrap/debug_module.c:198,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 108
    argCount: 3
    argNames:
    - atype
    - str
    - len
    argTypes:
    - CK_ATTRIBUTE_TYPE
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 199
    functionName: get_attr_type_str
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - PR_snprintf
    - CASE
    linkageType: ''
    returnType: void
    signature: void get_attr_type_str(CK_ATTRIBUTE_TYPE atype, char *str, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - attr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 88
    functionName: CASE
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CASE(attr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:208,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:209,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:210,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:211,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:212,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:213,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:214,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:215,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:216,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:217,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:218,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:219,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:220,1
    - Dst: PR_snprintf
      Src: /src/nss/lib/pk11wrap/debug_module.c:225,1
    - Dst: PR_snprintf
      Src: /src/nss/lib/pk11wrap/debug_module.c:227,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 3
    argNames:
    - objClass
    - str
    - len
    argTypes:
    - CK_OBJECT_CLASS
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 228
    functionName: get_obj_class
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - PR_snprintf
    - CASE
    linkageType: ''
    returnType: void
    signature: void get_obj_class(CK_OBJECT_CLASS objClass, char *str, int len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:237,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:238,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:239,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:240,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:241,1
    - Dst: PR_snprintf
      Src: /src/nss/lib/pk11wrap/debug_module.c:246,1
    - Dst: PR_snprintf
      Src: /src/nss/lib/pk11wrap/debug_module.c:248,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - profile
    - str
    - len
    argTypes:
    - CK_PROFILE_ID
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 249
    functionName: get_profile_val
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - PR_snprintf
    - CASE
    linkageType: ''
    returnType: void
    signature: void get_profile_val(CK_PROFILE_ID profile, char *str, int len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:257,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:258,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:259,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:260,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:261,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:262,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:263,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:264,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:265,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:266,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:267,1
    - Dst: PR_snprintf
      Src: /src/nss/lib/pk11wrap/debug_module.c:272,1
    - Dst: PR_snprintf
      Src: /src/nss/lib/pk11wrap/debug_module.c:274,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - trust
    - str
    - len
    argTypes:
    - CK_TRUST
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 275
    functionName: get_trust_val
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - PR_snprintf
    - CASE
    linkageType: ''
    returnType: void
    signature: void get_trust_val(CK_TRUST trust, char *str, int len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:283,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:284,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:285,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:286,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:287,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:288,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:289,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:290,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:291,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:292,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:293,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:294,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:295,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:296,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:297,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:298,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:299,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:300,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:301,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:302,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:303,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:304,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:305,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:306,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:307,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:308,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:309,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:310,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:311,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:312,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:313,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:314,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:315,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:316,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:317,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:318,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:319,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:320,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:321,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:322,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:323,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:324,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:325,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:326,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:327,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:328,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:329,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:330,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:331,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:332,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:333,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:334,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:335,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:336,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:337,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:338,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:339,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:340,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:341,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:342,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:343,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:344,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:345,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:346,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:347,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:348,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:349,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:350,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:351,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:352,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:353,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:354,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:355,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:356,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:357,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:358,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:359,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:360,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:361,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:362,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:363,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:364,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:365,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:366,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:367,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:368,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:369,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:370,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:371,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:372,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:373,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:374,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:375,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:376,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:377,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:382,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:384,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 103
    argCount: 1
    argNames:
    - rv
    argTypes:
    - CK_RV
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 385
    functionName: log_rv
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - PR_LOG
    - CASE
    linkageType: ''
    returnType: void
    signature: void log_rv(CK_RV rv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:393,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:394,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:395,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:396,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:397,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:402,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:404,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - state
    argTypes:
    - CK_STATE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 405
    functionName: log_state
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - PR_LOG
    - CASE
    linkageType: ''
    returnType: void
    signature: void log_state(CK_STATE state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:412,1
    - Dst: PL_strncpyz
      Src: /src/nss/lib/pk11wrap/debug_module.c:414,1
    - Dst: PL_strcatn
      Src: /src/nss/lib/pk11wrap/debug_module.c:415,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:416,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - level
    - format
    - handle
    argTypes:
    - PRLogModuleLevel
    - char*
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 418
    functionName: log_handle
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - PL_strcatn
    - PR_LOG
    - PL_strncpyz
    linkageType: ''
    returnType: void
    signature: void log_handle(PRLogModuleLevel level, const char *format, CK_ULONG
      handle)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:427,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:428,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:429,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:430,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:431,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:432,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:433,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:434,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:435,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:436,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:437,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:438,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:439,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:440,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:441,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:442,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:443,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:444,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:445,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:446,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:447,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:448,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:449,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:450,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:451,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:452,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:453,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:454,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:455,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:456,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:457,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:458,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:459,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:460,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:461,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:462,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:463,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:464,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:465,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:466,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:467,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:468,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:469,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:470,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:471,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:472,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:473,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:474,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:475,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:476,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:477,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:478,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:479,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:480,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:481,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:482,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:483,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:484,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:485,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:486,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:487,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:488,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:489,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:490,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:491,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:492,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:493,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:494,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:495,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:496,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:497,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:498,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:499,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:500,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:501,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:502,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:503,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:504,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:505,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:506,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:507,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:508,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:509,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:510,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:511,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:512,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:513,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:514,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:515,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:516,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:517,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:518,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:519,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:520,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:521,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:522,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:523,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:524,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:525,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:526,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:527,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:528,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:529,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:530,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:531,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:532,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:533,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:534,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:535,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:536,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:537,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:538,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:539,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:540,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:541,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:542,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:543,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:544,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:545,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:546,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:547,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:548,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:549,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:550,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:551,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:552,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:553,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:554,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:555,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:556,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:557,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:558,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:559,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:560,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:561,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:562,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:563,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:564,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:565,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:566,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:567,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:568,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:569,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:570,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:571,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:572,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:573,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:574,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:575,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:576,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:577,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:578,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:579,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:580,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:581,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:582,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:583,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:584,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:585,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:586,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:587,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:588,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:589,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:590,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:591,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:592,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:593,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:594,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:595,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:596,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:597,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:598,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:599,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:600,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:601,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:602,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:603,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:604,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:605,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:606,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:607,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:608,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:609,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:610,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:611,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:612,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:613,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:614,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:615,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:616,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:617,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:618,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:619,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:620,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:621,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:622,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:623,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:624,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:625,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:626,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:631,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:633,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 208
    argCount: 1
    argNames:
    - m
    argTypes:
    - CK_MECHANISM_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 634
    functionName: print_mechanism
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - PR_LOG
    - CASE
    linkageType: ''
    returnType: void
    signature: void print_mechanism(CK_MECHANISM_PTR m)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:643,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:644,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:645,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:646,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:647,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:648,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:649,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:650,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:651,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:652,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:653,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:654,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:655,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:656,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:657,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:658,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:659,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:660,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:661,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:662,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:663,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:664,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:665,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:666,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:667,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:668,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:669,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:670,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:671,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:672,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:673,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:674,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:675,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:676,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:677,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:678,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:679,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:680,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:681,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:682,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:683,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:684,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:685,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:686,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:687,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:688,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:689,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:690,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:691,1
    - Dst: CASE
      Src: /src/nss/lib/pk11wrap/debug_module.c:692,1
    - Dst: PR_snprintf
      Src: /src/nss/lib/pk11wrap/debug_module.c:697,1
    - Dst: PR_snprintf
      Src: /src/nss/lib/pk11wrap/debug_module.c:699,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 58
    argCount: 3
    argNames:
    - keyType
    - str
    - len
    argTypes:
    - CK_KEY_TYPE
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 636
    functionDepth: 1
    functionLinenumber: 636
    functionLinenumberEnd: 700
    functionName: get_key_type
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - PR_snprintf
    - CASE
    linkageType: ''
    returnType: void
    signature: void get_key_type(CK_KEY_TYPE keyType, char *str, int len)
  - BBCount: 65
    BranchProfiles: []
    Callsites:
    - Dst: get_attr_type_str
      Src: /src/nss/lib/pk11wrap/debug_module.c:709,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:730,1
    - Dst: get_obj_class
      Src: /src/nss/lib/pk11wrap/debug_module.c:736,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:737,1
    - Dst: get_trust_val
      Src: /src/nss/lib/pk11wrap/debug_module.c:750,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:751,1
    - Dst: get_key_type
      Src: /src/nss/lib/pk11wrap/debug_module.c:757,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:758,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:777,1
    - Dst: PR_MIN
      Src: /src/nss/lib/pk11wrap/debug_module.c:784,1
    - Dst: PR_snprintf
      Src: /src/nss/lib/pk11wrap/debug_module.c:785,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:786,1
    - Dst: get_profile_val
      Src: /src/nss/lib/pk11wrap/debug_module.c:792,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:793,1
    - Dst: CERT_DerNameToAscii
      Src: /src/nss/lib/pk11wrap/debug_module.c:804,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:806,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/debug_module.c:807,1
    - Dst: PR_MIN
      Src: /src/nss/lib/pk11wrap/debug_module.c:825,1
    - Dst: PR_snprintf
      Src: /src/nss/lib/pk11wrap/debug_module.c:826,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:827,1
    - Dst: PR_MIN
      Src: /src/nss/lib/pk11wrap/debug_module.c:840,1
    - Dst: CERT_Hexify
      Src: /src/nss/lib/pk11wrap/debug_module.c:842,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:844,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/debug_module.c:845,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:850,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 130
    argCount: 1
    argNames:
    - attr
    argTypes:
    - CK_ATTRIBUTE_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 702
    functionDepth: 2
    functionLinenumber: 702
    functionLinenumberEnd: 853
    functionName: print_attr_value
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - get_key_type
    - PR_snprintf
    - get_trust_val
    - PR_MIN
    - get_attr_type_str
    - PORT_Free
    - CERT_Hexify
    - CERT_DerNameToAscii
    - get_profile_val
    - get_obj_class
    - PR_LOG
    linkageType: ''
    returnType: void
    signature: void print_attr_value(CK_ATTRIBUTE_PTR attr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print_attr_value
      Src: /src/nss/lib/pk11wrap/debug_module.c:860,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - templ
    - tlen
    argTypes:
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 855
    functionDepth: 3
    functionLinenumber: 855
    functionLinenumberEnd: 862
    functionName: print_template
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - print_attr_value
    linkageType: ''
    returnType: void
    signature: void print_template(CK_ATTRIBUTE_PTR templ, CK_ULONG tlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 870
    functionDepth: 0
    functionLinenumber: 870
    functionLinenumberEnd: 874
    functionName: NSSDBG_DEFINE
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NSSDBG_DEFINE(func)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_IntervalNow
      Src: /src/nss/lib/pk11wrap/debug_module.c:1068,1
    - Dst: PR_ATOMIC_ADD
      Src: /src/nss/lib/pk11wrap/debug_module.c:1072,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - fun_number
    - start
    argTypes:
    - PRInt32
    - PRIntervalTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 1064
    functionDepth: 1
    functionLinenumber: 1064
    functionLinenumberEnd: 1073
    functionName: nssdbg_finish_time
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - PR_ATOMIC_ADD
    - PR_IntervalNow
    linkageType: ''
    returnType: void
    signature: void nssdbg_finish_time(PRInt32 fun_number, PRIntervalTime start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_ATOMIC_INCREMENT
      Src: /src/nss/lib/pk11wrap/debug_module.c:1078,1
    - Dst: PR_IntervalNow
      Src: /src/nss/lib/pk11wrap/debug_module.c:1079,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - fun_number
    - start
    argTypes:
    - PRInt32
    - PRIntervalTime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1075
    functionDepth: 1
    functionLinenumber: 1075
    functionLinenumberEnd: 1080
    functionName: nssdbg_start_time
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - PR_ATOMIC_INCREMENT
    - PR_IntervalNow
    linkageType: ''
    returnType: void
    signature: void nssdbg_start_time(PRInt32 fun_number, PRIntervalTime *start)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1092,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1093,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1094,1
    - Dst: C_Initialize
      Src: /src/nss/lib/pk11wrap/debug_module.c:1095,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1096,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:1097,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - pInitArgs
    argTypes:
    - CK_VOID_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1086
    functionDepth: 2
    functionLinenumber: 1086
    functionLinenumberEnd: 1099
    functionName: NSSDBGC_Initialize
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - C_Initialize
    - nssdbg_finish_time
    - nssdbg_start_time
    - PR_LOG
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_Initialize(\n    CK_VOID_PTR pInitArgs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1107,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1108,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1109,1
    - Dst: C_Finalize
      Src: /src/nss/lib/pk11wrap/debug_module.c:1110,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1111,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:1112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - pReserved
    argTypes:
    - CK_VOID_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1114
      start: 1101
    functionDepth: 2
    functionLinenumber: 1101
    functionLinenumberEnd: 1114
    functionName: NSSDBGC_Finalize
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - nssdbg_finish_time
    - nssdbg_start_time
    - PR_LOG
    - C_Finalize
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_Finalize(\n    CK_VOID_PTR pReserved)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1122,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1123,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1124,1
    - Dst: C_GetInfo
      Src: /src/nss/lib/pk11wrap/debug_module.c:1125,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1126,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1128,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1129,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1130,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1131,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:1133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - pInfo
    argTypes:
    - CK_INFO_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 1116
    functionDepth: 2
    functionLinenumber: 1116
    functionLinenumberEnd: 1135
    functionName: NSSDBGC_GetInfo
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - nssdbg_finish_time
    - C_GetInfo
    - nssdbg_start_time
    - PR_LOG
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_GetInfo(\n    CK_INFO_PTR pInfo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1143,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1144,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1145,1
    - Dst: C_GetFunctionList
      Src: /src/nss/lib/pk11wrap/debug_module.c:1146,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1147,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:1148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ppFunctionList
    argTypes:
    - CK_FUNCTION_LIST_PTR_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1137
    functionDepth: 2
    functionLinenumber: 1137
    functionLinenumberEnd: 1150
    functionName: NSSDBGC_GetFunctionList
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - nssdbg_finish_time
    - nssdbg_start_time
    - C_GetFunctionList
    - PR_LOG
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_GetFunctionList(\n    CK_FUNCTION_LIST_PTR_PTR ppFunctionList)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1161,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1162,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1163,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1164,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1165,1
    - Dst: C_GetSlotList
      Src: /src/nss/lib/pk11wrap/debug_module.c:1166,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1167,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1168,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1171,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:1174,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - tokenPresent
    - pSlotList
    - pulCount
    argTypes:
    - CK_BBOOL
    - CK_SLOT_ID_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1176
      start: 1152
    functionDepth: 2
    functionLinenumber: 1152
    functionLinenumberEnd: 1176
    functionName: NSSDBGC_GetSlotList
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - nssdbg_finish_time
    - nssdbg_start_time
    - C_GetSlotList
    - PR_LOG
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_GetSlotList(\n    CK_BBOOL tokenPresent,\n    CK_SLOT_ID_PTR
      pSlotList,\n    CK_ULONG_PTR pulCount)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1185,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1186,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1187,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1188,1
    - Dst: C_GetSlotInfo
      Src: /src/nss/lib/pk11wrap/debug_module.c:1189,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1190,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1192,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1193,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1194,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1195,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1196,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:1198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - slotID
    - pInfo
    argTypes:
    - CK_SLOT_ID
    - CK_SLOT_INFO_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1200
      start: 1178
    functionDepth: 2
    functionLinenumber: 1178
    functionLinenumberEnd: 1200
    functionName: NSSDBGC_GetSlotInfo
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - C_GetSlotInfo
    - log_rv
    - nssdbg_finish_time
    - nssdbg_start_time
    - PR_LOG
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_GetSlotInfo(\n    CK_SLOT_ID slotID,\n    CK_SLOT_INFO_PTR
      pInfo)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1209,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1210,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1211,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1212,1
    - Dst: C_GetTokenInfo
      Src: /src/nss/lib/pk11wrap/debug_module.c:1213,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1214,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1216,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1217,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1218,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1219,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1220,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1221,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1222,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1224,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1225,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:1227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 2
    argNames:
    - slotID
    - pInfo
    argTypes:
    - CK_SLOT_ID
    - CK_TOKEN_INFO_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1229
      start: 1202
    functionDepth: 2
    functionLinenumber: 1202
    functionLinenumberEnd: 1229
    functionName: NSSDBGC_GetTokenInfo
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - nssdbg_finish_time
    - C_GetTokenInfo
    - nssdbg_start_time
    - PR_LOG
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_GetTokenInfo(\n    CK_SLOT_ID slotID,\n    CK_TOKEN_INFO_PTR
      pInfo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1239,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1240,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1241,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1242,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1243,1
    - Dst: C_GetMechanismList
      Src: /src/nss/lib/pk11wrap/debug_module.c:1244,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1247,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1248,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:1249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - slotID
    - pMechanismList
    - pulCount
    argTypes:
    - CK_SLOT_ID
    - CK_MECHANISM_TYPE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1251
      start: 1231
    functionDepth: 2
    functionLinenumber: 1231
    functionLinenumberEnd: 1251
    functionName: NSSDBGC_GetMechanismList
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - nssdbg_start_time
    - log_rv
    - nssdbg_finish_time
    - C_GetMechanismList
    - PR_LOG
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_GetMechanismList(\n    CK_SLOT_ID slotID,\n    CK_MECHANISM_TYPE_PTR
      pMechanismList,\n    CK_ULONG_PTR pulCount)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1261,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1262,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1263,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1264,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1265,1
    - Dst: C_GetMechanismInfo
      Src: /src/nss/lib/pk11wrap/debug_module.c:1266,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1269,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:1270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - slotID
    - type
    - pInfo
    argTypes:
    - CK_SLOT_ID
    - CK_MECHANISM_TYPE
    - CK_MECHANISM_INFO_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1272
      start: 1253
    functionDepth: 2
    functionLinenumber: 1253
    functionLinenumberEnd: 1272
    functionName: NSSDBGC_GetMechanismInfo
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - nssdbg_finish_time
    - C_GetMechanismInfo
    - nssdbg_start_time
    - PR_LOG
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_GetMechanismInfo(\n    CK_SLOT_ID slotID,\n    CK_MECHANISM_TYPE
      type,\n    CK_MECHANISM_INFO_PTR pInfo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1283,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1284,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1285,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1286,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1287,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1288,1
    - Dst: C_InitToken
      Src: /src/nss/lib/pk11wrap/debug_module.c:1289,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1293,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:1294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 4
    argNames:
    - slotID
    - pPin
    - ulPinLen
    - pLabel
    argTypes:
    - CK_SLOT_ID
    - CK_CHAR_PTR
    - CK_ULONG
    - CK_CHAR_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1296
      start: 1274
    functionDepth: 2
    functionLinenumber: 1274
    functionLinenumberEnd: 1296
    functionName: NSSDBGC_InitToken
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - nssdbg_finish_time
    - C_InitToken
    - nssdbg_start_time
    - PR_LOG
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_InitToken(\n    CK_SLOT_ID slotID,\n    CK_CHAR_PTR
      pPin,\n    CK_ULONG ulPinLen,\n    CK_CHAR_PTR pLabel)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1306,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:1307,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1308,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1309,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1310,1
    - Dst: C_InitPIN
      Src: /src/nss/lib/pk11wrap/debug_module.c:1311,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1314,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:1315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - hSession
    - pPin
    - ulPinLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_CHAR_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1317
      start: 1298
    functionDepth: 2
    functionLinenumber: 1298
    functionLinenumberEnd: 1317
    functionName: NSSDBGC_InitPIN
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - nssdbg_finish_time
    - C_InitPIN
    - nssdbg_start_time
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_InitPIN(\n    CK_SESSION_HANDLE hSession,\n    CK_CHAR_PTR
      pPin,\n    CK_ULONG ulPinLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1329,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:1330,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1331,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1332,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1333,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1334,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1335,1
    - Dst: C_SetPIN
      Src: /src/nss/lib/pk11wrap/debug_module.c:1336,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1341,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:1342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 5
    argNames:
    - hSession
    - pOldPin
    - ulOldLen
    - pNewPin
    - ulNewLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_CHAR_PTR
    - CK_ULONG
    - CK_CHAR_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1344
      start: 1319
    functionDepth: 2
    functionLinenumber: 1319
    functionLinenumberEnd: 1344
    functionName: NSSDBGC_SetPIN
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - C_SetPIN
    - nssdbg_finish_time
    - nssdbg_start_time
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_SetPIN(\n    CK_SESSION_HANDLE hSession,\n    CK_CHAR_PTR
      pOldPin,\n    CK_ULONG ulOldLen,\n    CK_CHAR_PTR pNewPin,\n    CK_ULONG ulNewLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_ATOMIC_INCREMENT
      Src: /src/nss/lib/pk11wrap/debug_module.c:1359,1
    - Dst: PR_MAX
      Src: /src/nss/lib/pk11wrap/debug_module.c:1360,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1361,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1362,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1363,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1364,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1365,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1366,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1367,1
    - Dst: C_OpenSession
      Src: /src/nss/lib/pk11wrap/debug_module.c:1368,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1373,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:1374,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:1375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 5
    argNames:
    - slotID
    - flags
    - pApplication
    - Notify
    - phSession
    argTypes:
    - CK_SLOT_ID
    - CK_FLAGS
    - CK_VOID_PTR
    - CK_NOTIFY
    - CK_SESSION_HANDLE_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1377
      start: 1349
    functionDepth: 2
    functionLinenumber: 1349
    functionLinenumberEnd: 1377
    functionName: NSSDBGC_OpenSession
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - PR_ATOMIC_INCREMENT
    - log_rv
    - nssdbg_finish_time
    - nssdbg_start_time
    - C_OpenSession
    - PR_LOG
    - PR_MAX
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_OpenSession(\n    CK_SLOT_ID slotID,\n    CK_FLAGS flags,\n
      \   CK_VOID_PTR pApplication,\n    CK_NOTIFY Notify,\n    CK_SESSION_HANDLE_PTR
      phSession)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_ATOMIC_DECREMENT
      Src: /src/nss/lib/pk11wrap/debug_module.c:1385,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1386,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:1387,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1388,1
    - Dst: C_CloseSession
      Src: /src/nss/lib/pk11wrap/debug_module.c:1389,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1390,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:1391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - hSession
    argTypes:
    - CK_SESSION_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1393
      start: 1379
    functionDepth: 2
    functionLinenumber: 1379
    functionLinenumberEnd: 1393
    functionName: NSSDBGC_CloseSession
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - C_CloseSession
    - log_rv
    - PR_ATOMIC_DECREMENT
    - nssdbg_finish_time
    - nssdbg_start_time
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_CloseSession(\n    CK_SESSION_HANDLE hSession)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1401,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1402,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1403,1
    - Dst: C_CloseAllSessions
      Src: /src/nss/lib/pk11wrap/debug_module.c:1404,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1405,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:1406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - slotID
    argTypes:
    - CK_SLOT_ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1408
      start: 1395
    functionDepth: 2
    functionLinenumber: 1395
    functionLinenumberEnd: 1408
    functionName: NSSDBGC_CloseAllSessions
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - nssdbg_finish_time
    - C_CloseAllSessions
    - nssdbg_start_time
    - PR_LOG
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_CloseAllSessions(\n    CK_SLOT_ID slotID)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1417,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:1418,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1419,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1420,1
    - Dst: C_GetSessionInfo
      Src: /src/nss/lib/pk11wrap/debug_module.c:1421,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1423,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1425,1
    - Dst: log_state
      Src: /src/nss/lib/pk11wrap/debug_module.c:1426,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1427,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1428,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:1430,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - hSession
    - pInfo
    argTypes:
    - CK_SESSION_HANDLE
    - CK_SESSION_INFO_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1432
      start: 1410
    functionDepth: 2
    functionLinenumber: 1410
    functionLinenumberEnd: 1432
    functionName: NSSDBGC_GetSessionInfo
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - nssdbg_finish_time
    - log_state
    - nssdbg_start_time
    - C_GetSessionInfo
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_GetSessionInfo(\n    CK_SESSION_HANDLE hSession,\n    CK_SESSION_INFO_PTR
      pInfo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1442,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:1443,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1444,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1445,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1446,1
    - Dst: C_GetOperationState
      Src: /src/nss/lib/pk11wrap/debug_module.c:1447,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1450,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1451,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:1452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - hSession
    - pOperationState
    - pulOperationStateLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1454
      start: 1434
    functionDepth: 2
    functionLinenumber: 1434
    functionLinenumberEnd: 1454
    functionName: NSSDBGC_GetOperationState
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - nssdbg_finish_time
    - C_GetOperationState
    - nssdbg_start_time
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_GetOperationState(\n    CK_SESSION_HANDLE hSession,\n
      \   CK_BYTE_PTR pOperationState,\n    CK_ULONG_PTR pulOperationStateLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1466,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:1467,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1468,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1469,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:1470,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:1471,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1472,1
    - Dst: C_SetOperationState
      Src: /src/nss/lib/pk11wrap/debug_module.c:1473,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1478,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:1479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 5
    argNames:
    - hSession
    - pOperationState
    - ulOperationStateLen
    - hEncryptionKey
    - hAuthenticationKey
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_OBJECT_HANDLE
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1481
      start: 1456
    functionDepth: 2
    functionLinenumber: 1456
    functionLinenumberEnd: 1481
    functionName: NSSDBGC_SetOperationState
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - nssdbg_finish_time
    - C_SetOperationState
    - nssdbg_start_time
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_SetOperationState(\n    CK_SESSION_HANDLE hSession,\n
      \   CK_BYTE_PTR pOperationState,\n    CK_ULONG ulOperationStateLen,\n    CK_OBJECT_HANDLE
      hEncryptionKey,\n    CK_OBJECT_HANDLE hAuthenticationKey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1492,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:1493,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1494,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1495,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1496,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1497,1
    - Dst: C_Login
      Src: /src/nss/lib/pk11wrap/debug_module.c:1498,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1502,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:1503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 4
    argNames:
    - hSession
    - userType
    - pPin
    - ulPinLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_USER_TYPE
    - CK_CHAR_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1505
      start: 1483
    functionDepth: 2
    functionLinenumber: 1483
    functionLinenumberEnd: 1505
    functionName: NSSDBGC_Login
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_handle
    - log_rv
    - nssdbg_finish_time
    - nssdbg_start_time
    - PR_LOG
    - C_Login
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_Login(\n    CK_SESSION_HANDLE hSession,\n    CK_USER_TYPE
      userType,\n    CK_CHAR_PTR pPin,\n    CK_ULONG ulPinLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1513,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:1514,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1515,1
    - Dst: C_Logout
      Src: /src/nss/lib/pk11wrap/debug_module.c:1516,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1517,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:1518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - hSession
    argTypes:
    - CK_SESSION_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1520
      start: 1507
    functionDepth: 2
    functionLinenumber: 1507
    functionLinenumberEnd: 1520
    functionName: NSSDBGC_Logout
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - C_Logout
    - log_rv
    - nssdbg_finish_time
    - nssdbg_start_time
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_Logout(\n    CK_SESSION_HANDLE hSession)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1531,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:1532,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1533,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1534,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1535,1
    - Dst: print_template
      Src: /src/nss/lib/pk11wrap/debug_module.c:1536,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1537,1
    - Dst: C_CreateObject
      Src: /src/nss/lib/pk11wrap/debug_module.c:1538,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1542,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:1543,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:1544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 4
    argNames:
    - hSession
    - pTemplate
    - ulCount
    - phObject
    argTypes:
    - CK_SESSION_HANDLE
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    - CK_OBJECT_HANDLE_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1546
      start: 1522
    functionDepth: 4
    functionLinenumber: 1522
    functionLinenumberEnd: 1546
    functionName: NSSDBGC_CreateObject
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - nssdbg_finish_time
    - C_CreateObject
    - nssdbg_start_time
    - print_template
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_CreateObject(\n    CK_SESSION_HANDLE hSession,\n    CK_ATTRIBUTE_PTR
      pTemplate,\n    CK_ULONG ulCount,\n    CK_OBJECT_HANDLE_PTR phObject)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1558,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:1559,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:1560,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1561,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1562,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1563,1
    - Dst: print_template
      Src: /src/nss/lib/pk11wrap/debug_module.c:1564,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1565,1
    - Dst: C_CopyObject
      Src: /src/nss/lib/pk11wrap/debug_module.c:1566,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1571,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:1572,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:1573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 5
    argNames:
    - hSession
    - hObject
    - pTemplate
    - ulCount
    - phNewObject
    argTypes:
    - CK_SESSION_HANDLE
    - CK_OBJECT_HANDLE
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    - CK_OBJECT_HANDLE_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1575
      start: 1548
    functionDepth: 4
    functionLinenumber: 1548
    functionLinenumberEnd: 1575
    functionName: NSSDBGC_CopyObject
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - nssdbg_finish_time
    - C_CopyObject
    - nssdbg_start_time
    - print_template
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_CopyObject(\n    CK_SESSION_HANDLE hSession,\n    CK_OBJECT_HANDLE
      hObject,\n    CK_ATTRIBUTE_PTR pTemplate,\n    CK_ULONG ulCount,\n    CK_OBJECT_HANDLE_PTR
      phNewObject)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1584,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:1585,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:1586,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1587,1
    - Dst: C_DestroyObject
      Src: /src/nss/lib/pk11wrap/debug_module.c:1588,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1590,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:1591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - hSession
    - hObject
    argTypes:
    - CK_SESSION_HANDLE
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1593
      start: 1577
    functionDepth: 2
    functionLinenumber: 1577
    functionLinenumberEnd: 1593
    functionName: NSSDBGC_DestroyObject
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - nssdbg_finish_time
    - C_DestroyObject
    - nssdbg_start_time
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_DestroyObject(\n    CK_SESSION_HANDLE hSession,\n    CK_OBJECT_HANDLE
      hObject)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1603,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:1604,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:1605,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1606,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1607,1
    - Dst: C_GetObjectSize
      Src: /src/nss/lib/pk11wrap/debug_module.c:1608,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1611,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1612,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:1613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - hSession
    - hObject
    - pulSize
    argTypes:
    - CK_SESSION_HANDLE
    - CK_OBJECT_HANDLE
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1615
      start: 1595
    functionDepth: 2
    functionLinenumber: 1595
    functionLinenumberEnd: 1615
    functionName: NSSDBGC_GetObjectSize
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - C_GetObjectSize
    - log_rv
    - nssdbg_finish_time
    - nssdbg_start_time
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_GetObjectSize(\n    CK_SESSION_HANDLE hSession,\n    CK_OBJECT_HANDLE
      hObject,\n    CK_ULONG_PTR pulSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1626,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:1627,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:1628,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1629,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1630,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1631,1
    - Dst: C_GetAttributeValue
      Src: /src/nss/lib/pk11wrap/debug_module.c:1632,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1636,1
    - Dst: print_template
      Src: /src/nss/lib/pk11wrap/debug_module.c:1637,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:1638,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 4
    argNames:
    - hSession
    - hObject
    - pTemplate
    - ulCount
    argTypes:
    - CK_SESSION_HANDLE
    - CK_OBJECT_HANDLE
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1640
      start: 1617
    functionDepth: 4
    functionLinenumber: 1617
    functionLinenumberEnd: 1640
    functionName: NSSDBGC_GetAttributeValue
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - nssdbg_finish_time
    - C_GetAttributeValue
    - nssdbg_start_time
    - print_template
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_GetAttributeValue(\n    CK_SESSION_HANDLE hSession,\n
      \   CK_OBJECT_HANDLE hObject,\n    CK_ATTRIBUTE_PTR pTemplate,\n    CK_ULONG
      ulCount)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1651,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:1652,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:1653,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1654,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1655,1
    - Dst: print_template
      Src: /src/nss/lib/pk11wrap/debug_module.c:1656,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1657,1
    - Dst: C_SetAttributeValue
      Src: /src/nss/lib/pk11wrap/debug_module.c:1658,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1662,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:1663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 4
    argNames:
    - hSession
    - hObject
    - pTemplate
    - ulCount
    argTypes:
    - CK_SESSION_HANDLE
    - CK_OBJECT_HANDLE
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1665
      start: 1642
    functionDepth: 4
    functionLinenumber: 1642
    functionLinenumberEnd: 1665
    functionName: NSSDBGC_SetAttributeValue
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_handle
    - log_rv
    - nssdbg_finish_time
    - nssdbg_start_time
    - print_template
    - PR_LOG
    - C_SetAttributeValue
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_SetAttributeValue(\n    CK_SESSION_HANDLE hSession,\n
      \   CK_OBJECT_HANDLE hObject,\n    CK_ATTRIBUTE_PTR pTemplate,\n    CK_ULONG
      ulCount)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1675,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:1676,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1677,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1678,1
    - Dst: print_template
      Src: /src/nss/lib/pk11wrap/debug_module.c:1679,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1680,1
    - Dst: C_FindObjectsInit
      Src: /src/nss/lib/pk11wrap/debug_module.c:1681,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1684,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:1685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - hSession
    - pTemplate
    - ulCount
    argTypes:
    - CK_SESSION_HANDLE
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1687
      start: 1667
    functionDepth: 4
    functionLinenumber: 1667
    functionLinenumberEnd: 1687
    functionName: NSSDBGC_FindObjectsInit
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - nssdbg_finish_time
    - C_FindObjectsInit
    - nssdbg_start_time
    - print_template
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_FindObjectsInit(\n    CK_SESSION_HANDLE hSession,\n
      \   CK_ATTRIBUTE_PTR pTemplate,\n    CK_ULONG ulCount)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1699,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:1700,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1701,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1702,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1703,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1704,1
    - Dst: C_FindObjects
      Src: /src/nss/lib/pk11wrap/debug_module.c:1705,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1709,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1710,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1712,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:1714,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 4
    argNames:
    - hSession
    - phObject
    - ulMaxObjectCount
    - pulObjectCount
    argTypes:
    - CK_SESSION_HANDLE
    - CK_OBJECT_HANDLE_PTR
    - CK_ULONG
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1716
      start: 1689
    functionDepth: 2
    functionLinenumber: 1689
    functionLinenumberEnd: 1716
    functionName: NSSDBGC_FindObjects
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - PR_LOG
    - nssdbg_finish_time
    - nssdbg_start_time
    - C_FindObjects
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_FindObjects(\n    CK_SESSION_HANDLE hSession,\n    CK_OBJECT_HANDLE_PTR
      phObject,\n    CK_ULONG ulMaxObjectCount,\n    CK_ULONG_PTR pulObjectCount)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1724,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:1725,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1726,1
    - Dst: C_FindObjectsFinal
      Src: /src/nss/lib/pk11wrap/debug_module.c:1727,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1728,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:1729,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - hSession
    argTypes:
    - CK_SESSION_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1731
      start: 1718
    functionDepth: 2
    functionLinenumber: 1718
    functionLinenumberEnd: 1731
    functionName: NSSDBGC_FindObjectsFinal
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - C_FindObjectsFinal
    - log_rv
    - nssdbg_finish_time
    - nssdbg_start_time
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_FindObjectsFinal(\n    CK_SESSION_HANDLE hSession)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1741,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:1742,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1743,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:1744,1
    - Dst: print_mechanism
      Src: /src/nss/lib/pk11wrap/debug_module.c:1745,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1746,1
    - Dst: C_EncryptInit
      Src: /src/nss/lib/pk11wrap/debug_module.c:1747,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1750,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:1751,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - hSession
    - pMechanism
    - hKey
    argTypes:
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1753
      start: 1733
    functionDepth: 2
    functionLinenumber: 1733
    functionLinenumberEnd: 1753
    functionName: NSSDBGC_EncryptInit
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - nssdbg_finish_time
    - C_EncryptInit
    - print_mechanism
    - nssdbg_start_time
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_EncryptInit(\n    CK_SESSION_HANDLE hSession,\n    CK_MECHANISM_PTR
      pMechanism,\n    CK_OBJECT_HANDLE hKey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1765,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:1766,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1767,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1768,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1769,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1770,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1771,1
    - Dst: C_Encrypt
      Src: /src/nss/lib/pk11wrap/debug_module.c:1772,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1777,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1778,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:1779,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 5
    argNames:
    - hSession
    - pData
    - ulDataLen
    - pEncryptedData
    - pulEncryptedDataLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1781
      start: 1755
    functionDepth: 2
    functionLinenumber: 1755
    functionLinenumberEnd: 1781
    functionName: NSSDBGC_Encrypt
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - nssdbg_finish_time
    - C_Encrypt
    - nssdbg_start_time
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_Encrypt(\n    CK_SESSION_HANDLE hSession,\n    CK_BYTE_PTR
      pData,\n    CK_ULONG ulDataLen,\n    CK_BYTE_PTR pEncryptedData,\n    CK_ULONG_PTR
      pulEncryptedDataLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1793,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:1794,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1795,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1796,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1797,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1798,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1799,1
    - Dst: C_EncryptUpdate
      Src: /src/nss/lib/pk11wrap/debug_module.c:1800,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1805,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1806,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:1807,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 5
    argNames:
    - hSession
    - pPart
    - ulPartLen
    - pEncryptedPart
    - pulEncryptedPartLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1809
      start: 1783
    functionDepth: 2
    functionLinenumber: 1783
    functionLinenumberEnd: 1809
    functionName: NSSDBGC_EncryptUpdate
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_handle
    - log_rv
    - nssdbg_finish_time
    - nssdbg_start_time
    - PR_LOG
    - C_EncryptUpdate
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_EncryptUpdate(\n    CK_SESSION_HANDLE hSession,\n    CK_BYTE_PTR
      pPart,\n    CK_ULONG ulPartLen,\n    CK_BYTE_PTR pEncryptedPart,\n    CK_ULONG_PTR
      pulEncryptedPartLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1819,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:1820,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1821,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1822,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1823,1
    - Dst: C_EncryptFinal
      Src: /src/nss/lib/pk11wrap/debug_module.c:1824,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1827,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1828,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:1829,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - hSession
    - pLastEncryptedPart
    - pulLastEncryptedPartLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1831
      start: 1811
    functionDepth: 2
    functionLinenumber: 1811
    functionLinenumberEnd: 1831
    functionName: NSSDBGC_EncryptFinal
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - nssdbg_finish_time
    - C_EncryptFinal
    - nssdbg_start_time
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_EncryptFinal(\n    CK_SESSION_HANDLE hSession,\n    CK_BYTE_PTR
      pLastEncryptedPart,\n    CK_ULONG_PTR pulLastEncryptedPartLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1841,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:1842,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1843,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:1844,1
    - Dst: print_mechanism
      Src: /src/nss/lib/pk11wrap/debug_module.c:1845,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1846,1
    - Dst: C_DecryptInit
      Src: /src/nss/lib/pk11wrap/debug_module.c:1847,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1850,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:1851,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - hSession
    - pMechanism
    - hKey
    argTypes:
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1853
      start: 1833
    functionDepth: 2
    functionLinenumber: 1833
    functionLinenumberEnd: 1853
    functionName: NSSDBGC_DecryptInit
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - C_DecryptInit
    - log_rv
    - nssdbg_finish_time
    - print_mechanism
    - nssdbg_start_time
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_DecryptInit(\n    CK_SESSION_HANDLE hSession,\n    CK_MECHANISM_PTR
      pMechanism,\n    CK_OBJECT_HANDLE hKey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1865,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:1866,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1867,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1868,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1869,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1870,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1871,1
    - Dst: C_Decrypt
      Src: /src/nss/lib/pk11wrap/debug_module.c:1872,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1877,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1878,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:1879,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 5
    argNames:
    - hSession
    - pEncryptedData
    - ulEncryptedDataLen
    - pData
    - pulDataLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1881
      start: 1855
    functionDepth: 2
    functionLinenumber: 1855
    functionLinenumberEnd: 1881
    functionName: NSSDBGC_Decrypt
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - nssdbg_finish_time
    - nssdbg_start_time
    - C_Decrypt
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_Decrypt(\n    CK_SESSION_HANDLE hSession,\n    CK_BYTE_PTR
      pEncryptedData,\n    CK_ULONG ulEncryptedDataLen,\n    CK_BYTE_PTR pData,\n
      \   CK_ULONG_PTR pulDataLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1893,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:1894,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1895,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1896,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1897,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1898,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1899,1
    - Dst: C_DecryptUpdate
      Src: /src/nss/lib/pk11wrap/debug_module.c:1900,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1905,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1906,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:1907,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 5
    argNames:
    - hSession
    - pEncryptedPart
    - ulEncryptedPartLen
    - pPart
    - pulPartLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1909
      start: 1883
    functionDepth: 2
    functionLinenumber: 1883
    functionLinenumberEnd: 1909
    functionName: NSSDBGC_DecryptUpdate
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - nssdbg_finish_time
    - C_DecryptUpdate
    - nssdbg_start_time
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_DecryptUpdate(\n    CK_SESSION_HANDLE hSession,\n    CK_BYTE_PTR
      pEncryptedPart,\n    CK_ULONG ulEncryptedPartLen,\n    CK_BYTE_PTR pPart,\n
      \   CK_ULONG_PTR pulPartLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1919,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:1920,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1921,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1922,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1923,1
    - Dst: C_DecryptFinal
      Src: /src/nss/lib/pk11wrap/debug_module.c:1924,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1927,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1928,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:1929,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - hSession
    - pLastPart
    - pulLastPartLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1931
      start: 1911
    functionDepth: 2
    functionLinenumber: 1911
    functionLinenumberEnd: 1931
    functionName: NSSDBGC_DecryptFinal
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - nssdbg_finish_time
    - C_DecryptFinal
    - nssdbg_start_time
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_DecryptFinal(\n    CK_SESSION_HANDLE hSession,\n    CK_BYTE_PTR
      pLastPart,\n    CK_ULONG_PTR pulLastPartLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1940,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:1941,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1942,1
    - Dst: print_mechanism
      Src: /src/nss/lib/pk11wrap/debug_module.c:1943,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1944,1
    - Dst: C_DigestInit
      Src: /src/nss/lib/pk11wrap/debug_module.c:1945,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1947,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:1948,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - hSession
    - pMechanism
    argTypes:
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1950
      start: 1933
    functionDepth: 2
    functionLinenumber: 1933
    functionLinenumberEnd: 1950
    functionName: NSSDBGC_DigestInit
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - C_DigestInit
    - nssdbg_finish_time
    - print_mechanism
    - nssdbg_start_time
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_DigestInit(\n    CK_SESSION_HANDLE hSession,\n    CK_MECHANISM_PTR
      pMechanism)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1962,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:1963,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1964,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1965,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1966,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1967,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1968,1
    - Dst: C_Digest
      Src: /src/nss/lib/pk11wrap/debug_module.c:1969,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1974,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1975,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:1976,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 5
    argNames:
    - hSession
    - pData
    - ulDataLen
    - pDigest
    - pulDigestLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1978
      start: 1952
    functionDepth: 2
    functionLinenumber: 1952
    functionLinenumberEnd: 1978
    functionName: NSSDBGC_Digest
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - nssdbg_finish_time
    - C_Digest
    - nssdbg_start_time
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_Digest(\n    CK_SESSION_HANDLE hSession,\n    CK_BYTE_PTR
      pData,\n    CK_ULONG ulDataLen,\n    CK_BYTE_PTR pDigest,\n    CK_ULONG_PTR
      pulDigestLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1988,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:1989,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1990,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:1991,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1992,1
    - Dst: C_DigestUpdate
      Src: /src/nss/lib/pk11wrap/debug_module.c:1993,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:1996,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:1997,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - hSession
    - pPart
    - ulPartLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1999
      start: 1980
    functionDepth: 2
    functionLinenumber: 1980
    functionLinenumberEnd: 1999
    functionName: NSSDBGC_DigestUpdate
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - nssdbg_finish_time
    - C_DigestUpdate
    - nssdbg_start_time
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_DigestUpdate(\n    CK_SESSION_HANDLE hSession,\n    CK_BYTE_PTR
      pPart,\n    CK_ULONG ulPartLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2008,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:2009,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2010,1
    - Dst: C_DigestKey
      Src: /src/nss/lib/pk11wrap/debug_module.c:2011,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2013,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:2014,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - hSession
    - hKey
    argTypes:
    - CK_SESSION_HANDLE
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2016
      start: 2001
    functionDepth: 2
    functionLinenumber: 2001
    functionLinenumberEnd: 2016
    functionName: NSSDBGC_DigestKey
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - nssdbg_finish_time
    - C_DigestKey
    - nssdbg_start_time
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_DigestKey(\n    CK_SESSION_HANDLE hSession,\n    CK_OBJECT_HANDLE
      hKey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2026,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:2027,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2028,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2029,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2030,1
    - Dst: C_DigestFinal
      Src: /src/nss/lib/pk11wrap/debug_module.c:2031,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2034,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2035,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:2036,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - hSession
    - pDigest
    - pulDigestLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2038
      start: 2018
    functionDepth: 2
    functionLinenumber: 2018
    functionLinenumberEnd: 2038
    functionName: NSSDBGC_DigestFinal
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - C_DigestFinal
    - log_rv
    - nssdbg_finish_time
    - nssdbg_start_time
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_DigestFinal(\n    CK_SESSION_HANDLE hSession,\n    CK_BYTE_PTR
      pDigest,\n    CK_ULONG_PTR pulDigestLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2048,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:2049,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2050,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:2051,1
    - Dst: print_mechanism
      Src: /src/nss/lib/pk11wrap/debug_module.c:2052,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2053,1
    - Dst: C_SignInit
      Src: /src/nss/lib/pk11wrap/debug_module.c:2054,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2057,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:2058,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - hSession
    - pMechanism
    - hKey
    argTypes:
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2060
      start: 2040
    functionDepth: 2
    functionLinenumber: 2040
    functionLinenumberEnd: 2060
    functionName: NSSDBGC_SignInit
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - nssdbg_finish_time
    - C_SignInit
    - print_mechanism
    - nssdbg_start_time
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_SignInit(\n    CK_SESSION_HANDLE hSession,\n    CK_MECHANISM_PTR
      pMechanism,\n    CK_OBJECT_HANDLE hKey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2072,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:2073,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2074,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2075,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2076,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2077,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2078,1
    - Dst: C_Sign
      Src: /src/nss/lib/pk11wrap/debug_module.c:2079,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2084,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2085,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:2086,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 5
    argNames:
    - hSession
    - pData
    - ulDataLen
    - pSignature
    - pulSignatureLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2088
      start: 2062
    functionDepth: 2
    functionLinenumber: 2062
    functionLinenumberEnd: 2088
    functionName: NSSDBGC_Sign
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - nssdbg_finish_time
    - C_Sign
    - nssdbg_start_time
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_Sign(\n    CK_SESSION_HANDLE hSession,\n    CK_BYTE_PTR
      pData,\n    CK_ULONG ulDataLen,\n    CK_BYTE_PTR pSignature,\n    CK_ULONG_PTR
      pulSignatureLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2098,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:2099,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2100,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2101,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2102,1
    - Dst: C_SignUpdate
      Src: /src/nss/lib/pk11wrap/debug_module.c:2103,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2106,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:2107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - hSession
    - pPart
    - ulPartLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2109
      start: 2090
    functionDepth: 2
    functionLinenumber: 2090
    functionLinenumberEnd: 2109
    functionName: NSSDBGC_SignUpdate
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - nssdbg_finish_time
    - nssdbg_start_time
    - PR_LOG
    - C_SignUpdate
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_SignUpdate(\n    CK_SESSION_HANDLE hSession,\n    CK_BYTE_PTR
      pPart,\n    CK_ULONG ulPartLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2119,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:2120,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2121,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2122,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2123,1
    - Dst: C_SignFinal
      Src: /src/nss/lib/pk11wrap/debug_module.c:2124,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2127,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2128,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:2129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - hSession
    - pSignature
    - pulSignatureLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2131
      start: 2111
    functionDepth: 2
    functionLinenumber: 2111
    functionLinenumberEnd: 2131
    functionName: NSSDBGC_SignFinal
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - nssdbg_finish_time
    - C_SignFinal
    - nssdbg_start_time
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_SignFinal(\n    CK_SESSION_HANDLE hSession,\n    CK_BYTE_PTR
      pSignature,\n    CK_ULONG_PTR pulSignatureLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2141,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:2142,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2143,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:2144,1
    - Dst: print_mechanism
      Src: /src/nss/lib/pk11wrap/debug_module.c:2145,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2146,1
    - Dst: C_SignRecoverInit
      Src: /src/nss/lib/pk11wrap/debug_module.c:2147,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2150,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:2151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - hSession
    - pMechanism
    - hKey
    argTypes:
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2153
      start: 2133
    functionDepth: 2
    functionLinenumber: 2133
    functionLinenumberEnd: 2153
    functionName: NSSDBGC_SignRecoverInit
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - nssdbg_finish_time
    - C_SignRecoverInit
    - print_mechanism
    - nssdbg_start_time
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_SignRecoverInit(\n    CK_SESSION_HANDLE hSession,\n
      \   CK_MECHANISM_PTR pMechanism,\n    CK_OBJECT_HANDLE hKey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2165,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:2166,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2167,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2168,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2169,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2170,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2171,1
    - Dst: C_SignRecover
      Src: /src/nss/lib/pk11wrap/debug_module.c:2172,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2177,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2178,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:2179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 5
    argNames:
    - hSession
    - pData
    - ulDataLen
    - pSignature
    - pulSignatureLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2181
      start: 2155
    functionDepth: 2
    functionLinenumber: 2155
    functionLinenumberEnd: 2181
    functionName: NSSDBGC_SignRecover
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - nssdbg_finish_time
    - C_SignRecover
    - nssdbg_start_time
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_SignRecover(\n    CK_SESSION_HANDLE hSession,\n    CK_BYTE_PTR
      pData,\n    CK_ULONG ulDataLen,\n    CK_BYTE_PTR pSignature,\n    CK_ULONG_PTR
      pulSignatureLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2191,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:2192,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2193,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:2194,1
    - Dst: print_mechanism
      Src: /src/nss/lib/pk11wrap/debug_module.c:2195,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2196,1
    - Dst: C_VerifyInit
      Src: /src/nss/lib/pk11wrap/debug_module.c:2197,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2200,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:2201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - hSession
    - pMechanism
    - hKey
    argTypes:
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2203
      start: 2183
    functionDepth: 2
    functionLinenumber: 2183
    functionLinenumberEnd: 2203
    functionName: NSSDBGC_VerifyInit
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - nssdbg_finish_time
    - print_mechanism
    - C_VerifyInit
    - nssdbg_start_time
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_VerifyInit(\n    CK_SESSION_HANDLE hSession,\n    CK_MECHANISM_PTR
      pMechanism,\n    CK_OBJECT_HANDLE hKey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2215,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:2216,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2217,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2218,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2219,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2220,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2221,1
    - Dst: C_Verify
      Src: /src/nss/lib/pk11wrap/debug_module.c:2222,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2227,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:2228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 5
    argNames:
    - hSession
    - pData
    - ulDataLen
    - pSignature
    - ulSignatureLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2230
      start: 2205
    functionDepth: 2
    functionLinenumber: 2205
    functionLinenumberEnd: 2230
    functionName: NSSDBGC_Verify
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - nssdbg_finish_time
    - C_Verify
    - nssdbg_start_time
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_Verify(\n    CK_SESSION_HANDLE hSession,\n    CK_BYTE_PTR
      pData,\n    CK_ULONG ulDataLen,\n    CK_BYTE_PTR pSignature,\n    CK_ULONG ulSignatureLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2240,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:2241,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2242,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2243,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2244,1
    - Dst: C_VerifyUpdate
      Src: /src/nss/lib/pk11wrap/debug_module.c:2245,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2248,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:2249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - hSession
    - pPart
    - ulPartLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2251
      start: 2232
    functionDepth: 2
    functionLinenumber: 2232
    functionLinenumberEnd: 2251
    functionName: NSSDBGC_VerifyUpdate
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - nssdbg_finish_time
    - C_VerifyUpdate
    - nssdbg_start_time
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_VerifyUpdate(\n    CK_SESSION_HANDLE hSession,\n    CK_BYTE_PTR
      pPart,\n    CK_ULONG ulPartLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2261,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:2262,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2263,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2264,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2265,1
    - Dst: C_VerifyFinal
      Src: /src/nss/lib/pk11wrap/debug_module.c:2266,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2269,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:2270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - hSession
    - pSignature
    - ulSignatureLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2272
      start: 2253
    functionDepth: 2
    functionLinenumber: 2253
    functionLinenumberEnd: 2272
    functionName: NSSDBGC_VerifyFinal
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - nssdbg_finish_time
    - C_VerifyFinal
    - nssdbg_start_time
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_VerifyFinal(\n    CK_SESSION_HANDLE hSession,\n    CK_BYTE_PTR
      pSignature,\n    CK_ULONG ulSignatureLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2282,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:2283,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2284,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:2285,1
    - Dst: print_mechanism
      Src: /src/nss/lib/pk11wrap/debug_module.c:2286,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2287,1
    - Dst: C_VerifyRecoverInit
      Src: /src/nss/lib/pk11wrap/debug_module.c:2288,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2291,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:2292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - hSession
    - pMechanism
    - hKey
    argTypes:
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2294
      start: 2274
    functionDepth: 2
    functionLinenumber: 2274
    functionLinenumberEnd: 2294
    functionName: NSSDBGC_VerifyRecoverInit
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - nssdbg_finish_time
    - C_VerifyRecoverInit
    - print_mechanism
    - nssdbg_start_time
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_VerifyRecoverInit(\n    CK_SESSION_HANDLE hSession,\n
      \   CK_MECHANISM_PTR pMechanism,\n    CK_OBJECT_HANDLE hKey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2306,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:2307,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2308,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2309,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2310,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2311,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2312,1
    - Dst: C_VerifyRecover
      Src: /src/nss/lib/pk11wrap/debug_module.c:2313,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2318,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2319,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:2320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 5
    argNames:
    - hSession
    - pSignature
    - ulSignatureLen
    - pData
    - pulDataLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2322
      start: 2296
    functionDepth: 2
    functionLinenumber: 2296
    functionLinenumberEnd: 2322
    functionName: NSSDBGC_VerifyRecover
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - nssdbg_finish_time
    - nssdbg_start_time
    - C_VerifyRecover
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_VerifyRecover(\n    CK_SESSION_HANDLE hSession,\n    CK_BYTE_PTR
      pSignature,\n    CK_ULONG ulSignatureLen,\n    CK_BYTE_PTR pData,\n    CK_ULONG_PTR
      pulDataLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2334,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:2335,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2336,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2337,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2338,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2339,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2340,1
    - Dst: C_DigestEncryptUpdate
      Src: /src/nss/lib/pk11wrap/debug_module.c:2341,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2346,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2347,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:2348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 5
    argNames:
    - hSession
    - pPart
    - ulPartLen
    - pEncryptedPart
    - pulEncryptedPartLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2350
      start: 2324
    functionDepth: 2
    functionLinenumber: 2324
    functionLinenumberEnd: 2350
    functionName: NSSDBGC_DigestEncryptUpdate
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - C_DigestEncryptUpdate
    - log_rv
    - nssdbg_finish_time
    - nssdbg_start_time
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_DigestEncryptUpdate(\n    CK_SESSION_HANDLE hSession,\n
      \   CK_BYTE_PTR pPart,\n    CK_ULONG ulPartLen,\n    CK_BYTE_PTR pEncryptedPart,\n
      \   CK_ULONG_PTR pulEncryptedPartLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2362,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:2363,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2364,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2365,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2366,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2367,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2368,1
    - Dst: C_DecryptDigestUpdate
      Src: /src/nss/lib/pk11wrap/debug_module.c:2369,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2374,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2375,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:2376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 5
    argNames:
    - hSession
    - pEncryptedPart
    - ulEncryptedPartLen
    - pPart
    - pulPartLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2378
      start: 2352
    functionDepth: 2
    functionLinenumber: 2352
    functionLinenumberEnd: 2378
    functionName: NSSDBGC_DecryptDigestUpdate
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - C_DecryptDigestUpdate
    - log_rv
    - nssdbg_finish_time
    - nssdbg_start_time
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_DecryptDigestUpdate(\n    CK_SESSION_HANDLE hSession,\n
      \   CK_BYTE_PTR pEncryptedPart,\n    CK_ULONG ulEncryptedPartLen,\n    CK_BYTE_PTR
      pPart,\n    CK_ULONG_PTR pulPartLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2390,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:2391,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2392,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2393,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2394,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2395,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2396,1
    - Dst: C_SignEncryptUpdate
      Src: /src/nss/lib/pk11wrap/debug_module.c:2397,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2402,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2403,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:2404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 5
    argNames:
    - hSession
    - pPart
    - ulPartLen
    - pEncryptedPart
    - pulEncryptedPartLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2406
      start: 2380
    functionDepth: 2
    functionLinenumber: 2380
    functionLinenumberEnd: 2406
    functionName: NSSDBGC_SignEncryptUpdate
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_handle
    - log_rv
    - nssdbg_finish_time
    - nssdbg_start_time
    - PR_LOG
    - C_SignEncryptUpdate
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_SignEncryptUpdate(\n    CK_SESSION_HANDLE hSession,\n
      \   CK_BYTE_PTR pPart,\n    CK_ULONG ulPartLen,\n    CK_BYTE_PTR pEncryptedPart,\n
      \   CK_ULONG_PTR pulEncryptedPartLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2418,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:2419,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2420,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2421,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2422,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2423,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2424,1
    - Dst: C_DecryptVerifyUpdate
      Src: /src/nss/lib/pk11wrap/debug_module.c:2425,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2430,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2431,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:2432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 5
    argNames:
    - hSession
    - pEncryptedPart
    - ulEncryptedPartLen
    - pPart
    - pulPartLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2434
      start: 2408
    functionDepth: 2
    functionLinenumber: 2408
    functionLinenumberEnd: 2434
    functionName: NSSDBGC_DecryptVerifyUpdate
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - nssdbg_finish_time
    - C_DecryptVerifyUpdate
    - nssdbg_start_time
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_DecryptVerifyUpdate(\n    CK_SESSION_HANDLE hSession,\n
      \   CK_BYTE_PTR pEncryptedPart,\n    CK_ULONG ulEncryptedPartLen,\n    CK_BYTE_PTR
      pPart,\n    CK_ULONG_PTR pulPartLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2446,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:2447,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2448,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2449,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2450,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2451,1
    - Dst: print_template
      Src: /src/nss/lib/pk11wrap/debug_module.c:2452,1
    - Dst: print_mechanism
      Src: /src/nss/lib/pk11wrap/debug_module.c:2453,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2454,1
    - Dst: C_GenerateKey
      Src: /src/nss/lib/pk11wrap/debug_module.c:2455,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2460,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:2461,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:2462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 5
    argNames:
    - hSession
    - pMechanism
    - pTemplate
    - ulCount
    - phKey
    argTypes:
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    - CK_OBJECT_HANDLE_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2464
      start: 2436
    functionDepth: 4
    functionLinenumber: 2436
    functionLinenumberEnd: 2464
    functionName: NSSDBGC_GenerateKey
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - nssdbg_finish_time
    - C_GenerateKey
    - print_mechanism
    - nssdbg_start_time
    - print_template
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_GenerateKey(\n    CK_SESSION_HANDLE hSession,\n    CK_MECHANISM_PTR
      pMechanism,\n    CK_ATTRIBUTE_PTR pTemplate,\n    CK_ULONG ulCount,\n    CK_OBJECT_HANDLE_PTR
      phKey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2479,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:2480,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2481,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2482,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2483,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2484,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2485,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2486,1
    - Dst: print_template
      Src: /src/nss/lib/pk11wrap/debug_module.c:2487,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2488,1
    - Dst: print_template
      Src: /src/nss/lib/pk11wrap/debug_module.c:2489,1
    - Dst: print_mechanism
      Src: /src/nss/lib/pk11wrap/debug_module.c:2490,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2491,1
    - Dst: C_GenerateKeyPair
      Src: /src/nss/lib/pk11wrap/debug_module.c:2492,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2500,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:2501,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:2502,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:2503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 8
    argNames:
    - hSession
    - pMechanism
    - pPublicKeyTemplate
    - ulPublicKeyAttributeCount
    - pPrivateKeyTemplate
    - ulPrivateKeyAttributeCount
    - phPublicKey
    - phPrivateKey
    argTypes:
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    - CK_OBJECT_HANDLE_PTR
    - CK_OBJECT_HANDLE_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2505
      start: 2466
    functionDepth: 4
    functionLinenumber: 2466
    functionLinenumberEnd: 2505
    functionName: NSSDBGC_GenerateKeyPair
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - nssdbg_finish_time
    - print_mechanism
    - nssdbg_start_time
    - C_GenerateKeyPair
    - print_template
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_GenerateKeyPair(\n    CK_SESSION_HANDLE hSession,\n
      \   CK_MECHANISM_PTR pMechanism,\n    CK_ATTRIBUTE_PTR pPublicKeyTemplate,\n
      \   CK_ULONG ulPublicKeyAttributeCount,\n    CK_ATTRIBUTE_PTR pPrivateKeyTemplate,\n
      \   CK_ULONG ulPrivateKeyAttributeCount,\n    CK_OBJECT_HANDLE_PTR phPublicKey,\n
      \   CK_OBJECT_HANDLE_PTR phPrivateKey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2518,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:2519,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2520,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:2521,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:2522,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2523,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2524,1
    - Dst: print_mechanism
      Src: /src/nss/lib/pk11wrap/debug_module.c:2525,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2526,1
    - Dst: C_WrapKey
      Src: /src/nss/lib/pk11wrap/debug_module.c:2527,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2533,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2534,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:2535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 6
    argNames:
    - hSession
    - pMechanism
    - hWrappingKey
    - hKey
    - pWrappedKey
    - pulWrappedKeyLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_OBJECT_HANDLE
    - CK_OBJECT_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2537
      start: 2507
    functionDepth: 2
    functionLinenumber: 2507
    functionLinenumberEnd: 2537
    functionName: NSSDBGC_WrapKey
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - C_WrapKey
    - log_rv
    - nssdbg_finish_time
    - print_mechanism
    - nssdbg_start_time
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_WrapKey(\n    CK_SESSION_HANDLE hSession,\n    CK_MECHANISM_PTR
      pMechanism,\n    CK_OBJECT_HANDLE hWrappingKey,\n    CK_OBJECT_HANDLE hKey,\n
      \   CK_BYTE_PTR pWrappedKey,\n    CK_ULONG_PTR pulWrappedKeyLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2552,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:2553,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2554,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:2555,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2556,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2557,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2558,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2559,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2560,1
    - Dst: print_template
      Src: /src/nss/lib/pk11wrap/debug_module.c:2561,1
    - Dst: print_mechanism
      Src: /src/nss/lib/pk11wrap/debug_module.c:2562,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2563,1
    - Dst: C_UnwrapKey
      Src: /src/nss/lib/pk11wrap/debug_module.c:2564,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2572,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:2573,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:2574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 8
    argNames:
    - hSession
    - pMechanism
    - hUnwrappingKey
    - pWrappedKey
    - ulWrappedKeyLen
    - pTemplate
    - ulAttributeCount
    - phKey
    argTypes:
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_OBJECT_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    - CK_OBJECT_HANDLE_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2576
      start: 2539
    functionDepth: 4
    functionLinenumber: 2539
    functionLinenumberEnd: 2576
    functionName: NSSDBGC_UnwrapKey
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - C_UnwrapKey
    - nssdbg_finish_time
    - print_mechanism
    - nssdbg_start_time
    - print_template
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_UnwrapKey(\n    CK_SESSION_HANDLE hSession,\n    CK_MECHANISM_PTR
      pMechanism,\n    CK_OBJECT_HANDLE hUnwrappingKey,\n    CK_BYTE_PTR pWrappedKey,\n
      \   CK_ULONG ulWrappedKeyLen,\n    CK_ATTRIBUTE_PTR pTemplate,\n    CK_ULONG
      ulAttributeCount,\n    CK_OBJECT_HANDLE_PTR phKey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2589,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:2590,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2591,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:2592,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2593,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2594,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2595,1
    - Dst: print_template
      Src: /src/nss/lib/pk11wrap/debug_module.c:2596,1
    - Dst: print_mechanism
      Src: /src/nss/lib/pk11wrap/debug_module.c:2597,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2598,1
    - Dst: C_DeriveKey
      Src: /src/nss/lib/pk11wrap/debug_module.c:2599,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2605,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:2606,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:2607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 6
    argNames:
    - hSession
    - pMechanism
    - hBaseKey
    - pTemplate
    - ulAttributeCount
    - phKey
    argTypes:
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_OBJECT_HANDLE
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    - CK_OBJECT_HANDLE_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2609
      start: 2578
    functionDepth: 4
    functionLinenumber: 2578
    functionLinenumberEnd: 2609
    functionName: NSSDBGC_DeriveKey
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - nssdbg_finish_time
    - print_mechanism
    - nssdbg_start_time
    - C_DeriveKey
    - print_template
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_DeriveKey(\n    CK_SESSION_HANDLE hSession,\n    CK_MECHANISM_PTR
      pMechanism,\n    CK_OBJECT_HANDLE hBaseKey,\n    CK_ATTRIBUTE_PTR pTemplate,\n
      \   CK_ULONG ulAttributeCount,\n    CK_OBJECT_HANDLE_PTR phKey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2619,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:2620,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2621,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2622,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2623,1
    - Dst: C_SeedRandom
      Src: /src/nss/lib/pk11wrap/debug_module.c:2624,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2627,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:2628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - hSession
    - pSeed
    - ulSeedLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2630
      start: 2611
    functionDepth: 2
    functionLinenumber: 2611
    functionLinenumberEnd: 2630
    functionName: NSSDBGC_SeedRandom
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - nssdbg_finish_time
    - C_SeedRandom
    - nssdbg_start_time
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_SeedRandom(\n    CK_SESSION_HANDLE hSession,\n    CK_BYTE_PTR
      pSeed,\n    CK_ULONG ulSeedLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2640,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:2641,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2642,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2643,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2644,1
    - Dst: C_GenerateRandom
      Src: /src/nss/lib/pk11wrap/debug_module.c:2645,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2648,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:2649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - hSession
    - RandomData
    - ulRandomLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2651
      start: 2632
    functionDepth: 2
    functionLinenumber: 2632
    functionLinenumberEnd: 2651
    functionName: NSSDBGC_GenerateRandom
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - nssdbg_finish_time
    - nssdbg_start_time
    - C_GenerateRandom
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_GenerateRandom(\n    CK_SESSION_HANDLE hSession,\n    CK_BYTE_PTR
      RandomData,\n    CK_ULONG ulRandomLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2659,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:2660,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2661,1
    - Dst: C_GetFunctionStatus
      Src: /src/nss/lib/pk11wrap/debug_module.c:2662,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2663,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:2664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - hSession
    argTypes:
    - CK_SESSION_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2666
      start: 2653
    functionDepth: 2
    functionLinenumber: 2653
    functionLinenumberEnd: 2666
    functionName: NSSDBGC_GetFunctionStatus
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - C_GetFunctionStatus
    - nssdbg_finish_time
    - nssdbg_start_time
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_GetFunctionStatus(\n    CK_SESSION_HANDLE hSession)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2674,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:2675,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2676,1
    - Dst: C_CancelFunction
      Src: /src/nss/lib/pk11wrap/debug_module.c:2677,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2678,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:2679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - hSession
    argTypes:
    - CK_SESSION_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2681
      start: 2668
    functionDepth: 2
    functionLinenumber: 2668
    functionLinenumberEnd: 2681
    functionName: NSSDBGC_CancelFunction
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - nssdbg_finish_time
    - C_CancelFunction
    - nssdbg_start_time
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_CancelFunction(\n    CK_SESSION_HANDLE hSession)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2691,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2692,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2693,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2694,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2695,1
    - Dst: C_WaitForSlotEvent
      Src: /src/nss/lib/pk11wrap/debug_module.c:2696,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2699,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:2700,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - flags
    - pSlot
    - pRserved
    argTypes:
    - CK_FLAGS
    - CK_SLOT_ID_PTR
    - CK_VOID_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2702
      start: 2683
    functionDepth: 2
    functionLinenumber: 2683
    functionLinenumberEnd: 2702
    functionName: NSSDBGC_WaitForSlotEvent
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - nssdbg_finish_time
    - C_WaitForSlotEvent
    - nssdbg_start_time
    - PR_LOG
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_WaitForSlotEvent(\n    CK_FLAGS flags,\n    CK_SLOT_ID_PTR
      pSlot,\n    CK_VOID_PTR pRserved)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2709,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2710,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2711,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2712,1
    - Dst: C_GetInterfaceList
      Src: /src/nss/lib/pk11wrap/debug_module.c:2713,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2715,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:2716,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - interfaces
    - pulCount
    argTypes:
    - CK_INTERFACE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2718
      start: 2704
    functionDepth: 2
    functionLinenumber: 2704
    functionLinenumberEnd: 2718
    functionName: NSSDBGC_GetInterfaceList
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - nssdbg_finish_time
    - C_GetInterfaceList
    - nssdbg_start_time
    - PR_LOG
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_GetInterfaceList(CK_INTERFACE_PTR interfaces,\n                         CK_ULONG_PTR
      pulCount)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2727,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2728,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2729,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2730,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2731,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2732,1
    - Dst: C_GetInterface
      Src: /src/nss/lib/pk11wrap/debug_module.c:2733,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2737,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:2738,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 4
    argNames:
    - pInterfaceName
    - pVersion
    - ppInterface
    - flags
    argTypes:
    - CK_UTF8CHAR_PTR
    - CK_VERSION_PTR
    - CK_INTERFACE_PTR_PTR
    - CK_FLAGS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2740
      start: 2720
    functionDepth: 2
    functionLinenumber: 2720
    functionLinenumberEnd: 2740
    functionName: NSSDBGC_GetInterface
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - C_GetInterface
    - nssdbg_finish_time
    - nssdbg_start_time
    - PR_LOG
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_GetInterface(CK_UTF8CHAR_PTR pInterfaceName,\n                     CK_VERSION_PTR
      pVersion,\n                     CK_INTERFACE_PTR_PTR ppInterface,\n                     CK_FLAGS
      flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2751,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:2752,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2753,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2754,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2755,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2756,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2757,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2758,1
    - Dst: C_LoginUser
      Src: /src/nss/lib/pk11wrap/debug_module.c:2759,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2765,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:2766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 6
    argNames:
    - hSession
    - userType
    - pPin
    - ulPinLen
    - pUsername
    - ulUsernameLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_USER_TYPE
    - CK_CHAR_PTR
    - CK_ULONG
    - CK_UTF8CHAR_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2768
      start: 2742
    functionDepth: 2
    functionLinenumber: 2742
    functionLinenumberEnd: 2768
    functionName: NSSDBGC_LoginUser
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - nssdbg_finish_time
    - nssdbg_start_time
    - C_LoginUser
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_LoginUser(CK_SESSION_HANDLE hSession,\n                  CK_USER_TYPE
      userType,\n                  CK_CHAR_PTR pPin,\n                  CK_ULONG ulPinLen,\n
      \                 CK_UTF8CHAR_PTR pUsername,\n                  CK_ULONG ulUsernameLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2775,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:2776,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2777,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2778,1
    - Dst: C_SessionCancel
      Src: /src/nss/lib/pk11wrap/debug_module.c:2779,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2781,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:2782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - hSession
    - flags
    argTypes:
    - CK_SESSION_HANDLE
    - CK_FLAGS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2784
      start: 2770
    functionDepth: 2
    functionLinenumber: 2770
    functionLinenumberEnd: 2784
    functionName: NSSDBGC_SessionCancel
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - nssdbg_finish_time
    - C_SessionCancel
    - nssdbg_start_time
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_SessionCancel(CK_SESSION_HANDLE hSession,\n                      CK_FLAGS
      flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2792,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:2793,1
    - Dst: print_mechanism
      Src: /src/nss/lib/pk11wrap/debug_module.c:2794,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:2795,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2796,1
    - Dst: C_MessageEncryptInit
      Src: /src/nss/lib/pk11wrap/debug_module.c:2797,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2800,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:2801,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - hSession
    - pMechanism
    - hKey
    argTypes:
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2803
      start: 2786
    functionDepth: 2
    functionLinenumber: 2786
    functionLinenumberEnd: 2803
    functionName: NSSDBGC_MessageEncryptInit
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - C_MessageEncryptInit
    - nssdbg_finish_time
    - print_mechanism
    - nssdbg_start_time
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_MessageEncryptInit(CK_SESSION_HANDLE hSession,\n                           CK_MECHANISM_PTR
      pMechanism,\n                           CK_OBJECT_HANDLE hKey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2817,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:2818,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2819,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2820,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2821,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2822,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2823,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2824,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2825,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2826,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2827,1
    - Dst: C_EncryptMessage
      Src: /src/nss/lib/pk11wrap/debug_module.c:2828,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2837,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:2838,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 9
    argNames:
    - hSession
    - pParameter
    - ulParameterLen
    - pAssociatedData
    - ulAssociatedDataLen
    - pPlaintext
    - ulPlaintextLen
    - pCiphertext
    - pulCiphertextLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_VOID_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2840
      start: 2805
    functionDepth: 2
    functionLinenumber: 2805
    functionLinenumberEnd: 2840
    functionName: NSSDBGC_EncryptMessage
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - C_EncryptMessage
    - log_rv
    - nssdbg_finish_time
    - nssdbg_start_time
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_EncryptMessage(CK_SESSION_HANDLE hSession,\n                       CK_VOID_PTR
      pParameter,\n                       CK_ULONG ulParameterLen,\n                       CK_BYTE_PTR
      pAssociatedData,\n                       CK_ULONG ulAssociatedDataLen,\n                       CK_BYTE_PTR
      pPlaintext,\n                       CK_ULONG ulPlaintextLen,\n                       CK_BYTE_PTR
      pCiphertext,\n                       CK_ULONG_PTR pulCiphertextLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2850,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:2851,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2852,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2853,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2854,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2855,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2856,1
    - Dst: C_EncryptMessageBegin
      Src: /src/nss/lib/pk11wrap/debug_module.c:2857,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2862,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:2863,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 5
    argNames:
    - hSession
    - pParameter
    - ulParameterLen
    - pAssociatedData
    - ulAssociatedDataLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_VOID_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2865
      start: 2842
    functionDepth: 2
    functionLinenumber: 2842
    functionLinenumberEnd: 2865
    functionName: NSSDBGC_EncryptMessageBegin
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - nssdbg_finish_time
    - nssdbg_start_time
    - C_EncryptMessageBegin
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_EncryptMessageBegin(CK_SESSION_HANDLE hSession,\n                            CK_VOID_PTR
      pParameter,\n                            CK_ULONG ulParameterLen,\n                            CK_BYTE_PTR
      pAssociatedData,\n                            CK_ULONG ulAssociatedDataLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2878,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:2879,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2880,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2881,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2882,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2883,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2884,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2885,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2886,1
    - Dst: C_EncryptMessageNext
      Src: /src/nss/lib/pk11wrap/debug_module.c:2887,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2895,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:2896,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 8
    argNames:
    - hSession
    - pParameter
    - ulParameterLen
    - pPlaintextPart
    - ulPlaintextPartLen
    - pCiphertextPart
    - pulCiphertextPartLen
    - flags
    argTypes:
    - CK_SESSION_HANDLE
    - CK_VOID_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    - CK_FLAGS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2898
      start: 2867
    functionDepth: 2
    functionLinenumber: 2867
    functionLinenumberEnd: 2898
    functionName: NSSDBGC_EncryptMessageNext
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - C_EncryptMessageNext
    - log_rv
    - nssdbg_finish_time
    - nssdbg_start_time
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_EncryptMessageNext(CK_SESSION_HANDLE hSession,\n                           CK_VOID_PTR
      pParameter,\n                           CK_ULONG ulParameterLen,\n                           CK_BYTE_PTR
      pPlaintextPart,\n                           CK_ULONG ulPlaintextPartLen,\n                           CK_BYTE_PTR
      pCiphertextPart,\n                           CK_ULONG_PTR pulCiphertextPartLen,\n
      \                          CK_FLAGS flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2904,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:2905,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2906,1
    - Dst: C_MessageEncryptFinal
      Src: /src/nss/lib/pk11wrap/debug_module.c:2907,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2908,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:2909,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - hSession
    argTypes:
    - CK_SESSION_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2911
      start: 2900
    functionDepth: 2
    functionLinenumber: 2900
    functionLinenumberEnd: 2911
    functionName: NSSDBGC_MessageEncryptFinal
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - nssdbg_finish_time
    - nssdbg_start_time
    - PR_LOG
    - C_MessageEncryptFinal
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV NSSDBGC_MessageEncryptFinal(CK_SESSION_HANDLE hSession)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2919,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:2920,1
    - Dst: print_mechanism
      Src: /src/nss/lib/pk11wrap/debug_module.c:2921,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:2922,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2923,1
    - Dst: C_MessageDecryptInit
      Src: /src/nss/lib/pk11wrap/debug_module.c:2924,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2927,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:2928,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - hSession
    - pMechanism
    - hKey
    argTypes:
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2930
      start: 2913
    functionDepth: 2
    functionLinenumber: 2913
    functionLinenumberEnd: 2930
    functionName: NSSDBGC_MessageDecryptInit
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_handle
    - log_rv
    - nssdbg_finish_time
    - print_mechanism
    - nssdbg_start_time
    - PR_LOG
    - C_MessageDecryptInit
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_MessageDecryptInit(CK_SESSION_HANDLE hSession,\n                           CK_MECHANISM_PTR
      pMechanism,\n                           CK_OBJECT_HANDLE hKey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2944,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:2945,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2946,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2947,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2948,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2949,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2950,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2951,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2952,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2953,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2954,1
    - Dst: C_DecryptMessage
      Src: /src/nss/lib/pk11wrap/debug_module.c:2955,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2964,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:2965,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 9
    argNames:
    - hSession
    - pParameter
    - ulParameterLen
    - pAssociatedData
    - ulAssociatedDataLen
    - pCiphertext
    - ulCiphertextLen
    - pPlaintext
    - pulPlaintextLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_VOID_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2967
      start: 2932
    functionDepth: 2
    functionLinenumber: 2932
    functionLinenumberEnd: 2967
    functionName: NSSDBGC_DecryptMessage
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - nssdbg_finish_time
    - C_DecryptMessage
    - nssdbg_start_time
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_DecryptMessage(CK_SESSION_HANDLE hSession,\n                       CK_VOID_PTR
      pParameter,\n                       CK_ULONG ulParameterLen,\n                       CK_BYTE_PTR
      pAssociatedData,\n                       CK_ULONG ulAssociatedDataLen,\n                       CK_BYTE_PTR
      pCiphertext,\n                       CK_ULONG ulCiphertextLen,\n                       CK_BYTE_PTR
      pPlaintext,\n                       CK_ULONG_PTR pulPlaintextLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2977,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:2978,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2979,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2980,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2981,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:2982,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2983,1
    - Dst: C_DecryptMessageBegin
      Src: /src/nss/lib/pk11wrap/debug_module.c:2984,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:2989,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:2990,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 5
    argNames:
    - hSession
    - pParameter
    - ulParameterLen
    - pAssociatedData
    - ulAssociatedDataLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_VOID_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2992
      start: 2969
    functionDepth: 2
    functionLinenumber: 2969
    functionLinenumberEnd: 2992
    functionName: NSSDBGC_DecryptMessageBegin
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - nssdbg_finish_time
    - C_DecryptMessageBegin
    - nssdbg_start_time
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_DecryptMessageBegin(CK_SESSION_HANDLE hSession,\n                            CK_VOID_PTR
      pParameter,\n                            CK_ULONG ulParameterLen,\n                            CK_BYTE_PTR
      pAssociatedData,\n                            CK_ULONG ulAssociatedDataLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:3005,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:3006,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:3007,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:3008,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:3009,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:3010,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:3011,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:3012,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:3013,1
    - Dst: C_DecryptMessageNext
      Src: /src/nss/lib/pk11wrap/debug_module.c:3014,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:3022,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:3023,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 8
    argNames:
    - hSession
    - pParameter
    - ulParameterLen
    - pCiphertextPart
    - ulCiphertextPartLen
    - pPlaintextPart
    - pulPlaintextPartLen
    - flags
    argTypes:
    - CK_SESSION_HANDLE
    - CK_VOID_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    - CK_FLAGS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3025
      start: 2994
    functionDepth: 2
    functionLinenumber: 2994
    functionLinenumberEnd: 3025
    functionName: NSSDBGC_DecryptMessageNext
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - nssdbg_finish_time
    - nssdbg_start_time
    - C_DecryptMessageNext
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_DecryptMessageNext(CK_SESSION_HANDLE hSession,\n                           CK_VOID_PTR
      pParameter,\n                           CK_ULONG ulParameterLen,\n                           CK_BYTE_PTR
      pCiphertextPart,\n                           CK_ULONG ulCiphertextPartLen,\n
      \                          CK_BYTE_PTR pPlaintextPart,\n                           CK_ULONG_PTR
      pulPlaintextPartLen,\n                           CK_FLAGS flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:3031,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:3032,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:3033,1
    - Dst: C_MessageDecryptFinal
      Src: /src/nss/lib/pk11wrap/debug_module.c:3034,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:3035,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:3036,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - hSession
    argTypes:
    - CK_SESSION_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3038
      start: 3027
    functionDepth: 2
    functionLinenumber: 3027
    functionLinenumberEnd: 3038
    functionName: NSSDBGC_MessageDecryptFinal
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - C_MessageDecryptFinal
    - nssdbg_finish_time
    - nssdbg_start_time
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV NSSDBGC_MessageDecryptFinal(CK_SESSION_HANDLE hSession)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:3046,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:3047,1
    - Dst: print_mechanism
      Src: /src/nss/lib/pk11wrap/debug_module.c:3048,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:3049,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:3050,1
    - Dst: C_MessageSignInit
      Src: /src/nss/lib/pk11wrap/debug_module.c:3051,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:3054,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:3055,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - hSession
    - pMechanism
    - hKey
    argTypes:
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3057
      start: 3040
    functionDepth: 2
    functionLinenumber: 3040
    functionLinenumberEnd: 3057
    functionName: NSSDBGC_MessageSignInit
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - C_MessageSignInit
    - log_rv
    - nssdbg_finish_time
    - print_mechanism
    - nssdbg_start_time
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_MessageSignInit(CK_SESSION_HANDLE hSession,\n                        CK_MECHANISM_PTR
      pMechanism,\n                        CK_OBJECT_HANDLE hKey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:3069,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:3070,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:3071,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:3072,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:3073,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:3074,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:3075,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:3076,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:3077,1
    - Dst: C_SignMessage
      Src: /src/nss/lib/pk11wrap/debug_module.c:3078,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:3085,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:3086,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 7
    argNames:
    - hSession
    - pParameter
    - ulParameterLen
    - pData
    - ulDataLen
    - pSignature
    - pulSignatureLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_VOID_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3088
      start: 3059
    functionDepth: 2
    functionLinenumber: 3059
    functionLinenumberEnd: 3088
    functionName: NSSDBGC_SignMessage
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - nssdbg_finish_time
    - C_SignMessage
    - nssdbg_start_time
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_SignMessage(CK_SESSION_HANDLE hSession,\n                    CK_VOID_PTR
      pParameter,\n                    CK_ULONG ulParameterLen,\n                    CK_BYTE_PTR
      pData,\n                    CK_ULONG ulDataLen,\n                    CK_BYTE_PTR
      pSignature,\n                    CK_ULONG_PTR pulSignatureLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:3096,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:3097,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:3098,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:3099,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:3100,1
    - Dst: C_SignMessageBegin
      Src: /src/nss/lib/pk11wrap/debug_module.c:3101,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:3104,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:3105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - hSession
    - pParameter
    - ulParameterLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_VOID_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3107
      start: 3090
    functionDepth: 2
    functionLinenumber: 3090
    functionLinenumberEnd: 3107
    functionName: NSSDBGC_SignMessageBegin
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - nssdbg_finish_time
    - C_SignMessageBegin
    - nssdbg_start_time
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_SignMessageBegin(CK_SESSION_HANDLE hSession,\n                         CK_VOID_PTR
      pParameter,\n                         CK_ULONG ulParameterLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:3119,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:3120,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:3121,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:3122,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:3123,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:3124,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:3125,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:3126,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:3127,1
    - Dst: C_SignMessageNext
      Src: /src/nss/lib/pk11wrap/debug_module.c:3128,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:3135,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:3136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 7
    argNames:
    - hSession
    - pParameter
    - ulParameterLen
    - pData
    - ulDataLen
    - pSignature
    - pulSignatureLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_VOID_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3138
      start: 3109
    functionDepth: 2
    functionLinenumber: 3109
    functionLinenumberEnd: 3138
    functionName: NSSDBGC_SignMessageNext
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - nssdbg_finish_time
    - nssdbg_start_time
    - C_SignMessageNext
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_SignMessageNext(CK_SESSION_HANDLE hSession,\n                        CK_VOID_PTR
      pParameter,\n                        CK_ULONG ulParameterLen,\n                        CK_BYTE_PTR
      pData,\n                        CK_ULONG ulDataLen,\n                        CK_BYTE_PTR
      pSignature,\n                        CK_ULONG_PTR pulSignatureLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:3144,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:3145,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:3146,1
    - Dst: C_MessageSignFinal
      Src: /src/nss/lib/pk11wrap/debug_module.c:3147,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:3148,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:3149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - hSession
    argTypes:
    - CK_SESSION_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3151
      start: 3140
    functionDepth: 2
    functionLinenumber: 3140
    functionLinenumberEnd: 3151
    functionName: NSSDBGC_MessageSignFinal
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - C_MessageSignFinal
    - log_rv
    - nssdbg_finish_time
    - nssdbg_start_time
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV NSSDBGC_MessageSignFinal(CK_SESSION_HANDLE hSession)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:3159,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:3160,1
    - Dst: print_mechanism
      Src: /src/nss/lib/pk11wrap/debug_module.c:3161,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:3162,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:3163,1
    - Dst: C_MessageVerifyInit
      Src: /src/nss/lib/pk11wrap/debug_module.c:3164,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:3167,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:3168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - hSession
    - pMechanism
    - hKey
    argTypes:
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3170
      start: 3153
    functionDepth: 2
    functionLinenumber: 3153
    functionLinenumberEnd: 3170
    functionName: NSSDBGC_MessageVerifyInit
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - C_MessageVerifyInit
    - nssdbg_finish_time
    - print_mechanism
    - nssdbg_start_time
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_MessageVerifyInit(CK_SESSION_HANDLE hSession,\n                          CK_MECHANISM_PTR
      pMechanism,\n                          CK_OBJECT_HANDLE hKey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:3182,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:3183,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:3184,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:3185,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:3186,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:3187,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:3188,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:3189,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:3190,1
    - Dst: C_VerifyMessage
      Src: /src/nss/lib/pk11wrap/debug_module.c:3191,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:3198,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:3199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 7
    argNames:
    - hSession
    - pParameter
    - ulParameterLen
    - pData
    - ulDataLen
    - pSignature
    - ulSignatureLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_VOID_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3201
      start: 3172
    functionDepth: 2
    functionLinenumber: 3172
    functionLinenumberEnd: 3201
    functionName: NSSDBGC_VerifyMessage
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - nssdbg_finish_time
    - C_VerifyMessage
    - nssdbg_start_time
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_VerifyMessage(CK_SESSION_HANDLE hSession,\n                      CK_VOID_PTR
      pParameter,\n                      CK_ULONG ulParameterLen,\n                      CK_BYTE_PTR
      pData,\n                      CK_ULONG ulDataLen,\n                      CK_BYTE_PTR
      pSignature,\n                      CK_ULONG ulSignatureLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:3209,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:3210,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:3211,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:3212,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:3213,1
    - Dst: C_VerifyMessageBegin
      Src: /src/nss/lib/pk11wrap/debug_module.c:3214,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:3217,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:3218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - hSession
    - pParameter
    - ulParameterLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_VOID_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3220
      start: 3203
    functionDepth: 2
    functionLinenumber: 3203
    functionLinenumberEnd: 3220
    functionName: NSSDBGC_VerifyMessageBegin
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - C_VerifyMessageBegin
    - log_rv
    - nssdbg_finish_time
    - nssdbg_start_time
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_VerifyMessageBegin(CK_SESSION_HANDLE hSession,\n                           CK_VOID_PTR
      pParameter,\n                           CK_ULONG ulParameterLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:3232,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:3233,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:3234,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:3235,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:3236,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:3237,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:3238,1
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:3239,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:3240,1
    - Dst: C_VerifyMessageNext
      Src: /src/nss/lib/pk11wrap/debug_module.c:3241,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:3248,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:3249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 7
    argNames:
    - hSession
    - pParameter
    - ulParameterLen
    - pData
    - ulDataLen
    - pSignature
    - ulSignatureLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_VOID_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3251
      start: 3222
    functionDepth: 2
    functionLinenumber: 3222
    functionLinenumberEnd: 3251
    functionName: NSSDBGC_VerifyMessageNext
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - log_rv
    - nssdbg_finish_time
    - C_VerifyMessageNext
    - nssdbg_start_time
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSSDBGC_VerifyMessageNext(CK_SESSION_HANDLE hSession,\n                          CK_VOID_PTR
      pParameter,\n                          CK_ULONG ulParameterLen,\n                          CK_BYTE_PTR
      pData,\n                          CK_ULONG ulDataLen,\n                          CK_BYTE_PTR
      pSignature,\n                          CK_ULONG ulSignatureLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LOG
      Src: /src/nss/lib/pk11wrap/debug_module.c:3257,1
    - Dst: log_handle
      Src: /src/nss/lib/pk11wrap/debug_module.c:3258,1
    - Dst: nssdbg_start_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:3259,1
    - Dst: C_MessageVerifyFinal
      Src: /src/nss/lib/pk11wrap/debug_module.c:3260,1
    - Dst: nssdbg_finish_time
      Src: /src/nss/lib/pk11wrap/debug_module.c:3261,1
    - Dst: log_rv
      Src: /src/nss/lib/pk11wrap/debug_module.c:3262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - hSession
    argTypes:
    - CK_SESSION_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3264
      start: 3253
    functionDepth: 2
    functionLinenumber: 3253
    functionLinenumberEnd: 3264
    functionName: NSSDBGC_MessageVerifyFinal
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - C_MessageVerifyFinal
    - log_rv
    - nssdbg_finish_time
    - nssdbg_start_time
    - PR_LOG
    - log_handle
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV NSSDBGC_MessageVerifyFinal(CK_SESSION_HANDLE hSession)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_NewLogModule
      Src: /src/nss/lib/pk11wrap/debug_module.c:3272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 97
    argCount: 1
    argNames:
    - devEPV
    argTypes:
    - CK_FUNCTION_LIST_3_0_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3366
      start: 3266
    functionDepth: 1
    functionLinenumber: 3266
    functionLinenumberEnd: 3366
    functionName: nss_InsertDeviceLog
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 1
    functionsReached:
    - PR_NewLogModule
    linkageType: ''
    returnType: CK_FUNCTION_LIST_3_0_PTR
    signature: "CK_FUNCTION_LIST_3_0_PTR nss_InsertDeviceLog(\n    CK_FUNCTION_LIST_3_0_PTR
      devEPV)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PR_IntervalToSeconds
      Src: /src/nss/lib/pk11wrap/debug_module.c:3394,1
    - Dst: PR_IntervalToMilliseconds
      Src: /src/nss/lib/pk11wrap/debug_module.c:3404,1
    - Dst: PR_IntervalToMicroseconds
      Src: /src/nss/lib/pk11wrap/debug_module.c:3410,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - time
    - type
    argTypes:
    - PRIntervalTime
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3411
      start: 3381
    functionDepth: 1
    functionLinenumber: 3381
    functionLinenumberEnd: 3411
    functionName: getPrintTime
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 0
    functionsReached:
    - PR_IntervalToMicroseconds
    - PR_IntervalToSeconds
    - PR_IntervalToMilliseconds
    linkageType: ''
    returnType: PRUint32
    signature: PRUint32 getPrintTime(PRIntervalTime time, char **type)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/pk11wrap/debug_module.c:3424,1
    - Dst: fopen
      Src: /src/nss/lib/pk11wrap/debug_module.c:3427,1
    - Dst: fprintf
      Src: /src/nss/lib/pk11wrap/debug_module.c:3433,1
    - Dst: fprintf
      Src: /src/nss/lib/pk11wrap/debug_module.c:3435,1
    - Dst: PR_IntervalToMicroseconds
      Src: /src/nss/lib/pk11wrap/debug_module.c:3442,1
    - Dst: getPrintTime
      Src: /src/nss/lib/pk11wrap/debug_module.c:3450,1
    - Dst: fprintf
      Src: /src/nss/lib/pk11wrap/debug_module.c:3452,1
    - Dst: fprintf
      Src: /src/nss/lib/pk11wrap/debug_module.c:3455,1
    - Dst: fprintf
      Src: /src/nss/lib/pk11wrap/debug_module.c:3456,1
    - Dst: fprintf
      Src: /src/nss/lib/pk11wrap/debug_module.c:3457,1
    - Dst: fprintf
      Src: /src/nss/lib/pk11wrap/debug_module.c:3459,1
    - Dst: getPrintTime
      Src: /src/nss/lib/pk11wrap/debug_module.c:3461,1
    - Dst: fprintf
      Src: /src/nss/lib/pk11wrap/debug_module.c:3463,1
    - Dst: fprintf
      Src: /src/nss/lib/pk11wrap/debug_module.c:3465,1
    - Dst: fflush
      Src: /src/nss/lib/pk11wrap/debug_module.c:3467,1
    - Dst: fclose
      Src: /src/nss/lib/pk11wrap/debug_module.c:3469,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3471
      start: 3413
    functionDepth: 2
    functionLinenumber: 3413
    functionLinenumberEnd: 3471
    functionName: print_final_statistics
    functionSourceFile: /src/nss/lib/pk11wrap/debug_module.c
    functionUses: 1
    functionsReached:
    - PR_IntervalToMicroseconds
    - fclose
    - PR_GetEnvSecure
    - fprintf
    - fopen
    - getPrintTime
    - fflush
    linkageType: ''
    returnType: void
    signature: void print_final_statistics(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STAN_GetCERTCertificate
      Src: /src/nss/lib/pk11wrap/pk11cert.c:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - c
    - arg
    argTypes:
    - NSSCertificate*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 66
    functionName: convert_cert
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 0
    functionsReached:
    - STAN_GetCERTCertificate
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus convert_cert(NSSCertificate *c, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: toHex
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int toHex(int x)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strlen
      Src: /src/nss/lib/pk11wrap/pk11cert.c:83,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:100,1
    - Dst: toHex
      Src: /src/nss/lib/pk11wrap/pk11cert.c:105,1
    - Dst: toHex
      Src: /src/nss/lib/pk11wrap/pk11cert.c:106,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/pk11wrap/pk11cert.c:110,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cert.c:112,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/pk11wrap/pk11cert.c:117,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:121,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:124,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 4
    argNames:
    - slot
    - cert_label
    - key_label
    - cert_id
    argTypes:
    - PK11SlotInfo*
    - CK_ATTRIBUTE*
    - CK_ATTRIBUTE*
    - CK_ATTRIBUTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 128
    functionName: pk11_buildNickname
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_Memcpy
    - PORT_Strlen
    - PORT_SetError
    - toHex
    linkageType: ''
    returnType: char
    signature: "char *\npk11_buildNickname(PK11SlotInfo *slot, CK_ATTRIBUTE *cert_label,\n
      \                  CK_ATTRIBUTE *key_label, CK_ATTRIBUTE *cert_id)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: pk11_LoginStillRequired
      Src: /src/nss/lib/pk11wrap/pk11cert.c:142,1
    - Dst: PK11_MatchItem
      Src: /src/nss/lib/pk11wrap/pk11cert.c:145,1
    - Dst: CERT_ExtractPublicKey
      Src: /src/nss/lib/pk11wrap/pk11cert.c:150,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11cert.c:157,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11cert.c:162,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11cert.c:166,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11cert.c:170,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11cert.c:176,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/pk11wrap/pk11cert.c:189,1
    - Dst: pk11_SignedToUnsigned
      Src: /src/nss/lib/pk11wrap/pk11cert.c:193,1
    - Dst: pk11_FindObjectByTemplate
      Src: /src/nss/lib/pk11wrap/pk11cert.c:195,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/pk11wrap/pk11cert.c:196,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/pk11wrap/pk11cert.c:199,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 54
    argCount: 3
    argNames:
    - slot
    - cert
    - certID
    argTypes:
    - PK11SlotInfo*
    - CERTCertificate*
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 130
    functionDepth: 4
    functionLinenumber: 130
    functionLinenumberEnd: 202
    functionName: PK11_IsUserCert
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 0
    functionsReached:
    - PK11_MatchItem
    - SECKEY_DestroyPublicKey
    - pk11_FindObjectByTemplate
    - pk11_LoginStillRequired
    - PK11_SETATTRS
    - pk11_SignedToUnsigned
    - CERT_ExtractPublicKey
    linkageType: ''
    returnType: PRBool
    signature: "PRBool PK11_IsUserCert(PK11SlotInfo *slot, CERTCertificate *cert,\n
      \               CK_OBJECT_HANDLE certID)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetAttributes
      Src: /src/nss/lib/pk11wrap/pk11cert.c:218,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11cert.c:233,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - slot
    - certID
    argTypes:
    - PK11SlotInfo*
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 235
    functionName: pk11_isID0
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - PK11_GetAttributes
    linkageType: ''
    returnType: PRBool
    signature: PRBool pk11_isID0(PK11SlotInfo *slot, CK_OBJECT_HANDLE certID)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: STAN_GetDefaultTrustDomain
      Src: /src/nss/lib/pk11wrap/pk11cert.c:248,1
    - Dst: PK11Slot_GetNSSToken
      Src: /src/nss/lib/pk11wrap/pk11cert.c:251,1
    - Dst: nssToken_Destroy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:253,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cert.c:254,1
    - Dst: nssCryptokiObject_Create
      Src: /src/nss/lib/pk11wrap/pk11cert.c:257,1
    - Dst: nssToken_Destroy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:258,1
    - Dst: nssPKIObject_Create
      Src: /src/nss/lib/pk11wrap/pk11cert.c:264,1
    - Dst: nssCryptokiObject_Destroy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:266,1
    - Dst: nssCertificate_Create
      Src: /src/nss/lib/pk11wrap/pk11cert.c:271,1
    - Dst: nssPKIObject_Destroy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:273,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/pk11wrap/pk11cert.c:286,1
    - Dst: pk11_buildNickname
      Src: /src/nss/lib/pk11wrap/pk11cert.c:292,1
    - Dst: nssTrustDomain_AddCertsToCache
      Src: /src/nss/lib/pk11wrap/pk11cert.c:300,1
    - Dst: STAN_GetCERTCertificateOrRelease
      Src: /src/nss/lib/pk11wrap/pk11cert.c:301,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 4
    argNames:
    - slot
    - certID
    - privateLabel
    - nickptr
    argTypes:
    - PK11SlotInfo*
    - CK_OBJECT_HANDLE
    - CK_ATTRIBUTE*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 241
    functionDepth: 6
    functionLinenumber: 241
    functionLinenumberEnd: 302
    functionName: pk11_fastCert
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 0
    functionsReached:
    - pk11_buildNickname
    - nssToken_Destroy
    - STAN_GetDefaultTrustDomain
    - nssCertificate_Create
    - PORT_Strlen
    - PORT_SetError
    - nssCryptokiObject_Destroy
    - nssPKIObject_Create
    - STAN_GetCERTCertificateOrRelease
    - nssPKIObject_Destroy
    - PK11Slot_GetNSSToken
    - nssTrustDomain_AddCertsToCache
    - nssCryptokiObject_Create
    linkageType: ''
    returnType: CERTCertificate
    signature: "CERTCertificate *\npk11_fastCert(PK11SlotInfo *slot, CK_OBJECT_HANDLE
      certID,\n              CK_ATTRIBUTE *privateLabel, char **nickptr)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cert.c:317,1
    - Dst: pk11_fastCert
      Src: /src/nss/lib/pk11wrap/pk11cert.c:321,1
    - Dst: PORT_ArenaStrdup
      Src: /src/nss/lib/pk11wrap/pk11cert.c:330,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11cert.c:331,1
    - Dst: PK11_ReferenceSlot
      Src: /src/nss/lib/pk11wrap/pk11cert.c:339,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/pk11wrap/pk11cert.c:345,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/pk11wrap/pk11cert.c:348,1
    - Dst: pk11_HandleTrustObject
      Src: /src/nss/lib/pk11wrap/pk11cert.c:350,1
    - Dst: CERT_IsCACert
      Src: /src/nss/lib/pk11wrap/pk11cert.c:354,1
    - Dst: pk11_isID0
      Src: /src/nss/lib/pk11wrap/pk11cert.c:360,1
    - Dst: PK11_DoesMechanism
      Src: /src/nss/lib/pk11wrap/pk11cert.c:366,1
    - Dst: PK11_IsUserCert
      Src: /src/nss/lib/pk11wrap/pk11cert.c:382,1
    - Dst: CERT_LockCertTrust
      Src: /src/nss/lib/pk11wrap/pk11cert.c:387,1
    - Dst: CERT_UnlockCertTrust
      Src: /src/nss/lib/pk11wrap/pk11cert.c:389,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11cert.c:395,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/pk11wrap/pk11cert.c:397,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 63
    argCount: 3
    argNames:
    - slot
    - certID
    - privateLabel
    argTypes:
    - PK11SlotInfo*
    - CK_OBJECT_HANDLE
    - CK_ATTRIBUTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 308
    functionDepth: 7
    functionLinenumber: 308
    functionLinenumberEnd: 399
    functionName: PK11_MakeCertFromHandle
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 1
    functionsReached:
    - CERT_LockCertTrust
    - PORT_Free
    - PORT_ArenaStrdup
    - PORT_ArenaAlloc
    - PK11_IsUserCert
    - CERT_IsCACert
    - PK11_DoesMechanism
    - PORT_SetError
    - pk11_HandleTrustObject
    - CERT_UnlockCertTrust
    - PK11_ReferenceSlot
    - CERT_DestroyCertificate
    - PORT_Memset
    - pk11_fastCert
    - pk11_isID0
    linkageType: ''
    returnType: CERTCertificate
    signature: "CERTCertificate *\nPK11_MakeCertFromHandle(PK11SlotInfo *slot, CK_OBJECT_HANDLE
      certID,\n                        CK_ATTRIBUTE *privateLabel)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_MatchItem
      Src: /src/nss/lib/pk11wrap/pk11cert.c:410,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cert.c:414,1
    - Dst: PK11_MakeCertFromHandle
      Src: /src/nss/lib/pk11wrap/pk11cert.c:417,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - privKey
    argTypes:
    - SECKEYPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 404
    functionDepth: 8
    functionLinenumber: 404
    functionLinenumberEnd: 419
    functionName: PK11_GetCertFromPrivateKey
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 4
    functionsReached:
    - PK11_MatchItem
    - PORT_SetError
    - PK11_MakeCertFromHandle
    linkageType: ''
    returnType: CERTCertificate
    signature: 'CERTCertificate *

      PK11_GetCertFromPrivateKey(SECKEYPrivateKey *privKey)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cert.c:426,1
    - Dst: PORT_InitCheapArena
      Src: /src/nss/lib/pk11wrap/pk11cert.c:431,1
    - Dst: PK11_GetAttributes
      Src: /src/nss/lib/pk11wrap/pk11cert.c:436,1
    - Dst: PORT_DestroyCheapArena
      Src: /src/nss/lib/pk11wrap/pk11cert.c:438,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cert.c:439,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11cert.c:439,1
    - Dst: PORT_DestroyCheapArena
      Src: /src/nss/lib/pk11wrap/pk11cert.c:444,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cert.c:445,1
    - Dst: pk11_FindObjectsByTemplate
      Src: /src/nss/lib/pk11wrap/pk11cert.c:455,1
    - Dst: PORT_DestroyCheapArena
      Src: /src/nss/lib/pk11wrap/pk11cert.c:457,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - slot
    - keyHandle
    - certHandleCountOut
    argTypes:
    - PK11SlotInfo*
    - CK_OBJECT_HANDLE
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 459
    functionName: PK11_FindCertHandlesForKeyHandle
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 0
    functionsReached:
    - PORT_DestroyCheapArena
    - PORT_SetError
    - PORT_InitCheapArena
    - PK11_GetAttributes
    - PK11_MapError
    - pk11_FindObjectsByTemplate
    linkageType: ''
    returnType: CK_OBJECT_HANDLE
    signature: "CK_OBJECT_HANDLE *\nPK11_FindCertHandlesForKeyHandle(PK11SlotInfo
      *slot, CK_OBJECT_HANDLE keyHandle,\n                                 int *certHandleCountOut)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cert.c:465,1
    - Dst: CERT_NewCertList
      Src: /src/nss/lib/pk11wrap/pk11cert.c:468,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cert.c:470,1
    - Dst: PK11_MatchItem
      Src: /src/nss/lib/pk11wrap/pk11cert.c:475,1
    - Dst: PK11_FindCertHandlesForKeyHandle
      Src: /src/nss/lib/pk11wrap/pk11cert.c:482,1
    - Dst: CERT_DestroyCertList
      Src: /src/nss/lib/pk11wrap/pk11cert.c:489,1
    - Dst: PK11_MakeCertFromHandle
      Src: /src/nss/lib/pk11wrap/pk11cert.c:494,1
    - Dst: CERT_AddCertToListTail
      Src: /src/nss/lib/pk11wrap/pk11cert.c:500,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/pk11wrap/pk11cert.c:501,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11cert.c:504,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 1
    argNames:
    - privKey
    argTypes:
    - SECKEYPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 461
    functionDepth: 8
    functionLinenumber: 461
    functionLinenumberEnd: 506
    functionName: PK11_GetCertsMatchingPrivateKey
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 0
    functionsReached:
    - PK11_MatchItem
    - PK11_MakeCertFromHandle
    - PORT_Free
    - CERT_NewCertList
    - PORT_SetError
    - CERT_DestroyCertificate
    - CERT_AddCertToListTail
    - PK11_FindCertHandlesForKeyHandle
    - CERT_DestroyCertList
    linkageType: ''
    returnType: CERTCertList
    signature: 'CERTCertList *

      PK11_GetCertsMatchingPrivateKey(SECKEYPrivateKey *privKey)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PK11_FindKeyByAnyCert
      Src: /src/nss/lib/pk11wrap/pk11cert.c:515,1
    - Dst: pk11_FindPubKeyByAnyCert
      Src: /src/nss/lib/pk11wrap/pk11cert.c:519,1
    - Dst: SEC_DeletePermCertificate
      Src: /src/nss/lib/pk11wrap/pk11cert.c:522,1
    - Dst: PK11_DeleteTokenPrivateKey
      Src: /src/nss/lib/pk11wrap/pk11cert.c:523,1
    - Dst: PK11_DestroyTokenObject
      Src: /src/nss/lib/pk11wrap/pk11cert.c:526,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11cert.c:527,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - cert
    - wincx
    argTypes:
    - CERTCertificate*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 512
    functionDepth: 3
    functionLinenumber: 512
    functionLinenumberEnd: 530
    functionName: PK11_DeleteTokenCertAndKey
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 1
    functionsReached:
    - PK11_DeleteTokenPrivateKey
    - pk11_FindPubKeyByAnyCert
    - SEC_DeletePermCertificate
    - PK11_FreeSlot
    - PK11_DestroyTokenObject
    - PK11_FindKeyByAnyCert
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11_DeleteTokenCertAndKey(CERTCertificate *cert, void *wincx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - a
    argTypes:
    - CERTCertificate*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 557
    functionName: fake_der_cb
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus fake_der_cb(CERTCertificate *c, void *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STAN_GetDefaultTrustDomain
      Src: /src/nss/lib/pk11wrap/pk11cert.c:566,1
    - Dst: pk11_TraverseAllSlots
      Src: /src/nss/lib/pk11wrap/pk11cert.c:571,1
    - Dst: NSSTrustDomain_TraverseCertificates
      Src: /src/nss/lib/pk11wrap/pk11cert.c:577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - arg
    - wincx
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 562
    functionDepth: 3
    functionLinenumber: 562
    functionLinenumberEnd: 579
    functionName: PK11_TraverseSlotCerts
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 1
    functionsReached:
    - STAN_GetDefaultTrustDomain
    - pk11_TraverseAllSlots
    - NSSTrustDomain_TraverseCertificates
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_TraverseSlotCerts(SECStatus (*callback)(CERTCertificate
      *, SECItem *, void *),\n                       void *arg, void *wincx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nssList_Count
      Src: /src/nss/lib/pk11wrap/pk11cert.c:588,1
    - Dst: nss_ZNEWARRAY
      Src: /src/nss/lib/pk11wrap/pk11cert.c:592,1
    - Dst: nssList_GetArray
      Src: /src/nss/lib/pk11wrap/pk11cert.c:596,1
    - Dst: nssPKIObject_GetTokens
      Src: /src/nss/lib/pk11wrap/pk11cert.c:598,1
    - Dst: nssPKIObjectCollection_AddObject
      Src: /src/nss/lib/pk11wrap/pk11cert.c:602,1
    - Dst: nssTokenArray_Destroy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:606,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/pk11wrap/pk11cert.c:608,1
    - Dst: STAN_GetCERTCertificateOrRelease
      Src: /src/nss/lib/pk11wrap/pk11cert.c:608,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/pk11wrap/pk11cert.c:610,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - certList
    - token
    - collection
    argTypes:
    - nssList*
    - NSSToken*
    - nssPKIObjectCollection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 581
    functionDepth: 3
    functionLinenumber: 581
    functionLinenumberEnd: 611
    functionName: transfer_token_certs_to_collection
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 0
    functionsReached:
    - nssPKIObjectCollection_AddObject
    - nss_ZNEWARRAY
    - nssPKIObject_GetTokens
    - STAN_GetCERTCertificateOrRelease
    - nss_ZFreeIf
    - nssList_GetArray
    - CERT_DestroyCertificate
    - nssList_Count
    - nssTokenArray_Destroy
    linkageType: ''
    returnType: void
    signature: "void transfer_token_certs_to_collection(nssList *certList, NSSToken
      *token,\n                                   nssPKIObjectCollection *collection)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: nssList_Count
      Src: /src/nss/lib/pk11wrap/pk11cert.c:624,1
    - Dst: nss_ZNEWARRAY
      Src: /src/nss/lib/pk11wrap/pk11cert.c:628,1
    - Dst: PK11URI_GetPathAttributeItem
      Src: /src/nss/lib/pk11wrap/pk11cert.c:632,1
    - Dst: nssList_GetArray
      Src: /src/nss/lib/pk11wrap/pk11cert.c:633,1
    - Dst: memcmp
      Src: /src/nss/lib/pk11wrap/pk11cert.c:640,1
    - Dst: nssPKIObject_GetTokens
      Src: /src/nss/lib/pk11wrap/pk11cert.c:642,1
    - Dst: PK11URI_GetPathAttribute
      Src: /src/nss/lib/pk11wrap/pk11cert.c:648,1
    - Dst: pk11_MatchString
      Src: /src/nss/lib/pk11wrap/pk11cert.c:650,1
    - Dst: PK11URI_GetPathAttribute
      Src: /src/nss/lib/pk11wrap/pk11cert.c:656,1
    - Dst: pk11_MatchString
      Src: /src/nss/lib/pk11wrap/pk11cert.c:658,1
    - Dst: PK11URI_GetPathAttribute
      Src: /src/nss/lib/pk11wrap/pk11cert.c:664,1
    - Dst: pk11_MatchString
      Src: /src/nss/lib/pk11wrap/pk11cert.c:666,1
    - Dst: PK11URI_GetPathAttribute
      Src: /src/nss/lib/pk11wrap/pk11cert.c:672,1
    - Dst: pk11_MatchString
      Src: /src/nss/lib/pk11wrap/pk11cert.c:674,1
    - Dst: nssPKIObjectCollection_AddObject
      Src: /src/nss/lib/pk11wrap/pk11cert.c:680,1
    - Dst: nssTokenArray_Destroy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:684,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/pk11wrap/pk11cert.c:686,1
    - Dst: STAN_GetCERTCertificateOrRelease
      Src: /src/nss/lib/pk11wrap/pk11cert.c:686,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/pk11wrap/pk11cert.c:688,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 42
    argCount: 3
    argNames:
    - certList
    - uri
    - collection
    argTypes:
    - nssList*
    - PK11URI*
    - nssPKIObjectCollection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 613
    functionDepth: 3
    functionLinenumber: 613
    functionLinenumberEnd: 689
    functionName: transfer_uri_certs_to_collection
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 0
    functionsReached:
    - PK11URI_GetPathAttribute
    - nssPKIObjectCollection_AddObject
    - nss_ZNEWARRAY
    - PK11URI_GetPathAttributeItem
    - pk11_MatchString
    - nssPKIObject_GetTokens
    - STAN_GetCERTCertificateOrRelease
    - nss_ZFreeIf
    - nssList_GetArray
    - CERT_DestroyCertificate
    - nssList_Count
    - memcmp
    - nssTokenArray_Destroy
    linkageType: ''
    returnType: void
    signature: "void transfer_uri_certs_to_collection(nssList *certList, PK11URI *uri,\n
      \                                nssPKIObjectCollection *collection)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: STAN_GetDefaultTrustDomain
      Src: /src/nss/lib/pk11wrap/pk11cert.c:703,1
    - Dst: PK11URI_ParseURI
      Src: /src/nss/lib/pk11wrap/pk11cert.c:711,1
    - Dst: nssCertificateCollection_Create
      Src: /src/nss/lib/pk11wrap/pk11cert.c:716,1
    - Dst: nssList_Create
      Src: /src/nss/lib/pk11wrap/pk11cert.c:720,1
    - Dst: PK11URI_GetPathAttribute
      Src: /src/nss/lib/pk11wrap/pk11cert.c:726,1
    - Dst: strcmp
      Src: /src/nss/lib/pk11wrap/pk11cert.c:727,1
    - Dst: PK11URI_GetPathAttribute
      Src: /src/nss/lib/pk11wrap/pk11cert.c:731,1
    - Dst: nssTrustDomain_GetCertsForNicknameFromCache
      Src: /src/nss/lib/pk11wrap/pk11cert.c:733,1
    - Dst: nssTrustDomain_GetCertsFromCache
      Src: /src/nss/lib/pk11wrap/pk11cert.c:737,1
    - Dst: transfer_uri_certs_to_collection
      Src: /src/nss/lib/pk11wrap/pk11cert.c:740,1
    - Dst: strlen
      Src: /src/nss/lib/pk11wrap/pk11cert.c:756,1
    - Dst: PK11URI_GetPathAttributeItem
      Src: /src/nss/lib/pk11wrap/pk11cert.c:760,1
    - Dst: NSSTrustDomain_FindTokensByURI
      Src: /src/nss/lib/pk11wrap/pk11cert.c:768,1
    - Dst: nssToken_IsPresent
      Src: /src/nss/lib/pk11wrap/pk11cert.c:770,1
    - Dst: pk11_AuthenticateUnfriendly
      Src: /src/nss/lib/pk11wrap/pk11cert.c:773,1
    - Dst: nssToken_FindObjectsByTemplate
      Src: /src/nss/lib/pk11wrap/pk11cert.c:777,1
    - Dst: nssPKIObjectCollection_AddInstances
      Src: /src/nss/lib/pk11wrap/pk11cert.c:781,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/pk11wrap/pk11cert.c:782,1
    - Dst: nssToken_Destroy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:784,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/pk11wrap/pk11cert.c:786,1
    - Dst: nssList_Destroy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:787,1
    - Dst: nssPKIObjectCollection_GetCertificates
      Src: /src/nss/lib/pk11wrap/pk11cert.c:788,1
    - Dst: nssPKIObjectCollection_Destroy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:792,1
    - Dst: PK11URI_DestroyURI
      Src: /src/nss/lib/pk11wrap/pk11cert.c:795,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 75
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 691
    functionDepth: 6
    functionLinenumber: 691
    functionLinenumberEnd: 798
    functionName: find_certs_from_uri
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 0
    functionsReached:
    - STAN_GetDefaultTrustDomain
    - nssCertificateCollection_Create
    - nssToken_IsPresent
    - nssPKIObjectCollection_AddInstances
    - nss_ZFreeIf
    - nssList_Create
    - nssToken_FindObjectsByTemplate
    - pk11_AuthenticateUnfriendly
    - strlen
    - nssToken_Destroy
    - nssPKIObjectCollection_Destroy
    - PK11URI_GetPathAttributeItem
    - nssList_Destroy
    - PK11URI_DestroyURI
    - NSSTrustDomain_FindTokensByURI
    - PK11URI_ParseURI
    - nssPKIObjectCollection_GetCertificates
    - PK11URI_GetPathAttribute
    - strcmp
    - nssTrustDomain_GetCertsFromCache
    - nssTrustDomain_GetCertsForNicknameFromCache
    - transfer_uri_certs_to_collection
    linkageType: ''
    returnType: NSSCertificate
    signature: 'NSSCertificate **

      find_certs_from_uri(const char *uriString, void *wincx)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_certs_from_uri
      Src: /src/nss/lib/pk11wrap/pk11cert.c:808,1
    - Dst: nssCertificateArray_FindBestCertificate
      Src: /src/nss/lib/pk11wrap/pk11cert.c:810,1
    - Dst: STAN_GetCERTCertificateOrRelease
      Src: /src/nss/lib/pk11wrap/pk11cert.c:813,1
    - Dst: nssCertificateArray_Destroy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:815,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - uri
    - wincx
    argTypes:
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 800
    functionDepth: 7
    functionLinenumber: 800
    functionLinenumberEnd: 818
    functionName: PK11_FindCertFromURI
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 0
    functionsReached:
    - STAN_GetCERTCertificateOrRelease
    - find_certs_from_uri
    - nssCertificateArray_FindBestCertificate
    - nssCertificateArray_Destroy
    linkageType: ''
    returnType: CERTCertificate
    signature: 'CERTCertificate *

      PK11_FindCertFromURI(const char *uri, void *wincx)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: find_certs_from_uri
      Src: /src/nss/lib/pk11wrap/pk11cert.c:828,1
    - Dst: PR_Now
      Src: /src/nss/lib/pk11wrap/pk11cert.c:830,1
    - Dst: CERT_NewCertList
      Src: /src/nss/lib/pk11wrap/pk11cert.c:831,1
    - Dst: STAN_GetCERTCertificateOrRelease
      Src: /src/nss/lib/pk11wrap/pk11cert.c:834,1
    - Dst: CERT_AddCertToListSorted
      Src: /src/nss/lib/pk11wrap/pk11cert.c:838,1
    - Dst: nssCertificate_Destroy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:842,1
    - Dst: CERT_LIST_HEAD
      Src: /src/nss/lib/pk11wrap/pk11cert.c:845,1
    - Dst: CERT_DestroyCertList
      Src: /src/nss/lib/pk11wrap/pk11cert.c:846,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/pk11wrap/pk11cert.c:850,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - uri
    - wincx
    argTypes:
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 820
    functionDepth: 7
    functionLinenumber: 820
    functionLinenumberEnd: 853
    functionName: PK11_FindCertsFromURI
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 0
    functionsReached:
    - CERT_LIST_HEAD
    - nssCertificate_Destroy
    - CERT_NewCertList
    - PR_Now
    - STAN_GetCERTCertificateOrRelease
    - nss_ZFreeIf
    - find_certs_from_uri
    - CERT_AddCertToListSorted
    - CERT_DestroyCertList
    linkageType: ''
    returnType: CERTCertList
    signature: 'CERTCertList *

      PK11_FindCertsFromURI(const char *uri, void *wincx)'
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: STAN_GetDefaultTrustDomain
      Src: /src/nss/lib/pk11wrap/pk11cert.c:861,1
    - Dst: PORT_Strncasecmp
      Src: /src/nss/lib/pk11wrap/pk11cert.c:868,1
    - Dst: strlen
      Src: /src/nss/lib/pk11wrap/pk11cert.c:868,1
    - Dst: find_certs_from_uri
      Src: /src/nss/lib/pk11wrap/pk11cert.c:869,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/pk11wrap/pk11cert.c:873,1
    - Dst: PORT_Strchr
      Src: /src/nss/lib/pk11wrap/pk11cert.c:878,1
    - Dst: NSSTrustDomain_FindTokenByName
      Src: /src/nss/lib/pk11wrap/pk11cert.c:883,1
    - Dst: PK11_ReferenceSlot
      Src: /src/nss/lib/pk11wrap/pk11cert.c:885,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cert.c:887,1
    - Dst: PK11_GetInternalKeySlot
      Src: /src/nss/lib/pk11wrap/pk11cert.c:891,1
    - Dst: PK11Slot_GetNSSToken
      Src: /src/nss/lib/pk11wrap/pk11cert.c:892,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cert.c:894,1
    - Dst: PK11_IsPresent
      Src: /src/nss/lib/pk11wrap/pk11cert.c:902,1
    - Dst: pk11_AuthenticateUnfriendly
      Src: /src/nss/lib/pk11wrap/pk11cert.c:905,1
    - Dst: nssCertificateCollection_Create
      Src: /src/nss/lib/pk11wrap/pk11cert.c:909,1
    - Dst: nssList_Create
      Src: /src/nss/lib/pk11wrap/pk11cert.c:913,1
    - Dst: nssPKIObjectCollection_Destroy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:915,1
    - Dst: nssTrustDomain_GetCertsForNicknameFromCache
      Src: /src/nss/lib/pk11wrap/pk11cert.c:918,1
    - Dst: transfer_token_certs_to_collection
      Src: /src/nss/lib/pk11wrap/pk11cert.c:921,1
    - Dst: nssToken_FindCertificatesByNickname
      Src: /src/nss/lib/pk11wrap/pk11cert.c:922,1
    - Dst: nssPKIObjectCollection_AddInstances
      Src: /src/nss/lib/pk11wrap/pk11cert.c:928,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/pk11wrap/pk11cert.c:929,1
    - Dst: nssPKIObjectCollection_Count
      Src: /src/nss/lib/pk11wrap/pk11cert.c:931,1
    - Dst: PORT_Strchr
      Src: /src/nss/lib/pk11wrap/pk11cert.c:932,1
    - Dst: CERT_FixupEmailAddr
      Src: /src/nss/lib/pk11wrap/pk11cert.c:933,1
    - Dst: nssTrustDomain_GetCertsForEmailAddressFromCache
      Src: /src/nss/lib/pk11wrap/pk11cert.c:935,1
    - Dst: transfer_token_certs_to_collection
      Src: /src/nss/lib/pk11wrap/pk11cert.c:938,1
    - Dst: nssToken_FindCertificatesByEmail
      Src: /src/nss/lib/pk11wrap/pk11cert.c:939,1
    - Dst: nssPKIObjectCollection_AddInstances
      Src: /src/nss/lib/pk11wrap/pk11cert.c:945,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/pk11wrap/pk11cert.c:946,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11cert.c:947,1
    - Dst: nssPKIObjectCollection_GetCertificates
      Src: /src/nss/lib/pk11wrap/pk11cert.c:950,1
    - Dst: nssPKIObjectCollection_Destroy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:952,1
    - Dst: nssList_Destroy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:953,1
    - Dst: nssToken_Destroy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:957,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11cert.c:960,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11cert.c:963,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 79
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 965
      start: 855
    functionDepth: 7
    functionLinenumber: 855
    functionLinenumberEnd: 965
    functionName: find_certs_from_nickname
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 0
    functionsReached:
    - PK11_GetInternalKeySlot
    - NSSTrustDomain_FindTokenByName
    - STAN_GetDefaultTrustDomain
    - nssCertificateCollection_Create
    - nssPKIObjectCollection_AddInstances
    - nss_ZFreeIf
    - nssList_Create
    - CERT_FixupEmailAddr
    - pk11_AuthenticateUnfriendly
    - transfer_token_certs_to_collection
    - strlen
    - nssToken_Destroy
    - nssPKIObjectCollection_Destroy
    - PORT_SetError
    - nssToken_FindCertificatesByNickname
    - nssToken_FindCertificatesByEmail
    - PK11_ReferenceSlot
    - PK11Slot_GetNSSToken
    - nssList_Destroy
    - PORT_Strchr
    - nssTrustDomain_GetCertsForEmailAddressFromCache
    - nssPKIObjectCollection_Count
    - nssPKIObjectCollection_GetCertificates
    - PK11_FreeSlot
    - PORT_Strncasecmp
    - PORT_Free
    - PK11_IsPresent
    - nssTrustDomain_GetCertsForNicknameFromCache
    - find_certs_from_uri
    - PORT_Strdup
    linkageType: ''
    returnType: NSSCertificate
    signature: 'NSSCertificate **

      find_certs_from_nickname(const char *nickname, void *wincx)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_certs_from_nickname
      Src: /src/nss/lib/pk11wrap/pk11cert.c:975,1
    - Dst: nssCertificateArray_FindBestCertificate
      Src: /src/nss/lib/pk11wrap/pk11cert.c:977,1
    - Dst: STAN_GetCERTCertificateOrRelease
      Src: /src/nss/lib/pk11wrap/pk11cert.c:980,1
    - Dst: nssCertificateArray_Destroy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:982,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - nickname
    - wincx
    argTypes:
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 985
      start: 967
    functionDepth: 8
    functionLinenumber: 967
    functionLinenumberEnd: 985
    functionName: PK11_FindCertFromNickname
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 12
    functionsReached:
    - STAN_GetCERTCertificateOrRelease
    - nssCertificateArray_Destroy
    - nssCertificateArray_FindBestCertificate
    - find_certs_from_nickname
    linkageType: ''
    returnType: CERTCertificate
    signature: 'CERTCertificate *

      PK11_FindCertFromNickname(const char *nickname, void *wincx)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CERT_GetFirstEmailAddress
      Src: /src/nss/lib/pk11wrap/pk11cert.c:997,1
    - Dst: strcmp
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1012,1
    - Dst: PR_Now
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1014,1
    - Dst: CERT_AddCertToListSorted
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1016,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1017,1
    - Dst: CERT_GetNextEmailAddress
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1020,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - cert
    - item
    - arg
    argTypes:
    - CERTCertificate*
    - SECItem*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 993
    functionDepth: 1
    functionLinenumber: 993
    functionLinenumberEnd: 1024
    functionName: FindCertsEmailCallback
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 0
    functionsReached:
    - strcmp
    - CERT_GetNextEmailAddress
    - CERT_GetFirstEmailAddress
    - PR_Now
    - CERT_DupCertificate
    - CERT_AddCertToListSorted
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus FindCertsEmailCallback(CERTCertificate *cert, SECItem *item,
      void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CERT_NewCertList
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1033,1
    - Dst: CERT_FixupEmailAddr
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1038,1
    - Dst: CERT_DestroyCertList
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1040,1
    - Dst: PK11_TraverseSlotCerts
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1044,1
    - Dst: CERT_DestroyCertList
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1046,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1047,1
    - Dst: CERT_LIST_EMPTY
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1052,1
    - Dst: CERT_DestroyCertList
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1053,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1057,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - email
    - wincx
    argTypes:
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 1027
    functionDepth: 4
    functionLinenumber: 1027
    functionLinenumberEnd: 1059
    functionName: PK11_FindCertsFromEmailAddress
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 1
    functionsReached:
    - PORT_Free
    - CERT_NewCertList
    - CERT_FixupEmailAddr
    - CERT_LIST_EMPTY
    - PK11_TraverseSlotCerts
    - CERT_DestroyCertList
    linkageType: ''
    returnType: CERTCertList
    signature: 'CERTCertList *

      PK11_FindCertsFromEmailAddress(const char *email, void *wincx)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: find_certs_from_nickname
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1069,1
    - Dst: PR_Now
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1071,1
    - Dst: CERT_NewCertList
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1072,1
    - Dst: STAN_GetCERTCertificateOrRelease
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1075,1
    - Dst: CERT_AddCertToListSorted
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1079,1
    - Dst: nssCertificate_Destroy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1083,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1087,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - nickname
    - wincx
    argTypes:
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1090
      start: 1061
    functionDepth: 8
    functionLinenumber: 1061
    functionLinenumberEnd: 1090
    functionName: PK11_FindCertsFromNickname
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 1
    functionsReached:
    - nssCertificate_Destroy
    - CERT_NewCertList
    - PR_Now
    - find_certs_from_nickname
    - STAN_GetCERTCertificateOrRelease
    - nss_ZFreeIf
    - CERT_AddCertToListSorted
    linkageType: ''
    returnType: CERTCertList
    signature: 'CERTCertList *

      PK11_FindCertsFromNickname(const char *nickname, void *wincx)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CERT_ExtractPublicKey
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1103,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1109,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1112,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1115,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1120,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1126,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - cert
    argTypes:
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1129
      start: 1097
    functionDepth: 4
    functionLinenumber: 1097
    functionLinenumberEnd: 1129
    functionName: PK11_GetPubIndexKeyID
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 0
    functionsReached:
    - SECITEM_DupItem
    - CERT_ExtractPublicKey
    - SECKEY_DestroyPublicKey
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      PK11_GetPubIndexKeyID(CERTCertificate *cert)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetPubIndexKeyID
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1137,1
    - Dst: PK11_MakeIDFromPubKey
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1143,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cert
    argTypes:
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1134
    functionDepth: 5
    functionLinenumber: 1134
    functionLinenumberEnd: 1146
    functionName: pk11_mkcertKeyID
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 0
    functionsReached:
    - PK11_GetPubIndexKeyID
    - SECITEM_FreeItem
    - PK11_MakeIDFromPubKey
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      pk11_mkcertKeyID(CERTCertificate *cert)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: pk11_mkcertKeyID
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1163,1
    - Dst: PK11Slot_GetNSSToken
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1167,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1169,1
    - Dst: PK11_IsInternal
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1173,1
    - Dst: CERT_LockCertTempPerm
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1178,1
    - Dst: CERT_UnlockCertTempPerm
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1180,1
    - Dst: STAN_GetNSSCertificate
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1184,1
    - Dst: nssItem_Create
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1191,1
    - Dst: nss_ZNEW
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1198,1
    - Dst: nssToken_AddRef
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1202,1
    - Dst: nssCryptokiPrivateKey_SetCertificate
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1207,1
    - Dst: nssCryptokiObject_Destroy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1209,1
    - Dst: nssToken_ImportCertificate
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1216,1
    - Dst: NSS_GetError
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1227,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1228,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1229,1
    - Dst: nssCertificateStore_Lock
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1238,1
    - Dst: nssCertificateStore_RemoveCertLOCKED
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1239,1
    - Dst: nssCertificateStore_Unlock
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1240,1
    - Dst: CERT_LockCertTempPerm
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1242,1
    - Dst: CERT_UnlockCertTempPerm
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1245,1
    - Dst: nssPKIObject_AddInstance
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1251,1
    - Dst: nssCertificate_AddRef
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1255,1
    - Dst: nssTrustDomain_AddCertsToCache
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1256,1
    - Dst: STAN_GetDefaultTrustDomain
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1256,1
    - Dst: STAN_ForceCERTCertificateUpdate
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1257,1
    - Dst: nssCertificate_Destroy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1258,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1259,1
    - Dst: nssToken_Destroy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1260,1
    - Dst: nssToken_Destroy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1264,1
    - Dst: CERT_MapStanError
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1266,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1267,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1268,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1269,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 85
    argCount: 5
    argNames:
    - slot
    - cert
    - key
    - nickname
    - includeTrust
    argTypes:
    - PK11SlotInfo*
    - CERTCertificate*
    - CK_OBJECT_HANDLE
    - char*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1272
      start: 1151
    functionDepth: 6
    functionLinenumber: 1151
    functionLinenumberEnd: 1272
    functionName: PK11_ImportCert
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 2
    functionsReached:
    - CERT_UnlockCertTempPerm
    - STAN_GetDefaultTrustDomain
    - nssItem_Create
    - CERT_MapStanError
    - STAN_ForceCERTCertificateUpdate
    - CERT_LockCertTempPerm
    - nssToken_AddRef
    - nssToken_Destroy
    - pk11_mkcertKeyID
    - PORT_SetError
    - nssCertificateStore_Lock
    - PK11Slot_GetNSSToken
    - SECITEM_FreeItem
    - STAN_GetNSSCertificate
    - nssCertificate_Destroy
    - nssCertificate_AddRef
    - nssCryptokiPrivateKey_SetCertificate
    - nssPKIObject_AddInstance
    - nssCertificateStore_RemoveCertLOCKED
    - PK11_IsInternal
    - nssToken_ImportCertificate
    - NSS_GetError
    - PORT_GetError
    - nss_ZNEW
    - nssCryptokiObject_Destroy
    - nssCertificateStore_Unlock
    - nssTrustDomain_AddCertsToCache
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_ImportCert(PK11SlotInfo *slot, CERTCertificate *cert,\n
      \               CK_OBJECT_HANDLE key, const char *nickname,\n                PRBool
      includeTrust)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CERT_NewTempCertificate
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1281,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1281,1
    - Dst: PK11_ImportCert
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1286,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - slot
    - derCert
    - key
    - nickname
    - includeTrust
    argTypes:
    - PK11SlotInfo*
    - SECItem*
    - CK_OBJECT_HANDLE
    - char*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1289
      start: 1274
    functionDepth: 7
    functionLinenumber: 1274
    functionLinenumberEnd: 1289
    functionName: PK11_ImportDERCert
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 0
    functionsReached:
    - CERT_GetDefaultCertDB
    - CERT_NewTempCertificate
    - PK11_ImportCert
    - CERT_DestroyCertificate
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_ImportDERCert(PK11SlotInfo *slot, SECItem *derCert,\n
      \                  CK_OBJECT_HANDLE key, char *nickname, PRBool includeTrust)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PK11_FindCertInSlot
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1304,1
    - Dst: pk11_LoginStillRequired
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1315,1
    - Dst: PK11_MatchItem
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1316,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1318,1
    - Dst: PK11_Authenticate
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1321,1
    - Dst: PK11_MatchItem
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1325,1
    - Dst: PK11_MakePrivKey
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1330,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - slot
    - cert
    - wincx
    argTypes:
    - PK11SlotInfo*
    - CERTCertificate*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1331
      start: 1294
    functionDepth: 3
    functionLinenumber: 1294
    functionLinenumberEnd: 1331
    functionName: PK11_FindPrivateKeyFromCert
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 0
    functionsReached:
    - PK11_MatchItem
    - PK11_FindCertInSlot
    - PORT_GetError
    - pk11_LoginStillRequired
    - PK11_MakePrivKey
    - PK11_Authenticate
    linkageType: ''
    returnType: SECKEYPrivateKey
    signature: "SECKEYPrivateKey *\nPK11_FindPrivateKeyFromCert(PK11SlotInfo *slot,
      CERTCertificate *cert,\n                            void *wincx)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pk11_mkcertKeyID
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1349,1
    - Dst: PK11_GetAllTokens
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1351,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1354,1
    - Dst: PK11_FreeSlotList
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1356,1
    - Dst: pk11_LoginStillRequired
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1369,1
    - Dst: pk11_FindPrivateKeyFromCertID
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1370,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1372,1
    - Dst: PK11_Authenticate
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1375,1
    - Dst: pk11_FindPrivateKeyFromCertID
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1378,1
    - Dst: PK11_ReferenceSlot
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1381,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1388,1
    - Dst: PK11_FreeSlotList
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1389,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 28
    argCount: 3
    argNames:
    - cert
    - keyPtr
    - wincx
    argTypes:
    - CERTCertificate*
    - CK_OBJECT_HANDLE*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1391
      start: 1337
    functionDepth: 6
    functionLinenumber: 1337
    functionLinenumberEnd: 1391
    functionName: PK11_KeyForCertExists
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 0
    functionsReached:
    - PK11_FreeSlotList
    - PK11_GetAllTokens
    - pk11_mkcertKeyID
    - pk11_FindPrivateKeyFromCertID
    - PORT_GetError
    - pk11_LoginStillRequired
    - PK11_ReferenceSlot
    - SECITEM_FreeItem
    - PK11_Authenticate
    linkageType: ''
    returnType: PK11SlotInfo
    signature: "PK11SlotInfo *\nPK11_KeyForCertExists(CERTCertificate *cert, CK_OBJECT_HANDLE
      *keyPtr,\n                      void *wincx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CERT_DecodeDERCertificate
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1406,1
    - Dst: PK11_KeyForCertExists
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1410,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1411,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - derCert
    - keyPtr
    - wincx
    argTypes:
    - SECItem*
    - CK_OBJECT_HANDLE*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1413
      start: 1396
    functionDepth: 7
    functionLinenumber: 1396
    functionLinenumberEnd: 1413
    functionName: PK11_KeyForDERCertExists
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 0
    functionsReached:
    - CERT_DecodeDERCertificate
    - PK11_KeyForCertExists
    - CERT_DestroyCertificate
    linkageType: ''
    returnType: PK11SlotInfo
    signature: "PK11SlotInfo *\nPK11_KeyForDERCertExists(SECItem *derCert, CK_OBJECT_HANDLE
      *keyPtr,\n                         void *wincx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PK11_KeyForCertExists
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1422,1
    - Dst: PK11_ImportCert
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1425,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1426,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1430,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - cert
    - nickname
    - wincx
    argTypes:
    - CERTCertificate*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1434
      start: 1415
    functionDepth: 7
    functionLinenumber: 1415
    functionLinenumberEnd: 1434
    functionName: PK11_ImportCertForKey
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 0
    functionsReached:
    - PK11_FreeSlot
    - PORT_SetError
    - PK11_KeyForCertExists
    - PK11_ImportCert
    linkageType: ''
    returnType: PK11SlotInfo
    signature: "PK11SlotInfo *\nPK11_ImportCertForKey(CERTCertificate *cert, const
      char *nickname,\n                      void *wincx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CERT_NewTempCertificate
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1442,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1442,1
    - Dst: PK11_ImportCertForKey
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1447,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1448,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - derCert
    - nickname
    - wincx
    argTypes:
    - SECItem*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1450
      start: 1436
    functionDepth: 8
    functionLinenumber: 1436
    functionLinenumberEnd: 1450
    functionName: PK11_ImportDERCertForKey
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 1
    functionsReached:
    - PK11_ImportCertForKey
    - CERT_GetDefaultCertDB
    - CERT_NewTempCertificate
    - CERT_DestroyCertificate
    linkageType: ''
    returnType: PK11SlotInfo
    signature: 'PK11SlotInfo *

      PK11_ImportDERCertForKey(SECItem *derCert, char *nickname, void *wincx)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetAllTokens
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1465,1
    - Dst: pk11_AuthenticateUnfriendly
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1472,1
    - Dst: pk11_FindObjectByTemplate
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1476,1
    - Dst: PK11_ReferenceSlot
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1478,1
    - Dst: PK11_FreeSlotList
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1483,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - slotPtr
    - searchTemplate
    - count
    - wincx
    argTypes:
    - PK11SlotInfo**
    - CK_ATTRIBUTE*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1490
      start: 1452
    functionDepth: 6
    functionLinenumber: 1452
    functionLinenumberEnd: 1490
    functionName: pk11_FindCertObjectByTemplate
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 0
    functionsReached:
    - PK11_FreeSlotList
    - PK11_GetAllTokens
    - PK11_ReferenceSlot
    - pk11_FindObjectByTemplate
    - pk11_AuthenticateUnfriendly
    linkageType: ''
    returnType: CK_OBJECT_HANDLE
    signature: "CK_OBJECT_HANDLE pk11_FindCertObjectByTemplate(PK11SlotInfo **slotPtr,\n
      \                             CK_ATTRIBUTE *searchTemplate, size_t count, void
      *wincx)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: STAN_GetDefaultTrustDomain
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1499,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1511,1
    - Dst: PK11Slot_GetNSSToken
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1515,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1517,1
    - Dst: nssToken_GetDefaultSession
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1521,1
    - Dst: nssToken_Destroy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1523,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1531,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1533,1
    - Dst: nssToken_Destroy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1535,1
    - Dst: NSSITEM_FROM_SECITEM
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1539,1
    - Dst: NSSITEM_FROM_SECITEM
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1540,1
    - Dst: nssToken_FindCertificateByIssuerAndSerialNumber
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1542,1
    - Dst: nssToken_Destroy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1545,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1546,1
    - Dst: nssPKIObject_Create
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1551,1
    - Dst: nssCertificate_Create
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1556,1
    - Dst: nssTrustDomain_AddCertsToCache
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1561,1
    - Dst: STAN_GetCERTCertificate
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1563,1
    - Dst: nssCryptokiObject_Destroy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1571,1
    - Dst: nssPKIObject_Destroy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1574,1
    - Dst: nssCertificate_Destroy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1577,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 60
    argCount: 3
    argNames:
    - slot
    - issuerSN
    - wincx
    argTypes:
    - PK11SlotInfo*
    - CERTIssuerAndSN*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1580
      start: 1492
    functionDepth: 6
    functionLinenumber: 1492
    functionLinenumberEnd: 1580
    functionName: PK11_FindCertByIssuerAndSNOnToken
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 0
    functionsReached:
    - nssToken_FindCertificateByIssuerAndSerialNumber
    - SEC_ASN1EncodeItem
    - nssToken_GetDefaultSession
    - nssTrustDomain_AddCertsToCache
    - nssToken_Destroy
    - STAN_GetDefaultTrustDomain
    - NSSITEM_FROM_SECITEM
    - nssCertificate_Create
    - nssCertificate_Destroy
    - STAN_GetCERTCertificate
    - PORT_SetError
    - nssCryptokiObject_Destroy
    - nssPKIObject_Create
    - nssPKIObject_Destroy
    - PK11Slot_GetNSSToken
    - SEC_ASN1_GET
    - SECITEM_FreeItem
    linkageType: ''
    returnType: CERTCertificate
    signature: "CERTCertificate *\nPK11_FindCertByIssuerAndSNOnToken(PK11SlotInfo
      *slot,\n                                  CERTIssuerAndSN *issuerSN, void *wincx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PK11_ListCerts
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1595,1
    - Dst: CERT_LIST_HEAD
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1600,1
    - Dst: CERT_LIST_END
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1601,1
    - Dst: CERT_LIST_NEXT
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1602,1
    - Dst: CERT_FindSubjectKeyIDExtension
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1603,1
    - Dst: cert_AddSubjectKeyIDMapping
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1606,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1607,1
    - Dst: CERT_DestroyCertList
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1610,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1616,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1619,1
    - Dst: SECMOD_GetDefaultModuleListLock
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1622,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1624,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1625,1
    - Dst: SECMOD_GetReadLock
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1628,1
    - Dst: SECMOD_GetDefaultModuleList
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1629,1
    - Dst: memcpy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1632,1
    - Dst: memcpy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1634,1
    - Dst: cert_UpdateSubjectKeyIDSlotCheck
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1636,1
    - Dst: SECMOD_ReleaseReadLock
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1640,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1641,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 1
    argNames:
    - wincx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1644
      start: 1584
    functionDepth: 1
    functionLinenumber: 1584
    functionLinenumberEnd: 1644
    functionName: PR_CALLBACK::pk11_keyIDHash_populate
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 0
    functionsReached:
    - CERT_LIST_NEXT
    - cert_UpdateSubjectKeyIDSlotCheck
    - CERT_LIST_HEAD
    - memcpy
    - SECMOD_ReleaseReadLock
    - cert_AddSubjectKeyIDMapping
    - CERT_FindSubjectKeyIDExtension
    - SECMOD_GetReadLock
    - CERT_DestroyCertList
    - SECITEM_AllocItem
    - SECMOD_GetDefaultModuleListLock
    - CERT_LIST_END
    - PK11_ListCerts
    - PORT_SetError
    - SECMOD_GetDefaultModuleList
    - SECITEM_FreeItem
    linkageType: ''
    returnType: PRStatus
    signature: 'PRStatus PR_CALLBACK

      pk11_keyIDHash_populate(void *wincx)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: cert_FindDERCertBySubjectKeyID
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1665,1
    - Dst: PK11_GetAllTokens
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1677,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1681,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1684,1
    - Dst: PK11_FreeSlotList
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1685,1
    - Dst: memcpy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1689,1
    - Dst: memcpy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1691,1
    - Dst: cert_SubjectKeyIDSlotCheckSeries
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1698,1
    - Dst: PK11_GetSlotSeries
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1698,1
    - Dst: PK11_ListCertsInSlot
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1701,1
    - Dst: CERT_LIST_HEAD
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1705,1
    - Dst: CERT_LIST_END
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1706,1
    - Dst: CERT_LIST_NEXT
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1707,1
    - Dst: CERT_IsUserCert
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1708,1
    - Dst: CERT_FindSubjectKeyIDExtension
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1709,1
    - Dst: cert_AddSubjectKeyIDMapping
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1712,1
    - Dst: cert_UpdateSubjectKeyIDSlotCheck
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1714,1
    - Dst: PK11_GetSlotSeries
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1715,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1717,1
    - Dst: CERT_DestroyCertList
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1720,1
    - Dst: PK11_FreeSlotList
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1723,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1724,1
    - Dst: cert_FindDERCertBySubjectKeyID
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1729,1
    - Dst: PK11_FindCertFromDERCertItem
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1732,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1733,1
    - Dst: PK11_FindCertByIssuerAndSNOnToken
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1736,1
    - Dst: CERT_GetCertTrust
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1741,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1743,1
    - Dst: PK11_ReferenceSlot
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1746,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 54
    argCount: 4
    argNames:
    - slot
    - recipientlist
    - rlIndex
    - pwarg
    argTypes:
    - PK11SlotInfo*
    - NSSCMSRecipient**
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1753
      start: 1653
    functionDepth: 7
    functionLinenumber: 1653
    functionLinenumberEnd: 1753
    functionName: pk11_FindCertObjectByRecipientNew
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 0
    functionsReached:
    - cert_AddSubjectKeyIDMapping
    - PK11_FindCertByIssuerAndSNOnToken
    - cert_UpdateSubjectKeyIDSlotCheck
    - memcpy
    - PK11_ListCertsInSlot
    - CERT_FindSubjectKeyIDExtension
    - PORT_SetError
    - CERT_LIST_END
    - PK11_ReferenceSlot
    - CERT_GetCertTrust
    - CERT_IsUserCert
    - SECITEM_FreeItem
    - PK11_FreeSlotList
    - PK11_GetAllTokens
    - CERT_LIST_NEXT
    - CERT_LIST_HEAD
    - SECITEM_AllocItem
    - cert_SubjectKeyIDSlotCheckSeries
    - PK11_GetSlotSeries
    - CERT_DestroyCertificate
    - CERT_DestroyCertList
    - PK11_FindCertFromDERCertItem
    - cert_FindDERCertBySubjectKeyID
    linkageType: ''
    returnType: CERTCertificate
    signature: "CERTCertificate *\npk11_FindCertObjectByRecipientNew(PK11SlotInfo
      *slot, NSSCMSRecipient **recipientlist,\n                                  int
      *rlIndex, void *pwarg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetAllTokens
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1770,1
    - Dst: pk11_AuthenticateUnfriendly
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1777,1
    - Dst: pk11_FindCertObjectByRecipientNew
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1781,1
    - Dst: PK11_FreeSlotList
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1787,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - recipientlist
    - wincx
    - rlIndex
    argTypes:
    - NSSCMSRecipient**
    - void*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1790
      start: 1761
    functionDepth: 8
    functionLinenumber: 1761
    functionLinenumberEnd: 1790
    functionName: pk11_AllFindCertObjectByRecipientNew
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 0
    functionsReached:
    - PK11_FreeSlotList
    - PK11_GetAllTokens
    - pk11_AuthenticateUnfriendly
    - pk11_FindCertObjectByRecipientNew
    linkageType: ''
    returnType: CERTCertificate
    signature: 'CERTCertificate *

      pk11_AllFindCertObjectByRecipientNew(NSSCMSRecipient **recipientlist, void *wincx,
      int *rlIndex)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PK11_FindCertByIssuerAndSNOnToken
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1808,1
    - Dst: CERT_GetCertTrust
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1812,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1814,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - slot
    - recipientArray
    - rip
    - pwarg
    argTypes:
    - PK11SlotInfo*
    - SEC_PKCS7RecipientInfo**
    - SEC_PKCS7RecipientInfo**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1823
      start: 1796
    functionDepth: 7
    functionLinenumber: 1796
    functionLinenumberEnd: 1823
    functionName: pk11_FindCertObjectByRecipient
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 0
    functionsReached:
    - PK11_FindCertByIssuerAndSNOnToken
    - CERT_GetCertTrust
    - CERT_DestroyCertificate
    linkageType: ''
    returnType: CERTCertificate
    signature: "CERTCertificate *\npk11_FindCertObjectByRecipient(PK11SlotInfo *slot,\n
      \                              SEC_PKCS7RecipientInfo **recipientArray,\n                               SEC_PKCS7RecipientInfo
      **rip, void *pwarg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetAllTokens
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1843,1
    - Dst: pk11_AuthenticateUnfriendly
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1852,1
    - Dst: pk11_FindCertObjectByRecipient
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1856,1
    - Dst: PK11_ReferenceSlot
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1859,1
    - Dst: PK11_FreeSlotList
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1864,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1870,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 4
    argNames:
    - slotPtr
    - recipientArray
    - rip
    - wincx
    argTypes:
    - PK11SlotInfo**
    - SEC_PKCS7RecipientInfo**
    - SEC_PKCS7RecipientInfo**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1872
      start: 1828
    functionDepth: 8
    functionLinenumber: 1828
    functionLinenumberEnd: 1872
    functionName: pk11_AllFindCertObjectByRecipient
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 0
    functionsReached:
    - PK11_FreeSlotList
    - PK11_GetAllTokens
    - PORT_Assert
    - PK11_ReferenceSlot
    - pk11_FindCertObjectByRecipient
    - pk11_AuthenticateUnfriendly
    linkageType: ''
    returnType: CERTCertificate
    signature: "CERTCertificate *\npk11_AllFindCertObjectByRecipient(PK11SlotInfo
      **slotPtr,\n                                  SEC_PKCS7RecipientInfo **recipientArray,\n
      \                                 SEC_PKCS7RecipientInfo **rip,\n                                  void
      *wincx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pk11_AllFindCertObjectByRecipient
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1891,1
    - Dst: PK11_FindKeyByAnyCert
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1896,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1904,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1906,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 5
    argNames:
    - slotPtr
    - array
    - rip
    - privKey
    - wincx
    argTypes:
    - PK11SlotInfo**
    - SEC_PKCS7RecipientInfo**
    - SEC_PKCS7RecipientInfo**
    - SECKEYPrivateKey**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1909
      start: 1881
    functionDepth: 9
    functionLinenumber: 1881
    functionLinenumberEnd: 1909
    functionName: PK11_FindCertAndKeyByRecipientList
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 0
    functionsReached:
    - pk11_AllFindCertObjectByRecipient
    - PK11_FreeSlot
    - CERT_DestroyCertificate
    - PK11_FindKeyByAnyCert
    linkageType: ''
    returnType: CERTCertificate
    signature: "CERTCertificate *\nPK11_FindCertAndKeyByRecipientList(PK11SlotInfo
      **slotPtr,\n                                   SEC_PKCS7RecipientInfo **array,\n
      \                                  SEC_PKCS7RecipientInfo **rip,\n                                   SECKEYPrivateKey
      **privKey, void *wincx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PR_CallOnceWithArg
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1924,1
    - Dst: pk11_AllFindCertObjectByRecipientNew
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1928,1
    - Dst: PK11_FindKeyByAnyCert
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1937,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1948,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1950,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - recipientlist
    - wincx
    argTypes:
    - NSSCMSRecipient**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1953
      start: 1916
    functionDepth: 9
    functionLinenumber: 1916
    functionLinenumberEnd: 1953
    functionName: PK11_FindCertAndKeyByRecipientListNew
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 0
    functionsReached:
    - pk11_AllFindCertObjectByRecipientNew
    - CERT_DestroyCertificate
    - PR_CallOnceWithArg
    - PK11_FreeSlot
    - PK11_FindKeyByAnyCert
    linkageType: ''
    returnType: int
    signature: int PK11_FindCertAndKeyByRecipientListNew(NSSCMSRecipient **recipientlist,
      void *wincx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1969,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1980,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1982,1
    - Dst: NSSITEM_FROM_SECITEM
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1987,1
    - Dst: NSSITEM_FROM_SECITEM
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1988,1
    - Dst: STAN_GetDefaultCryptoContext
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1990,1
    - Dst: NSSCryptoContext_FindCertificateByIssuerAndSerialNumber
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1991,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1995,1
    - Dst: STAN_GetCERTCertificateOrRelease
      Src: /src/nss/lib/pk11wrap/pk11cert.c:1996,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2002,1
    - Dst: NSSTrustDomain_FindCertificateByIssuerAndSerialNumber
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2006,1
    - Dst: STAN_GetDefaultTrustDomain
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2007,1
    - Dst: STAN_GetCERTCertificateOrRelease
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2014,1
    - Dst: PK11_IsPresent
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2020,1
    - Dst: PK11_ReferenceSlot
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2023,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2025,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 37
    argCount: 3
    argNames:
    - slotPtr
    - issuerSN
    - wincx
    argTypes:
    - PK11SlotInfo**
    - CERTIssuerAndSN*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2027
      start: 1955
    functionDepth: 6
    functionLinenumber: 1955
    functionLinenumberEnd: 2027
    functionName: PK11_FindCertByIssuerAndSN
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 0
    functionsReached:
    - SEC_ASN1EncodeItem
    - NSSTrustDomain_FindCertificateByIssuerAndSerialNumber
    - NSSITEM_FROM_SECITEM
    - STAN_GetDefaultTrustDomain
    - PK11_IsPresent
    - STAN_GetDefaultCryptoContext
    - NSSCryptoContext_FindCertificateByIssuerAndSerialNumber
    - PORT_SetError
    - STAN_GetCERTCertificateOrRelease
    - CERT_DestroyCertificate
    - PK11_ReferenceSlot
    - SEC_ASN1_GET
    - SECITEM_FreeItem
    linkageType: ''
    returnType: CERTCertificate
    signature: "CERTCertificate *\nPK11_FindCertByIssuerAndSN(PK11SlotInfo **slotPtr,
      CERTIssuerAndSN *issuerSN,\n                           void *wincx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2042,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2044,1
    - Dst: PK11_FindCertInSlot
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2047,1
    - Dst: PK11_ReferenceSlot
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2049,1
    - Dst: pk11_FindCertObjectByTemplate
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2054,1
    - Dst: PK11_ReferenceSlot
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2058,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - cert
    - wincx
    - pSlot
    argTypes:
    - CERTCertificate*
    - void*
    - PK11SlotInfo**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2066
      start: 2029
    functionDepth: 7
    functionLinenumber: 2029
    functionLinenumberEnd: 2066
    functionName: PK11_FindObjectForCert
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 0
    functionsReached:
    - pk11_FindCertObjectByTemplate
    - PK11_FindCertInSlot
    - PK11_SETATTRS
    - PK11_ReferenceSlot
    linkageType: ''
    returnType: CK_OBJECT_HANDLE
    signature: CK_OBJECT_HANDLE PK11_FindObjectForCert(CERTCertificate *cert, void
      *wincx, PK11SlotInfo **pSlot)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PK11_FindObjectForCert
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2079,1
    - Dst: pk11_LoginStillRequired
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2090,1
    - Dst: PK11_MatchItem
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2091,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2093,1
    - Dst: PK11_Authenticate
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2096,1
    - Dst: PK11_MatchItem
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2098,1
    - Dst: PK11_MakePrivKey
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2102,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2105,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - cert
    - wincx
    argTypes:
    - CERTCertificate*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2108
      start: 2068
    functionDepth: 8
    functionLinenumber: 2068
    functionLinenumberEnd: 2108
    functionName: PK11_FindKeyByAnyCert
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 19
    functionsReached:
    - PK11_MatchItem
    - PORT_GetError
    - pk11_LoginStillRequired
    - PK11_MakePrivKey
    - PK11_FreeSlot
    - PK11_FindObjectForCert
    - PK11_Authenticate
    linkageType: ''
    returnType: SECKEYPrivateKey
    signature: 'SECKEYPrivateKey *

      PK11_FindKeyByAnyCert(CERTCertificate *cert, void *wincx)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PK11_FindObjectForCert
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2116,1
    - Dst: PK11_MatchItem
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2120,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - cert
    - slot
    - wincx
    argTypes:
    - CERTCertificate*
    - PK11SlotInfo**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2126
      start: 2110
    functionDepth: 8
    functionLinenumber: 2110
    functionLinenumberEnd: 2126
    functionName: pk11_FindPubKeyByAnyCert
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 1
    functionsReached:
    - PK11_MatchItem
    - PK11_FreeSlot
    - PK11_FindObjectForCert
    linkageType: ''
    returnType: CK_OBJECT_HANDLE
    signature: CK_OBJECT_HANDLE pk11_FindPubKeyByAnyCert(CERTCertificate *cert, PK11SlotInfo
      **slot, void *wincx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2142,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2144,1
    - Dst: PK11_GetAllTokens
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2147,1
    - Dst: PK11_NumberObjectsFor
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2159,1
    - Dst: PK11_FreeSlotList
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2161,1
    - Dst: PK11_NumberObjectsFor
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2165,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - cert
    argTypes:
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2166
      start: 2131
    functionDepth: 6
    functionLinenumber: 2131
    functionLinenumberEnd: 2166
    functionName: PK11_NumberCertsForCertSubject
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 0
    functionsReached:
    - PK11_NumberObjectsFor
    - PK11_GetAllTokens
    - PK11_SETATTRS
    - PK11_FreeSlotList
    linkageType: ''
    returnType: int
    signature: int PK11_NumberCertsForCertSubject(CERTCertificate *cert)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetAllTokens
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2179,1
    - Dst: PK11_TraverseCertsForSubjectInSlot
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2189,1
    - Dst: PK11_FreeSlotList
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2191,1
    - Dst: PK11_TraverseCertsForSubjectInSlot
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2195,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - cert
    - arg
    argTypes:
    - CERTCertificate*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2196
      start: 2171
    functionDepth: 6
    functionLinenumber: 2171
    functionLinenumberEnd: 2196
    functionName: PK11_TraverseCertsForSubject
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 0
    functionsReached:
    - PK11_FreeSlotList
    - PK11_GetAllTokens
    - PK11_TraverseCertsForSubjectInSlot
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_TraverseCertsForSubject(CERTCertificate *cert,\n                             SECStatus
      (*callback)(CERTCertificate *, void *), void *arg)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: STAN_GetDefaultTrustDomain
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2211,1
    - Dst: NSSITEM_FROM_SECITEM
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2212,1
    - Dst: PK11Slot_GetNSSToken
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2213,1
    - Dst: nssToken_IsPresent
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2217,1
    - Dst: nssToken_Destroy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2218,1
    - Dst: nssCertificateCollection_Create
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2221,1
    - Dst: nssToken_Destroy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2223,1
    - Dst: nssList_Create
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2226,1
    - Dst: nssPKIObjectCollection_Destroy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2228,1
    - Dst: nssToken_Destroy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2229,1
    - Dst: nssTrustDomain_GetCertsForSubjectFromCache
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2232,1
    - Dst: transfer_token_certs_to_collection
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2234,1
    - Dst: nssToken_FindCertificatesBySubject
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2235,1
    - Dst: nssPKIObjectCollection_AddInstances
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2238,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2239,1
    - Dst: nssList_Destroy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2240,1
    - Dst: nssPKIObjectCollection_GetCertificates
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2241,1
    - Dst: nssPKIObjectCollection_Destroy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2243,1
    - Dst: nssToken_Destroy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2244,1
    - Dst: STAN_GetCERTCertificate
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2249,1
    - Dst: nssCertificateArray_Destroy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2258,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 3
    argNames:
    - cert
    - slot
    - arg
    argTypes:
    - CERTCertificate*
    - PK11SlotInfo*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2261
      start: 2198
    functionDepth: 7
    functionLinenumber: 2198
    functionLinenumberEnd: 2261
    functionName: PK11_TraverseCertsForSubjectInSlot
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 1
    functionsReached:
    - transfer_token_certs_to_collection
    - nssCertificateArray_Destroy
    - nssToken_Destroy
    - STAN_GetDefaultTrustDomain
    - NSSITEM_FROM_SECITEM
    - nssToken_IsPresent
    - nssCertificateCollection_Create
    - nssPKIObjectCollection_Destroy
    - nssPKIObjectCollection_AddInstances
    - nssPKIObjectCollection_GetCertificates
    - nss_ZFreeIf
    - nssList_Create
    - STAN_GetCERTCertificate
    - PK11Slot_GetNSSToken
    - nssList_Destroy
    - nssToken_FindCertificatesBySubject
    - nssTrustDomain_GetCertsForSubjectFromCache
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_TraverseCertsForSubjectInSlot(CERTCertificate *cert,
      PK11SlotInfo *slot,\n                                   SECStatus (*callback)(CERTCertificate
      *, void *), void *arg)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PK11Slot_GetNSSToken
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2277,1
    - Dst: nssToken_IsPresent
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2278,1
    - Dst: nssToken_Destroy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2279,1
    - Dst: nssUTF8_Create
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2283,1
    - Dst: STAN_GetDefaultTrustDomain
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2289,1
    - Dst: nssCertificateCollection_Create
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2290,1
    - Dst: nssList_Create
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2294,1
    - Dst: nssTrustDomain_GetCertsForNicknameFromCache
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2298,1
    - Dst: transfer_token_certs_to_collection
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2299,1
    - Dst: nssToken_FindCertificatesByNickname
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2300,1
    - Dst: nssPKIObjectCollection_AddInstances
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2303,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2304,1
    - Dst: nssList_Destroy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2305,1
    - Dst: nssPKIObjectCollection_GetCertificates
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2306,1
    - Dst: nssPKIObjectCollection_Destroy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2308,1
    - Dst: nssToken_Destroy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2309,1
    - Dst: STAN_GetCERTCertificate
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2314,1
    - Dst: nssCertificateArray_Destroy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2323,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2326,1
    - Dst: nssToken_Destroy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2329,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2331,1
    - Dst: nssPKIObjectCollection_Destroy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2334,1
    - Dst: nssList_Destroy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2337,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 61
    argCount: 3
    argNames:
    - nickname
    - slot
    - arg
    argTypes:
    - SECItem*
    - PK11SlotInfo*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2340
      start: 2263
    functionDepth: 7
    functionLinenumber: 2263
    functionLinenumberEnd: 2340
    functionName: PK11_TraverseCertsForNicknameInSlot
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 0
    functionsReached:
    - nssCertificateArray_Destroy
    - nssToken_Destroy
    - nssToken_IsPresent
    - STAN_GetDefaultTrustDomain
    - nssUTF8_Create
    - nssCertificateCollection_Create
    - nssPKIObjectCollection_Destroy
    - nssTrustDomain_GetCertsForNicknameFromCache
    - nssPKIObjectCollection_AddInstances
    - nss_ZFreeIf
    - nssList_Create
    - nssToken_FindCertificatesByNickname
    - STAN_GetCERTCertificate
    - PK11Slot_GetNSSToken
    - nssList_Destroy
    - nssPKIObjectCollection_GetCertificates
    - transfer_token_certs_to_collection
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_TraverseCertsForNicknameInSlot(SECItem *nickname, PK11SlotInfo
      *slot,\n                                    SECStatus (*callback)(CERTCertificate
      *, void *), void *arg)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: STAN_GetDefaultTrustDomain
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2347,1
    - Dst: PK11Slot_GetNSSToken
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2354,1
    - Dst: nssToken_IsPresent
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2358,1
    - Dst: nssToken_Destroy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2359,1
    - Dst: nssCertificateCollection_Create
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2362,1
    - Dst: nssToken_Destroy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2364,1
    - Dst: nssList_Create
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2367,1
    - Dst: nssPKIObjectCollection_Destroy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2369,1
    - Dst: nssToken_Destroy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2370,1
    - Dst: nssTrustDomain_GetCertsFromCache
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2373,1
    - Dst: transfer_token_certs_to_collection
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2374,1
    - Dst: nssToken_FindObjects
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2375,1
    - Dst: nssPKIObjectCollection_AddInstances
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2377,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2378,1
    - Dst: nssList_Destroy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2379,1
    - Dst: nssPKIObjectCollection_GetCertificates
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2380,1
    - Dst: nssPKIObjectCollection_Destroy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2382,1
    - Dst: nssToken_Destroy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2383,1
    - Dst: STAN_GetCERTCertificate
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2388,1
    - Dst: nssCertificateArray_Destroy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2397,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 2
    argNames:
    - slot
    - arg
    argTypes:
    - PK11SlotInfo*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2400
      start: 2342
    functionDepth: 7
    functionLinenumber: 2342
    functionLinenumberEnd: 2400
    functionName: PK11_TraverseCertsInSlot
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 0
    functionsReached:
    - nssCertificateArray_Destroy
    - nssToken_FindObjects
    - nssToken_Destroy
    - STAN_GetDefaultTrustDomain
    - nssToken_IsPresent
    - nssCertificateCollection_Create
    - nssPKIObjectCollection_Destroy
    - nssTrustDomain_GetCertsFromCache
    - nssPKIObjectCollection_AddInstances
    - STAN_GetCERTCertificate
    - nss_ZFreeIf
    - nssList_Create
    - PK11Slot_GetNSSToken
    - nssList_Destroy
    - nssPKIObjectCollection_GetCertificates
    - transfer_token_certs_to_collection
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_TraverseCertsInSlot(PK11SlotInfo *slot,\n                         SECStatus
      (*callback)(CERTCertificate *, void *), void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_FindCertFromDERCertItem
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - slot
    - cert
    - wincx
    argTypes:
    - PK11SlotInfo*
    - CERTCertificate*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2410
      start: 2405
    functionDepth: 1
    functionLinenumber: 2405
    functionLinenumberEnd: 2410
    functionName: PK11_FindCertFromDERCert
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 0
    functionsReached:
    - PK11_FindCertFromDERCertItem
    linkageType: ''
    returnType: CERTCertificate
    signature: "CERTCertificate *\nPK11_FindCertFromDERCert(PK11SlotInfo *slot, CERTCertificate
      *cert,\n                         void *wincx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NSSITEM_FROM_SECITEM
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2423,1
    - Dst: pk11_AuthenticateUnfriendly
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2424,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2426,1
    - Dst: PK11Slot_GetNSSToken
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2430,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2432,1
    - Dst: nssToken_FindCertificateByEncodedCertificate
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2435,1
    - Dst: nssToken_Destroy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2437,1
    - Dst: PK11_MakeCertFromHandle
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2440,1
    - Dst: nssCryptokiObject_Destroy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2441,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - slot
    - inDerCert
    - wincx
    argTypes:
    - PK11SlotInfo*
    - SECItem*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2445
      start: 2412
    functionDepth: 8
    functionLinenumber: 2412
    functionLinenumberEnd: 2445
    functionName: PK11_FindCertFromDERCertItem
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 3
    functionsReached:
    - nssToken_Destroy
    - NSSITEM_FROM_SECITEM
    - PK11_MakeCertFromHandle
    - pk11_AuthenticateUnfriendly
    - nssToken_FindCertificateByEncodedCertificate
    - nssCryptokiObject_Destroy
    - PK11Slot_GetNSSToken
    - PK11_FreeSlot
    linkageType: ''
    returnType: CERTCertificate
    signature: "CERTCertificate *\nPK11_FindCertFromDERCertItem(PK11SlotInfo *slot,
      const SECItem *inDerCert,\n                             void *wincx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pk11_mkcertKeyID
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2465,1
    - Dst: pk11_LoginStillRequired
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2477,1
    - Dst: pk11_FindPrivateKeyFromCertID
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2478,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2480,1
    - Dst: PK11_Authenticate
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2483,1
    - Dst: pk11_FindPrivateKeyFromCertID
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2486,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2490,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 3
    argNames:
    - slot
    - cert
    - wincx
    argTypes:
    - PK11SlotInfo*
    - CERTCertificate*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2492
      start: 2451
    functionDepth: 6
    functionLinenumber: 2451
    functionLinenumberEnd: 2492
    functionName: pk11_findKeyObjectByDERCert
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 0
    functionsReached:
    - pk11_mkcertKeyID
    - pk11_FindPrivateKeyFromCertID
    - PORT_GetError
    - pk11_LoginStillRequired
    - SECITEM_ZfreeItem
    - PK11_Authenticate
    linkageType: ''
    returnType: CK_OBJECT_HANDLE
    signature: "CK_OBJECT_HANDLE pk11_findKeyObjectByDERCert(PK11SlotInfo *slot, CERTCertificate
      *cert,\n                            void *wincx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pk11_findKeyObjectByDERCert
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2504,1
    - Dst: PK11_MakePrivKey
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2509,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - slot
    - cert
    - wincx
    argTypes:
    - PK11SlotInfo*
    - CERTCertificate*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2510
      start: 2494
    functionDepth: 7
    functionLinenumber: 2494
    functionLinenumberEnd: 2510
    functionName: PK11_FindKeyByDERCert
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 2
    functionsReached:
    - pk11_findKeyObjectByDERCert
    - PK11_MakePrivKey
    linkageType: ''
    returnType: SECKEYPrivateKey
    signature: "SECKEYPrivateKey *\nPK11_FindKeyByDERCert(PK11SlotInfo *slot, CERTCertificate
      *cert,\n                      void *wincx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pk11_findKeyObjectByDERCert
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2523,1
    - Dst: PK11_ImportCert
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2528,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 5
    argNames:
    - slot
    - cert
    - nickname
    - addCertUsage
    - wincx
    argTypes:
    - PK11SlotInfo*
    - CERTCertificate*
    - char*
    - PRBool
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2529
      start: 2512
    functionDepth: 7
    functionLinenumber: 2512
    functionLinenumberEnd: 2529
    functionName: PK11_ImportCertForKeyToSlot
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 0
    functionsReached:
    - pk11_findKeyObjectByDERCert
    - PK11_ImportCert
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_ImportCertForKeyToSlot(PK11SlotInfo *slot, CERTCertificate
      *cert,\n                            char *nickname,\n                            PRBool
      addCertUsage, void *wincx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - server
    - cert
    argTypes:
    - CERTCertificate*
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2539
      start: 2533
    functionDepth: 0
    functionLinenumber: 2533
    functionLinenumberEnd: 2539
    functionName: KEAPQGCompare
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool KEAPQGCompare(CERTCertificate *server, CERTCertificate *cert)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CERT_GetCertTrust
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2548,1
    - Dst: SECOID_FindOID
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2553,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - cert
    argTypes:
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2561
      start: 2541
    functionDepth: 1
    functionLinenumber: 2541
    functionLinenumberEnd: 2561
    functionName: PK11_FortezzaHasKEA
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 0
    functionsReached:
    - CERT_GetCertTrust
    - SECOID_FindOID
    linkageType: ''
    returnType: PRBool
    signature: PRBool PK11_FortezzaHasKEA(CERTCertificate *cert)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_FortezzaHasKEA
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2576,1
    - Dst: KEAPQGCompare
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2576,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2577,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - slot
    - peer
    argTypes:
    - PK11SlotInfo*
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2582
      start: 2566
    functionDepth: 2
    functionLinenumber: 2566
    functionLinenumberEnd: 2582
    functionName: pk11_GetKEAMate
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 0
    functionsReached:
    - PK11_FortezzaHasKEA
    - CERT_DupCertificate
    - KEAPQGCompare
    linkageType: ''
    returnType: CERTCertificate
    signature: "CERTCertificate *\n    pk11_GetKEAMate(PK11SlotInfo *slot, CERTCertificate
      *peer)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetAllTokens
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2593,1
    - Dst: PK11_Authenticate
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2606,1
    - Dst: pk11_GetKEAMate
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2612,1
    - Dst: PK11_FreeSlotList
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2616,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 2
    argNames:
    - server
    - wincx
    argTypes:
    - CERTCertificate*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2619
      start: 2590
    functionDepth: 6
    functionLinenumber: 2590
    functionLinenumberEnd: 2619
    functionName: PK11_FindBestKEAMatch
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 0
    functionsReached:
    - PK11_FreeSlotList
    - PK11_GetAllTokens
    - pk11_GetKEAMate
    - PK11_Authenticate
    linkageType: ''
    returnType: CERTCertificate
    signature: 'CERTCertificate *

      PK11_FindBestKEAMatch(CERTCertificate *server, void *wincx)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PK11_FortezzaHasKEA
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2635,1
    - Dst: pk11_GetKEAMate
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2636,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2639,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - slot1
    - slot2
    - cert1
    - cert2
    argTypes:
    - PK11SlotInfo*
    - PK11SlotInfo*
    - CERTCertificate**
    - CERTCertificate**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2645
      start: 2625
    functionDepth: 3
    functionLinenumber: 2625
    functionLinenumberEnd: 2645
    functionName: PK11_GetKEAMatchedCerts
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 0
    functionsReached:
    - pk11_GetKEAMate
    - PK11_FortezzaHasKEA
    - CERT_DupCertificate
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_GetKEAMatchedCerts(PK11SlotInfo *slot1, PK11SlotInfo
      *slot2,\n                        CERTCertificate **cert1, CERTCertificate **cert2)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2651,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2663,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2665,1
    - Dst: pk11_AuthenticateUnfriendly
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2667,1
    - Dst: pk11_FindObjectByTemplate
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2672,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - slot
    - derCert
    - wincx
    argTypes:
    - PK11SlotInfo*
    - SECItem*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2673
      start: 2647
    functionDepth: 4
    functionLinenumber: 2647
    functionLinenumberEnd: 2673
    functionName: PK11_FindEncodedCertInSlot
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PK11_SETATTRS
    - pk11_AuthenticateUnfriendly
    - pk11_FindObjectByTemplate
    linkageType: ''
    returnType: CK_OBJECT_HANDLE
    signature: CK_OBJECT_HANDLE PK11_FindEncodedCertInSlot(PK11SlotInfo *slot, SECItem
      *derCert, void *wincx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PK11_FindEncodedCertInSlot
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2684,1
    - Dst: PK11_FindEncodedCertInSlot
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2689,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - slot
    - cert
    - wincx
    argTypes:
    - PK11SlotInfo*
    - CERTCertificate*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2692
      start: 2675
    functionDepth: 5
    functionLinenumber: 2675
    functionLinenumberEnd: 2692
    functionName: PK11_FindCertInSlot
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 4
    functionsReached:
    - PK11_FindEncodedCertInSlot
    linkageType: ''
    returnType: CK_OBJECT_HANDLE
    signature: CK_OBJECT_HANDLE PK11_FindCertInSlot(PK11SlotInfo *slot, CERTCertificate
      *cert, void *wincx)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: NSSCertificate_IsPrivateKeyAvailable
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2728,1
    - Dst: NSSCertificate_IsPrivateKeyAvailable
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2737,1
    - Dst: STAN_GetCERTCertificate
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2742,1
    - Dst: CERT_IsCACert
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2747,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2751,1
    - Dst: STAN_GetCERTCertificateName
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2753,1
    - Dst: PK11_IsInternal
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2756,1
    - Dst: CERT_AddCertToListTailWithData
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2757,1
    - Dst: CERT_AddCertToListHeadWithData
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2759,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2763,1
    - Dst: nssPKIObject_GetInstances
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2768,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2777,1
    - Dst: STAN_GetCERTCertificateNameForInstance
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2779,1
    - Dst: PK11_IsInternal
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2783,1
    - Dst: CERT_AddCertToListTailWithData
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2784,1
    - Dst: CERT_AddCertToListHeadWithData
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2786,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2790,1
    - Dst: nssCryptokiObjectArray_Destroy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2793,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 50
    argCount: 2
    argNames:
    - c
    - arg
    argTypes:
    - NSSCertificate*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2796
      start: 2703
    functionDepth: 3
    functionLinenumber: 2703
    functionLinenumberEnd: 2796
    functionName: pk11ListCertCallback
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 0
    functionsReached:
    - STAN_GetCERTCertificateName
    - NSSCertificate_IsPrivateKeyAvailable
    - nssCryptokiObjectArray_Destroy
    - STAN_GetCERTCertificateNameForInstance
    - CERT_IsCACert
    - STAN_GetCERTCertificate
    - CERT_AddCertToListHeadWithData
    - CERT_DupCertificate
    - CERT_DestroyCertificate
    - nssPKIObject_GetInstances
    - CERT_AddCertToListTailWithData
    - PK11_IsInternal
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus pk11ListCertCallback(NSSCertificate *c, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STAN_GetDefaultTrustDomain
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2801,1
    - Dst: CERT_NewCertList
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2804,1
    - Dst: pk11_TraverseAllSlots
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2809,1
    - Dst: NSSTrustDomain_TraverseCertificates
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - type
    - pwarg
    argTypes:
    - PK11CertListType
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2813
      start: 2798
    functionDepth: 3
    functionLinenumber: 2798
    functionLinenumberEnd: 2813
    functionName: PK11_ListCerts
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 3
    functionsReached:
    - STAN_GetDefaultTrustDomain
    - pk11_TraverseAllSlots
    - NSSTrustDomain_TraverseCertificates
    - CERT_NewCertList
    linkageType: ''
    returnType: CERTCertList
    signature: 'CERTCertList *

      PK11_ListCerts(PK11CertListType type, void *pwarg)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PK11_FindCertInSlot
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2824,1
    - Dst: PK11_FindObjectForCert
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2826,1
    - Dst: pk11_mkcertKeyID
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2828,1
    - Dst: pk11_GetLowLevelKeyFromHandle
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2837,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2839,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - slot
    - cert
    - wincx
    argTypes:
    - PK11SlotInfo*
    - CERTCertificate*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2841
      start: 2815
    functionDepth: 8
    functionLinenumber: 2815
    functionLinenumberEnd: 2841
    functionName: PK11_GetLowLevelKeyIDForCert
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 0
    functionsReached:
    - PK11_FindCertInSlot
    - pk11_mkcertKeyID
    - pk11_GetLowLevelKeyFromHandle
    - PK11_FreeSlot
    - PK11_FindObjectForCert
    linkageType: ''
    returnType: SECItem
    signature: "SECItem *\nPK11_GetLowLevelKeyIDForCert(PK11SlotInfo *slot,\n                             CERTCertificate
      *cert, void *wincx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: STAN_GetNSSCertificate
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2856,1
    - Dst: nssPKIObject_GetInstances
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2862,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2873,1
    - Dst: nssCryptokiObjectArray_Destroy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2875,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2876,1
    - Dst: STAN_GetCERTCertificateNameForInstance
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2879,1
    - Dst: nssCryptokiObjectArray_Destroy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2881,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2883,1
    - Dst: CERT_AddCertToListTailWithData
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2884,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2886,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - cert
    - arg
    argTypes:
    - CERTCertificate*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2889
      start: 2849
    functionDepth: 2
    functionLinenumber: 2849
    functionLinenumberEnd: 2889
    functionName: listCertsCallback
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - STAN_GetNSSCertificate
    - nssCryptokiObjectArray_Destroy
    - PORT_SetError
    - CERT_DupCertificate
    - STAN_GetCERTCertificateNameForInstance
    - CERT_DestroyCertificate
    - nssPKIObject_GetInstances
    - CERT_AddCertToListTailWithData
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus listCertsCallback(CERTCertificate *cert, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CERT_NewCertList
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2898,1
    - Dst: PK11_TraverseCertsInSlot
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2904,1
    - Dst: CERT_DestroyCertList
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2908,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - slot
    argTypes:
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2913
      start: 2891
    functionDepth: 8
    functionLinenumber: 2891
    functionLinenumberEnd: 2913
    functionName: PK11_ListCertsInSlot
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 2
    functionsReached:
    - CERT_DestroyCertList
    - CERT_NewCertList
    - PK11_TraverseCertsInSlot
    linkageType: ''
    returnType: CERTCertList
    signature: 'CERTCertList *

      PK11_ListCertsInSlot(PK11SlotInfo *slot)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2925,1
    - Dst: STAN_GetNSSCertificate
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2929,1
    - Dst: CERT_MapStanError
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2931,1
    - Dst: nssPKIObject_GetInstances
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2936,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2938,1
    - Dst: PK11_NewSlotList
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2942,1
    - Dst: nssCryptokiObjectArray_Destroy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2944,1
    - Dst: PK11_AddSlotToList
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2952,1
    - Dst: PK11_FreeSlotList
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2957,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2958,1
    - Dst: nssCryptokiObjectArray_Destroy
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2962,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 2
    argNames:
    - cert
    - arg
    argTypes:
    - CERTCertificate*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2964
      start: 2915
    functionDepth: 4
    functionLinenumber: 2915
    functionLinenumberEnd: 2964
    functionName: PK11_GetAllSlotsForCert
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 1
    functionsReached:
    - PK11_FreeSlotList
    - PK11_NewSlotList
    - STAN_GetNSSCertificate
    - nssCryptokiObjectArray_Destroy
    - PORT_SetError
    - CERT_MapStanError
    - PK11_AddSlotToList
    - nssPKIObject_GetInstances
    linkageType: ''
    returnType: PK11SlotList
    signature: 'PK11SlotList *

      PK11_GetAllSlotsForCert(CERTCertificate *cert, void *arg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2983,1
    - Dst: PK11_SetObjectNickname
      Src: /src/nss/lib/pk11wrap/pk11cert.c:2986,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - cert
    - nickname
    argTypes:
    - CERTCertificate*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2987
      start: 2978
    functionDepth: 1
    functionLinenumber: 2978
    functionLinenumberEnd: 2987
    functionName: __PK11_SetCertificateNickname
    functionSourceFile: /src/nss/lib/pk11wrap/pk11cert.c
    functionUses: 1
    functionsReached:
    - PK11_SetObjectNickname
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus __PK11_SetCertificateNickname(CERTCertificate *cert, const
      char *nickname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - key
    argTypes:
    - SECKEYRawPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 230
    functionName: prepare_rsa_priv_key_export_for_asn1
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pk12.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void prepare_rsa_priv_key_export_for_asn1(SECKEYRawPrivateKey *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - key
    argTypes:
    - SECKEYRawPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 239
    functionName: prepare_dsa_priv_key_export_for_asn1
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pk12.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void prepare_dsa_priv_key_export_for_asn1(SECKEYRawPrivateKey *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - SECKEYRawPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 247
    functionName: prepare_dh_priv_key_export_for_asn1
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pk12.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void prepare_dh_priv_key_export_for_asn1(SECKEYRawPrivateKey *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - key
    argTypes:
    - SECKEYRawPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 256
    functionName: prepare_ec_priv_key_export_for_asn1
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pk12.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void prepare_ec_priv_key_export_for_asn1(SECKEYRawPrivateKey *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_ImportDERPrivateKeyInfoAndReturnKey
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - slot
    - derPKI
    - nickname
    - publicValue
    - isPerm
    - isPrivate
    - keyUsage
    - wincx
    argTypes:
    - PK11SlotInfo*
    - SECItem*
    - SECItem*
    - SECItem*
    - PRBool
    - PRBool
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 267
    functionName: PK11_ImportDERPrivateKeyInfo
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pk12.c
    functionUses: 0
    functionsReached:
    - PK11_ImportDERPrivateKeyInfoAndReturnKey
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_ImportDERPrivateKeyInfo(PK11SlotInfo *slot, SECItem
      *derPKI,\n                             SECItem *nickname, SECItem *publicValue,
      PRBool isPerm,\n                             PRBool isPrivate, unsigned int
      keyUsage, void *wincx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:279,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:284,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:286,1
    - Dst: SEC_ASN1DecodeItem
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:291,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:297,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:305,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:306,1
    - Dst: PK11_ImportPrivateKeyInfoAndReturnKey
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:310,1
    - Dst: SECKEY_DestroyPrivateKeyInfo
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:315,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 9
    argNames:
    - slot
    - derPKI
    - nickname
    - publicValue
    - isPerm
    - isPrivate
    - keyUsage
    - privk
    - wincx
    argTypes:
    - PK11SlotInfo*
    - SECItem*
    - SECItem*
    - SECItem*
    - PRBool
    - PRBool
    - unsigned int
    - SECKEYPrivateKey**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 317
    functionName: PK11_ImportDERPrivateKeyInfoAndReturnKey
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pk12.c
    functionUses: 2
    functionsReached:
    - PORT_NewArena
    - SECKEY_DestroyPrivateKeyInfo
    - PORT_FreeArena
    - PK11_ImportPrivateKeyInfoAndReturnKey
    - SEC_ASN1DecodeItem
    - PORT_ArenaZNew
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_ImportDERPrivateKeyInfoAndReturnKey(PK11SlotInfo *slot,
      SECItem *derPKI,\n                                         SECItem *nickname,
      SECItem *publicValue,\n                                         PRBool isPerm,
      PRBool isPrivate, unsigned int keyUsage,\n                                         SECKEYPrivateKey
      **privk, void *wincx)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:341,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:343,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:345,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:348,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:351,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:358,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:361,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:364,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:367,1
    - Dst: PK11_MakeIDFromPubKey
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:372,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:376,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:379,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:383,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:386,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:390,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:394,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:398,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:402,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:406,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:410,1
    - Dst: PK11_IsInternal
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:424,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:425,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:429,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:431,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:434,1
    - Dst: PK11_MakeIDFromPubKey
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:437,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:441,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:444,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:447,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:450,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:453,1
    - Dst: PK11_IsInternal
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:463,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:464,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:468,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:471,1
    - Dst: PK11_MakeIDFromPubKey
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:474,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:478,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:481,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:484,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:487,1
    - Dst: PK11_IsInternal
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:494,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:495,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:502,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:505,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:510,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:514,1
    - Dst: PK11_MakeIDFromPubKey
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:517,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:521,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:525,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:528,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:531,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:537,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:540,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:546,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:549,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:556,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:560,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:566,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:570,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:575,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:579,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:581,1
    - Dst: pk11_SignedToUnsigned
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:584,1
    - Dst: PK11_CreateNewObject
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:588,1
    - Dst: PK11_MakePrivKey
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:593,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:600,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 199
    argCount: 9
    argNames:
    - slot
    - lpk
    - nickname
    - publicValue
    - isPerm
    - isPrivate
    - keyUsage
    - privk
    - wincx
    argTypes:
    - PK11SlotInfo*
    - SECKEYRawPrivateKey*
    - SECItem*
    - SECItem*
    - PRBool
    - PRBool
    - unsigned int
    - SECKEYPrivateKey**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 319
    functionDepth: 2
    functionLinenumber: 319
    functionLinenumberEnd: 603
    functionName: PK11_ImportAndReturnPrivateKey
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pk12.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - PK11_SETATTRS
    - PK11_CreateNewObject
    - PK11_MakeIDFromPubKey
    - PK11_MakePrivKey
    - pk11_SignedToUnsigned
    - SECITEM_ZfreeItem
    - PK11_IsInternal
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_ImportAndReturnPrivateKey(PK11SlotInfo *slot, SECKEYRawPrivateKey
      *lpk,\n                               SECItem *nickname, SECItem *publicValue,
      PRBool isPerm,\n                               PRBool isPrivate, unsigned int
      keyUsage, SECKEYPrivateKey **privk,\n                               void *wincx)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:617,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:623,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:630,1
    - Dst: prepare_rsa_priv_key_export_for_asn1
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:632,1
    - Dst: prepare_dsa_priv_key_export_for_asn1
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:639,1
    - Dst: prepare_dh_priv_key_export_for_asn1
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:649,1
    - Dst: prepare_ec_priv_key_export_for_asn1
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:668,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:687,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:697,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:709,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:713,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:713,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:718,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:723,1
    - Dst: SEC_ASN1DecodeItem
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:727,1
    - Dst: PK11_ImportAndReturnPrivateKey
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:734,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:738,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 111
    argCount: 9
    argNames:
    - slot
    - pki
    - nickname
    - publicValue
    - isPerm
    - isPrivate
    - keyUsage
    - privk
    - wincx
    argTypes:
    - PK11SlotInfo*
    - SECKEYPrivateKeyInfo*
    - SECItem*
    - SECItem*
    - PRBool
    - PRBool
    - unsigned int
    - SECKEYPrivateKey**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 605
    functionDepth: 3
    functionLinenumber: 605
    functionLinenumberEnd: 742
    functionName: PK11_ImportPrivateKeyInfoAndReturnKey
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pk12.c
    functionUses: 1
    functionsReached:
    - prepare_dsa_priv_key_export_for_asn1
    - PORT_Memcpy
    - SECOID_GetAlgorithmTag
    - prepare_rsa_priv_key_export_for_asn1
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - prepare_dh_priv_key_export_for_asn1
    - SECOID_FindOIDByTag
    - PORT_FreeArena
    - SECITEM_CopyItem
    - SECITEM_AllocItem
    - SEC_QuickDERDecodeItem
    - PORT_SetError
    - SEC_ASN1DecodeItem
    - prepare_ec_priv_key_export_for_asn1
    - PK11_ImportAndReturnPrivateKey
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_ImportPrivateKeyInfoAndReturnKey(PK11SlotInfo *slot,\n
      \                                     SECKEYPrivateKeyInfo *pki, SECItem *nickname,
      SECItem *publicValue,\n                                      PRBool isPerm,
      PRBool isPrivate, unsigned int keyUsage,\n                                      SECKEYPrivateKey
      **privk, void *wincx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_ImportPrivateKeyInfoAndReturnKey
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - slot
    - pki
    - nickname
    - publicValue
    - isPerm
    - isPrivate
    - keyUsage
    - wincx
    argTypes:
    - PK11SlotInfo*
    - SECKEYPrivateKeyInfo*
    - SECItem*
    - SECItem*
    - PRBool
    - PRBool
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 744
    functionDepth: 4
    functionLinenumber: 744
    functionLinenumberEnd: 751
    functionName: PK11_ImportPrivateKeyInfo
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pk12.c
    functionUses: 0
    functionsReached:
    - PK11_ImportPrivateKeyInfoAndReturnKey
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_ImportPrivateKeyInfo(PK11SlotInfo *slot, SECKEYPrivateKeyInfo
      *pki,\n                          SECItem *nickname, SECItem *publicValue, PRBool
      isPerm,\n                          PRBool isPrivate, unsigned int keyUsage,
      void *wincx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_ExportPrivKeyInfo
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:756,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:762,1
    - Dst: SECKEY_DestroyPrivateKeyInfo
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:764,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - pk
    - wincx
    argTypes:
    - SECKEYPrivateKey*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 753
    functionDepth: 1
    functionLinenumber: 753
    functionLinenumberEnd: 766
    functionName: PK11_ExportDERPrivateKeyInfo
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pk12.c
    functionUses: 0
    functionsReached:
    - PK11_ExportPrivKeyInfo
    - SEC_ASN1EncodeItem
    - SECKEY_DestroyPrivateKeyInfo
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      PK11_ExportDERPrivateKeyInfo(SECKEYPrivateKey *pk, void *wincx)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_ReadAttribute
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:772,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - key
    - type
    - arena
    - output
    argTypes:
    - SECKEYPrivateKey*
    - CK_ATTRIBUTE_TYPE
    - PLArenaPool*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 768
    functionDepth: 1
    functionLinenumber: 768
    functionLinenumberEnd: 775
    functionName: ReadAttribute
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pk12.c
    functionUses: 7
    functionsReached:
    - PK11_ReadAttribute
    linkageType: ''
    returnType: PRBool
    signature: "PRBool ReadAttribute(SECKEYPrivateKey *key, CK_ATTRIBUTE_TYPE type,\n
      \             PLArenaPool *arena, SECItem *output)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:797,1
    - Dst: memset
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:801,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:803,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:811,1
    - Dst: prepare_rsa_priv_key_export_for_asn1
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:820,1
    - Dst: ReadAttribute
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:821,1
    - Dst: ReadAttribute
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:822,1
    - Dst: ReadAttribute
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:824,1
    - Dst: ReadAttribute
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:826,1
    - Dst: ReadAttribute
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:827,1
    - Dst: ReadAttribute
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:828,1
    - Dst: ReadAttribute
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:830,1
    - Dst: ReadAttribute
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:832,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:839,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:847,1
    - Dst: prepare_ec_priv_key_export_for_asn1
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:856,1
    - Dst: ReadAttribute
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:857,1
    - Dst: ReadAttribute
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:859,1
    - Dst: ReadAttribute
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:862,1
    - Dst: SECKEY_ConvertToPublicKey
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:864,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:867,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:868,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:878,1
    - Dst: ReadAttribute
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:885,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:892,1
    - Dst: ReadAttribute
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:898,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:905,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:911,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:916,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:921,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pk11wrap/pk11pk12.c:933,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 123
    argCount: 2
    argNames:
    - pk
    - wincx
    argTypes:
    - SECKEYPrivateKey*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 781
    functionDepth: 5
    functionLinenumber: 781
    functionLinenumberEnd: 936
    functionName: PK11_ExportPrivKeyInfo
    functionSourceFile: /src/nss/lib/pk11wrap/pk11pk12.c
    functionUses: 2
    functionsReached:
    - ReadAttribute
    - SECKEY_DestroyPublicKey
    - SEC_ASN1EncodeItem
    - PORT_NewArena
    - prepare_rsa_priv_key_export_for_asn1
    - PORT_FreeArena
    - PORT_ArenaAlloc
    - SECITEM_CopyItem
    - memset
    - PORT_ArenaZNew
    - SECOID_SetAlgorithmID
    - SECKEY_ConvertToPublicKey
    - PORT_SetError
    - prepare_ec_priv_key_export_for_asn1
    linkageType: ''
    returnType: SECKEYPrivateKeyInfo
    signature: 'SECKEYPrivateKeyInfo *

      PK11_ExportPrivKeyInfo(SECKEYPrivateKey *pk, void *wincx)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11kea.c:37,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11kea.c:39,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/pk11wrap/pk11kea.c:42,1
    - Dst: pk11_FindObjectByTemplate
      Src: /src/nss/lib/pk11wrap/pk11kea.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - slot
    argTypes:
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 45
    functionName: pk11_FindRSAPubKey
    functionSourceFile: /src/nss/lib/pk11wrap/pk11kea.c
    functionUses: 0
    functionsReached:
    - pk11_FindObjectByTemplate
    - PK11_SETATTRS
    - PR_ASSERT
    linkageType: ''
    returnType: CK_OBJECT_HANDLE
    signature: CK_OBJECT_HANDLE pk11_FindRSAPubKey(PK11SlotInfo *slot)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PK11_DoesMechanism
      Src: /src/nss/lib/pk11wrap/pk11kea.c:60,1
    - Dst: PK11_DoesMechanism
      Src: /src/nss/lib/pk11wrap/pk11kea.c:61,1
    - Dst: PK11_GetKeyLength
      Src: /src/nss/lib/pk11wrap/pk11kea.c:67,1
    - Dst: pk11_FindRSAPubKey
      Src: /src/nss/lib/pk11wrap/pk11kea.c:72,1
    - Dst: PK11_MatchItem
      Src: /src/nss/lib/pk11wrap/pk11kea.c:74,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11kea.c:85,1
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/lib/pk11wrap/pk11kea.c:90,1
    - Dst: PK11_MakePrivKey
      Src: /src/nss/lib/pk11wrap/pk11kea.c:94,1
    - Dst: PK11_ExtractPublicKey
      Src: /src/nss/lib/pk11wrap/pk11kea.c:97,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11kea.c:99,1
    - Dst: SECKEY_PublicKeyStrength
      Src: /src/nss/lib/pk11wrap/pk11kea.c:110,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/pk11wrap/pk11kea.c:113,1
    - Dst: PK11_PubWrapSymKey
      Src: /src/nss/lib/pk11wrap/pk11kea.c:118,1
    - Dst: PK11_PubUnwrapSymKeyWithFlagsPerm
      Src: /src/nss/lib/pk11wrap/pk11kea.c:120,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11kea.c:125,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11kea.c:131,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/lib/pk11wrap/pk11kea.c:133,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/pk11wrap/pk11kea.c:135,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11kea.c:139,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 61
    argCount: 6
    argNames:
    - slot
    - type
    - operation
    - flags
    - isPerm
    - symKey
    argTypes:
    - PK11SlotInfo*
    - CK_MECHANISM_TYPE
    - CK_ATTRIBUTE_TYPE
    - CK_FLAGS
    - PRBool
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 47
    functionDepth: 11
    functionLinenumber: 47
    functionLinenumberEnd: 141
    functionName: pk11_KeyExchange
    functionSourceFile: /src/nss/lib/pk11wrap/pk11kea.c
    functionUses: 1
    functionsReached:
    - SECKEY_PublicKeyStrength
    - PK11_MatchItem
    - PORT_Alloc
    - PK11_PubWrapSymKey
    - PK11_GetKeyLength
    - PK11_PubUnwrapSymKeyWithFlagsPerm
    - SECKEY_DestroyPublicKey
    - PORT_Free
    - PK11_GenerateKeyPair
    - PK11_ExtractPublicKey
    - pk11_FindRSAPubKey
    - PK11_DoesMechanism
    - PORT_SetError
    - PK11_MakePrivKey
    - SECKEY_DestroyPrivateKey
    - PK11_FreeSlot
    - PK11_FreeSymKey
    linkageType: ''
    returnType: PK11SymKey
    signature: "PK11SymKey *\npk11_KeyExchange(PK11SlotInfo *slot, CK_MECHANISM_TYPE
      type,\n                 CK_ATTRIBUTE_TYPE operation, CK_FLAGS flags,\n                 PRBool
      isPerm, PK11SymKey *symKey)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECMOD_NewListLock
      Src: /src/nss/lib/pk11wrap/pk11util.c:42,1
    - Dst: PK11_InitSlotLists
      Src: /src/nss/lib/pk11wrap/pk11util.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 35
    functionDepth: 3
    functionLinenumber: 35
    functionLinenumberEnd: 44
    functionName: SECMOD_Init
    functionSourceFile: /src/nss/lib/pk11wrap/pk11util.c
    functionUses: 2
    functionsReached:
    - PK11_InitSlotLists
    - SECMOD_NewListLock
    linkageType: ''
    returnType: void
    signature: void SECMOD_Init()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SECMOD_DestroyListLock
      Src: /src/nss/lib/pk11wrap/pk11util.c:51,1
    - Dst: SECMOD_DestroyModule
      Src: /src/nss/lib/pk11wrap/pk11util.c:56,1
    - Dst: SECMOD_DestroyModule
      Src: /src/nss/lib/pk11wrap/pk11util.c:62,1
    - Dst: SECMOD_DestroyModuleList
      Src: /src/nss/lib/pk11wrap/pk11util.c:68,1
    - Dst: SECMOD_DestroyModuleList
      Src: /src/nss/lib/pk11wrap/pk11util.c:73,1
    - Dst: SECMOD_DestroyModuleList
      Src: /src/nss/lib/pk11wrap/pk11util.c:78,1
    - Dst: PK11_DestroySlotLists
      Src: /src/nss/lib/pk11wrap/pk11util.c:83,1
    - Dst: nss_DumpModuleLog
      Src: /src/nss/lib/pk11wrap/pk11util.c:85,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/pk11wrap/pk11util.c:88,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11util.c:89,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11util.c:93,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 46
    functionDepth: 4
    functionLinenumber: 46
    functionLinenumberEnd: 97
    functionName: SECMOD_Shutdown
    functionSourceFile: /src/nss/lib/pk11wrap/pk11util.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - nss_DumpModuleLog
    - PK11_DestroySlotLists
    - SECMOD_DestroyListLock
    - PR_GetEnvSecure
    - SECMOD_DestroyModule
    - PORT_SetError
    - SECMOD_DestroyModuleList
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SECMOD_Shutdown()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSS_GetSystemFIPSEnabled
      Src: /src/nss/lib/pk11wrap/pk11util.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 103
    functionName: SECMOD_GetSystemFIPSEnabled
    functionSourceFile: /src/nss/lib/pk11wrap/pk11util.c
    functionUses: 2
    functionsReached:
    - NSS_GetSystemFIPSEnabled
    linkageType: ''
    returnType: PRBool
    signature: PRBool SECMOD_GetSystemFIPSEnabled(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 112
    functionName: SECMOD_GetInternalModule
    functionSourceFile: /src/nss/lib/pk11wrap/pk11util.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: SECMODModule
    signature: 'SECMODModule *

      SECMOD_GetInternalModule(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECMOD_NewModuleListElement
      Src: /src/nss/lib/pk11wrap/pk11util.c:119,1
    - Dst: SECMOD_ReferenceModule
      Src: /src/nss/lib/pk11wrap/pk11util.c:124,1
    - Dst: SECMOD_GetWriteLock
      Src: /src/nss/lib/pk11wrap/pk11util.c:126,1
    - Dst: SECMOD_AddList
      Src: /src/nss/lib/pk11wrap/pk11util.c:137,1
    - Dst: SECMOD_ReleaseWriteLock
      Src: /src/nss/lib/pk11wrap/pk11util.c:139,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - moduleList
    - newModule
    argTypes:
    - SECMODModuleList**
    - SECMODModule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 141
    functionName: secmod_AddModuleToList
    functionSourceFile: /src/nss/lib/pk11wrap/pk11util.c
    functionUses: 0
    functionsReached:
    - SECMOD_GetWriteLock
    - SECMOD_ReleaseWriteLock
    - SECMOD_ReferenceModule
    - SECMOD_NewModuleListElement
    - SECMOD_AddList
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus secmod_AddModuleToList(SECMODModuleList **moduleList, SECMODModule
      *newModule)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECMOD_ReferenceModule
      Src: /src/nss/lib/pk11wrap/pk11util.c:147,1
    - Dst: secmod_AddModuleToList
      Src: /src/nss/lib/pk11wrap/pk11util.c:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - newModule
    argTypes:
    - SECMODModule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 143
    functionDepth: 3
    functionLinenumber: 143
    functionLinenumberEnd: 150
    functionName: SECMOD_AddModuleToList
    functionSourceFile: /src/nss/lib/pk11wrap/pk11util.c
    functionUses: 2
    functionsReached:
    - SECMOD_ReferenceModule
    - secmod_AddModuleToList
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SECMOD_AddModuleToList(SECMODModule *newModule)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECMOD_GetDefaultModDBFlag
      Src: /src/nss/lib/pk11wrap/pk11util.c:155,1
    - Dst: SECMOD_DestroyModule
      Src: /src/nss/lib/pk11wrap/pk11util.c:156,1
    - Dst: SECMOD_ReferenceModule
      Src: /src/nss/lib/pk11wrap/pk11util.c:157,1
    - Dst: SECMOD_ReferenceModule
      Src: /src/nss/lib/pk11wrap/pk11util.c:159,1
    - Dst: secmod_AddModuleToList
      Src: /src/nss/lib/pk11wrap/pk11util.c:161,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - newModule
    argTypes:
    - SECMODModule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 152
    functionDepth: 3
    functionLinenumber: 152
    functionLinenumberEnd: 162
    functionName: SECMOD_AddModuleToDBOnlyList
    functionSourceFile: /src/nss/lib/pk11wrap/pk11util.c
    functionUses: 1
    functionsReached:
    - SECMOD_ReferenceModule
    - SECMOD_GetDefaultModDBFlag
    - secmod_AddModuleToList
    - SECMOD_DestroyModule
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SECMOD_AddModuleToDBOnlyList(SECMODModule *newModule)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: secmod_AddModuleToList
      Src: /src/nss/lib/pk11wrap/pk11util.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - newModule
    argTypes:
    - SECMODModule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 164
    functionDepth: 3
    functionLinenumber: 164
    functionLinenumberEnd: 168
    functionName: SECMOD_AddModuleToUnloadList
    functionSourceFile: /src/nss/lib/pk11wrap/pk11util.c
    functionUses: 2
    functionsReached:
    - secmod_AddModuleToList
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SECMOD_AddModuleToUnloadList(SECMODModule *newModule)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 177
    functionName: SECMOD_GetDefaultModuleList
    functionSourceFile: /src/nss/lib/pk11wrap/pk11util.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: SECMODModuleList
    signature: 'SECMODModuleList *

      SECMOD_GetDefaultModuleList()'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 182
    functionName: SECMOD_GetDeadModuleList
    functionSourceFile: /src/nss/lib/pk11wrap/pk11util.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SECMODModuleList
    signature: 'SECMODModuleList *

      SECMOD_GetDeadModuleList()'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 187
    functionName: SECMOD_GetDBModuleList
    functionSourceFile: /src/nss/lib/pk11wrap/pk11util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECMODModuleList
    signature: 'SECMODModuleList *

      SECMOD_GetDBModuleList()'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 204
    functionName: SECMOD_GetDefaultModuleListLock
    functionSourceFile: /src/nss/lib/pk11wrap/pk11util.c
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: SECMODListLock
    signature: 'SECMODListLock *

      SECMOD_GetDefaultModuleListLock()'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11util.c:217,1
    - Dst: SECMOD_GetReadLock
      Src: /src/nss/lib/pk11wrap/pk11util.c:220,1
    - Dst: PORT_Strcmp
      Src: /src/nss/lib/pk11wrap/pk11util.c:222,1
    - Dst: SECMOD_ReferenceModule
      Src: /src/nss/lib/pk11wrap/pk11util.c:224,1
    - Dst: PORT_Strcmp
      Src: /src/nss/lib/pk11wrap/pk11util.c:232,1
    - Dst: SECMOD_ReferenceModule
      Src: /src/nss/lib/pk11wrap/pk11util.c:234,1
    - Dst: SECMOD_ReleaseReadLock
      Src: /src/nss/lib/pk11wrap/pk11util.c:240,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 243
    functionName: SECMOD_FindModule
    functionSourceFile: /src/nss/lib/pk11wrap/pk11util.c
    functionUses: 4
    functionsReached:
    - SECMOD_ReleaseReadLock
    - SECMOD_GetReadLock
    - PORT_SetError
    - SECMOD_ReferenceModule
    - PORT_Strcmp
    linkageType: ''
    returnType: SECMODModule
    signature: 'SECMODModule *

      SECMOD_FindModule(const char *name)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11util.c:256,1
    - Dst: SECMOD_GetReadLock
      Src: /src/nss/lib/pk11wrap/pk11util.c:259,1
    - Dst: SECMOD_ReferenceModule
      Src: /src/nss/lib/pk11wrap/pk11util.c:263,1
    - Dst: SECMOD_ReleaseReadLock
      Src: /src/nss/lib/pk11wrap/pk11util.c:267,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11util.c:269,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - id
    argTypes:
    - SECMODModuleID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 272
    functionName: SECMOD_FindModuleByID
    functionSourceFile: /src/nss/lib/pk11wrap/pk11util.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - SECMOD_ReferenceModule
    - SECMOD_GetReadLock
    - SECMOD_ReleaseReadLock
    linkageType: ''
    returnType: SECMODModule
    signature: 'SECMODModule *

      SECMOD_FindModuleByID(SECMODModuleID id)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SECMOD_GetReadLock
      Src: /src/nss/lib/pk11wrap/pk11util.c:283,1
    - Dst: SECMOD_ReferenceModule
      Src: /src/nss/lib/pk11wrap/pk11util.c:291,1
    - Dst: SECMOD_ReleaseReadLock
      Src: /src/nss/lib/pk11wrap/pk11util.c:295,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11util.c:297,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - funcPtr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 300
    functionName: secmod_FindModuleByFuncPtr
    functionSourceFile: /src/nss/lib/pk11wrap/pk11util.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    - SECMOD_ReferenceModule
    - SECMOD_GetReadLock
    - SECMOD_ReleaseReadLock
    linkageType: ''
    returnType: SECMODModule
    signature: 'SECMODModule *

      secmod_FindModuleByFuncPtr(void *funcPtr)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11util.c:312,1
    - Dst: SECMOD_GetReadLock
      Src: /src/nss/lib/pk11wrap/pk11util.c:315,1
    - Dst: PK11_ReferenceSlot
      Src: /src/nss/lib/pk11wrap/pk11util.c:320,1
    - Dst: SECMOD_ReleaseReadLock
      Src: /src/nss/lib/pk11wrap/pk11util.c:324,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11util.c:327,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - module
    - slotID
    argTypes:
    - SECMODModule*
    - CK_SLOT_ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 305
    functionDepth: 2
    functionLinenumber: 305
    functionLinenumberEnd: 330
    functionName: SECMOD_FindSlotByID
    functionSourceFile: /src/nss/lib/pk11wrap/pk11util.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - SECMOD_GetReadLock
    - SECMOD_ReleaseReadLock
    - PK11_ReferenceSlot
    linkageType: ''
    returnType: PK11SlotInfo
    signature: 'PK11SlotInfo *

      SECMOD_FindSlotByID(SECMODModule *module, CK_SLOT_ID slotID)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECMOD_FindModuleByID
      Src: /src/nss/lib/pk11wrap/pk11util.c:341,1
    - Dst: SECMOD_FindSlotByID
      Src: /src/nss/lib/pk11wrap/pk11util.c:345,1
    - Dst: SECMOD_DestroyModule
      Src: /src/nss/lib/pk11wrap/pk11util.c:346,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - moduleID
    - slotID
    argTypes:
    - SECMODModuleID
    - CK_SLOT_ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 335
    functionDepth: 3
    functionLinenumber: 335
    functionLinenumberEnd: 348
    functionName: SECMOD_LookupSlot
    functionSourceFile: /src/nss/lib/pk11wrap/pk11util.c
    functionUses: 0
    functionsReached:
    - SECMOD_FindSlotByID
    - SECMOD_FindModuleByID
    - SECMOD_DestroyModule
    linkageType: ''
    returnType: PK11SlotInfo
    signature: 'PK11SlotInfo *

      SECMOD_LookupSlot(SECMODModuleID moduleID, CK_SLOT_ID slotID)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11util.c:363,1
    - Dst: SECMOD_GetWriteLock
      Src: /src/nss/lib/pk11wrap/pk11util.c:369,1
    - Dst: PORT_Strcmp
      Src: /src/nss/lib/pk11wrap/pk11util.c:372,1
    - Dst: SECMOD_RemoveList
      Src: /src/nss/lib/pk11wrap/pk11util.c:376,1
    - Dst: STAN_RemoveModuleFromDefaultTrustDomain
      Src: /src/nss/lib/pk11wrap/pk11util.c:378,1
    - Dst: PORT_Strcmp
      Src: /src/nss/lib/pk11wrap/pk11util.c:393,1
    - Dst: SECMOD_RemoveList
      Src: /src/nss/lib/pk11wrap/pk11util.c:397,1
    - Dst: SECMOD_ReleaseWriteLock
      Src: /src/nss/lib/pk11wrap/pk11util.c:408,1
    - Dst: SECMOD_DeletePermDB
      Src: /src/nss/lib/pk11wrap/pk11util.c:412,1
    - Dst: SECMOD_DestroyModuleListElement
      Src: /src/nss/lib/pk11wrap/pk11util.c:414,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 49
    argCount: 4
    argNames:
    - name
    - mod
    - type
    - permdb
    argTypes:
    - char*
    - SECMODModule*
    - int*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 354
    functionDepth: 3
    functionLinenumber: 354
    functionLinenumberEnd: 417
    functionName: SECMOD_DeleteModuleEx
    functionSourceFile: /src/nss/lib/pk11wrap/pk11util.c
    functionUses: 1
    functionsReached:
    - SECMOD_GetWriteLock
    - SECMOD_ReleaseWriteLock
    - SECMOD_DestroyModuleListElement
    - SECMOD_DeletePermDB
    - PORT_SetError
    - SECMOD_RemoveList
    - PORT_Strcmp
    - STAN_RemoveModuleFromDefaultTrustDomain
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SECMOD_DeleteModuleEx(const char *name, SECMODModule *mod,\n
      \                     int *type, PRBool permdb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECMOD_DeleteModuleEx
      Src: /src/nss/lib/pk11wrap/pk11util.c:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - type
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 422
    functionDepth: 4
    functionLinenumber: 422
    functionLinenumberEnd: 426
    functionName: SECMOD_DeleteModule
    functionSourceFile: /src/nss/lib/pk11wrap/pk11util.c
    functionUses: 1
    functionsReached:
    - SECMOD_DeleteModuleEx
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SECMOD_DeleteModule(const char *name, int *type)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: SECMOD_GetSystemFIPSEnabled
      Src: /src/nss/lib/pk11wrap/pk11util.c:440,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11util.c:441,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11util.c:445,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11util.c:450,1
    - Dst: SECMOD_GetWriteLock
      Src: /src/nss/lib/pk11wrap/pk11util.c:453,1
    - Dst: PORT_Strcmp
      Src: /src/nss/lib/pk11wrap/pk11util.c:456,1
    - Dst: SECMOD_RemoveList
      Src: /src/nss/lib/pk11wrap/pk11util.c:459,1
    - Dst: STAN_RemoveModuleFromDefaultTrustDomain
      Src: /src/nss/lib/pk11wrap/pk11util.c:460,1
    - Dst: SECMOD_ReleaseWriteLock
      Src: /src/nss/lib/pk11wrap/pk11util.c:465,1
    - Dst: SECMOD_CreateModule
      Src: /src/nss/lib/pk11wrap/pk11util.c:471,1
    - Dst: SECMOD_CreateModule
      Src: /src/nss/lib/pk11wrap/pk11util.c:474,1
    - Dst: PORT_ArenaStrdup
      Src: /src/nss/lib/pk11wrap/pk11util.c:480,1
    - Dst: pk11_SwapInternalKeySlot
      Src: /src/nss/lib/pk11wrap/pk11util.c:482,1
    - Dst: secmod_SetInternalKeySlotFlag
      Src: /src/nss/lib/pk11wrap/pk11util.c:484,1
    - Dst: SECMOD_AddModule
      Src: /src/nss/lib/pk11wrap/pk11util.c:486,1
    - Dst: pk11_SetInternalKeySlot
      Src: /src/nss/lib/pk11wrap/pk11util.c:489,1
    - Dst: SECMOD_DestroyModule
      Src: /src/nss/lib/pk11wrap/pk11util.c:490,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11util.c:495,1
    - Dst: SECMOD_GetWriteLock
      Src: /src/nss/lib/pk11wrap/pk11util.c:503,1
    - Dst: SECMOD_AddList
      Src: /src/nss/lib/pk11wrap/pk11util.c:511,1
    - Dst: SECMOD_ReleaseWriteLock
      Src: /src/nss/lib/pk11wrap/pk11util.c:513,1
    - Dst: SECMOD_DestroyModule
      Src: /src/nss/lib/pk11wrap/pk11util.c:518,1
    - Dst: SECMOD_DeletePermDB
      Src: /src/nss/lib/pk11wrap/pk11util.c:519,1
    - Dst: SECMOD_DestroyModuleListElement
      Src: /src/nss/lib/pk11wrap/pk11util.c:520,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 65
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 431
    functionDepth: 4
    functionLinenumber: 431
    functionLinenumberEnd: 525
    functionName: SECMOD_DeleteInternalModule
    functionSourceFile: /src/nss/lib/pk11wrap/pk11util.c
    functionUses: 2
    functionsReached:
    - secmod_SetInternalKeySlotFlag
    - SECMOD_GetWriteLock
    - SECMOD_ReleaseWriteLock
    - PORT_ArenaStrdup
    - SECMOD_AddList
    - SECMOD_DeletePermDB
    - SECMOD_DestroyModuleListElement
    - pk11_SwapInternalKeySlot
    - SECMOD_DestroyModule
    - PORT_SetError
    - SECMOD_RemoveList
    - SECMOD_CreateModule
    - pk11_SetInternalKeySlot
    - SECMOD_AddModule
    - PORT_Strcmp
    - PK11_FreeSlot
    - SECMOD_GetSystemFIPSEnabled
    - STAN_RemoveModuleFromDefaultTrustDomain
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SECMOD_DeleteInternalModule(const char *name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SECMOD_FindModule
      Src: /src/nss/lib/pk11wrap/pk11util.c:538,1
    - Dst: SECMOD_DestroyModule
      Src: /src/nss/lib/pk11wrap/pk11util.c:539,1
    - Dst: secmod_LoadPKCS11Module
      Src: /src/nss/lib/pk11wrap/pk11util.c:544,1
    - Dst: SECMOD_ReferenceModule
      Src: /src/nss/lib/pk11wrap/pk11util.c:550,1
    - Dst: SECMOD_AddPermDB
      Src: /src/nss/lib/pk11wrap/pk11util.c:553,1
    - Dst: SECMOD_AddModuleToList
      Src: /src/nss/lib/pk11wrap/pk11util.c:554,1
    - Dst: STAN_AddModuleToDefaultTrustDomain
      Src: /src/nss/lib/pk11wrap/pk11util.c:556,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - newModule
    argTypes:
    - SECMODModule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 527
    functionDepth: 8
    functionLinenumber: 527
    functionLinenumberEnd: 559
    functionName: SECMOD_AddModule
    functionSourceFile: /src/nss/lib/pk11wrap/pk11util.c
    functionUses: 1
    functionsReached:
    - secmod_LoadPKCS11Module
    - STAN_AddModuleToDefaultTrustDomain
    - SECMOD_AddPermDB
    - SECMOD_DestroyModule
    - SECMOD_FindModule
    - SECMOD_ReferenceModule
    - SECMOD_AddModuleToList
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SECMOD_AddModule(SECMODModule *newModule)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11util.c:569,1
    - Dst: SECMOD_GetReadLock
      Src: /src/nss/lib/pk11wrap/pk11util.c:572,1
    - Dst: PK11_IsPresent
      Src: /src/nss/lib/pk11wrap/pk11util.c:576,1
    - Dst: PK11_GetTokenName
      Src: /src/nss/lib/pk11wrap/pk11util.c:577,1
    - Dst: PK11_GetSlotName
      Src: /src/nss/lib/pk11wrap/pk11util.c:579,1
    - Dst: PORT_Strcmp
      Src: /src/nss/lib/pk11wrap/pk11util.c:581,1
    - Dst: PK11_ReferenceSlot
      Src: /src/nss/lib/pk11wrap/pk11util.c:582,1
    - Dst: SECMOD_ReleaseReadLock
      Src: /src/nss/lib/pk11wrap/pk11util.c:586,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11util.c:589,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - module
    - name
    argTypes:
    - SECMODModule*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 561
    functionDepth: 6
    functionLinenumber: 561
    functionLinenumberEnd: 592
    functionName: SECMOD_FindSlot
    functionSourceFile: /src/nss/lib/pk11wrap/pk11util.c
    functionUses: 0
    functionsReached:
    - SECMOD_ReleaseReadLock
    - PK11_GetTokenName
    - PK11_GetSlotName
    - SECMOD_GetReadLock
    - PK11_IsPresent
    - PORT_SetError
    - PK11_ReferenceSlot
    - PORT_Strcmp
    linkageType: ''
    returnType: PK11SlotInfo
    signature: 'PK11SlotInfo *

      SECMOD_FindSlot(SECMODModule *module, const char *name)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11util.c:601,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11util.c:603,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11util.c:603,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - mod
    - info
    argTypes:
    - SECMODModule*
    - CK_INFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 594
    functionDepth: 1
    functionLinenumber: 594
    functionLinenumberEnd: 606
    functionName: PK11_GetModInfo
    functionSourceFile: /src/nss/lib/pk11wrap/pk11util.c
    functionUses: 2
    functionsReached:
    - PORT_SetError
    - PK11_GETTAB
    - PK11_MapError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11_GetModInfo(SECMODModule *mod, CK_INFO *info)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetModInfo
      Src: /src/nss/lib/pk11wrap/pk11util.c:618,1
    - Dst: PK11_MakeString
      Src: /src/nss/lib/pk11wrap/pk11util.c:622,1
    - Dst: PK11_MakeString
      Src: /src/nss/lib/pk11wrap/pk11util.c:630,1
    - Dst: PR_snprintf
      Src: /src/nss/lib/pk11wrap/pk11util.c:638,1
    - Dst: PK11URI_CreateURI
      Src: /src/nss/lib/pk11wrap/pk11util.c:644,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11util.c:646,1
    - Dst: PK11URI_FormatURI
      Src: /src/nss/lib/pk11wrap/pk11util.c:650,1
    - Dst: PK11URI_DestroyURI
      Src: /src/nss/lib/pk11wrap/pk11util.c:651,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11util.c:653,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 1
    argNames:
    - mod
    argTypes:
    - SECMODModule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 608
    functionDepth: 2
    functionLinenumber: 608
    functionLinenumberEnd: 658
    functionName: PK11_GetModuleURI
    functionSourceFile: /src/nss/lib/pk11wrap/pk11util.c
    functionUses: 1
    functionsReached:
    - PR_snprintf
    - PK11URI_DestroyURI
    - PK11_GetModInfo
    - PK11URI_FormatURI
    - PK11URI_CreateURI
    - PORT_SetError
    - PK11_MakeString
    linkageType: ''
    returnType: char
    signature: 'char *

      PK11_GetModuleURI(SECMODModule *mod)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECMOD_GetInternalModule
      Src: /src/nss/lib/pk11wrap/pk11util.c:667,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 664
    functionDepth: 1
    functionLinenumber: 664
    functionLinenumberEnd: 674
    functionName: PK11_IsFIPS
    functionSourceFile: /src/nss/lib/pk11wrap/pk11util.c
    functionUses: 7
    functionsReached:
    - SECMOD_GetInternalModule
    linkageType: ''
    returnType: PRBool
    signature: PRBool PK11_IsFIPS(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PR_SetErrorText
      Src: /src/nss/lib/pk11wrap/pk11util.c:690,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11util.c:692,1
    - Dst: SECMOD_CreateModule
      Src: /src/nss/lib/pk11wrap/pk11util.c:696,1
    - Dst: SECMOD_AddModule
      Src: /src/nss/lib/pk11wrap/pk11util.c:704,1
    - Dst: SECMOD_GetReadLock
      Src: /src/nss/lib/pk11wrap/pk11util.c:709,1
    - Dst: PK11_UpdateSlotAttribute
      Src: /src/nss/lib/pk11wrap/pk11util.c:718,1
    - Dst: SECMOD_ReleaseReadLock
      Src: /src/nss/lib/pk11wrap/pk11util.c:721,1
    - Dst: SECMOD_DestroyModule
      Src: /src/nss/lib/pk11wrap/pk11util.c:722,1
    - Dst: PK11_UserDisableSlot
      Src: /src/nss/lib/pk11wrap/pk11util.c:728,1
    - Dst: SECMOD_ReleaseReadLock
      Src: /src/nss/lib/pk11wrap/pk11util.c:731,1
    - Dst: SECMOD_UpdateModule
      Src: /src/nss/lib/pk11wrap/pk11util.c:735,1
    - Dst: SECMOD_DestroyModule
      Src: /src/nss/lib/pk11wrap/pk11util.c:739,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 6
    argNames:
    - moduleName
    - dllPath
    - defaultMechanismFlags
    - cipherEnableFlags
    - modparms
    - nssparms
    argTypes:
    - char*
    - char*
    - unsigned long
    - unsigned long
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 679
    functionDepth: 9
    functionLinenumber: 679
    functionLinenumberEnd: 741
    functionName: SECMOD_AddNewModuleEx
    functionSourceFile: /src/nss/lib/pk11wrap/pk11util.c
    functionUses: 1
    functionsReached:
    - SECMOD_ReleaseReadLock
    - SECMOD_GetReadLock
    - SECMOD_UpdateModule
    - PR_SetErrorText
    - SECMOD_DestroyModule
    - PORT_SetError
    - SECMOD_CreateModule
    - PK11_UserDisableSlot
    - PK11_UpdateSlotAttribute
    - SECMOD_AddModule
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SECMOD_AddNewModuleEx(const char *moduleName, const char
      *dllPath,\n                      unsigned long defaultMechanismFlags,\n                      unsigned
      long cipherEnableFlags,\n                      char *modparms, char *nssparms)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECMOD_AddNewModuleEx
      Src: /src/nss/lib/pk11wrap/pk11util.c:748,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - moduleName
    - dllPath
    - defaultMechanismFlags
    - cipherEnableFlags
    argTypes:
    - char*
    - char*
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 743
    functionDepth: 10
    functionLinenumber: 743
    functionLinenumberEnd: 751
    functionName: SECMOD_AddNewModule
    functionSourceFile: /src/nss/lib/pk11wrap/pk11util.c
    functionUses: 4
    functionsReached:
    - SECMOD_AddNewModuleEx
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SECMOD_AddNewModule(const char *moduleName, const char *dllPath,\n
      \                   unsigned long defaultMechanismFlags,\n                    unsigned
      long cipherEnableFlags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECMOD_DeletePermDB
      Src: /src/nss/lib/pk11wrap/pk11util.c:758,1
    - Dst: SECMOD_AddPermDB
      Src: /src/nss/lib/pk11wrap/pk11util.c:761,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - module
    argTypes:
    - SECMODModule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 753
    functionDepth: 3
    functionLinenumber: 753
    functionLinenumberEnd: 764
    functionName: SECMOD_UpdateModule
    functionSourceFile: /src/nss/lib/pk11wrap/pk11util.c
    functionUses: 6
    functionsReached:
    - SECMOD_DeletePermDB
    - SECMOD_AddPermDB
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SECMOD_UpdateModule(SECMODModule *module)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - publicFlags
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 773
    functionDepth: 0
    functionLinenumber: 773
    functionLinenumberEnd: 783
    functionName: SECMOD_PubMechFlagstoInternal
    functionSourceFile: /src/nss/lib/pk11wrap/pk11util.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long SECMOD_PubMechFlagstoInternal(unsigned long publicFlags)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - internalFlags
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 785
    functionDepth: 0
    functionLinenumber: 785
    functionLinenumberEnd: 795
    functionName: SECMOD_InternaltoPubMechFlags
    functionSourceFile: /src/nss/lib/pk11wrap/pk11util.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long SECMOD_InternaltoPubMechFlags(unsigned long internalFlags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - publicFlags
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 800
    functionDepth: 0
    functionLinenumber: 800
    functionLinenumberEnd: 804
    functionName: SECMOD_PubCipherFlagstoInternal
    functionSourceFile: /src/nss/lib/pk11wrap/pk11util.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long SECMOD_PubCipherFlagstoInternal(unsigned long publicFlags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - internalFlags
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 806
    functionDepth: 0
    functionLinenumber: 806
    functionLinenumberEnd: 810
    functionName: SECMOD_InternaltoPubCipherFlags
    functionSourceFile: /src/nss/lib/pk11wrap/pk11util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long SECMOD_InternaltoPubCipherFlags(unsigned long internalFlags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11util.c:820,1
    - Dst: SECMOD_GetReadLock
      Src: /src/nss/lib/pk11wrap/pk11util.c:823,1
    - Dst: SECMOD_GetDefaultModuleList
      Src: /src/nss/lib/pk11wrap/pk11util.c:824,1
    - Dst: SECMOD_PubCipherFlagstoInternal
      Src: /src/nss/lib/pk11wrap/pk11util.c:827,1
    - Dst: SECMOD_ReleaseReadLock
      Src: /src/nss/lib/pk11wrap/pk11util.c:832,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - pubCipherEnableFlags
    argTypes:
    - unsigned long int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 813
    functionDepth: 1
    functionLinenumber: 813
    functionLinenumberEnd: 834
    functionName: SECMOD_IsModulePresent
    functionSourceFile: /src/nss/lib/pk11wrap/pk11util.c
    functionUses: 0
    functionsReached:
    - SECMOD_ReleaseReadLock
    - SECMOD_GetReadLock
    - PORT_SetError
    - SECMOD_GetDefaultModuleList
    - SECMOD_PubCipherFlagstoInternal
    linkageType: ''
    returnType: PRBool
    signature: PRBool SECMOD_IsModulePresent(unsigned long int pubCipherEnableFlags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Alloc
      Src: /src/nss/lib/pk11wrap/pk11util.c:842,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 837
    functionDepth: 0
    functionLinenumber: 837
    functionLinenumberEnd: 848
    functionName: SECMOD_NewModuleListElement
    functionSourceFile: /src/nss/lib/pk11wrap/pk11util.c
    functionUses: 1
    functionsReached:
    - PORT_Alloc
    linkageType: ''
    returnType: SECMODModuleList
    signature: 'SECMODModuleList *

      SECMOD_NewModuleListElement(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/pk11wrap/pk11util.c:856,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11util.c:857,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/pk11wrap/pk11util.c:860,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - module
    argTypes:
    - SECMODModule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 853
    functionDepth: 1
    functionLinenumber: 853
    functionLinenumberEnd: 862
    functionName: SECMOD_ReferenceModule
    functionSourceFile: /src/nss/lib/pk11wrap/pk11util.c
    functionUses: 8
    functionsReached:
    - PORT_Assert
    - PZ_Lock
    - PZ_Unlock
    linkageType: ''
    returnType: SECMODModule
    signature: 'SECMODModule *

      SECMOD_ReferenceModule(SECMODModule *module)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/pk11wrap/pk11util.c:872,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11util.c:876,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/pk11wrap/pk11util.c:877,1
    - Dst: SECMOD_DestroyModule
      Src: /src/nss/lib/pk11wrap/pk11util.c:887,1
    - Dst: SECMOD_SlotDestroyModule
      Src: /src/nss/lib/pk11wrap/pk11util.c:894,1
    - Dst: PK11_ClearSlotList
      Src: /src/nss/lib/pk11wrap/pk11util.c:902,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11util.c:904,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - module
    argTypes:
    - SECMODModule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 865
    functionDepth: 5
    functionLinenumber: 865
    functionLinenumberEnd: 908
    functionName: SECMOD_DestroyModule
    functionSourceFile: /src/nss/lib/pk11wrap/pk11util.c
    functionUses: 18
    functionsReached:
    - PORT_Assert
    - SECMOD_SlotDestroyModule
    - PZ_Unlock
    - SECMOD_DestroyModule
    - PZ_Lock
    - PK11_FreeSlot
    - PK11_ClearSlotList
    linkageType: ''
    returnType: void
    signature: void SECMOD_DestroyModule(SECMODModule *module)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11util.c:917,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/pk11wrap/pk11util.c:918,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11util.c:922,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/pk11wrap/pk11util.c:923,1
    - Dst: SECMOD_UnloadModule
      Src: /src/nss/lib/pk11wrap/pk11util.c:933,1
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/pk11wrap/pk11util.c:935,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pk11wrap/pk11util.c:936,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - module
    - fromSlot
    argTypes:
    - SECMODModule*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 912
    functionDepth: 2
    functionLinenumber: 912
    functionLinenumberEnd: 938
    functionName: SECMOD_SlotDestroyModule
    functionSourceFile: /src/nss/lib/pk11wrap/pk11util.c
    functionUses: 2
    functionsReached:
    - PORT_Assert
    - PORT_FreeArena
    - PZ_Unlock
    - SECMOD_UnloadModule
    - PZ_Lock
    - PZ_DestroyLock
    linkageType: ''
    returnType: void
    signature: void SECMOD_SlotDestroyModule(SECMODModule *module, PRBool fromSlot)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECMOD_DestroyModule
      Src: /src/nss/lib/pk11wrap/pk11util.c:950,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11util.c:953,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - element
    argTypes:
    - SECMODModuleList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 944
    functionDepth: 6
    functionLinenumber: 944
    functionLinenumberEnd: 955
    functionName: SECMOD_DestroyModuleListElement
    functionSourceFile: /src/nss/lib/pk11wrap/pk11util.c
    functionUses: 2
    functionsReached:
    - PORT_Free
    - SECMOD_DestroyModule
    linkageType: ''
    returnType: SECMODModuleList
    signature: 'SECMODModuleList *

      SECMOD_DestroyModuleListElement(SECMODModuleList *element)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECMOD_DestroyModuleListElement
      Src: /src/nss/lib/pk11wrap/pk11util.c:965,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - list
    argTypes:
    - SECMODModuleList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 960
    functionDepth: 7
    functionLinenumber: 960
    functionLinenumberEnd: 967
    functionName: SECMOD_DestroyModuleList
    functionSourceFile: /src/nss/lib/pk11wrap/pk11util.c
    functionUses: 1
    functionsReached:
    - SECMOD_DestroyModuleListElement
    linkageType: ''
    returnType: void
    signature: void SECMOD_DestroyModuleList(SECMODModuleList *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECMOD_GetSystemFIPSEnabled
      Src: /src/nss/lib/pk11wrap/pk11util.c:975,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 969
    functionDepth: 2
    functionLinenumber: 969
    functionLinenumberEnd: 977
    functionName: SECMOD_CanDeleteInternalModule
    functionSourceFile: /src/nss/lib/pk11wrap/pk11util.c
    functionUses: 0
    functionsReached:
    - SECMOD_GetSystemFIPSEnabled
    linkageType: ''
    returnType: PRBool
    signature: PRBool SECMOD_CanDeleteInternalModule(void)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11util.c:1002,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/pk11wrap/pk11util.c:1008,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11util.c:1011,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11util.c:1013,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11util.c:1013,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/pk11wrap/pk11util.c:1019,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11util.c:1024,1
    - Dst: PORT_NewArray
      Src: /src/nss/lib/pk11wrap/pk11util.c:1029,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11util.c:1034,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11util.c:1036,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11util.c:1036,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/pk11wrap/pk11util.c:1040,1
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/pk11wrap/pk11util.c:1041,1
    - Dst: PORT_ArenaZNewArray
      Src: /src/nss/lib/pk11wrap/pk11util.c:1045,1
    - Dst: SECMOD_FindSlotByID
      Src: /src/nss/lib/pk11wrap/pk11util.c:1051,1
    - Dst: PK11_NewSlotInfo
      Src: /src/nss/lib/pk11wrap/pk11util.c:1055,1
    - Dst: PK11_InitSlot
      Src: /src/nss/lib/pk11wrap/pk11util.c:1059,1
    - Dst: STAN_InitTokenForSlotInfo
      Src: /src/nss/lib/pk11wrap/pk11util.c:1060,1
    - Dst: STAN_ResetTokenInterator
      Src: /src/nss/lib/pk11wrap/pk11util.c:1064,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11util.c:1065,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/pk11wrap/pk11util.c:1067,1
    - Dst: SECMOD_GetWriteLock
      Src: /src/nss/lib/pk11wrap/pk11util.c:1074,1
    - Dst: SECMOD_ReleaseWriteLock
      Src: /src/nss/lib/pk11wrap/pk11util.c:1081,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11util.c:1084,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/pk11wrap/pk11util.c:1090,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11util.c:1093,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11util.c:1104,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pk11wrap/pk11util.c:1109,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 87
    argCount: 1
    argNames:
    - mod
    argTypes:
    - SECMODModule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1112
      start: 989
    functionDepth: 5
    functionLinenumber: 989
    functionLinenumberEnd: 1112
    functionName: SECMOD_UpdateSlotList
    functionSourceFile: /src/nss/lib/pk11wrap/pk11util.c
    functionUses: 0
    functionsReached:
    - PORT_ArenaZNewArray
    - PZ_Unlock
    - PORT_ArenaMark
    - PORT_ArenaUnmark
    - STAN_ResetTokenInterator
    - SECMOD_GetWriteLock
    - SECMOD_ReleaseWriteLock
    - PORT_ArenaRelease
    - PORT_SetError
    - STAN_InitTokenForSlotInfo
    - PK11_InitSlot
    - SECMOD_FindSlotByID
    - PK11_FreeSlot
    - PORT_Free
    - PK11_GETTAB
    - PORT_NewArray
    - PZ_Lock
    - PK11_NewSlotInfo
    - PK11_MapError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SECMOD_UpdateSlotList(SECMODModule *mod)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11util.c:1128,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/pk11wrap/pk11util.c:1131,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/pk11wrap/pk11util.c:1134,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11util.c:1135,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/pk11wrap/pk11util.c:1140,1
    - Dst: SECMOD_UpdateSlotList
      Src: /src/nss/lib/pk11wrap/pk11util.c:1142,1
    - Dst: SECMOD_GetReadLock
      Src: /src/nss/lib/pk11wrap/pk11util.c:1145,1
    - Dst: PK11_IsPresent
      Src: /src/nss/lib/pk11wrap/pk11util.c:1159,1
    - Dst: SECMOD_ReleaseReadLock
      Src: /src/nss/lib/pk11wrap/pk11util.c:1163,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/pk11wrap/pk11util.c:1164,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/pk11wrap/pk11util.c:1166,1
    - Dst: PK11_ReferenceSlot
      Src: /src/nss/lib/pk11wrap/pk11util.c:1167,1
    - Dst: SECMOD_ReleaseReadLock
      Src: /src/nss/lib/pk11wrap/pk11util.c:1170,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/pk11wrap/pk11util.c:1174,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/pk11wrap/pk11util.c:1178,1
    - Dst: PR_Sleep
      Src: /src/nss/lib/pk11wrap/pk11util.c:1181,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/pk11wrap/pk11util.c:1182,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/pk11wrap/pk11util.c:1185,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11util.c:1186,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 51
    argCount: 3
    argNames:
    - mod
    - flags
    - latency
    argTypes:
    - SECMODModule*
    - unsigned long
    - PRIntervalTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1188
      start: 1119
    functionDepth: 6
    functionLinenumber: 1119
    functionLinenumberEnd: 1188
    functionName: secmod_HandleWaitForSlotEvent
    functionSourceFile: /src/nss/lib/pk11wrap/pk11util.c
    functionUses: 0
    functionsReached:
    - SECMOD_ReleaseReadLock
    - SECMOD_GetReadLock
    - PK11_IsPresent
    - PZ_Unlock
    - SECMOD_UpdateSlotList
    - PORT_SetError
    - PR_Sleep
    - PZ_Lock
    - PK11_ReferenceSlot
    linkageType: ''
    returnType: PK11SlotInfo
    signature: "PK11SlotInfo *\nsecmod_HandleWaitForSlotEvent(SECMODModule *mod, unsigned
      long flags,\n                              PRIntervalTime latency)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: pk11_getFinalizeModulesOption
      Src: /src/nss/lib/pk11wrap/pk11util.c:1204,1
    - Dst: secmod_HandleWaitForSlotEvent
      Src: /src/nss/lib/pk11wrap/pk11util.c:1211,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/pk11wrap/pk11util.c:1214,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/pk11wrap/pk11util.c:1219,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11util.c:1220,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/pk11wrap/pk11util.c:1221,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/pk11wrap/pk11util.c:1228,1
    - Dst: secmod_HandleWaitForSlotEvent
      Src: /src/nss/lib/pk11wrap/pk11util.c:1231,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11util.c:1239,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11util.c:1241,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11util.c:1241,1
    - Dst: SECMOD_FindSlotByID
      Src: /src/nss/lib/pk11wrap/pk11util.c:1245,1
    - Dst: SECMOD_UpdateSlotList
      Src: /src/nss/lib/pk11wrap/pk11util.c:1248,1
    - Dst: SECMOD_FindSlotByID
      Src: /src/nss/lib/pk11wrap/pk11util.c:1249,1
    - Dst: PK11Slot_GetNSSToken
      Src: /src/nss/lib/pk11wrap/pk11util.c:1254,1
    - Dst: nssSlot_ResetDelay
      Src: /src/nss/lib/pk11wrap/pk11util.c:1257,1
    - Dst: nssToken_Destroy
      Src: /src/nss/lib/pk11wrap/pk11util.c:1259,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/pk11wrap/pk11util.c:1267,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11util.c:1268,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 50
    argCount: 3
    argNames:
    - mod
    - flags
    - latency
    argTypes:
    - SECMODModule*
    - unsigned long
    - PRIntervalTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1270
      start: 1196
    functionDepth: 7
    functionLinenumber: 1196
    functionLinenumberEnd: 1270
    functionName: SECMOD_WaitForAnyTokenEvent
    functionSourceFile: /src/nss/lib/pk11wrap/pk11util.c
    functionUses: 0
    functionsReached:
    - SECMOD_FindSlotByID
    - nssSlot_ResetDelay
    - nssToken_Destroy
    - PZ_Unlock
    - secmod_HandleWaitForSlotEvent
    - SECMOD_UpdateSlotList
    - PORT_SetError
    - PK11_GETTAB
    - pk11_getFinalizeModulesOption
    - PZ_Lock
    - PK11Slot_GetNSSToken
    - PK11_MapError
    linkageType: ''
    returnType: PK11SlotInfo
    signature: "PK11SlotInfo *\nSECMOD_WaitForAnyTokenEvent(SECMODModule *mod, unsigned
      long flags,\n                            PRIntervalTime latency)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/pk11wrap/pk11util.c:1285,1
    - Dst: pk11_getFinalizeModulesOption
      Src: /src/nss/lib/pk11wrap/pk11util.c:1289,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11util.c:1291,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11util.c:1292,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11util.c:1301,1
    - Dst: secmod_ModuleInit
      Src: /src/nss/lib/pk11wrap/pk11util.c:1306,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11util.c:1310,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11util.c:1310,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/pk11wrap/pk11util.c:1319,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 1
    argNames:
    - mod
    argTypes:
    - SECMODModule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1321
      start: 1278
    functionDepth: 6
    functionLinenumber: 1278
    functionLinenumberEnd: 1321
    functionName: SECMOD_CancelWait
    functionSourceFile: /src/nss/lib/pk11wrap/pk11util.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - secmod_ModuleInit
    - PZ_Unlock
    - PORT_SetError
    - PK11_GETTAB
    - pk11_getFinalizeModulesOption
    - PZ_Lock
    - PK11_MapError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SECMOD_CancelWait(SECMODModule *mod)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11util.c:1332,1
    - Dst: SECMOD_GetReadLock
      Src: /src/nss/lib/pk11wrap/pk11util.c:1335,1
    - Dst: SECMOD_LockedModuleHasRemovableSlots
      Src: /src/nss/lib/pk11wrap/pk11util.c:1336,1
    - Dst: SECMOD_ReleaseReadLock
      Src: /src/nss/lib/pk11wrap/pk11util.c:1337,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - mod
    argTypes:
    - SECMODModule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1339
      start: 1327
    functionDepth: 1
    functionLinenumber: 1327
    functionLinenumberEnd: 1339
    functionName: SECMOD_HasRemovableSlots
    functionSourceFile: /src/nss/lib/pk11wrap/pk11util.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - SECMOD_GetReadLock
    - SECMOD_ReleaseReadLock
    - SECMOD_LockedModuleHasRemovableSlots
    linkageType: ''
    returnType: PRBool
    signature: PRBool SECMOD_HasRemovableSlots(SECMODModule *mod)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - mod
    argTypes:
    - SECMODModule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1361
      start: 1341
    functionDepth: 0
    functionLinenumber: 1341
    functionLinenumberEnd: 1361
    functionName: SECMOD_LockedModuleHasRemovableSlots
    functionSourceFile: /src/nss/lib/pk11wrap/pk11util.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool SECMOD_LockedModuleHasRemovableSlots(SECMODModule *mod)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11util.c:1375,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11util.c:1377,1
    - Dst: strlen
      Src: /src/nss/lib/pk11wrap/pk11util.c:1378,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11util.c:1381,1
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11util.c:1383,1
    - Dst: PK11_CreateNewObject
      Src: /src/nss/lib/pk11wrap/pk11util.c:1384,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11util.c:1386,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11util.c:1389,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11util.c:1389,1
    - Dst: SECMOD_UpdateSlotList
      Src: /src/nss/lib/pk11wrap/pk11util.c:1392,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - slot
    - objClass
    - sendSpec
    argTypes:
    - PK11SlotInfo*
    - CK_OBJECT_CLASS
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1393
      start: 1366
    functionDepth: 6
    functionLinenumber: 1366
    functionLinenumberEnd: 1393
    functionName: secmod_UserDBOp
    functionSourceFile: /src/nss/lib/pk11wrap/pk11util.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SECMOD_UpdateSlotList
    - PORT_SetError
    - PK11_SETATTRS
    - PK11_CreateNewObject
    - PK11_EnterSlotMonitor
    - PK11_ExitSlotMonitor
    - PK11_MapError
    - strlen
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus secmod_UserDBOp(PK11SlotInfo *slot, CK_OBJECT_CLASS objClass,\n
      \               const char *sendSpec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECMOD_LookupSlot
      Src: /src/nss/lib/pk11wrap/pk11util.c:1401,1
    - Dst: PK11_IsPresent
      Src: /src/nss/lib/pk11wrap/pk11util.c:1403,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11util.c:1404,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - mod
    - slotID
    argTypes:
    - SECMODModule*
    - CK_SLOT_ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1411
      start: 1398
    functionDepth: 6
    functionLinenumber: 1398
    functionLinenumberEnd: 1411
    functionName: secmod_SlotIsEmpty
    functionSourceFile: /src/nss/lib/pk11wrap/pk11util.c
    functionUses: 0
    functionsReached:
    - PK11_IsPresent
    - SECMOD_LookupSlot
    - PK11_FreeSlot
    linkageType: ''
    returnType: PRBool
    signature: PRBool secmod_SlotIsEmpty(SECMODModule *mod, CK_SLOT_ID slotID)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: secmod_SlotIsEmpty
      Src: /src/nss/lib/pk11wrap/pk11util.c:1430,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11util.c:1434,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - mod
    argTypes:
    - SECMODModule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1436
      start: 1416
    functionDepth: 7
    functionLinenumber: 1416
    functionLinenumberEnd: 1436
    functionName: secmod_FindFreeSlot
    functionSourceFile: /src/nss/lib/pk11wrap/pk11util.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - secmod_SlotIsEmpty
    linkageType: ''
    returnType: CK_SLOT_ID
    signature: CK_SLOT_ID secmod_FindFreeSlot(SECMODModule *mod)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: secmod_FindFreeSlot
      Src: /src/nss/lib/pk11wrap/pk11util.c:1461,1
    - Dst: PK11_ReferenceSlot
      Src: /src/nss/lib/pk11wrap/pk11util.c:1471,1
    - Dst: NSSUTIL_DoubleEscape
      Src: /src/nss/lib/pk11wrap/pk11util.c:1477,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11util.c:1479,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/pk11wrap/pk11util.c:1482,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11util.c:1483,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11util.c:1487,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11util.c:1488,1
    - Dst: secmod_UserDBOp
      Src: /src/nss/lib/pk11wrap/pk11util.c:1491,1
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/pk11wrap/pk11util.c:1492,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11util.c:1493,1
    - Dst: SECMOD_FindSlotByID
      Src: /src/nss/lib/pk11wrap/pk11util.c:1498,1
    - Dst: PK11Slot_GetNSSToken
      Src: /src/nss/lib/pk11wrap/pk11util.c:1502,1
    - Dst: nssSlot_ResetDelay
      Src: /src/nss/lib/pk11wrap/pk11util.c:1505,1
    - Dst: nssToken_Destroy
      Src: /src/nss/lib/pk11wrap/pk11util.c:1507,1
    - Dst: PK11_IsPresent
      Src: /src/nss/lib/pk11wrap/pk11util.c:1510,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 2
    argNames:
    - mod
    - moduleSpec
    argTypes:
    - SECMODModule*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1513
      start: 1452
    functionDepth: 8
    functionLinenumber: 1452
    functionLinenumberEnd: 1513
    functionName: SECMOD_OpenNewSlot
    functionSourceFile: /src/nss/lib/pk11wrap/pk11util.c
    functionUses: 1
    functionsReached:
    - NSSUTIL_DoubleEscape
    - SECMOD_FindSlotByID
    - nssSlot_ResetDelay
    - nssToken_Destroy
    - PORT_Free
    - PK11_IsPresent
    - secmod_FindFreeSlot
    - PORT_SetError
    - PR_smprintf_free
    - PR_smprintf
    - PK11_ReferenceSlot
    - secmod_UserDBOp
    - PK11_FreeSlot
    - PK11Slot_GetNSSToken
    linkageType: ''
    returnType: PK11SlotInfo
    signature: 'PK11SlotInfo *

      SECMOD_OpenNewSlot(SECMODModule *mod, const char *moduleSpec)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: secmod_GetSlotIDFromModuleSpec
      Src: /src/nss/lib/pk11wrap/pk11util.c:1521,1
    - Dst: SECMOD_FindSlotByID
      Src: /src/nss/lib/pk11wrap/pk11util.c:1526,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - moduleSpec
    - module
    argTypes:
    - char*
    - SECMODModule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1527
      start: 1518
    functionDepth: 4
    functionLinenumber: 1518
    functionLinenumberEnd: 1527
    functionName: secmod_FindSlotFromModuleSpec
    functionSourceFile: /src/nss/lib/pk11wrap/pk11util.c
    functionUses: 0
    functionsReached:
    - SECMOD_FindSlotByID
    - secmod_GetSlotIDFromModuleSpec
    linkageType: ''
    returnType: PK11SlotInfo
    signature: 'PK11SlotInfo *

      secmod_FindSlotFromModuleSpec(const char *moduleSpec, SECMODModule *module)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SECMOD_GetInternalModule
      Src: /src/nss/lib/pk11wrap/pk11util.c:1591,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11util.c:1594,1
    - Dst: secmod_GetConfigList
      Src: /src/nss/lib/pk11wrap/pk11util.c:1601,1
    - Dst: secmod_MatchConfigList
      Src: /src/nss/lib/pk11wrap/pk11util.c:1604,1
    - Dst: secmod_FindSlotFromModuleSpec
      Src: /src/nss/lib/pk11wrap/pk11util.c:1605,1
    - Dst: secmod_FreeConfigList
      Src: /src/nss/lib/pk11wrap/pk11util.c:1607,1
    - Dst: SECMOD_OpenNewSlot
      Src: /src/nss/lib/pk11wrap/pk11util.c:1612,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - moduleSpec
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1613
      start: 1578
    functionDepth: 9
    functionLinenumber: 1578
    functionLinenumberEnd: 1613
    functionName: SECMOD_OpenUserDB
    functionSourceFile: /src/nss/lib/pk11wrap/pk11util.c
    functionUses: 2
    functionsReached:
    - secmod_GetConfigList
    - secmod_MatchConfigList
    - secmod_FreeConfigList
    - PORT_SetError
    - secmod_FindSlotFromModuleSpec
    - SECMOD_GetInternalModule
    - SECMOD_OpenNewSlot
    linkageType: ''
    returnType: PK11SlotInfo
    signature: 'PK11SlotInfo *

      SECMOD_OpenUserDB(const char *moduleSpec)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PR_smprintf
      Src: /src/nss/lib/pk11wrap/pk11util.c:1627,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11util.c:1630,1
    - Dst: secmod_UserDBOp
      Src: /src/nss/lib/pk11wrap/pk11util.c:1633,1
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/pk11wrap/pk11util.c:1634,1
    - Dst: PK11Slot_GetNSSToken
      Src: /src/nss/lib/pk11wrap/pk11util.c:1637,1
    - Dst: nssSlot_ResetDelay
      Src: /src/nss/lib/pk11wrap/pk11util.c:1640,1
    - Dst: nssToken_Destroy
      Src: /src/nss/lib/pk11wrap/pk11util.c:1642,1
    - Dst: PK11_IsPresent
      Src: /src/nss/lib/pk11wrap/pk11util.c:1644,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - slot
    argTypes:
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1647
      start: 1621
    functionDepth: 7
    functionLinenumber: 1621
    functionLinenumberEnd: 1647
    functionName: SECMOD_CloseUserDB
    functionSourceFile: /src/nss/lib/pk11wrap/pk11util.c
    functionUses: 2
    functionsReached:
    - nssSlot_ResetDelay
    - nssToken_Destroy
    - PK11_IsPresent
    - PORT_SetError
    - PR_smprintf_free
    - PR_smprintf
    - secmod_UserDBOp
    - PK11Slot_GetNSSToken
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SECMOD_CloseUserDB(PK11SlotInfo *slot)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11util.c:1660,1
    - Dst: SECMOD_GetReadLock
      Src: /src/nss/lib/pk11wrap/pk11util.c:1665,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11util.c:1673,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11util.c:1678,1
    - Dst: secmod_ModuleInit
      Src: /src/nss/lib/pk11wrap/pk11util.c:1682,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/pk11wrap/pk11util.c:1685,1
    - Dst: PK11_InitToken
      Src: /src/nss/lib/pk11wrap/pk11util.c:1698,1
    - Dst: PK11_IsPresent
      Src: /src/nss/lib/pk11wrap/pk11util.c:1702,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/pk11wrap/pk11util.c:1704,1
    - Dst: SECMOD_ReleaseReadLock
      Src: /src/nss/lib/pk11wrap/pk11util.c:1713,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11util.c:1721,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 1
    argNames:
    - force
    argTypes:
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1725
      start: 1652
    functionDepth: 6
    functionLinenumber: 1652
    functionLinenumberEnd: 1725
    functionName: SECMOD_RestartModules
    functionSourceFile: /src/nss/lib/pk11wrap/pk11util.c
    functionUses: 0
    functionsReached:
    - SECMOD_ReleaseReadLock
    - secmod_ModuleInit
    - SECMOD_GetReadLock
    - PORT_GetError
    - PK11_IsPresent
    - PORT_SetError
    - PK11_GETTAB
    - PK11_InitToken
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SECMOD_RestartModules(PRBool force)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Alloc
      Src: /src/nss/lib/pk11wrap/pk11obj.c:36,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/pk11wrap/pk11obj.c:43,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11obj.c:45,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/pk11wrap/pk11obj.c:48,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11obj.c:49,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - SECItem*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 51
    functionName: PK11_BlockData
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 1
    functionsReached:
    - PORT_Alloc
    - PORT_Memcpy
    - PORT_Free
    - PORT_ZAlloc
    - PORT_Memset
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      PK11_BlockData(SECItem *data, unsigned long size)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:58,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11obj.c:59,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - slot
    - object
    argTypes:
    - PK11SlotInfo*
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 65
    functionName: PK11_DestroyObject
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 5
    functionsReached:
    - PK11_ExitSlotMonitor
    - PK11_GETTAB
    - PK11_EnterSlotMonitor
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11_DestroyObject(PK11SlotInfo *slot, CK_OBJECT_HANDLE object)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetRWSession
      Src: /src/nss/lib/pk11wrap/pk11obj.c:74,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:76,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11obj.c:80,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:83,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:83,1
    - Dst: PK11_RestoreROSession
      Src: /src/nss/lib/pk11wrap/pk11obj.c:85,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - slot
    - object
    argTypes:
    - PK11SlotInfo*
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 87
    functionName: PK11_DestroyTokenObject
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 4
    functionsReached:
    - PK11_GetRWSession
    - PORT_SetError
    - PK11_GETTAB
    - PK11_RestoreROSession
    - PK11_MapError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11_DestroyTokenObject(PK11SlotInfo *slot, CK_OBJECT_HANDLE
      object)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:106,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11obj.c:107,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:109,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:110,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:110,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/pk11wrap/pk11obj.c:114,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/pk11wrap/pk11obj.c:116,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:119,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11obj.c:122,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:123,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:125,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:125,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11obj.c:127,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 5
    argNames:
    - slot
    - id
    - type
    - arena
    - result
    argTypes:
    - PK11SlotInfo*
    - CK_OBJECT_HANDLE
    - CK_ATTRIBUTE_TYPE
    - PLArenaPool*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 135
    functionName: PK11_ReadAttribute
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 7
    functionsReached:
    - PORT_Alloc
    - PORT_ArenaAlloc
    - PORT_Free
    - PORT_SetError
    - PK11_GETTAB
    - PK11_EnterSlotMonitor
    - PK11_ExitSlotMonitor
    - PK11_MapError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_ReadAttribute(PK11SlotInfo *slot, CK_OBJECT_HANDLE
      id,\n                   CK_ATTRIBUTE_TYPE type, PLArenaPool *arena, SECItem
      *result)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11obj.c:148,1
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:150,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11obj.c:151,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:152,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:154,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - slot
    - id
    - type
    argTypes:
    - PK11SlotInfo*
    - CK_OBJECT_HANDLE
    - CK_ATTRIBUTE_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 140
    functionDepth: 2
    functionLinenumber: 140
    functionLinenumberEnd: 157
    functionName: PK11_ReadULongAttribute
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 9
    functionsReached:
    - PORT_SetError
    - PK11_GETTAB
    - PK11_SETATTRS
    - PK11_EnterSlotMonitor
    - PK11_ExitSlotMonitor
    - PK11_MapError
    linkageType: ''
    returnType: CK_ULONG
    signature: "CK_ULONG PK11_ReadULongAttribute(PK11SlotInfo *slot, CK_OBJECT_HANDLE
      id,\n                        CK_ATTRIBUTE_TYPE type)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11obj.c:171,1
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:175,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11obj.c:176,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:179,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:181,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:181,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - slot
    - id
    - type
    - haslock
    argTypes:
    - PK11SlotInfo*
    - CK_OBJECT_HANDLE
    - CK_ATTRIBUTE_TYPE
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 186
    functionName: pk11_HasAttributeSet_Lock
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PK11_GETTAB
    - PK11_SETATTRS
    - PK11_EnterSlotMonitor
    - PK11_ExitSlotMonitor
    - PK11_MapError
    linkageType: ''
    returnType: CK_BBOOL
    signature: "CK_BBOOL pk11_HasAttributeSet_Lock(PK11SlotInfo *slot, CK_OBJECT_HANDLE
      id,\n                          CK_ATTRIBUTE_TYPE type, PRBool haslock)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_ASSERT
      Src: /src/nss/lib/pk11wrap/pk11obj.c:192,1
    - Dst: pk11_HasAttributeSet_Lock
      Src: /src/nss/lib/pk11wrap/pk11obj.c:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - slot
    - id
    - type
    - haslock
    argTypes:
    - PK11SlotInfo*
    - CK_OBJECT_HANDLE
    - CK_ATTRIBUTE_TYPE
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 188
    functionDepth: 3
    functionLinenumber: 188
    functionLinenumberEnd: 194
    functionName: PK11_HasAttributeSet
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 5
    functionsReached:
    - pk11_HasAttributeSet_Lock
    - PR_ASSERT
    linkageType: ''
    returnType: CK_BBOOL
    signature: "CK_BBOOL PK11_HasAttributeSet(PK11SlotInfo *slot, CK_OBJECT_HANDLE
      id,\n                     CK_ATTRIBUTE_TYPE type, PRBool haslock)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:214,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11obj.c:215,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:217,1
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/pk11wrap/pk11obj.c:222,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/pk11wrap/pk11obj.c:234,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pk11wrap/pk11obj.c:237,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:238,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/pk11wrap/pk11obj.c:242,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11obj.c:248,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:252,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11obj.c:261,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:262,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pk11wrap/pk11obj.c:265,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11obj.c:268,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/pk11wrap/pk11obj.c:274,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 52
    argCount: 5
    argNames:
    - arena
    - slot
    - obj
    - attr
    - count
    argTypes:
    - PLArenaPool*
    - PK11SlotInfo*
    - CK_OBJECT_HANDLE
    - CK_ATTRIBUTE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 200
    functionDepth: 2
    functionLinenumber: 200
    functionLinenumberEnd: 277
    functionName: PK11_GetAttributes
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 14
    functionsReached:
    - PORT_Alloc
    - PORT_ArenaUnmark
    - PORT_ArenaAlloc
    - PORT_Free
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - PK11_GETTAB
    - PK11_EnterSlotMonitor
    - PK11_ExitSlotMonitor
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV PK11_GetAttributes(PLArenaPool *arena, PK11SlotInfo *slot,\n
      \                  CK_OBJECT_HANDLE obj, CK_ATTRIBUTE *attr, int count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_HasAttributeSet
      Src: /src/nss/lib/pk11wrap/pk11obj.c:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - slot
    - handle
    argTypes:
    - PK11SlotInfo*
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 279
    functionDepth: 4
    functionLinenumber: 279
    functionLinenumberEnd: 283
    functionName: PK11_IsPermObject
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 4
    functionsReached:
    - PK11_HasAttributeSet
    linkageType: ''
    returnType: PRBool
    signature: PRBool PK11_IsPermObject(PK11SlotInfo *slot, CK_OBJECT_HANDLE handle)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PK11_ReadAttribute
      Src: /src/nss/lib/pk11wrap/pk11obj.c:292,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/pk11wrap/pk11obj.c:297,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11obj.c:299,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11obj.c:302,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11obj.c:303,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - slot
    - id
    argTypes:
    - PK11SlotInfo*
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 285
    functionDepth: 3
    functionLinenumber: 285
    functionLinenumberEnd: 305
    functionName: PK11_GetObjectNickname
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 5
    functionsReached:
    - PORT_Free
    - PORT_ZAlloc
    - PORT_Memcpy
    - PK11_ReadAttribute
    linkageType: ''
    returnType: char
    signature: 'char *

      PK11_GetObjectNickname(PK11SlotInfo *slot, CK_OBJECT_HANDLE id)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strlen
      Src: /src/nss/lib/pk11wrap/pk11obj.c:311,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11obj.c:320,1
    - Dst: PK11_GetRWSession
      Src: /src/nss/lib/pk11wrap/pk11obj.c:321,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:323,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11obj.c:326,1
    - Dst: PK11_RestoreROSession
      Src: /src/nss/lib/pk11wrap/pk11obj.c:328,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:330,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:330,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - slot
    - id
    - nickname
    argTypes:
    - PK11SlotInfo*
    - CK_OBJECT_HANDLE
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 307
    functionDepth: 3
    functionLinenumber: 307
    functionLinenumberEnd: 334
    functionName: PK11_SetObjectNickname
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 5
    functionsReached:
    - PORT_Strlen
    - PK11_GetRWSession
    - PORT_SetError
    - PK11_GETTAB
    - PK11_SETATTRS
    - PK11_RestoreROSession
    - PK11_MapError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_SetObjectNickname(PK11SlotInfo *slot, CK_OBJECT_HANDLE
      id,\n                       const char *nickname)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - attrib
    argTypes:
    - CK_ATTRIBUTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 351
    functionName: pk11_SignedToUnsigned
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pk11_SignedToUnsigned(CK_ATTRIBUTE *attrib)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:363,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11obj.c:364,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:370,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - slot
    - owner
    argTypes:
    - PK11SlotInfo*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 357
    functionDepth: 2
    functionLinenumber: 357
    functionLinenumberEnd: 373
    functionName: pk11_GetNewSession
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 6
    functionsReached:
    - PK11_ExitSlotMonitor
    - PK11_GETTAB
    - PK11_EnterSlotMonitor
    linkageType: ''
    returnType: CK_SESSION_HANDLE
    signature: CK_SESSION_HANDLE pk11_GetNewSession(PK11SlotInfo *slot, PRBool *owner)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:381,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11obj.c:382,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:384,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - slot
    - session
    - owner
    argTypes:
    - PK11SlotInfo*
    - CK_SESSION_HANDLE
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 375
    functionDepth: 2
    functionLinenumber: 375
    functionLinenumberEnd: 385
    functionName: pk11_CloseSession
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 7
    functionsReached:
    - PK11_ExitSlotMonitor
    - PK11_GETTAB
    - PK11_EnterSlotMonitor
    linkageType: ''
    returnType: void
    signature: void pk11_CloseSession(PK11SlotInfo *slot, CK_SESSION_HANDLE session,
      PRBool owner)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetRWSession
      Src: /src/nss/lib/pk11wrap/pk11obj.c:398,1
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:402,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:405,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11obj.c:408,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:412,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:412,1
    - Dst: PK11_RestoreROSession
      Src: /src/nss/lib/pk11wrap/pk11obj.c:416,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:418,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 6
    argNames:
    - slot
    - session
    - theTemplate
    - count
    - token
    - objectID
    argTypes:
    - PK11SlotInfo*
    - CK_SESSION_HANDLE
    - CK_ATTRIBUTE*
    - int
    - PRBool
    - CK_OBJECT_HANDLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 387
    functionDepth: 3
    functionLinenumber: 387
    functionLinenumberEnd: 422
    functionName: PK11_CreateNewObject
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 6
    functionsReached:
    - PK11_GetRWSession
    - PORT_SetError
    - PK11_GETTAB
    - PK11_EnterSlotMonitor
    - PK11_RestoreROSession
    - PK11_ExitSlotMonitor
    - PK11_MapError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_CreateNewObject(PK11SlotInfo *slot, CK_SESSION_HANDLE
      session,\n                     const CK_ATTRIBUTE *theTemplate, int count,\n
      \                    PRBool token, CK_OBJECT_HANDLE *objectID)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_ASSERT
      Src: /src/nss/lib/pk11wrap/pk11obj.c:439,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/pk11wrap/pk11obj.c:445,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11obj.c:446,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - flags
    - attrs
    - ckTrue
    argTypes:
    - CK_FLAGS
    - CK_ATTRIBUTE*
    - CK_BBOOL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 451
    functionName: pk11_OpFlagsToAttributes
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 10
    functionsReached:
    - PK11_SETATTRS
    - PR_ASSERT
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int pk11_OpFlagsToAttributes(CK_FLAGS flags, CK_ATTRIBUTE
      *attrs, CK_BBOOL *ckTrue)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - attrFlags
    argTypes:
    - PK11AttrFlags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 463
    functionName: pk11_BadAttrFlags
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool pk11_BadAttrFlags(PK11AttrFlags attrFlags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_ASSERT
      Src: /src/nss/lib/pk11wrap/pk11obj.c:482,1
    - Dst: pk11_BadAttrFlags
      Src: /src/nss/lib/pk11wrap/pk11obj.c:482,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11obj.c:488,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11obj.c:492,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - attrFlags
    - attrs
    - ckTrue
    - ckFalse
    argTypes:
    - PK11AttrFlags
    - CK_ATTRIBUTE*
    - CK_BBOOL*
    - CK_BBOOL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 497
    functionName: pk11_AttrFlagsToAttributes
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 5
    functionsReached:
    - pk11_BadAttrFlags
    - PK11_SETATTRS
    - PR_ASSERT
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int pk11_AttrFlagsToAttributes(PK11AttrFlags attrFlags, CK_ATTRIBUTE
      *attrs,\n                           CK_BBOOL *ckTrue, CK_BBOOL *ckFalse)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PK11_MapSignKeyType
      Src: /src/nss/lib/pk11wrap/pk11obj.c:516,1
    - Dst: pk11_GetNewSession
      Src: /src/nss/lib/pk11wrap/pk11obj.c:518,1
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:520,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11obj.c:521,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:524,1
    - Dst: pk11_CloseSession
      Src: /src/nss/lib/pk11wrap/pk11obj.c:525,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:526,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:526,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11obj.c:530,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11obj.c:533,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:536,1
    - Dst: pk11_CloseSession
      Src: /src/nss/lib/pk11wrap/pk11obj.c:537,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:539,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:539,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - key
    argTypes:
    - SECKEYPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 503
    functionDepth: 3
    functionLinenumber: 503
    functionLinenumberEnd: 543
    functionName: pk11_backupGetSignLength
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PK11_GETTAB
    - PK11_EnterSlotMonitor
    - PK11_MapSignKeyType
    - PK11_ExitSlotMonitor
    - pk11_CloseSession
    - PK11_MapError
    - pk11_GetNewSession
    linkageType: ''
    returnType: int
    signature: int pk11_backupGetSignLength(SECKEYPrivateKey *key)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetPrivateModulusLen
      Src: /src/nss/lib/pk11wrap/pk11obj.c:559,1
    - Dst: pk11_backupGetSignLength
      Src: /src/nss/lib/pk11wrap/pk11obj.c:561,1
    - Dst: PK11_ReadAttribute
      Src: /src/nss/lib/pk11wrap/pk11obj.c:569,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11obj.c:576,1
    - Dst: pk11_backupGetSignLength
      Src: /src/nss/lib/pk11wrap/pk11obj.c:579,1
    - Dst: PK11_ReadAttribute
      Src: /src/nss/lib/pk11wrap/pk11obj.c:582,1
    - Dst: SECKEY_ECParamsToBasePointOrderLen
      Src: /src/nss/lib/pk11wrap/pk11obj.c:585,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11obj.c:586,1
    - Dst: pk11_backupGetSignLength
      Src: /src/nss/lib/pk11wrap/pk11obj.c:592,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:596,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 1
    argNames:
    - key
    argTypes:
    - SECKEYPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 548
    functionDepth: 4
    functionLinenumber: 548
    functionLinenumberEnd: 598
    functionName: PK11_SignatureLen
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 4
    functionsReached:
    - SECKEY_ECParamsToBasePointOrderLen
    - PORT_Free
    - PK11_GetPrivateModulusLen
    - PORT_SetError
    - pk11_backupGetSignLength
    - PK11_ReadAttribute
    linkageType: ''
    returnType: int
    signature: int PK11_SignatureLen(SECKEYPrivateKey *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:609,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11obj.c:610,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:612,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:615,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:615,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - slot
    - srcObject
    argTypes:
    - PK11SlotInfo*
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 603
    functionDepth: 2
    functionLinenumber: 603
    functionLinenumberEnd: 617
    functionName: PK11_CopyKey
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    - PK11_GETTAB
    - PK11_EnterSlotMonitor
    - PK11_ExitSlotMonitor
    - PK11_MapError
    linkageType: ''
    returnType: CK_OBJECT_HANDLE
    signature: CK_OBJECT_HANDLE PK11_CopyKey(PK11SlotInfo *slot, CK_OBJECT_HANDLE
      srcObject)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - attr
    - numAttrs
    - target
    argTypes:
    - CK_ATTRIBUTE*
    - unsigned int
    - CK_ATTRIBUTE_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 619
    functionDepth: 0
    functionLinenumber: 619
    functionLinenumberEnd: 628
    functionName: pk11_FindAttrInTemplate
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: "PRBool pk11_FindAttrInTemplate(CK_ATTRIBUTE *attr, unsigned int numAttrs,\n
      \                       CK_ATTRIBUTE_TYPE target)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PK11_MapSignKeyType
      Src: /src/nss/lib/pk11wrap/pk11obj.c:646,1
    - Dst: PK11_GetBestSlotWithAttributes
      Src: /src/nss/lib/pk11wrap/pk11obj.c:649,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:652,1
    - Dst: PK11_ImportPublicKey
      Src: /src/nss/lib/pk11wrap/pk11obj.c:655,1
    - Dst: PK11_ReferenceSlot
      Src: /src/nss/lib/pk11wrap/pk11obj.c:657,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11obj.c:661,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:662,1
    - Dst: pk11_GetNewSession
      Src: /src/nss/lib/pk11wrap/pk11obj.c:666,1
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:668,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11obj.c:669,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:672,1
    - Dst: pk11_CloseSession
      Src: /src/nss/lib/pk11wrap/pk11obj.c:673,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:674,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:674,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11obj.c:675,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11obj.c:679,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:682,1
    - Dst: pk11_CloseSession
      Src: /src/nss/lib/pk11wrap/pk11obj.c:683,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:686,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:686,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11obj.c:687,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11obj.c:690,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 4
    argNames:
    - key
    - sig
    - dsig
    - wincx
    argTypes:
    - SECKEYPublicKey*
    - SECItem*
    - SECItem*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 634
    functionDepth: 8
    functionLinenumber: 634
    functionLinenumberEnd: 692
    functionName: PK11_VerifyRecover
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 1
    functionsReached:
    - PK11_FreeSlot
    - PK11_GetBestSlotWithAttributes
    - PK11_ExitSlotMonitor
    - PORT_SetError
    - PK11_GETTAB
    - PK11_MapSignKeyType
    - PK11_EnterSlotMonitor
    - PK11_ReferenceSlot
    - pk11_GetNewSession
    - pk11_CloseSession
    - PK11_MapError
    - PK11_ImportPublicKey
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_VerifyRecover(SECKEYPublicKey *key, const SECItem *sig,\n
      \                  SECItem *dsig, void *wincx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_MapSignKeyType
      Src: /src/nss/lib/pk11wrap/pk11obj.c:701,1
    - Dst: PK11_VerifyWithMechanism
      Src: /src/nss/lib/pk11wrap/pk11obj.c:702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - key
    - sig
    - hash
    - wincx
    argTypes:
    - SECKEYPublicKey*
    - SECItem*
    - SECItem*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 697
    functionDepth: 1
    functionLinenumber: 697
    functionLinenumberEnd: 703
    functionName: PK11_Verify
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 2
    functionsReached:
    - PK11_VerifyWithMechanism
    - PK11_MapSignKeyType
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_Verify(SECKEYPublicKey *key, const SECItem *sig, const
      SECItem *hash,\n            void *wincx)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetBestSlotWithAttributes
      Src: /src/nss/lib/pk11wrap/pk11obj.c:742,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:745,1
    - Dst: PK11_ImportPublicKey
      Src: /src/nss/lib/pk11wrap/pk11obj.c:748,1
    - Dst: PK11_ReferenceSlot
      Src: /src/nss/lib/pk11wrap/pk11obj.c:751,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11obj.c:755,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:756,1
    - Dst: pk11_GetNewSession
      Src: /src/nss/lib/pk11wrap/pk11obj.c:760,1
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:762,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11obj.c:763,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:766,1
    - Dst: pk11_CloseSession
      Src: /src/nss/lib/pk11wrap/pk11obj.c:767,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11obj.c:768,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:769,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:769,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11obj.c:772,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:775,1
    - Dst: pk11_CloseSession
      Src: /src/nss/lib/pk11wrap/pk11obj.c:776,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11obj.c:777,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:779,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:779,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 50
    argCount: 6
    argNames:
    - key
    - mechanism
    - param
    - sig
    - hash
    - wincx
    argTypes:
    - SECKEYPublicKey*
    - CK_MECHANISM_TYPE
    - SECItem*
    - SECItem*
    - SECItem*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 708
    functionDepth: 8
    functionLinenumber: 708
    functionLinenumberEnd: 783
    functionName: PK11_VerifyWithMechanism
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 3
    functionsReached:
    - PK11_GetBestSlotWithAttributes
    - PK11_ExitSlotMonitor
    - PORT_SetError
    - PK11_ImportPublicKey
    - PK11_GETTAB
    - PK11_EnterSlotMonitor
    - PK11_ReferenceSlot
    - pk11_GetNewSession
    - pk11_CloseSession
    - PK11_MapError
    - PK11_FreeSlot
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_VerifyWithMechanism(SECKEYPublicKey *key, CK_MECHANISM_TYPE
      mechanism,\n                         const SECItem *param, const SECItem *sig,\n
      \                        const SECItem *hash, void *wincx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_MapSignKeyType
      Src: /src/nss/lib/pk11wrap/pk11obj.c:791,1
    - Dst: PK11_SignWithMechanism
      Src: /src/nss/lib/pk11wrap/pk11obj.c:792,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - sig
    - hash
    argTypes:
    - SECKEYPrivateKey*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 788
    functionDepth: 1
    functionLinenumber: 788
    functionLinenumberEnd: 793
    functionName: PK11_Sign
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 2
    functionsReached:
    - PK11_SignWithMechanism
    - PK11_MapSignKeyType
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11_Sign(SECKEYPrivateKey *key, SECItem *sig, const SECItem
      *hash)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SECKEY_HAS_ATTRIBUTE_SET
      Src: /src/nss/lib/pk11wrap/pk11obj.c:816,1
    - Dst: PK11_HandlePasswordCheck
      Src: /src/nss/lib/pk11wrap/pk11obj.c:817,1
    - Dst: pk11_GetNewSession
      Src: /src/nss/lib/pk11wrap/pk11obj.c:820,1
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:823,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11obj.c:824,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:827,1
    - Dst: pk11_CloseSession
      Src: /src/nss/lib/pk11wrap/pk11obj.c:828,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:829,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:829,1
    - Dst: SECKEY_HAS_ATTRIBUTE_SET_LOCK
      Src: /src/nss/lib/pk11wrap/pk11obj.c:836,1
    - Dst: PK11_DoPassword
      Src: /src/nss/lib/pk11wrap/pk11obj.c:837,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11obj.c:841,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:844,1
    - Dst: pk11_CloseSession
      Src: /src/nss/lib/pk11wrap/pk11obj.c:845,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:848,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:848,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 5
    argNames:
    - key
    - mechanism
    - param
    - sig
    - hash
    argTypes:
    - SECKEYPrivateKey*
    - CK_MECHANISM_TYPE
    - SECItem*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 798
    functionDepth: 6
    functionLinenumber: 798
    functionLinenumberEnd: 852
    functionName: PK11_SignWithMechanism
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 3
    functionsReached:
    - PK11_DoPassword
    - PK11_HandlePasswordCheck
    - SECKEY_HAS_ATTRIBUTE_SET
    - PORT_SetError
    - PK11_GETTAB
    - SECKEY_HAS_ATTRIBUTE_SET_LOCK
    - PK11_EnterSlotMonitor
    - PK11_ExitSlotMonitor
    - pk11_CloseSession
    - PK11_MapError
    - pk11_GetNewSession
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_SignWithMechanism(SECKEYPrivateKey *key, CK_MECHANISM_TYPE
      mechanism,\n                       const SECItem *param, SECItem *sig, const
      SECItem *hash)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pk11_GetNewSession
      Src: /src/nss/lib/pk11wrap/pk11obj.c:875,1
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:878,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11obj.c:879,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:882,1
    - Dst: pk11_CloseSession
      Src: /src/nss/lib/pk11wrap/pk11obj.c:883,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:884,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:884,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11obj.c:889,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:892,1
    - Dst: pk11_CloseSession
      Src: /src/nss/lib/pk11wrap/pk11obj.c:893,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:896,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:896,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 5
    argNames:
    - symKey
    - mechanism
    - param
    - sig
    - data
    argTypes:
    - PK11SymKey*
    - CK_MECHANISM_TYPE
    - SECItem*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 857
    functionDepth: 3
    functionLinenumber: 857
    functionLinenumberEnd: 900
    functionName: PK11_SignWithSymKey
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PK11_GETTAB
    - PK11_EnterSlotMonitor
    - PK11_ExitSlotMonitor
    - pk11_CloseSession
    - PK11_MapError
    - pk11_GetNewSession
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_SignWithSymKey(PK11SymKey *symKey, CK_MECHANISM_TYPE
      mechanism,\n                    SECItem *param, SECItem *sig, const SECItem
      *data)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pk11_GetNewSession
      Src: /src/nss/lib/pk11wrap/pk11obj.c:923,1
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:926,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11obj.c:927,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:930,1
    - Dst: pk11_CloseSession
      Src: /src/nss/lib/pk11wrap/pk11obj.c:931,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:932,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:932,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11obj.c:936,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:939,1
    - Dst: pk11_CloseSession
      Src: /src/nss/lib/pk11wrap/pk11obj.c:940,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:942,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:942,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 8
    argNames:
    - symKey
    - mechanism
    - param
    - out
    - outLen
    - maxLen
    - enc
    - encLen
    argTypes:
    - PK11SymKey*
    - CK_MECHANISM_TYPE
    - SECItem*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 902
    functionDepth: 3
    functionLinenumber: 902
    functionLinenumberEnd: 947
    functionName: PK11_Decrypt
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 2
    functionsReached:
    - PORT_SetError
    - PK11_GETTAB
    - PK11_EnterSlotMonitor
    - PK11_ExitSlotMonitor
    - pk11_CloseSession
    - PK11_MapError
    - pk11_GetNewSession
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_Decrypt(PK11SymKey *symKey,\n             CK_MECHANISM_TYPE
      mechanism, SECItem *param,\n             unsigned char *out, unsigned int *outLen,\n
      \            unsigned int maxLen,\n             const unsigned char *enc, unsigned
      encLen)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pk11_GetNewSession
      Src: /src/nss/lib/pk11wrap/pk11obj.c:970,1
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:973,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11obj.c:974,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:977,1
    - Dst: pk11_CloseSession
      Src: /src/nss/lib/pk11wrap/pk11obj.c:978,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:979,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:979,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11obj.c:982,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:985,1
    - Dst: pk11_CloseSession
      Src: /src/nss/lib/pk11wrap/pk11obj.c:986,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:988,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:988,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 8
    argNames:
    - symKey
    - mechanism
    - param
    - out
    - outLen
    - maxLen
    - data
    - dataLen
    argTypes:
    - PK11SymKey*
    - CK_MECHANISM_TYPE
    - SECItem*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 993
      start: 949
    functionDepth: 3
    functionLinenumber: 949
    functionLinenumberEnd: 993
    functionName: PK11_Encrypt
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 2
    functionsReached:
    - PORT_SetError
    - PK11_GETTAB
    - PK11_EnterSlotMonitor
    - PK11_ExitSlotMonitor
    - pk11_CloseSession
    - PK11_MapError
    - pk11_GetNewSession
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_Encrypt(PK11SymKey *symKey,\n             CK_MECHANISM_TYPE
      mechanism, SECItem *param,\n             unsigned char *out, unsigned int *outLen,\n
      \            unsigned int maxLen,\n             const unsigned char *data, unsigned
      int dataLen)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1009,1
    - Dst: SECKEY_HAS_ATTRIBUTE_SET
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1017,1
    - Dst: PK11_HandlePasswordCheck
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1018,1
    - Dst: pk11_GetNewSession
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1020,1
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1023,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1024,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1027,1
    - Dst: pk11_CloseSession
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1028,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1029,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1029,1
    - Dst: SECKEY_HAS_ATTRIBUTE_SET_LOCK
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1037,1
    - Dst: PK11_DoPassword
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1038,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1041,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1044,1
    - Dst: pk11_CloseSession
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1045,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1048,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1048,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 7
    argNames:
    - key
    - data
    - outLen
    - maxLen
    - enc
    - encLen
    - mech
    argTypes:
    - SECKEYPrivateKey*
    - unsigned char*
    - unsigned*
    - unsigned int
    - unsigned char*
    - unsigned
    - CK_MECHANISM_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 995
    functionDepth: 6
    functionLinenumber: 995
    functionLinenumberEnd: 1052
    functionName: pk11_PrivDecryptRaw
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 0
    functionsReached:
    - PK11_DoPassword
    - PK11_HandlePasswordCheck
    - SECKEY_HAS_ATTRIBUTE_SET
    - PORT_SetError
    - PK11_GETTAB
    - SECKEY_HAS_ATTRIBUTE_SET_LOCK
    - PK11_EnterSlotMonitor
    - PK11_ExitSlotMonitor
    - pk11_CloseSession
    - PK11_MapError
    - pk11_GetNewSession
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus pk11_PrivDecryptRaw(SECKEYPrivateKey *key,\n                    unsigned
      char *data, unsigned *outLen, unsigned int maxLen,\n                    const
      unsigned char *enc, unsigned encLen,\n                    CK_MECHANISM_PTR mech)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pk11_PrivDecryptRaw
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1060,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - key
    - data
    - outLen
    - maxLen
    - enc
    - encLen
    argTypes:
    - SECKEYPrivateKey*
    - unsigned char*
    - unsigned*
    - unsigned int
    - unsigned char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 1054
    functionDepth: 7
    functionLinenumber: 1054
    functionLinenumberEnd: 1061
    functionName: PK11_PubDecryptRaw
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 0
    functionsReached:
    - pk11_PrivDecryptRaw
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_PubDecryptRaw(SECKEYPrivateKey *key,\n                   unsigned
      char *data, unsigned *outLen, unsigned int maxLen,\n                   const
      unsigned char *enc, unsigned encLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pk11_PrivDecryptRaw
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1069,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - key
    - data
    - outLen
    - maxLen
    - enc
    - encLen
    argTypes:
    - SECKEYPrivateKey*
    - unsigned char*
    - unsigned*
    - unsigned int
    - unsigned char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1070
      start: 1063
    functionDepth: 7
    functionLinenumber: 1063
    functionLinenumberEnd: 1070
    functionName: PK11_PrivDecryptPKCS1
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 0
    functionsReached:
    - pk11_PrivDecryptRaw
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_PrivDecryptPKCS1(SECKEYPrivateKey *key,\n                      unsigned
      char *data, unsigned *outLen, unsigned int maxLen,\n                      const
      unsigned char *enc, unsigned encLen)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetBestSlotWithAttributes
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1086,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1088,1
    - Dst: PK11_ImportPublicKey
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1092,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1095,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1096,1
    - Dst: pk11_GetNewSession
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1100,1
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1102,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1103,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1106,1
    - Dst: pk11_CloseSession
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1107,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1108,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1109,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1109,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1112,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1115,1
    - Dst: pk11_CloseSession
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1116,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1117,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1120,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1120,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 8
    argNames:
    - key
    - out
    - outLen
    - maxLen
    - data
    - dataLen
    - mech
    - wincx
    argTypes:
    - SECKEYPublicKey*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned
    - CK_MECHANISM_PTR
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1124
      start: 1072
    functionDepth: 8
    functionLinenumber: 1072
    functionLinenumberEnd: 1124
    functionName: pk11_PubEncryptRaw
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 0
    functionsReached:
    - PK11_GetBestSlotWithAttributes
    - PK11_ExitSlotMonitor
    - PORT_SetError
    - PK11_ImportPublicKey
    - PK11_GETTAB
    - PK11_EnterSlotMonitor
    - pk11_GetNewSession
    - pk11_CloseSession
    - PK11_MapError
    - PK11_FreeSlot
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus pk11_PubEncryptRaw(SECKEYPublicKey *key,\n                   unsigned
      char *out, unsigned int *outLen,\n                   unsigned int maxLen,\n
      \                  const unsigned char *data, unsigned dataLen,\n                   CK_MECHANISM_PTR
      mech, void *wincx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1135,1
    - Dst: SECKEY_PublicKeyStrength
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1138,1
    - Dst: pk11_PubEncryptRaw
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - key
    - enc
    - data
    - dataLen
    - wincx
    argTypes:
    - SECKEYPublicKey*
    - unsigned char*
    - unsigned char*
    - unsigned
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1141
      start: 1126
    functionDepth: 9
    functionLinenumber: 1126
    functionLinenumberEnd: 1141
    functionName: PK11_PubEncryptRaw
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 1
    functionsReached:
    - SECKEY_PublicKeyStrength
    - PORT_SetError
    - pk11_PubEncryptRaw
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_PubEncryptRaw(SECKEYPublicKey *key,\n                   unsigned
      char *enc,\n                   const unsigned char *data, unsigned dataLen,\n
      \                  void *wincx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1152,1
    - Dst: SECKEY_PublicKeyStrength
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1155,1
    - Dst: pk11_PubEncryptRaw
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1156,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - key
    - enc
    - data
    - dataLen
    - wincx
    argTypes:
    - SECKEYPublicKey*
    - unsigned char*
    - unsigned char*
    - unsigned
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1158
      start: 1143
    functionDepth: 9
    functionLinenumber: 1143
    functionLinenumberEnd: 1158
    functionName: PK11_PubEncryptPKCS1
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 0
    functionsReached:
    - SECKEY_PublicKeyStrength
    - PORT_SetError
    - pk11_PubEncryptRaw
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_PubEncryptPKCS1(SECKEYPublicKey *key,\n                     unsigned
      char *enc,\n                     const unsigned char *data, unsigned dataLen,\n
      \                    void *wincx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pk11_PrivDecryptRaw
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 8
    argNames:
    - key
    - mechanism
    - param
    - out
    - outLen
    - maxLen
    - enc
    - encLen
    argTypes:
    - SECKEYPrivateKey*
    - CK_MECHANISM_TYPE
    - SECItem*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1173
      start: 1160
    functionDepth: 7
    functionLinenumber: 1160
    functionLinenumberEnd: 1173
    functionName: PK11_PrivDecrypt
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 0
    functionsReached:
    - pk11_PrivDecryptRaw
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_PrivDecrypt(SECKEYPrivateKey *key,\n                 CK_MECHANISM_TYPE
      mechanism, SECItem *param,\n                 unsigned char *out, unsigned int
      *outLen,\n                 unsigned int maxLen,\n                 const unsigned
      char *enc, unsigned encLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pk11_PubEncryptRaw
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 9
    argNames:
    - key
    - mechanism
    - param
    - out
    - outLen
    - maxLen
    - data
    - dataLen
    - wincx
    argTypes:
    - SECKEYPublicKey*
    - CK_MECHANISM_TYPE
    - SECItem*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1175
    functionDepth: 9
    functionLinenumber: 1175
    functionLinenumberEnd: 1190
    functionName: PK11_PubEncrypt
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 0
    functionsReached:
    - pk11_PubEncryptRaw
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_PubEncrypt(SECKEYPublicKey *key,\n                CK_MECHANISM_TYPE
      mechanism, SECItem *param,\n                unsigned char *out, unsigned int
      *outLen,\n                unsigned int maxLen,\n                const unsigned
      char *data, unsigned dataLen,\n                void *wincx)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PK11_MakeIDFromPubKey
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1219,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1224,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1227,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1229,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1231,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1234,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1238,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1241,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1244,1
    - Dst: PK11_IsInternal
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1248,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1249,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1255,1
    - Dst: PK11_ParamFromIV
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1259,1
    - Dst: pk11_CopyToSlot
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1269,1
    - Dst: PK11_ReferenceSymKey
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1271,1
    - Dst: PK11_GetRWSession
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1278,1
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1282,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1288,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1291,1
    - Dst: PK11_RestoreROSession
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1298,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1300,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1302,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1308,1
    - Dst: PK11_GetInternalSlot
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1314,1
    - Dst: PK11_UnwrapPrivKey
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1317,1
    - Dst: PK11_LoadPrivKey
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1322,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1324,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1325,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1326,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1331,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1332,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1332,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1333,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1336,1
    - Dst: PK11_MakePrivKey
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1337,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1340,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1341,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1342,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 98
    argCount: 13
    argNames:
    - slot
    - wrappingKey
    - wrapType
    - param
    - wrappedKey
    - label
    - idValue
    - perm
    - sensitive
    - keyType
    - usage
    - usageCount
    - wincx
    argTypes:
    - PK11SlotInfo*
    - PK11SymKey*
    - CK_MECHANISM_TYPE
    - SECItem*
    - SECItem*
    - SECItem*
    - SECItem*
    - PRBool
    - PRBool
    - CK_KEY_TYPE
    - CK_ATTRIBUTE_TYPE*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1344
      start: 1192
    functionDepth: 8
    functionLinenumber: 1192
    functionLinenumberEnd: 1344
    functionName: PK11_UnwrapPrivKey
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 2
    functionsReached:
    - PK11_LoadPrivKey
    - PK11_UnwrapPrivKey
    - pk11_CopyToSlot
    - PK11_GetRWSession
    - PORT_SetError
    - PK11_MakeIDFromPubKey
    - PK11_RestoreROSession
    - PK11_ReferenceSymKey
    - SECITEM_FreeItem
    - PK11_ParamFromIV
    - PK11_ExitSlotMonitor
    - PK11_IsInternal
    - PK11_FreeSlot
    - PR_ASSERT
    - PK11_GETTAB
    - PK11_SETATTRS
    - PK11_MakePrivKey
    - PK11_EnterSlotMonitor
    - PK11_GetInternalSlot
    - SECKEY_DestroyPrivateKey
    - PK11_MapError
    - PK11_FreeSymKey
    linkageType: ''
    returnType: SECKEYPrivateKey
    signature: "SECKEYPrivateKey *\nPK11_UnwrapPrivKey(PK11SlotInfo *slot, PK11SymKey
      *wrappingKey,\n                   CK_MECHANISM_TYPE wrapType, SECItem *param,\n
      \                  SECItem *wrappedKey, SECItem *label,\n                   SECItem
      *idValue, PRBool perm, PRBool sensitive,\n                   CK_KEY_TYPE keyType,
      CK_ATTRIBUTE_TYPE *usage,\n                   int usageCount, void *wincx)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PK11_DoesMechanism
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1369,1
    - Dst: PK11_GetInternalSlot
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1373,1
    - Dst: PK11_LoadPrivKey
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1376,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1380,1
    - Dst: pk11_CopyToSlot
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1388,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1395,1
    - Dst: PK11_ParamFromIV
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1401,1
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1411,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1412,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1416,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1419,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1422,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1425,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1429,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1429,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 49
    argCount: 7
    argNames:
    - slot
    - wrappingKey
    - privKey
    - wrapType
    - param
    - wrappedKey
    - wincx
    argTypes:
    - PK11SlotInfo*
    - PK11SymKey*
    - SECKEYPrivateKey*
    - CK_MECHANISM_TYPE
    - SECItem*
    - SECItem*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1435
      start: 1352
    functionDepth: 8
    functionLinenumber: 1352
    functionLinenumberEnd: 1435
    functionName: PK11_WrapPrivKey
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 0
    functionsReached:
    - PK11_LoadPrivKey
    - pk11_CopyToSlot
    - PK11_ExitSlotMonitor
    - PK11_DoesMechanism
    - PK11_ParamFromIV
    - PK11_GETTAB
    - PORT_SetError
    - PK11_EnterSlotMonitor
    - PK11_GetInternalSlot
    - SECKEY_DestroyPrivateKey
    - PK11_MapError
    - PK11_FreeSlot
    - SECITEM_FreeItem
    - PK11_FreeSymKey
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_WrapPrivKey(PK11SlotInfo *slot, PK11SymKey *wrappingKey,\n
      \                SECKEYPrivateKey *privKey, CK_MECHANISM_TYPE wrapType,\n                 SECItem
      *param, SECItem *wrappedKey, void *wincx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1492,1
    - Dst: pk11_FindObjectsByTemplate
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1495,1
    - Dst: PORT_New
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1502,1
    - Dst: PK11_DestroyGenericObjects
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1505,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1507,1
    - Dst: PK11_ReferenceSlot
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1511,1
    - Dst: PK11_LinkGenericObject
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1521,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1525,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 2
    argNames:
    - slot
    - objClass
    argTypes:
    - PK11SlotInfo*
    - CK_OBJECT_CLASS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1527
      start: 1482
    functionDepth: 2
    functionLinenumber: 1482
    functionLinenumberEnd: 1527
    functionName: PK11_FindGenericObjects
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 3
    functionsReached:
    - PK11_DestroyGenericObjects
    - PK11_ReferenceSlot
    - PK11_LinkGenericObject
    - PORT_Free
    - PK11_SETATTRS
    - PORT_New
    - pk11_FindObjectsByTemplate
    linkageType: ''
    returnType: PK11GenericObject
    signature: 'PK11GenericObject *

      PK11_FindGenericObjects(PK11SlotInfo *slot, CK_OBJECT_CLASS objClass)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - object
    argTypes:
    - PK11GenericObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1536
      start: 1532
    functionDepth: 0
    functionLinenumber: 1532
    functionLinenumberEnd: 1536
    functionName: PK11_GetNextGenericObject
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: PK11GenericObject
    signature: 'PK11GenericObject *

      PK11_GetNextGenericObject(PK11GenericObject *object)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - object
    argTypes:
    - PK11GenericObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1542
      start: 1538
    functionDepth: 0
    functionLinenumber: 1538
    functionLinenumberEnd: 1542
    functionName: PK11_GetPrevGenericObject
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PK11GenericObject
    signature: 'PK11GenericObject *

      PK11_GetPrevGenericObject(PK11GenericObject *object)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_UnlinkGenericObject
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1551,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - list
    - object
    argTypes:
    - PK11GenericObject*
    - PK11GenericObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1559
      start: 1548
    functionDepth: 1
    functionLinenumber: 1548
    functionLinenumberEnd: 1559
    functionName: PK11_LinkGenericObject
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 1
    functionsReached:
    - PK11_UnlinkGenericObject
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11_LinkGenericObject(PK11GenericObject *list, PK11GenericObject
      *object)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - object
    argTypes:
    - PK11GenericObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1578
      start: 1565
    functionDepth: 0
    functionLinenumber: 1565
    functionLinenumberEnd: 1578
    functionName: PK11_UnlinkGenericObject
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11_UnlinkGenericObject(PK11GenericObject *object)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PK11_UnlinkGenericObject
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1592,1
    - Dst: PK11_DestroyObject
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1595,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1597,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1599,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - object
    argTypes:
    - PK11GenericObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1601
      start: 1585
    functionDepth: 3
    functionLinenumber: 1585
    functionLinenumberEnd: 1601
    functionName: PK11_DestroyGenericObject
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 2
    functionsReached:
    - PK11_DestroyObject
    - PORT_Free
    - PK11_UnlinkGenericObject
    - PK11_FreeSlot
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11_DestroyGenericObject(PK11GenericObject *object)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_DestroyGenericObject
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1624,1
    - Dst: PK11_DestroyGenericObject
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1629,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - objects
    argTypes:
    - PK11GenericObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1632
      start: 1608
    functionDepth: 4
    functionLinenumber: 1608
    functionLinenumberEnd: 1632
    functionName: PK11_DestroyGenericObjects
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 4
    functionsReached:
    - PK11_DestroyGenericObject
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11_DestroyGenericObjects(PK11GenericObject *objects)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1646,1
    - Dst: PK11_CreateNewObject
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1647,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1649,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1651,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1651,1
    - Dst: PORT_New
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1655,1
    - Dst: PK11_ReferenceSlot
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1662,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 5
    argNames:
    - slot
    - pTemplate
    - count
    - token
    - owner
    argTypes:
    - PK11SlotInfo*
    - CK_ATTRIBUTE*
    - int
    - PRBool
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1668
      start: 1637
    functionDepth: 4
    functionLinenumber: 1637
    functionLinenumberEnd: 1668
    functionName: pk11_CreateGenericObjectHelper
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 0
    functionsReached:
    - PK11_ReferenceSlot
    - PORT_SetError
    - PK11_CreateNewObject
    - PK11_EnterSlotMonitor
    - PORT_New
    - PK11_ExitSlotMonitor
    - PK11_MapError
    linkageType: ''
    returnType: PK11GenericObject
    signature: "PK11GenericObject *\npk11_CreateGenericObjectHelper(PK11SlotInfo *slot,\n
      \                              const CK_ATTRIBUTE *pTemplate,\n                               int
      count, PRBool token, PRBool owner)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pk11_CreateGenericObjectHelper
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - slot
    - pTemplate
    - count
    - token
    argTypes:
    - PK11SlotInfo*
    - CK_ATTRIBUTE*
    - int
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1684
      start: 1678
    functionDepth: 5
    functionLinenumber: 1678
    functionLinenumberEnd: 1684
    functionName: PK11_CreateGenericObject
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 1
    functionsReached:
    - pk11_CreateGenericObjectHelper
    linkageType: ''
    returnType: PK11GenericObject
    signature: "PK11GenericObject *\nPK11_CreateGenericObject(PK11SlotInfo *slot,
      const CK_ATTRIBUTE *pTemplate,\n                         int count, PRBool token)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pk11_CreateGenericObjectHelper
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - slot
    - pTemplate
    - count
    - token
    argTypes:
    - PK11SlotInfo*
    - CK_ATTRIBUTE*
    - int
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1696
      start: 1690
    functionDepth: 5
    functionLinenumber: 1690
    functionLinenumberEnd: 1696
    functionName: PK11_CreateManagedGenericObject
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 1
    functionsReached:
    - pk11_CreateGenericObjectHelper
    linkageType: ''
    returnType: PK11GenericObject
    signature: "PK11GenericObject *\nPK11_CreateManagedGenericObject(PK11SlotInfo
      *slot,\n                                const CK_ATTRIBUTE *pTemplate, int count,
      PRBool token)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PK11_FindObjectForCert
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1723,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1727,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 3
    argNames:
    - objType
    - objSpec
    - slotp
    argTypes:
    - PK11ObjectType
    - void*
    - PK11SlotInfo**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1739
      start: 1698
    functionDepth: 8
    functionLinenumber: 1698
    functionLinenumberEnd: 1739
    functionName: PK11_GetObjectHandle
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PK11_FindObjectForCert
    linkageType: ''
    returnType: CK_OBJECT_HANDLE
    signature: "CK_OBJECT_HANDLE PK11_GetObjectHandle(PK11ObjectType objType, void
      *objSpec,\n                     PK11SlotInfo **slotp)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetObjectHandle
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1754,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1756,1
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1760,1
    - Dst: PK11_GetRWSession
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1761,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1763,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1766,1
    - Dst: PK11_RestoreROSession
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1768,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1770,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1770,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 4
    argNames:
    - objType
    - objSpec
    - attrType
    - item
    argTypes:
    - PK11ObjectType
    - void*
    - CK_ATTRIBUTE_TYPE
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1774
      start: 1744
    functionDepth: 9
    functionLinenumber: 1744
    functionLinenumberEnd: 1774
    functionName: PK11_WriteRawAttribute
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 0
    functionsReached:
    - PK11_GetRWSession
    - PORT_SetError
    - PK11_GETTAB
    - PK11_SETATTRS
    - PK11_GetObjectHandle
    - PK11_RestoreROSession
    - PK11_MapError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_WriteRawAttribute(PK11ObjectType objType, void *objSpec,\n
      \                      CK_ATTRIBUTE_TYPE attrType, SECItem *item)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetObjectHandle
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1783,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1785,1
    - Dst: PK11_ReadAttribute
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1789,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - objType
    - objSpec
    - attrType
    - item
    argTypes:
    - PK11ObjectType
    - void*
    - CK_ATTRIBUTE_TYPE
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1790
      start: 1776
    functionDepth: 9
    functionLinenumber: 1776
    functionLinenumberEnd: 1790
    functionName: PK11_ReadRawAttribute
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 5
    functionsReached:
    - PORT_SetError
    - PK11_GetObjectHandle
    - PK11_ReadAttribute
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_ReadRawAttribute(PK11ObjectType objType, void *objSpec,\n
      \                     CK_ATTRIBUTE_TYPE attrType, SECItem *item)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetObjectHandle
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1799,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1801,1
    - Dst: PK11_GetAttributes
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1804,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1806,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1806,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - arena
    - objType
    - objSpec
    - pTemplate
    - count
    argTypes:
    - PLArenaPool*
    - PK11ObjectType
    - void*
    - CK_ATTRIBUTE*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1810
      start: 1792
    functionDepth: 9
    functionLinenumber: 1792
    functionLinenumberEnd: 1810
    functionName: PK11_ReadRawAttributes
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 1
    functionsReached:
    - PK11_MapError
    - PORT_SetError
    - PK11_GetAttributes
    - PK11_GetObjectHandle
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_ReadRawAttributes(PLArenaPool *arena, PK11ObjectType
      objType, void *objSpec,\n                       CK_ATTRIBUTE *pTemplate, unsigned
      int count)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1820,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1825,1
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1836,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1837,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1838,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1840,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1840,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1852,1
    - Dst: DER_UTCTimeToTime
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1858,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 5
    argNames:
    - slot
    - object
    - type
    - distrusted
    - time
    argTypes:
    - PK11SlotInfo*
    - CK_OBJECT_HANDLE
    - CK_ATTRIBUTE_TYPE
    - PRBool*
    - PRTime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1859
      start: 1812
    functionDepth: 2
    functionLinenumber: 1812
    functionLinenumberEnd: 1859
    functionName: PK11_ReadDistrustAfterAttribute
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PK11_GETTAB
    - PK11_EnterSlotMonitor
    - PK11_ExitSlotMonitor
    - PK11_MapError
    - DER_UTCTimeToTime
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_ReadDistrustAfterAttribute(PK11SlotInfo *slot,\n                                CK_OBJECT_HANDLE
      object,\n                                CK_ATTRIBUTE_TYPE type,\n                                /*
      out */ PRBool *distrusted,\n                                /* out */ PRTime
      *time)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1874,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1876,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1880,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1881,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1881,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1885,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1886,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1887,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1890,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1890,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1895,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - slot
    - theTemplate
    - tsize
    argTypes:
    - PK11SlotInfo*
    - CK_ATTRIBUTE*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1897
      start: 1864
    functionDepth: 2
    functionLinenumber: 1864
    functionLinenumberEnd: 1897
    functionName: pk11_FindObjectByTemplate
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 10
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - PK11_GETTAB
    - PK11_EnterSlotMonitor
    - PK11_ExitSlotMonitor
    - PK11_MapError
    linkageType: ''
    returnType: CK_OBJECT_HANDLE
    signature: CK_OBJECT_HANDLE pk11_FindObjectByTemplate(PK11SlotInfo *slot, CK_ATTRIBUTE
      *theTemplate, size_t tsize)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: pk11_GetNewSession
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1913,1
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1916,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1919,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1924,1
    - Dst: pk11_CloseSession
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1925,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1926,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1926,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1938,1
    - Dst: PORT_Realloc
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1941,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1947,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1950,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1953,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1953,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1954,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1961,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1963,1
    - Dst: pk11_CloseSession
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1965,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1968,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 49
    argCount: 4
    argNames:
    - slot
    - findTemplate
    - templCount
    - object_count
    argTypes:
    - PK11SlotInfo*
    - CK_ATTRIBUTE*
    - size_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1974
      start: 1902
    functionDepth: 3
    functionLinenumber: 1902
    functionLinenumberEnd: 1974
    functionName: pk11_FindObjectsByTemplate
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 7
    functionsReached:
    - PORT_Alloc
    - PORT_Free
    - PORT_SetError
    - PK11_GETTAB
    - PK11_EnterSlotMonitor
    - PORT_Realloc
    - PK11_ExitSlotMonitor
    - pk11_CloseSession
    - PK11_MapError
    - pk11_GetNewSession
    linkageType: ''
    returnType: CK_OBJECT_HANDLE
    signature: "CK_OBJECT_HANDLE *\npk11_FindObjectsByTemplate(PK11SlotInfo *slot,
      CK_ATTRIBUTE *findTemplate,\n                           size_t templCount, int
      *object_count)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1981,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:1988,1
    - Dst: pk11_FindObjectsByTemplate
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2002,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2012,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2014,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2015,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2019,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2020,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2023,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2025,1
    - Dst: PORT_ArenaNew
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2029,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2031,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2032,1
    - Dst: PORT_ArenaNewArray
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2036,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2038,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2039,1
    - Dst: PK11_ReadAttribute
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2046,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2049,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2050,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2054,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2055,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2056,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2060,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 60
    argCount: 3
    argNames:
    - slot
    - derSubject
    - results
    argTypes:
    - PK11SlotInfo*
    - SECItem*
    - CERTCertificateList**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2063
      start: 1976
    functionDepth: 4
    functionLinenumber: 1976
    functionLinenumberEnd: 2063
    functionName: PK11_FindRawCertsWithSubject
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_NewArena
    - PORT_FreeArena
    - PORT_Free
    - PORT_ArenaNew
    - PORT_SetError
    - PK11_ReadAttribute
    - PORT_ArenaNewArray
    - pk11_FindObjectsByTemplate
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus PK11_FindRawCertsWithSubject(PK11SlotInfo *slot, SECItem
      *derSubject,\n                             CERTCertificateList **results)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_InitCheapArena
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2086,1
    - Dst: PK11_GetAttributes
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2088,1
    - Dst: PORT_DestroyCheapArena
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2090,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2091,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2091,1
    - Dst: PORT_DestroyCheapArena
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2096,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2098,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2100,1
    - Dst: pk11_FindObjectByTemplate
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2110,1
    - Dst: PORT_DestroyCheapArena
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2111,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - slot
    - searchID
    - matchclass
    argTypes:
    - PK11SlotInfo*
    - CK_OBJECT_HANDLE
    - CK_OBJECT_CLASS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2114
      start: 2069
    functionDepth: 3
    functionLinenumber: 2069
    functionLinenumberEnd: 2114
    functionName: PK11_MatchItem
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 8
    functionsReached:
    - PORT_DestroyCheapArena
    - PORT_SetError
    - PORT_InitCheapArena
    - PK11_GetAttributes
    - pk11_FindObjectByTemplate
    - PK11_MapError
    linkageType: ''
    returnType: CK_OBJECT_HANDLE
    signature: "CK_OBJECT_HANDLE PK11_MatchItem(PK11SlotInfo *slot, CK_OBJECT_HANDLE
      searchID,\n               CK_OBJECT_CLASS matchclass)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PK11_EnterSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2128,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2130,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2134,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2135,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2135,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2143,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2147,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2147,1
    - Dst: PK11_GETTAB
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2153,1
    - Dst: PK11_ExitSlotMonitor
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2154,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - slot
    - findTemplate
    - templCount
    argTypes:
    - PK11SlotInfo*
    - CK_ATTRIBUTE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2156
      start: 2119
    functionDepth: 2
    functionLinenumber: 2119
    functionLinenumberEnd: 2156
    functionName: PK11_NumberObjectsFor
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    - PK11_GETTAB
    - PK11_EnterSlotMonitor
    - PK11_ExitSlotMonitor
    - PK11_MapError
    linkageType: ''
    returnType: int
    signature: "int PK11_NumberObjectsFor(PK11SlotInfo *slot, CK_ATTRIBUTE *findTemplate,\n
      \                     int templCount)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pk11_FindObjectsByTemplate
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2169,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2184,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - slot
    - arg
    argTypes:
    - PK11SlotInfo*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2186
      start: 2161
    functionDepth: 4
    functionLinenumber: 2161
    functionLinenumberEnd: 2186
    functionName: PK11_TraverseSlot
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 1
    functionsReached:
    - PORT_Free
    - pk11_FindObjectsByTemplate
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PK11_TraverseSlot(PK11SlotInfo *slot, void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetAllTokens
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2200,1
    - Dst: pk11_AuthenticateUnfriendly
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2207,1
    - Dst: PK11_FreeSlotList
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2217,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - arg
    - forceLogin
    - wincx
    argTypes:
    - void*
    - PRBool
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2220
      start: 2191
    functionDepth: 6
    functionLinenumber: 2191
    functionLinenumberEnd: 2220
    functionName: pk11_TraverseAllSlots
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 4
    functionsReached:
    - PK11_FreeSlotList
    - PK11_GetAllTokens
    - pk11_AuthenticateUnfriendly
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus pk11_TraverseAllSlots(SECStatus (*callback)(PK11SlotInfo
      *, void *),\n                      void *arg, PRBool forceLogin, void *wincx)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PK11_SETATTRS
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2236,1
    - Dst: PORT_Strchr
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2241,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2243,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2247,1
    - Dst: PK11_FindSlotByName
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2250,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2251,1
    - Dst: PK11_GetInternalKeySlot
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2255,1
    - Dst: PK11_GetInternalKeySlot
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2260,1
    - Dst: pk11_AuthenticateUnfriendly
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2266,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2268,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2274,1
    - Dst: pk11_FindObjectsByTemplate
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2275,1
    - Dst: pk11_FindObjectsByTemplate
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2281,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2286,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 43
    argCount: 5
    argNames:
    - nickname
    - slotptr
    - objclass
    - returnCount
    - wincx
    argTypes:
    - char*
    - PK11SlotInfo**
    - CK_OBJECT_CLASS
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2293
      start: 2222
    functionDepth: 5
    functionLinenumber: 2222
    functionLinenumberEnd: 2293
    functionName: PK11_FindObjectsFromNickname
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 0
    functionsReached:
    - PORT_Strchr
    - PORT_Alloc
    - PK11_FreeSlot
    - PK11_GetInternalKeySlot
    - PORT_Memcpy
    - PORT_Free
    - PORT_Strlen
    - PK11_SETATTRS
    - PK11_FindSlotByName
    - pk11_AuthenticateUnfriendly
    - pk11_FindObjectsByTemplate
    linkageType: ''
    returnType: CK_OBJECT_HANDLE
    signature: "CK_OBJECT_HANDLE *\nPK11_FindObjectsFromNickname(char *nickname, PK11SlotInfo
      **slotptr,\n                             CK_OBJECT_CLASS objclass, int *returnCount,
      void *wincx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2305,1
    - Dst: PK11_GetAttributes
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2311,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2313,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2314,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2314,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - slot
    - handle
    argTypes:
    - PK11SlotInfo*
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2322
      start: 2295
    functionDepth: 3
    functionLinenumber: 2295
    functionLinenumberEnd: 2322
    functionName: pk11_GetLowLevelKeyFromHandle
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 2
    functionsReached:
    - SECITEM_AllocItem
    - PORT_SetError
    - PK11_GetAttributes
    - PK11_MapError
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      pk11_GetLowLevelKeyFromHandle(PK11SlotInfo *slot, CK_OBJECT_HANDLE handle)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetObjectHandle
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2330,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2332,1
    - Dst: pk11slot_GetFIPSStatus
      Src: /src/nss/lib/pk11wrap/pk11obj.c:2335,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - objType
    - objSpec
    argTypes:
    - PK11ObjectType
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2337
      start: 2324
    functionDepth: 9
    functionLinenumber: 2324
    functionLinenumberEnd: 2337
    functionName: PK11_ObjectGetFIPSStatus
    functionSourceFile: /src/nss/lib/pk11wrap/pk11obj.c
    functionUses: 0
    functionsReached:
    - pk11slot_GetFIPSStatus
    - PORT_SetError
    - PK11_GetObjectHandle
    linkageType: ''
    returnType: PRBool
    signature: PRBool PK11_ObjectGetFIPSStatus(PK11ObjectType objType, void *objSpec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - f
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: operator()(FILE* f)
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - fclose
    linkageType: ''
    returnType: void
    signature: void operator()(FILE* f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fopen_s
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:61,1
    - Dst: string::c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:61,1
    - Dst: c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:61,1
    - Dst: ScopedFILE::reset
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:66,1
    - Dst: ScopedFILE::reset
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: fopen
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: string::c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: ScopedFILE::release
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ' dir'
    - ' filename'
    - ' mode'
    argTypes:
    - string
    - string
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 72
    functionName: mozilla::pkix::test::OpenFile
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - ScopedFILE::reset
    - ScopedFILE::release
    - fopen
    - fopen_s
    - c_str
    - string::c_str
    linkageType: ''
    returnType: FILE
    signature: 'FILE *

      OpenFile(const string& dir, const string& filename, const string& mode)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - f
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: operator()(FILE* f)
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - fclose
    linkageType: ''
    returnType: void
    signature: void operator()(FILE* f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fopen_s
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:61,1
    - Dst: string::c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:61,1
    - Dst: c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:61,1
    - Dst: ScopedFILE::reset
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:66,1
    - Dst: ScopedFILE::reset
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: fopen
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: string::c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: ScopedFILE::release
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ' dir'
    - ' filename'
    - ' mode'
    argTypes:
    - string
    - string
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 72
    functionName: mozilla::pkix::test::OpenFile
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - ScopedFILE::reset
    - ScopedFILE::release
    - fopen
    - fopen_s
    - c_str
    - string::c_str
    linkageType: ''
    returnType: FILE
    signature: 'FILE *

      OpenFile(const string& dir, const string& filename, const string& mode)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Input::Init
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:80,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:80,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:80,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:84,1
    - Dst: InputsAreEqual
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - input
    - ' bs'
    argTypes:
    - Input
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 87
    functionName: mozilla::pkix::test::InputEqualsByteString
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - length
    - abort
    - InputsAreEqual
    - Input::Init
    - data
    linkageType: ''
    returnType: bool
    signature: bool InputEqualsByteString(Input input, const ByteString& bs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:96,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - input
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 101
    functionName: mozilla::pkix::test::InputToByteString
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - Reader::Read
    - ByteString::push_back
    linkageType: ''
    returnType: ByteString
    signature: ByteString InputToByteString(Input input)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:107,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:110,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:110,1
    - Dst: find
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:113,1
    - Dst: find
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:117,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:117,1
    - Dst: replace
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:120,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:120,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - ' item'
    - ' from'
    - ' to'
    argTypes:
    - ByteString
    - ByteString
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 122
    functionName: mozilla::pkix::test::TamperOnce
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - find
    - replace
    - length
    linkageType: ''
    returnType: Result
    signature: "Result TamperOnce(/*in/out*/ ByteString& item, const ByteString& from,\n
      \          const ByteString& to)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:129,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:131,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:132,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:132,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:133,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:134,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:135,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:135,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:136,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:137,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:138,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:138,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:139,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:139,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:143,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - tag
    - length
    - ' value'
    argTypes:
    - uint8_t
    - size_t
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 147
    functionName: mozilla::pkix::test::TLV
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - length
    - ByteString::append
    - abort
    - ByteString::push_back
    - static_cast<uint8_t>
    linkageType: ''
    returnType: ByteString
    signature: ByteString TLV(uint8_t tag, size_t length, const ByteString& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 155
    functionName: mozilla::pkix::test::OCSPResponseExtension::OCSPResponseExtension
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OCSPResponseExtension::OCSPResponseExtension()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:160,1
    - Dst: sha256WithRSAEncryption
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:168,1
    - Dst: static_cast<time_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' aCertID'
    - time
    argTypes:
    - CertID
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 178
    functionName: mozilla::pkix::test::OCSPResponseContext::OCSPResponseContext
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - ByteString
    - static_cast<time_t>
    - sha256WithRSAEncryption
    linkageType: ''
    returnType: void
    signature: void OCSPResponseContext::OCSPResponseContext(const CertID& aCertID,
      time_t time)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Input::Init
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:194,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:194,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:194,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:195,1
    - Dst: DigestAlgorithmToSizeInBytes
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:197,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:198,1
    - Dst: mozilla::pkix::test::TestDigestBuf
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:199,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:201,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:203,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' toHash'
    - digestAlgorithm
    argTypes:
    - ByteString
    - DigestAlgorithm
    assertStmts:
    - condition: (digestLen <= sizeof(digestBuf))
      pos:
        line_end: 197
        line_start: 197
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    constantsTouched: []
    func_position:
      end: 204
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 204
    functionName: mozilla::pkix::test::HASH
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - length
    - DigestAlgorithmToSizeInBytes
    - mozilla::pkix::test::TestDigestBuf
    - abort
    - assert
    - ByteString
    - Input::Init
    - data
    linkageType: ''
    returnType: ByteString
    signature: ByteString HASH(const ByteString& toHash, DigestAlgorithm digestAlgorithm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:210,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:211,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' bytes'
    - digestAlgorithm
    argTypes:
    - ByteString
    - DigestAlgorithm
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 214
    functionName: mozilla::pkix::test::HashedOctetString
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - ByteString
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::ENCODING_FAILED
    linkageType: ''
    returnType: ByteString
    signature: ByteString HashedOctetString(const ByteString& bytes, DigestAlgorithm
      digestAlgorithm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:223,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:224,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:226,1
    - Dst: ByteString::length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:226,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' rawBytes'
    - corrupt
    argTypes:
    - ByteString
    - bool
    assertStmts:
    - condition: (prefixed.length() > 8)
      pos:
        line_end: 225
        line_start: 225
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    constantsTouched: []
    func_position:
      end: 230
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 230
    functionName: mozilla::pkix::test::BitString
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - ByteString::append
    - assert
    - ByteString::length
    - mozilla::pkix::test::TLV
    - ByteString::push_back
    linkageType: ''
    returnType: ByteString
    signature: ByteString BitString(const ByteString& rawBytes, bool corrupt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:236,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 238
    functionName: mozilla::pkix::test::Boolean
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::push_back
    linkageType: ''
    returnType: ByteString
    signature: ByteString Boolean(bool value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:247,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:251,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:251,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:252,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 253
    functionName: mozilla::pkix::test::Integer
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint8_t>
    - mozilla::pkix::test::TLV
    - abort
    - ByteString::push_back
    linkageType: ''
    returnType: ByteString
    signature: ByteString Integer(long value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gmtime_s
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - t
    - exploded
    argTypes:
    - time_t*
    - tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 266
    functionName: mozilla::pkix::test::gmtime_r
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - gmtime_s
    linkageType: ''
    returnType: tm
    signature: 'tm *

      gmtime_r(const time_t* t, /*out*/ tm* exploded)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:278,1
    - Dst: mozilla::pkix::test::gmtime_r
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:281,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:282,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:294,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:300,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:300,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:301,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:301,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:304,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:304,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:305,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:305,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:306,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:306,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:307,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:307,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:308,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:308,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:309,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:309,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:310,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:310,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:311,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:311,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:312,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:312,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:313,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:313,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:314,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:314,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:315,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:315,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:316,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:318,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - time
    - encoding
    argTypes:
    - time_t
    - TimeEncoding
    assertStmts:
    - condition: (encoding == UTCTime || encoding == GeneralizedTime)
      pos:
        line_end: 277
        line_start: 277
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    constantsTouched: []
    func_position:
      end: 320
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 320
    functionName: mozilla::pkix::test::TimeToEncodedTime
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::gmtime_r
    - assert
    - ByteString::push_back
    - ByteString
    - static_cast<uint8_t>
    linkageType: ''
    returnType: ByteString
    signature: ByteString TimeToEncodedTime(time_t time, TimeEncoding encoding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TimeToEncodedTime
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - time
    argTypes:
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 322
    functionDepth: 2
    functionLinenumber: 322
    functionLinenumberEnd: 326
    functionName: mozilla::pkix::test::TimeToGeneralizedTime
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TimeToEncodedTime
    linkageType: ''
    returnType: ByteString
    signature: ByteString TimeToGeneralizedTime(time_t time)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::gmtime_r
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:337,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:338,1
    - Dst: mozilla::pkix::test::TimeToEncodedTime
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:345,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - time
    argTypes:
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 333
    functionDepth: 2
    functionLinenumber: 333
    functionLinenumberEnd: 346
    functionName: mozilla::pkix::test::TimeToTimeChoice
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::gmtime_r
    - mozilla::pkix::test::TimeToEncodedTime
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString TimeToTimeChoice(time_t time)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:352,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:353,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:354,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:355,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:356,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:357,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:358,1
    - Dst: DaysBeforeYear
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:360,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:376,1
    - Dst: TimeFromElapsedSecondsAD
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:390,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 6
    argNames:
    - year
    - month
    - day
    - hour
    - minutes
    - seconds
    argTypes:
    - uint16_t
    - uint16_t
    - uint16_t
    - uint16_t
    - uint16_t
    - uint16_t
    assertStmts:
    - condition: (year <= 9999)
      pos:
        line_end: 351
        line_start: 351
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (month <= 12)
      pos:
        line_end: 353
        line_start: 353
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (month >= 1)
      pos:
        line_end: 352
        line_start: 352
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (hour < 24)
      pos:
        line_end: 355
        line_start: 355
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (day >= 1)
      pos:
        line_end: 354
        line_start: 354
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (minutes < 60)
      pos:
        line_end: 356
        line_start: 356
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (seconds < 60)
      pos:
        line_end: 357
        line_start: 357
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (day <= daysInMonth)
      pos:
        line_end: 375
        line_start: 375
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    constantsTouched: []
    func_position:
      end: 391
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 391
    functionName: mozilla::pkix::test::YMDHMS
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - assert
    - DaysBeforeYear
    - TimeFromElapsedSecondsAD
    linkageType: ''
    returnType: Time
    signature: "Time YMDHMS(uint16_t year, uint16_t month, uint16_t day,\n       uint16_t
      hour, uint16_t minutes, uint16_t seconds)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SignData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:400,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:401,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:407,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:408,1
    - Dst: empty
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:414,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:415,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:419,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:424,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:425,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:426,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:427,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:428,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 5
    argNames:
    - ' tbsData'
    - ' keyPair'
    - ' signatureAlgorithm'
    - corrupt
    - certs
    argTypes:
    - ByteString
    - TestKeyPair
    - TestSignatureAlgorithm
    - bool
    - ByteString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 429
    functionName: mozilla::pkix::test::SignedData
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - SignData
    - ByteString::append
    - mozilla::pkix::test::ENCODING_FAILED
    - ByteString
    - empty
    linkageType: ''
    returnType: ByteString
    signature: "ByteString SignedData(const ByteString& tbsData,\n           const
      TestKeyPair& keyPair,\n           const TestSignatureAlgorithm& signatureAlgorithm,\n
      \          bool corrupt, /*optional*/ const ByteString* certs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:444,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:444,1
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:444,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:444,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:447,1
    - Dst: mozilla::pkix::test::Boolean
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:447,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:452,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:453,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - extnID
    - critical
    - ' extnValueBytes'
    argTypes:
    - Input
    - Critical
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 454
    functionName: mozilla::pkix::test::Extension
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - Input::UnsafeGetData
    - Input::GetLength
    - ByteString::append
    - ByteString
    - mozilla::pkix::test::Boolean
    linkageType: ''
    returnType: ByteString
    signature: ByteString Extension(Input extnID, Critical critical, const ByteString&
      extnValueBytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:459,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:459,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:462,1
    - Dst: mozilla::pkix::test::Boolean
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:462,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:466,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:467,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - extnID
    - critical
    argTypes:
    - Input
    - Critical
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 468
    functionName: mozilla::pkix::test::EmptyExtension
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - Input::UnsafeGetData
    - Input::GetLength
    - ByteString::append
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::Boolean
    linkageType: ''
    returnType: ByteString
    signature: ByteString EmptyExtension(Input extnID, Critical critical)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:477,1
    - Dst: _dupenv_s
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:484,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:485,1
    - Dst: free
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:489,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 493
    functionName: mozilla::pkix::test::GetEnv
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - getenv
    - free
    - abort
    - _dupenv_s
    linkageType: ''
    returnType: std::string
    signature: std::string GetEnv(const char* name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:498,1
    - Dst: mozilla::pkix::test::GetEnv
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:503,1
    - Dst: std::string::empty
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:504,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:510,1
    - Dst: std::ostringstream::str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:513,1
    - Dst: mozilla::pkix::test::OpenFile
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:516,1
    - Dst: fwrite
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:518,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:518,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:518,1
    - Dst: ScopedFILE::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:518,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - ' result'
    - suffix
    argTypes:
    - ByteString
    - char*
    assertStmts:
    - condition: (suffix)
      pos:
        line_end: 497
        line_start: 497
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (false)
      pos:
        line_end: 509
        line_start: 509
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    constantsTouched: []
    func_position:
      end: 521
      start: 495
    functionDepth: 2
    functionLinenumber: 495
    functionLinenumberEnd: 521
    functionName: mozilla::pkix::test::MaybeLogOutput
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - std::string::empty
    - length
    - ScopedFILE::get
    - assert
    - std::ostringstream::str
    - fwrite
    - mozilla::pkix::test::GetEnv
    - mozilla::pkix::test::OpenFile
    - data
    linkageType: ''
    returnType: void
    signature: void MaybeLogOutput(const ByteString& result, const char* suffix)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TBSCertificate
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:550,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:556,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:557,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:562,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:563,1
    - Dst: mozilla::pkix::test::MaybeLogOutput
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:566,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 11
    argNames:
    - version
    - ' signature'
    - ' serialNumber'
    - ' issuerNameDER'
    - notBefore
    - notAfter
    - ' subjectNameDER'
    - ' subjectKeyPair'
    - extensions
    - ' issuerKeyPair'
    - ' signatureAlgorithm'
    argTypes:
    - long
    - TestSignatureAlgorithm
    - ByteString
    - ByteString
    - time_t
    - time_t
    - ByteString
    - TestKeyPair
    - ByteString*
    - TestKeyPair
    - TestSignatureAlgorithm
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 538
    functionDepth: 3
    functionLinenumber: 538
    functionLinenumberEnd: 569
    functionName: mozilla::pkix::test::CreateEncodedCertificate
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - ByteString
    - mozilla::pkix::test::TBSCertificate
    - mozilla::pkix::test::MaybeLogOutput
    - mozilla::pkix::test::ENCODING_FAILED
    linkageType: ''
    returnType: ByteString
    signature: "ByteString CreateEncodedCertificate(long version,\n                         const
      TestSignatureAlgorithm& signature,\n                         const ByteString&
      serialNumber,\n                         const ByteString& issuerNameDER,\n                         time_t
      notBefore, time_t notAfter,\n                         const ByteString& subjectNameDER,\n
      \                        const TestKeyPair& subjectKeyPair,\n                         /*optional*/
      const ByteString* extensions,\n                         const TestKeyPair& issuerKeyPair,\n
      \                        const TestSignatureAlgorithm& signatureAlgorithm)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<long>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:595,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:597,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:599,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:602,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:603,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:604,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:612,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:613,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:616,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:617,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:620,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:621,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:622,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:623,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:624,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:627,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:629,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:631,1
    - Dst: empty
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:635,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:636,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:640,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:641,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:644,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:645,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:646,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:648,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:651,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 9
    argNames:
    - versionValue
    - ' serialNumber'
    - ' signature'
    - ' issuer'
    - notBeforeTime
    - notAfterTime
    - ' subject'
    - ' subjectPublicKeyInfo'
    - extensions
    argTypes:
    - long
    - ByteString
    - ByteString
    - ByteString
    - time_t
    - time_t
    - ByteString
    - ByteString
    - ByteString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 585
    functionDepth: 1
    functionLinenumber: 585
    functionLinenumberEnd: 652
    functionName: mozilla::pkix::test::TBSCertificate
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 1
    functionsReached:
    - ByteString::append
    - static_cast<long>
    - mozilla::pkix::test::ENCODING_FAILED
    - mozilla::pkix::test::TLV
    - empty
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: "ByteString TBSCertificate(long versionValue,\n               const
      ByteString& serialNumber, const ByteString& signature,\n               const
      ByteString& issuer, time_t notBeforeTime,\n               time_t notAfterTime,
      const ByteString& subject,\n               const ByteString& subjectPublicKeyInfo,\n
      \              /*optional*/ const ByteString* extensions)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:675,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:676,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - (type)
    - directoryStringType
    - ' value'
    argTypes:
    - uint8_t[]
    - uint8_t
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 678
    functionName: mozilla::pkix::test::AVA
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::append
    linkageType: ''
    returnType: ByteString
    signature: "ByteString AVA(const uint8_t (&type)[N], uint8_t directoryStringType,\n
      \   const ByteString& value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::AVA
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' value'
    - encodingTag
    argTypes:
    - ByteString
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 680
    functionDepth: 1
    functionLinenumber: 680
    functionLinenumberEnd: 690
    functionName: mozilla::pkix::test::CN
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::AVA
    linkageType: ''
    returnType: ByteString
    signature: ByteString CN(const ByteString& value, uint8_t encodingTag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::AVA
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' value'
    - encodingTag
    argTypes:
    - ByteString
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 692
    functionDepth: 1
    functionLinenumber: 692
    functionLinenumberEnd: 703
    functionName: mozilla::pkix::test::OU
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::AVA
    linkageType: ''
    returnType: ByteString
    signature: ByteString OU(const ByteString& value, uint8_t encodingTag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::AVA
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 705
    functionDepth: 1
    functionLinenumber: 705
    functionLinenumberEnd: 715
    functionName: mozilla::pkix::test::emailAddress
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::AVA
    linkageType: ''
    returnType: ByteString
    signature: ByteString emailAddress(const ByteString& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' avas'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 720
    functionDepth: 0
    functionLinenumber: 720
    functionLinenumberEnd: 724
    functionName: mozilla::pkix::test::RDN
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    linkageType: ''
    returnType: ByteString
    signature: ByteString RDN(const ByteString& avas)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:734,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rdns'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 731
    functionDepth: 0
    functionLinenumber: 731
    functionLinenumberEnd: 735
    functionName: mozilla::pkix::test::Name
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    linkageType: ''
    returnType: ByteString
    signature: ByteString Name(const ByteString& rdns)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::Integer
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:740,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - serialNumberValue
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 737
    functionDepth: 1
    functionLinenumber: 737
    functionLinenumberEnd: 741
    functionName: mozilla::pkix::test::CreateEncodedSerialNumber
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::Integer
    linkageType: ''
    returnType: ByteString
    signature: ByteString CreateEncodedSerialNumber(long serialNumberValue)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:755,1
    - Dst: mozilla::pkix::test::Integer
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:759,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:760,1
    - Dst: mozilla::pkix::test::Extension
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:767,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:767,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - isCA
    - pathLenConstraintValue
    - critical
    argTypes:
    - bool
    - long*
    - Critical
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 746
    functionDepth: 2
    functionLinenumber: 746
    functionLinenumberEnd: 768
    functionName: mozilla::pkix::test::CreateEncodedBasicConstraints
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::Integer
    - ByteString::append
    - Input
    - mozilla::pkix::test::Extension
    linkageType: ''
    returnType: ByteString
    signature: "ByteString CreateEncodedBasicConstraints(bool isCA,\n                              /*optional
      in*/ const long* pathLenConstraintValue,\n                              Critical
      critical)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:775,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:775,1
    - Dst: mozilla::pkix::test::Extension
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:782,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ekuOID
    - critical
    argTypes:
    - Input
    - Critical
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 772
    functionDepth: 2
    functionLinenumber: 772
    functionLinenumberEnd: 783
    functionName: mozilla::pkix::test::CreateEncodedEKUExtension
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - Input::GetLength
    - Input
    - Input::UnsafeGetData
    - mozilla::pkix::test::Extension
    linkageType: ''
    returnType: ByteString
    signature: ByteString CreateEncodedEKUExtension(Input ekuOID, Critical critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::Extension
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:793,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' names'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 790
    functionDepth: 2
    functionLinenumber: 790
    functionLinenumberEnd: 794
    functionName: mozilla::pkix::test::CreateEncodedSubjectAltName
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - Input
    - mozilla::pkix::test::Extension
    linkageType: ''
    returnType: ByteString
    signature: ByteString CreateEncodedSubjectAltName(const ByteString& names)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::EmptyExtension
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:799,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:799,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 796
    functionDepth: 2
    functionLinenumber: 796
    functionLinenumberEnd: 800
    functionName: mozilla::pkix::test::CreateEncodedEmptySubjectAltName
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - Input
    - mozilla::pkix::test::EmptyExtension
    linkageType: ''
    returnType: ByteString
    signature: ByteString CreateEncodedEmptySubjectAltName()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:810,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:828,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:834,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:835,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:838,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:843,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:844,1
    - Dst: mozilla::pkix::test::MaybeLogOutput
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:847,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 805
    functionDepth: 3
    functionLinenumber: 805
    functionLinenumberEnd: 850
    functionName: mozilla::pkix::test::CreateEncodedOCSPResponse
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::append
    - mozilla::pkix::test::ENCODING_FAILED
    - mozilla::pkix::test::MaybeLogOutput
    - ByteString
    - ByteString::push_back
    linkageType: ''
    returnType: ByteString
    signature: ByteString CreateEncodedOCSPResponse(OCSPResponseContext& context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:863,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:864,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:866,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:869,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:871,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:872,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 855
    functionDepth: 1
    functionLinenumber: 855
    functionLinenumberEnd: 873
    functionName: mozilla::pkix::test::ResponseBytes
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - ByteString
    - mozilla::pkix::test::TLV
    - ByteString::append
    - mozilla::pkix::test::ENCODING_FAILED
    linkageType: ''
    returnType: ByteString
    signature: ByteString ResponseBytes(OCSPResponseContext& context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:884,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:885,1
    - Dst: mozilla::pkix::test::SignedData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:888,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 880
    functionDepth: 2
    functionLinenumber: 880
    functionLinenumberEnd: 891
    functionName: mozilla::pkix::test::BasicOCSPResponse
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - ByteString
    - mozilla::pkix::test::SignedData
    - mozilla::pkix::test::ENCODING_FAILED
    linkageType: ''
    returnType: ByteString
    signature: ByteString BasicOCSPResponse(OCSPResponseContext& context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:902,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:904,1
    - Dst: mozilla::pkix::test::Boolean
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:904,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:906,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:907,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:908,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' extension'
    argTypes:
    - OCSPResponseExtension
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 898
    functionDepth: 1
    functionLinenumber: 898
    functionLinenumberEnd: 909
    functionName: mozilla::pkix::test::OCSPExtension
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::Boolean
    - ByteString::append
    linkageType: ''
    returnType: ByteString
    signature: ByteString OCSPExtension(OCSPResponseExtension& extension)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::OCSPExtension
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:920,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:921,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:922,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:924,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:927,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - extensions
    argTypes:
    - OCSPResponseExtension*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 914
    functionDepth: 2
    functionLinenumber: 914
    functionLinenumberEnd: 928
    functionName: mozilla::pkix::test::OCSPExtensions
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::OCSPExtension
    - ByteString::append
    - mozilla::pkix::test::ENCODING_FAILED
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString OCSPExtensions(OCSPResponseExtension* extensions)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:940,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:941,1
    - Dst: mozilla::pkix::test::TimeToGeneralizedTime
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:943,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:944,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:945,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:948,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:949,1
    - Dst: mozilla::pkix::test::OCSPExtensions
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:954,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:958,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:959,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:960,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:961,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:963,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:965,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 936
    functionDepth: 3
    functionLinenumber: 936
    functionLinenumberEnd: 966
    functionName: mozilla::pkix::test::ResponseData
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::append
    - mozilla::pkix::test::ENCODING_FAILED
    - mozilla::pkix::test::TimeToGeneralizedTime
    - mozilla::pkix::test::OCSPExtensions
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString ResponseData(OCSPResponseContext& context)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: signerNameDER::empty
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:977,1
    - Dst: mozilla::pkix::test::KeyHash
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:981,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:982,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:983,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:990,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:992,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 993
      start: 972
    functionDepth: 1
    functionLinenumber: 972
    functionLinenumberEnd: 993
    functionName: mozilla::pkix::test::ResponderID
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - signerNameDER::empty
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::ENCODING_FAILED
    - ByteString
    - mozilla::pkix::test::KeyHash
    - static_cast<uint8_t>
    linkageType: ''
    returnType: ByteString
    signature: ByteString ResponderID(OCSPResponseContext& context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::HashedOctetString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1003,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' subjectPublicKey'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 1000
    functionDepth: 2
    functionLinenumber: 1000
    functionLinenumberEnd: 1004
    functionName: mozilla::pkix::test::KeyHash
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 1
    functionsReached:
    - mozilla::pkix::test::HashedOctetString
    linkageType: ''
    returnType: ByteString
    signature: ByteString KeyHash(const ByteString& subjectPublicKey)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1016,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1017,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1020,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1021,1
    - Dst: mozilla::pkix::test::TimeToGeneralizedTime
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1023,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1024,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1025,1
    - Dst: mozilla::pkix::test::TimeToGeneralizedTime
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1029,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1030,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1031,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1033,1
    - Dst: mozilla::pkix::test::OCSPExtensions
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1038,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1042,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1043,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1044,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1045,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1046,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1047,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 1012
    functionDepth: 3
    functionLinenumber: 1012
    functionLinenumberEnd: 1048
    functionName: mozilla::pkix::test::SingleResponse
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::append
    - mozilla::pkix::test::ENCODING_FAILED
    - mozilla::pkix::test::TimeToGeneralizedTime
    - mozilla::pkix::test::OCSPExtensions
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString SingleResponse(OCSPResponseContext& context)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: certID::issuer::UnsafeGetData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1058,1
    - Dst: certID::issuer::GetLength
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1059,1
    - Dst: mozilla::pkix::test::HashedOctetString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1060,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1061,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1062,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1072,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1073,1
    - Dst: mozilla::pkix::der::ExpectTagAndSkipValue
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1076,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1077,1
    - Dst: mozilla::pkix::der::BitStringWithNoUnusedBits
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1080,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1082,1
    - Dst: mozilla::pkix::test::HashedOctetString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1084,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1084,1
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1084,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1085,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1086,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1087,1
    - Dst: certID::serialNumber::UnsafeGetData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1091,1
    - Dst: certID::serialNumber::GetLength
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1092,1
    - Dst: certIDHashAlgorithmEncoded::empty
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1113,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1114,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1118,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1121,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1124,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1127,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1132,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1133,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1134,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1135,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1136
      start: 1055
    functionDepth: 2
    functionLinenumber: 1055
    functionLinenumberEnd: 1136
    functionName: mozilla::pkix::test::CertID
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - certID::issuer::UnsafeGetData
    - mozilla::pkix::test::TLV
    - mozilla::pkix::der::ExpectTagAndGetValue
    - mozilla::pkix::der::BitStringWithNoUnusedBits
    - Input::UnsafeGetData
    - Input::GetLength
    - ByteString::append
    - mozilla::pkix::test::ENCODING_FAILED
    - certID::issuer::GetLength
    - certID::serialNumber::UnsafeGetData
    - mozilla::pkix::der::ExpectTagAndSkipValue
    - certID::serialNumber::GetLength
    - certIDHashAlgorithmEncoded::empty
    - ByteString
    - mozilla::pkix::test::HashedOctetString
    linkageType: ''
    returnType: ByteString
    signature: ByteString CertID(OCSPResponseContext& context)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1160,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1160,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1161,1
    - Dst: mozilla::pkix::test::TimeToGeneralizedTime
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1165,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1166,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1167,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1170,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1173,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts:
    - condition: (false)
      pos:
        line_end: 1172
        line_start: 1172
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    constantsTouched: []
    func_position:
      end: 1177
      start: 1149
    functionDepth: 3
    functionLinenumber: 1149
    functionLinenumberEnd: 1177
    functionName: mozilla::pkix::test::CertStatus
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::ENCODING_FAILED
    - assert
    - mozilla::pkix::test::TimeToGeneralizedTime
    - ByteString
    - static_cast<uint8_t>
    linkageType: ''
    returnType: ByteString
    signature: ByteString CertStatus(OCSPResponseContext& context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1185,1
    - Dst: TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' aPublicKeyAlg'
    - ' spk'
    argTypes:
    - TestPublicKeyAlgorithm
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1182
    functionDepth: 0
    functionLinenumber: 1182
    functionLinenumberEnd: 1190
    functionName: mozilla::pkix::test::TestKeyPair::TestKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - TLV
    linkageType: ''
    returnType: void
    signature: "void TestKeyPair::TestKeyPair(const TestPublicKeyAlgorithm& aPublicKeyAlg,\n
      \                        const ByteString& spk)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - f
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: operator()(FILE* f)
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - fclose
    linkageType: ''
    returnType: void
    signature: void operator()(FILE* f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fopen_s
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:61,1
    - Dst: string::c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:61,1
    - Dst: c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:61,1
    - Dst: ScopedFILE::reset
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:66,1
    - Dst: ScopedFILE::reset
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: fopen
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: string::c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: ScopedFILE::release
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ' dir'
    - ' filename'
    - ' mode'
    argTypes:
    - string
    - string
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 72
    functionName: mozilla::pkix::test::OpenFile
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 1
    functionsReached:
    - ScopedFILE::reset
    - ScopedFILE::release
    - fopen
    - fopen_s
    - c_str
    - string::c_str
    linkageType: ''
    returnType: FILE
    signature: 'FILE *

      OpenFile(const string& dir, const string& filename, const string& mode)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - f
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: operator()(FILE* f)
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - fclose
    linkageType: ''
    returnType: void
    signature: void operator()(FILE* f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fopen_s
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:61,1
    - Dst: string::c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:61,1
    - Dst: c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:61,1
    - Dst: ScopedFILE::reset
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:66,1
    - Dst: ScopedFILE::reset
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: fopen
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: string::c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: ScopedFILE::release
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ' dir'
    - ' filename'
    - ' mode'
    argTypes:
    - string
    - string
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 72
    functionName: mozilla::pkix::test::OpenFile
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 1
    functionsReached:
    - ScopedFILE::reset
    - ScopedFILE::release
    - fopen
    - fopen_s
    - c_str
    - string::c_str
    linkageType: ''
    returnType: FILE
    signature: 'FILE *

      OpenFile(const string& dir, const string& filename, const string& mode)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Input::Init
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:80,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:80,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:80,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:84,1
    - Dst: InputsAreEqual
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - input
    - ' bs'
    argTypes:
    - Input
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 87
    functionName: mozilla::pkix::test::InputEqualsByteString
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - length
    - abort
    - InputsAreEqual
    - Input::Init
    - data
    linkageType: ''
    returnType: bool
    signature: bool InputEqualsByteString(Input input, const ByteString& bs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:96,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - input
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 101
    functionName: mozilla::pkix::test::InputToByteString
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - Reader::Read
    - ByteString::push_back
    linkageType: ''
    returnType: ByteString
    signature: ByteString InputToByteString(Input input)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:107,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:110,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:110,1
    - Dst: find
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:113,1
    - Dst: find
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:117,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:117,1
    - Dst: replace
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:120,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:120,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - ' item'
    - ' from'
    - ' to'
    argTypes:
    - ByteString
    - ByteString
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 122
    functionName: mozilla::pkix::test::TamperOnce
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - find
    - replace
    - length
    linkageType: ''
    returnType: Result
    signature: "Result TamperOnce(/*in/out*/ ByteString& item, const ByteString& from,\n
      \          const ByteString& to)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:129,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:131,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:132,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:132,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:133,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:134,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:135,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:135,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:136,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:137,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:138,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:138,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:139,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:139,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:143,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - tag
    - length
    - ' value'
    argTypes:
    - uint8_t
    - size_t
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 147
    functionName: mozilla::pkix::test::TLV
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 21
    functionsReached:
    - length
    - ByteString::append
    - abort
    - ByteString::push_back
    - static_cast<uint8_t>
    linkageType: ''
    returnType: ByteString
    signature: ByteString TLV(uint8_t tag, size_t length, const ByteString& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 155
    functionName: mozilla::pkix::test::OCSPResponseExtension::OCSPResponseExtension
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OCSPResponseExtension::OCSPResponseExtension()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:160,1
    - Dst: sha256WithRSAEncryption
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:168,1
    - Dst: static_cast<time_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' aCertID'
    - time
    argTypes:
    - CertID
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 178
    functionName: mozilla::pkix::test::OCSPResponseContext::OCSPResponseContext
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - ByteString
    - static_cast<time_t>
    - sha256WithRSAEncryption
    linkageType: ''
    returnType: void
    signature: void OCSPResponseContext::OCSPResponseContext(const CertID& aCertID,
      time_t time)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Input::Init
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:194,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:194,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:194,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:195,1
    - Dst: DigestAlgorithmToSizeInBytes
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:197,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:198,1
    - Dst: mozilla::pkix::test::TestDigestBuf
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:199,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:201,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:203,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' toHash'
    - digestAlgorithm
    argTypes:
    - ByteString
    - DigestAlgorithm
    assertStmts:
    - condition: (digestLen <= sizeof(digestBuf))
      pos:
        line_end: 197
        line_start: 197
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    constantsTouched: []
    func_position:
      end: 204
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 204
    functionName: mozilla::pkix::test::HASH
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - length
    - DigestAlgorithmToSizeInBytes
    - mozilla::pkix::test::TestDigestBuf
    - abort
    - assert
    - ByteString
    - Input::Init
    - data
    linkageType: ''
    returnType: ByteString
    signature: ByteString HASH(const ByteString& toHash, DigestAlgorithm digestAlgorithm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:210,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:211,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' bytes'
    - digestAlgorithm
    argTypes:
    - ByteString
    - DigestAlgorithm
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 214
    functionName: mozilla::pkix::test::HashedOctetString
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 2
    functionsReached:
    - ByteString
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::ENCODING_FAILED
    linkageType: ''
    returnType: ByteString
    signature: ByteString HashedOctetString(const ByteString& bytes, DigestAlgorithm
      digestAlgorithm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:223,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:224,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:226,1
    - Dst: ByteString::length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:226,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' rawBytes'
    - corrupt
    argTypes:
    - ByteString
    - bool
    assertStmts:
    - condition: (prefixed.length() > 8)
      pos:
        line_end: 225
        line_start: 225
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    constantsTouched: []
    func_position:
      end: 230
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 230
    functionName: mozilla::pkix::test::BitString
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - ByteString::append
    - assert
    - ByteString::length
    - mozilla::pkix::test::TLV
    - ByteString::push_back
    linkageType: ''
    returnType: ByteString
    signature: ByteString BitString(const ByteString& rawBytes, bool corrupt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:236,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 238
    functionName: mozilla::pkix::test::Boolean
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 3
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::push_back
    linkageType: ''
    returnType: ByteString
    signature: ByteString Boolean(bool value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:247,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:251,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:251,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:252,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 253
    functionName: mozilla::pkix::test::Integer
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 2
    functionsReached:
    - static_cast<uint8_t>
    - mozilla::pkix::test::TLV
    - abort
    - ByteString::push_back
    linkageType: ''
    returnType: ByteString
    signature: ByteString Integer(long value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gmtime_s
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - t
    - exploded
    argTypes:
    - time_t*
    - tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 266
    functionName: mozilla::pkix::test::gmtime_r
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 2
    functionsReached:
    - gmtime_s
    linkageType: ''
    returnType: tm
    signature: 'tm *

      gmtime_r(const time_t* t, /*out*/ tm* exploded)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:278,1
    - Dst: mozilla::pkix::test::gmtime_r
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:281,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:282,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:294,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:300,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:300,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:301,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:301,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:304,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:304,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:305,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:305,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:306,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:306,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:307,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:307,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:308,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:308,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:309,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:309,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:310,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:310,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:311,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:311,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:312,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:312,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:313,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:313,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:314,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:314,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:315,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:315,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:316,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:318,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - time
    - encoding
    argTypes:
    - time_t
    - TimeEncoding
    assertStmts:
    - condition: (encoding == UTCTime || encoding == GeneralizedTime)
      pos:
        line_end: 277
        line_start: 277
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    constantsTouched: []
    func_position:
      end: 320
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 320
    functionName: mozilla::pkix::test::TimeToEncodedTime
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 2
    functionsReached:
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::gmtime_r
    - assert
    - ByteString::push_back
    - ByteString
    - static_cast<uint8_t>
    linkageType: ''
    returnType: ByteString
    signature: ByteString TimeToEncodedTime(time_t time, TimeEncoding encoding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TimeToEncodedTime
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - time
    argTypes:
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 322
    functionDepth: 2
    functionLinenumber: 322
    functionLinenumberEnd: 326
    functionName: mozilla::pkix::test::TimeToGeneralizedTime
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 3
    functionsReached:
    - mozilla::pkix::test::TimeToEncodedTime
    linkageType: ''
    returnType: ByteString
    signature: ByteString TimeToGeneralizedTime(time_t time)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::gmtime_r
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:337,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:338,1
    - Dst: mozilla::pkix::test::TimeToEncodedTime
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:345,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - time
    argTypes:
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 333
    functionDepth: 2
    functionLinenumber: 333
    functionLinenumberEnd: 346
    functionName: mozilla::pkix::test::TimeToTimeChoice
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::gmtime_r
    - mozilla::pkix::test::TimeToEncodedTime
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString TimeToTimeChoice(time_t time)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:352,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:353,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:354,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:355,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:356,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:357,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:358,1
    - Dst: DaysBeforeYear
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:360,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:376,1
    - Dst: TimeFromElapsedSecondsAD
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:390,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 6
    argNames:
    - year
    - month
    - day
    - hour
    - minutes
    - seconds
    argTypes:
    - uint16_t
    - uint16_t
    - uint16_t
    - uint16_t
    - uint16_t
    - uint16_t
    assertStmts:
    - condition: (year <= 9999)
      pos:
        line_end: 351
        line_start: 351
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (month <= 12)
      pos:
        line_end: 353
        line_start: 353
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (month >= 1)
      pos:
        line_end: 352
        line_start: 352
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (hour < 24)
      pos:
        line_end: 355
        line_start: 355
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (day >= 1)
      pos:
        line_end: 354
        line_start: 354
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (minutes < 60)
      pos:
        line_end: 356
        line_start: 356
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (seconds < 60)
      pos:
        line_end: 357
        line_start: 357
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (day <= daysInMonth)
      pos:
        line_end: 375
        line_start: 375
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    constantsTouched: []
    func_position:
      end: 391
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 391
    functionName: mozilla::pkix::test::YMDHMS
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - assert
    - DaysBeforeYear
    - TimeFromElapsedSecondsAD
    linkageType: ''
    returnType: Time
    signature: "Time YMDHMS(uint16_t year, uint16_t month, uint16_t day,\n       uint16_t
      hour, uint16_t minutes, uint16_t seconds)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SignData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:400,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:401,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:407,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:408,1
    - Dst: empty
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:414,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:415,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:419,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:424,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:425,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:426,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:427,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:428,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 5
    argNames:
    - ' tbsData'
    - ' keyPair'
    - ' signatureAlgorithm'
    - corrupt
    - certs
    argTypes:
    - ByteString
    - TestKeyPair
    - TestSignatureAlgorithm
    - bool
    - ByteString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 429
    functionName: mozilla::pkix::test::SignedData
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 1
    functionsReached:
    - mozilla::pkix::test::TLV
    - SignData
    - ByteString::append
    - mozilla::pkix::test::ENCODING_FAILED
    - ByteString
    - empty
    linkageType: ''
    returnType: ByteString
    signature: "ByteString SignedData(const ByteString& tbsData,\n           const
      TestKeyPair& keyPair,\n           const TestSignatureAlgorithm& signatureAlgorithm,\n
      \          bool corrupt, /*optional*/ const ByteString* certs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:444,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:444,1
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:444,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:444,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:447,1
    - Dst: mozilla::pkix::test::Boolean
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:447,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:452,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:453,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - extnID
    - critical
    - ' extnValueBytes'
    argTypes:
    - Input
    - Critical
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 454
    functionName: mozilla::pkix::test::Extension
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 3
    functionsReached:
    - mozilla::pkix::test::TLV
    - Input::UnsafeGetData
    - Input::GetLength
    - ByteString::append
    - ByteString
    - mozilla::pkix::test::Boolean
    linkageType: ''
    returnType: ByteString
    signature: ByteString Extension(Input extnID, Critical critical, const ByteString&
      extnValueBytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:459,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:459,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:462,1
    - Dst: mozilla::pkix::test::Boolean
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:462,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:466,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:467,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - extnID
    - critical
    argTypes:
    - Input
    - Critical
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 468
    functionName: mozilla::pkix::test::EmptyExtension
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 1
    functionsReached:
    - Input::UnsafeGetData
    - Input::GetLength
    - ByteString::append
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::Boolean
    linkageType: ''
    returnType: ByteString
    signature: ByteString EmptyExtension(Input extnID, Critical critical)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:477,1
    - Dst: _dupenv_s
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:484,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:485,1
    - Dst: free
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:489,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 493
    functionName: mozilla::pkix::test::GetEnv
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 1
    functionsReached:
    - getenv
    - free
    - abort
    - _dupenv_s
    linkageType: ''
    returnType: std::string
    signature: std::string GetEnv(const char* name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:498,1
    - Dst: mozilla::pkix::test::GetEnv
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:503,1
    - Dst: std::string::empty
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:504,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:510,1
    - Dst: std::ostringstream::str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:513,1
    - Dst: mozilla::pkix::test::OpenFile
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:516,1
    - Dst: fwrite
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:518,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:518,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:518,1
    - Dst: ScopedFILE::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:518,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - ' result'
    - suffix
    argTypes:
    - ByteString
    - char*
    assertStmts:
    - condition: (suffix)
      pos:
        line_end: 497
        line_start: 497
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (false)
      pos:
        line_end: 509
        line_start: 509
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    constantsTouched: []
    func_position:
      end: 521
      start: 495
    functionDepth: 2
    functionLinenumber: 495
    functionLinenumberEnd: 521
    functionName: mozilla::pkix::test::MaybeLogOutput
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 2
    functionsReached:
    - std::string::empty
    - length
    - ScopedFILE::get
    - assert
    - std::ostringstream::str
    - fwrite
    - mozilla::pkix::test::GetEnv
    - mozilla::pkix::test::OpenFile
    - data
    linkageType: ''
    returnType: void
    signature: void MaybeLogOutput(const ByteString& result, const char* suffix)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TBSCertificate
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:550,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:556,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:557,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:562,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:563,1
    - Dst: mozilla::pkix::test::MaybeLogOutput
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:566,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 11
    argNames:
    - version
    - ' signature'
    - ' serialNumber'
    - ' issuerNameDER'
    - notBefore
    - notAfter
    - ' subjectNameDER'
    - ' subjectKeyPair'
    - extensions
    - ' issuerKeyPair'
    - ' signatureAlgorithm'
    argTypes:
    - long
    - TestSignatureAlgorithm
    - ByteString
    - ByteString
    - time_t
    - time_t
    - ByteString
    - TestKeyPair
    - ByteString*
    - TestKeyPair
    - TestSignatureAlgorithm
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 538
    functionDepth: 3
    functionLinenumber: 538
    functionLinenumberEnd: 569
    functionName: mozilla::pkix::test::CreateEncodedCertificate
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - ByteString
    - mozilla::pkix::test::TBSCertificate
    - mozilla::pkix::test::MaybeLogOutput
    - mozilla::pkix::test::ENCODING_FAILED
    linkageType: ''
    returnType: ByteString
    signature: "ByteString CreateEncodedCertificate(long version,\n                         const
      TestSignatureAlgorithm& signature,\n                         const ByteString&
      serialNumber,\n                         const ByteString& issuerNameDER,\n                         time_t
      notBefore, time_t notAfter,\n                         const ByteString& subjectNameDER,\n
      \                        const TestKeyPair& subjectKeyPair,\n                         /*optional*/
      const ByteString* extensions,\n                         const TestKeyPair& issuerKeyPair,\n
      \                        const TestSignatureAlgorithm& signatureAlgorithm)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<long>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:595,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:597,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:599,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:602,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:603,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:604,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:612,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:613,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:616,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:617,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:620,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:621,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:622,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:623,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:624,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:627,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:629,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:631,1
    - Dst: empty
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:635,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:636,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:640,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:641,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:644,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:645,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:646,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:648,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:651,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 9
    argNames:
    - versionValue
    - ' serialNumber'
    - ' signature'
    - ' issuer'
    - notBeforeTime
    - notAfterTime
    - ' subject'
    - ' subjectPublicKeyInfo'
    - extensions
    argTypes:
    - long
    - ByteString
    - ByteString
    - ByteString
    - time_t
    - time_t
    - ByteString
    - ByteString
    - ByteString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 585
    functionDepth: 1
    functionLinenumber: 585
    functionLinenumberEnd: 652
    functionName: mozilla::pkix::test::TBSCertificate
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 2
    functionsReached:
    - ByteString::append
    - static_cast<long>
    - mozilla::pkix::test::ENCODING_FAILED
    - mozilla::pkix::test::TLV
    - empty
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: "ByteString TBSCertificate(long versionValue,\n               const
      ByteString& serialNumber, const ByteString& signature,\n               const
      ByteString& issuer, time_t notBeforeTime,\n               time_t notAfterTime,
      const ByteString& subject,\n               const ByteString& subjectPublicKeyInfo,\n
      \              /*optional*/ const ByteString* extensions)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:675,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:676,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - (type)
    - directoryStringType
    - ' value'
    argTypes:
    - uint8_t[]
    - uint8_t
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 678
    functionName: mozilla::pkix::test::AVA
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 3
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::append
    linkageType: ''
    returnType: ByteString
    signature: "ByteString AVA(const uint8_t (&type)[N], uint8_t directoryStringType,\n
      \   const ByteString& value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::AVA
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' value'
    - encodingTag
    argTypes:
    - ByteString
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 680
    functionDepth: 1
    functionLinenumber: 680
    functionLinenumberEnd: 690
    functionName: mozilla::pkix::test::CN
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::AVA
    linkageType: ''
    returnType: ByteString
    signature: ByteString CN(const ByteString& value, uint8_t encodingTag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::AVA
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' value'
    - encodingTag
    argTypes:
    - ByteString
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 692
    functionDepth: 1
    functionLinenumber: 692
    functionLinenumberEnd: 703
    functionName: mozilla::pkix::test::OU
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::AVA
    linkageType: ''
    returnType: ByteString
    signature: ByteString OU(const ByteString& value, uint8_t encodingTag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::AVA
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 705
    functionDepth: 1
    functionLinenumber: 705
    functionLinenumberEnd: 715
    functionName: mozilla::pkix::test::emailAddress
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::AVA
    linkageType: ''
    returnType: ByteString
    signature: ByteString emailAddress(const ByteString& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' avas'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 720
    functionDepth: 0
    functionLinenumber: 720
    functionLinenumberEnd: 724
    functionName: mozilla::pkix::test::RDN
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    linkageType: ''
    returnType: ByteString
    signature: ByteString RDN(const ByteString& avas)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:734,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rdns'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 731
    functionDepth: 0
    functionLinenumber: 731
    functionLinenumberEnd: 735
    functionName: mozilla::pkix::test::Name
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    linkageType: ''
    returnType: ByteString
    signature: ByteString Name(const ByteString& rdns)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::Integer
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:740,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - serialNumberValue
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 737
    functionDepth: 1
    functionLinenumber: 737
    functionLinenumberEnd: 741
    functionName: mozilla::pkix::test::CreateEncodedSerialNumber
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::Integer
    linkageType: ''
    returnType: ByteString
    signature: ByteString CreateEncodedSerialNumber(long serialNumberValue)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:755,1
    - Dst: mozilla::pkix::test::Integer
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:759,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:760,1
    - Dst: mozilla::pkix::test::Extension
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:767,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:767,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - isCA
    - pathLenConstraintValue
    - critical
    argTypes:
    - bool
    - long*
    - Critical
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 746
    functionDepth: 2
    functionLinenumber: 746
    functionLinenumberEnd: 768
    functionName: mozilla::pkix::test::CreateEncodedBasicConstraints
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::Integer
    - ByteString::append
    - Input
    - mozilla::pkix::test::Extension
    linkageType: ''
    returnType: ByteString
    signature: "ByteString CreateEncodedBasicConstraints(bool isCA,\n                              /*optional
      in*/ const long* pathLenConstraintValue,\n                              Critical
      critical)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:775,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:775,1
    - Dst: mozilla::pkix::test::Extension
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:782,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ekuOID
    - critical
    argTypes:
    - Input
    - Critical
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 772
    functionDepth: 2
    functionLinenumber: 772
    functionLinenumberEnd: 783
    functionName: mozilla::pkix::test::CreateEncodedEKUExtension
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - Input::GetLength
    - Input
    - Input::UnsafeGetData
    - mozilla::pkix::test::Extension
    linkageType: ''
    returnType: ByteString
    signature: ByteString CreateEncodedEKUExtension(Input ekuOID, Critical critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::Extension
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:793,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' names'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 790
    functionDepth: 2
    functionLinenumber: 790
    functionLinenumberEnd: 794
    functionName: mozilla::pkix::test::CreateEncodedSubjectAltName
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - Input
    - mozilla::pkix::test::Extension
    linkageType: ''
    returnType: ByteString
    signature: ByteString CreateEncodedSubjectAltName(const ByteString& names)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::EmptyExtension
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:799,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:799,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 796
    functionDepth: 2
    functionLinenumber: 796
    functionLinenumberEnd: 800
    functionName: mozilla::pkix::test::CreateEncodedEmptySubjectAltName
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - Input
    - mozilla::pkix::test::EmptyExtension
    linkageType: ''
    returnType: ByteString
    signature: ByteString CreateEncodedEmptySubjectAltName()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:810,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:828,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:834,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:835,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:838,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:843,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:844,1
    - Dst: mozilla::pkix::test::MaybeLogOutput
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:847,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 805
    functionDepth: 3
    functionLinenumber: 805
    functionLinenumberEnd: 850
    functionName: mozilla::pkix::test::CreateEncodedOCSPResponse
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::append
    - mozilla::pkix::test::ENCODING_FAILED
    - mozilla::pkix::test::MaybeLogOutput
    - ByteString
    - ByteString::push_back
    linkageType: ''
    returnType: ByteString
    signature: ByteString CreateEncodedOCSPResponse(OCSPResponseContext& context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:863,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:864,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:866,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:869,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:871,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:872,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 855
    functionDepth: 1
    functionLinenumber: 855
    functionLinenumberEnd: 873
    functionName: mozilla::pkix::test::ResponseBytes
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - ByteString
    - mozilla::pkix::test::TLV
    - ByteString::append
    - mozilla::pkix::test::ENCODING_FAILED
    linkageType: ''
    returnType: ByteString
    signature: ByteString ResponseBytes(OCSPResponseContext& context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:884,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:885,1
    - Dst: mozilla::pkix::test::SignedData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:888,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 880
    functionDepth: 2
    functionLinenumber: 880
    functionLinenumberEnd: 891
    functionName: mozilla::pkix::test::BasicOCSPResponse
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - ByteString
    - mozilla::pkix::test::SignedData
    - mozilla::pkix::test::ENCODING_FAILED
    linkageType: ''
    returnType: ByteString
    signature: ByteString BasicOCSPResponse(OCSPResponseContext& context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:902,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:904,1
    - Dst: mozilla::pkix::test::Boolean
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:904,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:906,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:907,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:908,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' extension'
    argTypes:
    - OCSPResponseExtension
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 898
    functionDepth: 1
    functionLinenumber: 898
    functionLinenumberEnd: 909
    functionName: mozilla::pkix::test::OCSPExtension
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 1
    functionsReached:
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::Boolean
    - ByteString::append
    linkageType: ''
    returnType: ByteString
    signature: ByteString OCSPExtension(OCSPResponseExtension& extension)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::OCSPExtension
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:920,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:921,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:922,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:924,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:927,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - extensions
    argTypes:
    - OCSPResponseExtension*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 914
    functionDepth: 2
    functionLinenumber: 914
    functionLinenumberEnd: 928
    functionName: mozilla::pkix::test::OCSPExtensions
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 2
    functionsReached:
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::OCSPExtension
    - ByteString::append
    - mozilla::pkix::test::ENCODING_FAILED
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString OCSPExtensions(OCSPResponseExtension* extensions)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:940,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:941,1
    - Dst: mozilla::pkix::test::TimeToGeneralizedTime
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:943,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:944,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:945,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:948,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:949,1
    - Dst: mozilla::pkix::test::OCSPExtensions
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:954,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:958,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:959,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:960,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:961,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:963,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:965,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 936
    functionDepth: 3
    functionLinenumber: 936
    functionLinenumberEnd: 966
    functionName: mozilla::pkix::test::ResponseData
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::append
    - mozilla::pkix::test::ENCODING_FAILED
    - mozilla::pkix::test::TimeToGeneralizedTime
    - mozilla::pkix::test::OCSPExtensions
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString ResponseData(OCSPResponseContext& context)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: signerNameDER::empty
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:977,1
    - Dst: mozilla::pkix::test::KeyHash
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:981,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:982,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:983,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:990,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:992,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 993
      start: 972
    functionDepth: 3
    functionLinenumber: 972
    functionLinenumberEnd: 993
    functionName: mozilla::pkix::test::ResponderID
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - signerNameDER::empty
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::ENCODING_FAILED
    - ByteString
    - mozilla::pkix::test::KeyHash
    - static_cast<uint8_t>
    linkageType: ''
    returnType: ByteString
    signature: ByteString ResponderID(OCSPResponseContext& context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::HashedOctetString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1003,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' subjectPublicKey'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 1000
    functionDepth: 2
    functionLinenumber: 1000
    functionLinenumberEnd: 1004
    functionName: mozilla::pkix::test::KeyHash
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 2
    functionsReached:
    - mozilla::pkix::test::HashedOctetString
    linkageType: ''
    returnType: ByteString
    signature: ByteString KeyHash(const ByteString& subjectPublicKey)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1016,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1017,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1020,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1021,1
    - Dst: mozilla::pkix::test::TimeToGeneralizedTime
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1023,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1024,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1025,1
    - Dst: mozilla::pkix::test::TimeToGeneralizedTime
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1029,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1030,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1031,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1033,1
    - Dst: mozilla::pkix::test::OCSPExtensions
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1038,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1042,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1043,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1044,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1045,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1046,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1047,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 1012
    functionDepth: 3
    functionLinenumber: 1012
    functionLinenumberEnd: 1048
    functionName: mozilla::pkix::test::SingleResponse
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::append
    - mozilla::pkix::test::ENCODING_FAILED
    - mozilla::pkix::test::TimeToGeneralizedTime
    - mozilla::pkix::test::OCSPExtensions
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString SingleResponse(OCSPResponseContext& context)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: certID::issuer::UnsafeGetData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1058,1
    - Dst: certID::issuer::GetLength
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1059,1
    - Dst: mozilla::pkix::test::HashedOctetString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1060,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1061,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1062,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1072,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1073,1
    - Dst: mozilla::pkix::der::ExpectTagAndSkipValue
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1076,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1077,1
    - Dst: mozilla::pkix::der::BitStringWithNoUnusedBits
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1080,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1082,1
    - Dst: mozilla::pkix::test::HashedOctetString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1084,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1084,1
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1084,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1085,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1086,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1087,1
    - Dst: certID::serialNumber::UnsafeGetData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1091,1
    - Dst: certID::serialNumber::GetLength
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1092,1
    - Dst: certIDHashAlgorithmEncoded::empty
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1113,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1114,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1118,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1121,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1124,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1127,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1132,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1133,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1134,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1135,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1136
      start: 1055
    functionDepth: 2
    functionLinenumber: 1055
    functionLinenumberEnd: 1136
    functionName: mozilla::pkix::test::CertID
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - certID::issuer::UnsafeGetData
    - mozilla::pkix::test::TLV
    - mozilla::pkix::der::ExpectTagAndGetValue
    - mozilla::pkix::der::BitStringWithNoUnusedBits
    - Input::UnsafeGetData
    - Input::GetLength
    - ByteString::append
    - mozilla::pkix::test::ENCODING_FAILED
    - certID::issuer::GetLength
    - certID::serialNumber::UnsafeGetData
    - mozilla::pkix::der::ExpectTagAndSkipValue
    - certID::serialNumber::GetLength
    - certIDHashAlgorithmEncoded::empty
    - ByteString
    - mozilla::pkix::test::HashedOctetString
    linkageType: ''
    returnType: ByteString
    signature: ByteString CertID(OCSPResponseContext& context)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1160,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1160,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1161,1
    - Dst: mozilla::pkix::test::TimeToGeneralizedTime
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1165,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1166,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1167,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1170,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1173,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts:
    - condition: (false)
      pos:
        line_end: 1172
        line_start: 1172
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    constantsTouched: []
    func_position:
      end: 1177
      start: 1149
    functionDepth: 3
    functionLinenumber: 1149
    functionLinenumberEnd: 1177
    functionName: mozilla::pkix::test::CertStatus
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::ENCODING_FAILED
    - assert
    - mozilla::pkix::test::TimeToGeneralizedTime
    - ByteString
    - static_cast<uint8_t>
    linkageType: ''
    returnType: ByteString
    signature: ByteString CertStatus(OCSPResponseContext& context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1185,1
    - Dst: TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' aPublicKeyAlg'
    - ' spk'
    argTypes:
    - TestPublicKeyAlgorithm
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1182
    functionDepth: 0
    functionLinenumber: 1182
    functionLinenumberEnd: 1190
    functionName: mozilla::pkix::test::TestKeyPair::TestKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - TLV
    linkageType: ''
    returnType: void
    signature: "void TestKeyPair::TestKeyPair(const TestPublicKeyAlgorithm& aPublicKeyAlg,\n
      \                        const ByteString& spk)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - f
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: operator()(FILE* f)
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - fclose
    linkageType: ''
    returnType: void
    signature: void operator()(FILE* f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fopen_s
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:61,1
    - Dst: string::c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:61,1
    - Dst: c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:61,1
    - Dst: ScopedFILE::reset
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:66,1
    - Dst: ScopedFILE::reset
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: fopen
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: string::c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: ScopedFILE::release
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ' dir'
    - ' filename'
    - ' mode'
    argTypes:
    - string
    - string
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 72
    functionName: mozilla::pkix::test::OpenFile
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 2
    functionsReached:
    - ScopedFILE::reset
    - ScopedFILE::release
    - fopen
    - fopen_s
    - c_str
    - string::c_str
    linkageType: ''
    returnType: FILE
    signature: 'FILE *

      OpenFile(const string& dir, const string& filename, const string& mode)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - f
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: operator()(FILE* f)
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - fclose
    linkageType: ''
    returnType: void
    signature: void operator()(FILE* f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fopen_s
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:61,1
    - Dst: string::c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:61,1
    - Dst: c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:61,1
    - Dst: ScopedFILE::reset
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:66,1
    - Dst: ScopedFILE::reset
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: fopen
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: string::c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: ScopedFILE::release
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ' dir'
    - ' filename'
    - ' mode'
    argTypes:
    - string
    - string
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 72
    functionName: mozilla::pkix::test::OpenFile
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 2
    functionsReached:
    - ScopedFILE::reset
    - ScopedFILE::release
    - fopen
    - fopen_s
    - c_str
    - string::c_str
    linkageType: ''
    returnType: FILE
    signature: 'FILE *

      OpenFile(const string& dir, const string& filename, const string& mode)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Input::Init
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:80,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:80,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:80,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:84,1
    - Dst: InputsAreEqual
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - input
    - ' bs'
    argTypes:
    - Input
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 87
    functionName: mozilla::pkix::test::InputEqualsByteString
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - length
    - abort
    - InputsAreEqual
    - Input::Init
    - data
    linkageType: ''
    returnType: bool
    signature: bool InputEqualsByteString(Input input, const ByteString& bs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:96,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - input
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 101
    functionName: mozilla::pkix::test::InputToByteString
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - Reader::Read
    - ByteString::push_back
    linkageType: ''
    returnType: ByteString
    signature: ByteString InputToByteString(Input input)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:107,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:110,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:110,1
    - Dst: find
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:113,1
    - Dst: find
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:117,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:117,1
    - Dst: replace
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:120,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:120,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - ' item'
    - ' from'
    - ' to'
    argTypes:
    - ByteString
    - ByteString
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 122
    functionName: mozilla::pkix::test::TamperOnce
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - find
    - replace
    - length
    linkageType: ''
    returnType: Result
    signature: "Result TamperOnce(/*in/out*/ ByteString& item, const ByteString& from,\n
      \          const ByteString& to)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:129,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:131,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:132,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:132,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:133,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:134,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:135,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:135,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:136,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:137,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:138,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:138,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:139,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:139,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:143,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - tag
    - length
    - ' value'
    argTypes:
    - uint8_t
    - size_t
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 147
    functionName: mozilla::pkix::test::TLV
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 42
    functionsReached:
    - length
    - ByteString::append
    - abort
    - ByteString::push_back
    - static_cast<uint8_t>
    linkageType: ''
    returnType: ByteString
    signature: ByteString TLV(uint8_t tag, size_t length, const ByteString& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 155
    functionName: mozilla::pkix::test::OCSPResponseExtension::OCSPResponseExtension
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OCSPResponseExtension::OCSPResponseExtension()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:160,1
    - Dst: sha256WithRSAEncryption
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:168,1
    - Dst: static_cast<time_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' aCertID'
    - time
    argTypes:
    - CertID
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 178
    functionName: mozilla::pkix::test::OCSPResponseContext::OCSPResponseContext
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - ByteString
    - static_cast<time_t>
    - sha256WithRSAEncryption
    linkageType: ''
    returnType: void
    signature: void OCSPResponseContext::OCSPResponseContext(const CertID& aCertID,
      time_t time)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Input::Init
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:194,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:194,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:194,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:195,1
    - Dst: DigestAlgorithmToSizeInBytes
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:197,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:198,1
    - Dst: mozilla::pkix::test::TestDigestBuf
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:199,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:201,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:203,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' toHash'
    - digestAlgorithm
    argTypes:
    - ByteString
    - DigestAlgorithm
    assertStmts:
    - condition: (digestLen <= sizeof(digestBuf))
      pos:
        line_end: 197
        line_start: 197
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    constantsTouched: []
    func_position:
      end: 204
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 204
    functionName: mozilla::pkix::test::HASH
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - length
    - DigestAlgorithmToSizeInBytes
    - mozilla::pkix::test::TestDigestBuf
    - abort
    - assert
    - ByteString
    - Input::Init
    - data
    linkageType: ''
    returnType: ByteString
    signature: ByteString HASH(const ByteString& toHash, DigestAlgorithm digestAlgorithm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:210,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:211,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' bytes'
    - digestAlgorithm
    argTypes:
    - ByteString
    - DigestAlgorithm
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 214
    functionName: mozilla::pkix::test::HashedOctetString
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 4
    functionsReached:
    - ByteString
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::ENCODING_FAILED
    linkageType: ''
    returnType: ByteString
    signature: ByteString HashedOctetString(const ByteString& bytes, DigestAlgorithm
      digestAlgorithm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:223,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:224,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:226,1
    - Dst: ByteString::length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:226,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' rawBytes'
    - corrupt
    argTypes:
    - ByteString
    - bool
    assertStmts:
    - condition: (prefixed.length() > 8)
      pos:
        line_end: 225
        line_start: 225
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    constantsTouched: []
    func_position:
      end: 230
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 230
    functionName: mozilla::pkix::test::BitString
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - ByteString::append
    - assert
    - ByteString::length
    - mozilla::pkix::test::TLV
    - ByteString::push_back
    linkageType: ''
    returnType: ByteString
    signature: ByteString BitString(const ByteString& rawBytes, bool corrupt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:236,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 238
    functionName: mozilla::pkix::test::Boolean
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 6
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::push_back
    linkageType: ''
    returnType: ByteString
    signature: ByteString Boolean(bool value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:247,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:251,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:251,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:252,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 253
    functionName: mozilla::pkix::test::Integer
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 4
    functionsReached:
    - static_cast<uint8_t>
    - mozilla::pkix::test::TLV
    - abort
    - ByteString::push_back
    linkageType: ''
    returnType: ByteString
    signature: ByteString Integer(long value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gmtime_s
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - t
    - exploded
    argTypes:
    - time_t*
    - tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 266
    functionName: mozilla::pkix::test::gmtime_r
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 4
    functionsReached:
    - gmtime_s
    linkageType: ''
    returnType: tm
    signature: 'tm *

      gmtime_r(const time_t* t, /*out*/ tm* exploded)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:278,1
    - Dst: mozilla::pkix::test::gmtime_r
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:281,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:282,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:294,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:300,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:300,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:301,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:301,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:304,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:304,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:305,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:305,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:306,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:306,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:307,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:307,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:308,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:308,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:309,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:309,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:310,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:310,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:311,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:311,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:312,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:312,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:313,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:313,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:314,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:314,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:315,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:315,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:316,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:318,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - time
    - encoding
    argTypes:
    - time_t
    - TimeEncoding
    assertStmts:
    - condition: (encoding == UTCTime || encoding == GeneralizedTime)
      pos:
        line_end: 277
        line_start: 277
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    constantsTouched: []
    func_position:
      end: 320
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 320
    functionName: mozilla::pkix::test::TimeToEncodedTime
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 4
    functionsReached:
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::gmtime_r
    - assert
    - ByteString::push_back
    - ByteString
    - static_cast<uint8_t>
    linkageType: ''
    returnType: ByteString
    signature: ByteString TimeToEncodedTime(time_t time, TimeEncoding encoding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TimeToEncodedTime
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - time
    argTypes:
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 322
    functionDepth: 2
    functionLinenumber: 322
    functionLinenumberEnd: 326
    functionName: mozilla::pkix::test::TimeToGeneralizedTime
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 6
    functionsReached:
    - mozilla::pkix::test::TimeToEncodedTime
    linkageType: ''
    returnType: ByteString
    signature: ByteString TimeToGeneralizedTime(time_t time)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::gmtime_r
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:337,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:338,1
    - Dst: mozilla::pkix::test::TimeToEncodedTime
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:345,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - time
    argTypes:
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 333
    functionDepth: 2
    functionLinenumber: 333
    functionLinenumberEnd: 346
    functionName: mozilla::pkix::test::TimeToTimeChoice
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::gmtime_r
    - mozilla::pkix::test::TimeToEncodedTime
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString TimeToTimeChoice(time_t time)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:352,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:353,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:354,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:355,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:356,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:357,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:358,1
    - Dst: DaysBeforeYear
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:360,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:376,1
    - Dst: TimeFromElapsedSecondsAD
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:390,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 6
    argNames:
    - year
    - month
    - day
    - hour
    - minutes
    - seconds
    argTypes:
    - uint16_t
    - uint16_t
    - uint16_t
    - uint16_t
    - uint16_t
    - uint16_t
    assertStmts:
    - condition: (year <= 9999)
      pos:
        line_end: 351
        line_start: 351
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (month <= 12)
      pos:
        line_end: 353
        line_start: 353
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (month >= 1)
      pos:
        line_end: 352
        line_start: 352
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (hour < 24)
      pos:
        line_end: 355
        line_start: 355
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (day >= 1)
      pos:
        line_end: 354
        line_start: 354
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (minutes < 60)
      pos:
        line_end: 356
        line_start: 356
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (seconds < 60)
      pos:
        line_end: 357
        line_start: 357
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (day <= daysInMonth)
      pos:
        line_end: 375
        line_start: 375
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    constantsTouched: []
    func_position:
      end: 391
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 391
    functionName: mozilla::pkix::test::YMDHMS
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - assert
    - DaysBeforeYear
    - TimeFromElapsedSecondsAD
    linkageType: ''
    returnType: Time
    signature: "Time YMDHMS(uint16_t year, uint16_t month, uint16_t day,\n       uint16_t
      hour, uint16_t minutes, uint16_t seconds)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SignData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:400,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:401,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:407,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:408,1
    - Dst: empty
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:414,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:415,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:419,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:424,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:425,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:426,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:427,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:428,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 5
    argNames:
    - ' tbsData'
    - ' keyPair'
    - ' signatureAlgorithm'
    - corrupt
    - certs
    argTypes:
    - ByteString
    - TestKeyPair
    - TestSignatureAlgorithm
    - bool
    - ByteString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 429
    functionName: mozilla::pkix::test::SignedData
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 2
    functionsReached:
    - mozilla::pkix::test::TLV
    - SignData
    - ByteString::append
    - mozilla::pkix::test::ENCODING_FAILED
    - ByteString
    - empty
    linkageType: ''
    returnType: ByteString
    signature: "ByteString SignedData(const ByteString& tbsData,\n           const
      TestKeyPair& keyPair,\n           const TestSignatureAlgorithm& signatureAlgorithm,\n
      \          bool corrupt, /*optional*/ const ByteString* certs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:444,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:444,1
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:444,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:444,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:447,1
    - Dst: mozilla::pkix::test::Boolean
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:447,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:452,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:453,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - extnID
    - critical
    - ' extnValueBytes'
    argTypes:
    - Input
    - Critical
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 454
    functionName: mozilla::pkix::test::Extension
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 6
    functionsReached:
    - mozilla::pkix::test::TLV
    - Input::UnsafeGetData
    - Input::GetLength
    - ByteString::append
    - ByteString
    - mozilla::pkix::test::Boolean
    linkageType: ''
    returnType: ByteString
    signature: ByteString Extension(Input extnID, Critical critical, const ByteString&
      extnValueBytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:459,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:459,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:462,1
    - Dst: mozilla::pkix::test::Boolean
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:462,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:466,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:467,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - extnID
    - critical
    argTypes:
    - Input
    - Critical
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 468
    functionName: mozilla::pkix::test::EmptyExtension
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 2
    functionsReached:
    - Input::UnsafeGetData
    - Input::GetLength
    - ByteString::append
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::Boolean
    linkageType: ''
    returnType: ByteString
    signature: ByteString EmptyExtension(Input extnID, Critical critical)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:477,1
    - Dst: _dupenv_s
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:484,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:485,1
    - Dst: free
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:489,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 493
    functionName: mozilla::pkix::test::GetEnv
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 2
    functionsReached:
    - getenv
    - free
    - abort
    - _dupenv_s
    linkageType: ''
    returnType: std::string
    signature: std::string GetEnv(const char* name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:498,1
    - Dst: mozilla::pkix::test::GetEnv
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:503,1
    - Dst: std::string::empty
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:504,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:510,1
    - Dst: std::ostringstream::str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:513,1
    - Dst: mozilla::pkix::test::OpenFile
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:516,1
    - Dst: fwrite
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:518,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:518,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:518,1
    - Dst: ScopedFILE::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:518,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - ' result'
    - suffix
    argTypes:
    - ByteString
    - char*
    assertStmts:
    - condition: (suffix)
      pos:
        line_end: 497
        line_start: 497
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (false)
      pos:
        line_end: 509
        line_start: 509
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    constantsTouched: []
    func_position:
      end: 521
      start: 495
    functionDepth: 2
    functionLinenumber: 495
    functionLinenumberEnd: 521
    functionName: mozilla::pkix::test::MaybeLogOutput
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 4
    functionsReached:
    - std::string::empty
    - length
    - ScopedFILE::get
    - assert
    - std::ostringstream::str
    - fwrite
    - mozilla::pkix::test::GetEnv
    - mozilla::pkix::test::OpenFile
    - data
    linkageType: ''
    returnType: void
    signature: void MaybeLogOutput(const ByteString& result, const char* suffix)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TBSCertificate
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:550,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:556,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:557,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:562,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:563,1
    - Dst: mozilla::pkix::test::MaybeLogOutput
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:566,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 11
    argNames:
    - version
    - ' signature'
    - ' serialNumber'
    - ' issuerNameDER'
    - notBefore
    - notAfter
    - ' subjectNameDER'
    - ' subjectKeyPair'
    - extensions
    - ' issuerKeyPair'
    - ' signatureAlgorithm'
    argTypes:
    - long
    - TestSignatureAlgorithm
    - ByteString
    - ByteString
    - time_t
    - time_t
    - ByteString
    - TestKeyPair
    - ByteString*
    - TestKeyPair
    - TestSignatureAlgorithm
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 538
    functionDepth: 3
    functionLinenumber: 538
    functionLinenumberEnd: 569
    functionName: mozilla::pkix::test::CreateEncodedCertificate
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - ByteString
    - mozilla::pkix::test::TBSCertificate
    - mozilla::pkix::test::MaybeLogOutput
    - mozilla::pkix::test::ENCODING_FAILED
    linkageType: ''
    returnType: ByteString
    signature: "ByteString CreateEncodedCertificate(long version,\n                         const
      TestSignatureAlgorithm& signature,\n                         const ByteString&
      serialNumber,\n                         const ByteString& issuerNameDER,\n                         time_t
      notBefore, time_t notAfter,\n                         const ByteString& subjectNameDER,\n
      \                        const TestKeyPair& subjectKeyPair,\n                         /*optional*/
      const ByteString* extensions,\n                         const TestKeyPair& issuerKeyPair,\n
      \                        const TestSignatureAlgorithm& signatureAlgorithm)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<long>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:595,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:597,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:599,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:602,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:603,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:604,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:612,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:613,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:616,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:617,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:620,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:621,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:622,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:623,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:624,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:627,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:629,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:631,1
    - Dst: empty
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:635,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:636,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:640,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:641,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:644,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:645,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:646,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:648,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:651,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 9
    argNames:
    - versionValue
    - ' serialNumber'
    - ' signature'
    - ' issuer'
    - notBeforeTime
    - notAfterTime
    - ' subject'
    - ' subjectPublicKeyInfo'
    - extensions
    argTypes:
    - long
    - ByteString
    - ByteString
    - ByteString
    - time_t
    - time_t
    - ByteString
    - ByteString
    - ByteString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 585
    functionDepth: 1
    functionLinenumber: 585
    functionLinenumberEnd: 652
    functionName: mozilla::pkix::test::TBSCertificate
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 3
    functionsReached:
    - ByteString::append
    - static_cast<long>
    - mozilla::pkix::test::ENCODING_FAILED
    - mozilla::pkix::test::TLV
    - empty
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: "ByteString TBSCertificate(long versionValue,\n               const
      ByteString& serialNumber, const ByteString& signature,\n               const
      ByteString& issuer, time_t notBeforeTime,\n               time_t notAfterTime,
      const ByteString& subject,\n               const ByteString& subjectPublicKeyInfo,\n
      \              /*optional*/ const ByteString* extensions)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:675,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:676,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - (type)
    - directoryStringType
    - ' value'
    argTypes:
    - uint8_t[]
    - uint8_t
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 678
    functionName: mozilla::pkix::test::AVA
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 6
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::append
    linkageType: ''
    returnType: ByteString
    signature: "ByteString AVA(const uint8_t (&type)[N], uint8_t directoryStringType,\n
      \   const ByteString& value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::AVA
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' value'
    - encodingTag
    argTypes:
    - ByteString
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 680
    functionDepth: 1
    functionLinenumber: 680
    functionLinenumberEnd: 690
    functionName: mozilla::pkix::test::CN
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::AVA
    linkageType: ''
    returnType: ByteString
    signature: ByteString CN(const ByteString& value, uint8_t encodingTag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::AVA
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' value'
    - encodingTag
    argTypes:
    - ByteString
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 692
    functionDepth: 1
    functionLinenumber: 692
    functionLinenumberEnd: 703
    functionName: mozilla::pkix::test::OU
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::AVA
    linkageType: ''
    returnType: ByteString
    signature: ByteString OU(const ByteString& value, uint8_t encodingTag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::AVA
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 705
    functionDepth: 1
    functionLinenumber: 705
    functionLinenumberEnd: 715
    functionName: mozilla::pkix::test::emailAddress
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::AVA
    linkageType: ''
    returnType: ByteString
    signature: ByteString emailAddress(const ByteString& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' avas'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 720
    functionDepth: 0
    functionLinenumber: 720
    functionLinenumberEnd: 724
    functionName: mozilla::pkix::test::RDN
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    linkageType: ''
    returnType: ByteString
    signature: ByteString RDN(const ByteString& avas)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:734,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rdns'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 731
    functionDepth: 0
    functionLinenumber: 731
    functionLinenumberEnd: 735
    functionName: mozilla::pkix::test::Name
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    linkageType: ''
    returnType: ByteString
    signature: ByteString Name(const ByteString& rdns)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::Integer
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:740,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - serialNumberValue
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 737
    functionDepth: 1
    functionLinenumber: 737
    functionLinenumberEnd: 741
    functionName: mozilla::pkix::test::CreateEncodedSerialNumber
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::Integer
    linkageType: ''
    returnType: ByteString
    signature: ByteString CreateEncodedSerialNumber(long serialNumberValue)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:755,1
    - Dst: mozilla::pkix::test::Integer
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:759,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:760,1
    - Dst: mozilla::pkix::test::Extension
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:767,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:767,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - isCA
    - pathLenConstraintValue
    - critical
    argTypes:
    - bool
    - long*
    - Critical
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 746
    functionDepth: 2
    functionLinenumber: 746
    functionLinenumberEnd: 768
    functionName: mozilla::pkix::test::CreateEncodedBasicConstraints
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::Integer
    - ByteString::append
    - Input
    - mozilla::pkix::test::Extension
    linkageType: ''
    returnType: ByteString
    signature: "ByteString CreateEncodedBasicConstraints(bool isCA,\n                              /*optional
      in*/ const long* pathLenConstraintValue,\n                              Critical
      critical)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:775,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:775,1
    - Dst: mozilla::pkix::test::Extension
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:782,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ekuOID
    - critical
    argTypes:
    - Input
    - Critical
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 772
    functionDepth: 2
    functionLinenumber: 772
    functionLinenumberEnd: 783
    functionName: mozilla::pkix::test::CreateEncodedEKUExtension
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - Input::GetLength
    - Input
    - Input::UnsafeGetData
    - mozilla::pkix::test::Extension
    linkageType: ''
    returnType: ByteString
    signature: ByteString CreateEncodedEKUExtension(Input ekuOID, Critical critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::Extension
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:793,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' names'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 790
    functionDepth: 2
    functionLinenumber: 790
    functionLinenumberEnd: 794
    functionName: mozilla::pkix::test::CreateEncodedSubjectAltName
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - Input
    - mozilla::pkix::test::Extension
    linkageType: ''
    returnType: ByteString
    signature: ByteString CreateEncodedSubjectAltName(const ByteString& names)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::EmptyExtension
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:799,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:799,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 796
    functionDepth: 2
    functionLinenumber: 796
    functionLinenumberEnd: 800
    functionName: mozilla::pkix::test::CreateEncodedEmptySubjectAltName
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - Input
    - mozilla::pkix::test::EmptyExtension
    linkageType: ''
    returnType: ByteString
    signature: ByteString CreateEncodedEmptySubjectAltName()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:810,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:828,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:834,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:835,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:838,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:843,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:844,1
    - Dst: mozilla::pkix::test::MaybeLogOutput
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:847,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 805
    functionDepth: 3
    functionLinenumber: 805
    functionLinenumberEnd: 850
    functionName: mozilla::pkix::test::CreateEncodedOCSPResponse
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::append
    - mozilla::pkix::test::ENCODING_FAILED
    - mozilla::pkix::test::MaybeLogOutput
    - ByteString
    - ByteString::push_back
    linkageType: ''
    returnType: ByteString
    signature: ByteString CreateEncodedOCSPResponse(OCSPResponseContext& context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:863,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:864,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:866,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:869,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:871,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:872,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 855
    functionDepth: 1
    functionLinenumber: 855
    functionLinenumberEnd: 873
    functionName: mozilla::pkix::test::ResponseBytes
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - ByteString
    - mozilla::pkix::test::TLV
    - ByteString::append
    - mozilla::pkix::test::ENCODING_FAILED
    linkageType: ''
    returnType: ByteString
    signature: ByteString ResponseBytes(OCSPResponseContext& context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:884,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:885,1
    - Dst: mozilla::pkix::test::SignedData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:888,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 880
    functionDepth: 2
    functionLinenumber: 880
    functionLinenumberEnd: 891
    functionName: mozilla::pkix::test::BasicOCSPResponse
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - ByteString
    - mozilla::pkix::test::SignedData
    - mozilla::pkix::test::ENCODING_FAILED
    linkageType: ''
    returnType: ByteString
    signature: ByteString BasicOCSPResponse(OCSPResponseContext& context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:902,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:904,1
    - Dst: mozilla::pkix::test::Boolean
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:904,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:906,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:907,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:908,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' extension'
    argTypes:
    - OCSPResponseExtension
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 898
    functionDepth: 1
    functionLinenumber: 898
    functionLinenumberEnd: 909
    functionName: mozilla::pkix::test::OCSPExtension
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 2
    functionsReached:
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::Boolean
    - ByteString::append
    linkageType: ''
    returnType: ByteString
    signature: ByteString OCSPExtension(OCSPResponseExtension& extension)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::OCSPExtension
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:920,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:921,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:922,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:924,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:927,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - extensions
    argTypes:
    - OCSPResponseExtension*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 914
    functionDepth: 2
    functionLinenumber: 914
    functionLinenumberEnd: 928
    functionName: mozilla::pkix::test::OCSPExtensions
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 4
    functionsReached:
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::OCSPExtension
    - ByteString::append
    - mozilla::pkix::test::ENCODING_FAILED
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString OCSPExtensions(OCSPResponseExtension* extensions)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:940,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:941,1
    - Dst: mozilla::pkix::test::TimeToGeneralizedTime
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:943,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:944,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:945,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:948,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:949,1
    - Dst: mozilla::pkix::test::OCSPExtensions
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:954,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:958,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:959,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:960,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:961,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:963,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:965,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 936
    functionDepth: 3
    functionLinenumber: 936
    functionLinenumberEnd: 966
    functionName: mozilla::pkix::test::ResponseData
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::append
    - mozilla::pkix::test::ENCODING_FAILED
    - mozilla::pkix::test::TimeToGeneralizedTime
    - mozilla::pkix::test::OCSPExtensions
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString ResponseData(OCSPResponseContext& context)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: signerNameDER::empty
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:977,1
    - Dst: mozilla::pkix::test::KeyHash
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:981,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:982,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:983,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:990,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:992,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 993
      start: 972
    functionDepth: 3
    functionLinenumber: 972
    functionLinenumberEnd: 993
    functionName: mozilla::pkix::test::ResponderID
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - signerNameDER::empty
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::ENCODING_FAILED
    - ByteString
    - mozilla::pkix::test::KeyHash
    - static_cast<uint8_t>
    linkageType: ''
    returnType: ByteString
    signature: ByteString ResponderID(OCSPResponseContext& context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::HashedOctetString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1003,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' subjectPublicKey'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 1000
    functionDepth: 2
    functionLinenumber: 1000
    functionLinenumberEnd: 1004
    functionName: mozilla::pkix::test::KeyHash
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 3
    functionsReached:
    - mozilla::pkix::test::HashedOctetString
    linkageType: ''
    returnType: ByteString
    signature: ByteString KeyHash(const ByteString& subjectPublicKey)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1016,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1017,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1020,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1021,1
    - Dst: mozilla::pkix::test::TimeToGeneralizedTime
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1023,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1024,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1025,1
    - Dst: mozilla::pkix::test::TimeToGeneralizedTime
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1029,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1030,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1031,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1033,1
    - Dst: mozilla::pkix::test::OCSPExtensions
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1038,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1042,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1043,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1044,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1045,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1046,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1047,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 1012
    functionDepth: 3
    functionLinenumber: 1012
    functionLinenumberEnd: 1048
    functionName: mozilla::pkix::test::SingleResponse
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::append
    - mozilla::pkix::test::ENCODING_FAILED
    - mozilla::pkix::test::TimeToGeneralizedTime
    - mozilla::pkix::test::OCSPExtensions
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString SingleResponse(OCSPResponseContext& context)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: certID::issuer::UnsafeGetData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1058,1
    - Dst: certID::issuer::GetLength
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1059,1
    - Dst: mozilla::pkix::test::HashedOctetString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1060,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1061,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1062,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1072,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1073,1
    - Dst: mozilla::pkix::der::ExpectTagAndSkipValue
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1076,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1077,1
    - Dst: mozilla::pkix::der::BitStringWithNoUnusedBits
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1080,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1082,1
    - Dst: mozilla::pkix::test::HashedOctetString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1084,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1084,1
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1084,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1085,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1086,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1087,1
    - Dst: certID::serialNumber::UnsafeGetData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1091,1
    - Dst: certID::serialNumber::GetLength
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1092,1
    - Dst: certIDHashAlgorithmEncoded::empty
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1113,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1114,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1118,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1121,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1124,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1127,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1132,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1133,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1134,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1135,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1136
      start: 1055
    functionDepth: 2
    functionLinenumber: 1055
    functionLinenumberEnd: 1136
    functionName: mozilla::pkix::test::CertID
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - certID::issuer::UnsafeGetData
    - mozilla::pkix::test::TLV
    - mozilla::pkix::der::ExpectTagAndGetValue
    - mozilla::pkix::der::BitStringWithNoUnusedBits
    - Input::UnsafeGetData
    - Input::GetLength
    - ByteString::append
    - mozilla::pkix::test::ENCODING_FAILED
    - certID::issuer::GetLength
    - certID::serialNumber::UnsafeGetData
    - mozilla::pkix::der::ExpectTagAndSkipValue
    - certID::serialNumber::GetLength
    - certIDHashAlgorithmEncoded::empty
    - ByteString
    - mozilla::pkix::test::HashedOctetString
    linkageType: ''
    returnType: ByteString
    signature: ByteString CertID(OCSPResponseContext& context)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1160,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1160,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1161,1
    - Dst: mozilla::pkix::test::TimeToGeneralizedTime
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1165,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1166,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1167,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1170,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1173,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts:
    - condition: (false)
      pos:
        line_end: 1172
        line_start: 1172
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    constantsTouched: []
    func_position:
      end: 1177
      start: 1149
    functionDepth: 3
    functionLinenumber: 1149
    functionLinenumberEnd: 1177
    functionName: mozilla::pkix::test::CertStatus
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::ENCODING_FAILED
    - assert
    - mozilla::pkix::test::TimeToGeneralizedTime
    - ByteString
    - static_cast<uint8_t>
    linkageType: ''
    returnType: ByteString
    signature: ByteString CertStatus(OCSPResponseContext& context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1185,1
    - Dst: TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' aPublicKeyAlg'
    - ' spk'
    argTypes:
    - TestPublicKeyAlgorithm
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1182
    functionDepth: 0
    functionLinenumber: 1182
    functionLinenumberEnd: 1190
    functionName: mozilla::pkix::test::TestKeyPair::TestKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - TLV
    linkageType: ''
    returnType: void
    signature: "void TestKeyPair::TestKeyPair(const TestPublicKeyAlgorithm& aPublicKeyAlg,\n
      \                        const ByteString& spk)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - f
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: operator()(FILE* f)
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - fclose
    linkageType: ''
    returnType: void
    signature: void operator()(FILE* f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fopen_s
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:61,1
    - Dst: string::c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:61,1
    - Dst: c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:61,1
    - Dst: ScopedFILE::reset
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:66,1
    - Dst: ScopedFILE::reset
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: fopen
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: string::c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: ScopedFILE::release
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ' dir'
    - ' filename'
    - ' mode'
    argTypes:
    - string
    - string
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 72
    functionName: mozilla::pkix::test::OpenFile
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 3
    functionsReached:
    - ScopedFILE::reset
    - ScopedFILE::release
    - fopen
    - fopen_s
    - c_str
    - string::c_str
    linkageType: ''
    returnType: FILE
    signature: 'FILE *

      OpenFile(const string& dir, const string& filename, const string& mode)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - f
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: operator()(FILE* f)
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - fclose
    linkageType: ''
    returnType: void
    signature: void operator()(FILE* f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fopen_s
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:61,1
    - Dst: string::c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:61,1
    - Dst: c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:61,1
    - Dst: ScopedFILE::reset
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:66,1
    - Dst: ScopedFILE::reset
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: fopen
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: string::c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: ScopedFILE::release
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ' dir'
    - ' filename'
    - ' mode'
    argTypes:
    - string
    - string
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 72
    functionName: mozilla::pkix::test::OpenFile
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 3
    functionsReached:
    - ScopedFILE::reset
    - ScopedFILE::release
    - fopen
    - fopen_s
    - c_str
    - string::c_str
    linkageType: ''
    returnType: FILE
    signature: 'FILE *

      OpenFile(const string& dir, const string& filename, const string& mode)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Input::Init
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:80,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:80,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:80,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:84,1
    - Dst: InputsAreEqual
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - input
    - ' bs'
    argTypes:
    - Input
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 87
    functionName: mozilla::pkix::test::InputEqualsByteString
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - length
    - abort
    - InputsAreEqual
    - Input::Init
    - data
    linkageType: ''
    returnType: bool
    signature: bool InputEqualsByteString(Input input, const ByteString& bs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:96,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - input
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 101
    functionName: mozilla::pkix::test::InputToByteString
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - Reader::Read
    - ByteString::push_back
    linkageType: ''
    returnType: ByteString
    signature: ByteString InputToByteString(Input input)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:107,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:110,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:110,1
    - Dst: find
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:113,1
    - Dst: find
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:117,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:117,1
    - Dst: replace
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:120,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:120,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - ' item'
    - ' from'
    - ' to'
    argTypes:
    - ByteString
    - ByteString
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 122
    functionName: mozilla::pkix::test::TamperOnce
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - find
    - replace
    - length
    linkageType: ''
    returnType: Result
    signature: "Result TamperOnce(/*in/out*/ ByteString& item, const ByteString& from,\n
      \          const ByteString& to)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:129,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:131,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:132,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:132,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:133,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:134,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:135,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:135,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:136,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:137,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:138,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:138,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:139,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:139,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:143,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - tag
    - length
    - ' value'
    argTypes:
    - uint8_t
    - size_t
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 147
    functionName: mozilla::pkix::test::TLV
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 63
    functionsReached:
    - length
    - ByteString::append
    - abort
    - ByteString::push_back
    - static_cast<uint8_t>
    linkageType: ''
    returnType: ByteString
    signature: ByteString TLV(uint8_t tag, size_t length, const ByteString& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 155
    functionName: mozilla::pkix::test::OCSPResponseExtension::OCSPResponseExtension
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OCSPResponseExtension::OCSPResponseExtension()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:160,1
    - Dst: sha256WithRSAEncryption
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:168,1
    - Dst: static_cast<time_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' aCertID'
    - time
    argTypes:
    - CertID
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 178
    functionName: mozilla::pkix::test::OCSPResponseContext::OCSPResponseContext
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - ByteString
    - static_cast<time_t>
    - sha256WithRSAEncryption
    linkageType: ''
    returnType: void
    signature: void OCSPResponseContext::OCSPResponseContext(const CertID& aCertID,
      time_t time)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Input::Init
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:194,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:194,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:194,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:195,1
    - Dst: DigestAlgorithmToSizeInBytes
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:197,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:198,1
    - Dst: mozilla::pkix::test::TestDigestBuf
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:199,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:201,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:203,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' toHash'
    - digestAlgorithm
    argTypes:
    - ByteString
    - DigestAlgorithm
    assertStmts:
    - condition: (digestLen <= sizeof(digestBuf))
      pos:
        line_end: 197
        line_start: 197
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    constantsTouched: []
    func_position:
      end: 204
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 204
    functionName: mozilla::pkix::test::HASH
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - length
    - DigestAlgorithmToSizeInBytes
    - mozilla::pkix::test::TestDigestBuf
    - abort
    - assert
    - ByteString
    - Input::Init
    - data
    linkageType: ''
    returnType: ByteString
    signature: ByteString HASH(const ByteString& toHash, DigestAlgorithm digestAlgorithm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:210,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:211,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' bytes'
    - digestAlgorithm
    argTypes:
    - ByteString
    - DigestAlgorithm
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 214
    functionName: mozilla::pkix::test::HashedOctetString
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 6
    functionsReached:
    - ByteString
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::ENCODING_FAILED
    linkageType: ''
    returnType: ByteString
    signature: ByteString HashedOctetString(const ByteString& bytes, DigestAlgorithm
      digestAlgorithm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:223,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:224,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:226,1
    - Dst: ByteString::length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:226,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' rawBytes'
    - corrupt
    argTypes:
    - ByteString
    - bool
    assertStmts:
    - condition: (prefixed.length() > 8)
      pos:
        line_end: 225
        line_start: 225
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    constantsTouched: []
    func_position:
      end: 230
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 230
    functionName: mozilla::pkix::test::BitString
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - ByteString::append
    - assert
    - ByteString::length
    - mozilla::pkix::test::TLV
    - ByteString::push_back
    linkageType: ''
    returnType: ByteString
    signature: ByteString BitString(const ByteString& rawBytes, bool corrupt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:236,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 238
    functionName: mozilla::pkix::test::Boolean
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 9
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::push_back
    linkageType: ''
    returnType: ByteString
    signature: ByteString Boolean(bool value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:247,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:251,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:251,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:252,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 253
    functionName: mozilla::pkix::test::Integer
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 6
    functionsReached:
    - static_cast<uint8_t>
    - mozilla::pkix::test::TLV
    - abort
    - ByteString::push_back
    linkageType: ''
    returnType: ByteString
    signature: ByteString Integer(long value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gmtime_s
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - t
    - exploded
    argTypes:
    - time_t*
    - tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 266
    functionName: mozilla::pkix::test::gmtime_r
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 6
    functionsReached:
    - gmtime_s
    linkageType: ''
    returnType: tm
    signature: 'tm *

      gmtime_r(const time_t* t, /*out*/ tm* exploded)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:278,1
    - Dst: mozilla::pkix::test::gmtime_r
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:281,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:282,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:294,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:300,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:300,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:301,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:301,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:304,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:304,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:305,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:305,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:306,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:306,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:307,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:307,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:308,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:308,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:309,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:309,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:310,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:310,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:311,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:311,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:312,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:312,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:313,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:313,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:314,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:314,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:315,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:315,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:316,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:318,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - time
    - encoding
    argTypes:
    - time_t
    - TimeEncoding
    assertStmts:
    - condition: (encoding == UTCTime || encoding == GeneralizedTime)
      pos:
        line_end: 277
        line_start: 277
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    constantsTouched: []
    func_position:
      end: 320
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 320
    functionName: mozilla::pkix::test::TimeToEncodedTime
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 6
    functionsReached:
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::gmtime_r
    - assert
    - ByteString::push_back
    - ByteString
    - static_cast<uint8_t>
    linkageType: ''
    returnType: ByteString
    signature: ByteString TimeToEncodedTime(time_t time, TimeEncoding encoding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TimeToEncodedTime
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - time
    argTypes:
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 322
    functionDepth: 2
    functionLinenumber: 322
    functionLinenumberEnd: 326
    functionName: mozilla::pkix::test::TimeToGeneralizedTime
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 9
    functionsReached:
    - mozilla::pkix::test::TimeToEncodedTime
    linkageType: ''
    returnType: ByteString
    signature: ByteString TimeToGeneralizedTime(time_t time)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::gmtime_r
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:337,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:338,1
    - Dst: mozilla::pkix::test::TimeToEncodedTime
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:345,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - time
    argTypes:
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 333
    functionDepth: 2
    functionLinenumber: 333
    functionLinenumberEnd: 346
    functionName: mozilla::pkix::test::TimeToTimeChoice
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::gmtime_r
    - mozilla::pkix::test::TimeToEncodedTime
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString TimeToTimeChoice(time_t time)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:352,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:353,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:354,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:355,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:356,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:357,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:358,1
    - Dst: DaysBeforeYear
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:360,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:376,1
    - Dst: TimeFromElapsedSecondsAD
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:390,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 6
    argNames:
    - year
    - month
    - day
    - hour
    - minutes
    - seconds
    argTypes:
    - uint16_t
    - uint16_t
    - uint16_t
    - uint16_t
    - uint16_t
    - uint16_t
    assertStmts:
    - condition: (year <= 9999)
      pos:
        line_end: 351
        line_start: 351
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (month <= 12)
      pos:
        line_end: 353
        line_start: 353
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (month >= 1)
      pos:
        line_end: 352
        line_start: 352
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (hour < 24)
      pos:
        line_end: 355
        line_start: 355
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (day >= 1)
      pos:
        line_end: 354
        line_start: 354
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (minutes < 60)
      pos:
        line_end: 356
        line_start: 356
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (seconds < 60)
      pos:
        line_end: 357
        line_start: 357
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (day <= daysInMonth)
      pos:
        line_end: 375
        line_start: 375
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    constantsTouched: []
    func_position:
      end: 391
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 391
    functionName: mozilla::pkix::test::YMDHMS
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - assert
    - DaysBeforeYear
    - TimeFromElapsedSecondsAD
    linkageType: ''
    returnType: Time
    signature: "Time YMDHMS(uint16_t year, uint16_t month, uint16_t day,\n       uint16_t
      hour, uint16_t minutes, uint16_t seconds)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SignData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:400,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:401,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:407,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:408,1
    - Dst: empty
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:414,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:415,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:419,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:424,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:425,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:426,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:427,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:428,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 5
    argNames:
    - ' tbsData'
    - ' keyPair'
    - ' signatureAlgorithm'
    - corrupt
    - certs
    argTypes:
    - ByteString
    - TestKeyPair
    - TestSignatureAlgorithm
    - bool
    - ByteString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 429
    functionName: mozilla::pkix::test::SignedData
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 3
    functionsReached:
    - mozilla::pkix::test::TLV
    - SignData
    - ByteString::append
    - mozilla::pkix::test::ENCODING_FAILED
    - ByteString
    - empty
    linkageType: ''
    returnType: ByteString
    signature: "ByteString SignedData(const ByteString& tbsData,\n           const
      TestKeyPair& keyPair,\n           const TestSignatureAlgorithm& signatureAlgorithm,\n
      \          bool corrupt, /*optional*/ const ByteString* certs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:444,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:444,1
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:444,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:444,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:447,1
    - Dst: mozilla::pkix::test::Boolean
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:447,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:452,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:453,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - extnID
    - critical
    - ' extnValueBytes'
    argTypes:
    - Input
    - Critical
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 454
    functionName: mozilla::pkix::test::Extension
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 9
    functionsReached:
    - mozilla::pkix::test::TLV
    - Input::UnsafeGetData
    - Input::GetLength
    - ByteString::append
    - ByteString
    - mozilla::pkix::test::Boolean
    linkageType: ''
    returnType: ByteString
    signature: ByteString Extension(Input extnID, Critical critical, const ByteString&
      extnValueBytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:459,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:459,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:462,1
    - Dst: mozilla::pkix::test::Boolean
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:462,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:466,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:467,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - extnID
    - critical
    argTypes:
    - Input
    - Critical
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 468
    functionName: mozilla::pkix::test::EmptyExtension
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 3
    functionsReached:
    - Input::UnsafeGetData
    - Input::GetLength
    - ByteString::append
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::Boolean
    linkageType: ''
    returnType: ByteString
    signature: ByteString EmptyExtension(Input extnID, Critical critical)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:477,1
    - Dst: _dupenv_s
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:484,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:485,1
    - Dst: free
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:489,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 493
    functionName: mozilla::pkix::test::GetEnv
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 3
    functionsReached:
    - getenv
    - free
    - abort
    - _dupenv_s
    linkageType: ''
    returnType: std::string
    signature: std::string GetEnv(const char* name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:498,1
    - Dst: mozilla::pkix::test::GetEnv
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:503,1
    - Dst: std::string::empty
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:504,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:510,1
    - Dst: std::ostringstream::str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:513,1
    - Dst: mozilla::pkix::test::OpenFile
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:516,1
    - Dst: fwrite
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:518,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:518,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:518,1
    - Dst: ScopedFILE::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:518,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - ' result'
    - suffix
    argTypes:
    - ByteString
    - char*
    assertStmts:
    - condition: (suffix)
      pos:
        line_end: 497
        line_start: 497
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (false)
      pos:
        line_end: 509
        line_start: 509
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    constantsTouched: []
    func_position:
      end: 521
      start: 495
    functionDepth: 2
    functionLinenumber: 495
    functionLinenumberEnd: 521
    functionName: mozilla::pkix::test::MaybeLogOutput
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 6
    functionsReached:
    - std::string::empty
    - length
    - ScopedFILE::get
    - assert
    - std::ostringstream::str
    - fwrite
    - mozilla::pkix::test::GetEnv
    - mozilla::pkix::test::OpenFile
    - data
    linkageType: ''
    returnType: void
    signature: void MaybeLogOutput(const ByteString& result, const char* suffix)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TBSCertificate
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:550,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:556,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:557,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:562,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:563,1
    - Dst: mozilla::pkix::test::MaybeLogOutput
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:566,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 11
    argNames:
    - version
    - ' signature'
    - ' serialNumber'
    - ' issuerNameDER'
    - notBefore
    - notAfter
    - ' subjectNameDER'
    - ' subjectKeyPair'
    - extensions
    - ' issuerKeyPair'
    - ' signatureAlgorithm'
    argTypes:
    - long
    - TestSignatureAlgorithm
    - ByteString
    - ByteString
    - time_t
    - time_t
    - ByteString
    - TestKeyPair
    - ByteString*
    - TestKeyPair
    - TestSignatureAlgorithm
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 538
    functionDepth: 3
    functionLinenumber: 538
    functionLinenumberEnd: 569
    functionName: mozilla::pkix::test::CreateEncodedCertificate
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - ByteString
    - mozilla::pkix::test::TBSCertificate
    - mozilla::pkix::test::MaybeLogOutput
    - mozilla::pkix::test::ENCODING_FAILED
    linkageType: ''
    returnType: ByteString
    signature: "ByteString CreateEncodedCertificate(long version,\n                         const
      TestSignatureAlgorithm& signature,\n                         const ByteString&
      serialNumber,\n                         const ByteString& issuerNameDER,\n                         time_t
      notBefore, time_t notAfter,\n                         const ByteString& subjectNameDER,\n
      \                        const TestKeyPair& subjectKeyPair,\n                         /*optional*/
      const ByteString* extensions,\n                         const TestKeyPair& issuerKeyPair,\n
      \                        const TestSignatureAlgorithm& signatureAlgorithm)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<long>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:595,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:597,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:599,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:602,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:603,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:604,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:612,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:613,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:616,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:617,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:620,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:621,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:622,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:623,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:624,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:627,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:629,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:631,1
    - Dst: empty
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:635,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:636,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:640,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:641,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:644,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:645,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:646,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:648,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:651,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 9
    argNames:
    - versionValue
    - ' serialNumber'
    - ' signature'
    - ' issuer'
    - notBeforeTime
    - notAfterTime
    - ' subject'
    - ' subjectPublicKeyInfo'
    - extensions
    argTypes:
    - long
    - ByteString
    - ByteString
    - ByteString
    - time_t
    - time_t
    - ByteString
    - ByteString
    - ByteString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 585
    functionDepth: 1
    functionLinenumber: 585
    functionLinenumberEnd: 652
    functionName: mozilla::pkix::test::TBSCertificate
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 4
    functionsReached:
    - ByteString::append
    - static_cast<long>
    - mozilla::pkix::test::ENCODING_FAILED
    - mozilla::pkix::test::TLV
    - empty
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: "ByteString TBSCertificate(long versionValue,\n               const
      ByteString& serialNumber, const ByteString& signature,\n               const
      ByteString& issuer, time_t notBeforeTime,\n               time_t notAfterTime,
      const ByteString& subject,\n               const ByteString& subjectPublicKeyInfo,\n
      \              /*optional*/ const ByteString* extensions)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:675,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:676,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - (type)
    - directoryStringType
    - ' value'
    argTypes:
    - uint8_t[]
    - uint8_t
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 678
    functionName: mozilla::pkix::test::AVA
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 9
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::append
    linkageType: ''
    returnType: ByteString
    signature: "ByteString AVA(const uint8_t (&type)[N], uint8_t directoryStringType,\n
      \   const ByteString& value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::AVA
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' value'
    - encodingTag
    argTypes:
    - ByteString
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 680
    functionDepth: 1
    functionLinenumber: 680
    functionLinenumberEnd: 690
    functionName: mozilla::pkix::test::CN
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::AVA
    linkageType: ''
    returnType: ByteString
    signature: ByteString CN(const ByteString& value, uint8_t encodingTag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::AVA
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' value'
    - encodingTag
    argTypes:
    - ByteString
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 692
    functionDepth: 1
    functionLinenumber: 692
    functionLinenumberEnd: 703
    functionName: mozilla::pkix::test::OU
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::AVA
    linkageType: ''
    returnType: ByteString
    signature: ByteString OU(const ByteString& value, uint8_t encodingTag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::AVA
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 705
    functionDepth: 1
    functionLinenumber: 705
    functionLinenumberEnd: 715
    functionName: mozilla::pkix::test::emailAddress
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::AVA
    linkageType: ''
    returnType: ByteString
    signature: ByteString emailAddress(const ByteString& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' avas'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 720
    functionDepth: 0
    functionLinenumber: 720
    functionLinenumberEnd: 724
    functionName: mozilla::pkix::test::RDN
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    linkageType: ''
    returnType: ByteString
    signature: ByteString RDN(const ByteString& avas)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:734,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rdns'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 731
    functionDepth: 0
    functionLinenumber: 731
    functionLinenumberEnd: 735
    functionName: mozilla::pkix::test::Name
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    linkageType: ''
    returnType: ByteString
    signature: ByteString Name(const ByteString& rdns)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::Integer
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:740,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - serialNumberValue
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 737
    functionDepth: 1
    functionLinenumber: 737
    functionLinenumberEnd: 741
    functionName: mozilla::pkix::test::CreateEncodedSerialNumber
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::Integer
    linkageType: ''
    returnType: ByteString
    signature: ByteString CreateEncodedSerialNumber(long serialNumberValue)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:755,1
    - Dst: mozilla::pkix::test::Integer
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:759,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:760,1
    - Dst: mozilla::pkix::test::Extension
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:767,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:767,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - isCA
    - pathLenConstraintValue
    - critical
    argTypes:
    - bool
    - long*
    - Critical
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 746
    functionDepth: 2
    functionLinenumber: 746
    functionLinenumberEnd: 768
    functionName: mozilla::pkix::test::CreateEncodedBasicConstraints
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::Integer
    - ByteString::append
    - Input
    - mozilla::pkix::test::Extension
    linkageType: ''
    returnType: ByteString
    signature: "ByteString CreateEncodedBasicConstraints(bool isCA,\n                              /*optional
      in*/ const long* pathLenConstraintValue,\n                              Critical
      critical)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:775,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:775,1
    - Dst: mozilla::pkix::test::Extension
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:782,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ekuOID
    - critical
    argTypes:
    - Input
    - Critical
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 772
    functionDepth: 2
    functionLinenumber: 772
    functionLinenumberEnd: 783
    functionName: mozilla::pkix::test::CreateEncodedEKUExtension
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - Input::GetLength
    - Input
    - Input::UnsafeGetData
    - mozilla::pkix::test::Extension
    linkageType: ''
    returnType: ByteString
    signature: ByteString CreateEncodedEKUExtension(Input ekuOID, Critical critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::Extension
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:793,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' names'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 790
    functionDepth: 2
    functionLinenumber: 790
    functionLinenumberEnd: 794
    functionName: mozilla::pkix::test::CreateEncodedSubjectAltName
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - Input
    - mozilla::pkix::test::Extension
    linkageType: ''
    returnType: ByteString
    signature: ByteString CreateEncodedSubjectAltName(const ByteString& names)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::EmptyExtension
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:799,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:799,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 796
    functionDepth: 2
    functionLinenumber: 796
    functionLinenumberEnd: 800
    functionName: mozilla::pkix::test::CreateEncodedEmptySubjectAltName
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - Input
    - mozilla::pkix::test::EmptyExtension
    linkageType: ''
    returnType: ByteString
    signature: ByteString CreateEncodedEmptySubjectAltName()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:810,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:828,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:834,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:835,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:838,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:843,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:844,1
    - Dst: mozilla::pkix::test::MaybeLogOutput
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:847,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 805
    functionDepth: 3
    functionLinenumber: 805
    functionLinenumberEnd: 850
    functionName: mozilla::pkix::test::CreateEncodedOCSPResponse
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::append
    - mozilla::pkix::test::ENCODING_FAILED
    - mozilla::pkix::test::MaybeLogOutput
    - ByteString
    - ByteString::push_back
    linkageType: ''
    returnType: ByteString
    signature: ByteString CreateEncodedOCSPResponse(OCSPResponseContext& context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:863,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:864,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:866,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:869,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:871,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:872,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 855
    functionDepth: 1
    functionLinenumber: 855
    functionLinenumberEnd: 873
    functionName: mozilla::pkix::test::ResponseBytes
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - ByteString
    - mozilla::pkix::test::TLV
    - ByteString::append
    - mozilla::pkix::test::ENCODING_FAILED
    linkageType: ''
    returnType: ByteString
    signature: ByteString ResponseBytes(OCSPResponseContext& context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:884,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:885,1
    - Dst: mozilla::pkix::test::SignedData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:888,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 880
    functionDepth: 2
    functionLinenumber: 880
    functionLinenumberEnd: 891
    functionName: mozilla::pkix::test::BasicOCSPResponse
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - ByteString
    - mozilla::pkix::test::SignedData
    - mozilla::pkix::test::ENCODING_FAILED
    linkageType: ''
    returnType: ByteString
    signature: ByteString BasicOCSPResponse(OCSPResponseContext& context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:902,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:904,1
    - Dst: mozilla::pkix::test::Boolean
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:904,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:906,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:907,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:908,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' extension'
    argTypes:
    - OCSPResponseExtension
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 898
    functionDepth: 1
    functionLinenumber: 898
    functionLinenumberEnd: 909
    functionName: mozilla::pkix::test::OCSPExtension
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 3
    functionsReached:
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::Boolean
    - ByteString::append
    linkageType: ''
    returnType: ByteString
    signature: ByteString OCSPExtension(OCSPResponseExtension& extension)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::OCSPExtension
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:920,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:921,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:922,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:924,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:927,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - extensions
    argTypes:
    - OCSPResponseExtension*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 914
    functionDepth: 2
    functionLinenumber: 914
    functionLinenumberEnd: 928
    functionName: mozilla::pkix::test::OCSPExtensions
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 6
    functionsReached:
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::OCSPExtension
    - ByteString::append
    - mozilla::pkix::test::ENCODING_FAILED
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString OCSPExtensions(OCSPResponseExtension* extensions)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:940,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:941,1
    - Dst: mozilla::pkix::test::TimeToGeneralizedTime
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:943,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:944,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:945,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:948,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:949,1
    - Dst: mozilla::pkix::test::OCSPExtensions
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:954,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:958,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:959,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:960,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:961,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:963,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:965,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 936
    functionDepth: 3
    functionLinenumber: 936
    functionLinenumberEnd: 966
    functionName: mozilla::pkix::test::ResponseData
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::append
    - mozilla::pkix::test::ENCODING_FAILED
    - mozilla::pkix::test::TimeToGeneralizedTime
    - mozilla::pkix::test::OCSPExtensions
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString ResponseData(OCSPResponseContext& context)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: signerNameDER::empty
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:977,1
    - Dst: mozilla::pkix::test::KeyHash
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:981,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:982,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:983,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:990,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:992,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 993
      start: 972
    functionDepth: 3
    functionLinenumber: 972
    functionLinenumberEnd: 993
    functionName: mozilla::pkix::test::ResponderID
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - signerNameDER::empty
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::ENCODING_FAILED
    - ByteString
    - mozilla::pkix::test::KeyHash
    - static_cast<uint8_t>
    linkageType: ''
    returnType: ByteString
    signature: ByteString ResponderID(OCSPResponseContext& context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::HashedOctetString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1003,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' subjectPublicKey'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 1000
    functionDepth: 2
    functionLinenumber: 1000
    functionLinenumberEnd: 1004
    functionName: mozilla::pkix::test::KeyHash
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 4
    functionsReached:
    - mozilla::pkix::test::HashedOctetString
    linkageType: ''
    returnType: ByteString
    signature: ByteString KeyHash(const ByteString& subjectPublicKey)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1016,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1017,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1020,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1021,1
    - Dst: mozilla::pkix::test::TimeToGeneralizedTime
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1023,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1024,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1025,1
    - Dst: mozilla::pkix::test::TimeToGeneralizedTime
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1029,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1030,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1031,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1033,1
    - Dst: mozilla::pkix::test::OCSPExtensions
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1038,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1042,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1043,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1044,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1045,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1046,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1047,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 1012
    functionDepth: 3
    functionLinenumber: 1012
    functionLinenumberEnd: 1048
    functionName: mozilla::pkix::test::SingleResponse
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::append
    - mozilla::pkix::test::ENCODING_FAILED
    - mozilla::pkix::test::TimeToGeneralizedTime
    - mozilla::pkix::test::OCSPExtensions
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString SingleResponse(OCSPResponseContext& context)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: certID::issuer::UnsafeGetData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1058,1
    - Dst: certID::issuer::GetLength
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1059,1
    - Dst: mozilla::pkix::test::HashedOctetString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1060,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1061,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1062,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1072,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1073,1
    - Dst: mozilla::pkix::der::ExpectTagAndSkipValue
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1076,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1077,1
    - Dst: mozilla::pkix::der::BitStringWithNoUnusedBits
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1080,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1082,1
    - Dst: mozilla::pkix::test::HashedOctetString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1084,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1084,1
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1084,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1085,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1086,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1087,1
    - Dst: certID::serialNumber::UnsafeGetData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1091,1
    - Dst: certID::serialNumber::GetLength
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1092,1
    - Dst: certIDHashAlgorithmEncoded::empty
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1113,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1114,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1118,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1121,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1124,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1127,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1132,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1133,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1134,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1135,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1136
      start: 1055
    functionDepth: 2
    functionLinenumber: 1055
    functionLinenumberEnd: 1136
    functionName: mozilla::pkix::test::CertID
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - certID::issuer::UnsafeGetData
    - mozilla::pkix::test::TLV
    - mozilla::pkix::der::ExpectTagAndGetValue
    - mozilla::pkix::der::BitStringWithNoUnusedBits
    - Input::UnsafeGetData
    - Input::GetLength
    - ByteString::append
    - mozilla::pkix::test::ENCODING_FAILED
    - certID::issuer::GetLength
    - certID::serialNumber::UnsafeGetData
    - mozilla::pkix::der::ExpectTagAndSkipValue
    - certID::serialNumber::GetLength
    - certIDHashAlgorithmEncoded::empty
    - ByteString
    - mozilla::pkix::test::HashedOctetString
    linkageType: ''
    returnType: ByteString
    signature: ByteString CertID(OCSPResponseContext& context)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1160,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1160,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1161,1
    - Dst: mozilla::pkix::test::TimeToGeneralizedTime
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1165,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1166,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1167,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1170,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1173,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts:
    - condition: (false)
      pos:
        line_end: 1172
        line_start: 1172
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    constantsTouched: []
    func_position:
      end: 1177
      start: 1149
    functionDepth: 3
    functionLinenumber: 1149
    functionLinenumberEnd: 1177
    functionName: mozilla::pkix::test::CertStatus
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::ENCODING_FAILED
    - assert
    - mozilla::pkix::test::TimeToGeneralizedTime
    - ByteString
    - static_cast<uint8_t>
    linkageType: ''
    returnType: ByteString
    signature: ByteString CertStatus(OCSPResponseContext& context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1185,1
    - Dst: TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' aPublicKeyAlg'
    - ' spk'
    argTypes:
    - TestPublicKeyAlgorithm
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1182
    functionDepth: 0
    functionLinenumber: 1182
    functionLinenumberEnd: 1190
    functionName: mozilla::pkix::test::TestKeyPair::TestKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - TLV
    linkageType: ''
    returnType: void
    signature: "void TestKeyPair::TestKeyPair(const TestPublicKeyAlgorithm& aPublicKeyAlg,\n
      \                        const ByteString& spk)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - f
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: operator()(FILE* f)
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - fclose
    linkageType: ''
    returnType: void
    signature: void operator()(FILE* f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fopen_s
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:61,1
    - Dst: string::c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:61,1
    - Dst: c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:61,1
    - Dst: ScopedFILE::reset
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:66,1
    - Dst: ScopedFILE::reset
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: fopen
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: string::c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: ScopedFILE::release
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ' dir'
    - ' filename'
    - ' mode'
    argTypes:
    - string
    - string
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 72
    functionName: mozilla::pkix::test::OpenFile
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 4
    functionsReached:
    - ScopedFILE::reset
    - ScopedFILE::release
    - fopen
    - fopen_s
    - c_str
    - string::c_str
    linkageType: ''
    returnType: FILE
    signature: 'FILE *

      OpenFile(const string& dir, const string& filename, const string& mode)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - f
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: operator()(FILE* f)
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - fclose
    linkageType: ''
    returnType: void
    signature: void operator()(FILE* f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fopen_s
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:61,1
    - Dst: string::c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:61,1
    - Dst: c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:61,1
    - Dst: ScopedFILE::reset
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:66,1
    - Dst: ScopedFILE::reset
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: fopen
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: string::c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: ScopedFILE::release
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ' dir'
    - ' filename'
    - ' mode'
    argTypes:
    - string
    - string
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 72
    functionName: mozilla::pkix::test::OpenFile
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 4
    functionsReached:
    - ScopedFILE::reset
    - ScopedFILE::release
    - fopen
    - fopen_s
    - c_str
    - string::c_str
    linkageType: ''
    returnType: FILE
    signature: 'FILE *

      OpenFile(const string& dir, const string& filename, const string& mode)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Input::Init
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:80,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:80,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:80,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:84,1
    - Dst: InputsAreEqual
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - input
    - ' bs'
    argTypes:
    - Input
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 87
    functionName: mozilla::pkix::test::InputEqualsByteString
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - length
    - abort
    - InputsAreEqual
    - Input::Init
    - data
    linkageType: ''
    returnType: bool
    signature: bool InputEqualsByteString(Input input, const ByteString& bs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:96,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - input
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 101
    functionName: mozilla::pkix::test::InputToByteString
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - Reader::Read
    - ByteString::push_back
    linkageType: ''
    returnType: ByteString
    signature: ByteString InputToByteString(Input input)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:107,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:110,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:110,1
    - Dst: find
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:113,1
    - Dst: find
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:117,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:117,1
    - Dst: replace
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:120,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:120,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - ' item'
    - ' from'
    - ' to'
    argTypes:
    - ByteString
    - ByteString
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 122
    functionName: mozilla::pkix::test::TamperOnce
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - find
    - replace
    - length
    linkageType: ''
    returnType: Result
    signature: "Result TamperOnce(/*in/out*/ ByteString& item, const ByteString& from,\n
      \          const ByteString& to)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:129,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:131,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:132,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:132,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:133,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:134,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:135,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:135,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:136,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:137,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:138,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:138,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:139,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:139,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:143,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - tag
    - length
    - ' value'
    argTypes:
    - uint8_t
    - size_t
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 147
    functionName: mozilla::pkix::test::TLV
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 84
    functionsReached:
    - length
    - ByteString::append
    - abort
    - ByteString::push_back
    - static_cast<uint8_t>
    linkageType: ''
    returnType: ByteString
    signature: ByteString TLV(uint8_t tag, size_t length, const ByteString& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 155
    functionName: mozilla::pkix::test::OCSPResponseExtension::OCSPResponseExtension
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OCSPResponseExtension::OCSPResponseExtension()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:160,1
    - Dst: sha256WithRSAEncryption
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:168,1
    - Dst: static_cast<time_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' aCertID'
    - time
    argTypes:
    - CertID
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 178
    functionName: mozilla::pkix::test::OCSPResponseContext::OCSPResponseContext
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - ByteString
    - static_cast<time_t>
    - sha256WithRSAEncryption
    linkageType: ''
    returnType: void
    signature: void OCSPResponseContext::OCSPResponseContext(const CertID& aCertID,
      time_t time)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Input::Init
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:194,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:194,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:194,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:195,1
    - Dst: DigestAlgorithmToSizeInBytes
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:197,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:198,1
    - Dst: mozilla::pkix::test::TestDigestBuf
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:199,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:201,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:203,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' toHash'
    - digestAlgorithm
    argTypes:
    - ByteString
    - DigestAlgorithm
    assertStmts:
    - condition: (digestLen <= sizeof(digestBuf))
      pos:
        line_end: 197
        line_start: 197
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    constantsTouched: []
    func_position:
      end: 204
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 204
    functionName: mozilla::pkix::test::HASH
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - length
    - DigestAlgorithmToSizeInBytes
    - mozilla::pkix::test::TestDigestBuf
    - abort
    - assert
    - ByteString
    - Input::Init
    - data
    linkageType: ''
    returnType: ByteString
    signature: ByteString HASH(const ByteString& toHash, DigestAlgorithm digestAlgorithm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:210,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:211,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' bytes'
    - digestAlgorithm
    argTypes:
    - ByteString
    - DigestAlgorithm
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 214
    functionName: mozilla::pkix::test::HashedOctetString
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 8
    functionsReached:
    - ByteString
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::ENCODING_FAILED
    linkageType: ''
    returnType: ByteString
    signature: ByteString HashedOctetString(const ByteString& bytes, DigestAlgorithm
      digestAlgorithm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:223,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:224,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:226,1
    - Dst: ByteString::length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:226,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' rawBytes'
    - corrupt
    argTypes:
    - ByteString
    - bool
    assertStmts:
    - condition: (prefixed.length() > 8)
      pos:
        line_end: 225
        line_start: 225
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    constantsTouched: []
    func_position:
      end: 230
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 230
    functionName: mozilla::pkix::test::BitString
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - ByteString::append
    - assert
    - ByteString::length
    - mozilla::pkix::test::TLV
    - ByteString::push_back
    linkageType: ''
    returnType: ByteString
    signature: ByteString BitString(const ByteString& rawBytes, bool corrupt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:236,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 238
    functionName: mozilla::pkix::test::Boolean
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 12
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::push_back
    linkageType: ''
    returnType: ByteString
    signature: ByteString Boolean(bool value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:247,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:251,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:251,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:252,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 253
    functionName: mozilla::pkix::test::Integer
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 8
    functionsReached:
    - static_cast<uint8_t>
    - mozilla::pkix::test::TLV
    - abort
    - ByteString::push_back
    linkageType: ''
    returnType: ByteString
    signature: ByteString Integer(long value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gmtime_s
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - t
    - exploded
    argTypes:
    - time_t*
    - tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 266
    functionName: mozilla::pkix::test::gmtime_r
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 8
    functionsReached:
    - gmtime_s
    linkageType: ''
    returnType: tm
    signature: 'tm *

      gmtime_r(const time_t* t, /*out*/ tm* exploded)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:278,1
    - Dst: mozilla::pkix::test::gmtime_r
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:281,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:282,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:294,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:300,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:300,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:301,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:301,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:304,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:304,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:305,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:305,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:306,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:306,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:307,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:307,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:308,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:308,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:309,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:309,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:310,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:310,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:311,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:311,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:312,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:312,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:313,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:313,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:314,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:314,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:315,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:315,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:316,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:318,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - time
    - encoding
    argTypes:
    - time_t
    - TimeEncoding
    assertStmts:
    - condition: (encoding == UTCTime || encoding == GeneralizedTime)
      pos:
        line_end: 277
        line_start: 277
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    constantsTouched: []
    func_position:
      end: 320
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 320
    functionName: mozilla::pkix::test::TimeToEncodedTime
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 8
    functionsReached:
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::gmtime_r
    - assert
    - ByteString::push_back
    - ByteString
    - static_cast<uint8_t>
    linkageType: ''
    returnType: ByteString
    signature: ByteString TimeToEncodedTime(time_t time, TimeEncoding encoding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TimeToEncodedTime
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - time
    argTypes:
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 322
    functionDepth: 2
    functionLinenumber: 322
    functionLinenumberEnd: 326
    functionName: mozilla::pkix::test::TimeToGeneralizedTime
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 12
    functionsReached:
    - mozilla::pkix::test::TimeToEncodedTime
    linkageType: ''
    returnType: ByteString
    signature: ByteString TimeToGeneralizedTime(time_t time)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::gmtime_r
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:337,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:338,1
    - Dst: mozilla::pkix::test::TimeToEncodedTime
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:345,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - time
    argTypes:
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 333
    functionDepth: 2
    functionLinenumber: 333
    functionLinenumberEnd: 346
    functionName: mozilla::pkix::test::TimeToTimeChoice
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::gmtime_r
    - mozilla::pkix::test::TimeToEncodedTime
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString TimeToTimeChoice(time_t time)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:352,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:353,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:354,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:355,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:356,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:357,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:358,1
    - Dst: DaysBeforeYear
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:360,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:376,1
    - Dst: TimeFromElapsedSecondsAD
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:390,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 6
    argNames:
    - year
    - month
    - day
    - hour
    - minutes
    - seconds
    argTypes:
    - uint16_t
    - uint16_t
    - uint16_t
    - uint16_t
    - uint16_t
    - uint16_t
    assertStmts:
    - condition: (year <= 9999)
      pos:
        line_end: 351
        line_start: 351
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (month <= 12)
      pos:
        line_end: 353
        line_start: 353
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (month >= 1)
      pos:
        line_end: 352
        line_start: 352
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (hour < 24)
      pos:
        line_end: 355
        line_start: 355
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (day >= 1)
      pos:
        line_end: 354
        line_start: 354
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (minutes < 60)
      pos:
        line_end: 356
        line_start: 356
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (seconds < 60)
      pos:
        line_end: 357
        line_start: 357
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (day <= daysInMonth)
      pos:
        line_end: 375
        line_start: 375
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    constantsTouched: []
    func_position:
      end: 391
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 391
    functionName: mozilla::pkix::test::YMDHMS
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - assert
    - DaysBeforeYear
    - TimeFromElapsedSecondsAD
    linkageType: ''
    returnType: Time
    signature: "Time YMDHMS(uint16_t year, uint16_t month, uint16_t day,\n       uint16_t
      hour, uint16_t minutes, uint16_t seconds)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SignData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:400,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:401,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:407,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:408,1
    - Dst: empty
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:414,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:415,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:419,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:424,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:425,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:426,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:427,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:428,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 5
    argNames:
    - ' tbsData'
    - ' keyPair'
    - ' signatureAlgorithm'
    - corrupt
    - certs
    argTypes:
    - ByteString
    - TestKeyPair
    - TestSignatureAlgorithm
    - bool
    - ByteString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 429
    functionName: mozilla::pkix::test::SignedData
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 4
    functionsReached:
    - mozilla::pkix::test::TLV
    - SignData
    - ByteString::append
    - mozilla::pkix::test::ENCODING_FAILED
    - ByteString
    - empty
    linkageType: ''
    returnType: ByteString
    signature: "ByteString SignedData(const ByteString& tbsData,\n           const
      TestKeyPair& keyPair,\n           const TestSignatureAlgorithm& signatureAlgorithm,\n
      \          bool corrupt, /*optional*/ const ByteString* certs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:444,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:444,1
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:444,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:444,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:447,1
    - Dst: mozilla::pkix::test::Boolean
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:447,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:452,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:453,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - extnID
    - critical
    - ' extnValueBytes'
    argTypes:
    - Input
    - Critical
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 454
    functionName: mozilla::pkix::test::Extension
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 12
    functionsReached:
    - mozilla::pkix::test::TLV
    - Input::UnsafeGetData
    - Input::GetLength
    - ByteString::append
    - ByteString
    - mozilla::pkix::test::Boolean
    linkageType: ''
    returnType: ByteString
    signature: ByteString Extension(Input extnID, Critical critical, const ByteString&
      extnValueBytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:459,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:459,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:462,1
    - Dst: mozilla::pkix::test::Boolean
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:462,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:466,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:467,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - extnID
    - critical
    argTypes:
    - Input
    - Critical
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 468
    functionName: mozilla::pkix::test::EmptyExtension
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 4
    functionsReached:
    - Input::UnsafeGetData
    - Input::GetLength
    - ByteString::append
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::Boolean
    linkageType: ''
    returnType: ByteString
    signature: ByteString EmptyExtension(Input extnID, Critical critical)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:477,1
    - Dst: _dupenv_s
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:484,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:485,1
    - Dst: free
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:489,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 493
    functionName: mozilla::pkix::test::GetEnv
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 4
    functionsReached:
    - getenv
    - free
    - abort
    - _dupenv_s
    linkageType: ''
    returnType: std::string
    signature: std::string GetEnv(const char* name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:498,1
    - Dst: mozilla::pkix::test::GetEnv
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:503,1
    - Dst: std::string::empty
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:504,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:510,1
    - Dst: std::ostringstream::str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:513,1
    - Dst: mozilla::pkix::test::OpenFile
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:516,1
    - Dst: fwrite
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:518,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:518,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:518,1
    - Dst: ScopedFILE::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:518,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - ' result'
    - suffix
    argTypes:
    - ByteString
    - char*
    assertStmts:
    - condition: (suffix)
      pos:
        line_end: 497
        line_start: 497
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (false)
      pos:
        line_end: 509
        line_start: 509
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    constantsTouched: []
    func_position:
      end: 521
      start: 495
    functionDepth: 2
    functionLinenumber: 495
    functionLinenumberEnd: 521
    functionName: mozilla::pkix::test::MaybeLogOutput
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 8
    functionsReached:
    - std::string::empty
    - length
    - ScopedFILE::get
    - assert
    - std::ostringstream::str
    - fwrite
    - mozilla::pkix::test::GetEnv
    - mozilla::pkix::test::OpenFile
    - data
    linkageType: ''
    returnType: void
    signature: void MaybeLogOutput(const ByteString& result, const char* suffix)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TBSCertificate
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:550,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:556,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:557,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:562,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:563,1
    - Dst: mozilla::pkix::test::MaybeLogOutput
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:566,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 11
    argNames:
    - version
    - ' signature'
    - ' serialNumber'
    - ' issuerNameDER'
    - notBefore
    - notAfter
    - ' subjectNameDER'
    - ' subjectKeyPair'
    - extensions
    - ' issuerKeyPair'
    - ' signatureAlgorithm'
    argTypes:
    - long
    - TestSignatureAlgorithm
    - ByteString
    - ByteString
    - time_t
    - time_t
    - ByteString
    - TestKeyPair
    - ByteString*
    - TestKeyPair
    - TestSignatureAlgorithm
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 538
    functionDepth: 3
    functionLinenumber: 538
    functionLinenumberEnd: 569
    functionName: mozilla::pkix::test::CreateEncodedCertificate
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - ByteString
    - mozilla::pkix::test::TBSCertificate
    - mozilla::pkix::test::MaybeLogOutput
    - mozilla::pkix::test::ENCODING_FAILED
    linkageType: ''
    returnType: ByteString
    signature: "ByteString CreateEncodedCertificate(long version,\n                         const
      TestSignatureAlgorithm& signature,\n                         const ByteString&
      serialNumber,\n                         const ByteString& issuerNameDER,\n                         time_t
      notBefore, time_t notAfter,\n                         const ByteString& subjectNameDER,\n
      \                        const TestKeyPair& subjectKeyPair,\n                         /*optional*/
      const ByteString* extensions,\n                         const TestKeyPair& issuerKeyPair,\n
      \                        const TestSignatureAlgorithm& signatureAlgorithm)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<long>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:595,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:597,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:599,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:602,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:603,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:604,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:612,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:613,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:616,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:617,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:620,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:621,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:622,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:623,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:624,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:627,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:629,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:631,1
    - Dst: empty
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:635,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:636,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:640,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:641,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:644,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:645,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:646,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:648,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:651,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 9
    argNames:
    - versionValue
    - ' serialNumber'
    - ' signature'
    - ' issuer'
    - notBeforeTime
    - notAfterTime
    - ' subject'
    - ' subjectPublicKeyInfo'
    - extensions
    argTypes:
    - long
    - ByteString
    - ByteString
    - ByteString
    - time_t
    - time_t
    - ByteString
    - ByteString
    - ByteString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 585
    functionDepth: 1
    functionLinenumber: 585
    functionLinenumberEnd: 652
    functionName: mozilla::pkix::test::TBSCertificate
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 5
    functionsReached:
    - ByteString::append
    - static_cast<long>
    - mozilla::pkix::test::ENCODING_FAILED
    - mozilla::pkix::test::TLV
    - empty
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: "ByteString TBSCertificate(long versionValue,\n               const
      ByteString& serialNumber, const ByteString& signature,\n               const
      ByteString& issuer, time_t notBeforeTime,\n               time_t notAfterTime,
      const ByteString& subject,\n               const ByteString& subjectPublicKeyInfo,\n
      \              /*optional*/ const ByteString* extensions)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:675,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:676,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - (type)
    - directoryStringType
    - ' value'
    argTypes:
    - uint8_t[]
    - uint8_t
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 678
    functionName: mozilla::pkix::test::AVA
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 12
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::append
    linkageType: ''
    returnType: ByteString
    signature: "ByteString AVA(const uint8_t (&type)[N], uint8_t directoryStringType,\n
      \   const ByteString& value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::AVA
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' value'
    - encodingTag
    argTypes:
    - ByteString
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 680
    functionDepth: 1
    functionLinenumber: 680
    functionLinenumberEnd: 690
    functionName: mozilla::pkix::test::CN
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::AVA
    linkageType: ''
    returnType: ByteString
    signature: ByteString CN(const ByteString& value, uint8_t encodingTag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::AVA
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' value'
    - encodingTag
    argTypes:
    - ByteString
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 692
    functionDepth: 1
    functionLinenumber: 692
    functionLinenumberEnd: 703
    functionName: mozilla::pkix::test::OU
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::AVA
    linkageType: ''
    returnType: ByteString
    signature: ByteString OU(const ByteString& value, uint8_t encodingTag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::AVA
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 705
    functionDepth: 1
    functionLinenumber: 705
    functionLinenumberEnd: 715
    functionName: mozilla::pkix::test::emailAddress
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::AVA
    linkageType: ''
    returnType: ByteString
    signature: ByteString emailAddress(const ByteString& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' avas'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 720
    functionDepth: 0
    functionLinenumber: 720
    functionLinenumberEnd: 724
    functionName: mozilla::pkix::test::RDN
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    linkageType: ''
    returnType: ByteString
    signature: ByteString RDN(const ByteString& avas)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:734,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rdns'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 731
    functionDepth: 0
    functionLinenumber: 731
    functionLinenumberEnd: 735
    functionName: mozilla::pkix::test::Name
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    linkageType: ''
    returnType: ByteString
    signature: ByteString Name(const ByteString& rdns)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::Integer
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:740,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - serialNumberValue
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 737
    functionDepth: 1
    functionLinenumber: 737
    functionLinenumberEnd: 741
    functionName: mozilla::pkix::test::CreateEncodedSerialNumber
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::Integer
    linkageType: ''
    returnType: ByteString
    signature: ByteString CreateEncodedSerialNumber(long serialNumberValue)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:755,1
    - Dst: mozilla::pkix::test::Integer
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:759,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:760,1
    - Dst: mozilla::pkix::test::Extension
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:767,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:767,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - isCA
    - pathLenConstraintValue
    - critical
    argTypes:
    - bool
    - long*
    - Critical
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 746
    functionDepth: 2
    functionLinenumber: 746
    functionLinenumberEnd: 768
    functionName: mozilla::pkix::test::CreateEncodedBasicConstraints
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::Integer
    - ByteString::append
    - Input
    - mozilla::pkix::test::Extension
    linkageType: ''
    returnType: ByteString
    signature: "ByteString CreateEncodedBasicConstraints(bool isCA,\n                              /*optional
      in*/ const long* pathLenConstraintValue,\n                              Critical
      critical)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:775,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:775,1
    - Dst: mozilla::pkix::test::Extension
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:782,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ekuOID
    - critical
    argTypes:
    - Input
    - Critical
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 772
    functionDepth: 2
    functionLinenumber: 772
    functionLinenumberEnd: 783
    functionName: mozilla::pkix::test::CreateEncodedEKUExtension
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - Input::GetLength
    - Input
    - Input::UnsafeGetData
    - mozilla::pkix::test::Extension
    linkageType: ''
    returnType: ByteString
    signature: ByteString CreateEncodedEKUExtension(Input ekuOID, Critical critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::Extension
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:793,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' names'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 790
    functionDepth: 2
    functionLinenumber: 790
    functionLinenumberEnd: 794
    functionName: mozilla::pkix::test::CreateEncodedSubjectAltName
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - Input
    - mozilla::pkix::test::Extension
    linkageType: ''
    returnType: ByteString
    signature: ByteString CreateEncodedSubjectAltName(const ByteString& names)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::EmptyExtension
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:799,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:799,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 796
    functionDepth: 2
    functionLinenumber: 796
    functionLinenumberEnd: 800
    functionName: mozilla::pkix::test::CreateEncodedEmptySubjectAltName
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - Input
    - mozilla::pkix::test::EmptyExtension
    linkageType: ''
    returnType: ByteString
    signature: ByteString CreateEncodedEmptySubjectAltName()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:810,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:828,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:834,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:835,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:838,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:843,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:844,1
    - Dst: mozilla::pkix::test::MaybeLogOutput
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:847,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 805
    functionDepth: 3
    functionLinenumber: 805
    functionLinenumberEnd: 850
    functionName: mozilla::pkix::test::CreateEncodedOCSPResponse
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::append
    - mozilla::pkix::test::ENCODING_FAILED
    - mozilla::pkix::test::MaybeLogOutput
    - ByteString
    - ByteString::push_back
    linkageType: ''
    returnType: ByteString
    signature: ByteString CreateEncodedOCSPResponse(OCSPResponseContext& context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:863,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:864,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:866,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:869,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:871,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:872,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 855
    functionDepth: 1
    functionLinenumber: 855
    functionLinenumberEnd: 873
    functionName: mozilla::pkix::test::ResponseBytes
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - ByteString
    - mozilla::pkix::test::TLV
    - ByteString::append
    - mozilla::pkix::test::ENCODING_FAILED
    linkageType: ''
    returnType: ByteString
    signature: ByteString ResponseBytes(OCSPResponseContext& context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:884,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:885,1
    - Dst: mozilla::pkix::test::SignedData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:888,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 880
    functionDepth: 2
    functionLinenumber: 880
    functionLinenumberEnd: 891
    functionName: mozilla::pkix::test::BasicOCSPResponse
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - ByteString
    - mozilla::pkix::test::SignedData
    - mozilla::pkix::test::ENCODING_FAILED
    linkageType: ''
    returnType: ByteString
    signature: ByteString BasicOCSPResponse(OCSPResponseContext& context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:902,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:904,1
    - Dst: mozilla::pkix::test::Boolean
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:904,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:906,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:907,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:908,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' extension'
    argTypes:
    - OCSPResponseExtension
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 898
    functionDepth: 1
    functionLinenumber: 898
    functionLinenumberEnd: 909
    functionName: mozilla::pkix::test::OCSPExtension
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 4
    functionsReached:
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::Boolean
    - ByteString::append
    linkageType: ''
    returnType: ByteString
    signature: ByteString OCSPExtension(OCSPResponseExtension& extension)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::OCSPExtension
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:920,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:921,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:922,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:924,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:927,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - extensions
    argTypes:
    - OCSPResponseExtension*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 914
    functionDepth: 2
    functionLinenumber: 914
    functionLinenumberEnd: 928
    functionName: mozilla::pkix::test::OCSPExtensions
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 8
    functionsReached:
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::OCSPExtension
    - ByteString::append
    - mozilla::pkix::test::ENCODING_FAILED
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString OCSPExtensions(OCSPResponseExtension* extensions)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:940,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:941,1
    - Dst: mozilla::pkix::test::TimeToGeneralizedTime
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:943,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:944,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:945,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:948,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:949,1
    - Dst: mozilla::pkix::test::OCSPExtensions
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:954,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:958,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:959,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:960,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:961,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:963,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:965,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 936
    functionDepth: 3
    functionLinenumber: 936
    functionLinenumberEnd: 966
    functionName: mozilla::pkix::test::ResponseData
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::append
    - mozilla::pkix::test::ENCODING_FAILED
    - mozilla::pkix::test::TimeToGeneralizedTime
    - mozilla::pkix::test::OCSPExtensions
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString ResponseData(OCSPResponseContext& context)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: signerNameDER::empty
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:977,1
    - Dst: mozilla::pkix::test::KeyHash
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:981,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:982,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:983,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:990,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:992,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 993
      start: 972
    functionDepth: 3
    functionLinenumber: 972
    functionLinenumberEnd: 993
    functionName: mozilla::pkix::test::ResponderID
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - signerNameDER::empty
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::ENCODING_FAILED
    - ByteString
    - mozilla::pkix::test::KeyHash
    - static_cast<uint8_t>
    linkageType: ''
    returnType: ByteString
    signature: ByteString ResponderID(OCSPResponseContext& context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::HashedOctetString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1003,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' subjectPublicKey'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 1000
    functionDepth: 2
    functionLinenumber: 1000
    functionLinenumberEnd: 1004
    functionName: mozilla::pkix::test::KeyHash
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 5
    functionsReached:
    - mozilla::pkix::test::HashedOctetString
    linkageType: ''
    returnType: ByteString
    signature: ByteString KeyHash(const ByteString& subjectPublicKey)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1016,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1017,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1020,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1021,1
    - Dst: mozilla::pkix::test::TimeToGeneralizedTime
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1023,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1024,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1025,1
    - Dst: mozilla::pkix::test::TimeToGeneralizedTime
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1029,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1030,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1031,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1033,1
    - Dst: mozilla::pkix::test::OCSPExtensions
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1038,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1042,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1043,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1044,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1045,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1046,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1047,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 1012
    functionDepth: 3
    functionLinenumber: 1012
    functionLinenumberEnd: 1048
    functionName: mozilla::pkix::test::SingleResponse
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::append
    - mozilla::pkix::test::ENCODING_FAILED
    - mozilla::pkix::test::TimeToGeneralizedTime
    - mozilla::pkix::test::OCSPExtensions
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString SingleResponse(OCSPResponseContext& context)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: certID::issuer::UnsafeGetData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1058,1
    - Dst: certID::issuer::GetLength
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1059,1
    - Dst: mozilla::pkix::test::HashedOctetString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1060,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1061,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1062,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1072,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1073,1
    - Dst: mozilla::pkix::der::ExpectTagAndSkipValue
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1076,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1077,1
    - Dst: mozilla::pkix::der::BitStringWithNoUnusedBits
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1080,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1082,1
    - Dst: mozilla::pkix::test::HashedOctetString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1084,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1084,1
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1084,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1085,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1086,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1087,1
    - Dst: certID::serialNumber::UnsafeGetData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1091,1
    - Dst: certID::serialNumber::GetLength
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1092,1
    - Dst: certIDHashAlgorithmEncoded::empty
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1113,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1114,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1118,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1121,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1124,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1127,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1132,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1133,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1134,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1135,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1136
      start: 1055
    functionDepth: 2
    functionLinenumber: 1055
    functionLinenumberEnd: 1136
    functionName: mozilla::pkix::test::CertID
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - certID::issuer::UnsafeGetData
    - mozilla::pkix::test::TLV
    - mozilla::pkix::der::ExpectTagAndGetValue
    - mozilla::pkix::der::BitStringWithNoUnusedBits
    - Input::UnsafeGetData
    - Input::GetLength
    - ByteString::append
    - mozilla::pkix::test::ENCODING_FAILED
    - certID::issuer::GetLength
    - certID::serialNumber::UnsafeGetData
    - mozilla::pkix::der::ExpectTagAndSkipValue
    - certID::serialNumber::GetLength
    - certIDHashAlgorithmEncoded::empty
    - ByteString
    - mozilla::pkix::test::HashedOctetString
    linkageType: ''
    returnType: ByteString
    signature: ByteString CertID(OCSPResponseContext& context)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1160,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1160,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1161,1
    - Dst: mozilla::pkix::test::TimeToGeneralizedTime
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1165,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1166,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1167,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1170,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1173,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts:
    - condition: (false)
      pos:
        line_end: 1172
        line_start: 1172
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    constantsTouched: []
    func_position:
      end: 1177
      start: 1149
    functionDepth: 3
    functionLinenumber: 1149
    functionLinenumberEnd: 1177
    functionName: mozilla::pkix::test::CertStatus
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::ENCODING_FAILED
    - assert
    - mozilla::pkix::test::TimeToGeneralizedTime
    - ByteString
    - static_cast<uint8_t>
    linkageType: ''
    returnType: ByteString
    signature: ByteString CertStatus(OCSPResponseContext& context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1185,1
    - Dst: TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' aPublicKeyAlg'
    - ' spk'
    argTypes:
    - TestPublicKeyAlgorithm
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1182
    functionDepth: 0
    functionLinenumber: 1182
    functionLinenumberEnd: 1190
    functionName: mozilla::pkix::test::TestKeyPair::TestKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - TLV
    linkageType: ''
    returnType: void
    signature: "void TestKeyPair::TestKeyPair(const TestPublicKeyAlgorithm& aPublicKeyAlg,\n
      \                        const ByteString& spk)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - f
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: operator()(FILE* f)
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - fclose
    linkageType: ''
    returnType: void
    signature: void operator()(FILE* f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fopen_s
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:61,1
    - Dst: string::c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:61,1
    - Dst: c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:61,1
    - Dst: ScopedFILE::reset
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:66,1
    - Dst: ScopedFILE::reset
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: fopen
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: string::c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: ScopedFILE::release
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ' dir'
    - ' filename'
    - ' mode'
    argTypes:
    - string
    - string
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 72
    functionName: mozilla::pkix::test::OpenFile
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 5
    functionsReached:
    - ScopedFILE::reset
    - ScopedFILE::release
    - fopen
    - fopen_s
    - c_str
    - string::c_str
    linkageType: ''
    returnType: FILE
    signature: 'FILE *

      OpenFile(const string& dir, const string& filename, const string& mode)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - f
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: operator()(FILE* f)
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - fclose
    linkageType: ''
    returnType: void
    signature: void operator()(FILE* f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fopen_s
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:61,1
    - Dst: string::c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:61,1
    - Dst: c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:61,1
    - Dst: ScopedFILE::reset
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:66,1
    - Dst: ScopedFILE::reset
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: fopen
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: string::c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: ScopedFILE::release
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ' dir'
    - ' filename'
    - ' mode'
    argTypes:
    - string
    - string
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 72
    functionName: mozilla::pkix::test::OpenFile
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 5
    functionsReached:
    - ScopedFILE::reset
    - ScopedFILE::release
    - fopen
    - fopen_s
    - c_str
    - string::c_str
    linkageType: ''
    returnType: FILE
    signature: 'FILE *

      OpenFile(const string& dir, const string& filename, const string& mode)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Input::Init
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:80,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:80,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:80,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:84,1
    - Dst: InputsAreEqual
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - input
    - ' bs'
    argTypes:
    - Input
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 87
    functionName: mozilla::pkix::test::InputEqualsByteString
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - length
    - abort
    - InputsAreEqual
    - Input::Init
    - data
    linkageType: ''
    returnType: bool
    signature: bool InputEqualsByteString(Input input, const ByteString& bs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:96,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - input
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 101
    functionName: mozilla::pkix::test::InputToByteString
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - Reader::Read
    - ByteString::push_back
    linkageType: ''
    returnType: ByteString
    signature: ByteString InputToByteString(Input input)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:107,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:110,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:110,1
    - Dst: find
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:113,1
    - Dst: find
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:117,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:117,1
    - Dst: replace
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:120,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:120,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - ' item'
    - ' from'
    - ' to'
    argTypes:
    - ByteString
    - ByteString
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 122
    functionName: mozilla::pkix::test::TamperOnce
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - find
    - replace
    - length
    linkageType: ''
    returnType: Result
    signature: "Result TamperOnce(/*in/out*/ ByteString& item, const ByteString& from,\n
      \          const ByteString& to)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:129,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:131,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:132,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:132,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:133,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:134,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:135,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:135,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:136,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:137,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:138,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:138,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:139,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:139,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:143,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - tag
    - length
    - ' value'
    argTypes:
    - uint8_t
    - size_t
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 147
    functionName: mozilla::pkix::test::TLV
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 105
    functionsReached:
    - length
    - ByteString::append
    - abort
    - ByteString::push_back
    - static_cast<uint8_t>
    linkageType: ''
    returnType: ByteString
    signature: ByteString TLV(uint8_t tag, size_t length, const ByteString& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 155
    functionName: mozilla::pkix::test::OCSPResponseExtension::OCSPResponseExtension
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OCSPResponseExtension::OCSPResponseExtension()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:160,1
    - Dst: sha256WithRSAEncryption
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:168,1
    - Dst: static_cast<time_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' aCertID'
    - time
    argTypes:
    - CertID
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 178
    functionName: mozilla::pkix::test::OCSPResponseContext::OCSPResponseContext
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - ByteString
    - static_cast<time_t>
    - sha256WithRSAEncryption
    linkageType: ''
    returnType: void
    signature: void OCSPResponseContext::OCSPResponseContext(const CertID& aCertID,
      time_t time)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Input::Init
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:194,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:194,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:194,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:195,1
    - Dst: DigestAlgorithmToSizeInBytes
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:197,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:198,1
    - Dst: mozilla::pkix::test::TestDigestBuf
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:199,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:201,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:203,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' toHash'
    - digestAlgorithm
    argTypes:
    - ByteString
    - DigestAlgorithm
    assertStmts:
    - condition: (digestLen <= sizeof(digestBuf))
      pos:
        line_end: 197
        line_start: 197
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    constantsTouched: []
    func_position:
      end: 204
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 204
    functionName: mozilla::pkix::test::HASH
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - length
    - DigestAlgorithmToSizeInBytes
    - mozilla::pkix::test::TestDigestBuf
    - abort
    - assert
    - ByteString
    - Input::Init
    - data
    linkageType: ''
    returnType: ByteString
    signature: ByteString HASH(const ByteString& toHash, DigestAlgorithm digestAlgorithm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:210,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:211,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' bytes'
    - digestAlgorithm
    argTypes:
    - ByteString
    - DigestAlgorithm
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 214
    functionName: mozilla::pkix::test::HashedOctetString
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 10
    functionsReached:
    - ByteString
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::ENCODING_FAILED
    linkageType: ''
    returnType: ByteString
    signature: ByteString HashedOctetString(const ByteString& bytes, DigestAlgorithm
      digestAlgorithm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:223,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:224,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:226,1
    - Dst: ByteString::length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:226,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' rawBytes'
    - corrupt
    argTypes:
    - ByteString
    - bool
    assertStmts:
    - condition: (prefixed.length() > 8)
      pos:
        line_end: 225
        line_start: 225
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    constantsTouched: []
    func_position:
      end: 230
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 230
    functionName: mozilla::pkix::test::BitString
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - ByteString::append
    - assert
    - ByteString::length
    - mozilla::pkix::test::TLV
    - ByteString::push_back
    linkageType: ''
    returnType: ByteString
    signature: ByteString BitString(const ByteString& rawBytes, bool corrupt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:236,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 238
    functionName: mozilla::pkix::test::Boolean
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 15
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::push_back
    linkageType: ''
    returnType: ByteString
    signature: ByteString Boolean(bool value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:247,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:251,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:251,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:252,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 253
    functionName: mozilla::pkix::test::Integer
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 10
    functionsReached:
    - static_cast<uint8_t>
    - mozilla::pkix::test::TLV
    - abort
    - ByteString::push_back
    linkageType: ''
    returnType: ByteString
    signature: ByteString Integer(long value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gmtime_s
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - t
    - exploded
    argTypes:
    - time_t*
    - tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 266
    functionName: mozilla::pkix::test::gmtime_r
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 10
    functionsReached:
    - gmtime_s
    linkageType: ''
    returnType: tm
    signature: 'tm *

      gmtime_r(const time_t* t, /*out*/ tm* exploded)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:278,1
    - Dst: mozilla::pkix::test::gmtime_r
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:281,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:282,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:294,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:300,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:300,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:301,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:301,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:304,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:304,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:305,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:305,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:306,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:306,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:307,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:307,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:308,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:308,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:309,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:309,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:310,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:310,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:311,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:311,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:312,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:312,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:313,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:313,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:314,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:314,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:315,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:315,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:316,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:318,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - time
    - encoding
    argTypes:
    - time_t
    - TimeEncoding
    assertStmts:
    - condition: (encoding == UTCTime || encoding == GeneralizedTime)
      pos:
        line_end: 277
        line_start: 277
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    constantsTouched: []
    func_position:
      end: 320
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 320
    functionName: mozilla::pkix::test::TimeToEncodedTime
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 10
    functionsReached:
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::gmtime_r
    - assert
    - ByteString::push_back
    - ByteString
    - static_cast<uint8_t>
    linkageType: ''
    returnType: ByteString
    signature: ByteString TimeToEncodedTime(time_t time, TimeEncoding encoding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TimeToEncodedTime
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - time
    argTypes:
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 322
    functionDepth: 2
    functionLinenumber: 322
    functionLinenumberEnd: 326
    functionName: mozilla::pkix::test::TimeToGeneralizedTime
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 15
    functionsReached:
    - mozilla::pkix::test::TimeToEncodedTime
    linkageType: ''
    returnType: ByteString
    signature: ByteString TimeToGeneralizedTime(time_t time)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::gmtime_r
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:337,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:338,1
    - Dst: mozilla::pkix::test::TimeToEncodedTime
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:345,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - time
    argTypes:
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 333
    functionDepth: 2
    functionLinenumber: 333
    functionLinenumberEnd: 346
    functionName: mozilla::pkix::test::TimeToTimeChoice
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::gmtime_r
    - mozilla::pkix::test::TimeToEncodedTime
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString TimeToTimeChoice(time_t time)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:352,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:353,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:354,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:355,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:356,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:357,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:358,1
    - Dst: DaysBeforeYear
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:360,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:376,1
    - Dst: TimeFromElapsedSecondsAD
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:390,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 6
    argNames:
    - year
    - month
    - day
    - hour
    - minutes
    - seconds
    argTypes:
    - uint16_t
    - uint16_t
    - uint16_t
    - uint16_t
    - uint16_t
    - uint16_t
    assertStmts:
    - condition: (year <= 9999)
      pos:
        line_end: 351
        line_start: 351
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (month <= 12)
      pos:
        line_end: 353
        line_start: 353
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (month >= 1)
      pos:
        line_end: 352
        line_start: 352
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (hour < 24)
      pos:
        line_end: 355
        line_start: 355
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (day >= 1)
      pos:
        line_end: 354
        line_start: 354
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (minutes < 60)
      pos:
        line_end: 356
        line_start: 356
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (seconds < 60)
      pos:
        line_end: 357
        line_start: 357
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (day <= daysInMonth)
      pos:
        line_end: 375
        line_start: 375
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    constantsTouched: []
    func_position:
      end: 391
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 391
    functionName: mozilla::pkix::test::YMDHMS
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - assert
    - DaysBeforeYear
    - TimeFromElapsedSecondsAD
    linkageType: ''
    returnType: Time
    signature: "Time YMDHMS(uint16_t year, uint16_t month, uint16_t day,\n       uint16_t
      hour, uint16_t minutes, uint16_t seconds)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SignData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:400,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:401,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:407,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:408,1
    - Dst: empty
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:414,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:415,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:419,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:424,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:425,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:426,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:427,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:428,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 5
    argNames:
    - ' tbsData'
    - ' keyPair'
    - ' signatureAlgorithm'
    - corrupt
    - certs
    argTypes:
    - ByteString
    - TestKeyPair
    - TestSignatureAlgorithm
    - bool
    - ByteString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 429
    functionName: mozilla::pkix::test::SignedData
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 5
    functionsReached:
    - mozilla::pkix::test::TLV
    - SignData
    - ByteString::append
    - mozilla::pkix::test::ENCODING_FAILED
    - ByteString
    - empty
    linkageType: ''
    returnType: ByteString
    signature: "ByteString SignedData(const ByteString& tbsData,\n           const
      TestKeyPair& keyPair,\n           const TestSignatureAlgorithm& signatureAlgorithm,\n
      \          bool corrupt, /*optional*/ const ByteString* certs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:444,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:444,1
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:444,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:444,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:447,1
    - Dst: mozilla::pkix::test::Boolean
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:447,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:452,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:453,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - extnID
    - critical
    - ' extnValueBytes'
    argTypes:
    - Input
    - Critical
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 454
    functionName: mozilla::pkix::test::Extension
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 15
    functionsReached:
    - mozilla::pkix::test::TLV
    - Input::UnsafeGetData
    - Input::GetLength
    - ByteString::append
    - ByteString
    - mozilla::pkix::test::Boolean
    linkageType: ''
    returnType: ByteString
    signature: ByteString Extension(Input extnID, Critical critical, const ByteString&
      extnValueBytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:459,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:459,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:462,1
    - Dst: mozilla::pkix::test::Boolean
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:462,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:466,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:467,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - extnID
    - critical
    argTypes:
    - Input
    - Critical
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 468
    functionName: mozilla::pkix::test::EmptyExtension
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 5
    functionsReached:
    - Input::UnsafeGetData
    - Input::GetLength
    - ByteString::append
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::Boolean
    linkageType: ''
    returnType: ByteString
    signature: ByteString EmptyExtension(Input extnID, Critical critical)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:477,1
    - Dst: _dupenv_s
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:484,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:485,1
    - Dst: free
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:489,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 493
    functionName: mozilla::pkix::test::GetEnv
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 5
    functionsReached:
    - getenv
    - free
    - abort
    - _dupenv_s
    linkageType: ''
    returnType: std::string
    signature: std::string GetEnv(const char* name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:498,1
    - Dst: mozilla::pkix::test::GetEnv
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:503,1
    - Dst: std::string::empty
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:504,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:510,1
    - Dst: std::ostringstream::str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:513,1
    - Dst: mozilla::pkix::test::OpenFile
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:516,1
    - Dst: fwrite
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:518,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:518,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:518,1
    - Dst: ScopedFILE::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:518,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - ' result'
    - suffix
    argTypes:
    - ByteString
    - char*
    assertStmts:
    - condition: (suffix)
      pos:
        line_end: 497
        line_start: 497
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (false)
      pos:
        line_end: 509
        line_start: 509
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    constantsTouched: []
    func_position:
      end: 521
      start: 495
    functionDepth: 2
    functionLinenumber: 495
    functionLinenumberEnd: 521
    functionName: mozilla::pkix::test::MaybeLogOutput
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 10
    functionsReached:
    - std::string::empty
    - length
    - ScopedFILE::get
    - assert
    - std::ostringstream::str
    - fwrite
    - mozilla::pkix::test::GetEnv
    - mozilla::pkix::test::OpenFile
    - data
    linkageType: ''
    returnType: void
    signature: void MaybeLogOutput(const ByteString& result, const char* suffix)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TBSCertificate
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:550,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:556,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:557,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:562,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:563,1
    - Dst: mozilla::pkix::test::MaybeLogOutput
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:566,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 11
    argNames:
    - version
    - ' signature'
    - ' serialNumber'
    - ' issuerNameDER'
    - notBefore
    - notAfter
    - ' subjectNameDER'
    - ' subjectKeyPair'
    - extensions
    - ' issuerKeyPair'
    - ' signatureAlgorithm'
    argTypes:
    - long
    - TestSignatureAlgorithm
    - ByteString
    - ByteString
    - time_t
    - time_t
    - ByteString
    - TestKeyPair
    - ByteString*
    - TestKeyPair
    - TestSignatureAlgorithm
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 538
    functionDepth: 3
    functionLinenumber: 538
    functionLinenumberEnd: 569
    functionName: mozilla::pkix::test::CreateEncodedCertificate
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - ByteString
    - mozilla::pkix::test::TBSCertificate
    - mozilla::pkix::test::MaybeLogOutput
    - mozilla::pkix::test::ENCODING_FAILED
    linkageType: ''
    returnType: ByteString
    signature: "ByteString CreateEncodedCertificate(long version,\n                         const
      TestSignatureAlgorithm& signature,\n                         const ByteString&
      serialNumber,\n                         const ByteString& issuerNameDER,\n                         time_t
      notBefore, time_t notAfter,\n                         const ByteString& subjectNameDER,\n
      \                        const TestKeyPair& subjectKeyPair,\n                         /*optional*/
      const ByteString* extensions,\n                         const TestKeyPair& issuerKeyPair,\n
      \                        const TestSignatureAlgorithm& signatureAlgorithm)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<long>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:595,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:597,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:599,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:602,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:603,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:604,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:612,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:613,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:616,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:617,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:620,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:621,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:622,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:623,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:624,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:627,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:629,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:631,1
    - Dst: empty
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:635,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:636,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:640,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:641,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:644,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:645,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:646,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:648,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:651,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 9
    argNames:
    - versionValue
    - ' serialNumber'
    - ' signature'
    - ' issuer'
    - notBeforeTime
    - notAfterTime
    - ' subject'
    - ' subjectPublicKeyInfo'
    - extensions
    argTypes:
    - long
    - ByteString
    - ByteString
    - ByteString
    - time_t
    - time_t
    - ByteString
    - ByteString
    - ByteString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 585
    functionDepth: 1
    functionLinenumber: 585
    functionLinenumberEnd: 652
    functionName: mozilla::pkix::test::TBSCertificate
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 6
    functionsReached:
    - ByteString::append
    - static_cast<long>
    - mozilla::pkix::test::ENCODING_FAILED
    - mozilla::pkix::test::TLV
    - empty
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: "ByteString TBSCertificate(long versionValue,\n               const
      ByteString& serialNumber, const ByteString& signature,\n               const
      ByteString& issuer, time_t notBeforeTime,\n               time_t notAfterTime,
      const ByteString& subject,\n               const ByteString& subjectPublicKeyInfo,\n
      \              /*optional*/ const ByteString* extensions)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:675,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:676,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - (type)
    - directoryStringType
    - ' value'
    argTypes:
    - uint8_t[]
    - uint8_t
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 678
    functionName: mozilla::pkix::test::AVA
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 15
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::append
    linkageType: ''
    returnType: ByteString
    signature: "ByteString AVA(const uint8_t (&type)[N], uint8_t directoryStringType,\n
      \   const ByteString& value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::AVA
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' value'
    - encodingTag
    argTypes:
    - ByteString
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 680
    functionDepth: 1
    functionLinenumber: 680
    functionLinenumberEnd: 690
    functionName: mozilla::pkix::test::CN
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::AVA
    linkageType: ''
    returnType: ByteString
    signature: ByteString CN(const ByteString& value, uint8_t encodingTag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::AVA
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' value'
    - encodingTag
    argTypes:
    - ByteString
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 692
    functionDepth: 1
    functionLinenumber: 692
    functionLinenumberEnd: 703
    functionName: mozilla::pkix::test::OU
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::AVA
    linkageType: ''
    returnType: ByteString
    signature: ByteString OU(const ByteString& value, uint8_t encodingTag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::AVA
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 705
    functionDepth: 1
    functionLinenumber: 705
    functionLinenumberEnd: 715
    functionName: mozilla::pkix::test::emailAddress
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::AVA
    linkageType: ''
    returnType: ByteString
    signature: ByteString emailAddress(const ByteString& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' avas'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 720
    functionDepth: 0
    functionLinenumber: 720
    functionLinenumberEnd: 724
    functionName: mozilla::pkix::test::RDN
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    linkageType: ''
    returnType: ByteString
    signature: ByteString RDN(const ByteString& avas)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:734,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rdns'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 731
    functionDepth: 0
    functionLinenumber: 731
    functionLinenumberEnd: 735
    functionName: mozilla::pkix::test::Name
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    linkageType: ''
    returnType: ByteString
    signature: ByteString Name(const ByteString& rdns)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::Integer
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:740,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - serialNumberValue
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 737
    functionDepth: 1
    functionLinenumber: 737
    functionLinenumberEnd: 741
    functionName: mozilla::pkix::test::CreateEncodedSerialNumber
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::Integer
    linkageType: ''
    returnType: ByteString
    signature: ByteString CreateEncodedSerialNumber(long serialNumberValue)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:755,1
    - Dst: mozilla::pkix::test::Integer
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:759,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:760,1
    - Dst: mozilla::pkix::test::Extension
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:767,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:767,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - isCA
    - pathLenConstraintValue
    - critical
    argTypes:
    - bool
    - long*
    - Critical
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 746
    functionDepth: 2
    functionLinenumber: 746
    functionLinenumberEnd: 768
    functionName: mozilla::pkix::test::CreateEncodedBasicConstraints
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::Integer
    - ByteString::append
    - Input
    - mozilla::pkix::test::Extension
    linkageType: ''
    returnType: ByteString
    signature: "ByteString CreateEncodedBasicConstraints(bool isCA,\n                              /*optional
      in*/ const long* pathLenConstraintValue,\n                              Critical
      critical)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:775,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:775,1
    - Dst: mozilla::pkix::test::Extension
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:782,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ekuOID
    - critical
    argTypes:
    - Input
    - Critical
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 772
    functionDepth: 2
    functionLinenumber: 772
    functionLinenumberEnd: 783
    functionName: mozilla::pkix::test::CreateEncodedEKUExtension
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - Input::GetLength
    - Input
    - Input::UnsafeGetData
    - mozilla::pkix::test::Extension
    linkageType: ''
    returnType: ByteString
    signature: ByteString CreateEncodedEKUExtension(Input ekuOID, Critical critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::Extension
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:793,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' names'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 790
    functionDepth: 2
    functionLinenumber: 790
    functionLinenumberEnd: 794
    functionName: mozilla::pkix::test::CreateEncodedSubjectAltName
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - Input
    - mozilla::pkix::test::Extension
    linkageType: ''
    returnType: ByteString
    signature: ByteString CreateEncodedSubjectAltName(const ByteString& names)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::EmptyExtension
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:799,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:799,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 796
    functionDepth: 2
    functionLinenumber: 796
    functionLinenumberEnd: 800
    functionName: mozilla::pkix::test::CreateEncodedEmptySubjectAltName
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - Input
    - mozilla::pkix::test::EmptyExtension
    linkageType: ''
    returnType: ByteString
    signature: ByteString CreateEncodedEmptySubjectAltName()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:810,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:828,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:834,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:835,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:838,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:843,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:844,1
    - Dst: mozilla::pkix::test::MaybeLogOutput
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:847,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 805
    functionDepth: 3
    functionLinenumber: 805
    functionLinenumberEnd: 850
    functionName: mozilla::pkix::test::CreateEncodedOCSPResponse
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::append
    - mozilla::pkix::test::ENCODING_FAILED
    - mozilla::pkix::test::MaybeLogOutput
    - ByteString
    - ByteString::push_back
    linkageType: ''
    returnType: ByteString
    signature: ByteString CreateEncodedOCSPResponse(OCSPResponseContext& context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:863,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:864,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:866,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:869,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:871,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:872,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 855
    functionDepth: 1
    functionLinenumber: 855
    functionLinenumberEnd: 873
    functionName: mozilla::pkix::test::ResponseBytes
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - ByteString
    - mozilla::pkix::test::TLV
    - ByteString::append
    - mozilla::pkix::test::ENCODING_FAILED
    linkageType: ''
    returnType: ByteString
    signature: ByteString ResponseBytes(OCSPResponseContext& context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:884,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:885,1
    - Dst: mozilla::pkix::test::SignedData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:888,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 880
    functionDepth: 2
    functionLinenumber: 880
    functionLinenumberEnd: 891
    functionName: mozilla::pkix::test::BasicOCSPResponse
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - ByteString
    - mozilla::pkix::test::SignedData
    - mozilla::pkix::test::ENCODING_FAILED
    linkageType: ''
    returnType: ByteString
    signature: ByteString BasicOCSPResponse(OCSPResponseContext& context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:902,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:904,1
    - Dst: mozilla::pkix::test::Boolean
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:904,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:906,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:907,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:908,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' extension'
    argTypes:
    - OCSPResponseExtension
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 898
    functionDepth: 1
    functionLinenumber: 898
    functionLinenumberEnd: 909
    functionName: mozilla::pkix::test::OCSPExtension
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 5
    functionsReached:
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::Boolean
    - ByteString::append
    linkageType: ''
    returnType: ByteString
    signature: ByteString OCSPExtension(OCSPResponseExtension& extension)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::OCSPExtension
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:920,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:921,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:922,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:924,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:927,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - extensions
    argTypes:
    - OCSPResponseExtension*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 914
    functionDepth: 2
    functionLinenumber: 914
    functionLinenumberEnd: 928
    functionName: mozilla::pkix::test::OCSPExtensions
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 10
    functionsReached:
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::OCSPExtension
    - ByteString::append
    - mozilla::pkix::test::ENCODING_FAILED
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString OCSPExtensions(OCSPResponseExtension* extensions)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:940,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:941,1
    - Dst: mozilla::pkix::test::TimeToGeneralizedTime
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:943,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:944,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:945,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:948,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:949,1
    - Dst: mozilla::pkix::test::OCSPExtensions
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:954,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:958,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:959,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:960,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:961,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:963,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:965,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 936
    functionDepth: 3
    functionLinenumber: 936
    functionLinenumberEnd: 966
    functionName: mozilla::pkix::test::ResponseData
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::append
    - mozilla::pkix::test::ENCODING_FAILED
    - mozilla::pkix::test::TimeToGeneralizedTime
    - mozilla::pkix::test::OCSPExtensions
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString ResponseData(OCSPResponseContext& context)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: signerNameDER::empty
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:977,1
    - Dst: mozilla::pkix::test::KeyHash
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:981,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:982,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:983,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:990,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:992,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 993
      start: 972
    functionDepth: 3
    functionLinenumber: 972
    functionLinenumberEnd: 993
    functionName: mozilla::pkix::test::ResponderID
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - signerNameDER::empty
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::ENCODING_FAILED
    - ByteString
    - mozilla::pkix::test::KeyHash
    - static_cast<uint8_t>
    linkageType: ''
    returnType: ByteString
    signature: ByteString ResponderID(OCSPResponseContext& context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::HashedOctetString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1003,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' subjectPublicKey'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 1000
    functionDepth: 2
    functionLinenumber: 1000
    functionLinenumberEnd: 1004
    functionName: mozilla::pkix::test::KeyHash
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 6
    functionsReached:
    - mozilla::pkix::test::HashedOctetString
    linkageType: ''
    returnType: ByteString
    signature: ByteString KeyHash(const ByteString& subjectPublicKey)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1016,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1017,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1020,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1021,1
    - Dst: mozilla::pkix::test::TimeToGeneralizedTime
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1023,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1024,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1025,1
    - Dst: mozilla::pkix::test::TimeToGeneralizedTime
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1029,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1030,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1031,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1033,1
    - Dst: mozilla::pkix::test::OCSPExtensions
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1038,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1042,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1043,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1044,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1045,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1046,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1047,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 1012
    functionDepth: 3
    functionLinenumber: 1012
    functionLinenumberEnd: 1048
    functionName: mozilla::pkix::test::SingleResponse
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::append
    - mozilla::pkix::test::ENCODING_FAILED
    - mozilla::pkix::test::TimeToGeneralizedTime
    - mozilla::pkix::test::OCSPExtensions
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString SingleResponse(OCSPResponseContext& context)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: certID::issuer::UnsafeGetData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1058,1
    - Dst: certID::issuer::GetLength
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1059,1
    - Dst: mozilla::pkix::test::HashedOctetString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1060,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1061,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1062,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1072,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1073,1
    - Dst: mozilla::pkix::der::ExpectTagAndSkipValue
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1076,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1077,1
    - Dst: mozilla::pkix::der::BitStringWithNoUnusedBits
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1080,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1082,1
    - Dst: mozilla::pkix::test::HashedOctetString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1084,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1084,1
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1084,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1085,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1086,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1087,1
    - Dst: certID::serialNumber::UnsafeGetData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1091,1
    - Dst: certID::serialNumber::GetLength
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1092,1
    - Dst: certIDHashAlgorithmEncoded::empty
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1113,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1114,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1118,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1121,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1124,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1127,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1132,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1133,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1134,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1135,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1136
      start: 1055
    functionDepth: 2
    functionLinenumber: 1055
    functionLinenumberEnd: 1136
    functionName: mozilla::pkix::test::CertID
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - certID::issuer::UnsafeGetData
    - mozilla::pkix::test::TLV
    - mozilla::pkix::der::ExpectTagAndGetValue
    - mozilla::pkix::der::BitStringWithNoUnusedBits
    - Input::UnsafeGetData
    - Input::GetLength
    - ByteString::append
    - mozilla::pkix::test::ENCODING_FAILED
    - certID::issuer::GetLength
    - certID::serialNumber::UnsafeGetData
    - mozilla::pkix::der::ExpectTagAndSkipValue
    - certID::serialNumber::GetLength
    - certIDHashAlgorithmEncoded::empty
    - ByteString
    - mozilla::pkix::test::HashedOctetString
    linkageType: ''
    returnType: ByteString
    signature: ByteString CertID(OCSPResponseContext& context)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1160,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1160,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1161,1
    - Dst: mozilla::pkix::test::TimeToGeneralizedTime
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1165,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1166,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1167,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1170,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1173,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts:
    - condition: (false)
      pos:
        line_end: 1172
        line_start: 1172
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    constantsTouched: []
    func_position:
      end: 1177
      start: 1149
    functionDepth: 3
    functionLinenumber: 1149
    functionLinenumberEnd: 1177
    functionName: mozilla::pkix::test::CertStatus
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::ENCODING_FAILED
    - assert
    - mozilla::pkix::test::TimeToGeneralizedTime
    - ByteString
    - static_cast<uint8_t>
    linkageType: ''
    returnType: ByteString
    signature: ByteString CertStatus(OCSPResponseContext& context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1185,1
    - Dst: TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' aPublicKeyAlg'
    - ' spk'
    argTypes:
    - TestPublicKeyAlgorithm
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1182
    functionDepth: 0
    functionLinenumber: 1182
    functionLinenumberEnd: 1190
    functionName: mozilla::pkix::test::TestKeyPair::TestKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - TLV
    linkageType: ''
    returnType: void
    signature: "void TestKeyPair::TestKeyPair(const TestPublicKeyAlgorithm& aPublicKeyAlg,\n
      \                        const ByteString& spk)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - f
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: operator()(FILE* f)
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - fclose
    linkageType: ''
    returnType: void
    signature: void operator()(FILE* f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fopen_s
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:61,1
    - Dst: string::c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:61,1
    - Dst: c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:61,1
    - Dst: ScopedFILE::reset
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:66,1
    - Dst: ScopedFILE::reset
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: fopen
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: string::c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: ScopedFILE::release
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ' dir'
    - ' filename'
    - ' mode'
    argTypes:
    - string
    - string
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 72
    functionName: mozilla::pkix::test::OpenFile
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 6
    functionsReached:
    - ScopedFILE::reset
    - ScopedFILE::release
    - fopen
    - fopen_s
    - c_str
    - string::c_str
    linkageType: ''
    returnType: FILE
    signature: 'FILE *

      OpenFile(const string& dir, const string& filename, const string& mode)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - f
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: operator()(FILE* f)
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - fclose
    linkageType: ''
    returnType: void
    signature: void operator()(FILE* f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fopen_s
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:61,1
    - Dst: string::c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:61,1
    - Dst: c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:61,1
    - Dst: ScopedFILE::reset
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:66,1
    - Dst: ScopedFILE::reset
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: fopen
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: string::c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: ScopedFILE::release
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ' dir'
    - ' filename'
    - ' mode'
    argTypes:
    - string
    - string
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 72
    functionName: mozilla::pkix::test::OpenFile
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 6
    functionsReached:
    - ScopedFILE::reset
    - ScopedFILE::release
    - fopen
    - fopen_s
    - c_str
    - string::c_str
    linkageType: ''
    returnType: FILE
    signature: 'FILE *

      OpenFile(const string& dir, const string& filename, const string& mode)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Input::Init
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:80,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:80,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:80,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:84,1
    - Dst: InputsAreEqual
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - input
    - ' bs'
    argTypes:
    - Input
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 87
    functionName: mozilla::pkix::test::InputEqualsByteString
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - length
    - abort
    - InputsAreEqual
    - Input::Init
    - data
    linkageType: ''
    returnType: bool
    signature: bool InputEqualsByteString(Input input, const ByteString& bs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:96,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - input
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 101
    functionName: mozilla::pkix::test::InputToByteString
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - Reader::Read
    - ByteString::push_back
    linkageType: ''
    returnType: ByteString
    signature: ByteString InputToByteString(Input input)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:107,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:110,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:110,1
    - Dst: find
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:113,1
    - Dst: find
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:117,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:117,1
    - Dst: replace
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:120,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:120,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - ' item'
    - ' from'
    - ' to'
    argTypes:
    - ByteString
    - ByteString
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 122
    functionName: mozilla::pkix::test::TamperOnce
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - find
    - replace
    - length
    linkageType: ''
    returnType: Result
    signature: "Result TamperOnce(/*in/out*/ ByteString& item, const ByteString& from,\n
      \          const ByteString& to)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:129,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:131,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:132,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:132,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:133,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:134,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:135,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:135,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:136,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:137,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:138,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:138,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:139,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:139,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:143,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - tag
    - length
    - ' value'
    argTypes:
    - uint8_t
    - size_t
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 147
    functionName: mozilla::pkix::test::TLV
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 126
    functionsReached:
    - length
    - ByteString::append
    - abort
    - ByteString::push_back
    - static_cast<uint8_t>
    linkageType: ''
    returnType: ByteString
    signature: ByteString TLV(uint8_t tag, size_t length, const ByteString& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 155
    functionName: mozilla::pkix::test::OCSPResponseExtension::OCSPResponseExtension
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OCSPResponseExtension::OCSPResponseExtension()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:160,1
    - Dst: sha256WithRSAEncryption
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:168,1
    - Dst: static_cast<time_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' aCertID'
    - time
    argTypes:
    - CertID
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 178
    functionName: mozilla::pkix::test::OCSPResponseContext::OCSPResponseContext
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - ByteString
    - static_cast<time_t>
    - sha256WithRSAEncryption
    linkageType: ''
    returnType: void
    signature: void OCSPResponseContext::OCSPResponseContext(const CertID& aCertID,
      time_t time)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Input::Init
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:194,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:194,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:194,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:195,1
    - Dst: DigestAlgorithmToSizeInBytes
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:197,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:198,1
    - Dst: mozilla::pkix::test::TestDigestBuf
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:199,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:201,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:203,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' toHash'
    - digestAlgorithm
    argTypes:
    - ByteString
    - DigestAlgorithm
    assertStmts:
    - condition: (digestLen <= sizeof(digestBuf))
      pos:
        line_end: 197
        line_start: 197
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    constantsTouched: []
    func_position:
      end: 204
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 204
    functionName: mozilla::pkix::test::HASH
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - length
    - DigestAlgorithmToSizeInBytes
    - mozilla::pkix::test::TestDigestBuf
    - abort
    - assert
    - ByteString
    - Input::Init
    - data
    linkageType: ''
    returnType: ByteString
    signature: ByteString HASH(const ByteString& toHash, DigestAlgorithm digestAlgorithm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:210,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:211,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' bytes'
    - digestAlgorithm
    argTypes:
    - ByteString
    - DigestAlgorithm
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 214
    functionName: mozilla::pkix::test::HashedOctetString
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 12
    functionsReached:
    - ByteString
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::ENCODING_FAILED
    linkageType: ''
    returnType: ByteString
    signature: ByteString HashedOctetString(const ByteString& bytes, DigestAlgorithm
      digestAlgorithm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:223,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:224,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:226,1
    - Dst: ByteString::length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:226,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' rawBytes'
    - corrupt
    argTypes:
    - ByteString
    - bool
    assertStmts:
    - condition: (prefixed.length() > 8)
      pos:
        line_end: 225
        line_start: 225
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    constantsTouched: []
    func_position:
      end: 230
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 230
    functionName: mozilla::pkix::test::BitString
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - ByteString::append
    - assert
    - ByteString::length
    - mozilla::pkix::test::TLV
    - ByteString::push_back
    linkageType: ''
    returnType: ByteString
    signature: ByteString BitString(const ByteString& rawBytes, bool corrupt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:236,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 238
    functionName: mozilla::pkix::test::Boolean
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 18
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::push_back
    linkageType: ''
    returnType: ByteString
    signature: ByteString Boolean(bool value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:247,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:251,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:251,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:252,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 253
    functionName: mozilla::pkix::test::Integer
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 12
    functionsReached:
    - static_cast<uint8_t>
    - mozilla::pkix::test::TLV
    - abort
    - ByteString::push_back
    linkageType: ''
    returnType: ByteString
    signature: ByteString Integer(long value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gmtime_s
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - t
    - exploded
    argTypes:
    - time_t*
    - tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 266
    functionName: mozilla::pkix::test::gmtime_r
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 12
    functionsReached:
    - gmtime_s
    linkageType: ''
    returnType: tm
    signature: 'tm *

      gmtime_r(const time_t* t, /*out*/ tm* exploded)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:278,1
    - Dst: mozilla::pkix::test::gmtime_r
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:281,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:282,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:294,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:300,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:300,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:301,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:301,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:304,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:304,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:305,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:305,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:306,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:306,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:307,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:307,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:308,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:308,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:309,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:309,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:310,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:310,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:311,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:311,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:312,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:312,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:313,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:313,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:314,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:314,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:315,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:315,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:316,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:318,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - time
    - encoding
    argTypes:
    - time_t
    - TimeEncoding
    assertStmts:
    - condition: (encoding == UTCTime || encoding == GeneralizedTime)
      pos:
        line_end: 277
        line_start: 277
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    constantsTouched: []
    func_position:
      end: 320
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 320
    functionName: mozilla::pkix::test::TimeToEncodedTime
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 12
    functionsReached:
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::gmtime_r
    - assert
    - ByteString::push_back
    - ByteString
    - static_cast<uint8_t>
    linkageType: ''
    returnType: ByteString
    signature: ByteString TimeToEncodedTime(time_t time, TimeEncoding encoding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TimeToEncodedTime
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - time
    argTypes:
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 322
    functionDepth: 2
    functionLinenumber: 322
    functionLinenumberEnd: 326
    functionName: mozilla::pkix::test::TimeToGeneralizedTime
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 18
    functionsReached:
    - mozilla::pkix::test::TimeToEncodedTime
    linkageType: ''
    returnType: ByteString
    signature: ByteString TimeToGeneralizedTime(time_t time)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::gmtime_r
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:337,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:338,1
    - Dst: mozilla::pkix::test::TimeToEncodedTime
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:345,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - time
    argTypes:
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 333
    functionDepth: 2
    functionLinenumber: 333
    functionLinenumberEnd: 346
    functionName: mozilla::pkix::test::TimeToTimeChoice
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::gmtime_r
    - mozilla::pkix::test::TimeToEncodedTime
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString TimeToTimeChoice(time_t time)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:352,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:353,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:354,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:355,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:356,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:357,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:358,1
    - Dst: DaysBeforeYear
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:360,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:376,1
    - Dst: TimeFromElapsedSecondsAD
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:390,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 6
    argNames:
    - year
    - month
    - day
    - hour
    - minutes
    - seconds
    argTypes:
    - uint16_t
    - uint16_t
    - uint16_t
    - uint16_t
    - uint16_t
    - uint16_t
    assertStmts:
    - condition: (year <= 9999)
      pos:
        line_end: 351
        line_start: 351
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (month <= 12)
      pos:
        line_end: 353
        line_start: 353
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (month >= 1)
      pos:
        line_end: 352
        line_start: 352
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (hour < 24)
      pos:
        line_end: 355
        line_start: 355
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (day >= 1)
      pos:
        line_end: 354
        line_start: 354
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (minutes < 60)
      pos:
        line_end: 356
        line_start: 356
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (seconds < 60)
      pos:
        line_end: 357
        line_start: 357
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (day <= daysInMonth)
      pos:
        line_end: 375
        line_start: 375
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    constantsTouched: []
    func_position:
      end: 391
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 391
    functionName: mozilla::pkix::test::YMDHMS
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - assert
    - DaysBeforeYear
    - TimeFromElapsedSecondsAD
    linkageType: ''
    returnType: Time
    signature: "Time YMDHMS(uint16_t year, uint16_t month, uint16_t day,\n       uint16_t
      hour, uint16_t minutes, uint16_t seconds)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SignData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:400,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:401,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:407,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:408,1
    - Dst: empty
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:414,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:415,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:419,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:424,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:425,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:426,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:427,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:428,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 5
    argNames:
    - ' tbsData'
    - ' keyPair'
    - ' signatureAlgorithm'
    - corrupt
    - certs
    argTypes:
    - ByteString
    - TestKeyPair
    - TestSignatureAlgorithm
    - bool
    - ByteString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 429
    functionName: mozilla::pkix::test::SignedData
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 6
    functionsReached:
    - mozilla::pkix::test::TLV
    - SignData
    - ByteString::append
    - mozilla::pkix::test::ENCODING_FAILED
    - ByteString
    - empty
    linkageType: ''
    returnType: ByteString
    signature: "ByteString SignedData(const ByteString& tbsData,\n           const
      TestKeyPair& keyPair,\n           const TestSignatureAlgorithm& signatureAlgorithm,\n
      \          bool corrupt, /*optional*/ const ByteString* certs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:444,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:444,1
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:444,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:444,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:447,1
    - Dst: mozilla::pkix::test::Boolean
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:447,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:452,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:453,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - extnID
    - critical
    - ' extnValueBytes'
    argTypes:
    - Input
    - Critical
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 454
    functionName: mozilla::pkix::test::Extension
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 18
    functionsReached:
    - mozilla::pkix::test::TLV
    - Input::UnsafeGetData
    - Input::GetLength
    - ByteString::append
    - ByteString
    - mozilla::pkix::test::Boolean
    linkageType: ''
    returnType: ByteString
    signature: ByteString Extension(Input extnID, Critical critical, const ByteString&
      extnValueBytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:459,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:459,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:462,1
    - Dst: mozilla::pkix::test::Boolean
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:462,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:466,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:467,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - extnID
    - critical
    argTypes:
    - Input
    - Critical
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 468
    functionName: mozilla::pkix::test::EmptyExtension
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 6
    functionsReached:
    - Input::UnsafeGetData
    - Input::GetLength
    - ByteString::append
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::Boolean
    linkageType: ''
    returnType: ByteString
    signature: ByteString EmptyExtension(Input extnID, Critical critical)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:477,1
    - Dst: _dupenv_s
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:484,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:485,1
    - Dst: free
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:489,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 493
    functionName: mozilla::pkix::test::GetEnv
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 6
    functionsReached:
    - getenv
    - free
    - abort
    - _dupenv_s
    linkageType: ''
    returnType: std::string
    signature: std::string GetEnv(const char* name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:498,1
    - Dst: mozilla::pkix::test::GetEnv
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:503,1
    - Dst: std::string::empty
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:504,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:510,1
    - Dst: std::ostringstream::str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:513,1
    - Dst: mozilla::pkix::test::OpenFile
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:516,1
    - Dst: fwrite
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:518,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:518,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:518,1
    - Dst: ScopedFILE::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:518,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - ' result'
    - suffix
    argTypes:
    - ByteString
    - char*
    assertStmts:
    - condition: (suffix)
      pos:
        line_end: 497
        line_start: 497
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (false)
      pos:
        line_end: 509
        line_start: 509
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    constantsTouched: []
    func_position:
      end: 521
      start: 495
    functionDepth: 2
    functionLinenumber: 495
    functionLinenumberEnd: 521
    functionName: mozilla::pkix::test::MaybeLogOutput
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 12
    functionsReached:
    - std::string::empty
    - length
    - ScopedFILE::get
    - assert
    - std::ostringstream::str
    - fwrite
    - mozilla::pkix::test::GetEnv
    - mozilla::pkix::test::OpenFile
    - data
    linkageType: ''
    returnType: void
    signature: void MaybeLogOutput(const ByteString& result, const char* suffix)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TBSCertificate
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:550,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:556,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:557,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:562,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:563,1
    - Dst: mozilla::pkix::test::MaybeLogOutput
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:566,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 11
    argNames:
    - version
    - ' signature'
    - ' serialNumber'
    - ' issuerNameDER'
    - notBefore
    - notAfter
    - ' subjectNameDER'
    - ' subjectKeyPair'
    - extensions
    - ' issuerKeyPair'
    - ' signatureAlgorithm'
    argTypes:
    - long
    - TestSignatureAlgorithm
    - ByteString
    - ByteString
    - time_t
    - time_t
    - ByteString
    - TestKeyPair
    - ByteString*
    - TestKeyPair
    - TestSignatureAlgorithm
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 538
    functionDepth: 3
    functionLinenumber: 538
    functionLinenumberEnd: 569
    functionName: mozilla::pkix::test::CreateEncodedCertificate
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - ByteString
    - mozilla::pkix::test::TBSCertificate
    - mozilla::pkix::test::MaybeLogOutput
    - mozilla::pkix::test::ENCODING_FAILED
    linkageType: ''
    returnType: ByteString
    signature: "ByteString CreateEncodedCertificate(long version,\n                         const
      TestSignatureAlgorithm& signature,\n                         const ByteString&
      serialNumber,\n                         const ByteString& issuerNameDER,\n                         time_t
      notBefore, time_t notAfter,\n                         const ByteString& subjectNameDER,\n
      \                        const TestKeyPair& subjectKeyPair,\n                         /*optional*/
      const ByteString* extensions,\n                         const TestKeyPair& issuerKeyPair,\n
      \                        const TestSignatureAlgorithm& signatureAlgorithm)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<long>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:595,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:597,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:599,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:602,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:603,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:604,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:612,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:613,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:616,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:617,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:620,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:621,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:622,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:623,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:624,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:627,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:629,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:631,1
    - Dst: empty
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:635,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:636,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:640,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:641,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:644,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:645,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:646,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:648,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:651,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 9
    argNames:
    - versionValue
    - ' serialNumber'
    - ' signature'
    - ' issuer'
    - notBeforeTime
    - notAfterTime
    - ' subject'
    - ' subjectPublicKeyInfo'
    - extensions
    argTypes:
    - long
    - ByteString
    - ByteString
    - ByteString
    - time_t
    - time_t
    - ByteString
    - ByteString
    - ByteString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 585
    functionDepth: 1
    functionLinenumber: 585
    functionLinenumberEnd: 652
    functionName: mozilla::pkix::test::TBSCertificate
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 7
    functionsReached:
    - ByteString::append
    - static_cast<long>
    - mozilla::pkix::test::ENCODING_FAILED
    - mozilla::pkix::test::TLV
    - empty
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: "ByteString TBSCertificate(long versionValue,\n               const
      ByteString& serialNumber, const ByteString& signature,\n               const
      ByteString& issuer, time_t notBeforeTime,\n               time_t notAfterTime,
      const ByteString& subject,\n               const ByteString& subjectPublicKeyInfo,\n
      \              /*optional*/ const ByteString* extensions)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:675,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:676,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - (type)
    - directoryStringType
    - ' value'
    argTypes:
    - uint8_t[]
    - uint8_t
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 678
    functionName: mozilla::pkix::test::AVA
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 18
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::append
    linkageType: ''
    returnType: ByteString
    signature: "ByteString AVA(const uint8_t (&type)[N], uint8_t directoryStringType,\n
      \   const ByteString& value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::AVA
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' value'
    - encodingTag
    argTypes:
    - ByteString
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 680
    functionDepth: 1
    functionLinenumber: 680
    functionLinenumberEnd: 690
    functionName: mozilla::pkix::test::CN
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::AVA
    linkageType: ''
    returnType: ByteString
    signature: ByteString CN(const ByteString& value, uint8_t encodingTag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::AVA
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' value'
    - encodingTag
    argTypes:
    - ByteString
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 692
    functionDepth: 1
    functionLinenumber: 692
    functionLinenumberEnd: 703
    functionName: mozilla::pkix::test::OU
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::AVA
    linkageType: ''
    returnType: ByteString
    signature: ByteString OU(const ByteString& value, uint8_t encodingTag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::AVA
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 705
    functionDepth: 1
    functionLinenumber: 705
    functionLinenumberEnd: 715
    functionName: mozilla::pkix::test::emailAddress
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::AVA
    linkageType: ''
    returnType: ByteString
    signature: ByteString emailAddress(const ByteString& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' avas'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 720
    functionDepth: 0
    functionLinenumber: 720
    functionLinenumberEnd: 724
    functionName: mozilla::pkix::test::RDN
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    linkageType: ''
    returnType: ByteString
    signature: ByteString RDN(const ByteString& avas)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:734,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rdns'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 731
    functionDepth: 0
    functionLinenumber: 731
    functionLinenumberEnd: 735
    functionName: mozilla::pkix::test::Name
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    linkageType: ''
    returnType: ByteString
    signature: ByteString Name(const ByteString& rdns)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::Integer
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:740,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - serialNumberValue
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 737
    functionDepth: 1
    functionLinenumber: 737
    functionLinenumberEnd: 741
    functionName: mozilla::pkix::test::CreateEncodedSerialNumber
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::Integer
    linkageType: ''
    returnType: ByteString
    signature: ByteString CreateEncodedSerialNumber(long serialNumberValue)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:755,1
    - Dst: mozilla::pkix::test::Integer
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:759,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:760,1
    - Dst: mozilla::pkix::test::Extension
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:767,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:767,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - isCA
    - pathLenConstraintValue
    - critical
    argTypes:
    - bool
    - long*
    - Critical
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 746
    functionDepth: 2
    functionLinenumber: 746
    functionLinenumberEnd: 768
    functionName: mozilla::pkix::test::CreateEncodedBasicConstraints
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::Integer
    - ByteString::append
    - Input
    - mozilla::pkix::test::Extension
    linkageType: ''
    returnType: ByteString
    signature: "ByteString CreateEncodedBasicConstraints(bool isCA,\n                              /*optional
      in*/ const long* pathLenConstraintValue,\n                              Critical
      critical)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:775,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:775,1
    - Dst: mozilla::pkix::test::Extension
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:782,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ekuOID
    - critical
    argTypes:
    - Input
    - Critical
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 772
    functionDepth: 2
    functionLinenumber: 772
    functionLinenumberEnd: 783
    functionName: mozilla::pkix::test::CreateEncodedEKUExtension
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - Input::GetLength
    - Input
    - Input::UnsafeGetData
    - mozilla::pkix::test::Extension
    linkageType: ''
    returnType: ByteString
    signature: ByteString CreateEncodedEKUExtension(Input ekuOID, Critical critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::Extension
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:793,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' names'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 790
    functionDepth: 2
    functionLinenumber: 790
    functionLinenumberEnd: 794
    functionName: mozilla::pkix::test::CreateEncodedSubjectAltName
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - Input
    - mozilla::pkix::test::Extension
    linkageType: ''
    returnType: ByteString
    signature: ByteString CreateEncodedSubjectAltName(const ByteString& names)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::EmptyExtension
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:799,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:799,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 796
    functionDepth: 2
    functionLinenumber: 796
    functionLinenumberEnd: 800
    functionName: mozilla::pkix::test::CreateEncodedEmptySubjectAltName
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - Input
    - mozilla::pkix::test::EmptyExtension
    linkageType: ''
    returnType: ByteString
    signature: ByteString CreateEncodedEmptySubjectAltName()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:810,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:828,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:834,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:835,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:838,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:843,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:844,1
    - Dst: mozilla::pkix::test::MaybeLogOutput
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:847,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 805
    functionDepth: 3
    functionLinenumber: 805
    functionLinenumberEnd: 850
    functionName: mozilla::pkix::test::CreateEncodedOCSPResponse
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::append
    - mozilla::pkix::test::ENCODING_FAILED
    - mozilla::pkix::test::MaybeLogOutput
    - ByteString
    - ByteString::push_back
    linkageType: ''
    returnType: ByteString
    signature: ByteString CreateEncodedOCSPResponse(OCSPResponseContext& context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:863,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:864,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:866,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:869,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:871,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:872,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 855
    functionDepth: 1
    functionLinenumber: 855
    functionLinenumberEnd: 873
    functionName: mozilla::pkix::test::ResponseBytes
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - ByteString
    - mozilla::pkix::test::TLV
    - ByteString::append
    - mozilla::pkix::test::ENCODING_FAILED
    linkageType: ''
    returnType: ByteString
    signature: ByteString ResponseBytes(OCSPResponseContext& context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:884,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:885,1
    - Dst: mozilla::pkix::test::SignedData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:888,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 880
    functionDepth: 2
    functionLinenumber: 880
    functionLinenumberEnd: 891
    functionName: mozilla::pkix::test::BasicOCSPResponse
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - ByteString
    - mozilla::pkix::test::SignedData
    - mozilla::pkix::test::ENCODING_FAILED
    linkageType: ''
    returnType: ByteString
    signature: ByteString BasicOCSPResponse(OCSPResponseContext& context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:902,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:904,1
    - Dst: mozilla::pkix::test::Boolean
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:904,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:906,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:907,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:908,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' extension'
    argTypes:
    - OCSPResponseExtension
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 898
    functionDepth: 1
    functionLinenumber: 898
    functionLinenumberEnd: 909
    functionName: mozilla::pkix::test::OCSPExtension
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 6
    functionsReached:
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::Boolean
    - ByteString::append
    linkageType: ''
    returnType: ByteString
    signature: ByteString OCSPExtension(OCSPResponseExtension& extension)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::OCSPExtension
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:920,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:921,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:922,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:924,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:927,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - extensions
    argTypes:
    - OCSPResponseExtension*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 914
    functionDepth: 2
    functionLinenumber: 914
    functionLinenumberEnd: 928
    functionName: mozilla::pkix::test::OCSPExtensions
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 12
    functionsReached:
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::OCSPExtension
    - ByteString::append
    - mozilla::pkix::test::ENCODING_FAILED
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString OCSPExtensions(OCSPResponseExtension* extensions)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:940,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:941,1
    - Dst: mozilla::pkix::test::TimeToGeneralizedTime
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:943,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:944,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:945,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:948,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:949,1
    - Dst: mozilla::pkix::test::OCSPExtensions
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:954,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:958,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:959,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:960,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:961,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:963,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:965,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 936
    functionDepth: 3
    functionLinenumber: 936
    functionLinenumberEnd: 966
    functionName: mozilla::pkix::test::ResponseData
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::append
    - mozilla::pkix::test::ENCODING_FAILED
    - mozilla::pkix::test::TimeToGeneralizedTime
    - mozilla::pkix::test::OCSPExtensions
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString ResponseData(OCSPResponseContext& context)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: signerNameDER::empty
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:977,1
    - Dst: mozilla::pkix::test::KeyHash
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:981,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:982,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:983,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:990,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:992,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 993
      start: 972
    functionDepth: 3
    functionLinenumber: 972
    functionLinenumberEnd: 993
    functionName: mozilla::pkix::test::ResponderID
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - signerNameDER::empty
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::ENCODING_FAILED
    - ByteString
    - mozilla::pkix::test::KeyHash
    - static_cast<uint8_t>
    linkageType: ''
    returnType: ByteString
    signature: ByteString ResponderID(OCSPResponseContext& context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::HashedOctetString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1003,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' subjectPublicKey'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 1000
    functionDepth: 2
    functionLinenumber: 1000
    functionLinenumberEnd: 1004
    functionName: mozilla::pkix::test::KeyHash
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 7
    functionsReached:
    - mozilla::pkix::test::HashedOctetString
    linkageType: ''
    returnType: ByteString
    signature: ByteString KeyHash(const ByteString& subjectPublicKey)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1016,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1017,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1020,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1021,1
    - Dst: mozilla::pkix::test::TimeToGeneralizedTime
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1023,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1024,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1025,1
    - Dst: mozilla::pkix::test::TimeToGeneralizedTime
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1029,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1030,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1031,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1033,1
    - Dst: mozilla::pkix::test::OCSPExtensions
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1038,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1042,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1043,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1044,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1045,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1046,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1047,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 1012
    functionDepth: 3
    functionLinenumber: 1012
    functionLinenumberEnd: 1048
    functionName: mozilla::pkix::test::SingleResponse
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::append
    - mozilla::pkix::test::ENCODING_FAILED
    - mozilla::pkix::test::TimeToGeneralizedTime
    - mozilla::pkix::test::OCSPExtensions
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString SingleResponse(OCSPResponseContext& context)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: certID::issuer::UnsafeGetData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1058,1
    - Dst: certID::issuer::GetLength
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1059,1
    - Dst: mozilla::pkix::test::HashedOctetString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1060,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1061,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1062,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1072,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1073,1
    - Dst: mozilla::pkix::der::ExpectTagAndSkipValue
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1076,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1077,1
    - Dst: mozilla::pkix::der::BitStringWithNoUnusedBits
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1080,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1082,1
    - Dst: mozilla::pkix::test::HashedOctetString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1084,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1084,1
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1084,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1085,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1086,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1087,1
    - Dst: certID::serialNumber::UnsafeGetData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1091,1
    - Dst: certID::serialNumber::GetLength
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1092,1
    - Dst: certIDHashAlgorithmEncoded::empty
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1113,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1114,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1118,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1121,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1124,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1127,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1132,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1133,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1134,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1135,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1136
      start: 1055
    functionDepth: 2
    functionLinenumber: 1055
    functionLinenumberEnd: 1136
    functionName: mozilla::pkix::test::CertID
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - certID::issuer::UnsafeGetData
    - mozilla::pkix::test::TLV
    - mozilla::pkix::der::ExpectTagAndGetValue
    - mozilla::pkix::der::BitStringWithNoUnusedBits
    - Input::UnsafeGetData
    - Input::GetLength
    - ByteString::append
    - mozilla::pkix::test::ENCODING_FAILED
    - certID::issuer::GetLength
    - certID::serialNumber::UnsafeGetData
    - mozilla::pkix::der::ExpectTagAndSkipValue
    - certID::serialNumber::GetLength
    - certIDHashAlgorithmEncoded::empty
    - ByteString
    - mozilla::pkix::test::HashedOctetString
    linkageType: ''
    returnType: ByteString
    signature: ByteString CertID(OCSPResponseContext& context)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1160,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1160,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1161,1
    - Dst: mozilla::pkix::test::TimeToGeneralizedTime
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1165,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1166,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1167,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1170,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1173,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts:
    - condition: (false)
      pos:
        line_end: 1172
        line_start: 1172
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    constantsTouched: []
    func_position:
      end: 1177
      start: 1149
    functionDepth: 3
    functionLinenumber: 1149
    functionLinenumberEnd: 1177
    functionName: mozilla::pkix::test::CertStatus
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::ENCODING_FAILED
    - assert
    - mozilla::pkix::test::TimeToGeneralizedTime
    - ByteString
    - static_cast<uint8_t>
    linkageType: ''
    returnType: ByteString
    signature: ByteString CertStatus(OCSPResponseContext& context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1185,1
    - Dst: TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' aPublicKeyAlg'
    - ' spk'
    argTypes:
    - TestPublicKeyAlgorithm
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1182
    functionDepth: 0
    functionLinenumber: 1182
    functionLinenumberEnd: 1190
    functionName: mozilla::pkix::test::TestKeyPair::TestKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - TLV
    linkageType: ''
    returnType: void
    signature: "void TestKeyPair::TestKeyPair(const TestPublicKeyAlgorithm& aPublicKeyAlg,\n
      \                        const ByteString& spk)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - f
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: operator()(FILE* f)
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - fclose
    linkageType: ''
    returnType: void
    signature: void operator()(FILE* f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fopen_s
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:61,1
    - Dst: string::c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:61,1
    - Dst: c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:61,1
    - Dst: ScopedFILE::reset
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:66,1
    - Dst: ScopedFILE::reset
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: fopen
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: string::c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: ScopedFILE::release
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ' dir'
    - ' filename'
    - ' mode'
    argTypes:
    - string
    - string
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 72
    functionName: mozilla::pkix::test::OpenFile
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 7
    functionsReached:
    - ScopedFILE::reset
    - ScopedFILE::release
    - fopen
    - fopen_s
    - c_str
    - string::c_str
    linkageType: ''
    returnType: FILE
    signature: 'FILE *

      OpenFile(const string& dir, const string& filename, const string& mode)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - f
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: operator()(FILE* f)
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - fclose
    linkageType: ''
    returnType: void
    signature: void operator()(FILE* f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fopen_s
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:61,1
    - Dst: string::c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:61,1
    - Dst: c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:61,1
    - Dst: ScopedFILE::reset
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:66,1
    - Dst: ScopedFILE::reset
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: fopen
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: string::c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: c_str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:69,1
    - Dst: ScopedFILE::release
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ' dir'
    - ' filename'
    - ' mode'
    argTypes:
    - string
    - string
    - string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 72
    functionName: mozilla::pkix::test::OpenFile
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 7
    functionsReached:
    - ScopedFILE::reset
    - ScopedFILE::release
    - fopen
    - fopen_s
    - c_str
    - string::c_str
    linkageType: ''
    returnType: FILE
    signature: 'FILE *

      OpenFile(const string& dir, const string& filename, const string& mode)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Input::Init
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:80,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:80,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:80,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:84,1
    - Dst: InputsAreEqual
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - input
    - ' bs'
    argTypes:
    - Input
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 87
    functionName: mozilla::pkix::test::InputEqualsByteString
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - length
    - abort
    - InputsAreEqual
    - Input::Init
    - data
    linkageType: ''
    returnType: bool
    signature: bool InputEqualsByteString(Input input, const ByteString& bs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:96,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - input
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 101
    functionName: mozilla::pkix::test::InputToByteString
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - Reader::Read
    - ByteString::push_back
    linkageType: ''
    returnType: ByteString
    signature: ByteString InputToByteString(Input input)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:107,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:110,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:110,1
    - Dst: find
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:113,1
    - Dst: find
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:117,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:117,1
    - Dst: replace
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:120,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:120,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - ' item'
    - ' from'
    - ' to'
    argTypes:
    - ByteString
    - ByteString
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 122
    functionName: mozilla::pkix::test::TamperOnce
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - find
    - replace
    - length
    linkageType: ''
    returnType: Result
    signature: "Result TamperOnce(/*in/out*/ ByteString& item, const ByteString& from,\n
      \          const ByteString& to)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:129,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:131,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:132,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:132,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:133,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:134,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:135,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:135,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:136,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:137,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:138,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:138,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:139,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:139,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:143,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - tag
    - length
    - ' value'
    argTypes:
    - uint8_t
    - size_t
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 147
    functionName: mozilla::pkix::test::TLV
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 147
    functionsReached:
    - length
    - ByteString::append
    - abort
    - ByteString::push_back
    - static_cast<uint8_t>
    linkageType: ''
    returnType: ByteString
    signature: ByteString TLV(uint8_t tag, size_t length, const ByteString& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 155
    functionName: mozilla::pkix::test::OCSPResponseExtension::OCSPResponseExtension
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void OCSPResponseExtension::OCSPResponseExtension()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:160,1
    - Dst: sha256WithRSAEncryption
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:168,1
    - Dst: static_cast<time_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' aCertID'
    - time
    argTypes:
    - CertID
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 178
    functionName: mozilla::pkix::test::OCSPResponseContext::OCSPResponseContext
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - ByteString
    - static_cast<time_t>
    - sha256WithRSAEncryption
    linkageType: ''
    returnType: void
    signature: void OCSPResponseContext::OCSPResponseContext(const CertID& aCertID,
      time_t time)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Input::Init
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:194,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:194,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:194,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:195,1
    - Dst: DigestAlgorithmToSizeInBytes
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:197,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:198,1
    - Dst: mozilla::pkix::test::TestDigestBuf
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:199,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:201,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:203,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' toHash'
    - digestAlgorithm
    argTypes:
    - ByteString
    - DigestAlgorithm
    assertStmts:
    - condition: (digestLen <= sizeof(digestBuf))
      pos:
        line_end: 197
        line_start: 197
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    constantsTouched: []
    func_position:
      end: 204
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 204
    functionName: mozilla::pkix::test::HASH
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - length
    - DigestAlgorithmToSizeInBytes
    - mozilla::pkix::test::TestDigestBuf
    - abort
    - assert
    - ByteString
    - Input::Init
    - data
    linkageType: ''
    returnType: ByteString
    signature: ByteString HASH(const ByteString& toHash, DigestAlgorithm digestAlgorithm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:210,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:211,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' bytes'
    - digestAlgorithm
    argTypes:
    - ByteString
    - DigestAlgorithm
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 214
    functionName: mozilla::pkix::test::HashedOctetString
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 14
    functionsReached:
    - ByteString
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::ENCODING_FAILED
    linkageType: ''
    returnType: ByteString
    signature: ByteString HashedOctetString(const ByteString& bytes, DigestAlgorithm
      digestAlgorithm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:223,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:224,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:226,1
    - Dst: ByteString::length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:226,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' rawBytes'
    - corrupt
    argTypes:
    - ByteString
    - bool
    assertStmts:
    - condition: (prefixed.length() > 8)
      pos:
        line_end: 225
        line_start: 225
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    constantsTouched: []
    func_position:
      end: 230
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 230
    functionName: mozilla::pkix::test::BitString
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - ByteString::append
    - assert
    - ByteString::length
    - mozilla::pkix::test::TLV
    - ByteString::push_back
    linkageType: ''
    returnType: ByteString
    signature: ByteString BitString(const ByteString& rawBytes, bool corrupt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:236,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 238
    functionName: mozilla::pkix::test::Boolean
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 21
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::push_back
    linkageType: ''
    returnType: ByteString
    signature: ByteString Boolean(bool value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:247,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:251,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:251,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:252,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 253
    functionName: mozilla::pkix::test::Integer
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 14
    functionsReached:
    - static_cast<uint8_t>
    - mozilla::pkix::test::TLV
    - abort
    - ByteString::push_back
    linkageType: ''
    returnType: ByteString
    signature: ByteString Integer(long value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gmtime_s
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - t
    - exploded
    argTypes:
    - time_t*
    - tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 266
    functionName: mozilla::pkix::test::gmtime_r
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 14
    functionsReached:
    - gmtime_s
    linkageType: ''
    returnType: tm
    signature: 'tm *

      gmtime_r(const time_t* t, /*out*/ tm* exploded)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:278,1
    - Dst: mozilla::pkix::test::gmtime_r
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:281,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:282,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:294,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:300,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:300,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:301,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:301,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:304,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:304,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:305,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:305,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:306,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:306,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:307,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:307,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:308,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:308,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:309,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:309,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:310,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:310,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:311,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:311,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:312,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:312,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:313,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:313,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:314,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:314,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:315,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:315,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:316,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:318,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - time
    - encoding
    argTypes:
    - time_t
    - TimeEncoding
    assertStmts:
    - condition: (encoding == UTCTime || encoding == GeneralizedTime)
      pos:
        line_end: 277
        line_start: 277
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    constantsTouched: []
    func_position:
      end: 320
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 320
    functionName: mozilla::pkix::test::TimeToEncodedTime
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 14
    functionsReached:
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::gmtime_r
    - assert
    - ByteString::push_back
    - ByteString
    - static_cast<uint8_t>
    linkageType: ''
    returnType: ByteString
    signature: ByteString TimeToEncodedTime(time_t time, TimeEncoding encoding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TimeToEncodedTime
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - time
    argTypes:
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 322
    functionDepth: 2
    functionLinenumber: 322
    functionLinenumberEnd: 326
    functionName: mozilla::pkix::test::TimeToGeneralizedTime
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 21
    functionsReached:
    - mozilla::pkix::test::TimeToEncodedTime
    linkageType: ''
    returnType: ByteString
    signature: ByteString TimeToGeneralizedTime(time_t time)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::gmtime_r
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:337,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:338,1
    - Dst: mozilla::pkix::test::TimeToEncodedTime
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:345,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - time
    argTypes:
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 333
    functionDepth: 2
    functionLinenumber: 333
    functionLinenumberEnd: 346
    functionName: mozilla::pkix::test::TimeToTimeChoice
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::gmtime_r
    - mozilla::pkix::test::TimeToEncodedTime
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString TimeToTimeChoice(time_t time)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:352,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:353,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:354,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:355,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:356,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:357,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:358,1
    - Dst: DaysBeforeYear
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:360,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:376,1
    - Dst: TimeFromElapsedSecondsAD
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:390,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 6
    argNames:
    - year
    - month
    - day
    - hour
    - minutes
    - seconds
    argTypes:
    - uint16_t
    - uint16_t
    - uint16_t
    - uint16_t
    - uint16_t
    - uint16_t
    assertStmts:
    - condition: (year <= 9999)
      pos:
        line_end: 351
        line_start: 351
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (month <= 12)
      pos:
        line_end: 353
        line_start: 353
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (month >= 1)
      pos:
        line_end: 352
        line_start: 352
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (hour < 24)
      pos:
        line_end: 355
        line_start: 355
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (day >= 1)
      pos:
        line_end: 354
        line_start: 354
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (minutes < 60)
      pos:
        line_end: 356
        line_start: 356
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (seconds < 60)
      pos:
        line_end: 357
        line_start: 357
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (day <= daysInMonth)
      pos:
        line_end: 375
        line_start: 375
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    constantsTouched: []
    func_position:
      end: 391
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 391
    functionName: mozilla::pkix::test::YMDHMS
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - assert
    - DaysBeforeYear
    - TimeFromElapsedSecondsAD
    linkageType: ''
    returnType: Time
    signature: "Time YMDHMS(uint16_t year, uint16_t month, uint16_t day,\n       uint16_t
      hour, uint16_t minutes, uint16_t seconds)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SignData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:400,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:401,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:407,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:408,1
    - Dst: empty
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:414,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:415,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:419,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:424,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:425,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:426,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:427,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:428,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 5
    argNames:
    - ' tbsData'
    - ' keyPair'
    - ' signatureAlgorithm'
    - corrupt
    - certs
    argTypes:
    - ByteString
    - TestKeyPair
    - TestSignatureAlgorithm
    - bool
    - ByteString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 429
    functionName: mozilla::pkix::test::SignedData
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 7
    functionsReached:
    - mozilla::pkix::test::TLV
    - SignData
    - ByteString::append
    - mozilla::pkix::test::ENCODING_FAILED
    - ByteString
    - empty
    linkageType: ''
    returnType: ByteString
    signature: "ByteString SignedData(const ByteString& tbsData,\n           const
      TestKeyPair& keyPair,\n           const TestSignatureAlgorithm& signatureAlgorithm,\n
      \          bool corrupt, /*optional*/ const ByteString* certs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:444,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:444,1
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:444,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:444,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:447,1
    - Dst: mozilla::pkix::test::Boolean
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:447,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:452,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:453,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - extnID
    - critical
    - ' extnValueBytes'
    argTypes:
    - Input
    - Critical
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 454
    functionName: mozilla::pkix::test::Extension
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 21
    functionsReached:
    - mozilla::pkix::test::TLV
    - Input::UnsafeGetData
    - Input::GetLength
    - ByteString::append
    - ByteString
    - mozilla::pkix::test::Boolean
    linkageType: ''
    returnType: ByteString
    signature: ByteString Extension(Input extnID, Critical critical, const ByteString&
      extnValueBytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:459,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:459,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:462,1
    - Dst: mozilla::pkix::test::Boolean
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:462,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:466,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:467,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - extnID
    - critical
    argTypes:
    - Input
    - Critical
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 468
    functionName: mozilla::pkix::test::EmptyExtension
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 7
    functionsReached:
    - Input::UnsafeGetData
    - Input::GetLength
    - ByteString::append
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::Boolean
    linkageType: ''
    returnType: ByteString
    signature: ByteString EmptyExtension(Input extnID, Critical critical)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:477,1
    - Dst: _dupenv_s
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:484,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:485,1
    - Dst: free
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:489,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 493
    functionName: mozilla::pkix::test::GetEnv
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 7
    functionsReached:
    - getenv
    - free
    - abort
    - _dupenv_s
    linkageType: ''
    returnType: std::string
    signature: std::string GetEnv(const char* name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:498,1
    - Dst: mozilla::pkix::test::GetEnv
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:503,1
    - Dst: std::string::empty
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:504,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:510,1
    - Dst: std::ostringstream::str
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:513,1
    - Dst: mozilla::pkix::test::OpenFile
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:516,1
    - Dst: fwrite
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:518,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:518,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:518,1
    - Dst: ScopedFILE::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:518,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - ' result'
    - suffix
    argTypes:
    - ByteString
    - char*
    assertStmts:
    - condition: (suffix)
      pos:
        line_end: 497
        line_start: 497
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    - condition: (false)
      pos:
        line_end: 509
        line_start: 509
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    constantsTouched: []
    func_position:
      end: 521
      start: 495
    functionDepth: 2
    functionLinenumber: 495
    functionLinenumberEnd: 521
    functionName: mozilla::pkix::test::MaybeLogOutput
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 14
    functionsReached:
    - std::string::empty
    - length
    - ScopedFILE::get
    - assert
    - std::ostringstream::str
    - fwrite
    - mozilla::pkix::test::GetEnv
    - mozilla::pkix::test::OpenFile
    - data
    linkageType: ''
    returnType: void
    signature: void MaybeLogOutput(const ByteString& result, const char* suffix)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TBSCertificate
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:550,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:556,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:557,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:562,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:563,1
    - Dst: mozilla::pkix::test::MaybeLogOutput
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:566,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 11
    argNames:
    - version
    - ' signature'
    - ' serialNumber'
    - ' issuerNameDER'
    - notBefore
    - notAfter
    - ' subjectNameDER'
    - ' subjectKeyPair'
    - extensions
    - ' issuerKeyPair'
    - ' signatureAlgorithm'
    argTypes:
    - long
    - TestSignatureAlgorithm
    - ByteString
    - ByteString
    - time_t
    - time_t
    - ByteString
    - TestKeyPair
    - ByteString*
    - TestKeyPair
    - TestSignatureAlgorithm
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 538
    functionDepth: 3
    functionLinenumber: 538
    functionLinenumberEnd: 569
    functionName: mozilla::pkix::test::CreateEncodedCertificate
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - ByteString
    - mozilla::pkix::test::TBSCertificate
    - mozilla::pkix::test::MaybeLogOutput
    - mozilla::pkix::test::ENCODING_FAILED
    linkageType: ''
    returnType: ByteString
    signature: "ByteString CreateEncodedCertificate(long version,\n                         const
      TestSignatureAlgorithm& signature,\n                         const ByteString&
      serialNumber,\n                         const ByteString& issuerNameDER,\n                         time_t
      notBefore, time_t notAfter,\n                         const ByteString& subjectNameDER,\n
      \                        const TestKeyPair& subjectKeyPair,\n                         /*optional*/
      const ByteString* extensions,\n                         const TestKeyPair& issuerKeyPair,\n
      \                        const TestSignatureAlgorithm& signatureAlgorithm)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<long>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:595,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:597,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:599,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:602,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:603,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:604,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:612,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:613,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:616,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:617,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:620,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:621,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:622,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:623,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:624,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:627,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:629,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:631,1
    - Dst: empty
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:635,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:636,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:640,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:641,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:644,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:645,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:646,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:648,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:651,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 9
    argNames:
    - versionValue
    - ' serialNumber'
    - ' signature'
    - ' issuer'
    - notBeforeTime
    - notAfterTime
    - ' subject'
    - ' subjectPublicKeyInfo'
    - extensions
    argTypes:
    - long
    - ByteString
    - ByteString
    - ByteString
    - time_t
    - time_t
    - ByteString
    - ByteString
    - ByteString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 585
    functionDepth: 1
    functionLinenumber: 585
    functionLinenumberEnd: 652
    functionName: mozilla::pkix::test::TBSCertificate
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 8
    functionsReached:
    - ByteString::append
    - static_cast<long>
    - mozilla::pkix::test::ENCODING_FAILED
    - mozilla::pkix::test::TLV
    - empty
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: "ByteString TBSCertificate(long versionValue,\n               const
      ByteString& serialNumber, const ByteString& signature,\n               const
      ByteString& issuer, time_t notBeforeTime,\n               time_t notAfterTime,
      const ByteString& subject,\n               const ByteString& subjectPublicKeyInfo,\n
      \              /*optional*/ const ByteString* extensions)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:675,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:676,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - (type)
    - directoryStringType
    - ' value'
    argTypes:
    - uint8_t[]
    - uint8_t
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 678
    functionName: mozilla::pkix::test::AVA
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 21
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::append
    linkageType: ''
    returnType: ByteString
    signature: "ByteString AVA(const uint8_t (&type)[N], uint8_t directoryStringType,\n
      \   const ByteString& value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::AVA
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' value'
    - encodingTag
    argTypes:
    - ByteString
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 680
    functionDepth: 1
    functionLinenumber: 680
    functionLinenumberEnd: 690
    functionName: mozilla::pkix::test::CN
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::AVA
    linkageType: ''
    returnType: ByteString
    signature: ByteString CN(const ByteString& value, uint8_t encodingTag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::AVA
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' value'
    - encodingTag
    argTypes:
    - ByteString
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 692
    functionDepth: 1
    functionLinenumber: 692
    functionLinenumberEnd: 703
    functionName: mozilla::pkix::test::OU
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::AVA
    linkageType: ''
    returnType: ByteString
    signature: ByteString OU(const ByteString& value, uint8_t encodingTag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::AVA
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 705
    functionDepth: 1
    functionLinenumber: 705
    functionLinenumberEnd: 715
    functionName: mozilla::pkix::test::emailAddress
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::AVA
    linkageType: ''
    returnType: ByteString
    signature: ByteString emailAddress(const ByteString& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' avas'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 720
    functionDepth: 0
    functionLinenumber: 720
    functionLinenumberEnd: 724
    functionName: mozilla::pkix::test::RDN
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    linkageType: ''
    returnType: ByteString
    signature: ByteString RDN(const ByteString& avas)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:734,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rdns'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 731
    functionDepth: 0
    functionLinenumber: 731
    functionLinenumberEnd: 735
    functionName: mozilla::pkix::test::Name
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    linkageType: ''
    returnType: ByteString
    signature: ByteString Name(const ByteString& rdns)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::Integer
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:740,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - serialNumberValue
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 737
    functionDepth: 1
    functionLinenumber: 737
    functionLinenumberEnd: 741
    functionName: mozilla::pkix::test::CreateEncodedSerialNumber
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::Integer
    linkageType: ''
    returnType: ByteString
    signature: ByteString CreateEncodedSerialNumber(long serialNumberValue)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:755,1
    - Dst: mozilla::pkix::test::Integer
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:759,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:760,1
    - Dst: mozilla::pkix::test::Extension
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:767,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:767,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - isCA
    - pathLenConstraintValue
    - critical
    argTypes:
    - bool
    - long*
    - Critical
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 746
    functionDepth: 2
    functionLinenumber: 746
    functionLinenumberEnd: 768
    functionName: mozilla::pkix::test::CreateEncodedBasicConstraints
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::Integer
    - ByteString::append
    - Input
    - mozilla::pkix::test::Extension
    linkageType: ''
    returnType: ByteString
    signature: "ByteString CreateEncodedBasicConstraints(bool isCA,\n                              /*optional
      in*/ const long* pathLenConstraintValue,\n                              Critical
      critical)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:775,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:775,1
    - Dst: mozilla::pkix::test::Extension
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:782,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ekuOID
    - critical
    argTypes:
    - Input
    - Critical
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 772
    functionDepth: 2
    functionLinenumber: 772
    functionLinenumberEnd: 783
    functionName: mozilla::pkix::test::CreateEncodedEKUExtension
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - Input::GetLength
    - Input
    - Input::UnsafeGetData
    - mozilla::pkix::test::Extension
    linkageType: ''
    returnType: ByteString
    signature: ByteString CreateEncodedEKUExtension(Input ekuOID, Critical critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::Extension
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:793,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' names'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 790
    functionDepth: 2
    functionLinenumber: 790
    functionLinenumberEnd: 794
    functionName: mozilla::pkix::test::CreateEncodedSubjectAltName
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - Input
    - mozilla::pkix::test::Extension
    linkageType: ''
    returnType: ByteString
    signature: ByteString CreateEncodedSubjectAltName(const ByteString& names)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::EmptyExtension
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:799,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:799,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 796
    functionDepth: 2
    functionLinenumber: 796
    functionLinenumberEnd: 800
    functionName: mozilla::pkix::test::CreateEncodedEmptySubjectAltName
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - Input
    - mozilla::pkix::test::EmptyExtension
    linkageType: ''
    returnType: ByteString
    signature: ByteString CreateEncodedEmptySubjectAltName()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:810,1
    - Dst: ByteString::push_back
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:828,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:834,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:835,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:838,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:843,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:844,1
    - Dst: mozilla::pkix::test::MaybeLogOutput
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:847,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 805
    functionDepth: 3
    functionLinenumber: 805
    functionLinenumberEnd: 850
    functionName: mozilla::pkix::test::CreateEncodedOCSPResponse
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::append
    - mozilla::pkix::test::ENCODING_FAILED
    - mozilla::pkix::test::MaybeLogOutput
    - ByteString
    - ByteString::push_back
    linkageType: ''
    returnType: ByteString
    signature: ByteString CreateEncodedOCSPResponse(OCSPResponseContext& context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:863,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:864,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:866,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:869,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:871,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:872,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 855
    functionDepth: 1
    functionLinenumber: 855
    functionLinenumberEnd: 873
    functionName: mozilla::pkix::test::ResponseBytes
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - ByteString
    - mozilla::pkix::test::TLV
    - ByteString::append
    - mozilla::pkix::test::ENCODING_FAILED
    linkageType: ''
    returnType: ByteString
    signature: ByteString ResponseBytes(OCSPResponseContext& context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:884,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:885,1
    - Dst: mozilla::pkix::test::SignedData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:888,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 880
    functionDepth: 2
    functionLinenumber: 880
    functionLinenumberEnd: 891
    functionName: mozilla::pkix::test::BasicOCSPResponse
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - ByteString
    - mozilla::pkix::test::SignedData
    - mozilla::pkix::test::ENCODING_FAILED
    linkageType: ''
    returnType: ByteString
    signature: ByteString BasicOCSPResponse(OCSPResponseContext& context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:902,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:904,1
    - Dst: mozilla::pkix::test::Boolean
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:904,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:906,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:907,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:908,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' extension'
    argTypes:
    - OCSPResponseExtension
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 898
    functionDepth: 1
    functionLinenumber: 898
    functionLinenumberEnd: 909
    functionName: mozilla::pkix::test::OCSPExtension
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 7
    functionsReached:
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::Boolean
    - ByteString::append
    linkageType: ''
    returnType: ByteString
    signature: ByteString OCSPExtension(OCSPResponseExtension& extension)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::OCSPExtension
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:920,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:921,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:922,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:924,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:927,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - extensions
    argTypes:
    - OCSPResponseExtension*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 914
    functionDepth: 2
    functionLinenumber: 914
    functionLinenumberEnd: 928
    functionName: mozilla::pkix::test::OCSPExtensions
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 14
    functionsReached:
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::OCSPExtension
    - ByteString::append
    - mozilla::pkix::test::ENCODING_FAILED
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString OCSPExtensions(OCSPResponseExtension* extensions)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:940,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:941,1
    - Dst: mozilla::pkix::test::TimeToGeneralizedTime
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:943,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:944,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:945,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:948,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:949,1
    - Dst: mozilla::pkix::test::OCSPExtensions
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:954,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:958,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:959,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:960,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:961,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:963,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:965,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 936
    functionDepth: 3
    functionLinenumber: 936
    functionLinenumberEnd: 966
    functionName: mozilla::pkix::test::ResponseData
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::append
    - mozilla::pkix::test::ENCODING_FAILED
    - mozilla::pkix::test::TimeToGeneralizedTime
    - mozilla::pkix::test::OCSPExtensions
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString ResponseData(OCSPResponseContext& context)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: signerNameDER::empty
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:977,1
    - Dst: mozilla::pkix::test::KeyHash
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:981,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:982,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:983,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:990,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:992,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 993
      start: 972
    functionDepth: 3
    functionLinenumber: 972
    functionLinenumberEnd: 993
    functionName: mozilla::pkix::test::ResponderID
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - signerNameDER::empty
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::ENCODING_FAILED
    - ByteString
    - mozilla::pkix::test::KeyHash
    - static_cast<uint8_t>
    linkageType: ''
    returnType: ByteString
    signature: ByteString ResponderID(OCSPResponseContext& context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::HashedOctetString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1003,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' subjectPublicKey'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 1000
    functionDepth: 2
    functionLinenumber: 1000
    functionLinenumberEnd: 1004
    functionName: mozilla::pkix::test::KeyHash
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 8
    functionsReached:
    - mozilla::pkix::test::HashedOctetString
    linkageType: ''
    returnType: ByteString
    signature: ByteString KeyHash(const ByteString& subjectPublicKey)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1016,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1017,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1020,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1021,1
    - Dst: mozilla::pkix::test::TimeToGeneralizedTime
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1023,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1024,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1025,1
    - Dst: mozilla::pkix::test::TimeToGeneralizedTime
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1029,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1030,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1031,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1033,1
    - Dst: mozilla::pkix::test::OCSPExtensions
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1038,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1042,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1043,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1044,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1045,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1046,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1047,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 1012
    functionDepth: 3
    functionLinenumber: 1012
    functionLinenumberEnd: 1048
    functionName: mozilla::pkix::test::SingleResponse
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::append
    - mozilla::pkix::test::ENCODING_FAILED
    - mozilla::pkix::test::TimeToGeneralizedTime
    - mozilla::pkix::test::OCSPExtensions
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString SingleResponse(OCSPResponseContext& context)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: certID::issuer::UnsafeGetData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1058,1
    - Dst: certID::issuer::GetLength
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1059,1
    - Dst: mozilla::pkix::test::HashedOctetString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1060,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1061,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1062,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1072,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1073,1
    - Dst: mozilla::pkix::der::ExpectTagAndSkipValue
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1076,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1077,1
    - Dst: mozilla::pkix::der::BitStringWithNoUnusedBits
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1080,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1082,1
    - Dst: mozilla::pkix::test::HashedOctetString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1084,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1084,1
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1084,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1085,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1086,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1087,1
    - Dst: certID::serialNumber::UnsafeGetData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1091,1
    - Dst: certID::serialNumber::GetLength
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1092,1
    - Dst: certIDHashAlgorithmEncoded::empty
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1113,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1114,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1118,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1121,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1124,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1127,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1132,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1133,1
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1134,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1135,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1136
      start: 1055
    functionDepth: 2
    functionLinenumber: 1055
    functionLinenumberEnd: 1136
    functionName: mozilla::pkix::test::CertID
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - certID::issuer::UnsafeGetData
    - mozilla::pkix::test::TLV
    - mozilla::pkix::der::ExpectTagAndGetValue
    - mozilla::pkix::der::BitStringWithNoUnusedBits
    - Input::UnsafeGetData
    - Input::GetLength
    - ByteString::append
    - mozilla::pkix::test::ENCODING_FAILED
    - certID::issuer::GetLength
    - certID::serialNumber::UnsafeGetData
    - mozilla::pkix::der::ExpectTagAndSkipValue
    - certID::serialNumber::GetLength
    - certIDHashAlgorithmEncoded::empty
    - ByteString
    - mozilla::pkix::test::HashedOctetString
    linkageType: ''
    returnType: ByteString
    signature: ByteString CertID(OCSPResponseContext& context)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1160,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1160,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1161,1
    - Dst: mozilla::pkix::test::TimeToGeneralizedTime
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1165,1
    - Dst: mozilla::pkix::test::ENCODING_FAILED
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1166,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1167,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1170,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1173,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - ' context'
    argTypes:
    - OCSPResponseContext
    assertStmts:
    - condition: (false)
      pos:
        line_end: 1172
        line_start: 1172
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    constantsTouched: []
    func_position:
      end: 1177
      start: 1149
    functionDepth: 3
    functionLinenumber: 1149
    functionLinenumberEnd: 1177
    functionName: mozilla::pkix::test::CertStatus
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::ENCODING_FAILED
    - assert
    - mozilla::pkix::test::TimeToGeneralizedTime
    - ByteString
    - static_cast<uint8_t>
    linkageType: ''
    returnType: ByteString
    signature: ByteString CertStatus(OCSPResponseContext& context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1185,1
    - Dst: TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp:1187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' aPublicKeyAlg'
    - ' spk'
    argTypes:
    - TestPublicKeyAlgorithm
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1182
    functionDepth: 0
    functionLinenumber: 1182
    functionLinenumberEnd: 1190
    functionName: mozilla::pkix::test::TestKeyPair::TestKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestutil.cpp
    functionUses: 0
    functionsReached:
    - TLV
    linkageType: ''
    returnType: void
    signature: "void TestKeyPair::TestKeyPair(const TestPublicKeyAlgorithm& aPublicKeyAlg,\n
      \                        const ByteString& spk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:49,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (rawValue)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: mozilla::pkix::test::OID
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString OID(const uint8_t (&rawValue)[SIZE])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:59,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:59,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:59,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - (rawValue)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 62
    functionName: mozilla::pkix::test::SimpleAlgID
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::append
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: "ByteString SimpleAlgID(const uint8_t (&rawValue)[SIZE],\n            NULLParam
      nullParam = NULLParam::NO)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::insert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:71,1
    - Dst: ByteString::begin
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:71,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - (rawValue)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 74
    functionName: mozilla::pkix::test::DERInteger
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::insert
    - ByteString::begin
    linkageType: ''
    returnType: ByteString
    signature: ByteString DERInteger(const uint8_t (&rawValue)[SIZE])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:49,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (rawValue)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: mozilla::pkix::test::OID
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString OID(const uint8_t (&rawValue)[SIZE])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:59,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:59,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:59,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - (rawValue)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 62
    functionName: mozilla::pkix::test::SimpleAlgID
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::append
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: "ByteString SimpleAlgID(const uint8_t (&rawValue)[SIZE],\n            NULLParam
      nullParam = NULLParam::NO)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::insert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:71,1
    - Dst: ByteString::begin
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:71,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - (rawValue)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 74
    functionName: mozilla::pkix::test::DERInteger
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::insert
    - ByteString::begin
    linkageType: ''
    returnType: ByteString
    signature: ByteString DERInteger(const uint8_t (&rawValue)[SIZE])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' aPublicKeyAlg'
    - aDigestAlg
    - ' aAlgorithmIdentifier'
    - aAccepted
    argTypes:
    - TestPublicKeyAlgorithm
    - TestDigestAlgorithmID
    - ByteString
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 150
    functionName: mozilla::pkix::test::TestSignatureAlgorithm::TestSignatureAlgorithm
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void TestSignatureAlgorithm::TestSignatureAlgorithm(\n  const TestPublicKeyAlgorithm&
      aPublicKeyAlg,\n  TestDigestAlgorithmID aDigestAlg,\n  const ByteString& aAlgorithmIdentifier,\n
      \ bool aAccepted)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 152
    functionName: mozilla::pkix::test::DSS_P
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString DSS_P()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 153
    functionName: mozilla::pkix::test::DSS_Q
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString DSS_Q()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    functionName: mozilla::pkix::test::DSS_G
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString DSS_G()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TestPublicKeyAlgorithm
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:162,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:163,1
    - Dst: mozilla::pkix::test::OID
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:164,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:165,1
    - Dst: mozilla::pkix::test::DERInteger
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:166,1
    - Dst: mozilla::pkix::test::DERInteger
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:167,1
    - Dst: mozilla::pkix::test::DERInteger
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 169
    functionName: mozilla::pkix::test::DSS
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::TestPublicKeyAlgorithm
    - mozilla::pkix::test::OID
    - mozilla::pkix::test::DERInteger
    linkageType: ''
    returnType: TestPublicKeyAlgorithm
    signature: TestPublicKeyAlgorithm DSS()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TestPublicKeyAlgorithm
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:176,1
    - Dst: mozilla::pkix::test::SimpleAlgID
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 177
    functionName: mozilla::pkix::test::RSA_PKCS1
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::SimpleAlgID
    - mozilla::pkix::test::TestPublicKeyAlgorithm
    linkageType: ''
    returnType: TestPublicKeyAlgorithm
    signature: TestPublicKeyAlgorithm RSA_PKCS1()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestSignatureAlgorithm
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:183,1
    - Dst: mozilla::pkix::test::RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:183,1
    - Dst: mozilla::pkix::test::SimpleAlgID
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 180
    functionDepth: 2
    functionLinenumber: 180
    functionLinenumberEnd: 185
    functionName: mozilla::pkix::test::md2WithRSAEncryption
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::RSA_PKCS1
    - mozilla::pkix::test::SimpleAlgID
    - TestSignatureAlgorithm
    linkageType: ''
    returnType: TestSignatureAlgorithm
    signature: TestSignatureAlgorithm md2WithRSAEncryption()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestSignatureAlgorithm
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:191,1
    - Dst: mozilla::pkix::test::RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:191,1
    - Dst: mozilla::pkix::test::SimpleAlgID
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 193
    functionName: mozilla::pkix::test::md5WithRSAEncryption
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::RSA_PKCS1
    - mozilla::pkix::test::SimpleAlgID
    - TestSignatureAlgorithm
    linkageType: ''
    returnType: TestSignatureAlgorithm
    signature: TestSignatureAlgorithm md5WithRSAEncryption()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestSignatureAlgorithm
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:199,1
    - Dst: mozilla::pkix::test::RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:199,1
    - Dst: mozilla::pkix::test::SimpleAlgID
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 201
    functionName: mozilla::pkix::test::sha1WithRSAEncryption
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::RSA_PKCS1
    - mozilla::pkix::test::SimpleAlgID
    - TestSignatureAlgorithm
    linkageType: ''
    returnType: TestSignatureAlgorithm
    signature: TestSignatureAlgorithm sha1WithRSAEncryption()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestSignatureAlgorithm
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:207,1
    - Dst: mozilla::pkix::test::RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:207,1
    - Dst: mozilla::pkix::test::SimpleAlgID
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 209
    functionName: mozilla::pkix::test::sha256WithRSAEncryption
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::RSA_PKCS1
    - mozilla::pkix::test::SimpleAlgID
    - TestSignatureAlgorithm
    linkageType: ''
    returnType: TestSignatureAlgorithm
    signature: TestSignatureAlgorithm sha256WithRSAEncryption()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:49,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (rawValue)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: mozilla::pkix::test::OID
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 1
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString OID(const uint8_t (&rawValue)[SIZE])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:59,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:59,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:59,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - (rawValue)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 62
    functionName: mozilla::pkix::test::SimpleAlgID
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 5
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::append
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: "ByteString SimpleAlgID(const uint8_t (&rawValue)[SIZE],\n            NULLParam
      nullParam = NULLParam::NO)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::insert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:71,1
    - Dst: ByteString::begin
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:71,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - (rawValue)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 74
    functionName: mozilla::pkix::test::DERInteger
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 1
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::insert
    - ByteString::begin
    linkageType: ''
    returnType: ByteString
    signature: ByteString DERInteger(const uint8_t (&rawValue)[SIZE])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:49,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (rawValue)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: mozilla::pkix::test::OID
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 1
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString OID(const uint8_t (&rawValue)[SIZE])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:59,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:59,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:59,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - (rawValue)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 62
    functionName: mozilla::pkix::test::SimpleAlgID
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 5
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::append
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: "ByteString SimpleAlgID(const uint8_t (&rawValue)[SIZE],\n            NULLParam
      nullParam = NULLParam::NO)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::insert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:71,1
    - Dst: ByteString::begin
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:71,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - (rawValue)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 74
    functionName: mozilla::pkix::test::DERInteger
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 1
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::insert
    - ByteString::begin
    linkageType: ''
    returnType: ByteString
    signature: ByteString DERInteger(const uint8_t (&rawValue)[SIZE])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' aPublicKeyAlg'
    - aDigestAlg
    - ' aAlgorithmIdentifier'
    - aAccepted
    argTypes:
    - TestPublicKeyAlgorithm
    - TestDigestAlgorithmID
    - ByteString
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 150
    functionName: mozilla::pkix::test::TestSignatureAlgorithm::TestSignatureAlgorithm
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void TestSignatureAlgorithm::TestSignatureAlgorithm(\n  const TestPublicKeyAlgorithm&
      aPublicKeyAlg,\n  TestDigestAlgorithmID aDigestAlg,\n  const ByteString& aAlgorithmIdentifier,\n
      \ bool aAccepted)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 152
    functionName: mozilla::pkix::test::DSS_P
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString DSS_P()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 153
    functionName: mozilla::pkix::test::DSS_Q
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString DSS_Q()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    functionName: mozilla::pkix::test::DSS_G
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString DSS_G()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TestPublicKeyAlgorithm
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:162,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:163,1
    - Dst: mozilla::pkix::test::OID
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:164,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:165,1
    - Dst: mozilla::pkix::test::DERInteger
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:166,1
    - Dst: mozilla::pkix::test::DERInteger
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:167,1
    - Dst: mozilla::pkix::test::DERInteger
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 169
    functionName: mozilla::pkix::test::DSS
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::TestPublicKeyAlgorithm
    - mozilla::pkix::test::OID
    - mozilla::pkix::test::DERInteger
    linkageType: ''
    returnType: TestPublicKeyAlgorithm
    signature: TestPublicKeyAlgorithm DSS()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TestPublicKeyAlgorithm
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:176,1
    - Dst: mozilla::pkix::test::SimpleAlgID
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 177
    functionName: mozilla::pkix::test::RSA_PKCS1
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 4
    functionsReached:
    - mozilla::pkix::test::SimpleAlgID
    - mozilla::pkix::test::TestPublicKeyAlgorithm
    linkageType: ''
    returnType: TestPublicKeyAlgorithm
    signature: TestPublicKeyAlgorithm RSA_PKCS1()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestSignatureAlgorithm
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:183,1
    - Dst: mozilla::pkix::test::RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:183,1
    - Dst: mozilla::pkix::test::SimpleAlgID
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 180
    functionDepth: 2
    functionLinenumber: 180
    functionLinenumberEnd: 185
    functionName: mozilla::pkix::test::md2WithRSAEncryption
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::RSA_PKCS1
    - mozilla::pkix::test::SimpleAlgID
    - TestSignatureAlgorithm
    linkageType: ''
    returnType: TestSignatureAlgorithm
    signature: TestSignatureAlgorithm md2WithRSAEncryption()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestSignatureAlgorithm
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:191,1
    - Dst: mozilla::pkix::test::RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:191,1
    - Dst: mozilla::pkix::test::SimpleAlgID
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 193
    functionName: mozilla::pkix::test::md5WithRSAEncryption
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::RSA_PKCS1
    - mozilla::pkix::test::SimpleAlgID
    - TestSignatureAlgorithm
    linkageType: ''
    returnType: TestSignatureAlgorithm
    signature: TestSignatureAlgorithm md5WithRSAEncryption()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestSignatureAlgorithm
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:199,1
    - Dst: mozilla::pkix::test::RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:199,1
    - Dst: mozilla::pkix::test::SimpleAlgID
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 201
    functionName: mozilla::pkix::test::sha1WithRSAEncryption
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::RSA_PKCS1
    - mozilla::pkix::test::SimpleAlgID
    - TestSignatureAlgorithm
    linkageType: ''
    returnType: TestSignatureAlgorithm
    signature: TestSignatureAlgorithm sha1WithRSAEncryption()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestSignatureAlgorithm
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:207,1
    - Dst: mozilla::pkix::test::RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:207,1
    - Dst: mozilla::pkix::test::SimpleAlgID
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 209
    functionName: mozilla::pkix::test::sha256WithRSAEncryption
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::RSA_PKCS1
    - mozilla::pkix::test::SimpleAlgID
    - TestSignatureAlgorithm
    linkageType: ''
    returnType: TestSignatureAlgorithm
    signature: TestSignatureAlgorithm sha256WithRSAEncryption()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:49,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (rawValue)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: mozilla::pkix::test::OID
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 2
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString OID(const uint8_t (&rawValue)[SIZE])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:59,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:59,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:59,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - (rawValue)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 62
    functionName: mozilla::pkix::test::SimpleAlgID
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 10
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::append
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: "ByteString SimpleAlgID(const uint8_t (&rawValue)[SIZE],\n            NULLParam
      nullParam = NULLParam::NO)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::insert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:71,1
    - Dst: ByteString::begin
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:71,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - (rawValue)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 74
    functionName: mozilla::pkix::test::DERInteger
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 2
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::insert
    - ByteString::begin
    linkageType: ''
    returnType: ByteString
    signature: ByteString DERInteger(const uint8_t (&rawValue)[SIZE])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:49,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (rawValue)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: mozilla::pkix::test::OID
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 2
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString OID(const uint8_t (&rawValue)[SIZE])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:59,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:59,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:59,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - (rawValue)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 62
    functionName: mozilla::pkix::test::SimpleAlgID
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 10
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::append
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: "ByteString SimpleAlgID(const uint8_t (&rawValue)[SIZE],\n            NULLParam
      nullParam = NULLParam::NO)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::insert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:71,1
    - Dst: ByteString::begin
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:71,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - (rawValue)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 74
    functionName: mozilla::pkix::test::DERInteger
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 2
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::insert
    - ByteString::begin
    linkageType: ''
    returnType: ByteString
    signature: ByteString DERInteger(const uint8_t (&rawValue)[SIZE])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' aPublicKeyAlg'
    - aDigestAlg
    - ' aAlgorithmIdentifier'
    - aAccepted
    argTypes:
    - TestPublicKeyAlgorithm
    - TestDigestAlgorithmID
    - ByteString
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 150
    functionName: mozilla::pkix::test::TestSignatureAlgorithm::TestSignatureAlgorithm
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void TestSignatureAlgorithm::TestSignatureAlgorithm(\n  const TestPublicKeyAlgorithm&
      aPublicKeyAlg,\n  TestDigestAlgorithmID aDigestAlg,\n  const ByteString& aAlgorithmIdentifier,\n
      \ bool aAccepted)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 152
    functionName: mozilla::pkix::test::DSS_P
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString DSS_P()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 153
    functionName: mozilla::pkix::test::DSS_Q
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString DSS_Q()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    functionName: mozilla::pkix::test::DSS_G
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString DSS_G()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TestPublicKeyAlgorithm
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:162,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:163,1
    - Dst: mozilla::pkix::test::OID
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:164,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:165,1
    - Dst: mozilla::pkix::test::DERInteger
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:166,1
    - Dst: mozilla::pkix::test::DERInteger
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:167,1
    - Dst: mozilla::pkix::test::DERInteger
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 169
    functionName: mozilla::pkix::test::DSS
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::TestPublicKeyAlgorithm
    - mozilla::pkix::test::OID
    - mozilla::pkix::test::DERInteger
    linkageType: ''
    returnType: TestPublicKeyAlgorithm
    signature: TestPublicKeyAlgorithm DSS()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TestPublicKeyAlgorithm
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:176,1
    - Dst: mozilla::pkix::test::SimpleAlgID
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 177
    functionName: mozilla::pkix::test::RSA_PKCS1
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 8
    functionsReached:
    - mozilla::pkix::test::SimpleAlgID
    - mozilla::pkix::test::TestPublicKeyAlgorithm
    linkageType: ''
    returnType: TestPublicKeyAlgorithm
    signature: TestPublicKeyAlgorithm RSA_PKCS1()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestSignatureAlgorithm
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:183,1
    - Dst: mozilla::pkix::test::RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:183,1
    - Dst: mozilla::pkix::test::SimpleAlgID
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 180
    functionDepth: 2
    functionLinenumber: 180
    functionLinenumberEnd: 185
    functionName: mozilla::pkix::test::md2WithRSAEncryption
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::RSA_PKCS1
    - mozilla::pkix::test::SimpleAlgID
    - TestSignatureAlgorithm
    linkageType: ''
    returnType: TestSignatureAlgorithm
    signature: TestSignatureAlgorithm md2WithRSAEncryption()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestSignatureAlgorithm
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:191,1
    - Dst: mozilla::pkix::test::RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:191,1
    - Dst: mozilla::pkix::test::SimpleAlgID
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 193
    functionName: mozilla::pkix::test::md5WithRSAEncryption
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::RSA_PKCS1
    - mozilla::pkix::test::SimpleAlgID
    - TestSignatureAlgorithm
    linkageType: ''
    returnType: TestSignatureAlgorithm
    signature: TestSignatureAlgorithm md5WithRSAEncryption()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestSignatureAlgorithm
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:199,1
    - Dst: mozilla::pkix::test::RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:199,1
    - Dst: mozilla::pkix::test::SimpleAlgID
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 201
    functionName: mozilla::pkix::test::sha1WithRSAEncryption
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::RSA_PKCS1
    - mozilla::pkix::test::SimpleAlgID
    - TestSignatureAlgorithm
    linkageType: ''
    returnType: TestSignatureAlgorithm
    signature: TestSignatureAlgorithm sha1WithRSAEncryption()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestSignatureAlgorithm
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:207,1
    - Dst: mozilla::pkix::test::RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:207,1
    - Dst: mozilla::pkix::test::SimpleAlgID
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 209
    functionName: mozilla::pkix::test::sha256WithRSAEncryption
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::RSA_PKCS1
    - mozilla::pkix::test::SimpleAlgID
    - TestSignatureAlgorithm
    linkageType: ''
    returnType: TestSignatureAlgorithm
    signature: TestSignatureAlgorithm sha256WithRSAEncryption()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:49,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (rawValue)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: mozilla::pkix::test::OID
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 3
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString OID(const uint8_t (&rawValue)[SIZE])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:59,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:59,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:59,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - (rawValue)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 62
    functionName: mozilla::pkix::test::SimpleAlgID
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 15
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::append
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: "ByteString SimpleAlgID(const uint8_t (&rawValue)[SIZE],\n            NULLParam
      nullParam = NULLParam::NO)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::insert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:71,1
    - Dst: ByteString::begin
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:71,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - (rawValue)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 74
    functionName: mozilla::pkix::test::DERInteger
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 3
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::insert
    - ByteString::begin
    linkageType: ''
    returnType: ByteString
    signature: ByteString DERInteger(const uint8_t (&rawValue)[SIZE])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:49,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (rawValue)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: mozilla::pkix::test::OID
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 3
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString OID(const uint8_t (&rawValue)[SIZE])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:59,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:59,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:59,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - (rawValue)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 62
    functionName: mozilla::pkix::test::SimpleAlgID
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 15
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::append
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: "ByteString SimpleAlgID(const uint8_t (&rawValue)[SIZE],\n            NULLParam
      nullParam = NULLParam::NO)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::insert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:71,1
    - Dst: ByteString::begin
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:71,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - (rawValue)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 74
    functionName: mozilla::pkix::test::DERInteger
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 3
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::insert
    - ByteString::begin
    linkageType: ''
    returnType: ByteString
    signature: ByteString DERInteger(const uint8_t (&rawValue)[SIZE])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' aPublicKeyAlg'
    - aDigestAlg
    - ' aAlgorithmIdentifier'
    - aAccepted
    argTypes:
    - TestPublicKeyAlgorithm
    - TestDigestAlgorithmID
    - ByteString
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 150
    functionName: mozilla::pkix::test::TestSignatureAlgorithm::TestSignatureAlgorithm
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void TestSignatureAlgorithm::TestSignatureAlgorithm(\n  const TestPublicKeyAlgorithm&
      aPublicKeyAlg,\n  TestDigestAlgorithmID aDigestAlg,\n  const ByteString& aAlgorithmIdentifier,\n
      \ bool aAccepted)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 152
    functionName: mozilla::pkix::test::DSS_P
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString DSS_P()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 153
    functionName: mozilla::pkix::test::DSS_Q
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString DSS_Q()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    functionName: mozilla::pkix::test::DSS_G
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString DSS_G()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TestPublicKeyAlgorithm
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:162,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:163,1
    - Dst: mozilla::pkix::test::OID
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:164,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:165,1
    - Dst: mozilla::pkix::test::DERInteger
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:166,1
    - Dst: mozilla::pkix::test::DERInteger
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:167,1
    - Dst: mozilla::pkix::test::DERInteger
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 169
    functionName: mozilla::pkix::test::DSS
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::TestPublicKeyAlgorithm
    - mozilla::pkix::test::OID
    - mozilla::pkix::test::DERInteger
    linkageType: ''
    returnType: TestPublicKeyAlgorithm
    signature: TestPublicKeyAlgorithm DSS()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TestPublicKeyAlgorithm
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:176,1
    - Dst: mozilla::pkix::test::SimpleAlgID
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 177
    functionName: mozilla::pkix::test::RSA_PKCS1
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 12
    functionsReached:
    - mozilla::pkix::test::SimpleAlgID
    - mozilla::pkix::test::TestPublicKeyAlgorithm
    linkageType: ''
    returnType: TestPublicKeyAlgorithm
    signature: TestPublicKeyAlgorithm RSA_PKCS1()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestSignatureAlgorithm
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:183,1
    - Dst: mozilla::pkix::test::RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:183,1
    - Dst: mozilla::pkix::test::SimpleAlgID
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 180
    functionDepth: 2
    functionLinenumber: 180
    functionLinenumberEnd: 185
    functionName: mozilla::pkix::test::md2WithRSAEncryption
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::RSA_PKCS1
    - mozilla::pkix::test::SimpleAlgID
    - TestSignatureAlgorithm
    linkageType: ''
    returnType: TestSignatureAlgorithm
    signature: TestSignatureAlgorithm md2WithRSAEncryption()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestSignatureAlgorithm
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:191,1
    - Dst: mozilla::pkix::test::RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:191,1
    - Dst: mozilla::pkix::test::SimpleAlgID
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 193
    functionName: mozilla::pkix::test::md5WithRSAEncryption
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::RSA_PKCS1
    - mozilla::pkix::test::SimpleAlgID
    - TestSignatureAlgorithm
    linkageType: ''
    returnType: TestSignatureAlgorithm
    signature: TestSignatureAlgorithm md5WithRSAEncryption()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestSignatureAlgorithm
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:199,1
    - Dst: mozilla::pkix::test::RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:199,1
    - Dst: mozilla::pkix::test::SimpleAlgID
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 201
    functionName: mozilla::pkix::test::sha1WithRSAEncryption
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::RSA_PKCS1
    - mozilla::pkix::test::SimpleAlgID
    - TestSignatureAlgorithm
    linkageType: ''
    returnType: TestSignatureAlgorithm
    signature: TestSignatureAlgorithm sha1WithRSAEncryption()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestSignatureAlgorithm
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:207,1
    - Dst: mozilla::pkix::test::RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:207,1
    - Dst: mozilla::pkix::test::SimpleAlgID
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 209
    functionName: mozilla::pkix::test::sha256WithRSAEncryption
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::RSA_PKCS1
    - mozilla::pkix::test::SimpleAlgID
    - TestSignatureAlgorithm
    linkageType: ''
    returnType: TestSignatureAlgorithm
    signature: TestSignatureAlgorithm sha256WithRSAEncryption()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:49,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (rawValue)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: mozilla::pkix::test::OID
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 4
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString OID(const uint8_t (&rawValue)[SIZE])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:59,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:59,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:59,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - (rawValue)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 62
    functionName: mozilla::pkix::test::SimpleAlgID
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 20
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::append
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: "ByteString SimpleAlgID(const uint8_t (&rawValue)[SIZE],\n            NULLParam
      nullParam = NULLParam::NO)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::insert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:71,1
    - Dst: ByteString::begin
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:71,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - (rawValue)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 74
    functionName: mozilla::pkix::test::DERInteger
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 4
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::insert
    - ByteString::begin
    linkageType: ''
    returnType: ByteString
    signature: ByteString DERInteger(const uint8_t (&rawValue)[SIZE])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:49,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (rawValue)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: mozilla::pkix::test::OID
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 4
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString OID(const uint8_t (&rawValue)[SIZE])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:59,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:59,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:59,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - (rawValue)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 62
    functionName: mozilla::pkix::test::SimpleAlgID
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 20
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::append
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: "ByteString SimpleAlgID(const uint8_t (&rawValue)[SIZE],\n            NULLParam
      nullParam = NULLParam::NO)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::insert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:71,1
    - Dst: ByteString::begin
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:71,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - (rawValue)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 74
    functionName: mozilla::pkix::test::DERInteger
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 4
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::insert
    - ByteString::begin
    linkageType: ''
    returnType: ByteString
    signature: ByteString DERInteger(const uint8_t (&rawValue)[SIZE])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' aPublicKeyAlg'
    - aDigestAlg
    - ' aAlgorithmIdentifier'
    - aAccepted
    argTypes:
    - TestPublicKeyAlgorithm
    - TestDigestAlgorithmID
    - ByteString
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 150
    functionName: mozilla::pkix::test::TestSignatureAlgorithm::TestSignatureAlgorithm
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void TestSignatureAlgorithm::TestSignatureAlgorithm(\n  const TestPublicKeyAlgorithm&
      aPublicKeyAlg,\n  TestDigestAlgorithmID aDigestAlg,\n  const ByteString& aAlgorithmIdentifier,\n
      \ bool aAccepted)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 152
    functionName: mozilla::pkix::test::DSS_P
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString DSS_P()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 153
    functionName: mozilla::pkix::test::DSS_Q
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString DSS_Q()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    functionName: mozilla::pkix::test::DSS_G
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString DSS_G()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TestPublicKeyAlgorithm
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:162,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:163,1
    - Dst: mozilla::pkix::test::OID
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:164,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:165,1
    - Dst: mozilla::pkix::test::DERInteger
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:166,1
    - Dst: mozilla::pkix::test::DERInteger
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:167,1
    - Dst: mozilla::pkix::test::DERInteger
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 169
    functionName: mozilla::pkix::test::DSS
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::TestPublicKeyAlgorithm
    - mozilla::pkix::test::OID
    - mozilla::pkix::test::DERInteger
    linkageType: ''
    returnType: TestPublicKeyAlgorithm
    signature: TestPublicKeyAlgorithm DSS()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TestPublicKeyAlgorithm
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:176,1
    - Dst: mozilla::pkix::test::SimpleAlgID
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 177
    functionName: mozilla::pkix::test::RSA_PKCS1
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 16
    functionsReached:
    - mozilla::pkix::test::SimpleAlgID
    - mozilla::pkix::test::TestPublicKeyAlgorithm
    linkageType: ''
    returnType: TestPublicKeyAlgorithm
    signature: TestPublicKeyAlgorithm RSA_PKCS1()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestSignatureAlgorithm
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:183,1
    - Dst: mozilla::pkix::test::RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:183,1
    - Dst: mozilla::pkix::test::SimpleAlgID
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 180
    functionDepth: 2
    functionLinenumber: 180
    functionLinenumberEnd: 185
    functionName: mozilla::pkix::test::md2WithRSAEncryption
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::RSA_PKCS1
    - mozilla::pkix::test::SimpleAlgID
    - TestSignatureAlgorithm
    linkageType: ''
    returnType: TestSignatureAlgorithm
    signature: TestSignatureAlgorithm md2WithRSAEncryption()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestSignatureAlgorithm
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:191,1
    - Dst: mozilla::pkix::test::RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:191,1
    - Dst: mozilla::pkix::test::SimpleAlgID
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 193
    functionName: mozilla::pkix::test::md5WithRSAEncryption
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::RSA_PKCS1
    - mozilla::pkix::test::SimpleAlgID
    - TestSignatureAlgorithm
    linkageType: ''
    returnType: TestSignatureAlgorithm
    signature: TestSignatureAlgorithm md5WithRSAEncryption()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestSignatureAlgorithm
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:199,1
    - Dst: mozilla::pkix::test::RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:199,1
    - Dst: mozilla::pkix::test::SimpleAlgID
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 201
    functionName: mozilla::pkix::test::sha1WithRSAEncryption
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::RSA_PKCS1
    - mozilla::pkix::test::SimpleAlgID
    - TestSignatureAlgorithm
    linkageType: ''
    returnType: TestSignatureAlgorithm
    signature: TestSignatureAlgorithm sha1WithRSAEncryption()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestSignatureAlgorithm
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:207,1
    - Dst: mozilla::pkix::test::RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:207,1
    - Dst: mozilla::pkix::test::SimpleAlgID
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 209
    functionName: mozilla::pkix::test::sha256WithRSAEncryption
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::RSA_PKCS1
    - mozilla::pkix::test::SimpleAlgID
    - TestSignatureAlgorithm
    linkageType: ''
    returnType: TestSignatureAlgorithm
    signature: TestSignatureAlgorithm sha256WithRSAEncryption()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:49,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (rawValue)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: mozilla::pkix::test::OID
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 5
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString OID(const uint8_t (&rawValue)[SIZE])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:59,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:59,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:59,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - (rawValue)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 62
    functionName: mozilla::pkix::test::SimpleAlgID
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 25
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::append
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: "ByteString SimpleAlgID(const uint8_t (&rawValue)[SIZE],\n            NULLParam
      nullParam = NULLParam::NO)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::insert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:71,1
    - Dst: ByteString::begin
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:71,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - (rawValue)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 74
    functionName: mozilla::pkix::test::DERInteger
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 5
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::insert
    - ByteString::begin
    linkageType: ''
    returnType: ByteString
    signature: ByteString DERInteger(const uint8_t (&rawValue)[SIZE])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:49,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (rawValue)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: mozilla::pkix::test::OID
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 5
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString OID(const uint8_t (&rawValue)[SIZE])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:59,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:59,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:59,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - (rawValue)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 62
    functionName: mozilla::pkix::test::SimpleAlgID
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 25
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::append
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: "ByteString SimpleAlgID(const uint8_t (&rawValue)[SIZE],\n            NULLParam
      nullParam = NULLParam::NO)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::insert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:71,1
    - Dst: ByteString::begin
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:71,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - (rawValue)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 74
    functionName: mozilla::pkix::test::DERInteger
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 5
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::insert
    - ByteString::begin
    linkageType: ''
    returnType: ByteString
    signature: ByteString DERInteger(const uint8_t (&rawValue)[SIZE])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' aPublicKeyAlg'
    - aDigestAlg
    - ' aAlgorithmIdentifier'
    - aAccepted
    argTypes:
    - TestPublicKeyAlgorithm
    - TestDigestAlgorithmID
    - ByteString
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 150
    functionName: mozilla::pkix::test::TestSignatureAlgorithm::TestSignatureAlgorithm
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void TestSignatureAlgorithm::TestSignatureAlgorithm(\n  const TestPublicKeyAlgorithm&
      aPublicKeyAlg,\n  TestDigestAlgorithmID aDigestAlg,\n  const ByteString& aAlgorithmIdentifier,\n
      \ bool aAccepted)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 152
    functionName: mozilla::pkix::test::DSS_P
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString DSS_P()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 153
    functionName: mozilla::pkix::test::DSS_Q
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString DSS_Q()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    functionName: mozilla::pkix::test::DSS_G
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString DSS_G()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TestPublicKeyAlgorithm
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:162,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:163,1
    - Dst: mozilla::pkix::test::OID
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:164,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:165,1
    - Dst: mozilla::pkix::test::DERInteger
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:166,1
    - Dst: mozilla::pkix::test::DERInteger
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:167,1
    - Dst: mozilla::pkix::test::DERInteger
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 169
    functionName: mozilla::pkix::test::DSS
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::TestPublicKeyAlgorithm
    - mozilla::pkix::test::OID
    - mozilla::pkix::test::DERInteger
    linkageType: ''
    returnType: TestPublicKeyAlgorithm
    signature: TestPublicKeyAlgorithm DSS()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TestPublicKeyAlgorithm
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:176,1
    - Dst: mozilla::pkix::test::SimpleAlgID
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 177
    functionName: mozilla::pkix::test::RSA_PKCS1
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 20
    functionsReached:
    - mozilla::pkix::test::SimpleAlgID
    - mozilla::pkix::test::TestPublicKeyAlgorithm
    linkageType: ''
    returnType: TestPublicKeyAlgorithm
    signature: TestPublicKeyAlgorithm RSA_PKCS1()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestSignatureAlgorithm
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:183,1
    - Dst: mozilla::pkix::test::RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:183,1
    - Dst: mozilla::pkix::test::SimpleAlgID
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 180
    functionDepth: 2
    functionLinenumber: 180
    functionLinenumberEnd: 185
    functionName: mozilla::pkix::test::md2WithRSAEncryption
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::RSA_PKCS1
    - mozilla::pkix::test::SimpleAlgID
    - TestSignatureAlgorithm
    linkageType: ''
    returnType: TestSignatureAlgorithm
    signature: TestSignatureAlgorithm md2WithRSAEncryption()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestSignatureAlgorithm
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:191,1
    - Dst: mozilla::pkix::test::RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:191,1
    - Dst: mozilla::pkix::test::SimpleAlgID
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 193
    functionName: mozilla::pkix::test::md5WithRSAEncryption
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::RSA_PKCS1
    - mozilla::pkix::test::SimpleAlgID
    - TestSignatureAlgorithm
    linkageType: ''
    returnType: TestSignatureAlgorithm
    signature: TestSignatureAlgorithm md5WithRSAEncryption()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestSignatureAlgorithm
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:199,1
    - Dst: mozilla::pkix::test::RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:199,1
    - Dst: mozilla::pkix::test::SimpleAlgID
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 201
    functionName: mozilla::pkix::test::sha1WithRSAEncryption
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::RSA_PKCS1
    - mozilla::pkix::test::SimpleAlgID
    - TestSignatureAlgorithm
    linkageType: ''
    returnType: TestSignatureAlgorithm
    signature: TestSignatureAlgorithm sha1WithRSAEncryption()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestSignatureAlgorithm
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:207,1
    - Dst: mozilla::pkix::test::RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:207,1
    - Dst: mozilla::pkix::test::SimpleAlgID
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 209
    functionName: mozilla::pkix::test::sha256WithRSAEncryption
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::RSA_PKCS1
    - mozilla::pkix::test::SimpleAlgID
    - TestSignatureAlgorithm
    linkageType: ''
    returnType: TestSignatureAlgorithm
    signature: TestSignatureAlgorithm sha256WithRSAEncryption()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:49,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (rawValue)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: mozilla::pkix::test::OID
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 6
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString OID(const uint8_t (&rawValue)[SIZE])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:59,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:59,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:59,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - (rawValue)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 62
    functionName: mozilla::pkix::test::SimpleAlgID
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 30
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::append
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: "ByteString SimpleAlgID(const uint8_t (&rawValue)[SIZE],\n            NULLParam
      nullParam = NULLParam::NO)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::insert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:71,1
    - Dst: ByteString::begin
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:71,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - (rawValue)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 74
    functionName: mozilla::pkix::test::DERInteger
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 6
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::insert
    - ByteString::begin
    linkageType: ''
    returnType: ByteString
    signature: ByteString DERInteger(const uint8_t (&rawValue)[SIZE])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:49,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (rawValue)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: mozilla::pkix::test::OID
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 6
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString OID(const uint8_t (&rawValue)[SIZE])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:59,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:59,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:59,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - (rawValue)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 62
    functionName: mozilla::pkix::test::SimpleAlgID
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 30
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::append
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: "ByteString SimpleAlgID(const uint8_t (&rawValue)[SIZE],\n            NULLParam
      nullParam = NULLParam::NO)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::insert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:71,1
    - Dst: ByteString::begin
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:71,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - (rawValue)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 74
    functionName: mozilla::pkix::test::DERInteger
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 6
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::insert
    - ByteString::begin
    linkageType: ''
    returnType: ByteString
    signature: ByteString DERInteger(const uint8_t (&rawValue)[SIZE])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' aPublicKeyAlg'
    - aDigestAlg
    - ' aAlgorithmIdentifier'
    - aAccepted
    argTypes:
    - TestPublicKeyAlgorithm
    - TestDigestAlgorithmID
    - ByteString
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 150
    functionName: mozilla::pkix::test::TestSignatureAlgorithm::TestSignatureAlgorithm
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void TestSignatureAlgorithm::TestSignatureAlgorithm(\n  const TestPublicKeyAlgorithm&
      aPublicKeyAlg,\n  TestDigestAlgorithmID aDigestAlg,\n  const ByteString& aAlgorithmIdentifier,\n
      \ bool aAccepted)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 152
    functionName: mozilla::pkix::test::DSS_P
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString DSS_P()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 153
    functionName: mozilla::pkix::test::DSS_Q
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString DSS_Q()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    functionName: mozilla::pkix::test::DSS_G
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString DSS_G()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TestPublicKeyAlgorithm
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:162,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:163,1
    - Dst: mozilla::pkix::test::OID
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:164,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:165,1
    - Dst: mozilla::pkix::test::DERInteger
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:166,1
    - Dst: mozilla::pkix::test::DERInteger
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:167,1
    - Dst: mozilla::pkix::test::DERInteger
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 169
    functionName: mozilla::pkix::test::DSS
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::TestPublicKeyAlgorithm
    - mozilla::pkix::test::OID
    - mozilla::pkix::test::DERInteger
    linkageType: ''
    returnType: TestPublicKeyAlgorithm
    signature: TestPublicKeyAlgorithm DSS()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TestPublicKeyAlgorithm
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:176,1
    - Dst: mozilla::pkix::test::SimpleAlgID
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 177
    functionName: mozilla::pkix::test::RSA_PKCS1
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 24
    functionsReached:
    - mozilla::pkix::test::SimpleAlgID
    - mozilla::pkix::test::TestPublicKeyAlgorithm
    linkageType: ''
    returnType: TestPublicKeyAlgorithm
    signature: TestPublicKeyAlgorithm RSA_PKCS1()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestSignatureAlgorithm
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:183,1
    - Dst: mozilla::pkix::test::RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:183,1
    - Dst: mozilla::pkix::test::SimpleAlgID
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 180
    functionDepth: 2
    functionLinenumber: 180
    functionLinenumberEnd: 185
    functionName: mozilla::pkix::test::md2WithRSAEncryption
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::RSA_PKCS1
    - mozilla::pkix::test::SimpleAlgID
    - TestSignatureAlgorithm
    linkageType: ''
    returnType: TestSignatureAlgorithm
    signature: TestSignatureAlgorithm md2WithRSAEncryption()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestSignatureAlgorithm
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:191,1
    - Dst: mozilla::pkix::test::RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:191,1
    - Dst: mozilla::pkix::test::SimpleAlgID
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 193
    functionName: mozilla::pkix::test::md5WithRSAEncryption
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::RSA_PKCS1
    - mozilla::pkix::test::SimpleAlgID
    - TestSignatureAlgorithm
    linkageType: ''
    returnType: TestSignatureAlgorithm
    signature: TestSignatureAlgorithm md5WithRSAEncryption()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestSignatureAlgorithm
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:199,1
    - Dst: mozilla::pkix::test::RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:199,1
    - Dst: mozilla::pkix::test::SimpleAlgID
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 201
    functionName: mozilla::pkix::test::sha1WithRSAEncryption
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::RSA_PKCS1
    - mozilla::pkix::test::SimpleAlgID
    - TestSignatureAlgorithm
    linkageType: ''
    returnType: TestSignatureAlgorithm
    signature: TestSignatureAlgorithm sha1WithRSAEncryption()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestSignatureAlgorithm
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:207,1
    - Dst: mozilla::pkix::test::RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:207,1
    - Dst: mozilla::pkix::test::SimpleAlgID
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 209
    functionName: mozilla::pkix::test::sha256WithRSAEncryption
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::RSA_PKCS1
    - mozilla::pkix::test::SimpleAlgID
    - TestSignatureAlgorithm
    linkageType: ''
    returnType: TestSignatureAlgorithm
    signature: TestSignatureAlgorithm sha256WithRSAEncryption()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:49,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (rawValue)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: mozilla::pkix::test::OID
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 7
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString OID(const uint8_t (&rawValue)[SIZE])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:59,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:59,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:59,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - (rawValue)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 62
    functionName: mozilla::pkix::test::SimpleAlgID
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 35
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::append
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: "ByteString SimpleAlgID(const uint8_t (&rawValue)[SIZE],\n            NULLParam
      nullParam = NULLParam::NO)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::insert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:71,1
    - Dst: ByteString::begin
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:71,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - (rawValue)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 74
    functionName: mozilla::pkix::test::DERInteger
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 7
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::insert
    - ByteString::begin
    linkageType: ''
    returnType: ByteString
    signature: ByteString DERInteger(const uint8_t (&rawValue)[SIZE])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:49,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (rawValue)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: mozilla::pkix::test::OID
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 7
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString OID(const uint8_t (&rawValue)[SIZE])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::append
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:59,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:59,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:59,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - (rawValue)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 62
    functionName: mozilla::pkix::test::SimpleAlgID
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 35
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::append
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: "ByteString SimpleAlgID(const uint8_t (&rawValue)[SIZE],\n            NULLParam
      nullParam = NULLParam::NO)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::insert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:71,1
    - Dst: ByteString::begin
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:71,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - (rawValue)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 74
    functionName: mozilla::pkix::test::DERInteger
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 7
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString::insert
    - ByteString::begin
    linkageType: ''
    returnType: ByteString
    signature: ByteString DERInteger(const uint8_t (&rawValue)[SIZE])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' aPublicKeyAlg'
    - aDigestAlg
    - ' aAlgorithmIdentifier'
    - aAccepted
    argTypes:
    - TestPublicKeyAlgorithm
    - TestDigestAlgorithmID
    - ByteString
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 150
    functionName: mozilla::pkix::test::TestSignatureAlgorithm::TestSignatureAlgorithm
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void TestSignatureAlgorithm::TestSignatureAlgorithm(\n  const TestPublicKeyAlgorithm&
      aPublicKeyAlg,\n  TestDigestAlgorithmID aDigestAlg,\n  const ByteString& aAlgorithmIdentifier,\n
      \ bool aAccepted)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 152
    functionName: mozilla::pkix::test::DSS_P
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString DSS_P()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 153
    functionName: mozilla::pkix::test::DSS_Q
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString DSS_Q()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    functionName: mozilla::pkix::test::DSS_G
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString DSS_G()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TestPublicKeyAlgorithm
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:162,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:163,1
    - Dst: mozilla::pkix::test::OID
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:164,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:165,1
    - Dst: mozilla::pkix::test::DERInteger
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:166,1
    - Dst: mozilla::pkix::test::DERInteger
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:167,1
    - Dst: mozilla::pkix::test::DERInteger
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 169
    functionName: mozilla::pkix::test::DSS
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::TestPublicKeyAlgorithm
    - mozilla::pkix::test::OID
    - mozilla::pkix::test::DERInteger
    linkageType: ''
    returnType: TestPublicKeyAlgorithm
    signature: TestPublicKeyAlgorithm DSS()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TestPublicKeyAlgorithm
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:176,1
    - Dst: mozilla::pkix::test::SimpleAlgID
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 177
    functionName: mozilla::pkix::test::RSA_PKCS1
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 28
    functionsReached:
    - mozilla::pkix::test::SimpleAlgID
    - mozilla::pkix::test::TestPublicKeyAlgorithm
    linkageType: ''
    returnType: TestPublicKeyAlgorithm
    signature: TestPublicKeyAlgorithm RSA_PKCS1()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestSignatureAlgorithm
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:183,1
    - Dst: mozilla::pkix::test::RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:183,1
    - Dst: mozilla::pkix::test::SimpleAlgID
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 180
    functionDepth: 2
    functionLinenumber: 180
    functionLinenumberEnd: 185
    functionName: mozilla::pkix::test::md2WithRSAEncryption
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::RSA_PKCS1
    - mozilla::pkix::test::SimpleAlgID
    - TestSignatureAlgorithm
    linkageType: ''
    returnType: TestSignatureAlgorithm
    signature: TestSignatureAlgorithm md2WithRSAEncryption()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestSignatureAlgorithm
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:191,1
    - Dst: mozilla::pkix::test::RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:191,1
    - Dst: mozilla::pkix::test::SimpleAlgID
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 193
    functionName: mozilla::pkix::test::md5WithRSAEncryption
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::RSA_PKCS1
    - mozilla::pkix::test::SimpleAlgID
    - TestSignatureAlgorithm
    linkageType: ''
    returnType: TestSignatureAlgorithm
    signature: TestSignatureAlgorithm md5WithRSAEncryption()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestSignatureAlgorithm
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:199,1
    - Dst: mozilla::pkix::test::RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:199,1
    - Dst: mozilla::pkix::test::SimpleAlgID
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 201
    functionName: mozilla::pkix::test::sha1WithRSAEncryption
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::RSA_PKCS1
    - mozilla::pkix::test::SimpleAlgID
    - TestSignatureAlgorithm
    linkageType: ''
    returnType: TestSignatureAlgorithm
    signature: TestSignatureAlgorithm sha1WithRSAEncryption()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestSignatureAlgorithm
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:207,1
    - Dst: mozilla::pkix::test::RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:207,1
    - Dst: mozilla::pkix::test::SimpleAlgID
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 209
    functionName: mozilla::pkix::test::sha256WithRSAEncryption
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestalg.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::RSA_PKCS1
    - mozilla::pkix::test::SimpleAlgID
    - TestSignatureAlgorithm
    linkageType: ''
    returnType: TestSignatureAlgorithm
    signature: TestSignatureAlgorithm sha256WithRSAEncryption()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSS_NoDB_Init
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:52,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: mozilla::pkix::test::InitNSSIfNeeded
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - NSS_NoDB_Init
    - abort
    linkageType: ''
    returnType: void
    signature: void InitNSSIfNeeded()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:62,1
    - Dst: reset
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:63,1
    - Dst: mozilla::pkix::test::GenerateKeyPairInner
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: mozilla::pkix::test::InitReusedKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::InitNSSIfNeeded
    - reset
    - mozilla::pkix::test::GenerateKeyPairInner
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus InitReusedKeyPair()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' aPublicKeyAlg'
    - ' spk'
    - ' aEncryptedPrivateKey'
    - ' aEncryptionAlgorithm'
    - ' aEncryptionParams'
    argTypes:
    - TestPublicKeyAlgorithm
    - ByteString
    - ByteString
    - ByteString
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 80
    functionName: mozilla::pkix::test::NSSTestKeyPair::NSSTestKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void NSSTestKeyPair(const TestPublicKeyAlgorithm& aPublicKeyAlg,\n
      \                const ByteString& spk,\n                 const ByteString&
      aEncryptedPrivateKey,\n                 const ByteString& aEncryptionAlgorithm,\n
      \                const ByteString& aEncryptionParams)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:87,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:113,1
    - Dst: MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:118,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:118,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:122,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:122,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:123,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:123,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:127,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:127,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:128,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:128,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:132,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:132,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:133,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:133,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:143,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:143,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:144,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:144,1
    - Dst: PK11_ImportEncryptedPrivateKeyInfoAndReturnKey
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:149,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:150,1
    - Dst: MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:153,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:153,1
    - Dst: SEC_SignData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:157,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:157,1
    - Dst: static_cast<int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:158,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:158,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:159,1
    - Dst: MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:160,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:160,1
    - Dst: assign
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:162,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:163,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 3
    argNames:
    - ' tbs'
    - ' signatureAlgorithm'
    - ' signature'
    argTypes:
    - ByteString
    - TestSignatureAlgorithm
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 82
    functionDepth: 8
    functionLinenumber: 82
    functionLinenumberEnd: 165
    functionName: mozilla::pkix::test::NSSTestKeyPair::SignData
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - assign
    - length
    - static_cast<int>
    - RSA_PKCS1
    - abort
    - PK11_ImportEncryptedPrivateKeyInfoAndReturnKey
    - static_cast<unsigned int>
    - PR_GetError
    - SECITEM_FreeItem
    - ScopedSECKEYPrivateKey::get
    - const_cast<uint8_t*>
    - ScopedPK11SlotInfo::get
    - SEC_SignData
    - data
    - MapPRErrorCodeToResult
    linkageType: ''
    returnType: Result
    signature: "Result SignData(const ByteString& tbs,\n                  const TestSignatureAlgorithm&
      signatureAlgorithm,\n                  /*out*/ ByteString& signature) const
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSSTestKeyPair::NSSTestKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 174
    functionName: mozilla::pkix::test::NSSTestKeyPair::Clone
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - NSSTestKeyPair::NSSTestKeyPair
    linkageType: ''
    returnType: TestKeyPair
    signature: TestKeyPair * Clone() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSS_NoDB_Init
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:52,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: mozilla::pkix::test::InitNSSIfNeeded
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 1
    functionsReached:
    - NSS_NoDB_Init
    - abort
    linkageType: ''
    returnType: void
    signature: void InitNSSIfNeeded()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:62,1
    - Dst: reset
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:63,1
    - Dst: mozilla::pkix::test::GenerateKeyPairInner
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: mozilla::pkix::test::InitReusedKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::InitNSSIfNeeded
    - reset
    - mozilla::pkix::test::GenerateKeyPairInner
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus InitReusedKeyPair()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' aPublicKeyAlg'
    - ' spk'
    - ' aEncryptedPrivateKey'
    - ' aEncryptionAlgorithm'
    - ' aEncryptionParams'
    argTypes:
    - TestPublicKeyAlgorithm
    - ByteString
    - ByteString
    - ByteString
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 80
    functionName: mozilla::pkix::test::NSSTestKeyPair::NSSTestKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void NSSTestKeyPair(const TestPublicKeyAlgorithm& aPublicKeyAlg,\n
      \                const ByteString& spk,\n                 const ByteString&
      aEncryptedPrivateKey,\n                 const ByteString& aEncryptionAlgorithm,\n
      \                const ByteString& aEncryptionParams)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:87,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:113,1
    - Dst: MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:118,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:118,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:122,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:122,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:123,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:123,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:127,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:127,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:128,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:128,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:132,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:132,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:133,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:133,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:143,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:143,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:144,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:144,1
    - Dst: PK11_ImportEncryptedPrivateKeyInfoAndReturnKey
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:149,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:150,1
    - Dst: MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:153,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:153,1
    - Dst: SEC_SignData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:157,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:157,1
    - Dst: static_cast<int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:158,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:158,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:159,1
    - Dst: MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:160,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:160,1
    - Dst: assign
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:162,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:163,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 3
    argNames:
    - ' tbs'
    - ' signatureAlgorithm'
    - ' signature'
    argTypes:
    - ByteString
    - TestSignatureAlgorithm
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 82
    functionDepth: 8
    functionLinenumber: 82
    functionLinenumberEnd: 165
    functionName: mozilla::pkix::test::NSSTestKeyPair::SignData
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - assign
    - length
    - static_cast<int>
    - RSA_PKCS1
    - abort
    - PK11_ImportEncryptedPrivateKeyInfoAndReturnKey
    - static_cast<unsigned int>
    - PR_GetError
    - SECITEM_FreeItem
    - ScopedSECKEYPrivateKey::get
    - const_cast<uint8_t*>
    - ScopedPK11SlotInfo::get
    - SEC_SignData
    - data
    - MapPRErrorCodeToResult
    linkageType: ''
    returnType: Result
    signature: "Result SignData(const ByteString& tbs,\n                  const TestSignatureAlgorithm&
      signatureAlgorithm,\n                  /*out*/ ByteString& signature) const
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSSTestKeyPair::NSSTestKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 174
    functionName: mozilla::pkix::test::NSSTestKeyPair::Clone
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - NSSTestKeyPair::NSSTestKeyPair
    linkageType: ''
    returnType: TestKeyPair
    signature: TestKeyPair * Clone() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SECKEY_CreateSubjectPublicKeyInfo
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:191,1
    - Dst: get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:191,1
    - Dst: DER_ConvertBitString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:196,1
    - Dst: PK11_ExportEncryptedPrivKeyInfo
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:210,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:211,1
    - Dst: get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:212,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:219,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:220,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:222,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:224,1
    - Dst: NSSTestKeyPair::NSSTestKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:217,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - publicKeyAlg
    - ' publicKey'
    - ' privateKey'
    argTypes:
    - TestPublicKeyAlgorithm
    - ScopedSECKEYPublicKey
    - ScopedSECKEYPrivateKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 186
    functionDepth: 7
    functionLinenumber: 186
    functionLinenumberEnd: 226
    functionName: mozilla::pkix::test::CreateTestKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - DER_ConvertBitString
    - ScopedPK11SlotInfo::get
    - SECKEY_CreateSubjectPublicKeyInfo
    - ByteString
    - PK11_ExportEncryptedPrivKeyInfo
    - get
    - NSSTestKeyPair::NSSTestKeyPair
    linkageType: ''
    returnType: TestKeyPair
    signature: "TestKeyPair * CreateTestKeyPair(const TestPublicKeyAlgorithm publicKeyAlg,\n
      \                              const ScopedSECKEYPublicKey& publicKey,\n                               const
      ScopedSECKEYPrivateKey& privateKey)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:235,1
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:247,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:247,1
    - Dst: mozilla::pkix::test::CreateTestKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:252,1
    - Dst: mozilla::pkix::test::RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:252,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:255,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:257,1
    - Dst: PK11_RandomUpdate
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:265,1
    - Dst: const_cast<void*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:266,1
    - Dst: reinterpret_cast<const void*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:266,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:272,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!publicKeyTemp)
      pos:
        line_end: 254
        line_start: 254
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    constantsTouched: []
    func_position:
      end: 273
      start: 230
    functionDepth: 9
    functionLinenumber: 230
    functionLinenumberEnd: 273
    functionName: mozilla::pkix::test::GenerateKeyPairInner
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 2
    functionsReached:
    - PK11_RandomUpdate
    - mozilla::pkix::test::CreateTestKeyPair
    - PK11_GenerateKeyPair
    - abort
    - mozilla::pkix::test::RSA_PKCS1
    - assert
    - const_cast<void*>
    - reinterpret_cast<const void*>
    - PR_GetError
    - ScopedPK11SlotInfo::get
    linkageType: ''
    returnType: TestKeyPair
    signature: 'TestKeyPair *

      GenerateKeyPairInner()'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:235,1
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:247,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:247,1
    - Dst: mozilla::pkix::test::CreateTestKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:252,1
    - Dst: mozilla::pkix::test::RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:252,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:255,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:257,1
    - Dst: PK11_RandomUpdate
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:265,1
    - Dst: const_cast<void*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:266,1
    - Dst: reinterpret_cast<const void*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:266,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:272,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!publicKeyTemp)
      pos:
        line_end: 254
        line_start: 254
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    constantsTouched: []
    func_position:
      end: 273
      start: 230
    functionDepth: 9
    functionLinenumber: 230
    functionLinenumberEnd: 273
    functionName: mozilla::pkix::test::GenerateKeyPairInner
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 2
    functionsReached:
    - PK11_RandomUpdate
    - mozilla::pkix::test::CreateTestKeyPair
    - PK11_GenerateKeyPair
    - abort
    - mozilla::pkix::test::RSA_PKCS1
    - assert
    - const_cast<void*>
    - reinterpret_cast<const void*>
    - PR_GetError
    - ScopedPK11SlotInfo::get
    linkageType: ''
    returnType: TestKeyPair
    signature: 'TestKeyPair *

      GenerateKeyPairInner()'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:280,1
    - Dst: mozilla::pkix::test::GenerateKeyPairInner
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 277
    functionDepth: 10
    functionLinenumber: 277
    functionLinenumberEnd: 282
    functionName: mozilla::pkix::test::GenerateKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::InitNSSIfNeeded
    - mozilla::pkix::test::GenerateKeyPairInner
    linkageType: ''
    returnType: TestKeyPair
    signature: 'TestKeyPair *

      GenerateKeyPair()'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_CallOnce
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:288,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:289,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:291,1
    - Dst: Clone
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (reusedKeyPair)
      pos:
        line_end: 290
        line_start: 290
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    constantsTouched: []
    func_position:
      end: 293
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 293
    functionName: mozilla::pkix::test::CloneReusedKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - PR_CallOnce
    - Clone
    - assert
    - abort
    linkageType: ''
    returnType: TestKeyPair
    signature: 'TestKeyPair *

      CloneReusedKeyPair()'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:298,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:312,1
    - Dst: ByteString::data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:312,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:313,1
    - Dst: ByteString::length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:313,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:316,1
    - Dst: ByteString::data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:316,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:317,1
    - Dst: ByteString::length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:317,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:320,1
    - Dst: ByteString::data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:320,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:321,1
    - Dst: ByteString::length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:321,1
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:327,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:327,1
    - Dst: const_cast<PQGParams*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:328,1
    - Dst: mozilla::pkix::test::CreateTestKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:334,1
    - Dst: mozilla::pkix::test::DSS
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:334,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 295
    functionDepth: 8
    functionLinenumber: 295
    functionLinenumberEnd: 335
    functionName: mozilla::pkix::test::GenerateDSSKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - ByteString::data
    - mozilla::pkix::test::CreateTestKeyPair
    - PK11_GenerateKeyPair
    - static_cast<unsigned int>
    - mozilla::pkix::test::InitNSSIfNeeded
    - const_cast<PQGParams*>
    - mozilla::pkix::test::DSS
    - const_cast<uint8_t*>
    - ScopedPK11SlotInfo::get
    - ByteString::length
    linkageType: ''
    returnType: TestKeyPair
    signature: 'TestKeyPair *

      GenerateDSSKeyPair()'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:341,1
    - Dst: VerifyECDSASignedDataNSS
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - data
    - digestAlgorithm
    - signature
    - subjectPublicKeyInfo
    argTypes:
    - Input
    - DigestAlgorithm
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 337
    functionDepth: 2
    functionLinenumber: 337
    functionLinenumberEnd: 344
    functionName: mozilla::pkix::test::TestVerifyECDSASignedData
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::InitNSSIfNeeded
    - VerifyECDSASignedDataNSS
    linkageType: ''
    returnType: Result
    signature: "Result TestVerifyECDSASignedData(Input data, DigestAlgorithm digestAlgorithm,\n
      \   Input signature, Input subjectPublicKeyInfo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:350,1
    - Dst: VerifyRSAPKCS1SignedDataNSS
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - data
    - digestAlgorithm
    - signature
    - subjectPublicKeyInfo
    argTypes:
    - Input
    - DigestAlgorithm
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 346
    functionDepth: 2
    functionLinenumber: 346
    functionLinenumberEnd: 353
    functionName: mozilla::pkix::test::TestVerifyRSAPKCS1SignedData
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::InitNSSIfNeeded
    - VerifyRSAPKCS1SignedDataNSS
    linkageType: ''
    returnType: Result
    signature: "Result TestVerifyRSAPKCS1SignedData(Input data, DigestAlgorithm digestAlgorithm,\n
      \   Input signature, Input subjectPublicKeyInfo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:359,1
    - Dst: VerifyRSAPSSSignedDataNSS
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - data
    - digestAlgorithm
    - signature
    - subjectPublicKeyInfo
    argTypes:
    - Input
    - DigestAlgorithm
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 355
    functionDepth: 2
    functionLinenumber: 355
    functionLinenumberEnd: 362
    functionName: mozilla::pkix::test::TestVerifyRSAPSSSignedData
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::InitNSSIfNeeded
    - VerifyRSAPSSSignedDataNSS
    linkageType: ''
    returnType: Result
    signature: "Result TestVerifyRSAPSSSignedData(Input data, DigestAlgorithm digestAlgorithm,\n
      \   Input signature, Input subjectPublicKeyInfo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:370,1
    - Dst: DigestBufNSS
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - item
    - digestAlg
    - digestBuf
    - digestBufLen
    argTypes:
    - Input
    - DigestAlgorithm
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 364
    functionDepth: 2
    functionLinenumber: 364
    functionLinenumberEnd: 372
    functionName: mozilla::pkix::test::TestDigestBuf
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 8
    functionsReached:
    - mozilla::pkix::test::InitNSSIfNeeded
    - DigestBufNSS
    linkageType: ''
    returnType: Result
    signature: "Result TestDigestBuf(Input item,\n              DigestAlgorithm digestAlg,\n
      \             /*out*/ uint8_t* digestBuf,\n              size_t digestBufLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSS_NoDB_Init
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:52,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: mozilla::pkix::test::InitNSSIfNeeded
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 8
    functionsReached:
    - NSS_NoDB_Init
    - abort
    linkageType: ''
    returnType: void
    signature: void InitNSSIfNeeded()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:62,1
    - Dst: reset
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:63,1
    - Dst: mozilla::pkix::test::GenerateKeyPairInner
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 10
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: mozilla::pkix::test::InitReusedKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::InitNSSIfNeeded
    - reset
    - mozilla::pkix::test::GenerateKeyPairInner
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus InitReusedKeyPair()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' aPublicKeyAlg'
    - ' spk'
    - ' aEncryptedPrivateKey'
    - ' aEncryptionAlgorithm'
    - ' aEncryptionParams'
    argTypes:
    - TestPublicKeyAlgorithm
    - ByteString
    - ByteString
    - ByteString
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 80
    functionName: mozilla::pkix::test::NSSTestKeyPair::NSSTestKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void NSSTestKeyPair(const TestPublicKeyAlgorithm& aPublicKeyAlg,\n
      \                const ByteString& spk,\n                 const ByteString&
      aEncryptedPrivateKey,\n                 const ByteString& aEncryptionAlgorithm,\n
      \                const ByteString& aEncryptionParams)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:87,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:113,1
    - Dst: MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:118,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:118,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:122,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:122,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:123,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:123,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:127,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:127,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:128,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:128,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:132,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:132,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:133,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:133,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:143,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:143,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:144,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:144,1
    - Dst: PK11_ImportEncryptedPrivateKeyInfoAndReturnKey
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:149,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:150,1
    - Dst: MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:153,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:153,1
    - Dst: SEC_SignData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:157,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:157,1
    - Dst: static_cast<int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:158,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:158,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:159,1
    - Dst: MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:160,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:160,1
    - Dst: assign
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:162,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:163,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 3
    argNames:
    - ' tbs'
    - ' signatureAlgorithm'
    - ' signature'
    argTypes:
    - ByteString
    - TestSignatureAlgorithm
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 82
    functionDepth: 8
    functionLinenumber: 82
    functionLinenumberEnd: 165
    functionName: mozilla::pkix::test::NSSTestKeyPair::SignData
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - assign
    - length
    - static_cast<int>
    - RSA_PKCS1
    - abort
    - PK11_ImportEncryptedPrivateKeyInfoAndReturnKey
    - static_cast<unsigned int>
    - PR_GetError
    - SECITEM_FreeItem
    - ScopedSECKEYPrivateKey::get
    - const_cast<uint8_t*>
    - ScopedPK11SlotInfo::get
    - SEC_SignData
    - data
    - MapPRErrorCodeToResult
    linkageType: ''
    returnType: Result
    signature: "Result SignData(const ByteString& tbs,\n                  const TestSignatureAlgorithm&
      signatureAlgorithm,\n                  /*out*/ ByteString& signature) const
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSSTestKeyPair::NSSTestKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 174
    functionName: mozilla::pkix::test::NSSTestKeyPair::Clone
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - NSSTestKeyPair::NSSTestKeyPair
    linkageType: ''
    returnType: TestKeyPair
    signature: TestKeyPair * Clone() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSS_NoDB_Init
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:52,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: mozilla::pkix::test::InitNSSIfNeeded
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 9
    functionsReached:
    - NSS_NoDB_Init
    - abort
    linkageType: ''
    returnType: void
    signature: void InitNSSIfNeeded()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:62,1
    - Dst: reset
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:63,1
    - Dst: mozilla::pkix::test::GenerateKeyPairInner
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 10
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: mozilla::pkix::test::InitReusedKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::InitNSSIfNeeded
    - reset
    - mozilla::pkix::test::GenerateKeyPairInner
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus InitReusedKeyPair()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' aPublicKeyAlg'
    - ' spk'
    - ' aEncryptedPrivateKey'
    - ' aEncryptionAlgorithm'
    - ' aEncryptionParams'
    argTypes:
    - TestPublicKeyAlgorithm
    - ByteString
    - ByteString
    - ByteString
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 80
    functionName: mozilla::pkix::test::NSSTestKeyPair::NSSTestKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void NSSTestKeyPair(const TestPublicKeyAlgorithm& aPublicKeyAlg,\n
      \                const ByteString& spk,\n                 const ByteString&
      aEncryptedPrivateKey,\n                 const ByteString& aEncryptionAlgorithm,\n
      \                const ByteString& aEncryptionParams)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:87,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:113,1
    - Dst: MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:118,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:118,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:122,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:122,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:123,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:123,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:127,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:127,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:128,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:128,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:132,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:132,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:133,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:133,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:143,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:143,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:144,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:144,1
    - Dst: PK11_ImportEncryptedPrivateKeyInfoAndReturnKey
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:149,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:150,1
    - Dst: MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:153,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:153,1
    - Dst: SEC_SignData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:157,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:157,1
    - Dst: static_cast<int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:158,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:158,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:159,1
    - Dst: MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:160,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:160,1
    - Dst: assign
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:162,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:163,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 3
    argNames:
    - ' tbs'
    - ' signatureAlgorithm'
    - ' signature'
    argTypes:
    - ByteString
    - TestSignatureAlgorithm
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 82
    functionDepth: 8
    functionLinenumber: 82
    functionLinenumberEnd: 165
    functionName: mozilla::pkix::test::NSSTestKeyPair::SignData
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - assign
    - length
    - static_cast<int>
    - RSA_PKCS1
    - abort
    - PK11_ImportEncryptedPrivateKeyInfoAndReturnKey
    - static_cast<unsigned int>
    - PR_GetError
    - SECITEM_FreeItem
    - ScopedSECKEYPrivateKey::get
    - const_cast<uint8_t*>
    - ScopedPK11SlotInfo::get
    - SEC_SignData
    - data
    - MapPRErrorCodeToResult
    linkageType: ''
    returnType: Result
    signature: "Result SignData(const ByteString& tbs,\n                  const TestSignatureAlgorithm&
      signatureAlgorithm,\n                  /*out*/ ByteString& signature) const
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSSTestKeyPair::NSSTestKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 174
    functionName: mozilla::pkix::test::NSSTestKeyPair::Clone
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - NSSTestKeyPair::NSSTestKeyPair
    linkageType: ''
    returnType: TestKeyPair
    signature: TestKeyPair * Clone() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SECKEY_CreateSubjectPublicKeyInfo
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:191,1
    - Dst: get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:191,1
    - Dst: DER_ConvertBitString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:196,1
    - Dst: PK11_ExportEncryptedPrivKeyInfo
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:210,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:211,1
    - Dst: get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:212,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:219,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:220,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:222,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:224,1
    - Dst: NSSTestKeyPair::NSSTestKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:217,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - publicKeyAlg
    - ' publicKey'
    - ' privateKey'
    argTypes:
    - TestPublicKeyAlgorithm
    - ScopedSECKEYPublicKey
    - ScopedSECKEYPrivateKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 186
    functionDepth: 7
    functionLinenumber: 186
    functionLinenumberEnd: 226
    functionName: mozilla::pkix::test::CreateTestKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 3
    functionsReached:
    - DER_ConvertBitString
    - ScopedPK11SlotInfo::get
    - SECKEY_CreateSubjectPublicKeyInfo
    - ByteString
    - PK11_ExportEncryptedPrivKeyInfo
    - get
    - NSSTestKeyPair::NSSTestKeyPair
    linkageType: ''
    returnType: TestKeyPair
    signature: "TestKeyPair * CreateTestKeyPair(const TestPublicKeyAlgorithm publicKeyAlg,\n
      \                              const ScopedSECKEYPublicKey& publicKey,\n                               const
      ScopedSECKEYPrivateKey& privateKey)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:235,1
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:247,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:247,1
    - Dst: mozilla::pkix::test::CreateTestKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:252,1
    - Dst: mozilla::pkix::test::RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:252,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:255,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:257,1
    - Dst: PK11_RandomUpdate
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:265,1
    - Dst: const_cast<void*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:266,1
    - Dst: reinterpret_cast<const void*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:266,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:272,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!publicKeyTemp)
      pos:
        line_end: 254
        line_start: 254
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    constantsTouched: []
    func_position:
      end: 273
      start: 230
    functionDepth: 9
    functionLinenumber: 230
    functionLinenumberEnd: 273
    functionName: mozilla::pkix::test::GenerateKeyPairInner
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 5
    functionsReached:
    - PK11_RandomUpdate
    - mozilla::pkix::test::CreateTestKeyPair
    - PK11_GenerateKeyPair
    - abort
    - mozilla::pkix::test::RSA_PKCS1
    - assert
    - const_cast<void*>
    - reinterpret_cast<const void*>
    - PR_GetError
    - ScopedPK11SlotInfo::get
    linkageType: ''
    returnType: TestKeyPair
    signature: 'TestKeyPair *

      GenerateKeyPairInner()'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:235,1
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:247,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:247,1
    - Dst: mozilla::pkix::test::CreateTestKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:252,1
    - Dst: mozilla::pkix::test::RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:252,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:255,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:257,1
    - Dst: PK11_RandomUpdate
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:265,1
    - Dst: const_cast<void*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:266,1
    - Dst: reinterpret_cast<const void*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:266,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:272,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!publicKeyTemp)
      pos:
        line_end: 254
        line_start: 254
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    constantsTouched: []
    func_position:
      end: 273
      start: 230
    functionDepth: 9
    functionLinenumber: 230
    functionLinenumberEnd: 273
    functionName: mozilla::pkix::test::GenerateKeyPairInner
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 5
    functionsReached:
    - PK11_RandomUpdate
    - mozilla::pkix::test::CreateTestKeyPair
    - PK11_GenerateKeyPair
    - abort
    - mozilla::pkix::test::RSA_PKCS1
    - assert
    - const_cast<void*>
    - reinterpret_cast<const void*>
    - PR_GetError
    - ScopedPK11SlotInfo::get
    linkageType: ''
    returnType: TestKeyPair
    signature: 'TestKeyPair *

      GenerateKeyPairInner()'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:280,1
    - Dst: mozilla::pkix::test::GenerateKeyPairInner
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 277
    functionDepth: 10
    functionLinenumber: 277
    functionLinenumberEnd: 282
    functionName: mozilla::pkix::test::GenerateKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::InitNSSIfNeeded
    - mozilla::pkix::test::GenerateKeyPairInner
    linkageType: ''
    returnType: TestKeyPair
    signature: 'TestKeyPair *

      GenerateKeyPair()'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_CallOnce
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:288,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:289,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:291,1
    - Dst: Clone
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (reusedKeyPair)
      pos:
        line_end: 290
        line_start: 290
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    constantsTouched: []
    func_position:
      end: 293
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 293
    functionName: mozilla::pkix::test::CloneReusedKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - PR_CallOnce
    - Clone
    - assert
    - abort
    linkageType: ''
    returnType: TestKeyPair
    signature: 'TestKeyPair *

      CloneReusedKeyPair()'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:298,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:312,1
    - Dst: ByteString::data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:312,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:313,1
    - Dst: ByteString::length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:313,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:316,1
    - Dst: ByteString::data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:316,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:317,1
    - Dst: ByteString::length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:317,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:320,1
    - Dst: ByteString::data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:320,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:321,1
    - Dst: ByteString::length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:321,1
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:327,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:327,1
    - Dst: const_cast<PQGParams*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:328,1
    - Dst: mozilla::pkix::test::CreateTestKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:334,1
    - Dst: mozilla::pkix::test::DSS
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:334,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 295
    functionDepth: 8
    functionLinenumber: 295
    functionLinenumberEnd: 335
    functionName: mozilla::pkix::test::GenerateDSSKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - ByteString::data
    - mozilla::pkix::test::CreateTestKeyPair
    - PK11_GenerateKeyPair
    - static_cast<unsigned int>
    - mozilla::pkix::test::InitNSSIfNeeded
    - const_cast<PQGParams*>
    - mozilla::pkix::test::DSS
    - const_cast<uint8_t*>
    - ScopedPK11SlotInfo::get
    - ByteString::length
    linkageType: ''
    returnType: TestKeyPair
    signature: 'TestKeyPair *

      GenerateDSSKeyPair()'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:341,1
    - Dst: VerifyECDSASignedDataNSS
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - data
    - digestAlgorithm
    - signature
    - subjectPublicKeyInfo
    argTypes:
    - Input
    - DigestAlgorithm
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 337
    functionDepth: 2
    functionLinenumber: 337
    functionLinenumberEnd: 344
    functionName: mozilla::pkix::test::TestVerifyECDSASignedData
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::InitNSSIfNeeded
    - VerifyECDSASignedDataNSS
    linkageType: ''
    returnType: Result
    signature: "Result TestVerifyECDSASignedData(Input data, DigestAlgorithm digestAlgorithm,\n
      \   Input signature, Input subjectPublicKeyInfo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:350,1
    - Dst: VerifyRSAPKCS1SignedDataNSS
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - data
    - digestAlgorithm
    - signature
    - subjectPublicKeyInfo
    argTypes:
    - Input
    - DigestAlgorithm
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 346
    functionDepth: 2
    functionLinenumber: 346
    functionLinenumberEnd: 353
    functionName: mozilla::pkix::test::TestVerifyRSAPKCS1SignedData
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::InitNSSIfNeeded
    - VerifyRSAPKCS1SignedDataNSS
    linkageType: ''
    returnType: Result
    signature: "Result TestVerifyRSAPKCS1SignedData(Input data, DigestAlgorithm digestAlgorithm,\n
      \   Input signature, Input subjectPublicKeyInfo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:359,1
    - Dst: VerifyRSAPSSSignedDataNSS
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - data
    - digestAlgorithm
    - signature
    - subjectPublicKeyInfo
    argTypes:
    - Input
    - DigestAlgorithm
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 355
    functionDepth: 2
    functionLinenumber: 355
    functionLinenumberEnd: 362
    functionName: mozilla::pkix::test::TestVerifyRSAPSSSignedData
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::InitNSSIfNeeded
    - VerifyRSAPSSSignedDataNSS
    linkageType: ''
    returnType: Result
    signature: "Result TestVerifyRSAPSSSignedData(Input data, DigestAlgorithm digestAlgorithm,\n
      \   Input signature, Input subjectPublicKeyInfo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:370,1
    - Dst: DigestBufNSS
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - item
    - digestAlg
    - digestBuf
    - digestBufLen
    argTypes:
    - Input
    - DigestAlgorithm
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 364
    functionDepth: 2
    functionLinenumber: 364
    functionLinenumberEnd: 372
    functionName: mozilla::pkix::test::TestDigestBuf
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 8
    functionsReached:
    - mozilla::pkix::test::InitNSSIfNeeded
    - DigestBufNSS
    linkageType: ''
    returnType: Result
    signature: "Result TestDigestBuf(Input item,\n              DigestAlgorithm digestAlg,\n
      \             /*out*/ uint8_t* digestBuf,\n              size_t digestBufLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSS_NoDB_Init
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:52,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: mozilla::pkix::test::InitNSSIfNeeded
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 16
    functionsReached:
    - NSS_NoDB_Init
    - abort
    linkageType: ''
    returnType: void
    signature: void InitNSSIfNeeded()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:62,1
    - Dst: reset
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:63,1
    - Dst: mozilla::pkix::test::GenerateKeyPairInner
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 10
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: mozilla::pkix::test::InitReusedKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::InitNSSIfNeeded
    - reset
    - mozilla::pkix::test::GenerateKeyPairInner
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus InitReusedKeyPair()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' aPublicKeyAlg'
    - ' spk'
    - ' aEncryptedPrivateKey'
    - ' aEncryptionAlgorithm'
    - ' aEncryptionParams'
    argTypes:
    - TestPublicKeyAlgorithm
    - ByteString
    - ByteString
    - ByteString
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 80
    functionName: mozilla::pkix::test::NSSTestKeyPair::NSSTestKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void NSSTestKeyPair(const TestPublicKeyAlgorithm& aPublicKeyAlg,\n
      \                const ByteString& spk,\n                 const ByteString&
      aEncryptedPrivateKey,\n                 const ByteString& aEncryptionAlgorithm,\n
      \                const ByteString& aEncryptionParams)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:87,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:113,1
    - Dst: MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:118,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:118,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:122,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:122,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:123,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:123,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:127,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:127,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:128,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:128,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:132,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:132,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:133,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:133,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:143,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:143,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:144,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:144,1
    - Dst: PK11_ImportEncryptedPrivateKeyInfoAndReturnKey
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:149,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:150,1
    - Dst: MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:153,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:153,1
    - Dst: SEC_SignData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:157,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:157,1
    - Dst: static_cast<int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:158,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:158,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:159,1
    - Dst: MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:160,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:160,1
    - Dst: assign
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:162,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:163,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 3
    argNames:
    - ' tbs'
    - ' signatureAlgorithm'
    - ' signature'
    argTypes:
    - ByteString
    - TestSignatureAlgorithm
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 82
    functionDepth: 8
    functionLinenumber: 82
    functionLinenumberEnd: 165
    functionName: mozilla::pkix::test::NSSTestKeyPair::SignData
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - assign
    - length
    - static_cast<int>
    - RSA_PKCS1
    - abort
    - PK11_ImportEncryptedPrivateKeyInfoAndReturnKey
    - static_cast<unsigned int>
    - PR_GetError
    - SECITEM_FreeItem
    - ScopedSECKEYPrivateKey::get
    - const_cast<uint8_t*>
    - ScopedPK11SlotInfo::get
    - SEC_SignData
    - data
    - MapPRErrorCodeToResult
    linkageType: ''
    returnType: Result
    signature: "Result SignData(const ByteString& tbs,\n                  const TestSignatureAlgorithm&
      signatureAlgorithm,\n                  /*out*/ ByteString& signature) const
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSSTestKeyPair::NSSTestKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 174
    functionName: mozilla::pkix::test::NSSTestKeyPair::Clone
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - NSSTestKeyPair::NSSTestKeyPair
    linkageType: ''
    returnType: TestKeyPair
    signature: TestKeyPair * Clone() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSS_NoDB_Init
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:52,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: mozilla::pkix::test::InitNSSIfNeeded
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 17
    functionsReached:
    - NSS_NoDB_Init
    - abort
    linkageType: ''
    returnType: void
    signature: void InitNSSIfNeeded()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:62,1
    - Dst: reset
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:63,1
    - Dst: mozilla::pkix::test::GenerateKeyPairInner
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 10
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: mozilla::pkix::test::InitReusedKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::InitNSSIfNeeded
    - reset
    - mozilla::pkix::test::GenerateKeyPairInner
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus InitReusedKeyPair()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' aPublicKeyAlg'
    - ' spk'
    - ' aEncryptedPrivateKey'
    - ' aEncryptionAlgorithm'
    - ' aEncryptionParams'
    argTypes:
    - TestPublicKeyAlgorithm
    - ByteString
    - ByteString
    - ByteString
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 80
    functionName: mozilla::pkix::test::NSSTestKeyPair::NSSTestKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void NSSTestKeyPair(const TestPublicKeyAlgorithm& aPublicKeyAlg,\n
      \                const ByteString& spk,\n                 const ByteString&
      aEncryptedPrivateKey,\n                 const ByteString& aEncryptionAlgorithm,\n
      \                const ByteString& aEncryptionParams)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:87,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:113,1
    - Dst: MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:118,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:118,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:122,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:122,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:123,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:123,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:127,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:127,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:128,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:128,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:132,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:132,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:133,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:133,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:143,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:143,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:144,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:144,1
    - Dst: PK11_ImportEncryptedPrivateKeyInfoAndReturnKey
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:149,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:150,1
    - Dst: MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:153,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:153,1
    - Dst: SEC_SignData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:157,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:157,1
    - Dst: static_cast<int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:158,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:158,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:159,1
    - Dst: MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:160,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:160,1
    - Dst: assign
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:162,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:163,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 3
    argNames:
    - ' tbs'
    - ' signatureAlgorithm'
    - ' signature'
    argTypes:
    - ByteString
    - TestSignatureAlgorithm
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 82
    functionDepth: 8
    functionLinenumber: 82
    functionLinenumberEnd: 165
    functionName: mozilla::pkix::test::NSSTestKeyPair::SignData
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - assign
    - length
    - static_cast<int>
    - RSA_PKCS1
    - abort
    - PK11_ImportEncryptedPrivateKeyInfoAndReturnKey
    - static_cast<unsigned int>
    - PR_GetError
    - SECITEM_FreeItem
    - ScopedSECKEYPrivateKey::get
    - const_cast<uint8_t*>
    - ScopedPK11SlotInfo::get
    - SEC_SignData
    - data
    - MapPRErrorCodeToResult
    linkageType: ''
    returnType: Result
    signature: "Result SignData(const ByteString& tbs,\n                  const TestSignatureAlgorithm&
      signatureAlgorithm,\n                  /*out*/ ByteString& signature) const
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSSTestKeyPair::NSSTestKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 174
    functionName: mozilla::pkix::test::NSSTestKeyPair::Clone
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - NSSTestKeyPair::NSSTestKeyPair
    linkageType: ''
    returnType: TestKeyPair
    signature: TestKeyPair * Clone() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SECKEY_CreateSubjectPublicKeyInfo
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:191,1
    - Dst: get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:191,1
    - Dst: DER_ConvertBitString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:196,1
    - Dst: PK11_ExportEncryptedPrivKeyInfo
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:210,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:211,1
    - Dst: get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:212,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:219,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:220,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:222,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:224,1
    - Dst: NSSTestKeyPair::NSSTestKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:217,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - publicKeyAlg
    - ' publicKey'
    - ' privateKey'
    argTypes:
    - TestPublicKeyAlgorithm
    - ScopedSECKEYPublicKey
    - ScopedSECKEYPrivateKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 186
    functionDepth: 7
    functionLinenumber: 186
    functionLinenumberEnd: 226
    functionName: mozilla::pkix::test::CreateTestKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 6
    functionsReached:
    - DER_ConvertBitString
    - ScopedPK11SlotInfo::get
    - SECKEY_CreateSubjectPublicKeyInfo
    - ByteString
    - PK11_ExportEncryptedPrivKeyInfo
    - get
    - NSSTestKeyPair::NSSTestKeyPair
    linkageType: ''
    returnType: TestKeyPair
    signature: "TestKeyPair * CreateTestKeyPair(const TestPublicKeyAlgorithm publicKeyAlg,\n
      \                              const ScopedSECKEYPublicKey& publicKey,\n                               const
      ScopedSECKEYPrivateKey& privateKey)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:235,1
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:247,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:247,1
    - Dst: mozilla::pkix::test::CreateTestKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:252,1
    - Dst: mozilla::pkix::test::RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:252,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:255,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:257,1
    - Dst: PK11_RandomUpdate
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:265,1
    - Dst: const_cast<void*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:266,1
    - Dst: reinterpret_cast<const void*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:266,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:272,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!publicKeyTemp)
      pos:
        line_end: 254
        line_start: 254
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    constantsTouched: []
    func_position:
      end: 273
      start: 230
    functionDepth: 9
    functionLinenumber: 230
    functionLinenumberEnd: 273
    functionName: mozilla::pkix::test::GenerateKeyPairInner
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 8
    functionsReached:
    - PK11_RandomUpdate
    - mozilla::pkix::test::CreateTestKeyPair
    - PK11_GenerateKeyPair
    - abort
    - mozilla::pkix::test::RSA_PKCS1
    - assert
    - const_cast<void*>
    - reinterpret_cast<const void*>
    - PR_GetError
    - ScopedPK11SlotInfo::get
    linkageType: ''
    returnType: TestKeyPair
    signature: 'TestKeyPair *

      GenerateKeyPairInner()'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:235,1
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:247,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:247,1
    - Dst: mozilla::pkix::test::CreateTestKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:252,1
    - Dst: mozilla::pkix::test::RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:252,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:255,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:257,1
    - Dst: PK11_RandomUpdate
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:265,1
    - Dst: const_cast<void*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:266,1
    - Dst: reinterpret_cast<const void*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:266,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:272,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!publicKeyTemp)
      pos:
        line_end: 254
        line_start: 254
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    constantsTouched: []
    func_position:
      end: 273
      start: 230
    functionDepth: 9
    functionLinenumber: 230
    functionLinenumberEnd: 273
    functionName: mozilla::pkix::test::GenerateKeyPairInner
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 8
    functionsReached:
    - PK11_RandomUpdate
    - mozilla::pkix::test::CreateTestKeyPair
    - PK11_GenerateKeyPair
    - abort
    - mozilla::pkix::test::RSA_PKCS1
    - assert
    - const_cast<void*>
    - reinterpret_cast<const void*>
    - PR_GetError
    - ScopedPK11SlotInfo::get
    linkageType: ''
    returnType: TestKeyPair
    signature: 'TestKeyPair *

      GenerateKeyPairInner()'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:280,1
    - Dst: mozilla::pkix::test::GenerateKeyPairInner
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 277
    functionDepth: 10
    functionLinenumber: 277
    functionLinenumberEnd: 282
    functionName: mozilla::pkix::test::GenerateKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::InitNSSIfNeeded
    - mozilla::pkix::test::GenerateKeyPairInner
    linkageType: ''
    returnType: TestKeyPair
    signature: 'TestKeyPair *

      GenerateKeyPair()'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_CallOnce
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:288,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:289,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:291,1
    - Dst: Clone
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (reusedKeyPair)
      pos:
        line_end: 290
        line_start: 290
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    constantsTouched: []
    func_position:
      end: 293
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 293
    functionName: mozilla::pkix::test::CloneReusedKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - PR_CallOnce
    - Clone
    - assert
    - abort
    linkageType: ''
    returnType: TestKeyPair
    signature: 'TestKeyPair *

      CloneReusedKeyPair()'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:298,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:312,1
    - Dst: ByteString::data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:312,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:313,1
    - Dst: ByteString::length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:313,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:316,1
    - Dst: ByteString::data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:316,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:317,1
    - Dst: ByteString::length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:317,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:320,1
    - Dst: ByteString::data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:320,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:321,1
    - Dst: ByteString::length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:321,1
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:327,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:327,1
    - Dst: const_cast<PQGParams*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:328,1
    - Dst: mozilla::pkix::test::CreateTestKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:334,1
    - Dst: mozilla::pkix::test::DSS
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:334,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 295
    functionDepth: 8
    functionLinenumber: 295
    functionLinenumberEnd: 335
    functionName: mozilla::pkix::test::GenerateDSSKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - ByteString::data
    - mozilla::pkix::test::CreateTestKeyPair
    - PK11_GenerateKeyPair
    - static_cast<unsigned int>
    - mozilla::pkix::test::InitNSSIfNeeded
    - const_cast<PQGParams*>
    - mozilla::pkix::test::DSS
    - const_cast<uint8_t*>
    - ScopedPK11SlotInfo::get
    - ByteString::length
    linkageType: ''
    returnType: TestKeyPair
    signature: 'TestKeyPair *

      GenerateDSSKeyPair()'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:341,1
    - Dst: VerifyECDSASignedDataNSS
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - data
    - digestAlgorithm
    - signature
    - subjectPublicKeyInfo
    argTypes:
    - Input
    - DigestAlgorithm
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 337
    functionDepth: 2
    functionLinenumber: 337
    functionLinenumberEnd: 344
    functionName: mozilla::pkix::test::TestVerifyECDSASignedData
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::InitNSSIfNeeded
    - VerifyECDSASignedDataNSS
    linkageType: ''
    returnType: Result
    signature: "Result TestVerifyECDSASignedData(Input data, DigestAlgorithm digestAlgorithm,\n
      \   Input signature, Input subjectPublicKeyInfo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:350,1
    - Dst: VerifyRSAPKCS1SignedDataNSS
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - data
    - digestAlgorithm
    - signature
    - subjectPublicKeyInfo
    argTypes:
    - Input
    - DigestAlgorithm
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 346
    functionDepth: 2
    functionLinenumber: 346
    functionLinenumberEnd: 353
    functionName: mozilla::pkix::test::TestVerifyRSAPKCS1SignedData
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::InitNSSIfNeeded
    - VerifyRSAPKCS1SignedDataNSS
    linkageType: ''
    returnType: Result
    signature: "Result TestVerifyRSAPKCS1SignedData(Input data, DigestAlgorithm digestAlgorithm,\n
      \   Input signature, Input subjectPublicKeyInfo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:359,1
    - Dst: VerifyRSAPSSSignedDataNSS
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - data
    - digestAlgorithm
    - signature
    - subjectPublicKeyInfo
    argTypes:
    - Input
    - DigestAlgorithm
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 355
    functionDepth: 2
    functionLinenumber: 355
    functionLinenumberEnd: 362
    functionName: mozilla::pkix::test::TestVerifyRSAPSSSignedData
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::InitNSSIfNeeded
    - VerifyRSAPSSSignedDataNSS
    linkageType: ''
    returnType: Result
    signature: "Result TestVerifyRSAPSSSignedData(Input data, DigestAlgorithm digestAlgorithm,\n
      \   Input signature, Input subjectPublicKeyInfo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:370,1
    - Dst: DigestBufNSS
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - item
    - digestAlg
    - digestBuf
    - digestBufLen
    argTypes:
    - Input
    - DigestAlgorithm
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 364
    functionDepth: 2
    functionLinenumber: 364
    functionLinenumberEnd: 372
    functionName: mozilla::pkix::test::TestDigestBuf
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 8
    functionsReached:
    - mozilla::pkix::test::InitNSSIfNeeded
    - DigestBufNSS
    linkageType: ''
    returnType: Result
    signature: "Result TestDigestBuf(Input item,\n              DigestAlgorithm digestAlg,\n
      \             /*out*/ uint8_t* digestBuf,\n              size_t digestBufLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSS_NoDB_Init
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:52,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: mozilla::pkix::test::InitNSSIfNeeded
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 24
    functionsReached:
    - NSS_NoDB_Init
    - abort
    linkageType: ''
    returnType: void
    signature: void InitNSSIfNeeded()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:62,1
    - Dst: reset
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:63,1
    - Dst: mozilla::pkix::test::GenerateKeyPairInner
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 10
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: mozilla::pkix::test::InitReusedKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::InitNSSIfNeeded
    - reset
    - mozilla::pkix::test::GenerateKeyPairInner
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus InitReusedKeyPair()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' aPublicKeyAlg'
    - ' spk'
    - ' aEncryptedPrivateKey'
    - ' aEncryptionAlgorithm'
    - ' aEncryptionParams'
    argTypes:
    - TestPublicKeyAlgorithm
    - ByteString
    - ByteString
    - ByteString
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 80
    functionName: mozilla::pkix::test::NSSTestKeyPair::NSSTestKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void NSSTestKeyPair(const TestPublicKeyAlgorithm& aPublicKeyAlg,\n
      \                const ByteString& spk,\n                 const ByteString&
      aEncryptedPrivateKey,\n                 const ByteString& aEncryptionAlgorithm,\n
      \                const ByteString& aEncryptionParams)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:87,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:113,1
    - Dst: MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:118,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:118,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:122,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:122,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:123,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:123,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:127,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:127,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:128,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:128,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:132,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:132,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:133,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:133,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:143,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:143,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:144,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:144,1
    - Dst: PK11_ImportEncryptedPrivateKeyInfoAndReturnKey
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:149,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:150,1
    - Dst: MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:153,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:153,1
    - Dst: SEC_SignData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:157,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:157,1
    - Dst: static_cast<int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:158,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:158,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:159,1
    - Dst: MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:160,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:160,1
    - Dst: assign
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:162,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:163,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 3
    argNames:
    - ' tbs'
    - ' signatureAlgorithm'
    - ' signature'
    argTypes:
    - ByteString
    - TestSignatureAlgorithm
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 82
    functionDepth: 8
    functionLinenumber: 82
    functionLinenumberEnd: 165
    functionName: mozilla::pkix::test::NSSTestKeyPair::SignData
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - assign
    - length
    - static_cast<int>
    - RSA_PKCS1
    - abort
    - PK11_ImportEncryptedPrivateKeyInfoAndReturnKey
    - static_cast<unsigned int>
    - PR_GetError
    - SECITEM_FreeItem
    - ScopedSECKEYPrivateKey::get
    - const_cast<uint8_t*>
    - ScopedPK11SlotInfo::get
    - SEC_SignData
    - data
    - MapPRErrorCodeToResult
    linkageType: ''
    returnType: Result
    signature: "Result SignData(const ByteString& tbs,\n                  const TestSignatureAlgorithm&
      signatureAlgorithm,\n                  /*out*/ ByteString& signature) const
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSSTestKeyPair::NSSTestKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 174
    functionName: mozilla::pkix::test::NSSTestKeyPair::Clone
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - NSSTestKeyPair::NSSTestKeyPair
    linkageType: ''
    returnType: TestKeyPair
    signature: TestKeyPair * Clone() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSS_NoDB_Init
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:52,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: mozilla::pkix::test::InitNSSIfNeeded
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 25
    functionsReached:
    - NSS_NoDB_Init
    - abort
    linkageType: ''
    returnType: void
    signature: void InitNSSIfNeeded()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:62,1
    - Dst: reset
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:63,1
    - Dst: mozilla::pkix::test::GenerateKeyPairInner
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 10
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: mozilla::pkix::test::InitReusedKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::InitNSSIfNeeded
    - reset
    - mozilla::pkix::test::GenerateKeyPairInner
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus InitReusedKeyPair()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' aPublicKeyAlg'
    - ' spk'
    - ' aEncryptedPrivateKey'
    - ' aEncryptionAlgorithm'
    - ' aEncryptionParams'
    argTypes:
    - TestPublicKeyAlgorithm
    - ByteString
    - ByteString
    - ByteString
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 80
    functionName: mozilla::pkix::test::NSSTestKeyPair::NSSTestKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void NSSTestKeyPair(const TestPublicKeyAlgorithm& aPublicKeyAlg,\n
      \                const ByteString& spk,\n                 const ByteString&
      aEncryptedPrivateKey,\n                 const ByteString& aEncryptionAlgorithm,\n
      \                const ByteString& aEncryptionParams)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:87,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:113,1
    - Dst: MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:118,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:118,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:122,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:122,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:123,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:123,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:127,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:127,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:128,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:128,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:132,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:132,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:133,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:133,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:143,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:143,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:144,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:144,1
    - Dst: PK11_ImportEncryptedPrivateKeyInfoAndReturnKey
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:149,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:150,1
    - Dst: MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:153,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:153,1
    - Dst: SEC_SignData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:157,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:157,1
    - Dst: static_cast<int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:158,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:158,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:159,1
    - Dst: MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:160,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:160,1
    - Dst: assign
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:162,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:163,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 3
    argNames:
    - ' tbs'
    - ' signatureAlgorithm'
    - ' signature'
    argTypes:
    - ByteString
    - TestSignatureAlgorithm
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 82
    functionDepth: 8
    functionLinenumber: 82
    functionLinenumberEnd: 165
    functionName: mozilla::pkix::test::NSSTestKeyPair::SignData
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - assign
    - length
    - static_cast<int>
    - RSA_PKCS1
    - abort
    - PK11_ImportEncryptedPrivateKeyInfoAndReturnKey
    - static_cast<unsigned int>
    - PR_GetError
    - SECITEM_FreeItem
    - ScopedSECKEYPrivateKey::get
    - const_cast<uint8_t*>
    - ScopedPK11SlotInfo::get
    - SEC_SignData
    - data
    - MapPRErrorCodeToResult
    linkageType: ''
    returnType: Result
    signature: "Result SignData(const ByteString& tbs,\n                  const TestSignatureAlgorithm&
      signatureAlgorithm,\n                  /*out*/ ByteString& signature) const
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSSTestKeyPair::NSSTestKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 174
    functionName: mozilla::pkix::test::NSSTestKeyPair::Clone
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - NSSTestKeyPair::NSSTestKeyPair
    linkageType: ''
    returnType: TestKeyPair
    signature: TestKeyPair * Clone() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SECKEY_CreateSubjectPublicKeyInfo
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:191,1
    - Dst: get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:191,1
    - Dst: DER_ConvertBitString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:196,1
    - Dst: PK11_ExportEncryptedPrivKeyInfo
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:210,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:211,1
    - Dst: get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:212,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:219,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:220,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:222,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:224,1
    - Dst: NSSTestKeyPair::NSSTestKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:217,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - publicKeyAlg
    - ' publicKey'
    - ' privateKey'
    argTypes:
    - TestPublicKeyAlgorithm
    - ScopedSECKEYPublicKey
    - ScopedSECKEYPrivateKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 186
    functionDepth: 7
    functionLinenumber: 186
    functionLinenumberEnd: 226
    functionName: mozilla::pkix::test::CreateTestKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 9
    functionsReached:
    - DER_ConvertBitString
    - ScopedPK11SlotInfo::get
    - SECKEY_CreateSubjectPublicKeyInfo
    - ByteString
    - PK11_ExportEncryptedPrivKeyInfo
    - get
    - NSSTestKeyPair::NSSTestKeyPair
    linkageType: ''
    returnType: TestKeyPair
    signature: "TestKeyPair * CreateTestKeyPair(const TestPublicKeyAlgorithm publicKeyAlg,\n
      \                              const ScopedSECKEYPublicKey& publicKey,\n                               const
      ScopedSECKEYPrivateKey& privateKey)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:235,1
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:247,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:247,1
    - Dst: mozilla::pkix::test::CreateTestKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:252,1
    - Dst: mozilla::pkix::test::RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:252,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:255,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:257,1
    - Dst: PK11_RandomUpdate
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:265,1
    - Dst: const_cast<void*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:266,1
    - Dst: reinterpret_cast<const void*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:266,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:272,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!publicKeyTemp)
      pos:
        line_end: 254
        line_start: 254
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    constantsTouched: []
    func_position:
      end: 273
      start: 230
    functionDepth: 9
    functionLinenumber: 230
    functionLinenumberEnd: 273
    functionName: mozilla::pkix::test::GenerateKeyPairInner
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 11
    functionsReached:
    - PK11_RandomUpdate
    - mozilla::pkix::test::CreateTestKeyPair
    - PK11_GenerateKeyPair
    - abort
    - mozilla::pkix::test::RSA_PKCS1
    - assert
    - const_cast<void*>
    - reinterpret_cast<const void*>
    - PR_GetError
    - ScopedPK11SlotInfo::get
    linkageType: ''
    returnType: TestKeyPair
    signature: 'TestKeyPair *

      GenerateKeyPairInner()'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:235,1
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:247,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:247,1
    - Dst: mozilla::pkix::test::CreateTestKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:252,1
    - Dst: mozilla::pkix::test::RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:252,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:255,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:257,1
    - Dst: PK11_RandomUpdate
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:265,1
    - Dst: const_cast<void*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:266,1
    - Dst: reinterpret_cast<const void*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:266,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:272,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!publicKeyTemp)
      pos:
        line_end: 254
        line_start: 254
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    constantsTouched: []
    func_position:
      end: 273
      start: 230
    functionDepth: 9
    functionLinenumber: 230
    functionLinenumberEnd: 273
    functionName: mozilla::pkix::test::GenerateKeyPairInner
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 11
    functionsReached:
    - PK11_RandomUpdate
    - mozilla::pkix::test::CreateTestKeyPair
    - PK11_GenerateKeyPair
    - abort
    - mozilla::pkix::test::RSA_PKCS1
    - assert
    - const_cast<void*>
    - reinterpret_cast<const void*>
    - PR_GetError
    - ScopedPK11SlotInfo::get
    linkageType: ''
    returnType: TestKeyPair
    signature: 'TestKeyPair *

      GenerateKeyPairInner()'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:280,1
    - Dst: mozilla::pkix::test::GenerateKeyPairInner
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 277
    functionDepth: 10
    functionLinenumber: 277
    functionLinenumberEnd: 282
    functionName: mozilla::pkix::test::GenerateKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::InitNSSIfNeeded
    - mozilla::pkix::test::GenerateKeyPairInner
    linkageType: ''
    returnType: TestKeyPair
    signature: 'TestKeyPair *

      GenerateKeyPair()'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_CallOnce
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:288,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:289,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:291,1
    - Dst: Clone
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (reusedKeyPair)
      pos:
        line_end: 290
        line_start: 290
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    constantsTouched: []
    func_position:
      end: 293
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 293
    functionName: mozilla::pkix::test::CloneReusedKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - PR_CallOnce
    - Clone
    - assert
    - abort
    linkageType: ''
    returnType: TestKeyPair
    signature: 'TestKeyPair *

      CloneReusedKeyPair()'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:298,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:312,1
    - Dst: ByteString::data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:312,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:313,1
    - Dst: ByteString::length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:313,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:316,1
    - Dst: ByteString::data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:316,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:317,1
    - Dst: ByteString::length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:317,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:320,1
    - Dst: ByteString::data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:320,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:321,1
    - Dst: ByteString::length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:321,1
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:327,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:327,1
    - Dst: const_cast<PQGParams*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:328,1
    - Dst: mozilla::pkix::test::CreateTestKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:334,1
    - Dst: mozilla::pkix::test::DSS
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:334,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 295
    functionDepth: 8
    functionLinenumber: 295
    functionLinenumberEnd: 335
    functionName: mozilla::pkix::test::GenerateDSSKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - ByteString::data
    - mozilla::pkix::test::CreateTestKeyPair
    - PK11_GenerateKeyPair
    - static_cast<unsigned int>
    - mozilla::pkix::test::InitNSSIfNeeded
    - const_cast<PQGParams*>
    - mozilla::pkix::test::DSS
    - const_cast<uint8_t*>
    - ScopedPK11SlotInfo::get
    - ByteString::length
    linkageType: ''
    returnType: TestKeyPair
    signature: 'TestKeyPair *

      GenerateDSSKeyPair()'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:341,1
    - Dst: VerifyECDSASignedDataNSS
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - data
    - digestAlgorithm
    - signature
    - subjectPublicKeyInfo
    argTypes:
    - Input
    - DigestAlgorithm
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 337
    functionDepth: 2
    functionLinenumber: 337
    functionLinenumberEnd: 344
    functionName: mozilla::pkix::test::TestVerifyECDSASignedData
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::InitNSSIfNeeded
    - VerifyECDSASignedDataNSS
    linkageType: ''
    returnType: Result
    signature: "Result TestVerifyECDSASignedData(Input data, DigestAlgorithm digestAlgorithm,\n
      \   Input signature, Input subjectPublicKeyInfo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:350,1
    - Dst: VerifyRSAPKCS1SignedDataNSS
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - data
    - digestAlgorithm
    - signature
    - subjectPublicKeyInfo
    argTypes:
    - Input
    - DigestAlgorithm
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 346
    functionDepth: 2
    functionLinenumber: 346
    functionLinenumberEnd: 353
    functionName: mozilla::pkix::test::TestVerifyRSAPKCS1SignedData
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::InitNSSIfNeeded
    - VerifyRSAPKCS1SignedDataNSS
    linkageType: ''
    returnType: Result
    signature: "Result TestVerifyRSAPKCS1SignedData(Input data, DigestAlgorithm digestAlgorithm,\n
      \   Input signature, Input subjectPublicKeyInfo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:359,1
    - Dst: VerifyRSAPSSSignedDataNSS
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - data
    - digestAlgorithm
    - signature
    - subjectPublicKeyInfo
    argTypes:
    - Input
    - DigestAlgorithm
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 355
    functionDepth: 2
    functionLinenumber: 355
    functionLinenumberEnd: 362
    functionName: mozilla::pkix::test::TestVerifyRSAPSSSignedData
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::InitNSSIfNeeded
    - VerifyRSAPSSSignedDataNSS
    linkageType: ''
    returnType: Result
    signature: "Result TestVerifyRSAPSSSignedData(Input data, DigestAlgorithm digestAlgorithm,\n
      \   Input signature, Input subjectPublicKeyInfo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:370,1
    - Dst: DigestBufNSS
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - item
    - digestAlg
    - digestBuf
    - digestBufLen
    argTypes:
    - Input
    - DigestAlgorithm
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 364
    functionDepth: 2
    functionLinenumber: 364
    functionLinenumberEnd: 372
    functionName: mozilla::pkix::test::TestDigestBuf
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 8
    functionsReached:
    - mozilla::pkix::test::InitNSSIfNeeded
    - DigestBufNSS
    linkageType: ''
    returnType: Result
    signature: "Result TestDigestBuf(Input item,\n              DigestAlgorithm digestAlg,\n
      \             /*out*/ uint8_t* digestBuf,\n              size_t digestBufLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSS_NoDB_Init
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:52,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: mozilla::pkix::test::InitNSSIfNeeded
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 32
    functionsReached:
    - NSS_NoDB_Init
    - abort
    linkageType: ''
    returnType: void
    signature: void InitNSSIfNeeded()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:62,1
    - Dst: reset
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:63,1
    - Dst: mozilla::pkix::test::GenerateKeyPairInner
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 10
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: mozilla::pkix::test::InitReusedKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::InitNSSIfNeeded
    - reset
    - mozilla::pkix::test::GenerateKeyPairInner
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus InitReusedKeyPair()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' aPublicKeyAlg'
    - ' spk'
    - ' aEncryptedPrivateKey'
    - ' aEncryptionAlgorithm'
    - ' aEncryptionParams'
    argTypes:
    - TestPublicKeyAlgorithm
    - ByteString
    - ByteString
    - ByteString
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 80
    functionName: mozilla::pkix::test::NSSTestKeyPair::NSSTestKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void NSSTestKeyPair(const TestPublicKeyAlgorithm& aPublicKeyAlg,\n
      \                const ByteString& spk,\n                 const ByteString&
      aEncryptedPrivateKey,\n                 const ByteString& aEncryptionAlgorithm,\n
      \                const ByteString& aEncryptionParams)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:87,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:113,1
    - Dst: MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:118,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:118,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:122,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:122,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:123,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:123,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:127,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:127,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:128,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:128,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:132,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:132,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:133,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:133,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:143,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:143,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:144,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:144,1
    - Dst: PK11_ImportEncryptedPrivateKeyInfoAndReturnKey
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:149,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:150,1
    - Dst: MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:153,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:153,1
    - Dst: SEC_SignData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:157,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:157,1
    - Dst: static_cast<int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:158,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:158,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:159,1
    - Dst: MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:160,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:160,1
    - Dst: assign
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:162,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:163,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 3
    argNames:
    - ' tbs'
    - ' signatureAlgorithm'
    - ' signature'
    argTypes:
    - ByteString
    - TestSignatureAlgorithm
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 82
    functionDepth: 8
    functionLinenumber: 82
    functionLinenumberEnd: 165
    functionName: mozilla::pkix::test::NSSTestKeyPair::SignData
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - assign
    - length
    - static_cast<int>
    - RSA_PKCS1
    - abort
    - PK11_ImportEncryptedPrivateKeyInfoAndReturnKey
    - static_cast<unsigned int>
    - PR_GetError
    - SECITEM_FreeItem
    - ScopedSECKEYPrivateKey::get
    - const_cast<uint8_t*>
    - ScopedPK11SlotInfo::get
    - SEC_SignData
    - data
    - MapPRErrorCodeToResult
    linkageType: ''
    returnType: Result
    signature: "Result SignData(const ByteString& tbs,\n                  const TestSignatureAlgorithm&
      signatureAlgorithm,\n                  /*out*/ ByteString& signature) const
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSSTestKeyPair::NSSTestKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 174
    functionName: mozilla::pkix::test::NSSTestKeyPair::Clone
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - NSSTestKeyPair::NSSTestKeyPair
    linkageType: ''
    returnType: TestKeyPair
    signature: TestKeyPair * Clone() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSS_NoDB_Init
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:52,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: mozilla::pkix::test::InitNSSIfNeeded
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 33
    functionsReached:
    - NSS_NoDB_Init
    - abort
    linkageType: ''
    returnType: void
    signature: void InitNSSIfNeeded()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:62,1
    - Dst: reset
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:63,1
    - Dst: mozilla::pkix::test::GenerateKeyPairInner
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 10
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: mozilla::pkix::test::InitReusedKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::InitNSSIfNeeded
    - reset
    - mozilla::pkix::test::GenerateKeyPairInner
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus InitReusedKeyPair()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' aPublicKeyAlg'
    - ' spk'
    - ' aEncryptedPrivateKey'
    - ' aEncryptionAlgorithm'
    - ' aEncryptionParams'
    argTypes:
    - TestPublicKeyAlgorithm
    - ByteString
    - ByteString
    - ByteString
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 80
    functionName: mozilla::pkix::test::NSSTestKeyPair::NSSTestKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void NSSTestKeyPair(const TestPublicKeyAlgorithm& aPublicKeyAlg,\n
      \                const ByteString& spk,\n                 const ByteString&
      aEncryptedPrivateKey,\n                 const ByteString& aEncryptionAlgorithm,\n
      \                const ByteString& aEncryptionParams)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:87,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:113,1
    - Dst: MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:118,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:118,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:122,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:122,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:123,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:123,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:127,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:127,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:128,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:128,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:132,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:132,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:133,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:133,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:143,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:143,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:144,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:144,1
    - Dst: PK11_ImportEncryptedPrivateKeyInfoAndReturnKey
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:149,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:150,1
    - Dst: MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:153,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:153,1
    - Dst: SEC_SignData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:157,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:157,1
    - Dst: static_cast<int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:158,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:158,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:159,1
    - Dst: MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:160,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:160,1
    - Dst: assign
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:162,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:163,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 3
    argNames:
    - ' tbs'
    - ' signatureAlgorithm'
    - ' signature'
    argTypes:
    - ByteString
    - TestSignatureAlgorithm
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 82
    functionDepth: 8
    functionLinenumber: 82
    functionLinenumberEnd: 165
    functionName: mozilla::pkix::test::NSSTestKeyPair::SignData
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - assign
    - length
    - static_cast<int>
    - RSA_PKCS1
    - abort
    - PK11_ImportEncryptedPrivateKeyInfoAndReturnKey
    - static_cast<unsigned int>
    - PR_GetError
    - SECITEM_FreeItem
    - ScopedSECKEYPrivateKey::get
    - const_cast<uint8_t*>
    - ScopedPK11SlotInfo::get
    - SEC_SignData
    - data
    - MapPRErrorCodeToResult
    linkageType: ''
    returnType: Result
    signature: "Result SignData(const ByteString& tbs,\n                  const TestSignatureAlgorithm&
      signatureAlgorithm,\n                  /*out*/ ByteString& signature) const
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSSTestKeyPair::NSSTestKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 174
    functionName: mozilla::pkix::test::NSSTestKeyPair::Clone
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - NSSTestKeyPair::NSSTestKeyPair
    linkageType: ''
    returnType: TestKeyPair
    signature: TestKeyPair * Clone() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SECKEY_CreateSubjectPublicKeyInfo
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:191,1
    - Dst: get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:191,1
    - Dst: DER_ConvertBitString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:196,1
    - Dst: PK11_ExportEncryptedPrivKeyInfo
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:210,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:211,1
    - Dst: get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:212,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:219,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:220,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:222,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:224,1
    - Dst: NSSTestKeyPair::NSSTestKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:217,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - publicKeyAlg
    - ' publicKey'
    - ' privateKey'
    argTypes:
    - TestPublicKeyAlgorithm
    - ScopedSECKEYPublicKey
    - ScopedSECKEYPrivateKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 186
    functionDepth: 7
    functionLinenumber: 186
    functionLinenumberEnd: 226
    functionName: mozilla::pkix::test::CreateTestKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 12
    functionsReached:
    - DER_ConvertBitString
    - ScopedPK11SlotInfo::get
    - SECKEY_CreateSubjectPublicKeyInfo
    - ByteString
    - PK11_ExportEncryptedPrivKeyInfo
    - get
    - NSSTestKeyPair::NSSTestKeyPair
    linkageType: ''
    returnType: TestKeyPair
    signature: "TestKeyPair * CreateTestKeyPair(const TestPublicKeyAlgorithm publicKeyAlg,\n
      \                              const ScopedSECKEYPublicKey& publicKey,\n                               const
      ScopedSECKEYPrivateKey& privateKey)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:235,1
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:247,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:247,1
    - Dst: mozilla::pkix::test::CreateTestKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:252,1
    - Dst: mozilla::pkix::test::RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:252,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:255,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:257,1
    - Dst: PK11_RandomUpdate
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:265,1
    - Dst: const_cast<void*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:266,1
    - Dst: reinterpret_cast<const void*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:266,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:272,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!publicKeyTemp)
      pos:
        line_end: 254
        line_start: 254
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    constantsTouched: []
    func_position:
      end: 273
      start: 230
    functionDepth: 9
    functionLinenumber: 230
    functionLinenumberEnd: 273
    functionName: mozilla::pkix::test::GenerateKeyPairInner
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 14
    functionsReached:
    - PK11_RandomUpdate
    - mozilla::pkix::test::CreateTestKeyPair
    - PK11_GenerateKeyPair
    - abort
    - mozilla::pkix::test::RSA_PKCS1
    - assert
    - const_cast<void*>
    - reinterpret_cast<const void*>
    - PR_GetError
    - ScopedPK11SlotInfo::get
    linkageType: ''
    returnType: TestKeyPair
    signature: 'TestKeyPair *

      GenerateKeyPairInner()'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:235,1
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:247,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:247,1
    - Dst: mozilla::pkix::test::CreateTestKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:252,1
    - Dst: mozilla::pkix::test::RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:252,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:255,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:257,1
    - Dst: PK11_RandomUpdate
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:265,1
    - Dst: const_cast<void*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:266,1
    - Dst: reinterpret_cast<const void*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:266,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:272,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!publicKeyTemp)
      pos:
        line_end: 254
        line_start: 254
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    constantsTouched: []
    func_position:
      end: 273
      start: 230
    functionDepth: 9
    functionLinenumber: 230
    functionLinenumberEnd: 273
    functionName: mozilla::pkix::test::GenerateKeyPairInner
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 14
    functionsReached:
    - PK11_RandomUpdate
    - mozilla::pkix::test::CreateTestKeyPair
    - PK11_GenerateKeyPair
    - abort
    - mozilla::pkix::test::RSA_PKCS1
    - assert
    - const_cast<void*>
    - reinterpret_cast<const void*>
    - PR_GetError
    - ScopedPK11SlotInfo::get
    linkageType: ''
    returnType: TestKeyPair
    signature: 'TestKeyPair *

      GenerateKeyPairInner()'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:280,1
    - Dst: mozilla::pkix::test::GenerateKeyPairInner
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 277
    functionDepth: 10
    functionLinenumber: 277
    functionLinenumberEnd: 282
    functionName: mozilla::pkix::test::GenerateKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::InitNSSIfNeeded
    - mozilla::pkix::test::GenerateKeyPairInner
    linkageType: ''
    returnType: TestKeyPair
    signature: 'TestKeyPair *

      GenerateKeyPair()'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_CallOnce
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:288,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:289,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:291,1
    - Dst: Clone
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (reusedKeyPair)
      pos:
        line_end: 290
        line_start: 290
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    constantsTouched: []
    func_position:
      end: 293
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 293
    functionName: mozilla::pkix::test::CloneReusedKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - PR_CallOnce
    - Clone
    - assert
    - abort
    linkageType: ''
    returnType: TestKeyPair
    signature: 'TestKeyPair *

      CloneReusedKeyPair()'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:298,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:312,1
    - Dst: ByteString::data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:312,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:313,1
    - Dst: ByteString::length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:313,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:316,1
    - Dst: ByteString::data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:316,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:317,1
    - Dst: ByteString::length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:317,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:320,1
    - Dst: ByteString::data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:320,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:321,1
    - Dst: ByteString::length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:321,1
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:327,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:327,1
    - Dst: const_cast<PQGParams*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:328,1
    - Dst: mozilla::pkix::test::CreateTestKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:334,1
    - Dst: mozilla::pkix::test::DSS
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:334,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 295
    functionDepth: 8
    functionLinenumber: 295
    functionLinenumberEnd: 335
    functionName: mozilla::pkix::test::GenerateDSSKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - ByteString::data
    - mozilla::pkix::test::CreateTestKeyPair
    - PK11_GenerateKeyPair
    - static_cast<unsigned int>
    - mozilla::pkix::test::InitNSSIfNeeded
    - const_cast<PQGParams*>
    - mozilla::pkix::test::DSS
    - const_cast<uint8_t*>
    - ScopedPK11SlotInfo::get
    - ByteString::length
    linkageType: ''
    returnType: TestKeyPair
    signature: 'TestKeyPair *

      GenerateDSSKeyPair()'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:341,1
    - Dst: VerifyECDSASignedDataNSS
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - data
    - digestAlgorithm
    - signature
    - subjectPublicKeyInfo
    argTypes:
    - Input
    - DigestAlgorithm
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 337
    functionDepth: 2
    functionLinenumber: 337
    functionLinenumberEnd: 344
    functionName: mozilla::pkix::test::TestVerifyECDSASignedData
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::InitNSSIfNeeded
    - VerifyECDSASignedDataNSS
    linkageType: ''
    returnType: Result
    signature: "Result TestVerifyECDSASignedData(Input data, DigestAlgorithm digestAlgorithm,\n
      \   Input signature, Input subjectPublicKeyInfo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:350,1
    - Dst: VerifyRSAPKCS1SignedDataNSS
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - data
    - digestAlgorithm
    - signature
    - subjectPublicKeyInfo
    argTypes:
    - Input
    - DigestAlgorithm
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 346
    functionDepth: 2
    functionLinenumber: 346
    functionLinenumberEnd: 353
    functionName: mozilla::pkix::test::TestVerifyRSAPKCS1SignedData
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::InitNSSIfNeeded
    - VerifyRSAPKCS1SignedDataNSS
    linkageType: ''
    returnType: Result
    signature: "Result TestVerifyRSAPKCS1SignedData(Input data, DigestAlgorithm digestAlgorithm,\n
      \   Input signature, Input subjectPublicKeyInfo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:359,1
    - Dst: VerifyRSAPSSSignedDataNSS
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - data
    - digestAlgorithm
    - signature
    - subjectPublicKeyInfo
    argTypes:
    - Input
    - DigestAlgorithm
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 355
    functionDepth: 2
    functionLinenumber: 355
    functionLinenumberEnd: 362
    functionName: mozilla::pkix::test::TestVerifyRSAPSSSignedData
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::InitNSSIfNeeded
    - VerifyRSAPSSSignedDataNSS
    linkageType: ''
    returnType: Result
    signature: "Result TestVerifyRSAPSSSignedData(Input data, DigestAlgorithm digestAlgorithm,\n
      \   Input signature, Input subjectPublicKeyInfo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:370,1
    - Dst: DigestBufNSS
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - item
    - digestAlg
    - digestBuf
    - digestBufLen
    argTypes:
    - Input
    - DigestAlgorithm
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 364
    functionDepth: 2
    functionLinenumber: 364
    functionLinenumberEnd: 372
    functionName: mozilla::pkix::test::TestDigestBuf
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 8
    functionsReached:
    - mozilla::pkix::test::InitNSSIfNeeded
    - DigestBufNSS
    linkageType: ''
    returnType: Result
    signature: "Result TestDigestBuf(Input item,\n              DigestAlgorithm digestAlg,\n
      \             /*out*/ uint8_t* digestBuf,\n              size_t digestBufLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSS_NoDB_Init
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:52,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: mozilla::pkix::test::InitNSSIfNeeded
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 40
    functionsReached:
    - NSS_NoDB_Init
    - abort
    linkageType: ''
    returnType: void
    signature: void InitNSSIfNeeded()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:62,1
    - Dst: reset
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:63,1
    - Dst: mozilla::pkix::test::GenerateKeyPairInner
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 10
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: mozilla::pkix::test::InitReusedKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::InitNSSIfNeeded
    - reset
    - mozilla::pkix::test::GenerateKeyPairInner
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus InitReusedKeyPair()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' aPublicKeyAlg'
    - ' spk'
    - ' aEncryptedPrivateKey'
    - ' aEncryptionAlgorithm'
    - ' aEncryptionParams'
    argTypes:
    - TestPublicKeyAlgorithm
    - ByteString
    - ByteString
    - ByteString
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 80
    functionName: mozilla::pkix::test::NSSTestKeyPair::NSSTestKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void NSSTestKeyPair(const TestPublicKeyAlgorithm& aPublicKeyAlg,\n
      \                const ByteString& spk,\n                 const ByteString&
      aEncryptedPrivateKey,\n                 const ByteString& aEncryptionAlgorithm,\n
      \                const ByteString& aEncryptionParams)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:87,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:113,1
    - Dst: MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:118,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:118,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:122,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:122,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:123,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:123,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:127,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:127,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:128,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:128,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:132,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:132,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:133,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:133,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:143,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:143,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:144,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:144,1
    - Dst: PK11_ImportEncryptedPrivateKeyInfoAndReturnKey
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:149,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:150,1
    - Dst: MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:153,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:153,1
    - Dst: SEC_SignData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:157,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:157,1
    - Dst: static_cast<int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:158,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:158,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:159,1
    - Dst: MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:160,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:160,1
    - Dst: assign
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:162,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:163,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 3
    argNames:
    - ' tbs'
    - ' signatureAlgorithm'
    - ' signature'
    argTypes:
    - ByteString
    - TestSignatureAlgorithm
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 82
    functionDepth: 8
    functionLinenumber: 82
    functionLinenumberEnd: 165
    functionName: mozilla::pkix::test::NSSTestKeyPair::SignData
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - assign
    - length
    - static_cast<int>
    - RSA_PKCS1
    - abort
    - PK11_ImportEncryptedPrivateKeyInfoAndReturnKey
    - static_cast<unsigned int>
    - PR_GetError
    - SECITEM_FreeItem
    - ScopedSECKEYPrivateKey::get
    - const_cast<uint8_t*>
    - ScopedPK11SlotInfo::get
    - SEC_SignData
    - data
    - MapPRErrorCodeToResult
    linkageType: ''
    returnType: Result
    signature: "Result SignData(const ByteString& tbs,\n                  const TestSignatureAlgorithm&
      signatureAlgorithm,\n                  /*out*/ ByteString& signature) const
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSSTestKeyPair::NSSTestKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 174
    functionName: mozilla::pkix::test::NSSTestKeyPair::Clone
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - NSSTestKeyPair::NSSTestKeyPair
    linkageType: ''
    returnType: TestKeyPair
    signature: TestKeyPair * Clone() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSS_NoDB_Init
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:52,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: mozilla::pkix::test::InitNSSIfNeeded
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 41
    functionsReached:
    - NSS_NoDB_Init
    - abort
    linkageType: ''
    returnType: void
    signature: void InitNSSIfNeeded()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:62,1
    - Dst: reset
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:63,1
    - Dst: mozilla::pkix::test::GenerateKeyPairInner
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 10
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: mozilla::pkix::test::InitReusedKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::InitNSSIfNeeded
    - reset
    - mozilla::pkix::test::GenerateKeyPairInner
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus InitReusedKeyPair()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' aPublicKeyAlg'
    - ' spk'
    - ' aEncryptedPrivateKey'
    - ' aEncryptionAlgorithm'
    - ' aEncryptionParams'
    argTypes:
    - TestPublicKeyAlgorithm
    - ByteString
    - ByteString
    - ByteString
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 80
    functionName: mozilla::pkix::test::NSSTestKeyPair::NSSTestKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void NSSTestKeyPair(const TestPublicKeyAlgorithm& aPublicKeyAlg,\n
      \                const ByteString& spk,\n                 const ByteString&
      aEncryptedPrivateKey,\n                 const ByteString& aEncryptionAlgorithm,\n
      \                const ByteString& aEncryptionParams)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:87,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:113,1
    - Dst: MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:118,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:118,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:122,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:122,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:123,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:123,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:127,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:127,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:128,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:128,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:132,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:132,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:133,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:133,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:143,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:143,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:144,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:144,1
    - Dst: PK11_ImportEncryptedPrivateKeyInfoAndReturnKey
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:149,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:150,1
    - Dst: MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:153,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:153,1
    - Dst: SEC_SignData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:157,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:157,1
    - Dst: static_cast<int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:158,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:158,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:159,1
    - Dst: MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:160,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:160,1
    - Dst: assign
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:162,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:163,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 3
    argNames:
    - ' tbs'
    - ' signatureAlgorithm'
    - ' signature'
    argTypes:
    - ByteString
    - TestSignatureAlgorithm
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 82
    functionDepth: 8
    functionLinenumber: 82
    functionLinenumberEnd: 165
    functionName: mozilla::pkix::test::NSSTestKeyPair::SignData
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - assign
    - length
    - static_cast<int>
    - RSA_PKCS1
    - abort
    - PK11_ImportEncryptedPrivateKeyInfoAndReturnKey
    - static_cast<unsigned int>
    - PR_GetError
    - SECITEM_FreeItem
    - ScopedSECKEYPrivateKey::get
    - const_cast<uint8_t*>
    - ScopedPK11SlotInfo::get
    - SEC_SignData
    - data
    - MapPRErrorCodeToResult
    linkageType: ''
    returnType: Result
    signature: "Result SignData(const ByteString& tbs,\n                  const TestSignatureAlgorithm&
      signatureAlgorithm,\n                  /*out*/ ByteString& signature) const
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSSTestKeyPair::NSSTestKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 174
    functionName: mozilla::pkix::test::NSSTestKeyPair::Clone
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - NSSTestKeyPair::NSSTestKeyPair
    linkageType: ''
    returnType: TestKeyPair
    signature: TestKeyPair * Clone() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SECKEY_CreateSubjectPublicKeyInfo
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:191,1
    - Dst: get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:191,1
    - Dst: DER_ConvertBitString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:196,1
    - Dst: PK11_ExportEncryptedPrivKeyInfo
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:210,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:211,1
    - Dst: get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:212,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:219,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:220,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:222,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:224,1
    - Dst: NSSTestKeyPair::NSSTestKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:217,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - publicKeyAlg
    - ' publicKey'
    - ' privateKey'
    argTypes:
    - TestPublicKeyAlgorithm
    - ScopedSECKEYPublicKey
    - ScopedSECKEYPrivateKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 186
    functionDepth: 7
    functionLinenumber: 186
    functionLinenumberEnd: 226
    functionName: mozilla::pkix::test::CreateTestKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 15
    functionsReached:
    - DER_ConvertBitString
    - ScopedPK11SlotInfo::get
    - SECKEY_CreateSubjectPublicKeyInfo
    - ByteString
    - PK11_ExportEncryptedPrivKeyInfo
    - get
    - NSSTestKeyPair::NSSTestKeyPair
    linkageType: ''
    returnType: TestKeyPair
    signature: "TestKeyPair * CreateTestKeyPair(const TestPublicKeyAlgorithm publicKeyAlg,\n
      \                              const ScopedSECKEYPublicKey& publicKey,\n                               const
      ScopedSECKEYPrivateKey& privateKey)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:235,1
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:247,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:247,1
    - Dst: mozilla::pkix::test::CreateTestKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:252,1
    - Dst: mozilla::pkix::test::RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:252,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:255,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:257,1
    - Dst: PK11_RandomUpdate
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:265,1
    - Dst: const_cast<void*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:266,1
    - Dst: reinterpret_cast<const void*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:266,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:272,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!publicKeyTemp)
      pos:
        line_end: 254
        line_start: 254
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    constantsTouched: []
    func_position:
      end: 273
      start: 230
    functionDepth: 9
    functionLinenumber: 230
    functionLinenumberEnd: 273
    functionName: mozilla::pkix::test::GenerateKeyPairInner
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 17
    functionsReached:
    - PK11_RandomUpdate
    - mozilla::pkix::test::CreateTestKeyPair
    - PK11_GenerateKeyPair
    - abort
    - mozilla::pkix::test::RSA_PKCS1
    - assert
    - const_cast<void*>
    - reinterpret_cast<const void*>
    - PR_GetError
    - ScopedPK11SlotInfo::get
    linkageType: ''
    returnType: TestKeyPair
    signature: 'TestKeyPair *

      GenerateKeyPairInner()'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:235,1
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:247,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:247,1
    - Dst: mozilla::pkix::test::CreateTestKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:252,1
    - Dst: mozilla::pkix::test::RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:252,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:255,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:257,1
    - Dst: PK11_RandomUpdate
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:265,1
    - Dst: const_cast<void*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:266,1
    - Dst: reinterpret_cast<const void*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:266,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:272,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!publicKeyTemp)
      pos:
        line_end: 254
        line_start: 254
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    constantsTouched: []
    func_position:
      end: 273
      start: 230
    functionDepth: 9
    functionLinenumber: 230
    functionLinenumberEnd: 273
    functionName: mozilla::pkix::test::GenerateKeyPairInner
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 17
    functionsReached:
    - PK11_RandomUpdate
    - mozilla::pkix::test::CreateTestKeyPair
    - PK11_GenerateKeyPair
    - abort
    - mozilla::pkix::test::RSA_PKCS1
    - assert
    - const_cast<void*>
    - reinterpret_cast<const void*>
    - PR_GetError
    - ScopedPK11SlotInfo::get
    linkageType: ''
    returnType: TestKeyPair
    signature: 'TestKeyPair *

      GenerateKeyPairInner()'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:280,1
    - Dst: mozilla::pkix::test::GenerateKeyPairInner
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 277
    functionDepth: 10
    functionLinenumber: 277
    functionLinenumberEnd: 282
    functionName: mozilla::pkix::test::GenerateKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::InitNSSIfNeeded
    - mozilla::pkix::test::GenerateKeyPairInner
    linkageType: ''
    returnType: TestKeyPair
    signature: 'TestKeyPair *

      GenerateKeyPair()'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_CallOnce
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:288,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:289,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:291,1
    - Dst: Clone
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (reusedKeyPair)
      pos:
        line_end: 290
        line_start: 290
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    constantsTouched: []
    func_position:
      end: 293
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 293
    functionName: mozilla::pkix::test::CloneReusedKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - PR_CallOnce
    - Clone
    - assert
    - abort
    linkageType: ''
    returnType: TestKeyPair
    signature: 'TestKeyPair *

      CloneReusedKeyPair()'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:298,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:312,1
    - Dst: ByteString::data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:312,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:313,1
    - Dst: ByteString::length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:313,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:316,1
    - Dst: ByteString::data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:316,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:317,1
    - Dst: ByteString::length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:317,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:320,1
    - Dst: ByteString::data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:320,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:321,1
    - Dst: ByteString::length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:321,1
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:327,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:327,1
    - Dst: const_cast<PQGParams*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:328,1
    - Dst: mozilla::pkix::test::CreateTestKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:334,1
    - Dst: mozilla::pkix::test::DSS
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:334,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 295
    functionDepth: 8
    functionLinenumber: 295
    functionLinenumberEnd: 335
    functionName: mozilla::pkix::test::GenerateDSSKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - ByteString::data
    - mozilla::pkix::test::CreateTestKeyPair
    - PK11_GenerateKeyPair
    - static_cast<unsigned int>
    - mozilla::pkix::test::InitNSSIfNeeded
    - const_cast<PQGParams*>
    - mozilla::pkix::test::DSS
    - const_cast<uint8_t*>
    - ScopedPK11SlotInfo::get
    - ByteString::length
    linkageType: ''
    returnType: TestKeyPair
    signature: 'TestKeyPair *

      GenerateDSSKeyPair()'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:341,1
    - Dst: VerifyECDSASignedDataNSS
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - data
    - digestAlgorithm
    - signature
    - subjectPublicKeyInfo
    argTypes:
    - Input
    - DigestAlgorithm
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 337
    functionDepth: 2
    functionLinenumber: 337
    functionLinenumberEnd: 344
    functionName: mozilla::pkix::test::TestVerifyECDSASignedData
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::InitNSSIfNeeded
    - VerifyECDSASignedDataNSS
    linkageType: ''
    returnType: Result
    signature: "Result TestVerifyECDSASignedData(Input data, DigestAlgorithm digestAlgorithm,\n
      \   Input signature, Input subjectPublicKeyInfo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:350,1
    - Dst: VerifyRSAPKCS1SignedDataNSS
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - data
    - digestAlgorithm
    - signature
    - subjectPublicKeyInfo
    argTypes:
    - Input
    - DigestAlgorithm
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 346
    functionDepth: 2
    functionLinenumber: 346
    functionLinenumberEnd: 353
    functionName: mozilla::pkix::test::TestVerifyRSAPKCS1SignedData
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::InitNSSIfNeeded
    - VerifyRSAPKCS1SignedDataNSS
    linkageType: ''
    returnType: Result
    signature: "Result TestVerifyRSAPKCS1SignedData(Input data, DigestAlgorithm digestAlgorithm,\n
      \   Input signature, Input subjectPublicKeyInfo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:359,1
    - Dst: VerifyRSAPSSSignedDataNSS
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - data
    - digestAlgorithm
    - signature
    - subjectPublicKeyInfo
    argTypes:
    - Input
    - DigestAlgorithm
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 355
    functionDepth: 2
    functionLinenumber: 355
    functionLinenumberEnd: 362
    functionName: mozilla::pkix::test::TestVerifyRSAPSSSignedData
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::InitNSSIfNeeded
    - VerifyRSAPSSSignedDataNSS
    linkageType: ''
    returnType: Result
    signature: "Result TestVerifyRSAPSSSignedData(Input data, DigestAlgorithm digestAlgorithm,\n
      \   Input signature, Input subjectPublicKeyInfo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:370,1
    - Dst: DigestBufNSS
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - item
    - digestAlg
    - digestBuf
    - digestBufLen
    argTypes:
    - Input
    - DigestAlgorithm
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 364
    functionDepth: 2
    functionLinenumber: 364
    functionLinenumberEnd: 372
    functionName: mozilla::pkix::test::TestDigestBuf
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 8
    functionsReached:
    - mozilla::pkix::test::InitNSSIfNeeded
    - DigestBufNSS
    linkageType: ''
    returnType: Result
    signature: "Result TestDigestBuf(Input item,\n              DigestAlgorithm digestAlg,\n
      \             /*out*/ uint8_t* digestBuf,\n              size_t digestBufLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSS_NoDB_Init
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:52,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: mozilla::pkix::test::InitNSSIfNeeded
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 48
    functionsReached:
    - NSS_NoDB_Init
    - abort
    linkageType: ''
    returnType: void
    signature: void InitNSSIfNeeded()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:62,1
    - Dst: reset
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:63,1
    - Dst: mozilla::pkix::test::GenerateKeyPairInner
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 10
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: mozilla::pkix::test::InitReusedKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::InitNSSIfNeeded
    - reset
    - mozilla::pkix::test::GenerateKeyPairInner
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus InitReusedKeyPair()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' aPublicKeyAlg'
    - ' spk'
    - ' aEncryptedPrivateKey'
    - ' aEncryptionAlgorithm'
    - ' aEncryptionParams'
    argTypes:
    - TestPublicKeyAlgorithm
    - ByteString
    - ByteString
    - ByteString
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 80
    functionName: mozilla::pkix::test::NSSTestKeyPair::NSSTestKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void NSSTestKeyPair(const TestPublicKeyAlgorithm& aPublicKeyAlg,\n
      \                const ByteString& spk,\n                 const ByteString&
      aEncryptedPrivateKey,\n                 const ByteString& aEncryptionAlgorithm,\n
      \                const ByteString& aEncryptionParams)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:87,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:113,1
    - Dst: MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:118,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:118,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:122,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:122,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:123,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:123,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:127,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:127,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:128,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:128,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:132,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:132,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:133,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:133,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:143,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:143,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:144,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:144,1
    - Dst: PK11_ImportEncryptedPrivateKeyInfoAndReturnKey
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:149,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:150,1
    - Dst: MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:153,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:153,1
    - Dst: SEC_SignData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:157,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:157,1
    - Dst: static_cast<int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:158,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:158,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:159,1
    - Dst: MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:160,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:160,1
    - Dst: assign
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:162,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:163,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 3
    argNames:
    - ' tbs'
    - ' signatureAlgorithm'
    - ' signature'
    argTypes:
    - ByteString
    - TestSignatureAlgorithm
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 82
    functionDepth: 8
    functionLinenumber: 82
    functionLinenumberEnd: 165
    functionName: mozilla::pkix::test::NSSTestKeyPair::SignData
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - assign
    - length
    - static_cast<int>
    - RSA_PKCS1
    - abort
    - PK11_ImportEncryptedPrivateKeyInfoAndReturnKey
    - static_cast<unsigned int>
    - PR_GetError
    - SECITEM_FreeItem
    - ScopedSECKEYPrivateKey::get
    - const_cast<uint8_t*>
    - ScopedPK11SlotInfo::get
    - SEC_SignData
    - data
    - MapPRErrorCodeToResult
    linkageType: ''
    returnType: Result
    signature: "Result SignData(const ByteString& tbs,\n                  const TestSignatureAlgorithm&
      signatureAlgorithm,\n                  /*out*/ ByteString& signature) const
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSSTestKeyPair::NSSTestKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 174
    functionName: mozilla::pkix::test::NSSTestKeyPair::Clone
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - NSSTestKeyPair::NSSTestKeyPair
    linkageType: ''
    returnType: TestKeyPair
    signature: TestKeyPair * Clone() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSS_NoDB_Init
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:52,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: mozilla::pkix::test::InitNSSIfNeeded
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 49
    functionsReached:
    - NSS_NoDB_Init
    - abort
    linkageType: ''
    returnType: void
    signature: void InitNSSIfNeeded()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:62,1
    - Dst: reset
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:63,1
    - Dst: mozilla::pkix::test::GenerateKeyPairInner
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 10
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: mozilla::pkix::test::InitReusedKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::InitNSSIfNeeded
    - reset
    - mozilla::pkix::test::GenerateKeyPairInner
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus InitReusedKeyPair()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' aPublicKeyAlg'
    - ' spk'
    - ' aEncryptedPrivateKey'
    - ' aEncryptionAlgorithm'
    - ' aEncryptionParams'
    argTypes:
    - TestPublicKeyAlgorithm
    - ByteString
    - ByteString
    - ByteString
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 80
    functionName: mozilla::pkix::test::NSSTestKeyPair::NSSTestKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void NSSTestKeyPair(const TestPublicKeyAlgorithm& aPublicKeyAlg,\n
      \                const ByteString& spk,\n                 const ByteString&
      aEncryptedPrivateKey,\n                 const ByteString& aEncryptionAlgorithm,\n
      \                const ByteString& aEncryptionParams)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:87,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:113,1
    - Dst: MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:118,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:118,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:122,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:122,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:123,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:123,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:127,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:127,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:128,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:128,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:132,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:132,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:133,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:133,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:143,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:143,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:144,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:144,1
    - Dst: PK11_ImportEncryptedPrivateKeyInfoAndReturnKey
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:149,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:150,1
    - Dst: MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:153,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:153,1
    - Dst: SEC_SignData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:157,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:157,1
    - Dst: static_cast<int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:158,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:158,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:159,1
    - Dst: MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:160,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:160,1
    - Dst: assign
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:162,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:163,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 3
    argNames:
    - ' tbs'
    - ' signatureAlgorithm'
    - ' signature'
    argTypes:
    - ByteString
    - TestSignatureAlgorithm
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 82
    functionDepth: 8
    functionLinenumber: 82
    functionLinenumberEnd: 165
    functionName: mozilla::pkix::test::NSSTestKeyPair::SignData
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - assign
    - length
    - static_cast<int>
    - RSA_PKCS1
    - abort
    - PK11_ImportEncryptedPrivateKeyInfoAndReturnKey
    - static_cast<unsigned int>
    - PR_GetError
    - SECITEM_FreeItem
    - ScopedSECKEYPrivateKey::get
    - const_cast<uint8_t*>
    - ScopedPK11SlotInfo::get
    - SEC_SignData
    - data
    - MapPRErrorCodeToResult
    linkageType: ''
    returnType: Result
    signature: "Result SignData(const ByteString& tbs,\n                  const TestSignatureAlgorithm&
      signatureAlgorithm,\n                  /*out*/ ByteString& signature) const
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSSTestKeyPair::NSSTestKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 174
    functionName: mozilla::pkix::test::NSSTestKeyPair::Clone
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - NSSTestKeyPair::NSSTestKeyPair
    linkageType: ''
    returnType: TestKeyPair
    signature: TestKeyPair * Clone() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SECKEY_CreateSubjectPublicKeyInfo
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:191,1
    - Dst: get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:191,1
    - Dst: DER_ConvertBitString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:196,1
    - Dst: PK11_ExportEncryptedPrivKeyInfo
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:210,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:211,1
    - Dst: get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:212,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:219,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:220,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:222,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:224,1
    - Dst: NSSTestKeyPair::NSSTestKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:217,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - publicKeyAlg
    - ' publicKey'
    - ' privateKey'
    argTypes:
    - TestPublicKeyAlgorithm
    - ScopedSECKEYPublicKey
    - ScopedSECKEYPrivateKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 186
    functionDepth: 7
    functionLinenumber: 186
    functionLinenumberEnd: 226
    functionName: mozilla::pkix::test::CreateTestKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 18
    functionsReached:
    - DER_ConvertBitString
    - ScopedPK11SlotInfo::get
    - SECKEY_CreateSubjectPublicKeyInfo
    - ByteString
    - PK11_ExportEncryptedPrivKeyInfo
    - get
    - NSSTestKeyPair::NSSTestKeyPair
    linkageType: ''
    returnType: TestKeyPair
    signature: "TestKeyPair * CreateTestKeyPair(const TestPublicKeyAlgorithm publicKeyAlg,\n
      \                              const ScopedSECKEYPublicKey& publicKey,\n                               const
      ScopedSECKEYPrivateKey& privateKey)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:235,1
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:247,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:247,1
    - Dst: mozilla::pkix::test::CreateTestKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:252,1
    - Dst: mozilla::pkix::test::RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:252,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:255,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:257,1
    - Dst: PK11_RandomUpdate
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:265,1
    - Dst: const_cast<void*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:266,1
    - Dst: reinterpret_cast<const void*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:266,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:272,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!publicKeyTemp)
      pos:
        line_end: 254
        line_start: 254
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    constantsTouched: []
    func_position:
      end: 273
      start: 230
    functionDepth: 9
    functionLinenumber: 230
    functionLinenumberEnd: 273
    functionName: mozilla::pkix::test::GenerateKeyPairInner
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 20
    functionsReached:
    - PK11_RandomUpdate
    - mozilla::pkix::test::CreateTestKeyPair
    - PK11_GenerateKeyPair
    - abort
    - mozilla::pkix::test::RSA_PKCS1
    - assert
    - const_cast<void*>
    - reinterpret_cast<const void*>
    - PR_GetError
    - ScopedPK11SlotInfo::get
    linkageType: ''
    returnType: TestKeyPair
    signature: 'TestKeyPair *

      GenerateKeyPairInner()'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:235,1
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:247,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:247,1
    - Dst: mozilla::pkix::test::CreateTestKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:252,1
    - Dst: mozilla::pkix::test::RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:252,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:255,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:257,1
    - Dst: PK11_RandomUpdate
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:265,1
    - Dst: const_cast<void*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:266,1
    - Dst: reinterpret_cast<const void*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:266,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:272,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!publicKeyTemp)
      pos:
        line_end: 254
        line_start: 254
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    constantsTouched: []
    func_position:
      end: 273
      start: 230
    functionDepth: 9
    functionLinenumber: 230
    functionLinenumberEnd: 273
    functionName: mozilla::pkix::test::GenerateKeyPairInner
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 20
    functionsReached:
    - PK11_RandomUpdate
    - mozilla::pkix::test::CreateTestKeyPair
    - PK11_GenerateKeyPair
    - abort
    - mozilla::pkix::test::RSA_PKCS1
    - assert
    - const_cast<void*>
    - reinterpret_cast<const void*>
    - PR_GetError
    - ScopedPK11SlotInfo::get
    linkageType: ''
    returnType: TestKeyPair
    signature: 'TestKeyPair *

      GenerateKeyPairInner()'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:280,1
    - Dst: mozilla::pkix::test::GenerateKeyPairInner
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 277
    functionDepth: 10
    functionLinenumber: 277
    functionLinenumberEnd: 282
    functionName: mozilla::pkix::test::GenerateKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::InitNSSIfNeeded
    - mozilla::pkix::test::GenerateKeyPairInner
    linkageType: ''
    returnType: TestKeyPair
    signature: 'TestKeyPair *

      GenerateKeyPair()'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_CallOnce
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:288,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:289,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:291,1
    - Dst: Clone
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (reusedKeyPair)
      pos:
        line_end: 290
        line_start: 290
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    constantsTouched: []
    func_position:
      end: 293
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 293
    functionName: mozilla::pkix::test::CloneReusedKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - PR_CallOnce
    - Clone
    - assert
    - abort
    linkageType: ''
    returnType: TestKeyPair
    signature: 'TestKeyPair *

      CloneReusedKeyPair()'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:298,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:312,1
    - Dst: ByteString::data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:312,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:313,1
    - Dst: ByteString::length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:313,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:316,1
    - Dst: ByteString::data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:316,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:317,1
    - Dst: ByteString::length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:317,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:320,1
    - Dst: ByteString::data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:320,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:321,1
    - Dst: ByteString::length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:321,1
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:327,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:327,1
    - Dst: const_cast<PQGParams*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:328,1
    - Dst: mozilla::pkix::test::CreateTestKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:334,1
    - Dst: mozilla::pkix::test::DSS
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:334,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 295
    functionDepth: 8
    functionLinenumber: 295
    functionLinenumberEnd: 335
    functionName: mozilla::pkix::test::GenerateDSSKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - ByteString::data
    - mozilla::pkix::test::CreateTestKeyPair
    - PK11_GenerateKeyPair
    - static_cast<unsigned int>
    - mozilla::pkix::test::InitNSSIfNeeded
    - const_cast<PQGParams*>
    - mozilla::pkix::test::DSS
    - const_cast<uint8_t*>
    - ScopedPK11SlotInfo::get
    - ByteString::length
    linkageType: ''
    returnType: TestKeyPair
    signature: 'TestKeyPair *

      GenerateDSSKeyPair()'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:341,1
    - Dst: VerifyECDSASignedDataNSS
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - data
    - digestAlgorithm
    - signature
    - subjectPublicKeyInfo
    argTypes:
    - Input
    - DigestAlgorithm
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 337
    functionDepth: 2
    functionLinenumber: 337
    functionLinenumberEnd: 344
    functionName: mozilla::pkix::test::TestVerifyECDSASignedData
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::InitNSSIfNeeded
    - VerifyECDSASignedDataNSS
    linkageType: ''
    returnType: Result
    signature: "Result TestVerifyECDSASignedData(Input data, DigestAlgorithm digestAlgorithm,\n
      \   Input signature, Input subjectPublicKeyInfo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:350,1
    - Dst: VerifyRSAPKCS1SignedDataNSS
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - data
    - digestAlgorithm
    - signature
    - subjectPublicKeyInfo
    argTypes:
    - Input
    - DigestAlgorithm
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 346
    functionDepth: 2
    functionLinenumber: 346
    functionLinenumberEnd: 353
    functionName: mozilla::pkix::test::TestVerifyRSAPKCS1SignedData
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::InitNSSIfNeeded
    - VerifyRSAPKCS1SignedDataNSS
    linkageType: ''
    returnType: Result
    signature: "Result TestVerifyRSAPKCS1SignedData(Input data, DigestAlgorithm digestAlgorithm,\n
      \   Input signature, Input subjectPublicKeyInfo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:359,1
    - Dst: VerifyRSAPSSSignedDataNSS
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - data
    - digestAlgorithm
    - signature
    - subjectPublicKeyInfo
    argTypes:
    - Input
    - DigestAlgorithm
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 355
    functionDepth: 2
    functionLinenumber: 355
    functionLinenumberEnd: 362
    functionName: mozilla::pkix::test::TestVerifyRSAPSSSignedData
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::InitNSSIfNeeded
    - VerifyRSAPSSSignedDataNSS
    linkageType: ''
    returnType: Result
    signature: "Result TestVerifyRSAPSSSignedData(Input data, DigestAlgorithm digestAlgorithm,\n
      \   Input signature, Input subjectPublicKeyInfo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:370,1
    - Dst: DigestBufNSS
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - item
    - digestAlg
    - digestBuf
    - digestBufLen
    argTypes:
    - Input
    - DigestAlgorithm
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 364
    functionDepth: 2
    functionLinenumber: 364
    functionLinenumberEnd: 372
    functionName: mozilla::pkix::test::TestDigestBuf
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 8
    functionsReached:
    - mozilla::pkix::test::InitNSSIfNeeded
    - DigestBufNSS
    linkageType: ''
    returnType: Result
    signature: "Result TestDigestBuf(Input item,\n              DigestAlgorithm digestAlg,\n
      \             /*out*/ uint8_t* digestBuf,\n              size_t digestBufLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSS_NoDB_Init
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:52,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: mozilla::pkix::test::InitNSSIfNeeded
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 56
    functionsReached:
    - NSS_NoDB_Init
    - abort
    linkageType: ''
    returnType: void
    signature: void InitNSSIfNeeded()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:62,1
    - Dst: reset
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:63,1
    - Dst: mozilla::pkix::test::GenerateKeyPairInner
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 10
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: mozilla::pkix::test::InitReusedKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::InitNSSIfNeeded
    - reset
    - mozilla::pkix::test::GenerateKeyPairInner
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus InitReusedKeyPair()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' aPublicKeyAlg'
    - ' spk'
    - ' aEncryptedPrivateKey'
    - ' aEncryptionAlgorithm'
    - ' aEncryptionParams'
    argTypes:
    - TestPublicKeyAlgorithm
    - ByteString
    - ByteString
    - ByteString
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 80
    functionName: mozilla::pkix::test::NSSTestKeyPair::NSSTestKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void NSSTestKeyPair(const TestPublicKeyAlgorithm& aPublicKeyAlg,\n
      \                const ByteString& spk,\n                 const ByteString&
      aEncryptedPrivateKey,\n                 const ByteString& aEncryptionAlgorithm,\n
      \                const ByteString& aEncryptionParams)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:87,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:113,1
    - Dst: MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:118,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:118,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:122,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:122,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:123,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:123,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:127,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:127,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:128,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:128,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:132,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:132,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:133,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:133,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:143,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:143,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:144,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:144,1
    - Dst: PK11_ImportEncryptedPrivateKeyInfoAndReturnKey
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:149,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:150,1
    - Dst: MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:153,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:153,1
    - Dst: SEC_SignData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:157,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:157,1
    - Dst: static_cast<int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:158,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:158,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:159,1
    - Dst: MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:160,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:160,1
    - Dst: assign
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:162,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:163,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 3
    argNames:
    - ' tbs'
    - ' signatureAlgorithm'
    - ' signature'
    argTypes:
    - ByteString
    - TestSignatureAlgorithm
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 82
    functionDepth: 8
    functionLinenumber: 82
    functionLinenumberEnd: 165
    functionName: mozilla::pkix::test::NSSTestKeyPair::SignData
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - assign
    - length
    - static_cast<int>
    - RSA_PKCS1
    - abort
    - PK11_ImportEncryptedPrivateKeyInfoAndReturnKey
    - static_cast<unsigned int>
    - PR_GetError
    - SECITEM_FreeItem
    - ScopedSECKEYPrivateKey::get
    - const_cast<uint8_t*>
    - ScopedPK11SlotInfo::get
    - SEC_SignData
    - data
    - MapPRErrorCodeToResult
    linkageType: ''
    returnType: Result
    signature: "Result SignData(const ByteString& tbs,\n                  const TestSignatureAlgorithm&
      signatureAlgorithm,\n                  /*out*/ ByteString& signature) const
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSSTestKeyPair::NSSTestKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 174
    functionName: mozilla::pkix::test::NSSTestKeyPair::Clone
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - NSSTestKeyPair::NSSTestKeyPair
    linkageType: ''
    returnType: TestKeyPair
    signature: TestKeyPair * Clone() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSS_NoDB_Init
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:52,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: mozilla::pkix::test::InitNSSIfNeeded
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 57
    functionsReached:
    - NSS_NoDB_Init
    - abort
    linkageType: ''
    returnType: void
    signature: void InitNSSIfNeeded()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:62,1
    - Dst: reset
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:63,1
    - Dst: mozilla::pkix::test::GenerateKeyPairInner
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 10
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: mozilla::pkix::test::InitReusedKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::InitNSSIfNeeded
    - reset
    - mozilla::pkix::test::GenerateKeyPairInner
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus InitReusedKeyPair()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' aPublicKeyAlg'
    - ' spk'
    - ' aEncryptedPrivateKey'
    - ' aEncryptionAlgorithm'
    - ' aEncryptionParams'
    argTypes:
    - TestPublicKeyAlgorithm
    - ByteString
    - ByteString
    - ByteString
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 80
    functionName: mozilla::pkix::test::NSSTestKeyPair::NSSTestKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void NSSTestKeyPair(const TestPublicKeyAlgorithm& aPublicKeyAlg,\n
      \                const ByteString& spk,\n                 const ByteString&
      aEncryptedPrivateKey,\n                 const ByteString& aEncryptionAlgorithm,\n
      \                const ByteString& aEncryptionParams)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:87,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:113,1
    - Dst: MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:118,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:118,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:122,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:122,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:123,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:123,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:127,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:127,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:128,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:128,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:132,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:132,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:133,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:133,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:143,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:143,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:144,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:144,1
    - Dst: PK11_ImportEncryptedPrivateKeyInfoAndReturnKey
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:149,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:150,1
    - Dst: MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:153,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:153,1
    - Dst: SEC_SignData
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:157,1
    - Dst: data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:157,1
    - Dst: static_cast<int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:158,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:158,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:159,1
    - Dst: MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:160,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:160,1
    - Dst: assign
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:162,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:163,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 3
    argNames:
    - ' tbs'
    - ' signatureAlgorithm'
    - ' signature'
    argTypes:
    - ByteString
    - TestSignatureAlgorithm
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 82
    functionDepth: 8
    functionLinenumber: 82
    functionLinenumberEnd: 165
    functionName: mozilla::pkix::test::NSSTestKeyPair::SignData
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - assign
    - length
    - static_cast<int>
    - RSA_PKCS1
    - abort
    - PK11_ImportEncryptedPrivateKeyInfoAndReturnKey
    - static_cast<unsigned int>
    - PR_GetError
    - SECITEM_FreeItem
    - ScopedSECKEYPrivateKey::get
    - const_cast<uint8_t*>
    - ScopedPK11SlotInfo::get
    - SEC_SignData
    - data
    - MapPRErrorCodeToResult
    linkageType: ''
    returnType: Result
    signature: "Result SignData(const ByteString& tbs,\n                  const TestSignatureAlgorithm&
      signatureAlgorithm,\n                  /*out*/ ByteString& signature) const
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSSTestKeyPair::NSSTestKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 174
    functionName: mozilla::pkix::test::NSSTestKeyPair::Clone
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - NSSTestKeyPair::NSSTestKeyPair
    linkageType: ''
    returnType: TestKeyPair
    signature: TestKeyPair * Clone() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SECKEY_CreateSubjectPublicKeyInfo
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:191,1
    - Dst: get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:191,1
    - Dst: DER_ConvertBitString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:196,1
    - Dst: PK11_ExportEncryptedPrivKeyInfo
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:210,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:211,1
    - Dst: get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:212,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:219,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:220,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:222,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:224,1
    - Dst: NSSTestKeyPair::NSSTestKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:217,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - publicKeyAlg
    - ' publicKey'
    - ' privateKey'
    argTypes:
    - TestPublicKeyAlgorithm
    - ScopedSECKEYPublicKey
    - ScopedSECKEYPrivateKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 186
    functionDepth: 7
    functionLinenumber: 186
    functionLinenumberEnd: 226
    functionName: mozilla::pkix::test::CreateTestKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 21
    functionsReached:
    - DER_ConvertBitString
    - ScopedPK11SlotInfo::get
    - SECKEY_CreateSubjectPublicKeyInfo
    - ByteString
    - PK11_ExportEncryptedPrivKeyInfo
    - get
    - NSSTestKeyPair::NSSTestKeyPair
    linkageType: ''
    returnType: TestKeyPair
    signature: "TestKeyPair * CreateTestKeyPair(const TestPublicKeyAlgorithm publicKeyAlg,\n
      \                              const ScopedSECKEYPublicKey& publicKey,\n                               const
      ScopedSECKEYPrivateKey& privateKey)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:235,1
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:247,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:247,1
    - Dst: mozilla::pkix::test::CreateTestKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:252,1
    - Dst: mozilla::pkix::test::RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:252,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:255,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:257,1
    - Dst: PK11_RandomUpdate
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:265,1
    - Dst: const_cast<void*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:266,1
    - Dst: reinterpret_cast<const void*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:266,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:272,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!publicKeyTemp)
      pos:
        line_end: 254
        line_start: 254
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    constantsTouched: []
    func_position:
      end: 273
      start: 230
    functionDepth: 9
    functionLinenumber: 230
    functionLinenumberEnd: 273
    functionName: mozilla::pkix::test::GenerateKeyPairInner
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 23
    functionsReached:
    - PK11_RandomUpdate
    - mozilla::pkix::test::CreateTestKeyPair
    - PK11_GenerateKeyPair
    - abort
    - mozilla::pkix::test::RSA_PKCS1
    - assert
    - const_cast<void*>
    - reinterpret_cast<const void*>
    - PR_GetError
    - ScopedPK11SlotInfo::get
    linkageType: ''
    returnType: TestKeyPair
    signature: 'TestKeyPair *

      GenerateKeyPairInner()'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:235,1
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:247,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:247,1
    - Dst: mozilla::pkix::test::CreateTestKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:252,1
    - Dst: mozilla::pkix::test::RSA_PKCS1
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:252,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:255,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:257,1
    - Dst: PK11_RandomUpdate
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:265,1
    - Dst: const_cast<void*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:266,1
    - Dst: reinterpret_cast<const void*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:266,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:272,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!publicKeyTemp)
      pos:
        line_end: 254
        line_start: 254
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    constantsTouched: []
    func_position:
      end: 273
      start: 230
    functionDepth: 9
    functionLinenumber: 230
    functionLinenumberEnd: 273
    functionName: mozilla::pkix::test::GenerateKeyPairInner
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 23
    functionsReached:
    - PK11_RandomUpdate
    - mozilla::pkix::test::CreateTestKeyPair
    - PK11_GenerateKeyPair
    - abort
    - mozilla::pkix::test::RSA_PKCS1
    - assert
    - const_cast<void*>
    - reinterpret_cast<const void*>
    - PR_GetError
    - ScopedPK11SlotInfo::get
    linkageType: ''
    returnType: TestKeyPair
    signature: 'TestKeyPair *

      GenerateKeyPairInner()'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:280,1
    - Dst: mozilla::pkix::test::GenerateKeyPairInner
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 277
    functionDepth: 10
    functionLinenumber: 277
    functionLinenumberEnd: 282
    functionName: mozilla::pkix::test::GenerateKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::InitNSSIfNeeded
    - mozilla::pkix::test::GenerateKeyPairInner
    linkageType: ''
    returnType: TestKeyPair
    signature: 'TestKeyPair *

      GenerateKeyPair()'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_CallOnce
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:288,1
    - Dst: abort
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:289,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:291,1
    - Dst: Clone
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (reusedKeyPair)
      pos:
        line_end: 290
        line_start: 290
        source_file: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    constantsTouched: []
    func_position:
      end: 293
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 293
    functionName: mozilla::pkix::test::CloneReusedKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - PR_CallOnce
    - Clone
    - assert
    - abort
    linkageType: ''
    returnType: TestKeyPair
    signature: 'TestKeyPair *

      CloneReusedKeyPair()'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:298,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:312,1
    - Dst: ByteString::data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:312,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:313,1
    - Dst: ByteString::length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:313,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:316,1
    - Dst: ByteString::data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:316,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:317,1
    - Dst: ByteString::length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:317,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:320,1
    - Dst: ByteString::data
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:320,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:321,1
    - Dst: ByteString::length
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:321,1
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:327,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:327,1
    - Dst: const_cast<PQGParams*>
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:328,1
    - Dst: mozilla::pkix::test::CreateTestKeyPair
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:334,1
    - Dst: mozilla::pkix::test::DSS
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:334,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 295
    functionDepth: 8
    functionLinenumber: 295
    functionLinenumberEnd: 335
    functionName: mozilla::pkix::test::GenerateDSSKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - ByteString::data
    - mozilla::pkix::test::CreateTestKeyPair
    - PK11_GenerateKeyPair
    - static_cast<unsigned int>
    - mozilla::pkix::test::InitNSSIfNeeded
    - const_cast<PQGParams*>
    - mozilla::pkix::test::DSS
    - const_cast<uint8_t*>
    - ScopedPK11SlotInfo::get
    - ByteString::length
    linkageType: ''
    returnType: TestKeyPair
    signature: 'TestKeyPair *

      GenerateDSSKeyPair()'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:341,1
    - Dst: VerifyECDSASignedDataNSS
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - data
    - digestAlgorithm
    - signature
    - subjectPublicKeyInfo
    argTypes:
    - Input
    - DigestAlgorithm
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 337
    functionDepth: 2
    functionLinenumber: 337
    functionLinenumberEnd: 344
    functionName: mozilla::pkix::test::TestVerifyECDSASignedData
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::InitNSSIfNeeded
    - VerifyECDSASignedDataNSS
    linkageType: ''
    returnType: Result
    signature: "Result TestVerifyECDSASignedData(Input data, DigestAlgorithm digestAlgorithm,\n
      \   Input signature, Input subjectPublicKeyInfo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:350,1
    - Dst: VerifyRSAPKCS1SignedDataNSS
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - data
    - digestAlgorithm
    - signature
    - subjectPublicKeyInfo
    argTypes:
    - Input
    - DigestAlgorithm
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 346
    functionDepth: 2
    functionLinenumber: 346
    functionLinenumberEnd: 353
    functionName: mozilla::pkix::test::TestVerifyRSAPKCS1SignedData
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::InitNSSIfNeeded
    - VerifyRSAPKCS1SignedDataNSS
    linkageType: ''
    returnType: Result
    signature: "Result TestVerifyRSAPKCS1SignedData(Input data, DigestAlgorithm digestAlgorithm,\n
      \   Input signature, Input subjectPublicKeyInfo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:359,1
    - Dst: VerifyRSAPSSSignedDataNSS
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - data
    - digestAlgorithm
    - signature
    - subjectPublicKeyInfo
    argTypes:
    - Input
    - DigestAlgorithm
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 355
    functionDepth: 2
    functionLinenumber: 355
    functionLinenumberEnd: 362
    functionName: mozilla::pkix::test::TestVerifyRSAPSSSignedData
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::InitNSSIfNeeded
    - VerifyRSAPSSSignedDataNSS
    linkageType: ''
    returnType: Result
    signature: "Result TestVerifyRSAPSSSignedData(Input data, DigestAlgorithm digestAlgorithm,\n
      \   Input signature, Input subjectPublicKeyInfo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::InitNSSIfNeeded
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:370,1
    - Dst: DigestBufNSS
      Src: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - item
    - digestAlg
    - digestBuf
    - digestBufLen
    argTypes:
    - Input
    - DigestAlgorithm
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 364
    functionDepth: 2
    functionLinenumber: 364
    functionLinenumberEnd: 372
    functionName: mozilla::pkix::test::TestDigestBuf
    functionSourceFile: /src/nss/lib/mozpkix/test-lib/pkixtestnss.cpp
    functionUses: 8
    functionsReached:
    - mozilla::pkix::test::InitNSSIfNeeded
    - DigestBufNSS
    linkageType: ''
    returnType: Result
    signature: "Result TestDigestBuf(Input item,\n              DigestAlgorithm digestAlg,\n
      \             /*out*/ uint8_t* digestBuf,\n              size_t digestBufLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: mozilla::pkix::Time::Time
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Time(Uninitialized)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: operator==(const Time& other) const
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Time& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: operator>(const Time& other) const
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>(const Time& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: operator>=(const Time& other) const
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>=(const Time& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: operator<(const Time& other) const
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(const Time& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: operator<=(const Time& other) const
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<=(const Time& other) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gz_intmax
      Src: /src/nss/lib/mozpkix/include/pkix/Time.h:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - seconds
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: mozilla::pkix::Time::AddSeconds
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Time.h
    functionUses: 0
    functionsReached:
    - gz_intmax
    linkageType: ''
    returnType: Result
    signature: Result AddSeconds(uint64_t seconds)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - seconds
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 84
    functionName: mozilla::pkix::Time::SubtractSeconds
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: Result SubtractSeconds(uint64_t seconds)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - aElapsedSecondsAD
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 98
    functionName: mozilla::pkix::Time::Time
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Time(uint64_t aElapsedSecondsAD)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Time
      Src: /src/nss/lib/mozpkix/include/pkix/Time.h:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aElapsedSecondsAD
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 107
    functionName: mozilla::pkix::TimeFromElapsedSecondsAD
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Time.h
    functionUses: 0
    functionsReached:
    - Time
    linkageType: ''
    returnType: Time
    signature: Time TimeFromElapsedSecondsAD(uint64_t aElapsedSecondsAD)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - timeA
    - timeB
    argTypes:
    - Time
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: mozilla::pkix::Duration::Duration
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Duration(Time timeA, Time timeB)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - aDurationInSeconds
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 125
    functionName: mozilla::pkix::Duration::Duration
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Duration(uint64_t aDurationInSeconds)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Duration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: operator>(const Duration& other) const
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>(const Duration& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Duration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 132
    functionName: operator<(const Duration& other) const
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(const Duration& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: mozilla::pkix::Time::Time
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Time(Uninitialized)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: operator==(const Time& other) const
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Time& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: operator>(const Time& other) const
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>(const Time& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: operator>=(const Time& other) const
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>=(const Time& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: operator<(const Time& other) const
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(const Time& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: operator<=(const Time& other) const
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<=(const Time& other) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gz_intmax
      Src: /src/nss/lib/mozpkix/include/pkix/Time.h:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - seconds
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: mozilla::pkix::Time::AddSeconds
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Time.h
    functionUses: 0
    functionsReached:
    - gz_intmax
    linkageType: ''
    returnType: Result
    signature: Result AddSeconds(uint64_t seconds)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - seconds
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 84
    functionName: mozilla::pkix::Time::SubtractSeconds
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: Result SubtractSeconds(uint64_t seconds)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - aElapsedSecondsAD
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 98
    functionName: mozilla::pkix::Time::Time
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Time(uint64_t aElapsedSecondsAD)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Time
      Src: /src/nss/lib/mozpkix/include/pkix/Time.h:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aElapsedSecondsAD
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 107
    functionName: mozilla::pkix::TimeFromElapsedSecondsAD
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Time.h
    functionUses: 0
    functionsReached:
    - Time
    linkageType: ''
    returnType: Time
    signature: Time TimeFromElapsedSecondsAD(uint64_t aElapsedSecondsAD)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - timeA
    - timeB
    argTypes:
    - Time
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: mozilla::pkix::Duration::Duration
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Duration(Time timeA, Time timeB)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - aDurationInSeconds
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 125
    functionName: mozilla::pkix::Duration::Duration
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Duration(uint64_t aDurationInSeconds)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Duration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: operator>(const Duration& other) const
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>(const Duration& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Duration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 132
    functionName: operator<(const Duration& other) const
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(const Duration& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: mozilla::pkix::Time::Time
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Time(Uninitialized)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: operator==(const Time& other) const
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Time& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: operator>(const Time& other) const
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>(const Time& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: operator>=(const Time& other) const
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>=(const Time& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: operator<(const Time& other) const
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(const Time& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: operator<=(const Time& other) const
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<=(const Time& other) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gz_intmax
      Src: /src/nss/lib/mozpkix/include/pkix/Time.h:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - seconds
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: mozilla::pkix::Time::AddSeconds
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Time.h
    functionUses: 0
    functionsReached:
    - gz_intmax
    linkageType: ''
    returnType: Result
    signature: Result AddSeconds(uint64_t seconds)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - seconds
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 84
    functionName: mozilla::pkix::Time::SubtractSeconds
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: Result SubtractSeconds(uint64_t seconds)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - aElapsedSecondsAD
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 98
    functionName: mozilla::pkix::Time::Time
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Time(uint64_t aElapsedSecondsAD)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Time
      Src: /src/nss/lib/mozpkix/include/pkix/Time.h:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aElapsedSecondsAD
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 107
    functionName: mozilla::pkix::TimeFromElapsedSecondsAD
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Time.h
    functionUses: 0
    functionsReached:
    - Time
    linkageType: ''
    returnType: Time
    signature: Time TimeFromElapsedSecondsAD(uint64_t aElapsedSecondsAD)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - timeA
    - timeB
    argTypes:
    - Time
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: mozilla::pkix::Duration::Duration
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Duration(Time timeA, Time timeB)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - aDurationInSeconds
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 125
    functionName: mozilla::pkix::Duration::Duration
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Duration(uint64_t aDurationInSeconds)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Duration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: operator>(const Duration& other) const
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>(const Duration& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Duration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 132
    functionName: operator<(const Duration& other) const
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(const Duration& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: mozilla::pkix::Time::Time
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Time(Uninitialized)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: operator==(const Time& other) const
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Time& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: operator>(const Time& other) const
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>(const Time& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: operator>=(const Time& other) const
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>=(const Time& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: operator<(const Time& other) const
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(const Time& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: operator<=(const Time& other) const
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<=(const Time& other) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gz_intmax
      Src: /src/nss/lib/mozpkix/include/pkix/Time.h:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - seconds
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: mozilla::pkix::Time::AddSeconds
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Time.h
    functionUses: 0
    functionsReached:
    - gz_intmax
    linkageType: ''
    returnType: Result
    signature: Result AddSeconds(uint64_t seconds)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - seconds
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 84
    functionName: mozilla::pkix::Time::SubtractSeconds
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: Result SubtractSeconds(uint64_t seconds)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - aElapsedSecondsAD
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 98
    functionName: mozilla::pkix::Time::Time
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Time(uint64_t aElapsedSecondsAD)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Time
      Src: /src/nss/lib/mozpkix/include/pkix/Time.h:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aElapsedSecondsAD
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 107
    functionName: mozilla::pkix::TimeFromElapsedSecondsAD
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Time.h
    functionUses: 0
    functionsReached:
    - Time
    linkageType: ''
    returnType: Time
    signature: Time TimeFromElapsedSecondsAD(uint64_t aElapsedSecondsAD)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - timeA
    - timeB
    argTypes:
    - Time
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: mozilla::pkix::Duration::Duration
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Duration(Time timeA, Time timeB)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - aDurationInSeconds
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 125
    functionName: mozilla::pkix::Duration::Duration
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Duration(uint64_t aDurationInSeconds)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Duration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: operator>(const Duration& other) const
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>(const Duration& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Duration
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 132
    functionName: operator<(const Duration& other) const
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Time.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(const Duration& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - aIssuer
    - aIssuerSubjectPublicKeyInfo
    - aSerialNumber
    argTypes:
    - Input
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 127
    functionName: mozilla::pkix::CertID
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixtypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CertID(Input aIssuer, Input aIssuerSubjectPublicKeyInfo, Input
      aSerialNumber)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: operator=(const CertID&)
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixtypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const CertID&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 147
    functionName: mozilla::pkix::DERArray::DERArray
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixtypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DERArray()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 148
    functionName: ~DERArray()
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixtypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~DERArray()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 157
    functionName: ~TrustDomain()
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixtypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~TrustDomain()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 193
    functionName: mozilla::pkix::TrustDomain::IssuerChecker::IssuerChecker
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixtypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IssuerChecker(const IssuerChecker&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 194
    functionName: operator=(const IssuerChecker&)
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixtypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const IssuerChecker&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 376
    functionName: mozilla::pkix::TrustDomain::TrustDomain
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixtypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TrustDomain()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 378
    functionName: mozilla::pkix::TrustDomain::TrustDomain
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixtypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TrustDomain(const TrustDomain&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 379
    functionName: operator=(const TrustDomain&)
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixtypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const TrustDomain&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 390
    functionName: ~NameMatchingPolicy()
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixtypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~NameMatchingPolicy()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 403
    functionName: mozilla::pkix::NameMatchingPolicy::NameMatchingPolicy
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixtypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NameMatchingPolicy()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 405
    functionName: mozilla::pkix::NameMatchingPolicy::NameMatchingPolicy
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixtypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NameMatchingPolicy(const NameMatchingPolicy&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 406
    functionName: operator=(const NameMatchingPolicy&)
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixtypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const NameMatchingPolicy&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - aIssuer
    - aIssuerSubjectPublicKeyInfo
    - aSerialNumber
    argTypes:
    - Input
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 127
    functionName: mozilla::pkix::CertID
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixtypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CertID(Input aIssuer, Input aIssuerSubjectPublicKeyInfo, Input
      aSerialNumber)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: operator=(const CertID&)
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixtypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const CertID&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 147
    functionName: mozilla::pkix::DERArray::DERArray
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixtypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DERArray()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 148
    functionName: ~DERArray()
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixtypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~DERArray()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 157
    functionName: ~TrustDomain()
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixtypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~TrustDomain()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 193
    functionName: mozilla::pkix::TrustDomain::IssuerChecker::IssuerChecker
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixtypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IssuerChecker(const IssuerChecker&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 194
    functionName: operator=(const IssuerChecker&)
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixtypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const IssuerChecker&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 376
    functionName: mozilla::pkix::TrustDomain::TrustDomain
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixtypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TrustDomain()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 378
    functionName: mozilla::pkix::TrustDomain::TrustDomain
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixtypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TrustDomain(const TrustDomain&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 379
    functionName: operator=(const TrustDomain&)
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixtypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const TrustDomain&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 390
    functionName: ~NameMatchingPolicy()
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixtypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~NameMatchingPolicy()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 403
    functionName: mozilla::pkix::NameMatchingPolicy::NameMatchingPolicy
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixtypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NameMatchingPolicy()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 405
    functionName: mozilla::pkix::NameMatchingPolicy::NameMatchingPolicy
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixtypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NameMatchingPolicy(const NameMatchingPolicy&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 406
    functionName: operator=(const NameMatchingPolicy&)
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixtypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const NameMatchingPolicy&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - aIssuer
    - aIssuerSubjectPublicKeyInfo
    - aSerialNumber
    argTypes:
    - Input
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 127
    functionName: mozilla::pkix::CertID
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixtypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CertID(Input aIssuer, Input aIssuerSubjectPublicKeyInfo, Input
      aSerialNumber)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: operator=(const CertID&)
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixtypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const CertID&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 147
    functionName: mozilla::pkix::DERArray::DERArray
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixtypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DERArray()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 148
    functionName: ~DERArray()
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixtypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~DERArray()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 157
    functionName: ~TrustDomain()
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixtypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~TrustDomain()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 193
    functionName: mozilla::pkix::TrustDomain::IssuerChecker::IssuerChecker
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixtypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IssuerChecker(const IssuerChecker&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 194
    functionName: operator=(const IssuerChecker&)
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixtypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const IssuerChecker&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 376
    functionName: mozilla::pkix::TrustDomain::TrustDomain
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixtypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TrustDomain()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 378
    functionName: mozilla::pkix::TrustDomain::TrustDomain
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixtypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TrustDomain(const TrustDomain&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 379
    functionName: operator=(const TrustDomain&)
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixtypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const TrustDomain&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 390
    functionName: ~NameMatchingPolicy()
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixtypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~NameMatchingPolicy()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 403
    functionName: mozilla::pkix::NameMatchingPolicy::NameMatchingPolicy
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixtypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NameMatchingPolicy()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 405
    functionName: mozilla::pkix::NameMatchingPolicy::NameMatchingPolicy
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixtypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NameMatchingPolicy(const NameMatchingPolicy&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 406
    functionName: operator=(const NameMatchingPolicy&)
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixtypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const NameMatchingPolicy&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - aIssuer
    - aIssuerSubjectPublicKeyInfo
    - aSerialNumber
    argTypes:
    - Input
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 127
    functionName: mozilla::pkix::CertID
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixtypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CertID(Input aIssuer, Input aIssuerSubjectPublicKeyInfo, Input
      aSerialNumber)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: operator=(const CertID&)
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixtypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const CertID&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 147
    functionName: mozilla::pkix::DERArray::DERArray
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixtypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DERArray()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 148
    functionName: ~DERArray()
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixtypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~DERArray()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 157
    functionName: ~TrustDomain()
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixtypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~TrustDomain()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 193
    functionName: mozilla::pkix::TrustDomain::IssuerChecker::IssuerChecker
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixtypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IssuerChecker(const IssuerChecker&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 194
    functionName: operator=(const IssuerChecker&)
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixtypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const IssuerChecker&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 376
    functionName: mozilla::pkix::TrustDomain::TrustDomain
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixtypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TrustDomain()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 378
    functionName: mozilla::pkix::TrustDomain::TrustDomain
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixtypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TrustDomain(const TrustDomain&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 379
    functionName: operator=(const TrustDomain&)
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixtypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const TrustDomain&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 390
    functionName: ~NameMatchingPolicy()
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixtypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~NameMatchingPolicy()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 403
    functionName: mozilla::pkix::NameMatchingPolicy::NameMatchingPolicy
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixtypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NameMatchingPolicy()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 405
    functionName: mozilla::pkix::NameMatchingPolicy::NameMatchingPolicy
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixtypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NameMatchingPolicy(const NameMatchingPolicy&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 406
    functionName: operator=(const NameMatchingPolicy&)
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixtypes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const NameMatchingPolicy&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/include/pkix/Result.h:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rv
    argTypes:
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 214
    functionName: mozilla::pkix::IsFatalError
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Result.h
    functionUses: 0
    functionsReached:
    - static_cast<unsigned int>
    linkageType: ''
    returnType: bool
    signature: bool IsFatalError(Result rv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/include/pkix/Result.h:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - result
    argTypes:
    - Result
    assertStmts:
    - condition: (false)
      pos:
        line_end: 216
        line_start: 216
        source_file: /src/nss/lib/mozpkix/include/pkix/Result.h
    constantsTouched: []
    func_position:
      end: 219
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 219
    functionName: mozilla::pkix::NotReached
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Result.h
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: Result
    signature: Result NotReached(const char* /*explanation*/, Result result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/include/pkix/Result.h:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rv
    argTypes:
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 214
    functionName: mozilla::pkix::IsFatalError
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Result.h
    functionUses: 0
    functionsReached:
    - static_cast<unsigned int>
    linkageType: ''
    returnType: bool
    signature: bool IsFatalError(Result rv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/include/pkix/Result.h:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - result
    argTypes:
    - Result
    assertStmts:
    - condition: (false)
      pos:
        line_end: 216
        line_start: 216
        source_file: /src/nss/lib/mozpkix/include/pkix/Result.h
    constantsTouched: []
    func_position:
      end: 219
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 219
    functionName: mozilla::pkix::NotReached
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Result.h
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: Result
    signature: Result NotReached(const char* /*explanation*/, Result result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/include/pkix/Result.h:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rv
    argTypes:
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 214
    functionName: mozilla::pkix::IsFatalError
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Result.h
    functionUses: 0
    functionsReached:
    - static_cast<unsigned int>
    linkageType: ''
    returnType: bool
    signature: bool IsFatalError(Result rv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/include/pkix/Result.h:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - result
    argTypes:
    - Result
    assertStmts:
    - condition: (false)
      pos:
        line_end: 216
        line_start: 216
        source_file: /src/nss/lib/mozpkix/include/pkix/Result.h
    constantsTouched: []
    func_position:
      end: 219
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 219
    functionName: mozilla::pkix::NotReached
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Result.h
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: Result
    signature: Result NotReached(const char* /*explanation*/, Result result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/include/pkix/Result.h:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rv
    argTypes:
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 214
    functionName: mozilla::pkix::IsFatalError
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Result.h
    functionUses: 0
    functionsReached:
    - static_cast<unsigned int>
    linkageType: ''
    returnType: bool
    signature: bool IsFatalError(Result rv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/include/pkix/Result.h:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - result
    argTypes:
    - Result
    assertStmts:
    - condition: (false)
      pos:
        line_end: 216
        line_start: 216
        source_file: /src/nss/lib/mozpkix/include/pkix/Result.h
    constantsTouched: []
    func_position:
      end: 219
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 219
    functionName: mozilla::pkix::NotReached
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Result.h
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: Result
    signature: Result NotReached(const char* /*explanation*/, Result result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - (aData)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: mozilla::pkix::Input::Input
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Input(const uint8_t (&aData)[N])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: mozilla::pkix::Input::Input
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Input()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: mozilla::pkix::Input::Input
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Input(const Input&)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - aData
    - aLen
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 93
    functionName: mozilla::pkix::Input::Init
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: Result Init(const uint8_t* aData, size_t aLen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::Input::Init
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: mozilla::pkix::Input::Init
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 1
    functionsReached:
    - mozilla::pkix::Input::Init
    linkageType: ''
    returnType: Result
    signature: Result Init(Input other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_type>
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: mozilla::pkix::Input::GetLength
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached:
    - static_cast<size_type>
    linkageType: ''
    returnType: size_type
    signature: size_type GetLength() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: mozilla::pkix::Input::UnsafeGetData
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t * UnsafeGetData() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: operator=(const Input&)
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const Input&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:121,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:121,1
    - Dst: std::equal
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:122,1
    - Dst: UnsafeGetData
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:122,1
    - Dst: UnsafeGetData
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:122,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:122,1
    - Dst: UnsafeGetData
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 124
    functionName: mozilla::pkix::InputsAreEqual
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached:
    - std::equal
    - GetLength
    - UnsafeGetData
    linkageType: ''
    returnType: bool
    signature: bool InputsAreEqual(const Input& a, const Input& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 136
    functionName: mozilla::pkix::Reader::Reader
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Reader()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:139,1
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:140,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - aInput
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 140
    functionName: mozilla::pkix::Reader::Reader
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached:
    - Input::GetLength
    - Input::UnsafeGetData
    linkageType: ''
    returnType: void
    signature: void Reader(Input aInput)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:146,1
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:147,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - aInput
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 149
    functionName: mozilla::pkix::Reader::Init
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached:
    - Input::GetLength
    - Input::UnsafeGetData
    linkageType: ''
    returnType: Result
    signature: Result Init(Input aInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - expectedByte
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 153
    functionName: mozilla::pkix::Reader::Peek
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Peek(uint8_t expectedByte) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::Reader::EnsureLength
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' out'
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 162
    functionName: mozilla::pkix::Reader::Read
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::Reader::EnsureLength
    linkageType: ''
    returnType: Result
    signature: Result Read(uint8_t& out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::Reader::EnsureLength
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' out'
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 173
    functionName: mozilla::pkix::Reader::Read
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::Reader::EnsureLength
    linkageType: ''
    returnType: Result
    signature: Result Read(uint16_t& out)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:180,1
    - Dst: std::equal
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - (toMatch)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 188
    functionName: mozilla::pkix::Reader::MatchRest
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - std::equal
    linkageType: ''
    returnType: bool
    signature: bool MatchRest(const uint8_t (&toMatch)[N])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:194,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:195,1
    - Dst: std::equal
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:198,1
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - toMatch
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 203
    functionName: mozilla::pkix::Reader::MatchRest
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - Input::GetLength
    - std::equal
    - Input::UnsafeGetData
    linkageType: ''
    returnType: bool
    signature: bool MatchRest(Input toMatch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::Reader::EnsureLength
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - len
    argTypes:
    - Input::size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 212
    functionName: mozilla::pkix::Reader::Skip
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::Reader::EnsureLength
    linkageType: ''
    returnType: Result
    signature: Result Skip(Input::size_type len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::Reader::EnsureLength
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:215,1
    - Dst: mozilla::pkix::Reader::Init
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:219,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - len
    - ' skipped'
    argTypes:
    - Input::size_type
    - Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 225
    functionName: mozilla::pkix::Reader::Skip
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::Reader::Init
    - mozilla::pkix::Reader::EnsureLength
    linkageType: ''
    returnType: Result
    signature: Result Skip(Input::size_type len, Reader& skipped)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::Reader::EnsureLength
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:228,1
    - Dst: mozilla::pkix::Reader::Init
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:232,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - len
    - ' skipped'
    argTypes:
    - Input::size_type
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 238
    functionName: mozilla::pkix::Reader::Skip
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::Reader::Init
    - mozilla::pkix::Reader::EnsureLength
    linkageType: ''
    returnType: Result
    signature: Result Skip(Input::size_type len, /*out*/ Input& skipped)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 240
    functionName: mozilla::pkix::Reader::SkipToEnd
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SkipToEnd()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::Reader::Skip
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:243,1
    - Dst: static_cast<Input::size_type>
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' skipped'
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 242
    functionDepth: 2
    functionLinenumber: 242
    functionLinenumberEnd: 244
    functionName: mozilla::pkix::Reader::SkipToEnd
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached:
    - static_cast<Input::size_type>
    - mozilla::pkix::Reader::Skip
    linkageType: ''
    returnType: Result
    signature: Result SkipToEnd(/*out*/ Input& skipped)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - len
    argTypes:
    - Input::size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 251
    functionName: mozilla::pkix::Reader::EnsureLength
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 5
    functionsReached:
    - static_cast<size_t>
    linkageType: ''
    returnType: Result
    signature: Result EnsureLength(Input::size_type len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 253
    functionName: mozilla::pkix::Reader::AtEnd
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool AtEnd() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 257
    functionName: mozilla::pkix::Reader::Mark::Mark
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Mark(const Mark&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' aInput'
    - aMark
    argTypes:
    - Reader
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 261
    functionName: mozilla::pkix::Reader::Mark::Mark
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Mark(const Reader& aInput, const uint8_t* aMark)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 264
    functionName: operator=(const Mark&)
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const Mark&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Mark
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 267
    functionName: mozilla::pkix::Reader::GetMark
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached:
    - Mark
    linkageType: ''
    returnType: Mark
    signature: Mark GetMark() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:271,1
    - Dst: mozilla::pkix::Reader::Init
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:273,1
    - Dst: static_cast<Input::size_type>
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:274,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' mark'
    - ' item'
    argTypes:
    - Mark
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 275
    functionName: mozilla::pkix::Reader::GetInput
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached:
    - NotReached
    - mozilla::pkix::Reader::Init
    - static_cast<Input::size_type>
    linkageType: ''
    returnType: Result
    signature: Result GetInput(const Mark& mark, /*out*/ Input& item)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - uint8_t*
    - Input::size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 286
    functionName: mozilla::pkix::Reader::Init
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: Result Init(const uint8_t* data, Input::size_type len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 291
    functionName: mozilla::pkix::Reader::Reader
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Reader(const Reader&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 292
    functionName: operator=(const Reader&)
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const Reader&)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:299,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ' input'
    - toFind
    argTypes:
    - Input
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 306
    functionName: mozilla::pkix::InputContains
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached:
    - Reader::Read
    linkageType: ''
    returnType: bool
    signature: bool InputContains(const Input& input, uint8_t toFind)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - (aData)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: mozilla::pkix::Input::Input
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Input(const uint8_t (&aData)[N])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: mozilla::pkix::Input::Input
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Input()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: mozilla::pkix::Input::Input
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Input(const Input&)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - aData
    - aLen
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 93
    functionName: mozilla::pkix::Input::Init
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: Result Init(const uint8_t* aData, size_t aLen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::Input::Init
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: mozilla::pkix::Input::Init
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 2
    functionsReached:
    - mozilla::pkix::Input::Init
    linkageType: ''
    returnType: Result
    signature: Result Init(Input other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_type>
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: mozilla::pkix::Input::GetLength
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached:
    - static_cast<size_type>
    linkageType: ''
    returnType: size_type
    signature: size_type GetLength() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: mozilla::pkix::Input::UnsafeGetData
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t * UnsafeGetData() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: operator=(const Input&)
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const Input&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:121,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:121,1
    - Dst: std::equal
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:122,1
    - Dst: UnsafeGetData
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:122,1
    - Dst: UnsafeGetData
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:122,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:122,1
    - Dst: UnsafeGetData
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 124
    functionName: mozilla::pkix::InputsAreEqual
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached:
    - std::equal
    - GetLength
    - UnsafeGetData
    linkageType: ''
    returnType: bool
    signature: bool InputsAreEqual(const Input& a, const Input& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 136
    functionName: mozilla::pkix::Reader::Reader
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Reader()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:139,1
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:140,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - aInput
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 140
    functionName: mozilla::pkix::Reader::Reader
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached:
    - Input::GetLength
    - Input::UnsafeGetData
    linkageType: ''
    returnType: void
    signature: void Reader(Input aInput)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:146,1
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:147,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - aInput
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 149
    functionName: mozilla::pkix::Reader::Init
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 3
    functionsReached:
    - Input::GetLength
    - Input::UnsafeGetData
    linkageType: ''
    returnType: Result
    signature: Result Init(Input aInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - expectedByte
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 153
    functionName: mozilla::pkix::Reader::Peek
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Peek(uint8_t expectedByte) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::Reader::EnsureLength
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' out'
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 162
    functionName: mozilla::pkix::Reader::Read
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::Reader::EnsureLength
    linkageType: ''
    returnType: Result
    signature: Result Read(uint8_t& out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::Reader::EnsureLength
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' out'
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 173
    functionName: mozilla::pkix::Reader::Read
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::Reader::EnsureLength
    linkageType: ''
    returnType: Result
    signature: Result Read(uint16_t& out)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:180,1
    - Dst: std::equal
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - (toMatch)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 188
    functionName: mozilla::pkix::Reader::MatchRest
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - std::equal
    linkageType: ''
    returnType: bool
    signature: bool MatchRest(const uint8_t (&toMatch)[N])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:194,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:195,1
    - Dst: std::equal
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:198,1
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - toMatch
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 203
    functionName: mozilla::pkix::Reader::MatchRest
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - Input::GetLength
    - std::equal
    - Input::UnsafeGetData
    linkageType: ''
    returnType: bool
    signature: bool MatchRest(Input toMatch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::Reader::EnsureLength
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - len
    argTypes:
    - Input::size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 212
    functionName: mozilla::pkix::Reader::Skip
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 1
    functionsReached:
    - mozilla::pkix::Reader::EnsureLength
    linkageType: ''
    returnType: Result
    signature: Result Skip(Input::size_type len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::Reader::EnsureLength
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:215,1
    - Dst: mozilla::pkix::Reader::Init
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:219,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - len
    - ' skipped'
    argTypes:
    - Input::size_type
    - Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 225
    functionName: mozilla::pkix::Reader::Skip
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 1
    functionsReached:
    - mozilla::pkix::Reader::Init
    - mozilla::pkix::Reader::EnsureLength
    linkageType: ''
    returnType: Result
    signature: Result Skip(Input::size_type len, Reader& skipped)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::Reader::EnsureLength
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:228,1
    - Dst: mozilla::pkix::Reader::Init
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:232,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - len
    - ' skipped'
    argTypes:
    - Input::size_type
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 238
    functionName: mozilla::pkix::Reader::Skip
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 1
    functionsReached:
    - mozilla::pkix::Reader::Init
    - mozilla::pkix::Reader::EnsureLength
    linkageType: ''
    returnType: Result
    signature: Result Skip(Input::size_type len, /*out*/ Input& skipped)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 240
    functionName: mozilla::pkix::Reader::SkipToEnd
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SkipToEnd()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::Reader::Skip
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:243,1
    - Dst: static_cast<Input::size_type>
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' skipped'
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 242
    functionDepth: 2
    functionLinenumber: 242
    functionLinenumberEnd: 244
    functionName: mozilla::pkix::Reader::SkipToEnd
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached:
    - static_cast<Input::size_type>
    - mozilla::pkix::Reader::Skip
    linkageType: ''
    returnType: Result
    signature: Result SkipToEnd(/*out*/ Input& skipped)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - len
    argTypes:
    - Input::size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 251
    functionName: mozilla::pkix::Reader::EnsureLength
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 10
    functionsReached:
    - static_cast<size_t>
    linkageType: ''
    returnType: Result
    signature: Result EnsureLength(Input::size_type len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 253
    functionName: mozilla::pkix::Reader::AtEnd
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool AtEnd() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 257
    functionName: mozilla::pkix::Reader::Mark::Mark
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Mark(const Mark&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' aInput'
    - aMark
    argTypes:
    - Reader
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 261
    functionName: mozilla::pkix::Reader::Mark::Mark
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Mark(const Reader& aInput, const uint8_t* aMark)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 264
    functionName: operator=(const Mark&)
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const Mark&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Mark
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 267
    functionName: mozilla::pkix::Reader::GetMark
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached:
    - Mark
    linkageType: ''
    returnType: Mark
    signature: Mark GetMark() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:271,1
    - Dst: mozilla::pkix::Reader::Init
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:273,1
    - Dst: static_cast<Input::size_type>
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:274,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' mark'
    - ' item'
    argTypes:
    - Mark
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 275
    functionName: mozilla::pkix::Reader::GetInput
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached:
    - NotReached
    - mozilla::pkix::Reader::Init
    - static_cast<Input::size_type>
    linkageType: ''
    returnType: Result
    signature: Result GetInput(const Mark& mark, /*out*/ Input& item)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - uint8_t*
    - Input::size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 286
    functionName: mozilla::pkix::Reader::Init
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: Result Init(const uint8_t* data, Input::size_type len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 291
    functionName: mozilla::pkix::Reader::Reader
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Reader(const Reader&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 292
    functionName: operator=(const Reader&)
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const Reader&)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:299,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ' input'
    - toFind
    argTypes:
    - Input
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 306
    functionName: mozilla::pkix::InputContains
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached:
    - Reader::Read
    linkageType: ''
    returnType: bool
    signature: bool InputContains(const Input& input, uint8_t toFind)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - (aData)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: mozilla::pkix::Input::Input
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Input(const uint8_t (&aData)[N])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: mozilla::pkix::Input::Input
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Input()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: mozilla::pkix::Input::Input
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Input(const Input&)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - aData
    - aLen
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 93
    functionName: mozilla::pkix::Input::Init
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: Result Init(const uint8_t* aData, size_t aLen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::Input::Init
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: mozilla::pkix::Input::Init
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 3
    functionsReached:
    - mozilla::pkix::Input::Init
    linkageType: ''
    returnType: Result
    signature: Result Init(Input other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_type>
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: mozilla::pkix::Input::GetLength
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached:
    - static_cast<size_type>
    linkageType: ''
    returnType: size_type
    signature: size_type GetLength() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: mozilla::pkix::Input::UnsafeGetData
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t * UnsafeGetData() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: operator=(const Input&)
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const Input&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:121,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:121,1
    - Dst: std::equal
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:122,1
    - Dst: UnsafeGetData
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:122,1
    - Dst: UnsafeGetData
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:122,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:122,1
    - Dst: UnsafeGetData
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 124
    functionName: mozilla::pkix::InputsAreEqual
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached:
    - std::equal
    - GetLength
    - UnsafeGetData
    linkageType: ''
    returnType: bool
    signature: bool InputsAreEqual(const Input& a, const Input& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 136
    functionName: mozilla::pkix::Reader::Reader
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Reader()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:139,1
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:140,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - aInput
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 140
    functionName: mozilla::pkix::Reader::Reader
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached:
    - Input::GetLength
    - Input::UnsafeGetData
    linkageType: ''
    returnType: void
    signature: void Reader(Input aInput)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:146,1
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:147,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - aInput
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 149
    functionName: mozilla::pkix::Reader::Init
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 6
    functionsReached:
    - Input::GetLength
    - Input::UnsafeGetData
    linkageType: ''
    returnType: Result
    signature: Result Init(Input aInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - expectedByte
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 153
    functionName: mozilla::pkix::Reader::Peek
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Peek(uint8_t expectedByte) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::Reader::EnsureLength
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' out'
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 162
    functionName: mozilla::pkix::Reader::Read
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::Reader::EnsureLength
    linkageType: ''
    returnType: Result
    signature: Result Read(uint8_t& out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::Reader::EnsureLength
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' out'
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 173
    functionName: mozilla::pkix::Reader::Read
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::Reader::EnsureLength
    linkageType: ''
    returnType: Result
    signature: Result Read(uint16_t& out)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:180,1
    - Dst: std::equal
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - (toMatch)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 188
    functionName: mozilla::pkix::Reader::MatchRest
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - std::equal
    linkageType: ''
    returnType: bool
    signature: bool MatchRest(const uint8_t (&toMatch)[N])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:194,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:195,1
    - Dst: std::equal
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:198,1
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - toMatch
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 203
    functionName: mozilla::pkix::Reader::MatchRest
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - Input::GetLength
    - std::equal
    - Input::UnsafeGetData
    linkageType: ''
    returnType: bool
    signature: bool MatchRest(Input toMatch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::Reader::EnsureLength
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - len
    argTypes:
    - Input::size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 212
    functionName: mozilla::pkix::Reader::Skip
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 2
    functionsReached:
    - mozilla::pkix::Reader::EnsureLength
    linkageType: ''
    returnType: Result
    signature: Result Skip(Input::size_type len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::Reader::EnsureLength
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:215,1
    - Dst: mozilla::pkix::Reader::Init
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:219,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - len
    - ' skipped'
    argTypes:
    - Input::size_type
    - Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 225
    functionName: mozilla::pkix::Reader::Skip
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 2
    functionsReached:
    - mozilla::pkix::Reader::Init
    - mozilla::pkix::Reader::EnsureLength
    linkageType: ''
    returnType: Result
    signature: Result Skip(Input::size_type len, Reader& skipped)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::Reader::EnsureLength
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:228,1
    - Dst: mozilla::pkix::Reader::Init
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:232,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - len
    - ' skipped'
    argTypes:
    - Input::size_type
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 238
    functionName: mozilla::pkix::Reader::Skip
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 2
    functionsReached:
    - mozilla::pkix::Reader::Init
    - mozilla::pkix::Reader::EnsureLength
    linkageType: ''
    returnType: Result
    signature: Result Skip(Input::size_type len, /*out*/ Input& skipped)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 240
    functionName: mozilla::pkix::Reader::SkipToEnd
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SkipToEnd()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::Reader::Skip
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:243,1
    - Dst: static_cast<Input::size_type>
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' skipped'
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 242
    functionDepth: 2
    functionLinenumber: 242
    functionLinenumberEnd: 244
    functionName: mozilla::pkix::Reader::SkipToEnd
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached:
    - static_cast<Input::size_type>
    - mozilla::pkix::Reader::Skip
    linkageType: ''
    returnType: Result
    signature: Result SkipToEnd(/*out*/ Input& skipped)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - len
    argTypes:
    - Input::size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 251
    functionName: mozilla::pkix::Reader::EnsureLength
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 15
    functionsReached:
    - static_cast<size_t>
    linkageType: ''
    returnType: Result
    signature: Result EnsureLength(Input::size_type len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 253
    functionName: mozilla::pkix::Reader::AtEnd
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool AtEnd() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 257
    functionName: mozilla::pkix::Reader::Mark::Mark
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Mark(const Mark&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' aInput'
    - aMark
    argTypes:
    - Reader
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 261
    functionName: mozilla::pkix::Reader::Mark::Mark
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Mark(const Reader& aInput, const uint8_t* aMark)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 264
    functionName: operator=(const Mark&)
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const Mark&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Mark
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 267
    functionName: mozilla::pkix::Reader::GetMark
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached:
    - Mark
    linkageType: ''
    returnType: Mark
    signature: Mark GetMark() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:271,1
    - Dst: mozilla::pkix::Reader::Init
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:273,1
    - Dst: static_cast<Input::size_type>
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:274,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' mark'
    - ' item'
    argTypes:
    - Mark
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 275
    functionName: mozilla::pkix::Reader::GetInput
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached:
    - NotReached
    - mozilla::pkix::Reader::Init
    - static_cast<Input::size_type>
    linkageType: ''
    returnType: Result
    signature: Result GetInput(const Mark& mark, /*out*/ Input& item)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - uint8_t*
    - Input::size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 286
    functionName: mozilla::pkix::Reader::Init
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: Result Init(const uint8_t* data, Input::size_type len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 291
    functionName: mozilla::pkix::Reader::Reader
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Reader(const Reader&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 292
    functionName: operator=(const Reader&)
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const Reader&)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:299,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ' input'
    - toFind
    argTypes:
    - Input
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 306
    functionName: mozilla::pkix::InputContains
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached:
    - Reader::Read
    linkageType: ''
    returnType: bool
    signature: bool InputContains(const Input& input, uint8_t toFind)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - (aData)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: mozilla::pkix::Input::Input
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Input(const uint8_t (&aData)[N])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: mozilla::pkix::Input::Input
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Input()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: mozilla::pkix::Input::Input
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Input(const Input&)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - aData
    - aLen
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 93
    functionName: mozilla::pkix::Input::Init
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: Result Init(const uint8_t* aData, size_t aLen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::Input::Init
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: mozilla::pkix::Input::Init
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 4
    functionsReached:
    - mozilla::pkix::Input::Init
    linkageType: ''
    returnType: Result
    signature: Result Init(Input other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_type>
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: mozilla::pkix::Input::GetLength
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached:
    - static_cast<size_type>
    linkageType: ''
    returnType: size_type
    signature: size_type GetLength() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: mozilla::pkix::Input::UnsafeGetData
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t * UnsafeGetData() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: operator=(const Input&)
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const Input&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:121,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:121,1
    - Dst: std::equal
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:122,1
    - Dst: UnsafeGetData
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:122,1
    - Dst: UnsafeGetData
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:122,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:122,1
    - Dst: UnsafeGetData
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 124
    functionName: mozilla::pkix::InputsAreEqual
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached:
    - std::equal
    - GetLength
    - UnsafeGetData
    linkageType: ''
    returnType: bool
    signature: bool InputsAreEqual(const Input& a, const Input& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 136
    functionName: mozilla::pkix::Reader::Reader
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Reader()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:139,1
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:140,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - aInput
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 140
    functionName: mozilla::pkix::Reader::Reader
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached:
    - Input::GetLength
    - Input::UnsafeGetData
    linkageType: ''
    returnType: void
    signature: void Reader(Input aInput)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:146,1
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:147,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - aInput
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 149
    functionName: mozilla::pkix::Reader::Init
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 9
    functionsReached:
    - Input::GetLength
    - Input::UnsafeGetData
    linkageType: ''
    returnType: Result
    signature: Result Init(Input aInput)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - expectedByte
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 153
    functionName: mozilla::pkix::Reader::Peek
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Peek(uint8_t expectedByte) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::Reader::EnsureLength
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' out'
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 162
    functionName: mozilla::pkix::Reader::Read
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::Reader::EnsureLength
    linkageType: ''
    returnType: Result
    signature: Result Read(uint8_t& out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::Reader::EnsureLength
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' out'
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 173
    functionName: mozilla::pkix::Reader::Read
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::Reader::EnsureLength
    linkageType: ''
    returnType: Result
    signature: Result Read(uint16_t& out)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:180,1
    - Dst: std::equal
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - (toMatch)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 188
    functionName: mozilla::pkix::Reader::MatchRest
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - std::equal
    linkageType: ''
    returnType: bool
    signature: bool MatchRest(const uint8_t (&toMatch)[N])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:194,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:195,1
    - Dst: std::equal
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:198,1
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - toMatch
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 203
    functionName: mozilla::pkix::Reader::MatchRest
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - Input::GetLength
    - std::equal
    - Input::UnsafeGetData
    linkageType: ''
    returnType: bool
    signature: bool MatchRest(Input toMatch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::Reader::EnsureLength
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - len
    argTypes:
    - Input::size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 212
    functionName: mozilla::pkix::Reader::Skip
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 3
    functionsReached:
    - mozilla::pkix::Reader::EnsureLength
    linkageType: ''
    returnType: Result
    signature: Result Skip(Input::size_type len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::Reader::EnsureLength
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:215,1
    - Dst: mozilla::pkix::Reader::Init
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:219,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - len
    - ' skipped'
    argTypes:
    - Input::size_type
    - Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 225
    functionName: mozilla::pkix::Reader::Skip
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 3
    functionsReached:
    - mozilla::pkix::Reader::Init
    - mozilla::pkix::Reader::EnsureLength
    linkageType: ''
    returnType: Result
    signature: Result Skip(Input::size_type len, Reader& skipped)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::Reader::EnsureLength
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:228,1
    - Dst: mozilla::pkix::Reader::Init
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:232,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - len
    - ' skipped'
    argTypes:
    - Input::size_type
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 238
    functionName: mozilla::pkix::Reader::Skip
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 3
    functionsReached:
    - mozilla::pkix::Reader::Init
    - mozilla::pkix::Reader::EnsureLength
    linkageType: ''
    returnType: Result
    signature: Result Skip(Input::size_type len, /*out*/ Input& skipped)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 240
    functionName: mozilla::pkix::Reader::SkipToEnd
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SkipToEnd()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::Reader::Skip
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:243,1
    - Dst: static_cast<Input::size_type>
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' skipped'
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 242
    functionDepth: 2
    functionLinenumber: 242
    functionLinenumberEnd: 244
    functionName: mozilla::pkix::Reader::SkipToEnd
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached:
    - static_cast<Input::size_type>
    - mozilla::pkix::Reader::Skip
    linkageType: ''
    returnType: Result
    signature: Result SkipToEnd(/*out*/ Input& skipped)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - len
    argTypes:
    - Input::size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 251
    functionName: mozilla::pkix::Reader::EnsureLength
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 20
    functionsReached:
    - static_cast<size_t>
    linkageType: ''
    returnType: Result
    signature: Result EnsureLength(Input::size_type len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 253
    functionName: mozilla::pkix::Reader::AtEnd
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool AtEnd() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 257
    functionName: mozilla::pkix::Reader::Mark::Mark
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Mark(const Mark&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' aInput'
    - aMark
    argTypes:
    - Reader
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 261
    functionName: mozilla::pkix::Reader::Mark::Mark
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Mark(const Reader& aInput, const uint8_t* aMark)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 264
    functionName: operator=(const Mark&)
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const Mark&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Mark
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 267
    functionName: mozilla::pkix::Reader::GetMark
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached:
    - Mark
    linkageType: ''
    returnType: Mark
    signature: Mark GetMark() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:271,1
    - Dst: mozilla::pkix::Reader::Init
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:273,1
    - Dst: static_cast<Input::size_type>
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:274,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' mark'
    - ' item'
    argTypes:
    - Mark
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 275
    functionName: mozilla::pkix::Reader::GetInput
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached:
    - NotReached
    - mozilla::pkix::Reader::Init
    - static_cast<Input::size_type>
    linkageType: ''
    returnType: Result
    signature: Result GetInput(const Mark& mark, /*out*/ Input& item)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - uint8_t*
    - Input::size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 286
    functionName: mozilla::pkix::Reader::Init
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: Result Init(const uint8_t* data, Input::size_type len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 291
    functionName: mozilla::pkix::Reader::Reader
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Reader(const Reader&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 292
    functionName: operator=(const Reader&)
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const Reader&)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/include/pkix/Input.h:299,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ' input'
    - toFind
    argTypes:
    - Input
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 306
    functionName: mozilla::pkix::InputContains
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/Input.h
    functionUses: 0
    functionsReached:
    - Reader::Read
    linkageType: ''
    returnType: bool
    signature: bool InputContains(const Input& input, uint8_t toFind)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ReadTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - ' input'
    - tag
    - ' value'
    argTypes:
    - Reader
    - uint8_t
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 91
    functionName: mozilla::pkix::der::ExpectTagAndGetValue
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 8
    functionsReached:
    - mozilla::pkix::der::ReadTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: "Result ExpectTagAndGetValue(Reader& input, uint8_t tag,\n                                   /*out*/
      Input& value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:96,1
    - Dst: Init
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' input'
    - tag
    - ' value'
    argTypes:
    - Reader
    - uint8_t
    - Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 101
    functionName: mozilla::pkix::der::ExpectTagAndGetValue
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 9
    functionsReached:
    - Init
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: "Result ExpectTagAndGetValue(Reader& input, uint8_t tag,\n                                   /*out*/
      Reader& value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:105,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' input'
    - tag
    argTypes:
    - Reader
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 110
    functionName: mozilla::pkix::der::ExpectTagAndEmptyValue
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::End
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: Result ExpectTagAndEmptyValue(Reader& input, uint8_t tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' input'
    - tag
    argTypes:
    - Reader
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: mozilla::pkix::der::ExpectTagAndSkipValue
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 8
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: Result ExpectTagAndSkipValue(Reader& input, uint8_t tag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:122,1
    - Dst: mozilla::pkix::der::ExpectTagAndSkipValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' input'
    - numberInClass
    argTypes:
    - Reader
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 120
    functionDepth: 3
    functionLinenumber: 120
    functionLinenumberEnd: 126
    functionName: mozilla::pkix::der::SkipOptionalImplicitPrimitiveTag
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndSkipValue
    - Peek
    linkageType: ''
    returnType: Result
    signature: "Result SkipOptionalImplicitPrimitiveTag(Reader& input,\n                                               uint8_t
      numberInClass)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetMark
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:132,1
    - Dst: mozilla::pkix::der::ExpectTagAndSkipValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:133,1
    - Dst: GetInput
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' input'
    - tag
    - ' tlv'
    argTypes:
    - Reader
    - uint8_t
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 130
    functionDepth: 3
    functionLinenumber: 130
    functionLinenumberEnd: 138
    functionName: mozilla::pkix::der::ExpectTagAndGetTLV
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - GetInput
    - mozilla::pkix::der::ExpectTagAndSkipValue
    - GetMark
    linkageType: ''
    returnType: Result
    signature: "Result ExpectTagAndGetTLV(Reader& input, uint8_t tag,\n                                 /*out*/
      Input& tlv)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AtEnd
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 146
    functionName: mozilla::pkix::der::End
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 1
    functionsReached:
    - AtEnd
    linkageType: ''
    returnType: Result
    signature: Result End(Reader& input)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:151,1
    - Dst: decoder
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:155,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ' input'
    - tag
    - decoder
    argTypes:
    - Reader
    - uint8_t
    - Decoder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 160
    functionName: mozilla::pkix::der::Nested
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - decoder
    - mozilla::pkix::der::End
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: Result Nested(Reader& input, uint8_t tag, Decoder decoder)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:166,1
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:170,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:174,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - ' input'
    - outerTag
    - innerTag
    - decoder
    argTypes:
    - Reader
    - uint8_t
    - uint8_t
    - Decoder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 175
    functionName: mozilla::pkix::der::Nested
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 1
    functionsReached:
    - mozilla::pkix::der::Nested
    - mozilla::pkix::der::End
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: "Result Nested(Reader& input, uint8_t outerTag, uint8_t innerTag,\n
      \                    Decoder decoder)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:208,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:213,1
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:221,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:225,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 5
    argNames:
    - ' input'
    - outerTag
    - innerTag
    - mayBeEmpty
    - decoder
    argTypes:
    - Reader
    - uint8_t
    - uint8_t
    - EmptyAllowed
    - Decoder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 205
    functionDepth: 3
    functionLinenumber: 205
    functionLinenumberEnd: 228
    functionName: mozilla::pkix::der::NestedOf
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::Nested
    - Reader::AtEnd
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: "Result NestedOf(Reader& input, uint8_t outerTag, uint8_t innerTag,\n
      \                      EmptyAllowed mayBeEmpty, Decoder decoder)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:236,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' outer'
    - expectedTag
    - ' inner'
    argTypes:
    - Reader
    - uint8_t
    - Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 234
    functionDepth: 2
    functionLinenumber: 234
    functionLinenumberEnd: 241
    functionName: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::End
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: "Result ExpectTagAndGetValueAtEnd(Reader& outer, uint8_t expectedTag,\n
      \                                       /*out*/ Reader& inner)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - outer
    - expectedTag
    - ' inner'
    argTypes:
    - Input
    - uint8_t
    - Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 248
    functionName: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 1
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    linkageType: ''
    returnType: Result
    signature: "Result ExpectTagAndGetValueAtEnd(Input outer, uint8_t expectedTag,\n
      \                                       /*out*/ Reader& inner)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:275,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:281,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:285,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 273
    functionDepth: 2
    functionLinenumber: 273
    functionLinenumberEnd: 299
    functionName: mozilla::pkix::der::Boolean
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::End
    - mozilla::pkix::der::ExpectTagAndGetValue
    - Reader::Read
    linkageType: ''
    returnType: Result
    signature: Result Boolean(Reader& input, /*out*/ bool& value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:309,1
    - Dst: mozilla::pkix::der::Boolean
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:310,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 307
    functionDepth: 3
    functionLinenumber: 307
    functionLinenumberEnd: 316
    functionName: mozilla::pkix::der::OptionalBoolean
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::Boolean
    - Peek
    linkageType: ''
    returnType: Result
    signature: Result OptionalBoolean(Reader& input, /*out*/ bool& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::internal::IntegralValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 322
    functionName: mozilla::pkix::der::Enumerated
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::internal::IntegralValue
    linkageType: ''
    returnType: Result
    signature: Result Enumerated(Reader& input, uint8_t& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::internal::TimeChoice
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' input'
    - ' time'
    argTypes:
    - Reader
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 341
    functionName: mozilla::pkix::der::GeneralizedTime
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::internal::TimeChoice
    linkageType: ''
    returnType: Result
    signature: Result GeneralizedTime(Reader& input, /*out*/ Time& time)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:347,1
    - Dst: mozilla::pkix::der::internal::TimeChoice
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' input'
    - ' time'
    argTypes:
    - Reader
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 349
    functionName: mozilla::pkix::der::TimeChoice
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::internal::TimeChoice
    - Peek
    linkageType: ''
    returnType: Result
    signature: Result TimeChoice(Reader& input, /*out*/ Time& time)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::internal::IntegralBytes
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 361
    functionName: mozilla::pkix::der::PositiveInteger
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::internal::IntegralBytes
    linkageType: ''
    returnType: Result
    signature: "Result PositiveInteger(\n    Reader& input, /*out*/ Input& value,\n
      \   /*optional out*/ Input::size_type* significantBytes = nullptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::internal::IntegralValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 367
    functionName: mozilla::pkix::der::Integer
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::internal::IntegralValue
    linkageType: ''
    returnType: Result
    signature: Result Integer(Reader& input, /*out*/ uint8_t& value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:381,1
    - Dst: mozilla::pkix::der::Integer
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:387,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - ' input'
    - defaultValue
    - ' value'
    argTypes:
    - Reader
    - long
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 373
    functionDepth: 2
    functionLinenumber: 373
    functionLinenumberEnd: 393
    functionName: mozilla::pkix::der::OptionalInteger
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::Integer
    - Peek
    linkageType: ''
    returnType: Result
    signature: "Result OptionalInteger(Reader& input, long defaultValue,\n                              /*out*/
      long& value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndEmptyValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 395
    functionDepth: 3
    functionLinenumber: 395
    functionLinenumberEnd: 397
    functionName: mozilla::pkix::der::Null
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndEmptyValue
    linkageType: ''
    returnType: Result
    signature: Result Null(Reader& input)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:402,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:406,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' input'
    - (expectedOid)
    argTypes:
    - Reader
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 400
    functionDepth: 2
    functionLinenumber: 400
    functionLinenumberEnd: 410
    functionName: mozilla::pkix::der::OID
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndGetValue
    - Reader::MatchRest
    linkageType: ''
    returnType: Result
    signature: Result OID(Reader& input, const uint8_t (&expectedOid)[Len])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::internal::IntegralBytes
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 427
    functionName: mozilla::pkix::der::CertificateSerialNumber
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::internal::IntegralBytes
    linkageType: ''
    returnType: Result
    signature: Result CertificateSerialNumber(Reader& input, /*out*/ Input& value)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:442,1
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:446,1
    - Dst: mozilla::pkix::der::NestedOf
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:452,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:461,1
    - Dst: mozilla::pkix::der::OptionalBoolean
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:466,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:471,1
    - Dst: extensionHandler
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:476,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - ' input'
    - tag
    - extensionHandler
    argTypes:
    - Reader
    - uint8_t
    - ExtensionHandler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 440
    functionDepth: 4
    functionLinenumber: 440
    functionLinenumberEnd: 486
    functionName: mozilla::pkix::der::OptionalExtensions
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndGetValue
    - mozilla::pkix::der::NestedOf
    - extensionHandler
    - mozilla::pkix::der::Nested
    - mozilla::pkix::der::OptionalBoolean
    - Peek
    linkageType: ''
    returnType: Result
    signature: "Result OptionalExtensions(Reader& input, uint8_t tag,\n                                 ExtensionHandler
      extensionHandler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 504
    functionName: operator=(const SignedDataWithSignature&)
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const SignedDataWithSignature&)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ReadTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - ' input'
    - tag
    - ' value'
    argTypes:
    - Reader
    - uint8_t
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 91
    functionName: mozilla::pkix::der::ExpectTagAndGetValue
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 18
    functionsReached:
    - mozilla::pkix::der::ReadTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: "Result ExpectTagAndGetValue(Reader& input, uint8_t tag,\n                                   /*out*/
      Input& value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:96,1
    - Dst: Init
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' input'
    - tag
    - ' value'
    argTypes:
    - Reader
    - uint8_t
    - Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 101
    functionName: mozilla::pkix::der::ExpectTagAndGetValue
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 19
    functionsReached:
    - Init
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: "Result ExpectTagAndGetValue(Reader& input, uint8_t tag,\n                                   /*out*/
      Reader& value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:105,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' input'
    - tag
    argTypes:
    - Reader
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 110
    functionName: mozilla::pkix::der::ExpectTagAndEmptyValue
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 1
    functionsReached:
    - mozilla::pkix::der::End
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: Result ExpectTagAndEmptyValue(Reader& input, uint8_t tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' input'
    - tag
    argTypes:
    - Reader
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: mozilla::pkix::der::ExpectTagAndSkipValue
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 10
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: Result ExpectTagAndSkipValue(Reader& input, uint8_t tag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:122,1
    - Dst: mozilla::pkix::der::ExpectTagAndSkipValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' input'
    - numberInClass
    argTypes:
    - Reader
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 120
    functionDepth: 3
    functionLinenumber: 120
    functionLinenumberEnd: 126
    functionName: mozilla::pkix::der::SkipOptionalImplicitPrimitiveTag
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndSkipValue
    - Peek
    linkageType: ''
    returnType: Result
    signature: "Result SkipOptionalImplicitPrimitiveTag(Reader& input,\n                                               uint8_t
      numberInClass)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetMark
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:132,1
    - Dst: mozilla::pkix::der::ExpectTagAndSkipValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:133,1
    - Dst: GetInput
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' input'
    - tag
    - ' tlv'
    argTypes:
    - Reader
    - uint8_t
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 130
    functionDepth: 3
    functionLinenumber: 130
    functionLinenumberEnd: 138
    functionName: mozilla::pkix::der::ExpectTagAndGetTLV
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - GetInput
    - mozilla::pkix::der::ExpectTagAndSkipValue
    - GetMark
    linkageType: ''
    returnType: Result
    signature: "Result ExpectTagAndGetTLV(Reader& input, uint8_t tag,\n                                 /*out*/
      Input& tlv)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AtEnd
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 146
    functionName: mozilla::pkix::der::End
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 6
    functionsReached:
    - AtEnd
    linkageType: ''
    returnType: Result
    signature: Result End(Reader& input)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:151,1
    - Dst: decoder
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:155,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ' input'
    - tag
    - decoder
    argTypes:
    - Reader
    - uint8_t
    - Decoder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 160
    functionName: mozilla::pkix::der::Nested
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 3
    functionsReached:
    - decoder
    - mozilla::pkix::der::End
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: Result Nested(Reader& input, uint8_t tag, Decoder decoder)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:166,1
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:170,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:174,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - ' input'
    - outerTag
    - innerTag
    - decoder
    argTypes:
    - Reader
    - uint8_t
    - uint8_t
    - Decoder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 175
    functionName: mozilla::pkix::der::Nested
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 4
    functionsReached:
    - mozilla::pkix::der::Nested
    - mozilla::pkix::der::End
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: "Result Nested(Reader& input, uint8_t outerTag, uint8_t innerTag,\n
      \                    Decoder decoder)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:208,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:213,1
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:221,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:225,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 5
    argNames:
    - ' input'
    - outerTag
    - innerTag
    - mayBeEmpty
    - decoder
    argTypes:
    - Reader
    - uint8_t
    - uint8_t
    - EmptyAllowed
    - Decoder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 205
    functionDepth: 3
    functionLinenumber: 205
    functionLinenumberEnd: 228
    functionName: mozilla::pkix::der::NestedOf
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 1
    functionsReached:
    - mozilla::pkix::der::Nested
    - Reader::AtEnd
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: "Result NestedOf(Reader& input, uint8_t outerTag, uint8_t innerTag,\n
      \                      EmptyAllowed mayBeEmpty, Decoder decoder)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:236,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' outer'
    - expectedTag
    - ' inner'
    argTypes:
    - Reader
    - uint8_t
    - Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 234
    functionDepth: 2
    functionLinenumber: 234
    functionLinenumberEnd: 241
    functionName: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 1
    functionsReached:
    - mozilla::pkix::der::End
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: "Result ExpectTagAndGetValueAtEnd(Reader& outer, uint8_t expectedTag,\n
      \                                       /*out*/ Reader& inner)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - outer
    - expectedTag
    - ' inner'
    argTypes:
    - Input
    - uint8_t
    - Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 248
    functionName: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 2
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    linkageType: ''
    returnType: Result
    signature: "Result ExpectTagAndGetValueAtEnd(Input outer, uint8_t expectedTag,\n
      \                                       /*out*/ Reader& inner)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:275,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:281,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:285,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 273
    functionDepth: 2
    functionLinenumber: 273
    functionLinenumberEnd: 299
    functionName: mozilla::pkix::der::Boolean
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 1
    functionsReached:
    - mozilla::pkix::der::End
    - mozilla::pkix::der::ExpectTagAndGetValue
    - Reader::Read
    linkageType: ''
    returnType: Result
    signature: Result Boolean(Reader& input, /*out*/ bool& value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:309,1
    - Dst: mozilla::pkix::der::Boolean
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:310,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 307
    functionDepth: 3
    functionLinenumber: 307
    functionLinenumberEnd: 316
    functionName: mozilla::pkix::der::OptionalBoolean
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 1
    functionsReached:
    - mozilla::pkix::der::Boolean
    - Peek
    linkageType: ''
    returnType: Result
    signature: Result OptionalBoolean(Reader& input, /*out*/ bool& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::internal::IntegralValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 322
    functionName: mozilla::pkix::der::Enumerated
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::internal::IntegralValue
    linkageType: ''
    returnType: Result
    signature: Result Enumerated(Reader& input, uint8_t& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::internal::TimeChoice
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' input'
    - ' time'
    argTypes:
    - Reader
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 341
    functionName: mozilla::pkix::der::GeneralizedTime
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::internal::TimeChoice
    linkageType: ''
    returnType: Result
    signature: Result GeneralizedTime(Reader& input, /*out*/ Time& time)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:347,1
    - Dst: mozilla::pkix::der::internal::TimeChoice
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' input'
    - ' time'
    argTypes:
    - Reader
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 349
    functionName: mozilla::pkix::der::TimeChoice
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::internal::TimeChoice
    - Peek
    linkageType: ''
    returnType: Result
    signature: Result TimeChoice(Reader& input, /*out*/ Time& time)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::internal::IntegralBytes
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 361
    functionName: mozilla::pkix::der::PositiveInteger
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::internal::IntegralBytes
    linkageType: ''
    returnType: Result
    signature: "Result PositiveInteger(\n    Reader& input, /*out*/ Input& value,\n
      \   /*optional out*/ Input::size_type* significantBytes = nullptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::internal::IntegralValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 367
    functionName: mozilla::pkix::der::Integer
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 1
    functionsReached:
    - mozilla::pkix::der::internal::IntegralValue
    linkageType: ''
    returnType: Result
    signature: Result Integer(Reader& input, /*out*/ uint8_t& value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:381,1
    - Dst: mozilla::pkix::der::Integer
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:387,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - ' input'
    - defaultValue
    - ' value'
    argTypes:
    - Reader
    - long
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 373
    functionDepth: 2
    functionLinenumber: 373
    functionLinenumberEnd: 393
    functionName: mozilla::pkix::der::OptionalInteger
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::Integer
    - Peek
    linkageType: ''
    returnType: Result
    signature: "Result OptionalInteger(Reader& input, long defaultValue,\n                              /*out*/
      long& value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndEmptyValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 395
    functionDepth: 3
    functionLinenumber: 395
    functionLinenumberEnd: 397
    functionName: mozilla::pkix::der::Null
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndEmptyValue
    linkageType: ''
    returnType: Result
    signature: Result Null(Reader& input)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:402,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:406,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' input'
    - (expectedOid)
    argTypes:
    - Reader
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 400
    functionDepth: 2
    functionLinenumber: 400
    functionLinenumberEnd: 410
    functionName: mozilla::pkix::der::OID
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndGetValue
    - Reader::MatchRest
    linkageType: ''
    returnType: Result
    signature: Result OID(Reader& input, const uint8_t (&expectedOid)[Len])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::internal::IntegralBytes
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 427
    functionName: mozilla::pkix::der::CertificateSerialNumber
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::internal::IntegralBytes
    linkageType: ''
    returnType: Result
    signature: Result CertificateSerialNumber(Reader& input, /*out*/ Input& value)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:442,1
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:446,1
    - Dst: mozilla::pkix::der::NestedOf
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:452,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:461,1
    - Dst: mozilla::pkix::der::OptionalBoolean
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:466,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:471,1
    - Dst: extensionHandler
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:476,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - ' input'
    - tag
    - extensionHandler
    argTypes:
    - Reader
    - uint8_t
    - ExtensionHandler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 440
    functionDepth: 4
    functionLinenumber: 440
    functionLinenumberEnd: 486
    functionName: mozilla::pkix::der::OptionalExtensions
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndGetValue
    - mozilla::pkix::der::NestedOf
    - extensionHandler
    - mozilla::pkix::der::Nested
    - mozilla::pkix::der::OptionalBoolean
    - Peek
    linkageType: ''
    returnType: Result
    signature: "Result OptionalExtensions(Reader& input, uint8_t tag,\n                                 ExtensionHandler
      extensionHandler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 504
    functionName: operator=(const SignedDataWithSignature&)
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const SignedDataWithSignature&)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ReadTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - ' input'
    - tag
    - ' value'
    argTypes:
    - Reader
    - uint8_t
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 91
    functionName: mozilla::pkix::der::ExpectTagAndGetValue
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 28
    functionsReached:
    - mozilla::pkix::der::ReadTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: "Result ExpectTagAndGetValue(Reader& input, uint8_t tag,\n                                   /*out*/
      Input& value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:96,1
    - Dst: Init
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' input'
    - tag
    - ' value'
    argTypes:
    - Reader
    - uint8_t
    - Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 101
    functionName: mozilla::pkix::der::ExpectTagAndGetValue
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 29
    functionsReached:
    - Init
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: "Result ExpectTagAndGetValue(Reader& input, uint8_t tag,\n                                   /*out*/
      Reader& value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:105,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' input'
    - tag
    argTypes:
    - Reader
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 110
    functionName: mozilla::pkix::der::ExpectTagAndEmptyValue
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 2
    functionsReached:
    - mozilla::pkix::der::End
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: Result ExpectTagAndEmptyValue(Reader& input, uint8_t tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' input'
    - tag
    argTypes:
    - Reader
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: mozilla::pkix::der::ExpectTagAndSkipValue
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 12
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: Result ExpectTagAndSkipValue(Reader& input, uint8_t tag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:122,1
    - Dst: mozilla::pkix::der::ExpectTagAndSkipValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' input'
    - numberInClass
    argTypes:
    - Reader
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 120
    functionDepth: 3
    functionLinenumber: 120
    functionLinenumberEnd: 126
    functionName: mozilla::pkix::der::SkipOptionalImplicitPrimitiveTag
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndSkipValue
    - Peek
    linkageType: ''
    returnType: Result
    signature: "Result SkipOptionalImplicitPrimitiveTag(Reader& input,\n                                               uint8_t
      numberInClass)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetMark
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:132,1
    - Dst: mozilla::pkix::der::ExpectTagAndSkipValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:133,1
    - Dst: GetInput
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' input'
    - tag
    - ' tlv'
    argTypes:
    - Reader
    - uint8_t
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 130
    functionDepth: 3
    functionLinenumber: 130
    functionLinenumberEnd: 138
    functionName: mozilla::pkix::der::ExpectTagAndGetTLV
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - GetInput
    - mozilla::pkix::der::ExpectTagAndSkipValue
    - GetMark
    linkageType: ''
    returnType: Result
    signature: "Result ExpectTagAndGetTLV(Reader& input, uint8_t tag,\n                                 /*out*/
      Input& tlv)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AtEnd
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 146
    functionName: mozilla::pkix::der::End
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 11
    functionsReached:
    - AtEnd
    linkageType: ''
    returnType: Result
    signature: Result End(Reader& input)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:151,1
    - Dst: decoder
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:155,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ' input'
    - tag
    - decoder
    argTypes:
    - Reader
    - uint8_t
    - Decoder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 160
    functionName: mozilla::pkix::der::Nested
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 6
    functionsReached:
    - decoder
    - mozilla::pkix::der::End
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: Result Nested(Reader& input, uint8_t tag, Decoder decoder)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:166,1
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:170,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:174,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - ' input'
    - outerTag
    - innerTag
    - decoder
    argTypes:
    - Reader
    - uint8_t
    - uint8_t
    - Decoder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 175
    functionName: mozilla::pkix::der::Nested
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 7
    functionsReached:
    - mozilla::pkix::der::Nested
    - mozilla::pkix::der::End
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: "Result Nested(Reader& input, uint8_t outerTag, uint8_t innerTag,\n
      \                    Decoder decoder)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:208,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:213,1
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:221,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:225,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 5
    argNames:
    - ' input'
    - outerTag
    - innerTag
    - mayBeEmpty
    - decoder
    argTypes:
    - Reader
    - uint8_t
    - uint8_t
    - EmptyAllowed
    - Decoder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 205
    functionDepth: 3
    functionLinenumber: 205
    functionLinenumberEnd: 228
    functionName: mozilla::pkix::der::NestedOf
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 2
    functionsReached:
    - mozilla::pkix::der::Nested
    - Reader::AtEnd
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: "Result NestedOf(Reader& input, uint8_t outerTag, uint8_t innerTag,\n
      \                      EmptyAllowed mayBeEmpty, Decoder decoder)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:236,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' outer'
    - expectedTag
    - ' inner'
    argTypes:
    - Reader
    - uint8_t
    - Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 234
    functionDepth: 2
    functionLinenumber: 234
    functionLinenumberEnd: 241
    functionName: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 2
    functionsReached:
    - mozilla::pkix::der::End
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: "Result ExpectTagAndGetValueAtEnd(Reader& outer, uint8_t expectedTag,\n
      \                                       /*out*/ Reader& inner)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - outer
    - expectedTag
    - ' inner'
    argTypes:
    - Input
    - uint8_t
    - Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 248
    functionName: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 3
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    linkageType: ''
    returnType: Result
    signature: "Result ExpectTagAndGetValueAtEnd(Input outer, uint8_t expectedTag,\n
      \                                       /*out*/ Reader& inner)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:275,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:281,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:285,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 273
    functionDepth: 2
    functionLinenumber: 273
    functionLinenumberEnd: 299
    functionName: mozilla::pkix::der::Boolean
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 2
    functionsReached:
    - mozilla::pkix::der::End
    - mozilla::pkix::der::ExpectTagAndGetValue
    - Reader::Read
    linkageType: ''
    returnType: Result
    signature: Result Boolean(Reader& input, /*out*/ bool& value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:309,1
    - Dst: mozilla::pkix::der::Boolean
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:310,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 307
    functionDepth: 3
    functionLinenumber: 307
    functionLinenumberEnd: 316
    functionName: mozilla::pkix::der::OptionalBoolean
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 2
    functionsReached:
    - mozilla::pkix::der::Boolean
    - Peek
    linkageType: ''
    returnType: Result
    signature: Result OptionalBoolean(Reader& input, /*out*/ bool& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::internal::IntegralValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 322
    functionName: mozilla::pkix::der::Enumerated
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::internal::IntegralValue
    linkageType: ''
    returnType: Result
    signature: Result Enumerated(Reader& input, uint8_t& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::internal::TimeChoice
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' input'
    - ' time'
    argTypes:
    - Reader
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 341
    functionName: mozilla::pkix::der::GeneralizedTime
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::internal::TimeChoice
    linkageType: ''
    returnType: Result
    signature: Result GeneralizedTime(Reader& input, /*out*/ Time& time)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:347,1
    - Dst: mozilla::pkix::der::internal::TimeChoice
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' input'
    - ' time'
    argTypes:
    - Reader
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 349
    functionName: mozilla::pkix::der::TimeChoice
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::internal::TimeChoice
    - Peek
    linkageType: ''
    returnType: Result
    signature: Result TimeChoice(Reader& input, /*out*/ Time& time)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::internal::IntegralBytes
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 361
    functionName: mozilla::pkix::der::PositiveInteger
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::internal::IntegralBytes
    linkageType: ''
    returnType: Result
    signature: "Result PositiveInteger(\n    Reader& input, /*out*/ Input& value,\n
      \   /*optional out*/ Input::size_type* significantBytes = nullptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::internal::IntegralValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 367
    functionName: mozilla::pkix::der::Integer
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 2
    functionsReached:
    - mozilla::pkix::der::internal::IntegralValue
    linkageType: ''
    returnType: Result
    signature: Result Integer(Reader& input, /*out*/ uint8_t& value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:381,1
    - Dst: mozilla::pkix::der::Integer
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:387,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - ' input'
    - defaultValue
    - ' value'
    argTypes:
    - Reader
    - long
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 373
    functionDepth: 2
    functionLinenumber: 373
    functionLinenumberEnd: 393
    functionName: mozilla::pkix::der::OptionalInteger
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::Integer
    - Peek
    linkageType: ''
    returnType: Result
    signature: "Result OptionalInteger(Reader& input, long defaultValue,\n                              /*out*/
      long& value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndEmptyValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 395
    functionDepth: 3
    functionLinenumber: 395
    functionLinenumberEnd: 397
    functionName: mozilla::pkix::der::Null
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndEmptyValue
    linkageType: ''
    returnType: Result
    signature: Result Null(Reader& input)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:402,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:406,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' input'
    - (expectedOid)
    argTypes:
    - Reader
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 400
    functionDepth: 2
    functionLinenumber: 400
    functionLinenumberEnd: 410
    functionName: mozilla::pkix::der::OID
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndGetValue
    - Reader::MatchRest
    linkageType: ''
    returnType: Result
    signature: Result OID(Reader& input, const uint8_t (&expectedOid)[Len])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::internal::IntegralBytes
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 427
    functionName: mozilla::pkix::der::CertificateSerialNumber
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::internal::IntegralBytes
    linkageType: ''
    returnType: Result
    signature: Result CertificateSerialNumber(Reader& input, /*out*/ Input& value)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:442,1
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:446,1
    - Dst: mozilla::pkix::der::NestedOf
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:452,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:461,1
    - Dst: mozilla::pkix::der::OptionalBoolean
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:466,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:471,1
    - Dst: extensionHandler
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:476,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - ' input'
    - tag
    - extensionHandler
    argTypes:
    - Reader
    - uint8_t
    - ExtensionHandler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 440
    functionDepth: 4
    functionLinenumber: 440
    functionLinenumberEnd: 486
    functionName: mozilla::pkix::der::OptionalExtensions
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndGetValue
    - mozilla::pkix::der::NestedOf
    - extensionHandler
    - mozilla::pkix::der::Nested
    - mozilla::pkix::der::OptionalBoolean
    - Peek
    linkageType: ''
    returnType: Result
    signature: "Result OptionalExtensions(Reader& input, uint8_t tag,\n                                 ExtensionHandler
      extensionHandler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 504
    functionName: operator=(const SignedDataWithSignature&)
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const SignedDataWithSignature&)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ReadTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - ' input'
    - tag
    - ' value'
    argTypes:
    - Reader
    - uint8_t
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 91
    functionName: mozilla::pkix::der::ExpectTagAndGetValue
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 38
    functionsReached:
    - mozilla::pkix::der::ReadTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: "Result ExpectTagAndGetValue(Reader& input, uint8_t tag,\n                                   /*out*/
      Input& value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:96,1
    - Dst: Init
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' input'
    - tag
    - ' value'
    argTypes:
    - Reader
    - uint8_t
    - Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 101
    functionName: mozilla::pkix::der::ExpectTagAndGetValue
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 39
    functionsReached:
    - Init
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: "Result ExpectTagAndGetValue(Reader& input, uint8_t tag,\n                                   /*out*/
      Reader& value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:105,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' input'
    - tag
    argTypes:
    - Reader
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 110
    functionName: mozilla::pkix::der::ExpectTagAndEmptyValue
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 3
    functionsReached:
    - mozilla::pkix::der::End
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: Result ExpectTagAndEmptyValue(Reader& input, uint8_t tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' input'
    - tag
    argTypes:
    - Reader
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: mozilla::pkix::der::ExpectTagAndSkipValue
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 14
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: Result ExpectTagAndSkipValue(Reader& input, uint8_t tag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:122,1
    - Dst: mozilla::pkix::der::ExpectTagAndSkipValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' input'
    - numberInClass
    argTypes:
    - Reader
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 120
    functionDepth: 3
    functionLinenumber: 120
    functionLinenumberEnd: 126
    functionName: mozilla::pkix::der::SkipOptionalImplicitPrimitiveTag
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndSkipValue
    - Peek
    linkageType: ''
    returnType: Result
    signature: "Result SkipOptionalImplicitPrimitiveTag(Reader& input,\n                                               uint8_t
      numberInClass)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetMark
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:132,1
    - Dst: mozilla::pkix::der::ExpectTagAndSkipValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:133,1
    - Dst: GetInput
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' input'
    - tag
    - ' tlv'
    argTypes:
    - Reader
    - uint8_t
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 130
    functionDepth: 3
    functionLinenumber: 130
    functionLinenumberEnd: 138
    functionName: mozilla::pkix::der::ExpectTagAndGetTLV
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - GetInput
    - mozilla::pkix::der::ExpectTagAndSkipValue
    - GetMark
    linkageType: ''
    returnType: Result
    signature: "Result ExpectTagAndGetTLV(Reader& input, uint8_t tag,\n                                 /*out*/
      Input& tlv)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AtEnd
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 146
    functionName: mozilla::pkix::der::End
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 16
    functionsReached:
    - AtEnd
    linkageType: ''
    returnType: Result
    signature: Result End(Reader& input)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:151,1
    - Dst: decoder
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:155,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ' input'
    - tag
    - decoder
    argTypes:
    - Reader
    - uint8_t
    - Decoder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 160
    functionName: mozilla::pkix::der::Nested
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 9
    functionsReached:
    - decoder
    - mozilla::pkix::der::End
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: Result Nested(Reader& input, uint8_t tag, Decoder decoder)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:166,1
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:170,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:174,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - ' input'
    - outerTag
    - innerTag
    - decoder
    argTypes:
    - Reader
    - uint8_t
    - uint8_t
    - Decoder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 175
    functionName: mozilla::pkix::der::Nested
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 10
    functionsReached:
    - mozilla::pkix::der::Nested
    - mozilla::pkix::der::End
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: "Result Nested(Reader& input, uint8_t outerTag, uint8_t innerTag,\n
      \                    Decoder decoder)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:208,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:213,1
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:221,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:225,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 5
    argNames:
    - ' input'
    - outerTag
    - innerTag
    - mayBeEmpty
    - decoder
    argTypes:
    - Reader
    - uint8_t
    - uint8_t
    - EmptyAllowed
    - Decoder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 205
    functionDepth: 3
    functionLinenumber: 205
    functionLinenumberEnd: 228
    functionName: mozilla::pkix::der::NestedOf
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 3
    functionsReached:
    - mozilla::pkix::der::Nested
    - Reader::AtEnd
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: "Result NestedOf(Reader& input, uint8_t outerTag, uint8_t innerTag,\n
      \                      EmptyAllowed mayBeEmpty, Decoder decoder)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:236,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' outer'
    - expectedTag
    - ' inner'
    argTypes:
    - Reader
    - uint8_t
    - Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 234
    functionDepth: 2
    functionLinenumber: 234
    functionLinenumberEnd: 241
    functionName: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 3
    functionsReached:
    - mozilla::pkix::der::End
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: "Result ExpectTagAndGetValueAtEnd(Reader& outer, uint8_t expectedTag,\n
      \                                       /*out*/ Reader& inner)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - outer
    - expectedTag
    - ' inner'
    argTypes:
    - Input
    - uint8_t
    - Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 248
    functionName: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 4
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    linkageType: ''
    returnType: Result
    signature: "Result ExpectTagAndGetValueAtEnd(Input outer, uint8_t expectedTag,\n
      \                                       /*out*/ Reader& inner)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:275,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:281,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:285,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 273
    functionDepth: 2
    functionLinenumber: 273
    functionLinenumberEnd: 299
    functionName: mozilla::pkix::der::Boolean
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 3
    functionsReached:
    - mozilla::pkix::der::End
    - mozilla::pkix::der::ExpectTagAndGetValue
    - Reader::Read
    linkageType: ''
    returnType: Result
    signature: Result Boolean(Reader& input, /*out*/ bool& value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:309,1
    - Dst: mozilla::pkix::der::Boolean
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:310,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 307
    functionDepth: 3
    functionLinenumber: 307
    functionLinenumberEnd: 316
    functionName: mozilla::pkix::der::OptionalBoolean
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 3
    functionsReached:
    - mozilla::pkix::der::Boolean
    - Peek
    linkageType: ''
    returnType: Result
    signature: Result OptionalBoolean(Reader& input, /*out*/ bool& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::internal::IntegralValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 322
    functionName: mozilla::pkix::der::Enumerated
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::internal::IntegralValue
    linkageType: ''
    returnType: Result
    signature: Result Enumerated(Reader& input, uint8_t& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::internal::TimeChoice
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' input'
    - ' time'
    argTypes:
    - Reader
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 341
    functionName: mozilla::pkix::der::GeneralizedTime
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::internal::TimeChoice
    linkageType: ''
    returnType: Result
    signature: Result GeneralizedTime(Reader& input, /*out*/ Time& time)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:347,1
    - Dst: mozilla::pkix::der::internal::TimeChoice
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' input'
    - ' time'
    argTypes:
    - Reader
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 349
    functionName: mozilla::pkix::der::TimeChoice
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::internal::TimeChoice
    - Peek
    linkageType: ''
    returnType: Result
    signature: Result TimeChoice(Reader& input, /*out*/ Time& time)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::internal::IntegralBytes
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 361
    functionName: mozilla::pkix::der::PositiveInteger
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::internal::IntegralBytes
    linkageType: ''
    returnType: Result
    signature: "Result PositiveInteger(\n    Reader& input, /*out*/ Input& value,\n
      \   /*optional out*/ Input::size_type* significantBytes = nullptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::internal::IntegralValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 367
    functionName: mozilla::pkix::der::Integer
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 3
    functionsReached:
    - mozilla::pkix::der::internal::IntegralValue
    linkageType: ''
    returnType: Result
    signature: Result Integer(Reader& input, /*out*/ uint8_t& value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:381,1
    - Dst: mozilla::pkix::der::Integer
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:387,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - ' input'
    - defaultValue
    - ' value'
    argTypes:
    - Reader
    - long
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 373
    functionDepth: 2
    functionLinenumber: 373
    functionLinenumberEnd: 393
    functionName: mozilla::pkix::der::OptionalInteger
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::Integer
    - Peek
    linkageType: ''
    returnType: Result
    signature: "Result OptionalInteger(Reader& input, long defaultValue,\n                              /*out*/
      long& value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndEmptyValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 395
    functionDepth: 3
    functionLinenumber: 395
    functionLinenumberEnd: 397
    functionName: mozilla::pkix::der::Null
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndEmptyValue
    linkageType: ''
    returnType: Result
    signature: Result Null(Reader& input)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:402,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:406,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' input'
    - (expectedOid)
    argTypes:
    - Reader
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 400
    functionDepth: 2
    functionLinenumber: 400
    functionLinenumberEnd: 410
    functionName: mozilla::pkix::der::OID
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndGetValue
    - Reader::MatchRest
    linkageType: ''
    returnType: Result
    signature: Result OID(Reader& input, const uint8_t (&expectedOid)[Len])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::internal::IntegralBytes
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 427
    functionName: mozilla::pkix::der::CertificateSerialNumber
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::internal::IntegralBytes
    linkageType: ''
    returnType: Result
    signature: Result CertificateSerialNumber(Reader& input, /*out*/ Input& value)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:442,1
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:446,1
    - Dst: mozilla::pkix::der::NestedOf
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:452,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:461,1
    - Dst: mozilla::pkix::der::OptionalBoolean
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:466,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:471,1
    - Dst: extensionHandler
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:476,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - ' input'
    - tag
    - extensionHandler
    argTypes:
    - Reader
    - uint8_t
    - ExtensionHandler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 440
    functionDepth: 4
    functionLinenumber: 440
    functionLinenumberEnd: 486
    functionName: mozilla::pkix::der::OptionalExtensions
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndGetValue
    - mozilla::pkix::der::NestedOf
    - extensionHandler
    - mozilla::pkix::der::Nested
    - mozilla::pkix::der::OptionalBoolean
    - Peek
    linkageType: ''
    returnType: Result
    signature: "Result OptionalExtensions(Reader& input, uint8_t tag,\n                                 ExtensionHandler
      extensionHandler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 504
    functionName: operator=(const SignedDataWithSignature&)
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const SignedDataWithSignature&)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ReadTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - ' input'
    - tag
    - ' value'
    argTypes:
    - Reader
    - uint8_t
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 91
    functionName: mozilla::pkix::der::ExpectTagAndGetValue
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 48
    functionsReached:
    - mozilla::pkix::der::ReadTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: "Result ExpectTagAndGetValue(Reader& input, uint8_t tag,\n                                   /*out*/
      Input& value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:96,1
    - Dst: Init
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' input'
    - tag
    - ' value'
    argTypes:
    - Reader
    - uint8_t
    - Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 101
    functionName: mozilla::pkix::der::ExpectTagAndGetValue
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 49
    functionsReached:
    - Init
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: "Result ExpectTagAndGetValue(Reader& input, uint8_t tag,\n                                   /*out*/
      Reader& value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:105,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' input'
    - tag
    argTypes:
    - Reader
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 110
    functionName: mozilla::pkix::der::ExpectTagAndEmptyValue
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 4
    functionsReached:
    - mozilla::pkix::der::End
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: Result ExpectTagAndEmptyValue(Reader& input, uint8_t tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' input'
    - tag
    argTypes:
    - Reader
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: mozilla::pkix::der::ExpectTagAndSkipValue
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 16
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: Result ExpectTagAndSkipValue(Reader& input, uint8_t tag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:122,1
    - Dst: mozilla::pkix::der::ExpectTagAndSkipValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' input'
    - numberInClass
    argTypes:
    - Reader
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 120
    functionDepth: 3
    functionLinenumber: 120
    functionLinenumberEnd: 126
    functionName: mozilla::pkix::der::SkipOptionalImplicitPrimitiveTag
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndSkipValue
    - Peek
    linkageType: ''
    returnType: Result
    signature: "Result SkipOptionalImplicitPrimitiveTag(Reader& input,\n                                               uint8_t
      numberInClass)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetMark
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:132,1
    - Dst: mozilla::pkix::der::ExpectTagAndSkipValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:133,1
    - Dst: GetInput
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' input'
    - tag
    - ' tlv'
    argTypes:
    - Reader
    - uint8_t
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 130
    functionDepth: 3
    functionLinenumber: 130
    functionLinenumberEnd: 138
    functionName: mozilla::pkix::der::ExpectTagAndGetTLV
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - GetInput
    - mozilla::pkix::der::ExpectTagAndSkipValue
    - GetMark
    linkageType: ''
    returnType: Result
    signature: "Result ExpectTagAndGetTLV(Reader& input, uint8_t tag,\n                                 /*out*/
      Input& tlv)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AtEnd
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 146
    functionName: mozilla::pkix::der::End
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 21
    functionsReached:
    - AtEnd
    linkageType: ''
    returnType: Result
    signature: Result End(Reader& input)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:151,1
    - Dst: decoder
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:155,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ' input'
    - tag
    - decoder
    argTypes:
    - Reader
    - uint8_t
    - Decoder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 160
    functionName: mozilla::pkix::der::Nested
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 12
    functionsReached:
    - decoder
    - mozilla::pkix::der::End
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: Result Nested(Reader& input, uint8_t tag, Decoder decoder)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:166,1
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:170,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:174,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - ' input'
    - outerTag
    - innerTag
    - decoder
    argTypes:
    - Reader
    - uint8_t
    - uint8_t
    - Decoder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 175
    functionName: mozilla::pkix::der::Nested
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 13
    functionsReached:
    - mozilla::pkix::der::Nested
    - mozilla::pkix::der::End
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: "Result Nested(Reader& input, uint8_t outerTag, uint8_t innerTag,\n
      \                    Decoder decoder)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:208,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:213,1
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:221,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:225,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 5
    argNames:
    - ' input'
    - outerTag
    - innerTag
    - mayBeEmpty
    - decoder
    argTypes:
    - Reader
    - uint8_t
    - uint8_t
    - EmptyAllowed
    - Decoder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 205
    functionDepth: 3
    functionLinenumber: 205
    functionLinenumberEnd: 228
    functionName: mozilla::pkix::der::NestedOf
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 4
    functionsReached:
    - mozilla::pkix::der::Nested
    - Reader::AtEnd
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: "Result NestedOf(Reader& input, uint8_t outerTag, uint8_t innerTag,\n
      \                      EmptyAllowed mayBeEmpty, Decoder decoder)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:236,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' outer'
    - expectedTag
    - ' inner'
    argTypes:
    - Reader
    - uint8_t
    - Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 234
    functionDepth: 2
    functionLinenumber: 234
    functionLinenumberEnd: 241
    functionName: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 4
    functionsReached:
    - mozilla::pkix::der::End
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: "Result ExpectTagAndGetValueAtEnd(Reader& outer, uint8_t expectedTag,\n
      \                                       /*out*/ Reader& inner)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - outer
    - expectedTag
    - ' inner'
    argTypes:
    - Input
    - uint8_t
    - Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 248
    functionName: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 5
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    linkageType: ''
    returnType: Result
    signature: "Result ExpectTagAndGetValueAtEnd(Input outer, uint8_t expectedTag,\n
      \                                       /*out*/ Reader& inner)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:275,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:281,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:285,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 273
    functionDepth: 2
    functionLinenumber: 273
    functionLinenumberEnd: 299
    functionName: mozilla::pkix::der::Boolean
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 4
    functionsReached:
    - mozilla::pkix::der::End
    - mozilla::pkix::der::ExpectTagAndGetValue
    - Reader::Read
    linkageType: ''
    returnType: Result
    signature: Result Boolean(Reader& input, /*out*/ bool& value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:309,1
    - Dst: mozilla::pkix::der::Boolean
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:310,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 307
    functionDepth: 3
    functionLinenumber: 307
    functionLinenumberEnd: 316
    functionName: mozilla::pkix::der::OptionalBoolean
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 4
    functionsReached:
    - mozilla::pkix::der::Boolean
    - Peek
    linkageType: ''
    returnType: Result
    signature: Result OptionalBoolean(Reader& input, /*out*/ bool& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::internal::IntegralValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 322
    functionName: mozilla::pkix::der::Enumerated
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::internal::IntegralValue
    linkageType: ''
    returnType: Result
    signature: Result Enumerated(Reader& input, uint8_t& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::internal::TimeChoice
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' input'
    - ' time'
    argTypes:
    - Reader
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 341
    functionName: mozilla::pkix::der::GeneralizedTime
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::internal::TimeChoice
    linkageType: ''
    returnType: Result
    signature: Result GeneralizedTime(Reader& input, /*out*/ Time& time)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:347,1
    - Dst: mozilla::pkix::der::internal::TimeChoice
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' input'
    - ' time'
    argTypes:
    - Reader
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 349
    functionName: mozilla::pkix::der::TimeChoice
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::internal::TimeChoice
    - Peek
    linkageType: ''
    returnType: Result
    signature: Result TimeChoice(Reader& input, /*out*/ Time& time)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::internal::IntegralBytes
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 361
    functionName: mozilla::pkix::der::PositiveInteger
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::internal::IntegralBytes
    linkageType: ''
    returnType: Result
    signature: "Result PositiveInteger(\n    Reader& input, /*out*/ Input& value,\n
      \   /*optional out*/ Input::size_type* significantBytes = nullptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::internal::IntegralValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 367
    functionName: mozilla::pkix::der::Integer
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 4
    functionsReached:
    - mozilla::pkix::der::internal::IntegralValue
    linkageType: ''
    returnType: Result
    signature: Result Integer(Reader& input, /*out*/ uint8_t& value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:381,1
    - Dst: mozilla::pkix::der::Integer
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:387,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - ' input'
    - defaultValue
    - ' value'
    argTypes:
    - Reader
    - long
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 373
    functionDepth: 2
    functionLinenumber: 373
    functionLinenumberEnd: 393
    functionName: mozilla::pkix::der::OptionalInteger
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::Integer
    - Peek
    linkageType: ''
    returnType: Result
    signature: "Result OptionalInteger(Reader& input, long defaultValue,\n                              /*out*/
      long& value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndEmptyValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 395
    functionDepth: 3
    functionLinenumber: 395
    functionLinenumberEnd: 397
    functionName: mozilla::pkix::der::Null
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndEmptyValue
    linkageType: ''
    returnType: Result
    signature: Result Null(Reader& input)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:402,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:406,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' input'
    - (expectedOid)
    argTypes:
    - Reader
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 400
    functionDepth: 2
    functionLinenumber: 400
    functionLinenumberEnd: 410
    functionName: mozilla::pkix::der::OID
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndGetValue
    - Reader::MatchRest
    linkageType: ''
    returnType: Result
    signature: Result OID(Reader& input, const uint8_t (&expectedOid)[Len])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::internal::IntegralBytes
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 427
    functionName: mozilla::pkix::der::CertificateSerialNumber
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::internal::IntegralBytes
    linkageType: ''
    returnType: Result
    signature: Result CertificateSerialNumber(Reader& input, /*out*/ Input& value)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:442,1
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:446,1
    - Dst: mozilla::pkix::der::NestedOf
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:452,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:461,1
    - Dst: mozilla::pkix::der::OptionalBoolean
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:466,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:471,1
    - Dst: extensionHandler
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:476,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - ' input'
    - tag
    - extensionHandler
    argTypes:
    - Reader
    - uint8_t
    - ExtensionHandler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 440
    functionDepth: 4
    functionLinenumber: 440
    functionLinenumberEnd: 486
    functionName: mozilla::pkix::der::OptionalExtensions
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndGetValue
    - mozilla::pkix::der::NestedOf
    - extensionHandler
    - mozilla::pkix::der::Nested
    - mozilla::pkix::der::OptionalBoolean
    - Peek
    linkageType: ''
    returnType: Result
    signature: "Result OptionalExtensions(Reader& input, uint8_t tag,\n                                 ExtensionHandler
      extensionHandler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 504
    functionName: operator=(const SignedDataWithSignature&)
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const SignedDataWithSignature&)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ReadTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - ' input'
    - tag
    - ' value'
    argTypes:
    - Reader
    - uint8_t
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 91
    functionName: mozilla::pkix::der::ExpectTagAndGetValue
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 58
    functionsReached:
    - mozilla::pkix::der::ReadTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: "Result ExpectTagAndGetValue(Reader& input, uint8_t tag,\n                                   /*out*/
      Input& value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:96,1
    - Dst: Init
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' input'
    - tag
    - ' value'
    argTypes:
    - Reader
    - uint8_t
    - Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 101
    functionName: mozilla::pkix::der::ExpectTagAndGetValue
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 59
    functionsReached:
    - Init
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: "Result ExpectTagAndGetValue(Reader& input, uint8_t tag,\n                                   /*out*/
      Reader& value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:105,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' input'
    - tag
    argTypes:
    - Reader
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 110
    functionName: mozilla::pkix::der::ExpectTagAndEmptyValue
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 5
    functionsReached:
    - mozilla::pkix::der::End
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: Result ExpectTagAndEmptyValue(Reader& input, uint8_t tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' input'
    - tag
    argTypes:
    - Reader
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: mozilla::pkix::der::ExpectTagAndSkipValue
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 18
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: Result ExpectTagAndSkipValue(Reader& input, uint8_t tag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:122,1
    - Dst: mozilla::pkix::der::ExpectTagAndSkipValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' input'
    - numberInClass
    argTypes:
    - Reader
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 120
    functionDepth: 3
    functionLinenumber: 120
    functionLinenumberEnd: 126
    functionName: mozilla::pkix::der::SkipOptionalImplicitPrimitiveTag
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndSkipValue
    - Peek
    linkageType: ''
    returnType: Result
    signature: "Result SkipOptionalImplicitPrimitiveTag(Reader& input,\n                                               uint8_t
      numberInClass)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetMark
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:132,1
    - Dst: mozilla::pkix::der::ExpectTagAndSkipValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:133,1
    - Dst: GetInput
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' input'
    - tag
    - ' tlv'
    argTypes:
    - Reader
    - uint8_t
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 130
    functionDepth: 3
    functionLinenumber: 130
    functionLinenumberEnd: 138
    functionName: mozilla::pkix::der::ExpectTagAndGetTLV
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - GetInput
    - mozilla::pkix::der::ExpectTagAndSkipValue
    - GetMark
    linkageType: ''
    returnType: Result
    signature: "Result ExpectTagAndGetTLV(Reader& input, uint8_t tag,\n                                 /*out*/
      Input& tlv)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AtEnd
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 146
    functionName: mozilla::pkix::der::End
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 26
    functionsReached:
    - AtEnd
    linkageType: ''
    returnType: Result
    signature: Result End(Reader& input)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:151,1
    - Dst: decoder
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:155,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ' input'
    - tag
    - decoder
    argTypes:
    - Reader
    - uint8_t
    - Decoder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 160
    functionName: mozilla::pkix::der::Nested
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 15
    functionsReached:
    - decoder
    - mozilla::pkix::der::End
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: Result Nested(Reader& input, uint8_t tag, Decoder decoder)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:166,1
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:170,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:174,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - ' input'
    - outerTag
    - innerTag
    - decoder
    argTypes:
    - Reader
    - uint8_t
    - uint8_t
    - Decoder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 175
    functionName: mozilla::pkix::der::Nested
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 16
    functionsReached:
    - mozilla::pkix::der::Nested
    - mozilla::pkix::der::End
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: "Result Nested(Reader& input, uint8_t outerTag, uint8_t innerTag,\n
      \                    Decoder decoder)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:208,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:213,1
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:221,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:225,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 5
    argNames:
    - ' input'
    - outerTag
    - innerTag
    - mayBeEmpty
    - decoder
    argTypes:
    - Reader
    - uint8_t
    - uint8_t
    - EmptyAllowed
    - Decoder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 205
    functionDepth: 3
    functionLinenumber: 205
    functionLinenumberEnd: 228
    functionName: mozilla::pkix::der::NestedOf
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 5
    functionsReached:
    - mozilla::pkix::der::Nested
    - Reader::AtEnd
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: "Result NestedOf(Reader& input, uint8_t outerTag, uint8_t innerTag,\n
      \                      EmptyAllowed mayBeEmpty, Decoder decoder)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:236,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' outer'
    - expectedTag
    - ' inner'
    argTypes:
    - Reader
    - uint8_t
    - Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 234
    functionDepth: 2
    functionLinenumber: 234
    functionLinenumberEnd: 241
    functionName: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 5
    functionsReached:
    - mozilla::pkix::der::End
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: "Result ExpectTagAndGetValueAtEnd(Reader& outer, uint8_t expectedTag,\n
      \                                       /*out*/ Reader& inner)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - outer
    - expectedTag
    - ' inner'
    argTypes:
    - Input
    - uint8_t
    - Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 248
    functionName: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 6
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    linkageType: ''
    returnType: Result
    signature: "Result ExpectTagAndGetValueAtEnd(Input outer, uint8_t expectedTag,\n
      \                                       /*out*/ Reader& inner)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:275,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:281,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:285,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 273
    functionDepth: 2
    functionLinenumber: 273
    functionLinenumberEnd: 299
    functionName: mozilla::pkix::der::Boolean
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 5
    functionsReached:
    - mozilla::pkix::der::End
    - mozilla::pkix::der::ExpectTagAndGetValue
    - Reader::Read
    linkageType: ''
    returnType: Result
    signature: Result Boolean(Reader& input, /*out*/ bool& value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:309,1
    - Dst: mozilla::pkix::der::Boolean
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:310,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 307
    functionDepth: 3
    functionLinenumber: 307
    functionLinenumberEnd: 316
    functionName: mozilla::pkix::der::OptionalBoolean
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 5
    functionsReached:
    - mozilla::pkix::der::Boolean
    - Peek
    linkageType: ''
    returnType: Result
    signature: Result OptionalBoolean(Reader& input, /*out*/ bool& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::internal::IntegralValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 322
    functionName: mozilla::pkix::der::Enumerated
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::internal::IntegralValue
    linkageType: ''
    returnType: Result
    signature: Result Enumerated(Reader& input, uint8_t& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::internal::TimeChoice
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' input'
    - ' time'
    argTypes:
    - Reader
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 341
    functionName: mozilla::pkix::der::GeneralizedTime
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::internal::TimeChoice
    linkageType: ''
    returnType: Result
    signature: Result GeneralizedTime(Reader& input, /*out*/ Time& time)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:347,1
    - Dst: mozilla::pkix::der::internal::TimeChoice
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' input'
    - ' time'
    argTypes:
    - Reader
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 349
    functionName: mozilla::pkix::der::TimeChoice
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::internal::TimeChoice
    - Peek
    linkageType: ''
    returnType: Result
    signature: Result TimeChoice(Reader& input, /*out*/ Time& time)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::internal::IntegralBytes
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 361
    functionName: mozilla::pkix::der::PositiveInteger
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::internal::IntegralBytes
    linkageType: ''
    returnType: Result
    signature: "Result PositiveInteger(\n    Reader& input, /*out*/ Input& value,\n
      \   /*optional out*/ Input::size_type* significantBytes = nullptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::internal::IntegralValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 367
    functionName: mozilla::pkix::der::Integer
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 5
    functionsReached:
    - mozilla::pkix::der::internal::IntegralValue
    linkageType: ''
    returnType: Result
    signature: Result Integer(Reader& input, /*out*/ uint8_t& value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:381,1
    - Dst: mozilla::pkix::der::Integer
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:387,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - ' input'
    - defaultValue
    - ' value'
    argTypes:
    - Reader
    - long
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 373
    functionDepth: 2
    functionLinenumber: 373
    functionLinenumberEnd: 393
    functionName: mozilla::pkix::der::OptionalInteger
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::Integer
    - Peek
    linkageType: ''
    returnType: Result
    signature: "Result OptionalInteger(Reader& input, long defaultValue,\n                              /*out*/
      long& value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndEmptyValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 395
    functionDepth: 3
    functionLinenumber: 395
    functionLinenumberEnd: 397
    functionName: mozilla::pkix::der::Null
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndEmptyValue
    linkageType: ''
    returnType: Result
    signature: Result Null(Reader& input)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:402,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:406,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' input'
    - (expectedOid)
    argTypes:
    - Reader
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 400
    functionDepth: 2
    functionLinenumber: 400
    functionLinenumberEnd: 410
    functionName: mozilla::pkix::der::OID
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndGetValue
    - Reader::MatchRest
    linkageType: ''
    returnType: Result
    signature: Result OID(Reader& input, const uint8_t (&expectedOid)[Len])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::internal::IntegralBytes
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 427
    functionName: mozilla::pkix::der::CertificateSerialNumber
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::internal::IntegralBytes
    linkageType: ''
    returnType: Result
    signature: Result CertificateSerialNumber(Reader& input, /*out*/ Input& value)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:442,1
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:446,1
    - Dst: mozilla::pkix::der::NestedOf
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:452,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:461,1
    - Dst: mozilla::pkix::der::OptionalBoolean
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:466,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:471,1
    - Dst: extensionHandler
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:476,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - ' input'
    - tag
    - extensionHandler
    argTypes:
    - Reader
    - uint8_t
    - ExtensionHandler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 440
    functionDepth: 4
    functionLinenumber: 440
    functionLinenumberEnd: 486
    functionName: mozilla::pkix::der::OptionalExtensions
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndGetValue
    - mozilla::pkix::der::NestedOf
    - extensionHandler
    - mozilla::pkix::der::Nested
    - mozilla::pkix::der::OptionalBoolean
    - Peek
    linkageType: ''
    returnType: Result
    signature: "Result OptionalExtensions(Reader& input, uint8_t tag,\n                                 ExtensionHandler
      extensionHandler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 504
    functionName: operator=(const SignedDataWithSignature&)
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const SignedDataWithSignature&)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ReadTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - ' input'
    - tag
    - ' value'
    argTypes:
    - Reader
    - uint8_t
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 91
    functionName: mozilla::pkix::der::ExpectTagAndGetValue
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 68
    functionsReached:
    - mozilla::pkix::der::ReadTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: "Result ExpectTagAndGetValue(Reader& input, uint8_t tag,\n                                   /*out*/
      Input& value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:96,1
    - Dst: Init
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' input'
    - tag
    - ' value'
    argTypes:
    - Reader
    - uint8_t
    - Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 101
    functionName: mozilla::pkix::der::ExpectTagAndGetValue
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 69
    functionsReached:
    - Init
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: "Result ExpectTagAndGetValue(Reader& input, uint8_t tag,\n                                   /*out*/
      Reader& value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:105,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' input'
    - tag
    argTypes:
    - Reader
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 110
    functionName: mozilla::pkix::der::ExpectTagAndEmptyValue
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 6
    functionsReached:
    - mozilla::pkix::der::End
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: Result ExpectTagAndEmptyValue(Reader& input, uint8_t tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' input'
    - tag
    argTypes:
    - Reader
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: mozilla::pkix::der::ExpectTagAndSkipValue
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 20
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: Result ExpectTagAndSkipValue(Reader& input, uint8_t tag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:122,1
    - Dst: mozilla::pkix::der::ExpectTagAndSkipValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' input'
    - numberInClass
    argTypes:
    - Reader
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 120
    functionDepth: 3
    functionLinenumber: 120
    functionLinenumberEnd: 126
    functionName: mozilla::pkix::der::SkipOptionalImplicitPrimitiveTag
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndSkipValue
    - Peek
    linkageType: ''
    returnType: Result
    signature: "Result SkipOptionalImplicitPrimitiveTag(Reader& input,\n                                               uint8_t
      numberInClass)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetMark
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:132,1
    - Dst: mozilla::pkix::der::ExpectTagAndSkipValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:133,1
    - Dst: GetInput
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' input'
    - tag
    - ' tlv'
    argTypes:
    - Reader
    - uint8_t
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 130
    functionDepth: 3
    functionLinenumber: 130
    functionLinenumberEnd: 138
    functionName: mozilla::pkix::der::ExpectTagAndGetTLV
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - GetInput
    - mozilla::pkix::der::ExpectTagAndSkipValue
    - GetMark
    linkageType: ''
    returnType: Result
    signature: "Result ExpectTagAndGetTLV(Reader& input, uint8_t tag,\n                                 /*out*/
      Input& tlv)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AtEnd
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 146
    functionName: mozilla::pkix::der::End
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 31
    functionsReached:
    - AtEnd
    linkageType: ''
    returnType: Result
    signature: Result End(Reader& input)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:151,1
    - Dst: decoder
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:155,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ' input'
    - tag
    - decoder
    argTypes:
    - Reader
    - uint8_t
    - Decoder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 160
    functionName: mozilla::pkix::der::Nested
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 18
    functionsReached:
    - decoder
    - mozilla::pkix::der::End
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: Result Nested(Reader& input, uint8_t tag, Decoder decoder)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:166,1
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:170,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:174,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - ' input'
    - outerTag
    - innerTag
    - decoder
    argTypes:
    - Reader
    - uint8_t
    - uint8_t
    - Decoder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 175
    functionName: mozilla::pkix::der::Nested
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 19
    functionsReached:
    - mozilla::pkix::der::Nested
    - mozilla::pkix::der::End
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: "Result Nested(Reader& input, uint8_t outerTag, uint8_t innerTag,\n
      \                    Decoder decoder)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:208,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:213,1
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:221,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:225,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 5
    argNames:
    - ' input'
    - outerTag
    - innerTag
    - mayBeEmpty
    - decoder
    argTypes:
    - Reader
    - uint8_t
    - uint8_t
    - EmptyAllowed
    - Decoder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 205
    functionDepth: 3
    functionLinenumber: 205
    functionLinenumberEnd: 228
    functionName: mozilla::pkix::der::NestedOf
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 6
    functionsReached:
    - mozilla::pkix::der::Nested
    - Reader::AtEnd
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: "Result NestedOf(Reader& input, uint8_t outerTag, uint8_t innerTag,\n
      \                      EmptyAllowed mayBeEmpty, Decoder decoder)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:236,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' outer'
    - expectedTag
    - ' inner'
    argTypes:
    - Reader
    - uint8_t
    - Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 234
    functionDepth: 2
    functionLinenumber: 234
    functionLinenumberEnd: 241
    functionName: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 6
    functionsReached:
    - mozilla::pkix::der::End
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: "Result ExpectTagAndGetValueAtEnd(Reader& outer, uint8_t expectedTag,\n
      \                                       /*out*/ Reader& inner)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - outer
    - expectedTag
    - ' inner'
    argTypes:
    - Input
    - uint8_t
    - Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 248
    functionName: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 7
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    linkageType: ''
    returnType: Result
    signature: "Result ExpectTagAndGetValueAtEnd(Input outer, uint8_t expectedTag,\n
      \                                       /*out*/ Reader& inner)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:275,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:281,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:285,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 273
    functionDepth: 2
    functionLinenumber: 273
    functionLinenumberEnd: 299
    functionName: mozilla::pkix::der::Boolean
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 6
    functionsReached:
    - mozilla::pkix::der::End
    - mozilla::pkix::der::ExpectTagAndGetValue
    - Reader::Read
    linkageType: ''
    returnType: Result
    signature: Result Boolean(Reader& input, /*out*/ bool& value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:309,1
    - Dst: mozilla::pkix::der::Boolean
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:310,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 307
    functionDepth: 3
    functionLinenumber: 307
    functionLinenumberEnd: 316
    functionName: mozilla::pkix::der::OptionalBoolean
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 6
    functionsReached:
    - mozilla::pkix::der::Boolean
    - Peek
    linkageType: ''
    returnType: Result
    signature: Result OptionalBoolean(Reader& input, /*out*/ bool& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::internal::IntegralValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 322
    functionName: mozilla::pkix::der::Enumerated
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::internal::IntegralValue
    linkageType: ''
    returnType: Result
    signature: Result Enumerated(Reader& input, uint8_t& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::internal::TimeChoice
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' input'
    - ' time'
    argTypes:
    - Reader
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 341
    functionName: mozilla::pkix::der::GeneralizedTime
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::internal::TimeChoice
    linkageType: ''
    returnType: Result
    signature: Result GeneralizedTime(Reader& input, /*out*/ Time& time)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:347,1
    - Dst: mozilla::pkix::der::internal::TimeChoice
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' input'
    - ' time'
    argTypes:
    - Reader
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 349
    functionName: mozilla::pkix::der::TimeChoice
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::internal::TimeChoice
    - Peek
    linkageType: ''
    returnType: Result
    signature: Result TimeChoice(Reader& input, /*out*/ Time& time)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::internal::IntegralBytes
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 361
    functionName: mozilla::pkix::der::PositiveInteger
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::internal::IntegralBytes
    linkageType: ''
    returnType: Result
    signature: "Result PositiveInteger(\n    Reader& input, /*out*/ Input& value,\n
      \   /*optional out*/ Input::size_type* significantBytes = nullptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::internal::IntegralValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 367
    functionName: mozilla::pkix::der::Integer
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 6
    functionsReached:
    - mozilla::pkix::der::internal::IntegralValue
    linkageType: ''
    returnType: Result
    signature: Result Integer(Reader& input, /*out*/ uint8_t& value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:381,1
    - Dst: mozilla::pkix::der::Integer
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:387,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - ' input'
    - defaultValue
    - ' value'
    argTypes:
    - Reader
    - long
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 373
    functionDepth: 2
    functionLinenumber: 373
    functionLinenumberEnd: 393
    functionName: mozilla::pkix::der::OptionalInteger
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::Integer
    - Peek
    linkageType: ''
    returnType: Result
    signature: "Result OptionalInteger(Reader& input, long defaultValue,\n                              /*out*/
      long& value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndEmptyValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 395
    functionDepth: 3
    functionLinenumber: 395
    functionLinenumberEnd: 397
    functionName: mozilla::pkix::der::Null
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndEmptyValue
    linkageType: ''
    returnType: Result
    signature: Result Null(Reader& input)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:402,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:406,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' input'
    - (expectedOid)
    argTypes:
    - Reader
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 400
    functionDepth: 2
    functionLinenumber: 400
    functionLinenumberEnd: 410
    functionName: mozilla::pkix::der::OID
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndGetValue
    - Reader::MatchRest
    linkageType: ''
    returnType: Result
    signature: Result OID(Reader& input, const uint8_t (&expectedOid)[Len])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::internal::IntegralBytes
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 427
    functionName: mozilla::pkix::der::CertificateSerialNumber
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::internal::IntegralBytes
    linkageType: ''
    returnType: Result
    signature: Result CertificateSerialNumber(Reader& input, /*out*/ Input& value)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:442,1
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:446,1
    - Dst: mozilla::pkix::der::NestedOf
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:452,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:461,1
    - Dst: mozilla::pkix::der::OptionalBoolean
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:466,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:471,1
    - Dst: extensionHandler
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:476,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - ' input'
    - tag
    - extensionHandler
    argTypes:
    - Reader
    - uint8_t
    - ExtensionHandler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 440
    functionDepth: 4
    functionLinenumber: 440
    functionLinenumberEnd: 486
    functionName: mozilla::pkix::der::OptionalExtensions
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndGetValue
    - mozilla::pkix::der::NestedOf
    - extensionHandler
    - mozilla::pkix::der::Nested
    - mozilla::pkix::der::OptionalBoolean
    - Peek
    linkageType: ''
    returnType: Result
    signature: "Result OptionalExtensions(Reader& input, uint8_t tag,\n                                 ExtensionHandler
      extensionHandler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 504
    functionName: operator=(const SignedDataWithSignature&)
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const SignedDataWithSignature&)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ReadTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - ' input'
    - tag
    - ' value'
    argTypes:
    - Reader
    - uint8_t
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 91
    functionName: mozilla::pkix::der::ExpectTagAndGetValue
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 78
    functionsReached:
    - mozilla::pkix::der::ReadTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: "Result ExpectTagAndGetValue(Reader& input, uint8_t tag,\n                                   /*out*/
      Input& value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:96,1
    - Dst: Init
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' input'
    - tag
    - ' value'
    argTypes:
    - Reader
    - uint8_t
    - Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 101
    functionName: mozilla::pkix::der::ExpectTagAndGetValue
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 79
    functionsReached:
    - Init
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: "Result ExpectTagAndGetValue(Reader& input, uint8_t tag,\n                                   /*out*/
      Reader& value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:105,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' input'
    - tag
    argTypes:
    - Reader
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 110
    functionName: mozilla::pkix::der::ExpectTagAndEmptyValue
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 7
    functionsReached:
    - mozilla::pkix::der::End
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: Result ExpectTagAndEmptyValue(Reader& input, uint8_t tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' input'
    - tag
    argTypes:
    - Reader
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: mozilla::pkix::der::ExpectTagAndSkipValue
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 22
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: Result ExpectTagAndSkipValue(Reader& input, uint8_t tag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:122,1
    - Dst: mozilla::pkix::der::ExpectTagAndSkipValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' input'
    - numberInClass
    argTypes:
    - Reader
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 120
    functionDepth: 3
    functionLinenumber: 120
    functionLinenumberEnd: 126
    functionName: mozilla::pkix::der::SkipOptionalImplicitPrimitiveTag
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndSkipValue
    - Peek
    linkageType: ''
    returnType: Result
    signature: "Result SkipOptionalImplicitPrimitiveTag(Reader& input,\n                                               uint8_t
      numberInClass)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetMark
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:132,1
    - Dst: mozilla::pkix::der::ExpectTagAndSkipValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:133,1
    - Dst: GetInput
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' input'
    - tag
    - ' tlv'
    argTypes:
    - Reader
    - uint8_t
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 130
    functionDepth: 3
    functionLinenumber: 130
    functionLinenumberEnd: 138
    functionName: mozilla::pkix::der::ExpectTagAndGetTLV
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - GetInput
    - mozilla::pkix::der::ExpectTagAndSkipValue
    - GetMark
    linkageType: ''
    returnType: Result
    signature: "Result ExpectTagAndGetTLV(Reader& input, uint8_t tag,\n                                 /*out*/
      Input& tlv)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AtEnd
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 146
    functionName: mozilla::pkix::der::End
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 36
    functionsReached:
    - AtEnd
    linkageType: ''
    returnType: Result
    signature: Result End(Reader& input)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:151,1
    - Dst: decoder
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:155,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ' input'
    - tag
    - decoder
    argTypes:
    - Reader
    - uint8_t
    - Decoder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 160
    functionName: mozilla::pkix::der::Nested
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 21
    functionsReached:
    - decoder
    - mozilla::pkix::der::End
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: Result Nested(Reader& input, uint8_t tag, Decoder decoder)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:166,1
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:170,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:174,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - ' input'
    - outerTag
    - innerTag
    - decoder
    argTypes:
    - Reader
    - uint8_t
    - uint8_t
    - Decoder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 175
    functionName: mozilla::pkix::der::Nested
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 22
    functionsReached:
    - mozilla::pkix::der::Nested
    - mozilla::pkix::der::End
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: "Result Nested(Reader& input, uint8_t outerTag, uint8_t innerTag,\n
      \                    Decoder decoder)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:208,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:213,1
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:221,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:225,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 5
    argNames:
    - ' input'
    - outerTag
    - innerTag
    - mayBeEmpty
    - decoder
    argTypes:
    - Reader
    - uint8_t
    - uint8_t
    - EmptyAllowed
    - Decoder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 205
    functionDepth: 3
    functionLinenumber: 205
    functionLinenumberEnd: 228
    functionName: mozilla::pkix::der::NestedOf
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 7
    functionsReached:
    - mozilla::pkix::der::Nested
    - Reader::AtEnd
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: "Result NestedOf(Reader& input, uint8_t outerTag, uint8_t innerTag,\n
      \                      EmptyAllowed mayBeEmpty, Decoder decoder)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:236,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' outer'
    - expectedTag
    - ' inner'
    argTypes:
    - Reader
    - uint8_t
    - Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 234
    functionDepth: 2
    functionLinenumber: 234
    functionLinenumberEnd: 241
    functionName: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 7
    functionsReached:
    - mozilla::pkix::der::End
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: "Result ExpectTagAndGetValueAtEnd(Reader& outer, uint8_t expectedTag,\n
      \                                       /*out*/ Reader& inner)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - outer
    - expectedTag
    - ' inner'
    argTypes:
    - Input
    - uint8_t
    - Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 248
    functionName: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 8
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    linkageType: ''
    returnType: Result
    signature: "Result ExpectTagAndGetValueAtEnd(Input outer, uint8_t expectedTag,\n
      \                                       /*out*/ Reader& inner)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:275,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:281,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:285,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 273
    functionDepth: 2
    functionLinenumber: 273
    functionLinenumberEnd: 299
    functionName: mozilla::pkix::der::Boolean
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 7
    functionsReached:
    - mozilla::pkix::der::End
    - mozilla::pkix::der::ExpectTagAndGetValue
    - Reader::Read
    linkageType: ''
    returnType: Result
    signature: Result Boolean(Reader& input, /*out*/ bool& value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:309,1
    - Dst: mozilla::pkix::der::Boolean
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:310,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 307
    functionDepth: 3
    functionLinenumber: 307
    functionLinenumberEnd: 316
    functionName: mozilla::pkix::der::OptionalBoolean
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 7
    functionsReached:
    - mozilla::pkix::der::Boolean
    - Peek
    linkageType: ''
    returnType: Result
    signature: Result OptionalBoolean(Reader& input, /*out*/ bool& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::internal::IntegralValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 322
    functionName: mozilla::pkix::der::Enumerated
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::internal::IntegralValue
    linkageType: ''
    returnType: Result
    signature: Result Enumerated(Reader& input, uint8_t& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::internal::TimeChoice
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' input'
    - ' time'
    argTypes:
    - Reader
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 341
    functionName: mozilla::pkix::der::GeneralizedTime
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::internal::TimeChoice
    linkageType: ''
    returnType: Result
    signature: Result GeneralizedTime(Reader& input, /*out*/ Time& time)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:347,1
    - Dst: mozilla::pkix::der::internal::TimeChoice
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' input'
    - ' time'
    argTypes:
    - Reader
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 349
    functionName: mozilla::pkix::der::TimeChoice
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::internal::TimeChoice
    - Peek
    linkageType: ''
    returnType: Result
    signature: Result TimeChoice(Reader& input, /*out*/ Time& time)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::internal::IntegralBytes
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 361
    functionName: mozilla::pkix::der::PositiveInteger
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::internal::IntegralBytes
    linkageType: ''
    returnType: Result
    signature: "Result PositiveInteger(\n    Reader& input, /*out*/ Input& value,\n
      \   /*optional out*/ Input::size_type* significantBytes = nullptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::internal::IntegralValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 367
    functionName: mozilla::pkix::der::Integer
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 7
    functionsReached:
    - mozilla::pkix::der::internal::IntegralValue
    linkageType: ''
    returnType: Result
    signature: Result Integer(Reader& input, /*out*/ uint8_t& value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:381,1
    - Dst: mozilla::pkix::der::Integer
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:387,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - ' input'
    - defaultValue
    - ' value'
    argTypes:
    - Reader
    - long
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 373
    functionDepth: 2
    functionLinenumber: 373
    functionLinenumberEnd: 393
    functionName: mozilla::pkix::der::OptionalInteger
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::Integer
    - Peek
    linkageType: ''
    returnType: Result
    signature: "Result OptionalInteger(Reader& input, long defaultValue,\n                              /*out*/
      long& value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndEmptyValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 395
    functionDepth: 3
    functionLinenumber: 395
    functionLinenumberEnd: 397
    functionName: mozilla::pkix::der::Null
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndEmptyValue
    linkageType: ''
    returnType: Result
    signature: Result Null(Reader& input)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:402,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:406,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' input'
    - (expectedOid)
    argTypes:
    - Reader
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 400
    functionDepth: 2
    functionLinenumber: 400
    functionLinenumberEnd: 410
    functionName: mozilla::pkix::der::OID
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndGetValue
    - Reader::MatchRest
    linkageType: ''
    returnType: Result
    signature: Result OID(Reader& input, const uint8_t (&expectedOid)[Len])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::internal::IntegralBytes
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 427
    functionName: mozilla::pkix::der::CertificateSerialNumber
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::internal::IntegralBytes
    linkageType: ''
    returnType: Result
    signature: Result CertificateSerialNumber(Reader& input, /*out*/ Input& value)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:442,1
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:446,1
    - Dst: mozilla::pkix::der::NestedOf
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:452,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:461,1
    - Dst: mozilla::pkix::der::OptionalBoolean
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:466,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:471,1
    - Dst: extensionHandler
      Src: /src/nss/lib/mozpkix/include/pkix/pkixder.h:476,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - ' input'
    - tag
    - extensionHandler
    argTypes:
    - Reader
    - uint8_t
    - ExtensionHandler
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 440
    functionDepth: 4
    functionLinenumber: 440
    functionLinenumberEnd: 486
    functionName: mozilla::pkix::der::OptionalExtensions
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndGetValue
    - mozilla::pkix::der::NestedOf
    - extensionHandler
    - mozilla::pkix::der::Nested
    - mozilla::pkix::der::OptionalBoolean
    - Peek
    linkageType: ''
    returnType: Result
    signature: "Result OptionalExtensions(Reader& input, uint8_t tag,\n                                 ExtensionHandler
      extensionHandler)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 504
    functionName: operator=(const SignedDataWithSignature&)
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const SignedDataWithSignature&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix/pkixnss.h:105,1
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/include/pkix/pkixnss.h:105,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/include/pkix/pkixnss.h:106,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/include/pkix/pkixnss.h:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 110
    functionName: mozilla::pkix::UnsafeMapInputToSECItem
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixnss.h
    functionUses: 0
    functionsReached:
    - Input::GetLength
    - const_cast<uint8_t*>
    - Input::UnsafeGetData
    linkageType: ''
    returnType: SECItem
    signature: SECItem UnsafeMapInputToSECItem(Input input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix/pkixnss.h:105,1
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/include/pkix/pkixnss.h:105,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/include/pkix/pkixnss.h:106,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/include/pkix/pkixnss.h:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 110
    functionName: mozilla::pkix::UnsafeMapInputToSECItem
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixnss.h
    functionUses: 0
    functionsReached:
    - Input::GetLength
    - const_cast<uint8_t*>
    - Input::UnsafeGetData
    linkageType: ''
    returnType: SECItem
    signature: SECItem UnsafeMapInputToSECItem(Input input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix/pkixnss.h:105,1
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/include/pkix/pkixnss.h:105,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/include/pkix/pkixnss.h:106,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/include/pkix/pkixnss.h:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 110
    functionName: mozilla::pkix::UnsafeMapInputToSECItem
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixnss.h
    functionUses: 0
    functionsReached:
    - Input::GetLength
    - const_cast<uint8_t*>
    - Input::UnsafeGetData
    linkageType: ''
    returnType: SECItem
    signature: SECItem UnsafeMapInputToSECItem(Input input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix/pkixnss.h:105,1
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/include/pkix/pkixnss.h:105,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/include/pkix/pkixnss.h:106,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/include/pkix/pkixnss.h:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 110
    functionName: mozilla::pkix::UnsafeMapInputToSECItem
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixnss.h
    functionUses: 0
    functionsReached:
    - Input::GetLength
    - const_cast<uint8_t*>
    - Input::UnsafeGetData
    linkageType: ''
    returnType: SECItem
    signature: SECItem UnsafeMapInputToSECItem(Input input)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - aCertDER
    - aEndEntityOrCA
    - aChildCert
    argTypes:
    - Input
    - EndEntityOrCA
    - BackCert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 50
    functionName: mozilla::pkix::BackCert::BackCert
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void BackCert(Input aCertDER, EndEntityOrCA aEndEntityOrCA,\n           const
      BackCert* aChildCert)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: mozilla::pkix::BackCert::GetDER
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Input
    signature: Input GetDER() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: '& GetSignedData() const'
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: der::SignedDataWithSignature
    signature: der::SignedDataWithSignature & GetSignedData() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: mozilla::pkix::BackCert::GetVersion
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: der::Version
    signature: der::Version GetVersion() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: mozilla::pkix::BackCert::GetSerialNumber
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Input
    signature: Input GetSerialNumber() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: mozilla::pkix::BackCert::GetSignature
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Input
    signature: Input GetSignature() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: mozilla::pkix::BackCert::GetIssuer
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Input
    signature: Input GetIssuer() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: mozilla::pkix::BackCert::GetValidity
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Input
    signature: Input GetValidity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: mozilla::pkix::BackCert::GetSubject
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Input
    signature: Input GetSubject() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: mozilla::pkix::BackCert::GetSubjectPublicKeyInfo
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Input
    signature: Input GetSubjectPublicKeyInfo() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::BackCert::MaybeInput
      Src: /src/nss/lib/mozpkix/include/pkix/pkixutil.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: mozilla::pkix::BackCert::GetAuthorityInfoAccess
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::BackCert::MaybeInput
    linkageType: ''
    returnType: Input
    signature: Input * GetAuthorityInfoAccess() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::BackCert::MaybeInput
      Src: /src/nss/lib/mozpkix/include/pkix/pkixutil.h:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: mozilla::pkix::BackCert::GetBasicConstraints
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::BackCert::MaybeInput
    linkageType: ''
    returnType: Input
    signature: Input * GetBasicConstraints() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::BackCert::MaybeInput
      Src: /src/nss/lib/mozpkix/include/pkix/pkixutil.h:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: mozilla::pkix::BackCert::GetCertificatePolicies
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::BackCert::MaybeInput
    linkageType: ''
    returnType: Input
    signature: Input * GetCertificatePolicies() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::BackCert::MaybeInput
      Src: /src/nss/lib/mozpkix/include/pkix/pkixutil.h:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: mozilla::pkix::BackCert::GetExtKeyUsage
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::BackCert::MaybeInput
    linkageType: ''
    returnType: Input
    signature: Input * GetExtKeyUsage() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::BackCert::MaybeInput
      Src: /src/nss/lib/mozpkix/include/pkix/pkixutil.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: mozilla::pkix::BackCert::GetKeyUsage
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::BackCert::MaybeInput
    linkageType: ''
    returnType: Input
    signature: Input * GetKeyUsage() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::BackCert::MaybeInput
      Src: /src/nss/lib/mozpkix/include/pkix/pkixutil.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: mozilla::pkix::BackCert::GetInhibitAnyPolicy
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::BackCert::MaybeInput
    linkageType: ''
    returnType: Input
    signature: Input * GetInhibitAnyPolicy() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::BackCert::MaybeInput
      Src: /src/nss/lib/mozpkix/include/pkix/pkixutil.h:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 85
    functionName: mozilla::pkix::BackCert::GetNameConstraints
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::BackCert::MaybeInput
    linkageType: ''
    returnType: Input
    signature: Input * GetNameConstraints() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::BackCert::MaybeInput
      Src: /src/nss/lib/mozpkix/include/pkix/pkixutil.h:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: mozilla::pkix::BackCert::GetSubjectAltName
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::BackCert::MaybeInput
    linkageType: ''
    returnType: Input
    signature: Input * GetSubjectAltName() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::BackCert::MaybeInput
      Src: /src/nss/lib/mozpkix/include/pkix/pkixutil.h:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: mozilla::pkix::BackCert::GetRequiredTLSFeatures
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::BackCert::MaybeInput
    linkageType: ''
    returnType: Input
    signature: Input * GetRequiredTLSFeatures() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::BackCert::MaybeInput
      Src: /src/nss/lib/mozpkix/include/pkix/pkixutil.h:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: mozilla::pkix::BackCert::GetSignedCertificateTimestamps
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::BackCert::MaybeInput
    linkageType: ''
    returnType: Input
    signature: Input * GetSignedCertificateTimestamps() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/include/pkix/pkixutil.h:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' item'
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 110
    functionName: mozilla::pkix::BackCert::MaybeInput
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 10
    functionsReached:
    - GetLength
    linkageType: ''
    returnType: Input
    signature: Input * MaybeInput(const Input& item)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: mozilla::pkix::BackCert::BackCert
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BackCert(const BackCert&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: operator=(const BackCert&)
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const BackCert&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: mozilla::pkix::NonOwningDERArray::NonOwningDERArray
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NonOwningDERArray()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 151
    functionName: mozilla::pkix::NonOwningDERArray::GetLength
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t GetLength() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 155
    functionName: mozilla::pkix::NonOwningDERArray::GetDER
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Input
    signature: Input * GetDER(size_t i) const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/nss/lib/mozpkix/include/pkix/pkixutil.h:161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - der
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 167
    functionName: mozilla::pkix::NonOwningDERArray::Append
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached:
    - Init
    linkageType: ''
    returnType: Result
    signature: Result Append(Input der)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 176
    functionName: mozilla::pkix::NonOwningDERArray::NonOwningDERArray
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NonOwningDERArray(const NonOwningDERArray&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 177
    functionName: operator=(const NonOwningDERArray&)
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const NonOwningDERArray&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/include/pkix/pkixutil.h:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - year
    argTypes:
    - unsigned int
    assertStmts:
    - condition: (year <= 9999)
      pos:
        line_end: 185
        line_start: 185
        source_file: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    constantsTouched: []
    func_position:
      end: 191
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 191
    functionName: mozilla::pkix::DaysBeforeYear
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int DaysBeforeYear(unsigned int year)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - digestAlgorithm
    argTypes:
    - DigestAlgorithm
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 263
    functionName: mozilla::pkix::DigestAlgorithmToSizeInBytes
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t DigestAlgorithmToSizeInBytes(DigestAlgorithm digestAlgorithm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - aCertDER
    - aEndEntityOrCA
    - aChildCert
    argTypes:
    - Input
    - EndEntityOrCA
    - BackCert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 50
    functionName: mozilla::pkix::BackCert::BackCert
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void BackCert(Input aCertDER, EndEntityOrCA aEndEntityOrCA,\n           const
      BackCert* aChildCert)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: mozilla::pkix::BackCert::GetDER
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Input
    signature: Input GetDER() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: '& GetSignedData() const'
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: der::SignedDataWithSignature
    signature: der::SignedDataWithSignature & GetSignedData() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: mozilla::pkix::BackCert::GetVersion
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: der::Version
    signature: der::Version GetVersion() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: mozilla::pkix::BackCert::GetSerialNumber
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Input
    signature: Input GetSerialNumber() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: mozilla::pkix::BackCert::GetSignature
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Input
    signature: Input GetSignature() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: mozilla::pkix::BackCert::GetIssuer
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Input
    signature: Input GetIssuer() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: mozilla::pkix::BackCert::GetValidity
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Input
    signature: Input GetValidity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: mozilla::pkix::BackCert::GetSubject
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Input
    signature: Input GetSubject() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: mozilla::pkix::BackCert::GetSubjectPublicKeyInfo
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Input
    signature: Input GetSubjectPublicKeyInfo() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::BackCert::MaybeInput
      Src: /src/nss/lib/mozpkix/include/pkix/pkixutil.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: mozilla::pkix::BackCert::GetAuthorityInfoAccess
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::BackCert::MaybeInput
    linkageType: ''
    returnType: Input
    signature: Input * GetAuthorityInfoAccess() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::BackCert::MaybeInput
      Src: /src/nss/lib/mozpkix/include/pkix/pkixutil.h:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: mozilla::pkix::BackCert::GetBasicConstraints
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::BackCert::MaybeInput
    linkageType: ''
    returnType: Input
    signature: Input * GetBasicConstraints() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::BackCert::MaybeInput
      Src: /src/nss/lib/mozpkix/include/pkix/pkixutil.h:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: mozilla::pkix::BackCert::GetCertificatePolicies
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::BackCert::MaybeInput
    linkageType: ''
    returnType: Input
    signature: Input * GetCertificatePolicies() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::BackCert::MaybeInput
      Src: /src/nss/lib/mozpkix/include/pkix/pkixutil.h:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: mozilla::pkix::BackCert::GetExtKeyUsage
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::BackCert::MaybeInput
    linkageType: ''
    returnType: Input
    signature: Input * GetExtKeyUsage() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::BackCert::MaybeInput
      Src: /src/nss/lib/mozpkix/include/pkix/pkixutil.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: mozilla::pkix::BackCert::GetKeyUsage
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::BackCert::MaybeInput
    linkageType: ''
    returnType: Input
    signature: Input * GetKeyUsage() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::BackCert::MaybeInput
      Src: /src/nss/lib/mozpkix/include/pkix/pkixutil.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: mozilla::pkix::BackCert::GetInhibitAnyPolicy
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::BackCert::MaybeInput
    linkageType: ''
    returnType: Input
    signature: Input * GetInhibitAnyPolicy() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::BackCert::MaybeInput
      Src: /src/nss/lib/mozpkix/include/pkix/pkixutil.h:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 85
    functionName: mozilla::pkix::BackCert::GetNameConstraints
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::BackCert::MaybeInput
    linkageType: ''
    returnType: Input
    signature: Input * GetNameConstraints() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::BackCert::MaybeInput
      Src: /src/nss/lib/mozpkix/include/pkix/pkixutil.h:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: mozilla::pkix::BackCert::GetSubjectAltName
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::BackCert::MaybeInput
    linkageType: ''
    returnType: Input
    signature: Input * GetSubjectAltName() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::BackCert::MaybeInput
      Src: /src/nss/lib/mozpkix/include/pkix/pkixutil.h:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: mozilla::pkix::BackCert::GetRequiredTLSFeatures
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::BackCert::MaybeInput
    linkageType: ''
    returnType: Input
    signature: Input * GetRequiredTLSFeatures() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::BackCert::MaybeInput
      Src: /src/nss/lib/mozpkix/include/pkix/pkixutil.h:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: mozilla::pkix::BackCert::GetSignedCertificateTimestamps
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::BackCert::MaybeInput
    linkageType: ''
    returnType: Input
    signature: Input * GetSignedCertificateTimestamps() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/include/pkix/pkixutil.h:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' item'
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 110
    functionName: mozilla::pkix::BackCert::MaybeInput
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 20
    functionsReached:
    - GetLength
    linkageType: ''
    returnType: Input
    signature: Input * MaybeInput(const Input& item)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: mozilla::pkix::BackCert::BackCert
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BackCert(const BackCert&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: operator=(const BackCert&)
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const BackCert&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: mozilla::pkix::NonOwningDERArray::NonOwningDERArray
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NonOwningDERArray()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 151
    functionName: mozilla::pkix::NonOwningDERArray::GetLength
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t GetLength() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 155
    functionName: mozilla::pkix::NonOwningDERArray::GetDER
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Input
    signature: Input * GetDER(size_t i) const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/nss/lib/mozpkix/include/pkix/pkixutil.h:161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - der
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 167
    functionName: mozilla::pkix::NonOwningDERArray::Append
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached:
    - Init
    linkageType: ''
    returnType: Result
    signature: Result Append(Input der)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 176
    functionName: mozilla::pkix::NonOwningDERArray::NonOwningDERArray
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NonOwningDERArray(const NonOwningDERArray&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 177
    functionName: operator=(const NonOwningDERArray&)
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const NonOwningDERArray&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/include/pkix/pkixutil.h:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - year
    argTypes:
    - unsigned int
    assertStmts:
    - condition: (year <= 9999)
      pos:
        line_end: 185
        line_start: 185
        source_file: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    constantsTouched: []
    func_position:
      end: 191
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 191
    functionName: mozilla::pkix::DaysBeforeYear
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int DaysBeforeYear(unsigned int year)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - digestAlgorithm
    argTypes:
    - DigestAlgorithm
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 263
    functionName: mozilla::pkix::DigestAlgorithmToSizeInBytes
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t DigestAlgorithmToSizeInBytes(DigestAlgorithm digestAlgorithm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - aCertDER
    - aEndEntityOrCA
    - aChildCert
    argTypes:
    - Input
    - EndEntityOrCA
    - BackCert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 50
    functionName: mozilla::pkix::BackCert::BackCert
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void BackCert(Input aCertDER, EndEntityOrCA aEndEntityOrCA,\n           const
      BackCert* aChildCert)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: mozilla::pkix::BackCert::GetDER
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Input
    signature: Input GetDER() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: '& GetSignedData() const'
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: der::SignedDataWithSignature
    signature: der::SignedDataWithSignature & GetSignedData() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: mozilla::pkix::BackCert::GetVersion
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: der::Version
    signature: der::Version GetVersion() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: mozilla::pkix::BackCert::GetSerialNumber
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Input
    signature: Input GetSerialNumber() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: mozilla::pkix::BackCert::GetSignature
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Input
    signature: Input GetSignature() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: mozilla::pkix::BackCert::GetIssuer
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Input
    signature: Input GetIssuer() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: mozilla::pkix::BackCert::GetValidity
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Input
    signature: Input GetValidity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: mozilla::pkix::BackCert::GetSubject
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Input
    signature: Input GetSubject() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: mozilla::pkix::BackCert::GetSubjectPublicKeyInfo
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Input
    signature: Input GetSubjectPublicKeyInfo() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::BackCert::MaybeInput
      Src: /src/nss/lib/mozpkix/include/pkix/pkixutil.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: mozilla::pkix::BackCert::GetAuthorityInfoAccess
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::BackCert::MaybeInput
    linkageType: ''
    returnType: Input
    signature: Input * GetAuthorityInfoAccess() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::BackCert::MaybeInput
      Src: /src/nss/lib/mozpkix/include/pkix/pkixutil.h:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: mozilla::pkix::BackCert::GetBasicConstraints
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::BackCert::MaybeInput
    linkageType: ''
    returnType: Input
    signature: Input * GetBasicConstraints() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::BackCert::MaybeInput
      Src: /src/nss/lib/mozpkix/include/pkix/pkixutil.h:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: mozilla::pkix::BackCert::GetCertificatePolicies
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::BackCert::MaybeInput
    linkageType: ''
    returnType: Input
    signature: Input * GetCertificatePolicies() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::BackCert::MaybeInput
      Src: /src/nss/lib/mozpkix/include/pkix/pkixutil.h:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: mozilla::pkix::BackCert::GetExtKeyUsage
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::BackCert::MaybeInput
    linkageType: ''
    returnType: Input
    signature: Input * GetExtKeyUsage() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::BackCert::MaybeInput
      Src: /src/nss/lib/mozpkix/include/pkix/pkixutil.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: mozilla::pkix::BackCert::GetKeyUsage
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::BackCert::MaybeInput
    linkageType: ''
    returnType: Input
    signature: Input * GetKeyUsage() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::BackCert::MaybeInput
      Src: /src/nss/lib/mozpkix/include/pkix/pkixutil.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: mozilla::pkix::BackCert::GetInhibitAnyPolicy
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::BackCert::MaybeInput
    linkageType: ''
    returnType: Input
    signature: Input * GetInhibitAnyPolicy() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::BackCert::MaybeInput
      Src: /src/nss/lib/mozpkix/include/pkix/pkixutil.h:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 85
    functionName: mozilla::pkix::BackCert::GetNameConstraints
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::BackCert::MaybeInput
    linkageType: ''
    returnType: Input
    signature: Input * GetNameConstraints() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::BackCert::MaybeInput
      Src: /src/nss/lib/mozpkix/include/pkix/pkixutil.h:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: mozilla::pkix::BackCert::GetSubjectAltName
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::BackCert::MaybeInput
    linkageType: ''
    returnType: Input
    signature: Input * GetSubjectAltName() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::BackCert::MaybeInput
      Src: /src/nss/lib/mozpkix/include/pkix/pkixutil.h:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: mozilla::pkix::BackCert::GetRequiredTLSFeatures
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::BackCert::MaybeInput
    linkageType: ''
    returnType: Input
    signature: Input * GetRequiredTLSFeatures() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::BackCert::MaybeInput
      Src: /src/nss/lib/mozpkix/include/pkix/pkixutil.h:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: mozilla::pkix::BackCert::GetSignedCertificateTimestamps
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::BackCert::MaybeInput
    linkageType: ''
    returnType: Input
    signature: Input * GetSignedCertificateTimestamps() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/include/pkix/pkixutil.h:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' item'
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 110
    functionName: mozilla::pkix::BackCert::MaybeInput
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 30
    functionsReached:
    - GetLength
    linkageType: ''
    returnType: Input
    signature: Input * MaybeInput(const Input& item)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: mozilla::pkix::BackCert::BackCert
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BackCert(const BackCert&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: operator=(const BackCert&)
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const BackCert&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: mozilla::pkix::NonOwningDERArray::NonOwningDERArray
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NonOwningDERArray()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 151
    functionName: mozilla::pkix::NonOwningDERArray::GetLength
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t GetLength() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 155
    functionName: mozilla::pkix::NonOwningDERArray::GetDER
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Input
    signature: Input * GetDER(size_t i) const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/nss/lib/mozpkix/include/pkix/pkixutil.h:161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - der
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 167
    functionName: mozilla::pkix::NonOwningDERArray::Append
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached:
    - Init
    linkageType: ''
    returnType: Result
    signature: Result Append(Input der)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 176
    functionName: mozilla::pkix::NonOwningDERArray::NonOwningDERArray
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NonOwningDERArray(const NonOwningDERArray&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 177
    functionName: operator=(const NonOwningDERArray&)
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const NonOwningDERArray&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/include/pkix/pkixutil.h:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - year
    argTypes:
    - unsigned int
    assertStmts:
    - condition: (year <= 9999)
      pos:
        line_end: 185
        line_start: 185
        source_file: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    constantsTouched: []
    func_position:
      end: 191
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 191
    functionName: mozilla::pkix::DaysBeforeYear
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int DaysBeforeYear(unsigned int year)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - digestAlgorithm
    argTypes:
    - DigestAlgorithm
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 263
    functionName: mozilla::pkix::DigestAlgorithmToSizeInBytes
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t DigestAlgorithmToSizeInBytes(DigestAlgorithm digestAlgorithm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - aCertDER
    - aEndEntityOrCA
    - aChildCert
    argTypes:
    - Input
    - EndEntityOrCA
    - BackCert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 50
    functionName: mozilla::pkix::BackCert::BackCert
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void BackCert(Input aCertDER, EndEntityOrCA aEndEntityOrCA,\n           const
      BackCert* aChildCert)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: mozilla::pkix::BackCert::GetDER
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Input
    signature: Input GetDER() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: '& GetSignedData() const'
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: der::SignedDataWithSignature
    signature: der::SignedDataWithSignature & GetSignedData() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: mozilla::pkix::BackCert::GetVersion
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: der::Version
    signature: der::Version GetVersion() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: mozilla::pkix::BackCert::GetSerialNumber
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Input
    signature: Input GetSerialNumber() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: mozilla::pkix::BackCert::GetSignature
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Input
    signature: Input GetSignature() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: mozilla::pkix::BackCert::GetIssuer
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Input
    signature: Input GetIssuer() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: mozilla::pkix::BackCert::GetValidity
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Input
    signature: Input GetValidity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: mozilla::pkix::BackCert::GetSubject
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Input
    signature: Input GetSubject() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: mozilla::pkix::BackCert::GetSubjectPublicKeyInfo
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Input
    signature: Input GetSubjectPublicKeyInfo() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::BackCert::MaybeInput
      Src: /src/nss/lib/mozpkix/include/pkix/pkixutil.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: mozilla::pkix::BackCert::GetAuthorityInfoAccess
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::BackCert::MaybeInput
    linkageType: ''
    returnType: Input
    signature: Input * GetAuthorityInfoAccess() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::BackCert::MaybeInput
      Src: /src/nss/lib/mozpkix/include/pkix/pkixutil.h:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: mozilla::pkix::BackCert::GetBasicConstraints
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::BackCert::MaybeInput
    linkageType: ''
    returnType: Input
    signature: Input * GetBasicConstraints() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::BackCert::MaybeInput
      Src: /src/nss/lib/mozpkix/include/pkix/pkixutil.h:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: mozilla::pkix::BackCert::GetCertificatePolicies
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::BackCert::MaybeInput
    linkageType: ''
    returnType: Input
    signature: Input * GetCertificatePolicies() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::BackCert::MaybeInput
      Src: /src/nss/lib/mozpkix/include/pkix/pkixutil.h:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: mozilla::pkix::BackCert::GetExtKeyUsage
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::BackCert::MaybeInput
    linkageType: ''
    returnType: Input
    signature: Input * GetExtKeyUsage() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::BackCert::MaybeInput
      Src: /src/nss/lib/mozpkix/include/pkix/pkixutil.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: mozilla::pkix::BackCert::GetKeyUsage
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::BackCert::MaybeInput
    linkageType: ''
    returnType: Input
    signature: Input * GetKeyUsage() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::BackCert::MaybeInput
      Src: /src/nss/lib/mozpkix/include/pkix/pkixutil.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: mozilla::pkix::BackCert::GetInhibitAnyPolicy
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::BackCert::MaybeInput
    linkageType: ''
    returnType: Input
    signature: Input * GetInhibitAnyPolicy() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::BackCert::MaybeInput
      Src: /src/nss/lib/mozpkix/include/pkix/pkixutil.h:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 85
    functionName: mozilla::pkix::BackCert::GetNameConstraints
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::BackCert::MaybeInput
    linkageType: ''
    returnType: Input
    signature: Input * GetNameConstraints() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::BackCert::MaybeInput
      Src: /src/nss/lib/mozpkix/include/pkix/pkixutil.h:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: mozilla::pkix::BackCert::GetSubjectAltName
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::BackCert::MaybeInput
    linkageType: ''
    returnType: Input
    signature: Input * GetSubjectAltName() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::BackCert::MaybeInput
      Src: /src/nss/lib/mozpkix/include/pkix/pkixutil.h:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: mozilla::pkix::BackCert::GetRequiredTLSFeatures
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::BackCert::MaybeInput
    linkageType: ''
    returnType: Input
    signature: Input * GetRequiredTLSFeatures() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::BackCert::MaybeInput
      Src: /src/nss/lib/mozpkix/include/pkix/pkixutil.h:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: mozilla::pkix::BackCert::GetSignedCertificateTimestamps
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::BackCert::MaybeInput
    linkageType: ''
    returnType: Input
    signature: Input * GetSignedCertificateTimestamps() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/include/pkix/pkixutil.h:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' item'
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 110
    functionName: mozilla::pkix::BackCert::MaybeInput
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 40
    functionsReached:
    - GetLength
    linkageType: ''
    returnType: Input
    signature: Input * MaybeInput(const Input& item)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: mozilla::pkix::BackCert::BackCert
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BackCert(const BackCert&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: operator=(const BackCert&)
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const BackCert&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: mozilla::pkix::NonOwningDERArray::NonOwningDERArray
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NonOwningDERArray()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 151
    functionName: mozilla::pkix::NonOwningDERArray::GetLength
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t GetLength() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 155
    functionName: mozilla::pkix::NonOwningDERArray::GetDER
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Input
    signature: Input * GetDER(size_t i) const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/nss/lib/mozpkix/include/pkix/pkixutil.h:161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - der
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 167
    functionName: mozilla::pkix::NonOwningDERArray::Append
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached:
    - Init
    linkageType: ''
    returnType: Result
    signature: Result Append(Input der)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 176
    functionName: mozilla::pkix::NonOwningDERArray::NonOwningDERArray
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NonOwningDERArray(const NonOwningDERArray&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 177
    functionName: operator=(const NonOwningDERArray&)
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const NonOwningDERArray&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/include/pkix/pkixutil.h:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - year
    argTypes:
    - unsigned int
    assertStmts:
    - condition: (year <= 9999)
      pos:
        line_end: 185
        line_start: 185
        source_file: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    constantsTouched: []
    func_position:
      end: 191
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 191
    functionName: mozilla::pkix::DaysBeforeYear
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int DaysBeforeYear(unsigned int year)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - digestAlgorithm
    argTypes:
    - DigestAlgorithm
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 263
    functionName: mozilla::pkix::DigestAlgorithmToSizeInBytes
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix/pkixutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t DigestAlgorithmToSizeInBytes(DigestAlgorithm digestAlgorithm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: mozilla::pkix::test::ByteString::ByteString
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ByteString()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - count
    - value
    argTypes:
    - size_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: mozilla::pkix::test::ByteString::ByteString
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ByteString(size_t count, uint8_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const char*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - data
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: mozilla::pkix::test::ByteString::ByteString
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void ByteString(const uint8_t* data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const char*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - data
    - length
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: mozilla::pkix::test::ByteString::ByteString
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void ByteString(const uint8_t* data, size_t length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::std::string::append
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: operator+(const ByteString& rhs) const
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - ByteString::std::string::append
    linkageType: ''
    returnType: ByteString
    signature: ByteString operator+(const ByteString& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:53,1
    - Dst: key_from_filedata
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: mozilla::pkix::test::ByteString::data
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - key_from_filedata
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t * data() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: core_ops_arith__i32_319__add_assign
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:56,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - length
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: mozilla::pkix::test::ByteString::assign
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - core_ops_arith__i32_319__add_assign
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void assign(const uint8_t* data, size_t length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ByteString::append
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: mozilla::pkix::test::ByteString::append
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 1
    functionsReached:
    - mozilla::pkix::test::ByteString::append
    linkageType: ''
    returnType: void
    signature: void append(const ByteString& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ByteString::append
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:60,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - length
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: mozilla::pkix::test::ByteString::append
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 2
    functionsReached:
    - reinterpret_cast<const char*>
    - mozilla::pkix::test::ByteString::append
    linkageType: ''
    returnType: void
    signature: void append(const uint8_t* data, size_t length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ByteString::push_back
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: mozilla::pkix::test::ByteString::push_back
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 1
    functionsReached:
    - mozilla::pkix::test::ByteString::push_back
    linkageType: ''
    returnType: void
    signature: void push_back(uint8_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' bs'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: mozilla::pkix::test::ENCODING_FAILED
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 104
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool ENCODING_FAILED(const ByteString& bs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (bytes)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: mozilla::pkix::test::BytesToByteString
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString BytesToByteString(const uint8_t (&bytes)[L])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: MOZILLA_PKIX_ARRAY_LENGTH
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MOZILLA_PKIX_ARRAY_LENGTH(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' aAlgorithmIdentifier'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: mozilla::pkix::test::TestPublicKeyAlgorithm
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestPublicKeyAlgorithm(const ByteString& aAlgorithmIdentifier)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - TestPublicKeyAlgorithm
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: operator==(const TestPublicKeyAlgorithm& other) const
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const TestPublicKeyAlgorithm& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:147,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tag
    - ' value'
    argTypes:
    - uint8_t
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 148
    functionName: mozilla::pkix::test::TLV
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 225
    functionsReached:
    - mozilla::pkix::test::TLV
    - length
    linkageType: ''
    returnType: ByteString
    signature: ByteString TLV(uint8_t tag, const ByteString& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:157,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:158,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:158,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - tag
    - (value)
    argTypes:
    - uint8_t
    - char[]
    assertStmts:
    - condition: (value[N - 1] == 0)
      pos:
        line_end: 156
        line_start: 156
        source_file: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    constantsTouched: []
    func_position:
      end: 159
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 159
    functionName: mozilla::pkix::test::TLV
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 226
    functionsReached:
    - assert
    - mozilla::pkix::test::TLV
    - ByteString
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: ByteString
    signature: ByteString TLV(uint8_t tag, const char (&value)[N])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:164,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:165,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:166,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - tag
    - length
    - (value)
    argTypes:
    - uint8_t
    - size_t
    - char[]
    assertStmts:
    - condition: (value[N - 1] == 0)
      pos:
        line_end: 163
        line_start: 163
        source_file: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    constantsTouched: []
    func_position:
      end: 167
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 167
    functionName: mozilla::pkix::test::TLV
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 227
    functionsReached:
    - assert
    - mozilla::pkix::test::TLV
    - ByteString
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: ByteString
    signature: ByteString TLV(uint8_t tag, size_t length, const char (&value)[N])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::CN
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:176,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:177,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:177,1
    - Dst: std::strlen
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 179
    functionName: mozilla::pkix::test::CN
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 1
    functionsReached:
    - ByteString
    - std::strlen
    - mozilla::pkix::test::CN
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: ByteString
    signature: "ByteString CN(const char* value,\n                     uint8_t encodingTag
      = 0x0c /*UTF8String*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::OU
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:185,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:186,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:186,1
    - Dst: std::strlen
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 188
    functionName: mozilla::pkix::test::OU
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 1
    functionsReached:
    - mozilla::pkix::test::OU
    - std::strlen
    - ByteString
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: ByteString
    signature: "ByteString OU(const char* value,\n                     uint8_t encodingTag
      = 0x0c /*UTF8String*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::emailAddress
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:193,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:194,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:194,1
    - Dst: std::strlen
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 195
    functionName: mozilla::pkix::test::emailAddress
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 1
    functionsReached:
    - ByteString
    - std::strlen
    - mozilla::pkix::test::emailAddress
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: ByteString
    signature: ByteString emailAddress(const char* value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::Name
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:210,1
    - Dst: mozilla::pkix::test::RDN
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:210,1
    - Dst: mozilla::pkix::test::CN
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' cn'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 211
    functionName: mozilla::pkix::test::CNToDERName
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::Name
    - mozilla::pkix::test::CN
    - mozilla::pkix::test::RDN
    linkageType: ''
    returnType: ByteString
    signature: ByteString CNToDERName(const ByteString& cn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::Name
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:213,1
    - Dst: mozilla::pkix::test::RDN
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:213,1
    - Dst: mozilla::pkix::test::CN
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cn
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 213
    functionName: mozilla::pkix::test::CNToDERName
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::Name
    - mozilla::pkix::test::CN
    - mozilla::pkix::test::RDN
    linkageType: ''
    returnType: ByteString
    signature: ByteString CNToDERName(const char* cn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 229
    functionName: mozilla::pkix::test::RFC822Name
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    linkageType: ''
    returnType: ByteString
    signature: ByteString RFC822Name(const ByteString& name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::RFC822Name
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:233,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:234,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (bytes)
    argTypes:
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 235
    functionName: mozilla::pkix::test::RFC822Name
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 1
    functionsReached:
    - ByteString
    - mozilla::pkix::test::RFC822Name
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: ByteString
    signature: ByteString RFC822Name(const char (&bytes)[L])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 240
    functionName: mozilla::pkix::test::DNSName
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    linkageType: ''
    returnType: ByteString
    signature: ByteString DNSName(const ByteString& name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::DNSName
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:244,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:244,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (bytes)
    argTypes:
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 245
    functionName: mozilla::pkix::test::DNSName
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 1
    functionsReached:
    - ByteString
    - mozilla::pkix::test::DNSName
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: ByteString
    signature: ByteString DNSName(const char (&bytes)[L])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 251
    functionName: mozilla::pkix::test::DirectoryName
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    linkageType: ''
    returnType: ByteString
    signature: ByteString DirectoryName(const ByteString& name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:255,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 256
    functionName: mozilla::pkix::test::IPAddress
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString IPAddress()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:261,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (bytes)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 262
    functionName: mozilla::pkix::test::IPAddress
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString IPAddress(const uint8_t (&bytes)[L])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 275
    functionName: ~TestKeyPair()
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~TestKeyPair()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 296
    functionName: mozilla::pkix::test::TestKeyPair::TestKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestKeyPair(const TestKeyPair&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 297
    functionName: operator=(const TestKeyPair&)
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const TestKeyPair&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - keyPair
    argTypes:
    - TestKeyPair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 303
    functionName: mozilla::pkix::test::DeleteTestKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DeleteTestKeyPair(TestKeyPair* keyPair)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: mozilla::pkix::test::ByteString::ByteString
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ByteString()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - count
    - value
    argTypes:
    - size_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: mozilla::pkix::test::ByteString::ByteString
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ByteString(size_t count, uint8_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const char*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - data
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: mozilla::pkix::test::ByteString::ByteString
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void ByteString(const uint8_t* data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const char*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - data
    - length
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: mozilla::pkix::test::ByteString::ByteString
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void ByteString(const uint8_t* data, size_t length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::std::string::append
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: operator+(const ByteString& rhs) const
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - ByteString::std::string::append
    linkageType: ''
    returnType: ByteString
    signature: ByteString operator+(const ByteString& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:53,1
    - Dst: key_from_filedata
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: mozilla::pkix::test::ByteString::data
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - key_from_filedata
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t * data() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: core_ops_arith__i32_319__add_assign
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:56,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - length
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: mozilla::pkix::test::ByteString::assign
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - core_ops_arith__i32_319__add_assign
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void assign(const uint8_t* data, size_t length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ByteString::append
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: mozilla::pkix::test::ByteString::append
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 3
    functionsReached:
    - mozilla::pkix::test::ByteString::append
    linkageType: ''
    returnType: void
    signature: void append(const ByteString& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ByteString::append
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:60,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - length
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: mozilla::pkix::test::ByteString::append
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 4
    functionsReached:
    - reinterpret_cast<const char*>
    - mozilla::pkix::test::ByteString::append
    linkageType: ''
    returnType: void
    signature: void append(const uint8_t* data, size_t length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ByteString::push_back
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: mozilla::pkix::test::ByteString::push_back
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 2
    functionsReached:
    - mozilla::pkix::test::ByteString::push_back
    linkageType: ''
    returnType: void
    signature: void push_back(uint8_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' bs'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: mozilla::pkix::test::ENCODING_FAILED
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 104
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool ENCODING_FAILED(const ByteString& bs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (bytes)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: mozilla::pkix::test::BytesToByteString
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString BytesToByteString(const uint8_t (&bytes)[L])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: MOZILLA_PKIX_ARRAY_LENGTH
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MOZILLA_PKIX_ARRAY_LENGTH(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' aAlgorithmIdentifier'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: mozilla::pkix::test::TestPublicKeyAlgorithm
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestPublicKeyAlgorithm(const ByteString& aAlgorithmIdentifier)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - TestPublicKeyAlgorithm
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: operator==(const TestPublicKeyAlgorithm& other) const
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const TestPublicKeyAlgorithm& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:147,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tag
    - ' value'
    argTypes:
    - uint8_t
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 148
    functionName: mozilla::pkix::test::TLV
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 233
    functionsReached:
    - mozilla::pkix::test::TLV
    - length
    linkageType: ''
    returnType: ByteString
    signature: ByteString TLV(uint8_t tag, const ByteString& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:157,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:158,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:158,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - tag
    - (value)
    argTypes:
    - uint8_t
    - char[]
    assertStmts:
    - condition: (value[N - 1] == 0)
      pos:
        line_end: 156
        line_start: 156
        source_file: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    constantsTouched: []
    func_position:
      end: 159
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 159
    functionName: mozilla::pkix::test::TLV
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 234
    functionsReached:
    - assert
    - mozilla::pkix::test::TLV
    - ByteString
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: ByteString
    signature: ByteString TLV(uint8_t tag, const char (&value)[N])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:164,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:165,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:166,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - tag
    - length
    - (value)
    argTypes:
    - uint8_t
    - size_t
    - char[]
    assertStmts:
    - condition: (value[N - 1] == 0)
      pos:
        line_end: 163
        line_start: 163
        source_file: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    constantsTouched: []
    func_position:
      end: 167
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 167
    functionName: mozilla::pkix::test::TLV
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 235
    functionsReached:
    - assert
    - mozilla::pkix::test::TLV
    - ByteString
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: ByteString
    signature: ByteString TLV(uint8_t tag, size_t length, const char (&value)[N])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::CN
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:176,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:177,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:177,1
    - Dst: std::strlen
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 179
    functionName: mozilla::pkix::test::CN
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 4
    functionsReached:
    - ByteString
    - std::strlen
    - mozilla::pkix::test::CN
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: ByteString
    signature: "ByteString CN(const char* value,\n                     uint8_t encodingTag
      = 0x0c /*UTF8String*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::OU
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:185,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:186,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:186,1
    - Dst: std::strlen
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 188
    functionName: mozilla::pkix::test::OU
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 2
    functionsReached:
    - mozilla::pkix::test::OU
    - std::strlen
    - ByteString
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: ByteString
    signature: "ByteString OU(const char* value,\n                     uint8_t encodingTag
      = 0x0c /*UTF8String*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::emailAddress
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:193,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:194,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:194,1
    - Dst: std::strlen
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 195
    functionName: mozilla::pkix::test::emailAddress
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 2
    functionsReached:
    - ByteString
    - std::strlen
    - mozilla::pkix::test::emailAddress
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: ByteString
    signature: ByteString emailAddress(const char* value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::Name
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:210,1
    - Dst: mozilla::pkix::test::RDN
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:210,1
    - Dst: mozilla::pkix::test::CN
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' cn'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 211
    functionName: mozilla::pkix::test::CNToDERName
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::Name
    - mozilla::pkix::test::CN
    - mozilla::pkix::test::RDN
    linkageType: ''
    returnType: ByteString
    signature: ByteString CNToDERName(const ByteString& cn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::Name
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:213,1
    - Dst: mozilla::pkix::test::RDN
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:213,1
    - Dst: mozilla::pkix::test::CN
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cn
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 213
    functionName: mozilla::pkix::test::CNToDERName
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::Name
    - mozilla::pkix::test::CN
    - mozilla::pkix::test::RDN
    linkageType: ''
    returnType: ByteString
    signature: ByteString CNToDERName(const char* cn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 229
    functionName: mozilla::pkix::test::RFC822Name
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 1
    functionsReached:
    - mozilla::pkix::test::TLV
    linkageType: ''
    returnType: ByteString
    signature: ByteString RFC822Name(const ByteString& name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::RFC822Name
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:233,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:234,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (bytes)
    argTypes:
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 235
    functionName: mozilla::pkix::test::RFC822Name
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 2
    functionsReached:
    - ByteString
    - mozilla::pkix::test::RFC822Name
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: ByteString
    signature: ByteString RFC822Name(const char (&bytes)[L])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 240
    functionName: mozilla::pkix::test::DNSName
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 1
    functionsReached:
    - mozilla::pkix::test::TLV
    linkageType: ''
    returnType: ByteString
    signature: ByteString DNSName(const ByteString& name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::DNSName
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:244,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:244,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (bytes)
    argTypes:
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 245
    functionName: mozilla::pkix::test::DNSName
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 2
    functionsReached:
    - ByteString
    - mozilla::pkix::test::DNSName
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: ByteString
    signature: ByteString DNSName(const char (&bytes)[L])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 251
    functionName: mozilla::pkix::test::DirectoryName
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    linkageType: ''
    returnType: ByteString
    signature: ByteString DirectoryName(const ByteString& name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:255,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 256
    functionName: mozilla::pkix::test::IPAddress
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString IPAddress()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:261,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (bytes)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 262
    functionName: mozilla::pkix::test::IPAddress
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString IPAddress(const uint8_t (&bytes)[L])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 275
    functionName: ~TestKeyPair()
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~TestKeyPair()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 296
    functionName: mozilla::pkix::test::TestKeyPair::TestKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestKeyPair(const TestKeyPair&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 297
    functionName: operator=(const TestKeyPair&)
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const TestKeyPair&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - keyPair
    argTypes:
    - TestKeyPair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 303
    functionName: mozilla::pkix::test::DeleteTestKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DeleteTestKeyPair(TestKeyPair* keyPair)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: mozilla::pkix::test::ByteString::ByteString
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ByteString()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - count
    - value
    argTypes:
    - size_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: mozilla::pkix::test::ByteString::ByteString
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ByteString(size_t count, uint8_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const char*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - data
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: mozilla::pkix::test::ByteString::ByteString
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void ByteString(const uint8_t* data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const char*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - data
    - length
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: mozilla::pkix::test::ByteString::ByteString
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void ByteString(const uint8_t* data, size_t length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::std::string::append
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: operator+(const ByteString& rhs) const
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - ByteString::std::string::append
    linkageType: ''
    returnType: ByteString
    signature: ByteString operator+(const ByteString& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:53,1
    - Dst: key_from_filedata
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: mozilla::pkix::test::ByteString::data
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - key_from_filedata
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t * data() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: core_ops_arith__i32_319__add_assign
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:56,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - length
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: mozilla::pkix::test::ByteString::assign
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - core_ops_arith__i32_319__add_assign
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void assign(const uint8_t* data, size_t length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ByteString::append
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: mozilla::pkix::test::ByteString::append
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 5
    functionsReached:
    - mozilla::pkix::test::ByteString::append
    linkageType: ''
    returnType: void
    signature: void append(const ByteString& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ByteString::append
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:60,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - length
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: mozilla::pkix::test::ByteString::append
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 6
    functionsReached:
    - reinterpret_cast<const char*>
    - mozilla::pkix::test::ByteString::append
    linkageType: ''
    returnType: void
    signature: void append(const uint8_t* data, size_t length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ByteString::push_back
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: mozilla::pkix::test::ByteString::push_back
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 3
    functionsReached:
    - mozilla::pkix::test::ByteString::push_back
    linkageType: ''
    returnType: void
    signature: void push_back(uint8_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' bs'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: mozilla::pkix::test::ENCODING_FAILED
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 104
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool ENCODING_FAILED(const ByteString& bs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (bytes)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: mozilla::pkix::test::BytesToByteString
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString BytesToByteString(const uint8_t (&bytes)[L])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: MOZILLA_PKIX_ARRAY_LENGTH
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MOZILLA_PKIX_ARRAY_LENGTH(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' aAlgorithmIdentifier'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: mozilla::pkix::test::TestPublicKeyAlgorithm
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestPublicKeyAlgorithm(const ByteString& aAlgorithmIdentifier)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - TestPublicKeyAlgorithm
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: operator==(const TestPublicKeyAlgorithm& other) const
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const TestPublicKeyAlgorithm& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:147,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tag
    - ' value'
    argTypes:
    - uint8_t
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 148
    functionName: mozilla::pkix::test::TLV
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 241
    functionsReached:
    - mozilla::pkix::test::TLV
    - length
    linkageType: ''
    returnType: ByteString
    signature: ByteString TLV(uint8_t tag, const ByteString& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:157,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:158,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:158,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - tag
    - (value)
    argTypes:
    - uint8_t
    - char[]
    assertStmts:
    - condition: (value[N - 1] == 0)
      pos:
        line_end: 156
        line_start: 156
        source_file: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    constantsTouched: []
    func_position:
      end: 159
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 159
    functionName: mozilla::pkix::test::TLV
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 242
    functionsReached:
    - assert
    - mozilla::pkix::test::TLV
    - ByteString
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: ByteString
    signature: ByteString TLV(uint8_t tag, const char (&value)[N])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:164,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:165,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:166,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - tag
    - length
    - (value)
    argTypes:
    - uint8_t
    - size_t
    - char[]
    assertStmts:
    - condition: (value[N - 1] == 0)
      pos:
        line_end: 163
        line_start: 163
        source_file: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    constantsTouched: []
    func_position:
      end: 167
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 167
    functionName: mozilla::pkix::test::TLV
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 243
    functionsReached:
    - assert
    - mozilla::pkix::test::TLV
    - ByteString
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: ByteString
    signature: ByteString TLV(uint8_t tag, size_t length, const char (&value)[N])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::CN
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:176,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:177,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:177,1
    - Dst: std::strlen
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 179
    functionName: mozilla::pkix::test::CN
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 7
    functionsReached:
    - ByteString
    - std::strlen
    - mozilla::pkix::test::CN
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: ByteString
    signature: "ByteString CN(const char* value,\n                     uint8_t encodingTag
      = 0x0c /*UTF8String*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::OU
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:185,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:186,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:186,1
    - Dst: std::strlen
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 188
    functionName: mozilla::pkix::test::OU
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 3
    functionsReached:
    - mozilla::pkix::test::OU
    - std::strlen
    - ByteString
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: ByteString
    signature: "ByteString OU(const char* value,\n                     uint8_t encodingTag
      = 0x0c /*UTF8String*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::emailAddress
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:193,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:194,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:194,1
    - Dst: std::strlen
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 195
    functionName: mozilla::pkix::test::emailAddress
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 3
    functionsReached:
    - ByteString
    - std::strlen
    - mozilla::pkix::test::emailAddress
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: ByteString
    signature: ByteString emailAddress(const char* value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::Name
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:210,1
    - Dst: mozilla::pkix::test::RDN
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:210,1
    - Dst: mozilla::pkix::test::CN
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' cn'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 211
    functionName: mozilla::pkix::test::CNToDERName
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::Name
    - mozilla::pkix::test::CN
    - mozilla::pkix::test::RDN
    linkageType: ''
    returnType: ByteString
    signature: ByteString CNToDERName(const ByteString& cn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::Name
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:213,1
    - Dst: mozilla::pkix::test::RDN
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:213,1
    - Dst: mozilla::pkix::test::CN
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cn
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 213
    functionName: mozilla::pkix::test::CNToDERName
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::Name
    - mozilla::pkix::test::CN
    - mozilla::pkix::test::RDN
    linkageType: ''
    returnType: ByteString
    signature: ByteString CNToDERName(const char* cn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 229
    functionName: mozilla::pkix::test::RFC822Name
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 2
    functionsReached:
    - mozilla::pkix::test::TLV
    linkageType: ''
    returnType: ByteString
    signature: ByteString RFC822Name(const ByteString& name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::RFC822Name
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:233,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:234,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (bytes)
    argTypes:
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 235
    functionName: mozilla::pkix::test::RFC822Name
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 3
    functionsReached:
    - ByteString
    - mozilla::pkix::test::RFC822Name
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: ByteString
    signature: ByteString RFC822Name(const char (&bytes)[L])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 240
    functionName: mozilla::pkix::test::DNSName
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 2
    functionsReached:
    - mozilla::pkix::test::TLV
    linkageType: ''
    returnType: ByteString
    signature: ByteString DNSName(const ByteString& name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::DNSName
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:244,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:244,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (bytes)
    argTypes:
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 245
    functionName: mozilla::pkix::test::DNSName
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 3
    functionsReached:
    - ByteString
    - mozilla::pkix::test::DNSName
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: ByteString
    signature: ByteString DNSName(const char (&bytes)[L])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 251
    functionName: mozilla::pkix::test::DirectoryName
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    linkageType: ''
    returnType: ByteString
    signature: ByteString DirectoryName(const ByteString& name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:255,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 256
    functionName: mozilla::pkix::test::IPAddress
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString IPAddress()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:261,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (bytes)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 262
    functionName: mozilla::pkix::test::IPAddress
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString IPAddress(const uint8_t (&bytes)[L])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 275
    functionName: ~TestKeyPair()
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~TestKeyPair()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 296
    functionName: mozilla::pkix::test::TestKeyPair::TestKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestKeyPair(const TestKeyPair&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 297
    functionName: operator=(const TestKeyPair&)
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const TestKeyPair&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - keyPair
    argTypes:
    - TestKeyPair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 303
    functionName: mozilla::pkix::test::DeleteTestKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DeleteTestKeyPair(TestKeyPair* keyPair)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: mozilla::pkix::test::ByteString::ByteString
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ByteString()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - count
    - value
    argTypes:
    - size_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: mozilla::pkix::test::ByteString::ByteString
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ByteString(size_t count, uint8_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const char*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - data
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: mozilla::pkix::test::ByteString::ByteString
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void ByteString(const uint8_t* data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const char*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - data
    - length
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: mozilla::pkix::test::ByteString::ByteString
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void ByteString(const uint8_t* data, size_t length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::std::string::append
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: operator+(const ByteString& rhs) const
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - ByteString::std::string::append
    linkageType: ''
    returnType: ByteString
    signature: ByteString operator+(const ByteString& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:53,1
    - Dst: key_from_filedata
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: mozilla::pkix::test::ByteString::data
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - key_from_filedata
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t * data() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: core_ops_arith__i32_319__add_assign
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:56,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - length
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: mozilla::pkix::test::ByteString::assign
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - core_ops_arith__i32_319__add_assign
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void assign(const uint8_t* data, size_t length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ByteString::append
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: mozilla::pkix::test::ByteString::append
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 7
    functionsReached:
    - mozilla::pkix::test::ByteString::append
    linkageType: ''
    returnType: void
    signature: void append(const ByteString& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ByteString::append
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:60,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - length
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: mozilla::pkix::test::ByteString::append
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 8
    functionsReached:
    - reinterpret_cast<const char*>
    - mozilla::pkix::test::ByteString::append
    linkageType: ''
    returnType: void
    signature: void append(const uint8_t* data, size_t length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ByteString::push_back
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: mozilla::pkix::test::ByteString::push_back
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 4
    functionsReached:
    - mozilla::pkix::test::ByteString::push_back
    linkageType: ''
    returnType: void
    signature: void push_back(uint8_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' bs'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: mozilla::pkix::test::ENCODING_FAILED
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 104
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool ENCODING_FAILED(const ByteString& bs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (bytes)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: mozilla::pkix::test::BytesToByteString
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString BytesToByteString(const uint8_t (&bytes)[L])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: MOZILLA_PKIX_ARRAY_LENGTH
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MOZILLA_PKIX_ARRAY_LENGTH(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' aAlgorithmIdentifier'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: mozilla::pkix::test::TestPublicKeyAlgorithm
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestPublicKeyAlgorithm(const ByteString& aAlgorithmIdentifier)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - TestPublicKeyAlgorithm
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: operator==(const TestPublicKeyAlgorithm& other) const
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const TestPublicKeyAlgorithm& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:147,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tag
    - ' value'
    argTypes:
    - uint8_t
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 148
    functionName: mozilla::pkix::test::TLV
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 249
    functionsReached:
    - mozilla::pkix::test::TLV
    - length
    linkageType: ''
    returnType: ByteString
    signature: ByteString TLV(uint8_t tag, const ByteString& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:157,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:158,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:158,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - tag
    - (value)
    argTypes:
    - uint8_t
    - char[]
    assertStmts:
    - condition: (value[N - 1] == 0)
      pos:
        line_end: 156
        line_start: 156
        source_file: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    constantsTouched: []
    func_position:
      end: 159
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 159
    functionName: mozilla::pkix::test::TLV
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 250
    functionsReached:
    - assert
    - mozilla::pkix::test::TLV
    - ByteString
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: ByteString
    signature: ByteString TLV(uint8_t tag, const char (&value)[N])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:164,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:165,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:166,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - tag
    - length
    - (value)
    argTypes:
    - uint8_t
    - size_t
    - char[]
    assertStmts:
    - condition: (value[N - 1] == 0)
      pos:
        line_end: 163
        line_start: 163
        source_file: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    constantsTouched: []
    func_position:
      end: 167
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 167
    functionName: mozilla::pkix::test::TLV
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 251
    functionsReached:
    - assert
    - mozilla::pkix::test::TLV
    - ByteString
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: ByteString
    signature: ByteString TLV(uint8_t tag, size_t length, const char (&value)[N])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::CN
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:176,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:177,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:177,1
    - Dst: std::strlen
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 179
    functionName: mozilla::pkix::test::CN
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 10
    functionsReached:
    - ByteString
    - std::strlen
    - mozilla::pkix::test::CN
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: ByteString
    signature: "ByteString CN(const char* value,\n                     uint8_t encodingTag
      = 0x0c /*UTF8String*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::OU
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:185,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:186,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:186,1
    - Dst: std::strlen
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 188
    functionName: mozilla::pkix::test::OU
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 4
    functionsReached:
    - mozilla::pkix::test::OU
    - std::strlen
    - ByteString
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: ByteString
    signature: "ByteString OU(const char* value,\n                     uint8_t encodingTag
      = 0x0c /*UTF8String*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::emailAddress
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:193,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:194,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:194,1
    - Dst: std::strlen
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 195
    functionName: mozilla::pkix::test::emailAddress
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 4
    functionsReached:
    - ByteString
    - std::strlen
    - mozilla::pkix::test::emailAddress
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: ByteString
    signature: ByteString emailAddress(const char* value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::Name
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:210,1
    - Dst: mozilla::pkix::test::RDN
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:210,1
    - Dst: mozilla::pkix::test::CN
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' cn'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 211
    functionName: mozilla::pkix::test::CNToDERName
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::Name
    - mozilla::pkix::test::CN
    - mozilla::pkix::test::RDN
    linkageType: ''
    returnType: ByteString
    signature: ByteString CNToDERName(const ByteString& cn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::Name
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:213,1
    - Dst: mozilla::pkix::test::RDN
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:213,1
    - Dst: mozilla::pkix::test::CN
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cn
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 213
    functionName: mozilla::pkix::test::CNToDERName
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::Name
    - mozilla::pkix::test::CN
    - mozilla::pkix::test::RDN
    linkageType: ''
    returnType: ByteString
    signature: ByteString CNToDERName(const char* cn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 229
    functionName: mozilla::pkix::test::RFC822Name
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 3
    functionsReached:
    - mozilla::pkix::test::TLV
    linkageType: ''
    returnType: ByteString
    signature: ByteString RFC822Name(const ByteString& name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::RFC822Name
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:233,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:234,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (bytes)
    argTypes:
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 235
    functionName: mozilla::pkix::test::RFC822Name
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 4
    functionsReached:
    - ByteString
    - mozilla::pkix::test::RFC822Name
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: ByteString
    signature: ByteString RFC822Name(const char (&bytes)[L])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 240
    functionName: mozilla::pkix::test::DNSName
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 3
    functionsReached:
    - mozilla::pkix::test::TLV
    linkageType: ''
    returnType: ByteString
    signature: ByteString DNSName(const ByteString& name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::DNSName
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:244,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:244,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (bytes)
    argTypes:
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 245
    functionName: mozilla::pkix::test::DNSName
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 4
    functionsReached:
    - ByteString
    - mozilla::pkix::test::DNSName
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: ByteString
    signature: ByteString DNSName(const char (&bytes)[L])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 251
    functionName: mozilla::pkix::test::DirectoryName
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    linkageType: ''
    returnType: ByteString
    signature: ByteString DirectoryName(const ByteString& name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:255,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 256
    functionName: mozilla::pkix::test::IPAddress
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString IPAddress()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:261,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (bytes)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 262
    functionName: mozilla::pkix::test::IPAddress
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString IPAddress(const uint8_t (&bytes)[L])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 275
    functionName: ~TestKeyPair()
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~TestKeyPair()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 296
    functionName: mozilla::pkix::test::TestKeyPair::TestKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestKeyPair(const TestKeyPair&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 297
    functionName: operator=(const TestKeyPair&)
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const TestKeyPair&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - keyPair
    argTypes:
    - TestKeyPair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 303
    functionName: mozilla::pkix::test::DeleteTestKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DeleteTestKeyPair(TestKeyPair* keyPair)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: mozilla::pkix::test::ByteString::ByteString
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ByteString()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - count
    - value
    argTypes:
    - size_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: mozilla::pkix::test::ByteString::ByteString
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ByteString(size_t count, uint8_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const char*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - data
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: mozilla::pkix::test::ByteString::ByteString
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void ByteString(const uint8_t* data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const char*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - data
    - length
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: mozilla::pkix::test::ByteString::ByteString
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void ByteString(const uint8_t* data, size_t length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::std::string::append
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: operator+(const ByteString& rhs) const
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - ByteString::std::string::append
    linkageType: ''
    returnType: ByteString
    signature: ByteString operator+(const ByteString& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:53,1
    - Dst: key_from_filedata
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: mozilla::pkix::test::ByteString::data
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - key_from_filedata
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t * data() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: core_ops_arith__i32_319__add_assign
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:56,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - length
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: mozilla::pkix::test::ByteString::assign
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - core_ops_arith__i32_319__add_assign
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void assign(const uint8_t* data, size_t length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ByteString::append
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: mozilla::pkix::test::ByteString::append
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 9
    functionsReached:
    - mozilla::pkix::test::ByteString::append
    linkageType: ''
    returnType: void
    signature: void append(const ByteString& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ByteString::append
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:60,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - length
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: mozilla::pkix::test::ByteString::append
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 10
    functionsReached:
    - reinterpret_cast<const char*>
    - mozilla::pkix::test::ByteString::append
    linkageType: ''
    returnType: void
    signature: void append(const uint8_t* data, size_t length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ByteString::push_back
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: mozilla::pkix::test::ByteString::push_back
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 5
    functionsReached:
    - mozilla::pkix::test::ByteString::push_back
    linkageType: ''
    returnType: void
    signature: void push_back(uint8_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' bs'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: mozilla::pkix::test::ENCODING_FAILED
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 104
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool ENCODING_FAILED(const ByteString& bs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (bytes)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: mozilla::pkix::test::BytesToByteString
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString BytesToByteString(const uint8_t (&bytes)[L])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: MOZILLA_PKIX_ARRAY_LENGTH
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MOZILLA_PKIX_ARRAY_LENGTH(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' aAlgorithmIdentifier'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: mozilla::pkix::test::TestPublicKeyAlgorithm
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestPublicKeyAlgorithm(const ByteString& aAlgorithmIdentifier)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - TestPublicKeyAlgorithm
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: operator==(const TestPublicKeyAlgorithm& other) const
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const TestPublicKeyAlgorithm& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:147,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tag
    - ' value'
    argTypes:
    - uint8_t
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 148
    functionName: mozilla::pkix::test::TLV
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 257
    functionsReached:
    - mozilla::pkix::test::TLV
    - length
    linkageType: ''
    returnType: ByteString
    signature: ByteString TLV(uint8_t tag, const ByteString& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:157,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:158,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:158,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - tag
    - (value)
    argTypes:
    - uint8_t
    - char[]
    assertStmts:
    - condition: (value[N - 1] == 0)
      pos:
        line_end: 156
        line_start: 156
        source_file: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    constantsTouched: []
    func_position:
      end: 159
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 159
    functionName: mozilla::pkix::test::TLV
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 258
    functionsReached:
    - assert
    - mozilla::pkix::test::TLV
    - ByteString
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: ByteString
    signature: ByteString TLV(uint8_t tag, const char (&value)[N])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:164,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:165,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:166,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - tag
    - length
    - (value)
    argTypes:
    - uint8_t
    - size_t
    - char[]
    assertStmts:
    - condition: (value[N - 1] == 0)
      pos:
        line_end: 163
        line_start: 163
        source_file: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    constantsTouched: []
    func_position:
      end: 167
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 167
    functionName: mozilla::pkix::test::TLV
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 259
    functionsReached:
    - assert
    - mozilla::pkix::test::TLV
    - ByteString
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: ByteString
    signature: ByteString TLV(uint8_t tag, size_t length, const char (&value)[N])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::CN
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:176,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:177,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:177,1
    - Dst: std::strlen
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 179
    functionName: mozilla::pkix::test::CN
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 13
    functionsReached:
    - ByteString
    - std::strlen
    - mozilla::pkix::test::CN
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: ByteString
    signature: "ByteString CN(const char* value,\n                     uint8_t encodingTag
      = 0x0c /*UTF8String*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::OU
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:185,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:186,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:186,1
    - Dst: std::strlen
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 188
    functionName: mozilla::pkix::test::OU
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 5
    functionsReached:
    - mozilla::pkix::test::OU
    - std::strlen
    - ByteString
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: ByteString
    signature: "ByteString OU(const char* value,\n                     uint8_t encodingTag
      = 0x0c /*UTF8String*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::emailAddress
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:193,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:194,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:194,1
    - Dst: std::strlen
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 195
    functionName: mozilla::pkix::test::emailAddress
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 5
    functionsReached:
    - ByteString
    - std::strlen
    - mozilla::pkix::test::emailAddress
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: ByteString
    signature: ByteString emailAddress(const char* value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::Name
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:210,1
    - Dst: mozilla::pkix::test::RDN
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:210,1
    - Dst: mozilla::pkix::test::CN
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' cn'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 211
    functionName: mozilla::pkix::test::CNToDERName
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::Name
    - mozilla::pkix::test::CN
    - mozilla::pkix::test::RDN
    linkageType: ''
    returnType: ByteString
    signature: ByteString CNToDERName(const ByteString& cn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::Name
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:213,1
    - Dst: mozilla::pkix::test::RDN
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:213,1
    - Dst: mozilla::pkix::test::CN
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cn
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 213
    functionName: mozilla::pkix::test::CNToDERName
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::Name
    - mozilla::pkix::test::CN
    - mozilla::pkix::test::RDN
    linkageType: ''
    returnType: ByteString
    signature: ByteString CNToDERName(const char* cn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 229
    functionName: mozilla::pkix::test::RFC822Name
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 4
    functionsReached:
    - mozilla::pkix::test::TLV
    linkageType: ''
    returnType: ByteString
    signature: ByteString RFC822Name(const ByteString& name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::RFC822Name
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:233,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:234,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (bytes)
    argTypes:
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 235
    functionName: mozilla::pkix::test::RFC822Name
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 5
    functionsReached:
    - ByteString
    - mozilla::pkix::test::RFC822Name
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: ByteString
    signature: ByteString RFC822Name(const char (&bytes)[L])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 240
    functionName: mozilla::pkix::test::DNSName
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 4
    functionsReached:
    - mozilla::pkix::test::TLV
    linkageType: ''
    returnType: ByteString
    signature: ByteString DNSName(const ByteString& name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::DNSName
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:244,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:244,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (bytes)
    argTypes:
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 245
    functionName: mozilla::pkix::test::DNSName
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 5
    functionsReached:
    - ByteString
    - mozilla::pkix::test::DNSName
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: ByteString
    signature: ByteString DNSName(const char (&bytes)[L])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 251
    functionName: mozilla::pkix::test::DirectoryName
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    linkageType: ''
    returnType: ByteString
    signature: ByteString DirectoryName(const ByteString& name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:255,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 256
    functionName: mozilla::pkix::test::IPAddress
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString IPAddress()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:261,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (bytes)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 262
    functionName: mozilla::pkix::test::IPAddress
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString IPAddress(const uint8_t (&bytes)[L])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 275
    functionName: ~TestKeyPair()
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~TestKeyPair()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 296
    functionName: mozilla::pkix::test::TestKeyPair::TestKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestKeyPair(const TestKeyPair&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 297
    functionName: operator=(const TestKeyPair&)
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const TestKeyPair&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - keyPair
    argTypes:
    - TestKeyPair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 303
    functionName: mozilla::pkix::test::DeleteTestKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DeleteTestKeyPair(TestKeyPair* keyPair)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: mozilla::pkix::test::ByteString::ByteString
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ByteString()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - count
    - value
    argTypes:
    - size_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: mozilla::pkix::test::ByteString::ByteString
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ByteString(size_t count, uint8_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const char*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - data
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: mozilla::pkix::test::ByteString::ByteString
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void ByteString(const uint8_t* data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const char*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - data
    - length
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: mozilla::pkix::test::ByteString::ByteString
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void ByteString(const uint8_t* data, size_t length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::std::string::append
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: operator+(const ByteString& rhs) const
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - ByteString::std::string::append
    linkageType: ''
    returnType: ByteString
    signature: ByteString operator+(const ByteString& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:53,1
    - Dst: key_from_filedata
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: mozilla::pkix::test::ByteString::data
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - key_from_filedata
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t * data() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: core_ops_arith__i32_319__add_assign
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:56,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - length
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: mozilla::pkix::test::ByteString::assign
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - core_ops_arith__i32_319__add_assign
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void assign(const uint8_t* data, size_t length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ByteString::append
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: mozilla::pkix::test::ByteString::append
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 11
    functionsReached:
    - mozilla::pkix::test::ByteString::append
    linkageType: ''
    returnType: void
    signature: void append(const ByteString& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ByteString::append
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:60,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - length
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: mozilla::pkix::test::ByteString::append
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 12
    functionsReached:
    - reinterpret_cast<const char*>
    - mozilla::pkix::test::ByteString::append
    linkageType: ''
    returnType: void
    signature: void append(const uint8_t* data, size_t length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ByteString::push_back
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: mozilla::pkix::test::ByteString::push_back
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 6
    functionsReached:
    - mozilla::pkix::test::ByteString::push_back
    linkageType: ''
    returnType: void
    signature: void push_back(uint8_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' bs'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: mozilla::pkix::test::ENCODING_FAILED
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 104
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool ENCODING_FAILED(const ByteString& bs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (bytes)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: mozilla::pkix::test::BytesToByteString
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString BytesToByteString(const uint8_t (&bytes)[L])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: MOZILLA_PKIX_ARRAY_LENGTH
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MOZILLA_PKIX_ARRAY_LENGTH(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' aAlgorithmIdentifier'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: mozilla::pkix::test::TestPublicKeyAlgorithm
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestPublicKeyAlgorithm(const ByteString& aAlgorithmIdentifier)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - TestPublicKeyAlgorithm
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: operator==(const TestPublicKeyAlgorithm& other) const
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const TestPublicKeyAlgorithm& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:147,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tag
    - ' value'
    argTypes:
    - uint8_t
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 148
    functionName: mozilla::pkix::test::TLV
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 265
    functionsReached:
    - mozilla::pkix::test::TLV
    - length
    linkageType: ''
    returnType: ByteString
    signature: ByteString TLV(uint8_t tag, const ByteString& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:157,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:158,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:158,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - tag
    - (value)
    argTypes:
    - uint8_t
    - char[]
    assertStmts:
    - condition: (value[N - 1] == 0)
      pos:
        line_end: 156
        line_start: 156
        source_file: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    constantsTouched: []
    func_position:
      end: 159
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 159
    functionName: mozilla::pkix::test::TLV
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 266
    functionsReached:
    - assert
    - mozilla::pkix::test::TLV
    - ByteString
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: ByteString
    signature: ByteString TLV(uint8_t tag, const char (&value)[N])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:164,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:165,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:166,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - tag
    - length
    - (value)
    argTypes:
    - uint8_t
    - size_t
    - char[]
    assertStmts:
    - condition: (value[N - 1] == 0)
      pos:
        line_end: 163
        line_start: 163
        source_file: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    constantsTouched: []
    func_position:
      end: 167
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 167
    functionName: mozilla::pkix::test::TLV
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 267
    functionsReached:
    - assert
    - mozilla::pkix::test::TLV
    - ByteString
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: ByteString
    signature: ByteString TLV(uint8_t tag, size_t length, const char (&value)[N])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::CN
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:176,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:177,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:177,1
    - Dst: std::strlen
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 179
    functionName: mozilla::pkix::test::CN
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 16
    functionsReached:
    - ByteString
    - std::strlen
    - mozilla::pkix::test::CN
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: ByteString
    signature: "ByteString CN(const char* value,\n                     uint8_t encodingTag
      = 0x0c /*UTF8String*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::OU
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:185,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:186,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:186,1
    - Dst: std::strlen
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 188
    functionName: mozilla::pkix::test::OU
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 6
    functionsReached:
    - mozilla::pkix::test::OU
    - std::strlen
    - ByteString
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: ByteString
    signature: "ByteString OU(const char* value,\n                     uint8_t encodingTag
      = 0x0c /*UTF8String*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::emailAddress
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:193,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:194,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:194,1
    - Dst: std::strlen
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 195
    functionName: mozilla::pkix::test::emailAddress
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 6
    functionsReached:
    - ByteString
    - std::strlen
    - mozilla::pkix::test::emailAddress
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: ByteString
    signature: ByteString emailAddress(const char* value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::Name
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:210,1
    - Dst: mozilla::pkix::test::RDN
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:210,1
    - Dst: mozilla::pkix::test::CN
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' cn'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 211
    functionName: mozilla::pkix::test::CNToDERName
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::Name
    - mozilla::pkix::test::CN
    - mozilla::pkix::test::RDN
    linkageType: ''
    returnType: ByteString
    signature: ByteString CNToDERName(const ByteString& cn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::Name
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:213,1
    - Dst: mozilla::pkix::test::RDN
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:213,1
    - Dst: mozilla::pkix::test::CN
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cn
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 213
    functionName: mozilla::pkix::test::CNToDERName
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::Name
    - mozilla::pkix::test::CN
    - mozilla::pkix::test::RDN
    linkageType: ''
    returnType: ByteString
    signature: ByteString CNToDERName(const char* cn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 229
    functionName: mozilla::pkix::test::RFC822Name
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 5
    functionsReached:
    - mozilla::pkix::test::TLV
    linkageType: ''
    returnType: ByteString
    signature: ByteString RFC822Name(const ByteString& name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::RFC822Name
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:233,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:234,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (bytes)
    argTypes:
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 235
    functionName: mozilla::pkix::test::RFC822Name
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 6
    functionsReached:
    - ByteString
    - mozilla::pkix::test::RFC822Name
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: ByteString
    signature: ByteString RFC822Name(const char (&bytes)[L])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 240
    functionName: mozilla::pkix::test::DNSName
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 5
    functionsReached:
    - mozilla::pkix::test::TLV
    linkageType: ''
    returnType: ByteString
    signature: ByteString DNSName(const ByteString& name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::DNSName
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:244,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:244,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (bytes)
    argTypes:
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 245
    functionName: mozilla::pkix::test::DNSName
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 6
    functionsReached:
    - ByteString
    - mozilla::pkix::test::DNSName
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: ByteString
    signature: ByteString DNSName(const char (&bytes)[L])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 251
    functionName: mozilla::pkix::test::DirectoryName
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    linkageType: ''
    returnType: ByteString
    signature: ByteString DirectoryName(const ByteString& name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:255,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 256
    functionName: mozilla::pkix::test::IPAddress
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString IPAddress()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:261,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (bytes)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 262
    functionName: mozilla::pkix::test::IPAddress
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString IPAddress(const uint8_t (&bytes)[L])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 275
    functionName: ~TestKeyPair()
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~TestKeyPair()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 296
    functionName: mozilla::pkix::test::TestKeyPair::TestKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestKeyPair(const TestKeyPair&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 297
    functionName: operator=(const TestKeyPair&)
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const TestKeyPair&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - keyPair
    argTypes:
    - TestKeyPair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 303
    functionName: mozilla::pkix::test::DeleteTestKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DeleteTestKeyPair(TestKeyPair* keyPair)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: mozilla::pkix::test::ByteString::ByteString
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ByteString()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - count
    - value
    argTypes:
    - size_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: mozilla::pkix::test::ByteString::ByteString
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ByteString(size_t count, uint8_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const char*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - data
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: mozilla::pkix::test::ByteString::ByteString
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void ByteString(const uint8_t* data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const char*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - data
    - length
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: mozilla::pkix::test::ByteString::ByteString
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void ByteString(const uint8_t* data, size_t length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::std::string::append
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: operator+(const ByteString& rhs) const
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - ByteString::std::string::append
    linkageType: ''
    returnType: ByteString
    signature: ByteString operator+(const ByteString& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:53,1
    - Dst: key_from_filedata
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: mozilla::pkix::test::ByteString::data
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - key_from_filedata
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t * data() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: core_ops_arith__i32_319__add_assign
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:56,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - length
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: mozilla::pkix::test::ByteString::assign
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - core_ops_arith__i32_319__add_assign
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void assign(const uint8_t* data, size_t length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ByteString::append
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: mozilla::pkix::test::ByteString::append
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 13
    functionsReached:
    - mozilla::pkix::test::ByteString::append
    linkageType: ''
    returnType: void
    signature: void append(const ByteString& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ByteString::append
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:60,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - length
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: mozilla::pkix::test::ByteString::append
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 14
    functionsReached:
    - reinterpret_cast<const char*>
    - mozilla::pkix::test::ByteString::append
    linkageType: ''
    returnType: void
    signature: void append(const uint8_t* data, size_t length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ByteString::push_back
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: mozilla::pkix::test::ByteString::push_back
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 7
    functionsReached:
    - mozilla::pkix::test::ByteString::push_back
    linkageType: ''
    returnType: void
    signature: void push_back(uint8_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' bs'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: mozilla::pkix::test::ENCODING_FAILED
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 104
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool ENCODING_FAILED(const ByteString& bs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (bytes)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: mozilla::pkix::test::BytesToByteString
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString BytesToByteString(const uint8_t (&bytes)[L])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: MOZILLA_PKIX_ARRAY_LENGTH
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MOZILLA_PKIX_ARRAY_LENGTH(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' aAlgorithmIdentifier'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: mozilla::pkix::test::TestPublicKeyAlgorithm
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestPublicKeyAlgorithm(const ByteString& aAlgorithmIdentifier)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - TestPublicKeyAlgorithm
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: operator==(const TestPublicKeyAlgorithm& other) const
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const TestPublicKeyAlgorithm& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:147,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tag
    - ' value'
    argTypes:
    - uint8_t
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 148
    functionName: mozilla::pkix::test::TLV
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 273
    functionsReached:
    - mozilla::pkix::test::TLV
    - length
    linkageType: ''
    returnType: ByteString
    signature: ByteString TLV(uint8_t tag, const ByteString& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:157,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:158,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:158,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - tag
    - (value)
    argTypes:
    - uint8_t
    - char[]
    assertStmts:
    - condition: (value[N - 1] == 0)
      pos:
        line_end: 156
        line_start: 156
        source_file: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    constantsTouched: []
    func_position:
      end: 159
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 159
    functionName: mozilla::pkix::test::TLV
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 274
    functionsReached:
    - assert
    - mozilla::pkix::test::TLV
    - ByteString
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: ByteString
    signature: ByteString TLV(uint8_t tag, const char (&value)[N])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:164,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:165,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:166,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - tag
    - length
    - (value)
    argTypes:
    - uint8_t
    - size_t
    - char[]
    assertStmts:
    - condition: (value[N - 1] == 0)
      pos:
        line_end: 163
        line_start: 163
        source_file: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    constantsTouched: []
    func_position:
      end: 167
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 167
    functionName: mozilla::pkix::test::TLV
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 275
    functionsReached:
    - assert
    - mozilla::pkix::test::TLV
    - ByteString
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: ByteString
    signature: ByteString TLV(uint8_t tag, size_t length, const char (&value)[N])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::CN
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:176,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:177,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:177,1
    - Dst: std::strlen
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 179
    functionName: mozilla::pkix::test::CN
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 19
    functionsReached:
    - ByteString
    - std::strlen
    - mozilla::pkix::test::CN
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: ByteString
    signature: "ByteString CN(const char* value,\n                     uint8_t encodingTag
      = 0x0c /*UTF8String*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::OU
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:185,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:186,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:186,1
    - Dst: std::strlen
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 188
    functionName: mozilla::pkix::test::OU
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 7
    functionsReached:
    - mozilla::pkix::test::OU
    - std::strlen
    - ByteString
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: ByteString
    signature: "ByteString OU(const char* value,\n                     uint8_t encodingTag
      = 0x0c /*UTF8String*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::emailAddress
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:193,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:194,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:194,1
    - Dst: std::strlen
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 195
    functionName: mozilla::pkix::test::emailAddress
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 7
    functionsReached:
    - ByteString
    - std::strlen
    - mozilla::pkix::test::emailAddress
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: ByteString
    signature: ByteString emailAddress(const char* value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::Name
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:210,1
    - Dst: mozilla::pkix::test::RDN
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:210,1
    - Dst: mozilla::pkix::test::CN
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' cn'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 211
    functionName: mozilla::pkix::test::CNToDERName
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::Name
    - mozilla::pkix::test::CN
    - mozilla::pkix::test::RDN
    linkageType: ''
    returnType: ByteString
    signature: ByteString CNToDERName(const ByteString& cn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::Name
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:213,1
    - Dst: mozilla::pkix::test::RDN
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:213,1
    - Dst: mozilla::pkix::test::CN
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cn
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 213
    functionName: mozilla::pkix::test::CNToDERName
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::Name
    - mozilla::pkix::test::CN
    - mozilla::pkix::test::RDN
    linkageType: ''
    returnType: ByteString
    signature: ByteString CNToDERName(const char* cn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 229
    functionName: mozilla::pkix::test::RFC822Name
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 6
    functionsReached:
    - mozilla::pkix::test::TLV
    linkageType: ''
    returnType: ByteString
    signature: ByteString RFC822Name(const ByteString& name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::RFC822Name
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:233,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:234,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (bytes)
    argTypes:
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 235
    functionName: mozilla::pkix::test::RFC822Name
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 7
    functionsReached:
    - ByteString
    - mozilla::pkix::test::RFC822Name
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: ByteString
    signature: ByteString RFC822Name(const char (&bytes)[L])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 240
    functionName: mozilla::pkix::test::DNSName
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 6
    functionsReached:
    - mozilla::pkix::test::TLV
    linkageType: ''
    returnType: ByteString
    signature: ByteString DNSName(const ByteString& name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::DNSName
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:244,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:244,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (bytes)
    argTypes:
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 245
    functionName: mozilla::pkix::test::DNSName
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 7
    functionsReached:
    - ByteString
    - mozilla::pkix::test::DNSName
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: ByteString
    signature: ByteString DNSName(const char (&bytes)[L])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 251
    functionName: mozilla::pkix::test::DirectoryName
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    linkageType: ''
    returnType: ByteString
    signature: ByteString DirectoryName(const ByteString& name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:255,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 256
    functionName: mozilla::pkix::test::IPAddress
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString IPAddress()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:261,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (bytes)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 262
    functionName: mozilla::pkix::test::IPAddress
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString IPAddress(const uint8_t (&bytes)[L])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 275
    functionName: ~TestKeyPair()
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~TestKeyPair()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 296
    functionName: mozilla::pkix::test::TestKeyPair::TestKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestKeyPair(const TestKeyPair&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 297
    functionName: operator=(const TestKeyPair&)
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const TestKeyPair&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - keyPair
    argTypes:
    - TestKeyPair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 303
    functionName: mozilla::pkix::test::DeleteTestKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DeleteTestKeyPair(TestKeyPair* keyPair)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: mozilla::pkix::test::ByteString::ByteString
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ByteString()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - count
    - value
    argTypes:
    - size_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: mozilla::pkix::test::ByteString::ByteString
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ByteString(size_t count, uint8_t value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const char*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - data
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: mozilla::pkix::test::ByteString::ByteString
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void ByteString(const uint8_t* data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const char*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - data
    - length
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: mozilla::pkix::test::ByteString::ByteString
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void ByteString(const uint8_t* data, size_t length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::std::string::append
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: operator+(const ByteString& rhs) const
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - ByteString::std::string::append
    linkageType: ''
    returnType: ByteString
    signature: ByteString operator+(const ByteString& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:53,1
    - Dst: key_from_filedata
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: mozilla::pkix::test::ByteString::data
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - key_from_filedata
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t * data() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: core_ops_arith__i32_319__add_assign
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:56,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - length
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: mozilla::pkix::test::ByteString::assign
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - core_ops_arith__i32_319__add_assign
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void assign(const uint8_t* data, size_t length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ByteString::append
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: mozilla::pkix::test::ByteString::append
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 15
    functionsReached:
    - mozilla::pkix::test::ByteString::append
    linkageType: ''
    returnType: void
    signature: void append(const ByteString& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ByteString::append
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:60,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - length
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: mozilla::pkix::test::ByteString::append
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 16
    functionsReached:
    - reinterpret_cast<const char*>
    - mozilla::pkix::test::ByteString::append
    linkageType: ''
    returnType: void
    signature: void append(const uint8_t* data, size_t length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::ByteString::push_back
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: mozilla::pkix::test::ByteString::push_back
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 8
    functionsReached:
    - mozilla::pkix::test::ByteString::push_back
    linkageType: ''
    returnType: void
    signature: void push_back(uint8_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' bs'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: mozilla::pkix::test::ENCODING_FAILED
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 104
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool ENCODING_FAILED(const ByteString& bs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (bytes)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: mozilla::pkix::test::BytesToByteString
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString BytesToByteString(const uint8_t (&bytes)[L])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: MOZILLA_PKIX_ARRAY_LENGTH
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MOZILLA_PKIX_ARRAY_LENGTH(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' aAlgorithmIdentifier'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    functionName: mozilla::pkix::test::TestPublicKeyAlgorithm
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestPublicKeyAlgorithm(const ByteString& aAlgorithmIdentifier)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - TestPublicKeyAlgorithm
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: operator==(const TestPublicKeyAlgorithm& other) const
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const TestPublicKeyAlgorithm& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:147,1
    - Dst: length
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tag
    - ' value'
    argTypes:
    - uint8_t
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 148
    functionName: mozilla::pkix::test::TLV
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 281
    functionsReached:
    - mozilla::pkix::test::TLV
    - length
    linkageType: ''
    returnType: ByteString
    signature: ByteString TLV(uint8_t tag, const ByteString& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:157,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:158,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:158,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - tag
    - (value)
    argTypes:
    - uint8_t
    - char[]
    assertStmts:
    - condition: (value[N - 1] == 0)
      pos:
        line_end: 156
        line_start: 156
        source_file: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    constantsTouched: []
    func_position:
      end: 159
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 159
    functionName: mozilla::pkix::test::TLV
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 282
    functionsReached:
    - assert
    - mozilla::pkix::test::TLV
    - ByteString
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: ByteString
    signature: ByteString TLV(uint8_t tag, const char (&value)[N])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:164,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:165,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:166,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - tag
    - length
    - (value)
    argTypes:
    - uint8_t
    - size_t
    - char[]
    assertStmts:
    - condition: (value[N - 1] == 0)
      pos:
        line_end: 163
        line_start: 163
        source_file: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    constantsTouched: []
    func_position:
      end: 167
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 167
    functionName: mozilla::pkix::test::TLV
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 283
    functionsReached:
    - assert
    - mozilla::pkix::test::TLV
    - ByteString
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: ByteString
    signature: ByteString TLV(uint8_t tag, size_t length, const char (&value)[N])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::CN
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:176,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:177,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:177,1
    - Dst: std::strlen
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 179
    functionName: mozilla::pkix::test::CN
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 22
    functionsReached:
    - ByteString
    - std::strlen
    - mozilla::pkix::test::CN
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: ByteString
    signature: "ByteString CN(const char* value,\n                     uint8_t encodingTag
      = 0x0c /*UTF8String*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::OU
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:185,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:186,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:186,1
    - Dst: std::strlen
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 188
    functionName: mozilla::pkix::test::OU
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 8
    functionsReached:
    - mozilla::pkix::test::OU
    - std::strlen
    - ByteString
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: ByteString
    signature: "ByteString OU(const char* value,\n                     uint8_t encodingTag
      = 0x0c /*UTF8String*/)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::emailAddress
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:193,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:194,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:194,1
    - Dst: std::strlen
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 195
    functionName: mozilla::pkix::test::emailAddress
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 8
    functionsReached:
    - ByteString
    - std::strlen
    - mozilla::pkix::test::emailAddress
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: ByteString
    signature: ByteString emailAddress(const char* value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::Name
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:210,1
    - Dst: mozilla::pkix::test::RDN
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:210,1
    - Dst: mozilla::pkix::test::CN
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' cn'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 211
    functionName: mozilla::pkix::test::CNToDERName
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::Name
    - mozilla::pkix::test::CN
    - mozilla::pkix::test::RDN
    linkageType: ''
    returnType: ByteString
    signature: ByteString CNToDERName(const ByteString& cn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::Name
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:213,1
    - Dst: mozilla::pkix::test::RDN
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:213,1
    - Dst: mozilla::pkix::test::CN
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cn
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 213
    functionName: mozilla::pkix::test::CNToDERName
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::Name
    - mozilla::pkix::test::CN
    - mozilla::pkix::test::RDN
    linkageType: ''
    returnType: ByteString
    signature: ByteString CNToDERName(const char* cn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 229
    functionName: mozilla::pkix::test::RFC822Name
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 7
    functionsReached:
    - mozilla::pkix::test::TLV
    linkageType: ''
    returnType: ByteString
    signature: ByteString RFC822Name(const ByteString& name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::RFC822Name
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:233,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:234,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (bytes)
    argTypes:
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 235
    functionName: mozilla::pkix::test::RFC822Name
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 8
    functionsReached:
    - ByteString
    - mozilla::pkix::test::RFC822Name
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: ByteString
    signature: ByteString RFC822Name(const char (&bytes)[L])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 240
    functionName: mozilla::pkix::test::DNSName
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 7
    functionsReached:
    - mozilla::pkix::test::TLV
    linkageType: ''
    returnType: ByteString
    signature: ByteString DNSName(const ByteString& name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::DNSName
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:244,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:244,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (bytes)
    argTypes:
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 245
    functionName: mozilla::pkix::test::DNSName
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 8
    functionsReached:
    - ByteString
    - mozilla::pkix::test::DNSName
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: ByteString
    signature: ByteString DNSName(const char (&bytes)[L])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 251
    functionName: mozilla::pkix::test::DirectoryName
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    linkageType: ''
    returnType: ByteString
    signature: ByteString DirectoryName(const ByteString& name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:255,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 256
    functionName: mozilla::pkix::test::IPAddress
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString IPAddress()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:261,1
    - Dst: ByteString
      Src: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (bytes)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 262
    functionName: mozilla::pkix::test::IPAddress
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - ByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString IPAddress(const uint8_t (&bytes)[L])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 275
    functionName: ~TestKeyPair()
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~TestKeyPair()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 296
    functionName: mozilla::pkix::test::TestKeyPair::TestKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestKeyPair(const TestKeyPair&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 297
    functionName: operator=(const TestKeyPair&)
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const TestKeyPair&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - keyPair
    argTypes:
    - TestKeyPair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 303
    functionName: mozilla::pkix::test::DeleteTestKeyPair
    functionSourceFile: /src/nss/lib/mozpkix/include/pkix-test/pkixtestutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DeleteTestKeyPair(TestKeyPair* keyPair)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ReadTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:81,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:86,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:89,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:92,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:95,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:98,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:101,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:104,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:107,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:110,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 3
    argNames:
    - ' reader'
    - ' generalNameType'
    - ' value'
    argTypes:
    - Reader
    - GeneralNameType
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 117
    functionName: mozilla::pkix::ReadGeneralName
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::ReadTagAndGetValue
    - static_cast<uint8_t>
    linkageType: ''
    returnType: Result
    signature: "Result ReadGeneralName(Reader& reader,\n                /*out*/ GeneralNameType&
      generalNameType,\n                /*out*/ Input& value)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ReadTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:81,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:86,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:89,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:92,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:95,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:98,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:101,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:104,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:107,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:110,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 3
    argNames:
    - ' reader'
    - ' generalNameType'
    - ' value'
    argTypes:
    - Reader
    - GeneralNameType
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 117
    functionName: mozilla::pkix::ReadGeneralName
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::ReadTagAndGetValue
    - static_cast<uint8_t>
    linkageType: ''
    returnType: Result
    signature: "Result ReadGeneralName(Reader& reader,\n                /*out*/ GeneralNameType&
      generalNameType,\n                /*out*/ Input& value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - presentedDNSID
    - referenceDNSID
    - ' matches'
    argTypes:
    - Input
    - Input
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 216
    functionName: mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 1
    functionsReached:
    - mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
    linkageType: ''
    returnType: Result
    signature: "Result MatchPresentedDNSIDWithReferenceDNSID(Input presentedDNSID,\n
      \                                     Input referenceDNSID,\n                                      /*out*/
      bool& matches)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: BackCert::Init
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:227,1
    - Dst: mozilla::pkix::ParseValidity
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:233,1
    - Dst: BackCert::GetValidity
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:233,1
    - Dst: FallBackToCommonName
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:238,1
    - Dst: HandleInvalidSubjectAlternativeNames
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:244,1
    - Dst: BackCert::GetSubject
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:247,1
    - Dst: mozilla::pkix::IsValidReferenceDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:261,1
    - Dst: mozilla::pkix::SearchNames
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:262,1
    - Dst: mozilla::pkix::ParseIPv6Address
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:265,1
    - Dst: mozilla::pkix::SearchNames
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:266,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:267,1
    - Dst: mozilla::pkix::ParseIPv4Address
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:269,1
    - Dst: mozilla::pkix::SearchNames
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:270,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:271,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 3
    argNames:
    - endEntityCertDER
    - hostname
    - ' nameMatchingPolicy'
    argTypes:
    - Input
    - Input
    - NameMatchingPolicy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 287
    functionName: mozilla::pkix::CheckCertHostname
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 0
    functionsReached:
    - BackCert::Init
    - BackCert::GetSubject
    - mozilla::pkix::SearchNames
    - mozilla::pkix::IsValidReferenceDNSID
    - mozilla::pkix::ParseValidity
    - BackCert::GetValidity
    - mozilla::pkix::ParseIPv4Address
    - FallBackToCommonName
    - mozilla::pkix::ParseIPv6Address
    - Input
    - HandleInvalidSubjectAlternativeNames
    linkageType: ''
    returnType: Result
    signature: "Result CheckCertHostname(Input endEntityCertDER, Input hostname,\n
      \                 NameMatchingPolicy& nameMatchingPolicy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - notBefore
    - ' fallBackToCommonName'
    argTypes:
    - Time
    - FallBackToSearchWithinSubject
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 296
    functionName: mozilla::pkix::StrictNameMatchingPolicy::FallBackToCommonName
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result StrictNameMatchingPolicy::FallBackToCommonName(\n    Time notBefore,\n
      \   /*out*/ FallBackToSearchWithinSubject& fallBackToCommonName)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 303
    functionName: mozilla::pkix::StrictNameMatchingPolicy::HandleInvalidSubjectAlternativeNames
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: HandleInvalidSubjectAlternativeNamesBy
    signature: HandleInvalidSubjectAlternativeNamesBy StrictNameMatchingPolicy::HandleInvalidSubjectAlternativeNames()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::CheckCertHostname
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - endEntityCertDER
    - hostname
    argTypes:
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 310
    functionName: mozilla::pkix::CheckCertHostname
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 1
    functionsReached:
    - mozilla::pkix::CheckCertHostname
    linkageType: ''
    returnType: Result
    signature: Result CheckCertHostname(Input endEntityCertDER, Input hostname)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::SearchNames
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:327,1
    - Dst: BackCert*::GetSubjectAltName
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:327,1
    - Dst: BackCert*::GetSubject
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:327,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - encodedNameConstraints
    - ' firstChild'
    - requiredEKUIfPresent
    argTypes:
    - Input
    - BackCert
    - KeyPurposeId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 345
    functionName: mozilla::pkix::CheckNameConstraints
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 0
    functionsReached:
    - BackCert*::GetSubject
    - mozilla::pkix::SearchNames
    - BackCert*::GetSubjectAltName
    linkageType: ''
    returnType: Result
    signature: "Result CheckNameConstraints(Input encodedNameConstraints,\n                     const
      BackCert& firstChild,\n                     KeyPurposeId requiredEKUIfPresent)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:396,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:405,1
    - Dst: mozilla::pkix::ReadGeneralName
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:408,1
    - Dst: mozilla::pkix::MatchPresentedIDWithReferenceID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:413,1
    - Dst: mozilla::pkix::IsFatalError
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:417,1
    - Dst: mozilla::pkix::CheckPresentedIDConformsToConstraints
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:435,1
    - Dst: mozilla::pkix::der::NestedOf
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:524,1
    - Dst: mozilla::pkix::SearchWithinRDN
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:526,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 44
    argCount: 7
    argNames:
    - subjectAltName
    - subject
    - referenceIDType
    - referenceID
    - fallBackToCommonName
    - handleInvalidSANsBy
    - ' match'
    argTypes:
    - Input*
    - Input
    - GeneralNameType
    - Input
    - FallBackToSearchWithinSubject
    - HandleInvalidSubjectAlternativeNamesBy
    - MatchResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 364
    functionDepth: 4
    functionLinenumber: 364
    functionLinenumberEnd: 529
    functionName: mozilla::pkix::SearchNames
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 2
    functionsReached:
    - mozilla::pkix::der::NestedOf
    - mozilla::pkix::SearchWithinRDN
    - Reader::AtEnd
    - mozilla::pkix::IsFatalError
    - mozilla::pkix::CheckPresentedIDConformsToConstraints
    - mozilla::pkix::MatchPresentedIDWithReferenceID
    - mozilla::pkix::ReadGeneralName
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    linkageType: ''
    returnType: Result
    signature: "Result SearchNames(/*optional*/ const Input* subjectAltName,\n            Input
      subject,\n            GeneralNameType referenceIDType,\n            Input referenceID,\n
      \           FallBackToSearchWithinSubject fallBackToCommonName,\n            HandleInvalidSubjectAlternativeNamesBy
      handleInvalidSANsBy,\n            /*out*/ MatchResult& match)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::ReadAVA
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:549,1
    - Dst: mozilla::pkix::MatchAVA
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:553,1
    - Dst: AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:558,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 6
    argNames:
    - ' rdn'
    - referenceIDType
    - referenceID
    - fallBackToEmailAddress
    - fallBackToCommonName
    - ' match'
    argTypes:
    - Reader
    - GeneralNameType
    - Input
    - FallBackToSearchWithinSubject
    - FallBackToSearchWithinSubject
    - MatchResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 537
    functionDepth: 1
    functionLinenumber: 537
    functionLinenumberEnd: 561
    functionName: mozilla::pkix::SearchWithinRDN
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 1
    functionsReached:
    - mozilla::pkix::ReadAVA
    - mozilla::pkix::MatchAVA
    - AtEnd
    linkageType: ''
    returnType: Result
    signature: "Result SearchWithinRDN(Reader& rdn,\n                GeneralNameType
      referenceIDType,\n                Input referenceID,\n                FallBackToSearchWithinSubject
      fallBackToEmailAddress,\n                FallBackToSearchWithinSubject fallBackToCommonName,\n
      \               /*in/out*/ MatchResult& match)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:605,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:605,1
    - Dst: mozilla::pkix::IsValidPresentedDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:639,1
    - Dst: mozilla::pkix::MatchSubjectPresentedIDWithReferenceID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:640,1
    - Dst: mozilla::pkix::ParseIPv4Address
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:649,1
    - Dst: mozilla::pkix::MatchSubjectPresentedIDWithReferenceID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:650,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:651,1
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:675,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:675,1
    - Dst: mozilla::pkix::MatchPresentedIDWithReferenceID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:684,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 8
    argNames:
    - type
    - valueEncodingTag
    - presentedID
    - referenceIDType
    - referenceID
    - fallBackToEmailAddress
    - fallBackToCommonName
    - ' match'
    argTypes:
    - Input
    - uint8_t
    - Input
    - GeneralNameType
    - Input
    - FallBackToSearchWithinSubject
    - FallBackToSearchWithinSubject
    - MatchResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 577
    functionDepth: 1
    functionLinenumber: 577
    functionLinenumberEnd: 690
    functionName: mozilla::pkix::MatchAVA
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 1
    functionsReached:
    - mozilla::pkix::MatchSubjectPresentedIDWithReferenceID
    - mozilla::pkix::ParseIPv4Address
    - Input
    - mozilla::pkix::MatchPresentedIDWithReferenceID
    - mozilla::pkix::IsValidPresentedDNSID
    - mozilla::pkix::InputsAreEqual
    linkageType: ''
    returnType: Result
    signature: "Result MatchAVA(Input type, uint8_t valueEncodingTag, Input presentedID,\n
      \        GeneralNameType referenceIDType,\n         Input referenceID,\n         FallBackToSearchWithinSubject
      fallBackToEmailAddress,\n         FallBackToSearchWithinSubject fallBackToCommonName,\n
      \        /*in/out*/ MatchResult& match)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::MatchPresentedIDWithReferenceID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:699,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - presentedIDType
    - presentedID
    - referenceIDType
    - referenceID
    - ' match'
    argTypes:
    - GeneralNameType
    - Input
    - GeneralNameType
    - Input
    - MatchResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 692
    functionDepth: 1
    functionLinenumber: 692
    functionLinenumberEnd: 705
    functionName: mozilla::pkix::MatchSubjectPresentedIDWithReferenceID
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 1
    functionsReached:
    - mozilla::pkix::MatchPresentedIDWithReferenceID
    linkageType: ''
    returnType: void
    signature: "void MatchSubjectPresentedIDWithReferenceID(GeneralNameType presentedIDType,\n
      \                                      Input presentedID,\n                                       GeneralNameType
      referenceIDType,\n                                       Input referenceID,\n
      \                                      /*in/out*/ MatchResult& match)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::CheckPresentedIDConformsToConstraints
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:717,1
    - Dst: mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:731,1
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:738,1
    - Dst: mozilla::pkix::MatchPresentedRFC822NameWithReferenceRFC822Name
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:743,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:757,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 5
    argNames:
    - presentedIDType
    - presentedID
    - referenceIDType
    - referenceID
    - ' matchResult'
    argTypes:
    - GeneralNameType
    - Input
    - GeneralNameType
    - Input
    - MatchResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 707
    functionDepth: 2
    functionLinenumber: 707
    functionLinenumberEnd: 768
    functionName: mozilla::pkix::MatchPresentedIDWithReferenceID
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 3
    functionsReached:
    - mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
    - mozilla::pkix::CheckPresentedIDConformsToConstraints
    - mozilla::pkix::MatchPresentedRFC822NameWithReferenceRFC822Name
    - mozilla::pkix::InputsAreEqual
    - mozilla::pkix::NotReached
    linkageType: ''
    returnType: Result
    signature: "Result MatchPresentedIDWithReferenceID(GeneralNameType presentedIDType,\n
      \                               Input presentedID,\n                                GeneralNameType
      referenceIDType,\n                                Input referenceID,\n                                /*out*/
      MatchResult& matchResult)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:798,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:807,1
    - Dst: mozilla::pkix::CheckPresentedIDConformsToNameConstraintsSubtrees
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:811,1
    - Dst: mozilla::pkix::CheckPresentedIDConformsToNameConstraintsSubtrees
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:818,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:825,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - presentedIDType
    - presentedID
    - encodedNameConstraints
    argTypes:
    - GeneralNameType
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 788
    functionDepth: 3
    functionLinenumber: 788
    functionLinenumberEnd: 826
    functionName: mozilla::pkix::CheckPresentedIDConformsToConstraints
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 2
    functionsReached:
    - mozilla::pkix::der::End
    - Reader::AtEnd
    - mozilla::pkix::CheckPresentedIDConformsToNameConstraintsSubtrees
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    linkageType: ''
    returnType: Result
    signature: "Result CheckPresentedIDConformsToConstraints(\n  GeneralNameType presentedIDType,\n
      \ Input presentedID,\n  Input encodedNameConstraints)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:835,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:835,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:840,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:841,1
    - Dst: ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:859,1
    - Dst: mozilla::pkix::ReadGeneralName
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:865,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:876,1
    - Dst: mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:886,1
    - Dst: mozilla::pkix::MatchPresentedIPAddressWithConstraint
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:896,1
    - Dst: mozilla::pkix::MatchPresentedDirectoryNameWithConstraint
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:904,1
    - Dst: mozilla::pkix::MatchPresentedRFC822NameWithReferenceRFC822Name
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:913,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:938,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:959,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 76
    argCount: 4
    argNames:
    - presentedIDType
    - presentedID
    - ' nameConstraints'
    - subtreesType
    argTypes:
    - GeneralNameType
    - Input
    - Reader
    - NameConstraintsSubtrees
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 828
    functionDepth: 2
    functionLinenumber: 828
    functionLinenumberEnd: 969
    functionName: mozilla::pkix::CheckPresentedIDConformsToNameConstraintsSubtrees
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 1
    functionsReached:
    - mozilla::pkix::der::End
    - mozilla::pkix::MatchPresentedIPAddressWithConstraint
    - mozilla::pkix::der::ExpectTagAndGetValue
    - mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
    - Reader::AtEnd
    - mozilla::pkix::MatchPresentedRFC822NameWithReferenceRFC822Name
    - ExpectTagAndGetValue
    - mozilla::pkix::MatchPresentedDirectoryNameWithConstraint
    - mozilla::pkix::ReadGeneralName
    - Peek
    - mozilla::pkix::NotReached
    - static_cast<uint8_t>
    linkageType: ''
    returnType: Result
    signature: "Result CheckPresentedIDConformsToNameConstraintsSubtrees(\n  GeneralNameType
      presentedIDType,\n  Input presentedID,\n  Reader& nameConstraints,\n  NameConstraintsSubtrees
      subtreesType)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::IsValidDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1100,1
    - Dst: mozilla::pkix::IsValidDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1104,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1118,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1118,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1119,1
    - Dst: Reader::Peek
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1147,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1148,1
    - Dst: static_cast<Input::size_type>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1148,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1149,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1150,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1151,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1156,1
    - Dst: static_cast<Input::size_type>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1156,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1157,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1158,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1159,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1163,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1164,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1177,1
    - Dst: Reader::Peek
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1182,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1183,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1184,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1189,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1194,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1195,1
    - Dst: Reader::Peek
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1198,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1203,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1208,1
    - Dst: mozilla::pkix::LocaleInsensitveToLower
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1212,1
    - Dst: mozilla::pkix::LocaleInsensitveToLower
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1213,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1217,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1228,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1231,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1232,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1240,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 90
    argCount: 6
    argNames:
    - presentedDNSID
    - allowWildcards
    - allowDotlessSubdomainMatches
    - referenceDNSIDRole
    - referenceDNSID
    - ' matches'
    argTypes:
    - Input
    - AllowWildcards
    - AllowDotlessSubdomainMatches
    - IDRole
    - Input
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1248
      start: 1091
    functionDepth: 1
    functionLinenumber: 1091
    functionLinenumberEnd: 1248
    functionName: mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 3
    functionsReached:
    - mozilla::pkix::IsValidDNSID
    - mozilla::pkix::LocaleInsensitveToLower
    - Input::GetLength
    - Reader::Read
    - Reader::Skip
    - Reader::Peek
    - static_cast<Input::size_type>
    - Reader::AtEnd
    - mozilla::pkix::NotReached
    linkageType: ''
    returnType: Result
    signature: "Result MatchPresentedDNSIDWithReferenceDNSID(\n  Input presentedDNSID,\n
      \ AllowWildcards allowWildcards,\n  AllowDotlessSubdomainMatches allowDotlessSubdomainMatches,\n
      \ IDRole referenceDNSIDRole,\n  Input referenceDNSID,\n  /*out*/ bool& matches)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1264,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1264,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1267,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1268,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1273,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1273,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1280,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1280,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1286,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1286,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1290,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1298,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1303,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1308,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1314,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 3
    argNames:
    - presentedID
    - iPAddressConstraint
    - ' foundMatch'
    argTypes:
    - Input
    - Input
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1317
      start: 1259
    functionDepth: 1
    functionLinenumber: 1259
    functionLinenumberEnd: 1317
    functionName: mozilla::pkix::MatchPresentedIPAddressWithConstraint
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 1
    functionsReached:
    - mozilla::pkix::der::End
    - Input::GetLength
    - Reader::Read
    - Reader::Skip
    - Reader::AtEnd
    linkageType: ''
    returnType: Result
    signature: "Result MatchPresentedIPAddressWithConstraint(Input presentedID,\n
      \                                     Input iPAddressConstraint,\n                                      /*out*/
      bool& foundMatch)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1332,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1333,1
    - Dst: mozilla::pkix::der::ReadTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1337,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - ' rdn'
    - ' type'
    - ' valueTag'
    - ' value'
    argTypes:
    - Reader
    - Input
    - uint8_t
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1343
      start: 1326
    functionDepth: 3
    functionLinenumber: 1326
    functionLinenumberEnd: 1343
    functionName: mozilla::pkix::ReadAVA
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 1
    functionsReached:
    - mozilla::pkix::der::ReadTagAndGetValue
    - mozilla::pkix::der::Nested
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: "Result ReadAVA(Reader& rdn,\n        /*out*/ Input& type,\n        /*out*/
      uint8_t& valueTag,\n        /*out*/ Input& value)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1392,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1398,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1408,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1408,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1418,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1422,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1427,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1432,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1436,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1436,1
    - Dst: mozilla::pkix::ReadAVA
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1440,1
    - Dst: mozilla::pkix::ReadAVA
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1448,1
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1456,1
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1457,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1468,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1468,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 54
    argCount: 4
    argNames:
    - subtreesType
    - presentedID
    - directoryNameConstraint
    - ' matches'
    argTypes:
    - NameConstraintsSubtrees
    - Input
    - Input
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1473
      start: 1385
    functionDepth: 4
    functionLinenumber: 1385
    functionLinenumberEnd: 1473
    functionName: mozilla::pkix::MatchPresentedDirectoryNameWithConstraint
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 1
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndGetValue
    - Reader::AtEnd
    - mozilla::pkix::InputsAreEqual
    - mozilla::pkix::ReadAVA
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    linkageType: ''
    returnType: Result
    signature: "Result MatchPresentedDirectoryNameWithConstraint(NameConstraintsSubtrees
      subtreesType,\n                                          Input presentedID,\n
      \                                         Input directoryNameConstraint,\n                                          /*out*/
      bool& matches)"
  - BBCount: 89
    BranchProfiles: []
    Callsites:
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1509,1
    - Dst: Reader::SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1543,1
    - Dst: mozilla::pkix::IsValidDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1546,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 108
    argCount: 1
    argNames:
    - input
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1553
      start: 1500
    functionDepth: 1
    functionLinenumber: 1500
    functionLinenumberEnd: 1553
    functionName: mozilla::pkix::IsValidRFC822Name
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 0
    functionsReached:
    - Reader::SkipToEnd
    - mozilla::pkix::IsValidDNSID
    - Reader::Read
    linkageType: ''
    returnType: bool
    signature: bool IsValidRFC822Name(Input input)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::IsValidRFC822Name
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1561,1
    - Dst: mozilla::pkix::InputContains
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1576,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1586,1
    - Dst: Reader::SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1595,1
    - Dst: mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1599,1
    - Dst: mozilla::pkix::IsValidRFC822Name
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1606,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1614,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1615,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1619,1
    - Dst: mozilla::pkix::LocaleInsensitveToLower
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1623,1
    - Dst: mozilla::pkix::LocaleInsensitveToLower
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1624,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 4
    argNames:
    - presentedRFC822Name
    - referenceRFC822NameRole
    - referenceRFC822Name
    - ' matches'
    argTypes:
    - Input
    - IDRole
    - Input
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1629
      start: 1555
    functionDepth: 2
    functionLinenumber: 1555
    functionLinenumberEnd: 1629
    functionName: mozilla::pkix::MatchPresentedRFC822NameWithReferenceRFC822Name
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 2
    functionsReached:
    - mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
    - mozilla::pkix::IsValidRFC822Name
    - mozilla::pkix::LocaleInsensitveToLower
    - Reader::Read
    - Reader::SkipToEnd
    - mozilla::pkix::InputContains
    - Reader::AtEnd
    linkageType: ''
    returnType: Result
    signature: "Result MatchPresentedRFC822NameWithReferenceRFC822Name(Input presentedRFC822Name,\n
      \                                               IDRole referenceRFC822NameRole,\n
      \                                               Input referenceRFC822Name,\n
      \                                               /*out*/ bool& matches)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1637,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1638,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1638,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1639,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - a
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1642
      start: 1633
    functionDepth: 0
    functionLinenumber: 1633
    functionLinenumberEnd: 1642
    functionName: mozilla::pkix::LocaleInsensitveToLower
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 2
    functionsReached:
    - static_cast<uint8_t>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t LocaleInsensitveToLower(uint8_t a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1651,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - id
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1659
      start: 1644
    functionDepth: 0
    functionLinenumber: 1644
    functionLinenumberEnd: 1659
    functionName: mozilla::pkix::StartsWithIDNALabel
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 0
    functionsReached:
    - Reader::Read
    linkageType: ''
    returnType: bool
    signature: bool StartsWithIDNALabel(Input id)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1669,1
    - Dst: Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1674,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1698,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 3
    argNames:
    - ' input'
    - lastComponent
    - ' valueOut'
    argTypes:
    - Reader
    - bool
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1700
      start: 1661
    functionDepth: 0
    functionLinenumber: 1661
    functionLinenumberEnd: 1700
    functionName: mozilla::pkix::ReadIPv4AddressComponent
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint8_t>
    - Read
    - AtEnd
    linkageType: ''
    returnType: bool
    signature: "bool ReadIPv4AddressComponent(Reader& input, bool lastComponent,\n
      \                        /*out*/ uint8_t& valueOut)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:396,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:405,1
    - Dst: mozilla::pkix::ReadGeneralName
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:408,1
    - Dst: mozilla::pkix::MatchPresentedIDWithReferenceID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:413,1
    - Dst: mozilla::pkix::IsFatalError
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:417,1
    - Dst: mozilla::pkix::CheckPresentedIDConformsToConstraints
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:435,1
    - Dst: mozilla::pkix::der::NestedOf
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:524,1
    - Dst: mozilla::pkix::SearchWithinRDN
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:526,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 44
    argCount: 7
    argNames:
    - subjectAltName
    - subject
    - referenceIDType
    - referenceID
    - fallBackToCommonName
    - handleInvalidSANsBy
    - ' match'
    argTypes:
    - Input*
    - Input
    - GeneralNameType
    - Input
    - FallBackToSearchWithinSubject
    - HandleInvalidSubjectAlternativeNamesBy
    - MatchResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 364
    functionDepth: 4
    functionLinenumber: 364
    functionLinenumberEnd: 529
    functionName: mozilla::pkix::SearchNames
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 2
    functionsReached:
    - mozilla::pkix::der::NestedOf
    - mozilla::pkix::SearchWithinRDN
    - Reader::AtEnd
    - mozilla::pkix::IsFatalError
    - mozilla::pkix::CheckPresentedIDConformsToConstraints
    - mozilla::pkix::MatchPresentedIDWithReferenceID
    - mozilla::pkix::ReadGeneralName
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    linkageType: ''
    returnType: Result
    signature: "Result SearchNames(/*optional*/ const Input* subjectAltName,\n            Input
      subject,\n            GeneralNameType referenceIDType,\n            Input referenceID,\n
      \           FallBackToSearchWithinSubject fallBackToCommonName,\n            HandleInvalidSubjectAlternativeNamesBy
      handleInvalidSANsBy,\n            /*out*/ MatchResult& match)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::ReadAVA
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:549,1
    - Dst: mozilla::pkix::MatchAVA
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:553,1
    - Dst: AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:558,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 6
    argNames:
    - ' rdn'
    - referenceIDType
    - referenceID
    - fallBackToEmailAddress
    - fallBackToCommonName
    - ' match'
    argTypes:
    - Reader
    - GeneralNameType
    - Input
    - FallBackToSearchWithinSubject
    - FallBackToSearchWithinSubject
    - MatchResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 537
    functionDepth: 4
    functionLinenumber: 537
    functionLinenumberEnd: 561
    functionName: mozilla::pkix::SearchWithinRDN
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 2
    functionsReached:
    - mozilla::pkix::ReadAVA
    - mozilla::pkix::MatchAVA
    - AtEnd
    linkageType: ''
    returnType: Result
    signature: "Result SearchWithinRDN(Reader& rdn,\n                GeneralNameType
      referenceIDType,\n                Input referenceID,\n                FallBackToSearchWithinSubject
      fallBackToEmailAddress,\n                FallBackToSearchWithinSubject fallBackToCommonName,\n
      \               /*in/out*/ MatchResult& match)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:605,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:605,1
    - Dst: mozilla::pkix::IsValidPresentedDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:639,1
    - Dst: mozilla::pkix::MatchSubjectPresentedIDWithReferenceID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:640,1
    - Dst: mozilla::pkix::ParseIPv4Address
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:649,1
    - Dst: mozilla::pkix::MatchSubjectPresentedIDWithReferenceID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:650,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:651,1
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:675,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:675,1
    - Dst: mozilla::pkix::MatchPresentedIDWithReferenceID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:684,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 8
    argNames:
    - type
    - valueEncodingTag
    - presentedID
    - referenceIDType
    - referenceID
    - fallBackToEmailAddress
    - fallBackToCommonName
    - ' match'
    argTypes:
    - Input
    - uint8_t
    - Input
    - GeneralNameType
    - Input
    - FallBackToSearchWithinSubject
    - FallBackToSearchWithinSubject
    - MatchResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 577
    functionDepth: 3
    functionLinenumber: 577
    functionLinenumberEnd: 690
    functionName: mozilla::pkix::MatchAVA
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 2
    functionsReached:
    - mozilla::pkix::MatchSubjectPresentedIDWithReferenceID
    - mozilla::pkix::ParseIPv4Address
    - Input
    - mozilla::pkix::MatchPresentedIDWithReferenceID
    - mozilla::pkix::IsValidPresentedDNSID
    - mozilla::pkix::InputsAreEqual
    linkageType: ''
    returnType: Result
    signature: "Result MatchAVA(Input type, uint8_t valueEncodingTag, Input presentedID,\n
      \        GeneralNameType referenceIDType,\n         Input referenceID,\n         FallBackToSearchWithinSubject
      fallBackToEmailAddress,\n         FallBackToSearchWithinSubject fallBackToCommonName,\n
      \        /*in/out*/ MatchResult& match)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::MatchPresentedIDWithReferenceID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:699,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - presentedIDType
    - presentedID
    - referenceIDType
    - referenceID
    - ' match'
    argTypes:
    - GeneralNameType
    - Input
    - GeneralNameType
    - Input
    - MatchResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 692
    functionDepth: 3
    functionLinenumber: 692
    functionLinenumberEnd: 705
    functionName: mozilla::pkix::MatchSubjectPresentedIDWithReferenceID
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 2
    functionsReached:
    - mozilla::pkix::MatchPresentedIDWithReferenceID
    linkageType: ''
    returnType: void
    signature: "void MatchSubjectPresentedIDWithReferenceID(GeneralNameType presentedIDType,\n
      \                                      Input presentedID,\n                                       GeneralNameType
      referenceIDType,\n                                       Input referenceID,\n
      \                                      /*in/out*/ MatchResult& match)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::CheckPresentedIDConformsToConstraints
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:717,1
    - Dst: mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:731,1
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:738,1
    - Dst: mozilla::pkix::MatchPresentedRFC822NameWithReferenceRFC822Name
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:743,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:757,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 5
    argNames:
    - presentedIDType
    - presentedID
    - referenceIDType
    - referenceID
    - ' matchResult'
    argTypes:
    - GeneralNameType
    - Input
    - GeneralNameType
    - Input
    - MatchResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 707
    functionDepth: 4
    functionLinenumber: 707
    functionLinenumberEnd: 768
    functionName: mozilla::pkix::MatchPresentedIDWithReferenceID
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 6
    functionsReached:
    - mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
    - mozilla::pkix::CheckPresentedIDConformsToConstraints
    - mozilla::pkix::MatchPresentedRFC822NameWithReferenceRFC822Name
    - mozilla::pkix::InputsAreEqual
    - mozilla::pkix::NotReached
    linkageType: ''
    returnType: Result
    signature: "Result MatchPresentedIDWithReferenceID(GeneralNameType presentedIDType,\n
      \                               Input presentedID,\n                                GeneralNameType
      referenceIDType,\n                                Input referenceID,\n                                /*out*/
      MatchResult& matchResult)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:798,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:807,1
    - Dst: mozilla::pkix::CheckPresentedIDConformsToNameConstraintsSubtrees
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:811,1
    - Dst: mozilla::pkix::CheckPresentedIDConformsToNameConstraintsSubtrees
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:818,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:825,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - presentedIDType
    - presentedID
    - encodedNameConstraints
    argTypes:
    - GeneralNameType
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 788
    functionDepth: 3
    functionLinenumber: 788
    functionLinenumberEnd: 826
    functionName: mozilla::pkix::CheckPresentedIDConformsToConstraints
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 4
    functionsReached:
    - mozilla::pkix::der::End
    - Reader::AtEnd
    - mozilla::pkix::CheckPresentedIDConformsToNameConstraintsSubtrees
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    linkageType: ''
    returnType: Result
    signature: "Result CheckPresentedIDConformsToConstraints(\n  GeneralNameType presentedIDType,\n
      \ Input presentedID,\n  Input encodedNameConstraints)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:835,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:835,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:840,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:841,1
    - Dst: ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:859,1
    - Dst: mozilla::pkix::ReadGeneralName
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:865,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:876,1
    - Dst: mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:886,1
    - Dst: mozilla::pkix::MatchPresentedIPAddressWithConstraint
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:896,1
    - Dst: mozilla::pkix::MatchPresentedDirectoryNameWithConstraint
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:904,1
    - Dst: mozilla::pkix::MatchPresentedRFC822NameWithReferenceRFC822Name
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:913,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:938,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:959,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 76
    argCount: 4
    argNames:
    - presentedIDType
    - presentedID
    - ' nameConstraints'
    - subtreesType
    argTypes:
    - GeneralNameType
    - Input
    - Reader
    - NameConstraintsSubtrees
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 828
    functionDepth: 5
    functionLinenumber: 828
    functionLinenumberEnd: 969
    functionName: mozilla::pkix::CheckPresentedIDConformsToNameConstraintsSubtrees
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 2
    functionsReached:
    - mozilla::pkix::der::End
    - mozilla::pkix::MatchPresentedIPAddressWithConstraint
    - mozilla::pkix::der::ExpectTagAndGetValue
    - mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
    - Reader::AtEnd
    - mozilla::pkix::MatchPresentedRFC822NameWithReferenceRFC822Name
    - ExpectTagAndGetValue
    - mozilla::pkix::MatchPresentedDirectoryNameWithConstraint
    - mozilla::pkix::ReadGeneralName
    - Peek
    - mozilla::pkix::NotReached
    - static_cast<uint8_t>
    linkageType: ''
    returnType: Result
    signature: "Result CheckPresentedIDConformsToNameConstraintsSubtrees(\n  GeneralNameType
      presentedIDType,\n  Input presentedID,\n  Reader& nameConstraints,\n  NameConstraintsSubtrees
      subtreesType)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::IsValidDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1100,1
    - Dst: mozilla::pkix::IsValidDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1104,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1118,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1118,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1119,1
    - Dst: Reader::Peek
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1147,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1148,1
    - Dst: static_cast<Input::size_type>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1148,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1149,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1150,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1151,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1156,1
    - Dst: static_cast<Input::size_type>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1156,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1157,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1158,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1159,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1163,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1164,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1177,1
    - Dst: Reader::Peek
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1182,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1183,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1184,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1189,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1194,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1195,1
    - Dst: Reader::Peek
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1198,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1203,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1208,1
    - Dst: mozilla::pkix::LocaleInsensitveToLower
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1212,1
    - Dst: mozilla::pkix::LocaleInsensitveToLower
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1213,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1217,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1228,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1231,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1232,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1240,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 90
    argCount: 6
    argNames:
    - presentedDNSID
    - allowWildcards
    - allowDotlessSubdomainMatches
    - referenceDNSIDRole
    - referenceDNSID
    - ' matches'
    argTypes:
    - Input
    - AllowWildcards
    - AllowDotlessSubdomainMatches
    - IDRole
    - Input
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1248
      start: 1091
    functionDepth: 1
    functionLinenumber: 1091
    functionLinenumberEnd: 1248
    functionName: mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 6
    functionsReached:
    - mozilla::pkix::IsValidDNSID
    - mozilla::pkix::LocaleInsensitveToLower
    - Input::GetLength
    - Reader::Read
    - Reader::Skip
    - Reader::Peek
    - static_cast<Input::size_type>
    - Reader::AtEnd
    - mozilla::pkix::NotReached
    linkageType: ''
    returnType: Result
    signature: "Result MatchPresentedDNSIDWithReferenceDNSID(\n  Input presentedDNSID,\n
      \ AllowWildcards allowWildcards,\n  AllowDotlessSubdomainMatches allowDotlessSubdomainMatches,\n
      \ IDRole referenceDNSIDRole,\n  Input referenceDNSID,\n  /*out*/ bool& matches)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1264,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1264,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1267,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1268,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1273,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1273,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1280,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1280,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1286,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1286,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1290,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1298,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1303,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1308,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1314,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 3
    argNames:
    - presentedID
    - iPAddressConstraint
    - ' foundMatch'
    argTypes:
    - Input
    - Input
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1317
      start: 1259
    functionDepth: 1
    functionLinenumber: 1259
    functionLinenumberEnd: 1317
    functionName: mozilla::pkix::MatchPresentedIPAddressWithConstraint
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 2
    functionsReached:
    - mozilla::pkix::der::End
    - Input::GetLength
    - Reader::Read
    - Reader::Skip
    - Reader::AtEnd
    linkageType: ''
    returnType: Result
    signature: "Result MatchPresentedIPAddressWithConstraint(Input presentedID,\n
      \                                     Input iPAddressConstraint,\n                                      /*out*/
      bool& foundMatch)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1332,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1333,1
    - Dst: mozilla::pkix::der::ReadTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1337,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - ' rdn'
    - ' type'
    - ' valueTag'
    - ' value'
    argTypes:
    - Reader
    - Input
    - uint8_t
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1343
      start: 1326
    functionDepth: 3
    functionLinenumber: 1326
    functionLinenumberEnd: 1343
    functionName: mozilla::pkix::ReadAVA
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 3
    functionsReached:
    - mozilla::pkix::der::ReadTagAndGetValue
    - mozilla::pkix::der::Nested
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: "Result ReadAVA(Reader& rdn,\n        /*out*/ Input& type,\n        /*out*/
      uint8_t& valueTag,\n        /*out*/ Input& value)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1392,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1398,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1408,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1408,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1418,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1422,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1427,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1432,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1436,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1436,1
    - Dst: mozilla::pkix::ReadAVA
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1440,1
    - Dst: mozilla::pkix::ReadAVA
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1448,1
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1456,1
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1457,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1468,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1468,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 54
    argCount: 4
    argNames:
    - subtreesType
    - presentedID
    - directoryNameConstraint
    - ' matches'
    argTypes:
    - NameConstraintsSubtrees
    - Input
    - Input
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1473
      start: 1385
    functionDepth: 4
    functionLinenumber: 1385
    functionLinenumberEnd: 1473
    functionName: mozilla::pkix::MatchPresentedDirectoryNameWithConstraint
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 2
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndGetValue
    - Reader::AtEnd
    - mozilla::pkix::InputsAreEqual
    - mozilla::pkix::ReadAVA
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    linkageType: ''
    returnType: Result
    signature: "Result MatchPresentedDirectoryNameWithConstraint(NameConstraintsSubtrees
      subtreesType,\n                                          Input presentedID,\n
      \                                         Input directoryNameConstraint,\n                                          /*out*/
      bool& matches)"
  - BBCount: 89
    BranchProfiles: []
    Callsites:
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1509,1
    - Dst: Reader::SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1543,1
    - Dst: mozilla::pkix::IsValidDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1546,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 108
    argCount: 1
    argNames:
    - input
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1553
      start: 1500
    functionDepth: 1
    functionLinenumber: 1500
    functionLinenumberEnd: 1553
    functionName: mozilla::pkix::IsValidRFC822Name
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 1
    functionsReached:
    - Reader::SkipToEnd
    - mozilla::pkix::IsValidDNSID
    - Reader::Read
    linkageType: ''
    returnType: bool
    signature: bool IsValidRFC822Name(Input input)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::IsValidRFC822Name
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1561,1
    - Dst: mozilla::pkix::InputContains
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1576,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1586,1
    - Dst: Reader::SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1595,1
    - Dst: mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1599,1
    - Dst: mozilla::pkix::IsValidRFC822Name
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1606,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1614,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1615,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1619,1
    - Dst: mozilla::pkix::LocaleInsensitveToLower
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1623,1
    - Dst: mozilla::pkix::LocaleInsensitveToLower
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1624,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 4
    argNames:
    - presentedRFC822Name
    - referenceRFC822NameRole
    - referenceRFC822Name
    - ' matches'
    argTypes:
    - Input
    - IDRole
    - Input
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1629
      start: 1555
    functionDepth: 2
    functionLinenumber: 1555
    functionLinenumberEnd: 1629
    functionName: mozilla::pkix::MatchPresentedRFC822NameWithReferenceRFC822Name
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 4
    functionsReached:
    - mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
    - mozilla::pkix::IsValidRFC822Name
    - mozilla::pkix::LocaleInsensitveToLower
    - Reader::Read
    - Reader::SkipToEnd
    - mozilla::pkix::InputContains
    - Reader::AtEnd
    linkageType: ''
    returnType: Result
    signature: "Result MatchPresentedRFC822NameWithReferenceRFC822Name(Input presentedRFC822Name,\n
      \                                               IDRole referenceRFC822NameRole,\n
      \                                               Input referenceRFC822Name,\n
      \                                               /*out*/ bool& matches)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1637,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1638,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1638,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1639,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - a
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1642
      start: 1633
    functionDepth: 0
    functionLinenumber: 1633
    functionLinenumberEnd: 1642
    functionName: mozilla::pkix::LocaleInsensitveToLower
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 4
    functionsReached:
    - static_cast<uint8_t>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t LocaleInsensitveToLower(uint8_t a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1651,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - id
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1659
      start: 1644
    functionDepth: 0
    functionLinenumber: 1644
    functionLinenumberEnd: 1659
    functionName: mozilla::pkix::StartsWithIDNALabel
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 0
    functionsReached:
    - Reader::Read
    linkageType: ''
    returnType: bool
    signature: bool StartsWithIDNALabel(Input id)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1669,1
    - Dst: Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1674,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1698,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 3
    argNames:
    - ' input'
    - lastComponent
    - ' valueOut'
    argTypes:
    - Reader
    - bool
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1700
      start: 1661
    functionDepth: 0
    functionLinenumber: 1661
    functionLinenumberEnd: 1700
    functionName: mozilla::pkix::ReadIPv4AddressComponent
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint8_t>
    - Read
    - AtEnd
    linkageType: ''
    returnType: bool
    signature: "bool ReadIPv4AddressComponent(Reader& input, bool lastComponent,\n
      \                        /*out*/ uint8_t& valueOut)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::ReadIPv4AddressComponent
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1711,1
    - Dst: mozilla::pkix::ReadIPv4AddressComponent
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1712,1
    - Dst: mozilla::pkix::ReadIPv4AddressComponent
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1713,1
    - Dst: mozilla::pkix::ReadIPv4AddressComponent
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1714,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - hostname
    - (out)
    argTypes:
    - Input
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1715
      start: 1707
    functionDepth: 1
    functionLinenumber: 1707
    functionLinenumberEnd: 1715
    functionName: mozilla::pkix::ParseIPv4Address
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 3
    functionsReached:
    - mozilla::pkix::ReadIPv4AddressComponent
    linkageType: ''
    returnType: bool
    signature: bool ParseIPv4Address(Input hostname, /*out*/ uint8_t (&out)[4])
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1723,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1724,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1725,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1726,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1727,1
    - Dst: std::copy_backward
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1746,1
    - Dst: static_cast<size_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1746,1
    - Dst: static_cast<size_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1747,1
    - Dst: fill_n
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1750,1
    - Dst: static_cast<size_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1750,1
    - Dst: static_cast<size_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1751,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1751,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - (address)
    - numComponents
    - contractionIndex
    argTypes:
    - uint8_t[]
    - int
    - int
    assertStmts:
    - condition: (numComponents >= 0)
      pos:
        line_end: 1722
        line_start: 1722
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    - condition: (contractionIndex >= -1)
      pos:
        line_end: 1724
        line_start: 1724
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    - condition: (contractionIndex <= 8)
      pos:
        line_end: 1725
        line_start: 1725
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    - condition: (numComponents <= 8)
      pos:
        line_end: 1723
        line_start: 1723
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    - condition: (contractionIndex <= numComponents)
      pos:
        line_end: 1726
        line_start: 1726
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    constantsTouched: []
    func_position:
      end: 1754
      start: 1719
    functionDepth: 1
    functionLinenumber: 1719
    functionLinenumberEnd: 1754
    functionName: mozilla::pkix::FinishIPv6Address
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 0
    functionsReached:
    - fill_n
    - assert
    - static_cast<size_t>
    - std::copy_backward
    - static_cast<uint8_t>
    linkageType: ''
    returnType: bool
    signature: "bool FinishIPv6Address(/*in/out*/ uint8_t (&address)[16], int numComponents,\n
      \                 int contractionIndex)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1723,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1724,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1725,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1726,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1727,1
    - Dst: std::copy_backward
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1746,1
    - Dst: static_cast<size_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1746,1
    - Dst: static_cast<size_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1747,1
    - Dst: fill_n
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1750,1
    - Dst: static_cast<size_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1750,1
    - Dst: static_cast<size_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1751,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1751,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - (address)
    - numComponents
    - contractionIndex
    argTypes:
    - uint8_t[]
    - int
    - int
    assertStmts:
    - condition: (numComponents >= 0)
      pos:
        line_end: 1722
        line_start: 1722
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    - condition: (contractionIndex >= -1)
      pos:
        line_end: 1724
        line_start: 1724
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    - condition: (contractionIndex <= 8)
      pos:
        line_end: 1725
        line_start: 1725
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    - condition: (numComponents <= 8)
      pos:
        line_end: 1723
        line_start: 1723
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    - condition: (contractionIndex <= numComponents)
      pos:
        line_end: 1726
        line_start: 1726
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    constantsTouched: []
    func_position:
      end: 1754
      start: 1719
    functionDepth: 1
    functionLinenumber: 1719
    functionLinenumberEnd: 1754
    functionName: mozilla::pkix::FinishIPv6Address
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 0
    functionsReached:
    - fill_n
    - assert
    - static_cast<size_t>
    - std::copy_backward
    - static_cast<uint8_t>
    linkageType: ''
    returnType: bool
    signature: "bool FinishIPv6Address(/*in/out*/ uint8_t (&address)[16], int numComponents,\n
      \                 int contractionIndex)"
  - BBCount: 44
    BranchProfiles: []
    Callsites:
    - Dst: Reader::Peek
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1769,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1773,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1774,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1777,1
    - Dst: Reader::GetMark
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1789,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1792,1
    - Dst: Reader::Peek
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1792,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1795,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1796,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1802,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1802,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1805,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1805,1
    - Dst: UINT8_C
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1806,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1809,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1809,1
    - Dst: UINT8_C
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1810,1
    - Dst: Reader::SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1822,1
    - Dst: Reader::GetInput
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1824,1
    - Dst: reinterpret_cast<uint8_t(*)[4]>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1828,1
    - Dst: mozilla::pkix::ParseIPv4Address
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1829,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1832,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1832,1
    - Dst: mozilla::pkix::FinishIPv6Address
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1835,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1854,1
    - Dst: mozilla::pkix::FinishIPv6Address
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1859,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1866,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1868,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1872,1
    - Dst: mozilla::pkix::FinishIPv6Address
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1873,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1878,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1879,1
    - Dst: Reader::Peek
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1883,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1888,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1889,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1893,1
    - Dst: mozilla::pkix::FinishIPv6Address
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1895,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 110
    argCount: 2
    argNames:
    - hostname
    - (out)
    argTypes:
    - Input
    - uint8_t[]
    assertStmts:
    - condition: (false)
      pos:
        line_end: 1773
        line_start: 1773
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    - condition: (false)
      pos:
        line_end: 1795
        line_start: 1795
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    - condition: (false)
      pos:
        line_end: 1878
        line_start: 1878
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    - condition: (false)
      pos:
        line_end: 1888
        line_start: 1888
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    - condition: (input.AtEnd())
      pos:
        line_end: 1831
        line_start: 1831
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    constantsTouched: []
    func_position:
      end: 1900
      start: 1761
    functionDepth: 2
    functionLinenumber: 1761
    functionLinenumberEnd: 1900
    functionName: mozilla::pkix::ParseIPv6Address
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 1
    functionsReached:
    - mozilla::pkix::FinishIPv6Address
    - Reader::GetMark
    - Reader::Read
    - UINT8_C
    - mozilla::pkix::ParseIPv4Address
    - assert
    - Reader::SkipToEnd
    - Reader::Peek
    - reinterpret_cast<uint8_t(*)[4]>
    - Reader::GetInput
    - Reader::AtEnd
    - static_cast<uint8_t>
    linkageType: ''
    returnType: bool
    signature: bool ParseIPv6Address(Input hostname, /*out*/ uint8_t (&out)[16])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::IsValidDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1905,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hostname
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1906
      start: 1902
    functionDepth: 1
    functionLinenumber: 1902
    functionLinenumberEnd: 1906
    functionName: mozilla::pkix::IsValidReferenceDNSID
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 1
    functionsReached:
    - mozilla::pkix::IsValidDNSID
    linkageType: ''
    returnType: bool
    signature: bool IsValidReferenceDNSID(Input hostname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::IsValidDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1911,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hostname
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1912
      start: 1908
    functionDepth: 1
    functionLinenumber: 1908
    functionLinenumberEnd: 1912
    functionName: mozilla::pkix::IsValidPresentedDNSID
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 2
    functionsReached:
    - mozilla::pkix::IsValidDNSID
    linkageType: ''
    returnType: bool
    signature: bool IsValidPresentedDNSID(Input hostname)
  - BBCount: 87
    BranchProfiles: []
    Callsites:
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1923,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1929,1
    - Dst: Reader::Peek
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1941,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1944,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1946,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1951,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1965,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:2043,1
    - Dst: mozilla::pkix::StartsWithIDNALabel
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:2075,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 149
    argCount: 3
    argNames:
    - hostname
    - idRole
    - allowWildcards
    argTypes:
    - Input
    - IDRole
    - AllowWildcards
    assertStmts:
    - condition: (false)
      pos:
        line_end: 1945
        line_start: 1945
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    constantsTouched: []
    func_position:
      end: 2085
      start: 1920
    functionDepth: 1
    functionLinenumber: 1920
    functionLinenumberEnd: 2085
    functionName: mozilla::pkix::IsValidDNSID
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 6
    functionsReached:
    - Input::GetLength
    - Reader::Read
    - assert
    - Reader::Skip
    - Reader::Peek
    - mozilla::pkix::StartsWithIDNALabel
    - Reader::AtEnd
    linkageType: ''
    returnType: bool
    signature: bool IsValidDNSID(Input hostname, IDRole idRole, AllowWildcards allowWildcards)
  - BBCount: 87
    BranchProfiles: []
    Callsites:
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1923,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1929,1
    - Dst: Reader::Peek
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1941,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1944,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1946,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1951,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1965,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:2043,1
    - Dst: mozilla::pkix::StartsWithIDNALabel
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:2075,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 149
    argCount: 3
    argNames:
    - hostname
    - idRole
    - allowWildcards
    argTypes:
    - Input
    - IDRole
    - AllowWildcards
    assertStmts:
    - condition: (false)
      pos:
        line_end: 1945
        line_start: 1945
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    constantsTouched: []
    func_position:
      end: 2085
      start: 1920
    functionDepth: 1
    functionLinenumber: 1920
    functionLinenumberEnd: 2085
    functionName: mozilla::pkix::IsValidDNSID
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 6
    functionsReached:
    - Input::GetLength
    - Reader::Read
    - assert
    - Reader::Skip
    - Reader::Peek
    - mozilla::pkix::StartsWithIDNALabel
    - Reader::AtEnd
    linkageType: ''
    returnType: bool
    signature: bool IsValidDNSID(Input hostname, IDRole idRole, AllowWildcards allowWildcards)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ReadTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:81,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:86,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:89,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:92,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:95,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:98,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:101,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:104,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:107,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:110,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 3
    argNames:
    - ' reader'
    - ' generalNameType'
    - ' value'
    argTypes:
    - Reader
    - GeneralNameType
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 117
    functionName: mozilla::pkix::ReadGeneralName
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 4
    functionsReached:
    - mozilla::pkix::der::ReadTagAndGetValue
    - static_cast<uint8_t>
    linkageType: ''
    returnType: Result
    signature: "Result ReadGeneralName(Reader& reader,\n                /*out*/ GeneralNameType&
      generalNameType,\n                /*out*/ Input& value)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ReadTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:81,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:86,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:89,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:92,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:95,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:98,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:101,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:104,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:107,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:110,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 3
    argNames:
    - ' reader'
    - ' generalNameType'
    - ' value'
    argTypes:
    - Reader
    - GeneralNameType
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 117
    functionName: mozilla::pkix::ReadGeneralName
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 4
    functionsReached:
    - mozilla::pkix::der::ReadTagAndGetValue
    - static_cast<uint8_t>
    linkageType: ''
    returnType: Result
    signature: "Result ReadGeneralName(Reader& reader,\n                /*out*/ GeneralNameType&
      generalNameType,\n                /*out*/ Input& value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - presentedDNSID
    - referenceDNSID
    - ' matches'
    argTypes:
    - Input
    - Input
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 216
    functionName: mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 8
    functionsReached:
    - mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
    linkageType: ''
    returnType: Result
    signature: "Result MatchPresentedDNSIDWithReferenceDNSID(Input presentedDNSID,\n
      \                                     Input referenceDNSID,\n                                      /*out*/
      bool& matches)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: BackCert::Init
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:227,1
    - Dst: mozilla::pkix::ParseValidity
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:233,1
    - Dst: BackCert::GetValidity
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:233,1
    - Dst: FallBackToCommonName
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:238,1
    - Dst: HandleInvalidSubjectAlternativeNames
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:244,1
    - Dst: BackCert::GetSubject
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:247,1
    - Dst: mozilla::pkix::IsValidReferenceDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:261,1
    - Dst: mozilla::pkix::SearchNames
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:262,1
    - Dst: mozilla::pkix::ParseIPv6Address
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:265,1
    - Dst: mozilla::pkix::SearchNames
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:266,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:267,1
    - Dst: mozilla::pkix::ParseIPv4Address
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:269,1
    - Dst: mozilla::pkix::SearchNames
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:270,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:271,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 3
    argNames:
    - endEntityCertDER
    - hostname
    - ' nameMatchingPolicy'
    argTypes:
    - Input
    - Input
    - NameMatchingPolicy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 222
    functionDepth: 5
    functionLinenumber: 222
    functionLinenumberEnd: 287
    functionName: mozilla::pkix::CheckCertHostname
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 1
    functionsReached:
    - BackCert::Init
    - BackCert::GetSubject
    - mozilla::pkix::SearchNames
    - mozilla::pkix::IsValidReferenceDNSID
    - mozilla::pkix::ParseValidity
    - BackCert::GetValidity
    - mozilla::pkix::ParseIPv4Address
    - FallBackToCommonName
    - mozilla::pkix::ParseIPv6Address
    - Input
    - HandleInvalidSubjectAlternativeNames
    linkageType: ''
    returnType: Result
    signature: "Result CheckCertHostname(Input endEntityCertDER, Input hostname,\n
      \                 NameMatchingPolicy& nameMatchingPolicy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - notBefore
    - ' fallBackToCommonName'
    argTypes:
    - Time
    - FallBackToSearchWithinSubject
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 296
    functionName: mozilla::pkix::StrictNameMatchingPolicy::FallBackToCommonName
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result StrictNameMatchingPolicy::FallBackToCommonName(\n    Time notBefore,\n
      \   /*out*/ FallBackToSearchWithinSubject& fallBackToCommonName)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 303
    functionName: mozilla::pkix::StrictNameMatchingPolicy::HandleInvalidSubjectAlternativeNames
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: HandleInvalidSubjectAlternativeNamesBy
    signature: HandleInvalidSubjectAlternativeNamesBy StrictNameMatchingPolicy::HandleInvalidSubjectAlternativeNames()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::CheckCertHostname
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - endEntityCertDER
    - hostname
    argTypes:
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 310
    functionName: mozilla::pkix::CheckCertHostname
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 2
    functionsReached:
    - mozilla::pkix::CheckCertHostname
    linkageType: ''
    returnType: Result
    signature: Result CheckCertHostname(Input endEntityCertDER, Input hostname)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::SearchNames
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:327,1
    - Dst: BackCert*::GetSubjectAltName
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:327,1
    - Dst: BackCert*::GetSubject
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:327,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - encodedNameConstraints
    - ' firstChild'
    - requiredEKUIfPresent
    argTypes:
    - Input
    - BackCert
    - KeyPurposeId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 314
    functionDepth: 5
    functionLinenumber: 314
    functionLinenumberEnd: 345
    functionName: mozilla::pkix::CheckNameConstraints
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 0
    functionsReached:
    - BackCert*::GetSubject
    - mozilla::pkix::SearchNames
    - BackCert*::GetSubjectAltName
    linkageType: ''
    returnType: Result
    signature: "Result CheckNameConstraints(Input encodedNameConstraints,\n                     const
      BackCert& firstChild,\n                     KeyPurposeId requiredEKUIfPresent)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:396,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:405,1
    - Dst: mozilla::pkix::ReadGeneralName
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:408,1
    - Dst: mozilla::pkix::MatchPresentedIDWithReferenceID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:413,1
    - Dst: mozilla::pkix::IsFatalError
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:417,1
    - Dst: mozilla::pkix::CheckPresentedIDConformsToConstraints
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:435,1
    - Dst: mozilla::pkix::der::NestedOf
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:524,1
    - Dst: mozilla::pkix::SearchWithinRDN
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:526,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 44
    argCount: 7
    argNames:
    - subjectAltName
    - subject
    - referenceIDType
    - referenceID
    - fallBackToCommonName
    - handleInvalidSANsBy
    - ' match'
    argTypes:
    - Input*
    - Input
    - GeneralNameType
    - Input
    - FallBackToSearchWithinSubject
    - HandleInvalidSubjectAlternativeNamesBy
    - MatchResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 364
    functionDepth: 4
    functionLinenumber: 364
    functionLinenumberEnd: 529
    functionName: mozilla::pkix::SearchNames
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 4
    functionsReached:
    - mozilla::pkix::der::NestedOf
    - mozilla::pkix::SearchWithinRDN
    - Reader::AtEnd
    - mozilla::pkix::IsFatalError
    - mozilla::pkix::CheckPresentedIDConformsToConstraints
    - mozilla::pkix::MatchPresentedIDWithReferenceID
    - mozilla::pkix::ReadGeneralName
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    linkageType: ''
    returnType: Result
    signature: "Result SearchNames(/*optional*/ const Input* subjectAltName,\n            Input
      subject,\n            GeneralNameType referenceIDType,\n            Input referenceID,\n
      \           FallBackToSearchWithinSubject fallBackToCommonName,\n            HandleInvalidSubjectAlternativeNamesBy
      handleInvalidSANsBy,\n            /*out*/ MatchResult& match)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::ReadAVA
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:549,1
    - Dst: mozilla::pkix::MatchAVA
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:553,1
    - Dst: AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:558,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 6
    argNames:
    - ' rdn'
    - referenceIDType
    - referenceID
    - fallBackToEmailAddress
    - fallBackToCommonName
    - ' match'
    argTypes:
    - Reader
    - GeneralNameType
    - Input
    - FallBackToSearchWithinSubject
    - FallBackToSearchWithinSubject
    - MatchResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 537
    functionDepth: 4
    functionLinenumber: 537
    functionLinenumberEnd: 561
    functionName: mozilla::pkix::SearchWithinRDN
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 3
    functionsReached:
    - mozilla::pkix::ReadAVA
    - mozilla::pkix::MatchAVA
    - AtEnd
    linkageType: ''
    returnType: Result
    signature: "Result SearchWithinRDN(Reader& rdn,\n                GeneralNameType
      referenceIDType,\n                Input referenceID,\n                FallBackToSearchWithinSubject
      fallBackToEmailAddress,\n                FallBackToSearchWithinSubject fallBackToCommonName,\n
      \               /*in/out*/ MatchResult& match)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:605,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:605,1
    - Dst: mozilla::pkix::IsValidPresentedDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:639,1
    - Dst: mozilla::pkix::MatchSubjectPresentedIDWithReferenceID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:640,1
    - Dst: mozilla::pkix::ParseIPv4Address
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:649,1
    - Dst: mozilla::pkix::MatchSubjectPresentedIDWithReferenceID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:650,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:651,1
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:675,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:675,1
    - Dst: mozilla::pkix::MatchPresentedIDWithReferenceID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:684,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 8
    argNames:
    - type
    - valueEncodingTag
    - presentedID
    - referenceIDType
    - referenceID
    - fallBackToEmailAddress
    - fallBackToCommonName
    - ' match'
    argTypes:
    - Input
    - uint8_t
    - Input
    - GeneralNameType
    - Input
    - FallBackToSearchWithinSubject
    - FallBackToSearchWithinSubject
    - MatchResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 577
    functionDepth: 3
    functionLinenumber: 577
    functionLinenumberEnd: 690
    functionName: mozilla::pkix::MatchAVA
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 3
    functionsReached:
    - mozilla::pkix::MatchSubjectPresentedIDWithReferenceID
    - mozilla::pkix::ParseIPv4Address
    - Input
    - mozilla::pkix::MatchPresentedIDWithReferenceID
    - mozilla::pkix::IsValidPresentedDNSID
    - mozilla::pkix::InputsAreEqual
    linkageType: ''
    returnType: Result
    signature: "Result MatchAVA(Input type, uint8_t valueEncodingTag, Input presentedID,\n
      \        GeneralNameType referenceIDType,\n         Input referenceID,\n         FallBackToSearchWithinSubject
      fallBackToEmailAddress,\n         FallBackToSearchWithinSubject fallBackToCommonName,\n
      \        /*in/out*/ MatchResult& match)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::MatchPresentedIDWithReferenceID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:699,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - presentedIDType
    - presentedID
    - referenceIDType
    - referenceID
    - ' match'
    argTypes:
    - GeneralNameType
    - Input
    - GeneralNameType
    - Input
    - MatchResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 692
    functionDepth: 3
    functionLinenumber: 692
    functionLinenumberEnd: 705
    functionName: mozilla::pkix::MatchSubjectPresentedIDWithReferenceID
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 3
    functionsReached:
    - mozilla::pkix::MatchPresentedIDWithReferenceID
    linkageType: ''
    returnType: void
    signature: "void MatchSubjectPresentedIDWithReferenceID(GeneralNameType presentedIDType,\n
      \                                      Input presentedID,\n                                       GeneralNameType
      referenceIDType,\n                                       Input referenceID,\n
      \                                      /*in/out*/ MatchResult& match)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::CheckPresentedIDConformsToConstraints
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:717,1
    - Dst: mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:731,1
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:738,1
    - Dst: mozilla::pkix::MatchPresentedRFC822NameWithReferenceRFC822Name
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:743,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:757,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 5
    argNames:
    - presentedIDType
    - presentedID
    - referenceIDType
    - referenceID
    - ' matchResult'
    argTypes:
    - GeneralNameType
    - Input
    - GeneralNameType
    - Input
    - MatchResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 707
    functionDepth: 4
    functionLinenumber: 707
    functionLinenumberEnd: 768
    functionName: mozilla::pkix::MatchPresentedIDWithReferenceID
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 9
    functionsReached:
    - mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
    - mozilla::pkix::CheckPresentedIDConformsToConstraints
    - mozilla::pkix::MatchPresentedRFC822NameWithReferenceRFC822Name
    - mozilla::pkix::InputsAreEqual
    - mozilla::pkix::NotReached
    linkageType: ''
    returnType: Result
    signature: "Result MatchPresentedIDWithReferenceID(GeneralNameType presentedIDType,\n
      \                               Input presentedID,\n                                GeneralNameType
      referenceIDType,\n                                Input referenceID,\n                                /*out*/
      MatchResult& matchResult)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:798,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:807,1
    - Dst: mozilla::pkix::CheckPresentedIDConformsToNameConstraintsSubtrees
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:811,1
    - Dst: mozilla::pkix::CheckPresentedIDConformsToNameConstraintsSubtrees
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:818,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:825,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - presentedIDType
    - presentedID
    - encodedNameConstraints
    argTypes:
    - GeneralNameType
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 788
    functionDepth: 3
    functionLinenumber: 788
    functionLinenumberEnd: 826
    functionName: mozilla::pkix::CheckPresentedIDConformsToConstraints
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 6
    functionsReached:
    - mozilla::pkix::der::End
    - Reader::AtEnd
    - mozilla::pkix::CheckPresentedIDConformsToNameConstraintsSubtrees
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    linkageType: ''
    returnType: Result
    signature: "Result CheckPresentedIDConformsToConstraints(\n  GeneralNameType presentedIDType,\n
      \ Input presentedID,\n  Input encodedNameConstraints)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:835,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:835,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:840,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:841,1
    - Dst: ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:859,1
    - Dst: mozilla::pkix::ReadGeneralName
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:865,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:876,1
    - Dst: mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:886,1
    - Dst: mozilla::pkix::MatchPresentedIPAddressWithConstraint
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:896,1
    - Dst: mozilla::pkix::MatchPresentedDirectoryNameWithConstraint
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:904,1
    - Dst: mozilla::pkix::MatchPresentedRFC822NameWithReferenceRFC822Name
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:913,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:938,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:959,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 76
    argCount: 4
    argNames:
    - presentedIDType
    - presentedID
    - ' nameConstraints'
    - subtreesType
    argTypes:
    - GeneralNameType
    - Input
    - Reader
    - NameConstraintsSubtrees
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 828
    functionDepth: 5
    functionLinenumber: 828
    functionLinenumberEnd: 969
    functionName: mozilla::pkix::CheckPresentedIDConformsToNameConstraintsSubtrees
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 3
    functionsReached:
    - mozilla::pkix::der::End
    - mozilla::pkix::MatchPresentedIPAddressWithConstraint
    - mozilla::pkix::der::ExpectTagAndGetValue
    - mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
    - Reader::AtEnd
    - mozilla::pkix::MatchPresentedRFC822NameWithReferenceRFC822Name
    - ExpectTagAndGetValue
    - mozilla::pkix::MatchPresentedDirectoryNameWithConstraint
    - mozilla::pkix::ReadGeneralName
    - Peek
    - mozilla::pkix::NotReached
    - static_cast<uint8_t>
    linkageType: ''
    returnType: Result
    signature: "Result CheckPresentedIDConformsToNameConstraintsSubtrees(\n  GeneralNameType
      presentedIDType,\n  Input presentedID,\n  Reader& nameConstraints,\n  NameConstraintsSubtrees
      subtreesType)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::IsValidDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1100,1
    - Dst: mozilla::pkix::IsValidDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1104,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1118,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1118,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1119,1
    - Dst: Reader::Peek
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1147,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1148,1
    - Dst: static_cast<Input::size_type>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1148,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1149,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1150,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1151,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1156,1
    - Dst: static_cast<Input::size_type>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1156,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1157,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1158,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1159,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1163,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1164,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1177,1
    - Dst: Reader::Peek
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1182,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1183,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1184,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1189,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1194,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1195,1
    - Dst: Reader::Peek
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1198,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1203,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1208,1
    - Dst: mozilla::pkix::LocaleInsensitveToLower
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1212,1
    - Dst: mozilla::pkix::LocaleInsensitveToLower
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1213,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1217,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1228,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1231,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1232,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1240,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 90
    argCount: 6
    argNames:
    - presentedDNSID
    - allowWildcards
    - allowDotlessSubdomainMatches
    - referenceDNSIDRole
    - referenceDNSID
    - ' matches'
    argTypes:
    - Input
    - AllowWildcards
    - AllowDotlessSubdomainMatches
    - IDRole
    - Input
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1248
      start: 1091
    functionDepth: 2
    functionLinenumber: 1091
    functionLinenumberEnd: 1248
    functionName: mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 10
    functionsReached:
    - mozilla::pkix::IsValidDNSID
    - mozilla::pkix::LocaleInsensitveToLower
    - Input::GetLength
    - Reader::Read
    - Reader::Skip
    - Reader::Peek
    - static_cast<Input::size_type>
    - Reader::AtEnd
    - mozilla::pkix::NotReached
    linkageType: ''
    returnType: Result
    signature: "Result MatchPresentedDNSIDWithReferenceDNSID(\n  Input presentedDNSID,\n
      \ AllowWildcards allowWildcards,\n  AllowDotlessSubdomainMatches allowDotlessSubdomainMatches,\n
      \ IDRole referenceDNSIDRole,\n  Input referenceDNSID,\n  /*out*/ bool& matches)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1264,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1264,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1267,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1268,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1273,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1273,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1280,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1280,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1286,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1286,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1290,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1298,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1303,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1308,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1314,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 3
    argNames:
    - presentedID
    - iPAddressConstraint
    - ' foundMatch'
    argTypes:
    - Input
    - Input
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1317
      start: 1259
    functionDepth: 1
    functionLinenumber: 1259
    functionLinenumberEnd: 1317
    functionName: mozilla::pkix::MatchPresentedIPAddressWithConstraint
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 3
    functionsReached:
    - mozilla::pkix::der::End
    - Input::GetLength
    - Reader::Read
    - Reader::Skip
    - Reader::AtEnd
    linkageType: ''
    returnType: Result
    signature: "Result MatchPresentedIPAddressWithConstraint(Input presentedID,\n
      \                                     Input iPAddressConstraint,\n                                      /*out*/
      bool& foundMatch)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1332,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1333,1
    - Dst: mozilla::pkix::der::ReadTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1337,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - ' rdn'
    - ' type'
    - ' valueTag'
    - ' value'
    argTypes:
    - Reader
    - Input
    - uint8_t
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1343
      start: 1326
    functionDepth: 3
    functionLinenumber: 1326
    functionLinenumberEnd: 1343
    functionName: mozilla::pkix::ReadAVA
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 5
    functionsReached:
    - mozilla::pkix::der::ReadTagAndGetValue
    - mozilla::pkix::der::Nested
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: "Result ReadAVA(Reader& rdn,\n        /*out*/ Input& type,\n        /*out*/
      uint8_t& valueTag,\n        /*out*/ Input& value)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1392,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1398,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1408,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1408,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1418,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1422,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1427,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1432,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1436,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1436,1
    - Dst: mozilla::pkix::ReadAVA
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1440,1
    - Dst: mozilla::pkix::ReadAVA
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1448,1
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1456,1
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1457,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1468,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1468,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 54
    argCount: 4
    argNames:
    - subtreesType
    - presentedID
    - directoryNameConstraint
    - ' matches'
    argTypes:
    - NameConstraintsSubtrees
    - Input
    - Input
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1473
      start: 1385
    functionDepth: 4
    functionLinenumber: 1385
    functionLinenumberEnd: 1473
    functionName: mozilla::pkix::MatchPresentedDirectoryNameWithConstraint
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 3
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndGetValue
    - Reader::AtEnd
    - mozilla::pkix::InputsAreEqual
    - mozilla::pkix::ReadAVA
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    linkageType: ''
    returnType: Result
    signature: "Result MatchPresentedDirectoryNameWithConstraint(NameConstraintsSubtrees
      subtreesType,\n                                          Input presentedID,\n
      \                                         Input directoryNameConstraint,\n                                          /*out*/
      bool& matches)"
  - BBCount: 89
    BranchProfiles: []
    Callsites:
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1509,1
    - Dst: Reader::SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1543,1
    - Dst: mozilla::pkix::IsValidDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1546,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 108
    argCount: 1
    argNames:
    - input
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1553
      start: 1500
    functionDepth: 2
    functionLinenumber: 1500
    functionLinenumberEnd: 1553
    functionName: mozilla::pkix::IsValidRFC822Name
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 2
    functionsReached:
    - Reader::SkipToEnd
    - mozilla::pkix::IsValidDNSID
    - Reader::Read
    linkageType: ''
    returnType: bool
    signature: bool IsValidRFC822Name(Input input)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::IsValidRFC822Name
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1561,1
    - Dst: mozilla::pkix::InputContains
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1576,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1586,1
    - Dst: Reader::SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1595,1
    - Dst: mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1599,1
    - Dst: mozilla::pkix::IsValidRFC822Name
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1606,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1614,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1615,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1619,1
    - Dst: mozilla::pkix::LocaleInsensitveToLower
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1623,1
    - Dst: mozilla::pkix::LocaleInsensitveToLower
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1624,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 4
    argNames:
    - presentedRFC822Name
    - referenceRFC822NameRole
    - referenceRFC822Name
    - ' matches'
    argTypes:
    - Input
    - IDRole
    - Input
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1629
      start: 1555
    functionDepth: 2
    functionLinenumber: 1555
    functionLinenumberEnd: 1629
    functionName: mozilla::pkix::MatchPresentedRFC822NameWithReferenceRFC822Name
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 6
    functionsReached:
    - mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
    - mozilla::pkix::IsValidRFC822Name
    - mozilla::pkix::LocaleInsensitveToLower
    - Reader::Read
    - Reader::SkipToEnd
    - mozilla::pkix::InputContains
    - Reader::AtEnd
    linkageType: ''
    returnType: Result
    signature: "Result MatchPresentedRFC822NameWithReferenceRFC822Name(Input presentedRFC822Name,\n
      \                                               IDRole referenceRFC822NameRole,\n
      \                                               Input referenceRFC822Name,\n
      \                                               /*out*/ bool& matches)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1637,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1638,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1638,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1639,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - a
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1642
      start: 1633
    functionDepth: 0
    functionLinenumber: 1633
    functionLinenumberEnd: 1642
    functionName: mozilla::pkix::LocaleInsensitveToLower
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 6
    functionsReached:
    - static_cast<uint8_t>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t LocaleInsensitveToLower(uint8_t a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1651,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - id
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1659
      start: 1644
    functionDepth: 0
    functionLinenumber: 1644
    functionLinenumberEnd: 1659
    functionName: mozilla::pkix::StartsWithIDNALabel
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 2
    functionsReached:
    - Reader::Read
    linkageType: ''
    returnType: bool
    signature: bool StartsWithIDNALabel(Input id)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1669,1
    - Dst: Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1674,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1698,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 3
    argNames:
    - ' input'
    - lastComponent
    - ' valueOut'
    argTypes:
    - Reader
    - bool
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1700
      start: 1661
    functionDepth: 0
    functionLinenumber: 1661
    functionLinenumberEnd: 1700
    functionName: mozilla::pkix::ReadIPv4AddressComponent
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 1
    functionsReached:
    - static_cast<uint8_t>
    - Read
    - AtEnd
    linkageType: ''
    returnType: bool
    signature: "bool ReadIPv4AddressComponent(Reader& input, bool lastComponent,\n
      \                        /*out*/ uint8_t& valueOut)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:396,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:405,1
    - Dst: mozilla::pkix::ReadGeneralName
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:408,1
    - Dst: mozilla::pkix::MatchPresentedIDWithReferenceID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:413,1
    - Dst: mozilla::pkix::IsFatalError
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:417,1
    - Dst: mozilla::pkix::CheckPresentedIDConformsToConstraints
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:435,1
    - Dst: mozilla::pkix::der::NestedOf
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:524,1
    - Dst: mozilla::pkix::SearchWithinRDN
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:526,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 44
    argCount: 7
    argNames:
    - subjectAltName
    - subject
    - referenceIDType
    - referenceID
    - fallBackToCommonName
    - handleInvalidSANsBy
    - ' match'
    argTypes:
    - Input*
    - Input
    - GeneralNameType
    - Input
    - FallBackToSearchWithinSubject
    - HandleInvalidSubjectAlternativeNamesBy
    - MatchResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 364
    functionDepth: 4
    functionLinenumber: 364
    functionLinenumberEnd: 529
    functionName: mozilla::pkix::SearchNames
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 4
    functionsReached:
    - mozilla::pkix::der::NestedOf
    - mozilla::pkix::SearchWithinRDN
    - Reader::AtEnd
    - mozilla::pkix::IsFatalError
    - mozilla::pkix::CheckPresentedIDConformsToConstraints
    - mozilla::pkix::MatchPresentedIDWithReferenceID
    - mozilla::pkix::ReadGeneralName
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    linkageType: ''
    returnType: Result
    signature: "Result SearchNames(/*optional*/ const Input* subjectAltName,\n            Input
      subject,\n            GeneralNameType referenceIDType,\n            Input referenceID,\n
      \           FallBackToSearchWithinSubject fallBackToCommonName,\n            HandleInvalidSubjectAlternativeNamesBy
      handleInvalidSANsBy,\n            /*out*/ MatchResult& match)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::ReadAVA
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:549,1
    - Dst: mozilla::pkix::MatchAVA
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:553,1
    - Dst: AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:558,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 6
    argNames:
    - ' rdn'
    - referenceIDType
    - referenceID
    - fallBackToEmailAddress
    - fallBackToCommonName
    - ' match'
    argTypes:
    - Reader
    - GeneralNameType
    - Input
    - FallBackToSearchWithinSubject
    - FallBackToSearchWithinSubject
    - MatchResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 537
    functionDepth: 4
    functionLinenumber: 537
    functionLinenumberEnd: 561
    functionName: mozilla::pkix::SearchWithinRDN
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 4
    functionsReached:
    - mozilla::pkix::ReadAVA
    - mozilla::pkix::MatchAVA
    - AtEnd
    linkageType: ''
    returnType: Result
    signature: "Result SearchWithinRDN(Reader& rdn,\n                GeneralNameType
      referenceIDType,\n                Input referenceID,\n                FallBackToSearchWithinSubject
      fallBackToEmailAddress,\n                FallBackToSearchWithinSubject fallBackToCommonName,\n
      \               /*in/out*/ MatchResult& match)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:605,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:605,1
    - Dst: mozilla::pkix::IsValidPresentedDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:639,1
    - Dst: mozilla::pkix::MatchSubjectPresentedIDWithReferenceID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:640,1
    - Dst: mozilla::pkix::ParseIPv4Address
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:649,1
    - Dst: mozilla::pkix::MatchSubjectPresentedIDWithReferenceID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:650,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:651,1
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:675,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:675,1
    - Dst: mozilla::pkix::MatchPresentedIDWithReferenceID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:684,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 8
    argNames:
    - type
    - valueEncodingTag
    - presentedID
    - referenceIDType
    - referenceID
    - fallBackToEmailAddress
    - fallBackToCommonName
    - ' match'
    argTypes:
    - Input
    - uint8_t
    - Input
    - GeneralNameType
    - Input
    - FallBackToSearchWithinSubject
    - FallBackToSearchWithinSubject
    - MatchResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 577
    functionDepth: 3
    functionLinenumber: 577
    functionLinenumberEnd: 690
    functionName: mozilla::pkix::MatchAVA
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 4
    functionsReached:
    - mozilla::pkix::MatchSubjectPresentedIDWithReferenceID
    - mozilla::pkix::ParseIPv4Address
    - Input
    - mozilla::pkix::MatchPresentedIDWithReferenceID
    - mozilla::pkix::IsValidPresentedDNSID
    - mozilla::pkix::InputsAreEqual
    linkageType: ''
    returnType: Result
    signature: "Result MatchAVA(Input type, uint8_t valueEncodingTag, Input presentedID,\n
      \        GeneralNameType referenceIDType,\n         Input referenceID,\n         FallBackToSearchWithinSubject
      fallBackToEmailAddress,\n         FallBackToSearchWithinSubject fallBackToCommonName,\n
      \        /*in/out*/ MatchResult& match)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::MatchPresentedIDWithReferenceID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:699,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - presentedIDType
    - presentedID
    - referenceIDType
    - referenceID
    - ' match'
    argTypes:
    - GeneralNameType
    - Input
    - GeneralNameType
    - Input
    - MatchResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 692
    functionDepth: 3
    functionLinenumber: 692
    functionLinenumberEnd: 705
    functionName: mozilla::pkix::MatchSubjectPresentedIDWithReferenceID
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 4
    functionsReached:
    - mozilla::pkix::MatchPresentedIDWithReferenceID
    linkageType: ''
    returnType: void
    signature: "void MatchSubjectPresentedIDWithReferenceID(GeneralNameType presentedIDType,\n
      \                                      Input presentedID,\n                                       GeneralNameType
      referenceIDType,\n                                       Input referenceID,\n
      \                                      /*in/out*/ MatchResult& match)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::CheckPresentedIDConformsToConstraints
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:717,1
    - Dst: mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:731,1
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:738,1
    - Dst: mozilla::pkix::MatchPresentedRFC822NameWithReferenceRFC822Name
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:743,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:757,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 5
    argNames:
    - presentedIDType
    - presentedID
    - referenceIDType
    - referenceID
    - ' matchResult'
    argTypes:
    - GeneralNameType
    - Input
    - GeneralNameType
    - Input
    - MatchResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 707
    functionDepth: 4
    functionLinenumber: 707
    functionLinenumberEnd: 768
    functionName: mozilla::pkix::MatchPresentedIDWithReferenceID
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 12
    functionsReached:
    - mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
    - mozilla::pkix::CheckPresentedIDConformsToConstraints
    - mozilla::pkix::MatchPresentedRFC822NameWithReferenceRFC822Name
    - mozilla::pkix::InputsAreEqual
    - mozilla::pkix::NotReached
    linkageType: ''
    returnType: Result
    signature: "Result MatchPresentedIDWithReferenceID(GeneralNameType presentedIDType,\n
      \                               Input presentedID,\n                                GeneralNameType
      referenceIDType,\n                                Input referenceID,\n                                /*out*/
      MatchResult& matchResult)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:798,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:807,1
    - Dst: mozilla::pkix::CheckPresentedIDConformsToNameConstraintsSubtrees
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:811,1
    - Dst: mozilla::pkix::CheckPresentedIDConformsToNameConstraintsSubtrees
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:818,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:825,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - presentedIDType
    - presentedID
    - encodedNameConstraints
    argTypes:
    - GeneralNameType
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 788
    functionDepth: 3
    functionLinenumber: 788
    functionLinenumberEnd: 826
    functionName: mozilla::pkix::CheckPresentedIDConformsToConstraints
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 8
    functionsReached:
    - mozilla::pkix::der::End
    - Reader::AtEnd
    - mozilla::pkix::CheckPresentedIDConformsToNameConstraintsSubtrees
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    linkageType: ''
    returnType: Result
    signature: "Result CheckPresentedIDConformsToConstraints(\n  GeneralNameType presentedIDType,\n
      \ Input presentedID,\n  Input encodedNameConstraints)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:835,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:835,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:840,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:841,1
    - Dst: ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:859,1
    - Dst: mozilla::pkix::ReadGeneralName
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:865,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:876,1
    - Dst: mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:886,1
    - Dst: mozilla::pkix::MatchPresentedIPAddressWithConstraint
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:896,1
    - Dst: mozilla::pkix::MatchPresentedDirectoryNameWithConstraint
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:904,1
    - Dst: mozilla::pkix::MatchPresentedRFC822NameWithReferenceRFC822Name
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:913,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:938,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:959,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 76
    argCount: 4
    argNames:
    - presentedIDType
    - presentedID
    - ' nameConstraints'
    - subtreesType
    argTypes:
    - GeneralNameType
    - Input
    - Reader
    - NameConstraintsSubtrees
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 828
    functionDepth: 5
    functionLinenumber: 828
    functionLinenumberEnd: 969
    functionName: mozilla::pkix::CheckPresentedIDConformsToNameConstraintsSubtrees
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 4
    functionsReached:
    - mozilla::pkix::der::End
    - mozilla::pkix::MatchPresentedIPAddressWithConstraint
    - mozilla::pkix::der::ExpectTagAndGetValue
    - mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
    - Reader::AtEnd
    - mozilla::pkix::MatchPresentedRFC822NameWithReferenceRFC822Name
    - ExpectTagAndGetValue
    - mozilla::pkix::MatchPresentedDirectoryNameWithConstraint
    - mozilla::pkix::ReadGeneralName
    - Peek
    - mozilla::pkix::NotReached
    - static_cast<uint8_t>
    linkageType: ''
    returnType: Result
    signature: "Result CheckPresentedIDConformsToNameConstraintsSubtrees(\n  GeneralNameType
      presentedIDType,\n  Input presentedID,\n  Reader& nameConstraints,\n  NameConstraintsSubtrees
      subtreesType)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::IsValidDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1100,1
    - Dst: mozilla::pkix::IsValidDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1104,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1118,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1118,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1119,1
    - Dst: Reader::Peek
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1147,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1148,1
    - Dst: static_cast<Input::size_type>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1148,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1149,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1150,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1151,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1156,1
    - Dst: static_cast<Input::size_type>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1156,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1157,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1158,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1159,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1163,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1164,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1177,1
    - Dst: Reader::Peek
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1182,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1183,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1184,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1189,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1194,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1195,1
    - Dst: Reader::Peek
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1198,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1203,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1208,1
    - Dst: mozilla::pkix::LocaleInsensitveToLower
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1212,1
    - Dst: mozilla::pkix::LocaleInsensitveToLower
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1213,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1217,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1228,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1231,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1232,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1240,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 90
    argCount: 6
    argNames:
    - presentedDNSID
    - allowWildcards
    - allowDotlessSubdomainMatches
    - referenceDNSIDRole
    - referenceDNSID
    - ' matches'
    argTypes:
    - Input
    - AllowWildcards
    - AllowDotlessSubdomainMatches
    - IDRole
    - Input
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1248
      start: 1091
    functionDepth: 2
    functionLinenumber: 1091
    functionLinenumberEnd: 1248
    functionName: mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 13
    functionsReached:
    - mozilla::pkix::IsValidDNSID
    - mozilla::pkix::LocaleInsensitveToLower
    - Input::GetLength
    - Reader::Read
    - Reader::Skip
    - Reader::Peek
    - static_cast<Input::size_type>
    - Reader::AtEnd
    - mozilla::pkix::NotReached
    linkageType: ''
    returnType: Result
    signature: "Result MatchPresentedDNSIDWithReferenceDNSID(\n  Input presentedDNSID,\n
      \ AllowWildcards allowWildcards,\n  AllowDotlessSubdomainMatches allowDotlessSubdomainMatches,\n
      \ IDRole referenceDNSIDRole,\n  Input referenceDNSID,\n  /*out*/ bool& matches)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1264,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1264,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1267,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1268,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1273,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1273,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1280,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1280,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1286,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1286,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1290,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1298,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1303,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1308,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1314,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 3
    argNames:
    - presentedID
    - iPAddressConstraint
    - ' foundMatch'
    argTypes:
    - Input
    - Input
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1317
      start: 1259
    functionDepth: 1
    functionLinenumber: 1259
    functionLinenumberEnd: 1317
    functionName: mozilla::pkix::MatchPresentedIPAddressWithConstraint
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 4
    functionsReached:
    - mozilla::pkix::der::End
    - Input::GetLength
    - Reader::Read
    - Reader::Skip
    - Reader::AtEnd
    linkageType: ''
    returnType: Result
    signature: "Result MatchPresentedIPAddressWithConstraint(Input presentedID,\n
      \                                     Input iPAddressConstraint,\n                                      /*out*/
      bool& foundMatch)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1332,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1333,1
    - Dst: mozilla::pkix::der::ReadTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1337,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - ' rdn'
    - ' type'
    - ' valueTag'
    - ' value'
    argTypes:
    - Reader
    - Input
    - uint8_t
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1343
      start: 1326
    functionDepth: 3
    functionLinenumber: 1326
    functionLinenumberEnd: 1343
    functionName: mozilla::pkix::ReadAVA
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 7
    functionsReached:
    - mozilla::pkix::der::ReadTagAndGetValue
    - mozilla::pkix::der::Nested
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: "Result ReadAVA(Reader& rdn,\n        /*out*/ Input& type,\n        /*out*/
      uint8_t& valueTag,\n        /*out*/ Input& value)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1392,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1398,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1408,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1408,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1418,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1422,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1427,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1432,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1436,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1436,1
    - Dst: mozilla::pkix::ReadAVA
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1440,1
    - Dst: mozilla::pkix::ReadAVA
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1448,1
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1456,1
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1457,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1468,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1468,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 54
    argCount: 4
    argNames:
    - subtreesType
    - presentedID
    - directoryNameConstraint
    - ' matches'
    argTypes:
    - NameConstraintsSubtrees
    - Input
    - Input
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1473
      start: 1385
    functionDepth: 4
    functionLinenumber: 1385
    functionLinenumberEnd: 1473
    functionName: mozilla::pkix::MatchPresentedDirectoryNameWithConstraint
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 4
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndGetValue
    - Reader::AtEnd
    - mozilla::pkix::InputsAreEqual
    - mozilla::pkix::ReadAVA
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    linkageType: ''
    returnType: Result
    signature: "Result MatchPresentedDirectoryNameWithConstraint(NameConstraintsSubtrees
      subtreesType,\n                                          Input presentedID,\n
      \                                         Input directoryNameConstraint,\n                                          /*out*/
      bool& matches)"
  - BBCount: 89
    BranchProfiles: []
    Callsites:
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1509,1
    - Dst: Reader::SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1543,1
    - Dst: mozilla::pkix::IsValidDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1546,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 108
    argCount: 1
    argNames:
    - input
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1553
      start: 1500
    functionDepth: 2
    functionLinenumber: 1500
    functionLinenumberEnd: 1553
    functionName: mozilla::pkix::IsValidRFC822Name
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 3
    functionsReached:
    - Reader::SkipToEnd
    - mozilla::pkix::IsValidDNSID
    - Reader::Read
    linkageType: ''
    returnType: bool
    signature: bool IsValidRFC822Name(Input input)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::IsValidRFC822Name
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1561,1
    - Dst: mozilla::pkix::InputContains
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1576,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1586,1
    - Dst: Reader::SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1595,1
    - Dst: mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1599,1
    - Dst: mozilla::pkix::IsValidRFC822Name
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1606,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1614,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1615,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1619,1
    - Dst: mozilla::pkix::LocaleInsensitveToLower
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1623,1
    - Dst: mozilla::pkix::LocaleInsensitveToLower
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1624,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 4
    argNames:
    - presentedRFC822Name
    - referenceRFC822NameRole
    - referenceRFC822Name
    - ' matches'
    argTypes:
    - Input
    - IDRole
    - Input
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1629
      start: 1555
    functionDepth: 2
    functionLinenumber: 1555
    functionLinenumberEnd: 1629
    functionName: mozilla::pkix::MatchPresentedRFC822NameWithReferenceRFC822Name
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 8
    functionsReached:
    - mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
    - mozilla::pkix::IsValidRFC822Name
    - mozilla::pkix::LocaleInsensitveToLower
    - Reader::Read
    - Reader::SkipToEnd
    - mozilla::pkix::InputContains
    - Reader::AtEnd
    linkageType: ''
    returnType: Result
    signature: "Result MatchPresentedRFC822NameWithReferenceRFC822Name(Input presentedRFC822Name,\n
      \                                               IDRole referenceRFC822NameRole,\n
      \                                               Input referenceRFC822Name,\n
      \                                               /*out*/ bool& matches)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1637,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1638,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1638,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1639,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - a
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1642
      start: 1633
    functionDepth: 0
    functionLinenumber: 1633
    functionLinenumberEnd: 1642
    functionName: mozilla::pkix::LocaleInsensitveToLower
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 8
    functionsReached:
    - static_cast<uint8_t>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t LocaleInsensitveToLower(uint8_t a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1651,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - id
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1659
      start: 1644
    functionDepth: 0
    functionLinenumber: 1644
    functionLinenumberEnd: 1659
    functionName: mozilla::pkix::StartsWithIDNALabel
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 2
    functionsReached:
    - Reader::Read
    linkageType: ''
    returnType: bool
    signature: bool StartsWithIDNALabel(Input id)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1669,1
    - Dst: Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1674,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1698,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 3
    argNames:
    - ' input'
    - lastComponent
    - ' valueOut'
    argTypes:
    - Reader
    - bool
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1700
      start: 1661
    functionDepth: 0
    functionLinenumber: 1661
    functionLinenumberEnd: 1700
    functionName: mozilla::pkix::ReadIPv4AddressComponent
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 1
    functionsReached:
    - static_cast<uint8_t>
    - Read
    - AtEnd
    linkageType: ''
    returnType: bool
    signature: "bool ReadIPv4AddressComponent(Reader& input, bool lastComponent,\n
      \                        /*out*/ uint8_t& valueOut)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::ReadIPv4AddressComponent
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1711,1
    - Dst: mozilla::pkix::ReadIPv4AddressComponent
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1712,1
    - Dst: mozilla::pkix::ReadIPv4AddressComponent
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1713,1
    - Dst: mozilla::pkix::ReadIPv4AddressComponent
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1714,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - hostname
    - (out)
    argTypes:
    - Input
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1715
      start: 1707
    functionDepth: 1
    functionLinenumber: 1707
    functionLinenumberEnd: 1715
    functionName: mozilla::pkix::ParseIPv4Address
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 7
    functionsReached:
    - mozilla::pkix::ReadIPv4AddressComponent
    linkageType: ''
    returnType: bool
    signature: bool ParseIPv4Address(Input hostname, /*out*/ uint8_t (&out)[4])
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1723,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1724,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1725,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1726,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1727,1
    - Dst: std::copy_backward
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1746,1
    - Dst: static_cast<size_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1746,1
    - Dst: static_cast<size_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1747,1
    - Dst: fill_n
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1750,1
    - Dst: static_cast<size_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1750,1
    - Dst: static_cast<size_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1751,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1751,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - (address)
    - numComponents
    - contractionIndex
    argTypes:
    - uint8_t[]
    - int
    - int
    assertStmts:
    - condition: (numComponents >= 0)
      pos:
        line_end: 1722
        line_start: 1722
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    - condition: (contractionIndex >= -1)
      pos:
        line_end: 1724
        line_start: 1724
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    - condition: (contractionIndex <= 8)
      pos:
        line_end: 1725
        line_start: 1725
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    - condition: (numComponents <= 8)
      pos:
        line_end: 1723
        line_start: 1723
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    - condition: (contractionIndex <= numComponents)
      pos:
        line_end: 1726
        line_start: 1726
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    constantsTouched: []
    func_position:
      end: 1754
      start: 1719
    functionDepth: 1
    functionLinenumber: 1719
    functionLinenumberEnd: 1754
    functionName: mozilla::pkix::FinishIPv6Address
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 1
    functionsReached:
    - fill_n
    - assert
    - static_cast<size_t>
    - std::copy_backward
    - static_cast<uint8_t>
    linkageType: ''
    returnType: bool
    signature: "bool FinishIPv6Address(/*in/out*/ uint8_t (&address)[16], int numComponents,\n
      \                 int contractionIndex)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1723,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1724,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1725,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1726,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1727,1
    - Dst: std::copy_backward
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1746,1
    - Dst: static_cast<size_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1746,1
    - Dst: static_cast<size_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1747,1
    - Dst: fill_n
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1750,1
    - Dst: static_cast<size_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1750,1
    - Dst: static_cast<size_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1751,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1751,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - (address)
    - numComponents
    - contractionIndex
    argTypes:
    - uint8_t[]
    - int
    - int
    assertStmts:
    - condition: (numComponents >= 0)
      pos:
        line_end: 1722
        line_start: 1722
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    - condition: (contractionIndex >= -1)
      pos:
        line_end: 1724
        line_start: 1724
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    - condition: (contractionIndex <= 8)
      pos:
        line_end: 1725
        line_start: 1725
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    - condition: (numComponents <= 8)
      pos:
        line_end: 1723
        line_start: 1723
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    - condition: (contractionIndex <= numComponents)
      pos:
        line_end: 1726
        line_start: 1726
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    constantsTouched: []
    func_position:
      end: 1754
      start: 1719
    functionDepth: 1
    functionLinenumber: 1719
    functionLinenumberEnd: 1754
    functionName: mozilla::pkix::FinishIPv6Address
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 1
    functionsReached:
    - fill_n
    - assert
    - static_cast<size_t>
    - std::copy_backward
    - static_cast<uint8_t>
    linkageType: ''
    returnType: bool
    signature: "bool FinishIPv6Address(/*in/out*/ uint8_t (&address)[16], int numComponents,\n
      \                 int contractionIndex)"
  - BBCount: 44
    BranchProfiles: []
    Callsites:
    - Dst: Reader::Peek
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1769,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1773,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1774,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1777,1
    - Dst: Reader::GetMark
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1789,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1792,1
    - Dst: Reader::Peek
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1792,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1795,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1796,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1802,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1802,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1805,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1805,1
    - Dst: UINT8_C
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1806,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1809,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1809,1
    - Dst: UINT8_C
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1810,1
    - Dst: Reader::SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1822,1
    - Dst: Reader::GetInput
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1824,1
    - Dst: reinterpret_cast<uint8_t(*)[4]>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1828,1
    - Dst: mozilla::pkix::ParseIPv4Address
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1829,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1832,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1832,1
    - Dst: mozilla::pkix::FinishIPv6Address
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1835,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1854,1
    - Dst: mozilla::pkix::FinishIPv6Address
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1859,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1866,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1868,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1872,1
    - Dst: mozilla::pkix::FinishIPv6Address
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1873,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1878,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1879,1
    - Dst: Reader::Peek
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1883,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1888,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1889,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1893,1
    - Dst: mozilla::pkix::FinishIPv6Address
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1895,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 110
    argCount: 2
    argNames:
    - hostname
    - (out)
    argTypes:
    - Input
    - uint8_t[]
    assertStmts:
    - condition: (false)
      pos:
        line_end: 1773
        line_start: 1773
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    - condition: (false)
      pos:
        line_end: 1795
        line_start: 1795
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    - condition: (false)
      pos:
        line_end: 1878
        line_start: 1878
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    - condition: (false)
      pos:
        line_end: 1888
        line_start: 1888
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    - condition: (input.AtEnd())
      pos:
        line_end: 1831
        line_start: 1831
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    constantsTouched: []
    func_position:
      end: 1900
      start: 1761
    functionDepth: 2
    functionLinenumber: 1761
    functionLinenumberEnd: 1900
    functionName: mozilla::pkix::ParseIPv6Address
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 2
    functionsReached:
    - mozilla::pkix::FinishIPv6Address
    - Reader::GetMark
    - Reader::Read
    - UINT8_C
    - mozilla::pkix::ParseIPv4Address
    - assert
    - Reader::SkipToEnd
    - Reader::Peek
    - reinterpret_cast<uint8_t(*)[4]>
    - Reader::GetInput
    - Reader::AtEnd
    - static_cast<uint8_t>
    linkageType: ''
    returnType: bool
    signature: bool ParseIPv6Address(Input hostname, /*out*/ uint8_t (&out)[16])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::IsValidDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1905,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hostname
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1906
      start: 1902
    functionDepth: 2
    functionLinenumber: 1902
    functionLinenumberEnd: 1906
    functionName: mozilla::pkix::IsValidReferenceDNSID
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 2
    functionsReached:
    - mozilla::pkix::IsValidDNSID
    linkageType: ''
    returnType: bool
    signature: bool IsValidReferenceDNSID(Input hostname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::IsValidDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1911,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hostname
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1912
      start: 1908
    functionDepth: 2
    functionLinenumber: 1908
    functionLinenumberEnd: 1912
    functionName: mozilla::pkix::IsValidPresentedDNSID
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 4
    functionsReached:
    - mozilla::pkix::IsValidDNSID
    linkageType: ''
    returnType: bool
    signature: bool IsValidPresentedDNSID(Input hostname)
  - BBCount: 87
    BranchProfiles: []
    Callsites:
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1923,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1929,1
    - Dst: Reader::Peek
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1941,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1944,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1946,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1951,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1965,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:2043,1
    - Dst: mozilla::pkix::StartsWithIDNALabel
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:2075,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 149
    argCount: 3
    argNames:
    - hostname
    - idRole
    - allowWildcards
    argTypes:
    - Input
    - IDRole
    - AllowWildcards
    assertStmts:
    - condition: (false)
      pos:
        line_end: 1945
        line_start: 1945
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    constantsTouched: []
    func_position:
      end: 2085
      start: 1920
    functionDepth: 1
    functionLinenumber: 1920
    functionLinenumberEnd: 2085
    functionName: mozilla::pkix::IsValidDNSID
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 12
    functionsReached:
    - Input::GetLength
    - Reader::Read
    - assert
    - Reader::Skip
    - Reader::Peek
    - mozilla::pkix::StartsWithIDNALabel
    - Reader::AtEnd
    linkageType: ''
    returnType: bool
    signature: bool IsValidDNSID(Input hostname, IDRole idRole, AllowWildcards allowWildcards)
  - BBCount: 87
    BranchProfiles: []
    Callsites:
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1923,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1929,1
    - Dst: Reader::Peek
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1941,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1944,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1946,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1951,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1965,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:2043,1
    - Dst: mozilla::pkix::StartsWithIDNALabel
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:2075,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 149
    argCount: 3
    argNames:
    - hostname
    - idRole
    - allowWildcards
    argTypes:
    - Input
    - IDRole
    - AllowWildcards
    assertStmts:
    - condition: (false)
      pos:
        line_end: 1945
        line_start: 1945
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    constantsTouched: []
    func_position:
      end: 2085
      start: 1920
    functionDepth: 1
    functionLinenumber: 1920
    functionLinenumberEnd: 2085
    functionName: mozilla::pkix::IsValidDNSID
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 12
    functionsReached:
    - Input::GetLength
    - Reader::Read
    - assert
    - Reader::Skip
    - Reader::Peek
    - mozilla::pkix::StartsWithIDNALabel
    - Reader::AtEnd
    linkageType: ''
    returnType: bool
    signature: bool IsValidDNSID(Input hostname, IDRole idRole, AllowWildcards allowWildcards)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ReadTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:81,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:86,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:89,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:92,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:95,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:98,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:101,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:104,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:107,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:110,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 3
    argNames:
    - ' reader'
    - ' generalNameType'
    - ' value'
    argTypes:
    - Reader
    - GeneralNameType
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 117
    functionName: mozilla::pkix::ReadGeneralName
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 8
    functionsReached:
    - mozilla::pkix::der::ReadTagAndGetValue
    - static_cast<uint8_t>
    linkageType: ''
    returnType: Result
    signature: "Result ReadGeneralName(Reader& reader,\n                /*out*/ GeneralNameType&
      generalNameType,\n                /*out*/ Input& value)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ReadTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:81,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:86,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:89,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:92,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:95,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:98,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:101,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:104,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:107,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:110,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 3
    argNames:
    - ' reader'
    - ' generalNameType'
    - ' value'
    argTypes:
    - Reader
    - GeneralNameType
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 117
    functionName: mozilla::pkix::ReadGeneralName
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 8
    functionsReached:
    - mozilla::pkix::der::ReadTagAndGetValue
    - static_cast<uint8_t>
    linkageType: ''
    returnType: Result
    signature: "Result ReadGeneralName(Reader& reader,\n                /*out*/ GeneralNameType&
      generalNameType,\n                /*out*/ Input& value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - presentedDNSID
    - referenceDNSID
    - ' matches'
    argTypes:
    - Input
    - Input
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 216
    functionName: mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 15
    functionsReached:
    - mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
    linkageType: ''
    returnType: Result
    signature: "Result MatchPresentedDNSIDWithReferenceDNSID(Input presentedDNSID,\n
      \                                     Input referenceDNSID,\n                                      /*out*/
      bool& matches)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: BackCert::Init
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:227,1
    - Dst: mozilla::pkix::ParseValidity
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:233,1
    - Dst: BackCert::GetValidity
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:233,1
    - Dst: FallBackToCommonName
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:238,1
    - Dst: HandleInvalidSubjectAlternativeNames
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:244,1
    - Dst: BackCert::GetSubject
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:247,1
    - Dst: mozilla::pkix::IsValidReferenceDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:261,1
    - Dst: mozilla::pkix::SearchNames
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:262,1
    - Dst: mozilla::pkix::ParseIPv6Address
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:265,1
    - Dst: mozilla::pkix::SearchNames
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:266,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:267,1
    - Dst: mozilla::pkix::ParseIPv4Address
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:269,1
    - Dst: mozilla::pkix::SearchNames
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:270,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:271,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 3
    argNames:
    - endEntityCertDER
    - hostname
    - ' nameMatchingPolicy'
    argTypes:
    - Input
    - Input
    - NameMatchingPolicy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 222
    functionDepth: 5
    functionLinenumber: 222
    functionLinenumberEnd: 287
    functionName: mozilla::pkix::CheckCertHostname
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 2
    functionsReached:
    - BackCert::Init
    - BackCert::GetSubject
    - mozilla::pkix::SearchNames
    - mozilla::pkix::IsValidReferenceDNSID
    - mozilla::pkix::ParseValidity
    - BackCert::GetValidity
    - mozilla::pkix::ParseIPv4Address
    - FallBackToCommonName
    - mozilla::pkix::ParseIPv6Address
    - Input
    - HandleInvalidSubjectAlternativeNames
    linkageType: ''
    returnType: Result
    signature: "Result CheckCertHostname(Input endEntityCertDER, Input hostname,\n
      \                 NameMatchingPolicy& nameMatchingPolicy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - notBefore
    - ' fallBackToCommonName'
    argTypes:
    - Time
    - FallBackToSearchWithinSubject
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 296
    functionName: mozilla::pkix::StrictNameMatchingPolicy::FallBackToCommonName
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result StrictNameMatchingPolicy::FallBackToCommonName(\n    Time notBefore,\n
      \   /*out*/ FallBackToSearchWithinSubject& fallBackToCommonName)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 303
    functionName: mozilla::pkix::StrictNameMatchingPolicy::HandleInvalidSubjectAlternativeNames
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: HandleInvalidSubjectAlternativeNamesBy
    signature: HandleInvalidSubjectAlternativeNamesBy StrictNameMatchingPolicy::HandleInvalidSubjectAlternativeNames()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::CheckCertHostname
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - endEntityCertDER
    - hostname
    argTypes:
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 310
    functionName: mozilla::pkix::CheckCertHostname
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 3
    functionsReached:
    - mozilla::pkix::CheckCertHostname
    linkageType: ''
    returnType: Result
    signature: Result CheckCertHostname(Input endEntityCertDER, Input hostname)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::SearchNames
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:327,1
    - Dst: BackCert*::GetSubjectAltName
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:327,1
    - Dst: BackCert*::GetSubject
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:327,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - encodedNameConstraints
    - ' firstChild'
    - requiredEKUIfPresent
    argTypes:
    - Input
    - BackCert
    - KeyPurposeId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 314
    functionDepth: 5
    functionLinenumber: 314
    functionLinenumberEnd: 345
    functionName: mozilla::pkix::CheckNameConstraints
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 0
    functionsReached:
    - BackCert*::GetSubject
    - mozilla::pkix::SearchNames
    - BackCert*::GetSubjectAltName
    linkageType: ''
    returnType: Result
    signature: "Result CheckNameConstraints(Input encodedNameConstraints,\n                     const
      BackCert& firstChild,\n                     KeyPurposeId requiredEKUIfPresent)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:396,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:405,1
    - Dst: mozilla::pkix::ReadGeneralName
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:408,1
    - Dst: mozilla::pkix::MatchPresentedIDWithReferenceID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:413,1
    - Dst: mozilla::pkix::IsFatalError
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:417,1
    - Dst: mozilla::pkix::CheckPresentedIDConformsToConstraints
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:435,1
    - Dst: mozilla::pkix::der::NestedOf
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:524,1
    - Dst: mozilla::pkix::SearchWithinRDN
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:526,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 44
    argCount: 7
    argNames:
    - subjectAltName
    - subject
    - referenceIDType
    - referenceID
    - fallBackToCommonName
    - handleInvalidSANsBy
    - ' match'
    argTypes:
    - Input*
    - Input
    - GeneralNameType
    - Input
    - FallBackToSearchWithinSubject
    - HandleInvalidSubjectAlternativeNamesBy
    - MatchResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 364
    functionDepth: 4
    functionLinenumber: 364
    functionLinenumberEnd: 529
    functionName: mozilla::pkix::SearchNames
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 6
    functionsReached:
    - mozilla::pkix::der::NestedOf
    - mozilla::pkix::SearchWithinRDN
    - Reader::AtEnd
    - mozilla::pkix::IsFatalError
    - mozilla::pkix::CheckPresentedIDConformsToConstraints
    - mozilla::pkix::MatchPresentedIDWithReferenceID
    - mozilla::pkix::ReadGeneralName
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    linkageType: ''
    returnType: Result
    signature: "Result SearchNames(/*optional*/ const Input* subjectAltName,\n            Input
      subject,\n            GeneralNameType referenceIDType,\n            Input referenceID,\n
      \           FallBackToSearchWithinSubject fallBackToCommonName,\n            HandleInvalidSubjectAlternativeNamesBy
      handleInvalidSANsBy,\n            /*out*/ MatchResult& match)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::ReadAVA
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:549,1
    - Dst: mozilla::pkix::MatchAVA
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:553,1
    - Dst: AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:558,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 6
    argNames:
    - ' rdn'
    - referenceIDType
    - referenceID
    - fallBackToEmailAddress
    - fallBackToCommonName
    - ' match'
    argTypes:
    - Reader
    - GeneralNameType
    - Input
    - FallBackToSearchWithinSubject
    - FallBackToSearchWithinSubject
    - MatchResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 537
    functionDepth: 4
    functionLinenumber: 537
    functionLinenumberEnd: 561
    functionName: mozilla::pkix::SearchWithinRDN
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 5
    functionsReached:
    - mozilla::pkix::ReadAVA
    - mozilla::pkix::MatchAVA
    - AtEnd
    linkageType: ''
    returnType: Result
    signature: "Result SearchWithinRDN(Reader& rdn,\n                GeneralNameType
      referenceIDType,\n                Input referenceID,\n                FallBackToSearchWithinSubject
      fallBackToEmailAddress,\n                FallBackToSearchWithinSubject fallBackToCommonName,\n
      \               /*in/out*/ MatchResult& match)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:605,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:605,1
    - Dst: mozilla::pkix::IsValidPresentedDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:639,1
    - Dst: mozilla::pkix::MatchSubjectPresentedIDWithReferenceID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:640,1
    - Dst: mozilla::pkix::ParseIPv4Address
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:649,1
    - Dst: mozilla::pkix::MatchSubjectPresentedIDWithReferenceID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:650,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:651,1
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:675,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:675,1
    - Dst: mozilla::pkix::MatchPresentedIDWithReferenceID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:684,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 8
    argNames:
    - type
    - valueEncodingTag
    - presentedID
    - referenceIDType
    - referenceID
    - fallBackToEmailAddress
    - fallBackToCommonName
    - ' match'
    argTypes:
    - Input
    - uint8_t
    - Input
    - GeneralNameType
    - Input
    - FallBackToSearchWithinSubject
    - FallBackToSearchWithinSubject
    - MatchResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 577
    functionDepth: 3
    functionLinenumber: 577
    functionLinenumberEnd: 690
    functionName: mozilla::pkix::MatchAVA
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 5
    functionsReached:
    - mozilla::pkix::MatchSubjectPresentedIDWithReferenceID
    - mozilla::pkix::ParseIPv4Address
    - Input
    - mozilla::pkix::MatchPresentedIDWithReferenceID
    - mozilla::pkix::IsValidPresentedDNSID
    - mozilla::pkix::InputsAreEqual
    linkageType: ''
    returnType: Result
    signature: "Result MatchAVA(Input type, uint8_t valueEncodingTag, Input presentedID,\n
      \        GeneralNameType referenceIDType,\n         Input referenceID,\n         FallBackToSearchWithinSubject
      fallBackToEmailAddress,\n         FallBackToSearchWithinSubject fallBackToCommonName,\n
      \        /*in/out*/ MatchResult& match)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::MatchPresentedIDWithReferenceID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:699,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - presentedIDType
    - presentedID
    - referenceIDType
    - referenceID
    - ' match'
    argTypes:
    - GeneralNameType
    - Input
    - GeneralNameType
    - Input
    - MatchResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 692
    functionDepth: 3
    functionLinenumber: 692
    functionLinenumberEnd: 705
    functionName: mozilla::pkix::MatchSubjectPresentedIDWithReferenceID
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 5
    functionsReached:
    - mozilla::pkix::MatchPresentedIDWithReferenceID
    linkageType: ''
    returnType: void
    signature: "void MatchSubjectPresentedIDWithReferenceID(GeneralNameType presentedIDType,\n
      \                                      Input presentedID,\n                                       GeneralNameType
      referenceIDType,\n                                       Input referenceID,\n
      \                                      /*in/out*/ MatchResult& match)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::CheckPresentedIDConformsToConstraints
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:717,1
    - Dst: mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:731,1
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:738,1
    - Dst: mozilla::pkix::MatchPresentedRFC822NameWithReferenceRFC822Name
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:743,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:757,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 5
    argNames:
    - presentedIDType
    - presentedID
    - referenceIDType
    - referenceID
    - ' matchResult'
    argTypes:
    - GeneralNameType
    - Input
    - GeneralNameType
    - Input
    - MatchResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 707
    functionDepth: 4
    functionLinenumber: 707
    functionLinenumberEnd: 768
    functionName: mozilla::pkix::MatchPresentedIDWithReferenceID
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 15
    functionsReached:
    - mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
    - mozilla::pkix::CheckPresentedIDConformsToConstraints
    - mozilla::pkix::MatchPresentedRFC822NameWithReferenceRFC822Name
    - mozilla::pkix::InputsAreEqual
    - mozilla::pkix::NotReached
    linkageType: ''
    returnType: Result
    signature: "Result MatchPresentedIDWithReferenceID(GeneralNameType presentedIDType,\n
      \                               Input presentedID,\n                                GeneralNameType
      referenceIDType,\n                                Input referenceID,\n                                /*out*/
      MatchResult& matchResult)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:798,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:807,1
    - Dst: mozilla::pkix::CheckPresentedIDConformsToNameConstraintsSubtrees
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:811,1
    - Dst: mozilla::pkix::CheckPresentedIDConformsToNameConstraintsSubtrees
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:818,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:825,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - presentedIDType
    - presentedID
    - encodedNameConstraints
    argTypes:
    - GeneralNameType
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 788
    functionDepth: 3
    functionLinenumber: 788
    functionLinenumberEnd: 826
    functionName: mozilla::pkix::CheckPresentedIDConformsToConstraints
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 10
    functionsReached:
    - mozilla::pkix::der::End
    - Reader::AtEnd
    - mozilla::pkix::CheckPresentedIDConformsToNameConstraintsSubtrees
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    linkageType: ''
    returnType: Result
    signature: "Result CheckPresentedIDConformsToConstraints(\n  GeneralNameType presentedIDType,\n
      \ Input presentedID,\n  Input encodedNameConstraints)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:835,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:835,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:840,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:841,1
    - Dst: ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:859,1
    - Dst: mozilla::pkix::ReadGeneralName
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:865,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:876,1
    - Dst: mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:886,1
    - Dst: mozilla::pkix::MatchPresentedIPAddressWithConstraint
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:896,1
    - Dst: mozilla::pkix::MatchPresentedDirectoryNameWithConstraint
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:904,1
    - Dst: mozilla::pkix::MatchPresentedRFC822NameWithReferenceRFC822Name
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:913,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:938,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:959,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 76
    argCount: 4
    argNames:
    - presentedIDType
    - presentedID
    - ' nameConstraints'
    - subtreesType
    argTypes:
    - GeneralNameType
    - Input
    - Reader
    - NameConstraintsSubtrees
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 828
    functionDepth: 5
    functionLinenumber: 828
    functionLinenumberEnd: 969
    functionName: mozilla::pkix::CheckPresentedIDConformsToNameConstraintsSubtrees
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 5
    functionsReached:
    - mozilla::pkix::der::End
    - mozilla::pkix::MatchPresentedIPAddressWithConstraint
    - mozilla::pkix::der::ExpectTagAndGetValue
    - mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
    - Reader::AtEnd
    - mozilla::pkix::MatchPresentedRFC822NameWithReferenceRFC822Name
    - ExpectTagAndGetValue
    - mozilla::pkix::MatchPresentedDirectoryNameWithConstraint
    - mozilla::pkix::ReadGeneralName
    - Peek
    - mozilla::pkix::NotReached
    - static_cast<uint8_t>
    linkageType: ''
    returnType: Result
    signature: "Result CheckPresentedIDConformsToNameConstraintsSubtrees(\n  GeneralNameType
      presentedIDType,\n  Input presentedID,\n  Reader& nameConstraints,\n  NameConstraintsSubtrees
      subtreesType)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::IsValidDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1100,1
    - Dst: mozilla::pkix::IsValidDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1104,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1118,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1118,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1119,1
    - Dst: Reader::Peek
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1147,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1148,1
    - Dst: static_cast<Input::size_type>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1148,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1149,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1150,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1151,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1156,1
    - Dst: static_cast<Input::size_type>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1156,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1157,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1158,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1159,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1163,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1164,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1177,1
    - Dst: Reader::Peek
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1182,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1183,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1184,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1189,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1194,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1195,1
    - Dst: Reader::Peek
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1198,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1203,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1208,1
    - Dst: mozilla::pkix::LocaleInsensitveToLower
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1212,1
    - Dst: mozilla::pkix::LocaleInsensitveToLower
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1213,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1217,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1228,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1231,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1232,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1240,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 90
    argCount: 6
    argNames:
    - presentedDNSID
    - allowWildcards
    - allowDotlessSubdomainMatches
    - referenceDNSIDRole
    - referenceDNSID
    - ' matches'
    argTypes:
    - Input
    - AllowWildcards
    - AllowDotlessSubdomainMatches
    - IDRole
    - Input
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1248
      start: 1091
    functionDepth: 2
    functionLinenumber: 1091
    functionLinenumberEnd: 1248
    functionName: mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 17
    functionsReached:
    - mozilla::pkix::IsValidDNSID
    - mozilla::pkix::LocaleInsensitveToLower
    - Input::GetLength
    - Reader::Read
    - Reader::Skip
    - Reader::Peek
    - static_cast<Input::size_type>
    - Reader::AtEnd
    - mozilla::pkix::NotReached
    linkageType: ''
    returnType: Result
    signature: "Result MatchPresentedDNSIDWithReferenceDNSID(\n  Input presentedDNSID,\n
      \ AllowWildcards allowWildcards,\n  AllowDotlessSubdomainMatches allowDotlessSubdomainMatches,\n
      \ IDRole referenceDNSIDRole,\n  Input referenceDNSID,\n  /*out*/ bool& matches)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1264,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1264,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1267,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1268,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1273,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1273,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1280,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1280,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1286,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1286,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1290,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1298,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1303,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1308,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1314,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 3
    argNames:
    - presentedID
    - iPAddressConstraint
    - ' foundMatch'
    argTypes:
    - Input
    - Input
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1317
      start: 1259
    functionDepth: 1
    functionLinenumber: 1259
    functionLinenumberEnd: 1317
    functionName: mozilla::pkix::MatchPresentedIPAddressWithConstraint
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 5
    functionsReached:
    - mozilla::pkix::der::End
    - Input::GetLength
    - Reader::Read
    - Reader::Skip
    - Reader::AtEnd
    linkageType: ''
    returnType: Result
    signature: "Result MatchPresentedIPAddressWithConstraint(Input presentedID,\n
      \                                     Input iPAddressConstraint,\n                                      /*out*/
      bool& foundMatch)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1332,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1333,1
    - Dst: mozilla::pkix::der::ReadTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1337,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - ' rdn'
    - ' type'
    - ' valueTag'
    - ' value'
    argTypes:
    - Reader
    - Input
    - uint8_t
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1343
      start: 1326
    functionDepth: 3
    functionLinenumber: 1326
    functionLinenumberEnd: 1343
    functionName: mozilla::pkix::ReadAVA
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 9
    functionsReached:
    - mozilla::pkix::der::ReadTagAndGetValue
    - mozilla::pkix::der::Nested
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: "Result ReadAVA(Reader& rdn,\n        /*out*/ Input& type,\n        /*out*/
      uint8_t& valueTag,\n        /*out*/ Input& value)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1392,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1398,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1408,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1408,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1418,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1422,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1427,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1432,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1436,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1436,1
    - Dst: mozilla::pkix::ReadAVA
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1440,1
    - Dst: mozilla::pkix::ReadAVA
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1448,1
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1456,1
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1457,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1468,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1468,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 54
    argCount: 4
    argNames:
    - subtreesType
    - presentedID
    - directoryNameConstraint
    - ' matches'
    argTypes:
    - NameConstraintsSubtrees
    - Input
    - Input
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1473
      start: 1385
    functionDepth: 4
    functionLinenumber: 1385
    functionLinenumberEnd: 1473
    functionName: mozilla::pkix::MatchPresentedDirectoryNameWithConstraint
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 5
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndGetValue
    - Reader::AtEnd
    - mozilla::pkix::InputsAreEqual
    - mozilla::pkix::ReadAVA
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    linkageType: ''
    returnType: Result
    signature: "Result MatchPresentedDirectoryNameWithConstraint(NameConstraintsSubtrees
      subtreesType,\n                                          Input presentedID,\n
      \                                         Input directoryNameConstraint,\n                                          /*out*/
      bool& matches)"
  - BBCount: 89
    BranchProfiles: []
    Callsites:
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1509,1
    - Dst: Reader::SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1543,1
    - Dst: mozilla::pkix::IsValidDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1546,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 108
    argCount: 1
    argNames:
    - input
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1553
      start: 1500
    functionDepth: 2
    functionLinenumber: 1500
    functionLinenumberEnd: 1553
    functionName: mozilla::pkix::IsValidRFC822Name
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 4
    functionsReached:
    - Reader::SkipToEnd
    - mozilla::pkix::IsValidDNSID
    - Reader::Read
    linkageType: ''
    returnType: bool
    signature: bool IsValidRFC822Name(Input input)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::IsValidRFC822Name
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1561,1
    - Dst: mozilla::pkix::InputContains
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1576,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1586,1
    - Dst: Reader::SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1595,1
    - Dst: mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1599,1
    - Dst: mozilla::pkix::IsValidRFC822Name
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1606,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1614,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1615,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1619,1
    - Dst: mozilla::pkix::LocaleInsensitveToLower
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1623,1
    - Dst: mozilla::pkix::LocaleInsensitveToLower
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1624,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 4
    argNames:
    - presentedRFC822Name
    - referenceRFC822NameRole
    - referenceRFC822Name
    - ' matches'
    argTypes:
    - Input
    - IDRole
    - Input
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1629
      start: 1555
    functionDepth: 2
    functionLinenumber: 1555
    functionLinenumberEnd: 1629
    functionName: mozilla::pkix::MatchPresentedRFC822NameWithReferenceRFC822Name
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 10
    functionsReached:
    - mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
    - mozilla::pkix::IsValidRFC822Name
    - mozilla::pkix::LocaleInsensitveToLower
    - Reader::Read
    - Reader::SkipToEnd
    - mozilla::pkix::InputContains
    - Reader::AtEnd
    linkageType: ''
    returnType: Result
    signature: "Result MatchPresentedRFC822NameWithReferenceRFC822Name(Input presentedRFC822Name,\n
      \                                               IDRole referenceRFC822NameRole,\n
      \                                               Input referenceRFC822Name,\n
      \                                               /*out*/ bool& matches)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1637,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1638,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1638,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1639,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - a
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1642
      start: 1633
    functionDepth: 0
    functionLinenumber: 1633
    functionLinenumberEnd: 1642
    functionName: mozilla::pkix::LocaleInsensitveToLower
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 10
    functionsReached:
    - static_cast<uint8_t>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t LocaleInsensitveToLower(uint8_t a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1651,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - id
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1659
      start: 1644
    functionDepth: 0
    functionLinenumber: 1644
    functionLinenumberEnd: 1659
    functionName: mozilla::pkix::StartsWithIDNALabel
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 4
    functionsReached:
    - Reader::Read
    linkageType: ''
    returnType: bool
    signature: bool StartsWithIDNALabel(Input id)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1669,1
    - Dst: Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1674,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1698,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 3
    argNames:
    - ' input'
    - lastComponent
    - ' valueOut'
    argTypes:
    - Reader
    - bool
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1700
      start: 1661
    functionDepth: 0
    functionLinenumber: 1661
    functionLinenumberEnd: 1700
    functionName: mozilla::pkix::ReadIPv4AddressComponent
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 2
    functionsReached:
    - static_cast<uint8_t>
    - Read
    - AtEnd
    linkageType: ''
    returnType: bool
    signature: "bool ReadIPv4AddressComponent(Reader& input, bool lastComponent,\n
      \                        /*out*/ uint8_t& valueOut)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:396,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:405,1
    - Dst: mozilla::pkix::ReadGeneralName
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:408,1
    - Dst: mozilla::pkix::MatchPresentedIDWithReferenceID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:413,1
    - Dst: mozilla::pkix::IsFatalError
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:417,1
    - Dst: mozilla::pkix::CheckPresentedIDConformsToConstraints
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:435,1
    - Dst: mozilla::pkix::der::NestedOf
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:524,1
    - Dst: mozilla::pkix::SearchWithinRDN
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:526,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 44
    argCount: 7
    argNames:
    - subjectAltName
    - subject
    - referenceIDType
    - referenceID
    - fallBackToCommonName
    - handleInvalidSANsBy
    - ' match'
    argTypes:
    - Input*
    - Input
    - GeneralNameType
    - Input
    - FallBackToSearchWithinSubject
    - HandleInvalidSubjectAlternativeNamesBy
    - MatchResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 364
    functionDepth: 4
    functionLinenumber: 364
    functionLinenumberEnd: 529
    functionName: mozilla::pkix::SearchNames
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 6
    functionsReached:
    - mozilla::pkix::der::NestedOf
    - mozilla::pkix::SearchWithinRDN
    - Reader::AtEnd
    - mozilla::pkix::IsFatalError
    - mozilla::pkix::CheckPresentedIDConformsToConstraints
    - mozilla::pkix::MatchPresentedIDWithReferenceID
    - mozilla::pkix::ReadGeneralName
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    linkageType: ''
    returnType: Result
    signature: "Result SearchNames(/*optional*/ const Input* subjectAltName,\n            Input
      subject,\n            GeneralNameType referenceIDType,\n            Input referenceID,\n
      \           FallBackToSearchWithinSubject fallBackToCommonName,\n            HandleInvalidSubjectAlternativeNamesBy
      handleInvalidSANsBy,\n            /*out*/ MatchResult& match)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::ReadAVA
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:549,1
    - Dst: mozilla::pkix::MatchAVA
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:553,1
    - Dst: AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:558,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 6
    argNames:
    - ' rdn'
    - referenceIDType
    - referenceID
    - fallBackToEmailAddress
    - fallBackToCommonName
    - ' match'
    argTypes:
    - Reader
    - GeneralNameType
    - Input
    - FallBackToSearchWithinSubject
    - FallBackToSearchWithinSubject
    - MatchResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 537
    functionDepth: 4
    functionLinenumber: 537
    functionLinenumberEnd: 561
    functionName: mozilla::pkix::SearchWithinRDN
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 6
    functionsReached:
    - mozilla::pkix::ReadAVA
    - mozilla::pkix::MatchAVA
    - AtEnd
    linkageType: ''
    returnType: Result
    signature: "Result SearchWithinRDN(Reader& rdn,\n                GeneralNameType
      referenceIDType,\n                Input referenceID,\n                FallBackToSearchWithinSubject
      fallBackToEmailAddress,\n                FallBackToSearchWithinSubject fallBackToCommonName,\n
      \               /*in/out*/ MatchResult& match)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:605,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:605,1
    - Dst: mozilla::pkix::IsValidPresentedDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:639,1
    - Dst: mozilla::pkix::MatchSubjectPresentedIDWithReferenceID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:640,1
    - Dst: mozilla::pkix::ParseIPv4Address
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:649,1
    - Dst: mozilla::pkix::MatchSubjectPresentedIDWithReferenceID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:650,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:651,1
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:675,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:675,1
    - Dst: mozilla::pkix::MatchPresentedIDWithReferenceID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:684,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 8
    argNames:
    - type
    - valueEncodingTag
    - presentedID
    - referenceIDType
    - referenceID
    - fallBackToEmailAddress
    - fallBackToCommonName
    - ' match'
    argTypes:
    - Input
    - uint8_t
    - Input
    - GeneralNameType
    - Input
    - FallBackToSearchWithinSubject
    - FallBackToSearchWithinSubject
    - MatchResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 577
    functionDepth: 3
    functionLinenumber: 577
    functionLinenumberEnd: 690
    functionName: mozilla::pkix::MatchAVA
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 6
    functionsReached:
    - mozilla::pkix::MatchSubjectPresentedIDWithReferenceID
    - mozilla::pkix::ParseIPv4Address
    - Input
    - mozilla::pkix::MatchPresentedIDWithReferenceID
    - mozilla::pkix::IsValidPresentedDNSID
    - mozilla::pkix::InputsAreEqual
    linkageType: ''
    returnType: Result
    signature: "Result MatchAVA(Input type, uint8_t valueEncodingTag, Input presentedID,\n
      \        GeneralNameType referenceIDType,\n         Input referenceID,\n         FallBackToSearchWithinSubject
      fallBackToEmailAddress,\n         FallBackToSearchWithinSubject fallBackToCommonName,\n
      \        /*in/out*/ MatchResult& match)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::MatchPresentedIDWithReferenceID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:699,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - presentedIDType
    - presentedID
    - referenceIDType
    - referenceID
    - ' match'
    argTypes:
    - GeneralNameType
    - Input
    - GeneralNameType
    - Input
    - MatchResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 692
    functionDepth: 3
    functionLinenumber: 692
    functionLinenumberEnd: 705
    functionName: mozilla::pkix::MatchSubjectPresentedIDWithReferenceID
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 6
    functionsReached:
    - mozilla::pkix::MatchPresentedIDWithReferenceID
    linkageType: ''
    returnType: void
    signature: "void MatchSubjectPresentedIDWithReferenceID(GeneralNameType presentedIDType,\n
      \                                      Input presentedID,\n                                       GeneralNameType
      referenceIDType,\n                                       Input referenceID,\n
      \                                      /*in/out*/ MatchResult& match)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::CheckPresentedIDConformsToConstraints
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:717,1
    - Dst: mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:731,1
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:738,1
    - Dst: mozilla::pkix::MatchPresentedRFC822NameWithReferenceRFC822Name
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:743,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:757,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 5
    argNames:
    - presentedIDType
    - presentedID
    - referenceIDType
    - referenceID
    - ' matchResult'
    argTypes:
    - GeneralNameType
    - Input
    - GeneralNameType
    - Input
    - MatchResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 707
    functionDepth: 4
    functionLinenumber: 707
    functionLinenumberEnd: 768
    functionName: mozilla::pkix::MatchPresentedIDWithReferenceID
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 18
    functionsReached:
    - mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
    - mozilla::pkix::CheckPresentedIDConformsToConstraints
    - mozilla::pkix::MatchPresentedRFC822NameWithReferenceRFC822Name
    - mozilla::pkix::InputsAreEqual
    - mozilla::pkix::NotReached
    linkageType: ''
    returnType: Result
    signature: "Result MatchPresentedIDWithReferenceID(GeneralNameType presentedIDType,\n
      \                               Input presentedID,\n                                GeneralNameType
      referenceIDType,\n                                Input referenceID,\n                                /*out*/
      MatchResult& matchResult)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:798,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:807,1
    - Dst: mozilla::pkix::CheckPresentedIDConformsToNameConstraintsSubtrees
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:811,1
    - Dst: mozilla::pkix::CheckPresentedIDConformsToNameConstraintsSubtrees
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:818,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:825,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - presentedIDType
    - presentedID
    - encodedNameConstraints
    argTypes:
    - GeneralNameType
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 788
    functionDepth: 3
    functionLinenumber: 788
    functionLinenumberEnd: 826
    functionName: mozilla::pkix::CheckPresentedIDConformsToConstraints
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 12
    functionsReached:
    - mozilla::pkix::der::End
    - Reader::AtEnd
    - mozilla::pkix::CheckPresentedIDConformsToNameConstraintsSubtrees
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    linkageType: ''
    returnType: Result
    signature: "Result CheckPresentedIDConformsToConstraints(\n  GeneralNameType presentedIDType,\n
      \ Input presentedID,\n  Input encodedNameConstraints)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:835,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:835,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:840,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:841,1
    - Dst: ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:859,1
    - Dst: mozilla::pkix::ReadGeneralName
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:865,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:876,1
    - Dst: mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:886,1
    - Dst: mozilla::pkix::MatchPresentedIPAddressWithConstraint
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:896,1
    - Dst: mozilla::pkix::MatchPresentedDirectoryNameWithConstraint
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:904,1
    - Dst: mozilla::pkix::MatchPresentedRFC822NameWithReferenceRFC822Name
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:913,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:938,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:959,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 76
    argCount: 4
    argNames:
    - presentedIDType
    - presentedID
    - ' nameConstraints'
    - subtreesType
    argTypes:
    - GeneralNameType
    - Input
    - Reader
    - NameConstraintsSubtrees
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 828
    functionDepth: 5
    functionLinenumber: 828
    functionLinenumberEnd: 969
    functionName: mozilla::pkix::CheckPresentedIDConformsToNameConstraintsSubtrees
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 6
    functionsReached:
    - mozilla::pkix::der::End
    - mozilla::pkix::MatchPresentedIPAddressWithConstraint
    - mozilla::pkix::der::ExpectTagAndGetValue
    - mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
    - Reader::AtEnd
    - mozilla::pkix::MatchPresentedRFC822NameWithReferenceRFC822Name
    - ExpectTagAndGetValue
    - mozilla::pkix::MatchPresentedDirectoryNameWithConstraint
    - mozilla::pkix::ReadGeneralName
    - Peek
    - mozilla::pkix::NotReached
    - static_cast<uint8_t>
    linkageType: ''
    returnType: Result
    signature: "Result CheckPresentedIDConformsToNameConstraintsSubtrees(\n  GeneralNameType
      presentedIDType,\n  Input presentedID,\n  Reader& nameConstraints,\n  NameConstraintsSubtrees
      subtreesType)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::IsValidDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1100,1
    - Dst: mozilla::pkix::IsValidDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1104,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1118,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1118,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1119,1
    - Dst: Reader::Peek
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1147,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1148,1
    - Dst: static_cast<Input::size_type>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1148,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1149,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1150,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1151,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1156,1
    - Dst: static_cast<Input::size_type>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1156,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1157,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1158,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1159,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1163,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1164,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1177,1
    - Dst: Reader::Peek
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1182,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1183,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1184,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1189,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1194,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1195,1
    - Dst: Reader::Peek
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1198,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1203,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1208,1
    - Dst: mozilla::pkix::LocaleInsensitveToLower
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1212,1
    - Dst: mozilla::pkix::LocaleInsensitveToLower
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1213,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1217,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1228,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1231,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1232,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1240,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 90
    argCount: 6
    argNames:
    - presentedDNSID
    - allowWildcards
    - allowDotlessSubdomainMatches
    - referenceDNSIDRole
    - referenceDNSID
    - ' matches'
    argTypes:
    - Input
    - AllowWildcards
    - AllowDotlessSubdomainMatches
    - IDRole
    - Input
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1248
      start: 1091
    functionDepth: 2
    functionLinenumber: 1091
    functionLinenumberEnd: 1248
    functionName: mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 20
    functionsReached:
    - mozilla::pkix::IsValidDNSID
    - mozilla::pkix::LocaleInsensitveToLower
    - Input::GetLength
    - Reader::Read
    - Reader::Skip
    - Reader::Peek
    - static_cast<Input::size_type>
    - Reader::AtEnd
    - mozilla::pkix::NotReached
    linkageType: ''
    returnType: Result
    signature: "Result MatchPresentedDNSIDWithReferenceDNSID(\n  Input presentedDNSID,\n
      \ AllowWildcards allowWildcards,\n  AllowDotlessSubdomainMatches allowDotlessSubdomainMatches,\n
      \ IDRole referenceDNSIDRole,\n  Input referenceDNSID,\n  /*out*/ bool& matches)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1264,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1264,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1267,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1268,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1273,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1273,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1280,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1280,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1286,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1286,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1290,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1298,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1303,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1308,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1314,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 3
    argNames:
    - presentedID
    - iPAddressConstraint
    - ' foundMatch'
    argTypes:
    - Input
    - Input
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1317
      start: 1259
    functionDepth: 1
    functionLinenumber: 1259
    functionLinenumberEnd: 1317
    functionName: mozilla::pkix::MatchPresentedIPAddressWithConstraint
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 6
    functionsReached:
    - mozilla::pkix::der::End
    - Input::GetLength
    - Reader::Read
    - Reader::Skip
    - Reader::AtEnd
    linkageType: ''
    returnType: Result
    signature: "Result MatchPresentedIPAddressWithConstraint(Input presentedID,\n
      \                                     Input iPAddressConstraint,\n                                      /*out*/
      bool& foundMatch)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1332,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1333,1
    - Dst: mozilla::pkix::der::ReadTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1337,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - ' rdn'
    - ' type'
    - ' valueTag'
    - ' value'
    argTypes:
    - Reader
    - Input
    - uint8_t
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1343
      start: 1326
    functionDepth: 3
    functionLinenumber: 1326
    functionLinenumberEnd: 1343
    functionName: mozilla::pkix::ReadAVA
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 11
    functionsReached:
    - mozilla::pkix::der::ReadTagAndGetValue
    - mozilla::pkix::der::Nested
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: "Result ReadAVA(Reader& rdn,\n        /*out*/ Input& type,\n        /*out*/
      uint8_t& valueTag,\n        /*out*/ Input& value)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1392,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1398,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1408,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1408,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1418,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1422,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1427,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1432,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1436,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1436,1
    - Dst: mozilla::pkix::ReadAVA
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1440,1
    - Dst: mozilla::pkix::ReadAVA
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1448,1
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1456,1
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1457,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1468,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1468,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 54
    argCount: 4
    argNames:
    - subtreesType
    - presentedID
    - directoryNameConstraint
    - ' matches'
    argTypes:
    - NameConstraintsSubtrees
    - Input
    - Input
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1473
      start: 1385
    functionDepth: 4
    functionLinenumber: 1385
    functionLinenumberEnd: 1473
    functionName: mozilla::pkix::MatchPresentedDirectoryNameWithConstraint
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 6
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndGetValue
    - Reader::AtEnd
    - mozilla::pkix::InputsAreEqual
    - mozilla::pkix::ReadAVA
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    linkageType: ''
    returnType: Result
    signature: "Result MatchPresentedDirectoryNameWithConstraint(NameConstraintsSubtrees
      subtreesType,\n                                          Input presentedID,\n
      \                                         Input directoryNameConstraint,\n                                          /*out*/
      bool& matches)"
  - BBCount: 89
    BranchProfiles: []
    Callsites:
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1509,1
    - Dst: Reader::SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1543,1
    - Dst: mozilla::pkix::IsValidDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1546,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 108
    argCount: 1
    argNames:
    - input
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1553
      start: 1500
    functionDepth: 2
    functionLinenumber: 1500
    functionLinenumberEnd: 1553
    functionName: mozilla::pkix::IsValidRFC822Name
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 5
    functionsReached:
    - Reader::SkipToEnd
    - mozilla::pkix::IsValidDNSID
    - Reader::Read
    linkageType: ''
    returnType: bool
    signature: bool IsValidRFC822Name(Input input)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::IsValidRFC822Name
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1561,1
    - Dst: mozilla::pkix::InputContains
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1576,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1586,1
    - Dst: Reader::SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1595,1
    - Dst: mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1599,1
    - Dst: mozilla::pkix::IsValidRFC822Name
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1606,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1614,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1615,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1619,1
    - Dst: mozilla::pkix::LocaleInsensitveToLower
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1623,1
    - Dst: mozilla::pkix::LocaleInsensitveToLower
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1624,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 4
    argNames:
    - presentedRFC822Name
    - referenceRFC822NameRole
    - referenceRFC822Name
    - ' matches'
    argTypes:
    - Input
    - IDRole
    - Input
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1629
      start: 1555
    functionDepth: 2
    functionLinenumber: 1555
    functionLinenumberEnd: 1629
    functionName: mozilla::pkix::MatchPresentedRFC822NameWithReferenceRFC822Name
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 12
    functionsReached:
    - mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
    - mozilla::pkix::IsValidRFC822Name
    - mozilla::pkix::LocaleInsensitveToLower
    - Reader::Read
    - Reader::SkipToEnd
    - mozilla::pkix::InputContains
    - Reader::AtEnd
    linkageType: ''
    returnType: Result
    signature: "Result MatchPresentedRFC822NameWithReferenceRFC822Name(Input presentedRFC822Name,\n
      \                                               IDRole referenceRFC822NameRole,\n
      \                                               Input referenceRFC822Name,\n
      \                                               /*out*/ bool& matches)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1637,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1638,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1638,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1639,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - a
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1642
      start: 1633
    functionDepth: 0
    functionLinenumber: 1633
    functionLinenumberEnd: 1642
    functionName: mozilla::pkix::LocaleInsensitveToLower
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 12
    functionsReached:
    - static_cast<uint8_t>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t LocaleInsensitveToLower(uint8_t a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1651,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - id
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1659
      start: 1644
    functionDepth: 0
    functionLinenumber: 1644
    functionLinenumberEnd: 1659
    functionName: mozilla::pkix::StartsWithIDNALabel
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 4
    functionsReached:
    - Reader::Read
    linkageType: ''
    returnType: bool
    signature: bool StartsWithIDNALabel(Input id)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1669,1
    - Dst: Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1674,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1698,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 3
    argNames:
    - ' input'
    - lastComponent
    - ' valueOut'
    argTypes:
    - Reader
    - bool
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1700
      start: 1661
    functionDepth: 0
    functionLinenumber: 1661
    functionLinenumberEnd: 1700
    functionName: mozilla::pkix::ReadIPv4AddressComponent
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 2
    functionsReached:
    - static_cast<uint8_t>
    - Read
    - AtEnd
    linkageType: ''
    returnType: bool
    signature: "bool ReadIPv4AddressComponent(Reader& input, bool lastComponent,\n
      \                        /*out*/ uint8_t& valueOut)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::ReadIPv4AddressComponent
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1711,1
    - Dst: mozilla::pkix::ReadIPv4AddressComponent
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1712,1
    - Dst: mozilla::pkix::ReadIPv4AddressComponent
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1713,1
    - Dst: mozilla::pkix::ReadIPv4AddressComponent
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1714,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - hostname
    - (out)
    argTypes:
    - Input
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1715
      start: 1707
    functionDepth: 1
    functionLinenumber: 1707
    functionLinenumberEnd: 1715
    functionName: mozilla::pkix::ParseIPv4Address
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 11
    functionsReached:
    - mozilla::pkix::ReadIPv4AddressComponent
    linkageType: ''
    returnType: bool
    signature: bool ParseIPv4Address(Input hostname, /*out*/ uint8_t (&out)[4])
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1723,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1724,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1725,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1726,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1727,1
    - Dst: std::copy_backward
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1746,1
    - Dst: static_cast<size_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1746,1
    - Dst: static_cast<size_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1747,1
    - Dst: fill_n
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1750,1
    - Dst: static_cast<size_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1750,1
    - Dst: static_cast<size_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1751,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1751,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - (address)
    - numComponents
    - contractionIndex
    argTypes:
    - uint8_t[]
    - int
    - int
    assertStmts:
    - condition: (numComponents >= 0)
      pos:
        line_end: 1722
        line_start: 1722
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    - condition: (contractionIndex >= -1)
      pos:
        line_end: 1724
        line_start: 1724
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    - condition: (contractionIndex <= 8)
      pos:
        line_end: 1725
        line_start: 1725
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    - condition: (numComponents <= 8)
      pos:
        line_end: 1723
        line_start: 1723
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    - condition: (contractionIndex <= numComponents)
      pos:
        line_end: 1726
        line_start: 1726
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    constantsTouched: []
    func_position:
      end: 1754
      start: 1719
    functionDepth: 1
    functionLinenumber: 1719
    functionLinenumberEnd: 1754
    functionName: mozilla::pkix::FinishIPv6Address
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 2
    functionsReached:
    - fill_n
    - assert
    - static_cast<size_t>
    - std::copy_backward
    - static_cast<uint8_t>
    linkageType: ''
    returnType: bool
    signature: "bool FinishIPv6Address(/*in/out*/ uint8_t (&address)[16], int numComponents,\n
      \                 int contractionIndex)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1723,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1724,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1725,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1726,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1727,1
    - Dst: std::copy_backward
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1746,1
    - Dst: static_cast<size_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1746,1
    - Dst: static_cast<size_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1747,1
    - Dst: fill_n
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1750,1
    - Dst: static_cast<size_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1750,1
    - Dst: static_cast<size_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1751,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1751,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - (address)
    - numComponents
    - contractionIndex
    argTypes:
    - uint8_t[]
    - int
    - int
    assertStmts:
    - condition: (numComponents >= 0)
      pos:
        line_end: 1722
        line_start: 1722
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    - condition: (contractionIndex >= -1)
      pos:
        line_end: 1724
        line_start: 1724
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    - condition: (contractionIndex <= 8)
      pos:
        line_end: 1725
        line_start: 1725
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    - condition: (numComponents <= 8)
      pos:
        line_end: 1723
        line_start: 1723
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    - condition: (contractionIndex <= numComponents)
      pos:
        line_end: 1726
        line_start: 1726
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    constantsTouched: []
    func_position:
      end: 1754
      start: 1719
    functionDepth: 1
    functionLinenumber: 1719
    functionLinenumberEnd: 1754
    functionName: mozilla::pkix::FinishIPv6Address
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 2
    functionsReached:
    - fill_n
    - assert
    - static_cast<size_t>
    - std::copy_backward
    - static_cast<uint8_t>
    linkageType: ''
    returnType: bool
    signature: "bool FinishIPv6Address(/*in/out*/ uint8_t (&address)[16], int numComponents,\n
      \                 int contractionIndex)"
  - BBCount: 44
    BranchProfiles: []
    Callsites:
    - Dst: Reader::Peek
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1769,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1773,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1774,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1777,1
    - Dst: Reader::GetMark
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1789,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1792,1
    - Dst: Reader::Peek
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1792,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1795,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1796,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1802,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1802,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1805,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1805,1
    - Dst: UINT8_C
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1806,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1809,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1809,1
    - Dst: UINT8_C
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1810,1
    - Dst: Reader::SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1822,1
    - Dst: Reader::GetInput
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1824,1
    - Dst: reinterpret_cast<uint8_t(*)[4]>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1828,1
    - Dst: mozilla::pkix::ParseIPv4Address
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1829,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1832,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1832,1
    - Dst: mozilla::pkix::FinishIPv6Address
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1835,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1854,1
    - Dst: mozilla::pkix::FinishIPv6Address
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1859,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1866,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1868,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1872,1
    - Dst: mozilla::pkix::FinishIPv6Address
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1873,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1878,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1879,1
    - Dst: Reader::Peek
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1883,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1888,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1889,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1893,1
    - Dst: mozilla::pkix::FinishIPv6Address
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1895,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 110
    argCount: 2
    argNames:
    - hostname
    - (out)
    argTypes:
    - Input
    - uint8_t[]
    assertStmts:
    - condition: (false)
      pos:
        line_end: 1773
        line_start: 1773
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    - condition: (false)
      pos:
        line_end: 1795
        line_start: 1795
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    - condition: (false)
      pos:
        line_end: 1878
        line_start: 1878
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    - condition: (false)
      pos:
        line_end: 1888
        line_start: 1888
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    - condition: (input.AtEnd())
      pos:
        line_end: 1831
        line_start: 1831
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    constantsTouched: []
    func_position:
      end: 1900
      start: 1761
    functionDepth: 2
    functionLinenumber: 1761
    functionLinenumberEnd: 1900
    functionName: mozilla::pkix::ParseIPv6Address
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 3
    functionsReached:
    - mozilla::pkix::FinishIPv6Address
    - Reader::GetMark
    - Reader::Read
    - UINT8_C
    - mozilla::pkix::ParseIPv4Address
    - assert
    - Reader::SkipToEnd
    - Reader::Peek
    - reinterpret_cast<uint8_t(*)[4]>
    - Reader::GetInput
    - Reader::AtEnd
    - static_cast<uint8_t>
    linkageType: ''
    returnType: bool
    signature: bool ParseIPv6Address(Input hostname, /*out*/ uint8_t (&out)[16])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::IsValidDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1905,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hostname
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1906
      start: 1902
    functionDepth: 2
    functionLinenumber: 1902
    functionLinenumberEnd: 1906
    functionName: mozilla::pkix::IsValidReferenceDNSID
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 3
    functionsReached:
    - mozilla::pkix::IsValidDNSID
    linkageType: ''
    returnType: bool
    signature: bool IsValidReferenceDNSID(Input hostname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::IsValidDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1911,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hostname
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1912
      start: 1908
    functionDepth: 2
    functionLinenumber: 1908
    functionLinenumberEnd: 1912
    functionName: mozilla::pkix::IsValidPresentedDNSID
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 6
    functionsReached:
    - mozilla::pkix::IsValidDNSID
    linkageType: ''
    returnType: bool
    signature: bool IsValidPresentedDNSID(Input hostname)
  - BBCount: 87
    BranchProfiles: []
    Callsites:
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1923,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1929,1
    - Dst: Reader::Peek
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1941,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1944,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1946,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1951,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1965,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:2043,1
    - Dst: mozilla::pkix::StartsWithIDNALabel
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:2075,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 149
    argCount: 3
    argNames:
    - hostname
    - idRole
    - allowWildcards
    argTypes:
    - Input
    - IDRole
    - AllowWildcards
    assertStmts:
    - condition: (false)
      pos:
        line_end: 1945
        line_start: 1945
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    constantsTouched: []
    func_position:
      end: 2085
      start: 1920
    functionDepth: 1
    functionLinenumber: 1920
    functionLinenumberEnd: 2085
    functionName: mozilla::pkix::IsValidDNSID
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 18
    functionsReached:
    - Input::GetLength
    - Reader::Read
    - assert
    - Reader::Skip
    - Reader::Peek
    - mozilla::pkix::StartsWithIDNALabel
    - Reader::AtEnd
    linkageType: ''
    returnType: bool
    signature: bool IsValidDNSID(Input hostname, IDRole idRole, AllowWildcards allowWildcards)
  - BBCount: 87
    BranchProfiles: []
    Callsites:
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1923,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1929,1
    - Dst: Reader::Peek
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1941,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1944,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1946,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1951,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1965,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:2043,1
    - Dst: mozilla::pkix::StartsWithIDNALabel
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:2075,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 149
    argCount: 3
    argNames:
    - hostname
    - idRole
    - allowWildcards
    argTypes:
    - Input
    - IDRole
    - AllowWildcards
    assertStmts:
    - condition: (false)
      pos:
        line_end: 1945
        line_start: 1945
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    constantsTouched: []
    func_position:
      end: 2085
      start: 1920
    functionDepth: 1
    functionLinenumber: 1920
    functionLinenumberEnd: 2085
    functionName: mozilla::pkix::IsValidDNSID
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 18
    functionsReached:
    - Input::GetLength
    - Reader::Read
    - assert
    - Reader::Skip
    - Reader::Peek
    - mozilla::pkix::StartsWithIDNALabel
    - Reader::AtEnd
    linkageType: ''
    returnType: bool
    signature: bool IsValidDNSID(Input hostname, IDRole idRole, AllowWildcards allowWildcards)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ReadTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:81,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:86,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:89,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:92,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:95,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:98,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:101,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:104,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:107,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:110,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 3
    argNames:
    - ' reader'
    - ' generalNameType'
    - ' value'
    argTypes:
    - Reader
    - GeneralNameType
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 117
    functionName: mozilla::pkix::ReadGeneralName
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 12
    functionsReached:
    - mozilla::pkix::der::ReadTagAndGetValue
    - static_cast<uint8_t>
    linkageType: ''
    returnType: Result
    signature: "Result ReadGeneralName(Reader& reader,\n                /*out*/ GeneralNameType&
      generalNameType,\n                /*out*/ Input& value)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ReadTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:81,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:86,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:89,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:92,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:95,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:98,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:101,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:104,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:107,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:110,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 3
    argNames:
    - ' reader'
    - ' generalNameType'
    - ' value'
    argTypes:
    - Reader
    - GeneralNameType
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 117
    functionName: mozilla::pkix::ReadGeneralName
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 12
    functionsReached:
    - mozilla::pkix::der::ReadTagAndGetValue
    - static_cast<uint8_t>
    linkageType: ''
    returnType: Result
    signature: "Result ReadGeneralName(Reader& reader,\n                /*out*/ GeneralNameType&
      generalNameType,\n                /*out*/ Input& value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - presentedDNSID
    - referenceDNSID
    - ' matches'
    argTypes:
    - Input
    - Input
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 216
    functionName: mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 22
    functionsReached:
    - mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
    linkageType: ''
    returnType: Result
    signature: "Result MatchPresentedDNSIDWithReferenceDNSID(Input presentedDNSID,\n
      \                                     Input referenceDNSID,\n                                      /*out*/
      bool& matches)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: BackCert::Init
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:227,1
    - Dst: mozilla::pkix::ParseValidity
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:233,1
    - Dst: BackCert::GetValidity
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:233,1
    - Dst: FallBackToCommonName
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:238,1
    - Dst: HandleInvalidSubjectAlternativeNames
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:244,1
    - Dst: BackCert::GetSubject
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:247,1
    - Dst: mozilla::pkix::IsValidReferenceDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:261,1
    - Dst: mozilla::pkix::SearchNames
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:262,1
    - Dst: mozilla::pkix::ParseIPv6Address
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:265,1
    - Dst: mozilla::pkix::SearchNames
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:266,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:267,1
    - Dst: mozilla::pkix::ParseIPv4Address
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:269,1
    - Dst: mozilla::pkix::SearchNames
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:270,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:271,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 3
    argNames:
    - endEntityCertDER
    - hostname
    - ' nameMatchingPolicy'
    argTypes:
    - Input
    - Input
    - NameMatchingPolicy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 222
    functionDepth: 5
    functionLinenumber: 222
    functionLinenumberEnd: 287
    functionName: mozilla::pkix::CheckCertHostname
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 3
    functionsReached:
    - BackCert::Init
    - BackCert::GetSubject
    - mozilla::pkix::SearchNames
    - mozilla::pkix::IsValidReferenceDNSID
    - mozilla::pkix::ParseValidity
    - BackCert::GetValidity
    - mozilla::pkix::ParseIPv4Address
    - FallBackToCommonName
    - mozilla::pkix::ParseIPv6Address
    - Input
    - HandleInvalidSubjectAlternativeNames
    linkageType: ''
    returnType: Result
    signature: "Result CheckCertHostname(Input endEntityCertDER, Input hostname,\n
      \                 NameMatchingPolicy& nameMatchingPolicy)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - notBefore
    - ' fallBackToCommonName'
    argTypes:
    - Time
    - FallBackToSearchWithinSubject
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 296
    functionName: mozilla::pkix::StrictNameMatchingPolicy::FallBackToCommonName
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result StrictNameMatchingPolicy::FallBackToCommonName(\n    Time notBefore,\n
      \   /*out*/ FallBackToSearchWithinSubject& fallBackToCommonName)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 303
    functionName: mozilla::pkix::StrictNameMatchingPolicy::HandleInvalidSubjectAlternativeNames
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: HandleInvalidSubjectAlternativeNamesBy
    signature: HandleInvalidSubjectAlternativeNamesBy StrictNameMatchingPolicy::HandleInvalidSubjectAlternativeNames()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::CheckCertHostname
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - endEntityCertDER
    - hostname
    argTypes:
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 310
    functionName: mozilla::pkix::CheckCertHostname
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 4
    functionsReached:
    - mozilla::pkix::CheckCertHostname
    linkageType: ''
    returnType: Result
    signature: Result CheckCertHostname(Input endEntityCertDER, Input hostname)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::SearchNames
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:327,1
    - Dst: BackCert*::GetSubjectAltName
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:327,1
    - Dst: BackCert*::GetSubject
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:327,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - encodedNameConstraints
    - ' firstChild'
    - requiredEKUIfPresent
    argTypes:
    - Input
    - BackCert
    - KeyPurposeId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 314
    functionDepth: 5
    functionLinenumber: 314
    functionLinenumberEnd: 345
    functionName: mozilla::pkix::CheckNameConstraints
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 0
    functionsReached:
    - BackCert*::GetSubject
    - mozilla::pkix::SearchNames
    - BackCert*::GetSubjectAltName
    linkageType: ''
    returnType: Result
    signature: "Result CheckNameConstraints(Input encodedNameConstraints,\n                     const
      BackCert& firstChild,\n                     KeyPurposeId requiredEKUIfPresent)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:396,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:405,1
    - Dst: mozilla::pkix::ReadGeneralName
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:408,1
    - Dst: mozilla::pkix::MatchPresentedIDWithReferenceID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:413,1
    - Dst: mozilla::pkix::IsFatalError
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:417,1
    - Dst: mozilla::pkix::CheckPresentedIDConformsToConstraints
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:435,1
    - Dst: mozilla::pkix::der::NestedOf
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:524,1
    - Dst: mozilla::pkix::SearchWithinRDN
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:526,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 44
    argCount: 7
    argNames:
    - subjectAltName
    - subject
    - referenceIDType
    - referenceID
    - fallBackToCommonName
    - handleInvalidSANsBy
    - ' match'
    argTypes:
    - Input*
    - Input
    - GeneralNameType
    - Input
    - FallBackToSearchWithinSubject
    - HandleInvalidSubjectAlternativeNamesBy
    - MatchResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 364
    functionDepth: 4
    functionLinenumber: 364
    functionLinenumberEnd: 529
    functionName: mozilla::pkix::SearchNames
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 8
    functionsReached:
    - mozilla::pkix::der::NestedOf
    - mozilla::pkix::SearchWithinRDN
    - Reader::AtEnd
    - mozilla::pkix::IsFatalError
    - mozilla::pkix::CheckPresentedIDConformsToConstraints
    - mozilla::pkix::MatchPresentedIDWithReferenceID
    - mozilla::pkix::ReadGeneralName
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    linkageType: ''
    returnType: Result
    signature: "Result SearchNames(/*optional*/ const Input* subjectAltName,\n            Input
      subject,\n            GeneralNameType referenceIDType,\n            Input referenceID,\n
      \           FallBackToSearchWithinSubject fallBackToCommonName,\n            HandleInvalidSubjectAlternativeNamesBy
      handleInvalidSANsBy,\n            /*out*/ MatchResult& match)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::ReadAVA
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:549,1
    - Dst: mozilla::pkix::MatchAVA
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:553,1
    - Dst: AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:558,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 6
    argNames:
    - ' rdn'
    - referenceIDType
    - referenceID
    - fallBackToEmailAddress
    - fallBackToCommonName
    - ' match'
    argTypes:
    - Reader
    - GeneralNameType
    - Input
    - FallBackToSearchWithinSubject
    - FallBackToSearchWithinSubject
    - MatchResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 537
    functionDepth: 4
    functionLinenumber: 537
    functionLinenumberEnd: 561
    functionName: mozilla::pkix::SearchWithinRDN
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 7
    functionsReached:
    - mozilla::pkix::ReadAVA
    - mozilla::pkix::MatchAVA
    - AtEnd
    linkageType: ''
    returnType: Result
    signature: "Result SearchWithinRDN(Reader& rdn,\n                GeneralNameType
      referenceIDType,\n                Input referenceID,\n                FallBackToSearchWithinSubject
      fallBackToEmailAddress,\n                FallBackToSearchWithinSubject fallBackToCommonName,\n
      \               /*in/out*/ MatchResult& match)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:605,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:605,1
    - Dst: mozilla::pkix::IsValidPresentedDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:639,1
    - Dst: mozilla::pkix::MatchSubjectPresentedIDWithReferenceID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:640,1
    - Dst: mozilla::pkix::ParseIPv4Address
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:649,1
    - Dst: mozilla::pkix::MatchSubjectPresentedIDWithReferenceID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:650,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:651,1
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:675,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:675,1
    - Dst: mozilla::pkix::MatchPresentedIDWithReferenceID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:684,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 8
    argNames:
    - type
    - valueEncodingTag
    - presentedID
    - referenceIDType
    - referenceID
    - fallBackToEmailAddress
    - fallBackToCommonName
    - ' match'
    argTypes:
    - Input
    - uint8_t
    - Input
    - GeneralNameType
    - Input
    - FallBackToSearchWithinSubject
    - FallBackToSearchWithinSubject
    - MatchResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 577
    functionDepth: 3
    functionLinenumber: 577
    functionLinenumberEnd: 690
    functionName: mozilla::pkix::MatchAVA
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 7
    functionsReached:
    - mozilla::pkix::MatchSubjectPresentedIDWithReferenceID
    - mozilla::pkix::ParseIPv4Address
    - Input
    - mozilla::pkix::MatchPresentedIDWithReferenceID
    - mozilla::pkix::IsValidPresentedDNSID
    - mozilla::pkix::InputsAreEqual
    linkageType: ''
    returnType: Result
    signature: "Result MatchAVA(Input type, uint8_t valueEncodingTag, Input presentedID,\n
      \        GeneralNameType referenceIDType,\n         Input referenceID,\n         FallBackToSearchWithinSubject
      fallBackToEmailAddress,\n         FallBackToSearchWithinSubject fallBackToCommonName,\n
      \        /*in/out*/ MatchResult& match)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::MatchPresentedIDWithReferenceID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:699,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - presentedIDType
    - presentedID
    - referenceIDType
    - referenceID
    - ' match'
    argTypes:
    - GeneralNameType
    - Input
    - GeneralNameType
    - Input
    - MatchResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 692
    functionDepth: 3
    functionLinenumber: 692
    functionLinenumberEnd: 705
    functionName: mozilla::pkix::MatchSubjectPresentedIDWithReferenceID
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 7
    functionsReached:
    - mozilla::pkix::MatchPresentedIDWithReferenceID
    linkageType: ''
    returnType: void
    signature: "void MatchSubjectPresentedIDWithReferenceID(GeneralNameType presentedIDType,\n
      \                                      Input presentedID,\n                                       GeneralNameType
      referenceIDType,\n                                       Input referenceID,\n
      \                                      /*in/out*/ MatchResult& match)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::CheckPresentedIDConformsToConstraints
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:717,1
    - Dst: mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:731,1
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:738,1
    - Dst: mozilla::pkix::MatchPresentedRFC822NameWithReferenceRFC822Name
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:743,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:757,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 5
    argNames:
    - presentedIDType
    - presentedID
    - referenceIDType
    - referenceID
    - ' matchResult'
    argTypes:
    - GeneralNameType
    - Input
    - GeneralNameType
    - Input
    - MatchResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 707
    functionDepth: 4
    functionLinenumber: 707
    functionLinenumberEnd: 768
    functionName: mozilla::pkix::MatchPresentedIDWithReferenceID
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 21
    functionsReached:
    - mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
    - mozilla::pkix::CheckPresentedIDConformsToConstraints
    - mozilla::pkix::MatchPresentedRFC822NameWithReferenceRFC822Name
    - mozilla::pkix::InputsAreEqual
    - mozilla::pkix::NotReached
    linkageType: ''
    returnType: Result
    signature: "Result MatchPresentedIDWithReferenceID(GeneralNameType presentedIDType,\n
      \                               Input presentedID,\n                                GeneralNameType
      referenceIDType,\n                                Input referenceID,\n                                /*out*/
      MatchResult& matchResult)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:798,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:807,1
    - Dst: mozilla::pkix::CheckPresentedIDConformsToNameConstraintsSubtrees
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:811,1
    - Dst: mozilla::pkix::CheckPresentedIDConformsToNameConstraintsSubtrees
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:818,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:825,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - presentedIDType
    - presentedID
    - encodedNameConstraints
    argTypes:
    - GeneralNameType
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 788
    functionDepth: 3
    functionLinenumber: 788
    functionLinenumberEnd: 826
    functionName: mozilla::pkix::CheckPresentedIDConformsToConstraints
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 14
    functionsReached:
    - mozilla::pkix::der::End
    - Reader::AtEnd
    - mozilla::pkix::CheckPresentedIDConformsToNameConstraintsSubtrees
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    linkageType: ''
    returnType: Result
    signature: "Result CheckPresentedIDConformsToConstraints(\n  GeneralNameType presentedIDType,\n
      \ Input presentedID,\n  Input encodedNameConstraints)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:835,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:835,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:840,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:841,1
    - Dst: ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:859,1
    - Dst: mozilla::pkix::ReadGeneralName
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:865,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:876,1
    - Dst: mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:886,1
    - Dst: mozilla::pkix::MatchPresentedIPAddressWithConstraint
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:896,1
    - Dst: mozilla::pkix::MatchPresentedDirectoryNameWithConstraint
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:904,1
    - Dst: mozilla::pkix::MatchPresentedRFC822NameWithReferenceRFC822Name
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:913,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:938,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:959,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 76
    argCount: 4
    argNames:
    - presentedIDType
    - presentedID
    - ' nameConstraints'
    - subtreesType
    argTypes:
    - GeneralNameType
    - Input
    - Reader
    - NameConstraintsSubtrees
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 828
    functionDepth: 5
    functionLinenumber: 828
    functionLinenumberEnd: 969
    functionName: mozilla::pkix::CheckPresentedIDConformsToNameConstraintsSubtrees
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 7
    functionsReached:
    - mozilla::pkix::der::End
    - mozilla::pkix::MatchPresentedIPAddressWithConstraint
    - mozilla::pkix::der::ExpectTagAndGetValue
    - mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
    - Reader::AtEnd
    - mozilla::pkix::MatchPresentedRFC822NameWithReferenceRFC822Name
    - ExpectTagAndGetValue
    - mozilla::pkix::MatchPresentedDirectoryNameWithConstraint
    - mozilla::pkix::ReadGeneralName
    - Peek
    - mozilla::pkix::NotReached
    - static_cast<uint8_t>
    linkageType: ''
    returnType: Result
    signature: "Result CheckPresentedIDConformsToNameConstraintsSubtrees(\n  GeneralNameType
      presentedIDType,\n  Input presentedID,\n  Reader& nameConstraints,\n  NameConstraintsSubtrees
      subtreesType)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::IsValidDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1100,1
    - Dst: mozilla::pkix::IsValidDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1104,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1118,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1118,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1119,1
    - Dst: Reader::Peek
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1147,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1148,1
    - Dst: static_cast<Input::size_type>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1148,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1149,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1150,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1151,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1156,1
    - Dst: static_cast<Input::size_type>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1156,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1157,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1158,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1159,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1163,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1164,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1177,1
    - Dst: Reader::Peek
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1182,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1183,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1184,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1189,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1194,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1195,1
    - Dst: Reader::Peek
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1198,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1203,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1208,1
    - Dst: mozilla::pkix::LocaleInsensitveToLower
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1212,1
    - Dst: mozilla::pkix::LocaleInsensitveToLower
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1213,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1217,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1228,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1231,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1232,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1240,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 90
    argCount: 6
    argNames:
    - presentedDNSID
    - allowWildcards
    - allowDotlessSubdomainMatches
    - referenceDNSIDRole
    - referenceDNSID
    - ' matches'
    argTypes:
    - Input
    - AllowWildcards
    - AllowDotlessSubdomainMatches
    - IDRole
    - Input
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1248
      start: 1091
    functionDepth: 2
    functionLinenumber: 1091
    functionLinenumberEnd: 1248
    functionName: mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 24
    functionsReached:
    - mozilla::pkix::IsValidDNSID
    - mozilla::pkix::LocaleInsensitveToLower
    - Input::GetLength
    - Reader::Read
    - Reader::Skip
    - Reader::Peek
    - static_cast<Input::size_type>
    - Reader::AtEnd
    - mozilla::pkix::NotReached
    linkageType: ''
    returnType: Result
    signature: "Result MatchPresentedDNSIDWithReferenceDNSID(\n  Input presentedDNSID,\n
      \ AllowWildcards allowWildcards,\n  AllowDotlessSubdomainMatches allowDotlessSubdomainMatches,\n
      \ IDRole referenceDNSIDRole,\n  Input referenceDNSID,\n  /*out*/ bool& matches)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1264,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1264,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1267,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1268,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1273,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1273,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1280,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1280,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1286,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1286,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1290,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1298,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1303,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1308,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1314,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 3
    argNames:
    - presentedID
    - iPAddressConstraint
    - ' foundMatch'
    argTypes:
    - Input
    - Input
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1317
      start: 1259
    functionDepth: 1
    functionLinenumber: 1259
    functionLinenumberEnd: 1317
    functionName: mozilla::pkix::MatchPresentedIPAddressWithConstraint
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 7
    functionsReached:
    - mozilla::pkix::der::End
    - Input::GetLength
    - Reader::Read
    - Reader::Skip
    - Reader::AtEnd
    linkageType: ''
    returnType: Result
    signature: "Result MatchPresentedIPAddressWithConstraint(Input presentedID,\n
      \                                     Input iPAddressConstraint,\n                                      /*out*/
      bool& foundMatch)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1332,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1333,1
    - Dst: mozilla::pkix::der::ReadTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1337,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - ' rdn'
    - ' type'
    - ' valueTag'
    - ' value'
    argTypes:
    - Reader
    - Input
    - uint8_t
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1343
      start: 1326
    functionDepth: 3
    functionLinenumber: 1326
    functionLinenumberEnd: 1343
    functionName: mozilla::pkix::ReadAVA
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 13
    functionsReached:
    - mozilla::pkix::der::ReadTagAndGetValue
    - mozilla::pkix::der::Nested
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: "Result ReadAVA(Reader& rdn,\n        /*out*/ Input& type,\n        /*out*/
      uint8_t& valueTag,\n        /*out*/ Input& value)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1392,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1398,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1408,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1408,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1418,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1422,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1427,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1432,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1436,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1436,1
    - Dst: mozilla::pkix::ReadAVA
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1440,1
    - Dst: mozilla::pkix::ReadAVA
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1448,1
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1456,1
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1457,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1468,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1468,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 54
    argCount: 4
    argNames:
    - subtreesType
    - presentedID
    - directoryNameConstraint
    - ' matches'
    argTypes:
    - NameConstraintsSubtrees
    - Input
    - Input
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1473
      start: 1385
    functionDepth: 4
    functionLinenumber: 1385
    functionLinenumberEnd: 1473
    functionName: mozilla::pkix::MatchPresentedDirectoryNameWithConstraint
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 7
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndGetValue
    - Reader::AtEnd
    - mozilla::pkix::InputsAreEqual
    - mozilla::pkix::ReadAVA
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    linkageType: ''
    returnType: Result
    signature: "Result MatchPresentedDirectoryNameWithConstraint(NameConstraintsSubtrees
      subtreesType,\n                                          Input presentedID,\n
      \                                         Input directoryNameConstraint,\n                                          /*out*/
      bool& matches)"
  - BBCount: 89
    BranchProfiles: []
    Callsites:
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1509,1
    - Dst: Reader::SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1543,1
    - Dst: mozilla::pkix::IsValidDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1546,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 108
    argCount: 1
    argNames:
    - input
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1553
      start: 1500
    functionDepth: 2
    functionLinenumber: 1500
    functionLinenumberEnd: 1553
    functionName: mozilla::pkix::IsValidRFC822Name
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 6
    functionsReached:
    - Reader::SkipToEnd
    - mozilla::pkix::IsValidDNSID
    - Reader::Read
    linkageType: ''
    returnType: bool
    signature: bool IsValidRFC822Name(Input input)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::IsValidRFC822Name
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1561,1
    - Dst: mozilla::pkix::InputContains
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1576,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1586,1
    - Dst: Reader::SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1595,1
    - Dst: mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1599,1
    - Dst: mozilla::pkix::IsValidRFC822Name
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1606,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1614,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1615,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1619,1
    - Dst: mozilla::pkix::LocaleInsensitveToLower
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1623,1
    - Dst: mozilla::pkix::LocaleInsensitveToLower
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1624,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 4
    argNames:
    - presentedRFC822Name
    - referenceRFC822NameRole
    - referenceRFC822Name
    - ' matches'
    argTypes:
    - Input
    - IDRole
    - Input
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1629
      start: 1555
    functionDepth: 2
    functionLinenumber: 1555
    functionLinenumberEnd: 1629
    functionName: mozilla::pkix::MatchPresentedRFC822NameWithReferenceRFC822Name
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 14
    functionsReached:
    - mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
    - mozilla::pkix::IsValidRFC822Name
    - mozilla::pkix::LocaleInsensitveToLower
    - Reader::Read
    - Reader::SkipToEnd
    - mozilla::pkix::InputContains
    - Reader::AtEnd
    linkageType: ''
    returnType: Result
    signature: "Result MatchPresentedRFC822NameWithReferenceRFC822Name(Input presentedRFC822Name,\n
      \                                               IDRole referenceRFC822NameRole,\n
      \                                               Input referenceRFC822Name,\n
      \                                               /*out*/ bool& matches)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1637,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1638,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1638,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1639,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - a
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1642
      start: 1633
    functionDepth: 0
    functionLinenumber: 1633
    functionLinenumberEnd: 1642
    functionName: mozilla::pkix::LocaleInsensitveToLower
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 14
    functionsReached:
    - static_cast<uint8_t>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t LocaleInsensitveToLower(uint8_t a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1651,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - id
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1659
      start: 1644
    functionDepth: 0
    functionLinenumber: 1644
    functionLinenumberEnd: 1659
    functionName: mozilla::pkix::StartsWithIDNALabel
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 6
    functionsReached:
    - Reader::Read
    linkageType: ''
    returnType: bool
    signature: bool StartsWithIDNALabel(Input id)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1669,1
    - Dst: Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1674,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1698,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 3
    argNames:
    - ' input'
    - lastComponent
    - ' valueOut'
    argTypes:
    - Reader
    - bool
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1700
      start: 1661
    functionDepth: 0
    functionLinenumber: 1661
    functionLinenumberEnd: 1700
    functionName: mozilla::pkix::ReadIPv4AddressComponent
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 3
    functionsReached:
    - static_cast<uint8_t>
    - Read
    - AtEnd
    linkageType: ''
    returnType: bool
    signature: "bool ReadIPv4AddressComponent(Reader& input, bool lastComponent,\n
      \                        /*out*/ uint8_t& valueOut)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:396,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:405,1
    - Dst: mozilla::pkix::ReadGeneralName
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:408,1
    - Dst: mozilla::pkix::MatchPresentedIDWithReferenceID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:413,1
    - Dst: mozilla::pkix::IsFatalError
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:417,1
    - Dst: mozilla::pkix::CheckPresentedIDConformsToConstraints
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:435,1
    - Dst: mozilla::pkix::der::NestedOf
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:524,1
    - Dst: mozilla::pkix::SearchWithinRDN
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:526,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 44
    argCount: 7
    argNames:
    - subjectAltName
    - subject
    - referenceIDType
    - referenceID
    - fallBackToCommonName
    - handleInvalidSANsBy
    - ' match'
    argTypes:
    - Input*
    - Input
    - GeneralNameType
    - Input
    - FallBackToSearchWithinSubject
    - HandleInvalidSubjectAlternativeNamesBy
    - MatchResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 364
    functionDepth: 4
    functionLinenumber: 364
    functionLinenumberEnd: 529
    functionName: mozilla::pkix::SearchNames
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 8
    functionsReached:
    - mozilla::pkix::der::NestedOf
    - mozilla::pkix::SearchWithinRDN
    - Reader::AtEnd
    - mozilla::pkix::IsFatalError
    - mozilla::pkix::CheckPresentedIDConformsToConstraints
    - mozilla::pkix::MatchPresentedIDWithReferenceID
    - mozilla::pkix::ReadGeneralName
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    linkageType: ''
    returnType: Result
    signature: "Result SearchNames(/*optional*/ const Input* subjectAltName,\n            Input
      subject,\n            GeneralNameType referenceIDType,\n            Input referenceID,\n
      \           FallBackToSearchWithinSubject fallBackToCommonName,\n            HandleInvalidSubjectAlternativeNamesBy
      handleInvalidSANsBy,\n            /*out*/ MatchResult& match)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::ReadAVA
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:549,1
    - Dst: mozilla::pkix::MatchAVA
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:553,1
    - Dst: AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:558,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 6
    argNames:
    - ' rdn'
    - referenceIDType
    - referenceID
    - fallBackToEmailAddress
    - fallBackToCommonName
    - ' match'
    argTypes:
    - Reader
    - GeneralNameType
    - Input
    - FallBackToSearchWithinSubject
    - FallBackToSearchWithinSubject
    - MatchResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 537
    functionDepth: 4
    functionLinenumber: 537
    functionLinenumberEnd: 561
    functionName: mozilla::pkix::SearchWithinRDN
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 8
    functionsReached:
    - mozilla::pkix::ReadAVA
    - mozilla::pkix::MatchAVA
    - AtEnd
    linkageType: ''
    returnType: Result
    signature: "Result SearchWithinRDN(Reader& rdn,\n                GeneralNameType
      referenceIDType,\n                Input referenceID,\n                FallBackToSearchWithinSubject
      fallBackToEmailAddress,\n                FallBackToSearchWithinSubject fallBackToCommonName,\n
      \               /*in/out*/ MatchResult& match)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:605,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:605,1
    - Dst: mozilla::pkix::IsValidPresentedDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:639,1
    - Dst: mozilla::pkix::MatchSubjectPresentedIDWithReferenceID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:640,1
    - Dst: mozilla::pkix::ParseIPv4Address
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:649,1
    - Dst: mozilla::pkix::MatchSubjectPresentedIDWithReferenceID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:650,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:651,1
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:675,1
    - Dst: Input
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:675,1
    - Dst: mozilla::pkix::MatchPresentedIDWithReferenceID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:684,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 8
    argNames:
    - type
    - valueEncodingTag
    - presentedID
    - referenceIDType
    - referenceID
    - fallBackToEmailAddress
    - fallBackToCommonName
    - ' match'
    argTypes:
    - Input
    - uint8_t
    - Input
    - GeneralNameType
    - Input
    - FallBackToSearchWithinSubject
    - FallBackToSearchWithinSubject
    - MatchResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 577
    functionDepth: 3
    functionLinenumber: 577
    functionLinenumberEnd: 690
    functionName: mozilla::pkix::MatchAVA
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 8
    functionsReached:
    - mozilla::pkix::MatchSubjectPresentedIDWithReferenceID
    - mozilla::pkix::ParseIPv4Address
    - Input
    - mozilla::pkix::MatchPresentedIDWithReferenceID
    - mozilla::pkix::IsValidPresentedDNSID
    - mozilla::pkix::InputsAreEqual
    linkageType: ''
    returnType: Result
    signature: "Result MatchAVA(Input type, uint8_t valueEncodingTag, Input presentedID,\n
      \        GeneralNameType referenceIDType,\n         Input referenceID,\n         FallBackToSearchWithinSubject
      fallBackToEmailAddress,\n         FallBackToSearchWithinSubject fallBackToCommonName,\n
      \        /*in/out*/ MatchResult& match)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::MatchPresentedIDWithReferenceID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:699,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - presentedIDType
    - presentedID
    - referenceIDType
    - referenceID
    - ' match'
    argTypes:
    - GeneralNameType
    - Input
    - GeneralNameType
    - Input
    - MatchResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 692
    functionDepth: 3
    functionLinenumber: 692
    functionLinenumberEnd: 705
    functionName: mozilla::pkix::MatchSubjectPresentedIDWithReferenceID
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 8
    functionsReached:
    - mozilla::pkix::MatchPresentedIDWithReferenceID
    linkageType: ''
    returnType: void
    signature: "void MatchSubjectPresentedIDWithReferenceID(GeneralNameType presentedIDType,\n
      \                                      Input presentedID,\n                                       GeneralNameType
      referenceIDType,\n                                       Input referenceID,\n
      \                                      /*in/out*/ MatchResult& match)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::CheckPresentedIDConformsToConstraints
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:717,1
    - Dst: mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:731,1
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:738,1
    - Dst: mozilla::pkix::MatchPresentedRFC822NameWithReferenceRFC822Name
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:743,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:757,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 5
    argNames:
    - presentedIDType
    - presentedID
    - referenceIDType
    - referenceID
    - ' matchResult'
    argTypes:
    - GeneralNameType
    - Input
    - GeneralNameType
    - Input
    - MatchResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 707
    functionDepth: 4
    functionLinenumber: 707
    functionLinenumberEnd: 768
    functionName: mozilla::pkix::MatchPresentedIDWithReferenceID
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 24
    functionsReached:
    - mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
    - mozilla::pkix::CheckPresentedIDConformsToConstraints
    - mozilla::pkix::MatchPresentedRFC822NameWithReferenceRFC822Name
    - mozilla::pkix::InputsAreEqual
    - mozilla::pkix::NotReached
    linkageType: ''
    returnType: Result
    signature: "Result MatchPresentedIDWithReferenceID(GeneralNameType presentedIDType,\n
      \                               Input presentedID,\n                                GeneralNameType
      referenceIDType,\n                                Input referenceID,\n                                /*out*/
      MatchResult& matchResult)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:798,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:807,1
    - Dst: mozilla::pkix::CheckPresentedIDConformsToNameConstraintsSubtrees
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:811,1
    - Dst: mozilla::pkix::CheckPresentedIDConformsToNameConstraintsSubtrees
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:818,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:825,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - presentedIDType
    - presentedID
    - encodedNameConstraints
    argTypes:
    - GeneralNameType
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 788
    functionDepth: 3
    functionLinenumber: 788
    functionLinenumberEnd: 826
    functionName: mozilla::pkix::CheckPresentedIDConformsToConstraints
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 16
    functionsReached:
    - mozilla::pkix::der::End
    - Reader::AtEnd
    - mozilla::pkix::CheckPresentedIDConformsToNameConstraintsSubtrees
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    linkageType: ''
    returnType: Result
    signature: "Result CheckPresentedIDConformsToConstraints(\n  GeneralNameType presentedIDType,\n
      \ Input presentedID,\n  Input encodedNameConstraints)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:835,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:835,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:840,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:841,1
    - Dst: ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:859,1
    - Dst: mozilla::pkix::ReadGeneralName
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:865,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:876,1
    - Dst: mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:886,1
    - Dst: mozilla::pkix::MatchPresentedIPAddressWithConstraint
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:896,1
    - Dst: mozilla::pkix::MatchPresentedDirectoryNameWithConstraint
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:904,1
    - Dst: mozilla::pkix::MatchPresentedRFC822NameWithReferenceRFC822Name
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:913,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:938,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:959,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 76
    argCount: 4
    argNames:
    - presentedIDType
    - presentedID
    - ' nameConstraints'
    - subtreesType
    argTypes:
    - GeneralNameType
    - Input
    - Reader
    - NameConstraintsSubtrees
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 828
    functionDepth: 5
    functionLinenumber: 828
    functionLinenumberEnd: 969
    functionName: mozilla::pkix::CheckPresentedIDConformsToNameConstraintsSubtrees
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 8
    functionsReached:
    - mozilla::pkix::der::End
    - mozilla::pkix::MatchPresentedIPAddressWithConstraint
    - mozilla::pkix::der::ExpectTagAndGetValue
    - mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
    - Reader::AtEnd
    - mozilla::pkix::MatchPresentedRFC822NameWithReferenceRFC822Name
    - ExpectTagAndGetValue
    - mozilla::pkix::MatchPresentedDirectoryNameWithConstraint
    - mozilla::pkix::ReadGeneralName
    - Peek
    - mozilla::pkix::NotReached
    - static_cast<uint8_t>
    linkageType: ''
    returnType: Result
    signature: "Result CheckPresentedIDConformsToNameConstraintsSubtrees(\n  GeneralNameType
      presentedIDType,\n  Input presentedID,\n  Reader& nameConstraints,\n  NameConstraintsSubtrees
      subtreesType)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::IsValidDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1100,1
    - Dst: mozilla::pkix::IsValidDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1104,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1118,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1118,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1119,1
    - Dst: Reader::Peek
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1147,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1148,1
    - Dst: static_cast<Input::size_type>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1148,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1149,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1150,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1151,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1156,1
    - Dst: static_cast<Input::size_type>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1156,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1157,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1158,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1159,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1163,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1164,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1177,1
    - Dst: Reader::Peek
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1182,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1183,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1184,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1189,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1194,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1195,1
    - Dst: Reader::Peek
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1198,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1203,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1208,1
    - Dst: mozilla::pkix::LocaleInsensitveToLower
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1212,1
    - Dst: mozilla::pkix::LocaleInsensitveToLower
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1213,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1217,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1228,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1231,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1232,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1240,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 90
    argCount: 6
    argNames:
    - presentedDNSID
    - allowWildcards
    - allowDotlessSubdomainMatches
    - referenceDNSIDRole
    - referenceDNSID
    - ' matches'
    argTypes:
    - Input
    - AllowWildcards
    - AllowDotlessSubdomainMatches
    - IDRole
    - Input
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1248
      start: 1091
    functionDepth: 2
    functionLinenumber: 1091
    functionLinenumberEnd: 1248
    functionName: mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 27
    functionsReached:
    - mozilla::pkix::IsValidDNSID
    - mozilla::pkix::LocaleInsensitveToLower
    - Input::GetLength
    - Reader::Read
    - Reader::Skip
    - Reader::Peek
    - static_cast<Input::size_type>
    - Reader::AtEnd
    - mozilla::pkix::NotReached
    linkageType: ''
    returnType: Result
    signature: "Result MatchPresentedDNSIDWithReferenceDNSID(\n  Input presentedDNSID,\n
      \ AllowWildcards allowWildcards,\n  AllowDotlessSubdomainMatches allowDotlessSubdomainMatches,\n
      \ IDRole referenceDNSIDRole,\n  Input referenceDNSID,\n  /*out*/ bool& matches)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1264,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1264,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1267,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1268,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1273,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1273,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1280,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1280,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1286,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1286,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1290,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1298,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1303,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1308,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1314,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 3
    argNames:
    - presentedID
    - iPAddressConstraint
    - ' foundMatch'
    argTypes:
    - Input
    - Input
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1317
      start: 1259
    functionDepth: 1
    functionLinenumber: 1259
    functionLinenumberEnd: 1317
    functionName: mozilla::pkix::MatchPresentedIPAddressWithConstraint
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 8
    functionsReached:
    - mozilla::pkix::der::End
    - Input::GetLength
    - Reader::Read
    - Reader::Skip
    - Reader::AtEnd
    linkageType: ''
    returnType: Result
    signature: "Result MatchPresentedIPAddressWithConstraint(Input presentedID,\n
      \                                     Input iPAddressConstraint,\n                                      /*out*/
      bool& foundMatch)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1332,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1333,1
    - Dst: mozilla::pkix::der::ReadTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1337,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - ' rdn'
    - ' type'
    - ' valueTag'
    - ' value'
    argTypes:
    - Reader
    - Input
    - uint8_t
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1343
      start: 1326
    functionDepth: 3
    functionLinenumber: 1326
    functionLinenumberEnd: 1343
    functionName: mozilla::pkix::ReadAVA
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 15
    functionsReached:
    - mozilla::pkix::der::ReadTagAndGetValue
    - mozilla::pkix::der::Nested
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: "Result ReadAVA(Reader& rdn,\n        /*out*/ Input& type,\n        /*out*/
      uint8_t& valueTag,\n        /*out*/ Input& value)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1392,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1398,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1408,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1408,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1418,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1422,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1427,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1432,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1436,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1436,1
    - Dst: mozilla::pkix::ReadAVA
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1440,1
    - Dst: mozilla::pkix::ReadAVA
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1448,1
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1456,1
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1457,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1468,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1468,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 54
    argCount: 4
    argNames:
    - subtreesType
    - presentedID
    - directoryNameConstraint
    - ' matches'
    argTypes:
    - NameConstraintsSubtrees
    - Input
    - Input
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1473
      start: 1385
    functionDepth: 4
    functionLinenumber: 1385
    functionLinenumberEnd: 1473
    functionName: mozilla::pkix::MatchPresentedDirectoryNameWithConstraint
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 8
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndGetValue
    - Reader::AtEnd
    - mozilla::pkix::InputsAreEqual
    - mozilla::pkix::ReadAVA
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    linkageType: ''
    returnType: Result
    signature: "Result MatchPresentedDirectoryNameWithConstraint(NameConstraintsSubtrees
      subtreesType,\n                                          Input presentedID,\n
      \                                         Input directoryNameConstraint,\n                                          /*out*/
      bool& matches)"
  - BBCount: 89
    BranchProfiles: []
    Callsites:
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1509,1
    - Dst: Reader::SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1543,1
    - Dst: mozilla::pkix::IsValidDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1546,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 108
    argCount: 1
    argNames:
    - input
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1553
      start: 1500
    functionDepth: 2
    functionLinenumber: 1500
    functionLinenumberEnd: 1553
    functionName: mozilla::pkix::IsValidRFC822Name
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 7
    functionsReached:
    - Reader::SkipToEnd
    - mozilla::pkix::IsValidDNSID
    - Reader::Read
    linkageType: ''
    returnType: bool
    signature: bool IsValidRFC822Name(Input input)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::IsValidRFC822Name
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1561,1
    - Dst: mozilla::pkix::InputContains
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1576,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1586,1
    - Dst: Reader::SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1595,1
    - Dst: mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1599,1
    - Dst: mozilla::pkix::IsValidRFC822Name
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1606,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1614,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1615,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1619,1
    - Dst: mozilla::pkix::LocaleInsensitveToLower
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1623,1
    - Dst: mozilla::pkix::LocaleInsensitveToLower
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1624,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 4
    argNames:
    - presentedRFC822Name
    - referenceRFC822NameRole
    - referenceRFC822Name
    - ' matches'
    argTypes:
    - Input
    - IDRole
    - Input
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1629
      start: 1555
    functionDepth: 2
    functionLinenumber: 1555
    functionLinenumberEnd: 1629
    functionName: mozilla::pkix::MatchPresentedRFC822NameWithReferenceRFC822Name
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 16
    functionsReached:
    - mozilla::pkix::MatchPresentedDNSIDWithReferenceDNSID
    - mozilla::pkix::IsValidRFC822Name
    - mozilla::pkix::LocaleInsensitveToLower
    - Reader::Read
    - Reader::SkipToEnd
    - mozilla::pkix::InputContains
    - Reader::AtEnd
    linkageType: ''
    returnType: Result
    signature: "Result MatchPresentedRFC822NameWithReferenceRFC822Name(Input presentedRFC822Name,\n
      \                                               IDRole referenceRFC822NameRole,\n
      \                                               Input referenceRFC822Name,\n
      \                                               /*out*/ bool& matches)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1637,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1638,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1638,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1639,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - a
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1642
      start: 1633
    functionDepth: 0
    functionLinenumber: 1633
    functionLinenumberEnd: 1642
    functionName: mozilla::pkix::LocaleInsensitveToLower
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 16
    functionsReached:
    - static_cast<uint8_t>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t LocaleInsensitveToLower(uint8_t a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1651,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - id
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1659
      start: 1644
    functionDepth: 0
    functionLinenumber: 1644
    functionLinenumberEnd: 1659
    functionName: mozilla::pkix::StartsWithIDNALabel
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 6
    functionsReached:
    - Reader::Read
    linkageType: ''
    returnType: bool
    signature: bool StartsWithIDNALabel(Input id)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1669,1
    - Dst: Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1674,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1698,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 3
    argNames:
    - ' input'
    - lastComponent
    - ' valueOut'
    argTypes:
    - Reader
    - bool
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1700
      start: 1661
    functionDepth: 0
    functionLinenumber: 1661
    functionLinenumberEnd: 1700
    functionName: mozilla::pkix::ReadIPv4AddressComponent
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 3
    functionsReached:
    - static_cast<uint8_t>
    - Read
    - AtEnd
    linkageType: ''
    returnType: bool
    signature: "bool ReadIPv4AddressComponent(Reader& input, bool lastComponent,\n
      \                        /*out*/ uint8_t& valueOut)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::ReadIPv4AddressComponent
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1711,1
    - Dst: mozilla::pkix::ReadIPv4AddressComponent
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1712,1
    - Dst: mozilla::pkix::ReadIPv4AddressComponent
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1713,1
    - Dst: mozilla::pkix::ReadIPv4AddressComponent
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1714,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - hostname
    - (out)
    argTypes:
    - Input
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1715
      start: 1707
    functionDepth: 1
    functionLinenumber: 1707
    functionLinenumberEnd: 1715
    functionName: mozilla::pkix::ParseIPv4Address
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 15
    functionsReached:
    - mozilla::pkix::ReadIPv4AddressComponent
    linkageType: ''
    returnType: bool
    signature: bool ParseIPv4Address(Input hostname, /*out*/ uint8_t (&out)[4])
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1723,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1724,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1725,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1726,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1727,1
    - Dst: std::copy_backward
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1746,1
    - Dst: static_cast<size_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1746,1
    - Dst: static_cast<size_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1747,1
    - Dst: fill_n
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1750,1
    - Dst: static_cast<size_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1750,1
    - Dst: static_cast<size_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1751,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1751,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - (address)
    - numComponents
    - contractionIndex
    argTypes:
    - uint8_t[]
    - int
    - int
    assertStmts:
    - condition: (numComponents >= 0)
      pos:
        line_end: 1722
        line_start: 1722
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    - condition: (contractionIndex >= -1)
      pos:
        line_end: 1724
        line_start: 1724
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    - condition: (contractionIndex <= 8)
      pos:
        line_end: 1725
        line_start: 1725
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    - condition: (numComponents <= 8)
      pos:
        line_end: 1723
        line_start: 1723
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    - condition: (contractionIndex <= numComponents)
      pos:
        line_end: 1726
        line_start: 1726
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    constantsTouched: []
    func_position:
      end: 1754
      start: 1719
    functionDepth: 1
    functionLinenumber: 1719
    functionLinenumberEnd: 1754
    functionName: mozilla::pkix::FinishIPv6Address
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 3
    functionsReached:
    - fill_n
    - assert
    - static_cast<size_t>
    - std::copy_backward
    - static_cast<uint8_t>
    linkageType: ''
    returnType: bool
    signature: "bool FinishIPv6Address(/*in/out*/ uint8_t (&address)[16], int numComponents,\n
      \                 int contractionIndex)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1723,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1724,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1725,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1726,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1727,1
    - Dst: std::copy_backward
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1746,1
    - Dst: static_cast<size_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1746,1
    - Dst: static_cast<size_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1747,1
    - Dst: fill_n
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1750,1
    - Dst: static_cast<size_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1750,1
    - Dst: static_cast<size_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1751,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1751,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - (address)
    - numComponents
    - contractionIndex
    argTypes:
    - uint8_t[]
    - int
    - int
    assertStmts:
    - condition: (numComponents >= 0)
      pos:
        line_end: 1722
        line_start: 1722
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    - condition: (contractionIndex >= -1)
      pos:
        line_end: 1724
        line_start: 1724
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    - condition: (contractionIndex <= 8)
      pos:
        line_end: 1725
        line_start: 1725
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    - condition: (numComponents <= 8)
      pos:
        line_end: 1723
        line_start: 1723
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    - condition: (contractionIndex <= numComponents)
      pos:
        line_end: 1726
        line_start: 1726
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    constantsTouched: []
    func_position:
      end: 1754
      start: 1719
    functionDepth: 1
    functionLinenumber: 1719
    functionLinenumberEnd: 1754
    functionName: mozilla::pkix::FinishIPv6Address
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 3
    functionsReached:
    - fill_n
    - assert
    - static_cast<size_t>
    - std::copy_backward
    - static_cast<uint8_t>
    linkageType: ''
    returnType: bool
    signature: "bool FinishIPv6Address(/*in/out*/ uint8_t (&address)[16], int numComponents,\n
      \                 int contractionIndex)"
  - BBCount: 44
    BranchProfiles: []
    Callsites:
    - Dst: Reader::Peek
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1769,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1773,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1774,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1777,1
    - Dst: Reader::GetMark
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1789,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1792,1
    - Dst: Reader::Peek
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1792,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1795,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1796,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1802,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1802,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1805,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1805,1
    - Dst: UINT8_C
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1806,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1809,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1809,1
    - Dst: UINT8_C
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1810,1
    - Dst: Reader::SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1822,1
    - Dst: Reader::GetInput
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1824,1
    - Dst: reinterpret_cast<uint8_t(*)[4]>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1828,1
    - Dst: mozilla::pkix::ParseIPv4Address
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1829,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1832,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1832,1
    - Dst: mozilla::pkix::FinishIPv6Address
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1835,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1854,1
    - Dst: mozilla::pkix::FinishIPv6Address
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1859,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1866,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1868,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1872,1
    - Dst: mozilla::pkix::FinishIPv6Address
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1873,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1878,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1879,1
    - Dst: Reader::Peek
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1883,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1888,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1889,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1893,1
    - Dst: mozilla::pkix::FinishIPv6Address
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1895,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 110
    argCount: 2
    argNames:
    - hostname
    - (out)
    argTypes:
    - Input
    - uint8_t[]
    assertStmts:
    - condition: (false)
      pos:
        line_end: 1773
        line_start: 1773
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    - condition: (false)
      pos:
        line_end: 1795
        line_start: 1795
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    - condition: (false)
      pos:
        line_end: 1878
        line_start: 1878
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    - condition: (false)
      pos:
        line_end: 1888
        line_start: 1888
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    - condition: (input.AtEnd())
      pos:
        line_end: 1831
        line_start: 1831
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    constantsTouched: []
    func_position:
      end: 1900
      start: 1761
    functionDepth: 2
    functionLinenumber: 1761
    functionLinenumberEnd: 1900
    functionName: mozilla::pkix::ParseIPv6Address
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 4
    functionsReached:
    - mozilla::pkix::FinishIPv6Address
    - Reader::GetMark
    - Reader::Read
    - UINT8_C
    - mozilla::pkix::ParseIPv4Address
    - assert
    - Reader::SkipToEnd
    - Reader::Peek
    - reinterpret_cast<uint8_t(*)[4]>
    - Reader::GetInput
    - Reader::AtEnd
    - static_cast<uint8_t>
    linkageType: ''
    returnType: bool
    signature: bool ParseIPv6Address(Input hostname, /*out*/ uint8_t (&out)[16])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::IsValidDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1905,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hostname
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1906
      start: 1902
    functionDepth: 2
    functionLinenumber: 1902
    functionLinenumberEnd: 1906
    functionName: mozilla::pkix::IsValidReferenceDNSID
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 4
    functionsReached:
    - mozilla::pkix::IsValidDNSID
    linkageType: ''
    returnType: bool
    signature: bool IsValidReferenceDNSID(Input hostname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::IsValidDNSID
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1911,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hostname
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1912
      start: 1908
    functionDepth: 2
    functionLinenumber: 1908
    functionLinenumberEnd: 1912
    functionName: mozilla::pkix::IsValidPresentedDNSID
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 8
    functionsReached:
    - mozilla::pkix::IsValidDNSID
    linkageType: ''
    returnType: bool
    signature: bool IsValidPresentedDNSID(Input hostname)
  - BBCount: 87
    BranchProfiles: []
    Callsites:
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1923,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1929,1
    - Dst: Reader::Peek
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1941,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1944,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1946,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1951,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1965,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:2043,1
    - Dst: mozilla::pkix::StartsWithIDNALabel
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:2075,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 149
    argCount: 3
    argNames:
    - hostname
    - idRole
    - allowWildcards
    argTypes:
    - Input
    - IDRole
    - AllowWildcards
    assertStmts:
    - condition: (false)
      pos:
        line_end: 1945
        line_start: 1945
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    constantsTouched: []
    func_position:
      end: 2085
      start: 1920
    functionDepth: 1
    functionLinenumber: 1920
    functionLinenumberEnd: 2085
    functionName: mozilla::pkix::IsValidDNSID
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 24
    functionsReached:
    - Input::GetLength
    - Reader::Read
    - assert
    - Reader::Skip
    - Reader::Peek
    - mozilla::pkix::StartsWithIDNALabel
    - Reader::AtEnd
    linkageType: ''
    returnType: bool
    signature: bool IsValidDNSID(Input hostname, IDRole idRole, AllowWildcards allowWildcards)
  - BBCount: 87
    BranchProfiles: []
    Callsites:
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1923,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1929,1
    - Dst: Reader::Peek
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1941,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1944,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1946,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1951,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:1965,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:2043,1
    - Dst: mozilla::pkix::StartsWithIDNALabel
      Src: /src/nss/lib/mozpkix/lib/pkixnames.cpp:2075,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 149
    argCount: 3
    argNames:
    - hostname
    - idRole
    - allowWildcards
    argTypes:
    - Input
    - IDRole
    - AllowWildcards
    assertStmts:
    - condition: (false)
      pos:
        line_end: 1945
        line_start: 1945
        source_file: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    constantsTouched: []
    func_position:
      end: 2085
      start: 1920
    functionDepth: 1
    functionLinenumber: 1920
    functionLinenumberEnd: 2085
    functionName: mozilla::pkix::IsValidDNSID
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnames.cpp
    functionUses: 24
    functionsReached:
    - Input::GetLength
    - Reader::Read
    - assert
    - Reader::Skip
    - Reader::Peek
    - mozilla::pkix::StartsWithIDNALabel
    - Reader::AtEnd
    linkageType: ''
    returnType: bool
    signature: bool IsValidDNSID(Input hostname, IDRole idRole, AllowWildcards allowWildcards)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:45,1
    - Dst: mozilla::pkix::der::SignedData
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:49,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:53,1
    - Dst: mozilla::pkix::der::OptionalVersion
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:74,1
    - Dst: mozilla::pkix::der::CertificateSerialNumber
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:78,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:82,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetTLV
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:86,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:90,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetTLV
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:98,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetTLV
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:102,1
    - Dst: mozilla::pkix::der::SkipOptionalImplicitPrimitiveTag
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:114,1
    - Dst: mozilla::pkix::der::SkipOptionalImplicitPrimitiveTag
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:120,1
    - Dst: mozilla::pkix::der::OptionalExtensions
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:126,1
    - Dst: mozilla::pkix::BackCert::RememberExtension
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:130,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:159,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:160,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:160,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:164,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 60
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 29
    functionDepth: 5
    functionLinenumber: 29
    functionLinenumberEnd: 165
    functionName: mozilla::pkix::BackCert::Init
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcert.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::End
    - mozilla::pkix::der::SkipOptionalImplicitPrimitiveTag
    - mozilla::pkix::der::ExpectTagAndGetValue
    - mozilla::pkix::der::OptionalExtensions
    - mozilla::pkix::der::CertificateSerialNumber
    - mozilla::pkix::BackCert::RememberExtension
    - mozilla::pkix::der::ExpectTagAndGetTLV
    - mozilla::pkix::der::SignedData
    - GetLength
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    - mozilla::pkix::der::OptionalVersion
    linkageType: ''
    returnType: Result
    signature: Result BackCert::Init()
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:252,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:254,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:256,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:258,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:260,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:262,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:264,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:266,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:268,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:270,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:272,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:274,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:285,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:292,1
    - Dst: Input*::Init
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:295,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 52
    argCount: 4
    argNames:
    - ' extnID'
    - extnValue
    - critical
    - ' understood'
    argTypes:
    - Reader
    - Input
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 303
    functionName: mozilla::pkix::BackCert::RememberExtension
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcert.cpp
    functionUses: 1
    functionsReached:
    - Input::GetLength
    - MatchRest
    - Input*::Init
    linkageType: ''
    returnType: Result
    signature: "Result BackCert::RememberExtension(Reader& extnID, Input extnValue,\n
      \                           bool critical, /*out*/ bool& understood)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:310,1
    - Dst: Reader::SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - extnValue
    - ' sctList'
    argTypes:
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 305
    functionDepth: 3
    functionLinenumber: 305
    functionLinenumberEnd: 316
    functionName: mozilla::pkix::ExtractSignedCertificateTimestampListFromExtension
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcert.cpp
    functionUses: 0
    functionsReached:
    - Reader::SkipToEnd
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    linkageType: ''
    returnType: Result
    signature: "Result ExtractSignedCertificateTimestampListFromExtension(Input extnValue,\n
      \                                                  Input& sctList)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:45,1
    - Dst: mozilla::pkix::der::SignedData
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:49,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:53,1
    - Dst: mozilla::pkix::der::OptionalVersion
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:74,1
    - Dst: mozilla::pkix::der::CertificateSerialNumber
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:78,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:82,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetTLV
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:86,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:90,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetTLV
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:98,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetTLV
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:102,1
    - Dst: mozilla::pkix::der::SkipOptionalImplicitPrimitiveTag
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:114,1
    - Dst: mozilla::pkix::der::SkipOptionalImplicitPrimitiveTag
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:120,1
    - Dst: mozilla::pkix::der::OptionalExtensions
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:126,1
    - Dst: mozilla::pkix::BackCert::RememberExtension
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:130,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:159,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:160,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:160,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:164,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 60
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 29
    functionDepth: 5
    functionLinenumber: 29
    functionLinenumberEnd: 165
    functionName: mozilla::pkix::BackCert::Init
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcert.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::End
    - mozilla::pkix::der::SkipOptionalImplicitPrimitiveTag
    - mozilla::pkix::der::ExpectTagAndGetValue
    - mozilla::pkix::der::OptionalExtensions
    - mozilla::pkix::der::CertificateSerialNumber
    - mozilla::pkix::BackCert::RememberExtension
    - mozilla::pkix::der::ExpectTagAndGetTLV
    - mozilla::pkix::der::SignedData
    - GetLength
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    - mozilla::pkix::der::OptionalVersion
    linkageType: ''
    returnType: Result
    signature: Result BackCert::Init()
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:252,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:254,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:256,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:258,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:260,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:262,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:264,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:266,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:268,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:270,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:272,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:274,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:285,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:292,1
    - Dst: Input*::Init
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:295,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 52
    argCount: 4
    argNames:
    - ' extnID'
    - extnValue
    - critical
    - ' understood'
    argTypes:
    - Reader
    - Input
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 303
    functionName: mozilla::pkix::BackCert::RememberExtension
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcert.cpp
    functionUses: 2
    functionsReached:
    - Input::GetLength
    - MatchRest
    - Input*::Init
    linkageType: ''
    returnType: Result
    signature: "Result BackCert::RememberExtension(Reader& extnID, Input extnValue,\n
      \                           bool critical, /*out*/ bool& understood)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:310,1
    - Dst: Reader::SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - extnValue
    - ' sctList'
    argTypes:
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 305
    functionDepth: 3
    functionLinenumber: 305
    functionLinenumberEnd: 316
    functionName: mozilla::pkix::ExtractSignedCertificateTimestampListFromExtension
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcert.cpp
    functionUses: 0
    functionsReached:
    - Reader::SkipToEnd
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    linkageType: ''
    returnType: Result
    signature: "Result ExtractSignedCertificateTimestampListFromExtension(Input extnValue,\n
      \                                                  Input& sctList)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:45,1
    - Dst: mozilla::pkix::der::SignedData
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:49,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:53,1
    - Dst: mozilla::pkix::der::OptionalVersion
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:74,1
    - Dst: mozilla::pkix::der::CertificateSerialNumber
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:78,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:82,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetTLV
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:86,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:90,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetTLV
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:98,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetTLV
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:102,1
    - Dst: mozilla::pkix::der::SkipOptionalImplicitPrimitiveTag
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:114,1
    - Dst: mozilla::pkix::der::SkipOptionalImplicitPrimitiveTag
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:120,1
    - Dst: mozilla::pkix::der::OptionalExtensions
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:126,1
    - Dst: mozilla::pkix::BackCert::RememberExtension
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:130,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:159,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:160,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:160,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:164,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 60
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 29
    functionDepth: 5
    functionLinenumber: 29
    functionLinenumberEnd: 165
    functionName: mozilla::pkix::BackCert::Init
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcert.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::End
    - mozilla::pkix::der::SkipOptionalImplicitPrimitiveTag
    - mozilla::pkix::der::ExpectTagAndGetValue
    - mozilla::pkix::der::OptionalExtensions
    - mozilla::pkix::der::CertificateSerialNumber
    - mozilla::pkix::BackCert::RememberExtension
    - mozilla::pkix::der::ExpectTagAndGetTLV
    - mozilla::pkix::der::SignedData
    - GetLength
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    - mozilla::pkix::der::OptionalVersion
    linkageType: ''
    returnType: Result
    signature: Result BackCert::Init()
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:252,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:254,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:256,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:258,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:260,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:262,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:264,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:266,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:268,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:270,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:272,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:274,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:285,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:292,1
    - Dst: Input*::Init
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:295,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 52
    argCount: 4
    argNames:
    - ' extnID'
    - extnValue
    - critical
    - ' understood'
    argTypes:
    - Reader
    - Input
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 303
    functionName: mozilla::pkix::BackCert::RememberExtension
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcert.cpp
    functionUses: 3
    functionsReached:
    - Input::GetLength
    - MatchRest
    - Input*::Init
    linkageType: ''
    returnType: Result
    signature: "Result BackCert::RememberExtension(Reader& extnID, Input extnValue,\n
      \                           bool critical, /*out*/ bool& understood)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:310,1
    - Dst: Reader::SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - extnValue
    - ' sctList'
    argTypes:
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 305
    functionDepth: 3
    functionLinenumber: 305
    functionLinenumberEnd: 316
    functionName: mozilla::pkix::ExtractSignedCertificateTimestampListFromExtension
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcert.cpp
    functionUses: 0
    functionsReached:
    - Reader::SkipToEnd
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    linkageType: ''
    returnType: Result
    signature: "Result ExtractSignedCertificateTimestampListFromExtension(Input extnValue,\n
      \                                                  Input& sctList)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:45,1
    - Dst: mozilla::pkix::der::SignedData
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:49,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:53,1
    - Dst: mozilla::pkix::der::OptionalVersion
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:74,1
    - Dst: mozilla::pkix::der::CertificateSerialNumber
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:78,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:82,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetTLV
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:86,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:90,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetTLV
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:98,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetTLV
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:102,1
    - Dst: mozilla::pkix::der::SkipOptionalImplicitPrimitiveTag
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:114,1
    - Dst: mozilla::pkix::der::SkipOptionalImplicitPrimitiveTag
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:120,1
    - Dst: mozilla::pkix::der::OptionalExtensions
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:126,1
    - Dst: mozilla::pkix::BackCert::RememberExtension
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:130,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:159,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:160,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:160,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:164,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 60
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 29
    functionDepth: 5
    functionLinenumber: 29
    functionLinenumberEnd: 165
    functionName: mozilla::pkix::BackCert::Init
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcert.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::End
    - mozilla::pkix::der::SkipOptionalImplicitPrimitiveTag
    - mozilla::pkix::der::ExpectTagAndGetValue
    - mozilla::pkix::der::OptionalExtensions
    - mozilla::pkix::der::CertificateSerialNumber
    - mozilla::pkix::BackCert::RememberExtension
    - mozilla::pkix::der::ExpectTagAndGetTLV
    - mozilla::pkix::der::SignedData
    - GetLength
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    - mozilla::pkix::der::OptionalVersion
    linkageType: ''
    returnType: Result
    signature: Result BackCert::Init()
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:252,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:254,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:256,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:258,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:260,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:262,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:264,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:266,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:268,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:270,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:272,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:274,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:285,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:292,1
    - Dst: Input*::Init
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:295,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 52
    argCount: 4
    argNames:
    - ' extnID'
    - extnValue
    - critical
    - ' understood'
    argTypes:
    - Reader
    - Input
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 303
    functionName: mozilla::pkix::BackCert::RememberExtension
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcert.cpp
    functionUses: 4
    functionsReached:
    - Input::GetLength
    - MatchRest
    - Input*::Init
    linkageType: ''
    returnType: Result
    signature: "Result BackCert::RememberExtension(Reader& extnID, Input extnValue,\n
      \                           bool critical, /*out*/ bool& understood)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:310,1
    - Dst: Reader::SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixcert.cpp:315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - extnValue
    - ' sctList'
    argTypes:
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 305
    functionDepth: 3
    functionLinenumber: 305
    functionLinenumberEnd: 316
    functionName: mozilla::pkix::ExtractSignedCertificateTimestampListFromExtension
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcert.cpp
    functionUses: 0
    functionsReached:
    - Reader::SkipToEnd
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    linkageType: ''
    returnType: Result
    signature: "Result ExtractSignedCertificateTimestampListFromExtension(Input extnValue,\n
      \                                                  Input& sctList)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - result
    argTypes:
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 44
    functionName: mozilla::pkix::MapResultToName
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixresult.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      MapResultToName(Result result)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mozilla_pkix_result
    - ','
    - value
    - ','
    - nss_result
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: MOZILLA_PKIX_MAP
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixresult.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MOZILLA_PKIX_MAP(mozilla_pkix_result, value, nss_result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - result
    argTypes:
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 44
    functionName: mozilla::pkix::MapResultToName
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixresult.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      MapResultToName(Result result)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mozilla_pkix_result
    - ','
    - value
    - ','
    - nss_result
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: MOZILLA_PKIX_MAP
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixresult.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MOZILLA_PKIX_MAP(mozilla_pkix_result, value, nss_result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - result
    argTypes:
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 44
    functionName: mozilla::pkix::MapResultToName
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixresult.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      MapResultToName(Result result)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mozilla_pkix_result
    - ','
    - value
    - ','
    - nss_result
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: MOZILLA_PKIX_MAP
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixresult.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MOZILLA_PKIX_MAP(mozilla_pkix_result, value, nss_result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - result
    argTypes:
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 44
    functionName: mozilla::pkix::MapResultToName
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixresult.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      MapResultToName(Result result)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mozilla_pkix_result
    - ','
    - value
    - ','
    - nss_result
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: MOZILLA_PKIX_MAP
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixresult.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MOZILLA_PKIX_MAP(mozilla_pkix_result, value, nss_result)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::SignatureAlgorithmIdentifierValue
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:46,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:51,1
    - Dst: mozilla::pkix::der::SignatureAlgorithmIdentifierValue
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:60,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:66,1
    - Dst: CheckSignatureDigestAlgorithm
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:95,1
    - Dst: signature::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:110,1
    - Dst: CheckRSAPublicKeyModulusSizeInBits
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:111,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 5
    argNames:
    - ' trustDomain'
    - endEntityOrCA
    - notBefore
    - ' signedData'
    - signatureValue
    argTypes:
    - TrustDomain
    - EndEntityOrCA
    - Time
    - der::SignedDataWithSignature
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 125
    functionName: mozilla::pkix::CheckSignatureAlgorithm
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 0
    functionsReached:
    - signature::GetLength
    - mozilla::pkix::der::End
    - mozilla::pkix::der::SignatureAlgorithmIdentifierValue
    - CheckRSAPublicKeyModulusSizeInBits
    - CheckSignatureDigestAlgorithm
    linkageType: ''
    returnType: Result
    signature: "Result CheckSignatureAlgorithm(TrustDomain& trustDomain,\n                        EndEntityOrCA
      endEntityOrCA,\n                        Time notBefore,\n                        const
      der::SignedDataWithSignature& signedData,\n                        Input signatureValue)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:135,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - encodedIssuer
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 129
    functionDepth: 3
    functionLinenumber: 129
    functionLinenumberEnd: 146
    functionName: mozilla::pkix::CheckIssuer
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 0
    functionsReached:
    - Reader::AtEnd
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    linkageType: ''
    returnType: Result
    signature: Result CheckIssuer(Input encodedIssuer)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::TimeChoice
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:157,1
    - Dst: mozilla::pkix::der::TimeChoice
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:162,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:166,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - encodedValidity
    - notBeforeOut
    - notAfterOut
    argTypes:
    - Input
    - Time*
    - Time*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 182
    functionName: mozilla::pkix::ParseValidity
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 4
    functionsReached:
    - mozilla::pkix::der::End
    - mozilla::pkix::der::TimeChoice
    linkageType: ''
    returnType: Result
    signature: "Result ParseValidity(Input encodedValidity,\n              /*optional
      out*/ Time* notBeforeOut,\n              /*optional out*/ Time* notAfterOut)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - time
    - notBefore
    - notAfter
    argTypes:
    - Time
    - Time
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 196
    functionName: mozilla::pkix::CheckValidity
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: Result CheckValidity(Time time, Time notBefore, Time notAfter)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:218,1
    - Dst: mozilla::pkix::der::BitStringWithNoUnusedBits
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:222,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:226,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:234,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:251,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:258,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:286,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:289,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:292,1
    - Dst: CheckECDSACurveIsAcceptable
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:299,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:307,1
    - Dst: Reader::SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:318,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:322,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:329,1
    - Dst: mozilla::pkix::der::ExpectTagAndEmptyValue
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:332,1
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:340,1
    - Dst: mozilla::pkix::der::PositiveInteger
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:345,1
    - Dst: CheckRSAPublicKeyModulusSizeInBits
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:350,1
    - Dst: mozilla::pkix::der::PositiveInteger
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:359,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:368,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:372,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 84
    argCount: 3
    argNames:
    - ' input'
    - ' trustDomain'
    - endEntityOrCA
    argTypes:
    - Reader
    - TrustDomain
    - EndEntityOrCA
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 200
    functionDepth: 3
    functionLinenumber: 200
    functionLinenumberEnd: 378
    functionName: mozilla::pkix::CheckSubjectPublicKeyInfoContents
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::End
    - mozilla::pkix::der::ExpectTagAndGetValue
    - mozilla::pkix::der::BitStringWithNoUnusedBits
    - Reader::MatchRest
    - Input::GetLength
    - CheckRSAPublicKeyModulusSizeInBits
    - Reader::Read
    - Reader::SkipToEnd
    - mozilla::pkix::der::ExpectTagAndEmptyValue
    - mozilla::pkix::der::Nested
    - mozilla::pkix::der::PositiveInteger
    - CheckECDSACurveIsAcceptable
    linkageType: ''
    returnType: Result
    signature: "Result CheckSubjectPublicKeyInfoContents(Reader& input, TrustDomain&
      trustDomain,\n                                  EndEntityOrCA endEntityOrCA)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:385,1
    - Dst: mozilla::pkix::CheckSubjectPublicKeyInfoContents
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:386,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:391,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - subjectPublicKeyInfo
    - ' trustDomain'
    - endEntityOrCA
    argTypes:
    - Input
    - TrustDomain
    - EndEntityOrCA
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 380
    functionDepth: 4
    functionLinenumber: 380
    functionLinenumberEnd: 392
    functionName: mozilla::pkix::CheckSubjectPublicKeyInfo
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::CheckSubjectPublicKeyInfoContents
    - mozilla::pkix::der::Nested
    - mozilla::pkix::der::End
    linkageType: ''
    returnType: Result
    signature: "Result CheckSubjectPublicKeyInfo(Input subjectPublicKeyInfo, TrustDomain&
      trustDomain,\n                          EndEntityOrCA endEntityOrCA)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:400,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - keyUsage
    argTypes:
    - KeyUsage
    assertStmts:
    - condition: (keyUsage != KeyUsage::noParticularKeyUsageRequired)
      pos:
        line_end: 399
        line_start: 399
        source_file: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    constantsTouched: []
    func_position:
      end: 402
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 402
    functionName: mozilla::pkix::KeyUsageToBitMask
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 0
    functionsReached:
    - assert
    - static_cast<uint8_t>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t KeyUsageToBitMask(KeyUsage keyUsage)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:425,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:430,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:438,1
    - Dst: mozilla::pkix::KeyUsageToBitMask
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:480,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:499,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:500,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:506,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 3
    argNames:
    - endEntityOrCA
    - encodedKeyUsage
    - requiredKeyUsageIfPresent
    argTypes:
    - EndEntityOrCA
    - Input*
    - KeyUsage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 404
    functionDepth: 3
    functionLinenumber: 404
    functionLinenumberEnd: 512
    functionName: mozilla::pkix::CheckKeyUsage
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::KeyUsageToBitMask
    - Reader::Read
    - Reader::AtEnd
    - static_cast<uint8_t>
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    linkageType: ''
    returnType: Result
    signature: "Result CheckKeyUsage(EndEntityOrCA endEntityOrCA, const Input* encodedKeyUsage,\n
      \             KeyUsage requiredKeyUsageIfPresent)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::equal
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:535,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 536
    functionName: mozilla::pkix::CertPolicyId::IsAnyPolicy
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 0
    functionsReached:
    - std::equal
    linkageType: ''
    returnType: bool
    signature: bool CertPolicyId::IsAnyPolicy() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::equal
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:542,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - CertPolicyId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 543
    functionName: CertPolicyId::operator==(const CertPolicyId& other) const
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 0
    functionsReached:
    - std::equal
    linkageType: ''
    returnType: bool
    signature: bool CertPolicyId::operator==(const CertPolicyId& other) const
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: IsAnyPolicy
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:558,1
    - Dst: Input::Init
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:579,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:587,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:592,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:602,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:609,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:615,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:618,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:628,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 44
    argCount: 5
    argNames:
    - endEntityOrCA
    - encodedCertificatePolicies
    - encodedInhibitAnyPolicy
    - trustLevel
    - ' requiredPolicy'
    argTypes:
    - EndEntityOrCA
    - Input*
    - Input*
    - TrustLevel
    - CertPolicyId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 546
    functionDepth: 2
    functionLinenumber: 546
    functionLinenumberEnd: 636
    functionName: mozilla::pkix::CheckCertificatePolicies
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndGetValue
    - Reader::MatchRest
    - IsAnyPolicy
    - Reader::AtEnd
    - Input::Init
    linkageType: ''
    returnType: Result
    signature: "Result CheckCertificatePolicies(EndEntityOrCA endEntityOrCA,\n                         const
      Input* encodedCertificatePolicies,\n                         const Input* encodedInhibitAnyPolicy,\n
      \                        TrustLevel trustLevel,\n                         const
      CertPolicyId& requiredPolicy)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:656,1
    - Dst: mozilla::pkix::der::OptionalBoolean
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:658,1
    - Dst: mozilla::pkix::der::OptionalInteger
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:666,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:671,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:711,1
    - Dst: static_cast<long>
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:719,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 5
    argNames:
    - endEntityOrCA
    - encodedBasicConstraints
    - version
    - trustLevel
    - subCACount
    argTypes:
    - EndEntityOrCA
    - Input*
    - der::Version
    - TrustLevel
    - unsigned int
    assertStmts:
    - condition: (endEntityOrCA == EndEntityOrCA::MustBeCA)
      pos:
        line_end: 710
        line_start: 710
        source_file: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    constantsTouched: []
    func_position:
      end: 724
      start: 645
    functionDepth: 4
    functionLinenumber: 645
    functionLinenumberEnd: 724
    functionName: mozilla::pkix::CheckBasicConstraints
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::End
    - mozilla::pkix::der::OptionalInteger
    - static_cast<long>
    - assert
    - mozilla::pkix::der::Nested
    - mozilla::pkix::der::OptionalBoolean
    linkageType: ''
    returnType: Result
    signature: "Result CheckBasicConstraints(EndEntityOrCA endEntityOrCA,\n                      const
      Input* encodedBasicConstraints,\n                      const der::Version version,
      TrustLevel trustLevel,\n                      unsigned int subCACount)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:763,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:771,1
    - Dst: NetscapeStepUpMatchesServerAuth
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:772,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:782,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:786,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:790,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:794,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:798,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:808,1
    - Dst: SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:812,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 7
    argNames:
    - ' value'
    - requiredEKU
    - endEntityOrCA
    - ' trustDomain'
    - notBefore
    - ' found'
    - ' foundOCSPSigning'
    argTypes:
    - Reader
    - KeyPurposeId
    - EndEntityOrCA
    - TrustDomain
    - Time
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 728
    functionDepth: 1
    functionLinenumber: 728
    functionLinenumberEnd: 815
    functionName: mozilla::pkix::MatchEKU
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 0
    functionsReached:
    - SkipToEnd
    - MatchRest
    - mozilla::pkix::NotReached
    - NetscapeStepUpMatchesServerAuth
    linkageType: ''
    returnType: Result
    signature: "Result MatchEKU(Reader& value, KeyPurposeId requiredEKU,\n         EndEntityOrCA
      endEntityOrCA, TrustDomain& trustDomain,\n         Time notBefore, /*in/out*/
      bool& found,\n         /*in/out*/ bool& foundOCSPSigning)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::NestedOf
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:834,1
    - Dst: mozilla::pkix::MatchEKU
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:836,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:842,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 5
    argNames:
    - endEntityOrCA
    - encodedExtendedKeyUsage
    - requiredEKU
    - ' trustDomain'
    - notBefore
    argTypes:
    - EndEntityOrCA
    - Input*
    - KeyPurposeId
    - TrustDomain
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 817
    functionDepth: 4
    functionLinenumber: 817
    functionLinenumberEnd: 886
    functionName: mozilla::pkix::CheckExtendedKeyUsage
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::MatchEKU
    - mozilla::pkix::der::End
    - mozilla::pkix::der::NestedOf
    linkageType: ''
    returnType: Result
    signature: "Result CheckExtendedKeyUsage(EndEntityOrCA endEntityOrCA,\n                      const
      Input* encodedExtendedKeyUsage,\n                      KeyPurposeId requiredEKU,
      TrustDomain& trustDomain,\n                      Time notBefore)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetRequiredTLSFeatures
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:891,1
    - Dst: GetRequiredTLSFeatures
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:896,1
    - Dst: Input*::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:897,1
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:899,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - ' subject'
    - ' potentialIssuer'
    argTypes:
    - BackCert
    - BackCert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 888
    functionDepth: 1
    functionLinenumber: 888
    functionLinenumberEnd: 904
    functionName: mozilla::pkix::CheckTLSFeatures
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 0
    functionsReached:
    - Input*::GetLength
    - mozilla::pkix::InputsAreEqual
    - GetRequiredTLSFeatures
    linkageType: ''
    returnType: Result
    signature: Result CheckTLSFeatures(const BackCert& subject, BackCert& potentialIssuer)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::NestedOf
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:919,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:921,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:934,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - requiredTLSFeatures
    - stapledOCSPResponse
    argTypes:
    - Input*
    - Input*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 906
    functionDepth: 4
    functionLinenumber: 906
    functionLinenumberEnd: 935
    functionName: mozilla::pkix::TLSFeaturesSatisfiedInternal
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 0
    functionsReached:
    - MatchRest
    - mozilla::pkix::der::End
    - mozilla::pkix::der::NestedOf
    linkageType: ''
    returnType: Result
    signature: "Result TLSFeaturesSatisfiedInternal(const Input* requiredTLSFeatures,\n
      \                            const Input* stapledOCSPResponse)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BackCert::Init
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:942,1
    - Dst: mozilla::pkix::TLSFeaturesSatisfiedInternal
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:947,1
    - Dst: BackCert::GetRequiredTLSFeatures
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:947,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' cert'
    - stapledOCSPResponse
    argTypes:
    - Input
    - Input*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 937
    functionDepth: 5
    functionLinenumber: 937
    functionLinenumberEnd: 949
    functionName: mozilla::pkix::CheckTLSFeaturesAreSatisfied
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 0
    functionsReached:
    - BackCert::GetRequiredTLSFeatures
    - BackCert::Init
    - mozilla::pkix::TLSFeaturesSatisfiedInternal
    linkageType: ''
    returnType: Result
    signature: "Result CheckTLSFeaturesAreSatisfied(Input& cert,\n                             const
      Input* stapledOCSPResponse)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: GetCertTrust
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:968,1
    - Dst: GetDER
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:968,1
    - Dst: mozilla::pkix::ParseValidity
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:980,1
    - Dst: GetValidity
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:980,1
    - Dst: mozilla::pkix::CheckSignatureAlgorithm
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:997,1
    - Dst: GetSignedData
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:998,1
    - Dst: GetSignature
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:998,1
    - Dst: mozilla::pkix::CheckSubjectPublicKeyInfo
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1018,1
    - Dst: GetSubjectPublicKeyInfo
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1018,1
    - Dst: mozilla::pkix::CheckIssuer
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1025,1
    - Dst: GetIssuer
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1025,1
    - Dst: mozilla::pkix::CheckKeyUsage
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1035,1
    - Dst: GetKeyUsage
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1035,1
    - Dst: mozilla::pkix::CheckCertificatePolicies
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1042,1
    - Dst: GetCertificatePolicies
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1042,1
    - Dst: GetInhibitAnyPolicy
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1043,1
    - Dst: mozilla::pkix::CheckBasicConstraints
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1061,1
    - Dst: GetBasicConstraints
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1061,1
    - Dst: GetVersion
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1062,1
    - Dst: mozilla::pkix::CheckExtendedKeyUsage
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1073,1
    - Dst: GetExtKeyUsage
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1073,1
    - Dst: mozilla::pkix::CheckValidity
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1088,1
    - Dst: CheckValidityIsAcceptable
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1093,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 57
    argCount: 8
    argNames:
    - ' trustDomain'
    - ' cert'
    - time
    - requiredKeyUsageIfPresent
    - requiredEKUIfPresent
    - ' requiredPolicy'
    - subCACount
    - ' trustLevel'
    argTypes:
    - TrustDomain
    - BackCert
    - Time
    - KeyUsage
    - KeyPurposeId
    - CertPolicyId
    - unsigned int
    - TrustLevel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 951
    functionDepth: 5
    functionLinenumber: 951
    functionLinenumberEnd: 1100
    functionName: mozilla::pkix::CheckIssuerIndependentProperties
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 0
    functionsReached:
    - CheckValidityIsAcceptable
    - GetKeyUsage
    - mozilla::pkix::CheckSubjectPublicKeyInfo
    - GetVersion
    - GetInhibitAnyPolicy
    - GetValidity
    - GetDER
    - GetSignature
    - GetIssuer
    - GetCertificatePolicies
    - GetCertTrust
    - mozilla::pkix::CheckSignatureAlgorithm
    - GetBasicConstraints
    - mozilla::pkix::ParseValidity
    - GetExtKeyUsage
    - mozilla::pkix::CheckValidity
    - mozilla::pkix::CheckKeyUsage
    - mozilla::pkix::CheckCertificatePolicies
    - mozilla::pkix::CheckIssuer
    - mozilla::pkix::CheckExtendedKeyUsage
    - mozilla::pkix::CheckBasicConstraints
    - GetSubjectPublicKeyInfo
    - GetSignedData
    linkageType: ''
    returnType: Result
    signature: "Result CheckIssuerIndependentProperties(TrustDomain& trustDomain,\n
      \                                const BackCert& cert,\n                                 Time
      time,\n                                 KeyUsage requiredKeyUsageIfPresent,\n
      \                                KeyPurposeId requiredEKUIfPresent,\n                                 const
      CertPolicyId& requiredPolicy,\n                                 unsigned int
      subCACount,\n                                 /*out*/ TrustLevel& trustLevel)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::SignatureAlgorithmIdentifierValue
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:46,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:51,1
    - Dst: mozilla::pkix::der::SignatureAlgorithmIdentifierValue
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:60,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:66,1
    - Dst: CheckSignatureDigestAlgorithm
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:95,1
    - Dst: signature::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:110,1
    - Dst: CheckRSAPublicKeyModulusSizeInBits
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:111,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 5
    argNames:
    - ' trustDomain'
    - endEntityOrCA
    - notBefore
    - ' signedData'
    - signatureValue
    argTypes:
    - TrustDomain
    - EndEntityOrCA
    - Time
    - der::SignedDataWithSignature
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 125
    functionName: mozilla::pkix::CheckSignatureAlgorithm
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 1
    functionsReached:
    - signature::GetLength
    - mozilla::pkix::der::End
    - mozilla::pkix::der::SignatureAlgorithmIdentifierValue
    - CheckRSAPublicKeyModulusSizeInBits
    - CheckSignatureDigestAlgorithm
    linkageType: ''
    returnType: Result
    signature: "Result CheckSignatureAlgorithm(TrustDomain& trustDomain,\n                        EndEntityOrCA
      endEntityOrCA,\n                        Time notBefore,\n                        const
      der::SignedDataWithSignature& signedData,\n                        Input signatureValue)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:135,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - encodedIssuer
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 129
    functionDepth: 3
    functionLinenumber: 129
    functionLinenumberEnd: 146
    functionName: mozilla::pkix::CheckIssuer
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 1
    functionsReached:
    - Reader::AtEnd
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    linkageType: ''
    returnType: Result
    signature: Result CheckIssuer(Input encodedIssuer)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::TimeChoice
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:157,1
    - Dst: mozilla::pkix::der::TimeChoice
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:162,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:166,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - encodedValidity
    - notBeforeOut
    - notAfterOut
    argTypes:
    - Input
    - Time*
    - Time*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 182
    functionName: mozilla::pkix::ParseValidity
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 5
    functionsReached:
    - mozilla::pkix::der::End
    - mozilla::pkix::der::TimeChoice
    linkageType: ''
    returnType: Result
    signature: "Result ParseValidity(Input encodedValidity,\n              /*optional
      out*/ Time* notBeforeOut,\n              /*optional out*/ Time* notAfterOut)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - time
    - notBefore
    - notAfter
    argTypes:
    - Time
    - Time
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 196
    functionName: mozilla::pkix::CheckValidity
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: Result CheckValidity(Time time, Time notBefore, Time notAfter)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:218,1
    - Dst: mozilla::pkix::der::BitStringWithNoUnusedBits
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:222,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:226,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:234,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:251,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:258,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:286,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:289,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:292,1
    - Dst: CheckECDSACurveIsAcceptable
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:299,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:307,1
    - Dst: Reader::SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:318,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:322,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:329,1
    - Dst: mozilla::pkix::der::ExpectTagAndEmptyValue
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:332,1
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:340,1
    - Dst: mozilla::pkix::der::PositiveInteger
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:345,1
    - Dst: CheckRSAPublicKeyModulusSizeInBits
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:350,1
    - Dst: mozilla::pkix::der::PositiveInteger
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:359,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:368,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:372,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 84
    argCount: 3
    argNames:
    - ' input'
    - ' trustDomain'
    - endEntityOrCA
    argTypes:
    - Reader
    - TrustDomain
    - EndEntityOrCA
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 200
    functionDepth: 3
    functionLinenumber: 200
    functionLinenumberEnd: 378
    functionName: mozilla::pkix::CheckSubjectPublicKeyInfoContents
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 1
    functionsReached:
    - mozilla::pkix::der::End
    - mozilla::pkix::der::ExpectTagAndGetValue
    - mozilla::pkix::der::BitStringWithNoUnusedBits
    - Reader::MatchRest
    - Input::GetLength
    - CheckRSAPublicKeyModulusSizeInBits
    - Reader::Read
    - Reader::SkipToEnd
    - mozilla::pkix::der::ExpectTagAndEmptyValue
    - mozilla::pkix::der::Nested
    - mozilla::pkix::der::PositiveInteger
    - CheckECDSACurveIsAcceptable
    linkageType: ''
    returnType: Result
    signature: "Result CheckSubjectPublicKeyInfoContents(Reader& input, TrustDomain&
      trustDomain,\n                                  EndEntityOrCA endEntityOrCA)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:385,1
    - Dst: mozilla::pkix::CheckSubjectPublicKeyInfoContents
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:386,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:391,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - subjectPublicKeyInfo
    - ' trustDomain'
    - endEntityOrCA
    argTypes:
    - Input
    - TrustDomain
    - EndEntityOrCA
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 380
    functionDepth: 4
    functionLinenumber: 380
    functionLinenumberEnd: 392
    functionName: mozilla::pkix::CheckSubjectPublicKeyInfo
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 1
    functionsReached:
    - mozilla::pkix::CheckSubjectPublicKeyInfoContents
    - mozilla::pkix::der::Nested
    - mozilla::pkix::der::End
    linkageType: ''
    returnType: Result
    signature: "Result CheckSubjectPublicKeyInfo(Input subjectPublicKeyInfo, TrustDomain&
      trustDomain,\n                          EndEntityOrCA endEntityOrCA)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:400,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - keyUsage
    argTypes:
    - KeyUsage
    assertStmts:
    - condition: (keyUsage != KeyUsage::noParticularKeyUsageRequired)
      pos:
        line_end: 399
        line_start: 399
        source_file: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    constantsTouched: []
    func_position:
      end: 402
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 402
    functionName: mozilla::pkix::KeyUsageToBitMask
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 1
    functionsReached:
    - assert
    - static_cast<uint8_t>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t KeyUsageToBitMask(KeyUsage keyUsage)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:425,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:430,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:438,1
    - Dst: mozilla::pkix::KeyUsageToBitMask
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:480,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:499,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:500,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:506,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 3
    argNames:
    - endEntityOrCA
    - encodedKeyUsage
    - requiredKeyUsageIfPresent
    argTypes:
    - EndEntityOrCA
    - Input*
    - KeyUsage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 404
    functionDepth: 3
    functionLinenumber: 404
    functionLinenumberEnd: 512
    functionName: mozilla::pkix::CheckKeyUsage
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 1
    functionsReached:
    - mozilla::pkix::KeyUsageToBitMask
    - Reader::Read
    - Reader::AtEnd
    - static_cast<uint8_t>
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    linkageType: ''
    returnType: Result
    signature: "Result CheckKeyUsage(EndEntityOrCA endEntityOrCA, const Input* encodedKeyUsage,\n
      \             KeyUsage requiredKeyUsageIfPresent)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::equal
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:535,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 536
    functionName: mozilla::pkix::CertPolicyId::IsAnyPolicy
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 0
    functionsReached:
    - std::equal
    linkageType: ''
    returnType: bool
    signature: bool CertPolicyId::IsAnyPolicy() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::equal
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:542,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - CertPolicyId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 543
    functionName: CertPolicyId::operator==(const CertPolicyId& other) const
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 0
    functionsReached:
    - std::equal
    linkageType: ''
    returnType: bool
    signature: bool CertPolicyId::operator==(const CertPolicyId& other) const
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: IsAnyPolicy
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:558,1
    - Dst: Input::Init
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:579,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:587,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:592,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:602,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:609,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:615,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:618,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:628,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 44
    argCount: 5
    argNames:
    - endEntityOrCA
    - encodedCertificatePolicies
    - encodedInhibitAnyPolicy
    - trustLevel
    - ' requiredPolicy'
    argTypes:
    - EndEntityOrCA
    - Input*
    - Input*
    - TrustLevel
    - CertPolicyId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 546
    functionDepth: 2
    functionLinenumber: 546
    functionLinenumberEnd: 636
    functionName: mozilla::pkix::CheckCertificatePolicies
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 1
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndGetValue
    - Reader::MatchRest
    - IsAnyPolicy
    - Reader::AtEnd
    - Input::Init
    linkageType: ''
    returnType: Result
    signature: "Result CheckCertificatePolicies(EndEntityOrCA endEntityOrCA,\n                         const
      Input* encodedCertificatePolicies,\n                         const Input* encodedInhibitAnyPolicy,\n
      \                        TrustLevel trustLevel,\n                         const
      CertPolicyId& requiredPolicy)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:656,1
    - Dst: mozilla::pkix::der::OptionalBoolean
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:658,1
    - Dst: mozilla::pkix::der::OptionalInteger
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:666,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:671,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:711,1
    - Dst: static_cast<long>
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:719,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 5
    argNames:
    - endEntityOrCA
    - encodedBasicConstraints
    - version
    - trustLevel
    - subCACount
    argTypes:
    - EndEntityOrCA
    - Input*
    - der::Version
    - TrustLevel
    - unsigned int
    assertStmts:
    - condition: (endEntityOrCA == EndEntityOrCA::MustBeCA)
      pos:
        line_end: 710
        line_start: 710
        source_file: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    constantsTouched: []
    func_position:
      end: 724
      start: 645
    functionDepth: 4
    functionLinenumber: 645
    functionLinenumberEnd: 724
    functionName: mozilla::pkix::CheckBasicConstraints
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 1
    functionsReached:
    - mozilla::pkix::der::End
    - mozilla::pkix::der::OptionalInteger
    - static_cast<long>
    - assert
    - mozilla::pkix::der::Nested
    - mozilla::pkix::der::OptionalBoolean
    linkageType: ''
    returnType: Result
    signature: "Result CheckBasicConstraints(EndEntityOrCA endEntityOrCA,\n                      const
      Input* encodedBasicConstraints,\n                      const der::Version version,
      TrustLevel trustLevel,\n                      unsigned int subCACount)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:763,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:771,1
    - Dst: NetscapeStepUpMatchesServerAuth
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:772,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:782,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:786,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:790,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:794,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:798,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:808,1
    - Dst: SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:812,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 7
    argNames:
    - ' value'
    - requiredEKU
    - endEntityOrCA
    - ' trustDomain'
    - notBefore
    - ' found'
    - ' foundOCSPSigning'
    argTypes:
    - Reader
    - KeyPurposeId
    - EndEntityOrCA
    - TrustDomain
    - Time
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 728
    functionDepth: 1
    functionLinenumber: 728
    functionLinenumberEnd: 815
    functionName: mozilla::pkix::MatchEKU
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 1
    functionsReached:
    - SkipToEnd
    - MatchRest
    - mozilla::pkix::NotReached
    - NetscapeStepUpMatchesServerAuth
    linkageType: ''
    returnType: Result
    signature: "Result MatchEKU(Reader& value, KeyPurposeId requiredEKU,\n         EndEntityOrCA
      endEntityOrCA, TrustDomain& trustDomain,\n         Time notBefore, /*in/out*/
      bool& found,\n         /*in/out*/ bool& foundOCSPSigning)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::NestedOf
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:834,1
    - Dst: mozilla::pkix::MatchEKU
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:836,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:842,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 5
    argNames:
    - endEntityOrCA
    - encodedExtendedKeyUsage
    - requiredEKU
    - ' trustDomain'
    - notBefore
    argTypes:
    - EndEntityOrCA
    - Input*
    - KeyPurposeId
    - TrustDomain
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 817
    functionDepth: 4
    functionLinenumber: 817
    functionLinenumberEnd: 886
    functionName: mozilla::pkix::CheckExtendedKeyUsage
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 1
    functionsReached:
    - mozilla::pkix::MatchEKU
    - mozilla::pkix::der::End
    - mozilla::pkix::der::NestedOf
    linkageType: ''
    returnType: Result
    signature: "Result CheckExtendedKeyUsage(EndEntityOrCA endEntityOrCA,\n                      const
      Input* encodedExtendedKeyUsage,\n                      KeyPurposeId requiredEKU,
      TrustDomain& trustDomain,\n                      Time notBefore)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetRequiredTLSFeatures
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:891,1
    - Dst: GetRequiredTLSFeatures
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:896,1
    - Dst: Input*::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:897,1
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:899,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - ' subject'
    - ' potentialIssuer'
    argTypes:
    - BackCert
    - BackCert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 888
    functionDepth: 1
    functionLinenumber: 888
    functionLinenumberEnd: 904
    functionName: mozilla::pkix::CheckTLSFeatures
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 0
    functionsReached:
    - Input*::GetLength
    - mozilla::pkix::InputsAreEqual
    - GetRequiredTLSFeatures
    linkageType: ''
    returnType: Result
    signature: Result CheckTLSFeatures(const BackCert& subject, BackCert& potentialIssuer)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::NestedOf
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:919,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:921,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:934,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - requiredTLSFeatures
    - stapledOCSPResponse
    argTypes:
    - Input*
    - Input*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 906
    functionDepth: 4
    functionLinenumber: 906
    functionLinenumberEnd: 935
    functionName: mozilla::pkix::TLSFeaturesSatisfiedInternal
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 1
    functionsReached:
    - MatchRest
    - mozilla::pkix::der::End
    - mozilla::pkix::der::NestedOf
    linkageType: ''
    returnType: Result
    signature: "Result TLSFeaturesSatisfiedInternal(const Input* requiredTLSFeatures,\n
      \                            const Input* stapledOCSPResponse)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BackCert::Init
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:942,1
    - Dst: mozilla::pkix::TLSFeaturesSatisfiedInternal
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:947,1
    - Dst: BackCert::GetRequiredTLSFeatures
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:947,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' cert'
    - stapledOCSPResponse
    argTypes:
    - Input
    - Input*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 937
    functionDepth: 5
    functionLinenumber: 937
    functionLinenumberEnd: 949
    functionName: mozilla::pkix::CheckTLSFeaturesAreSatisfied
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 0
    functionsReached:
    - BackCert::GetRequiredTLSFeatures
    - BackCert::Init
    - mozilla::pkix::TLSFeaturesSatisfiedInternal
    linkageType: ''
    returnType: Result
    signature: "Result CheckTLSFeaturesAreSatisfied(Input& cert,\n                             const
      Input* stapledOCSPResponse)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: GetCertTrust
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:968,1
    - Dst: GetDER
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:968,1
    - Dst: mozilla::pkix::ParseValidity
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:980,1
    - Dst: GetValidity
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:980,1
    - Dst: mozilla::pkix::CheckSignatureAlgorithm
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:997,1
    - Dst: GetSignedData
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:998,1
    - Dst: GetSignature
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:998,1
    - Dst: mozilla::pkix::CheckSubjectPublicKeyInfo
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1018,1
    - Dst: GetSubjectPublicKeyInfo
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1018,1
    - Dst: mozilla::pkix::CheckIssuer
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1025,1
    - Dst: GetIssuer
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1025,1
    - Dst: mozilla::pkix::CheckKeyUsage
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1035,1
    - Dst: GetKeyUsage
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1035,1
    - Dst: mozilla::pkix::CheckCertificatePolicies
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1042,1
    - Dst: GetCertificatePolicies
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1042,1
    - Dst: GetInhibitAnyPolicy
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1043,1
    - Dst: mozilla::pkix::CheckBasicConstraints
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1061,1
    - Dst: GetBasicConstraints
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1061,1
    - Dst: GetVersion
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1062,1
    - Dst: mozilla::pkix::CheckExtendedKeyUsage
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1073,1
    - Dst: GetExtKeyUsage
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1073,1
    - Dst: mozilla::pkix::CheckValidity
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1088,1
    - Dst: CheckValidityIsAcceptable
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1093,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 57
    argCount: 8
    argNames:
    - ' trustDomain'
    - ' cert'
    - time
    - requiredKeyUsageIfPresent
    - requiredEKUIfPresent
    - ' requiredPolicy'
    - subCACount
    - ' trustLevel'
    argTypes:
    - TrustDomain
    - BackCert
    - Time
    - KeyUsage
    - KeyPurposeId
    - CertPolicyId
    - unsigned int
    - TrustLevel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 951
    functionDepth: 5
    functionLinenumber: 951
    functionLinenumberEnd: 1100
    functionName: mozilla::pkix::CheckIssuerIndependentProperties
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 0
    functionsReached:
    - CheckValidityIsAcceptable
    - GetKeyUsage
    - mozilla::pkix::CheckSubjectPublicKeyInfo
    - GetVersion
    - GetInhibitAnyPolicy
    - GetValidity
    - GetDER
    - GetSignature
    - GetIssuer
    - GetCertificatePolicies
    - GetCertTrust
    - mozilla::pkix::CheckSignatureAlgorithm
    - GetBasicConstraints
    - mozilla::pkix::ParseValidity
    - GetExtKeyUsage
    - mozilla::pkix::CheckValidity
    - mozilla::pkix::CheckKeyUsage
    - mozilla::pkix::CheckCertificatePolicies
    - mozilla::pkix::CheckIssuer
    - mozilla::pkix::CheckExtendedKeyUsage
    - mozilla::pkix::CheckBasicConstraints
    - GetSubjectPublicKeyInfo
    - GetSignedData
    linkageType: ''
    returnType: Result
    signature: "Result CheckIssuerIndependentProperties(TrustDomain& trustDomain,\n
      \                                const BackCert& cert,\n                                 Time
      time,\n                                 KeyUsage requiredKeyUsageIfPresent,\n
      \                                KeyPurposeId requiredEKUIfPresent,\n                                 const
      CertPolicyId& requiredPolicy,\n                                 unsigned int
      subCACount,\n                                 /*out*/ TrustLevel& trustLevel)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::SignatureAlgorithmIdentifierValue
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:46,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:51,1
    - Dst: mozilla::pkix::der::SignatureAlgorithmIdentifierValue
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:60,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:66,1
    - Dst: CheckSignatureDigestAlgorithm
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:95,1
    - Dst: signature::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:110,1
    - Dst: CheckRSAPublicKeyModulusSizeInBits
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:111,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 5
    argNames:
    - ' trustDomain'
    - endEntityOrCA
    - notBefore
    - ' signedData'
    - signatureValue
    argTypes:
    - TrustDomain
    - EndEntityOrCA
    - Time
    - der::SignedDataWithSignature
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 125
    functionName: mozilla::pkix::CheckSignatureAlgorithm
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 2
    functionsReached:
    - signature::GetLength
    - mozilla::pkix::der::End
    - mozilla::pkix::der::SignatureAlgorithmIdentifierValue
    - CheckRSAPublicKeyModulusSizeInBits
    - CheckSignatureDigestAlgorithm
    linkageType: ''
    returnType: Result
    signature: "Result CheckSignatureAlgorithm(TrustDomain& trustDomain,\n                        EndEntityOrCA
      endEntityOrCA,\n                        Time notBefore,\n                        const
      der::SignedDataWithSignature& signedData,\n                        Input signatureValue)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:135,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - encodedIssuer
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 129
    functionDepth: 3
    functionLinenumber: 129
    functionLinenumberEnd: 146
    functionName: mozilla::pkix::CheckIssuer
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 2
    functionsReached:
    - Reader::AtEnd
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    linkageType: ''
    returnType: Result
    signature: Result CheckIssuer(Input encodedIssuer)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::TimeChoice
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:157,1
    - Dst: mozilla::pkix::der::TimeChoice
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:162,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:166,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - encodedValidity
    - notBeforeOut
    - notAfterOut
    argTypes:
    - Input
    - Time*
    - Time*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 182
    functionName: mozilla::pkix::ParseValidity
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 6
    functionsReached:
    - mozilla::pkix::der::End
    - mozilla::pkix::der::TimeChoice
    linkageType: ''
    returnType: Result
    signature: "Result ParseValidity(Input encodedValidity,\n              /*optional
      out*/ Time* notBeforeOut,\n              /*optional out*/ Time* notAfterOut)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - time
    - notBefore
    - notAfter
    argTypes:
    - Time
    - Time
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 196
    functionName: mozilla::pkix::CheckValidity
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: Result CheckValidity(Time time, Time notBefore, Time notAfter)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:218,1
    - Dst: mozilla::pkix::der::BitStringWithNoUnusedBits
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:222,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:226,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:234,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:251,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:258,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:286,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:289,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:292,1
    - Dst: CheckECDSACurveIsAcceptable
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:299,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:307,1
    - Dst: Reader::SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:318,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:322,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:329,1
    - Dst: mozilla::pkix::der::ExpectTagAndEmptyValue
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:332,1
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:340,1
    - Dst: mozilla::pkix::der::PositiveInteger
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:345,1
    - Dst: CheckRSAPublicKeyModulusSizeInBits
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:350,1
    - Dst: mozilla::pkix::der::PositiveInteger
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:359,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:368,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:372,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 84
    argCount: 3
    argNames:
    - ' input'
    - ' trustDomain'
    - endEntityOrCA
    argTypes:
    - Reader
    - TrustDomain
    - EndEntityOrCA
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 200
    functionDepth: 3
    functionLinenumber: 200
    functionLinenumberEnd: 378
    functionName: mozilla::pkix::CheckSubjectPublicKeyInfoContents
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 2
    functionsReached:
    - mozilla::pkix::der::End
    - mozilla::pkix::der::ExpectTagAndGetValue
    - mozilla::pkix::der::BitStringWithNoUnusedBits
    - Reader::MatchRest
    - Input::GetLength
    - CheckRSAPublicKeyModulusSizeInBits
    - Reader::Read
    - Reader::SkipToEnd
    - mozilla::pkix::der::ExpectTagAndEmptyValue
    - mozilla::pkix::der::Nested
    - mozilla::pkix::der::PositiveInteger
    - CheckECDSACurveIsAcceptable
    linkageType: ''
    returnType: Result
    signature: "Result CheckSubjectPublicKeyInfoContents(Reader& input, TrustDomain&
      trustDomain,\n                                  EndEntityOrCA endEntityOrCA)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:385,1
    - Dst: mozilla::pkix::CheckSubjectPublicKeyInfoContents
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:386,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:391,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - subjectPublicKeyInfo
    - ' trustDomain'
    - endEntityOrCA
    argTypes:
    - Input
    - TrustDomain
    - EndEntityOrCA
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 380
    functionDepth: 4
    functionLinenumber: 380
    functionLinenumberEnd: 392
    functionName: mozilla::pkix::CheckSubjectPublicKeyInfo
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 2
    functionsReached:
    - mozilla::pkix::CheckSubjectPublicKeyInfoContents
    - mozilla::pkix::der::Nested
    - mozilla::pkix::der::End
    linkageType: ''
    returnType: Result
    signature: "Result CheckSubjectPublicKeyInfo(Input subjectPublicKeyInfo, TrustDomain&
      trustDomain,\n                          EndEntityOrCA endEntityOrCA)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:400,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - keyUsage
    argTypes:
    - KeyUsage
    assertStmts:
    - condition: (keyUsage != KeyUsage::noParticularKeyUsageRequired)
      pos:
        line_end: 399
        line_start: 399
        source_file: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    constantsTouched: []
    func_position:
      end: 402
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 402
    functionName: mozilla::pkix::KeyUsageToBitMask
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 2
    functionsReached:
    - assert
    - static_cast<uint8_t>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t KeyUsageToBitMask(KeyUsage keyUsage)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:425,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:430,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:438,1
    - Dst: mozilla::pkix::KeyUsageToBitMask
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:480,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:499,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:500,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:506,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 3
    argNames:
    - endEntityOrCA
    - encodedKeyUsage
    - requiredKeyUsageIfPresent
    argTypes:
    - EndEntityOrCA
    - Input*
    - KeyUsage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 404
    functionDepth: 3
    functionLinenumber: 404
    functionLinenumberEnd: 512
    functionName: mozilla::pkix::CheckKeyUsage
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 2
    functionsReached:
    - mozilla::pkix::KeyUsageToBitMask
    - Reader::Read
    - Reader::AtEnd
    - static_cast<uint8_t>
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    linkageType: ''
    returnType: Result
    signature: "Result CheckKeyUsage(EndEntityOrCA endEntityOrCA, const Input* encodedKeyUsage,\n
      \             KeyUsage requiredKeyUsageIfPresent)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::equal
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:535,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 536
    functionName: mozilla::pkix::CertPolicyId::IsAnyPolicy
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 0
    functionsReached:
    - std::equal
    linkageType: ''
    returnType: bool
    signature: bool CertPolicyId::IsAnyPolicy() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::equal
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:542,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - CertPolicyId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 543
    functionName: CertPolicyId::operator==(const CertPolicyId& other) const
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 0
    functionsReached:
    - std::equal
    linkageType: ''
    returnType: bool
    signature: bool CertPolicyId::operator==(const CertPolicyId& other) const
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: IsAnyPolicy
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:558,1
    - Dst: Input::Init
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:579,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:587,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:592,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:602,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:609,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:615,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:618,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:628,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 44
    argCount: 5
    argNames:
    - endEntityOrCA
    - encodedCertificatePolicies
    - encodedInhibitAnyPolicy
    - trustLevel
    - ' requiredPolicy'
    argTypes:
    - EndEntityOrCA
    - Input*
    - Input*
    - TrustLevel
    - CertPolicyId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 546
    functionDepth: 2
    functionLinenumber: 546
    functionLinenumberEnd: 636
    functionName: mozilla::pkix::CheckCertificatePolicies
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 2
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndGetValue
    - Reader::MatchRest
    - IsAnyPolicy
    - Reader::AtEnd
    - Input::Init
    linkageType: ''
    returnType: Result
    signature: "Result CheckCertificatePolicies(EndEntityOrCA endEntityOrCA,\n                         const
      Input* encodedCertificatePolicies,\n                         const Input* encodedInhibitAnyPolicy,\n
      \                        TrustLevel trustLevel,\n                         const
      CertPolicyId& requiredPolicy)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:656,1
    - Dst: mozilla::pkix::der::OptionalBoolean
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:658,1
    - Dst: mozilla::pkix::der::OptionalInteger
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:666,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:671,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:711,1
    - Dst: static_cast<long>
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:719,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 5
    argNames:
    - endEntityOrCA
    - encodedBasicConstraints
    - version
    - trustLevel
    - subCACount
    argTypes:
    - EndEntityOrCA
    - Input*
    - der::Version
    - TrustLevel
    - unsigned int
    assertStmts:
    - condition: (endEntityOrCA == EndEntityOrCA::MustBeCA)
      pos:
        line_end: 710
        line_start: 710
        source_file: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    constantsTouched: []
    func_position:
      end: 724
      start: 645
    functionDepth: 4
    functionLinenumber: 645
    functionLinenumberEnd: 724
    functionName: mozilla::pkix::CheckBasicConstraints
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 2
    functionsReached:
    - mozilla::pkix::der::End
    - mozilla::pkix::der::OptionalInteger
    - static_cast<long>
    - assert
    - mozilla::pkix::der::Nested
    - mozilla::pkix::der::OptionalBoolean
    linkageType: ''
    returnType: Result
    signature: "Result CheckBasicConstraints(EndEntityOrCA endEntityOrCA,\n                      const
      Input* encodedBasicConstraints,\n                      const der::Version version,
      TrustLevel trustLevel,\n                      unsigned int subCACount)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:763,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:771,1
    - Dst: NetscapeStepUpMatchesServerAuth
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:772,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:782,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:786,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:790,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:794,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:798,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:808,1
    - Dst: SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:812,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 7
    argNames:
    - ' value'
    - requiredEKU
    - endEntityOrCA
    - ' trustDomain'
    - notBefore
    - ' found'
    - ' foundOCSPSigning'
    argTypes:
    - Reader
    - KeyPurposeId
    - EndEntityOrCA
    - TrustDomain
    - Time
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 728
    functionDepth: 1
    functionLinenumber: 728
    functionLinenumberEnd: 815
    functionName: mozilla::pkix::MatchEKU
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 2
    functionsReached:
    - SkipToEnd
    - MatchRest
    - mozilla::pkix::NotReached
    - NetscapeStepUpMatchesServerAuth
    linkageType: ''
    returnType: Result
    signature: "Result MatchEKU(Reader& value, KeyPurposeId requiredEKU,\n         EndEntityOrCA
      endEntityOrCA, TrustDomain& trustDomain,\n         Time notBefore, /*in/out*/
      bool& found,\n         /*in/out*/ bool& foundOCSPSigning)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::NestedOf
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:834,1
    - Dst: mozilla::pkix::MatchEKU
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:836,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:842,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 5
    argNames:
    - endEntityOrCA
    - encodedExtendedKeyUsage
    - requiredEKU
    - ' trustDomain'
    - notBefore
    argTypes:
    - EndEntityOrCA
    - Input*
    - KeyPurposeId
    - TrustDomain
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 817
    functionDepth: 4
    functionLinenumber: 817
    functionLinenumberEnd: 886
    functionName: mozilla::pkix::CheckExtendedKeyUsage
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 2
    functionsReached:
    - mozilla::pkix::MatchEKU
    - mozilla::pkix::der::End
    - mozilla::pkix::der::NestedOf
    linkageType: ''
    returnType: Result
    signature: "Result CheckExtendedKeyUsage(EndEntityOrCA endEntityOrCA,\n                      const
      Input* encodedExtendedKeyUsage,\n                      KeyPurposeId requiredEKU,
      TrustDomain& trustDomain,\n                      Time notBefore)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetRequiredTLSFeatures
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:891,1
    - Dst: GetRequiredTLSFeatures
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:896,1
    - Dst: Input*::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:897,1
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:899,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - ' subject'
    - ' potentialIssuer'
    argTypes:
    - BackCert
    - BackCert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 888
    functionDepth: 1
    functionLinenumber: 888
    functionLinenumberEnd: 904
    functionName: mozilla::pkix::CheckTLSFeatures
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 0
    functionsReached:
    - Input*::GetLength
    - mozilla::pkix::InputsAreEqual
    - GetRequiredTLSFeatures
    linkageType: ''
    returnType: Result
    signature: Result CheckTLSFeatures(const BackCert& subject, BackCert& potentialIssuer)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::NestedOf
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:919,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:921,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:934,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - requiredTLSFeatures
    - stapledOCSPResponse
    argTypes:
    - Input*
    - Input*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 906
    functionDepth: 4
    functionLinenumber: 906
    functionLinenumberEnd: 935
    functionName: mozilla::pkix::TLSFeaturesSatisfiedInternal
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 2
    functionsReached:
    - MatchRest
    - mozilla::pkix::der::End
    - mozilla::pkix::der::NestedOf
    linkageType: ''
    returnType: Result
    signature: "Result TLSFeaturesSatisfiedInternal(const Input* requiredTLSFeatures,\n
      \                            const Input* stapledOCSPResponse)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BackCert::Init
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:942,1
    - Dst: mozilla::pkix::TLSFeaturesSatisfiedInternal
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:947,1
    - Dst: BackCert::GetRequiredTLSFeatures
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:947,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' cert'
    - stapledOCSPResponse
    argTypes:
    - Input
    - Input*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 937
    functionDepth: 5
    functionLinenumber: 937
    functionLinenumberEnd: 949
    functionName: mozilla::pkix::CheckTLSFeaturesAreSatisfied
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 0
    functionsReached:
    - BackCert::GetRequiredTLSFeatures
    - BackCert::Init
    - mozilla::pkix::TLSFeaturesSatisfiedInternal
    linkageType: ''
    returnType: Result
    signature: "Result CheckTLSFeaturesAreSatisfied(Input& cert,\n                             const
      Input* stapledOCSPResponse)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: GetCertTrust
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:968,1
    - Dst: GetDER
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:968,1
    - Dst: mozilla::pkix::ParseValidity
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:980,1
    - Dst: GetValidity
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:980,1
    - Dst: mozilla::pkix::CheckSignatureAlgorithm
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:997,1
    - Dst: GetSignedData
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:998,1
    - Dst: GetSignature
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:998,1
    - Dst: mozilla::pkix::CheckSubjectPublicKeyInfo
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1018,1
    - Dst: GetSubjectPublicKeyInfo
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1018,1
    - Dst: mozilla::pkix::CheckIssuer
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1025,1
    - Dst: GetIssuer
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1025,1
    - Dst: mozilla::pkix::CheckKeyUsage
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1035,1
    - Dst: GetKeyUsage
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1035,1
    - Dst: mozilla::pkix::CheckCertificatePolicies
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1042,1
    - Dst: GetCertificatePolicies
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1042,1
    - Dst: GetInhibitAnyPolicy
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1043,1
    - Dst: mozilla::pkix::CheckBasicConstraints
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1061,1
    - Dst: GetBasicConstraints
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1061,1
    - Dst: GetVersion
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1062,1
    - Dst: mozilla::pkix::CheckExtendedKeyUsage
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1073,1
    - Dst: GetExtKeyUsage
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1073,1
    - Dst: mozilla::pkix::CheckValidity
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1088,1
    - Dst: CheckValidityIsAcceptable
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1093,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 57
    argCount: 8
    argNames:
    - ' trustDomain'
    - ' cert'
    - time
    - requiredKeyUsageIfPresent
    - requiredEKUIfPresent
    - ' requiredPolicy'
    - subCACount
    - ' trustLevel'
    argTypes:
    - TrustDomain
    - BackCert
    - Time
    - KeyUsage
    - KeyPurposeId
    - CertPolicyId
    - unsigned int
    - TrustLevel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 951
    functionDepth: 5
    functionLinenumber: 951
    functionLinenumberEnd: 1100
    functionName: mozilla::pkix::CheckIssuerIndependentProperties
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 0
    functionsReached:
    - CheckValidityIsAcceptable
    - GetKeyUsage
    - mozilla::pkix::CheckSubjectPublicKeyInfo
    - GetVersion
    - GetInhibitAnyPolicy
    - GetValidity
    - GetDER
    - GetSignature
    - GetIssuer
    - GetCertificatePolicies
    - GetCertTrust
    - mozilla::pkix::CheckSignatureAlgorithm
    - GetBasicConstraints
    - mozilla::pkix::ParseValidity
    - GetExtKeyUsage
    - mozilla::pkix::CheckValidity
    - mozilla::pkix::CheckKeyUsage
    - mozilla::pkix::CheckCertificatePolicies
    - mozilla::pkix::CheckIssuer
    - mozilla::pkix::CheckExtendedKeyUsage
    - mozilla::pkix::CheckBasicConstraints
    - GetSubjectPublicKeyInfo
    - GetSignedData
    linkageType: ''
    returnType: Result
    signature: "Result CheckIssuerIndependentProperties(TrustDomain& trustDomain,\n
      \                                const BackCert& cert,\n                                 Time
      time,\n                                 KeyUsage requiredKeyUsageIfPresent,\n
      \                                KeyPurposeId requiredEKUIfPresent,\n                                 const
      CertPolicyId& requiredPolicy,\n                                 unsigned int
      subCACount,\n                                 /*out*/ TrustLevel& trustLevel)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::SignatureAlgorithmIdentifierValue
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:46,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:51,1
    - Dst: mozilla::pkix::der::SignatureAlgorithmIdentifierValue
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:60,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:66,1
    - Dst: CheckSignatureDigestAlgorithm
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:95,1
    - Dst: signature::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:110,1
    - Dst: CheckRSAPublicKeyModulusSizeInBits
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:111,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 5
    argNames:
    - ' trustDomain'
    - endEntityOrCA
    - notBefore
    - ' signedData'
    - signatureValue
    argTypes:
    - TrustDomain
    - EndEntityOrCA
    - Time
    - der::SignedDataWithSignature
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 125
    functionName: mozilla::pkix::CheckSignatureAlgorithm
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 3
    functionsReached:
    - signature::GetLength
    - mozilla::pkix::der::End
    - mozilla::pkix::der::SignatureAlgorithmIdentifierValue
    - CheckRSAPublicKeyModulusSizeInBits
    - CheckSignatureDigestAlgorithm
    linkageType: ''
    returnType: Result
    signature: "Result CheckSignatureAlgorithm(TrustDomain& trustDomain,\n                        EndEntityOrCA
      endEntityOrCA,\n                        Time notBefore,\n                        const
      der::SignedDataWithSignature& signedData,\n                        Input signatureValue)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:135,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - encodedIssuer
    argTypes:
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 129
    functionDepth: 3
    functionLinenumber: 129
    functionLinenumberEnd: 146
    functionName: mozilla::pkix::CheckIssuer
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 3
    functionsReached:
    - Reader::AtEnd
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    linkageType: ''
    returnType: Result
    signature: Result CheckIssuer(Input encodedIssuer)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::TimeChoice
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:157,1
    - Dst: mozilla::pkix::der::TimeChoice
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:162,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:166,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - encodedValidity
    - notBeforeOut
    - notAfterOut
    argTypes:
    - Input
    - Time*
    - Time*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 182
    functionName: mozilla::pkix::ParseValidity
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 7
    functionsReached:
    - mozilla::pkix::der::End
    - mozilla::pkix::der::TimeChoice
    linkageType: ''
    returnType: Result
    signature: "Result ParseValidity(Input encodedValidity,\n              /*optional
      out*/ Time* notBeforeOut,\n              /*optional out*/ Time* notAfterOut)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - time
    - notBefore
    - notAfter
    argTypes:
    - Time
    - Time
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 196
    functionName: mozilla::pkix::CheckValidity
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: Result CheckValidity(Time time, Time notBefore, Time notAfter)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:218,1
    - Dst: mozilla::pkix::der::BitStringWithNoUnusedBits
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:222,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:226,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:234,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:251,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:258,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:286,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:289,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:292,1
    - Dst: CheckECDSACurveIsAcceptable
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:299,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:307,1
    - Dst: Reader::SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:318,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:322,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:329,1
    - Dst: mozilla::pkix::der::ExpectTagAndEmptyValue
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:332,1
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:340,1
    - Dst: mozilla::pkix::der::PositiveInteger
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:345,1
    - Dst: CheckRSAPublicKeyModulusSizeInBits
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:350,1
    - Dst: mozilla::pkix::der::PositiveInteger
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:359,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:368,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:372,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 84
    argCount: 3
    argNames:
    - ' input'
    - ' trustDomain'
    - endEntityOrCA
    argTypes:
    - Reader
    - TrustDomain
    - EndEntityOrCA
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 200
    functionDepth: 3
    functionLinenumber: 200
    functionLinenumberEnd: 378
    functionName: mozilla::pkix::CheckSubjectPublicKeyInfoContents
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 3
    functionsReached:
    - mozilla::pkix::der::End
    - mozilla::pkix::der::ExpectTagAndGetValue
    - mozilla::pkix::der::BitStringWithNoUnusedBits
    - Reader::MatchRest
    - Input::GetLength
    - CheckRSAPublicKeyModulusSizeInBits
    - Reader::Read
    - Reader::SkipToEnd
    - mozilla::pkix::der::ExpectTagAndEmptyValue
    - mozilla::pkix::der::Nested
    - mozilla::pkix::der::PositiveInteger
    - CheckECDSACurveIsAcceptable
    linkageType: ''
    returnType: Result
    signature: "Result CheckSubjectPublicKeyInfoContents(Reader& input, TrustDomain&
      trustDomain,\n                                  EndEntityOrCA endEntityOrCA)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:385,1
    - Dst: mozilla::pkix::CheckSubjectPublicKeyInfoContents
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:386,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:391,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - subjectPublicKeyInfo
    - ' trustDomain'
    - endEntityOrCA
    argTypes:
    - Input
    - TrustDomain
    - EndEntityOrCA
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 380
    functionDepth: 4
    functionLinenumber: 380
    functionLinenumberEnd: 392
    functionName: mozilla::pkix::CheckSubjectPublicKeyInfo
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 3
    functionsReached:
    - mozilla::pkix::CheckSubjectPublicKeyInfoContents
    - mozilla::pkix::der::Nested
    - mozilla::pkix::der::End
    linkageType: ''
    returnType: Result
    signature: "Result CheckSubjectPublicKeyInfo(Input subjectPublicKeyInfo, TrustDomain&
      trustDomain,\n                          EndEntityOrCA endEntityOrCA)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:400,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - keyUsage
    argTypes:
    - KeyUsage
    assertStmts:
    - condition: (keyUsage != KeyUsage::noParticularKeyUsageRequired)
      pos:
        line_end: 399
        line_start: 399
        source_file: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    constantsTouched: []
    func_position:
      end: 402
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 402
    functionName: mozilla::pkix::KeyUsageToBitMask
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 3
    functionsReached:
    - assert
    - static_cast<uint8_t>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t KeyUsageToBitMask(KeyUsage keyUsage)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:425,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:430,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:438,1
    - Dst: mozilla::pkix::KeyUsageToBitMask
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:480,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:499,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:500,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:506,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 3
    argNames:
    - endEntityOrCA
    - encodedKeyUsage
    - requiredKeyUsageIfPresent
    argTypes:
    - EndEntityOrCA
    - Input*
    - KeyUsage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 404
    functionDepth: 3
    functionLinenumber: 404
    functionLinenumberEnd: 512
    functionName: mozilla::pkix::CheckKeyUsage
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 3
    functionsReached:
    - mozilla::pkix::KeyUsageToBitMask
    - Reader::Read
    - Reader::AtEnd
    - static_cast<uint8_t>
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    linkageType: ''
    returnType: Result
    signature: "Result CheckKeyUsage(EndEntityOrCA endEntityOrCA, const Input* encodedKeyUsage,\n
      \             KeyUsage requiredKeyUsageIfPresent)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::equal
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:535,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 536
    functionName: mozilla::pkix::CertPolicyId::IsAnyPolicy
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 0
    functionsReached:
    - std::equal
    linkageType: ''
    returnType: bool
    signature: bool CertPolicyId::IsAnyPolicy() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::equal
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:542,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - CertPolicyId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 543
    functionName: CertPolicyId::operator==(const CertPolicyId& other) const
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 0
    functionsReached:
    - std::equal
    linkageType: ''
    returnType: bool
    signature: bool CertPolicyId::operator==(const CertPolicyId& other) const
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: IsAnyPolicy
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:558,1
    - Dst: Input::Init
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:579,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:587,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:592,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:602,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:609,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:615,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:618,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:628,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 44
    argCount: 5
    argNames:
    - endEntityOrCA
    - encodedCertificatePolicies
    - encodedInhibitAnyPolicy
    - trustLevel
    - ' requiredPolicy'
    argTypes:
    - EndEntityOrCA
    - Input*
    - Input*
    - TrustLevel
    - CertPolicyId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 546
    functionDepth: 2
    functionLinenumber: 546
    functionLinenumberEnd: 636
    functionName: mozilla::pkix::CheckCertificatePolicies
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 3
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndGetValue
    - Reader::MatchRest
    - IsAnyPolicy
    - Reader::AtEnd
    - Input::Init
    linkageType: ''
    returnType: Result
    signature: "Result CheckCertificatePolicies(EndEntityOrCA endEntityOrCA,\n                         const
      Input* encodedCertificatePolicies,\n                         const Input* encodedInhibitAnyPolicy,\n
      \                        TrustLevel trustLevel,\n                         const
      CertPolicyId& requiredPolicy)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:656,1
    - Dst: mozilla::pkix::der::OptionalBoolean
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:658,1
    - Dst: mozilla::pkix::der::OptionalInteger
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:666,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:671,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:711,1
    - Dst: static_cast<long>
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:719,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 5
    argNames:
    - endEntityOrCA
    - encodedBasicConstraints
    - version
    - trustLevel
    - subCACount
    argTypes:
    - EndEntityOrCA
    - Input*
    - der::Version
    - TrustLevel
    - unsigned int
    assertStmts:
    - condition: (endEntityOrCA == EndEntityOrCA::MustBeCA)
      pos:
        line_end: 710
        line_start: 710
        source_file: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    constantsTouched: []
    func_position:
      end: 724
      start: 645
    functionDepth: 4
    functionLinenumber: 645
    functionLinenumberEnd: 724
    functionName: mozilla::pkix::CheckBasicConstraints
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 3
    functionsReached:
    - mozilla::pkix::der::End
    - mozilla::pkix::der::OptionalInteger
    - static_cast<long>
    - assert
    - mozilla::pkix::der::Nested
    - mozilla::pkix::der::OptionalBoolean
    linkageType: ''
    returnType: Result
    signature: "Result CheckBasicConstraints(EndEntityOrCA endEntityOrCA,\n                      const
      Input* encodedBasicConstraints,\n                      const der::Version version,
      TrustLevel trustLevel,\n                      unsigned int subCACount)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:763,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:771,1
    - Dst: NetscapeStepUpMatchesServerAuth
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:772,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:782,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:786,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:790,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:794,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:798,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:808,1
    - Dst: SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:812,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 7
    argNames:
    - ' value'
    - requiredEKU
    - endEntityOrCA
    - ' trustDomain'
    - notBefore
    - ' found'
    - ' foundOCSPSigning'
    argTypes:
    - Reader
    - KeyPurposeId
    - EndEntityOrCA
    - TrustDomain
    - Time
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 728
    functionDepth: 1
    functionLinenumber: 728
    functionLinenumberEnd: 815
    functionName: mozilla::pkix::MatchEKU
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 3
    functionsReached:
    - SkipToEnd
    - MatchRest
    - mozilla::pkix::NotReached
    - NetscapeStepUpMatchesServerAuth
    linkageType: ''
    returnType: Result
    signature: "Result MatchEKU(Reader& value, KeyPurposeId requiredEKU,\n         EndEntityOrCA
      endEntityOrCA, TrustDomain& trustDomain,\n         Time notBefore, /*in/out*/
      bool& found,\n         /*in/out*/ bool& foundOCSPSigning)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::NestedOf
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:834,1
    - Dst: mozilla::pkix::MatchEKU
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:836,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:842,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 5
    argNames:
    - endEntityOrCA
    - encodedExtendedKeyUsage
    - requiredEKU
    - ' trustDomain'
    - notBefore
    argTypes:
    - EndEntityOrCA
    - Input*
    - KeyPurposeId
    - TrustDomain
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 817
    functionDepth: 4
    functionLinenumber: 817
    functionLinenumberEnd: 886
    functionName: mozilla::pkix::CheckExtendedKeyUsage
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 3
    functionsReached:
    - mozilla::pkix::MatchEKU
    - mozilla::pkix::der::End
    - mozilla::pkix::der::NestedOf
    linkageType: ''
    returnType: Result
    signature: "Result CheckExtendedKeyUsage(EndEntityOrCA endEntityOrCA,\n                      const
      Input* encodedExtendedKeyUsage,\n                      KeyPurposeId requiredEKU,
      TrustDomain& trustDomain,\n                      Time notBefore)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetRequiredTLSFeatures
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:891,1
    - Dst: GetRequiredTLSFeatures
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:896,1
    - Dst: Input*::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:897,1
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:899,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - ' subject'
    - ' potentialIssuer'
    argTypes:
    - BackCert
    - BackCert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 888
    functionDepth: 1
    functionLinenumber: 888
    functionLinenumberEnd: 904
    functionName: mozilla::pkix::CheckTLSFeatures
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 0
    functionsReached:
    - Input*::GetLength
    - mozilla::pkix::InputsAreEqual
    - GetRequiredTLSFeatures
    linkageType: ''
    returnType: Result
    signature: Result CheckTLSFeatures(const BackCert& subject, BackCert& potentialIssuer)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::NestedOf
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:919,1
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:921,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:934,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - requiredTLSFeatures
    - stapledOCSPResponse
    argTypes:
    - Input*
    - Input*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 906
    functionDepth: 4
    functionLinenumber: 906
    functionLinenumberEnd: 935
    functionName: mozilla::pkix::TLSFeaturesSatisfiedInternal
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 3
    functionsReached:
    - MatchRest
    - mozilla::pkix::der::End
    - mozilla::pkix::der::NestedOf
    linkageType: ''
    returnType: Result
    signature: "Result TLSFeaturesSatisfiedInternal(const Input* requiredTLSFeatures,\n
      \                            const Input* stapledOCSPResponse)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BackCert::Init
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:942,1
    - Dst: mozilla::pkix::TLSFeaturesSatisfiedInternal
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:947,1
    - Dst: BackCert::GetRequiredTLSFeatures
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:947,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' cert'
    - stapledOCSPResponse
    argTypes:
    - Input
    - Input*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 937
    functionDepth: 5
    functionLinenumber: 937
    functionLinenumberEnd: 949
    functionName: mozilla::pkix::CheckTLSFeaturesAreSatisfied
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 0
    functionsReached:
    - BackCert::GetRequiredTLSFeatures
    - BackCert::Init
    - mozilla::pkix::TLSFeaturesSatisfiedInternal
    linkageType: ''
    returnType: Result
    signature: "Result CheckTLSFeaturesAreSatisfied(Input& cert,\n                             const
      Input* stapledOCSPResponse)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: GetCertTrust
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:968,1
    - Dst: GetDER
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:968,1
    - Dst: mozilla::pkix::ParseValidity
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:980,1
    - Dst: GetValidity
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:980,1
    - Dst: mozilla::pkix::CheckSignatureAlgorithm
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:997,1
    - Dst: GetSignedData
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:998,1
    - Dst: GetSignature
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:998,1
    - Dst: mozilla::pkix::CheckSubjectPublicKeyInfo
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1018,1
    - Dst: GetSubjectPublicKeyInfo
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1018,1
    - Dst: mozilla::pkix::CheckIssuer
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1025,1
    - Dst: GetIssuer
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1025,1
    - Dst: mozilla::pkix::CheckKeyUsage
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1035,1
    - Dst: GetKeyUsage
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1035,1
    - Dst: mozilla::pkix::CheckCertificatePolicies
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1042,1
    - Dst: GetCertificatePolicies
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1042,1
    - Dst: GetInhibitAnyPolicy
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1043,1
    - Dst: mozilla::pkix::CheckBasicConstraints
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1061,1
    - Dst: GetBasicConstraints
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1061,1
    - Dst: GetVersion
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1062,1
    - Dst: mozilla::pkix::CheckExtendedKeyUsage
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1073,1
    - Dst: GetExtKeyUsage
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1073,1
    - Dst: mozilla::pkix::CheckValidity
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1088,1
    - Dst: CheckValidityIsAcceptable
      Src: /src/nss/lib/mozpkix/lib/pkixcheck.cpp:1093,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 57
    argCount: 8
    argNames:
    - ' trustDomain'
    - ' cert'
    - time
    - requiredKeyUsageIfPresent
    - requiredEKUIfPresent
    - ' requiredPolicy'
    - subCACount
    - ' trustLevel'
    argTypes:
    - TrustDomain
    - BackCert
    - Time
    - KeyUsage
    - KeyPurposeId
    - CertPolicyId
    - unsigned int
    - TrustLevel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 951
    functionDepth: 5
    functionLinenumber: 951
    functionLinenumberEnd: 1100
    functionName: mozilla::pkix::CheckIssuerIndependentProperties
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixcheck.cpp
    functionUses: 0
    functionsReached:
    - CheckValidityIsAcceptable
    - GetKeyUsage
    - mozilla::pkix::CheckSubjectPublicKeyInfo
    - GetVersion
    - GetInhibitAnyPolicy
    - GetValidity
    - GetDER
    - GetSignature
    - GetIssuer
    - GetCertificatePolicies
    - GetCertTrust
    - mozilla::pkix::CheckSignatureAlgorithm
    - GetBasicConstraints
    - mozilla::pkix::ParseValidity
    - GetExtKeyUsage
    - mozilla::pkix::CheckValidity
    - mozilla::pkix::CheckKeyUsage
    - mozilla::pkix::CheckCertificatePolicies
    - mozilla::pkix::CheckIssuer
    - mozilla::pkix::CheckExtendedKeyUsage
    - mozilla::pkix::CheckBasicConstraints
    - GetSubjectPublicKeyInfo
    - GetSignedData
    linkageType: ''
    returnType: Result
    signature: "Result CheckIssuerIndependentProperties(TrustDomain& trustDomain,\n
      \                                const BackCert& cert,\n                                 Time
      time,\n                                 KeyUsage requiredKeyUsageIfPresent,\n
      \                                KeyPurposeId requiredEKUIfPresent,\n                                 const
      CertPolicyId& requiredPolicy,\n                                 unsigned int
      subCACount,\n                                 /*out*/ TrustLevel& trustLevel)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::SignatureAlgorithmIdentifierValue
      Src: /src/nss/lib/mozpkix/lib/pkixverify.cpp:37,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixverify.cpp:42,1
    - Dst: VerifyECDSASignedData
      Src: /src/nss/lib/mozpkix/lib/pkixverify.cpp:48,1
    - Dst: VerifyRSAPKCS1SignedData
      Src: /src/nss/lib/mozpkix/lib/pkixverify.cpp:51,1
    - Dst: VerifyRSAPSSSignedData
      Src: /src/nss/lib/mozpkix/lib/pkixverify.cpp:54,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - ' trustDomain'
    - ' signedData'
    - signerSubjectPublicKeyInfo
    argTypes:
    - TrustDomain
    - der::SignedDataWithSignature
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 58
    functionName: mozilla::pkix::VerifySignedData
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixverify.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::SignatureAlgorithmIdentifierValue
    - VerifyECDSASignedData
    - VerifyRSAPKCS1SignedData
    - VerifyRSAPSSSignedData
    - Reader::AtEnd
    linkageType: ''
    returnType: Result
    signature: "Result VerifySignedData(TrustDomain& trustDomain,\n                 const
      der::SignedDataWithSignature& signedData,\n                 Input signerSubjectPublicKeyInfo)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::SignatureAlgorithmIdentifierValue
      Src: /src/nss/lib/mozpkix/lib/pkixverify.cpp:37,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixverify.cpp:42,1
    - Dst: VerifyECDSASignedData
      Src: /src/nss/lib/mozpkix/lib/pkixverify.cpp:48,1
    - Dst: VerifyRSAPKCS1SignedData
      Src: /src/nss/lib/mozpkix/lib/pkixverify.cpp:51,1
    - Dst: VerifyRSAPSSSignedData
      Src: /src/nss/lib/mozpkix/lib/pkixverify.cpp:54,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - ' trustDomain'
    - ' signedData'
    - signerSubjectPublicKeyInfo
    argTypes:
    - TrustDomain
    - der::SignedDataWithSignature
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 58
    functionName: mozilla::pkix::VerifySignedData
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixverify.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::SignatureAlgorithmIdentifierValue
    - VerifyECDSASignedData
    - VerifyRSAPKCS1SignedData
    - VerifyRSAPSSSignedData
    - Reader::AtEnd
    linkageType: ''
    returnType: Result
    signature: "Result VerifySignedData(TrustDomain& trustDomain,\n                 const
      der::SignedDataWithSignature& signedData,\n                 Input signerSubjectPublicKeyInfo)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::SignatureAlgorithmIdentifierValue
      Src: /src/nss/lib/mozpkix/lib/pkixverify.cpp:37,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixverify.cpp:42,1
    - Dst: VerifyECDSASignedData
      Src: /src/nss/lib/mozpkix/lib/pkixverify.cpp:48,1
    - Dst: VerifyRSAPKCS1SignedData
      Src: /src/nss/lib/mozpkix/lib/pkixverify.cpp:51,1
    - Dst: VerifyRSAPSSSignedData
      Src: /src/nss/lib/mozpkix/lib/pkixverify.cpp:54,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - ' trustDomain'
    - ' signedData'
    - signerSubjectPublicKeyInfo
    argTypes:
    - TrustDomain
    - der::SignedDataWithSignature
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 58
    functionName: mozilla::pkix::VerifySignedData
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixverify.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::SignatureAlgorithmIdentifierValue
    - VerifyECDSASignedData
    - VerifyRSAPKCS1SignedData
    - VerifyRSAPSSSignedData
    - Reader::AtEnd
    linkageType: ''
    returnType: Result
    signature: "Result VerifySignedData(TrustDomain& trustDomain,\n                 const
      der::SignedDataWithSignature& signedData,\n                 Input signerSubjectPublicKeyInfo)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::SignatureAlgorithmIdentifierValue
      Src: /src/nss/lib/mozpkix/lib/pkixverify.cpp:37,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixverify.cpp:42,1
    - Dst: VerifyECDSASignedData
      Src: /src/nss/lib/mozpkix/lib/pkixverify.cpp:48,1
    - Dst: VerifyRSAPKCS1SignedData
      Src: /src/nss/lib/mozpkix/lib/pkixverify.cpp:51,1
    - Dst: VerifyRSAPSSSignedData
      Src: /src/nss/lib/mozpkix/lib/pkixverify.cpp:54,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - ' trustDomain'
    - ' signedData'
    - signerSubjectPublicKeyInfo
    argTypes:
    - TrustDomain
    - der::SignedDataWithSignature
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 58
    functionName: mozilla::pkix::VerifySignedData
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixverify.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::SignatureAlgorithmIdentifierValue
    - VerifyECDSASignedData
    - VerifyRSAPKCS1SignedData
    - VerifyRSAPSSSignedData
    - Reader::AtEnd
    linkageType: ''
    returnType: Result
    signature: "Result VerifySignedData(TrustDomain& trustDomain,\n                 const
      der::SignedDataWithSignature& signedData,\n                 Input signerSubjectPublicKeyInfo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - certificates
    - certificateLengths
    - numCertificates
    - rootSHA256Digest
    argTypes:
    - uint8_t**
    - uint16_t*
    - size_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 26
    functionName: CodeSigningTrustDomain::CodeSigningTrustDomain
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void CodeSigningTrustDomain(const uint8_t** certificates,\n                                  const
      uint16_t* certificateLengths,\n                                  size_t numCertificates,\n
      \                                 const uint8_t* rootSHA256Digest)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: DigestBufNSS
      Src: /src/nss/lib/mozpkix/lib/pkixc.cpp:33,1
    - Dst: Input::Init
      Src: /src/nss/lib/mozpkix/lib/pkixc.cpp:39,1
    - Dst: Input::Init
      Src: /src/nss/lib/mozpkix/lib/pkixc.cpp:44,1
    - Dst: InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixc.cpp:48,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - endEntityOrCA
    - ' policy'
    - candidateCertDER
    - ' trustLevel'
    argTypes:
    - EndEntityOrCA
    - CertPolicyId
    - Input
    - TrustLevel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 54
    functionName: CodeSigningTrustDomain::GetCertTrust
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixc.cpp
    functionUses: 0
    functionsReached:
    - InputsAreEqual
    - Input::Init
    - DigestBufNSS
    linkageType: ''
    returnType: Result
    signature: "Result GetCertTrust(EndEntityOrCA endEntityOrCA,\n                              const
      CertPolicyId& policy,\n                              Input candidateCertDER,\n
      \                             /*out*/ TrustLevel& trustLevel) override"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Input::Init
      Src: /src/nss/lib/mozpkix/lib/pkixc.cpp:60,1
    - Dst: Check
      Src: /src/nss/lib/mozpkix/lib/pkixc.cpp:65,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - encodedIssuerName
    - ' checker'
    - time
    argTypes:
    - Input
    - IssuerChecker
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 76
    functionName: CodeSigningTrustDomain::FindIssuer
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixc.cpp
    functionUses: 0
    functionsReached:
    - Check
    - Input::Init
    linkageType: ''
    returnType: Result
    signature: "Result FindIssuer(Input encodedIssuerName, IssuerChecker& checker,\n
      \                           Time time) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - endEntityOrCA
    - ' certID'
    - time
    - validityDuration
    - stapledOCSPresponse
    - aiaExtension
    - sctExtension
    argTypes:
    - EndEntityOrCA
    - CertID
    - Time
    - Duration
    - Input*
    - Input*
    - Input*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 85
    functionName: CodeSigningTrustDomain::CheckRevocation
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result CheckRevocation(\n      EndEntityOrCA endEntityOrCA, const
      CertID& certID, Time time,\n      Duration validityDuration,\n      /*optional*/
      const Input* stapledOCSPresponse,\n      /*optional*/ const Input* aiaExtension,\n
      \     /*optional*/ const Input* sctExtension) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' certChain'
    - time
    - ' requiredPolicy'
    argTypes:
    - DERArray
    - Time
    - CertPolicyId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: CodeSigningTrustDomain::IsChainValid
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result IsChainValid(const DERArray& certChain, Time time,\n                              const
      CertPolicyId& requiredPolicy) override"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - digestAlg
    - endEntityOrCA
    - notBefore
    argTypes:
    - DigestAlgorithm
    - EndEntityOrCA
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 103
    functionName: CodeSigningTrustDomain::CheckSignatureDigestAlgorithm
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result CheckSignatureDigestAlgorithm(DigestAlgorithm digestAlg,\n
      \                                              EndEntityOrCA endEntityOrCA,\n
      \                                              Time notBefore) override"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - endEntityOrCA
    - modulusSizeInBits
    argTypes:
    - EndEntityOrCA
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 111
    functionName: CodeSigningTrustDomain::CheckRSAPublicKeyModulusSizeInBits
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result CheckRSAPublicKeyModulusSizeInBits(\n      EndEntityOrCA endEntityOrCA,
      unsigned int modulusSizeInBits) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VerifyRSAPKCS1SignedDataNSS
      Src: /src/nss/lib/mozpkix/lib/pkixc.cpp:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - data
    - digestAlgorithm
    - signature
    - subjectPublicKeyInfo
    argTypes:
    - Input
    - DigestAlgorithm
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 118
    functionName: CodeSigningTrustDomain::VerifyRSAPKCS1SignedData
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixc.cpp
    functionUses: 0
    functionsReached:
    - VerifyRSAPKCS1SignedDataNSS
    linkageType: ''
    returnType: Result
    signature: "Result VerifyRSAPKCS1SignedData(\n      Input data, DigestAlgorithm
      digestAlgorithm, Input signature,\n      Input subjectPublicKeyInfo) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VerifyRSAPSSSignedDataNSS
      Src: /src/nss/lib/mozpkix/lib/pkixc.cpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - data
    - digestAlgorithm
    - signature
    - subjectPublicKeyInfo
    argTypes:
    - Input
    - DigestAlgorithm
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 125
    functionName: CodeSigningTrustDomain::VerifyRSAPSSSignedData
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixc.cpp
    functionUses: 0
    functionsReached:
    - VerifyRSAPSSSignedDataNSS
    linkageType: ''
    returnType: Result
    signature: "Result VerifyRSAPSSSignedData(\n      Input data, DigestAlgorithm
      digestAlgorithm, Input signature,\n      Input subjectPublicKeyInfo) override"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - endEntityOrCA
    - curve
    argTypes:
    - EndEntityOrCA
    - NamedCurve
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 137
    functionName: CodeSigningTrustDomain::CheckECDSACurveIsAcceptable
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result CheckECDSACurveIsAcceptable(EndEntityOrCA endEntityOrCA,\n
      \                                            NamedCurve curve) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VerifyECDSASignedDataNSS
      Src: /src/nss/lib/mozpkix/lib/pkixc.cpp:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - data
    - digestAlgorithm
    - signature
    - subjectPublicKeyInfo
    argTypes:
    - Input
    - DigestAlgorithm
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 144
    functionName: CodeSigningTrustDomain::VerifyECDSASignedData
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixc.cpp
    functionUses: 0
    functionsReached:
    - VerifyECDSASignedDataNSS
    linkageType: ''
    returnType: Result
    signature: "Result VerifyECDSASignedData(\n      Input data, DigestAlgorithm digestAlgorithm,
      Input signature,\n      Input subjectPublicKeyInfo) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - notBefore
    - notAfter
    - endEntityOrCA
    - keyPurpose
    argTypes:
    - Time
    - Time
    - EndEntityOrCA
    - KeyPurposeId
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 150
    functionName: CodeSigningTrustDomain::CheckValidityIsAcceptable
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result CheckValidityIsAcceptable(Time notBefore, Time notAfter,\n
      \                                          EndEntityOrCA endEntityOrCA,\n                                           KeyPurposeId
      keyPurpose) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - notBefore
    - ' matches'
    argTypes:
    - Time
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 156
    functionName: CodeSigningTrustDomain::NetscapeStepUpMatchesServerAuth
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result NetscapeStepUpMatchesServerAuth(\n      Time notBefore, /*out*/
      bool& matches) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - extension
    - extensionData
    argTypes:
    - AuxiliaryExtension
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 159
    functionName: CodeSigningTrustDomain::NoteAuxiliaryExtension
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void NoteAuxiliaryExtension(AuxiliaryExtension extension,\n                                      Input
      extensionData) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DigestBufNSS
      Src: /src/nss/lib/mozpkix/lib/pkixc.cpp:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - item
    - digestAlg
    - digestBuf
    - digestBufLen
    argTypes:
    - Input
    - DigestAlgorithm
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 165
    functionName: CodeSigningTrustDomain::DigestBuf
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixc.cpp
    functionUses: 0
    functionsReached:
    - DigestBufNSS
    linkageType: ''
    returnType: Result
    signature: "Result DigestBuf(Input item, DigestAlgorithm digestAlg,\n                           /*out*/
      uint8_t* digestBuf,\n                           size_t digestBufLen) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - notBefore
    - ' fallBackToCommonName'
    argTypes:
    - Time
    - FallBackToSearchWithinSubject
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 181
    functionName: CodeSigningNameMatchingPolicy::FallBackToCommonName
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result FallBackToCommonName(\n      Time notBefore,\n      /*out*/
      FallBackToSearchWithinSubject& fallBackToCommonName) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 186
    functionName: CodeSigningNameMatchingPolicy::HandleInvalidSubjectAlternativeNames
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixc.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: HandleInvalidSubjectAlternativeNamesBy
    signature: HandleInvalidSubjectAlternativeNamesBy HandleInvalidSubjectAlternativeNames()
      override
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Input::Init
      Src: /src/nss/lib/mozpkix/lib/pkixc.cpp:205,1
    - Dst: MapResultToPRErrorCode
      Src: /src/nss/lib/mozpkix/lib/pkixc.cpp:207,1
    - Dst: TimeFromEpochInSeconds
      Src: /src/nss/lib/mozpkix/lib/pkixc.cpp:210,1
    - Dst: BuildCertChain
      Src: /src/nss/lib/mozpkix/lib/pkixc.cpp:211,1
    - Dst: MapResultToPRErrorCode
      Src: /src/nss/lib/mozpkix/lib/pkixc.cpp:216,1
    - Dst: Input::Init
      Src: /src/nss/lib/mozpkix/lib/pkixc.cpp:220,1
    - Dst: MapResultToPRErrorCode
      Src: /src/nss/lib/mozpkix/lib/pkixc.cpp:222,1
    - Dst: CheckCertHostname
      Src: /src/nss/lib/mozpkix/lib/pkixc.cpp:226,1
    - Dst: MapResultToPRErrorCode
      Src: /src/nss/lib/mozpkix/lib/pkixc.cpp:228,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 8
    argNames:
    - certificates
    - certificateLengths
    - numCertificates
    - secondsSinceEpoch
    - rootSHA256Digest
    - hostname
    - hostnameLength
    - error
    argTypes:
    - uint8_t**
    - uint16_t*
    - size_t
    - uint64_t
    - uint8_t*
    - uint8_t*
    - size_t
    - PRErrorCode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 232
    functionName: VerifyCodeSigningCertificateChain
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixc.cpp
    functionUses: 0
    functionsReached:
    - CheckCertHostname
    - BuildCertChain
    - MapResultToPRErrorCode
    - TimeFromEpochInSeconds
    - Input::Init
    linkageType: ''
    returnType: bool
    signature: "bool VerifyCodeSigningCertificateChain(\n    const uint8_t** certificates,
      const uint16_t* certificateLengths,\n    size_t numCertificates, uint64_t secondsSinceEpoch,\n
      \   const uint8_t* rootSHA256Digest, const uint8_t* hostname,\n    size_t hostnameLength,
      PRErrorCode* error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TimeFromElapsedSecondsAD
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:57,1
    - Dst: TimeFromElapsedSecondsAD
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 6
    argNames:
    - ' aTrustDomain'
    - ' aCertID'
    - aTime
    - aMaxLifetimeInDays
    - aThisUpdate
    - aValidThrough
    argTypes:
    - TrustDomain
    - CertID
    - Time
    - uint16_t
    - Time*
    - Time*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 62
    functionName: mozilla::pkix::Context::Context
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 0
    functionsReached:
    - TimeFromElapsedSecondsAD
    linkageType: ''
    returnType: void
    signature: "void Context(TrustDomain& aTrustDomain, const CertID& aCertID, Time
      aTime,\n          uint16_t aMaxLifetimeInDays, /*optional out*/ Time* aThisUpdate,\n
      \         /*optional out*/ Time* aValidThrough)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: mozilla::pkix::Context::Context
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Context(const Context&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: operator=(const Context&)
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const Context&)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::CheckIssuerIndependentProperties
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:120,1
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:134,1
    - Dst: GetIssuer
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:134,1
    - Dst: mozilla::pkix::VerifySignedData
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:140,1
    - Dst: GetSignedData
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - ' trustDomain'
    - ' potentialSigner'
    - issuerSubject
    - issuerSubjectPublicKeyInfo
    - time
    argTypes:
    - TrustDomain
    - BackCert
    - Input
    - Input
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 87
    functionDepth: 6
    functionLinenumber: 87
    functionLinenumberEnd: 148
    functionName: mozilla::pkix::CheckOCSPResponseSignerCert
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 0
    functionsReached:
    - GetIssuer
    - mozilla::pkix::CheckIssuerIndependentProperties
    - mozilla::pkix::InputsAreEqual
    - GetSignedData
    - mozilla::pkix::VerifySignedData
    linkageType: ''
    returnType: Result
    signature: "Result CheckOCSPResponseSignerCert(TrustDomain& trustDomain,\n                            BackCert&
      potentialSigner,\n                            Input issuerSubject,\n                            Input
      issuerSubjectPublicKeyInfo,\n                            Time time)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:201,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:208,1
    - Dst: mozilla::pkix::MatchKeyHash
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:212,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 6
    argNames:
    - ' trustDomain'
    - responderIDType
    - responderID
    - potentialSignerSubject
    - potentialSignerSubjectPublicKeyInfo
    - ' match'
    argTypes:
    - TrustDomain
    - ResponderIDType
    - Input
    - Input
    - Input
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 218
    functionName: mozilla::pkix::MatchResponderID
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::InputsAreEqual
    - mozilla::pkix::MatchKeyHash
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: "Result MatchResponderID(TrustDomain& trustDomain,\n                 ResponderIDType
      responderIDType,\n                 Input responderID,\n                 Input
      potentialSignerSubject,\n                 Input potentialSignerSubjectPublicKeyInfo,\n
      \                /*out*/ bool& match)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::VerifySignedData
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' trustDomain'
    - ' signedResponseData'
    - spki
    argTypes:
    - TrustDomain
    - der::SignedDataWithSignature
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 230
    functionName: mozilla::pkix::VerifyOCSPSignedData
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::VerifySignedData
    linkageType: ''
    returnType: Result
    signature: "Result VerifyOCSPSignedData(TrustDomain& trustDomain,\n                     const
      der::SignedDataWithSignature& signedResponseData,\n                     Input
      spki)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::MatchResponderID
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:244,1
    - Dst: mozilla::pkix::VerifyOCSPSignedData
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:252,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:256,1
    - Dst: GetDER
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:258,1
    - Dst: BackCert::Init
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:259,1
    - Dst: mozilla::pkix::MatchResponderID
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:263,1
    - Dst: BackCert::GetSubject
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:264,1
    - Dst: BackCert::GetSubjectPublicKeyInfo
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:264,1
    - Dst: mozilla::pkix::IsFatalError
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:267,1
    - Dst: mozilla::pkix::CheckOCSPResponseSignerCert
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:274,1
    - Dst: mozilla::pkix::IsFatalError
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:279,1
    - Dst: mozilla::pkix::VerifyOCSPSignedData
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:285,1
    - Dst: BackCert::GetSubjectPublicKeyInfo
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:286,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 5
    argNames:
    - ' context'
    - responderIDType
    - responderID
    - ' certs'
    - ' signedResponseData'
    argTypes:
    - Context
    - ResponderIDType
    - Input
    - DERArray
    - der::SignedDataWithSignature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 238
    functionDepth: 7
    functionLinenumber: 238
    functionLinenumberEnd: 291
    functionName: mozilla::pkix::VerifySignature
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 0
    functionsReached:
    - BackCert::Init
    - BackCert::GetSubject
    - GetDER
    - BackCert::GetSubjectPublicKeyInfo
    - mozilla::pkix::IsFatalError
    - mozilla::pkix::MatchResponderID
    - GetLength
    - mozilla::pkix::VerifyOCSPSignedData
    - mozilla::pkix::CheckOCSPResponseSignerCert
    linkageType: ''
    returnType: Result
    signature: "Result VerifySignature(Context& context, ResponderIDType responderIDType,\n
      \               Input responderID, const DERArray& certs,\n                const
      der::SignedDataWithSignature& signedResponseData)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - rv
    argTypes:
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 300
    functionName: mozilla::pkix::MapBadDERToMalformedOCSPResponse
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: Result MapBadDERToMalformedOCSPResponse(Result rv)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:317,1
    - Dst: mozilla::pkix::OCSPResponse
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:318,1
    - Dst: mozilla::pkix::MapBadDERToMalformedOCSPResponse
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:321,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:323,1
    - Dst: mozilla::pkix::MapBadDERToMalformedOCSPResponse
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:325,1
    - Dst: Context::signedCertificateTimestamps::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:338,1
    - Dst: mozilla::pkix::ExtractSignedCertificateTimestampListFromExtension
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:340,1
    - Dst: mozilla::pkix::MapBadDERToMalformedOCSPResponse
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:343,1
    - Dst: Context::trustDomain::NoteAuxiliaryExtension
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:345,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 8
    argNames:
    - ' trustDomain'
    - ' certID'
    - time
    - maxOCSPLifetimeInDays
    - encodedResponse
    - ' expired'
    - thisUpdate
    - validThrough
    argTypes:
    - TrustDomain
    - struct CertID
    - Time
    - uint16_t
    - Input
    - bool
    - Time*
    - Time*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 302
    functionDepth: 4
    functionLinenumber: 302
    functionLinenumberEnd: 355
    functionName: mozilla::pkix::VerifyEncodedOCSPResponse
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::End
    - Context::trustDomain::NoteAuxiliaryExtension
    - mozilla::pkix::OCSPResponse
    - mozilla::pkix::MapBadDERToMalformedOCSPResponse
    - mozilla::pkix::ExtractSignedCertificateTimestampListFromExtension
    - mozilla::pkix::der::Nested
    - Context::signedCertificateTimestamps::GetLength
    linkageType: ''
    returnType: Result
    signature: "Result VerifyEncodedOCSPResponse(TrustDomain& trustDomain, const struct
      CertID& certID,\n                          Time time, uint16_t maxOCSPLifetimeInDays,\n
      \                         Input encodedResponse,\n                          /*out*/
      bool& expired,\n                          /*optional out*/ Time* thisUpdate,\n
      \                         /*optional out*/ Time* validThrough)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::Enumerated
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:375,1
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:389,1
    - Dst: mozilla::pkix::ResponseBytes
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:391,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 2
    argNames:
    - ' input'
    - ' context'
    argTypes:
    - Reader
    - Context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 361
    functionDepth: 3
    functionLinenumber: 361
    functionLinenumberEnd: 393
    functionName: mozilla::pkix::OCSPResponse
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 1
    functionsReached:
    - mozilla::pkix::der::Enumerated
    - mozilla::pkix::der::Nested
    - mozilla::pkix::ResponseBytes
    linkageType: ''
    returnType: Result
    signature: Result OCSPResponse(Reader& input, Context& context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::OID
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:405,1
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:410,1
    - Dst: mozilla::pkix::BasicResponse
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' input'
    - ' context'
    argTypes:
    - Reader
    - Context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 398
    functionDepth: 3
    functionLinenumber: 398
    functionLinenumberEnd: 414
    functionName: mozilla::pkix::ResponseBytes
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 1
    functionsReached:
    - mozilla::pkix::BasicResponse
    - mozilla::pkix::der::Nested
    - mozilla::pkix::der::OID
    linkageType: ''
    returnType: Result
    signature: Result ResponseBytes(Reader& input, Context& context)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::SignedData
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:426,1
    - Dst: AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:436,1
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:437,1
    - Dst: AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:439,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetTLV
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:442,1
    - Dst: NonOwningDERArray::Append
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:446,1
    - Dst: mozilla::pkix::ResponseData
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:458,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - ' input'
    - ' context'
    argTypes:
    - Reader
    - Context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 421
    functionDepth: 4
    functionLinenumber: 421
    functionLinenumberEnd: 459
    functionName: mozilla::pkix::BasicResponse
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 1
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndGetTLV
    - mozilla::pkix::ResponseData
    - mozilla::pkix::der::Nested
    - mozilla::pkix::der::SignedData
    - NonOwningDERArray::Append
    - AtEnd
    linkageType: ''
    returnType: Result
    signature: Result BasicResponse(Reader& input, Context& context)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::OptionalVersion
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:473,1
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:487,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:487,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:490,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:490,1
    - Dst: mozilla::pkix::VerifySignature
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:499,1
    - Dst: mozilla::pkix::der::GeneralizedTime
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:507,1
    - Dst: mozilla::pkix::der::NestedOf
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:515,1
    - Dst: mozilla::pkix::SingleResponse
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:517,1
    - Dst: mozilla::pkix::der::OptionalExtensions
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:523,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:530,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 4
    argNames:
    - ' input'
    - ' context'
    - ' signedResponseData'
    - ' certs'
    argTypes:
    - Reader
    - Context
    - der::SignedDataWithSignature
    - DERArray
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 467
    functionDepth: 8
    functionLinenumber: 467
    functionLinenumberEnd: 531
    functionName: mozilla::pkix::ResponseData
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 1
    functionsReached:
    - mozilla::pkix::der::End
    - mozilla::pkix::VerifySignature
    - mozilla::pkix::der::ExpectTagAndGetValue
    - mozilla::pkix::der::GeneralizedTime
    - mozilla::pkix::der::NestedOf
    - mozilla::pkix::der::OptionalExtensions
    - mozilla::pkix::SingleResponse
    - Peek
    - static_cast<uint8_t>
    - mozilla::pkix::der::OptionalVersion
    linkageType: ''
    returnType: Result
    signature: "Result ResponseData(Reader& input, Context& context,\n             const
      der::SignedDataWithSignature& signedResponseData,\n             const DERArray&
      certs)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:546,1
    - Dst: mozilla::pkix::MatchCertID
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:547,1
    - Dst: SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:558,1
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:575,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:575,1
    - Dst: mozilla::pkix::der::ExpectTagAndEmptyValue
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:576,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:577,1
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:584,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:584,1
    - Dst: mozilla::pkix::der::ExpectTagAndSkipValue
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:589,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:590,1
    - Dst: mozilla::pkix::der::ExpectTagAndEmptyValue
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:596,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:597,1
    - Dst: mozilla::pkix::der::GeneralizedTime
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:611,1
    - Dst: Time::AddSeconds
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:619,1
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:630,1
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:632,1
    - Dst: mozilla::pkix::der::GeneralizedTime
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:633,1
    - Dst: Time::AddSeconds
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:643,1
    - Dst: Time::AddSeconds
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:656,1
    - Dst: Time::AddSeconds
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:665,1
    - Dst: mozilla::pkix::der::OptionalExtensions
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:675,1
    - Dst: mozilla::pkix::RememberSingleExtension
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:680,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 86
    argCount: 2
    argNames:
    - ' input'
    - ' context'
    argTypes:
    - Reader
    - Context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 542
    functionDepth: 5
    functionLinenumber: 542
    functionLinenumberEnd: 696
    functionName: mozilla::pkix::SingleResponse
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 1
    functionsReached:
    - mozilla::pkix::der::GeneralizedTime
    - SkipToEnd
    - mozilla::pkix::der::OptionalExtensions
    - mozilla::pkix::RememberSingleExtension
    - mozilla::pkix::der::Nested
    - mozilla::pkix::der::ExpectTagAndEmptyValue
    - mozilla::pkix::der::ExpectTagAndSkipValue
    - mozilla::pkix::MatchCertID
    - Peek
    - Time::AddSeconds
    - static_cast<uint8_t>
    linkageType: ''
    returnType: Result
    signature: Result SingleResponse(Reader& input, Context& context)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::DigestAlgorithmIdentifier
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:709,1
    - Dst: SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:713,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:720,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:726,1
    - Dst: mozilla::pkix::der::CertificateSerialNumber
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:732,1
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:737,1
    - Dst: SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:741,1
    - Dst: mozilla::pkix::DigestAlgorithmToSizeInBytes
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:745,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:746,1
    - Dst: trustDomain::DigestBuf
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:757,1
    - Dst: Input::Init
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:764,1
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:768,1
    - Dst: SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:770,1
    - Dst: mozilla::pkix::MatchKeyHash
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:774,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 3
    argNames:
    - ' input'
    - ' context'
    - ' match'
    argTypes:
    - Reader
    - Context
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 703
    functionDepth: 2
    functionLinenumber: 703
    functionLinenumberEnd: 776
    functionName: mozilla::pkix::MatchCertID
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 1
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndGetValue
    - SkipToEnd
    - mozilla::pkix::der::CertificateSerialNumber
    - Input::GetLength
    - mozilla::pkix::der::DigestAlgorithmIdentifier
    - mozilla::pkix::MatchKeyHash
    - trustDomain::DigestBuf
    - mozilla::pkix::InputsAreEqual
    - Input::Init
    - mozilla::pkix::DigestAlgorithmToSizeInBytes
    linkageType: ''
    returnType: Result
    signature: Result MatchCertID(Reader& input, const Context& context, /*out*/ bool&
      match)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::DigestAlgorithmToSizeInBytes
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:807,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:808,1
    - Dst: mozilla::pkix::KeyHash
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:815,1
    - Dst: Input::Init
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:821,1
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:825,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - ' trustDomain'
    - hashAlgorithm
    - keyHash
    - subjectPublicKeyInfo
    - ' match'
    argTypes:
    - TrustDomain
    - DigestAlgorithm
    - Input
    - Input
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 802
    functionDepth: 1
    functionLinenumber: 802
    functionLinenumberEnd: 827
    functionName: mozilla::pkix::MatchKeyHash
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 2
    functionsReached:
    - mozilla::pkix::KeyHash
    - Input::GetLength
    - mozilla::pkix::InputsAreEqual
    - Input::Init
    - mozilla::pkix::DigestAlgorithmToSizeInBytes
    linkageType: ''
    returnType: Result
    signature: "Result MatchKeyHash(TrustDomain& trustDomain, DigestAlgorithm hashAlgorithm,\n
      \            Input keyHash, const Input subjectPublicKeyInfo,\n             /*out*/
      bool& match)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::DigestAlgorithmToSizeInBytes
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:834,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:845,1
    - Dst: mozilla::pkix::der::ExpectTagAndSkipValue
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:852,1
    - Dst: mozilla::pkix::der::BitStringWithNoUnusedBits
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:858,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:862,1
    - Dst: DigestBuf
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:867,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 5
    argNames:
    - ' trustDomain'
    - hashAlgorithm
    - subjectPublicKeyInfo
    - hashBuf
    - hashBufSize
    argTypes:
    - TrustDomain
    - DigestAlgorithm
    - Input
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 829
    functionDepth: 3
    functionLinenumber: 829
    functionLinenumberEnd: 869
    functionName: mozilla::pkix::KeyHash
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 1
    functionsReached:
    - mozilla::pkix::der::End
    - mozilla::pkix::der::BitStringWithNoUnusedBits
    - mozilla::pkix::der::ExpectTagAndSkipValue
    - DigestBuf
    - mozilla::pkix::DigestAlgorithmToSizeInBytes
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    linkageType: ''
    returnType: Result
    signature: "Result KeyHash(TrustDomain& trustDomain, DigestAlgorithm hashAlgorithm,\n
      \       const Input subjectPublicKeyInfo, /*out*/ uint8_t* hashBuf,\n        size_t
      hashBufSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' understood'
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 871
    functionDepth: 0
    functionLinenumber: 871
    functionLinenumberEnd: 877
    functionName: mozilla::pkix::ExtensionNotUnderstood
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result ExtensionNotUnderstood(Reader& /*extnID*/, Input /*extnValue*/,\n
      \                      bool /*critical*/, /*out*/ bool& understood)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:893,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:896,1
    - Dst: signedCertificateTimestamps::Init
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:899,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - ' context'
    - ' extnID'
    - extnValue
    - ' understood'
    argTypes:
    - Context
    - Reader
    - Input
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 879
    functionDepth: 0
    functionLinenumber: 879
    functionLinenumberEnd: 907
    functionName: mozilla::pkix::RememberSingleExtension
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 1
    functionsReached:
    - Input::GetLength
    - MatchRest
    - signedCertificateTimestamps::Init
    linkageType: ''
    returnType: Result
    signature: "Result RememberSingleExtension(Context& context, Reader& extnID, Input
      extnValue,\n                        bool /*critical*/, /*out*/ bool& understood)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: serialNumber::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:977,1
    - Dst: serialNumber::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:982,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:984,1
    - Dst: DigestBuf
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:1001,1
    - Dst: mozilla::pkix::KeyHash
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:1011,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:1020,1
    - Dst: serialNumber::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:1020,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:1023,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:1028,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:1030,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 41
    argCount: 4
    argNames:
    - ' trustDomain'
    - ' certID'
    - (out)
    - ' outLen'
    argTypes:
    - TrustDomain
    - struct CertID
    - uint8_t[]
    - size_t
    assertStmts:
    - condition: (d == out + totalLen)
      pos:
        line_end: 1029
        line_start: 1029
        source_file: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    constantsTouched: []
    func_position:
      end: 1033
      start: 932
    functionDepth: 4
    functionLinenumber: 932
    functionLinenumberEnd: 1033
    functionName: mozilla::pkix::CreateEncodedOCSPRequest
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 0
    functionsReached:
    - serialNumber::GetLength
    - mozilla::pkix::KeyHash
    - Reader::Read
    - Reader::AtEnd
    - assert
    - DigestBuf
    - static_cast<uint8_t>
    linkageType: ''
    returnType: Result
    signature: "Result CreateEncodedOCSPRequest(TrustDomain& trustDomain, const struct
      CertID& certID,\n                         /*out*/ uint8_t (&out)[OCSP_REQUEST_MAX_LENGTH],\n
      \                        /*out*/ size_t& outLen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TimeFromElapsedSecondsAD
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:57,1
    - Dst: TimeFromElapsedSecondsAD
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 6
    argNames:
    - ' aTrustDomain'
    - ' aCertID'
    - aTime
    - aMaxLifetimeInDays
    - aThisUpdate
    - aValidThrough
    argTypes:
    - TrustDomain
    - CertID
    - Time
    - uint16_t
    - Time*
    - Time*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 62
    functionName: mozilla::pkix::Context::Context
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 0
    functionsReached:
    - TimeFromElapsedSecondsAD
    linkageType: ''
    returnType: void
    signature: "void Context(TrustDomain& aTrustDomain, const CertID& aCertID, Time
      aTime,\n          uint16_t aMaxLifetimeInDays, /*optional out*/ Time* aThisUpdate,\n
      \         /*optional out*/ Time* aValidThrough)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: mozilla::pkix::Context::Context
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Context(const Context&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: operator=(const Context&)
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const Context&)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::CheckIssuerIndependentProperties
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:120,1
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:134,1
    - Dst: GetIssuer
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:134,1
    - Dst: mozilla::pkix::VerifySignedData
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:140,1
    - Dst: GetSignedData
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - ' trustDomain'
    - ' potentialSigner'
    - issuerSubject
    - issuerSubjectPublicKeyInfo
    - time
    argTypes:
    - TrustDomain
    - BackCert
    - Input
    - Input
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 87
    functionDepth: 6
    functionLinenumber: 87
    functionLinenumberEnd: 148
    functionName: mozilla::pkix::CheckOCSPResponseSignerCert
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 1
    functionsReached:
    - GetIssuer
    - mozilla::pkix::CheckIssuerIndependentProperties
    - mozilla::pkix::InputsAreEqual
    - GetSignedData
    - mozilla::pkix::VerifySignedData
    linkageType: ''
    returnType: Result
    signature: "Result CheckOCSPResponseSignerCert(TrustDomain& trustDomain,\n                            BackCert&
      potentialSigner,\n                            Input issuerSubject,\n                            Input
      issuerSubjectPublicKeyInfo,\n                            Time time)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:201,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:208,1
    - Dst: mozilla::pkix::MatchKeyHash
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:212,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 6
    argNames:
    - ' trustDomain'
    - responderIDType
    - responderID
    - potentialSignerSubject
    - potentialSignerSubjectPublicKeyInfo
    - ' match'
    argTypes:
    - TrustDomain
    - ResponderIDType
    - Input
    - Input
    - Input
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 218
    functionName: mozilla::pkix::MatchResponderID
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 1
    functionsReached:
    - mozilla::pkix::InputsAreEqual
    - mozilla::pkix::MatchKeyHash
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: "Result MatchResponderID(TrustDomain& trustDomain,\n                 ResponderIDType
      responderIDType,\n                 Input responderID,\n                 Input
      potentialSignerSubject,\n                 Input potentialSignerSubjectPublicKeyInfo,\n
      \                /*out*/ bool& match)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::VerifySignedData
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' trustDomain'
    - ' signedResponseData'
    - spki
    argTypes:
    - TrustDomain
    - der::SignedDataWithSignature
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 230
    functionName: mozilla::pkix::VerifyOCSPSignedData
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 1
    functionsReached:
    - mozilla::pkix::VerifySignedData
    linkageType: ''
    returnType: Result
    signature: "Result VerifyOCSPSignedData(TrustDomain& trustDomain,\n                     const
      der::SignedDataWithSignature& signedResponseData,\n                     Input
      spki)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::MatchResponderID
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:244,1
    - Dst: mozilla::pkix::VerifyOCSPSignedData
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:252,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:256,1
    - Dst: GetDER
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:258,1
    - Dst: BackCert::Init
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:259,1
    - Dst: mozilla::pkix::MatchResponderID
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:263,1
    - Dst: BackCert::GetSubject
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:264,1
    - Dst: BackCert::GetSubjectPublicKeyInfo
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:264,1
    - Dst: mozilla::pkix::IsFatalError
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:267,1
    - Dst: mozilla::pkix::CheckOCSPResponseSignerCert
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:274,1
    - Dst: mozilla::pkix::IsFatalError
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:279,1
    - Dst: mozilla::pkix::VerifyOCSPSignedData
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:285,1
    - Dst: BackCert::GetSubjectPublicKeyInfo
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:286,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 5
    argNames:
    - ' context'
    - responderIDType
    - responderID
    - ' certs'
    - ' signedResponseData'
    argTypes:
    - Context
    - ResponderIDType
    - Input
    - DERArray
    - der::SignedDataWithSignature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 238
    functionDepth: 7
    functionLinenumber: 238
    functionLinenumberEnd: 291
    functionName: mozilla::pkix::VerifySignature
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 1
    functionsReached:
    - BackCert::Init
    - BackCert::GetSubject
    - GetDER
    - BackCert::GetSubjectPublicKeyInfo
    - mozilla::pkix::IsFatalError
    - mozilla::pkix::MatchResponderID
    - GetLength
    - mozilla::pkix::VerifyOCSPSignedData
    - mozilla::pkix::CheckOCSPResponseSignerCert
    linkageType: ''
    returnType: Result
    signature: "Result VerifySignature(Context& context, ResponderIDType responderIDType,\n
      \               Input responderID, const DERArray& certs,\n                const
      der::SignedDataWithSignature& signedResponseData)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - rv
    argTypes:
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 300
    functionName: mozilla::pkix::MapBadDERToMalformedOCSPResponse
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: Result MapBadDERToMalformedOCSPResponse(Result rv)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:317,1
    - Dst: mozilla::pkix::OCSPResponse
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:318,1
    - Dst: mozilla::pkix::MapBadDERToMalformedOCSPResponse
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:321,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:323,1
    - Dst: mozilla::pkix::MapBadDERToMalformedOCSPResponse
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:325,1
    - Dst: Context::signedCertificateTimestamps::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:338,1
    - Dst: mozilla::pkix::ExtractSignedCertificateTimestampListFromExtension
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:340,1
    - Dst: mozilla::pkix::MapBadDERToMalformedOCSPResponse
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:343,1
    - Dst: Context::trustDomain::NoteAuxiliaryExtension
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:345,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 8
    argNames:
    - ' trustDomain'
    - ' certID'
    - time
    - maxOCSPLifetimeInDays
    - encodedResponse
    - ' expired'
    - thisUpdate
    - validThrough
    argTypes:
    - TrustDomain
    - struct CertID
    - Time
    - uint16_t
    - Input
    - bool
    - Time*
    - Time*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 302
    functionDepth: 4
    functionLinenumber: 302
    functionLinenumberEnd: 355
    functionName: mozilla::pkix::VerifyEncodedOCSPResponse
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::End
    - Context::trustDomain::NoteAuxiliaryExtension
    - mozilla::pkix::OCSPResponse
    - mozilla::pkix::MapBadDERToMalformedOCSPResponse
    - mozilla::pkix::ExtractSignedCertificateTimestampListFromExtension
    - mozilla::pkix::der::Nested
    - Context::signedCertificateTimestamps::GetLength
    linkageType: ''
    returnType: Result
    signature: "Result VerifyEncodedOCSPResponse(TrustDomain& trustDomain, const struct
      CertID& certID,\n                          Time time, uint16_t maxOCSPLifetimeInDays,\n
      \                         Input encodedResponse,\n                          /*out*/
      bool& expired,\n                          /*optional out*/ Time* thisUpdate,\n
      \                         /*optional out*/ Time* validThrough)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::Enumerated
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:375,1
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:389,1
    - Dst: mozilla::pkix::ResponseBytes
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:391,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 2
    argNames:
    - ' input'
    - ' context'
    argTypes:
    - Reader
    - Context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 361
    functionDepth: 4
    functionLinenumber: 361
    functionLinenumberEnd: 393
    functionName: mozilla::pkix::OCSPResponse
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 2
    functionsReached:
    - mozilla::pkix::der::Enumerated
    - mozilla::pkix::der::Nested
    - mozilla::pkix::ResponseBytes
    linkageType: ''
    returnType: Result
    signature: Result OCSPResponse(Reader& input, Context& context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::OID
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:405,1
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:410,1
    - Dst: mozilla::pkix::BasicResponse
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' input'
    - ' context'
    argTypes:
    - Reader
    - Context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 398
    functionDepth: 5
    functionLinenumber: 398
    functionLinenumberEnd: 414
    functionName: mozilla::pkix::ResponseBytes
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 2
    functionsReached:
    - mozilla::pkix::BasicResponse
    - mozilla::pkix::der::Nested
    - mozilla::pkix::der::OID
    linkageType: ''
    returnType: Result
    signature: Result ResponseBytes(Reader& input, Context& context)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::SignedData
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:426,1
    - Dst: AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:436,1
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:437,1
    - Dst: AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:439,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetTLV
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:442,1
    - Dst: NonOwningDERArray::Append
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:446,1
    - Dst: mozilla::pkix::ResponseData
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:458,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - ' input'
    - ' context'
    argTypes:
    - Reader
    - Context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 421
    functionDepth: 9
    functionLinenumber: 421
    functionLinenumberEnd: 459
    functionName: mozilla::pkix::BasicResponse
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 2
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndGetTLV
    - mozilla::pkix::ResponseData
    - mozilla::pkix::der::Nested
    - mozilla::pkix::der::SignedData
    - NonOwningDERArray::Append
    - AtEnd
    linkageType: ''
    returnType: Result
    signature: Result BasicResponse(Reader& input, Context& context)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::OptionalVersion
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:473,1
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:487,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:487,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:490,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:490,1
    - Dst: mozilla::pkix::VerifySignature
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:499,1
    - Dst: mozilla::pkix::der::GeneralizedTime
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:507,1
    - Dst: mozilla::pkix::der::NestedOf
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:515,1
    - Dst: mozilla::pkix::SingleResponse
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:517,1
    - Dst: mozilla::pkix::der::OptionalExtensions
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:523,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:530,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 4
    argNames:
    - ' input'
    - ' context'
    - ' signedResponseData'
    - ' certs'
    argTypes:
    - Reader
    - Context
    - der::SignedDataWithSignature
    - DERArray
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 467
    functionDepth: 8
    functionLinenumber: 467
    functionLinenumberEnd: 531
    functionName: mozilla::pkix::ResponseData
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 2
    functionsReached:
    - mozilla::pkix::der::End
    - mozilla::pkix::VerifySignature
    - mozilla::pkix::der::ExpectTagAndGetValue
    - mozilla::pkix::der::GeneralizedTime
    - mozilla::pkix::der::NestedOf
    - mozilla::pkix::der::OptionalExtensions
    - mozilla::pkix::SingleResponse
    - Peek
    - static_cast<uint8_t>
    - mozilla::pkix::der::OptionalVersion
    linkageType: ''
    returnType: Result
    signature: "Result ResponseData(Reader& input, Context& context,\n             const
      der::SignedDataWithSignature& signedResponseData,\n             const DERArray&
      certs)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:546,1
    - Dst: mozilla::pkix::MatchCertID
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:547,1
    - Dst: SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:558,1
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:575,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:575,1
    - Dst: mozilla::pkix::der::ExpectTagAndEmptyValue
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:576,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:577,1
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:584,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:584,1
    - Dst: mozilla::pkix::der::ExpectTagAndSkipValue
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:589,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:590,1
    - Dst: mozilla::pkix::der::ExpectTagAndEmptyValue
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:596,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:597,1
    - Dst: mozilla::pkix::der::GeneralizedTime
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:611,1
    - Dst: Time::AddSeconds
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:619,1
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:630,1
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:632,1
    - Dst: mozilla::pkix::der::GeneralizedTime
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:633,1
    - Dst: Time::AddSeconds
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:643,1
    - Dst: Time::AddSeconds
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:656,1
    - Dst: Time::AddSeconds
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:665,1
    - Dst: mozilla::pkix::der::OptionalExtensions
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:675,1
    - Dst: mozilla::pkix::RememberSingleExtension
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:680,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 86
    argCount: 2
    argNames:
    - ' input'
    - ' context'
    argTypes:
    - Reader
    - Context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 542
    functionDepth: 5
    functionLinenumber: 542
    functionLinenumberEnd: 696
    functionName: mozilla::pkix::SingleResponse
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 2
    functionsReached:
    - mozilla::pkix::der::GeneralizedTime
    - SkipToEnd
    - mozilla::pkix::der::OptionalExtensions
    - mozilla::pkix::RememberSingleExtension
    - mozilla::pkix::der::Nested
    - mozilla::pkix::der::ExpectTagAndEmptyValue
    - mozilla::pkix::der::ExpectTagAndSkipValue
    - mozilla::pkix::MatchCertID
    - Peek
    - Time::AddSeconds
    - static_cast<uint8_t>
    linkageType: ''
    returnType: Result
    signature: Result SingleResponse(Reader& input, Context& context)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::DigestAlgorithmIdentifier
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:709,1
    - Dst: SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:713,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:720,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:726,1
    - Dst: mozilla::pkix::der::CertificateSerialNumber
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:732,1
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:737,1
    - Dst: SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:741,1
    - Dst: mozilla::pkix::DigestAlgorithmToSizeInBytes
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:745,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:746,1
    - Dst: trustDomain::DigestBuf
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:757,1
    - Dst: Input::Init
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:764,1
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:768,1
    - Dst: SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:770,1
    - Dst: mozilla::pkix::MatchKeyHash
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:774,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 3
    argNames:
    - ' input'
    - ' context'
    - ' match'
    argTypes:
    - Reader
    - Context
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 703
    functionDepth: 2
    functionLinenumber: 703
    functionLinenumberEnd: 776
    functionName: mozilla::pkix::MatchCertID
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 2
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndGetValue
    - SkipToEnd
    - mozilla::pkix::der::CertificateSerialNumber
    - Input::GetLength
    - mozilla::pkix::der::DigestAlgorithmIdentifier
    - mozilla::pkix::MatchKeyHash
    - trustDomain::DigestBuf
    - mozilla::pkix::InputsAreEqual
    - Input::Init
    - mozilla::pkix::DigestAlgorithmToSizeInBytes
    linkageType: ''
    returnType: Result
    signature: Result MatchCertID(Reader& input, const Context& context, /*out*/ bool&
      match)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::DigestAlgorithmToSizeInBytes
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:807,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:808,1
    - Dst: mozilla::pkix::KeyHash
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:815,1
    - Dst: Input::Init
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:821,1
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:825,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - ' trustDomain'
    - hashAlgorithm
    - keyHash
    - subjectPublicKeyInfo
    - ' match'
    argTypes:
    - TrustDomain
    - DigestAlgorithm
    - Input
    - Input
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 802
    functionDepth: 4
    functionLinenumber: 802
    functionLinenumberEnd: 827
    functionName: mozilla::pkix::MatchKeyHash
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 4
    functionsReached:
    - mozilla::pkix::KeyHash
    - Input::GetLength
    - mozilla::pkix::InputsAreEqual
    - Input::Init
    - mozilla::pkix::DigestAlgorithmToSizeInBytes
    linkageType: ''
    returnType: Result
    signature: "Result MatchKeyHash(TrustDomain& trustDomain, DigestAlgorithm hashAlgorithm,\n
      \            Input keyHash, const Input subjectPublicKeyInfo,\n             /*out*/
      bool& match)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::DigestAlgorithmToSizeInBytes
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:834,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:845,1
    - Dst: mozilla::pkix::der::ExpectTagAndSkipValue
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:852,1
    - Dst: mozilla::pkix::der::BitStringWithNoUnusedBits
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:858,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:862,1
    - Dst: DigestBuf
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:867,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 5
    argNames:
    - ' trustDomain'
    - hashAlgorithm
    - subjectPublicKeyInfo
    - hashBuf
    - hashBufSize
    argTypes:
    - TrustDomain
    - DigestAlgorithm
    - Input
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 829
    functionDepth: 3
    functionLinenumber: 829
    functionLinenumberEnd: 869
    functionName: mozilla::pkix::KeyHash
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 3
    functionsReached:
    - mozilla::pkix::der::End
    - mozilla::pkix::der::BitStringWithNoUnusedBits
    - mozilla::pkix::der::ExpectTagAndSkipValue
    - DigestBuf
    - mozilla::pkix::DigestAlgorithmToSizeInBytes
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    linkageType: ''
    returnType: Result
    signature: "Result KeyHash(TrustDomain& trustDomain, DigestAlgorithm hashAlgorithm,\n
      \       const Input subjectPublicKeyInfo, /*out*/ uint8_t* hashBuf,\n        size_t
      hashBufSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' understood'
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 871
    functionDepth: 0
    functionLinenumber: 871
    functionLinenumberEnd: 877
    functionName: mozilla::pkix::ExtensionNotUnderstood
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result ExtensionNotUnderstood(Reader& /*extnID*/, Input /*extnValue*/,\n
      \                      bool /*critical*/, /*out*/ bool& understood)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:893,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:896,1
    - Dst: signedCertificateTimestamps::Init
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:899,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - ' context'
    - ' extnID'
    - extnValue
    - ' understood'
    argTypes:
    - Context
    - Reader
    - Input
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 879
    functionDepth: 0
    functionLinenumber: 879
    functionLinenumberEnd: 907
    functionName: mozilla::pkix::RememberSingleExtension
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 2
    functionsReached:
    - Input::GetLength
    - MatchRest
    - signedCertificateTimestamps::Init
    linkageType: ''
    returnType: Result
    signature: "Result RememberSingleExtension(Context& context, Reader& extnID, Input
      extnValue,\n                        bool /*critical*/, /*out*/ bool& understood)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: serialNumber::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:977,1
    - Dst: serialNumber::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:982,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:984,1
    - Dst: DigestBuf
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:1001,1
    - Dst: mozilla::pkix::KeyHash
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:1011,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:1020,1
    - Dst: serialNumber::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:1020,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:1023,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:1028,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:1030,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 41
    argCount: 4
    argNames:
    - ' trustDomain'
    - ' certID'
    - (out)
    - ' outLen'
    argTypes:
    - TrustDomain
    - struct CertID
    - uint8_t[]
    - size_t
    assertStmts:
    - condition: (d == out + totalLen)
      pos:
        line_end: 1029
        line_start: 1029
        source_file: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    constantsTouched: []
    func_position:
      end: 1033
      start: 932
    functionDepth: 4
    functionLinenumber: 932
    functionLinenumberEnd: 1033
    functionName: mozilla::pkix::CreateEncodedOCSPRequest
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 0
    functionsReached:
    - serialNumber::GetLength
    - mozilla::pkix::KeyHash
    - Reader::Read
    - Reader::AtEnd
    - assert
    - DigestBuf
    - static_cast<uint8_t>
    linkageType: ''
    returnType: Result
    signature: "Result CreateEncodedOCSPRequest(TrustDomain& trustDomain, const struct
      CertID& certID,\n                         /*out*/ uint8_t (&out)[OCSP_REQUEST_MAX_LENGTH],\n
      \                        /*out*/ size_t& outLen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TimeFromElapsedSecondsAD
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:57,1
    - Dst: TimeFromElapsedSecondsAD
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 6
    argNames:
    - ' aTrustDomain'
    - ' aCertID'
    - aTime
    - aMaxLifetimeInDays
    - aThisUpdate
    - aValidThrough
    argTypes:
    - TrustDomain
    - CertID
    - Time
    - uint16_t
    - Time*
    - Time*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 62
    functionName: mozilla::pkix::Context::Context
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 0
    functionsReached:
    - TimeFromElapsedSecondsAD
    linkageType: ''
    returnType: void
    signature: "void Context(TrustDomain& aTrustDomain, const CertID& aCertID, Time
      aTime,\n          uint16_t aMaxLifetimeInDays, /*optional out*/ Time* aThisUpdate,\n
      \         /*optional out*/ Time* aValidThrough)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: mozilla::pkix::Context::Context
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Context(const Context&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: operator=(const Context&)
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const Context&)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::CheckIssuerIndependentProperties
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:120,1
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:134,1
    - Dst: GetIssuer
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:134,1
    - Dst: mozilla::pkix::VerifySignedData
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:140,1
    - Dst: GetSignedData
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - ' trustDomain'
    - ' potentialSigner'
    - issuerSubject
    - issuerSubjectPublicKeyInfo
    - time
    argTypes:
    - TrustDomain
    - BackCert
    - Input
    - Input
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 87
    functionDepth: 6
    functionLinenumber: 87
    functionLinenumberEnd: 148
    functionName: mozilla::pkix::CheckOCSPResponseSignerCert
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 2
    functionsReached:
    - GetIssuer
    - mozilla::pkix::CheckIssuerIndependentProperties
    - mozilla::pkix::InputsAreEqual
    - GetSignedData
    - mozilla::pkix::VerifySignedData
    linkageType: ''
    returnType: Result
    signature: "Result CheckOCSPResponseSignerCert(TrustDomain& trustDomain,\n                            BackCert&
      potentialSigner,\n                            Input issuerSubject,\n                            Input
      issuerSubjectPublicKeyInfo,\n                            Time time)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:201,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:208,1
    - Dst: mozilla::pkix::MatchKeyHash
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:212,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 6
    argNames:
    - ' trustDomain'
    - responderIDType
    - responderID
    - potentialSignerSubject
    - potentialSignerSubjectPublicKeyInfo
    - ' match'
    argTypes:
    - TrustDomain
    - ResponderIDType
    - Input
    - Input
    - Input
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 218
    functionName: mozilla::pkix::MatchResponderID
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 2
    functionsReached:
    - mozilla::pkix::InputsAreEqual
    - mozilla::pkix::MatchKeyHash
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: "Result MatchResponderID(TrustDomain& trustDomain,\n                 ResponderIDType
      responderIDType,\n                 Input responderID,\n                 Input
      potentialSignerSubject,\n                 Input potentialSignerSubjectPublicKeyInfo,\n
      \                /*out*/ bool& match)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::VerifySignedData
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' trustDomain'
    - ' signedResponseData'
    - spki
    argTypes:
    - TrustDomain
    - der::SignedDataWithSignature
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 230
    functionName: mozilla::pkix::VerifyOCSPSignedData
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 2
    functionsReached:
    - mozilla::pkix::VerifySignedData
    linkageType: ''
    returnType: Result
    signature: "Result VerifyOCSPSignedData(TrustDomain& trustDomain,\n                     const
      der::SignedDataWithSignature& signedResponseData,\n                     Input
      spki)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::MatchResponderID
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:244,1
    - Dst: mozilla::pkix::VerifyOCSPSignedData
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:252,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:256,1
    - Dst: GetDER
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:258,1
    - Dst: BackCert::Init
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:259,1
    - Dst: mozilla::pkix::MatchResponderID
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:263,1
    - Dst: BackCert::GetSubject
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:264,1
    - Dst: BackCert::GetSubjectPublicKeyInfo
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:264,1
    - Dst: mozilla::pkix::IsFatalError
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:267,1
    - Dst: mozilla::pkix::CheckOCSPResponseSignerCert
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:274,1
    - Dst: mozilla::pkix::IsFatalError
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:279,1
    - Dst: mozilla::pkix::VerifyOCSPSignedData
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:285,1
    - Dst: BackCert::GetSubjectPublicKeyInfo
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:286,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 5
    argNames:
    - ' context'
    - responderIDType
    - responderID
    - ' certs'
    - ' signedResponseData'
    argTypes:
    - Context
    - ResponderIDType
    - Input
    - DERArray
    - der::SignedDataWithSignature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 238
    functionDepth: 7
    functionLinenumber: 238
    functionLinenumberEnd: 291
    functionName: mozilla::pkix::VerifySignature
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 2
    functionsReached:
    - BackCert::Init
    - BackCert::GetSubject
    - GetDER
    - BackCert::GetSubjectPublicKeyInfo
    - mozilla::pkix::IsFatalError
    - mozilla::pkix::MatchResponderID
    - GetLength
    - mozilla::pkix::VerifyOCSPSignedData
    - mozilla::pkix::CheckOCSPResponseSignerCert
    linkageType: ''
    returnType: Result
    signature: "Result VerifySignature(Context& context, ResponderIDType responderIDType,\n
      \               Input responderID, const DERArray& certs,\n                const
      der::SignedDataWithSignature& signedResponseData)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - rv
    argTypes:
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 300
    functionName: mozilla::pkix::MapBadDERToMalformedOCSPResponse
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: Result MapBadDERToMalformedOCSPResponse(Result rv)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:317,1
    - Dst: mozilla::pkix::OCSPResponse
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:318,1
    - Dst: mozilla::pkix::MapBadDERToMalformedOCSPResponse
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:321,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:323,1
    - Dst: mozilla::pkix::MapBadDERToMalformedOCSPResponse
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:325,1
    - Dst: Context::signedCertificateTimestamps::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:338,1
    - Dst: mozilla::pkix::ExtractSignedCertificateTimestampListFromExtension
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:340,1
    - Dst: mozilla::pkix::MapBadDERToMalformedOCSPResponse
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:343,1
    - Dst: Context::trustDomain::NoteAuxiliaryExtension
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:345,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 8
    argNames:
    - ' trustDomain'
    - ' certID'
    - time
    - maxOCSPLifetimeInDays
    - encodedResponse
    - ' expired'
    - thisUpdate
    - validThrough
    argTypes:
    - TrustDomain
    - struct CertID
    - Time
    - uint16_t
    - Input
    - bool
    - Time*
    - Time*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 302
    functionDepth: 4
    functionLinenumber: 302
    functionLinenumberEnd: 355
    functionName: mozilla::pkix::VerifyEncodedOCSPResponse
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::End
    - Context::trustDomain::NoteAuxiliaryExtension
    - mozilla::pkix::OCSPResponse
    - mozilla::pkix::MapBadDERToMalformedOCSPResponse
    - mozilla::pkix::ExtractSignedCertificateTimestampListFromExtension
    - mozilla::pkix::der::Nested
    - Context::signedCertificateTimestamps::GetLength
    linkageType: ''
    returnType: Result
    signature: "Result VerifyEncodedOCSPResponse(TrustDomain& trustDomain, const struct
      CertID& certID,\n                          Time time, uint16_t maxOCSPLifetimeInDays,\n
      \                         Input encodedResponse,\n                          /*out*/
      bool& expired,\n                          /*optional out*/ Time* thisUpdate,\n
      \                         /*optional out*/ Time* validThrough)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::Enumerated
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:375,1
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:389,1
    - Dst: mozilla::pkix::ResponseBytes
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:391,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 2
    argNames:
    - ' input'
    - ' context'
    argTypes:
    - Reader
    - Context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 361
    functionDepth: 4
    functionLinenumber: 361
    functionLinenumberEnd: 393
    functionName: mozilla::pkix::OCSPResponse
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 3
    functionsReached:
    - mozilla::pkix::der::Enumerated
    - mozilla::pkix::der::Nested
    - mozilla::pkix::ResponseBytes
    linkageType: ''
    returnType: Result
    signature: Result OCSPResponse(Reader& input, Context& context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::OID
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:405,1
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:410,1
    - Dst: mozilla::pkix::BasicResponse
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' input'
    - ' context'
    argTypes:
    - Reader
    - Context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 398
    functionDepth: 5
    functionLinenumber: 398
    functionLinenumberEnd: 414
    functionName: mozilla::pkix::ResponseBytes
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 3
    functionsReached:
    - mozilla::pkix::BasicResponse
    - mozilla::pkix::der::Nested
    - mozilla::pkix::der::OID
    linkageType: ''
    returnType: Result
    signature: Result ResponseBytes(Reader& input, Context& context)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::SignedData
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:426,1
    - Dst: AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:436,1
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:437,1
    - Dst: AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:439,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetTLV
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:442,1
    - Dst: NonOwningDERArray::Append
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:446,1
    - Dst: mozilla::pkix::ResponseData
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:458,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - ' input'
    - ' context'
    argTypes:
    - Reader
    - Context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 421
    functionDepth: 9
    functionLinenumber: 421
    functionLinenumberEnd: 459
    functionName: mozilla::pkix::BasicResponse
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 3
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndGetTLV
    - mozilla::pkix::ResponseData
    - mozilla::pkix::der::Nested
    - mozilla::pkix::der::SignedData
    - NonOwningDERArray::Append
    - AtEnd
    linkageType: ''
    returnType: Result
    signature: Result BasicResponse(Reader& input, Context& context)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::OptionalVersion
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:473,1
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:487,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:487,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:490,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:490,1
    - Dst: mozilla::pkix::VerifySignature
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:499,1
    - Dst: mozilla::pkix::der::GeneralizedTime
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:507,1
    - Dst: mozilla::pkix::der::NestedOf
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:515,1
    - Dst: mozilla::pkix::SingleResponse
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:517,1
    - Dst: mozilla::pkix::der::OptionalExtensions
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:523,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:530,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 4
    argNames:
    - ' input'
    - ' context'
    - ' signedResponseData'
    - ' certs'
    argTypes:
    - Reader
    - Context
    - der::SignedDataWithSignature
    - DERArray
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 467
    functionDepth: 8
    functionLinenumber: 467
    functionLinenumberEnd: 531
    functionName: mozilla::pkix::ResponseData
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 3
    functionsReached:
    - mozilla::pkix::der::End
    - mozilla::pkix::VerifySignature
    - mozilla::pkix::der::ExpectTagAndGetValue
    - mozilla::pkix::der::GeneralizedTime
    - mozilla::pkix::der::NestedOf
    - mozilla::pkix::der::OptionalExtensions
    - mozilla::pkix::SingleResponse
    - Peek
    - static_cast<uint8_t>
    - mozilla::pkix::der::OptionalVersion
    linkageType: ''
    returnType: Result
    signature: "Result ResponseData(Reader& input, Context& context,\n             const
      der::SignedDataWithSignature& signedResponseData,\n             const DERArray&
      certs)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:546,1
    - Dst: mozilla::pkix::MatchCertID
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:547,1
    - Dst: SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:558,1
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:575,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:575,1
    - Dst: mozilla::pkix::der::ExpectTagAndEmptyValue
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:576,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:577,1
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:584,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:584,1
    - Dst: mozilla::pkix::der::ExpectTagAndSkipValue
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:589,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:590,1
    - Dst: mozilla::pkix::der::ExpectTagAndEmptyValue
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:596,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:597,1
    - Dst: mozilla::pkix::der::GeneralizedTime
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:611,1
    - Dst: Time::AddSeconds
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:619,1
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:630,1
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:632,1
    - Dst: mozilla::pkix::der::GeneralizedTime
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:633,1
    - Dst: Time::AddSeconds
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:643,1
    - Dst: Time::AddSeconds
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:656,1
    - Dst: Time::AddSeconds
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:665,1
    - Dst: mozilla::pkix::der::OptionalExtensions
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:675,1
    - Dst: mozilla::pkix::RememberSingleExtension
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:680,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 86
    argCount: 2
    argNames:
    - ' input'
    - ' context'
    argTypes:
    - Reader
    - Context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 542
    functionDepth: 5
    functionLinenumber: 542
    functionLinenumberEnd: 696
    functionName: mozilla::pkix::SingleResponse
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 3
    functionsReached:
    - mozilla::pkix::der::GeneralizedTime
    - SkipToEnd
    - mozilla::pkix::der::OptionalExtensions
    - mozilla::pkix::RememberSingleExtension
    - mozilla::pkix::der::Nested
    - mozilla::pkix::der::ExpectTagAndEmptyValue
    - mozilla::pkix::der::ExpectTagAndSkipValue
    - mozilla::pkix::MatchCertID
    - Peek
    - Time::AddSeconds
    - static_cast<uint8_t>
    linkageType: ''
    returnType: Result
    signature: Result SingleResponse(Reader& input, Context& context)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::DigestAlgorithmIdentifier
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:709,1
    - Dst: SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:713,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:720,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:726,1
    - Dst: mozilla::pkix::der::CertificateSerialNumber
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:732,1
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:737,1
    - Dst: SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:741,1
    - Dst: mozilla::pkix::DigestAlgorithmToSizeInBytes
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:745,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:746,1
    - Dst: trustDomain::DigestBuf
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:757,1
    - Dst: Input::Init
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:764,1
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:768,1
    - Dst: SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:770,1
    - Dst: mozilla::pkix::MatchKeyHash
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:774,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 3
    argNames:
    - ' input'
    - ' context'
    - ' match'
    argTypes:
    - Reader
    - Context
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 703
    functionDepth: 2
    functionLinenumber: 703
    functionLinenumberEnd: 776
    functionName: mozilla::pkix::MatchCertID
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 3
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndGetValue
    - SkipToEnd
    - mozilla::pkix::der::CertificateSerialNumber
    - Input::GetLength
    - mozilla::pkix::der::DigestAlgorithmIdentifier
    - mozilla::pkix::MatchKeyHash
    - trustDomain::DigestBuf
    - mozilla::pkix::InputsAreEqual
    - Input::Init
    - mozilla::pkix::DigestAlgorithmToSizeInBytes
    linkageType: ''
    returnType: Result
    signature: Result MatchCertID(Reader& input, const Context& context, /*out*/ bool&
      match)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::DigestAlgorithmToSizeInBytes
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:807,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:808,1
    - Dst: mozilla::pkix::KeyHash
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:815,1
    - Dst: Input::Init
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:821,1
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:825,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - ' trustDomain'
    - hashAlgorithm
    - keyHash
    - subjectPublicKeyInfo
    - ' match'
    argTypes:
    - TrustDomain
    - DigestAlgorithm
    - Input
    - Input
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 802
    functionDepth: 4
    functionLinenumber: 802
    functionLinenumberEnd: 827
    functionName: mozilla::pkix::MatchKeyHash
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 6
    functionsReached:
    - mozilla::pkix::KeyHash
    - Input::GetLength
    - mozilla::pkix::InputsAreEqual
    - Input::Init
    - mozilla::pkix::DigestAlgorithmToSizeInBytes
    linkageType: ''
    returnType: Result
    signature: "Result MatchKeyHash(TrustDomain& trustDomain, DigestAlgorithm hashAlgorithm,\n
      \            Input keyHash, const Input subjectPublicKeyInfo,\n             /*out*/
      bool& match)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::DigestAlgorithmToSizeInBytes
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:834,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:845,1
    - Dst: mozilla::pkix::der::ExpectTagAndSkipValue
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:852,1
    - Dst: mozilla::pkix::der::BitStringWithNoUnusedBits
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:858,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:862,1
    - Dst: DigestBuf
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:867,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 5
    argNames:
    - ' trustDomain'
    - hashAlgorithm
    - subjectPublicKeyInfo
    - hashBuf
    - hashBufSize
    argTypes:
    - TrustDomain
    - DigestAlgorithm
    - Input
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 829
    functionDepth: 3
    functionLinenumber: 829
    functionLinenumberEnd: 869
    functionName: mozilla::pkix::KeyHash
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 5
    functionsReached:
    - mozilla::pkix::der::End
    - mozilla::pkix::der::BitStringWithNoUnusedBits
    - mozilla::pkix::der::ExpectTagAndSkipValue
    - DigestBuf
    - mozilla::pkix::DigestAlgorithmToSizeInBytes
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    linkageType: ''
    returnType: Result
    signature: "Result KeyHash(TrustDomain& trustDomain, DigestAlgorithm hashAlgorithm,\n
      \       const Input subjectPublicKeyInfo, /*out*/ uint8_t* hashBuf,\n        size_t
      hashBufSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' understood'
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 871
    functionDepth: 0
    functionLinenumber: 871
    functionLinenumberEnd: 877
    functionName: mozilla::pkix::ExtensionNotUnderstood
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result ExtensionNotUnderstood(Reader& /*extnID*/, Input /*extnValue*/,\n
      \                      bool /*critical*/, /*out*/ bool& understood)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:893,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:896,1
    - Dst: signedCertificateTimestamps::Init
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:899,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - ' context'
    - ' extnID'
    - extnValue
    - ' understood'
    argTypes:
    - Context
    - Reader
    - Input
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 879
    functionDepth: 0
    functionLinenumber: 879
    functionLinenumberEnd: 907
    functionName: mozilla::pkix::RememberSingleExtension
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 3
    functionsReached:
    - Input::GetLength
    - MatchRest
    - signedCertificateTimestamps::Init
    linkageType: ''
    returnType: Result
    signature: "Result RememberSingleExtension(Context& context, Reader& extnID, Input
      extnValue,\n                        bool /*critical*/, /*out*/ bool& understood)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: serialNumber::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:977,1
    - Dst: serialNumber::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:982,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:984,1
    - Dst: DigestBuf
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:1001,1
    - Dst: mozilla::pkix::KeyHash
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:1011,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:1020,1
    - Dst: serialNumber::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:1020,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:1023,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:1028,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:1030,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 41
    argCount: 4
    argNames:
    - ' trustDomain'
    - ' certID'
    - (out)
    - ' outLen'
    argTypes:
    - TrustDomain
    - struct CertID
    - uint8_t[]
    - size_t
    assertStmts:
    - condition: (d == out + totalLen)
      pos:
        line_end: 1029
        line_start: 1029
        source_file: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    constantsTouched: []
    func_position:
      end: 1033
      start: 932
    functionDepth: 4
    functionLinenumber: 932
    functionLinenumberEnd: 1033
    functionName: mozilla::pkix::CreateEncodedOCSPRequest
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 0
    functionsReached:
    - serialNumber::GetLength
    - mozilla::pkix::KeyHash
    - Reader::Read
    - Reader::AtEnd
    - assert
    - DigestBuf
    - static_cast<uint8_t>
    linkageType: ''
    returnType: Result
    signature: "Result CreateEncodedOCSPRequest(TrustDomain& trustDomain, const struct
      CertID& certID,\n                         /*out*/ uint8_t (&out)[OCSP_REQUEST_MAX_LENGTH],\n
      \                        /*out*/ size_t& outLen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TimeFromElapsedSecondsAD
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:57,1
    - Dst: TimeFromElapsedSecondsAD
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 6
    argNames:
    - ' aTrustDomain'
    - ' aCertID'
    - aTime
    - aMaxLifetimeInDays
    - aThisUpdate
    - aValidThrough
    argTypes:
    - TrustDomain
    - CertID
    - Time
    - uint16_t
    - Time*
    - Time*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 62
    functionName: mozilla::pkix::Context::Context
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 0
    functionsReached:
    - TimeFromElapsedSecondsAD
    linkageType: ''
    returnType: void
    signature: "void Context(TrustDomain& aTrustDomain, const CertID& aCertID, Time
      aTime,\n          uint16_t aMaxLifetimeInDays, /*optional out*/ Time* aThisUpdate,\n
      \         /*optional out*/ Time* aValidThrough)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: mozilla::pkix::Context::Context
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Context(const Context&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: operator=(const Context&)
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const Context&)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::CheckIssuerIndependentProperties
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:120,1
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:134,1
    - Dst: GetIssuer
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:134,1
    - Dst: mozilla::pkix::VerifySignedData
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:140,1
    - Dst: GetSignedData
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - ' trustDomain'
    - ' potentialSigner'
    - issuerSubject
    - issuerSubjectPublicKeyInfo
    - time
    argTypes:
    - TrustDomain
    - BackCert
    - Input
    - Input
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 87
    functionDepth: 6
    functionLinenumber: 87
    functionLinenumberEnd: 148
    functionName: mozilla::pkix::CheckOCSPResponseSignerCert
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 3
    functionsReached:
    - GetIssuer
    - mozilla::pkix::CheckIssuerIndependentProperties
    - mozilla::pkix::InputsAreEqual
    - GetSignedData
    - mozilla::pkix::VerifySignedData
    linkageType: ''
    returnType: Result
    signature: "Result CheckOCSPResponseSignerCert(TrustDomain& trustDomain,\n                            BackCert&
      potentialSigner,\n                            Input issuerSubject,\n                            Input
      issuerSubjectPublicKeyInfo,\n                            Time time)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:201,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:208,1
    - Dst: mozilla::pkix::MatchKeyHash
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:212,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 6
    argNames:
    - ' trustDomain'
    - responderIDType
    - responderID
    - potentialSignerSubject
    - potentialSignerSubjectPublicKeyInfo
    - ' match'
    argTypes:
    - TrustDomain
    - ResponderIDType
    - Input
    - Input
    - Input
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 218
    functionName: mozilla::pkix::MatchResponderID
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 3
    functionsReached:
    - mozilla::pkix::InputsAreEqual
    - mozilla::pkix::MatchKeyHash
    - mozilla::pkix::der::ExpectTagAndGetValue
    linkageType: ''
    returnType: Result
    signature: "Result MatchResponderID(TrustDomain& trustDomain,\n                 ResponderIDType
      responderIDType,\n                 Input responderID,\n                 Input
      potentialSignerSubject,\n                 Input potentialSignerSubjectPublicKeyInfo,\n
      \                /*out*/ bool& match)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::VerifySignedData
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' trustDomain'
    - ' signedResponseData'
    - spki
    argTypes:
    - TrustDomain
    - der::SignedDataWithSignature
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 230
    functionName: mozilla::pkix::VerifyOCSPSignedData
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 3
    functionsReached:
    - mozilla::pkix::VerifySignedData
    linkageType: ''
    returnType: Result
    signature: "Result VerifyOCSPSignedData(TrustDomain& trustDomain,\n                     const
      der::SignedDataWithSignature& signedResponseData,\n                     Input
      spki)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::MatchResponderID
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:244,1
    - Dst: mozilla::pkix::VerifyOCSPSignedData
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:252,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:256,1
    - Dst: GetDER
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:258,1
    - Dst: BackCert::Init
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:259,1
    - Dst: mozilla::pkix::MatchResponderID
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:263,1
    - Dst: BackCert::GetSubject
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:264,1
    - Dst: BackCert::GetSubjectPublicKeyInfo
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:264,1
    - Dst: mozilla::pkix::IsFatalError
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:267,1
    - Dst: mozilla::pkix::CheckOCSPResponseSignerCert
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:274,1
    - Dst: mozilla::pkix::IsFatalError
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:279,1
    - Dst: mozilla::pkix::VerifyOCSPSignedData
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:285,1
    - Dst: BackCert::GetSubjectPublicKeyInfo
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:286,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 5
    argNames:
    - ' context'
    - responderIDType
    - responderID
    - ' certs'
    - ' signedResponseData'
    argTypes:
    - Context
    - ResponderIDType
    - Input
    - DERArray
    - der::SignedDataWithSignature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 238
    functionDepth: 7
    functionLinenumber: 238
    functionLinenumberEnd: 291
    functionName: mozilla::pkix::VerifySignature
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 3
    functionsReached:
    - BackCert::Init
    - BackCert::GetSubject
    - GetDER
    - BackCert::GetSubjectPublicKeyInfo
    - mozilla::pkix::IsFatalError
    - mozilla::pkix::MatchResponderID
    - GetLength
    - mozilla::pkix::VerifyOCSPSignedData
    - mozilla::pkix::CheckOCSPResponseSignerCert
    linkageType: ''
    returnType: Result
    signature: "Result VerifySignature(Context& context, ResponderIDType responderIDType,\n
      \               Input responderID, const DERArray& certs,\n                const
      der::SignedDataWithSignature& signedResponseData)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - rv
    argTypes:
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 300
    functionName: mozilla::pkix::MapBadDERToMalformedOCSPResponse
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: Result MapBadDERToMalformedOCSPResponse(Result rv)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:317,1
    - Dst: mozilla::pkix::OCSPResponse
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:318,1
    - Dst: mozilla::pkix::MapBadDERToMalformedOCSPResponse
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:321,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:323,1
    - Dst: mozilla::pkix::MapBadDERToMalformedOCSPResponse
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:325,1
    - Dst: Context::signedCertificateTimestamps::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:338,1
    - Dst: mozilla::pkix::ExtractSignedCertificateTimestampListFromExtension
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:340,1
    - Dst: mozilla::pkix::MapBadDERToMalformedOCSPResponse
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:343,1
    - Dst: Context::trustDomain::NoteAuxiliaryExtension
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:345,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 8
    argNames:
    - ' trustDomain'
    - ' certID'
    - time
    - maxOCSPLifetimeInDays
    - encodedResponse
    - ' expired'
    - thisUpdate
    - validThrough
    argTypes:
    - TrustDomain
    - struct CertID
    - Time
    - uint16_t
    - Input
    - bool
    - Time*
    - Time*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 302
    functionDepth: 4
    functionLinenumber: 302
    functionLinenumberEnd: 355
    functionName: mozilla::pkix::VerifyEncodedOCSPResponse
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::End
    - Context::trustDomain::NoteAuxiliaryExtension
    - mozilla::pkix::OCSPResponse
    - mozilla::pkix::MapBadDERToMalformedOCSPResponse
    - mozilla::pkix::ExtractSignedCertificateTimestampListFromExtension
    - mozilla::pkix::der::Nested
    - Context::signedCertificateTimestamps::GetLength
    linkageType: ''
    returnType: Result
    signature: "Result VerifyEncodedOCSPResponse(TrustDomain& trustDomain, const struct
      CertID& certID,\n                          Time time, uint16_t maxOCSPLifetimeInDays,\n
      \                         Input encodedResponse,\n                          /*out*/
      bool& expired,\n                          /*optional out*/ Time* thisUpdate,\n
      \                         /*optional out*/ Time* validThrough)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::Enumerated
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:375,1
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:389,1
    - Dst: mozilla::pkix::ResponseBytes
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:391,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 2
    argNames:
    - ' input'
    - ' context'
    argTypes:
    - Reader
    - Context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 361
    functionDepth: 4
    functionLinenumber: 361
    functionLinenumberEnd: 393
    functionName: mozilla::pkix::OCSPResponse
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 4
    functionsReached:
    - mozilla::pkix::der::Enumerated
    - mozilla::pkix::der::Nested
    - mozilla::pkix::ResponseBytes
    linkageType: ''
    returnType: Result
    signature: Result OCSPResponse(Reader& input, Context& context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::OID
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:405,1
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:410,1
    - Dst: mozilla::pkix::BasicResponse
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' input'
    - ' context'
    argTypes:
    - Reader
    - Context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 398
    functionDepth: 5
    functionLinenumber: 398
    functionLinenumberEnd: 414
    functionName: mozilla::pkix::ResponseBytes
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 4
    functionsReached:
    - mozilla::pkix::BasicResponse
    - mozilla::pkix::der::Nested
    - mozilla::pkix::der::OID
    linkageType: ''
    returnType: Result
    signature: Result ResponseBytes(Reader& input, Context& context)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::SignedData
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:426,1
    - Dst: AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:436,1
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:437,1
    - Dst: AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:439,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetTLV
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:442,1
    - Dst: NonOwningDERArray::Append
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:446,1
    - Dst: mozilla::pkix::ResponseData
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:458,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - ' input'
    - ' context'
    argTypes:
    - Reader
    - Context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 421
    functionDepth: 9
    functionLinenumber: 421
    functionLinenumberEnd: 459
    functionName: mozilla::pkix::BasicResponse
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 4
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndGetTLV
    - mozilla::pkix::ResponseData
    - mozilla::pkix::der::Nested
    - mozilla::pkix::der::SignedData
    - NonOwningDERArray::Append
    - AtEnd
    linkageType: ''
    returnType: Result
    signature: Result BasicResponse(Reader& input, Context& context)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::OptionalVersion
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:473,1
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:487,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:487,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:490,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:490,1
    - Dst: mozilla::pkix::VerifySignature
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:499,1
    - Dst: mozilla::pkix::der::GeneralizedTime
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:507,1
    - Dst: mozilla::pkix::der::NestedOf
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:515,1
    - Dst: mozilla::pkix::SingleResponse
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:517,1
    - Dst: mozilla::pkix::der::OptionalExtensions
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:523,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:530,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 4
    argNames:
    - ' input'
    - ' context'
    - ' signedResponseData'
    - ' certs'
    argTypes:
    - Reader
    - Context
    - der::SignedDataWithSignature
    - DERArray
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 467
    functionDepth: 8
    functionLinenumber: 467
    functionLinenumberEnd: 531
    functionName: mozilla::pkix::ResponseData
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 4
    functionsReached:
    - mozilla::pkix::der::End
    - mozilla::pkix::VerifySignature
    - mozilla::pkix::der::ExpectTagAndGetValue
    - mozilla::pkix::der::GeneralizedTime
    - mozilla::pkix::der::NestedOf
    - mozilla::pkix::der::OptionalExtensions
    - mozilla::pkix::SingleResponse
    - Peek
    - static_cast<uint8_t>
    - mozilla::pkix::der::OptionalVersion
    linkageType: ''
    returnType: Result
    signature: "Result ResponseData(Reader& input, Context& context,\n             const
      der::SignedDataWithSignature& signedResponseData,\n             const DERArray&
      certs)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:546,1
    - Dst: mozilla::pkix::MatchCertID
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:547,1
    - Dst: SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:558,1
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:575,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:575,1
    - Dst: mozilla::pkix::der::ExpectTagAndEmptyValue
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:576,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:577,1
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:584,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:584,1
    - Dst: mozilla::pkix::der::ExpectTagAndSkipValue
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:589,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:590,1
    - Dst: mozilla::pkix::der::ExpectTagAndEmptyValue
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:596,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:597,1
    - Dst: mozilla::pkix::der::GeneralizedTime
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:611,1
    - Dst: Time::AddSeconds
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:619,1
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:630,1
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:632,1
    - Dst: mozilla::pkix::der::GeneralizedTime
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:633,1
    - Dst: Time::AddSeconds
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:643,1
    - Dst: Time::AddSeconds
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:656,1
    - Dst: Time::AddSeconds
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:665,1
    - Dst: mozilla::pkix::der::OptionalExtensions
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:675,1
    - Dst: mozilla::pkix::RememberSingleExtension
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:680,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 86
    argCount: 2
    argNames:
    - ' input'
    - ' context'
    argTypes:
    - Reader
    - Context
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 542
    functionDepth: 5
    functionLinenumber: 542
    functionLinenumberEnd: 696
    functionName: mozilla::pkix::SingleResponse
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 4
    functionsReached:
    - mozilla::pkix::der::GeneralizedTime
    - SkipToEnd
    - mozilla::pkix::der::OptionalExtensions
    - mozilla::pkix::RememberSingleExtension
    - mozilla::pkix::der::Nested
    - mozilla::pkix::der::ExpectTagAndEmptyValue
    - mozilla::pkix::der::ExpectTagAndSkipValue
    - mozilla::pkix::MatchCertID
    - Peek
    - Time::AddSeconds
    - static_cast<uint8_t>
    linkageType: ''
    returnType: Result
    signature: Result SingleResponse(Reader& input, Context& context)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::DigestAlgorithmIdentifier
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:709,1
    - Dst: SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:713,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:720,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:726,1
    - Dst: mozilla::pkix::der::CertificateSerialNumber
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:732,1
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:737,1
    - Dst: SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:741,1
    - Dst: mozilla::pkix::DigestAlgorithmToSizeInBytes
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:745,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:746,1
    - Dst: trustDomain::DigestBuf
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:757,1
    - Dst: Input::Init
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:764,1
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:768,1
    - Dst: SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:770,1
    - Dst: mozilla::pkix::MatchKeyHash
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:774,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 3
    argNames:
    - ' input'
    - ' context'
    - ' match'
    argTypes:
    - Reader
    - Context
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 703
    functionDepth: 2
    functionLinenumber: 703
    functionLinenumberEnd: 776
    functionName: mozilla::pkix::MatchCertID
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 4
    functionsReached:
    - mozilla::pkix::der::ExpectTagAndGetValue
    - SkipToEnd
    - mozilla::pkix::der::CertificateSerialNumber
    - Input::GetLength
    - mozilla::pkix::der::DigestAlgorithmIdentifier
    - mozilla::pkix::MatchKeyHash
    - trustDomain::DigestBuf
    - mozilla::pkix::InputsAreEqual
    - Input::Init
    - mozilla::pkix::DigestAlgorithmToSizeInBytes
    linkageType: ''
    returnType: Result
    signature: Result MatchCertID(Reader& input, const Context& context, /*out*/ bool&
      match)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::DigestAlgorithmToSizeInBytes
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:807,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:808,1
    - Dst: mozilla::pkix::KeyHash
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:815,1
    - Dst: Input::Init
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:821,1
    - Dst: mozilla::pkix::InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:825,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - ' trustDomain'
    - hashAlgorithm
    - keyHash
    - subjectPublicKeyInfo
    - ' match'
    argTypes:
    - TrustDomain
    - DigestAlgorithm
    - Input
    - Input
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 802
    functionDepth: 4
    functionLinenumber: 802
    functionLinenumberEnd: 827
    functionName: mozilla::pkix::MatchKeyHash
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 8
    functionsReached:
    - mozilla::pkix::KeyHash
    - Input::GetLength
    - mozilla::pkix::InputsAreEqual
    - Input::Init
    - mozilla::pkix::DigestAlgorithmToSizeInBytes
    linkageType: ''
    returnType: Result
    signature: "Result MatchKeyHash(TrustDomain& trustDomain, DigestAlgorithm hashAlgorithm,\n
      \            Input keyHash, const Input subjectPublicKeyInfo,\n             /*out*/
      bool& match)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::DigestAlgorithmToSizeInBytes
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:834,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:845,1
    - Dst: mozilla::pkix::der::ExpectTagAndSkipValue
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:852,1
    - Dst: mozilla::pkix::der::BitStringWithNoUnusedBits
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:858,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:862,1
    - Dst: DigestBuf
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:867,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 5
    argNames:
    - ' trustDomain'
    - hashAlgorithm
    - subjectPublicKeyInfo
    - hashBuf
    - hashBufSize
    argTypes:
    - TrustDomain
    - DigestAlgorithm
    - Input
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 829
    functionDepth: 3
    functionLinenumber: 829
    functionLinenumberEnd: 869
    functionName: mozilla::pkix::KeyHash
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 7
    functionsReached:
    - mozilla::pkix::der::End
    - mozilla::pkix::der::BitStringWithNoUnusedBits
    - mozilla::pkix::der::ExpectTagAndSkipValue
    - DigestBuf
    - mozilla::pkix::DigestAlgorithmToSizeInBytes
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    linkageType: ''
    returnType: Result
    signature: "Result KeyHash(TrustDomain& trustDomain, DigestAlgorithm hashAlgorithm,\n
      \       const Input subjectPublicKeyInfo, /*out*/ uint8_t* hashBuf,\n        size_t
      hashBufSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' understood'
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 871
    functionDepth: 0
    functionLinenumber: 871
    functionLinenumberEnd: 877
    functionName: mozilla::pkix::ExtensionNotUnderstood
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result ExtensionNotUnderstood(Reader& /*extnID*/, Input /*extnValue*/,\n
      \                      bool /*critical*/, /*out*/ bool& understood)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:893,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:896,1
    - Dst: signedCertificateTimestamps::Init
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:899,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - ' context'
    - ' extnID'
    - extnValue
    - ' understood'
    argTypes:
    - Context
    - Reader
    - Input
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 879
    functionDepth: 0
    functionLinenumber: 879
    functionLinenumberEnd: 907
    functionName: mozilla::pkix::RememberSingleExtension
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 4
    functionsReached:
    - Input::GetLength
    - MatchRest
    - signedCertificateTimestamps::Init
    linkageType: ''
    returnType: Result
    signature: "Result RememberSingleExtension(Context& context, Reader& extnID, Input
      extnValue,\n                        bool /*critical*/, /*out*/ bool& understood)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: serialNumber::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:977,1
    - Dst: serialNumber::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:982,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:984,1
    - Dst: DigestBuf
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:1001,1
    - Dst: mozilla::pkix::KeyHash
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:1011,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:1020,1
    - Dst: serialNumber::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:1020,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:1023,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:1028,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixocsp.cpp:1030,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 41
    argCount: 4
    argNames:
    - ' trustDomain'
    - ' certID'
    - (out)
    - ' outLen'
    argTypes:
    - TrustDomain
    - struct CertID
    - uint8_t[]
    - size_t
    assertStmts:
    - condition: (d == out + totalLen)
      pos:
        line_end: 1029
        line_start: 1029
        source_file: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    constantsTouched: []
    func_position:
      end: 1033
      start: 932
    functionDepth: 4
    functionLinenumber: 932
    functionLinenumberEnd: 1033
    functionName: mozilla::pkix::CreateEncodedOCSPRequest
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixocsp.cpp
    functionUses: 0
    functionsReached:
    - serialNumber::GetLength
    - mozilla::pkix::KeyHash
    - Reader::Read
    - Reader::AtEnd
    - assert
    - DigestBuf
    - static_cast<uint8_t>
    linkageType: ''
    returnType: Result
    signature: "Result CreateEncodedOCSPRequest(TrustDomain& trustDomain, const struct
      CertID& certID,\n                         /*out*/ uint8_t (&out)[OCSP_REQUEST_MAX_LENGTH],\n
      \                        /*out*/ size_t& outLen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECKEY_DecodeDERSubjectPublicKeyInfo
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:49,1
    - Dst: mozilla::pkix::MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:51,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:51,1
    - Dst: reset
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:53,1
    - Dst: SECKEY_ExtractPublicKey
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:53,1
    - Dst: ScopedCERTSubjectPublicKeyInfo::get
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:53,1
    - Dst: mozilla::pkix::MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:55,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - subjectPublicKeyInfo
    - ' publicKey'
    argTypes:
    - Input
    - ScopedSECKEYPublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 42
    functionDepth: 4
    functionLinenumber: 42
    functionLinenumberEnd: 58
    functionName: mozilla::pkix::SubjectPublicKeyInfoToSECKEYPublicKey
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnss.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::MapPRErrorCodeToResult
    - SECKEY_ExtractPublicKey
    - SECKEY_DecodeDERSubjectPublicKeyInfo
    - ScopedCERTSubjectPublicKeyInfo::get
    - reset
    - PR_GetError
    linkageType: ''
    returnType: Result
    signature: "Result SubjectPublicKeyInfoToSECKEYPublicKey(Input subjectPublicKeyInfo,\n
      \   ScopedSECKEYPublicKey& publicKey)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NSS_GetAlgorithmPolicy
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:75,1
    - Dst: mozilla::pkix::MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:76,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:76,1
    - Dst: PK11_VerifyWithMechanism
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:82,1
    - Dst: mozilla::pkix::MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:85,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:85,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 7
    argNames:
    - publicKey
    - mechanism
    - params
    - signature
    - data
    - (policyTags)
    - pkcs11PinArg
    argTypes:
    - SECKEYPublicKey*
    - CK_MECHANISM_TYPE
    - SECItem*
    - SECItem*
    - SECItem*
    - SECOidTag[]
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 61
    functionDepth: 9
    functionLinenumber: 61
    functionLinenumberEnd: 88
    functionName: mozilla::pkix::VerifySignedData
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnss.cpp
    functionUses: 8
    functionsReached:
    - NSS_GetAlgorithmPolicy
    - mozilla::pkix::MapPRErrorCodeToResult
    - PK11_VerifyWithMechanism
    - PR_GetError
    linkageType: ''
    returnType: Result
    signature: "Result VerifySignedData(SECKEYPublicKey* publicKey, CK_MECHANISM_TYPE
      mechanism,\n    SECItem* params, SECItem* signature, SECItem* data,\n    SECOidTag
      (&policyTags)[N], void* pkcs11PinArg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECKEY_DecodeDERSubjectPublicKeyInfo
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:49,1
    - Dst: mozilla::pkix::MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:51,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:51,1
    - Dst: reset
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:53,1
    - Dst: SECKEY_ExtractPublicKey
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:53,1
    - Dst: ScopedCERTSubjectPublicKeyInfo::get
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:53,1
    - Dst: mozilla::pkix::MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:55,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - subjectPublicKeyInfo
    - ' publicKey'
    argTypes:
    - Input
    - ScopedSECKEYPublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 42
    functionDepth: 4
    functionLinenumber: 42
    functionLinenumberEnd: 58
    functionName: mozilla::pkix::SubjectPublicKeyInfoToSECKEYPublicKey
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnss.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::MapPRErrorCodeToResult
    - SECKEY_ExtractPublicKey
    - SECKEY_DecodeDERSubjectPublicKeyInfo
    - ScopedCERTSubjectPublicKeyInfo::get
    - reset
    - PR_GetError
    linkageType: ''
    returnType: Result
    signature: "Result SubjectPublicKeyInfoToSECKEYPublicKey(Input subjectPublicKeyInfo,\n
      \   ScopedSECKEYPublicKey& publicKey)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NSS_GetAlgorithmPolicy
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:75,1
    - Dst: mozilla::pkix::MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:76,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:76,1
    - Dst: PK11_VerifyWithMechanism
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:82,1
    - Dst: mozilla::pkix::MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:85,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:85,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 7
    argNames:
    - publicKey
    - mechanism
    - params
    - signature
    - data
    - (policyTags)
    - pkcs11PinArg
    argTypes:
    - SECKEYPublicKey*
    - CK_MECHANISM_TYPE
    - SECItem*
    - SECItem*
    - SECItem*
    - SECOidTag[]
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 61
    functionDepth: 9
    functionLinenumber: 61
    functionLinenumberEnd: 88
    functionName: mozilla::pkix::VerifySignedData
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnss.cpp
    functionUses: 8
    functionsReached:
    - NSS_GetAlgorithmPolicy
    - mozilla::pkix::MapPRErrorCodeToResult
    - PK11_VerifyWithMechanism
    - PR_GetError
    linkageType: ''
    returnType: Result
    signature: "Result VerifySignedData(SECKEYPublicKey* publicKey, CK_MECHANISM_TYPE
      mechanism,\n    SECItem* params, SECItem* signature, SECItem* data,\n    SECOidTag
      (&policyTags)[N], void* pkcs11PinArg)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::SubjectPublicKeyInfoToSECKEYPublicKey
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:96,1
    - Dst: mozilla::pkix::VerifySignedData
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:132,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:132,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 5
    argNames:
    - data
    - digestAlgorithm
    - signature
    - subjectPublicKeyInfo
    - pkcs11PinArg
    argTypes:
    - Input
    - DigestAlgorithm
    - Input
    - Input
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 91
    functionDepth: 5
    functionLinenumber: 91
    functionLinenumberEnd: 134
    functionName: mozilla::pkix::VerifyRSAPKCS1SignedDataNSS
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnss.cpp
    functionUses: 0
    functionsReached:
    - ScopedSECKEYPublicKey::get
    - mozilla::pkix::SubjectPublicKeyInfoToSECKEYPublicKey
    - mozilla::pkix::VerifySignedData
    linkageType: ''
    returnType: Result
    signature: "Result VerifyRSAPKCS1SignedDataNSS(Input data, DigestAlgorithm digestAlgorithm,\n
      \   Input signature, Input subjectPublicKeyInfo, void* pkcs11PinArg)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::SubjectPublicKeyInfoToSECKEYPublicKey
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:141,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:180,1
    - Dst: mozilla::pkix::VerifySignedData
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:183,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:183,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 5
    argNames:
    - data
    - digestAlgorithm
    - signature
    - subjectPublicKeyInfo
    - pkcs11PinArg
    argTypes:
    - Input
    - DigestAlgorithm
    - Input
    - Input
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 136
    functionDepth: 5
    functionLinenumber: 136
    functionLinenumberEnd: 185
    functionName: mozilla::pkix::VerifyRSAPSSSignedDataNSS
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnss.cpp
    functionUses: 0
    functionsReached:
    - ScopedSECKEYPublicKey::get
    - mozilla::pkix::SubjectPublicKeyInfoToSECKEYPublicKey
    - reinterpret_cast<unsigned char*>
    - mozilla::pkix::VerifySignedData
    linkageType: ''
    returnType: Result
    signature: "Result VerifyRSAPSSSignedDataNSS(Input data, DigestAlgorithm digestAlgorithm,\n
      \   Input signature, Input subjectPublicKeyInfo, void* pkcs11PinArg)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ECDSASigValue
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:192,1
    - Dst: SECKEY_SignatureLen
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:196,1
    - Dst: get
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:196,1
    - Dst: mozilla::pkix::MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:198,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:198,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:204,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:204,1
    - Dst: memset
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:212,1
    - Dst: memcpy
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:213,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:213,1
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:214,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:214,1
    - Dst: memcpy
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:215,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:215,1
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:216,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:216,1
    - Dst: swap
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:217,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - signature
    - ' publicKey'
    - ' result'
    argTypes:
    - Input
    - ScopedSECKEYPublicKey
    - ScopedSECItem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 219
    functionName: mozilla::pkix::EncodedECDSASignatureToRawPoint
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnss.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::MapPRErrorCodeToResult
    - memcpy
    - Input::UnsafeGetData
    - mozilla::pkix::der::ECDSASigValue
    - Input::GetLength
    - memset
    - swap
    - PR_GetError
    - SECKEY_SignatureLen
    - get
    linkageType: ''
    returnType: Result
    signature: "Result EncodedECDSASignatureToRawPoint(Input signature,\n    const
      ScopedSECKEYPublicKey& publicKey, ScopedSECItem& result)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::SubjectPublicKeyInfoToSECKEYPublicKey
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:226,1
    - Dst: mozilla::pkix::EncodedECDSASignatureToRawPoint
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:233,1
    - Dst: mozilla::pkix::VerifySignedData
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:268,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:268,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:269,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 5
    argNames:
    - data
    - digestAlgorithm
    - signature
    - subjectPublicKeyInfo
    - pkcs11PinArg
    argTypes:
    - Input
    - DigestAlgorithm
    - Input
    - Input
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 221
    functionDepth: 5
    functionLinenumber: 221
    functionLinenumberEnd: 270
    functionName: mozilla::pkix::VerifyECDSASignedDataNSS
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnss.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::EncodedECDSASignatureToRawPoint
    - mozilla::pkix::SubjectPublicKeyInfoToSECKEYPublicKey
    - ScopedSECItem::get
    - ScopedSECKEYPublicKey::get
    - mozilla::pkix::VerifySignedData
    linkageType: ''
    returnType: Result
    signature: "Result VerifyECDSASignedDataNSS(Input data, DigestAlgorithm digestAlgorithm,\n
      \   Input signature, Input subjectPublicKeyInfo, void* pkcs11PinArg)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::UnsafeMapInputToSECItem
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:291,1
    - Dst: static_cast<decltype(itemSECItem.len)>
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:293,1
    - Dst: gz_intmax
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:294,1
    - Dst: PR_NOT_REACHED
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:295,1
    - Dst: PK11_HashBuf
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:298,1
    - Dst: static_cast<int32_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:299,1
    - Dst: mozilla::pkix::MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:301,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:301,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 4
    argNames:
    - item
    - digestAlg
    - digestBuf
    - digestBufLen
    argTypes:
    - Input
    - DigestAlgorithm
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 272
    functionDepth: 10
    functionLinenumber: 272
    functionLinenumberEnd: 304
    functionName: mozilla::pkix::DigestBufNSS
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnss.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::MapPRErrorCodeToResult
    - PR_NOT_REACHED
    - mozilla::pkix::UnsafeMapInputToSECItem
    - static_cast<decltype(itemSECItem.len)>
    - PK11_HashBuf
    - static_cast<int32_t>
    - PR_GetError
    - gz_intmax
    linkageType: ''
    returnType: Result
    signature: "Result DigestBufNSS(Input item,\n             DigestAlgorithm digestAlg,\n
      \            /*out*/ uint8_t* digestBuf,\n             size_t digestBufLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - error
    argTypes:
    - PRErrorCode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 321
    functionName: mozilla::pkix::MapPRErrorCodeToResult
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnss.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: Result MapPRErrorCodeToResult(PRErrorCode error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mozilla_pkix_result
    - ','
    - value
    - ','
    - nss_result
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 313
    functionName: MOZILLA_PKIX_MAP
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MOZILLA_PKIX_MAP(mozilla_pkix_result, value, nss_result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - result
    argTypes:
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 337
    functionName: mozilla::pkix::MapResultToPRErrorCode
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRErrorCode
    signature: PRErrorCode MapResultToPRErrorCode(Result result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mozilla_pkix_result
    - ','
    - value
    - ','
    - nss_result
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 330
    functionName: MOZILLA_PKIX_MAP
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MOZILLA_PKIX_MAP(mozilla_pkix_result, value, nss_result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:407,1
    - Dst: PR_ErrorInstallTable
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 411
    functionName: mozilla::pkix::RegisterErrorTable
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnss.cpp
    functionUses: 0
    functionsReached:
    - PR_ARRAY_SIZE
    - PR_ErrorInstallTable
    linkageType: ''
    returnType: void
    signature: void RegisterErrorTable()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECKEY_DecodeDERSubjectPublicKeyInfo
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:49,1
    - Dst: mozilla::pkix::MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:51,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:51,1
    - Dst: reset
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:53,1
    - Dst: SECKEY_ExtractPublicKey
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:53,1
    - Dst: ScopedCERTSubjectPublicKeyInfo::get
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:53,1
    - Dst: mozilla::pkix::MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:55,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - subjectPublicKeyInfo
    - ' publicKey'
    argTypes:
    - Input
    - ScopedSECKEYPublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 42
    functionDepth: 4
    functionLinenumber: 42
    functionLinenumberEnd: 58
    functionName: mozilla::pkix::SubjectPublicKeyInfoToSECKEYPublicKey
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnss.cpp
    functionUses: 3
    functionsReached:
    - mozilla::pkix::MapPRErrorCodeToResult
    - SECKEY_ExtractPublicKey
    - SECKEY_DecodeDERSubjectPublicKeyInfo
    - ScopedCERTSubjectPublicKeyInfo::get
    - reset
    - PR_GetError
    linkageType: ''
    returnType: Result
    signature: "Result SubjectPublicKeyInfoToSECKEYPublicKey(Input subjectPublicKeyInfo,\n
      \   ScopedSECKEYPublicKey& publicKey)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NSS_GetAlgorithmPolicy
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:75,1
    - Dst: mozilla::pkix::MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:76,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:76,1
    - Dst: PK11_VerifyWithMechanism
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:82,1
    - Dst: mozilla::pkix::MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:85,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:85,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 7
    argNames:
    - publicKey
    - mechanism
    - params
    - signature
    - data
    - (policyTags)
    - pkcs11PinArg
    argTypes:
    - SECKEYPublicKey*
    - CK_MECHANISM_TYPE
    - SECItem*
    - SECItem*
    - SECItem*
    - SECOidTag[]
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 61
    functionDepth: 9
    functionLinenumber: 61
    functionLinenumberEnd: 88
    functionName: mozilla::pkix::VerifySignedData
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnss.cpp
    functionUses: 11
    functionsReached:
    - NSS_GetAlgorithmPolicy
    - mozilla::pkix::MapPRErrorCodeToResult
    - PK11_VerifyWithMechanism
    - PR_GetError
    linkageType: ''
    returnType: Result
    signature: "Result VerifySignedData(SECKEYPublicKey* publicKey, CK_MECHANISM_TYPE
      mechanism,\n    SECItem* params, SECItem* signature, SECItem* data,\n    SECOidTag
      (&policyTags)[N], void* pkcs11PinArg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECKEY_DecodeDERSubjectPublicKeyInfo
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:49,1
    - Dst: mozilla::pkix::MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:51,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:51,1
    - Dst: reset
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:53,1
    - Dst: SECKEY_ExtractPublicKey
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:53,1
    - Dst: ScopedCERTSubjectPublicKeyInfo::get
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:53,1
    - Dst: mozilla::pkix::MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:55,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - subjectPublicKeyInfo
    - ' publicKey'
    argTypes:
    - Input
    - ScopedSECKEYPublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 42
    functionDepth: 4
    functionLinenumber: 42
    functionLinenumberEnd: 58
    functionName: mozilla::pkix::SubjectPublicKeyInfoToSECKEYPublicKey
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnss.cpp
    functionUses: 3
    functionsReached:
    - mozilla::pkix::MapPRErrorCodeToResult
    - SECKEY_ExtractPublicKey
    - SECKEY_DecodeDERSubjectPublicKeyInfo
    - ScopedCERTSubjectPublicKeyInfo::get
    - reset
    - PR_GetError
    linkageType: ''
    returnType: Result
    signature: "Result SubjectPublicKeyInfoToSECKEYPublicKey(Input subjectPublicKeyInfo,\n
      \   ScopedSECKEYPublicKey& publicKey)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NSS_GetAlgorithmPolicy
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:75,1
    - Dst: mozilla::pkix::MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:76,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:76,1
    - Dst: PK11_VerifyWithMechanism
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:82,1
    - Dst: mozilla::pkix::MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:85,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:85,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 7
    argNames:
    - publicKey
    - mechanism
    - params
    - signature
    - data
    - (policyTags)
    - pkcs11PinArg
    argTypes:
    - SECKEYPublicKey*
    - CK_MECHANISM_TYPE
    - SECItem*
    - SECItem*
    - SECItem*
    - SECOidTag[]
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 61
    functionDepth: 9
    functionLinenumber: 61
    functionLinenumberEnd: 88
    functionName: mozilla::pkix::VerifySignedData
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnss.cpp
    functionUses: 11
    functionsReached:
    - NSS_GetAlgorithmPolicy
    - mozilla::pkix::MapPRErrorCodeToResult
    - PK11_VerifyWithMechanism
    - PR_GetError
    linkageType: ''
    returnType: Result
    signature: "Result VerifySignedData(SECKEYPublicKey* publicKey, CK_MECHANISM_TYPE
      mechanism,\n    SECItem* params, SECItem* signature, SECItem* data,\n    SECOidTag
      (&policyTags)[N], void* pkcs11PinArg)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::SubjectPublicKeyInfoToSECKEYPublicKey
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:96,1
    - Dst: mozilla::pkix::VerifySignedData
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:132,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:132,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 5
    argNames:
    - data
    - digestAlgorithm
    - signature
    - subjectPublicKeyInfo
    - pkcs11PinArg
    argTypes:
    - Input
    - DigestAlgorithm
    - Input
    - Input
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 91
    functionDepth: 5
    functionLinenumber: 91
    functionLinenumberEnd: 134
    functionName: mozilla::pkix::VerifyRSAPKCS1SignedDataNSS
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnss.cpp
    functionUses: 0
    functionsReached:
    - ScopedSECKEYPublicKey::get
    - mozilla::pkix::SubjectPublicKeyInfoToSECKEYPublicKey
    - mozilla::pkix::VerifySignedData
    linkageType: ''
    returnType: Result
    signature: "Result VerifyRSAPKCS1SignedDataNSS(Input data, DigestAlgorithm digestAlgorithm,\n
      \   Input signature, Input subjectPublicKeyInfo, void* pkcs11PinArg)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::SubjectPublicKeyInfoToSECKEYPublicKey
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:141,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:180,1
    - Dst: mozilla::pkix::VerifySignedData
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:183,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:183,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 5
    argNames:
    - data
    - digestAlgorithm
    - signature
    - subjectPublicKeyInfo
    - pkcs11PinArg
    argTypes:
    - Input
    - DigestAlgorithm
    - Input
    - Input
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 136
    functionDepth: 5
    functionLinenumber: 136
    functionLinenumberEnd: 185
    functionName: mozilla::pkix::VerifyRSAPSSSignedDataNSS
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnss.cpp
    functionUses: 0
    functionsReached:
    - ScopedSECKEYPublicKey::get
    - mozilla::pkix::SubjectPublicKeyInfoToSECKEYPublicKey
    - reinterpret_cast<unsigned char*>
    - mozilla::pkix::VerifySignedData
    linkageType: ''
    returnType: Result
    signature: "Result VerifyRSAPSSSignedDataNSS(Input data, DigestAlgorithm digestAlgorithm,\n
      \   Input signature, Input subjectPublicKeyInfo, void* pkcs11PinArg)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ECDSASigValue
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:192,1
    - Dst: SECKEY_SignatureLen
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:196,1
    - Dst: get
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:196,1
    - Dst: mozilla::pkix::MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:198,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:198,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:204,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:204,1
    - Dst: memset
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:212,1
    - Dst: memcpy
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:213,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:213,1
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:214,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:214,1
    - Dst: memcpy
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:215,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:215,1
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:216,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:216,1
    - Dst: swap
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:217,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - signature
    - ' publicKey'
    - ' result'
    argTypes:
    - Input
    - ScopedSECKEYPublicKey
    - ScopedSECItem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 219
    functionName: mozilla::pkix::EncodedECDSASignatureToRawPoint
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnss.cpp
    functionUses: 1
    functionsReached:
    - mozilla::pkix::MapPRErrorCodeToResult
    - memcpy
    - Input::UnsafeGetData
    - mozilla::pkix::der::ECDSASigValue
    - Input::GetLength
    - memset
    - swap
    - PR_GetError
    - SECKEY_SignatureLen
    - get
    linkageType: ''
    returnType: Result
    signature: "Result EncodedECDSASignatureToRawPoint(Input signature,\n    const
      ScopedSECKEYPublicKey& publicKey, ScopedSECItem& result)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::SubjectPublicKeyInfoToSECKEYPublicKey
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:226,1
    - Dst: mozilla::pkix::EncodedECDSASignatureToRawPoint
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:233,1
    - Dst: mozilla::pkix::VerifySignedData
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:268,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:268,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:269,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 5
    argNames:
    - data
    - digestAlgorithm
    - signature
    - subjectPublicKeyInfo
    - pkcs11PinArg
    argTypes:
    - Input
    - DigestAlgorithm
    - Input
    - Input
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 221
    functionDepth: 5
    functionLinenumber: 221
    functionLinenumberEnd: 270
    functionName: mozilla::pkix::VerifyECDSASignedDataNSS
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnss.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::EncodedECDSASignatureToRawPoint
    - mozilla::pkix::SubjectPublicKeyInfoToSECKEYPublicKey
    - ScopedSECItem::get
    - ScopedSECKEYPublicKey::get
    - mozilla::pkix::VerifySignedData
    linkageType: ''
    returnType: Result
    signature: "Result VerifyECDSASignedDataNSS(Input data, DigestAlgorithm digestAlgorithm,\n
      \   Input signature, Input subjectPublicKeyInfo, void* pkcs11PinArg)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::UnsafeMapInputToSECItem
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:291,1
    - Dst: static_cast<decltype(itemSECItem.len)>
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:293,1
    - Dst: gz_intmax
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:294,1
    - Dst: PR_NOT_REACHED
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:295,1
    - Dst: PK11_HashBuf
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:298,1
    - Dst: static_cast<int32_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:299,1
    - Dst: mozilla::pkix::MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:301,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:301,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 4
    argNames:
    - item
    - digestAlg
    - digestBuf
    - digestBufLen
    argTypes:
    - Input
    - DigestAlgorithm
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 272
    functionDepth: 10
    functionLinenumber: 272
    functionLinenumberEnd: 304
    functionName: mozilla::pkix::DigestBufNSS
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnss.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::MapPRErrorCodeToResult
    - PR_NOT_REACHED
    - mozilla::pkix::UnsafeMapInputToSECItem
    - static_cast<decltype(itemSECItem.len)>
    - PK11_HashBuf
    - static_cast<int32_t>
    - PR_GetError
    - gz_intmax
    linkageType: ''
    returnType: Result
    signature: "Result DigestBufNSS(Input item,\n             DigestAlgorithm digestAlg,\n
      \            /*out*/ uint8_t* digestBuf,\n             size_t digestBufLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - error
    argTypes:
    - PRErrorCode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 321
    functionName: mozilla::pkix::MapPRErrorCodeToResult
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnss.cpp
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: Result MapPRErrorCodeToResult(PRErrorCode error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mozilla_pkix_result
    - ','
    - value
    - ','
    - nss_result
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 313
    functionName: MOZILLA_PKIX_MAP
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MOZILLA_PKIX_MAP(mozilla_pkix_result, value, nss_result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - result
    argTypes:
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 337
    functionName: mozilla::pkix::MapResultToPRErrorCode
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRErrorCode
    signature: PRErrorCode MapResultToPRErrorCode(Result result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mozilla_pkix_result
    - ','
    - value
    - ','
    - nss_result
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 330
    functionName: MOZILLA_PKIX_MAP
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MOZILLA_PKIX_MAP(mozilla_pkix_result, value, nss_result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:407,1
    - Dst: PR_ErrorInstallTable
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 411
    functionName: mozilla::pkix::RegisterErrorTable
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnss.cpp
    functionUses: 0
    functionsReached:
    - PR_ARRAY_SIZE
    - PR_ErrorInstallTable
    linkageType: ''
    returnType: void
    signature: void RegisterErrorTable()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECKEY_DecodeDERSubjectPublicKeyInfo
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:49,1
    - Dst: mozilla::pkix::MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:51,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:51,1
    - Dst: reset
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:53,1
    - Dst: SECKEY_ExtractPublicKey
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:53,1
    - Dst: ScopedCERTSubjectPublicKeyInfo::get
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:53,1
    - Dst: mozilla::pkix::MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:55,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - subjectPublicKeyInfo
    - ' publicKey'
    argTypes:
    - Input
    - ScopedSECKEYPublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 42
    functionDepth: 4
    functionLinenumber: 42
    functionLinenumberEnd: 58
    functionName: mozilla::pkix::SubjectPublicKeyInfoToSECKEYPublicKey
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnss.cpp
    functionUses: 6
    functionsReached:
    - mozilla::pkix::MapPRErrorCodeToResult
    - SECKEY_ExtractPublicKey
    - SECKEY_DecodeDERSubjectPublicKeyInfo
    - ScopedCERTSubjectPublicKeyInfo::get
    - reset
    - PR_GetError
    linkageType: ''
    returnType: Result
    signature: "Result SubjectPublicKeyInfoToSECKEYPublicKey(Input subjectPublicKeyInfo,\n
      \   ScopedSECKEYPublicKey& publicKey)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NSS_GetAlgorithmPolicy
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:75,1
    - Dst: mozilla::pkix::MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:76,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:76,1
    - Dst: PK11_VerifyWithMechanism
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:82,1
    - Dst: mozilla::pkix::MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:85,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:85,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 7
    argNames:
    - publicKey
    - mechanism
    - params
    - signature
    - data
    - (policyTags)
    - pkcs11PinArg
    argTypes:
    - SECKEYPublicKey*
    - CK_MECHANISM_TYPE
    - SECItem*
    - SECItem*
    - SECItem*
    - SECOidTag[]
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 61
    functionDepth: 9
    functionLinenumber: 61
    functionLinenumberEnd: 88
    functionName: mozilla::pkix::VerifySignedData
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnss.cpp
    functionUses: 14
    functionsReached:
    - NSS_GetAlgorithmPolicy
    - mozilla::pkix::MapPRErrorCodeToResult
    - PK11_VerifyWithMechanism
    - PR_GetError
    linkageType: ''
    returnType: Result
    signature: "Result VerifySignedData(SECKEYPublicKey* publicKey, CK_MECHANISM_TYPE
      mechanism,\n    SECItem* params, SECItem* signature, SECItem* data,\n    SECOidTag
      (&policyTags)[N], void* pkcs11PinArg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECKEY_DecodeDERSubjectPublicKeyInfo
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:49,1
    - Dst: mozilla::pkix::MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:51,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:51,1
    - Dst: reset
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:53,1
    - Dst: SECKEY_ExtractPublicKey
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:53,1
    - Dst: ScopedCERTSubjectPublicKeyInfo::get
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:53,1
    - Dst: mozilla::pkix::MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:55,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - subjectPublicKeyInfo
    - ' publicKey'
    argTypes:
    - Input
    - ScopedSECKEYPublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 42
    functionDepth: 4
    functionLinenumber: 42
    functionLinenumberEnd: 58
    functionName: mozilla::pkix::SubjectPublicKeyInfoToSECKEYPublicKey
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnss.cpp
    functionUses: 6
    functionsReached:
    - mozilla::pkix::MapPRErrorCodeToResult
    - SECKEY_ExtractPublicKey
    - SECKEY_DecodeDERSubjectPublicKeyInfo
    - ScopedCERTSubjectPublicKeyInfo::get
    - reset
    - PR_GetError
    linkageType: ''
    returnType: Result
    signature: "Result SubjectPublicKeyInfoToSECKEYPublicKey(Input subjectPublicKeyInfo,\n
      \   ScopedSECKEYPublicKey& publicKey)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NSS_GetAlgorithmPolicy
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:75,1
    - Dst: mozilla::pkix::MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:76,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:76,1
    - Dst: PK11_VerifyWithMechanism
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:82,1
    - Dst: mozilla::pkix::MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:85,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:85,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 7
    argNames:
    - publicKey
    - mechanism
    - params
    - signature
    - data
    - (policyTags)
    - pkcs11PinArg
    argTypes:
    - SECKEYPublicKey*
    - CK_MECHANISM_TYPE
    - SECItem*
    - SECItem*
    - SECItem*
    - SECOidTag[]
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 61
    functionDepth: 9
    functionLinenumber: 61
    functionLinenumberEnd: 88
    functionName: mozilla::pkix::VerifySignedData
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnss.cpp
    functionUses: 14
    functionsReached:
    - NSS_GetAlgorithmPolicy
    - mozilla::pkix::MapPRErrorCodeToResult
    - PK11_VerifyWithMechanism
    - PR_GetError
    linkageType: ''
    returnType: Result
    signature: "Result VerifySignedData(SECKEYPublicKey* publicKey, CK_MECHANISM_TYPE
      mechanism,\n    SECItem* params, SECItem* signature, SECItem* data,\n    SECOidTag
      (&policyTags)[N], void* pkcs11PinArg)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::SubjectPublicKeyInfoToSECKEYPublicKey
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:96,1
    - Dst: mozilla::pkix::VerifySignedData
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:132,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:132,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 5
    argNames:
    - data
    - digestAlgorithm
    - signature
    - subjectPublicKeyInfo
    - pkcs11PinArg
    argTypes:
    - Input
    - DigestAlgorithm
    - Input
    - Input
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 91
    functionDepth: 5
    functionLinenumber: 91
    functionLinenumberEnd: 134
    functionName: mozilla::pkix::VerifyRSAPKCS1SignedDataNSS
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnss.cpp
    functionUses: 0
    functionsReached:
    - ScopedSECKEYPublicKey::get
    - mozilla::pkix::SubjectPublicKeyInfoToSECKEYPublicKey
    - mozilla::pkix::VerifySignedData
    linkageType: ''
    returnType: Result
    signature: "Result VerifyRSAPKCS1SignedDataNSS(Input data, DigestAlgorithm digestAlgorithm,\n
      \   Input signature, Input subjectPublicKeyInfo, void* pkcs11PinArg)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::SubjectPublicKeyInfoToSECKEYPublicKey
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:141,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:180,1
    - Dst: mozilla::pkix::VerifySignedData
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:183,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:183,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 5
    argNames:
    - data
    - digestAlgorithm
    - signature
    - subjectPublicKeyInfo
    - pkcs11PinArg
    argTypes:
    - Input
    - DigestAlgorithm
    - Input
    - Input
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 136
    functionDepth: 5
    functionLinenumber: 136
    functionLinenumberEnd: 185
    functionName: mozilla::pkix::VerifyRSAPSSSignedDataNSS
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnss.cpp
    functionUses: 0
    functionsReached:
    - ScopedSECKEYPublicKey::get
    - mozilla::pkix::SubjectPublicKeyInfoToSECKEYPublicKey
    - reinterpret_cast<unsigned char*>
    - mozilla::pkix::VerifySignedData
    linkageType: ''
    returnType: Result
    signature: "Result VerifyRSAPSSSignedDataNSS(Input data, DigestAlgorithm digestAlgorithm,\n
      \   Input signature, Input subjectPublicKeyInfo, void* pkcs11PinArg)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ECDSASigValue
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:192,1
    - Dst: SECKEY_SignatureLen
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:196,1
    - Dst: get
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:196,1
    - Dst: mozilla::pkix::MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:198,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:198,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:204,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:204,1
    - Dst: memset
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:212,1
    - Dst: memcpy
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:213,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:213,1
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:214,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:214,1
    - Dst: memcpy
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:215,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:215,1
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:216,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:216,1
    - Dst: swap
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:217,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - signature
    - ' publicKey'
    - ' result'
    argTypes:
    - Input
    - ScopedSECKEYPublicKey
    - ScopedSECItem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 219
    functionName: mozilla::pkix::EncodedECDSASignatureToRawPoint
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnss.cpp
    functionUses: 2
    functionsReached:
    - mozilla::pkix::MapPRErrorCodeToResult
    - memcpy
    - Input::UnsafeGetData
    - mozilla::pkix::der::ECDSASigValue
    - Input::GetLength
    - memset
    - swap
    - PR_GetError
    - SECKEY_SignatureLen
    - get
    linkageType: ''
    returnType: Result
    signature: "Result EncodedECDSASignatureToRawPoint(Input signature,\n    const
      ScopedSECKEYPublicKey& publicKey, ScopedSECItem& result)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::SubjectPublicKeyInfoToSECKEYPublicKey
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:226,1
    - Dst: mozilla::pkix::EncodedECDSASignatureToRawPoint
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:233,1
    - Dst: mozilla::pkix::VerifySignedData
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:268,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:268,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:269,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 5
    argNames:
    - data
    - digestAlgorithm
    - signature
    - subjectPublicKeyInfo
    - pkcs11PinArg
    argTypes:
    - Input
    - DigestAlgorithm
    - Input
    - Input
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 221
    functionDepth: 5
    functionLinenumber: 221
    functionLinenumberEnd: 270
    functionName: mozilla::pkix::VerifyECDSASignedDataNSS
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnss.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::EncodedECDSASignatureToRawPoint
    - mozilla::pkix::SubjectPublicKeyInfoToSECKEYPublicKey
    - ScopedSECItem::get
    - ScopedSECKEYPublicKey::get
    - mozilla::pkix::VerifySignedData
    linkageType: ''
    returnType: Result
    signature: "Result VerifyECDSASignedDataNSS(Input data, DigestAlgorithm digestAlgorithm,\n
      \   Input signature, Input subjectPublicKeyInfo, void* pkcs11PinArg)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::UnsafeMapInputToSECItem
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:291,1
    - Dst: static_cast<decltype(itemSECItem.len)>
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:293,1
    - Dst: gz_intmax
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:294,1
    - Dst: PR_NOT_REACHED
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:295,1
    - Dst: PK11_HashBuf
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:298,1
    - Dst: static_cast<int32_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:299,1
    - Dst: mozilla::pkix::MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:301,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:301,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 4
    argNames:
    - item
    - digestAlg
    - digestBuf
    - digestBufLen
    argTypes:
    - Input
    - DigestAlgorithm
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 272
    functionDepth: 10
    functionLinenumber: 272
    functionLinenumberEnd: 304
    functionName: mozilla::pkix::DigestBufNSS
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnss.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::MapPRErrorCodeToResult
    - PR_NOT_REACHED
    - mozilla::pkix::UnsafeMapInputToSECItem
    - static_cast<decltype(itemSECItem.len)>
    - PK11_HashBuf
    - static_cast<int32_t>
    - PR_GetError
    - gz_intmax
    linkageType: ''
    returnType: Result
    signature: "Result DigestBufNSS(Input item,\n             DigestAlgorithm digestAlg,\n
      \            /*out*/ uint8_t* digestBuf,\n             size_t digestBufLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - error
    argTypes:
    - PRErrorCode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 321
    functionName: mozilla::pkix::MapPRErrorCodeToResult
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnss.cpp
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: Result MapPRErrorCodeToResult(PRErrorCode error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mozilla_pkix_result
    - ','
    - value
    - ','
    - nss_result
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 313
    functionName: MOZILLA_PKIX_MAP
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MOZILLA_PKIX_MAP(mozilla_pkix_result, value, nss_result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - result
    argTypes:
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 337
    functionName: mozilla::pkix::MapResultToPRErrorCode
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRErrorCode
    signature: PRErrorCode MapResultToPRErrorCode(Result result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mozilla_pkix_result
    - ','
    - value
    - ','
    - nss_result
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 330
    functionName: MOZILLA_PKIX_MAP
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MOZILLA_PKIX_MAP(mozilla_pkix_result, value, nss_result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:407,1
    - Dst: PR_ErrorInstallTable
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 411
    functionName: mozilla::pkix::RegisterErrorTable
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnss.cpp
    functionUses: 0
    functionsReached:
    - PR_ARRAY_SIZE
    - PR_ErrorInstallTable
    linkageType: ''
    returnType: void
    signature: void RegisterErrorTable()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECKEY_DecodeDERSubjectPublicKeyInfo
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:49,1
    - Dst: mozilla::pkix::MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:51,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:51,1
    - Dst: reset
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:53,1
    - Dst: SECKEY_ExtractPublicKey
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:53,1
    - Dst: ScopedCERTSubjectPublicKeyInfo::get
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:53,1
    - Dst: mozilla::pkix::MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:55,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - subjectPublicKeyInfo
    - ' publicKey'
    argTypes:
    - Input
    - ScopedSECKEYPublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 42
    functionDepth: 4
    functionLinenumber: 42
    functionLinenumberEnd: 58
    functionName: mozilla::pkix::SubjectPublicKeyInfoToSECKEYPublicKey
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnss.cpp
    functionUses: 9
    functionsReached:
    - mozilla::pkix::MapPRErrorCodeToResult
    - SECKEY_ExtractPublicKey
    - SECKEY_DecodeDERSubjectPublicKeyInfo
    - ScopedCERTSubjectPublicKeyInfo::get
    - reset
    - PR_GetError
    linkageType: ''
    returnType: Result
    signature: "Result SubjectPublicKeyInfoToSECKEYPublicKey(Input subjectPublicKeyInfo,\n
      \   ScopedSECKEYPublicKey& publicKey)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NSS_GetAlgorithmPolicy
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:75,1
    - Dst: mozilla::pkix::MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:76,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:76,1
    - Dst: PK11_VerifyWithMechanism
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:82,1
    - Dst: mozilla::pkix::MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:85,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:85,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 7
    argNames:
    - publicKey
    - mechanism
    - params
    - signature
    - data
    - (policyTags)
    - pkcs11PinArg
    argTypes:
    - SECKEYPublicKey*
    - CK_MECHANISM_TYPE
    - SECItem*
    - SECItem*
    - SECItem*
    - SECOidTag[]
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 61
    functionDepth: 9
    functionLinenumber: 61
    functionLinenumberEnd: 88
    functionName: mozilla::pkix::VerifySignedData
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnss.cpp
    functionUses: 17
    functionsReached:
    - NSS_GetAlgorithmPolicy
    - mozilla::pkix::MapPRErrorCodeToResult
    - PK11_VerifyWithMechanism
    - PR_GetError
    linkageType: ''
    returnType: Result
    signature: "Result VerifySignedData(SECKEYPublicKey* publicKey, CK_MECHANISM_TYPE
      mechanism,\n    SECItem* params, SECItem* signature, SECItem* data,\n    SECOidTag
      (&policyTags)[N], void* pkcs11PinArg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECKEY_DecodeDERSubjectPublicKeyInfo
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:49,1
    - Dst: mozilla::pkix::MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:51,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:51,1
    - Dst: reset
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:53,1
    - Dst: SECKEY_ExtractPublicKey
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:53,1
    - Dst: ScopedCERTSubjectPublicKeyInfo::get
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:53,1
    - Dst: mozilla::pkix::MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:55,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - subjectPublicKeyInfo
    - ' publicKey'
    argTypes:
    - Input
    - ScopedSECKEYPublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 42
    functionDepth: 4
    functionLinenumber: 42
    functionLinenumberEnd: 58
    functionName: mozilla::pkix::SubjectPublicKeyInfoToSECKEYPublicKey
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnss.cpp
    functionUses: 9
    functionsReached:
    - mozilla::pkix::MapPRErrorCodeToResult
    - SECKEY_ExtractPublicKey
    - SECKEY_DecodeDERSubjectPublicKeyInfo
    - ScopedCERTSubjectPublicKeyInfo::get
    - reset
    - PR_GetError
    linkageType: ''
    returnType: Result
    signature: "Result SubjectPublicKeyInfoToSECKEYPublicKey(Input subjectPublicKeyInfo,\n
      \   ScopedSECKEYPublicKey& publicKey)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NSS_GetAlgorithmPolicy
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:75,1
    - Dst: mozilla::pkix::MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:76,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:76,1
    - Dst: PK11_VerifyWithMechanism
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:82,1
    - Dst: mozilla::pkix::MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:85,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:85,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 7
    argNames:
    - publicKey
    - mechanism
    - params
    - signature
    - data
    - (policyTags)
    - pkcs11PinArg
    argTypes:
    - SECKEYPublicKey*
    - CK_MECHANISM_TYPE
    - SECItem*
    - SECItem*
    - SECItem*
    - SECOidTag[]
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 61
    functionDepth: 9
    functionLinenumber: 61
    functionLinenumberEnd: 88
    functionName: mozilla::pkix::VerifySignedData
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnss.cpp
    functionUses: 17
    functionsReached:
    - NSS_GetAlgorithmPolicy
    - mozilla::pkix::MapPRErrorCodeToResult
    - PK11_VerifyWithMechanism
    - PR_GetError
    linkageType: ''
    returnType: Result
    signature: "Result VerifySignedData(SECKEYPublicKey* publicKey, CK_MECHANISM_TYPE
      mechanism,\n    SECItem* params, SECItem* signature, SECItem* data,\n    SECOidTag
      (&policyTags)[N], void* pkcs11PinArg)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::SubjectPublicKeyInfoToSECKEYPublicKey
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:96,1
    - Dst: mozilla::pkix::VerifySignedData
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:132,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:132,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 5
    argNames:
    - data
    - digestAlgorithm
    - signature
    - subjectPublicKeyInfo
    - pkcs11PinArg
    argTypes:
    - Input
    - DigestAlgorithm
    - Input
    - Input
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 91
    functionDepth: 5
    functionLinenumber: 91
    functionLinenumberEnd: 134
    functionName: mozilla::pkix::VerifyRSAPKCS1SignedDataNSS
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnss.cpp
    functionUses: 0
    functionsReached:
    - ScopedSECKEYPublicKey::get
    - mozilla::pkix::SubjectPublicKeyInfoToSECKEYPublicKey
    - mozilla::pkix::VerifySignedData
    linkageType: ''
    returnType: Result
    signature: "Result VerifyRSAPKCS1SignedDataNSS(Input data, DigestAlgorithm digestAlgorithm,\n
      \   Input signature, Input subjectPublicKeyInfo, void* pkcs11PinArg)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::SubjectPublicKeyInfoToSECKEYPublicKey
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:141,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:180,1
    - Dst: mozilla::pkix::VerifySignedData
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:183,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:183,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 5
    argNames:
    - data
    - digestAlgorithm
    - signature
    - subjectPublicKeyInfo
    - pkcs11PinArg
    argTypes:
    - Input
    - DigestAlgorithm
    - Input
    - Input
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 136
    functionDepth: 5
    functionLinenumber: 136
    functionLinenumberEnd: 185
    functionName: mozilla::pkix::VerifyRSAPSSSignedDataNSS
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnss.cpp
    functionUses: 0
    functionsReached:
    - ScopedSECKEYPublicKey::get
    - mozilla::pkix::SubjectPublicKeyInfoToSECKEYPublicKey
    - reinterpret_cast<unsigned char*>
    - mozilla::pkix::VerifySignedData
    linkageType: ''
    returnType: Result
    signature: "Result VerifyRSAPSSSignedDataNSS(Input data, DigestAlgorithm digestAlgorithm,\n
      \   Input signature, Input subjectPublicKeyInfo, void* pkcs11PinArg)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ECDSASigValue
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:192,1
    - Dst: SECKEY_SignatureLen
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:196,1
    - Dst: get
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:196,1
    - Dst: mozilla::pkix::MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:198,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:198,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:204,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:204,1
    - Dst: memset
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:212,1
    - Dst: memcpy
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:213,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:213,1
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:214,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:214,1
    - Dst: memcpy
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:215,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:215,1
    - Dst: Input::UnsafeGetData
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:216,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:216,1
    - Dst: swap
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:217,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - signature
    - ' publicKey'
    - ' result'
    argTypes:
    - Input
    - ScopedSECKEYPublicKey
    - ScopedSECItem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 219
    functionName: mozilla::pkix::EncodedECDSASignatureToRawPoint
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnss.cpp
    functionUses: 3
    functionsReached:
    - mozilla::pkix::MapPRErrorCodeToResult
    - memcpy
    - Input::UnsafeGetData
    - mozilla::pkix::der::ECDSASigValue
    - Input::GetLength
    - memset
    - swap
    - PR_GetError
    - SECKEY_SignatureLen
    - get
    linkageType: ''
    returnType: Result
    signature: "Result EncodedECDSASignatureToRawPoint(Input signature,\n    const
      ScopedSECKEYPublicKey& publicKey, ScopedSECItem& result)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::SubjectPublicKeyInfoToSECKEYPublicKey
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:226,1
    - Dst: mozilla::pkix::EncodedECDSASignatureToRawPoint
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:233,1
    - Dst: mozilla::pkix::VerifySignedData
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:268,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:268,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:269,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 5
    argNames:
    - data
    - digestAlgorithm
    - signature
    - subjectPublicKeyInfo
    - pkcs11PinArg
    argTypes:
    - Input
    - DigestAlgorithm
    - Input
    - Input
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 221
    functionDepth: 5
    functionLinenumber: 221
    functionLinenumberEnd: 270
    functionName: mozilla::pkix::VerifyECDSASignedDataNSS
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnss.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::EncodedECDSASignatureToRawPoint
    - mozilla::pkix::SubjectPublicKeyInfoToSECKEYPublicKey
    - ScopedSECItem::get
    - ScopedSECKEYPublicKey::get
    - mozilla::pkix::VerifySignedData
    linkageType: ''
    returnType: Result
    signature: "Result VerifyECDSASignedDataNSS(Input data, DigestAlgorithm digestAlgorithm,\n
      \   Input signature, Input subjectPublicKeyInfo, void* pkcs11PinArg)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::UnsafeMapInputToSECItem
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:291,1
    - Dst: static_cast<decltype(itemSECItem.len)>
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:293,1
    - Dst: gz_intmax
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:294,1
    - Dst: PR_NOT_REACHED
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:295,1
    - Dst: PK11_HashBuf
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:298,1
    - Dst: static_cast<int32_t>
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:299,1
    - Dst: mozilla::pkix::MapPRErrorCodeToResult
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:301,1
    - Dst: PR_GetError
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:301,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 4
    argNames:
    - item
    - digestAlg
    - digestBuf
    - digestBufLen
    argTypes:
    - Input
    - DigestAlgorithm
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 272
    functionDepth: 10
    functionLinenumber: 272
    functionLinenumberEnd: 304
    functionName: mozilla::pkix::DigestBufNSS
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnss.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::MapPRErrorCodeToResult
    - PR_NOT_REACHED
    - mozilla::pkix::UnsafeMapInputToSECItem
    - static_cast<decltype(itemSECItem.len)>
    - PK11_HashBuf
    - static_cast<int32_t>
    - PR_GetError
    - gz_intmax
    linkageType: ''
    returnType: Result
    signature: "Result DigestBufNSS(Input item,\n             DigestAlgorithm digestAlg,\n
      \            /*out*/ uint8_t* digestBuf,\n             size_t digestBufLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - error
    argTypes:
    - PRErrorCode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 321
    functionName: mozilla::pkix::MapPRErrorCodeToResult
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnss.cpp
    functionUses: 24
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: Result MapPRErrorCodeToResult(PRErrorCode error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mozilla_pkix_result
    - ','
    - value
    - ','
    - nss_result
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 313
    functionName: MOZILLA_PKIX_MAP
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MOZILLA_PKIX_MAP(mozilla_pkix_result, value, nss_result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - result
    argTypes:
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 337
    functionName: mozilla::pkix::MapResultToPRErrorCode
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRErrorCode
    signature: PRErrorCode MapResultToPRErrorCode(Result result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mozilla_pkix_result
    - ','
    - value
    - ','
    - nss_result
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 330
    functionName: MOZILLA_PKIX_MAP
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MOZILLA_PKIX_MAP(mozilla_pkix_result, value, nss_result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:407,1
    - Dst: PR_ErrorInstallTable
      Src: /src/nss/lib/mozpkix/lib/pkixnss.cpp:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 411
    functionName: mozilla::pkix::RegisterErrorTable
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixnss.cpp
    functionUses: 0
    functionsReached:
    - PR_ARRAY_SIZE
    - PR_ErrorInstallTable
    linkageType: ''
    returnType: void
    signature: void RegisterErrorTable()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: TrustDomain::IssuerChecker::IssuerChecker()
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixbuild.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TrustDomain::IssuerChecker::IssuerChecker()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: TrustDomain::IssuerChecker::~IssuerChecker()
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixbuild.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TrustDomain::IssuerChecker::~IssuerChecker()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 9
    argNames:
    - ' aTrustDomain'
    - ' aSubject'
    - aTime
    - aRequiredEKUIfPresent
    - ' aRequiredPolicy'
    - aStapledOCSPResponse
    - aSubCACount
    - aDeferredSubjectError
    - ' aBuildForwardCallBudget'
    argTypes:
    - TrustDomain
    - BackCert
    - Time
    - KeyPurposeId
    - CertPolicyId
    - Input*
    - unsigned int
    - Result
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 68
    functionName: mozilla::pkix::PathBuildingStep::PathBuildingStep
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixbuild.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void PathBuildingStep(TrustDomain& aTrustDomain, const BackCert& aSubject,\n
      \                  Time aTime, KeyPurposeId aRequiredEKUIfPresent,\n                   const
      CertPolicyId& aRequiredPolicy,\n                   /*optional*/ const Input*
      aStapledOCSPResponse,\n                   unsigned int aSubCACount, Result aDeferredSubjectError,\n
      \                  unsigned int& aBuildForwardCallBudget)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: mozilla::pkix::PathBuildingStep::PathBuildingStep
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixbuild.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PathBuildingStep(const PathBuildingStep&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: operator=(const PathBuildingStep&)
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixbuild.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const PathBuildingStep&)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:108,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - newResult
    - ' keepGoing'
    argTypes:
    - Result
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 124
    functionName: mozilla::pkix::PathBuildingStep::RecordResult
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixbuild.cpp
    functionUses: 0
    functionsReached:
    - NotReached
    linkageType: ''
    returnType: Result
    signature: Result PathBuildingStep::RecordResult(Result newResult, /*out*/ bool&
      keepGoing)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 133
    functionName: mozilla::pkix::PathBuildingStep::CheckResult
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixbuild.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: Result PathBuildingStep::CheckResult() const
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: BackCert::Init
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:143,1
    - Dst: mozilla::pkix::PathBuildingStep::RecordResult
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:145,1
    - Dst: InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:155,1
    - Dst: BackCert::GetSubject
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:155,1
    - Dst: GetIssuer
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:155,1
    - Dst: InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:165,1
    - Dst: BackCert::GetSubjectPublicKeyInfo
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:165,1
    - Dst: BackCert*::GetSubjectPublicKeyInfo
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:166,1
    - Dst: InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:167,1
    - Dst: BackCert::GetSubject
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:167,1
    - Dst: BackCert*::GetSubject
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:167,1
    - Dst: mozilla::pkix::PathBuildingStep::RecordResult
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:169,1
    - Dst: BackCert::GetNameConstraints
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:173,1
    - Dst: CheckNameConstraints
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:174,1
    - Dst: BackCert::GetNameConstraints
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:174,1
    - Dst: mozilla::pkix::PathBuildingStep::RecordResult
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:177,1
    - Dst: CheckNameConstraints
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:182,1
    - Dst: mozilla::pkix::PathBuildingStep::RecordResult
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:185,1
    - Dst: CheckTLSFeatures
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:189,1
    - Dst: mozilla::pkix::PathBuildingStep::RecordResult
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:191,1
    - Dst: mozilla::pkix::PathBuildingStep::RecordResult
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:196,1
    - Dst: BuildForward
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:205,1
    - Dst: mozilla::pkix::PathBuildingStep::RecordResult
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:209,1
    - Dst: VerifySignedData
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:212,1
    - Dst: GetSignedData
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:212,1
    - Dst: BackCert::GetSubjectPublicKeyInfo
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:213,1
    - Dst: mozilla::pkix::PathBuildingStep::RecordResult
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:215,1
    - Dst: GetIssuer
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:223,1
    - Dst: BackCert::GetSubjectPublicKeyInfo
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:223,1
    - Dst: GetSerialNumber
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:224,1
    - Dst: ParseValidity
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:229,1
    - Dst: GetValidity
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:229,1
    - Dst: CheckRevocation
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:234,1
    - Dst: GetAuthorityInfoAccess
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:236,1
    - Dst: GetSignedCertificateTimestamps
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:237,1
    - Dst: mozilla::pkix::PathBuildingStep::RecordResult
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:242,1
    - Dst: GetSignedCertificateTimestamps
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:248,1
    - Dst: ExtractSignedCertificateTimestampListFromExtension
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:251,1
    - Dst: mozilla::pkix::PathBuildingStep::RecordResult
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:256,1
    - Dst: NoteAuxiliaryExtension
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:260,1
    - Dst: mozilla::pkix::PathBuildingStep::RecordResult
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:266,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 64
    argCount: 3
    argNames:
    - potentialIssuerDER
    - additionalNameConstraints
    - ' keepGoing'
    argTypes:
    - Input
    - Input*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 267
    functionName: mozilla::pkix::PathBuildingStep::Check
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixbuild.cpp
    functionUses: 0
    functionsReached:
    - CheckTLSFeatures
    - ExtractSignedCertificateTimestampListFromExtension
    - VerifySignedData
    - GetValidity
    - CheckRevocation
    - NoteAuxiliaryExtension
    - GetIssuer
    - BackCert::GetNameConstraints
    - BackCert*::GetSubjectPublicKeyInfo
    - CheckNameConstraints
    - BuildForward
    - mozilla::pkix::PathBuildingStep::RecordResult
    - GetSerialNumber
    - GetAuthorityInfoAccess
    - BackCert*::GetSubject
    - BackCert::Init
    - BackCert::GetSubject
    - ParseValidity
    - BackCert::GetSubjectPublicKeyInfo
    - GetSignedCertificateTimestamps
    - InputsAreEqual
    - GetSignedData
    linkageType: ''
    returnType: Result
    signature: "Result PathBuildingStep::Check(Input potentialIssuerDER,\n           /*optional*/
      const Input* additionalNameConstraints,\n                /*out*/ bool& keepGoing)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::CheckIssuerIndependentProperties
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:292,1
    - Dst: NonOwningDERArray::Append
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:311,1
    - Dst: BackCert*::GetDER
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:311,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:313,1
    - Dst: IsChainValid
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:319,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:334,1
    - Dst: FindIssuer
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:345,1
    - Dst: GetIssuer
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:345,1
    - Dst: PathBuildingStep::CheckResult
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:350,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 9
    argNames:
    - ' trustDomain'
    - ' subject'
    - time
    - requiredKeyUsageIfPresent
    - requiredEKUIfPresent
    - ' requiredPolicy'
    - stapledOCSPResponse
    - subCACount
    - ' buildForwardCallBudget'
    argTypes:
    - TrustDomain
    - BackCert
    - Time
    - KeyUsage
    - KeyPurposeId
    - CertPolicyId
    - Input*
    - unsigned int
    - unsigned int
    assertStmts:
    - condition: (subCACount == 0)
      pos:
        line_end: 333
        line_start: 333
        source_file: /src/nss/lib/mozpkix/lib/pkixbuild.cpp
    constantsTouched: []
    func_position:
      end: 363
      start: 275
    functionDepth: 6
    functionLinenumber: 275
    functionLinenumberEnd: 363
    functionName: mozilla::pkix::BuildForward
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixbuild.cpp
    functionUses: 0
    functionsReached:
    - BackCert*::GetDER
    - GetIssuer
    - assert
    - NonOwningDERArray::Append
    - IsChainValid
    - mozilla::pkix::CheckIssuerIndependentProperties
    - PathBuildingStep::CheckResult
    - FindIssuer
    - mozilla::pkix::NotReached
    linkageType: ''
    returnType: Result
    signature: "Result BuildForward(TrustDomain& trustDomain,\n             const
      BackCert& subject,\n             Time time,\n             KeyUsage requiredKeyUsageIfPresent,\n
      \            KeyPurposeId requiredEKUIfPresent,\n             const CertPolicyId&
      requiredPolicy,\n             /*optional*/ const Input* stapledOCSPResponse,\n
      \            unsigned int subCACount,\n             unsigned int& buildForwardCallBudget)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BackCert::Init
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:376,1
    - Dst: mozilla::pkix::BuildForward
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 8
    argNames:
    - ' trustDomain'
    - certDER
    - time
    - endEntityOrCA
    - requiredKeyUsageIfPresent
    - requiredEKUIfPresent
    - ' requiredPolicy'
    - stapledOCSPResponse
    argTypes:
    - TrustDomain
    - Input
    - Time
    - EndEntityOrCA
    - KeyUsage
    - KeyPurposeId
    - CertPolicyId
    - Input*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 365
    functionDepth: 7
    functionLinenumber: 365
    functionLinenumberEnd: 397
    functionName: mozilla::pkix::BuildCertChain
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixbuild.cpp
    functionUses: 0
    functionsReached:
    - BackCert::Init
    - mozilla::pkix::BuildForward
    linkageType: ''
    returnType: Result
    signature: "Result BuildCertChain(TrustDomain& trustDomain, Input certDER,\n               Time
      time, EndEntityOrCA endEntityOrCA,\n               KeyUsage requiredKeyUsageIfPresent,\n
      \              KeyPurposeId requiredEKUIfPresent,\n               const CertPolicyId&
      requiredPolicy,\n               /*optional*/ const Input* stapledOCSPResponse)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: TrustDomain::IssuerChecker::IssuerChecker()
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixbuild.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TrustDomain::IssuerChecker::IssuerChecker()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: TrustDomain::IssuerChecker::~IssuerChecker()
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixbuild.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TrustDomain::IssuerChecker::~IssuerChecker()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 9
    argNames:
    - ' aTrustDomain'
    - ' aSubject'
    - aTime
    - aRequiredEKUIfPresent
    - ' aRequiredPolicy'
    - aStapledOCSPResponse
    - aSubCACount
    - aDeferredSubjectError
    - ' aBuildForwardCallBudget'
    argTypes:
    - TrustDomain
    - BackCert
    - Time
    - KeyPurposeId
    - CertPolicyId
    - Input*
    - unsigned int
    - Result
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 68
    functionName: mozilla::pkix::PathBuildingStep::PathBuildingStep
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixbuild.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void PathBuildingStep(TrustDomain& aTrustDomain, const BackCert& aSubject,\n
      \                  Time aTime, KeyPurposeId aRequiredEKUIfPresent,\n                   const
      CertPolicyId& aRequiredPolicy,\n                   /*optional*/ const Input*
      aStapledOCSPResponse,\n                   unsigned int aSubCACount, Result aDeferredSubjectError,\n
      \                  unsigned int& aBuildForwardCallBudget)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: mozilla::pkix::PathBuildingStep::PathBuildingStep
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixbuild.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PathBuildingStep(const PathBuildingStep&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: operator=(const PathBuildingStep&)
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixbuild.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const PathBuildingStep&)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:108,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - newResult
    - ' keepGoing'
    argTypes:
    - Result
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 124
    functionName: mozilla::pkix::PathBuildingStep::RecordResult
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixbuild.cpp
    functionUses: 1
    functionsReached:
    - NotReached
    linkageType: ''
    returnType: Result
    signature: Result PathBuildingStep::RecordResult(Result newResult, /*out*/ bool&
      keepGoing)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 133
    functionName: mozilla::pkix::PathBuildingStep::CheckResult
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixbuild.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: Result PathBuildingStep::CheckResult() const
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: BackCert::Init
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:143,1
    - Dst: mozilla::pkix::PathBuildingStep::RecordResult
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:145,1
    - Dst: InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:155,1
    - Dst: BackCert::GetSubject
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:155,1
    - Dst: GetIssuer
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:155,1
    - Dst: InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:165,1
    - Dst: BackCert::GetSubjectPublicKeyInfo
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:165,1
    - Dst: BackCert*::GetSubjectPublicKeyInfo
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:166,1
    - Dst: InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:167,1
    - Dst: BackCert::GetSubject
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:167,1
    - Dst: BackCert*::GetSubject
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:167,1
    - Dst: mozilla::pkix::PathBuildingStep::RecordResult
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:169,1
    - Dst: BackCert::GetNameConstraints
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:173,1
    - Dst: CheckNameConstraints
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:174,1
    - Dst: BackCert::GetNameConstraints
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:174,1
    - Dst: mozilla::pkix::PathBuildingStep::RecordResult
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:177,1
    - Dst: CheckNameConstraints
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:182,1
    - Dst: mozilla::pkix::PathBuildingStep::RecordResult
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:185,1
    - Dst: CheckTLSFeatures
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:189,1
    - Dst: mozilla::pkix::PathBuildingStep::RecordResult
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:191,1
    - Dst: mozilla::pkix::PathBuildingStep::RecordResult
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:196,1
    - Dst: BuildForward
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:205,1
    - Dst: mozilla::pkix::PathBuildingStep::RecordResult
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:209,1
    - Dst: VerifySignedData
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:212,1
    - Dst: GetSignedData
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:212,1
    - Dst: BackCert::GetSubjectPublicKeyInfo
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:213,1
    - Dst: mozilla::pkix::PathBuildingStep::RecordResult
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:215,1
    - Dst: GetIssuer
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:223,1
    - Dst: BackCert::GetSubjectPublicKeyInfo
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:223,1
    - Dst: GetSerialNumber
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:224,1
    - Dst: ParseValidity
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:229,1
    - Dst: GetValidity
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:229,1
    - Dst: CheckRevocation
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:234,1
    - Dst: GetAuthorityInfoAccess
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:236,1
    - Dst: GetSignedCertificateTimestamps
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:237,1
    - Dst: mozilla::pkix::PathBuildingStep::RecordResult
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:242,1
    - Dst: GetSignedCertificateTimestamps
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:248,1
    - Dst: ExtractSignedCertificateTimestampListFromExtension
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:251,1
    - Dst: mozilla::pkix::PathBuildingStep::RecordResult
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:256,1
    - Dst: NoteAuxiliaryExtension
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:260,1
    - Dst: mozilla::pkix::PathBuildingStep::RecordResult
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:266,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 64
    argCount: 3
    argNames:
    - potentialIssuerDER
    - additionalNameConstraints
    - ' keepGoing'
    argTypes:
    - Input
    - Input*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 267
    functionName: mozilla::pkix::PathBuildingStep::Check
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixbuild.cpp
    functionUses: 0
    functionsReached:
    - CheckTLSFeatures
    - ExtractSignedCertificateTimestampListFromExtension
    - VerifySignedData
    - GetValidity
    - CheckRevocation
    - NoteAuxiliaryExtension
    - GetIssuer
    - BackCert::GetNameConstraints
    - BackCert*::GetSubjectPublicKeyInfo
    - CheckNameConstraints
    - BuildForward
    - mozilla::pkix::PathBuildingStep::RecordResult
    - GetSerialNumber
    - GetAuthorityInfoAccess
    - BackCert*::GetSubject
    - BackCert::Init
    - BackCert::GetSubject
    - ParseValidity
    - BackCert::GetSubjectPublicKeyInfo
    - GetSignedCertificateTimestamps
    - InputsAreEqual
    - GetSignedData
    linkageType: ''
    returnType: Result
    signature: "Result PathBuildingStep::Check(Input potentialIssuerDER,\n           /*optional*/
      const Input* additionalNameConstraints,\n                /*out*/ bool& keepGoing)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::CheckIssuerIndependentProperties
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:292,1
    - Dst: NonOwningDERArray::Append
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:311,1
    - Dst: BackCert*::GetDER
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:311,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:313,1
    - Dst: IsChainValid
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:319,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:334,1
    - Dst: FindIssuer
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:345,1
    - Dst: GetIssuer
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:345,1
    - Dst: PathBuildingStep::CheckResult
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:350,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 9
    argNames:
    - ' trustDomain'
    - ' subject'
    - time
    - requiredKeyUsageIfPresent
    - requiredEKUIfPresent
    - ' requiredPolicy'
    - stapledOCSPResponse
    - subCACount
    - ' buildForwardCallBudget'
    argTypes:
    - TrustDomain
    - BackCert
    - Time
    - KeyUsage
    - KeyPurposeId
    - CertPolicyId
    - Input*
    - unsigned int
    - unsigned int
    assertStmts:
    - condition: (subCACount == 0)
      pos:
        line_end: 333
        line_start: 333
        source_file: /src/nss/lib/mozpkix/lib/pkixbuild.cpp
    constantsTouched: []
    func_position:
      end: 363
      start: 275
    functionDepth: 6
    functionLinenumber: 275
    functionLinenumberEnd: 363
    functionName: mozilla::pkix::BuildForward
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixbuild.cpp
    functionUses: 1
    functionsReached:
    - BackCert*::GetDER
    - GetIssuer
    - assert
    - NonOwningDERArray::Append
    - IsChainValid
    - mozilla::pkix::CheckIssuerIndependentProperties
    - PathBuildingStep::CheckResult
    - FindIssuer
    - mozilla::pkix::NotReached
    linkageType: ''
    returnType: Result
    signature: "Result BuildForward(TrustDomain& trustDomain,\n             const
      BackCert& subject,\n             Time time,\n             KeyUsage requiredKeyUsageIfPresent,\n
      \            KeyPurposeId requiredEKUIfPresent,\n             const CertPolicyId&
      requiredPolicy,\n             /*optional*/ const Input* stapledOCSPResponse,\n
      \            unsigned int subCACount,\n             unsigned int& buildForwardCallBudget)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BackCert::Init
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:376,1
    - Dst: mozilla::pkix::BuildForward
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 8
    argNames:
    - ' trustDomain'
    - certDER
    - time
    - endEntityOrCA
    - requiredKeyUsageIfPresent
    - requiredEKUIfPresent
    - ' requiredPolicy'
    - stapledOCSPResponse
    argTypes:
    - TrustDomain
    - Input
    - Time
    - EndEntityOrCA
    - KeyUsage
    - KeyPurposeId
    - CertPolicyId
    - Input*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 365
    functionDepth: 7
    functionLinenumber: 365
    functionLinenumberEnd: 397
    functionName: mozilla::pkix::BuildCertChain
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixbuild.cpp
    functionUses: 0
    functionsReached:
    - BackCert::Init
    - mozilla::pkix::BuildForward
    linkageType: ''
    returnType: Result
    signature: "Result BuildCertChain(TrustDomain& trustDomain, Input certDER,\n               Time
      time, EndEntityOrCA endEntityOrCA,\n               KeyUsage requiredKeyUsageIfPresent,\n
      \              KeyPurposeId requiredEKUIfPresent,\n               const CertPolicyId&
      requiredPolicy,\n               /*optional*/ const Input* stapledOCSPResponse)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: TrustDomain::IssuerChecker::IssuerChecker()
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixbuild.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TrustDomain::IssuerChecker::IssuerChecker()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: TrustDomain::IssuerChecker::~IssuerChecker()
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixbuild.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TrustDomain::IssuerChecker::~IssuerChecker()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 9
    argNames:
    - ' aTrustDomain'
    - ' aSubject'
    - aTime
    - aRequiredEKUIfPresent
    - ' aRequiredPolicy'
    - aStapledOCSPResponse
    - aSubCACount
    - aDeferredSubjectError
    - ' aBuildForwardCallBudget'
    argTypes:
    - TrustDomain
    - BackCert
    - Time
    - KeyPurposeId
    - CertPolicyId
    - Input*
    - unsigned int
    - Result
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 68
    functionName: mozilla::pkix::PathBuildingStep::PathBuildingStep
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixbuild.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void PathBuildingStep(TrustDomain& aTrustDomain, const BackCert& aSubject,\n
      \                  Time aTime, KeyPurposeId aRequiredEKUIfPresent,\n                   const
      CertPolicyId& aRequiredPolicy,\n                   /*optional*/ const Input*
      aStapledOCSPResponse,\n                   unsigned int aSubCACount, Result aDeferredSubjectError,\n
      \                  unsigned int& aBuildForwardCallBudget)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: mozilla::pkix::PathBuildingStep::PathBuildingStep
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixbuild.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PathBuildingStep(const PathBuildingStep&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: operator=(const PathBuildingStep&)
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixbuild.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const PathBuildingStep&)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:108,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - newResult
    - ' keepGoing'
    argTypes:
    - Result
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 124
    functionName: mozilla::pkix::PathBuildingStep::RecordResult
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixbuild.cpp
    functionUses: 2
    functionsReached:
    - NotReached
    linkageType: ''
    returnType: Result
    signature: Result PathBuildingStep::RecordResult(Result newResult, /*out*/ bool&
      keepGoing)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 133
    functionName: mozilla::pkix::PathBuildingStep::CheckResult
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixbuild.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: Result PathBuildingStep::CheckResult() const
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: BackCert::Init
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:143,1
    - Dst: mozilla::pkix::PathBuildingStep::RecordResult
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:145,1
    - Dst: InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:155,1
    - Dst: BackCert::GetSubject
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:155,1
    - Dst: GetIssuer
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:155,1
    - Dst: InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:165,1
    - Dst: BackCert::GetSubjectPublicKeyInfo
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:165,1
    - Dst: BackCert*::GetSubjectPublicKeyInfo
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:166,1
    - Dst: InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:167,1
    - Dst: BackCert::GetSubject
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:167,1
    - Dst: BackCert*::GetSubject
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:167,1
    - Dst: mozilla::pkix::PathBuildingStep::RecordResult
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:169,1
    - Dst: BackCert::GetNameConstraints
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:173,1
    - Dst: CheckNameConstraints
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:174,1
    - Dst: BackCert::GetNameConstraints
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:174,1
    - Dst: mozilla::pkix::PathBuildingStep::RecordResult
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:177,1
    - Dst: CheckNameConstraints
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:182,1
    - Dst: mozilla::pkix::PathBuildingStep::RecordResult
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:185,1
    - Dst: CheckTLSFeatures
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:189,1
    - Dst: mozilla::pkix::PathBuildingStep::RecordResult
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:191,1
    - Dst: mozilla::pkix::PathBuildingStep::RecordResult
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:196,1
    - Dst: BuildForward
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:205,1
    - Dst: mozilla::pkix::PathBuildingStep::RecordResult
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:209,1
    - Dst: VerifySignedData
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:212,1
    - Dst: GetSignedData
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:212,1
    - Dst: BackCert::GetSubjectPublicKeyInfo
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:213,1
    - Dst: mozilla::pkix::PathBuildingStep::RecordResult
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:215,1
    - Dst: GetIssuer
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:223,1
    - Dst: BackCert::GetSubjectPublicKeyInfo
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:223,1
    - Dst: GetSerialNumber
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:224,1
    - Dst: ParseValidity
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:229,1
    - Dst: GetValidity
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:229,1
    - Dst: CheckRevocation
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:234,1
    - Dst: GetAuthorityInfoAccess
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:236,1
    - Dst: GetSignedCertificateTimestamps
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:237,1
    - Dst: mozilla::pkix::PathBuildingStep::RecordResult
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:242,1
    - Dst: GetSignedCertificateTimestamps
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:248,1
    - Dst: ExtractSignedCertificateTimestampListFromExtension
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:251,1
    - Dst: mozilla::pkix::PathBuildingStep::RecordResult
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:256,1
    - Dst: NoteAuxiliaryExtension
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:260,1
    - Dst: mozilla::pkix::PathBuildingStep::RecordResult
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:266,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 64
    argCount: 3
    argNames:
    - potentialIssuerDER
    - additionalNameConstraints
    - ' keepGoing'
    argTypes:
    - Input
    - Input*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 267
    functionName: mozilla::pkix::PathBuildingStep::Check
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixbuild.cpp
    functionUses: 0
    functionsReached:
    - CheckTLSFeatures
    - ExtractSignedCertificateTimestampListFromExtension
    - VerifySignedData
    - GetValidity
    - CheckRevocation
    - NoteAuxiliaryExtension
    - GetIssuer
    - BackCert::GetNameConstraints
    - BackCert*::GetSubjectPublicKeyInfo
    - CheckNameConstraints
    - BuildForward
    - mozilla::pkix::PathBuildingStep::RecordResult
    - GetSerialNumber
    - GetAuthorityInfoAccess
    - BackCert*::GetSubject
    - BackCert::Init
    - BackCert::GetSubject
    - ParseValidity
    - BackCert::GetSubjectPublicKeyInfo
    - GetSignedCertificateTimestamps
    - InputsAreEqual
    - GetSignedData
    linkageType: ''
    returnType: Result
    signature: "Result PathBuildingStep::Check(Input potentialIssuerDER,\n           /*optional*/
      const Input* additionalNameConstraints,\n                /*out*/ bool& keepGoing)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::CheckIssuerIndependentProperties
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:292,1
    - Dst: NonOwningDERArray::Append
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:311,1
    - Dst: BackCert*::GetDER
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:311,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:313,1
    - Dst: IsChainValid
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:319,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:334,1
    - Dst: FindIssuer
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:345,1
    - Dst: GetIssuer
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:345,1
    - Dst: PathBuildingStep::CheckResult
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:350,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 9
    argNames:
    - ' trustDomain'
    - ' subject'
    - time
    - requiredKeyUsageIfPresent
    - requiredEKUIfPresent
    - ' requiredPolicy'
    - stapledOCSPResponse
    - subCACount
    - ' buildForwardCallBudget'
    argTypes:
    - TrustDomain
    - BackCert
    - Time
    - KeyUsage
    - KeyPurposeId
    - CertPolicyId
    - Input*
    - unsigned int
    - unsigned int
    assertStmts:
    - condition: (subCACount == 0)
      pos:
        line_end: 333
        line_start: 333
        source_file: /src/nss/lib/mozpkix/lib/pkixbuild.cpp
    constantsTouched: []
    func_position:
      end: 363
      start: 275
    functionDepth: 6
    functionLinenumber: 275
    functionLinenumberEnd: 363
    functionName: mozilla::pkix::BuildForward
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixbuild.cpp
    functionUses: 2
    functionsReached:
    - BackCert*::GetDER
    - GetIssuer
    - assert
    - NonOwningDERArray::Append
    - IsChainValid
    - mozilla::pkix::CheckIssuerIndependentProperties
    - PathBuildingStep::CheckResult
    - FindIssuer
    - mozilla::pkix::NotReached
    linkageType: ''
    returnType: Result
    signature: "Result BuildForward(TrustDomain& trustDomain,\n             const
      BackCert& subject,\n             Time time,\n             KeyUsage requiredKeyUsageIfPresent,\n
      \            KeyPurposeId requiredEKUIfPresent,\n             const CertPolicyId&
      requiredPolicy,\n             /*optional*/ const Input* stapledOCSPResponse,\n
      \            unsigned int subCACount,\n             unsigned int& buildForwardCallBudget)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BackCert::Init
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:376,1
    - Dst: mozilla::pkix::BuildForward
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 8
    argNames:
    - ' trustDomain'
    - certDER
    - time
    - endEntityOrCA
    - requiredKeyUsageIfPresent
    - requiredEKUIfPresent
    - ' requiredPolicy'
    - stapledOCSPResponse
    argTypes:
    - TrustDomain
    - Input
    - Time
    - EndEntityOrCA
    - KeyUsage
    - KeyPurposeId
    - CertPolicyId
    - Input*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 365
    functionDepth: 7
    functionLinenumber: 365
    functionLinenumberEnd: 397
    functionName: mozilla::pkix::BuildCertChain
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixbuild.cpp
    functionUses: 0
    functionsReached:
    - BackCert::Init
    - mozilla::pkix::BuildForward
    linkageType: ''
    returnType: Result
    signature: "Result BuildCertChain(TrustDomain& trustDomain, Input certDER,\n               Time
      time, EndEntityOrCA endEntityOrCA,\n               KeyUsage requiredKeyUsageIfPresent,\n
      \              KeyPurposeId requiredEKUIfPresent,\n               const CertPolicyId&
      requiredPolicy,\n               /*optional*/ const Input* stapledOCSPResponse)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: TrustDomain::IssuerChecker::IssuerChecker()
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixbuild.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TrustDomain::IssuerChecker::IssuerChecker()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: TrustDomain::IssuerChecker::~IssuerChecker()
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixbuild.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TrustDomain::IssuerChecker::~IssuerChecker()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 9
    argNames:
    - ' aTrustDomain'
    - ' aSubject'
    - aTime
    - aRequiredEKUIfPresent
    - ' aRequiredPolicy'
    - aStapledOCSPResponse
    - aSubCACount
    - aDeferredSubjectError
    - ' aBuildForwardCallBudget'
    argTypes:
    - TrustDomain
    - BackCert
    - Time
    - KeyPurposeId
    - CertPolicyId
    - Input*
    - unsigned int
    - Result
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 68
    functionName: mozilla::pkix::PathBuildingStep::PathBuildingStep
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixbuild.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void PathBuildingStep(TrustDomain& aTrustDomain, const BackCert& aSubject,\n
      \                  Time aTime, KeyPurposeId aRequiredEKUIfPresent,\n                   const
      CertPolicyId& aRequiredPolicy,\n                   /*optional*/ const Input*
      aStapledOCSPResponse,\n                   unsigned int aSubCACount, Result aDeferredSubjectError,\n
      \                  unsigned int& aBuildForwardCallBudget)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: mozilla::pkix::PathBuildingStep::PathBuildingStep
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixbuild.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PathBuildingStep(const PathBuildingStep&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: operator=(const PathBuildingStep&)
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixbuild.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(const PathBuildingStep&)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:108,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - newResult
    - ' keepGoing'
    argTypes:
    - Result
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 124
    functionName: mozilla::pkix::PathBuildingStep::RecordResult
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixbuild.cpp
    functionUses: 3
    functionsReached:
    - NotReached
    linkageType: ''
    returnType: Result
    signature: Result PathBuildingStep::RecordResult(Result newResult, /*out*/ bool&
      keepGoing)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 133
    functionName: mozilla::pkix::PathBuildingStep::CheckResult
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixbuild.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: Result PathBuildingStep::CheckResult() const
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: BackCert::Init
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:143,1
    - Dst: mozilla::pkix::PathBuildingStep::RecordResult
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:145,1
    - Dst: InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:155,1
    - Dst: BackCert::GetSubject
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:155,1
    - Dst: GetIssuer
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:155,1
    - Dst: InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:165,1
    - Dst: BackCert::GetSubjectPublicKeyInfo
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:165,1
    - Dst: BackCert*::GetSubjectPublicKeyInfo
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:166,1
    - Dst: InputsAreEqual
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:167,1
    - Dst: BackCert::GetSubject
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:167,1
    - Dst: BackCert*::GetSubject
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:167,1
    - Dst: mozilla::pkix::PathBuildingStep::RecordResult
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:169,1
    - Dst: BackCert::GetNameConstraints
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:173,1
    - Dst: CheckNameConstraints
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:174,1
    - Dst: BackCert::GetNameConstraints
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:174,1
    - Dst: mozilla::pkix::PathBuildingStep::RecordResult
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:177,1
    - Dst: CheckNameConstraints
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:182,1
    - Dst: mozilla::pkix::PathBuildingStep::RecordResult
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:185,1
    - Dst: CheckTLSFeatures
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:189,1
    - Dst: mozilla::pkix::PathBuildingStep::RecordResult
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:191,1
    - Dst: mozilla::pkix::PathBuildingStep::RecordResult
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:196,1
    - Dst: BuildForward
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:205,1
    - Dst: mozilla::pkix::PathBuildingStep::RecordResult
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:209,1
    - Dst: VerifySignedData
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:212,1
    - Dst: GetSignedData
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:212,1
    - Dst: BackCert::GetSubjectPublicKeyInfo
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:213,1
    - Dst: mozilla::pkix::PathBuildingStep::RecordResult
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:215,1
    - Dst: GetIssuer
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:223,1
    - Dst: BackCert::GetSubjectPublicKeyInfo
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:223,1
    - Dst: GetSerialNumber
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:224,1
    - Dst: ParseValidity
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:229,1
    - Dst: GetValidity
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:229,1
    - Dst: CheckRevocation
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:234,1
    - Dst: GetAuthorityInfoAccess
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:236,1
    - Dst: GetSignedCertificateTimestamps
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:237,1
    - Dst: mozilla::pkix::PathBuildingStep::RecordResult
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:242,1
    - Dst: GetSignedCertificateTimestamps
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:248,1
    - Dst: ExtractSignedCertificateTimestampListFromExtension
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:251,1
    - Dst: mozilla::pkix::PathBuildingStep::RecordResult
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:256,1
    - Dst: NoteAuxiliaryExtension
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:260,1
    - Dst: mozilla::pkix::PathBuildingStep::RecordResult
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:266,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 64
    argCount: 3
    argNames:
    - potentialIssuerDER
    - additionalNameConstraints
    - ' keepGoing'
    argTypes:
    - Input
    - Input*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 267
    functionName: mozilla::pkix::PathBuildingStep::Check
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixbuild.cpp
    functionUses: 0
    functionsReached:
    - CheckTLSFeatures
    - ExtractSignedCertificateTimestampListFromExtension
    - VerifySignedData
    - GetValidity
    - CheckRevocation
    - NoteAuxiliaryExtension
    - GetIssuer
    - BackCert::GetNameConstraints
    - BackCert*::GetSubjectPublicKeyInfo
    - CheckNameConstraints
    - BuildForward
    - mozilla::pkix::PathBuildingStep::RecordResult
    - GetSerialNumber
    - GetAuthorityInfoAccess
    - BackCert*::GetSubject
    - BackCert::Init
    - BackCert::GetSubject
    - ParseValidity
    - BackCert::GetSubjectPublicKeyInfo
    - GetSignedCertificateTimestamps
    - InputsAreEqual
    - GetSignedData
    linkageType: ''
    returnType: Result
    signature: "Result PathBuildingStep::Check(Input potentialIssuerDER,\n           /*optional*/
      const Input* additionalNameConstraints,\n                /*out*/ bool& keepGoing)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::CheckIssuerIndependentProperties
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:292,1
    - Dst: NonOwningDERArray::Append
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:311,1
    - Dst: BackCert*::GetDER
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:311,1
    - Dst: mozilla::pkix::NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:313,1
    - Dst: IsChainValid
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:319,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:334,1
    - Dst: FindIssuer
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:345,1
    - Dst: GetIssuer
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:345,1
    - Dst: PathBuildingStep::CheckResult
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:350,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 9
    argNames:
    - ' trustDomain'
    - ' subject'
    - time
    - requiredKeyUsageIfPresent
    - requiredEKUIfPresent
    - ' requiredPolicy'
    - stapledOCSPResponse
    - subCACount
    - ' buildForwardCallBudget'
    argTypes:
    - TrustDomain
    - BackCert
    - Time
    - KeyUsage
    - KeyPurposeId
    - CertPolicyId
    - Input*
    - unsigned int
    - unsigned int
    assertStmts:
    - condition: (subCACount == 0)
      pos:
        line_end: 333
        line_start: 333
        source_file: /src/nss/lib/mozpkix/lib/pkixbuild.cpp
    constantsTouched: []
    func_position:
      end: 363
      start: 275
    functionDepth: 6
    functionLinenumber: 275
    functionLinenumberEnd: 363
    functionName: mozilla::pkix::BuildForward
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixbuild.cpp
    functionUses: 3
    functionsReached:
    - BackCert*::GetDER
    - GetIssuer
    - assert
    - NonOwningDERArray::Append
    - IsChainValid
    - mozilla::pkix::CheckIssuerIndependentProperties
    - PathBuildingStep::CheckResult
    - FindIssuer
    - mozilla::pkix::NotReached
    linkageType: ''
    returnType: Result
    signature: "Result BuildForward(TrustDomain& trustDomain,\n             const
      BackCert& subject,\n             Time time,\n             KeyUsage requiredKeyUsageIfPresent,\n
      \            KeyPurposeId requiredEKUIfPresent,\n             const CertPolicyId&
      requiredPolicy,\n             /*optional*/ const Input* stapledOCSPResponse,\n
      \            unsigned int subCACount,\n             unsigned int& buildForwardCallBudget)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BackCert::Init
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:376,1
    - Dst: mozilla::pkix::BuildForward
      Src: /src/nss/lib/mozpkix/lib/pkixbuild.cpp:394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 8
    argNames:
    - ' trustDomain'
    - certDER
    - time
    - endEntityOrCA
    - requiredKeyUsageIfPresent
    - requiredEKUIfPresent
    - ' requiredPolicy'
    - stapledOCSPResponse
    argTypes:
    - TrustDomain
    - Input
    - Time
    - EndEntityOrCA
    - KeyUsage
    - KeyPurposeId
    - CertPolicyId
    - Input*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 365
    functionDepth: 7
    functionLinenumber: 365
    functionLinenumberEnd: 397
    functionName: mozilla::pkix::BuildCertChain
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixbuild.cpp
    functionUses: 0
    functionsReached:
    - BackCert::Init
    - mozilla::pkix::BuildForward
    linkageType: ''
    returnType: Result
    signature: "Result BuildCertChain(TrustDomain& trustDomain, Input certDER,\n               Time
      time, EndEntityOrCA endEntityOrCA,\n               KeyUsage requiredKeyUsageIfPresent,\n
      \              KeyPurposeId requiredEKUIfPresent,\n               const CertPolicyId&
      requiredPolicy,\n               /*optional*/ const Input* stapledOCSPResponse)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetSystemTimeAsFileTime
      Src: /src/nss/lib/mozpkix/lib/pkixtime.cpp:52,1
    - Dst: static_cast<uint64_t>
      Src: /src/nss/lib/mozpkix/lib/pkixtime.cpp:53,1
    - Dst: mozilla::pkix::DaysBeforeYear
      Src: /src/nss/lib/mozpkix/lib/pkixtime.cpp:55,1
    - Dst: gettimeofday
      Src: /src/nss/lib/mozpkix/lib/pkixtime.cpp:62,1
    - Dst: mozilla::pkix::DaysBeforeYear
      Src: /src/nss/lib/mozpkix/lib/pkixtime.cpp:63,1
    - Dst: static_cast<uint64_t>
      Src: /src/nss/lib/mozpkix/lib/pkixtime.cpp:64,1
    - Dst: mozilla::pkix::TimeFromElapsedSecondsAD
      Src: /src/nss/lib/mozpkix/lib/pkixtime.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 68
    functionName: mozilla::pkix::Now
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixtime.cpp
    functionUses: 0
    functionsReached:
    - GetSystemTimeAsFileTime
    - static_cast<uint64_t>
    - gettimeofday
    - mozilla::pkix::TimeFromElapsedSecondsAD
    - mozilla::pkix::DaysBeforeYear
    linkageType: ''
    returnType: Time
    signature: Time Now()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::DaysBeforeYear
      Src: /src/nss/lib/mozpkix/lib/pkixtime.cpp:73,1
    - Dst: mozilla::pkix::TimeFromElapsedSecondsAD
      Src: /src/nss/lib/mozpkix/lib/pkixtime.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - secondsSinceEpoch
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: mozilla::pkix::TimeFromEpochInSeconds
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixtime.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::TimeFromElapsedSecondsAD
    - mozilla::pkix::DaysBeforeYear
    linkageType: ''
    returnType: Time
    signature: Time TimeFromEpochInSeconds(uint64_t secondsSinceEpoch)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::TimeFromEpochInSeconds
      Src: /src/nss/lib/mozpkix/lib/pkixtime.cpp:84,1
    - Dst: Duration
      Src: /src/nss/lib/mozpkix/lib/pkixtime.cpp:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - time
    - outSeconds
    argTypes:
    - Time
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 90
    functionName: mozilla::pkix::SecondsSinceEpochFromTime
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixtime.cpp
    functionUses: 0
    functionsReached:
    - Duration
    - mozilla::pkix::TimeFromEpochInSeconds
    linkageType: ''
    returnType: Result
    signature: Result SecondsSinceEpochFromTime(Time time, uint64_t* outSeconds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetSystemTimeAsFileTime
      Src: /src/nss/lib/mozpkix/lib/pkixtime.cpp:52,1
    - Dst: static_cast<uint64_t>
      Src: /src/nss/lib/mozpkix/lib/pkixtime.cpp:53,1
    - Dst: mozilla::pkix::DaysBeforeYear
      Src: /src/nss/lib/mozpkix/lib/pkixtime.cpp:55,1
    - Dst: gettimeofday
      Src: /src/nss/lib/mozpkix/lib/pkixtime.cpp:62,1
    - Dst: mozilla::pkix::DaysBeforeYear
      Src: /src/nss/lib/mozpkix/lib/pkixtime.cpp:63,1
    - Dst: static_cast<uint64_t>
      Src: /src/nss/lib/mozpkix/lib/pkixtime.cpp:64,1
    - Dst: mozilla::pkix::TimeFromElapsedSecondsAD
      Src: /src/nss/lib/mozpkix/lib/pkixtime.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 68
    functionName: mozilla::pkix::Now
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixtime.cpp
    functionUses: 0
    functionsReached:
    - GetSystemTimeAsFileTime
    - static_cast<uint64_t>
    - gettimeofday
    - mozilla::pkix::TimeFromElapsedSecondsAD
    - mozilla::pkix::DaysBeforeYear
    linkageType: ''
    returnType: Time
    signature: Time Now()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::DaysBeforeYear
      Src: /src/nss/lib/mozpkix/lib/pkixtime.cpp:73,1
    - Dst: mozilla::pkix::TimeFromElapsedSecondsAD
      Src: /src/nss/lib/mozpkix/lib/pkixtime.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - secondsSinceEpoch
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: mozilla::pkix::TimeFromEpochInSeconds
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixtime.cpp
    functionUses: 1
    functionsReached:
    - mozilla::pkix::TimeFromElapsedSecondsAD
    - mozilla::pkix::DaysBeforeYear
    linkageType: ''
    returnType: Time
    signature: Time TimeFromEpochInSeconds(uint64_t secondsSinceEpoch)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::TimeFromEpochInSeconds
      Src: /src/nss/lib/mozpkix/lib/pkixtime.cpp:84,1
    - Dst: Duration
      Src: /src/nss/lib/mozpkix/lib/pkixtime.cpp:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - time
    - outSeconds
    argTypes:
    - Time
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 90
    functionName: mozilla::pkix::SecondsSinceEpochFromTime
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixtime.cpp
    functionUses: 0
    functionsReached:
    - Duration
    - mozilla::pkix::TimeFromEpochInSeconds
    linkageType: ''
    returnType: Result
    signature: Result SecondsSinceEpochFromTime(Time time, uint64_t* outSeconds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetSystemTimeAsFileTime
      Src: /src/nss/lib/mozpkix/lib/pkixtime.cpp:52,1
    - Dst: static_cast<uint64_t>
      Src: /src/nss/lib/mozpkix/lib/pkixtime.cpp:53,1
    - Dst: mozilla::pkix::DaysBeforeYear
      Src: /src/nss/lib/mozpkix/lib/pkixtime.cpp:55,1
    - Dst: gettimeofday
      Src: /src/nss/lib/mozpkix/lib/pkixtime.cpp:62,1
    - Dst: mozilla::pkix::DaysBeforeYear
      Src: /src/nss/lib/mozpkix/lib/pkixtime.cpp:63,1
    - Dst: static_cast<uint64_t>
      Src: /src/nss/lib/mozpkix/lib/pkixtime.cpp:64,1
    - Dst: mozilla::pkix::TimeFromElapsedSecondsAD
      Src: /src/nss/lib/mozpkix/lib/pkixtime.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 68
    functionName: mozilla::pkix::Now
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixtime.cpp
    functionUses: 0
    functionsReached:
    - GetSystemTimeAsFileTime
    - static_cast<uint64_t>
    - gettimeofday
    - mozilla::pkix::TimeFromElapsedSecondsAD
    - mozilla::pkix::DaysBeforeYear
    linkageType: ''
    returnType: Time
    signature: Time Now()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::DaysBeforeYear
      Src: /src/nss/lib/mozpkix/lib/pkixtime.cpp:73,1
    - Dst: mozilla::pkix::TimeFromElapsedSecondsAD
      Src: /src/nss/lib/mozpkix/lib/pkixtime.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - secondsSinceEpoch
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: mozilla::pkix::TimeFromEpochInSeconds
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixtime.cpp
    functionUses: 2
    functionsReached:
    - mozilla::pkix::TimeFromElapsedSecondsAD
    - mozilla::pkix::DaysBeforeYear
    linkageType: ''
    returnType: Time
    signature: Time TimeFromEpochInSeconds(uint64_t secondsSinceEpoch)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::TimeFromEpochInSeconds
      Src: /src/nss/lib/mozpkix/lib/pkixtime.cpp:84,1
    - Dst: Duration
      Src: /src/nss/lib/mozpkix/lib/pkixtime.cpp:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - time
    - outSeconds
    argTypes:
    - Time
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 90
    functionName: mozilla::pkix::SecondsSinceEpochFromTime
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixtime.cpp
    functionUses: 0
    functionsReached:
    - Duration
    - mozilla::pkix::TimeFromEpochInSeconds
    linkageType: ''
    returnType: Result
    signature: Result SecondsSinceEpochFromTime(Time time, uint64_t* outSeconds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetSystemTimeAsFileTime
      Src: /src/nss/lib/mozpkix/lib/pkixtime.cpp:52,1
    - Dst: static_cast<uint64_t>
      Src: /src/nss/lib/mozpkix/lib/pkixtime.cpp:53,1
    - Dst: mozilla::pkix::DaysBeforeYear
      Src: /src/nss/lib/mozpkix/lib/pkixtime.cpp:55,1
    - Dst: gettimeofday
      Src: /src/nss/lib/mozpkix/lib/pkixtime.cpp:62,1
    - Dst: mozilla::pkix::DaysBeforeYear
      Src: /src/nss/lib/mozpkix/lib/pkixtime.cpp:63,1
    - Dst: static_cast<uint64_t>
      Src: /src/nss/lib/mozpkix/lib/pkixtime.cpp:64,1
    - Dst: mozilla::pkix::TimeFromElapsedSecondsAD
      Src: /src/nss/lib/mozpkix/lib/pkixtime.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 68
    functionName: mozilla::pkix::Now
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixtime.cpp
    functionUses: 0
    functionsReached:
    - GetSystemTimeAsFileTime
    - static_cast<uint64_t>
    - gettimeofday
    - mozilla::pkix::TimeFromElapsedSecondsAD
    - mozilla::pkix::DaysBeforeYear
    linkageType: ''
    returnType: Time
    signature: Time Now()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::DaysBeforeYear
      Src: /src/nss/lib/mozpkix/lib/pkixtime.cpp:73,1
    - Dst: mozilla::pkix::TimeFromElapsedSecondsAD
      Src: /src/nss/lib/mozpkix/lib/pkixtime.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - secondsSinceEpoch
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: mozilla::pkix::TimeFromEpochInSeconds
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixtime.cpp
    functionUses: 3
    functionsReached:
    - mozilla::pkix::TimeFromElapsedSecondsAD
    - mozilla::pkix::DaysBeforeYear
    linkageType: ''
    returnType: Time
    signature: Time TimeFromEpochInSeconds(uint64_t secondsSinceEpoch)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::TimeFromEpochInSeconds
      Src: /src/nss/lib/mozpkix/lib/pkixtime.cpp:84,1
    - Dst: Duration
      Src: /src/nss/lib/mozpkix/lib/pkixtime.cpp:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - time
    - outSeconds
    argTypes:
    - Time
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 90
    functionName: mozilla::pkix::SecondsSinceEpochFromTime
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixtime.cpp
    functionUses: 0
    functionsReached:
    - Duration
    - mozilla::pkix::TimeFromEpochInSeconds
    linkageType: ''
    returnType: Result
    signature: Result SecondsSinceEpochFromTime(Time time, uint64_t* outSeconds)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:37,1
    - Dst: Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:52,1
    - Dst: Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:60,1
    - Dst: Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:70,1
    - Dst: Skip
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:83,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 3
    argNames:
    - ' input'
    - ' tag'
    - ' value'
    argTypes:
    - Reader
    - uint8_t
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 84
    functionName: mozilla::pkix::der::ReadTagAndGetValue
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 24
    functionsReached:
    - Skip
    - Read
    linkageType: ''
    returnType: Result
    signature: Result ReadTagAndGetValue(Reader& input, /*out*/ uint8_t& tag, /*out*/
      Input& value)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:119,1
    - Dst: SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:124,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:216,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:219,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:222,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:225,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:228,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:231,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:234,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:237,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:240,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:244,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:246,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:248,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:250,1
    - Dst: Reader::Peek
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:261,1
    - Dst: mozilla::pkix::der::Null
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:262,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:267,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 72
    argCount: 3
    argNames:
    - ' input'
    - ' publicKeyAlgorithm'
    - ' digestAlgorithm'
    argTypes:
    - Reader
    - PublicKeyAlgorithm
    - DigestAlgorithm
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 86
    functionDepth: 4
    functionLinenumber: 86
    functionLinenumberEnd: 273
    functionName: mozilla::pkix::der::SignatureAlgorithmIdentifierValue
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 8
    functionsReached:
    - mozilla::pkix::der::Null
    - mozilla::pkix::der::ExpectTagAndGetValue
    - Reader::MatchRest
    - SkipToEnd
    - Reader::Peek
    - Reader::AtEnd
    linkageType: ''
    returnType: Result
    signature: "Result SignatureAlgorithmIdentifierValue(Reader& input,\n                                 /*out*/
      PublicKeyAlgorithm& publicKeyAlgorithm,\n                                 /*out*/
      DigestAlgorithm& digestAlgorithm)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:281,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:283,1
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:288,1
    - Dst: mozilla::pkix::der::Null
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:289,1
    - Dst: AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:294,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:318,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:320,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:322,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:324,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - ' input'
    - ' algorithm'
    argTypes:
    - Reader
    - DigestAlgorithm
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 275
    functionDepth: 4
    functionLinenumber: 275
    functionLinenumberEnd: 332
    functionName: mozilla::pkix::der::DigestAlgorithmIdentifier
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 4
    functionsReached:
    - mozilla::pkix::der::Null
    - mozilla::pkix::der::ExpectTagAndGetValue
    - Reader::MatchRest
    - mozilla::pkix::der::Nested
    - Peek
    - AtEnd
    linkageType: ''
    returnType: Result
    signature: Result DigestAlgorithmIdentifier(Reader& input, /*out*/ DigestAlgorithm&
      algorithm)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GetMark
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:338,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:341,1
    - Dst: GetInput
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:346,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:351,1
    - Dst: mozilla::pkix::der::BitStringWithNoUnusedBits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:356,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - ' input'
    - ' tbs'
    - ' signedData'
    argTypes:
    - Reader
    - Reader
    - SignedDataWithSignature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 334
    functionDepth: 2
    functionLinenumber: 334
    functionLinenumberEnd: 361
    functionName: mozilla::pkix::der::SignedData
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 8
    functionsReached:
    - GetInput
    - mozilla::pkix::der::ExpectTagAndGetValue
    - GetMark
    - mozilla::pkix::der::BitStringWithNoUnusedBits
    linkageType: ''
    returnType: Result
    signature: "Result SignedData(Reader& input, /*out*/ Reader& tbs,\n           /*out*/
      SignedDataWithSignature& signedData)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:367,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:373,1
    - Dst: Reader::SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:385,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 363
    functionDepth: 2
    functionLinenumber: 363
    functionLinenumberEnd: 386
    functionName: mozilla::pkix::der::BitStringWithNoUnusedBits
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 17
    functionsReached:
    - Reader::SkipToEnd
    - mozilla::pkix::der::ExpectTagAndGetValue
    - Reader::Read
    linkageType: ''
    returnType: Result
    signature: Result BitStringWithNoUnusedBits(Reader& input, /*out*/ Input& value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:392,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:398,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:398,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 400
    functionName: mozilla::pkix::der::ReadDigit
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 0
    functionsReached:
    - static_cast<unsigned int>
    - Read
    - static_cast<uint8_t>
    linkageType: ''
    returnType: Result
    signature: Result ReadDigit(Reader& input, /*out*/ unsigned int& value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ReadDigit
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:407,1
    - Dst: mozilla::pkix::der::ReadDigit
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:412,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - ' input'
    - minValue
    - maxValue
    - ' value'
    argTypes:
    - Reader
    - unsigned int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 421
    functionName: mozilla::pkix::der::ReadTwoDigits
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::ReadDigit
    linkageType: ''
    returnType: Result
    signature: "Result ReadTwoDigits(Reader& input, unsigned int minValue, unsigned
      int maxValue,\n              /*out*/ unsigned int& value)"
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:436,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:444,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:448,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:453,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:459,1
    - Dst: DaysBeforeYear
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:467,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:470,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:515,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:520,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:527,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:532,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:537,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:543,1
    - Dst: End
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:549,1
    - Dst: static_cast<uint64_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:553,1
    - Dst: static_cast<uint64_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:554,1
    - Dst: static_cast<uint64_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:555,1
    - Dst: TimeFromElapsedSecondsAD
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:558,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 110
    argCount: 3
    argNames:
    - ' tagged'
    - expectedTag
    - ' time'
    argTypes:
    - Reader
    - uint8_t
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 560
    functionName: mozilla::pkix::der::internal::TimeChoice
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 16
    functionsReached:
    - DaysBeforeYear
    - End
    - static_cast<uint64_t>
    - Reader::Read
    - NotReached
    - TimeFromElapsedSecondsAD
    - ExpectTagAndGetValue
    - ReadTwoDigits
    linkageType: ''
    returnType: Result
    signature: Result TimeChoice(Reader& tagged, uint8_t expectedTag, /*out*/ Time&
      time)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:568,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:577,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:588,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:592,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:593,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:603,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:609,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:620,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:622,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:626,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 42
    argCount: 5
    argNames:
    - ' input'
    - tag
    - valueRestriction
    - ' value'
    - significantBytes
    argTypes:
    - Reader
    - uint8_t
    - IntegralValueRestriction
    - Input
    - Input::size_type*
    assertStmts:
    - condition: (*significantBytes > 1)
      pos:
        line_end: 621
        line_start: 621
        source_file: /src/nss/lib/mozpkix/lib/pkixder.cpp
    - condition: (*significantBytes > 0)
      pos:
        line_end: 625
        line_start: 625
        source_file: /src/nss/lib/mozpkix/lib/pkixder.cpp
    constantsTouched: []
    func_position:
      end: 630
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 630
    functionName: mozilla::pkix::der::internal::IntegralBytes
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 16
    functionsReached:
    - Reader::Read
    - assert
    - NotReached
    - GetLength
    - ExpectTagAndGetValue
    - Reader::AtEnd
    linkageType: ''
    returnType: Result
    signature: "Result IntegralBytes(Reader& input, uint8_t tag,\n              IntegralValueRestriction
      valueRestriction,\n              /*out*/ Input& value,\n              /*optional
      out*/ Input::size_type* significantBytes)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::internal::IntegralBytes
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:641,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:647,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:649,1
    - Dst: End
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:651,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:652,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - ' input'
    - tag
    - ' value'
    argTypes:
    - Reader
    - uint8_t
    - uint8_t
    assertStmts:
    - condition: (rv == Success)
      pos:
        line_end: 651
        line_start: 651
        source_file: /src/nss/lib/mozpkix/lib/pkixder.cpp
    constantsTouched: []
    func_position:
      end: 654
      start: 634
    functionDepth: 1
    functionLinenumber: 634
    functionLinenumberEnd: 654
    functionName: mozilla::pkix::der::internal::IntegralValue
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 16
    functionsReached:
    - End
    - Reader::Read
    - mozilla::pkix::der::internal::IntegralBytes
    - assert
    - NotReached
    linkageType: ''
    returnType: Result
    signature: Result IntegralValue(Reader& input, uint8_t tag, /*out*/ uint8_t& value)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:436,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:444,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:448,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:453,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:459,1
    - Dst: DaysBeforeYear
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:467,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:470,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:515,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:520,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:527,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:532,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:537,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:543,1
    - Dst: End
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:549,1
    - Dst: static_cast<uint64_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:553,1
    - Dst: static_cast<uint64_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:554,1
    - Dst: static_cast<uint64_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:555,1
    - Dst: TimeFromElapsedSecondsAD
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:558,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 110
    argCount: 3
    argNames:
    - ' tagged'
    - expectedTag
    - ' time'
    argTypes:
    - Reader
    - uint8_t
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 560
    functionName: mozilla::pkix::der::internal::TimeChoice
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 16
    functionsReached:
    - DaysBeforeYear
    - End
    - static_cast<uint64_t>
    - Reader::Read
    - NotReached
    - TimeFromElapsedSecondsAD
    - ExpectTagAndGetValue
    - ReadTwoDigits
    linkageType: ''
    returnType: Result
    signature: Result TimeChoice(Reader& tagged, uint8_t expectedTag, /*out*/ Time&
      time)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:568,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:577,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:588,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:592,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:593,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:603,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:609,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:620,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:622,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:626,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 42
    argCount: 5
    argNames:
    - ' input'
    - tag
    - valueRestriction
    - ' value'
    - significantBytes
    argTypes:
    - Reader
    - uint8_t
    - IntegralValueRestriction
    - Input
    - Input::size_type*
    assertStmts:
    - condition: (*significantBytes > 1)
      pos:
        line_end: 621
        line_start: 621
        source_file: /src/nss/lib/mozpkix/lib/pkixder.cpp
    - condition: (*significantBytes > 0)
      pos:
        line_end: 625
        line_start: 625
        source_file: /src/nss/lib/mozpkix/lib/pkixder.cpp
    constantsTouched: []
    func_position:
      end: 630
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 630
    functionName: mozilla::pkix::der::internal::IntegralBytes
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 17
    functionsReached:
    - Reader::Read
    - assert
    - NotReached
    - GetLength
    - ExpectTagAndGetValue
    - Reader::AtEnd
    linkageType: ''
    returnType: Result
    signature: "Result IntegralBytes(Reader& input, uint8_t tag,\n              IntegralValueRestriction
      valueRestriction,\n              /*out*/ Input& value,\n              /*optional
      out*/ Input::size_type* significantBytes)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::internal::IntegralBytes
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:641,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:647,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:649,1
    - Dst: End
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:651,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:652,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - ' input'
    - tag
    - ' value'
    argTypes:
    - Reader
    - uint8_t
    - uint8_t
    assertStmts:
    - condition: (rv == Success)
      pos:
        line_end: 651
        line_start: 651
        source_file: /src/nss/lib/mozpkix/lib/pkixder.cpp
    constantsTouched: []
    func_position:
      end: 654
      start: 634
    functionDepth: 1
    functionLinenumber: 634
    functionLinenumberEnd: 654
    functionName: mozilla::pkix::der::internal::IntegralValue
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 16
    functionsReached:
    - End
    - Reader::Read
    - mozilla::pkix::der::internal::IntegralBytes
    - assert
    - NotReached
    linkageType: ''
    returnType: Result
    signature: Result IntegralValue(Reader& input, uint8_t tag, /*out*/ uint8_t& value)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:662,1
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:666,1
    - Dst: mozilla::pkix::der::Integer
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:668,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:675,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:676,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:677,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:678,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - ' input'
    - ' version'
    argTypes:
    - Reader
    - Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 658
    functionDepth: 3
    functionLinenumber: 658
    functionLinenumberEnd: 684
    functionName: mozilla::pkix::der::OptionalVersion
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 8
    functionsReached:
    - static_cast<uint8_t>
    - mozilla::pkix::der::Integer
    - mozilla::pkix::der::Nested
    - Peek
    linkageType: ''
    returnType: Result
    signature: Result OptionalVersion(Reader& input, /*out*/ Version& version)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:694,1
    - Dst: mozilla::pkix::der::PositiveInteger
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:701,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:707,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:708,1
    - Dst: Reader::SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:713,1
    - Dst: mozilla::pkix::der::PositiveInteger
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:720,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:726,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:727,1
    - Dst: Reader::SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:732,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:737,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 3
    argNames:
    - ecdsaSignature
    - ' r'
    - ' s'
    argTypes:
    - Input
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 691
    functionDepth: 3
    functionLinenumber: 691
    functionLinenumberEnd: 738
    functionName: mozilla::pkix::der::ECDSASigValue
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 4
    functionsReached:
    - mozilla::pkix::der::End
    - Input::GetLength
    - Reader::Skip
    - Reader::SkipToEnd
    - mozilla::pkix::der::PositiveInteger
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    linkageType: ''
    returnType: Result
    signature: Result ECDSASigValue(Input ecdsaSignature, /*out*/ Input& r, /*out*/
      Input& s)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:37,1
    - Dst: Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:52,1
    - Dst: Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:60,1
    - Dst: Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:70,1
    - Dst: Skip
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:83,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 3
    argNames:
    - ' input'
    - ' tag'
    - ' value'
    argTypes:
    - Reader
    - uint8_t
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 84
    functionName: mozilla::pkix::der::ReadTagAndGetValue
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 24
    functionsReached:
    - Skip
    - Read
    linkageType: ''
    returnType: Result
    signature: Result ReadTagAndGetValue(Reader& input, /*out*/ uint8_t& tag, /*out*/
      Input& value)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:119,1
    - Dst: SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:124,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:216,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:219,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:222,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:225,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:228,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:231,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:234,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:237,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:240,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:244,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:246,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:248,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:250,1
    - Dst: Reader::Peek
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:261,1
    - Dst: mozilla::pkix::der::Null
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:262,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:267,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 72
    argCount: 3
    argNames:
    - ' input'
    - ' publicKeyAlgorithm'
    - ' digestAlgorithm'
    argTypes:
    - Reader
    - PublicKeyAlgorithm
    - DigestAlgorithm
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 86
    functionDepth: 4
    functionLinenumber: 86
    functionLinenumberEnd: 273
    functionName: mozilla::pkix::der::SignatureAlgorithmIdentifierValue
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 8
    functionsReached:
    - mozilla::pkix::der::Null
    - mozilla::pkix::der::ExpectTagAndGetValue
    - Reader::MatchRest
    - SkipToEnd
    - Reader::Peek
    - Reader::AtEnd
    linkageType: ''
    returnType: Result
    signature: "Result SignatureAlgorithmIdentifierValue(Reader& input,\n                                 /*out*/
      PublicKeyAlgorithm& publicKeyAlgorithm,\n                                 /*out*/
      DigestAlgorithm& digestAlgorithm)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:281,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:283,1
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:288,1
    - Dst: mozilla::pkix::der::Null
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:289,1
    - Dst: AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:294,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:318,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:320,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:322,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:324,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - ' input'
    - ' algorithm'
    argTypes:
    - Reader
    - DigestAlgorithm
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 275
    functionDepth: 4
    functionLinenumber: 275
    functionLinenumberEnd: 332
    functionName: mozilla::pkix::der::DigestAlgorithmIdentifier
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 4
    functionsReached:
    - mozilla::pkix::der::Null
    - mozilla::pkix::der::ExpectTagAndGetValue
    - Reader::MatchRest
    - mozilla::pkix::der::Nested
    - Peek
    - AtEnd
    linkageType: ''
    returnType: Result
    signature: Result DigestAlgorithmIdentifier(Reader& input, /*out*/ DigestAlgorithm&
      algorithm)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GetMark
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:338,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:341,1
    - Dst: GetInput
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:346,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:351,1
    - Dst: mozilla::pkix::der::BitStringWithNoUnusedBits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:356,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - ' input'
    - ' tbs'
    - ' signedData'
    argTypes:
    - Reader
    - Reader
    - SignedDataWithSignature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 334
    functionDepth: 3
    functionLinenumber: 334
    functionLinenumberEnd: 361
    functionName: mozilla::pkix::der::SignedData
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 8
    functionsReached:
    - GetInput
    - mozilla::pkix::der::ExpectTagAndGetValue
    - GetMark
    - mozilla::pkix::der::BitStringWithNoUnusedBits
    linkageType: ''
    returnType: Result
    signature: "Result SignedData(Reader& input, /*out*/ Reader& tbs,\n           /*out*/
      SignedDataWithSignature& signedData)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:367,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:373,1
    - Dst: Reader::SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:385,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 363
    functionDepth: 2
    functionLinenumber: 363
    functionLinenumberEnd: 386
    functionName: mozilla::pkix::der::BitStringWithNoUnusedBits
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 18
    functionsReached:
    - Reader::SkipToEnd
    - mozilla::pkix::der::ExpectTagAndGetValue
    - Reader::Read
    linkageType: ''
    returnType: Result
    signature: Result BitStringWithNoUnusedBits(Reader& input, /*out*/ Input& value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:392,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:398,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:398,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 400
    functionName: mozilla::pkix::der::ReadDigit
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 1
    functionsReached:
    - static_cast<unsigned int>
    - Read
    - static_cast<uint8_t>
    linkageType: ''
    returnType: Result
    signature: Result ReadDigit(Reader& input, /*out*/ unsigned int& value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ReadDigit
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:407,1
    - Dst: mozilla::pkix::der::ReadDigit
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:412,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - ' input'
    - minValue
    - maxValue
    - ' value'
    argTypes:
    - Reader
    - unsigned int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 421
    functionName: mozilla::pkix::der::ReadTwoDigits
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::ReadDigit
    linkageType: ''
    returnType: Result
    signature: "Result ReadTwoDigits(Reader& input, unsigned int minValue, unsigned
      int maxValue,\n              /*out*/ unsigned int& value)"
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:436,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:444,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:448,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:453,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:459,1
    - Dst: DaysBeforeYear
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:467,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:470,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:515,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:520,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:527,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:532,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:537,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:543,1
    - Dst: End
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:549,1
    - Dst: static_cast<uint64_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:553,1
    - Dst: static_cast<uint64_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:554,1
    - Dst: static_cast<uint64_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:555,1
    - Dst: TimeFromElapsedSecondsAD
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:558,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 110
    argCount: 3
    argNames:
    - ' tagged'
    - expectedTag
    - ' time'
    argTypes:
    - Reader
    - uint8_t
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 560
    functionName: mozilla::pkix::der::internal::TimeChoice
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 16
    functionsReached:
    - DaysBeforeYear
    - End
    - static_cast<uint64_t>
    - Reader::Read
    - NotReached
    - TimeFromElapsedSecondsAD
    - ExpectTagAndGetValue
    - ReadTwoDigits
    linkageType: ''
    returnType: Result
    signature: Result TimeChoice(Reader& tagged, uint8_t expectedTag, /*out*/ Time&
      time)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:568,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:577,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:588,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:592,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:593,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:603,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:609,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:620,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:622,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:626,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 42
    argCount: 5
    argNames:
    - ' input'
    - tag
    - valueRestriction
    - ' value'
    - significantBytes
    argTypes:
    - Reader
    - uint8_t
    - IntegralValueRestriction
    - Input
    - Input::size_type*
    assertStmts:
    - condition: (*significantBytes > 1)
      pos:
        line_end: 621
        line_start: 621
        source_file: /src/nss/lib/mozpkix/lib/pkixder.cpp
    - condition: (*significantBytes > 0)
      pos:
        line_end: 625
        line_start: 625
        source_file: /src/nss/lib/mozpkix/lib/pkixder.cpp
    constantsTouched: []
    func_position:
      end: 630
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 630
    functionName: mozilla::pkix::der::internal::IntegralBytes
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 18
    functionsReached:
    - Reader::Read
    - assert
    - NotReached
    - GetLength
    - ExpectTagAndGetValue
    - Reader::AtEnd
    linkageType: ''
    returnType: Result
    signature: "Result IntegralBytes(Reader& input, uint8_t tag,\n              IntegralValueRestriction
      valueRestriction,\n              /*out*/ Input& value,\n              /*optional
      out*/ Input::size_type* significantBytes)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::internal::IntegralBytes
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:641,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:647,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:649,1
    - Dst: End
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:651,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:652,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - ' input'
    - tag
    - ' value'
    argTypes:
    - Reader
    - uint8_t
    - uint8_t
    assertStmts:
    - condition: (rv == Success)
      pos:
        line_end: 651
        line_start: 651
        source_file: /src/nss/lib/mozpkix/lib/pkixder.cpp
    constantsTouched: []
    func_position:
      end: 654
      start: 634
    functionDepth: 1
    functionLinenumber: 634
    functionLinenumberEnd: 654
    functionName: mozilla::pkix::der::internal::IntegralValue
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 16
    functionsReached:
    - End
    - Reader::Read
    - mozilla::pkix::der::internal::IntegralBytes
    - assert
    - NotReached
    linkageType: ''
    returnType: Result
    signature: Result IntegralValue(Reader& input, uint8_t tag, /*out*/ uint8_t& value)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:436,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:444,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:448,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:453,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:459,1
    - Dst: DaysBeforeYear
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:467,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:470,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:515,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:520,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:527,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:532,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:537,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:543,1
    - Dst: End
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:549,1
    - Dst: static_cast<uint64_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:553,1
    - Dst: static_cast<uint64_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:554,1
    - Dst: static_cast<uint64_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:555,1
    - Dst: TimeFromElapsedSecondsAD
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:558,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 110
    argCount: 3
    argNames:
    - ' tagged'
    - expectedTag
    - ' time'
    argTypes:
    - Reader
    - uint8_t
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 560
    functionName: mozilla::pkix::der::internal::TimeChoice
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 16
    functionsReached:
    - DaysBeforeYear
    - End
    - static_cast<uint64_t>
    - Reader::Read
    - NotReached
    - TimeFromElapsedSecondsAD
    - ExpectTagAndGetValue
    - ReadTwoDigits
    linkageType: ''
    returnType: Result
    signature: Result TimeChoice(Reader& tagged, uint8_t expectedTag, /*out*/ Time&
      time)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:568,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:577,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:588,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:592,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:593,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:603,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:609,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:620,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:622,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:626,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 42
    argCount: 5
    argNames:
    - ' input'
    - tag
    - valueRestriction
    - ' value'
    - significantBytes
    argTypes:
    - Reader
    - uint8_t
    - IntegralValueRestriction
    - Input
    - Input::size_type*
    assertStmts:
    - condition: (*significantBytes > 1)
      pos:
        line_end: 621
        line_start: 621
        source_file: /src/nss/lib/mozpkix/lib/pkixder.cpp
    - condition: (*significantBytes > 0)
      pos:
        line_end: 625
        line_start: 625
        source_file: /src/nss/lib/mozpkix/lib/pkixder.cpp
    constantsTouched: []
    func_position:
      end: 630
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 630
    functionName: mozilla::pkix::der::internal::IntegralBytes
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 19
    functionsReached:
    - Reader::Read
    - assert
    - NotReached
    - GetLength
    - ExpectTagAndGetValue
    - Reader::AtEnd
    linkageType: ''
    returnType: Result
    signature: "Result IntegralBytes(Reader& input, uint8_t tag,\n              IntegralValueRestriction
      valueRestriction,\n              /*out*/ Input& value,\n              /*optional
      out*/ Input::size_type* significantBytes)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::internal::IntegralBytes
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:641,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:647,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:649,1
    - Dst: End
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:651,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:652,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - ' input'
    - tag
    - ' value'
    argTypes:
    - Reader
    - uint8_t
    - uint8_t
    assertStmts:
    - condition: (rv == Success)
      pos:
        line_end: 651
        line_start: 651
        source_file: /src/nss/lib/mozpkix/lib/pkixder.cpp
    constantsTouched: []
    func_position:
      end: 654
      start: 634
    functionDepth: 1
    functionLinenumber: 634
    functionLinenumberEnd: 654
    functionName: mozilla::pkix::der::internal::IntegralValue
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 16
    functionsReached:
    - End
    - Reader::Read
    - mozilla::pkix::der::internal::IntegralBytes
    - assert
    - NotReached
    linkageType: ''
    returnType: Result
    signature: Result IntegralValue(Reader& input, uint8_t tag, /*out*/ uint8_t& value)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:662,1
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:666,1
    - Dst: mozilla::pkix::der::Integer
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:668,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:675,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:676,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:677,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:678,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - ' input'
    - ' version'
    argTypes:
    - Reader
    - Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 658
    functionDepth: 3
    functionLinenumber: 658
    functionLinenumberEnd: 684
    functionName: mozilla::pkix::der::OptionalVersion
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 8
    functionsReached:
    - static_cast<uint8_t>
    - mozilla::pkix::der::Integer
    - mozilla::pkix::der::Nested
    - Peek
    linkageType: ''
    returnType: Result
    signature: Result OptionalVersion(Reader& input, /*out*/ Version& version)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:694,1
    - Dst: mozilla::pkix::der::PositiveInteger
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:701,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:707,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:708,1
    - Dst: Reader::SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:713,1
    - Dst: mozilla::pkix::der::PositiveInteger
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:720,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:726,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:727,1
    - Dst: Reader::SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:732,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:737,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 3
    argNames:
    - ecdsaSignature
    - ' r'
    - ' s'
    argTypes:
    - Input
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 691
    functionDepth: 3
    functionLinenumber: 691
    functionLinenumberEnd: 738
    functionName: mozilla::pkix::der::ECDSASigValue
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 4
    functionsReached:
    - mozilla::pkix::der::End
    - Input::GetLength
    - Reader::Skip
    - Reader::SkipToEnd
    - mozilla::pkix::der::PositiveInteger
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    linkageType: ''
    returnType: Result
    signature: Result ECDSASigValue(Input ecdsaSignature, /*out*/ Input& r, /*out*/
      Input& s)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:37,1
    - Dst: Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:52,1
    - Dst: Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:60,1
    - Dst: Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:70,1
    - Dst: Skip
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:83,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 3
    argNames:
    - ' input'
    - ' tag'
    - ' value'
    argTypes:
    - Reader
    - uint8_t
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 84
    functionName: mozilla::pkix::der::ReadTagAndGetValue
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 24
    functionsReached:
    - Skip
    - Read
    linkageType: ''
    returnType: Result
    signature: Result ReadTagAndGetValue(Reader& input, /*out*/ uint8_t& tag, /*out*/
      Input& value)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:119,1
    - Dst: SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:124,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:216,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:219,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:222,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:225,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:228,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:231,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:234,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:237,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:240,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:244,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:246,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:248,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:250,1
    - Dst: Reader::Peek
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:261,1
    - Dst: mozilla::pkix::der::Null
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:262,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:267,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 72
    argCount: 3
    argNames:
    - ' input'
    - ' publicKeyAlgorithm'
    - ' digestAlgorithm'
    argTypes:
    - Reader
    - PublicKeyAlgorithm
    - DigestAlgorithm
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 86
    functionDepth: 4
    functionLinenumber: 86
    functionLinenumberEnd: 273
    functionName: mozilla::pkix::der::SignatureAlgorithmIdentifierValue
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 8
    functionsReached:
    - mozilla::pkix::der::Null
    - mozilla::pkix::der::ExpectTagAndGetValue
    - Reader::MatchRest
    - SkipToEnd
    - Reader::Peek
    - Reader::AtEnd
    linkageType: ''
    returnType: Result
    signature: "Result SignatureAlgorithmIdentifierValue(Reader& input,\n                                 /*out*/
      PublicKeyAlgorithm& publicKeyAlgorithm,\n                                 /*out*/
      DigestAlgorithm& digestAlgorithm)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:281,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:283,1
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:288,1
    - Dst: mozilla::pkix::der::Null
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:289,1
    - Dst: AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:294,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:318,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:320,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:322,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:324,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - ' input'
    - ' algorithm'
    argTypes:
    - Reader
    - DigestAlgorithm
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 275
    functionDepth: 4
    functionLinenumber: 275
    functionLinenumberEnd: 332
    functionName: mozilla::pkix::der::DigestAlgorithmIdentifier
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 4
    functionsReached:
    - mozilla::pkix::der::Null
    - mozilla::pkix::der::ExpectTagAndGetValue
    - Reader::MatchRest
    - mozilla::pkix::der::Nested
    - Peek
    - AtEnd
    linkageType: ''
    returnType: Result
    signature: Result DigestAlgorithmIdentifier(Reader& input, /*out*/ DigestAlgorithm&
      algorithm)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GetMark
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:338,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:341,1
    - Dst: GetInput
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:346,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:351,1
    - Dst: mozilla::pkix::der::BitStringWithNoUnusedBits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:356,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - ' input'
    - ' tbs'
    - ' signedData'
    argTypes:
    - Reader
    - Reader
    - SignedDataWithSignature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 334
    functionDepth: 3
    functionLinenumber: 334
    functionLinenumberEnd: 361
    functionName: mozilla::pkix::der::SignedData
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 8
    functionsReached:
    - GetInput
    - mozilla::pkix::der::ExpectTagAndGetValue
    - GetMark
    - mozilla::pkix::der::BitStringWithNoUnusedBits
    linkageType: ''
    returnType: Result
    signature: "Result SignedData(Reader& input, /*out*/ Reader& tbs,\n           /*out*/
      SignedDataWithSignature& signedData)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:367,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:373,1
    - Dst: Reader::SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:385,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 363
    functionDepth: 2
    functionLinenumber: 363
    functionLinenumberEnd: 386
    functionName: mozilla::pkix::der::BitStringWithNoUnusedBits
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 19
    functionsReached:
    - Reader::SkipToEnd
    - mozilla::pkix::der::ExpectTagAndGetValue
    - Reader::Read
    linkageType: ''
    returnType: Result
    signature: Result BitStringWithNoUnusedBits(Reader& input, /*out*/ Input& value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:392,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:398,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:398,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 400
    functionName: mozilla::pkix::der::ReadDigit
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 2
    functionsReached:
    - static_cast<unsigned int>
    - Read
    - static_cast<uint8_t>
    linkageType: ''
    returnType: Result
    signature: Result ReadDigit(Reader& input, /*out*/ unsigned int& value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ReadDigit
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:407,1
    - Dst: mozilla::pkix::der::ReadDigit
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:412,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - ' input'
    - minValue
    - maxValue
    - ' value'
    argTypes:
    - Reader
    - unsigned int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 421
    functionName: mozilla::pkix::der::ReadTwoDigits
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::ReadDigit
    linkageType: ''
    returnType: Result
    signature: "Result ReadTwoDigits(Reader& input, unsigned int minValue, unsigned
      int maxValue,\n              /*out*/ unsigned int& value)"
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:436,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:444,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:448,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:453,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:459,1
    - Dst: DaysBeforeYear
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:467,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:470,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:515,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:520,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:527,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:532,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:537,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:543,1
    - Dst: End
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:549,1
    - Dst: static_cast<uint64_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:553,1
    - Dst: static_cast<uint64_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:554,1
    - Dst: static_cast<uint64_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:555,1
    - Dst: TimeFromElapsedSecondsAD
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:558,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 110
    argCount: 3
    argNames:
    - ' tagged'
    - expectedTag
    - ' time'
    argTypes:
    - Reader
    - uint8_t
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 560
    functionName: mozilla::pkix::der::internal::TimeChoice
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 16
    functionsReached:
    - DaysBeforeYear
    - End
    - static_cast<uint64_t>
    - Reader::Read
    - NotReached
    - TimeFromElapsedSecondsAD
    - ExpectTagAndGetValue
    - ReadTwoDigits
    linkageType: ''
    returnType: Result
    signature: Result TimeChoice(Reader& tagged, uint8_t expectedTag, /*out*/ Time&
      time)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:568,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:577,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:588,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:592,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:593,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:603,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:609,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:620,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:622,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:626,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 42
    argCount: 5
    argNames:
    - ' input'
    - tag
    - valueRestriction
    - ' value'
    - significantBytes
    argTypes:
    - Reader
    - uint8_t
    - IntegralValueRestriction
    - Input
    - Input::size_type*
    assertStmts:
    - condition: (*significantBytes > 1)
      pos:
        line_end: 621
        line_start: 621
        source_file: /src/nss/lib/mozpkix/lib/pkixder.cpp
    - condition: (*significantBytes > 0)
      pos:
        line_end: 625
        line_start: 625
        source_file: /src/nss/lib/mozpkix/lib/pkixder.cpp
    constantsTouched: []
    func_position:
      end: 630
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 630
    functionName: mozilla::pkix::der::internal::IntegralBytes
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 20
    functionsReached:
    - Reader::Read
    - assert
    - NotReached
    - GetLength
    - ExpectTagAndGetValue
    - Reader::AtEnd
    linkageType: ''
    returnType: Result
    signature: "Result IntegralBytes(Reader& input, uint8_t tag,\n              IntegralValueRestriction
      valueRestriction,\n              /*out*/ Input& value,\n              /*optional
      out*/ Input::size_type* significantBytes)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::internal::IntegralBytes
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:641,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:647,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:649,1
    - Dst: End
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:651,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:652,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - ' input'
    - tag
    - ' value'
    argTypes:
    - Reader
    - uint8_t
    - uint8_t
    assertStmts:
    - condition: (rv == Success)
      pos:
        line_end: 651
        line_start: 651
        source_file: /src/nss/lib/mozpkix/lib/pkixder.cpp
    constantsTouched: []
    func_position:
      end: 654
      start: 634
    functionDepth: 1
    functionLinenumber: 634
    functionLinenumberEnd: 654
    functionName: mozilla::pkix::der::internal::IntegralValue
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 16
    functionsReached:
    - End
    - Reader::Read
    - mozilla::pkix::der::internal::IntegralBytes
    - assert
    - NotReached
    linkageType: ''
    returnType: Result
    signature: Result IntegralValue(Reader& input, uint8_t tag, /*out*/ uint8_t& value)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:436,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:444,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:448,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:453,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:459,1
    - Dst: DaysBeforeYear
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:467,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:470,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:515,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:520,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:527,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:532,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:537,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:543,1
    - Dst: End
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:549,1
    - Dst: static_cast<uint64_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:553,1
    - Dst: static_cast<uint64_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:554,1
    - Dst: static_cast<uint64_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:555,1
    - Dst: TimeFromElapsedSecondsAD
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:558,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 110
    argCount: 3
    argNames:
    - ' tagged'
    - expectedTag
    - ' time'
    argTypes:
    - Reader
    - uint8_t
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 560
    functionName: mozilla::pkix::der::internal::TimeChoice
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 16
    functionsReached:
    - DaysBeforeYear
    - End
    - static_cast<uint64_t>
    - Reader::Read
    - NotReached
    - TimeFromElapsedSecondsAD
    - ExpectTagAndGetValue
    - ReadTwoDigits
    linkageType: ''
    returnType: Result
    signature: Result TimeChoice(Reader& tagged, uint8_t expectedTag, /*out*/ Time&
      time)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:568,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:577,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:588,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:592,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:593,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:603,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:609,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:620,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:622,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:626,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 42
    argCount: 5
    argNames:
    - ' input'
    - tag
    - valueRestriction
    - ' value'
    - significantBytes
    argTypes:
    - Reader
    - uint8_t
    - IntegralValueRestriction
    - Input
    - Input::size_type*
    assertStmts:
    - condition: (*significantBytes > 1)
      pos:
        line_end: 621
        line_start: 621
        source_file: /src/nss/lib/mozpkix/lib/pkixder.cpp
    - condition: (*significantBytes > 0)
      pos:
        line_end: 625
        line_start: 625
        source_file: /src/nss/lib/mozpkix/lib/pkixder.cpp
    constantsTouched: []
    func_position:
      end: 630
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 630
    functionName: mozilla::pkix::der::internal::IntegralBytes
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 21
    functionsReached:
    - Reader::Read
    - assert
    - NotReached
    - GetLength
    - ExpectTagAndGetValue
    - Reader::AtEnd
    linkageType: ''
    returnType: Result
    signature: "Result IntegralBytes(Reader& input, uint8_t tag,\n              IntegralValueRestriction
      valueRestriction,\n              /*out*/ Input& value,\n              /*optional
      out*/ Input::size_type* significantBytes)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::internal::IntegralBytes
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:641,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:647,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:649,1
    - Dst: End
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:651,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:652,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - ' input'
    - tag
    - ' value'
    argTypes:
    - Reader
    - uint8_t
    - uint8_t
    assertStmts:
    - condition: (rv == Success)
      pos:
        line_end: 651
        line_start: 651
        source_file: /src/nss/lib/mozpkix/lib/pkixder.cpp
    constantsTouched: []
    func_position:
      end: 654
      start: 634
    functionDepth: 1
    functionLinenumber: 634
    functionLinenumberEnd: 654
    functionName: mozilla::pkix::der::internal::IntegralValue
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 16
    functionsReached:
    - End
    - Reader::Read
    - mozilla::pkix::der::internal::IntegralBytes
    - assert
    - NotReached
    linkageType: ''
    returnType: Result
    signature: Result IntegralValue(Reader& input, uint8_t tag, /*out*/ uint8_t& value)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:662,1
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:666,1
    - Dst: mozilla::pkix::der::Integer
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:668,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:675,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:676,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:677,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:678,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - ' input'
    - ' version'
    argTypes:
    - Reader
    - Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 658
    functionDepth: 3
    functionLinenumber: 658
    functionLinenumberEnd: 684
    functionName: mozilla::pkix::der::OptionalVersion
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 8
    functionsReached:
    - static_cast<uint8_t>
    - mozilla::pkix::der::Integer
    - mozilla::pkix::der::Nested
    - Peek
    linkageType: ''
    returnType: Result
    signature: Result OptionalVersion(Reader& input, /*out*/ Version& version)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:694,1
    - Dst: mozilla::pkix::der::PositiveInteger
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:701,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:707,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:708,1
    - Dst: Reader::SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:713,1
    - Dst: mozilla::pkix::der::PositiveInteger
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:720,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:726,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:727,1
    - Dst: Reader::SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:732,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:737,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 3
    argNames:
    - ecdsaSignature
    - ' r'
    - ' s'
    argTypes:
    - Input
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 691
    functionDepth: 3
    functionLinenumber: 691
    functionLinenumberEnd: 738
    functionName: mozilla::pkix::der::ECDSASigValue
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 4
    functionsReached:
    - mozilla::pkix::der::End
    - Input::GetLength
    - Reader::Skip
    - Reader::SkipToEnd
    - mozilla::pkix::der::PositiveInteger
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    linkageType: ''
    returnType: Result
    signature: Result ECDSASigValue(Input ecdsaSignature, /*out*/ Input& r, /*out*/
      Input& s)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:37,1
    - Dst: Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:52,1
    - Dst: Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:60,1
    - Dst: Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:70,1
    - Dst: Skip
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:83,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 3
    argNames:
    - ' input'
    - ' tag'
    - ' value'
    argTypes:
    - Reader
    - uint8_t
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 84
    functionName: mozilla::pkix::der::ReadTagAndGetValue
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 24
    functionsReached:
    - Skip
    - Read
    linkageType: ''
    returnType: Result
    signature: Result ReadTagAndGetValue(Reader& input, /*out*/ uint8_t& tag, /*out*/
      Input& value)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:119,1
    - Dst: SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:124,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:216,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:219,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:222,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:225,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:228,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:231,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:234,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:237,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:240,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:244,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:246,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:248,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:250,1
    - Dst: Reader::Peek
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:261,1
    - Dst: mozilla::pkix::der::Null
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:262,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:267,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 72
    argCount: 3
    argNames:
    - ' input'
    - ' publicKeyAlgorithm'
    - ' digestAlgorithm'
    argTypes:
    - Reader
    - PublicKeyAlgorithm
    - DigestAlgorithm
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 86
    functionDepth: 4
    functionLinenumber: 86
    functionLinenumberEnd: 273
    functionName: mozilla::pkix::der::SignatureAlgorithmIdentifierValue
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 8
    functionsReached:
    - mozilla::pkix::der::Null
    - mozilla::pkix::der::ExpectTagAndGetValue
    - Reader::MatchRest
    - SkipToEnd
    - Reader::Peek
    - Reader::AtEnd
    linkageType: ''
    returnType: Result
    signature: "Result SignatureAlgorithmIdentifierValue(Reader& input,\n                                 /*out*/
      PublicKeyAlgorithm& publicKeyAlgorithm,\n                                 /*out*/
      DigestAlgorithm& digestAlgorithm)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:281,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:283,1
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:288,1
    - Dst: mozilla::pkix::der::Null
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:289,1
    - Dst: AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:294,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:318,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:320,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:322,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:324,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - ' input'
    - ' algorithm'
    argTypes:
    - Reader
    - DigestAlgorithm
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 275
    functionDepth: 4
    functionLinenumber: 275
    functionLinenumberEnd: 332
    functionName: mozilla::pkix::der::DigestAlgorithmIdentifier
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 4
    functionsReached:
    - mozilla::pkix::der::Null
    - mozilla::pkix::der::ExpectTagAndGetValue
    - Reader::MatchRest
    - mozilla::pkix::der::Nested
    - Peek
    - AtEnd
    linkageType: ''
    returnType: Result
    signature: Result DigestAlgorithmIdentifier(Reader& input, /*out*/ DigestAlgorithm&
      algorithm)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GetMark
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:338,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:341,1
    - Dst: GetInput
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:346,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:351,1
    - Dst: mozilla::pkix::der::BitStringWithNoUnusedBits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:356,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - ' input'
    - ' tbs'
    - ' signedData'
    argTypes:
    - Reader
    - Reader
    - SignedDataWithSignature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 334
    functionDepth: 3
    functionLinenumber: 334
    functionLinenumberEnd: 361
    functionName: mozilla::pkix::der::SignedData
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 8
    functionsReached:
    - GetInput
    - mozilla::pkix::der::ExpectTagAndGetValue
    - GetMark
    - mozilla::pkix::der::BitStringWithNoUnusedBits
    linkageType: ''
    returnType: Result
    signature: "Result SignedData(Reader& input, /*out*/ Reader& tbs,\n           /*out*/
      SignedDataWithSignature& signedData)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:367,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:373,1
    - Dst: Reader::SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:385,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 363
    functionDepth: 2
    functionLinenumber: 363
    functionLinenumberEnd: 386
    functionName: mozilla::pkix::der::BitStringWithNoUnusedBits
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 20
    functionsReached:
    - Reader::SkipToEnd
    - mozilla::pkix::der::ExpectTagAndGetValue
    - Reader::Read
    linkageType: ''
    returnType: Result
    signature: Result BitStringWithNoUnusedBits(Reader& input, /*out*/ Input& value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:392,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:398,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:398,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 400
    functionName: mozilla::pkix::der::ReadDigit
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 3
    functionsReached:
    - static_cast<unsigned int>
    - Read
    - static_cast<uint8_t>
    linkageType: ''
    returnType: Result
    signature: Result ReadDigit(Reader& input, /*out*/ unsigned int& value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ReadDigit
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:407,1
    - Dst: mozilla::pkix::der::ReadDigit
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:412,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - ' input'
    - minValue
    - maxValue
    - ' value'
    argTypes:
    - Reader
    - unsigned int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 421
    functionName: mozilla::pkix::der::ReadTwoDigits
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::ReadDigit
    linkageType: ''
    returnType: Result
    signature: "Result ReadTwoDigits(Reader& input, unsigned int minValue, unsigned
      int maxValue,\n              /*out*/ unsigned int& value)"
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:436,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:444,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:448,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:453,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:459,1
    - Dst: DaysBeforeYear
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:467,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:470,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:515,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:520,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:527,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:532,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:537,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:543,1
    - Dst: End
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:549,1
    - Dst: static_cast<uint64_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:553,1
    - Dst: static_cast<uint64_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:554,1
    - Dst: static_cast<uint64_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:555,1
    - Dst: TimeFromElapsedSecondsAD
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:558,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 110
    argCount: 3
    argNames:
    - ' tagged'
    - expectedTag
    - ' time'
    argTypes:
    - Reader
    - uint8_t
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 560
    functionName: mozilla::pkix::der::internal::TimeChoice
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 16
    functionsReached:
    - DaysBeforeYear
    - End
    - static_cast<uint64_t>
    - Reader::Read
    - NotReached
    - TimeFromElapsedSecondsAD
    - ExpectTagAndGetValue
    - ReadTwoDigits
    linkageType: ''
    returnType: Result
    signature: Result TimeChoice(Reader& tagged, uint8_t expectedTag, /*out*/ Time&
      time)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:568,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:577,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:588,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:592,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:593,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:603,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:609,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:620,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:622,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:626,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 42
    argCount: 5
    argNames:
    - ' input'
    - tag
    - valueRestriction
    - ' value'
    - significantBytes
    argTypes:
    - Reader
    - uint8_t
    - IntegralValueRestriction
    - Input
    - Input::size_type*
    assertStmts:
    - condition: (*significantBytes > 1)
      pos:
        line_end: 621
        line_start: 621
        source_file: /src/nss/lib/mozpkix/lib/pkixder.cpp
    - condition: (*significantBytes > 0)
      pos:
        line_end: 625
        line_start: 625
        source_file: /src/nss/lib/mozpkix/lib/pkixder.cpp
    constantsTouched: []
    func_position:
      end: 630
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 630
    functionName: mozilla::pkix::der::internal::IntegralBytes
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 22
    functionsReached:
    - Reader::Read
    - assert
    - NotReached
    - GetLength
    - ExpectTagAndGetValue
    - Reader::AtEnd
    linkageType: ''
    returnType: Result
    signature: "Result IntegralBytes(Reader& input, uint8_t tag,\n              IntegralValueRestriction
      valueRestriction,\n              /*out*/ Input& value,\n              /*optional
      out*/ Input::size_type* significantBytes)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::internal::IntegralBytes
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:641,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:647,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:649,1
    - Dst: End
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:651,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:652,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - ' input'
    - tag
    - ' value'
    argTypes:
    - Reader
    - uint8_t
    - uint8_t
    assertStmts:
    - condition: (rv == Success)
      pos:
        line_end: 651
        line_start: 651
        source_file: /src/nss/lib/mozpkix/lib/pkixder.cpp
    constantsTouched: []
    func_position:
      end: 654
      start: 634
    functionDepth: 1
    functionLinenumber: 634
    functionLinenumberEnd: 654
    functionName: mozilla::pkix::der::internal::IntegralValue
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 16
    functionsReached:
    - End
    - Reader::Read
    - mozilla::pkix::der::internal::IntegralBytes
    - assert
    - NotReached
    linkageType: ''
    returnType: Result
    signature: Result IntegralValue(Reader& input, uint8_t tag, /*out*/ uint8_t& value)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:436,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:444,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:448,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:453,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:459,1
    - Dst: DaysBeforeYear
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:467,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:470,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:515,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:520,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:527,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:532,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:537,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:543,1
    - Dst: End
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:549,1
    - Dst: static_cast<uint64_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:553,1
    - Dst: static_cast<uint64_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:554,1
    - Dst: static_cast<uint64_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:555,1
    - Dst: TimeFromElapsedSecondsAD
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:558,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 110
    argCount: 3
    argNames:
    - ' tagged'
    - expectedTag
    - ' time'
    argTypes:
    - Reader
    - uint8_t
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 560
    functionName: mozilla::pkix::der::internal::TimeChoice
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 16
    functionsReached:
    - DaysBeforeYear
    - End
    - static_cast<uint64_t>
    - Reader::Read
    - NotReached
    - TimeFromElapsedSecondsAD
    - ExpectTagAndGetValue
    - ReadTwoDigits
    linkageType: ''
    returnType: Result
    signature: Result TimeChoice(Reader& tagged, uint8_t expectedTag, /*out*/ Time&
      time)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:568,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:577,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:588,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:592,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:593,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:603,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:609,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:620,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:622,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:626,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 42
    argCount: 5
    argNames:
    - ' input'
    - tag
    - valueRestriction
    - ' value'
    - significantBytes
    argTypes:
    - Reader
    - uint8_t
    - IntegralValueRestriction
    - Input
    - Input::size_type*
    assertStmts:
    - condition: (*significantBytes > 1)
      pos:
        line_end: 621
        line_start: 621
        source_file: /src/nss/lib/mozpkix/lib/pkixder.cpp
    - condition: (*significantBytes > 0)
      pos:
        line_end: 625
        line_start: 625
        source_file: /src/nss/lib/mozpkix/lib/pkixder.cpp
    constantsTouched: []
    func_position:
      end: 630
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 630
    functionName: mozilla::pkix::der::internal::IntegralBytes
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 23
    functionsReached:
    - Reader::Read
    - assert
    - NotReached
    - GetLength
    - ExpectTagAndGetValue
    - Reader::AtEnd
    linkageType: ''
    returnType: Result
    signature: "Result IntegralBytes(Reader& input, uint8_t tag,\n              IntegralValueRestriction
      valueRestriction,\n              /*out*/ Input& value,\n              /*optional
      out*/ Input::size_type* significantBytes)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::internal::IntegralBytes
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:641,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:647,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:649,1
    - Dst: End
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:651,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:652,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - ' input'
    - tag
    - ' value'
    argTypes:
    - Reader
    - uint8_t
    - uint8_t
    assertStmts:
    - condition: (rv == Success)
      pos:
        line_end: 651
        line_start: 651
        source_file: /src/nss/lib/mozpkix/lib/pkixder.cpp
    constantsTouched: []
    func_position:
      end: 654
      start: 634
    functionDepth: 1
    functionLinenumber: 634
    functionLinenumberEnd: 654
    functionName: mozilla::pkix::der::internal::IntegralValue
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 16
    functionsReached:
    - End
    - Reader::Read
    - mozilla::pkix::der::internal::IntegralBytes
    - assert
    - NotReached
    linkageType: ''
    returnType: Result
    signature: Result IntegralValue(Reader& input, uint8_t tag, /*out*/ uint8_t& value)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:662,1
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:666,1
    - Dst: mozilla::pkix::der::Integer
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:668,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:675,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:676,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:677,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:678,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - ' input'
    - ' version'
    argTypes:
    - Reader
    - Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 658
    functionDepth: 3
    functionLinenumber: 658
    functionLinenumberEnd: 684
    functionName: mozilla::pkix::der::OptionalVersion
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 8
    functionsReached:
    - static_cast<uint8_t>
    - mozilla::pkix::der::Integer
    - mozilla::pkix::der::Nested
    - Peek
    linkageType: ''
    returnType: Result
    signature: Result OptionalVersion(Reader& input, /*out*/ Version& version)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:694,1
    - Dst: mozilla::pkix::der::PositiveInteger
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:701,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:707,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:708,1
    - Dst: Reader::SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:713,1
    - Dst: mozilla::pkix::der::PositiveInteger
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:720,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:726,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:727,1
    - Dst: Reader::SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:732,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:737,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 3
    argNames:
    - ecdsaSignature
    - ' r'
    - ' s'
    argTypes:
    - Input
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 691
    functionDepth: 3
    functionLinenumber: 691
    functionLinenumberEnd: 738
    functionName: mozilla::pkix::der::ECDSASigValue
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 4
    functionsReached:
    - mozilla::pkix::der::End
    - Input::GetLength
    - Reader::Skip
    - Reader::SkipToEnd
    - mozilla::pkix::der::PositiveInteger
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    linkageType: ''
    returnType: Result
    signature: Result ECDSASigValue(Input ecdsaSignature, /*out*/ Input& r, /*out*/
      Input& s)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:37,1
    - Dst: Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:52,1
    - Dst: Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:60,1
    - Dst: Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:70,1
    - Dst: Skip
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:83,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 3
    argNames:
    - ' input'
    - ' tag'
    - ' value'
    argTypes:
    - Reader
    - uint8_t
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 84
    functionName: mozilla::pkix::der::ReadTagAndGetValue
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 24
    functionsReached:
    - Skip
    - Read
    linkageType: ''
    returnType: Result
    signature: Result ReadTagAndGetValue(Reader& input, /*out*/ uint8_t& tag, /*out*/
      Input& value)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:119,1
    - Dst: SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:124,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:216,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:219,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:222,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:225,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:228,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:231,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:234,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:237,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:240,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:244,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:246,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:248,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:250,1
    - Dst: Reader::Peek
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:261,1
    - Dst: mozilla::pkix::der::Null
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:262,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:267,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 72
    argCount: 3
    argNames:
    - ' input'
    - ' publicKeyAlgorithm'
    - ' digestAlgorithm'
    argTypes:
    - Reader
    - PublicKeyAlgorithm
    - DigestAlgorithm
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 86
    functionDepth: 4
    functionLinenumber: 86
    functionLinenumberEnd: 273
    functionName: mozilla::pkix::der::SignatureAlgorithmIdentifierValue
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 8
    functionsReached:
    - mozilla::pkix::der::Null
    - mozilla::pkix::der::ExpectTagAndGetValue
    - Reader::MatchRest
    - SkipToEnd
    - Reader::Peek
    - Reader::AtEnd
    linkageType: ''
    returnType: Result
    signature: "Result SignatureAlgorithmIdentifierValue(Reader& input,\n                                 /*out*/
      PublicKeyAlgorithm& publicKeyAlgorithm,\n                                 /*out*/
      DigestAlgorithm& digestAlgorithm)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:281,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:283,1
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:288,1
    - Dst: mozilla::pkix::der::Null
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:289,1
    - Dst: AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:294,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:318,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:320,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:322,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:324,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - ' input'
    - ' algorithm'
    argTypes:
    - Reader
    - DigestAlgorithm
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 275
    functionDepth: 4
    functionLinenumber: 275
    functionLinenumberEnd: 332
    functionName: mozilla::pkix::der::DigestAlgorithmIdentifier
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 4
    functionsReached:
    - mozilla::pkix::der::Null
    - mozilla::pkix::der::ExpectTagAndGetValue
    - Reader::MatchRest
    - mozilla::pkix::der::Nested
    - Peek
    - AtEnd
    linkageType: ''
    returnType: Result
    signature: Result DigestAlgorithmIdentifier(Reader& input, /*out*/ DigestAlgorithm&
      algorithm)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GetMark
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:338,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:341,1
    - Dst: GetInput
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:346,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:351,1
    - Dst: mozilla::pkix::der::BitStringWithNoUnusedBits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:356,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - ' input'
    - ' tbs'
    - ' signedData'
    argTypes:
    - Reader
    - Reader
    - SignedDataWithSignature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 334
    functionDepth: 3
    functionLinenumber: 334
    functionLinenumberEnd: 361
    functionName: mozilla::pkix::der::SignedData
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 8
    functionsReached:
    - GetInput
    - mozilla::pkix::der::ExpectTagAndGetValue
    - GetMark
    - mozilla::pkix::der::BitStringWithNoUnusedBits
    linkageType: ''
    returnType: Result
    signature: "Result SignedData(Reader& input, /*out*/ Reader& tbs,\n           /*out*/
      SignedDataWithSignature& signedData)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:367,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:373,1
    - Dst: Reader::SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:385,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 363
    functionDepth: 2
    functionLinenumber: 363
    functionLinenumberEnd: 386
    functionName: mozilla::pkix::der::BitStringWithNoUnusedBits
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 21
    functionsReached:
    - Reader::SkipToEnd
    - mozilla::pkix::der::ExpectTagAndGetValue
    - Reader::Read
    linkageType: ''
    returnType: Result
    signature: Result BitStringWithNoUnusedBits(Reader& input, /*out*/ Input& value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:392,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:398,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:398,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 400
    functionName: mozilla::pkix::der::ReadDigit
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 4
    functionsReached:
    - static_cast<unsigned int>
    - Read
    - static_cast<uint8_t>
    linkageType: ''
    returnType: Result
    signature: Result ReadDigit(Reader& input, /*out*/ unsigned int& value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ReadDigit
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:407,1
    - Dst: mozilla::pkix::der::ReadDigit
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:412,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - ' input'
    - minValue
    - maxValue
    - ' value'
    argTypes:
    - Reader
    - unsigned int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 421
    functionName: mozilla::pkix::der::ReadTwoDigits
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::ReadDigit
    linkageType: ''
    returnType: Result
    signature: "Result ReadTwoDigits(Reader& input, unsigned int minValue, unsigned
      int maxValue,\n              /*out*/ unsigned int& value)"
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:436,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:444,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:448,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:453,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:459,1
    - Dst: DaysBeforeYear
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:467,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:470,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:515,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:520,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:527,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:532,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:537,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:543,1
    - Dst: End
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:549,1
    - Dst: static_cast<uint64_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:553,1
    - Dst: static_cast<uint64_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:554,1
    - Dst: static_cast<uint64_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:555,1
    - Dst: TimeFromElapsedSecondsAD
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:558,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 110
    argCount: 3
    argNames:
    - ' tagged'
    - expectedTag
    - ' time'
    argTypes:
    - Reader
    - uint8_t
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 560
    functionName: mozilla::pkix::der::internal::TimeChoice
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 16
    functionsReached:
    - DaysBeforeYear
    - End
    - static_cast<uint64_t>
    - Reader::Read
    - NotReached
    - TimeFromElapsedSecondsAD
    - ExpectTagAndGetValue
    - ReadTwoDigits
    linkageType: ''
    returnType: Result
    signature: Result TimeChoice(Reader& tagged, uint8_t expectedTag, /*out*/ Time&
      time)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:568,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:577,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:588,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:592,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:593,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:603,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:609,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:620,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:622,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:626,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 42
    argCount: 5
    argNames:
    - ' input'
    - tag
    - valueRestriction
    - ' value'
    - significantBytes
    argTypes:
    - Reader
    - uint8_t
    - IntegralValueRestriction
    - Input
    - Input::size_type*
    assertStmts:
    - condition: (*significantBytes > 1)
      pos:
        line_end: 621
        line_start: 621
        source_file: /src/nss/lib/mozpkix/lib/pkixder.cpp
    - condition: (*significantBytes > 0)
      pos:
        line_end: 625
        line_start: 625
        source_file: /src/nss/lib/mozpkix/lib/pkixder.cpp
    constantsTouched: []
    func_position:
      end: 630
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 630
    functionName: mozilla::pkix::der::internal::IntegralBytes
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 24
    functionsReached:
    - Reader::Read
    - assert
    - NotReached
    - GetLength
    - ExpectTagAndGetValue
    - Reader::AtEnd
    linkageType: ''
    returnType: Result
    signature: "Result IntegralBytes(Reader& input, uint8_t tag,\n              IntegralValueRestriction
      valueRestriction,\n              /*out*/ Input& value,\n              /*optional
      out*/ Input::size_type* significantBytes)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::internal::IntegralBytes
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:641,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:647,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:649,1
    - Dst: End
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:651,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:652,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - ' input'
    - tag
    - ' value'
    argTypes:
    - Reader
    - uint8_t
    - uint8_t
    assertStmts:
    - condition: (rv == Success)
      pos:
        line_end: 651
        line_start: 651
        source_file: /src/nss/lib/mozpkix/lib/pkixder.cpp
    constantsTouched: []
    func_position:
      end: 654
      start: 634
    functionDepth: 1
    functionLinenumber: 634
    functionLinenumberEnd: 654
    functionName: mozilla::pkix::der::internal::IntegralValue
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 16
    functionsReached:
    - End
    - Reader::Read
    - mozilla::pkix::der::internal::IntegralBytes
    - assert
    - NotReached
    linkageType: ''
    returnType: Result
    signature: Result IntegralValue(Reader& input, uint8_t tag, /*out*/ uint8_t& value)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:436,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:444,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:448,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:453,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:459,1
    - Dst: DaysBeforeYear
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:467,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:470,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:515,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:520,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:527,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:532,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:537,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:543,1
    - Dst: End
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:549,1
    - Dst: static_cast<uint64_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:553,1
    - Dst: static_cast<uint64_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:554,1
    - Dst: static_cast<uint64_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:555,1
    - Dst: TimeFromElapsedSecondsAD
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:558,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 110
    argCount: 3
    argNames:
    - ' tagged'
    - expectedTag
    - ' time'
    argTypes:
    - Reader
    - uint8_t
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 560
    functionName: mozilla::pkix::der::internal::TimeChoice
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 16
    functionsReached:
    - DaysBeforeYear
    - End
    - static_cast<uint64_t>
    - Reader::Read
    - NotReached
    - TimeFromElapsedSecondsAD
    - ExpectTagAndGetValue
    - ReadTwoDigits
    linkageType: ''
    returnType: Result
    signature: Result TimeChoice(Reader& tagged, uint8_t expectedTag, /*out*/ Time&
      time)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:568,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:577,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:588,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:592,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:593,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:603,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:609,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:620,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:622,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:626,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 42
    argCount: 5
    argNames:
    - ' input'
    - tag
    - valueRestriction
    - ' value'
    - significantBytes
    argTypes:
    - Reader
    - uint8_t
    - IntegralValueRestriction
    - Input
    - Input::size_type*
    assertStmts:
    - condition: (*significantBytes > 1)
      pos:
        line_end: 621
        line_start: 621
        source_file: /src/nss/lib/mozpkix/lib/pkixder.cpp
    - condition: (*significantBytes > 0)
      pos:
        line_end: 625
        line_start: 625
        source_file: /src/nss/lib/mozpkix/lib/pkixder.cpp
    constantsTouched: []
    func_position:
      end: 630
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 630
    functionName: mozilla::pkix::der::internal::IntegralBytes
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 25
    functionsReached:
    - Reader::Read
    - assert
    - NotReached
    - GetLength
    - ExpectTagAndGetValue
    - Reader::AtEnd
    linkageType: ''
    returnType: Result
    signature: "Result IntegralBytes(Reader& input, uint8_t tag,\n              IntegralValueRestriction
      valueRestriction,\n              /*out*/ Input& value,\n              /*optional
      out*/ Input::size_type* significantBytes)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::internal::IntegralBytes
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:641,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:647,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:649,1
    - Dst: End
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:651,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:652,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - ' input'
    - tag
    - ' value'
    argTypes:
    - Reader
    - uint8_t
    - uint8_t
    assertStmts:
    - condition: (rv == Success)
      pos:
        line_end: 651
        line_start: 651
        source_file: /src/nss/lib/mozpkix/lib/pkixder.cpp
    constantsTouched: []
    func_position:
      end: 654
      start: 634
    functionDepth: 1
    functionLinenumber: 634
    functionLinenumberEnd: 654
    functionName: mozilla::pkix::der::internal::IntegralValue
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 16
    functionsReached:
    - End
    - Reader::Read
    - mozilla::pkix::der::internal::IntegralBytes
    - assert
    - NotReached
    linkageType: ''
    returnType: Result
    signature: Result IntegralValue(Reader& input, uint8_t tag, /*out*/ uint8_t& value)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:662,1
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:666,1
    - Dst: mozilla::pkix::der::Integer
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:668,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:675,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:676,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:677,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:678,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - ' input'
    - ' version'
    argTypes:
    - Reader
    - Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 658
    functionDepth: 3
    functionLinenumber: 658
    functionLinenumberEnd: 684
    functionName: mozilla::pkix::der::OptionalVersion
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 8
    functionsReached:
    - static_cast<uint8_t>
    - mozilla::pkix::der::Integer
    - mozilla::pkix::der::Nested
    - Peek
    linkageType: ''
    returnType: Result
    signature: Result OptionalVersion(Reader& input, /*out*/ Version& version)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:694,1
    - Dst: mozilla::pkix::der::PositiveInteger
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:701,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:707,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:708,1
    - Dst: Reader::SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:713,1
    - Dst: mozilla::pkix::der::PositiveInteger
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:720,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:726,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:727,1
    - Dst: Reader::SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:732,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:737,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 3
    argNames:
    - ecdsaSignature
    - ' r'
    - ' s'
    argTypes:
    - Input
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 691
    functionDepth: 3
    functionLinenumber: 691
    functionLinenumberEnd: 738
    functionName: mozilla::pkix::der::ECDSASigValue
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 4
    functionsReached:
    - mozilla::pkix::der::End
    - Input::GetLength
    - Reader::Skip
    - Reader::SkipToEnd
    - mozilla::pkix::der::PositiveInteger
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    linkageType: ''
    returnType: Result
    signature: Result ECDSASigValue(Input ecdsaSignature, /*out*/ Input& r, /*out*/
      Input& s)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:37,1
    - Dst: Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:52,1
    - Dst: Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:60,1
    - Dst: Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:70,1
    - Dst: Skip
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:83,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 3
    argNames:
    - ' input'
    - ' tag'
    - ' value'
    argTypes:
    - Reader
    - uint8_t
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 84
    functionName: mozilla::pkix::der::ReadTagAndGetValue
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 24
    functionsReached:
    - Skip
    - Read
    linkageType: ''
    returnType: Result
    signature: Result ReadTagAndGetValue(Reader& input, /*out*/ uint8_t& tag, /*out*/
      Input& value)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:119,1
    - Dst: SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:124,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:216,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:219,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:222,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:225,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:228,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:231,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:234,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:237,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:240,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:244,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:246,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:248,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:250,1
    - Dst: Reader::Peek
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:261,1
    - Dst: mozilla::pkix::der::Null
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:262,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:267,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 72
    argCount: 3
    argNames:
    - ' input'
    - ' publicKeyAlgorithm'
    - ' digestAlgorithm'
    argTypes:
    - Reader
    - PublicKeyAlgorithm
    - DigestAlgorithm
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 86
    functionDepth: 4
    functionLinenumber: 86
    functionLinenumberEnd: 273
    functionName: mozilla::pkix::der::SignatureAlgorithmIdentifierValue
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 8
    functionsReached:
    - mozilla::pkix::der::Null
    - mozilla::pkix::der::ExpectTagAndGetValue
    - Reader::MatchRest
    - SkipToEnd
    - Reader::Peek
    - Reader::AtEnd
    linkageType: ''
    returnType: Result
    signature: "Result SignatureAlgorithmIdentifierValue(Reader& input,\n                                 /*out*/
      PublicKeyAlgorithm& publicKeyAlgorithm,\n                                 /*out*/
      DigestAlgorithm& digestAlgorithm)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:281,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:283,1
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:288,1
    - Dst: mozilla::pkix::der::Null
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:289,1
    - Dst: AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:294,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:318,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:320,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:322,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:324,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - ' input'
    - ' algorithm'
    argTypes:
    - Reader
    - DigestAlgorithm
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 275
    functionDepth: 4
    functionLinenumber: 275
    functionLinenumberEnd: 332
    functionName: mozilla::pkix::der::DigestAlgorithmIdentifier
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 4
    functionsReached:
    - mozilla::pkix::der::Null
    - mozilla::pkix::der::ExpectTagAndGetValue
    - Reader::MatchRest
    - mozilla::pkix::der::Nested
    - Peek
    - AtEnd
    linkageType: ''
    returnType: Result
    signature: Result DigestAlgorithmIdentifier(Reader& input, /*out*/ DigestAlgorithm&
      algorithm)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GetMark
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:338,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:341,1
    - Dst: GetInput
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:346,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:351,1
    - Dst: mozilla::pkix::der::BitStringWithNoUnusedBits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:356,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - ' input'
    - ' tbs'
    - ' signedData'
    argTypes:
    - Reader
    - Reader
    - SignedDataWithSignature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 334
    functionDepth: 3
    functionLinenumber: 334
    functionLinenumberEnd: 361
    functionName: mozilla::pkix::der::SignedData
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 8
    functionsReached:
    - GetInput
    - mozilla::pkix::der::ExpectTagAndGetValue
    - GetMark
    - mozilla::pkix::der::BitStringWithNoUnusedBits
    linkageType: ''
    returnType: Result
    signature: "Result SignedData(Reader& input, /*out*/ Reader& tbs,\n           /*out*/
      SignedDataWithSignature& signedData)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:367,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:373,1
    - Dst: Reader::SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:385,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 363
    functionDepth: 2
    functionLinenumber: 363
    functionLinenumberEnd: 386
    functionName: mozilla::pkix::der::BitStringWithNoUnusedBits
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 22
    functionsReached:
    - Reader::SkipToEnd
    - mozilla::pkix::der::ExpectTagAndGetValue
    - Reader::Read
    linkageType: ''
    returnType: Result
    signature: Result BitStringWithNoUnusedBits(Reader& input, /*out*/ Input& value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:392,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:398,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:398,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 400
    functionName: mozilla::pkix::der::ReadDigit
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 5
    functionsReached:
    - static_cast<unsigned int>
    - Read
    - static_cast<uint8_t>
    linkageType: ''
    returnType: Result
    signature: Result ReadDigit(Reader& input, /*out*/ unsigned int& value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ReadDigit
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:407,1
    - Dst: mozilla::pkix::der::ReadDigit
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:412,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - ' input'
    - minValue
    - maxValue
    - ' value'
    argTypes:
    - Reader
    - unsigned int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 421
    functionName: mozilla::pkix::der::ReadTwoDigits
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::ReadDigit
    linkageType: ''
    returnType: Result
    signature: "Result ReadTwoDigits(Reader& input, unsigned int minValue, unsigned
      int maxValue,\n              /*out*/ unsigned int& value)"
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:436,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:444,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:448,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:453,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:459,1
    - Dst: DaysBeforeYear
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:467,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:470,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:515,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:520,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:527,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:532,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:537,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:543,1
    - Dst: End
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:549,1
    - Dst: static_cast<uint64_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:553,1
    - Dst: static_cast<uint64_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:554,1
    - Dst: static_cast<uint64_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:555,1
    - Dst: TimeFromElapsedSecondsAD
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:558,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 110
    argCount: 3
    argNames:
    - ' tagged'
    - expectedTag
    - ' time'
    argTypes:
    - Reader
    - uint8_t
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 560
    functionName: mozilla::pkix::der::internal::TimeChoice
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 16
    functionsReached:
    - DaysBeforeYear
    - End
    - static_cast<uint64_t>
    - Reader::Read
    - NotReached
    - TimeFromElapsedSecondsAD
    - ExpectTagAndGetValue
    - ReadTwoDigits
    linkageType: ''
    returnType: Result
    signature: Result TimeChoice(Reader& tagged, uint8_t expectedTag, /*out*/ Time&
      time)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:568,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:577,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:588,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:592,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:593,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:603,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:609,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:620,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:622,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:626,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 42
    argCount: 5
    argNames:
    - ' input'
    - tag
    - valueRestriction
    - ' value'
    - significantBytes
    argTypes:
    - Reader
    - uint8_t
    - IntegralValueRestriction
    - Input
    - Input::size_type*
    assertStmts:
    - condition: (*significantBytes > 1)
      pos:
        line_end: 621
        line_start: 621
        source_file: /src/nss/lib/mozpkix/lib/pkixder.cpp
    - condition: (*significantBytes > 0)
      pos:
        line_end: 625
        line_start: 625
        source_file: /src/nss/lib/mozpkix/lib/pkixder.cpp
    constantsTouched: []
    func_position:
      end: 630
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 630
    functionName: mozilla::pkix::der::internal::IntegralBytes
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 26
    functionsReached:
    - Reader::Read
    - assert
    - NotReached
    - GetLength
    - ExpectTagAndGetValue
    - Reader::AtEnd
    linkageType: ''
    returnType: Result
    signature: "Result IntegralBytes(Reader& input, uint8_t tag,\n              IntegralValueRestriction
      valueRestriction,\n              /*out*/ Input& value,\n              /*optional
      out*/ Input::size_type* significantBytes)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::internal::IntegralBytes
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:641,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:647,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:649,1
    - Dst: End
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:651,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:652,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - ' input'
    - tag
    - ' value'
    argTypes:
    - Reader
    - uint8_t
    - uint8_t
    assertStmts:
    - condition: (rv == Success)
      pos:
        line_end: 651
        line_start: 651
        source_file: /src/nss/lib/mozpkix/lib/pkixder.cpp
    constantsTouched: []
    func_position:
      end: 654
      start: 634
    functionDepth: 1
    functionLinenumber: 634
    functionLinenumberEnd: 654
    functionName: mozilla::pkix::der::internal::IntegralValue
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 16
    functionsReached:
    - End
    - Reader::Read
    - mozilla::pkix::der::internal::IntegralBytes
    - assert
    - NotReached
    linkageType: ''
    returnType: Result
    signature: Result IntegralValue(Reader& input, uint8_t tag, /*out*/ uint8_t& value)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:436,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:444,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:448,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:453,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:459,1
    - Dst: DaysBeforeYear
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:467,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:470,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:515,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:520,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:527,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:532,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:537,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:543,1
    - Dst: End
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:549,1
    - Dst: static_cast<uint64_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:553,1
    - Dst: static_cast<uint64_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:554,1
    - Dst: static_cast<uint64_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:555,1
    - Dst: TimeFromElapsedSecondsAD
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:558,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 110
    argCount: 3
    argNames:
    - ' tagged'
    - expectedTag
    - ' time'
    argTypes:
    - Reader
    - uint8_t
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 560
    functionName: mozilla::pkix::der::internal::TimeChoice
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 16
    functionsReached:
    - DaysBeforeYear
    - End
    - static_cast<uint64_t>
    - Reader::Read
    - NotReached
    - TimeFromElapsedSecondsAD
    - ExpectTagAndGetValue
    - ReadTwoDigits
    linkageType: ''
    returnType: Result
    signature: Result TimeChoice(Reader& tagged, uint8_t expectedTag, /*out*/ Time&
      time)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:568,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:577,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:588,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:592,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:593,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:603,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:609,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:620,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:622,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:626,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 42
    argCount: 5
    argNames:
    - ' input'
    - tag
    - valueRestriction
    - ' value'
    - significantBytes
    argTypes:
    - Reader
    - uint8_t
    - IntegralValueRestriction
    - Input
    - Input::size_type*
    assertStmts:
    - condition: (*significantBytes > 1)
      pos:
        line_end: 621
        line_start: 621
        source_file: /src/nss/lib/mozpkix/lib/pkixder.cpp
    - condition: (*significantBytes > 0)
      pos:
        line_end: 625
        line_start: 625
        source_file: /src/nss/lib/mozpkix/lib/pkixder.cpp
    constantsTouched: []
    func_position:
      end: 630
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 630
    functionName: mozilla::pkix::der::internal::IntegralBytes
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 27
    functionsReached:
    - Reader::Read
    - assert
    - NotReached
    - GetLength
    - ExpectTagAndGetValue
    - Reader::AtEnd
    linkageType: ''
    returnType: Result
    signature: "Result IntegralBytes(Reader& input, uint8_t tag,\n              IntegralValueRestriction
      valueRestriction,\n              /*out*/ Input& value,\n              /*optional
      out*/ Input::size_type* significantBytes)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::internal::IntegralBytes
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:641,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:647,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:649,1
    - Dst: End
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:651,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:652,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - ' input'
    - tag
    - ' value'
    argTypes:
    - Reader
    - uint8_t
    - uint8_t
    assertStmts:
    - condition: (rv == Success)
      pos:
        line_end: 651
        line_start: 651
        source_file: /src/nss/lib/mozpkix/lib/pkixder.cpp
    constantsTouched: []
    func_position:
      end: 654
      start: 634
    functionDepth: 1
    functionLinenumber: 634
    functionLinenumberEnd: 654
    functionName: mozilla::pkix::der::internal::IntegralValue
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 16
    functionsReached:
    - End
    - Reader::Read
    - mozilla::pkix::der::internal::IntegralBytes
    - assert
    - NotReached
    linkageType: ''
    returnType: Result
    signature: Result IntegralValue(Reader& input, uint8_t tag, /*out*/ uint8_t& value)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:662,1
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:666,1
    - Dst: mozilla::pkix::der::Integer
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:668,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:675,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:676,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:677,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:678,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - ' input'
    - ' version'
    argTypes:
    - Reader
    - Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 658
    functionDepth: 3
    functionLinenumber: 658
    functionLinenumberEnd: 684
    functionName: mozilla::pkix::der::OptionalVersion
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 8
    functionsReached:
    - static_cast<uint8_t>
    - mozilla::pkix::der::Integer
    - mozilla::pkix::der::Nested
    - Peek
    linkageType: ''
    returnType: Result
    signature: Result OptionalVersion(Reader& input, /*out*/ Version& version)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:694,1
    - Dst: mozilla::pkix::der::PositiveInteger
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:701,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:707,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:708,1
    - Dst: Reader::SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:713,1
    - Dst: mozilla::pkix::der::PositiveInteger
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:720,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:726,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:727,1
    - Dst: Reader::SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:732,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:737,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 3
    argNames:
    - ecdsaSignature
    - ' r'
    - ' s'
    argTypes:
    - Input
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 691
    functionDepth: 3
    functionLinenumber: 691
    functionLinenumberEnd: 738
    functionName: mozilla::pkix::der::ECDSASigValue
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 4
    functionsReached:
    - mozilla::pkix::der::End
    - Input::GetLength
    - Reader::Skip
    - Reader::SkipToEnd
    - mozilla::pkix::der::PositiveInteger
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    linkageType: ''
    returnType: Result
    signature: Result ECDSASigValue(Input ecdsaSignature, /*out*/ Input& r, /*out*/
      Input& s)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:37,1
    - Dst: Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:52,1
    - Dst: Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:60,1
    - Dst: Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:70,1
    - Dst: Skip
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:83,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 3
    argNames:
    - ' input'
    - ' tag'
    - ' value'
    argTypes:
    - Reader
    - uint8_t
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 84
    functionName: mozilla::pkix::der::ReadTagAndGetValue
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 24
    functionsReached:
    - Skip
    - Read
    linkageType: ''
    returnType: Result
    signature: Result ReadTagAndGetValue(Reader& input, /*out*/ uint8_t& tag, /*out*/
      Input& value)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:119,1
    - Dst: SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:124,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:216,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:219,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:222,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:225,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:228,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:231,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:234,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:237,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:240,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:244,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:246,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:248,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:250,1
    - Dst: Reader::Peek
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:261,1
    - Dst: mozilla::pkix::der::Null
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:262,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:267,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 72
    argCount: 3
    argNames:
    - ' input'
    - ' publicKeyAlgorithm'
    - ' digestAlgorithm'
    argTypes:
    - Reader
    - PublicKeyAlgorithm
    - DigestAlgorithm
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 86
    functionDepth: 4
    functionLinenumber: 86
    functionLinenumberEnd: 273
    functionName: mozilla::pkix::der::SignatureAlgorithmIdentifierValue
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 8
    functionsReached:
    - mozilla::pkix::der::Null
    - mozilla::pkix::der::ExpectTagAndGetValue
    - Reader::MatchRest
    - SkipToEnd
    - Reader::Peek
    - Reader::AtEnd
    linkageType: ''
    returnType: Result
    signature: "Result SignatureAlgorithmIdentifierValue(Reader& input,\n                                 /*out*/
      PublicKeyAlgorithm& publicKeyAlgorithm,\n                                 /*out*/
      DigestAlgorithm& digestAlgorithm)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:281,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:283,1
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:288,1
    - Dst: mozilla::pkix::der::Null
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:289,1
    - Dst: AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:294,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:318,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:320,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:322,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:324,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - ' input'
    - ' algorithm'
    argTypes:
    - Reader
    - DigestAlgorithm
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 275
    functionDepth: 4
    functionLinenumber: 275
    functionLinenumberEnd: 332
    functionName: mozilla::pkix::der::DigestAlgorithmIdentifier
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 4
    functionsReached:
    - mozilla::pkix::der::Null
    - mozilla::pkix::der::ExpectTagAndGetValue
    - Reader::MatchRest
    - mozilla::pkix::der::Nested
    - Peek
    - AtEnd
    linkageType: ''
    returnType: Result
    signature: Result DigestAlgorithmIdentifier(Reader& input, /*out*/ DigestAlgorithm&
      algorithm)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GetMark
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:338,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:341,1
    - Dst: GetInput
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:346,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:351,1
    - Dst: mozilla::pkix::der::BitStringWithNoUnusedBits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:356,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - ' input'
    - ' tbs'
    - ' signedData'
    argTypes:
    - Reader
    - Reader
    - SignedDataWithSignature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 334
    functionDepth: 3
    functionLinenumber: 334
    functionLinenumberEnd: 361
    functionName: mozilla::pkix::der::SignedData
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 8
    functionsReached:
    - GetInput
    - mozilla::pkix::der::ExpectTagAndGetValue
    - GetMark
    - mozilla::pkix::der::BitStringWithNoUnusedBits
    linkageType: ''
    returnType: Result
    signature: "Result SignedData(Reader& input, /*out*/ Reader& tbs,\n           /*out*/
      SignedDataWithSignature& signedData)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:367,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:373,1
    - Dst: Reader::SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:385,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 363
    functionDepth: 2
    functionLinenumber: 363
    functionLinenumberEnd: 386
    functionName: mozilla::pkix::der::BitStringWithNoUnusedBits
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 23
    functionsReached:
    - Reader::SkipToEnd
    - mozilla::pkix::der::ExpectTagAndGetValue
    - Reader::Read
    linkageType: ''
    returnType: Result
    signature: Result BitStringWithNoUnusedBits(Reader& input, /*out*/ Input& value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:392,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:398,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:398,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 400
    functionName: mozilla::pkix::der::ReadDigit
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 6
    functionsReached:
    - static_cast<unsigned int>
    - Read
    - static_cast<uint8_t>
    linkageType: ''
    returnType: Result
    signature: Result ReadDigit(Reader& input, /*out*/ unsigned int& value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ReadDigit
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:407,1
    - Dst: mozilla::pkix::der::ReadDigit
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:412,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - ' input'
    - minValue
    - maxValue
    - ' value'
    argTypes:
    - Reader
    - unsigned int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 421
    functionName: mozilla::pkix::der::ReadTwoDigits
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::ReadDigit
    linkageType: ''
    returnType: Result
    signature: "Result ReadTwoDigits(Reader& input, unsigned int minValue, unsigned
      int maxValue,\n              /*out*/ unsigned int& value)"
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:436,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:444,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:448,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:453,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:459,1
    - Dst: DaysBeforeYear
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:467,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:470,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:515,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:520,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:527,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:532,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:537,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:543,1
    - Dst: End
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:549,1
    - Dst: static_cast<uint64_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:553,1
    - Dst: static_cast<uint64_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:554,1
    - Dst: static_cast<uint64_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:555,1
    - Dst: TimeFromElapsedSecondsAD
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:558,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 110
    argCount: 3
    argNames:
    - ' tagged'
    - expectedTag
    - ' time'
    argTypes:
    - Reader
    - uint8_t
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 560
    functionName: mozilla::pkix::der::internal::TimeChoice
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 16
    functionsReached:
    - DaysBeforeYear
    - End
    - static_cast<uint64_t>
    - Reader::Read
    - NotReached
    - TimeFromElapsedSecondsAD
    - ExpectTagAndGetValue
    - ReadTwoDigits
    linkageType: ''
    returnType: Result
    signature: Result TimeChoice(Reader& tagged, uint8_t expectedTag, /*out*/ Time&
      time)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:568,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:577,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:588,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:592,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:593,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:603,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:609,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:620,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:622,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:626,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 42
    argCount: 5
    argNames:
    - ' input'
    - tag
    - valueRestriction
    - ' value'
    - significantBytes
    argTypes:
    - Reader
    - uint8_t
    - IntegralValueRestriction
    - Input
    - Input::size_type*
    assertStmts:
    - condition: (*significantBytes > 1)
      pos:
        line_end: 621
        line_start: 621
        source_file: /src/nss/lib/mozpkix/lib/pkixder.cpp
    - condition: (*significantBytes > 0)
      pos:
        line_end: 625
        line_start: 625
        source_file: /src/nss/lib/mozpkix/lib/pkixder.cpp
    constantsTouched: []
    func_position:
      end: 630
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 630
    functionName: mozilla::pkix::der::internal::IntegralBytes
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 28
    functionsReached:
    - Reader::Read
    - assert
    - NotReached
    - GetLength
    - ExpectTagAndGetValue
    - Reader::AtEnd
    linkageType: ''
    returnType: Result
    signature: "Result IntegralBytes(Reader& input, uint8_t tag,\n              IntegralValueRestriction
      valueRestriction,\n              /*out*/ Input& value,\n              /*optional
      out*/ Input::size_type* significantBytes)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::internal::IntegralBytes
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:641,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:647,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:649,1
    - Dst: End
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:651,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:652,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - ' input'
    - tag
    - ' value'
    argTypes:
    - Reader
    - uint8_t
    - uint8_t
    assertStmts:
    - condition: (rv == Success)
      pos:
        line_end: 651
        line_start: 651
        source_file: /src/nss/lib/mozpkix/lib/pkixder.cpp
    constantsTouched: []
    func_position:
      end: 654
      start: 634
    functionDepth: 1
    functionLinenumber: 634
    functionLinenumberEnd: 654
    functionName: mozilla::pkix::der::internal::IntegralValue
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 16
    functionsReached:
    - End
    - Reader::Read
    - mozilla::pkix::der::internal::IntegralBytes
    - assert
    - NotReached
    linkageType: ''
    returnType: Result
    signature: Result IntegralValue(Reader& input, uint8_t tag, /*out*/ uint8_t& value)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:436,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:444,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:448,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:453,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:459,1
    - Dst: DaysBeforeYear
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:467,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:470,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:515,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:520,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:527,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:532,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:537,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:543,1
    - Dst: End
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:549,1
    - Dst: static_cast<uint64_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:553,1
    - Dst: static_cast<uint64_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:554,1
    - Dst: static_cast<uint64_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:555,1
    - Dst: TimeFromElapsedSecondsAD
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:558,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 110
    argCount: 3
    argNames:
    - ' tagged'
    - expectedTag
    - ' time'
    argTypes:
    - Reader
    - uint8_t
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 560
    functionName: mozilla::pkix::der::internal::TimeChoice
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 16
    functionsReached:
    - DaysBeforeYear
    - End
    - static_cast<uint64_t>
    - Reader::Read
    - NotReached
    - TimeFromElapsedSecondsAD
    - ExpectTagAndGetValue
    - ReadTwoDigits
    linkageType: ''
    returnType: Result
    signature: Result TimeChoice(Reader& tagged, uint8_t expectedTag, /*out*/ Time&
      time)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:568,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:577,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:588,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:592,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:593,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:603,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:609,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:620,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:622,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:626,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 42
    argCount: 5
    argNames:
    - ' input'
    - tag
    - valueRestriction
    - ' value'
    - significantBytes
    argTypes:
    - Reader
    - uint8_t
    - IntegralValueRestriction
    - Input
    - Input::size_type*
    assertStmts:
    - condition: (*significantBytes > 1)
      pos:
        line_end: 621
        line_start: 621
        source_file: /src/nss/lib/mozpkix/lib/pkixder.cpp
    - condition: (*significantBytes > 0)
      pos:
        line_end: 625
        line_start: 625
        source_file: /src/nss/lib/mozpkix/lib/pkixder.cpp
    constantsTouched: []
    func_position:
      end: 630
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 630
    functionName: mozilla::pkix::der::internal::IntegralBytes
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 29
    functionsReached:
    - Reader::Read
    - assert
    - NotReached
    - GetLength
    - ExpectTagAndGetValue
    - Reader::AtEnd
    linkageType: ''
    returnType: Result
    signature: "Result IntegralBytes(Reader& input, uint8_t tag,\n              IntegralValueRestriction
      valueRestriction,\n              /*out*/ Input& value,\n              /*optional
      out*/ Input::size_type* significantBytes)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::internal::IntegralBytes
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:641,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:647,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:649,1
    - Dst: End
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:651,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:652,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - ' input'
    - tag
    - ' value'
    argTypes:
    - Reader
    - uint8_t
    - uint8_t
    assertStmts:
    - condition: (rv == Success)
      pos:
        line_end: 651
        line_start: 651
        source_file: /src/nss/lib/mozpkix/lib/pkixder.cpp
    constantsTouched: []
    func_position:
      end: 654
      start: 634
    functionDepth: 1
    functionLinenumber: 634
    functionLinenumberEnd: 654
    functionName: mozilla::pkix::der::internal::IntegralValue
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 16
    functionsReached:
    - End
    - Reader::Read
    - mozilla::pkix::der::internal::IntegralBytes
    - assert
    - NotReached
    linkageType: ''
    returnType: Result
    signature: Result IntegralValue(Reader& input, uint8_t tag, /*out*/ uint8_t& value)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:662,1
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:666,1
    - Dst: mozilla::pkix::der::Integer
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:668,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:675,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:676,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:677,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:678,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - ' input'
    - ' version'
    argTypes:
    - Reader
    - Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 658
    functionDepth: 3
    functionLinenumber: 658
    functionLinenumberEnd: 684
    functionName: mozilla::pkix::der::OptionalVersion
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 8
    functionsReached:
    - static_cast<uint8_t>
    - mozilla::pkix::der::Integer
    - mozilla::pkix::der::Nested
    - Peek
    linkageType: ''
    returnType: Result
    signature: Result OptionalVersion(Reader& input, /*out*/ Version& version)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:694,1
    - Dst: mozilla::pkix::der::PositiveInteger
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:701,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:707,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:708,1
    - Dst: Reader::SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:713,1
    - Dst: mozilla::pkix::der::PositiveInteger
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:720,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:726,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:727,1
    - Dst: Reader::SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:732,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:737,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 3
    argNames:
    - ecdsaSignature
    - ' r'
    - ' s'
    argTypes:
    - Input
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 691
    functionDepth: 3
    functionLinenumber: 691
    functionLinenumberEnd: 738
    functionName: mozilla::pkix::der::ECDSASigValue
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 4
    functionsReached:
    - mozilla::pkix::der::End
    - Input::GetLength
    - Reader::Skip
    - Reader::SkipToEnd
    - mozilla::pkix::der::PositiveInteger
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    linkageType: ''
    returnType: Result
    signature: Result ECDSASigValue(Input ecdsaSignature, /*out*/ Input& r, /*out*/
      Input& s)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:37,1
    - Dst: Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:52,1
    - Dst: Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:60,1
    - Dst: Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:70,1
    - Dst: Skip
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:83,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 3
    argNames:
    - ' input'
    - ' tag'
    - ' value'
    argTypes:
    - Reader
    - uint8_t
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 84
    functionName: mozilla::pkix::der::ReadTagAndGetValue
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 24
    functionsReached:
    - Skip
    - Read
    linkageType: ''
    returnType: Result
    signature: Result ReadTagAndGetValue(Reader& input, /*out*/ uint8_t& tag, /*out*/
      Input& value)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:119,1
    - Dst: SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:124,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:216,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:219,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:222,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:225,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:228,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:231,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:234,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:237,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:240,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:244,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:246,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:248,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:250,1
    - Dst: Reader::Peek
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:261,1
    - Dst: mozilla::pkix::der::Null
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:262,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:267,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 72
    argCount: 3
    argNames:
    - ' input'
    - ' publicKeyAlgorithm'
    - ' digestAlgorithm'
    argTypes:
    - Reader
    - PublicKeyAlgorithm
    - DigestAlgorithm
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 86
    functionDepth: 4
    functionLinenumber: 86
    functionLinenumberEnd: 273
    functionName: mozilla::pkix::der::SignatureAlgorithmIdentifierValue
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 8
    functionsReached:
    - mozilla::pkix::der::Null
    - mozilla::pkix::der::ExpectTagAndGetValue
    - Reader::MatchRest
    - SkipToEnd
    - Reader::Peek
    - Reader::AtEnd
    linkageType: ''
    returnType: Result
    signature: "Result SignatureAlgorithmIdentifierValue(Reader& input,\n                                 /*out*/
      PublicKeyAlgorithm& publicKeyAlgorithm,\n                                 /*out*/
      DigestAlgorithm& digestAlgorithm)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:281,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:283,1
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:288,1
    - Dst: mozilla::pkix::der::Null
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:289,1
    - Dst: AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:294,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:318,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:320,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:322,1
    - Dst: Reader::MatchRest
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:324,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - ' input'
    - ' algorithm'
    argTypes:
    - Reader
    - DigestAlgorithm
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 275
    functionDepth: 4
    functionLinenumber: 275
    functionLinenumberEnd: 332
    functionName: mozilla::pkix::der::DigestAlgorithmIdentifier
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 4
    functionsReached:
    - mozilla::pkix::der::Null
    - mozilla::pkix::der::ExpectTagAndGetValue
    - Reader::MatchRest
    - mozilla::pkix::der::Nested
    - Peek
    - AtEnd
    linkageType: ''
    returnType: Result
    signature: Result DigestAlgorithmIdentifier(Reader& input, /*out*/ DigestAlgorithm&
      algorithm)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GetMark
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:338,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:341,1
    - Dst: GetInput
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:346,1
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:351,1
    - Dst: mozilla::pkix::der::BitStringWithNoUnusedBits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:356,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - ' input'
    - ' tbs'
    - ' signedData'
    argTypes:
    - Reader
    - Reader
    - SignedDataWithSignature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 334
    functionDepth: 3
    functionLinenumber: 334
    functionLinenumberEnd: 361
    functionName: mozilla::pkix::der::SignedData
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 8
    functionsReached:
    - GetInput
    - mozilla::pkix::der::ExpectTagAndGetValue
    - GetMark
    - mozilla::pkix::der::BitStringWithNoUnusedBits
    linkageType: ''
    returnType: Result
    signature: "Result SignedData(Reader& input, /*out*/ Reader& tbs,\n           /*out*/
      SignedDataWithSignature& signedData)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:367,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:373,1
    - Dst: Reader::SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:385,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 363
    functionDepth: 2
    functionLinenumber: 363
    functionLinenumberEnd: 386
    functionName: mozilla::pkix::der::BitStringWithNoUnusedBits
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 24
    functionsReached:
    - Reader::SkipToEnd
    - mozilla::pkix::der::ExpectTagAndGetValue
    - Reader::Read
    linkageType: ''
    returnType: Result
    signature: Result BitStringWithNoUnusedBits(Reader& input, /*out*/ Input& value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:392,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:398,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:398,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ' input'
    - ' value'
    argTypes:
    - Reader
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 400
    functionName: mozilla::pkix::der::ReadDigit
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 7
    functionsReached:
    - static_cast<unsigned int>
    - Read
    - static_cast<uint8_t>
    linkageType: ''
    returnType: Result
    signature: Result ReadDigit(Reader& input, /*out*/ unsigned int& value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ReadDigit
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:407,1
    - Dst: mozilla::pkix::der::ReadDigit
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:412,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - ' input'
    - minValue
    - maxValue
    - ' value'
    argTypes:
    - Reader
    - unsigned int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 421
    functionName: mozilla::pkix::der::ReadTwoDigits
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 0
    functionsReached:
    - mozilla::pkix::der::ReadDigit
    linkageType: ''
    returnType: Result
    signature: "Result ReadTwoDigits(Reader& input, unsigned int minValue, unsigned
      int maxValue,\n              /*out*/ unsigned int& value)"
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:436,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:444,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:448,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:453,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:459,1
    - Dst: DaysBeforeYear
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:467,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:470,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:515,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:520,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:527,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:532,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:537,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:543,1
    - Dst: End
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:549,1
    - Dst: static_cast<uint64_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:553,1
    - Dst: static_cast<uint64_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:554,1
    - Dst: static_cast<uint64_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:555,1
    - Dst: TimeFromElapsedSecondsAD
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:558,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 110
    argCount: 3
    argNames:
    - ' tagged'
    - expectedTag
    - ' time'
    argTypes:
    - Reader
    - uint8_t
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 560
    functionName: mozilla::pkix::der::internal::TimeChoice
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 16
    functionsReached:
    - DaysBeforeYear
    - End
    - static_cast<uint64_t>
    - Reader::Read
    - NotReached
    - TimeFromElapsedSecondsAD
    - ExpectTagAndGetValue
    - ReadTwoDigits
    linkageType: ''
    returnType: Result
    signature: Result TimeChoice(Reader& tagged, uint8_t expectedTag, /*out*/ Time&
      time)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:568,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:577,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:588,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:592,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:593,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:603,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:609,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:620,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:622,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:626,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 42
    argCount: 5
    argNames:
    - ' input'
    - tag
    - valueRestriction
    - ' value'
    - significantBytes
    argTypes:
    - Reader
    - uint8_t
    - IntegralValueRestriction
    - Input
    - Input::size_type*
    assertStmts:
    - condition: (*significantBytes > 1)
      pos:
        line_end: 621
        line_start: 621
        source_file: /src/nss/lib/mozpkix/lib/pkixder.cpp
    - condition: (*significantBytes > 0)
      pos:
        line_end: 625
        line_start: 625
        source_file: /src/nss/lib/mozpkix/lib/pkixder.cpp
    constantsTouched: []
    func_position:
      end: 630
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 630
    functionName: mozilla::pkix::der::internal::IntegralBytes
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 30
    functionsReached:
    - Reader::Read
    - assert
    - NotReached
    - GetLength
    - ExpectTagAndGetValue
    - Reader::AtEnd
    linkageType: ''
    returnType: Result
    signature: "Result IntegralBytes(Reader& input, uint8_t tag,\n              IntegralValueRestriction
      valueRestriction,\n              /*out*/ Input& value,\n              /*optional
      out*/ Input::size_type* significantBytes)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::internal::IntegralBytes
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:641,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:647,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:649,1
    - Dst: End
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:651,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:652,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - ' input'
    - tag
    - ' value'
    argTypes:
    - Reader
    - uint8_t
    - uint8_t
    assertStmts:
    - condition: (rv == Success)
      pos:
        line_end: 651
        line_start: 651
        source_file: /src/nss/lib/mozpkix/lib/pkixder.cpp
    constantsTouched: []
    func_position:
      end: 654
      start: 634
    functionDepth: 1
    functionLinenumber: 634
    functionLinenumberEnd: 654
    functionName: mozilla::pkix::der::internal::IntegralValue
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 16
    functionsReached:
    - End
    - Reader::Read
    - mozilla::pkix::der::internal::IntegralBytes
    - assert
    - NotReached
    linkageType: ''
    returnType: Result
    signature: Result IntegralValue(Reader& input, uint8_t tag, /*out*/ uint8_t& value)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:436,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:444,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:448,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:453,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:459,1
    - Dst: DaysBeforeYear
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:467,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:470,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:515,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:520,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:527,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:532,1
    - Dst: ReadTwoDigits
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:537,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:543,1
    - Dst: End
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:549,1
    - Dst: static_cast<uint64_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:553,1
    - Dst: static_cast<uint64_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:554,1
    - Dst: static_cast<uint64_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:555,1
    - Dst: TimeFromElapsedSecondsAD
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:558,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 110
    argCount: 3
    argNames:
    - ' tagged'
    - expectedTag
    - ' time'
    argTypes:
    - Reader
    - uint8_t
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 560
    functionName: mozilla::pkix::der::internal::TimeChoice
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 16
    functionsReached:
    - DaysBeforeYear
    - End
    - static_cast<uint64_t>
    - Reader::Read
    - NotReached
    - TimeFromElapsedSecondsAD
    - ExpectTagAndGetValue
    - ReadTwoDigits
    linkageType: ''
    returnType: Result
    signature: Result TimeChoice(Reader& tagged, uint8_t expectedTag, /*out*/ Time&
      time)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ExpectTagAndGetValue
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:568,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:577,1
    - Dst: Reader::AtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:588,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:592,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:593,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:603,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:609,1
    - Dst: GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:620,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:622,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:626,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 42
    argCount: 5
    argNames:
    - ' input'
    - tag
    - valueRestriction
    - ' value'
    - significantBytes
    argTypes:
    - Reader
    - uint8_t
    - IntegralValueRestriction
    - Input
    - Input::size_type*
    assertStmts:
    - condition: (*significantBytes > 1)
      pos:
        line_end: 621
        line_start: 621
        source_file: /src/nss/lib/mozpkix/lib/pkixder.cpp
    - condition: (*significantBytes > 0)
      pos:
        line_end: 625
        line_start: 625
        source_file: /src/nss/lib/mozpkix/lib/pkixder.cpp
    constantsTouched: []
    func_position:
      end: 630
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 630
    functionName: mozilla::pkix::der::internal::IntegralBytes
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 31
    functionsReached:
    - Reader::Read
    - assert
    - NotReached
    - GetLength
    - ExpectTagAndGetValue
    - Reader::AtEnd
    linkageType: ''
    returnType: Result
    signature: "Result IntegralBytes(Reader& input, uint8_t tag,\n              IntegralValueRestriction
      valueRestriction,\n              /*out*/ Input& value,\n              /*optional
      out*/ Input::size_type* significantBytes)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::internal::IntegralBytes
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:641,1
    - Dst: Reader::Read
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:647,1
    - Dst: NotReached
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:649,1
    - Dst: End
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:651,1
    - Dst: assert
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:652,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - ' input'
    - tag
    - ' value'
    argTypes:
    - Reader
    - uint8_t
    - uint8_t
    assertStmts:
    - condition: (rv == Success)
      pos:
        line_end: 651
        line_start: 651
        source_file: /src/nss/lib/mozpkix/lib/pkixder.cpp
    constantsTouched: []
    func_position:
      end: 654
      start: 634
    functionDepth: 1
    functionLinenumber: 634
    functionLinenumberEnd: 654
    functionName: mozilla::pkix::der::internal::IntegralValue
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 16
    functionsReached:
    - End
    - Reader::Read
    - mozilla::pkix::der::internal::IntegralBytes
    - assert
    - NotReached
    linkageType: ''
    returnType: Result
    signature: Result IntegralValue(Reader& input, uint8_t tag, /*out*/ uint8_t& value)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Peek
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:662,1
    - Dst: mozilla::pkix::der::Nested
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:666,1
    - Dst: mozilla::pkix::der::Integer
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:668,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:675,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:676,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:677,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:678,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - ' input'
    - ' version'
    argTypes:
    - Reader
    - Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 658
    functionDepth: 3
    functionLinenumber: 658
    functionLinenumberEnd: 684
    functionName: mozilla::pkix::der::OptionalVersion
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 8
    functionsReached:
    - static_cast<uint8_t>
    - mozilla::pkix::der::Integer
    - mozilla::pkix::der::Nested
    - Peek
    linkageType: ''
    returnType: Result
    signature: Result OptionalVersion(Reader& input, /*out*/ Version& version)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::der::ExpectTagAndGetValueAtEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:694,1
    - Dst: mozilla::pkix::der::PositiveInteger
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:701,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:707,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:708,1
    - Dst: Reader::SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:713,1
    - Dst: mozilla::pkix::der::PositiveInteger
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:720,1
    - Dst: Input::GetLength
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:726,1
    - Dst: Reader::Skip
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:727,1
    - Dst: Reader::SkipToEnd
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:732,1
    - Dst: mozilla::pkix::der::End
      Src: /src/nss/lib/mozpkix/lib/pkixder.cpp:737,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 3
    argNames:
    - ecdsaSignature
    - ' r'
    - ' s'
    argTypes:
    - Input
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 691
    functionDepth: 3
    functionLinenumber: 691
    functionLinenumberEnd: 738
    functionName: mozilla::pkix::der::ECDSASigValue
    functionSourceFile: /src/nss/lib/mozpkix/lib/pkixder.cpp
    functionUses: 4
    functionsReached:
    - mozilla::pkix::der::End
    - Input::GetLength
    - Reader::Skip
    - Reader::SkipToEnd
    - mozilla::pkix::der::PositiveInteger
    - mozilla::pkix::der::ExpectTagAndGetValueAtEnd
    linkageType: ''
    returnType: Result
    signature: Result ECDSASigValue(Input ecdsaSignature, /*out*/ Input& r, /*out*/
      Input& s)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sec_pkcs12_new_pfx
      Src: /src/nss/lib/pkcs12/p12dec.c:39,1
    - Dst: SEC_ASN1DecodeItem
      Src: /src/nss/lib/pkcs12/p12dec.c:44,1
    - Dst: SEC_PKCS12DestroyPFX
      Src: /src/nss/lib/pkcs12/p12dec.c:52,1
    - Dst: sec_pkcs12_new_pfx
      Src: /src/nss/lib/pkcs12/p12dec.c:53,1
    - Dst: SEC_ASN1DecodeItem
      Src: /src/nss/lib/pkcs12/p12dec.c:57,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12dec.c:60,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pkcs12/p12dec.c:61,1
    - Dst: SGN_CopyDigestInfo
      Src: /src/nss/lib/pkcs12/p12dec.c:65,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12dec.c:67,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pkcs12/p12dec.c:68,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/pkcs12/p12dec.c:71,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12dec.c:73,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pkcs12/p12dec.c:74,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 1
    argNames:
    - der_pfx
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 85
    functionName: sec_pkcs12_decode_pfx
    functionSourceFile: /src/nss/lib/pkcs12/p12dec.c
    functionUses: 0
    functionsReached:
    - PORT_FreeArena
    - SGN_CopyDigestInfo
    - sec_pkcs12_new_pfx
    - SECITEM_CopyItem
    - SEC_ASN1DecodeItem
    - PORT_SetError
    - SEC_PKCS12DestroyPFX
    linkageType: ''
    returnType: SEC_PKCS12PFXItem
    signature: 'SEC_PKCS12PFXItem *

      sec_pkcs12_decode_pfx(SECItem *der_pfx)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/pkcs12/p12dec.c:106,1
    - Dst: sec_pkcs12_create_virtual_password
      Src: /src/nss/lib/pkcs12/p12dec.c:115,1
    - Dst: sec_pkcs12_generate_key_from_password
      Src: /src/nss/lib/pkcs12/p12dec.c:122,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pkcs12/p12dec.c:127,1
    - Dst: SEC_PKCS7GetContent
      Src: /src/nss/lib/pkcs12/p12dec.c:133,1
    - Dst: sec_pkcs12_generate_mac
      Src: /src/nss/lib/pkcs12/p12dec.c:139,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/pkcs12/p12dec.c:143,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12dec.c:149,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pkcs12/p12dec.c:152,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pkcs12/p12dec.c:157,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12dec.c:163,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pkcs12/p12dec.c:170,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 54
    argCount: 2
    argNames:
    - pfx
    - pwitem
    argTypes:
    - SEC_PKCS12PFXItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 173
    functionName: sec_pkcs12_check_pfx_mac
    functionSourceFile: /src/nss/lib/pkcs12/p12dec.c
    functionUses: 0
    functionsReached:
    - sec_pkcs12_create_virtual_password
    - SECITEM_CompareItem
    - SECOID_GetAlgorithmTag
    - sec_pkcs12_generate_mac
    - PORT_SetError
    - sec_pkcs12_generate_key_from_password
    - SECITEM_ZfreeItem
    - SEC_PKCS7GetContent
    linkageType: ''
    returnType: PRBool
    signature: "PRBool sec_pkcs12_check_pfx_mac(SEC_PKCS12PFXItem *pfx,\n                         SECItem
      *pwitem)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SEC_PKCS7ContentType
      Src: /src/nss/lib/pkcs12/p12dec.c:184,1
    - Dst: sec_pkcs12_check_pfx_mac
      Src: /src/nss/lib/pkcs12/p12dec.c:187,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12dec.c:191,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - pfx
    - pwitem
    argTypes:
    - SEC_PKCS12PFXItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 196
    functionName: sec_pkcs12_validate_pfx
    functionSourceFile: /src/nss/lib/pkcs12/p12dec.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - SEC_PKCS7ContentType
    - sec_pkcs12_check_pfx_mac
    linkageType: ''
    returnType: PRBool
    signature: "PRBool sec_pkcs12_validate_pfx(SEC_PKCS12PFXItem *pfx,\n                        SECItem
      *pwitem)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sec_pkcs12_decode_pfx
      Src: /src/nss/lib/pkcs12/p12dec.c:212,1
    - Dst: sec_pkcs12_validate_pfx
      Src: /src/nss/lib/pkcs12/p12dec.c:217,1
    - Dst: SEC_PKCS12DestroyPFX
      Src: /src/nss/lib/pkcs12/p12dec.c:219,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - pfx_data
    - pwitem
    argTypes:
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 201
    functionDepth: 3
    functionLinenumber: 201
    functionLinenumberEnd: 224
    functionName: sec_pkcs12_get_pfx
    functionSourceFile: /src/nss/lib/pkcs12/p12dec.c
    functionUses: 0
    functionsReached:
    - SEC_PKCS12DestroyPFX
    - sec_pkcs12_validate_pfx
    - sec_pkcs12_decode_pfx
    linkageType: ''
    returnType: SEC_PKCS12PFXItem
    signature: "SEC_PKCS12PFXItem *\nsec_pkcs12_get_pfx(SECItem *pfx_data,\n                   SECItem
      *pwitem)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sec_pkcs12_create_baggage
      Src: /src/nss/lib/pkcs12/p12dec.c:248,1
    - Dst: sec_pkcs12_create_external_bag
      Src: /src/nss/lib/pkcs12/p12dec.c:252,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pkcs12/p12dec.c:257,1
    - Dst: sec_pkcs12_append_shrouded_key
      Src: /src/nss/lib/pkcs12/p12dec.c:266,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - asafe
    argTypes:
    - SEC_PKCS12AuthenticatedSafe*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 273
    functionName: sec_pkcs12_convert_old_auth_safe
    functionSourceFile: /src/nss/lib/pkcs12/p12dec.c
    functionUses: 0
    functionsReached:
    - sec_pkcs12_create_baggage
    - PORT_Memcpy
    - sec_pkcs12_create_external_bag
    - sec_pkcs12_append_shrouded_key
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sec_pkcs12_convert_old_auth_safe(SEC_PKCS12AuthenticatedSafe
      *asafe)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SEC_PKCS7GetContent
      Src: /src/nss/lib/pkcs12/p12dec.c:293,1
    - Dst: sec_pkcs12_new_asafe
      Src: /src/nss/lib/pkcs12/p12dec.c:299,1
    - Dst: SEC_ASN1DecodeItem
      Src: /src/nss/lib/pkcs12/p12dec.c:305,1
    - Dst: SEC_ASN1DecodeItem
      Src: /src/nss/lib/pkcs12/p12dec.c:312,1
    - Dst: sec_pkcs12_convert_old_auth_safe
      Src: /src/nss/lib/pkcs12/p12dec.c:316,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 1
    argNames:
    - pfx
    argTypes:
    - SEC_PKCS12PFXItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 282
    functionDepth: 2
    functionLinenumber: 282
    functionLinenumberEnd: 330
    functionName: sec_pkcs12_decode_authenticated_safe
    functionSourceFile: /src/nss/lib/pkcs12/p12dec.c
    functionUses: 0
    functionsReached:
    - SEC_ASN1DecodeItem
    - sec_pkcs12_convert_old_auth_safe
    - sec_pkcs12_new_asafe
    - SEC_PKCS7GetContent
    linkageType: ''
    returnType: SEC_PKCS12AuthenticatedSafe
    signature: 'SEC_PKCS12AuthenticatedSafe *

      sec_pkcs12_decode_authenticated_safe(SEC_PKCS12PFXItem *pfx)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12dec.c:356,1
    - Dst: SEC_PKCS7IsContentEmpty
      Src: /src/nss/lib/pkcs12/p12dec.c:364,1
    - Dst: SEC_PKCS7GetEncryptionAlgorithm
      Src: /src/nss/lib/pkcs12/p12dec.c:372,1
    - Dst: SEC_PKCS5IsAlgorithmPBEAlg
      Src: /src/nss/lib/pkcs12/p12dec.c:374,1
    - Dst: SEC_PKCS12DecryptionAllowed
      Src: /src/nss/lib/pkcs12/p12dec.c:375,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12dec.c:378,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12dec.c:381,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12dec.c:386,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 1
    argNames:
    - asafe
    argTypes:
    - SEC_PKCS12AuthenticatedSafe*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 339
    functionDepth: 4
    functionLinenumber: 339
    functionLinenumberEnd: 390
    functionName: sec_pkcs12_validate_encrypted_safe
    functionSourceFile: /src/nss/lib/pkcs12/p12dec.c
    functionUses: 0
    functionsReached:
    - SEC_PKCS7GetEncryptionAlgorithm
    - PORT_SetError
    - SEC_PKCS12DecryptionAllowed
    - SEC_PKCS5IsAlgorithmPBEAlg
    - SEC_PKCS7IsContentEmpty
    linkageType: ''
    returnType: PRBool
    signature: PRBool sec_pkcs12_validate_encrypted_safe(SEC_PKCS12AuthenticatedSafe
      *asafe)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DER_GetInteger
      Src: /src/nss/lib/pkcs12/p12dec.c:413,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12dec.c:415,1
    - Dst: SEC_PKCS7ContentType
      Src: /src/nss/lib/pkcs12/p12dec.c:421,1
    - Dst: sec_pkcs12_validate_encrypted_safe
      Src: /src/nss/lib/pkcs12/p12dec.c:424,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12dec.c:428,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - asafe
    argTypes:
    - SEC_PKCS12AuthenticatedSafe*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 398
    functionDepth: 5
    functionLinenumber: 398
    functionLinenumberEnd: 434
    functionName: sec_pkcs12_validate_auth_safe
    functionSourceFile: /src/nss/lib/pkcs12/p12dec.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - SEC_PKCS7ContentType
    - DER_GetInteger
    - sec_pkcs12_validate_encrypted_safe
    linkageType: ''
    returnType: PRBool
    signature: PRBool sec_pkcs12_validate_auth_safe(SEC_PKCS12AuthenticatedSafe *asafe)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sec_pkcs12_decode_authenticated_safe
      Src: /src/nss/lib/pkcs12/p12dec.c:451,1
    - Dst: sec_pkcs12_validate_auth_safe
      Src: /src/nss/lib/pkcs12/p12dec.c:456,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - pfx
    argTypes:
    - SEC_PKCS12PFXItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 441
    functionDepth: 6
    functionLinenumber: 441
    functionLinenumberEnd: 464
    functionName: sec_pkcs12_get_auth_safe
    functionSourceFile: /src/nss/lib/pkcs12/p12dec.c
    functionUses: 0
    functionsReached:
    - sec_pkcs12_decode_authenticated_safe
    - sec_pkcs12_validate_auth_safe
    linkageType: ''
    returnType: SEC_PKCS12AuthenticatedSafe
    signature: 'SEC_PKCS12AuthenticatedSafe *

      sec_pkcs12_get_auth_safe(SEC_PKCS12PFXItem *pfx)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sec_pkcs12_create_virtual_password
      Src: /src/nss/lib/pkcs12/p12dec.c:487,1
    - Dst: SEC_PKCS7DecryptContents
      Src: /src/nss/lib/pkcs12/p12dec.c:494,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pkcs12/p12dec.c:498,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - asafe
    - pwitem
    - wincx
    argTypes:
    - SEC_PKCS12AuthenticatedSafe*
    - SECItem*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 474
    functionDepth: 1
    functionLinenumber: 474
    functionLinenumberEnd: 502
    functionName: sec_pkcs12_decrypt_auth_safe
    functionSourceFile: /src/nss/lib/pkcs12/p12dec.c
    functionUses: 0
    functionsReached:
    - sec_pkcs12_create_virtual_password
    - SECITEM_ZfreeItem
    - SEC_PKCS7DecryptContents
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sec_pkcs12_decrypt_auth_safe(SEC_PKCS12AuthenticatedSafe
      *asafe,\n                             SECItem *pwitem,\n                             void
      *wincx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs12/p12dec.c:522,1
    - Dst: SEC_PKCS7GetContent
      Src: /src/nss/lib/pkcs12/p12dec.c:531,1
    - Dst: SEC_ASN1DecodeItem
      Src: /src/nss/lib/pkcs12/p12dec.c:540,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12dec.c:545,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12dec.c:548,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 1
    argNames:
    - asafe
    argTypes:
    - SEC_PKCS12AuthenticatedSafe*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 511
    functionDepth: 1
    functionLinenumber: 511
    functionLinenumberEnd: 553
    functionName: sec_pkcs12_get_safe_contents
    functionSourceFile: /src/nss/lib/pkcs12/p12dec.c
    functionUses: 0
    functionsReached:
    - SEC_ASN1DecodeItem
    - PORT_SetError
    - PORT_ArenaZAlloc
    - SEC_PKCS7GetContent
    linkageType: ''
    returnType: SEC_PKCS12SafeContents
    signature: 'SEC_PKCS12SafeContents *

      sec_pkcs12_get_safe_contents(SEC_PKCS12AuthenticatedSafe *asafe)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: sec_pkcs12_get_pfx
      Src: /src/nss/lib/pkcs12/p12dec.c:582,1
    - Dst: sec_pkcs12_get_auth_safe
      Src: /src/nss/lib/pkcs12/p12dec.c:584,1
    - Dst: sec_pkcs12_decrypt_auth_safe
      Src: /src/nss/lib/pkcs12/p12dec.c:589,1
    - Dst: sec_pkcs12_get_safe_contents
      Src: /src/nss/lib/pkcs12/p12dec.c:591,1
    - Dst: sec_pkcs12_create_safe_contents
      Src: /src/nss/lib/pkcs12/p12dec.c:597,1
    - Dst: sec_PKCS12ConvertOldSafeToNew
      Src: /src/nss/lib/pkcs12/p12dec.c:610,1
    - Dst: SEC_PKCS12DecoderValidateBags
      Src: /src/nss/lib/pkcs12/p12dec.c:619,1
    - Dst: SEC_PKCS12DecoderImportBags
      Src: /src/nss/lib/pkcs12/p12dec.c:624,1
    - Dst: SEC_PKCS12DestroyPFX
      Src: /src/nss/lib/pkcs12/p12dec.c:632,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 48
    argCount: 5
    argNames:
    - der_pfx
    - pwitem
    - ncCall
    - slot
    - wincx
    argTypes:
    - SECItem*
    - SECItem*
    - SEC_PKCS12NicknameCollisionCallback
    - PK11SlotInfo*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 564
    functionDepth: 2
    functionLinenumber: 564
    functionLinenumberEnd: 636
    functionName: SEC_PKCS12PutPFX
    functionSourceFile: /src/nss/lib/pkcs12/p12dec.c
    functionUses: 0
    functionsReached:
    - sec_pkcs12_get_safe_contents
    - sec_pkcs12_get_auth_safe
    - sec_PKCS12ConvertOldSafeToNew
    - sec_pkcs12_create_safe_contents
    - SEC_PKCS12DecoderValidateBags
    - sec_pkcs12_get_pfx
    - sec_pkcs12_decrypt_auth_safe
    - SEC_PKCS12DestroyPFX
    - SEC_PKCS12DecoderImportBags
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SEC_PKCS12PutPFX(SECItem *der_pfx, SECItem *pwitem,\n                 SEC_PKCS12NicknameCollisionCallback
      ncCall,\n                 PK11SlotInfo *slot,\n                 void *wincx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1LengthLength
      Src: /src/nss/lib/pkcs12/p12dec.c:654,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - buf
    - bufLen
    - totalLength
    argTypes:
    - char*
    - int
    - long int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 670
    functionName: SEC_PKCS12ValidData
    functionSourceFile: /src/nss/lib/pkcs12/p12dec.c
    functionUses: 0
    functionsReached:
    - SEC_ASN1LengthLength
    linkageType: ''
    returnType: PRBool
    signature: PRBool SEC_PKCS12ValidData(char *buf, int bufLen, long int totalLength)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/pkcs12/p12creat.c:23,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs12/p12creat.c:27,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pkcs12/p12creat.c:36,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 38
    functionName: sec_pkcs12_new_pfx
    functionSourceFile: /src/nss/lib/pkcs12/p12creat.c
    functionUses: 1
    functionsReached:
    - PORT_FreeArena
    - PORT_NewArena
    - PORT_ArenaZAlloc
    linkageType: ''
    returnType: SEC_PKCS12PFXItem
    signature: 'SEC_PKCS12PFXItem *

      sec_pkcs12_new_pfx(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/pkcs12/p12creat.c:50,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs12/p12creat.c:51,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/pkcs12/p12creat.c:56,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/pkcs12/p12creat.c:58,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs12/p12creat.c:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - poolp
    argTypes:
    - PLArenaPool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 64
    functionName: sec_pkcs12_new_asafe
    functionSourceFile: /src/nss/lib/pkcs12/p12creat.c
    functionUses: 1
    functionsReached:
    - PORT_ArenaZAlloc
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - PORT_Memset
    - PORT_ArenaUnmark
    linkageType: ''
    returnType: SEC_PKCS12AuthenticatedSafe
    signature: 'SEC_PKCS12AuthenticatedSafe *

      sec_pkcs12_new_asafe(PLArenaPool *poolp)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/pkcs12/p12creat.c:79,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs12/p12creat.c:80,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12creat.c:83,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs12/p12creat.c:84,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs12/p12creat.c:89,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12creat.c:92,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs12/p12creat.c:93,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/pkcs12/p12creat.c:99,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - poolp
    argTypes:
    - PLArenaPool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 101
    functionName: sec_pkcs12_create_safe_contents
    functionSourceFile: /src/nss/lib/pkcs12/p12creat.c
    functionUses: 1
    functionsReached:
    - PORT_ArenaZAlloc
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - PORT_SetError
    - PORT_ArenaUnmark
    linkageType: ''
    returnType: SEC_PKCS12SafeContents
    signature: 'SEC_PKCS12SafeContents *

      sec_pkcs12_create_safe_contents(PLArenaPool *poolp)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/pkcs12/p12creat.c:117,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs12/p12creat.c:121,1
    - Dst: PORT_ArenaGrow
      Src: /src/nss/lib/pkcs12/p12creat.c:130,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs12/p12creat.c:139,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs12/p12creat.c:147,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs12/p12creat.c:150,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/pkcs12/p12creat.c:164,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs12/p12creat.c:168,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12creat.c:169,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 1
    argNames:
    - luggage
    argTypes:
    - SEC_PKCS12Baggage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 171
    functionName: sec_pkcs12_create_external_bag
    functionSourceFile: /src/nss/lib/pkcs12/p12creat.c
    functionUses: 1
    functionsReached:
    - PORT_ArenaZAlloc
    - PORT_ArenaGrow
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - PORT_SetError
    - PORT_ArenaUnmark
    linkageType: ''
    returnType: SEC_PKCS12BaggageItem
    signature: 'SEC_PKCS12BaggageItem *

      sec_pkcs12_create_external_bag(SEC_PKCS12Baggage *luggage)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/pkcs12/p12creat.c:183,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs12/p12creat.c:186,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12creat.c:189,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs12/p12creat.c:190,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs12/p12creat.c:195,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12creat.c:198,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs12/p12creat.c:199,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/pkcs12/p12creat.c:207,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - poolp
    argTypes:
    - PLArenaPool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 209
    functionName: sec_pkcs12_create_baggage
    functionSourceFile: /src/nss/lib/pkcs12/p12creat.c
    functionUses: 1
    functionsReached:
    - PORT_ArenaZAlloc
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - PORT_SetError
    - PORT_ArenaUnmark
    linkageType: ''
    returnType: SEC_PKCS12Baggage
    signature: 'SEC_PKCS12Baggage *

      sec_pkcs12_create_baggage(PLArenaPool *poolp)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pkcs12/p12creat.c:216,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - pfx
    argTypes:
    - SEC_PKCS12PFXItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 218
    functionName: SEC_PKCS12DestroyPFX
    functionSourceFile: /src/nss/lib/pkcs12/p12creat.c
    functionUses: 3
    functionsReached:
    - PORT_FreeArena
    linkageType: ''
    returnType: void
    signature: void SEC_PKCS12DestroyPFX(SEC_PKCS12PFXItem *pfx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - poolp
    - ','
    - oldptr
    - ','
    - type
    - ','
    - oldnum
    - ','
    - newnum
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: PORT_ArenaGrowArray
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PORT_ArenaGrowArray(poolp, oldptr, type, oldnum, newnum)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DER_GetInteger
      Src: /src/nss/lib/pkcs12/p12d.c:168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - pfx
    argTypes:
    - sec_PKCS12PFXItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 173
    functionName: sec_pkcs12_proper_version
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 0
    functionsReached:
    - DER_GetInteger
    linkageType: ''
    returnType: PRBool
    signature: PRBool sec_pkcs12_proper_version(sec_PKCS12PFXItem *pfx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PK11_ReferenceSlot
      Src: /src/nss/lib/pkcs12/p12d.c:191,1
    - Dst: PK11_GetInternalKeySlot
      Src: /src/nss/lib/pkcs12/p12d.c:193,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/pkcs12/p12d.c:196,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/pkcs12/p12d.c:199,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pkcs12/p12d.c:200,1
    - Dst: sec_pkcs12_decode_password
      Src: /src/nss/lib/pkcs12/p12d.c:204,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pkcs12/p12d.c:205,1
    - Dst: PK11_PBEKeyGen
      Src: /src/nss/lib/pkcs12/p12d.c:210,1
    - Dst: PK11_IsInternal
      Src: /src/nss/lib/pkcs12/p12d.c:215,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pkcs12/p12d.c:216,1
    - Dst: PK11_GetInternalKeySlot
      Src: /src/nss/lib/pkcs12/p12d.c:217,1
    - Dst: PK11_PBEKeyGen
      Src: /src/nss/lib/pkcs12/p12d.c:218,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pkcs12/p12d.c:220,1
    - Dst: PK11_SetSymKeyUserData
      Src: /src/nss/lib/pkcs12/p12d.c:224,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pkcs12/p12d.c:228,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 2
    argNames:
    - arg
    - algid
    argTypes:
    - void*
    - SECAlgorithmID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 176
    functionDepth: 11
    functionLinenumber: 176
    functionLinenumberEnd: 232
    functionName: sec_pkcs12_decoder_get_decrypt_key
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 0
    functionsReached:
    - PK11_GetInternalKeySlot
    - PK11_PBEKeyGen
    - SECOID_GetAlgorithmTag
    - sec_pkcs12_decode_password
    - PK11_IsInternal
    - SECITEM_CopyItem
    - PK11_ReferenceSlot
    - SECITEM_ZfreeItem
    - PK11_FreeSlot
    - PK11_SetSymKeyUserData
    linkageType: ''
    returnType: PK11SymKey
    signature: 'PK11SymKey *

      sec_pkcs12_decoder_get_decrypt_key(void *arg, SECAlgorithmID *algid)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SEC_PKCS12DecryptionAllowed
      Src: /src/nss/lib/pkcs12/p12d.c:241,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - algid
    - bulkkey
    argTypes:
    - SECAlgorithmID*
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 249
    functionName: sec_pkcs12_decoder_decryption_allowed
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - SEC_PKCS12DecryptionAllowed
    linkageType: ''
    returnType: PRBool
    signature: "PRBool sec_pkcs12_decoder_decryption_allowed(SECAlgorithmID *algid,\n
      \                                     PK11SymKey *bulkkey)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/pkcs12/p12d.c:273,1
    - Dst: PORT_ArenaZNewArray
      Src: /src/nss/lib/pkcs12/p12d.c:280,1
    - Dst: PORT_ArenaGrowArray
      Src: /src/nss/lib/pkcs12/p12d.c:281,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/pkcs12/p12d.c:286,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/pkcs12/p12d.c:295,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/pkcs12/p12d.c:297,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/pkcs12/p12d.c:310,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs12/p12d.c:320,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 1
    argNames:
    - safeContentsCtx
    argTypes:
    - sec_PKCS12SafeContentsContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 325
    functionName: sec_pkcs12_decoder_init_new_safe_bag
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 0
    functionsReached:
    - PORT_ArenaZNewArray
    - PORT_ArenaRelease
    - PORT_ArenaGrowArray
    - PORT_GetError
    - PORT_ArenaMark
    - PORT_ArenaZNew
    - PORT_ArenaUnmark
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sec_pkcs12_decoder_init_new_safe_bag(sec_PKCS12SafeContentsContext\n
      \                                        *safeContentsCtx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1DecoderUpdate
      Src: /src/nss/lib/pkcs12/p12d.c:351,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/pkcs12/p12d.c:353,1
    - Dst: SEC_ASN1DecoderFinish
      Src: /src/nss/lib/pkcs12/p12d.c:373,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 5
    argNames:
    - arg
    - data
    - len
    - depth
    - data_kind
    argTypes:
    - void*
    - char*
    - unsigned long
    - int
    - SEC_ASN1EncodingPart
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 376
    functionName: sec_pkcs12_decoder_safe_bag_update
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 0
    functionsReached:
    - SEC_ASN1DecoderUpdate
    - PORT_GetError
    - SEC_ASN1DecoderFinish
    linkageType: ''
    returnType: void
    signature: "void sec_pkcs12_decoder_safe_bag_update(void *arg, const char *data,\n
      \                                  unsigned long len, int depth,\n                                   SEC_ASN1EncodingPart
      data_kind)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOID
      Src: /src/nss/lib/pkcs12/p12d.c:411,1
    - Dst: sec_pkcs12_decoder_begin_nested_safe_contents
      Src: /src/nss/lib/pkcs12/p12d.c:434,1
    - Dst: sec_pkcs12_decoder_finish_nested_safe_contents
      Src: /src/nss/lib/pkcs12/p12d.c:437,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 39
    argCount: 4
    argNames:
    - arg
    - before
    - dest
    - real_depth
    argTypes:
    - void*
    - PRBool
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 449
    functionName: sec_pkcs12_decoder_safe_bag_notify
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 0
    functionsReached:
    - sec_pkcs12_decoder_begin_nested_safe_contents
    - sec_pkcs12_decoder_finish_nested_safe_contents
    - SECOID_FindOID
    linkageType: ''
    returnType: void
    signature: "void sec_pkcs12_decoder_safe_bag_notify(void *arg, PRBool before,\n
      \                                  void *dest, int real_depth)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1DecoderClearFilterProc
      Src: /src/nss/lib/pkcs12/p12d.c:481,1
    - Dst: SEC_ASN1DecoderFinish
      Src: /src/nss/lib/pkcs12/p12d.c:482,1
    - Dst: sec_pkcs12_decoder_init_new_safe_bag
      Src: /src/nss/lib/pkcs12/p12d.c:489,1
    - Dst: SEC_ASN1DecoderStart
      Src: /src/nss/lib/pkcs12/p12d.c:496,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/pkcs12/p12d.c:500,1
    - Dst: SEC_ASN1DecoderSetNotifyProc
      Src: /src/nss/lib/pkcs12/p12d.c:507,1
    - Dst: SEC_ASN1DecoderSetFilterProc
      Src: /src/nss/lib/pkcs12/p12d.c:510,1
    - Dst: SEC_ASN1DecoderFinish
      Src: /src/nss/lib/pkcs12/p12d.c:524,1
    - Dst: SEC_ASN1DecoderClearNotifyProc
      Src: /src/nss/lib/pkcs12/p12d.c:528,1
    - Dst: SEC_ASN1DecoderClearFilterProc
      Src: /src/nss/lib/pkcs12/p12d.c:529,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 4
    argNames:
    - arg
    - before
    - dest
    - real_depth
    argTypes:
    - void*
    - PRBool
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 459
    functionDepth: 2
    functionLinenumber: 459
    functionLinenumberEnd: 532
    functionName: sec_pkcs12_decoder_safe_contents_notify
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 0
    functionsReached:
    - SEC_ASN1DecoderStart
    - SEC_ASN1DecoderFinish
    - SEC_ASN1DecoderClearFilterProc
    - SEC_ASN1DecoderSetNotifyProc
    - sec_pkcs12_decoder_init_new_safe_bag
    - SEC_ASN1DecoderSetFilterProc
    - PORT_GetError
    - SEC_ASN1DecoderClearNotifyProc
    linkageType: ''
    returnType: void
    signature: "void sec_pkcs12_decoder_safe_contents_notify(void *arg, PRBool before,\n
      \                                       void *dest, int real_depth)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaZNewArray
      Src: /src/nss/lib/pkcs12/p12d.c:552,1
    - Dst: PORT_ArenaGrowArray
      Src: /src/nss/lib/pkcs12/p12d.c:553,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/pkcs12/p12d.c:559,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/pkcs12/p12d.c:564,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/pkcs12/p12d.c:566,1
    - Dst: SEC_ASN1DecoderStart
      Src: /src/nss/lib/pkcs12/p12d.c:585,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/pkcs12/p12d.c:590,1
    - Dst: SEC_ASN1DecoderSetNotifyProc
      Src: /src/nss/lib/pkcs12/p12d.c:597,1
    - Dst: SEC_ASN1DecoderFinish
      Src: /src/nss/lib/pkcs12/p12d.c:608,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 2
    argNames:
    - p12dcx
    - nestedSafe
    argTypes:
    - SEC_PKCS12DecoderContext*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 537
    functionDepth: 1
    functionLinenumber: 537
    functionLinenumberEnd: 615
    functionName: sec_pkcs12_decoder_safe_contents_init_decode
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 0
    functionsReached:
    - PORT_ArenaZNewArray
    - SEC_ASN1DecoderStart
    - SEC_ASN1DecoderFinish
    - SEC_ASN1DecoderSetNotifyProc
    - PORT_ArenaGrowArray
    - PORT_GetError
    - PORT_ArenaZNew
    linkageType: ''
    returnType: sec_PKCS12SafeContentsContext
    signature: "sec_PKCS12SafeContentsContext *\nsec_pkcs12_decoder_safe_contents_init_decode(SEC_PKCS12DecoderContext
      *p12dcx,\n                                             PRBool nestedSafe)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1DecoderUpdate
      Src: /src/nss/lib/pkcs12/p12d.c:643,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/pkcs12/p12d.c:645,1
    - Dst: SEC_ASN1DecoderFinish
      Src: /src/nss/lib/pkcs12/p12d.c:655,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 5
    argNames:
    - arg
    - buf
    - len
    - depth
    - data_kind
    argTypes:
    - void*
    - char*
    - unsigned long
    - int
    - SEC_ASN1EncodingPart
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 658
    functionName: sec_pkcs12_decoder_nested_safe_contents_update
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 0
    functionsReached:
    - SEC_ASN1DecoderUpdate
    - PORT_GetError
    - SEC_ASN1DecoderFinish
    linkageType: ''
    returnType: void
    signature: "void sec_pkcs12_decoder_nested_safe_contents_update(void *arg, const
      char *buf,\n                                               unsigned long len,
      int depth,\n                                               SEC_ASN1EncodingPart
      data_kind)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sec_pkcs12_decoder_safe_contents_init_decode
      Src: /src/nss/lib/pkcs12/p12d.c:674,1
    - Dst: SEC_ASN1DecoderSetNotifyProc
      Src: /src/nss/lib/pkcs12/p12d.c:681,1
    - Dst: SEC_ASN1DecoderSetFilterProc
      Src: /src/nss/lib/pkcs12/p12d.c:686,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - safeContentsCtx
    argTypes:
    - sec_PKCS12SafeContentsContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 663
    functionDepth: 2
    functionLinenumber: 663
    functionLinenumberEnd: 692
    functionName: sec_pkcs12_decoder_begin_nested_safe_contents
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 1
    functionsReached:
    - SEC_ASN1DecoderSetNotifyProc
    - SEC_ASN1DecoderSetFilterProc
    - sec_pkcs12_decoder_safe_contents_init_decode
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sec_pkcs12_decoder_begin_nested_safe_contents(sec_PKCS12SafeContentsContext\n
      \                                                 *safeContentsCtx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1DecoderClearFilterProc
      Src: /src/nss/lib/pkcs12/p12d.c:708,1
    - Dst: SEC_ASN1DecoderClearNotifyProc
      Src: /src/nss/lib/pkcs12/p12d.c:709,1
    - Dst: SEC_ASN1DecoderFinish
      Src: /src/nss/lib/pkcs12/p12d.c:711,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - safeContentsCtx
    argTypes:
    - sec_PKCS12SafeContentsContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 697
    functionDepth: 0
    functionLinenumber: 697
    functionLinenumberEnd: 717
    functionName: sec_pkcs12_decoder_finish_nested_safe_contents
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 1
    functionsReached:
    - SEC_ASN1DecoderClearFilterProc
    - SEC_ASN1DecoderClearNotifyProc
    - SEC_ASN1DecoderFinish
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sec_pkcs12_decoder_finish_nested_safe_contents(sec_PKCS12SafeContentsContext\n
      \                                                  *safeContentsCtx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1DecoderUpdate
      Src: /src/nss/lib/pkcs12/p12d.c:739,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:743,1
    - Dst: SEC_PKCS7DecoderAbort
      Src: /src/nss/lib/pkcs12/p12d.c:745,1
    - Dst: SEC_ASN1DecoderFinish
      Src: /src/nss/lib/pkcs12/p12d.c:755,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - arg
    - buf
    - len
    argTypes:
    - void*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 722
    functionDepth: 1
    functionLinenumber: 722
    functionLinenumberEnd: 760
    functionName: sec_pkcs12_decoder_safe_contents_callback
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 0
    functionsReached:
    - SEC_ASN1DecoderUpdate
    - PORT_SetError
    - SEC_ASN1DecoderFinish
    - SEC_PKCS7DecoderAbort
    linkageType: ''
    returnType: void
    signature: "void sec_pkcs12_decoder_safe_contents_callback(void *arg, const char
      *buf,\n                                          unsigned long len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SEC_PKCS7DecoderUpdate
      Src: /src/nss/lib/pkcs12/p12d.c:771,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - arg
    - data
    - len
    - depth
    - data_kind
    argTypes:
    - void*
    - char*
    - unsigned long
    - int
    - SEC_ASN1EncodingPart
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 764
    functionDepth: 1
    functionLinenumber: 764
    functionLinenumberEnd: 772
    functionName: sec_pkcs12_decoder_wrap_p7_update
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 0
    functionsReached:
    - SEC_PKCS7DecoderUpdate
    linkageType: ''
    returnType: void
    signature: "void sec_pkcs12_decoder_wrap_p7_update(void *arg, const char *data,\n
      \                                 unsigned long len, int depth,\n                                  SEC_ASN1EncodingPart
      data_kind)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sec_pkcs12_decoder_safe_contents_init_decode
      Src: /src/nss/lib/pkcs12/p12d.c:795,1
    - Dst: SEC_PKCS7DecoderStart
      Src: /src/nss/lib/pkcs12/p12d.c:802,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/pkcs12/p12d.c:809,1
    - Dst: SEC_ASN1DecoderSetFilterProc
      Src: /src/nss/lib/pkcs12/p12d.c:812,1
    - Dst: SEC_ASN1DecoderClearFilterProc
      Src: /src/nss/lib/pkcs12/p12d.c:824,1
    - Dst: SEC_ASN1DecoderFinish
      Src: /src/nss/lib/pkcs12/p12d.c:825,1
    - Dst: SEC_PKCS7DecoderFinish
      Src: /src/nss/lib/pkcs12/p12d.c:828,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/pkcs12/p12d.c:831,1
    - Dst: SEC_PKCS7DestroyContentInfo
      Src: /src/nss/lib/pkcs12/p12d.c:834,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 4
    argNames:
    - arg
    - before
    - dest
    - real_depth
    argTypes:
    - void*
    - PRBool
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 779
    functionDepth: 2
    functionLinenumber: 779
    functionLinenumberEnd: 844
    functionName: sec_pkcs12_decoder_asafes_notify
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 0
    functionsReached:
    - SEC_ASN1DecoderFinish
    - SEC_PKCS7DestroyContentInfo
    - SEC_PKCS7DecoderFinish
    - SEC_ASN1DecoderClearFilterProc
    - SEC_ASN1DecoderSetFilterProc
    - PORT_GetError
    - SEC_PKCS7DecoderStart
    - sec_pkcs12_decoder_safe_contents_init_decode
    linkageType: ''
    returnType: void
    signature: "void sec_pkcs12_decoder_asafes_notify(void *arg, PRBool before, void
      *dest,\n                                 int real_depth)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1DecoderUpdate
      Src: /src/nss/lib/pkcs12/p12d.c:862,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/pkcs12/p12d.c:864,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/pkcs12/p12d.c:874,1
    - Dst: SEC_ASN1DecoderFinish
      Src: /src/nss/lib/pkcs12/p12d.c:884,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - arg
    - buf
    - len
    argTypes:
    - void*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 850
    functionDepth: 0
    functionLinenumber: 850
    functionLinenumberEnd: 888
    functionName: sec_pkcs12_decoder_asafes_callback
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 0
    functionsReached:
    - SEC_ASN1DecoderUpdate
    - PORT_GetError
    - SEC_ASN1DecoderFinish
    linkageType: ''
    returnType: void
    signature: "void sec_pkcs12_decoder_asafes_callback(void *arg, const char *buf,\n
      \                                  unsigned long len)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1DecoderStart
      Src: /src/nss/lib/pkcs12/p12d.c:900,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/pkcs12/p12d.c:904,1
    - Dst: SEC_ASN1DecoderSetNotifyProc
      Src: /src/nss/lib/pkcs12/p12d.c:909,1
    - Dst: SEC_PKCS7DecoderStart
      Src: /src/nss/lib/pkcs12/p12d.c:913,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/pkcs12/p12d.c:917,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/pkcs12/p12d.c:923,1
    - Dst: SEC_ASN1DecoderFinish
      Src: /src/nss/lib/pkcs12/p12d.c:935,1
    - Dst: SEC_PKCS7DecoderFinish
      Src: /src/nss/lib/pkcs12/p12d.c:940,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 1
    argNames:
    - p12dcx
    argTypes:
    - SEC_PKCS12DecoderContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 892
    functionDepth: 1
    functionLinenumber: 892
    functionLinenumberEnd: 945
    functionName: sec_pkcs12_decode_start_asafes_cinfo
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 0
    functionsReached:
    - SEC_ASN1DecoderStart
    - SEC_ASN1DecoderFinish
    - SEC_PKCS7DecoderFinish
    - SEC_ASN1DecoderSetNotifyProc
    - PORT_GetError
    - SEC_PKCS7DecoderStart
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sec_pkcs12_decode_start_asafes_cinfo(SEC_PKCS12DecoderContext
      *p12dcx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SEC_PKCS7DecoderUpdate
      Src: /src/nss/lib/pkcs12/p12d.c:964,1
    - Dst: SEC_PKCS7DecoderFinish
      Src: /src/nss/lib/pkcs12/p12d.c:977,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 5
    argNames:
    - arg
    - buf
    - len
    - depth
    - data_kind
    argTypes:
    - void*
    - char*
    - unsigned long
    - int
    - SEC_ASN1EncodingPart
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 950
    functionDepth: 1
    functionLinenumber: 950
    functionLinenumberEnd: 980
    functionName: sec_pkcs12_decode_asafes_cinfo_update
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 0
    functionsReached:
    - SEC_PKCS7DecoderFinish
    - SEC_PKCS7DecoderUpdate
    linkageType: ''
    returnType: void
    signature: "void sec_pkcs12_decode_asafes_cinfo_update(void *arg, const char *buf,\n
      \                                     unsigned long len, int depth,\n                                      SEC_ASN1EncodingPart
      data_kind)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1DecoderClearNotifyProc
      Src: /src/nss/lib/pkcs12/p12d.c:999,1
    - Dst: SEC_ASN1DecoderClearFilterProc
      Src: /src/nss/lib/pkcs12/p12d.c:1000,1
    - Dst: sec_pkcs12_proper_version
      Src: /src/nss/lib/pkcs12/p12d.c:1007,1
    - Dst: sec_pkcs12_decode_start_asafes_cinfo
      Src: /src/nss/lib/pkcs12/p12d.c:1013,1
    - Dst: SEC_ASN1DecoderSetFilterProc
      Src: /src/nss/lib/pkcs12/p12d.c:1019,1
    - Dst: SEC_PKCS7DecoderFinish
      Src: /src/nss/lib/pkcs12/p12d.c:1030,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/pkcs12/p12d.c:1033,1
    - Dst: SEC_ASN1DecoderClearFilterProc
      Src: /src/nss/lib/pkcs12/p12d.c:1036,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/pkcs12/p12d.c:1038,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 4
    argNames:
    - arg
    - before
    - dest
    - real_depth
    argTypes:
    - void*
    - PRBool
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 988
    functionDepth: 2
    functionLinenumber: 988
    functionLinenumberEnd: 1047
    functionName: sec_pkcs12_decoder_pfx_notify_proc
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 0
    functionsReached:
    - sec_pkcs12_decode_start_asafes_cinfo
    - SEC_PKCS7DecoderFinish
    - SEC_ASN1DecoderClearFilterProc
    - SEC_ASN1DecoderSetFilterProc
    - PORT_GetError
    - SEC_ASN1DecoderClearNotifyProc
    - sec_pkcs12_proper_version
    linkageType: ''
    returnType: void
    signature: "void sec_pkcs12_decoder_pfx_notify_proc(void *arg, PRBool before,
      void *dest,\n                                   int real_depth)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Alloc
      Src: /src/nss/lib/pkcs12/p12d.c:1066,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/pkcs12/p12d.c:1067,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/pkcs12/p12d.c:1069,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - arg
    - readData
    argTypes:
    - void*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1055
    functionDepth: 1
    functionLinenumber: 1055
    functionLinenumberEnd: 1076
    functionName: p12u_DigestOpen
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PR_ASSERT
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus p12u_DigestOpen(void *arg, PRBool readData)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PR_ASSERT
      Src: /src/nss/lib/pkcs12/p12d.c:1083,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/pkcs12/p12d.c:1090,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pkcs12/p12d.c:1095,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - arg
    - removeFile
    argTypes:
    - void*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 1078
    functionDepth: 1
    functionLinenumber: 1078
    functionLinenumberEnd: 1103
    functionName: p12u_DigestClose
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - PR_ASSERT
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus p12u_DigestClose(void *arg, PRBool removeFile)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:1112,1
    - Dst: memcpy
      Src: /src/nss/lib/pkcs12/p12d.c:1120,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - arg
    - buf
    - len
    argTypes:
    - void*
    - unsigned char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1123
      start: 1105
    functionDepth: 1
    functionLinenumber: 1105
    functionLinenumberEnd: 1123
    functionName: p12u_DigestRead
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - memcpy
    linkageType: ''
    returnType: int
    signature: int p12u_DigestRead(void *arg, unsigned char *buf, unsigned long len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Realloc
      Src: /src/nss/lib/pkcs12/p12d.c:1142,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/pkcs12/p12d.c:1149,1
    - Dst: memcpy
      Src: /src/nss/lib/pkcs12/p12d.c:1150,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - arg
    - buf
    - len
    argTypes:
    - void*
    - unsigned char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 1125
    functionDepth: 1
    functionLinenumber: 1125
    functionLinenumberEnd: 1153
    functionName: p12u_DigestWrite
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PORT_Realloc
    - PR_ASSERT
    linkageType: ''
    returnType: int
    signature: int p12u_DigestWrite(void *arg, unsigned char *buf, unsigned long len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/pkcs12/p12d.c:1191,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/pkcs12/p12d.c:1197,1
    - Dst: PK11_ReferenceSlot
      Src: /src/nss/lib/pkcs12/p12d.c:1213,1
    - Dst: PK11_GetInternalKeySlot
      Src: /src/nss/lib/pkcs12/p12d.c:1214,1
    - Dst: NSS_OptionGet
      Src: /src/nss/lib/pkcs12/p12d.c:1222,1
    - Dst: SEC_ASN1DecoderStart
      Src: /src/nss/lib/pkcs12/p12d.c:1233,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pkcs12/p12d.c:1236,1
    - Dst: SEC_ASN1DecoderSetNotifyProc
      Src: /src/nss/lib/pkcs12/p12d.c:1240,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pkcs12/p12d.c:1262,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 56
    argCount: 8
    argNames:
    - pwitem
    - slot
    - wincx
    - dOpen
    - dClose
    - dRead
    - dWrite
    - dArg
    argTypes:
    - SECItem*
    - PK11SlotInfo*
    - void*
    - digestOpenFn
    - digestCloseFn
    - digestIOFn
    - digestIOFn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1181
    functionDepth: 3
    functionLinenumber: 1181
    functionLinenumberEnd: 1264
    functionName: SEC_PKCS12DecoderStart
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 1
    functionsReached:
    - PK11_GetInternalKeySlot
    - SEC_ASN1DecoderStart
    - NSS_OptionGet
    - PORT_NewArena
    - SEC_ASN1DecoderSetNotifyProc
    - PORT_FreeArena
    - PORT_ArenaZNew
    - PK11_ReferenceSlot
    - PK11_FreeSlot
    linkageType: ''
    returnType: SEC_PKCS12DecoderContext
    signature: "SEC_PKCS12DecoderContext *\nSEC_PKCS12DecoderStart(SECItem *pwitem,
      PK11SlotInfo *slot, void *wincx,\n                       digestOpenFn dOpen,
      digestCloseFn dClose,\n                       digestIOFn dRead, digestIOFn dWrite,
      void *dArg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - p12dcx
    - tokenCAs
    argTypes:
    - SEC_PKCS12DecoderContext*
    - SECPKCS12TargetTokenCAs
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1275
      start: 1266
    functionDepth: 0
    functionLinenumber: 1266
    functionLinenumberEnd: 1275
    functionName: SEC_PKCS12DecoderSetTargetTokenCAs
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SEC_PKCS12DecoderSetTargetTokenCAs(SEC_PKCS12DecoderContext
      *p12dcx,\n                                   SECPKCS12TargetTokenCAs tokenCAs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:1292,1
    - Dst: SEC_ASN1DecoderUpdate
      Src: /src/nss/lib/pkcs12/p12d.c:1297,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - p12dcx
    - data
    - len
    argTypes:
    - SEC_PKCS12DecoderContext*
    - unsigned char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1309
      start: 1285
    functionDepth: 0
    functionLinenumber: 1285
    functionLinenumberEnd: 1309
    functionName: SEC_PKCS12DecoderUpdate
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 1
    functionsReached:
    - SEC_ASN1DecoderUpdate
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SEC_PKCS12DecoderUpdate(SEC_PKCS12DecoderContext *p12dcx,\n
      \                       unsigned char *data, unsigned long len)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:1339,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/pkcs12/p12d.c:1342,1
    - Dst: memcpy
      Src: /src/nss/lib/pkcs12/p12d.c:1347,1
    - Dst: sec_pkcs12_integrity_key
      Src: /src/nss/lib/pkcs12/p12d.c:1351,1
    - Dst: PK11_CreateContextBySymKey
      Src: /src/nss/lib/pkcs12/p12d.c:1359,1
    - Dst: PK11_DigestBegin
      Src: /src/nss/lib/pkcs12/p12d.c:1363,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:1382,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs12/p12d.c:1385,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs12/p12d.c:1386,1
    - Dst: memcmp
      Src: /src/nss/lib/pkcs12/p12d.c:1386,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:1390,1
    - Dst: PK11_DigestOp
      Src: /src/nss/lib/pkcs12/p12d.c:1395,1
    - Dst: PK11_DigestFinal
      Src: /src/nss/lib/pkcs12/p12d.c:1403,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/pkcs12/p12d.c:1413,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:1414,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/pkcs12/p12d.c:1426,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pkcs12/p12d.c:1429,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/pkcs12/p12d.c:1431,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 76
    argCount: 1
    argNames:
    - p12dcx
    argTypes:
    - SEC_PKCS12DecoderContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1434
      start: 1324
    functionDepth: 11
    functionLinenumber: 1324
    functionLinenumberEnd: 1434
    functionName: sec_pkcs12_decoder_verify_mac
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_Assert
    - SECITEM_CompareItem
    - memcpy
    - PK11_DestroyContext
    - PK11_DigestOp
    - PORT_ZFree
    - sec_pkcs12_integrity_key
    - memcmp
    - PORT_SetError
    - PK11_DigestBegin
    - PK11_CreateContextBySymKey
    - PK11_DigestFinal
    - PK11_FreeSymKey
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sec_pkcs12_decoder_verify_mac(SEC_PKCS12DecoderContext *p12dcx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:1450,1
    - Dst: SEC_ASN1DecoderFinish
      Src: /src/nss/lib/pkcs12/p12d.c:1458,1
    - Dst: SEC_ASN1DecodeItem
      Src: /src/nss/lib/pkcs12/p12d.c:1468,1
    - Dst: sec_pkcs12_decoder_verify_mac
      Src: /src/nss/lib/pkcs12/p12d.c:1472,1
    - Dst: SEC_PKCS7VerifySignature
      Src: /src/nss/lib/pkcs12/p12d.c:1476,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:1480,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - p12dcx
    argTypes:
    - SEC_PKCS12DecoderContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1482
      start: 1443
    functionDepth: 12
    functionLinenumber: 1443
    functionLinenumberEnd: 1482
    functionName: SEC_PKCS12DecoderVerify
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 1
    functionsReached:
    - sec_pkcs12_decoder_verify_mac
    - SEC_ASN1DecoderFinish
    - SEC_ASN1DecodeItem
    - PORT_SetError
    - SEC_PKCS7VerifySignature
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SEC_PKCS12DecoderVerify(SEC_PKCS12DecoderContext *p12dcx)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:1499,1
    - Dst: SEC_ASN1DecoderFinish
      Src: /src/nss/lib/pkcs12/p12d.c:1504,1
    - Dst: SEC_ASN1DecoderFinish
      Src: /src/nss/lib/pkcs12/p12d.c:1509,1
    - Dst: SEC_ASN1DecoderFinish
      Src: /src/nss/lib/pkcs12/p12d.c:1521,1
    - Dst: SEC_ASN1DecoderFinish
      Src: /src/nss/lib/pkcs12/p12d.c:1527,1
    - Dst: SEC_PKCS7DecoderFinish
      Src: /src/nss/lib/pkcs12/p12d.c:1536,1
    - Dst: SEC_PKCS7DestroyContentInfo
      Src: /src/nss/lib/pkcs12/p12d.c:1538,1
    - Dst: SEC_PKCS7DecoderFinish
      Src: /src/nss/lib/pkcs12/p12d.c:1545,1
    - Dst: SEC_PKCS7DestroyContentInfo
      Src: /src/nss/lib/pkcs12/p12d.c:1547,1
    - Dst: SEC_PKCS7DestroyContentInfo
      Src: /src/nss/lib/pkcs12/p12d.c:1553,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pkcs12/p12d.c:1558,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pkcs12/p12d.c:1561,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pkcs12/p12d.c:1565,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pkcs12/p12d.c:1575,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 65
    argCount: 1
    argNames:
    - p12dcx
    argTypes:
    - SEC_PKCS12DecoderContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1577
      start: 1493
    functionDepth: 3
    functionLinenumber: 1493
    functionLinenumberEnd: 1577
    functionName: SEC_PKCS12DecoderFinish
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 4
    functionsReached:
    - SEC_PKCS7DestroyContentInfo
    - SEC_ASN1DecoderFinish
    - SEC_PKCS7DecoderFinish
    - PORT_FreeArena
    - PORT_SetError
    - PK11_FreeSlot
    - SECITEM_FreeItem
    linkageType: ''
    returnType: void
    signature: void SEC_PKCS12DecoderFinish(SEC_PKCS12DecoderContext *p12dcx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:1588,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/lib/pkcs12/p12d.c:1592,1
    - Dst: PORT_ArenaZNewArray
      Src: /src/nss/lib/pkcs12/p12d.c:1599,1
    - Dst: PORT_ArenaGrowArray
      Src: /src/nss/lib/pkcs12/p12d.c:1603,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/pkcs12/p12d.c:1611,1
    - Dst: PORT_ArenaZNewArray
      Src: /src/nss/lib/pkcs12/p12d.c:1616,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/pkcs12/p12d.c:1625,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 3
    argNames:
    - bag
    - attributeType
    - attrValue
    argTypes:
    - sec_PKCS12SafeBag*
    - SECOidTag
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1626
      start: 1579
    functionDepth: 1
    functionLinenumber: 1579
    functionLinenumberEnd: 1626
    functionName: sec_pkcs12_decoder_set_attribute_value
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 0
    functionsReached:
    - PORT_ArenaZNewArray
    - SECOID_FindOIDByTag
    - PORT_ArenaGrowArray
    - SECITEM_CopyItem
    - PORT_SetError
    - PORT_ArenaZNew
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sec_pkcs12_decoder_set_attribute_value(sec_PKCS12SafeBag
      *bag,\n                                       SECOidTag attributeType,\n                                       SECItem
      *attrValue)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:1635,1
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/pkcs12/p12d.c:1640,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - bag
    - attributeType
    argTypes:
    - sec_PKCS12SafeBag*
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1645
      start: 1628
    functionDepth: 0
    functionLinenumber: 1628
    functionLinenumberEnd: 1645
    functionName: sec_pkcs12_get_attribute_value
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 0
    functionsReached:
    - SECOID_FindOIDTag
    - PORT_SetError
    linkageType: ''
    returnType: SECItem
    signature: "SECItem *\nsec_pkcs12_get_attribute_value(sec_PKCS12SafeBag *bag,\n
      \                              SECOidTag attributeType)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strchr
      Src: /src/nss/lib/pkcs12/p12d.c:1662,1
    - Dst: PORT_NewArray
      Src: /src/nss/lib/pkcs12/p12d.c:1667,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs12/p12d.c:1668,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pkcs12/p12d.c:1673,1
    - Dst: PORT_Strcmp
      Src: /src/nss/lib/pkcs12/p12d.c:1675,1
    - Dst: PK11_GetTokenName
      Src: /src/nss/lib/pkcs12/p12d.c:1675,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/pkcs12/p12d.c:1676,1
    - Dst: PORT_Memmove
      Src: /src/nss/lib/pkcs12/p12d.c:1677,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pkcs12/p12d.c:1680,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - slot
    - nick
    argTypes:
    - PK11SlotInfo*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1682
      start: 1654
    functionDepth: 1
    functionLinenumber: 1654
    functionLinenumberEnd: 1682
    functionName: sec_pkcs12_sanitize_nickname
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 0
    functionsReached:
    - PORT_Strchr
    - PORT_Assert
    - PORT_Memmove
    - PORT_Memcpy
    - PK11_GetTokenName
    - PORT_Free
    - PORT_Strlen
    - PORT_NewArray
    - PORT_Strcmp
    linkageType: ''
    returnType: void
    signature: void sec_pkcs12_sanitize_nickname(PK11SlotInfo *slot, SECItem *nick)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:1690,1
    - Dst: sec_pkcs12_get_attribute_value
      Src: /src/nss/lib/pkcs12/p12d.c:1694,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/pkcs12/p12d.c:1703,1
    - Dst: sec_pkcs12_convert_item_to_unicode
      Src: /src/nss/lib/pkcs12/p12d.c:1707,1
    - Dst: sec_pkcs12_sanitize_nickname
      Src: /src/nss/lib/pkcs12/p12d.c:1712,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pkcs12/p12d.c:1718,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/pkcs12/p12d.c:1722,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 1
    argNames:
    - bag
    argTypes:
    - sec_PKCS12SafeBag*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1724
      start: 1684
    functionDepth: 2
    functionLinenumber: 1684
    functionLinenumberEnd: 1724
    functionName: sec_pkcs12_get_nickname
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 0
    functionsReached:
    - SECITEM_ZfreeItem
    - PORT_ZAlloc
    - PORT_GetError
    - PORT_SetError
    - sec_pkcs12_convert_item_to_unicode
    - sec_pkcs12_get_attribute_value
    - sec_pkcs12_sanitize_nickname
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      sec_pkcs12_get_nickname(sec_PKCS12SafeBag *bag)'
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/lib/pkcs12/p12d.c:1730,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:1733,1
    - Dst: PORT_ArenaZNewArray
      Src: /src/nss/lib/pkcs12/p12d.c:1743,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/pkcs12/p12d.c:1747,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/pkcs12/p12d.c:1754,1
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/pkcs12/p12d.c:1760,1
    - Dst: PORT_ArenaGrowArray
      Src: /src/nss/lib/pkcs12/p12d.c:1769,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/pkcs12/p12d.c:1774,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/pkcs12/p12d.c:1780,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs12/p12d.c:1786,1
    - Dst: PORT_ArenaZNewArray
      Src: /src/nss/lib/pkcs12/p12d.c:1788,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/pkcs12/p12d.c:1792,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/pkcs12/p12d.c:1799,1
    - Dst: sec_pkcs12_convert_item_to_unicode
      Src: /src/nss/lib/pkcs12/p12d.c:1800,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/pkcs12/p12d.c:1809,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 81
    argCount: 2
    argNames:
    - bag
    - name
    argTypes:
    - sec_PKCS12SafeBag*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1811
      start: 1726
    functionDepth: 1
    functionLinenumber: 1726
    functionLinenumberEnd: 1811
    functionName: sec_pkcs12_set_nickname
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 0
    functionsReached:
    - PORT_ArenaZNewArray
    - PORT_Assert
    - SECOID_FindOIDByTag
    - PORT_ArenaGrowArray
    - PORT_GetError
    - PORT_Strlen
    - SECITEM_CopyItem
    - SECOID_FindOIDTag
    - PORT_SetError
    - PORT_ArenaZNew
    - sec_pkcs12_convert_item_to_unicode
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sec_pkcs12_set_nickname(sec_PKCS12SafeBag *bag, SECItem *name)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:1820,1
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/pkcs12/p12d.c:1828,1
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/pkcs12/p12d.c:1840,1
    - Dst: sec_pkcs12_get_attribute_value
      Src: /src/nss/lib/pkcs12/p12d.c:1844,1
    - Dst: sec_pkcs12_decoder_set_attribute_value
      Src: /src/nss/lib/pkcs12/p12d.c:1846,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/pkcs12/p12d.c:1849,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 1
    argNames:
    - key
    argTypes:
    - sec_PKCS12SafeBag*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1858
      start: 1813
    functionDepth: 2
    functionLinenumber: 1813
    functionLinenumberEnd: 1858
    functionName: sec_pkcs12_get_key_info
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 0
    functionsReached:
    - PORT_GetError
    - sec_pkcs12_decoder_set_attribute_value
    - SECOID_FindOIDTag
    - PORT_SetError
    - sec_pkcs12_get_attribute_value
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sec_pkcs12_get_key_info(sec_PKCS12SafeBag *key)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:1870,1
    - Dst: sec_pkcs12_get_nickname
      Src: /src/nss/lib/pkcs12/p12d.c:1874,1
    - Dst: sec_pkcs12_get_nickname
      Src: /src/nss/lib/pkcs12/p12d.c:1880,1
    - Dst: sec_pkcs12_set_nickname
      Src: /src/nss/lib/pkcs12/p12d.c:1882,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pkcs12/p12d.c:1883,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - cert
    - key
    argTypes:
    - sec_PKCS12SafeBag*
    - sec_PKCS12SafeBag*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1889
      start: 1863
    functionDepth: 3
    functionLinenumber: 1863
    functionLinenumberEnd: 1889
    functionName: sec_pkcs12_get_nickname_for_cert
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - sec_pkcs12_set_nickname
    - sec_pkcs12_get_nickname
    - SECITEM_ZfreeItem
    linkageType: ''
    returnType: SECItem
    signature: "SECItem *\nsec_pkcs12_get_nickname_for_cert(sec_PKCS12SafeBag *cert,\n
      \                                sec_PKCS12SafeBag *key)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:1898,1
    - Dst: sec_pkcs12_set_nickname
      Src: /src/nss/lib/pkcs12/p12d.c:1902,1
    - Dst: sec_pkcs12_set_nickname
      Src: /src/nss/lib/pkcs12/p12d.c:1907,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - cert
    - key
    - nickname
    argTypes:
    - sec_PKCS12SafeBag*
    - sec_PKCS12SafeBag*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1915
      start: 1892
    functionDepth: 2
    functionLinenumber: 1892
    functionLinenumberEnd: 1915
    functionName: sec_pkcs12_set_nickname_for_cert
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - sec_pkcs12_set_nickname
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sec_pkcs12_set_nickname_for_cert(sec_PKCS12SafeBag *cert,\n
      \                                sec_PKCS12SafeBag *key,\n                                 SECItem
      *nickname)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:1922,1
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/pkcs12/p12d.c:1926,1
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/pkcs12/p12d.c:1931,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/pkcs12/p12d.c:1935,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - cert
    argTypes:
    - sec_PKCS12SafeBag*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1936
      start: 1918
    functionDepth: 0
    functionLinenumber: 1918
    functionLinenumberEnd: 1936
    functionName: sec_pkcs12_get_der_cert
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 0
    functionsReached:
    - SECOID_FindOIDTag
    - PORT_SetError
    - SECITEM_DupItem
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      sec_pkcs12_get_der_cert(sec_PKCS12SafeBag *cert)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:1962,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/pkcs12/p12d.c:1971,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:1980,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/pkcs12/p12d.c:1985,1
    - Dst: PORT_ArenaZNewArray
      Src: /src/nss/lib/pkcs12/p12d.c:1993,1
    - Dst: PORT_ArenaGrowArray
      Src: /src/nss/lib/pkcs12/p12d.c:1994,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/pkcs12/p12d.c:2003,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/pkcs12/p12d.c:2005,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/pkcs12/p12d.c:2009,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/pkcs12/p12d.c:2011,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 2
    argNames:
    - cert
    - arg
    argTypes:
    - CERTCertificate*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2018
      start: 1954
    functionDepth: 1
    functionLinenumber: 1954
    functionLinenumberEnd: 2018
    functionName: gatherNicknames
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 0
    functionsReached:
    - PORT_ArenaZNewArray
    - SECITEM_CompareItem
    - PORT_ArenaGrowArray
    - PORT_GetError
    - PORT_Strlen
    - SECITEM_CopyItem
    - PORT_SetError
    - PORT_ArenaZNew
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus gatherNicknames(CERTCertificate *cert, void *arg)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:2033,1
    - Dst: sec_pkcs12_get_der_cert
      Src: /src/nss/lib/pkcs12/p12d.c:2037,1
    - Dst: CERT_DecodeDERCertificate
      Src: /src/nss/lib/pkcs12/p12d.c:2042,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/pkcs12/p12d.c:2048,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/pkcs12/p12d.c:2053,1
    - Dst: PK11_TraverseCertsForSubjectInSlot
      Src: /src/nss/lib/pkcs12/p12d.c:2066,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/pkcs12/p12d.c:2084,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pkcs12/p12d.c:2088,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/pkcs12/p12d.c:2092,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pkcs12/p12d.c:2096,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 59
    argCount: 1
    argNames:
    - cert
    argTypes:
    - sec_PKCS12SafeBag*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2100
      start: 2024
    functionDepth: 8
    functionLinenumber: 2024
    functionLinenumberEnd: 2100
    functionName: sec_pkcs12_get_existing_nick_for_dn
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 0
    functionsReached:
    - SECITEM_DupItem
    - PORT_NewArena
    - PORT_FreeArena
    - PK11_TraverseCertsForSubjectInSlot
    - sec_pkcs12_get_der_cert
    - PORT_SetError
    - CERT_DecodeDERCertificate
    - PORT_ArenaZNew
    - CERT_DestroyCertificate
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      sec_pkcs12_get_existing_nick_for_dn(sec_PKCS12SafeBag *cert)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:2109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - cert
    - arg
    argTypes:
    - CERTCertificate*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2115
      start: 2103
    functionDepth: 0
    functionLinenumber: 2103
    functionLinenumberEnd: 2115
    functionName: countCertificate
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus countCertificate(CERTCertificate *cert, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:2123,1
    - Dst: PK11_TraverseCertsForNicknameInSlot
      Src: /src/nss/lib/pkcs12/p12d.c:2128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - nickname
    - slot
    argTypes:
    - SECItem*
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2131
      start: 2117
    functionDepth: 8
    functionLinenumber: 2117
    functionLinenumberEnd: 2131
    functionName: sec_pkcs12_certs_for_nickname_exist
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 0
    functionsReached:
    - PK11_TraverseCertsForNicknameInSlot
    - PORT_SetError
    linkageType: ''
    returnType: PRBool
    signature: PRBool sec_pkcs12_certs_for_nickname_exist(SECItem *nickname, PK11SlotInfo
      *slot)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:2151,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:2158,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:2165,1
    - Dst: sec_pkcs12_get_nickname_for_cert
      Src: /src/nss/lib/pkcs12/p12d.c:2169,1
    - Dst: sec_pkcs12_get_existing_nick_for_dn
      Src: /src/nss/lib/pkcs12/p12d.c:2170,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/pkcs12/p12d.c:2174,1
    - Dst: sec_pkcs12_set_nickname_for_cert
      Src: /src/nss/lib/pkcs12/p12d.c:2182,1
    - Dst: sec_pkcs12_certs_for_nickname_exist
      Src: /src/nss/lib/pkcs12/p12d.c:2208,1
    - Dst: sec_pkcs12_set_nickname_for_cert
      Src: /src/nss/lib/pkcs12/p12d.c:2210,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/pkcs12/p12d.c:2225,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pkcs12/p12d.c:2234,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pkcs12/p12d.c:2245,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pkcs12/p12d.c:2249,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 63
    argCount: 4
    argNames:
    - cert
    - key
    - nicknameCb
    - leafCert
    argTypes:
    - sec_PKCS12SafeBag*
    - sec_PKCS12SafeBag*
    - SEC_PKCS12NicknameCollisionCallback
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2251
      start: 2140
    functionDepth: 9
    functionLinenumber: 2140
    functionLinenumberEnd: 2251
    functionName: sec_pkcs12_validate_cert_nickname
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 0
    functionsReached:
    - SECITEM_CompareItem
    - sec_pkcs12_get_existing_nick_for_dn
    - sec_pkcs12_set_nickname_for_cert
    - PORT_GetError
    - PORT_SetError
    - sec_pkcs12_get_nickname_for_cert
    - SECITEM_ZfreeItem
    - sec_pkcs12_certs_for_nickname_exist
    linkageType: ''
    returnType: void
    signature: "void sec_pkcs12_validate_cert_nickname(sec_PKCS12SafeBag *cert,\n
      \                                 sec_PKCS12SafeBag *key,\n                                  SEC_PKCS12NicknameCollisionCallback
      nicknameCb,\n                                  CERTCertificate *leafCert)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:2261,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:2271,1
    - Dst: CERT_DecodeDERCertificate
      Src: /src/nss/lib/pkcs12/p12d.c:2287,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/pkcs12/p12d.c:2292,1
    - Dst: sec_pkcs12_validate_cert_nickname
      Src: /src/nss/lib/pkcs12/p12d.c:2296,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/pkcs12/p12d.c:2298,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 3
    argNames:
    - cert
    - key
    - nicknameCb
    argTypes:
    - sec_PKCS12SafeBag*
    - sec_PKCS12SafeBag*
    - SEC_PKCS12NicknameCollisionCallback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2299
      start: 2253
    functionDepth: 10
    functionLinenumber: 2253
    functionLinenumberEnd: 2299
    functionName: sec_pkcs12_validate_cert
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 0
    functionsReached:
    - PORT_GetError
    - PORT_SetError
    - CERT_DecodeDERCertificate
    - CERT_DestroyCertificate
    - sec_pkcs12_validate_cert_nickname
    linkageType: ''
    returnType: void
    signature: "void sec_pkcs12_validate_cert(sec_PKCS12SafeBag *cert,\n                         sec_PKCS12SafeBag
      *key,\n                         SEC_PKCS12NicknameCollisionCallback nicknameCb)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:2309,1
    - Dst: CERT_DecodeDERCertificate
      Src: /src/nss/lib/pkcs12/p12d.c:2322,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/pkcs12/p12d.c:2327,1
    - Dst: PK11_FindPrivateKeyFromCert
      Src: /src/nss/lib/pkcs12/p12d.c:2331,1
    - Dst: PK11_FindKeyByDERCert
      Src: /src/nss/lib/pkcs12/p12d.c:2333,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/lib/pkcs12/p12d.c:2337,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/pkcs12/p12d.c:2341,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 3
    argNames:
    - cert
    - key
    - wincx
    argTypes:
    - sec_PKCS12SafeBag*
    - sec_PKCS12SafeBag*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2342
      start: 2301
    functionDepth: 8
    functionLinenumber: 2301
    functionLinenumberEnd: 2342
    functionName: sec_pkcs12_validate_key_by_cert
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 0
    functionsReached:
    - PK11_FindPrivateKeyFromCert
    - PORT_GetError
    - PORT_SetError
    - CERT_DecodeDERCertificate
    - CERT_DestroyCertificate
    - SECKEY_DestroyPrivateKey
    - PK11_FindKeyByDERCert
    linkageType: ''
    returnType: void
    signature: "void sec_pkcs12_validate_key_by_cert(sec_PKCS12SafeBag *cert, sec_PKCS12SafeBag
      *key,\n                                void *wincx)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:2353,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs12/p12d.c:2363,1
    - Dst: sec_pkcs12_get_nickname
      Src: /src/nss/lib/pkcs12/p12d.c:2365,1
    - Dst: CERT_IsCADERCert
      Src: /src/nss/lib/pkcs12/p12d.c:2370,1
    - Dst: CERT_IsRootDERCert
      Src: /src/nss/lib/pkcs12/p12d.c:2371,1
    - Dst: CERT_NewTempCertificate
      Src: /src/nss/lib/pkcs12/p12d.c:2376,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/lib/pkcs12/p12d.c:2376,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pkcs12/p12d.c:2380,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/pkcs12/p12d.c:2381,1
    - Dst: PK11_ImportCertForKeyToSlot
      Src: /src/nss/lib/pkcs12/p12d.c:2386,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/pkcs12/p12d.c:2388,1
    - Dst: CERT_ImportCerts
      Src: /src/nss/lib/pkcs12/p12d.c:2396,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/lib/pkcs12/p12d.c:2396,1
    - Dst: PK11_ImportDERCert
      Src: /src/nss/lib/pkcs12/p12d.c:2399,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/pkcs12/p12d.c:2404,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pkcs12/p12d.c:2408,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 3
    argNames:
    - cert
    - keyExists
    - wincx
    argTypes:
    - sec_PKCS12SafeBag*
    - PRBool
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2410
      start: 2344
    functionDepth: 8
    functionLinenumber: 2344
    functionLinenumberEnd: 2410
    functionName: sec_pkcs12_add_cert
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 0
    functionsReached:
    - CERT_IsRootDERCert
    - PORT_Assert
    - PK11_ImportCertForKeyToSlot
    - CERT_ImportCerts
    - sec_pkcs12_get_nickname
    - PORT_GetError
    - PORT_SetError
    - CERT_IsCADERCert
    - CERT_GetDefaultCertDB
    - PK11_ImportDERCert
    - CERT_DestroyCertificate
    - CERT_NewTempCertificate
    - SECITEM_ZfreeItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sec_pkcs12_add_cert(sec_PKCS12SafeBag *cert, PRBool keyExists,
      void *wincx)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:2427,1
    - Dst: sec_pkcs12_get_public_value_and_type
      Src: /src/nss/lib/pkcs12/p12d.c:2436,1
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/pkcs12/p12d.c:2443,1
    - Dst: PK11_ImportPrivateKeyInfo
      Src: /src/nss/lib/pkcs12/p12d.c:2445,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/pkcs12/p12d.c:2454,1
    - Dst: SEC_PKCS12DecryptionAllowed
      Src: /src/nss/lib/pkcs12/p12d.c:2456,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/pkcs12/p12d.c:2463,1
    - Dst: sec_pkcs12_decode_password
      Src: /src/nss/lib/pkcs12/p12d.c:2469,1
    - Dst: PK11_ImportEncryptedPrivateKeyInfo
      Src: /src/nss/lib/pkcs12/p12d.c:2477,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pkcs12/p12d.c:2483,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pkcs12/p12d.c:2491,1
    - Dst: PK11_ImportPublicKey
      Src: /src/nss/lib/pkcs12/p12d.c:2503,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 61
    argCount: 6
    argNames:
    - key
    - pubKey
    - keyUsage
    - nickName
    - forceUnicode
    - wincx
    argTypes:
    - sec_PKCS12SafeBag*
    - SECKEYPublicKey*
    - unsigned int
    - SECItem*
    - PRBool
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2509
      start: 2415
    functionDepth: 5
    functionLinenumber: 2415
    functionLinenumberEnd: 2509
    functionName: sec_pkcs12_add_key
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 0
    functionsReached:
    - sec_pkcs12_get_public_value_and_type
    - PK11_ImportEncryptedPrivateKeyInfo
    - SECOID_GetAlgorithmTag
    - sec_pkcs12_decode_password
    - SECITEM_CopyItem
    - SECOID_FindOIDTag
    - PORT_SetError
    - PK11_ImportPrivateKeyInfo
    - SEC_PKCS12DecryptionAllowed
    - SECITEM_ZfreeItem
    - PK11_ImportPublicKey
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sec_pkcs12_add_key(sec_PKCS12SafeBag *key, SECKEYPublicKey
      *pubKey,\n                   unsigned int keyUsage,\n                   SECItem
      *nickName, PRBool forceUnicode, void *wincx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:2533,1
    - Dst: PORT_ArenaZNewArray
      Src: /src/nss/lib/pkcs12/p12d.c:2538,1
    - Dst: PORT_ArenaGrowArray
      Src: /src/nss/lib/pkcs12/p12d.c:2542,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:2547,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - bagList
    - bag
    argTypes:
    - sec_PKCS12SafeBag***
    - sec_PKCS12SafeBag*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2556
      start: 2525
    functionDepth: 1
    functionLinenumber: 2525
    functionLinenumberEnd: 2556
    functionName: sec_pkcs12_add_item_to_bag_list
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PORT_ArenaGrowArray
    - PORT_ArenaZNewArray
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sec_pkcs12_add_item_to_bag_list(sec_PKCS12SafeBag ***bagList,\n
      \                               sec_PKCS12SafeBag *bag)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:2567,1
    - Dst: sec_pkcs12_get_attribute_value
      Src: /src/nss/lib/pkcs12/p12d.c:2571,1
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/pkcs12/p12d.c:2577,1
    - Dst: sec_pkcs12_get_attribute_value
      Src: /src/nss/lib/pkcs12/p12d.c:2578,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/pkcs12/p12d.c:2581,1
    - Dst: sec_pkcs12_add_item_to_bag_list
      Src: /src/nss/lib/pkcs12/p12d.c:2582,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2595
      start: 2558
    functionDepth: 2
    functionLinenumber: 2558
    functionLinenumberEnd: 2595
    functionName: sec_pkcs12_find_certs_for_key
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 0
    functionsReached:
    - SECITEM_CompareItem
    - sec_pkcs12_add_item_to_bag_list
    - SECOID_FindOIDTag
    - PORT_SetError
    - sec_pkcs12_get_attribute_value
    linkageType: ''
    returnType: sec_PKCS12SafeBag
    signature: "sec_PKCS12SafeBag **\nsec_pkcs12_find_certs_for_key(sec_PKCS12SafeBag
      **safeBags,\n                              sec_PKCS12SafeBag *key)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:2605,1
    - Dst: CERT_NewCertList
      Src: /src/nss/lib/pkcs12/p12d.c:2610,1
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/pkcs12/p12d.c:2617,1
    - Dst: sec_pkcs12_get_der_cert
      Src: /src/nss/lib/pkcs12/p12d.c:2618,1
    - Dst: CERT_NewTempCertificate
      Src: /src/nss/lib/pkcs12/p12d.c:2623,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/lib/pkcs12/p12d.c:2623,1
    - Dst: CERT_AddCertToListTail
      Src: /src/nss/lib/pkcs12/p12d.c:2628,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pkcs12/p12d.c:2630,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 1
    argNames:
    - p12dcx
    argTypes:
    - SEC_PKCS12DecoderContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2638
      start: 2597
    functionDepth: 1
    functionLinenumber: 2597
    functionLinenumberEnd: 2638
    functionName: SEC_PKCS12DecoderGetCerts
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 0
    functionsReached:
    - sec_pkcs12_get_der_cert
    - CERT_NewCertList
    - SECOID_FindOIDTag
    - PORT_SetError
    - CERT_GetDefaultCertDB
    - CERT_AddCertToListTail
    - CERT_NewTempCertificate
    - SECITEM_FreeItem
    linkageType: ''
    returnType: CERTCertList
    signature: 'CERTCertList *

      SEC_PKCS12DecoderGetCerts(SEC_PKCS12DecoderContext *p12dcx)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:2647,1
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/pkcs12/p12d.c:2652,1
    - Dst: sec_pkcs12_add_item_to_bag_list
      Src: /src/nss/lib/pkcs12/p12d.c:2656,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2669
      start: 2639
    functionDepth: 2
    functionLinenumber: 2639
    functionLinenumberEnd: 2669
    functionName: sec_pkcs12_get_key_bags
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 0
    functionsReached:
    - SECOID_FindOIDTag
    - PORT_SetError
    - sec_pkcs12_add_item_to_bag_list
    linkageType: ''
    returnType: sec_PKCS12SafeBag
    signature: 'sec_PKCS12SafeBag **

      sec_pkcs12_get_key_bags(sec_PKCS12SafeBag **safeBags)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:2684,1
    - Dst: sec_pkcs12_get_key_bags
      Src: /src/nss/lib/pkcs12/p12d.c:2695,1
    - Dst: sec_pkcs12_find_certs_for_key
      Src: /src/nss/lib/pkcs12/p12d.c:2700,1
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/pkcs12/p12d.c:2705,1
    - Dst: sec_pkcs12_get_key_info
      Src: /src/nss/lib/pkcs12/p12d.c:2711,1
    - Dst: sec_pkcs12_validate_key_by_cert
      Src: /src/nss/lib/pkcs12/p12d.c:2716,1
    - Dst: sec_pkcs12_validate_cert
      Src: /src/nss/lib/pkcs12/p12d.c:2725,1
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/pkcs12/p12d.c:2742,1
    - Dst: sec_pkcs12_validate_cert
      Src: /src/nss/lib/pkcs12/p12d.c:2746,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 52
    argCount: 3
    argNames:
    - safeBags
    - nicknameCb
    - wincx
    argTypes:
    - sec_PKCS12SafeBag**
    - SEC_PKCS12NicknameCollisionCallback
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2761
      start: 2675
    functionDepth: 11
    functionLinenumber: 2675
    functionLinenumberEnd: 2761
    functionName: sec_pkcs12_validate_bags
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 0
    functionsReached:
    - sec_pkcs12_validate_cert
    - sec_pkcs12_find_certs_for_key
    - sec_pkcs12_get_key_info
    - SECOID_FindOIDTag
    - PORT_SetError
    - sec_pkcs12_validate_key_by_cert
    - sec_pkcs12_get_key_bags
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sec_pkcs12_validate_bags(sec_PKCS12SafeBag **safeBags,\n
      \                        SEC_PKCS12NicknameCollisionCallback nicknameCb,\n                         void
      *wincx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:2770,1
    - Dst: sec_pkcs12_validate_bags
      Src: /src/nss/lib/pkcs12/p12d.c:2774,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:2790,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - p12dcx
    - nicknameCb
    argTypes:
    - SEC_PKCS12DecoderContext*
    - SEC_PKCS12NicknameCollisionCallback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2795
      start: 2763
    functionDepth: 12
    functionLinenumber: 2763
    functionLinenumberEnd: 2795
    functionName: SEC_PKCS12DecoderValidateBags
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 2
    functionsReached:
    - PORT_SetError
    - sec_pkcs12_validate_bags
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SEC_PKCS12DecoderValidateBags(SEC_PKCS12DecoderContext *p12dcx,\n
      \                             SEC_PKCS12NicknameCollisionCallback nicknameCb)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:2808,1
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/pkcs12/p12d.c:2817,1
    - Dst: CERT_DecodeDERCertificate
      Src: /src/nss/lib/pkcs12/p12d.c:2822,1
    - Dst: sec_pkcs12_get_nickname
      Src: /src/nss/lib/pkcs12/p12d.c:2829,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/pkcs12/p12d.c:2832,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pkcs12/p12d.c:2835,1
    - Dst: sec_pkcs12_set_nickname
      Src: /src/nss/lib/pkcs12/p12d.c:2844,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pkcs12/p12d.c:2845,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 3
    argNames:
    - p12dcx
    - nicknameCb
    - arg
    argTypes:
    - SEC_PKCS12DecoderContext*
    - SEC_PKCS12NicknameRenameCallback
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2854
      start: 2797
    functionDepth: 3
    functionLinenumber: 2797
    functionLinenumberEnd: 2854
    functionName: SEC_PKCS12DecoderRenameCertNicknames
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 0
    functionsReached:
    - sec_pkcs12_get_nickname
    - SECOID_FindOIDTag
    - PORT_SetError
    - CERT_DecodeDERCertificate
    - sec_pkcs12_set_nickname
    - CERT_DestroyCertificate
    - SECITEM_ZfreeItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SEC_PKCS12DecoderRenameCertNicknames(SEC_PKCS12DecoderContext
      *p12dcx,\n                                     SEC_PKCS12NicknameRenameCallback
      nicknameCb,\n                                     void *arg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:2864,1
    - Dst: CERT_DecodeDERCertificate
      Src: /src/nss/lib/pkcs12/p12d.c:2870,1
    - Dst: CERT_ExtractPublicKey
      Src: /src/nss/lib/pkcs12/p12d.c:2877,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/pkcs12/p12d.c:2878,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - certBag
    - usage
    argTypes:
    - sec_PKCS12SafeBag*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2880
      start: 2856
    functionDepth: 4
    functionLinenumber: 2856
    functionLinenumberEnd: 2880
    functionName: sec_pkcs12_get_public_key_and_usage
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - CERT_DecodeDERCertificate
    - CERT_ExtractPublicKey
    - CERT_DestroyCertificate
    linkageType: ''
    returnType: SECKEYPublicKey
    signature: "SECKEYPublicKey *\nsec_pkcs12_get_public_key_and_usage(sec_PKCS12SafeBag
      *certBag,\n                                    unsigned int *usage)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:2889,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - pubKey
    - type
    argTypes:
    - SECKEYPublicKey*
    - KeyType*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2912
      start: 2882
    functionDepth: 0
    functionLinenumber: 2882
    functionLinenumberEnd: 2912
    functionName: sec_pkcs12_get_public_value_and_type
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: SECItem
    signature: "SECItem *\nsec_pkcs12_get_public_value_and_type(SECKEYPublicKey *pubKey,\n
      \                                    KeyType *type)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:2927,1
    - Dst: sec_pkcs12_get_key_bags
      Src: /src/nss/lib/pkcs12/p12d.c:2938,1
    - Dst: sec_pkcs12_find_certs_for_key
      Src: /src/nss/lib/pkcs12/p12d.c:2953,1
    - Dst: sec_pkcs12_get_public_key_and_usage
      Src: /src/nss/lib/pkcs12/p12d.c:2955,1
    - Dst: sec_pkcs12_get_nickname_for_cert
      Src: /src/nss/lib/pkcs12/p12d.c:2960,1
    - Dst: sec_pkcs12_get_nickname
      Src: /src/nss/lib/pkcs12/p12d.c:2962,1
    - Dst: sec_pkcs12_add_key
      Src: /src/nss/lib/pkcs12/p12d.c:2973,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/pkcs12/p12d.c:2977,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pkcs12/p12d.c:2981,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:2985,1
    - Dst: sec_pkcs12_add_cert
      Src: /src/nss/lib/pkcs12/p12d.c:3005,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:3009,1
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/pkcs12/p12d.c:3027,1
    - Dst: sec_pkcs12_add_cert
      Src: /src/nss/lib/pkcs12/p12d.c:3031,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:3033,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 87
    argCount: 3
    argNames:
    - safeBags
    - forceUnicode
    - wincx
    argTypes:
    - sec_PKCS12SafeBag**
    - PRBool
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3046
      start: 2918
    functionDepth: 9
    functionLinenumber: 2918
    functionLinenumberEnd: 3046
    functionName: sec_pkcs12_install_bags
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 0
    functionsReached:
    - sec_pkcs12_add_cert
    - SECKEY_DestroyPublicKey
    - sec_pkcs12_get_public_key_and_usage
    - sec_pkcs12_get_nickname
    - sec_pkcs12_find_certs_for_key
    - SECOID_FindOIDTag
    - PORT_SetError
    - sec_pkcs12_get_nickname_for_cert
    - sec_pkcs12_add_key
    - SECITEM_FreeItem
    - sec_pkcs12_get_key_bags
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sec_pkcs12_install_bags(sec_PKCS12SafeBag **safeBags, PRBool
      forceUnicode,\n                        void *wincx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:3055,1
    - Dst: NSS_OptionGet
      Src: /src/nss/lib/pkcs12/p12d.c:3066,1
    - Dst: sec_pkcs12_install_bags
      Src: /src/nss/lib/pkcs12/p12d.c:3071,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - p12dcx
    argTypes:
    - SEC_PKCS12DecoderContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3073
      start: 3048
    functionDepth: 10
    functionLinenumber: 3048
    functionLinenumberEnd: 3073
    functionName: SEC_PKCS12DecoderImportBags
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 2
    functionsReached:
    - PORT_SetError
    - sec_pkcs12_install_bags
    - NSS_OptionGet
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SEC_PKCS12DecoderImportBags(SEC_PKCS12DecoderContext *p12dcx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sec_pkcs12_get_attribute_value
      Src: /src/nss/lib/pkcs12/p12d.c:3082,1
    - Dst: sec_pkcs12_get_attribute_value
      Src: /src/nss/lib/pkcs12/p12d.c:3088,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/pkcs12/p12d.c:3093,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - p12dcx
    - bag
    argTypes:
    - SEC_PKCS12DecoderContext*
    - sec_PKCS12SafeBag*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3098
      start: 3075
    functionDepth: 1
    functionLinenumber: 3075
    functionLinenumberEnd: 3098
    functionName: sec_pkcs12_bagHasKey
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 0
    functionsReached:
    - SECITEM_CompareItem
    - sec_pkcs12_get_attribute_value
    linkageType: ''
    returnType: PRBool
    signature: PRBool sec_pkcs12_bagHasKey(SEC_PKCS12DecoderContext *p12dcx, sec_PKCS12SafeBag
      *bag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sec_pkcs12_get_attribute_value
      Src: /src/nss/lib/pkcs12/p12d.c:3106,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/pkcs12/p12d.c:3107,1
    - Dst: sec_pkcs12_convert_item_to_unicode
      Src: /src/nss/lib/pkcs12/p12d.c:3109,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pkcs12/p12d.c:3111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - bag
    argTypes:
    - sec_PKCS12SafeBag*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3116
      start: 3100
    functionDepth: 1
    functionLinenumber: 3100
    functionLinenumberEnd: 3116
    functionName: sec_pkcs12_get_friendlyName
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 0
    functionsReached:
    - sec_pkcs12_convert_item_to_unicode
    - PORT_ZAlloc
    - SECITEM_FreeItem
    - sec_pkcs12_get_attribute_value
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      sec_pkcs12_get_friendlyName(sec_PKCS12SafeBag *bag)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:3133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - p12dcx
    argTypes:
    - SEC_PKCS12DecoderContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3139
      start: 3129
    functionDepth: 0
    functionLinenumber: 3129
    functionLinenumberEnd: 3139
    functionName: SEC_PKCS12DecoderIterateInit
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SEC_PKCS12DecoderIterateInit(SEC_PKCS12DecoderContext *p12dcx)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:3148,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pkcs12/p12d.c:3153,1
    - Dst: SECOID_DestroyAlgorithmID
      Src: /src/nss/lib/pkcs12/p12d.c:3156,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pkcs12/p12d.c:3159,1
    - Dst: sec_pkcs12_get_key_bags
      Src: /src/nss/lib/pkcs12/p12d.c:3168,1
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/pkcs12/p12d.c:3176,1
    - Dst: sec_pkcs12_get_der_cert
      Src: /src/nss/lib/pkcs12/p12d.c:3179,1
    - Dst: sec_pkcs12_get_friendlyName
      Src: /src/nss/lib/pkcs12/p12d.c:3180,1
    - Dst: sec_pkcs12_bagHasKey
      Src: /src/nss/lib/pkcs12/p12d.c:3181,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/pkcs12/p12d.c:3190,1
    - Dst: SECOID_CopyAlgorithmID
      Src: /src/nss/lib/pkcs12/p12d.c:3192,1
    - Dst: sec_pkcs12_get_friendlyName
      Src: /src/nss/lib/pkcs12/p12d.c:3197,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:3212,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 59
    argCount: 2
    argNames:
    - p12dcx
    - ipp
    argTypes:
    - SEC_PKCS12DecoderContext*
    - SEC_PKCS12DecoderItem**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3214
      start: 3141
    functionDepth: 3
    functionLinenumber: 3141
    functionLinenumberEnd: 3214
    functionName: SEC_PKCS12DecoderIterateNext
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 1
    functionsReached:
    - PORT_ZNew
    - sec_pkcs12_get_der_cert
    - SECOID_CopyAlgorithmID
    - SECOID_FindOIDTag
    - PORT_SetError
    - sec_pkcs12_get_friendlyName
    - sec_pkcs12_bagHasKey
    - SECOID_DestroyAlgorithmID
    - SECITEM_FreeItem
    - sec_pkcs12_get_key_bags
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SEC_PKCS12DecoderIterateNext(SEC_PKCS12DecoderContext *p12dcx,\n
      \                            const SEC_PKCS12DecoderItem **ipp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:3221,1
    - Dst: PORT_ArenaZNewArray
      Src: /src/nss/lib/pkcs12/p12d.c:3226,1
    - Dst: PORT_ArenaGrowArray
      Src: /src/nss/lib/pkcs12/p12d.c:3227,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:3232,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - p12dcx
    - bag
    argTypes:
    - SEC_PKCS12DecoderContext*
    - sec_PKCS12SafeBag*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3241
      start: 3216
    functionDepth: 1
    functionLinenumber: 3216
    functionLinenumberEnd: 3241
    functionName: sec_pkcs12_decoder_append_bag_to_context
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PORT_ArenaGrowArray
    - PORT_ArenaZNewArray
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sec_pkcs12_decoder_append_bag_to_context(SEC_PKCS12DecoderContext
      *p12dcx,\n                                         sec_PKCS12SafeBag *bag)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:3253,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/pkcs12/p12d.c:3257,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/pkcs12/p12d.c:3258,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/lib/pkcs12/p12d.c:3271,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/pkcs12/p12d.c:3276,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:3286,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:3295,1
    - Dst: sec_pkcs12_convert_item_to_unicode
      Src: /src/nss/lib/pkcs12/p12d.c:3304,1
    - Dst: sec_pkcs12_convert_item_to_unicode
      Src: /src/nss/lib/pkcs12/p12d.c:3319,1
    - Dst: sec_pkcs12_decoder_set_attribute_value
      Src: /src/nss/lib/pkcs12/p12d.c:3327,1
    - Dst: sec_pkcs12_decoder_set_attribute_value
      Src: /src/nss/lib/pkcs12/p12d.c:3333,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 70
    argCount: 3
    argNames:
    - p12dcx
    - key
    - isEspvk
    argTypes:
    - SEC_PKCS12DecoderContext*
    - void*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3339
      start: 3243
    functionDepth: 2
    functionLinenumber: 3243
    functionLinenumberEnd: 3339
    functionName: sec_pkcs12_decoder_convert_old_key
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 0
    functionsReached:
    - SECOID_FindOIDByTag
    - sec_pkcs12_decoder_set_attribute_value
    - SECITEM_CopyItem
    - PORT_SetError
    - sec_pkcs12_convert_item_to_unicode
    - PORT_ArenaZNew
    linkageType: ''
    returnType: sec_PKCS12SafeBag
    signature: "sec_PKCS12SafeBag *\nsec_pkcs12_decoder_convert_old_key(SEC_PKCS12DecoderContext
      *p12dcx,\n                                   void *key, PRBool isEspvk)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:3352,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/pkcs12/p12d.c:3356,1
    - Dst: sec_pkcs12_compute_thumbprint
      Src: /src/nss/lib/pkcs12/p12d.c:3361,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/pkcs12/p12d.c:3366,1
    - Dst: SGN_DestroyDigestInfo
      Src: /src/nss/lib/pkcs12/p12d.c:3367,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:3369,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/lib/pkcs12/p12d.c:3373,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/pkcs12/p12d.c:3374,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/pkcs12/p12d.c:3375,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/lib/pkcs12/p12d.c:3385,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/pkcs12/p12d.c:3387,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/pkcs12/p12d.c:3389,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/pkcs12/p12d.c:3395,1
    - Dst: sec_pkcs12_decoder_set_attribute_value
      Src: /src/nss/lib/pkcs12/p12d.c:3401,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 2
    argNames:
    - p12dcx
    - derCert
    argTypes:
    - SEC_PKCS12DecoderContext*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3407
      start: 3341
    functionDepth: 2
    functionLinenumber: 3341
    functionLinenumberEnd: 3407
    functionName: sec_pkcs12_decoder_create_cert
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 0
    functionsReached:
    - SECOID_FindOIDByTag
    - SGN_DestroyDigestInfo
    - sec_pkcs12_decoder_set_attribute_value
    - SECITEM_CopyItem
    - PORT_SetError
    - PORT_ArenaZNew
    - sec_pkcs12_compute_thumbprint
    linkageType: ''
    returnType: sec_PKCS12SafeBag
    signature: "sec_PKCS12SafeBag *\nsec_pkcs12_decoder_create_cert(SEC_PKCS12DecoderContext
      *p12dcx,\n                               SECItem *derCert)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:3418,1
    - Dst: SEC_PKCS7GetCertificateList
      Src: /src/nss/lib/pkcs12/p12d.c:3422,1
    - Dst: PORT_ArenaZNewArray
      Src: /src/nss/lib/pkcs12/p12d.c:3431,1
    - Dst: sec_pkcs12_decoder_create_cert
      Src: /src/nss/lib/pkcs12/p12d.c:3437,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3444
      start: 3409
    functionDepth: 3
    functionLinenumber: 3409
    functionLinenumberEnd: 3444
    functionName: sec_pkcs12_decoder_convert_old_cert
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - sec_pkcs12_decoder_create_cert
    - PORT_ArenaZNewArray
    - SEC_PKCS7GetCertificateList
    linkageType: ''
    returnType: sec_PKCS12SafeBag
    signature: "sec_PKCS12SafeBag **\nsec_pkcs12_decoder_convert_old_cert(SEC_PKCS12DecoderContext
      *p12dcx,\n                                    SEC_PKCS12CertAndCRL *oldCert)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:3469,1
    - Dst: sec_pkcs12_find_object
      Src: /src/nss/lib/pkcs12/p12d.c:3473,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:3477,1
    - Dst: sec_pkcs12_decoder_convert_old_key
      Src: /src/nss/lib/pkcs12/p12d.c:3481,1
    - Dst: sec_pkcs12_decoder_convert_old_cert
      Src: /src/nss/lib/pkcs12/p12d.c:3482,1
    - Dst: sec_pkcs12_decoder_append_bag_to_context
      Src: /src/nss/lib/pkcs12/p12d.c:3487,1
    - Dst: sec_pkcs12_get_nickname
      Src: /src/nss/lib/pkcs12/p12d.c:3491,1
    - Dst: sec_pkcs12_decoder_append_bag_to_context
      Src: /src/nss/lib/pkcs12/p12d.c:3498,1
    - Dst: sec_pkcs12_find_certs_for_key
      Src: /src/nss/lib/pkcs12/p12d.c:3504,1
    - Dst: sec_pkcs12_set_nickname
      Src: /src/nss/lib/pkcs12/p12d.c:3511,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 49
    argCount: 5
    argNames:
    - p12dcx
    - oldKey
    - isEspvk
    - safe
    - baggage
    argTypes:
    - SEC_PKCS12DecoderContext*
    - void*
    - PRBool
    - SEC_PKCS12SafeContents*
    - SEC_PKCS12Baggage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3518
      start: 3446
    functionDepth: 4
    functionLinenumber: 3446
    functionLinenumberEnd: 3518
    functionName: sec_pkcs12_decoder_convert_old_key_and_certs
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 0
    functionsReached:
    - sec_pkcs12_decoder_append_bag_to_context
    - sec_pkcs12_decoder_convert_old_key
    - sec_pkcs12_get_nickname
    - sec_pkcs12_find_certs_for_key
    - PORT_SetError
    - sec_pkcs12_find_object
    - sec_pkcs12_set_nickname
    - sec_pkcs12_decoder_convert_old_cert
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sec_pkcs12_decoder_convert_old_key_and_certs(SEC_PKCS12DecoderContext
      *p12dcx,\n                                             void *oldKey, PRBool
      isEspvk,\n                                             SEC_PKCS12SafeContents
      *safe,\n                                             SEC_PKCS12Baggage *baggage)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:3528,1
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/pkcs12/p12d.c:3535,1
    - Dst: sec_pkcs12_decoder_convert_old_key_and_certs
      Src: /src/nss/lib/pkcs12/p12d.c:3542,1
    - Dst: sec_pkcs12_decoder_convert_old_key_and_certs
      Src: /src/nss/lib/pkcs12/p12d.c:3567,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 41
    argCount: 3
    argNames:
    - p12dcx
    - safe
    - baggage
    argTypes:
    - SEC_PKCS12DecoderContext*
    - SEC_PKCS12SafeContents*
    - SEC_PKCS12Baggage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3582
      start: 3520
    functionDepth: 5
    functionLinenumber: 3520
    functionLinenumberEnd: 3582
    functionName: sec_pkcs12_decoder_convert_old_safe_to_bags
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 0
    functionsReached:
    - SECOID_FindOIDTag
    - PORT_SetError
    - sec_pkcs12_decoder_convert_old_key_and_certs
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sec_pkcs12_decoder_convert_old_safe_to_bags(SEC_PKCS12DecoderContext
      *p12dcx,\n                                            SEC_PKCS12SafeContents
      *safe,\n                                            SEC_PKCS12Baggage *baggage)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:3593,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12d.c:3598,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/pkcs12/p12d.c:3602,1
    - Dst: PK11_ReferenceSlot
      Src: /src/nss/lib/pkcs12/p12d.c:3608,1
    - Dst: sec_pkcs12_decoder_convert_old_safe_to_bags
      Src: /src/nss/lib/pkcs12/p12d.c:3615,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 7
    argNames:
    - arena
    - slot
    - swapUnicode
    - pwitem
    - wincx
    - safe
    - baggage
    argTypes:
    - PLArenaPool*
    - PK11SlotInfo*
    - PRBool
    - SECItem*
    - void*
    - SEC_PKCS12SafeContents*
    - SEC_PKCS12Baggage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3621
      start: 3584
    functionDepth: 6
    functionLinenumber: 3584
    functionLinenumberEnd: 3621
    functionName: sec_PKCS12ConvertOldSafeToNew
    functionSourceFile: /src/nss/lib/pkcs12/p12d.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    - PORT_ArenaZNew
    - sec_pkcs12_decoder_convert_old_safe_to_bags
    - PK11_ReferenceSlot
    linkageType: ''
    returnType: SEC_PKCS12DecoderContext
    signature: "SEC_PKCS12DecoderContext *\nsec_PKCS12ConvertOldSafeToNew(PLArenaPool
      *arena, PK11SlotInfo *slot,\n                              PRBool swapUnicode,
      SECItem *pwitem,\n                              void *wincx, SEC_PKCS12SafeContents
      *safe,\n                              SEC_PKCS12Baggage *baggage)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pkcs12/p12exp.c:29,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pkcs12/p12exp.c:33,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - nicknames
    argTypes:
    - SECItem**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 34
    functionName: sec_pkcs12_destroy_nickname_list
    functionSourceFile: /src/nss/lib/pkcs12/p12exp.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - SECITEM_FreeItem
    linkageType: ''
    returnType: void
    signature: void sec_pkcs12_destroy_nickname_list(SECItem **nicknames)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/pkcs12/p12exp.c:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ref_certs
    argTypes:
    - CERTCertificate**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 50
    functionName: sec_pkcs12_destroy_certificate_list
    functionSourceFile: /src/nss/lib/pkcs12/p12exp.c
    functionUses: 0
    functionsReached:
    - CERT_DestroyCertificate
    linkageType: ''
    returnType: void
    signature: void sec_pkcs12_destroy_certificate_list(CERTCertificate **ref_certs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/pkcs12/p12exp.c:58,1
    - Dst: SEC_PKCS7DestroyContentInfo
      Src: /src/nss/lib/pkcs12/p12exp.c:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - certBag
    argTypes:
    - SEC_PKCS12CertAndCRLBag*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 66
    functionName: sec_pkcs12_destroy_cinfos_for_cert_bags
    functionSourceFile: /src/nss/lib/pkcs12/p12exp.c
    functionUses: 0
    functionsReached:
    - SECOID_FindOIDTag
    - SEC_PKCS7DestroyContentInfo
    linkageType: ''
    returnType: void
    signature: void sec_pkcs12_destroy_cinfos_for_cert_bags(SEC_PKCS12CertAndCRLBag
      *certBag)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/pkcs12/p12exp.c:80,1
    - Dst: sec_pkcs12_destroy_cinfos_for_cert_bags
      Src: /src/nss/lib/pkcs12/p12exp.c:84,1
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/pkcs12/p12exp.c:97,1
    - Dst: sec_pkcs12_destroy_cinfos_for_cert_bags
      Src: /src/nss/lib/pkcs12/p12exp.c:101,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 2
    argNames:
    - safe
    - baggage
    argTypes:
    - SEC_PKCS12SafeContents*
    - SEC_PKCS12Baggage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 109
    functionName: sec_pkcs12_destroy_cert_content_infos
    functionSourceFile: /src/nss/lib/pkcs12/p12exp.c
    functionUses: 0
    functionsReached:
    - SECOID_FindOIDTag
    - sec_pkcs12_destroy_cinfos_for_cert_bags
    linkageType: ''
    returnType: void
    signature: "void sec_pkcs12_destroy_cert_content_infos(SEC_PKCS12SafeContents
      *safe,\n                                      SEC_PKCS12Baggage *baggage)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/pkcs12/p12exp.c:131,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/pkcs12/p12exp.c:134,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/pkcs12/p12exp.c:137,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/pkcs12/p12exp.c:137,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/pkcs12/p12exp.c:139,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pkcs12/p12exp.c:140,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pkcs12/p12exp.c:153,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pkcs12/p12exp.c:155,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 160
    functionName: sec_pkcs12_convert_nickname_list
    functionSourceFile: /src/nss/lib/pkcs12/p12exp.c
    functionUses: 0
    functionsReached:
    - PORT_Memcpy
    - PORT_Free
    - PORT_ZAlloc
    - PORT_Strlen
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem **

      sec_pkcs12_convert_nickname_list(char **nicknames)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/pkcs12/p12exp.c:184,1
    - Dst: sec_pkcs12_new_cert_crl
      Src: /src/nss/lib/pkcs12/p12exp.c:186,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/pkcs12/p12exp.c:190,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12exp.c:192,1
    - Dst: SEC_PKCS7CreateCertsOnly
      Src: /src/nss/lib/pkcs12/p12exp.c:200,1
    - Dst: SEC_PKCS7PrepareForEncode
      Src: /src/nss/lib/pkcs12/p12exp.c:201,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pkcs12/p12exp.c:205,1
    - Dst: sec_pkcs12_compute_thumbprint
      Src: /src/nss/lib/pkcs12/p12exp.c:206,1
    - Dst: SGN_CopyDigestInfo
      Src: /src/nss/lib/pkcs12/p12exp.c:209,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12exp.c:213,1
    - Dst: SGN_DestroyDigestInfo
      Src: /src/nss/lib/pkcs12/p12exp.c:215,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs12/p12exp.c:223,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/pkcs12/p12exp.c:225,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 3
    argNames:
    - poolp
    - add_cert
    - nickname
    argTypes:
    - PLArenaPool*
    - CERTCertificate*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 229
    functionName: sec_pkcs12_get_cert
    functionSourceFile: /src/nss/lib/pkcs12/p12exp.c
    functionUses: 0
    functionsReached:
    - sec_pkcs12_new_cert_crl
    - SEC_PKCS7PrepareForEncode
    - PORT_Memcpy
    - SGN_DestroyDigestInfo
    - SGN_CopyDigestInfo
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - SECITEM_CopyItem
    - PORT_SetError
    - sec_pkcs12_compute_thumbprint
    - PORT_ArenaUnmark
    - SEC_PKCS7CreateCertsOnly
    linkageType: ''
    returnType: SEC_PKCS12CertAndCRL
    signature: "SEC_PKCS12CertAndCRL *\nsec_pkcs12_get_cert(PLArenaPool *poolp,\n
      \                   CERTCertificate *add_cert,\n                    SECItem
      *nickname)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/pkcs12/p12exp.c:254,1
    - Dst: PK11_ExportPrivateKeyInfo
      Src: /src/nss/lib/pkcs12/p12exp.c:257,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs12/p12exp.c:259,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12exp.c:260,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs12/p12exp.c:264,1
    - Dst: sec_pkcs12_init_pvk_data
      Src: /src/nss/lib/pkcs12/p12exp.c:267,1
    - Dst: SECKEY_CopyPrivateKeyInfo
      Src: /src/nss/lib/pkcs12/p12exp.c:271,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/pkcs12/p12exp.c:273,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12exp.c:278,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12exp.c:282,1
    - Dst: SECKEY_DestroyPrivateKeyInfo
      Src: /src/nss/lib/pkcs12/p12exp.c:286,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs12/p12exp.c:288,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/pkcs12/p12exp.c:290,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 4
    argNames:
    - poolp
    - nickname
    - cert
    - wincx
    argTypes:
    - PLArenaPool*
    - SECItem*
    - CERTCertificate*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 239
    functionDepth: 3
    functionLinenumber: 239
    functionLinenumberEnd: 294
    functionName: sec_pkcs12_get_private_key
    functionSourceFile: /src/nss/lib/pkcs12/p12exp.c
    functionUses: 0
    functionsReached:
    - sec_pkcs12_init_pvk_data
    - SECKEY_DestroyPrivateKeyInfo
    - PORT_ArenaZAlloc
    - SECKEY_CopyPrivateKeyInfo
    - PORT_ArenaRelease
    - PK11_ExportPrivateKeyInfo
    - PORT_ArenaMark
    - SECITEM_CopyItem
    - PORT_SetError
    - PORT_ArenaUnmark
    linkageType: ''
    returnType: SEC_PKCS12PrivateKey
    signature: "SEC_PKCS12PrivateKey *\nsec_pkcs12_get_private_key(PLArenaPool *poolp,\n
      \                          SECItem *nickname,\n                           CERTCertificate
      *cert,\n                           void *wincx)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/pkcs12/p12exp.c:327,1
    - Dst: PK11_GetInternalKeySlot
      Src: /src/nss/lib/pkcs12/p12exp.c:330,1
    - Dst: PK11_ExportEncryptedPrivateKeyInfo
      Src: /src/nss/lib/pkcs12/p12exp.c:333,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pkcs12/p12exp.c:335,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12exp.c:337,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs12/p12exp.c:338,1
    - Dst: sec_pkcs12_create_espvk
      Src: /src/nss/lib/pkcs12/p12exp.c:343,1
    - Dst: sec_pkcs12_init_pvk_data
      Src: /src/nss/lib/pkcs12/p12exp.c:345,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/pkcs12/p12exp.c:346,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs12/p12exp.c:348,1
    - Dst: SECKEY_CopyEncryptedPrivateKeyInfo
      Src: /src/nss/lib/pkcs12/p12exp.c:351,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12exp.c:360,1
    - Dst: SECKEY_DestroyEncryptedPrivateKeyInfo
      Src: /src/nss/lib/pkcs12/p12exp.c:365,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs12/p12exp.c:367,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/pkcs12/p12exp.c:369,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 7
    argNames:
    - poolp
    - nickname
    - cert
    - algorithm
    - pwitem
    - unicodeFn
    - wincx
    argTypes:
    - PLArenaPool*
    - SECItem*
    - CERTCertificate*
    - SECOidTag
    - SECItem*
    - PKCS12UnicodeConvertFunction
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 304
    functionDepth: 8
    functionLinenumber: 304
    functionLinenumberEnd: 373
    functionName: sec_pkcs12_get_shrouded_key
    functionSourceFile: /src/nss/lib/pkcs12/p12exp.c
    functionUses: 0
    functionsReached:
    - PK11_GetInternalKeySlot
    - sec_pkcs12_init_pvk_data
    - PORT_ArenaZAlloc
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - SECITEM_CopyItem
    - PORT_SetError
    - PK11_ExportEncryptedPrivateKeyInfo
    - sec_pkcs12_create_espvk
    - PORT_ArenaUnmark
    - SECKEY_CopyEncryptedPrivateKeyInfo
    - PK11_FreeSlot
    - SECKEY_DestroyEncryptedPrivateKeyInfo
    linkageType: ''
    returnType: SEC_PKCS12ESPVKItem
    signature: "SEC_PKCS12ESPVKItem *\nsec_pkcs12_get_shrouded_key(PLArenaPool *poolp,\n
      \                           SECItem *nickname,\n                            CERTCertificate
      *cert,\n                            SECOidTag algorithm,\n                            SECItem
      *pwitem,\n                            PKCS12UnicodeConvertFunction unicodeFn,\n
      \                           void *wincx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/pkcs12/p12exp.c:393,1
    - Dst: PORT_ArenaGrow
      Src: /src/nss/lib/pkcs12/p12exp.c:402,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs12/p12exp.c:406,1
    - Dst: SGN_CopyDigestInfo
      Src: /src/nss/lib/pkcs12/p12exp.c:409,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs12/p12exp.c:418,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/pkcs12/p12exp.c:425,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 2
    argNames:
    - pvk
    - thumb
    argTypes:
    - SEC_PKCS12PVKSupportingData*
    - SGNDigestInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 427
    functionName: sec_pkcs12_add_thumbprint
    functionSourceFile: /src/nss/lib/pkcs12/p12exp.c
    functionUses: 0
    functionsReached:
    - PORT_ArenaZAlloc
    - PORT_ArenaGrow
    - PORT_ArenaRelease
    - SGN_CopyDigestInfo
    - PORT_ArenaMark
    - PORT_ArenaUnmark
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sec_pkcs12_add_thumbprint(SEC_PKCS12PVKSupportingData *pvk,\n
      \                         SGNDigestInfo *thumb)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/pkcs12/p12exp.c:457,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/pkcs12/p12exp.c:459,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pkcs12/p12exp.c:463,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12exp.c:465,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12exp.c:474,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - luggage
    - name
    argTypes:
    - SEC_PKCS12Baggage*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 479
    functionName: sec_pkcs12_get_espvk_by_name
    functionSourceFile: /src/nss/lib/pkcs12/p12exp.c
    functionUses: 0
    functionsReached:
    - SECITEM_CompareItem
    - SECITEM_DupItem
    - PORT_SetError
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SEC_PKCS12ESPVKItem
    signature: "SEC_PKCS12ESPVKItem *\nsec_pkcs12_get_espvk_by_name(SEC_PKCS12Baggage
      *luggage,\n                             SECItem *name)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sec_pkcs12_find_object
      Src: /src/nss/lib/pkcs12/p12exp.c:504,1
    - Dst: sec_pkcs12_find_object
      Src: /src/nss/lib/pkcs12/p12exp.c:509,1
    - Dst: sec_pkcs12_add_thumbprint
      Src: /src/nss/lib/pkcs12/p12exp.c:514,1
    - Dst: sec_pkcs12_get_espvk_by_name
      Src: /src/nss/lib/pkcs12/p12exp.c:522,1
    - Dst: sec_pkcs12_add_thumbprint
      Src: /src/nss/lib/pkcs12/p12exp.c:525,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 4
    argNames:
    - nicknames
    - ref_certs
    - safe
    - baggage
    argTypes:
    - SECItem**
    - CERTCertificate**
    - SEC_PKCS12SafeContents*
    - SEC_PKCS12Baggage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 484
    functionDepth: 1
    functionLinenumber: 484
    functionLinenumberEnd: 540
    functionName: sec_pkcs12_propagate_thumbprints
    functionSourceFile: /src/nss/lib/pkcs12/p12exp.c
    functionUses: 0
    functionsReached:
    - sec_pkcs12_add_thumbprint
    - sec_pkcs12_find_object
    - sec_pkcs12_get_espvk_by_name
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sec_pkcs12_propagate_thumbprints(SECItem **nicknames,\n
      \                                CERTCertificate **ref_certs,\n                                 SEC_PKCS12SafeContents
      *safe,\n                                 SEC_PKCS12Baggage *baggage)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/pkcs12/p12exp.c:553,1
    - Dst: PORT_ArenaGrow
      Src: /src/nss/lib/pkcs12/p12exp.c:558,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs12/p12exp.c:564,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12exp.c:570,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/pkcs12/p12exp.c:578,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs12/p12exp.c:582,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - safe
    - bag
    argTypes:
    - SEC_PKCS12SafeContents*
    - SEC_PKCS12SafeBag*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 584
    functionName: sec_pkcs12_append_safe_bag
    functionSourceFile: /src/nss/lib/pkcs12/p12exp.c
    functionUses: 0
    functionsReached:
    - PORT_ArenaZAlloc
    - PORT_ArenaGrow
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - PORT_SetError
    - PORT_ArenaUnmark
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sec_pkcs12_append_safe_bag(SEC_PKCS12SafeContents *safe,\n
      \                          SEC_PKCS12SafeBag *bag)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/pkcs12/p12exp.c:608,1
    - Dst: sec_pkcs12_get_cert
      Src: /src/nss/lib/pkcs12/p12exp.c:610,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs12/p12exp.c:612,1
    - Dst: PORT_ArenaGrow
      Src: /src/nss/lib/pkcs12/p12exp.c:618,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs12/p12exp.c:624,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12exp.c:630,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/pkcs12/p12exp.c:638,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs12/p12exp.c:642,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 4
    argNames:
    - arena
    - safebag
    - cert
    - nickname
    argTypes:
    - PLArenaPool*
    - SEC_PKCS12SafeBag*
    - CERTCertificate*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 587
    functionDepth: 2
    functionLinenumber: 587
    functionLinenumberEnd: 644
    functionName: sec_pkcs12_append_cert_to_bag
    functionSourceFile: /src/nss/lib/pkcs12/p12exp.c
    functionUses: 0
    functionsReached:
    - PORT_ArenaZAlloc
    - PORT_ArenaGrow
    - PORT_ArenaRelease
    - sec_pkcs12_get_cert
    - PORT_ArenaMark
    - PORT_SetError
    - PORT_ArenaUnmark
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sec_pkcs12_append_cert_to_bag(PLArenaPool *arena,\n                              SEC_PKCS12SafeBag
      *safebag,\n                              CERTCertificate *cert,\n                              SECItem
      *nickname)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/pkcs12/p12exp.c:663,1
    - Dst: PORT_ArenaGrow
      Src: /src/nss/lib/pkcs12/p12exp.c:668,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs12/p12exp.c:674,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12exp.c:680,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/pkcs12/p12exp.c:688,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs12/p12exp.c:693,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 2
    argNames:
    - safebag
    - pk
    argTypes:
    - SEC_PKCS12SafeBag*
    - SEC_PKCS12PrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 695
    functionName: sec_pkcs12_append_key_to_bag
    functionSourceFile: /src/nss/lib/pkcs12/p12exp.c
    functionUses: 0
    functionsReached:
    - PORT_ArenaZAlloc
    - PORT_ArenaGrow
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - PORT_SetError
    - PORT_ArenaUnmark
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sec_pkcs12_append_key_to_bag(SEC_PKCS12SafeBag *safebag,\n
      \                            SEC_PKCS12PrivateKey *pk)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/pkcs12/p12exp.c:708,1
    - Dst: PORT_ArenaGrow
      Src: /src/nss/lib/pkcs12/p12exp.c:712,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12exp.c:717,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/pkcs12/p12exp.c:725,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs12/p12exp.c:729,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - bag
    - u_bag
    argTypes:
    - SEC_PKCS12BaggageItem*
    - SEC_PKCS12SafeBag*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 698
    functionDepth: 0
    functionLinenumber: 698
    functionLinenumberEnd: 731
    functionName: sec_pkcs12_append_unshrouded_bag
    functionSourceFile: /src/nss/lib/pkcs12/p12exp.c
    functionUses: 0
    functionsReached:
    - PORT_ArenaGrow
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - PORT_SetError
    - PORT_ArenaUnmark
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sec_pkcs12_append_unshrouded_bag(SEC_PKCS12BaggageItem *bag,\n
      \                                SEC_PKCS12SafeBag *u_bag)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/pkcs12/p12exp.c:778,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12exp.c:780,1
    - Dst: sec_pkcs12_create_safe_contents
      Src: /src/nss/lib/pkcs12/p12exp.c:785,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12exp.c:787,1
    - Dst: sec_pkcs12_create_safe_bag
      Src: /src/nss/lib/pkcs12/p12exp.c:792,1
    - Dst: sec_pkcs12_create_safe_bag
      Src: /src/nss/lib/pkcs12/p12exp.c:800,1
    - Dst: sec_pkcs12_create_baggage
      Src: /src/nss/lib/pkcs12/p12exp.c:809,1
    - Dst: sec_pkcs12_create_external_bag
      Src: /src/nss/lib/pkcs12/p12exp.c:814,1
    - Dst: sec_pkcs12_append_cert_to_bag
      Src: /src/nss/lib/pkcs12/p12exp.c:822,1
    - Dst: sec_pkcs12_get_shrouded_key
      Src: /src/nss/lib/pkcs12/p12exp.c:834,1
    - Dst: sec_pkcs12_append_shrouded_key
      Src: /src/nss/lib/pkcs12/p12exp.c:841,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/pkcs12/p12exp.c:842,1
    - Dst: sec_pkcs12_get_private_key
      Src: /src/nss/lib/pkcs12/p12exp.c:848,1
    - Dst: sec_pkcs12_append_key_to_bag
      Src: /src/nss/lib/pkcs12/p12exp.c:851,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/pkcs12/p12exp.c:852,1
    - Dst: sec_pkcs12_append_safe_bag
      Src: /src/nss/lib/pkcs12/p12exp.c:880,1
    - Dst: sec_pkcs12_append_unshrouded_bag
      Src: /src/nss/lib/pkcs12/p12exp.c:882,1
    - Dst: sec_pkcs12_append_safe_bag
      Src: /src/nss/lib/pkcs12/p12exp.c:890,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pkcs12/p12exp.c:906,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 112
    argCount: 10
    argNames:
    - nicknames
    - ref_certs
    - unencryptedCerts
    - rSafe
    - rBaggage
    - shroud_keys
    - shroud_alg
    - pwitem
    - unicodeFn
    - wincx
    argTypes:
    - SECItem**
    - CERTCertificate**
    - PRBool
    - SEC_PKCS12SafeContents**
    - SEC_PKCS12Baggage**
    - PRBool
    - SECOidTag
    - SECItem*
    - PKCS12UnicodeConvertFunction
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 744
    functionDepth: 9
    functionLinenumber: 744
    functionLinenumberEnd: 916
    functionName: sec_pkcs12_package_certs_and_keys
    functionSourceFile: /src/nss/lib/pkcs12/p12exp.c
    functionUses: 0
    functionsReached:
    - sec_pkcs12_append_cert_to_bag
    - sec_pkcs12_create_baggage
    - sec_pkcs12_get_private_key
    - sec_pkcs12_append_unshrouded_bag
    - PORT_NewArena
    - sec_pkcs12_get_shrouded_key
    - sec_pkcs12_append_key_to_bag
    - sec_pkcs12_append_safe_bag
    - PORT_FreeArena
    - sec_pkcs12_create_safe_contents
    - SECITEM_CopyItem
    - PORT_SetError
    - sec_pkcs12_append_shrouded_key
    - sec_pkcs12_create_external_bag
    - sec_pkcs12_create_safe_bag
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sec_pkcs12_package_certs_and_keys(SECItem **nicknames,\n
      \                                 CERTCertificate **ref_certs,\n                                  PRBool
      unencryptedCerts,\n                                  SEC_PKCS12SafeContents
      **rSafe,\n                                  SEC_PKCS12Baggage **rBaggage,\n
      \                                 PRBool shroud_keys,\n                                  SECOidTag
      shroud_alg,\n                                  SECItem *pwitem,\n                                  PKCS12UnicodeConvertFunction
      unicodeFn,\n                                  void *wincx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/pkcs12/p12exp.c:938,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12exp.c:940,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs12/p12exp.c:944,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/pkcs12/p12exp.c:946,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/pkcs12/p12exp.c:949,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12exp.c:951,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12exp.c:954,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pkcs12/p12exp.c:957,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - safe
    argTypes:
    - SEC_PKCS12SafeContents*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 921
    functionDepth: 0
    functionLinenumber: 921
    functionLinenumberEnd: 960
    functionName: sec_pkcs12_encode_safe_contents
    functionSourceFile: /src/nss/lib/pkcs12/p12exp.c
    functionUses: 0
    functionsReached:
    - SECITEM_DupItem
    - SEC_ASN1EncodeItem
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - PORT_FreeArena
    - PORT_SetError
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      sec_pkcs12_encode_safe_contents(SEC_PKCS12SafeContents *safe)'
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/pkcs12/p12exp.c:1000,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12exp.c:1002,1
    - Dst: sec_pkcs12_new_asafe
      Src: /src/nss/lib/pkcs12/p12exp.c:1007,1
    - Dst: SEC_ASN1EncodeInteger
      Src: /src/nss/lib/pkcs12/p12exp.c:1011,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12exp.c:1014,1
    - Dst: sec_pkcs12_generate_salt
      Src: /src/nss/lib/pkcs12/p12exp.c:1020,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/pkcs12/p12exp.c:1022,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pkcs12/p12exp.c:1027,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12exp.c:1028,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12exp.c:1034,1
    - Dst: SEC_PKCS7CreateEncryptedData
      Src: /src/nss/lib/pkcs12/p12exp.c:1041,1
    - Dst: sec_pkcs12_encode_safe_contents
      Src: /src/nss/lib/pkcs12/p12exp.c:1046,1
    - Dst: SEC_PKCS7SetContent
      Src: /src/nss/lib/pkcs12/p12exp.c:1049,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pkcs12/p12exp.c:1050,1
    - Dst: sec_pkcs12_create_virtual_password
      Src: /src/nss/lib/pkcs12/p12exp.c:1053,1
    - Dst: SEC_PKCS7EncryptContents
      Src: /src/nss/lib/pkcs12/p12exp.c:1056,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pkcs12/p12exp.c:1058,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12exp.c:1061,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12exp.c:1064,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12exp.c:1070,1
    - Dst: SEC_PKCS7SetContent
      Src: /src/nss/lib/pkcs12/p12exp.c:1074,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12exp.c:1076,1
    - Dst: SEC_PKCS7DestroyContentInfo
      Src: /src/nss/lib/pkcs12/p12exp.c:1081,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pkcs12/p12exp.c:1094,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs12/p12exp.c:1098,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/pkcs12/p12exp.c:1100,1
    - Dst: SEC_PKCS7CreateData
      Src: /src/nss/lib/pkcs12/p12exp.c:1103,1
    - Dst: SEC_PKCS7SetContent
      Src: /src/nss/lib/pkcs12/p12exp.c:1105,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12exp.c:1109,1
    - Dst: SEC_PKCS7DestroyContentInfo
      Src: /src/nss/lib/pkcs12/p12exp.c:1110,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12exp.c:1115,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pkcs12/p12exp.c:1122,1
    - Dst: SEC_PKCS7DestroyContentInfo
      Src: /src/nss/lib/pkcs12/p12exp.c:1124,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pkcs12/p12exp.c:1127,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 112
    argCount: 6
    argNames:
    - safe
    - baggage
    - algorithm
    - pwitem
    - unicodeFn
    - wincx
    argTypes:
    - SEC_PKCS12SafeContents*
    - SEC_PKCS12Baggage*
    - SECOidTag
    - SECItem*
    - PKCS12UnicodeConvertFunction
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 976
    functionDepth: 1
    functionLinenumber: 976
    functionLinenumberEnd: 1135
    functionName: sec_pkcs12_get_auth_safe
    functionSourceFile: /src/nss/lib/pkcs12/p12exp.c
    functionUses: 1
    functionsReached:
    - sec_pkcs12_create_virtual_password
    - SEC_PKCS7CreateData
    - SEC_PKCS7DestroyContentInfo
    - PORT_NewArena
    - PORT_Memcpy
    - PORT_ArenaZAlloc
    - sec_pkcs12_generate_salt
    - SEC_PKCS7EncryptContents
    - SEC_ASN1EncodeItem
    - PORT_FreeArena
    - SECITEM_CopyItem
    - PORT_SetError
    - SEC_PKCS7SetContent
    - SEC_ASN1EncodeInteger
    - SEC_PKCS7CreateEncryptedData
    - sec_pkcs12_encode_safe_contents
    - SECITEM_ZfreeItem
    - sec_pkcs12_new_asafe
    linkageType: ''
    returnType: SEC_PKCS7ContentInfo
    signature: "SEC_PKCS7ContentInfo *\nsec_pkcs12_get_auth_safe(SEC_PKCS12SafeContents
      *safe,\n                         SEC_PKCS12Baggage *baggage,\n                         SECOidTag
      algorithm,\n                         SECItem *pwitem,\n                         PKCS12UnicodeConvertFunction
      unicodeFn,\n                         void *wincx)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: sec_pkcs12_new_pfx
      Src: /src/nss/lib/pkcs12/p12exp.c:1161,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12exp.c:1163,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pkcs12/p12exp.c:1167,1
    - Dst: sec_pkcs12_generate_salt
      Src: /src/nss/lib/pkcs12/p12exp.c:1171,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/pkcs12/p12exp.c:1173,1
    - Dst: sec_pkcs12_create_virtual_password
      Src: /src/nss/lib/pkcs12/p12exp.c:1176,1
    - Dst: sec_pkcs12_generate_key_from_password
      Src: /src/nss/lib/pkcs12/p12exp.c:1182,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pkcs12/p12exp.c:1184,1
    - Dst: SEC_PKCS7GetContent
      Src: /src/nss/lib/pkcs12/p12exp.c:1188,1
    - Dst: sec_pkcs12_generate_mac
      Src: /src/nss/lib/pkcs12/p12exp.c:1192,1
    - Dst: SGN_CreateDigestInfo
      Src: /src/nss/lib/pkcs12/p12exp.c:1194,1
    - Dst: SGN_CopyDigestInfo
      Src: /src/nss/lib/pkcs12/p12exp.c:1197,1
    - Dst: SGN_DestroyDigestInfo
      Src: /src/nss/lib/pkcs12/p12exp.c:1199,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12exp.c:1201,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pkcs12/p12exp.c:1203,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12exp.c:1209,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pkcs12/p12exp.c:1214,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pkcs12/p12exp.c:1216,1
    - Dst: SEC_PKCS12DestroyPFX
      Src: /src/nss/lib/pkcs12/p12exp.c:1221,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 4
    argNames:
    - cinfo
    - do_mac
    - pwitem
    - unicodeFn
    argTypes:
    - SEC_PKCS7ContentInfo*
    - PRBool
    - SECItem*
    - PKCS12UnicodeConvertFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1226
      start: 1140
    functionDepth: 1
    functionLinenumber: 1140
    functionLinenumberEnd: 1226
    functionName: sec_pkcs12_get_pfx
    functionSourceFile: /src/nss/lib/pkcs12/p12exp.c
    functionUses: 1
    functionsReached:
    - sec_pkcs12_create_virtual_password
    - PORT_Memcpy
    - sec_pkcs12_generate_mac
    - sec_pkcs12_generate_salt
    - SGN_DestroyDigestInfo
    - SGN_CopyDigestInfo
    - sec_pkcs12_new_pfx
    - SECITEM_CopyItem
    - SGN_CreateDigestInfo
    - PORT_SetError
    - sec_pkcs12_generate_key_from_password
    - SECITEM_ZfreeItem
    - SEC_PKCS12DestroyPFX
    - SEC_PKCS7GetContent
    linkageType: ''
    returnType: SEC_PKCS12PFXItem
    signature: "SEC_PKCS12PFXItem *\nsec_pkcs12_get_pfx(SEC_PKCS7ContentInfo *cinfo,\n
      \                  PRBool do_mac,\n                   SECItem *pwitem, PKCS12UnicodeConvertFunction
      unicodeFn)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/pkcs12/p12exp.c:1239,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12exp.c:1241,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/pkcs12/p12exp.c:1245,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12exp.c:1247,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pkcs12/p12exp.c:1248,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - pfx
    argTypes:
    - SEC_PKCS12PFXItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1253
      start: 1229
    functionDepth: 0
    functionLinenumber: 1229
    functionLinenumberEnd: 1253
    functionName: sec_pkcs12_encode_pfx
    functionSourceFile: /src/nss/lib/pkcs12/p12exp.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PORT_ZAlloc
    - SEC_ASN1EncodeItem
    - SECITEM_ZfreeItem
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      sec_pkcs12_encode_pfx(SEC_PKCS12PFXItem *pfx)'
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: SEC_PKCS12IsEncryptionAllowed
      Src: /src/nss/lib/pkcs12/p12exp.c:1276,1
    - Dst: SEC_PKCS12GetPreferredEncryptionAlgorithm
      Src: /src/nss/lib/pkcs12/p12exp.c:1278,1
    - Dst: SEC_PKCS12GetStrongestAllowedAlgorithm
      Src: /src/nss/lib/pkcs12/p12exp.c:1280,1
    - Dst: PK11_IsFIPS
      Src: /src/nss/lib/pkcs12/p12exp.c:1302,1
    - Dst: sec_pkcs12_convert_nickname_list
      Src: /src/nss/lib/pkcs12/p12exp.c:1317,1
    - Dst: sec_pkcs12_package_certs_and_keys
      Src: /src/nss/lib/pkcs12/p12exp.c:1320,1
    - Dst: sec_pkcs12_propagate_thumbprints
      Src: /src/nss/lib/pkcs12/p12exp.c:1329,1
    - Dst: sec_pkcs12_get_auth_safe
      Src: /src/nss/lib/pkcs12/p12exp.c:1332,1
    - Dst: sec_pkcs12_destroy_cert_content_infos
      Src: /src/nss/lib/pkcs12/p12exp.c:1335,1
    - Dst: sec_pkcs12_get_pfx
      Src: /src/nss/lib/pkcs12/p12exp.c:1339,1
    - Dst: sec_pkcs12_encode_pfx
      Src: /src/nss/lib/pkcs12/p12exp.c:1341,1
    - Dst: SEC_PKCS12DestroyPFX
      Src: /src/nss/lib/pkcs12/p12exp.c:1342,1
    - Dst: SEC_PKCS7DestroyContentInfo
      Src: /src/nss/lib/pkcs12/p12exp.c:1344,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pkcs12/p12exp.c:1348,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pkcs12/p12exp.c:1352,1
    - Dst: sec_pkcs12_destroy_nickname_list
      Src: /src/nss/lib/pkcs12/p12exp.c:1358,1
    - Dst: sec_pkcs12_destroy_certificate_list
      Src: /src/nss/lib/pkcs12/p12exp.c:1362,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pkcs12/p12exp.c:1366,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 69
    argCount: 7
    argNames:
    - nicknames
    - ref_certs
    - shroud_keys
    - pbef
    - pbearg
    - unicodeFn
    - wincx
    argTypes:
    - char**
    - CERTCertificate**
    - PRBool
    - SEC_PKCS5GetPBEPassword
    - void*
    - PKCS12UnicodeConvertFunction
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1374
      start: 1255
    functionDepth: 10
    functionLinenumber: 1255
    functionLinenumberEnd: 1374
    functionName: SEC_PKCS12GetPFX
    functionSourceFile: /src/nss/lib/pkcs12/p12exp.c
    functionUses: 0
    functionsReached:
    - sec_pkcs12_propagate_thumbprints
    - SEC_PKCS12GetStrongestAllowedAlgorithm
    - sec_pkcs12_package_certs_and_keys
    - sec_pkcs12_get_auth_safe
    - SEC_PKCS7DestroyContentInfo
    - sec_pkcs12_destroy_cert_content_infos
    - PORT_FreeArena
    - sec_pkcs12_destroy_certificate_list
    - SEC_PKCS12IsEncryptionAllowed
    - PK11_IsFIPS
    - sec_pkcs12_get_pfx
    - sec_pkcs12_convert_nickname_list
    - sec_pkcs12_destroy_nickname_list
    - sec_pkcs12_encode_pfx
    - SECITEM_ZfreeItem
    - SEC_PKCS12DestroyPFX
    - SEC_PKCS12GetPreferredEncryptionAlgorithm
    linkageType: ''
    returnType: SECItem
    signature: "SECItem *\nSEC_PKCS12GetPFX(char **nicknames,\n                 CERTCertificate
      **ref_certs,\n                 PRBool shroud_keys,\n                 SEC_PKCS5GetPBEPassword
      pbef,\n                 void *pbearg,\n                 PKCS12UnicodeConvertFunction
      unicodeFn,\n                 void *wincx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HASH_GetHMACOidTagByHashOidTag
      Src: /src/nss/lib/pkcs12/p12local.c:29,1
    - Dst: PK11_AlgtagToMechanism
      Src: /src/nss/lib/pkcs12/p12local.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - algtag
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 31
    functionName: sec_pkcs12_algtag_to_mech
    functionSourceFile: /src/nss/lib/pkcs12/p12local.c
    functionUses: 0
    functionsReached:
    - HASH_GetHMACOidTagByHashOidTag
    - PK11_AlgtagToMechanism
    linkageType: ''
    returnType: CK_MECHANISM_TYPE
    signature: CK_MECHANISM_TYPE sec_pkcs12_algtag_to_mech(SECOidTag algtag)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 1
    argNames:
    - algtag
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 62
    functionName: sec_pkcs12_algtag_to_keygen_mech
    functionSourceFile: /src/nss/lib/pkcs12/p12local.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_MECHANISM_TYPE
    signature: CK_MECHANISM_TYPE sec_pkcs12_algtag_to_keygen_mech(SECOidTag algtag)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/pkcs12/p12local.c:74,1
    - Dst: SEC_PKCS5GetCryptoAlgorithm
      Src: /src/nss/lib/pkcs12/p12local.c:82,1
    - Dst: HASH_GetHashOidTagByHMACOidTag
      Src: /src/nss/lib/pkcs12/p12local.c:84,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12local.c:85,1
    - Dst: SEC_PKCS12IntegrityHashAllowed
      Src: /src/nss/lib/pkcs12/p12local.c:88,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12local.c:89,1
    - Dst: SEC_PKCS5GetKeyLength
      Src: /src/nss/lib/pkcs12/p12local.c:97,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12local.c:99,1
    - Dst: PK11_AlgtagToMechanism
      Src: /src/nss/lib/pkcs12/p12local.c:102,1
    - Dst: sec_pkcs12_convert_item_to_unicode
      Src: /src/nss/lib/pkcs12/p12local.c:104,1
    - Dst: PK11_PBEKeyGen
      Src: /src/nss/lib/pkcs12/p12local.c:108,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pkcs12/p12local.c:109,1
    - Dst: SEC_PKCS12IntegrityHashAllowed
      Src: /src/nss/lib/pkcs12/p12local.c:114,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12local.c:115,1
    - Dst: sec_pkcs12_algtag_to_keygen_mech
      Src: /src/nss/lib/pkcs12/p12local.c:118,1
    - Dst: sec_pkcs12_algtag_to_mech
      Src: /src/nss/lib/pkcs12/p12local.c:119,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12local.c:121,1
    - Dst: DER_GetInteger
      Src: /src/nss/lib/pkcs12/p12local.c:125,1
    - Dst: PK11_CreatePBEParams
      Src: /src/nss/lib/pkcs12/p12local.c:130,1
    - Dst: PK11_KeyGen
      Src: /src/nss/lib/pkcs12/p12local.c:135,1
    - Dst: PK11_DestroyPBEParams
      Src: /src/nss/lib/pkcs12/p12local.c:136,1
    - Dst: PK11_DestroyPBEParams
      Src: /src/nss/lib/pkcs12/p12local.c:144,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 58
    argCount: 6
    argNames:
    - slot
    - macData
    - pwitem
    - hmacMech
    - isDecrypt
    - pwarg
    argTypes:
    - PK11SlotInfo*
    - sec_PKCS12MacData*
    - SECItem*
    - CK_MECHANISM_TYPE*
    - PRBool
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 64
    functionDepth: 11
    functionLinenumber: 64
    functionLinenumberEnd: 147
    functionName: sec_pkcs12_integrity_key
    functionSourceFile: /src/nss/lib/pkcs12/p12local.c
    functionUses: 1
    functionsReached:
    - SECITEM_ZfreeItem
    - SEC_PKCS5GetKeyLength
    - SECOID_GetAlgorithmTag
    - PK11_PBEKeyGen
    - SEC_PKCS5GetCryptoAlgorithm
    - PK11_AlgtagToMechanism
    - PORT_SetError
    - sec_pkcs12_convert_item_to_unicode
    - sec_pkcs12_algtag_to_keygen_mech
    - PK11_DestroyPBEParams
    - sec_pkcs12_algtag_to_mech
    - PK11_KeyGen
    - PK11_CreatePBEParams
    - HASH_GetHashOidTagByHMACOidTag
    - DER_GetInteger
    - SEC_PKCS12IntegrityHashAllowed
    linkageType: ''
    returnType: PK11SymKey
    signature: "PK11SymKey *\nsec_pkcs12_integrity_key(PK11SlotInfo *slot, sec_PKCS12MacData
      *macData,\n                         SECItem *pwitem, CK_MECHANISM_TYPE *hmacMech,\n
      \                        PRBool isDecrypt, void *pwarg)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOID
      Src: /src/nss/lib/pkcs12/p12local.c:166,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/pkcs12/p12local.c:172,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - src_or_dest
    - encoding
    argTypes:
    - void*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 185
    functionName: sec_pkcs12_choose_bag_type_old
    functionSourceFile: /src/nss/lib/pkcs12/p12local.c
    functionUses: 0
    functionsReached:
    - SEC_ASN1_GET
    - SECOID_FindOID
    linkageType: ''
    returnType: SEC_ASN1Template
    signature: 'SEC_ASN1Template *

      sec_pkcs12_choose_bag_type_old(void *src_or_dest, PRBool encoding)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOID
      Src: /src/nss/lib/pkcs12/p12local.c:202,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/pkcs12/p12local.c:208,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - src_or_dest
    - encoding
    argTypes:
    - void*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 221
    functionName: sec_pkcs12_choose_bag_type
    functionSourceFile: /src/nss/lib/pkcs12/p12local.c
    functionUses: 0
    functionsReached:
    - SEC_ASN1_GET
    - SECOID_FindOID
    linkageType: ''
    returnType: SEC_ASN1Template
    signature: 'SEC_ASN1Template *

      sec_pkcs12_choose_bag_type(void *src_or_dest, PRBool encoding)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOID
      Src: /src/nss/lib/pkcs12/p12local.c:238,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/pkcs12/p12local.c:244,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - src_or_dest
    - encoding
    argTypes:
    - void*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 254
    functionName: sec_pkcs12_choose_cert_crl_type_old
    functionSourceFile: /src/nss/lib/pkcs12/p12local.c
    functionUses: 0
    functionsReached:
    - SEC_ASN1_GET
    - SECOID_FindOID
    linkageType: ''
    returnType: SEC_ASN1Template
    signature: 'SEC_ASN1Template *

      sec_pkcs12_choose_cert_crl_type_old(void *src_or_dest, PRBool encoding)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOID
      Src: /src/nss/lib/pkcs12/p12local.c:270,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/pkcs12/p12local.c:276,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - src_or_dest
    - encoding
    argTypes:
    - void*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 286
    functionName: sec_pkcs12_choose_cert_crl_type
    functionSourceFile: /src/nss/lib/pkcs12/p12local.c
    functionUses: 0
    functionsReached:
    - SEC_ASN1_GET
    - SECOID_FindOID
    linkageType: ''
    returnType: SEC_ASN1Template
    signature: 'SEC_ASN1Template *

      sec_pkcs12_choose_cert_crl_type(void *src_or_dest, PRBool encoding)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOID
      Src: /src/nss/lib/pkcs12/p12local.c:303,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/pkcs12/p12local.c:309,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/pkcs12/p12local.c:313,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - src_or_dest
    - encoding
    argTypes:
    - void*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 317
    functionName: sec_pkcs12_choose_shroud_type
    functionSourceFile: /src/nss/lib/pkcs12/p12local.c
    functionUses: 0
    functionsReached:
    - SEC_ASN1_GET
    - SECOID_FindOID
    linkageType: ''
    returnType: SEC_ASN1Template
    signature: 'SEC_ASN1Template *

      sec_pkcs12_choose_shroud_type(void *src_or_dest, PRBool encoding)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/pkcs12/p12local.c:328,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12local.c:330,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/pkcs12/p12local.c:333,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12local.c:337,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pkcs12/p12local.c:338,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/lib/pkcs12/p12local.c:342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 323
    functionDepth: 9
    functionLinenumber: 323
    functionLinenumberEnd: 345
    functionName: sec_pkcs12_generate_salt
    functionSourceFile: /src/nss/lib/pkcs12/p12local.c
    functionUses: 2
    functionsReached:
    - PK11_GenerateRandom
    - PORT_SetError
    - PORT_ZAlloc
    - SECITEM_ZfreeItem
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      sec_pkcs12_generate_salt(void)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/pkcs12/p12local.c:366,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12local.c:368,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs12/p12local.c:372,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12local.c:374,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs12/p12local.c:378,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12local.c:381,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pkcs12/p12local.c:385,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pkcs12/p12local.c:388,1
    - Dst: PK11_HashBuf
      Src: /src/nss/lib/pkcs12/p12local.c:391,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12local.c:394,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/pkcs12/p12local.c:402,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12local.c:404,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/pkcs12/p12local.c:407,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12local.c:409,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pkcs12/p12local.c:413,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pkcs12/p12local.c:420,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pkcs12/p12local.c:424,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pkcs12/p12local.c:426,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 64
    argCount: 3
    argNames:
    - algorithm
    - salt
    - password
    argTypes:
    - SECOidTag
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 350
    functionDepth: 10
    functionLinenumber: 350
    functionLinenumberEnd: 429
    functionName: sec_pkcs12_generate_key_from_password
    functionSourceFile: /src/nss/lib/pkcs12/p12local.c
    functionUses: 2
    functionsReached:
    - PORT_Memcpy
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - PORT_FreeArena
    - PORT_ZAlloc
    - PK11_HashBuf
    - PORT_SetError
    - SECITEM_ZfreeItem
    linkageType: ''
    returnType: SECItem
    signature: "SECItem *\nsec_pkcs12_generate_key_from_password(SECOidTag algorithm,\n
      \                                     SECItem *salt,\n                                      SECItem
      *password)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/pkcs12/p12local.c:451,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/pkcs12/p12local.c:454,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/pkcs12/p12local.c:460,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs12/p12local.c:464,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs12/p12local.c:469,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs12/p12local.c:474,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pkcs12/p12local.c:484,1
    - Dst: PK11_HashBuf
      Src: /src/nss/lib/pkcs12/p12local.c:485,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pkcs12/p12local.c:492,1
    - Dst: PK11_HashBuf
      Src: /src/nss/lib/pkcs12/p12local.c:493,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pkcs12/p12local.c:497,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pkcs12/p12local.c:502,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pkcs12/p12local.c:504,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 51
    argCount: 2
    argNames:
    - key
    - msg
    argTypes:
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 437
    functionDepth: 10
    functionLinenumber: 437
    functionLinenumberEnd: 506
    functionName: sec_pkcs12_generate_old_mac
    functionSourceFile: /src/nss/lib/pkcs12/p12local.c
    functionUses: 0
    functionsReached:
    - PORT_Memcpy
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - PORT_FreeArena
    - PORT_ZAlloc
    - PK11_HashBuf
    - SECITEM_ZfreeItem
    linkageType: ''
    returnType: SECItem
    signature: "SECItem *\nsec_pkcs12_generate_old_mac(SECItem *key,\n                            SECItem
      *msg)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sec_pkcs12_generate_old_mac
      Src: /src/nss/lib/pkcs12/p12local.c:529,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/pkcs12/p12local.c:533,1
    - Dst: PK11_CreateContextByRawKey
      Src: /src/nss/lib/pkcs12/p12local.c:538,1
    - Dst: PK11_DigestBegin
      Src: /src/nss/lib/pkcs12/p12local.c:544,1
    - Dst: PK11_DigestOp
      Src: /src/nss/lib/pkcs12/p12local.c:549,1
    - Dst: PK11_DigestFinal
      Src: /src/nss/lib/pkcs12/p12local.c:554,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/pkcs12/p12local.c:559,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pkcs12/p12local.c:565,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/pkcs12/p12local.c:568,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 3
    argNames:
    - key
    - msg
    - old_method
    argTypes:
    - SECItem*
    - SECItem*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 514
    functionDepth: 11
    functionLinenumber: 514
    functionLinenumberEnd: 573
    functionName: sec_pkcs12_generate_mac
    functionSourceFile: /src/nss/lib/pkcs12/p12local.c
    functionUses: 2
    functionsReached:
    - PK11_DestroyContext
    - PK11_DigestOp
    - PK11_CreateContextByRawKey
    - SECITEM_AllocItem
    - PK11_DigestBegin
    - sec_pkcs12_generate_old_mac
    - PK11_DigestFinal
    - SECITEM_ZfreeItem
    linkageType: ''
    returnType: SECItem
    signature: "SECItem *\nsec_pkcs12_generate_mac(SECItem *key,\n                        SECItem
      *msg,\n                        PRBool old_method)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/pkcs12/p12local.c:590,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs12/p12local.c:595,1
    - Dst: PK11_HashBuf
      Src: /src/nss/lib/pkcs12/p12local.c:601,1
    - Dst: SGN_CreateDigestInfo
      Src: /src/nss/lib/pkcs12/p12local.c:604,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12local.c:608,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12local.c:611,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pkcs12/p12local.c:614,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - der_cert
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 579
    functionDepth: 10
    functionLinenumber: 579
    functionLinenumberEnd: 617
    functionName: sec_pkcs12_compute_thumbprint
    functionSourceFile: /src/nss/lib/pkcs12/p12local.c
    functionUses: 2
    functionsReached:
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - PORT_FreeArena
    - PK11_HashBuf
    - SGN_CreateDigestInfo
    - PORT_SetError
    linkageType: ''
    returnType: SGNDigestInfo
    signature: 'SGNDigestInfo *

      sec_pkcs12_compute_thumbprint(SECItem *der_cert)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/pkcs12/p12local.c:633,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/pkcs12/p12local.c:639,1
    - Dst: PORT_UCS2_ASCIIConversion
      Src: /src/nss/lib/pkcs12/p12local.c:641,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pkcs12/p12local.c:643,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/pkcs12/p12local.c:648,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/pkcs12/p12local.c:655,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pkcs12/p12local.c:657,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pkcs12/p12local.c:661,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pkcs12/p12local.c:662,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pkcs12/p12local.c:664,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12local.c:669,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pkcs12/p12local.c:670,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 3
    argNames:
    - password
    - salt
    - swap
    argTypes:
    - SECItem*
    - SECItem*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 672
    functionName: sec_pkcs12_create_virtual_password
    functionSourceFile: /src/nss/lib/pkcs12/p12local.c
    functionUses: 4
    functionsReached:
    - PORT_Alloc
    - PORT_Memcpy
    - PORT_Free
    - PORT_ZAlloc
    - PORT_SetError
    - PORT_UCS2_ASCIIConversion
    - SECITEM_ZfreeItem
    linkageType: ''
    returnType: SECItem
    signature: "SECItem *\nsec_pkcs12_create_virtual_password(SECItem *password, SECItem
      *salt,\n                                   PRBool swap)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/pkcs12/p12local.c:688,1
    - Dst: PORT_ArenaGrow
      Src: /src/nss/lib/pkcs12/p12local.c:692,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12local.c:697,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/pkcs12/p12local.c:705,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs12/p12local.c:709,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - bag
    - espvk
    argTypes:
    - SEC_PKCS12BaggageItem*
    - SEC_PKCS12ESPVKItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 678
    functionDepth: 0
    functionLinenumber: 678
    functionLinenumberEnd: 711
    functionName: sec_pkcs12_append_shrouded_key
    functionSourceFile: /src/nss/lib/pkcs12/p12local.c
    functionUses: 2
    functionsReached:
    - PORT_ArenaGrow
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - PORT_SetError
    - PORT_ArenaUnmark
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sec_pkcs12_append_shrouded_key(SEC_PKCS12BaggageItem *bag,\n
      \                              SEC_PKCS12ESPVKItem *espvk)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/pkcs12/p12local.c:741,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/pkcs12/p12local.c:745,1
    - Dst: SEC_PKCS7GetCertificateList
      Src: /src/nss/lib/pkcs12/p12local.c:756,1
    - Dst: sec_pkcs12_compute_thumbprint
      Src: /src/nss/lib/pkcs12/p12local.c:762,1
    - Dst: SGN_CompareDigestInfo
      Src: /src/nss/lib/pkcs12/p12local.c:764,1
    - Dst: SGN_DestroyDigestInfo
      Src: /src/nss/lib/pkcs12/p12local.c:765,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 49
    argCount: 3
    argNames:
    - certbag
    - nickname
    - thumbprint
    argTypes:
    - SEC_PKCS12CertAndCRLBag*
    - SECItem*
    - SGNDigestInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 717
    functionDepth: 11
    functionLinenumber: 717
    functionLinenumberEnd: 791
    functionName: sec_pkcs12_find_cert_in_certbag
    functionSourceFile: /src/nss/lib/pkcs12/p12local.c
    functionUses: 0
    functionsReached:
    - SECITEM_CompareItem
    - SGN_CompareDigestInfo
    - SGN_DestroyDigestInfo
    - SECOID_FindOIDTag
    - sec_pkcs12_compute_thumbprint
    - SEC_PKCS7GetCertificateList
    linkageType: ''
    returnType: SEC_PKCS12CertAndCRL
    signature: "SEC_PKCS12CertAndCRL *\nsec_pkcs12_find_cert_in_certbag(SEC_PKCS12CertAndCRLBag
      *certbag,\n                                SECItem *nickname, SGNDigestInfo
      *thumbprint)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/pkcs12/p12local.c:827,1
    - Dst: SGN_CompareDigestInfo
      Src: /src/nss/lib/pkcs12/p12local.c:840,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 43
    argCount: 3
    argNames:
    - keybag
    - nickname
    - thumbprint
    argTypes:
    - SEC_PKCS12PrivateKeyBag*
    - SECItem*
    - SGNDigestInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 797
    functionDepth: 0
    functionLinenumber: 797
    functionLinenumberEnd: 857
    functionName: sec_pkcs12_find_key_in_keybag
    functionSourceFile: /src/nss/lib/pkcs12/p12local.c
    functionUses: 0
    functionsReached:
    - SECITEM_CompareItem
    - SGN_CompareDigestInfo
    linkageType: ''
    returnType: SEC_PKCS12PrivateKey
    signature: "SEC_PKCS12PrivateKey *\nsec_pkcs12_find_key_in_keybag(SEC_PKCS12PrivateKeyBag
      *keybag,\n                              SECItem *nickname, SGNDigestInfo *thumbprint)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sec_pkcs12_find_cert_in_certbag
      Src: /src/nss/lib/pkcs12/p12local.c:893,1
    - Dst: sec_pkcs12_find_key_in_keybag
      Src: /src/nss/lib/pkcs12/p12local.c:906,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 7
    argNames:
    - safe
    - bag
    - objType
    - bagType
    - index
    - nickname
    - thumbprint
    argTypes:
    - SEC_PKCS12SafeContents*
    - SEC_PKCS12BaggageItem*
    - SECOidTag
    - SECOidTag
    - int
    - SECItem*
    - SGNDigestInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 869
    functionDepth: 12
    functionLinenumber: 869
    functionLinenumberEnd: 915
    functionName: sec_pkcs12_try_find
    functionSourceFile: /src/nss/lib/pkcs12/p12local.c
    functionUses: 0
    functionsReached:
    - sec_pkcs12_find_cert_in_certbag
    - sec_pkcs12_find_key_in_keybag
    linkageType: ''
    returnType: void
    signature: "void *\nsec_pkcs12_try_find(SEC_PKCS12SafeContents *safe,\n                    SEC_PKCS12BaggageItem
      *bag,\n                    SECOidTag objType, SECOidTag bagType, int index,\n
      \                   SECItem *nickname, SGNDigestInfo *thumbprint)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/pkcs12/p12local.c:947,1
    - Dst: sec_pkcs12_try_find
      Src: /src/nss/lib/pkcs12/p12local.c:948,1
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/pkcs12/p12local.c:965,1
    - Dst: sec_pkcs12_try_find
      Src: /src/nss/lib/pkcs12/p12local.c:966,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12local.c:978,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 33
    argCount: 5
    argNames:
    - safe
    - baggage
    - objType
    - nickname
    - thumbprint
    argTypes:
    - SEC_PKCS12SafeContents*
    - SEC_PKCS12Baggage*
    - SECOidTag
    - SECItem*
    - SGNDigestInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 929
    functionDepth: 13
    functionLinenumber: 929
    functionLinenumberEnd: 980
    functionName: sec_pkcs12_find_object
    functionSourceFile: /src/nss/lib/pkcs12/p12local.c
    functionUses: 2
    functionsReached:
    - SECOID_FindOIDTag
    - PORT_SetError
    - sec_pkcs12_try_find
    linkageType: ''
    returnType: void
    signature: "void *\nsec_pkcs12_find_object(SEC_PKCS12SafeContents *safe,\n                       SEC_PKCS12Baggage
      *baggage,\n                       SECOidTag objType,\n                       SECItem
      *nickname,\n                       SGNDigestInfo *thumbprint)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12local.c:998,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs12/p12local.c:1005,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/pkcs12/p12local.c:1007,1
    - Dst: PORT_UCS2_UTF8Conversion
      Src: /src/nss/lib/pkcs12/p12local.c:1016,1
    - Dst: PORT_UCS2_ASCIIConversion
      Src: /src/nss/lib/pkcs12/p12local.c:1024,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pkcs12/p12local.c:1030,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs12/p12local.c:1044,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs12/p12local.c:1050,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 54
    argCount: 6
    argNames:
    - arena
    - dest
    - src
    - zeroTerm
    - asciiConvert
    - toUnicode
    argTypes:
    - PLArenaPool*
    - SECItem*
    - SECItem*
    - PRBool
    - PRBool
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 989
    functionDepth: 0
    functionLinenumber: 989
    functionLinenumberEnd: 1069
    functionName: sec_pkcs12_convert_item_to_unicode
    functionSourceFile: /src/nss/lib/pkcs12/p12local.c
    functionUses: 5
    functionsReached:
    - PORT_Assert
    - PORT_ArenaZAlloc
    - PORT_Free
    - PORT_ZAlloc
    - PORT_SetError
    - PORT_UCS2_ASCIIConversion
    - PORT_UCS2_UTF8Conversion
    linkageType: ''
    returnType: PRBool
    signature: "PRBool sec_pkcs12_convert_item_to_unicode(PLArenaPool *arena, SECItem
      *dest,\n                                   SECItem *src, PRBool zeroTerm,\n
      \                                  PRBool asciiConvert, PRBool toUnicode)"
  - BBCount: 16
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - algorithm
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1096
      start: 1071
    functionDepth: 0
    functionLinenumber: 1071
    functionLinenumberEnd: 1096
    functionName: sec_pkcs12_is_pkcs12_pbe_algorithm
    functionSourceFile: /src/nss/lib/pkcs12/p12local.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool sec_pkcs12_is_pkcs12_pbe_algorithm(SECOidTag algorithm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sec_pkcs12_is_pkcs12_pbe_algorithm
      Src: /src/nss/lib/pkcs12/p12local.c:1111,1
    - Dst: sec_pkcs12_convert_item_to_unicode
      Src: /src/nss/lib/pkcs12/p12local.c:1112,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/pkcs12/p12local.c:1116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - arena
    - result
    - algorithm
    - pwitem
    argTypes:
    - PLArenaPool*
    - SECItem*
    - SECOidTag
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1105
    functionDepth: 1
    functionLinenumber: 1105
    functionLinenumberEnd: 1117
    functionName: sec_pkcs12_decode_password
    functionSourceFile: /src/nss/lib/pkcs12/p12local.c
    functionUses: 2
    functionsReached:
    - sec_pkcs12_is_pkcs12_pbe_algorithm
    - sec_pkcs12_convert_item_to_unicode
    - SECITEM_CopyItem
    linkageType: ''
    returnType: PRBool
    signature: "PRBool sec_pkcs12_decode_password(PLArenaPool *arena,\n                           SECItem
      *result,\n                           SECOidTag algorithm,\n                           const
      SECItem *pwitem)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sec_pkcs12_is_pkcs12_pbe_algorithm
      Src: /src/nss/lib/pkcs12/p12local.c:1131,1
    - Dst: sec_pkcs12_convert_item_to_unicode
      Src: /src/nss/lib/pkcs12/p12local.c:1132,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/pkcs12/p12local.c:1136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - arena
    - result
    - algorithm
    - pwitem
    argTypes:
    - PLArenaPool*
    - SECItem*
    - SECOidTag
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1137
      start: 1125
    functionDepth: 1
    functionLinenumber: 1125
    functionLinenumberEnd: 1137
    functionName: sec_pkcs12_encode_password
    functionSourceFile: /src/nss/lib/pkcs12/p12local.c
    functionUses: 0
    functionsReached:
    - sec_pkcs12_is_pkcs12_pbe_algorithm
    - sec_pkcs12_convert_item_to_unicode
    - SECITEM_CopyItem
    linkageType: ''
    returnType: PRBool
    signature: "PRBool sec_pkcs12_encode_password(PLArenaPool *arena,\n                           SECItem
      *result,\n                           SECOidTag algorithm,\n                           const
      SECItem *pwitem)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/pkcs12/p12e.c:186,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12e.c:188,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs12/p12e.c:192,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12e.c:195,1
    - Dst: PK11_ReferenceSlot
      Src: /src/nss/lib/pkcs12/p12e.c:206,1
    - Dst: PK11_GetInternalSlot
      Src: /src/nss/lib/pkcs12/p12e.c:206,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pkcs12/p12e.c:212,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 4
    argNames:
    - pwfn
    - pwfnarg
    - slot
    - wincx
    argTypes:
    - SECKEYGetPasswordKey
    - void*
    - PK11SlotInfo*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 178
    functionDepth: 4
    functionLinenumber: 178
    functionLinenumberEnd: 216
    functionName: SEC_PKCS12CreateExportContext
    functionSourceFile: /src/nss/lib/pkcs12/p12e.c
    functionUses: 1
    functionsReached:
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - PORT_FreeArena
    - PORT_SetError
    - PK11_GetInternalSlot
    - PK11_ReferenceSlot
    linkageType: ''
    returnType: SEC_PKCS12ExportContext
    signature: "SEC_PKCS12ExportContext *\nSEC_PKCS12CreateExportContext(SECKEYGetPasswordKey
      pwfn, void *pwfnarg,\n                              PK11SlotInfo *slot, void
      *wincx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs12/p12e.c:241,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12e.c:243,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/pkcs12/p12e.c:246,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12e.c:248,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - p12ctxt
    - pwitem
    - integAlg
    argTypes:
    - SEC_PKCS12ExportContext*
    - SECItem*
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 255
    functionName: SEC_PKCS12AddPasswordIntegrity
    functionSourceFile: /src/nss/lib/pkcs12/p12e.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    - PORT_ArenaZAlloc
    - SECITEM_CopyItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SEC_PKCS12AddPasswordIntegrity(SEC_PKCS12ExportContext *p12ctxt,\n
      \                              SECItem *pwitem, SECOidTag integAlg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - p12ctxt
    - cert
    - certDb
    - algorithm
    - keySize
    argTypes:
    - SEC_PKCS12ExportContext*
    - CERTCertificate*
    - CERTCertDBHandle*
    - SECOidTag
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 284
    functionName: SEC_PKCS12AddPublicKeyIntegrity
    functionSourceFile: /src/nss/lib/pkcs12/p12e.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SEC_PKCS12AddPublicKeyIntegrity(SEC_PKCS12ExportContext
      *p12ctxt,\n                                CERTCertificate *cert, CERTCertDBHandle
      *certDb,\n                                SECOidTag algorithm, int keySize)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/pkcs12/p12e.c:305,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs12/p12e.c:309,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs12/p12e.c:312,1
    - Dst: PORT_ArenaGrow
      Src: /src/nss/lib/pkcs12/p12e.c:316,1
    - Dst: PORT_ArenaGrow
      Src: /src/nss/lib/pkcs12/p12e.c:320,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12e.c:326,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs12/p12e.c:334,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12e.c:336,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/pkcs12/p12e.c:341,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs12/p12e.c:345,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 2
    argNames:
    - p12ctxt
    - info
    argTypes:
    - SEC_PKCS12ExportContext*
    - SEC_PKCS12SafeInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 347
    functionName: sec_pkcs12_append_safe_info
    functionSourceFile: /src/nss/lib/pkcs12/p12e.c
    functionUses: 0
    functionsReached:
    - PORT_ArenaZAlloc
    - PORT_ArenaGrow
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - PORT_SetError
    - PORT_ArenaUnmark
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sec_pkcs12_append_safe_info(SEC_PKCS12ExportContext *p12ctxt,
      SEC_PKCS12SafeInfo *info)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/pkcs12/p12e.c:371,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs12/p12e.c:372,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12e.c:375,1
    - Dst: SEC_PKCS5IsAlgorithmPBEAlgTag
      Src: /src/nss/lib/pkcs12/p12e.c:382,1
    - Dst: HASH_GetHashOidTagByHMACOidTag
      Src: /src/nss/lib/pkcs12/p12e.c:391,1
    - Dst: HASH_GetHMACOidTagByHashOidTag
      Src: /src/nss/lib/pkcs12/p12e.c:393,1
    - Dst: SEC_PKCS12CipherAllowed
      Src: /src/nss/lib/pkcs12/p12e.c:398,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12e.c:399,1
    - Dst: SEC_PKCS7CreateEncryptedDataWithPBEV2
      Src: /src/nss/lib/pkcs12/p12e.c:402,1
    - Dst: SEC_PKCS12CipherAllowed
      Src: /src/nss/lib/pkcs12/p12e.c:409,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12e.c:410,1
    - Dst: SEC_PKCS7CreateEncryptedData
      Src: /src/nss/lib/pkcs12/p12e.c:413,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12e.c:417,1
    - Dst: sec_pkcs12_encode_password
      Src: /src/nss/lib/pkcs12/p12e.c:422,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12e.c:423,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/pkcs12/p12e.c:426,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12e.c:427,1
    - Dst: PK11_ReferenceSlot
      Src: /src/nss/lib/pkcs12/p12e.c:432,1
    - Dst: PK11_GetInternalKeySlot
      Src: /src/nss/lib/pkcs12/p12e.c:434,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12e.c:436,1
    - Dst: SEC_PKCS7GetEncryptionAlgorithm
      Src: /src/nss/lib/pkcs12/p12e.c:441,1
    - Dst: PK11_PBEKeyGen
      Src: /src/nss/lib/pkcs12/p12e.c:442,1
    - Dst: sec_pkcs12_append_safe_info
      Src: /src/nss/lib/pkcs12/p12e.c:450,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pkcs12/p12e.c:455,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/pkcs12/p12e.c:457,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pkcs12/p12e.c:460,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pkcs12/p12e.c:466,1
    - Dst: SEC_PKCS7DestroyContentInfo
      Src: /src/nss/lib/pkcs12/p12e.c:469,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pkcs12/p12e.c:473,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs12/p12e.c:476,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 91
    argCount: 3
    argNames:
    - p12ctxt
    - pwitem
    - privAlg
    argTypes:
    - SEC_PKCS12ExportContext*
    - SECItem*
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 356
    functionDepth: 11
    functionLinenumber: 356
    functionLinenumberEnd: 478
    functionName: SEC_PKCS12CreatePasswordPrivSafe
    functionSourceFile: /src/nss/lib/pkcs12/p12e.c
    functionUses: 1
    functionsReached:
    - PK11_GetInternalKeySlot
    - SEC_PKCS7DestroyContentInfo
    - sec_pkcs12_encode_password
    - PORT_ArenaMark
    - PORT_ArenaUnmark
    - PK11_PBEKeyGen
    - sec_pkcs12_append_safe_info
    - PORT_ArenaRelease
    - PORT_SetError
    - SEC_PKCS5IsAlgorithmPBEAlgTag
    - SEC_PKCS7CreateEncryptedDataWithPBEV2
    - PK11_ReferenceSlot
    - PORT_ArenaZAlloc
    - SEC_PKCS7GetEncryptionAlgorithm
    - SEC_PKCS12CipherAllowed
    - SEC_PKCS7CreateEncryptedData
    - HASH_GetHMACOidTagByHashOidTag
    - HASH_GetHashOidTagByHMACOidTag
    - PK11_FreeSlot
    - SECITEM_ZfreeItem
    - SECITEM_CopyItem
    linkageType: ''
    returnType: SEC_PKCS12SafeInfo
    signature: "SEC_PKCS12SafeInfo *\nSEC_PKCS12CreatePasswordPrivSafe(SEC_PKCS12ExportContext
      *p12ctxt,\n                                 SECItem *pwitem, SECOidTag privAlg)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/pkcs12/p12e.c:496,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs12/p12e.c:497,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs12/p12e.c:500,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12e.c:501,1
    - Dst: SEC_PKCS7CreateData
      Src: /src/nss/lib/pkcs12/p12e.c:508,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12e.c:510,1
    - Dst: sec_pkcs12_append_safe_info
      Src: /src/nss/lib/pkcs12/p12e.c:514,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/pkcs12/p12e.c:518,1
    - Dst: SEC_PKCS7DestroyContentInfo
      Src: /src/nss/lib/pkcs12/p12e.c:523,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs12/p12e.c:526,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 1
    argNames:
    - p12ctxt
    argTypes:
    - SEC_PKCS12ExportContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 528
    functionName: SEC_PKCS12CreateUnencryptedSafe
    functionSourceFile: /src/nss/lib/pkcs12/p12e.c
    functionUses: 1
    functionsReached:
    - SEC_PKCS7CreateData
    - SEC_PKCS7DestroyContentInfo
    - PORT_ArenaZAlloc
    - PORT_ArenaRelease
    - sec_pkcs12_append_safe_info
    - PORT_ArenaMark
    - PORT_SetError
    - PORT_ArenaUnmark
    linkageType: ''
    returnType: SEC_PKCS12SafeInfo
    signature: 'SEC_PKCS12SafeInfo *

      SEC_PKCS12CreateUnencryptedSafe(SEC_PKCS12ExportContext *p12ctxt)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/pkcs12/p12e.c:555,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs12/p12e.c:556,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs12/p12e.c:559,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12e.c:560,1
    - Dst: SEC_PKCS7CreateEnvelopedData
      Src: /src/nss/lib/pkcs12/p12e.c:570,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12e.c:574,1
    - Dst: SEC_PKCS7AddRecipient
      Src: /src/nss/lib/pkcs12/p12e.c:582,1
    - Dst: sec_pkcs12_append_safe_info
      Src: /src/nss/lib/pkcs12/p12e.c:591,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/pkcs12/p12e.c:595,1
    - Dst: SEC_PKCS7DestroyContentInfo
      Src: /src/nss/lib/pkcs12/p12e.c:600,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs12/p12e.c:604,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 6
    argNames:
    - p12ctxt
    - certDb
    - signer
    - recipients
    - algorithm
    - keysize
    argTypes:
    - SEC_PKCS12ExportContext*
    - CERTCertDBHandle*
    - CERTCertificate*
    - CERTCertificate**
    - SECOidTag
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 540
    functionDepth: 1
    functionLinenumber: 540
    functionLinenumberEnd: 606
    functionName: SEC_PKCS12CreatePubKeyEncryptedSafe
    functionSourceFile: /src/nss/lib/pkcs12/p12e.c
    functionUses: 0
    functionsReached:
    - SEC_PKCS7DestroyContentInfo
    - PORT_ArenaZAlloc
    - PORT_ArenaRelease
    - sec_pkcs12_append_safe_info
    - PORT_ArenaMark
    - PORT_SetError
    - SEC_PKCS7AddRecipient
    - PORT_ArenaUnmark
    - SEC_PKCS7CreateEnvelopedData
    linkageType: ''
    returnType: SEC_PKCS12SafeInfo
    signature: "SEC_PKCS12SafeInfo *\nSEC_PKCS12CreatePubKeyEncryptedSafe(SEC_PKCS12ExportContext
      *p12ctxt,\n                                    CERTCertDBHandle *certDb,\n                                    CERTCertificate
      *signer,\n                                    CERTCertificate **recipients,\n
      \                                   SECOidTag algorithm, int keysize)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs12/p12e.c:623,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12e.c:626,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - arena
    argTypes:
    - PLArenaPool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 613
    functionDepth: 0
    functionLinenumber: 613
    functionLinenumberEnd: 639
    functionName: sec_PKCS12CreateSafeContents
    functionSourceFile: /src/nss/lib/pkcs12/p12e.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PORT_ArenaZAlloc
    linkageType: ''
    returnType: sec_PKCS12SafeContents
    signature: 'sec_PKCS12SafeContents *

      sec_PKCS12CreateSafeContents(PLArenaPool *arena)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/pkcs12/p12e.c:654,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12e.c:656,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs12/p12e.c:662,1
    - Dst: PORT_ArenaGrow
      Src: /src/nss/lib/pkcs12/p12e.c:667,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs12/p12e.c:674,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12e.c:675,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/pkcs12/p12e.c:683,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - arena
    - safeContents
    - safeBag
    argTypes:
    - PLArenaPool*
    - sec_PKCS12SafeContents*
    - sec_PKCS12SafeBag*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 643
    functionDepth: 0
    functionLinenumber: 643
    functionLinenumberEnd: 686
    functionName: sec_pkcs12_append_bag_to_safe_contents
    functionSourceFile: /src/nss/lib/pkcs12/p12e.c
    functionUses: 0
    functionsReached:
    - PORT_ArenaZAlloc
    - PORT_ArenaGrow
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - PORT_SetError
    - PORT_ArenaUnmark
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sec_pkcs12_append_bag_to_safe_contents(PLArenaPool *arena,\n
      \                                      sec_PKCS12SafeContents *safeContents,\n
      \                                      sec_PKCS12SafeBag *safeBag)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sec_PKCS12CreateSafeContents
      Src: /src/nss/lib/pkcs12/p12e.c:702,1
    - Dst: sec_pkcs12_append_bag_to_safe_contents
      Src: /src/nss/lib/pkcs12/p12e.c:709,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - p12ctxt
    - safeInfo
    - safeBag
    argTypes:
    - SEC_PKCS12ExportContext*
    - SEC_PKCS12SafeInfo*
    - sec_PKCS12SafeBag*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 690
    functionDepth: 1
    functionLinenumber: 690
    functionLinenumberEnd: 715
    functionName: sec_pkcs12_append_bag
    functionSourceFile: /src/nss/lib/pkcs12/p12e.c
    functionUses: 0
    functionsReached:
    - sec_pkcs12_append_bag_to_safe_contents
    - sec_PKCS12CreateSafeContents
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sec_pkcs12_append_bag(SEC_PKCS12ExportContext *p12ctxt,\n
      \                     SEC_PKCS12SafeInfo *safeInfo, sec_PKCS12SafeBag *safeBag)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/pkcs12/p12e.c:734,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12e.c:736,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs12/p12e.c:740,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs12/p12e.c:743,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12e.c:744,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/lib/pkcs12/p12e.c:775,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/pkcs12/p12e.c:777,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12e.c:779,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/pkcs12/p12e.c:787,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs12/p12e.c:793,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 59
    argCount: 3
    argNames:
    - p12ctxt
    - bagType
    - bagData
    argTypes:
    - SEC_PKCS12ExportContext*
    - SECOidTag
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 721
    functionDepth: 0
    functionLinenumber: 721
    functionLinenumberEnd: 797
    functionName: sec_PKCS12CreateSafeBag
    functionSourceFile: /src/nss/lib/pkcs12/p12e.c
    functionUses: 0
    functionsReached:
    - SECOID_FindOIDByTag
    - PORT_ArenaZAlloc
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - SECITEM_CopyItem
    - PORT_SetError
    - PORT_ArenaUnmark
    linkageType: ''
    returnType: sec_PKCS12SafeBag
    signature: "sec_PKCS12SafeBag *\nsec_PKCS12CreateSafeBag(SEC_PKCS12ExportContext
      *p12ctxt, SECOidTag bagType,\n                        void *bagData)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/pkcs12/p12e.c:814,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs12/p12e.c:815,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs12/p12e.c:818,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12e.c:819,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/lib/pkcs12/p12e.c:823,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12e.c:825,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/pkcs12/p12e.c:829,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12e.c:831,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/pkcs12/p12e.c:835,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs12/p12e.c:839,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - arena
    - certType
    argTypes:
    - PLArenaPool*
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 802
    functionDepth: 0
    functionLinenumber: 802
    functionLinenumberEnd: 841
    functionName: sec_PKCS12NewCertBag
    functionSourceFile: /src/nss/lib/pkcs12/p12e.c
    functionUses: 0
    functionsReached:
    - SECOID_FindOIDByTag
    - PORT_ArenaZAlloc
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - SECITEM_CopyItem
    - PORT_SetError
    - PORT_ArenaUnmark
    linkageType: ''
    returnType: sec_PKCS12CertBag
    signature: 'sec_PKCS12CertBag *

      sec_PKCS12NewCertBag(PLArenaPool *arena, SECOidTag certType)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/pkcs12/p12e.c:858,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs12/p12e.c:859,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs12/p12e.c:862,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12e.c:863,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/lib/pkcs12/p12e.c:867,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12e.c:869,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/pkcs12/p12e.c:873,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12e.c:875,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/pkcs12/p12e.c:879,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs12/p12e.c:883,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - arena
    - crlType
    argTypes:
    - PLArenaPool*
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 846
    functionDepth: 0
    functionLinenumber: 846
    functionLinenumberEnd: 885
    functionName: sec_PKCS12NewCRLBag
    functionSourceFile: /src/nss/lib/pkcs12/p12e.c
    functionUses: 0
    functionsReached:
    - SECOID_FindOIDByTag
    - PORT_ArenaZAlloc
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - SECITEM_CopyItem
    - PORT_SetError
    - PORT_ArenaUnmark
    linkageType: ''
    returnType: sec_PKCS12CRLBag
    signature: 'sec_PKCS12CRLBag *

      sec_PKCS12NewCRLBag(PLArenaPool *arena, SECOidTag crlType)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs12/p12e.c:909,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12e.c:911,1
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/pkcs12/p12e.c:915,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs12/p12e.c:918,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12e.c:921,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/lib/pkcs12/p12e.c:926,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12e.c:928,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/pkcs12/p12e.c:931,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12e.c:933,1
    - Dst: sec_pkcs12_convert_item_to_unicode
      Src: /src/nss/lib/pkcs12/p12e.c:944,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs12/p12e.c:957,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12e.c:960,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs12/p12e.c:967,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12e.c:970,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/pkcs12/p12e.c:975,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12e.c:978,1
    - Dst: PORT_ArenaGrow
      Src: /src/nss/lib/pkcs12/p12e.c:984,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs12/p12e.c:989,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/pkcs12/p12e.c:1000,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs12/p12e.c:1005,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 82
    argCount: 4
    argNames:
    - p12ctxt
    - safeBag
    - attrType
    - attrData
    argTypes:
    - SEC_PKCS12ExportContext*
    - sec_PKCS12SafeBag*
    - SECOidTag
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 896
    functionDepth: 1
    functionLinenumber: 896
    functionLinenumberEnd: 1009
    functionName: sec_PKCS12AddAttributeToBag
    functionSourceFile: /src/nss/lib/pkcs12/p12e.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SECOID_FindOIDByTag
    - PORT_ArenaZAlloc
    - PORT_ArenaGrow
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - SECITEM_CopyItem
    - PORT_SetError
    - sec_pkcs12_convert_item_to_unicode
    - PORT_ArenaUnmark
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sec_PKCS12AddAttributeToBag(SEC_PKCS12ExportContext *p12ctxt,\n
      \                           sec_PKCS12SafeBag *safeBag, SECOidTag attrType,\n
      \                           SECItem *attrData)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/pkcs12/p12e.c:1038,1
    - Dst: sec_PKCS12NewCertBag
      Src: /src/nss/lib/pkcs12/p12e.c:1041,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/pkcs12/p12e.c:1047,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12e.c:1049,1
    - Dst: CERT_CertChainFromCert
      Src: /src/nss/lib/pkcs12/p12e.c:1057,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12e.c:1062,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/pkcs12/p12e.c:1068,1
    - Dst: CERT_FindCertByDERCert
      Src: /src/nss/lib/pkcs12/p12e.c:1082,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/lib/pkcs12/p12e.c:1082,1
    - Dst: CERT_DestroyCertificateList
      Src: /src/nss/lib/pkcs12/p12e.c:1085,1
    - Dst: SEC_PKCS12AddCert
      Src: /src/nss/lib/pkcs12/p12e.c:1090,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/pkcs12/p12e.c:1092,1
    - Dst: CERT_DestroyCertificateList
      Src: /src/nss/lib/pkcs12/p12e.c:1093,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/pkcs12/p12e.c:1096,1
    - Dst: CERT_DestroyCertificateList
      Src: /src/nss/lib/pkcs12/p12e.c:1099,1
    - Dst: PK11_IsInternal
      Src: /src/nss/lib/pkcs12/p12e.c:1106,1
    - Dst: PORT_Strchr
      Src: /src/nss/lib/pkcs12/p12e.c:1115,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/pkcs12/p12e.c:1118,1
    - Dst: PORT_ArenaStrdup
      Src: /src/nss/lib/pkcs12/p12e.c:1121,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/pkcs12/p12e.c:1123,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/pkcs12/p12e.c:1127,1
    - Dst: sec_PKCS12CreateSafeBag
      Src: /src/nss/lib/pkcs12/p12e.c:1131,1
    - Dst: sec_PKCS12AddAttributeToBag
      Src: /src/nss/lib/pkcs12/p12e.c:1139,1
    - Dst: sec_PKCS12AddAttributeToBag
      Src: /src/nss/lib/pkcs12/p12e.c:1146,1
    - Dst: sec_pkcs12_append_bag_to_safe_contents
      Src: /src/nss/lib/pkcs12/p12e.c:1154,1
    - Dst: sec_pkcs12_append_bag
      Src: /src/nss/lib/pkcs12/p12e.c:1158,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/pkcs12/p12e.c:1165,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs12/p12e.c:1170,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 90
    argCount: 7
    argNames:
    - p12ctxt
    - safe
    - nestedDest
    - cert
    - certDb
    - keyId
    - includeCertChain
    argTypes:
    - SEC_PKCS12ExportContext*
    - SEC_PKCS12SafeInfo*
    - void*
    - CERTCertificate*
    - CERTCertDBHandle*
    - SECItem*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1174
      start: 1023
    functionDepth: 2
    functionLinenumber: 1023
    functionLinenumberEnd: 1174
    functionName: SEC_PKCS12AddCert
    functionSourceFile: /src/nss/lib/pkcs12/p12e.c
    functionUses: 1
    functionsReached:
    - SECITEM_CompareItem
    - PORT_ArenaMark
    - sec_pkcs12_append_bag
    - CERT_DestroyCertificateList
    - PORT_ArenaUnmark
    - sec_PKCS12NewCertBag
    - PORT_ArenaStrdup
    - PORT_ArenaRelease
    - PORT_SetError
    - CERT_GetDefaultCertDB
    - sec_pkcs12_append_bag_to_safe_contents
    - CERT_CertChainFromCert
    - SEC_PKCS12AddCert
    - PORT_Strchr
    - PORT_Strlen
    - CERT_DestroyCertificate
    - sec_PKCS12AddAttributeToBag
    - PK11_IsInternal
    - sec_PKCS12CreateSafeBag
    - SECITEM_CopyItem
    - CERT_FindCertByDERCert
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SEC_PKCS12AddCert(SEC_PKCS12ExportContext *p12ctxt, SEC_PKCS12SafeInfo
      *safe,\n                  void *nestedDest, CERTCertificate *cert,\n                  CERTCertDBHandle
      *certDb, SECItem *keyId,\n                  PRBool includeCertChain)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/pkcs12/p12e.c:1209,1
    - Dst: PK11_ExportPrivateKeyInfo
      Src: /src/nss/lib/pkcs12/p12e.c:1217,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs12/p12e.c:1220,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12e.c:1221,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs12/p12e.c:1224,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12e.c:1226,1
    - Dst: SECKEY_CopyPrivateKeyInfo
      Src: /src/nss/lib/pkcs12/p12e.c:1229,1
    - Dst: SECKEY_DestroyPrivateKeyInfo
      Src: /src/nss/lib/pkcs12/p12e.c:1232,1
    - Dst: sec_pkcs12_encode_password
      Src: /src/nss/lib/pkcs12/p12e.c:1240,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12e.c:1242,1
    - Dst: HASH_GetHashOidTagByHMACOidTag
      Src: /src/nss/lib/pkcs12/p12e.c:1253,1
    - Dst: HASH_GetHMACOidTagByHashOidTag
      Src: /src/nss/lib/pkcs12/p12e.c:1255,1
    - Dst: SEC_PKCS12CipherAllowed
      Src: /src/nss/lib/pkcs12/p12e.c:1261,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12e.c:1262,1
    - Dst: PK11_IsInternal
      Src: /src/nss/lib/pkcs12/p12e.c:1267,1
    - Dst: PK11_GetInternalKeySlot
      Src: /src/nss/lib/pkcs12/p12e.c:1268,1
    - Dst: PK11_ReferenceSlot
      Src: /src/nss/lib/pkcs12/p12e.c:1270,1
    - Dst: PK11_ExportEncryptedPrivateKeyInfoV2
      Src: /src/nss/lib/pkcs12/p12e.c:1277,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pkcs12/p12e.c:1282,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12e.c:1284,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs12/p12e.c:1288,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12e.c:1291,1
    - Dst: SECKEY_CopyEncryptedPrivateKeyInfo
      Src: /src/nss/lib/pkcs12/p12e.c:1294,1
    - Dst: SECKEY_DestroyEncryptedPrivateKeyInfo
      Src: /src/nss/lib/pkcs12/p12e.c:1298,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/pkcs12/p12e.c:1311,1
    - Dst: sec_PKCS12CreateSafeBag
      Src: /src/nss/lib/pkcs12/p12e.c:1317,1
    - Dst: sec_PKCS12AddAttributeToBag
      Src: /src/nss/lib/pkcs12/p12e.c:1324,1
    - Dst: sec_PKCS12AddAttributeToBag
      Src: /src/nss/lib/pkcs12/p12e.c:1331,1
    - Dst: sec_pkcs12_append_bag_to_safe_contents
      Src: /src/nss/lib/pkcs12/p12e.c:1338,1
    - Dst: sec_pkcs12_append_bag
      Src: /src/nss/lib/pkcs12/p12e.c:1342,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs12/p12e.c:1348,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/pkcs12/p12e.c:1350,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 101
    argCount: 9
    argNames:
    - p12ctxt
    - safe
    - nestedDest
    - cert
    - shroudKey
    - algorithm
    - pwitem
    - keyId
    - nickName
    argTypes:
    - SEC_PKCS12ExportContext*
    - SEC_PKCS12SafeInfo*
    - void*
    - CERTCertificate*
    - PRBool
    - SECOidTag
    - SECItem*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1354
      start: 1192
    functionDepth: 7
    functionLinenumber: 1192
    functionLinenumberEnd: 1354
    functionName: SEC_PKCS12AddKeyForCert
    functionSourceFile: /src/nss/lib/pkcs12/p12e.c
    functionUses: 0
    functionsReached:
    - PK11_GetInternalKeySlot
    - sec_pkcs12_encode_password
    - PK11_ExportPrivateKeyInfo
    - PORT_ArenaMark
    - sec_pkcs12_append_bag
    - PORT_ArenaUnmark
    - SECKEY_DestroyEncryptedPrivateKeyInfo
    - PORT_ArenaRelease
    - PORT_SetError
    - PK11_ReferenceSlot
    - sec_pkcs12_append_bag_to_safe_contents
    - SECKEY_CopyEncryptedPrivateKeyInfo
    - PORT_ArenaZAlloc
    - PK11_ExportEncryptedPrivateKeyInfoV2
    - SEC_PKCS12CipherAllowed
    - PORT_Strlen
    - HASH_GetHMACOidTagByHashOidTag
    - HASH_GetHashOidTagByHMACOidTag
    - PK11_FreeSlot
    - PK11_IsInternal
    - sec_PKCS12AddAttributeToBag
    - SECKEY_DestroyPrivateKeyInfo
    - SECKEY_CopyPrivateKeyInfo
    - sec_PKCS12CreateSafeBag
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SEC_PKCS12AddKeyForCert(SEC_PKCS12ExportContext *p12ctxt,
      SEC_PKCS12SafeInfo *safe,\n                        void *nestedDest, CERTCertificate
      *cert,\n                        PRBool shroudKey, SECOidTag algorithm, SECItem
      *pwitem,\n                        SECItem *keyId, SECItem *nickName)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/pkcs12/p12e.c:1385,1
    - Dst: sec_pkcs12_compute_thumbprint
      Src: /src/nss/lib/pkcs12/p12e.c:1388,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs12/p12e.c:1390,1
    - Dst: SEC_PKCS12AddCert
      Src: /src/nss/lib/pkcs12/p12e.c:1395,1
    - Dst: SEC_PKCS12AddKeyForCert
      Src: /src/nss/lib/pkcs12/p12e.c:1403,1
    - Dst: SGN_DestroyDigestInfo
      Src: /src/nss/lib/pkcs12/p12e.c:1411,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/pkcs12/p12e.c:1413,1
    - Dst: SGN_DestroyDigestInfo
      Src: /src/nss/lib/pkcs12/p12e.c:1417,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs12/p12e.c:1418,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 11
    argNames:
    - p12ctxt
    - certSafe
    - certNestedDest
    - cert
    - certDb
    - keySafe
    - keyNestedDest
    - shroudKey
    - pwitem
    - algorithm
    - includeCertChain
    argTypes:
    - SEC_PKCS12ExportContext*
    - void*
    - void*
    - CERTCertificate*
    - CERTCertDBHandle*
    - void*
    - void*
    - PRBool
    - SECItem*
    - SECOidTag
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1421
      start: 1369
    functionDepth: 11
    functionLinenumber: 1369
    functionLinenumberEnd: 1421
    functionName: SEC_PKCS12AddCertOrChainAndKey
    functionSourceFile: /src/nss/lib/pkcs12/p12e.c
    functionUses: 0
    functionsReached:
    - SEC_PKCS12AddCert
    - SEC_PKCS12AddKeyForCert
    - PORT_ArenaRelease
    - SGN_DestroyDigestInfo
    - PORT_ArenaMark
    - sec_pkcs12_compute_thumbprint
    - PORT_ArenaUnmark
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SEC_PKCS12AddCertOrChainAndKey(SEC_PKCS12ExportContext *p12ctxt,\n
      \                              void *certSafe, void *certNestedDest,\n                               CERTCertificate
      *cert, CERTCertDBHandle *certDb,\n                               void *keySafe,
      void *keyNestedDest,\n                               PRBool shroudKey, SECItem
      *pwitem,\n                               SECOidTag algorithm, PRBool includeCertChain)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SEC_PKCS12AddCertOrChainAndKey
      Src: /src/nss/lib/pkcs12/p12e.c:1431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 10
    argNames:
    - p12ctxt
    - certSafe
    - certNestedDest
    - cert
    - certDb
    - keySafe
    - keyNestedDest
    - shroudKey
    - pwItem
    - algorithm
    argTypes:
    - SEC_PKCS12ExportContext*
    - void*
    - void*
    - CERTCertificate*
    - CERTCertDBHandle*
    - void*
    - void*
    - PRBool
    - SECItem*
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1434
      start: 1424
    functionDepth: 12
    functionLinenumber: 1424
    functionLinenumberEnd: 1434
    functionName: SEC_PKCS12AddCertAndKey
    functionSourceFile: /src/nss/lib/pkcs12/p12e.c
    functionUses: 1
    functionsReached:
    - SEC_PKCS12AddCertOrChainAndKey
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SEC_PKCS12AddCertAndKey(SEC_PKCS12ExportContext *p12ctxt,\n
      \                       void *certSafe, void *certNestedDest,\n                        CERTCertificate
      *cert, CERTCertDBHandle *certDb,\n                        void *keySafe, void
      *keyNestedDest,\n                        PRBool shroudKey, SECItem *pwItem,
      SECOidTag algorithm)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/pkcs12/p12e.c:1457,1
    - Dst: sec_PKCS12CreateSafeContents
      Src: /src/nss/lib/pkcs12/p12e.c:1459,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs12/p12e.c:1461,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12e.c:1462,1
    - Dst: sec_PKCS12CreateSafeBag
      Src: /src/nss/lib/pkcs12/p12e.c:1467,1
    - Dst: sec_pkcs12_append_bag_to_safe_contents
      Src: /src/nss/lib/pkcs12/p12e.c:1476,1
    - Dst: sec_pkcs12_append_bag
      Src: /src/nss/lib/pkcs12/p12e.c:1480,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/pkcs12/p12e.c:1487,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs12/p12e.c:1491,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 3
    argNames:
    - p12ctxt
    - baseSafe
    - nestedDest
    argTypes:
    - SEC_PKCS12ExportContext*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1493
      start: 1444
    functionDepth: 2
    functionLinenumber: 1444
    functionLinenumberEnd: 1493
    functionName: SEC_PKCS12CreateNestedSafeContents
    functionSourceFile: /src/nss/lib/pkcs12/p12e.c
    functionUses: 0
    functionsReached:
    - sec_PKCS12CreateSafeContents
    - sec_PKCS12CreateSafeBag
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - sec_pkcs12_append_bag
    - PORT_SetError
    - sec_pkcs12_append_bag_to_safe_contents
    - PORT_ArenaUnmark
    linkageType: ''
    returnType: void
    signature: "void *\nSEC_PKCS12CreateNestedSafeContents(SEC_PKCS12ExportContext
      *p12ctxt,\n                                   void *baseSafe, void *nestedDest)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1EncoderFinish
      Src: /src/nss/lib/pkcs12/p12e.c:1505,1
    - Dst: SEC_PKCS7DestroyContentInfo
      Src: /src/nss/lib/pkcs12/p12e.c:1509,1
    - Dst: SEC_PKCS7EncoderFinish
      Src: /src/nss/lib/pkcs12/p12e.c:1513,1
    - Dst: SEC_ASN1EncoderFinish
      Src: /src/nss/lib/pkcs12/p12e.c:1518,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/pkcs12/p12e.c:1522,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - p12enc
    argTypes:
    - sec_PKCS12EncoderContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1526
      start: 1500
    functionDepth: 5
    functionLinenumber: 1500
    functionLinenumberEnd: 1526
    functionName: sec_pkcs12_encoder_destroy_context
    functionSourceFile: /src/nss/lib/pkcs12/p12e.c
    functionUses: 0
    functionsReached:
    - SEC_PKCS7EncoderFinish
    - PK11_DestroyContext
    - SEC_PKCS7DestroyContentInfo
    - SEC_ASN1EncoderFinish
    linkageType: ''
    returnType: void
    signature: void sec_pkcs12_encoder_destroy_context(sec_PKCS12EncoderContext *p12enc)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/pkcs12/p12e.c:1561,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/pkcs12/p12e.c:1562,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12e.c:1564,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/pkcs12/p12e.c:1572,1
    - Dst: SEC_ASN1EncodeInteger
      Src: /src/nss/lib/pkcs12/p12e.c:1573,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12e.c:1575,1
    - Dst: SEC_PKCS7CreateSignedData
      Src: /src/nss/lib/pkcs12/p12e.c:1586,1
    - Dst: SEC_PKCS7IncludeCertChain
      Src: /src/nss/lib/pkcs12/p12e.c:1597,1
    - Dst: PORT_CheckSuccess
      Src: /src/nss/lib/pkcs12/p12e.c:1600,1
    - Dst: SEC_PKCS7AddSigningTime
      Src: /src/nss/lib/pkcs12/p12e.c:1600,1
    - Dst: SEC_PKCS7CreateData
      Src: /src/nss/lib/pkcs12/p12e.c:1602,1
    - Dst: sec_pkcs12_generate_salt
      Src: /src/nss/lib/pkcs12/p12e.c:1611,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/pkcs12/p12e.c:1614,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12e.c:1617,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/pkcs12/p12e.c:1620,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12e.c:1621,1
    - Dst: SEC_ASN1EncodeInteger
      Src: /src/nss/lib/pkcs12/p12e.c:1624,1
    - Dst: sec_pkcs12_convert_item_to_unicode
      Src: /src/nss/lib/pkcs12/p12e.c:1630,1
    - Dst: HASH_GetHashOidTagByHMACOidTag
      Src: /src/nss/lib/pkcs12/p12e.c:1638,1
    - Dst: HASH_ResultLenByOidTag
      Src: /src/nss/lib/pkcs12/p12e.c:1645,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12e.c:1647,1
    - Dst: PK11_CreatePBEV2AlgorithmID
      Src: /src/nss/lib/pkcs12/p12e.c:1651,1
    - Dst: SECOID_CopyAlgorithmID
      Src: /src/nss/lib/pkcs12/p12e.c:1659,1
    - Dst: SECOID_DestroyAlgorithmID
      Src: /src/nss/lib/pkcs12/p12e.c:1662,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12e.c:1664,1
    - Dst: HASH_GetHashTypeByOidTag
      Src: /src/nss/lib/pkcs12/p12e.c:1667,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/lib/pkcs12/p12e.c:1672,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12e.c:1679,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pkcs12/p12e.c:1684,1
    - Dst: sec_pkcs12_integrity_key
      Src: /src/nss/lib/pkcs12/p12e.c:1686,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pkcs12/p12e.c:1689,1
    - Dst: PK11_CreateContextBySymKey
      Src: /src/nss/lib/pkcs12/p12e.c:1696,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pkcs12/p12e.c:1699,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12e.c:1701,1
    - Dst: PK11_DigestBegin
      Src: /src/nss/lib/pkcs12/p12e.c:1704,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/pkcs12/p12e.c:1714,1
    - Dst: sec_pkcs12_encoder_destroy_context
      Src: /src/nss/lib/pkcs12/p12e.c:1719,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs12/p12e.c:1721,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pkcs12/p12e.c:1724,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pkcs12/p12e.c:1727,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 135
    argCount: 1
    argNames:
    - p12exp
    argTypes:
    - SEC_PKCS12ExportContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1731
      start: 1532
    functionDepth: 13
    functionLinenumber: 1532
    functionLinenumberEnd: 1731
    functionName: sec_pkcs12_encoder_start_context
    functionSourceFile: /src/nss/lib/pkcs12/p12e.c
    functionUses: 0
    functionsReached:
    - HASH_ResultLenByOidTag
    - sec_pkcs12_generate_salt
    - SEC_PKCS7CreateSignedData
    - PORT_ArenaMark
    - SECOID_CopyAlgorithmID
    - PORT_ArenaUnmark
    - SECOID_DestroyAlgorithmID
    - PK11_CreateContextBySymKey
    - PK11_DigestBegin
    - sec_pkcs12_encoder_destroy_context
    - SEC_PKCS7CreateData
    - HASH_GetHashTypeByOidTag
    - PORT_ArenaRelease
    - SECOID_SetAlgorithmID
    - PORT_ArenaZNew
    - PORT_SetError
    - SEC_ASN1EncodeInteger
    - SEC_PKCS7IncludeCertChain
    - HASH_GetHashOidTagByHMACOidTag
    - SECITEM_ZfreeItem
    - PK11_CreatePBEV2AlgorithmID
    - PORT_CheckSuccess
    - sec_pkcs12_integrity_key
    - SECITEM_CopyItem
    - sec_pkcs12_convert_item_to_unicode
    - SEC_PKCS7AddSigningTime
    - PORT_Memset
    - PK11_FreeSymKey
    linkageType: ''
    returnType: sec_PKCS12EncoderContext
    signature: 'sec_PKCS12EncoderContext *

      sec_pkcs12_encoder_start_context(SEC_PKCS12ExportContext *p12exp)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - arg
    - buf
    - len
    - depth
    - data_kind
    argTypes:
    - void*
    - char*
    - unsigned long
    - int
    - SEC_ASN1EncodingPart
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1745
      start: 1737
    functionDepth: 0
    functionLinenumber: 1737
    functionLinenumberEnd: 1745
    functionName: sec_P12A1OutputCB_Outer
    functionSourceFile: /src/nss/lib/pkcs12/p12e.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void sec_P12A1OutputCB_Outer(void *arg, const char *buf, unsigned
      long len,\n                        int depth, SEC_ASN1EncodingPart data_kind)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PK11_DigestOp
      Src: /src/nss/lib/pkcs12/p12e.c:1763,1
    - Dst: memcpy
      Src: /src/nss/lib/pkcs12/p12e.c:1770,1
    - Dst: SEC_PKCS7EncoderUpdate
      Src: /src/nss/lib/pkcs12/p12e.c:1774,1
    - Dst: memcpy
      Src: /src/nss/lib/pkcs12/p12e.c:1779,1
    - Dst: SEC_PKCS7EncoderUpdate
      Src: /src/nss/lib/pkcs12/p12e.c:1780,1
    - Dst: SEC_PKCS7EncoderUpdate
      Src: /src/nss/lib/pkcs12/p12e.c:1788,1
    - Dst: memcpy
      Src: /src/nss/lib/pkcs12/p12e.c:1791,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 5
    argNames:
    - arg
    - buf
    - len
    - depth
    - data_kind
    argTypes:
    - void*
    - char*
    - unsigned long
    - int
    - SEC_ASN1EncodingPart
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1794
      start: 1751
    functionDepth: 4
    functionLinenumber: 1751
    functionLinenumberEnd: 1794
    functionName: sec_P12A1OutputCB_HmacP7Update
    functionSourceFile: /src/nss/lib/pkcs12/p12e.c
    functionUses: 0
    functionsReached:
    - memcpy
    - SEC_PKCS7EncoderUpdate
    - PK11_DigestOp
    linkageType: ''
    returnType: void
    signature: "void sec_P12A1OutputCB_HmacP7Update(void *arg, const char *buf,\n
      \                              unsigned long len,\n                               int
      depth,\n                               SEC_ASN1EncodingPart data_kind)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SEC_PKCS7EncoderUpdate
      Src: /src/nss/lib/pkcs12/p12e.c:1800,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - bufcx
    argTypes:
    - sec_pkcs12OutputBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1803
      start: 1796
    functionDepth: 1
    functionLinenumber: 1796
    functionLinenumberEnd: 1803
    functionName: sec_FlushPkcs12OutputBuffer
    functionSourceFile: /src/nss/lib/pkcs12/p12e.c
    functionUses: 0
    functionsReached:
    - SEC_PKCS7EncoderUpdate
    linkageType: ''
    returnType: void
    signature: void sec_FlushPkcs12OutputBuffer(sec_pkcs12OutputBuffer *bufcx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1EncoderUpdate
      Src: /src/nss/lib/pkcs12/p12e.c:1816,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - arg
    - buf
    - len
    argTypes:
    - void*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1817
      start: 1808
    functionDepth: 0
    functionLinenumber: 1808
    functionLinenumberEnd: 1817
    functionName: sec_P12P7OutputCB_CallA1Update
    functionSourceFile: /src/nss/lib/pkcs12/p12e.c
    functionUses: 0
    functionsReached:
    - SEC_ASN1EncoderUpdate
    linkageType: ''
    returnType: void
    signature: void sec_P12P7OutputCB_CallA1Update(void *arg, const char *buf, unsigned
      long len)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: SEC_PKCS7ContentType
      Src: /src/nss/lib/pkcs12/p12e.c:1843,1
    - Dst: PK11_SetSymKeyUserData
      Src: /src/nss/lib/pkcs12/p12e.c:1852,1
    - Dst: SEC_PKCS7EncoderStart
      Src: /src/nss/lib/pkcs12/p12e.c:1859,1
    - Dst: SEC_ASN1EncoderStart
      Src: /src/nss/lib/pkcs12/p12e.c:1872,1
    - Dst: SEC_ASN1EncoderUpdate
      Src: /src/nss/lib/pkcs12/p12e.c:1879,1
    - Dst: SEC_ASN1EncoderFinish
      Src: /src/nss/lib/pkcs12/p12e.c:1880,1
    - Dst: sec_FlushPkcs12OutputBuffer
      Src: /src/nss/lib/pkcs12/p12e.c:1881,1
    - Dst: SEC_PKCS7EncoderFinish
      Src: /src/nss/lib/pkcs12/p12e.c:1888,1
    - Dst: memset
      Src: /src/nss/lib/pkcs12/p12e.c:1894,1
    - Dst: SEC_PKCS7EncoderFinish
      Src: /src/nss/lib/pkcs12/p12e.c:1899,1
    - Dst: SEC_ASN1EncoderFinish
      Src: /src/nss/lib/pkcs12/p12e.c:1904,1
    - Dst: memset
      Src: /src/nss/lib/pkcs12/p12e.c:1906,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 59
    argCount: 1
    argNames:
    - p12ecx
    argTypes:
    - sec_PKCS12EncoderContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1908
      start: 1822
    functionDepth: 2
    functionLinenumber: 1822
    functionLinenumberEnd: 1908
    functionName: sec_pkcs12_encoder_asafe_process
    functionSourceFile: /src/nss/lib/pkcs12/p12e.c
    functionUses: 0
    functionsReached:
    - SEC_ASN1EncoderUpdate
    - SEC_PKCS7ContentType
    - SEC_PKCS7EncoderFinish
    - SEC_PKCS7EncoderStart
    - SEC_ASN1EncoderStart
    - SEC_ASN1EncoderFinish
    - memset
    - sec_FlushPkcs12OutputBuffer
    - PK11_SetSymKeyUserData
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sec_pkcs12_encoder_asafe_process(sec_PKCS12EncoderContext
      *p12ecx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PK11_DigestFinal
      Src: /src/nss/lib/pkcs12/p12e.c:1937,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12e.c:1940,1
    - Dst: SECITEM_MakeItem
      Src: /src/nss/lib/pkcs12/p12e.c:1945,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/pkcs12/p12e.c:1952,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12e.c:1955,1
    - Dst: SGN_DestroyDigestInfo
      Src: /src/nss/lib/pkcs12/p12e.c:1961,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/pkcs12/p12e.c:1963,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/pkcs12/p12e.c:1965,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 1
    argNames:
    - p12ecx
    argTypes:
    - sec_PKCS12EncoderContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1968
      start: 1913
    functionDepth: 5
    functionLinenumber: 1913
    functionLinenumberEnd: 1968
    functionName: sec_Pkcs12FinishMac
    functionSourceFile: /src/nss/lib/pkcs12/p12e.c
    functionUses: 0
    functionsReached:
    - PK11_DestroyContext
    - SEC_ASN1EncodeItem
    - SGN_DestroyDigestInfo
    - PORT_SetError
    - SECITEM_MakeItem
    - PORT_Memset
    - PK11_DigestFinal
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sec_Pkcs12FinishMac(sec_PKCS12EncoderContext *p12ecx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1EncoderSetTakeFromBuf
      Src: /src/nss/lib/pkcs12/p12e.c:1990,1
    - Dst: SEC_ASN1EncoderSetStreaming
      Src: /src/nss/lib/pkcs12/p12e.c:1991,1
    - Dst: SEC_ASN1EncoderClearNotifyProc
      Src: /src/nss/lib/pkcs12/p12e.c:1992,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - arg
    - before
    - dest
    - real_depth
    argTypes:
    - void*
    - PRBool
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1993
      start: 1975
    functionDepth: 0
    functionLinenumber: 1975
    functionLinenumberEnd: 1993
    functionName: sec_pkcs12_encoder_pfx_notify
    functionSourceFile: /src/nss/lib/pkcs12/p12e.c
    functionUses: 0
    functionsReached:
    - SEC_ASN1EncoderClearNotifyProc
    - SEC_ASN1EncoderSetTakeFromBuf
    - SEC_ASN1EncoderSetStreaming
    linkageType: ''
    returnType: void
    signature: void sec_pkcs12_encoder_pfx_notify(void *arg, PRBool before, void *dest,
      int real_depth)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sec_pkcs12_encoder_start_context
      Src: /src/nss/lib/pkcs12/p12e.c:2017,1
    - Dst: SEC_ASN1EncoderStart
      Src: /src/nss/lib/pkcs12/p12e.c:2026,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12e.c:2031,1
    - Dst: SEC_ASN1EncoderSetStreaming
      Src: /src/nss/lib/pkcs12/p12e.c:2035,1
    - Dst: SEC_ASN1EncoderSetNotifyProc
      Src: /src/nss/lib/pkcs12/p12e.c:2036,1
    - Dst: SEC_ASN1EncoderUpdate
      Src: /src/nss/lib/pkcs12/p12e.c:2038,1
    - Dst: SEC_PKCS7EncoderStart
      Src: /src/nss/lib/pkcs12/p12e.c:2045,1
    - Dst: SEC_ASN1EncoderStart
      Src: /src/nss/lib/pkcs12/p12e.c:2064,1
    - Dst: SEC_ASN1EncoderSetStreaming
      Src: /src/nss/lib/pkcs12/p12e.c:2072,1
    - Dst: SEC_ASN1EncoderSetTakeFromBuf
      Src: /src/nss/lib/pkcs12/p12e.c:2073,1
    - Dst: sec_pkcs12_encoder_asafe_process
      Src: /src/nss/lib/pkcs12/p12e.c:2077,1
    - Dst: SEC_ASN1EncoderClearTakeFromBuf
      Src: /src/nss/lib/pkcs12/p12e.c:2080,1
    - Dst: SEC_ASN1EncoderClearStreaming
      Src: /src/nss/lib/pkcs12/p12e.c:2081,1
    - Dst: SEC_ASN1EncoderUpdate
      Src: /src/nss/lib/pkcs12/p12e.c:2082,1
    - Dst: SEC_ASN1EncoderFinish
      Src: /src/nss/lib/pkcs12/p12e.c:2083,1
    - Dst: sec_FlushPkcs12OutputBuffer
      Src: /src/nss/lib/pkcs12/p12e.c:2086,1
    - Dst: SEC_PKCS7EncoderFinish
      Src: /src/nss/lib/pkcs12/p12e.c:2089,1
    - Dst: SEC_ASN1EncoderClearTakeFromBuf
      Src: /src/nss/lib/pkcs12/p12e.c:2096,1
    - Dst: SEC_ASN1EncoderClearStreaming
      Src: /src/nss/lib/pkcs12/p12e.c:2097,1
    - Dst: sec_Pkcs12FinishMac
      Src: /src/nss/lib/pkcs12/p12e.c:2100,1
    - Dst: SEC_ASN1EncoderUpdate
      Src: /src/nss/lib/pkcs12/p12e.c:2106,1
    - Dst: SEC_ASN1EncoderFinish
      Src: /src/nss/lib/pkcs12/p12e.c:2108,1
    - Dst: sec_pkcs12_encoder_destroy_context
      Src: /src/nss/lib/pkcs12/p12e.c:2112,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 76
    argCount: 3
    argNames:
    - p12exp
    - output
    - outputarg
    argTypes:
    - SEC_PKCS12ExportContext*
    - SEC_PKCS12EncoderOutputCallback
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2114
      start: 2004
    functionDepth: 14
    functionLinenumber: 2004
    functionLinenumberEnd: 2114
    functionName: SEC_PKCS12Encode
    functionSourceFile: /src/nss/lib/pkcs12/p12e.c
    functionUses: 1
    functionsReached:
    - sec_pkcs12_encoder_destroy_context
    - SEC_ASN1EncoderUpdate
    - SEC_PKCS7EncoderFinish
    - SEC_PKCS7EncoderStart
    - SEC_ASN1EncoderClearStreaming
    - SEC_ASN1EncoderStart
    - SEC_ASN1EncoderSetNotifyProc
    - sec_pkcs12_encoder_start_context
    - SEC_ASN1EncoderClearTakeFromBuf
    - SEC_ASN1EncoderFinish
    - PORT_SetError
    - SEC_ASN1EncoderSetTakeFromBuf
    - SEC_ASN1EncoderSetStreaming
    - sec_Pkcs12FinishMac
    - sec_FlushPkcs12OutputBuffer
    - sec_pkcs12_encoder_asafe_process
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SEC_PKCS12Encode(SEC_PKCS12ExportContext *p12exp,\n                 SEC_PKCS12EncoderOutputCallback
      output, void *outputarg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pkcs12/p12e.c:2129,1
    - Dst: SEC_PKCS7DestroyContentInfo
      Src: /src/nss/lib/pkcs12/p12e.c:2132,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pkcs12/p12e.c:2138,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pkcs12/p12e.c:2140,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - p12ecx
    argTypes:
    - SEC_PKCS12ExportContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2141
      start: 2116
    functionDepth: 4
    functionLinenumber: 2116
    functionLinenumberEnd: 2141
    functionName: SEC_PKCS12DestroyExportContext
    functionSourceFile: /src/nss/lib/pkcs12/p12e.c
    functionUses: 1
    functionsReached:
    - PORT_FreeArena
    - SEC_PKCS7DestroyContentInfo
    - PK11_FreeSlot
    - PK11_FreeSymKey
    linkageType: ''
    returnType: void
    signature: void SEC_PKCS12DestroyExportContext(SEC_PKCS12ExportContext *p12ecx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NSS_GetAlgorithmPolicy
      Src: /src/nss/lib/pkcs12/p12plcy.c:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - alg
    - needed
    argTypes:
    - SECOidTag
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 51
    functionName: sec_PKCS12Allowed
    functionSourceFile: /src/nss/lib/pkcs12/p12plcy.c
    functionUses: 0
    functionsReached:
    - NSS_GetAlgorithmPolicy
    linkageType: ''
    returnType: PRBool
    signature: PRBool sec_PKCS12Allowed(SECOidTag alg, PRUint32 needed)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SEC_PKCS5GetCryptoFromAlgTag
      Src: /src/nss/lib/pkcs12/p12plcy.c:56,1
    - Dst: SEC_PKCS5GetHashFromAlgTag
      Src: /src/nss/lib/pkcs12/p12plcy.c:57,1
    - Dst: HASH_GetHashOidTagByHMACOidTag
      Src: /src/nss/lib/pkcs12/p12plcy.c:64,1
    - Dst: sec_PKCS12Allowed
      Src: /src/nss/lib/pkcs12/p12plcy.c:69,1
    - Dst: sec_PKCS12Allowed
      Src: /src/nss/lib/pkcs12/p12plcy.c:72,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - pbeAlg
    - hmacAlg
    argTypes:
    - SECOidTag
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 73
    functionName: SEC_PKCS12CipherAllowed
    functionSourceFile: /src/nss/lib/pkcs12/p12plcy.c
    functionUses: 2
    functionsReached:
    - SEC_PKCS5GetCryptoFromAlgTag
    - sec_PKCS12Allowed
    - HASH_GetHashOidTagByHMACOidTag
    - SEC_PKCS5GetHashFromAlgTag
    linkageType: ''
    returnType: PRBool
    signature: PRBool SEC_PKCS12CipherAllowed(SECOidTag pbeAlg, SECOidTag hmacAlg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SEC_PKCS5GetCryptoAlgorithm
      Src: /src/nss/lib/pkcs12/p12plcy.c:80,1
    - Dst: sec_PKCS12Allowed
      Src: /src/nss/lib/pkcs12/p12plcy.c:85,1
    - Dst: SEC_PKCS5GetHashAlgorithm
      Src: /src/nss/lib/pkcs12/p12plcy.c:89,1
    - Dst: sec_PKCS12Allowed
      Src: /src/nss/lib/pkcs12/p12plcy.c:93,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - algid
    argTypes:
    - SECAlgorithmID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 94
    functionName: SEC_PKCS12DecryptionAllowed
    functionSourceFile: /src/nss/lib/pkcs12/p12plcy.c
    functionUses: 3
    functionsReached:
    - SEC_PKCS5GetHashAlgorithm
    - sec_PKCS12Allowed
    - SEC_PKCS5GetCryptoAlgorithm
    linkageType: ''
    returnType: PRBool
    signature: PRBool SEC_PKCS12DecryptionAllowed(SECAlgorithmID *algid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sec_PKCS12Allowed
      Src: /src/nss/lib/pkcs12/p12plcy.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - hashAlg
    - verify
    argTypes:
    - SECOidTag
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 100
    functionName: SEC_PKCS12IntegrityHashAllowed
    functionSourceFile: /src/nss/lib/pkcs12/p12plcy.c
    functionUses: 1
    functionsReached:
    - sec_PKCS12Allowed
    linkageType: ''
    returnType: PRBool
    signature: PRBool SEC_PKCS12IntegrityHashAllowed(SECOidTag hashAlg, PRBool verify)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sec_PKCS12Allowed
      Src: /src/nss/lib/pkcs12/p12plcy.c:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 117
    functionName: SEC_PKCS12IsEncryptionAllowed
    functionSourceFile: /src/nss/lib/pkcs12/p12plcy.c
    functionUses: 1
    functionsReached:
    - sec_PKCS12Allowed
    linkageType: ''
    returnType: PRBool
    signature: PRBool SEC_PKCS12IsEncryptionAllowed(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSS_SetAlgorithmPolicy
      Src: /src/nss/lib/pkcs12/p12plcy.c:131,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs12/p12plcy.c:134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - which
    - 'on'
    argTypes:
    - long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 136
    functionName: SEC_PKCS12EnableCipher
    functionSourceFile: /src/nss/lib/pkcs12/p12plcy.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - NSS_SetAlgorithmPolicy
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SEC_PKCS12EnableCipher(long which, int on)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - which
    - 'on'
    argTypes:
    - long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 144
    functionName: SEC_PKCS12SetPreferredCipher
    functionSourceFile: /src/nss/lib/pkcs12/p12plcy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SEC_PKCS12SetPreferredCipher(long which, int on)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOID
      Src: /src/nss/lib/pkcs12/p12tmpl.c:31,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/pkcs12/p12tmpl.c:33,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/pkcs12/p12tmpl.c:38,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/pkcs12/p12tmpl.c:41,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/pkcs12/p12tmpl.c:54,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/pkcs12/p12tmpl.c:60,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 2
    argNames:
    - src_or_dest
    - encoding
    argTypes:
    - void*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 65
    functionName: sec_pkcs12_choose_safe_bag_type
    functionSourceFile: /src/nss/lib/pkcs12/p12tmpl.c
    functionUses: 0
    functionsReached:
    - SEC_ASN1_GET
    - SECOID_FindOID
    linkageType: ''
    returnType: SEC_ASN1Template
    signature: 'SEC_ASN1Template *

      sec_pkcs12_choose_safe_bag_type(void *src_or_dest, PRBool encoding)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOID
      Src: /src/nss/lib/pkcs12/p12tmpl.c:80,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/pkcs12/p12tmpl.c:82,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/pkcs12/p12tmpl.c:87,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/pkcs12/p12tmpl.c:90,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - src_or_dest
    - encoding
    argTypes:
    - void*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 94
    functionName: sec_pkcs12_choose_crl_bag_type
    functionSourceFile: /src/nss/lib/pkcs12/p12tmpl.c
    functionUses: 0
    functionsReached:
    - SEC_ASN1_GET
    - SECOID_FindOID
    linkageType: ''
    returnType: SEC_ASN1Template
    signature: 'SEC_ASN1Template *

      sec_pkcs12_choose_crl_bag_type(void *src_or_dest, PRBool encoding)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOID
      Src: /src/nss/lib/pkcs12/p12tmpl.c:109,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/pkcs12/p12tmpl.c:111,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/pkcs12/p12tmpl.c:116,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/pkcs12/p12tmpl.c:119,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/pkcs12/p12tmpl.c:122,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - src_or_dest
    - encoding
    argTypes:
    - void*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 126
    functionName: sec_pkcs12_choose_cert_bag_type
    functionSourceFile: /src/nss/lib/pkcs12/p12tmpl.c
    functionUses: 0
    functionsReached:
    - SEC_ASN1_GET
    - SECOID_FindOID
    linkageType: ''
    returnType: SEC_ASN1Template
    signature: 'SEC_ASN1Template *

      sec_pkcs12_choose_cert_bag_type(void *src_or_dest, PRBool encoding)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOID
      Src: /src/nss/lib/pkcs12/p12tmpl.c:141,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/pkcs12/p12tmpl.c:143,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/pkcs12/p12tmpl.c:148,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/pkcs12/p12tmpl.c:151,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/pkcs12/p12tmpl.c:154,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/pkcs12/p12tmpl.c:157,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - src_or_dest
    - encoding
    argTypes:
    - void*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 162
    functionName: sec_pkcs12_choose_attr_type
    functionSourceFile: /src/nss/lib/pkcs12/p12tmpl.c
    functionUses: 0
    functionsReached:
    - SEC_ASN1_GET
    - SECOID_FindOID
    linkageType: ''
    returnType: SEC_ASN1Template
    signature: 'SEC_ASN1Template *

      sec_pkcs12_choose_attr_type(void *src_or_dest, PRBool encoding)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 134
    functionName: RANK
    functionSourceFile: /src/nss/lib/zlib/deflate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RANK(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - h
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 142
    functionName: UPDATE_HASH
    functionSourceFile: /src/nss/lib/zlib/deflate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UPDATE_HASH(s,h,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - str
    - ','
    - match_head
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 159
    functionName: INSERT_STRING
    functionSourceFile: /src/nss/lib/zlib/deflate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INSERT_STRING(s, str, match_head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - str
    - ','
    - match_head
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 164
    functionName: INSERT_STRING
    functionSourceFile: /src/nss/lib/zlib/deflate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INSERT_STRING(s, str, match_head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 176
    functionName: CLEAR_HASH
    functionSourceFile: /src/nss/lib/zlib/deflate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLEAR_HASH(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - s
    argTypes:
    - deflate_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 209
    functionName: slide_hash
    functionSourceFile: /src/nss/lib/zlib/deflate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: local
    signature: local slide_hash(deflate_state *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: zmemcpy
      Src: /src/nss/lib/zlib/deflate.c:226,1
    - Dst: adler32
      Src: /src/nss/lib/zlib/deflate.c:228,1
    - Dst: crc32
      Src: /src/nss/lib/zlib/deflate.c:232,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - strm
    - buf
    - size
    argTypes:
    - z_streamp
    - Bytef*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 239
    functionName: read_buf
    functionSourceFile: /src/nss/lib/zlib/deflate.c
    functionUses: 0
    functionsReached:
    - crc32
    - zmemcpy
    - adler32
    linkageType: ''
    returnType: local unsigned
    signature: local unsigned read_buf(z_streamp strm, Bytef *buf, unsigned size)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: Assert
      Src: /src/nss/lib/zlib/deflate.c:256,1
    - Dst: MAX_DIST
      Src: /src/nss/lib/zlib/deflate.c:277,1
    - Dst: zmemcpy
      Src: /src/nss/lib/zlib/deflate.c:279,1
    - Dst: slide_hash
      Src: /src/nss/lib/zlib/deflate.c:285,1
    - Dst: Assert
      Src: /src/nss/lib/zlib/deflate.c:301,1
    - Dst: read_buf
      Src: /src/nss/lib/zlib/deflate.c:303,1
    - Dst: UPDATE_HASH
      Src: /src/nss/lib/zlib/deflate.c:310,1
    - Dst: UPDATE_HASH
      Src: /src/nss/lib/zlib/deflate.c:315,1
    - Dst: zmemzero
      Src: /src/nss/lib/zlib/deflate.c:350,1
    - Dst: zmemzero
      Src: /src/nss/lib/zlib/deflate.c:361,1
    - Dst: Assert
      Src: /src/nss/lib/zlib/deflate.c:366,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 59
    argCount: 1
    argNames:
    - s
    argTypes:
    - deflate_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 251
    functionDepth: 2
    functionLinenumber: 251
    functionLinenumberEnd: 368
    functionName: fill_window
    functionSourceFile: /src/nss/lib/zlib/deflate.c
    functionUses: 0
    functionsReached:
    - zmemcpy
    - MAX_DIST
    - Assert
    - zmemzero
    - UPDATE_HASH
    - slide_hash
    - read_buf
    linkageType: ''
    returnType: local
    signature: local fill_window(deflate_state *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: deflateInit2_
      Src: /src/nss/lib/zlib/deflate.c:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - strm
    - level
    - version
    - stream_size
    argTypes:
    - z_streamp
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 376
    functionName: deflateInit_
    functionSourceFile: /src/nss/lib/zlib/deflate.c
    functionUses: 0
    functionsReached:
    - deflateInit2_
    linkageType: ''
    returnType: int
    signature: "int deflateInit_(z_streamp strm, int level, const char *version,\n
      \                        int stream_size)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ZALLOC
      Src: /src/nss/lib/zlib/deflate.c:432,1
    - Dst: ZALLOC
      Src: /src/nss/lib/zlib/deflate.c:449,1
    - Dst: ZALLOC
      Src: /src/nss/lib/zlib/deflate.c:450,1
    - Dst: ZALLOC
      Src: /src/nss/lib/zlib/deflate.c:451,1
    - Dst: ZALLOC
      Src: /src/nss/lib/zlib/deflate.c:496,1
    - Dst: ERR_MSG
      Src: /src/nss/lib/zlib/deflate.c:502,1
    - Dst: deflateEnd
      Src: /src/nss/lib/zlib/deflate.c:503,1
    - Dst: deflateReset
      Src: /src/nss/lib/zlib/deflate.c:523,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 71
    argCount: 8
    argNames:
    - strm
    - level
    - method
    - windowBits
    - memLevel
    - strategy
    - version
    - stream_size
    argTypes:
    - z_streamp
    - int
    - int
    - int
    - int
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 524
    functionName: deflateInit2_
    functionSourceFile: /src/nss/lib/zlib/deflate.c
    functionUses: 1
    functionsReached:
    - deflateEnd
    - deflateReset
    - ERR_MSG
    - ZALLOC
    linkageType: ''
    returnType: int
    signature: "int deflateInit2_(z_streamp strm, int level, int method,\n                          int
      windowBits, int memLevel, int strategy,\n                          const char
      *version, int stream_size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 7
    argCount: 1
    argNames:
    - strm
    argTypes:
    - z_streamp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 547
    functionName: deflateStateCheck
    functionSourceFile: /src/nss/lib/zlib/deflate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: local
    signature: local deflateStateCheck(z_streamp strm)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: deflateStateCheck
      Src: /src/nss/lib/zlib/deflate.c:558,1
    - Dst: adler32
      Src: /src/nss/lib/zlib/deflate.c:567,1
    - Dst: CLEAR_HASH
      Src: /src/nss/lib/zlib/deflate.c:573,1
    - Dst: fill_window
      Src: /src/nss/lib/zlib/deflate.c:587,1
    - Dst: UPDATE_HASH
      Src: /src/nss/lib/zlib/deflate.c:592,1
    - Dst: fill_window
      Src: /src/nss/lib/zlib/deflate.c:601,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 48
    argCount: 3
    argNames:
    - strm
    - dictionary
    - dictLength
    argTypes:
    - z_streamp
    - Bytef*
    - uInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 550
    functionDepth: 3
    functionLinenumber: 550
    functionLinenumberEnd: 613
    functionName: deflateSetDictionary
    functionSourceFile: /src/nss/lib/zlib/deflate.c
    functionUses: 0
    functionsReached:
    - deflateStateCheck
    - fill_window
    - adler32
    - UPDATE_HASH
    - CLEAR_HASH
    linkageType: ''
    returnType: int
    signature: "int deflateSetDictionary(z_streamp strm, const Bytef *dictionary,\n
      \                                uInt  dictLength)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: deflateStateCheck
      Src: /src/nss/lib/zlib/deflate.c:621,1
    - Dst: zmemcpy
      Src: /src/nss/lib/zlib/deflate.c:628,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - strm
    - dictionary
    - dictLength
    argTypes:
    - z_streamp
    - Bytef*
    - uInt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 616
    functionDepth: 1
    functionLinenumber: 616
    functionLinenumberEnd: 632
    functionName: deflateGetDictionary
    functionSourceFile: /src/nss/lib/zlib/deflate.c
    functionUses: 0
    functionsReached:
    - zmemcpy
    - deflateStateCheck
    linkageType: ''
    returnType: int
    signature: "int deflateGetDictionary(z_streamp strm, Bytef *dictionary,\n                                 uInt
      *dictLength)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CLEAR_HASH
      Src: /src/nss/lib/zlib/deflate.c:676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - s
    argTypes:
    - deflate_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 673
    functionDepth: 1
    functionLinenumber: 673
    functionLinenumberEnd: 692
    functionName: lm_init
    functionSourceFile: /src/nss/lib/zlib/deflate.c
    functionUses: 0
    functionsReached:
    - CLEAR_HASH
    linkageType: ''
    returnType: local
    signature: local lm_init(deflate_state *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: deflateResetKeep
      Src: /src/nss/lib/zlib/deflate.c:698,1
    - Dst: lm_init
      Src: /src/nss/lib/zlib/deflate.c:700,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - strm
    argTypes:
    - z_streamp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 695
    functionDepth: 2
    functionLinenumber: 695
    functionLinenumberEnd: 702
    functionName: deflateReset
    functionSourceFile: /src/nss/lib/zlib/deflate.c
    functionUses: 1
    functionsReached:
    - lm_init
    - deflateResetKeep
    linkageType: ''
    returnType: int
    signature: int deflateReset(z_streamp strm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: deflateStateCheck
      Src: /src/nss/lib/zlib/deflate.c:706,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - strm
    - head
    argTypes:
    - z_streamp
    - gz_headerp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 705
    functionDepth: 1
    functionLinenumber: 705
    functionLinenumberEnd: 710
    functionName: deflateSetHeader
    functionSourceFile: /src/nss/lib/zlib/deflate.c
    functionUses: 0
    functionsReached:
    - deflateStateCheck
    linkageType: ''
    returnType: int
    signature: int deflateSetHeader(z_streamp strm, gz_headerp head)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: deflateStateCheck
      Src: /src/nss/lib/zlib/deflate.c:714,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - strm
    - pending
    - bits
    argTypes:
    - z_streamp
    - unsigned*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 713
    functionDepth: 1
    functionLinenumber: 713
    functionLinenumberEnd: 720
    functionName: deflatePending
    functionSourceFile: /src/nss/lib/zlib/deflate.c
    functionUses: 0
    functionsReached:
    - deflateStateCheck
    linkageType: ''
    returnType: int
    signature: int deflatePending(z_streamp strm, unsigned *pending, int *bits)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: deflateStateCheck
      Src: /src/nss/lib/zlib/deflate.c:727,1
    - Dst: _tr_flush_bits
      Src: /src/nss/lib/zlib/deflate.c:744,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 3
    argNames:
    - strm
    - bits
    - value
    argTypes:
    - z_streamp
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 723
    functionDepth: 1
    functionLinenumber: 723
    functionLinenumberEnd: 749
    functionName: deflatePrime
    functionSourceFile: /src/nss/lib/zlib/deflate.c
    functionUses: 0
    functionsReached:
    - _tr_flush_bits
    - deflateStateCheck
    linkageType: ''
    returnType: int
    signature: int deflatePrime(z_streamp strm, int bits, int value)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: deflateStateCheck
      Src: /src/nss/lib/zlib/deflate.c:756,1
    - Dst: deflate
      Src: /src/nss/lib/zlib/deflate.c:772,1
    - Dst: slide_hash
      Src: /src/nss/lib/zlib/deflate.c:781,1
    - Dst: CLEAR_HASH
      Src: /src/nss/lib/zlib/deflate.c:783,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 33
    argCount: 3
    argNames:
    - strm
    - level
    - strategy
    argTypes:
    - z_streamp
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 752
    functionDepth: 1
    functionLinenumber: 752
    functionLinenumberEnd: 794
    functionName: deflateParams
    functionSourceFile: /src/nss/lib/zlib/deflate.c
    functionUses: 0
    functionsReached:
    - deflate
    - CLEAR_HASH
    - slide_hash
    - deflateStateCheck
    linkageType: ''
    returnType: int
    signature: int deflateParams(z_streamp strm, int level, int strategy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: deflateStateCheck
      Src: /src/nss/lib/zlib/deflate.c:801,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - strm
    - good_length
    - max_lazy
    - nice_length
    - max_chain
    argTypes:
    - z_streamp
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 797
    functionDepth: 1
    functionLinenumber: 797
    functionLinenumberEnd: 808
    functionName: deflateTune
    functionSourceFile: /src/nss/lib/zlib/deflate.c
    functionUses: 0
    functionsReached:
    - deflateStateCheck
    linkageType: ''
    returnType: int
    signature: "int deflateTune(z_streamp strm, int good_length, int max_lazy,\n                        int
      nice_length, int max_chain)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: deflateStateCheck
      Src: /src/nss/lib/zlib/deflate.c:850,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 2
    argNames:
    - strm
    - sourceLen
    argTypes:
    - z_streamp
    - uLong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 897
      start: 834
    functionDepth: 1
    functionLinenumber: 834
    functionLinenumberEnd: 897
    functionName: deflateBound
    functionSourceFile: /src/nss/lib/zlib/deflate.c
    functionUses: 0
    functionsReached:
    - deflateStateCheck
    linkageType: ''
    returnType: uLong
    signature: uLong deflateBound(z_streamp strm, uLong sourceLen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: put_byte
      Src: /src/nss/lib/zlib/deflate.c:905,1
    - Dst: put_byte
      Src: /src/nss/lib/zlib/deflate.c:906,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - b
    argTypes:
    - deflate_state*
    - uInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 904
    functionDepth: 1
    functionLinenumber: 904
    functionLinenumberEnd: 907
    functionName: putShortMSB
    functionSourceFile: /src/nss/lib/zlib/deflate.c
    functionUses: 0
    functionsReached:
    - put_byte
    linkageType: ''
    returnType: local
    signature: local putShortMSB(deflate_state *s, uInt b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _tr_flush_bits
      Src: /src/nss/lib/zlib/deflate.c:919,1
    - Dst: zmemcpy
      Src: /src/nss/lib/zlib/deflate.c:924,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - strm
    argTypes:
    - z_streamp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 933
      start: 915
    functionDepth: 0
    functionLinenumber: 915
    functionLinenumberEnd: 933
    functionName: flush_pending
    functionSourceFile: /src/nss/lib/zlib/deflate.c
    functionUses: 0
    functionsReached:
    - zmemcpy
    - _tr_flush_bits
    linkageType: ''
    returnType: local
    signature: local flush_pending(z_streamp strm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - beg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 938
    functionDepth: 0
    functionLinenumber: 938
    functionLinenumberEnd: 944
    functionName: HCRC_UPDATE
    functionSourceFile: /src/nss/lib/zlib/deflate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HCRC_UPDATE(beg)
  - BBCount: 51
    BranchProfiles: []
    Callsites:
    - Dst: deflateStateCheck
      Src: /src/nss/lib/zlib/deflate.c:950,1
    - Dst: ERR_RETURN
      Src: /src/nss/lib/zlib/deflate.c:958,1
    - Dst: ERR_RETURN
      Src: /src/nss/lib/zlib/deflate.c:960,1
    - Dst: flush_pending
      Src: /src/nss/lib/zlib/deflate.c:967,1
    - Dst: RANK
      Src: /src/nss/lib/zlib/deflate.c:983,1
    - Dst: RANK
      Src: /src/nss/lib/zlib/deflate.c:983,1
    - Dst: ERR_RETURN
      Src: /src/nss/lib/zlib/deflate.c:985,1
    - Dst: ERR_RETURN
      Src: /src/nss/lib/zlib/deflate.c:990,1
    - Dst: putShortMSB
      Src: /src/nss/lib/zlib/deflate.c:1013,1
    - Dst: putShortMSB
      Src: /src/nss/lib/zlib/deflate.c:1017,1
    - Dst: putShortMSB
      Src: /src/nss/lib/zlib/deflate.c:1018,1
    - Dst: adler32
      Src: /src/nss/lib/zlib/deflate.c:1020,1
    - Dst: flush_pending
      Src: /src/nss/lib/zlib/deflate.c:1024,1
    - Dst: crc32
      Src: /src/nss/lib/zlib/deflate.c:1033,1
    - Dst: put_byte
      Src: /src/nss/lib/zlib/deflate.c:1034,1
    - Dst: put_byte
      Src: /src/nss/lib/zlib/deflate.c:1035,1
    - Dst: put_byte
      Src: /src/nss/lib/zlib/deflate.c:1036,1
    - Dst: put_byte
      Src: /src/nss/lib/zlib/deflate.c:1038,1
    - Dst: put_byte
      Src: /src/nss/lib/zlib/deflate.c:1039,1
    - Dst: put_byte
      Src: /src/nss/lib/zlib/deflate.c:1040,1
    - Dst: put_byte
      Src: /src/nss/lib/zlib/deflate.c:1041,1
    - Dst: put_byte
      Src: /src/nss/lib/zlib/deflate.c:1042,1
    - Dst: put_byte
      Src: /src/nss/lib/zlib/deflate.c:1043,1
    - Dst: put_byte
      Src: /src/nss/lib/zlib/deflate.c:1046,1
    - Dst: flush_pending
      Src: /src/nss/lib/zlib/deflate.c:1050,1
    - Dst: put_byte
      Src: /src/nss/lib/zlib/deflate.c:1057,1
    - Dst: put_byte
      Src: /src/nss/lib/zlib/deflate.c:1063,1
    - Dst: put_byte
      Src: /src/nss/lib/zlib/deflate.c:1064,1
    - Dst: put_byte
      Src: /src/nss/lib/zlib/deflate.c:1065,1
    - Dst: put_byte
      Src: /src/nss/lib/zlib/deflate.c:1066,1
    - Dst: put_byte
      Src: /src/nss/lib/zlib/deflate.c:1067,1
    - Dst: put_byte
      Src: /src/nss/lib/zlib/deflate.c:1070,1
    - Dst: put_byte
      Src: /src/nss/lib/zlib/deflate.c:1072,1
    - Dst: put_byte
      Src: /src/nss/lib/zlib/deflate.c:1073,1
    - Dst: crc32
      Src: /src/nss/lib/zlib/deflate.c:1076,1
    - Dst: zmemcpy
      Src: /src/nss/lib/zlib/deflate.c:1088,1
    - Dst: HCRC_UPDATE
      Src: /src/nss/lib/zlib/deflate.c:1091,1
    - Dst: flush_pending
      Src: /src/nss/lib/zlib/deflate.c:1093,1
    - Dst: zmemcpy
      Src: /src/nss/lib/zlib/deflate.c:1101,1
    - Dst: HCRC_UPDATE
      Src: /src/nss/lib/zlib/deflate.c:1104,1
    - Dst: HCRC_UPDATE
      Src: /src/nss/lib/zlib/deflate.c:1115,1
    - Dst: flush_pending
      Src: /src/nss/lib/zlib/deflate.c:1116,1
    - Dst: put_byte
      Src: /src/nss/lib/zlib/deflate.c:1124,1
    - Dst: HCRC_UPDATE
      Src: /src/nss/lib/zlib/deflate.c:1126,1
    - Dst: HCRC_UPDATE
      Src: /src/nss/lib/zlib/deflate.c:1137,1
    - Dst: flush_pending
      Src: /src/nss/lib/zlib/deflate.c:1138,1
    - Dst: put_byte
      Src: /src/nss/lib/zlib/deflate.c:1146,1
    - Dst: HCRC_UPDATE
      Src: /src/nss/lib/zlib/deflate.c:1148,1
    - Dst: flush_pending
      Src: /src/nss/lib/zlib/deflate.c:1155,1
    - Dst: put_byte
      Src: /src/nss/lib/zlib/deflate.c:1161,1
    - Dst: put_byte
      Src: /src/nss/lib/zlib/deflate.c:1162,1
    - Dst: crc32
      Src: /src/nss/lib/zlib/deflate.c:1163,1
    - Dst: flush_pending
      Src: /src/nss/lib/zlib/deflate.c:1168,1
    - Dst: deflate_stored
      Src: /src/nss/lib/zlib/deflate.c:1182,1
    - Dst: deflate_huff
      Src: /src/nss/lib/zlib/deflate.c:1183,1
    - Dst: deflate_rle
      Src: /src/nss/lib/zlib/deflate.c:1184,1
    - Dst: _tr_align
      Src: /src/nss/lib/zlib/deflate.c:1205,1
    - Dst: _tr_stored_block
      Src: /src/nss/lib/zlib/deflate.c:1207,1
    - Dst: CLEAR_HASH
      Src: /src/nss/lib/zlib/deflate.c:1212,1
    - Dst: flush_pending
      Src: /src/nss/lib/zlib/deflate.c:1220,1
    - Dst: put_byte
      Src: /src/nss/lib/zlib/deflate.c:1234,1
    - Dst: put_byte
      Src: /src/nss/lib/zlib/deflate.c:1235,1
    - Dst: put_byte
      Src: /src/nss/lib/zlib/deflate.c:1236,1
    - Dst: put_byte
      Src: /src/nss/lib/zlib/deflate.c:1237,1
    - Dst: put_byte
      Src: /src/nss/lib/zlib/deflate.c:1238,1
    - Dst: put_byte
      Src: /src/nss/lib/zlib/deflate.c:1239,1
    - Dst: put_byte
      Src: /src/nss/lib/zlib/deflate.c:1240,1
    - Dst: put_byte
      Src: /src/nss/lib/zlib/deflate.c:1241,1
    - Dst: putShortMSB
      Src: /src/nss/lib/zlib/deflate.c:1246,1
    - Dst: putShortMSB
      Src: /src/nss/lib/zlib/deflate.c:1247,1
    - Dst: flush_pending
      Src: /src/nss/lib/zlib/deflate.c:1249,1
    CyclomaticComplexity: 71
    EdgeCount: 71
    ICount: 224
    argCount: 2
    argNames:
    - strm
    - flush
    argTypes:
    - z_streamp
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 946
    functionDepth: 2
    functionLinenumber: 946
    functionLinenumberEnd: 1255
    functionName: deflate
    functionSourceFile: /src/nss/lib/zlib/deflate.c
    functionUses: 2
    functionsReached:
    - RANK
    - deflate_stored
    - zmemcpy
    - HCRC_UPDATE
    - deflateStateCheck
    - put_byte
    - deflate_rle
    - flush_pending
    - ERR_RETURN
    - putShortMSB
    - adler32
    - _tr_stored_block
    - CLEAR_HASH
    - crc32
    - _tr_align
    - deflate_huff
    linkageType: ''
    returnType: int
    signature: int deflate(z_streamp strm, int flush)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: deflateStateCheck
      Src: /src/nss/lib/zlib/deflate.c:1261,1
    - Dst: TRY_FREE
      Src: /src/nss/lib/zlib/deflate.c:1266,1
    - Dst: TRY_FREE
      Src: /src/nss/lib/zlib/deflate.c:1267,1
    - Dst: TRY_FREE
      Src: /src/nss/lib/zlib/deflate.c:1268,1
    - Dst: TRY_FREE
      Src: /src/nss/lib/zlib/deflate.c:1269,1
    - Dst: ZFREE
      Src: /src/nss/lib/zlib/deflate.c:1271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - strm
    argTypes:
    - z_streamp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1275
      start: 1258
    functionDepth: 1
    functionLinenumber: 1258
    functionLinenumberEnd: 1275
    functionName: deflateEnd
    functionSourceFile: /src/nss/lib/zlib/deflate.c
    functionUses: 2
    functionsReached:
    - ZFREE
    - TRY_FREE
    - deflateStateCheck
    linkageType: ''
    returnType: int
    signature: int deflateEnd(z_streamp strm)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: deflateStateCheck
      Src: /src/nss/lib/zlib/deflate.c:1292,1
    - Dst: zmemcpy
      Src: /src/nss/lib/zlib/deflate.c:1298,1
    - Dst: ZALLOC
      Src: /src/nss/lib/zlib/deflate.c:1300,1
    - Dst: zmemcpy
      Src: /src/nss/lib/zlib/deflate.c:1303,1
    - Dst: ZALLOC
      Src: /src/nss/lib/zlib/deflate.c:1306,1
    - Dst: ZALLOC
      Src: /src/nss/lib/zlib/deflate.c:1307,1
    - Dst: ZALLOC
      Src: /src/nss/lib/zlib/deflate.c:1308,1
    - Dst: ZALLOC
      Src: /src/nss/lib/zlib/deflate.c:1309,1
    - Dst: deflateEnd
      Src: /src/nss/lib/zlib/deflate.c:1313,1
    - Dst: zmemcpy
      Src: /src/nss/lib/zlib/deflate.c:1317,1
    - Dst: zmemcpy
      Src: /src/nss/lib/zlib/deflate.c:1318,1
    - Dst: zmemcpy
      Src: /src/nss/lib/zlib/deflate.c:1319,1
    - Dst: zmemcpy
      Src: /src/nss/lib/zlib/deflate.c:1320,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 2
    argNames:
    - dest
    - source
    argTypes:
    - z_streamp
    - z_streamp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1336
      start: 1282
    functionDepth: 2
    functionLinenumber: 1282
    functionLinenumberEnd: 1336
    functionName: deflateCopy
    functionSourceFile: /src/nss/lib/zlib/deflate.c
    functionUses: 0
    functionsReached:
    - deflateEnd
    - zmemcpy
    - ZALLOC
    - deflateStateCheck
    linkageType: ''
    returnType: int
    signature: int deflateCopy(z_streamp dest, z_streamp source)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: MAX_DIST
      Src: /src/nss/lib/zlib/deflate.c:1355,1
    - Dst: MAX_DIST
      Src: /src/nss/lib/zlib/deflate.c:1356,1
    - Dst: Assert
      Src: /src/nss/lib/zlib/deflate.c:1379,1
    - Dst: Assert
      Src: /src/nss/lib/zlib/deflate.c:1390,1
    - Dst: Assert
      Src: /src/nss/lib/zlib/deflate.c:1394,1
    - Dst: Assert
      Src: /src/nss/lib/zlib/deflate.c:1421,1
    - Dst: Assert
      Src: /src/nss/lib/zlib/deflate.c:1432,1
    - Dst: Assert
      Src: /src/nss/lib/zlib/deflate.c:1453,1
    - Dst: Assert
      Src: /src/nss/lib/zlib/deflate.c:1465,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 44
    argCount: 2
    argNames:
    - s
    - cur_match
    argTypes:
    - deflate_state*
    - IPos
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1489
      start: 1348
    functionDepth: 1
    functionLinenumber: 1348
    functionLinenumberEnd: 1489
    functionName: longest_match
    functionSourceFile: /src/nss/lib/zlib/deflate.c
    functionUses: 0
    functionsReached:
    - MAX_DIST
    - Assert
    linkageType: ''
    returnType: local
    signature: local longest_match(deflate_state *s, IPos cur_match)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Assert
      Src: /src/nss/lib/zlib/deflate.c:1505,1
    - Dst: Assert
      Src: /src/nss/lib/zlib/deflate.c:1507,1
    - Dst: Assert
      Src: /src/nss/lib/zlib/deflate.c:1510,1
    - Dst: Assert
      Src: /src/nss/lib/zlib/deflate.c:1525,1
    - Dst: Assert
      Src: /src/nss/lib/zlib/deflate.c:1537,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 17
    argCount: 2
    argNames:
    - s
    - cur_match
    argTypes:
    - deflate_state*
    - IPos
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1545
      start: 1496
    functionDepth: 1
    functionLinenumber: 1496
    functionLinenumberEnd: 1545
    functionName: longest_match
    functionSourceFile: /src/nss/lib/zlib/deflate.c
    functionUses: 0
    functionsReached:
    - Assert
    linkageType: ''
    returnType: local
    signature: local longest_match(deflate_state *s, IPos cur_match)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: zmemcmp
      Src: /src/nss/lib/zlib/deflate.c:1568,1
    - Dst: fprintf
      Src: /src/nss/lib/zlib/deflate.c:1569,1
    - Dst: fprintf
      Src: /src/nss/lib/zlib/deflate.c:1572,1
    - Dst: z_error
      Src: /src/nss/lib/zlib/deflate.c:1574,1
    - Dst: fprintf
      Src: /src/nss/lib/zlib/deflate.c:1577,1
    - Dst: putc
      Src: /src/nss/lib/zlib/deflate.c:1578,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - s
    - start
    - match
    - length
    argTypes:
    - deflate_state*
    - IPos
    - IPos
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1580
      start: 1557
    functionDepth: 0
    functionLinenumber: 1557
    functionLinenumberEnd: 1580
    functionName: check_match
    functionSourceFile: /src/nss/lib/zlib/deflate.c
    functionUses: 0
    functionsReached:
    - fprintf
    - zmemcmp
    - z_error
    - putc
    linkageType: ''
    returnType: local
    signature: local check_match(deflate_state *s, IPos start, IPos match, int length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - last
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1599
      start: 1589
    functionDepth: 0
    functionLinenumber: 1589
    functionLinenumberEnd: 1599
    functionName: FLUSH_BLOCK_ONLY
    functionSourceFile: /src/nss/lib/zlib/deflate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLUSH_BLOCK_ONLY(s, last)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - last
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1605
      start: 1601
    functionDepth: 0
    functionLinenumber: 1601
    functionLinenumberEnd: 1605
    functionName: FLUSH_BLOCK
    functionSourceFile: /src/nss/lib/zlib/deflate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLUSH_BLOCK(s, last)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1611
      start: 1610
    functionDepth: 0
    functionLinenumber: 1610
    functionLinenumberEnd: 1611
    functionName: MIN
    functionSourceFile: /src/nss/lib/zlib/deflate.c
    functionUses: 51
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIN(a, b)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/nss/lib/zlib/deflate.c:1632,1
    - Dst: _tr_stored_block
      Src: /src/nss/lib/zlib/deflate.c:1671,1
    - Dst: flush_pending
      Src: /src/nss/lib/zlib/deflate.c:1680,1
    - Dst: zmemcpy
      Src: /src/nss/lib/zlib/deflate.c:1692,1
    - Dst: read_buf
      Src: /src/nss/lib/zlib/deflate.c:1704,1
    - Dst: zmemcpy
      Src: /src/nss/lib/zlib/deflate.c:1724,1
    - Dst: zmemcpy
      Src: /src/nss/lib/zlib/deflate.c:1732,1
    - Dst: zmemcpy
      Src: /src/nss/lib/zlib/deflate.c:1738,1
    - Dst: MIN
      Src: /src/nss/lib/zlib/deflate.c:1740,1
    - Dst: zmemcpy
      Src: /src/nss/lib/zlib/deflate.c:1762,1
    - Dst: read_buf
      Src: /src/nss/lib/zlib/deflate.c:1772,1
    - Dst: MIN
      Src: /src/nss/lib/zlib/deflate.c:1774,1
    - Dst: MIN
      Src: /src/nss/lib/zlib/deflate.c:1786,1
    - Dst: MIN
      Src: /src/nss/lib/zlib/deflate.c:1787,1
    - Dst: MIN
      Src: /src/nss/lib/zlib/deflate.c:1792,1
    - Dst: _tr_stored_block
      Src: /src/nss/lib/zlib/deflate.c:1795,1
    - Dst: flush_pending
      Src: /src/nss/lib/zlib/deflate.c:1797,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 100
    argCount: 2
    argNames:
    - s
    - flush
    argTypes:
    - deflate_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1802
      start: 1627
    functionDepth: 2
    functionLinenumber: 1627
    functionLinenumberEnd: 1802
    functionName: block_state::deflate_stored
    functionSourceFile: /src/nss/lib/zlib/deflate.c
    functionUses: 0
    functionsReached:
    - zmemcpy
    - flush_pending
    - _tr_stored_block
    - MIN
    - read_buf
    linkageType: ''
    returnType: local
    signature: local block_state deflate_stored(deflate_state *s, int flush)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fill_window
      Src: /src/nss/lib/zlib/deflate.c:1822,1
    - Dst: INSERT_STRING
      Src: /src/nss/lib/zlib/deflate.c:1834,1
    - Dst: MAX_DIST
      Src: /src/nss/lib/zlib/deflate.c:1840,1
    - Dst: longest_match
      Src: /src/nss/lib/zlib/deflate.c:1845,1
    - Dst: check_match
      Src: /src/nss/lib/zlib/deflate.c:1849,1
    - Dst: _tr_tally_dist
      Src: /src/nss/lib/zlib/deflate.c:1851,1
    - Dst: INSERT_STRING
      Src: /src/nss/lib/zlib/deflate.c:1865,1
    - Dst: UPDATE_HASH
      Src: /src/nss/lib/zlib/deflate.c:1877,1
    - Dst: Tracevv
      Src: /src/nss/lib/zlib/deflate.c:1887,1
    - Dst: _tr_tally_lit
      Src: /src/nss/lib/zlib/deflate.c:1888,1
    - Dst: FLUSH_BLOCK
      Src: /src/nss/lib/zlib/deflate.c:1892,1
    - Dst: FLUSH_BLOCK
      Src: /src/nss/lib/zlib/deflate.c:1896,1
    - Dst: FLUSH_BLOCK
      Src: /src/nss/lib/zlib/deflate.c:1900,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 52
    argCount: 2
    argNames:
    - s
    - flush
    argTypes:
    - deflate_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1902
      start: 1811
    functionDepth: 3
    functionLinenumber: 1811
    functionLinenumberEnd: 1902
    functionName: block_state::deflate_fast
    functionSourceFile: /src/nss/lib/zlib/deflate.c
    functionUses: 0
    functionsReached:
    - _tr_tally_lit
    - MAX_DIST
    - check_match
    - fill_window
    - FLUSH_BLOCK
    - INSERT_STRING
    - Tracevv
    - UPDATE_HASH
    - _tr_tally_dist
    - longest_match
    linkageType: ''
    returnType: local
    signature: local block_state deflate_fast(deflate_state *s, int flush)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: fill_window
      Src: /src/nss/lib/zlib/deflate.c:1922,1
    - Dst: INSERT_STRING
      Src: /src/nss/lib/zlib/deflate.c:1934,1
    - Dst: MAX_DIST
      Src: /src/nss/lib/zlib/deflate.c:1943,1
    - Dst: longest_match
      Src: /src/nss/lib/zlib/deflate.c:1948,1
    - Dst: check_match
      Src: /src/nss/lib/zlib/deflate.c:1971,1
    - Dst: _tr_tally_dist
      Src: /src/nss/lib/zlib/deflate.c:1973,1
    - Dst: INSERT_STRING
      Src: /src/nss/lib/zlib/deflate.c:1985,1
    - Dst: FLUSH_BLOCK
      Src: /src/nss/lib/zlib/deflate.c:1992,1
    - Dst: Tracevv
      Src: /src/nss/lib/zlib/deflate.c:1999,1
    - Dst: _tr_tally_lit
      Src: /src/nss/lib/zlib/deflate.c:2000,1
    - Dst: FLUSH_BLOCK_ONLY
      Src: /src/nss/lib/zlib/deflate.c:2002,1
    - Dst: Assert
      Src: /src/nss/lib/zlib/deflate.c:2016,1
    - Dst: Tracevv
      Src: /src/nss/lib/zlib/deflate.c:2018,1
    - Dst: _tr_tally_lit
      Src: /src/nss/lib/zlib/deflate.c:2019,1
    - Dst: FLUSH_BLOCK
      Src: /src/nss/lib/zlib/deflate.c:2024,1
    - Dst: FLUSH_BLOCK
      Src: /src/nss/lib/zlib/deflate.c:2028,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 68
    argCount: 2
    argNames:
    - s
    - flush
    argTypes:
    - deflate_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2030
      start: 1910
    functionDepth: 3
    functionLinenumber: 1910
    functionLinenumberEnd: 2030
    functionName: block_state::deflate_slow
    functionSourceFile: /src/nss/lib/zlib/deflate.c
    functionUses: 0
    functionsReached:
    - _tr_tally_lit
    - MAX_DIST
    - FLUSH_BLOCK_ONLY
    - check_match
    - Assert
    - fill_window
    - FLUSH_BLOCK
    - INSERT_STRING
    - Tracevv
    - _tr_tally_dist
    - longest_match
    linkageType: ''
    returnType: local
    signature: local block_state deflate_slow(deflate_state *s, int flush)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fill_window
      Src: /src/nss/lib/zlib/deflate.c:2049,1
    - Dst: Assert
      Src: /src/nss/lib/zlib/deflate.c:2073,1
    - Dst: check_match
      Src: /src/nss/lib/zlib/deflate.c:2079,1
    - Dst: _tr_tally_dist
      Src: /src/nss/lib/zlib/deflate.c:2081,1
    - Dst: Tracevv
      Src: /src/nss/lib/zlib/deflate.c:2088,1
    - Dst: _tr_tally_lit
      Src: /src/nss/lib/zlib/deflate.c:2089,1
    - Dst: FLUSH_BLOCK
      Src: /src/nss/lib/zlib/deflate.c:2093,1
    - Dst: FLUSH_BLOCK
      Src: /src/nss/lib/zlib/deflate.c:2097,1
    - Dst: FLUSH_BLOCK
      Src: /src/nss/lib/zlib/deflate.c:2101,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 47
    argCount: 2
    argNames:
    - s
    - flush
    argTypes:
    - deflate_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2103
      start: 2038
    functionDepth: 3
    functionLinenumber: 2038
    functionLinenumberEnd: 2103
    functionName: block_state::deflate_rle
    functionSourceFile: /src/nss/lib/zlib/deflate.c
    functionUses: 0
    functionsReached:
    - _tr_tally_lit
    - check_match
    - Assert
    - fill_window
    - FLUSH_BLOCK
    - Tracevv
    - _tr_tally_dist
    linkageType: ''
    returnType: local
    signature: local block_state deflate_rle(deflate_state *s, int flush)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fill_window
      Src: /src/nss/lib/zlib/deflate.c:2115,1
    - Dst: Tracevv
      Src: /src/nss/lib/zlib/deflate.c:2125,1
    - Dst: _tr_tally_lit
      Src: /src/nss/lib/zlib/deflate.c:2126,1
    - Dst: FLUSH_BLOCK
      Src: /src/nss/lib/zlib/deflate.c:2129,1
    - Dst: FLUSH_BLOCK
      Src: /src/nss/lib/zlib/deflate.c:2133,1
    - Dst: FLUSH_BLOCK
      Src: /src/nss/lib/zlib/deflate.c:2137,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - s
    - flush
    argTypes:
    - deflate_state*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2139
      start: 2109
    functionDepth: 3
    functionLinenumber: 2109
    functionLinenumberEnd: 2139
    functionName: block_state::deflate_huff
    functionSourceFile: /src/nss/lib/zlib/deflate.c
    functionUses: 0
    functionsReached:
    - Tracevv
    - _tr_tally_lit
    - FLUSH_BLOCK
    - fill_window
    linkageType: ''
    returnType: local
    signature: local block_state deflate_huff(deflate_state *s, int flush)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 288
    functionName: put_byte
    functionSourceFile: /src/nss/lib/zlib/deflate.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: put_byte(s, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 296
    functionName: MAX_DIST
    functionSourceFile: /src/nss/lib/zlib/deflate.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAX_DIST(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dist
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 316
    functionName: d_code
    functionSourceFile: /src/nss/lib/zlib/deflate.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: d_code(dist)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - c
    - ','
    - flush
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 340
    functionName: _tr_tally_lit
    functionSourceFile: /src/nss/lib/zlib/deflate.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _tr_tally_lit(s, c, flush)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - s
    - ','
    - distance
    - ','
    - length
    - ','
    - flush
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 350
    functionName: _tr_tally_dist
    functionSourceFile: /src/nss/lib/zlib/deflate.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _tr_tally_dist(s, distance, length, flush)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - c
    - ','
    - flush
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 359
    functionName: _tr_tally_lit
    functionSourceFile: /src/nss/lib/zlib/deflate.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _tr_tally_lit(s, c, flush)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - s
    - ','
    - distance
    - ','
    - length
    - ','
    - flush
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 370
    functionName: _tr_tally_dist
    functionSourceFile: /src/nss/lib/zlib/deflate.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _tr_tally_dist(s, distance, length, flush)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - c
    - ','
    - flush
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 373
    functionName: _tr_tally_lit
    functionSourceFile: /src/nss/lib/zlib/deflate.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _tr_tally_lit(s, c, flush)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - s
    - ','
    - distance
    - ','
    - length
    - ','
    - flush
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 375
    functionName: _tr_tally_dist
    functionSourceFile: /src/nss/lib/zlib/deflate.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _tr_tally_dist(s, distance, length, flush)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ZALLOC
      Src: /src/nss/lib/zlib/infback.c:51,1
    - Dst: Tracev
      Src: /src/nss/lib/zlib/infback.c:54,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 5
    argNames:
    - strm
    - windowBits
    - window
    - version
    - stream_size
    argTypes:
    - z_streamp
    - int
    - unsigned char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 64
    functionName: inflateBackInit_
    functionSourceFile: /src/nss/lib/zlib/infback.c
    functionUses: 0
    functionsReached:
    - Tracev
    - ZALLOC
    linkageType: ''
    returnType: int
    signature: "int inflateBackInit_(z_streamp strm, int windowBits,\n                             unsigned
      char FAR *window, const char *version,\n                             int stream_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: inflate_table
      Src: /src/nss/lib/zlib/infback.c:96,1
    - Dst: inflate_table
      Src: /src/nss/lib/zlib/infback.c:103,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct inflate_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 115
    functionName: fixedtables
    functionSourceFile: /src/nss/lib/zlib/infback.c
    functionUses: 0
    functionsReached:
    - inflate_table
    linkageType: ''
    returnType: local
    signature: local fixedtables(struct inflate_state FAR *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 129
    functionName: LOAD
    functionSourceFile: /src/nss/lib/zlib/infback.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 140
    functionName: RESTORE
    functionSourceFile: /src/nss/lib/zlib/infback.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RESTORE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 147
    functionName: INITBITS
    functionSourceFile: /src/nss/lib/zlib/infback.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INITBITS()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 161
    functionName: PULL
    functionSourceFile: /src/nss/lib/zlib/infback.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PULL()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 171
    functionName: PULLBYTE
    functionSourceFile: /src/nss/lib/zlib/infback.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PULLBYTE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 180
    functionName: NEEDBITS
    functionSourceFile: /src/nss/lib/zlib/infback.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEEDBITS(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 184
    functionName: BITS
    functionSourceFile: /src/nss/lib/zlib/infback.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BITS(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 191
    functionName: DROPBITS
    functionSourceFile: /src/nss/lib/zlib/infback.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DROPBITS(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 198
    functionName: BYTEBITS
    functionSourceFile: /src/nss/lib/zlib/infback.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTEBITS()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 214
    functionName: ROOM
    functionSourceFile: /src/nss/lib/zlib/infback.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROOM()
  - BBCount: 48
    BranchProfiles: []
    Callsites:
    - Dst: BYTEBITS
      Src: /src/nss/lib/zlib/infback.c:282,1
    - Dst: NEEDBITS
      Src: /src/nss/lib/zlib/infback.c:286,1
    - Dst: BITS
      Src: /src/nss/lib/zlib/infback.c:287,1
    - Dst: DROPBITS
      Src: /src/nss/lib/zlib/infback.c:288,1
    - Dst: BITS
      Src: /src/nss/lib/zlib/infback.c:289,1
    - Dst: Tracev
      Src: /src/nss/lib/zlib/infback.c:291,1
    - Dst: fixedtables
      Src: /src/nss/lib/zlib/infback.c:296,1
    - Dst: Tracev
      Src: /src/nss/lib/zlib/infback.c:297,1
    - Dst: Tracev
      Src: /src/nss/lib/zlib/infback.c:302,1
    - Dst: DROPBITS
      Src: /src/nss/lib/zlib/infback.c:310,1
    - Dst: BYTEBITS
      Src: /src/nss/lib/zlib/infback.c:315,1
    - Dst: NEEDBITS
      Src: /src/nss/lib/zlib/infback.c:316,1
    - Dst: Tracev
      Src: /src/nss/lib/zlib/infback.c:323,1
    - Dst: INITBITS
      Src: /src/nss/lib/zlib/infback.c:325,1
    - Dst: PULL
      Src: /src/nss/lib/zlib/infback.c:330,1
    - Dst: ROOM
      Src: /src/nss/lib/zlib/infback.c:331,1
    - Dst: zmemcpy
      Src: /src/nss/lib/zlib/infback.c:334,1
    - Dst: Tracev
      Src: /src/nss/lib/zlib/infback.c:341,1
    - Dst: NEEDBITS
      Src: /src/nss/lib/zlib/infback.c:347,1
    - Dst: BITS
      Src: /src/nss/lib/zlib/infback.c:348,1
    - Dst: DROPBITS
      Src: /src/nss/lib/zlib/infback.c:349,1
    - Dst: BITS
      Src: /src/nss/lib/zlib/infback.c:350,1
    - Dst: DROPBITS
      Src: /src/nss/lib/zlib/infback.c:351,1
    - Dst: BITS
      Src: /src/nss/lib/zlib/infback.c:352,1
    - Dst: DROPBITS
      Src: /src/nss/lib/zlib/infback.c:353,1
    - Dst: Tracev
      Src: /src/nss/lib/zlib/infback.c:361,1
    - Dst: NEEDBITS
      Src: /src/nss/lib/zlib/infback.c:366,1
    - Dst: BITS
      Src: /src/nss/lib/zlib/infback.c:367,1
    - Dst: DROPBITS
      Src: /src/nss/lib/zlib/infback.c:368,1
    - Dst: inflate_table
      Src: /src/nss/lib/zlib/infback.c:375,1
    - Dst: Tracev
      Src: /src/nss/lib/zlib/infback.c:382,1
    - Dst: BITS
      Src: /src/nss/lib/zlib/infback.c:388,1
    - Dst: PULLBYTE
      Src: /src/nss/lib/zlib/infback.c:390,1
    - Dst: DROPBITS
      Src: /src/nss/lib/zlib/infback.c:393,1
    - Dst: NEEDBITS
      Src: /src/nss/lib/zlib/infback.c:398,1
    - Dst: DROPBITS
      Src: /src/nss/lib/zlib/infback.c:399,1
    - Dst: BITS
      Src: /src/nss/lib/zlib/infback.c:406,1
    - Dst: DROPBITS
      Src: /src/nss/lib/zlib/infback.c:407,1
    - Dst: NEEDBITS
      Src: /src/nss/lib/zlib/infback.c:410,1
    - Dst: DROPBITS
      Src: /src/nss/lib/zlib/infback.c:411,1
    - Dst: BITS
      Src: /src/nss/lib/zlib/infback.c:413,1
    - Dst: DROPBITS
      Src: /src/nss/lib/zlib/infback.c:414,1
    - Dst: NEEDBITS
      Src: /src/nss/lib/zlib/infback.c:417,1
    - Dst: DROPBITS
      Src: /src/nss/lib/zlib/infback.c:418,1
    - Dst: BITS
      Src: /src/nss/lib/zlib/infback.c:420,1
    - Dst: DROPBITS
      Src: /src/nss/lib/zlib/infback.c:421,1
    - Dst: inflate_table
      Src: /src/nss/lib/zlib/infback.c:449,1
    - Dst: inflate_table
      Src: /src/nss/lib/zlib/infback.c:458,1
    - Dst: Tracev
      Src: /src/nss/lib/zlib/infback.c:465,1
    - Dst: RESTORE
      Src: /src/nss/lib/zlib/infback.c:472,1
    - Dst: inflate_fast
      Src: /src/nss/lib/zlib/infback.c:475,1
    - Dst: LOAD
      Src: /src/nss/lib/zlib/infback.c:476,1
    - Dst: BITS
      Src: /src/nss/lib/zlib/infback.c:482,1
    - Dst: PULLBYTE
      Src: /src/nss/lib/zlib/infback.c:484,1
    - Dst: BITS
      Src: /src/nss/lib/zlib/infback.c:490,1
    - Dst: PULLBYTE
      Src: /src/nss/lib/zlib/infback.c:492,1
    - Dst: DROPBITS
      Src: /src/nss/lib/zlib/infback.c:494,1
    - Dst: DROPBITS
      Src: /src/nss/lib/zlib/infback.c:496,1
    - Dst: Tracevv
      Src: /src/nss/lib/zlib/infback.c:501,1
    - Dst: ROOM
      Src: /src/nss/lib/zlib/infback.c:504,1
    - Dst: Tracevv
      Src: /src/nss/lib/zlib/infback.c:513,1
    - Dst: NEEDBITS
      Src: /src/nss/lib/zlib/infback.c:528,1
    - Dst: BITS
      Src: /src/nss/lib/zlib/infback.c:529,1
    - Dst: DROPBITS
      Src: /src/nss/lib/zlib/infback.c:530,1
    - Dst: Tracevv
      Src: /src/nss/lib/zlib/infback.c:532,1
    - Dst: BITS
      Src: /src/nss/lib/zlib/infback.c:536,1
    - Dst: PULLBYTE
      Src: /src/nss/lib/zlib/infback.c:538,1
    - Dst: BITS
      Src: /src/nss/lib/zlib/infback.c:544,1
    - Dst: PULLBYTE
      Src: /src/nss/lib/zlib/infback.c:546,1
    - Dst: DROPBITS
      Src: /src/nss/lib/zlib/infback.c:548,1
    - Dst: DROPBITS
      Src: /src/nss/lib/zlib/infback.c:550,1
    - Dst: NEEDBITS
      Src: /src/nss/lib/zlib/infback.c:561,1
    - Dst: BITS
      Src: /src/nss/lib/zlib/infback.c:562,1
    - Dst: DROPBITS
      Src: /src/nss/lib/zlib/infback.c:563,1
    - Dst: Tracevv
      Src: /src/nss/lib/zlib/infback.c:571,1
    - Dst: ROOM
      Src: /src/nss/lib/zlib/infback.c:575,1
    - Dst: out
      Src: /src/nss/lib/zlib/infback.c:612,1
    CyclomaticComplexity: 87
    EdgeCount: 87
    ICount: 306
    argCount: 5
    argNames:
    - strm
    - in
    - in_desc
    - out
    - out_desc
    argTypes:
    - z_streamp
    - in_func
    - void*
    - out_func
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 619
    functionName: inflateBack
    functionSourceFile: /src/nss/lib/zlib/infback.c
    functionUses: 0
    functionsReached:
    - RESTORE
    - BITS
    - fixedtables
    - zmemcpy
    - inflate_table
    - PULLBYTE
    - BYTEBITS
    - NEEDBITS
    - INITBITS
    - DROPBITS
    - PULL
    - LOAD
    - out
    - inflate_fast
    - Tracevv
    - Tracev
    - ROOM
    linkageType: ''
    returnType: int
    signature: "int inflateBack(z_streamp strm, in_func in, void FAR *in_desc,\n                        out_func
      out, void FAR *out_desc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ZFREE
      Src: /src/nss/lib/zlib/infback.c:624,1
    - Dst: Tracev
      Src: /src/nss/lib/zlib/infback.c:626,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - strm
    argTypes:
    - z_streamp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 621
    functionDepth: 1
    functionLinenumber: 621
    functionLinenumberEnd: 628
    functionName: inflateBackEnd
    functionSourceFile: /src/nss/lib/zlib/infback.c
    functionUses: 0
    functionsReached:
    - Tracev
    - ZFREE
    linkageType: ''
    returnType: int
    signature: int inflateBackEnd(z_streamp strm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: zlibVersion
    functionSourceFile: /src/nss/lib/zlib/zutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * ZEXPORT zlibVersion(void)
  - BBCount: 17
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 66
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 113
    functionName: zlibCompileFlags
    functionSourceFile: /src/nss/lib/zlib/zutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uLong
    signature: uLong zlibCompileFlags(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/lib/zlib/zutil.c:123,1
    - Dst: exit
      Src: /src/nss/lib/zlib/zutil.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: ZLIB_INTERNAL::z_error
    functionSourceFile: /src/nss/lib/zlib/zutil.c
    functionUses: 0
    functionsReached:
    - fprintf
    - exit
    linkageType: ''
    returnType: void
    signature: void ZLIB_INTERNAL z_error(char *m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR_MSG
      Src: /src/nss/lib/zlib/zutil.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 133
    functionName: zError
    functionSourceFile: /src/nss/lib/zlib/zutil.c
    functionUses: 0
    functionsReached:
    - ERR_MSG
    linkageType: ''
    returnType: char
    signature: char * ZEXPORT zError(int err)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - dest
    - source
    - len
    argTypes:
    - Bytef*
    - Bytef*
    - uInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 150
    functionName: ZLIB_INTERNAL::zmemcpy
    functionSourceFile: /src/nss/lib/zlib/zutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ZLIB_INTERNAL zmemcpy(Bytef* dest, const Bytef* source, uInt len)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - s1
    - s2
    - len
    argTypes:
    - Bytef*
    - Bytef*
    - uInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 159
    functionName: ZLIB_INTERNAL::zmemcmp
    functionSourceFile: /src/nss/lib/zlib/zutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ZLIB_INTERNAL zmemcmp(const Bytef* s1, const Bytef* s2, uInt len)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - dest
    - len
    argTypes:
    - Bytef*
    - uInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 166
    functionName: ZLIB_INTERNAL::zmemzero
    functionSourceFile: /src/nss/lib/zlib/zutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ZLIB_INTERNAL zmemzero(Bytef* dest, uInt len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: farmalloc
      Src: /src/nss/lib/zlib/zutil.c:212,1
    - Dst: farmalloc
      Src: /src/nss/lib/zlib/zutil.c:215,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - opaque
    - items
    - size
    argTypes:
    - voidpf
    - unsigned
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 225
    functionName: ZLIB_INTERNAL::zcalloc
    functionSourceFile: /src/nss/lib/zlib/zutil.c
    functionUses: 0
    functionsReached:
    - farmalloc
    linkageType: ''
    returnType: voidpf
    signature: voidpf ZLIB_INTERNAL zcalloc(voidpf opaque, unsigned items, unsigned
      size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: farfree
      Src: /src/nss/lib/zlib/zutil.c:233,1
    - Dst: farfree
      Src: /src/nss/lib/zlib/zutil.c:240,1
    - Dst: Assert
      Src: /src/nss/lib/zlib/zutil.c:247,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - opaque
    - ptr
    argTypes:
    - voidpf
    - voidpf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 248
    functionName: ZLIB_INTERNAL::zcfree
    functionSourceFile: /src/nss/lib/zlib/zutil.c
    functionUses: 0
    functionsReached:
    - farfree
    - Assert
    linkageType: ''
    returnType: void
    signature: void ZLIB_INTERNAL zcfree(voidpf opaque, voidpf ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _halloc
      Src: /src/nss/lib/zlib/zutil.c:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - opaque
    - items
    - size
    argTypes:
    - voidpf
    - uInt
    - uInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 266
    functionName: ZLIB_INTERNAL::zcalloc
    functionSourceFile: /src/nss/lib/zlib/zutil.c
    functionUses: 0
    functionsReached:
    - _halloc
    linkageType: ''
    returnType: voidpf
    signature: voidpf ZLIB_INTERNAL zcalloc(voidpf opaque, uInt items, uInt size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _hfree
      Src: /src/nss/lib/zlib/zutil.c:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - opaque
    - ptr
    argTypes:
    - voidpf
    - voidpf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 271
    functionName: ZLIB_INTERNAL::zcfree
    functionSourceFile: /src/nss/lib/zlib/zutil.c
    functionUses: 0
    functionsReached:
    - _hfree
    linkageType: ''
    returnType: void
    signature: void ZLIB_INTERNAL zcfree(voidpf opaque, voidpf ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/nss/lib/zlib/zutil.c:288,1
    - Dst: calloc
      Src: /src/nss/lib/zlib/zutil.c:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - opaque
    - items
    - size
    argTypes:
    - voidpf
    - unsigned
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 290
    functionName: ZLIB_INTERNAL::zcalloc
    functionSourceFile: /src/nss/lib/zlib/zutil.c
    functionUses: 0
    functionsReached:
    - malloc
    - calloc
    linkageType: ''
    returnType: voidpf
    signature: voidpf ZLIB_INTERNAL zcalloc(voidpf opaque, unsigned items, unsigned
      size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/nss/lib/zlib/zutil.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - opaque
    - ptr
    argTypes:
    - voidpf
    - voidpf
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 295
    functionName: ZLIB_INTERNAL::zcfree
    functionSourceFile: /src/nss/lib/zlib/zutil.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void ZLIB_INTERNAL zcfree(voidpf opaque, voidpf ptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetLastError
      Src: /src/nss/lib/zlib/gzlib.c:33,1
    - Dst: FormatMessage
      Src: /src/nss/lib/zlib/gzlib.c:34,1
    - Dst: wcstombs
      Src: /src/nss/lib/zlib/gzlib.c:55,1
    - Dst: LocalFree
      Src: /src/nss/lib/zlib/gzlib.c:56,1
    - Dst: sprintf
      Src: /src/nss/lib/zlib/gzlib.c:59,1
    - Dst: SetLastError
      Src: /src/nss/lib/zlib/gzlib.c:62,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 64
    functionName: ZLIB_INTERNAL *gz_strwinerror(DWORD error)
    functionSourceFile: /src/nss/lib/zlib/gzlib.c
    functionUses: 0
    functionsReached:
    - FormatMessage
    - SetLastError
    - GetLastError
    - LocalFree
    - wcstombs
    - sprintf
    linkageType: ''
    returnType: char
    signature: char ZLIB_INTERNAL *gz_strwinerror(DWORD error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gz_error
      Src: /src/nss/lib/zlib/gzlib.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - state
    argTypes:
    - gz_statep
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 82
    functionName: gz_reset
    functionSourceFile: /src/nss/lib/zlib/gzlib.c
    functionUses: 0
    functionsReached:
    - gz_error
    linkageType: ''
    returnType: local
    signature: local gz_reset(gz_statep state)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/nss/lib/zlib/gzlib.c:101,1
    - Dst: free
      Src: /src/nss/lib/zlib/gzlib.c:130,1
    - Dst: free
      Src: /src/nss/lib/zlib/gzlib.c:167,1
    - Dst: free
      Src: /src/nss/lib/zlib/gzlib.c:174,1
    - Dst: wcstombs
      Src: /src/nss/lib/zlib/gzlib.c:183,1
    - Dst: strlen
      Src: /src/nss/lib/zlib/gzlib.c:189,1
    - Dst: malloc
      Src: /src/nss/lib/zlib/gzlib.c:190,1
    - Dst: free
      Src: /src/nss/lib/zlib/gzlib.c:192,1
    - Dst: wcstombs
      Src: /src/nss/lib/zlib/gzlib.c:198,1
    - Dst: snprintf
      Src: /src/nss/lib/zlib/gzlib.c:204,1
    - Dst: strcpy
      Src: /src/nss/lib/zlib/gzlib.c:206,1
    - Dst: O_EXCL
      Src: /src/nss/lib/zlib/gzlib.c:223,1
    - Dst: _wopen
      Src: /src/nss/lib/zlib/gzlib.c:233,1
    - Dst: open
      Src: /src/nss/lib/zlib/gzlib.c:235,1
    - Dst: free
      Src: /src/nss/lib/zlib/gzlib.c:237,1
    - Dst: free
      Src: /src/nss/lib/zlib/gzlib.c:238,1
    - Dst: LSEEK
      Src: /src/nss/lib/zlib/gzlib.c:242,1
    - Dst: LSEEK
      Src: /src/nss/lib/zlib/gzlib.c:248,1
    - Dst: gz_reset
      Src: /src/nss/lib/zlib/gzlib.c:253,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 103
    argCount: 3
    argNames:
    - path
    - fd
    - mode
    argTypes:
    - void*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 257
    functionName: gz_open
    functionSourceFile: /src/nss/lib/zlib/gzlib.c
    functionUses: 0
    functionsReached:
    - malloc
    - free
    - O_EXCL
    - strcpy
    - LSEEK
    - open
    - gz_reset
    - snprintf
    - wcstombs
    - _wopen
    - strlen
    linkageType: ''
    returnType: local
    signature: local gz_open(const void *path, int fd, const char *mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gz_open
      Src: /src/nss/lib/zlib/gzlib.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - path
    - mode
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 260
    functionDepth: 2
    functionLinenumber: 260
    functionLinenumberEnd: 262
    functionName: gzopen
    functionSourceFile: /src/nss/lib/zlib/gzlib.c
    functionUses: 0
    functionsReached:
    - gz_open
    linkageType: ''
    returnType: gzFile
    signature: gzFile gzopen(const char *path, const char *mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gz_open
      Src: /src/nss/lib/zlib/gzlib.c:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - path
    - mode
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 265
    functionDepth: 2
    functionLinenumber: 265
    functionLinenumberEnd: 267
    functionName: gzopen64
    functionSourceFile: /src/nss/lib/zlib/gzlib.c
    functionUses: 0
    functionsReached:
    - gz_open
    linkageType: ''
    returnType: gzFile
    signature: gzFile gzopen64(const char *path, const char *mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/nss/lib/zlib/gzlib.c:274,1
    - Dst: snprintf
      Src: /src/nss/lib/zlib/gzlib.c:277,1
    - Dst: sprintf
      Src: /src/nss/lib/zlib/gzlib.c:279,1
    - Dst: gz_open
      Src: /src/nss/lib/zlib/gzlib.c:281,1
    - Dst: free
      Src: /src/nss/lib/zlib/gzlib.c:282,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - fd
    - mode
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 270
    functionDepth: 2
    functionLinenumber: 270
    functionLinenumberEnd: 284
    functionName: gzdopen
    functionSourceFile: /src/nss/lib/zlib/gzlib.c
    functionUses: 0
    functionsReached:
    - malloc
    - free
    - gz_open
    - snprintf
    - sprintf
    linkageType: ''
    returnType: gzFile
    signature: gzFile gzdopen(int fd, const char *mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gz_open
      Src: /src/nss/lib/zlib/gzlib.c:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - path
    - mode
    argTypes:
    - wchar_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 288
    functionDepth: 2
    functionLinenumber: 288
    functionLinenumberEnd: 290
    functionName: gzopen_w
    functionSourceFile: /src/nss/lib/zlib/gzlib.c
    functionUses: 0
    functionsReached:
    - gz_open
    linkageType: ''
    returnType: gzFile
    signature: gzFile gzopen_w(const wchar_t *path, const char *mode)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - file
    - size
    argTypes:
    - gzFile
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 315
    functionName: gzbuffer
    functionSourceFile: /src/nss/lib/zlib/gzlib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int gzbuffer(gzFile file, unsigned size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: LSEEK
      Src: /src/nss/lib/zlib/gzlib.c:332,1
    - Dst: gz_reset
      Src: /src/nss/lib/zlib/gzlib.c:334,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - file
    argTypes:
    - gzFile
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 336
    functionName: gzrewind
    functionSourceFile: /src/nss/lib/zlib/gzlib.c
    functionUses: 0
    functionsReached:
    - LSEEK
    - gz_reset
    linkageType: ''
    returnType: int
    signature: int gzrewind(gzFile file)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: LSEEK
      Src: /src/nss/lib/zlib/gzlib.c:369,1
    - Dst: gz_error
      Src: /src/nss/lib/zlib/gzlib.c:376,1
    - Dst: gzrewind
      Src: /src/nss/lib/zlib/gzlib.c:389,1
    - Dst: GT_OFF
      Src: /src/nss/lib/zlib/gzlib.c:395,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 49
    argCount: 3
    argNames:
    - file
    - offset
    - whence
    argTypes:
    - gzFile
    - z_off64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 339
    functionDepth: 2
    functionLinenumber: 339
    functionLinenumberEnd: 409
    functionName: gzseek64
    functionSourceFile: /src/nss/lib/zlib/gzlib.c
    functionUses: 0
    functionsReached:
    - gzrewind
    - LSEEK
    - GT_OFF
    - gz_error
    linkageType: ''
    returnType: z_off64_t
    signature: z_off64_t gzseek64(gzFile file, z_off64_t offset, int whence)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gzseek64
      Src: /src/nss/lib/zlib/gzlib.c:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - file
    - offset
    - whence
    argTypes:
    - gzFile
    - z_off_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 412
    functionDepth: 3
    functionLinenumber: 412
    functionLinenumberEnd: 417
    functionName: gzseek
    functionSourceFile: /src/nss/lib/zlib/gzlib.c
    functionUses: 0
    functionsReached:
    - gzseek64
    linkageType: ''
    returnType: z_off_t
    signature: z_off_t gzseek(gzFile file, z_off_t offset, int whence)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - file
    argTypes:
    - gzFile
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 432
    functionName: gztell64
    functionSourceFile: /src/nss/lib/zlib/gzlib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: z_off64_t
    signature: z_off64_t gztell64(gzFile file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gztell64
      Src: /src/nss/lib/zlib/gzlib.c:438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - file
    argTypes:
    - gzFile
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 440
    functionName: gztell
    functionSourceFile: /src/nss/lib/zlib/gzlib.c
    functionUses: 0
    functionsReached:
    - gztell64
    linkageType: ''
    returnType: z_off_t
    signature: z_off_t gztell(gzFile file)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: LSEEK
      Src: /src/nss/lib/zlib/gzlib.c:455,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - file
    argTypes:
    - gzFile
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 461
    functionName: gzoffset64
    functionSourceFile: /src/nss/lib/zlib/gzlib.c
    functionUses: 0
    functionsReached:
    - LSEEK
    linkageType: ''
    returnType: z_off64_t
    signature: z_off64_t gzoffset64(gzFile file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gzoffset64
      Src: /src/nss/lib/zlib/gzlib.c:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - file
    argTypes:
    - gzFile
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 464
    functionDepth: 1
    functionLinenumber: 464
    functionLinenumberEnd: 469
    functionName: gzoffset
    functionSourceFile: /src/nss/lib/zlib/gzlib.c
    functionUses: 0
    functionsReached:
    - gzoffset64
    linkageType: ''
    returnType: z_off_t
    signature: z_off_t gzoffset(gzFile file)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - file
    argTypes:
    - gzFile
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 484
    functionName: gzeof
    functionSourceFile: /src/nss/lib/zlib/gzlib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int gzeof(gzFile file)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - file
    - errnum
    argTypes:
    - gzFile
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 502
    functionName: gzerror
    functionSourceFile: /src/nss/lib/zlib/gzlib.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * ZEXPORT gzerror(gzFile file, int *errnum)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: gz_error
      Src: /src/nss/lib/zlib/gzlib.c:520,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - file
    argTypes:
    - gzFile
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 521
    functionName: gzclearerr
    functionSourceFile: /src/nss/lib/zlib/gzlib.c
    functionUses: 0
    functionsReached:
    - gz_error
    linkageType: ''
    returnType: void
    signature: void gzclearerr(gzFile file)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/nss/lib/zlib/gzlib.c:533,1
    - Dst: malloc
      Src: /src/nss/lib/zlib/gzlib.c:551,1
    - Dst: strlen
      Src: /src/nss/lib/zlib/gzlib.c:551,1
    - Dst: strlen
      Src: /src/nss/lib/zlib/gzlib.c:551,1
    - Dst: snprintf
      Src: /src/nss/lib/zlib/gzlib.c:557,1
    - Dst: strlen
      Src: /src/nss/lib/zlib/gzlib.c:557,1
    - Dst: strlen
      Src: /src/nss/lib/zlib/gzlib.c:557,1
    - Dst: strcpy
      Src: /src/nss/lib/zlib/gzlib.c:560,1
    - Dst: strcat
      Src: /src/nss/lib/zlib/gzlib.c:561,1
    - Dst: strcat
      Src: /src/nss/lib/zlib/gzlib.c:562,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - state
    - err
    - msg
    argTypes:
    - gz_statep
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 529
    functionDepth: 1
    functionLinenumber: 529
    functionLinenumberEnd: 564
    functionName: ZLIB_INTERNAL::gz_error
    functionSourceFile: /src/nss/lib/zlib/gzlib.c
    functionUses: 0
    functionsReached:
    - malloc
    - free
    - strcpy
    - snprintf
    - strcat
    - strlen
    linkageType: ''
    returnType: void
    signature: void ZLIB_INTERNAL gz_error(gz_statep state, int err, const char *msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 582
    functionName: gz_intmax
    functionSourceFile: /src/nss/lib/zlib/gzlib.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: unsigned ZLIB_INTERNAL
    signature: unsigned ZLIB_INTERNAL gz_intmax(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: deflateInit
      Src: /src/nss/lib/zlib/compress.c:36,1
    - Dst: deflate
      Src: /src/nss/lib/zlib/compress.c:53,1
    - Dst: deflateEnd
      Src: /src/nss/lib/zlib/compress.c:57,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 5
    argNames:
    - dest
    - destLen
    - source
    - sourceLen
    - level
    argTypes:
    - Bytef*
    - uLongf*
    - Bytef*
    - uLong
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 22
    functionDepth: 3
    functionLinenumber: 22
    functionLinenumberEnd: 59
    functionName: compress2
    functionSourceFile: /src/nss/lib/zlib/compress.c
    functionUses: 0
    functionsReached:
    - deflate
    - deflateEnd
    - deflateInit
    linkageType: ''
    returnType: int
    signature: "int compress2(Bytef *dest, uLongf *destLen, const Bytef *source,\n
      \                     uLong sourceLen, int level)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: compress2
      Src: /src/nss/lib/zlib/compress.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - dest
    - destLen
    - source
    - sourceLen
    argTypes:
    - Bytef*
    - uLongf*
    - Bytef*
    - uLong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 4
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: compress
    functionSourceFile: /src/nss/lib/zlib/compress.c
    functionUses: 17
    functionsReached:
    - compress2
    linkageType: ''
    returnType: int
    signature: "int compress(Bytef *dest, uLongf *destLen, const Bytef *source,\n
      \                    uLong sourceLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sourceLen
    argTypes:
    - uLong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: compressBound
    functionSourceFile: /src/nss/lib/zlib/compress.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uLong
    signature: uLong compressBound(uLong sourceLen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - w
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 148
    functionName: put_short
    functionSourceFile: /src/nss/lib/zlib/trees.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: put_short(s, w)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - code
    - len
    argTypes:
    - unsigned
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 161
    functionName: bi_reverse
    functionSourceFile: /src/nss/lib/zlib/trees.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: local unsigned
    signature: local unsigned bi_reverse(unsigned code, int len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: put_short
      Src: /src/nss/lib/zlib/trees.c:168,1
    - Dst: put_byte
      Src: /src/nss/lib/zlib/trees.c:172,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - s
    argTypes:
    - deflate_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 176
    functionName: bi_flush
    functionSourceFile: /src/nss/lib/zlib/trees.c
    functionUses: 0
    functionsReached:
    - put_short
    - put_byte
    linkageType: ''
    returnType: local
    signature: local bi_flush(deflate_state *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: put_short
      Src: /src/nss/lib/zlib/trees.c:183,1
    - Dst: put_byte
      Src: /src/nss/lib/zlib/trees.c:185,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - s
    argTypes:
    - deflate_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 192
    functionName: bi_windup
    functionSourceFile: /src/nss/lib/zlib/trees.c
    functionUses: 0
    functionsReached:
    - put_short
    - put_byte
    linkageType: ''
    returnType: local
    signature: local bi_windup(deflate_state *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Assert
      Src: /src/nss/lib/zlib/trees.c:218,1
    - Dst: Tracev
      Src: /src/nss/lib/zlib/trees.c:220,1
    - Dst: bi_reverse
      Src: /src/nss/lib/zlib/trees.c:226,1
    - Dst: Tracecv
      Src: /src/nss/lib/zlib/trees.c:228,1
    - Dst: isgraph
      Src: /src/nss/lib/zlib/trees.c:229,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - tree
    - max_code
    - bl_count
    argTypes:
    - ct_data*
    - int
    - ushf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 231
    functionName: gen_codes
    functionSourceFile: /src/nss/lib/zlib/trees.c
    functionUses: 0
    functionsReached:
    - bi_reverse
    - Assert
    - Tracecv
    - Tracev
    - isgraph
    linkageType: ''
    returnType: local
    signature: local gen_codes(ct_data *tree, int max_code, ushf *bl_count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - c
    - ','
    - tree
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 239
    functionName: send_code
    functionSourceFile: /src/nss/lib/zlib/trees.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: send_code(s, c, tree)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - c
    - ','
    - tree
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 245
    functionName: send_code
    functionSourceFile: /src/nss/lib/zlib/trees.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: send_code(s, c, tree)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Tracevv
      Src: /src/nss/lib/zlib/trees.c:253,1
    - Dst: Assert
      Src: /src/nss/lib/zlib/trees.c:254,1
    - Dst: put_short
      Src: /src/nss/lib/zlib/trees.c:263,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - s
    - value
    - length
    argTypes:
    - deflate_state*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 270
    functionName: send_bits
    functionSourceFile: /src/nss/lib/zlib/trees.c
    functionUses: 0
    functionsReached:
    - put_short
    - Tracevv
    - Assert
    linkageType: ''
    returnType: local
    signature: local send_bits(deflate_state *s, int value, int length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - value
    - ','
    - length
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 286
    functionName: send_bits
    functionSourceFile: /src/nss/lib/zlib/trees.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: send_bits(s, value, length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Assert
      Src: /src/nss/lib/zlib/trees.c:324,1
    - Dst: Assert
      Src: /src/nss/lib/zlib/trees.c:339,1
    - Dst: Assert
      Src: /src/nss/lib/zlib/trees.c:347,1
    - Dst: gen_codes
      Src: /src/nss/lib/zlib/trees.c:360,1
    - Dst: bi_reverse
      Src: /src/nss/lib/zlib/trees.c:365,1
    - Dst: gen_trees_header
      Src: /src/nss/lib/zlib/trees.c:370,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 294
    functionDepth: 2
    functionLinenumber: 294
    functionLinenumberEnd: 373
    functionName: tr_static_init
    functionSourceFile: /src/nss/lib/zlib/trees.c
    functionUses: 0
    functionsReached:
    - gen_trees_header
    - gen_codes
    - Assert
    - bi_reverse
    linkageType: ''
    returnType: local
    signature: local tr_static_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - i
    - ','
    - last
    - ','
    - width
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 386
    functionName: SEPARATOR
    functionSourceFile: /src/nss/lib/zlib/trees.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SEPARATOR(i, last, width)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/nss/lib/zlib/trees.c:388,1
    - Dst: Assert
      Src: /src/nss/lib/zlib/trees.c:391,1
    - Dst: fprintf
      Src: /src/nss/lib/zlib/trees.c:392,1
    - Dst: fprintf
      Src: /src/nss/lib/zlib/trees.c:395,1
    - Dst: fprintf
      Src: /src/nss/lib/zlib/trees.c:397,1
    - Dst: SEPARATOR
      Src: /src/nss/lib/zlib/trees.c:398,1
    - Dst: fprintf
      Src: /src/nss/lib/zlib/trees.c:401,1
    - Dst: fprintf
      Src: /src/nss/lib/zlib/trees.c:403,1
    - Dst: SEPARATOR
      Src: /src/nss/lib/zlib/trees.c:404,1
    - Dst: fprintf
      Src: /src/nss/lib/zlib/trees.c:407,1
    - Dst: fprintf
      Src: /src/nss/lib/zlib/trees.c:409,1
    - Dst: SEPARATOR
      Src: /src/nss/lib/zlib/trees.c:410,1
    - Dst: fprintf
      Src: /src/nss/lib/zlib/trees.c:413,1
    - Dst: fprintf
      Src: /src/nss/lib/zlib/trees.c:416,1
    - Dst: SEPARATOR
      Src: /src/nss/lib/zlib/trees.c:417,1
    - Dst: fprintf
      Src: /src/nss/lib/zlib/trees.c:420,1
    - Dst: fprintf
      Src: /src/nss/lib/zlib/trees.c:422,1
    - Dst: SEPARATOR
      Src: /src/nss/lib/zlib/trees.c:423,1
    - Dst: fprintf
      Src: /src/nss/lib/zlib/trees.c:426,1
    - Dst: fprintf
      Src: /src/nss/lib/zlib/trees.c:428,1
    - Dst: SEPARATOR
      Src: /src/nss/lib/zlib/trees.c:429,1
    - Dst: fclose
      Src: /src/nss/lib/zlib/trees.c:432,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 433
    functionName: gen_trees_header
    functionSourceFile: /src/nss/lib/zlib/trees.c
    functionUses: 1
    functionsReached:
    - fclose
    - Assert
    - fprintf
    - fopen
    - SEPARATOR
    linkageType: ''
    returnType: void
    signature: void gen_trees_header(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - s
    argTypes:
    - deflate_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 450
    functionName: init_block
    functionSourceFile: /src/nss/lib/zlib/trees.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: local
    signature: local init_block(deflate_state *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tr_static_init
      Src: /src/nss/lib/zlib/trees.c:456,1
    - Dst: init_block
      Src: /src/nss/lib/zlib/trees.c:475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - s
    argTypes:
    - deflate_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 455
    functionDepth: 3
    functionLinenumber: 455
    functionLinenumberEnd: 476
    functionName: ZLIB_INTERNAL::_tr_init
    functionSourceFile: /src/nss/lib/zlib/trees.c
    functionUses: 0
    functionsReached:
    - init_block
    - tr_static_init
    linkageType: ''
    returnType: void
    signature: void ZLIB_INTERNAL _tr_init(deflate_state *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - tree
    - ','
    - top
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 492
    functionName: pqremove
    functionSourceFile: /src/nss/lib/zlib/trees.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pqremove(s, tree, top)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - tree
    - ','
    - n
    - ','
    - m
    - ','
    - depth
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 500
    functionName: smaller
    functionSourceFile: /src/nss/lib/zlib/trees.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: smaller(tree, n, m, depth)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: smaller
      Src: /src/nss/lib/zlib/trees.c:513,1
    - Dst: smaller
      Src: /src/nss/lib/zlib/trees.c:517,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - s
    - tree
    - k
    argTypes:
    - deflate_state*
    - ct_data*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 507
    functionDepth: 1
    functionLinenumber: 507
    functionLinenumberEnd: 526
    functionName: pqdownheap
    functionSourceFile: /src/nss/lib/zlib/trees.c
    functionUses: 0
    functionsReached:
    - smaller
    linkageType: ''
    returnType: local
    signature: local pqdownheap(deflate_state *s, ct_data *tree, int k)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Tracev
      Src: /src/nss/lib/zlib/trees.c:577,1
    - Dst: Tracev
      Src: /src/nss/lib/zlib/trees.c:604,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 2
    argNames:
    - s
    - desc
    argTypes:
    - deflate_state*
    - tree_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 538
    functionDepth: 1
    functionLinenumber: 538
    functionLinenumberEnd: 611
    functionName: gen_bitlen
    functionSourceFile: /src/nss/lib/zlib/trees.c
    functionUses: 0
    functionsReached:
    - Tracev
    linkageType: ''
    returnType: local
    signature: local gen_bitlen(deflate_state *s, tree_desc *desc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pqdownheap
      Src: /src/nss/lib/zlib/trees.c:665,1
    - Dst: pqremove
      Src: /src/nss/lib/zlib/trees.c:672,1
    - Dst: fprintf
      Src: /src/nss/lib/zlib/trees.c:685,1
    - Dst: pqdownheap
      Src: /src/nss/lib/zlib/trees.c:691,1
    - Dst: gen_bitlen
      Src: /src/nss/lib/zlib/trees.c:700,1
    - Dst: gen_codes
      Src: /src/nss/lib/zlib/trees.c:703,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 2
    argNames:
    - s
    - desc
    argTypes:
    - deflate_state*
    - tree_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 625
    functionDepth: 2
    functionLinenumber: 625
    functionLinenumberEnd: 704
    functionName: build_tree
    functionSourceFile: /src/nss/lib/zlib/trees.c
    functionUses: 0
    functionsReached:
    - gen_bitlen
    - pqremove
    - fprintf
    - pqdownheap
    - gen_codes
    linkageType: ''
    returnType: local
    signature: local build_tree(deflate_state *s, tree_desc *desc)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 3
    argNames:
    - s
    - tree
    - max_code
    argTypes:
    - deflate_state*
    - ct_data*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 710
    functionDepth: 0
    functionLinenumber: 710
    functionLinenumberEnd: 745
    functionName: scan_tree
    functionSourceFile: /src/nss/lib/zlib/trees.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: local
    signature: local scan_tree(deflate_state *s, ct_data *tree, int max_code)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: send_code
      Src: /src/nss/lib/zlib/trees.c:768,1
    - Dst: send_code
      Src: /src/nss/lib/zlib/trees.c:772,1
    - Dst: Assert
      Src: /src/nss/lib/zlib/trees.c:774,1
    - Dst: send_code
      Src: /src/nss/lib/zlib/trees.c:775,1
    - Dst: send_bits
      Src: /src/nss/lib/zlib/trees.c:775,1
    - Dst: send_code
      Src: /src/nss/lib/zlib/trees.c:778,1
    - Dst: send_bits
      Src: /src/nss/lib/zlib/trees.c:778,1
    - Dst: send_code
      Src: /src/nss/lib/zlib/trees.c:781,1
    - Dst: send_bits
      Src: /src/nss/lib/zlib/trees.c:781,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 3
    argNames:
    - s
    - tree
    - max_code
    argTypes:
    - deflate_state*
    - ct_data*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 751
    functionDepth: 2
    functionLinenumber: 751
    functionLinenumberEnd: 792
    functionName: send_tree
    functionSourceFile: /src/nss/lib/zlib/trees.c
    functionUses: 0
    functionsReached:
    - send_bits
    - send_code
    - Assert
    linkageType: ''
    returnType: local
    signature: local send_tree(deflate_state *s, ct_data *tree, int max_code)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: scan_tree
      Src: /src/nss/lib/zlib/trees.c:802,1
    - Dst: scan_tree
      Src: /src/nss/lib/zlib/trees.c:803,1
    - Dst: build_tree
      Src: /src/nss/lib/zlib/trees.c:806,1
    - Dst: Tracev
      Src: /src/nss/lib/zlib/trees.c:820,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - s
    argTypes:
    - deflate_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 798
    functionDepth: 3
    functionLinenumber: 798
    functionLinenumberEnd: 824
    functionName: build_bl_tree
    functionSourceFile: /src/nss/lib/zlib/trees.c
    functionUses: 0
    functionsReached:
    - build_tree
    - Tracev
    - scan_tree
    linkageType: ''
    returnType: local
    signature: local build_bl_tree(deflate_state *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Assert
      Src: /src/nss/lib/zlib/trees.c:835,1
    - Dst: Assert
      Src: /src/nss/lib/zlib/trees.c:836,1
    - Dst: Tracev
      Src: /src/nss/lib/zlib/trees.c:838,1
    - Dst: send_bits
      Src: /src/nss/lib/zlib/trees.c:839,1
    - Dst: send_bits
      Src: /src/nss/lib/zlib/trees.c:840,1
    - Dst: send_bits
      Src: /src/nss/lib/zlib/trees.c:841,1
    - Dst: Tracev
      Src: /src/nss/lib/zlib/trees.c:843,1
    - Dst: send_bits
      Src: /src/nss/lib/zlib/trees.c:844,1
    - Dst: Tracev
      Src: /src/nss/lib/zlib/trees.c:846,1
    - Dst: send_tree
      Src: /src/nss/lib/zlib/trees.c:848,1
    - Dst: Tracev
      Src: /src/nss/lib/zlib/trees.c:849,1
    - Dst: send_tree
      Src: /src/nss/lib/zlib/trees.c:851,1
    - Dst: Tracev
      Src: /src/nss/lib/zlib/trees.c:852,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - s
    - lcodes
    - dcodes
    - blcodes
    argTypes:
    - deflate_state*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 831
    functionDepth: 3
    functionLinenumber: 831
    functionLinenumberEnd: 853
    functionName: send_all_trees
    functionSourceFile: /src/nss/lib/zlib/trees.c
    functionUses: 0
    functionsReached:
    - send_bits
    - Tracev
    - send_tree
    - Assert
    linkageType: ''
    returnType: local
    signature: "local send_all_trees(deflate_state *s, int lcodes, int dcodes,\n                          int
      blcodes)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: send_bits
      Src: /src/nss/lib/zlib/trees.c:860,1
    - Dst: bi_windup
      Src: /src/nss/lib/zlib/trees.c:861,1
    - Dst: put_short
      Src: /src/nss/lib/zlib/trees.c:862,1
    - Dst: put_short
      Src: /src/nss/lib/zlib/trees.c:863,1
    - Dst: ZLIB_INTERNAL::zmemcpy
      Src: /src/nss/lib/zlib/trees.c:865,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - s
    - buf
    - stored_len
    - last
    argTypes:
    - deflate_state*
    - charf*
    - ulg
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 858
    functionDepth: 2
    functionLinenumber: 858
    functionLinenumberEnd: 873
    functionName: ZLIB_INTERNAL::_tr_stored_block
    functionSourceFile: /src/nss/lib/zlib/trees.c
    functionUses: 0
    functionsReached:
    - send_bits
    - bi_windup
    - ZLIB_INTERNAL::zmemcpy
    - put_short
    linkageType: ''
    returnType: void
    signature: "void ZLIB_INTERNAL _tr_stored_block(deflate_state *s, charf *buf,\n
      \                                   ulg stored_len, int last)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bi_flush
      Src: /src/nss/lib/zlib/trees.c:879,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - deflate_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 878
    functionDepth: 2
    functionLinenumber: 878
    functionLinenumberEnd: 880
    functionName: ZLIB_INTERNAL::_tr_flush_bits
    functionSourceFile: /src/nss/lib/zlib/trees.c
    functionUses: 0
    functionsReached:
    - bi_flush
    linkageType: ''
    returnType: void
    signature: void ZLIB_INTERNAL _tr_flush_bits(deflate_state *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: send_bits
      Src: /src/nss/lib/zlib/trees.c:887,1
    - Dst: send_code
      Src: /src/nss/lib/zlib/trees.c:888,1
    - Dst: bi_flush
      Src: /src/nss/lib/zlib/trees.c:892,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - deflate_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 886
    functionDepth: 2
    functionLinenumber: 886
    functionLinenumberEnd: 893
    functionName: ZLIB_INTERNAL::_tr_align
    functionSourceFile: /src/nss/lib/zlib/trees.c
    functionUses: 0
    functionsReached:
    - send_bits
    - bi_flush
    - send_code
    linkageType: ''
    returnType: void
    signature: void ZLIB_INTERNAL _tr_align(deflate_state *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: send_code
      Src: /src/nss/lib/zlib/trees.c:916,1
    - Dst: Tracecv
      Src: /src/nss/lib/zlib/trees.c:917,1
    - Dst: isgraph
      Src: /src/nss/lib/zlib/trees.c:917,1
    - Dst: send_code
      Src: /src/nss/lib/zlib/trees.c:921,1
    - Dst: send_bits
      Src: /src/nss/lib/zlib/trees.c:925,1
    - Dst: d_code
      Src: /src/nss/lib/zlib/trees.c:928,1
    - Dst: Assert
      Src: /src/nss/lib/zlib/trees.c:929,1
    - Dst: send_code
      Src: /src/nss/lib/zlib/trees.c:931,1
    - Dst: send_bits
      Src: /src/nss/lib/zlib/trees.c:935,1
    - Dst: Assert
      Src: /src/nss/lib/zlib/trees.c:941,1
    - Dst: Assert
      Src: /src/nss/lib/zlib/trees.c:943,1
    - Dst: send_code
      Src: /src/nss/lib/zlib/trees.c:948,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 3
    argNames:
    - s
    - ltree
    - dtree
    argTypes:
    - deflate_state*
    - ct_data*
    - ct_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 898
    functionDepth: 2
    functionLinenumber: 898
    functionLinenumberEnd: 949
    functionName: compress_block
    functionSourceFile: /src/nss/lib/zlib/trees.c
    functionUses: 0
    functionsReached:
    - d_code
    - send_code
    - Tracecv
    - Assert
    - send_bits
    - isgraph
    linkageType: ''
    returnType: local
    signature: "local compress_block(deflate_state *s, const ct_data *ltree,\n                          const
      ct_data *dtree)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 10
    argCount: 1
    argNames:
    - s
    argTypes:
    - deflate_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 964
    functionDepth: 0
    functionLinenumber: 964
    functionLinenumberEnd: 989
    functionName: detect_data_type
    functionSourceFile: /src/nss/lib/zlib/trees.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: local
    signature: local detect_data_type(deflate_state *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Assert
      Src: /src/nss/lib/zlib/trees.c:1109,1
    - Dst: MAX_DIST
      Src: /src/nss/lib/zlib/trees.c:1109,1
    - Dst: d_code
      Src: /src/nss/lib/zlib/trees.c:1111,1
    - Dst: d_code
      Src: /src/nss/lib/zlib/trees.c:1114,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - s
    - dist
    - lc
    argTypes:
    - deflate_state*
    - unsigned
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1093
    functionDepth: 1
    functionLinenumber: 1093
    functionLinenumberEnd: 1117
    functionName: ZLIB_INTERNAL::_tr_tally
    functionSourceFile: /src/nss/lib/zlib/trees.c
    functionUses: 0
    functionsReached:
    - MAX_DIST
    - d_code
    - Assert
    linkageType: ''
    returnType: int
    signature: int ZLIB_INTERNAL _tr_tally(deflate_state *s, unsigned dist, unsigned
      lc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - strm
    - ','
    - level
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1801
      start: 1799
    functionDepth: 0
    functionLinenumber: 1799
    functionLinenumberEnd: 1801
    functionName: z_deflateInit
    functionSourceFile: /src/nss/lib/zlib/zlib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: z_deflateInit(strm, level)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - strm
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1803
      start: 1801
    functionDepth: 0
    functionLinenumber: 1801
    functionLinenumberEnd: 1803
    functionName: z_inflateInit
    functionSourceFile: /src/nss/lib/zlib/zlib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: z_inflateInit(strm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - strm
    - ','
    - level
    - ','
    - method
    - ','
    - windowBits
    - ','
    - memLevel
    - ','
    - strategy
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1806
      start: 1803
    functionDepth: 0
    functionLinenumber: 1803
    functionLinenumberEnd: 1806
    functionName: z_deflateInit2
    functionSourceFile: /src/nss/lib/zlib/zlib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: z_deflateInit2(strm, level, method, windowBits, memLevel, strategy)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - strm
    - ','
    - windowBits
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1809
      start: 1806
    functionDepth: 0
    functionLinenumber: 1806
    functionLinenumberEnd: 1809
    functionName: z_inflateInit2
    functionSourceFile: /src/nss/lib/zlib/zlib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: z_inflateInit2(strm, windowBits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - strm
    - ','
    - windowBits
    - ','
    - window
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1812
      start: 1809
    functionDepth: 0
    functionLinenumber: 1809
    functionLinenumberEnd: 1812
    functionName: z_inflateBackInit
    functionSourceFile: /src/nss/lib/zlib/zlib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: z_inflateBackInit(strm, windowBits, window)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - strm
    - ','
    - level
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1815
      start: 1813
    functionDepth: 0
    functionLinenumber: 1813
    functionLinenumberEnd: 1815
    functionName: deflateInit
    functionSourceFile: /src/nss/lib/zlib/zlib.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: deflateInit(strm, level)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - strm
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1817
      start: 1815
    functionDepth: 0
    functionLinenumber: 1815
    functionLinenumberEnd: 1817
    functionName: inflateInit
    functionSourceFile: /src/nss/lib/zlib/zlib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: inflateInit(strm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - strm
    - ','
    - level
    - ','
    - method
    - ','
    - windowBits
    - ','
    - memLevel
    - ','
    - strategy
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1820
      start: 1817
    functionDepth: 0
    functionLinenumber: 1817
    functionLinenumberEnd: 1820
    functionName: deflateInit2
    functionSourceFile: /src/nss/lib/zlib/zlib.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: deflateInit2(strm, level, method, windowBits, memLevel, strategy)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - strm
    - ','
    - windowBits
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1823
      start: 1820
    functionDepth: 0
    functionLinenumber: 1820
    functionLinenumberEnd: 1823
    functionName: inflateInit2
    functionSourceFile: /src/nss/lib/zlib/zlib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: inflateInit2(strm, windowBits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - strm
    - ','
    - windowBits
    - ','
    - window
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1826
      start: 1823
    functionDepth: 0
    functionLinenumber: 1823
    functionLinenumberEnd: 1826
    functionName: inflateBackInit
    functionSourceFile: /src/nss/lib/zlib/zlib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: inflateBackInit(strm, windowBits, window)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - g
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1847
      start: 1845
    functionDepth: 0
    functionLinenumber: 1845
    functionLinenumberEnd: 1847
    functionName: z_gzgetc
    functionSourceFile: /src/nss/lib/zlib/zlib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: z_gzgetc(g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - g
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1850
      start: 1848
    functionDepth: 0
    functionLinenumber: 1848
    functionLinenumberEnd: 1850
    functionName: gzgetc
    functionSourceFile: /src/nss/lib/zlib/zlib.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: gzgetc(g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - args
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 298
    functionName: OF
    functionSourceFile: /src/nss/lib/zlib/zconf.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OF(args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - args
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 300
    functionName: OF
    functionSourceFile: /src/nss/lib/zlib/zconf.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OF(args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - err
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: ERR_MSG
    functionSourceFile: /src/nss/lib/zlib/zutil.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERR_MSG(err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - strm
    - ','
    - err
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    functionName: ERR_RETURN
    functionSourceFile: /src/nss/lib/zlib/zutil.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERR_RETURN(strm,err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 117
    functionName: F_OPEN
    functionSourceFile: /src/nss/lib/zlib/zutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: F_OPEN(name, mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 186
    functionName: F_OPEN
    functionSourceFile: /src/nss/lib/zlib/zutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: F_OPEN(name, mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dest
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 208
    functionName: zmemzero
    functionSourceFile: /src/nss/lib/zlib/zutil.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: zmemzero(dest, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dest
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 212
    functionName: zmemzero
    functionSourceFile: /src/nss/lib/zlib/zutil.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: zmemzero(dest, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cond
    - ','
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 225
    functionName: Assert
    functionSourceFile: /src/nss/lib/zlib/zutil.h
    functionUses: 282
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Assert(cond,msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 226
    functionName: Trace
    functionSourceFile: /src/nss/lib/zlib/zutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Trace(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 227
    functionName: Tracev
    functionSourceFile: /src/nss/lib/zlib/zutil.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Tracev(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 228
    functionName: Tracevv
    functionSourceFile: /src/nss/lib/zlib/zutil.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Tracevv(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 229
    functionName: Tracec
    functionSourceFile: /src/nss/lib/zlib/zutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Tracec(c,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 230
    functionName: Tracecv
    functionSourceFile: /src/nss/lib/zlib/zutil.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Tracecv(c,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - strm
    - ','
    - items
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 247
    functionName: ZALLOC
    functionSourceFile: /src/nss/lib/zlib/zutil.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZALLOC(strm, items, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - strm
    - ','
    - addr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 248
    functionName: ZFREE
    functionSourceFile: /src/nss/lib/zlib/zutil.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZFREE(strm, addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 249
    functionName: TRY_FREE
    functionSourceFile: /src/nss/lib/zlib/zutil.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRY_FREE(s, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - q
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 253
    functionName: ZSWAP32
    functionSourceFile: /src/nss/lib/zlib/zutil.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZSWAP32(q)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: Tracevv
      Src: /src/nss/lib/zlib/inffast.c:114,1
    - Dst: Tracevv
      Src: /src/nss/lib/zlib/inffast.c:131,1
    - Dst: Tracevv
      Src: /src/nss/lib/zlib/inffast.c:165,1
    - Dst: Tracevv
      Src: /src/nss/lib/zlib/inffast.c:278,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 210
    argCount: 2
    argNames:
    - strm
    - start
    argTypes:
    - z_streamp
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 304
    functionName: ZLIB_INTERNAL::inflate_fast
    functionSourceFile: /src/nss/lib/zlib/inffast.c
    functionUses: 0
    functionsReached:
    - Tracevv
    linkageType: ''
    returnType: void
    signature: void ZLIB_INTERNAL inflate_fast(z_streamp strm, unsigned start)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - word
    argTypes:
    - z_word_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 131
    functionName: byte_swap
    functionSourceFile: /src/nss/lib/zlib/crc32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: local
    signature: local byte_swap(z_word_t word)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - z_crc_t
    - z_crc_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 170
    functionName: multmodp
    functionSourceFile: /src/nss/lib/zlib/crc32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: local
    signature: local multmodp(z_crc_t a, z_crc_t b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: multmodp
      Src: /src/nss/lib/zlib/crc32.c:182,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - n
    - k
    argTypes:
    - z_off64_t
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 187
    functionName: x2nmodp
    functionSourceFile: /src/nss/lib/zlib/crc32.c
    functionUses: 0
    functionsReached:
    - multmodp
    linkageType: ''
    returnType: local
    signature: local x2nmodp(z_off64_t n, unsigned k)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: atomic_load
      Src: /src/nss/lib/zlib/crc32.c:237,1
    - Dst: atomic_flag_test_and_set
      Src: /src/nss/lib/zlib/crc32.c:238,1
    - Dst: atomic_load
      Src: /src/nss/lib/zlib/crc32.c:239,1
    - Dst: init
      Src: /src/nss/lib/zlib/crc32.c:242,1
    - Dst: atomic_store
      Src: /src/nss/lib/zlib/crc32.c:243,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - once_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 246
    functionName: once
    functionSourceFile: /src/nss/lib/zlib/crc32.c
    functionUses: 7
    functionsReached:
    - atomic_store
    - atomic_flag_test_and_set
    - init
    - atomic_load
    linkageType: ''
    returnType: local
    signature: local once(once_t *state, void (*init)(void))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - flag
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 265
    functionName: test_and_set
    functionSourceFile: /src/nss/lib/zlib/crc32.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: local
    signature: local test_and_set(int volatile *flag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_and_set
      Src: /src/nss/lib/zlib/crc32.c:270,1
    - Dst: init
      Src: /src/nss/lib/zlib/crc32.c:274,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - state
    argTypes:
    - once_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 278
    functionName: once
    functionSourceFile: /src/nss/lib/zlib/crc32.c
    functionUses: 7
    functionsReached:
    - test_and_set
    - init
    linkageType: ''
    returnType: local
    signature: local once(once_t *state, void (*init)(void))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: byte_swap
      Src: /src/nss/lib/zlib/crc32.c:321,1
    - Dst: multmodp
      Src: /src/nss/lib/zlib/crc32.c:329,1
    - Dst: braid
      Src: /src/nss/lib/zlib/crc32.c:333,1
    - Dst: fopen
      Src: /src/nss/lib/zlib/crc32.c:352,1
    - Dst: fprintf
      Src: /src/nss/lib/zlib/crc32.c:356,1
    - Dst: write_table
      Src: /src/nss/lib/zlib/crc32.c:362,1
    - Dst: fprintf
      Src: /src/nss/lib/zlib/crc32.c:363,1
    - Dst: fprintf
      Src: /src/nss/lib/zlib/crc32.c:367,1
    - Dst: write_table64
      Src: /src/nss/lib/zlib/crc32.c:375,1
    - Dst: fprintf
      Src: /src/nss/lib/zlib/crc32.c:376,1
    - Dst: fprintf
      Src: /src/nss/lib/zlib/crc32.c:380,1
    - Dst: write_table32hi
      Src: /src/nss/lib/zlib/crc32.c:386,1
    - Dst: fprintf
      Src: /src/nss/lib/zlib/crc32.c:387,1
    - Dst: fprintf
      Src: /src/nss/lib/zlib/crc32.c:394,1
    - Dst: braid
      Src: /src/nss/lib/zlib/crc32.c:399,1
    - Dst: fprintf
      Src: /src/nss/lib/zlib/crc32.c:402,1
    - Dst: fprintf
      Src: /src/nss/lib/zlib/crc32.c:408,1
    - Dst: write_table
      Src: /src/nss/lib/zlib/crc32.c:409,1
    - Dst: fprintf
      Src: /src/nss/lib/zlib/crc32.c:410,1
    - Dst: fprintf
      Src: /src/nss/lib/zlib/crc32.c:412,1
    - Dst: fprintf
      Src: /src/nss/lib/zlib/crc32.c:417,1
    - Dst: write_table64
      Src: /src/nss/lib/zlib/crc32.c:418,1
    - Dst: fprintf
      Src: /src/nss/lib/zlib/crc32.c:419,1
    - Dst: fprintf
      Src: /src/nss/lib/zlib/crc32.c:421,1
    - Dst: braid
      Src: /src/nss/lib/zlib/crc32.c:425,1
    - Dst: fprintf
      Src: /src/nss/lib/zlib/crc32.c:428,1
    - Dst: fprintf
      Src: /src/nss/lib/zlib/crc32.c:434,1
    - Dst: write_table
      Src: /src/nss/lib/zlib/crc32.c:435,1
    - Dst: fprintf
      Src: /src/nss/lib/zlib/crc32.c:436,1
    - Dst: fprintf
      Src: /src/nss/lib/zlib/crc32.c:438,1
    - Dst: fprintf
      Src: /src/nss/lib/zlib/crc32.c:443,1
    - Dst: write_table32hi
      Src: /src/nss/lib/zlib/crc32.c:444,1
    - Dst: fprintf
      Src: /src/nss/lib/zlib/crc32.c:445,1
    - Dst: fprintf
      Src: /src/nss/lib/zlib/crc32.c:447,1
    - Dst: fprintf
      Src: /src/nss/lib/zlib/crc32.c:454,1
    - Dst: fprintf
      Src: /src/nss/lib/zlib/crc32.c:459,1
    - Dst: write_table
      Src: /src/nss/lib/zlib/crc32.c:463,1
    - Dst: fprintf
      Src: /src/nss/lib/zlib/crc32.c:464,1
    - Dst: fclose
      Src: /src/nss/lib/zlib/crc32.c:466,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 62
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 469
    functionName: make_crc_table
    functionSourceFile: /src/nss/lib/zlib/crc32.c
    functionUses: 0
    functionsReached:
    - write_table
    - fclose
    - write_table64
    - multmodp
    - braid
    - fopen
    - fprintf
    - write_table32hi
    - byte_swap
    linkageType: ''
    returnType: local
    signature: local make_crc_table(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/lib/zlib/crc32.c:481,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 3
    argNames:
    - out
    - table
    - k
    argTypes:
    - FILE*
    - z_crc_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 484
    functionName: write_table
    functionSourceFile: /src/nss/lib/zlib/crc32.c
    functionUses: 1
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: local
    signature: local write_table(FILE *out, const z_crc_t FAR *table, int k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/lib/zlib/crc32.c:494,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 3
    argNames:
    - out
    - table
    - k
    argTypes:
    - FILE*
    - z_word_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 497
    functionName: write_table32hi
    functionSourceFile: /src/nss/lib/zlib/crc32.c
    functionUses: 1
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: local
    signature: local write_table32hi(FILE *out, const z_word_t FAR *table, int k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/lib/zlib/crc32.c:510,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 3
    argNames:
    - out
    - table
    - k
    argTypes:
    - FILE*
    - z_word_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 513
    functionName: write_table64
    functionSourceFile: /src/nss/lib/zlib/crc32.c
    functionUses: 1
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: local
    signature: local write_table64(FILE *out, const z_word_t FAR *table, int k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: make_crc_table
      Src: /src/nss/lib/zlib/crc32.c:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 516
    functionDepth: 2
    functionLinenumber: 516
    functionLinenumberEnd: 519
    functionName: main
    functionSourceFile: /src/nss/lib/zlib/crc32.c
    functionUses: 36
    functionsReached:
    - make_crc_table
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: x2nmodp
      Src: /src/nss/lib/zlib/crc32.c:532,1
    - Dst: multmodp
      Src: /src/nss/lib/zlib/crc32.c:536,1
    - Dst: byte_swap
      Src: /src/nss/lib/zlib/crc32.c:537,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - ltl
    - big
    - n
    - w
    argTypes:
    - z_crc_t[][]
    - z_word_t[][]
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 528
    functionDepth: 2
    functionLinenumber: 528
    functionLinenumberEnd: 540
    functionName: braid
    functionSourceFile: /src/nss/lib/zlib/crc32.c
    functionUses: 1
    functionsReached:
    - multmodp
    - x2nmodp
    - byte_swap
    linkageType: ''
    returnType: local
    signature: local braid(z_crc_t ltl[][256], z_word_t big[][256], int n, int w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: once
      Src: /src/nss/lib/zlib/crc32.c:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 549
    functionDepth: 1
    functionLinenumber: 549
    functionLinenumberEnd: 554
    functionName: get_crc_table
    functionSourceFile: /src/nss/lib/zlib/crc32.c
    functionUses: 0
    functionsReached:
    - once
    linkageType: ''
    returnType: z_crc_t
    signature: z_crc_t * ZEXPORT get_crc_table(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: once
      Src: /src/nss/lib/zlib/crc32.c:588,1
    - Dst: multmodp
      Src: /src/nss/lib/zlib/crc32.c:622,1
    - Dst: multmodp
      Src: /src/nss/lib/zlib/crc32.c:623,1
    - Dst: x2nmodp
      Src: /src/nss/lib/zlib/crc32.c:643,1
    - Dst: multmodp
      Src: /src/nss/lib/zlib/crc32.c:644,1
    - Dst: multmodp
      Src: /src/nss/lib/zlib/crc32.c:645,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 60
    argCount: 3
    argNames:
    - crc
    - buf
    - len
    argTypes:
    - unsigned long
    - unsigned char*
    - z_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 575
    functionDepth: 2
    functionLinenumber: 575
    functionLinenumberEnd: 665
    functionName: crc32_z
    functionSourceFile: /src/nss/lib/zlib/crc32.c
    functionUses: 0
    functionsReached:
    - multmodp
    - x2nmodp
    - once
    linkageType: ''
    returnType: unsigned long ZEXPORT
    signature: "unsigned long ZEXPORT crc32_z(unsigned long crc, const unsigned char
      FAR *buf,\n                              z_size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - z_word_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 676
    functionDepth: 0
    functionLinenumber: 676
    functionLinenumberEnd: 681
    functionName: crc_word
    functionSourceFile: /src/nss/lib/zlib/crc32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: local
    signature: local crc_word(z_word_t data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - z_word_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 683
    functionDepth: 0
    functionLinenumber: 683
    functionLinenumberEnd: 689
    functionName: crc_word_big
    functionSourceFile: /src/nss/lib/zlib/crc32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: local
    signature: local crc_word_big(z_word_t data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: once
      Src: /src/nss/lib/zlib/crc32.c:700,1
    - Dst: crc_word
      Src: /src/nss/lib/zlib/crc32.c:841,1
    - Dst: crc_word
      Src: /src/nss/lib/zlib/crc32.c:843,1
    - Dst: crc_word
      Src: /src/nss/lib/zlib/crc32.c:845,1
    - Dst: crc_word
      Src: /src/nss/lib/zlib/crc32.c:847,1
    - Dst: crc_word
      Src: /src/nss/lib/zlib/crc32.c:849,1
    - Dst: crc_word
      Src: /src/nss/lib/zlib/crc32.c:851,1
    - Dst: byte_swap
      Src: /src/nss/lib/zlib/crc32.c:880,1
    - Dst: crc_word_big
      Src: /src/nss/lib/zlib/crc32.c:963,1
    - Dst: crc_word_big
      Src: /src/nss/lib/zlib/crc32.c:965,1
    - Dst: crc_word_big
      Src: /src/nss/lib/zlib/crc32.c:967,1
    - Dst: crc_word_big
      Src: /src/nss/lib/zlib/crc32.c:969,1
    - Dst: crc_word_big
      Src: /src/nss/lib/zlib/crc32.c:971,1
    - Dst: crc_word_big
      Src: /src/nss/lib/zlib/crc32.c:973,1
    - Dst: byte_swap
      Src: /src/nss/lib/zlib/crc32.c:980,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 108
    argCount: 3
    argNames:
    - crc
    - buf
    - len
    argTypes:
    - unsigned long
    - unsigned char*
    - z_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 694
    functionDepth: 1
    functionLinenumber: 694
    functionLinenumberEnd: 1010
    functionName: crc32_z
    functionSourceFile: /src/nss/lib/zlib/crc32.c
    functionUses: 0
    functionsReached:
    - crc_word_big
    - byte_swap
    - crc_word
    - once
    linkageType: ''
    returnType: unsigned long ZEXPORT
    signature: "unsigned long ZEXPORT crc32_z(unsigned long crc, const unsigned char
      FAR *buf,\n                              z_size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crc32_z
      Src: /src/nss/lib/zlib/crc32.c:1017,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - crc
    - buf
    - len
    argTypes:
    - unsigned long
    - unsigned char*
    - uInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 1015
    functionDepth: 3
    functionLinenumber: 1015
    functionLinenumberEnd: 1018
    functionName: crc32
    functionSourceFile: /src/nss/lib/zlib/crc32.c
    functionUses: 3
    functionsReached:
    - crc32_z
    linkageType: ''
    returnType: unsigned long ZEXPORT
    signature: "unsigned long ZEXPORT crc32(unsigned long crc, const unsigned char
      FAR *buf,\n                            uInt len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: once
      Src: /src/nss/lib/zlib/crc32.c:1023,1
    - Dst: multmodp
      Src: /src/nss/lib/zlib/crc32.c:1025,1
    - Dst: x2nmodp
      Src: /src/nss/lib/zlib/crc32.c:1025,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - crc1
    - crc2
    - len2
    argTypes:
    - uLong
    - uLong
    - z_off64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 1021
    functionDepth: 2
    functionLinenumber: 1021
    functionLinenumberEnd: 1026
    functionName: crc32_combine64
    functionSourceFile: /src/nss/lib/zlib/crc32.c
    functionUses: 0
    functionsReached:
    - multmodp
    - x2nmodp
    - once
    linkageType: ''
    returnType: uLong
    signature: uLong crc32_combine64(uLong crc1, uLong crc2, z_off64_t len2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crc32_combine64
      Src: /src/nss/lib/zlib/crc32.c:1030,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - crc1
    - crc2
    - len2
    argTypes:
    - uLong
    - uLong
    - z_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 1029
    functionDepth: 3
    functionLinenumber: 1029
    functionLinenumberEnd: 1031
    functionName: crc32_combine
    functionSourceFile: /src/nss/lib/zlib/crc32.c
    functionUses: 0
    functionsReached:
    - crc32_combine64
    linkageType: ''
    returnType: uLong
    signature: uLong crc32_combine(uLong crc1, uLong crc2, z_off_t len2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: once
      Src: /src/nss/lib/zlib/crc32.c:1036,1
    - Dst: x2nmodp
      Src: /src/nss/lib/zlib/crc32.c:1038,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - len2
    argTypes:
    - z_off64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 1034
    functionDepth: 2
    functionLinenumber: 1034
    functionLinenumberEnd: 1039
    functionName: crc32_combine_gen64
    functionSourceFile: /src/nss/lib/zlib/crc32.c
    functionUses: 0
    functionsReached:
    - x2nmodp
    - once
    linkageType: ''
    returnType: uLong
    signature: uLong crc32_combine_gen64(z_off64_t len2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crc32_combine_gen64
      Src: /src/nss/lib/zlib/crc32.c:1043,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - len2
    argTypes:
    - z_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1042
    functionDepth: 3
    functionLinenumber: 1042
    functionLinenumberEnd: 1044
    functionName: crc32_combine_gen
    functionSourceFile: /src/nss/lib/zlib/crc32.c
    functionUses: 0
    functionsReached:
    - crc32_combine_gen64
    linkageType: ''
    returnType: uLong
    signature: uLong crc32_combine_gen(z_off_t len2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: multmodp
      Src: /src/nss/lib/zlib/crc32.c:1048,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - crc1
    - crc2
    - op
    argTypes:
    - uLong
    - uLong
    - uLong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1047
    functionDepth: 1
    functionLinenumber: 1047
    functionLinenumberEnd: 1049
    functionName: crc32_combine_op
    functionSourceFile: /src/nss/lib/zlib/crc32.c
    functionUses: 0
    functionsReached:
    - multmodp
    linkageType: ''
    returnType: uLong
    signature: uLong crc32_combine_op(uLong crc1, uLong crc2, uLong op)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: inflateInit
      Src: /src/nss/lib/zlib/uncompr.c:51,1
    - Dst: inflate
      Src: /src/nss/lib/zlib/uncompr.c:66,1
    - Dst: inflateEnd
      Src: /src/nss/lib/zlib/uncompr.c:75,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 4
    argNames:
    - dest
    - destLen
    - source
    - sourceLen
    argTypes:
    - Bytef*
    - uLongf*
    - Bytef*
    - uLong*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 80
    functionName: uncompress2
    functionSourceFile: /src/nss/lib/zlib/uncompr.c
    functionUses: 0
    functionsReached:
    - inflateEnd
    - inflate
    - inflateInit
    linkageType: ''
    returnType: int
    signature: "int uncompress2(Bytef *dest, uLongf *destLen, const Bytef *source,\n
      \                       uLong *sourceLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uncompress2
      Src: /src/nss/lib/zlib/uncompr.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - dest
    - destLen
    - source
    - sourceLen
    argTypes:
    - Bytef*
    - uLongf*
    - Bytef*
    - uLong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: uncompress
    functionSourceFile: /src/nss/lib/zlib/uncompr.c
    functionUses: 2
    functionsReached:
    - uncompress2
    linkageType: ''
    returnType: int
    signature: "int uncompress(Bytef *dest, uLongf *destLen, const Bytef *source,\n
      \                      uLong sourceLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 129
    functionName: zstrerror
    functionSourceFile: /src/nss/lib/zlib/gzguts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: zstrerror()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 133
    functionName: zstrerror
    functionSourceFile: /src/nss/lib/zlib/gzguts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: zstrerror()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 135
    functionName: zstrerror
    functionSourceFile: /src/nss/lib/zlib/gzguts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: zstrerror()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 215
    functionName: GT_OFF
    functionSourceFile: /src/nss/lib/zlib/gzguts.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GT_OFF(x)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/nss/lib/zlib/gzread.c:22,1
    - Dst: gz_error
      Src: /src/nss/lib/zlib/gzread.c:28,1
    - Dst: zstrerror
      Src: /src/nss/lib/zlib/gzread.c:28,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - state
    - buf
    - len
    - have
    argTypes:
    - gz_statep
    - unsigned char*
    - unsigned
    - unsigned*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 34
    functionName: gz_load
    functionSourceFile: /src/nss/lib/zlib/gzread.c
    functionUses: 0
    functionsReached:
    - zstrerror
    - gz_error
    - read
    linkageType: ''
    returnType: local
    signature: "local gz_load(gz_statep state, unsigned char *buf, unsigned len,\n
      \                 unsigned *have)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: gz_load
      Src: /src/nss/lib/zlib/gzread.c:58,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - state
    argTypes:
    - gz_statep
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 65
    functionName: gz_avail
    functionSourceFile: /src/nss/lib/zlib/gzread.c
    functionUses: 0
    functionsReached:
    - gz_load
    linkageType: ''
    returnType: local
    signature: local gz_avail(gz_statep state)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/nss/lib/zlib/gzread.c:82,1
    - Dst: malloc
      Src: /src/nss/lib/zlib/gzread.c:83,1
    - Dst: free
      Src: /src/nss/lib/zlib/gzread.c:85,1
    - Dst: free
      Src: /src/nss/lib/zlib/gzread.c:86,1
    - Dst: gz_error
      Src: /src/nss/lib/zlib/gzread.c:87,1
    - Dst: inflateInit2
      Src: /src/nss/lib/zlib/gzread.c:98,1
    - Dst: free
      Src: /src/nss/lib/zlib/gzread.c:99,1
    - Dst: free
      Src: /src/nss/lib/zlib/gzread.c:100,1
    - Dst: gz_error
      Src: /src/nss/lib/zlib/gzread.c:102,1
    - Dst: gz_avail
      Src: /src/nss/lib/zlib/gzread.c:109,1
    - Dst: inflateReset
      Src: /src/nss/lib/zlib/gzread.c:124,1
    - Dst: memcpy
      Src: /src/nss/lib/zlib/gzread.c:143,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 49
    argCount: 1
    argNames:
    - state
    argTypes:
    - gz_statep
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 76
    functionDepth: 3
    functionLinenumber: 76
    functionLinenumberEnd: 149
    functionName: gz_look
    functionSourceFile: /src/nss/lib/zlib/gzread.c
    functionUses: 0
    functionsReached:
    - malloc
    - inflateReset
    - free
    - memcpy
    - gz_avail
    - gz_error
    - inflateInit2
    linkageType: ''
    returnType: local
    signature: local gz_look(gz_statep state)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: gz_avail
      Src: /src/nss/lib/zlib/gzread.c:165,1
    - Dst: gz_error
      Src: /src/nss/lib/zlib/gzread.c:168,1
    - Dst: inflate
      Src: /src/nss/lib/zlib/gzread.c:173,1
    - Dst: gz_error
      Src: /src/nss/lib/zlib/gzread.c:175,1
    - Dst: gz_error
      Src: /src/nss/lib/zlib/gzread.c:180,1
    - Dst: gz_error
      Src: /src/nss/lib/zlib/gzread.c:184,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 1
    argNames:
    - state
    argTypes:
    - gz_statep
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 156
    functionDepth: 3
    functionLinenumber: 156
    functionLinenumberEnd: 200
    functionName: gz_decomp
    functionSourceFile: /src/nss/lib/zlib/gzread.c
    functionUses: 0
    functionsReached:
    - inflate
    - gz_error
    - gz_avail
    linkageType: ''
    returnType: local
    signature: local gz_decomp(gz_statep state)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: gz_look
      Src: /src/nss/lib/zlib/gzread.c:214,1
    - Dst: gz_load
      Src: /src/nss/lib/zlib/gzread.c:220,1
    - Dst: gz_decomp
      Src: /src/nss/lib/zlib/gzread.c:228,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 1
    argNames:
    - state
    argTypes:
    - gz_statep
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 208
    functionDepth: 4
    functionLinenumber: 208
    functionLinenumberEnd: 233
    functionName: gz_fetch
    functionSourceFile: /src/nss/lib/zlib/gzread.c
    functionUses: 0
    functionsReached:
    - gz_decomp
    - gz_look
    - gz_load
    linkageType: ''
    returnType: local
    signature: local gz_fetch(gz_statep state)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GT_OFF
      Src: /src/nss/lib/zlib/gzread.c:243,1
    - Dst: gz_fetch
      Src: /src/nss/lib/zlib/gzread.c:258,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 2
    argNames:
    - state
    - len
    argTypes:
    - gz_statep
    - z_off64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 236
    functionDepth: 5
    functionLinenumber: 236
    functionLinenumberEnd: 262
    functionName: gz_skip
    functionSourceFile: /src/nss/lib/zlib/gzread.c
    functionUses: 0
    functionsReached:
    - gz_fetch
    - GT_OFF
    linkageType: ''
    returnType: local
    signature: local gz_skip(gz_statep state, z_off64_t len)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: gz_skip
      Src: /src/nss/lib/zlib/gzread.c:279,1
    - Dst: memcpy
      Src: /src/nss/lib/zlib/gzread.c:295,1
    - Dst: gz_fetch
      Src: /src/nss/lib/zlib/gzread.c:310,1
    - Dst: gz_load
      Src: /src/nss/lib/zlib/gzread.c:319,1
    - Dst: gz_decomp
      Src: /src/nss/lib/zlib/gzread.c:327,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 46
    argCount: 3
    argNames:
    - state
    - buf
    - len
    argTypes:
    - gz_statep
    - voidp
    - z_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 268
    functionDepth: 6
    functionLinenumber: 268
    functionLinenumberEnd: 342
    functionName: gz_read
    functionSourceFile: /src/nss/lib/zlib/gzread.c
    functionUses: 0
    functionsReached:
    - gz_decomp
    - memcpy
    - gz_fetch
    - gz_load
    - gz_skip
    linkageType: ''
    returnType: local
    signature: local gz_read(gz_statep state, voidp buf, z_size_t len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: gz_error
      Src: /src/nss/lib/zlib/gzread.c:361,1
    - Dst: gz_read
      Src: /src/nss/lib/zlib/gzread.c:366,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 3
    argNames:
    - file
    - buf
    - len
    argTypes:
    - gzFile
    - voidp
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 345
    functionDepth: 7
    functionLinenumber: 345
    functionLinenumberEnd: 374
    functionName: gzread
    functionSourceFile: /src/nss/lib/zlib/gzread.c
    functionUses: 0
    functionsReached:
    - gz_read
    - gz_error
    linkageType: ''
    returnType: int
    signature: int gzread(gzFile file, voidp buf, unsigned len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: gz_error
      Src: /src/nss/lib/zlib/gzread.c:394,1
    - Dst: gz_read
      Src: /src/nss/lib/zlib/gzread.c:399,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 4
    argNames:
    - buf
    - size
    - nitems
    - file
    argTypes:
    - voidp
    - z_size_t
    - z_size_t
    - gzFile
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 377
    functionDepth: 7
    functionLinenumber: 377
    functionLinenumberEnd: 400
    functionName: gzfread
    functionSourceFile: /src/nss/lib/zlib/gzread.c
    functionUses: 0
    functionsReached:
    - gz_read
    - gz_error
    linkageType: ''
    returnType: z_size_t
    signature: z_size_t gzfread(voidp buf, z_size_t size, z_size_t nitems, gzFile
      file)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: gz_read
      Src: /src/nss/lib/zlib/gzread.c:430,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - file
    argTypes:
    - gzFile
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 408
    functionDepth: 7
    functionLinenumber: 408
    functionLinenumberEnd: 431
    functionName: gzgetc
    functionSourceFile: /src/nss/lib/zlib/gzread.c
    functionUses: 0
    functionsReached:
    - gz_read
    linkageType: ''
    returnType: int
    signature: int gzgetc(gzFile file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gzgetc
      Src: /src/nss/lib/zlib/gzread.c:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - file
    argTypes:
    - gzFile
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 435
    functionName: gzgetc_
    functionSourceFile: /src/nss/lib/zlib/gzread.c
    functionUses: 0
    functionsReached:
    - gzgetc
    linkageType: ''
    returnType: int
    signature: int gzgetc_(gzFile file)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: gz_look
      Src: /src/nss/lib/zlib/gzread.c:448,1
    - Dst: gz_skip
      Src: /src/nss/lib/zlib/gzread.c:458,1
    - Dst: gz_error
      Src: /src/nss/lib/zlib/gzread.c:478,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 2
    argNames:
    - c
    - file
    argTypes:
    - int
    - gzFile
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 438
    functionDepth: 6
    functionLinenumber: 438
    functionLinenumberEnd: 496
    functionName: gzungetc
    functionSourceFile: /src/nss/lib/zlib/gzread.c
    functionUses: 0
    functionsReached:
    - gz_skip
    - gz_look
    - gz_error
    linkageType: ''
    returnType: int
    signature: int gzungetc(int c, gzFile file)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: gz_skip
      Src: /src/nss/lib/zlib/gzread.c:518,1
    - Dst: gz_fetch
      Src: /src/nss/lib/zlib/gzread.c:529,1
    - Dst: memchr
      Src: /src/nss/lib/zlib/gzread.c:538,1
    - Dst: memcpy
      Src: /src/nss/lib/zlib/gzread.c:543,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 36
    argCount: 3
    argNames:
    - file
    - buf
    - len
    argTypes:
    - gzFile
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 499
    functionDepth: 6
    functionLinenumber: 499
    functionLinenumberEnd: 556
    functionName: gzgets
    functionSourceFile: /src/nss/lib/zlib/gzread.c
    functionUses: 0
    functionsReached:
    - memcpy
    - gz_skip
    - gz_fetch
    - memchr
    linkageType: ''
    returnType: char
    signature: char * ZEXPORT gzgets(gzFile file, char *buf, int len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gz_look
      Src: /src/nss/lib/zlib/gzread.c:570,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - file
    argTypes:
    - gzFile
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 559
    functionDepth: 4
    functionLinenumber: 559
    functionLinenumberEnd: 574
    functionName: gzdirect
    functionSourceFile: /src/nss/lib/zlib/gzread.c
    functionUses: 0
    functionsReached:
    - gz_look
    linkageType: ''
    returnType: int
    signature: int gzdirect(gzFile file)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: inflateEnd
      Src: /src/nss/lib/zlib/gzread.c:592,1
    - Dst: free
      Src: /src/nss/lib/zlib/gzread.c:593,1
    - Dst: free
      Src: /src/nss/lib/zlib/gzread.c:594,1
    - Dst: gz_error
      Src: /src/nss/lib/zlib/gzread.c:597,1
    - Dst: free
      Src: /src/nss/lib/zlib/gzread.c:598,1
    - Dst: close
      Src: /src/nss/lib/zlib/gzread.c:599,1
    - Dst: free
      Src: /src/nss/lib/zlib/gzread.c:600,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - file
    argTypes:
    - gzFile
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 577
    functionDepth: 1
    functionLinenumber: 577
    functionLinenumberEnd: 602
    functionName: gzclose_r
    functionSourceFile: /src/nss/lib/zlib/gzread.c
    functionUses: 0
    functionsReached:
    - close
    - inflateEnd
    - free
    - gz_error
    linkageType: ''
    returnType: int
    signature: int gzclose_r(gzFile file)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/nss/lib/zlib/gzwrite.c:16,1
    - Dst: gz_error
      Src: /src/nss/lib/zlib/gzwrite.c:18,1
    - Dst: malloc
      Src: /src/nss/lib/zlib/gzwrite.c:25,1
    - Dst: free
      Src: /src/nss/lib/zlib/gzwrite.c:27,1
    - Dst: gz_error
      Src: /src/nss/lib/zlib/gzwrite.c:28,1
    - Dst: deflateInit2
      Src: /src/nss/lib/zlib/gzwrite.c:36,1
    - Dst: free
      Src: /src/nss/lib/zlib/gzwrite.c:39,1
    - Dst: free
      Src: /src/nss/lib/zlib/gzwrite.c:40,1
    - Dst: gz_error
      Src: /src/nss/lib/zlib/gzwrite.c:41,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 1
    argNames:
    - state
    argTypes:
    - gz_statep
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 57
    functionName: gz_init
    functionSourceFile: /src/nss/lib/zlib/gzwrite.c
    functionUses: 0
    functionsReached:
    - malloc
    - deflateInit2
    - free
    - gz_error
    linkageType: ''
    returnType: local
    signature: local gz_init(gz_statep state)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: gz_init
      Src: /src/nss/lib/zlib/gzwrite.c:71,1
    - Dst: write
      Src: /src/nss/lib/zlib/gzwrite.c:78,1
    - Dst: gz_error
      Src: /src/nss/lib/zlib/gzwrite.c:80,1
    - Dst: zstrerror
      Src: /src/nss/lib/zlib/gzwrite.c:80,1
    - Dst: deflateReset
      Src: /src/nss/lib/zlib/gzwrite.c:94,1
    - Dst: write
      Src: /src/nss/lib/zlib/gzwrite.c:108,1
    - Dst: gz_error
      Src: /src/nss/lib/zlib/gzwrite.c:110,1
    - Dst: zstrerror
      Src: /src/nss/lib/zlib/gzwrite.c:110,1
    - Dst: deflate
      Src: /src/nss/lib/zlib/gzwrite.c:124,1
    - Dst: gz_error
      Src: /src/nss/lib/zlib/gzwrite.c:126,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 51
    argCount: 2
    argNames:
    - state
    - flush
    argTypes:
    - gz_statep
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 65
    functionDepth: 3
    functionLinenumber: 65
    functionLinenumberEnd: 139
    functionName: gz_comp
    functionSourceFile: /src/nss/lib/zlib/gzwrite.c
    functionUses: 0
    functionsReached:
    - write
    - zstrerror
    - deflateReset
    - gz_error
    - deflate
    - gz_init
    linkageType: ''
    returnType: local
    signature: local gz_comp(gz_statep state, int flush)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: gz_comp
      Src: /src/nss/lib/zlib/gzwrite.c:149,1
    - Dst: GT_OFF
      Src: /src/nss/lib/zlib/gzwrite.c:155,1
    - Dst: memset
      Src: /src/nss/lib/zlib/gzwrite.c:158,1
    - Dst: gz_comp
      Src: /src/nss/lib/zlib/gzwrite.c:164,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - state
    - len
    argTypes:
    - gz_statep
    - z_off64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 143
    functionDepth: 4
    functionLinenumber: 143
    functionLinenumberEnd: 169
    functionName: gz_zero
    functionSourceFile: /src/nss/lib/zlib/gzwrite.c
    functionUses: 0
    functionsReached:
    - memset
    - GT_OFF
    - gz_comp
    linkageType: ''
    returnType: local
    signature: local gz_zero(gz_statep state, z_off64_t len)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: gz_init
      Src: /src/nss/lib/zlib/gzwrite.c:181,1
    - Dst: gz_zero
      Src: /src/nss/lib/zlib/gzwrite.c:187,1
    - Dst: memcpy
      Src: /src/nss/lib/zlib/gzwrite.c:204,1
    - Dst: gz_comp
      Src: /src/nss/lib/zlib/gzwrite.c:209,1
    - Dst: gz_comp
      Src: /src/nss/lib/zlib/gzwrite.c:215,1
    - Dst: gz_comp
      Src: /src/nss/lib/zlib/gzwrite.c:226,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 41
    argCount: 3
    argNames:
    - state
    - buf
    - len
    argTypes:
    - gz_statep
    - voidpc
    - z_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 173
    functionDepth: 5
    functionLinenumber: 173
    functionLinenumberEnd: 234
    functionName: gz_write
    functionSourceFile: /src/nss/lib/zlib/gzwrite.c
    functionUses: 0
    functionsReached:
    - gz_zero
    - memcpy
    - gz_init
    - gz_comp
    linkageType: ''
    returnType: local
    signature: local gz_write(gz_statep state, voidpc buf, z_size_t len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: gz_error
      Src: /src/nss/lib/zlib/gzwrite.c:252,1
    - Dst: gz_write
      Src: /src/nss/lib/zlib/gzwrite.c:257,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - file
    - buf
    - len
    argTypes:
    - gzFile
    - voidpc
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 237
    functionDepth: 6
    functionLinenumber: 237
    functionLinenumberEnd: 258
    functionName: gzwrite
    functionSourceFile: /src/nss/lib/zlib/gzwrite.c
    functionUses: 0
    functionsReached:
    - gz_write
    - gz_error
    linkageType: ''
    returnType: int
    signature: int gzwrite(gzFile file, voidpc buf, unsigned len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: gz_error
      Src: /src/nss/lib/zlib/gzwrite.c:278,1
    - Dst: gz_write
      Src: /src/nss/lib/zlib/gzwrite.c:283,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 4
    argNames:
    - buf
    - size
    - nitems
    - file
    argTypes:
    - voidpc
    - z_size_t
    - z_size_t
    - gzFile
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 261
    functionDepth: 6
    functionLinenumber: 261
    functionLinenumberEnd: 284
    functionName: gzfwrite
    functionSourceFile: /src/nss/lib/zlib/gzwrite.c
    functionUses: 0
    functionsReached:
    - gz_write
    - gz_error
    linkageType: ''
    returnType: z_size_t
    signature: "z_size_t gzfwrite(voidpc buf, z_size_t size, z_size_t nitems,\n                          gzFile
      file)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: gz_zero
      Src: /src/nss/lib/zlib/gzwrite.c:306,1
    - Dst: gz_write
      Src: /src/nss/lib/zlib/gzwrite.c:326,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - file
    - c
    argTypes:
    - gzFile
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 287
    functionDepth: 6
    functionLinenumber: 287
    functionLinenumberEnd: 329
    functionName: gzputc
    functionSourceFile: /src/nss/lib/zlib/gzwrite.c
    functionUses: 0
    functionsReached:
    - gz_zero
    - gz_write
    linkageType: ''
    returnType: int
    signature: int gzputc(gzFile file, int c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nss/lib/zlib/gzwrite.c:346,1
    - Dst: gz_error
      Src: /src/nss/lib/zlib/gzwrite.c:348,1
    - Dst: gz_write
      Src: /src/nss/lib/zlib/gzwrite.c:351,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - file
    - s
    argTypes:
    - gzFile
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 332
    functionDepth: 6
    functionLinenumber: 332
    functionLinenumberEnd: 353
    functionName: gzputs
    functionSourceFile: /src/nss/lib/zlib/gzwrite.c
    functionUses: 0
    functionsReached:
    - gz_write
    - gz_error
    - strlen
    linkageType: ''
    returnType: int
    signature: int gzputs(gzFile file, const char *s)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: gz_init
      Src: /src/nss/lib/zlib/gzwrite.c:377,1
    - Dst: gz_zero
      Src: /src/nss/lib/zlib/gzwrite.c:383,1
    - Dst: vsprintf
      Src: /src/nss/lib/zlib/gzwrite.c:396,1
    - Dst: vsprintf
      Src: /src/nss/lib/zlib/gzwrite.c:400,1
    - Dst: vsnprintf
      Src: /src/nss/lib/zlib/gzwrite.c:404,1
    - Dst: strlen
      Src: /src/nss/lib/zlib/gzwrite.c:405,1
    - Dst: vsnprintf
      Src: /src/nss/lib/zlib/gzwrite.c:407,1
    - Dst: gz_comp
      Src: /src/nss/lib/zlib/gzwrite.c:421,1
    - Dst: memmove
      Src: /src/nss/lib/zlib/gzwrite.c:423,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 40
    argCount: 3
    argNames:
    - file
    - format
    - va
    argTypes:
    - gzFile
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 359
    functionDepth: 5
    functionLinenumber: 359
    functionLinenumberEnd: 428
    functionName: gzvprintf
    functionSourceFile: /src/nss/lib/zlib/gzwrite.c
    functionUses: 0
    functionsReached:
    - gz_zero
    - gz_comp
    - vsprintf
    - vsnprintf
    - gz_init
    - memmove
    - strlen
    linkageType: ''
    returnType: int
    signature: int gzvprintf(gzFile file, const char *format, va_list va)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/nss/lib/zlib/gzwrite.c:434,1
    - Dst: gzvprintf
      Src: /src/nss/lib/zlib/gzwrite.c:435,1
    - Dst: va_end
      Src: /src/nss/lib/zlib/gzwrite.c:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - file
    - format
    argTypes:
    - gzFile
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 430
    functionDepth: 6
    functionLinenumber: 430
    functionLinenumberEnd: 438
    functionName: gzprintf
    functionSourceFile: /src/nss/lib/zlib/gzwrite.c
    functionUses: 0
    functionsReached:
    - va_end
    - gzvprintf
    - va_start
    linkageType: ''
    returnType: int
    signature: int gzprintf(gzFile file, const char *format, ...)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: gz_init
      Src: /src/nss/lib/zlib/gzwrite.c:467,1
    - Dst: gz_zero
      Src: /src/nss/lib/zlib/gzwrite.c:473,1
    - Dst: sprintf
      Src: /src/nss/lib/zlib/gzwrite.c:486,1
    - Dst: sprintf
      Src: /src/nss/lib/zlib/gzwrite.c:492,1
    - Dst: snprintf
      Src: /src/nss/lib/zlib/gzwrite.c:497,1
    - Dst: strlen
      Src: /src/nss/lib/zlib/gzwrite.c:499,1
    - Dst: snprintf
      Src: /src/nss/lib/zlib/gzwrite.c:501,1
    - Dst: gz_comp
      Src: /src/nss/lib/zlib/gzwrite.c:516,1
    - Dst: memmove
      Src: /src/nss/lib/zlib/gzwrite.c:518,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 42
    argCount: 22
    argNames:
    - file
    - format
    - a1
    - a2
    - a3
    - a4
    - a5
    - a6
    - a7
    - a8
    - a9
    - a10
    - a11
    - a12
    - a13
    - a14
    - a15
    - a16
    - a17
    - a18
    - a19
    - a20
    argTypes:
    - gzFile
    - char*
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 443
    functionDepth: 5
    functionLinenumber: 443
    functionLinenumberEnd: 523
    functionName: gzprintf
    functionSourceFile: /src/nss/lib/zlib/gzwrite.c
    functionUses: 0
    functionsReached:
    - gz_zero
    - gz_comp
    - snprintf
    - gz_init
    - sprintf
    - memmove
    - strlen
    linkageType: ''
    returnType: int
    signature: "int gzprintf(gzFile file, const char *format, int a1, int a2, int
      a3,\n                       int a4, int a5, int a6, int a7, int a8, int a9,
      int a10,\n                       int a11, int a12, int a13, int a14, int a15,
      int a16,\n                       int a17, int a18, int a19, int a20)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: gz_zero
      Src: /src/nss/lib/zlib/gzwrite.c:547,1
    - Dst: gz_comp
      Src: /src/nss/lib/zlib/gzwrite.c:552,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 2
    argNames:
    - file
    - flush
    argTypes:
    - gzFile
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 528
    functionDepth: 5
    functionLinenumber: 528
    functionLinenumberEnd: 554
    functionName: gzflush
    functionSourceFile: /src/nss/lib/zlib/gzwrite.c
    functionUses: 0
    functionsReached:
    - gz_zero
    - gz_comp
    linkageType: ''
    returnType: int
    signature: int gzflush(gzFile file, int flush)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: gz_zero
      Src: /src/nss/lib/zlib/gzwrite.c:578,1
    - Dst: gz_comp
      Src: /src/nss/lib/zlib/gzwrite.c:585,1
    - Dst: deflateParams
      Src: /src/nss/lib/zlib/gzwrite.c:587,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 3
    argNames:
    - file
    - level
    - strategy
    argTypes:
    - gzFile
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 557
    functionDepth: 5
    functionLinenumber: 557
    functionLinenumberEnd: 592
    functionName: gzsetparams
    functionSourceFile: /src/nss/lib/zlib/gzwrite.c
    functionUses: 0
    functionsReached:
    - deflateParams
    - gz_zero
    - gz_comp
    linkageType: ''
    returnType: int
    signature: int gzsetparams(gzFile file, int level, int strategy)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: gz_zero
      Src: /src/nss/lib/zlib/gzwrite.c:611,1
    - Dst: gz_comp
      Src: /src/nss/lib/zlib/gzwrite.c:616,1
    - Dst: deflateEnd
      Src: /src/nss/lib/zlib/gzwrite.c:620,1
    - Dst: free
      Src: /src/nss/lib/zlib/gzwrite.c:621,1
    - Dst: free
      Src: /src/nss/lib/zlib/gzwrite.c:623,1
    - Dst: gz_error
      Src: /src/nss/lib/zlib/gzwrite.c:625,1
    - Dst: free
      Src: /src/nss/lib/zlib/gzwrite.c:626,1
    - Dst: close
      Src: /src/nss/lib/zlib/gzwrite.c:627,1
    - Dst: free
      Src: /src/nss/lib/zlib/gzwrite.c:629,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - file
    argTypes:
    - gzFile
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 595
    functionDepth: 5
    functionLinenumber: 595
    functionLinenumberEnd: 631
    functionName: gzclose_w
    functionSourceFile: /src/nss/lib/zlib/gzwrite.c
    functionUses: 0
    functionsReached:
    - gz_zero
    - free
    - close
    - gz_error
    - deflateEnd
    - gz_comp
    linkageType: ''
    returnType: int
    signature: int gzclose_w(gzFile file)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 7
    argCount: 1
    argNames:
    - strm
    argTypes:
    - z_streamp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 104
    functionName: inflateStateCheck
    functionSourceFile: /src/nss/lib/zlib/inflate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: local
    signature: local inflateStateCheck(z_streamp strm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: inflateStateCheck
      Src: /src/nss/lib/zlib/inflate.c:109,1
    - Dst: Tracev
      Src: /src/nss/lib/zlib/inflate.c:126,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - strm
    argTypes:
    - z_streamp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 128
    functionName: inflateResetKeep
    functionSourceFile: /src/nss/lib/zlib/inflate.c
    functionUses: 0
    functionsReached:
    - inflateStateCheck
    - Tracev
    linkageType: ''
    returnType: int
    signature: int inflateResetKeep(z_streamp strm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: inflateStateCheck
      Src: /src/nss/lib/zlib/inflate.c:133,1
    - Dst: inflateResetKeep
      Src: /src/nss/lib/zlib/inflate.c:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - strm
    argTypes:
    - z_streamp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 139
    functionName: inflateReset
    functionSourceFile: /src/nss/lib/zlib/inflate.c
    functionUses: 1
    functionsReached:
    - inflateStateCheck
    - inflateResetKeep
    linkageType: ''
    returnType: int
    signature: int inflateReset(z_streamp strm)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: inflateStateCheck
      Src: /src/nss/lib/zlib/inflate.c:146,1
    - Dst: ZFREE
      Src: /src/nss/lib/zlib/inflate.c:168,1
    - Dst: inflateReset
      Src: /src/nss/lib/zlib/inflate.c:175,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 2
    argNames:
    - strm
    - windowBits
    argTypes:
    - z_streamp
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 141
    functionDepth: 3
    functionLinenumber: 141
    functionLinenumberEnd: 176
    functionName: inflateReset2
    functionSourceFile: /src/nss/lib/zlib/inflate.c
    functionUses: 0
    functionsReached:
    - inflateStateCheck
    - inflateReset
    - ZFREE
    linkageType: ''
    returnType: int
    signature: int inflateReset2(z_streamp strm, int windowBits)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ZALLOC
      Src: /src/nss/lib/zlib/inflate.c:203,1
    - Dst: Tracev
      Src: /src/nss/lib/zlib/inflate.c:205,1
    - Dst: inflateReset2
      Src: /src/nss/lib/zlib/inflate.c:210,1
    - Dst: ZFREE
      Src: /src/nss/lib/zlib/inflate.c:212,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 4
    argNames:
    - strm
    - windowBits
    - version
    - stream_size
    argTypes:
    - z_streamp
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 178
    functionDepth: 4
    functionLinenumber: 178
    functionLinenumberEnd: 216
    functionName: inflateInit2_
    functionSourceFile: /src/nss/lib/zlib/inflate.c
    functionUses: 0
    functionsReached:
    - ZFREE
    - Tracev
    - inflateReset2
    - ZALLOC
    linkageType: ''
    returnType: int
    signature: "int inflateInit2_(z_streamp strm, int windowBits,\n                          const
      char *version, int stream_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inflateInit2_
      Src: /src/nss/lib/zlib/inflate.c:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - strm
    - version
    - stream_size
    argTypes:
    - z_streamp
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 218
    functionDepth: 5
    functionLinenumber: 218
    functionLinenumberEnd: 221
    functionName: inflateInit_
    functionSourceFile: /src/nss/lib/zlib/inflate.c
    functionUses: 0
    functionsReached:
    - inflateInit2_
    linkageType: ''
    returnType: int
    signature: "int inflateInit_(z_streamp strm, const char *version,\n                         int
      stream_size)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: inflateStateCheck
      Src: /src/nss/lib/zlib/inflate.c:226,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - strm
    - bits
    - value
    argTypes:
    - z_streamp
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 240
    functionName: inflatePrime
    functionSourceFile: /src/nss/lib/zlib/inflate.c
    functionUses: 0
    functionsReached:
    - inflateStateCheck
    linkageType: ''
    returnType: int
    signature: int inflatePrime(z_streamp strm, int bits, int value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: inflate_table
      Src: /src/nss/lib/zlib/inflate.c:272,1
    - Dst: inflate_table
      Src: /src/nss/lib/zlib/inflate.c:279,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct inflate_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 291
    functionName: fixedtables
    functionSourceFile: /src/nss/lib/zlib/inflate.c
    functionUses: 1
    functionsReached:
    - inflate_table
    linkageType: ''
    returnType: local
    signature: local fixedtables(struct inflate_state FAR *state)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fixedtables
      Src: /src/nss/lib/zlib/inflate.c:319,1
    - Dst: puts
      Src: /src/nss/lib/zlib/inflate.c:320,1
    - Dst: puts
      Src: /src/nss/lib/zlib/inflate.c:321,1
    - Dst: puts
      Src: /src/nss/lib/zlib/inflate.c:322,1
    - Dst: puts
      Src: /src/nss/lib/zlib/inflate.c:323,1
    - Dst: puts
      Src: /src/nss/lib/zlib/inflate.c:324,1
    - Dst: puts
      Src: /src/nss/lib/zlib/inflate.c:325,1
    - Dst: puts
      Src: /src/nss/lib/zlib/inflate.c:326,1
    - Dst: puts
      Src: /src/nss/lib/zlib/inflate.c:327,1
    - Dst: puts
      Src: /src/nss/lib/zlib/inflate.c:328,1
    - Dst: printf
      Src: /src/nss/lib/zlib/inflate.c:330,1
    - Dst: printf
      Src: /src/nss/lib/zlib/inflate.c:333,1
    - Dst: printf
      Src: /src/nss/lib/zlib/inflate.c:334,1
    - Dst: putchar
      Src: /src/nss/lib/zlib/inflate.c:337,1
    - Dst: puts
      Src: /src/nss/lib/zlib/inflate.c:339,1
    - Dst: printf
      Src: /src/nss/lib/zlib/inflate.c:341,1
    - Dst: printf
      Src: /src/nss/lib/zlib/inflate.c:344,1
    - Dst: printf
      Src: /src/nss/lib/zlib/inflate.c:345,1
    - Dst: putchar
      Src: /src/nss/lib/zlib/inflate.c:348,1
    - Dst: puts
      Src: /src/nss/lib/zlib/inflate.c:350,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 351
    functionName: makefixed
    functionSourceFile: /src/nss/lib/zlib/inflate.c
    functionUses: 0
    functionsReached:
    - fixedtables
    - printf
    - puts
    - putchar
    linkageType: ''
    returnType: void
    signature: void makefixed(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ZALLOC
      Src: /src/nss/lib/zlib/inflate.c:377,1
    - Dst: zmemcpy
      Src: /src/nss/lib/zlib/inflate.c:391,1
    - Dst: zmemcpy
      Src: /src/nss/lib/zlib/inflate.c:398,1
    - Dst: zmemcpy
      Src: /src/nss/lib/zlib/inflate.c:401,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 3
    argNames:
    - strm
    - end
    - copy
    argTypes:
    - z_streamp
    - Bytef*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 412
    functionName: updatewindow
    functionSourceFile: /src/nss/lib/zlib/inflate.c
    functionUses: 0
    functionsReached:
    - zmemcpy
    - ZALLOC
    linkageType: ''
    returnType: local
    signature: local updatewindow(z_streamp strm, const Bytef *end, unsigned copy)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - check
    - ','
    - buf
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 420
    functionName: UPDATE_CHECK
    functionSourceFile: /src/nss/lib/zlib/inflate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UPDATE_CHECK(check, buf, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - check
    - ','
    - buf
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 422
    functionName: UPDATE_CHECK
    functionSourceFile: /src/nss/lib/zlib/inflate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UPDATE_CHECK(check, buf, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - check
    - ','
    - word
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 432
    functionName: CRC2
    functionSourceFile: /src/nss/lib/zlib/inflate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CRC2(check, word)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - check
    - ','
    - word
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 441
    functionName: CRC4
    functionSourceFile: /src/nss/lib/zlib/inflate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CRC4(check, word)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 453
    functionName: LOAD
    functionSourceFile: /src/nss/lib/zlib/inflate.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 464
    functionName: RESTORE
    functionSourceFile: /src/nss/lib/zlib/inflate.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RESTORE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 471
    functionName: INITBITS
    functionSourceFile: /src/nss/lib/zlib/inflate.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INITBITS()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 481
    functionName: PULLBYTE
    functionSourceFile: /src/nss/lib/zlib/inflate.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PULLBYTE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 489
    functionName: NEEDBITS
    functionSourceFile: /src/nss/lib/zlib/inflate.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEEDBITS(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 493
    functionName: BITS
    functionSourceFile: /src/nss/lib/zlib/inflate.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BITS(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 500
    functionName: DROPBITS
    functionSourceFile: /src/nss/lib/zlib/inflate.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DROPBITS(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 507
    functionName: BYTEBITS
    functionSourceFile: /src/nss/lib/zlib/inflate.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTEBITS()
  - BBCount: 140
    BranchProfiles: []
    Callsites:
    - Dst: inflateStateCheck
      Src: /src/nss/lib/zlib/inflate.c:610,1
    - Dst: LOAD
      Src: /src/nss/lib/zlib/inflate.c:616,1
    - Dst: NEEDBITS
      Src: /src/nss/lib/zlib/inflate.c:627,1
    - Dst: crc32
      Src: /src/nss/lib/zlib/inflate.c:632,1
    - Dst: CRC2
      Src: /src/nss/lib/zlib/inflate.c:633,1
    - Dst: INITBITS
      Src: /src/nss/lib/zlib/inflate.c:634,1
    - Dst: BITS
      Src: /src/nss/lib/zlib/inflate.c:644,1
    - Dst: BITS
      Src: /src/nss/lib/zlib/inflate.c:649,1
    - Dst: DROPBITS
      Src: /src/nss/lib/zlib/inflate.c:654,1
    - Dst: BITS
      Src: /src/nss/lib/zlib/inflate.c:655,1
    - Dst: Tracev
      Src: /src/nss/lib/zlib/inflate.c:665,1
    - Dst: adler32
      Src: /src/nss/lib/zlib/inflate.c:666,1
    - Dst: INITBITS
      Src: /src/nss/lib/zlib/inflate.c:668,1
    - Dst: NEEDBITS
      Src: /src/nss/lib/zlib/inflate.c:672,1
    - Dst: CRC2
      Src: /src/nss/lib/zlib/inflate.c:687,1
    - Dst: INITBITS
      Src: /src/nss/lib/zlib/inflate.c:688,1
    - Dst: NEEDBITS
      Src: /src/nss/lib/zlib/inflate.c:692,1
    - Dst: CRC4
      Src: /src/nss/lib/zlib/inflate.c:696,1
    - Dst: INITBITS
      Src: /src/nss/lib/zlib/inflate.c:697,1
    - Dst: NEEDBITS
      Src: /src/nss/lib/zlib/inflate.c:701,1
    - Dst: CRC2
      Src: /src/nss/lib/zlib/inflate.c:707,1
    - Dst: INITBITS
      Src: /src/nss/lib/zlib/inflate.c:708,1
    - Dst: NEEDBITS
      Src: /src/nss/lib/zlib/inflate.c:713,1
    - Dst: CRC2
      Src: /src/nss/lib/zlib/inflate.c:718,1
    - Dst: INITBITS
      Src: /src/nss/lib/zlib/inflate.c:719,1
    - Dst: zmemcpy
      Src: /src/nss/lib/zlib/inflate.c:734,1
    - Dst: crc32
      Src: /src/nss/lib/zlib/inflate.c:739,1
    - Dst: crc32
      Src: /src/nss/lib/zlib/inflate.c:761,1
    - Dst: crc32
      Src: /src/nss/lib/zlib/inflate.c:783,1
    - Dst: NEEDBITS
      Src: /src/nss/lib/zlib/inflate.c:794,1
    - Dst: INITBITS
      Src: /src/nss/lib/zlib/inflate.c:800,1
    - Dst: crc32
      Src: /src/nss/lib/zlib/inflate.c:806,1
    - Dst: NEEDBITS
      Src: /src/nss/lib/zlib/inflate.c:811,1
    - Dst: ZSWAP32
      Src: /src/nss/lib/zlib/inflate.c:812,1
    - Dst: INITBITS
      Src: /src/nss/lib/zlib/inflate.c:813,1
    - Dst: RESTORE
      Src: /src/nss/lib/zlib/inflate.c:818,1
    - Dst: adler32
      Src: /src/nss/lib/zlib/inflate.c:821,1
    - Dst: BYTEBITS
      Src: /src/nss/lib/zlib/inflate.c:829,1
    - Dst: NEEDBITS
      Src: /src/nss/lib/zlib/inflate.c:833,1
    - Dst: BITS
      Src: /src/nss/lib/zlib/inflate.c:834,1
    - Dst: DROPBITS
      Src: /src/nss/lib/zlib/inflate.c:835,1
    - Dst: BITS
      Src: /src/nss/lib/zlib/inflate.c:836,1
    - Dst: Tracev
      Src: /src/nss/lib/zlib/inflate.c:838,1
    - Dst: fixedtables
      Src: /src/nss/lib/zlib/inflate.c:843,1
    - Dst: Tracev
      Src: /src/nss/lib/zlib/inflate.c:844,1
    - Dst: DROPBITS
      Src: /src/nss/lib/zlib/inflate.c:848,1
    - Dst: Tracev
      Src: /src/nss/lib/zlib/inflate.c:853,1
    - Dst: DROPBITS
      Src: /src/nss/lib/zlib/inflate.c:861,1
    - Dst: BYTEBITS
      Src: /src/nss/lib/zlib/inflate.c:864,1
    - Dst: NEEDBITS
      Src: /src/nss/lib/zlib/inflate.c:865,1
    - Dst: Tracev
      Src: /src/nss/lib/zlib/inflate.c:872,1
    - Dst: INITBITS
      Src: /src/nss/lib/zlib/inflate.c:874,1
    - Dst: zmemcpy
      Src: /src/nss/lib/zlib/inflate.c:887,1
    - Dst: Tracev
      Src: /src/nss/lib/zlib/inflate.c:895,1
    - Dst: NEEDBITS
      Src: /src/nss/lib/zlib/inflate.c:899,1
    - Dst: BITS
      Src: /src/nss/lib/zlib/inflate.c:900,1
    - Dst: DROPBITS
      Src: /src/nss/lib/zlib/inflate.c:901,1
    - Dst: BITS
      Src: /src/nss/lib/zlib/inflate.c:902,1
    - Dst: DROPBITS
      Src: /src/nss/lib/zlib/inflate.c:903,1
    - Dst: BITS
      Src: /src/nss/lib/zlib/inflate.c:904,1
    - Dst: DROPBITS
      Src: /src/nss/lib/zlib/inflate.c:905,1
    - Dst: Tracev
      Src: /src/nss/lib/zlib/inflate.c:913,1
    - Dst: NEEDBITS
      Src: /src/nss/lib/zlib/inflate.c:919,1
    - Dst: BITS
      Src: /src/nss/lib/zlib/inflate.c:920,1
    - Dst: DROPBITS
      Src: /src/nss/lib/zlib/inflate.c:921,1
    - Dst: inflate_table
      Src: /src/nss/lib/zlib/inflate.c:928,1
    - Dst: Tracev
      Src: /src/nss/lib/zlib/inflate.c:935,1
    - Dst: BITS
      Src: /src/nss/lib/zlib/inflate.c:942,1
    - Dst: PULLBYTE
      Src: /src/nss/lib/zlib/inflate.c:944,1
    - Dst: DROPBITS
      Src: /src/nss/lib/zlib/inflate.c:947,1
    - Dst: NEEDBITS
      Src: /src/nss/lib/zlib/inflate.c:952,1
    - Dst: DROPBITS
      Src: /src/nss/lib/zlib/inflate.c:953,1
    - Dst: BITS
      Src: /src/nss/lib/zlib/inflate.c:960,1
    - Dst: DROPBITS
      Src: /src/nss/lib/zlib/inflate.c:961,1
    - Dst: NEEDBITS
      Src: /src/nss/lib/zlib/inflate.c:964,1
    - Dst: DROPBITS
      Src: /src/nss/lib/zlib/inflate.c:965,1
    - Dst: BITS
      Src: /src/nss/lib/zlib/inflate.c:967,1
    - Dst: DROPBITS
      Src: /src/nss/lib/zlib/inflate.c:968,1
    - Dst: NEEDBITS
      Src: /src/nss/lib/zlib/inflate.c:971,1
    - Dst: DROPBITS
      Src: /src/nss/lib/zlib/inflate.c:972,1
    - Dst: BITS
      Src: /src/nss/lib/zlib/inflate.c:974,1
    - Dst: DROPBITS
      Src: /src/nss/lib/zlib/inflate.c:975,1
    - Dst: inflate_table
      Src: /src/nss/lib/zlib/inflate.c:1003,1
    - Dst: inflate_table
      Src: /src/nss/lib/zlib/inflate.c:1012,1
    - Dst: Tracev
      Src: /src/nss/lib/zlib/inflate.c:1019,1
    - Dst: RESTORE
      Src: /src/nss/lib/zlib/inflate.c:1028,1
    - Dst: inflate_fast
      Src: /src/nss/lib/zlib/inflate.c:1029,1
    - Dst: LOAD
      Src: /src/nss/lib/zlib/inflate.c:1030,1
    - Dst: BITS
      Src: /src/nss/lib/zlib/inflate.c:1037,1
    - Dst: PULLBYTE
      Src: /src/nss/lib/zlib/inflate.c:1039,1
    - Dst: BITS
      Src: /src/nss/lib/zlib/inflate.c:1045,1
    - Dst: PULLBYTE
      Src: /src/nss/lib/zlib/inflate.c:1047,1
    - Dst: DROPBITS
      Src: /src/nss/lib/zlib/inflate.c:1049,1
    - Dst: DROPBITS
      Src: /src/nss/lib/zlib/inflate.c:1052,1
    - Dst: Tracevv
      Src: /src/nss/lib/zlib/inflate.c:1056,1
    - Dst: Tracevv
      Src: /src/nss/lib/zlib/inflate.c:1063,1
    - Dst: NEEDBITS
      Src: /src/nss/lib/zlib/inflate.c:1078,1
    - Dst: BITS
      Src: /src/nss/lib/zlib/inflate.c:1079,1
    - Dst: DROPBITS
      Src: /src/nss/lib/zlib/inflate.c:1080,1
    - Dst: Tracevv
      Src: /src/nss/lib/zlib/inflate.c:1083,1
    - Dst: BITS
      Src: /src/nss/lib/zlib/inflate.c:1089,1
    - Dst: PULLBYTE
      Src: /src/nss/lib/zlib/inflate.c:1091,1
    - Dst: BITS
      Src: /src/nss/lib/zlib/inflate.c:1097,1
    - Dst: PULLBYTE
      Src: /src/nss/lib/zlib/inflate.c:1099,1
    - Dst: DROPBITS
      Src: /src/nss/lib/zlib/inflate.c:1101,1
    - Dst: DROPBITS
      Src: /src/nss/lib/zlib/inflate.c:1104,1
    - Dst: NEEDBITS
      Src: /src/nss/lib/zlib/inflate.c:1117,1
    - Dst: BITS
      Src: /src/nss/lib/zlib/inflate.c:1118,1
    - Dst: DROPBITS
      Src: /src/nss/lib/zlib/inflate.c:1119,1
    - Dst: Tracevv
      Src: /src/nss/lib/zlib/inflate.c:1129,1
    - Dst: Trace
      Src: /src/nss/lib/zlib/inflate.c:1144,1
    - Dst: NEEDBITS
      Src: /src/nss/lib/zlib/inflate.c:1185,1
    - Dst: UPDATE_CHECK
      Src: /src/nss/lib/zlib/inflate.c:1191,1
    - Dst: ZSWAP32
      Src: /src/nss/lib/zlib/inflate.c:1197,1
    - Dst: INITBITS
      Src: /src/nss/lib/zlib/inflate.c:1202,1
    - Dst: Tracev
      Src: /src/nss/lib/zlib/inflate.c:1203,1
    - Dst: NEEDBITS
      Src: /src/nss/lib/zlib/inflate.c:1210,1
    - Dst: INITBITS
      Src: /src/nss/lib/zlib/inflate.c:1216,1
    - Dst: Tracev
      Src: /src/nss/lib/zlib/inflate.c:1217,1
    - Dst: RESTORE
      Src: /src/nss/lib/zlib/inflate.c:1243,1
    - Dst: updatewindow
      Src: /src/nss/lib/zlib/inflate.c:1246,1
    - Dst: UPDATE_CHECK
      Src: /src/nss/lib/zlib/inflate.c:1257,1
    CyclomaticComplexity: 215
    EdgeCount: 215
    ICount: 609
    argCount: 2
    argNames:
    - strm
    - flush
    argTypes:
    - z_streamp
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 590
    functionDepth: 4
    functionLinenumber: 590
    functionLinenumberEnd: 1264
    functionName: inflate
    functionSourceFile: /src/nss/lib/zlib/inflate.c
    functionUses: 2
    functionsReached:
    - zmemcpy
    - PULLBYTE
    - BYTEBITS
    - NEEDBITS
    - ZSWAP32
    - UPDATE_CHECK
    - updatewindow
    - inflate_table
    - inflateStateCheck
    - inflate_fast
    - Tracev
    - crc32
    - CRC4
    - RESTORE
    - fixedtables
    - Tracevv
    - adler32
    - CRC2
    - BITS
    - INITBITS
    - DROPBITS
    - LOAD
    - Trace
    linkageType: ''
    returnType: int
    signature: int inflate(z_streamp strm, int flush)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: inflateStateCheck
      Src: /src/nss/lib/zlib/inflate.c:1268,1
    - Dst: ZFREE
      Src: /src/nss/lib/zlib/inflate.c:1271,1
    - Dst: ZFREE
      Src: /src/nss/lib/zlib/inflate.c:1272,1
    - Dst: Tracev
      Src: /src/nss/lib/zlib/inflate.c:1274,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - strm
    argTypes:
    - z_streamp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1276
      start: 1266
    functionDepth: 1
    functionLinenumber: 1266
    functionLinenumberEnd: 1276
    functionName: inflateEnd
    functionSourceFile: /src/nss/lib/zlib/inflate.c
    functionUses: 2
    functionsReached:
    - inflateStateCheck
    - Tracev
    - ZFREE
    linkageType: ''
    returnType: int
    signature: int inflateEnd(z_streamp strm)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: inflateStateCheck
      Src: /src/nss/lib/zlib/inflate.c:1283,1
    - Dst: zmemcpy
      Src: /src/nss/lib/zlib/inflate.c:1288,1
    - Dst: zmemcpy
      Src: /src/nss/lib/zlib/inflate.c:1290,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - strm
    - dictionary
    - dictLength
    argTypes:
    - z_streamp
    - Bytef*
    - uInt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1296
      start: 1278
    functionDepth: 1
    functionLinenumber: 1278
    functionLinenumberEnd: 1296
    functionName: inflateGetDictionary
    functionSourceFile: /src/nss/lib/zlib/inflate.c
    functionUses: 0
    functionsReached:
    - inflateStateCheck
    - zmemcpy
    linkageType: ''
    returnType: int
    signature: "int inflateGetDictionary(z_streamp strm, Bytef *dictionary,\n                                 uInt
      *dictLength)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: inflateStateCheck
      Src: /src/nss/lib/zlib/inflate.c:1305,1
    - Dst: adler32
      Src: /src/nss/lib/zlib/inflate.c:1312,1
    - Dst: adler32
      Src: /src/nss/lib/zlib/inflate.c:1313,1
    - Dst: updatewindow
      Src: /src/nss/lib/zlib/inflate.c:1320,1
    - Dst: Tracev
      Src: /src/nss/lib/zlib/inflate.c:1326,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - strm
    - dictionary
    - dictLength
    argTypes:
    - z_streamp
    - Bytef*
    - uInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1328
      start: 1298
    functionDepth: 2
    functionLinenumber: 1298
    functionLinenumberEnd: 1328
    functionName: inflateSetDictionary
    functionSourceFile: /src/nss/lib/zlib/inflate.c
    functionUses: 0
    functionsReached:
    - inflateStateCheck
    - adler32
    - Tracev
    - updatewindow
    linkageType: ''
    returnType: int
    signature: "int inflateSetDictionary(z_streamp strm, const Bytef *dictionary,\n
      \                                uInt dictLength)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: inflateStateCheck
      Src: /src/nss/lib/zlib/inflate.c:1334,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - strm
    - head
    argTypes:
    - z_streamp
    - gz_headerp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1342
      start: 1330
    functionDepth: 1
    functionLinenumber: 1330
    functionLinenumberEnd: 1342
    functionName: inflateGetHeader
    functionSourceFile: /src/nss/lib/zlib/inflate.c
    functionUses: 0
    functionsReached:
    - inflateStateCheck
    linkageType: ''
    returnType: int
    signature: int inflateGetHeader(z_streamp strm, gz_headerp head)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - have
    - buf
    - len
    argTypes:
    - unsigned FAR*
    - unsigned char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1373
      start: 1355
    functionDepth: 0
    functionLinenumber: 1355
    functionLinenumberEnd: 1373
    functionName: syncsearch
    functionSourceFile: /src/nss/lib/zlib/inflate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: local unsigned
    signature: "local unsigned syncsearch(unsigned FAR *have, const unsigned char
      FAR *buf,\n                          unsigned len)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: inflateStateCheck
      Src: /src/nss/lib/zlib/inflate.c:1383,1
    - Dst: syncsearch
      Src: /src/nss/lib/zlib/inflate.c:1399,1
    - Dst: syncsearch
      Src: /src/nss/lib/zlib/inflate.c:1403,1
    - Dst: inflateReset
      Src: /src/nss/lib/zlib/inflate.c:1416,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 1
    argNames:
    - strm
    argTypes:
    - z_streamp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1421
      start: 1375
    functionDepth: 3
    functionLinenumber: 1375
    functionLinenumberEnd: 1421
    functionName: inflateSync
    functionSourceFile: /src/nss/lib/zlib/inflate.c
    functionUses: 0
    functionsReached:
    - inflateStateCheck
    - inflateReset
    - syncsearch
    linkageType: ''
    returnType: int
    signature: int inflateSync(z_streamp strm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: inflateStateCheck
      Src: /src/nss/lib/zlib/inflate.c:1434,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - strm
    argTypes:
    - z_streamp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1437
      start: 1431
    functionDepth: 1
    functionLinenumber: 1431
    functionLinenumberEnd: 1437
    functionName: inflateSyncPoint
    functionSourceFile: /src/nss/lib/zlib/inflate.c
    functionUses: 0
    functionsReached:
    - inflateStateCheck
    linkageType: ''
    returnType: int
    signature: int inflateSyncPoint(z_streamp strm)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: inflateStateCheck
      Src: /src/nss/lib/zlib/inflate.c:1446,1
    - Dst: ZALLOC
      Src: /src/nss/lib/zlib/inflate.c:1452,1
    - Dst: ZALLOC
      Src: /src/nss/lib/zlib/inflate.c:1457,1
    - Dst: ZFREE
      Src: /src/nss/lib/zlib/inflate.c:1459,1
    - Dst: zmemcpy
      Src: /src/nss/lib/zlib/inflate.c:1465,1
    - Dst: zmemcpy
      Src: /src/nss/lib/zlib/inflate.c:1466,1
    - Dst: zmemcpy
      Src: /src/nss/lib/zlib/inflate.c:1476,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - dest
    - source
    argTypes:
    - z_streamp
    - z_streamp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1481
      start: 1439
    functionDepth: 1
    functionLinenumber: 1439
    functionLinenumberEnd: 1481
    functionName: inflateCopy
    functionSourceFile: /src/nss/lib/zlib/inflate.c
    functionUses: 0
    functionsReached:
    - inflateStateCheck
    - zmemcpy
    - ZFREE
    - ZALLOC
    linkageType: ''
    returnType: int
    signature: int inflateCopy(z_streamp dest, z_streamp source)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: inflateStateCheck
      Src: /src/nss/lib/zlib/inflate.c:1486,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - strm
    - subvert
    argTypes:
    - z_streamp
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1496
      start: 1483
    functionDepth: 1
    functionLinenumber: 1483
    functionLinenumberEnd: 1496
    functionName: inflateUndermine
    functionSourceFile: /src/nss/lib/zlib/inflate.c
    functionUses: 0
    functionsReached:
    - inflateStateCheck
    linkageType: ''
    returnType: int
    signature: int inflateUndermine(z_streamp strm, int subvert)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: inflateStateCheck
      Src: /src/nss/lib/zlib/inflate.c:1501,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - strm
    - check
    argTypes:
    - z_streamp
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1508
      start: 1498
    functionDepth: 1
    functionLinenumber: 1498
    functionLinenumberEnd: 1508
    functionName: inflateValidate
    functionSourceFile: /src/nss/lib/zlib/inflate.c
    functionUses: 0
    functionsReached:
    - inflateStateCheck
    linkageType: ''
    returnType: int
    signature: int inflateValidate(z_streamp strm, int check)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: inflateStateCheck
      Src: /src/nss/lib/zlib/inflate.c:1513,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - strm
    argTypes:
    - z_streamp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1519
      start: 1510
    functionDepth: 1
    functionLinenumber: 1510
    functionLinenumberEnd: 1519
    functionName: inflateMark
    functionSourceFile: /src/nss/lib/zlib/inflate.c
    functionUses: 0
    functionsReached:
    - inflateStateCheck
    linkageType: ''
    returnType: long ZEXPORT
    signature: long ZEXPORT inflateMark(z_streamp strm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: inflateStateCheck
      Src: /src/nss/lib/zlib/inflate.c:1523,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - strm
    argTypes:
    - z_streamp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1526
      start: 1521
    functionDepth: 1
    functionLinenumber: 1521
    functionLinenumberEnd: 1526
    functionName: inflateCodesUsed
    functionSourceFile: /src/nss/lib/zlib/inflate.c
    functionUses: 0
    functionsReached:
    - inflateStateCheck
    linkageType: ''
    returnType: unsigned long ZEXPORT
    signature: unsigned long ZEXPORT inflateCodesUsed(z_streamp strm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - buf
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: DO1
    functionSourceFile: /src/nss/lib/zlib/adler32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DO1(buf,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - buf
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 16
    functionName: DO2
    functionSourceFile: /src/nss/lib/zlib/adler32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DO2(buf,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - buf
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: DO4
    functionSourceFile: /src/nss/lib/zlib/adler32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DO4(buf,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - buf
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: DO8
    functionSourceFile: /src/nss/lib/zlib/adler32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DO8(buf,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buf
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: DO16
    functionSourceFile: /src/nss/lib/zlib/adler32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DO16(buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 31
    functionName: CHOP
    functionSourceFile: /src/nss/lib/zlib/adler32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHOP(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: MOD28
    functionSourceFile: /src/nss/lib/zlib/adler32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MOD28(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: MOD
    functionSourceFile: /src/nss/lib/zlib/adler32.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MOD(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: MOD
    functionSourceFile: /src/nss/lib/zlib/adler32.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MOD(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: MOD28
    functionSourceFile: /src/nss/lib/zlib/adler32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MOD28(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: MOD63
    functionSourceFile: /src/nss/lib/zlib/adler32.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MOD63(a)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: MOD28
      Src: /src/nss/lib/zlib/adler32.c:92,1
    - Dst: DO16
      Src: /src/nss/lib/zlib/adler32.c:101,1
    - Dst: MOD
      Src: /src/nss/lib/zlib/adler32.c:104,1
    - Dst: MOD
      Src: /src/nss/lib/zlib/adler32.c:105,1
    - Dst: DO16
      Src: /src/nss/lib/zlib/adler32.c:112,1
    - Dst: MOD
      Src: /src/nss/lib/zlib/adler32.c:119,1
    - Dst: MOD
      Src: /src/nss/lib/zlib/adler32.c:120,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 48
    argCount: 3
    argNames:
    - adler
    - buf
    - len
    argTypes:
    - uLong
    - Bytef*
    - z_size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 125
    functionName: adler32_z
    functionSourceFile: /src/nss/lib/zlib/adler32.c
    functionUses: 0
    functionsReached:
    - MOD
    - MOD28
    - DO16
    linkageType: ''
    returnType: uLong
    signature: uLong adler32_z(uLong adler, const Bytef *buf, z_size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: adler32_z
      Src: /src/nss/lib/zlib/adler32.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - adler
    - buf
    - len
    argTypes:
    - uLong
    - Bytef*
    - uInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 130
    functionName: adler32
    functionSourceFile: /src/nss/lib/zlib/adler32.c
    functionUses: 5
    functionsReached:
    - adler32_z
    linkageType: ''
    returnType: uLong
    signature: uLong adler32(uLong adler, const Bytef *buf, uInt len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: MOD63
      Src: /src/nss/lib/zlib/adler32.c:143,1
    - Dst: MOD
      Src: /src/nss/lib/zlib/adler32.c:147,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - adler1
    - adler2
    - len2
    argTypes:
    - uLong
    - uLong
    - z_off64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 155
    functionName: adler32_combine_
    functionSourceFile: /src/nss/lib/zlib/adler32.c
    functionUses: 0
    functionsReached:
    - MOD
    - MOD63
    linkageType: ''
    returnType: local
    signature: local adler32_combine_(uLong adler1, uLong adler2, z_off64_t len2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: adler32_combine_
      Src: /src/nss/lib/zlib/adler32.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - adler1
    - adler2
    - len2
    argTypes:
    - uLong
    - uLong
    - z_off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 160
    functionName: adler32_combine
    functionSourceFile: /src/nss/lib/zlib/adler32.c
    functionUses: 0
    functionsReached:
    - adler32_combine_
    linkageType: ''
    returnType: uLong
    signature: uLong adler32_combine(uLong adler1, uLong adler2, z_off_t len2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: adler32_combine_
      Src: /src/nss/lib/zlib/adler32.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - adler1
    - adler2
    - len2
    argTypes:
    - uLong
    - uLong
    - z_off64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 164
    functionName: adler32_combine64
    functionSourceFile: /src/nss/lib/zlib/adler32.c
    functionUses: 0
    functionsReached:
    - adler32_combine_
    linkageType: ''
    returnType: uLong
    signature: uLong adler32_combine64(uLong adler1, uLong adler2, z_off64_t len2)
  - BBCount: 23
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 131
    argCount: 6
    argNames:
    - type
    - lens
    - codes
    - table
    - bits
    - work
    argTypes:
    - codetype
    - unsigned short FAR*
    - unsigned
    - code**
    - unsigned FAR*
    - unsigned short FAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 299
    functionName: ZLIB_INTERNAL::inflate_table
    functionSourceFile: /src/nss/lib/zlib/inftrees.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int ZLIB_INTERNAL inflate_table(codetype type, unsigned short FAR
      *lens,\n                                unsigned codes, code FAR * FAR *table,\n
      \                               unsigned FAR *bits, unsigned short FAR *work)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gzclose_r
      Src: /src/nss/lib/zlib/gzclose.c:19,1
    - Dst: gzclose_w
      Src: /src/nss/lib/zlib/gzclose.c:19,1
    - Dst: gzclose_r
      Src: /src/nss/lib/zlib/gzclose.c:21,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - file
    argTypes:
    - gzFile
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 11
    functionDepth: 6
    functionLinenumber: 11
    functionLinenumberEnd: 23
    functionName: gzclose
    functionSourceFile: /src/nss/lib/zlib/gzclose.c
    functionUses: 0
    functionsReached:
    - gzclose_w
    - gzclose_r
    linkageType: ''
    returnType: int
    signature: int gzclose(gzFile file)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nssToken_GetSlot
      Src: /src/nss/lib/dev/devutil.c:31,1
    - Dst: nssCKObject_GetAttributes
      Src: /src/nss/lib/dev/devutil.c:32,1
    - Dst: nssSlot_Destroy
      Src: /src/nss/lib/dev/devutil.c:34,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/dev/devutil.c:40,1
    - Dst: nss_ZNEW
      Src: /src/nss/lib/dev/devutil.c:43,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/dev/devutil.c:45,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/dev/devutil.c:46,1
    - Dst: nssToken_AddRef
      Src: /src/nss/lib/dev/devutil.c:50,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/dev/devutil.c:54,1
    - Dst: NSS_CK_ATTRIBUTE_TO_UTF8
      Src: /src/nss/lib/dev/devutil.c:55,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 57
    functionName: "nssCryptokiObject *\nnssCryptokiObject_Create(\n    NSSToken *t,\n
      \   nssSession *session,\n    CK_OBJECT_HANDLE h)"
    functionSourceFile: /src/nss/lib/dev/devutil.c
    functionUses: 0
    functionsReached:
    - nssToken_GetSlot
    - nss_ZNEW
    - nss_ZFreeIf
    - nssToken_AddRef
    - nssSlot_Destroy
    - NSS_CK_ATTRIBUTE_TO_UTF8
    - nssCKObject_GetAttributes
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCryptokiObject *\nnssCryptokiObject_Create(\n    NSSToken
      *t,\n    nssSession *session,\n    CK_OBJECT_HANDLE h)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssToken_Destroy
      Src: /src/nss/lib/dev/devutil.c:64,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/dev/devutil.c:65,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/dev/devutil.c:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - object
    argTypes:
    - nssCryptokiObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 68
    functionName: nssCryptokiObject_Destroy
    functionSourceFile: /src/nss/lib/dev/devutil.c
    functionUses: 22
    functionsReached:
    - nssToken_Destroy
    - nss_ZFreeIf
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCryptokiObject_Destroy(\n    nssCryptokiObject *object)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nss_ZNEW
      Src: /src/nss/lib/dev/devutil.c:75,1
    - Dst: nssToken_AddRef
      Src: /src/nss/lib/dev/devutil.c:78,1
    - Dst: nssUTF8_Duplicate
      Src: /src/nss/lib/dev/devutil.c:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 85
    functionName: "nssCryptokiObject *\nnssCryptokiObject_Clone(\n    nssCryptokiObject
      *object)"
    functionSourceFile: /src/nss/lib/dev/devutil.c
    functionUses: 0
    functionsReached:
    - nssToken_AddRef
    - nssUTF8_Duplicate
    - nss_ZNEW
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCryptokiObject *\nnssCryptokiObject_Clone(\n    nssCryptokiObject
      *object)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - o1
    - o2
    argTypes:
    - nssCryptokiObject*
    - nssCryptokiObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 93
    functionName: nssCryptokiObject_Equal
    functionSourceFile: /src/nss/lib/dev/devutil.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: NSS_EXTERN
    signature: "NSS_EXTERN nssCryptokiObject_Equal(\n    nssCryptokiObject *o1,\n
      \   nssCryptokiObject *o2)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - pkcs11Str
    - bufLen
    argTypes:
    - CK_CHAR*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 105
    functionName: nssPKCS11String_Length
    functionSourceFile: /src/nss/lib/dev/devutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nssPKCS11String_Length(CK_CHAR *pkcs11Str, PRUint32 bufLen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nss_ZNEWARRAY
      Src: /src/nss/lib/dev/devutil.c:121,1
    - Dst: nssSlot_AddRef
      Src: /src/nss/lib/dev/devutil.c:124,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 129
    functionName: nssSlotArray_Clone
    functionSourceFile: /src/nss/lib/dev/devutil.c
    functionUses: 0
    functionsReached:
    - nss_ZNEWARRAY
    - nssSlot_AddRef
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT **\nnssSlotArray_Clone(\n    NSSSlot **slots)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssSlot_Destroy
      Src: /src/nss/lib/dev/devutil.c:138,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/dev/devutil.c:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - slots
    argTypes:
    - NSSSlot**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 142
    functionName: nssSlotArray_Destroy
    functionSourceFile: /src/nss/lib/dev/devutil.c
    functionUses: 6
    functionsReached:
    - nss_ZFreeIf
    - nssSlot_Destroy
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssSlotArray_Destroy(\n    NSSSlot **slots)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssSlotArray_Destroy
      Src: /src/nss/lib/dev/devutil.c:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - slots
    argTypes:
    - NSSSlot**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 149
    functionName: NSSSlotArray_Destroy
    functionSourceFile: /src/nss/lib/dev/devutil.c
    functionUses: 0
    functionsReached:
    - nssSlotArray_Destroy
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSSlotArray_Destroy(\n    NSSSlot **slots)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssToken_Destroy
      Src: /src/nss/lib/dev/devutil.c:158,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/dev/devutil.c:160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - tokens
    argTypes:
    - NSSToken**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 162
    functionName: nssTokenArray_Destroy
    functionSourceFile: /src/nss/lib/dev/devutil.c
    functionUses: 2
    functionsReached:
    - nssToken_Destroy
    - nss_ZFreeIf
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssTokenArray_Destroy(\n    NSSToken **tokens)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssCryptokiObject_Destroy
      Src: /src/nss/lib/dev/devutil.c:171,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/dev/devutil.c:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - objects
    argTypes:
    - nssCryptokiObject**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 164
    functionDepth: 2
    functionLinenumber: 164
    functionLinenumberEnd: 175
    functionName: nssCryptokiObjectArray_Destroy
    functionSourceFile: /src/nss/lib/dev/devutil.c
    functionUses: 7
    functionsReached:
    - nss_ZFreeIf
    - nssCryptokiObject_Destroy
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCryptokiObjectArray_Destroy(\n    nssCryptokiObject
      **objects)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nss_ZNEW
      Src: /src/nss/lib/dev/devutil.c:210,1
    - Dst: PZ_NewLock
      Src: /src/nss/lib/dev/devutil.c:214,1
    - Dst: nssTokenObjectCache_Destroy
      Src: /src/nss/lib/dev/devutil.c:224,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 226
    functionName: "nssTokenObjectCache *\nnssTokenObjectCache_Create(\n    NSSToken
      *token,\n    PRBool cacheCerts,\n    PRBool cacheTrust,\n    PRBool cacheCRLs)"
    functionSourceFile: /src/nss/lib/dev/devutil.c
    functionUses: 0
    functionsReached:
    - PZ_NewLock
    - nssTokenObjectCache_Destroy
    - nss_ZNEW
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssTokenObjectCache *\nnssTokenObjectCache_Create(\n
      \   NSSToken *token,\n    PRBool cacheCerts,\n    PRBool cacheTrust,\n    PRBool
      cacheCRLs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssCryptokiObject_Destroy
      Src: /src/nss/lib/dev/devutil.c:242,1
    - Dst: nssArena_Destroy
      Src: /src/nss/lib/dev/devutil.c:243,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/dev/devutil.c:245,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - cache
    argTypes:
    - nssTokenObjectCache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 228
    functionDepth: 2
    functionLinenumber: 228
    functionLinenumberEnd: 248
    functionName: clear_cache
    functionSourceFile: /src/nss/lib/dev/devutil.c
    functionUses: 0
    functionsReached:
    - nss_ZFreeIf
    - nssCryptokiObject_Destroy
    - nssArena_Destroy
    linkageType: ''
    returnType: void
    signature: "void clear_cache(\n    nssTokenObjectCache *cache)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/dev/devutil.c:255,1
    - Dst: clear_cache
      Src: /src/nss/lib/dev/devutil.c:256,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/dev/devutil.c:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cache
    argTypes:
    - nssTokenObjectCache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 250
    functionDepth: 3
    functionLinenumber: 250
    functionLinenumberEnd: 259
    functionName: nssTokenObjectCache_Clear
    functionSourceFile: /src/nss/lib/dev/devutil.c
    functionUses: 0
    functionsReached:
    - PZ_Lock
    - PZ_Unlock
    - clear_cache
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssTokenObjectCache_Clear(\n    nssTokenObjectCache
      *cache)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: clear_cache
      Src: /src/nss/lib/dev/devutil.c:266,1
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/dev/devutil.c:268,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/dev/devutil.c:270,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - cache
    argTypes:
    - nssTokenObjectCache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 261
    functionDepth: 3
    functionLinenumber: 261
    functionLinenumberEnd: 272
    functionName: nssTokenObjectCache_Destroy
    functionSourceFile: /src/nss/lib/dev/devutil.c
    functionUses: 1
    functionsReached:
    - nss_ZFreeIf
    - PZ_DestroyLock
    - clear_cache
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssTokenObjectCache_Destroy(\n    nssTokenObjectCache
      *cache)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/dev/devutil.c:280,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/dev/devutil.c:295,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - cache
    - objclass
    argTypes:
    - nssTokenObjectCache*
    - CK_OBJECT_CLASS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 297
    functionName: nssTokenObjectCache_HaveObjectClass
    functionSourceFile: /src/nss/lib/dev/devutil.c
    functionUses: 0
    functionsReached:
    - PZ_Lock
    - PZ_Unlock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssTokenObjectCache_HaveObjectClass(\n    nssTokenObjectCache
      *cache,\n    CK_OBJECT_CLASS objclass)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nss_ZNEWARRAY
      Src: /src/nss/lib/dev/devutil.c:324,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 330
    functionName: create_object_array
    functionSourceFile: /src/nss/lib/dev/devutil.c
    functionUses: 0
    functionsReached:
    - nss_ZNEWARRAY
    linkageType: ''
    returnType: nssCryptokiObjectAndAttributes
    signature: "nssCryptokiObjectAndAttributes **\ncreate_object_array(\n    nssCryptokiObject
      **objects,\n    PRBool *doObjects,\n    PRUint32 *numObjects,\n    PRStatus
      *status)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: nssToken_GetSlot
      Src: /src/nss/lib/dev/devutil.c:345,1
    - Dst: nss_SetError
      Src: /src/nss/lib/dev/devutil.c:347,1
    - Dst: nssToken_GetDefaultSession
      Src: /src/nss/lib/dev/devutil.c:350,1
    - Dst: nss_SetError
      Src: /src/nss/lib/dev/devutil.c:352,1
    - Dst: nssArena_Create
      Src: /src/nss/lib/dev/devutil.c:355,1
    - Dst: nss_ZNEW
      Src: /src/nss/lib/dev/devutil.c:359,1
    - Dst: nssToken_Destroy
      Src: /src/nss/lib/dev/devutil.c:367,1
    - Dst: nss_ZNEWARRAY
      Src: /src/nss/lib/dev/devutil.c:369,1
    - Dst: nssCKObject_GetAttributes
      Src: /src/nss/lib/dev/devutil.c:376,1
    - Dst: nssSlot_Destroy
      Src: /src/nss/lib/dev/devutil.c:387,1
    - Dst: nssSlot_Destroy
      Src: /src/nss/lib/dev/devutil.c:393,1
    - Dst: nssArena_Destroy
      Src: /src/nss/lib/dev/devutil.c:396,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 52
    argCount: 4
    argNames:
    - object
    - types
    - numTypes
    - status
    argTypes:
    - nssCryptokiObject*
    - CK_ATTRIBUTE_TYPE*
    - PRUint32
    - PRStatus*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 398
    functionName: create_object
    functionSourceFile: /src/nss/lib/dev/devutil.c
    functionUses: 1
    functionsReached:
    - nssArena_Create
    - nssToken_GetSlot
    - nssToken_GetDefaultSession
    - nssToken_Destroy
    - nss_ZNEWARRAY
    - nss_ZNEW
    - nss_SetError
    - nssArena_Destroy
    - nssSlot_Destroy
    - nssCKObject_GetAttributes
    linkageType: ''
    returnType: nssCryptokiObjectAndAttributes
    signature: "nssCryptokiObjectAndAttributes *\ncreate_object(\n    nssCryptokiObject
      *object,\n    const CK_ATTRIBUTE_TYPE *types,\n    PRUint32 numTypes,\n    PRStatus
      *status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssToken_GetSlot
      Src: /src/nss/lib/dev/devutil.c:426,1
    - Dst: nssSlot_IsTokenPresent
      Src: /src/nss/lib/dev/devutil.c:427,1
    - Dst: nssSlot_Destroy
      Src: /src/nss/lib/dev/devutil.c:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cache
    argTypes:
    - nssTokenObjectCache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 430
    functionName: token_is_present
    functionSourceFile: /src/nss/lib/dev/devutil.c
    functionUses: 0
    functionsReached:
    - nssToken_GetSlot
    - nssSlot_IsTokenPresent
    - nssSlot_Destroy
    linkageType: ''
    returnType: PRBool
    signature: "PRBool token_is_present(\n    nssTokenObjectCache *cache)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nssToken_GetSlot
      Src: /src/nss/lib/dev/devutil.c:437,1
    - Dst: nssSlot_IsFriendly
      Src: /src/nss/lib/dev/devutil.c:439,1
    - Dst: nssSlot_IsLoggedIn
      Src: /src/nss/lib/dev/devutil.c:440,1
    - Dst: clear_cache
      Src: /src/nss/lib/dev/devutil.c:447,1
    - Dst: nssSlot_Destroy
      Src: /src/nss/lib/dev/devutil.c:455,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - cache
    argTypes:
    - nssTokenObjectCache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 432
    functionDepth: 5
    functionLinenumber: 432
    functionLinenumberEnd: 457
    functionName: search_for_objects
    functionSourceFile: /src/nss/lib/dev/devutil.c
    functionUses: 0
    functionsReached:
    - nssToken_GetSlot
    - nssSlot_IsLoggedIn
    - nssSlot_IsFriendly
    - clear_cache
    - nssSlot_Destroy
    linkageType: ''
    returnType: PRBool
    signature: "PRBool search_for_objects(\n    nssTokenObjectCache *cache)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_object
      Src: /src/nss/lib/dev/devutil.c:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - object
    - status
    argTypes:
    - nssCryptokiObject*
    - PRStatus*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 459
    functionDepth: 2
    functionLinenumber: 459
    functionLinenumberEnd: 478
    functionName: create_cert
    functionSourceFile: /src/nss/lib/dev/devutil.c
    functionUses: 1
    functionsReached:
    - create_object
    linkageType: ''
    returnType: nssCryptokiObjectAndAttributes
    signature: "nssCryptokiObjectAndAttributes *\ncreate_cert(\n    nssCryptokiObject
      *object,\n    PRStatus *status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/dev/devutil.c:511,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/dev/devutil.c:512,1
    - Dst: create_object
      Src: /src/nss/lib/dev/devutil.c:520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - object
    - status
    argTypes:
    - nssCryptokiObject*
    - PRStatus*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 480
    functionDepth: 2
    functionLinenumber: 480
    functionLinenumberEnd: 521
    functionName: create_trust
    functionSourceFile: /src/nss/lib/dev/devutil.c
    functionUses: 0
    functionsReached:
    - create_object
    - PR_ARRAY_SIZE
    linkageType: ''
    returnType: nssCryptokiObjectAndAttributes
    signature: "nssCryptokiObjectAndAttributes *\ncreate_trust(\n    nssCryptokiObject
      *object,\n    PRStatus *status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_object
      Src: /src/nss/lib/dev/devutil.c:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - object
    - status
    argTypes:
    - nssCryptokiObject*
    - PRStatus*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 523
    functionDepth: 2
    functionLinenumber: 523
    functionLinenumberEnd: 539
    functionName: create_crl
    functionSourceFile: /src/nss/lib/dev/devutil.c
    functionUses: 0
    functionsReached:
    - create_object
    linkageType: ''
    returnType: nssCryptokiObjectAndAttributes
    signature: "nssCryptokiObjectAndAttributes *\ncreate_crl(\n    nssCryptokiObject
      *object,\n    PRStatus *status)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: create_cert
      Src: /src/nss/lib/dev/devutil.c:549,1
    - Dst: create_trust
      Src: /src/nss/lib/dev/devutil.c:552,1
    - Dst: create_crl
      Src: /src/nss/lib/dev/devutil.c:555,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - object
    - objectType
    - status
    argTypes:
    - nssCryptokiObject*
    - PRUint32
    - PRStatus*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 542
    functionDepth: 3
    functionLinenumber: 542
    functionLinenumberEnd: 558
    functionName: create_object_of_type
    functionSourceFile: /src/nss/lib/dev/devutil.c
    functionUses: 0
    functionsReached:
    - create_cert
    - create_crl
    - create_trust
    linkageType: ''
    returnType: nssCryptokiObjectAndAttributes
    signature: "nssCryptokiObjectAndAttributes *\ncreate_object_of_type(\n    nssCryptokiObject
      *object,\n    PRUint32 objectType,\n    PRStatus *status)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: search_for_objects
      Src: /src/nss/lib/dev/devutil.c:571,1
    - Dst: nssToken_FindObjects
      Src: /src/nss/lib/dev/devutil.c:580,1
    - Dst: create_object_array
      Src: /src/nss/lib/dev/devutil.c:586,1
    - Dst: nssCryptokiObjectArray_Destroy
      Src: /src/nss/lib/dev/devutil.c:591,1
    - Dst: create_object_of_type
      Src: /src/nss/lib/dev/devutil.c:595,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/dev/devutil.c:603,1
    - Dst: nssArena_Destroy
      Src: /src/nss/lib/dev/devutil.c:612,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/dev/devutil.c:614,1
    - Dst: nssCryptokiObjectArray_Destroy
      Src: /src/nss/lib/dev/devutil.c:616,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 3
    argNames:
    - cache
    - objectType
    - objclass
    argTypes:
    - nssTokenObjectCache*
    - PRUint32
    - CK_OBJECT_CLASS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 560
    functionDepth: 6
    functionLinenumber: 560
    functionLinenumberEnd: 620
    functionName: get_token_objects_for_cache
    functionSourceFile: /src/nss/lib/dev/devutil.c
    functionUses: 0
    functionsReached:
    - nssToken_FindObjects
    - search_for_objects
    - nssCryptokiObjectArray_Destroy
    - create_object_of_type
    - create_object_array
    - nss_ZFreeIf
    - nssArena_Destroy
    linkageType: ''
    returnType: PRStatus
    signature: "PRStatus get_token_objects_for_cache(\n    nssTokenObjectCache *cache,\n
      \   PRUint32 objectType,\n    CK_OBJECT_CLASS objclass)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - obj
    - attrType
    argTypes:
    - nssCryptokiObjectAndAttributes*
    - CK_ATTRIBUTE_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 634
    functionName: find_attribute_in_object
    functionSourceFile: /src/nss/lib/dev/devutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_ATTRIBUTE_PTR
    signature: "CK_ATTRIBUTE_PTR find_attribute_in_object(\n    nssCryptokiObjectAndAttributes
      *obj,\n    CK_ATTRIBUTE_TYPE attrType)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: nssArena_Create
      Src: /src/nss/lib/dev/devutil.c:656,1
    - Dst: nss_ZNEWARRAY
      Src: /src/nss/lib/dev/devutil.c:660,1
    - Dst: find_attribute_in_object
      Src: /src/nss/lib/dev/devutil.c:672,1
    - Dst: nsslibc_memequal
      Src: /src/nss/lib/dev/devutil.c:679,1
    - Dst: nss_ZREALLOCARRAY
      Src: /src/nss/lib/dev/devutil.c:693,1
    - Dst: nss_ZNEWARRAY
      Src: /src/nss/lib/dev/devutil.c:703,1
    - Dst: nssCryptokiObject_Clone
      Src: /src/nss/lib/dev/devutil.c:708,1
    - Dst: nssArena_Destroy
      Src: /src/nss/lib/dev/devutil.c:714,1
    - Dst: nssCryptokiObjectArray_Destroy
      Src: /src/nss/lib/dev/devutil.c:717,1
    - Dst: nssArena_Destroy
      Src: /src/nss/lib/dev/devutil.c:718,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 637
    functionDepth: 3
    functionLinenumber: 637
    functionLinenumberEnd: 720
    functionName: find_objects_in_array
    functionSourceFile: /src/nss/lib/dev/devutil.c
    functionUses: 0
    functionsReached:
    - nssArena_Create
    - nss_ZREALLOCARRAY
    - find_attribute_in_object
    - nss_ZNEWARRAY
    - nssCryptokiObjectArray_Destroy
    - nssArena_Destroy
    - nsslibc_memequal
    - nssCryptokiObject_Clone
    linkageType: ''
    returnType: nssCryptokiObject
    signature: "nssCryptokiObject **\nfind_objects_in_array(\n    nssCryptokiObjectAndAttributes
      **objArray,\n    CK_ATTRIBUTE_PTR ot,\n    CK_ULONG otlen,\n    PRUint32 maximumOpt)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: token_is_present
      Src: /src/nss/lib/dev/devutil.c:734,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/dev/devutil.c:752,1
    - Dst: get_token_objects_for_cache
      Src: /src/nss/lib/dev/devutil.c:754,1
    - Dst: find_objects_in_array
      Src: /src/nss/lib/dev/devutil.c:756,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/dev/devutil.c:760,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 722
    functionDepth: 7
    functionLinenumber: 722
    functionLinenumberEnd: 766
    functionName: "nssCryptokiObject **\nnssTokenObjectCache_FindObjectsByTemplate(\n
      \   nssTokenObjectCache *cache,\n    CK_OBJECT_CLASS objclass,\n    CK_ATTRIBUTE_PTR
      otemplate,\n    CK_ULONG otlen,\n    PRUint32 maximumOpt,\n    PRStatus *statusOpt)"
    functionSourceFile: /src/nss/lib/dev/devutil.c
    functionUses: 0
    functionsReached:
    - get_token_objects_for_cache
    - token_is_present
    - PZ_Unlock
    - find_objects_in_array
    - PZ_Lock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCryptokiObject **\nnssTokenObjectCache_FindObjectsByTemplate(\n
      \   nssTokenObjectCache *cache,\n    CK_OBJECT_CLASS objclass,\n    CK_ATTRIBUTE_PTR
      otemplate,\n    CK_ULONG otlen,\n    PRUint32 maximumOpt,\n    PRStatus *statusOpt)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: search_for_objects
      Src: /src/nss/lib/dev/devutil.c:781,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - cache
    - objectType
    argTypes:
    - nssTokenObjectCache*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 768
    functionDepth: 6
    functionLinenumber: 768
    functionLinenumberEnd: 786
    functionName: cache_available_for_object_type
    functionSourceFile: /src/nss/lib/dev/devutil.c
    functionUses: 0
    functionsReached:
    - search_for_objects
    linkageType: ''
    returnType: PRBool
    signature: "PRBool cache_available_for_object_type(\n    nssTokenObjectCache *cache,\n
      \   PRUint32 objectType)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: token_is_present
      Src: /src/nss/lib/dev/devutil.c:803,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/dev/devutil.c:806,1
    - Dst: cache_available_for_object_type
      Src: /src/nss/lib/dev/devutil.c:821,1
    - Dst: nssCryptokiObject_Equal
      Src: /src/nss/lib/dev/devutil.c:829,1
    - Dst: nssArena_Mark
      Src: /src/nss/lib/dev/devutil.c:839,1
    - Dst: nss_ZAlloc
      Src: /src/nss/lib/dev/devutil.c:855,1
    - Dst: nsslibc_memcpy
      Src: /src/nss/lib/dev/devutil.c:860,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/dev/devutil.c:870,1
    - Dst: nssArena_Unmark
      Src: /src/nss/lib/dev/devutil.c:872,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/dev/devutil.c:876,1
    - Dst: nssArena_Release
      Src: /src/nss/lib/dev/devutil.c:878,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 82
    argCount: 6
    argNames:
    - cache
    - arenaOpt
    - object
    - objclass
    - atemplate
    - atlen
    argTypes:
    - nssTokenObjectCache*
    - NSSArena*
    - nssCryptokiObject*
    - CK_OBJECT_CLASS
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 788
    functionDepth: 7
    functionLinenumber: 788
    functionLinenumberEnd: 881
    functionName: nssTokenObjectCache_GetObjectAttributes
    functionSourceFile: /src/nss/lib/dev/devutil.c
    functionUses: 0
    functionsReached:
    - token_is_present
    - PZ_Unlock
    - cache_available_for_object_type
    - nss_ZAlloc
    - nssArena_Unmark
    - nssArena_Mark
    - nsslibc_memcpy
    - nssCryptokiObject_Equal
    - PZ_Lock
    - nssArena_Release
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssTokenObjectCache_GetObjectAttributes(\n    nssTokenObjectCache
      *cache,\n    NSSArena *arenaOpt,\n    nssCryptokiObject *object,\n    CK_OBJECT_CLASS
      objclass,\n    CK_ATTRIBUTE_PTR atemplate,\n    CK_ULONG atlen)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: token_is_present
      Src: /src/nss/lib/dev/devutil.c:897,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/dev/devutil.c:900,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/dev/devutil.c:914,1
    - Dst: cache_available_for_object_type
      Src: /src/nss/lib/dev/devutil.c:917,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/dev/devutil.c:918,1
    - Dst: nssCryptokiObject_Equal
      Src: /src/nss/lib/dev/devutil.c:925,1
    - Dst: nssCryptokiObject_Destroy
      Src: /src/nss/lib/dev/devutil.c:935,1
    - Dst: nssArena_Destroy
      Src: /src/nss/lib/dev/devutil.c:936,1
    - Dst: nss_ZREALLOCARRAY
      Src: /src/nss/lib/dev/devutil.c:940,1
    - Dst: nss_ZNEWARRAY
      Src: /src/nss/lib/dev/devutil.c:944,1
    - Dst: nssCryptokiObject_Clone
      Src: /src/nss/lib/dev/devutil.c:948,1
    - Dst: create_object_of_type
      Src: /src/nss/lib/dev/devutil.c:949,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/dev/devutil.c:954,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 54
    argCount: 5
    argNames:
    - cache
    - object
    - objclass
    - ot
    - otlen
    argTypes:
    - nssTokenObjectCache*
    - nssCryptokiObject*
    - CK_OBJECT_CLASS
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 883
    functionDepth: 7
    functionLinenumber: 883
    functionLinenumberEnd: 956
    functionName: nssTokenObjectCache_ImportObject
    functionSourceFile: /src/nss/lib/dev/devutil.c
    functionUses: 0
    functionsReached:
    - nss_ZREALLOCARRAY
    - nss_ZNEWARRAY
    - token_is_present
    - PZ_Unlock
    - cache_available_for_object_type
    - create_object_of_type
    - nssCryptokiObject_Destroy
    - nssCryptokiObject_Equal
    - PZ_Lock
    - nssArena_Destroy
    - nssCryptokiObject_Clone
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssTokenObjectCache_ImportObject(\n    nssTokenObjectCache
      *cache,\n    nssCryptokiObject *object,\n    CK_OBJECT_CLASS objclass,\n    CK_ATTRIBUTE_PTR
      ot,\n    CK_ULONG otlen)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: token_is_present
      Src: /src/nss/lib/dev/devutil.c:965,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/dev/devutil.c:968,1
    - Dst: cache_available_for_object_type
      Src: /src/nss/lib/dev/devutil.c:970,1
    - Dst: nssCryptokiObject_Equal
      Src: /src/nss/lib/dev/devutil.c:975,1
    - Dst: nssCryptokiObject_Destroy
      Src: /src/nss/lib/dev/devutil.c:980,1
    - Dst: nssArena_Destroy
      Src: /src/nss/lib/dev/devutil.c:981,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/dev/devutil.c:993,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/dev/devutil.c:996,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 2
    argNames:
    - cache
    - object
    argTypes:
    - nssTokenObjectCache*
    - nssCryptokiObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 997
      start: 958
    functionDepth: 7
    functionLinenumber: 958
    functionLinenumberEnd: 997
    functionName: nssTokenObjectCache_RemoveObject
    functionSourceFile: /src/nss/lib/dev/devutil.c
    functionUses: 0
    functionsReached:
    - token_is_present
    - PZ_Unlock
    - cache_available_for_object_type
    - nss_ZFreeIf
    - nssCryptokiObject_Destroy
    - nssCryptokiObject_Equal
    - PZ_Lock
    - nssArena_Destroy
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssTokenObjectCache_RemoveObject(\n    nssTokenObjectCache
      *cache,\n    nssCryptokiObject *object)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nss_ZNEW
      Src: /src/nss/lib/dev/devutil.c:1012,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 1007
    functionDepth: 1
    functionLinenumber: 1007
    functionLinenumberEnd: 1019
    functionName: "NSSAlgorithmAndParameters *\nNSSAlgorithmAndParameters_CreateDigest(\n
      \   NSSArena *arenaOpt, CK_MECHANISM_TYPE hashMech)"
    functionSourceFile: /src/nss/lib/dev/devutil.c
    functionUses: 0
    functionsReached:
    - nss_ZNEW
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSAlgorithmAndParameters *\nNSSAlgorithmAndParameters_CreateDigest(\n
      \   NSSArena *arenaOpt, CK_MECHANISM_TYPE hashMech)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetInternalSlot
      Src: /src/nss/lib/dev/devutil.c:1035,1
    - Dst: PK11Slot_GetNSSToken
      Src: /src/nss/lib/dev/devutil.c:1039,1
    - Dst: NSSAlgorithmAndParameters_CreateDigest
      Src: /src/nss/lib/dev/devutil.c:1043,1
    - Dst: nssToken_Digest
      Src: /src/nss/lib/dev/devutil.c:1048,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/dev/devutil.c:1054,1
    - Dst: nssToken_Destroy
      Src: /src/nss/lib/dev/devutil.c:1056,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/dev/devutil.c:1059,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - type
    - input
    - output
    argTypes:
    - CK_MECHANISM_TYPE
    - NSSItem*
    - NSSItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1026
    functionDepth: 4
    functionLinenumber: 1026
    functionLinenumberEnd: 1062
    functionName: NSSAlgorithm_DigestBuf
    functionSourceFile: /src/nss/lib/dev/devutil.c
    functionUses: 1
    functionsReached:
    - nssToken_Digest
    - nssToken_Destroy
    - nss_ZFreeIf
    - NSSAlgorithmAndParameters_CreateDigest
    - PK11_GetInternalSlot
    - PK11Slot_GetNSSToken
    - PK11_FreeSlot
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT NSSAlgorithm_DigestBuf(CK_MECHANISM_TYPE type, NSSItem
      *input, NSSItem *output)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_ATOMIC_DECREMENT
      Src: /src/nss/lib/dev/devtoken.c:31,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/dev/devtoken.c:32,1
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/dev/devtoken.c:33,1
    - Dst: nssTokenObjectCache_Destroy
      Src: /src/nss/lib/dev/devtoken.c:34,1
    - Dst: nssSlot_Destroy
      Src: /src/nss/lib/dev/devtoken.c:35,1
    - Dst: nssArena_Destroy
      Src: /src/nss/lib/dev/devtoken.c:36,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - tok
    argTypes:
    - NSSToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 26
    functionDepth: 4
    functionLinenumber: 26
    functionLinenumberEnd: 40
    functionName: nssToken_Destroy
    functionSourceFile: /src/nss/lib/dev/devtoken.c
    functionUses: 33
    functionsReached:
    - nssTokenObjectCache_Destroy
    - PR_ATOMIC_DECREMENT
    - PZ_DestroyLock
    - nssArena_Destroy
    - nssSlot_Destroy
    - PK11_FreeSlot
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssToken_Destroy(\n    NSSToken *tok)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssTokenObjectCache_Clear
      Src: /src/nss/lib/dev/devtoken.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tok
    argTypes:
    - NSSToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 4
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: nssToken_Remove
    functionSourceFile: /src/nss/lib/dev/devtoken.c
    functionUses: 0
    functionsReached:
    - nssTokenObjectCache_Clear
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssToken_Remove(\n    NSSToken *tok)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_ATOMIC_INCREMENT
      Src: /src/nss/lib/dev/devtoken.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tok
    argTypes:
    - NSSToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: nssToken_AddRef
    functionSourceFile: /src/nss/lib/dev/devtoken.c
    functionUses: 8
    functionsReached:
    - PR_ATOMIC_INCREMENT
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nnssToken_AddRef(\n    NSSToken *tok)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssSlot_AddRef
      Src: /src/nss/lib/dev/devtoken.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tok
    argTypes:
    - NSSToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 62
    functionName: nssToken_GetSlot
    functionSourceFile: /src/nss/lib/dev/devtoken.c
    functionUses: 5
    functionsReached:
    - nssSlot_AddRef
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nnssToken_GetSlot(\n    NSSToken *tok)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssSlot_GetCryptokiEPV
      Src: /src/nss/lib/dev/devtoken.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - token
    argTypes:
    - NSSToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 69
    functionName: nssToken_GetCryptokiEPV
    functionSourceFile: /src/nss/lib/dev/devtoken.c
    functionUses: 0
    functionsReached:
    - nssSlot_GetCryptokiEPV
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nnssToken_GetCryptokiEPV(\n    NSSToken *token)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - token
    argTypes:
    - NSSToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 76
    functionName: nssToken_GetDefaultSession
    functionSourceFile: /src/nss/lib/dev/devtoken.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nnssToken_GetDefaultSession(\n    NSSToken *token)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssSlot_IsTokenPresent
      Src: /src/nss/lib/dev/devtoken.c:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - tok
    argTypes:
    - NSSToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 89
    functionName: nssToken_GetName
    functionSourceFile: /src/nss/lib/dev/devtoken.c
    functionUses: 3
    functionsReached:
    - nssSlot_IsTokenPresent
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nnssToken_GetName(\n    NSSToken *tok)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssToken_GetName
      Src: /src/nss/lib/dev/devtoken.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - token
    argTypes:
    - NSSToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 96
    functionName: NSSToken_GetName
    functionSourceFile: /src/nss/lib/dev/devtoken.c
    functionUses: 0
    functionsReached:
    - nssToken_GetName
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nNSSToken_GetName(\n    NSSToken *token)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - token
    argTypes:
    - NSSToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 103
    functionName: nssToken_IsLoginRequired
    functionSourceFile: /src/nss/lib/dev/devtoken.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssToken_IsLoginRequired(\n    NSSToken *token)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - token
    argTypes:
    - NSSToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 110
    functionName: nssToken_NeedsPINInitialization
    functionSourceFile: /src/nss/lib/dev/devtoken.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssToken_NeedsPINInitialization(\n    NSSToken *token)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: nssToken_GetCryptokiEPV
      Src: /src/nss/lib/dev/devtoken.c:121,1
    - Dst: nssTokenObjectCache_RemoveObject
      Src: /src/nss/lib/dev/devtoken.c:123,1
    - Dst: nssSession_IsReadWrite
      Src: /src/nss/lib/dev/devtoken.c:127,1
    - Dst: nssSlot_CreateSession
      Src: /src/nss/lib/dev/devtoken.c:130,1
    - Dst: nssSession_EnterMonitor
      Src: /src/nss/lib/dev/devtoken.c:137,1
    - Dst: CKAPI
      Src: /src/nss/lib/dev/devtoken.c:138,1
    - Dst: nssSession_ExitMonitor
      Src: /src/nss/lib/dev/devtoken.c:139,1
    - Dst: nssSession_Destroy
      Src: /src/nss/lib/dev/devtoken.c:141,1
    - Dst: nss_SetError
      Src: /src/nss/lib/dev/devtoken.c:147,1
    - Dst: nss_SetError
      Src: /src/nss/lib/dev/devtoken.c:148,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 1
    argNames:
    - instance
    argTypes:
    - nssCryptokiObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 112
    functionDepth: 8
    functionLinenumber: 112
    functionLinenumberEnd: 151
    functionName: nssToken_DeleteStoredObject
    functionSourceFile: /src/nss/lib/dev/devtoken.c
    functionUses: 3
    functionsReached:
    - nssSession_Destroy
    - nssTokenObjectCache_RemoveObject
    - nssSession_ExitMonitor
    - nssSession_EnterMonitor
    - CKAPI
    - nssToken_GetCryptokiEPV
    - nss_SetError
    - nssSession_IsReadWrite
    - nssSlot_CreateSession
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssToken_DeleteStoredObject(\n    nssCryptokiObject
      *instance)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: nssToken_GetCryptokiEPV
      Src: /src/nss/lib/dev/devtoken.c:165,1
    - Dst: nssCKObject_IsTokenObjectTemplate
      Src: /src/nss/lib/dev/devtoken.c:166,1
    - Dst: nssSession_IsReadWrite
      Src: /src/nss/lib/dev/devtoken.c:168,1
    - Dst: nss_SetError
      Src: /src/nss/lib/dev/devtoken.c:169,1
    - Dst: nssSession_IsReadWrite
      Src: /src/nss/lib/dev/devtoken.c:174,1
    - Dst: nssSlot_CreateSession
      Src: /src/nss/lib/dev/devtoken.c:177,1
    - Dst: nss_SetError
      Src: /src/nss/lib/dev/devtoken.c:184,1
    - Dst: nssSession_EnterMonitor
      Src: /src/nss/lib/dev/devtoken.c:187,1
    - Dst: CKAPI
      Src: /src/nss/lib/dev/devtoken.c:188,1
    - Dst: nssSession_ExitMonitor
      Src: /src/nss/lib/dev/devtoken.c:191,1
    - Dst: nssCryptokiObject_Create
      Src: /src/nss/lib/dev/devtoken.c:193,1
    - Dst: nss_SetError
      Src: /src/nss/lib/dev/devtoken.c:195,1
    - Dst: nss_SetError
      Src: /src/nss/lib/dev/devtoken.c:196,1
    - Dst: nssSession_Destroy
      Src: /src/nss/lib/dev/devtoken.c:199,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 4
    argNames:
    - tok
    - sessionOpt
    - objectTemplate
    - otsize
    argTypes:
    - NSSToken*
    - nssSession*
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 153
    functionDepth: 4
    functionLinenumber: 153
    functionLinenumberEnd: 202
    functionName: import_object
    functionSourceFile: /src/nss/lib/dev/devtoken.c
    functionUses: 0
    functionsReached:
    - nssSession_Destroy
    - nssSession_ExitMonitor
    - nssSession_EnterMonitor
    - CKAPI
    - nssToken_GetCryptokiEPV
    - nss_SetError
    - nssSession_IsReadWrite
    - nssSlot_CreateSession
    - nssCryptokiObject_Create
    - nssCKObject_IsTokenObjectTemplate
    linkageType: ''
    returnType: nssCryptokiObject
    signature: "nssCryptokiObject *\nimport_object(\n    NSSToken *tok,\n    nssSession
      *sessionOpt,\n    CK_ATTRIBUTE_PTR objectTemplate,\n    CK_ULONG otsize)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nss_ZNEWARRAY
      Src: /src/nss/lib/dev/devtoken.c:215,1
    - Dst: nssCryptokiObject_Create
      Src: /src/nss/lib/dev/devtoken.c:220,1
    - Dst: nssCryptokiObject_Destroy
      Src: /src/nss/lib/dev/devtoken.c:223,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/dev/devtoken.c:225,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 230
    functionName: create_objects_from_handles
    functionSourceFile: /src/nss/lib/dev/devtoken.c
    functionUses: 0
    functionsReached:
    - nss_ZNEWARRAY
    - nss_ZFreeIf
    - nssCryptokiObject_Destroy
    - nssCryptokiObject_Create
    linkageType: ''
    returnType: nssCryptokiObject
    signature: "nssCryptokiObject **\ncreate_objects_from_handles(\n    NSSToken *tok,\n
      \   nssSession *session,\n    CK_OBJECT_HANDLE *handles,\n    PRUint32 numH)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: nssToken_GetCryptokiEPV
      Src: /src/nss/lib/dev/devtoken.c:246,1
    - Dst: nss_ZNEWARRAY
      Src: /src/nss/lib/dev/devtoken.c:266,1
    - Dst: nssSession_EnterMonitor
      Src: /src/nss/lib/dev/devtoken.c:272,1
    - Dst: CKAPI
      Src: /src/nss/lib/dev/devtoken.c:274,1
    - Dst: nssSession_ExitMonitor
      Src: /src/nss/lib/dev/devtoken.c:277,1
    - Dst: CKAPI
      Src: /src/nss/lib/dev/devtoken.c:282,1
    - Dst: nssSession_ExitMonitor
      Src: /src/nss/lib/dev/devtoken.c:287,1
    - Dst: nss_ZNEWARRAY
      Src: /src/nss/lib/dev/devtoken.c:302,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/dev/devtoken.c:304,1
    - Dst: nss_ZREALLOCARRAY
      Src: /src/nss/lib/dev/devtoken.c:308,1
    - Dst: nssSession_ExitMonitor
      Src: /src/nss/lib/dev/devtoken.c:313,1
    - Dst: CKAPI
      Src: /src/nss/lib/dev/devtoken.c:318,1
    - Dst: nssSession_ExitMonitor
      Src: /src/nss/lib/dev/devtoken.c:319,1
    - Dst: create_objects_from_handles
      Src: /src/nss/lib/dev/devtoken.c:324,1
    - Dst: nss_SetError
      Src: /src/nss/lib/dev/devtoken.c:327,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/dev/devtoken.c:331,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/dev/devtoken.c:338,1
    - Dst: nss_SetError
      Src: /src/nss/lib/dev/devtoken.c:352,1
    - Dst: nss_SetError
      Src: /src/nss/lib/dev/devtoken.c:356,1
    - Dst: nss_SetError
      Src: /src/nss/lib/dev/devtoken.c:357,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 90
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 232
    functionDepth: 3
    functionLinenumber: 232
    functionLinenumberEnd: 362
    functionName: find_objects
    functionSourceFile: /src/nss/lib/dev/devtoken.c
    functionUses: 1
    functionsReached:
    - nss_ZREALLOCARRAY
    - PORT_Memcpy
    - nss_ZNEWARRAY
    - nssSession_ExitMonitor
    - nss_ZFreeIf
    - nssSession_EnterMonitor
    - CKAPI
    - nssToken_GetCryptokiEPV
    - nss_SetError
    - create_objects_from_handles
    linkageType: ''
    returnType: nssCryptokiObject
    signature: "nssCryptokiObject **\nfind_objects(\n    NSSToken *tok,\n    nssSession
      *sessionOpt,\n    CK_ATTRIBUTE_PTR obj_template,\n    CK_ULONG otsize,\n    PRUint32
      maximumOpt,\n    PRStatus *statusOpt)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/dev/devtoken.c:378,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/dev/devtoken.c:389,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/dev/devtoken.c:391,1
    - Dst: nssTokenObjectCache_HaveObjectClass
      Src: /src/nss/lib/dev/devtoken.c:398,1
    - Dst: nssTokenObjectCache_FindObjectsByTemplate
      Src: /src/nss/lib/dev/devtoken.c:400,1
    - Dst: find_objects
      Src: /src/nss/lib/dev/devtoken.c:413,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 364
    functionDepth: 4
    functionLinenumber: 364
    functionLinenumberEnd: 417
    functionName: "nssCryptokiObject **\nnssToken_FindObjectsByTemplate(\n    NSSToken
      *token,\n    nssSession *sessionOpt,\n    CK_ATTRIBUTE_PTR obj_template,\n    CK_ULONG
      otsize,\n    PRUint32 maximumOpt,\n    PRStatus *statusOpt)"
    functionSourceFile: /src/nss/lib/dev/devtoken.c
    functionUses: 0
    functionsReached:
    - nssTokenObjectCache_FindObjectsByTemplate
    - find_objects
    - nssTokenObjectCache_HaveObjectClass
    - PR_ASSERT
    - PORT_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCryptokiObject **\nnssToken_FindObjectsByTemplate(\n
      \   NSSToken *token,\n    nssSession *sessionOpt,\n    CK_ATTRIBUTE_PTR obj_template,\n
      \   CK_ULONG otsize,\n    PRUint32 maximumOpt,\n    PRStatus *statusOpt)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/dev/devtoken.c:444,1
    - Dst: NSS_CK_TEMPLATE_START
      Src: /src/nss/lib/dev/devtoken.c:452,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:454,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:457,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:460,1
    - Dst: NSS_CK_SET_ATTRIBUTE_VAR
      Src: /src/nss/lib/dev/devtoken.c:461,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:462,1
    - Dst: NSS_CK_SET_ATTRIBUTE_UTF8
      Src: /src/nss/lib/dev/devtoken.c:463,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:464,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:465,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:466,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:467,1
    - Dst: NSS_CK_SET_ATTRIBUTE_UTF8
      Src: /src/nss/lib/dev/devtoken.c:469,1
    - Dst: NSS_CK_TEMPLATE_FINISH
      Src: /src/nss/lib/dev/devtoken.c:471,1
    - Dst: nssToken_FindCertificateByIssuerAndSerialNumber
      Src: /src/nss/lib/dev/devtoken.c:473,1
    - Dst: nssToken_GetSlot
      Src: /src/nss/lib/dev/devtoken.c:481,1
    - Dst: nssSlot_CreateSession
      Src: /src/nss/lib/dev/devtoken.c:482,1
    - Dst: nssCryptokiObject_Destroy
      Src: /src/nss/lib/dev/devtoken.c:484,1
    - Dst: nssSlot_Destroy
      Src: /src/nss/lib/dev/devtoken.c:485,1
    - Dst: NSS_CK_TEMPLATE_START
      Src: /src/nss/lib/dev/devtoken.c:492,1
    - Dst: NSS_CK_SET_ATTRIBUTE_NULL
      Src: /src/nss/lib/dev/devtoken.c:493,1
    - Dst: NSS_CK_TEMPLATE_FINISH
      Src: /src/nss/lib/dev/devtoken.c:494,1
    - Dst: nssCKObject_GetAttributes
      Src: /src/nss/lib/dev/devtoken.c:495,1
    - Dst: NSS_CK_ATTRIBUTE_TO_ITEM
      Src: /src/nss/lib/dev/devtoken.c:498,1
    - Dst: nssItem_Equal
      Src: /src/nss/lib/dev/devtoken.c:500,1
    - Dst: nss_SetError
      Src: /src/nss/lib/dev/devtoken.c:501,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/dev/devtoken.c:504,1
    - Dst: nssCryptokiObject_Destroy
      Src: /src/nss/lib/dev/devtoken.c:507,1
    - Dst: nssSession_Destroy
      Src: /src/nss/lib/dev/devtoken.c:508,1
    - Dst: nssSlot_Destroy
      Src: /src/nss/lib/dev/devtoken.c:509,1
    - Dst: NSS_CK_TEMPLATE_START
      Src: /src/nss/lib/dev/devtoken.c:517,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:518,1
    - Dst: NSS_CK_SET_ATTRIBUTE_UTF8
      Src: /src/nss/lib/dev/devtoken.c:520,1
    - Dst: NSS_CK_TEMPLATE_FINISH
      Src: /src/nss/lib/dev/devtoken.c:522,1
    - Dst: nssCKObject_SetAttributes
      Src: /src/nss/lib/dev/devtoken.c:524,1
    - Dst: nssUTF8_Duplicate
      Src: /src/nss/lib/dev/devtoken.c:528,1
    - Dst: nssSession_Destroy
      Src: /src/nss/lib/dev/devtoken.c:530,1
    - Dst: nssSlot_Destroy
      Src: /src/nss/lib/dev/devtoken.c:531,1
    - Dst: import_object
      Src: /src/nss/lib/dev/devtoken.c:534,1
    - Dst: nssTokenObjectCache_ImportObject
      Src: /src/nss/lib/dev/devtoken.c:540,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 74
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 421
    functionDepth: 8
    functionLinenumber: 421
    functionLinenumberEnd: 545
    functionName: "nssCryptokiObject *\nnssToken_ImportCertificate(\n    NSSToken
      *tok,\n    nssSession *sessionOpt,\n    NSSCertificateType certType,\n    NSSItem
      *id,\n    const NSSUTF8 *nickname,\n    NSSDER *encoding,\n    NSSDER *issuer,\n
      \   NSSDER *subject,\n    NSSDER *serial,\n    NSSASCII7 *email,\n    PRBool
      asTokenObject)"
    functionSourceFile: /src/nss/lib/dev/devtoken.c
    functionUses: 0
    functionsReached:
    - nssSession_Destroy
    - NSS_CK_SET_ATTRIBUTE_UTF8
    - nss_ZFreeIf
    - nss_SetError
    - nssUTF8_Duplicate
    - NSS_CK_SET_ATTRIBUTE_VAR
    - NSS_CK_SET_ATTRIBUTE_NULL
    - PORT_SetError
    - import_object
    - nssSlot_CreateSession
    - NSS_CK_TEMPLATE_FINISH
    - nssCKObject_GetAttributes
    - NSS_CK_ATTRIBUTE_TO_ITEM
    - nssItem_Equal
    - nssCKObject_SetAttributes
    - NSS_CK_SET_ATTRIBUTE_ITEM
    - nssToken_FindCertificateByIssuerAndSerialNumber
    - nssToken_GetSlot
    - nssTokenObjectCache_ImportObject
    - NSS_CK_TEMPLATE_START
    - nssCryptokiObject_Destroy
    - nssSlot_Destroy
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCryptokiObject *\nnssToken_ImportCertificate(\n    NSSToken
      *tok,\n    nssSession *sessionOpt,\n    NSSCertificateType certType,\n    NSSItem
      *id,\n    const NSSUTF8 *nickname,\n    NSSDER *encoding,\n    NSSDER *issuer,\n
      \   NSSDER *subject,\n    NSSDER *serial,\n    NSSASCII7 *email,\n    PRBool
      asTokenObject)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CK_TEMPLATE_START
      Src: /src/nss/lib/dev/devtoken.c:563,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:566,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:569,1
    - Dst: NSS_CK_SET_ATTRIBUTE_VAR
      Src: /src/nss/lib/dev/devtoken.c:571,1
    - Dst: NSS_CK_TEMPLATE_FINISH
      Src: /src/nss/lib/dev/devtoken.c:572,1
    - Dst: find_objects
      Src: /src/nss/lib/dev/devtoken.c:575,1
    - Dst: nssToken_FindObjectsByTemplate
      Src: /src/nss/lib/dev/devtoken.c:579,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 550
    functionDepth: 4
    functionLinenumber: 550
    functionLinenumberEnd: 584
    functionName: "nssCryptokiObject **\nnssToken_FindObjects(\n    NSSToken *token,\n
      \   nssSession *sessionOpt,\n    CK_OBJECT_CLASS objclass,\n    nssTokenSearchType
      searchType,\n    PRUint32 maximumOpt,\n    PRStatus *statusOpt)"
    functionSourceFile: /src/nss/lib/dev/devtoken.c
    functionUses: 0
    functionsReached:
    - find_objects
    - NSS_CK_SET_ATTRIBUTE_VAR
    - NSS_CK_TEMPLATE_START
    - nssToken_FindObjectsByTemplate
    - NSS_CK_TEMPLATE_FINISH
    - NSS_CK_SET_ATTRIBUTE_ITEM
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCryptokiObject **\nnssToken_FindObjects(\n    NSSToken
      *token,\n    nssSession *sessionOpt,\n    CK_OBJECT_CLASS objclass,\n    nssTokenSearchType
      searchType,\n    PRUint32 maximumOpt,\n    PRStatus *statusOpt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CK_TEMPLATE_START
      Src: /src/nss/lib/dev/devtoken.c:599,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:602,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:604,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:606,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:607,1
    - Dst: NSS_CK_TEMPLATE_FINISH
      Src: /src/nss/lib/dev/devtoken.c:608,1
    - Dst: nssToken_FindObjectsByTemplate
      Src: /src/nss/lib/dev/devtoken.c:610,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 586
    functionDepth: 1
    functionLinenumber: 586
    functionLinenumberEnd: 614
    functionName: "nssCryptokiObject **\nnssToken_FindCertificatesBySubject(\n    NSSToken
      *token,\n    nssSession *sessionOpt,\n    NSSDER *subject,\n    nssTokenSearchType
      searchType,\n    PRUint32 maximumOpt,\n    PRStatus *statusOpt)"
    functionSourceFile: /src/nss/lib/dev/devtoken.c
    functionUses: 0
    functionsReached:
    - NSS_CK_TEMPLATE_FINISH
    - NSS_CK_SET_ATTRIBUTE_ITEM
    - NSS_CK_TEMPLATE_START
    - nssToken_FindObjectsByTemplate
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCryptokiObject **\nnssToken_FindCertificatesBySubject(\n
      \   NSSToken *token,\n    nssSession *sessionOpt,\n    NSSDER *subject,\n    nssTokenSearchType
      searchType,\n    PRUint32 maximumOpt,\n    PRStatus *statusOpt)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CK_TEMPLATE_START
      Src: /src/nss/lib/dev/devtoken.c:629,1
    - Dst: NSS_CK_SET_ATTRIBUTE_UTF8
      Src: /src/nss/lib/dev/devtoken.c:630,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:633,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:635,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:637,1
    - Dst: NSS_CK_TEMPLATE_FINISH
      Src: /src/nss/lib/dev/devtoken.c:638,1
    - Dst: nssToken_FindObjectsByTemplate
      Src: /src/nss/lib/dev/devtoken.c:640,1
    - Dst: nssToken_FindObjectsByTemplate
      Src: /src/nss/lib/dev/devtoken.c:651,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 616
    functionDepth: 1
    functionLinenumber: 616
    functionLinenumberEnd: 656
    functionName: "nssCryptokiObject **\nnssToken_FindCertificatesByNickname(\n    NSSToken
      *token,\n    nssSession *sessionOpt,\n    const NSSUTF8 *name,\n    nssTokenSearchType
      searchType,\n    PRUint32 maximumOpt,\n    PRStatus *statusOpt)"
    functionSourceFile: /src/nss/lib/dev/devtoken.c
    functionUses: 0
    functionsReached:
    - NSS_CK_SET_ATTRIBUTE_UTF8
    - NSS_CK_TEMPLATE_START
    - nssToken_FindObjectsByTemplate
    - NSS_CK_TEMPLATE_FINISH
    - NSS_CK_SET_ATTRIBUTE_ITEM
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCryptokiObject **\nnssToken_FindCertificatesByNickname(\n
      \   NSSToken *token,\n    nssSession *sessionOpt,\n    const NSSUTF8 *name,\n
      \   nssTokenSearchType searchType,\n    PRUint32 maximumOpt,\n    PRStatus *statusOpt)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CK_TEMPLATE_START
      Src: /src/nss/lib/dev/devtoken.c:677,1
    - Dst: NSS_CK_SET_ATTRIBUTE_UTF8
      Src: /src/nss/lib/dev/devtoken.c:678,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:681,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:683,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:685,1
    - Dst: NSS_CK_TEMPLATE_FINISH
      Src: /src/nss/lib/dev/devtoken.c:686,1
    - Dst: find_objects
      Src: /src/nss/lib/dev/devtoken.c:688,1
    - Dst: find_objects
      Src: /src/nss/lib/dev/devtoken.c:699,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 664
    functionDepth: 4
    functionLinenumber: 664
    functionLinenumberEnd: 704
    functionName: "nssCryptokiObject **\nnssToken_FindCertificatesByEmail(\n    NSSToken
      *token,\n    nssSession *sessionOpt,\n    NSSASCII7 *email,\n    nssTokenSearchType
      searchType,\n    PRUint32 maximumOpt,\n    PRStatus *statusOpt)"
    functionSourceFile: /src/nss/lib/dev/devtoken.c
    functionUses: 0
    functionsReached:
    - find_objects
    - NSS_CK_SET_ATTRIBUTE_UTF8
    - NSS_CK_TEMPLATE_START
    - NSS_CK_TEMPLATE_FINISH
    - NSS_CK_SET_ATTRIBUTE_ITEM
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCryptokiObject **\nnssToken_FindCertificatesByEmail(\n
      \   NSSToken *token,\n    nssSession *sessionOpt,\n    NSSASCII7 *email,\n    nssTokenSearchType
      searchType,\n    PRUint32 maximumOpt,\n    PRStatus *statusOpt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CK_TEMPLATE_START
      Src: /src/nss/lib/dev/devtoken.c:719,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:720,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:723,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:725,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:727,1
    - Dst: NSS_CK_TEMPLATE_FINISH
      Src: /src/nss/lib/dev/devtoken.c:728,1
    - Dst: nssToken_FindObjectsByTemplate
      Src: /src/nss/lib/dev/devtoken.c:730,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 706
    functionDepth: 1
    functionLinenumber: 706
    functionLinenumberEnd: 734
    functionName: "nssCryptokiObject **\nnssToken_FindCertificatesByID(\n    NSSToken
      *token,\n    nssSession *sessionOpt,\n    NSSItem *id,\n    nssTokenSearchType
      searchType,\n    PRUint32 maximumOpt,\n    PRStatus *statusOpt)"
    functionSourceFile: /src/nss/lib/dev/devtoken.c
    functionUses: 0
    functionsReached:
    - NSS_CK_TEMPLATE_FINISH
    - NSS_CK_SET_ATTRIBUTE_ITEM
    - NSS_CK_TEMPLATE_START
    - nssToken_FindObjectsByTemplate
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCryptokiObject **\nnssToken_FindCertificatesByID(\n
      \   NSSToken *token,\n    nssSession *sessionOpt,\n    NSSItem *id,\n    nssTokenSearchType
      searchType,\n    PRUint32 maximumOpt,\n    PRStatus *statusOpt)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CK_TEMPLATE_START
      Src: /src/nss/lib/dev/devtoken.c:750,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/dev/devtoken.c:753,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:760,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:763,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:766,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:767,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:768,1
    - Dst: NSS_CK_TEMPLATE_FINISH
      Src: /src/nss/lib/dev/devtoken.c:769,1
    - Dst: find_objects
      Src: /src/nss/lib/dev/devtoken.c:772,1
    - Dst: nssToken_FindObjectsByTemplate
      Src: /src/nss/lib/dev/devtoken.c:776,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/dev/devtoken.c:782,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 736
    functionDepth: 4
    functionLinenumber: 736
    functionLinenumberEnd: 786
    functionName: "nssCryptokiObject *\nnssToken_FindCertificateByIssuerAndSerialNumber(\n
      \   NSSToken *token,\n    nssSession *sessionOpt,\n    NSSDER *issuer,\n    NSSDER
      *serial,\n    nssTokenSearchType searchType,\n    PRStatus *statusOpt)"
    functionSourceFile: /src/nss/lib/dev/devtoken.c
    functionUses: 0
    functionsReached:
    - find_objects
    - NSS_CK_TEMPLATE_START
    - PORT_SetError
    - nss_ZFreeIf
    - nssToken_FindObjectsByTemplate
    - NSS_CK_TEMPLATE_FINISH
    - NSS_CK_SET_ATTRIBUTE_ITEM
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCryptokiObject *\nnssToken_FindCertificateByIssuerAndSerialNumber(\n
      \   NSSToken *token,\n    nssSession *sessionOpt,\n    NSSDER *issuer,\n    NSSDER
      *serial,\n    nssTokenSearchType searchType,\n    PRStatus *statusOpt)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CK_TEMPLATE_START
      Src: /src/nss/lib/dev/devtoken.c:801,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:804,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:806,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:808,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:809,1
    - Dst: NSS_CK_TEMPLATE_FINISH
      Src: /src/nss/lib/dev/devtoken.c:810,1
    - Dst: nssToken_FindObjectsByTemplate
      Src: /src/nss/lib/dev/devtoken.c:812,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/dev/devtoken.c:817,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 788
    functionDepth: 1
    functionLinenumber: 788
    functionLinenumberEnd: 820
    functionName: "nssCryptokiObject *\nnssToken_FindCertificateByEncodedCertificate(\n
      \   NSSToken *token,\n    nssSession *sessionOpt,\n    NSSBER *encodedCertificate,\n
      \   nssTokenSearchType searchType,\n    PRStatus *statusOpt)"
    functionSourceFile: /src/nss/lib/dev/devtoken.c
    functionUses: 0
    functionsReached:
    - NSS_CK_TEMPLATE_START
    - nss_ZFreeIf
    - nssToken_FindObjectsByTemplate
    - NSS_CK_TEMPLATE_FINISH
    - NSS_CK_SET_ATTRIBUTE_ITEM
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCryptokiObject *\nnssToken_FindCertificateByEncodedCertificate(\n
      \   NSSToken *token,\n    nssSession *sessionOpt,\n    NSSBER *encodedCertificate,\n
      \   nssTokenSearchType searchType,\n    PRStatus *statusOpt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CK_TEMPLATE_START
      Src: /src/nss/lib/dev/devtoken.c:835,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:836,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:838,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:840,1
    - Dst: NSS_CK_TEMPLATE_FINISH
      Src: /src/nss/lib/dev/devtoken.c:842,1
    - Dst: nssToken_FindObjectsByTemplate
      Src: /src/nss/lib/dev/devtoken.c:844,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 822
    functionDepth: 1
    functionLinenumber: 822
    functionLinenumberEnd: 848
    functionName: "nssCryptokiObject **\nnssToken_FindPrivateKeys(\n    NSSToken *token,\n
      \   nssSession *sessionOpt,\n    nssTokenSearchType searchType,\n    PRUint32
      maximumOpt,\n    PRStatus *statusOpt)"
    functionSourceFile: /src/nss/lib/dev/devtoken.c
    functionUses: 0
    functionsReached:
    - NSS_CK_TEMPLATE_FINISH
    - NSS_CK_SET_ATTRIBUTE_ITEM
    - NSS_CK_TEMPLATE_START
    - nssToken_FindObjectsByTemplate
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCryptokiObject **\nnssToken_FindPrivateKeys(\n    NSSToken
      *token,\n    nssSession *sessionOpt,\n    nssTokenSearchType searchType,\n    PRUint32
      maximumOpt,\n    PRStatus *statusOpt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CK_TEMPLATE_START
      Src: /src/nss/lib/dev/devtoken.c:863,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:864,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:865,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:866,1
    - Dst: NSS_CK_TEMPLATE_FINISH
      Src: /src/nss/lib/dev/devtoken.c:867,1
    - Dst: nssToken_FindObjectsByTemplate
      Src: /src/nss/lib/dev/devtoken.c:869,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/dev/devtoken.c:874,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 851
    functionDepth: 1
    functionLinenumber: 851
    functionLinenumberEnd: 877
    functionName: "nssCryptokiObject *\nnssToken_FindPrivateKeyByID(\n    NSSToken
      *token,\n    nssSession *sessionOpt,\n    NSSItem *keyID)"
    functionSourceFile: /src/nss/lib/dev/devtoken.c
    functionUses: 0
    functionsReached:
    - NSS_CK_TEMPLATE_START
    - nss_ZFreeIf
    - nssToken_FindObjectsByTemplate
    - NSS_CK_TEMPLATE_FINISH
    - NSS_CK_SET_ATTRIBUTE_ITEM
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCryptokiObject *\nnssToken_FindPrivateKeyByID(\n
      \   NSSToken *token,\n    nssSession *sessionOpt,\n    NSSItem *keyID)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CK_TEMPLATE_START
      Src: /src/nss/lib/dev/devtoken.c:892,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:893,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:894,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:895,1
    - Dst: NSS_CK_TEMPLATE_FINISH
      Src: /src/nss/lib/dev/devtoken.c:896,1
    - Dst: nssToken_FindObjectsByTemplate
      Src: /src/nss/lib/dev/devtoken.c:898,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/dev/devtoken.c:903,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 880
    functionDepth: 1
    functionLinenumber: 880
    functionLinenumberEnd: 906
    functionName: "nssCryptokiObject *\nnssToken_FindPublicKeyByID(\n    NSSToken
      *token,\n    nssSession *sessionOpt,\n    NSSItem *keyID)"
    functionSourceFile: /src/nss/lib/dev/devtoken.c
    functionUses: 0
    functionsReached:
    - NSS_CK_TEMPLATE_START
    - nss_ZFreeIf
    - nssToken_FindObjectsByTemplate
    - NSS_CK_TEMPLATE_FINISH
    - NSS_CK_SET_ATTRIBUTE_ITEM
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCryptokiObject *\nnssToken_FindPublicKeyByID(\n    NSSToken
      *token,\n    nssSession *sessionOpt,\n    NSSItem *keyID)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nssToken_GetCryptokiEPV
      Src: /src/nss/lib/dev/devtoken.c:911,1
    - Dst: CKAPI
      Src: /src/nss/lib/dev/devtoken.c:917,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - tok
    argTypes:
    - NSSToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 908
    functionDepth: 2
    functionLinenumber: 908
    functionLinenumberEnd: 925
    functionName: nss_TokenUsePKCS11Trust
    functionSourceFile: /src/nss/lib/dev/devtoken.c
    functionUses: 0
    functionsReached:
    - CKAPI
    - nssToken_GetCryptokiEPV
    linkageType: ''
    returnType: PRBool
    signature: PRBool nss_TokenUsePKCS11Trust(NSSToken *tok)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - nssTrust
    - isPKCSTrust
    argTypes:
    - nssTrustLevel
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 927
    functionDepth: 0
    functionLinenumber: 927
    functionLinenumberEnd: 954
    functionName: get_ck_trust
    functionSourceFile: /src/nss/lib/dev/devtoken.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_TRUST
    signature: "CK_TRUST get_ck_trust(\n    nssTrustLevel nssTrust, PRBool isPKCSTrust)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: nss_TokenUsePKCS11Trust
      Src: /src/nss/lib/dev/devtoken.c:976,1
    - Dst: get_ck_trust
      Src: /src/nss/lib/dev/devtoken.c:982,1
    - Dst: get_ck_trust
      Src: /src/nss/lib/dev/devtoken.c:983,1
    - Dst: get_ck_trust
      Src: /src/nss/lib/dev/devtoken.c:984,1
    - Dst: get_ck_trust
      Src: /src/nss/lib/dev/devtoken.c:985,1
    - Dst: NSSAlgorithm_DigestBuf
      Src: /src/nss/lib/dev/devtoken.c:991,1
    - Dst: NSSAlgorithm_DigestBuf
      Src: /src/nss/lib/dev/devtoken.c:995,1
    - Dst: NSS_CK_TEMPLATE_START
      Src: /src/nss/lib/dev/devtoken.c:998,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:1000,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:1002,1
    - Dst: NSS_CK_SET_ATTRIBUTE_VAR
      Src: /src/nss/lib/dev/devtoken.c:1004,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:1005,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:1006,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:1008,1
    - Dst: NSS_CK_SET_ATTRIBUTE_FIXED_PTR
      Src: /src/nss/lib/dev/devtoken.c:1009,1
    - Dst: NSS_CK_SET_ATTRIBUTE_VAR
      Src: /src/nss/lib/dev/devtoken.c:1011,1
    - Dst: NSS_CK_SET_ATTRIBUTE_VAR
      Src: /src/nss/lib/dev/devtoken.c:1012,1
    - Dst: NSS_CK_SET_ATTRIBUTE_VAR
      Src: /src/nss/lib/dev/devtoken.c:1013,1
    - Dst: NSS_CK_SET_ATTRIBUTE_VAR
      Src: /src/nss/lib/dev/devtoken.c:1014,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:1016,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:1017,1
    - Dst: NSS_CK_SET_ATTRIBUTE_VAR
      Src: /src/nss/lib/dev/devtoken.c:1019,1
    - Dst: NSS_CK_SET_ATTRIBUTE_VAR
      Src: /src/nss/lib/dev/devtoken.c:1020,1
    - Dst: NSS_CK_SET_ATTRIBUTE_VAR
      Src: /src/nss/lib/dev/devtoken.c:1021,1
    - Dst: NSS_CK_SET_ATTRIBUTE_VAR
      Src: /src/nss/lib/dev/devtoken.c:1022,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:1024,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:1027,1
    - Dst: NSS_CK_TEMPLATE_FINISH
      Src: /src/nss/lib/dev/devtoken.c:1031,1
    - Dst: import_object
      Src: /src/nss/lib/dev/devtoken.c:1033,1
    - Dst: nssTokenObjectCache_ImportObject
      Src: /src/nss/lib/dev/devtoken.c:1035,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 956
    functionDepth: 8
    functionLinenumber: 956
    functionLinenumberEnd: 1039
    functionName: "nssCryptokiObject *\nnssToken_ImportTrust(\n    NSSToken *tok,\n
      \   nssSession *sessionOpt,\n    NSSDER *certEncoding,\n    NSSDER *certIssuer,\n
      \   NSSDER *certSerial,\n    nssTrustLevel serverAuth,\n    nssTrustLevel clientAuth,\n
      \   nssTrustLevel codeSigning,\n    nssTrustLevel emailProtection,\n    PRBool
      stepUpApproved,\n    PRBool asTokenObject)"
    functionSourceFile: /src/nss/lib/dev/devtoken.c
    functionUses: 0
    functionsReached:
    - nssTokenObjectCache_ImportObject
    - NSS_CK_SET_ATTRIBUTE_VAR
    - nss_TokenUsePKCS11Trust
    - NSS_CK_TEMPLATE_START
    - NSS_CK_SET_ATTRIBUTE_FIXED_PTR
    - get_ck_trust
    - NSS_CK_TEMPLATE_FINISH
    - import_object
    - NSSAlgorithm_DigestBuf
    - NSS_CK_SET_ATTRIBUTE_ITEM
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCryptokiObject *\nnssToken_ImportTrust(\n    NSSToken
      *tok,\n    nssSession *sessionOpt,\n    NSSDER *certEncoding,\n    NSSDER *certIssuer,\n
      \   NSSDER *certSerial,\n    nssTrustLevel serverAuth,\n    nssTrustLevel clientAuth,\n
      \   nssTrustLevel codeSigning,\n    nssTrustLevel emailProtection,\n    PRBool
      stepUpApproved,\n    PRBool asTokenObject)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/dev/devtoken.c:1059,1
    - Dst: NSS_CK_TEMPLATE_START
      Src: /src/nss/lib/dev/devtoken.c:1063,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:1065,1
    - Dst: NSS_CK_SET_ATTRIBUTE_VAR
      Src: /src/nss/lib/dev/devtoken.c:1067,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:1068,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:1069,1
    - Dst: NSS_CK_TEMPLATE_FINISH
      Src: /src/nss/lib/dev/devtoken.c:1070,1
    - Dst: nssToken_FindObjectsByTemplate
      Src: /src/nss/lib/dev/devtoken.c:1071,1
    - Dst: nssToken_FindObjectsByTemplate
      Src: /src/nss/lib/dev/devtoken.c:1076,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/dev/devtoken.c:1084,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1087
      start: 1041
    functionDepth: 1
    functionLinenumber: 1041
    functionLinenumberEnd: 1087
    functionName: "nssCryptokiObject *\nnssToken_FindTrustForCertificate(\n    NSSToken
      *token,\n    nssSession *sessionOpt,\n    NSSDER *certEncoding,\n    NSSDER
      *certIssuer,\n    NSSDER *certSerial,\n    nssTokenSearchType searchType)"
    functionSourceFile: /src/nss/lib/dev/devtoken.c
    functionUses: 0
    functionsReached:
    - NSS_CK_SET_ATTRIBUTE_VAR
    - NSS_CK_TEMPLATE_START
    - PORT_SetError
    - nss_ZFreeIf
    - nssToken_FindObjectsByTemplate
    - NSS_CK_TEMPLATE_FINISH
    - NSS_CK_SET_ATTRIBUTE_ITEM
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCryptokiObject *\nnssToken_FindTrustForCertificate(\n
      \   NSSToken *token,\n    nssSession *sessionOpt,\n    NSSDER *certEncoding,\n
      \   NSSDER *certIssuer,\n    NSSDER *certSerial,\n    nssTokenSearchType searchType)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CK_TEMPLATE_START
      Src: /src/nss/lib/dev/devtoken.c:1105,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:1107,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:1109,1
    - Dst: NSS_CK_SET_ATTRIBUTE_VAR
      Src: /src/nss/lib/dev/devtoken.c:1111,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:1112,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:1113,1
    - Dst: NSS_CK_SET_ATTRIBUTE_UTF8
      Src: /src/nss/lib/dev/devtoken.c:1114,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:1116,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:1118,1
    - Dst: NSS_CK_TEMPLATE_FINISH
      Src: /src/nss/lib/dev/devtoken.c:1120,1
    - Dst: import_object
      Src: /src/nss/lib/dev/devtoken.c:1123,1
    - Dst: nssTokenObjectCache_ImportObject
      Src: /src/nss/lib/dev/devtoken.c:1125,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1129
      start: 1089
    functionDepth: 8
    functionLinenumber: 1089
    functionLinenumberEnd: 1129
    functionName: "nssCryptokiObject *\nnssToken_ImportCRL(\n    NSSToken *token,\n
      \   nssSession *sessionOpt,\n    NSSDER *subject,\n    NSSDER *encoding,\n    PRBool
      isKRL,\n    NSSUTF8 *url,\n    PRBool asTokenObject)"
    functionSourceFile: /src/nss/lib/dev/devtoken.c
    functionUses: 0
    functionsReached:
    - nssTokenObjectCache_ImportObject
    - NSS_CK_SET_ATTRIBUTE_VAR
    - NSS_CK_SET_ATTRIBUTE_UTF8
    - NSS_CK_TEMPLATE_START
    - import_object
    - NSS_CK_TEMPLATE_FINISH
    - NSS_CK_SET_ATTRIBUTE_ITEM
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCryptokiObject *\nnssToken_ImportCRL(\n    NSSToken
      *token,\n    nssSession *sessionOpt,\n    NSSDER *subject,\n    NSSDER *encoding,\n
      \   PRBool isKRL,\n    NSSUTF8 *url,\n    PRBool asTokenObject)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/dev/devtoken.c:1149,1
    - Dst: NSS_CK_TEMPLATE_START
      Src: /src/nss/lib/dev/devtoken.c:1153,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:1155,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:1158,1
    - Dst: NSS_CK_SET_ATTRIBUTE_VAR
      Src: /src/nss/lib/dev/devtoken.c:1160,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:1161,1
    - Dst: NSS_CK_TEMPLATE_FINISH
      Src: /src/nss/lib/dev/devtoken.c:1162,1
    - Dst: nssToken_FindObjectsByTemplate
      Src: /src/nss/lib/dev/devtoken.c:1164,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1168
      start: 1131
    functionDepth: 1
    functionLinenumber: 1131
    functionLinenumberEnd: 1168
    functionName: "nssCryptokiObject **\nnssToken_FindCRLsBySubject(\n    NSSToken
      *token,\n    nssSession *sessionOpt,\n    NSSDER *subject,\n    nssTokenSearchType
      searchType,\n    PRUint32 maximumOpt,\n    PRStatus *statusOpt)"
    functionSourceFile: /src/nss/lib/dev/devtoken.c
    functionUses: 0
    functionsReached:
    - NSS_CK_SET_ATTRIBUTE_VAR
    - NSS_CK_TEMPLATE_START
    - PORT_SetError
    - nssToken_FindObjectsByTemplate
    - NSS_CK_TEMPLATE_FINISH
    - NSS_CK_SET_ATTRIBUTE_ITEM
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCryptokiObject **\nnssToken_FindCRLsBySubject(\n
      \   NSSToken *token,\n    nssSession *sessionOpt,\n    NSSDER *subject,\n    nssTokenSearchType
      searchType,\n    PRUint32 maximumOpt,\n    PRStatus *statusOpt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssTokenObjectCache_GetObjectAttributes
      Src: /src/nss/lib/dev/devtoken.c:1182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - token
    - arenaOpt
    - object
    - objclass
    - atemplate
    - atlen
    argTypes:
    - NSSToken*
    - NSSArena*
    - nssCryptokiObject*
    - CK_OBJECT_CLASS
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1185
      start: 1170
    functionDepth: 8
    functionLinenumber: 1170
    functionLinenumberEnd: 1185
    functionName: nssToken_GetCachedObjectAttributes
    functionSourceFile: /src/nss/lib/dev/devtoken.c
    functionUses: 0
    functionsReached:
    - nssTokenObjectCache_GetObjectAttributes
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssToken_GetCachedObjectAttributes(\n    NSSToken *token,\n
      \   NSSArena *arenaOpt,\n    nssCryptokiObject *object,\n    CK_OBJECT_CLASS
      objclass,\n    CK_ATTRIBUTE_PTR atemplate,\n    CK_ULONG atlen)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: nssToken_GetCryptokiEPV
      Src: /src/nss/lib/dev/devtoken.c:1200,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/dev/devtoken.c:1205,1
    - Dst: nssSession_EnterMonitor
      Src: /src/nss/lib/dev/devtoken.c:1209,1
    - Dst: CKAPI
      Src: /src/nss/lib/dev/devtoken.c:1210,1
    - Dst: nssSession_ExitMonitor
      Src: /src/nss/lib/dev/devtoken.c:1212,1
    - Dst: CKAPI
      Src: /src/nss/lib/dev/devtoken.c:1217,1
    - Dst: nssSession_ExitMonitor
      Src: /src/nss/lib/dev/devtoken.c:1219,1
    - Dst: nssSession_ExitMonitor
      Src: /src/nss/lib/dev/devtoken.c:1227,1
    - Dst: nss_ZAlloc
      Src: /src/nss/lib/dev/devtoken.c:1237,1
    - Dst: nssSession_ExitMonitor
      Src: /src/nss/lib/dev/devtoken.c:1239,1
    - Dst: CKAPI
      Src: /src/nss/lib/dev/devtoken.c:1243,1
    - Dst: nssSession_ExitMonitor
      Src: /src/nss/lib/dev/devtoken.c:1248,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/dev/devtoken.c:1250,1
    - Dst: nssItem_Create
      Src: /src/nss/lib/dev/devtoken.c:1254,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 48
    argCount: 6
    argNames:
    - tok
    - sessionOpt
    - ap
    - data
    - rvOpt
    - arenaOpt
    argTypes:
    - NSSToken*
    - nssSession*
    - NSSAlgorithmAndParameters*
    - NSSItem*
    - NSSItem*
    - NSSArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1260
      start: 1187
    functionDepth: 2
    functionLinenumber: 1187
    functionLinenumberEnd: 1260
    functionName: nssToken_Digest
    functionSourceFile: /src/nss/lib/dev/devtoken.c
    functionUses: 2
    functionsReached:
    - nssItem_Create
    - nss_ZAlloc
    - nssSession_ExitMonitor
    - PORT_SetError
    - nss_ZFreeIf
    - nssSession_EnterMonitor
    - CKAPI
    - nssToken_GetCryptokiEPV
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nnssToken_Digest(\n    NSSToken *tok,\n    nssSession
      *sessionOpt,\n    NSSAlgorithmAndParameters *ap,\n    NSSItem *data,\n    NSSItem
      *rvOpt,\n    NSSArena *arenaOpt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssToken_GetCryptokiEPV
      Src: /src/nss/lib/dev/devtoken.c:1269,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/dev/devtoken.c:1274,1
    - Dst: nssSession_EnterMonitor
      Src: /src/nss/lib/dev/devtoken.c:1278,1
    - Dst: CKAPI
      Src: /src/nss/lib/dev/devtoken.c:1279,1
    - Dst: nssSession_ExitMonitor
      Src: /src/nss/lib/dev/devtoken.c:1280,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - tok
    - sessionOpt
    - ap
    argTypes:
    - NSSToken*
    - nssSession*
    - NSSAlgorithmAndParameters*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1282
      start: 1262
    functionDepth: 2
    functionLinenumber: 1262
    functionLinenumberEnd: 1282
    functionName: nssToken_BeginDigest
    functionSourceFile: /src/nss/lib/dev/devtoken.c
    functionUses: 1
    functionsReached:
    - nssSession_ExitMonitor
    - PORT_SetError
    - nssSession_EnterMonitor
    - CKAPI
    - nssToken_GetCryptokiEPV
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssToken_BeginDigest(\n    NSSToken *tok,\n    nssSession
      *sessionOpt,\n    NSSAlgorithmAndParameters *ap)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssToken_GetCryptokiEPV
      Src: /src/nss/lib/dev/devtoken.c:1291,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/dev/devtoken.c:1296,1
    - Dst: nssSession_EnterMonitor
      Src: /src/nss/lib/dev/devtoken.c:1300,1
    - Dst: CKAPI
      Src: /src/nss/lib/dev/devtoken.c:1301,1
    - Dst: nssSession_ExitMonitor
      Src: /src/nss/lib/dev/devtoken.c:1304,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - tok
    - sessionOpt
    - item
    argTypes:
    - NSSToken*
    - nssSession*
    - NSSItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1306
      start: 1284
    functionDepth: 2
    functionLinenumber: 1284
    functionLinenumberEnd: 1306
    functionName: nssToken_ContinueDigest
    functionSourceFile: /src/nss/lib/dev/devtoken.c
    functionUses: 1
    functionsReached:
    - nssSession_ExitMonitor
    - PORT_SetError
    - nssSession_EnterMonitor
    - CKAPI
    - nssToken_GetCryptokiEPV
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssToken_ContinueDigest(\n    NSSToken *tok,\n    nssSession
      *sessionOpt,\n    NSSItem *item)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: nssToken_GetCryptokiEPV
      Src: /src/nss/lib/dev/devtoken.c:1319,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/dev/devtoken.c:1324,1
    - Dst: nssSession_EnterMonitor
      Src: /src/nss/lib/dev/devtoken.c:1328,1
    - Dst: CKAPI
      Src: /src/nss/lib/dev/devtoken.c:1329,1
    - Dst: nssSession_ExitMonitor
      Src: /src/nss/lib/dev/devtoken.c:1331,1
    - Dst: nssSession_ExitMonitor
      Src: /src/nss/lib/dev/devtoken.c:1337,1
    - Dst: nss_ZAlloc
      Src: /src/nss/lib/dev/devtoken.c:1347,1
    - Dst: nssSession_ExitMonitor
      Src: /src/nss/lib/dev/devtoken.c:1349,1
    - Dst: CKAPI
      Src: /src/nss/lib/dev/devtoken.c:1353,1
    - Dst: nssSession_ExitMonitor
      Src: /src/nss/lib/dev/devtoken.c:1354,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/dev/devtoken.c:1356,1
    - Dst: nssItem_Create
      Src: /src/nss/lib/dev/devtoken.c:1360,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 4
    argNames:
    - tok
    - sessionOpt
    - rvOpt
    - arenaOpt
    argTypes:
    - NSSToken*
    - nssSession*
    - NSSItem*
    - NSSArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1363
      start: 1308
    functionDepth: 2
    functionLinenumber: 1308
    functionLinenumberEnd: 1363
    functionName: nssToken_FinishDigest
    functionSourceFile: /src/nss/lib/dev/devtoken.c
    functionUses: 1
    functionsReached:
    - nssItem_Create
    - nss_ZAlloc
    - nssSession_ExitMonitor
    - PORT_SetError
    - nss_ZFreeIf
    - nssSession_EnterMonitor
    - CKAPI
    - nssToken_GetCryptokiEPV
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nnssToken_FinishDigest(\n    NSSToken *tok,\n    nssSession
      *sessionOpt,\n    NSSItem *rvOpt,\n    NSSArena *arenaOpt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssSlot_IsTokenPresent
      Src: /src/nss/lib/dev/devtoken.c:1369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - token
    argTypes:
    - NSSToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1370
      start: 1365
    functionDepth: 1
    functionLinenumber: 1365
    functionLinenumberEnd: 1370
    functionName: nssToken_IsPresent
    functionSourceFile: /src/nss/lib/dev/devtoken.c
    functionUses: 7
    functionsReached:
    - nssSlot_IsTokenPresent
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssToken_IsPresent(\n    NSSToken *token)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: nssToken_GetCryptokiEPV
      Src: /src/nss/lib/dev/devtoken.c:1398,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/dev/devtoken.c:1403,1
    - Dst: NSS_CK_TEMPLATE_START
      Src: /src/nss/lib/dev/devtoken.c:1408,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:1410,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:1413,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/devtoken.c:1415,1
    - Dst: NSS_CK_TEMPLATE_FINISH
      Src: /src/nss/lib/dev/devtoken.c:1416,1
    - Dst: nssArena_Create
      Src: /src/nss/lib/dev/devtoken.c:1419,1
    - Dst: nss_ZNEWARRAY
      Src: /src/nss/lib/dev/devtoken.c:1425,1
    - Dst: nssSession_EnterMonitor
      Src: /src/nss/lib/dev/devtoken.c:1429,1
    - Dst: CKAPI
      Src: /src/nss/lib/dev/devtoken.c:1431,1
    - Dst: nssSession_ExitMonitor
      Src: /src/nss/lib/dev/devtoken.c:1434,1
    - Dst: CKAPI
      Src: /src/nss/lib/dev/devtoken.c:1439,1
    - Dst: nssSession_ExitMonitor
      Src: /src/nss/lib/dev/devtoken.c:1444,1
    - Dst: nss_ZREALLOCARRAY
      Src: /src/nss/lib/dev/devtoken.c:1454,1
    - Dst: nssSession_ExitMonitor
      Src: /src/nss/lib/dev/devtoken.c:1458,1
    - Dst: CKAPI
      Src: /src/nss/lib/dev/devtoken.c:1462,1
    - Dst: nssSession_ExitMonitor
      Src: /src/nss/lib/dev/devtoken.c:1463,1
    - Dst: create_objects_from_handles
      Src: /src/nss/lib/dev/devtoken.c:1468,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/dev/devtoken.c:1475,1
    - Dst: nssArena_Destroy
      Src: /src/nss/lib/dev/devtoken.c:1478,1
    - Dst: nssArena_Destroy
      Src: /src/nss/lib/dev/devtoken.c:1481,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 72
    argCount: 4
    argNames:
    - token
    - sessionOpt
    - searchType
    - arg
    argTypes:
    - NSSToken*
    - nssSession*
    - nssTokenSearchType
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1483
      start: 1381
    functionDepth: 3
    functionLinenumber: 1381
    functionLinenumberEnd: 1483
    functionName: nssToken_TraverseCertificates
    functionSourceFile: /src/nss/lib/dev/devtoken.c
    functionUses: 1
    functionsReached:
    - nssArena_Create
    - nss_ZREALLOCARRAY
    - NSS_CK_TEMPLATE_START
    - nss_ZNEWARRAY
    - nssSession_ExitMonitor
    - PORT_SetError
    - nss_ZFreeIf
    - nssSession_EnterMonitor
    - CKAPI
    - nssToken_GetCryptokiEPV
    - nssArena_Destroy
    - create_objects_from_handles
    - NSS_CK_TEMPLATE_FINISH
    - NSS_CK_SET_ATTRIBUTE_ITEM
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssToken_TraverseCertificates(\n    NSSToken *token,\n
      \   nssSession *sessionOpt,\n    nssTokenSearchType searchType,\n    PRStatus
      (*callback)(nssCryptokiObject *instance, void *arg),\n    void *arg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nssSlot_IsLoggedIn
      Src: /src/nss/lib/dev/devtoken.c:1499,1
    - Dst: PK11_MatchItem
      Src: /src/nss/lib/dev/devtoken.c:1502,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - token
    - c
    - instance
    argTypes:
    - NSSToken*
    - NSSCertificate*
    - nssCryptokiObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1507
      start: 1485
    functionDepth: 5
    functionLinenumber: 1485
    functionLinenumberEnd: 1507
    functionName: nssToken_IsPrivateKeyAvailable
    functionSourceFile: /src/nss/lib/dev/devtoken.c
    functionUses: 1
    functionsReached:
    - PK11_MatchItem
    - nssSlot_IsLoggedIn
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssToken_IsPrivateKeyAvailable(\n    NSSToken *token,\n
      \   NSSCertificate *c,\n    nssCryptokiObject *instance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - slot
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: NSSSLOT_IS_FRIENDLY
    functionSourceFile: /src/nss/lib/dev/devslot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NSSSLOT_IS_FRIENDLY(slot)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_ATOMIC_DECREMENT
      Src: /src/nss/lib/dev/devslot.c:35,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/dev/devslot.c:36,1
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/dev/devslot.c:37,1
    - Dst: PZ_DestroyCondVar
      Src: /src/nss/lib/dev/devslot.c:38,1
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/dev/devslot.c:39,1
    - Dst: nssArena_Destroy
      Src: /src/nss/lib/dev/devslot.c:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - slot
    argTypes:
    - NSSSlot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 30
    functionDepth: 3
    functionLinenumber: 30
    functionLinenumberEnd: 44
    functionName: nssSlot_Destroy
    functionSourceFile: /src/nss/lib/dev/devslot.c
    functionUses: 8
    functionsReached:
    - PR_ATOMIC_DECREMENT
    - PZ_DestroyLock
    - nssArena_Destroy
    - PK11_FreeSlot
    - PZ_DestroyCondVar
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssSlot_Destroy(\n    NSSSlot *slot)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/dev/devslot.c:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - slot
    argTypes:
    - NSSSlot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 52
    functionName: nssSlot_EnterMonitor
    functionSourceFile: /src/nss/lib/dev/devslot.c
    functionUses: 0
    functionsReached:
    - PZ_Lock
    linkageType: ''
    returnType: void
    signature: void nssSlot_EnterMonitor(NSSSlot *slot)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Unlock
      Src: /src/nss/lib/dev/devslot.c:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - slot
    argTypes:
    - NSSSlot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 60
    functionName: nssSlot_ExitMonitor
    functionSourceFile: /src/nss/lib/dev/devslot.c
    functionUses: 0
    functionsReached:
    - PZ_Unlock
    linkageType: ''
    returnType: void
    signature: void nssSlot_ExitMonitor(NSSSlot *slot)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssSlot_Destroy
      Src: /src/nss/lib/dev/devslot.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - slot
    argTypes:
    - NSSSlot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 62
    functionDepth: 4
    functionLinenumber: 62
    functionLinenumberEnd: 67
    functionName: NSSSlot_Destroy
    functionSourceFile: /src/nss/lib/dev/devslot.c
    functionUses: 0
    functionsReached:
    - nssSlot_Destroy
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT NSSSlot_Destroy(\n    NSSSlot *slot)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_ATOMIC_INCREMENT
      Src: /src/nss/lib/dev/devslot.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - slot
    argTypes:
    - NSSSlot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 75
    functionName: nssSlot_AddRef
    functionSourceFile: /src/nss/lib/dev/devslot.c
    functionUses: 2
    functionsReached:
    - PR_ATOMIC_INCREMENT
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nnssSlot_AddRef(\n    NSSSlot *slot)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - slot
    argTypes:
    - NSSSlot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 82
    functionName: nssSlot_GetName
    functionSourceFile: /src/nss/lib/dev/devslot.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nnssSlot_GetName(\n    NSSSlot *slot)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/dev/devslot.c:88,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/dev/devslot.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - slot
    argTypes:
    - NSSSlot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 91
    functionName: nssSlot_ResetDelay
    functionSourceFile: /src/nss/lib/dev/devslot.c
    functionUses: 3
    functionsReached:
    - PZ_Lock
    - PZ_Unlock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssSlot_ResetDelay(\n    NSSSlot *slot)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetCurrentThread
      Src: /src/nss/lib/dev/devslot.c:101,1
    - Dst: PR_SecondsToInterval
      Src: /src/nss/lib/dev/devslot.c:106,1
    - Dst: PR_IntervalNow
      Src: /src/nss/lib/dev/devslot.c:108,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - slot
    argTypes:
    - NSSSlot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 113
    functionName: token_status_checked
    functionSourceFile: /src/nss/lib/dev/devslot.c
    functionUses: 0
    functionsReached:
    - PR_SecondsToInterval
    - PR_GetCurrentThread
    - PR_IntervalNow
    linkageType: ''
    returnType: PRBool
    signature: PRBool token_status_checked(const NSSSlot *slot)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: nssSlot_IsPermanent
      Src: /src/nss/lib/dev/devslot.c:130,1
    - Dst: PK11_IsDisabled
      Src: /src/nss/lib/dev/devslot.c:131,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/dev/devslot.c:135,1
    - Dst: token_status_checked
      Src: /src/nss/lib/dev/devslot.c:136,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/dev/devslot.c:138,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/dev/devslot.c:141,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/dev/devslot.c:151,1
    - Dst: PR_WaitCondVar
      Src: /src/nss/lib/dev/devslot.c:153,1
    - Dst: token_status_checked
      Src: /src/nss/lib/dev/devslot.c:157,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/dev/devslot.c:159,1
    - Dst: PR_GetCurrentThread
      Src: /src/nss/lib/dev/devslot.c:165,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/dev/devslot.c:167,1
    - Dst: PK11Slot_GetNSSToken
      Src: /src/nss/lib/dev/devslot.c:169,1
    - Dst: PK11_GetSlotInfo
      Src: /src/nss/lib/dev/devslot.c:175,1
    - Dst: nssToken_GetDefaultSession
      Src: /src/nss/lib/dev/devslot.c:183,1
    - Dst: nssSession_EnterMonitor
      Src: /src/nss/lib/dev/devslot.c:185,1
    - Dst: CKAPI
      Src: /src/nss/lib/dev/devslot.c:189,1
    - Dst: nssSession_ExitMonitor
      Src: /src/nss/lib/dev/devslot.c:193,1
    - Dst: nssToken_NotifyCertsNotVisible
      Src: /src/nss/lib/dev/devslot.c:198,1
    - Dst: nssToken_Remove
      Src: /src/nss/lib/dev/devslot.c:202,1
    - Dst: nssToken_GetDefaultSession
      Src: /src/nss/lib/dev/devslot.c:209,1
    - Dst: nssSession_EnterMonitor
      Src: /src/nss/lib/dev/devslot.c:212,1
    - Dst: CKAPI
      Src: /src/nss/lib/dev/devslot.c:215,1
    - Dst: CKAPI
      Src: /src/nss/lib/dev/devslot.c:218,1
    - Dst: nssSession_ExitMonitor
      Src: /src/nss/lib/dev/devslot.c:224,1
    - Dst: nssToken_NotifyCertsNotVisible
      Src: /src/nss/lib/dev/devslot.c:235,1
    - Dst: nssToken_Remove
      Src: /src/nss/lib/dev/devslot.c:236,1
    - Dst: PK11_InitToken
      Src: /src/nss/lib/dev/devslot.c:240,1
    - Dst: nssTrustDomain_UpdateCachedTokenCerts
      Src: /src/nss/lib/dev/devslot.c:245,1
    - Dst: nssToken_Refresh
      Src: /src/nss/lib/dev/devslot.c:248,1
    - Dst: nssToken_Destroy
      Src: /src/nss/lib/dev/devslot.c:258,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/dev/devslot.c:268,1
    - Dst: PR_IntervalNow
      Src: /src/nss/lib/dev/devslot.c:272,1
    - Dst: PR_NotifyAllCondVar
      Src: /src/nss/lib/dev/devslot.c:276,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/dev/devslot.c:277,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 112
    argCount: 1
    argNames:
    - slot
    argTypes:
    - NSSSlot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 115
    functionDepth: 7
    functionLinenumber: 115
    functionLinenumberEnd: 279
    functionName: nssSlot_IsTokenPresent
    functionSourceFile: /src/nss/lib/dev/devslot.c
    functionUses: 3
    functionsReached:
    - PK11_GetSlotInfo
    - token_status_checked
    - PK11_IsDisabled
    - PZ_Unlock
    - nssSession_EnterMonitor
    - nssToken_Remove
    - nssToken_GetDefaultSession
    - PR_WaitCondVar
    - nssToken_Destroy
    - PR_NotifyAllCondVar
    - nssTrustDomain_UpdateCachedTokenCerts
    - CKAPI
    - PR_IntervalNow
    - PK11_InitToken
    - PK11Slot_GetNSSToken
    - nssSession_ExitMonitor
    - nssToken_NotifyCertsNotVisible
    - nssSlot_IsPermanent
    - PZ_Lock
    - PR_GetCurrentThread
    - nssToken_Refresh
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssSlot_IsTokenPresent(\n    NSSSlot *slot)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - slot
    argTypes:
    - NSSSlot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 286
    functionName: nssSlot_GetCryptokiEPV
    functionSourceFile: /src/nss/lib/dev/devslot.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nnssSlot_GetCryptokiEPV(\n    NSSSlot *slot)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssSlot_IsTokenPresent
      Src: /src/nss/lib/dev/devslot.c:294,1
    - Dst: PK11Slot_GetNSSToken
      Src: /src/nss/lib/dev/devslot.c:295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - slot
    argTypes:
    - NSSSlot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 288
    functionDepth: 8
    functionLinenumber: 288
    functionLinenumberEnd: 299
    functionName: nssSlot_GetToken
    functionSourceFile: /src/nss/lib/dev/devslot.c
    functionUses: 6
    functionsReached:
    - PK11Slot_GetNSSToken
    - nssSlot_IsTokenPresent
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nnssSlot_GetToken(\n    NSSSlot *slot)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/dev/devslot.c:306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - nssSession*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 308
    functionName: nssSession_EnterMonitor
    functionSourceFile: /src/nss/lib/dev/devslot.c
    functionUses: 9
    functionsReached:
    - PZ_Lock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssSession_EnterMonitor(\n    nssSession *s)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Unlock
      Src: /src/nss/lib/dev/devslot.c:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - nssSession*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 315
    functionName: nssSession_ExitMonitor
    functionSourceFile: /src/nss/lib/dev/devslot.c
    functionUses: 9
    functionsReached:
    - PZ_Unlock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssSession_ExitMonitor(\n    nssSession *s)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - nssSession*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 322
    functionName: nssSession_IsReadWrite
    functionSourceFile: /src/nss/lib/dev/devslot.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: NSS_EXTERN
    signature: "NSS_EXTERN nssSession_IsReadWrite(\n    nssSession *s)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - aType
    argTypes:
    - CK_ATTRIBUTE_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 53
    functionName: is_string_attribute
    functionSourceFile: /src/nss/lib/dev/ckhelper.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: "PRBool is_string_attribute(\n    CK_ATTRIBUTE_TYPE aType)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: nssSlot_GetCryptokiEPV
      Src: /src/nss/lib/dev/ckhelper.c:70,1
    - Dst: nssArena_Mark
      Src: /src/nss/lib/dev/ckhelper.c:73,1
    - Dst: nssSession_EnterMonitor
      Src: /src/nss/lib/dev/ckhelper.c:78,1
    - Dst: CKAPI
      Src: /src/nss/lib/dev/ckhelper.c:84,1
    - Dst: nssSession_ExitMonitor
      Src: /src/nss/lib/dev/ckhelper.c:89,1
    - Dst: nss_SetError
      Src: /src/nss/lib/dev/ckhelper.c:90,1
    - Dst: is_string_attribute
      Src: /src/nss/lib/dev/ckhelper.c:101,1
    - Dst: nss_ZAlloc
      Src: /src/nss/lib/dev/ckhelper.c:104,1
    - Dst: nssSession_ExitMonitor
      Src: /src/nss/lib/dev/ckhelper.c:106,1
    - Dst: CKAPI
      Src: /src/nss/lib/dev/ckhelper.c:113,1
    - Dst: nssSession_ExitMonitor
      Src: /src/nss/lib/dev/ckhelper.c:115,1
    - Dst: nss_SetError
      Src: /src/nss/lib/dev/ckhelper.c:119,1
    - Dst: nssArena_Unmark
      Src: /src/nss/lib/dev/ckhelper.c:123,1
    - Dst: nssCKObject_GetAttributes
      Src: /src/nss/lib/dev/ckhelper.c:138,1
    - Dst: nssArena_Release
      Src: /src/nss/lib/dev/ckhelper.c:148,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/dev/ckhelper.c:153,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 71
    argCount: 6
    argNames:
    - object
    - obj_template
    - count
    - arenaOpt
    - session
    - slot
    argTypes:
    - CK_OBJECT_HANDLE
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    - NSSArena*
    - nssSession*
    - NSSSlot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 158
    functionName: nssCKObject_GetAttributes
    functionSourceFile: /src/nss/lib/dev/ckhelper.c
    functionUses: 4
    functionsReached:
    - is_string_attribute
    - nssArena_Unmark
    - nss_ZAlloc
    - nssSession_ExitMonitor
    - nss_ZFreeIf
    - nssArena_Mark
    - nssSession_EnterMonitor
    - CKAPI
    - nss_SetError
    - nssSlot_GetCryptokiEPV
    - nssCKObject_GetAttributes
    - nssArena_Release
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKObject_GetAttributes(\n    CK_OBJECT_HANDLE object,\n
      \   CK_ATTRIBUTE_PTR obj_template,\n    CK_ULONG count,\n    NSSArena *arenaOpt,\n
      \   nssSession *session,\n    NSSSlot *slot)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssCKObject_GetAttributes
      Src: /src/nss/lib/dev/ckhelper.c:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 6
    argNames:
    - object
    - attribute
    - arenaOpt
    - session
    - slot
    - rvItem
    argTypes:
    - CK_OBJECT_HANDLE
    - CK_ATTRIBUTE_TYPE
    - NSSArena*
    - nssSession*
    - NSSSlot*
    - NSSItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 160
    functionDepth: 3
    functionLinenumber: 160
    functionLinenumberEnd: 180
    functionName: nssCKObject_GetAttributeItem
    functionSourceFile: /src/nss/lib/dev/ckhelper.c
    functionUses: 0
    functionsReached:
    - nssCKObject_GetAttributes
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKObject_GetAttributeItem(\n    CK_OBJECT_HANDLE
      object,\n    CK_ATTRIBUTE_TYPE attribute,\n    NSSArena *arenaOpt,\n    nssSession
      *session,\n    NSSSlot *slot,\n    NSSItem *rvItem)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssSlot_GetCryptokiEPV
      Src: /src/nss/lib/dev/ckhelper.c:194,1
    - Dst: nssSession_EnterMonitor
      Src: /src/nss/lib/dev/ckhelper.c:197,1
    - Dst: CKAPI
      Src: /src/nss/lib/dev/ckhelper.c:198,1
    - Dst: nssSession_ExitMonitor
      Src: /src/nss/lib/dev/ckhelper.c:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - object
    - attribute
    - session
    - slot
    - rvStatus
    argTypes:
    - CK_OBJECT_HANDLE
    - CK_ATTRIBUTE_TYPE
    - nssSession*
    - NSSSlot*
    - PRStatus*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 207
    functionName: nssCKObject_IsAttributeTrue
    functionSourceFile: /src/nss/lib/dev/ckhelper.c
    functionUses: 0
    functionsReached:
    - nssSession_EnterMonitor
    - nssSlot_GetCryptokiEPV
    - CKAPI
    - nssSession_ExitMonitor
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKObject_IsAttributeTrue(\n    CK_OBJECT_HANDLE object,\n
      \   CK_ATTRIBUTE_TYPE attribute,\n    nssSession *session,\n    NSSSlot *slot,\n
      \   PRStatus *rvStatus)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssSlot_GetCryptokiEPV
      Src: /src/nss/lib/dev/ckhelper.c:218,1
    - Dst: nssSession_EnterMonitor
      Src: /src/nss/lib/dev/ckhelper.c:219,1
    - Dst: CKAPI
      Src: /src/nss/lib/dev/ckhelper.c:220,1
    - Dst: nssSession_ExitMonitor
      Src: /src/nss/lib/dev/ckhelper.c:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - object
    - obj_template
    - count
    - session
    - slot
    argTypes:
    - CK_OBJECT_HANDLE
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    - nssSession*
    - NSSSlot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 228
    functionName: nssCKObject_SetAttributes
    functionSourceFile: /src/nss/lib/dev/ckhelper.c
    functionUses: 1
    functionsReached:
    - nssSession_EnterMonitor
    - nssSlot_GetCryptokiEPV
    - CKAPI
    - nssSession_ExitMonitor
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKObject_SetAttributes(\n    CK_OBJECT_HANDLE object,\n
      \   CK_ATTRIBUTE_PTR obj_template,\n    CK_ULONG count,\n    nssSession *session,\n
      \   NSSSlot *slot)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - objectTemplate
    - otsize
    argTypes:
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 242
    functionName: nssCKObject_IsTokenObjectTemplate
    functionSourceFile: /src/nss/lib/dev/ckhelper.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCKObject_IsTokenObjectTemplate(\n    CK_ATTRIBUTE_PTR
      objectTemplate,\n    CK_ULONG otsize)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - attrib
    argTypes:
    - CK_ATTRIBUTE_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 260
    functionName: nss_cert_type_from_ck_attrib
    functionSourceFile: /src/nss/lib/dev/ckhelper.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSSCertificateType
    signature: NSSCertificateType nss_cert_type_from_ck_attrib(CK_ATTRIBUTE_PTR attrib)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CK_TEMPLATE_START
      Src: /src/nss/lib/dev/ckhelper.c:283,1
    - Dst: NSS_CK_SET_ATTRIBUTE_NULL
      Src: /src/nss/lib/dev/ckhelper.c:285,1
    - Dst: NSS_CK_SET_ATTRIBUTE_NULL
      Src: /src/nss/lib/dev/ckhelper.c:288,1
    - Dst: NSS_CK_SET_ATTRIBUTE_NULL
      Src: /src/nss/lib/dev/ckhelper.c:291,1
    - Dst: NSS_CK_SET_ATTRIBUTE_NULL
      Src: /src/nss/lib/dev/ckhelper.c:294,1
    - Dst: NSS_CK_SET_ATTRIBUTE_NULL
      Src: /src/nss/lib/dev/ckhelper.c:297,1
    - Dst: NSS_CK_SET_ATTRIBUTE_NULL
      Src: /src/nss/lib/dev/ckhelper.c:300,1
    - Dst: NSS_CK_TEMPLATE_FINISH
      Src: /src/nss/lib/dev/ckhelper.c:302,1
    - Dst: nssToken_GetCachedObjectAttributes
      Src: /src/nss/lib/dev/ckhelper.c:308,1
    - Dst: nssToken_GetDefaultSession
      Src: /src/nss/lib/dev/ckhelper.c:314,1
    - Dst: nss_SetError
      Src: /src/nss/lib/dev/ckhelper.c:316,1
    - Dst: nssToken_GetSlot
      Src: /src/nss/lib/dev/ckhelper.c:320,1
    - Dst: nssCKObject_GetAttributes
      Src: /src/nss/lib/dev/ckhelper.c:321,1
    - Dst: nssSlot_Destroy
      Src: /src/nss/lib/dev/ckhelper.c:324,1
    - Dst: nss_cert_type_from_ck_attrib
      Src: /src/nss/lib/dev/ckhelper.c:332,1
    - Dst: NSS_CK_ATTRIBUTE_TO_ITEM
      Src: /src/nss/lib/dev/ckhelper.c:336,1
    - Dst: NSS_CK_ATTRIBUTE_TO_ITEM
      Src: /src/nss/lib/dev/ckhelper.c:340,1
    - Dst: NSS_CK_ATTRIBUTE_TO_ITEM
      Src: /src/nss/lib/dev/ckhelper.c:344,1
    - Dst: NSS_CK_ATTRIBUTE_TO_ITEM
      Src: /src/nss/lib/dev/ckhelper.c:348,1
    - Dst: NSS_CK_ATTRIBUTE_TO_ITEM
      Src: /src/nss/lib/dev/ckhelper.c:352,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 64
    argCount: 9
    argNames:
    - certObject
    - sessionOpt
    - arenaOpt
    - certTypeOpt
    - idOpt
    - encodingOpt
    - issuerOpt
    - serialOpt
    - subjectOpt
    argTypes:
    - nssCryptokiObject*
    - nssSession*
    - NSSArena*
    - NSSCertificateType*
    - NSSItem*
    - NSSDER*
    - NSSDER*
    - NSSDER*
    - NSSDER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 263
    functionDepth: 9
    functionLinenumber: 263
    functionLinenumberEnd: 356
    functionName: nssCryptokiCertificate_GetAttributes
    functionSourceFile: /src/nss/lib/dev/ckhelper.c
    functionUses: 2
    functionsReached:
    - nssToken_GetCachedObjectAttributes
    - nssToken_GetSlot
    - NSS_CK_TEMPLATE_START
    - nssToken_GetDefaultSession
    - NSS_CK_SET_ATTRIBUTE_NULL
    - nss_SetError
    - nssSlot_Destroy
    - NSS_CK_TEMPLATE_FINISH
    - nssCKObject_GetAttributes
    - nss_cert_type_from_ck_attrib
    - NSS_CK_ATTRIBUTE_TO_ITEM
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCryptokiCertificate_GetAttributes(\n    nssCryptokiObject
      *certObject,\n    nssSession *sessionOpt,\n    NSSArena *arenaOpt,\n    NSSCertificateType
      *certTypeOpt,\n    NSSItem *idOpt,\n    NSSDER *encodingOpt,\n    NSSDER *issuerOpt,\n
      \   NSSDER *serialOpt,\n    NSSDER *subjectOpt)"
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 1
    argNames:
    - ckt
    argTypes:
    - CK_TRUST
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 390
    functionName: get_nss_trust
    functionSourceFile: /src/nss/lib/dev/ckhelper.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: nssTrustLevel
    signature: "nssTrustLevel get_nss_trust(\n    CK_TRUST ckt)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CK_TEMPLATE_START
      Src: /src/nss/lib/dev/ckhelper.c:422,1
    - Dst: NSS_CK_SET_ATTRIBUTE_VAR
      Src: /src/nss/lib/dev/ckhelper.c:423,1
    - Dst: NSS_CK_SET_ATTRIBUTE_VAR
      Src: /src/nss/lib/dev/ckhelper.c:427,1
    - Dst: NSS_CK_SET_ATTRIBUTE_VAR
      Src: /src/nss/lib/dev/ckhelper.c:428,1
    - Dst: NSS_CK_SET_ATTRIBUTE_VAR
      Src: /src/nss/lib/dev/ckhelper.c:429,1
    - Dst: NSS_CK_SET_ATTRIBUTE_VAR
      Src: /src/nss/lib/dev/ckhelper.c:430,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/ckhelper.c:432,1
    - Dst: NSS_CK_SET_ATTRIBUTE_FIXED_PTR
      Src: /src/nss/lib/dev/ckhelper.c:433,1
    - Dst: NSS_CK_SET_ATTRIBUTE_VAR
      Src: /src/nss/lib/dev/ckhelper.c:436,1
    - Dst: NSS_CK_SET_ATTRIBUTE_VAR
      Src: /src/nss/lib/dev/ckhelper.c:437,1
    - Dst: NSS_CK_SET_ATTRIBUTE_VAR
      Src: /src/nss/lib/dev/ckhelper.c:438,1
    - Dst: NSS_CK_SET_ATTRIBUTE_VAR
      Src: /src/nss/lib/dev/ckhelper.c:439,1
    - Dst: NSS_CK_SET_ATTRIBUTE_VAR
      Src: /src/nss/lib/dev/ckhelper.c:440,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/ckhelper.c:442,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/dev/ckhelper.c:447,1
    - Dst: nss_SetError
      Src: /src/nss/lib/dev/ckhelper.c:448,1
    - Dst: NSS_CK_TEMPLATE_FINISH
      Src: /src/nss/lib/dev/ckhelper.c:451,1
    - Dst: nssToken_GetCachedObjectAttributes
      Src: /src/nss/lib/dev/ckhelper.c:453,1
    - Dst: nssToken_GetDefaultSession
      Src: /src/nss/lib/dev/ckhelper.c:459,1
    - Dst: nss_SetError
      Src: /src/nss/lib/dev/ckhelper.c:461,1
    - Dst: nssToken_GetSlot
      Src: /src/nss/lib/dev/ckhelper.c:465,1
    - Dst: nssCKObject_GetAttributes
      Src: /src/nss/lib/dev/ckhelper.c:466,1
    - Dst: nssSlot_Destroy
      Src: /src/nss/lib/dev/ckhelper.c:469,1
    - Dst: get_nss_trust
      Src: /src/nss/lib/dev/ckhelper.c:480,1
    - Dst: get_nss_trust
      Src: /src/nss/lib/dev/ckhelper.c:481,1
    - Dst: get_nss_trust
      Src: /src/nss/lib/dev/ckhelper.c:482,1
    - Dst: get_nss_trust
      Src: /src/nss/lib/dev/ckhelper.c:483,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 54
    argCount: 9
    argNames:
    - trustObject
    - sessionOpt
    - hash
    - hashMech
    - serverAuth
    - clientAuth
    - codeSigning
    - emailProtection
    - stepUpApproved
    argTypes:
    - nssCryptokiObject*
    - nssSession*
    - NSSItem*
    - CK_MECHANISM_TYPE*
    - nssTrustLevel*
    - nssTrustLevel*
    - nssTrustLevel*
    - nssTrustLevel*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 392
    functionDepth: 9
    functionLinenumber: 392
    functionLinenumberEnd: 486
    functionName: nssCryptokiTrust_GetAttributes
    functionSourceFile: /src/nss/lib/dev/ckhelper.c
    functionUses: 1
    functionsReached:
    - nssToken_GetCachedObjectAttributes
    - PORT_Assert
    - nssToken_GetSlot
    - NSS_CK_SET_ATTRIBUTE_VAR
    - NSS_CK_SET_ATTRIBUTE_FIXED_PTR
    - NSS_CK_TEMPLATE_START
    - nssToken_GetDefaultSession
    - nssCKObject_GetAttributes
    - get_nss_trust
    - nss_SetError
    - nssSlot_Destroy
    - NSS_CK_TEMPLATE_FINISH
    - NSS_CK_SET_ATTRIBUTE_ITEM
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCryptokiTrust_GetAttributes(\n    nssCryptokiObject
      *trustObject,\n    nssSession *sessionOpt,\n    NSSItem *hash,\n    CK_MECHANISM_TYPE
      *hashMech,\n    nssTrustLevel *serverAuth,\n    nssTrustLevel *clientAuth,\n
      \   nssTrustLevel *codeSigning,\n    nssTrustLevel *emailProtection,\n    PRBool
      *stepUpApproved)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CK_TEMPLATE_START
      Src: /src/nss/lib/dev/ckhelper.c:507,1
    - Dst: NSS_CK_SET_ATTRIBUTE_NULL
      Src: /src/nss/lib/dev/ckhelper.c:509,1
    - Dst: NSS_CK_SET_ATTRIBUTE_NULL
      Src: /src/nss/lib/dev/ckhelper.c:512,1
    - Dst: NSS_CK_SET_ATTRIBUTE_NULL
      Src: /src/nss/lib/dev/ckhelper.c:515,1
    - Dst: NSS_CK_SET_ATTRIBUTE_NULL
      Src: /src/nss/lib/dev/ckhelper.c:518,1
    - Dst: NSS_CK_SET_ATTRIBUTE_NULL
      Src: /src/nss/lib/dev/ckhelper.c:521,1
    - Dst: NSS_CK_TEMPLATE_FINISH
      Src: /src/nss/lib/dev/ckhelper.c:523,1
    - Dst: nssToken_GetCachedObjectAttributes
      Src: /src/nss/lib/dev/ckhelper.c:525,1
    - Dst: nssToken_GetDefaultSession
      Src: /src/nss/lib/dev/ckhelper.c:531,1
    - Dst: nss_SetError
      Src: /src/nss/lib/dev/ckhelper.c:533,1
    - Dst: nssToken_GetSlot
      Src: /src/nss/lib/dev/ckhelper.c:537,1
    - Dst: nssCKObject_GetAttributes
      Src: /src/nss/lib/dev/ckhelper.c:538,1
    - Dst: nssSlot_Destroy
      Src: /src/nss/lib/dev/ckhelper.c:541,1
    - Dst: NSS_CK_ATTRIBUTE_TO_ULONG
      Src: /src/nss/lib/dev/ckhelper.c:549,1
    - Dst: NSS_CK_ATTRIBUTE_TO_ITEM
      Src: /src/nss/lib/dev/ckhelper.c:553,1
    - Dst: NSS_CK_ATTRIBUTE_TO_UTF8
      Src: /src/nss/lib/dev/ckhelper.c:557,1
    - Dst: NSS_CK_ATTRIBUTE_TO_BOOL
      Src: /src/nss/lib/dev/ckhelper.c:561,1
    - Dst: NSS_CK_ATTRIBUTE_TO_ITEM
      Src: /src/nss/lib/dev/ckhelper.c:565,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 54
    argCount: 8
    argNames:
    - crlObject
    - sessionOpt
    - arenaOpt
    - encodingOpt
    - subjectOpt
    - crl_class
    - urlOpt
    - isKRLOpt
    argTypes:
    - nssCryptokiObject*
    - nssSession*
    - NSSArena*
    - NSSItem*
    - NSSItem*
    - CK_ULONG*
    - NSSUTF8**
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 488
    functionDepth: 9
    functionLinenumber: 488
    functionLinenumberEnd: 569
    functionName: nssCryptokiCRL_GetAttributes
    functionSourceFile: /src/nss/lib/dev/ckhelper.c
    functionUses: 2
    functionsReached:
    - nssToken_GetCachedObjectAttributes
    - nssToken_GetSlot
    - NSS_CK_TEMPLATE_START
    - nssToken_GetDefaultSession
    - NSS_CK_ATTRIBUTE_TO_UTF8
    - NSS_CK_ATTRIBUTE_TO_BOOL
    - NSS_CK_SET_ATTRIBUTE_NULL
    - NSS_CK_ATTRIBUTE_TO_ULONG
    - nss_SetError
    - nssSlot_Destroy
    - NSS_CK_TEMPLATE_FINISH
    - nssCKObject_GetAttributes
    - NSS_CK_ATTRIBUTE_TO_ITEM
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCryptokiCRL_GetAttributes(\n    nssCryptokiObject
      *crlObject,\n    nssSession *sessionOpt,\n    NSSArena *arenaOpt,\n    NSSItem
      *encodingOpt,\n    NSSItem *subjectOpt,\n    CK_ULONG *crl_class,\n    NSSUTF8
      **urlOpt,\n    PRBool *isKRLOpt)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: nssToken_GetCryptokiEPV
      Src: /src/nss/lib/dev/ckhelper.c:583,1
    - Dst: nssToken_GetDefaultSession
      Src: /src/nss/lib/dev/ckhelper.c:586,1
    - Dst: NSS_CK_TEMPLATE_START
      Src: /src/nss/lib/dev/ckhelper.c:589,1
    - Dst: NSS_CK_SET_ATTRIBUTE_UTF8
      Src: /src/nss/lib/dev/ckhelper.c:590,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/ckhelper.c:591,1
    - Dst: NSS_CK_SET_ATTRIBUTE_ITEM
      Src: /src/nss/lib/dev/ckhelper.c:592,1
    - Dst: NSS_CK_TEMPLATE_FINISH
      Src: /src/nss/lib/dev/ckhelper.c:593,1
    - Dst: nssSession_IsReadWrite
      Src: /src/nss/lib/dev/ckhelper.c:596,1
    - Dst: nssSession_IsReadWrite
      Src: /src/nss/lib/dev/ckhelper.c:600,1
    - Dst: nssToken_GetSlot
      Src: /src/nss/lib/dev/ckhelper.c:603,1
    - Dst: nssSlot_CreateSession
      Src: /src/nss/lib/dev/ckhelper.c:604,1
    - Dst: nssSlot_Destroy
      Src: /src/nss/lib/dev/ckhelper.c:605,1
    - Dst: CKAPI
      Src: /src/nss/lib/dev/ckhelper.c:612,1
    - Dst: nssSession_Destroy
      Src: /src/nss/lib/dev/ckhelper.c:618,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 5
    argNames:
    - keyObject
    - sessionOpt
    - nickname
    - id
    - subject
    argTypes:
    - nssCryptokiObject*
    - nssSession*
    - NSSUTF8*
    - NSSItem*
    - NSSDER*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 571
    functionDepth: 4
    functionLinenumber: 571
    functionLinenumberEnd: 622
    functionName: nssCryptokiPrivateKey_SetCertificate
    functionSourceFile: /src/nss/lib/dev/ckhelper.c
    functionUses: 1
    functionsReached:
    - nssToken_GetSlot
    - nssSession_Destroy
    - NSS_CK_TEMPLATE_START
    - NSS_CK_SET_ATTRIBUTE_UTF8
    - nssToken_GetDefaultSession
    - CKAPI
    - nssToken_GetCryptokiEPV
    - nssSession_IsReadWrite
    - nssSlot_CreateSession
    - nssSlot_Destroy
    - NSS_CK_TEMPLATE_FINISH
    - NSS_CK_SET_ATTRIBUTE_ITEM
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssCryptokiPrivateKey_SetCertificate(\n    nssCryptokiObject
      *keyObject,\n    nssSession *sessionOpt,\n    const NSSUTF8 *nickname,\n    NSSItem
      *id,\n    NSSDER *subject)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _template
    - ','
    - attr
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: NSS_CK_TEMPLATE_START
    functionSourceFile: /src/nss/lib/dev/ckhelper.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NSS_CK_TEMPLATE_START(_template, attr, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pattr
    - ','
    - kind
    - ','
    - item
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: NSS_CK_SET_ATTRIBUTE_ITEM
    functionSourceFile: /src/nss/lib/dev/ckhelper.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NSS_CK_SET_ATTRIBUTE_ITEM(pattr, kind, item)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pattr
    - ','
    - kind
    - ','
    - utf8
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 46
    functionName: NSS_CK_SET_ATTRIBUTE_UTF8
    functionSourceFile: /src/nss/lib/dev/ckhelper.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NSS_CK_SET_ATTRIBUTE_UTF8(pattr, kind, utf8)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pattr
    - ','
    - kind
    - ','
    - var
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: NSS_CK_SET_ATTRIBUTE_VAR
    functionSourceFile: /src/nss/lib/dev/ckhelper.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NSS_CK_SET_ATTRIBUTE_VAR(pattr, kind, var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pattr
    - ','
    - kind
    - ','
    - var
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 58
    functionName: NSS_CK_SET_ATTRIBUTE_FIXED_PTR
    functionSourceFile: /src/nss/lib/dev/ckhelper.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NSS_CK_SET_ATTRIBUTE_FIXED_PTR(pattr, kind, var)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pattr
    - ','
    - kind
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 64
    functionName: NSS_CK_SET_ATTRIBUTE_NULL
    functionSourceFile: /src/nss/lib/dev/ckhelper.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NSS_CK_SET_ATTRIBUTE_NULL(pattr, kind)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _template
    - ','
    - attr
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: NSS_CK_TEMPLATE_FINISH
    functionSourceFile: /src/nss/lib/dev/ckhelper.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NSS_CK_TEMPLATE_FINISH(_template, attr, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - attrib
    - ','
    - item
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 81
    functionName: NSS_CK_ATTRIBUTE_TO_ITEM
    functionSourceFile: /src/nss/lib/dev/ckhelper.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NSS_CK_ATTRIBUTE_TO_ITEM(attrib, item)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - attrib
    - ','
    - boolvar
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 90
    functionName: NSS_CK_ATTRIBUTE_TO_BOOL
    functionSourceFile: /src/nss/lib/dev/ckhelper.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NSS_CK_ATTRIBUTE_TO_BOOL(attrib, boolvar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - attrib
    - ','
    - ulongvar
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: NSS_CK_ATTRIBUTE_TO_ULONG
    functionSourceFile: /src/nss/lib/dev/ckhelper.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NSS_CK_ATTRIBUTE_TO_ULONG(attrib, ulongvar)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - attrib
    - ','
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: NSS_CK_ATTRIBUTE_TO_UTF8
    functionSourceFile: /src/nss/lib/dev/ckhelper.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NSS_CK_ATTRIBUTE_TO_UTF8(attrib, str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - item
    - ','
    - attrib
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: NSS_CK_ITEM_TO_ATTRIBUTE
    functionSourceFile: /src/nss/lib/dev/ckhelper.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NSS_CK_ITEM_TO_ATTRIBUTE(item, attrib)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - epv
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: CKAPI
    functionSourceFile: /src/nss/lib/dev/devm.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CKAPI(epv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:26,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:27,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:30,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:30,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:35,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:36,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 41
    functionName: pkix_ValidateParams_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_ValidateParams_Destroy(\n        PKIX_PL_Object
      *object,\n        void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:59,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:60,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:62,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:62,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:65,1
    - Dst: PKIX_PL_Object_GetType
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:65,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:75,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:75,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:84,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:84,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:97,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - first
    - second
    - pResult
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 98
    functionName: pkix_ValidateParams_Equals
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_PL_Object_Equals
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - pkix_CheckType
    - PKIX_PL_Object_GetType
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_ValidateParams_Equals(\n        PKIX_PL_Object
      *first,\n        PKIX_PL_Object *second,\n        PKIX_Boolean *pResult,\n        void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:115,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:116,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:118,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:118,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:123,1
    - Dst: PKIX_PL_Object_Hashcode
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:123,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:129,1
    - Dst: PKIX_PL_Object_Hashcode
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:129,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - object
    - pHashcode
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 142
    functionName: pkix_ValidateParams_Hashcode
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_PL_Object_Hashcode
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_ValidateParams_Hashcode(\n        PKIX_PL_Object
      *object,\n        PKIX_UInt32 *pHashcode,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:162,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:163,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:165,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:165,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:177,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:177,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:187,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:187,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:193,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:193,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:199,1
    - Dst: PKIX_PL_Sprintf
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:199,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:211,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:212,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:213,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 3
    argNames:
    - object
    - pString
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_String**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 216
    functionName: pkix_ValidateParams_ToString
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_PL_String_Create
    - PKIX_RETURN
    - PKIX_PL_Object_ToString
    - PKIX_PL_Sprintf
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_ValidateParams_ToString(\n        PKIX_PL_Object
      *object,\n        PKIX_PL_String **pString,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:237,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 252
    functionName: pkix_ValidateParams_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      pkix_ValidateParams_RegisterSelf(void *plContext)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:268,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:269,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:271,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:271,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:279,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:282,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:290,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 4
    argNames:
    - procParams
    - chain
    - pParams
    - plContext
    argTypes:
    - PKIX_ProcessingParams*
    - PKIX_List*
    - PKIX_ValidateParams**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 294
    functionName: PKIX_ValidateParams_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c
    functionUses: 4
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_Alloc
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_DECREF
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ValidateParams_Create(\n        PKIX_ProcessingParams
      *procParams,\n        PKIX_List *chain,\n        PKIX_ValidateParams **pParams,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:306,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:307,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:309,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - valParams
    - pProcParams
    - plContext
    argTypes:
    - PKIX_ValidateParams*
    - PKIX_ProcessingParams**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 315
    functionName: PKIX_ValidateParams_GetProcessingParams
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c
    functionUses: 9
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ValidateParams_GetProcessingParams(\n        PKIX_ValidateParams
      *valParams,\n        PKIX_ProcessingParams **pProcParams,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:326,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:327,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:329,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - valParams
    - pChain
    - plContext
    argTypes:
    - PKIX_ValidateParams*
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 335
    functionName: PKIX_ValidateParams_GetCertChain
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_valparams.c
    functionUses: 1
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ValidateParams_GetCertChain(\n        PKIX_ValidateParams
      *valParams,\n        PKIX_List **pChain,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:26,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:27,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:30,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:30,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 44
    functionName: pkix_ResourceLimits_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c
    functionUses: 0
    functionsReached:
    - PKIX_RETURN
    - PKIX_CHECK
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_ResourceLimits_Destroy(\n        PKIX_PL_Object
      *object,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:62,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:63,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:65,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:65,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:68,1
    - Dst: PKIX_PL_Object_GetType
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:68,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:90,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 4
    argNames:
    - first
    - second
    - pResult
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 91
    functionName: pkix_ResourceLimits_Equals
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - pkix_CheckType
    - PKIX_PL_Object_GetType
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_ResourceLimits_Equals(\n        PKIX_PL_Object
      *first,\n        PKIX_PL_Object *second,\n        PKIX_Boolean *pResult,\n        void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:106,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:107,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:109,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:109,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - object
    - pHashcode
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 123
    functionName: pkix_ResourceLimits_Hashcode
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c
    functionUses: 0
    functionsReached:
    - PKIX_RETURN
    - PKIX_CHECK
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_ResourceLimits_Hashcode(\n        PKIX_PL_Object
      *object,\n        PKIX_UInt32 *pHashcode,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:140,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:141,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:143,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:143,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:154,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:154,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:164,1
    - Dst: PKIX_PL_Sprintf
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:164,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:177,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - object
    - pString
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_String**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 180
    functionName: pkix_ResourceLimits_ToString
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_PL_String_Create
    - PKIX_RETURN
    - PKIX_PL_Sprintf
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_ResourceLimits_ToString(\n        PKIX_PL_Object
      *object,\n        PKIX_PL_String **pString,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:201,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 216
    functionName: pkix_ResourceLimits_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      pkix_ResourceLimits_RegisterSelf(void *plContext)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:230,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:231,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:233,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:233,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - pResourceLimits
    - plContext
    argTypes:
    - PKIX_ResourceLimits**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 253
    functionName: PKIX_ResourceLimits_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c
    functionUses: 3
    functionsReached:
    - PKIX_RETURN
    - PKIX_CHECK
    - PKIX_PL_Object_Alloc
    - PKIX_ENTER
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ResourceLimits_Create(\n        PKIX_ResourceLimits
      **pResourceLimits,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:265,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:266,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - rLimits
    - pMaxTime
    - plContext
    argTypes:
    - PKIX_ResourceLimits*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 271
    functionName: PKIX_ResourceLimits_GetMaxTime
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c
    functionUses: 1
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ResourceLimits_GetMaxTime(\n        PKIX_ResourceLimits
      *rLimits,\n        PKIX_UInt32 *pMaxTime,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:283,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:284,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - rLimits
    - maxTime
    - plContext
    argTypes:
    - PKIX_ResourceLimits*
    - PKIX_UInt32
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 289
    functionName: PKIX_ResourceLimits_SetMaxTime
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c
    functionUses: 3
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ResourceLimits_SetMaxTime(\n        PKIX_ResourceLimits
      *rLimits,\n        PKIX_UInt32 maxTime,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:301,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:302,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - rLimits
    - pMaxFanout
    - plContext
    argTypes:
    - PKIX_ResourceLimits*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 307
    functionName: PKIX_ResourceLimits_GetMaxFanout
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c
    functionUses: 1
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ResourceLimits_GetMaxFanout(\n        PKIX_ResourceLimits
      *rLimits,\n        PKIX_UInt32 *pMaxFanout,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:319,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:320,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - rLimits
    - maxFanout
    - plContext
    argTypes:
    - PKIX_ResourceLimits*
    - PKIX_UInt32
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 325
    functionName: PKIX_ResourceLimits_SetMaxFanout
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c
    functionUses: 3
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ResourceLimits_SetMaxFanout(\n        PKIX_ResourceLimits
      *rLimits,\n        PKIX_UInt32 maxFanout,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:337,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:338,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - rLimits
    - pMaxDepth
    - plContext
    argTypes:
    - PKIX_ResourceLimits*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 343
    functionName: PKIX_ResourceLimits_GetMaxDepth
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c
    functionUses: 1
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ResourceLimits_GetMaxDepth(\n        PKIX_ResourceLimits
      *rLimits,\n        PKIX_UInt32 *pMaxDepth,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:355,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:356,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - rLimits
    - maxDepth
    - plContext
    argTypes:
    - PKIX_ResourceLimits*
    - PKIX_UInt32
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 361
    functionName: PKIX_ResourceLimits_SetMaxDepth
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c
    functionUses: 3
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ResourceLimits_SetMaxDepth(\n        PKIX_ResourceLimits
      *rLimits,\n        PKIX_UInt32 maxDepth,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:373,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:374,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - rLimits
    - pMaxNumber
    - plContext
    argTypes:
    - PKIX_ResourceLimits*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 379
    functionName: PKIX_ResourceLimits_GetMaxNumberOfCerts
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ResourceLimits_GetMaxNumberOfCerts(\n        PKIX_ResourceLimits
      *rLimits,\n        PKIX_UInt32 *pMaxNumber,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:391,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:392,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - rLimits
    - maxNumber
    - plContext
    argTypes:
    - PKIX_ResourceLimits*
    - PKIX_UInt32
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 397
    functionName: PKIX_ResourceLimits_SetMaxNumberOfCerts
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ResourceLimits_SetMaxNumberOfCerts(\n        PKIX_ResourceLimits
      *rLimits,\n        PKIX_UInt32 maxNumber,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:409,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:410,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - rLimits
    - pMaxNumber
    - plContext
    argTypes:
    - PKIX_ResourceLimits*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 415
    functionName: PKIX_ResourceLimits_GetMaxNumberOfCRLs
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ResourceLimits_GetMaxNumberOfCRLs(\n        PKIX_ResourceLimits
      *rLimits,\n        PKIX_UInt32 *pMaxNumber,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:427,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:428,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c:432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - rLimits
    - maxNumber
    - plContext
    argTypes:
    - PKIX_ResourceLimits*
    - PKIX_UInt32
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 433
    functionName: PKIX_ResourceLimits_SetMaxNumberOfCRLs
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_resourcelimits.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ResourceLimits_SetMaxNumberOfCRLs(\n        PKIX_ResourceLimits
      *rLimits,\n        PKIX_UInt32 maxNumber,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:26,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:27,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:30,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:30,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:36,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:37,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:38,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:39,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:40,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:41,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:42,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:43,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:44,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 49
    functionName: pkix_ProcessingParams_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_ProcessingParams_Destroy(\n        PKIX_PL_Object
      *object,\n        void *plContext)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:67,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:68,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:70,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:70,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:73,1
    - Dst: PKIX_PL_Object_GetType
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:73,1
    - Dst: PKIX_EQUALS
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:100,1
    - Dst: PKIX_EQUALS
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:109,1
    - Dst: PKIX_EQUALS
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:118,1
    - Dst: PKIX_EQUALS
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:127,1
    - Dst: PKIX_EQUALS
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:136,1
    - Dst: PKIX_EQUALS
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:147,1
    - Dst: PKIX_EQUALS
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:156,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:172,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 57
    argCount: 4
    argNames:
    - first
    - second
    - pResult
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 173
    functionName: pkix_ProcessingParams_Equals
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_EQUALS
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - pkix_CheckType
    - PKIX_PL_Object_GetType
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_ProcessingParams_Equals(\n        PKIX_PL_Object
      *first,\n        PKIX_PL_Object *second,\n        PKIX_Boolean *pResult,\n        void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:198,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:199,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:201,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:201,1
    - Dst: PKIX_HASHCODE
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:207,1
    - Dst: PKIX_HASHCODE
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:210,1
    - Dst: PKIX_HASHCODE
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:213,1
    - Dst: PKIX_HASHCODE
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:216,1
    - Dst: PKIX_HASHCODE
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:219,1
    - Dst: PKIX_HASHCODE
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:226,1
    - Dst: PKIX_HASHCODE
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:229,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 3
    argNames:
    - object
    - pHashcode
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 247
    functionName: pkix_ProcessingParams_Hashcode
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_HASHCODE
    - pkix_CheckType
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_ProcessingParams_Hashcode(\n        PKIX_PL_Object
      *object,\n        PKIX_UInt32 *pHashcode,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:272,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:273,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:275,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:275,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:294,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:294,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:304,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:307,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:310,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:313,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:317,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:317,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:327,1
    - Dst: PKIX_ProcessingParams_GetCertStores
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:327,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:331,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:334,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:339,1
    - Dst: PKIX_PL_Sprintf
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:339,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:358,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:359,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:360,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:361,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:362,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:363,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:364,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:365,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:366,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 3
    argNames:
    - object
    - pString
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_String**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 369
    functionName: pkix_ProcessingParams_ToString
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_PL_String_Create
    - PKIX_RETURN
    - PKIX_PL_Sprintf
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_ProcessingParams_GetCertStores
    - PKIX_TOSTRING
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_ProcessingParams_ToString(\n        PKIX_PL_Object
      *object,\n        PKIX_PL_String **pString,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:384,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:385,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:387,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:387,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:393,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:393,1
    - Dst: PKIX_DUPLICATE
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:401,1
    - Dst: PKIX_DUPLICATE
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:407,1
    - Dst: PKIX_DUPLICATE
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:411,1
    - Dst: PKIX_DUPLICATE
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:417,1
    - Dst: PKIX_DUPLICATE
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:421,1
    - Dst: PKIX_DUPLICATE
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:434,1
    - Dst: PKIX_DUPLICATE
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:440,1
    - Dst: PKIX_DUPLICATE
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:446,1
    - Dst: PKIX_DUPLICATE
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:450,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:467,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:470,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 3
    argNames:
    - object
    - pNewObject
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 472
    functionName: pkix_ProcessingParams_Duplicate
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_Alloc
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_DUPLICATE
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_ProcessingParams_Duplicate(\n        PKIX_PL_Object
      *object,\n        PKIX_PL_Object **pNewObject,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:492,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 486
    functionDepth: 1
    functionLinenumber: 486
    functionLinenumberEnd: 507
    functionName: pkix_ProcessingParams_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      pkix_ProcessingParams_RegisterSelf(void *plContext)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:521,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:522,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:524,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:524,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:532,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:532,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:534,1
    - Dst: PKIX_List_SetImmutable
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:534,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:537,1
    - Dst: PKIX_PL_Date_Create_UTCTime
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:537,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:566,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 2
    argNames:
    - pParams
    - plContext
    argTypes:
    - PKIX_ProcessingParams**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 514
    functionDepth: 1
    functionLinenumber: 514
    functionLinenumberEnd: 570
    functionName: PKIX_ProcessingParams_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c
    functionUses: 12
    functionsReached:
    - PKIX_List_SetImmutable
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_Create
    - PKIX_PL_Object_Alloc
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    - PKIX_PL_Date_Create_UTCTime
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ProcessingParams_Create(\n        PKIX_ProcessingParams
      **pParams,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:582,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:583,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - params
    - pUseAIA
    - plContext
    argTypes:
    - PKIX_ProcessingParams*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 576
    functionDepth: 1
    functionLinenumber: 576
    functionLinenumberEnd: 588
    functionName: PKIX_ProcessingParams_GetUseAIAForCertFetching
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ProcessingParams_GetUseAIAForCertFetching(\n        PKIX_ProcessingParams
      *params,\n        PKIX_Boolean *pUseAIA,  /* list of TrustAnchor */\n        void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:600,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:601,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:605,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - params
    - useAIA
    - plContext
    argTypes:
    - PKIX_ProcessingParams*
    - PKIX_Boolean
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 594
    functionDepth: 1
    functionLinenumber: 594
    functionLinenumberEnd: 606
    functionName: PKIX_ProcessingParams_SetUseAIAForCertFetching
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ProcessingParams_SetUseAIAForCertFetching(\n        PKIX_ProcessingParams
      *params,\n        PKIX_Boolean useAIA,  \n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:618,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:620,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - params
    - pQualifyTargetCert
    - plContext
    argTypes:
    - PKIX_ProcessingParams*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 612
    functionDepth: 1
    functionLinenumber: 612
    functionLinenumberEnd: 625
    functionName: PKIX_ProcessingParams_GetValidateTargetCert
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ProcessingParams_GetValidateTargetCert(\n        PKIX_ProcessingParams
      *params,\n        PKIX_Boolean *pQualifyTargetCert,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:637,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:639,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - params
    - qualifyTargetCert
    - plContext
    argTypes:
    - PKIX_ProcessingParams*
    - PKIX_Boolean
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 631
    functionDepth: 1
    functionLinenumber: 631
    functionLinenumberEnd: 644
    functionName: PKIX_ProcessingParams_SetQualifyTargetCert
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ProcessingParams_SetQualifyTargetCert(\n        PKIX_ProcessingParams
      *params,\n        PKIX_Boolean qualifyTargetCert,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:656,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:657,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:659,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:661,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:663,1
    - Dst: PKIX_List_SetImmutable
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:663,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - params
    - anchors
    - plContext
    argTypes:
    - PKIX_ProcessingParams*
    - PKIX_List*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 650
    functionDepth: 1
    functionLinenumber: 650
    functionLinenumberEnd: 668
    functionName: PKIX_ProcessingParams_SetTrustAnchors
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c
    functionUses: 0
    functionsReached:
    - PKIX_INCREF
    - PKIX_List_SetImmutable
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ProcessingParams_SetTrustAnchors(\n        PKIX_ProcessingParams
      *params,\n        PKIX_List *anchors,  /* list of TrustAnchor */\n        void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:680,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:681,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:683,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - params
    - pAnchors
    - plContext
    argTypes:
    - PKIX_ProcessingParams*
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 674
    functionDepth: 1
    functionLinenumber: 674
    functionLinenumberEnd: 689
    functionName: PKIX_ProcessingParams_GetTrustAnchors
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c
    functionUses: 1
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ProcessingParams_GetTrustAnchors(\n        PKIX_ProcessingParams
      *params,\n        PKIX_List **pAnchors,  /* list of TrustAnchor */\n        void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:701,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:703,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - params
    - pUseOnlyTrustAnchors
    - plContext
    argTypes:
    - PKIX_ProcessingParams*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 695
    functionDepth: 1
    functionLinenumber: 695
    functionLinenumberEnd: 708
    functionName: PKIX_ProcessingParams_GetUseOnlyTrustAnchors
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ProcessingParams_GetUseOnlyTrustAnchors(\n        PKIX_ProcessingParams
      *params,\n        PKIX_Boolean *pUseOnlyTrustAnchors,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:720,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:722,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - params
    - useOnlyTrustAnchors
    - plContext
    argTypes:
    - PKIX_ProcessingParams*
    - PKIX_Boolean
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 714
    functionDepth: 1
    functionLinenumber: 714
    functionLinenumberEnd: 727
    functionName: PKIX_ProcessingParams_SetUseOnlyTrustAnchors
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ProcessingParams_SetUseOnlyTrustAnchors(\n        PKIX_ProcessingParams
      *params,\n        PKIX_Boolean useOnlyTrustAnchors,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:738,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:739,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:741,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:745,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - params
    - pDate
    - plContext
    argTypes:
    - PKIX_ProcessingParams*
    - PKIX_PL_Date**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 732
    functionDepth: 1
    functionLinenumber: 732
    functionLinenumberEnd: 746
    functionName: PKIX_ProcessingParams_GetDate
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c
    functionUses: 1
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ProcessingParams_GetDate(\n        PKIX_ProcessingParams
      *params,\n        PKIX_PL_Date **pDate,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:757,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:758,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:760,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:762,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:765,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:765,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:772,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:775,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - params
    - date
    - plContext
    argTypes:
    - PKIX_ProcessingParams*
    - PKIX_PL_Date*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 751
    functionDepth: 1
    functionLinenumber: 751
    functionLinenumberEnd: 776
    functionName: PKIX_ProcessingParams_SetDate
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c
    functionUses: 3
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_InvalidateCache
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ProcessingParams_SetDate(\n        PKIX_ProcessingParams
      *params,\n        PKIX_PL_Date *date,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:788,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:791,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:793,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:797,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - params
    - pConstraints
    - plContext
    argTypes:
    - PKIX_ProcessingParams*
    - PKIX_CertSelector**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 782
    functionDepth: 1
    functionLinenumber: 782
    functionLinenumberEnd: 798
    functionName: PKIX_ProcessingParams_GetTargetCertConstraints
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c
    functionUses: 1
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ProcessingParams_GetTargetCertConstraints(\n        PKIX_ProcessingParams
      *params,\n        PKIX_CertSelector **pConstraints,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:811,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:814,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:816,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:818,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:821,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:821,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:827,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:830,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - params
    - constraints
    - plContext
    argTypes:
    - PKIX_ProcessingParams*
    - PKIX_CertSelector*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 804
    functionDepth: 1
    functionLinenumber: 804
    functionLinenumberEnd: 831
    functionName: PKIX_ProcessingParams_SetTargetCertConstraints
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c
    functionUses: 14
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_InvalidateCache
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ProcessingParams_SetTargetCertConstraints(\n        PKIX_ProcessingParams
      *params,\n        PKIX_CertSelector *constraints,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:844,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:847,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:850,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:850,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:853,1
    - Dst: PKIX_List_SetImmutable
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:853,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:856,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:856,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:861,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:866,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - params
    - pInitPolicies
    - plContext
    argTypes:
    - PKIX_ProcessingParams*
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 837
    functionDepth: 1
    functionLinenumber: 837
    functionLinenumberEnd: 867
    functionName: PKIX_ProcessingParams_GetInitialPolicies
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c
    functionUses: 1
    functionsReached:
    - PKIX_INCREF
    - PKIX_List_SetImmutable
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_Create
    - PKIX_PL_Object_InvalidateCache
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ProcessingParams_GetInitialPolicies(\n        PKIX_ProcessingParams
      *params,\n        PKIX_List **pInitPolicies, /* list of PKIX_PL_OID */\n        void
      *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:879,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:881,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:883,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:885,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:888,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:888,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:895,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:897,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - params
    - initPolicies
    - plContext
    argTypes:
    - PKIX_ProcessingParams*
    - PKIX_List*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 873
    functionDepth: 1
    functionLinenumber: 873
    functionLinenumberEnd: 898
    functionName: PKIX_ProcessingParams_SetInitialPolicies
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c
    functionUses: 3
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_InvalidateCache
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ProcessingParams_SetInitialPolicies(\n        PKIX_ProcessingParams
      *params,\n        PKIX_List *initPolicies, /* list of PKIX_PL_OID */\n        void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:910,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:913,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:917,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - params
    - pRejected
    - plContext
    argTypes:
    - PKIX_ProcessingParams*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 904
    functionDepth: 1
    functionLinenumber: 904
    functionLinenumberEnd: 918
    functionName: PKIX_ProcessingParams_GetPolicyQualifiersRejected
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c
    functionUses: 1
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ProcessingParams_GetPolicyQualifiersRejected(\n
      \       PKIX_ProcessingParams *params,\n        PKIX_Boolean *pRejected,\n        void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:930,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:933,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:937,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:937,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:943,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - params
    - rejected
    - plContext
    argTypes:
    - PKIX_ProcessingParams*
    - PKIX_Boolean
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 924
    functionDepth: 1
    functionLinenumber: 924
    functionLinenumberEnd: 944
    functionName: PKIX_ProcessingParams_SetPolicyQualifiersRejected
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c
    functionUses: 1
    functionsReached:
    - PKIX_RETURN
    - PKIX_CHECK
    - PKIX_PL_Object_InvalidateCache
    - PKIX_ENTER
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ProcessingParams_SetPolicyQualifiersRejected(\n
      \       PKIX_ProcessingParams *params,\n        PKIX_Boolean rejected,\n        void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:956,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:958,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:960,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:964,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - params
    - pCheckers
    - plContext
    argTypes:
    - PKIX_ProcessingParams*
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 965
      start: 950
    functionDepth: 1
    functionLinenumber: 950
    functionLinenumberEnd: 965
    functionName: PKIX_ProcessingParams_GetCertChainCheckers
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c
    functionUses: 1
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ProcessingParams_GetCertChainCheckers(\n        PKIX_ProcessingParams
      *params,\n        PKIX_List **pCheckers,  /* list of PKIX_CertChainChecker */\n
      \       void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:978,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:980,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:982,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:984,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:987,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:987,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:994,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:997,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - params
    - checkers
    - plContext
    argTypes:
    - PKIX_ProcessingParams*
    - PKIX_List*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 971
    functionDepth: 1
    functionLinenumber: 971
    functionLinenumberEnd: 998
    functionName: PKIX_ProcessingParams_SetCertChainCheckers
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c
    functionUses: 1
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_InvalidateCache
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ProcessingParams_SetCertChainCheckers(\n        PKIX_ProcessingParams
      *params,\n        PKIX_List *checkers,  /* list of PKIX_CertChainChecker */\n
      \       void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1012,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1014,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1018,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1018,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1024,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1024,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1028,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1028,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1037,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1040,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - params
    - checker
    - plContext
    argTypes:
    - PKIX_ProcessingParams*
    - PKIX_CertChainChecker*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 1004
    functionDepth: 1
    functionLinenumber: 1004
    functionLinenumberEnd: 1041
    functionName: PKIX_ProcessingParams_AddCertChainChecker
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c
    functionUses: 2
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_Create
    - PKIX_PL_Object_InvalidateCache
    - PKIX_List_AppendItem
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ProcessingParams_AddCertChainChecker(\n        PKIX_ProcessingParams
      *params,\n        PKIX_CertChainChecker *checker,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1054,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1056,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1058,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1063,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - params
    - pChecker
    - plContext
    argTypes:
    - PKIX_ProcessingParams*
    - PKIX_RevocationChecker**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1047
    functionDepth: 1
    functionLinenumber: 1047
    functionLinenumberEnd: 1064
    functionName: PKIX_ProcessingParams_GetRevocationChecker
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c
    functionUses: 0
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ProcessingParams_GetRevocationChecker(\n        PKIX_ProcessingParams
      *params,\n        PKIX_RevocationChecker **pChecker,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1077,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1079,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1081,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1082,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1085,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1085,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1090,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - params
    - checker
    - plContext
    argTypes:
    - PKIX_ProcessingParams*
    - PKIX_RevocationChecker*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1070
    functionDepth: 1
    functionLinenumber: 1070
    functionLinenumberEnd: 1091
    functionName: PKIX_ProcessingParams_SetRevocationChecker
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c
    functionUses: 0
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_InvalidateCache
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ProcessingParams_SetRevocationChecker(\n        PKIX_ProcessingParams
      *params,\n        PKIX_RevocationChecker *checker,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1103,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1105,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1108,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1108,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1112,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - params
    - pStores
    - plContext
    argTypes:
    - PKIX_ProcessingParams*
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1118
      start: 1097
    functionDepth: 1
    functionLinenumber: 1097
    functionLinenumberEnd: 1118
    functionName: PKIX_ProcessingParams_GetCertStores
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c
    functionUses: 1
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_Create
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ProcessingParams_GetCertStores(\n        PKIX_ProcessingParams
      *params,\n        PKIX_List **pStores,  /* list of PKIX_CertStore */\n        void
      *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1130,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1132,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1134,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1136,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1139,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1139,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1146,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - params
    - stores
    - plContext
    argTypes:
    - PKIX_ProcessingParams*
    - PKIX_List*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1124
    functionDepth: 1
    functionLinenumber: 1124
    functionLinenumberEnd: 1150
    functionName: PKIX_ProcessingParams_SetCertStores
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c
    functionUses: 9
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_InvalidateCache
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ProcessingParams_SetCertStores(\n        PKIX_ProcessingParams
      *params,\n        PKIX_List *stores,  /* list of PKIX_CertStore */\n        void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1164,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1165,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1167,1
    - Dst: PKIX_ProcessingParams_GetCertStores
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1167,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1171,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1171,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1175,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1175,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1181,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - params
    - store
    - plContext
    argTypes:
    - PKIX_ProcessingParams*
    - PKIX_CertStore*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1183
      start: 1156
    functionDepth: 2
    functionLinenumber: 1156
    functionLinenumberEnd: 1183
    functionName: PKIX_ProcessingParams_AddCertStore
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c
    functionUses: 5
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_InvalidateCache
    - PKIX_List_AppendItem
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_ProcessingParams_GetCertStores
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ProcessingParams_AddCertStore(\n        PKIX_ProcessingParams
      *params,\n        PKIX_CertStore *store,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1195,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1198,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1200,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1201,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1206,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1209,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - params
    - resourceLimits
    - plContext
    argTypes:
    - PKIX_ProcessingParams*
    - PKIX_ResourceLimits*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1210
      start: 1189
    functionDepth: 1
    functionLinenumber: 1189
    functionLinenumberEnd: 1210
    functionName: PKIX_ProcessingParams_SetResourceLimits
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c
    functionUses: 2
    functionsReached:
    - PKIX_INCREF
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ProcessingParams_SetResourceLimits(\n        PKIX_ProcessingParams
      *params,\n        PKIX_ResourceLimits *resourceLimits,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1222,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1225,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1227,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - params
    - pResourceLimits
    - plContext
    argTypes:
    - PKIX_ProcessingParams*
    - PKIX_ResourceLimits**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1232
      start: 1216
    functionDepth: 1
    functionLinenumber: 1216
    functionLinenumberEnd: 1232
    functionName: PKIX_ProcessingParams_GetResourceLimits
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c
    functionUses: 1
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ProcessingParams_GetResourceLimits(\n        PKIX_ProcessingParams
      *params,\n        PKIX_ResourceLimits **pResourceLimits,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1244,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1247,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - params
    - pInhibited
    - plContext
    argTypes:
    - PKIX_ProcessingParams*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1252
      start: 1238
    functionDepth: 1
    functionLinenumber: 1238
    functionLinenumberEnd: 1252
    functionName: PKIX_ProcessingParams_IsAnyPolicyInhibited
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ProcessingParams_IsAnyPolicyInhibited(\n        PKIX_ProcessingParams
      *params,\n        PKIX_Boolean *pInhibited,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1264,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1267,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1271,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1271,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - params
    - inhibited
    - plContext
    argTypes:
    - PKIX_ProcessingParams*
    - PKIX_Boolean
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1278
      start: 1258
    functionDepth: 1
    functionLinenumber: 1258
    functionLinenumberEnd: 1278
    functionName: PKIX_ProcessingParams_SetAnyPolicyInhibited
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c
    functionUses: 1
    functionsReached:
    - PKIX_RETURN
    - PKIX_CHECK
    - PKIX_PL_Object_InvalidateCache
    - PKIX_ENTER
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ProcessingParams_SetAnyPolicyInhibited(\n        PKIX_ProcessingParams
      *params,\n        PKIX_Boolean inhibited,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1290,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1293,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - params
    - pRequired
    - plContext
    argTypes:
    - PKIX_ProcessingParams*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1298
      start: 1284
    functionDepth: 1
    functionLinenumber: 1284
    functionLinenumberEnd: 1298
    functionName: PKIX_ProcessingParams_IsExplicitPolicyRequired
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ProcessingParams_IsExplicitPolicyRequired(\n        PKIX_ProcessingParams
      *params,\n        PKIX_Boolean *pRequired,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1310,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1313,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1317,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1317,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - params
    - required
    - plContext
    argTypes:
    - PKIX_ProcessingParams*
    - PKIX_Boolean
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1324
      start: 1304
    functionDepth: 1
    functionLinenumber: 1304
    functionLinenumberEnd: 1324
    functionName: PKIX_ProcessingParams_SetExplicitPolicyRequired
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c
    functionUses: 1
    functionsReached:
    - PKIX_RETURN
    - PKIX_CHECK
    - PKIX_PL_Object_InvalidateCache
    - PKIX_ENTER
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ProcessingParams_SetExplicitPolicyRequired(\n        PKIX_ProcessingParams
      *params,\n        PKIX_Boolean required,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1336,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1339,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - params
    - pInhibited
    - plContext
    argTypes:
    - PKIX_ProcessingParams*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1344
      start: 1330
    functionDepth: 1
    functionLinenumber: 1330
    functionLinenumberEnd: 1344
    functionName: PKIX_ProcessingParams_IsPolicyMappingInhibited
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ProcessingParams_IsPolicyMappingInhibited(\n        PKIX_ProcessingParams
      *params,\n        PKIX_Boolean *pInhibited,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1356,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1359,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1363,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1363,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - params
    - inhibited
    - plContext
    argTypes:
    - PKIX_ProcessingParams*
    - PKIX_Boolean
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1370
      start: 1350
    functionDepth: 1
    functionLinenumber: 1350
    functionLinenumberEnd: 1370
    functionName: PKIX_ProcessingParams_SetPolicyMappingInhibited
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c
    functionUses: 1
    functionsReached:
    - PKIX_RETURN
    - PKIX_CHECK
    - PKIX_PL_Object_InvalidateCache
    - PKIX_ENTER
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ProcessingParams_SetPolicyMappingInhibited(\n        PKIX_ProcessingParams
      *params,\n        PKIX_Boolean inhibited,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1382,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1384,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1386,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1387,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1392,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1395,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - params
    - hintCerts
    - plContext
    argTypes:
    - PKIX_ProcessingParams*
    - PKIX_List*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1396
      start: 1376
    functionDepth: 1
    functionLinenumber: 1376
    functionLinenumberEnd: 1396
    functionName: PKIX_ProcessingParams_SetHintCerts
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c
    functionUses: 3
    functionsReached:
    - PKIX_INCREF
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ProcessingParams_SetHintCerts(\n        PKIX_ProcessingParams
      *params,\n        PKIX_List *hintCerts,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1408,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1410,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1412,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c:1416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - params
    - pHintCerts
    - plContext
    argTypes:
    - PKIX_ProcessingParams*
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1417
      start: 1402
    functionDepth: 1
    functionLinenumber: 1402
    functionLinenumberEnd: 1417
    functionName: PKIX_ProcessingParams_GetHintCerts
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_procparams.c
    functionUses: 0
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ProcessingParams_GetHintCerts(\n        PKIX_ProcessingParams
      *params,\n        PKIX_List **pHintCerts,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:26,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:27,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:30,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:30,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:35,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:36,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:37,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:38,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 43
    functionName: pkix_TrustAnchor_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_TrustAnchor_Destroy(\n        PKIX_PL_Object *object,\n
      \       void *plContext)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:63,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:64,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:66,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:66,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:69,1
    - Dst: PKIX_PL_Object_GetType
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:69,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:87,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:87,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:94,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:94,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:103,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:103,1
    - Dst: PKIX_EQUALS
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:112,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:127,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 37
    argCount: 4
    argNames:
    - first
    - second
    - pResult
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 128
    functionName: pkix_TrustAnchor_Equals
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_PL_Object_Equals
    - PKIX_RETURN
    - PKIX_EQUALS
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - pkix_CheckType
    - PKIX_PL_Object_GetType
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_TrustAnchor_Equals(\n        PKIX_PL_Object *first,\n
      \       PKIX_PL_Object *second,\n        PKIX_Boolean *pResult,\n        void
      *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:148,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:149,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:151,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:151,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:158,1
    - Dst: PKIX_PL_Object_Hashcode
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:158,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:167,1
    - Dst: PKIX_PL_Object_Hashcode
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:167,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:173,1
    - Dst: PKIX_PL_Object_Hashcode
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:173,1
    - Dst: PKIX_HASHCODE
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:179,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 3
    argNames:
    - object
    - pHashcode
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 191
    functionName: pkix_TrustAnchor_Hashcode
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_HASHCODE
    - PKIX_PL_Object_Hashcode
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_TrustAnchor_Hashcode(\n        PKIX_PL_Object *object,\n
      \       PKIX_UInt32 *pHashcode,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:212,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:213,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:215,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:215,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:226,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:226,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:234,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:234,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:240,1
    - Dst: PKIX_PL_Sprintf
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:240,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:254,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:254,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:262,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:262,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:268,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:268,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:274,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:280,1
    - Dst: PKIX_PL_Sprintf
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:280,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:294,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:295,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:296,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:297,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:298,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 3
    argNames:
    - object
    - pString
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_String**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 301
    functionName: pkix_TrustAnchor_ToString
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_PL_String_Create
    - PKIX_RETURN
    - PKIX_PL_Object_ToString
    - PKIX_PL_Sprintf
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_TOSTRING
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_TrustAnchor_ToString(\n        PKIX_PL_Object *object,\n
      \       PKIX_PL_String **pString,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:321,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 336
    functionName: pkix_TrustAnchor_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      pkix_TrustAnchor_RegisterSelf(void *plContext)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:352,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:353,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:355,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:355,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:363,1
    - Dst: PKIX_PL_Cert_SetAsTrustAnchor
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:364,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:367,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:373,1
    - Dst: PKIX_PL_Cert_GetNameConstraints
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:373,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:383,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 3
    argNames:
    - cert
    - pAnchor
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_TrustAnchor**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 344
    functionDepth: 1
    functionLinenumber: 344
    functionLinenumberEnd: 387
    functionName: PKIX_TrustAnchor_CreateWithCert
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c
    functionUses: 11
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_Alloc
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_PL_Cert_SetAsTrustAnchor
    - PKIX_PL_Cert_GetNameConstraints
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_TrustAnchor_CreateWithCert(\n        PKIX_PL_Cert
      *cert,\n        PKIX_TrustAnchor **pAnchor,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:403,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:411,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:414,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:416,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:416,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:426,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:429,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:432,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:439,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 5
    argNames:
    - name
    - pubKey
    - nameConstraints
    - pAnchor
    - plContext
    argTypes:
    - PKIX_PL_X500Name*
    - PKIX_PL_PublicKey*
    - PKIX_PL_CertNameConstraints*
    - PKIX_TrustAnchor**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 442
    functionName: PKIX_TrustAnchor_CreateWithNameKeyPair
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c
    functionUses: 1
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_Alloc
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_DECREF
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_TrustAnchor_CreateWithNameKeyPair(\n        PKIX_PL_X500Name
      *name,\n        PKIX_PL_PublicKey *pubKey,\n        PKIX_PL_CertNameConstraints
      *nameConstraints,\n        PKIX_TrustAnchor **pAnchor,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:453,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:454,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:456,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - anchor
    - pCert
    - plContext
    argTypes:
    - PKIX_TrustAnchor*
    - PKIX_PL_Cert**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 463
    functionName: PKIX_TrustAnchor_GetTrustedCert
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c
    functionUses: 2
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_TrustAnchor_GetTrustedCert(\n        PKIX_TrustAnchor
      *anchor,\n        PKIX_PL_Cert **pCert,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:474,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:475,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:477,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - anchor
    - pCAName
    - plContext
    argTypes:
    - PKIX_TrustAnchor*
    - PKIX_PL_X500Name**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 484
    functionName: PKIX_TrustAnchor_GetCAName
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c
    functionUses: 1
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_TrustAnchor_GetCAName(\n        PKIX_TrustAnchor
      *anchor,\n        PKIX_PL_X500Name **pCAName,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:495,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:496,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:498,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - anchor
    - pPubKey
    - plContext
    argTypes:
    - PKIX_TrustAnchor*
    - PKIX_PL_PublicKey**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 489
    functionDepth: 1
    functionLinenumber: 489
    functionLinenumberEnd: 504
    functionName: PKIX_TrustAnchor_GetCAPublicKey
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c
    functionUses: 1
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_TrustAnchor_GetCAPublicKey(\n        PKIX_TrustAnchor
      *anchor,\n        PKIX_PL_PublicKey **pPubKey,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:516,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:517,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:519,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c:524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - anchor
    - pNameConstraints
    - plContext
    argTypes:
    - PKIX_TrustAnchor*
    - PKIX_PL_CertNameConstraints**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 510
    functionDepth: 1
    functionLinenumber: 510
    functionLinenumberEnd: 525
    functionName: PKIX_TrustAnchor_GetNameConstraints
    functionSourceFile: /src/nss/lib/libpkix/pkix/params/pkix_trustanchor.c
    functionUses: 1
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_TrustAnchor_GetNameConstraints(\n        PKIX_TrustAnchor
      *anchor,\n        PKIX_PL_CertNameConstraints **pNameConstraints,\n        void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:26,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:27,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:30,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:30,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:36,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:37,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:38,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:39,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:40,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:41,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:42,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:43,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:44,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:45,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:46,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:47,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:48,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:49,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:50,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 55
    functionName: pkix_ComCertSelParams_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_ComCertSelParams_Destroy(\n        PKIX_PL_Object
      *object,\n        void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:70,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:71,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:73,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:73,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:79,1
    - Dst: PKIX_ComCertSelParams_Create
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:79,1
    - Dst: PKIX_DUPLICATE
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:85,1
    - Dst: PKIX_DUPLICATE
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:88,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:92,1
    - Dst: PKIX_PL_Object_Duplicate
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:92,1
    - Dst: PKIX_DUPLICATE
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:99,1
    - Dst: PKIX_DUPLICATE
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:105,1
    - Dst: PKIX_DUPLICATE
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:111,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:118,1
    - Dst: PKIX_PL_Object_Duplicate
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:118,1
    - Dst: PKIX_DUPLICATE
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:127,1
    - Dst: PKIX_DUPLICATE
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:132,1
    - Dst: PKIX_DUPLICATE
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:137,1
    - Dst: PKIX_DUPLICATE
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:142,1
    - Dst: PKIX_DUPLICATE
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:147,1
    - Dst: PKIX_DUPLICATE
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:152,1
    - Dst: PKIX_DUPLICATE
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:157,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:169,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:172,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 35
    argCount: 3
    argNames:
    - object
    - pNewObject
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 173
    functionName: pkix_ComCertSelParams_Duplicate
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_Duplicate
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_DUPLICATE
    - PKIX_ComCertSelParams_Create
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_ComCertSelParams_Duplicate(\n        PKIX_PL_Object
      *object,\n        PKIX_PL_Object **pNewObject,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:193,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 201
    functionName: pkix_ComCertSelParams_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      pkix_ComCertSelParams_RegisterSelf(void *plContext)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:216,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:217,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:219,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:219,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 2
    argNames:
    - pParams
    - plContext
    argTypes:
    - PKIX_ComCertSelParams**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 256
    functionName: PKIX_ComCertSelParams_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c
    functionUses: 42
    functionsReached:
    - PKIX_RETURN
    - PKIX_CHECK
    - PKIX_PL_Object_Alloc
    - PKIX_ENTER
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ComCertSelParams_Create(\n        PKIX_ComCertSelParams
      **pParams,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:267,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:268,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:270,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - params
    - pSubject
    - plContext
    argTypes:
    - PKIX_ComCertSelParams*
    - PKIX_PL_X500Name**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 276
    functionName: PKIX_ComCertSelParams_GetSubject
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c
    functionUses: 2
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ComCertSelParams_GetSubject(\n        PKIX_ComCertSelParams
      *params,\n        PKIX_PL_X500Name **pSubject,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:287,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:288,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:290,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:292,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:296,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:296,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - params
    - subject
    - plContext
    argTypes:
    - PKIX_ComCertSelParams*
    - PKIX_PL_X500Name*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 303
    functionName: PKIX_ComCertSelParams_SetSubject
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c
    functionUses: 4
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_InvalidateCache
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ComCertSelParams_SetSubject(\n        PKIX_ComCertSelParams
      *params,\n        PKIX_PL_X500Name *subject,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:316,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:318,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - params
    - pMinPathLength
    - plContext
    argTypes:
    - PKIX_ComCertSelParams*
    - PKIX_Int32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 323
    functionName: PKIX_ComCertSelParams_GetBasicConstraints
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c
    functionUses: 2
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ComCertSelParams_GetBasicConstraints(\n        PKIX_ComCertSelParams
      *params,\n        PKIX_Int32 *pMinPathLength,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:336,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:338,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:342,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:342,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - params
    - minPathLength
    - plContext
    argTypes:
    - PKIX_ComCertSelParams*
    - PKIX_Int32
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 349
    functionName: PKIX_ComCertSelParams_SetBasicConstraints
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c
    functionUses: 5
    functionsReached:
    - PKIX_RETURN
    - PKIX_CHECK
    - PKIX_PL_Object_InvalidateCache
    - PKIX_ENTER
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ComCertSelParams_SetBasicConstraints(\n        PKIX_ComCertSelParams
      *params,\n        PKIX_Int32 minPathLength,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:361,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:362,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:364,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - params
    - pPolicy
    - plContext
    argTypes:
    - PKIX_ComCertSelParams*
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 369
    functionName: PKIX_ComCertSelParams_GetPolicy
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c
    functionUses: 2
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ComCertSelParams_GetPolicy(\n        PKIX_ComCertSelParams
      *params,\n        PKIX_List **pPolicy, /* List of PKIX_PL_OID */\n        void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:380,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:381,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:383,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:384,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:387,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:387,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - params
    - policy
    - plContext
    argTypes:
    - PKIX_ComCertSelParams*
    - PKIX_List*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 393
    functionName: PKIX_ComCertSelParams_SetPolicy
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c
    functionUses: 2
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_InvalidateCache
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ComCertSelParams_SetPolicy(\n        PKIX_ComCertSelParams
      *params,\n        PKIX_List *policy, /* List of PKIX_PL_OID */\n        void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:405,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:406,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:408,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - params
    - pCert
    - plContext
    argTypes:
    - PKIX_ComCertSelParams*
    - PKIX_PL_Cert**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 413
    functionName: PKIX_ComCertSelParams_GetCertificate
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c
    functionUses: 2
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ComCertSelParams_GetCertificate(\n        PKIX_ComCertSelParams
      *params,\n        PKIX_PL_Cert **pCert,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:425,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:426,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:428,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:429,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:432,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:432,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - params
    - cert
    - plContext
    argTypes:
    - PKIX_ComCertSelParams*
    - PKIX_PL_Cert*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 438
    functionName: PKIX_ComCertSelParams_SetCertificate
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c
    functionUses: 10
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_InvalidateCache
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ComCertSelParams_SetCertificate(\n        PKIX_ComCertSelParams
      *params,\n        PKIX_PL_Cert *cert,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:450,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:453,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:455,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - params
    - pDate
    - plContext
    argTypes:
    - PKIX_ComCertSelParams*
    - PKIX_PL_Date**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 460
    functionName: PKIX_ComCertSelParams_GetCertificateValid
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c
    functionUses: 2
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ComCertSelParams_GetCertificateValid(\n        PKIX_ComCertSelParams
      *params,\n        PKIX_PL_Date **pDate,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:472,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:474,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:476,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:477,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:480,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:480,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - params
    - date
    - plContext
    argTypes:
    - PKIX_ComCertSelParams*
    - PKIX_PL_Date*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 466
    functionDepth: 1
    functionLinenumber: 466
    functionLinenumberEnd: 486
    functionName: PKIX_ComCertSelParams_SetCertificateValid
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c
    functionUses: 4
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_InvalidateCache
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ComCertSelParams_SetCertificateValid(\n        PKIX_ComCertSelParams
      *params,\n        PKIX_PL_Date *date,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:498,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:500,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:502,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - params
    - pNameConstraints
    - plContext
    argTypes:
    - PKIX_ComCertSelParams*
    - PKIX_PL_CertNameConstraints**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 492
    functionDepth: 1
    functionLinenumber: 492
    functionLinenumberEnd: 508
    functionName: PKIX_ComCertSelParams_GetNameConstraints
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c
    functionUses: 1
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ComCertSelParams_GetNameConstraints(\n        PKIX_ComCertSelParams
      *params,\n        PKIX_PL_CertNameConstraints **pNameConstraints,\n        void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:520,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:522,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:524,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:525,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:528,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:528,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - params
    - nameConstraints
    - plContext
    argTypes:
    - PKIX_ComCertSelParams*
    - PKIX_PL_CertNameConstraints*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 514
    functionDepth: 1
    functionLinenumber: 514
    functionLinenumberEnd: 535
    functionName: PKIX_ComCertSelParams_SetNameConstraints
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c
    functionUses: 2
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_InvalidateCache
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ComCertSelParams_SetNameConstraints(\n        PKIX_ComCertSelParams
      *params,\n        PKIX_PL_CertNameConstraints *nameConstraints,\n        void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:546,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:547,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:549,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - params
    - pNames
    - plContext
    argTypes:
    - PKIX_ComCertSelParams*
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 540
    functionDepth: 1
    functionLinenumber: 540
    functionLinenumberEnd: 555
    functionName: PKIX_ComCertSelParams_GetPathToNames
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c
    functionUses: 1
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ComCertSelParams_GetPathToNames(\n        PKIX_ComCertSelParams
      *params,\n        PKIX_List **pNames,  /* list of PKIX_PL_GeneralName */\n        void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:567,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:568,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:570,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:571,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:575,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:575,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - params
    - names
    - plContext
    argTypes:
    - PKIX_ComCertSelParams*
    - PKIX_List*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 561
    functionDepth: 1
    functionLinenumber: 561
    functionLinenumberEnd: 582
    functionName: PKIX_ComCertSelParams_SetPathToNames
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c
    functionUses: 2
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_InvalidateCache
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ComCertSelParams_SetPathToNames(\n        PKIX_ComCertSelParams
      *params,\n        PKIX_List *names,  /* list of PKIX_PL_GeneralName */\n        void
      *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:596,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:597,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:605,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:605,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:611,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:611,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:615,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:615,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:621,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - params
    - name
    - plContext
    argTypes:
    - PKIX_ComCertSelParams*
    - PKIX_PL_GeneralName*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 588
    functionDepth: 1
    functionLinenumber: 588
    functionLinenumberEnd: 622
    functionName: PKIX_ComCertSelParams_AddPathToName
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c
    functionUses: 2
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_Create
    - PKIX_PL_Object_InvalidateCache
    - PKIX_List_AppendItem
    - PKIX_ENTER
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ComCertSelParams_AddPathToName(\n        PKIX_ComCertSelParams
      *params,\n        PKIX_PL_GeneralName *name,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:634,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:635,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:637,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - params
    - pNames
    - plContext
    argTypes:
    - PKIX_ComCertSelParams*
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 628
    functionDepth: 1
    functionLinenumber: 628
    functionLinenumberEnd: 643
    functionName: PKIX_ComCertSelParams_GetSubjAltNames
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c
    functionUses: 1
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ComCertSelParams_GetSubjAltNames(\n        PKIX_ComCertSelParams
      *params,\n        PKIX_List **pNames, /* list of PKIX_PL_GeneralName */\n        void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:655,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:656,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:658,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:659,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - params
    - names
    - plContext
    argTypes:
    - PKIX_ComCertSelParams*
    - PKIX_List*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 649
    functionDepth: 1
    functionLinenumber: 649
    functionLinenumberEnd: 665
    functionName: PKIX_ComCertSelParams_SetSubjAltNames
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c
    functionUses: 2
    functionsReached:
    - PKIX_INCREF
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ComCertSelParams_SetSubjAltNames(\n        PKIX_ComCertSelParams
      *params,\n        PKIX_List *names,  /* list of PKIX_PL_GeneralName */\n        void
      *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:679,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:680,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:683,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:683,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:688,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:688,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:694,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - params
    - name
    - plContext
    argTypes:
    - PKIX_ComCertSelParams*
    - PKIX_PL_GeneralName*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 671
    functionDepth: 1
    functionLinenumber: 671
    functionLinenumberEnd: 695
    functionName: PKIX_ComCertSelParams_AddSubjAltName
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c
    functionUses: 3
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_Create
    - PKIX_List_AppendItem
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ComCertSelParams_AddSubjAltName(\n        PKIX_ComCertSelParams
      *params,\n        PKIX_PL_GeneralName *name,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:707,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:709,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - params
    - pMatch
    - plContext
    argTypes:
    - PKIX_ComCertSelParams*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 701
    functionDepth: 1
    functionLinenumber: 701
    functionLinenumberEnd: 714
    functionName: PKIX_ComCertSelParams_GetMatchAllSubjAltNames
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c
    functionUses: 1
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ComCertSelParams_GetMatchAllSubjAltNames(\n        PKIX_ComCertSelParams
      *params,\n        PKIX_Boolean *pMatch,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:726,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:728,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:732,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - params
    - match
    - plContext
    argTypes:
    - PKIX_ComCertSelParams*
    - PKIX_Boolean
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 720
    functionDepth: 1
    functionLinenumber: 720
    functionLinenumberEnd: 733
    functionName: PKIX_ComCertSelParams_SetMatchAllSubjAltNames
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c
    functionUses: 3
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ComCertSelParams_SetMatchAllSubjAltNames(\n        PKIX_ComCertSelParams
      *params,\n        PKIX_Boolean match,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:745,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:747,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:749,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - params
    - pExtKeyUsage
    - plContext
    argTypes:
    - PKIX_ComCertSelParams*
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 739
    functionDepth: 1
    functionLinenumber: 739
    functionLinenumberEnd: 754
    functionName: PKIX_ComCertSelParams_GetExtendedKeyUsage
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c
    functionUses: 1
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ComCertSelParams_GetExtendedKeyUsage(\n        PKIX_ComCertSelParams
      *params,\n        PKIX_List **pExtKeyUsage, /* list of PKIX_PL_OID */\n        void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:766,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:768,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:770,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:771,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - params
    - extKeyUsage
    - plContext
    argTypes:
    - PKIX_ComCertSelParams*
    - PKIX_List*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 760
    functionDepth: 1
    functionLinenumber: 760
    functionLinenumberEnd: 777
    functionName: PKIX_ComCertSelParams_SetExtendedKeyUsage
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c
    functionUses: 3
    functionsReached:
    - PKIX_INCREF
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ComCertSelParams_SetExtendedKeyUsage(\n        PKIX_ComCertSelParams
      *params,\n        PKIX_List *extKeyUsage,  /* list of PKIX_PL_OID */\n        void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:789,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:791,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:795,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - params
    - pKeyUsage
    - plContext
    argTypes:
    - PKIX_ComCertSelParams*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 783
    functionDepth: 1
    functionLinenumber: 783
    functionLinenumberEnd: 796
    functionName: PKIX_ComCertSelParams_GetKeyUsage
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c
    functionUses: 1
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ComCertSelParams_GetKeyUsage(\n        PKIX_ComCertSelParams
      *params,\n        PKIX_UInt32 *pKeyUsage,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:808,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:810,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:814,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - params
    - keyUsage
    - plContext
    argTypes:
    - PKIX_ComCertSelParams*
    - PKIX_UInt32
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 802
    functionDepth: 1
    functionLinenumber: 802
    functionLinenumberEnd: 815
    functionName: PKIX_ComCertSelParams_SetKeyUsage
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c
    functionUses: 2
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ComCertSelParams_SetKeyUsage(\n        PKIX_ComCertSelParams
      *params,\n        PKIX_UInt32 keyUsage,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:827,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:828,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:830,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:834,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - params
    - pIssuer
    - plContext
    argTypes:
    - PKIX_ComCertSelParams*
    - PKIX_PL_X500Name**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 821
    functionDepth: 1
    functionLinenumber: 821
    functionLinenumberEnd: 835
    functionName: PKIX_ComCertSelParams_GetIssuer
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c
    functionUses: 1
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ComCertSelParams_GetIssuer(\n        PKIX_ComCertSelParams
      *params,\n        PKIX_PL_X500Name **pIssuer,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:847,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:848,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:850,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:851,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:854,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:854,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:860,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - params
    - issuer
    - plContext
    argTypes:
    - PKIX_ComCertSelParams*
    - PKIX_PL_X500Name*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 841
    functionDepth: 1
    functionLinenumber: 841
    functionLinenumberEnd: 861
    functionName: PKIX_ComCertSelParams_SetIssuer
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c
    functionUses: 2
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_InvalidateCache
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ComCertSelParams_SetIssuer(\n        PKIX_ComCertSelParams
      *params,\n        PKIX_PL_X500Name *issuer,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:873,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:874,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:876,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:880,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - params
    - pSerialNumber
    - plContext
    argTypes:
    - PKIX_ComCertSelParams*
    - PKIX_PL_BigInt**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 867
    functionDepth: 1
    functionLinenumber: 867
    functionLinenumberEnd: 881
    functionName: PKIX_ComCertSelParams_GetSerialNumber
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c
    functionUses: 1
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ComCertSelParams_GetSerialNumber(\n        PKIX_ComCertSelParams
      *params,\n        PKIX_PL_BigInt **pSerialNumber,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:893,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:894,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:896,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:897,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:900,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:900,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:906,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - params
    - serialNumber
    - plContext
    argTypes:
    - PKIX_ComCertSelParams*
    - PKIX_PL_BigInt*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 887
    functionDepth: 1
    functionLinenumber: 887
    functionLinenumberEnd: 907
    functionName: PKIX_ComCertSelParams_SetSerialNumber
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c
    functionUses: 2
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_InvalidateCache
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ComCertSelParams_SetSerialNumber(\n        PKIX_ComCertSelParams
      *params,\n        PKIX_PL_BigInt *serialNumber,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:919,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:920,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:924,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - params
    - pVersion
    - plContext
    argTypes:
    - PKIX_ComCertSelParams*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 913
    functionDepth: 1
    functionLinenumber: 913
    functionLinenumberEnd: 925
    functionName: PKIX_ComCertSelParams_GetVersion
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c
    functionUses: 1
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ComCertSelParams_GetVersion(\n        PKIX_ComCertSelParams
      *params,\n        PKIX_UInt32 *pVersion,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:937,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:938,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:942,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:942,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:948,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - params
    - version
    - plContext
    argTypes:
    - PKIX_ComCertSelParams*
    - PKIX_Int32
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 931
    functionDepth: 1
    functionLinenumber: 931
    functionLinenumberEnd: 949
    functionName: PKIX_ComCertSelParams_SetVersion
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c
    functionUses: 2
    functionsReached:
    - PKIX_RETURN
    - PKIX_CHECK
    - PKIX_PL_Object_InvalidateCache
    - PKIX_ENTER
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ComCertSelParams_SetVersion(\n        PKIX_ComCertSelParams
      *params,\n        PKIX_Int32 version,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:961,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:963,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:965,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:970,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - params
    - pSubjKeyId
    - plContext
    argTypes:
    - PKIX_ComCertSelParams*
    - PKIX_PL_ByteArray**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 955
    functionDepth: 1
    functionLinenumber: 955
    functionLinenumberEnd: 971
    functionName: PKIX_ComCertSelParams_GetSubjKeyIdentifier
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c
    functionUses: 1
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ComCertSelParams_GetSubjKeyIdentifier(\n        PKIX_ComCertSelParams
      *params,\n        PKIX_PL_ByteArray **pSubjKeyId,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:983,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:985,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:987,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:988,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:992,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:992,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:998,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - params
    - subjKeyId
    - plContext
    argTypes:
    - PKIX_ComCertSelParams*
    - PKIX_PL_ByteArray*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 999
      start: 977
    functionDepth: 1
    functionLinenumber: 977
    functionLinenumberEnd: 999
    functionName: PKIX_ComCertSelParams_SetSubjKeyIdentifier
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c
    functionUses: 2
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_InvalidateCache
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ComCertSelParams_SetSubjKeyIdentifier(\n        PKIX_ComCertSelParams
      *params,\n        PKIX_PL_ByteArray *subjKeyId,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:1011,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:1013,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:1015,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:1020,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - params
    - pAuthKeyId
    - plContext
    argTypes:
    - PKIX_ComCertSelParams*
    - PKIX_PL_ByteArray**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 1005
    functionDepth: 1
    functionLinenumber: 1005
    functionLinenumberEnd: 1021
    functionName: PKIX_ComCertSelParams_GetAuthorityKeyIdentifier
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c
    functionUses: 1
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ComCertSelParams_GetAuthorityKeyIdentifier(\n        PKIX_ComCertSelParams
      *params,\n        PKIX_PL_ByteArray **pAuthKeyId,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:1033,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:1035,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:1037,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:1038,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:1042,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:1042,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:1048,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - params
    - authKeyId
    - plContext
    argTypes:
    - PKIX_ComCertSelParams*
    - PKIX_PL_ByteArray*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1027
    functionDepth: 1
    functionLinenumber: 1027
    functionLinenumberEnd: 1049
    functionName: PKIX_ComCertSelParams_SetAuthorityKeyIdentifier
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c
    functionUses: 2
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_InvalidateCache
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ComCertSelParams_SetAuthorityKeyIdentifier(\n        PKIX_ComCertSelParams
      *params,\n        PKIX_PL_ByteArray *authKeyId,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:1061,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:1062,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:1064,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:1069,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - params
    - pSubjPubKey
    - plContext
    argTypes:
    - PKIX_ComCertSelParams*
    - PKIX_PL_PublicKey**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1070
      start: 1055
    functionDepth: 1
    functionLinenumber: 1055
    functionLinenumberEnd: 1070
    functionName: PKIX_ComCertSelParams_GetSubjPubKey
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c
    functionUses: 1
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ComCertSelParams_GetSubjPubKey(\n        PKIX_ComCertSelParams
      *params,\n        PKIX_PL_PublicKey **pSubjPubKey,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:1082,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:1084,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:1086,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:1087,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:1091,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:1091,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:1097,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - params
    - subjPubKey
    - plContext
    argTypes:
    - PKIX_ComCertSelParams*
    - PKIX_PL_PublicKey*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1098
      start: 1076
    functionDepth: 1
    functionLinenumber: 1076
    functionLinenumberEnd: 1098
    functionName: PKIX_ComCertSelParams_SetSubjPubKey
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c
    functionUses: 2
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_InvalidateCache
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ComCertSelParams_SetSubjPubKey(\n        PKIX_ComCertSelParams
      *params,\n        PKIX_PL_PublicKey *subjPubKey,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:1110,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:1111,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:1113,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:1118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - params
    - pAlgId
    - plContext
    argTypes:
    - PKIX_ComCertSelParams*
    - PKIX_PL_OID**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1119
      start: 1104
    functionDepth: 1
    functionLinenumber: 1104
    functionLinenumberEnd: 1119
    functionName: PKIX_ComCertSelParams_GetSubjPKAlgId
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c
    functionUses: 1
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ComCertSelParams_GetSubjPKAlgId(\n        PKIX_ComCertSelParams
      *params,\n        PKIX_PL_OID **pAlgId,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:1131,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:1132,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:1134,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:1135,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:1139,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:1139,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:1145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - params
    - algId
    - plContext
    argTypes:
    - PKIX_ComCertSelParams*
    - PKIX_PL_OID*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1125
    functionDepth: 1
    functionLinenumber: 1125
    functionLinenumberEnd: 1146
    functionName: PKIX_ComCertSelParams_SetSubjPKAlgId
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c
    functionUses: 2
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_InvalidateCache
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ComCertSelParams_SetSubjPKAlgId(\n        PKIX_ComCertSelParams
      *params,\n        PKIX_PL_OID *algId,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:1158,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:1159,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:1163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - params
    - pLeafFlag
    - plContext
    argTypes:
    - PKIX_ComCertSelParams*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1164
      start: 1152
    functionDepth: 1
    functionLinenumber: 1152
    functionLinenumberEnd: 1164
    functionName: PKIX_ComCertSelParams_GetLeafCertFlag
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ComCertSelParams_GetLeafCertFlag(\n        PKIX_ComCertSelParams
      *params,\n        PKIX_Boolean *pLeafFlag,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:1176,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:1177,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:1181,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:1181,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c:1187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - params
    - leafFlag
    - plContext
    argTypes:
    - PKIX_ComCertSelParams*
    - PKIX_Boolean
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1188
      start: 1170
    functionDepth: 1
    functionLinenumber: 1170
    functionLinenumberEnd: 1188
    functionName: PKIX_ComCertSelParams_SetLeafCertFlag
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_comcertselparams.c
    functionUses: 0
    functionsReached:
    - PKIX_RETURN
    - PKIX_CHECK
    - PKIX_PL_Object_InvalidateCache
    - PKIX_ENTER
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ComCertSelParams_SetLeafCertFlag(\n        PKIX_ComCertSelParams
      *params,\n        PKIX_Boolean leafFlag,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:26,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:27,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:30,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:30,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:34,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:35,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 40
    functionName: pkix_CertSelector_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_CertSelector_Destroy(\n        PKIX_PL_Object *object,\n
      \       void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:55,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:56,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:58,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:58,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:63,1
    - Dst: PKIX_CertSelector_Create
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:63,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:70,1
    - Dst: PKIX_PL_Object_Duplicate
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:70,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:81,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - object
    - pNewObject
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 85
    functionName: pkix_CertSelector_Duplicate
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_Duplicate
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_CertSelector_Create
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_CertSelector_Duplicate(\n        PKIX_PL_Object
      *object,\n        PKIX_PL_Object **pNewObject,\n        void *plContext)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:143,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:144,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:147,1
    - Dst: PKIX_ComCertSelParams_GetBasicConstraints
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:147,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:156,1
    - Dst: PKIX_PL_Cert_GetBasicConstraints
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:156,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:161,1
    - Dst: PKIX_PL_BasicConstraints_GetCAFlag
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:161,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:165,1
    - Dst: PKIX_PL_BasicConstraints_GetPathLenConstraint
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:165,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:177,1
    - Dst: PKIX_CERTSELECTOR_DEBUG
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:180,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:183,1
    - Dst: PKIX_CERTSELECTOR_DEBUG
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:190,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:193,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:199,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:200,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 4
    argNames:
    - params
    - cert
    - pResult
    - plContext
    argTypes:
    - PKIX_ComCertSelParams*
    - PKIX_PL_Cert*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 201
    functionName: pkix_CertSelector_Match_BasicConstraint
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c
    functionUses: 0
    functionsReached:
    - PKIX_PL_BasicConstraints_GetCAFlag
    - PKIX_CHECK
    - PKIX_PL_BasicConstraints_GetPathLenConstraint
    - PKIX_RETURN
    - PKIX_PL_Cert_GetBasicConstraints
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_CERTSELECTOR_DEBUG
    - PKIX_DECREF
    - PKIX_ComCertSelParams_GetBasicConstraints
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_CertSelector_Match_BasicConstraint(\n        PKIX_ComCertSelParams
      *params,\n        PKIX_PL_Cert *cert,\n        PKIX_Boolean *pResult,\n        void
      *plContext)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:249,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:250,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:252,1
    - Dst: PKIX_ComCertSelParams_GetPolicy
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:252,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:258,1
    - Dst: PKIX_PL_Cert_GetPolicyInformation
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:258,1
    - Dst: PKIX_CERTSELECTOR_DEBUG
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:264,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:266,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:269,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:269,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:275,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:275,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:283,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:283,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:289,1
    - Dst: PKIX_PL_CertPolicyInfo_GetPolicyId
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:289,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:293,1
    - Dst: pkix_List_Contains
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:293,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:299,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:300,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:304,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:311,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:312,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:313,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:314,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:316,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 4
    argNames:
    - params
    - cert
    - pResult
    - plContext
    argTypes:
    - PKIX_ComCertSelParams*
    - PKIX_PL_Cert*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 233
    functionDepth: 2
    functionLinenumber: 233
    functionLinenumberEnd: 318
    functionName: pkix_CertSelector_Match_Policies
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_GetLength
    - PKIX_PL_CertPolicyInfo_GetPolicyId
    - PKIX_PL_Cert_GetPolicyInformation
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_CERTSELECTOR_DEBUG
    - PKIX_ComCertSelParams_GetPolicy
    - PKIX_DECREF
    - pkix_List_Contains
    - PKIX_ERROR
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_CertSelector_Match_Policies(\n        PKIX_ComCertSelParams
      *params,\n        PKIX_PL_Cert *cert,\n        PKIX_Boolean *pResult,\n        void
      *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:359,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:360,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:362,1
    - Dst: PKIX_ComCertSelParams_GetCertificateValid
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:362,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:368,1
    - Dst: PKIX_PL_Cert_CheckValidity
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:368,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:377,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:379,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - params
    - cert
    - pResult
    - plContext
    argTypes:
    - PKIX_ComCertSelParams*
    - PKIX_PL_Cert*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 350
    functionDepth: 2
    functionLinenumber: 350
    functionLinenumberEnd: 380
    functionName: pkix_CertSelector_Match_CertificateValid
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_ComCertSelParams_GetCertificateValid
    - PKIX_NULLCHECK_THREE
    - PKIX_DECREF
    - PKIX_PL_Cert_CheckValidity
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_CertSelector_Match_CertificateValid(\n        PKIX_ComCertSelParams
      *params,\n        PKIX_PL_Cert *cert,\n        PKIX_Boolean *pResult,\n        void
      *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:420,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:421,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:423,1
    - Dst: PKIX_ComCertSelParams_GetNameConstraints
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:423,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:433,1
    - Dst: PKIX_PL_Cert_CheckNameConstraints
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:433,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:443,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:444,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - params
    - cert
    - pResult
    - plContext
    argTypes:
    - PKIX_ComCertSelParams*
    - PKIX_PL_Cert*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 411
    functionDepth: 2
    functionLinenumber: 411
    functionLinenumberEnd: 445
    functionName: pkix_CertSelector_Match_NameConstraints
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Cert_CheckNameConstraints
    - PKIX_ComCertSelParams_GetNameConstraints
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_DECREF
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_CertSelector_Match_NameConstraints(\n        PKIX_ComCertSelParams
      *params,\n        PKIX_PL_Cert *cert,\n        PKIX_Boolean *pResult,\n        void
      *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:487,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:488,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:490,1
    - Dst: PKIX_ComCertSelParams_GetPathToNames
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:490,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:496,1
    - Dst: PKIX_PL_Cert_GetNameConstraints
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:496,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:502,1
    - Dst: PKIX_PL_CertNameConstraints_CheckNamesInNameSpace
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:502,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:508,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:516,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:517,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:519,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 4
    argNames:
    - params
    - cert
    - pResult
    - plContext
    argTypes:
    - PKIX_ComCertSelParams*
    - PKIX_PL_Cert*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 476
    functionDepth: 2
    functionLinenumber: 476
    functionLinenumberEnd: 520
    functionName: pkix_CertSelector_Match_PathToNames
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c
    functionUses: 0
    functionsReached:
    - PKIX_ComCertSelParams_GetPathToNames
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_CertNameConstraints_CheckNamesInNameSpace
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_DECREF
    - PKIX_PL_Cert_GetNameConstraints
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_CertSelector_Match_PathToNames(\n        PKIX_ComCertSelParams
      *params,\n        PKIX_PL_Cert *cert,\n        PKIX_Boolean *pResult,\n        void
      *plContext)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:565,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:566,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:568,1
    - Dst: PKIX_ComCertSelParams_GetMatchAllSubjAltNames
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:568,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:572,1
    - Dst: PKIX_ComCertSelParams_GetSubjAltNames
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:572,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:578,1
    - Dst: PKIX_PL_Cert_GetSubjectAltNames
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:578,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:584,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:587,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:587,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:593,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:593,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:600,1
    - Dst: pkix_List_Contains
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:600,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:607,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:626,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:632,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:633,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:634,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:636,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 4
    argNames:
    - params
    - cert
    - pResult
    - plContext
    argTypes:
    - PKIX_ComCertSelParams*
    - PKIX_PL_Cert*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 550
    functionDepth: 2
    functionLinenumber: 550
    functionLinenumberEnd: 637
    functionName: pkix_CertSelector_Match_SubjAltNames
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c
    functionUses: 0
    functionsReached:
    - PKIX_ComCertSelParams_GetMatchAllSubjAltNames
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_GetLength
    - PKIX_PL_Cert_GetSubjectAltNames
    - PKIX_ENTER
    - PKIX_ComCertSelParams_GetSubjAltNames
    - PKIX_NULLCHECK_THREE
    - PKIX_DECREF
    - pkix_List_Contains
    - PKIX_ERROR
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_CertSelector_Match_SubjAltNames(\n        PKIX_ComCertSelParams
      *params,\n        PKIX_PL_Cert *cert,\n        PKIX_Boolean *pResult,\n        void
      *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:681,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:682,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:684,1
    - Dst: PKIX_ComCertSelParams_GetExtendedKeyUsage
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:684,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:692,1
    - Dst: PKIX_PL_Cert_GetExtendedKeyUsage
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:692,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:698,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:698,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:704,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:704,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:708,1
    - Dst: pkix_List_Contains
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:708,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:715,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:719,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:726,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:727,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:728,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:730,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 4
    argNames:
    - params
    - cert
    - pResult
    - plContext
    argTypes:
    - PKIX_ComCertSelParams*
    - PKIX_PL_Cert*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 667
    functionDepth: 2
    functionLinenumber: 667
    functionLinenumberEnd: 731
    functionName: pkix_CertSelector_Match_ExtendedKeyUsage
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ComCertSelParams_GetExtendedKeyUsage
    - PKIX_List_GetLength
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_DECREF
    - pkix_List_Contains
    - PKIX_PL_Cert_GetExtendedKeyUsage
    - PKIX_ERROR
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_CertSelector_Match_ExtendedKeyUsage(\n        PKIX_ComCertSelParams
      *params,\n        PKIX_PL_Cert *cert,\n        PKIX_Boolean *pResult,\n        void
      *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:769,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:770,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:772,1
    - Dst: PKIX_ComCertSelParams_GetKeyUsage
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:772,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:778,1
    - Dst: PKIX_PL_Cert_VerifyKeyUsage
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:778,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:789,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - params
    - cert
    - pResult
    - plContext
    argTypes:
    - PKIX_ComCertSelParams*
    - PKIX_PL_Cert*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 760
    functionDepth: 2
    functionLinenumber: 760
    functionLinenumberEnd: 790
    functionName: pkix_CertSelector_Match_KeyUsage
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c
    functionUses: 0
    functionsReached:
    - PKIX_PL_Cert_VerifyKeyUsage
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_ComCertSelParams_GetKeyUsage
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_CertSelector_Match_KeyUsage(\n        PKIX_ComCertSelParams
      *params,\n        PKIX_PL_Cert *cert,\n        PKIX_Boolean *pResult,\n        void
      *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:831,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:832,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:834,1
    - Dst: PKIX_ComCertSelParams_GetSubjKeyIdentifier
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:834,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:840,1
    - Dst: PKIX_PL_Cert_GetSubjectKeyIdentifier
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:840,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:848,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:848,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:857,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:863,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:864,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:866,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 4
    argNames:
    - params
    - cert
    - pResult
    - plContext
    argTypes:
    - PKIX_ComCertSelParams*
    - PKIX_PL_Cert*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 820
    functionDepth: 2
    functionLinenumber: 820
    functionLinenumberEnd: 867
    functionName: pkix_CertSelector_Match_SubjKeyId
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_PL_Object_Equals
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_DECREF
    - PKIX_PL_Cert_GetSubjectKeyIdentifier
    - PKIX_ERROR
    - PKIX_ComCertSelParams_GetSubjKeyIdentifier
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_CertSelector_Match_SubjKeyId(\n        PKIX_ComCertSelParams
      *params,\n        PKIX_PL_Cert *cert,\n        PKIX_Boolean *pResult,\n        void
      *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:907,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:908,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:910,1
    - Dst: PKIX_ComCertSelParams_GetAuthorityKeyIdentifier
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:910,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:916,1
    - Dst: PKIX_PL_Cert_GetAuthorityKeyIdentifier
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:916,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:922,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:924,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:924,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:933,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:939,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:940,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:942,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 4
    argNames:
    - params
    - cert
    - pResult
    - plContext
    argTypes:
    - PKIX_ComCertSelParams*
    - PKIX_PL_Cert*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 896
    functionDepth: 2
    functionLinenumber: 896
    functionLinenumberEnd: 943
    functionName: pkix_CertSelector_Match_AuthKeyId
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_PL_Object_Equals
    - PKIX_RETURN
    - PKIX_ComCertSelParams_GetAuthorityKeyIdentifier
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_DECREF
    - PKIX_PL_Cert_GetAuthorityKeyIdentifier
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_CertSelector_Match_AuthKeyId(\n        PKIX_ComCertSelParams
      *params,\n        PKIX_PL_Cert *cert,\n        PKIX_Boolean *pResult,\n        void
      *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:983,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:984,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:986,1
    - Dst: PKIX_ComCertSelParams_GetSubjPKAlgId
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:986,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:992,1
    - Dst: PKIX_PL_Cert_GetSubjectPublicKeyAlgId
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:992,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:998,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1000,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1000,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1009,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1015,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1016,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1018,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 4
    argNames:
    - params
    - cert
    - pResult
    - plContext
    argTypes:
    - PKIX_ComCertSelParams*
    - PKIX_PL_Cert*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 972
    functionDepth: 2
    functionLinenumber: 972
    functionLinenumberEnd: 1019
    functionName: pkix_CertSelector_Match_SubjPKAlgId
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_PL_Object_Equals
    - PKIX_RETURN
    - PKIX_PL_Cert_GetSubjectPublicKeyAlgId
    - PKIX_ComCertSelParams_GetSubjPKAlgId
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_DECREF
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_CertSelector_Match_SubjPKAlgId(\n        PKIX_ComCertSelParams
      *params,\n        PKIX_PL_Cert *cert,\n        PKIX_Boolean *pResult,\n        void
      *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1059,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1060,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1062,1
    - Dst: PKIX_ComCertSelParams_GetSubjPubKey
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1062,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1068,1
    - Dst: PKIX_PL_Cert_GetSubjectPublicKey
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1068,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1074,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1076,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1076,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1085,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1091,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1092,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1094,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 4
    argNames:
    - params
    - cert
    - pResult
    - plContext
    argTypes:
    - PKIX_ComCertSelParams*
    - PKIX_PL_Cert*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1048
    functionDepth: 2
    functionLinenumber: 1048
    functionLinenumberEnd: 1095
    functionName: pkix_CertSelector_Match_SubjPubKey
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_PL_Object_Equals
    - PKIX_RETURN
    - PKIX_PL_Cert_GetSubjectPublicKey
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_DECREF
    - PKIX_ComCertSelParams_GetSubjPubKey
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_CertSelector_Match_SubjPubKey(\n        PKIX_ComCertSelParams
      *params,\n        PKIX_PL_Cert *cert,\n        PKIX_Boolean *pResult,\n        void
      *plContext)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1161,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1162,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1164,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1168,1
    - Dst: PKIX_ComCertSelParams_GetLeafCertFlag
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1168,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1176,1
    - Dst: PKIX_ComCertSelParams_GetVersion
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1176,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1181,1
    - Dst: PKIX_PL_Cert_GetVersion
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1181,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1186,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1190,1
    - Dst: PKIX_ComCertSelParams_GetSubject
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1190,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1195,1
    - Dst: PKIX_PL_Cert_GetSubject
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1195,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1200,1
    - Dst: PKIX_PL_X500Name_Match
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1200,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1205,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1208,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1212,1
    - Dst: PKIX_ComCertSelParams_GetIssuer
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1212,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1217,1
    - Dst: PKIX_PL_Cert_GetIssuer
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1217,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1221,1
    - Dst: PKIX_PL_X500Name_Match
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1221,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1226,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1230,1
    - Dst: PKIX_ComCertSelParams_GetSerialNumber
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1230,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1235,1
    - Dst: PKIX_PL_Cert_GetSerialNumber
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1235,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1239,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1239,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1247,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1251,1
    - Dst: PKIX_ComCertSelParams_GetCertificate
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1251,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1256,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1256,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1264,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1268,1
    - Dst: PKIX_ComCertSelParams_GetCertificateValid
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1268,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1273,1
    - Dst: PKIX_PL_Cert_CheckValidity
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1273,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1278,1
    - Dst: pkix_CertSelector_Match_BasicConstraint
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1278,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1282,1
    - Dst: pkix_CertSelector_Match_Policies
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1282,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1286,1
    - Dst: pkix_CertSelector_Match_CertificateValid
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1286,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1290,1
    - Dst: pkix_CertSelector_Match_NameConstraints
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1290,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1294,1
    - Dst: pkix_CertSelector_Match_PathToNames
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1294,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1298,1
    - Dst: pkix_CertSelector_Match_SubjAltNames
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1298,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1303,1
    - Dst: PKIX_PL_Cert_VerifyCertAndKeyType
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1303,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1308,1
    - Dst: pkix_CertSelector_Match_ExtendedKeyUsage
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1308,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1312,1
    - Dst: pkix_CertSelector_Match_KeyUsage
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1312,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1316,1
    - Dst: pkix_CertSelector_Match_SubjKeyId
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1316,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1320,1
    - Dst: pkix_CertSelector_Match_AuthKeyId
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1320,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1324,1
    - Dst: pkix_CertSelector_Match_SubjPKAlgId
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1324,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1328,1
    - Dst: pkix_CertSelector_Match_SubjPubKey
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1328,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1337,1
    - Dst: pkix_pl_Cert_ToString_Helper
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1337,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1341,1
    - Dst: PKIX_PL_String_GetEncoded
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1341,1
    - Dst: PKIX_CERTSELECTOR_DEBUG_ARG
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1349,1
    - Dst: PKIX_FREE
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1357,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1360,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1361,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1362,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1363,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1364,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1365,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1366,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1367,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1368,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1369,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 85
    argCount: 3
    argNames:
    - selector
    - cert
    - plContext
    argTypes:
    - PKIX_CertSelector*
    - PKIX_PL_Cert*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1370
      start: 1135
    functionDepth: 3
    functionLinenumber: 1135
    functionLinenumberEnd: 1370
    functionName: pkix_CertSelector_DefaultMatch
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c
    functionUses: 0
    functionsReached:
    - PKIX_PL_Object_Equals
    - PKIX_RETURN
    - PKIX_PL_Cert_GetVersion
    - PKIX_PL_Cert_VerifyCertAndKeyType
    - PKIX_ComCertSelParams_GetCertificateValid
    - PKIX_DECREF
    - PKIX_ERROR
    - PKIX_INCREF
    - PKIX_FREE
    - pkix_CertSelector_Match_NameConstraints
    - pkix_CertSelector_Match_PathToNames
    - pkix_CertSelector_Match_SubjPKAlgId
    - pkix_CertSelector_Match_Policies
    - PKIX_ENTER
    - pkix_CertSelector_Match_SubjAltNames
    - PKIX_ComCertSelParams_GetCertificate
    - PKIX_ComCertSelParams_GetLeafCertFlag
    - PKIX_ComCertSelParams_GetVersion
    - PKIX_PL_String_GetEncoded
    - PKIX_PL_Cert_GetIssuer
    - PKIX_PL_Cert_GetSubject
    - pkix_CertSelector_Match_CertificateValid
    - PKIX_NULLCHECK_TWO
    - pkix_CertSelector_Match_BasicConstraint
    - pkix_CertSelector_Match_KeyUsage
    - PKIX_CERTSELECTOR_DEBUG_ARG
    - PKIX_CHECK
    - PKIX_PL_Cert_GetSerialNumber
    - PKIX_ComCertSelParams_GetSubject
    - PKIX_PL_X500Name_Match
    - PKIX_ComCertSelParams_GetSerialNumber
    - pkix_CertSelector_Match_AuthKeyId
    - pkix_CertSelector_Match_ExtendedKeyUsage
    - pkix_pl_Cert_ToString_Helper
    - PKIX_ComCertSelParams_GetIssuer
    - pkix_CertSelector_Match_SubjKeyId
    - PKIX_PL_Cert_CheckValidity
    - pkix_CertSelector_Match_SubjPubKey
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_CertSelector_DefaultMatch(\n        PKIX_CertSelector
      *selector,\n        PKIX_PL_Cert *cert,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1390,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1405
      start: 1384
    functionDepth: 1
    functionLinenumber: 1384
    functionLinenumberEnd: 1405
    functionName: pkix_CertSelector_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      pkix_CertSelector_RegisterSelf(void *plContext)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1422,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1423,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1425,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1425,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1447,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1454,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 4
    argNames:
    - callback
    - certSelectorContext
    - pSelector
    - plContext
    argTypes:
    - PKIX_CertSelector_MatchCallback
    - PKIX_PL_Object*
    - PKIX_CertSelector**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1456
      start: 1413
    functionDepth: 1
    functionLinenumber: 1413
    functionLinenumberEnd: 1456
    functionName: PKIX_CertSelector_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c
    functionUses: 38
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_Alloc
    - PKIX_ENTER
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_CertSelector_Create(\n        PKIX_CertSelector_MatchCallback
      callback,\n        PKIX_PL_Object *certSelectorContext,\n        PKIX_CertSelector
      **pSelector,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1468,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1469,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - selector
    - pCallback
    - plContext
    argTypes:
    - PKIX_CertSelector*
    - PKIX_CertSelector_MatchCallback*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1474
      start: 1462
    functionDepth: 1
    functionLinenumber: 1462
    functionLinenumberEnd: 1474
    functionName: PKIX_CertSelector_GetMatchCallback
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c
    functionUses: 2
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_CertSelector_GetMatchCallback(\n        PKIX_CertSelector
      *selector,\n        PKIX_CertSelector_MatchCallback *pCallback,\n        void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1486,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1487,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1489,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - selector
    - pCertSelectorContext
    - plContext
    argTypes:
    - PKIX_CertSelector*
    - PKIX_PL_Object**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1495
      start: 1480
    functionDepth: 1
    functionLinenumber: 1480
    functionLinenumberEnd: 1495
    functionName: PKIX_CertSelector_GetCertSelectorContext
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c
    functionUses: 1
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_CertSelector_GetCertSelectorContext(\n        PKIX_CertSelector
      *selector,\n        PKIX_PL_Object **pCertSelectorContext,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1507,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1510,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1512,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - selector
    - pParams
    - plContext
    argTypes:
    - PKIX_CertSelector*
    - PKIX_ComCertSelParams**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1518
      start: 1501
    functionDepth: 1
    functionLinenumber: 1501
    functionLinenumberEnd: 1518
    functionName: PKIX_CertSelector_GetCommonCertSelectorParams
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c
    functionUses: 1
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_CertSelector_GetCommonCertSelectorParams(\n        PKIX_CertSelector
      *selector,\n        PKIX_ComCertSelParams **pParams,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1530,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1533,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1535,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1536,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1539,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1539,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - selector
    - params
    - plContext
    argTypes:
    - PKIX_CertSelector*
    - PKIX_ComCertSelParams*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1547
      start: 1524
    functionDepth: 1
    functionLinenumber: 1524
    functionLinenumberEnd: 1547
    functionName: PKIX_CertSelector_SetCommonCertSelectorParams
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c
    functionUses: 33
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_InvalidateCache
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_CertSelector_SetCommonCertSelectorParams(\n        PKIX_CertSelector
      *selector,\n        PKIX_ComCertSelParams *params,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1589,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1590,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1592,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1592,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1595,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1595,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1600,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1600,1
    - Dst: PKIX_CHECK_ONLY_FATAL
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1604,1
    - Dst: PKIX_CertSelector*::matchCallback
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1604,1
    - Dst: PKIX_CHECK_ONLY_FATAL
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1610,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1610,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1618,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1621,1
    - Dst: PKIX_List_SetImmutable
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1621,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1632,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1633,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c:1635,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 4
    argNames:
    - selector
    - before
    - pAfter
    - plContext
    argTypes:
    - PKIX_CertSelector*
    - PKIX_List*
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1637
      start: 1577
    functionDepth: 1
    functionLinenumber: 1577
    functionLinenumberEnd: 1637
    functionName: pkix_CertSelector_Select
    functionSourceFile: /src/nss/lib/libpkix/pkix/certsel/pkix_certselector.c
    functionUses: 0
    functionsReached:
    - PKIX_CertSelector*::matchCallback
    - PKIX_List_SetImmutable
    - PKIX_CHECK_ONLY_FATAL
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_Create
    - PKIX_List_GetLength
    - PKIX_List_AppendItem
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_DECREF
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_CertSelector_Select(\n\tPKIX_CertSelector *selector,\n\tPKIX_List
      *before,\n\tPKIX_List **pAfter,\n\tvoid *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:26,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:27,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:30,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:30,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:35,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:36,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:37,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 42
    functionName: pkix_ValidateResult_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_ValidateResult_Destroy(\n        PKIX_PL_Object
      *object,\n        void *plContext)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:64,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:65,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:67,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:67,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:70,1
    - Dst: PKIX_PL_Object_GetType
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:70,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:80,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:80,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:93,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:93,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:109,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:109,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:123,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 4
    argNames:
    - first
    - second
    - pResult
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 124
    functionName: pkix_ValidateResult_Equals
    functionSourceFile: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_PL_Object_Equals
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - pkix_CheckType
    - PKIX_PL_Object_GetType
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_ValidateResult_Equals(\n        PKIX_PL_Object
      *first,\n        PKIX_PL_Object *second,\n        PKIX_Boolean *pResult,\n        void
      *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:142,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:143,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:145,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:145,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:150,1
    - Dst: PKIX_PL_Object_Hashcode
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:150,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:155,1
    - Dst: PKIX_PL_Object_Hashcode
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:155,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:163,1
    - Dst: PKIX_PL_Object_Hashcode
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:163,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - object
    - pHashcode
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 177
    functionName: pkix_ValidateResult_Hashcode
    functionSourceFile: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_PL_Object_Hashcode
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_ValidateResult_Hashcode(\n        PKIX_PL_Object
      *object,\n        PKIX_UInt32 *pHashcode,\n        void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:208,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:209,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:211,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:211,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:214,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:214,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:223,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:223,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:227,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:227,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:238,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:238,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:245,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:245,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:249,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:249,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:258,1
    - Dst: PKIX_PL_Sprintf
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:258,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:271,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:272,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:273,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:274,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:276,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 3
    argNames:
    - object
    - pString
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_String**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 277
    functionName: pkix_ValidateResult_ToString
    functionSourceFile: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_PL_String_Create
    - PKIX_RETURN
    - PKIX_PL_Object_ToString
    - PKIX_PL_Sprintf
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_ValidateResult_ToString(\n        PKIX_PL_Object
      *object,\n        PKIX_PL_String **pString,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:298,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 313
    functionName: pkix_ValidateResult_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      pkix_ValidateResult_RegisterSelf(void *plContext)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:350,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:351,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:353,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:353,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:362,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:365,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:368,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:376,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 5
    argNames:
    - pubKey
    - anchor
    - policyTree
    - pResult
    - plContext
    argTypes:
    - PKIX_PL_PublicKey*
    - PKIX_TrustAnchor*
    - PKIX_PolicyNode*
    - PKIX_ValidateResult**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 380
    functionName: pkix_ValidateResult_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c
    functionUses: 1
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_Alloc
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_ValidateResult_Create(\n        PKIX_PL_PublicKey
      *pubKey,\n        PKIX_TrustAnchor *anchor,\n        PKIX_PolicyNode *policyTree,\n
      \       PKIX_ValidateResult **pResult,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:394,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:395,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:397,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - result
    - pPublicKey
    - plContext
    argTypes:
    - PKIX_ValidateResult*
    - PKIX_PL_PublicKey**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 402
    functionName: PKIX_ValidateResult_GetPublicKey
    functionSourceFile: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c
    functionUses: 1
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ValidateResult_GetPublicKey(\n        PKIX_ValidateResult
      *result,\n        PKIX_PL_PublicKey **pPublicKey,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:414,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:415,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:417,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - result
    - pTrustAnchor
    - plContext
    argTypes:
    - PKIX_ValidateResult*
    - PKIX_TrustAnchor**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 408
    functionDepth: 1
    functionLinenumber: 408
    functionLinenumberEnd: 422
    functionName: PKIX_ValidateResult_GetTrustAnchor
    functionSourceFile: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c
    functionUses: 1
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ValidateResult_GetTrustAnchor(\n        PKIX_ValidateResult
      *result,\n        PKIX_TrustAnchor **pTrustAnchor,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:434,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:435,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:437,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - result
    - pPolicyTree
    - plContext
    argTypes:
    - PKIX_ValidateResult*
    - PKIX_PolicyNode**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 442
    functionName: PKIX_ValidateResult_GetPolicyTree
    functionSourceFile: /src/nss/lib/libpkix/pkix/results/pkix_valresult.c
    functionUses: 2
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ValidateResult_GetPolicyTree(\n        PKIX_ValidateResult
      *result,\n        PKIX_PolicyNode **pPolicyTree,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:26,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:27,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:30,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:30,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:35,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:36,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 41
    functionName: pkix_BuildResult_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_BuildResult_Destroy(\n        PKIX_PL_Object *object,\n
      \       void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:59,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:60,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:62,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:62,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:65,1
    - Dst: PKIX_PL_Object_GetType
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:65,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:75,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:75,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:84,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:84,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:103,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - first
    - second
    - pResult
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 104
    functionName: pkix_BuildResult_Equals
    functionSourceFile: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_PL_Object_Equals
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - pkix_CheckType
    - PKIX_PL_Object_GetType
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_BuildResult_Equals(\n        PKIX_PL_Object *first,\n
      \       PKIX_PL_Object *second,\n        PKIX_Boolean *pResult,\n        void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:121,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:122,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:124,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:124,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:129,1
    - Dst: PKIX_PL_Object_Hashcode
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:129,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:135,1
    - Dst: PKIX_PL_Object_Hashcode
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:135,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - object
    - pHashcode
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 148
    functionName: pkix_BuildResult_Hashcode
    functionSourceFile: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_PL_Object_Hashcode
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_BuildResult_Hashcode(\n        PKIX_PL_Object *object,\n
      \       PKIX_UInt32 *pHashcode,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:176,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:177,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:179,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:179,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:186,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:186,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:190,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:190,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:196,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:196,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:200,1
    - Dst: PKIX_PL_Sprintf
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:200,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:212,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:213,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:214,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 3
    argNames:
    - object
    - pString
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_String**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 217
    functionName: pkix_BuildResult_ToString
    functionSourceFile: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_PL_String_Create
    - PKIX_RETURN
    - PKIX_PL_Object_ToString
    - PKIX_PL_Sprintf
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_BuildResult_ToString(\n        PKIX_PL_Object *object,\n
      \       PKIX_PL_String **pString,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:238,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 253
    functionName: pkix_BuildResult_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      pkix_BuildResult_RegisterSelf(void *plContext)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:287,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:288,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:290,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:290,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:299,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:302,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:305,1
    - Dst: PKIX_List_SetImmutable
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:305,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:313,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 4
    argNames:
    - valResult
    - certChain
    - pResult
    - plContext
    argTypes:
    - PKIX_ValidateResult*
    - PKIX_List*
    - PKIX_BuildResult**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 317
    functionName: pkix_BuildResult_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c
    functionUses: 1
    functionsReached:
    - PKIX_INCREF
    - PKIX_List_SetImmutable
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_Alloc
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_DECREF
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_BuildResult_Create(\n        PKIX_ValidateResult
      *valResult,\n        PKIX_List *certChain,\n        PKIX_BuildResult **pResult,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:332,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:333,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:335,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - result
    - pResult
    - plContext
    argTypes:
    - PKIX_BuildResult*
    - PKIX_ValidateResult**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 340
    functionName: PKIX_BuildResult_GetValidateResult
    functionSourceFile: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c
    functionUses: 1
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_BuildResult_GetValidateResult(\n        PKIX_BuildResult
      *result,\n        PKIX_ValidateResult **pResult,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:354,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:355,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:357,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - result
    - pChain
    - plContext
    argTypes:
    - PKIX_BuildResult*
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 362
    functionName: PKIX_BuildResult_GetCertChain
    functionSourceFile: /src/nss/lib/libpkix/pkix/results/pkix_buildresult.c
    functionUses: 8
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_BuildResult_GetCertChain(\n        PKIX_BuildResult
      *result,\n        PKIX_List **pChain,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:50,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:51,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:53,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:53,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:60,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:63,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:75,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 5
    argNames:
    - cert
    - depth
    - error
    - pObject
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_UInt32
    - PKIX_Error*
    - PKIX_VerifyNode**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 78
    functionName: pkix_VerifyNode_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c
    functionUses: 1
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_Alloc
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_VerifyNode_Create(\n        PKIX_PL_Cert *cert,\n
      \       PKIX_UInt32 depth,\n        PKIX_Error *error,\n        PKIX_VerifyNode
      **pObject,\n        void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:124,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:125,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:132,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:135,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:135,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:138,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:138,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:145,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:145,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:150,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:154,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:154,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:161,1
    - Dst: pkix_VerifyNode_AddToChain
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:161,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:166,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:166,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:171,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:173,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 3
    argNames:
    - parentNode
    - child
    - plContext
    argTypes:
    - PKIX_VerifyNode*
    - PKIX_VerifyNode*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 174
    functionName: pkix_VerifyNode_AddToChain
    functionSourceFile: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c
    functionUses: 2
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_Create
    - PKIX_List_GetLength
    - PKIX_PL_Object_InvalidateCache
    - PKIX_List_AppendItem
    - PKIX_ENTER
    - PKIX_DECREF
    - pkix_VerifyNode_AddToChain
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_VerifyNode_AddToChain(\n        PKIX_VerifyNode
      *parentNode,\n        PKIX_VerifyNode *child,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:206,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:207,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:209,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:209,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:213,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:213,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:220,1
    - Dst: pkix_VerifyNode_SetDepth
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:220,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:225,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:230,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:232,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - children
    - depth
    - plContext
    argTypes:
    - PKIX_List*
    - PKIX_UInt32
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 233
    functionName: pkix_VerifyNode_SetDepth
    functionSourceFile: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c
    functionUses: 1
    functionsReached:
    - pkix_VerifyNode_SetDepth
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_GetLength
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_VerifyNode_SetDepth(PKIX_List *children,\n        PKIX_UInt32
      depth,\n        void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:274,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:275,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:281,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:281,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:289,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:289,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:294,1
    - Dst: pkix_VerifyNode_SetDepth
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:294,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:302,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - parentNode
    - child
    - plContext
    argTypes:
    - PKIX_VerifyNode*
    - PKIX_VerifyNode*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 265
    functionDepth: 2
    functionLinenumber: 265
    functionLinenumberEnd: 303
    functionName: pkix_VerifyNode_AddToTree
    functionSourceFile: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c
    functionUses: 0
    functionsReached:
    - pkix_VerifyNode_SetDepth
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_Create
    - PKIX_List_AppendItem
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_VerifyNode_AddToTree(\n        PKIX_VerifyNode
      *parentNode,\n        PKIX_VerifyNode *child,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:342,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:343,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:345,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:348,1
    - Dst: PKIX_PL_Cert_GetIssuer
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:348,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:352,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:355,1
    - Dst: PKIX_PL_Cert_GetSubject
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:355,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:359,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:362,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:362,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:370,1
    - Dst: PKIX_PL_Sprintf
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:370,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:384,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:385,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:386,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:387,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:388,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:389,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 3
    argNames:
    - node
    - pString
    - plContext
    argTypes:
    - PKIX_VerifyNode*
    - PKIX_PL_String**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 391
    functionName: pkix_SingleVerifyNode_ToString
    functionSourceFile: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_PL_Cert_GetIssuer
    - PKIX_PL_Cert_GetSubject
    - PKIX_PL_String_Create
    - PKIX_RETURN
    - PKIX_PL_Sprintf
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_DECREF
    - PKIX_TOSTRING
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_SingleVerifyNode_ToString(\n        PKIX_VerifyNode
      *node,\n        PKIX_PL_String **pString,\n        void *plContext)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:439,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:441,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:444,1
    - Dst: pkix_SingleVerifyNode_ToString
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:444,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:449,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:449,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:457,1
    - Dst: PKIX_PL_Sprintf
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:457,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:465,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:465,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:473,1
    - Dst: PKIX_PL_Sprintf
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:473,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:481,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:486,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:486,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:499,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:499,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:507,1
    - Dst: PKIX_PL_Sprintf
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:507,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:514,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:514,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:524,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:524,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:535,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:535,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:542,1
    - Dst: pkix_VerifyNode_ToString_Helper
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:542,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:550,1
    - Dst: PKIX_PL_Sprintf
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:550,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:558,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:559,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:560,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:570,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:573,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:574,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:575,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:576,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:577,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:578,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:580,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 47
    argCount: 4
    argNames:
    - rootNode
    - indent
    - pTreeString
    - plContext
    argTypes:
    - PKIX_VerifyNode*
    - PKIX_PL_String*
    - PKIX_PL_String**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 421
    functionDepth: 2
    functionLinenumber: 421
    functionLinenumberEnd: 581
    functionName: pkix_VerifyNode_ToString_Helper
    functionSourceFile: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c
    functionUses: 1
    functionsReached:
    - pkix_VerifyNode_ToString_Helper
    - PKIX_CHECK
    - PKIX_PL_String_Create
    - PKIX_RETURN
    - PKIX_List_GetLength
    - PKIX_PL_Sprintf
    - PKIX_ENTER
    - PKIX_DECREF
    - pkix_SingleVerifyNode_ToString
    - PKIX_NULLCHECK_TWO
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_VerifyNode_ToString_Helper(\n        PKIX_VerifyNode
      *rootNode,\n        PKIX_PL_String *indent,\n        PKIX_PL_String **pTreeString,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:596,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:598,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:600,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:600,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:605,1
    - Dst: pkix_VerifyNode_ToString_Helper
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:605,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - object
    - pTreeString
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_String**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 587
    functionDepth: 3
    functionLinenumber: 587
    functionLinenumberEnd: 614
    functionName: pkix_VerifyNode_ToString
    functionSourceFile: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c
    functionUses: 0
    functionsReached:
    - pkix_VerifyNode_ToString_Helper
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_VerifyNode_ToString(\n        PKIX_PL_Object *object,\n
      \       PKIX_PL_String **pTreeString,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:627,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:629,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:631,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:631,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:636,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:637,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:638,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 620
    functionDepth: 1
    functionLinenumber: 620
    functionLinenumberEnd: 645
    functionName: pkix_VerifyNode_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_VerifyNode_Destroy(\n        PKIX_PL_Object *object,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:679,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:680,1
    - Dst: PKIX_HASHCODE
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:682,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:688,1
    - Dst: PKIX_PL_Object_Hashcode
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:688,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - node
    - pHashcode
    - plContext
    argTypes:
    - PKIX_VerifyNode*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 700
    functionName: pkix_SingleVerifyNode_Hashcode
    functionSourceFile: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_HASHCODE
    - PKIX_PL_Object_Hashcode
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_SingleVerifyNode_Hashcode(\n        PKIX_VerifyNode
      *node,\n        PKIX_UInt32 *pHashcode,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:716,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:717,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:719,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:719,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:725,1
    - Dst: pkix_SingleVerifyNode_Hashcode
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:725,1
    - Dst: PKIX_HASHCODE
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:729,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - object
    - pHashcode
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 706
    functionDepth: 2
    functionLinenumber: 706
    functionLinenumberEnd: 742
    functionName: pkix_VerifyNode_Hashcode
    functionSourceFile: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_HASHCODE
    - pkix_SingleVerifyNode_Hashcode
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_VerifyNode_Hashcode(\n        PKIX_PL_Object *object,\n
      \       PKIX_UInt32 *pHashcode,\n        void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:779,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:780,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:797,1
    - Dst: PKIX_EQUALS
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:799,1
    - Dst: PKIX_EQUALS
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:810,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:821,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - firstVN
    - secondVN
    - pResult
    - plContext
    argTypes:
    - PKIX_VerifyNode*
    - PKIX_VerifyNode*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 770
    functionDepth: 1
    functionLinenumber: 770
    functionLinenumberEnd: 822
    functionName: pkix_SingleVerifyNode_Equals
    functionSourceFile: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c
    functionUses: 0
    functionsReached:
    - PKIX_RETURN
    - PKIX_EQUALS
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_SingleVerifyNode_Equals(\n        PKIX_VerifyNode
      *firstVN,\n        PKIX_VerifyNode *secondVN,\n        PKIX_Boolean *pResult,\n
      \       void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:840,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:841,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:844,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:844,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:861,1
    - Dst: PKIX_PL_Object_GetType
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:861,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:876,1
    - Dst: pkix_SingleVerifyNode_Equals
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:876,1
    - Dst: PKIX_EQUALS
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:884,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:895,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 4
    argNames:
    - firstObject
    - secondObject
    - pResult
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 828
    functionDepth: 2
    functionLinenumber: 828
    functionLinenumberEnd: 896
    functionName: pkix_VerifyNode_Equals
    functionSourceFile: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_EQUALS
    - pkix_SingleVerifyNode_Equals
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - pkix_CheckType
    - PKIX_PL_Object_GetType
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_VerifyNode_Equals(\n        PKIX_PL_Object *firstObject,\n
      \       PKIX_PL_Object *secondObject,\n        PKIX_Boolean *pResult,\n        void
      *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:943,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:945,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:953,1
    - Dst: pkix_VerifyNode_Create
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:953,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:965,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:965,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:970,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:970,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:977,1
    - Dst: pkix_VerifyNode_DuplicateHelper
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:977,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:981,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:990,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:991,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:993,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 4
    argNames:
    - original
    - parent
    - pNewNode
    - plContext
    argTypes:
    - PKIX_VerifyNode*
    - PKIX_VerifyNode*
    - PKIX_VerifyNode**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 930
    functionDepth: 2
    functionLinenumber: 930
    functionLinenumberEnd: 994
    functionName: pkix_VerifyNode_DuplicateHelper
    functionSourceFile: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c
    functionUses: 1
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_VerifyNode_Create
    - PKIX_List_GetLength
    - pkix_VerifyNode_DuplicateHelper
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_TWO
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_VerifyNode_DuplicateHelper(\n        PKIX_VerifyNode
      *original,\n        PKIX_VerifyNode *parent,\n        PKIX_VerifyNode **pNewNode,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:1009,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:1011,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:1013,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:1013,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:1019,1
    - Dst: pkix_VerifyNode_DuplicateHelper
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:1019,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:1027,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - object
    - pNewObject
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 1000
    functionDepth: 3
    functionLinenumber: 1000
    functionLinenumberEnd: 1028
    functionName: pkix_VerifyNode_Duplicate
    functionSourceFile: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_VerifyNode_DuplicateHelper
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_VerifyNode_Duplicate(\n        PKIX_PL_Object *object,\n
      \       PKIX_PL_Object **pNewObject,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:1051,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:1065,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1044
    functionDepth: 1
    functionLinenumber: 1044
    functionLinenumberEnd: 1066
    functionName: pkix_VerifyNode_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      pkix_VerifyNode_RegisterSelf(void *plContext)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:1097,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:1099,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:1101,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:1102,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:1106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - node
    - error
    - plContext
    argTypes:
    - PKIX_VerifyNode*
    - PKIX_Error*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1107
      start: 1090
    functionDepth: 1
    functionLinenumber: 1090
    functionLinenumberEnd: 1107
    functionName: pkix_VerifyNode_SetError
    functionSourceFile: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c
    functionUses: 0
    functionsReached:
    - PKIX_INCREF
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_VerifyNode_SetError(\n        PKIX_VerifyNode *node,\n
      \       PKIX_Error *error,\n        void *plContext)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:1138,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:1141,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:1151,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:1152,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:1156,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:1157,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:1162,1
    - Dst: pkix_VerifyNode_FindError
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:1163,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:1166,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:1174,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:1179,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c:1181,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - node
    - error
    - plContext
    argTypes:
    - PKIX_VerifyNode*
    - PKIX_Error**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1182
      start: 1130
    functionDepth: 1
    functionLinenumber: 1130
    functionLinenumberEnd: 1182
    functionName: pkix_VerifyNode_FindError
    functionSourceFile: /src/nss/lib/libpkix/pkix/results/pkix_verifynode.c
    functionUses: 1
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_GetLength
    - PKIX_ENTER
    - PKIX_DECREF
    - pkix_VerifyNode_FindError
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_VerifyNode_FindError(\n        PKIX_VerifyNode
      *node,\n        PKIX_Error **error,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:54,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:56,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:58,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - node
    - pChildren
    - plContext
    argTypes:
    - PKIX_PolicyNode*
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 64
    functionName: pkix_PolicyNode_GetChildrenMutable
    functionSourceFile: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c
    functionUses: 0
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_PolicyNode_GetChildrenMutable(\n        PKIX_PolicyNode
      *node,\n        PKIX_List **pChildren,  /* list of PKIX_PolicyNode */\n        void
      *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:115,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:117,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:119,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:119,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:126,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:129,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:132,1
    - Dst: PKIX_List_SetImmutable
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:132,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:138,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:140,1
    - Dst: PKIX_List_SetImmutable
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:140,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:152,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 6
    argNames:
    - validPolicy
    - qualifierSet
    - criticality
    - expectedPolicySet
    - pObject
    - plContext
    argTypes:
    - PKIX_PL_OID*
    - PKIX_List*
    - PKIX_Boolean
    - PKIX_List*
    - PKIX_PolicyNode**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 155
    functionName: pkix_PolicyNode_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c
    functionUses: 1
    functionsReached:
    - PKIX_INCREF
    - PKIX_List_SetImmutable
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_Alloc
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_DECREF
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_PolicyNode_Create(\n        PKIX_PL_OID *validPolicy,\n
      \       PKIX_List *qualifierSet,\n        PKIX_Boolean criticality,\n        PKIX_List
      *expectedPolicySet,\n        PKIX_PolicyNode **pObject,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:195,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:197,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:201,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:201,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:216,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:216,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:220,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:220,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:224,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:224,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 3
    argNames:
    - parentNode
    - child
    - plContext
    argTypes:
    - PKIX_PolicyNode*
    - PKIX_PolicyNode*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 231
    functionName: pkix_PolicyNode_AddToParent
    functionSourceFile: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c
    functionUses: 1
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_Create
    - PKIX_PL_Object_InvalidateCache
    - PKIX_List_AppendItem
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_PolicyNode_AddToParent(\n        PKIX_PolicyNode
      *parentNode,\n        PKIX_PolicyNode *child,\n        void *plContext)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:278,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:280,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:298,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:298,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:311,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:311,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:318,1
    - Dst: pkix_PolicyNode_Prune
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:318,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:326,1
    - Dst: PKIX_List_DeleteItem
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:326,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:333,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:338,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:338,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:349,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:349,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:356,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:358,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 4
    argNames:
    - node
    - height
    - pDelete
    - plContext
    argTypes:
    - PKIX_PolicyNode*
    - PKIX_UInt32
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 359
    functionName: pkix_PolicyNode_Prune
    functionSourceFile: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c
    functionUses: 2
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_PolicyNode_Prune
    - PKIX_List_GetLength
    - PKIX_List_DeleteItem
    - PKIX_PL_Object_InvalidateCache
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_TWO
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_PolicyNode_Prune(\n        PKIX_PolicyNode *node,\n
      \       PKIX_UInt32 height,\n        PKIX_Boolean *pDelete,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:397,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:398,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:399,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:401,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:401,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:409,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:409,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:415,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:415,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:422,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:422,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:428,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:428,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:437,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:437,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:445,1
    - Dst: PKIX_PL_Sprintf
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:445,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:460,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:461,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:462,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:463,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:464,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:465,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 3
    argNames:
    - node
    - pString
    - plContext
    argTypes:
    - PKIX_PolicyNode*
    - PKIX_PL_String**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 466
    functionName: pkix_SinglePolicyNode_ToString
    functionSourceFile: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_PL_String_Create
    - PKIX_RETURN
    - PKIX_PL_Object_ToString
    - PKIX_PL_Sprintf
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_SinglePolicyNode_ToString(\n        PKIX_PolicyNode
      *node,\n        PKIX_PL_String **pString,\n        void *plContext)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:514,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:516,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:519,1
    - Dst: pkix_SinglePolicyNode_ToString
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:519,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:524,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:524,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:532,1
    - Dst: PKIX_PL_Sprintf
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:532,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:540,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:540,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:548,1
    - Dst: PKIX_PL_Sprintf
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:548,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:556,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:561,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:561,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:574,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:574,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:582,1
    - Dst: PKIX_PL_Sprintf
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:582,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:589,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:589,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:599,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:599,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:610,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:610,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:617,1
    - Dst: pkix_PolicyNode_ToString_Helper
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:617,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:625,1
    - Dst: PKIX_PL_Sprintf
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:625,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:633,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:634,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:635,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:645,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:648,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:649,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:650,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:651,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:652,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:653,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:655,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 47
    argCount: 4
    argNames:
    - rootNode
    - indent
    - pTreeString
    - plContext
    argTypes:
    - PKIX_PolicyNode*
    - PKIX_PL_String*
    - PKIX_PL_String**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 496
    functionDepth: 2
    functionLinenumber: 496
    functionLinenumberEnd: 656
    functionName: pkix_PolicyNode_ToString_Helper
    functionSourceFile: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c
    functionUses: 1
    functionsReached:
    - PKIX_CHECK
    - PKIX_PL_String_Create
    - pkix_SinglePolicyNode_ToString
    - PKIX_RETURN
    - PKIX_List_GetLength
    - pkix_PolicyNode_ToString_Helper
    - PKIX_PL_Sprintf
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_TWO
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_PolicyNode_ToString_Helper(\n        PKIX_PolicyNode
      *rootNode,\n        PKIX_PL_String *indent,\n        PKIX_PL_String **pTreeString,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:671,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:673,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:675,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:675,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:680,1
    - Dst: pkix_PolicyNode_ToString_Helper
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:680,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - object
    - pTreeString
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_String**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 662
    functionDepth: 3
    functionLinenumber: 662
    functionLinenumberEnd: 689
    functionName: pkix_PolicyNode_ToString
    functionSourceFile: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_PolicyNode_ToString_Helper
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_PolicyNode_ToString(\n        PKIX_PL_Object *object,\n
      \       PKIX_PL_String **pTreeString,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:702,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:704,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:706,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:706,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:712,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:713,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:714,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:715,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 695
    functionDepth: 1
    functionLinenumber: 695
    functionLinenumberEnd: 727
    functionName: pkix_PolicyNode_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_PolicyNode_Destroy(\n        PKIX_PL_Object *object,\n
      \       void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:761,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:762,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:763,1
    - Dst: PKIX_HASHCODE
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:765,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:777,1
    - Dst: PKIX_PL_Object_Hashcode
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:777,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:785,1
    - Dst: PKIX_PL_Object_Hashcode
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:785,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:797,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 3
    argNames:
    - node
    - pHashcode
    - plContext
    argTypes:
    - PKIX_PolicyNode*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 752
    functionDepth: 1
    functionLinenumber: 752
    functionLinenumberEnd: 798
    functionName: pkix_SinglePolicyNode_Hashcode
    functionSourceFile: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_HASHCODE
    - PKIX_PL_Object_Hashcode
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_SinglePolicyNode_Hashcode(\n        PKIX_PolicyNode
      *node,\n        PKIX_UInt32 *pHashcode,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:814,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:815,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:817,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:817,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:823,1
    - Dst: pkix_SinglePolicyNode_Hashcode
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:823,1
    - Dst: PKIX_HASHCODE
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:829,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:841,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - object
    - pHashcode
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 804
    functionDepth: 2
    functionLinenumber: 804
    functionLinenumberEnd: 842
    functionName: pkix_PolicyNode_Hashcode
    functionSourceFile: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_SinglePolicyNode_Hashcode
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_HASHCODE
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_PolicyNode_Hashcode(\n        PKIX_PL_Object *object,\n
      \       PKIX_UInt32 *pHashcode,\n        void *plContext)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:879,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:880,1
    - Dst: PKIX_EQUALS
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:899,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:911,1
    - Dst: PKIX_EQUALS
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:913,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:925,1
    - Dst: PKIX_EQUALS
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:928,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:939,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 4
    argNames:
    - firstPN
    - secondPN
    - pResult
    - plContext
    argTypes:
    - PKIX_PolicyNode*
    - PKIX_PolicyNode*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 870
    functionDepth: 1
    functionLinenumber: 870
    functionLinenumberEnd: 940
    functionName: pkix_SinglePolicyNode_Equals
    functionSourceFile: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c
    functionUses: 0
    functionsReached:
    - PKIX_RETURN
    - PKIX_EQUALS
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_SinglePolicyNode_Equals(\n        PKIX_PolicyNode
      *firstPN,\n        PKIX_PolicyNode *secondPN,\n        PKIX_Boolean *pResult,\n
      \       void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:958,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:959,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:962,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:962,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:979,1
    - Dst: PKIX_PL_Object_GetType
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:979,1
    - Dst: PKIX_EQUALS
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1001,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1012,1
    - Dst: pkix_SinglePolicyNode_Equals
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1012,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1020,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 4
    argNames:
    - firstObject
    - secondObject
    - pResult
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 946
    functionDepth: 2
    functionLinenumber: 946
    functionLinenumberEnd: 1021
    functionName: pkix_PolicyNode_Equals
    functionSourceFile: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_EQUALS
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - pkix_CheckType
    - pkix_SinglePolicyNode_Equals
    - PKIX_PL_Object_GetType
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_PolicyNode_Equals(\n        PKIX_PL_Object *firstObject,\n
      \       PKIX_PL_Object *secondObject,\n        PKIX_Boolean *pResult,\n        void
      *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1068,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1070,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1078,1
    - Dst: pkix_PolicyNode_Create
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1078,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1088,1
    - Dst: pkix_PolicyNode_AddToParent
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1088,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1096,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1096,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1101,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1101,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1108,1
    - Dst: pkix_PolicyNode_DuplicateHelper
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1108,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1112,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1121,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1122,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1124,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 4
    argNames:
    - original
    - parent
    - pNewNode
    - plContext
    argTypes:
    - PKIX_PolicyNode*
    - PKIX_PolicyNode*
    - PKIX_PolicyNode**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1125
      start: 1055
    functionDepth: 2
    functionLinenumber: 1055
    functionLinenumberEnd: 1125
    functionName: pkix_PolicyNode_DuplicateHelper
    functionSourceFile: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c
    functionUses: 1
    functionsReached:
    - pkix_PolicyNode_Create
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_PolicyNode_DuplicateHelper
    - PKIX_List_GetLength
    - pkix_PolicyNode_AddToParent
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_DECREF
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_PolicyNode_DuplicateHelper(\n        PKIX_PolicyNode
      *original,\n        PKIX_PolicyNode *parent,\n        PKIX_PolicyNode **pNewNode,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1140,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1142,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1144,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1144,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1150,1
    - Dst: pkix_PolicyNode_DuplicateHelper
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1150,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - object
    - pNewObject
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1159
      start: 1131
    functionDepth: 3
    functionLinenumber: 1131
    functionLinenumberEnd: 1159
    functionName: pkix_PolicyNode_Duplicate
    functionSourceFile: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_PolicyNode_DuplicateHelper
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_PolicyNode_Duplicate(\n        PKIX_PL_Object *object,\n
      \       PKIX_PL_Object **pNewObject,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1182,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1197
      start: 1175
    functionDepth: 1
    functionLinenumber: 1175
    functionLinenumberEnd: 1197
    functionName: pkix_PolicyNode_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      pkix_PolicyNode_RegisterSelf(void *plContext)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1214,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1216,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1218,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1222,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1222,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1226,1
    - Dst: PKIX_List_SetImmutable
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1226,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1233,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1236,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - node
    - pChildren
    - plContext
    argTypes:
    - PKIX_PolicyNode*
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1237
      start: 1206
    functionDepth: 1
    functionLinenumber: 1206
    functionLinenumberEnd: 1237
    functionName: PKIX_PolicyNode_GetChildren
    functionSourceFile: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c
    functionUses: 1
    functionsReached:
    - PKIX_INCREF
    - PKIX_List_SetImmutable
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_Create
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PolicyNode_GetChildren(\n        PKIX_PolicyNode
      *node,\n        PKIX_List **pChildren,  /* list of PKIX_PolicyNode */\n        void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1250,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1252,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1254,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - node
    - pParent
    - plContext
    argTypes:
    - PKIX_PolicyNode*
    - PKIX_PolicyNode**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1259
      start: 1243
    functionDepth: 1
    functionLinenumber: 1243
    functionLinenumberEnd: 1259
    functionName: PKIX_PolicyNode_GetParent
    functionSourceFile: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c
    functionUses: 1
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PolicyNode_GetParent(\n        PKIX_PolicyNode
      *node,\n        PKIX_PolicyNode **pParent,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1272,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1274,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1276,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - node
    - pValidPolicy
    - plContext
    argTypes:
    - PKIX_PolicyNode*
    - PKIX_PL_OID**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1281
      start: 1265
    functionDepth: 1
    functionLinenumber: 1265
    functionLinenumberEnd: 1281
    functionName: PKIX_PolicyNode_GetValidPolicy
    functionSourceFile: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c
    functionUses: 1
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PolicyNode_GetValidPolicy(\n        PKIX_PolicyNode
      *node,\n        PKIX_PL_OID **pValidPolicy,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1295,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1297,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1299,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1303,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1303,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1307,1
    - Dst: PKIX_List_SetImmutable
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1307,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1314,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - node
    - pQualifiers
    - plContext
    argTypes:
    - PKIX_PolicyNode*
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1315
      start: 1287
    functionDepth: 1
    functionLinenumber: 1287
    functionLinenumberEnd: 1315
    functionName: PKIX_PolicyNode_GetPolicyQualifiers
    functionSourceFile: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c
    functionUses: 1
    functionsReached:
    - PKIX_INCREF
    - PKIX_List_SetImmutable
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_Create
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PolicyNode_GetPolicyQualifiers(\n        PKIX_PolicyNode
      *node,\n        PKIX_List **pQualifiers,  /* list of PKIX_PL_CertPolicyQualifier
      */\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1328,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1330,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1332,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - node
    - pExpPolicies
    - plContext
    argTypes:
    - PKIX_PolicyNode*
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1337
      start: 1321
    functionDepth: 1
    functionLinenumber: 1321
    functionLinenumberEnd: 1337
    functionName: PKIX_PolicyNode_GetExpectedPolicies
    functionSourceFile: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c
    functionUses: 1
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PolicyNode_GetExpectedPolicies(\n        PKIX_PolicyNode
      *node,\n        PKIX_List **pExpPolicies,  /* list of PKIX_PL_OID */\n        void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1350,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1352,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - node
    - pCritical
    - plContext
    argTypes:
    - PKIX_PolicyNode*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1357
      start: 1343
    functionDepth: 1
    functionLinenumber: 1343
    functionLinenumberEnd: 1357
    functionName: PKIX_PolicyNode_IsCritical
    functionSourceFile: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c
    functionUses: 1
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PolicyNode_IsCritical(\n        PKIX_PolicyNode
      *node,\n        PKIX_Boolean *pCritical,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1370,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1372,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c:1376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - node
    - pDepth
    - plContext
    argTypes:
    - PKIX_PolicyNode*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1377
      start: 1363
    functionDepth: 1
    functionLinenumber: 1363
    functionLinenumberEnd: 1377
    functionName: PKIX_PolicyNode_GetDepth
    functionSourceFile: /src/nss/lib/libpkix/pkix/results/pkix_policynode.c
    functionUses: 1
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PolicyNode_GetDepth(\n        PKIX_PolicyNode *node,\n
      \       PKIX_UInt32 *pDepth,\n        void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_namechainingchecker.c:33,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_namechainingchecker.c:34,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_namechainingchecker.c:38,1
    - Dst: PKIX_CertChainChecker_GetCertChainCheckerState
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_namechainingchecker.c:38,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_namechainingchecker.c:42,1
    - Dst: PKIX_PL_Cert_GetIssuer
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_namechainingchecker.c:42,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_namechainingchecker.c:46,1
    - Dst: PKIX_PL_X500Name_Match
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_namechainingchecker.c:46,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_namechainingchecker.c:50,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_namechainingchecker.c:53,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_namechainingchecker.c:56,1
    - Dst: PKIX_PL_Cert_GetSubject
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_namechainingchecker.c:56,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_namechainingchecker.c:59,1
    - Dst: PKIX_CertChainChecker_SetCertChainCheckerState
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_namechainingchecker.c:59,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_namechainingchecker.c:65,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_namechainingchecker.c:66,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_namechainingchecker.c:67,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_namechainingchecker.c:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 5
    argNames:
    - checker
    - cert
    - unresolvedCriticalExtensions
    - pNBIOContext
    - plContext
    argTypes:
    - PKIX_CertChainChecker*
    - PKIX_PL_Cert*
    - PKIX_List*
    - void**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 71
    functionName: pkix_NameChainingChecker_Check
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_namechainingchecker.c
    functionUses: 0
    functionsReached:
    - PKIX_CertChainChecker_SetCertChainCheckerState
    - PKIX_CHECK
    - PKIX_PL_Cert_GetIssuer
    - PKIX_PL_Cert_GetSubject
    - PKIX_RETURN
    - PKIX_PL_X500Name_Match
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_DECREF
    - PKIX_CertChainChecker_GetCertChainCheckerState
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_NameChainingChecker_Check(\n        PKIX_CertChainChecker
      *checker,\n        PKIX_PL_Cert *cert,\n        PKIX_List *unresolvedCriticalExtensions,\n
      \       void **pNBIOContext,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_namechainingchecker.c:104,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_namechainingchecker.c:105,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_namechainingchecker.c:107,1
    - Dst: PKIX_CertChainChecker_Create
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_namechainingchecker.c:107,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_namechainingchecker.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - trustedCAName
    - pChecker
    - plContext
    argTypes:
    - PKIX_PL_X500Name*
    - PKIX_CertChainChecker**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 121
    functionName: pkix_NameChainingChecker_Initialize
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_namechainingchecker.c
    functionUses: 0
    functionsReached:
    - PKIX_CertChainChecker_Create
    - PKIX_RETURN
    - PKIX_CHECK
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_NameChainingChecker_Initialize(\n        PKIX_PL_X500Name
      *trustedCAName,\n        PKIX_CertChainChecker **pChecker,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c:26,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c:27,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c:30,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c:30,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c:36,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c:37,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 42
    functionName: pkix_CertChainChecker_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_CertChainChecker_Destroy(\n        PKIX_PL_Object
      *object,\n        void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c:59,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c:60,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c:62,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c:62,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c:69,1
    - Dst: PKIX_PL_Object_Duplicate
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c:69,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c:77,1
    - Dst: PKIX_PL_Object_Duplicate
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c:77,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c:84,1
    - Dst: PKIX_CertChainChecker_Create
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c:84,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c:98,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c:99,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - object
    - pNewObject
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 102
    functionName: pkix_CertChainChecker_Duplicate
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c
    functionUses: 0
    functionsReached:
    - PKIX_CertChainChecker_Create
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_Duplicate
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_CertChainChecker_Duplicate(\n        PKIX_PL_Object
      *object,\n        PKIX_PL_Object **pNewObject,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c:122,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 137
    functionName: pkix_CertChainChecker_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      pkix_CertChainChecker_RegisterSelf(void *plContext)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c:157,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c:158,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c:160,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c:160,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c:172,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c:175,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c:182,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 7
    argNames:
    - callback
    - forwardCheckingSupported
    - isForwardDirectionExpected
    - list
    - initialState
    - pChecker
    - plContext
    argTypes:
    - PKIX_CertChainChecker_CheckCallback
    - PKIX_Boolean
    - PKIX_Boolean
    - PKIX_List*
    - PKIX_PL_Object*
    - PKIX_CertChainChecker**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 186
    functionName: PKIX_CertChainChecker_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c
    functionUses: 5
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_Alloc
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_CertChainChecker_Create(\n    PKIX_CertChainChecker_CheckCallback
      callback,\n    PKIX_Boolean forwardCheckingSupported,\n    PKIX_Boolean isForwardDirectionExpected,\n
      \   PKIX_List *list,  /* list of PKIX_PL_OID */\n    PKIX_PL_Object *initialState,\n
      \   PKIX_CertChainChecker **pChecker,\n    void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c:198,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c:199,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - checker
    - pCallback
    - plContext
    argTypes:
    - PKIX_CertChainChecker*
    - PKIX_CertChainChecker_CheckCallback*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 204
    functionName: PKIX_CertChainChecker_GetCheckCallback
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c
    functionUses: 1
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_CertChainChecker_GetCheckCallback(\n        PKIX_CertChainChecker
      *checker,\n        PKIX_CertChainChecker_CheckCallback *pCallback,\n        void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c:216,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c:219,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - checker
    - pForwardCheckingSupported
    - plContext
    argTypes:
    - PKIX_CertChainChecker*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 224
    functionName: PKIX_CertChainChecker_IsForwardCheckingSupported
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c
    functionUses: 1
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_CertChainChecker_IsForwardCheckingSupported(\n
      \       PKIX_CertChainChecker *checker,\n        PKIX_Boolean *pForwardCheckingSupported,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c:236,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c:239,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - checker
    - pForwardDirectionExpected
    - plContext
    argTypes:
    - PKIX_CertChainChecker*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 244
    functionName: PKIX_CertChainChecker_IsForwardDirectionExpected
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c
    functionUses: 1
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_CertChainChecker_IsForwardDirectionExpected(\n
      \       PKIX_CertChainChecker *checker,\n        PKIX_Boolean *pForwardDirectionExpected,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c:256,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c:259,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c:261,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - checker
    - pCertChainCheckerState
    - plContext
    argTypes:
    - PKIX_CertChainChecker*
    - PKIX_PL_Object**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 268
    functionName: PKIX_CertChainChecker_GetCertChainCheckerState
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c
    functionUses: 2
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_CertChainChecker_GetCertChainCheckerState(\n        PKIX_CertChainChecker
      *checker,\n        PKIX_PL_Object **pCertChainCheckerState,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c:280,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c:283,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c:286,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c:288,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c:291,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c:291,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - checker
    - certChainCheckerState
    - plContext
    argTypes:
    - PKIX_CertChainChecker*
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 298
    functionName: PKIX_CertChainChecker_SetCertChainCheckerState
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c
    functionUses: 2
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_InvalidateCache
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_CertChainChecker_SetCertChainCheckerState(\n        PKIX_CertChainChecker
      *checker,\n        PKIX_PL_Object *certChainCheckerState,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c:310,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c:313,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c:315,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - checker
    - pExtensions
    - plContext
    argTypes:
    - PKIX_CertChainChecker*
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 322
    functionName: PKIX_CertChainChecker_GetSupportedExtensions
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_certchainchecker.c
    functionUses: 1
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_CertChainChecker_GetSupportedExtensions(\n        PKIX_CertChainChecker
      *checker,\n        PKIX_List **pExtensions, /* list of PKIX_PL_OID */\n        void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:27,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:28,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:31,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:31,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:37,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:38,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 43
    functionName: pkix_RevocationChecker_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_RevocationChecker_Destroy(\n        PKIX_PL_Object
      *object,\n        void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:60,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:61,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:63,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:63,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:70,1
    - Dst: PKIX_PL_Object_Duplicate
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:70,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:77,1
    - Dst: PKIX_PL_Object_Duplicate
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:77,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:84,1
    - Dst: PKIX_RevocationChecker_Create
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:85,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:99,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:100,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 3
    argNames:
    - object
    - pNewObject
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 103
    functionName: pkix_RevocationChecker_Duplicate
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c
    functionUses: 0
    functionsReached:
    - PKIX_RevocationChecker_Create
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_Duplicate
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_RevocationChecker_Duplicate(\n        PKIX_PL_Object
      *object,\n        PKIX_PL_Object **pNewObject,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:123,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 138
    functionName: pkix_RevocationChecker_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      pkix_RevocationChecker_RegisterSelf(void *plContext)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:150,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - obj1
    - obj2
    - pResult
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    - PKIX_Int32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 164
    functionName: pkix_RevocationChecker_SortComparator
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_RevocationChecker_SortComparator(\n        PKIX_PL_Object
      *obj1,\n        PKIX_PL_Object *obj2,\n        PKIX_Int32 *pResult,\n        void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:182,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:183,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:185,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:186,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:201,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 4
    argNames:
    - leafMethodListFlags
    - chainMethodListFlags
    - pChecker
    - plContext
    argTypes:
    - PKIX_UInt32
    - PKIX_UInt32
    - PKIX_RevocationChecker**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 204
    functionName: PKIX_RevocationChecker_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c
    functionUses: 2
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_Alloc
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_RevocationChecker_Create(\n    PKIX_UInt32 leafMethodListFlags,\n
      \   PKIX_UInt32 chainMethodListFlags,\n    PKIX_RevocationChecker **pChecker,\n
      \   void *plContext)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:228,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:229,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:243,1
    - Dst: PKIX_ProcessingParams_GetCertStores
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:244,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:247,1
    - Dst: pkix_CrlChecker_Create
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:248,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:258,1
    - Dst: pkix_OcspChecker_Create
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:259,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:267,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:277,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:278,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:282,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:283,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:285,1
    - Dst: pkix_List_BubbleSort
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:286,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:292,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:293,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:294,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:296,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 8
    argNames:
    - revChecker
    - params
    - methodType
    - flags
    - priority
    - verificationFn
    - isLeafMethod
    - plContext
    argTypes:
    - PKIX_RevocationChecker*
    - PKIX_ProcessingParams*
    - PKIX_RevocationMethodType
    - PKIX_UInt32
    - PKIX_UInt32
    - PKIX_PL_VerifyCallback
    - PKIX_Boolean
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 297
    functionName: PKIX_RevocationChecker_CreateAndAddMethod
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c
    functionUses: 0
    functionsReached:
    - pkix_List_BubbleSort
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_Create
    - pkix_CrlChecker_Create
    - PKIX_ENTER
    - PKIX_List_AppendItem
    - PKIX_DECREF
    - PKIX_ProcessingParams_GetCertStores
    - pkix_OcspChecker_Create
    - PKIX_ERROR
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_RevocationChecker_CreateAndAddMethod(\n    PKIX_RevocationChecker
      *revChecker,\n    PKIX_ProcessingParams *params,\n    PKIX_RevocationMethodType
      methodType,\n    PKIX_UInt32 flags,\n    PKIX_UInt32 priority,\n    PKIX_PL_VerifyCallback
      verificationFn,\n    PKIX_Boolean isLeafMethod,\n    void *plContext)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:325,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:326,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:343,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:356,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:357,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:358,1
    - Dst: PKIX_CHECK_NO_GOTO
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:369,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:386,1
    - Dst: PKIX_CHECK_NO_GOTO
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:397,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:413,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:471,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c:473,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 88
    argCount: 10
    argNames:
    - cert
    - issuer
    - revChecker
    - procParams
    - chainVerificationState
    - testingLeafCert
    - pRevStatus
    - pReasonCode
    - pNbioContext
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_PL_Cert*
    - PKIX_RevocationChecker*
    - PKIX_ProcessingParams*
    - PKIX_Boolean
    - PKIX_Boolean
    - PKIX_RevocationStatus*
    - PKIX_UInt32*
    - void**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 474
    functionName: PKIX_RevocationChecker_Check
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK_NO_GOTO
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_DecRef
    - PKIX_ENTER
    - PKIX_DECREF
    - PORT_Memset
    - PKIX_NULLCHECK_TWO
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_RevocationChecker_Check(\n    PKIX_PL_Cert *cert,\n
      \   PKIX_PL_Cert *issuer,\n    PKIX_RevocationChecker *revChecker,\n    PKIX_ProcessingParams
      *procParams,\n    PKIX_Boolean chainVerificationState,\n    PKIX_Boolean testingLeafCert,\n
      \   PKIX_RevocationStatus *pRevStatus,\n    PKIX_UInt32 *pReasonCode,\n    void
      **pNbioContext,\n    void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 36
    functionName: pkix_OcspChecker_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_ocspchecker.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_OcspChecker_Destroy(\n        PKIX_PL_Object *object,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ocspchecker.c:56,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ocspchecker.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 63
    functionName: pkix_OcspChecker_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_ocspchecker.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      pkix_OcspChecker_RegisterSelf(void *plContext)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ocspchecker.c:81,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ocspchecker.c:82,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ocspchecker.c:84,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ocspchecker.c:84,1
    - Dst: pkix_RevocationMethod_Init
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ocspchecker.c:91,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ocspchecker.c:103,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ocspchecker.c:105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 8
    argNames:
    - methodType
    - flags
    - priority
    - localRevChecker
    - externalRevChecker
    - verifyFn
    - pChecker
    - plContext
    argTypes:
    - PKIX_RevocationMethodType
    - PKIX_UInt32
    - PKIX_UInt32
    - pkix_LocalRevocationCheckFn
    - pkix_ExternalRevocationCheckFn
    - PKIX_PL_VerifyCallback
    - pkix_RevocationMethod**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 106
    functionName: pkix_OcspChecker_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_ocspchecker.c
    functionUses: 1
    functionsReached:
    - pkix_RevocationMethod_Init
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_Alloc
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_OcspChecker_Create(PKIX_RevocationMethodType methodType,\n
      \                       PKIX_UInt32 flags,\n                        PKIX_UInt32
      priority,\n                        pkix_LocalRevocationCheckFn localRevChecker,\n
      \                       pkix_ExternalRevocationCheckFn externalRevChecker,\n
      \                       PKIX_PL_VerifyCallback verifyFn,\n                        pkix_RevocationMethod
      **pChecker,\n                        void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - resultCode
    argTypes:
    - SECErrorCodes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 120
    functionName: pkix_OcspChecker_MapResultCodeToRevStatus
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_ocspchecker.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PKIX_RevocationStatus
    signature: PKIX_RevocationStatus pkix_OcspChecker_MapResultCodeToRevStatus(SECErrorCodes
      resultCode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ocspchecker.c:159,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ocspchecker.c:161,1
    - Dst: PKIX_PL_OcspCertID_Create
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ocspchecker.c:162,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ocspchecker.c:169,1
    - Dst: PKIX_PL_OcspCertID_GetFreshCacheStatus
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ocspchecker.c:170,1
    - Dst: pkix_OcspChecker_MapResultCodeToRevStatus
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ocspchecker.c:181,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ocspchecker.c:192,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ocspchecker.c:194,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 10
    argNames:
    - cert
    - issuer
    - date
    - checkerObject
    - procParams
    - methodFlags
    - chainVerificationState
    - pRevStatus
    - pReasonCode
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_PL_Cert*
    - PKIX_PL_Date*
    - pkix_RevocationMethod*
    - PKIX_ProcessingParams*
    - PKIX_UInt32
    - PKIX_Boolean
    - PKIX_RevocationStatus*
    - CERTCRLEntryReasonCode*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 195
    functionName: pkix_OcspChecker_CheckLocal
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_ocspchecker.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_OcspCertID_Create
    - PKIX_ENTER
    - PKIX_DECREF
    - pkix_OcspChecker_MapResultCodeToRevStatus
    - PKIX_PL_OcspCertID_GetFreshCacheStatus
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_OcspChecker_CheckLocal(\n        PKIX_PL_Cert *cert,\n
      \       PKIX_PL_Cert *issuer,\n        PKIX_PL_Date *date,\n        pkix_RevocationMethod
      *checkerObject,\n        PKIX_ProcessingParams *procParams,\n        PKIX_UInt32
      methodFlags,\n        PKIX_Boolean chainVerificationState,\n        PKIX_RevocationStatus
      *pRevStatus,\n        CERTCRLEntryReasonCode *pReasonCode,\n        void *plContext)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ocspchecker.c:242,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ocspchecker.c:244,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ocspchecker.c:245,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ocspchecker.c:251,1
    - Dst: PKIX_PL_OcspCertID_Create
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ocspchecker.c:252,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ocspchecker.c:257,1
    - Dst: pkix_pl_OcspRequest_Create
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ocspchecker.c:258,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ocspchecker.c:285,1
    - Dst: PKIX_CHECK_NO_GOTO
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ocspchecker.c:290,1
    - Dst: pkix_pl_OcspResponse_Create
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ocspchecker.c:291,1
    - Dst: PKIX_CHECK_NO_GOTO
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ocspchecker.c:308,1
    - Dst: pkix_pl_OcspResponse_Decode
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ocspchecker.c:309,1
    - Dst: PKIX_CHECK_NO_GOTO
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ocspchecker.c:318,1
    - Dst: pkix_pl_OcspResponse_GetStatus
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ocspchecker.c:319,1
    - Dst: PKIX_CHECK_NO_GOTO
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ocspchecker.c:328,1
    - Dst: pkix_pl_OcspResponse_VerifySignature
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ocspchecker.c:329,1
    - Dst: PKIX_PL_OcspCertID_RememberOCSPProcessingFailure
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ocspchecker.c:356,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ocspchecker.c:359,1
    - Dst: PKIX_CHECK_NO_GOTO
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ocspchecker.c:368,1
    - Dst: pkix_pl_OcspResponse_GetStatusForCert
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ocspchecker.c:369,1
    - Dst: pkix_OcspChecker_MapResultCodeToRevStatus
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ocspchecker.c:378,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ocspchecker.c:387,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ocspchecker.c:392,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ocspchecker.c:412,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ocspchecker.c:413,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ocspchecker.c:414,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ocspchecker.c:416,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 99
    argCount: 10
    argNames:
    - cert
    - issuer
    - date
    - checkerObject
    - procParams
    - methodFlags
    - pRevStatus
    - pReasonCode
    - pNBIOContext
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_PL_Cert*
    - PKIX_PL_Date*
    - pkix_RevocationMethod*
    - PKIX_ProcessingParams*
    - PKIX_UInt32
    - PKIX_RevocationStatus*
    - CERTCRLEntryReasonCode*
    - void**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 417
    functionName: pkix_OcspChecker_CheckExternal
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_ocspchecker.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PKIX_CHECK
    - pkix_pl_OcspResponse_Create
    - PKIX_PL_Object_DecRef
    - pkix_pl_OcspResponse_GetStatusForCert
    - PKIX_RETURN
    - PKIX_PL_OcspCertID_Create
    - pkix_pl_OcspRequest_Create
    - PKIX_ENTER
    - pkix_CheckType
    - pkix_pl_OcspResponse_Decode
    - pkix_pl_OcspResponse_GetStatus
    - PKIX_DECREF
    - PKIX_PL_OcspCertID_RememberOCSPProcessingFailure
    - pkix_OcspChecker_MapResultCodeToRevStatus
    - pkix_pl_OcspResponse_VerifySignature
    - PKIX_CHECK_NO_GOTO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_OcspChecker_CheckExternal(\n        PKIX_PL_Cert
      *cert,\n        PKIX_PL_Cert *issuer,\n        PKIX_PL_Date *date,\n        pkix_RevocationMethod
      *checkerObject,\n        PKIX_ProcessingParams *procParams,\n        PKIX_UInt32
      methodFlags,\n        PKIX_RevocationStatus *pRevStatus,\n        CERTCRLEntryReasonCode
      *pReasonCode,\n        void **pNBIOContext,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:27,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:29,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:32,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:32,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:38,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:39,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:40,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:41,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:42,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:43,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 48
    functionName: pkix_TargetCertCheckerState_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_TargetCertCheckerState_Destroy(\n        PKIX_PL_Object
      *object,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:68,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 84
    functionName: pkix_TargetCertCheckerState_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      pkix_TargetCertCheckerState_RegisterSelf(void *plContext)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:128,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:130,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:132,1
    - Dst: PKIX_PL_OID_Create
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:132,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:138,1
    - Dst: PKIX_PL_OID_Create
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:138,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:144,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:144,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:155,1
    - Dst: PKIX_CertSelector_GetCommonCertSelectorParams
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:155,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:161,1
    - Dst: PKIX_ComCertSelParams_GetPathToNames
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:161,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:167,1
    - Dst: PKIX_ComCertSelParams_GetExtendedKeyUsage
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:167,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:173,1
    - Dst: PKIX_ComCertSelParams_GetSubjAltNames
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:173,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:179,1
    - Dst: PKIX_ComCertSelParams_GetMatchAllSubjAltNames
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:179,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:190,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:213,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:214,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:215,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:216,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:217,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:218,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:220,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:222,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 41
    argCount: 4
    argNames:
    - certSelector
    - certsRemaining
    - pState
    - plContext
    argTypes:
    - PKIX_CertSelector*
    - PKIX_UInt32
    - pkix_TargetCertCheckerState**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 224
    functionName: pkix_TargetCertCheckerState_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c
    functionUses: 0
    functionsReached:
    - PKIX_INCREF
    - PKIX_ComCertSelParams_GetPathToNames
    - PKIX_ComCertSelParams_GetMatchAllSubjAltNames
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ComCertSelParams_GetExtendedKeyUsage
    - PKIX_CertSelector_GetCommonCertSelectorParams
    - PKIX_PL_Object_Alloc
    - PKIX_PL_OID_Create
    - PKIX_ENTER
    - PKIX_ComCertSelParams_GetSubjAltNames
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_TargetCertCheckerState_Create(\n    PKIX_CertSelector
      *certSelector,\n    PKIX_UInt32 certsRemaining,\n    pkix_TargetCertCheckerState
      **pState,\n    void *plContext)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:251,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:252,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:256,1
    - Dst: PKIX_CertChainChecker_GetCertChainCheckerState
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:256,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:264,1
    - Dst: PKIX_PL_Cert_GetNameConstraints
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:264,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:274,1
    - Dst: PKIX_PL_CertNameConstraints_CheckNamesInNameSpace
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:274,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:282,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:287,1
    - Dst: PKIX_PL_Cert_GetSubjectAltNames
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:287,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:293,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:293,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:299,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:299,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:306,1
    - Dst: pkix_List_Contains
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:306,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:313,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:329,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:337,1
    - Dst: PKIX_CertSelector_GetMatchCallback
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:337,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:343,1
    - Dst: certSelectorMatch
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:343,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:351,1
    - Dst: PKIX_PL_Cert_VerifyCertAndKeyType
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:351,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:378,1
    - Dst: PKIX_PL_Cert_GetExtendedKeyUsage
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:378,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:386,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:386,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:392,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:392,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:399,1
    - Dst: pkix_List_Contains
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:399,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:406,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:409,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:417,1
    - Dst: PKIX_PL_Cert_VerifyCertAndKeyType
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:417,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:425,1
    - Dst: pkix_List_Remove
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:425,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:431,1
    - Dst: PKIX_PL_Cert_GetSubject
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:431,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:436,1
    - Dst: pkix_List_Remove
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:436,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:447,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:448,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:449,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:450,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:451,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:452,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:454,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 71
    argCount: 5
    argNames:
    - checker
    - cert
    - unresolvedCriticalExtensions
    - pNBIOContext
    - plContext
    argTypes:
    - PKIX_CertChainChecker*
    - PKIX_PL_Cert*
    - PKIX_List*
    - void**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 456
    functionName: pkix_TargetCertChecker_Check
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c
    functionUses: 0
    functionsReached:
    - PKIX_RETURN
    - PKIX_PL_Cert_VerifyCertAndKeyType
    - PKIX_DECREF
    - pkix_List_Contains
    - PKIX_ERROR
    - pkix_List_Remove
    - certSelectorMatch
    - PKIX_PL_Cert_GetSubjectAltNames
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_PL_Cert_GetNameConstraints
    - PKIX_PL_CertNameConstraints_CheckNamesInNameSpace
    - PKIX_PL_Cert_GetSubject
    - PKIX_List_GetLength
    - PKIX_CertSelector_GetMatchCallback
    - PKIX_CertChainChecker_GetCertChainCheckerState
    - PKIX_CHECK
    - PKIX_PL_Cert_GetExtendedKeyUsage
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_TargetCertChecker_Check(\n        PKIX_CertChainChecker
      *checker,\n        PKIX_PL_Cert *cert,\n        PKIX_List *unresolvedCriticalExtensions,\n
      \       void **pNBIOContext,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:494,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:495,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:497,1
    - Dst: pkix_TargetCertCheckerState_Create
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:497,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:501,1
    - Dst: PKIX_CertChainChecker_Create
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:501,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:513,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - certSelector
    - certsRemaining
    - pChecker
    - plContext
    argTypes:
    - PKIX_CertSelector*
    - PKIX_UInt32
    - PKIX_CertChainChecker**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 485
    functionDepth: 3
    functionLinenumber: 485
    functionLinenumberEnd: 516
    functionName: pkix_TargetCertChecker_Initialize
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.c
    functionUses: 0
    functionsReached:
    - pkix_TargetCertCheckerState_Create
    - PKIX_CertChainChecker_Create
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_TargetCertChecker_Initialize(\n        PKIX_CertSelector
      *certSelector,\n        PKIX_UInt32 certsRemaining,\n        PKIX_CertChainChecker
      **pChecker,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_nameconstraintschecker.c:26,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_nameconstraintschecker.c:28,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_nameconstraintschecker.c:31,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_nameconstraintschecker.c:31,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_nameconstraintschecker.c:37,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_nameconstraintschecker.c:38,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_nameconstraintschecker.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 43
    functionName: pkix_NameConstraintsCheckerState_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_nameconstraintschecker.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_NameConstraintsCheckerState_Destroy(\n        PKIX_PL_Object
      *object,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_nameconstraintschecker.c:65,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_nameconstraintschecker.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 81
    functionName: pkix_NameConstraintsCheckerState_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_nameconstraintschecker.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      pkix_NameConstraintsCheckerState_RegisterSelf(void *plContext)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_nameconstraintschecker.c:118,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_nameconstraintschecker.c:120,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_nameconstraintschecker.c:122,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_nameconstraintschecker.c:122,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_nameconstraintschecker.c:131,1
    - Dst: PKIX_PL_OID_Create
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_nameconstraintschecker.c:131,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_nameconstraintschecker.c:137,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_nameconstraintschecker.c:147,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_nameconstraintschecker.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 4
    argNames:
    - nameConstraints
    - numCerts
    - pCheckerState
    - plContext
    argTypes:
    - PKIX_PL_CertNameConstraints*
    - PKIX_UInt32
    - pkix_NameConstraintsCheckerState**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 150
    functionName: pkix_NameConstraintsCheckerState_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_nameconstraintschecker.c
    functionUses: 0
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_Alloc
    - PKIX_PL_OID_Create
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_NameConstraintsCheckerState_Create(\n    PKIX_PL_CertNameConstraints
      *nameConstraints,\n    PKIX_UInt32 numCerts,\n    pkix_NameConstraintsCheckerState
      **pCheckerState,\n    void *plContext)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_nameconstraintschecker.c:175,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_nameconstraintschecker.c:176,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_nameconstraintschecker.c:180,1
    - Dst: PKIX_CertChainChecker_GetCertChainCheckerState
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_nameconstraintschecker.c:180,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_nameconstraintschecker.c:188,1
    - Dst: pkix_IsCertSelfIssued
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_nameconstraintschecker.c:188,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_nameconstraintschecker.c:197,1
    - Dst: PKIX_PL_Cert_GetExtendedKeyUsage
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_nameconstraintschecker.c:197,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_nameconstraintschecker.c:203,1
    - Dst: PKIX_PL_OID_Create
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_nameconstraintschecker.c:203,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_nameconstraintschecker.c:209,1
    - Dst: pkix_List_Contains
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_nameconstraintschecker.c:209,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_nameconstraintschecker.c:221,1
    - Dst: PKIX_PL_Cert_CheckNameConstraints
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_nameconstraintschecker.c:221,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_nameconstraintschecker.c:229,1
    - Dst: PKIX_PL_Cert_GetNameConstraints
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_nameconstraintschecker.c:229,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_nameconstraintschecker.c:243,1
    - Dst: PKIX_PL_Cert_MergeNameConstraints
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_nameconstraintschecker.c:243,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_nameconstraintschecker.c:250,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_nameconstraintschecker.c:251,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_nameconstraintschecker.c:258,1
    - Dst: pkix_List_Remove
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_nameconstraintschecker.c:258,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_nameconstraintschecker.c:267,1
    - Dst: PKIX_CertChainChecker_SetCertChainCheckerState
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_nameconstraintschecker.c:267,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_nameconstraintschecker.c:273,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_nameconstraintschecker.c:274,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_nameconstraintschecker.c:275,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_nameconstraintschecker.c:277,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 43
    argCount: 5
    argNames:
    - checker
    - cert
    - unresolvedCriticalExtensions
    - pNBIOContext
    - plContext
    argTypes:
    - PKIX_CertChainChecker*
    - PKIX_PL_Cert*
    - PKIX_List*
    - void**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 278
    functionName: pkix_NameConstraintsChecker_Check
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_nameconstraintschecker.c
    functionUses: 0
    functionsReached:
    - pkix_List_Remove
    - PKIX_CertChainChecker_SetCertChainCheckerState
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_IsCertSelfIssued
    - PKIX_PL_Cert_CheckNameConstraints
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_PL_OID_Create
    - PKIX_PL_Cert_MergeNameConstraints
    - PKIX_DECREF
    - PKIX_PL_Cert_GetNameConstraints
    - pkix_List_Contains
    - PKIX_PL_Cert_GetExtendedKeyUsage
    - PKIX_CertChainChecker_GetCertChainCheckerState
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_NameConstraintsChecker_Check(\n        PKIX_CertChainChecker
      *checker,\n        PKIX_PL_Cert *cert,\n        PKIX_List *unresolvedCriticalExtensions,\n
      \       void **pNBIOContext,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_nameconstraintschecker.c:318,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_nameconstraintschecker.c:319,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_nameconstraintschecker.c:321,1
    - Dst: pkix_NameConstraintsCheckerState_Create
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_nameconstraintschecker.c:321,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_nameconstraintschecker.c:325,1
    - Dst: PKIX_CertChainChecker_Create
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_nameconstraintschecker.c:325,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_nameconstraintschecker.c:337,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_nameconstraintschecker.c:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - trustedNC
    - numCerts
    - pChecker
    - plContext
    argTypes:
    - PKIX_PL_CertNameConstraints*
    - PKIX_UInt32
    - PKIX_CertChainChecker**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 309
    functionDepth: 2
    functionLinenumber: 309
    functionLinenumberEnd: 340
    functionName: pkix_NameConstraintsChecker_Initialize
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_nameconstraintschecker.c
    functionUses: 0
    functionsReached:
    - PKIX_CertChainChecker_Create
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_NameConstraintsCheckerState_Create
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_NameConstraintsChecker_Initialize(\n        PKIX_PL_CertNameConstraints
      *trustedNC,\n        PKIX_UInt32 numCerts,\n        PKIX_CertChainChecker **pChecker,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:34,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:35,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:37,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:37,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:43,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:44,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:45,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:46,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:47,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:48,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:49,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:50,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:60,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:61,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:62,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 67
    functionName: pkix_PolicyCheckerState_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_PolicyCheckerState_Destroy(\n        PKIX_PL_Object
      *object,\n        void *plContext)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:128,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:130,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:132,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:132,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:137,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:141,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:146,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:146,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:164,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:164,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:171,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:171,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:176,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:176,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:181,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:185,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:191,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:197,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:203,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:206,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:209,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:215,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:222,1
    - Dst: pkix_SinglePolicyNode_ToString
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:222,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:228,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:233,1
    - Dst: pkix_SinglePolicyNode_ToString
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:233,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:239,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:243,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:249,1
    - Dst: PKIX_PL_Sprintf
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:249,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:280,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:281,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:282,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:283,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:284,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:285,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:286,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:287,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:288,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:289,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:290,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:291,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:292,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:293,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:294,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:296,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 64
    argCount: 3
    argNames:
    - object
    - pCheckerStateString
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_String**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 297
    functionName: pkix_PolicyCheckerState_ToString
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c
    functionUses: 0
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_PL_String_Create
    - pkix_SinglePolicyNode_ToString
    - PKIX_RETURN
    - PKIX_PL_Sprintf
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_TOSTRING
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_PolicyCheckerState_ToString(\n        PKIX_PL_Object
      *object,\n        PKIX_PL_String **pCheckerStateString,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:322,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 339
    functionName: pkix_PolicyCheckerState_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      pkix_PolicyCheckerState_RegisterSelf(void *plContext)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:397,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:398,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:400,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:400,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:409,1
    - Dst: PKIX_PL_OID_Create
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:409,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:415,1
    - Dst: PKIX_PL_OID_Create
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:415,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:421,1
    - Dst: PKIX_PL_OID_Create
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:421,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:427,1
    - Dst: PKIX_PL_OID_Create
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:427,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:433,1
    - Dst: PKIX_PL_OID_Create
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:433,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:440,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:442,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:445,1
    - Dst: PKIX_List_IsEmpty
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:445,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:453,1
    - Dst: pkix_List_Contains
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:453,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:478,1
    - Dst: pkix_PolicyChecker_MakeSingleton
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:478,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:485,1
    - Dst: pkix_PolicyNode_Create
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:485,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:499,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:511,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:513,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:515,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 44
    argCount: 8
    argNames:
    - initialPolicies
    - policyQualifiersRejected
    - initialPolicyMappingInhibit
    - initialExplicitPolicy
    - initialAnyPolicyInhibit
    - numCerts
    - pCheckerState
    - plContext
    argTypes:
    - PKIX_List*
    - PKIX_Boolean
    - PKIX_Boolean
    - PKIX_Boolean
    - PKIX_Boolean
    - PKIX_UInt32
    - PKIX_PolicyCheckerState**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 381
    functionDepth: 2
    functionLinenumber: 381
    functionLinenumberEnd: 516
    functionName: pkix_PolicyCheckerState_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c
    functionUses: 0
    functionsReached:
    - PKIX_INCREF
    - pkix_PolicyNode_Create
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_IsEmpty
    - PKIX_PL_Object_Alloc
    - PKIX_PL_OID_Create
    - PKIX_ENTER
    - PKIX_DECREF
    - pkix_PolicyChecker_MakeSingleton
    - pkix_List_Contains
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_PolicyCheckerState_Create(\n        PKIX_List *initialPolicies,\n
      \       PKIX_Boolean policyQualifiersRejected,\n        PKIX_Boolean initialPolicyMappingInhibit,\n
      \       PKIX_Boolean initialExplicitPolicy,\n        PKIX_Boolean initialAnyPolicyInhibit,\n
      \       PKIX_UInt32 numCerts,\n        PKIX_PolicyCheckerState **pCheckerState,\n
      \       void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:564,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:565,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:567,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:567,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:571,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:571,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:575,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:577,1
    - Dst: PKIX_PL_CertPolicyMap_GetIssuerDomainPolicy
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:577,1
    - Dst: PKIX_EQUALS
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:581,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:586,1
    - Dst: PKIX_PL_CertPolicyMap_GetSubjectDomainPolicy
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:586,1
    - Dst: PKIX_EQUALS
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:590,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:595,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:596,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:597,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:604,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:605,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:606,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:607,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 4
    argNames:
    - certPolicyMaps
    - policy
    - pFound
    - plContext
    argTypes:
    - PKIX_List*
    - PKIX_PL_OID*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 550
    functionDepth: 1
    functionLinenumber: 550
    functionLinenumberEnd: 608
    functionName: pkix_PolicyChecker_MapContains
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_GetLength
    - PKIX_PL_CertPolicyMap_GetIssuerDomainPolicy
    - PKIX_EQUALS
    - PKIX_PL_CertPolicyMap_GetSubjectDomainPolicy
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_PolicyChecker_MapContains(\n        PKIX_List *certPolicyMaps,\n
      \       PKIX_PL_OID *policy,\n        PKIX_Boolean *pFound,\n        void *plContext)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:657,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:660,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:663,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:663,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:671,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:671,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:675,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:677,1
    - Dst: PKIX_PL_CertPolicyMap_GetIssuerDomainPolicy
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:677,1
    - Dst: PKIX_EQUALS
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:681,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:687,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:687,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:691,1
    - Dst: PKIX_PL_CertPolicyMap_GetSubjectDomainPolicy
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:691,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:695,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:695,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:702,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:703,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:704,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:708,1
    - Dst: PKIX_List_SetImmutable
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:708,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:717,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:720,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:721,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:722,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:724,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 4
    argNames:
    - certPolicyMaps
    - policy
    - pSubjectDomainPolicies
    - plContext
    argTypes:
    - PKIX_List*
    - PKIX_PL_OID*
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 642
    functionDepth: 1
    functionLinenumber: 642
    functionLinenumberEnd: 725
    functionName: pkix_PolicyChecker_MapGetSubjectDomainPolicies
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c
    functionUses: 0
    functionsReached:
    - PKIX_List_SetImmutable
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_Create
    - PKIX_List_GetLength
    - PKIX_PL_CertPolicyMap_GetIssuerDomainPolicy
    - PKIX_EQUALS
    - PKIX_PL_CertPolicyMap_GetSubjectDomainPolicy
    - PKIX_List_AppendItem
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_TWO
    - PKIX_NULLCHECK_ONE
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_PolicyChecker_MapGetSubjectDomainPolicies(\n        PKIX_List
      *certPolicyMaps,\n        PKIX_PL_OID *policy,\n        PKIX_List **pSubjectDomainPolicies,\n
      \       void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:768,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:770,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:772,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:772,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:775,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:775,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:779,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:779,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:783,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:785,1
    - Dst: PKIX_PL_CertPolicyMap_GetIssuerDomainPolicy
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:785,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:789,1
    - Dst: pkix_List_Contains
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:789,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:797,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:797,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:804,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:805,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:813,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:816,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:817,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:819,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 3
    argNames:
    - certPolicyMaps
    - pMappedPolicies
    - plContext
    argTypes:
    - PKIX_List*
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 755
    functionDepth: 1
    functionLinenumber: 755
    functionLinenumberEnd: 820
    functionName: pkix_PolicyChecker_MapGetMappedPolicies
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_Create
    - PKIX_List_GetLength
    - PKIX_PL_CertPolicyMap_GetIssuerDomainPolicy
    - PKIX_List_AppendItem
    - PKIX_ENTER
    - PKIX_DECREF
    - pkix_List_Contains
    - PKIX_NULLCHECK_TWO
    - PKIX_NULLCHECK_ONE
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_PolicyChecker_MapGetMappedPolicies(\n        PKIX_List
      *certPolicyMaps,\n        PKIX_List **pMappedPolicies,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:854,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:855,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:857,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:857,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:860,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:860,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:865,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:865,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:868,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:868,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:871,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:878,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:879,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:881,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 3
    argNames:
    - list
    - pMutableCopy
    - plContext
    argTypes:
    - PKIX_List*
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 843
    functionDepth: 1
    functionLinenumber: 843
    functionLinenumberEnd: 882
    functionName: pkix_PolicyChecker_MakeMutableCopy
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_Create
    - PKIX_List_GetLength
    - PKIX_List_AppendItem
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_TWO
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_PolicyChecker_MakeMutableCopy(\n        PKIX_List
      *list,\n        PKIX_List **pMutableCopy,\n        void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:917,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:918,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:920,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:920,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:923,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:923,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:928,1
    - Dst: PKIX_List_SetImmutable
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:928,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:936,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:939,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - listItem
    - immutability
    - pList
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_Boolean
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 908
    functionDepth: 1
    functionLinenumber: 908
    functionLinenumberEnd: 940
    functionName: pkix_PolicyChecker_MakeSingleton
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c
    functionUses: 1
    functionsReached:
    - PKIX_List_SetImmutable
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_Create
    - PKIX_List_AppendItem
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_PolicyChecker_MakeSingleton(\n        PKIX_PL_Object
      *listItem,\n        PKIX_Boolean immutability,\n        PKIX_List **pList,\n
      \       void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1003,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1004,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1008,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1013,1
    - Dst: pkix_PolicyChecker_MakeSingleton
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1013,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1021,1
    - Dst: pkix_PolicyNode_Create
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1021,1
    - Dst: PKIX_EQUALS
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1037,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1041,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1042,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1047,1
    - Dst: pkix_PolicyNode_AddToParent
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1047,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1050,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1050,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1055,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1056,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1057,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 6
    argNames:
    - parent
    - policyOID
    - qualifiers
    - subjectDomainPolicies
    - state
    - plContext
    argTypes:
    - PKIX_PolicyNode*
    - PKIX_PL_OID*
    - PKIX_List*
    - PKIX_List*
    - PKIX_PolicyCheckerState*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 990
    functionDepth: 2
    functionLinenumber: 990
    functionLinenumberEnd: 1058
    functionName: pkix_PolicyChecker_Spawn
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c
    functionUses: 0
    functionsReached:
    - PKIX_INCREF
    - pkix_PolicyNode_Create
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_EQUALS
    - pkix_PolicyNode_AddToParent
    - PKIX_PL_Object_InvalidateCache
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_DECREF
    - pkix_PolicyChecker_MakeSingleton
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_PolicyChecker_Spawn(\n        PKIX_PolicyNode *parent,\n
      \       PKIX_PL_OID *policyOID,\n        PKIX_List *qualifiers,  /* CertPolicyQualifiers
      */\n        PKIX_List *subjectDomainPolicies,\n        PKIX_PolicyCheckerState
      *state,\n        void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1129,1
    - Dst: PKIX_NULLCHECK_FOUR
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1132,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1135,1
    - Dst: PKIX_PolicyNode_GetDepth
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1135,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1140,1
    - Dst: pkix_PolicyNode_GetChildrenMutable
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1140,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1145,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1145,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1152,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1152,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1159,1
    - Dst: pkix_PolicyChecker_CheckPolicyRecursive
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1159,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1169,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1174,1
    - Dst: PKIX_PolicyNode_GetExpectedPolicies
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1174,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1178,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1180,1
    - Dst: pkix_List_Contains
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1180,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1188,1
    - Dst: pkix_PolicyChecker_Spawn
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1188,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1203,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1204,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1205,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1207,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 7
    argNames:
    - policyOID
    - policyQualifiers
    - subjectDomainPolicies
    - currentNode
    - state
    - pChildNodeCreated
    - plContext
    argTypes:
    - PKIX_PL_OID*
    - PKIX_List*
    - PKIX_List*
    - PKIX_PolicyNode*
    - PKIX_PolicyCheckerState*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1208
      start: 1111
    functionDepth: 3
    functionLinenumber: 1111
    functionLinenumberEnd: 1208
    functionName: pkix_PolicyChecker_CheckPolicyRecursive
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c
    functionUses: 1
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_NULLCHECK_ONE
    - PKIX_List_GetLength
    - PKIX_NULLCHECK_FOUR
    - pkix_PolicyChecker_Spawn
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_PolicyNode_GetExpectedPolicies
    - pkix_PolicyChecker_CheckPolicyRecursive
    - pkix_List_Contains
    - PKIX_PolicyNode_GetDepth
    - pkix_PolicyNode_GetChildrenMutable
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_PolicyChecker_CheckPolicyRecursive(\n        PKIX_PL_OID
      *policyOID,\n        PKIX_List *policyQualifiers,\n        PKIX_List *subjectDomainPolicies,\n
      \       PKIX_PolicyNode *currentNode,\n        PKIX_PolicyCheckerState *state,\n
      \       PKIX_Boolean *pChildNodeCreated,\n        void *plContext)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1260,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1261,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1271,1
    - Dst: pkix_PolicyChecker_MapGetSubjectDomainPolicies
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1271,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1288,1
    - Dst: pkix_PolicyChecker_CheckPolicyRecursive
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1288,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1316,1
    - Dst: pkix_List_Contains
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1316,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1324,1
    - Dst: pkix_PolicyChecker_Spawn
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1324,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1346,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1355,1
    - Dst: pkix_List_Contains
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1355,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1362,1
    - Dst: pkix_List_Remove
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1362,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1373,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1375,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 6
    argNames:
    - policyOID
    - policyQualifiers
    - cert
    - maps
    - state
    - plContext
    argTypes:
    - PKIX_PL_OID*
    - PKIX_List*
    - PKIX_PL_Cert*
    - PKIX_List*
    - PKIX_PolicyCheckerState*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1376
      start: 1246
    functionDepth: 4
    functionLinenumber: 1246
    functionLinenumberEnd: 1376
    functionName: pkix_PolicyChecker_CheckPolicy
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c
    functionUses: 0
    functionsReached:
    - pkix_List_Remove
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_PolicyChecker_Spawn
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_DECREF
    - pkix_PolicyChecker_CheckPolicyRecursive
    - pkix_PolicyChecker_MapGetSubjectDomainPolicies
    - pkix_List_Contains
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_PolicyChecker_CheckPolicy(\n        PKIX_PL_OID
      *policyOID,\n        PKIX_List *policyQualifiers,\n        PKIX_PL_Cert *cert,\n
      \       PKIX_List *maps,\n        PKIX_PolicyCheckerState *state,\n        void
      *plContext)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1446,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1447,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1449,1
    - Dst: PKIX_PolicyNode_GetDepth
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1449,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1453,1
    - Dst: pkix_PolicyNode_GetChildrenMutable
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1453,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1458,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1458,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1466,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1466,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1473,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1474,1
    - Dst: pkix_PolicyChecker_CheckAny
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1474,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1482,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1486,1
    - Dst: PKIX_PolicyNode_GetExpectedPolicies
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1486,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1491,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1493,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1493,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1498,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1498,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1505,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1513,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1513,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1520,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1522,1
    - Dst: PKIX_PolicyNode_GetValidPolicy
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1522,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1526,1
    - Dst: PKIX_EQUALS
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1528,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1531,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1532,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1537,1
    - Dst: pkix_PolicyChecker_MapGetSubjectDomainPolicies
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1538,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1545,1
    - Dst: pkix_PolicyChecker_Spawn
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1545,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1553,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1556,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1562,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1563,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1564,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1565,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1566,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1567,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1569,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 51
    argCount: 5
    argNames:
    - currentNode
    - qualsOfAny
    - policyMaps
    - state
    - plContext
    argTypes:
    - PKIX_PolicyNode*
    - PKIX_List*
    - PKIX_List*
    - PKIX_PolicyCheckerState*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1571
      start: 1425
    functionDepth: 3
    functionLinenumber: 1425
    functionLinenumberEnd: 1571
    functionName: pkix_PolicyChecker_CheckAny
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c
    functionUses: 1
    functionsReached:
    - PKIX_PolicyNode_GetValidPolicy
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_NULLCHECK_ONE
    - PKIX_List_GetLength
    - pkix_PolicyChecker_Spawn
    - PKIX_EQUALS
    - pkix_PolicyChecker_CheckAny
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_PolicyNode_GetExpectedPolicies
    - pkix_PolicyChecker_MapGetSubjectDomainPolicies
    - PKIX_PolicyNode_GetDepth
    - PKIX_NULLCHECK_TWO
    - pkix_PolicyNode_GetChildrenMutable
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_PolicyChecker_CheckAny(\n        PKIX_PolicyNode
      *currentNode,\n        PKIX_List *qualsOfAny,  /* CertPolicyQualifiers */\n
      \       PKIX_List *policyMaps,  /* CertPolicyMaps */\n        PKIX_PolicyCheckerState
      *state,\n        void *plContext)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1642,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1651,1
    - Dst: PKIX_NULLCHECK_FOUR
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1654,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1656,1
    - Dst: PKIX_PolicyNode_GetValidPolicy
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1656,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1660,1
    - Dst: PKIX_EQUALS
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1662,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1669,1
    - Dst: PKIX_PolicyNode_GetParent
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1669,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1680,1
    - Dst: PKIX_PolicyNode_GetValidPolicy
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1680,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1684,1
    - Dst: PKIX_EQUALS
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1686,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1700,1
    - Dst: pkix_List_Contains
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1700,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1717,1
    - Dst: pkix_List_Remove
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1717,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1728,1
    - Dst: PKIX_PolicyNode_GetDepth
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1728,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1741,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1741,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1747,1
    - Dst: PKIX_PolicyNode_GetPolicyQualifiers
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1747,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1753,1
    - Dst: PKIX_PolicyNode_IsCritical
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1753,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1758,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1762,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1762,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1769,1
    - Dst: pkix_PolicyChecker_Spawn
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1769,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1778,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1794,1
    - Dst: pkix_PolicyNode_GetChildrenMutable
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1794,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1799,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1801,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1801,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1807,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1807,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1814,1
    - Dst: pkix_PolicyChecker_CalculateIntersection
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1814,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1820,1
    - Dst: PKIX_List_DeleteItem
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1820,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1823,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1823,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1828,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1831,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1831,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1840,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1841,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1842,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1843,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1844,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1845,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1846,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1848,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 70
    argCount: 5
    argNames:
    - currentNode
    - state
    - nominees
    - pShouldBePruned
    - plContext
    argTypes:
    - PKIX_PolicyNode*
    - PKIX_PolicyCheckerState*
    - PKIX_List*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1850
      start: 1616
    functionDepth: 3
    functionLinenumber: 1616
    functionLinenumberEnd: 1850
    functionName: pkix_PolicyChecker_CalculateIntersection
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c
    functionUses: 1
    functionsReached:
    - PKIX_RETURN
    - PKIX_NULLCHECK_FOUR
    - PKIX_EQUALS
    - pkix_PolicyChecker_Spawn
    - PKIX_DECREF
    - PKIX_PolicyNode_GetPolicyQualifiers
    - pkix_List_Contains
    - PKIX_ERROR
    - PKIX_NULLCHECK_ONE
    - pkix_List_Remove
    - PKIX_PolicyNode_GetValidPolicy
    - PKIX_PL_Object_InvalidateCache
    - PKIX_ENTER
    - pkix_PolicyChecker_CalculateIntersection
    - PKIX_PolicyNode_IsCritical
    - pkix_PolicyNode_GetChildrenMutable
    - PKIX_List_GetLength
    - PKIX_NULLCHECK_TWO
    - PKIX_CHECK
    - PKIX_List_DeleteItem
    - PKIX_PolicyNode_GetParent
    - PKIX_PolicyNode_GetDepth
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_PolicyChecker_CalculateIntersection(\n        PKIX_PolicyNode
      *currentNode,\n        PKIX_PolicyCheckerState *state,\n        PKIX_List *nominees,
      /* OIDs */\n        PKIX_Boolean *pShouldBePruned,\n        void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1900,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1903,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1914,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1914,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1918,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1918,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1926,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1926,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1933,1
    - Dst: pkix_PolicyChecker_MapGetSubjectDomainPolicies
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1933,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1942,1
    - Dst: pkix_List_AppendUnique
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1942,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1948,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1951,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1951,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1957,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1975,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1975,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1983,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1983,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1990,1
    - Dst: pkix_PolicyChecker_MapGetSubjectDomainPolicies
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1990,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1997,1
    - Dst: pkix_PolicyChecker_Spawn
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:1997,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2006,1
    - Dst: pkix_List_AppendUnique
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2006,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2012,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2013,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2017,1
    - Dst: PKIX_List_SetImmutable
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2017,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2020,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2021,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2027,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2028,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2029,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2031,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 5
    argNames:
    - policyMaps
    - certPoliciesIncludeAny
    - qualsOfAny
    - state
    - plContext
    argTypes:
    - PKIX_List*
    - PKIX_Boolean
    - PKIX_List*
    - PKIX_PolicyCheckerState*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2032
      start: 1886
    functionDepth: 3
    functionLinenumber: 1886
    functionLinenumberEnd: 2032
    functionName: pkix_PolicyChecker_PolicyMapProcessing
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c
    functionUses: 0
    functionsReached:
    - PKIX_INCREF
    - PKIX_List_SetImmutable
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_Create
    - pkix_List_AppendUnique
    - PKIX_List_GetLength
    - pkix_PolicyChecker_Spawn
    - PKIX_List_AppendItem
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_DECREF
    - pkix_PolicyChecker_MapGetSubjectDomainPolicies
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_PolicyChecker_PolicyMapProcessing(\n        PKIX_List
      *policyMaps,  /* CertPolicyMaps */\n        PKIX_Boolean certPoliciesIncludeAny,\n
      \       PKIX_List *qualsOfAny,\n        PKIX_PolicyCheckerState *state,\n        void
      *plContext)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2077,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2080,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2083,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2083,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2087,1
    - Dst: PKIX_PL_String_GetEncoded
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2087,1
    - Dst: PKIX_DEBUG_ARG
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2095,1
    - Dst: PKIX_FREE
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2097,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2098,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2102,1
    - Dst: pkix_IsCertSelfIssued
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2102,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2111,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2111,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2118,1
    - Dst: PKIX_PL_Cert_GetRequireExplicitPolicy
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2118,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2143,1
    - Dst: pkix_PolicyChecker_MakeMutableCopy
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2143,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2147,1
    - Dst: pkix_PolicyChecker_CalculateIntersection
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2147,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2156,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2160,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2160,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2165,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2165,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2171,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2171,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2175,1
    - Dst: PKIX_PL_String_GetEncoded
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2175,1
    - Dst: PKIX_DEBUG_ARG
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2183,1
    - Dst: PKIX_FREE
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2186,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2187,1
    - Dst: PKIX_DEBUG
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2189,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2197,1
    - Dst: pkix_PolicyNode_Prune
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2197,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2205,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2210,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2210,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2215,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2215,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2220,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2220,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2223,1
    - Dst: PKIX_PL_String_GetEncoded
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2223,1
    - Dst: PKIX_DEBUG_ARG
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2230,1
    - Dst: PKIX_FREE
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2232,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2233,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2238,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2240,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 64
    argCount: 3
    argNames:
    - cert
    - state
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_PolicyCheckerState*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2241
      start: 2061
    functionDepth: 4
    functionLinenumber: 2061
    functionLinenumberEnd: 2241
    functionName: pkix_PolicyChecker_WrapUpProcessing
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c
    functionUses: 0
    functionsReached:
    - PKIX_DEBUG
    - PKIX_FREE
    - PKIX_PL_String_GetEncoded
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_PolicyNode_Prune
    - PKIX_PL_Object_ToString
    - pkix_IsCertSelfIssued
    - PKIX_DEBUG_ARG
    - pkix_PolicyChecker_MakeMutableCopy
    - PKIX_PL_Cert_GetRequireExplicitPolicy
    - PKIX_PL_Object_InvalidateCache
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_DECREF
    - pkix_PolicyChecker_CalculateIntersection
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_PolicyChecker_WrapUpProcessing(\n        PKIX_PL_Cert
      *cert,\n        PKIX_PolicyCheckerState *state,\n        void *plContext)"
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2294,1
    - Dst: PKIX_NULLCHECK_FOUR
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2295,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2299,1
    - Dst: PKIX_CertChainChecker_GetCertChainCheckerState
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2299,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2303,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2306,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2306,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2309,1
    - Dst: PKIX_PL_String_GetEncoded
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2309,1
    - Dst: PKIX_DEBUG_ARG
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2316,1
    - Dst: PKIX_FREE
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2317,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2318,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2329,1
    - Dst: PKIX_PL_Cert_GetPolicyMappings
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2329,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2336,1
    - Dst: pkix_PolicyChecker_MapContains
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2336,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2341,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2344,1
    - Dst: pkix_PolicyChecker_MapGetMappedPolicies
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2344,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2348,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2349,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2356,1
    - Dst: PKIX_PL_Cert_GetPolicyInformation
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2356,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2361,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2361,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2368,1
    - Dst: PKIX_PL_Cert_AreCertPoliciesCritical
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2368,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2375,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2375,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2382,1
    - Dst: PKIX_PL_CertPolicyInfo_GetPolicyId
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2382,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2386,1
    - Dst: PKIX_PL_CertPolicyInfo_GetPolQualifiers
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2386,1
    - Dst: PKIX_EQUALS
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2390,1
    - Dst: pkix_PolicyChecker_CheckPolicy
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2400,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2416,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2417,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2421,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2422,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2423,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2435,1
    - Dst: pkix_IsCertSelfIssued
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2435,1
    - Dst: pkix_PolicyChecker_CheckAny
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2443,1
    - Dst: pkix_PolicyNode_Prune
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2457,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2466,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2467,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2471,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2471,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2477,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2478,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2479,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2481,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2481,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2489,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2496,1
    - Dst: pkix_List_Remove
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2496,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2502,1
    - Dst: pkix_List_Remove
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2502,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2508,1
    - Dst: pkix_List_Remove
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2508,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2514,1
    - Dst: pkix_List_Remove
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2514,1
    - Dst: pkix_PolicyChecker_PolicyMapProcessing
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2526,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2538,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2543,1
    - Dst: pkix_IsCertSelfIssued
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2543,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2560,1
    - Dst: PKIX_PL_Cert_GetRequireExplicitPolicy
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2560,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2572,1
    - Dst: PKIX_PL_Cert_GetPolicyMappingInhibited
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2572,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2584,1
    - Dst: PKIX_PL_Cert_GetInhibitAnyPolicy
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2584,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2596,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2596,1
    - Dst: pkix_PolicyChecker_WrapUpProcessing
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2603,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2610,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2613,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2614,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2632,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2633,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2634,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2636,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2642,1
    - Dst: PKIX_CertChainChecker_SetCertChainCheckerState
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2642,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2650,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2650,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2653,1
    - Dst: PKIX_PL_String_GetEncoded
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2653,1
    - Dst: PKIX_DEBUG_ARG
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2660,1
    - Dst: PKIX_FREE
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2661,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2662,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2665,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2665,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2668,1
    - Dst: PKIX_PL_String_GetEncoded
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2668,1
    - Dst: PKIX_DEBUG_ARG
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2675,1
    - Dst: PKIX_FREE
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2676,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2677,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2681,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2682,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2683,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2684,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2685,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2686,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2687,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2688,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2689,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2691,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 194
    argCount: 5
    argNames:
    - checker
    - cert
    - unresolvedCriticals
    - pNBIOContext
    - plContext
    argTypes:
    - PKIX_CertChainChecker*
    - PKIX_PL_Cert*
    - PKIX_List*
    - void**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2692
      start: 2258
    functionDepth: 5
    functionLinenumber: 2258
    functionLinenumberEnd: 2692
    functionName: pkix_PolicyChecker_Check
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c
    functionUses: 0
    functionsReached:
    - PKIX_CertChainChecker_SetCertChainCheckerState
    - PKIX_RETURN
    - pkix_IsCertSelfIssued
    - PKIX_PL_CertPolicyInfo_GetPolQualifiers
    - PKIX_NULLCHECK_FOUR
    - PKIX_EQUALS
    - PKIX_PL_Cert_AreCertPoliciesCritical
    - PKIX_DECREF
    - pkix_PolicyChecker_WrapUpProcessing
    - PKIX_ERROR
    - PKIX_INCREF
    - PKIX_FREE
    - pkix_List_Remove
    - pkix_PolicyNode_Prune
    - PKIX_PL_Object_ToString
    - PKIX_PL_Cert_GetPolicyMappings
    - PKIX_PL_Cert_GetRequireExplicitPolicy
    - PKIX_PL_Object_InvalidateCache
    - PKIX_ENTER
    - PKIX_PL_String_GetEncoded
    - PKIX_List_GetLength
    - PKIX_PL_Cert_GetPolicyInformation
    - pkix_PolicyChecker_MapContains
    - pkix_PolicyChecker_CheckAny
    - PKIX_PL_Cert_GetInhibitAnyPolicy
    - PKIX_PL_Cert_GetPolicyMappingInhibited
    - PKIX_NULLCHECK_TWO
    - PKIX_CertChainChecker_GetCertChainCheckerState
    - pkix_PolicyChecker_MapGetMappedPolicies
    - pkix_PolicyChecker_CheckPolicy
    - PKIX_CHECK
    - PKIX_PL_CertPolicyInfo_GetPolicyId
    - PKIX_DEBUG_ARG
    - pkix_PolicyChecker_PolicyMapProcessing
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_PolicyChecker_Check(\n        PKIX_CertChainChecker
      *checker,\n        PKIX_PL_Cert *cert,\n        PKIX_List *unresolvedCriticals,
      \ /* OIDs */\n        void **pNBIOContext,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2746,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2747,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2749,1
    - Dst: pkix_PolicyCheckerState_Create
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2749,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2761,1
    - Dst: pkix_PolicyChecker_MakeSingleton
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2761,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2768,1
    - Dst: PKIX_CertChainChecker_Create
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2768,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2779,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2780,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c:2781,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 8
    argNames:
    - initialPolicies
    - policyQualifiersRejected
    - initialPolicyMappingInhibit
    - initialExplicitPolicy
    - initialAnyPolicyInhibit
    - numCerts
    - pChecker
    - plContext
    argTypes:
    - PKIX_List*
    - PKIX_Boolean
    - PKIX_Boolean
    - PKIX_Boolean
    - PKIX_Boolean
    - PKIX_UInt32
    - PKIX_CertChainChecker**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2783
      start: 2733
    functionDepth: 3
    functionLinenumber: 2733
    functionLinenumberEnd: 2783
    functionName: pkix_PolicyChecker_Initialize
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_policychecker.c
    functionUses: 0
    functionsReached:
    - PKIX_CertChainChecker_Create
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_PolicyCheckerState_Create
    - PKIX_ENTER
    - PKIX_DECREF
    - pkix_PolicyChecker_MakeSingleton
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_PolicyChecker_Initialize(\n        PKIX_List *initialPolicies,\n
      \       PKIX_Boolean policyQualifiersRejected,\n        PKIX_Boolean initialPolicyMappingInhibit,\n
      \       PKIX_Boolean initialExplicitPolicy,\n        PKIX_Boolean initialAnyPolicyInhibit,\n
      \       PKIX_UInt32 numCerts,\n        PKIX_CertChainChecker **pChecker,\n        void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_expirationchecker.c:30,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_expirationchecker.c:31,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_expirationchecker.c:35,1
    - Dst: PKIX_CertChainChecker_GetCertChainCheckerState
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_expirationchecker.c:35,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_expirationchecker.c:39,1
    - Dst: PKIX_PL_Cert_CheckValidity
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_expirationchecker.c:39,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_expirationchecker.c:44,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_expirationchecker.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 5
    argNames:
    - checker
    - cert
    - unresolvedCriticalExtensions
    - pNBIOContext
    - plContext
    argTypes:
    - PKIX_CertChainChecker*
    - PKIX_PL_Cert*
    - PKIX_List*
    - void**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 20
    functionDepth: 2
    functionLinenumber: 20
    functionLinenumberEnd: 48
    functionName: pkix_ExpirationChecker_Check
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_expirationchecker.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_DECREF
    - PKIX_PL_Cert_CheckValidity
    - PKIX_CertChainChecker_GetCertChainCheckerState
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_ExpirationChecker_Check(\n        PKIX_CertChainChecker
      *checker,\n        PKIX_PL_Cert *cert,\n        PKIX_List *unresolvedCriticalExtensions,\n
      \       void **pNBIOContext,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_expirationchecker.c:84,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_expirationchecker.c:85,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_expirationchecker.c:89,1
    - Dst: PKIX_PL_Date_Create_UTCTime
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_expirationchecker.c:89,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_expirationchecker.c:97,1
    - Dst: PKIX_CertChainChecker_Create
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_expirationchecker.c:97,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_expirationchecker.c:109,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_expirationchecker.c:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - testDate
    - pChecker
    - plContext
    argTypes:
    - PKIX_PL_Date*
    - PKIX_CertChainChecker**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 113
    functionName: pkix_ExpirationChecker_Initialize
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_expirationchecker.c
    functionUses: 0
    functionsReached:
    - PKIX_CertChainChecker_Create
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    - PKIX_PL_Date_Create_UTCTime
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_ExpirationChecker_Initialize(\n        PKIX_PL_Date
      *testDate,\n        PKIX_CertChainChecker **pChecker,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationmethod.c:27,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationmethod.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 7
    argNames:
    - method
    - methodType
    - flags
    - priority
    - localRevChecker
    - externalRevChecker
    - plContext
    argTypes:
    - pkix_RevocationMethod*
    - PKIX_RevocationMethodType
    - PKIX_UInt32
    - PKIX_UInt32
    - pkix_LocalRevocationCheckFn
    - pkix_ExternalRevocationCheckFn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 36
    functionName: pkix_RevocationMethod_Init
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_revocationmethod.c
    functionUses: 1
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_RevocationMethod_Init(\n    pkix_RevocationMethod
      *method,\n    PKIX_RevocationMethodType methodType,\n    PKIX_UInt32 flags,\n
      \   PKIX_UInt32 priority,\n    pkix_LocalRevocationCheckFn localRevChecker,\n
      \   pkix_ExternalRevocationCheckFn externalRevChecker,\n    void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationmethod.c:48,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationmethod.c:49,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationmethod.c:53,1
    - Dst: pkix_RevocationMethod_Init
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationmethod.c:54,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_revocationmethod.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - object
    - newObject
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 66
    functionName: pkix_RevocationMethod_Duplicate
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_revocationmethod.c
    functionUses: 0
    functionsReached:
    - pkix_RevocationMethod_Init
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_RevocationMethod_Duplicate(\n        PKIX_PL_Object
      *object,\n        PKIX_PL_Object *newObject,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c:40,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c:41,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c:43,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c:43,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c:48,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c:49,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 54
    functionName: pkix_EkuChecker_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_EkuChecker_Destroy(\n        PKIX_PL_Object *object,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c:76,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 83
    functionName: pkix_EkuChecker_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      pkix_EkuChecker_RegisterSelf(void *plContext)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c:120,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c:121,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c:123,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c:123,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c:131,1
    - Dst: PKIX_ProcessingParams_GetTargetCertConstraints
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c:131,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c:138,1
    - Dst: PKIX_CertSelector_GetCommonCertSelectorParams
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c:138,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c:143,1
    - Dst: PKIX_ComCertSelParams_GetExtendedKeyUsage
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c:143,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c:150,1
    - Dst: PKIX_PL_OID_Create
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c:150,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c:163,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c:164,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c:165,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c:166,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c:168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 3
    argNames:
    - params
    - pState
    - plContext
    argTypes:
    - PKIX_ProcessingParams*
    - pkix_EkuChecker**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 169
    functionName: pkix_EkuChecker_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ComCertSelParams_GetExtendedKeyUsage
    - PKIX_CertSelector_GetCommonCertSelectorParams
    - PKIX_PL_Object_Alloc
    - PKIX_ENTER
    - PKIX_ProcessingParams_GetTargetCertConstraints
    - PKIX_PL_OID_Create
    - PKIX_DECREF
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_EkuChecker_Create(\n        PKIX_ProcessingParams
      *params,\n        pkix_EkuChecker **pState,\n        void *plContext)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c:213,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c:214,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c:218,1
    - Dst: PKIX_CertChainChecker_GetCertChainCheckerState
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c:219,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c:228,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c:229,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c:236,1
    - Dst: PKIX_PL_Cert_GetExtendedKeyUsage
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c:237,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c:247,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c:248,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c:252,1
    - Dst: pkix_List_Contains
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c:253,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c:259,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c:272,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c:273,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c:274,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c:276,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 5
    argNames:
    - checker
    - cert
    - unresolvedCriticalExtensions
    - pNBIOContext
    - plContext
    argTypes:
    - PKIX_CertChainChecker*
    - PKIX_PL_Cert*
    - PKIX_List*
    - void**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 277
    functionName: pkix_EkuChecker_Check
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_GetLength
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_DECREF
    - pkix_List_Contains
    - PKIX_PL_Cert_GetExtendedKeyUsage
    - PKIX_CertChainChecker_GetCertChainCheckerState
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_EkuChecker_Check(\n        PKIX_CertChainChecker
      *checker,\n        PKIX_PL_Cert *cert,\n        PKIX_List *unresolvedCriticalExtensions,\n
      \       void **pNBIOContext,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c:292,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c:293,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c:300,1
    - Dst: pkix_EkuChecker_Create
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c:300,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c:304,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c:304,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c:307,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c:307,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c:313,1
    - Dst: PKIX_CertChainChecker_Create
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c:313,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c:324,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c:325,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - params
    - pEkuChecker
    - plContext
    argTypes:
    - PKIX_ProcessingParams*
    - PKIX_CertChainChecker**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 283
    functionDepth: 3
    functionLinenumber: 283
    functionLinenumberEnd: 328
    functionName: PKIX_EkuChecker_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_ekuchecker.c
    functionUses: 0
    functionsReached:
    - PKIX_CertChainChecker_Create
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_Create
    - PKIX_List_AppendItem
    - PKIX_ENTER
    - PKIX_DECREF
    - pkix_EkuChecker_Create
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_EkuChecker_Create(\n        PKIX_ProcessingParams
      *params,\n        PKIX_CertChainChecker **pEkuChecker,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_basicconstraintschecker.c:26,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_basicconstraintschecker.c:29,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_basicconstraintschecker.c:32,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_basicconstraintschecker.c:32,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_basicconstraintschecker.c:38,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_basicconstraintschecker.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 43
    functionName: pkix_BasicConstraintsCheckerState_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_basicconstraintschecker.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_BasicConstraintsCheckerState_Destroy(\n        PKIX_PL_Object
      *object,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_basicconstraintschecker.c:62,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_basicconstraintschecker.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 78
    functionName: pkix_BasicConstraintsCheckerState_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_basicconstraintschecker.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      pkix_BasicConstraintsCheckerState_RegisterSelf(void *plContext)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_basicconstraintschecker.c:110,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_basicconstraintschecker.c:113,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_basicconstraintschecker.c:115,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_basicconstraintschecker.c:115,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_basicconstraintschecker.c:126,1
    - Dst: PKIX_PL_OID_Create
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_basicconstraintschecker.c:126,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_basicconstraintschecker.c:137,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_basicconstraintschecker.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - certsRemaining
    - pState
    - plContext
    argTypes:
    - PKIX_UInt32
    - pkix_BasicConstraintsCheckerState**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 140
    functionName: pkix_BasicConstraintsCheckerState_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_basicconstraintschecker.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_Alloc
    - PKIX_PL_OID_Create
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_BasicConstraintsCheckerState_Create(\n        PKIX_UInt32
      certsRemaining,\n        pkix_BasicConstraintsCheckerState **pState,\n        void
      *plContext)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_basicconstraintschecker.c:163,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_basicconstraintschecker.c:164,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_basicconstraintschecker.c:168,1
    - Dst: PKIX_CertChainChecker_GetCertChainCheckerState
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_basicconstraintschecker.c:168,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_basicconstraintschecker.c:176,1
    - Dst: PKIX_PL_Cert_GetBasicConstraints
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_basicconstraintschecker.c:176,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_basicconstraintschecker.c:182,1
    - Dst: PKIX_PL_BasicConstraints_GetCAFlag
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_basicconstraintschecker.c:182,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_basicconstraintschecker.c:189,1
    - Dst: PKIX_PL_BasicConstraints_GetPathLenConstraint
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_basicconstraintschecker.c:190,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_basicconstraintschecker.c:202,1
    - Dst: pkix_IsCertSelfIssued
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_basicconstraintschecker.c:202,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_basicconstraintschecker.c:214,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_basicconstraintschecker.c:218,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_basicconstraintschecker.c:246,1
    - Dst: pkix_List_Remove
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_basicconstraintschecker.c:246,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_basicconstraintschecker.c:254,1
    - Dst: PKIX_CertChainChecker_SetCertChainCheckerState
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_basicconstraintschecker.c:254,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_basicconstraintschecker.c:260,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_basicconstraintschecker.c:261,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_basicconstraintschecker.c:262,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 50
    argCount: 5
    argNames:
    - checker
    - cert
    - unresolvedCriticalExtensions
    - pNBIOContext
    - plContext
    argTypes:
    - PKIX_CertChainChecker*
    - PKIX_PL_Cert*
    - PKIX_List*
    - void**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 264
    functionName: pkix_BasicConstraintsChecker_Check
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_basicconstraintschecker.c
    functionUses: 0
    functionsReached:
    - PKIX_PL_BasicConstraints_GetCAFlag
    - pkix_List_Remove
    - PKIX_CertChainChecker_SetCertChainCheckerState
    - PKIX_CHECK
    - PKIX_PL_BasicConstraints_GetPathLenConstraint
    - PKIX_RETURN
    - PKIX_PL_Cert_GetBasicConstraints
    - pkix_IsCertSelfIssued
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_DECREF
    - PKIX_CertChainChecker_GetCertChainCheckerState
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_BasicConstraintsChecker_Check(\n        PKIX_CertChainChecker
      *checker,\n        PKIX_PL_Cert *cert,\n        PKIX_List *unresolvedCriticalExtensions,
      \ /* list of PKIX_PL_OID */\n        void **pNBIOContext,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_basicconstraintschecker.c:285,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_basicconstraintschecker.c:286,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_basicconstraintschecker.c:288,1
    - Dst: pkix_BasicConstraintsCheckerState_Create
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_basicconstraintschecker.c:288,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_basicconstraintschecker.c:292,1
    - Dst: PKIX_CertChainChecker_Create
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_basicconstraintschecker.c:292,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_basicconstraintschecker.c:303,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_basicconstraintschecker.c:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - certsRemaining
    - pChecker
    - plContext
    argTypes:
    - PKIX_UInt32
    - PKIX_CertChainChecker**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 277
    functionDepth: 2
    functionLinenumber: 277
    functionLinenumberEnd: 306
    functionName: pkix_BasicConstraintsChecker_Initialize
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_basicconstraintschecker.c
    functionUses: 0
    functionsReached:
    - PKIX_CertChainChecker_Create
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_BasicConstraintsCheckerState_Create
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_BasicConstraintsChecker_Initialize(\n        PKIX_UInt32
      certsRemaining,\n        PKIX_CertChainChecker **pChecker,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:24,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:26,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:29,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:29,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:37,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:38,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:39,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 44
    functionName: pkix_SignatureCheckerState_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_SignatureCheckerState_Destroy(\n        PKIX_PL_Object
      *object,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:66,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 82
    functionName: pkix_SignatureCheckerState_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      pkix_SignatureCheckerState_RegisterSelf(void *plContext)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:120,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:121,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:123,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:123,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:136,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:139,1
    - Dst: PKIX_PL_OID_Create
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:139,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:153,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:154,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 4
    argNames:
    - trustedPubKey
    - certsRemaining
    - pCheckerState
    - plContext
    argTypes:
    - PKIX_PL_PublicKey*
    - PKIX_UInt32
    - pkix_SignatureCheckerState**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 157
    functionName: pkix_SignatureCheckerState_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c
    functionUses: 0
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_Alloc
    - PKIX_ENTER
    - PKIX_PL_OID_Create
    - PKIX_DECREF
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_SignatureCheckerState_Create(\n    PKIX_PL_PublicKey
      *trustedPubKey,\n    PKIX_UInt32 certsRemaining,\n    pkix_SignatureCheckerState
      **pCheckerState,\n    void *plContext)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:183,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:184,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:188,1
    - Dst: PKIX_CertChainChecker_GetCertChainCheckerState
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:188,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:194,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:204,1
    - Dst: PKIX_PL_Cert_VerifySignature
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:209,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:248,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:248,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:254,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:254,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:261,1
    - Dst: PKIX_PL_Cert_VerifySignature
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:262,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:272,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:280,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:288,1
    - Dst: pkix_IsCertSelfIssued
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:288,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:307,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:307,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:313,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:313,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:322,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:327,1
    - Dst: PKIX_PL_Cert_GetSubjectPublicKey
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:327,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:331,1
    - Dst: PKIX_PL_PublicKey_MakeInheritedDSAPublicKey
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:331,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:336,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:340,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:341,1
    - Dst: PKIX_PL_Cert_VerifyKeyUsage
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:347,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:353,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:359,1
    - Dst: pkix_List_Remove
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:359,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:366,1
    - Dst: PKIX_CertChainChecker_SetCertChainCheckerState
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:366,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:372,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:373,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:374,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:375,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:376,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:377,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:378,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:379,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:381,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 79
    argCount: 5
    argNames:
    - checker
    - cert
    - unresolvedCriticalExtensions
    - pNBIOContext
    - plContext
    argTypes:
    - PKIX_CertChainChecker*
    - PKIX_PL_Cert*
    - PKIX_List*
    - void**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 383
    functionName: pkix_SignatureChecker_Check
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c
    functionUses: 0
    functionsReached:
    - PKIX_CertChainChecker_SetCertChainCheckerState
    - PKIX_RETURN
    - PKIX_List_Create
    - pkix_IsCertSelfIssued
    - PKIX_DECREF
    - PKIX_ERROR
    - PKIX_INCREF
    - PKIX_PL_Cert_VerifyKeyUsage
    - pkix_List_Remove
    - PKIX_PL_Cert_VerifySignature
    - PKIX_List_AppendItem
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_PL_PublicKey_MakeInheritedDSAPublicKey
    - PKIX_List_GetLength
    - PKIX_PL_Cert_GetSubjectPublicKey
    - PKIX_CertChainChecker_GetCertChainCheckerState
    - PKIX_CHECK
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_SignatureChecker_Check(\n        PKIX_CertChainChecker
      *checker,\n        PKIX_PL_Cert *cert,\n        PKIX_List *unresolvedCriticalExtensions,\n
      \       void **pNBIOContext,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:420,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:421,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:423,1
    - Dst: pkix_SignatureCheckerState_Create
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:423,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:427,1
    - Dst: PKIX_CertChainChecker_Create
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:427,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:439,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - trustedPubKey
    - certsRemaining
    - pChecker
    - plContext
    argTypes:
    - PKIX_PL_PublicKey*
    - PKIX_UInt32
    - PKIX_CertChainChecker**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 412
    functionDepth: 2
    functionLinenumber: 412
    functionLinenumberEnd: 443
    functionName: pkix_SignatureChecker_Initialize
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_signaturechecker.c
    functionUses: 0
    functionsReached:
    - PKIX_CertChainChecker_Create
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_SignatureCheckerState_Create
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_SignatureChecker_Initialize(\n        PKIX_PL_PublicKey
      *trustedPubKey,\n        PKIX_UInt32 certsRemaining,\n        PKIX_CertChainChecker
      **pChecker,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:37,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:38,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:41,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:42,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:47,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 52
    functionName: pkix_CrlChecker_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_CrlChecker_Destroy(\n        PKIX_PL_Object *object,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:74,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 81
    functionName: pkix_CrlChecker_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      pkix_CrlChecker_RegisterSelf(void *plContext)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:128,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:129,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:131,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:131,1
    - Dst: pkix_RevocationMethod_Init
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:138,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:146,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:154,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:156,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 9
    argNames:
    - methodType
    - flags
    - priority
    - localRevChecker
    - externalRevChecker
    - certStores
    - crlVerifyFn
    - pChecker
    - plContext
    argTypes:
    - PKIX_RevocationMethodType
    - PKIX_UInt32
    - PKIX_UInt32
    - pkix_LocalRevocationCheckFn
    - pkix_ExternalRevocationCheckFn
    - PKIX_List*
    - PKIX_PL_VerifyCallback
    - pkix_RevocationMethod**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 157
    functionName: pkix_CrlChecker_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c
    functionUses: 1
    functionsReached:
    - PKIX_INCREF
    - pkix_RevocationMethod_Init
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_Alloc
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_CrlChecker_Create(PKIX_RevocationMethodType methodType,\n
      \                      PKIX_UInt32 flags,\n                       PKIX_UInt32
      priority,\n                       pkix_LocalRevocationCheckFn localRevChecker,\n
      \                      pkix_ExternalRevocationCheckFn externalRevChecker,\n
      \                      PKIX_List *certStores,\n                       PKIX_PL_VerifyCallback
      crlVerifyFn,\n                       pkix_RevocationMethod **pChecker,\n                       void
      *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:209,1
    - Dst: PKIX_NULLCHECK_FOUR
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:210,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:214,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:215,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:219,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:220,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:225,1
    - Dst: PKIX_CertStore_GetLocalFlag
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:226,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:230,1
    - Dst: PKIX_CertStore_GetCrlCheckerFn
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:231,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:237,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:251,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:256,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:258,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 10
    argNames:
    - cert
    - issuer
    - date
    - checkerObject
    - procParams
    - methodFlags
    - chainVerificationState
    - pRevStatus
    - pReasonCode
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_PL_Cert*
    - PKIX_PL_Date*
    - pkix_RevocationMethod*
    - PKIX_ProcessingParams*
    - PKIX_UInt32
    - PKIX_Boolean
    - PKIX_RevocationStatus*
    - CERTCRLEntryReasonCode*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 259
    functionName: pkix_CrlChecker_CheckLocal
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_GetLength
    - PKIX_NULLCHECK_FOUR
    - PKIX_CertStore_GetLocalFlag
    - PKIX_CertStore_GetCrlCheckerFn
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_CrlChecker_CheckLocal(\n        PKIX_PL_Cert *cert,\n
      \       PKIX_PL_Cert *issuer,\n        PKIX_PL_Date *date,\n        pkix_RevocationMethod
      *checkerObject,\n        PKIX_ProcessingParams *procParams,\n        PKIX_UInt32
      methodFlags,\n        PKIX_Boolean chainVerificationState,\n        PKIX_RevocationStatus
      *pRevStatus,\n        CERTCRLEntryReasonCode *pReasonCode,\n        void *plContext)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:316,1
    - Dst: PKIX_NULLCHECK_FOUR
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:317,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:324,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:325,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:330,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:331,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:336,1
    - Dst: PKIX_CertStore_GetLocalFlag
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:337,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:341,1
    - Dst: PKIX_CertStore_GetImportCrlCallback
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:342,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:347,1
    - Dst: PKIX_CertStore_GetCrlCheckerFn
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:348,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:359,1
    - Dst: PKIX_ERROR_FATAL
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:365,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:367,1
    - Dst: PKIX_PL_Cert_VerifyKeyUsage
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:368,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:370,1
    - Dst: PKIX_PL_Cert_GetCrlDp
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:371,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:377,1
    - Dst: PKIX_PL_Cert_GetIssuer
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:378,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:380,1
    - Dst: PKIX_CRLSelector_Create
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:381,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:387,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:388,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:393,1
    - Dst: PKIX_CertStore_GetCRLCallback
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:394,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:398,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:403,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:407,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:416,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:417,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:430,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:431,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:432,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:433,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:434,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:435,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c:437,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 57
    argCount: 10
    argNames:
    - cert
    - issuer
    - date
    - checkerObject
    - procParams
    - methodFlags
    - pRevStatus
    - pReasonCode
    - pNBIOContext
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_PL_Cert*
    - PKIX_PL_Date*
    - pkix_RevocationMethod*
    - PKIX_ProcessingParams*
    - PKIX_UInt32
    - PKIX_RevocationStatus*
    - CERTCRLEntryReasonCode*
    - void**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 438
    functionName: pkix_CrlChecker_CheckExternal
    functionSourceFile: /src/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c
    functionUses: 0
    functionsReached:
    - PKIX_PL_Cert_VerifyKeyUsage
    - PKIX_CertStore_GetCRLCallback
    - PKIX_CHECK
    - PKIX_PL_Cert_GetIssuer
    - PKIX_RETURN
    - PKIX_List_GetLength
    - PKIX_PL_Cert_GetCrlDp
    - PKIX_NULLCHECK_FOUR
    - PKIX_CRLSelector_Create
    - PKIX_CertStore_GetLocalFlag
    - PKIX_CertStore_GetCrlCheckerFn
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_ERROR_FATAL
    - PKIX_CertStore_GetImportCrlCallback
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_CrlChecker_CheckExternal(\n        PKIX_PL_Cert
      *cert,\n        PKIX_PL_Cert *issuer,\n        PKIX_PL_Date *date,\n        pkix_RevocationMethod
      *checkerObject,\n        PKIX_ProcessingParams *procParams,\n        PKIX_UInt32
      methodFlags,\n        PKIX_RevocationStatus *pRevStatus,\n        CERTCRLEntryReasonCode
      *pReasonCode,\n        void **pNBIOContext,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:26,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:27,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:30,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:30,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:41,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 46
    functionName: pkix_CertStore_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix/store/pkix_store.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_CertStore_Destroy(\n        PKIX_PL_Object *object,\n
      \       void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:61,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:62,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:64,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:64,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:70,1
    - Dst: PKIX_PL_Object_Hashcode
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:70,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - object
    - pHashcode
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 87
    functionName: pkix_CertStore_Hashcode
    functionSourceFile: /src/nss/lib/libpkix/pkix/store/pkix_store.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_PL_Object_Hashcode
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_CertStore_Hashcode(\n        PKIX_PL_Object *object,\n
      \       PKIX_UInt32 *pHashcode,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:104,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:105,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:107,1
    - Dst: pkix_CheckTypes
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:107,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:123,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:123,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:135,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 4
    argNames:
    - firstObject
    - secondObject
    - pResult
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    - PKIX_Int32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 136
    functionName: pkix_CertStore_Equals
    functionSourceFile: /src/nss/lib/libpkix/pkix/store/pkix_store.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_PL_Object_Equals
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckTypes
    - PKIX_NULLCHECK_THREE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_CertStore_Equals(\n        PKIX_PL_Object *firstObject,\n
      \       PKIX_PL_Object *secondObject,\n        PKIX_Int32 *pResult,\n        void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:156,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 171
    functionName: pkix_CertStore_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix/store/pkix_store.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      pkix_CertStore_RegisterSelf(void *plContext)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:195,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:196,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:198,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:198,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:215,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:223,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 12
    argNames:
    - certCallback
    - crlCallback
    - certContinue
    - crlContinue
    - trustCallback
    - importCrlCallback
    - checkRevByCrlCallback
    - certStoreContext
    - cacheFlag
    - localFlag
    - pStore
    - plContext
    argTypes:
    - PKIX_CertStore_CertCallback
    - PKIX_CertStore_CRLCallback
    - PKIX_CertStore_CertContinueFunction
    - PKIX_CertStore_CrlContinueFunction
    - PKIX_CertStore_CheckTrustCallback
    - PKIX_CertStore_ImportCrlCallback
    - PKIX_CertStore_CheckRevokationByCrlCallback
    - PKIX_PL_Object*
    - PKIX_Boolean
    - PKIX_Boolean
    - PKIX_CertStore**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 226
    functionName: PKIX_CertStore_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix/store/pkix_store.c
    functionUses: 2
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_Alloc
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_DECREF
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_CertStore_Create(\n        PKIX_CertStore_CertCallback
      certCallback,\n        PKIX_CertStore_CRLCallback crlCallback,\n        PKIX_CertStore_CertContinueFunction
      certContinue,\n        PKIX_CertStore_CrlContinueFunction crlContinue,\n        PKIX_CertStore_CheckTrustCallback
      trustCallback,\n        PKIX_CertStore_ImportCrlCallback importCrlCallback,\n
      \       PKIX_CertStore_CheckRevokationByCrlCallback checkRevByCrlCallback,\n
      \       PKIX_PL_Object *certStoreContext,\n        PKIX_Boolean cacheFlag,\n
      \       PKIX_Boolean localFlag,\n        PKIX_CertStore **pStore,\n        void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:237,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:238,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - store
    - pCallback
    - plContext
    argTypes:
    - PKIX_CertStore*
    - PKIX_CertStore_CertCallback*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 243
    functionName: PKIX_CertStore_GetCertCallback
    functionSourceFile: /src/nss/lib/libpkix/pkix/store/pkix_store.c
    functionUses: 10
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_CertStore_GetCertCallback(\n        PKIX_CertStore
      *store,\n        PKIX_CertStore_CertCallback *pCallback,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:254,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:255,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - store
    - pCallback
    - plContext
    argTypes:
    - PKIX_CertStore*
    - PKIX_CertStore_CRLCallback*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 260
    functionName: PKIX_CertStore_GetCRLCallback
    functionSourceFile: /src/nss/lib/libpkix/pkix/store/pkix_store.c
    functionUses: 7
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_CertStore_GetCRLCallback(\n        PKIX_CertStore
      *store,\n        PKIX_CertStore_CRLCallback *pCallback,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:274,1
    - Dst: PKIX_NULLCHECK_FOUR
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:275,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:277,1
    - Dst: PKIX_CertStore*::certContinue
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:277,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 6
    argNames:
    - store
    - selector
    - verifyNode
    - pNBIOContext
    - pCertList
    - plContext
    argTypes:
    - PKIX_CertStore*
    - PKIX_CertSelector*
    - PKIX_VerifyNode*
    - void**
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 285
    functionName: PKIX_CertStore_CertContinue
    functionSourceFile: /src/nss/lib/libpkix/pkix/store/pkix_store.c
    functionUses: 1
    functionsReached:
    - PKIX_RETURN
    - PKIX_CHECK
    - PKIX_NULLCHECK_FOUR
    - PKIX_ENTER
    - PKIX_CertStore*::certContinue
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_CertStore_CertContinue(\n        PKIX_CertStore
      *store,\n        PKIX_CertSelector *selector,\n        PKIX_VerifyNode *verifyNode,\n
      \       void **pNBIOContext,\n        PKIX_List **pCertList,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:298,1
    - Dst: PKIX_NULLCHECK_FOUR
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:299,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:301,1
    - Dst: PKIX_CertStore*::crlContinue
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:301,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - store
    - selector
    - pNBIOContext
    - pCrlList
    - plContext
    argTypes:
    - PKIX_CertStore*
    - PKIX_CRLSelector*
    - void**
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 308
    functionName: PKIX_CertStore_CrlContinue
    functionSourceFile: /src/nss/lib/libpkix/pkix/store/pkix_store.c
    functionUses: 1
    functionsReached:
    - PKIX_RETURN
    - PKIX_CHECK
    - PKIX_NULLCHECK_FOUR
    - PKIX_ENTER
    - PKIX_CertStore*::crlContinue
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_CertStore_CrlContinue(\n        PKIX_CertStore
      *store,\n        PKIX_CRLSelector *selector,\n        void **pNBIOContext,\n
      \       PKIX_List **pCrlList,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:319,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:320,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - store
    - pCallback
    - plContext
    argTypes:
    - PKIX_CertStore*
    - PKIX_CertStore_CheckTrustCallback*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 325
    functionName: PKIX_CertStore_GetTrustCallback
    functionSourceFile: /src/nss/lib/libpkix/pkix/store/pkix_store.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_CertStore_GetTrustCallback(\n        PKIX_CertStore
      *store,\n        PKIX_CertStore_CheckTrustCallback *pCallback,\n        void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:336,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:337,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - store
    - pCallback
    - plContext
    argTypes:
    - PKIX_CertStore*
    - PKIX_CertStore_ImportCrlCallback*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 342
    functionName: PKIX_CertStore_GetImportCrlCallback
    functionSourceFile: /src/nss/lib/libpkix/pkix/store/pkix_store.c
    functionUses: 1
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_CertStore_GetImportCrlCallback(\n        PKIX_CertStore
      *store,\n        PKIX_CertStore_ImportCrlCallback *pCallback,\n        void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:353,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:354,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - store
    - pCallback
    - plContext
    argTypes:
    - PKIX_CertStore*
    - PKIX_CertStore_CheckRevokationByCrlCallback*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 359
    functionName: PKIX_CertStore_GetCrlCheckerFn
    functionSourceFile: /src/nss/lib/libpkix/pkix/store/pkix_store.c
    functionUses: 2
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_CertStore_GetCrlCheckerFn(\n        PKIX_CertStore
      *store,\n        PKIX_CertStore_CheckRevokationByCrlCallback *pCallback,\n        void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:371,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:372,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:374,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - store
    - pCertStoreContext
    - plContext
    argTypes:
    - PKIX_CertStore*
    - PKIX_PL_Object**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 379
    functionName: PKIX_CertStore_GetCertStoreContext
    functionSourceFile: /src/nss/lib/libpkix/pkix/store/pkix_store.c
    functionUses: 1
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_CertStore_GetCertStoreContext(\n        PKIX_CertStore
      *store,\n        PKIX_PL_Object **pCertStoreContext,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:391,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:392,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - store
    - pCacheFlag
    - plContext
    argTypes:
    - PKIX_CertStore*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 397
    functionName: PKIX_CertStore_GetCertStoreCacheFlag
    functionSourceFile: /src/nss/lib/libpkix/pkix/store/pkix_store.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_CertStore_GetCertStoreCacheFlag(\n        PKIX_CertStore
      *store,\n        PKIX_Boolean *pCacheFlag,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:409,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:410,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/store/pkix_store.c:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - store
    - pLocalFlag
    - plContext
    argTypes:
    - PKIX_CertStore*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 415
    functionName: PKIX_CertStore_GetLocalFlag
    functionSourceFile: /src/nss/lib/libpkix/pkix/store/pkix_store.c
    functionUses: 2
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_CertStore_GetLocalFlag(\n        PKIX_CertStore
      *store,\n        PKIX_Boolean *pLocalFlag,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:46,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:47,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:49,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:49,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:73,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:74,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:75,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:76,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:77,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:78,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:79,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:80,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:81,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:82,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:83,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:84,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:85,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:96,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:97,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:98,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:99,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:100,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:101,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:102,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:103,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:104,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:105,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:107,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 57
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 113
    functionName: pkix_ForwardBuilderState_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix/top/pkix_build.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_ForwardBuilderState_Destroy(\n        PKIX_PL_Object
      *object,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:169,1
    - Dst: PKIX_NULLCHECK_FOUR
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:170,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:172,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:172,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:199,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:202,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:207,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:210,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:222,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:268,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 68
    argCount: 11
    argNames:
    - traversedCACerts
    - numFanout
    - numDepth
    - canBeCached
    - validityDate
    - prevCert
    - traversedSubjNames
    - trustChain
    - parentState
    - pState
    - plContext
    argTypes:
    - PKIX_Int32
    - PKIX_UInt32
    - PKIX_UInt32
    - PKIX_Boolean
    - PKIX_PL_Date*
    - PKIX_PL_Cert*
    - PKIX_List*
    - PKIX_List*
    - PKIX_ForwardBuilderState*
    - PKIX_ForwardBuilderState**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 271
    functionName: pkix_ForwardBuilderState_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix/top/pkix_build.c
    functionUses: 0
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_NULLCHECK_FOUR
    - PKIX_PL_Object_Alloc
    - PKIX_ENTER
    - PKIX_DECREF
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_ForwardBuilderState_Create(\n        PKIX_Int32
      traversedCACerts,\n        PKIX_UInt32 numFanout,\n        PKIX_UInt32 numDepth,\n
      \       PKIX_Boolean canBeCached,\n        PKIX_PL_Date *validityDate,\n        PKIX_PL_Cert
      *prevCert,\n        PKIX_List *traversedSubjNames,\n        PKIX_List *trustChain,\n
      \       PKIX_ForwardBuilderState *parentState,\n        PKIX_ForwardBuilderState
      **pState,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:301,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:302,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:304,1
    - Dst: PKIX_ProcessingParams_GetResourceLimits
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:304,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:314,1
    - Dst: PKIX_ResourceLimits_GetMaxFanout
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:314,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:318,1
    - Dst: PKIX_ResourceLimits_GetMaxDepth
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:318,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:322,1
    - Dst: PKIX_ResourceLimits_GetMaxTime
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:322,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:329,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:331,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - buildConstants
    - plContext
    argTypes:
    - BuildConstants*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 294
    functionDepth: 2
    functionLinenumber: 294
    functionLinenumberEnd: 332
    functionName: pkix_Build_GetResourceLimits
    functionSourceFile: /src/nss/lib/libpkix/pkix/top/pkix_build.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ProcessingParams_GetResourceLimits
    - PKIX_ResourceLimits_GetMaxTime
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_ResourceLimits_GetMaxDepth
    - PKIX_ResourceLimits_GetMaxFanout
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_Build_GetResourceLimits(\n        BuildConstants
      *buildConstants,\n        void *plContext)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:382,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:383,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:385,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:385,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:391,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:391,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:432,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:432,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:436,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:440,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:444,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:448,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:454,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:458,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:462,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:466,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:470,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:474,1
    - Dst: PKIX_PL_Sprintf
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:474,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:505,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:506,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:507,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:508,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:509,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:510,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:511,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:512,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:513,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:514,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:515,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:517,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 85
    argCount: 3
    argNames:
    - object
    - pString
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_String**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 519
    functionName: pkix_ForwardBuilderState_ToString
    functionSourceFile: /src/nss/lib/libpkix/pkix/top/pkix_build.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_PL_String_Create
    - PKIX_RETURN
    - PKIX_PL_Sprintf
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_TOSTRING
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_ForwardBuilderState_ToString\n        (PKIX_PL_Object
      *object,\n        PKIX_PL_String **pString,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:542,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 535
    functionDepth: 1
    functionLinenumber: 535
    functionLinenumberEnd: 558
    functionName: pkix_ForwardBuilderState_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix/top/pkix_build.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      pkix_ForwardBuilderState_RegisterSelf(void *plContext)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:583,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:584,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:586,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:586,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:590,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:590,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:594,1
    - Dst: PKIX_PL_String_GetEncoded
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:594,1
    - Dst: PKIX_DEBUG_ARG
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:602,1
    - Dst: PKIX_FREE
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:604,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:605,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - state
    - plContext
    argTypes:
    - PKIX_ForwardBuilderState*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 574
    functionDepth: 1
    functionLinenumber: 574
    functionLinenumberEnd: 609
    functionName: pkix_ForwardBuilderState_DumpState
    functionSourceFile: /src/nss/lib/libpkix/pkix/top/pkix_build.c
    functionUses: 0
    functionsReached:
    - PKIX_FREE
    - PKIX_PL_String_GetEncoded
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_ToString
    - PKIX_DEBUG_ARG
    - PKIX_PL_Object_InvalidateCache
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_ForwardBuilderState_DumpState(\n        PKIX_ForwardBuilderState
      *state,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:641,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:642,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:653,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - state
    - pPending
    - plContext
    argTypes:
    - PKIX_ForwardBuilderState*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 635
    functionDepth: 1
    functionLinenumber: 635
    functionLinenumberEnd: 654
    functionName: pkix_ForwardBuilderState_IsIOPending
    functionSourceFile: /src/nss/lib/libpkix/pkix/top/pkix_build.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_ForwardBuilderState_IsIOPending(\n        PKIX_ForwardBuilderState
      *state,\n        PKIX_Boolean *pPending,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:698,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:699,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:712,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:712,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:714,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:714,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:717,1
    - Dst: PKIX_PL_Cert_GetValidityNotAfter
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:717,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:721,1
    - Dst: PKIX_PL_Cert_GetValidityNotAfter
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:721,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:725,1
    - Dst: PKIX_PL_Object_Compare
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:725,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:741,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:742,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 4
    argNames:
    - obj1
    - obj2
    - pResult
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    - PKIX_Int32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 687
    functionDepth: 1
    functionLinenumber: 687
    functionLinenumberEnd: 745
    functionName: pkix_Build_SortCertComparator
    functionSourceFile: /src/nss/lib/libpkix/pkix/top/pkix_build.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_Compare
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_PL_Cert_GetValidityNotAfter
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_Build_SortCertComparator(\n        PKIX_PL_Object
      *obj1,\n        PKIX_PL_Object *obj2,\n        PKIX_Int32 *pResult,\n        void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - errCode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 748
    functionDepth: 0
    functionLinenumber: 748
    functionLinenumberEnd: 766
    functionName: ERROR_CHECK
    functionSourceFile: /src/nss/lib/libpkix/pkix/top/pkix_build.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERROR_CHECK(errCode)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:822,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:823,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:824,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:827,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:840,1
    - Dst: PKIX_PL_Cert_IsCertTrusted
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:841,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:848,1
    - Dst: pkix_List_Contains
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:848,1
    - Dst: PKIX_ERROR_CREATE
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:858,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:862,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:868,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:875,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:875,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:881,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:881,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:888,1
    - Dst: PKIX_CertChainChecker_IsForwardCheckingSupported
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:889,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:895,1
    - Dst: PKIX_CertChainChecker_GetCheckCallback
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:895,1
    - Dst: checkerCheck
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:900,1
    - Dst: ERROR_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:903,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:906,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:914,1
    - Dst: PKIX_PL_Cert_GetSubjectPublicKey
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:914,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:917,1
    - Dst: PKIX_PL_PublicKey_NeedsDSAParameters
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:917,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:921,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:926,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:927,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:928,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:930,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 55
    argCount: 5
    argNames:
    - state
    - userCheckers
    - pTrusted
    - verifyNode
    - plContext
    argTypes:
    - PKIX_ForwardBuilderState*
    - PKIX_List*
    - PKIX_Boolean*
    - PKIX_VerifyNode*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 801
    functionDepth: 2
    functionLinenumber: 801
    functionLinenumberEnd: 931
    functionName: pkix_Build_VerifyCertificate
    functionSourceFile: /src/nss/lib/libpkix/pkix/top/pkix_build.c
    functionUses: 0
    functionsReached:
    - PKIX_RETURN
    - PKIX_DECREF
    - pkix_List_Contains
    - PKIX_ERROR
    - PKIX_ERROR_CREATE
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_List_GetLength
    - PKIX_PL_Cert_GetSubjectPublicKey
    - PKIX_PL_PublicKey_NeedsDSAParameters
    - PKIX_NULLCHECK_TWO
    - ERROR_CHECK
    - PKIX_CHECK
    - PKIX_PL_Cert_IsCertTrusted
    - checkerCheck
    - PKIX_CertChainChecker_GetCheckCallback
    - PKIX_CertChainChecker_IsForwardCheckingSupported
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_Build_VerifyCertificate(\n        PKIX_ForwardBuilderState
      *state,\n        PKIX_List *userCheckers,\n        PKIX_Boolean *pTrusted,\n
      \       PKIX_VerifyNode *verifyNode,\n        void *plContext)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:999,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1000,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1002,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1002,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1005,1
    - Dst: PKIX_List_ReverseList
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1005,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1009,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1009,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1021,1
    - Dst: pkix_ExpirationChecker_Initialize
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1021,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1024,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1024,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1027,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1029,1
    - Dst: PKIX_ProcessingParams_GetTargetCertConstraints
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1029,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1033,1
    - Dst: pkix_TargetCertChecker_Initialize
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1033,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1036,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1036,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1039,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1042,1
    - Dst: PKIX_ProcessingParams_GetInitialPolicies
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1042,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1046,1
    - Dst: PKIX_ProcessingParams_GetPolicyQualifiersRejected
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1046,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1050,1
    - Dst: PKIX_ProcessingParams_IsPolicyMappingInhibited
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1050,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1054,1
    - Dst: PKIX_ProcessingParams_IsAnyPolicyInhibited
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1054,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1058,1
    - Dst: PKIX_ProcessingParams_IsExplicitPolicyRequired
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1058,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1062,1
    - Dst: pkix_PolicyChecker_Initialize
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1062,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1073,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1073,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1081,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1081,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1085,1
    - Dst: PKIX_PL_OID_Create
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1085,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1089,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1089,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1095,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1100,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1100,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1108,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1108,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1115,1
    - Dst: PKIX_CertChainChecker_IsForwardCheckingSupported
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1116,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1128,1
    - Dst: PKIX_CertChainChecker_GetSupportedExtensions
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1129,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1134,1
    - Dst: pkix_List_AppendList
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1134,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1142,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1142,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1149,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1150,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1155,1
    - Dst: PKIX_TrustAnchor_GetTrustedCert
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1155,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1159,1
    - Dst: PKIX_PL_Cert_GetSubjectPublicKey
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1159,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1163,1
    - Dst: pkix_SignatureChecker_Initialize
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1163,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1170,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1170,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1177,1
    - Dst: PKIX_TrustAnchor_GetNameConstraints
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1177,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1181,1
    - Dst: pkix_NameConstraintsChecker_Initialize
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1181,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1186,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1186,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1193,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1194,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1196,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1197,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1199,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1209,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1210,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1211,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1212,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1213,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1214,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1215,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1216,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1217,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1218,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1219,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1220,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1221,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1222,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1223,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1225,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 83
    argCount: 5
    argNames:
    - state
    - certChain
    - anchor
    - chainRevalidationStage
    - plContext
    argTypes:
    - PKIX_ForwardBuilderState*
    - PKIX_List*
    - PKIX_TrustAnchor*
    - PKIX_Boolean
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1226
      start: 966
    functionDepth: 4
    functionLinenumber: 966
    functionLinenumberEnd: 1226
    functionName: pkix_Build_ValidationCheckers
    functionSourceFile: /src/nss/lib/libpkix/pkix/top/pkix_build.c
    functionUses: 0
    functionsReached:
    - PKIX_RETURN
    - PKIX_List_Create
    - pkix_SignatureChecker_Initialize
    - PKIX_TrustAnchor_GetNameConstraints
    - PKIX_DECREF
    - pkix_ExpirationChecker_Initialize
    - PKIX_INCREF
    - pkix_TargetCertChecker_Initialize
    - PKIX_List_AppendItem
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_ProcessingParams_GetTargetCertConstraints
    - PKIX_ProcessingParams_IsExplicitPolicyRequired
    - PKIX_ProcessingParams_GetInitialPolicies
    - PKIX_List_GetLength
    - pkix_List_AppendList
    - PKIX_PL_Cert_GetSubjectPublicKey
    - PKIX_ProcessingParams_IsPolicyMappingInhibited
    - PKIX_PL_OID_Create
    - PKIX_ProcessingParams_GetPolicyQualifiersRejected
    - PKIX_List_ReverseList
    - PKIX_CertChainChecker_GetSupportedExtensions
    - PKIX_CHECK
    - PKIX_ProcessingParams_IsAnyPolicyInhibited
    - pkix_NameConstraintsChecker_Initialize
    - PKIX_TrustAnchor_GetTrustedCert
    - pkix_PolicyChecker_Initialize
    - PKIX_CertChainChecker_IsForwardCheckingSupported
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_Build_ValidationCheckers(\n        PKIX_ForwardBuilderState
      *state,\n        PKIX_List *certChain,\n        PKIX_TrustAnchor *anchor,\n
      \       PKIX_Boolean chainRevalidationStage,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1281,1
    - Dst: PKIX_NULLCHECK_FOUR
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1282,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1286,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1286,1
    - Dst: pkix_CheckChain
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1291,1
    - Dst: ERROR_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1306,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1309,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1311,1
    - Dst: pkix_ValidateResult_Create
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1311,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1319,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1320,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1321,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1323,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 6
    argNames:
    - state
    - anchor
    - pNBIOContext
    - pValResult
    - verifyNode
    - plContext
    argTypes:
    - PKIX_ForwardBuilderState*
    - PKIX_TrustAnchor*
    - void**
    - PKIX_ValidateResult**
    - PKIX_VerifyNode*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1324
      start: 1266
    functionDepth: 2
    functionLinenumber: 1266
    functionLinenumberEnd: 1324
    functionName: pkix_Build_ValidateEntireChain
    functionSourceFile: /src/nss/lib/libpkix/pkix/top/pkix_build.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - ERROR_CHECK
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_ValidateResult_Create
    - PKIX_List_GetLength
    - PKIX_NULLCHECK_FOUR
    - PKIX_ENTER
    - PKIX_DECREF
    - pkix_CheckChain
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_Build_ValidateEntireChain(\n        PKIX_ForwardBuilderState
      *state,\n        PKIX_TrustAnchor *anchor,\n        void **pNBIOContext,\n        PKIX_ValidateResult
      **pValResult,\n        PKIX_VerifyNode *verifyNode,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1360,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1361,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1372,1
    - Dst: pkix_List_BubbleSort
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1372,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - candidates
    - pSortedCandidates
    - plContext
    argTypes:
    - PKIX_List*
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1384
      start: 1352
    functionDepth: 1
    functionLinenumber: 1352
    functionLinenumberEnd: 1384
    functionName: pkix_Build_SortCandidateCerts
    functionSourceFile: /src/nss/lib/libpkix/pkix/top/pkix_build.c
    functionUses: 0
    functionsReached:
    - pkix_List_BubbleSort
    - PKIX_RETURN
    - PKIX_CHECK
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_Build_SortCandidateCerts(\n        PKIX_List *candidates,\n
      \       PKIX_List **pSortedCandidates,\n        void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1422,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1423,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1425,1
    - Dst: PKIX_PL_Cert_GetIssuer
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1425,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1429,1
    - Dst: PKIX_PL_Cert_GetAuthorityKeyIdentifier
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1429,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1433,1
    - Dst: PKIX_ComCertSelParams_Create
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1433,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1436,1
    - Dst: PKIX_ComCertSelParams_SetSubject
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1436,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1441,1
    - Dst: PKIX_ComCertSelParams_SetSubjKeyIdentifier
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1441,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1446,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1449,1
    - Dst: PKIX_ComCertSelParams_SetCertificateValid
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1449,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1453,1
    - Dst: PKIX_ComCertSelParams_SetBasicConstraints
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1453,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1457,1
    - Dst: PKIX_ComCertSelParams_SetPathToNames
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1457,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1461,1
    - Dst: PKIX_ProcessingParams_GetTargetCertConstraints
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1461,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1469,1
    - Dst: PKIX_CertSelector_GetCommonCertSelectorParams
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1469,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1474,1
    - Dst: PKIX_ComCertSelParams_GetExtendedKeyUsage
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1474,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1478,1
    - Dst: PKIX_ComCertSelParams_GetKeyUsage
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1478,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1484,1
    - Dst: PKIX_ComCertSelParams_SetKeyUsage
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1485,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1489,1
    - Dst: PKIX_ComCertSelParams_SetExtendedKeyUsage
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1490,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1495,1
    - Dst: PKIX_CertSelector_Create
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1495,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1499,1
    - Dst: PKIX_CertSelector_SetCommonCertSelectorParams
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1499,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1503,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1503,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1509,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1510,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1511,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1512,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1513,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1514,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1515,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1516,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1518,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 40
    argCount: 2
    argNames:
    - state
    - plContext
    argTypes:
    - PKIX_ForwardBuilderState*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1519
      start: 1407
    functionDepth: 2
    functionLinenumber: 1407
    functionLinenumberEnd: 1519
    functionName: pkix_Build_BuildSelectorAndParams
    functionSourceFile: /src/nss/lib/libpkix/pkix/top/pkix_build.c
    functionUses: 0
    functionsReached:
    - PKIX_RETURN
    - PKIX_List_Create
    - PKIX_ComCertSelParams_SetBasicConstraints
    - PKIX_CertSelector_GetCommonCertSelectorParams
    - PKIX_DECREF
    - PKIX_ComCertSelParams_Create
    - PKIX_INCREF
    - PKIX_ComCertSelParams_SetPathToNames
    - PKIX_ComCertSelParams_GetExtendedKeyUsage
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_ProcessingParams_GetTargetCertConstraints
    - PKIX_ComCertSelParams_SetCertificateValid
    - PKIX_ComCertSelParams_SetKeyUsage
    - PKIX_ComCertSelParams_SetSubject
    - PKIX_PL_Cert_GetIssuer
    - PKIX_ComCertSelParams_SetExtendedKeyUsage
    - PKIX_CHECK
    - PKIX_CertSelector_SetCommonCertSelectorParams
    - PKIX_ComCertSelParams_SetSubjKeyIdentifier
    - PKIX_CertSelector_Create
    - PKIX_PL_Cert_GetAuthorityKeyIdentifier
    - PKIX_ComCertSelParams_GetKeyUsage
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_Build_BuildSelectorAndParams(\n        PKIX_ForwardBuilderState
      *state,\n        void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1536,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1538,1
    - Dst: PKIX_CertSelector_Create
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1538,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1541,1
    - Dst: PKIX_CertSelector_SetCommonCertSelectorParams
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1541,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1544,1
    - Dst: PKIX_CertSelector_GetMatchCallback
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1544,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1549,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1550,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1555,1
    - Dst: PKIX_TrustAnchor_GetTrustedCert
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1555,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1562,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1562,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1566,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1567,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1572,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1574,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1575,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1582,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1583,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1584,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1585,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1587,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 4
    argNames:
    - trustAnchorsList
    - certSelParams
    - pMatchList
    - plContext
    argTypes:
    - PKIX_List*
    - PKIX_ComCertSelParams*
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1588
      start: 1522
    functionDepth: 2
    functionLinenumber: 1522
    functionLinenumberEnd: 1588
    functionName: pkix_Build_SelectCertsFromTrustAnchors
    functionSourceFile: /src/nss/lib/libpkix/pkix/top/pkix_build.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_Create
    - PKIX_CertSelector_SetCommonCertSelectorParams
    - PKIX_TrustAnchor_GetTrustedCert
    - PKIX_List_AppendItem
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_CertSelector_Create
    - PKIX_CertSelector_GetMatchCallback
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_Build_SelectCertsFromTrustAnchors(\n    PKIX_List
      *trustAnchorsList,\n    PKIX_ComCertSelParams *certSelParams,\n    PKIX_List
      **pMatchList,\n    void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1600,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1607,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1608,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1616,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1617,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1618,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1622,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1623,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1632,1
    - Dst: PKIX_List_DeleteItem
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1633,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1637,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1640,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1641,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1643,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - trustedCertList
    - certsFound
    - plContext
    argTypes:
    - PKIX_List*
    - PKIX_List*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1644
      start: 1591
    functionDepth: 1
    functionLinenumber: 1591
    functionLinenumberEnd: 1644
    functionName: pkix_Build_RemoveDupUntrustedCerts
    functionSourceFile: /src/nss/lib/libpkix/pkix/top/pkix_build.c
    functionUses: 0
    functionsReached:
    - PKIX_PL_Object_Equals
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_DeleteItem
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_Build_RemoveDupUntrustedCerts(\n    PKIX_List *trustedCertList,\n
      \   PKIX_List *certsFound,\n    void *plContext)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1700,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1701,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1706,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1711,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1711,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1718,1
    - Dst: PKIX_CertStore_GetLocalFlag
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1718,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1728,1
    - Dst: PKIX_CertStore_GetCertStoreCacheFlag
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1728,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1743,1
    - Dst: pkix_CacheCert_Lookup
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1743,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1765,1
    - Dst: PKIX_CertStore_GetCertCallback
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1765,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1769,1
    - Dst: getCerts
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1769,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1778,1
    - Dst: PKIX_CertStore_CertContinue
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1778,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1790,1
    - Dst: pkix_CacheCert_Add
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1790,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1811,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1819,1
    - Dst: pkix_Build_SortCandidateCerts
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1819,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1822,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1826,1
    - Dst: pkix_Build_SelectCertsFromTrustAnchors
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1827,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1832,1
    - Dst: pkix_Build_RemoveDupUntrustedCerts
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1833,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1838,1
    - Dst: pkix_List_MergeLists
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1839,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1846,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1846,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1853,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1854,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1855,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1857,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 56
    argCount: 4
    argNames:
    - state
    - certSelParams
    - pNBIOContext
    - plContext
    argTypes:
    - PKIX_ForwardBuilderState*
    - PKIX_ComCertSelParams*
    - void**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1858
      start: 1684
    functionDepth: 3
    functionLinenumber: 1684
    functionLinenumberEnd: 1858
    functionName: pkix_Build_GatherCerts
    functionSourceFile: /src/nss/lib/libpkix/pkix/top/pkix_build.c
    functionUses: 0
    functionsReached:
    - pkix_Build_RemoveDupUntrustedCerts
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_CacheCert_Lookup
    - pkix_Build_SelectCertsFromTrustAnchors
    - pkix_List_MergeLists
    - PKIX_List_GetLength
    - pkix_Build_SortCandidateCerts
    - PKIX_CertStore_GetLocalFlag
    - PKIX_CertStore_GetCertStoreCacheFlag
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_DECREF
    - PKIX_CertStore_GetCertCallback
    - PKIX_CertStore_CertContinue
    - getCerts
    - pkix_CacheCert_Add
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_Build_GatherCerts(\n        PKIX_ForwardBuilderState
      *state,\n        PKIX_ComCertSelParams *certSelParams,\n        void **pNBIOContext,\n
      \       void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1890,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1891,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1893,1
    - Dst: PKIX_PL_Cert_GetCacheFlag
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1893,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1905,1
    - Dst: PKIX_PL_Cert_GetValidityNotAfter
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1905,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1913,1
    - Dst: PKIX_PL_Object_Compare
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1913,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1920,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1929,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1931,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - state
    - plContext
    argTypes:
    - PKIX_ForwardBuilderState*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1932
      start: 1881
    functionDepth: 1
    functionLinenumber: 1881
    functionLinenumberEnd: 1932
    functionName: pkix_Build_UpdateDate
    functionSourceFile: /src/nss/lib/libpkix/pkix/top/pkix_build.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_Compare
    - PKIX_PL_Cert_GetCacheFlag
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_PL_Cert_GetValidityNotAfter
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_Build_UpdateDate(\n        PKIX_ForwardBuilderState
      *state,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:1939,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - state
    argTypes:
    - PKIX_ForwardBuilderState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1944
      start: 1935
    functionDepth: 0
    functionLinenumber: 1935
    functionLinenumberEnd: 1944
    functionName: pkix_PrepareForwardBuilderStateForAIA
    functionSourceFile: /src/nss/lib/libpkix/pkix/top/pkix_build.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: void
    signature: "void pkix_PrepareForwardBuilderStateForAIA(\n        PKIX_ForwardBuilderState
      *state)"
  - BBCount: 63
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2071,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2072,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2076,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2079,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2093,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2096,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2097,1
    - Dst: PKIX_PL_Date_Create_UTCTime
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2097,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2101,1
    - Dst: PKIX_PL_Object_Compare
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2101,1
    - Dst: PKIX_ERROR_CREATE
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2110,1
    - Dst: PKIX_CHECK_FATAL
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2114,1
    - Dst: pkix_VerifyNode_SetError
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2114,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2119,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2124,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2130,1
    - Dst: pkix_Build_BuildSelectorAndParams
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2130,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2139,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2139,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2154,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2155,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2155,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2162,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2162,1
    - Dst: PKIX_PL_AIAMgr_GetAIACerts
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2188,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2206,1
    - Dst: PKIX_CHECK_FATAL
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2215,1
    - Dst: pkix_VerifyNode_Create
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2215,1
    - Dst: PKIX_CHECK_FATAL
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2221,1
    - Dst: pkix_VerifyNode_SetError
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2221,1
    - Dst: PKIX_CHECK_FATAL
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2224,1
    - Dst: pkix_VerifyNode_AddToTree
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2224,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2229,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2238,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2244,1
    - Dst: PKIX_PL_String_GetEncoded
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2244,1
    - Dst: PKIX_DEBUG_ARG
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2252,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2254,1
    - Dst: PKIX_FREE
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2255,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2261,1
    - Dst: pkix_CertSelector_Select
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2261,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2268,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2270,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2270,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2280,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2286,1
    - Dst: PKIX_PL_String_GetEncoded
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2286,1
    - Dst: PKIX_DEBUG_ARG
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2294,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2295,1
    - Dst: PKIX_FREE
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2296,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2300,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2314,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2315,1
    - Dst: PKIX_CertSelector_GetCommonCertSelectorParams
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2315,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2324,1
    - Dst: pkix_ForwardBuilderState_DumpState
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2324,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2329,1
    - Dst: pkix_Build_GatherCerts
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2329,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2350,1
    - Dst: pkix_ForwardBuilderState_DumpState
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2350,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2355,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2356,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2356,1
    - Dst: isIssuerCertAllowedAtCertIssuanceTime
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2363,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2366,1
    - Dst: PKIX_CHECK_FATAL
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2370,1
    - Dst: pkix_VerifyNode_Create
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2370,1
    - Dst: pkix_Build_VerifyCertificate
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2380,1
    - Dst: PKIX_CHECK_FATAL
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2399,1
    - Dst: pkix_VerifyNode_SetError
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2399,1
    - Dst: PKIX_CHECK_FATAL
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2402,1
    - Dst: pkix_VerifyNode_AddToTree
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2402,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2407,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2410,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2414,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2425,1
    - Dst: pkix_Build_UpdateDate
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2425,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2429,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2430,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2445,1
    - Dst: PKIX_TrustAnchor_CreateWithCert
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2445,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2451,1
    - Dst: pkix_Build_ValidationCheckers
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2451,1
    - Dst: pkix_Build_ValidateEntireChain
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2466,1
    - Dst: PKIX_CHECK_FATAL
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2486,1
    - Dst: pkix_VerifyNode_AddToTree
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2486,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2491,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2500,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2506,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2514,1
    - Dst: PKIX_ERROR_CREATE
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2515,1
    - Dst: PKIX_CHECK_FATAL
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2518,1
    - Dst: pkix_VerifyNode_SetError
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2519,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2523,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2534,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2534,1
    - Dst: PKIX_ERROR_CREATE
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2550,1
    - Dst: PKIX_CHECK_FATAL
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2554,1
    - Dst: pkix_VerifyNode_SetError
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2554,1
    - Dst: PKIX_CHECK_FATAL
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2557,1
    - Dst: pkix_VerifyNode_AddToTree
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2557,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2560,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2561,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2566,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2569,1
    - Dst: pkix_IsCertSelfIssued
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2569,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2573,1
    - Dst: PKIX_PL_Object_Duplicate
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2573,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2584,1
    - Dst: PKIX_PL_Cert_GetAllSubjectNames
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2584,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2591,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2591,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2602,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2602,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2608,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2610,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2610,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2615,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2617,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2620,1
    - Dst: pkix_ForwardBuilderState_Create
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2620,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2634,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2635,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2638,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2646,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2653,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2654,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2654,1
    - Dst: PKIX_ERROR_CREATE
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2667,1
    - Dst: PKIX_CHECK_FATAL
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2671,1
    - Dst: pkix_VerifyNode_SetError
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2672,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2677,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2682,1
    - Dst: pkix_PrepareForwardBuilderStateForAIA
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2697,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2708,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2708,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2711,1
    - Dst: PKIX_List_DeleteItem
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2711,1
    - Dst: PKIX_CHECK_FATAL
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2719,1
    - Dst: pkix_VerifyNode_Create
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2720,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2727,1
    - Dst: PKIX_ERROR_CREATE
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2728,1
    - Dst: PKIX_CHECK_FATAL
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2730,1
    - Dst: pkix_VerifyNode_SetError
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2731,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2735,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2737,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2739,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2742,1
    - Dst: PKIX_CHECK_FATAL
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2746,1
    - Dst: pkix_VerifyNode_AddToTree
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2746,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2751,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2753,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2754,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2761,1
    - Dst: pkix_PrepareForwardBuilderStateForAIA
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2766,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2770,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2785,1
    - Dst: PKIX_CHECK_FATAL
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2794,1
    - Dst: pkix_ForwardBuilderState_IsIOPending
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2794,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2800,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2802,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2805,1
    - Dst: PKIX_CHECK_FATAL
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2809,1
    - Dst: pkix_VerifyNode_AddToTree
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2809,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2814,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2818,1
    - Dst: PKIX_CHECK_FATAL
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2824,1
    - Dst: pkix_VerifyNode_FindError
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2825,1
    - Dst: PKIX_ERROR_CREATE
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2838,1
    - Dst: PKIX_CHECK_FATAL
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2840,1
    - Dst: pkix_VerifyNode_SetError
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2841,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2860,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2861,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2863,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2870,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2871,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2872,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2873,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2874,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2875,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2876,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2877,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2878,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2879,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2880,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2881,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2882,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2883,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2884,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2885,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2886,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2888,1
    CyclomaticComplexity: 88
    EdgeCount: 88
    ICount: 414
    argCount: 4
    argNames:
    - pNBIOContext
    - state
    - pValResult
    - plContext
    argTypes:
    - void**
    - PKIX_ForwardBuilderState*
    - PKIX_ValidateResult**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2889
      start: 2032
    functionDepth: 5
    functionLinenumber: 2032
    functionLinenumberEnd: 2889
    functionName: pkix_BuildForwardDepthFirstSearch
    functionSourceFile: /src/nss/lib/libpkix/pkix/top/pkix_build.c
    functionUses: 0
    functionsReached:
    - PKIX_PL_AIAMgr_GetAIACerts
    - pkix_Build_ValidateEntireChain
    - PKIX_RETURN
    - pkix_Build_ValidationCheckers
    - PKIX_List_Create
    - pkix_IsCertSelfIssued
    - PKIX_CertSelector_GetCommonCertSelectorParams
    - PKIX_DECREF
    - pkix_VerifyNode_AddToTree
    - pkix_Build_GatherCerts
    - isIssuerCertAllowedAtCertIssuanceTime
    - PKIX_ERROR
    - PKIX_ERROR_CREATE
    - PKIX_PL_Date_Create_UTCTime
    - PKIX_NULLCHECK_ONE
    - PKIX_INCREF
    - PKIX_FREE
    - pkix_Build_VerifyCertificate
    - PKIX_List_AppendItem
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_PL_Cert_GetAllSubjectNames
    - pkix_PrepareForwardBuilderStateForAIA
    - PORT_Assert
    - PKIX_PL_String_GetEncoded
    - PKIX_PL_Object_Compare
    - pkix_VerifyNode_SetError
    - pkix_Build_BuildSelectorAndParams
    - PKIX_List_GetLength
    - pkix_ForwardBuilderState_Create
    - pkix_CertSelector_Select
    - pkix_VerifyNode_FindError
    - PKIX_CHECK
    - PKIX_PL_Object_DecRef
    - pkix_VerifyNode_Create
    - PKIX_PL_Object_Duplicate
    - PKIX_DEBUG_ARG
    - PKIX_List_DeleteItem
    - pkix_ForwardBuilderState_DumpState
    - pkix_ForwardBuilderState_IsIOPending
    - PKIX_TrustAnchor_CreateWithCert
    - pkix_Build_UpdateDate
    - PKIX_TOSTRING
    - PKIX_CHECK_FATAL
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_BuildForwardDepthFirstSearch(\n        void **pNBIOContext,\n
      \       PKIX_ForwardBuilderState *state,\n        PKIX_ValidateResult **pValResult,\n
      \       void *plContext)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2938,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2948,1
    - Dst: pkix_CacheCertChain_Lookup
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2948,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2965,1
    - Dst: PKIX_BuildResult_GetValidateResult
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2965,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2969,1
    - Dst: PKIX_ValidateResult_GetTrustAnchor
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2969,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2973,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2975,1
    - Dst: PKIX_TrustAnchor_GetTrustedCert
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2975,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2981,1
    - Dst: pkix_List_Contains
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2982,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2995,1
    - Dst: PKIX_PL_Cert_IsCertTrusted
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:2996,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3010,1
    - Dst: PKIX_BuildResult_GetCertChain
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3010,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3014,1
    - Dst: pkix_Build_ValidationCheckers
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3014,1
    - Dst: PKIX_CHECK_ONLY_FATAL
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3022,1
    - Dst: pkix_Build_ValidateEntireChain
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3023,1
    - Dst: PKIX_CHECK_FATAL
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3047,1
    - Dst: pkix_CacheCertChain_Remove
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3047,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3057,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3058,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3059,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3060,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3061,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3062,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3065,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 56
    argCount: 4
    argNames:
    - state
    - pBuildResult
    - pNBIOContext
    - plContext
    argTypes:
    - PKIX_ForwardBuilderState*
    - PKIX_BuildResult**
    - void**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3066
      start: 2917
    functionDepth: 5
    functionLinenumber: 2917
    functionLinenumberEnd: 3066
    functionName: pkix_Build_CheckInCache
    functionSourceFile: /src/nss/lib/libpkix/pkix/top/pkix_build.c
    functionUses: 0
    functionsReached:
    - pkix_Build_ValidateEntireChain
    - PKIX_CHECK_ONLY_FATAL
    - PKIX_CHECK
    - pkix_Build_ValidationCheckers
    - PKIX_RETURN
    - pkix_CacheCertChain_Lookup
    - PKIX_BuildResult_GetValidateResult
    - PKIX_PL_Cert_IsCertTrusted
    - PKIX_TrustAnchor_GetTrustedCert
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_ValidateResult_GetTrustAnchor
    - PKIX_BuildResult_GetCertChain
    - pkix_CacheCertChain_Remove
    - pkix_List_Contains
    - PKIX_CHECK_FATAL
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_Build_CheckInCache(\n        PKIX_ForwardBuilderState
      *state,\n        PKIX_BuildResult **pBuildResult,\n        void **pNBIOContext,\n
      \       void *plContext)"
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3155,1
    - Dst: PKIX_NULLCHECK_FOUR
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3156,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3165,1
    - Dst: PKIX_ProcessingParams_GetDate
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3165,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3169,1
    - Dst: PKIX_ProcessingParams_GetTrustAnchors
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3169,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3173,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3173,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3177,1
    - Dst: PKIX_ProcessingParams_GetTargetCertConstraints
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3177,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3181,1
    - Dst: PKIX_CertSelector_GetCommonCertSelectorParams
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3181,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3185,1
    - Dst: PKIX_ComCertSelParams_GetCertificate
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3185,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3189,1
    - Dst: PKIX_ComCertSelParams_SetLeafCertFlag
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3190,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3194,1
    - Dst: PKIX_ProcessingParams_GetHintCerts
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3194,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3199,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3199,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3214,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3217,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3217,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3224,1
    - Dst: PKIX_List_DeleteItem
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3224,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3233,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3233,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3237,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3237,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3245,1
    - Dst: PKIX_List_DeleteItem
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3245,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3249,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3255,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3258,1
    - Dst: PKIX_PL_Cert_IsLeafCertTrusted
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3258,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3264,1
    - Dst: PKIX_PL_Cert_GetAllSubjectNames
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3264,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3270,1
    - Dst: PKIX_PL_Cert_GetSubjectPublicKey
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3270,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3274,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3274,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3277,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3277,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3284,1
    - Dst: PKIX_ComCertSelParams_SetCertificateValid
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3285,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3290,1
    - Dst: PKIX_CertSelector_GetMatchCallback
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3290,1
    - Dst: pkix_VerifyNode_Create
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3304,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3309,1
    - Dst: pkix_VerifyNode_Create
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3326,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3336,1
    - Dst: pkix_ValidateResult_Create
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3336,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3340,1
    - Dst: pkix_BuildResult_Create
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3341,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3351,1
    - Dst: PKIX_ProcessingParams_GetCertStores
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3351,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3355,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3355,1
    - Dst: PKIX_CHECK_ONLY_FATAL
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3362,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3362,1
    - Dst: PKIX_CHECK_ONLY_FATAL
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3368,1
    - Dst: PKIX_CertStore_GetTrustCallback
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3368,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3374,1
    - Dst: PKIX_List_DeleteItem
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3374,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3377,1
    - Dst: PKIX_List_InsertItem
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3377,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3386,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3390,1
    - Dst: PKIX_ProcessingParams_GetCertChainCheckers
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3390,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3394,1
    - Dst: PKIX_ProcessingParams_GetRevocationChecker
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3394,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3400,1
    - Dst: PKIX_PL_AIAMgr_Create
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3400,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3426,1
    - Dst: pkix_Build_GetResourceLimits
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3426,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3429,1
    - Dst: pkix_ForwardBuilderState_Create
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3429,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3450,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3453,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3455,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3458,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3460,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3462,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3465,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3467,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3475,1
    - Dst: PKIX_PL_Date_Create_CurrentOffBySeconds
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3475,1
    - Dst: pkix_VerifyNode_Create
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3484,1
    - Dst: PKIX_CHECK_ONLY_FATAL
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3495,1
    - Dst: pkix_Build_CheckInCache
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3496,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3517,1
    - Dst: PKIX_PL_Cert_GetAllSubjectNames
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3517,1
    - Dst: pkix_BuildForwardDepthFirstSearch
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3527,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3539,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3544,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3545,1
    - Dst: pkix_BuildResult_Create
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3546,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3557,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3558,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3559,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3560,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3561,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3562,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3563,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3564,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3565,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3566,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3567,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3568,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3569,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3570,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3571,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3572,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3573,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3574,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3575,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3577,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 218
    argCount: 6
    argNames:
    - procParams
    - pNBIOContext
    - pState
    - pBuildResult
    - pVerifyNode
    - plContext
    argTypes:
    - PKIX_ProcessingParams*
    - void**
    - PKIX_ForwardBuilderState**
    - PKIX_BuildResult**
    - PKIX_VerifyNode**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3578
      start: 3114
    functionDepth: 6
    functionLinenumber: 3114
    functionLinenumberEnd: 3578
    functionName: pkix_Build_InitiateBuildChain
    functionSourceFile: /src/nss/lib/libpkix/pkix/top/pkix_build.c
    functionUses: 0
    functionsReached:
    - PKIX_PL_Object_Equals
    - pkix_BuildForwardDepthFirstSearch
    - PKIX_List_Create
    - PKIX_RETURN
    - PKIX_CertStore_GetTrustCallback
    - PKIX_PL_AIAMgr_Create
    - PKIX_NULLCHECK_FOUR
    - PKIX_CertSelector_GetCommonCertSelectorParams
    - PKIX_ProcessingParams_GetTrustAnchors
    - pkix_BuildResult_Create
    - PKIX_DECREF
    - PKIX_ERROR
    - PKIX_INCREF
    - PKIX_ProcessingParams_GetDate
    - PKIX_CHECK_ONLY_FATAL
    - PKIX_PL_Date_Create_CurrentOffBySeconds
    - pkix_Build_CheckInCache
    - PKIX_List_AppendItem
    - PKIX_ENTER
    - PKIX_ProcessingParams_GetTargetCertConstraints
    - PKIX_ComCertSelParams_GetCertificate
    - PKIX_PL_Cert_GetAllSubjectNames
    - PKIX_ComCertSelParams_SetCertificateValid
    - PKIX_List_InsertItem
    - PKIX_List_GetLength
    - PKIX_PL_Cert_GetSubjectPublicKey
    - pkix_ForwardBuilderState_Create
    - PKIX_ProcessingParams_GetCertStores
    - PKIX_ComCertSelParams_SetLeafCertFlag
    - PKIX_CertSelector_GetMatchCallback
    - PKIX_PL_Cert_IsLeafCertTrusted
    - PKIX_CHECK
    - PKIX_ProcessingParams_GetCertChainCheckers
    - PKIX_ProcessingParams_GetRevocationChecker
    - pkix_VerifyNode_Create
    - pkix_ValidateResult_Create
    - PKIX_List_DeleteItem
    - pkix_Build_GetResourceLimits
    - PKIX_ProcessingParams_GetHintCerts
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_Build_InitiateBuildChain(\n        PKIX_ProcessingParams
      *procParams,\n        void **pNBIOContext,\n        PKIX_ForwardBuilderState
      **pState,\n        PKIX_BuildResult **pBuildResult,\n        PKIX_VerifyNode
      **pVerifyNode,\n        void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3627,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3628,1
    - Dst: pkix_BuildForwardDepthFirstSearch
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3634,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3646,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3651,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3653,1
    - Dst: pkix_BuildResult_Create
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3654,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3662,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3664,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 5
    argNames:
    - pNBIOContext
    - state
    - pBuildResult
    - pVerifyNode
    - plContext
    argTypes:
    - void**
    - PKIX_ForwardBuilderState*
    - PKIX_BuildResult**
    - PKIX_VerifyNode**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3665
      start: 3615
    functionDepth: 6
    functionLinenumber: 3615
    functionLinenumberEnd: 3665
    functionName: pkix_Build_ResumeBuildChain
    functionSourceFile: /src/nss/lib/libpkix/pkix/top/pkix_build.c
    functionUses: 0
    functionsReached:
    - PKIX_INCREF
    - pkix_BuildForwardDepthFirstSearch
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_BuildResult_Create
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_Build_ResumeBuildChain(\n        void **pNBIOContext,\n
      \       PKIX_ForwardBuilderState *state,\n        PKIX_BuildResult **pBuildResult,\n
      \       PKIX_VerifyNode **pVerifyNode,\n        void *plContext)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3685,1
    - Dst: PKIX_NULLCHECK_FOUR
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3686,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3692,1
    - Dst: pkix_Build_InitiateBuildChain
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3692,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3704,1
    - Dst: pkix_Build_InitiateBuildChain
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3704,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3713,1
    - Dst: pkix_Build_ResumeBuildChain
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3713,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3733,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3744,1
    - Dst: pkix_CacheCertChain_Add
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3744,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3759,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3760,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/top/pkix_build.c:3762,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 6
    argNames:
    - procParams
    - pNBIOContext
    - pState
    - pBuildResult
    - pVerifyNode
    - plContext
    argTypes:
    - PKIX_ProcessingParams*
    - void**
    - void**
    - PKIX_BuildResult**
    - PKIX_VerifyNode**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3763
      start: 3672
    functionDepth: 7
    functionLinenumber: 3672
    functionLinenumberEnd: 3763
    functionName: PKIX_BuildChain
    functionSourceFile: /src/nss/lib/libpkix/pkix/top/pkix_build.c
    functionUses: 8
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_NULLCHECK_FOUR
    - pkix_CacheCertChain_Add
    - PKIX_ENTER
    - PKIX_DECREF
    - pkix_Build_InitiateBuildChain
    - pkix_Build_ResumeBuildChain
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_BuildChain(\n        PKIX_ProcessingParams *procParams,\n
      \       void **pNBIOContext,\n        void **pState,\n        PKIX_BuildResult
      **pBuildResult,\n        PKIX_VerifyNode **pVerifyNode,\n        void *plContext)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/top/pkix_lifecycle.c:59,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/top/pkix_lifecycle.c:60,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/top/pkix_lifecycle.c:68,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_lifecycle.c:71,1
    - Dst: PKIX_PL_Initialize
      Src: /src/nss/lib/libpkix/pkix/top/pkix_lifecycle.c:71,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/top/pkix_lifecycle.c:78,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/top/pkix_lifecycle.c:83,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_lifecycle.c:91,1
    - Dst: PKIX_PL_HashTable_Create
      Src: /src/nss/lib/libpkix/pkix/top/pkix_lifecycle.c:91,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_lifecycle.c:95,1
    - Dst: PKIX_PL_HashTable_Create
      Src: /src/nss/lib/libpkix/pkix/top/pkix_lifecycle.c:95,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_lifecycle.c:99,1
    - Dst: PKIX_PL_HashTable_Create
      Src: /src/nss/lib/libpkix/pkix/top/pkix_lifecycle.c:99,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_lifecycle.c:103,1
    - Dst: PKIX_PL_HashTable_Create
      Src: /src/nss/lib/libpkix/pkix/top/pkix_lifecycle.c:103,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_lifecycle.c:107,1
    - Dst: PKIX_PL_HashTable_Create
      Src: /src/nss/lib/libpkix/pkix/top/pkix_lifecycle.c:107,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_lifecycle.c:111,1
    - Dst: PKIX_PL_HashTable_Create
      Src: /src/nss/lib/libpkix/pkix/top/pkix_lifecycle.c:111,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_lifecycle.c:116,1
    - Dst: PKIX_PL_HashTable_Create
      Src: /src/nss/lib/libpkix/pkix/top/pkix_lifecycle.c:116,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_lifecycle.c:121,1
    - Dst: PKIX_PL_MonitorLock_Create
      Src: /src/nss/lib/libpkix/pkix/top/pkix_lifecycle.c:121,1
    - Dst: PL_NewHashTable
      Src: /src/nss/lib/libpkix/pkix/top/pkix_lifecycle.c:126,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/top/pkix_lifecycle.c:130,1
    - Dst: PORT_ZNewArray
      Src: /src/nss/lib/libpkix/pkix/top/pkix_lifecycle.c:133,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/top/pkix_lifecycle.c:135,1
    - Dst: PORT_ZNewArray
      Src: /src/nss/lib/libpkix/pkix/top/pkix_lifecycle.c:138,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/top/pkix_lifecycle.c:140,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/top/pkix_lifecycle.c:148,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 6
    argNames:
    - platformInitNeeded
    - desiredMajorVersion
    - minDesiredMinorVersion
    - maxDesiredMinorVersion
    - pActualMinorVersion
    - pPlContext
    argTypes:
    - PKIX_Boolean
    - PKIX_UInt32
    - PKIX_UInt32
    - PKIX_UInt32
    - PKIX_UInt32*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 149
    functionName: PKIX_Initialize
    functionSourceFile: /src/nss/lib/libpkix/pkix/top/pkix_lifecycle.c
    functionUses: 3
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PORT_ZNewArray
    - PKIX_PL_Initialize
    - PKIX_PL_MonitorLock_Create
    - PL_NewHashTable
    - PKIX_PL_HashTable_Create
    - PKIX_ENTER
    - PKIX_ERROR
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_Initialize(\n        PKIX_Boolean platformInitNeeded,\n
      \       PKIX_UInt32 desiredMajorVersion,\n        PKIX_UInt32 minDesiredMinorVersion,\n
      \       PKIX_UInt32 maxDesiredMinorVersion,\n        PKIX_UInt32 *pActualMinorVersion,\n
      \       void **pPlContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/top/pkix_lifecycle.c:161,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/top/pkix_lifecycle.c:165,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_lifecycle.c:177,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_lifecycle.c:178,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_lifecycle.c:179,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_lifecycle.c:181,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_lifecycle.c:184,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_lifecycle.c:185,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_lifecycle.c:186,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_lifecycle.c:187,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_lifecycle.c:188,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_lifecycle.c:189,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_lifecycle.c:190,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/libpkix/pkix/top/pkix_lifecycle.c:194,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_lifecycle.c:198,1
    - Dst: PKIX_PL_Shutdown
      Src: /src/nss/lib/libpkix/pkix/top/pkix_lifecycle.c:198,1
    - Dst: PORT_Free
      Src: /src/nss/lib/libpkix/pkix/top/pkix_lifecycle.c:202,1
    - Dst: PORT_Free
      Src: /src/nss/lib/libpkix/pkix/top/pkix_lifecycle.c:203,1
    - Dst: PL_HashTableDestroy
      Src: /src/nss/lib/libpkix/pkix/top/pkix_lifecycle.c:204,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/top/pkix_lifecycle.c:209,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 36
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 210
    functionName: PKIX_Shutdown
    functionSourceFile: /src/nss/lib/libpkix/pkix/top/pkix_lifecycle.c
    functionUses: 62
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_DecRef
    - PKIX_PL_Shutdown
    - PORT_Free
    - PL_HashTableDestroy
    - PKIX_ENTER
    - PKIX_DECREF
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      PKIX_Shutdown(void *plContext)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:61,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:62,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:66,1
    - Dst: pkix_VerifyNode_Create
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:66,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:74,1
    - Dst: pkix_VerifyNode_AddToChain
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:74,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 5
    argNames:
    - cert
    - depth
    - error
    - pVerifyTree
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_UInt32
    - PKIX_Error*
    - PKIX_VerifyNode**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 84
    functionName: pkix_AddToVerifyLog
    functionSourceFile: /src/nss/lib/libpkix/pkix/top/pkix_validate.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_VerifyNode_Create
    - PKIX_ENTER
    - pkix_VerifyNode_AddToChain
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_AddToVerifyLog(\n        PKIX_PL_Cert *cert,\n
      \       PKIX_UInt32 depth,\n        PKIX_Error *error,\n        PKIX_VerifyNode
      **pVerifyTree,\n        void *plContext)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:146,1
    - Dst: PKIX_NULLCHECK_FOUR
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:147,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:152,1
    - Dst: PKIX_PL_Cert_GetCriticalExtensionOIDs
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:152,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:156,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:156,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:163,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:163,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:170,1
    - Dst: PKIX_CertChainChecker_GetCheckCallback
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:170,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:174,1
    - Dst: checkerCheck
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:174,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:184,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:194,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:196,1
    - Dst: PKIX_PL_String_GetEncoded
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:196,1
    - Dst: PKIX_VALIDATE_DEBUG_ARG
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:203,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:206,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:207,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:213,1
    - Dst: pkix_List_RemoveItems
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:213,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:220,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:220,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:225,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:232,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:233,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:235,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 39
    argCount: 6
    argNames:
    - cert
    - checkers
    - checkedExtOIDsList
    - pCheckerIndex
    - pNBIOContext
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_List*
    - PKIX_List*
    - PKIX_UInt32*
    - void**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 237
    functionName: pkix_CheckCert
    functionSourceFile: /src/nss/lib/libpkix/pkix/top/pkix_validate.c
    functionUses: 0
    functionsReached:
    - PKIX_PL_Cert_GetCriticalExtensionOIDs
    - PKIX_PL_String_GetEncoded
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_GetLength
    - PKIX_NULLCHECK_FOUR
    - PKIX_PL_Free
    - pkix_List_RemoveItems
    - checkerCheck
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_TOSTRING
    - PKIX_VALIDATE_DEBUG_ARG
    - PKIX_CertChainChecker_GetCheckCallback
    - PKIX_ERROR
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_CheckCert(\n        PKIX_PL_Cert *cert,\n        PKIX_List
      *checkers,\n        PKIX_List *checkedExtOIDsList,\n        PKIX_UInt32 *pCheckerIndex,\n
      \       void **pNBIOContext,\n        void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:302,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:303,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:304,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:304,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:315,1
    - Dst: PKIX_TrustAnchor_GetTrustedCert
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:315,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:320,1
    - Dst: PKIX_PL_Cert_GetSubjectPublicKey
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:320,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:324,1
    - Dst: PKIX_PL_Cert_GetSubject
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:324,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:328,1
    - Dst: PKIX_TrustAnchor_GetCAPublicKey
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:328,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:332,1
    - Dst: PKIX_TrustAnchor_GetCAName
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:332,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:337,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:339,1
    - Dst: PKIX_TrustAnchor_GetNameConstraints
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:339,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:343,1
    - Dst: PKIX_ProcessingParams_GetTargetCertConstraints
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:343,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:347,1
    - Dst: PKIX_ProcessingParams_GetDate
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:347,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:351,1
    - Dst: PKIX_ProcessingParams_GetInitialPolicies
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:351,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:355,1
    - Dst: PKIX_ProcessingParams_GetPolicyQualifiersRejected
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:355,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:359,1
    - Dst: PKIX_ProcessingParams_IsPolicyMappingInhibited
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:359,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:363,1
    - Dst: PKIX_ProcessingParams_IsAnyPolicyInhibited
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:363,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:367,1
    - Dst: PKIX_ProcessingParams_IsExplicitPolicyRequired
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:367,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:371,1
    - Dst: PKIX_ProcessingParams_GetCertStores
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:371,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:375,1
    - Dst: PKIX_ProcessingParams_GetCertChainCheckers
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:375,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:380,1
    - Dst: pkix_TargetCertChecker_Initialize
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:380,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:384,1
    - Dst: pkix_ExpirationChecker_Initialize
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:384,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:388,1
    - Dst: pkix_NameChainingChecker_Initialize
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:388,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:392,1
    - Dst: pkix_NameConstraintsChecker_Initialize
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:392,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:396,1
    - Dst: pkix_BasicConstraintsChecker_Initialize
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:396,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:400,1
    - Dst: pkix_PolicyChecker_Initialize
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:400,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:411,1
    - Dst: pkix_SignatureChecker_Initialize
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:411,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:417,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:417,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:423,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:423,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:430,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:430,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:436,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:440,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:440,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:444,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:444,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:448,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:448,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:452,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:452,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:456,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:456,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:460,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:460,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:464,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:464,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:473,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:476,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:477,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:478,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:479,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:480,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:481,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:482,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:483,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:484,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:485,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:486,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:487,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:488,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:489,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:490,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:491,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:492,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:493,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:495,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 70
    argCount: 5
    argNames:
    - anchor
    - procParams
    - numCerts
    - pCheckers
    - plContext
    argTypes:
    - PKIX_TrustAnchor*
    - PKIX_ProcessingParams*
    - PKIX_UInt32
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 268
    functionDepth: 4
    functionLinenumber: 268
    functionLinenumberEnd: 496
    functionName: pkix_InitializeCheckers
    functionSourceFile: /src/nss/lib/libpkix/pkix/top/pkix_validate.c
    functionUses: 0
    functionsReached:
    - PKIX_RETURN
    - PKIX_List_Create
    - pkix_SignatureChecker_Initialize
    - PKIX_TrustAnchor_GetNameConstraints
    - PKIX_DECREF
    - pkix_ExpirationChecker_Initialize
    - pkix_NameChainingChecker_Initialize
    - PKIX_ProcessingParams_GetDate
    - PKIX_TrustAnchor_GetCAName
    - pkix_TargetCertChecker_Initialize
    - PKIX_List_AppendItem
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_ProcessingParams_GetTargetCertConstraints
    - pkix_BasicConstraintsChecker_Initialize
    - PKIX_ProcessingParams_IsExplicitPolicyRequired
    - PKIX_ProcessingParams_GetInitialPolicies
    - PKIX_PL_Cert_GetSubject
    - PKIX_List_GetLength
    - PKIX_PL_Cert_GetSubjectPublicKey
    - PKIX_ProcessingParams_IsPolicyMappingInhibited
    - PKIX_ProcessingParams_GetCertStores
    - PKIX_NULLCHECK_TWO
    - PKIX_ProcessingParams_GetPolicyQualifiersRejected
    - PKIX_TrustAnchor_GetCAPublicKey
    - PKIX_CHECK
    - PKIX_ProcessingParams_GetCertChainCheckers
    - PKIX_ProcessingParams_IsAnyPolicyInhibited
    - pkix_NameConstraintsChecker_Initialize
    - PKIX_TrustAnchor_GetTrustedCert
    - pkix_PolicyChecker_Initialize
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_InitializeCheckers(\n        PKIX_TrustAnchor *anchor,\n
      \       PKIX_ProcessingParams *procParams,\n        PKIX_UInt32 numCerts,\n
      \       PKIX_List **pCheckers,\n        void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:538,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:540,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:549,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:549,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:553,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:553,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:557,1
    - Dst: PKIX_CertChainChecker_GetCertChainCheckerState
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:557,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:564,1
    - Dst: PKIX_PL_Object_GetType
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:564,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:572,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:583,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:584,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:587,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:592,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:593,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:595,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 4
    argNames:
    - checkers
    - pFinalSubjPubKey
    - pPolicyTree
    - plContext
    argTypes:
    - PKIX_List*
    - PKIX_PL_PublicKey**
    - PKIX_PolicyNode**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 523
    functionDepth: 2
    functionLinenumber: 523
    functionLinenumberEnd: 597
    functionName: pkix_RetrieveOutputs
    functionSourceFile: /src/nss/lib/libpkix/pkix/top/pkix_validate.c
    functionUses: 0
    functionsReached:
    - PKIX_INCREF
    - PKIX_CertChainChecker_GetCertChainCheckerState
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_GetLength
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_PL_Object_GetType
    - PKIX_NULLCHECK_TWO
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_RetrieveOutputs(\n        PKIX_List *checkers,\n
      \       PKIX_PL_PublicKey **pFinalSubjPubKey,\n        PKIX_PolicyNode **pPolicyTree,\n
      \       void *plContext)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:709,1
    - Dst: PKIX_NULLCHECK_FOUR
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:710,1
    - Dst: PKIX_NULLCHECK_FOUR
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:711,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:712,1
    - Dst: CERT_NewCertList
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:724,1
    - Dst: PKIX_ERROR_ALLOC_ERROR
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:726,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:730,1
    - Dst: PKIX_TrustAnchor_GetTrustedCert
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:730,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:734,1
    - Dst: PKIX_PL_Cert_GetCERTCertificate
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:735,1
    - Dst: CERT_AddCertToListHead
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:738,1
    - Dst: PKIX_ERROR_ALLOC_ERROR
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:740,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:744,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:748,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:748,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:752,1
    - Dst: PKIX_PL_Cert_GetCERTCertificate
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:753,1
    - Dst: CERT_AddCertToListHead
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:756,1
    - Dst: PKIX_ERROR_ALLOC_ERROR
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:758,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:762,1
    - Dst: PKIX_ERROR_FATAL
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:768,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:772,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:777,1
    - Dst: PKIX_TrustAnchor_GetTrustedCert
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:777,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:783,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:784,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:788,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:788,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:793,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:800,1
    - Dst: pkix_CheckCert
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:800,1
    - Dst: PKIX_RevocationChecker_Check
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:823,1
    - Dst: PKIX_ERROR_CREATE
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:841,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:851,1
    - Dst: pkix_AddToVerifyLog
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:851,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:856,1
    - Dst: pkix_RetrieveOutputs
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:856,1
    - Dst: PKIX_CHECK_FATAL
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:866,1
    - Dst: pkix_AddToVerifyLog
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:867,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:877,1
    - Dst: CERT_DestroyCertList
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:881,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:884,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:885,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:886,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:888,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 108
    argCount: 16
    argNames:
    - certs
    - numCerts
    - anchor
    - checkers
    - revChecker
    - removeCheckedExtOIDs
    - procParams
    - pCertCheckedIndex
    - pCheckerIndex
    - pRevChecking
    - pReasonCode
    - pNBIOContext
    - pFinalSubjPubKey
    - pPolicyTree
    - pVerifyTree
    - plContext
    argTypes:
    - PKIX_List*
    - PKIX_UInt32
    - PKIX_TrustAnchor*
    - PKIX_List*
    - PKIX_RevocationChecker*
    - PKIX_List*
    - PKIX_ProcessingParams*
    - PKIX_UInt32*
    - PKIX_UInt32*
    - PKIX_Boolean*
    - PKIX_UInt32*
    - void**
    - PKIX_PL_PublicKey**
    - PKIX_PolicyNode**
    - PKIX_VerifyNode**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 679
    functionDepth: 3
    functionLinenumber: 679
    functionLinenumberEnd: 889
    functionName: pkix_CheckChain
    functionSourceFile: /src/nss/lib/libpkix/pkix/top/pkix_validate.c
    functionUses: 1
    functionsReached:
    - PKIX_RETURN
    - pkix_CheckCert
    - PKIX_NULLCHECK_FOUR
    - CERT_NewCertList
    - CERT_AddCertToListHead
    - PKIX_DECREF
    - PKIX_ERROR
    - PKIX_ERROR_CREATE
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - pkix_RetrieveOutputs
    - PORT_Assert
    - pkix_AddToVerifyLog
    - CERT_DestroyCertificate
    - PKIX_ERROR_FATAL
    - PKIX_ERROR_ALLOC_ERROR
    - PKIX_RevocationChecker_Check
    - PKIX_PL_Cert_GetCERTCertificate
    - CERT_DestroyCertList
    - PKIX_CHECK
    - PKIX_TrustAnchor_GetTrustedCert
    - PKIX_CHECK_FATAL
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_CheckChain(\n        PKIX_List *certs,\n        PKIX_UInt32
      numCerts,\n        PKIX_TrustAnchor *anchor,\n        PKIX_List *checkers,\n
      \       PKIX_RevocationChecker *revChecker,\n        PKIX_List *removeCheckedExtOIDs,\n
      \       PKIX_ProcessingParams *procParams,\n        PKIX_UInt32 *pCertCheckedIndex,\n
      \       PKIX_UInt32 *pCheckerIndex,\n        PKIX_Boolean *pRevChecking,\n        PKIX_UInt32
      *pReasonCode,\n        void **pNBIOContext,\n        PKIX_PL_PublicKey **pFinalSubjPubKey,\n
      \       PKIX_PolicyNode **pPolicyTree,\n        PKIX_VerifyNode **pVerifyTree,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:937,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:938,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:939,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:942,1
    - Dst: PKIX_ValidateParams_GetCertChain
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:942,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:946,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:946,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:950,1
    - Dst: PKIX_ValidateParams_GetProcessingParams
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:950,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:954,1
    - Dst: PKIX_ProcessingParams_GetTrustAnchors
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:954,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:958,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:958,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:963,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 7
    argNames:
    - valParams
    - pCerts
    - pNumCerts
    - pProcParams
    - pAnchors
    - pNumAnchors
    - plContext
    argTypes:
    - PKIX_ValidateParams*
    - PKIX_List**
    - PKIX_UInt32*
    - PKIX_ProcessingParams**
    - PKIX_List**
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 964
      start: 927
    functionDepth: 2
    functionLinenumber: 927
    functionLinenumberEnd: 964
    functionName: pkix_ExtractParameters
    functionSourceFile: /src/nss/lib/libpkix/pkix/top/pkix_validate.c
    functionUses: 0
    functionsReached:
    - PKIX_ValidateParams_GetProcessingParams
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_GetLength
    - PKIX_ProcessingParams_GetTrustAnchors
    - PKIX_ENTER
    - PKIX_ValidateParams_GetCertChain
    - PKIX_NULLCHECK_THREE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_ExtractParameters(\n        PKIX_ValidateParams
      *valParams,\n        PKIX_List **pCerts,\n        PKIX_UInt32 *pNumCerts,\n
      \       PKIX_ProcessingParams **pProcParams,\n        PKIX_List **pAnchors,\n
      \       PKIX_UInt32 *pNumAnchors,\n        void *plContext)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1002,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1003,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1006,1
    - Dst: pkix_ExtractParameters
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1006,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1023,1
    - Dst: PKIX_ProcessingParams_GetCertChainCheckers
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1023,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1029,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1029,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1034,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1034,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1040,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1040,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1047,1
    - Dst: PKIX_CertChainChecker_IsForwardCheckingSupported
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1048,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1054,1
    - Dst: PKIX_CertChainChecker_GetSupportedExtensions
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1055,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1060,1
    - Dst: pkix_List_AppendList
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1060,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1068,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1069,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1073,1
    - Dst: PKIX_ProcessingParams_GetRevocationChecker
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1073,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1081,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1081,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1086,1
    - Dst: pkix_InitializeCheckers
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1086,1
    - Dst: pkix_CheckChain
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1098,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1120,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1121,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1122,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1123,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1127,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1134,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1137,1
    - Dst: pkix_ValidateResult_Create
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1137,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1154,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1155,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1156,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1157,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1158,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1159,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1160,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1161,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1162,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1163,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1164,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1166,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 59
    argCount: 4
    argNames:
    - valParams
    - pResult
    - pVerifyTree
    - plContext
    argTypes:
    - PKIX_ValidateParams*
    - PKIX_ValidateResult**
    - PKIX_VerifyNode**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1167
      start: 971
    functionDepth: 5
    functionLinenumber: 971
    functionLinenumberEnd: 1167
    functionName: PKIX_ValidateChain
    functionSourceFile: /src/nss/lib/libpkix/pkix/top/pkix_validate.c
    functionUses: 17
    functionsReached:
    - PKIX_RETURN
    - PKIX_List_Create
    - pkix_ExtractParameters
    - PKIX_DECREF
    - PKIX_ERROR
    - pkix_InitializeCheckers
    - PKIX_ENTER
    - pkix_CheckChain
    - PORT_Assert
    - PKIX_List_GetLength
    - pkix_List_AppendList
    - PKIX_NULLCHECK_TWO
    - PKIX_CertChainChecker_GetSupportedExtensions
    - PKIX_CHECK
    - PKIX_ProcessingParams_GetCertChainCheckers
    - PKIX_ProcessingParams_GetRevocationChecker
    - pkix_ValidateResult_Create
    - PKIX_CertChainChecker_IsForwardCheckingSupported
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ValidateChain(\n        PKIX_ValidateParams *valParams,\n
      \       PKIX_ValidateResult **pResult,\n        PKIX_VerifyNode **pVerifyTree,\n
      \       void *plContext)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1206,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1207,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1210,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1210,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1213,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1213,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1218,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1218,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1225,1
    - Dst: PKIX_CertChainChecker_IsForwardCheckingSupported
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1225,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1231,1
    - Dst: PKIX_CertChainChecker_GetSupportedExtensions
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1231,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1236,1
    - Dst: pkix_List_AppendList
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1236,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1242,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1243,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1252,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1255,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1256,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1258,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 3
    argNames:
    - userCheckers
    - pUserCritOIDs
    - plContext
    argTypes:
    - PKIX_List*
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1259
      start: 1193
    functionDepth: 2
    functionLinenumber: 1193
    functionLinenumberEnd: 1259
    functionName: pkix_Validate_BuildUserOIDs
    functionSourceFile: /src/nss/lib/libpkix/pkix/top/pkix_validate.c
    functionUses: 0
    functionsReached:
    - PKIX_CertChainChecker_GetSupportedExtensions
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_Create
    - PKIX_List_GetLength
    - pkix_List_AppendList
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_CertChainChecker_IsForwardCheckingSupported
    - PKIX_NULLCHECK_ONE
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_Validate_BuildUserOIDs(\n        PKIX_List *userCheckers,\n
      \       PKIX_List **pUserCritOIDs,\n        void *plContext)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1299,1
    - Dst: PKIX_NULLCHECK_FOUR
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1300,1
    - Dst: PKIX_NULLCHECK_FOUR
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1302,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1308,1
    - Dst: pkix_ExtractParameters
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1308,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1325,1
    - Dst: PKIX_ProcessingParams_GetCertChainCheckers
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1325,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1329,1
    - Dst: pkix_Validate_BuildUserOIDs
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1329,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1333,1
    - Dst: PKIX_ProcessingParams_GetRevocationChecker
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1333,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1352,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1352,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1358,1
    - Dst: pkix_InitializeCheckers
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1358,1
    - Dst: pkix_CheckChain
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1371,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1394,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1404,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1405,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1406,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1407,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1411,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1418,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1421,1
    - Dst: pkix_ValidateResult_Create
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1421,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1438,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1439,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1440,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1441,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1442,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1443,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1444,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1445,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1446,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1447,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1448,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/top/pkix_validate.c:1450,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 65
    argCount: 10
    argNames:
    - valParams
    - pCertIndex
    - pAnchorIndex
    - pCheckerIndex
    - pRevChecking
    - pCheckers
    - pNBIOContext
    - pResult
    - pVerifyTree
    - plContext
    argTypes:
    - PKIX_ValidateParams*
    - PKIX_UInt32*
    - PKIX_UInt32*
    - PKIX_UInt32*
    - PKIX_Boolean*
    - PKIX_List**
    - void**
    - PKIX_ValidateResult**
    - PKIX_VerifyNode**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1451
      start: 1264
    functionDepth: 5
    functionLinenumber: 1264
    functionLinenumberEnd: 1451
    functionName: PKIX_ValidateChain_NB
    functionSourceFile: /src/nss/lib/libpkix/pkix/top/pkix_validate.c
    functionUses: 1
    functionsReached:
    - PKIX_INCREF
    - PORT_Assert
    - PKIX_CHECK
    - PKIX_ProcessingParams_GetCertChainCheckers
    - PKIX_ProcessingParams_GetRevocationChecker
    - pkix_ValidateResult_Create
    - pkix_ExtractParameters
    - pkix_InitializeCheckers
    - PKIX_RETURN
    - PKIX_NULLCHECK_FOUR
    - pkix_Validate_BuildUserOIDs
    - PKIX_ENTER
    - PKIX_DECREF
    - pkix_CheckChain
    - PKIX_ERROR
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ValidateChain_NB(\n        PKIX_ValidateParams
      *valParams,\n        PKIX_UInt32 *pCertIndex,\n        PKIX_UInt32 *pAnchorIndex,\n
      \       PKIX_UInt32 *pCheckerIndex,\n        PKIX_Boolean *pRevChecking,\n        PKIX_List
      **pCheckers,\n        void **pNBIOContext,\n        PKIX_ValidateResult **pResult,\n
      \       PKIX_VerifyNode **pVerifyTree,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:26,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:27,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:29,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:29,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:36,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:37,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 42
    functionName: pkix_CRLSelector_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_CRLSelector_Destroy(\n        PKIX_PL_Object *object,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:81,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:82,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:83,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:92,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:92,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:101,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:108,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:111,1
    - Dst: PKIX_PL_Sprintf
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:111,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:124,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:125,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:126,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 3
    argNames:
    - crlSelector
    - pString
    - plContext
    argTypes:
    - PKIX_CRLSelector*
    - PKIX_PL_String**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 129
    functionName: pkix_CRLSelector_ToString_Helper
    functionSourceFile: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_PL_String_Create
    - PKIX_RETURN
    - PKIX_PL_Sprintf
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_TOSTRING
    - PKIX_NULLCHECK_TWO
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_CRLSelector_ToString_Helper(\n        PKIX_CRLSelector
      *crlSelector,\n        PKIX_PL_String **pString,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:144,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:145,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:147,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:147,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:152,1
    - Dst: pkix_CRLSelector_ToString_Helper
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:152,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - object
    - pString
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_String**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 161
    functionName: pkix_CRLSelector_ToString
    functionSourceFile: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - pkix_CRLSelector_ToString_Helper
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_CRLSelector_ToString(\n        PKIX_PL_Object *object,\n
      \       PKIX_PL_String **pString,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:179,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:180,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:182,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:182,1
    - Dst: PKIX_HASHCODE
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:187,1
    - Dst: PKIX_HASHCODE
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:190,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - object
    - pHashcode
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 201
    functionName: pkix_CRLSelector_Hashcode
    functionSourceFile: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_HASHCODE
    - pkix_CheckType
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_CRLSelector_Hashcode(\n        PKIX_PL_Object *object,\n
      \       PKIX_UInt32 *pHashcode,\n        void *plContext)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:219,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:220,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:223,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:223,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:244,1
    - Dst: PKIX_PL_Object_GetType
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:244,1
    - Dst: PKIX_EQUALS
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:263,1
    - Dst: PKIX_EQUALS
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:276,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:287,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 4
    argNames:
    - firstObject
    - secondObject
    - pResult
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 288
    functionName: pkix_CRLSelector_Equals
    functionSourceFile: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_EQUALS
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - pkix_CheckType
    - PKIX_PL_Object_GetType
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_CRLSelector_Equals(\n        PKIX_PL_Object *firstObject,\n
      \       PKIX_PL_Object *secondObject,\n        PKIX_Boolean *pResult,\n        void
      *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:303,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:304,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:306,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:306,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:312,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:312,1
    - Dst: plContext::plContext
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:315,1
    - Dst: PKIX_DUPLICATE
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:321,1
    - Dst: params::params
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:321,1
    - Dst: PKIX_DUPLICATE
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:324,1
    - Dst: context::context
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:324,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:335,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - object
    - pNewObject
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 336
    functionName: pkix_CRLSelector_Duplicate
    functionSourceFile: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c
    functionUses: 0
    functionsReached:
    - plContext::plContext
    - PKIX_CHECK
    - params::params
    - PKIX_RETURN
    - PKIX_PL_Object_Alloc
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DUPLICATE
    - context::context
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_CRLSelector_Duplicate(\n        PKIX_PL_Object
      *object,\n        PKIX_PL_Object **pNewObject,\n        void *plContext)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:389,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:390,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:400,1
    - Dst: PKIX_ComCRLSelParams_GetIssuerNames
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:400,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:409,1
    - Dst: PKIX_PL_CRL_GetIssuer
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:409,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:413,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:413,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:419,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:419,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:426,1
    - Dst: PKIX_PL_X500Name_Match
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:426,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:433,1
    - Dst: PKIX_CRLSELECTOR_DEBUG
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:441,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:448,1
    - Dst: PKIX_ComCRLSelParams_GetDateAndTime
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:448,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:455,1
    - Dst: PKIX_ComCRLSelParams_GetNISTPolicyEnabled
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:455,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:463,1
    - Dst: PKIX_PL_CRL_VerifyUpdateTime
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:463,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:476,1
    - Dst: PKIX_PL_CRL_GetCRLNumber
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:476,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:482,1
    - Dst: PKIX_ComCRLSelParams_GetMinCRLNumber
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:482,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:488,1
    - Dst: PKIX_PL_Object_Compare
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:488,1
    - Dst: PKIX_CRLSELECTOR_DEBUG
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:496,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:503,1
    - Dst: PKIX_ComCRLSelParams_GetMaxCRLNumber
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:503,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:509,1
    - Dst: PKIX_PL_Object_Compare
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:509,1
    - Dst: PKIX_CRLSELECTOR_DEBUG
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:517,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:527,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:528,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:529,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:530,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:531,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:532,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:533,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:535,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 76
    argCount: 4
    argNames:
    - selector
    - crl
    - pMatch
    - plContext
    argTypes:
    - PKIX_CRLSelector*
    - PKIX_PL_CRL*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 536
    functionName: pkix_CRLSelector_DefaultMatch
    functionSourceFile: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c
    functionUses: 0
    functionsReached:
    - PKIX_ComCRLSelParams_GetMinCRLNumber
    - PKIX_ComCRLSelParams_GetNISTPolicyEnabled
    - PKIX_ComCRLSelParams_GetDateAndTime
    - PKIX_CHECK
    - PKIX_CRLSELECTOR_DEBUG
    - PKIX_PL_CRL_GetCRLNumber
    - PKIX_RETURN
    - PKIX_List_GetLength
    - PKIX_PL_Object_Compare
    - PKIX_ComCRLSelParams_GetIssuerNames
    - PKIX_PL_X500Name_Match
    - PKIX_PL_CRL_VerifyUpdateTime
    - PKIX_ComCRLSelParams_GetMaxCRLNumber
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_TWO
    - PKIX_PL_CRL_GetIssuer
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_CRLSelector_DefaultMatch(\n        PKIX_CRLSelector
      *selector,\n        PKIX_PL_CRL *crl,\n        PKIX_Boolean *pMatch,\n        void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:556,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 550
    functionDepth: 1
    functionLinenumber: 550
    functionLinenumberEnd: 571
    functionName: pkix_CRLSelector_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      pkix_CRLSelector_RegisterSelf(void *plContext)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:583,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:584,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:586,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:586,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:607,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:615,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:617,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 4
    argNames:
    - callback
    - crlSelectorContext
    - pSelector
    - plContext
    argTypes:
    - PKIX_CRLSelector_MatchCallback
    - PKIX_PL_Object*
    - PKIX_CRLSelector**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 574
    functionDepth: 1
    functionLinenumber: 574
    functionLinenumberEnd: 618
    functionName: pkix_CRLSelector_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c
    functionUses: 0
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_Alloc
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_CRLSelector_Create(\n        PKIX_CRLSelector_MatchCallback
      callback,\n        PKIX_PL_Object *crlSelectorContext,\n        PKIX_CRLSelector
      **pSelector,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:636,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:637,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:639,1
    - Dst: PKIX_PL_Cert_GetSubject
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:640,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:644,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:647,1
    - Dst: PKIX_PL_Date_Create_UTCTime
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:648,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:652,1
    - Dst: PKIX_ComCRLSelParams_Create
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:653,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:656,1
    - Dst: PKIX_ComCRLSelParams_AddIssuerName
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:657,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:661,1
    - Dst: PKIX_ComCRLSelParams_SetCrlDp
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:662,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:666,1
    - Dst: PKIX_ComCRLSelParams_SetDateAndTime
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:667,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:671,1
    - Dst: pkix_CRLSelector_Create
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:672,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:675,1
    - Dst: PKIX_CRLSelector_SetCommonCRLSelectorParams
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:676,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:686,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:687,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:688,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:689,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:691,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 5
    argNames:
    - issuer
    - crldpList
    - date
    - pCrlSelector
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_List*
    - PKIX_PL_Date*
    - PKIX_CRLSelector**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 623
    functionDepth: 2
    functionLinenumber: 623
    functionLinenumberEnd: 692
    functionName: PKIX_CRLSelector_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c
    functionUses: 7
    functionsReached:
    - PKIX_INCREF
    - pkix_CRLSelector_Create
    - PKIX_CRLSelector_SetCommonCRLSelectorParams
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Cert_GetSubject
    - PKIX_ComCRLSelParams_SetCrlDp
    - PKIX_ComCRLSelParams_SetDateAndTime
    - PKIX_ENTER
    - PKIX_ComCRLSelParams_Create
    - PKIX_DECREF
    - PKIX_ComCRLSelParams_AddIssuerName
    - PKIX_NULLCHECK_ONE
    - PKIX_PL_Date_Create_UTCTime
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_CRLSelector_Create(\n        PKIX_PL_Cert *issuer,\n
      \       PKIX_List *crldpList,\n        PKIX_PL_Date *date,\n        PKIX_CRLSelector
      **pCrlSelector,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:703,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:704,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - selector
    - pCallback
    - plContext
    argTypes:
    - PKIX_CRLSelector*
    - PKIX_CRLSelector_MatchCallback*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 697
    functionDepth: 1
    functionLinenumber: 697
    functionLinenumberEnd: 709
    functionName: PKIX_CRLSelector_GetMatchCallback
    functionSourceFile: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c
    functionUses: 1
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_CRLSelector_GetMatchCallback(\n        PKIX_CRLSelector
      *selector,\n        PKIX_CRLSelector_MatchCallback *pCallback,\n        void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:722,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:723,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:725,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - selector
    - pCrlSelectorContext
    - plContext
    argTypes:
    - PKIX_CRLSelector*
    - void**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 716
    functionDepth: 1
    functionLinenumber: 716
    functionLinenumberEnd: 731
    functionName: PKIX_CRLSelector_GetCRLSelectorContext
    functionSourceFile: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c
    functionUses: 1
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_CRLSelector_GetCRLSelectorContext(\n        PKIX_CRLSelector
      *selector,\n        void **pCrlSelectorContext,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:743,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:744,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:746,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:751,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - selector
    - pParams
    - plContext
    argTypes:
    - PKIX_CRLSelector*
    - PKIX_ComCRLSelParams**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 737
    functionDepth: 1
    functionLinenumber: 737
    functionLinenumberEnd: 752
    functionName: PKIX_CRLSelector_GetCommonCRLSelectorParams
    functionSourceFile: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c
    functionUses: 2
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_CRLSelector_GetCommonCRLSelectorParams(\n        PKIX_CRLSelector
      *selector,\n        PKIX_ComCRLSelParams **pParams,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:764,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:765,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:767,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:769,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:772,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:772,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:778,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - selector
    - params
    - plContext
    argTypes:
    - PKIX_CRLSelector*
    - PKIX_ComCRLSelParams*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 758
    functionDepth: 1
    functionLinenumber: 758
    functionLinenumberEnd: 779
    functionName: PKIX_CRLSelector_SetCommonCRLSelectorParams
    functionSourceFile: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c
    functionUses: 5
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_InvalidateCache
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_CRLSelector_SetCommonCRLSelectorParams(\n        PKIX_CRLSelector
      *selector,\n        PKIX_ComCRLSelParams *params,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:822,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:823,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:825,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:825,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:828,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:828,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:833,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:833,1
    - Dst: PKIX_CHECK_ONLY_FATAL
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:837,1
    - Dst: PKIX_CRLSelector*::matchCallback
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:837,1
    - Dst: PKIX_CHECK_ONLY_FATAL
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:843,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:843,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:851,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:854,1
    - Dst: PKIX_List_SetImmutable
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:854,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:865,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:866,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c:868,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 4
    argNames:
    - selector
    - before
    - pAfter
    - plContext
    argTypes:
    - PKIX_CRLSelector*
    - PKIX_List*
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 809
    functionDepth: 1
    functionLinenumber: 809
    functionLinenumberEnd: 870
    functionName: pkix_CRLSelector_Select
    functionSourceFile: /src/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c
    functionUses: 0
    functionsReached:
    - PKIX_List_SetImmutable
    - PKIX_CHECK_ONLY_FATAL
    - PKIX_CHECK
    - PKIX_CRLSelector*::matchCallback
    - PKIX_List_Create
    - PKIX_RETURN
    - PKIX_List_GetLength
    - PKIX_List_AppendItem
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_DECREF
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_CRLSelector_Select(\n\tPKIX_CRLSelector *selector,\n\tPKIX_List
      *before,\n\tPKIX_List **pAfter,\n\tvoid *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:26,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:27,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:29,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:29,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:35,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:36,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:37,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:38,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:39,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:40,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 45
    functionName: pkix_ComCRLSelParams_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_ComCRLSelParams_Destroy(\n        PKIX_PL_Object
      *object,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:86,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:87,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:98,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:98,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:106,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:110,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:113,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:117,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:121,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:124,1
    - Dst: PKIX_PL_Sprintf
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:124,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:139,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:140,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:141,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:142,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:143,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:144,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 3
    argNames:
    - crlParams
    - pString
    - plContext
    argTypes:
    - PKIX_ComCRLSelParams*
    - PKIX_PL_String**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 147
    functionName: pkix_ComCRLSelParams_ToString_Helper
    functionSourceFile: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_PL_String_Create
    - PKIX_RETURN
    - PKIX_PL_Sprintf
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_TOSTRING
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_ComCRLSelParams_ToString_Helper(\n        PKIX_ComCRLSelParams
      *crlParams,\n        PKIX_PL_String **pString,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:162,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:163,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:165,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:165,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:170,1
    - Dst: pkix_ComCRLSelParams_ToString_Helper
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:170,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - object
    - pString
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_String**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 179
    functionName: pkix_ComCRLSelParams_ToString
    functionSourceFile: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c
    functionUses: 0
    functionsReached:
    - pkix_ComCRLSelParams_ToString_Helper
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_ComCRLSelParams_ToString(\n        PKIX_PL_Object
      *object,\n        PKIX_PL_String **pString,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:199,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:200,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:202,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:202,1
    - Dst: PKIX_HASHCODE
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:207,1
    - Dst: PKIX_HASHCODE
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:210,1
    - Dst: PKIX_HASHCODE
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:213,1
    - Dst: PKIX_HASHCODE
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:216,1
    - Dst: PKIX_HASHCODE
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:219,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 3
    argNames:
    - object
    - pHashcode
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 231
    functionName: pkix_ComCRLSelParams_Hashcode
    functionSourceFile: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_HASHCODE
    - pkix_CheckType
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_ComCRLSelParams_Hashcode(\n        PKIX_PL_Object
      *object,\n        PKIX_UInt32 *pHashcode,\n        void *plContext)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:249,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:250,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:253,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:253,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:274,1
    - Dst: PKIX_PL_Object_GetType
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:274,1
    - Dst: PKIX_EQUALS
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:283,1
    - Dst: PKIX_EQUALS
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:295,1
    - Dst: PKIX_EQUALS
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:307,1
    - Dst: PKIX_EQUALS
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:319,1
    - Dst: PKIX_EQUALS
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:331,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:342,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 4
    argNames:
    - firstObject
    - secondObject
    - pResult
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 343
    functionName: pkix_ComCRLSelParams_Equals
    functionSourceFile: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_EQUALS
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - pkix_CheckType
    - PKIX_PL_Object_GetType
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_ComCRLSelParams_Equals(\n        PKIX_PL_Object
      *firstObject,\n        PKIX_PL_Object *secondObject,\n        PKIX_Boolean *pResult,\n
      \       void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:358,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:359,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:361,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:361,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:366,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:366,1
    - Dst: plContext::plContext
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:369,1
    - Dst: PKIX_DUPLICATE
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:373,1
    - Dst: cert::cert
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:373,1
    - Dst: PKIX_DUPLICATE
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:376,1
    - Dst: crldpList::crldpList
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:376,1
    - Dst: PKIX_DUPLICATE
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:379,1
    - Dst: issuerNames::issuerNames
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:379,1
    - Dst: PKIX_DUPLICATE
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:382,1
    - Dst: date::date
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:382,1
    - Dst: PKIX_DUPLICATE
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:385,1
    - Dst: maxCRLNumber::maxCRLNumber
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:385,1
    - Dst: PKIX_DUPLICATE
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:388,1
    - Dst: minCRLNumber::minCRLNumber
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:388,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:399,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 3
    argNames:
    - object
    - pNewObject
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 400
    functionName: pkix_ComCRLSelParams_Duplicate
    functionSourceFile: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c
    functionUses: 0
    functionsReached:
    - minCRLNumber::minCRLNumber
    - plContext::plContext
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_Alloc
    - issuerNames::issuerNames
    - PKIX_ENTER
    - pkix_CheckType
    - crldpList::crldpList
    - PKIX_DUPLICATE
    - date::date
    - PKIX_NULLCHECK_TWO
    - maxCRLNumber::maxCRLNumber
    - cert::cert
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_ComCRLSelParams_Duplicate(\n        PKIX_PL_Object
      *object,\n        PKIX_PL_Object **pNewObject,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:420,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 435
    functionName: pkix_ComCRLSelParams_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      pkix_ComCRLSelParams_RegisterSelf(void *plContext)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:449,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:450,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:452,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:452,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 2
    argNames:
    - pParams
    - plContext
    argTypes:
    - PKIX_ComCRLSelParams**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 473
    functionName: PKIX_ComCRLSelParams_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c
    functionUses: 6
    functionsReached:
    - PKIX_RETURN
    - PKIX_CHECK
    - PKIX_PL_Object_Alloc
    - PKIX_ENTER
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ComCRLSelParams_Create(\n        PKIX_ComCRLSelParams
      **pParams,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:484,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:485,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:487,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - params
    - pIssuerNames
    - plContext
    argTypes:
    - PKIX_ComCRLSelParams*
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 478
    functionDepth: 1
    functionLinenumber: 478
    functionLinenumberEnd: 493
    functionName: PKIX_ComCRLSelParams_GetIssuerNames
    functionSourceFile: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c
    functionUses: 3
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ComCRLSelParams_GetIssuerNames(\n        PKIX_ComCRLSelParams
      *params,\n        PKIX_List **pIssuerNames,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:504,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:505,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:507,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:509,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:513,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:513,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - params
    - names
    - plContext
    argTypes:
    - PKIX_ComCRLSelParams*
    - PKIX_List*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 520
    functionName: PKIX_ComCRLSelParams_SetIssuerNames
    functionSourceFile: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c
    functionUses: 2
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_InvalidateCache
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ComCRLSelParams_SetIssuerNames(\n        PKIX_ComCRLSelParams
      *params,\n        PKIX_List *names,\n        void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:533,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:534,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:540,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:540,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:545,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:545,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:549,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:549,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:557,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - params
    - name
    - plContext
    argTypes:
    - PKIX_ComCRLSelParams*
    - PKIX_PL_X500Name*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 558
    functionName: PKIX_ComCRLSelParams_AddIssuerName
    functionSourceFile: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c
    functionUses: 3
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_Create
    - PKIX_PL_Object_InvalidateCache
    - PKIX_List_AppendItem
    - PKIX_ENTER
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ComCRLSelParams_AddIssuerName(\n        PKIX_ComCRLSelParams
      *params,\n        PKIX_PL_X500Name *name,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:571,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:573,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:575,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - params
    - pCert
    - plContext
    argTypes:
    - PKIX_ComCRLSelParams*
    - PKIX_PL_Cert**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 565
    functionDepth: 1
    functionLinenumber: 565
    functionLinenumberEnd: 581
    functionName: PKIX_ComCRLSelParams_GetCertificateChecking
    functionSourceFile: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c
    functionUses: 1
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ComCRLSelParams_GetCertificateChecking(\n        PKIX_ComCRLSelParams
      *params,\n        PKIX_PL_Cert **pCert,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:593,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:595,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:597,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:599,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:603,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:603,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - params
    - cert
    - plContext
    argTypes:
    - PKIX_ComCRLSelParams*
    - PKIX_PL_Cert*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 587
    functionDepth: 1
    functionLinenumber: 587
    functionLinenumberEnd: 610
    functionName: PKIX_ComCRLSelParams_SetCertificateChecking
    functionSourceFile: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c
    functionUses: 1
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_InvalidateCache
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ComCRLSelParams_SetCertificateChecking(\n        PKIX_ComCRLSelParams
      *params,\n        PKIX_PL_Cert *cert,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:622,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:624,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:626,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - params
    - pDate
    - plContext
    argTypes:
    - PKIX_ComCRLSelParams*
    - PKIX_PL_Date**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 616
    functionDepth: 1
    functionLinenumber: 616
    functionLinenumberEnd: 632
    functionName: PKIX_ComCRLSelParams_GetDateAndTime
    functionSourceFile: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c
    functionUses: 2
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ComCRLSelParams_GetDateAndTime(\n        PKIX_ComCRLSelParams
      *params,\n        PKIX_PL_Date **pDate,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:643,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:645,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:647,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:649,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:653,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:653,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - params
    - date
    - plContext
    argTypes:
    - PKIX_ComCRLSelParams*
    - PKIX_PL_Date*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 637
    functionDepth: 1
    functionLinenumber: 637
    functionLinenumberEnd: 660
    functionName: PKIX_ComCRLSelParams_SetDateAndTime
    functionSourceFile: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c
    functionUses: 4
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_InvalidateCache
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ComCRLSelParams_SetDateAndTime(\n        PKIX_ComCRLSelParams
      *params,\n        PKIX_PL_Date *date,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:671,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:673,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - params
    - pEnabled
    - plContext
    argTypes:
    - PKIX_ComCRLSelParams*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 665
    functionDepth: 1
    functionLinenumber: 665
    functionLinenumberEnd: 678
    functionName: PKIX_ComCRLSelParams_GetNISTPolicyEnabled
    functionSourceFile: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c
    functionUses: 1
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ComCRLSelParams_GetNISTPolicyEnabled(\n        PKIX_ComCRLSelParams
      *params,\n        PKIX_Boolean *pEnabled,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:689,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:691,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:695,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:695,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - params
    - enabled
    - plContext
    argTypes:
    - PKIX_ComCRLSelParams*
    - PKIX_Boolean
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 683
    functionDepth: 1
    functionLinenumber: 683
    functionLinenumberEnd: 702
    functionName: PKIX_ComCRLSelParams_SetNISTPolicyEnabled
    functionSourceFile: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c
    functionUses: 0
    functionsReached:
    - PKIX_RETURN
    - PKIX_CHECK
    - PKIX_PL_Object_InvalidateCache
    - PKIX_ENTER
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ComCRLSelParams_SetNISTPolicyEnabled(\n        PKIX_ComCRLSelParams
      *params,\n        PKIX_Boolean enabled,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:714,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:716,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:718,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - params
    - pMaxCRLNumber
    - plContext
    argTypes:
    - PKIX_ComCRLSelParams*
    - PKIX_PL_BigInt**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 708
    functionDepth: 1
    functionLinenumber: 708
    functionLinenumberEnd: 724
    functionName: PKIX_ComCRLSelParams_GetMaxCRLNumber
    functionSourceFile: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c
    functionUses: 2
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ComCRLSelParams_GetMaxCRLNumber(\n        PKIX_ComCRLSelParams
      *params,\n        PKIX_PL_BigInt **pMaxCRLNumber,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:736,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:738,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:740,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:742,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:746,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:746,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:752,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - params
    - maxCRLNumber
    - plContext
    argTypes:
    - PKIX_ComCRLSelParams*
    - PKIX_PL_BigInt*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 730
    functionDepth: 1
    functionLinenumber: 730
    functionLinenumberEnd: 753
    functionName: PKIX_ComCRLSelParams_SetMaxCRLNumber
    functionSourceFile: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c
    functionUses: 1
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_InvalidateCache
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ComCRLSelParams_SetMaxCRLNumber(\n        PKIX_ComCRLSelParams
      *params,\n        PKIX_PL_BigInt *maxCRLNumber,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:766,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:768,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:770,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - params
    - pMinCRLNumber
    - plContext
    argTypes:
    - PKIX_ComCRLSelParams*
    - PKIX_PL_BigInt**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 760
    functionDepth: 1
    functionLinenumber: 760
    functionLinenumberEnd: 776
    functionName: PKIX_ComCRLSelParams_GetMinCRLNumber
    functionSourceFile: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c
    functionUses: 2
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ComCRLSelParams_GetMinCRLNumber(\n        PKIX_ComCRLSelParams
      *params,\n        PKIX_PL_BigInt **pMinCRLNumber,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:788,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:790,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:792,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:794,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:798,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:798,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:804,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - params
    - minCRLNumber
    - plContext
    argTypes:
    - PKIX_ComCRLSelParams*
    - PKIX_PL_BigInt*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 782
    functionDepth: 1
    functionLinenumber: 782
    functionLinenumberEnd: 805
    functionName: PKIX_ComCRLSelParams_SetMinCRLNumber
    functionSourceFile: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c
    functionUses: 1
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_InvalidateCache
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ComCRLSelParams_SetMinCRLNumber(\n        PKIX_ComCRLSelParams
      *params,\n        PKIX_PL_BigInt *minCRLNumber,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:814,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:815,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:817,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:820,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:820,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c:825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - params
    - crldpList
    - plContext
    argTypes:
    - PKIX_ComCRLSelParams*
    - PKIX_List*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 808
    functionDepth: 1
    functionLinenumber: 808
    functionLinenumberEnd: 826
    functionName: PKIX_ComCRLSelParams_SetCrlDp
    functionSourceFile: /src/nss/lib/libpkix/pkix/crlsel/pkix_comcrlselparams.c
    functionUses: 1
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_InvalidateCache
    - PKIX_ENTER
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_ComCRLSelParams_SetCrlDp(\n         PKIX_ComCRLSelParams
      *params,\n         PKIX_List *crldpList,\n         void *plContext)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_errpaths.c:22,1
    - Dst: pkix_Throw
      Src: /src/nss/lib/libpkix/pkix/util/pkix_errpaths.c:26,1
    - Dst: PKIX_ALLOC_ERROR
      Src: /src/nss/lib/libpkix/pkix/util/pkix_errpaths.c:31,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_errpaths.c:32,1
    - Dst: PKIX_ALLOC_ERROR
      Src: /src/nss/lib/libpkix/pkix/util/pkix_errpaths.c:36,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_errpaths.c:37,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/libpkix/pkix/util/pkix_errpaths.c:42,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 5
    argNames:
    - stdVars
    - errClass
    - errCode
    - overrideClass
    - plContext
    argTypes:
    - PKIX_StdVars*
    - PKIX_ERRORCLASS
    - PKIX_ERRORCODE
    - PKIX_ERRORCLASS
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 46
    functionName: PKIX_DoThrow
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_errpaths.c
    functionUses: 0
    functionsReached:
    - PKIX_PL_Object_DecRef
    - PKIX_ALLOC_ERROR
    - PKIX_DECREF
    - pkix_Throw
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_DoThrow(PKIX_StdVars * stdVars, PKIX_ERRORCLASS
      errClass, \n             PKIX_ERRORCODE errCode, PKIX_ERRORCLASS overrideClass,\n
      \            void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_OBJECT_UNLOCK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_errpaths.c:52,1
    - Dst: PKIX_DoThrow
      Src: /src/nss/lib/libpkix/pkix/util/pkix_errpaths.c:54,1
    - Dst: _PKIX_DEBUG_TRACE
      Src: /src/nss/lib/libpkix/pkix/util/pkix_errpaths.c:58,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 4
    argNames:
    - stdVars
    - errClass
    - doLogger
    - plContext
    argTypes:
    - PKIX_StdVars*
    - PKIX_ERRORCLASS
    - PKIX_Boolean
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 60
    functionName: PKIX_DoReturn
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_errpaths.c
    functionUses: 0
    functionsReached:
    - _PKIX_DEBUG_TRACE
    - PKIX_DoThrow
    - PKIX_OBJECT_UNLOCK
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_DoReturn(PKIX_StdVars * stdVars, PKIX_ERRORCLASS
      errClass,\n              PKIX_Boolean doLogger, void *plContext)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix/util/pkix_errpaths.c:72,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_errpaths.c:80,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/libpkix/pkix/util/pkix_errpaths.c:82,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/libpkix/pkix/util/pkix_errpaths.c:86,1
    - Dst: PKIX_ALLOC_ERROR
      Src: /src/nss/lib/libpkix/pkix/util/pkix_errpaths.c:95,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/libpkix/pkix/util/pkix_errpaths.c:96,1
    - Dst: PKIX_ALLOC_ERROR
      Src: /src/nss/lib/libpkix/pkix/util/pkix_errpaths.c:99,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/libpkix/pkix/util/pkix_errpaths.c:100,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - stdVars
    - error
    - plContext
    argTypes:
    - PKIX_StdVars*
    - PKIX_Error*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 102
    functionName: PKIX_DoAddError
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_errpaths.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PKIX_PL_Object_DecRef
    - PKIX_List_Create
    - PKIX_ALLOC_ERROR
    - PKIX_List_AppendItem
    linkageType: ''
    returnType: void
    signature: void PKIX_DoAddError(PKIX_StdVars *stdVars, PKIX_Error *error, void
      * plContext)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - desc
    - ','
    - nsserr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 16
    functionName: PKIX_ERRORENTRY
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_error.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_ERRORENTRY(name,desc,nsserr)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:55,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:56,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:69,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:69,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:72,1
    - Dst: PKIX_PL_Object_GetType
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:72,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:100,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:100,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:127,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:127,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:159,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 63
    argCount: 4
    argNames:
    - firstObject
    - secondObject
    - pResult
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 160
    functionName: pkix_Error_Equals
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_error.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_PL_Object_Equals
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - pkix_CheckType
    - PKIX_PL_Object_GetType
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_Error_Equals(\n        PKIX_PL_Object *firstObject,\n
      \       PKIX_PL_Object *secondObject,\n        PKIX_Boolean *pResult,\n        void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:173,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:174,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:176,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:176,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:181,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:183,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 188
    functionName: pkix_Error_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_error.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_Error_Destroy(\n        PKIX_PL_Object *object,\n
      \       void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:214,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:215,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:217,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:217,1
    - Dst: PKIX_Error_GetDescription
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:226,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:236,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:236,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:242,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:242,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:251,1
    - Dst: PKIX_PL_Sprintf
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:251,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:259,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:276,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:276,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:284,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:284,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:293,1
    - Dst: PKIX_PL_Sprintf
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:293,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:304,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:305,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:306,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:307,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:308,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:310,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 36
    argCount: 3
    argNames:
    - object
    - pString
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_String**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 311
    functionName: pkix_Error_ToString
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_error.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_PL_String_Create
    - PKIX_RETURN
    - PKIX_PL_Object_ToString
    - PKIX_PL_Sprintf
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_Error_GetDescription
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_Error_ToString(\n        PKIX_PL_Object *object,\n
      \       PKIX_PL_String **pString,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:323,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:324,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - object
    - pResult
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 331
    functionName: pkix_Error_Hashcode
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_error.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_Error_Hashcode(\n        PKIX_PL_Object *object,\n
      \       PKIX_UInt32 *pResult,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 349
    functionName: ERRMACRO
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_error.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERRMACRO(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:373,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 388
    functionName: pkix_Error_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_error.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      pkix_Error_RegisterSelf(void *plContext)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:407,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:409,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:415,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:431,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:435,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:438,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:450,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:452,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 6
    argNames:
    - errClass
    - cause
    - info
    - errCode
    - pError
    - plContext
    argTypes:
    - PKIX_ERRORCLASS
    - PKIX_Error*
    - PKIX_PL_Object*
    - PKIX_ERRORCODE
    - PKIX_Error**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 453
    functionName: PKIX_Error_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_error.c
    functionUses: 4
    functionsReached:
    - PKIX_INCREF
    - PKIX_RETURN
    - PKIX_PL_Object_Alloc
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_ERROR
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_Error_Create(\n        PKIX_ERRORCLASS errClass,\n
      \       PKIX_Error *cause,\n        PKIX_PL_Object *info,\n        PKIX_ERRORCODE
      errCode,\n        PKIX_Error **pError,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:464,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:465,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - error
    - pClass
    - plContext
    argTypes:
    - PKIX_Error*
    - PKIX_ERRORCLASS*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 470
    functionName: PKIX_Error_GetErrorClass
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_error.c
    functionUses: 1
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_Error_GetErrorClass(\n        PKIX_Error *error,\n
      \       PKIX_ERRORCLASS *pClass,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:481,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:482,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - error
    - pCode
    - plContext
    argTypes:
    - PKIX_Error*
    - PKIX_ERRORCODE*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 475
    functionDepth: 1
    functionLinenumber: 475
    functionLinenumberEnd: 487
    functionName: PKIX_Error_GetErrorCode
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_error.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_Error_GetErrorCode(\n        PKIX_Error *error,\n
      \       PKIX_ERRORCODE *pCode,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:498,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:499,1
    - Dst: PKIX_ALLOC_ERROR
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:501,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:502,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:508,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - error
    - pCause
    - plContext
    argTypes:
    - PKIX_Error*
    - PKIX_Error**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 492
    functionDepth: 1
    functionLinenumber: 492
    functionLinenumberEnd: 509
    functionName: PKIX_Error_GetCause
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_error.c
    functionUses: 2
    functionsReached:
    - PKIX_INCREF
    - PKIX_RETURN
    - PKIX_ALLOC_ERROR
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_Error_GetCause(\n        PKIX_Error *error,\n        PKIX_Error
      **pCause,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:520,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:521,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:523,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - error
    - pInfo
    - plContext
    argTypes:
    - PKIX_Error*
    - PKIX_PL_Object**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 514
    functionDepth: 1
    functionLinenumber: 514
    functionLinenumberEnd: 529
    functionName: PKIX_Error_GetSupplementaryInfo
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_error.c
    functionUses: 1
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_Error_GetSupplementaryInfo(\n        PKIX_Error
      *error,\n        PKIX_PL_Object **pInfo,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:545,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:546,1
    - Dst: PR_snprintf
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:549,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_error.c:564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - error
    - pDesc
    - plContext
    argTypes:
    - PKIX_Error*
    - PKIX_PL_String**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 534
    functionDepth: 1
    functionLinenumber: 534
    functionLinenumberEnd: 565
    functionName: PKIX_Error_GetDescription
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_error.c
    functionUses: 2
    functionsReached:
    - PR_snprintf
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_Error_GetDescription(\n        PKIX_Error *error,\n
      \       PKIX_PL_String **pDesc,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - funcName
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 141
    functionName: PKIX_STD_VARS
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_STD_VARS(funcName)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - funcName
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 191
    functionName: PKIX_STD_VARS
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_STD_VARS(funcName)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - cond
    - ','
    - prefix
    - ','
    - level
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 201
    functionName: _PKIX_DEBUG_TRACE
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PKIX_DEBUG_TRACE(cond, prefix, level)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - cond
    - ','
    - prefix
    - ','
    - level
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 204
    functionName: _PKIX_DEBUG_TRACE
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PKIX_DEBUG_TRACE(cond, prefix, level)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - code
    - ','
    - level
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 212
    functionName: _PKIX_LOG_ERROR
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _PKIX_LOG_ERROR(code, level)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - funcName
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 218
    functionName: PKIX_ENTER
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 369
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_ENTER(type, funcName)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - funcName
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 223
    functionName: PKIX_ENTER_NO_LOGGER
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_ENTER_NO_LOGGER(type, funcName)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 226
    functionName: PKIX_DEBUG_ENTER
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_DEBUG_ENTER(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 229
    functionName: PKIX_DEBUG_EXIT
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_DEBUG_EXIT(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 245
    functionName: PKIX_OBJECT_UNLOCK
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_OBJECT_UNLOCK(obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 258
    functionName: PKIX_DECREF
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 180
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_DECREF(obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - descNum
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 262
    functionName: PKIX_THROW
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_THROW(type, descNum)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 274
    functionName: PKIX_RETURN
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 369
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_RETURN(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 277
    functionName: PKIX_RETURN
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 369
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_RETURN(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 289
    functionName: PKIX_RETURN_NO_LOGGER
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_RETURN_NO_LOGGER(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 292
    functionName: PKIX_RETURN_NO_LOGGER
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_RETURN_NO_LOGGER(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - what
    - ','
    - errorstring
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 303
    functionName: TRACE_CHECK_FAILURE
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRACE_CHECK_FAILURE(what, errorstring)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - func
    - ','
    - descNum
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 317
    functionName: PKIX_CHECK
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 237
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_CHECK(func, descNum)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - func
    - ','
    - descNum
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 328
    functionName: PKIX_CHECK_NO_GOTO
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_CHECK_NO_GOTO(func, descNum)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - func
    - ','
    - descNum
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 343
    functionName: PKIX_CHECK_ONLY_FATAL
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_CHECK_ONLY_FATAL(func, descNum)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - descNum
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 346
    functionName: PKIX_LOG_ERROR
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_LOG_ERROR(descNum)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - descNum
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 354
    functionName: PKIX_ERROR
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 31
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_ERROR(descNum)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 362
    functionName: PKIX_ERROR_ALLOC_ERROR
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_ERROR_ALLOC_ERROR()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - descNum
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 371
    functionName: PKIX_ERROR_FATAL
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_ERROR_FATAL(descNum)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - func
    - ','
    - descNum
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 384
    functionName: PKIX_CHECK_FATAL
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_CHECK_FATAL(func, descNum)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 393
    functionName: PKIX_NULLCHECK_ONE
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 108
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_NULLCHECK_ONE(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 402
    functionName: PKIX_NULLCHECK_TWO
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 172
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_NULLCHECK_TWO(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 411
    functionName: PKIX_NULLCHECK_THREE
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 57
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_NULLCHECK_THREE(a, b, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 421
    functionName: PKIX_NULLCHECK_FOUR
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_NULLCHECK_FOUR(a, b, c, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 436
    functionName: PKIX_OBJECT_LOCK
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_OBJECT_LOCK(obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - descNum
    - ','
    - error
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 448
    functionName: PKIX_ERROR_CREATE
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_ERROR_CREATE(type, descNum, error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 466
    functionName: PKIX_INCREF
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 121
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_INCREF(obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - obj
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 478
    functionName: PKIX_FREE
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_FREE(obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 480
    functionName: PKIX_EXACTLY_ONE_NULL
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_EXACTLY_ONE_NULL(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 484
    functionName: PKIX_ISDIGIT
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_ISDIGIT(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 487
    functionName: PKIX_ISXDIGIT
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_ISXDIGIT(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 502
    functionName: PKIX_TOSTRING
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_TOSTRING(a, b, c, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 518
    functionName: PKIX_EQUALS
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_EQUALS(a, b, c, d, e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 528
    functionName: PKIX_HASHCODE
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_HASHCODE(a, b, c, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 541
    functionName: PKIX_DUPLICATE
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_DUPLICATE(a, b, c, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 640
    functionDepth: 0
    functionLinenumber: 640
    functionLinenumberEnd: 646
    functionName: PKIX_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 651
    functionDepth: 0
    functionLinenumber: 651
    functionLinenumberEnd: 656
    functionName: PKIX_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 658
    functionDepth: 0
    functionLinenumber: 658
    functionLinenumberEnd: 660
    functionName: PKIX_FATAL_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_FATAL_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 662
    functionName: PKIX_FATAL_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_FATAL_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 668
    functionDepth: 0
    functionLinenumber: 668
    functionLinenumberEnd: 670
    functionName: PKIX_REF_COUNT_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_REF_COUNT_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 670
    functionDepth: 0
    functionLinenumber: 670
    functionLinenumberEnd: 672
    functionName: PKIX_REF_COUNT_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_REF_COUNT_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 678
    functionDepth: 0
    functionLinenumber: 678
    functionLinenumberEnd: 680
    functionName: PKIX_MEM_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_MEM_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 682
    functionName: PKIX_MEM_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_MEM_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 688
    functionDepth: 0
    functionLinenumber: 688
    functionLinenumberEnd: 690
    functionName: PKIX_MUTEX_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_MUTEX_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 690
    functionDepth: 0
    functionLinenumber: 690
    functionLinenumberEnd: 692
    functionName: PKIX_MUTEX_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_MUTEX_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 698
    functionDepth: 0
    functionLinenumber: 698
    functionLinenumberEnd: 700
    functionName: PKIX_OBJECT_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_OBJECT_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 700
    functionDepth: 0
    functionLinenumber: 700
    functionLinenumberEnd: 702
    functionName: PKIX_OBJECT_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_OBJECT_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 708
    functionDepth: 0
    functionLinenumber: 708
    functionLinenumberEnd: 710
    functionName: PKIX_ERROR_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_ERROR_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 710
    functionDepth: 0
    functionLinenumber: 710
    functionLinenumberEnd: 712
    functionName: PKIX_ERROR_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_ERROR_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 718
    functionDepth: 0
    functionLinenumber: 718
    functionLinenumberEnd: 720
    functionName: PKIX_STRING_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_STRING_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 720
    functionDepth: 0
    functionLinenumber: 720
    functionLinenumberEnd: 722
    functionName: PKIX_STRING_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_STRING_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 728
    functionDepth: 0
    functionLinenumber: 728
    functionLinenumberEnd: 730
    functionName: PKIX_OID_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_OID_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 730
    functionDepth: 0
    functionLinenumber: 730
    functionLinenumberEnd: 732
    functionName: PKIX_OID_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_OID_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 738
    functionDepth: 0
    functionLinenumber: 738
    functionLinenumberEnd: 740
    functionName: PKIX_LIST_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_LIST_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 740
    functionDepth: 0
    functionLinenumber: 740
    functionLinenumberEnd: 742
    functionName: PKIX_LIST_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_LIST_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 748
    functionDepth: 0
    functionLinenumber: 748
    functionLinenumberEnd: 750
    functionName: PKIX_RWLOCK_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_RWLOCK_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 750
    functionDepth: 0
    functionLinenumber: 750
    functionLinenumberEnd: 752
    functionName: PKIX_RWLOCK_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_RWLOCK_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 758
    functionDepth: 0
    functionLinenumber: 758
    functionLinenumberEnd: 760
    functionName: PKIX_BYTEARRAY_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_BYTEARRAY_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 760
    functionDepth: 0
    functionLinenumber: 760
    functionLinenumberEnd: 762
    functionName: PKIX_BYTEARRAY_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_BYTEARRAY_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 768
    functionDepth: 0
    functionLinenumber: 768
    functionLinenumberEnd: 770
    functionName: PKIX_HASHTABLE_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_HASHTABLE_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 772
    functionName: PKIX_HASHTABLE_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_HASHTABLE_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 778
    functionDepth: 0
    functionLinenumber: 778
    functionLinenumberEnd: 780
    functionName: PKIX_X500NAME_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_X500NAME_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 780
    functionDepth: 0
    functionLinenumber: 780
    functionLinenumberEnd: 782
    functionName: PKIX_X500NAME_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_X500NAME_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 788
    functionDepth: 0
    functionLinenumber: 788
    functionLinenumberEnd: 790
    functionName: PKIX_GENERALNAME_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_GENERALNAME_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 790
    functionDepth: 0
    functionLinenumber: 790
    functionLinenumberEnd: 792
    functionName: PKIX_GENERALNAME_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_GENERALNAME_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 798
    functionDepth: 0
    functionLinenumber: 798
    functionLinenumberEnd: 800
    functionName: PKIX_PUBLICKEY_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_PUBLICKEY_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 800
    functionDepth: 0
    functionLinenumber: 800
    functionLinenumberEnd: 802
    functionName: PKIX_PUBLICKEY_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_PUBLICKEY_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 808
    functionDepth: 0
    functionLinenumber: 808
    functionLinenumberEnd: 810
    functionName: PKIX_CERT_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_CERT_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 810
    functionDepth: 0
    functionLinenumber: 810
    functionLinenumberEnd: 812
    functionName: PKIX_CERT_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_CERT_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 818
    functionDepth: 0
    functionLinenumber: 818
    functionLinenumberEnd: 820
    functionName: PKIX_CRLDP_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_CRLDP_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 820
    functionDepth: 0
    functionLinenumber: 820
    functionLinenumberEnd: 822
    functionName: PKIX_CRLDP_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_CRLDP_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 828
    functionDepth: 0
    functionLinenumber: 828
    functionLinenumberEnd: 830
    functionName: PKIX_HTTPCLIENT_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_HTTPCLIENT_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 830
    functionDepth: 0
    functionLinenumber: 830
    functionLinenumberEnd: 832
    functionName: PKIX_HTTPCLIENT_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_HTTPCLIENT_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 838
    functionDepth: 0
    functionLinenumber: 838
    functionLinenumberEnd: 840
    functionName: PKIX_BIGINT_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_BIGINT_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 840
    functionDepth: 0
    functionLinenumber: 840
    functionLinenumberEnd: 842
    functionName: PKIX_BIGINT_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_BIGINT_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 848
    functionDepth: 0
    functionLinenumber: 848
    functionLinenumberEnd: 850
    functionName: PKIX_DATE_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_DATE_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 850
    functionDepth: 0
    functionLinenumber: 850
    functionLinenumberEnd: 852
    functionName: PKIX_DATE_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_DATE_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 858
    functionDepth: 0
    functionLinenumber: 858
    functionLinenumberEnd: 860
    functionName: PKIX_TRUSTANCHOR_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_TRUSTANCHOR_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 860
    functionDepth: 0
    functionLinenumber: 860
    functionLinenumberEnd: 862
    functionName: PKIX_TRUSTANCHOR_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_TRUSTANCHOR_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 868
    functionDepth: 0
    functionLinenumber: 868
    functionLinenumberEnd: 870
    functionName: PKIX_PROCESSINGPARAMS_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_PROCESSINGPARAMS_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 870
    functionDepth: 0
    functionLinenumber: 870
    functionLinenumberEnd: 872
    functionName: PKIX_PROCESSINGPARAMS_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_PROCESSINGPARAMS_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 878
    functionDepth: 0
    functionLinenumber: 878
    functionLinenumberEnd: 880
    functionName: PKIX_VALIDATEPARAMS_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_VALIDATEPARAMS_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 880
    functionDepth: 0
    functionLinenumber: 880
    functionLinenumberEnd: 882
    functionName: PKIX_VALIDATEPARAMS_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_VALIDATEPARAMS_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 888
    functionDepth: 0
    functionLinenumber: 888
    functionLinenumberEnd: 890
    functionName: PKIX_VALIDATERESULT_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_VALIDATERESULT_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 890
    functionDepth: 0
    functionLinenumber: 890
    functionLinenumberEnd: 892
    functionName: PKIX_VALIDATERESULT_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_VALIDATERESULT_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 898
    functionDepth: 0
    functionLinenumber: 898
    functionLinenumberEnd: 900
    functionName: PKIX_VALIDATE_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_VALIDATE_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 900
    functionDepth: 0
    functionLinenumber: 900
    functionLinenumberEnd: 902
    functionName: PKIX_VALIDATE_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_VALIDATE_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 908
    functionDepth: 0
    functionLinenumber: 908
    functionLinenumberEnd: 910
    functionName: PKIX_BUILD_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_BUILD_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 910
    functionDepth: 0
    functionLinenumber: 910
    functionLinenumberEnd: 912
    functionName: PKIX_BUILD_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_BUILD_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 918
    functionDepth: 0
    functionLinenumber: 918
    functionLinenumberEnd: 920
    functionName: PKIX_CERTCHAINCHECKER_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_CERTCHAINCHECKER_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 920
    functionDepth: 0
    functionLinenumber: 920
    functionLinenumberEnd: 922
    functionName: PKIX_CERTCHAINCHECKER_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_CERTCHAINCHECKER_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 928
    functionDepth: 0
    functionLinenumber: 928
    functionLinenumberEnd: 930
    functionName: PKIX_REVOCATIONCHECKER_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_REVOCATIONCHECKER_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 932
      start: 930
    functionDepth: 0
    functionLinenumber: 930
    functionLinenumberEnd: 932
    functionName: PKIX_REVOCATIONCHECKER_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_REVOCATIONCHECKER_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 938
    functionDepth: 0
    functionLinenumber: 938
    functionLinenumberEnd: 940
    functionName: PKIX_REVOCATIONMETHOD_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_REVOCATIONMETHOD_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 940
    functionDepth: 0
    functionLinenumber: 940
    functionLinenumberEnd: 942
    functionName: PKIX_REVOCATIONMETHOD_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_REVOCATIONMETHOD_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 950
      start: 948
    functionDepth: 0
    functionLinenumber: 948
    functionLinenumberEnd: 950
    functionName: PKIX_CERTSELECTOR_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_CERTSELECTOR_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 950
    functionDepth: 0
    functionLinenumber: 950
    functionLinenumberEnd: 952
    functionName: PKIX_CERTSELECTOR_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_CERTSELECTOR_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 958
    functionDepth: 0
    functionLinenumber: 958
    functionLinenumberEnd: 960
    functionName: PKIX_COMCERTSELPARAMS_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_COMCERTSELPARAMS_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 960
    functionDepth: 0
    functionLinenumber: 960
    functionLinenumberEnd: 962
    functionName: PKIX_COMCERTSELPARAMS_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_COMCERTSELPARAMS_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 968
    functionDepth: 0
    functionLinenumber: 968
    functionLinenumberEnd: 970
    functionName: PKIX_TARGETCERTCHECKERSTATE_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_TARGETCERTCHECKERSTATE_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 970
    functionDepth: 0
    functionLinenumber: 970
    functionLinenumberEnd: 972
    functionName: PKIX_TARGETCERTCHECKERSTATE_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_TARGETCERTCHECKERSTATE_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 978
    functionDepth: 0
    functionLinenumber: 978
    functionLinenumberEnd: 980
    functionName: PKIX_BASICCONSTRAINTSCHECKERSTATE_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_BASICCONSTRAINTSCHECKERSTATE_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 980
    functionDepth: 0
    functionLinenumber: 980
    functionLinenumberEnd: 982
    functionName: PKIX_BASICCONSTRAINTSCHECKERSTATE_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_BASICCONSTRAINTSCHECKERSTATE_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 988
    functionDepth: 0
    functionLinenumber: 988
    functionLinenumberEnd: 990
    functionName: PKIX_INITIALIZEPARAMS_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_INITIALIZEPARAMS_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 990
    functionDepth: 0
    functionLinenumber: 990
    functionLinenumberEnd: 992
    functionName: PKIX_INITIALIZEPARAMS_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_INITIALIZEPARAMS_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 998
    functionDepth: 0
    functionLinenumber: 998
    functionLinenumberEnd: 1000
    functionName: PKIX_CERTBASICCONSTRAINTS_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_CERTBASICCONSTRAINTS_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 1000
    functionDepth: 0
    functionLinenumber: 1000
    functionLinenumberEnd: 1002
    functionName: PKIX_CERTBASICCONSTRAINTS_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_CERTBASICCONSTRAINTS_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 1008
    functionDepth: 0
    functionLinenumber: 1008
    functionLinenumberEnd: 1010
    functionName: PKIX_CERTNAMECONSTRAINTS_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_CERTNAMECONSTRAINTS_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1012
      start: 1010
    functionDepth: 0
    functionLinenumber: 1010
    functionLinenumberEnd: 1012
    functionName: PKIX_CERTNAMECONSTRAINTS_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_CERTNAMECONSTRAINTS_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 1018
    functionDepth: 0
    functionLinenumber: 1018
    functionLinenumberEnd: 1020
    functionName: PKIX_CERTNAMECONSTRAINTSCHECKERSTATE_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_CERTNAMECONSTRAINTSCHECKERSTATE_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 1020
    functionDepth: 0
    functionLinenumber: 1020
    functionLinenumberEnd: 1022
    functionName: PKIX_CERTNAMECONSTRAINTSCHECKERSTATE_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_CERTNAMECONSTRAINTSCHECKERSTATE_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1030
      start: 1028
    functionDepth: 0
    functionLinenumber: 1028
    functionLinenumberEnd: 1030
    functionName: PKIX_SUBJALTNAMECHECKERSTATE_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_SUBJALTNAMECHECKERSTATE_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 1030
    functionDepth: 0
    functionLinenumber: 1030
    functionLinenumberEnd: 1032
    functionName: PKIX_SUBJALTNAMECHECKERSTATE_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_SUBJALTNAMECHECKERSTATE_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 1038
    functionDepth: 0
    functionLinenumber: 1038
    functionLinenumberEnd: 1040
    functionName: PKIX_CERTPOLICYQUALIFIER_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_CERTPOLICYQUALIFIER_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1040
    functionDepth: 0
    functionLinenumber: 1040
    functionLinenumberEnd: 1042
    functionName: PKIX_CERTPOLICYQUALIFIER_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_CERTPOLICYQUALIFIER_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 1048
    functionDepth: 0
    functionLinenumber: 1048
    functionLinenumberEnd: 1050
    functionName: PKIX_CERTPOLICYINFO_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_CERTPOLICYINFO_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1050
    functionDepth: 0
    functionLinenumber: 1050
    functionLinenumberEnd: 1052
    functionName: PKIX_CERTPOLICYINFO_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_CERTPOLICYINFO_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1060
      start: 1058
    functionDepth: 0
    functionLinenumber: 1058
    functionLinenumberEnd: 1060
    functionName: PKIX_CERTPOLICYNODE_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_CERTPOLICYNODE_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1060
    functionDepth: 0
    functionLinenumber: 1060
    functionLinenumberEnd: 1062
    functionName: PKIX_CERTPOLICYNODE_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_CERTPOLICYNODE_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1070
      start: 1068
    functionDepth: 0
    functionLinenumber: 1068
    functionLinenumberEnd: 1070
    functionName: PKIX_CERTPOLICYCHECKERSTATE_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_CERTPOLICYCHECKERSTATE_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1070
    functionDepth: 0
    functionLinenumber: 1070
    functionLinenumberEnd: 1072
    functionName: PKIX_CERTPOLICYCHECKERSTATE_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_CERTPOLICYCHECKERSTATE_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1078
    functionDepth: 0
    functionLinenumber: 1078
    functionLinenumberEnd: 1080
    functionName: PKIX_LIFECYCLE_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_LIFECYCLE_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1082
      start: 1080
    functionDepth: 0
    functionLinenumber: 1080
    functionLinenumberEnd: 1082
    functionName: PKIX_LIFECYCLE_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_LIFECYCLE_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1090
      start: 1088
    functionDepth: 0
    functionLinenumber: 1088
    functionLinenumberEnd: 1090
    functionName: PKIX_BASICCONSTRAINTSCHECKERSTATE_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_BASICCONSTRAINTSCHECKERSTATE_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1092
      start: 1090
    functionDepth: 0
    functionLinenumber: 1090
    functionLinenumberEnd: 1092
    functionName: PKIX_BASICCONSTRAINTSCHECKERSTATE_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_BASICCONSTRAINTSCHECKERSTATE_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 1098
    functionDepth: 0
    functionLinenumber: 1098
    functionLinenumberEnd: 1100
    functionName: PKIX_CRL_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_CRL_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1102
      start: 1100
    functionDepth: 0
    functionLinenumber: 1100
    functionLinenumberEnd: 1102
    functionName: PKIX_CRL_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_CRL_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1108
    functionDepth: 0
    functionLinenumber: 1108
    functionLinenumberEnd: 1110
    functionName: PKIX_CRLENTRY_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_CRLENTRY_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1112
      start: 1110
    functionDepth: 0
    functionLinenumber: 1110
    functionLinenumberEnd: 1112
    functionName: PKIX_CRLENTRY_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_CRLENTRY_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1120
      start: 1118
    functionDepth: 0
    functionLinenumber: 1118
    functionLinenumberEnd: 1120
    functionName: PKIX_CRLSELECTOR_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_CRLSELECTOR_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1122
      start: 1120
    functionDepth: 0
    functionLinenumber: 1120
    functionLinenumberEnd: 1122
    functionName: PKIX_CRLSELECTOR_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_CRLSELECTOR_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1128
    functionDepth: 0
    functionLinenumber: 1128
    functionLinenumberEnd: 1130
    functionName: PKIX_COMCRLSELPARAMS_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_COMCRLSELPARAMS_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1132
      start: 1130
    functionDepth: 0
    functionLinenumber: 1130
    functionLinenumberEnd: 1132
    functionName: PKIX_COMCRLSELPARAMS_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_COMCRLSELPARAMS_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1140
      start: 1138
    functionDepth: 0
    functionLinenumber: 1138
    functionLinenumberEnd: 1140
    functionName: PKIX_CERTSTORE_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_CERTSTORE_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1142
      start: 1140
    functionDepth: 0
    functionLinenumber: 1140
    functionLinenumberEnd: 1142
    functionName: PKIX_CERTSTORE_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_CERTSTORE_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1148
    functionDepth: 0
    functionLinenumber: 1148
    functionLinenumberEnd: 1150
    functionName: PKIX_COLLECTIONCERTSTORECONTEXT_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_COLLECTIONCERTSTORECONTEXT_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1152
      start: 1150
    functionDepth: 0
    functionLinenumber: 1150
    functionLinenumberEnd: 1152
    functionName: PKIX_COLLECTIONCERTSTORECONTEXT_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_COLLECTIONCERTSTORECONTEXT_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1158
    functionDepth: 0
    functionLinenumber: 1158
    functionLinenumberEnd: 1160
    functionName: PKIX_CRLCHECKER_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_CRLCHECKER_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1162
      start: 1160
    functionDepth: 0
    functionLinenumber: 1160
    functionLinenumberEnd: 1162
    functionName: PKIX_CRLCHECKER_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_CRLCHECKER_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1168
    functionDepth: 0
    functionLinenumber: 1168
    functionLinenumberEnd: 1170
    functionName: PKIX_CERTPOLICYMAP_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_CERTPOLICYMAP_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1172
      start: 1170
    functionDepth: 0
    functionLinenumber: 1170
    functionLinenumberEnd: 1172
    functionName: PKIX_CERTPOLICYMAP_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_CERTPOLICYMAP_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1178
    functionDepth: 0
    functionLinenumber: 1178
    functionLinenumberEnd: 1180
    functionName: PKIX_BUILDRESULT_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_BUILDRESULT_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1182
      start: 1180
    functionDepth: 0
    functionLinenumber: 1180
    functionLinenumberEnd: 1182
    functionName: PKIX_BUILDRESULT_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_BUILDRESULT_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1188
    functionDepth: 0
    functionLinenumber: 1188
    functionLinenumberEnd: 1190
    functionName: PKIX_FORWARDBUILDERSTATE_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_FORWARDBUILDERSTATE_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1190
    functionDepth: 0
    functionLinenumber: 1190
    functionLinenumberEnd: 1192
    functionName: PKIX_FORWARDBUILDERSTATE_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_FORWARDBUILDERSTATE_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1200
      start: 1198
    functionDepth: 0
    functionLinenumber: 1198
    functionLinenumberEnd: 1200
    functionName: PKIX_SIGNATURECHECKERSTATE_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_SIGNATURECHECKERSTATE_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1202
      start: 1200
    functionDepth: 0
    functionLinenumber: 1200
    functionLinenumberEnd: 1202
    functionName: PKIX_SIGNATURECHECKERSTATE_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_SIGNATURECHECKERSTATE_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1210
      start: 1208
    functionDepth: 0
    functionLinenumber: 1208
    functionLinenumberEnd: 1210
    functionName: PKIX_USERDEFINEDMODULES_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_USERDEFINEDMODULES_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1212
      start: 1210
    functionDepth: 0
    functionLinenumber: 1210
    functionLinenumberEnd: 1212
    functionName: PKIX_USERDEFINEDMODULES_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_USERDEFINEDMODULES_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1220
      start: 1218
    functionDepth: 0
    functionLinenumber: 1218
    functionLinenumberEnd: 1220
    functionName: PKIX_CONTEXT_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_CONTEXT_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1222
      start: 1220
    functionDepth: 0
    functionLinenumber: 1220
    functionLinenumberEnd: 1222
    functionName: PKIX_CONTEXT_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_CONTEXT_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1230
      start: 1228
    functionDepth: 0
    functionLinenumber: 1228
    functionLinenumberEnd: 1230
    functionName: PKIX_REVOCATIONCHECKER_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_REVOCATIONCHECKER_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1232
      start: 1230
    functionDepth: 0
    functionLinenumber: 1230
    functionLinenumberEnd: 1232
    functionName: PKIX_REVOCATIONCHECKER_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_REVOCATIONCHECKER_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1240
      start: 1238
    functionDepth: 0
    functionLinenumber: 1238
    functionLinenumberEnd: 1240
    functionName: PKIX_LDAPREQUEST_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_LDAPREQUEST_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1242
      start: 1240
    functionDepth: 0
    functionLinenumber: 1240
    functionLinenumberEnd: 1242
    functionName: PKIX_LDAPREQUEST_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_LDAPREQUEST_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1250
      start: 1248
    functionDepth: 0
    functionLinenumber: 1248
    functionLinenumberEnd: 1250
    functionName: PKIX_LDAPRESPONSE_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_LDAPRESPONSE_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1252
      start: 1250
    functionDepth: 0
    functionLinenumber: 1250
    functionLinenumberEnd: 1252
    functionName: PKIX_LDAPRESPONSE_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_LDAPRESPONSE_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1260
      start: 1258
    functionDepth: 0
    functionLinenumber: 1258
    functionLinenumberEnd: 1260
    functionName: PKIX_LDAPCLIENT_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_LDAPCLIENT_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1262
      start: 1260
    functionDepth: 0
    functionLinenumber: 1260
    functionLinenumberEnd: 1262
    functionName: PKIX_LDAPCLIENT_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_LDAPCLIENT_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1270
      start: 1268
    functionDepth: 0
    functionLinenumber: 1268
    functionLinenumberEnd: 1270
    functionName: PKIX_LDAPDEFAULTCLIENT_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_LDAPDEFAULTCLIENT_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1272
      start: 1270
    functionDepth: 0
    functionLinenumber: 1270
    functionLinenumberEnd: 1272
    functionName: PKIX_LDAPDEFAULTCLIENT_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_LDAPDEFAULTCLIENT_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1280
      start: 1278
    functionDepth: 0
    functionLinenumber: 1278
    functionLinenumberEnd: 1280
    functionName: PKIX_SOCKET_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_SOCKET_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1282
      start: 1280
    functionDepth: 0
    functionLinenumber: 1280
    functionLinenumberEnd: 1282
    functionName: PKIX_SOCKET_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_SOCKET_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1290
      start: 1288
    functionDepth: 0
    functionLinenumber: 1288
    functionLinenumberEnd: 1290
    functionName: PKIX_RESOURCELIMITS_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_RESOURCELIMITS_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1292
      start: 1290
    functionDepth: 0
    functionLinenumber: 1290
    functionLinenumberEnd: 1292
    functionName: PKIX_RESOURCELIMITS_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_RESOURCELIMITS_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1300
      start: 1298
    functionDepth: 0
    functionLinenumber: 1298
    functionLinenumberEnd: 1300
    functionName: PKIX_LOGGER_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_LOGGER_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1302
      start: 1300
    functionDepth: 0
    functionLinenumber: 1300
    functionLinenumberEnd: 1302
    functionName: PKIX_LOGGER_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_LOGGER_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1310
      start: 1308
    functionDepth: 0
    functionLinenumber: 1308
    functionLinenumberEnd: 1310
    functionName: PKIX_MONITORLOCK_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_MONITORLOCK_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1312
      start: 1310
    functionDepth: 0
    functionLinenumber: 1310
    functionLinenumberEnd: 1312
    functionName: PKIX_MONITORLOCK_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_MONITORLOCK_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1320
      start: 1318
    functionDepth: 0
    functionLinenumber: 1318
    functionLinenumberEnd: 1320
    functionName: PKIX_INFOACCESS_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_INFOACCESS_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1322
      start: 1320
    functionDepth: 0
    functionLinenumber: 1320
    functionLinenumberEnd: 1322
    functionName: PKIX_INFOACCESS_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_INFOACCESS_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1330
      start: 1328
    functionDepth: 0
    functionLinenumber: 1328
    functionLinenumberEnd: 1330
    functionName: PKIX_AIAMGR_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_AIAMGR_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1332
      start: 1330
    functionDepth: 0
    functionLinenumber: 1330
    functionLinenumberEnd: 1332
    functionName: PKIX_AIAMGR_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_AIAMGR_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1340
      start: 1338
    functionDepth: 0
    functionLinenumber: 1338
    functionLinenumberEnd: 1340
    functionName: PKIX_OCSPCHECKER_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_OCSPCHECKER_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1342
      start: 1340
    functionDepth: 0
    functionLinenumber: 1340
    functionLinenumberEnd: 1342
    functionName: PKIX_OCSPCHECKER_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_OCSPCHECKER_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1350
      start: 1348
    functionDepth: 0
    functionLinenumber: 1348
    functionLinenumberEnd: 1350
    functionName: PKIX_OCSPCERTID_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_OCSPCERTID_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1352
      start: 1350
    functionDepth: 0
    functionLinenumber: 1350
    functionLinenumberEnd: 1352
    functionName: PKIX_OCSPCERTID_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_OCSPCERTID_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1360
      start: 1358
    functionDepth: 0
    functionLinenumber: 1358
    functionLinenumberEnd: 1360
    functionName: PKIX_OCSPREQUEST_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_OCSPREQUEST_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1362
      start: 1360
    functionDepth: 0
    functionLinenumber: 1360
    functionLinenumberEnd: 1362
    functionName: PKIX_OCSPREQUEST_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_OCSPREQUEST_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1370
      start: 1368
    functionDepth: 0
    functionLinenumber: 1368
    functionLinenumberEnd: 1370
    functionName: PKIX_OCSPRESPONSE_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_OCSPRESPONSE_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1372
      start: 1370
    functionDepth: 0
    functionLinenumber: 1370
    functionLinenumberEnd: 1372
    functionName: PKIX_OCSPRESPONSE_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_OCSPRESPONSE_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1380
      start: 1378
    functionDepth: 0
    functionLinenumber: 1378
    functionLinenumberEnd: 1380
    functionName: PKIX_HTTPDEFAULTCLIENT_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_HTTPDEFAULTCLIENT_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1382
      start: 1380
    functionDepth: 0
    functionLinenumber: 1380
    functionLinenumberEnd: 1382
    functionName: PKIX_HTTPDEFAULTCLIENT_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_HTTPDEFAULTCLIENT_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1390
      start: 1388
    functionDepth: 0
    functionLinenumber: 1388
    functionLinenumberEnd: 1390
    functionName: PKIX_HTTPCERTSTORECONTEXT_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_HTTPCERTSTORECONTEXT_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1392
      start: 1390
    functionDepth: 0
    functionLinenumber: 1390
    functionLinenumberEnd: 1392
    functionName: PKIX_HTTPCERTSTORECONTEXT_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_HTTPCERTSTORECONTEXT_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1400
      start: 1398
    functionDepth: 0
    functionLinenumber: 1398
    functionLinenumberEnd: 1400
    functionName: PKIX_VERIFYNODE_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_VERIFYNODE_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1402
      start: 1400
    functionDepth: 0
    functionLinenumber: 1400
    functionLinenumberEnd: 1402
    functionName: PKIX_VERIFYNODE_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_VERIFYNODE_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1410
      start: 1408
    functionDepth: 0
    functionLinenumber: 1408
    functionLinenumberEnd: 1410
    functionName: PKIX_EKUCHECKER_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_EKUCHECKER_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1412
      start: 1410
    functionDepth: 0
    functionLinenumber: 1410
    functionLinenumberEnd: 1412
    functionName: PKIX_EKUCHECKER_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_EKUCHECKER_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1420
      start: 1418
    functionDepth: 0
    functionLinenumber: 1418
    functionLinenumberEnd: 1420
    functionName: PKIX_CERTVFYPKIX_DEBUG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_CERTVFYPKIX_DEBUG(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1422
      start: 1420
    functionDepth: 0
    functionLinenumber: 1420
    functionLinenumberEnd: 1422
    functionName: PKIX_CERTVFYPKIX_DEBUG_ARG
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_CERTVFYPKIX_DEBUG_ARG(expr, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - key
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 76
    functionName: PR_CALLBACK::pkix_ErrorGen_Hash
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: PLHashNumber
    signature: 'PLHashNumber PR_CALLBACK

      pkix_ErrorGen_Hash (const void *key)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:113,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:114,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:116,1
    - Dst: PKIX_PL_Cert_GetSubject
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:116,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:119,1
    - Dst: PKIX_PL_Cert_GetIssuer
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:119,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:126,1
    - Dst: PKIX_PL_X500Name_Match
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:126,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:132,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:133,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - cert
    - pSelfIssued
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 136
    functionName: pkix_IsCertSelfIssued
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.c
    functionUses: 6
    functionsReached:
    - PKIX_CHECK
    - PKIX_PL_Cert_GetIssuer
    - PKIX_PL_Cert_GetSubject
    - PKIX_RETURN
    - PKIX_PL_X500Name_Match
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_IsCertSelfIssued(\n        PKIX_PL_Cert *cert,\n
      \       PKIX_Boolean *pSelfIssued,\n        void *plContext)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:183,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:184,1
    - Dst: PR_LOG
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:192,1
    - Dst: PR_LOG
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:196,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:199,1
    - Dst: strcmp
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:199,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:206,1
    - Dst: PKIX_Error_Create
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:216,1
    - Dst: PKIX_PL_GetPLErrorCode
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:224,1
    - Dst: PKIX_DEBUG_EXIT
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:232,1
    - Dst: PR_LOG
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:238,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 7
    argNames:
    - errorClass
    - funcName
    - errorCode
    - overrideClass
    - cause
    - pError
    - plContext
    argTypes:
    - PKIX_ERRORCLASS
    - char*
    - PKIX_ERRORCODE
    - PKIX_ERRORCLASS
    - PKIX_Error*
    - PKIX_Error**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 246
    functionName: pkix_Throw
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.c
    functionUses: 1
    functionsReached:
    - strcmp
    - PORT_Assert
    - PKIX_INCREF
    - PKIX_DEBUG_EXIT
    - PKIX_Error_Create
    - PKIX_ENTER
    - PKIX_PL_GetPLErrorCode
    - PKIX_NULLCHECK_TWO
    - PR_LOG
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_Throw(\n        PKIX_ERRORCLASS errorClass,\n        const
      char *funcName,\n        PKIX_ERRORCODE errorCode,\n        PKIX_ERRORCLASS
      overrideClass,\n        PKIX_Error *cause,\n        PKIX_Error **pError,\n        void
      *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:281,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:282,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:284,1
    - Dst: PKIX_PL_Object_GetType
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:284,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:287,1
    - Dst: PKIX_PL_Object_GetType
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:287,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:291,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - first
    - second
    - type
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    - PKIX_UInt32
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 297
    functionName: pkix_CheckTypes
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.c
    functionUses: 1
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_PL_Object_GetType
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_CheckTypes(\n        PKIX_PL_Object *first,\n        PKIX_PL_Object
      *second,\n        PKIX_UInt32 type,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pkix_CheckTypes
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - object
    - type
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_UInt32
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 320
    functionDepth: 2
    functionLinenumber: 320
    functionLinenumberEnd: 327
    functionName: pkix_CheckType
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.c
    functionUses: 72
    functionsReached:
    - pkix_CheckTypes
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_CheckType(\n        PKIX_PL_Object *object,\n        PKIX_UInt32
      type,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:364,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:366,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:368,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:378,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - bytes
    - length
    - pHash
    - plContext
    argTypes:
    - unsigned char*
    - PKIX_UInt32
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 379
    functionName: pkix_hash
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_hash(\n        const unsigned char *bytes,\n        PKIX_UInt32
      length,\n        PKIX_UInt32 *pHash,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - array
    argTypes:
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 407
    functionName: pkix_countArray
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PKIX_UInt32
    signature: PKIX_UInt32 pkix_countArray(void **array)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:425,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:426,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:428,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - object
    - pNewObject
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 434
    functionName: pkix_duplicateImmutable
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.c
    functionUses: 0
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_duplicateImmutable(\n        PKIX_PL_Object *object,\n
      \       PKIX_PL_Object **pNewObject,\n        void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 463
    functionName: pkix_hex2i
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PKIX_UInt32
    signature: PKIX_UInt32 pkix_hex2i(char c)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - digit
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 488
    functionName: pkix_i2hex
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char pkix_i2hex(char digit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 2
    argNames:
    - c
    - debug
    argTypes:
    - unsigned char
    - PKIX_Boolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 513
    functionName: pkix_isPlaintext
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PKIX_Boolean
    signature: PKIX_Boolean pkix_isPlaintext(unsigned char c, PKIX_Boolean debug)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:578,1
    - Dst: PKIX_NULLCHECK_FOUR
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:580,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:586,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:586,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:589,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:589,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:595,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:595,1
    - Dst: PKIX_PL_HashTable_Lookup
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:601,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:613,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:613,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:621,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:621,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:631,1
    - Dst: PKIX_PL_Object_Compare
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:631,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:638,1
    - Dst: PKIX_PL_Object_Compare
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:638,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:649,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:649,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:664,1
    - Dst: PKIX_PL_HashTable_Remove
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:664,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:674,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:675,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:676,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:677,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:678,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:680,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 6
    argNames:
    - targetCert
    - anchors
    - testDate
    - pFound
    - pBuildResult
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_List*
    - PKIX_PL_Date*
    - PKIX_Boolean*
    - PKIX_BuildResult**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 561
    functionDepth: 1
    functionLinenumber: 561
    functionLinenumberEnd: 682
    functionName: pkix_CacheCertChain_Lookup
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.c
    functionUses: 1
    functionsReached:
    - PKIX_PL_HashTable_Remove
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_Create
    - PKIX_PL_Object_Compare
    - PKIX_NULLCHECK_FOUR
    - PKIX_PL_HashTable_Lookup
    - PKIX_List_AppendItem
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_CacheCertChain_Lookup(\n        PKIX_PL_Cert* targetCert,\n
      \       PKIX_List* anchors,\n        PKIX_PL_Date *testDate,\n        PKIX_Boolean
      *pFound,\n        PKIX_BuildResult **pBuildResult,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:725,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:726,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:730,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:730,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:733,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:733,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:739,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:739,1
    - Dst: PKIX_CHECK_ONLY_FATAL
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:745,1
    - Dst: PKIX_PL_HashTable_Remove
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:745,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:755,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - targetCert
    - anchors
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_List*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 717
    functionDepth: 1
    functionLinenumber: 717
    functionLinenumberEnd: 759
    functionName: pkix_CacheCertChain_Remove
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.c
    functionUses: 1
    functionsReached:
    - PKIX_CHECK_ONLY_FATAL
    - PKIX_CHECK
    - PKIX_PL_HashTable_Remove
    - PKIX_List_Create
    - PKIX_RETURN
    - PKIX_List_AppendItem
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_CacheCertChain_Remove(\n        PKIX_PL_Cert* targetCert,\n
      \       PKIX_List* anchors,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:815,1
    - Dst: PKIX_NULLCHECK_FOUR
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:817,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:819,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:819,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:822,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:822,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:826,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:826,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:830,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:830,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:833,1
    - Dst: PKIX_PL_Date_Create_CurrentOffBySeconds
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:833,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:839,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:839,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:845,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:845,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:849,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:849,1
    - Dst: PKIX_PL_HashTable_Add
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:853,1
    - Dst: PKIX_DEBUG
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:862,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:868,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:869,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:870,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:871,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:873,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 5
    argNames:
    - targetCert
    - anchors
    - validityDate
    - buildResult
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_List*
    - PKIX_PL_Date*
    - PKIX_BuildResult*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 802
    functionDepth: 1
    functionLinenumber: 802
    functionLinenumberEnd: 874
    functionName: pkix_CacheCertChain_Add
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.c
    functionUses: 1
    functionsReached:
    - PKIX_DEBUG
    - PKIX_PL_HashTable_Add
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_Create
    - PKIX_NULLCHECK_FOUR
    - PKIX_List_AppendItem
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_PL_Date_Create_CurrentOffBySeconds
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_CacheCertChain_Add(\n        PKIX_PL_Cert* targetCert,\n
      \       PKIX_List* anchors,\n        PKIX_PL_Date *validityDate,\n        PKIX_BuildResult
      *buildResult,\n        void *plContext)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:948,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:949,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:950,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:954,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:954,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:957,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:957,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:961,1
    - Dst: PKIX_ComCertSelParams_GetSubject
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:961,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:965,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:967,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:967,1
    - Dst: PKIX_PL_HashTable_Lookup
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:971,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:980,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:980,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:988,1
    - Dst: PKIX_PL_Object_Compare
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:988,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:998,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:998,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1009,1
    - Dst: PKIX_CertSelector_Create
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1009,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1013,1
    - Dst: PKIX_CertSelector_SetCommonCertSelectorParams
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1013,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1017,1
    - Dst: PKIX_CertSelector_GetMatchCallback
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1017,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1021,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1021,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1028,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1028,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1034,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1034,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1041,1
    - Dst: PKIX_PL_Cert_GetValidityNotAfter
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1041,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1046,1
    - Dst: PKIX_PL_Object_Compare
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1046,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1060,1
    - Dst: PKIX_PL_HashTable_Remove
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1060,1
    - Dst: selectorMatch
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1068,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1071,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1071,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1078,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1081,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1082,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1087,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1096,1
    - Dst: PKIX_PL_HashTable_Remove
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1096,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1107,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1108,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1109,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1110,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1111,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1112,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1113,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1114,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1115,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1116,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1117,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1119,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 71
    argCount: 6
    argNames:
    - store
    - certSelParams
    - testDate
    - pFound
    - pCerts
    - plContext
    argTypes:
    - PKIX_CertStore*
    - PKIX_ComCertSelParams*
    - PKIX_PL_Date*
    - PKIX_Boolean*
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1120
      start: 922
    functionDepth: 2
    functionLinenumber: 922
    functionLinenumberEnd: 1120
    functionName: pkix_CacheCert_Lookup
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.c
    functionUses: 1
    functionsReached:
    - PKIX_PL_HashTable_Remove
    - PKIX_RETURN
    - PKIX_List_Create
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    - PKIX_INCREF
    - PKIX_PL_HashTable_Lookup
    - PKIX_List_AppendItem
    - PKIX_ENTER
    - PKIX_PL_Cert_GetValidityNotAfter
    - selectorMatch
    - PKIX_PL_Object_Compare
    - PKIX_List_GetLength
    - PKIX_CertSelector_GetMatchCallback
    - PKIX_NULLCHECK_TWO
    - PKIX_CHECK
    - PKIX_ComCertSelParams_GetSubject
    - PKIX_CertSelector_SetCommonCertSelectorParams
    - PKIX_CertSelector_Create
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_CacheCert_Lookup(\n        PKIX_CertStore *store,\n
      \       PKIX_ComCertSelParams *certSelParams,\n        PKIX_PL_Date *testDate,\n
      \       PKIX_Boolean *pFound,\n        PKIX_List** pCerts,\n        void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1175,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1176,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1178,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1178,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1186,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1186,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1189,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1189,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1193,1
    - Dst: PKIX_ComCertSelParams_GetSubject
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1193,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1197,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1199,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1199,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1203,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1203,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1206,1
    - Dst: PKIX_CertStore_GetTrustCallback
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1206,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1214,1
    - Dst: PKIX_PL_Date_Create_CurrentOffBySeconds
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1214,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1218,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1218,1
    - Dst: PKIX_DUPLICATE
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1224,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1227,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1227,1
    - Dst: PKIX_PL_HashTable_Add
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1233,1
    - Dst: PKIX_DEBUG
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1242,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1248,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1249,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1250,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1251,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1252,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1253,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1255,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 36
    argCount: 4
    argNames:
    - store
    - certSelParams
    - certs
    - plContext
    argTypes:
    - PKIX_CertStore*
    - PKIX_ComCertSelParams*
    - PKIX_List*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1256
      start: 1158
    functionDepth: 2
    functionLinenumber: 1158
    functionLinenumberEnd: 1256
    functionName: pkix_CacheCert_Add
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.c
    functionUses: 1
    functionsReached:
    - PKIX_DEBUG
    - PKIX_PL_HashTable_Add
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_Create
    - PKIX_List_GetLength
    - PKIX_ComCertSelParams_GetSubject
    - PKIX_CertStore_GetTrustCallback
    - PKIX_List_AppendItem
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_DECREF
    - PKIX_DUPLICATE
    - PKIX_NULLCHECK_ONE
    - PKIX_PL_Date_Create_CurrentOffBySeconds
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_CacheCert_Add(\n        PKIX_CertStore *store,\n
      \       PKIX_ComCertSelParams *certSelParams,\n        PKIX_List* certs,\n        void
      *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1308,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1309,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1310,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1316,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1316,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1319,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1319,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1323,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1323,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1327,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1327,1
    - Dst: PKIX_PL_HashTable_Lookup
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1333,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1348,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1360,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1361,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1362,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1364,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 6
    argNames:
    - store
    - certIssuer
    - certSerialNumber
    - pFound
    - pCrls
    - plContext
    argTypes:
    - PKIX_CertStore*
    - PKIX_PL_X500Name*
    - PKIX_PL_BigInt*
    - PKIX_Boolean*
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1365
      start: 1295
    functionDepth: 1
    functionLinenumber: 1295
    functionLinenumberEnd: 1365
    functionName: pkix_CacheCrlEntry_Lookup
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.c
    functionUses: 0
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_Create
    - PKIX_PL_HashTable_Lookup
    - PKIX_List_AppendItem
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_DECREF
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_CacheCrlEntry_Lookup(\n        PKIX_CertStore *store,\n
      \       PKIX_PL_X500Name *certIssuer,\n        PKIX_PL_BigInt *certSerialNumber,\n
      \       PKIX_Boolean *pFound,\n        PKIX_List** pCrls,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1412,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1413,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1414,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1418,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1418,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1421,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1421,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1425,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1425,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1429,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1429,1
    - Dst: PKIX_PL_HashTable_Add
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1435,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1444,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1445,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 5
    argNames:
    - store
    - certIssuer
    - certSerialNumber
    - crls
    - plContext
    argTypes:
    - PKIX_CertStore*
    - PKIX_PL_X500Name*
    - PKIX_PL_BigInt*
    - PKIX_List*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1448
      start: 1401
    functionDepth: 1
    functionLinenumber: 1401
    functionLinenumberEnd: 1448
    functionName: pkix_CacheCrlEntry_Add
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.c
    functionUses: 0
    functionsReached:
    - PKIX_PL_HashTable_Add
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_Create
    - PKIX_List_AppendItem
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_CacheCrlEntry_Add(\n        PKIX_CertStore *store,\n
      \       PKIX_PL_X500Name *certIssuer,\n        PKIX_PL_BigInt *certSerialNumber,\n
      \       PKIX_List* crls,\n        void *plContext)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1475,1
    - Dst: strcmp
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1480,1
    - Dst: strcmp
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1490,1
    - Dst: strcmp
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1491,1
    - Dst: strcmp
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1492,1
    - Dst: strcmp
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1493,1
    - Dst: strcmp
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1494,1
    - Dst: strcmp
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1495,1
    - Dst: PL_HashTableLookup
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1502,1
    - Dst: PL_HashTableAdd
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1506,1
    - Dst: PKIX_DoThrow
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1509,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1512,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1516,1
    - Dst: strcat
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1518,1
    - Dst: strcat
      Src: /src/nss/lib/libpkix/pkix/util/pkix_tools.c:1519,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 37
    argCount: 5
    argNames:
    - stdVars
    - errClass
    - fnName
    - errSetFlag
    - plContext
    argTypes:
    - PKIX_StdVars*
    - PKIX_ERRORCLASS
    - char*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1524
      start: 1462
    functionDepth: 2
    functionLinenumber: 1462
    functionLinenumberEnd: 1524
    functionName: pkix_CheckForGeneratedError
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_tools.c
    functionUses: 0
    functionsReached:
    - strcmp
    - PL_HashTableLookup
    - PL_HashTableAdd
    - PKIX_DoThrow
    - PORT_ZAlloc
    - PORT_Strlen
    - strcat
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_CheckForGeneratedError(PKIX_StdVars * stdVars,
      \n                            PKIX_ERRORCLASS errClass, \n                            char
      * fnName,\n                            PKIX_Boolean *errSetFlag,\n                            void
      * plContext)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_PL_MonitorLock_Enter
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:130,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:139,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:144,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:147,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:152,1
    - Dst: PKIX_PL_Sprintf
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:158,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:168,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:173,1
    - Dst: PKIX_Logger*::callback
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:207,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:217,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:227,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:232,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:237,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:242,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:247,1
    - Dst: PKIX_PL_MonitorLock_Exit
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:260,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 109
    argCount: 6
    argNames:
    - pkixLoggersList
    - message
    - message2
    - logComponent
    - currentLevel
    - plContext
    argTypes:
    - PKIX_List*
    - char*
    - char*
    - PKIX_ERRORCLASS
    - PKIX_UInt32
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 264
    functionName: pkix_Logger_Check
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_logger.c
    functionUses: 0
    functionsReached:
    - PKIX_PL_MonitorLock_Exit
    - PKIX_PL_MonitorLock_Enter
    - PKIX_PL_String_Create
    - PKIX_Logger*::callback
    - PKIX_PL_Object_DecRef
    - PKIX_List_GetLength
    - PKIX_PL_Sprintf
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_Logger_Check(\n        PKIX_List *pkixLoggersList,\n
      \       const char *message,\n        const char *message2,\n        PKIX_ERRORCLASS
      logComponent,\n        PKIX_UInt32 currentLevel,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:278,1
    - Dst: PR_snprintf
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:282,1
    - Dst: pkix_Logger_Check
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:286,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 6
    argNames:
    - pkixLoggersList
    - errorCode
    - message2
    - logComponent
    - currentLevel
    - plContext
    argTypes:
    - PKIX_List*
    - PKIX_UInt32
    - char*
    - PKIX_ERRORCLASS
    - PKIX_UInt32
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 266
    functionDepth: 2
    functionLinenumber: 266
    functionLinenumberEnd: 290
    functionName: pkix_Logger_CheckWithCode
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_logger.c
    functionUses: 0
    functionsReached:
    - PR_snprintf
    - PKIX_ENTER
    - PKIX_RETURN
    - pkix_Logger_Check
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_Logger_CheckWithCode(\n        PKIX_List *pkixLoggersList,\n
      \       PKIX_UInt32 errorCode,\n        const char *message2,\n        PKIX_ERRORCLASS
      logComponent,\n        PKIX_UInt32 currentLevel,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:303,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:304,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:307,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:307,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:315,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 296
    functionDepth: 3
    functionLinenumber: 296
    functionLinenumberEnd: 321
    functionName: pkix_Logger_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_logger.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_Logger_Destroy(\n        PKIX_PL_Object *object,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:340,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:341,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:344,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:344,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:357,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:357,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:365,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:368,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:368,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:376,1
    - Dst: PKIX_PL_Sprintf
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:376,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:389,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:390,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 3
    argNames:
    - object
    - pString
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_String**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 327
    functionDepth: 3
    functionLinenumber: 327
    functionLinenumberEnd: 392
    functionName: pkix_Logger_ToString
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_logger.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_PL_String_Create
    - PKIX_RETURN
    - PKIX_PL_Sprintf
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_TOSTRING
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_Logger_ToString(\n        PKIX_PL_Object *object,\n
      \       PKIX_PL_String **pString,\n        void *plContext)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:410,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:411,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:414,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:414,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:431,1
    - Dst: PKIX_PL_Object_GetType
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:431,1
    - Dst: PKIX_EQUALS
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:448,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:467,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 4
    argNames:
    - first
    - second
    - pResult
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 398
    functionDepth: 3
    functionLinenumber: 398
    functionLinenumberEnd: 468
    functionName: pkix_Logger_Equals
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_logger.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_EQUALS
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - pkix_CheckType
    - PKIX_PL_Object_GetType
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_Logger_Equals(\n        PKIX_PL_Object *first,\n
      \       PKIX_PL_Object *second,\n        PKIX_Boolean *pResult,\n        void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:484,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:485,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:487,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:487,1
    - Dst: PKIX_HASHCODE
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:492,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - object
    - pHashcode
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 474
    functionDepth: 3
    functionLinenumber: 474
    functionLinenumberEnd: 503
    functionName: pkix_Logger_Hashcode
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_logger.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_HASHCODE
    - pkix_CheckType
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_Logger_Hashcode(\n        PKIX_PL_Object *object,\n
      \       PKIX_UInt32 *pHashcode,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:519,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:520,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:522,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:522,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:528,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:528,1
    - Dst: PKIX_DUPLICATE
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:538,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:551,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:554,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 3
    argNames:
    - object
    - pNewObject
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 510
    functionDepth: 3
    functionLinenumber: 510
    functionLinenumberEnd: 555
    functionName: pkix_Logger_Duplicate
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_logger.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_Alloc
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_DUPLICATE
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_Logger_Duplicate(\n        PKIX_PL_Object *object,\n
      \       PKIX_PL_Object **pNewObject,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:574,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 589
    functionName: pkix_Logger_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_logger.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      pkix_Logger_RegisterSelf(void *plContext)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:605,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:606,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:608,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:608,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:619,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:627,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 4
    argNames:
    - callback
    - loggerContext
    - pLogger
    - plContext
    argTypes:
    - PKIX_Logger_LogCallback
    - PKIX_PL_Object*
    - PKIX_Logger**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 596
    functionDepth: 1
    functionLinenumber: 596
    functionLinenumberEnd: 630
    functionName: PKIX_Logger_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_logger.c
    functionUses: 3
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_Alloc
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_Logger_Create(\n        PKIX_Logger_LogCallback
      callback,\n        PKIX_PL_Object *loggerContext,\n        PKIX_Logger **pLogger,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:641,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:642,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - logger
    - pCallback
    - plContext
    argTypes:
    - PKIX_Logger*
    - PKIX_Logger_LogCallback*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 635
    functionDepth: 1
    functionLinenumber: 635
    functionLinenumberEnd: 647
    functionName: PKIX_Logger_GetLogCallback
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_logger.c
    functionUses: 1
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_Logger_GetLogCallback(\n        PKIX_Logger *logger,\n
      \       PKIX_Logger_LogCallback *pCallback,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:658,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:659,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:661,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - logger
    - pLoggerContext
    - plContext
    argTypes:
    - PKIX_Logger*
    - PKIX_PL_Object**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 652
    functionDepth: 1
    functionLinenumber: 652
    functionLinenumberEnd: 666
    functionName: PKIX_Logger_GetLoggerContext
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_logger.c
    functionUses: 1
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_Logger_GetLoggerContext(\n        PKIX_Logger *logger,\n
      \       PKIX_PL_Object **pLoggerContext,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:677,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:678,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - logger
    - pLevel
    - plContext
    argTypes:
    - PKIX_Logger*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 671
    functionDepth: 1
    functionLinenumber: 671
    functionLinenumberEnd: 683
    functionName: PKIX_Logger_GetMaxLoggingLevel
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_logger.c
    functionUses: 1
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_Logger_GetMaxLoggingLevel(\n        PKIX_Logger
      *logger,\n        PKIX_UInt32 *pLevel,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:694,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:695,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:698,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:705,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - logger
    - level
    - plContext
    argTypes:
    - PKIX_Logger*
    - PKIX_UInt32
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 688
    functionDepth: 1
    functionLinenumber: 688
    functionLinenumberEnd: 706
    functionName: PKIX_Logger_SetMaxLoggingLevel
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_logger.c
    functionUses: 4
    functionsReached:
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_ERROR
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_Logger_SetMaxLoggingLevel(\n        PKIX_Logger
      *logger,\n        PKIX_UInt32 level,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:717,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:718,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:722,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - logger
    - pComponent
    - plContext
    argTypes:
    - PKIX_Logger*
    - PKIX_ERRORCLASS*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 711
    functionDepth: 1
    functionLinenumber: 711
    functionLinenumberEnd: 723
    functionName: PKIX_Logger_GetLoggingComponent
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_logger.c
    functionUses: 1
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_Logger_GetLoggingComponent(\n        PKIX_Logger
      *logger,\n        PKIX_ERRORCLASS *pComponent,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:734,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:735,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:739,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - logger
    - component
    - plContext
    argTypes:
    - PKIX_Logger*
    - PKIX_ERRORCLASS
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 728
    functionDepth: 1
    functionLinenumber: 728
    functionLinenumberEnd: 740
    functionName: PKIX_Logger_SetLoggingComponent
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_logger.c
    functionUses: 3
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_Logger_SetLoggingComponent(\n        PKIX_Logger
      *logger,\n        PKIX_ERRORCLASS component,\n        void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:765,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:766,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:768,1
    - Dst: PKIX_PL_MonitorLock_Enter
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:768,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:787,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:787,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:793,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:793,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:798,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:798,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:805,1
    - Dst: pkix_Logger_Duplicate
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:805,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:811,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:811,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:817,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:818,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:822,1
    - Dst: PKIX_List_SetImmutable
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:822,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:829,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:836,1
    - Dst: PKIX_PL_MonitorLock_Exit
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:836,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:840,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 33
    argCount: 2
    argNames:
    - pLoggers
    - plContext
    argTypes:
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 752
    functionDepth: 4
    functionLinenumber: 752
    functionLinenumberEnd: 841
    functionName: PKIX_GetLoggers
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_logger.c
    functionUses: 1
    functionsReached:
    - PKIX_List_SetImmutable
    - PKIX_PL_MonitorLock_Exit
    - PKIX_PL_MonitorLock_Enter
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_Create
    - pkix_Logger_Duplicate
    - PKIX_List_GetLength
    - PKIX_List_AppendItem
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_GetLoggers(\n        PKIX_List **pLoggers,  /*
      list of PKIX_Logger */\n        void *plContext)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:859,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:861,1
    - Dst: PKIX_PL_MonitorLock_Enter
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:861,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:872,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:873,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:874,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:878,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:878,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:881,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:881,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:886,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:886,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:893,1
    - Dst: pkix_Logger_Duplicate
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:893,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:899,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:899,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:911,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:911,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:917,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:917,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:929,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:929,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:935,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:935,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:941,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:942,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:952,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:953,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:954,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:958,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:965,1
    - Dst: PKIX_PL_MonitorLock_Exit
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:965,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:969,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 48
    argCount: 2
    argNames:
    - loggers
    - plContext
    argTypes:
    - PKIX_List*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 846
    functionDepth: 4
    functionLinenumber: 846
    functionLinenumberEnd: 970
    functionName: PKIX_SetLoggers
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_logger.c
    functionUses: 3
    functionsReached:
    - PKIX_PL_MonitorLock_Exit
    - PKIX_PL_MonitorLock_Enter
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_Create
    - pkix_Logger_Duplicate
    - PKIX_List_GetLength
    - PKIX_List_AppendItem
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_SetLoggers(\n        PKIX_List *loggers,  /* list
      of PKIX_Logger */\n        void *plContext)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:987,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:988,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:990,1
    - Dst: PKIX_PL_MonitorLock_Enter
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:990,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:999,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:1000,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:1004,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:1004,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:1008,1
    - Dst: pkix_Logger_Duplicate
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:1008,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:1014,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:1014,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:1020,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:1020,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:1026,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:1026,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:1038,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:1038,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:1044,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:1044,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:1056,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:1056,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:1062,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:1062,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:1069,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:1075,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:1076,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:1083,1
    - Dst: PKIX_PL_MonitorLock_Exit
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:1083,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_logger.c:1087,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 41
    argCount: 2
    argNames:
    - logger
    - plContext
    argTypes:
    - PKIX_Logger*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1088
      start: 975
    functionDepth: 4
    functionLinenumber: 975
    functionLinenumberEnd: 1088
    functionName: PKIX_AddLogger
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_logger.c
    functionUses: 2
    functionsReached:
    - PKIX_PL_MonitorLock_Exit
    - PKIX_PL_MonitorLock_Enter
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_Create
    - pkix_Logger_Duplicate
    - PKIX_List_GetLength
    - PKIX_List_AppendItem
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_AddLogger(\n        PKIX_Logger *logger,\n        void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:45,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:46,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:48,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:48,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - isHeader
    - pList
    - plContext
    argTypes:
    - PKIX_Boolean
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 65
    functionName: pkix_List_Create_Internal
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_list.c
    functionUses: 0
    functionsReached:
    - PKIX_RETURN
    - PKIX_CHECK
    - PKIX_PL_Object_Alloc
    - PKIX_ENTER
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_List_Create_Internal(\n        PKIX_Boolean isHeader,\n
      \       PKIX_List **pList,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:79,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:80,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:83,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:83,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:89,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:93,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 71
    functionDepth: 3
    functionLinenumber: 71
    functionLinenumberEnd: 102
    functionName: pkix_List_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_list.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_List_Destroy(\n        PKIX_PL_Object *object,\n
      \       void *plContext)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:138,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:139,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:144,1
    - Dst: PKIX_List_IsEmpty
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:144,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:148,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:148,1
    - Dst: PKIX_DEBUG_EXIT
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:156,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:159,1
    - Dst: pkix_List_ToString_Helper
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:159,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:165,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:165,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:169,1
    - Dst: PKIX_PL_Sprintf
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:169,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:175,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:175,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:183,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:183,1
    - Dst: PKIX_DEBUG_EXIT
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:192,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:197,1
    - Dst: pkix_List_ToString_Helper
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:197,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:202,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:202,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:210,1
    - Dst: PKIX_PL_Sprintf
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:210,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:221,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:222,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:223,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:225,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 36
    argCount: 3
    argNames:
    - list
    - pString
    - plContext
    argTypes:
    - PKIX_List*
    - PKIX_PL_String**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 226
    functionName: pkix_List_ToString_Helper
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_list.c
    functionUses: 1
    functionsReached:
    - PKIX_CHECK
    - PKIX_PL_String_Create
    - PKIX_DEBUG_EXIT
    - PKIX_RETURN
    - PKIX_PL_Object_ToString
    - PKIX_List_IsEmpty
    - PKIX_PL_Sprintf
    - PKIX_ENTER
    - pkix_List_ToString_Helper
    - PKIX_DECREF
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_List_ToString_Helper(\n        PKIX_List *list,\n
      \       PKIX_PL_String **pString,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:242,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:243,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:245,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:245,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:251,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:254,1
    - Dst: pkix_List_ToString_Helper
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:254,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:257,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:257,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:261,1
    - Dst: PKIX_PL_Sprintf
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:261,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:266,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:267,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 3
    argNames:
    - object
    - pString
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_String**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 232
    functionDepth: 3
    functionLinenumber: 232
    functionLinenumberEnd: 270
    functionName: pkix_List_ToString
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_list.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_PL_String_Create
    - PKIX_RETURN
    - PKIX_PL_Sprintf
    - PKIX_ENTER
    - pkix_CheckType
    - pkix_List_ToString_Helper
    - PKIX_DECREF
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_List_ToString(\n        PKIX_PL_Object *object,\n
      \       PKIX_PL_String **pString,\n        void *plContext)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:293,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:294,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:297,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:297,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:314,1
    - Dst: PKIX_PL_Object_GetType
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:314,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:322,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:333,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:333,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:337,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:337,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:347,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:347,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:354,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:355,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:364,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:365,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:367,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 44
    argCount: 4
    argNames:
    - first
    - second
    - pResult
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 276
    functionDepth: 3
    functionLinenumber: 276
    functionLinenumberEnd: 368
    functionName: pkix_List_Equals
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_list.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_PL_Object_Equals
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_PL_Object_GetType
    - PKIX_ERROR
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_List_Equals(\n        PKIX_PL_Object *first,\n
      \       PKIX_PL_Object *second,\n        PKIX_Boolean *pResult,\n        void
      *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:386,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:387,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:389,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:389,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:395,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:401,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:401,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:407,1
    - Dst: PKIX_PL_Object_Hashcode
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:407,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:414,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:421,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:422,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 3
    argNames:
    - object
    - pHashcode
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 374
    functionDepth: 3
    functionLinenumber: 374
    functionLinenumberEnd: 423
    functionName: pkix_List_Hashcode
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_list.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_PL_Object_Hashcode
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_List_Hashcode(\n        PKIX_PL_Object *object,\n
      \       PKIX_UInt32 *pHashcode,\n        void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:438,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:439,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:441,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:441,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:447,1
    - Dst: pkix_duplicateImmutable
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:447,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:452,1
    - Dst: pkix_List_Create_Internal
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:452,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:458,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:465,1
    - Dst: pkix_List_Duplicate
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:465,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:478,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:481,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 3
    argNames:
    - object
    - pNewObject
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 429
    functionDepth: 3
    functionLinenumber: 429
    functionLinenumberEnd: 482
    functionName: pkix_List_Duplicate
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_list.c
    functionUses: 1
    functionsReached:
    - PKIX_INCREF
    - pkix_duplicateImmutable
    - pkix_List_Duplicate
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_List_Create_Internal
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_List_Duplicate(\n        PKIX_PL_Object *object,\n
      \       PKIX_PL_Object **pNewObject,\n        void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:523,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:524,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:527,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:533,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:543,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - list
    - index
    - pElement
    - plContext
    argTypes:
    - PKIX_List*
    - PKIX_UInt32
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 544
    functionName: pkix_List_GetElement
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_list.c
    functionUses: 0
    functionsReached:
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_List_GetElement(\n        PKIX_List *list,\n        PKIX_UInt32
      index,\n        PKIX_List **pElement,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:564,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 558
    functionDepth: 1
    functionLinenumber: 558
    functionLinenumberEnd: 579
    functionName: pkix_List_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_list.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      pkix_List_RegisterSelf(void *plContext)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:617,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:618,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:620,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:620,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:624,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:624,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:629,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:629,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:633,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:645,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:646,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - list
    - object
    - pFound
    - plContext
    argTypes:
    - PKIX_List*
    - PKIX_PL_Object*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 605
    functionDepth: 1
    functionLinenumber: 605
    functionLinenumberEnd: 647
    functionName: pkix_List_Contains
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_list.c
    functionUses: 14
    functionsReached:
    - PKIX_CHECK
    - PKIX_PL_Object_Equals
    - PKIX_RETURN
    - PKIX_List_GetLength
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_DECREF
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_List_Contains(\n        PKIX_List *list,\n        PKIX_PL_Object
      *object,\n        PKIX_Boolean *pFound,\n        void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:682,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:683,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:685,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:685,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:689,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:689,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:694,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:694,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:698,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:702,1
    - Dst: PKIX_List_DeleteItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:702,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:711,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:712,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - list
    - object
    - plContext
    argTypes:
    - PKIX_List*
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 671
    functionDepth: 1
    functionLinenumber: 671
    functionLinenumberEnd: 713
    functionName: pkix_List_Remove
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_list.c
    functionUses: 7
    functionsReached:
    - PKIX_CHECK
    - PKIX_PL_Object_Equals
    - PKIX_RETURN
    - PKIX_List_GetLength
    - PKIX_List_DeleteItem
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_TWO
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_List_Remove(\n        PKIX_List *list,\n        PKIX_PL_Object
      *object,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:748,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:749,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:751,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:751,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:755,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:755,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:760,1
    - Dst: pkix_List_Remove
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:760,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:764,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:770,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:771,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - list
    - deleteList
    - plContext
    argTypes:
    - PKIX_List*
    - PKIX_List*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 738
    functionDepth: 2
    functionLinenumber: 738
    functionLinenumberEnd: 772
    functionName: pkix_List_RemoveItems
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_list.c
    functionUses: 1
    functionsReached:
    - pkix_List_Remove
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_GetLength
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_TWO
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_List_RemoveItems(\n        PKIX_List *list,\n        PKIX_List
      *deleteList,\n        void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:810,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:811,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:815,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:815,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:820,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:820,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:826,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:826,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:829,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:829,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:832,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:838,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:838,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:848,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:848,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:852,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:852,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:855,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:862,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:863,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:865,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 4
    argNames:
    - firstList
    - secondList
    - pMergedList
    - plContext
    argTypes:
    - PKIX_List*
    - PKIX_List*
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 798
    functionDepth: 1
    functionLinenumber: 798
    functionLinenumberEnd: 866
    functionName: pkix_List_MergeLists
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_list.c
    functionUses: 1
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_Create
    - PKIX_List_GetLength
    - PKIX_List_AppendItem
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_List_MergeLists(\n        PKIX_List *firstList,\n
      \       PKIX_List *secondList,\n        PKIX_List **pMergedList,\n        void
      *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:900,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:901,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:909,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:909,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:918,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:918,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:922,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:922,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:925,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:930,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:932,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - toList
    - fromList
    - plContext
    argTypes:
    - PKIX_List*
    - PKIX_List*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 933
      start: 890
    functionDepth: 1
    functionLinenumber: 890
    functionLinenumberEnd: 933
    functionName: pkix_List_AppendList
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_list.c
    functionUses: 3
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_GetLength
    - PKIX_List_AppendItem
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_List_AppendList(\n        PKIX_List *toList,\n
      \       PKIX_List *fromList,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:970,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:971,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:973,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:973,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:978,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:978,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:982,1
    - Dst: pkix_List_Contains
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:982,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:987,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:987,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:992,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:997,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:999,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - toList
    - fromList
    - plContext
    argTypes:
    - PKIX_List*
    - PKIX_List*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 959
    functionDepth: 2
    functionLinenumber: 959
    functionLinenumberEnd: 1000
    functionName: pkix_List_AppendUnique
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_list.c
    functionUses: 1
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_GetLength
    - PKIX_List_AppendItem
    - PKIX_ENTER
    - PKIX_DECREF
    - pkix_List_Contains
    - PKIX_NULLCHECK_TWO
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_List_AppendUnique(\n        PKIX_List *toList,\n
      \       PKIX_List *fromList,\n        void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1049,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1050,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1052,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1052,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1055,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1055,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1058,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1058,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1061,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1061,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1074,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1074,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1078,1
    - Dst: comparator
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1078,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1082,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1082,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1086,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1086,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1090,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1093,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1093,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1096,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1096,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1101,1
    - Dst: pkix_List_QuickSort
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1101,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1105,1
    - Dst: pkix_List_AppendList
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1105,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1109,1
    - Dst: pkix_List_AppendList
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1109,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1114,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1114,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1117,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1117,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1122,1
    - Dst: pkix_List_QuickSort
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1122,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1126,1
    - Dst: pkix_List_AppendList
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1126,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1130,1
    - Dst: pkix_List_AppendList
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1130,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1139,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1140,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1141,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1142,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1143,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1144,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1146,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 43
    argCount: 4
    argNames:
    - fromList
    - comparator
    - pSortedList
    - plContext
    argTypes:
    - PKIX_List*
    - PKIX_List_SortComparatorCallback
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1147
      start: 1031
    functionDepth: 2
    functionLinenumber: 1031
    functionLinenumberEnd: 1147
    functionName: pkix_List_QuickSort
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_list.c
    functionUses: 1
    functionsReached:
    - pkix_List_QuickSort
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_Create
    - PKIX_List_GetLength
    - pkix_List_AppendList
    - PKIX_List_AppendItem
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_DECREF
    - comparator
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_List_QuickSort(\n        PKIX_List *fromList,\n
      \       PKIX_List_SortComparatorCallback comparator,\n        PKIX_List **pSortedList,\n
      \       void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1192,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1193,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1196,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1198,1
    - Dst: pkix_List_Duplicate
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1198,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1204,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1204,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1216,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1216,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1221,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1221,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1224,1
    - Dst: comparator
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1224,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1228,1
    - Dst: PKIX_List_SetItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1228,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1232,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1236,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1239,1
    - Dst: PKIX_List_SetItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1239,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1243,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1252,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1253,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1254,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1256,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 4
    argNames:
    - fromList
    - comparator
    - pSortedList
    - plContext
    argTypes:
    - PKIX_List*
    - PKIX_List_SortComparatorCallback
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1257
      start: 1178
    functionDepth: 4
    functionLinenumber: 1178
    functionLinenumberEnd: 1257
    functionName: pkix_List_BubbleSort
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_list.c
    functionUses: 2
    functionsReached:
    - pkix_List_Duplicate
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_GetLength
    - PKIX_List_SetItem
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_DECREF
    - comparator
    - PKIX_ERROR
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_List_BubbleSort(\n        PKIX_List *fromList,\n
      \       PKIX_List_SortComparatorCallback comparator,\n        PKIX_List **pSortedList,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1271,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1272,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1274,1
    - Dst: pkix_List_Create_Internal
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1274,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - pList
    - plContext
    argTypes:
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1282
      start: 1264
    functionDepth: 2
    functionLinenumber: 1264
    functionLinenumberEnd: 1282
    functionName: PKIX_List_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_list.c
    functionUses: 92
    functionsReached:
    - PKIX_RETURN
    - PKIX_CHECK
    - pkix_List_Create_Internal
    - PKIX_ENTER
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_List_Create(\n        PKIX_List **pList,\n        void
      *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1292,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1293,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1296,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1303,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - list
    - plContext
    argTypes:
    - PKIX_List*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1304
      start: 1287
    functionDepth: 1
    functionLinenumber: 1287
    functionLinenumberEnd: 1304
    functionName: PKIX_List_SetImmutable
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_list.c
    functionUses: 19
    functionsReached:
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_ERROR
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_List_SetImmutable(\n        PKIX_List *list,\n
      \       void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1315,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1316,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1319,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1326,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - list
    - pImmutable
    - plContext
    argTypes:
    - PKIX_List*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1327
      start: 1309
    functionDepth: 1
    functionLinenumber: 1309
    functionLinenumberEnd: 1327
    functionName: PKIX_List_IsImmutable
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_list.c
    functionUses: 5
    functionsReached:
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_List_IsImmutable(\n        PKIX_List *list,\n        PKIX_Boolean
      *pImmutable,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1338,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1339,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1342,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - list
    - pLength
    - plContext
    argTypes:
    - PKIX_List*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1350
      start: 1332
    functionDepth: 1
    functionLinenumber: 1332
    functionLinenumberEnd: 1350
    functionName: PKIX_List_GetLength
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_list.c
    functionUses: 90
    functionsReached:
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_List_GetLength(\n        PKIX_List *list,\n        PKIX_UInt32
      *pLength,\n        void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1363,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1364,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1367,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1380,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - list
    - pEmpty
    - plContext
    argTypes:
    - PKIX_List*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1381
      start: 1355
    functionDepth: 1
    functionLinenumber: 1355
    functionLinenumberEnd: 1381
    functionName: PKIX_List_IsEmpty
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_list.c
    functionUses: 5
    functionsReached:
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_List_IsEmpty(\n        PKIX_List *list,\n        PKIX_Boolean
      *pEmpty,\n        void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1396,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1397,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1400,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1404,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1416,1
    - Dst: pkix_List_Create_Internal
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1416,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1420,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1423,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1423,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1433,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1435,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 3
    argNames:
    - list
    - item
    - plContext
    argTypes:
    - PKIX_List*
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1436
      start: 1386
    functionDepth: 2
    functionLinenumber: 1386
    functionLinenumberEnd: 1436
    functionName: PKIX_List_AppendItem
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_list.c
    functionUses: 90
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_List_Create_Internal
    - PKIX_PL_Object_InvalidateCache
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_ERROR
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_List_AppendItem(\n        PKIX_List *list,\n        PKIX_PL_Object
      *item,\n        void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1451,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1452,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1456,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1460,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1464,1
    - Dst: pkix_List_Create_Internal
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1464,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1468,1
    - Dst: pkix_List_GetElement
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1468,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1473,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1481,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1489,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1489,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1493,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1495,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 31
    argCount: 4
    argNames:
    - list
    - index
    - item
    - plContext
    argTypes:
    - PKIX_List*
    - PKIX_UInt32
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1496
      start: 1441
    functionDepth: 2
    functionLinenumber: 1441
    functionLinenumberEnd: 1496
    functionName: PKIX_List_InsertItem
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_list.c
    functionUses: 5
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_List_Create_Internal
    - PKIX_PL_Object_InvalidateCache
    - PKIX_ENTER
    - pkix_List_GetElement
    - PKIX_DECREF
    - PKIX_ERROR
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_List_InsertItem(\n        PKIX_List *list,\n        PKIX_UInt32
      index,\n        PKIX_PL_Object *item,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1510,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1511,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1514,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1517,1
    - Dst: pkix_List_GetElement
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1517,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1520,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1525,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - list
    - index
    - pItem
    - plContext
    argTypes:
    - PKIX_List*
    - PKIX_UInt32
    - PKIX_PL_Object**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1526
      start: 1501
    functionDepth: 2
    functionLinenumber: 1501
    functionLinenumberEnd: 1526
    functionName: PKIX_List_GetItem
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_list.c
    functionUses: 100
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_List_GetElement
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_List_GetItem(\n        PKIX_List *list,\n        PKIX_UInt32
      index,\n        PKIX_PL_Object **pItem,\n        void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1540,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1541,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1544,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1548,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1551,1
    - Dst: pkix_List_GetElement
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1551,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1555,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1558,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1561,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1561,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1567,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - list
    - index
    - item
    - plContext
    argTypes:
    - PKIX_List*
    - PKIX_UInt32
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1568
      start: 1531
    functionDepth: 2
    functionLinenumber: 1531
    functionLinenumberEnd: 1568
    functionName: PKIX_List_SetItem
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_list.c
    functionUses: 5
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_InvalidateCache
    - PKIX_ENTER
    - pkix_List_GetElement
    - PKIX_DECREF
    - PKIX_ERROR
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_List_SetItem(\n        PKIX_List *list,\n        PKIX_UInt32
      index,\n        PKIX_PL_Object *item,\n        void *plContext)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1583,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1584,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1587,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1591,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1594,1
    - Dst: pkix_List_GetElement
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1594,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1598,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1613,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1617,1
    - Dst: pkix_List_GetElement
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1617,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1626,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1629,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1629,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1637,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 3
    argNames:
    - list
    - index
    - plContext
    argTypes:
    - PKIX_List*
    - PKIX_UInt32
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1638
      start: 1573
    functionDepth: 2
    functionLinenumber: 1573
    functionLinenumberEnd: 1638
    functionName: PKIX_List_DeleteItem
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_list.c
    functionUses: 13
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_InvalidateCache
    - PKIX_ENTER
    - pkix_List_GetElement
    - PKIX_DECREF
    - PKIX_ERROR
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_List_DeleteItem(\n        PKIX_List *list,\n        PKIX_UInt32
      index,\n        void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1654,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1655,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1658,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1664,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1664,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1673,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1673,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1677,1
    - Dst: PKIX_PL_Object_Duplicate
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1677,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1681,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1681,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1685,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1686,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1693,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1694,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1697,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix/util/pkix_list.c:1700,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 3
    argNames:
    - list
    - pReversedList
    - plContext
    argTypes:
    - PKIX_List*
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1701
      start: 1643
    functionDepth: 3
    functionLinenumber: 1643
    functionLinenumberEnd: 1701
    functionName: PKIX_List_ReverseList
    functionSourceFile: /src/nss/lib/libpkix/pkix/util/pkix_list.c
    functionUses: 2
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_Create
    - PKIX_PL_Object_Duplicate
    - PKIX_List_AppendItem
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_List_ReverseList(\n        PKIX_List *list,\n        PKIX_List
      **pReversedList,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 229
    functionName: TYPEMACRO
    functionSourceFile: /src/nss/lib/libpkix/include/pkixt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TYPEMACRO(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 329
    functionName: ERRMACRO
    functionSourceFile: /src/nss/lib/libpkix/include/pkixt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERRMACRO(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - desc
    - ','
    - plerr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 338
    functionName: PKIX_ERRORENTRY
    functionSourceFile: /src/nss/lib/libpkix/include/pkixt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_ERRORENTRY(name,desc,plerr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_basicconstraints.c:46,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_basicconstraints.c:48,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_basicconstraints.c:50,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_basicconstraints.c:50,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_basicconstraints.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 4
    argNames:
    - isCA
    - pathLen
    - pObject
    - plContext
    argTypes:
    - PKIX_Boolean
    - PKIX_Int32
    - PKIX_PL_CertBasicConstraints**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 67
    functionName: pkix_pl_CertBasicConstraints_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_basicconstraints.c
    functionUses: 0
    functionsReached:
    - PKIX_RETURN
    - PKIX_CHECK
    - PKIX_PL_Object_Alloc
    - PKIX_ENTER
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CertBasicConstraints_Create(\n        PKIX_Boolean
      isCA,\n        PKIX_Int32 pathLen,\n        PKIX_PL_CertBasicConstraints **pObject,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_basicconstraints.c:80,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_basicconstraints.c:82,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_basicconstraints.c:84,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_basicconstraints.c:84,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_basicconstraints.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 96
    functionName: pkix_pl_CertBasicConstraints_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_basicconstraints.c
    functionUses: 0
    functionsReached:
    - PKIX_RETURN
    - PKIX_CHECK
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CertBasicConstraints_Destroy(\n        PKIX_PL_Object
      *object,\n        void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_basicconstraints.c:116,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_basicconstraints.c:118,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_basicconstraints.c:120,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_basicconstraints.c:120,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_basicconstraints.c:154,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_basicconstraints.c:154,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_basicconstraints.c:163,1
    - Dst: PKIX_PL_Sprintf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_basicconstraints.c:163,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_basicconstraints.c:170,1
    - Dst: PKIX_PL_Sprintf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_basicconstraints.c:170,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_basicconstraints.c:181,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_basicconstraints.c:183,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 3
    argNames:
    - object
    - pString
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_String**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 102
    functionDepth: 3
    functionLinenumber: 102
    functionLinenumberEnd: 184
    functionName: pkix_pl_CertBasicConstraints_ToString
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_basicconstraints.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_PL_String_Create
    - PKIX_RETURN
    - PKIX_PL_Sprintf
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CertBasicConstraints_ToString(\n        PKIX_PL_Object
      *object,\n        PKIX_PL_String **pString,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_basicconstraints.c:202,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_basicconstraints.c:204,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_basicconstraints.c:206,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_basicconstraints.c:206,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_basicconstraints.c:226,1
    - Dst: pkix_hash
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_basicconstraints.c:226,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_basicconstraints.c:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - object
    - pHashcode
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 190
    functionDepth: 3
    functionLinenumber: 190
    functionLinenumberEnd: 238
    functionName: pkix_pl_CertBasicConstraints_Hashcode
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_basicconstraints.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - pkix_hash
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CertBasicConstraints_Hashcode(\n        PKIX_PL_Object
      *object,\n        PKIX_UInt32 *pHashcode,\n        void *plContext)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_basicconstraints.c:260,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_basicconstraints.c:262,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_basicconstraints.c:265,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_basicconstraints.c:265,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_basicconstraints.c:282,1
    - Dst: PKIX_PL_Object_GetType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_basicconstraints.c:282,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_basicconstraints.c:329,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 4
    argNames:
    - firstObject
    - secondObject
    - pResult
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 245
    functionDepth: 3
    functionLinenumber: 245
    functionLinenumberEnd: 330
    functionName: pkix_pl_CertBasicConstraints_Equals
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_basicconstraints.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - pkix_CheckType
    - PKIX_PL_Object_GetType
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CertBasicConstraints_Equals(\n        PKIX_PL_Object
      *firstObject,\n        PKIX_PL_Object *secondObject,\n        PKIX_Boolean *pResult,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_basicconstraints.c:351,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_basicconstraints.c:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 344
    functionDepth: 1
    functionLinenumber: 344
    functionLinenumberEnd: 367
    functionName: pkix_pl_CertBasicConstraints_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_basicconstraints.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      pkix_pl_CertBasicConstraints_RegisterSelf(void *plContext)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_basicconstraints.c:381,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_basicconstraints.c:383,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_basicconstraints.c:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - basicConstraints
    - pResult
    - plContext
    argTypes:
    - PKIX_PL_CertBasicConstraints*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 388
    functionName: PKIX_PL_BasicConstraints_GetCAFlag
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_basicconstraints.c
    functionUses: 3
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_BasicConstraints_GetCAFlag(\n        PKIX_PL_CertBasicConstraints
      *basicConstraints,\n        PKIX_Boolean *pResult,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_basicconstraints.c:400,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_basicconstraints.c:402,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_basicconstraints.c:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - basicConstraints
    - pPathLenConstraint
    - plContext
    argTypes:
    - PKIX_PL_CertBasicConstraints*
    - PKIX_Int32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 407
    functionName: PKIX_PL_BasicConstraints_GetPathLenConstraint
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_basicconstraints.c
    functionUses: 4
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_BasicConstraints_GetPathLenConstraint(\n        PKIX_PL_CertBasicConstraints
      *basicConstraints,\n        PKIX_Int32 *pPathLenConstraint,\n        void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:48,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:49,1
    - Dst: PKIX_PUBLICKEY_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:65,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:66,1
    - Dst: PKIX_PUBLICKEY_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:68,1
    - Dst: SECOID_FindOIDTagDescription
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:70,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:72,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:76,1
    - Dst: pkix_pl_oidBytes2Ascii
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:76,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:82,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:82,1
    - Dst: PKIX_FREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:92,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:95,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 3
    argNames:
    - pkixPubKey
    - pString
    - plContext
    argTypes:
    - PKIX_PL_PublicKey*
    - PKIX_PL_String**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 96
    functionName: pkix_pl_PublicKey_ToString_Helper
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c
    functionUses: 0
    functionsReached:
    - PKIX_FREE
    - SECOID_GetAlgorithmTag
    - SECOID_FindOIDTagDescription
    - PKIX_CHECK
    - PKIX_PL_String_Create
    - PKIX_RETURN
    - pkix_pl_oidBytes2Ascii
    - PKIX_PUBLICKEY_DEBUG
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_PublicKey_ToString_Helper(\n        PKIX_PL_PublicKey
      *pkixPubKey,\n        PKIX_PL_String **pString,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:119,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:121,1
    - Dst: PKIX_PUBLICKEY_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:123,1
    - Dst: SECOID_DestroyAlgorithmID
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:124,1
    - Dst: PKIX_PUBLICKEY_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:126,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:127,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - nssSPKI
    - plContext
    argTypes:
    - CERTSubjectPublicKeyInfo*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 130
    functionName: pkix_pl_DestroySPKI
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c
    functionUses: 0
    functionsReached:
    - PKIX_RETURN
    - PKIX_NULLCHECK_ONE
    - PKIX_PUBLICKEY_DEBUG
    - PKIX_ENTER
    - SECOID_DestroyAlgorithmID
    - SECITEM_FreeItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_DestroySPKI(\n        CERTSubjectPublicKeyInfo
      *nssSPKI,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:143,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:145,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:147,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:147,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:154,1
    - Dst: pkix_pl_DestroySPKI
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:154,1
    - Dst: PKIX_FREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:157,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 136
    functionDepth: 3
    functionLinenumber: 136
    functionLinenumberEnd: 163
    functionName: pkix_pl_PublicKey_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c
    functionUses: 0
    functionsReached:
    - PKIX_FREE
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - pkix_pl_DestroySPKI
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_PublicKey_Destroy(\n        PKIX_PL_Object *object,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:178,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:179,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:181,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:181,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:186,1
    - Dst: pkix_pl_PublicKey_ToString_Helper
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:186,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - object
    - pString
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_String**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 169
    functionDepth: 3
    functionLinenumber: 169
    functionLinenumberEnd: 195
    functionName: pkix_pl_PublicKey_ToString
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c
    functionUses: 0
    functionsReached:
    - pkix_pl_PublicKey_ToString_Helper
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_PublicKey_ToString(\n        PKIX_PL_Object
      *object,\n        PKIX_PL_String **pString,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:215,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:216,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:218,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:218,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:223,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:229,1
    - Dst: pkix_hash
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:229,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:233,1
    - Dst: pkix_hash
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:233,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:237,1
    - Dst: pkix_hash
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:237,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 3
    argNames:
    - object
    - pHashcode
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 201
    functionDepth: 3
    functionLinenumber: 201
    functionLinenumberEnd: 246
    functionName: pkix_pl_PublicKey_Hashcode
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - pkix_hash
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_NULLCHECK_TWO
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_PublicKey_Hashcode(\n        PKIX_PL_Object
      *object,\n        PKIX_UInt32 *pHashcode,\n        void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:267,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:268,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:271,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:271,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:288,1
    - Dst: PKIX_PL_Object_GetType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:288,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:299,1
    - Dst: PKIX_PL_NSSCALLRV
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:301,1
    - Dst: PKIX_PUBLICKEY_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:305,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:306,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:315,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 4
    argNames:
    - firstObject
    - secondObject
    - pResult
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 253
    functionDepth: 3
    functionLinenumber: 253
    functionLinenumberEnd: 316
    functionName: pkix_pl_PublicKey_Equals
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c
    functionUses: 0
    functionsReached:
    - SECITEM_CompareItem
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PUBLICKEY_DEBUG
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - pkix_CheckType
    - PKIX_PL_NSSCALLRV
    - PKIX_PL_Object_GetType
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_PublicKey_Equals(\n        PKIX_PL_Object *firstObject,\n
      \       PKIX_PL_Object *secondObject,\n        PKIX_Boolean *pResult,\n        void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:336,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 350
    functionName: pkix_pl_PublicKey_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      pkix_pl_PublicKey_RegisterSelf(void *plContext)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:368,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:369,1
    - Dst: PKIX_PUBLICKEY_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:373,1
    - Dst: CERT_GetCertKeyType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:374,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:376,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:388,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - pubKey
    - pNeedsParams
    - plContext
    argTypes:
    - PKIX_PL_PublicKey*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 358
    functionDepth: 2
    functionLinenumber: 358
    functionLinenumberEnd: 389
    functionName: PKIX_PL_PublicKey_NeedsDSAParameters
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c
    functionUses: 1
    functionsReached:
    - PKIX_RETURN
    - CERT_GetCertKeyType
    - PKIX_PUBLICKEY_DEBUG
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_PublicKey_NeedsDSAParameters(\n        PKIX_PL_PublicKey
      *pubKey,\n        PKIX_Boolean *pNeedsParams,\n        void *plContext)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:410,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:411,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:412,1
    - Dst: PKIX_PUBLICKEY_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:417,1
    - Dst: CERT_GetCertKeyType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:418,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:420,1
    - Dst: PKIX_PUBLICKEY_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:423,1
    - Dst: CERT_GetCertKeyType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:424,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:426,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:432,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:434,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:437,1
    - Dst: PKIX_PL_Calloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:437,1
    - Dst: PKIX_PUBLICKEY_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:444,1
    - Dst: SECKEY_CopySubjectPublicKeyInfo
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:447,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:450,1
    - Dst: PKIX_PUBLICKEY_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:454,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:456,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:461,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:465,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:465,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:483,1
    - Dst: pkix_pl_DestroySPKI
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:483,1
    - Dst: PKIX_FREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:485,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c:488,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 48
    argCount: 4
    argNames:
    - firstKey
    - secondKey
    - pResultKey
    - plContext
    argTypes:
    - PKIX_PL_PublicKey*
    - PKIX_PL_PublicKey*
    - PKIX_PL_PublicKey**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 395
    functionDepth: 2
    functionLinenumber: 395
    functionLinenumberEnd: 489
    functionName: PKIX_PL_PublicKey_MakeInheritedDSAPublicKey
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_publickey.c
    functionUses: 2
    functionsReached:
    - PKIX_FREE
    - PKIX_CHECK
    - PKIX_RETURN
    - CERT_GetCertKeyType
    - SECKEY_CopySubjectPublicKeyInfo
    - pkix_pl_DestroySPKI
    - SECITEM_CopyItem
    - PKIX_PUBLICKEY_DEBUG
    - PKIX_PL_Object_Alloc
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_PL_Calloc
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_PublicKey_MakeInheritedDSAPublicKey(\n        PKIX_PL_PublicKey
      *firstKey,\n        PKIX_PL_PublicKey *secondKey,\n        PKIX_PL_PublicKey
      **pResultKey,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspcertid.c:26,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspcertid.c:28,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspcertid.c:30,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspcertid.c:30,1
    - Dst: CERT_DestroyOCSPCertID
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspcertid.c:36,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspcertid.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 19
    functionDepth: 3
    functionLinenumber: 19
    functionLinenumberEnd: 42
    functionName: pkix_pl_OcspCertID_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspcertid.c
    functionUses: 0
    functionsReached:
    - CERT_DestroyOCSPCertID
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_OcspCertID_Destroy(\n        PKIX_PL_Object
      *object,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspcertid.c:62,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspcertid.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 76
    functionName: pkix_pl_OcspCertID_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspcertid.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      pkix_pl_OcspCertID_RegisterSelf(void *plContext)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspcertid.c:118,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspcertid.c:119,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspcertid.c:121,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspcertid.c:121,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspcertid.c:129,1
    - Dst: pkix_pl_Date_GetPRTime
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspcertid.c:129,1
    - Dst: PR_Now
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspcertid.c:132,1
    - Dst: CERT_CreateOCSPCertID
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspcertid.c:135,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspcertid.c:137,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspcertid.c:143,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspcertid.c:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 4
    argNames:
    - cert
    - validity
    - object
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_PL_Date*
    - PKIX_PL_OcspCertID**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 145
    functionName: PKIX_PL_OcspCertID_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspcertid.c
    functionUses: 2
    functionsReached:
    - CERT_CreateOCSPCertID
    - PKIX_CHECK
    - PKIX_RETURN
    - PR_Now
    - pkix_pl_Date_GetPRTime
    - PKIX_PL_Object_Alloc
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_OcspCertID_Create(\n        PKIX_PL_Cert *cert,\n
      \       PKIX_PL_Date *validity,\n        PKIX_PL_OcspCertID **object,\n        void
      *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspcertid.c:189,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspcertid.c:190,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspcertid.c:193,1
    - Dst: pkix_pl_Date_GetPRTime
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspcertid.c:193,1
    - Dst: PR_Now
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspcertid.c:196,1
    - Dst: ocsp_GetCachedOCSPResponseStatus
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspcertid.c:199,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspcertid.c:208,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 6
    argNames:
    - cid
    - validity
    - hasFreshStatus
    - statusIsGood
    - missingResponseError
    - plContext
    argTypes:
    - PKIX_PL_OcspCertID*
    - PKIX_PL_Date*
    - PKIX_Boolean*
    - PKIX_Boolean*
    - SECErrorCodes*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 209
    functionName: PKIX_PL_OcspCertID_GetFreshCacheStatus
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspcertid.c
    functionUses: 1
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PR_Now
    - pkix_pl_Date_GetPRTime
    - ocsp_GetCachedOCSPResponseStatus
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_OcspCertID_GetFreshCacheStatus(\n        PKIX_PL_OcspCertID
      *cid, \n        PKIX_PL_Date *validity,\n        PKIX_Boolean *hasFreshStatus,\n
      \       PKIX_Boolean *statusIsGood,\n        SECErrorCodes *missingResponseError,\n
      \       void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspcertid.c:240,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspcertid.c:241,1
    - Dst: cert_RememberOCSPProcessingFailure
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspcertid.c:243,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspcertid.c:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - cid
    - plContext
    argTypes:
    - PKIX_PL_OcspCertID*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 250
    functionName: PKIX_PL_OcspCertID_RememberOCSPProcessingFailure
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspcertid.c
    functionUses: 1
    functionsReached:
    - cert_RememberOCSPProcessingFailure
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_OcspCertID_RememberOCSPProcessingFailure(\n
      \       PKIX_PL_OcspCertID *cid, \n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:50,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:51,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:53,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:58,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - crl
    - pVersion
    - plContext
    argTypes:
    - PKIX_PL_CRL*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 66
    functionName: pkix_pl_CRL_GetVersion
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c
    functionUses: 0
    functionsReached:
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_ERROR
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CRL_GetVersion(\n        PKIX_PL_CRL *crl,\n
      \       PKIX_UInt32 *pVersion,\n        void *plContext)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:84,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:85,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:88,1
    - Dst: PKIX_OBJECT_LOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:92,1
    - Dst: PKIX_CRL_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:100,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:101,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:103,1
    - Dst: PKIX_CRL_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:106,1
    - Dst: CERT_FindCRLNumberExten
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:107,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:115,1
    - Dst: pkix_pl_BigInt_CreateWithBytes
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:115,1
    - Dst: PKIX_OBJECT_UNLOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:131,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:135,1
    - Dst: PKIX_CRL_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:142,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:143,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:146,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 3
    argNames:
    - crl
    - pCrlNumber
    - plContext
    argTypes:
    - PKIX_PL_CRL*
    - PKIX_PL_BigInt**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 147
    functionName: PKIX_PL_CRL_GetCRLNumber
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - PKIX_INCREF
    - PORT_NewArena
    - PKIX_CHECK
    - PKIX_RETURN
    - CERT_FindCRLNumberExten
    - PORT_FreeArena
    - PKIX_CRL_DEBUG
    - pkix_pl_BigInt_CreateWithBytes
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_OBJECT_UNLOCK
    - PKIX_ERROR
    - PKIX_OBJECT_LOCK
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_CRL_GetCRLNumber(\n        PKIX_PL_CRL *crl,\n
      \       PKIX_PL_BigInt **pCrlNumber,\n        void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:183,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:184,1
    - Dst: PKIX_OBJECT_LOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:188,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:195,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:197,1
    - Dst: PKIX_PL_OID_CreateBySECItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:197,1
    - Dst: PKIX_OBJECT_UNLOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:205,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:207,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:210,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:211,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - crl
    - pSignatureAlgId
    - plContext
    argTypes:
    - PKIX_PL_CRL*
    - PKIX_PL_OID**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 212
    functionName: pkix_pl_CRL_GetSignatureAlgId
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c
    functionUses: 0
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_DECREF
    - PKIX_OBJECT_UNLOCK
    - PKIX_PL_OID_CreateBySECItem
    - PKIX_ERROR
    - PKIX_OBJECT_LOCK
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CRL_GetSignatureAlgId(\n        PKIX_PL_CRL
      *crl,\n        PKIX_PL_OID **pSignatureAlgId,\n        void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:245,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:246,1
    - Dst: PKIX_OBJECT_LOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:251,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:257,1
    - Dst: pkix_pl_CRLEntry_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:257,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:261,1
    - Dst: PKIX_List_SetImmutable
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:261,1
    - Dst: PKIX_OBJECT_UNLOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:268,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:272,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:278,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - crl
    - pCrlEntries
    - plContext
    argTypes:
    - PKIX_PL_CRL*
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 279
    functionName: pkix_pl_CRL_GetCRLEntries
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c
    functionUses: 0
    functionsReached:
    - PKIX_INCREF
    - PKIX_List_SetImmutable
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_OBJECT_UNLOCK
    - pkix_pl_CRLEntry_Create
    - PKIX_OBJECT_LOCK
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CRL_GetCRLEntries(\n        PKIX_PL_CRL *crl,\n
      \       PKIX_List **pCrlEntries,\n        void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:292,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:293,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:295,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:295,1
    - Dst: PKIX_CRL_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:300,1
    - Dst: CERT_DestroyCrl
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:302,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:305,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:311,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:312,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:313,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:314,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:315,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:317,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:322,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 285
    functionDepth: 3
    functionLinenumber: 285
    functionLinenumberEnd: 323
    functionName: pkix_pl_CRL_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_CRL_DEBUG
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - SECITEM_FreeItem
    - CERT_DestroyCrl
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CRL_Destroy(\n        PKIX_PL_Object *object,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:370,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:371,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:387,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:387,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:396,1
    - Dst: pkix_pl_CRL_GetVersion
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:396,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:400,1
    - Dst: PKIX_PL_CRL_GetIssuer
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:400,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:403,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:403,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:408,1
    - Dst: pkix_pl_Date_ToString_Helper
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:408,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:415,1
    - Dst: pkix_pl_Date_ToString_Helper
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:415,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:422,1
    - Dst: pkix_pl_CRL_GetSignatureAlgId
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:422,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:426,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:426,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:433,1
    - Dst: PKIX_PL_CRL_GetCRLNumber
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:433,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:437,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:441,1
    - Dst: pkix_pl_CRL_GetCRLEntries
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:441,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:444,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:448,1
    - Dst: PKIX_PL_CRL_GetCriticalExtensionOIDs
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:448,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:452,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:455,1
    - Dst: PKIX_PL_Sprintf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:455,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:473,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:474,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:475,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:476,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:477,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:478,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:479,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:480,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:481,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:482,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:483,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:484,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:485,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 3
    argNames:
    - crl
    - pString
    - plContext
    argTypes:
    - PKIX_PL_CRL*
    - PKIX_PL_String**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 347
    functionDepth: 3
    functionLinenumber: 347
    functionLinenumberEnd: 488
    functionName: pkix_pl_CRL_ToString_Helper
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c
    functionUses: 0
    functionsReached:
    - pkix_pl_CRL_GetSignatureAlgId
    - PKIX_PL_CRL_GetCRLNumber
    - pkix_pl_Date_ToString_Helper
    - PKIX_CHECK
    - PKIX_PL_String_Create
    - pkix_pl_CRL_GetCRLEntries
    - PKIX_PL_CRL_GetCriticalExtensionOIDs
    - PKIX_PL_Object_ToString
    - PKIX_RETURN
    - PKIX_PL_Sprintf
    - pkix_pl_CRL_GetVersion
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_DECREF
    - PKIX_TOSTRING
    - PKIX_PL_CRL_GetIssuer
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CRL_ToString_Helper(\n        PKIX_PL_CRL *crl,\n
      \       PKIX_PL_String **pString,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:503,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:504,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:506,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:506,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:511,1
    - Dst: pkix_pl_CRL_ToString_Helper
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:511,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - object
    - pString
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_String**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 494
    functionDepth: 4
    functionLinenumber: 494
    functionLinenumberEnd: 519
    functionName: pkix_pl_CRL_ToString
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - pkix_pl_CRL_ToString_Helper
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CRL_ToString(\n        PKIX_PL_Object *object,\n
      \       PKIX_PL_String **pString,\n        void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:535,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:536,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:538,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:538,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:548,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:551,1
    - Dst: pkix_hash
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:551,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:559,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - object
    - pHashcode
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 525
    functionDepth: 3
    functionLinenumber: 525
    functionLinenumberEnd: 560
    functionName: pkix_pl_CRL_Hashcode
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - pkix_hash
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CRL_Hashcode(\n        PKIX_PL_Object *object,\n
      \       PKIX_UInt32 *pHashcode,\n        void *plContext)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:578,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:579,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:582,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:582,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:602,1
    - Dst: PKIX_PL_Object_GetType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:602,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:619,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:625,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 4
    argNames:
    - firstObject
    - secondObject
    - pResult
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 566
    functionDepth: 3
    functionLinenumber: 566
    functionLinenumberEnd: 626
    functionName: pkix_pl_CRL_Equals
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c
    functionUses: 0
    functionsReached:
    - SECITEM_CompareItem
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - pkix_CheckType
    - PKIX_PL_Object_GetType
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CRL_Equals(\n        PKIX_PL_Object *firstObject,\n
      \       PKIX_PL_Object *secondObject,\n        PKIX_Boolean *pResult,\n        void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:647,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 641
    functionDepth: 1
    functionLinenumber: 641
    functionLinenumberEnd: 658
    functionName: pkix_pl_CRL_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      pkix_pl_CRL_RegisterSelf(void *plContext)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:678,1
    - Dst: PKIX_NULLCHECK_FOUR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:679,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:682,1
    - Dst: DER_DecodeTimeChoice
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:691,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:693,1
    - Dst: DER_DecodeTimeChoice
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:697,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:699,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:715,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 4
    argNames:
    - crl
    - date
    - pResult
    - plContext
    argTypes:
    - PKIX_PL_CRL*
    - PKIX_PL_Date*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 663
    functionDepth: 1
    functionLinenumber: 663
    functionLinenumberEnd: 716
    functionName: PKIX_PL_CRL_VerifyUpdateTime
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - PKIX_RETURN
    - DER_DecodeTimeChoice
    - PKIX_NULLCHECK_FOUR
    - PKIX_ENTER
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_CRL_VerifyUpdateTime(\n        PKIX_PL_CRL *crl,\n
      \       PKIX_PL_Date *date,\n        PKIX_Boolean *pResult,\n        void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:753,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:754,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:757,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:757,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:775,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:777,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:786,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:789,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 5
    argNames:
    - nssSignedCrl
    - adoptedDerCrl
    - derGenName
    - pCrl
    - plContext
    argTypes:
    - CERTSignedCrl*
    - SECItem*
    - SECItem*
    - PKIX_PL_CRL**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 743
    functionDepth: 1
    functionLinenumber: 743
    functionLinenumberEnd: 790
    functionName: pkix_pl_CRL_CreateWithSignedCRL
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c
    functionUses: 0
    functionsReached:
    - SECITEM_DupItem
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_Alloc
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_ERROR
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CRL_CreateWithSignedCRL(\n        CERTSignedCrl
      *nssSignedCrl,\n        SECItem *adoptedDerCrl,\n        SECItem *derGenName,\n
      \       PKIX_PL_CRL **pCrl,\n        void *plContext)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:807,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:808,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:811,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:816,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:818,1
    - Dst: CERT_DecodeDERCrlWithFlags
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:821,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:825,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:827,1
    - Dst: pkix_pl_CRL_CreateWithSignedCRL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:828,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:837,1
    - Dst: SEC_DestroyCrl
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:840,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:843,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 3
    argNames:
    - byteArray
    - pCrl
    - plContext
    argTypes:
    - PKIX_PL_ByteArray*
    - PKIX_PL_CRL**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 797
    functionDepth: 2
    functionLinenumber: 797
    functionLinenumberEnd: 844
    functionName: PKIX_PL_CRL_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c
    functionUses: 2
    functionsReached:
    - SECITEM_DupItem
    - CERT_DecodeDERCrlWithFlags
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_pl_CRL_CreateWithSignedCRL
    - PKIX_ENTER
    - SEC_DestroyCrl
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    - SECITEM_FreeItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_CRL_Create(\n        PKIX_PL_ByteArray *byteArray,\n
      \       PKIX_PL_CRL **pCrl,\n        void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:860,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:861,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:864,1
    - Dst: PKIX_OBJECT_LOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:869,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:876,1
    - Dst: PKIX_PL_X500Name_CreateFromCERTName
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:877,1
    - Dst: PKIX_OBJECT_UNLOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:887,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:891,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:897,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:899,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 3
    argNames:
    - crl
    - pCRLIssuer
    - plContext
    argTypes:
    - PKIX_PL_CRL*
    - PKIX_PL_X500Name**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 849
    functionDepth: 1
    functionLinenumber: 849
    functionLinenumberEnd: 900
    functionName: PKIX_PL_CRL_GetIssuer
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c
    functionUses: 5
    functionsReached:
    - PORT_Assert
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_X500Name_CreateFromCERTName
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_DECREF
    - PKIX_OBJECT_UNLOCK
    - PKIX_OBJECT_LOCK
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_CRL_GetIssuer(\n        PKIX_PL_CRL *crl,\n
      \       PKIX_PL_X500Name **pCRLIssuer,\n        void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:917,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:918,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:921,1
    - Dst: PKIX_OBJECT_LOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:926,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:933,1
    - Dst: pkix_pl_OID_GetCriticalExtensionOIDs
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:933,1
    - Dst: PKIX_OBJECT_UNLOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:940,1
    - Dst: PKIX_DUPLICATE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:945,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:950,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - crl
    - pExtensions
    - plContext
    argTypes:
    - PKIX_PL_CRL*
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 907
    functionDepth: 1
    functionLinenumber: 907
    functionLinenumberEnd: 951
    functionName: PKIX_PL_CRL_GetCriticalExtensionOIDs
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c
    functionUses: 2
    functionsReached:
    - PORT_Assert
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_pl_OID_GetCriticalExtensionOIDs
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_OBJECT_UNLOCK
    - PKIX_DUPLICATE
    - PKIX_OBJECT_LOCK
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_CRL_GetCriticalExtensionOIDs(\n        PKIX_PL_CRL
      *crl,\n        PKIX_List **pExtensions,   /* list of PKIX_PL_OID */\n        void
      *plContext)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:973,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:974,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:977,1
    - Dst: PKIX_PL_HashTable_Lookup
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:979,1
    - Dst: PKIX_EQUALS
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:987,1
    - Dst: PKIX_CRL_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:999,1
    - Dst: SECKEY_ExtractPublicKey
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:1000,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:1002,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:1005,1
    - Dst: pkix_pl_NssContext_GetWincx
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:1005,1
    - Dst: PKIX_CRL_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:1009,1
    - Dst: CERT_VerifySignedDataWithPublicKey
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:1010,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:1013,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:1014,1
    - Dst: PKIX_PL_HashTable_Add
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:1018,1
    - Dst: PKIX_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:1025,1
    - Dst: PKIX_CRL_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:1032,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:1033,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:1037,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:1038,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:1039,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:1041,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 44
    argCount: 3
    argNames:
    - crl
    - pubKey
    - plContext
    argTypes:
    - PKIX_PL_CRL*
    - PKIX_PL_PublicKey*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 956
    functionDepth: 4
    functionLinenumber: 956
    functionLinenumberEnd: 1042
    functionName: PKIX_PL_CRL_VerifySignature
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - PKIX_DEBUG
    - SECKEY_DestroyPublicKey
    - PKIX_PL_HashTable_Add
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_pl_NssContext_GetWincx
    - PKIX_CRL_DEBUG
    - PKIX_PL_HashTable_Lookup
    - PKIX_EQUALS
    - CERT_VerifySignedDataWithPublicKey
    - SECKEY_ExtractPublicKey
    - PORT_SetError
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_DECREF
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_CRL_VerifySignature(\n        PKIX_PL_CRL *crl,\n
      \       PKIX_PL_PublicKey *pubKey,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:1049,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:1053,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - crl
    - derCrl
    - plContext
    argTypes:
    - PKIX_PL_CRL*
    - SECItem**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1044
    functionDepth: 1
    functionLinenumber: 1044
    functionLinenumberEnd: 1054
    functionName: PKIX_PL_CRL_ReleaseDerCrl
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_CRL_ReleaseDerCrl(PKIX_PL_CRL *crl,\n                         SECItem
      **derCrl,\n                         void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:1061,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:1063,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c:1067,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - crl
    - derCrl
    - plContext
    argTypes:
    - PKIX_PL_CRL*
    - SECItem*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1068
      start: 1056
    functionDepth: 1
    functionLinenumber: 1056
    functionLinenumberEnd: 1068
    functionName: PKIX_PL_CRL_AdoptDerCrl
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c
    functionUses: 0
    functionsReached:
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_CRL_AdoptDerCrl(PKIX_PL_CRL *crl,\n                         SECItem
      *derCrl,\n                         void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c:48,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c:50,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c:52,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c:52,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c:59,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c:62,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c:69,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 4
    argNames:
    - oid
    - qualifiers
    - pObject
    - plContext
    argTypes:
    - PKIX_PL_OID*
    - PKIX_List*
    - PKIX_PL_CertPolicyInfo**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 72
    functionName: pkix_pl_CertPolicyInfo_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c
    functionUses: 0
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_Alloc
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CertPolicyInfo_Create(\n        PKIX_PL_OID
      *oid,\n        PKIX_List *qualifiers,\n        PKIX_PL_CertPolicyInfo **pObject,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c:85,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c:87,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c:89,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c:89,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c:94,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c:95,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 78
    functionDepth: 3
    functionLinenumber: 78
    functionLinenumberEnd: 100
    functionName: pkix_pl_CertPolicyInfo_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CertPolicyInfo_Destroy(\n        PKIX_PL_Object
      *object,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c:118,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c:120,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c:122,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c:122,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c:127,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c:129,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c:135,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c:142,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c:142,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c:146,1
    - Dst: PKIX_PL_Sprintf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c:146,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c:154,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c:155,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c:156,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 3
    argNames:
    - object
    - pString
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_String**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 106
    functionDepth: 3
    functionLinenumber: 106
    functionLinenumberEnd: 158
    functionName: pkix_pl_CertPolicyInfo_ToString
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_PL_String_Create
    - PKIX_RETURN
    - PKIX_PL_Sprintf
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_TOSTRING
    - PKIX_NULLCHECK_TWO
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CertPolicyInfo_ToString(\n        PKIX_PL_Object
      *object,\n        PKIX_PL_String **pString,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c:174,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c:176,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c:178,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c:178,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c:183,1
    - Dst: PKIX_HASHCODE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c:185,1
    - Dst: PKIX_HASHCODE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c:191,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - object
    - pHashcode
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 164
    functionDepth: 3
    functionLinenumber: 164
    functionLinenumberEnd: 202
    functionName: pkix_pl_CertPolicyInfo_Hashcode
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_HASHCODE
    - PKIX_NULLCHECK_TWO
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CertPolicyInfo_Hashcode(\n        PKIX_PL_Object
      *object,\n        PKIX_UInt32 *pHashcode,\n        void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c:221,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c:222,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c:225,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c:225,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c:242,1
    - Dst: PKIX_PL_Object_GetType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c:242,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c:257,1
    - Dst: PKIX_EQUALS
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c:259,1
    - Dst: PKIX_EQUALS
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c:273,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c:285,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 4
    argNames:
    - firstObject
    - secondObject
    - pResult
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 209
    functionDepth: 3
    functionLinenumber: 209
    functionLinenumberEnd: 286
    functionName: pkix_pl_CertPolicyInfo_Equals
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_EQUALS
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - pkix_CheckType
    - PKIX_PL_Object_GetType
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CertPolicyInfo_Equals(\n        PKIX_PL_Object
      *firstObject,\n        PKIX_PL_Object *secondObject,\n        PKIX_Boolean *pResult,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c:306,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 321
    functionName: pkix_pl_CertPolicyInfo_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      pkix_pl_CertPolicyInfo_RegisterSelf(void *plContext)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c:335,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c:337,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c:339,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - policyInfo
    - pPolicyId
    - plContext
    argTypes:
    - PKIX_PL_CertPolicyInfo*
    - PKIX_PL_OID**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 345
    functionName: PKIX_PL_CertPolicyInfo_GetPolicyId
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c
    functionUses: 7
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_CertPolicyInfo_GetPolicyId(\n        PKIX_PL_CertPolicyInfo
      *policyInfo,\n        PKIX_PL_OID **pPolicyId,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c:357,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c:359,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c:361,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - policyInfo
    - pQuals
    - plContext
    argTypes:
    - PKIX_PL_CertPolicyInfo*
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 371
    functionName: PKIX_PL_CertPolicyInfo_GetPolQualifiers
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyinfo.c
    functionUses: 6
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_CertPolicyInfo_GetPolQualifiers(\n        PKIX_PL_CertPolicyInfo
      *policyInfo,\n        PKIX_List **pQuals,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:46,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:48,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:51,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:51,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:58,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:61,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:68,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 4
    argNames:
    - issuerDomainPolicy
    - subjectDomainPolicy
    - pCertPolicyMap
    - plContext
    argTypes:
    - PKIX_PL_OID*
    - PKIX_PL_OID*
    - PKIX_PL_CertPolicyMap**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 71
    functionName: pkix_pl_CertPolicyMap_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c
    functionUses: 0
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_Alloc
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_DECREF
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CertPolicyMap_Create(\n        PKIX_PL_OID *issuerDomainPolicy,\n
      \       PKIX_PL_OID *subjectDomainPolicy,\n        PKIX_PL_CertPolicyMap **pCertPolicyMap,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:84,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:86,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:88,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:88,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:93,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:94,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 77
    functionDepth: 3
    functionLinenumber: 77
    functionLinenumberEnd: 99
    functionName: pkix_pl_CertPolicyMap_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CertPolicyMap_Destroy(\n        PKIX_PL_Object
      *object,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:117,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:119,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:121,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:121,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:126,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:132,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:139,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:139,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:143,1
    - Dst: PKIX_PL_Sprintf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:143,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:150,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:151,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:152,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 3
    argNames:
    - object
    - pString
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_String**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 105
    functionDepth: 3
    functionLinenumber: 105
    functionLinenumberEnd: 155
    functionName: pkix_pl_CertPolicyMap_ToString
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_PL_String_Create
    - PKIX_RETURN
    - PKIX_PL_Sprintf
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_TOSTRING
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CertPolicyMap_ToString(\n        PKIX_PL_Object
      *object,\n        PKIX_PL_String **pString,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:171,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:173,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:175,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:175,1
    - Dst: PKIX_HASHCODE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:180,1
    - Dst: PKIX_HASHCODE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:186,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - object
    - pHashcode
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 161
    functionDepth: 3
    functionLinenumber: 161
    functionLinenumberEnd: 197
    functionName: pkix_pl_CertPolicyMap_Hashcode
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_HASHCODE
    - pkix_CheckType
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CertPolicyMap_Hashcode(\n        PKIX_PL_Object
      *object,\n        PKIX_UInt32 *pHashcode,\n        void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:215,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:216,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:219,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:219,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:236,1
    - Dst: PKIX_PL_Object_GetType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:236,1
    - Dst: PKIX_EQUALS
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:247,1
    - Dst: PKIX_EQUALS
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:255,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:267,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 4
    argNames:
    - firstObject
    - secondObject
    - pResult
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 203
    functionDepth: 3
    functionLinenumber: 203
    functionLinenumberEnd: 268
    functionName: pkix_pl_CertPolicyMap_Equals
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_EQUALS
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - pkix_CheckType
    - PKIX_PL_Object_GetType
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CertPolicyMap_Equals(\n        PKIX_PL_Object
      *firstObject,\n        PKIX_PL_Object *secondObject,\n        PKIX_Boolean *pResult,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:283,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:285,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:287,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:287,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:293,1
    - Dst: pkix_pl_CertPolicyMap_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:293,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - object
    - pNewObject
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 274
    functionDepth: 3
    functionLinenumber: 274
    functionLinenumberEnd: 305
    functionName: pkix_pl_CertPolicyMap_Duplicate
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_pl_CertPolicyMap_Create
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CertPolicyMap_Duplicate(\n        PKIX_PL_Object
      *object,\n        PKIX_PL_Object **pNewObject,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:325,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 340
    functionName: pkix_pl_CertPolicyMap_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      pkix_pl_CertPolicyMap_RegisterSelf(void *plContext)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:354,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:357,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:359,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - policyMapping
    - pIssuerDomainPolicy
    - plContext
    argTypes:
    - PKIX_PL_CertPolicyMap*
    - PKIX_PL_OID**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 364
    functionName: PKIX_PL_CertPolicyMap_GetIssuerDomainPolicy
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c
    functionUses: 4
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_CertPolicyMap_GetIssuerDomainPolicy(\n        PKIX_PL_CertPolicyMap
      *policyMapping,\n        PKIX_PL_OID **pIssuerDomainPolicy,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:376,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:379,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:381,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - policyMapping
    - pSubjectDomainPolicy
    - plContext
    argTypes:
    - PKIX_PL_CertPolicyMap*
    - PKIX_PL_OID**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 386
    functionName: PKIX_PL_CertPolicyMap_GetSubjectDomainPolicy
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicymap.c
    functionUses: 3
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_CertPolicyMap_GetSubjectDomainPolicy(\n        PKIX_PL_CertPolicyMap
      *policyMapping,\n        PKIX_PL_OID **pSubjectDomainPolicy,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:59,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:60,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:63,1
    - Dst: PKIX_CERT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:65,1
    - Dst: CERT_GetExtenCriticality
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:66,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - cert
    - tag
    - pCritical
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_UInt32
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 74
    functionName: pkix_pl_Cert_IsExtensionCritical
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
    functionUses: 0
    functionsReached:
    - PKIX_RETURN
    - PKIX_CERT_DEBUG
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - CERT_GetExtenCriticality
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_Cert_IsExtensionCritical(\n        PKIX_PL_Cert
      *cert,\n        PKIX_UInt32 tag,\n        PKIX_Boolean *pCritical,\n        void
      *plContext)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:126,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:127,1
    - Dst: PKIX_CERT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:130,1
    - Dst: CERT_FindCertExtension
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:131,1
    - Dst: PKIX_CERT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:141,1
    - Dst: CERT_DecodeCertificatePoliciesExtension
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:142,1
    - Dst: PORT_Free
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:145,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:148,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:162,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:162,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:175,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:175,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:183,1
    - Dst: PKIX_PL_OID_CreateBySECItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:183,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:190,1
    - Dst: PKIX_PL_ByteArray_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:190,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:199,1
    - Dst: pkix_pl_CertPolicyQualifier_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:199,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:206,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:206,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:212,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:213,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:214,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:219,1
    - Dst: PKIX_List_SetImmutable
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:219,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:230,1
    - Dst: PKIX_PL_OID_CreateBySECItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:230,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:235,1
    - Dst: pkix_pl_CertPolicyInfo_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:235,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:240,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:240,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:244,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:245,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:246,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:255,1
    - Dst: PKIX_List_SetImmutable
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:255,1
    - Dst: PKIX_CERT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:263,1
    - Dst: CERT_DestroyCertificatePoliciesExtension
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:265,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:268,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:269,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:270,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:271,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:272,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:273,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:275,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 62
    argCount: 3
    argNames:
    - nssCert
    - pCertPolicyInfos
    - plContext
    argTypes:
    - CERTCertificate*
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 103
    functionDepth: 3
    functionLinenumber: 103
    functionLinenumberEnd: 276
    functionName: pkix_pl_Cert_DecodePolicyInfo
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
    functionUses: 0
    functionsReached:
    - CERT_FindCertExtension
    - PKIX_List_SetImmutable
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_Create
    - PKIX_CERT_DEBUG
    - CERT_DecodeCertificatePoliciesExtension
    - PORT_Free
    - PKIX_PL_ByteArray_Create
    - PKIX_List_AppendItem
    - PKIX_ENTER
    - pkix_pl_CertPolicyQualifier_Create
    - PKIX_DECREF
    - pkix_pl_CertPolicyInfo_Create
    - PKIX_PL_OID_CreateBySECItem
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    - CERT_DestroyCertificatePoliciesExtension
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_Cert_DecodePolicyInfo(\n        CERTCertificate
      *nssCert,\n        PKIX_List **pCertPolicyInfos,\n        void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:324,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:325,1
    - Dst: PKIX_CERT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:328,1
    - Dst: CERT_FindCertExtension
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:329,1
    - Dst: CERT_DecodePolicyMappingsExtension
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:337,1
    - Dst: PORT_Free
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:340,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:343,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:346,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:351,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:351,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:362,1
    - Dst: PKIX_PL_OID_CreateBySECItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:362,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:368,1
    - Dst: PKIX_PL_OID_CreateBySECItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:368,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:375,1
    - Dst: pkix_pl_CertPolicyMap_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:375,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:382,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:382,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:386,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:387,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:388,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:393,1
    - Dst: PKIX_List_SetImmutable
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:393,1
    - Dst: PKIX_CERT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:401,1
    - Dst: CERT_DestroyPolicyMappingsExtension
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:403,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:406,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:407,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:408,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:409,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:411,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 42
    argCount: 3
    argNames:
    - nssCert
    - pCertPolicyMaps
    - plContext
    argTypes:
    - CERTCertificate*
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 304
    functionDepth: 3
    functionLinenumber: 304
    functionLinenumberEnd: 412
    functionName: pkix_pl_Cert_DecodePolicyMapping
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
    functionUses: 0
    functionsReached:
    - CERT_FindCertExtension
    - PKIX_List_SetImmutable
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_Create
    - PKIX_CERT_DEBUG
    - PORT_Free
    - pkix_pl_CertPolicyMap_Create
    - CERT_DestroyPolicyMappingsExtension
    - CERT_DecodePolicyMappingsExtension
    - PKIX_ENTER
    - PKIX_List_AppendItem
    - PKIX_DECREF
    - PKIX_PL_OID_CreateBySECItem
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_Cert_DecodePolicyMapping(\n        CERTCertificate
      *nssCert,\n        PKIX_List **pCertPolicyMaps,\n        void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:458,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:459,1
    - Dst: PKIX_CERT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:463,1
    - Dst: CERT_FindCertExtension
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:464,1
    - Dst: CERT_DecodePolicyConstraintsExtension
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:477,1
    - Dst: PORT_Free
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:480,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:483,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:492,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 4
    argNames:
    - nssCert
    - pExplicitPolicySkipCerts
    - pInhibitMappingSkipCerts
    - plContext
    argTypes:
    - CERTCertificate*
    - PKIX_Int32*
    - PKIX_Int32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 493
    functionName: pkix_pl_Cert_DecodePolicyConstraints
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
    functionUses: 0
    functionsReached:
    - CERT_FindCertExtension
    - PKIX_RETURN
    - PKIX_CERT_DEBUG
    - PORT_Free
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - CERT_DecodePolicyConstraintsExtension
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_Cert_DecodePolicyConstraints(\n        CERTCertificate
      *nssCert,\n        PKIX_Int32 *pExplicitPolicySkipCerts,\n        PKIX_Int32
      *pInhibitMappingSkipCerts,\n        void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:531,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:532,1
    - Dst: PKIX_CERT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:535,1
    - Dst: CERT_FindCertExtension
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:536,1
    - Dst: CERT_DecodeInhibitAnyExtension
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:544,1
    - Dst: PORT_Free
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:547,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:550,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:557,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - nssCert
    - pSkipCerts
    - plContext
    argTypes:
    - CERTCertificate*
    - PKIX_Int32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 558
    functionName: pkix_pl_Cert_DecodeInhibitAnyPolicy
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
    functionUses: 0
    functionsReached:
    - CERT_FindCertExtension
    - PKIX_RETURN
    - PKIX_CERT_DEBUG
    - PORT_Free
    - PKIX_ENTER
    - CERT_DecodeInhibitAnyExtension
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_Cert_DecodeInhibitAnyPolicy(\n        CERTCertificate
      *nssCert,\n        PKIX_Int32 *pSkipCerts,\n        void *plContext)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:603,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:604,1
    - Dst: PKIX_OBJECT_LOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:611,1
    - Dst: PKIX_PL_NSSCALLRV
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:617,1
    - Dst: PKIX_PL_NSSCALLRV
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:629,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:633,1
    - Dst: PKIX_PL_NSSCALLRV
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:638,1
    - Dst: PKIX_PL_NSSCALL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:644,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:647,1
    - Dst: PKIX_OBJECT_UNLOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:654,1
    - Dst: PKIX_OBJECT_UNLOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:661,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:662,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 4
    argNames:
    - cert
    - hasLock
    - pNssSubjAltNames
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_Boolean
    - CERTGeneralName**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 590
    functionDepth: 1
    functionLinenumber: 590
    functionLinenumberEnd: 663
    functionName: pkix_pl_Cert_GetNssSubjectAltNames
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
    functionUses: 0
    functionsReached:
    - PKIX_RETURN
    - PKIX_PL_NSSCALLRV
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_OBJECT_UNLOCK
    - PKIX_PL_NSSCALL
    - PKIX_ERROR
    - PKIX_OBJECT_LOCK
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_Cert_GetNssSubjectAltNames(\n        PKIX_PL_Cert
      *cert,\n        PKIX_Boolean hasLock,\n        CERTGeneralName **pNssSubjAltNames,\n
      \       void *plContext)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:708,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:709,1
    - Dst: PKIX_CERT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:713,1
    - Dst: cert_GetCertType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:714,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:717,1
    - Dst: PKIX_PL_Cert_GetBasicConstraints
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:717,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:724,1
    - Dst: PKIX_PL_BasicConstraints_GetCAFlag
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:724,1
    - Dst: PKIX_PL_NSSCALLRV
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:744,1
    - Dst: PKIX_PL_NSSCALLRV
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:754,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:766,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:767,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 4
    argNames:
    - cert
    - requiredExtendedKeyUsages
    - pPass
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_UInt32
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 692
    functionDepth: 2
    functionLinenumber: 692
    functionLinenumberEnd: 768
    functionName: pkix_pl_Cert_CheckExtendedKeyUsage
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
    functionUses: 0
    functionsReached:
    - PKIX_PL_BasicConstraints_GetCAFlag
    - PKIX_CHECK
    - cert_GetCertType
    - PKIX_RETURN
    - PKIX_CERT_DEBUG
    - PKIX_PL_Cert_GetBasicConstraints
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_PL_NSSCALLRV
    - PKIX_DECREF
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_Cert_CheckExtendedKeyUsage(\n        PKIX_PL_Cert
      *cert,\n        PKIX_UInt32 requiredExtendedKeyUsages,\n        PKIX_Boolean
      *pPass,\n        void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:843,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:844,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:884,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:884,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:889,1
    - Dst: PKIX_PL_Cert_GetIssuer
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:889,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:893,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:893,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:898,1
    - Dst: PKIX_PL_Cert_GetSubject
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:898,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:901,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:905,1
    - Dst: PKIX_PL_Sprintf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:905,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:918,1
    - Dst: PKIX_PL_Cert_GetVersion
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:918,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:922,1
    - Dst: PKIX_PL_Cert_GetSerialNumber
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:922,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:925,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:925,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:930,1
    - Dst: pkix_pl_Date_ToString_Helper
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:930,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:937,1
    - Dst: pkix_pl_Date_ToString_Helper
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:937,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:944,1
    - Dst: PKIX_PL_Cert_GetSubjectAltNames
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:944,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:948,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:952,1
    - Dst: PKIX_PL_Cert_GetAuthorityKeyIdentifier
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:952,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:956,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:960,1
    - Dst: PKIX_PL_Cert_GetSubjectKeyIdentifier
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:960,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:964,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:968,1
    - Dst: PKIX_PL_Cert_GetSubjectPublicKey
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:968,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:972,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:972,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:977,1
    - Dst: PKIX_PL_Cert_GetCriticalExtensionOIDs
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:977,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:981,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:985,1
    - Dst: PKIX_PL_Cert_GetExtendedKeyUsage
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:985,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:989,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:993,1
    - Dst: PKIX_PL_Cert_GetBasicConstraints
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:993,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:997,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1001,1
    - Dst: PKIX_PL_Cert_GetPolicyInformation
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1001,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1005,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1009,1
    - Dst: PKIX_PL_Cert_GetPolicyMappings
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1009,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1013,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1016,1
    - Dst: PKIX_PL_Cert_GetRequireExplicitPolicy
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1016,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1020,1
    - Dst: PKIX_PL_Cert_GetPolicyMappingInhibited
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1020,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1024,1
    - Dst: PKIX_PL_Cert_GetInhibitAnyPolicy
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1024,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1029,1
    - Dst: PKIX_PL_Cert_GetNameConstraints
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1029,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1033,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1037,1
    - Dst: PKIX_PL_Cert_GetAuthorityInfoAccess
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1037,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1041,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1045,1
    - Dst: PKIX_PL_Cert_GetSubjectInfoAccess
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1045,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1049,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1052,1
    - Dst: PKIX_PL_Sprintf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1052,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1083,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1084,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1085,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1086,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1087,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1088,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1089,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1090,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1091,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1092,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1093,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1094,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1095,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1096,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1097,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1098,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1099,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1100,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1101,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1102,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1103,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1104,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1105,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1106,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1107,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1108,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1109,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1110,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1111,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1112,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1113,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1114,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1115,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1117,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 89
    argCount: 4
    argNames:
    - cert
    - partialString
    - pString
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_Boolean
    - PKIX_PL_String**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1118
      start: 796
    functionDepth: 1
    functionLinenumber: 796
    functionLinenumberEnd: 1118
    functionName: pkix_pl_Cert_ToString_Helper
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
    functionUses: 1
    functionsReached:
    - pkix_pl_Date_ToString_Helper
    - PKIX_RETURN
    - PKIX_PL_Cert_GetVersion
    - PKIX_PL_Sprintf
    - PKIX_DECREF
    - PKIX_PL_Cert_GetAuthorityInfoAccess
    - PKIX_PL_Object_ToString
    - PKIX_PL_Cert_GetSubjectAltNames
    - PKIX_PL_Cert_GetPolicyMappings
    - PKIX_PL_Cert_GetRequireExplicitPolicy
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_PL_Cert_GetNameConstraints
    - PKIX_PL_Cert_GetSubjectKeyIdentifier
    - PKIX_PL_Cert_GetCriticalExtensionOIDs
    - PKIX_PL_Cert_GetIssuer
    - PKIX_PL_Cert_GetSubject
    - PKIX_PL_Cert_GetPolicyInformation
    - PKIX_PL_Cert_GetSubjectPublicKey
    - PKIX_PL_Cert_GetInhibitAnyPolicy
    - PKIX_PL_Cert_GetPolicyMappingInhibited
    - PKIX_CHECK
    - PKIX_PL_String_Create
    - PKIX_PL_Cert_GetSerialNumber
    - PKIX_PL_Cert_GetBasicConstraints
    - PKIX_TOSTRING
    - PKIX_PL_Cert_GetSubjectInfoAccess
    - PKIX_PL_Cert_GetExtendedKeyUsage
    - PKIX_PL_Cert_GetAuthorityKeyIdentifier
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_Cert_ToString_Helper(\n        PKIX_PL_Cert
      *cert,\n        PKIX_Boolean partialString,\n        PKIX_PL_String **pString,\n
      \       void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1131,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1132,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1134,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1134,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1139,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1140,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1141,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1142,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1143,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1144,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1145,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1146,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1147,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1148,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1149,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1150,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1151,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1152,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1153,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1154,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1155,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1156,1
    - Dst: PKIX_PL_NSSCALL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1160,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1167,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 33
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1172
      start: 1124
    functionDepth: 3
    functionLinenumber: 1124
    functionLinenumberEnd: 1172
    functionName: pkix_pl_Cert_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - CERT_DestroyCertificate
    - PKIX_PL_NSSCALL
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_Cert_Destroy(\n        PKIX_PL_Object *object,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1187,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1188,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1190,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1190,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1195,1
    - Dst: pkix_pl_Cert_ToString_Helper
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1195,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - object
    - pString
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_String**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1203
      start: 1178
    functionDepth: 3
    functionLinenumber: 1178
    functionLinenumberEnd: 1203
    functionName: pkix_pl_Cert_ToString
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_pl_Cert_ToString_Helper
    - pkix_CheckType
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_Cert_ToString(\n        PKIX_PL_Object *object,\n
      \       PKIX_PL_String **pString,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1221,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1222,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1224,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1224,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1233,1
    - Dst: pkix_hash
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1233,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - object
    - pHashcode
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1240
      start: 1209
    functionDepth: 3
    functionLinenumber: 1209
    functionLinenumberEnd: 1240
    functionName: pkix_pl_Cert_Hashcode
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - pkix_hash
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_Cert_Hashcode(\n        PKIX_PL_Object *object,\n
      \       PKIX_UInt32 *pHashcode,\n        void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1259,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1260,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1263,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1263,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1280,1
    - Dst: PKIX_PL_Object_GetType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1280,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1288,1
    - Dst: PKIX_CERT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1291,1
    - Dst: CERT_CompareCerts
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1292,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1297,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 4
    argNames:
    - firstObject
    - secondObject
    - pResult
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1298
      start: 1247
    functionDepth: 3
    functionLinenumber: 1247
    functionLinenumberEnd: 1298
    functionName: pkix_pl_Cert_Equals
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_CERT_DEBUG
    - CERT_CompareCerts
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - pkix_CheckType
    - PKIX_PL_Object_GetType
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_Cert_Equals(\n        PKIX_PL_Object *firstObject,\n
      \       PKIX_PL_Object *secondObject,\n        PKIX_Boolean *pResult,\n        void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1318,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1333
      start: 1311
    functionDepth: 1
    functionLinenumber: 1311
    functionLinenumberEnd: 1333
    functionName: pkix_pl_Cert_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      pkix_pl_Cert_RegisterSelf(void *plContext)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1368,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1369,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1372,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1372,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 3
    argNames:
    - nssCert
    - pCert
    - plContext
    argTypes:
    - CERTCertificate*
    - PKIX_PL_Cert**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1433
      start: 1360
    functionDepth: 1
    functionLinenumber: 1360
    functionLinenumberEnd: 1433
    functionName: pkix_pl_Cert_CreateWithNSSCert
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
    functionUses: 1
    functionsReached:
    - PKIX_RETURN
    - PKIX_CHECK
    - PKIX_PL_Object_Alloc
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_Cert_CreateWithNSSCert(\n        CERTCertificate
      *nssCert,\n        PKIX_PL_Cert **pCert,\n        void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1470,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1471,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1473,1
    - Dst: CERT_NewTempCertificate
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1474,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1482,1
    - Dst: pkix_pl_Cert_CreateWithNSSCert
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1482,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1488,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1488,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1494,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1497,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1498,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - derCertItem
    - certList
    - plContext
    argTypes:
    - SECItem*
    - PKIX_List*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1499
      start: 1460
    functionDepth: 3
    functionLinenumber: 1460
    functionLinenumberEnd: 1499
    functionName: pkix_pl_Cert_CreateToList
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - CERT_NewTempCertificate
    - PKIX_List_AppendItem
    - PKIX_ENTER
    - CERT_GetDefaultCertDB
    - PKIX_DECREF
    - CERT_DestroyCertificate
    - PKIX_NULLCHECK_TWO
    - pkix_pl_Cert_CreateWithNSSCert
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_Cert_CreateToList(\n        SECItem *derCertItem,\n
      \       PKIX_List *certList,\n        void *plContext)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1521,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1522,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1524,1
    - Dst: PKIX_PL_ByteArray_GetPointer
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1524,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1528,1
    - Dst: PKIX_PL_ByteArray_GetLength
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1528,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1532,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1534,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1537,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1544,1
    - Dst: CERT_NewTempCertificate
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1545,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1550,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1553,1
    - Dst: pkix_pl_Cert_CreateWithNSSCert
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1553,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1561,1
    - Dst: PKIX_CERT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1565,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1566,1
    - Dst: PKIX_FREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1570,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1571,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 3
    argNames:
    - byteArray
    - pCert
    - plContext
    argTypes:
    - PKIX_PL_ByteArray*
    - PKIX_PL_Cert**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1572
      start: 1508
    functionDepth: 2
    functionLinenumber: 1508
    functionLinenumberEnd: 1572
    functionName: PKIX_PL_Cert_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
    functionUses: 5
    functionsReached:
    - PKIX_FREE
    - PKIX_PL_ByteArray_GetLength
    - PKIX_CHECK
    - PORT_Memcpy
    - CERT_NewTempCertificate
    - PKIX_RETURN
    - PKIX_CERT_DEBUG
    - pkix_pl_Cert_CreateWithNSSCert
    - SECITEM_AllocItem
    - PKIX_ENTER
    - CERT_GetDefaultCertDB
    - PKIX_PL_ByteArray_GetPointer
    - CERT_DestroyCertificate
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    - SECITEM_FreeItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Cert_Create(\n        PKIX_PL_ByteArray *byteArray,\n
      \       PKIX_PL_Cert **pCert,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1589,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1590,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1595,1
    - Dst: PKIX_PL_ByteArray_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1596,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1599,1
    - Dst: PKIX_PL_Cert_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1600,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1605,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1607,1
    - Dst: pkix_pl_Cert_CreateWithNSSCert
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1607,1
    - Dst: PKIX_CERT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1616,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1617,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1622,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1623,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - nssCert
    - pCert
    - plContext
    argTypes:
    - CERTCertificate*
    - PKIX_PL_Cert**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1624
      start: 1579
    functionDepth: 3
    functionLinenumber: 1579
    functionLinenumberEnd: 1624
    functionName: PKIX_PL_Cert_CreateFromCERTCertificate
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_CERT_DEBUG
    - PKIX_PL_Cert_Create
    - PKIX_PL_ByteArray_Create
    - PKIX_ENTER
    - PKIX_DECREF
    - CERT_DupCertificate
    - CERT_DestroyCertificate
    - PKIX_NULLCHECK_TWO
    - pkix_pl_Cert_CreateWithNSSCert
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Cert_CreateFromCERTCertificate(\n        const
      CERTCertificate *nssCert,\n        PKIX_PL_Cert **pCert,\n        void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1639,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1640,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1648,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1654,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - cert
    - pVersion
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1655
      start: 1630
    functionDepth: 1
    functionLinenumber: 1630
    functionLinenumberEnd: 1655
    functionName: PKIX_PL_Cert_GetVersion
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
    functionUses: 3
    functionsReached:
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Cert_GetVersion(\n        PKIX_PL_Cert *cert,\n
      \       PKIX_UInt32 *pVersion,\n        void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1672,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1673,1
    - Dst: PKIX_OBJECT_LOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1677,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1687,1
    - Dst: pkix_pl_BigInt_CreateWithBytes
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1687,1
    - Dst: PKIX_OBJECT_UNLOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1695,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1698,1
    - Dst: PKIX_OBJECT_UNLOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1702,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1703,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 3
    argNames:
    - cert
    - pSerialNumber
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_PL_BigInt**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1704
      start: 1660
    functionDepth: 1
    functionLinenumber: 1660
    functionLinenumberEnd: 1704
    functionName: PKIX_PL_Cert_GetSerialNumber
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
    functionUses: 3
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_pl_BigInt_CreateWithBytes
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_OBJECT_UNLOCK
    - PKIX_OBJECT_LOCK
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Cert_GetSerialNumber(\n        PKIX_PL_Cert
      *cert,\n        PKIX_PL_BigInt **pSerialNumber,\n        void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1719,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1720,1
    - Dst: PKIX_OBJECT_LOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1725,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1738,1
    - Dst: PKIX_PL_X500Name_CreateFromCERTName
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1738,1
    - Dst: PKIX_OBJECT_UNLOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1748,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1751,1
    - Dst: PKIX_OBJECT_UNLOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1755,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1756,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 3
    argNames:
    - cert
    - pCertSubject
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_PL_X500Name**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1757
      start: 1709
    functionDepth: 1
    functionLinenumber: 1709
    functionLinenumberEnd: 1757
    functionName: PKIX_PL_Cert_GetSubject
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
    functionUses: 17
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_X500Name_CreateFromCERTName
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_OBJECT_UNLOCK
    - PKIX_OBJECT_LOCK
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Cert_GetSubject(\n        PKIX_PL_Cert *cert,\n
      \       PKIX_PL_X500Name **pCertSubject,\n        void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1772,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1773,1
    - Dst: PKIX_OBJECT_LOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1778,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1786,1
    - Dst: PKIX_PL_X500Name_CreateFromCERTName
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1786,1
    - Dst: PKIX_OBJECT_UNLOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1795,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1798,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1802,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - cert
    - pCertIssuer
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_PL_X500Name**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1803
      start: 1762
    functionDepth: 1
    functionLinenumber: 1762
    functionLinenumberEnd: 1803
    functionName: PKIX_PL_Cert_GetIssuer
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
    functionUses: 9
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_X500Name_CreateFromCERTName
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_OBJECT_UNLOCK
    - PKIX_OBJECT_LOCK
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Cert_GetIssuer(\n        PKIX_PL_Cert *cert,\n
      \       PKIX_PL_X500Name **pCertIssuer,\n        void *plContext)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1820,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1821,1
    - Dst: PKIX_OBJECT_LOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1826,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1831,1
    - Dst: pkix_pl_Cert_GetNssSubjectAltNames
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1831,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1846,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1846,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1850,1
    - Dst: pkix_pl_GeneralName_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1850,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1854,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1854,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1860,1
    - Dst: PKIX_CERT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1862,1
    - Dst: CERT_GetNextGeneralName
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1864,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1871,1
    - Dst: PKIX_List_SetImmutable
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1871,1
    - Dst: PKIX_OBJECT_UNLOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1877,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1880,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1885,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1887,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1889,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 3
    argNames:
    - cert
    - pSubjectAltNames
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1890
      start: 1808
    functionDepth: 3
    functionLinenumber: 1808
    functionLinenumberEnd: 1890
    functionName: PKIX_PL_Cert_GetSubjectAltNames
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
    functionUses: 6
    functionsReached:
    - PKIX_INCREF
    - pkix_pl_Cert_GetNssSubjectAltNames
    - PKIX_List_SetImmutable
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_Create
    - CERT_GetNextGeneralName
    - PKIX_CERT_DEBUG
    - PKIX_List_AppendItem
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_OBJECT_UNLOCK
    - PKIX_NULLCHECK_TWO
    - pkix_pl_GeneralName_Create
    - PKIX_OBJECT_LOCK
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Cert_GetSubjectAltNames(\n        PKIX_PL_Cert
      *cert,\n        PKIX_List **pSubjectAltNames,  /* list of PKIX_PL_GeneralName
      */\n        void *plContext)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1907,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1908,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1914,1
    - Dst: pkix_pl_Cert_GetNssSubjectAltNames
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1914,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1923,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1925,1
    - Dst: PKIX_CERT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1929,1
    - Dst: CERT_GetCertificateNames
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1931,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1941,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1941,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1945,1
    - Dst: pkix_pl_GeneralName_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1945,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1949,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1949,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1955,1
    - Dst: PKIX_CERT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1957,1
    - Dst: CERT_GetNextGeneralName
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1959,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1967,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1971,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1973,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1974,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 3
    argNames:
    - cert
    - pAllSubjectNames
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1975
      start: 1895
    functionDepth: 3
    functionLinenumber: 1895
    functionLinenumberEnd: 1975
    functionName: PKIX_PL_Cert_GetAllSubjectNames
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
    functionUses: 2
    functionsReached:
    - pkix_pl_Cert_GetNssSubjectAltNames
    - PORT_NewArena
    - PKIX_CHECK
    - PKIX_List_Create
    - CERT_GetNextGeneralName
    - PKIX_CERT_DEBUG
    - PORT_FreeArena
    - CERT_GetCertificateNames
    - PKIX_RETURN
    - PKIX_List_AppendItem
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_DECREF
    - PKIX_ERROR
    - pkix_pl_GeneralName_Create
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Cert_GetAllSubjectNames(\n        PKIX_PL_Cert
      *cert,\n        PKIX_List **pAllSubjectNames,  /* list of PKIX_PL_GeneralName
      */\n        void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1989,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1990,1
    - Dst: PKIX_OBJECT_LOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:1994,1
    - Dst: PKIX_ERROR_FATAL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2003,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2005,1
    - Dst: PKIX_PL_OID_CreateBySECItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2005,1
    - Dst: PKIX_OBJECT_UNLOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2013,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2016,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2020,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2021,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - cert
    - pSubjKeyAlgId
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_PL_OID**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2022
      start: 1981
    functionDepth: 1
    functionLinenumber: 1981
    functionLinenumberEnd: 2022
    functionName: PKIX_PL_Cert_GetSubjectPublicKeyAlgId
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
    functionUses: 3
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_DECREF
    - PKIX_OBJECT_UNLOCK
    - PKIX_PL_OID_CreateBySECItem
    - PKIX_ERROR_FATAL
    - PKIX_OBJECT_LOCK
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Cert_GetSubjectPublicKeyAlgId(\n        PKIX_PL_Cert
      *cert,\n        PKIX_PL_OID **pSubjKeyAlgId,\n        void *plContext)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2041,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2042,1
    - Dst: PKIX_OBJECT_LOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2047,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2052,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2052,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2063,1
    - Dst: PKIX_PL_Malloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2063,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2072,1
    - Dst: PKIX_CERT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2074,1
    - Dst: SECOID_CopyAlgorithmID
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2076,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2079,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2093,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2098,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2100,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2103,1
    - Dst: PKIX_OBJECT_UNLOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2112,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2115,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2121,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2124,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 40
    argCount: 3
    argNames:
    - cert
    - pPublicKey
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_PL_PublicKey**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2125
      start: 2027
    functionDepth: 1
    functionLinenumber: 2027
    functionLinenumberEnd: 2125
    functionName: PKIX_PL_Cert_GetSubjectPublicKey
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
    functionUses: 20
    functionsReached:
    - PKIX_INCREF
    - PORT_Memcpy
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_CERT_DEBUG
    - PORT_ZAlloc
    - SECOID_CopyAlgorithmID
    - PKIX_PL_Object_Alloc
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_DECREF
    - PKIX_OBJECT_UNLOCK
    - PKIX_PL_Malloc
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    - PKIX_OBJECT_LOCK
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Cert_GetSubjectPublicKey(\n        PKIX_PL_Cert
      *cert,\n        PKIX_PL_PublicKey **pPublicKey,\n        void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2141,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2142,1
    - Dst: PKIX_OBJECT_LOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2147,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2165,1
    - Dst: pkix_pl_OID_GetCriticalExtensionOIDs
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2165,1
    - Dst: PKIX_OBJECT_UNLOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2173,1
    - Dst: PKIX_DUPLICATE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2177,1
    - Dst: PKIX_OBJECT_UNLOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2181,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2182,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - cert
    - pList
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2183
      start: 2131
    functionDepth: 1
    functionLinenumber: 2131
    functionLinenumberEnd: 2183
    functionName: PKIX_PL_Cert_GetCriticalExtensionOIDs
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
    functionUses: 5
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_pl_OID_GetCriticalExtensionOIDs
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_OBJECT_UNLOCK
    - PKIX_DUPLICATE
    - PKIX_OBJECT_LOCK
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Cert_GetCriticalExtensionOIDs(\n        PKIX_PL_Cert
      *cert,\n        PKIX_List **pList,  /* list of PKIX_PL_OID */\n        void
      *plContext)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2201,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2202,1
    - Dst: PKIX_OBJECT_LOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2207,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2211,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2213,1
    - Dst: CERT_FindAuthKeyIDExten
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2219,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2234,1
    - Dst: PKIX_PL_ByteArray_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2234,1
    - Dst: PKIX_OBJECT_UNLOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2245,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2248,1
    - Dst: PKIX_OBJECT_UNLOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2252,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2254,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2256,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 3
    argNames:
    - cert
    - pAuthKeyId
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_PL_ByteArray**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2257
      start: 2189
    functionDepth: 1
    functionLinenumber: 2189
    functionLinenumberEnd: 2257
    functionName: PKIX_PL_Cert_GetAuthorityKeyIdentifier
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
    functionUses: 6
    functionsReached:
    - PKIX_INCREF
    - PORT_NewArena
    - PKIX_CHECK
    - PKIX_RETURN
    - PORT_FreeArena
    - PKIX_PL_ByteArray_Create
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_OBJECT_UNLOCK
    - CERT_FindAuthKeyIDExten
    - PKIX_ERROR
    - PKIX_OBJECT_LOCK
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Cert_GetAuthorityKeyIdentifier(\n        PKIX_PL_Cert
      *cert,\n        PKIX_PL_ByteArray **pAuthKeyId,\n        void *plContext)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2274,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2275,1
    - Dst: PKIX_OBJECT_LOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2280,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2284,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2286,1
    - Dst: CERT_FindSubjectKeyIDExtension
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2291,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2299,1
    - Dst: PKIX_PL_ByteArray_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2299,1
    - Dst: PKIX_OBJECT_UNLOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2310,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2313,1
    - Dst: PKIX_OBJECT_UNLOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2317,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2319,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2321,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 3
    argNames:
    - cert
    - pSubjKeyId
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_PL_ByteArray**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2322
      start: 2263
    functionDepth: 1
    functionLinenumber: 2263
    functionLinenumberEnd: 2322
    functionName: PKIX_PL_Cert_GetSubjectKeyIdentifier
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
    functionUses: 5
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - CERT_FindSubjectKeyIDExtension
    - SECITEM_AllocItem
    - PKIX_PL_ByteArray_Create
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_OBJECT_UNLOCK
    - PKIX_ERROR
    - SECITEM_FreeItem
    - PKIX_OBJECT_LOCK
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Cert_GetSubjectKeyIdentifier(\n        PKIX_PL_Cert
      *cert,\n        PKIX_PL_ByteArray **pSubjKeyId,\n        void *plContext)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2341,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2342,1
    - Dst: PKIX_OBJECT_LOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2347,1
    - Dst: CERT_FindCertExtension
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2354,1
    - Dst: CERT_DecodeOidSequence
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2364,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2366,1
    - Dst: PORT_Free
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2369,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2380,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2380,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2386,1
    - Dst: PKIX_PL_OID_CreateBySECItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2386,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2390,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2390,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2395,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2398,1
    - Dst: PKIX_List_SetImmutable
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2398,1
    - Dst: PKIX_OBJECT_UNLOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2407,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2410,1
    - Dst: PKIX_OBJECT_UNLOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2414,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2416,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2417,1
    - Dst: CERT_DestroyOidSequence
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2418,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2420,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 47
    argCount: 3
    argNames:
    - cert
    - pKeyUsage
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2421
      start: 2327
    functionDepth: 3
    functionLinenumber: 2327
    functionLinenumberEnd: 2421
    functionName: PKIX_PL_Cert_GetExtendedKeyUsage
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
    functionUses: 6
    functionsReached:
    - CERT_DecodeOidSequence
    - CERT_FindCertExtension
    - PKIX_List_SetImmutable
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_Create
    - CERT_DestroyOidSequence
    - PORT_Free
    - PKIX_List_AppendItem
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_DECREF
    - PKIX_OBJECT_UNLOCK
    - PKIX_PL_OID_CreateBySECItem
    - PKIX_ERROR
    - PKIX_OBJECT_LOCK
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Cert_GetExtendedKeyUsage(\n        PKIX_PL_Cert
      *cert,\n        PKIX_List **pKeyUsage,  /* list of PKIX_PL_OID */\n        void
      *plContext)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2443,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2444,1
    - Dst: PKIX_OBJECT_LOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2450,1
    - Dst: PKIX_CERT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2457,1
    - Dst: CERT_FindBasicConstraintExten
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2459,1
    - Dst: CERT_GetCertTrust
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2470,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2506,1
    - Dst: pkix_pl_CertBasicConstraints_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2506,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2514,1
    - Dst: PKIX_OBJECT_UNLOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2518,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2519,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 49
    argCount: 3
    argNames:
    - cert
    - pBasicConstraints
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_PL_CertBasicConstraints**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2520
      start: 2427
    functionDepth: 2
    functionLinenumber: 2427
    functionLinenumberEnd: 2520
    functionName: PKIX_PL_Cert_GetBasicConstraints
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
    functionUses: 6
    functionsReached:
    - PKIX_INCREF
    - CERT_FindBasicConstraintExten
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_CERT_DEBUG
    - pkix_pl_CertBasicConstraints_Create
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_OBJECT_UNLOCK
    - CERT_GetCertTrust
    - PKIX_OBJECT_LOCK
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Cert_GetBasicConstraints(\n        PKIX_PL_Cert
      *cert,\n        PKIX_PL_CertBasicConstraints **pBasicConstraints,\n        void
      *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2534,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2535,1
    - Dst: PKIX_OBJECT_LOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2541,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2546,1
    - Dst: pkix_pl_Cert_DecodePolicyInfo
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2546,1
    - Dst: PKIX_OBJECT_UNLOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2557,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2564,1
    - Dst: PKIX_OBJECT_UNLOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2568,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2570,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2571,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - cert
    - pPolicyInfo
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2572
      start: 2526
    functionDepth: 4
    functionLinenumber: 2526
    functionLinenumberEnd: 2572
    functionName: PKIX_PL_Cert_GetPolicyInformation
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
    functionUses: 13
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_DECREF
    - PKIX_OBJECT_UNLOCK
    - pkix_pl_Cert_DecodePolicyInfo
    - PKIX_OBJECT_LOCK
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Cert_GetPolicyInformation(\n        PKIX_PL_Cert
      *cert,\n        PKIX_List **pPolicyInfo,\n        void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2585,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2586,1
    - Dst: PKIX_OBJECT_LOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2591,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2596,1
    - Dst: pkix_pl_Cert_DecodePolicyMapping
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2596,1
    - Dst: PKIX_OBJECT_UNLOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2607,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2614,1
    - Dst: PKIX_OBJECT_UNLOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2618,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2620,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2621,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - cert
    - pPolicyMappings
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2622
      start: 2577
    functionDepth: 4
    functionLinenumber: 2577
    functionLinenumberEnd: 2622
    functionName: PKIX_PL_Cert_GetPolicyMappings
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
    functionUses: 3
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_pl_Cert_DecodePolicyMapping
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_DECREF
    - PKIX_OBJECT_UNLOCK
    - PKIX_OBJECT_LOCK
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Cert_GetPolicyMappings(\n        PKIX_PL_Cert
      *cert,\n        PKIX_List **pPolicyMappings, /* list of PKIX_PL_CertPolicyMap
      */\n        void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2637,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2638,1
    - Dst: PKIX_OBJECT_LOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2641,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2653,1
    - Dst: pkix_pl_Cert_DecodePolicyConstraints
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2653,1
    - Dst: PKIX_OBJECT_UNLOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2666,1
    - Dst: PKIX_OBJECT_UNLOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2672,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2673,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 3
    argNames:
    - cert
    - pSkipCerts
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_Int32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2674
      start: 2628
    functionDepth: 2
    functionLinenumber: 2628
    functionLinenumberEnd: 2674
    functionName: PKIX_PL_Cert_GetRequireExplicitPolicy
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
    functionUses: 4
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_pl_Cert_DecodePolicyConstraints
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_OBJECT_UNLOCK
    - PKIX_OBJECT_LOCK
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Cert_GetRequireExplicitPolicy(\n        PKIX_PL_Cert
      *cert,\n        PKIX_Int32 *pSkipCerts,\n        void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2689,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2690,1
    - Dst: PKIX_OBJECT_LOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2693,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2705,1
    - Dst: pkix_pl_Cert_DecodePolicyConstraints
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2705,1
    - Dst: PKIX_OBJECT_UNLOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2718,1
    - Dst: PKIX_OBJECT_UNLOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2724,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2725,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 3
    argNames:
    - cert
    - pSkipCerts
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_Int32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2726
      start: 2680
    functionDepth: 2
    functionLinenumber: 2680
    functionLinenumberEnd: 2726
    functionName: PKIX_PL_Cert_GetPolicyMappingInhibited
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
    functionUses: 3
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_pl_Cert_DecodePolicyConstraints
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_OBJECT_UNLOCK
    - PKIX_OBJECT_LOCK
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Cert_GetPolicyMappingInhibited(\n        PKIX_PL_Cert
      *cert,\n        PKIX_Int32 *pSkipCerts,\n        void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2739,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2740,1
    - Dst: PKIX_OBJECT_LOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2744,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2755,1
    - Dst: pkix_pl_Cert_DecodeInhibitAnyPolicy
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2755,1
    - Dst: PKIX_OBJECT_UNLOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2762,1
    - Dst: PKIX_OBJECT_UNLOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2766,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2768,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - cert
    - pSkipCerts
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_Int32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2769
      start: 2731
    functionDepth: 2
    functionLinenumber: 2731
    functionLinenumberEnd: 2769
    functionName: PKIX_PL_Cert_GetInhibitAnyPolicy
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
    functionUses: 3
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_pl_Cert_DecodeInhibitAnyPolicy
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_OBJECT_UNLOCK
    - PKIX_OBJECT_LOCK
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Cert_GetInhibitAnyPolicy(\n        PKIX_PL_Cert
      *cert,\n        PKIX_Int32 *pSkipCerts,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2783,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2784,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2786,1
    - Dst: pkix_pl_Cert_IsExtensionCritical
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2786,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2796,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - cert
    - pCritical
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2797
      start: 2775
    functionDepth: 2
    functionLinenumber: 2775
    functionLinenumberEnd: 2797
    functionName: PKIX_PL_Cert_AreCertPoliciesCritical
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
    functionUses: 2
    functionsReached:
    - PKIX_RETURN
    - PKIX_CHECK
    - pkix_pl_Cert_IsExtensionCritical
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Cert_AreCertPoliciesCritical(\n        PKIX_PL_Cert
      *cert,\n        PKIX_Boolean *pCritical,\n        void *plContext)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2821,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2822,1
    - Dst: pkix_pl_NssContext_GetCertSignatureCheck
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2825,1
    - Dst: PKIX_PL_HashTable_Lookup
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2831,1
    - Dst: PKIX_EQUALS
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2839,1
    - Dst: PKIX_CERT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2851,1
    - Dst: SECKEY_ExtractPublicKey
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2852,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2854,1
    - Dst: PKIX_CERT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2857,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2859,1
    - Dst: pkix_pl_NssContext_GetWincx
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2859,1
    - Dst: CERT_VerifySignedDataWithPublicKey
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2863,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2866,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2867,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2869,1
    - Dst: PKIX_PL_HashTable_Add
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2873,1
    - Dst: PKIX_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2880,1
    - Dst: PKIX_CERT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2886,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2887,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2890,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2891,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2892,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2893,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2895,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 50
    argCount: 3
    argNames:
    - cert
    - pubKey
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_PL_PublicKey*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2896
      start: 2802
    functionDepth: 4
    functionLinenumber: 2802
    functionLinenumberEnd: 2896
    functionName: PKIX_PL_Cert_VerifySignature
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
    functionUses: 2
    functionsReached:
    - PKIX_DEBUG
    - SECKEY_DestroyPublicKey
    - PKIX_PL_HashTable_Add
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_pl_NssContext_GetWincx
    - PKIX_CERT_DEBUG
    - PKIX_PL_HashTable_Lookup
    - PKIX_EQUALS
    - CERT_VerifySignedDataWithPublicKey
    - PORT_GetError
    - pkix_pl_NssContext_GetCertSignatureCheck
    - SECKEY_ExtractPublicKey
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PORT_SetError
    - PKIX_DECREF
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Cert_VerifySignature(\n        PKIX_PL_Cert
      *cert,\n        PKIX_PL_PublicKey *pubKey,\n        void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2912,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2913,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2917,1
    - Dst: pkix_pl_Date_GetPRTime
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2917,1
    - Dst: PR_Now
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2921,1
    - Dst: CERT_CheckCertValidTimes
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2929,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2931,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2935,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - cert
    - date
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_PL_Date*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2936
      start: 2901
    functionDepth: 1
    functionLinenumber: 2901
    functionLinenumberEnd: 2936
    functionName: PKIX_PL_Cert_CheckValidity
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
    functionUses: 4
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - CERT_CheckCertValidTimes
    - PR_Now
    - pkix_pl_Date_GetPRTime
    - PKIX_ENTER
    - PKIX_ERROR
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Cert_CheckValidity(\n        PKIX_PL_Cert *cert,\n
      \       PKIX_PL_Date *date,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2950,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2951,1
    - Dst: PKIX_DATE_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2953,1
    - Dst: DER_DecodeTimeChoice
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2954,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2956,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2959,1
    - Dst: pkix_pl_Date_CreateFromPRTime
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2959,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2964,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - cert
    - pDate
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_PL_Date**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2965
      start: 2941
    functionDepth: 1
    functionLinenumber: 2941
    functionLinenumberEnd: 2965
    functionName: PKIX_PL_Cert_GetValidityNotAfter
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
    functionUses: 3
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - DER_DecodeTimeChoice
    - PKIX_DATE_DEBUG
    - PKIX_ENTER
    - pkix_pl_Date_CreateFromPRTime
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Cert_GetValidityNotAfter(\n        PKIX_PL_Cert
      *cert,\n        PKIX_PL_Date **pDate,\n        void *plContext)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2984,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2985,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2990,1
    - Dst: cert_GetCertType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:2996,1
    - Dst: CERT_KeyUsageAndTypeForCertUsage
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3000,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3004,1
    - Dst: CERT_CheckKeyUsage
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3012,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3013,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3016,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3019,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3020,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 3
    argNames:
    - cert
    - isChainCert
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_Boolean
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3021
      start: 2970
    functionDepth: 1
    functionLinenumber: 2970
    functionLinenumberEnd: 3021
    functionName: PKIX_PL_Cert_VerifyCertAndKeyType
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
    functionUses: 2
    functionsReached:
    - PORT_Assert
    - CERT_CheckKeyUsage
    - PKIX_RETURN
    - cert_GetCertType
    - CERT_KeyUsageAndTypeForCertUsage
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Cert_VerifyCertAndKeyType(\n        PKIX_PL_Cert
      *cert,\n        PKIX_Boolean isChainCert,\n        void *plContext)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3036,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3037,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3080,1
    - Dst: CERT_CheckKeyUsage
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3083,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3085,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3089,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 3
    argNames:
    - cert
    - keyUsage
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_UInt32
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3090
      start: 3026
    functionDepth: 1
    functionLinenumber: 3026
    functionLinenumberEnd: 3090
    functionName: PKIX_PL_Cert_VerifyKeyUsage
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
    functionUses: 4
    functionsReached:
    - CERT_CheckKeyUsage
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Cert_VerifyKeyUsage(\n        PKIX_PL_Cert *cert,\n
      \       PKIX_UInt32 keyUsage,\n        void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3104,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3105,1
    - Dst: PKIX_OBJECT_LOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3110,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3115,1
    - Dst: pkix_pl_CertNameConstraints_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3115,1
    - Dst: PKIX_OBJECT_UNLOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3126,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3130,1
    - Dst: PKIX_OBJECT_UNLOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3135,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3136,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - cert
    - pNameConstraints
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_PL_CertNameConstraints**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3137
      start: 3096
    functionDepth: 1
    functionLinenumber: 3096
    functionLinenumberEnd: 3137
    functionName: PKIX_PL_Cert_GetNameConstraints
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
    functionUses: 11
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - pkix_pl_CertNameConstraints_Create
    - PKIX_OBJECT_UNLOCK
    - PKIX_OBJECT_LOCK
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Cert_GetNameConstraints(\n        PKIX_PL_Cert
      *cert,\n        PKIX_PL_CertNameConstraints **pNameConstraints,\n        void
      *plContext)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3154,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3155,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3159,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3161,1
    - Dst: PKIX_CERT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3177,1
    - Dst: CERT_GetConstrainedCertificateNames
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3179,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3182,1
    - Dst: pkix_pl_CertNameConstraints_CheckNameSpaceNssNames
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3182,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3190,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3196,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3199,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 4
    argNames:
    - cert
    - nameConstraints
    - treatCommonNameAsDNSName
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_PL_CertNameConstraints*
    - PKIX_Boolean
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3200
      start: 3143
    functionDepth: 1
    functionLinenumber: 3143
    functionLinenumberEnd: 3200
    functionName: PKIX_PL_Cert_CheckNameConstraints
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
    functionUses: 3
    functionsReached:
    - pkix_pl_CertNameConstraints_CheckNameSpaceNssNames
    - CERT_GetConstrainedCertificateNames
    - PORT_NewArena
    - PKIX_CHECK
    - PKIX_RETURN
    - PORT_FreeArena
    - PKIX_CERT_DEBUG
    - PKIX_ENTER
    - PKIX_ERROR
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Cert_CheckNameConstraints(\n        PKIX_PL_Cert
      *cert,\n        PKIX_PL_CertNameConstraints *nameConstraints,\n        PKIX_Boolean
      treatCommonNameAsDNSName,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3215,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3216,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3220,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3226,1
    - Dst: pkix_pl_CertNameConstraints_Merge
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3226,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3233,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - firstNC
    - secondNC
    - pResultNC
    - plContext
    argTypes:
    - PKIX_PL_CertNameConstraints*
    - PKIX_PL_CertNameConstraints*
    - PKIX_PL_CertNameConstraints**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3234
      start: 3206
    functionDepth: 1
    functionLinenumber: 3206
    functionLinenumberEnd: 3234
    functionName: PKIX_PL_Cert_MergeNameConstraints
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
    functionUses: 2
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_pl_CertNameConstraints_Merge
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Cert_MergeNameConstraints(\n        PKIX_PL_CertNameConstraints
      *firstNC,\n        PKIX_PL_CertNameConstraints *secondNC,\n        PKIX_PL_CertNameConstraints
      **pResultNC,\n        void *plContext)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3268,1
    - Dst: cert_CheckLeafTrust
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3278,1
    - Dst: CERT_TrustFlagsForCACertUsage
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3283,1
    - Dst: CERT_GetCertTrust
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3289,1
    - Dst: SEC_GET_TRUST_FLAGS
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3293,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 4
    argNames:
    - plContext
    - cert
    - trusted
    - isCA
    argTypes:
    - void*
    - PKIX_PL_Cert*
    - PKIX_Boolean*
    - PKIX_Boolean
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3310
      start: 3243
    functionDepth: 1
    functionLinenumber: 3243
    functionLinenumberEnd: 3310
    functionName: pkix_pl_Cert_GetTrusted
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SEC_GET_TRUST_FLAGS
    - CERT_TrustFlagsForCACertUsage
    - cert_CheckLeafTrust
    - CERT_GetCertTrust
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus pkix_pl_Cert_GetTrusted(void *plContext,\n                        PKIX_PL_Cert
      *cert,\n                        PKIX_Boolean *trusted,\n                        PKIX_Boolean
      isCA)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3327,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3328,1
    - Dst: pkix_pl_Cert_GetTrusted
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3332,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3337,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3354,1
    - Dst: PKIX_CertStore_GetTrustCallback
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3354,1
    - Dst: PKIX_CHECK_ONLY_FATAL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3358,1
    - Dst: trustCallback
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3358,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3372,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 4
    argNames:
    - cert
    - trustAnchorMode
    - pTrusted
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_PL_TrustAnchorMode
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3373
      start: 3316
    functionDepth: 2
    functionLinenumber: 3316
    functionLinenumberEnd: 3373
    functionName: PKIX_PL_Cert_IsCertTrusted
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
    functionUses: 2
    functionsReached:
    - PKIX_CHECK_ONLY_FATAL
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_CertStore_GetTrustCallback
    - trustCallback
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    - pkix_pl_Cert_GetTrusted
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Cert_IsCertTrusted(\n        PKIX_PL_Cert *cert,\n
      \       PKIX_PL_TrustAnchorMode trustAnchorMode,\n        PKIX_Boolean *pTrusted,\n
      \       void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3387,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3388,1
    - Dst: pkix_pl_Cert_GetTrusted
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3392,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3397,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - cert
    - pTrusted
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3402
      start: 3379
    functionDepth: 2
    functionLinenumber: 3379
    functionLinenumberEnd: 3402
    functionName: PKIX_PL_Cert_IsLeafCertTrusted
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
    functionUses: 1
    functionsReached:
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    - pkix_pl_Cert_GetTrusted
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Cert_IsLeafCertTrusted(\n        PKIX_PL_Cert
      *cert,\n        PKIX_Boolean *pTrusted,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3409,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3410,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - cert
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3415
      start: 3405
    functionDepth: 1
    functionLinenumber: 3405
    functionLinenumberEnd: 3415
    functionName: PKIX_PL_Cert_SetAsTrustAnchor
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
    functionUses: 1
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Cert_SetAsTrustAnchor(PKIX_PL_Cert *cert, \n
      \                             void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3426,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3427,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - cert
    - pCacheFlag
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3432
      start: 3420
    functionDepth: 1
    functionLinenumber: 3420
    functionLinenumberEnd: 3432
    functionName: PKIX_PL_Cert_GetCacheFlag
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
    functionUses: 1
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Cert_GetCacheFlag(\n        PKIX_PL_Cert *cert,\n
      \       PKIX_Boolean *pCacheFlag,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3443,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3444,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - cert
    - cacheFlag
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_Boolean
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3449
      start: 3437
    functionDepth: 1
    functionLinenumber: 3437
    functionLinenumberEnd: 3449
    functionName: PKIX_PL_Cert_SetCacheFlag
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Cert_SetCacheFlag(\n        PKIX_PL_Cert *cert,\n
      \       PKIX_Boolean cacheFlag,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3460,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3461,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3463,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - cert
    - pTrustCertStore
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_CertStore**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3468
      start: 3454
    functionDepth: 1
    functionLinenumber: 3454
    functionLinenumberEnd: 3468
    functionName: PKIX_PL_Cert_GetTrustCertStore
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
    functionUses: 0
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Cert_GetTrustCertStore(\n        PKIX_PL_Cert
      *cert,\n        PKIX_CertStore **pTrustCertStore,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3479,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3480,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3482,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - cert
    - trustCertStore
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_CertStore*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3487
      start: 3473
    functionDepth: 1
    functionLinenumber: 3473
    functionLinenumberEnd: 3487
    functionName: PKIX_PL_Cert_SetTrustCertStore
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
    functionUses: 0
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Cert_SetTrustCertStore(\n        PKIX_PL_Cert
      *cert,\n        PKIX_CertStore *trustCertStore,\n        void *plContext)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3505,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3506,1
    - Dst: PKIX_OBJECT_LOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3511,1
    - Dst: PKIX_PL_NSSCALLRV
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3515,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3519,1
    - Dst: PKIX_PL_NSSCALLRV
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3522,1
    - Dst: PKIX_PL_NSSCALLRV
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3531,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3535,1
    - Dst: PKIX_PL_NSSCALLRV
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3538,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3542,1
    - Dst: pkix_pl_InfoAccess_CreateList
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3542,1
    - Dst: PKIX_OBJECT_UNLOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3549,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3552,1
    - Dst: PKIX_OBJECT_UNLOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3557,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3559,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3563,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3566,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 3
    argNames:
    - cert
    - pAiaList
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3567
      start: 3493
    functionDepth: 1
    functionLinenumber: 3493
    functionLinenumberEnd: 3567
    functionName: PKIX_PL_Cert_GetAuthorityInfoAccess
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
    functionUses: 4
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PORT_FreeArena
    - PKIX_PL_NSSCALLRV
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_OBJECT_UNLOCK
    - pkix_pl_InfoAccess_CreateList
    - PKIX_ERROR
    - SECITEM_FreeItem
    - PKIX_OBJECT_LOCK
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Cert_GetAuthorityInfoAccess(\n        PKIX_PL_Cert
      *cert,\n        PKIX_List **pAiaList, /* of PKIX_PL_InfoAccess */\n        void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3573
      start: 3572
    functionDepth: 0
    functionLinenumber: 3572
    functionLinenumberEnd: 3573
    functionName: OI
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OI(x)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: OI
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3585,1
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3591,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3592,1
    - Dst: PKIX_OBJECT_LOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3603,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3607,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3609,1
    - Dst: PKIX_CERT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3612,1
    - Dst: CERT_FindCertExtensionByOID
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3614,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3621,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3623,1
    - Dst: PKIX_CERT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3632,1
    - Dst: CERT_DecodeAuthInfoAccessExtension
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3634,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3637,1
    - Dst: pkix_pl_InfoAccess_CreateList
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3637,1
    - Dst: PKIX_OBJECT_UNLOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3645,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3648,1
    - Dst: PKIX_OBJECT_UNLOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3652,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3654,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3658,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3660,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 3
    argNames:
    - cert
    - pSiaList
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3661
      start: 3578
    functionDepth: 1
    functionLinenumber: 3578
    functionLinenumberEnd: 3661
    functionName: PKIX_PL_Cert_GetSubjectInfoAccess
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
    functionUses: 3
    functionsReached:
    - PKIX_INCREF
    - CERT_FindCertExtensionByOID
    - PORT_NewArena
    - PKIX_CHECK
    - PKIX_RETURN
    - PORT_FreeArena
    - PKIX_CERT_DEBUG
    - SECITEM_AllocItem
    - CERT_DecodeAuthInfoAccessExtension
    - OI
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_OBJECT_UNLOCK
    - pkix_pl_InfoAccess_CreateList
    - PKIX_ERROR
    - SECITEM_FreeItem
    - PKIX_OBJECT_LOCK
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Cert_GetSubjectInfoAccess(\n        PKIX_PL_Cert
      *cert,\n        PKIX_List **pSiaList, /* of PKIX_PL_InfoAccess */\n        void
      *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3677,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3678,1
    - Dst: PKIX_OBJECT_LOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3682,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3686,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3686,1
    - Dst: CERT_FindCRLDistributionPoints
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3688,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3693,1
    - Dst: pkix_pl_CrlDp_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3694,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3700,1
    - Dst: PKIX_List_InsertItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3701,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3705,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3709,1
    - Dst: PKIX_OBJECT_UNLOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3712,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3713,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3715,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - cert
    - pDpList
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3716
      start: 3667
    functionDepth: 3
    functionLinenumber: 3667
    functionLinenumberEnd: 3716
    functionName: PKIX_PL_Cert_GetCrlDp
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
    functionUses: 1
    functionsReached:
    - CERT_FindCRLDistributionPoints
    - PKIX_INCREF
    - pkix_pl_CrlDp_Create
    - PKIX_CHECK
    - PKIX_List_InsertItem
    - PKIX_List_Create
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_DECREF
    - PKIX_OBJECT_UNLOCK
    - PKIX_OBJECT_LOCK
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Cert_GetCrlDp(\n    PKIX_PL_Cert *cert,\n    PKIX_List
      **pDpList,\n    void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3728,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3729,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3731,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c:3733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - cert
    - pnssCert
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - CERTCertificate**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3734
      start: 3722
    functionDepth: 1
    functionLinenumber: 3722
    functionLinenumberEnd: 3734
    functionName: PKIX_PL_Cert_GetCERTCertificate
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
    functionUses: 1
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    - CERT_DupCertificate
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Cert_GetCERTCertificate(\n        PKIX_PL_Cert
      *cert,\n        CERTCertificate **pnssCert, \n        void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:55,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:57,1
    - Dst: PKIX_OBJECT_LOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:67,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:71,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:71,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:80,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:82,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:91,1
    - Dst: pkix_pl_GeneralName_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:91,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:95,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:95,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:101,1
    - Dst: PKIX_CERTNAMECONSTRAINTS_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:103,1
    - Dst: CERT_GetNextNameConstraint
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:105,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:113,1
    - Dst: PKIX_List_SetImmutable
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:113,1
    - Dst: PKIX_OBJECT_UNLOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:120,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:124,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:130,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 3
    argNames:
    - nameConstraints
    - pPermittedList
    - plContext
    argTypes:
    - PKIX_PL_CertNameConstraints*
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 40
    functionDepth: 3
    functionLinenumber: 40
    functionLinenumberEnd: 131
    functionName: pkix_pl_CertNameConstraints_GetPermitted
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c
    functionUses: 0
    functionsReached:
    - PKIX_INCREF
    - PKIX_CERTNAMECONSTRAINTS_DEBUG
    - PKIX_List_SetImmutable
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_Create
    - CERT_GetNextNameConstraint
    - PKIX_List_AppendItem
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_OBJECT_UNLOCK
    - pkix_pl_GeneralName_Create
    - PKIX_NULLCHECK_TWO
    - PKIX_NULLCHECK_ONE
    - PKIX_OBJECT_LOCK
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CertNameConstraints_GetPermitted(\n        PKIX_PL_CertNameConstraints
      *nameConstraints,\n        PKIX_List **pPermittedList,\n        void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:172,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:174,1
    - Dst: PKIX_OBJECT_LOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:178,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:182,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:182,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:191,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:193,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:202,1
    - Dst: pkix_pl_GeneralName_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:202,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:206,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:206,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:212,1
    - Dst: PKIX_CERTNAMECONSTRAINTS_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:214,1
    - Dst: CERT_GetNextNameConstraint
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:216,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:224,1
    - Dst: PKIX_List_SetImmutable
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:224,1
    - Dst: PKIX_OBJECT_UNLOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:231,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:234,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:240,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 3
    argNames:
    - nameConstraints
    - pExcludedList
    - plContext
    argTypes:
    - PKIX_PL_CertNameConstraints*
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 157
    functionDepth: 3
    functionLinenumber: 157
    functionLinenumberEnd: 241
    functionName: pkix_pl_CertNameConstraints_GetExcluded
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c
    functionUses: 0
    functionsReached:
    - PKIX_INCREF
    - PKIX_CERTNAMECONSTRAINTS_DEBUG
    - PKIX_List_SetImmutable
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_Create
    - CERT_GetNextNameConstraint
    - PKIX_List_AppendItem
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_OBJECT_UNLOCK
    - pkix_pl_GeneralName_Create
    - PKIX_NULLCHECK_TWO
    - PKIX_NULLCHECK_ONE
    - PKIX_OBJECT_LOCK
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CertNameConstraints_GetExcluded(\n        PKIX_PL_CertNameConstraints
      *nameConstraints,\n        PKIX_List **pExcludedList,\n        void *plContext)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:286,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:288,1
    - Dst: PKIX_CERTNAMECONSTRAINTS_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:292,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:293,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:295,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:320,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:322,1
    - Dst: PKIX_CERTNAMECONSTRAINTS_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:324,1
    - Dst: CERT_CheckNameSpace
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:326,1
    - Dst: PKIX_CERTNAMECONSTRAINTS_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:338,1
    - Dst: CERT_GetNextGeneralName
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:340,1
    - Dst: PKIX_CERTNAMECONSTRAINTS_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:352,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:354,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:357,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 4
    argNames:
    - nssSubjectNames
    - nameConstraints
    - pCheckPass
    - plContext
    argTypes:
    - CERTGeneralName*
    - PKIX_PL_CertNameConstraints*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 358
    functionName: pkix_pl_CertNameConstraints_CheckNameSpaceNssNames
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c
    functionUses: 1
    functionsReached:
    - PKIX_CERTNAMECONSTRAINTS_DEBUG
    - PORT_NewArena
    - PKIX_RETURN
    - CERT_GetNextGeneralName
    - PORT_FreeArena
    - CERT_CheckNameSpace
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_ERROR
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CertNameConstraints_CheckNameSpaceNssNames(\n
      \       CERTGeneralName *nssSubjectNames,\n        PKIX_PL_CertNameConstraints
      *nameConstraints,\n        PKIX_Boolean *pCheckPass,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:371,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:372,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:374,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:374,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:380,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:380,1
    - Dst: PKIX_CERTNAMECONSTRAINTS_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:385,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:387,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:391,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:392,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:396,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 364
    functionDepth: 3
    functionLinenumber: 364
    functionLinenumberEnd: 397
    functionName: pkix_pl_CertNameConstraints_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c
    functionUses: 0
    functionsReached:
    - PKIX_CERTNAMECONSTRAINTS_DEBUG
    - PKIX_CHECK
    - PKIX_RETURN
    - PORT_FreeArena
    - PKIX_PL_Free
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CertNameConstraints_Destroy(\n        PKIX_PL_Object
      *object,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:435,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:437,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:445,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:445,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:453,1
    - Dst: pkix_pl_CertNameConstraints_GetPermitted
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:453,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:457,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:460,1
    - Dst: pkix_pl_CertNameConstraints_GetExcluded
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:460,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:464,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:467,1
    - Dst: PKIX_PL_Sprintf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:467,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:479,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:480,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:481,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:482,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:483,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 3
    argNames:
    - nameConstraints
    - pString
    - plContext
    argTypes:
    - PKIX_PL_CertNameConstraints*
    - PKIX_PL_String**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 421
    functionDepth: 4
    functionLinenumber: 421
    functionLinenumberEnd: 486
    functionName: pkix_pl_CertNameConstraints_ToString_Helper
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_PL_String_Create
    - PKIX_RETURN
    - PKIX_PL_Sprintf
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_TOSTRING
    - pkix_pl_CertNameConstraints_GetExcluded
    - PKIX_NULLCHECK_TWO
    - pkix_pl_CertNameConstraints_GetPermitted
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CertNameConstraints_ToString_Helper(\n        PKIX_PL_CertNameConstraints
      *nameConstraints,\n        PKIX_PL_String **pString,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:501,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:502,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:504,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:504,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:510,1
    - Dst: pkix_pl_CertNameConstraints_ToString_Helper
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:510,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - object
    - pString
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_String**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 492
    functionDepth: 5
    functionLinenumber: 492
    functionLinenumberEnd: 519
    functionName: pkix_pl_CertNameConstraints_ToString
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c
    functionUses: 0
    functionsReached:
    - pkix_pl_CertNameConstraints_ToString_Helper
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CertNameConstraints_ToString(\n        PKIX_PL_Object
      *object,\n        PKIX_PL_String **pString,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:537,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:538,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:540,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:540,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:546,1
    - Dst: pkix_pl_CertNameConstraints_GetPermitted
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:546,1
    - Dst: PKIX_HASHCODE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:550,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:553,1
    - Dst: pkix_pl_CertNameConstraints_GetExcluded
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:553,1
    - Dst: PKIX_HASHCODE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:557,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:565,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:566,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 3
    argNames:
    - object
    - pHashcode
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 525
    functionDepth: 4
    functionLinenumber: 525
    functionLinenumberEnd: 568
    functionName: pkix_pl_CertNameConstraints_Hashcode
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_HASHCODE
    - PKIX_DECREF
    - pkix_pl_CertNameConstraints_GetExcluded
    - PKIX_NULLCHECK_TWO
    - pkix_pl_CertNameConstraints_GetPermitted
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CertNameConstraints_Hashcode(\n        PKIX_PL_Object
      *object,\n        PKIX_UInt32 *pHashcode,\n        void *plContext)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:590,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:591,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:594,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:594,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:616,1
    - Dst: PKIX_PL_Object_GetType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:616,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:624,1
    - Dst: pkix_pl_CertNameConstraints_GetPermitted
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:624,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:628,1
    - Dst: pkix_pl_CertNameConstraints_GetPermitted
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:628,1
    - Dst: PKIX_EQUALS
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:632,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:640,1
    - Dst: pkix_pl_CertNameConstraints_GetExcluded
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:640,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:644,1
    - Dst: pkix_pl_CertNameConstraints_GetExcluded
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:644,1
    - Dst: PKIX_EQUALS
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:648,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:665,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:666,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:667,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:668,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:670,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 4
    argNames:
    - firstObject
    - secondObject
    - pResult
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 574
    functionDepth: 4
    functionLinenumber: 574
    functionLinenumberEnd: 671
    functionName: pkix_pl_CertNameConstraints_Equals
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c
    functionUses: 0
    functionsReached:
    - pkix_pl_CertNameConstraints_GetExcluded
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_EQUALS
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_PL_Object_GetType
    - pkix_pl_CertNameConstraints_GetPermitted
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CertNameConstraints_Equals(\n        PKIX_PL_Object
      *firstObject,\n        PKIX_PL_Object *secondObject,\n        PKIX_Boolean *pResult,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:691,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 685
    functionDepth: 1
    functionLinenumber: 685
    functionLinenumberEnd: 707
    functionName: pkix_pl_CertNameConstraints_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      pkix_pl_CertNameConstraints_RegisterSelf(void *plContext)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:742,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:744,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:746,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:746,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:753,1
    - Dst: PKIX_PL_Malloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:753,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:772,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:775,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 3
    argNames:
    - nssNameConstraints
    - pNameConstraints
    - plContext
    argTypes:
    - CERTNameConstraints*
    - PKIX_PL_CertNameConstraints**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 733
    functionDepth: 1
    functionLinenumber: 733
    functionLinenumberEnd: 776
    functionName: pkix_pl_CertNameConstraints_Create_Helper
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_Alloc
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_PL_Malloc
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CertNameConstraints_Create_Helper(\n        CERTNameConstraints
      *nssNameConstraints,\n        PKIX_PL_CertNameConstraints **pNameConstraints,\n
      \       void *plContext)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:812,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:813,1
    - Dst: PKIX_CERTNAMECONSTRAINTS_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:815,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:816,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:818,1
    - Dst: PKIX_CERTNAMECONSTRAINTS_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:821,1
    - Dst: CERT_FindNameConstraintsExten
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:823,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:827,1
    - Dst: PKIX_CERTNAMECONSTRAINTS_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:837,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:839,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:845,1
    - Dst: pkix_pl_CertNameConstraints_Create_Helper
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:845,1
    - Dst: PKIX_CERTNAMECONSTRAINTS_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:857,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:859,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:863,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 3
    argNames:
    - nssCert
    - pNameConstraints
    - plContext
    argTypes:
    - CERTCertificate*
    - PKIX_PL_CertNameConstraints**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 801
    functionDepth: 2
    functionLinenumber: 801
    functionLinenumberEnd: 864
    functionName: pkix_pl_CertNameConstraints_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c
    functionUses: 1
    functionsReached:
    - PKIX_CERTNAMECONSTRAINTS_DEBUG
    - PORT_NewArena
    - PKIX_CHECK
    - PKIX_RETURN
    - PORT_FreeArena
    - pkix_pl_CertNameConstraints_Create_Helper
    - CERT_FindNameConstraintsExten
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CertNameConstraints_Create(\n        CERTCertificate
      *nssCert,\n        PKIX_PL_CertNameConstraints **pNameConstraints,\n        void
      *plContext)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:898,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:900,1
    - Dst: PKIX_CERTNAMECONSTRAINTS_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:902,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:903,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:905,1
    - Dst: PKIX_CERTNAMECONSTRAINTS_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:908,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:909,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:911,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:919,1
    - Dst: pkix_pl_CertNameConstraints_Create_Helper
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:919,1
    - Dst: PKIX_CERTNAMECONSTRAINTS_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:931,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:933,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:937,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 2
    argNames:
    - pNameConstraints
    - plContext
    argTypes:
    - PKIX_PL_CertNameConstraints**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 889
    functionDepth: 2
    functionLinenumber: 889
    functionLinenumberEnd: 938
    functionName: pkix_pl_CertNameConstraints_CreateByMerge
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c
    functionUses: 0
    functionsReached:
    - PKIX_CERTNAMECONSTRAINTS_DEBUG
    - PORT_NewArena
    - PKIX_CHECK
    - PKIX_RETURN
    - PORT_FreeArena
    - pkix_pl_CertNameConstraints_Create_Helper
    - PORT_ArenaZNew
    - PKIX_ENTER
    - PKIX_ERROR
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CertNameConstraints_CreateByMerge(\n        PKIX_PL_CertNameConstraints
      **pNameConstraints,\n        void *plContext)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:981,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:983,1
    - Dst: PKIX_CERTNAMECONSTRAINTS_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:985,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:986,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:988,1
    - Dst: PKIX_CERTNAMECONSTRAINTS_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:998,1
    - Dst: CERT_CopyNameConstraint
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:1000,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:1003,1
    - Dst: PKIX_CERTNAMECONSTRAINTS_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:1008,1
    - Dst: CERT_AddNameConstraint
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:1010,1
    - Dst: PKIX_CERTNAMECONSTRAINTS_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:1014,1
    - Dst: CERT_GetNextNameConstraint
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:1016,1
    - Dst: PKIX_CERTNAMECONSTRAINTS_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:1037,1
    - Dst: CERT_CopyNameConstraint
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:1039,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:1042,1
    - Dst: PKIX_CERTNAMECONSTRAINTS_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:1047,1
    - Dst: CERT_AddNameConstraint
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:1049,1
    - Dst: PKIX_CERTNAMECONSTRAINTS_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:1053,1
    - Dst: CERT_GetNextNameConstraint
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:1055,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:1066,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 53
    argCount: 4
    argNames:
    - arena
    - srcNC
    - pDestNC
    - plContext
    argTypes:
    - PLArenaPool*
    - CERTNameConstraints*
    - CERTNameConstraints**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1067
      start: 968
    functionDepth: 1
    functionLinenumber: 968
    functionLinenumberEnd: 1067
    functionName: pkix_pl_CertNameConstraints_CopyNssNameConstraints
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c
    functionUses: 0
    functionsReached:
    - PKIX_CERTNAMECONSTRAINTS_DEBUG
    - PKIX_RETURN
    - CERT_GetNextNameConstraint
    - PORT_ArenaZNew
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_ERROR
    - CERT_AddNameConstraint
    - CERT_CopyNameConstraint
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CertNameConstraints_CopyNssNameConstraints(\n
      \       PLArenaPool *arena,\n        CERTNameConstraints *srcNC,\n        CERTNameConstraints
      **pDestNC,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:1108,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:1109,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:1111,1
    - Dst: pkix_pl_CertNameConstraints_CreateByMerge
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:1111,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:1121,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:1121,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:1126,1
    - Dst: PKIX_PL_Malloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:1126,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:1138,1
    - Dst: pkix_pl_CertNameConstraints_CopyNssNameConstraints
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:1138,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:1155,1
    - Dst: pkix_pl_CertNameConstraints_CopyNssNameConstraints
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:1155,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:1177,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:1180,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 4
    argNames:
    - firstNC
    - secondNC
    - pMergedNC
    - plContext
    argTypes:
    - PKIX_PL_CertNameConstraints*
    - PKIX_PL_CertNameConstraints*
    - PKIX_PL_CertNameConstraints**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1181
      start: 1094
    functionDepth: 3
    functionLinenumber: 1094
    functionLinenumberEnd: 1181
    functionName: pkix_pl_CertNameConstraints_Merge
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c
    functionUses: 1
    functionsReached:
    - PKIX_CHECK
    - pkix_pl_CertNameConstraints_CopyNssNameConstraints
    - PKIX_RETURN
    - PKIX_PL_Free
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_DECREF
    - pkix_pl_CertNameConstraints_CreateByMerge
    - PKIX_PL_Malloc
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CertNameConstraints_Merge(\n        PKIX_PL_CertNameConstraints
      *firstNC,\n        PKIX_PL_CertNameConstraints *secondNC,\n        PKIX_PL_CertNameConstraints
      **pMergedNC,\n        void *plContext)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:1206,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:1208,1
    - Dst: PKIX_CERTNAMECONSTRAINTS_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:1214,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:1215,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:1217,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:1222,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:1225,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:1225,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:1231,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:1231,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:1238,1
    - Dst: pkix_pl_GeneralName_GetNssGeneralName
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:1238,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:1242,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:1247,1
    - Dst: PKIX_CERTNAMECONSTRAINTS_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:1249,1
    - Dst: CERT_CheckNameSpace
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:1251,1
    - Dst: PKIX_CERTNAMECONSTRAINTS_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:1273,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:1275,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c:1278,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 4
    argNames:
    - nameList
    - nameConstraints
    - pCheckPass
    - plContext
    argTypes:
    - PKIX_List*
    - PKIX_PL_CertNameConstraints*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1279
      start: 1189
    functionDepth: 3
    functionLinenumber: 1189
    functionLinenumberEnd: 1279
    functionName: PKIX_PL_CertNameConstraints_CheckNamesInNameSpace
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_nameconstraints.c
    functionUses: 2
    functionsReached:
    - pkix_pl_GeneralName_GetNssGeneralName
    - PKIX_CERTNAMECONSTRAINTS_DEBUG
    - PORT_NewArena
    - PKIX_CHECK
    - PKIX_RETURN
    - PORT_FreeArena
    - PKIX_List_GetLength
    - CERT_CheckNameSpace
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    - PKIX_NULLCHECK_ONE
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_CertNameConstraints_CheckNamesInNameSpace(\n
      \       PKIX_List *nameList, /* List of PKIX_PL_GeneralName */\n        PKIX_PL_CertNameConstraints
      *nameConstraints,\n        PKIX_Boolean *pCheckPass,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:45,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:47,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:49,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:49,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:56,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:59,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:66,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 4
    argNames:
    - oid
    - qualifier
    - pObject
    - plContext
    argTypes:
    - PKIX_PL_OID*
    - PKIX_PL_ByteArray*
    - PKIX_PL_CertPolicyQualifier**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 69
    functionName: pkix_pl_CertPolicyQualifier_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c
    functionUses: 1
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_Alloc
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_DECREF
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CertPolicyQualifier_Create(\n        PKIX_PL_OID
      *oid,\n        PKIX_PL_ByteArray *qualifier,\n        PKIX_PL_CertPolicyQualifier
      **pObject,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:82,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:84,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:86,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:86,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:92,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:93,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 98
    functionName: pkix_pl_CertPolicyQualifier_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CertPolicyQualifier_Destroy(\n        PKIX_PL_Object
      *object,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:117,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:119,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:121,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:121,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:131,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:133,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:133,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:137,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:140,1
    - Dst: pkix_pl_ByteArray_ToHexString
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:140,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:144,1
    - Dst: PKIX_PL_Sprintf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:144,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:152,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:153,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:154,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 3
    argNames:
    - object
    - pString
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_String**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 104
    functionDepth: 3
    functionLinenumber: 104
    functionLinenumberEnd: 156
    functionName: pkix_pl_CertPolicyQualifier_ToString
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c
    functionUses: 0
    functionsReached:
    - pkix_pl_ByteArray_ToHexString
    - PKIX_CHECK
    - PKIX_PL_String_Create
    - PKIX_RETURN
    - PKIX_PL_Sprintf
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_TOSTRING
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CertPolicyQualifier_ToString(\n        PKIX_PL_Object
      *object,\n        PKIX_PL_String **pString,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:172,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:173,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:175,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:175,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:181,1
    - Dst: PKIX_HASHCODE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:183,1
    - Dst: PKIX_HASHCODE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:186,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - object
    - pHashcode
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 162
    functionDepth: 3
    functionLinenumber: 162
    functionLinenumberEnd: 194
    functionName: pkix_pl_CertPolicyQualifier_Hashcode
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_HASHCODE
    - pkix_CheckType
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CertPolicyQualifier_Hashcode(\n        PKIX_PL_Object
      *object,\n        PKIX_UInt32 *pHashcode,\n        void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:213,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:214,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:217,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:217,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:234,1
    - Dst: PKIX_PL_Object_GetType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:234,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:249,1
    - Dst: PKIX_EQUALS
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:252,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:266,1
    - Dst: PKIX_EQUALS
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:268,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:280,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 4
    argNames:
    - firstObject
    - secondObject
    - pResult
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 201
    functionDepth: 3
    functionLinenumber: 201
    functionLinenumberEnd: 281
    functionName: pkix_pl_CertPolicyQualifier_Equals
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_EQUALS
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - pkix_CheckType
    - PKIX_PL_Object_GetType
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CertPolicyQualifier_Equals(\n        PKIX_PL_Object
      *firstObject,\n        PKIX_PL_Object *secondObject,\n        PKIX_Boolean *pResult,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:302,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 318
    functionName: pkix_pl_CertPolicyQualifier_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      pkix_pl_CertPolicyQualifier_RegisterSelf(void *plContext)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:332,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:335,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:337,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - policyQualifierInfo
    - pPolicyQualifierId
    - plContext
    argTypes:
    - PKIX_PL_CertPolicyQualifier*
    - PKIX_PL_OID**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 343
    functionName: PKIX_PL_PolicyQualifier_GetPolicyQualifierId
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c
    functionUses: 1
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_PolicyQualifier_GetPolicyQualifierId(\n        PKIX_PL_CertPolicyQualifier
      *policyQualifierInfo,\n        PKIX_PL_OID **pPolicyQualifierId,\n        void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:355,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:357,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:359,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - policyQualifierInfo
    - pQualifier
    - plContext
    argTypes:
    - PKIX_PL_CertPolicyQualifier*
    - PKIX_PL_ByteArray**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 365
    functionName: PKIX_PL_PolicyQualifier_GetQualifier
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_certpolicyqualifier.c
    functionUses: 1
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_PolicyQualifier_GetQualifier(\n        PKIX_PL_CertPolicyQualifier
      *policyQualifierInfo,\n        PKIX_PL_ByteArray **pQualifier,\n        void
      *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:34,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:35,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:36,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:44,1
    - Dst: PKIX_PL_Object_Duplicate
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:44,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:50,1
    - Dst: PKIX_ProcessingParams_SetDate
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:50,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:55,1
    - Dst: PKIX_CertSelector_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:55,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:59,1
    - Dst: PKIX_ComCertSelParams_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:59,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:63,1
    - Dst: PKIX_ComCertSelParams_SetCertificate
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:63,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:67,1
    - Dst: PKIX_CertSelector_SetCommonCertSelectorParams
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:67,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:71,1
    - Dst: PKIX_ProcessingParams_SetTargetCertConstraints
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:71,1
    - Dst: PKIX_BuildChain
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:76,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:94,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:99,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:100,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:101,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:102,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:104,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 8
    argNames:
    - signerCert
    - producedAt
    - procParams
    - pNBIOContext
    - pState
    - pBuildResult
    - pVerifyTree
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_PL_Date*
    - PKIX_ProcessingParams*
    - void**
    - void**
    - PKIX_BuildResult**
    - PKIX_VerifyNode**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 16
    functionDepth: 8
    functionLinenumber: 16
    functionLinenumberEnd: 105
    functionName: PKIX_PL_OcspResponse_UseBuildChain
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_Duplicate
    - PKIX_ComCertSelParams_SetCertificate
    - PKIX_CertSelector_SetCommonCertSelectorParams
    - PKIX_ProcessingParams_SetDate
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_DECREF
    - PKIX_CertSelector_Create
    - PKIX_ComCertSelParams_Create
    - PKIX_ProcessingParams_SetTargetCertConstraints
    - PKIX_BuildChain
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_OcspResponse_UseBuildChain(\n        PKIX_PL_Cert
      *signerCert,\n\tPKIX_PL_Date *producedAt,\n        PKIX_ProcessingParams *procParams,\n
      \       void **pNBIOContext,\n        void **pState,\n        PKIX_BuildResult
      **pBuildResult,\n        PKIX_VerifyNode **pVerifyTree,\n\tvoid *plContext)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:122,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:123,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:125,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:125,1
    - Dst: CERT_DestroyOCSPResponse
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:131,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:136,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:158,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:162,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:163,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:164,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:168,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 113
    functionDepth: 3
    functionLinenumber: 113
    functionLinenumberEnd: 169
    functionName: pkix_pl_OcspResponse_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PORT_FreeArena
    - CERT_DestroyOCSPResponse
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - CERT_DestroyCertificate
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_OcspResponse_Destroy(\n        PKIX_PL_Object
      *object,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:183,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:184,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:186,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:186,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:194,1
    - Dst: pkix_hash
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:194,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - object
    - pHashcode
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 175
    functionDepth: 3
    functionLinenumber: 175
    functionLinenumberEnd: 205
    functionName: pkix_pl_OcspResponse_Hashcode
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - pkix_hash
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_OcspResponse_Hashcode(\n        PKIX_PL_Object
      *object,\n        PKIX_UInt32 *pHashcode,\n        void *plContext)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:226,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:227,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:230,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:230,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:247,1
    - Dst: PKIX_PL_Object_GetType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:247,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:279,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 4
    argNames:
    - firstObj
    - secondObj
    - pResult
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 211
    functionDepth: 3
    functionLinenumber: 211
    functionLinenumberEnd: 280
    functionName: pkix_pl_OcspResponse_Equals
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - pkix_CheckType
    - PKIX_PL_Object_GetType
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_OcspResponse_Equals(\n        PKIX_PL_Object
      *firstObj,\n        PKIX_PL_Object *secondObj,\n        PKIX_Boolean *pResult,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:303,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 313
    functionName: pkix_pl_OcspResponse_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      pkix_pl_OcspResponse_RegisterSelf(void *plContext)'
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:392,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:393,1
    - Dst: strcmp
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:395,1
    - Dst: strcmp
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:395,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:396,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:405,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:410,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:416,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:418,1
    - Dst: pkix_pl_OcspRequest_GetEncoded
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:418,1
    - Dst: SEC_GetRegisteredHttpClient
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:428,1
    - Dst: strcmp
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:434,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:438,1
    - Dst: pkix_pl_OcspRequest_GetLocation
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:438,1
    - Dst: CERT_ParseURL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:443,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:445,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:451,1
    - Dst: strlen
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:467,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:473,1
    - Dst: memset
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:475,1
    - Dst: PL_Base64Encode
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:476,1
    - Dst: ocsp_UrlEncodeBase64Buf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:477,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:479,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:481,1
    - Dst: strcpy
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:483,1
    - Dst: strcpy
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:486,1
    - Dst: ocsp_UrlEncodeBase64Buf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:489,1
    - Dst: PR_SecondsToInterval
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:495,1
    - Dst: PORT_Free
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:499,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:504,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:513,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:518,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:518,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:525,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:533,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:560,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:565,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:567,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:574,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:576,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:578,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:580,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:583,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:585,1
    - Dst: PORT_Free
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:594,1
    - Dst: PORT_Free
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:597,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:600,1
    - Dst: SEC_HttpClientFcnV1*::freeSessionFcn
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:603,1
    - Dst: SEC_HttpClientFcnV1*::freeFcn
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:606,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:609,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 143
    argCount: 7
    argNames:
    - request
    - httpMethod
    - responder
    - verifyFcn
    - pNBIOContext
    - pResponse
    - plContext
    argTypes:
    - PKIX_PL_OcspRequest*
    - char*
    - void*
    - PKIX_PL_VerifyCallback
    - void**
    - PKIX_PL_OcspResponse**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 610
    functionName: pkix_pl_OcspResponse_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c
    functionUses: 1
    functionsReached:
    - PKIX_RETURN
    - ocsp_UrlEncodeBase64Buf
    - PKIX_DECREF
    - SEC_GetRegisteredHttpClient
    - PKIX_ERROR
    - PKIX_NULLCHECK_ONE
    - strlen
    - PKIX_INCREF
    - PORT_Strcasecmp
    - PORT_Memcpy
    - PORT_NewArena
    - PL_Base64Encode
    - strcpy
    - SEC_HttpClientFcnV1*::freeSessionFcn
    - memset
    - PKIX_PL_Object_Alloc
    - CERT_ParseURL
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - CERT_GetDefaultCertDB
    - SEC_HttpClientFcnV1*::freeFcn
    - PR_SecondsToInterval
    - pkix_pl_OcspRequest_GetLocation
    - SECITEM_AllocItem
    - pkix_pl_OcspRequest_GetEncoded
    - PKIX_NULLCHECK_TWO
    - strcmp
    - PORT_Alloc
    - PKIX_CHECK
    - PORT_Free
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_OcspResponse_Create(\n        PKIX_PL_OcspRequest
      *request,\n        const char *httpMethod,\n        void *responder,\n        PKIX_PL_VerifyCallback
      verifyFcn,\n        void **pNBIOContext,\n        PKIX_PL_OcspResponse **pResponse,\n
      \       void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:646,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:647,1
    - Dst: CERT_DecodeOCSPResponse
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:650,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:657,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:660,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - response
    - pPassed
    - pReturnCode
    - plContext
    argTypes:
    - PKIX_PL_OcspResponse*
    - PKIX_Boolean*
    - SECErrorCodes*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 638
    functionDepth: 1
    functionLinenumber: 638
    functionLinenumberEnd: 661
    functionName: pkix_pl_OcspResponse_Decode
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c
    functionUses: 1
    functionsReached:
    - PKIX_RETURN
    - CERT_DecodeOCSPResponse
    - PORT_GetError
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_OcspResponse_Decode(\n        PKIX_PL_OcspResponse
      *response,\n        PKIX_Boolean *pPassed,\n        SECErrorCodes *pReturnCode,\n
      \       void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:696,1
    - Dst: PKIX_NULLCHECK_FOUR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:697,1
    - Dst: CERT_GetOCSPResponseStatus
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:699,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:706,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:709,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - response
    - pPassed
    - pReturnCode
    - plContext
    argTypes:
    - PKIX_PL_OcspResponse*
    - PKIX_Boolean*
    - SECErrorCodes*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 687
    functionDepth: 1
    functionLinenumber: 687
    functionLinenumberEnd: 710
    functionName: pkix_pl_OcspResponse_GetStatus
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c
    functionUses: 1
    functionsReached:
    - CERT_GetOCSPResponseStatus
    - PKIX_RETURN
    - PKIX_NULLCHECK_FOUR
    - PORT_GetError
    - PKIX_ENTER
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_OcspResponse_GetStatus(\n        PKIX_PL_OcspResponse
      *response,\n        PKIX_Boolean *pPassed,\n        SECErrorCodes *pReturnCode,\n
      \       void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:725,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:730,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:731,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:735,1
    - Dst: CERT_VerifyCert
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:746,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:749,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:755,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:758,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 7
    argNames:
    - response
    - procParams
    - certUsage
    - state
    - buildResult
    - pNBIOContext
    - plContext
    argTypes:
    - PKIX_PL_OcspResponse*
    - PKIX_ProcessingParams*
    - SECCertUsage
    - void**
    - PKIX_BuildResult**
    - void**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 713
    functionDepth: 1
    functionLinenumber: 713
    functionLinenumberEnd: 759
    functionName: pkix_pl_OcspResponse_VerifyResponse
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - CERT_VerifyCert
    - PORT_SetError
    - PKIX_ENTER
    - PKIX_ERROR
    - PKIX_PL_NssContext_Create
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_OcspResponse_VerifyResponse(\n        PKIX_PL_OcspResponse
      *response,\n        PKIX_ProcessingParams *procParams,\n        SECCertUsage
      certUsage,\n        void **state,\n        PKIX_BuildResult **buildResult,\n
      \       void **pNBIOContext,\n        void *plContext)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:815,1
    - Dst: PKIX_NULLCHECK_FOUR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:816,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:823,1
    - Dst: ocsp_GetResponseData
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:828,1
    - Dst: ocsp_GetResponseSignature
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:830,1
    - Dst: CERT_FindCertIssuer
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:837,1
    - Dst: PR_Now
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:837,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:847,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:849,1
    - Dst: ocsp_GetSignerCertificate
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:855,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:859,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:861,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:865,1
    - Dst: PKIX_PL_Cert_CreateFromCERTCertificate
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:866,1
    - Dst: DER_GeneralizedTimeToTime
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:886,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:889,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:900,1
    - Dst: pkix_pl_Date_CreateFromPRTime
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:901,1
    - Dst: ocsp_CertIsOCSPDefaultResponder
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:913,1
    - Dst: CERT_IsCACert
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:918,1
    - Dst: PKIX_CHECK_ONLY_FATAL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:923,1
    - Dst: pkix_pl_OcspResponse_VerifyResponse
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:924,1
    - Dst: ocsp_VerifyResponseSignature
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:939,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:955,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:957,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:962,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:967,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:969,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 87
    argCount: 6
    argNames:
    - response
    - cert
    - procParams
    - pPassed
    - pNBIOContext
    - plContext
    argTypes:
    - PKIX_PL_OcspResponse*
    - PKIX_PL_Cert*
    - PKIX_ProcessingParams*
    - PKIX_Boolean*
    - void**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 794
    functionDepth: 4
    functionLinenumber: 794
    functionLinenumberEnd: 970
    functionName: pkix_pl_OcspResponse_VerifySignature
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c
    functionUses: 1
    functionsReached:
    - ocsp_GetResponseData
    - ocsp_GetSignerCertificate
    - PKIX_RETURN
    - PKIX_NULLCHECK_FOUR
    - PR_Now
    - pkix_pl_OcspResponse_VerifyResponse
    - CERT_DupCertificate
    - ocsp_CertIsOCSPDefaultResponder
    - PKIX_CHECK_ONLY_FATAL
    - PORT_SetError
    - PKIX_ENTER
    - CERT_FindCertIssuer
    - CERT_IsCACert
    - CERT_DestroyCertificate
    - PKIX_CHECK
    - PORT_GetError
    - ocsp_VerifyResponseSignature
    - ocsp_GetResponseSignature
    - PKIX_PL_Cert_CreateFromCERTCertificate
    - pkix_pl_Date_CreateFromPRTime
    - DER_GeneralizedTimeToTime
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_OcspResponse_VerifySignature(\n        PKIX_PL_OcspResponse
      *response,\n        PKIX_PL_Cert *cert,\n        PKIX_ProcessingParams *procParams,\n
      \       PKIX_Boolean *pPassed,\n        void **pNBIOContext,\n        void *plContext)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:1011,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:1012,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:1019,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:1020,1
    - Dst: pkix_pl_Date_GetPRTime
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:1023,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:1024,1
    - Dst: PR_Now
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:1027,1
    - Dst: ocsp_GetVerifiedSingleResponseForCertID
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:1030,1
    - Dst: ocsp_CertHasGoodStatus
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:1040,1
    - Dst: ocsp_CacheSingleResponse
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:1048,1
    - Dst: cert_RememberOCSPProcessingFailure
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:1051,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:1065,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c:1068,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 7
    argNames:
    - cid
    - response
    - allowCachingOfFailures
    - validity
    - pPassed
    - pReturnCode
    - plContext
    argTypes:
    - PKIX_PL_OcspCertID*
    - PKIX_PL_OcspResponse*
    - PKIX_Boolean
    - PKIX_PL_Date*
    - PKIX_Boolean*
    - SECErrorCodes*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 997
    functionDepth: 1
    functionLinenumber: 997
    functionLinenumberEnd: 1069
    functionName: pkix_pl_OcspResponse_GetStatusForCert
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocspresponse.c
    functionUses: 1
    functionsReached:
    - cert_RememberOCSPProcessingFailure
    - PKIX_RETURN
    - PORT_GetError
    - PR_Now
    - ocsp_CertHasGoodStatus
    - pkix_pl_Date_GetPRTime
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_DECREF
    - ocsp_GetVerifiedSingleResponseForCertID
    - ocsp_CacheSingleResponse
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_OcspResponse_GetStatusForCert(\n        PKIX_PL_OcspCertID
      *cid,\n        PKIX_PL_OcspResponse *response,\n        PKIX_Boolean allowCachingOfFailures,\n
      \       PKIX_PL_Date *validity,\n        PKIX_Boolean *pPassed,\n        SECErrorCodes
      *pReturnCode,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crldp.c:20,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crldp.c:21,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crldp.c:24,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crldp.c:25,1
    - Dst: CERT_DestroyName
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crldp.c:30,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crldp.c:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 13
    functionDepth: 3
    functionLinenumber: 13
    functionLinenumberEnd: 36
    functionName: pkix_pl_CrlDp_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crldp.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - CERT_DestroyName
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CrlDp_Destroy(\n        PKIX_PL_Object *object,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crldp.c:58,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crldp.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 66
    functionName: pkix_pl_CrlDp_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crldp.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      pkix_pl_CrlDp_RegisterSelf(void *plContext)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crldp.c:87,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crldp.c:88,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crldp.c:90,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crldp.c:91,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crldp.c:115,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crldp.c:121,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crldp.c:123,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crldp.c:125,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crldp.c:127,1
    - Dst: CERT_CopyName
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crldp.c:129,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crldp.c:131,1
    - Dst: CERT_AddRDN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crldp.c:133,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crldp.c:135,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crldp.c:146,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crldp.c:148,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crldp.c:150,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 50
    argCount: 4
    argNames:
    - dp
    - certIssuerName
    - pPkixDP
    - plContext
    argTypes:
    - CRLDistributionPoint*
    - CERTName*
    - pkix_pl_CrlDp**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 151
    functionName: pkix_pl_CrlDp_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crldp.c
    functionUses: 1
    functionsReached:
    - CERT_AddRDN
    - PKIX_CHECK
    - PORT_NewArena
    - PKIX_RETURN
    - PORT_FreeArena
    - PKIX_PL_Object_Alloc
    - PORT_ArenaZNew
    - PKIX_ENTER
    - CERT_CopyName
    - PKIX_DECREF
    - PKIX_ERROR
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CrlDp_Create(\n    const CRLDistributionPoint
      *dp,\n    const CERTName *certIssuerName,\n    pkix_pl_CrlDp **pPkixDP,\n    void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:26,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:27,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:29,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:29,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:38,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:39,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 19
    functionDepth: 3
    functionLinenumber: 19
    functionLinenumberEnd: 44
    functionName: pkix_pl_CRLEntry_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CRLEntry_Destroy(\n        PKIX_PL_Object *object,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:83,1
    - Dst: PKIX_NULLCHECK_FOUR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:84,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:98,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:98,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:107,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:107,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:114,1
    - Dst: pkix_pl_Date_ToString_Helper
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:114,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:121,1
    - Dst: PKIX_PL_CRLEntry_GetCriticalExtensionOIDs
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:121,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:125,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:129,1
    - Dst: PKIX_PL_CRLEntry_GetCRLEntryReasonCode
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:129,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:133,1
    - Dst: PKIX_PL_Sprintf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:133,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:147,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:148,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:149,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:150,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:151,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 3
    argNames:
    - crlEntry
    - pString
    - plContext
    argTypes:
    - PKIX_PL_CRLEntry*
    - PKIX_PL_String**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 154
    functionName: pkix_pl_CRLEntry_ToString_Helper
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c
    functionUses: 0
    functionsReached:
    - pkix_pl_Date_ToString_Helper
    - PKIX_CHECK
    - PKIX_PL_String_Create
    - PKIX_RETURN
    - PKIX_PL_Object_ToString
    - PKIX_PL_CRLEntry_GetCriticalExtensionOIDs
    - PKIX_NULLCHECK_FOUR
    - PKIX_PL_Sprintf
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_TOSTRING
    - PKIX_PL_CRLEntry_GetCRLEntryReasonCode
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CRLEntry_ToString_Helper(\n        PKIX_PL_CRLEntry
      *crlEntry,\n        PKIX_PL_String **pString,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:169,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:170,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:172,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:172,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:177,1
    - Dst: pkix_pl_CRLEntry_ToString_Helper
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:177,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - object
    - pString
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_String**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 160
    functionDepth: 3
    functionLinenumber: 160
    functionLinenumberEnd: 186
    functionName: pkix_pl_CRLEntry_ToString
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c
    functionUses: 0
    functionsReached:
    - pkix_pl_CRLEntry_ToString_Helper
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CRLEntry_ToString(\n        PKIX_PL_Object *object,\n
      \       PKIX_PL_String **pString,\n        void *plContext)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:227,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:228,1
    - Dst: PKIX_CRLENTRY_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:232,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:233,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:235,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:242,1
    - Dst: PKIX_CRLENTRY_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:244,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:245,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:247,1
    - Dst: PKIX_CRLENTRY_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:250,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:252,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:259,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:262,1
    - Dst: pkix_hash
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:262,1
    - Dst: PKIX_CRLENTRY_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:280,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:281,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:284,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 3
    argNames:
    - extensions
    - pHashValue
    - plContext
    argTypes:
    - CERTCertExtension**
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 285
    functionName: pkix_pl_CRLEntry_Extensions_Hashcode
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c
    functionUses: 0
    functionsReached:
    - SEC_ASN1EncodeItem
    - PORT_NewArena
    - PKIX_CHECK
    - PKIX_CRLENTRY_DEBUG
    - pkix_hash
    - PORT_FreeArena
    - PKIX_RETURN
    - PORT_ArenaZNew
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CRLEntry_Extensions_Hashcode(\n        CERTCertExtension
      **extensions,\n        PKIX_UInt32 *pHashValue,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:303,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:304,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:306,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:306,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:311,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:314,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:316,1
    - Dst: pkix_hash
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:316,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:323,1
    - Dst: PKIX_PL_Object_Hashcode
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:323,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:335,1
    - Dst: pkix_pl_CRLEntry_Extensions_Hashcode
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:335,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:342,1
    - Dst: PKIX_PL_CRLEntry_GetCRLEntryReasonCode
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:342,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 3
    argNames:
    - object
    - pHashcode
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 291
    functionDepth: 3
    functionLinenumber: 291
    functionLinenumberEnd: 353
    functionName: pkix_pl_CRLEntry_Hashcode
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - pkix_hash
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_PL_Object_Hashcode
    - pkix_pl_CRLEntry_Extensions_Hashcode
    - PKIX_PL_CRLEntry_GetCRLEntryReasonCode
    - PKIX_NULLCHECK_TWO
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CRLEntry_Hashcode(\n        PKIX_PL_Object *object,\n
      \       PKIX_UInt32 *pHashcode,\n        void *plContext)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:406,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:407,1
    - Dst: PKIX_CRLENTRY_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:443,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:444,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:446,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:454,1
    - Dst: PKIX_CRLENTRY_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:456,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:457,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:459,1
    - Dst: PKIX_CRLENTRY_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:462,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:463,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:465,1
    - Dst: PKIX_CRLENTRY_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:468,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:470,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:477,1
    - Dst: PKIX_CRLENTRY_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:480,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:482,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:489,1
    - Dst: PKIX_CRLENTRY_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:492,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:493,1
    - Dst: PKIX_CRLENTRY_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:509,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:510,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:514,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 75
    argCount: 4
    argNames:
    - extensions1
    - extensions2
    - pResult
    - plContext
    argTypes:
    - CERTCertExtension**
    - CERTCertExtension**
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 515
    functionName: pkix_pl_CRLEntry_Extensions_Equals
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c
    functionUses: 0
    functionsReached:
    - SECITEM_CompareItem
    - SEC_ASN1EncodeItem
    - PORT_NewArena
    - PKIX_RETURN
    - PKIX_CRLENTRY_DEBUG
    - PORT_FreeArena
    - PORT_ArenaZNew
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CRLEntry_Extensions_Equals(\n        CERTCertExtension
      **extensions1,\n        CERTCertExtension **extensions2,\n        PKIX_Boolean
      *pResult,\n        void *plContext)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:533,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:534,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:537,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:537,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:543,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:560,1
    - Dst: PKIX_PL_Object_GetType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:560,1
    - Dst: PKIX_CRLENTRY_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:566,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:567,1
    - Dst: PKIX_CRLENTRY_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:576,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:577,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:588,1
    - Dst: pkix_pl_CRLEntry_Extensions_Equals
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:588,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:607,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 4
    argNames:
    - firstObject
    - secondObject
    - pResult
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 521
    functionDepth: 3
    functionLinenumber: 521
    functionLinenumberEnd: 608
    functionName: pkix_pl_CRLEntry_Equals
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c
    functionUses: 0
    functionsReached:
    - SECITEM_CompareItem
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_CRLENTRY_DEBUG
    - pkix_pl_CRLEntry_Extensions_Equals
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - pkix_CheckType
    - PKIX_PL_Object_GetType
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CRLEntry_Equals(\n        PKIX_PL_Object *firstObject,\n
      \       PKIX_PL_Object *secondObject,\n        PKIX_Boolean *pResult,\n        void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:628,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 621
    functionDepth: 1
    functionLinenumber: 621
    functionLinenumberEnd: 643
    functionName: pkix_pl_CRLEntry_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      pkix_pl_CRLEntry_RegisterSelf(void *plContext)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:681,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:682,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:684,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:684,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - nssCrlEntry
    - pCrlEntry
    - plContext
    argTypes:
    - CERTCrlEntry*
    - PKIX_PL_CRLEntry**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 673
    functionDepth: 1
    functionLinenumber: 673
    functionLinenumberEnd: 702
    functionName: pkix_pl_CRLEntry_CreateEntry
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c
    functionUses: 0
    functionsReached:
    - PKIX_RETURN
    - PKIX_CHECK
    - PKIX_PL_Object_Alloc
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CRLEntry_CreateEntry(\n        CERTCrlEntry
      *nssCrlEntry, /* entry data to be created from */\n        PKIX_PL_CRLEntry
      **pCrlEntry,\n        void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:741,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:742,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:746,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:746,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:751,1
    - Dst: pkix_pl_CRLEntry_CreateEntry
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:751,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:760,1
    - Dst: pkix_pl_BigInt_CreateWithBytes
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:760,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:767,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:767,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:771,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:780,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:783,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:786,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 3
    argNames:
    - nssCrlEntries
    - pCrlEntryList
    - plContext
    argTypes:
    - CERTCrlEntry**
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 727
    functionDepth: 3
    functionLinenumber: 727
    functionLinenumberEnd: 787
    functionName: pkix_pl_CRLEntry_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c
    functionUses: 1
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_Create
    - pkix_pl_BigInt_CreateWithBytes
    - PKIX_List_AppendItem
    - PKIX_ENTER
    - pkix_pl_CRLEntry_CreateEntry
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CRLEntry_Create(\n        CERTCrlEntry **nssCrlEntries,
      /* head of entry list */\n        PKIX_List **pCrlEntryList,\n        void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:804,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:805,1
    - Dst: PKIX_OBJECT_LOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:809,1
    - Dst: PKIX_CRLENTRY_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:815,1
    - Dst: CERT_FindCRLEntryReasonExten
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:816,1
    - Dst: PKIX_OBJECT_UNLOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:826,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:834,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - crlEntry
    - pReason
    - plContext
    argTypes:
    - PKIX_PL_CRLEntry*
    - PKIX_Int32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 795
    functionDepth: 1
    functionLinenumber: 795
    functionLinenumberEnd: 835
    functionName: PKIX_PL_CRLEntry_GetCRLEntryReasonCode
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c
    functionUses: 3
    functionsReached:
    - PKIX_RETURN
    - PKIX_CRLENTRY_DEBUG
    - CERT_FindCRLEntryReasonExten
    - PKIX_ENTER
    - PKIX_OBJECT_UNLOCK
    - PKIX_NULLCHECK_TWO
    - PKIX_OBJECT_LOCK
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_CRLEntry_GetCRLEntryReasonCode (\n        PKIX_PL_CRLEntry
      *crlEntry,\n        PKIX_Int32 *pReason,\n        void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:850,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:851,1
    - Dst: PKIX_OBJECT_LOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:856,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:862,1
    - Dst: pkix_pl_OID_GetCriticalExtensionOIDs
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:862,1
    - Dst: PKIX_OBJECT_UNLOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:869,1
    - Dst: PKIX_DUPLICATE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:874,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c:879,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - crlEntry
    - pList
    - plContext
    argTypes:
    - PKIX_PL_CRLEntry*
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 841
    functionDepth: 1
    functionLinenumber: 841
    functionLinenumberEnd: 880
    functionName: PKIX_PL_CRLEntry_GetCriticalExtensionOIDs
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crlentry.c
    functionUses: 2
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_pl_OID_GetCriticalExtensionOIDs
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_OBJECT_UNLOCK
    - PKIX_DUPLICATE
    - PKIX_OBJECT_LOCK
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_CRLEntry_GetCriticalExtensionOIDs (\n        PKIX_PL_CRLEntry
      *crlEntry,\n        PKIX_List **pList,  /* list of PKIX_PL_OID */\n        void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:41,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:42,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - date
    - pPRTime
    - plContext
    argTypes:
    - PKIX_PL_Date*
    - PRTime*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 47
    functionName: pkix_pl_Date_GetPRTime
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c
    functionUses: 4
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_Date_GetPRTime(\n        PKIX_PL_Date *date,\n
      \       PRTime *pPRTime,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:77,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:78,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:81,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:81,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - prtime
    - pDate
    - plContext
    argTypes:
    - PRTime
    - PKIX_PL_Date**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 92
    functionName: pkix_pl_Date_CreateFromPRTime
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c
    functionUses: 5
    functionsReached:
    - PKIX_RETURN
    - PKIX_CHECK
    - PKIX_PL_Object_Alloc
    - PKIX_ENTER
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_Date_CreateFromPRTime(\n        PRTime prtime,\n
      \       PKIX_PL_Date **pDate,\n        void *plContext)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:123,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:124,1
    - Dst: PKIX_PL_NSSCALLRV
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:128,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:131,1
    - Dst: PKIX_PL_NSSCALLRV
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:140,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:143,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:147,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:150,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:150,1
    - Dst: PR_Free
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:155,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:157,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - nssTime
    - pString
    - plContext
    argTypes:
    - SECItem*
    - PKIX_PL_String**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 158
    functionName: pkix_pl_Date_ToString_Helper
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c
    functionUses: 3
    functionsReached:
    - PKIX_CHECK
    - PKIX_PL_String_Create
    - PKIX_RETURN
    - PR_Free
    - PKIX_PL_NSSCALLRV
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_Date_ToString_Helper(\n        SECItem *nssTime,\n
      \       PKIX_PL_String **pString,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:170,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:171,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:173,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:173,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 165
    functionDepth: 3
    functionLinenumber: 165
    functionLinenumberEnd: 177
    functionName: pkix_pl_Date_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c
    functionUses: 0
    functionsReached:
    - PKIX_RETURN
    - PKIX_CHECK
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_Date_Destroy(\n        PKIX_PL_Object *object,\n
      \       void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:193,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:194,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:196,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:196,1
    - Dst: DER_EncodeTimeChoice
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:200,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:202,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:204,1
    - Dst: pkix_pl_Date_ToString_Helper
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:204,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:209,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:212,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - object
    - pString
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_String**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 183
    functionDepth: 3
    functionLinenumber: 183
    functionLinenumberEnd: 213
    functionName: pkix_pl_Date_ToString
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c
    functionUses: 0
    functionsReached:
    - pkix_pl_Date_ToString_Helper
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - DER_EncodeTimeChoice
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    - SECITEM_FreeItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_Date_ToString(\n        PKIX_PL_Object *object,\n
      \       PKIX_PL_String **pString,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:228,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:229,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:231,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:231,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:236,1
    - Dst: pkix_hash
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:236,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - object
    - pHashcode
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 219
    functionDepth: 3
    functionLinenumber: 219
    functionLinenumberEnd: 249
    functionName: pkix_pl_Date_Hashcode
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - pkix_hash
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_Date_Hashcode(\n        PKIX_PL_Object *object,\n
      \       PKIX_UInt32 *pHashcode,\n        void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:266,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:267,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:269,1
    - Dst: pkix_CheckTypes
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:269,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:287,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - firstObject
    - secondObject
    - pResult
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    - PKIX_Int32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 255
    functionDepth: 2
    functionLinenumber: 255
    functionLinenumberEnd: 288
    functionName: pkix_pl_Date_Comparator
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c
    functionUses: 0
    functionsReached:
    - PKIX_RETURN
    - PKIX_CHECK
    - PKIX_ENTER
    - pkix_CheckTypes
    - PKIX_NULLCHECK_THREE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_Date_Comparator(\n        PKIX_PL_Object *firstObject,\n
      \       PKIX_PL_Object *secondObject,\n        PKIX_Int32 *pResult,\n        void
      *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:301,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:302,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:305,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:305,1
    - Dst: pkix_pl_Date_Comparator
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:319,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:322,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:327,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - firstObject
    - secondObject
    - pResult
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 294
    functionDepth: 3
    functionLinenumber: 294
    functionLinenumberEnd: 328
    functionName: pkix_pl_Date_Equals
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_pl_Date_Comparator
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - pkix_CheckType
    - PKIX_DECREF
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_Date_Equals(\n        PKIX_PL_Object *firstObject,\n
      \       PKIX_PL_Object *secondObject,\n        PKIX_Boolean *pResult,\n        void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:347,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 359
    functionName: pkix_pl_Date_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      pkix_pl_Date_RegisterSelf(void *plContext)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:378,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:379,1
    - Dst: PKIX_DATE_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:382,1
    - Dst: PR_Now
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:383,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:386,1
    - Dst: PKIX_PL_String_GetEncoded
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:386,1
    - Dst: PKIX_DATE_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:394,1
    - Dst: DER_AsciiToTime
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:396,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:398,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:403,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:403,1
    - Dst: PKIX_FREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:415,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:417,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 3
    argNames:
    - stringRep
    - pDate
    - plContext
    argTypes:
    - PKIX_PL_String*
    - PKIX_PL_Date**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 418
    functionName: PKIX_PL_Date_Create_UTCTime
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c
    functionUses: 10
    functionsReached:
    - PKIX_FREE
    - PKIX_PL_String_GetEncoded
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_DATE_DEBUG
    - PR_Now
    - DER_AsciiToTime
    - PKIX_PL_Object_Alloc
    - PKIX_ENTER
    - PKIX_ERROR
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Date_Create_UTCTime(\n        PKIX_PL_String
      *stringRep,\n        PKIX_PL_Date **pDate,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:433,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:434,1
    - Dst: PR_Now
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:436,1
    - Dst: PR_SecondsToInterval
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:436,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:438,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:438,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - secondsOffset
    - pDate
    - plContext
    argTypes:
    - PKIX_Int32
    - PKIX_PL_Date**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 424
    functionDepth: 1
    functionLinenumber: 424
    functionLinenumberEnd: 451
    functionName: PKIX_PL_Date_Create_CurrentOffBySeconds
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c
    functionUses: 3
    functionsReached:
    - PKIX_CHECK
    - PR_SecondsToInterval
    - PKIX_RETURN
    - PR_Now
    - PKIX_PL_Object_Alloc
    - PKIX_ENTER
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Date_Create_CurrentOffBySeconds(\n        PKIX_Int32
      secondsOffset,\n        PKIX_PL_Date **pDate,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:459,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:460,1
    - Dst: pkix_pl_Date_CreateFromPRTime
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:461,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - prtime
    - pDate
    - plContext
    argTypes:
    - PRTime
    - PKIX_PL_Date**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 453
    functionDepth: 2
    functionLinenumber: 453
    functionLinenumberEnd: 466
    functionName: PKIX_PL_Date_CreateFromPRTime
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_date.c
    functionUses: 0
    functionsReached:
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_CHECK
    - pkix_pl_Date_CreateFromPRTime
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Date_CreateFromPRTime(\n        PRTime prtime,\n
      \       PKIX_PL_Date **pDate,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:44,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:45,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - genName
    - pNssGenName
    - plContext
    argTypes:
    - PKIX_PL_GeneralName*
    - CERTGeneralName**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 52
    functionName: pkix_pl_GeneralName_GetNssGeneralName
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c
    functionUses: 1
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_GeneralName_GetNssGeneralName(\n        PKIX_PL_GeneralName
      *genName,\n        CERTGeneralName **pNssGenName,\n        void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:85,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:86,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:88,1
    - Dst: PKIX_PL_Malloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:88,1
    - Dst: PKIX_GENERALNAME_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:93,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:94,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:97,1
    - Dst: PKIX_GENERALNAME_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:101,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:102,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:105,1
    - Dst: PKIX_GENERALNAME_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:116,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:117,1
    - Dst: PKIX_GENERALNAME_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:119,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:120,1
    - Dst: PKIX_FREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:122,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:126,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 3
    argNames:
    - nssAltName
    - pOtherName
    - plContext
    argTypes:
    - CERTGeneralName*
    - OtherName**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 127
    functionName: pkix_pl_OtherName_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c
    functionUses: 0
    functionsReached:
    - PKIX_FREE
    - PKIX_CHECK
    - PKIX_RETURN
    - SECITEM_CopyItem
    - PKIX_ENTER
    - SECITEM_FreeItem
    - PKIX_PL_Malloc
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    - PKIX_GENERALNAME_DEBUG
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_OtherName_Create(\n        CERTGeneralName *nssAltName,\n
      \       OtherName **pOtherName,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:160,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:161,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:165,1
    - Dst: PKIX_PL_X500Name_CreateFromCERTName
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:165,1
    - Dst: PR_Free
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:173,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:174,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - nssAltName
    - pX500Name
    - plContext
    argTypes:
    - CERTGeneralName*
    - PKIX_PL_X500Name**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 177
    functionName: pkix_pl_DirectoryName_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PR_Free
    - PKIX_PL_X500Name_CreateFromCERTName
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_DirectoryName_Create(\n        CERTGeneralName
      *nssAltName,\n        PKIX_PL_X500Name **pX500Name,\n        void *plContext)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:212,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:213,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:216,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:216,1
    - Dst: PKIX_GENERALNAME_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:240,1
    - Dst: CERT_CreateGeneralNameList
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:241,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:244,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:259,1
    - Dst: pkix_pl_OtherName_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:259,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:268,1
    - Dst: pkix_pl_DirectoryName_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:268,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:275,1
    - Dst: PKIX_PL_OID_CreateBySECItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:275,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:287,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:289,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:293,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:300,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:302,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 49
    argCount: 3
    argNames:
    - nssAltName
    - pGenName
    - plContext
    argTypes:
    - CERTGeneralName*
    - PKIX_PL_GeneralName**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 199
    functionDepth: 2
    functionLinenumber: 199
    functionLinenumberEnd: 303
    functionName: pkix_pl_GeneralName_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c
    functionUses: 4
    functionsReached:
    - SECITEM_DupItem
    - PKIX_CHECK
    - PKIX_RETURN
    - CERT_CreateGeneralNameList
    - pkix_pl_OtherName_Create
    - PKIX_PL_Object_Alloc
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_PL_OID_CreateBySECItem
    - pkix_pl_DirectoryName_Create
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    - PKIX_GENERALNAME_DEBUG
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_GeneralName_Create(\n        CERTGeneralName
      *nssAltName,\n        PKIX_PL_GeneralName **pGenName,\n        void *plContext)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:339,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:340,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:351,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:353,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:353,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:363,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:363,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:373,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:373,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:381,1
    - Dst: pkix_pl_ipAddrBytes2Ascii
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:381,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:385,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:385,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:393,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:397,1
    - Dst: pkix_pl_oidBytes2Ascii
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:397,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:401,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:401,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:411,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:411,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:417,1
    - Dst: PKIX_PL_Object_ToString
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:417,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:422,1
    - Dst: PKIX_FREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:428,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:430,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 42
    argCount: 3
    argNames:
    - name
    - pString
    - plContext
    argTypes:
    - PKIX_PL_GeneralName*
    - PKIX_PL_String**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 431
    functionName: pkix_pl_GeneralName_ToString_Helper
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c
    functionUses: 0
    functionsReached:
    - PKIX_FREE
    - PKIX_CHECK
    - PKIX_PL_String_Create
    - PKIX_RETURN
    - PKIX_PL_Object_ToString
    - pkix_pl_oidBytes2Ascii
    - pkix_pl_ipAddrBytes2Ascii
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_GeneralName_ToString_Helper(\n        PKIX_PL_GeneralName
      *name,\n        PKIX_PL_String **pString,\n        void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:446,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:447,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:449,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:449,1
    - Dst: PKIX_GENERALNAME_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:454,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:455,1
    - Dst: PKIX_GENERALNAME_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:462,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:463,1
    - Dst: PKIX_GENERALNAME_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:465,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:466,1
    - Dst: PKIX_FREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:468,1
    - Dst: PKIX_GENERALNAME_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:473,1
    - Dst: CERT_DestroyGeneralNameList
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:475,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:478,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:479,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:483,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 437
    functionDepth: 3
    functionLinenumber: 437
    functionLinenumberEnd: 484
    functionName: pkix_pl_GeneralName_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c
    functionUses: 0
    functionsReached:
    - PKIX_FREE
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_NULLCHECK_ONE
    - CERT_DestroyGeneralNameList
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - SECITEM_FreeItem
    - PKIX_GENERALNAME_DEBUG
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_GeneralName_Destroy(\n        PKIX_PL_Object
      *object,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:499,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:500,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:502,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:502,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:507,1
    - Dst: pkix_pl_GeneralName_ToString_Helper
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:507,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - object
    - pString
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_String**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 490
    functionDepth: 3
    functionLinenumber: 490
    functionLinenumberEnd: 518
    functionName: pkix_pl_GeneralName_ToString
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_pl_GeneralName_ToString_Helper
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_GeneralName_ToString(\n        PKIX_PL_Object
      *object,\n        PKIX_PL_String **pString,\n        void *plContext)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:533,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:534,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:536,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:536,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:548,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:549,1
    - Dst: pkix_hash
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:549,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:558,1
    - Dst: PKIX_PL_Object_Hashcode
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:558,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:565,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:566,1
    - Dst: pkix_hash
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:566,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:574,1
    - Dst: pkix_hash
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:574,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:585,1
    - Dst: PKIX_PL_Object_Hashcode
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:585,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:598,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 3
    argNames:
    - object
    - pHashcode
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 524
    functionDepth: 3
    functionLinenumber: 524
    functionLinenumberEnd: 600
    functionName: pkix_pl_GeneralName_Hashcode
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - pkix_hash
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_PL_Object_Hashcode
    - PKIX_NULLCHECK_TWO
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_GeneralName_Hashcode(\n        PKIX_PL_Object
      *object,\n        PKIX_UInt32 *pHashcode,\n        void *plContext)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:617,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:618,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:621,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:621,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:639,1
    - Dst: PKIX_PL_Object_GetType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:639,1
    - Dst: PKIX_GENERALNAME_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:660,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:661,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:667,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:667,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:675,1
    - Dst: PKIX_GENERALNAME_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:676,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:677,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:680,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:687,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:687,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:700,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 55
    argCount: 4
    argNames:
    - firstObject
    - secondObject
    - pResult
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 606
    functionDepth: 3
    functionLinenumber: 606
    functionLinenumberEnd: 701
    functionName: pkix_pl_GeneralName_Equals
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c
    functionUses: 0
    functionsReached:
    - SECITEM_CompareItem
    - PKIX_CHECK
    - PKIX_PL_Object_Equals
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - pkix_CheckType
    - PKIX_PL_Object_GetType
    - PKIX_NULLCHECK_TWO
    - PKIX_GENERALNAME_DEBUG
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_GeneralName_Equals(\n        PKIX_PL_Object
      *firstObject,\n        PKIX_PL_Object *secondObject,\n        PKIX_Boolean *pResult,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:721,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 714
    functionDepth: 1
    functionLinenumber: 714
    functionLinenumberEnd: 736
    functionName: pkix_pl_GeneralName_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      pkix_pl_GeneralName_RegisterSelf(void *plContext)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:762,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:763,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:765,1
    - Dst: PKIX_PL_String_GetEncoded
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:765,1
    - Dst: PKIX_GENERALNAME_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:774,1
    - Dst: PL_strlen
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:775,1
    - Dst: PKIX_GENERALNAME_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:776,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:777,1
    - Dst: PKIX_GENERALNAME_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:778,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:779,1
    - Dst: PKIX_CERT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:780,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:781,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:783,1
    - Dst: PKIX_GENERALNAME_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:785,1
    - Dst: CERT_NewGeneralName
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:786,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:788,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:800,1
    - Dst: PKIX_PL_X500Name_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:800,1
    - Dst: PKIX_GENERALNAME_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:804,1
    - Dst: CERT_AsciiToName
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:805,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:810,1
    - Dst: PKIX_PL_OID_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:810,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:817,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:821,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:821,1
    - Dst: PKIX_GENERALNAME_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:830,1
    - Dst: CERT_CreateGeneralNameList
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:831,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:833,1
    - Dst: PKIX_FREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:847,1
    - Dst: PKIX_CERT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:850,1
    - Dst: CERT_DestroyName
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:851,1
    - Dst: PKIX_CERT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:855,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:856,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:860,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:861,1
    - Dst: PKIX_GENERALNAME_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:863,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:865,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c:870,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 74
    argCount: 4
    argNames:
    - nameType
    - stringRep
    - pGName
    - plContext
    argTypes:
    - PKIX_UInt32
    - PKIX_PL_String*
    - PKIX_PL_GeneralName**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 744
    functionDepth: 1
    functionLinenumber: 744
    functionLinenumberEnd: 871
    functionName: PKIX_PL_GeneralName_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_generalname.c
    functionUses: 1
    functionsReached:
    - PL_strlen
    - PKIX_RETURN
    - PKIX_DECREF
    - PKIX_ERROR
    - PKIX_FREE
    - PORT_Memcpy
    - PORT_NewArena
    - CERT_AsciiToName
    - CERT_CreateGeneralNameList
    - CERT_DestroyName
    - PKIX_PL_Object_Alloc
    - PKIX_ENTER
    - PKIX_GENERALNAME_DEBUG
    - SECITEM_FreeItem
    - PKIX_PL_String_GetEncoded
    - PORT_FreeArena
    - SECITEM_AllocItem
    - PKIX_PL_OID_Create
    - PKIX_PL_X500Name_Create
    - PKIX_NULLCHECK_TWO
    - PKIX_CHECK
    - PKIX_CERT_DEBUG
    - CERT_NewGeneralName
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_GeneralName_Create(\n        PKIX_UInt32 nameType,\n
      \       PKIX_PL_String *stringRep,\n        PKIX_PL_GeneralName **pGName,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:49,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:50,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:52,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:52,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:61,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:68,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 4
    argNames:
    - method
    - gName
    - pInfoAccess
    - plContext
    argTypes:
    - PKIX_UInt32
    - PKIX_PL_GeneralName*
    - PKIX_PL_InfoAccess**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 71
    functionName: pkix_pl_InfoAccess_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c
    functionUses: 0
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_Alloc
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_InfoAccess_Create(\n        PKIX_UInt32 method,\n
      \       PKIX_PL_GeneralName *gName,\n        PKIX_PL_InfoAccess **pInfoAccess,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:84,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:85,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:87,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:87,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:92,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 77
    functionDepth: 3
    functionLinenumber: 77
    functionLinenumberEnd: 97
    functionName: pkix_pl_InfoAccess_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_InfoAccess_Destroy(\n        PKIX_PL_Object
      *object,\n        void *plContext)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:117,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:118,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:120,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:120,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:132,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:132,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:157,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:157,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:165,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:168,1
    - Dst: PKIX_PL_Sprintf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:168,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:180,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:181,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:182,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:184,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 3
    argNames:
    - object
    - pString
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_String**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 103
    functionDepth: 3
    functionLinenumber: 103
    functionLinenumberEnd: 185
    functionName: pkix_pl_InfoAccess_ToString
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_PL_String_Create
    - PKIX_RETURN
    - PKIX_PL_Sprintf
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_TOSTRING
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_InfoAccess_ToString(\n        PKIX_PL_Object
      *object,\n        PKIX_PL_String **pString,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:200,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:201,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:203,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:203,1
    - Dst: PKIX_HASHCODE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:209,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - object
    - pHashcode
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 191
    functionDepth: 3
    functionLinenumber: 191
    functionLinenumberEnd: 220
    functionName: pkix_pl_InfoAccess_Hashcode
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_HASHCODE
    - pkix_CheckType
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_InfoAccess_Hashcode(\n        PKIX_PL_Object
      *object,\n        PKIX_UInt32 *pHashcode,\n        void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:238,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:239,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:242,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:242,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:260,1
    - Dst: PKIX_PL_Object_GetType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:260,1
    - Dst: PKIX_EQUALS
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:274,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:281,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 4
    argNames:
    - firstObject
    - secondObject
    - pResult
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 226
    functionDepth: 3
    functionLinenumber: 226
    functionLinenumberEnd: 282
    functionName: pkix_pl_InfoAccess_Equals
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_EQUALS
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - pkix_CheckType
    - PKIX_PL_Object_GetType
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_InfoAccess_Equals(\n        PKIX_PL_Object *firstObject,\n
      \       PKIX_PL_Object *secondObject,\n        PKIX_Boolean *pResult,\n        void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:301,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 317
    functionName: pkix_pl_InfoAccess_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      pkix_pl_InfoAccess_RegisterSelf(void *plContext)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:353,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:354,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:356,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:356,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:369,1
    - Dst: pkix_pl_GeneralName_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:369,1
    - Dst: PKIX_CERT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:373,1
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:374,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:390,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:393,1
    - Dst: pkix_pl_InfoAccess_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:393,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:397,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:397,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:402,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:403,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:411,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:412,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:413,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:415,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 3
    argNames:
    - nssInfoAccess
    - pInfoAccessList
    - plContext
    argTypes:
    - CERTAuthInfoAccess**
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 341
    functionDepth: 3
    functionLinenumber: 341
    functionLinenumberEnd: 416
    functionName: pkix_pl_InfoAccess_CreateList
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c
    functionUses: 2
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_NULLCHECK_ONE
    - PKIX_List_Create
    - PKIX_CERT_DEBUG
    - pkix_pl_InfoAccess_Create
    - SECOID_FindOIDTag
    - PKIX_List_AppendItem
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_ERROR
    - pkix_pl_GeneralName_Create
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_InfoAccess_CreateList(\n        CERTAuthInfoAccess
      **nssInfoAccess,\n        PKIX_List **pInfoAccessList, /* of PKIX_PL_InfoAccess
      */\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:429,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:430,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - infoAccess
    - pMethod
    - plContext
    argTypes:
    - PKIX_PL_InfoAccess*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 435
    functionName: PKIX_PL_InfoAccess_GetMethod
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c
    functionUses: 1
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_InfoAccess_GetMethod(\n        PKIX_PL_InfoAccess
      *infoAccess,\n        PKIX_UInt32 *pMethod,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:446,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:447,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:449,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - infoAccess
    - pLocation
    - plContext
    argTypes:
    - PKIX_PL_InfoAccess*
    - PKIX_PL_GeneralName**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 455
    functionName: PKIX_PL_InfoAccess_GetLocation
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c
    functionUses: 2
    functionsReached:
    - PKIX_INCREF
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_InfoAccess_GetLocation(\n        PKIX_PL_InfoAccess
      *infoAccess,\n        PKIX_PL_GeneralName **pLocation,\n        void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:471,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:472,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:476,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:479,1
    - Dst: PKIX_PL_String_GetEncoded
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:479,1
    - Dst: PKIX_OID_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:483,1
    - Dst: PORT_Strncmp
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:485,1
    - Dst: PORT_Strncmp
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:489,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:498,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:499,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:501,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - infoAccess
    - pType
    - plContext
    argTypes:
    - PKIX_PL_InfoAccess*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 502
    functionName: PKIX_PL_InfoAccess_GetLocationType
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c
    functionUses: 1
    functionsReached:
    - PKIX_PL_String_GetEncoded
    - PKIX_CHECK
    - PKIX_RETURN
    - PORT_Strncmp
    - PKIX_OID_DEBUG
    - PKIX_PL_Free
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_TOSTRING
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_InfoAccess_GetLocationType(\n        PKIX_PL_InfoAccess
      *infoAccess,\n        PKIX_UInt32 *pType,\n        void *plContext)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:550,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:551,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:565,1
    - Dst: PORT_ArenaZNewArray
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:579,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:581,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:591,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:593,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:596,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:621,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 6
    argNames:
    - arena
    - startPos
    - tokens
    - separator
    - terminator
    - plContext
    argTypes:
    - PLArenaPool*
    - char**
    - char***
    - char
    - char
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 537
    functionDepth: 1
    functionLinenumber: 537
    functionLinenumberEnd: 622
    functionName: pkix_pl_InfoAccess_ParseTokens
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c
    functionUses: 0
    functionsReached:
    - PORT_ArenaZNewArray
    - PORT_Memcpy
    - PKIX_RETURN
    - PORT_ArenaZAlloc
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_InfoAccess_ParseTokens(\n        PLArenaPool
      *arena,\n        char **startPos, /* return update */\n        char ***tokens,\n
      \       char separator,\n        char terminator,\n        void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:628,1
    - Dst: isupper
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:630,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ch
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 636
    functionName: pkix_pl_HexDigitToInt
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c
    functionUses: 0
    functionsReached:
    - isdigit
    - isupper
    linkageType: ''
    returnType: int
    signature: "int pkix_pl_HexDigitToInt(\n        int ch)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isxdigit
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:649,1
    - Dst: isxdigit
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:650,1
    - Dst: pkix_pl_HexDigitToInt
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:651,1
    - Dst: pkix_pl_HexDigitToInt
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:653,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - location
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 641
    functionDepth: 1
    functionLinenumber: 641
    functionLinenumberEnd: 660
    functionName: pkix_pl_UnescapeURL
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c
    functionUses: 0
    functionsReached:
    - pkix_pl_HexDigitToInt
    - isxdigit
    linkageType: ''
    returnType: void
    signature: "void pkix_pl_UnescapeURL(\n        char *location)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:724,1
    - Dst: PKIX_NULLCHECK_FOUR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:725,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:727,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:730,1
    - Dst: PKIX_PL_String_GetEncoded
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:730,1
    - Dst: pkix_pl_UnescapeURL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:738,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:746,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:755,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:764,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:770,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:772,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:775,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:786,1
    - Dst: pkix_pl_InfoAccess_ParseTokens
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:786,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:799,1
    - Dst: PORT_ArenaZNewArray
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:811,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:813,1
    - Dst: PORT_ArenaZNewArray
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:817,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:819,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:830,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:847,1
    - Dst: pkix_pl_InfoAccess_ParseTokens
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:847,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:860,1
    - Dst: pkix_pl_LdapRequest_AttrStringToBit
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:860,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:869,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:870,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c:872,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 82
    argCount: 5
    argNames:
    - gName
    - arena
    - request
    - pDomainName
    - plContext
    argTypes:
    - PKIX_PL_GeneralName*
    - PLArenaPool*
    - LDAPRequestParams*
    - char**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 701
    functionDepth: 2
    functionLinenumber: 701
    functionLinenumberEnd: 873
    functionName: pkix_pl_InfoAccess_ParseLocation
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_infoaccess.c
    functionUses: 0
    functionsReached:
    - PORT_ArenaZNewArray
    - PKIX_PL_String_GetEncoded
    - PKIX_CHECK
    - PORT_ArenaZAlloc
    - PORT_Memcpy
    - PKIX_RETURN
    - PKIX_NULLCHECK_FOUR
    - PKIX_PL_Free
    - PKIX_ENTER
    - pkix_pl_UnescapeURL
    - pkix_pl_InfoAccess_ParseTokens
    - PKIX_DECREF
    - PKIX_TOSTRING
    - pkix_pl_LdapRequest_AttrStringToBit
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_InfoAccess_ParseLocation(\n        PKIX_PL_GeneralName
      *gName,\n        PLArenaPool *arena,\n        LDAPRequestParams *request,\n
      \       char **pDomainName,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:26,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:27,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:29,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:29,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:37,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 19
    functionDepth: 3
    functionLinenumber: 19
    functionLinenumberEnd: 44
    functionName: pkix_pl_X500Name_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PORT_FreeArena
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_X500Name_Destroy(\n        PKIX_PL_Object *object,\n
      \       void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:60,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:61,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:63,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:63,1
    - Dst: CERT_NameToAscii
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:67,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:69,1
    - Dst: PL_strlen
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:71,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:73,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:73,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - object
    - pString
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_String**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 50
    functionDepth: 3
    functionLinenumber: 50
    functionLinenumberEnd: 80
    functionName: pkix_pl_X500Name_ToString
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c
    functionUses: 0
    functionsReached:
    - CERT_NameToAscii
    - PL_strlen
    - PKIX_CHECK
    - PKIX_PL_String_Create
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_X500Name_ToString(\n        PKIX_PL_Object *object,\n
      \       PKIX_PL_String **pString,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:96,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:97,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:99,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:99,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:108,1
    - Dst: pkix_hash
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:108,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - object
    - pHashcode
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 86
    functionDepth: 3
    functionLinenumber: 86
    functionLinenumberEnd: 117
    functionName: pkix_pl_X500Name_Hashcode
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - pkix_hash
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_X500Name_Hashcode(\n        PKIX_PL_Object *object,\n
      \       PKIX_UInt32 *pHashcode,\n        void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:133,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:134,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:137,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:137,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:154,1
    - Dst: PKIX_PL_Object_GetType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:154,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:159,1
    - Dst: PKIX_PL_X500Name_Match
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:160,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:167,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - firstObject
    - secondObject
    - pResult
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 124
    functionDepth: 3
    functionLinenumber: 124
    functionLinenumberEnd: 168
    functionName: pkix_pl_X500Name_Equals
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_X500Name_Match
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - pkix_CheckType
    - PKIX_PL_Object_GetType
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_X500Name_Equals(\n        PKIX_PL_Object *firstObject,\n
      \       PKIX_PL_Object *secondObject,\n        PKIX_Boolean *pResult,\n        void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:188,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 203
    functionName: pkix_pl_X500Name_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      pkix_pl_X500Name_RegisterSelf(void *plContext)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:244,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:245,1
    - Dst: CERT_AsciiToName
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:247,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:249,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:255,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:255,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:268,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:272,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:281,1
    - Dst: CERT_DestroyName
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:284,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:288,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 3
    argNames:
    - stringRep
    - pName
    - plContext
    argTypes:
    - char*
    - PKIX_PL_X500Name**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 289
    functionName: pkix_pl_X500Name_CreateFromUtf8
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c
    functionUses: 0
    functionsReached:
    - SEC_ASN1EncodeItem
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_DecRef
    - CERT_AsciiToName
    - CERT_DestroyName
    - PKIX_PL_Object_Alloc
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_X500Name_CreateFromUtf8(\n        char *stringRep,\n
      \       PKIX_PL_X500Name **pName,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:323,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:324,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - xname
    - pCERTName
    - plContext
    argTypes:
    - PKIX_PL_X500Name*
    - CERTName**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 329
    functionName: pkix_pl_X500Name_GetCERTName
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_X500Name_GetCERTName(\n        PKIX_PL_X500Name
      *xname,\n        CERTName **pCERTName,\n        void *plContext)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:348,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:349,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:351,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:354,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:356,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:359,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:359,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:370,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:372,1
    - Dst: CERT_CopyName
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:377,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:379,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:382,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:386,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:395,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:398,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:402,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 4
    argNames:
    - derName
    - name
    - pName
    - plContext
    argTypes:
    - SECItem*
    - CERTName*
    - PKIX_PL_X500Name**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 403
    functionName: PKIX_PL_X500Name_CreateFromCERTName
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c
    functionUses: 4
    functionsReached:
    - PORT_NewArena
    - PKIX_CHECK
    - PKIX_PL_Object_DecRef
    - PORT_FreeArena
    - PKIX_RETURN
    - SECITEM_CopyItem
    - PKIX_PL_Object_Alloc
    - CERT_CopyName
    - PKIX_ENTER
    - SEC_QuickDERDecodeItem
    - PKIX_ERROR
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_X500Name_CreateFromCERTName(\n        SECItem
      *derName,\n        CERTName *name, \n        PKIX_PL_X500Name **pName,\n        void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:421,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:422,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:433,1
    - Dst: PKIX_PL_String_GetEncoded
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:433,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:441,1
    - Dst: pkix_pl_X500Name_CreateFromUtf8
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:442,1
    - Dst: PKIX_FREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:447,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - stringRep
    - pName
    - plContext
    argTypes:
    - PKIX_PL_String*
    - PKIX_PL_X500Name**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 412
    functionDepth: 2
    functionLinenumber: 412
    functionLinenumberEnd: 450
    functionName: PKIX_PL_X500Name_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c
    functionUses: 6
    functionsReached:
    - pkix_pl_X500Name_CreateFromUtf8
    - PKIX_FREE
    - PKIX_PL_String_GetEncoded
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_X500Name_Create(\n        PKIX_PL_String *stringRep,\n
      \       PKIX_PL_X500Name **pName,\n        void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:467,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:468,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:478,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:480,1
    - Dst: CERT_CompareName
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:482,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:490,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 4
    argNames:
    - firstX500Name
    - secondX500Name
    - pResult
    - plContext
    argTypes:
    - PKIX_PL_X500Name*
    - PKIX_PL_X500Name*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 491
    functionName: PKIX_PL_X500Name_Match
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c
    functionUses: 6
    functionsReached:
    - SECITEM_CompareItem
    - PKIX_RETURN
    - CERT_CompareName
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_X500Name_Match(\n        PKIX_PL_X500Name *firstX500Name,\n
      \       PKIX_PL_X500Name *secondX500Name,\n        PKIX_Boolean *pResult,\n
      \       void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:528,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:530,1
    - Dst: SECITEM_ArenaDupItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:538,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:540,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:546,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - xname
    - arena
    - pDERName
    - plContext
    argTypes:
    - PKIX_PL_X500Name*
    - PLArenaPool*
    - SECItem**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 547
    functionName: pkix_pl_X500Name_GetDERName
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c
    functionUses: 0
    functionsReached:
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - SECITEM_ArenaDupItem
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_X500Name_GetDERName(\n        PKIX_PL_X500Name
      *xname,\n        PLArenaPool *arena,\n        SECItem **pDERName,\n        void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:581,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:582,1
    - Dst: CERT_GetCommonName
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:584,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - xname
    - pCommonName
    - plContext
    argTypes:
    - PKIX_PL_X500Name*
    - unsigned char**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 575
    functionDepth: 1
    functionLinenumber: 575
    functionLinenumberEnd: 587
    functionName: pkix_pl_X500Name_GetCommonName
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c
    functionUses: 0
    functionsReached:
    - CERT_GetCommonName
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_X500Name_GetCommonName(\n        PKIX_PL_X500Name
      *xname,\n        unsigned char **pCommonName,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:621,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:622,1
    - Dst: CERT_GetCountryName
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:624,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - xname
    - pCountryName
    - plContext
    argTypes:
    - PKIX_PL_X500Name*
    - unsigned char**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 615
    functionDepth: 1
    functionLinenumber: 615
    functionLinenumberEnd: 627
    functionName: pkix_pl_X500Name_GetCountryName
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c
    functionUses: 0
    functionsReached:
    - CERT_GetCountryName
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_X500Name_GetCountryName(\n        PKIX_PL_X500Name
      *xname,\n        unsigned char **pCountryName,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:661,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:662,1
    - Dst: CERT_GetOrgName
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:664,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c:666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - xname
    - pOrgName
    - plContext
    argTypes:
    - PKIX_PL_X500Name*
    - unsigned char**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 655
    functionDepth: 1
    functionLinenumber: 655
    functionLinenumberEnd: 667
    functionName: pkix_pl_X500Name_GetOrgName
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_x500name.c
    functionUses: 0
    functionsReached:
    - CERT_GetOrgName
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_X500Name_GetOrgName(\n        PKIX_PL_X500Name
      *xname,\n        unsigned char **pOrgName,\n        void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c:24,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c:25,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c:27,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c:27,1
    - Dst: CERT_DestroyOCSPRequest
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c:33,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c:37,1
    - Dst: PORT_Free
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c:41,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c:44,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c:45,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c:46,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c:50,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 17
    functionDepth: 3
    functionLinenumber: 17
    functionLinenumberEnd: 51
    functionName: pkix_pl_OcspRequest_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PORT_Free
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - SECITEM_FreeItem
    - CERT_DestroyOCSPRequest
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_OcspRequest_Destroy(\n        PKIX_PL_Object
      *object,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c:69,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c:70,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c:72,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c:72,1
    - Dst: PKIX_HASHCODE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c:79,1
    - Dst: PKIX_HASHCODE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c:82,1
    - Dst: PKIX_HASHCODE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c:89,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 3
    argNames:
    - object
    - pHashcode
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 57
    functionDepth: 3
    functionLinenumber: 57
    functionLinenumberEnd: 99
    functionName: pkix_pl_OcspRequest_Hashcode
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_HASHCODE
    - pkix_CheckType
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_OcspRequest_Hashcode(\n        PKIX_PL_Object
      *object,\n        PKIX_UInt32 *pHashcode,\n        void *plContext)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c:117,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c:118,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c:121,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c:121,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c:137,1
    - Dst: PKIX_PL_Object_GetType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c:137,1
    - Dst: PKIX_EQUALS
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c:151,1
    - Dst: PKIX_EQUALS
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c:158,1
    - Dst: PKIX_EQUALS
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c:165,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c:173,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 4
    argNames:
    - firstObj
    - secondObj
    - pResult
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 105
    functionDepth: 3
    functionLinenumber: 105
    functionLinenumberEnd: 174
    functionName: pkix_pl_OcspRequest_Equals
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_EQUALS
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - pkix_CheckType
    - PKIX_PL_Object_GetType
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_OcspRequest_Equals(\n        PKIX_PL_Object
      *firstObj,\n        PKIX_PL_Object *secondObj,\n        PKIX_Boolean *pResult,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c:197,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 212
    functionName: pkix_pl_OcspRequest_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      pkix_pl_OcspRequest_RegisterSelf(void *plContext)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c:277,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c:278,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c:281,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c:281,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c:288,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c:291,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c:294,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c:308,1
    - Dst: ocsp_GetResponderLocation
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c:313,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c:317,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c:320,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c:324,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c:335,1
    - Dst: pkix_pl_Date_GetPRTime
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c:335,1
    - Dst: PR_Now
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c:338,1
    - Dst: cert_CreateSingleCertOCSPRequest
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c:341,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c:348,1
    - Dst: CERT_AddOCSPAcceptableResponses
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c:351,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c:355,1
    - Dst: CERT_EncodeOCSPRequest
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c:358,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c:366,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c:368,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 56
    argCount: 8
    argNames:
    - cert
    - cid
    - validity
    - signerCert
    - methodFlags
    - pURIFound
    - pRequest
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PKIX_PL_OcspCertID*
    - PKIX_PL_Date*
    - PKIX_PL_Cert*
    - PKIX_UInt32
    - PKIX_Boolean*
    - PKIX_PL_OcspRequest**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 252
    functionDepth: 2
    functionLinenumber: 252
    functionLinenumberEnd: 369
    functionName: pkix_pl_OcspRequest_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c
    functionUses: 1
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - ocsp_GetResponderLocation
    - PORT_GetError
    - PR_Now
    - PKIX_PL_Object_Alloc
    - PORT_SetError
    - PKIX_ENTER
    - CERT_GetDefaultCertDB
    - pkix_pl_Date_GetPRTime
    - CERT_AddOCSPAcceptableResponses
    - cert_CreateSingleCertOCSPRequest
    - CERT_EncodeOCSPRequest
    - PKIX_DECREF
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_OcspRequest_Create(\n        PKIX_PL_Cert *cert,\n
      \       PKIX_PL_OcspCertID *cid,\n        PKIX_PL_Date *validity,\n        PKIX_PL_Cert
      *signerCert,\n        PKIX_UInt32 methodFlags,\n        PKIX_Boolean *pURIFound,\n
      \       PKIX_PL_OcspRequest **pRequest,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c:399,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c:400,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - request
    - pRequest
    - plContext
    argTypes:
    - PKIX_PL_OcspRequest*
    - SECItem**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 405
    functionName: pkix_pl_OcspRequest_GetEncoded
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c
    functionUses: 1
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_OcspRequest_GetEncoded(\n        PKIX_PL_OcspRequest
      *request,\n        SECItem **pRequest,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c:435,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c:436,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - request
    - pLocation
    - plContext
    argTypes:
    - PKIX_PL_OcspRequest*
    - char**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 441
    functionName: pkix_pl_OcspRequest_GetLocation
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_ocsprequest.c
    functionUses: 1
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_OcspRequest_GetLocation(\n        PKIX_PL_OcspRequest
      *request,\n        char **pLocation,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mutex.c:26,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mutex.c:27,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mutex.c:30,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mutex.c:30,1
    - Dst: PKIX_MUTEX_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mutex.c:35,1
    - Dst: PR_DestroyLock
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mutex.c:36,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mutex.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 19
    functionDepth: 3
    functionLinenumber: 19
    functionLinenumberEnd: 42
    functionName: pkix_pl_Mutex_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mutex.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_MUTEX_DEBUG
    - pkix_CheckType
    - PR_DestroyLock
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_Mutex_Destroy(\n        PKIX_PL_Object *object,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mutex.c:63,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mutex.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 78
    functionName: pkix_pl_Mutex_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mutex.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_Mutex_RegisterSelf(\n        /* ARGSUSED */
      void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mutex.c:92,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mutex.c:93,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mutex.c:95,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mutex.c:95,1
    - Dst: PKIX_MUTEX_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mutex.c:102,1
    - Dst: PR_NewLock
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mutex.c:103,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mutex.c:107,1
    - Dst: PKIX_ERROR_ALLOC_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mutex.c:108,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mutex.c:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - pNewLock
    - plContext
    argTypes:
    - PKIX_PL_Mutex**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 116
    functionName: PKIX_PL_Mutex_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mutex.c
    functionUses: 3
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_Alloc
    - PKIX_ENTER
    - PKIX_MUTEX_DEBUG
    - PKIX_DECREF
    - PR_NewLock
    - PKIX_ERROR_ALLOC_ERROR
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Mutex_Create(\n        PKIX_PL_Mutex **pNewLock,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mutex.c:126,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mutex.c:127,1
    - Dst: PKIX_MUTEX_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mutex.c:129,1
    - Dst: PR_Lock
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mutex.c:130,1
    - Dst: PKIX_MUTEX_DEBUG_ARG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mutex.c:132,1
    - Dst: PR_GetCurrentThread
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mutex.c:133,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mutex.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - mutex
    - plContext
    argTypes:
    - PKIX_PL_Mutex*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 136
    functionName: PKIX_PL_Mutex_Lock
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mutex.c
    functionUses: 5
    functionsReached:
    - PKIX_RETURN
    - PKIX_NULLCHECK_ONE
    - PR_Lock
    - PKIX_ENTER
    - PKIX_MUTEX_DEBUG
    - PR_GetCurrentThread
    - PKIX_MUTEX_DEBUG_ARG
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Mutex_Lock(\n        PKIX_PL_Mutex *mutex,\n
      \       void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mutex.c:148,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mutex.c:149,1
    - Dst: PKIX_MUTEX_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mutex.c:151,1
    - Dst: PR_Unlock
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mutex.c:152,1
    - Dst: PKIX_MUTEX_DEBUG_ARG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mutex.c:154,1
    - Dst: PR_GetCurrentThread
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mutex.c:155,1
    - Dst: PKIX_ERROR_FATAL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mutex.c:158,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mutex.c:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - mutex
    - plContext
    argTypes:
    - PKIX_PL_Mutex*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 163
    functionName: PKIX_PL_Mutex_Unlock
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mutex.c
    functionUses: 5
    functionsReached:
    - PKIX_RETURN
    - PKIX_NULLCHECK_ONE
    - PKIX_ENTER
    - PKIX_MUTEX_DEBUG
    - PR_Unlock
    - PR_GetCurrentThread
    - PKIX_ERROR_FATAL
    - PKIX_MUTEX_DEBUG_ARG
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Mutex_Unlock(\n        PKIX_PL_Mutex *mutex,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_monitorlock.c:22,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_monitorlock.c:23,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_monitorlock.c:25,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_monitorlock.c:25,1
    - Dst: PKIX_MONITORLOCK_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_monitorlock.c:30,1
    - Dst: PR_DestroyMonitor
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_monitorlock.c:31,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_monitorlock.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 15
    functionDepth: 3
    functionLinenumber: 15
    functionLinenumberEnd: 37
    functionName: pkix_pl_MonitorLock_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_monitorlock.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_NULLCHECK_ONE
    - PR_DestroyMonitor
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_MONITORLOCK_DEBUG
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_MonitorLock_Destroy(\n        PKIX_PL_Object
      *object,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_monitorlock.c:59,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_monitorlock.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 74
    functionName: pkix_pl_MonitorLock_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_monitorlock.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_MonitorLock_RegisterSelf(\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_monitorlock.c:85,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_monitorlock.c:86,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_monitorlock.c:88,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_monitorlock.c:88,1
    - Dst: PKIX_MONITORLOCK_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_monitorlock.c:95,1
    - Dst: PR_NewMonitor
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_monitorlock.c:96,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_monitorlock.c:99,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_monitorlock.c:100,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_monitorlock.c:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - pNewLock
    - plContext
    argTypes:
    - PKIX_PL_MonitorLock**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 108
    functionName: PKIX_PL_MonitorLock_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_monitorlock.c
    functionUses: 2
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_NULLCHECK_ONE
    - PKIX_PL_Object_Alloc
    - PKIX_ENTER
    - PKIX_DECREF
    - PR_NewMonitor
    - PKIX_ERROR
    - PKIX_MONITORLOCK_DEBUG
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_MonitorLock_Create(\n        PKIX_PL_MonitorLock
      **pNewLock,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER_NO_LOGGER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_monitorlock.c:115,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_monitorlock.c:116,1
    - Dst: PKIX_MONITORLOCK_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_monitorlock.c:118,1
    - Dst: PR_EnterMonitor
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_monitorlock.c:119,1
    - Dst: PKIX_RETURN_NO_LOGGER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_monitorlock.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - monitorLock
    - plContext
    argTypes:
    - PKIX_PL_MonitorLock*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 122
    functionName: PKIX_PL_MonitorLock_Enter
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_monitorlock.c
    functionUses: 5
    functionsReached:
    - PKIX_NULLCHECK_ONE
    - PKIX_ENTER_NO_LOGGER
    - PR_EnterMonitor
    - PKIX_RETURN_NO_LOGGER
    - PKIX_MONITORLOCK_DEBUG
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_MonitorLock_Enter(\n        PKIX_PL_MonitorLock
      *monitorLock,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER_NO_LOGGER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_monitorlock.c:129,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_monitorlock.c:130,1
    - Dst: PKIX_MONITORLOCK_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_monitorlock.c:132,1
    - Dst: PR_ExitMonitor
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_monitorlock.c:133,1
    - Dst: PKIX_RETURN_NO_LOGGER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_monitorlock.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - monitorLock
    - plContext
    argTypes:
    - PKIX_PL_MonitorLock*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 136
    functionName: PKIX_PL_MonitorLock_Exit
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_monitorlock.c
    functionUses: 5
    functionsReached:
    - PKIX_NULLCHECK_ONE
    - PKIX_ENTER_NO_LOGGER
    - PR_ExitMonitor
    - PKIX_RETURN_NO_LOGGER
    - PKIX_MONITORLOCK_DEBUG
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_MonitorLock_Exit(\n        PKIX_PL_MonitorLock
      *monitorLock,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_rwlock.c:22,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_rwlock.c:23,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_rwlock.c:25,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_rwlock.c:25,1
    - Dst: PKIX_RWLOCK_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_rwlock.c:30,1
    - Dst: PR_DestroyRWLock
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_rwlock.c:31,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_rwlock.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 15
    functionDepth: 3
    functionLinenumber: 15
    functionLinenumberEnd: 37
    functionName: pkix_pl_RWLock_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_rwlock.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PR_DestroyRWLock
    - PKIX_RWLOCK_DEBUG
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_RWLock_Destroy(\n        PKIX_PL_Object *object,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_rwlock.c:58,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_rwlock.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 73
    functionName: pkix_pl_RWLock_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_rwlock.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_RWLock_RegisterSelf(\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_rwlock.c:84,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_rwlock.c:85,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_rwlock.c:87,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_rwlock.c:87,1
    - Dst: PKIX_RWLOCK_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_rwlock.c:94,1
    - Dst: PR_NewRWLock
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_rwlock.c:95,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_rwlock.c:98,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_rwlock.c:99,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_rwlock.c:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - pNewLock
    - plContext
    argTypes:
    - PKIX_PL_RWLock**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 110
    functionName: PKIX_PL_RWLock_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_rwlock.c
    functionUses: 1
    functionsReached:
    - PR_NewRWLock
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_Alloc
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_RWLOCK_DEBUG
    - PKIX_ERROR
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_RWLock_Create(\n        PKIX_PL_RWLock **pNewLock,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_rwlock.c:117,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_rwlock.c:118,1
    - Dst: PKIX_RWLOCK_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_rwlock.c:120,1
    - Dst: PR_RWLock_Rlock
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_rwlock.c:121,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_rwlock.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - lock
    - plContext
    argTypes:
    - PKIX_PL_RWLock*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 126
    functionName: PKIX_PL_AcquireReaderLock
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_rwlock.c
    functionUses: 3
    functionsReached:
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_RWLOCK_DEBUG
    - PKIX_NULLCHECK_ONE
    - PR_RWLock_Rlock
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_AcquireReaderLock(\n        PKIX_PL_RWLock *lock,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_rwlock.c:133,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_rwlock.c:134,1
    - Dst: PKIX_RWLOCK_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_rwlock.c:136,1
    - Dst: PR_RWLock_Unlock
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_rwlock.c:137,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_rwlock.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - lock
    - plContext
    argTypes:
    - PKIX_PL_RWLock*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 142
    functionName: PKIX_PL_ReleaseReaderLock
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_rwlock.c
    functionUses: 3
    functionsReached:
    - PKIX_RETURN
    - PR_RWLock_Unlock
    - PKIX_ENTER
    - PKIX_RWLOCK_DEBUG
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_ReleaseReaderLock(\n        PKIX_PL_RWLock *lock,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_rwlock.c:150,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_rwlock.c:151,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_rwlock.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - lock
    - pIsHeld
    - plContext
    argTypes:
    - PKIX_PL_RWLock*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 156
    functionName: PKIX_PL_IsReaderLockHeld
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_rwlock.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_IsReaderLockHeld(\n        PKIX_PL_RWLock *lock,\n
      \       PKIX_Boolean *pIsHeld,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_rwlock.c:163,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_rwlock.c:164,1
    - Dst: PKIX_RWLOCK_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_rwlock.c:166,1
    - Dst: PR_RWLock_Wlock
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_rwlock.c:167,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_rwlock.c:170,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_rwlock.c:178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - lock
    - plContext
    argTypes:
    - PKIX_PL_RWLock*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 179
    functionName: PKIX_PL_AcquireWriterLock
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_rwlock.c
    functionUses: 1
    functionsReached:
    - PR_RWLock_Wlock
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_RWLOCK_DEBUG
    - PKIX_ERROR
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_AcquireWriterLock(\n        PKIX_PL_RWLock *lock,\n
      \       void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_rwlock.c:186,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_rwlock.c:187,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_rwlock.c:190,1
    - Dst: PKIX_RWLOCK_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_rwlock.c:193,1
    - Dst: PR_RWLock_Unlock
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_rwlock.c:194,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_rwlock.c:202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - lock
    - plContext
    argTypes:
    - PKIX_PL_RWLock*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 203
    functionName: PKIX_PL_ReleaseWriterLock
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_rwlock.c
    functionUses: 1
    functionsReached:
    - PKIX_RETURN
    - PR_RWLock_Unlock
    - PKIX_ENTER
    - PKIX_RWLOCK_DEBUG
    - PKIX_ERROR
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_ReleaseWriterLock(\n        PKIX_PL_RWLock *lock,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_rwlock.c:211,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_rwlock.c:212,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_rwlock.c:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - lock
    - pIsHeld
    - plContext
    argTypes:
    - PKIX_PL_RWLock*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 217
    functionName: PKIX_PL_IsWriterLockHeld
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_rwlock.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_IsWriterLockHeld(\n        PKIX_PL_RWLock *lock,\n
      \       PKIX_Boolean *pIsHeld,\n        void *plContext)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:35,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:36,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:66,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 4
    argNames:
    - firstString
    - secondString
    - pResult
    - plContext
    argTypes:
    - PKIX_PL_String*
    - PKIX_PL_String*
    - PKIX_Int32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 67
    functionName: pkix_pl_String_Comparator
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_String_Comparator(\n        PKIX_PL_String *firstString,\n
      \       PKIX_PL_String *secondString,\n        PKIX_Int32 *pResult,\n        void
      *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:80,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:81,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:83,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:83,1
    - Dst: PKIX_FREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:90,1
    - Dst: PKIX_FREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:97,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 105
    functionName: pkix_pl_String_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c
    functionUses: 0
    functionsReached:
    - PKIX_FREE
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_String_Destroy(\n        PKIX_PL_Object *object,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:121,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:122,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:124,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:124,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:129,1
    - Dst: PKIX_PL_String_GetEncoded
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:129,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:133,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:133,1
    - Dst: PKIX_FREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:141,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - object
    - pString
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_String**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 111
    functionDepth: 3
    functionLinenumber: 111
    functionLinenumberEnd: 144
    functionName: pkix_pl_String_ToString
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c
    functionUses: 0
    functionsReached:
    - PKIX_FREE
    - PKIX_PL_String_GetEncoded
    - PKIX_CHECK
    - PKIX_PL_String_Create
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_String_ToString(\n        PKIX_PL_Object *object,\n
      \       PKIX_PL_String **pString,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:160,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:161,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:164,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:164,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:168,1
    - Dst: PKIX_PL_Object_GetType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:168,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:178,1
    - Dst: pkix_pl_String_Comparator
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:178,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - firstObject
    - secondObject
    - pResult
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 150
    functionDepth: 3
    functionLinenumber: 150
    functionLinenumberEnd: 191
    functionName: pkix_pl_String_Equals
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - pkix_CheckType
    - PKIX_PL_Object_GetType
    - pkix_pl_String_Comparator
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_String_Equals(\n        PKIX_PL_Object *firstObject,\n
      \       PKIX_PL_Object *secondObject,\n        PKIX_Boolean *pResult,\n        void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:205,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:206,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:208,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:208,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:213,1
    - Dst: pkix_hash
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:213,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - object
    - pHashcode
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 197
    functionDepth: 3
    functionLinenumber: 197
    functionLinenumberEnd: 223
    functionName: pkix_pl_String_Hashcode
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - pkix_hash
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_String_Hashcode(\n        PKIX_PL_Object *object,\n
      \       PKIX_UInt32 *pHashcode,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:243,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 258
    functionName: pkix_pl_String_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_String_RegisterSelf(\n        void *plContext)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:278,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:279,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:281,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:281,1
    - Dst: PKIX_STRING_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:297,1
    - Dst: PL_strlen
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:298,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:301,1
    - Dst: PKIX_PL_Malloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:301,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:307,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:313,1
    - Dst: pkix_EscASCII_to_UTF16
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:313,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:324,1
    - Dst: pkix_UTF8_to_UTF16
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:324,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:335,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:336,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:349,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:353,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:365,1
    - Dst: PKIX_PL_Malloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:365,1
    - Dst: PKIX_STRING_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:369,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:370,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:375,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:383,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:386,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 53
    argCount: 5
    argNames:
    - fmtIndicator
    - stringRep
    - stringLen
    - pString
    - plContext
    argTypes:
    - PKIX_UInt32
    - void*
    - PKIX_UInt32
    - PKIX_PL_String**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 387
    functionName: PKIX_PL_String_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c
    functionUses: 75
    functionsReached:
    - PKIX_STRING_DEBUG
    - PL_strlen
    - PKIX_CHECK
    - PORT_Memcpy
    - pkix_EscASCII_to_UTF16
    - PKIX_RETURN
    - PKIX_PL_Object_Alloc
    - PKIX_ENTER
    - pkix_UTF8_to_UTF16
    - PKIX_DECREF
    - PKIX_PL_Malloc
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_String_Create(\n        PKIX_UInt32 fmtIndicator,\n
      \       const void *stringRep,\n        PKIX_UInt32 stringLen,\n        PKIX_PL_String
      **pString,\n        void *plContext)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:409,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:410,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:412,1
    - Dst: PKIX_PL_String_GetEncoded
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:412,1
    - Dst: PKIX_STRING_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:420,1
    - Dst: PR_Malloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:421,1
    - Dst: PKIX_ERROR_ALLOC_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:423,1
    - Dst: PKIX_STRING_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:427,1
    - Dst: va_start
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:428,1
    - Dst: va_arg
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:440,1
    - Dst: PKIX_CHECK_NO_GOTO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:442,1
    - Dst: PKIX_PL_String_GetEncoded
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:443,1
    - Dst: va_end
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:454,1
    - Dst: PR_sprintf_append
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:462,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:466,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:471,1
    - Dst: va_arg
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:487,1
    - Dst: PR_sprintf_append
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:489,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:493,1
    - Dst: PR_sprintf_append
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:514,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:517,1
    - Dst: va_end
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:521,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:524,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:524,1
    - Dst: PKIX_FREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:530,1
    - Dst: PR_Free
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:533,1
    - Dst: PKIX_STRING_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:537,1
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:538,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:541,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 91
    argCount: 3
    argNames:
    - pOut
    - plContext
    - fmt
    argTypes:
    - PKIX_PL_String**
    - void*
    - PKIX_PL_String*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 392
    functionDepth: 2
    functionLinenumber: 392
    functionLinenumberEnd: 542
    functionName: PKIX_PL_Sprintf
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c
    functionUses: 31
    functionsReached:
    - PKIX_STRING_DEBUG
    - PKIX_RETURN
    - PR_Free
    - PR_sprintf_append
    - PKIX_FREE
    - PR_smprintf_free
    - PKIX_ENTER
    - PR_smprintf
    - va_arg
    - PR_Malloc
    - PKIX_PL_String_GetEncoded
    - PKIX_ERROR_ALLOC_ERROR
    - PKIX_NULLCHECK_TWO
    - va_end
    - PKIX_CHECK
    - PKIX_PL_String_Create
    - PKIX_PL_Free
    - va_start
    - PKIX_CHECK_NO_GOTO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Sprintf(\n        PKIX_PL_String **pOut,\n        void
      *plContext,\n        const PKIX_PL_String *fmt,\n        ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:554,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:555,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:558,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:558,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - stringID
    - defaultString
    - pString
    - plContext
    argTypes:
    - PKIX_UInt32
    - char*
    - PKIX_PL_String**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 547
    functionDepth: 2
    functionLinenumber: 547
    functionLinenumberEnd: 565
    functionName: PKIX_PL_GetString
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c
    functionUses: 1
    functionsReached:
    - PKIX_RETURN
    - PKIX_CHECK
    - PKIX_PL_String_Create
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_GetString(\n        /* ARGSUSED */ PKIX_UInt32
      stringID,\n        char *defaultString,\n        PKIX_PL_String **pString,\n
      \       void *plContext)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:578,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:579,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:583,1
    - Dst: pkix_UTF16_to_EscASCII
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:583,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:593,1
    - Dst: pkix_UTF16_to_UTF8
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:593,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:603,1
    - Dst: pkix_UTF16_to_UTF8
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:603,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:615,1
    - Dst: PKIX_PL_Malloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:615,1
    - Dst: PKIX_STRING_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:618,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:619,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:622,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c:627,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 5
    argNames:
    - string
    - fmtIndicator
    - pStringRep
    - pLength
    - plContext
    argTypes:
    - PKIX_PL_String*
    - PKIX_UInt32
    - void**
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 628
    functionName: PKIX_PL_String_GetEncoded
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.c
    functionUses: 23
    functionsReached:
    - PKIX_STRING_DEBUG
    - PORT_Memcpy
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_UTF16_to_UTF8
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - pkix_UTF16_to_EscASCII
    - PKIX_PL_Malloc
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_String_GetEncoded(\n        PKIX_PL_String *string,\n
      \       PKIX_UInt32 fmtIndicator,\n        void **pStringRep,\n        PKIX_UInt32
      *pLength,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_primhash.c:50,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_primhash.c:51,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_primhash.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - firstKey
    - secondKey
    - pResult
    - plContext
    argTypes:
    - PKIX_UInt32*
    - PKIX_UInt32*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 59
    functionName: pkix_pl_KeyComparator_Default
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_primhash.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_KeyComparator_Default(\n        PKIX_UInt32
      *firstKey,\n        PKIX_UInt32 *secondKey,\n        PKIX_Boolean *pResult,\n
      \       void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_primhash.c:91,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_primhash.c:92,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_primhash.c:95,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_primhash.c:99,1
    - Dst: PKIX_PL_Malloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_primhash.c:99,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_primhash.c:108,1
    - Dst: PKIX_PL_Malloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_primhash.c:108,1
    - Dst: PKIX_FREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_primhash.c:123,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_primhash.c:126,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - numBuckets
    - pResult
    - plContext
    argTypes:
    - PKIX_UInt32
    - pkix_pl_PrimHashTable**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 127
    functionName: pkix_pl_PrimHashTable_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_primhash.c
    functionUses: 0
    functionsReached:
    - PKIX_FREE
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_PL_Malloc
    - PKIX_ERROR
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_PrimHashTable_Create(\n        PKIX_UInt32 numBuckets,\n
      \       pkix_pl_PrimHashTable **pResult,\n        void *plContext)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_primhash.c:175,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_primhash.c:176,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_primhash.c:187,1
    - Dst: pkix_pl_KeyComparator_Default
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_primhash.c:187,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_primhash.c:194,1
    - Dst: keyComp
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_primhash.c:194,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_primhash.c:205,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_primhash.c:211,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_primhash.c:215,1
    - Dst: PKIX_PL_Malloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_primhash.c:215,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_primhash.c:228,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 6
    argNames:
    - ht
    - key
    - value
    - hashCode
    - keyComp
    - plContext
    argTypes:
    - pkix_pl_PrimHashTable*
    - void*
    - void*
    - PKIX_UInt32
    - PKIX_PL_EqualsCallback
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 229
    functionName: pkix_pl_PrimHashTable_Add
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_primhash.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - keyComp
    - pkix_pl_KeyComparator_Default
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_PL_Malloc
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_PrimHashTable_Add(\n        pkix_pl_PrimHashTable
      *ht,\n        void *key,\n        void *value,\n        PKIX_UInt32 hashCode,\n
      \       PKIX_PL_EqualsCallback keyComp,\n        void *plContext)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_primhash.c:280,1
    - Dst: PKIX_NULLCHECK_FOUR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_primhash.c:281,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_primhash.c:296,1
    - Dst: pkix_pl_KeyComparator_Default
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_primhash.c:296,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_primhash.c:303,1
    - Dst: keyComp
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_primhash.c:303,1
    - Dst: PKIX_FREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_primhash.c:323,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_primhash.c:330,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 7
    argNames:
    - ht
    - key
    - hashCode
    - keyComp
    - pKey
    - pValue
    - plContext
    argTypes:
    - pkix_pl_PrimHashTable*
    - void*
    - PKIX_UInt32
    - PKIX_PL_EqualsCallback
    - void**
    - void**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 266
    functionDepth: 2
    functionLinenumber: 266
    functionLinenumberEnd: 331
    functionName: pkix_pl_PrimHashTable_Remove
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_primhash.c
    functionUses: 0
    functionsReached:
    - PKIX_FREE
    - PKIX_CHECK
    - PKIX_RETURN
    - keyComp
    - pkix_pl_KeyComparator_Default
    - PKIX_NULLCHECK_FOUR
    - PKIX_ENTER
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_PrimHashTable_Remove(\n        pkix_pl_PrimHashTable
      *ht,\n        void *key,\n        PKIX_UInt32 hashCode,\n        PKIX_PL_EqualsCallback
      keyComp,\n        void **pKey,\n        void **pValue,\n        void *plContext)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_primhash.c:378,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_primhash.c:379,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_primhash.c:393,1
    - Dst: pkix_pl_KeyComparator_Default
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_primhash.c:393,1
    - Dst: keyComp
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_primhash.c:401,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_primhash.c:424,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 6
    argNames:
    - ht
    - key
    - hashCode
    - keyComp
    - pResult
    - plContext
    argTypes:
    - pkix_pl_PrimHashTable*
    - void*
    - PKIX_UInt32
    - PKIX_PL_EqualsCallback
    - void**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 366
    functionDepth: 2
    functionLinenumber: 366
    functionLinenumberEnd: 425
    functionName: pkix_pl_PrimHashTable_Lookup
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_primhash.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - keyComp
    - pkix_pl_KeyComparator_Default
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_PrimHashTable_Lookup(\n        pkix_pl_PrimHashTable
      *ht,\n        void *key,\n        PKIX_UInt32 hashCode,\n        PKIX_PL_EqualsCallback
      keyComp,\n        void **pResult,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_primhash.c:454,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_primhash.c:455,1
    - Dst: PKIX_FREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_primhash.c:467,1
    - Dst: PKIX_FREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_primhash.c:472,1
    - Dst: PKIX_FREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_primhash.c:476,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_primhash.c:478,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - ht
    - plContext
    argTypes:
    - pkix_pl_PrimHashTable*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 479
    functionName: pkix_pl_PrimHashTable_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_primhash.c
    functionUses: 0
    functionsReached:
    - PKIX_FREE
    - PKIX_ENTER
    - PKIX_RETURN
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_PrimHashTable_Destroy(\n        pkix_pl_PrimHashTable
      *ht,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_primhash.c:517,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_primhash.c:518,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_primhash.c:527,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - ht
    - hashCode
    - pBucketSize
    - plContext
    argTypes:
    - pkix_pl_PrimHashTable*
    - PKIX_UInt32
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 506
    functionDepth: 1
    functionLinenumber: 506
    functionLinenumberEnd: 528
    functionName: pkix_pl_PrimHashTable_GetBucketSize
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_primhash.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_PrimHashTable_GetBucketSize(\n        pkix_pl_PrimHashTable
      *ht,\n        PKIX_UInt32 hashCode,\n        PKIX_UInt32 *pBucketSize,\n        void
      *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_primhash.c:567,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_primhash.c:568,1
    - Dst: PKIX_FREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_primhash.c:580,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_primhash.c:583,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 5
    argNames:
    - ht
    - hashCode
    - pKey
    - pValue
    - plContext
    argTypes:
    - pkix_pl_PrimHashTable*
    - PKIX_UInt32
    - void**
    - void**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 557
    functionDepth: 1
    functionLinenumber: 557
    functionLinenumberEnd: 584
    functionName: pkix_pl_PrimHashTable_RemoveFIFO
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_primhash.c
    functionUses: 0
    functionsReached:
    - PKIX_FREE
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_PrimHashTable_RemoveFIFO(\n        pkix_pl_PrimHashTable
      *ht,\n        PKIX_UInt32 hashCode,\n        void **pKey,\n        void **pValue,\n
      \       void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:70,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:71,1
    - Dst: PKIX_OBJECT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:73,1
    - Dst: PKIX_OBJECT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:84,1
    - Dst: PR_Lock
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:85,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:87,1
    - Dst: pkix_pl_PrimHashTable_Lookup
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:87,1
    - Dst: PKIX_OBJECT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:96,1
    - Dst: PR_Unlock
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:97,1
    - Dst: PKIX_ERROR_FATAL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:100,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:103,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:111,1
    - Dst: PKIX_ERROR_ALLOC_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:116,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:123,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 3
    argNames:
    - object
    - pObjectHeader
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 124
    functionName: pkix_pl_Object_GetHeader
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ERROR_ALLOC_ERROR
    - pkix_pl_PrimHashTable_Lookup
    - PKIX_OBJECT_DEBUG
    - PR_Lock
    - PKIX_ENTER
    - PR_Unlock
    - PKIX_ERROR_FATAL
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_Object_GetHeader(\n        PKIX_PL_Object *object,\n
      \       PKIX_PL_Object **pObjectHeader,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:152,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:153,1
    - Dst: PKIX_CHECK_FATAL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:156,1
    - Dst: pkix_pl_Object_GetHeader
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:156,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:159,1
    - Dst: pkix_pl_Object_GetHeader
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:159,1
    - Dst: PKIX_ERROR_FATAL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:165,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:168,1
    - Dst: PKIX_OBJECT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:171,1
    - Dst: PR_DestroyLock
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:172,1
    - Dst: memset
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:179,1
    - Dst: PKIX_FREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:182,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 145
    functionDepth: 4
    functionLinenumber: 145
    functionLinenumberEnd: 190
    functionName: pkix_pl_Object_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c
    functionUses: 0
    functionsReached:
    - PKIX_FREE
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_pl_Object_GetHeader
    - PKIX_OBJECT_DEBUG
    - memset
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_ERROR_FATAL
    - PKIX_CHECK_FATAL
    - PR_DestroyLock
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_Object_Destroy(\n        PKIX_PL_Object *object,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:224,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:225,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - firstObject
    - secondObject
    - pResult
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 231
    functionName: pkix_pl_Object_Equals_Default
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_Object_Equals_Default(\n        PKIX_PL_Object
      *firstObject,\n        PKIX_PL_Object *secondObject,\n        PKIX_Boolean *pResult,\n
      \       void *plContext)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:268,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:269,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:271,1
    - Dst: PKIX_PL_Object_GetType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:271,1
    - Dst: PKIX_OBJECT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:278,1
    - Dst: PR_Lock
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:279,1
    - Dst: pkix_pl_PrimHashTable_Lookup
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:280,1
    - Dst: PKIX_OBJECT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:287,1
    - Dst: PR_Unlock
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:288,1
    - Dst: PKIX_ERROR_FATAL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:290,1
    - Dst: PKIX_ERROR_FATAL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:294,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:302,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:310,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:310,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:318,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:318,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:326,1
    - Dst: PKIX_PL_Sprintf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:326,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:336,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:337,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:339,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 37
    argCount: 3
    argNames:
    - object
    - pString
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_String**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 256
    functionDepth: 3
    functionLinenumber: 256
    functionLinenumberEnd: 340
    functionName: pkix_pl_Object_ToString_Default
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PKIX_CHECK
    - PKIX_PL_String_Create
    - PKIX_RETURN
    - PKIX_ERROR_FATAL
    - pkix_pl_PrimHashTable_Lookup
    - PKIX_OBJECT_DEBUG
    - PKIX_PL_Sprintf
    - PR_Lock
    - PKIX_ENTER
    - PKIX_DECREF
    - PR_Unlock
    - PKIX_PL_Object_GetType
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_Object_ToString_Default(\n        PKIX_PL_Object
      *object,\n        PKIX_PL_String **pString,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:371,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:372,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - object
    - pValue
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 377
    functionName: pkix_pl_Object_Hashcode_Default
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_Object_Hashcode_Default(\n        PKIX_PL_Object
      *object,\n        PKIX_UInt32 *pValue,\n        void *plContext)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:415,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:416,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:418,1
    - Dst: pkix_pl_Object_GetHeader
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:418,1
    - Dst: PKIX_OBJECT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:428,1
    - Dst: PR_Lock
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:429,1
    - Dst: pkix_pl_PrimHashTable_Lookup
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:430,1
    - Dst: PKIX_OBJECT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:437,1
    - Dst: PR_Unlock
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:438,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:440,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:444,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:449,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:465,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 3
    argNames:
    - object
    - pEqualsCallback
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_EqualsCallback*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 404
    functionDepth: 4
    functionLinenumber: 404
    functionLinenumberEnd: 466
    functionName: pkix_pl_Object_RetrieveEqualsCallback
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_pl_PrimHashTable_Lookup
    - pkix_pl_Object_GetHeader
    - PKIX_OBJECT_DEBUG
    - PR_Lock
    - PKIX_ENTER
    - PR_Unlock
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_Object_RetrieveEqualsCallback(\n        PKIX_PL_Object
      *object,\n        PKIX_PL_EqualsCallback *pEqualsCallback,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:488,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 483
    functionDepth: 1
    functionLinenumber: 483
    functionLinenumberEnd: 503
    functionName: pkix_pl_Object_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      pkix_pl_Object_RegisterSelf(void *plContext)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:520,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:521,1
    - Dst: PKIX_OBJECT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:531,1
    - Dst: PR_Lock
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:532,1
    - Dst: pkix_pl_PrimHashTable_Lookup
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:533,1
    - Dst: PKIX_OBJECT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:540,1
    - Dst: PR_Unlock
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:541,1
    - Dst: PKIX_ERROR_FATAL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:543,1
    - Dst: PKIX_ERROR_FATAL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:549,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:552,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:561,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:565,1
    - Dst: PKIX_PL_Calloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:565,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:572,1
    - Dst: PKIX_PL_Malloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:572,1
    - Dst: PKIX_OBJECT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:589,1
    - Dst: PR_NewLock
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:590,1
    - Dst: PKIX_ERROR_ALLOC_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:592,1
    - Dst: PKIX_OBJECT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:595,1
    - Dst: PR_ATOMIC_INCREMENT
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:603,1
    - Dst: PKIX_FREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:607,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:609,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 46
    argCount: 4
    argNames:
    - objType
    - size
    - pObject
    - plContext
    argTypes:
    - PKIX_TYPENUM
    - PKIX_UInt32
    - PKIX_PL_Object**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 510
    functionDepth: 3
    functionLinenumber: 510
    functionLinenumberEnd: 610
    functionName: PKIX_PL_Object_Alloc
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c
    functionUses: 59
    functionsReached:
    - PORT_Assert
    - PKIX_FREE
    - PR_ATOMIC_INCREMENT
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ERROR_ALLOC_ERROR
    - pkix_pl_PrimHashTable_Lookup
    - PKIX_OBJECT_DEBUG
    - PR_Lock
    - PKIX_ENTER
    - PKIX_PL_Calloc
    - PR_Unlock
    - PR_NewLock
    - PKIX_ERROR_FATAL
    - PKIX_PL_Malloc
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Object_Alloc(\n        PKIX_TYPENUM objType,\n
      \       PKIX_UInt32 size,\n        PKIX_PL_Object **pObject,\n        void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:625,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:626,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:635,1
    - Dst: PKIX_OBJECT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:639,1
    - Dst: PR_Lock
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:640,1
    - Dst: pkix_pl_PrimHashTable_Lookup
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:641,1
    - Dst: PKIX_OBJECT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:648,1
    - Dst: PR_Unlock
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:649,1
    - Dst: PKIX_ERROR_FATAL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:652,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:660,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 3
    argNames:
    - objType
    - pBool
    - plContext
    argTypes:
    - PKIX_UInt32
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 615
    functionDepth: 3
    functionLinenumber: 615
    functionLinenumberEnd: 661
    functionName: PKIX_PL_Object_IsTypeRegistered
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PKIX_RETURN
    - pkix_pl_PrimHashTable_Lookup
    - PKIX_OBJECT_DEBUG
    - PR_Lock
    - PKIX_ENTER
    - PR_Unlock
    - PKIX_ERROR_FATAL
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Object_IsTypeRegistered(\n        PKIX_UInt32
      objType,\n        PKIX_Boolean *pBool,\n        void *plContext)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:682,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:690,1
    - Dst: PKIX_OBJECT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:693,1
    - Dst: PR_Lock
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:694,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:695,1
    - Dst: pkix_pl_PrimHashTable_Lookup
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:695,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:706,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:709,1
    - Dst: PKIX_PL_Malloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:709,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:741,1
    - Dst: PKIX_PL_Malloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:741,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:749,1
    - Dst: pkix_pl_PrimHashTable_Add
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:749,1
    - Dst: PKIX_OBJECT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:759,1
    - Dst: PR_Unlock
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:760,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:762,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 39
    argCount: 9
    argNames:
    - objType
    - description
    - destructor
    - equalsFunction
    - hashcodeFunction
    - toStringFunction
    - comparator
    - duplicateFunction
    - plContext
    argTypes:
    - PKIX_UInt32
    - char*
    - PKIX_PL_DestructorCallback
    - PKIX_PL_EqualsCallback
    - PKIX_PL_HashcodeCallback
    - PKIX_PL_ToStringCallback
    - PKIX_PL_ComparatorCallback
    - PKIX_PL_DuplicateCallback
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 667
    functionDepth: 3
    functionLinenumber: 667
    functionLinenumberEnd: 763
    functionName: PKIX_PL_Object_RegisterType
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c
    functionUses: 1
    functionsReached:
    - PKIX_CHECK
    - pkix_pl_PrimHashTable_Add
    - PKIX_RETURN
    - pkix_pl_PrimHashTable_Lookup
    - PKIX_OBJECT_DEBUG
    - PR_Lock
    - PKIX_ENTER
    - PR_Unlock
    - PKIX_PL_Malloc
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Object_RegisterType(\n        PKIX_UInt32 objType,\n
      \       char *description,\n        PKIX_PL_DestructorCallback destructor,\n
      \       PKIX_PL_EqualsCallback equalsFunction,\n        PKIX_PL_HashcodeCallback
      hashcodeFunction,\n        PKIX_PL_ToStringCallback toStringFunction,\n        PKIX_PL_ComparatorCallback
      comparator,\n        PKIX_PL_DuplicateCallback duplicateFunction,\n        void
      *plContext)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:778,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:779,1
    - Dst: PKIX_ALLOC_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:793,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:798,1
    - Dst: pkix_pl_Object_GetHeader
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:798,1
    - Dst: PR_ATOMIC_INCREMENT
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:802,1
    - Dst: PKIX_THROW
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:805,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:810,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 769
    functionDepth: 4
    functionLinenumber: 769
    functionLinenumberEnd: 811
    functionName: PKIX_PL_Object_IncRef
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c
    functionUses: 11
    functionsReached:
    - PR_ATOMIC_INCREMENT
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_THROW
    - pkix_pl_Object_GetHeader
    - PKIX_ALLOC_ERROR
    - PKIX_ENTER
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Object_IncRef(\n        PKIX_PL_Object *object,\n
      \       void *plContext)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:825,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:826,1
    - Dst: PKIX_ALLOC_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:840,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:845,1
    - Dst: pkix_pl_Object_GetHeader
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:845,1
    - Dst: PR_ATOMIC_DECREMENT
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:848,1
    - Dst: PKIX_OBJECT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:858,1
    - Dst: PR_Lock
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:859,1
    - Dst: pkix_pl_PrimHashTable_Lookup
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:860,1
    - Dst: PKIX_OBJECT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:867,1
    - Dst: PR_Unlock
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:869,1
    - Dst: PKIX_ERROR_FATAL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:871,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:879,1
    - Dst: destructor
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:891,1
    - Dst: PKIX_DoAddError
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:894,1
    - Dst: PR_ATOMIC_DECREMENT
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:900,1
    - Dst: pkix_pl_Object_Destroy
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:904,1
    - Dst: PKIX_ERROR_ALLOC_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:909,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:914,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 57
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 816
    functionDepth: 5
    functionLinenumber: 816
    functionLinenumberEnd: 915
    functionName: PKIX_PL_Object_DecRef
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c
    functionUses: 19
    functionsReached:
    - PORT_Assert
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ERROR_ALLOC_ERROR
    - destructor
    - PR_ATOMIC_DECREMENT
    - pkix_pl_Object_GetHeader
    - pkix_pl_PrimHashTable_Lookup
    - PKIX_OBJECT_DEBUG
    - PKIX_DoAddError
    - PKIX_ALLOC_ERROR
    - pkix_pl_Object_Destroy
    - PR_Lock
    - PKIX_ENTER
    - PR_Unlock
    - PKIX_ERROR_FATAL
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Object_DecRef(\n        PKIX_PL_Object *object,\n
      \       void *plContext)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:935,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:936,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:938,1
    - Dst: pkix_pl_Object_GetHeader
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:938,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:942,1
    - Dst: pkix_pl_Object_GetHeader
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:942,1
    - Dst: PKIX_OBJECT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:961,1
    - Dst: PR_Lock
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:962,1
    - Dst: pkix_pl_PrimHashTable_Lookup
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:963,1
    - Dst: PKIX_OBJECT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:970,1
    - Dst: PR_Unlock
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:971,1
    - Dst: PKIX_ERROR_FATAL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:974,1
    - Dst: PKIX_ERROR_FATAL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:978,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:983,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:996,1
    - Dst: func
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:996,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1001,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 4
    argNames:
    - firstObject
    - secondObject
    - pResult
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 922
    functionDepth: 4
    functionLinenumber: 922
    functionLinenumberEnd: 1002
    functionName: PKIX_PL_Object_Equals
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c
    functionUses: 39
    functionsReached:
    - PORT_Assert
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_pl_PrimHashTable_Lookup
    - pkix_pl_Object_GetHeader
    - func
    - PKIX_OBJECT_DEBUG
    - PR_Lock
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PR_Unlock
    - PKIX_ERROR_FATAL
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Object_Equals(\n        PKIX_PL_Object *firstObject,\n
      \       PKIX_PL_Object *secondObject,\n        PKIX_Boolean *pResult,\n        void
      *plContext)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1018,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1019,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1021,1
    - Dst: pkix_pl_Object_GetHeader
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1021,1
    - Dst: PKIX_OBJECT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1031,1
    - Dst: PR_Lock
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1032,1
    - Dst: pkix_pl_PrimHashTable_Lookup
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1033,1
    - Dst: PKIX_OBJECT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1040,1
    - Dst: PR_Unlock
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1041,1
    - Dst: PKIX_ERROR_FATAL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1044,1
    - Dst: PKIX_ERROR_FATAL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1048,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1053,1
    - Dst: PKIX_ERROR_FATAL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1062,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1066,1
    - Dst: func
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1066,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1071,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 3
    argNames:
    - firstObject
    - pNewObject
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1007
    functionDepth: 4
    functionLinenumber: 1007
    functionLinenumberEnd: 1072
    functionName: PKIX_PL_Object_Duplicate
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c
    functionUses: 16
    functionsReached:
    - PORT_Assert
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_pl_PrimHashTable_Lookup
    - pkix_pl_Object_GetHeader
    - func
    - PKIX_OBJECT_DEBUG
    - PR_Lock
    - PKIX_ENTER
    - PR_Unlock
    - PKIX_ERROR_FATAL
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Object_Duplicate(\n        PKIX_PL_Object *firstObject,\n
      \       PKIX_PL_Object **pNewObject,\n        void *plContext)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1088,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1089,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1092,1
    - Dst: pkix_pl_Object_GetHeader
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1092,1
    - Dst: PKIX_OBJECT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1105,1
    - Dst: PR_Lock
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1106,1
    - Dst: pkix_pl_PrimHashTable_Lookup
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1107,1
    - Dst: PKIX_OBJECT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1114,1
    - Dst: PR_Unlock
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1115,1
    - Dst: PKIX_ERROR_FATAL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1118,1
    - Dst: PKIX_ERROR_FATAL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1124,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1129,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1142,1
    - Dst: func
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1142,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1147,1
    - Dst: pkix_LockObject
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1147,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1156,1
    - Dst: pkix_UnlockObject
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1156,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1165,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 44
    argCount: 3
    argNames:
    - object
    - pValue
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1077
    functionDepth: 4
    functionLinenumber: 1077
    functionLinenumberEnd: 1166
    functionName: PKIX_PL_Object_Hashcode
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c
    functionUses: 12
    functionsReached:
    - PORT_Assert
    - PKIX_CHECK
    - pkix_LockObject
    - PKIX_RETURN
    - pkix_pl_PrimHashTable_Lookup
    - pkix_pl_Object_GetHeader
    - func
    - PKIX_OBJECT_DEBUG
    - pkix_UnlockObject
    - PR_Lock
    - PKIX_ENTER
    - PR_Unlock
    - PKIX_ERROR_FATAL
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Object_Hashcode(\n        PKIX_PL_Object *object,\n
      \       PKIX_UInt32 *pValue,\n        void *plContext)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1182,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1183,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1186,1
    - Dst: pkix_pl_Object_GetHeader
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1186,1
    - Dst: PKIX_OBJECT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1198,1
    - Dst: PR_Lock
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1199,1
    - Dst: pkix_pl_PrimHashTable_Lookup
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1200,1
    - Dst: PKIX_OBJECT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1207,1
    - Dst: PR_Unlock
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1208,1
    - Dst: PKIX_ERROR_FATAL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1210,1
    - Dst: PKIX_ERROR_FATAL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1216,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1221,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1234,1
    - Dst: func
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1234,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1239,1
    - Dst: pkix_LockObject
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1239,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1248,1
    - Dst: pkix_UnlockObject
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1248,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1259,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1261,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1263,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 49
    argCount: 3
    argNames:
    - object
    - pString
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_String**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1171
    functionDepth: 4
    functionLinenumber: 1171
    functionLinenumberEnd: 1264
    functionName: PKIX_PL_Object_ToString
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c
    functionUses: 51
    functionsReached:
    - PORT_Assert
    - PKIX_CHECK
    - pkix_LockObject
    - PKIX_RETURN
    - pkix_pl_PrimHashTable_Lookup
    - pkix_pl_Object_GetHeader
    - func
    - PKIX_OBJECT_DEBUG
    - pkix_UnlockObject
    - PR_Lock
    - PKIX_ENTER
    - PKIX_DECREF
    - PR_Unlock
    - PKIX_ERROR_FATAL
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Object_ToString(\n        PKIX_PL_Object *object,\n
      \       PKIX_PL_String **pString,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1276,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1277,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1280,1
    - Dst: pkix_pl_Object_GetHeader
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1280,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1283,1
    - Dst: pkix_LockObject
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1283,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1290,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1292,1
    - Dst: pkix_UnlockObject
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1292,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1298
      start: 1269
    functionDepth: 4
    functionLinenumber: 1269
    functionLinenumberEnd: 1298
    functionName: PKIX_PL_Object_InvalidateCache
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c
    functionUses: 52
    functionsReached:
    - pkix_LockObject
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_pl_Object_GetHeader
    - pkix_UnlockObject
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Object_InvalidateCache(\n        PKIX_PL_Object
      *object,\n        void *plContext)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1316,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1317,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1320,1
    - Dst: pkix_pl_Object_GetHeader
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1320,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1325,1
    - Dst: pkix_pl_Object_GetHeader
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1325,1
    - Dst: PKIX_OBJECT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1335,1
    - Dst: PR_Lock
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1336,1
    - Dst: pkix_pl_PrimHashTable_Lookup
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1337,1
    - Dst: PKIX_OBJECT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1344,1
    - Dst: PR_Unlock
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1345,1
    - Dst: PKIX_ERROR_FATAL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1347,1
    - Dst: PKIX_ERROR_FATAL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1351,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1356,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1366,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1370,1
    - Dst: func
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1370,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1375,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 4
    argNames:
    - firstObject
    - secondObject
    - pResult
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    - PKIX_Int32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1376
      start: 1303
    functionDepth: 4
    functionLinenumber: 1303
    functionLinenumberEnd: 1376
    functionName: PKIX_PL_Object_Compare
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c
    functionUses: 10
    functionsReached:
    - PORT_Assert
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_pl_PrimHashTable_Lookup
    - pkix_pl_Object_GetHeader
    - func
    - PKIX_OBJECT_DEBUG
    - PR_Lock
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PR_Unlock
    - PKIX_ERROR_FATAL
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Object_Compare(\n        PKIX_PL_Object *firstObject,\n
      \       PKIX_PL_Object *secondObject,\n        PKIX_Int32 *pResult,\n        void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1386,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1387,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1389,1
    - Dst: pkix_LockObject
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1389,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1395
      start: 1381
    functionDepth: 1
    functionLinenumber: 1381
    functionLinenumberEnd: 1395
    functionName: PKIX_PL_Object_Lock
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c
    functionUses: 0
    functionsReached:
    - pkix_LockObject
    - PKIX_RETURN
    - PKIX_CHECK
    - PKIX_ENTER
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Object_Lock(\n        PKIX_PL_Object *object,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1405,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1406,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1408,1
    - Dst: pkix_UnlockObject
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1408,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1414
      start: 1400
    functionDepth: 1
    functionLinenumber: 1400
    functionLinenumberEnd: 1414
    functionName: PKIX_PL_Object_Unlock
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c
    functionUses: 0
    functionsReached:
    - PKIX_RETURN
    - PKIX_CHECK
    - pkix_UnlockObject
    - PKIX_ENTER
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Object_Unlock(\n        PKIX_PL_Object *object,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1428,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1429,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1432,1
    - Dst: pkix_pl_Object_GetHeader
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1432,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c:1439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - object
    - pType
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1440
      start: 1420
    functionDepth: 4
    functionLinenumber: 1420
    functionLinenumberEnd: 1440
    functionName: PKIX_PL_Object_GetType
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c
    functionUses: 34
    functionsReached:
    - PKIX_RETURN
    - PKIX_CHECK
    - pkix_pl_Object_GetHeader
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Object_GetType(\n        PKIX_PL_Object *object,\n
      \       PKIX_UInt32 *pType,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - func
    - ','
    - args
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: PKIX_PL_NSSCALL
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_PL_NSSCALL(type, func, args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - type
    - ','
    - lvalue
    - ','
    - func
    - ','
    - args
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: PKIX_PL_NSSCALLRV
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_PL_NSSCALLRV(type, lvalue, func, args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:48,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:49,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:52,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:52,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:62,1
    - Dst: PKIX_PL_Malloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:62,1
    - Dst: PKIX_BYTEARRAY_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:69,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:70,1
    - Dst: PKIX_BYTEARRAY_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:72,1
    - Dst: PL_strlen
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:73,1
    - Dst: PKIX_BYTEARRAY_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:75,1
    - Dst: PL_strcat
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:76,1
    - Dst: PKIX_BYTEARRAY_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:78,1
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:79,1
    - Dst: PKIX_BYTEARRAY_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:82,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:83,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:87,1
    - Dst: PKIX_BYTEARRAY_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:90,1
    - Dst: PL_strlen
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:91,1
    - Dst: PKIX_BYTEARRAY_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:93,1
    - Dst: PL_strcat
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:94,1
    - Dst: PKIX_BYTEARRAY_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:96,1
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:97,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:104,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:104,1
    - Dst: PKIX_FREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:115,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:116,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 40
    argCount: 3
    argNames:
    - array
    - pString
    - plContext
    argTypes:
    - PKIX_PL_ByteArray*
    - PKIX_PL_String**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 117
    functionName: pkix_pl_ByteArray_ToHexString
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c
    functionUses: 1
    functionsReached:
    - PKIX_FREE
    - PL_strlen
    - PKIX_BYTEARRAY_DEBUG
    - PKIX_CHECK
    - PKIX_PL_String_Create
    - PKIX_RETURN
    - PL_strcat
    - PR_smprintf_free
    - PKIX_ENTER
    - PR_smprintf
    - PKIX_PL_Malloc
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_ByteArray_ToHexString(\n        PKIX_PL_ByteArray
      *array,\n        PKIX_PL_String **pString,\n        void *plContext)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:142,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:143,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:145,1
    - Dst: pkix_CheckTypes
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:145,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:176,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 4
    argNames:
    - firstObject
    - secondObject
    - pResult
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    - PKIX_Int32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 177
    functionName: pkix_pl_ByteArray_Comparator
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c
    functionUses: 0
    functionsReached:
    - PKIX_RETURN
    - PKIX_CHECK
    - PKIX_ENTER
    - pkix_CheckTypes
    - PKIX_NULLCHECK_THREE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_ByteArray_Comparator(\n        PKIX_PL_Object
      *firstObject,\n        PKIX_PL_Object *secondObject,\n        PKIX_Int32 *pResult,\n
      \       void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:194,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:195,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:197,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:197,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:203,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:203,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:211,1
    - Dst: PKIX_PL_Malloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:211,1
    - Dst: PKIX_BYTEARRAY_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:218,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:220,1
    - Dst: PKIX_BYTEARRAY_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:222,1
    - Dst: PL_strlen
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:223,1
    - Dst: PKIX_BYTEARRAY_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:225,1
    - Dst: PL_strcat
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:226,1
    - Dst: PKIX_BYTEARRAY_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:228,1
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:229,1
    - Dst: PKIX_BYTEARRAY_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:232,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:233,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:238,1
    - Dst: PKIX_BYTEARRAY_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:241,1
    - Dst: PL_strlen
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:242,1
    - Dst: PKIX_BYTEARRAY_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:244,1
    - Dst: PL_strcat
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:245,1
    - Dst: PKIX_BYTEARRAY_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:247,1
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:248,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:255,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:255,1
    - Dst: PKIX_FREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:263,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:264,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 42
    argCount: 3
    argNames:
    - object
    - pString
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_String**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 183
    functionDepth: 3
    functionLinenumber: 183
    functionLinenumberEnd: 265
    functionName: pkix_pl_ByteArray_ToString
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c
    functionUses: 0
    functionsReached:
    - PKIX_FREE
    - PL_strlen
    - PKIX_BYTEARRAY_DEBUG
    - PKIX_CHECK
    - PKIX_PL_String_Create
    - PKIX_RETURN
    - PL_strcat
    - PR_smprintf_free
    - PKIX_ENTER
    - pkix_CheckType
    - PR_smprintf
    - PKIX_PL_Malloc
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_ByteArray_ToString(\n        PKIX_PL_Object
      *object,\n        PKIX_PL_String **pString,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:281,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:282,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:285,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:285,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:288,1
    - Dst: PKIX_PL_Object_GetType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:288,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:298,1
    - Dst: pkix_pl_ByteArray_Comparator
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:298,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:307,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - first
    - second
    - pResult
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 271
    functionDepth: 5
    functionLinenumber: 271
    functionLinenumberEnd: 308
    functionName: pkix_pl_ByteArray_Equals
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - pkix_CheckType
    - pkix_pl_ByteArray_Comparator
    - PKIX_PL_Object_GetType
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_ByteArray_Equals(\n        PKIX_PL_Object *first,\n
      \       PKIX_PL_Object *second,\n        PKIX_Boolean *pResult,\n        void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:321,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:322,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:324,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:324,1
    - Dst: PKIX_FREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:329,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 314
    functionDepth: 3
    functionLinenumber: 314
    functionLinenumberEnd: 336
    functionName: pkix_pl_ByteArray_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c
    functionUses: 0
    functionsReached:
    - PKIX_FREE
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_ByteArray_Destroy(\n        PKIX_PL_Object *object,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:350,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:351,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:353,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:353,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:358,1
    - Dst: pkix_hash
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:358,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - object
    - pHashcode
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 342
    functionDepth: 3
    functionLinenumber: 342
    functionLinenumberEnd: 368
    functionName: pkix_pl_ByteArray_Hashcode
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - pkix_hash
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_ByteArray_Hashcode(\n        PKIX_PL_Object
      *object,\n        PKIX_UInt32 *pHashcode,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:388,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 403
    functionName: pkix_pl_ByteArray_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      pkix_pl_ByteArray_RegisterSelf(void *plContext)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:419,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:420,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:422,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:422,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:434,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:436,1
    - Dst: PKIX_PL_Malloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:436,1
    - Dst: PKIX_BYTEARRAY_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:440,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:441,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:449,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:452,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 4
    argNames:
    - array
    - length
    - pByteArray
    - plContext
    argTypes:
    - void*
    - PKIX_UInt32
    - PKIX_PL_ByteArray**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 410
    functionDepth: 4
    functionLinenumber: 410
    functionLinenumberEnd: 453
    functionName: PKIX_PL_ByteArray_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c
    functionUses: 14
    functionsReached:
    - PKIX_BYTEARRAY_DEBUG
    - PKIX_CHECK
    - PORT_Memcpy
    - PKIX_RETURN
    - PKIX_PL_Object_Alloc
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_PL_Malloc
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_ByteArray_Create(\n        void *array,\n        PKIX_UInt32
      length,\n        PKIX_PL_ByteArray **pByteArray,\n        void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:465,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:466,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:469,1
    - Dst: PKIX_PL_Malloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:469,1
    - Dst: PKIX_BYTEARRAY_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:473,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:474,1
    - Dst: PKIX_FREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:483,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:486,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - byteArray
    - pArray
    - plContext
    argTypes:
    - PKIX_PL_ByteArray*
    - void**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 487
    functionName: PKIX_PL_ByteArray_GetPointer
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c
    functionUses: 3
    functionsReached:
    - PKIX_FREE
    - PKIX_BYTEARRAY_DEBUG
    - PKIX_CHECK
    - PORT_Memcpy
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_PL_Malloc
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_ByteArray_GetPointer(\n        PKIX_PL_ByteArray
      *byteArray,\n        void **pArray,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:498,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:499,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - byteArray
    - pLength
    - plContext
    argTypes:
    - PKIX_PL_ByteArray*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 492
    functionDepth: 1
    functionLinenumber: 492
    functionLinenumberEnd: 504
    functionName: PKIX_PL_ByteArray_GetLength
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bytearray.c
    functionUses: 3
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_ByteArray_GetLength(\n        PKIX_PL_ByteArray
      *byteArray,\n        PKIX_UInt32 *pLength,\n        void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:32,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:33,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:35,1
    - Dst: pkix_CheckTypes
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:35,1
    - Dst: PKIX_BIGINT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:54,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:55,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:60,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 4
    argNames:
    - firstObject
    - secondObject
    - pResult
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    - PKIX_Int32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 61
    functionName: pkix_pl_BigInt_Comparator
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PORT_Memcmp
    - PKIX_BIGINT_DEBUG
    - PKIX_ENTER
    - pkix_CheckTypes
    - PKIX_NULLCHECK_THREE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_BigInt_Comparator(\n        PKIX_PL_Object *firstObject,\n
      \       PKIX_PL_Object *secondObject,\n        PKIX_Int32 *pResult,\n        void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:74,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:75,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:77,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:77,1
    - Dst: PKIX_FREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:82,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 89
    functionName: pkix_pl_BigInt_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c
    functionUses: 0
    functionsReached:
    - PKIX_FREE
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_BigInt_Destroy(\n        PKIX_PL_Object *object,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:106,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:107,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:109,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:109,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:117,1
    - Dst: PKIX_PL_Malloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:117,1
    - Dst: pkix_i2hex
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:122,1
    - Dst: pkix_i2hex
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:124,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:130,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:130,1
    - Dst: PKIX_FREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:140,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 3
    argNames:
    - object
    - pString
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_String**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 96
    functionDepth: 3
    functionLinenumber: 96
    functionLinenumberEnd: 143
    functionName: pkix_pl_BigInt_ToString
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c
    functionUses: 0
    functionsReached:
    - PKIX_FREE
    - PKIX_CHECK
    - PKIX_PL_String_Create
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_PL_Malloc
    - PKIX_NULLCHECK_TWO
    - pkix_i2hex
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_BigInt_ToString(\n        PKIX_PL_Object *object,\n
      \       PKIX_PL_String **pString,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:158,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:159,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:161,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:161,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:166,1
    - Dst: pkix_hash
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:166,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - object
    - pHashcode
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 150
    functionDepth: 3
    functionLinenumber: 150
    functionLinenumberEnd: 176
    functionName: pkix_pl_BigInt_Hashcode
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - pkix_hash
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_BigInt_Hashcode(\n        PKIX_PL_Object *object,\n
      \       PKIX_UInt32 *pHashcode,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:192,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:193,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:195,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:195,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:198,1
    - Dst: PKIX_PL_Object_GetType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:198,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:205,1
    - Dst: pkix_pl_BigInt_Comparator
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:205,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:213,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - first
    - second
    - pResult
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 182
    functionDepth: 5
    functionLinenumber: 182
    functionLinenumberEnd: 214
    functionName: pkix_pl_BigInt_Equals
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_pl_BigInt_Comparator
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - pkix_CheckType
    - PKIX_PL_Object_GetType
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_BigInt_Equals(\n        PKIX_PL_Object *first,\n
      \       PKIX_PL_Object *second,\n        PKIX_Boolean *pResult,\n        void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:234,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 249
    functionName: pkix_pl_BigInt_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      pkix_pl_BigInt_RegisterSelf(void *plContext)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:285,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:286,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:289,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:292,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:292,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:299,1
    - Dst: PKIX_PL_Malloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:299,1
    - Dst: PKIX_BIGINT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:303,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:304,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:313,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:316,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 4
    argNames:
    - bytes
    - length
    - pBigInt
    - plContext
    argTypes:
    - char*
    - PKIX_UInt32
    - PKIX_PL_BigInt**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 276
    functionDepth: 4
    functionLinenumber: 276
    functionLinenumberEnd: 317
    functionName: pkix_pl_BigInt_CreateWithBytes
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c
    functionUses: 3
    functionsReached:
    - PORT_Memcpy
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_BIGINT_DEBUG
    - PKIX_PL_Object_Alloc
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_PL_Malloc
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_BigInt_CreateWithBytes(\n        char *bytes,\n
      \       PKIX_UInt32 length,\n        PKIX_PL_BigInt **pBigInt,\n        void
      *plContext)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:337,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:338,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:340,1
    - Dst: PKIX_PL_String_GetEncoded
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:340,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:349,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:354,1
    - Dst: PKIX_ISXDIGIT
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:360,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:361,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:365,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:365,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:375,1
    - Dst: PKIX_PL_Malloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:375,1
    - Dst: pkix_hex2i
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:381,1
    - Dst: pkix_hex2i
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:382,1
    - Dst: PKIX_FREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:391,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:394,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c:397,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 3
    argNames:
    - stringRep
    - pBigInt
    - plContext
    argTypes:
    - PKIX_PL_String*
    - PKIX_PL_BigInt**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 324
    functionDepth: 4
    functionLinenumber: 324
    functionLinenumberEnd: 398
    functionName: PKIX_PL_BigInt_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_bigint.c
    functionUses: 6
    functionsReached:
    - PKIX_FREE
    - PKIX_PL_String_GetEncoded
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_Alloc
    - pkix_hex2i
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_ISXDIGIT
    - PKIX_PL_Malloc
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_BigInt_Create(\n        PKIX_PL_String *stringRep,\n
      \       PKIX_PL_BigInt **pBigInt,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:29,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:30,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:32,1
    - Dst: pkix_CheckTypes
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:32,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:39,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 4
    argNames:
    - firstObject
    - secondObject
    - pRes
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    - PKIX_Int32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 43
    functionName: pkix_pl_OID_Comparator
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c
    functionUses: 0
    functionsReached:
    - SECITEM_CompareItem
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckTypes
    - PKIX_NULLCHECK_THREE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_OID_Comparator(\n        PKIX_PL_Object *firstObject,\n
      \       PKIX_PL_Object *secondObject,\n        PKIX_Int32 *pRes,\n        void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:56,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:57,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:59,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:59,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:62,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 49
    functionDepth: 3
    functionLinenumber: 49
    functionLinenumberEnd: 66
    functionName: pkix_pl_OID_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_NULLCHECK_ONE
    - PKIX_ENTER
    - pkix_CheckType
    - SECITEM_FreeItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_OID_Destroy(\n        PKIX_PL_Object *object,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:80,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:81,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:83,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:83,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:88,1
    - Dst: pkix_hash
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:88,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - object
    - pHashcode
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 72
    functionDepth: 3
    functionLinenumber: 72
    functionLinenumberEnd: 97
    functionName: pkix_pl_OID_Hashcode
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - pkix_hash
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_OID_Hashcode(\n        PKIX_PL_Object *object,\n
      \       PKIX_UInt32 *pHashcode,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:112,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:113,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:115,1
    - Dst: pkix_pl_OID_Comparator
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:115,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - first
    - second
    - pResult
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 103
    functionDepth: 3
    functionLinenumber: 103
    functionLinenumberEnd: 123
    functionName: pkix_pl_OID_Equals
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c
    functionUses: 0
    functionsReached:
    - PKIX_RETURN
    - PKIX_CHECK
    - pkix_pl_OID_Comparator
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_OID_Equals(\n        PKIX_PL_Object *first,\n
      \       PKIX_PL_Object *second,\n        PKIX_Boolean *pResult,\n        void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:140,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:141,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:143,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:143,1
    - Dst: CERT_GetOidString
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:146,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:148,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:148,1
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:152,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - object
    - pString
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_String**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 131
    functionDepth: 3
    functionLinenumber: 131
    functionLinenumberEnd: 155
    functionName: pkix_pl_OID_ToString
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_PL_String_Create
    - PKIX_RETURN
    - PR_smprintf_free
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_NULLCHECK_TWO
    - CERT_GetOidString
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_OID_ToString(\n        PKIX_PL_Object *object,\n
      \       PKIX_PL_String **pString,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:175,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 187
    functionName: pkix_pl_OID_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_OID_RegisterSelf(\n        void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:218,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:219,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:221,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:221,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:237,1
    - Dst: PKIX_PL_OID_CreateBySECItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:238,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:240,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:241,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:244,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:252,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:253,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:254,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - extensions
    - pOidsList
    - plContext
    argTypes:
    - CERTCertExtension**
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 209
    functionDepth: 3
    functionLinenumber: 209
    functionLinenumberEnd: 255
    functionName: pkix_pl_OID_GetCriticalExtensionOIDs
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c
    functionUses: 3
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_Create
    - PKIX_List_AppendItem
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_PL_OID_CreateBySECItem
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_OID_GetCriticalExtensionOIDs(\n        CERTCertExtension
      **extensions,\n        PKIX_List **pOidsList,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:271,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:272,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:274,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:274,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:280,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:282,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:288,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - derOid
    - pOID
    - plContext
    argTypes:
    - SECItem*
    - PKIX_PL_OID**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 262
    functionDepth: 4
    functionLinenumber: 262
    functionLinenumberEnd: 291
    functionName: PKIX_PL_OID_CreateBySECItem
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c
    functionUses: 7
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - SECITEM_CopyItem
    - PKIX_PL_Object_Alloc
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_OID_CreateBySECItem(\n        SECItem *derOid,\n
      \       PKIX_PL_OID **pOID,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:304,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:305,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:307,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:309,1
    - Dst: PKIX_PL_OID_CreateBySECItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:313,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c:315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - idtag
    - pOID
    - plContext
    argTypes:
    - SECOidTag
    - PKIX_PL_OID**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 296
    functionDepth: 5
    functionLinenumber: 296
    functionLinenumberEnd: 316
    functionName: PKIX_PL_OID_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_oid.c
    functionUses: 23
    functionsReached:
    - SECOID_FindOIDByTag
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_PL_OID_CreateBySECItem
    - PKIX_ERROR
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_OID_Create(\n        SECOidTag idtag,\n        PKIX_PL_OID
      **pOID,\n        void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mem.c:25,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mem.c:26,1
    - Dst: PKIX_MEM_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mem.c:35,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mem.c:36,1
    - Dst: PKIX_MEM_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mem.c:38,1
    - Dst: PR_Malloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mem.c:39,1
    - Dst: PKIX_MEM_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mem.c:42,1
    - Dst: PKIX_ERROR_ALLOC_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mem.c:44,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mem.c:52,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 3
    argNames:
    - size
    - pMemory
    - plContext
    argTypes:
    - PKIX_UInt32
    - void**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 53
    functionName: PKIX_PL_Malloc
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mem.c
    functionUses: 27
    functionsReached:
    - PR_Malloc
    - PKIX_RETURN
    - PORT_ArenaAlloc
    - PKIX_MEM_DEBUG
    - PKIX_ENTER
    - PKIX_ERROR_ALLOC_ERROR
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Malloc(\n        PKIX_UInt32 size,\n        void
      **pMemory,\n        void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mem.c:68,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mem.c:69,1
    - Dst: PKIX_MEM_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mem.c:78,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mem.c:79,1
    - Dst: PKIX_MEM_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mem.c:81,1
    - Dst: PR_Calloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mem.c:82,1
    - Dst: PKIX_MEM_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mem.c:85,1
    - Dst: PKIX_ERROR_ALLOC_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mem.c:87,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mem.c:96,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 4
    argNames:
    - nElem
    - elSize
    - pMemory
    - plContext
    argTypes:
    - PKIX_UInt32
    - PKIX_UInt32
    - void**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 97
    functionName: PKIX_PL_Calloc
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mem.c
    functionUses: 2
    functionsReached:
    - PKIX_RETURN
    - PORT_ArenaAlloc
    - PKIX_MEM_DEBUG
    - PR_Calloc
    - PKIX_ENTER
    - PKIX_ERROR_ALLOC_ERROR
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Calloc(\n        PKIX_UInt32 nElem,\n        PKIX_UInt32
      elSize,\n        void **pMemory,\n        void *plContext)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mem.c:112,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mem.c:113,1
    - Dst: PKIX_MEM_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mem.c:118,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mem.c:119,1
    - Dst: PKIX_MEM_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mem.c:122,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mem.c:123,1
    - Dst: PKIX_MEM_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mem.c:127,1
    - Dst: PR_Realloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mem.c:128,1
    - Dst: PKIX_MEM_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mem.c:134,1
    - Dst: PKIX_ERROR_ALLOC_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mem.c:137,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mem.c:146,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 4
    argNames:
    - ptr
    - size
    - pMemory
    - plContext
    argTypes:
    - void*
    - PKIX_UInt32
    - void**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 147
    functionName: PKIX_PL_Realloc
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mem.c
    functionUses: 2
    functionsReached:
    - PORT_Memcpy
    - PKIX_RETURN
    - PKIX_ERROR_ALLOC_ERROR
    - PORT_ArenaAlloc
    - PKIX_MEM_DEBUG
    - PKIX_ENTER
    - PR_Realloc
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Realloc(\n        void *ptr,\n        PKIX_UInt32
      size,\n        void **pMemory,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mem.c:159,1
    - Dst: PKIX_MEM_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mem.c:163,1
    - Dst: PR_Free
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mem.c:164,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mem.c:167,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ptr
    - plContext
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 168
    functionName: PKIX_PL_Free
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_mem.c
    functionUses: 53
    functionsReached:
    - PKIX_ENTER
    - PKIX_MEM_DEBUG
    - PKIX_RETURN
    - PR_Free
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Free(\n        void *ptr,\n        /* ARGSUSED
      */ void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: PKIX_ALLOC_ERROR
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: PKIX_Error
    signature: PKIX_Error * PKIX_ALLOC_ERROR(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - objCountTable
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 69
    functionName: pkix_pl_lifecycle_ObjectTableUpdate
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus pkix_pl_lifecycle_ObjectTableUpdate(int *objCountTable)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PR_snprintf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:99,1
    - Dst: PR_LOG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:103,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - initObjCountTable
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 110
    functionName: pkix_pl_lifecycle_ObjectLeakCheck
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c
    functionUses: 0
    functionsReached:
    - PR_snprintf
    - PR_LOG
    linkageType: ''
    returnType: PKIX_UInt32
    signature: PKIX_UInt32 pkix_pl_lifecycle_ObjectLeakCheck(int *initObjCountTable)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:123,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:130,1
    - Dst: PR_NewLock
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:133,1
    - Dst: PKIX_ALLOC_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:135,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:138,1
    - Dst: PR_NewLogModule
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:139,1
    - Dst: pkix_pl_Object_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:144,1
    - Dst: pkix_Error_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:150,1
    - Dst: pkix_pl_String_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:151,1
    - Dst: pkix_pl_BigInt_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:161,1
    - Dst: pkix_pl_ByteArray_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:162,1
    - Dst: pkix_pl_HashTable_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:163,1
    - Dst: pkix_List_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:164,1
    - Dst: pkix_Logger_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:165,1
    - Dst: pkix_pl_Mutex_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:166,1
    - Dst: pkix_pl_OID_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:167,1
    - Dst: pkix_pl_RWLock_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:168,1
    - Dst: pkix_pl_CertBasicConstraints_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:170,1
    - Dst: pkix_pl_Cert_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:171,1
    - Dst: pkix_pl_CRL_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:172,1
    - Dst: pkix_pl_CRLEntry_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:173,1
    - Dst: pkix_pl_Date_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:174,1
    - Dst: pkix_pl_GeneralName_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:175,1
    - Dst: pkix_pl_CertNameConstraints_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:176,1
    - Dst: pkix_pl_PublicKey_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:177,1
    - Dst: pkix_TrustAnchor_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:178,1
    - Dst: pkix_pl_X500Name_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:180,1
    - Dst: pkix_pl_HttpCertStoreContext_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:181,1
    - Dst: pkix_BuildResult_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:182,1
    - Dst: pkix_ProcessingParams_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:183,1
    - Dst: pkix_ValidateParams_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:184,1
    - Dst: pkix_ValidateResult_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:185,1
    - Dst: pkix_CertStore_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:186,1
    - Dst: pkix_CertChainChecker_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:187,1
    - Dst: pkix_RevocationChecker_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:188,1
    - Dst: pkix_CertSelector_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:189,1
    - Dst: pkix_ComCertSelParams_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:191,1
    - Dst: pkix_CRLSelector_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:192,1
    - Dst: pkix_ComCRLSelParams_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:193,1
    - Dst: pkix_pl_CertPolicyInfo_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:194,1
    - Dst: pkix_pl_CertPolicyQualifier_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:195,1
    - Dst: pkix_pl_CertPolicyMap_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:196,1
    - Dst: pkix_PolicyNode_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:197,1
    - Dst: pkix_TargetCertCheckerState_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:198,1
    - Dst: pkix_BasicConstraintsCheckerState_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:199,1
    - Dst: pkix_PolicyCheckerState_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:200,1
    - Dst: pkix_pl_CollectionCertStoreContext_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:202,1
    - Dst: pkix_CrlChecker_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:203,1
    - Dst: pkix_ForwardBuilderState_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:204,1
    - Dst: pkix_SignatureCheckerState_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:205,1
    - Dst: pkix_NameConstraintsCheckerState_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:206,1
    - Dst: pkix_pl_LdapRequest_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:208,1
    - Dst: pkix_pl_LdapResponse_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:209,1
    - Dst: pkix_pl_LdapDefaultClient_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:210,1
    - Dst: pkix_pl_Socket_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:212,1
    - Dst: pkix_ResourceLimits_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:214,1
    - Dst: pkix_pl_MonitorLock_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:215,1
    - Dst: pkix_pl_InfoAccess_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:216,1
    - Dst: pkix_pl_AIAMgr_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:217,1
    - Dst: pkix_OcspChecker_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:218,1
    - Dst: pkix_pl_OcspCertID_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:219,1
    - Dst: pkix_pl_OcspRequest_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:220,1
    - Dst: pkix_pl_OcspResponse_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:221,1
    - Dst: pkix_pl_HttpDefaultClient_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:222,1
    - Dst: pkix_VerifyNode_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:223,1
    - Dst: pkix_EkuChecker_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:224,1
    - Dst: pkix_pl_CrlDp_RegisterSelf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:225,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:228,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:228,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:239,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 81
    argCount: 3
    argNames:
    - platformInitNeeded
    - useArenas
    - pPlContext
    argTypes:
    - PKIX_Boolean
    - PKIX_Boolean
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 240
    functionName: PKIX_PL_Initialize
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c
    functionUses: 1
    functionsReached:
    - pkix_pl_HttpDefaultClient_RegisterSelf
    - PKIX_RETURN
    - pkix_Logger_RegisterSelf
    - pkix_ComCRLSelParams_RegisterSelf
    - PR_GetEnvSecure
    - pkix_pl_Object_RegisterSelf
    - pkix_PolicyNode_RegisterSelf
    - pkix_pl_Cert_RegisterSelf
    - pkix_pl_HttpCertStoreContext_RegisterSelf
    - pkix_CrlChecker_RegisterSelf
    - pkix_pl_GeneralName_RegisterSelf
    - pkix_pl_LdapRequest_RegisterSelf
    - pkix_pl_CrlDp_RegisterSelf
    - pkix_List_RegisterSelf
    - pkix_ValidateResult_RegisterSelf
    - pkix_pl_CertPolicyInfo_RegisterSelf
    - pkix_Error_RegisterSelf
    - PKIX_PL_NssContext_Create
    - pkix_pl_CertBasicConstraints_RegisterSelf
    - pkix_pl_CRL_RegisterSelf
    - pkix_ProcessingParams_RegisterSelf
    - pkix_pl_Socket_RegisterSelf
    - pkix_BasicConstraintsCheckerState_RegisterSelf
    - pkix_pl_LdapResponse_RegisterSelf
    - pkix_pl_ByteArray_RegisterSelf
    - pkix_pl_OcspCertID_RegisterSelf
    - pkix_pl_Date_RegisterSelf
    - pkix_pl_Mutex_RegisterSelf
    - PKIX_ALLOC_ERROR
    - pkix_CertStore_RegisterSelf
    - pkix_CertChainChecker_RegisterSelf
    - pkix_ComCertSelParams_RegisterSelf
    - PKIX_ENTER
    - pkix_VerifyNode_RegisterSelf
    - PR_NewLock
    - pkix_SignatureCheckerState_RegisterSelf
    - pkix_RevocationChecker_RegisterSelf
    - pkix_pl_X500Name_RegisterSelf
    - pkix_TargetCertCheckerState_RegisterSelf
    - pkix_pl_LdapDefaultClient_RegisterSelf
    - pkix_pl_CertPolicyQualifier_RegisterSelf
    - pkix_pl_CertNameConstraints_RegisterSelf
    - pkix_CertSelector_RegisterSelf
    - pkix_ForwardBuilderState_RegisterSelf
    - pkix_pl_OcspRequest_RegisterSelf
    - pkix_NameConstraintsCheckerState_RegisterSelf
    - pkix_pl_OcspResponse_RegisterSelf
    - PR_NewLogModule
    - pkix_pl_RWLock_RegisterSelf
    - pkix_ValidateParams_RegisterSelf
    - pkix_CRLSelector_RegisterSelf
    - pkix_pl_CollectionCertStoreContext_RegisterSelf
    - pkix_BuildResult_RegisterSelf
    - pkix_pl_BigInt_RegisterSelf
    - pkix_pl_String_RegisterSelf
    - pkix_ResourceLimits_RegisterSelf
    - pkix_pl_InfoAccess_RegisterSelf
    - pkix_pl_PublicKey_RegisterSelf
    - pkix_TrustAnchor_RegisterSelf
    - PKIX_CHECK
    - pkix_pl_OID_RegisterSelf
    - pkix_EkuChecker_RegisterSelf
    - pkix_PolicyCheckerState_RegisterSelf
    - pkix_pl_HashTable_RegisterSelf
    - pkix_pl_CertPolicyMap_RegisterSelf
    - pkix_pl_MonitorLock_RegisterSelf
    - pkix_OcspChecker_RegisterSelf
    - pkix_pl_AIAMgr_RegisterSelf
    - pkix_pl_CRLEntry_RegisterSelf
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Initialize(\n        PKIX_Boolean platformInitNeeded,\n
      \       PKIX_Boolean useArenas,\n        void **pPlContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:252,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:256,1
    - Dst: PR_DestroyLock
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:259,1
    - Dst: pkix_pl_HttpCertStore_Shutdown
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:261,1
    - Dst: pkix_pl_lifecycle_ObjectLeakCheck
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:264,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:265,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:266,1
    - Dst: pkix_pl_lifecycle_ObjectLeakCheck
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:269,1
    - Dst: PKIX_PL_NssContext_Destroy
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:273,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c:278,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 245
    functionDepth: 2
    functionLinenumber: 245
    functionLinenumberEnd: 279
    functionName: PKIX_PL_Shutdown
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - PKIX_RETURN
    - PR_GetEnvSecure
    - PKIX_PL_NssContext_Destroy
    - PKIX_ENTER
    - pkix_pl_HttpCertStore_Shutdown
    - PR_DestroyLock
    - pkix_pl_lifecycle_ObjectLeakCheck
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      PKIX_PL_Shutdown(void *plContext)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - desc
    - ','
    - plerr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 16
    functionName: PKIX_ERRORENTRY
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_error.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_ERRORENTRY(name,desc,plerr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_GetError
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_error.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: PKIX_PL_GetPLErrorCode
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_error.c
    functionUses: 1
    functionsReached:
    - PORT_GetError
    linkageType: ''
    returnType: int
    signature: int PKIX_PL_GetPLErrorCode()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mutex
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 38
    functionName: PKIX_MUTEX_UNLOCK
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_MUTEX_UNLOCK(mutex)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mutex
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 49
    functionName: PKIX_MUTEX_LOCK
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PKIX_MUTEX_LOCK(mutex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:63,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:64,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:66,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:66,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:76,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:77,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:81,1
    - Dst: pkix_pl_PrimHashTable_Destroy
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:81,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:84,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 54
    functionDepth: 3
    functionLinenumber: 54
    functionLinenumberEnd: 89
    functionName: pkix_pl_HashTable_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - pkix_pl_PrimHashTable_Destroy
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_HashTable_Destroy(\n        PKIX_PL_Object *object,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:110,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 125
    functionName: pkix_pl_HashTable_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c
    functionUses: 1
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_HashTable_RegisterSelf(\n        void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:141,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:142,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:145,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:149,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:149,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:157,1
    - Dst: pkix_pl_PrimHashTable_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:157,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:162,1
    - Dst: PKIX_PL_Mutex_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:162,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:172,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:175,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - numBuckets
    - maxEntriesPerBucket
    - pResult
    - plContext
    argTypes:
    - PKIX_UInt32
    - PKIX_UInt32
    - PKIX_PL_HashTable**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 132
    functionDepth: 4
    functionLinenumber: 132
    functionLinenumberEnd: 176
    functionName: PKIX_PL_HashTable_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c
    functionUses: 3
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_pl_PrimHashTable_Create
    - PKIX_PL_Object_Alloc
    - PKIX_PL_Mutex_Create
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_ERROR
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_HashTable_Create(\n        PKIX_UInt32 numBuckets,\n
      \       PKIX_UInt32 maxEntriesPerBucket,\n        PKIX_PL_HashTable **pResult,\n
      \       void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:195,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:198,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:200,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:203,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:208,1
    - Dst: PKIX_PL_Object_Hashcode
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:208,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:211,1
    - Dst: pkix_pl_Object_RetrieveEqualsCallback
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:211,1
    - Dst: PKIX_MUTEX_LOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:215,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:217,1
    - Dst: pkix_pl_PrimHashTable_GetBucketSize
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:217,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:227,1
    - Dst: pkix_pl_PrimHashTable_RemoveFIFO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:227,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:234,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:235,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:238,1
    - Dst: pkix_pl_PrimHashTable_Add
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:238,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:247,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:248,1
    - Dst: PKIX_MUTEX_UNLOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:249,1
    - Dst: PKIX_MUTEX_UNLOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:258,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:260,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 4
    argNames:
    - ht
    - key
    - value
    - plContext
    argTypes:
    - PKIX_PL_HashTable*
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 181
    functionDepth: 5
    functionLinenumber: 181
    functionLinenumberEnd: 261
    functionName: PKIX_PL_HashTable_Add
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c
    functionUses: 8
    functionsReached:
    - pkix_pl_PrimHashTable_GetBucketSize
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_pl_PrimHashTable_Add
    - PKIX_MUTEX_LOCK
    - PKIX_MUTEX_UNLOCK
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_DECREF
    - pkix_pl_Object_RetrieveEqualsCallback
    - PKIX_PL_Object_Hashcode
    - pkix_pl_PrimHashTable_RemoveFIFO
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_HashTable_Add(\n        PKIX_PL_HashTable *ht,\n
      \       PKIX_PL_Object *key,\n        PKIX_PL_Object *value,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:278,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:281,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:283,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:286,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:290,1
    - Dst: PKIX_PL_Object_Hashcode
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:290,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:293,1
    - Dst: pkix_pl_Object_RetrieveEqualsCallback
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:293,1
    - Dst: PKIX_MUTEX_LOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:297,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:300,1
    - Dst: pkix_pl_PrimHashTable_Remove
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:300,1
    - Dst: PKIX_MUTEX_UNLOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:310,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:312,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:313,1
    - Dst: PKIX_MUTEX_UNLOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:322,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 3
    argNames:
    - ht
    - key
    - plContext
    argTypes:
    - PKIX_PL_HashTable*
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 266
    functionDepth: 5
    functionLinenumber: 266
    functionLinenumberEnd: 325
    functionName: PKIX_PL_HashTable_Remove
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c
    functionUses: 4
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_MUTEX_LOCK
    - PKIX_MUTEX_UNLOCK
    - pkix_pl_PrimHashTable_Remove
    - PKIX_ENTER
    - PKIX_DECREF
    - pkix_pl_Object_RetrieveEqualsCallback
    - PKIX_PL_Object_Hashcode
    - PKIX_NULLCHECK_TWO
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_HashTable_Remove(\n        PKIX_PL_HashTable
      *ht,\n        PKIX_PL_Object *key,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:342,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:345,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:347,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:350,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:354,1
    - Dst: PKIX_PL_Object_Hashcode
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:354,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:357,1
    - Dst: pkix_pl_Object_RetrieveEqualsCallback
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:357,1
    - Dst: PKIX_MUTEX_LOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:361,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:364,1
    - Dst: pkix_pl_PrimHashTable_Lookup
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:364,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:373,1
    - Dst: PKIX_MUTEX_UNLOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:374,1
    - Dst: PKIX_MUTEX_UNLOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:380,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c:382,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 4
    argNames:
    - ht
    - key
    - pResult
    - plContext
    argTypes:
    - PKIX_PL_HashTable*
    - PKIX_PL_Object*
    - PKIX_PL_Object**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 330
    functionDepth: 5
    functionLinenumber: 330
    functionLinenumberEnd: 383
    functionName: PKIX_PL_HashTable_Lookup
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_hashtable.c
    functionUses: 8
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_MUTEX_LOCK
    - pkix_pl_PrimHashTable_Lookup
    - PKIX_MUTEX_UNLOCK
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - pkix_pl_Object_RetrieveEqualsCallback
    - PKIX_PL_Object_Hashcode
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_HashTable_Lookup(\n        PKIX_PL_HashTable
      *ht,\n        PKIX_PL_Object *key,\n        PKIX_PL_Object **pResult,\n        void
      *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:39,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:40,1
    - Dst: PKIX_ALLOC_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:42,1
    - Dst: PKIX_OBJECT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:46,1
    - Dst: PKIX_OBJECT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:51,1
    - Dst: PR_Lock
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:52,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 57
    functionName: pkix_LockObject
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c
    functionUses: 4
    functionsReached:
    - PKIX_RETURN
    - PKIX_OBJECT_DEBUG
    - PKIX_ALLOC_ERROR
    - PR_Lock
    - PKIX_ENTER
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_LockObject(\n        PKIX_PL_Object *object,\n
      \       void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:84,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:85,1
    - Dst: PKIX_ALLOC_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:87,1
    - Dst: PKIX_OBJECT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:91,1
    - Dst: PKIX_OBJECT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:96,1
    - Dst: PR_Unlock
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:97,1
    - Dst: PKIX_OBJECT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:100,1
    - Dst: PKIX_ERROR_FATAL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:101,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:106,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 107
    functionName: pkix_UnlockObject
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c
    functionUses: 4
    functionsReached:
    - PKIX_RETURN
    - PKIX_OBJECT_DEBUG
    - PKIX_ALLOC_ERROR
    - PKIX_ENTER
    - PR_Unlock
    - PKIX_ERROR_FATAL
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_UnlockObject(\n        PKIX_PL_Object *object,\n
      \       void *plContext)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_DEBUG_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:135,1
    - Dst: PKIX_OID_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:137,1
    - Dst: PL_strlen
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:138,1
    - Dst: PKIX_OID_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:151,1
    - Dst: PL_strlen
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:152,1
    - Dst: PKIX_OID_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:158,1
    - Dst: PKIX_OID_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:160,1
    - Dst: PORT_Strcmp
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:161,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 167
    functionName: pkix_pl_UInt32_Overflows
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c
    functionUses: 0
    functionsReached:
    - PKIX_DEBUG_ENTER
    - PL_strlen
    - PKIX_OID_DEBUG
    - PORT_Strcmp
    linkageType: ''
    returnType: PKIX_Boolean
    signature: PKIX_Boolean pkix_pl_UInt32_Overflows(char *string)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:215,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:216,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:238,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:242,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 5
    argNames:
    - derBytes
    - index
    - pToken
    - pIndex
    - plContext
    argTypes:
    - char*
    - PKIX_UInt32
    - PKIX_UInt32*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 244
    functionName: pkix_pl_getOIDToken
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c
    functionUses: 0
    functionsReached:
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_getOIDToken(\n        char *derBytes,\n        PKIX_UInt32
      index,\n        PKIX_UInt32 *pToken,\n        PKIX_UInt32 *pIndex,\n        void
      *plContext)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:289,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:290,1
    - Dst: PKIX_ERROR_FATAL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:293,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:304,1
    - Dst: PKIX_PL_Malloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:304,1
    - Dst: PKIX_OBJECT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:309,1
    - Dst: PR_snprintf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:310,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:315,1
    - Dst: PKIX_OBJECT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:318,1
    - Dst: PL_strlen
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:319,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:326,1
    - Dst: PKIX_PL_Malloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:326,1
    - Dst: PKIX_OBJECT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:335,1
    - Dst: PR_snprintf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:336,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:341,1
    - Dst: PKIX_OBJECT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:344,1
    - Dst: PL_strcat
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:345,1
    - Dst: PKIX_OBJECT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:349,1
    - Dst: PL_strcat
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:350,1
    - Dst: PKIX_FREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:362,1
    - Dst: PKIX_FREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:363,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:365,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 40
    argCount: 4
    argNames:
    - tokens
    - numTokens
    - pAscii
    - plContext
    argTypes:
    - PKIX_UInt32*
    - PKIX_UInt32
    - char**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 275
    functionDepth: 2
    functionLinenumber: 275
    functionLinenumberEnd: 367
    functionName: pkix_pl_helperBytes2Ascii
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c
    functionUses: 0
    functionsReached:
    - PR_snprintf
    - PKIX_FREE
    - PL_strlen
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_OBJECT_DEBUG
    - PL_strcat
    - PKIX_ENTER
    - PKIX_ERROR_FATAL
    - PKIX_PL_Malloc
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_helperBytes2Ascii(\n        PKIX_UInt32 *tokens,\n
      \       PKIX_UInt32 numTokens,\n        char **pAscii,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:410,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:411,1
    - Dst: PKIX_ERROR_FATAL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:414,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:421,1
    - Dst: PKIX_PL_Malloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:421,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:433,1
    - Dst: pkix_pl_helperBytes2Ascii
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:433,1
    - Dst: PKIX_FREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:441,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:443,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - secItem
    - pAscii
    - plContext
    argTypes:
    - SECItem*
    - char**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 398
    functionDepth: 3
    functionLinenumber: 398
    functionLinenumberEnd: 444
    functionName: pkix_pl_ipAddrBytes2Ascii
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c
    functionUses: 1
    functionsReached:
    - PKIX_FREE
    - PKIX_CHECK
    - pkix_pl_helperBytes2Ascii
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_ERROR_FATAL
    - PKIX_PL_Malloc
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_ipAddrBytes2Ascii(\n        SECItem *secItem,\n
      \       char **pAscii,\n        void *plContext)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:493,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:494,1
    - Dst: PKIX_ERROR_FATAL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:497,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:513,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:520,1
    - Dst: PKIX_PL_Malloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:520,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:530,1
    - Dst: pkix_pl_getOIDToken
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:530,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:560,1
    - Dst: pkix_pl_helperBytes2Ascii
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:560,1
    - Dst: PKIX_FREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:568,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:569,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 3
    argNames:
    - secItem
    - pAscii
    - plContext
    argTypes:
    - SECItem*
    - char**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 478
    functionDepth: 3
    functionLinenumber: 478
    functionLinenumberEnd: 571
    functionName: pkix_pl_oidBytes2Ascii
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c
    functionUses: 2
    functionsReached:
    - PKIX_FREE
    - PKIX_CHECK
    - pkix_pl_helperBytes2Ascii
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_ERROR_FATAL
    - PKIX_PL_Malloc
    - PKIX_ERROR
    - pkix_pl_getOIDToken
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_oidBytes2Ascii(\n        SECItem *secItem,\n
      \       char **pAscii,\n        void *plContext)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:619,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:620,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:627,1
    - Dst: pkix_isPlaintext
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:633,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:643,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:652,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:663,1
    - Dst: PKIX_PL_Malloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:663,1
    - Dst: pkix_isPlaintext
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:669,1
    - Dst: PKIX_STRING_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:693,1
    - Dst: PR_snprintf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:694,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:696,1
    - Dst: PKIX_STRING_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:702,1
    - Dst: PR_snprintf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:703,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:710,1
    - Dst: PKIX_FREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:720,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:723,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 67
    argCount: 6
    argNames:
    - utf16String
    - utf16Length
    - debug
    - pDest
    - pLength
    - plContext
    argTypes:
    - void*
    - PKIX_UInt32
    - PKIX_Boolean
    - char**
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 605
    functionDepth: 2
    functionLinenumber: 605
    functionLinenumberEnd: 724
    functionName: pkix_UTF16_to_EscASCII
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c
    functionUses: 1
    functionsReached:
    - PR_snprintf
    - PKIX_FREE
    - PKIX_STRING_DEBUG
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_isPlaintext
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_PL_Malloc
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_UTF16_to_EscASCII(\n        const void *utf16String,\n
      \       PKIX_UInt32 utf16Length,\n        PKIX_Boolean debug,\n        char
      **pDest,\n        PKIX_UInt32 *pLength,\n        void *plContext)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:771,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:772,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:775,1
    - Dst: PKIX_PL_Malloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:775,1
    - Dst: pkix_isPlaintext
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:785,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:787,1
    - Dst: PL_strstr
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:788,1
    - Dst: PL_strstr
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:793,1
    - Dst: PL_strstr
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:795,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:808,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:813,1
    - Dst: PKIX_PL_Malloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:813,1
    - Dst: pkix_isPlaintext
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:822,1
    - Dst: PL_strstr
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:825,1
    - Dst: PL_strstr
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:831,1
    - Dst: PL_strstr
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:833,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:846,1
    - Dst: PKIX_ISXDIGIT
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:850,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:852,1
    - Dst: pkix_hex2i
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:854,1
    - Dst: pkix_hex2i
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:861,1
    - Dst: pkix_hex2i
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:862,1
    - Dst: pkix_hex2i
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:864,1
    - Dst: pkix_hex2i
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:865,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:870,1
    - Dst: pkix_isPlaintext
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:872,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:873,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:883,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:907,1
    - Dst: PKIX_FREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:916,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:919,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 93
    argCount: 6
    argNames:
    - escAsciiString
    - escAsciiLen
    - debug
    - pDest
    - pLength
    - plContext
    argTypes:
    - char*
    - PKIX_UInt32
    - PKIX_Boolean
    - void**
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 756
    functionDepth: 2
    functionLinenumber: 756
    functionLinenumberEnd: 920
    functionName: pkix_EscASCII_to_UTF16
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c
    functionUses: 1
    functionsReached:
    - PKIX_FREE
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ISXDIGIT
    - pkix_isPlaintext
    - PL_strstr
    - pkix_hex2i
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_PL_Malloc
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_EscASCII_to_UTF16(\n        const char *escAsciiString,\n
      \       PKIX_UInt32 escAsciiLen,\n        PKIX_Boolean debug,\n        void
      **pDest,\n        PKIX_UInt32 *pLength,\n        void *plContext)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:965,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:966,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:969,1
    - Dst: PKIX_PL_Calloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:969,1
    - Dst: PKIX_STRING_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:972,1
    - Dst: PORT_UCS2_UTF8Conversion
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:973,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:981,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:990,1
    - Dst: PKIX_PL_Realloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:990,1
    - Dst: PKIX_FREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:1001,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:1004,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 6
    argNames:
    - utf16String
    - utf16Length
    - null_term
    - pDest
    - pLength
    - plContext
    argTypes:
    - void*
    - PKIX_UInt32
    - PKIX_Boolean
    - void**
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 952
    functionDepth: 2
    functionLinenumber: 952
    functionLinenumberEnd: 1005
    functionName: pkix_UTF16_to_UTF8
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c
    functionUses: 1
    functionsReached:
    - PKIX_FREE
    - PKIX_STRING_DEBUG
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_PL_Calloc
    - PORT_UCS2_UTF8Conversion
    - PKIX_PL_Realloc
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_UTF16_to_UTF8(\n        const void *utf16String,\n
      \       PKIX_UInt32 utf16Length,\n        PKIX_Boolean null_term,\n        void
      **pDest,\n        PKIX_UInt32 *pLength,\n        void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:1044,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:1045,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:1048,1
    - Dst: PKIX_PL_Calloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:1048,1
    - Dst: PKIX_STRING_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:1051,1
    - Dst: PORT_UCS2_UTF8Conversion
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:1052,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:1060,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:1063,1
    - Dst: PKIX_PL_Realloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:1063,1
    - Dst: PKIX_FREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:1069,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c:1072,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 5
    argNames:
    - utf8String
    - utf8Length
    - pDest
    - pLength
    - plContext
    argTypes:
    - void*
    - PKIX_UInt32
    - void**
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 1034
    functionDepth: 2
    functionLinenumber: 1034
    functionLinenumberEnd: 1073
    functionName: pkix_UTF8_to_UTF16
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_common.c
    functionUses: 1
    functionsReached:
    - PKIX_FREE
    - PKIX_STRING_DEBUG
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_PL_Calloc
    - PORT_UCS2_UTF8Conversion
    - PKIX_PL_Realloc
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_UTF8_to_UTF16(\n        const void *utf8String,\n
      \       PKIX_UInt32 utf8Length,\n        void **pDest,\n        PKIX_UInt32
      *pLength,\n        void *plContext)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c:67,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c:68,1
    - Dst: PORT_Strncasecmp
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c:82,1
    - Dst: PORT_Strncasecmp
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c:86,1
    - Dst: PORT_Strncasecmp
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c:90,1
    - Dst: PORT_Strncasecmp
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c:94,1
    - Dst: PORT_Strncasecmp
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c:98,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c:105,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 3
    argNames:
    - attrType
    - pAttrBit
    - plContext
    argTypes:
    - SECItem*
    - LdapAttrMask*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 106
    functionName: pkix_pl_LdapRequest_AttrTypeToBit
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c
    functionUses: 0
    functionsReached:
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PORT_Strncasecmp
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_LdapRequest_AttrTypeToBit(\n        SECItem
      *attrType,\n        LdapAttrMask *pAttrBit,\n        void *plContext)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c:141,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c:142,1
    - Dst: PL_strlen
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c:144,1
    - Dst: PORT_Strncasecmp
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c:155,1
    - Dst: PORT_Strncasecmp
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c:159,1
    - Dst: PORT_Strncasecmp
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c:163,1
    - Dst: PORT_Strncasecmp
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c:167,1
    - Dst: PORT_Strncasecmp
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c:171,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c:178,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 3
    argNames:
    - attrString
    - pAttrBit
    - plContext
    argTypes:
    - char*
    - LdapAttrMask*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 179
    functionName: pkix_pl_LdapRequest_AttrStringToBit
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c
    functionUses: 1
    functionsReached:
    - PL_strlen
    - PKIX_RETURN
    - PORT_Strncasecmp
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_LdapRequest_AttrStringToBit(\n        char *attrString,\n
      \       LdapAttrMask *pAttrBit,\n        void *plContext)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c:211,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c:212,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c:254,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 42
    argCount: 2
    argNames:
    - request
    - plContext
    argTypes:
    - PKIX_PL_LdapRequest*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 255
    functionName: pkix_pl_LdapRequest_EncodeAttrs
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_LdapRequest_EncodeAttrs(\n        PKIX_PL_LdapRequest
      *request,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c:266,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c:267,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c:269,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c:269,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 261
    functionDepth: 3
    functionLinenumber: 261
    functionLinenumberEnd: 280
    functionName: pkix_pl_LdapRequest_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c
    functionUses: 0
    functionsReached:
    - PKIX_RETURN
    - PKIX_CHECK
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_LdapRequest_Destroy(\n        PKIX_PL_Object
      *object,\n        void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c:299,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c:300,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c:302,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c:302,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c:331,1
    - Dst: pkix_hash
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c:331,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c:337,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 3
    argNames:
    - object
    - pHashcode
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 286
    functionDepth: 3
    functionLinenumber: 286
    functionLinenumberEnd: 339
    functionName: pkix_pl_LdapRequest_Hashcode
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - pkix_hash
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_LdapRequest_Hashcode(\n        PKIX_PL_Object
      *object,\n        PKIX_UInt32 *pHashcode,\n        void *plContext)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c:362,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c:363,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c:366,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c:366,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c:383,1
    - Dst: PKIX_PL_Object_GetType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c:383,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c:445,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 50
    argCount: 4
    argNames:
    - firstObj
    - secondObj
    - pResult
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 345
    functionDepth: 5
    functionLinenumber: 345
    functionLinenumberEnd: 446
    functionName: pkix_pl_LdapRequest_Equals
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - pkix_CheckType
    - PKIX_PL_Object_GetType
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_LdapRequest_Equals(\n        PKIX_PL_Object
      *firstObj,\n        PKIX_PL_Object *secondObj,\n        PKIX_Boolean *pResult,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c:469,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c:483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 463
    functionDepth: 1
    functionLinenumber: 463
    functionLinenumberEnd: 484
    functionName: pkix_pl_LdapRequest_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c
    functionUses: 1
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      pkix_pl_LdapRequest_RegisterSelf(void *plContext)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c:634,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c:635,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c:638,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c:638,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c:658,1
    - Dst: pkix_pl_LdapRequest_EncodeAttrs
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c:658,1
    - Dst: PKIX_PL_NSSCALL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c:662,1
    - Dst: PL_strlen
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c:675,1
    - Dst: PKIX_PL_NSSCALL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c:696,1
    - Dst: PKIX_PL_NSSCALLRV
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c:703,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c:708,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c:716,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c:719,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 55
    argCount: 12
    argNames:
    - arena
    - msgnum
    - issuerDN
    - scope
    - derefAliases
    - sizeLimit
    - timeLimit
    - attrsOnly
    - filter
    - attrBits
    - pRequestMsg
    - plContext
    argTypes:
    - PLArenaPool*
    - PKIX_UInt32
    - char*
    - ScopeType
    - DerefType
    - PKIX_UInt32
    - PKIX_UInt32
    - char
    - LDAPFilter*
    - LdapAttrMask
    - PKIX_PL_LdapRequest**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 612
    functionDepth: 4
    functionLinenumber: 612
    functionLinenumberEnd: 720
    functionName: pkix_pl_LdapRequest_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c
    functionUses: 0
    functionsReached:
    - PL_strlen
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_Alloc
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - pkix_pl_LdapRequest_EncodeAttrs
    - PKIX_PL_NSSCALLRV
    - PKIX_PL_NSSCALL
    - PKIX_DECREF
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_LdapRequest_Create(\n        PLArenaPool *arena,\n
      \       PKIX_UInt32 msgnum,\n        char *issuerDN,\n        ScopeType scope,\n
      \       DerefType derefAliases,\n        PKIX_UInt32 sizeLimit,\n        PKIX_UInt32
      timeLimit,\n        char attrsOnly,\n        LDAPFilter *filter,\n        LdapAttrMask
      attrBits,\n        PKIX_PL_LdapRequest **pRequestMsg,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c:751,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c:752,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c:756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - request
    - pRequestBuf
    - plContext
    argTypes:
    - PKIX_PL_LdapRequest*
    - SECItem**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 745
    functionDepth: 1
    functionLinenumber: 745
    functionLinenumberEnd: 757
    functionName: pkix_pl_LdapRequest_GetEncoded
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_LdapRequest_GetEncoded(\n        PKIX_PL_LdapRequest
      *request,\n        SECItem **pRequestBuf,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:25,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:26,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:28,1
    - Dst: PKIX_PL_LdapClient*::initiateFcn
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:28,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - client
    - requestParams
    - pNBIO
    - pResponse
    - plContext
    argTypes:
    - PKIX_PL_LdapClient*
    - LDAPRequestParams*
    - void**
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 35
    functionName: PKIX_PL_LdapClient_InitiateRequest
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c
    functionUses: 0
    functionsReached:
    - PKIX_RETURN
    - PKIX_CHECK
    - PKIX_PL_LdapClient*::initiateFcn
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_LdapClient_InitiateRequest(\n        PKIX_PL_LdapClient
      *client,\n        LDAPRequestParams *requestParams,\n        void **pNBIO,\n
      \       PKIX_List **pResponse,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:44,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:45,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:47,1
    - Dst: PKIX_PL_LdapClient*::resumeFcn
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:47,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - client
    - pNBIO
    - pResponse
    - plContext
    argTypes:
    - PKIX_PL_LdapClient*
    - void**
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 54
    functionName: PKIX_PL_LdapClient_ResumeRequest
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_PL_LdapClient*::resumeFcn
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_LdapClient_ResumeRequest(\n        PKIX_PL_LdapClient
      *client,\n        void **pNBIO,\n        PKIX_List **pResponse,\n        void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:70,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:71,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:73,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:73,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:83,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:84,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:85,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:87,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 63
    functionDepth: 3
    functionLinenumber: 63
    functionLinenumberEnd: 93
    functionName: pkix_pl_AIAMgr_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_AIAMgr_Destroy(\n        PKIX_PL_Object *object,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:112,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 119
    functionName: pkix_pl_AIAMgr_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c
    functionUses: 1
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      pkix_pl_AIAMgr_RegisterSelf(void *plContext)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:162,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:163,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:173,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:177,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:177,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:182,1
    - Dst: PKIX_PL_HashTable_Lookup
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:182,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:192,1
    - Dst: PKIX_PL_LdapDefaultClient_CreateByName
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:192,1
    - Dst: PR_SecondsToInterval
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:196,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:203,1
    - Dst: PKIX_PL_HashTable_Add
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:203,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:216,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:218,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - aiaMgr
    - domainName
    - pClient
    - plContext
    argTypes:
    - PKIX_PL_AIAMgr*
    - char*
    - PKIX_PL_LdapClient**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 152
    functionDepth: 6
    functionLinenumber: 152
    functionLinenumberEnd: 219
    functionName: pkix_pl_AiaMgr_FindLDAPClient
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c
    functionUses: 0
    functionsReached:
    - PKIX_PL_LdapDefaultClient_CreateByName
    - PKIX_CHECK
    - PKIX_PL_String_Create
    - PR_SecondsToInterval
    - PKIX_PL_HashTable_Add
    - PKIX_RETURN
    - PKIX_PL_HashTable_Lookup
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_DECREF
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_AiaMgr_FindLDAPClient(\n        PKIX_PL_AIAMgr
      *aiaMgr,\n        char *domainName,\n        PKIX_PL_LdapClient **pClient,\n
      \       void *plContext)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:247,1
    - Dst: PKIX_NULLCHECK_FOUR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:248,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:256,1
    - Dst: PKIX_PL_InfoAccess_GetLocation
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:256,1
    - Dst: SEC_GetRegisteredHttpClient
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:261,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:264,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:274,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:277,1
    - Dst: PKIX_PL_String_GetEncoded
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:277,1
    - Dst: CERT_ParseURL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:285,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:290,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:296,1
    - Dst: PR_SecondsToInterval
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:303,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:306,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:311,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:334,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:342,1
    - Dst: pkix_pl_HttpCertStore_ProcessCertResponse
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:342,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:363,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:381,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:382,1
    - Dst: PORT_Free
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:385,1
    - Dst: PORT_Free
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:388,1
    - Dst: PORT_Free
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:391,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:394,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 85
    argCount: 5
    argNames:
    - aiaMgr
    - ia
    - pNBIOContext
    - pCerts
    - plContext
    argTypes:
    - PKIX_PL_AIAMgr*
    - PKIX_PL_InfoAccess*
    - void**
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 222
    functionDepth: 2
    functionLinenumber: 222
    functionLinenumberEnd: 395
    functionName: pkix_pl_AIAMgr_GetHTTPCerts
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c
    functionUses: 0
    functionsReached:
    - PKIX_PL_String_GetEncoded
    - PKIX_CHECK
    - PR_SecondsToInterval
    - PKIX_PL_InfoAccess_GetLocation
    - PKIX_RETURN
    - PORT_Free
    - PKIX_NULLCHECK_FOUR
    - pkix_pl_HttpCertStore_ProcessCertResponse
    - CERT_ParseURL
    - PKIX_ENTER
    - PKIX_DECREF
    - SEC_GetRegisteredHttpClient
    - PKIX_TOSTRING
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_AIAMgr_GetHTTPCerts(\n        PKIX_PL_AIAMgr
      *aiaMgr,\n\tPKIX_PL_InfoAccess *ia,\n\tvoid **pNBIOContext,\n\tPKIX_List **pCerts,\n
      \       void *plContext)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:414,1
    - Dst: PKIX_NULLCHECK_FOUR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:415,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:430,1
    - Dst: PKIX_PL_InfoAccess_GetLocation
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:430,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:438,1
    - Dst: PKIX_ERROR_FATAL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:440,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:443,1
    - Dst: pkix_pl_InfoAccess_ParseLocation
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:443,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:447,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:450,1
    - Dst: pkix_pl_AiaMgr_FindLDAPClient
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:450,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:456,1
    - Dst: PKIX_PL_LdapClient_InitiateRequest
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:456,1
    - Dst: PKIX_PL_NSSCALL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:464,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:468,1
    - Dst: PKIX_PL_LdapClient_ResumeRequest
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:468,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:480,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:485,1
    - Dst: pkix_pl_LdapCertStore_BuildCertList
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:485,1
    - Dst: PKIX_PL_NSSCALL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:495,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:499,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:502,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:504,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 48
    argCount: 5
    argNames:
    - aiaMgr
    - ia
    - pNBIOContext
    - pCerts
    - plContext
    argTypes:
    - PKIX_PL_AIAMgr*
    - PKIX_PL_InfoAccess*
    - void**
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 398
    functionDepth: 7
    functionLinenumber: 398
    functionLinenumberEnd: 505
    functionName: pkix_pl_AIAMgr_GetLDAPCerts
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c
    functionUses: 0
    functionsReached:
    - pkix_pl_LdapCertStore_BuildCertList
    - PORT_NewArena
    - PKIX_CHECK
    - PKIX_PL_InfoAccess_GetLocation
    - PKIX_RETURN
    - pkix_pl_AiaMgr_FindLDAPClient
    - PKIX_NULLCHECK_FOUR
    - PKIX_PL_LdapClient_ResumeRequest
    - pkix_pl_InfoAccess_ParseLocation
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_PL_NSSCALL
    - PKIX_ERROR_FATAL
    - PKIX_PL_LdapClient_InitiateRequest
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_AIAMgr_GetLDAPCerts(\n        PKIX_PL_AIAMgr
      *aiaMgr,\n\tPKIX_PL_InfoAccess *ia,\n\tvoid **pNBIOContext,\n\tPKIX_List **pCerts,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:533,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:534,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:536,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:536,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 2
    argNames:
    - pAIAMgr
    - plContext
    argTypes:
    - PKIX_PL_AIAMgr**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 526
    functionDepth: 4
    functionLinenumber: 526
    functionLinenumberEnd: 559
    functionName: PKIX_PL_AIAMgr_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c
    functionUses: 1
    functionsReached:
    - PKIX_RETURN
    - PKIX_CHECK
    - PKIX_PL_Object_Alloc
    - PKIX_ENTER
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_AIAMgr_Create(\n        PKIX_PL_AIAMgr **pAIAMgr,\n
      \       void *plContext)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:581,1
    - Dst: PKIX_NULLCHECK_FOUR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:582,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:591,1
    - Dst: PKIX_PL_Cert_GetAuthorityInfoAccess
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:591,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:596,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:596,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:618,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:618,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:625,1
    - Dst: PKIX_PL_InfoAccess_GetMethod
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:625,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:631,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:635,1
    - Dst: PKIX_PL_InfoAccess_GetLocationType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:635,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:640,1
    - Dst: pkix_pl_AIAMgr_GetHTTPCerts
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:640,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:645,1
    - Dst: pkix_pl_AIAMgr_GetLDAPCerts
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:645,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:651,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:667,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:667,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:671,1
    - Dst: pkix_List_AppendList
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:671,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:674,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:676,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:679,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:688,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:689,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:691,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:695,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:696,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c:698,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 65
    argCount: 5
    argNames:
    - aiaMgr
    - prevCert
    - pNBIOContext
    - pCerts
    - plContext
    argTypes:
    - PKIX_PL_AIAMgr*
    - PKIX_PL_Cert*
    - void**
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 566
    functionDepth: 8
    functionLinenumber: 566
    functionLinenumberEnd: 699
    functionName: PKIX_PL_AIAMgr_GetAIACerts
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_aiamgr.c
    functionUses: 1
    functionsReached:
    - PKIX_CHECK
    - PKIX_PL_Cert_GetAuthorityInfoAccess
    - PKIX_PL_InfoAccess_GetMethod
    - pkix_pl_AIAMgr_GetHTTPCerts
    - PKIX_List_Create
    - PKIX_List_GetLength
    - pkix_List_AppendList
    - PKIX_NULLCHECK_FOUR
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_PL_InfoAccess_GetLocationType
    - pkix_pl_AIAMgr_GetLDAPCerts
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_AIAMgr_GetAIACerts(\n        PKIX_PL_AIAMgr
      *aiaMgr,\n        PKIX_PL_Cert *prevCert,\n        void **pNBIOContext,\n        PKIX_List
      **pCerts,\n        void *plContext)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:32,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:33,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:35,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:35,1
    - Dst: PR_Free
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:43,1
    - Dst: PR_Free
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:50,1
    - Dst: PR_Free
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:57,1
    - Dst: PR_Free
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:61,1
    - Dst: PR_Free
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:63,1
    - Dst: PR_Free
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:65,1
    - Dst: PR_Free
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:66,1
    - Dst: PR_Free
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:68,1
    - Dst: PR_Free
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:74,1
    - Dst: PKIX_FREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:78,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:82,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 18
    functionDepth: 3
    functionLinenumber: 18
    functionLinenumberEnd: 83
    functionName: pkix_pl_LdapResponse_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c
    functionUses: 0
    functionsReached:
    - PKIX_FREE
    - PKIX_CHECK
    - PKIX_RETURN
    - PR_Free
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_LdapResponse_Destroy(\n        PKIX_PL_Object
      *object,\n        void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:102,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:103,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:105,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:105,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:134,1
    - Dst: pkix_hash
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:134,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:140,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 3
    argNames:
    - object
    - pHashcode
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 89
    functionDepth: 3
    functionLinenumber: 89
    functionLinenumberEnd: 142
    functionName: pkix_pl_LdapResponse_Hashcode
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - pkix_hash
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_LdapResponse_Hashcode(\n        PKIX_PL_Object
      *object,\n        PKIX_UInt32 *pHashcode,\n        void *plContext)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:165,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:166,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:169,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:169,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:186,1
    - Dst: PKIX_PL_Object_GetType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:186,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:247,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 50
    argCount: 4
    argNames:
    - firstObj
    - secondObj
    - pResult
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 148
    functionDepth: 5
    functionLinenumber: 148
    functionLinenumberEnd: 248
    functionName: pkix_pl_LdapResponse_Equals
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - pkix_CheckType
    - PKIX_PL_Object_GetType
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_LdapResponse_Equals(\n        PKIX_PL_Object
      *firstObj,\n        PKIX_PL_Object *secondObj,\n        PKIX_Boolean *pResult,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:271,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 286
    functionName: pkix_pl_LdapResponse_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c
    functionUses: 1
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      pkix_pl_LdapResponse_RegisterSelf(void *plContext)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:347,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:348,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:357,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:357,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:370,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:372,1
    - Dst: PKIX_PL_Malloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:372,1
    - Dst: PKIX_PL_NSSCALL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:378,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:393,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:396,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 7
    argNames:
    - responseType
    - totalLength
    - bytesAvailable
    - partialData
    - pBytesConsumed
    - pLdapResponse
    - plContext
    argTypes:
    - LDAPMessageType
    - PKIX_UInt32
    - PKIX_UInt32
    - void*
    - PKIX_UInt32*
    - PKIX_PL_LdapResponse**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 333
    functionDepth: 4
    functionLinenumber: 333
    functionLinenumberEnd: 397
    functionName: pkix_pl_LdapResponse_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_Alloc
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_PL_NSSCALL
    - PKIX_PL_Malloc
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_LdapResponse_Create(\n        LDAPMessageType
      responseType,\n        PKIX_UInt32 totalLength,\n        PKIX_UInt32 bytesAvailable,\n
      \       void *partialData,\n        PKIX_UInt32 *pBytesConsumed,\n        PKIX_PL_LdapResponse
      **pLdapResponse,\n        void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:440,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:441,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:455,1
    - Dst: PKIX_PL_NSSCALL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:460,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:470,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 5
    argNames:
    - response
    - incrLength
    - incrData
    - pBytesConsumed
    - plContext
    argTypes:
    - PKIX_PL_LdapResponse*
    - PKIX_UInt32
    - void*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 471
    functionName: pkix_pl_LdapResponse_Append
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c
    functionUses: 0
    functionsReached:
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_PL_NSSCALL
    - PKIX_NULLCHECK_TWO
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_LdapResponse_Append(\n        PKIX_PL_LdapResponse
      *response,\n        PKIX_UInt32 incrLength,\n        void *incrData,\n        PKIX_UInt32
      *pBytesConsumed,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:508,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:509,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:517,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - response
    - pIsComplete
    - plContext
    argTypes:
    - PKIX_PL_LdapResponse*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 502
    functionDepth: 1
    functionLinenumber: 502
    functionLinenumberEnd: 518
    functionName: pkix_pl_LdapResponse_IsComplete
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_LdapResponse_IsComplete(\n        PKIX_PL_LdapResponse
      *response,\n        PKIX_Boolean *pIsComplete,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:558,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:559,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:562,1
    - Dst: PKIX_PL_NSSCALL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:567,1
    - Dst: PKIX_PL_NSSCALLRV
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:570,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:576,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - arena
    - response
    - pStatus
    - plContext
    argTypes:
    - PLArenaPool*
    - PKIX_PL_LdapResponse*
    - SECStatus*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 548
    functionDepth: 1
    functionLinenumber: 548
    functionLinenumberEnd: 577
    functionName: pkix_pl_LdapResponse_Decode
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c
    functionUses: 0
    functionsReached:
    - PKIX_RETURN
    - PKIX_PL_NSSCALLRV
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_PL_NSSCALL
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_LdapResponse_Decode(\n        PLArenaPool *arena,\n
      \       PKIX_PL_LdapResponse *response,\n        SECStatus *pStatus,\n        void
      *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:607,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:608,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - response
    - pMessage
    - plContext
    argTypes:
    - PKIX_PL_LdapResponse*
    - LDAPMessage**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 601
    functionDepth: 1
    functionLinenumber: 601
    functionLinenumberEnd: 613
    functionName: pkix_pl_LdapResponse_GetMessage
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_LdapResponse_GetMessage(\n        PKIX_PL_LdapResponse
      *response,\n        LDAPMessage **pMessage,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:646,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:647,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - response
    - pCapacity
    - plContext
    argTypes:
    - PKIX_PL_LdapResponse*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 640
    functionDepth: 1
    functionLinenumber: 640
    functionLinenumberEnd: 652
    functionName: pkix_pl_LdapResponse_GetCapacity
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_LdapResponse_GetCapacity(\n        PKIX_PL_LdapResponse
      *response,\n        PKIX_UInt32 *pCapacity,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:682,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:683,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - response
    - pMessageType
    - plContext
    argTypes:
    - PKIX_PL_LdapResponse*
    - LDAPMessageType*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 676
    functionDepth: 1
    functionLinenumber: 676
    functionLinenumberEnd: 688
    functionName: pkix_pl_LdapResponse_GetMessageType
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_LdapResponse_GetMessageType(\n        PKIX_PL_LdapResponse
      *response,\n        LDAPMessageType *pMessageType,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:722,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:723,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:728,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:737,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - response
    - pResultCode
    - plContext
    argTypes:
    - PKIX_PL_LdapResponse*
    - LDAPResultCode*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 713
    functionDepth: 1
    functionLinenumber: 713
    functionLinenumberEnd: 738
    functionName: pkix_pl_LdapResponse_GetResultCode
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c
    functionUses: 0
    functionsReached:
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_LdapResponse_GetResultCode(\n        PKIX_PL_LdapResponse
      *response,\n        LDAPResultCode *pResultCode,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:771,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:772,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:777,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c:785,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - response
    - pAttributes
    - plContext
    argTypes:
    - PKIX_PL_LdapResponse*
    - LDAPSearchResponseAttr***
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 763
    functionDepth: 1
    functionLinenumber: 763
    functionLinenumberEnd: 786
    functionName: pkix_pl_LdapResponse_GetAttributes
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c
    functionUses: 0
    functionsReached:
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_LdapResponse_GetAttributes(\n        PKIX_PL_LdapResponse
      *response,\n        LDAPSearchResponseAttr ***pAttributes,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_Now
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:64,1
    - Dst: printf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:67,1
    - Dst: printf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 71
    functionName: pkix_pl_socket_timestamp
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c
    functionUses: 0
    functionsReached:
    - printf
    - PR_Now
    linkageType: ''
    returnType: void
    signature: void pkix_pl_socket_timestamp()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - byteVal
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 104
    functionName: pkix_pl_socket_hexDigit
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void pkix_pl_socket_hexDigit(char byteVal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pkix_pl_socket_hexDigit
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:123,1
    - Dst: pkix_pl_socket_hexDigit
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:124,1
    - Dst: printf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - addr
    argTypes:
    - PKIX_UInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 126
    functionName: pkix_pl_socket_linePrefix
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c
    functionUses: 0
    functionsReached:
    - pkix_pl_socket_hexDigit
    - printf
    linkageType: ''
    returnType: void
    signature: void pkix_pl_socket_linePrefix(PKIX_UInt32 addr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pkix_pl_socket_linePrefix
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:148,1
    - Dst: printf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:150,1
    - Dst: pkix_pl_socket_hexDigit
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:151,1
    - Dst: printf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:153,1
    - Dst: printf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:156,1
    - Dst: printf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:159,1
    - Dst: printf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:161,1
    - Dst: printf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:164,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 165
    functionName: pkix_pl_socket_traceLine
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c
    functionUses: 0
    functionsReached:
    - pkix_pl_socket_hexDigit
    - printf
    - pkix_pl_socket_linePrefix
    linkageType: ''
    returnType: void
    signature: void pkix_pl_socket_traceLine(char *ptr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pkix_pl_socket_linePrefix
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:192,1
    - Dst: printf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:195,1
    - Dst: pkix_pl_socket_hexDigit
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:196,1
    - Dst: printf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:198,1
    - Dst: printf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:202,1
    - Dst: printf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:204,1
    - Dst: printf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:207,1
    - Dst: printf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:210,1
    - Dst: printf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:212,1
    - Dst: printf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:215,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - ptr
    - nBytes
    argTypes:
    - char*
    - PKIX_UInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 189
    functionDepth: 2
    functionLinenumber: 189
    functionLinenumberEnd: 216
    functionName: pkix_pl_socket_tracePartialLine
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c
    functionUses: 0
    functionsReached:
    - pkix_pl_socket_hexDigit
    - printf
    - pkix_pl_socket_linePrefix
    linkageType: ''
    returnType: void
    signature: void pkix_pl_socket_tracePartialLine(char *ptr, PKIX_UInt32 nBytes)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pkix_pl_socket_timestamp
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:246,1
    - Dst: pkix_pl_socket_linePrefix
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:251,1
    - Dst: printf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:252,1
    - Dst: pkix_pl_socket_traceLine
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:255,1
    - Dst: pkix_pl_socket_tracePartialLine
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:259,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - buf
    - nBytes
    argTypes:
    - void*
    - PKIX_UInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 239
    functionDepth: 3
    functionLinenumber: 239
    functionLinenumberEnd: 262
    functionName: pkix_pl_socket_tracebuff
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c
    functionUses: 0
    functionsReached:
    - pkix_pl_socket_tracePartialLine
    - printf
    - pkix_pl_socket_traceLine
    - pkix_pl_socket_timestamp
    - pkix_pl_socket_linePrefix
    linkageType: ''
    returnType: void
    signature: void pkix_pl_socket_tracebuff(void *buf, PKIX_UInt32 nBytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:292,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:293,1
    - Dst: PKIX_PL_NSSCALLRV
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:298,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:302,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - fileDesc
    - plContext
    argTypes:
    - PRFileDesc*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 307
    functionName: pkix_pl_Socket_SetNonBlocking
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c
    functionUses: 0
    functionsReached:
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_PL_NSSCALLRV
    - PKIX_ERROR
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_Socket_SetNonBlocking(\n        PRFileDesc *fileDesc,\n
      \       void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:339,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:340,1
    - Dst: PKIX_PL_NSSCALLRV
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:342,1
    - Dst: PR_GetError
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:345,1
    - Dst: printf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:346,1
    - Dst: PR_ErrorToString
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:348,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:350,1
    - Dst: printf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:354,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:360,1
    - Dst: pkix_pl_Socket_SetNonBlocking
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:360,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:366,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - socket
    - plContext
    argTypes:
    - PKIX_PL_Socket*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 329
    functionDepth: 2
    functionLinenumber: 329
    functionLinenumberEnd: 367
    functionName: pkix_pl_Socket_CreateClient
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - printf
    - pkix_pl_Socket_SetNonBlocking
    - PKIX_ENTER
    - PKIX_PL_NSSCALLRV
    - PR_GetError
    - PR_ErrorToString
    - PKIX_ERROR
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_Socket_CreateClient(\n        PKIX_PL_Socket
      *socket,\n        void *plContext)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:404,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:405,1
    - Dst: PKIX_PL_NSSCALLRV
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:407,1
    - Dst: PR_GetError
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:410,1
    - Dst: printf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:411,1
    - Dst: PR_ErrorToString
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:413,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:415,1
    - Dst: printf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:421,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:425,1
    - Dst: pkix_pl_Socket_SetNonBlocking
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:425,1
    - Dst: PKIX_PL_NSSCALLRV
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:432,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:436,1
    - Dst: PKIX_PL_NSSCALLRV
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:439,1
    - Dst: PR_GetError
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:443,1
    - Dst: printf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:444,1
    - Dst: PR_ErrorToString
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:446,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:448,1
    - Dst: printf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:452,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:459,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 2
    argNames:
    - socket
    - plContext
    argTypes:
    - PKIX_PL_Socket*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 392
    functionDepth: 2
    functionLinenumber: 392
    functionLinenumberEnd: 460
    functionName: pkix_pl_Socket_CreateServer
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - printf
    - pkix_pl_Socket_SetNonBlocking
    - PKIX_ENTER
    - PKIX_PL_NSSCALLRV
    - PR_GetError
    - PR_ErrorToString
    - PKIX_ERROR
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_Socket_CreateServer(\n        PKIX_PL_Socket
      *socket,\n        void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:491,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:492,1
    - Dst: PKIX_PL_NSSCALLRV
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:494,1
    - Dst: PR_GetError
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:498,1
    - Dst: printf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:505,1
    - Dst: PR_ErrorToString
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:507,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:509,1
    - Dst: printf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:514,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:522,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - socket
    - pStatus
    - plContext
    argTypes:
    - PKIX_PL_Socket*
    - PRErrorCode*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 482
    functionDepth: 1
    functionLinenumber: 482
    functionLinenumberEnd: 523
    functionName: pkix_pl_Socket_Connect
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c
    functionUses: 0
    functionsReached:
    - PKIX_RETURN
    - printf
    - PKIX_PL_NSSCALLRV
    - PKIX_ENTER
    - PR_GetError
    - PR_ErrorToString
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_Socket_Connect(\n        PKIX_PL_Socket *socket,\n
      \       PRErrorCode *pStatus,\n        void *plContext)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:557,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:558,1
    - Dst: PKIX_PL_NSSCALLRV
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:563,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:565,1
    - Dst: PKIX_PL_NSSCALLRV
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:573,1
    - Dst: PR_GetError
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:587,1
    - Dst: printf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:593,1
    - Dst: PR_ErrorToString
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:595,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:597,1
    - Dst: printf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:602,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:610,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 3
    argNames:
    - socket
    - pStatus
    - plContext
    argTypes:
    - PKIX_PL_Socket*
    - PRErrorCode*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 546
    functionDepth: 1
    functionLinenumber: 546
    functionLinenumberEnd: 611
    functionName: pkix_pl_Socket_ConnectContinue
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c
    functionUses: 0
    functionsReached:
    - PKIX_RETURN
    - printf
    - PKIX_PL_NSSCALLRV
    - PKIX_ENTER
    - PR_GetError
    - PR_ErrorToString
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_Socket_ConnectContinue(\n        PKIX_PL_Socket
      *socket,\n        PRErrorCode *pStatus,\n        void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:624,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:625,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:627,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:627,1
    - Dst: PR_Close
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:635,1
    - Dst: PR_Close
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:639,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:645,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 617
    functionDepth: 3
    functionLinenumber: 617
    functionLinenumberEnd: 646
    functionName: pkix_pl_Socket_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PR_Close
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_Socket_Destroy(\n        PKIX_PL_Object *object,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:660,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:661,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:663,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:663,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:675,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - object
    - pHashcode
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 652
    functionDepth: 3
    functionLinenumber: 652
    functionLinenumberEnd: 676
    functionName: pkix_pl_Socket_Hashcode
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c
    functionUses: 0
    functionsReached:
    - PKIX_RETURN
    - PKIX_CHECK
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_Socket_Hashcode(\n        PKIX_PL_Object *object,\n
      \       PKIX_UInt32 *pHashcode,\n        void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:692,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:693,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:697,1
    - Dst: pkix_CheckTypes
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:697,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:728,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 4
    argNames:
    - firstObject
    - secondObject
    - pResult
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    - PKIX_Int32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 682
    functionDepth: 2
    functionLinenumber: 682
    functionLinenumberEnd: 729
    functionName: pkix_pl_Socket_Equals
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c
    functionUses: 0
    functionsReached:
    - PKIX_RETURN
    - PKIX_CHECK
    - PKIX_ENTER
    - pkix_CheckTypes
    - PKIX_NULLCHECK_THREE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_Socket_Equals(\n        PKIX_PL_Object *firstObject,\n
      \       PKIX_PL_Object *secondObject,\n        PKIX_Int32 *pResult,\n        void
      *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:751,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:768,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:777,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 745
    functionDepth: 1
    functionLinenumber: 745
    functionLinenumberEnd: 778
    functionName: pkix_pl_Socket_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c
    functionUses: 1
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    - PR_GetEnvSecure
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      pkix_pl_Socket_RegisterSelf(void *plContext)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:813,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:814,1
    - Dst: PKIX_PL_NSSCALLRV
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:816,1
    - Dst: PR_GetError
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:821,1
    - Dst: printf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:822,1
    - Dst: PR_ErrorToString
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:824,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:826,1
    - Dst: printf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:830,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:836,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - socket
    - backlog
    - plContext
    argTypes:
    - PKIX_PL_Socket*
    - PKIX_UInt32
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 802
    functionDepth: 1
    functionLinenumber: 802
    functionLinenumberEnd: 837
    functionName: pkix_pl_Socket_Listen
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c
    functionUses: 0
    functionsReached:
    - PKIX_RETURN
    - printf
    - PKIX_PL_NSSCALLRV
    - PKIX_ENTER
    - PR_GetError
    - PR_ErrorToString
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_Socket_Listen(\n        PKIX_PL_Socket *socket,\n
      \       PKIX_UInt32 backlog,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:867,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:868,1
    - Dst: PKIX_PL_NSSCALLRV
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:873,1
    - Dst: PR_GetError
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:878,1
    - Dst: printf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:879,1
    - Dst: PR_ErrorToString
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:881,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:883,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:889,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - socket
    - plContext
    argTypes:
    - PKIX_PL_Socket*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 856
    functionDepth: 1
    functionLinenumber: 856
    functionLinenumberEnd: 890
    functionName: pkix_pl_Socket_Shutdown
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c
    functionUses: 0
    functionsReached:
    - PKIX_RETURN
    - printf
    - PKIX_ENTER
    - PKIX_PL_NSSCALLRV
    - PR_GetError
    - PR_ErrorToString
    - PKIX_ERROR
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_Socket_Shutdown(\n        PKIX_PL_Socket *socket,\n
      \       void *plContext)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:934,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:935,1
    - Dst: PKIX_PL_NSSCALLRV
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:939,1
    - Dst: pkix_pl_socket_tracebuff
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:949,1
    - Dst: PR_GetError
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:952,1
    - Dst: printf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:955,1
    - Dst: PR_ErrorToString
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:957,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:959,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:975,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 5
    argNames:
    - sendSock
    - buf
    - bytesToWrite
    - pBytesWritten
    - plContext
    argTypes:
    - PKIX_PL_Socket*
    - void*
    - PKIX_UInt32
    - PKIX_Int32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 922
    functionDepth: 4
    functionLinenumber: 922
    functionLinenumberEnd: 976
    functionName: pkix_pl_Socket_Send
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c
    functionUses: 0
    functionsReached:
    - PKIX_RETURN
    - pkix_pl_socket_tracebuff
    - printf
    - PKIX_PL_NSSCALLRV
    - PKIX_ENTER
    - PR_GetError
    - PR_ErrorToString
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_Socket_Send(\n        PKIX_PL_Socket *sendSock,\n
      \       void *buf,\n        PKIX_UInt32 bytesToWrite,\n        PKIX_Int32 *pBytesWritten,\n
      \       void *plContext)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1022,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1023,1
    - Dst: PKIX_PL_NSSCALLRV
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1027,1
    - Dst: pkix_pl_socket_tracebuff
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1037,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1040,1
    - Dst: PR_GetError
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1042,1
    - Dst: printf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1045,1
    - Dst: PR_ErrorToString
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1047,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1049,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1065,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 5
    argNames:
    - rcvSock
    - buf
    - capacity
    - pBytesRead
    - plContext
    argTypes:
    - PKIX_PL_Socket*
    - void*
    - PKIX_UInt32
    - PKIX_Int32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1010
    functionDepth: 4
    functionLinenumber: 1010
    functionLinenumberEnd: 1066
    functionName: pkix_pl_Socket_Recv
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c
    functionUses: 0
    functionsReached:
    - PKIX_RETURN
    - pkix_pl_socket_tracebuff
    - printf
    - PKIX_PL_NSSCALLRV
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PR_GetError
    - PR_ErrorToString
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_Socket_Recv(\n        PKIX_PL_Socket *rcvSock,\n
      \       void *buf,\n        PKIX_UInt32 capacity,\n        PKIX_Int32 *pBytesRead,\n
      \       void *plContext)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1109,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1110,1
    - Dst: PKIX_PL_NSSCALLRV
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1128,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1131,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1134,1
    - Dst: pkix_pl_Socket_Send
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1134,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1149,1
    - Dst: pkix_pl_Socket_Recv
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1149,1
    - Dst: PR_GetError
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1163,1
    - Dst: printf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1166,1
    - Dst: PR_ErrorToString
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1168,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1170,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1182,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 50
    argCount: 4
    argNames:
    - sock
    - pBytesWritten
    - pBytesRead
    - plContext
    argTypes:
    - PKIX_PL_Socket*
    - PKIX_Int32*
    - PKIX_Int32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1183
      start: 1096
    functionDepth: 5
    functionLinenumber: 1096
    functionLinenumberEnd: 1183
    functionName: pkix_pl_Socket_Poll
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_pl_Socket_Recv
    - printf
    - PKIX_ENTER
    - PKIX_PL_NSSCALLRV
    - pkix_pl_Socket_Send
    - PR_GetError
    - PR_ErrorToString
    - PKIX_ERROR
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_Socket_Poll(\n        PKIX_PL_Socket *sock,\n
      \       PKIX_Int32 *pBytesWritten,\n        PKIX_Int32 *pBytesRead,\n        void
      *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1223,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1224,1
    - Dst: PKIX_PL_NSSCALLRV
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1226,1
    - Dst: PR_GetError
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1230,1
    - Dst: printf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1233,1
    - Dst: PR_ErrorToString
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1235,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1237,1
    - Dst: printf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1246,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1249,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1249,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1272,1
    - Dst: pkix_pl_Socket_SetNonBlocking
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1272,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1281,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 37
    argCount: 3
    argNames:
    - serverSocket
    - pRendezvousSocket
    - plContext
    argTypes:
    - PKIX_PL_Socket*
    - PKIX_PL_Socket**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1282
      start: 1212
    functionDepth: 4
    functionLinenumber: 1212
    functionLinenumberEnd: 1282
    functionName: pkix_pl_Socket_Accept
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - printf
    - PKIX_PL_Object_Alloc
    - pkix_pl_Socket_SetNonBlocking
    - PKIX_PL_NSSCALLRV
    - PKIX_ENTER
    - PR_GetError
    - PR_ErrorToString
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_Socket_Accept(\n        PKIX_PL_Socket *serverSocket,\n
      \       PKIX_PL_Socket **pRendezvousSocket,\n        void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1327,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1328,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1330,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1330,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1353,1
    - Dst: pkix_pl_Socket_CreateServer
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1353,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1358,1
    - Dst: pkix_pl_Socket_CreateClient
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1358,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1360,1
    - Dst: pkix_pl_Socket_Connect
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1360,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1368,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1371,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 31
    argCount: 6
    argNames:
    - isServer
    - timeout
    - netAddr
    - status
    - pSocket
    - plContext
    argTypes:
    - PKIX_Boolean
    - PRIntervalTime
    - PRNetAddr*
    - PRErrorCode*
    - PKIX_PL_Socket**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1372
      start: 1316
    functionDepth: 4
    functionLinenumber: 1316
    functionLinenumberEnd: 1372
    functionName: pkix_pl_Socket_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c
    functionUses: 1
    functionsReached:
    - pkix_pl_Socket_CreateServer
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_pl_Socket_CreateClient
    - pkix_pl_Socket_Connect
    - PKIX_PL_Object_Alloc
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_Socket_Create(\n        PKIX_Boolean isServer,\n
      \       PRIntervalTime timeout,\n        PRNetAddr *netAddr,\n        PRErrorCode
      *status,\n        PKIX_PL_Socket **pSocket,\n        void *plContext)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1431,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1432,1
    - Dst: PL_strdup
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1434,1
    - Dst: strchr
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1436,1
    - Dst: atoi
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1440,1
    - Dst: PR_GetHostByName
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1445,1
    - Dst: strchr
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1452,1
    - Dst: PR_GetHostByName
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1456,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1460,1
    - Dst: PR_htons
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1466,1
    - Dst: PR_htonl
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1470,1
    - Dst: PR_EnumerateHostEnt
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1474,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1476,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1480,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1480,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1503,1
    - Dst: pkix_pl_Socket_CreateServer
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1503,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1507,1
    - Dst: pkix_pl_Socket_CreateClient
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1507,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1509,1
    - Dst: pkix_pl_Socket_Connect
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1509,1
    - Dst: PL_strfree
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1516,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1519,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1522,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 60
    argCount: 6
    argNames:
    - isServer
    - timeout
    - serverName
    - pStatus
    - pSocket
    - plContext
    argTypes:
    - PKIX_Boolean
    - PRIntervalTime
    - char*
    - PRErrorCode*
    - PKIX_PL_Socket**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1523
      start: 1412
    functionDepth: 4
    functionLinenumber: 1412
    functionLinenumberEnd: 1523
    functionName: pkix_pl_Socket_CreateByName
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c
    functionUses: 2
    functionsReached:
    - pkix_pl_Socket_CreateServer
    - PKIX_CHECK
    - strchr
    - PKIX_RETURN
    - PR_GetHostByName
    - PR_EnumerateHostEnt
    - atoi
    - pkix_pl_Socket_CreateClient
    - PR_htonl
    - PKIX_PL_Object_Alloc
    - PL_strdup
    - PKIX_ENTER
    - pkix_pl_Socket_Connect
    - PL_strfree
    - PKIX_DECREF
    - PR_htons
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_Socket_CreateByName(\n        PKIX_Boolean isServer,\n
      \       PRIntervalTime timeout,\n        char *serverName,\n        PRErrorCode
      *pStatus,\n        PKIX_PL_Socket **pSocket,\n        void *plContext)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1582,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1583,1
    - Dst: PR_GetHostByName
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1586,1
    - Dst: strchr
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1593,1
    - Dst: PR_GetHostByName
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1597,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1600,1
    - Dst: PR_htons
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1606,1
    - Dst: PR_htonl
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1610,1
    - Dst: PR_EnumerateHostEnt
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1614,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1616,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1620,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1620,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1643,1
    - Dst: pkix_pl_Socket_CreateServer
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1643,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1647,1
    - Dst: pkix_pl_Socket_CreateClient
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1647,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1649,1
    - Dst: pkix_pl_Socket_Connect
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1649,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1657,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1660,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 51
    argCount: 7
    argNames:
    - isServer
    - timeout
    - hostname
    - portnum
    - pStatus
    - pSocket
    - plContext
    argTypes:
    - PKIX_Boolean
    - PRIntervalTime
    - char*
    - PRUint16
    - PRErrorCode*
    - PKIX_PL_Socket**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1661
      start: 1564
    functionDepth: 4
    functionLinenumber: 1564
    functionLinenumberEnd: 1661
    functionName: pkix_pl_Socket_CreateByHostAndPort
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c
    functionUses: 0
    functionsReached:
    - pkix_pl_Socket_CreateServer
    - PKIX_CHECK
    - strchr
    - PKIX_RETURN
    - PR_GetHostByName
    - PR_EnumerateHostEnt
    - pkix_pl_Socket_CreateClient
    - PR_htonl
    - PKIX_PL_Object_Alloc
    - pkix_pl_Socket_Connect
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_DECREF
    - PR_htons
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_Socket_CreateByHostAndPort(\n        PKIX_Boolean
      isServer,\n        PRIntervalTime timeout,\n        char *hostname,\n        PRUint16
      portnum,\n        PRErrorCode *pStatus,\n        PKIX_PL_Socket **pSocket,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1672,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1673,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - socket
    - pCallbackList
    - plContext
    argTypes:
    - PKIX_PL_Socket*
    - PKIX_PL_Socket_Callback**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1678
      start: 1666
    functionDepth: 1
    functionLinenumber: 1666
    functionLinenumberEnd: 1678
    functionName: pkix_pl_Socket_GetCallbackList
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c
    functionUses: 2
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_Socket_GetCallbackList(\n        PKIX_PL_Socket
      *socket,\n        PKIX_PL_Socket_Callback **pCallbackList,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1689,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1690,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c:1694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - socket
    - pDesc
    - plContext
    argTypes:
    - PKIX_PL_Socket*
    - PRFileDesc**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1695
      start: 1683
    functionDepth: 1
    functionLinenumber: 1683
    functionLinenumberEnd: 1695
    functionName: pkix_pl_Socket_GetPRFileDesc
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_Socket_GetPRFileDesc(\n        PKIX_PL_Socket
      *socket,\n        PRFileDesc **pDesc,\n        void *plContext)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:55,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:56,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:58,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:60,1
    - Dst: SEC_ASN1DecodeItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:63,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:71,1
    - Dst: pkix_pl_Cert_CreateToList
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:72,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:79,1
    - Dst: pkix_pl_Cert_CreateToList
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:80,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:87,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:90,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - derCCPItem
    - certList
    - plContext
    argTypes:
    - SECItem*
    - PKIX_List*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 44
    functionDepth: 4
    functionLinenumber: 44
    functionLinenumberEnd: 91
    functionName: pkix_pl_LdapCertStore_DecodeCrossCertPair
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c
    functionUses: 0
    functionsReached:
    - pkix_pl_Cert_CreateToList
    - PORT_NewArena
    - PKIX_CHECK
    - PKIX_RETURN
    - PORT_FreeArena
    - SEC_ASN1DecodeItem
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_LdapCertStore_DecodeCrossCertPair(\n        SECItem
      *derCCPItem,\n        PKIX_List *certList,\n        void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:136,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:137,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:139,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:139,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:143,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:143,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:148,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:148,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:155,1
    - Dst: pkix_pl_LdapResponse_GetMessage
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:155,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:166,1
    - Dst: pkix_pl_LdapRequest_AttrTypeToBit
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:166,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:176,1
    - Dst: pkix_pl_Cert_CreateToList
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:176,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:187,1
    - Dst: pkix_pl_LdapCertStore_DecodeCrossCertPair
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:187,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:195,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:202,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:205,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:207,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 42
    argCount: 3
    argNames:
    - responseList
    - pCerts
    - plContext
    argTypes:
    - PKIX_List*
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 116
    functionDepth: 5
    functionLinenumber: 116
    functionLinenumberEnd: 208
    functionName: pkix_pl_LdapCertStore_BuildCertList
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c
    functionUses: 1
    functionsReached:
    - pkix_pl_Cert_CreateToList
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_Create
    - PKIX_List_GetLength
    - pkix_pl_LdapResponse_GetMessage
    - pkix_pl_LdapRequest_AttrTypeToBit
    - PKIX_ENTER
    - PKIX_DECREF
    - pkix_pl_LdapCertStore_DecodeCrossCertPair
    - PKIX_NULLCHECK_TWO
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_LdapCertStore_BuildCertList(\n        PKIX_List
      *responseList,\n        PKIX_List **pCerts,\n        void *plContext)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:255,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:256,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:258,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:258,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:262,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:262,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:267,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:267,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:274,1
    - Dst: pkix_pl_LdapResponse_GetMessage
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:274,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:285,1
    - Dst: pkix_pl_LdapRequest_AttrTypeToBit
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:285,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:295,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:297,1
    - Dst: CERT_DecodeDERCrlWithFlags
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:302,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:307,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:311,1
    - Dst: pkix_pl_CRL_CreateWithSignedCRL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:312,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:319,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:319,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:322,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:330,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:337,1
    - Dst: SEC_DestroyCrl
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:340,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:342,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:343,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:344,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:346,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 54
    argCount: 3
    argNames:
    - responseList
    - pCrls
    - plContext
    argTypes:
    - PKIX_List*
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 233
    functionDepth: 3
    functionLinenumber: 233
    functionLinenumberEnd: 347
    functionName: pkix_pl_LdapCertStore_BuildCrlList
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c
    functionUses: 0
    functionsReached:
    - SECITEM_DupItem
    - PKIX_CHECK
    - CERT_DecodeDERCrlWithFlags
    - PKIX_List_Create
    - PKIX_RETURN
    - pkix_pl_CRL_CreateWithSignedCRL
    - PKIX_List_GetLength
    - pkix_pl_LdapResponse_GetMessage
    - pkix_pl_LdapRequest_AttrTypeToBit
    - PKIX_List_AppendItem
    - PKIX_ENTER
    - PKIX_DECREF
    - SEC_DestroyCrl
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    - SECITEM_FreeItem
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_LdapCertStore_BuildCrlList(\n        PKIX_List
      *responseList,\n        PKIX_List **pCrls,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:377,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:378,1
    - Dst: PORT_Free
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:386,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:391,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - nameComponents
    - plContext
    argTypes:
    - LDAPNameComponent**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 392
    functionName: pkix_pl_LdapCertStore_DestroyAVAList
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - PKIX_ENTER
    - PKIX_RETURN
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_LdapCertStore_DestroyAVAList(\n        LDAPNameComponent
      **nameComponents,\n        void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:440,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:441,1
    - Dst: PKIX_PL_NSSCALLRV
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:447,1
    - Dst: PKIX_PL_NSSCALLRV
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:452,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:458,1
    - Dst: pkix_pl_X500Name_GetCommonName
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:458,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:476,1
    - Dst: pkix_pl_X500Name_GetOrgName
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:476,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:488,1
    - Dst: pkix_pl_X500Name_GetCountryName
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:488,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:506,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 36
    argCount: 4
    argNames:
    - arena
    - subjectName
    - pList
    - plContext
    argTypes:
    - PLArenaPool*
    - PKIX_PL_X500Name*
    - LDAPNameComponent***
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 427
    functionDepth: 2
    functionLinenumber: 427
    functionLinenumberEnd: 508
    functionName: pkix_pl_LdapCertStore_MakeNameAVAList
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_pl_X500Name_GetOrgName
    - PKIX_PL_NSSCALLRV
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - pkix_pl_X500Name_GetCountryName
    - pkix_pl_X500Name_GetCommonName
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_LdapCertStore_MakeNameAVAList(\n        PLArenaPool
      *arena,\n        PKIX_PL_X500Name *subjectName,\n        LDAPNameComponent ***pList,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:541,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:542,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:548,1
    - Dst: pkix_pl_LdapCertStore_BuildCertList
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:548,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - responses
    - pCerts
    - plContext
    argTypes:
    - PKIX_List*
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 533
    functionDepth: 6
    functionLinenumber: 533
    functionLinenumberEnd: 557
    functionName: pkix_pl_LdapCertStore_ConvertCertResponses
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c
    functionUses: 0
    functionsReached:
    - pkix_pl_LdapCertStore_BuildCertList
    - PKIX_RETURN
    - PKIX_CHECK
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_LdapCertStore_ConvertCertResponses(\n        PKIX_List
      *responses,\n        PKIX_List **pCerts,\n        void *plContext)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:585,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:586,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:600,1
    - Dst: PKIX_ERROR_FATAL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:602,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:605,1
    - Dst: PKIX_CertSelector_GetCommonCertSelectorParams
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:605,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:613,1
    - Dst: PKIX_ComCertSelParams_GetSubject
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:613,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:617,1
    - Dst: PKIX_ComCertSelParams_GetBasicConstraints
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:617,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:622,1
    - Dst: pkix_pl_LdapCertStore_MakeNameAVAList
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:622,1
    - Dst: PKIX_PL_NSSCALL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:636,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:639,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:639,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:642,1
    - Dst: PKIX_List_SetImmutable
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:642,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:652,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:670,1
    - Dst: PKIX_CertStore_GetCertStoreContext
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:670,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:674,1
    - Dst: PKIX_PL_LdapClient_InitiateRequest
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:674,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:682,1
    - Dst: pkix_pl_LdapCertStore_DestroyAVAList
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:682,1
    - Dst: PKIX_PL_NSSCALL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:687,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:701,1
    - Dst: PKIX_CertStore_GetCertStoreCacheFlag
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:701,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:705,1
    - Dst: pkix_pl_LdapCertStore_BuildCertList
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:705,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:709,1
    - Dst: pkix_CertSelector_Select
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:709,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:720,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:721,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:722,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:723,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:724,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:725,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:727,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 67
    argCount: 6
    argNames:
    - store
    - selector
    - verifyNode
    - pNBIOContext
    - pCertList
    - plContext
    argTypes:
    - PKIX_CertStore*
    - PKIX_CertSelector*
    - PKIX_VerifyNode*
    - void**
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 564
    functionDepth: 6
    functionLinenumber: 564
    functionLinenumberEnd: 728
    functionName: pkix_pl_LdapCertStore_GetCert
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c
    functionUses: 0
    functionsReached:
    - PKIX_RETURN
    - PKIX_List_Create
    - PKIX_CertSelector_GetCommonCertSelectorParams
    - PKIX_DECREF
    - PKIX_PL_NSSCALL
    - PKIX_ERROR
    - PORT_NewArena
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_ComCertSelParams_GetBasicConstraints
    - pkix_pl_LdapCertStore_DestroyAVAList
    - PKIX_ERROR_FATAL
    - pkix_CertSelector_Select
    - PKIX_PL_LdapClient_InitiateRequest
    - pkix_pl_LdapCertStore_MakeNameAVAList
    - PKIX_List_SetImmutable
    - pkix_pl_LdapCertStore_BuildCertList
    - PKIX_CHECK
    - PKIX_ComCertSelParams_GetSubject
    - PKIX_CertStore_GetCertStoreCacheFlag
    - PKIX_CertStore_GetCertStoreContext
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_LdapCertStore_GetCert(\n        PKIX_CertStore
      *store,\n        PKIX_CertSelector *selector,\n        PKIX_VerifyNode *verifyNode,\n
      \       void **pNBIOContext,\n        PKIX_List **pCertList,\n        void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:750,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:751,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:753,1
    - Dst: PKIX_CertStore_GetCertStoreContext
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:753,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:757,1
    - Dst: PKIX_PL_LdapClient_ResumeRequest
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:757,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:770,1
    - Dst: PKIX_CertStore_GetCertStoreCacheFlag
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:770,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:774,1
    - Dst: pkix_pl_LdapCertStore_BuildCertList
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:774,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:778,1
    - Dst: pkix_CertSelector_Select
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:778,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:788,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:789,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:790,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:792,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 6
    argNames:
    - store
    - selector
    - verifyNode
    - pNBIOContext
    - pCertList
    - plContext
    argTypes:
    - PKIX_CertStore*
    - PKIX_CertSelector*
    - PKIX_VerifyNode*
    - void**
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 734
    functionDepth: 6
    functionLinenumber: 734
    functionLinenumberEnd: 793
    functionName: pkix_pl_LdapCertStore_GetCertContinue
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c
    functionUses: 0
    functionsReached:
    - pkix_pl_LdapCertStore_BuildCertList
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_LdapClient_ResumeRequest
    - PKIX_CertStore_GetCertStoreCacheFlag
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_DECREF
    - pkix_CertSelector_Select
    - PKIX_CertStore_GetCertStoreContext
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_LdapCertStore_GetCertContinue(\n        PKIX_CertStore
      *store,\n        PKIX_CertSelector *selector,\n        PKIX_VerifyNode *verifyNode,\n
      \       void **pNBIOContext,\n        PKIX_List **pCertList,\n        void *plContext)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:821,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:822,1
    - Dst: PKIX_PL_NSSCALLRV
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:849,1
    - Dst: PKIX_ERROR_FATAL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:853,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:856,1
    - Dst: PKIX_CRLSelector_GetCommonCRLSelectorParams
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:856,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:860,1
    - Dst: PKIX_ComCRLSelParams_GetIssuerNames
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:860,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:872,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:872,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:882,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:882,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:889,1
    - Dst: pkix_pl_LdapCertStore_MakeNameAVAList
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:890,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:897,1
    - Dst: PKIX_PL_NSSCALL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:908,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:912,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:912,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:916,1
    - Dst: PKIX_List_SetImmutable
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:916,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:925,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:928,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:933,1
    - Dst: PKIX_CertStore_GetCertStoreContext
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:933,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:937,1
    - Dst: PKIX_PL_LdapClient_InitiateRequest
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:937,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:945,1
    - Dst: pkix_pl_LdapCertStore_DestroyAVAList
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:945,1
    - Dst: PKIX_PL_NSSCALL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:950,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:968,1
    - Dst: pkix_pl_LdapCertStore_BuildCrlList
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:968,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:972,1
    - Dst: pkix_CRLSelector_Select
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:972,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:987,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:990,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:991,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:992,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:993,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:994,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:995,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:996,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:998,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 68
    argCount: 5
    argNames:
    - store
    - selector
    - pNBIOContext
    - pCrlList
    - plContext
    argTypes:
    - PKIX_CertStore*
    - PKIX_CRLSelector*
    - void**
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 999
      start: 799
    functionDepth: 4
    functionLinenumber: 799
    functionLinenumberEnd: 999
    functionName: pkix_pl_LdapCertStore_GetCRL
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c
    functionUses: 0
    functionsReached:
    - PKIX_RETURN
    - PKIX_List_Create
    - PKIX_PL_NSSCALLRV
    - PKIX_DECREF
    - PKIX_PL_NSSCALL
    - PKIX_ERROR
    - PKIX_ComCRLSelParams_GetIssuerNames
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_List_GetLength
    - PKIX_CRLSelector_GetCommonCRLSelectorParams
    - pkix_pl_LdapCertStore_BuildCrlList
    - pkix_pl_LdapCertStore_DestroyAVAList
    - PKIX_ERROR_FATAL
    - PKIX_PL_LdapClient_InitiateRequest
    - pkix_pl_LdapCertStore_MakeNameAVAList
    - pkix_CRLSelector_Select
    - PKIX_List_SetImmutable
    - PKIX_CHECK
    - PKIX_CertStore_GetCertStoreContext
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_LdapCertStore_GetCRL(\n        PKIX_CertStore
      *store,\n        PKIX_CRLSelector *selector,\n        void **pNBIOContext,\n
      \       PKIX_List **pCrlList,\n        void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:1020,1
    - Dst: PKIX_NULLCHECK_FOUR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:1021,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:1023,1
    - Dst: PKIX_CertStore_GetCertStoreContext
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:1023,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:1027,1
    - Dst: PKIX_PL_LdapClient_ResumeRequest
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:1027,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:1045,1
    - Dst: pkix_pl_LdapCertStore_BuildCrlList
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:1045,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:1049,1
    - Dst: pkix_CRLSelector_Select
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:1049,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:1053,1
    - Dst: PKIX_List_SetImmutable
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:1053,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:1065,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:1068,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:1069,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:1070,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:1071,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:1073,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 5
    argNames:
    - store
    - selector
    - pNBIOContext
    - pCrlList
    - plContext
    argTypes:
    - PKIX_CertStore*
    - PKIX_CRLSelector*
    - void**
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1074
      start: 1005
    functionDepth: 4
    functionLinenumber: 1005
    functionLinenumberEnd: 1074
    functionName: pkix_pl_LdapCertStore_GetCRLContinue
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c
    functionUses: 0
    functionsReached:
    - pkix_CRLSelector_Select
    - PKIX_List_SetImmutable
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_NULLCHECK_FOUR
    - PKIX_PL_LdapClient_ResumeRequest
    - PKIX_ENTER
    - PKIX_DECREF
    - pkix_pl_LdapCertStore_BuildCrlList
    - PKIX_CertStore_GetCertStoreContext
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_LdapCertStore_GetCRLContinue(\n        PKIX_CertStore
      *store,\n        PKIX_CRLSelector *selector,\n        void **pNBIOContext,\n
      \       PKIX_List **pCrlList,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:1090,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:1091,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:1093,1
    - Dst: PKIX_CertStore_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:1093,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c:1112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - client
    - pCertStore
    - plContext
    argTypes:
    - PKIX_PL_LdapClient*
    - PKIX_CertStore**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1113
      start: 1082
    functionDepth: 2
    functionLinenumber: 1082
    functionLinenumberEnd: 1113
    functionName: PKIX_PL_LdapCertStore_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapcertstore.c
    functionUses: 4
    functionsReached:
    - PKIX_RETURN
    - PKIX_CHECK
    - PKIX_ENTER
    - PKIX_CertStore_Create
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_LdapCertStore_Create(\n        PKIX_PL_LdapClient
      *client,\n        PKIX_CertStore **pCertStore,\n        void *plContext)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:105,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:108,1
    - Dst: PL_strnstr
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:125,1
    - Dst: PL_strnstr
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:129,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:145,1
    - Dst: PKIX_PL_Malloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:145,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:149,1
    - Dst: PL_strnstr
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:161,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:164,1
    - Dst: strchr
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:170,1
    - Dst: PORT_Strncasecmp
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:176,1
    - Dst: strchr
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:184,1
    - Dst: atoi
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:191,1
    - Dst: strchr
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:204,1
    - Dst: strstr
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:216,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:220,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:222,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:224,1
    - Dst: atoi
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:226,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:304,1
    - Dst: PKIX_PL_Malloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:304,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:309,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:314,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:314,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:320,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 155
    argCount: 4
    argNames:
    - client
    - bytesRead
    - pKeepGoing
    - plCtx
    argTypes:
    - PKIX_PL_HttpDefaultClient*
    - PKIX_UInt32
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 321
    functionName: pkix_pl_HttpDefaultClient_HdrCheckComplete
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c
    functionUses: 0
    functionsReached:
    - PORT_Strcasecmp
    - PORT_Memcpy
    - PKIX_CHECK
    - strchr
    - PORT_Strncasecmp
    - PKIX_RETURN
    - PKIX_PL_Free
    - atoi
    - PORT_Strdup
    - PORT_SetError
    - strstr
    - PKIX_ENTER
    - PKIX_PL_Malloc
    - PKIX_NULLCHECK_TWO
    - PL_strnstr
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_HttpDefaultClient_HdrCheckComplete(\n        PKIX_PL_HttpDefaultClient
      *client,\n        PKIX_UInt32 bytesRead,\n        PKIX_Boolean *pKeepGoing,\n
      \       void *plCtx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:362,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:363,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:366,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:366,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:394,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:396,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:420,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:423,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 44
    argCount: 4
    argNames:
    - host
    - portnum
    - pClient
    - plCtx
    argTypes:
    - char*
    - PRUint16
    - PKIX_PL_HttpDefaultClient**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 353
    functionDepth: 4
    functionLinenumber: 353
    functionLinenumberEnd: 424
    functionName: pkix_pl_HttpDefaultClient_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_Alloc
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_DECREF
    - PORT_Strdup
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_HttpDefaultClient_Create(\n        const char
      *host,\n        PRUint16 portnum,\n        PKIX_PL_HttpDefaultClient **pClient,\n
      \       void *plCtx)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:437,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:438,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:440,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:440,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:447,1
    - Dst: PORT_Free
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:451,1
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:455,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:459,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:463,1
    - Dst: PORT_Free
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:467,1
    - Dst: PORT_Free
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:471,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:474,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:478,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 2
    argNames:
    - object
    - plCtx
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 430
    functionDepth: 3
    functionLinenumber: 430
    functionLinenumberEnd: 479
    functionName: pkix_pl_HttpDefaultClient_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PORT_Free
    - PKIX_PL_Free
    - PR_smprintf_free
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_HttpDefaultClient_Destroy(\n        PKIX_PL_Object
      *object,\n        void *plCtx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:502,1
    - Dst: SEC_RegisterDefaultHttpClient
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:511,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - plCtx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 495
    functionDepth: 1
    functionLinenumber: 495
    functionLinenumberEnd: 514
    functionName: pkix_pl_HttpDefaultClient_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c
    functionUses: 1
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    - SEC_RegisterDefaultHttpClient
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      pkix_pl_HttpDefaultClient_RegisterSelf(void *plCtx)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:552,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:555,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:559,1
    - Dst: PKIX_PL_Socket_Callback*::connectcontinueCallback
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:559,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:567,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:573,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - client
    - pKeepGoing
    - plCtx
    argTypes:
    - PKIX_PL_HttpDefaultClient*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 542
    functionDepth: 1
    functionLinenumber: 542
    functionLinenumberEnd: 574
    functionName: pkix_pl_HttpDefaultClient_ConnectContinue
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Socket_Callback*::connectcontinueCallback
    - PKIX_ENTER
    - PKIX_ERROR
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_HttpDefaultClient_ConnectContinue(\n        PKIX_PL_HttpDefaultClient
      *client,\n        PKIX_Boolean *pKeepGoing,\n        void *plCtx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:620,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:621,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:638,1
    - Dst: PKIX_PL_Socket_Callback*::sendCallback
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:638,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:668,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 4
    argNames:
    - client
    - pKeepGoing
    - pBytesTransferred
    - plCtx
    argTypes:
    - PKIX_PL_HttpDefaultClient*
    - PKIX_Boolean*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 608
    functionDepth: 1
    functionLinenumber: 608
    functionLinenumberEnd: 669
    functionName: pkix_pl_HttpDefaultClient_Send
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c
    functionUses: 0
    functionsReached:
    - PKIX_RETURN
    - PKIX_CHECK
    - PKIX_PL_Socket_Callback*::sendCallback
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_HttpDefaultClient_Send(\n        PKIX_PL_HttpDefaultClient
      *client,\n        PKIX_Boolean *pKeepGoing,\n        PKIX_UInt32 *pBytesTransferred,\n
      \       void *plCtx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:713,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:714,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:720,1
    - Dst: PKIX_PL_Socket_Callback*::pollCallback
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:720,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:737,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 4
    argNames:
    - client
    - pKeepGoing
    - pBytesTransferred
    - plCtx
    argTypes:
    - PKIX_PL_HttpDefaultClient*
    - PKIX_Boolean*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 703
    functionDepth: 1
    functionLinenumber: 703
    functionLinenumberEnd: 738
    functionName: pkix_pl_HttpDefaultClient_SendContinue
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c
    functionUses: 0
    functionsReached:
    - PKIX_PL_Socket_Callback*::pollCallback
    - PKIX_RETURN
    - PKIX_CHECK
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_HttpDefaultClient_SendContinue(\n        PKIX_PL_HttpDefaultClient
      *client,\n        PKIX_Boolean *pKeepGoing,\n        PKIX_UInt32 *pBytesTransferred,\n
      \       void *plCtx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:775,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:776,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:786,1
    - Dst: PKIX_PL_Realloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:786,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:797,1
    - Dst: PKIX_PL_Socket_Callback*::recvCallback
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:797,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:808,1
    - Dst: pkix_pl_HttpDefaultClient_HdrCheckComplete
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:809,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:819,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 3
    argNames:
    - client
    - pKeepGoing
    - plCtx
    argTypes:
    - PKIX_PL_HttpDefaultClient*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 765
    functionDepth: 3
    functionLinenumber: 765
    functionLinenumberEnd: 820
    functionName: pkix_pl_HttpDefaultClient_RecvHdr
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_pl_HttpDefaultClient_HdrCheckComplete
    - PKIX_ENTER
    - PKIX_PL_Socket_Callback*::recvCallback
    - PKIX_PL_Realloc
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_HttpDefaultClient_RecvHdr(\n        PKIX_PL_HttpDefaultClient
      *client,\n        PKIX_Boolean *pKeepGoing,\n        void *plCtx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:856,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:859,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:863,1
    - Dst: PKIX_PL_Socket_Callback*::pollCallback
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:863,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:870,1
    - Dst: pkix_pl_HttpDefaultClient_HdrCheckComplete
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:870,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:881,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - client
    - pKeepGoing
    - plCtx
    argTypes:
    - PKIX_PL_HttpDefaultClient*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 847
    functionDepth: 3
    functionLinenumber: 847
    functionLinenumberEnd: 882
    functionName: pkix_pl_HttpDefaultClient_RecvHdrContinue
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c
    functionUses: 0
    functionsReached:
    - PKIX_PL_Socket_Callback*::pollCallback
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_pl_HttpDefaultClient_HdrCheckComplete
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_HttpDefaultClient_RecvHdrContinue(\n        PKIX_PL_HttpDefaultClient
      *client,\n        PKIX_Boolean *pKeepGoing,\n        void *plCtx)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:920,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:921,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:953,1
    - Dst: PKIX_PL_Realloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:954,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:966,1
    - Dst: PKIX_PL_Socket_Callback*::pollCallback
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:966,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:970,1
    - Dst: PKIX_PL_Socket_Callback*::recvCallback
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:970,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1009,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1015,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 58
    argCount: 3
    argNames:
    - client
    - pKeepGoing
    - plCtx
    argTypes:
    - PKIX_PL_HttpDefaultClient*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 910
    functionDepth: 2
    functionLinenumber: 910
    functionLinenumberEnd: 1016
    functionName: pkix_pl_HttpDefaultClient_RecvBody
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c
    functionUses: 0
    functionsReached:
    - PKIX_PL_Socket_Callback*::pollCallback
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_PL_Socket_Callback*::recvCallback
    - PKIX_DECREF
    - PKIX_PL_Realloc
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_HttpDefaultClient_RecvBody(\n        PKIX_PL_HttpDefaultClient
      *client,\n        PKIX_Boolean *pKeepGoing,\n        void *plCtx)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1047,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1048,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1053,1
    - Dst: pkix_pl_HttpDefaultClient_ConnectContinue
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1053,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1058,1
    - Dst: pkix_pl_HttpDefaultClient_Send
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1058,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1063,1
    - Dst: pkix_pl_HttpDefaultClient_SendContinue
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1063,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1068,1
    - Dst: pkix_pl_HttpDefaultClient_RecvHdr
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1068,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1073,1
    - Dst: pkix_pl_HttpDefaultClient_RecvHdrContinue
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1073,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1079,1
    - Dst: pkix_pl_HttpDefaultClient_RecvBody
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1079,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1089,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1095,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 2
    argNames:
    - client
    - plCtx
    argTypes:
    - PKIX_PL_HttpDefaultClient*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1096
      start: 1039
    functionDepth: 4
    functionLinenumber: 1039
    functionLinenumberEnd: 1096
    functionName: pkix_pl_HttpDefaultClient_Dispatch
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c
    functionUses: 0
    functionsReached:
    - pkix_pl_HttpDefaultClient_RecvHdr
    - pkix_pl_HttpDefaultClient_RecvBody
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_pl_HttpDefaultClient_Send
    - pkix_pl_HttpDefaultClient_RecvHdrContinue
    - PKIX_ENTER
    - pkix_pl_HttpDefaultClient_ConnectContinue
    - pkix_pl_HttpDefaultClient_SendContinue
    - PKIX_ERROR
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_HttpDefaultClient_Dispatch(\n        PKIX_PL_HttpDefaultClient
      *client,\n        void *plCtx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1113,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1115,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1117,1
    - Dst: pkix_pl_HttpDefaultClient_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1117,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - host
    - portnum
    - pSession
    - plCtx
    argTypes:
    - char*
    - PRUint16
    - SEC_HTTP_SERVER_SESSION*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1104
    functionDepth: 5
    functionLinenumber: 1104
    functionLinenumberEnd: 1127
    functionName: pkix_pl_HttpDefaultClient_CreateSession
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c
    functionUses: 0
    functionsReached:
    - PKIX_RETURN
    - PKIX_CHECK
    - pkix_pl_HttpDefaultClient_Create
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_HttpDefaultClient_CreateSession(\n        const
      char *host,\n        PRUint16 portnum,\n        SEC_HTTP_SERVER_SESSION *pSession,\n
      \       void *plCtx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1135,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1138,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1140,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1140,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - session
    - pPollDesc
    - plCtx
    argTypes:
    - SEC_HTTP_SERVER_SESSION
    - PRPollDesc**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1152
      start: 1129
    functionDepth: 3
    functionLinenumber: 1129
    functionLinenumberEnd: 1152
    functionName: pkix_pl_HttpDefaultClient_KeepAliveSession
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c
    functionUses: 0
    functionsReached:
    - PKIX_RETURN
    - PKIX_CHECK
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_HttpDefaultClient_KeepAliveSession(\n        SEC_HTTP_SERVER_SESSION
      session,\n        PRPollDesc **pPollDesc,\n        void *plCtx)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1170,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1172,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1174,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1174,1
    - Dst: PORT_Strncasecmp
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1183,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1184,1
    - Dst: PORT_Strncasecmp
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1187,1
    - Dst: PORT_Strncasecmp
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1189,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1193,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1200,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1202,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1209,1
    - Dst: pkix_HttpCertStore_FindSocketConnection
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1209,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1218,1
    - Dst: pkix_HttpCertStore_FindSocketConnection
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1218,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1230,1
    - Dst: pkix_pl_Socket_GetCallbackList
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1230,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1236,1
    - Dst: pkix_pl_Socket_GetPRFileDesc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1236,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1252,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1257,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 41
    argCount: 7
    argNames:
    - session
    - http_protocol_variant
    - path_and_query_string
    - http_request_method
    - timeout
    - pRequest
    - plCtx
    argTypes:
    - SEC_HTTP_SERVER_SESSION
    - char*
    - char*
    - char*
    - PRIntervalTime
    - SEC_HTTP_REQUEST_SESSION*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1259
      start: 1154
    functionDepth: 3
    functionLinenumber: 1154
    functionLinenumberEnd: 1259
    functionName: pkix_pl_HttpDefaultClient_RequestCreate
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c
    functionUses: 0
    functionsReached:
    - PKIX_INCREF
    - PORT_Strncasecmp
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_HttpCertStore_FindSocketConnection
    - PORT_Strdup
    - PKIX_ENTER
    - pkix_CheckType
    - pkix_pl_Socket_GetPRFileDesc
    - pkix_pl_Socket_GetCallbackList
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_HttpDefaultClient_RequestCreate(\n        SEC_HTTP_SERVER_SESSION
      session,\n        const char *http_protocol_variant, /* usually \"http\" */\n
      \       const char *path_and_query_string,\n        const char *http_request_method,
      \n        const PRIntervalTime timeout, \n        SEC_HTTP_REQUEST_SESSION *pRequest,\n
      \       void *plCtx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1271,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1274,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1276,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1276,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 5
    argNames:
    - request
    - http_data
    - http_data_len
    - http_content_type
    - plCtx
    argTypes:
    - SEC_HTTP_REQUEST_SESSION
    - char*
    - PRUint32
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1298
      start: 1261
    functionDepth: 3
    functionLinenumber: 1261
    functionLinenumberEnd: 1298
    functionName: pkix_pl_HttpDefaultClient_SetPostData
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c
    functionUses: 0
    functionsReached:
    - PKIX_RETURN
    - PKIX_CHECK
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_HttpDefaultClient_SetPostData(\n        SEC_HTTP_REQUEST_SESSION
      request,\n        const char *http_data, \n        const PRUint32 http_data_len,\n
      \       const char *http_content_type,\n        void *plCtx)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1318,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1322,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1324,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1324,1
    - Dst: PKIX_ERROR_FATAL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1333,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1345,1
    - Dst: PR_snprintf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1362,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1367,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1375,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1380,1
    - Dst: PKIX_PL_Malloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1380,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1387,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1390,1
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1395,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1399,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1404,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1410,1
    - Dst: pkix_pl_HttpDefaultClient_Dispatch
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1410,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1461,1
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1471,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1474,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 92
    argCount: 9
    argNames:
    - request
    - http_response_code
    - http_response_content_type
    - http_response_headers
    - http_response_data
    - http_response_data_len
    - pPollDesc
    - pSECReturn
    - plCtx
    argTypes:
    - SEC_HTTP_REQUEST_SESSION
    - PRUint16*
    - char**
    - char**
    - char**
    - PRUint32*
    - PRPollDesc**
    - SECStatus*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1476
      start: 1300
    functionDepth: 5
    functionLinenumber: 1300
    functionLinenumberEnd: 1476
    functionName: pkix_pl_HttpDefaultClient_TrySendAndReceive
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c
    functionUses: 0
    functionsReached:
    - PR_snprintf
    - PORT_Memcpy
    - PKIX_CHECK
    - PKIX_RETURN
    - PORT_Strlen
    - PR_smprintf_free
    - PKIX_ENTER
    - pkix_CheckType
    - PR_smprintf
    - pkix_pl_HttpDefaultClient_Dispatch
    - PKIX_ERROR_FATAL
    - PKIX_PL_Malloc
    - PKIX_ERROR
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_HttpDefaultClient_TrySendAndReceive(\n        SEC_HTTP_REQUEST_SESSION
      request,\n        PRUint16 *http_response_code, \n        const char **http_response_content_type,
      \n        const char **http_response_headers, \n        const char **http_response_data,
      \n        PRUint32 *http_response_data_len, \n        PRPollDesc **pPollDesc,\n
      \       SECStatus *pSECReturn,\n        void *plCtx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1483,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1484,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1486,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1486,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - request
    - plCtx
    argTypes:
    - SEC_HTTP_REQUEST_SESSION
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1498
      start: 1478
    functionDepth: 3
    functionLinenumber: 1478
    functionLinenumberEnd: 1498
    functionName: pkix_pl_HttpDefaultClient_Cancel
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c
    functionUses: 0
    functionsReached:
    - PKIX_RETURN
    - PKIX_CHECK
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_HttpDefaultClient_Cancel(\n        SEC_HTTP_REQUEST_SESSION
      request,\n        void *plCtx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pkix_pl_HttpDefaultClient_CreateSession
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1506,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1510,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - host
    - portnum
    - pSession
    argTypes:
    - char*
    - PRUint16
    - SEC_HTTP_SERVER_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1514
      start: 1500
    functionDepth: 6
    functionLinenumber: 1500
    functionLinenumberEnd: 1514
    functionName: pkix_pl_HttpDefaultClient_CreateSessionFcn
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c
    functionUses: 0
    functionsReached:
    - pkix_pl_HttpDefaultClient_CreateSession
    - PKIX_PL_Object_DecRef
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus pkix_pl_HttpDefaultClient_CreateSessionFcn(\n        const
      char *host,\n        PRUint16 portnum,\n        SEC_HTTP_SERVER_SESSION *pSession)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pkix_pl_HttpDefaultClient_KeepAliveSession
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1521,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1525,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - session
    - pPollDesc
    argTypes:
    - SEC_HTTP_SERVER_SESSION
    - PRPollDesc**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1529
      start: 1516
    functionDepth: 6
    functionLinenumber: 1516
    functionLinenumberEnd: 1529
    functionName: pkix_pl_HttpDefaultClient_KeepAliveSessionFcn
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c
    functionUses: 0
    functionsReached:
    - pkix_pl_HttpDefaultClient_KeepAliveSession
    - PKIX_PL_Object_DecRef
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus pkix_pl_HttpDefaultClient_KeepAliveSessionFcn(\n        SEC_HTTP_SERVER_SESSION
      session,\n        PRPollDesc **pPollDesc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1536,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1539,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - session
    argTypes:
    - SEC_HTTP_SERVER_SESSION
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1543
      start: 1531
    functionDepth: 6
    functionLinenumber: 1531
    functionLinenumberEnd: 1543
    functionName: pkix_pl_HttpDefaultClient_FreeSessionFcn
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c
    functionUses: 0
    functionsReached:
    - PKIX_PL_Object_DecRef
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus pkix_pl_HttpDefaultClient_FreeSessionFcn(\n        SEC_HTTP_SERVER_SESSION
      session)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pkix_pl_HttpDefaultClient_RequestCreate
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1554,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1564,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - session
    - http_protocol_variant
    - path_and_query_string
    - http_request_method
    - timeout
    - pRequest
    argTypes:
    - SEC_HTTP_SERVER_SESSION
    - char*
    - char*
    - char*
    - PRIntervalTime
    - SEC_HTTP_REQUEST_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1568
      start: 1545
    functionDepth: 6
    functionLinenumber: 1545
    functionLinenumberEnd: 1568
    functionName: pkix_pl_HttpDefaultClient_RequestCreateFcn
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c
    functionUses: 0
    functionsReached:
    - pkix_pl_HttpDefaultClient_RequestCreate
    - PKIX_PL_Object_DecRef
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus pkix_pl_HttpDefaultClient_RequestCreateFcn(\n        SEC_HTTP_SERVER_SESSION
      session,\n        const char *http_protocol_variant, /* usually \"http\" */\n
      \       const char *path_and_query_string,\n        const char *http_request_method,
      \n        const PRIntervalTime timeout, \n        SEC_HTTP_REQUEST_SESSION *pRequest)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pkix_pl_HttpDefaultClient_SetPostData
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1578,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1583,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - request
    - http_data
    - http_data_len
    - http_content_type
    argTypes:
    - SEC_HTTP_REQUEST_SESSION
    - char*
    - PRUint32
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1587
      start: 1570
    functionDepth: 6
    functionLinenumber: 1570
    functionLinenumberEnd: 1587
    functionName: pkix_pl_HttpDefaultClient_SetPostDataFcn
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c
    functionUses: 0
    functionsReached:
    - pkix_pl_HttpDefaultClient_SetPostData
    - PKIX_PL_Object_DecRef
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus pkix_pl_HttpDefaultClient_SetPostDataFcn(\n        SEC_HTTP_REQUEST_SESSION
      request,\n        const char *http_data, \n        const PRUint32 http_data_len,\n
      \       const char *http_content_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - request
    - http_header_name
    - http_header_value
    argTypes:
    - SEC_HTTP_REQUEST_SESSION
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1597
      start: 1589
    functionDepth: 0
    functionLinenumber: 1589
    functionLinenumberEnd: 1597
    functionName: pkix_pl_HttpDefaultClient_AddHeaderFcn
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus pkix_pl_HttpDefaultClient_AddHeaderFcn(\n        SEC_HTTP_REQUEST_SESSION
      request,\n        const char *http_header_name, \n        const char *http_header_value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pkix_pl_HttpDefaultClient_TrySendAndReceive
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1611,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1623,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 7
    argNames:
    - request
    - pPollDesc
    - http_response_code
    - http_response_content_type
    - http_response_headers
    - http_response_data
    - http_response_data_len
    argTypes:
    - SEC_HTTP_REQUEST_SESSION
    - PRPollDesc**
    - PRUint16*
    - char**
    - char**
    - char**
    - PRUint32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1627
      start: 1599
    functionDepth: 6
    functionLinenumber: 1599
    functionLinenumberEnd: 1627
    functionName: pkix_pl_HttpDefaultClient_TrySendAndReceiveFcn
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c
    functionUses: 0
    functionsReached:
    - pkix_pl_HttpDefaultClient_TrySendAndReceive
    - PKIX_PL_Object_DecRef
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus pkix_pl_HttpDefaultClient_TrySendAndReceiveFcn(\n        SEC_HTTP_REQUEST_SESSION
      request,\n        PRPollDesc **pPollDesc,\n        PRUint16 *http_response_code,
      \n        const char **http_response_content_type, \n        const char **http_response_headers,
      \n        const char **http_response_data, \n        PRUint32 *http_response_data_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pkix_pl_HttpDefaultClient_Cancel
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1633,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1636,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - request
    argTypes:
    - SEC_HTTP_REQUEST_SESSION
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1640
      start: 1629
    functionDepth: 6
    functionLinenumber: 1629
    functionLinenumberEnd: 1640
    functionName: pkix_pl_HttpDefaultClient_CancelFcn
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c
    functionUses: 0
    functionsReached:
    - pkix_pl_HttpDefaultClient_Cancel
    - PKIX_PL_Object_DecRef
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus pkix_pl_HttpDefaultClient_CancelFcn(\n        SEC_HTTP_REQUEST_SESSION
      request)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1647,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c:1650,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - request
    argTypes:
    - SEC_HTTP_REQUEST_SESSION
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1654
      start: 1642
    functionDepth: 6
    functionLinenumber: 1642
    functionLinenumberEnd: 1654
    functionName: pkix_pl_HttpDefaultClient_FreeFcn
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c
    functionUses: 0
    functionsReached:
    - PKIX_PL_Object_DecRef
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus pkix_pl_HttpDefaultClient_FreeFcn(\n        SEC_HTTP_REQUEST_SESSION
      request)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetOpenFileInfo
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:27,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:30,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:36,1
    - Dst: PR_Read
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:39,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:41,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:47,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - SECItem*
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 49
    functionName: SECU_FileToItem
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c
    functionUses: 10
    functionsReached:
    - SECITEM_AllocItem
    - PORT_SetError
    - PR_Read
    - PR_GetOpenFileInfo
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SECU_FileToItem(SECItem *dst, PRFileDesc *src)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: SECU_FileToItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:60,1
    - Dst: fprintf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:65,1
    - Dst: SECITEM_ReallocItemV2
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:69,1
    - Dst: PORT_Free
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:71,1
    - Dst: strstr
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:79,1
    - Dst: PORT_Strchr
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:82,1
    - Dst: PORT_Strchr
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:84,1
    - Dst: strstr
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:86,1
    - Dst: fprintf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:90,1
    - Dst: PORT_Free
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:91,1
    - Dst: ATOB_ConvertAsciiToItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:99,1
    - Dst: PORT_Free
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:104,1
    - Dst: SECU_FileToItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:107,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 3
    argNames:
    - der
    - inFile
    - ascii
    argTypes:
    - SECItem*
    - PRFileDesc*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 113
    functionName: SECU_ReadDERFromFile
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c
    functionUses: 24
    functionsReached:
    - PORT_Strchr
    - ATOB_ConvertAsciiToItem
    - PORT_Free
    - SECITEM_ReallocItemV2
    - fprintf
    - strstr
    - SECU_FileToItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SECU_ReadDERFromFile(SECItem *der, PRFileDesc *inFile, PRBool
      ascii)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:145,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:147,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:149,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:149,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:156,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:167,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 3
    argNames:
    - storeDir
    - pColCertStoreContext
    - plContext
    argTypes:
    - PKIX_PL_String*
    - PKIX_PL_CollectionCertStoreContext**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 137
    functionDepth: 4
    functionLinenumber: 137
    functionLinenumberEnd: 170
    functionName: pkix_pl_CollectionCertStoreContext_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c
    functionUses: 0
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_Alloc
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CollectionCertStoreContext_Create(\n        PKIX_PL_String
      *storeDir,\n        PKIX_PL_CollectionCertStoreContext **pColCertStoreContext,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:183,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:185,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:187,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:187,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:193,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:194,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:195,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 176
    functionDepth: 3
    functionLinenumber: 176
    functionLinenumberEnd: 199
    functionName: pkix_pl_CollectionCertStoreContext_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CollectionCertStoreContext_Destroy(\n        PKIX_PL_Object
      *object,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:214,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:216,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:218,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:218,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:226,1
    - Dst: PKIX_PL_Object_Hashcode
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:226,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - object
    - pHashcode
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 205
    functionDepth: 5
    functionLinenumber: 205
    functionLinenumberEnd: 238
    functionName: pkix_pl_CollectionCertStoreContext_Hashcode
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_PL_Object_Hashcode
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CollectionCertStoreContext_Hashcode(\n        PKIX_PL_Object
      *object,\n        PKIX_UInt32 *pHashcode,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:255,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:257,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:259,1
    - Dst: pkix_CheckTypes
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:259,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:275,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:275,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 4
    argNames:
    - firstObject
    - secondObject
    - pResult
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    - PKIX_Int32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 244
    functionDepth: 5
    functionLinenumber: 244
    functionLinenumberEnd: 289
    functionName: pkix_pl_CollectionCertStoreContext_Equals
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_PL_Object_Equals
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckTypes
    - PKIX_NULLCHECK_THREE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CollectionCertStoreContext_Equals(\n        PKIX_PL_Object
      *firstObject,\n        PKIX_PL_Object *secondObject,\n        PKIX_Int32 *pResult,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:321,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:322,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - store
    - cert
    - pTrusted
    - plContext
    argTypes:
    - PKIX_CertStore*
    - PKIX_PL_Cert*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 327
    functionName: pkix_pl_CollectionCertStore_CheckTrust
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CollectionCertStore_CheckTrust(\n        PKIX_CertStore
      *store,\n        PKIX_PL_Cert *cert,\n        PKIX_Boolean *pTrusted,\n        void
      *plContext)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:363,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:365,1
    - Dst: PKIX_COLLECTIONCERTSTORECONTEXT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:370,1
    - Dst: PR_Open
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:371,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:374,1
    - Dst: PKIX_COLLECTIONCERTSTORECONTEXT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:376,1
    - Dst: SECU_ReadDERFromFile
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:378,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:383,1
    - Dst: PKIX_PL_ByteArray_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:383,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:387,1
    - Dst: PKIX_PL_Cert_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:387,1
    - Dst: PKIX_COLLECTIONCERTSTORECONTEXT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:391,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:393,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:396,1
    - Dst: PKIX_COLLECTIONCERTSTORECONTEXT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:404,1
    - Dst: PR_Close
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:406,1
    - Dst: PKIX_COLLECTIONCERTSTORECONTEXT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:410,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:412,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:414,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:416,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:417,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 37
    argCount: 3
    argNames:
    - certFileName
    - pCert
    - plContext
    argTypes:
    - char*
    - PKIX_PL_Cert**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 349
    functionDepth: 5
    functionLinenumber: 349
    functionLinenumberEnd: 418
    functionName: pkix_pl_CollectionCertStoreContext_CreateCert
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c
    functionUses: 0
    functionsReached:
    - SECU_ReadDERFromFile
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Cert_Create
    - PKIX_PL_ByteArray_Create
    - PR_Open
    - PKIX_ENTER
    - PKIX_COLLECTIONCERTSTORECONTEXT_DEBUG
    - PKIX_DECREF
    - PR_Close
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    - SECITEM_FreeItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CollectionCertStoreContext_CreateCert(\n        const
      char *certFileName,\n        PKIX_PL_Cert **pCert,\n        void *plContext)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:455,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:457,1
    - Dst: PKIX_COLLECTIONCERTSTORECONTEXT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:462,1
    - Dst: PR_Open
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:463,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:466,1
    - Dst: PKIX_COLLECTIONCERTSTORECONTEXT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:468,1
    - Dst: SECU_ReadDERFromFile
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:470,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:475,1
    - Dst: PKIX_PL_ByteArray_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:475,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:479,1
    - Dst: PKIX_PL_CRL_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:479,1
    - Dst: PKIX_COLLECTIONCERTSTORECONTEXT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:483,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:485,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:488,1
    - Dst: PKIX_COLLECTIONCERTSTORECONTEXT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:496,1
    - Dst: PR_Close
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:498,1
    - Dst: PKIX_COLLECTIONCERTSTORECONTEXT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:502,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:504,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:506,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:508,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:512,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:514,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 40
    argCount: 3
    argNames:
    - crlFileName
    - pCrl
    - plContext
    argTypes:
    - char*
    - PKIX_PL_CRL**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 441
    functionDepth: 5
    functionLinenumber: 441
    functionLinenumberEnd: 515
    functionName: pkix_pl_CollectionCertStoreContext_CreateCRL
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c
    functionUses: 0
    functionsReached:
    - SECU_ReadDERFromFile
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_ByteArray_Create
    - PR_Open
    - PKIX_ENTER
    - PKIX_COLLECTIONCERTSTORECONTEXT_DEBUG
    - PKIX_DECREF
    - PR_Close
    - PKIX_PL_CRL_Create
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    - SECITEM_FreeItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CollectionCertStoreContext_CreateCRL(\n        const
      char *crlFileName,\n        PKIX_PL_CRL **pCrl,\n        void *plContext)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:554,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:556,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:560,1
    - Dst: PKIX_PL_String_GetEncoded
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:560,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:570,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:570,1
    - Dst: PKIX_COLLECTIONCERTSTORECONTEXT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:575,1
    - Dst: PR_OpenDir
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:576,1
    - Dst: PKIX_COLLECTIONCERTSTORECONTEXT_DEBUG_ARG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:579,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:581,1
    - Dst: PKIX_COLLECTIONCERTSTORECONTEXT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:584,1
    - Dst: PR_ReadDir
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:585,1
    - Dst: PKIX_COLLECTIONCERTSTORECONTEXT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:588,1
    - Dst: PKIX_COLLECTIONCERTSTORECONTEXT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:590,1
    - Dst: PR_GetError
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:592,1
    - Dst: PKIX_COLLECTIONCERTSTORECONTEXT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:595,1
    - Dst: PR_SetError
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:596,1
    - Dst: PL_strrstr
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:599,1
    - Dst: PL_strlen
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:600,1
    - Dst: PKIX_CHECK_ONLY_FATAL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:602,1
    - Dst: PKIX_PL_Malloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:603,1
    - Dst: PL_strlen
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:604,1
    - Dst: PKIX_COLLECTIONCERTSTORECONTEXT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:611,1
    - Dst: PL_strcpy
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:613,1
    - Dst: PKIX_COLLECTIONCERTSTORECONTEXT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:614,1
    - Dst: PL_strcat
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:616,1
    - Dst: PKIX_COLLECTIONCERTSTORECONTEXT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:617,1
    - Dst: PL_strcat
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:619,1
    - Dst: PKIX_CHECK_ONLY_FATAL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:621,1
    - Dst: pkix_pl_CollectionCertStoreContext_CreateCert
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:622,1
    - Dst: PKIX_CHECK_ONLY_FATAL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:627,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:628,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:636,1
    - Dst: PKIX_FREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:637,1
    - Dst: PKIX_COLLECTIONCERTSTORECONTEXT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:640,1
    - Dst: PR_SetError
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:642,1
    - Dst: PKIX_COLLECTIONCERTSTORECONTEXT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:644,1
    - Dst: PR_ReadDir
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:646,1
    - Dst: PKIX_COLLECTIONCERTSTORECONTEXT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:649,1
    - Dst: PR_GetError
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:651,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:656,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:659,1
    - Dst: PKIX_List_SetImmutable
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:659,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:662,1
    - Dst: PKIX_COLLECTIONCERTSTORECONTEXT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:667,1
    - Dst: PR_CloseDir
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:669,1
    - Dst: PKIX_FREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:672,1
    - Dst: PKIX_FREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:673,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:676,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:679,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:680,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:682,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 67
    argCount: 2
    argNames:
    - colCertStoreContext
    - plContext
    argTypes:
    - PKIX_PL_CollectionCertStoreContext*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 540
    functionDepth: 6
    functionLinenumber: 540
    functionLinenumberEnd: 683
    functionName: pkix_pl_CollectionCertStoreContext_PopulateCert
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c
    functionUses: 0
    functionsReached:
    - PKIX_COLLECTIONCERTSTORECONTEXT_DEBUG_ARG
    - PL_strlen
    - PKIX_RETURN
    - PKIX_List_Create
    - PL_strcpy
    - PKIX_DECREF
    - PKIX_ERROR
    - PKIX_NULLCHECK_ONE
    - PR_OpenDir
    - PKIX_INCREF
    - PKIX_FREE
    - PKIX_CHECK_ONLY_FATAL
    - PR_CloseDir
    - PR_SetError
    - PKIX_ENTER
    - PKIX_COLLECTIONCERTSTORECONTEXT_DEBUG
    - PKIX_List_AppendItem
    - PR_ReadDir
    - PKIX_PL_Malloc
    - PKIX_PL_String_GetEncoded
    - PL_strrstr
    - PKIX_List_SetImmutable
    - PKIX_CHECK
    - pkix_pl_CollectionCertStoreContext_CreateCert
    - PL_strcat
    - PR_GetError
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CollectionCertStoreContext_PopulateCert(\n        PKIX_PL_CollectionCertStoreContext
      *colCertStoreContext,\n        void *plContext)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:722,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:724,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:728,1
    - Dst: PKIX_PL_String_GetEncoded
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:728,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:738,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:738,1
    - Dst: PKIX_COLLECTIONCERTSTORECONTEXT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:743,1
    - Dst: PR_OpenDir
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:744,1
    - Dst: PKIX_COLLECTIONCERTSTORECONTEXT_DEBUG_ARG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:747,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:749,1
    - Dst: PKIX_COLLECTIONCERTSTORECONTEXT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:752,1
    - Dst: PR_ReadDir
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:753,1
    - Dst: PKIX_COLLECTIONCERTSTORECONTEXT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:756,1
    - Dst: PKIX_COLLECTIONCERTSTORECONTEXT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:758,1
    - Dst: PR_GetError
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:760,1
    - Dst: PKIX_COLLECTIONCERTSTORECONTEXT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:763,1
    - Dst: PR_SetError
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:764,1
    - Dst: PL_strrstr
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:767,1
    - Dst: PL_strlen
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:768,1
    - Dst: PKIX_CHECK_ONLY_FATAL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:770,1
    - Dst: PKIX_PL_Malloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:771,1
    - Dst: PL_strlen
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:772,1
    - Dst: PKIX_COLLECTIONCERTSTORECONTEXT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:779,1
    - Dst: PL_strcpy
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:781,1
    - Dst: PKIX_COLLECTIONCERTSTORECONTEXT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:782,1
    - Dst: PL_strcat
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:784,1
    - Dst: PKIX_COLLECTIONCERTSTORECONTEXT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:785,1
    - Dst: PL_strcat
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:787,1
    - Dst: PKIX_CHECK_ONLY_FATAL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:789,1
    - Dst: pkix_pl_CollectionCertStoreContext_CreateCRL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:790,1
    - Dst: PKIX_CHECK_ONLY_FATAL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:795,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:796,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:804,1
    - Dst: PKIX_FREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:805,1
    - Dst: PKIX_COLLECTIONCERTSTORECONTEXT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:808,1
    - Dst: PR_SetError
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:810,1
    - Dst: PKIX_COLLECTIONCERTSTORECONTEXT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:812,1
    - Dst: PR_ReadDir
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:814,1
    - Dst: PKIX_COLLECTIONCERTSTORECONTEXT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:817,1
    - Dst: PR_GetError
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:819,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:824,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:827,1
    - Dst: PKIX_List_SetImmutable
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:827,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:830,1
    - Dst: PKIX_COLLECTIONCERTSTORECONTEXT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:835,1
    - Dst: PR_CloseDir
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:837,1
    - Dst: PKIX_FREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:840,1
    - Dst: PKIX_FREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:841,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:844,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:847,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:848,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:850,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 67
    argCount: 2
    argNames:
    - colCertStoreContext
    - plContext
    argTypes:
    - PKIX_PL_CollectionCertStoreContext*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 851
      start: 708
    functionDepth: 6
    functionLinenumber: 708
    functionLinenumberEnd: 851
    functionName: pkix_pl_CollectionCertStoreContext_PopulateCRL
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c
    functionUses: 0
    functionsReached:
    - PKIX_COLLECTIONCERTSTORECONTEXT_DEBUG_ARG
    - PL_strlen
    - PKIX_RETURN
    - PKIX_List_Create
    - PL_strcpy
    - PKIX_DECREF
    - PKIX_ERROR
    - PKIX_NULLCHECK_ONE
    - PR_OpenDir
    - PKIX_INCREF
    - PKIX_FREE
    - PKIX_CHECK_ONLY_FATAL
    - PR_CloseDir
    - PR_SetError
    - PKIX_ENTER
    - PKIX_COLLECTIONCERTSTORECONTEXT_DEBUG
    - PKIX_List_AppendItem
    - PR_ReadDir
    - PKIX_PL_Malloc
    - PKIX_PL_String_GetEncoded
    - PL_strrstr
    - PKIX_List_SetImmutable
    - PKIX_CHECK
    - PL_strcat
    - PR_GetError
    - pkix_pl_CollectionCertStoreContext_CreateCRL
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CollectionCertStoreContext_PopulateCRL(\n        PKIX_PL_CollectionCertStoreContext
      *colCertStoreContext,\n        void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:893,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:895,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:897,1
    - Dst: PKIX_CertSelector_GetMatchCallback
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:897,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:901,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:901,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:906,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:906,1
    - Dst: PKIX_CHECK_ONLY_FATAL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:910,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:911,1
    - Dst: PKIX_CHECK_ONLY_FATAL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:919,1
    - Dst: certSelectorMatch
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:920,1
    - Dst: PKIX_CHECK_ONLY_FATAL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:925,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:926,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:934,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:939,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:947,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 4
    argNames:
    - certList
    - selector
    - pSelectedCertList
    - plContext
    argTypes:
    - PKIX_List*
    - PKIX_CertSelector*
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 880
    functionDepth: 3
    functionLinenumber: 880
    functionLinenumberEnd: 948
    functionName: pkix_pl_CollectionCertStoreContext_GetSelectedCert
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c
    functionUses: 0
    functionsReached:
    - PKIX_INCREF
    - certSelectorMatch
    - PKIX_CHECK_ONLY_FATAL
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_Create
    - PKIX_List_GetLength
    - PKIX_List_AppendItem
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_DECREF
    - PKIX_CertSelector_GetMatchCallback
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CollectionCertStoreContext_GetSelectedCert(\n
      \       PKIX_List *certList,\n        PKIX_CertSelector *selector,\n        PKIX_List
      **pSelectedCertList,\n        void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:989,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:991,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:993,1
    - Dst: PKIX_CRLSelector_GetMatchCallback
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:993,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:997,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:997,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:1002,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:1002,1
    - Dst: PKIX_CHECK_ONLY_FATAL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:1006,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:1006,1
    - Dst: PKIX_CHECK_ONLY_FATAL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:1014,1
    - Dst: crlSelectorMatch
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:1015,1
    - Dst: PKIX_CHECK_ONLY_FATAL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:1020,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:1021,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:1029,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:1033,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:1044,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 4
    argNames:
    - crlList
    - selector
    - pSelectedCrlList
    - plContext
    argTypes:
    - PKIX_List*
    - PKIX_CRLSelector*
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1045
      start: 975
    functionDepth: 3
    functionLinenumber: 975
    functionLinenumberEnd: 1045
    functionName: pkix_pl_CollectionCertStoreContext_GetSelectedCRL
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c
    functionUses: 0
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK_ONLY_FATAL
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_Create
    - PKIX_CRLSelector_GetMatchCallback
    - PKIX_List_GetLength
    - PKIX_List_AppendItem
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_DECREF
    - crlSelectorMatch
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CollectionCertStoreContext_GetSelectedCRL(\n
      \       PKIX_List *crlList,\n        PKIX_CRLSelector *selector,\n        PKIX_List
      **pSelectedCrlList,\n        void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:1085,1
    - Dst: PKIX_NULLCHECK_FOUR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:1086,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:1090,1
    - Dst: PKIX_CertStore_GetCertStoreContext
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:1090,1
    - Dst: PKIX_OBJECT_LOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:1098,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:1106,1
    - Dst: pkix_pl_CollectionCertStoreContext_PopulateCert
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:1106,1
    - Dst: PKIX_OBJECT_UNLOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:1111,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:1114,1
    - Dst: pkix_pl_CollectionCertStoreContext_GetSelectedCert
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:1114,1
    - Dst: PKIX_OBJECT_UNLOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:1124,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:1125,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:1126,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 6
    argNames:
    - certStore
    - selector
    - verifyNode
    - pNBIOContext
    - pCerts
    - plContext
    argTypes:
    - PKIX_CertStore*
    - PKIX_CertSelector*
    - PKIX_VerifyNode*
    - void**
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1073
    functionDepth: 7
    functionLinenumber: 1073
    functionLinenumberEnd: 1127
    functionName: pkix_pl_CollectionCertStore_GetCert
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c
    functionUses: 0
    functionsReached:
    - pkix_pl_CollectionCertStoreContext_PopulateCert
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_NULLCHECK_FOUR
    - pkix_pl_CollectionCertStoreContext_GetSelectedCert
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_OBJECT_UNLOCK
    - PKIX_CertStore_GetCertStoreContext
    - PKIX_OBJECT_LOCK
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CollectionCertStore_GetCert(\n        PKIX_CertStore
      *certStore,\n        PKIX_CertSelector *selector,\n        PKIX_VerifyNode *verifyNode,\n
      \       void **pNBIOContext,\n        PKIX_List **pCerts,\n        void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:1166,1
    - Dst: PKIX_NULLCHECK_FOUR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:1167,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:1171,1
    - Dst: PKIX_CertStore_GetCertStoreContext
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:1171,1
    - Dst: PKIX_OBJECT_LOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:1179,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:1187,1
    - Dst: pkix_pl_CollectionCertStoreContext_PopulateCRL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:1187,1
    - Dst: PKIX_OBJECT_UNLOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:1192,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:1196,1
    - Dst: pkix_pl_CollectionCertStoreContext_GetSelectedCRL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:1196,1
    - Dst: PKIX_OBJECT_UNLOCK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:1206,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:1207,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:1208,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 5
    argNames:
    - certStore
    - selector
    - pNBIOContext
    - pCrlList
    - plContext
    argTypes:
    - PKIX_CertStore*
    - PKIX_CRLSelector*
    - void**
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1209
      start: 1155
    functionDepth: 7
    functionLinenumber: 1155
    functionLinenumberEnd: 1209
    functionName: pkix_pl_CollectionCertStore_GetCRL
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_NULLCHECK_FOUR
    - pkix_pl_CollectionCertStoreContext_GetSelectedCRL
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_OBJECT_UNLOCK
    - pkix_pl_CollectionCertStoreContext_PopulateCRL
    - PKIX_CertStore_GetCertStoreContext
    - PKIX_OBJECT_LOCK
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_CollectionCertStore_GetCRL(\n        PKIX_CertStore
      *certStore,\n        PKIX_CRLSelector *selector,\n        void **pNBIOContext,\n
      \       PKIX_List **pCrlList,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:1231,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:1246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1247
      start: 1225
    functionDepth: 1
    functionLinenumber: 1225
    functionLinenumberEnd: 1247
    functionName: pkix_pl_CollectionCertStoreContext_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c
    functionUses: 1
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      pkix_pl_CollectionCertStoreContext_RegisterSelf(void *plContext)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:1264,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:1265,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:1267,1
    - Dst: pkix_pl_CollectionCertStoreContext_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:1267,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:1271,1
    - Dst: PKIX_CertStore_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:1271,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:1286,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c:1291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - storeDir
    - pCertStore
    - plContext
    argTypes:
    - PKIX_PL_String*
    - PKIX_CertStore**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1292
      start: 1255
    functionDepth: 5
    functionLinenumber: 1255
    functionLinenumberEnd: 1292
    functionName: PKIX_PL_CollectionCertStore_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_colcertstore.c
    functionUses: 15
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_pl_CollectionCertStoreContext_Create
    - PKIX_CertStore_Create
    - PKIX_DECREF
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_CollectionCertStore_Create(\n        PKIX_PL_String
      *storeDir,\n        PKIX_CertStore **pCertStore,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_nsscontext.c:37,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_nsscontext.c:38,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_nsscontext.c:40,1
    - Dst: PKIX_PL_Malloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_nsscontext.c:40,1
    - Dst: PKIX_CONTEXT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_nsscontext.c:45,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_nsscontext.c:46,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_nsscontext.c:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 4
    argNames:
    - certificateUsage
    - useNssArena
    - wincx
    - pNssContext
    argTypes:
    - PKIX_UInt32
    - PKIX_Boolean
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 65
    functionName: PKIX_PL_NssContext_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_nsscontext.c
    functionUses: 64
    functionsReached:
    - PKIX_CHECK
    - PORT_NewArena
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_CONTEXT_DEBUG
    - PKIX_PL_Malloc
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_NssContext_Create(\n        PKIX_UInt32 certificateUsage,\n
      \       PKIX_Boolean useNssArena,\n        void *wincx,\n        void **pNssContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_nsscontext.c:79,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_nsscontext.c:80,1
    - Dst: PKIX_CONTEXT_DEBUG
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_nsscontext.c:85,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_nsscontext.c:86,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_nsscontext.c:89,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_nsscontext.c:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - nssContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 92
    functionName: PKIX_PL_NssContext_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_nsscontext.c
    functionUses: 1
    functionsReached:
    - PKIX_RETURN
    - PORT_FreeArena
    - PKIX_PL_Free
    - PKIX_ENTER
    - PKIX_CONTEXT_DEBUG
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_NssContext_Destroy(\n        void *nssContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_nsscontext.c:121,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_nsscontext.c:122,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_nsscontext.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - nssContext
    - pCertUsage
    argTypes:
    - PKIX_PL_NssContext*
    - SECCertificateUsage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 127
    functionName: pkix_pl_NssContext_GetCertUsage
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_nsscontext.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_NssContext_GetCertUsage(\n        PKIX_PL_NssContext
      *nssContext,\n        SECCertificateUsage *pCertUsage)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_nsscontext.c:156,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_nsscontext.c:157,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_nsscontext.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - certUsage
    - nssContext
    argTypes:
    - SECCertificateUsage
    - PKIX_PL_NssContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 162
    functionName: pkix_pl_NssContext_SetCertUsage
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_nsscontext.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_NssContext_SetCertUsage(\n        SECCertificateUsage
      certUsage,\n        PKIX_PL_NssContext *nssContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_nsscontext.c:190,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_nsscontext.c:191,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_nsscontext.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - nssContext
    - pCheckSig
    argTypes:
    - PKIX_PL_NssContext*
    - PKIX_Boolean*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 196
    functionName: pkix_pl_NssContext_GetCertSignatureCheck
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_nsscontext.c
    functionUses: 1
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_NssContext_GetCertSignatureCheck(\n        PKIX_PL_NssContext
      *nssContext,\n        PKIX_Boolean *pCheckSig)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_nsscontext.c:225,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_nsscontext.c:226,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_nsscontext.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - checkSig
    - nssContext
    argTypes:
    - PKIX_Boolean
    - PKIX_PL_NssContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 231
    functionName: pkix_pl_NssContext_SetCertSignatureCheck
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_nsscontext.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_NssContext_SetCertSignatureCheck(\n        PKIX_Boolean
      checkSig,\n        PKIX_PL_NssContext *nssContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_nsscontext.c:260,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_nsscontext.c:261,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_nsscontext.c:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - nssContext
    - pWincx
    argTypes:
    - PKIX_PL_NssContext*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 268
    functionName: pkix_pl_NssContext_GetWincx
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_nsscontext.c
    functionUses: 2
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_NssContext_GetWincx(\n        PKIX_PL_NssContext
      *nssContext,\n        void **pWincx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_nsscontext.c:296,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_nsscontext.c:297,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_nsscontext.c:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - wincx
    - nssContext
    argTypes:
    - void*
    - PKIX_PL_NssContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 302
    functionName: pkix_pl_NssContext_SetWincx
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_nsscontext.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_NssContext_SetWincx(\n        void *wincx,\n
      \       PKIX_PL_NssContext *nssContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_nsscontext.c:318,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_nsscontext.c:319,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_nsscontext.c:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - timeout
    - nssContext
    argTypes:
    - PKIX_UInt32
    - PKIX_PL_NssContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 324
    functionName: PKIX_PL_NssContext_SetTimeout
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_nsscontext.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_NssContext_SetTimeout(PKIX_UInt32 timeout,\n
      \                             PKIX_PL_NssContext *nssContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_nsscontext.c:339,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_nsscontext.c:340,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_nsscontext.c:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - len
    - nssContext
    argTypes:
    - PKIX_UInt32
    - PKIX_PL_NssContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 345
    functionName: PKIX_PL_NssContext_SetMaxResponseLen
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_nsscontext.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_NssContext_SetMaxResponseLen(PKIX_UInt32 len,\n
      \                                    PKIX_PL_NssContext *nssContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_nsscontext.c:361,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_nsscontext.c:362,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_nsscontext.c:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - delay
    - nssContext
    argTypes:
    - PKIX_UInt32
    - PKIX_PL_NssContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 367
    functionName: PKIX_PL_NssContext_SetCrlReloadDelay
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_nsscontext.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_NssContext_SetCrlReloadDelay(PKIX_UInt32 delay,\n
      \                                    PKIX_PL_NssContext *nssContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_nsscontext.c:383,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_nsscontext.c:384,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_nsscontext.c:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - delay
    - nssContext
    argTypes:
    - PKIX_UInt32
    - PKIX_PL_NssContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 389
    functionName: PKIX_PL_NssContext_SetBadDerCrlReloadDelay
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_nsscontext.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_NssContext_SetBadDerCrlReloadDelay(PKIX_UInt32
      delay,\n                                             PKIX_PL_NssContext *nssContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:62,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:64,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:66,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:66,1
    - Dst: PORT_Free
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:81,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:87,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 54
    functionDepth: 3
    functionLinenumber: 54
    functionLinenumberEnd: 88
    functionName: pkix_pl_HttpCertStoreContext_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PORT_Free
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_HttpCertStoreContext_Destroy(\n        PKIX_PL_Object
      *object,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:110,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 118
    functionName: pkix_pl_HttpCertStoreContext_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c
    functionUses: 1
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      pkix_pl_HttpCertStoreContext_RegisterSelf(void *plContext)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pkix_pl_Cert_CreateToList
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:176,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:185,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - arg
    - secitemCerts
    - numcerts
    argTypes:
    - void*
    - SECItem**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 158
    functionDepth: 6
    functionLinenumber: 158
    functionLinenumberEnd: 199
    functionName: certCallback
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c
    functionUses: 6
    functionsReached:
    - pkix_pl_Cert_CreateToList
    - PKIX_PL_Object_DecRef
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus certCallback(void *arg, SECItem **secitemCerts, int numcerts)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_LoadLibrary
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:227,1
    - Dst: PR_FindFunctionSymbol
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:232,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 239
    functionName: PR_CALLBACK::pkix_getDecodeFunction
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c
    functionUses: 0
    functionsReached:
    - PR_LoadLibrary
    - PR_FindFunctionSymbol
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus PR_CALLBACK pkix_getDecodeFunction(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_UnloadLibrary
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 254
    functionName: pkix_pl_HttpCertStore_Shutdown
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c
    functionUses: 1
    functionsReached:
    - PR_UnloadLibrary
    linkageType: ''
    returnType: void
    signature: void pkix_pl_HttpCertStore_Shutdown(void *plContext)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:272,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:275,1
    - Dst: PR_CallOnce
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:277,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:280,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:285,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:291,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:297,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 5
    argNames:
    - certbuf
    - certlen
    - f
    - arg
    - plContext
    argTypes:
    - char*
    - int
    - CERTImportCertificateFunc
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 298
    functionName: pkix_pl_HttpCertStore_DecodeCertPackage
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c
    functionUses: 0
    functionsReached:
    - PKIX_RETURN
    - PKIX_ENTER
    - PR_CallOnce
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_HttpCertStore_DecodeCertPackage\n        (const
      char *certbuf,\n        int certlen,\n        CERTImportCertificateFunc f,\n
      \       void *arg,\n        void *plContext)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:342,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:349,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:352,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:357,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:361,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:364,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:365,1
    - Dst: PKIX_CHECK_ONLY_FATAL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:368,1
    - Dst: pkix_pl_HttpCertStore_DecodeCertPackage
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:369,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:386,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:388,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 6
    argNames:
    - responseCode
    - responseContentType
    - responseData
    - responseDataLen
    - pCertList
    - plContext
    argTypes:
    - PRUint16
    - char*
    - char*
    - PRUint32
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 331
    functionDepth: 3
    functionLinenumber: 331
    functionLinenumberEnd: 389
    functionName: pkix_pl_HttpCertStore_ProcessCertResponse
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c
    functionUses: 1
    functionsReached:
    - PKIX_CHECK_ONLY_FATAL
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_Create
    - PKIX_ENTER
    - PKIX_DECREF
    - pkix_pl_HttpCertStore_DecodeCertPackage
    - PKIX_ERROR
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_HttpCertStore_ProcessCertResponse(\n        PRUint16
      responseCode,\n        const char *responseContentType,\n        const char
      *responseData,\n        PRUint32 responseDataLen,\n        PKIX_List **pCertList,\n
      \       void *plContext)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:437,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:439,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:442,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:447,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:450,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:453,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:459,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:461,1
    - Dst: CERT_DecodeDERCrlWithFlags
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:465,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:469,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:472,1
    - Dst: pkix_pl_CRL_CreateWithSignedCRL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:473,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:480,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:480,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:482,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:482,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:489,1
    - Dst: SEC_DestroyCrl
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:492,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:494,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:495,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:497,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 42
    argCount: 6
    argNames:
    - responseCode
    - responseContentType
    - responseData
    - responseDataLen
    - pCrlList
    - plContext
    argTypes:
    - PRUint16
    - char*
    - char*
    - PRUint32
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 421
    functionDepth: 3
    functionLinenumber: 421
    functionLinenumberEnd: 498
    functionName: pkix_pl_HttpCertStore_ProcessCrlResponse
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c
    functionUses: 0
    functionsReached:
    - SECITEM_DupItem
    - PORT_Strcasecmp
    - CERT_DecodeDERCrlWithFlags
    - PKIX_CHECK
    - PKIX_List_Create
    - PKIX_RETURN
    - PKIX_List_AppendItem
    - PKIX_ENTER
    - SEC_DestroyCrl
    - PKIX_DECREF
    - SECITEM_FreeItem
    - pkix_pl_CRL_CreateWithSignedCRL
    - PKIX_ERROR
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_HttpCertStore_ProcessCrlResponse(\n        PRUint16
      responseCode,\n        const char *responseContentType,\n        const char
      *responseData,\n        PRUint32 responseDataLen,\n        PKIX_List **pCrlList,\n
      \       void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:528,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:531,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:534,1
    - Dst: PR_SecondsToInterval
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:545,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:550,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:554,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - context
    - plContext
    argTypes:
    - PKIX_PL_HttpCertStoreContext*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 556
    functionName: pkix_pl_HttpCertStore_CreateRequestSession
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c
    functionUses: 0
    functionsReached:
    - PKIX_RETURN
    - PR_SecondsToInterval
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_HttpCertStore_CreateRequestSession(\n        PKIX_PL_HttpCertStoreContext
      *context,\n        void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:581,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:582,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:587,1
    - Dst: PKIX_CertStore_GetCertStoreContext
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:587,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:592,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:597,1
    - Dst: pkix_pl_HttpCertStore_CreateRequestSession
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:597,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:612,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:620,1
    - Dst: pkix_pl_HttpCertStore_ProcessCertResponse
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:620,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:632,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:634,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 6
    argNames:
    - store
    - selector
    - verifyNode
    - pNBIOContext
    - pCertList
    - plContext
    argTypes:
    - PKIX_CertStore*
    - PKIX_CertSelector*
    - PKIX_VerifyNode*
    - void**
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 562
    functionDepth: 4
    functionLinenumber: 562
    functionLinenumberEnd: 635
    functionName: pkix_pl_HttpCertStore_GetCert
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_pl_HttpCertStore_ProcessCertResponse
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - pkix_pl_HttpCertStore_CreateRequestSession
    - PKIX_DECREF
    - PKIX_CertStore_GetCertStoreContext
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_HttpCertStore_GetCert(\n        PKIX_CertStore
      *store,\n        PKIX_CertSelector *selector,\n        PKIX_VerifyNode *verifyNode,\n
      \       void **pNBIOContext,\n        PKIX_List **pCertList,\n        void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:660,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:661,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:666,1
    - Dst: PKIX_CertStore_GetCertStoreContext
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:666,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:671,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:675,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:689,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:697,1
    - Dst: pkix_pl_HttpCertStore_ProcessCertResponse
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:697,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:709,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:711,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 6
    argNames:
    - store
    - selector
    - verifyNode
    - pNBIOContext
    - pCertList
    - plContext
    argTypes:
    - PKIX_CertStore*
    - PKIX_CertSelector*
    - PKIX_VerifyNode*
    - void**
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 641
    functionDepth: 4
    functionLinenumber: 641
    functionLinenumberEnd: 712
    functionName: pkix_pl_HttpCertStore_GetCertContinue
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_pl_HttpCertStore_ProcessCertResponse
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_DECREF
    - PKIX_CertStore_GetCertStoreContext
    - PKIX_ERROR
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_HttpCertStore_GetCertContinue(\n        PKIX_CertStore
      *store,\n        PKIX_CertSelector *selector,\n        PKIX_VerifyNode *verifyNode,\n
      \       void **pNBIOContext,\n        PKIX_List **pCertList,\n        void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:737,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:738,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:743,1
    - Dst: PKIX_CertStore_GetCertStoreContext
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:743,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:748,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:752,1
    - Dst: pkix_pl_HttpCertStore_CreateRequestSession
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:752,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:768,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:776,1
    - Dst: pkix_pl_HttpCertStore_ProcessCrlResponse
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:776,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:788,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:790,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 5
    argNames:
    - store
    - selector
    - pNBIOContext
    - pCrlList
    - plContext
    argTypes:
    - PKIX_CertStore*
    - PKIX_CRLSelector*
    - void**
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 718
    functionDepth: 4
    functionLinenumber: 718
    functionLinenumberEnd: 791
    functionName: pkix_pl_HttpCertStore_GetCRL
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_pl_HttpCertStore_ProcessCrlResponse
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - pkix_pl_HttpCertStore_CreateRequestSession
    - PKIX_DECREF
    - PKIX_CertStore_GetCertStoreContext
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_HttpCertStore_GetCRL(\n        PKIX_CertStore
      *store,\n        PKIX_CRLSelector *selector,\n        void **pNBIOContext,\n
      \       PKIX_List **pCrlList,\n        void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:815,1
    - Dst: PKIX_NULLCHECK_FOUR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:816,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:821,1
    - Dst: PKIX_CertStore_GetCertStoreContext
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:821,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:826,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:830,1
    - Dst: pkix_pl_HttpCertStore_CreateRequestSession
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:830,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:846,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:854,1
    - Dst: pkix_pl_HttpCertStore_ProcessCrlResponse
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:854,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:866,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:868,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 5
    argNames:
    - store
    - selector
    - pNBIOContext
    - pCrlList
    - plContext
    argTypes:
    - PKIX_CertStore*
    - PKIX_CRLSelector*
    - void**
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 797
    functionDepth: 4
    functionLinenumber: 797
    functionLinenumberEnd: 869
    functionName: pkix_pl_HttpCertStore_GetCRLContinue
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_NULLCHECK_FOUR
    - pkix_pl_HttpCertStore_ProcessCrlResponse
    - PKIX_ENTER
    - pkix_pl_HttpCertStore_CreateRequestSession
    - PKIX_DECREF
    - PKIX_CertStore_GetCertStoreContext
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_HttpCertStore_GetCRLContinue(\n        PKIX_CertStore
      *store,\n        PKIX_CRLSelector *selector,\n        void **pNBIOContext,\n
      \       PKIX_List **pCrlList,\n        void *plContext)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:915,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:916,1
    - Dst: SEC_GetRegisteredHttpClient
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:919,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:921,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:928,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:932,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:932,1
    - Dst: CERT_ParseURL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:943,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:945,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:955,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:960,1
    - Dst: PKIX_CertStore_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:960,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:979,1
    - Dst: PORT_Free
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:981,1
    - Dst: PORT_Free
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:984,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:987,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 4
    argNames:
    - client
    - locationAscii
    - pCertStore
    - plContext
    argTypes:
    - PKIX_PL_HttpClient*
    - char*
    - PKIX_CertStore**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 899
    functionDepth: 4
    functionLinenumber: 899
    functionLinenumberEnd: 988
    functionName: pkix_pl_HttpCertStore_CreateWithAsciiName
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c
    functionUses: 1
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PORT_Free
    - PKIX_PL_Object_Alloc
    - CERT_ParseURL
    - PKIX_ENTER
    - PKIX_CertStore_Create
    - PKIX_DECREF
    - SEC_GetRegisteredHttpClient
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_HttpCertStore_CreateWithAsciiName(\n        PKIX_PL_HttpClient
      *client,\n        char *locationAscii,\n        PKIX_CertStore **pCertStore,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:1005,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:1006,1
    - Dst: PKIX_TOSTRING
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:1008,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:1011,1
    - Dst: PKIX_PL_String_GetEncoded
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:1011,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:1019,1
    - Dst: pkix_pl_HttpCertStore_CreateWithAsciiName
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:1019,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:1025,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:1027,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 4
    argNames:
    - client
    - location
    - pCertStore
    - plContext
    argTypes:
    - PKIX_PL_HttpClient*
    - PKIX_PL_GeneralName*
    - PKIX_CertStore**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 994
    functionDepth: 5
    functionLinenumber: 994
    functionLinenumberEnd: 1028
    functionName: PKIX_PL_HttpCertStore_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c
    functionUses: 1
    functionsReached:
    - PKIX_PL_String_GetEncoded
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_pl_HttpCertStore_CreateWithAsciiName
    - PKIX_DECREF
    - PKIX_TOSTRING
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_HttpCertStore_Create(\n        PKIX_PL_HttpClient
      *client,\n        PKIX_PL_GeneralName *location,\n        PKIX_CertStore **pCertStore,\n
      \       void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:1080,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:1081,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:1086,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:1086,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:1095,1
    - Dst: PKIX_PL_String_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:1095,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:1099,1
    - Dst: PKIX_PL_Sprintf
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:1099,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:1105,1
    - Dst: PKIX_PL_HashTable_Lookup
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:1105,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:1115,1
    - Dst: pkix_pl_Socket_CreateByHostAndPort
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:1115,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:1126,1
    - Dst: PKIX_PL_HashTable_Add
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:1126,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:1140,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:1141,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:1142,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:1143,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c:1145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 6
    argNames:
    - timeout
    - hostname
    - portnum
    - pStatus
    - pSocket
    - plContext
    argTypes:
    - PRIntervalTime
    - char*
    - PRUint16
    - PRErrorCode*
    - PKIX_PL_Socket**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1066
    functionDepth: 6
    functionLinenumber: 1066
    functionLinenumberEnd: 1146
    functionName: pkix_HttpCertStore_FindSocketConnection
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c
    functionUses: 1
    functionsReached:
    - PKIX_PL_HashTable_Add
    - PKIX_CHECK
    - PKIX_PL_String_Create
    - PKIX_RETURN
    - PKIX_PL_HashTable_Lookup
    - PKIX_PL_Sprintf
    - pkix_pl_Socket_CreateByHostAndPort
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_DECREF
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_HttpCertStore_FindSocketConnection(\n        PRIntervalTime
      timeout,\n        char *hostname,\n        PRUint16 portnum,\n        PRErrorCode
      *pStatus,\n        PKIX_PL_Socket **pSocket,\n        void *plContext)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:60,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:61,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:62,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:67,1
    - Dst: CERT_TrustFlagsForCACertUsage
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:72,1
    - Dst: CERT_GetCertTrust
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:74,1
    - Dst: SEC_GET_TRUST_FLAGS
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:94,1
    - Dst: SEC_GET_TRUST_FLAGS
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:102,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:113,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 4
    argNames:
    - store
    - cert
    - pTrusted
    - plContext
    argTypes:
    - PKIX_CertStore*
    - PKIX_PL_Cert*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 114
    functionName: pkix_pl_Pk11CertStore_CheckTrust
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PKIX_RETURN
    - SEC_GET_TRUST_FLAGS
    - CERT_TrustFlagsForCACertUsage
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - CERT_GetCertTrust
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_Pk11CertStore_CheckTrust(\n        PKIX_CertStore
      *store,\n        PKIX_PL_Cert *cert,\n        PKIX_Boolean *pTrusted,\n        void
      *plContext)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:164,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:165,1
    - Dst: PKIX_PL_NSSCALLRV
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:168,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:181,1
    - Dst: PKIX_ComCertSelParams_GetSubject
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:181,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:185,1
    - Dst: PKIX_ComCertSelParams_GetCertificateValid
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:185,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:191,1
    - Dst: pkix_pl_Date_GetPRTime
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:191,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:203,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:206,1
    - Dst: pkix_pl_X500Name_GetDERName
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:206,1
    - Dst: PKIX_PL_NSSCALLRV
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:212,1
    - Dst: PKIX_PL_NSSCALL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:218,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:225,1
    - Dst: pkix_pl_NssContext_GetWincx
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:225,1
    - Dst: PKIX_PL_NSSCALLRV
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:229,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:238,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:238,1
    - Dst: CERT_LIST_HEAD
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:241,1
    - Dst: CERT_LIST_END
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:242,1
    - Dst: CERT_LIST_NEXT
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:243,1
    - Dst: PKIX_PL_NSSCALLRV
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:245,1
    - Dst: PKIX_CHECK_ONLY_FATAL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:255,1
    - Dst: pkix_pl_Cert_CreateWithNSSCert
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:255,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:260,1
    - Dst: PKIX_CHECK_ONLY_FATAL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:265,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:265,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:269,1
    - Dst: CERT_DestroyCertList
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:283,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:286,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:289,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:290,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:291,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:292,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:294,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 57
    argCount: 3
    argNames:
    - params
    - pSelected
    - plContext
    argTypes:
    - PKIX_ComCertSelParams*
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 143
    functionDepth: 3
    functionLinenumber: 143
    functionLinenumberEnd: 295
    functionName: pkix_pl_Pk11CertStore_CertQuery
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c
    functionUses: 0
    functionsReached:
    - PKIX_RETURN
    - PKIX_List_Create
    - PKIX_PL_NSSCALLRV
    - PKIX_ComCertSelParams_GetCertificateValid
    - PKIX_DECREF
    - PKIX_PL_NSSCALL
    - PKIX_CHECK_ONLY_FATAL
    - PORT_NewArena
    - pkix_pl_NssContext_GetWincx
    - pkix_pl_Date_GetPRTime
    - CERT_LIST_END
    - PKIX_ENTER
    - PKIX_List_AppendItem
    - CERT_LIST_NEXT
    - CERT_LIST_HEAD
    - PORT_FreeArena
    - CERT_DestroyCertificate
    - PKIX_NULLCHECK_TWO
    - pkix_pl_Cert_CreateWithNSSCert
    - CERT_DestroyCertList
    - PKIX_CHECK
    - PKIX_ComCertSelParams_GetSubject
    - pkix_pl_X500Name_GetDERName
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_Pk11CertStore_CertQuery(\n        PKIX_ComCertSelParams
      *params,\n        PKIX_List **pSelected,\n        void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:322,1
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:326,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:327,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:333,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:334,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:341,1
    - Dst: PKIX_List_DeleteItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:342,1
    - Dst: PKIX_PL_CRL_ReleaseDerCrl
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:347,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:348,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:352,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:353,1
    - Dst: cert_CacheCRLByGeneralName
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:356,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:361,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:365,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:367,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 4
    argNames:
    - store
    - issuerName
    - crlList
    - plContext
    argTypes:
    - PKIX_CertStore*
    - PKIX_PL_X500Name*
    - PKIX_List*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 315
    functionDepth: 3
    functionLinenumber: 315
    functionLinenumberEnd: 368
    functionName: pkix_pl_Pk11CertStore_ImportCrl
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_DeleteItem
    - PKIX_PL_CRL_ReleaseDerCrl
    - PKIX_ENTER
    - CERT_GetDefaultCertDB
    - PKIX_DECREF
    - cert_CacheCRLByGeneralName
    - PKIX_NULLCHECK_TWO
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_Pk11CertStore_ImportCrl(\n        PKIX_CertStore
      *store,\n        PKIX_PL_X500Name *issuerName,\n        PKIX_List *crlList,\n
      \       void *plContext)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:386,1
    - Dst: PR_Now
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:395,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:399,1
    - Dst: PKIX_PL_Cert_GetCrlDp
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:400,1
    - Dst: cert_AcquireNamedCRLCache
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:404,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:406,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:411,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:417,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:420,1
    - Dst: cert_FindCRLByGeneralName
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:430,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:444,1
    - Dst: cert_ReleaseNamedCRLCache
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:449,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:451,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:453,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 45
    argCount: 4
    argNames:
    - pkixCert
    - time
    - pHasFetchedCrlInCache
    - plContext
    argTypes:
    - PKIX_PL_Cert*
    - PRTime
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 370
    functionDepth: 4
    functionLinenumber: 370
    functionLinenumberEnd: 454
    functionName: NameCacheHasFetchedCrlInfo
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - cert_AcquireNamedCRLCache
    - PKIX_RETURN
    - PKIX_PL_Cert_GetCrlDp
    - PR_Now
    - cert_ReleaseNamedCRLCache
    - PKIX_ENTER
    - PKIX_DECREF
    - cert_FindCRLByGeneralName
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nNameCacheHasFetchedCrlInfo(PKIX_PL_Cert *pkixCert,\n
      \                          PRTime time,\n                           PKIX_Boolean
      *pHasFetchedCrlInCache,\n                           void *plContext)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:493,1
    - Dst: PKIX_NULLCHECK_FOUR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:494,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:499,1
    - Dst: pkix_pl_Date_GetPRTime
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:500,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:503,1
    - Dst: pkix_pl_NssContext_GetWincx
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:504,1
    - Dst: cert_CheckCertRevocationStatus
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:511,1
    - Dst: NameCacheHasFetchedCrlInfo
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:527,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:544,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 8
    argNames:
    - store
    - pkixCert
    - pkixIssuer
    - date
    - crlDownloadDone
    - pReasonCode
    - pStatus
    - plContext
    argTypes:
    - PKIX_CertStore*
    - PKIX_PL_Cert*
    - PKIX_PL_Cert*
    - PKIX_PL_Date*
    - PKIX_Boolean
    - CERTCRLEntryReasonCode*
    - PKIX_RevocationStatus*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 474
    functionDepth: 5
    functionLinenumber: 474
    functionLinenumberEnd: 545
    functionName: pkix_pl_Pk11CertStore_CheckRevByCrl
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_pl_NssContext_GetWincx
    - PKIX_NULLCHECK_FOUR
    - NameCacheHasFetchedCrlInfo
    - pkix_pl_Date_GetPRTime
    - PKIX_ENTER
    - cert_CheckCertRevocationStatus
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_Pk11CertStore_CheckRevByCrl(\n        PKIX_CertStore
      *store,\n        PKIX_PL_Cert *pkixCert,\n        PKIX_PL_Cert *pkixIssuer,\n
      \       PKIX_PL_Date *date,\n        PKIX_Boolean  crlDownloadDone,\n        CERTCRLEntryReasonCode
      *pReasonCode,\n        PKIX_RevocationStatus *pStatus,\n        void *plContext)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:573,1
    - Dst: PKIX_NULLCHECK_FOUR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:574,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:578,1
    - Dst: PKIX_CertSelector_GetMatchCallback
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:578,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:582,1
    - Dst: PKIX_CertSelector_GetCommonCertSelectorParams
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:582,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:586,1
    - Dst: pkix_pl_Pk11CertStore_CertQuery
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:586,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:591,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:591,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:595,1
    - Dst: PKIX_CertStore_GetCertStoreCacheFlag
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:595,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:599,1
    - Dst: PKIX_CertStore_GetTrustCallback
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:599,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:603,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:603,1
    - Dst: PKIX_CHECK_ONLY_FATAL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:607,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:607,1
    - Dst: selectorCallback
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:619,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:621,1
    - Dst: PKIX_PL_Cert_SetCacheFlag
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:621,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:626,1
    - Dst: PKIX_PL_Cert_SetTrustCertStore
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:626,1
    - Dst: PKIX_CHECK_ONLY_FATAL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:631,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:631,1
    - Dst: PKIX_CHECK_FATAL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:637,1
    - Dst: pkix_VerifyNode_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:638,1
    - Dst: PKIX_CHECK_FATAL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:641,1
    - Dst: pkix_VerifyNode_AddToTree
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:642,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:646,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:648,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:649,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:660,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:661,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:662,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:663,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:664,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:665,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:667,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 48
    argCount: 6
    argNames:
    - store
    - selector
    - parentVerifyNode
    - pNBIOContext
    - pCertList
    - plContext
    argTypes:
    - PKIX_CertStore*
    - PKIX_CertSelector*
    - PKIX_VerifyNode*
    - void**
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 552
    functionDepth: 4
    functionLinenumber: 552
    functionLinenumberEnd: 668
    functionName: pkix_pl_Pk11CertStore_GetCert
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c
    functionUses: 0
    functionsReached:
    - PKIX_RETURN
    - PKIX_List_Create
    - PKIX_CertStore_GetTrustCallback
    - PKIX_NULLCHECK_FOUR
    - PKIX_CertSelector_GetCommonCertSelectorParams
    - selectorCallback
    - pkix_VerifyNode_AddToTree
    - PKIX_DECREF
    - PKIX_CHECK_ONLY_FATAL
    - PKIX_List_AppendItem
    - PKIX_ENTER
    - PKIX_PL_Cert_SetTrustCertStore
    - PKIX_List_GetLength
    - PKIX_CertSelector_GetMatchCallback
    - PKIX_PL_Cert_SetCacheFlag
    - PKIX_CHECK
    - pkix_VerifyNode_Create
    - PKIX_CertStore_GetCertStoreCacheFlag
    - PKIX_CHECK_FATAL
    - pkix_pl_Pk11CertStore_CertQuery
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_Pk11CertStore_GetCert(\n        PKIX_CertStore
      *store,\n        PKIX_CertSelector *selector,\n        PKIX_VerifyNode *parentVerifyNode,\n
      \       void **pNBIOContext,\n        PKIX_List **pCertList,\n        void *plContext)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:681,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:684,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:692,1
    - Dst: pkix_pl_Date_GetPRTime
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:692,1
    - Dst: cert_AcquireNamedCRLCache
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:694,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:697,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:703,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:704,1
    - Dst: cert_FindCRLByGeneralName
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:720,1
    - Dst: PKIX_CHECK_ONLY_FATAL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:741,1
    - Dst: pkix_List_Remove
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:742,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:748,1
    - Dst: cert_ReleaseNamedCRLCache
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:753,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:755,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:757,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 45
    argCount: 3
    argNames:
    - dpList
    - date
    - plContext
    argTypes:
    - PKIX_List*
    - PKIX_PL_Date*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 670
    functionDepth: 3
    functionLinenumber: 670
    functionLinenumberEnd: 758
    functionName: RemovePartitionedDpsFromList
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c
    functionUses: 0
    functionsReached:
    - pkix_List_Remove
    - PKIX_CHECK_ONLY_FATAL
    - PKIX_CHECK
    - PKIX_RETURN
    - cert_AcquireNamedCRLCache
    - cert_ReleaseNamedCRLCache
    - pkix_pl_Date_GetPRTime
    - PKIX_ENTER
    - PKIX_DECREF
    - cert_FindCRLByGeneralName
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nRemovePartitionedDpsFromList(PKIX_List *dpList, PKIX_PL_Date
      *date,\n                             void *plContext)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:783,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:789,1
    - Dst: PR_Malloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:802,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:806,1
    - Dst: CERT_ParseURL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:808,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:810,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:814,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:815,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:819,1
    - Dst: PR_SecondsToInterval
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:828,1
    - Dst: CERT_GetNextGeneralName
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:862,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:870,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:876,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:878,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:885,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:887,1
    - Dst: CERT_DecodeDERCrlWithFlags
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:891,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:896,1
    - Dst: pkix_pl_CRL_CreateWithSignedCRL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:897,1
    - Dst: PORT_Free
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:907,1
    - Dst: SEC_DestroyCrl
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:909,1
    - Dst: PORT_Free
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:915,1
    - Dst: PORT_Free
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:917,1
    - Dst: PORT_Free
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:919,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:922,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 83
    argCount: 4
    argNames:
    - dp
    - crl
    - hcv1
    - plContext
    argTypes:
    - pkix_pl_CrlDp*
    - PKIX_PL_CRL**
    - SEC_HttpClientFcnV1*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 763
    functionDepth: 2
    functionLinenumber: 763
    functionLinenumberEnd: 923
    functionName: DownloadCrl
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c
    functionUses: 0
    functionsReached:
    - PR_Malloc
    - PORT_Assert
    - SECITEM_DupItem
    - PORT_Memcpy
    - PR_SecondsToInterval
    - CERT_DecodeDERCrlWithFlags
    - CERT_GetNextGeneralName
    - PKIX_CHECK
    - PORT_Free
    - PKIX_RETURN
    - PORT_SetError
    - CERT_ParseURL
    - PKIX_ENTER
    - SEC_DestroyCrl
    - pkix_pl_CRL_CreateWithSignedCRL
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nDownloadCrl(pkix_pl_CrlDp *dp, PKIX_PL_CRL **crl,\n
      \           const SEC_HttpClientFcnV1 *hcv1, void *plContext)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:945,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:946,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:947,1
    - Dst: SEC_GetRegisteredHttpClient
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:949,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:955,1
    - Dst: RemovePartitionedDpsFromList
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:956,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:960,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:962,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:966,1
    - Dst: DownloadCrl
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:970,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:976,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:980,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:980,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:984,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:987,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:989,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:995,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:996,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:997,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:999,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 5
    argNames:
    - store
    - selector
    - pNBIOContext
    - pCrlList
    - plContext
    argTypes:
    - PKIX_CertStore*
    - PKIX_CRLSelector*
    - void**
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 929
    functionDepth: 4
    functionLinenumber: 929
    functionLinenumberEnd: 1000
    functionName: pkix_pl_Pk11CertStore_GetCRL
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_Create
    - PKIX_List_AppendItem
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - PKIX_DECREF
    - DownloadCrl
    - SEC_GetRegisteredHttpClient
    - RemovePartitionedDpsFromList
    - PKIX_NULLCHECK_TWO
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_Pk11CertStore_GetCRL(\n        PKIX_CertStore
      *store,\n        PKIX_CRLSelector *selector,\n        void **pNBIOContext,\n
      \       PKIX_List **pCrlList,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:1016,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:1017,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:1019,1
    - Dst: PKIX_CertStore_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:1019,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c:1038,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - pCertStore
    - plContext
    argTypes:
    - PKIX_CertStore**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 1009
    functionDepth: 2
    functionLinenumber: 1009
    functionLinenumberEnd: 1039
    functionName: PKIX_PL_Pk11CertStore_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c
    functionUses: 7
    functionsReached:
    - PKIX_RETURN
    - PKIX_CHECK
    - PKIX_ENTER
    - PKIX_CertStore_Create
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_Pk11CertStore_Create(\n        PKIX_CertStore
      **pCertStore,\n        void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:72,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:73,1
    - Dst: PKIX_PL_NSSCALL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:75,1
    - Dst: PL_strlen
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:100,1
    - Dst: PL_strlen
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:106,1
    - Dst: PKIX_PL_NSSCALLRV
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:110,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:113,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 6
    argNames:
    - arena
    - versionData
    - bindAPI
    - msgNum
    - pBindMsg
    - plContext
    argTypes:
    - PLArenaPool*
    - PKIX_Int32
    - LDAPBindAPI*
    - PKIX_UInt32
    - SECItem**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 120
    functionName: pkix_pl_LdapDefaultClient_MakeBind
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c
    functionUses: 0
    functionsReached:
    - PL_strlen
    - PKIX_RETURN
    - PKIX_PL_NSSCALLRV
    - PKIX_ENTER
    - PKIX_PL_NSSCALL
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_LdapDefaultClient_MakeBind(\n        PLArenaPool
      *arena,\n        PKIX_Int32 versionData,\n        LDAPBindAPI *bindAPI,\n        PKIX_UInt32
      msgNum,\n        SECItem **pBindMsg,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:165,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:166,1
    - Dst: PKIX_PL_NSSCALL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:168,1
    - Dst: PKIX_PL_NSSCALLRV
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:181,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:184,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 4
    argNames:
    - arena
    - msgNum
    - pUnbindMsg
    - plContext
    argTypes:
    - PLArenaPool*
    - PKIX_UInt32
    - SECItem**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 191
    functionName: pkix_pl_LdapDefaultClient_MakeUnbind
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c
    functionUses: 0
    functionsReached:
    - PKIX_RETURN
    - PKIX_PL_NSSCALLRV
    - PKIX_ENTER
    - PKIX_PL_NSSCALL
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_LdapDefaultClient_MakeUnbind(\n        PLArenaPool
      *arena,\n        PKIX_UInt32 msgNum,\n        SECItem **pUnbindMsg,\n        void
      *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:232,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:233,1
    - Dst: PKIX_PL_NSSCALL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:235,1
    - Dst: PKIX_PL_NSSCALLRV
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:248,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:251,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 4
    argNames:
    - arena
    - msgNum
    - pAbandonMsg
    - plContext
    argTypes:
    - PLArenaPool*
    - PKIX_UInt32
    - SECItem**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 258
    functionName: pkix_pl_LdapDefaultClient_MakeAbandon
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c
    functionUses: 0
    functionsReached:
    - PKIX_RETURN
    - PKIX_PL_NSSCALLRV
    - PKIX_ENTER
    - PKIX_PL_NSSCALL
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_LdapDefaultClient_MakeAbandon(\n        PLArenaPool
      *arena,\n        PKIX_UInt32 msgNum,\n        SECItem **pAbandonMsg,\n        void
      *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:301,1
    - Dst: PKIX_NULLCHECK_FOUR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:304,1
    - Dst: PKIX_PL_NSSCALL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:306,1
    - Dst: PKIX_PL_NSSCALLRV
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:311,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:320,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - arena
    - src
    - pBindResponse
    - pStatus
    - plContext
    argTypes:
    - PLArenaPool*
    - SECItem*
    - LDAPMessage*
    - SECStatus*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 321
    functionName: pkix_pl_LdapDefaultClient_DecodeBindResponse
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c
    functionUses: 0
    functionsReached:
    - PKIX_RETURN
    - PKIX_NULLCHECK_FOUR
    - PKIX_PL_NSSCALLRV
    - PKIX_ENTER
    - PKIX_PL_NSSCALL
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_LdapDefaultClient_DecodeBindResponse(\n        PLArenaPool
      *arena,\n        SECItem *src,\n        LDAPMessage *pBindResponse,\n        SECStatus
      *pStatus,\n        void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:359,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:362,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:367,1
    - Dst: pkix_pl_LdapDefaultClient_DecodeBindResponse
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:367,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:375,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:378,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:383,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - client
    - bufLen
    - plContext
    argTypes:
    - PKIX_PL_LdapDefaultClient*
    - PKIX_UInt32
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 346
    functionDepth: 2
    functionLinenumber: 346
    functionLinenumberEnd: 384
    functionName: pkix_pl_LdapDefaultClient_VerifyBindResponse
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_pl_LdapDefaultClient_DecodeBindResponse
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_LdapDefaultClient_VerifyBindResponse(\n        PKIX_PL_LdapDefaultClient
      *client,\n        PKIX_UInt32 bufLen,\n        void *plContext)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:430,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:433,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:435,1
    - Dst: pkix_pl_LdapResponse_IsComplete
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:435,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:440,1
    - Dst: pkix_pl_LdapResponse_Decode
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:440,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:445,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:448,1
    - Dst: pkix_pl_LdapResponse_GetMessageType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:448,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:455,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:455,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:460,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:460,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:466,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:480,1
    - Dst: pkix_pl_LdapResponse_GetResultCode
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:480,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:489,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:489,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:493,1
    - Dst: PKIX_List_SetImmutable
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:493,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:496,1
    - Dst: PKIX_PL_HashTable_Add
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:496,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:503,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:508,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:511,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:519,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 49
    argCount: 4
    argNames:
    - client
    - bytesProcessed
    - pKeepGoing
    - plContext
    argTypes:
    - PKIX_PL_LdapDefaultClient*
    - PKIX_UInt32
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 418
    functionDepth: 6
    functionLinenumber: 418
    functionLinenumberEnd: 520
    functionName: pkix_pl_LdapDefaultClient_RecvCheckComplete
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c
    functionUses: 0
    functionsReached:
    - PKIX_List_SetImmutable
    - PKIX_PL_HashTable_Add
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_Create
    - PKIX_List_AppendItem
    - PKIX_ENTER
    - pkix_pl_LdapResponse_GetResultCode
    - PKIX_DECREF
    - pkix_pl_LdapResponse_GetMessageType
    - pkix_pl_LdapResponse_IsComplete
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    - pkix_pl_LdapResponse_Decode
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_LdapDefaultClient_RecvCheckComplete(\n        PKIX_PL_LdapDefaultClient
      *client,\n        PKIX_UInt32 bytesProcessed,\n        PKIX_Boolean *pKeepGoing,\n
      \       void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:582,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:583,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:585,1
    - Dst: PKIX_PL_Object_Alloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:585,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:597,1
    - Dst: pkix_pl_Socket_GetPRFileDesc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:597,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:607,1
    - Dst: PKIX_PL_HashTable_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:607,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:613,1
    - Dst: pkix_pl_Socket_GetCallbackList
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:613,1
    - Dst: PKIX_INCREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:619,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:626,1
    - Dst: PKIX_ERROR_FATAL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:628,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:635,1
    - Dst: PKIX_PL_Malloc
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:635,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:652,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:655,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 40
    argCount: 4
    argNames:
    - socket
    - bindAPI
    - pClient
    - plContext
    argTypes:
    - PKIX_PL_Socket*
    - LDAPBindAPI*
    - PKIX_PL_LdapDefaultClient**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 569
    functionDepth: 5
    functionLinenumber: 569
    functionLinenumberEnd: 656
    functionName: pkix_pl_LdapDefaultClient_CreateHelper
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c
    functionUses: 0
    functionsReached:
    - PKIX_INCREF
    - PKIX_CHECK
    - PORT_NewArena
    - PKIX_RETURN
    - PKIX_PL_HashTable_Create
    - PKIX_PL_Object_Alloc
    - PKIX_ENTER
    - pkix_pl_Socket_GetPRFileDesc
    - PKIX_PL_Malloc
    - PKIX_DECREF
    - PKIX_ERROR_FATAL
    - pkix_pl_Socket_GetCallbackList
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_LdapDefaultClient_CreateHelper(\n        PKIX_PL_Socket
      *socket,\n        LDAPBindAPI *bindAPI,\n        PKIX_PL_LdapDefaultClient **pClient,\n
      \       void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:703,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:704,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:706,1
    - Dst: pkix_pl_Socket_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:706,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:710,1
    - Dst: pkix_pl_LdapDefaultClient_CreateHelper
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:710,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:729,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:732,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:734,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 5
    argNames:
    - sockaddr
    - timeout
    - bindAPI
    - pClient
    - plContext
    argTypes:
    - PRNetAddr*
    - PRIntervalTime
    - LDAPBindAPI*
    - PKIX_PL_LdapDefaultClient**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 691
    functionDepth: 6
    functionLinenumber: 691
    functionLinenumberEnd: 735
    functionName: PKIX_PL_LdapDefaultClient_Create
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_pl_Socket_Create
    - PKIX_ENTER
    - PKIX_DECREF
    - pkix_pl_LdapDefaultClient_CreateHelper
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_LdapDefaultClient_Create(\n        PRNetAddr
      *sockaddr,\n        PRIntervalTime timeout,\n        LDAPBindAPI *bindAPI,\n
      \       PKIX_PL_LdapDefaultClient **pClient,\n        void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:782,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:783,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:785,1
    - Dst: pkix_pl_Socket_CreateByName
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:785,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:789,1
    - Dst: pkix_pl_LdapDefaultClient_CreateHelper
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:789,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:808,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:811,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:813,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 5
    argNames:
    - hostname
    - timeout
    - bindAPI
    - pClient
    - plContext
    argTypes:
    - char*
    - PRIntervalTime
    - LDAPBindAPI*
    - PKIX_PL_LdapDefaultClient**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 770
    functionDepth: 6
    functionLinenumber: 770
    functionLinenumberEnd: 814
    functionName: PKIX_PL_LdapDefaultClient_CreateByName
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c
    functionUses: 5
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_pl_Socket_CreateByName
    - PKIX_ENTER
    - PKIX_DECREF
    - pkix_pl_LdapDefaultClient_CreateHelper
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_LdapDefaultClient_CreateByName(\n        char
      *hostname,\n        PRIntervalTime timeout,\n        LDAPBindAPI *bindAPI,\n
      \       PKIX_PL_LdapDefaultClient **pClient,\n        void *plContext)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:830,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:832,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:834,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:834,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:855,1
    - Dst: pkix_pl_LdapDefaultClient_MakeUnbind
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:855,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:864,1
    - Dst: PKIX_PL_Socket_Callback*::sendCallback
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:864,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:874,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:877,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:878,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:879,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:880,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:881,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:883,1
    - Dst: PKIX_PL_Free
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:883,1
    - Dst: PKIX_PL_NSSCALL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:886,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:893,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 38
    argCount: 2
    argNames:
    - object
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 820
    functionDepth: 3
    functionLinenumber: 820
    functionLinenumberEnd: 894
    functionName: pkix_pl_LdapDefaultClient_Destroy
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Free
    - PKIX_PL_Socket_Callback*::sendCallback
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - pkix_pl_LdapDefaultClient_MakeUnbind
    - PKIX_PL_NSSCALL
    - PKIX_ERROR
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_LdapDefaultClient_Destroy(\n        PKIX_PL_Object
      *object,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:909,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:911,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:913,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:913,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:919,1
    - Dst: PKIX_PL_Object_Hashcode
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:919,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:934,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - object
    - pHashcode
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 900
    functionDepth: 5
    functionLinenumber: 900
    functionLinenumberEnd: 935
    functionName: pkix_pl_LdapDefaultClient_Hashcode
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_PL_Object_Hashcode
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_LdapDefaultClient_Hashcode(\n        PKIX_PL_Object
      *object,\n        PKIX_UInt32 *pHashcode,\n        void *plContext)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:952,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:953,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:957,1
    - Dst: pkix_CheckTypes
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:957,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:972,1
    - Dst: PKIX_PL_Object_Equals
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:972,1
    - Dst: PKIX_EXACTLY_ONE_NULL
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:983,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:999,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 4
    argNames:
    - firstObject
    - secondObject
    - pResult
    - plContext
    argTypes:
    - PKIX_PL_Object*
    - PKIX_PL_Object*
    - PKIX_Int32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 941
    functionDepth: 5
    functionLinenumber: 941
    functionLinenumberEnd: 1000
    functionName: pkix_pl_LdapDefaultClient_Equals
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_PL_Object_Equals
    - PKIX_RETURN
    - PKIX_EXACTLY_ONE_NULL
    - PKIX_ENTER
    - pkix_CheckTypes
    - PKIX_NULLCHECK_THREE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_LdapDefaultClient_Equals(\n        PKIX_PL_Object
      *firstObject,\n        PKIX_PL_Object *secondObject,\n        PKIX_Int32 *pResult,\n
      \       void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1022,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1038,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 1016
    functionDepth: 1
    functionLinenumber: 1016
    functionLinenumberEnd: 1039
    functionName: pkix_pl_LdapDefaultClient_RegisterSelf
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c
    functionUses: 1
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: 'PKIX_Error *

      pkix_pl_LdapDefaultClient_RegisterSelf(void *plContext)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1067,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1070,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1074,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - context
    - pPollDesc
    - plContext
    argTypes:
    - PKIX_PL_LdapDefaultClient*
    - PRPollDesc**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 1061
    functionDepth: 1
    functionLinenumber: 1061
    functionLinenumberEnd: 1075
    functionName: pkix_pl_LdapDefaultClient_GetPollDesc
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PKIX_RETURN
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_LdapDefaultClient_GetPollDesc(\n        PKIX_PL_LdapDefaultClient
      *context,\n        PRPollDesc **pPollDesc,\n        void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1114,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1117,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1121,1
    - Dst: PKIX_PL_Socket_Callback*::connectcontinueCallback
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1121,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1133,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1136,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1136,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1143,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 3
    argNames:
    - client
    - pKeepGoing
    - plContext
    argTypes:
    - PKIX_PL_LdapDefaultClient*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1144
      start: 1104
    functionDepth: 5
    functionLinenumber: 1104
    functionLinenumberEnd: 1144
    functionName: pkix_pl_LdapDefaultClient_ConnectContinue
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_InvalidateCache
    - PKIX_PL_Socket_Callback*::connectcontinueCallback
    - PKIX_ENTER
    - PKIX_ERROR
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_LdapDefaultClient_ConnectContinue(\n        PKIX_PL_LdapDefaultClient
      *client,\n        PKIX_Boolean *pKeepGoing,\n        void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1182,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1183,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1187,1
    - Dst: pkix_pl_LdapDefaultClient_MakeBind
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1187,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1201,1
    - Dst: PKIX_PL_Socket_Callback*::sendCallback
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1201,1
    - Dst: PR_Now
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1209,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1219,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1219,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1224,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 3
    argNames:
    - client
    - pKeepGoing
    - plContext
    argTypes:
    - PKIX_PL_LdapDefaultClient*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1225
      start: 1172
    functionDepth: 5
    functionLinenumber: 1172
    functionLinenumberEnd: 1225
    functionName: pkix_pl_LdapDefaultClient_Bind
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Socket_Callback*::sendCallback
    - PR_Now
    - PKIX_PL_Object_InvalidateCache
    - PKIX_ENTER
    - pkix_pl_LdapDefaultClient_MakeBind
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_LdapDefaultClient_Bind(\n        PKIX_PL_LdapDefaultClient
      *client,\n        PKIX_Boolean *pKeepGoing,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1261,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1262,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1268,1
    - Dst: PKIX_PL_Socket_Callback*::pollCallback
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1268,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1281,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1281,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - client
    - pKeepGoing
    - plContext
    argTypes:
    - PKIX_PL_LdapDefaultClient*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1290
      start: 1253
    functionDepth: 5
    functionLinenumber: 1253
    functionLinenumberEnd: 1290
    functionName: pkix_pl_LdapDefaultClient_BindContinue
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c
    functionUses: 0
    functionsReached:
    - PKIX_PL_Socket_Callback*::pollCallback
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_InvalidateCache
    - PKIX_ENTER
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *pkix_pl_LdapDefaultClient_BindContinue(\n        PKIX_PL_LdapDefaultClient
      *client,\n        PKIX_Boolean *pKeepGoing,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1332,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1333,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1337,1
    - Dst: PKIX_PL_Socket_Callback*::recvCallback
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1337,1
    - Dst: PR_Now
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1345,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1348,1
    - Dst: pkix_pl_LdapDefaultClient_VerifyBindResponse
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1348,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1360,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1360,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1367,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 3
    argNames:
    - client
    - pKeepGoing
    - plContext
    argTypes:
    - PKIX_PL_LdapDefaultClient*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1368
      start: 1323
    functionDepth: 5
    functionLinenumber: 1323
    functionLinenumberEnd: 1368
    functionName: pkix_pl_LdapDefaultClient_BindResponse
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PR_Now
    - PKIX_PL_Object_InvalidateCache
    - PKIX_ENTER
    - PKIX_PL_Socket_Callback*::recvCallback
    - pkix_pl_LdapDefaultClient_VerifyBindResponse
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_LdapDefaultClient_BindResponse(\n        PKIX_PL_LdapDefaultClient
      *client,\n        PKIX_Boolean *pKeepGoing,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1405,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1408,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1412,1
    - Dst: PKIX_PL_Socket_Callback*::pollCallback
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1412,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1417,1
    - Dst: pkix_pl_LdapDefaultClient_VerifyBindResponse
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1417,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1422,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1422,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1432,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 3
    argNames:
    - client
    - pKeepGoing
    - plContext
    argTypes:
    - PKIX_PL_LdapDefaultClient*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1433
      start: 1396
    functionDepth: 5
    functionLinenumber: 1396
    functionLinenumberEnd: 1433
    functionName: pkix_pl_LdapDefaultClient_BindResponseContinue
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c
    functionUses: 0
    functionsReached:
    - PKIX_PL_Socket_Callback*::pollCallback
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_InvalidateCache
    - PKIX_ENTER
    - pkix_pl_LdapDefaultClient_VerifyBindResponse
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_LdapDefaultClient_BindResponseContinue(\n        PKIX_PL_LdapDefaultClient
      *client,\n        PKIX_Boolean *pKeepGoing,\n        void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1477,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1478,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1486,1
    - Dst: PKIX_PL_Socket_Callback*::sendCallback
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1486,1
    - Dst: PR_Now
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1494,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1513,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1513,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1520,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 4
    argNames:
    - client
    - pKeepGoing
    - pBytesTransferred
    - plContext
    argTypes:
    - PKIX_PL_LdapDefaultClient*
    - PKIX_Boolean*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1521
      start: 1467
    functionDepth: 5
    functionLinenumber: 1467
    functionLinenumberEnd: 1521
    functionName: pkix_pl_LdapDefaultClient_Send
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Socket_Callback*::sendCallback
    - PR_Now
    - PKIX_PL_Object_InvalidateCache
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_LdapDefaultClient_Send(\n        PKIX_PL_LdapDefaultClient
      *client,\n        PKIX_Boolean *pKeepGoing,\n        PKIX_UInt32 *pBytesTransferred,\n
      \       void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1565,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1566,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1572,1
    - Dst: PKIX_PL_Socket_Callback*::pollCallback
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1572,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1585,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1585,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1595,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 4
    argNames:
    - client
    - pKeepGoing
    - pBytesTransferred
    - plContext
    argTypes:
    - PKIX_PL_LdapDefaultClient*
    - PKIX_Boolean*
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1596
      start: 1555
    functionDepth: 5
    functionLinenumber: 1555
    functionLinenumberEnd: 1596
    functionName: pkix_pl_LdapDefaultClient_SendContinue
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c
    functionUses: 0
    functionsReached:
    - PKIX_PL_Socket_Callback*::pollCallback
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_InvalidateCache
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_LdapDefaultClient_SendContinue(\n        PKIX_PL_LdapDefaultClient
      *client,\n        PKIX_Boolean *pKeepGoing,\n        PKIX_UInt32 *pBytesTransferred,\n
      \       void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1633,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1634,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1648,1
    - Dst: pkix_pl_LdapResponse_GetCapacity
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1648,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1661,1
    - Dst: PKIX_PL_Socket_Callback*::recvCallback
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1661,1
    - Dst: PR_Now
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1670,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1681,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1681,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1686,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 3
    argNames:
    - client
    - pKeepGoing
    - plContext
    argTypes:
    - PKIX_PL_LdapDefaultClient*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1687
      start: 1623
    functionDepth: 5
    functionLinenumber: 1623
    functionLinenumberEnd: 1687
    functionName: pkix_pl_LdapDefaultClient_Recv
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PR_Now
    - PKIX_PL_Object_InvalidateCache
    - PKIX_ENTER
    - PKIX_PL_Socket_Callback*::recvCallback
    - PKIX_NULLCHECK_THREE
    - pkix_pl_LdapResponse_GetCapacity
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_LdapDefaultClient_Recv(\n        PKIX_PL_LdapDefaultClient
      *client,\n        PKIX_Boolean *pKeepGoing,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1724,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1725,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1729,1
    - Dst: PKIX_PL_Socket_Callback*::pollCallback
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1729,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1738,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1738,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1746,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 3
    argNames:
    - client
    - pKeepGoing
    - plContext
    argTypes:
    - PKIX_PL_LdapDefaultClient*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1747
      start: 1715
    functionDepth: 5
    functionLinenumber: 1715
    functionLinenumberEnd: 1747
    functionName: pkix_pl_LdapDefaultClient_RecvContinue
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c
    functionUses: 0
    functionsReached:
    - PKIX_PL_Socket_Callback*::pollCallback
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_InvalidateCache
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_LdapDefaultClient_RecvContinue(\n        PKIX_PL_LdapDefaultClient
      *client,\n        PKIX_Boolean *pKeepGoing,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1784,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1786,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1790,1
    - Dst: PKIX_PL_Socket_Callback*::pollCallback
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1790,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1798,1
    - Dst: PKIX_PL_Object_InvalidateCache
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1798,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1806,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - client
    - pKeepGoing
    - plContext
    argTypes:
    - PKIX_PL_LdapDefaultClient*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1807
      start: 1775
    functionDepth: 5
    functionLinenumber: 1775
    functionLinenumberEnd: 1807
    functionName: pkix_pl_LdapDefaultClient_AbandonContinue
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c
    functionUses: 0
    functionsReached:
    - PKIX_PL_Socket_Callback*::pollCallback
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_InvalidateCache
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_LdapDefaultClient_AbandonContinue(\n        PKIX_PL_LdapDefaultClient
      *client,\n        PKIX_Boolean *pKeepGoing,\n        void *plContext)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1854,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1855,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1884,1
    - Dst: PKIX_PL_Socket_Callback*::recvCallback
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1884,1
    - Dst: PR_Now
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1893,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1940,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1948,1
    - Dst: pkix_pl_LdapResponse_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1948,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1960,1
    - Dst: pkix_pl_LdapDefaultClient_RecvCheckComplete
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1960,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:1966,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 53
    argCount: 3
    argNames:
    - client
    - pKeepGoing
    - plContext
    argTypes:
    - PKIX_PL_LdapDefaultClient*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1967
      start: 1835
    functionDepth: 7
    functionLinenumber: 1835
    functionLinenumberEnd: 1967
    functionName: pkix_pl_LdapDefaultClient_RecvInitial
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_pl_LdapDefaultClient_RecvCheckComplete
    - PR_Now
    - PKIX_ENTER
    - PKIX_PL_Socket_Callback*::recvCallback
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    - pkix_pl_LdapResponse_Create
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_LdapDefaultClient_RecvInitial(\n        PKIX_PL_LdapDefaultClient
      *client,\n        PKIX_Boolean *pKeepGoing,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2004,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2006,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2008,1
    - Dst: pkix_pl_LdapResponse_Append
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2008,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2018,1
    - Dst: pkix_pl_LdapDefaultClient_RecvCheckComplete
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2018,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2024,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - client
    - pKeepGoing
    - plContext
    argTypes:
    - PKIX_PL_LdapDefaultClient*
    - PKIX_Boolean*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2025
      start: 1995
    functionDepth: 7
    functionLinenumber: 1995
    functionLinenumberEnd: 2025
    functionName: pkix_pl_LdapDefaultClient_RecvNonInitial
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_pl_LdapDefaultClient_RecvCheckComplete
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - pkix_pl_LdapResponse_Append
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_LdapDefaultClient_RecvNonInitial(\n        PKIX_PL_LdapDefaultClient
      *client,\n        PKIX_Boolean *pKeepGoing,\n        void *plContext)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2056,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2057,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2062,1
    - Dst: pkix_pl_LdapDefaultClient_ConnectContinue
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2063,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2068,1
    - Dst: pkix_pl_LdapDefaultClient_Bind
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2069,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2074,1
    - Dst: pkix_pl_LdapDefaultClient_BindContinue
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2075,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2080,1
    - Dst: pkix_pl_LdapDefaultClient_BindResponse
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2081,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2086,1
    - Dst: pkix_pl_LdapDefaultClient_BindResponseContinue
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2087,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2092,1
    - Dst: pkix_pl_LdapDefaultClient_Send
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2093,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2098,1
    - Dst: pkix_pl_LdapDefaultClient_SendContinue
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2099,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2104,1
    - Dst: pkix_pl_LdapDefaultClient_Recv
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2105,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2110,1
    - Dst: pkix_pl_LdapDefaultClient_RecvContinue
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2111,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2116,1
    - Dst: pkix_pl_LdapDefaultClient_RecvInitial
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2117,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2122,1
    - Dst: pkix_pl_LdapDefaultClient_RecvNonInitial
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2123,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2128,1
    - Dst: pkix_pl_LdapDefaultClient_AbandonContinue
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2129,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2134,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2140,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 2
    argNames:
    - client
    - plContext
    argTypes:
    - PKIX_PL_LdapDefaultClient*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2141
      start: 2048
    functionDepth: 8
    functionLinenumber: 2048
    functionLinenumberEnd: 2141
    functionName: pkix_pl_LdapDefaultClient_Dispatch
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c
    functionUses: 0
    functionsReached:
    - pkix_pl_LdapDefaultClient_BindResponse
    - PKIX_CHECK
    - pkix_pl_LdapDefaultClient_SendContinue
    - PKIX_RETURN
    - pkix_pl_LdapDefaultClient_AbandonContinue
    - pkix_pl_LdapDefaultClient_Send
    - pkix_pl_LdapDefaultClient_RecvContinue
    - PKIX_ENTER
    - pkix_pl_LdapDefaultClient_BindContinue
    - pkix_pl_LdapDefaultClient_Bind
    - pkix_pl_LdapDefaultClient_BindResponseContinue
    - pkix_pl_LdapDefaultClient_ConnectContinue
    - pkix_pl_LdapDefaultClient_RecvInitial
    - pkix_pl_LdapDefaultClient_RecvNonInitial
    - pkix_pl_LdapDefaultClient_Recv
    - PKIX_ERROR
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_LdapDefaultClient_Dispatch(\n        PKIX_PL_LdapDefaultClient
      *client,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2184,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2185,1
    - Dst: PKIX_PL_NSSCALLRV
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2193,1
    - Dst: PKIX_PL_NSSCALLRV
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2198,1
    - Dst: PL_strlen
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2218,1
    - Dst: PL_strlen
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2222,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2230,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 4
    argNames:
    - arena
    - nameComponents
    - pFilter
    - plContext
    argTypes:
    - PLArenaPool*
    - LDAPNameComponent**
    - LDAPFilter**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2232
      start: 2169
    functionDepth: 1
    functionLinenumber: 2169
    functionLinenumberEnd: 2232
    functionName: pkix_pl_LdapDefaultClient_MakeAndFilter
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c
    functionUses: 0
    functionsReached:
    - PL_strlen
    - PKIX_RETURN
    - PKIX_PL_NSSCALLRV
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_LdapDefaultClient_MakeAndFilter(\n        PLArenaPool
      *arena,\n        LDAPNameComponent **nameComponents,\n        LDAPFilter **pFilter,\n
      \       void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2273,1
    - Dst: PKIX_NULLCHECK_FOUR
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2276,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2278,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2278,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2286,1
    - Dst: pkix_pl_LdapDefaultClient_MakeAndFilter
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2286,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2290,1
    - Dst: pkix_pl_LdapRequest_Create
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2290,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2306,1
    - Dst: PKIX_PL_HashTable_Lookup
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2306,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2316,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2322,1
    - Dst: pkix_pl_LdapRequest_GetEncoded
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2322,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2329,1
    - Dst: pkix_pl_LdapDefaultClient_Dispatch
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2329,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2344,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2352,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 5
    argNames:
    - genericClient
    - requestParams
    - pPollDesc
    - pResponse
    - plContext
    argTypes:
    - PKIX_PL_LdapClient*
    - LDAPRequestParams*
    - void**
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2354
      start: 2260
    functionDepth: 9
    functionLinenumber: 2260
    functionLinenumberEnd: 2354
    functionName: pkix_pl_LdapDefaultClient_InitiateRequest
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c
    functionUses: 0
    functionsReached:
    - pkix_pl_LdapRequest_GetEncoded
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_pl_LdapDefaultClient_MakeAndFilter
    - PKIX_NULLCHECK_FOUR
    - PKIX_PL_HashTable_Lookup
    - PKIX_ENTER
    - pkix_CheckType
    - PKIX_DECREF
    - pkix_pl_LdapDefaultClient_Dispatch
    - pkix_pl_LdapRequest_Create
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_LdapDefaultClient_InitiateRequest(\n        PKIX_PL_LdapClient
      *genericClient,\n        LDAPRequestParams *requestParams,\n        void **pPollDesc,\n
      \       PKIX_List **pResponse,\n        void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2389,1
    - Dst: PKIX_NULLCHECK_THREE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2391,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2393,1
    - Dst: pkix_CheckType
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2393,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2401,1
    - Dst: pkix_pl_LdapDefaultClient_Dispatch
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2401,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2416,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2424,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 4
    argNames:
    - genericClient
    - pPollDesc
    - pResponse
    - plContext
    argTypes:
    - PKIX_PL_LdapClient*
    - void**
    - PKIX_List**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2426
      start: 2380
    functionDepth: 9
    functionLinenumber: 2380
    functionLinenumberEnd: 2426
    functionName: pkix_pl_LdapDefaultClient_ResumeRequest
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_NULLCHECK_THREE
    - pkix_CheckType
    - PKIX_DECREF
    - pkix_pl_LdapDefaultClient_Dispatch
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\npkix_pl_LdapDefaultClient_ResumeRequest(\n        PKIX_PL_LdapClient
      *genericClient,\n        void **pPollDesc,\n        PKIX_List **pResponse,\n
      \       void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2458,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2459,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2462,1
    - Dst: pkix_pl_LdapDefaultClient_MakeAbandon
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2462,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2470,1
    - Dst: PKIX_PL_Socket_Callback*::sendCallback
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2470,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2485,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2486,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2487,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2491,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c:2493,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 2
    argNames:
    - client
    - plContext
    argTypes:
    - PKIX_PL_LdapDefaultClient*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2494
      start: 2449
    functionDepth: 2
    functionLinenumber: 2449
    functionLinenumberEnd: 2494
    functionName: PKIX_PL_LdapDefaultClient_AbandonRequest
    functionSourceFile: /src/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - pkix_pl_LdapDefaultClient_MakeAbandon
    - PKIX_RETURN
    - PKIX_PL_Socket_Callback*::sendCallback
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nPKIX_PL_LdapDefaultClient_AbandonRequest(\n        PKIX_PL_LdapDefaultClient
      *client,\n        void *plContext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfypkix.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - enable
    argTypes:
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 70
    functionName: CERT_SetUsePKIXForValidation
    functionSourceFile: /src/nss/lib/certhigh/certvfypkix.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERT_SetUsePKIXForValidation(PRBool enable)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 94
    functionName: CERT_GetUsePKIXForValidation
    functionSourceFile: /src/nss/lib/certhigh/certvfypkix.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool CERT_GetUsePKIXForValidation()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/certhigh/certvfypkix.c:126,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/certhigh/certvfypkix.c:127,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/certhigh/certvfypkix.c:169,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 3
    argNames:
    - nssKeyUsage
    - pPkixKeyUsage
    - plContext
    argTypes:
    - PRUint32
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 170
    functionName: cert_NssKeyUsagesToPkix
    functionSourceFile: /src/nss/lib/certhigh/certvfypkix.c
    functionUses: 0
    functionsReached:
    - PKIX_ENTER
    - PKIX_RETURN
    - PKIX_NULLCHECK_ONE
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\ncert_NssKeyUsagesToPkix(\n    PRUint32 nssKeyUsage,\n
      \   PKIX_UInt32 *pPkixKeyUsage,\n    void *plContext)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/certhigh/certvfypkix.c:247,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/certhigh/certvfypkix.c:248,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/certhigh/certvfypkix.c:250,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/certhigh/certvfypkix.c:251,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/certhigh/certvfypkix.c:254,1
    - Dst: CERT_KeyUsageAndTypeForCertUsage
      Src: /src/nss/lib/certhigh/certvfypkix.c:266,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/certhigh/certvfypkix.c:272,1
    - Dst: PKIX_PL_OID_Create
      Src: /src/nss/lib/certhigh/certvfypkix.c:273,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/certhigh/certvfypkix.c:277,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/certhigh/certvfypkix.c:278,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/certhigh/certvfypkix.c:282,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/certhigh/certvfypkix.c:285,1
    - Dst: cert_NssKeyUsagesToPkix
      Src: /src/nss/lib/certhigh/certvfypkix.c:286,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/certhigh/certvfypkix.c:294,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/certhigh/certvfypkix.c:295,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/certhigh/certvfypkix.c:297,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 7
    argNames:
    - cert
    - requiredCertUsage
    - requiredKeyUsages
    - isCA
    - ppkixEKUList
    - ppkixKU
    - plContext
    argTypes:
    - CERTCertificate*
    - SECCertUsage
    - PRUint32
    - PRBool
    - PKIX_List**
    - PKIX_UInt32*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 232
    functionDepth: 6
    functionLinenumber: 232
    functionLinenumberEnd: 298
    functionName: cert_NssCertificateUsageToPkixKUAndEKU
    functionSourceFile: /src/nss/lib/certhigh/certvfypkix.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_Create
    - PR_ARRAY_SIZE
    - CERT_KeyUsageAndTypeForCertUsage
    - PKIX_List_AppendItem
    - PKIX_ENTER
    - PKIX_PL_OID_Create
    - PKIX_DECREF
    - cert_NssKeyUsagesToPkix
    - PKIX_NULLCHECK_TWO
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\ncert_NssCertificateUsageToPkixKUAndEKU(\n    CERTCertificate
      *cert,\n    SECCertUsage requiredCertUsage,\n    PRUint32 requiredKeyUsages,\n
      \   PRBool isCA,\n    PKIX_List **ppkixEKUList,\n    PKIX_UInt32 *ppkixKU,\n
      \   void *plContext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/certhigh/certvfypkix.c:338,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/certhigh/certvfypkix.c:339,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/certhigh/certvfypkix.c:341,1
    - Dst: pkix_pl_NssContext_SetCertUsage
      Src: /src/nss/lib/certhigh/certvfypkix.c:342,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/certhigh/certvfypkix.c:347,1
    - Dst: PKIX_ProcessingParams_GetTargetCertConstraints
      Src: /src/nss/lib/certhigh/certvfypkix.c:348,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/certhigh/certvfypkix.c:352,1
    - Dst: PKIX_CertSelector_GetCommonCertSelectorParams
      Src: /src/nss/lib/certhigh/certvfypkix.c:353,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/certhigh/certvfypkix.c:357,1
    - Dst: PKIX_ComCertSelParams_SetKeyUsage
      Src: /src/nss/lib/certhigh/certvfypkix.c:358,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/certhigh/certvfypkix.c:363,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/certhigh/certvfypkix.c:364,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/certhigh/certvfypkix.c:366,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 4
    argNames:
    - procParams
    - requiredCertUsage
    - requiredKeyUsages
    - plContext
    argTypes:
    - PKIX_ProcessingParams*
    - SECCertUsage
    - PRUint32
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 327
    functionDepth: 2
    functionLinenumber: 327
    functionLinenumberEnd: 367
    functionName: cert_ProcessingParamsSetKeyAndCertUsage
    functionSourceFile: /src/nss/lib/certhigh/certvfypkix.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - pkix_pl_NssContext_SetCertUsage
    - PKIX_CertSelector_GetCommonCertSelectorParams
    - PKIX_ENTER
    - PKIX_ProcessingParams_GetTargetCertConstraints
    - PKIX_DECREF
    - PKIX_NULLCHECK_TWO
    - PKIX_ComCertSelParams_SetKeyUsage
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\ncert_ProcessingParamsSetKeyAndCertUsage(\n    PKIX_ProcessingParams
      *procParams,\n    SECCertUsage requiredCertUsage,\n    PRUint32 requiredKeyUsages,\n
      \   void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/certhigh/certvfypkix.c:435,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/certhigh/certvfypkix.c:436,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/certhigh/certvfypkix.c:438,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/lib/certhigh/certvfypkix.c:439,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/certhigh/certvfypkix.c:445,1
    - Dst: pkix_pl_NssContext_SetCertSignatureCheck
      Src: /src/nss/lib/certhigh/certvfypkix.c:446,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/certhigh/certvfypkix.c:450,1
    - Dst: PKIX_ProcessingParams_Create
      Src: /src/nss/lib/certhigh/certvfypkix.c:451,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/certhigh/certvfypkix.c:454,1
    - Dst: PKIX_ComCertSelParams_Create
      Src: /src/nss/lib/certhigh/certvfypkix.c:455,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/certhigh/certvfypkix.c:458,1
    - Dst: PKIX_PL_Cert_CreateFromCERTCertificate
      Src: /src/nss/lib/certhigh/certvfypkix.c:459,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/certhigh/certvfypkix.c:462,1
    - Dst: PKIX_ComCertSelParams_SetCertificate
      Src: /src/nss/lib/certhigh/certvfypkix.c:463,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/certhigh/certvfypkix.c:467,1
    - Dst: PKIX_CertSelector_Create
      Src: /src/nss/lib/certhigh/certvfypkix.c:468,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/certhigh/certvfypkix.c:471,1
    - Dst: PKIX_CertSelector_SetCommonCertSelectorParams
      Src: /src/nss/lib/certhigh/certvfypkix.c:472,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/certhigh/certvfypkix.c:476,1
    - Dst: PKIX_ProcessingParams_SetTargetCertConstraints
      Src: /src/nss/lib/certhigh/certvfypkix.c:477,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/certhigh/certvfypkix.c:484,1
    - Dst: PKIX_ProcessingParams_SetQualifyTargetCert
      Src: /src/nss/lib/certhigh/certvfypkix.c:485,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/certhigh/certvfypkix.c:489,1
    - Dst: PKIX_PL_Pk11CertStore_Create
      Src: /src/nss/lib/certhigh/certvfypkix.c:490,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/certhigh/certvfypkix.c:493,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/certhigh/certvfypkix.c:494,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/certhigh/certvfypkix.c:497,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/certhigh/certvfypkix.c:498,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/certhigh/certvfypkix.c:502,1
    - Dst: PKIX_ProcessingParams_SetCertStores
      Src: /src/nss/lib/certhigh/certvfypkix.c:503,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/certhigh/certvfypkix.c:507,1
    - Dst: PKIX_PL_Date_CreateFromPRTime
      Src: /src/nss/lib/certhigh/certvfypkix.c:508,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/certhigh/certvfypkix.c:511,1
    - Dst: PKIX_ProcessingParams_SetDate
      Src: /src/nss/lib/certhigh/certvfypkix.c:512,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/certhigh/certvfypkix.c:515,1
    - Dst: PKIX_RevocationChecker_Create
      Src: /src/nss/lib/certhigh/certvfypkix.c:516,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/certhigh/certvfypkix.c:524,1
    - Dst: PKIX_ProcessingParams_SetRevocationChecker
      Src: /src/nss/lib/certhigh/certvfypkix.c:525,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/certhigh/certvfypkix.c:538,1
    - Dst: PKIX_RevocationChecker_CreateAndAddMethod
      Src: /src/nss/lib/certhigh/certvfypkix.c:539,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/certhigh/certvfypkix.c:545,1
    - Dst: PKIX_RevocationChecker_CreateAndAddMethod
      Src: /src/nss/lib/certhigh/certvfypkix.c:546,1
    - Dst: CERT_GetStatusConfig
      Src: /src/nss/lib/certhigh/certvfypkix.c:554,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/lib/certhigh/certvfypkix.c:554,1
    - Dst: ocsp_FetchingFailureIsVerificationFailure
      Src: /src/nss/lib/certhigh/certvfypkix.c:574,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/certhigh/certvfypkix.c:581,1
    - Dst: PKIX_RevocationChecker_CreateAndAddMethod
      Src: /src/nss/lib/certhigh/certvfypkix.c:582,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/certhigh/certvfypkix.c:588,1
    - Dst: PKIX_ProcessingParams_SetAnyPolicyInhibited
      Src: /src/nss/lib/certhigh/certvfypkix.c:589,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/certhigh/certvfypkix.c:593,1
    - Dst: PKIX_ProcessingParams_SetExplicitPolicyRequired
      Src: /src/nss/lib/certhigh/certvfypkix.c:594,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/certhigh/certvfypkix.c:598,1
    - Dst: PKIX_ProcessingParams_SetPolicyMappingInhibited
      Src: /src/nss/lib/certhigh/certvfypkix.c:599,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/certhigh/certvfypkix.c:607,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/certhigh/certvfypkix.c:608,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/certhigh/certvfypkix.c:609,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/certhigh/certvfypkix.c:610,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/certhigh/certvfypkix.c:611,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/certhigh/certvfypkix.c:612,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/certhigh/certvfypkix.c:613,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/certhigh/certvfypkix.c:614,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/certhigh/certvfypkix.c:615,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/certhigh/certvfypkix.c:617,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 53
    argCount: 8
    argNames:
    - cert
    - checkSig
    - time
    - wincx
    - useArena
    - disableOCSPRemoteFetching
    - pprocParams
    - pplContext
    argTypes:
    - CERTCertificate*
    - PRBool
    - PRTime
    - void*
    - PRBool
    - PRBool
    - PKIX_ProcessingParams**
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 411
    functionDepth: 4
    functionLinenumber: 411
    functionLinenumberEnd: 618
    functionName: cert_CreatePkixProcessingParams
    functionSourceFile: /src/nss/lib/certhigh/certvfypkix.c
    functionUses: 0
    functionsReached:
    - PKIX_RevocationChecker_CreateAndAddMethod
    - PKIX_RETURN
    - PKIX_List_Create
    - PKIX_ProcessingParams_SetExplicitPolicyRequired
    - PKIX_ProcessingParams_SetAnyPolicyInhibited
    - PKIX_DECREF
    - PKIX_ComCertSelParams_Create
    - PKIX_PL_NssContext_Create
    - pkix_pl_NssContext_SetCertSignatureCheck
    - PKIX_List_AppendItem
    - PKIX_ENTER
    - CERT_GetDefaultCertDB
    - PKIX_ProcessingParams_SetRevocationChecker
    - PKIX_ProcessingParams_SetPolicyMappingInhibited
    - ocsp_FetchingFailureIsVerificationFailure
    - PKIX_ComCertSelParams_SetCertificate
    - PKIX_ProcessingParams_SetDate
    - PKIX_ProcessingParams_SetTargetCertConstraints
    - PKIX_NULLCHECK_TWO
    - PKIX_PL_Pk11CertStore_Create
    - PKIX_RevocationChecker_Create
    - PKIX_CHECK
    - PKIX_CertSelector_SetCommonCertSelectorParams
    - PKIX_ProcessingParams_SetCertStores
    - PKIX_PL_Date_CreateFromPRTime
    - PKIX_PL_Cert_CreateFromCERTCertificate
    - CERT_GetStatusConfig
    - PKIX_CertSelector_Create
    - PKIX_ProcessingParams_Create
    - PKIX_ProcessingParams_SetQualifyTargetCert
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\ncert_CreatePkixProcessingParams(\n    CERTCertificate
      *cert,\n    PRBool checkSig,\n    PRTime time,\n    void *wincx,\n    PRBool
      useArena,\n    PRBool disableOCSPRemoteFetching,\n    PKIX_ProcessingParams
      **pprocParams,\n    void **pplContext)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/certhigh/certvfypkix.c:653,1
    - Dst: PKIX_NULLCHECK_ONE
      Src: /src/nss/lib/certhigh/certvfypkix.c:654,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/certhigh/certvfypkix.c:659,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/certhigh/certvfypkix.c:661,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/certhigh/certvfypkix.c:663,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/certhigh/certvfypkix.c:665,1
    - Dst: PR_INIT_CLIST
      Src: /src/nss/lib/certhigh/certvfypkix.c:667,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/certhigh/certvfypkix.c:671,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/certhigh/certvfypkix.c:672,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/certhigh/certvfypkix.c:678,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/certhigh/certvfypkix.c:679,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/certhigh/certvfypkix.c:682,1
    - Dst: PKIX_PL_Cert_GetCERTCertificate
      Src: /src/nss/lib/certhigh/certvfypkix.c:683,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/certhigh/certvfypkix.c:688,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/certhigh/certvfypkix.c:691,1
    - Dst: PR_INSERT_BEFORE
      Src: /src/nss/lib/certhigh/certvfypkix.c:694,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/certhigh/certvfypkix.c:699,1
    - Dst: CERT_DestroyCertList
      Src: /src/nss/lib/certhigh/certvfypkix.c:707,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certhigh/certvfypkix.c:709,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/certhigh/certvfypkix.c:712,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/certhigh/certvfypkix.c:715,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/certhigh/certvfypkix.c:717,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 47
    argCount: 3
    argNames:
    - pkixCertChain
    - pvalidChain
    - plContext
    argTypes:
    - PKIX_List*
    - CERTCertList**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 640
    functionDepth: 3
    functionLinenumber: 640
    functionLinenumberEnd: 718
    functionName: cert_PkixToNssCertsChain
    functionSourceFile: /src/nss/lib/certhigh/certvfypkix.c
    functionUses: 0
    functionsReached:
    - PKIX_PL_Cert_GetCERTCertificate
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - PKIX_CHECK
    - PORT_FreeArena
    - PR_INSERT_BEFORE
    - PKIX_List_GetLength
    - PKIX_RETURN
    - CERT_DestroyCertList
    - PKIX_ENTER
    - PKIX_DECREF
    - CERT_DestroyCertificate
    - PR_INIT_CLIST
    - PKIX_ERROR
    - PKIX_NULLCHECK_ONE
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\ncert_PkixToNssCertsChain(\n    PKIX_List *pkixCertChain,\n
      \   CERTCertList **pvalidChain,\n    void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/certhigh/certvfypkix.c:759,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/certhigh/certvfypkix.c:760,1
    - Dst: PR_Poll
      Src: /src/nss/lib/certhigh/certvfypkix.c:768,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/certhigh/certvfypkix.c:770,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/certhigh/certvfypkix.c:774,1
    - Dst: PKIX_BuildChain
      Src: /src/nss/lib/certhigh/certvfypkix.c:775,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/certhigh/certvfypkix.c:788,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 4
    argNames:
    - procParams
    - pResult
    - pVerifyNode
    - plContext
    argTypes:
    - PKIX_ProcessingParams*
    - PKIX_BuildResult**
    - PKIX_VerifyNode**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 747
    functionDepth: 8
    functionLinenumber: 747
    functionLinenumberEnd: 789
    functionName: cert_BuildAndValidateChain
    functionSourceFile: /src/nss/lib/certhigh/certvfypkix.c
    functionUses: 0
    functionsReached:
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_ENTER
    - PR_Poll
    - PKIX_NULLCHECK_TWO
    - PKIX_ERROR
    - PKIX_BuildChain
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\ncert_BuildAndValidateChain(\n    PKIX_ProcessingParams
      *procParams,\n    PKIX_BuildResult **pResult,\n    PKIX_VerifyNode **pVerifyNode,\n
      \   void *plContext)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/certhigh/certvfypkix.c:825,1
    - Dst: PKIX_NULLCHECK_TWO
      Src: /src/nss/lib/certhigh/certvfypkix.c:826,1
    - Dst: PR_LOG
      Src: /src/nss/lib/certhigh/certvfypkix.c:838,1
    - Dst: PR_LOG
      Src: /src/nss/lib/certhigh/certvfypkix.c:840,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/certvfypkix.c:846,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/certhigh/certvfypkix.c:853,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - error
    - pNssErr
    - plContext
    argTypes:
    - PKIX_Error*
    - SECErrorCodes*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 813
    functionDepth: 1
    functionLinenumber: 813
    functionLinenumberEnd: 854
    functionName: cert_PkixErrorToNssCode
    functionSourceFile: /src/nss/lib/certhigh/certvfypkix.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PKIX_RETURN
    - PKIX_ENTER
    - PKIX_NULLCHECK_TWO
    - PR_LOG
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\ncert_PkixErrorToNssCode(\n    PKIX_Error *error,\n    SECErrorCodes
      *pNssErr,\n    void *plContext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/certhigh/certvfypkix.c:886,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/certhigh/certvfypkix.c:899,1
    - Dst: cert_PkixErrorToNssCode
      Src: /src/nss/lib/certhigh/certvfypkix.c:900,1
    - Dst: cert_AddToVerifyLog
      Src: /src/nss/lib/certhigh/certvfypkix.c:904,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/certhigh/certvfypkix.c:907,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/certhigh/certvfypkix.c:912,1
    - Dst: PKIX_List_GetLength
      Src: /src/nss/lib/certhigh/certvfypkix.c:913,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/certhigh/certvfypkix.c:918,1
    - Dst: PKIX_List_GetItem
      Src: /src/nss/lib/certhigh/certvfypkix.c:919,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/certhigh/certvfypkix.c:923,1
    - Dst: cert_GetLogFromVerifyNode
      Src: /src/nss/lib/certhigh/certvfypkix.c:924,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/certhigh/certvfypkix.c:927,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/certhigh/certvfypkix.c:932,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/certhigh/certvfypkix.c:934,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - log
    - node
    - plContext
    argTypes:
    - CERTVerifyLog*
    - PKIX_VerifyNode*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 877
    functionDepth: 3
    functionLinenumber: 877
    functionLinenumberEnd: 935
    functionName: cert_GetLogFromVerifyNode
    functionSourceFile: /src/nss/lib/certhigh/certvfypkix.c
    functionUses: 1
    functionsReached:
    - cert_PkixErrorToNssCode
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_List_GetLength
    - cert_GetLogFromVerifyNode
    - cert_AddToVerifyLog
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_List_GetItem
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\ncert_GetLogFromVerifyNode(\n    CERTVerifyLog *log,\n
      \   PKIX_VerifyNode *node,\n    void *plContext)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ENTER
      Src: /src/nss/lib/certhigh/certvfypkix.c:994,1
    - Dst: PKIX_ERROR
      Src: /src/nss/lib/certhigh/certvfypkix.c:996,1
    - Dst: cert_GetLogFromVerifyNode
      Src: /src/nss/lib/certhigh/certvfypkix.c:1003,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/certhigh/certvfypkix.c:1005,1
    - Dst: cert_PkixErrorToNssCode
      Src: /src/nss/lib/certhigh/certvfypkix.c:1008,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfypkix.c:1009,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/certhigh/certvfypkix.c:1014,1
    - Dst: PKIX_BuildResult_GetCertChain
      Src: /src/nss/lib/certhigh/certvfypkix.c:1015,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/certhigh/certvfypkix.c:1019,1
    - Dst: cert_PkixToNssCertsChain
      Src: /src/nss/lib/certhigh/certvfypkix.c:1020,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/certhigh/certvfypkix.c:1025,1
    - Dst: PKIX_BuildResult_GetValidateResult
      Src: /src/nss/lib/certhigh/certvfypkix.c:1026,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/certhigh/certvfypkix.c:1030,1
    - Dst: PKIX_ValidateResult_GetTrustAnchor
      Src: /src/nss/lib/certhigh/certvfypkix.c:1031,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/certhigh/certvfypkix.c:1035,1
    - Dst: PKIX_TrustAnchor_GetTrustedCert
      Src: /src/nss/lib/certhigh/certvfypkix.c:1036,1
    - Dst: PKIX_CHECK
      Src: /src/nss/lib/certhigh/certvfypkix.c:1040,1
    - Dst: PKIX_PL_Cert_GetCERTCertificate
      Src: /src/nss/lib/certhigh/certvfypkix.c:1041,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/certvfypkix.c:1046,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/certhigh/certvfypkix.c:1058,1
    - Dst: CERT_DestroyCertList
      Src: /src/nss/lib/certhigh/certvfypkix.c:1061,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/certhigh/certvfypkix.c:1064,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/certhigh/certvfypkix.c:1065,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/certhigh/certvfypkix.c:1066,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/certhigh/certvfypkix.c:1067,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/certhigh/certvfypkix.c:1068,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/certhigh/certvfypkix.c:1069,1
    - Dst: PKIX_DECREF
      Src: /src/nss/lib/certhigh/certvfypkix.c:1070,1
    - Dst: PKIX_RETURN
      Src: /src/nss/lib/certhigh/certvfypkix.c:1072,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 51
    argCount: 7
    argNames:
    - buildResult
    - verifyNode
    - error
    - log
    - ptrustedRoot
    - pvalidChain
    - plContext
    argTypes:
    - PKIX_BuildResult*
    - PKIX_VerifyNode*
    - PKIX_Error*
    - CERTVerifyLog*
    - CERTCertificate**
    - CERTCertList**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 977
    functionDepth: 6
    functionLinenumber: 977
    functionLinenumberEnd: 1073
    functionName: cert_GetBuildResults
    functionSourceFile: /src/nss/lib/certhigh/certvfypkix.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - cert_PkixErrorToNssCode
    - PKIX_PL_Cert_GetCERTCertificate
    - PKIX_CHECK
    - PKIX_RETURN
    - PKIX_PL_Object_DecRef
    - cert_PkixToNssCertsChain
    - cert_GetLogFromVerifyNode
    - PKIX_BuildResult_GetValidateResult
    - PKIX_TrustAnchor_GetTrustedCert
    - PORT_SetError
    - PKIX_ENTER
    - PKIX_DECREF
    - PKIX_ValidateResult_GetTrustAnchor
    - PKIX_BuildResult_GetCertChain
    - CERT_DestroyCertificate
    - PKIX_ERROR
    - CERT_DestroyCertList
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\ncert_GetBuildResults(\n    PKIX_BuildResult *buildResult,\n
      \   PKIX_VerifyNode *verifyNode,\n    PKIX_Error *error,\n    CERTVerifyLog
      *log,\n    CERTCertificate **ptrustedRoot,\n    CERTCertList **pvalidChain,\n
      \   void *plContext)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfypkix.c:1122,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/certhigh/certvfypkix.c:1151,1
    - Dst: PR_ATOMIC_INCREMENT
      Src: /src/nss/lib/certhigh/certvfypkix.c:1156,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/certvfypkix.c:1157,1
    - Dst: pkix_pl_lifecycle_ObjectTableUpdate
      Src: /src/nss/lib/certhigh/certvfypkix.c:1170,1
    - Dst: cert_CreatePkixProcessingParams
      Src: /src/nss/lib/certhigh/certvfypkix.c:1176,1
    - Dst: cert_ProcessingParamsSetKeyAndCertUsage
      Src: /src/nss/lib/certhigh/certvfypkix.c:1185,1
    - Dst: cert_BuildAndValidateChain
      Src: /src/nss/lib/certhigh/certvfypkix.c:1192,1
    - Dst: cert_GetBuildResults
      Src: /src/nss/lib/certhigh/certvfypkix.c:1208,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/certhigh/certvfypkix.c:1211,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/certhigh/certvfypkix.c:1214,1
    - Dst: PKIX_PL_NssContext_Destroy
      Src: /src/nss/lib/certhigh/certvfypkix.c:1217,1
    - Dst: pkix_pl_lifecycle_ObjectLeakCheck
      Src: /src/nss/lib/certhigh/certvfypkix.c:1222,1
    - Dst: PR_LOG
      Src: /src/nss/lib/certhigh/certvfypkix.c:1225,1
    - Dst: PR_Free
      Src: /src/nss/lib/certhigh/certvfypkix.c:1229,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/certvfypkix.c:1232,1
    - Dst: PR_ATOMIC_DECREMENT
      Src: /src/nss/lib/certhigh/certvfypkix.c:1238,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 73
    argCount: 8
    argNames:
    - cert
    - checkSig
    - requiredUsage
    - time
    - wincx
    - log
    - pSigerror
    - pRevoked
    argTypes:
    - CERTCertificate*
    - PRBool
    - SECCertUsage
    - PRTime
    - void*
    - CERTVerifyLog*
    - PRBool*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1244
      start: 1110
    functionDepth: 9
    functionLinenumber: 1110
    functionLinenumberEnd: 1244
    functionName: cert_VerifyCertChainPkix
    functionSourceFile: /src/nss/lib/certhigh/certvfypkix.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - pkix_pl_lifecycle_ObjectTableUpdate
    - PR_ATOMIC_INCREMENT
    - PKIX_PL_Object_DecRef
    - PR_ATOMIC_DECREMENT
    - cert_BuildAndValidateChain
    - PR_GetEnvSecure
    - PKIX_PL_NssContext_Destroy
    - PR_Free
    - PORT_SetError
    - cert_CreatePkixProcessingParams
    - cert_ProcessingParamsSetKeyAndCertUsage
    - cert_GetBuildResults
    - PR_LOG
    - pkix_pl_lifecycle_ObjectLeakCheck
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus cert_VerifyCertChainPkix(\n    CERTCertificate *cert,\n
      \   PRBool checkSig,\n    SECCertUsage requiredUsage,\n    PRTime time,\n    void
      *wincx,\n    CERTVerifyLog *log,\n    PRBool *pSigerror,\n    PRBool *pRevoked)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_PL_Cert_CreateFromCERTCertificate
      Src: /src/nss/lib/certhigh/certvfypkix.c:1256,1
    - Dst: PKIX_CertSelector_Create
      Src: /src/nss/lib/certhigh/certvfypkix.c:1260,1
    - Dst: PKIX_ComCertSelParams_Create
      Src: /src/nss/lib/certhigh/certvfypkix.c:1264,1
    - Dst: PKIX_ComCertSelParams_SetCertificate
      Src: /src/nss/lib/certhigh/certvfypkix.c:1268,1
    - Dst: PKIX_CertSelector_SetCommonCertSelectorParams
      Src: /src/nss/lib/certhigh/certvfypkix.c:1273,1
    - Dst: PKIX_PL_Object_IncRef
      Src: /src/nss/lib/certhigh/certvfypkix.c:1277,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/certhigh/certvfypkix.c:1283,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/certhigh/certvfypkix.c:1286,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/certhigh/certvfypkix.c:1289,1
    - Dst: cert_PkixErrorToNssCode
      Src: /src/nss/lib/certhigh/certvfypkix.c:1294,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/certhigh/certvfypkix.c:1295,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfypkix.c:1296,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 2
    argNames:
    - target
    - plContext
    argTypes:
    - CERTCertificate*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1300
      start: 1247
    functionDepth: 6
    functionLinenumber: 1247
    functionLinenumberEnd: 1300
    functionName: cert_GetTargetCertConstraints
    functionSourceFile: /src/nss/lib/certhigh/certvfypkix.c
    functionUses: 0
    functionsReached:
    - cert_PkixErrorToNssCode
    - PKIX_PL_Object_DecRef
    - PKIX_ComCertSelParams_SetCertificate
    - PKIX_CertSelector_SetCommonCertSelectorParams
    - PORT_SetError
    - PKIX_PL_Cert_CreateFromCERTCertificate
    - PKIX_PL_Object_IncRef
    - PKIX_CertSelector_Create
    - PKIX_ComCertSelParams_Create
    linkageType: ''
    returnType: PKIX_CertSelector
    signature: 'PKIX_CertSelector *

      cert_GetTargetCertConstraints(CERTCertificate *target, void *plContext)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_PL_Pk11CertStore_Create
      Src: /src/nss/lib/certhigh/certvfypkix.c:1310,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/certhigh/certvfypkix.c:1314,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/certhigh/certvfypkix.c:1318,1
    - Dst: PKIX_PL_Object_IncRef
      Src: /src/nss/lib/certhigh/certvfypkix.c:1323,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/certhigh/certvfypkix.c:1329,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/certhigh/certvfypkix.c:1332,1
    - Dst: cert_PkixErrorToNssCode
      Src: /src/nss/lib/certhigh/certvfypkix.c:1337,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/certhigh/certvfypkix.c:1338,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfypkix.c:1339,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 1
    argNames:
    - plContext
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1343
      start: 1302
    functionDepth: 6
    functionLinenumber: 1302
    functionLinenumberEnd: 1343
    functionName: cert_GetCertStores
    functionSourceFile: /src/nss/lib/certhigh/certvfypkix.c
    functionUses: 0
    functionsReached:
    - PKIX_PL_Pk11CertStore_Create
    - cert_PkixErrorToNssCode
    - PKIX_PL_Object_DecRef
    - PKIX_List_Create
    - PORT_SetError
    - PKIX_List_AppendItem
    - PKIX_PL_Object_IncRef
    linkageType: ''
    returnType: PKIX_List
    signature: 'PKIX_List *

      cert_GetCertStores(void *plContext)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/certhigh/certvfypkix.c:1359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pkix_cert
    argTypes:
    - PKIX_PL_Cert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1360
      start: 1352
    functionDepth: 1
    functionLinenumber: 1352
    functionLinenumberEnd: 1360
    functionName: cert_NSSCertFromPKIXCert
    functionSourceFile: /src/nss/lib/certhigh/certvfypkix.c
    functionUses: 0
    functionsReached:
    - CERT_DupCertificate
    linkageType: ''
    returnType: CERTCertificate
    signature: 'CERTCertificate *

      cert_NSSCertFromPKIXCert(const PKIX_PL_Cert *pkix_cert)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/certhigh/certvfypkix.c:1371,1
    - Dst: PKIX_PL_OID_Create
      Src: /src/nss/lib/certhigh/certvfypkix.c:1377,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/certhigh/certvfypkix.c:1381,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/certhigh/certvfypkix.c:1386,1
    - Dst: PKIX_List_SetImmutable
      Src: /src/nss/lib/certhigh/certvfypkix.c:1390,1
    - Dst: PKIX_PL_Object_IncRef
      Src: /src/nss/lib/certhigh/certvfypkix.c:1394,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/certhigh/certvfypkix.c:1400,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/certhigh/certvfypkix.c:1403,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/certhigh/certvfypkix.c:1406,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 3
    argNames:
    - oids
    - oidCount
    - plContext
    argTypes:
    - SECOidTag*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1410
      start: 1362
    functionDepth: 6
    functionLinenumber: 1362
    functionLinenumberEnd: 1410
    functionName: cert_PKIXMakeOIDList
    functionSourceFile: /src/nss/lib/certhigh/certvfypkix.c
    functionUses: 0
    functionsReached:
    - PKIX_List_SetImmutable
    - PKIX_PL_Object_DecRef
    - PKIX_List_Create
    - PKIX_List_AppendItem
    - PKIX_PL_OID_Create
    - PKIX_PL_Object_IncRef
    linkageType: ''
    returnType: PKIX_List
    signature: 'PKIX_List *

      cert_PKIXMakeOIDList(const SECOidTag *oids, int oidCount, void *plContext)'
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - params
    - t
    argTypes:
    - CERTValOutParam*
    - CERTValParamOutType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1425
      start: 1412
    functionDepth: 0
    functionLinenumber: 1412
    functionLinenumberEnd: 1425
    functionName: cert_pkix_FindOutputParam
    functionSourceFile: /src/nss/lib/certhigh/certvfypkix.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CERTValOutParam
    signature: 'CERTValOutParam *

      cert_pkix_FindOutputParam(CERTValOutParam *params, const CERTValParamOutType
      t)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_RevocationChecker_CreateAndAddMethod
      Src: /src/nss/lib/certhigh/certvfypkix.c:1458,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 8
    argNames:
    - revChecker
    - procParams
    - revTest
    - certRevMethod
    - pkixRevMethod
    - verifyResponderUsages
    - isLeafTest
    - plContext
    argTypes:
    - PKIX_RevocationChecker*
    - PKIX_ProcessingParams*
    - CERTRevocationTests*
    - CERTRevocationMethodIndex
    - PKIX_RevocationMethodType
    - PKIX_Boolean
    - PKIX_Boolean
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1463
      start: 1427
    functionDepth: 3
    functionLinenumber: 1427
    functionLinenumberEnd: 1463
    functionName: setRevocationMethod
    functionSourceFile: /src/nss/lib/certhigh/certvfypkix.c
    functionUses: 0
    functionsReached:
    - PKIX_RevocationChecker_CreateAndAddMethod
    linkageType: ''
    returnType: PKIX_Error
    signature: "PKIX_Error *\nsetRevocationMethod(PKIX_RevocationChecker *revChecker,\n
      \                   PKIX_ProcessingParams *procParams,\n                    const
      CERTRevocationTests *revTest,\n                    CERTRevocationMethodIndex
      certRevMethod,\n                    PKIX_RevocationMethodType pkixRevMethod,\n
      \                   PKIX_Boolean verifyResponderUsages,\n                    PKIX_Boolean
      isLeafTest,\n                    void *plContext)"
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: PKIX_ProcessingParams_SetExplicitPolicyRequired
      Src: /src/nss/lib/certhigh/certvfypkix.c:1490,1
    - Dst: cert_PKIXMakeOIDList
      Src: /src/nss/lib/certhigh/certvfypkix.c:1497,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfypkix.c:1501,1
    - Dst: PKIX_ProcessingParams_SetInitialPolicies
      Src: /src/nss/lib/certhigh/certvfypkix.c:1505,1
    - Dst: PKIX_PL_Date_Create_UTCTime
      Src: /src/nss/lib/certhigh/certvfypkix.c:1511,1
    - Dst: pkix_pl_Date_CreateFromPRTime
      Src: /src/nss/lib/certhigh/certvfypkix.c:1517,1
    - Dst: PKIX_ProcessingParams_SetDate
      Src: /src/nss/lib/certhigh/certvfypkix.c:1525,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfypkix.c:1538,1
    - Dst: PKIX_RevocationChecker_Create
      Src: /src/nss/lib/certhigh/certvfypkix.c:1549,1
    - Dst: PKIX_ProcessingParams_SetRevocationChecker
      Src: /src/nss/lib/certhigh/certvfypkix.c:1556,1
    - Dst: setRevocationMethod
      Src: /src/nss/lib/certhigh/certvfypkix.c:1567,1
    - Dst: setRevocationMethod
      Src: /src/nss/lib/certhigh/certvfypkix.c:1577,1
    - Dst: setRevocationMethod
      Src: /src/nss/lib/certhigh/certvfypkix.c:1587,1
    - Dst: setRevocationMethod
      Src: /src/nss/lib/certhigh/certvfypkix.c:1597,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfypkix.c:1612,1
    - Dst: PKIX_List_Create
      Src: /src/nss/lib/certhigh/certvfypkix.c:1616,1
    - Dst: CERT_LIST_HEAD
      Src: /src/nss/lib/certhigh/certvfypkix.c:1620,1
    - Dst: CERT_LIST_END
      Src: /src/nss/lib/certhigh/certvfypkix.c:1620,1
    - Dst: CERT_LIST_NEXT
      Src: /src/nss/lib/certhigh/certvfypkix.c:1621,1
    - Dst: PKIX_PL_Cert_CreateFromCERTCertificate
      Src: /src/nss/lib/certhigh/certvfypkix.c:1622,1
    - Dst: PKIX_TrustAnchor_CreateWithCert
      Src: /src/nss/lib/certhigh/certvfypkix.c:1627,1
    - Dst: PKIX_List_AppendItem
      Src: /src/nss/lib/certhigh/certvfypkix.c:1632,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/certhigh/certvfypkix.c:1637,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/certhigh/certvfypkix.c:1639,1
    - Dst: PKIX_ProcessingParams_SetTrustAnchors
      Src: /src/nss/lib/certhigh/certvfypkix.c:1643,1
    - Dst: PKIX_ProcessingParams_SetUseAIAForCertFetching
      Src: /src/nss/lib/certhigh/certvfypkix.c:1649,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfypkix.c:1659,1
    - Dst: PKIX_ProcessingParams_SetUseOnlyTrustAnchors
      Src: /src/nss/lib/certhigh/certvfypkix.c:1669,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfypkix.c:1676,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/certhigh/certvfypkix.c:1682,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/certhigh/certvfypkix.c:1685,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/certhigh/certvfypkix.c:1688,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/certhigh/certvfypkix.c:1691,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/certhigh/certvfypkix.c:1694,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/certhigh/certvfypkix.c:1697,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/certhigh/certvfypkix.c:1700,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfypkix.c:1701,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 141
    argCount: 3
    argNames:
    - procParams
    - param
    - plContext
    argTypes:
    - PKIX_ProcessingParams*
    - CERTValInParam*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1706
      start: 1465
    functionDepth: 7
    functionLinenumber: 1465
    functionLinenumberEnd: 1706
    functionName: cert_pkixSetParam
    functionSourceFile: /src/nss/lib/certhigh/certvfypkix.c
    functionUses: 0
    functionsReached:
    - cert_PKIXMakeOIDList
    - PKIX_List_Create
    - PKIX_ProcessingParams_SetExplicitPolicyRequired
    - PKIX_ProcessingParams_SetUseOnlyTrustAnchors
    - PKIX_PL_Date_Create_UTCTime
    - PORT_SetError
    - CERT_LIST_END
    - PKIX_List_AppendItem
    - PKIX_ProcessingParams_SetRevocationChecker
    - CERT_LIST_NEXT
    - CERT_LIST_HEAD
    - setRevocationMethod
    - PKIX_ProcessingParams_SetDate
    - PKIX_ProcessingParams_SetInitialPolicies
    - PKIX_ProcessingParams_SetUseAIAForCertFetching
    - PKIX_RevocationChecker_Create
    - PKIX_PL_Object_DecRef
    - PKIX_ProcessingParams_SetTrustAnchors
    - PKIX_TrustAnchor_CreateWithCert
    - PKIX_PL_Cert_CreateFromCERTCertificate
    - pkix_pl_Date_CreateFromPRTime
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus cert_pkixSetParam(PKIX_ProcessingParams *procParams,\n                  const
      CERTValInParam *param, void *plContext)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/certhigh/certvfypkix.c:1720,1
    - Dst: CERT_DestroyCertList
      Src: /src/nss/lib/certhigh/certvfypkix.c:1727,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - params
    argTypes:
    - CERTValOutParam*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1736
      start: 1708
    functionDepth: 1
    functionLinenumber: 1708
    functionLinenumberEnd: 1736
    functionName: cert_pkixDestroyValOutParam
    functionSourceFile: /src/nss/lib/certhigh/certvfypkix.c
    functionUses: 0
    functionsReached:
    - CERT_DestroyCertList
    - CERT_DestroyCertificate
    linkageType: ''
    returnType: void
    signature: void cert_pkixDestroyValOutParam(CERTValOutParam *params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfypkix.c:1781,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1786
      start: 1777
    functionDepth: 0
    functionLinenumber: 1777
    functionLinenumberEnd: 1786
    functionName: CERT_GetClassicOCSPEnabledSoftFailurePolicy
    functionSourceFile: /src/nss/lib/certhigh/certvfypkix.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: CERTRevocationFlags
    signature: 'CERTRevocationFlags *

      CERT_GetClassicOCSPEnabledSoftFailurePolicy()'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfypkix.c:1833,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1838
      start: 1829
    functionDepth: 0
    functionLinenumber: 1829
    functionLinenumberEnd: 1838
    functionName: CERT_GetClassicOCSPEnabledHardFailurePolicy
    functionSourceFile: /src/nss/lib/certhigh/certvfypkix.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: CERTRevocationFlags
    signature: 'CERTRevocationFlags *

      CERT_GetClassicOCSPEnabledHardFailurePolicy()'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfypkix.c:1879,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1884
      start: 1875
    functionDepth: 0
    functionLinenumber: 1875
    functionLinenumberEnd: 1884
    functionName: CERT_GetClassicOCSPDisabledPolicy
    functionSourceFile: /src/nss/lib/certhigh/certvfypkix.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: CERTRevocationFlags
    signature: 'CERTRevocationFlags *

      CERT_GetClassicOCSPDisabledPolicy()'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfypkix.c:1925,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1930
      start: 1921
    functionDepth: 0
    functionLinenumber: 1921
    functionLinenumberEnd: 1930
    functionName: CERT_GetPKIXVerifyNistRevocationPolicy
    functionSourceFile: /src/nss/lib/certhigh/certvfypkix.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: CERTRevocationFlags
    signature: 'CERTRevocationFlags *

      CERT_GetPKIXVerifyNistRevocationPolicy()'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfypkix.c:1938,1
    - Dst: PORT_New
      Src: /src/nss/lib/certhigh/certvfypkix.c:1943,1
    - Dst: PORT_NewArray
      Src: /src/nss/lib/certhigh/certvfypkix.c:1949,1
    - Dst: PORT_NewArray
      Src: /src/nss/lib/certhigh/certvfypkix.c:1953,1
    - Dst: PORT_NewArray
      Src: /src/nss/lib/certhigh/certvfypkix.c:1957,1
    - Dst: PORT_NewArray
      Src: /src/nss/lib/certhigh/certvfypkix.c:1961,1
    - Dst: CERT_DestroyCERTRevocationFlags
      Src: /src/nss/lib/certhigh/certvfypkix.c:1967,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - number_leaf_methods
    - number_leaf_pref_methods
    - number_chain_methods
    - number_chain_pref_methods
    argTypes:
    - PRUint32
    - PRUint32
    - PRUint32
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1973
      start: 1932
    functionDepth: 1
    functionLinenumber: 1932
    functionLinenumberEnd: 1973
    functionName: CERT_AllocCERTRevocationFlags
    functionSourceFile: /src/nss/lib/certhigh/certvfypkix.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PORT_NewArray
    - CERT_DestroyCERTRevocationFlags
    - PORT_New
    linkageType: ''
    returnType: CERTRevocationFlags
    signature: "CERTRevocationFlags *\nCERT_AllocCERTRevocationFlags(\n    PRUint32
      number_leaf_methods, PRUint32 number_leaf_pref_methods,\n    PRUint32 number_chain_methods,
      PRUint32 number_chain_pref_methods)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfypkix.c:1979,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certhigh/certvfypkix.c:1986,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certhigh/certvfypkix.c:1989,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certhigh/certvfypkix.c:1992,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certhigh/certvfypkix.c:1995,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certhigh/certvfypkix.c:1997,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - flags
    argTypes:
    - CERTRevocationFlags*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1999
      start: 1975
    functionDepth: 0
    functionLinenumber: 1975
    functionLinenumberEnd: 1999
    functionName: CERT_DestroyCERTRevocationFlags
    functionSourceFile: /src/nss/lib/certhigh/certvfypkix.c
    functionUses: 1
    functionsReached:
    - PORT_Free
    - PORT_SetError
    linkageType: ''
    returnType: void
    signature: void CERT_DestroyCERTRevocationFlags(CERTRevocationFlags *flags)
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfypkix.c:2035,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/certhigh/certvfypkix.c:2074,1
    - Dst: PR_ATOMIC_INCREMENT
      Src: /src/nss/lib/certhigh/certvfypkix.c:2079,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/certvfypkix.c:2080,1
    - Dst: pkix_pl_lifecycle_ObjectTableUpdate
      Src: /src/nss/lib/certhigh/certvfypkix.c:2102,1
    - Dst: PKIX_PL_NssContext_Create
      Src: /src/nss/lib/certhigh/certvfypkix.c:2107,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfypkix.c:2110,1
    - Dst: pkix_pl_NssContext_SetCertUsage
      Src: /src/nss/lib/certhigh/certvfypkix.c:2114,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfypkix.c:2116,1
    - Dst: PKIX_ProcessingParams_Create
      Src: /src/nss/lib/certhigh/certvfypkix.c:2120,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfypkix.c:2122,1
    - Dst: cert_GetCertStores
      Src: /src/nss/lib/certhigh/certvfypkix.c:2128,1
    - Dst: PKIX_ProcessingParams_SetCertStores
      Src: /src/nss/lib/certhigh/certvfypkix.c:2132,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfypkix.c:2142,1
    - Dst: cert_pkixSetParam
      Src: /src/nss/lib/certhigh/certvfypkix.c:2145,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfypkix.c:2148,1
    - Dst: cert_GetTargetCertConstraints
      Src: /src/nss/lib/certhigh/certvfypkix.c:2155,1
    - Dst: PKIX_ProcessingParams_SetTargetCertConstraints
      Src: /src/nss/lib/certhigh/certvfypkix.c:2159,1
    - Dst: PKIX_BuildChain
      Src: /src/nss/lib/certhigh/certvfypkix.c:2164,1
    - Dst: PKIX_BuildResult_GetValidateResult
      Src: /src/nss/lib/certhigh/certvfypkix.c:2171,1
    - Dst: PKIX_ValidateResult_GetTrustAnchor
      Src: /src/nss/lib/certhigh/certvfypkix.c:2177,1
    - Dst: PKIX_TrustAnchor_GetTrustedCert
      Src: /src/nss/lib/certhigh/certvfypkix.c:2184,1
    - Dst: cert_pkix_FindOutputParam
      Src: /src/nss/lib/certhigh/certvfypkix.c:2198,1
    - Dst: cert_NSSCertFromPKIXCert
      Src: /src/nss/lib/certhigh/certvfypkix.c:2202,1
    - Dst: PKIX_BuildResult_GetCertChain
      Src: /src/nss/lib/certhigh/certvfypkix.c:2208,1
    - Dst: cert_pkix_FindOutputParam
      Src: /src/nss/lib/certhigh/certvfypkix.c:2214,1
    - Dst: cert_PkixToNssCertsChain
      Src: /src/nss/lib/certhigh/certvfypkix.c:2216,1
    - Dst: cert_pkix_FindOutputParam
      Src: /src/nss/lib/certhigh/certvfypkix.c:2228,1
    - Dst: cert_GetLogFromVerifyNode
      Src: /src/nss/lib/certhigh/certvfypkix.c:2234,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/certhigh/certvfypkix.c:2237,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/certhigh/certvfypkix.c:2240,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/certhigh/certvfypkix.c:2244,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/certhigh/certvfypkix.c:2247,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/certhigh/certvfypkix.c:2250,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/certhigh/certvfypkix.c:2253,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/certhigh/certvfypkix.c:2256,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/certhigh/certvfypkix.c:2259,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/certhigh/certvfypkix.c:2262,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/certhigh/certvfypkix.c:2265,1
    - Dst: cert_PkixErrorToNssCode
      Src: /src/nss/lib/certhigh/certvfypkix.c:2270,1
    - Dst: cert_pkixDestroyValOutParam
      Src: /src/nss/lib/certhigh/certvfypkix.c:2271,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfypkix.c:2272,1
    - Dst: PKIX_PL_Object_DecRef
      Src: /src/nss/lib/certhigh/certvfypkix.c:2273,1
    - Dst: PKIX_PL_NssContext_Destroy
      Src: /src/nss/lib/certhigh/certvfypkix.c:2276,1
    - Dst: pkix_pl_lifecycle_ObjectLeakCheck
      Src: /src/nss/lib/certhigh/certvfypkix.c:2280,1
    - Dst: PR_LOG
      Src: /src/nss/lib/certhigh/certvfypkix.c:2283,1
    - Dst: PR_Free
      Src: /src/nss/lib/certhigh/certvfypkix.c:2287,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/certvfypkix.c:2290,1
    - Dst: PR_ATOMIC_DECREMENT
      Src: /src/nss/lib/certhigh/certvfypkix.c:2296,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 184
    argCount: 5
    argNames:
    - cert
    - usages
    - paramsIn
    - paramsOut
    - wincx
    argTypes:
    - CERTCertificate*
    - SECCertificateUsage
    - CERTValInParam*
    - CERTValOutParam*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2302
      start: 2026
    functionDepth: 8
    functionLinenumber: 2026
    functionLinenumberEnd: 2302
    functionName: CERT_PKIXVerifyCert
    functionSourceFile: /src/nss/lib/certhigh/certvfypkix.c
    functionUses: 2
    functionsReached:
    - cert_pkixSetParam
    - PR_ATOMIC_DECREMENT
    - PR_GetEnvSecure
    - PR_Free
    - PKIX_BuildChain
    - PKIX_PL_NssContext_Create
    - pkix_pl_lifecycle_ObjectTableUpdate
    - cert_PkixErrorToNssCode
    - cert_pkixDestroyValOutParam
    - PR_ATOMIC_INCREMENT
    - cert_pkix_FindOutputParam
    - cert_NSSCertFromPKIXCert
    - cert_GetTargetCertConstraints
    - PKIX_PL_NssContext_Destroy
    - PORT_SetError
    - PKIX_BuildResult_GetCertChain
    - PR_LOG
    - pkix_pl_lifecycle_ObjectLeakCheck
    - PORT_Assert
    - pkix_pl_NssContext_SetCertUsage
    - PKIX_PL_Object_DecRef
    - cert_PkixToNssCertsChain
    - cert_GetLogFromVerifyNode
    - PKIX_ProcessingParams_SetCertStores
    - PKIX_BuildResult_GetValidateResult
    - PKIX_TrustAnchor_GetTrustedCert
    - PKIX_ValidateResult_GetTrustAnchor
    - cert_GetCertStores
    - PKIX_ProcessingParams_Create
    - PKIX_ProcessingParams_SetTargetCertConstraints
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_PKIXVerifyCert(\n    CERTCertificate *cert,\n    SECCertificateUsage
      usages,\n    CERTValInParam *paramsIn,\n    CERTValOutParam *paramsOut,\n    void
      *wincx)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/certhigh/certreq.c:57,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/certhigh/certreq.c:63,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certhigh/certreq.c:66,1
    - Dst: DER_SetUInteger
      Src: /src/nss/lib/certhigh/certreq.c:77,1
    - Dst: DER_SetUInteger
      Src: /src/nss/lib/certhigh/certreq.c:81,1
    - Dst: CERT_CopyName
      Src: /src/nss/lib/certhigh/certreq.c:85,1
    - Dst: CERT_CopyValidity
      Src: /src/nss/lib/certhigh/certreq.c:89,1
    - Dst: CERT_CopyName
      Src: /src/nss/lib/certhigh/certreq.c:93,1
    - Dst: SECKEY_CopySubjectPublicKeyInfo
      Src: /src/nss/lib/certhigh/certreq.c:96,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/certhigh/certreq.c:104,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 4
    argNames:
    - serialNumber
    - issuer
    - validity
    - req
    argTypes:
    - unsigned long
    - CERTName*
    - CERTValidity*
    - CERTCertificateRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 106
    functionName: CERT_CreateCertificate
    functionSourceFile: /src/nss/lib/certhigh/certreq.c
    functionUses: 3
    functionsReached:
    - CERT_CopyValidity
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - PORT_FreeArena
    - SECKEY_CopySubjectPublicKeyInfo
    - CERT_CopyName
    - CERT_DestroyCertificate
    - DER_SetUInteger
    linkageType: ''
    returnType: CERTCertificate
    signature: "CERTCertificate *\nCERT_CreateCertificate(unsigned long serialNumber,\n
      \                      CERTName *issuer,\n                       CERTValidity
      *validity,\n                       CERTCertificateRequest *req)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/certhigh/certreq.c:139,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/certhigh/certreq.c:144,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certhigh/certreq.c:146,1
    - Dst: DER_SetUInteger
      Src: /src/nss/lib/certhigh/certreq.c:153,1
    - Dst: CERT_CopyName
      Src: /src/nss/lib/certhigh/certreq.c:158,1
    - Dst: SECKEY_CopySubjectPublicKeyInfo
      Src: /src/nss/lib/certhigh/certreq.c:162,1
    - Dst: PORT_ArenaZNewArray
      Src: /src/nss/lib/certhigh/certreq.c:168,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/certhigh/certreq.c:188,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/lib/certhigh/certreq.c:192,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/certreq.c:193,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/certhigh/certreq.c:196,1
    - Dst: PORT_ArenaZNewArray
      Src: /src/nss/lib/certhigh/certreq.c:202,1
    - Dst: SECITEM_ArenaDupItem
      Src: /src/nss/lib/certhigh/certreq.c:215,1
    - Dst: CERT_DestroyCertificateRequest
      Src: /src/nss/lib/certhigh/certreq.c:225,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 62
    argCount: 3
    argNames:
    - subject
    - spki
    - attributes
    argTypes:
    - CERTName*
    - CERTSubjectPublicKeyInfo*
    - SECItem**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 227
    functionName: CERT_CreateCertificateRequest
    functionSourceFile: /src/nss/lib/certhigh/certreq.c
    functionUses: 2
    functionsReached:
    - PORT_ArenaZNewArray
    - PORT_Assert
    - CERT_DestroyCertificateRequest
    - PORT_NewArena
    - SECOID_FindOIDByTag
    - PORT_FreeArena
    - SECKEY_CopySubjectPublicKeyInfo
    - SECITEM_CopyItem
    - PORT_ArenaZNew
    - CERT_CopyName
    - SECITEM_ArenaDupItem
    - DER_SetUInteger
    linkageType: ''
    returnType: CERTCertificateRequest
    signature: "CERTCertificateRequest *\nCERT_CreateCertificateRequest(CERTName *subject,\n
      \                             CERTSubjectPublicKeyInfo *spki,\n                              SECItem
      **attributes)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certhigh/certreq.c:233,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - req
    argTypes:
    - CERTCertificateRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 236
    functionName: CERT_DestroyCertificateRequest
    functionSourceFile: /src/nss/lib/certhigh/certreq.c
    functionUses: 4
    functionsReached:
    - PORT_FreeArena
    linkageType: ''
    returnType: void
    signature: void CERT_DestroyCertificateRequest(CERTCertificateRequest *req)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - o
    - exts
    argTypes:
    - void*
    - CERTCertExtension**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 242
    functionName: setCRExt
    functionSourceFile: /src/nss/lib/certhigh/certreq.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setCRExt(void *o, CERTCertExtension **exts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cert_StartExtensions
      Src: /src/nss/lib/certhigh/certreq.c:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - req
    argTypes:
    - CERTCertificateRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 255
    functionName: CERT_StartCertificateRequestAttributes
    functionSourceFile: /src/nss/lib/certhigh/certreq.c
    functionUses: 1
    functionsReached:
    - cert_StartExtensions
    linkageType: ''
    returnType: void
    signature: 'void *

      CERT_StartCertificateRequestAttributes(CERTCertificateRequest *req)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certreq.c:272,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/certhigh/certreq.c:278,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/certhigh/certreq.c:279,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/lib/certhigh/certreq.c:283,1
    - Dst: PORT_ArenaZNewArray
      Src: /src/nss/lib/certhigh/certreq.c:289,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/certhigh/certreq.c:291,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/certhigh/certreq.c:294,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certreq.c:295,1
    - Dst: PORT_ArenaZNewArray
      Src: /src/nss/lib/certhigh/certreq.c:298,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 1
    argNames:
    - req
    argTypes:
    - CERTCertificateRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 309
    functionName: CERT_FinishCertificateRequestAttributes
    functionSourceFile: /src/nss/lib/certhigh/certreq.c
    functionUses: 1
    functionsReached:
    - PORT_ArenaZNewArray
    - SEC_ASN1EncodeItem
    - SECOID_FindOIDByTag
    - SECITEM_CopyItem
    - PORT_SetError
    - PORT_ArenaZNew
    - SEC_ASN1_GET
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERT_FinishCertificateRequestAttributes(CERTCertificateRequest
      *req)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certreq.c:316,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certreq.c:324,1
    - Dst: SEC_ASN1DecodeItem
      Src: /src/nss/lib/certhigh/certreq.c:328,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/certhigh/certreq.c:329,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - req
    - exts
    argTypes:
    - CERTCertificateRequest*
    - CERTCertExtension***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 331
    functionName: CERT_GetCertificateRequestExtensions
    functionSourceFile: /src/nss/lib/certhigh/certreq.c
    functionUses: 1
    functionsReached:
    - SEC_ASN1DecodeItem
    - PORT_SetError
    - SEC_ASN1_GET
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_GetCertificateRequestExtensions(CERTCertificateRequest
      *req,\n                                     CERTCertExtension ***exts)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocspsig.c:34,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocspsig.c:44,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/certhigh/ocspsig.c:48,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/certhigh/ocspsig.c:54,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/certhigh/ocspsig.c:59,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/certhigh/ocspsig.c:65,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/certhigh/ocspsig.c:69,1
    - Dst: DER_TimeToGeneralizedTimeArena
      Src: /src/nss/lib/certhigh/ocspsig.c:72,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocspsig.c:79,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 3
    argNames:
    - arena
    - status
    - revocationTime
    argTypes:
    - PLArenaPool*
    - ocspCertStatusType
    - PRTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 82
    functionName: ocsp_CreateCertStatus
    functionSourceFile: /src/nss/lib/certhigh/ocspsig.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - DER_TimeToGeneralizedTimeArena
    - SECITEM_AllocItem
    - PORT_SetError
    - PORT_ArenaZNew
    linkageType: ''
    returnType: ocspCertStatus
    signature: "ocspCertStatus *\nocsp_CreateCertStatus(PLArenaPool *arena,\n                      ocspCertStatusType
      status,\n                      PRTime revocationTime)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocspsig.c:266,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/certhigh/ocspsig.c:270,1
    - Dst: DER_TimeToGeneralizedTimeArena
      Src: /src/nss/lib/certhigh/ocspsig.c:276,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/certhigh/ocspsig.c:281,1
    - Dst: DER_TimeToGeneralizedTimeArena
      Src: /src/nss/lib/certhigh/ocspsig.c:284,1
    - Dst: PORT_ArenaNewArray
      Src: /src/nss/lib/certhigh/ocspsig.c:289,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/certhigh/ocspsig.c:295,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 5
    argNames:
    - arena
    - id
    - status
    - thisUpdate
    - nextUpdate
    argTypes:
    - PLArenaPool*
    - CERTOCSPCertID*
    - ocspCertStatus*
    - PRTime
    - PRTime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 300
    functionName: ocsp_CreateSingleResponse
    functionSourceFile: /src/nss/lib/certhigh/ocspsig.c
    functionUses: 0
    functionsReached:
    - SEC_ASN1EncodeItem
    - DER_TimeToGeneralizedTimeArena
    - SECITEM_AllocItem
    - PORT_SetError
    - PORT_ArenaZNew
    - PORT_ArenaNewArray
    linkageType: ''
    returnType: CERTOCSPSingleResponse
    signature: "CERTOCSPSingleResponse *\nocsp_CreateSingleResponse(PLArenaPool *arena,\n
      \                         CERTOCSPCertID *id, ocspCertStatus *status,\n                          PRTime
      thisUpdate, const PRTime *nextUpdate)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocspsig.c:310,1
    - Dst: ocsp_CreateCertStatus
      Src: /src/nss/lib/certhigh/ocspsig.c:313,1
    - Dst: ocsp_CreateSingleResponse
      Src: /src/nss/lib/certhigh/ocspsig.c:316,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - arena
    - id
    - thisUpdate
    - nextUpdate
    argTypes:
    - PLArenaPool*
    - CERTOCSPCertID*
    - PRTime
    - PRTime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 302
    functionDepth: 2
    functionLinenumber: 302
    functionLinenumberEnd: 317
    functionName: CERT_CreateOCSPSingleResponseGood
    functionSourceFile: /src/nss/lib/certhigh/ocspsig.c
    functionUses: 3
    functionsReached:
    - ocsp_CreateCertStatus
    - PORT_SetError
    - ocsp_CreateSingleResponse
    linkageType: ''
    returnType: CERTOCSPSingleResponse
    signature: "CERTOCSPSingleResponse *\nCERT_CreateOCSPSingleResponseGood(PLArenaPool
      *arena,\n                                  CERTOCSPCertID *id,\n                                  PRTime
      thisUpdate,\n                                  const PRTime *nextUpdate)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocspsig.c:327,1
    - Dst: ocsp_CreateCertStatus
      Src: /src/nss/lib/certhigh/ocspsig.c:330,1
    - Dst: ocsp_CreateSingleResponse
      Src: /src/nss/lib/certhigh/ocspsig.c:333,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - arena
    - id
    - thisUpdate
    - nextUpdate
    argTypes:
    - PLArenaPool*
    - CERTOCSPCertID*
    - PRTime
    - PRTime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 319
    functionDepth: 2
    functionLinenumber: 319
    functionLinenumberEnd: 334
    functionName: CERT_CreateOCSPSingleResponseUnknown
    functionSourceFile: /src/nss/lib/certhigh/ocspsig.c
    functionUses: 2
    functionsReached:
    - ocsp_CreateCertStatus
    - PORT_SetError
    - ocsp_CreateSingleResponse
    linkageType: ''
    returnType: CERTOCSPSingleResponse
    signature: "CERTOCSPSingleResponse *\nCERT_CreateOCSPSingleResponseUnknown(PLArenaPool
      *arena,\n                                     CERTOCSPCertID *id,\n                                     PRTime
      thisUpdate,\n                                     const PRTime *nextUpdate)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocspsig.c:348,1
    - Dst: ocsp_CreateCertStatus
      Src: /src/nss/lib/certhigh/ocspsig.c:351,1
    - Dst: ocsp_CreateSingleResponse
      Src: /src/nss/lib/certhigh/ocspsig.c:354,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 6
    argNames:
    - arena
    - id
    - thisUpdate
    - nextUpdate
    - revocationTime
    - revocationReason
    argTypes:
    - PLArenaPool*
    - CERTOCSPCertID*
    - PRTime
    - PRTime*
    - PRTime
    - CERTCRLEntryReasonCode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 336
    functionDepth: 2
    functionLinenumber: 336
    functionLinenumberEnd: 355
    functionName: CERT_CreateOCSPSingleResponseRevoked
    functionSourceFile: /src/nss/lib/certhigh/ocspsig.c
    functionUses: 3
    functionsReached:
    - ocsp_CreateCertStatus
    - PORT_SetError
    - ocsp_CreateSingleResponse
    linkageType: ''
    returnType: CERTOCSPSingleResponse
    signature: "CERTOCSPSingleResponse *\nCERT_CreateOCSPSingleResponseRevoked(\n
      \   PLArenaPool *arena,\n    CERTOCSPCertID *id,\n    PRTime thisUpdate,\n    const
      PRTime *nextUpdate,\n    PRTime revocationTime,\n    const CERTCRLEntryReasonCode
      *revocationReason)"
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocspsig.c:382,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocspsig.c:387,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/certhigh/ocspsig.c:391,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/certhigh/ocspsig.c:395,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/certhigh/ocspsig.c:398,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/certhigh/ocspsig.c:401,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/certhigh/ocspsig.c:404,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/certhigh/ocspsig.c:407,1
    - Dst: DER_TimeToGeneralizedTimeArena
      Src: /src/nss/lib/certhigh/ocspsig.c:415,1
    - Dst: ocsp_DigestValue
      Src: /src/nss/lib/certhigh/ocspsig.c:433,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/certhigh/ocspsig.c:437,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/certhigh/ocspsig.c:443,1
    - Dst: PORT_ArenaNewArray
      Src: /src/nss/lib/certhigh/ocspsig.c:447,1
    - Dst: SEC_GetSignatureAlgorithmOidTag
      Src: /src/nss/lib/certhigh/ocspsig.c:452,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/certhigh/ocspsig.c:457,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/certhigh/ocspsig.c:459,1
    - Dst: CERT_CopyName
      Src: /src/nss/lib/certhigh/ocspsig.c:467,1
    - Dst: CERT_GetSubjectPublicKeyDigest
      Src: /src/nss/lib/certhigh/ocspsig.c:472,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/certhigh/ocspsig.c:477,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/certhigh/ocspsig.c:483,1
    - Dst: PORT_ArenaNewArray
      Src: /src/nss/lib/certhigh/ocspsig.c:487,1
    - Dst: PK11_FindKeyByAnyCert
      Src: /src/nss/lib/certhigh/ocspsig.c:492,1
    - Dst: SEC_GetSignatureAlgorithmOidTag
      Src: /src/nss/lib/certhigh/ocspsig.c:496,1
    - Dst: SEC_SignData
      Src: /src/nss/lib/certhigh/ocspsig.c:500,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/lib/certhigh/ocspsig.c:513,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/certhigh/ocspsig.c:517,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/lib/certhigh/ocspsig.c:523,1
    - Dst: SEC_ASN1EncodeInteger
      Src: /src/nss/lib/certhigh/ocspsig.c:534,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/certhigh/ocspsig.c:538,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/lib/certhigh/ocspsig.c:542,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/certhigh/ocspsig.c:544,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certhigh/ocspsig.c:545,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 133
    argCount: 6
    argNames:
    - arena
    - responderCert
    - responderIDType
    - producedAt
    - responses
    - wincx
    argTypes:
    - PLArenaPool*
    - CERTCertificate*
    - CERTOCSPResponderIDType
    - PRTime
    - CERTOCSPSingleResponse**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 359
    functionDepth: 9
    functionLinenumber: 359
    functionLinenumberEnd: 548
    functionName: CERT_CreateEncodedOCSPSuccessResponse
    functionSourceFile: /src/nss/lib/certhigh/ocspsig.c
    functionUses: 4
    functionsReached:
    - SEC_GetSignatureAlgorithmOidTag
    - ocsp_DigestValue
    - PK11_FindKeyByAnyCert
    - SEC_ASN1EncodeItem
    - PORT_NewArena
    - PORT_Memcpy
    - SECOID_SetAlgorithmID
    - PORT_SetError
    - PORT_ArenaZNew
    - SEC_ASN1EncodeInteger
    - SECITEM_FreeItem
    - PORT_FreeArena
    - DER_TimeToGeneralizedTimeArena
    - SECITEM_AllocItem
    - CERT_GetSubjectPublicKeyDigest
    - SECOID_FindOIDByTag
    - CERT_CopyName
    - SECKEY_DestroyPrivateKey
    - PORT_ArenaNewArray
    - SEC_SignData
    linkageType: ''
    returnType: SECItem
    signature: "SECItem *\nCERT_CreateEncodedOCSPSuccessResponse(\n    PLArenaPool
      *arena,\n    CERTCertificate *responderCert,\n    CERTOCSPResponderIDType responderIDType,\n
      \   PRTime producedAt,\n    CERTOCSPSingleResponse **responses,\n    void *wincx)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocspsig.c:583,1
    - Dst: SEC_ASN1EncodeInteger
      Src: /src/nss/lib/certhigh/ocspsig.c:587,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/certhigh/ocspsig.c:591,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/certhigh/ocspsig.c:594,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - arena
    - error
    argTypes:
    - PLArenaPool*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 597
    functionName: CERT_CreateEncodedOCSPErrorResponse
    functionSourceFile: /src/nss/lib/certhigh/ocspsig.c
    functionUses: 2
    functionsReached:
    - SECITEM_FreeItem
    - PORT_SetError
    - SEC_ASN1EncodeInteger
    - SEC_ASN1EncodeItem
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      CERT_CreateEncodedOCSPErrorResponse(PLArenaPool *arena, int error)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strcmp
      Src: /src/nss/lib/certhigh/certhigh.c:30,1
    - Dst: PORT_Strchr
      Src: /src/nss/lib/certhigh/certhigh.c:35,1
    - Dst: PORT_Strchr
      Src: /src/nss/lib/certhigh/certhigh.c:36,1
    - Dst: PORT_Strcmp
      Src: /src/nss/lib/certhigh/certhigh.c:49,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - name1
    - name2
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 54
    functionName: CERT_MatchNickname
    functionSourceFile: /src/nss/lib/certhigh/certhigh.c
    functionUses: 0
    functionsReached:
    - PORT_Strchr
    - PORT_Strcmp
    linkageType: ''
    returnType: PRBool
    signature: PRBool CERT_MatchNickname(char *name1, char *name2)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PR_Now
      Src: /src/nss/lib/certhigh/certhigh.c:84,1
    - Dst: CERT_GetCertNicknames
      Src: /src/nss/lib/certhigh/certhigh.c:86,1
    - Dst: PK11_FindCertFromNickname
      Src: /src/nss/lib/certhigh/certhigh.c:102,1
    - Dst: CERT_FindCertByNickname
      Src: /src/nss/lib/certhigh/certhigh.c:114,1
    - Dst: CERT_CreateSubjectCertList
      Src: /src/nss/lib/certhigh/certhigh.c:119,1
    - Dst: CERT_FilterCertListForUserCerts
      Src: /src/nss/lib/certhigh/certhigh.c:122,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/certhigh/certhigh.c:125,1
    - Dst: CERT_FilterCertListByUsage
      Src: /src/nss/lib/certhigh/certhigh.c:133,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/certhigh/certhigh.c:150,1
    - Dst: CERT_LIST_HEAD
      Src: /src/nss/lib/certhigh/certhigh.c:155,1
    - Dst: CERT_LIST_END
      Src: /src/nss/lib/certhigh/certhigh.c:158,1
    - Dst: CERT_MatchNickname
      Src: /src/nss/lib/certhigh/certhigh.c:162,1
    - Dst: CERT_LIST_NEXT
      Src: /src/nss/lib/certhigh/certhigh.c:172,1
    - Dst: CERT_RemoveCertListNode
      Src: /src/nss/lib/certhigh/certhigh.c:173,1
    - Dst: CERT_LIST_NEXT
      Src: /src/nss/lib/certhigh/certhigh.c:180,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/certhigh.c:189,1
    - Dst: CERT_LIST_NEXT
      Src: /src/nss/lib/certhigh/certhigh.c:190,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certhigh/certhigh.c:193,1
    - Dst: CERT_DestroyCertList
      Src: /src/nss/lib/certhigh/certhigh.c:200,1
    - Dst: CERT_FreeNicknames
      Src: /src/nss/lib/certhigh/certhigh.c:206,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 78
    argCount: 5
    argNames:
    - handle
    - usage
    - oneCertPerName
    - validOnly
    - proto_win
    argTypes:
    - CERTCertDBHandle*
    - SECCertUsage
    - PRBool
    - PRBool
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 66
    functionDepth: 9
    functionLinenumber: 66
    functionLinenumberEnd: 210
    functionName: CERT_FindUserCertsByUsage
    functionSourceFile: /src/nss/lib/certhigh/certhigh.c
    functionUses: 0
    functionsReached:
    - CERT_LIST_NEXT
    - PORT_Assert
    - CERT_FreeNicknames
    - CERT_LIST_HEAD
    - PORT_Free
    - PORT_ZAlloc
    - CERT_CreateSubjectCertList
    - CERT_MatchNickname
    - PR_Now
    - CERT_LIST_END
    - CERT_FilterCertListForUserCerts
    - CERT_DestroyCertificate
    - CERT_GetCertNicknames
    - CERT_FilterCertListByUsage
    - CERT_FindCertByNickname
    - PK11_FindCertFromNickname
    - CERT_DestroyCertList
    - CERT_RemoveCertListNode
    linkageType: ''
    returnType: CERTCertList
    signature: "CERTCertList *\nCERT_FindUserCertsByUsage(CERTCertDBHandle *handle,\n
      \                         SECCertUsage usage,\n                          PRBool
      oneCertPerName,\n                          PRBool validOnly,\n                          void
      *proto_win)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PR_Now
      Src: /src/nss/lib/certhigh/certhigh.c:233,1
    - Dst: PK11_FindCertFromNickname
      Src: /src/nss/lib/certhigh/certhigh.c:240,1
    - Dst: CERT_FindCertByNickname
      Src: /src/nss/lib/certhigh/certhigh.c:248,1
    - Dst: CERT_KeyUsageAndTypeForCertUsage
      Src: /src/nss/lib/certhigh/certhigh.c:255,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/certhigh/certhigh.c:259,1
    - Dst: CERT_CheckCertValidTimes
      Src: /src/nss/lib/certhigh/certhigh.c:264,1
    - Dst: CERT_CheckKeyUsage
      Src: /src/nss/lib/certhigh/certhigh.c:265,1
    - Dst: CERT_IsUserCert
      Src: /src/nss/lib/certhigh/certhigh.c:267,1
    - Dst: CERT_CreateSubjectCertList
      Src: /src/nss/lib/certhigh/certhigh.c:272,1
    - Dst: CERT_FilterCertListForUserCerts
      Src: /src/nss/lib/certhigh/certhigh.c:275,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/certhigh/certhigh.c:278,1
    - Dst: CERT_FilterCertListByUsage
      Src: /src/nss/lib/certhigh/certhigh.c:287,1
    - Dst: CERT_LIST_EMPTY
      Src: /src/nss/lib/certhigh/certhigh.c:293,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/certhigh/certhigh.c:294,1
    - Dst: CERT_LIST_HEAD
      Src: /src/nss/lib/certhigh/certhigh.c:294,1
    - Dst: CERT_DestroyCertList
      Src: /src/nss/lib/certhigh/certhigh.c:299,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 42
    argCount: 5
    argNames:
    - handle
    - nickname
    - usage
    - validOnly
    - proto_win
    argTypes:
    - CERTCertDBHandle*
    - char*
    - SECCertUsage
    - PRBool
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 221
    functionDepth: 9
    functionLinenumber: 221
    functionLinenumberEnd: 303
    functionName: CERT_FindUserCertByUsage
    functionSourceFile: /src/nss/lib/certhigh/certhigh.c
    functionUses: 3
    functionsReached:
    - CERT_CheckKeyUsage
    - CERT_LIST_HEAD
    - CERT_CreateSubjectCertList
    - CERT_KeyUsageAndTypeForCertUsage
    - PR_Now
    - CERT_CheckCertValidTimes
    - CERT_FilterCertListForUserCerts
    - CERT_LIST_EMPTY
    - CERT_DestroyCertificate
    - CERT_DupCertificate
    - CERT_FilterCertListByUsage
    - CERT_FindCertByNickname
    - PK11_FindCertFromNickname
    - CERT_IsUserCert
    - CERT_DestroyCertList
    linkageType: ''
    returnType: CERTCertificate
    signature: "CERTCertificate *\nCERT_FindUserCertByUsage(CERTCertDBHandle *handle,\n
      \                        const char *nickname,\n                         SECCertUsage
      usage,\n                         PRBool validOnly,\n                         void
      *proto_win)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CERT_FindUserCertsByUsage
      Src: /src/nss/lib/certhigh/certhigh.c:314,1
    - Dst: CERT_FilterCertListByCANames
      Src: /src/nss/lib/certhigh/certhigh.c:320,1
    - Dst: CERT_DestroyCertList
      Src: /src/nss/lib/certhigh/certhigh.c:329,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 5
    argNames:
    - handle
    - usage
    - nCANames
    - caNames
    - proto_win
    argTypes:
    - CERTCertDBHandle*
    - SECCertUsage
    - int
    - char**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 305
    functionDepth: 10
    functionLinenumber: 305
    functionLinenumberEnd: 336
    functionName: CERT_MatchUserCert
    functionSourceFile: /src/nss/lib/certhigh/certhigh.c
    functionUses: 0
    functionsReached:
    - CERT_FindUserCertsByUsage
    - CERT_FilterCertListByCANames
    - CERT_DestroyCertList
    linkageType: ''
    returnType: CERTCertList
    signature: "CERTCertList *\nCERT_MatchUserCert(CERTCertDBHandle *handle,\n                   SECCertUsage
      usage,\n                   int nCANames, char **caNames,\n                   void
      *proto_win)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: nssCertificate_GetNickname
      Src: /src/nss/lib/certhigh/certhigh.c:359,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/certhigh/certhigh.c:362,1
    - Dst: NSSCertificate_IsPrivateKeyAvailable
      Src: /src/nss/lib/certhigh/certhigh.c:365,1
    - Dst: NSSCertificate_GetTrustDomain
      Src: /src/nss/lib/certhigh/certhigh.c:369,1
    - Dst: nssTrustDomain_FindTrustForCertificate
      Src: /src/nss/lib/certhigh/certhigh.c:373,1
    - Dst: STAN_GetCERTCertificateName
      Src: /src/nss/lib/certhigh/certhigh.c:408,1
    - Dst: PORT_Strcmp
      Src: /src/nss/lib/certhigh/certhigh.c:416,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/certhigh/certhigh.c:428,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certhigh/certhigh.c:430,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/certhigh/certhigh.c:435,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/certhigh/certhigh.c:436,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certhigh/certhigh.c:438,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/certhigh/certhigh.c:441,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certhigh/certhigh.c:452,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 66
    argCount: 2
    argNames:
    - c
    - data
    argTypes:
    - NSSCertificate*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 343
    functionDepth: 3
    functionLinenumber: 343
    functionLinenumberEnd: 454
    functionName: CollectNicknames
    functionSourceFile: /src/nss/lib/certhigh/certhigh.c
    functionUses: 0
    functionsReached:
    - STAN_GetCERTCertificateName
    - NSSCertificate_IsPrivateKeyAvailable
    - NSSCertificate_GetTrustDomain
    - PORT_Memcpy
    - PORT_ArenaAlloc
    - PORT_Free
    - PORT_Strcmp
    - PORT_Strlen
    - nss_ZFreeIf
    - nssTrustDomain_FindTrustForCertificate
    - nssCertificate_GetNickname
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus CollectNicknames(NSSCertificate *c, void *data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/certhigh/certhigh.c:464,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certhigh.c:466,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/certhigh/certhigh.c:470,1
    - Dst: pk11_TraverseAllSlots
      Src: /src/nss/lib/certhigh/certhigh.c:483,1
    - Dst: NSSTrustDomain_TraverseCertificates
      Src: /src/nss/lib/certhigh/certhigh.c:485,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/certhigh/certhigh.c:488,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/certhigh.c:499,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/certhigh/certhigh.c:502,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/certhigh.c:506,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certhigh/certhigh.c:512,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 3
    argNames:
    - handle
    - what
    - wincx
    argTypes:
    - CERTCertDBHandle*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 456
    functionDepth: 7
    functionLinenumber: 456
    functionLinenumberEnd: 514
    functionName: CERT_GetCertNicknames
    functionSourceFile: /src/nss/lib/certhigh/certhigh.c
    functionUses: 3
    functionsReached:
    - PORT_Assert
    - PORT_NewArena
    - PORT_FreeArena
    - PORT_ArenaAlloc
    - PORT_Strlen
    - PORT_SetError
    - pk11_TraverseAllSlots
    - NSSTrustDomain_TraverseCertificates
    linkageType: ''
    returnType: CERTCertNicknames
    signature: 'CERTCertNicknames *

      CERT_GetCertNicknames(CERTCertDBHandle *handle, int what, void *wincx)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certhigh/certhigh.c:519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - nicknames
    argTypes:
    - CERTCertNicknames*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 522
    functionName: CERT_FreeNicknames
    functionSourceFile: /src/nss/lib/certhigh/certhigh.c
    functionUses: 3
    functionsReached:
    - PORT_FreeArena
    linkageType: ''
    returnType: void
    signature: void CERT_FreeNicknames(CERTCertNicknames *nicknames)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certhigh/certhigh.c:534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - names
    argTypes:
    - CERTDistNames*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 537
    functionName: CERT_FreeDistNames
    functionSourceFile: /src/nss/lib/certhigh/certhigh.c
    functionUses: 2
    functionsReached:
    - PORT_FreeArena
    linkageType: ''
    returnType: void
    signature: void CERT_FreeDistNames(CERTDistNames *names)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CERT_GetCertTrust
      Src: /src/nss/lib/certhigh/certhigh.c:550,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/certhigh/certhigh.c:559,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/certhigh/certhigh.c:567,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/certhigh/certhigh.c:571,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - cert
    - k
    - data
    argTypes:
    - CERTCertificate*
    - SECItem*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 582
    functionName: CollectDistNames
    functionSourceFile: /src/nss/lib/certhigh/certhigh.c
    functionUses: 0
    functionsReached:
    - CERT_GetCertTrust
    - PORT_Memcpy
    - PORT_ArenaAlloc
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CollectDistNames(CERTCertificate *cert, SECItem *k, void
      *data)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/certhigh/certhigh.c:596,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certhigh.c:598,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/certhigh/certhigh.c:603,1
    - Dst: PORT_ArenaNewArray
      Src: /src/nss/lib/certhigh/certhigh.c:616,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/certhigh/certhigh.c:622,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certhigh/certhigh.c:631,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 1
    argNames:
    - orig
    argTypes:
    - CERTDistNames*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 587
    functionDepth: 1
    functionLinenumber: 587
    functionLinenumberEnd: 633
    functionName: CERT_DupDistNames
    functionSourceFile: /src/nss/lib/certhigh/certhigh.c
    functionUses: 1
    functionsReached:
    - PORT_NewArena
    - PORT_FreeArena
    - PORT_ArenaAlloc
    - SECITEM_CopyItem
    - PORT_SetError
    - PORT_ArenaNewArray
    linkageType: ''
    returnType: CERTDistNames
    signature: 'CERTDistNames *

      CERT_DupDistNames(CERTDistNames *orig)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/certhigh/certhigh.c:645,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certhigh.c:647,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/certhigh/certhigh.c:652,1
    - Dst: PK11_TraverseSlotCerts
      Src: /src/nss/lib/certhigh/certhigh.c:664,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/certhigh/certhigh.c:671,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/certhigh.c:680,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/certhigh.c:686,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certhigh/certhigh.c:692,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 1
    argNames:
    - handle
    argTypes:
    - CERTCertDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 635
    functionDepth: 4
    functionLinenumber: 635
    functionLinenumberEnd: 694
    functionName: CERT_GetSSLCACerts
    functionSourceFile: /src/nss/lib/certhigh/certhigh.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_NewArena
    - PORT_FreeArena
    - PORT_ArenaAlloc
    - PORT_SetError
    - PK11_TraverseSlotCerts
    linkageType: ''
    returnType: CERTDistNames
    signature: 'CERTDistNames *

      CERT_GetSSLCACerts(CERTCertDBHandle *handle)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certhigh.c:706,1
    - Dst: CERT_LIST_HEAD
      Src: /src/nss/lib/certhigh/certhigh.c:710,1
    - Dst: CERT_LIST_END
      Src: /src/nss/lib/certhigh/certhigh.c:711,1
    - Dst: CERT_LIST_NEXT
      Src: /src/nss/lib/certhigh/certhigh.c:713,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/certhigh/certhigh.c:716,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/certhigh/certhigh.c:719,1
    - Dst: PORT_ArenaZNewArray
      Src: /src/nss/lib/certhigh/certhigh.c:725,1
    - Dst: CERT_LIST_HEAD
      Src: /src/nss/lib/certhigh/certhigh.c:729,1
    - Dst: CERT_LIST_END
      Src: /src/nss/lib/certhigh/certhigh.c:730,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/certhigh/certhigh.c:732,1
    - Dst: CERT_LIST_NEXT
      Src: /src/nss/lib/certhigh/certhigh.c:736,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certhigh/certhigh.c:741,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 1
    argNames:
    - certList
    argTypes:
    - CERTCertList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 696
    functionDepth: 1
    functionLinenumber: 696
    functionLinenumberEnd: 744
    functionName: CERT_DistNamesFromCertList
    functionSourceFile: /src/nss/lib/certhigh/certhigh.c
    functionUses: 0
    functionsReached:
    - CERT_LIST_NEXT
    - PORT_ArenaZNewArray
    - CERT_LIST_HEAD
    - PORT_NewArena
    - PORT_FreeArena
    - SECITEM_CopyItem
    - PORT_SetError
    - CERT_LIST_END
    - PORT_ArenaZNew
    linkageType: ''
    returnType: CERTDistNames
    signature: 'CERTDistNames *

      CERT_DistNamesFromCertList(CERTCertList *certList)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/certhigh/certhigh.c:756,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/certhigh/certhigh.c:759,1
    - Dst: PORT_ArenaZNewArray
      Src: /src/nss/lib/certhigh/certhigh.c:765,1
    - Dst: CERT_FindCertByNicknameOrEmailAddr
      Src: /src/nss/lib/certhigh/certhigh.c:770,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/certhigh/certhigh.c:773,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/certhigh/certhigh.c:776,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/certhigh/certhigh.c:782,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certhigh/certhigh.c:784,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 3
    argNames:
    - handle
    - nicknames
    - nnames
    argTypes:
    - CERTCertDBHandle*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 746
    functionDepth: 1
    functionLinenumber: 746
    functionLinenumberEnd: 786
    functionName: CERT_DistNamesFromNicknames
    functionSourceFile: /src/nss/lib/certhigh/certhigh.c
    functionUses: 0
    functionsReached:
    - CERT_FindCertByNicknameOrEmailAddr
    - PORT_ArenaZNewArray
    - PORT_NewArena
    - PORT_FreeArena
    - SECITEM_CopyItem
    - PORT_ArenaZNew
    - CERT_DestroyCertificate
    linkageType: ''
    returnType: CERTDistNames
    signature: "CERTDistNames *\nCERT_DistNamesFromNicknames(CERTCertDBHandle *handle,
      char **nicknames,\n                            int nnames)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/certhigh/certhigh.c:800,1
    - Dst: CERT_AsciiToName
      Src: /src/nss/lib/certhigh/certhigh.c:806,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/certhigh/certhigh.c:809,1
    - Dst: CERT_FindCertByName
      Src: /src/nss/lib/certhigh/certhigh.c:812,1
    - Dst: CERT_DestroyName
      Src: /src/nss/lib/certhigh/certhigh.c:814,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certhigh/certhigh.c:819,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - handle
    - nameStr
    argTypes:
    - CERTCertDBHandle*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 792
    functionDepth: 1
    functionLinenumber: 792
    functionLinenumberEnd: 823
    functionName: CERT_FindCertByNameString
    functionSourceFile: /src/nss/lib/certhigh/certhigh.c
    functionUses: 0
    functionsReached:
    - SEC_ASN1EncodeItem
    - PORT_NewArena
    - CERT_AsciiToName
    - PORT_FreeArena
    - CERT_DestroyName
    - CERT_FindCertByName
    linkageType: ''
    returnType: CERTCertificate
    signature: 'CERTCertificate *

      CERT_FindCertByNameString(CERTCertDBHandle *handle, char *nameStr)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cert_FindExtension
      Src: /src/nss/lib/certhigh/certhigh.c:837,1
    - Dst: CERT_DecodeCRLDistributionPoints
      Src: /src/nss/lib/certhigh/certhigh.c:843,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certhigh/certhigh.c:845,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - cert
    argTypes:
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 827
    functionDepth: 1
    functionLinenumber: 827
    functionLinenumberEnd: 848
    functionName: CERT_FindCRLDistributionPoints
    functionSourceFile: /src/nss/lib/certhigh/certhigh.c
    functionUses: 1
    functionsReached:
    - PORT_Free
    - cert_FindExtension
    - CERT_DecodeCRLDistributionPoints
    linkageType: ''
    returnType: CERTCrlDistributionPoints
    signature: 'CERTCrlDistributionPoints *

      CERT_FindCRLDistributionPoints(CERTCertificate *cert)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetInternalKeySlot
      Src: /src/nss/lib/certhigh/certhigh.c:855,1
    - Dst: PK11_ImportCRL
      Src: /src/nss/lib/certhigh/certhigh.c:856,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/certhigh/certhigh.c:858,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - handle
    - derCRL
    - url
    - type
    - wincx
    argTypes:
    - CERTCertDBHandle*
    - SECItem*
    - char*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 851
    functionDepth: 3
    functionLinenumber: 851
    functionLinenumberEnd: 861
    functionName: CERT_ImportCRL
    functionSourceFile: /src/nss/lib/certhigh/certhigh.c
    functionUses: 0
    functionsReached:
    - PK11_ImportCRL
    - PK11_GetInternalKeySlot
    - PK11_FreeSlot
    linkageType: ''
    returnType: CERTSignedCrl
    signature: 'CERTSignedCrl *

      CERT_ImportCRL(CERTCertDBHandle *handle, SECItem *derCRL, char *url, int type,
      void *wincx)'
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/lib/certhigh/certhigh.c:878,1
    - Dst: CERT_DecodeDERCertificate
      Src: /src/nss/lib/certhigh/certhigh.c:886,1
    - Dst: CERT_CertTimesValid
      Src: /src/nss/lib/certhigh/certhigh.c:893,1
    - Dst: CERT_IsCACert
      Src: /src/nss/lib/certhigh/certhigh.c:905,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/certhigh/certhigh.c:923,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/certhigh.c:942,1
    - Dst: CERT_NewTempCertificate
      Src: /src/nss/lib/certhigh/certhigh.c:947,1
    - Dst: CERT_GetCertIsTemp
      Src: /src/nss/lib/certhigh/certhigh.c:954,1
    - Dst: CERT_MakeCANickname
      Src: /src/nss/lib/certhigh/certhigh.c:960,1
    - Dst: CERT_AddTempCertToPerm
      Src: /src/nss/lib/certhigh/certhigh.c:962,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certhigh/certhigh.c:966,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/certhigh/certhigh.c:978,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/certhigh/certhigh.c:990,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/certhigh/certhigh.c:995,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 99
    argCount: 4
    argNames:
    - certs
    - numcerts
    - certUsage
    - trusted
    argTypes:
    - SECItem*
    - int
    - SECCertUsage
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 864
    functionDepth: 1
    functionLinenumber: 864
    functionLinenumberEnd: 1000
    functionName: cert_ImportCAChain
    functionSourceFile: /src/nss/lib/certhigh/certhigh.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_Free
    - CERT_GetCertIsTemp
    - CERT_IsCACert
    - CERT_DecodeDERCertificate
    - CERT_GetDefaultCertDB
    - CERT_AddTempCertToPerm
    - CERT_DestroyCertificate
    - CERT_CertTimesValid
    - PORT_Memset
    - CERT_NewTempCertificate
    - CERT_MakeCANickname
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus cert_ImportCAChain(SECItem *certs, int numcerts, SECCertUsage
      certUsage, PRBool trusted)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cert_ImportCAChain
      Src: /src/nss/lib/certhigh/certhigh.c:1005,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - certs
    - numcerts
    - certUsage
    argTypes:
    - SECItem*
    - int
    - SECCertUsage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 1002
    functionDepth: 2
    functionLinenumber: 1002
    functionLinenumberEnd: 1006
    functionName: CERT_ImportCAChain
    functionSourceFile: /src/nss/lib/certhigh/certhigh.c
    functionUses: 0
    functionsReached:
    - cert_ImportCAChain
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERT_ImportCAChain(SECItem *certs, int numcerts, SECCertUsage
      certUsage)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cert_ImportCAChain
      Src: /src/nss/lib/certhigh/certhigh.c:1011,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - certs
    - numcerts
    - certUsage
    argTypes:
    - SECItem*
    - int
    - SECCertUsage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1012
      start: 1008
    functionDepth: 2
    functionLinenumber: 1008
    functionLinenumberEnd: 1012
    functionName: CERT_ImportCAChainTrusted
    functionSourceFile: /src/nss/lib/certhigh/certhigh.c
    functionUses: 0
    functionsReached:
    - cert_ImportCAChain
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERT_ImportCAChainTrusted(SECItem *certs, int numcerts, SECCertUsage
      certUsage)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: STAN_GetDefaultTrustDomain
      Src: /src/nss/lib/certhigh/certhigh.c:1039,1
    - Dst: STAN_GetDefaultCryptoContext
      Src: /src/nss/lib/certhigh/certhigh.c:1040,1
    - Dst: STAN_GetNSSCertificate
      Src: /src/nss/lib/certhigh/certhigh.c:1042,1
    - Dst: NSSCertificate_BuildChain
      Src: /src/nss/lib/certhigh/certhigh.c:1050,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certhigh.c:1053,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/certhigh/certhigh.c:1063,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/certhigh/certhigh.c:1068,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/certhigh/certhigh.c:1072,1
    - Dst: STAN_GetCERTCertificate
      Src: /src/nss/lib/certhigh/certhigh.c:1079,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/certhigh/certhigh.c:1086,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/certhigh/certhigh.c:1087,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/certhigh/certhigh.c:1097,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/certhigh/certhigh.c:1106,1
    - Dst: STAN_GetCERTCertificate
      Src: /src/nss/lib/certhigh/certhigh.c:1112,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/certhigh/certhigh.c:1114,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/certhigh/certhigh.c:1118,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certhigh/certhigh.c:1120,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 75
    argCount: 3
    argNames:
    - cert
    - usage
    - includeRoot
    argTypes:
    - CERTCertificate*
    - SECCertUsage
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1123
      start: 1029
    functionDepth: 1
    functionLinenumber: 1029
    functionLinenumberEnd: 1123
    functionName: CERT_CertChainFromCert
    functionSourceFile: /src/nss/lib/certhigh/certhigh.c
    functionUses: 4
    functionsReached:
    - STAN_GetNSSCertificate
    - PORT_NewArena
    - PORT_FreeArena
    - STAN_GetDefaultTrustDomain
    - PORT_ArenaAlloc
    - STAN_GetDefaultCryptoContext
    - STAN_GetCERTCertificate
    - PORT_SetError
    - SECITEM_CopyItem
    - nss_ZFreeIf
    - CERT_DestroyCertificate
    - NSSCertificate_BuildChain
    linkageType: ''
    returnType: CERTCertificateList
    signature: "CERTCertificateList *\nCERT_CertChainFromCert(CERTCertificate *cert,
      SECCertUsage usage,\n                       PRBool includeRoot)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/certhigh/certhigh.c:1136,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/certhigh/certhigh.c:1141,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/certhigh/certhigh.c:1144,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/certhigh/certhigh.c:1147,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certhigh.c:1156,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certhigh/certhigh.c:1159,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 1
    argNames:
    - cert
    argTypes:
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1162
      start: 1128
    functionDepth: 0
    functionLinenumber: 1128
    functionLinenumberEnd: 1162
    functionName: CERT_CertListFromCert
    functionSourceFile: /src/nss/lib/certhigh/certhigh.c
    functionUses: 0
    functionsReached:
    - PORT_NewArena
    - PORT_FreeArena
    - PORT_ArenaAlloc
    - SECITEM_CopyItem
    - PORT_SetError
    linkageType: ''
    returnType: CERTCertificateList
    signature: 'CERTCertificateList *

      CERT_CertListFromCert(CERTCertificate *cert)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/certhigh/certhigh.c:1175,1
    - Dst: PORT_ArenaNew
      Src: /src/nss/lib/certhigh/certhigh.c:1180,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/certhigh/certhigh.c:1184,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/certhigh/certhigh.c:1191,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certhigh.c:1198,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certhigh/certhigh.c:1201,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - oldList
    argTypes:
    - CERTCertificateList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1204
      start: 1164
    functionDepth: 1
    functionLinenumber: 1164
    functionLinenumberEnd: 1204
    functionName: CERT_DupCertList
    functionSourceFile: /src/nss/lib/certhigh/certhigh.c
    functionUses: 0
    functionsReached:
    - PORT_NewArena
    - PORT_FreeArena
    - PORT_ArenaNew
    - PORT_ArenaAlloc
    - SECITEM_CopyItem
    - PORT_SetError
    linkageType: ''
    returnType: CERTCertificateList
    signature: 'CERTCertificateList *

      CERT_DupCertList(const CERTCertificateList *oldList)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certhigh/certhigh.c:1209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list
    argTypes:
    - CERTCertificateList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1210
      start: 1206
    functionDepth: 0
    functionLinenumber: 1206
    functionLinenumberEnd: 1210
    functionName: CERT_DestroyCertificateList
    functionSourceFile: /src/nss/lib/certhigh/certhigh.c
    functionUses: 5
    functionsReached:
    - PORT_FreeArena
    linkageType: ''
    returnType: void
    signature: void CERT_DestroyCertificateList(CERTCertificateList *list)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/xcrldist.c:71,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/xcrldist.c:72,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/certhigh/xcrldist.c:75,1
    - Dst: cert_EncodeGeneralNames
      Src: /src/nss/lib/certhigh/xcrldist.c:89,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/certhigh/xcrldist.c:92,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/certhigh/xcrldist.c:98,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/xcrldist.c:104,1
    - Dst: PrepareBitStringForEncoding
      Src: /src/nss/lib/certhigh/xcrldist.c:113,1
    - Dst: cert_EncodeGeneralNames
      Src: /src/nss/lib/certhigh/xcrldist.c:116,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/certhigh/xcrldist.c:126,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certhigh/xcrldist.c:132,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 51
    argCount: 3
    argNames:
    - arena
    - value
    - derValue
    argTypes:
    - PLArenaPool*
    - CERTCrlDistributionPoints*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 134
    functionName: CERT_EncodeCRLDistributionPoints
    functionSourceFile: /src/nss/lib/certhigh/xcrldist.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SEC_ASN1EncodeItem
    - PORT_NewArena
    - PORT_FreeArena
    - cert_EncodeGeneralNames
    - PORT_SetError
    - PrepareBitStringForEncoding
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_EncodeCRLDistributionPoints(PLArenaPool *arena,\n                                 CERTCrlDistributionPoints
      *value,\n                                 SECItem *derValue)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/xcrldist.c:144,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/certhigh/xcrldist.c:146,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/certhigh/xcrldist.c:154,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/certhigh/xcrldist.c:158,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/certhigh/xcrldist.c:168,1
    - Dst: cert_DecodeGeneralNames
      Src: /src/nss/lib/certhigh/xcrldist.c:176,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/xcrldist.c:184,1
    - Dst: DER_ConvertBitString
      Src: /src/nss/lib/certhigh/xcrldist.c:195,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/certhigh/xcrldist.c:196,1
    - Dst: cert_DecodeGeneralNames
      Src: /src/nss/lib/certhigh/xcrldist.c:203,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 50
    argCount: 2
    argNames:
    - arena
    - encodedValue
    argTypes:
    - PLArenaPool*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 212
    functionName: CERT_DecodeCRLDistributionPoints
    functionSourceFile: /src/nss/lib/certhigh/xcrldist.c
    functionUses: 2
    functionsReached:
    - cert_DecodeGeneralNames
    - PORT_Assert
    - DER_ConvertBitString
    - SECITEM_CopyItem
    - PORT_ArenaZNew
    - SEC_QuickDERDecodeItem
    - PORT_SetError
    linkageType: ''
    returnType: CERTCrlDistributionPoints
    signature: 'CERTCrlDistributionPoints *

      CERT_DecodeCRLDistributionPoints(PLArenaPool *arena, SECItem *encodedValue)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 145
    functionName: OCSP_TRACE
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OCSP_TRACE(msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - msg
    - ','
    - time
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 146
    functionName: OCSP_TRACE_TIME
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OCSP_TRACE_TIME(msg, time)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cert
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 147
    functionName: OCSP_TRACE_CERT
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OCSP_TRACE_CERT(cert)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - certid
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 148
    functionName: OCSP_TRACE_CERTID
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OCSP_TRACE_CERTID(certid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/certhigh/ocsp.c:161,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 169
    functionName: wantOcspTrace
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached:
    - PR_GetEnvSecure
    linkageType: ''
    returnType: PRBool
    signature: PRBool wantOcspTrace(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: wantOcspTrace
      Src: /src/nss/lib/certhigh/ocsp.c:177,1
    - Dst: va_start
      Src: /src/nss/lib/certhigh/ocsp.c:179,1
    - Dst: PR_vsnprintf
      Src: /src/nss/lib/certhigh/ocsp.c:180,1
    - Dst: va_end
      Src: /src/nss/lib/certhigh/ocsp.c:181,1
    - Dst: PR_LogPrint
      Src: /src/nss/lib/certhigh/ocsp.c:182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 183
    functionName: ocsp_Trace
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached:
    - va_end
    - PR_LogPrint
    - va_start
    - wantOcspTrace
    - PR_vsnprintf
    linkageType: ''
    returnType: void
    signature: void ocsp_Trace(const char *format, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: wantOcspTrace
      Src: /src/nss/lib/certhigh/ocsp.c:191,1
    - Dst: PR_ExplodeTime
      Src: /src/nss/lib/certhigh/ocsp.c:193,1
    - Dst: PR_FormatTime
      Src: /src/nss/lib/certhigh/ocsp.c:194,1
    - Dst: ocsp_Trace
      Src: /src/nss/lib/certhigh/ocsp.c:195,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - str
    - time
    argTypes:
    - char*
    - PRTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 185
    functionDepth: 3
    functionLinenumber: 185
    functionLinenumberEnd: 197
    functionName: ocsp_dumpStringWithTime
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached:
    - PR_ExplodeTime
    - ocsp_Trace
    - wantOcspTrace
    - PR_FormatTime
    linkageType: ''
    returnType: void
    signature: void ocsp_dumpStringWithTime(const char *str, PRTime time)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_sprintf_append
      Src: /src/nss/lib/certhigh/ocsp.c:207,1
    - Dst: PR_sprintf_append
      Src: /src/nss/lib/certhigh/ocsp.c:209,1
    - Dst: ocsp_Trace
      Src: /src/nss/lib/certhigh/ocsp.c:213,1
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/certhigh/ocsp.c:214,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - prefix
    - hexval
    argTypes:
    - char*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 199
    functionDepth: 3
    functionLinenumber: 199
    functionLinenumberEnd: 216
    functionName: printHexString
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 2
    functionsReached:
    - PR_smprintf_free
    - ocsp_Trace
    - PR_sprintf_append
    linkageType: ''
    returnType: void
    signature: void printHexString(const char *prefix, SECItem *hexval)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: wantOcspTrace
      Src: /src/nss/lib/certhigh/ocsp.c:221,1
    - Dst: ocsp_Trace
      Src: /src/nss/lib/certhigh/ocsp.c:224,1
    - Dst: ocsp_Trace
      Src: /src/nss/lib/certhigh/ocsp.c:225,1
    - Dst: DER_DecodeTimeChoice
      Src: /src/nss/lib/certhigh/ocsp.c:231,1
    - Dst: DER_DecodeTimeChoice
      Src: /src/nss/lib/certhigh/ocsp.c:232,1
    - Dst: PR_ExplodeTime
      Src: /src/nss/lib/certhigh/ocsp.c:233,1
    - Dst: PR_ExplodeTime
      Src: /src/nss/lib/certhigh/ocsp.c:234,1
    - Dst: PR_FormatTime
      Src: /src/nss/lib/certhigh/ocsp.c:235,1
    - Dst: PR_FormatTime
      Src: /src/nss/lib/certhigh/ocsp.c:237,1
    - Dst: ocsp_Trace
      Src: /src/nss/lib/certhigh/ocsp.c:239,1
    - Dst: ocsp_Trace
      Src: /src/nss/lib/certhigh/ocsp.c:242,1
    - Dst: printHexString
      Src: /src/nss/lib/certhigh/ocsp.c:243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - cert
    argTypes:
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 218
    functionDepth: 3
    functionLinenumber: 218
    functionLinenumberEnd: 244
    functionName: dumpCertificate
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 4
    functionsReached:
    - DER_DecodeTimeChoice
    - ocsp_Trace
    - PR_FormatTime
    - PR_ExplodeTime
    - printHexString
    - wantOcspTrace
    linkageType: ''
    returnType: void
    signature: void dumpCertificate(CERTCertificate *cert)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: wantOcspTrace
      Src: /src/nss/lib/certhigh/ocsp.c:249,1
    - Dst: printHexString
      Src: /src/nss/lib/certhigh/ocsp.c:252,1
    - Dst: printHexString
      Src: /src/nss/lib/certhigh/ocsp.c:253,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - certID
    argTypes:
    - CERTOCSPCertID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 246
    functionDepth: 2
    functionLinenumber: 246
    functionLinenumberEnd: 254
    functionName: dumpCertID
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached:
    - printHexString
    - wantOcspTrace
    linkageType: ''
    returnType: void
    signature: void dumpCertID(CERTOCSPCertID *certID)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:261,1
    - Dst: PR_EnterMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:265,1
    - Dst: PR_ExitMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - fcnTable
    argTypes:
    - SEC_HttpClientFcn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 270
    functionName: SEC_RegisterDefaultHttpClient
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    - PR_ExitMonitor
    - PR_EnterMonitor
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SEC_RegisterDefaultHttpClient(const SEC_HttpClientFcn *fcnTable)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:280,1
    - Dst: PR_EnterMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:284,1
    - Dst: PR_ExitMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:287,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - newCallback
    - oldCallback
    argTypes:
    - CERT_StringFromCertFcn
    - CERT_StringFromCertFcn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 291
    functionName: CERT_RegisterAlternateOCSPAIAInfoCallBack
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PR_ExitMonitor
    - PR_EnterMonitor
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_RegisterAlternateOCSPAIAInfoCallBack(\n    CERT_StringFromCertFcn
      newCallback,\n    CERT_StringFromCertFcn *oldCallback)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - key
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 315
    functionName: PR_CALLBACK::ocsp_CacheKeyHashFunction
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PLHashNumber
    signature: 'PLHashNumber PR_CALLBACK

      ocsp_CacheKeyHashFunction(const void *key)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/certhigh/ocsp.c:323,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/certhigh/ocsp.c:325,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/certhigh/ocsp.c:327,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - v1
    - v2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 329
    functionName: PR_CALLBACK::ocsp_CacheKeyCompareFunction
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached:
    - SECITEM_CompareItem
    linkageType: ''
    returnType: PRIntn
    signature: 'PRIntn PR_CALLBACK

      ocsp_CacheKeyCompareFunction(const void *v1, const void *v2)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/certhigh/ocsp.c:338,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/certhigh/ocsp.c:341,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/certhigh/ocsp.c:346,1
    - Dst: SECITEM_ArenaDupItem
      Src: /src/nss/lib/certhigh/ocsp.c:355,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/certhigh/ocsp.c:363,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/certhigh/ocsp.c:367,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - arena
    - dest
    - src
    argTypes:
    - PLArenaPool*
    - ocspCertStatus*
    - ocspRevokedInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 369
    functionName: ocsp_CopyRevokedInfo
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached:
    - PORT_ArenaZAlloc
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - SECITEM_CopyItem
    - PORT_ArenaUnmark
    - SECITEM_ArenaDupItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ocsp_CopyRevokedInfo(PLArenaPool *arena, ocspCertStatus
      *dest,\n                     ocspRevokedInfo *src)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_ArenaDupItem
      Src: /src/nss/lib/certhigh/ocsp.c:381,1
    - Dst: ocsp_CopyRevokedInfo
      Src: /src/nss/lib/certhigh/ocsp.c:387,1
    - Dst: SECITEM_ArenaDupItem
      Src: /src/nss/lib/certhigh/ocsp.c:392,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:399,1
    - Dst: SECITEM_ArenaDupItem
      Src: /src/nss/lib/certhigh/ocsp.c:401,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - arena
    - dest
    - src
    argTypes:
    - PLArenaPool*
    - ocspCertStatus*
    - ocspCertStatus*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 408
    functionName: ocsp_CopyCertStatus
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached:
    - ocsp_CopyRevokedInfo
    - PORT_Assert
    - SECITEM_ArenaDupItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ocsp_CopyCertStatus(PLArenaPool *arena, ocspCertStatus *dest,\n
      \                   ocspCertStatus *src)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_EnterMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:413,1
    - Dst: PR_ExitMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:426,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - cache
    - new_most_recent
    argTypes:
    - OCSPCacheData*
    - OCSPCacheItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 427
    functionName: ocsp_AddCacheItemToLinkedList
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached:
    - PR_ExitMonitor
    - PR_EnterMonitor
    linkageType: ''
    returnType: void
    signature: void ocsp_AddCacheItemToLinkedList(OCSPCacheData *cache, OCSPCacheItem
      *new_most_recent)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PR_EnterMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:432,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:443,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:444,1
    - Dst: PR_ExitMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:448,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:452,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:455,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:456,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:457,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:458,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:462,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:463,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:464,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:469,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:470,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:471,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:472,1
    - Dst: PR_ExitMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:480,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 2
    argNames:
    - cache
    - item
    argTypes:
    - OCSPCacheData*
    - OCSPCacheItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 481
    functionName: ocsp_RemoveCacheItemFromLinkedList
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PR_ExitMonitor
    - PR_EnterMonitor
    linkageType: ''
    returnType: void
    signature: void ocsp_RemoveCacheItemFromLinkedList(OCSPCacheData *cache, OCSPCacheItem
      *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_TRACE
      Src: /src/nss/lib/certhigh/ocsp.c:486,1
    - Dst: PR_GetCurrentThread
      Src: /src/nss/lib/certhigh/ocsp.c:487,1
    - Dst: PR_EnterMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:488,1
    - Dst: OCSP_TRACE
      Src: /src/nss/lib/certhigh/ocsp.c:490,1
    - Dst: PR_ExitMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:491,1
    - Dst: OCSP_TRACE
      Src: /src/nss/lib/certhigh/ocsp.c:494,1
    - Dst: ocsp_RemoveCacheItemFromLinkedList
      Src: /src/nss/lib/certhigh/ocsp.c:495,1
    - Dst: ocsp_AddCacheItemToLinkedList
      Src: /src/nss/lib/certhigh/ocsp.c:496,1
    - Dst: PR_ExitMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:497,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - cache
    - new_most_recent
    argTypes:
    - OCSPCacheData*
    - OCSPCacheItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 483
    functionDepth: 1
    functionLinenumber: 483
    functionLinenumberEnd: 498
    functionName: ocsp_MakeCacheEntryMostRecent
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached:
    - ocsp_AddCacheItemToLinkedList
    - PR_EnterMonitor
    - PR_ExitMonitor
    - ocsp_RemoveCacheItemFromLinkedList
    - PR_GetCurrentThread
    - OCSP_TRACE
    linkageType: ''
    returnType: void
    signature: void ocsp_MakeCacheEntryMostRecent(OCSPCacheData *cache, OCSPCacheItem
      *new_most_recent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_EnterMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:508,1
    - Dst: PR_ExitMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 512
    functionName: ocsp_IsCacheDisabled
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached:
    - PR_ExitMonitor
    - PR_EnterMonitor
    linkageType: ''
    returnType: PRBool
    signature: PRBool ocsp_IsCacheDisabled(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_TRACE
      Src: /src/nss/lib/certhigh/ocsp.c:518,1
    - Dst: OCSP_TRACE_CERTID
      Src: /src/nss/lib/certhigh/ocsp.c:519,1
    - Dst: PR_EnterMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:520,1
    - Dst: ocsp_IsCacheDisabled
      Src: /src/nss/lib/certhigh/ocsp.c:521,1
    - Dst: PL_HashTableLookup
      Src: /src/nss/lib/certhigh/ocsp.c:524,1
    - Dst: OCSP_TRACE
      Src: /src/nss/lib/certhigh/ocsp.c:529,1
    - Dst: ocsp_MakeCacheEntryMostRecent
      Src: /src/nss/lib/certhigh/ocsp.c:530,1
    - Dst: PR_ExitMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:533,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - cache
    - certID
    argTypes:
    - OCSPCacheData*
    - CERTOCSPCertID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 514
    functionDepth: 2
    functionLinenumber: 514
    functionLinenumberEnd: 535
    functionName: ocsp_FindCacheEntry
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached:
    - PL_HashTableLookup
    - PR_EnterMonitor
    - PR_ExitMonitor
    - OCSP_TRACE_CERTID
    - ocsp_IsCacheDisabled
    - OCSP_TRACE
    - ocsp_MakeCacheEntryMostRecent
    linkageType: ''
    returnType: OCSPCacheItem
    signature: 'OCSPCacheItem *

      ocsp_FindCacheEntry(OCSPCacheData *cache, CERTOCSPCertID *certID)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_TRACE
      Src: /src/nss/lib/certhigh/ocsp.c:540,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certhigh/ocsp.c:542,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certhigh/ocsp.c:546,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - item
    argTypes:
    - OCSPCacheItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 537
    functionDepth: 1
    functionLinenumber: 537
    functionLinenumberEnd: 548
    functionName: ocsp_FreeCacheItem
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached:
    - PORT_FreeArena
    - OCSP_TRACE
    linkageType: ''
    returnType: void
    signature: void ocsp_FreeCacheItem(OCSPCacheItem *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_TRACE
      Src: /src/nss/lib/certhigh/ocsp.c:558,1
    - Dst: PR_GetCurrentThread
      Src: /src/nss/lib/certhigh/ocsp.c:558,1
    - Dst: PR_EnterMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:559,1
    - Dst: ocsp_RemoveCacheItemFromLinkedList
      Src: /src/nss/lib/certhigh/ocsp.c:561,1
    - Dst: PL_HashTableRemove
      Src: /src/nss/lib/certhigh/ocsp.c:564,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:566,1
    - Dst: PL_HashTableRemove
      Src: /src/nss/lib/certhigh/ocsp.c:569,1
    - Dst: ocsp_FreeCacheItem
      Src: /src/nss/lib/certhigh/ocsp.c:572,1
    - Dst: PR_ExitMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - cache
    - item
    argTypes:
    - OCSPCacheData*
    - OCSPCacheItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 550
    functionDepth: 2
    functionLinenumber: 550
    functionLinenumberEnd: 574
    functionName: ocsp_RemoveCacheItem
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - ocsp_FreeCacheItem
    - PR_EnterMonitor
    - PL_HashTableRemove
    - PR_ExitMonitor
    - ocsp_RemoveCacheItemFromLinkedList
    - PR_GetCurrentThread
    - OCSP_TRACE
    linkageType: ''
    returnType: void
    signature: void ocsp_RemoveCacheItem(OCSPCacheData *cache, OCSPCacheItem *item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_TRACE
      Src: /src/nss/lib/certhigh/ocsp.c:579,1
    - Dst: PR_EnterMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:580,1
    - Dst: ocsp_RemoveCacheItem
      Src: /src/nss/lib/certhigh/ocsp.c:587,1
    - Dst: PR_ExitMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:590,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - cache
    argTypes:
    - OCSPCacheData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 576
    functionDepth: 3
    functionLinenumber: 576
    functionLinenumberEnd: 591
    functionName: ocsp_CheckCacheSize
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached:
    - ocsp_RemoveCacheItem
    - OCSP_TRACE
    - PR_EnterMonitor
    - PR_ExitMonitor
    linkageType: ''
    returnType: void
    signature: void ocsp_CheckCacheSize(OCSPCacheData *cache)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_TRACE
      Src: /src/nss/lib/certhigh/ocsp.c:596,1
    - Dst: PR_EnterMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:597,1
    - Dst: ocsp_RemoveCacheItem
      Src: /src/nss/lib/certhigh/ocsp.c:599,1
    - Dst: PR_ExitMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:602,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 593
    functionDepth: 3
    functionLinenumber: 593
    functionLinenumberEnd: 604
    functionName: CERT_ClearOCSPCache
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached:
    - ocsp_RemoveCacheItem
    - OCSP_TRACE
    - PR_EnterMonitor
    - PR_ExitMonitor
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERT_ClearOCSPCache(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:616,1
    - Dst: PR_EnterMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:619,1
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/certhigh/ocsp.c:621,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/certhigh/ocsp.c:625,1
    - Dst: PL_HashTableAdd
      Src: /src/nss/lib/certhigh/ocsp.c:631,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/certhigh/ocsp.c:637,1
    - Dst: ocsp_AddCacheItemToLinkedList
      Src: /src/nss/lib/certhigh/ocsp.c:638,1
    - Dst: PR_ExitMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:641,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/certhigh/ocsp.c:645,1
    - Dst: PR_ExitMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:646,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 3
    argNames:
    - cache
    - certID
    - pCacheItem
    argTypes:
    - OCSPCacheData*
    - CERTOCSPCertID*
    - OCSPCacheItem**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 648
    functionName: ocsp_CreateCacheItemAndConsumeCertID
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - ocsp_AddCacheItemToLinkedList
    - PORT_ArenaZAlloc
    - PL_HashTableAdd
    - PR_EnterMonitor
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - PR_ExitMonitor
    - PORT_ArenaUnmark
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ocsp_CreateCacheItemAndConsumeCertID(OCSPCacheData *cache,\n
      \                                    CERTOCSPCertID *certID,\n                                     OCSPCacheItem
      **pCacheItem)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certhigh/ocsp.c:655,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/certhigh/ocsp.c:661,1
    - Dst: ocsp_CopyCertStatus
      Src: /src/nss/lib/certhigh/ocsp.c:665,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certhigh/ocsp.c:668,1
    - Dst: DER_GeneralizedTimeToTime
      Src: /src/nss/lib/certhigh/ocsp.c:673,1
    - Dst: DER_GeneralizedTimeToTime
      Src: /src/nss/lib/certhigh/ocsp.c:677,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 2
    argNames:
    - item
    - response
    argTypes:
    - OCSPCacheItem*
    - CERTOCSPSingleResponse*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 650
    functionDepth: 2
    functionLinenumber: 650
    functionLinenumberEnd: 685
    functionName: ocsp_SetCacheItemResponse
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached:
    - PORT_FreeArena
    - DER_GeneralizedTimeToTime
    - PORT_NewArena
    - ocsp_CopyCertStatus
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ocsp_SetCacheItemResponse(OCSPCacheItem *item,\n                          const
      CERTOCSPSingleResponse *response)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_TRACE
      Src: /src/nss/lib/certhigh/ocsp.c:694,1
    - Dst: PR_EnterMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:696,1
    - Dst: PR_Now
      Src: /src/nss/lib/certhigh/ocsp.c:698,1
    - Dst: OCSP_TRACE_TIME
      Src: /src/nss/lib/certhigh/ocsp.c:699,1
    - Dst: OCSP_TRACE_TIME
      Src: /src/nss/lib/certhigh/ocsp.c:702,1
    - Dst: OCSP_TRACE_TIME
      Src: /src/nss/lib/certhigh/ocsp.c:706,1
    - Dst: OCSP_TRACE_TIME
      Src: /src/nss/lib/certhigh/ocsp.c:712,1
    - Dst: OCSP_TRACE_TIME
      Src: /src/nss/lib/certhigh/ocsp.c:718,1
    - Dst: OCSP_TRACE_TIME
      Src: /src/nss/lib/certhigh/ocsp.c:724,1
    - Dst: OCSP_TRACE_TIME
      Src: /src/nss/lib/certhigh/ocsp.c:732,1
    - Dst: OCSP_TRACE_TIME
      Src: /src/nss/lib/certhigh/ocsp.c:739,1
    - Dst: OCSP_TRACE_TIME
      Src: /src/nss/lib/certhigh/ocsp.c:745,1
    - Dst: PR_ExitMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:748,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 1
    argNames:
    - cacheItem
    argTypes:
    - OCSPCacheItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 687
    functionDepth: 1
    functionLinenumber: 687
    functionLinenumberEnd: 749
    functionName: ocsp_FreshenCacheItemNextFetchAttemptTime
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached:
    - PR_EnterMonitor
    - PR_Now
    - PR_ExitMonitor
    - OCSP_TRACE_TIME
    - OCSP_TRACE
    linkageType: ''
    returnType: void
    signature: void ocsp_FreshenCacheItemNextFetchAttemptTime(OCSPCacheItem *cacheItem)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_Now
      Src: /src/nss/lib/certhigh/ocsp.c:757,1
    - Dst: OCSP_TRACE
      Src: /src/nss/lib/certhigh/ocsp.c:769,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - cacheItem
    argTypes:
    - OCSPCacheItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 751
    functionDepth: 1
    functionLinenumber: 751
    functionLinenumberEnd: 772
    functionName: ocsp_IsCacheItemFresh
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached:
    - OCSP_TRACE
    - PR_Now
    linkageType: ''
    returnType: PRBool
    signature: PRBool ocsp_IsCacheItemFresh(OCSPCacheItem *cacheItem)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_TRACE
      Src: /src/nss/lib/certhigh/ocsp.c:789,1
    - Dst: PR_EnterMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:794,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:795,1
    - Dst: ocsp_FindCacheEntry
      Src: /src/nss/lib/certhigh/ocsp.c:797,1
    - Dst: PR_ExitMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:807,1
    - Dst: cert_DupOCSPCertID
      Src: /src/nss/lib/certhigh/ocsp.c:817,1
    - Dst: PR_ExitMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:819,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:820,1
    - Dst: ocsp_CreateCacheItemAndConsumeCertID
      Src: /src/nss/lib/certhigh/ocsp.c:825,1
    - Dst: PR_ExitMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:828,1
    - Dst: DER_GeneralizedTimeToTime
      Src: /src/nss/lib/certhigh/ocsp.c:834,1
    - Dst: ocsp_SetCacheItemResponse
      Src: /src/nss/lib/certhigh/ocsp.c:838,1
    - Dst: ocsp_RemoveCacheItem
      Src: /src/nss/lib/certhigh/ocsp.c:840,1
    - Dst: PR_ExitMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:841,1
    - Dst: OCSP_TRACE
      Src: /src/nss/lib/certhigh/ocsp.c:845,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/certhigh/ocsp.c:849,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certhigh/ocsp.c:851,1
    - Dst: ocsp_FreshenCacheItemNextFetchAttemptTime
      Src: /src/nss/lib/certhigh/ocsp.c:855,1
    - Dst: ocsp_CheckCacheSize
      Src: /src/nss/lib/certhigh/ocsp.c:856,1
    - Dst: PR_ExitMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:858,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 52
    argCount: 4
    argNames:
    - cache
    - certID
    - single
    - certIDWasConsumed
    argTypes:
    - OCSPCacheData*
    - CERTOCSPCertID*
    - CERTOCSPSingleResponse*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 781
    functionDepth: 4
    functionLinenumber: 781
    functionLinenumberEnd: 860
    functionName: ocsp_CreateOrUpdateCacheEntry
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - ocsp_CheckCacheSize
    - ocsp_FindCacheEntry
    - PORT_FreeArena
    - PR_EnterMonitor
    - PORT_GetError
    - ocsp_RemoveCacheItem
    - PORT_SetError
    - PR_ExitMonitor
    - cert_DupOCSPCertID
    - ocsp_FreshenCacheItemNextFetchAttemptTime
    - DER_GeneralizedTimeToTime
    - OCSP_TRACE
    - ocsp_CreateCacheItemAndConsumeCertID
    - ocsp_SetCacheItemResponse
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ocsp_CreateOrUpdateCacheEntry(OCSPCacheData *cache,\n                              CERTOCSPCertID
      *certID,\n                              CERTOCSPSingleResponse *single,\n                              PRBool
      *certIDWasConsumed)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:870,1
    - Dst: PR_EnterMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:874,1
    - Dst: PR_ExitMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:876,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ocspFailureMode
    argTypes:
    - SEC_OcspFailureMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 862
    functionDepth: 0
    functionLinenumber: 862
    functionLinenumberEnd: 878
    functionName: CERT_SetOCSPFailureMode
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    - PR_ExitMonitor
    - PR_EnterMonitor
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERT_SetOCSPFailureMode(SEC_OcspFailureMode ocspFailureMode)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:887,1
    - Dst: PR_EnterMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:891,1
    - Dst: CERT_ClearOCSPCache
      Src: /src/nss/lib/certhigh/ocsp.c:909,1
    - Dst: ocsp_CheckCacheSize
      Src: /src/nss/lib/certhigh/ocsp.c:916,1
    - Dst: PR_ExitMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:918,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - maxCacheEntries
    - minimumSecondsToNextFetchAttempt
    - maximumSecondsToNextFetchAttempt
    argTypes:
    - PRInt32
    - PRUint32
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 880
    functionDepth: 4
    functionLinenumber: 880
    functionLinenumberEnd: 920
    functionName: CERT_OCSPCacheSettings
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached:
    - ocsp_CheckCacheSize
    - PR_EnterMonitor
    - PORT_SetError
    - PR_ExitMonitor
    - CERT_ClearOCSPCache
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_OCSPCacheSettings(PRInt32 maxCacheEntries,\n                       PRUint32
      minimumSecondsToNextFetchAttempt,\n                       PRUint32 maximumSecondsToNextFetchAttempt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - seconds
    argTypes:
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 922
    functionDepth: 0
    functionLinenumber: 922
    functionLinenumberEnd: 928
    functionName: CERT_SetOCSPTimeout
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERT_SetOCSPTimeout(PRUint32 seconds)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PR_NewMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:937,1
    - Dst: PR_EnterMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:942,1
    - Dst: PL_NewHashTable
      Src: /src/nss/lib/certhigh/ocsp.c:945,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:960,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:961,1
    - Dst: PR_ExitMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:965,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 931
    functionDepth: 1
    functionLinenumber: 931
    functionLinenumberEnd: 967
    functionName: OCSP_InitGlobal
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PR_EnterMonitor
    - PORT_SetError
    - PR_ExitMonitor
    - PR_NewMonitor
    - PL_NewHashTable
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus OCSP_InitGlobal(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_EnterMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:975,1
    - Dst: CERT_ClearOCSPCache
      Src: /src/nss/lib/certhigh/ocsp.c:977,1
    - Dst: PL_HashTableDestroy
      Src: /src/nss/lib/certhigh/ocsp.c:978,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:981,1
    - Dst: PR_ExitMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:993,1
    - Dst: PR_DestroyMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:995,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 969
    functionDepth: 4
    functionLinenumber: 969
    functionLinenumberEnd: 998
    functionName: OCSP_ShutdownGlobal
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PL_HashTableDestroy
    - PR_DestroyMonitor
    - PR_EnterMonitor
    - CERT_ClearOCSPCache
    - PR_ExitMonitor
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus OCSP_ShutdownGlobal(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:1010,1
    - Dst: PR_EnterMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:1014,1
    - Dst: PR_ExitMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:1016,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 1004
    functionDepth: 0
    functionLinenumber: 1004
    functionLinenumberEnd: 1019
    functionName: SEC_GetRegisteredHttpClient
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 4
    functionsReached:
    - PORT_SetError
    - PR_ExitMonitor
    - PR_EnterMonitor
    linkageType: ''
    returnType: SEC_HttpClientFcn
    signature: 'SEC_HttpClientFcn *

      SEC_GetRegisteredHttpClient(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:1485,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:1486,1
    - Dst: CERT_FinishExtensions
      Src: /src/nss/lib/certhigh/ocsp.c:1489,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/certhigh/ocsp.c:1505,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - arena
    - request
    - pwArg
    argTypes:
    - PLArenaPool*
    - CERTOCSPRequest*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1506
      start: 1478
    functionDepth: 1
    functionLinenumber: 1478
    functionLinenumberEnd: 1506
    functionName: CERT_EncodeOCSPRequest
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 2
    functionsReached:
    - PORT_Assert
    - SEC_ASN1EncodeItem
    - CERT_FinishExtensions
    linkageType: ''
    returnType: SECItem
    signature: "SECItem *\nCERT_EncodeOCSPRequest(PLArenaPool *arena, CERTOCSPRequest
      *request,\n                       void *pwArg)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/certhigh/ocsp.c:1528,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/certhigh/ocsp.c:1532,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/certhigh/ocsp.c:1541,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/certhigh/ocsp.c:1546,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/certhigh/ocsp.c:1548,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:1549,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certhigh/ocsp.c:1565,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 1
    argNames:
    - src
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1568
      start: 1519
    functionDepth: 0
    functionLinenumber: 1519
    functionLinenumberEnd: 1568
    functionName: CERT_DecodeOCSPRequest
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 2
    functionsReached:
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - PORT_FreeArena
    - PORT_GetError
    - SECITEM_CopyItem
    - SEC_QuickDERDecodeItem
    - PORT_SetError
    linkageType: ''
    returnType: CERTOCSPRequest
    signature: 'CERTOCSPRequest *

      CERT_DecodeOCSPRequest(const SECItem *src)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certhigh/ocsp.c:1574,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:1577,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - certID
    argTypes:
    - CERTOCSPCertID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1579
      start: 1570
    functionDepth: 0
    functionLinenumber: 1570
    functionLinenumberEnd: 1579
    functionName: CERT_DestroyOCSPCertID
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 4
    functionsReached:
    - PORT_FreeArena
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERT_DestroyOCSPCertID(CERTOCSPCertID *certID)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/certhigh/ocsp.c:1599,1
    - Dst: HASH_GetHashObjectByOidTag
      Src: /src/nss/lib/certhigh/ocsp.c:1602,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/certhigh/ocsp.c:1608,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:1615,1
    - Dst: PK11_HashBuf
      Src: /src/nss/lib/certhigh/ocsp.c:1621,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/certhigh/ocsp.c:1627,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/certhigh/ocsp.c:1637,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/certhigh/ocsp.c:1640,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 45
    argCount: 4
    argNames:
    - arena
    - digestAlg
    - fill
    - src
    argTypes:
    - PLArenaPool*
    - SECOidTag
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1644
      start: 1589
    functionDepth: 10
    functionLinenumber: 1589
    functionLinenumberEnd: 1644
    functionName: ocsp_DigestValue
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 1
    functionsReached:
    - PORT_ArenaRelease
    - PK11_HashBuf
    - PORT_ArenaMark
    - SECITEM_AllocItem
    - HASH_GetHashObjectByOidTag
    - PORT_SetError
    - PORT_ArenaUnmark
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECItem
    signature: "SECItem *\nocsp_DigestValue(PLArenaPool *arena, SECOidTag digestAlg,\n
      \                SECItem *fill, const SECItem *src)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_ConvertBitString
      Src: /src/nss/lib/certhigh/ocsp.c:1665,1
    - Dst: ocsp_DigestValue
      Src: /src/nss/lib/certhigh/ocsp.c:1667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - arena
    - cert
    - digestAlg
    - fill
    argTypes:
    - PLArenaPool*
    - CERTCertificate*
    - SECOidTag
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1668
      start: 1653
    functionDepth: 11
    functionLinenumber: 1653
    functionLinenumberEnd: 1668
    functionName: CERT_GetSubjectPublicKeyDigest
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 2
    functionsReached:
    - DER_ConvertBitString
    - ocsp_DigestValue
    linkageType: ''
    returnType: SECItem
    signature: "SECItem *\nCERT_GetSubjectPublicKeyDigest(PLArenaPool *arena, const
      CERTCertificate *cert,\n                               SECOidTag digestAlg,
      SECItem *fill)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ocsp_DigestValue
      Src: /src/nss/lib/certhigh/ocsp.c:1685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - arena
    - cert
    - digestAlg
    - fill
    argTypes:
    - PLArenaPool*
    - CERTCertificate*
    - SECOidTag
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1686
      start: 1673
    functionDepth: 11
    functionLinenumber: 1673
    functionLinenumberEnd: 1686
    functionName: CERT_GetSubjectNameDigest
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 1
    functionsReached:
    - ocsp_DigestValue
    linkageType: ''
    returnType: SECItem
    signature: "SECItem *\nCERT_GetSubjectNameDigest(PLArenaPool *arena, const CERTCertificate
      *cert,\n                          SECOidTag digestAlg, SECItem *fill)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/certhigh/ocsp.c:1703,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:1706,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/certhigh/ocsp.c:1708,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/lib/certhigh/ocsp.c:1713,1
    - Dst: CERT_FindCertIssuer
      Src: /src/nss/lib/certhigh/ocsp.c:1719,1
    - Dst: CERT_GetSubjectNameDigest
      Src: /src/nss/lib/certhigh/ocsp.c:1724,1
    - Dst: CERT_GetSubjectNameDigest
      Src: /src/nss/lib/certhigh/ocsp.c:1731,1
    - Dst: CERT_GetSubjectNameDigest
      Src: /src/nss/lib/certhigh/ocsp.c:1736,1
    - Dst: CERT_GetSubjectPublicKeyDigest
      Src: /src/nss/lib/certhigh/ocsp.c:1741,1
    - Dst: CERT_GetSubjectPublicKeyDigest
      Src: /src/nss/lib/certhigh/ocsp.c:1748,1
    - Dst: CERT_GetSubjectPublicKeyDigest
      Src: /src/nss/lib/certhigh/ocsp.c:1752,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/certhigh/ocsp.c:1758,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/certhigh/ocsp.c:1761,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/certhigh/ocsp.c:1766,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/certhigh/ocsp.c:1771,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/certhigh/ocsp.c:1773,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 61
    argCount: 3
    argNames:
    - arena
    - cert
    - time
    argTypes:
    - PLArenaPool*
    - CERTCertificate*
    - PRTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1775
      start: 1698
    functionDepth: 12
    functionLinenumber: 1698
    functionLinenumberEnd: 1775
    functionName: ocsp_CreateCertID
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - CERT_FindCertIssuer
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - SECITEM_CopyItem
    - SECOID_SetAlgorithmID
    - PORT_ArenaZNew
    - CERT_DestroyCertificate
    - PORT_ArenaUnmark
    - CERT_GetSubjectNameDigest
    - CERT_GetSubjectPublicKeyDigest
    linkageType: ''
    returnType: CERTOCSPCertID
    signature: 'CERTOCSPCertID *

      ocsp_CreateCertID(PLArenaPool *arena, CERTCertificate *cert, PRTime time)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/certhigh/ocsp.c:1780,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:1782,1
    - Dst: ocsp_CreateCertID
      Src: /src/nss/lib/certhigh/ocsp.c:1786,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certhigh/ocsp.c:1788,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - cert
    - time
    argTypes:
    - CERTCertificate*
    - PRTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1793
      start: 1777
    functionDepth: 13
    functionLinenumber: 1777
    functionLinenumberEnd: 1793
    functionName: CERT_CreateOCSPCertID
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 3
    functionsReached:
    - PORT_FreeArena
    - PORT_Assert
    - ocsp_CreateCertID
    - PORT_NewArena
    linkageType: ''
    returnType: CERTOCSPCertID
    signature: 'CERTOCSPCertID *

      CERT_CreateOCSPCertID(CERTCertificate *cert, PRTime time)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:1802,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/certhigh/ocsp.c:1806,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/certhigh/ocsp.c:1810,1
    - Dst: DUPHELP
      Src: /src/nss/lib/certhigh/ocsp.c:1821,1
    - Dst: DUPHELP
      Src: /src/nss/lib/certhigh/ocsp.c:1822,1
    - Dst: DUPHELP
      Src: /src/nss/lib/certhigh/ocsp.c:1823,1
    - Dst: DUPHELP
      Src: /src/nss/lib/certhigh/ocsp.c:1824,1
    - Dst: DUPHELP
      Src: /src/nss/lib/certhigh/ocsp.c:1825,1
    - Dst: DUPHELP
      Src: /src/nss/lib/certhigh/ocsp.c:1826,1
    - Dst: DUPHELP
      Src: /src/nss/lib/certhigh/ocsp.c:1827,1
    - Dst: DUPHELP
      Src: /src/nss/lib/certhigh/ocsp.c:1828,1
    - Dst: DUPHELP
      Src: /src/nss/lib/certhigh/ocsp.c:1829,1
    - Dst: DUPHELP
      Src: /src/nss/lib/certhigh/ocsp.c:1830,1
    - Dst: DUPHELP
      Src: /src/nss/lib/certhigh/ocsp.c:1831,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certhigh/ocsp.c:1838,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:1839,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 1
    argNames:
    - src
    argTypes:
    - CERTOCSPCertID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1841
      start: 1795
    functionDepth: 1
    functionLinenumber: 1795
    functionLinenumberEnd: 1841
    functionName: cert_DupOCSPCertID
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 1
    functionsReached:
    - PORT_NewArena
    - PORT_FreeArena
    - DUPHELP
    - PORT_SetError
    - PORT_ArenaZNew
    linkageType: ''
    returnType: CERTOCSPCertID
    signature: 'CERTOCSPCertID *

      cert_DupOCSPCertID(const CERTOCSPCertID *src)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - element
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1820
      start: 1814
    functionDepth: 0
    functionLinenumber: 1814
    functionLinenumberEnd: 1820
    functionName: DUPHELP
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DUPHELP(element)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - object
    - exts
    argTypes:
    - void*
    - CERTCertExtension**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1853
      start: 1846
    functionDepth: 0
    functionLinenumber: 1846
    functionLinenumberEnd: 1853
    functionName: SetSingleReqExts
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetSingleReqExts(void *object, CERTCertExtension **exts)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZNew
      Src: /src/nss/lib/certhigh/ocsp.c:1869,1
    - Dst: CERT_FindCertExtension
      Src: /src/nss/lib/certhigh/ocsp.c:1882,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/certhigh/ocsp.c:1885,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:1891,1
    - Dst: cert_StartExtensions
      Src: /src/nss/lib/certhigh/ocsp.c:1893,1
    - Dst: CERT_EncodeAndAddExtension
      Src: /src/nss/lib/certhigh/ocsp.c:1898,1
    - Dst: CERT_FinishExtensions
      Src: /src/nss/lib/certhigh/ocsp.c:1909,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/certhigh/ocsp.c:1919,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certhigh/ocsp.c:1920,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 2
    argNames:
    - singleRequest
    - cert
    argTypes:
    - ocspSingleRequest*
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1924
      start: 1861
    functionDepth: 1
    functionLinenumber: 1861
    functionLinenumberEnd: 1924
    functionName: ocsp_AddServiceLocatorExtension
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached:
    - CERT_FindCertExtension
    - PORT_ZNew
    - PORT_Free
    - PORT_GetError
    - cert_StartExtensions
    - PORT_SetError
    - CERT_EncodeAndAddExtension
    - CERT_FinishExtensions
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ocsp_AddServiceLocatorExtension(ocspSingleRequest *singleRequest,\n
      \                               CERTCertificate *cert)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/certhigh/ocsp.c:1945,1
    - Dst: CERT_LIST_HEAD
      Src: /src/nss/lib/certhigh/ocsp.c:1947,1
    - Dst: CERT_LIST_END
      Src: /src/nss/lib/certhigh/ocsp.c:1948,1
    - Dst: CERT_LIST_NEXT
      Src: /src/nss/lib/certhigh/ocsp.c:1949,1
    - Dst: PORT_ArenaNewArray
      Src: /src/nss/lib/certhigh/ocsp.c:1955,1
    - Dst: CERT_LIST_HEAD
      Src: /src/nss/lib/certhigh/ocsp.c:1959,1
    - Dst: CERT_LIST_END
      Src: /src/nss/lib/certhigh/ocsp.c:1960,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/certhigh/ocsp.c:1961,1
    - Dst: OCSP_TRACE
      Src: /src/nss/lib/certhigh/ocsp.c:1965,1
    - Dst: ocsp_CreateCertID
      Src: /src/nss/lib/certhigh/ocsp.c:1967,1
    - Dst: ocsp_AddServiceLocatorExtension
      Src: /src/nss/lib/certhigh/ocsp.c:1974,1
    - Dst: CERT_LIST_NEXT
      Src: /src/nss/lib/certhigh/ocsp.c:1979,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:1982,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/certhigh/ocsp.c:1984,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/certhigh/ocsp.c:1989,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1991
      start: 1938
    functionDepth: 13
    functionLinenumber: 1938
    functionLinenumberEnd: 1991
    functionName: ocsp_CreateSingleRequestList
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached:
    - CERT_LIST_NEXT
    - PORT_Assert
    - CERT_LIST_HEAD
    - ocsp_CreateCertID
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - CERT_LIST_END
    - PORT_ArenaZNew
    - ocsp_AddServiceLocatorExtension
    - PORT_ArenaUnmark
    - OCSP_TRACE
    - PORT_ArenaNewArray
    linkageType: ''
    returnType: ocspSingleRequest
    signature: "ocspSingleRequest **\nocsp_CreateSingleRequestList(PLArenaPool *arena,
      CERTCertList *certList,\n                             PRTime time, PRBool includeLocator)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/certhigh/ocsp.c:2001,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:2002,1
    - Dst: PORT_ArenaNewArray
      Src: /src/nss/lib/certhigh/ocsp.c:2005,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/certhigh/ocsp.c:2008,1
    - Dst: ocsp_AddServiceLocatorExtension
      Src: /src/nss/lib/certhigh/ocsp.c:2017,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/certhigh/ocsp.c:2022,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/certhigh/ocsp.c:2027,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2029
      start: 1993
    functionDepth: 2
    functionLinenumber: 1993
    functionLinenumberEnd: 2029
    functionName: ocsp_CreateRequestFromCert
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - PORT_ArenaZNew
    - ocsp_AddServiceLocatorExtension
    - PORT_ArenaUnmark
    - PORT_ArenaNewArray
    linkageType: ''
    returnType: ocspSingleRequest
    signature: "ocspSingleRequest **\nocsp_CreateRequestFromCert(PLArenaPool *arena,\n
      \                          CERTOCSPCertID *certID,\n                           CERTCertificate
      *singleCert,\n                           PRTime time,\n                           PRBool
      includeLocator)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/certhigh/ocsp.c:2038,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/certhigh/ocsp.c:2042,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/certhigh/ocsp.c:2048,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certhigh/ocsp.c:2058,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2061
      start: 2031
    functionDepth: 1
    functionLinenumber: 2031
    functionLinenumberEnd: 2061
    functionName: ocsp_prepareEmptyOCSPRequest
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached:
    - PORT_FreeArena
    - PORT_ArenaZNew
    - PORT_NewArena
    linkageType: ''
    returnType: CERTOCSPRequest
    signature: 'CERTOCSPRequest *

      ocsp_prepareEmptyOCSPRequest(void)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_TRACE
      Src: /src/nss/lib/certhigh/ocsp.c:2071,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:2077,1
    - Dst: ocsp_prepareEmptyOCSPRequest
      Src: /src/nss/lib/certhigh/ocsp.c:2081,1
    - Dst: ocsp_CreateRequestFromCert
      Src: /src/nss/lib/certhigh/ocsp.c:2089,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certhigh/ocsp.c:2095,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - certID
    - singleCert
    - time
    - addServiceLocator
    - signerCert
    argTypes:
    - CERTOCSPCertID*
    - CERTCertificate*
    - PRTime
    - PRBool
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2099
      start: 2063
    functionDepth: 3
    functionLinenumber: 2063
    functionLinenumberEnd: 2099
    functionName: cert_CreateSingleCertOCSPRequest
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 1
    functionsReached:
    - PORT_FreeArena
    - ocsp_prepareEmptyOCSPRequest
    - PORT_SetError
    - ocsp_CreateRequestFromCert
    - OCSP_TRACE
    linkageType: ''
    returnType: CERTOCSPRequest
    signature: "CERTOCSPRequest *\ncert_CreateSingleCertOCSPRequest(CERTOCSPCertID
      *certID,\n                                 CERTCertificate *singleCert,\n                                 PRTime
      time,\n                                 PRBool addServiceLocator,\n                                 CERTCertificate
      *signerCert)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:2140,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:2151,1
    - Dst: ocsp_prepareEmptyOCSPRequest
      Src: /src/nss/lib/certhigh/ocsp.c:2154,1
    - Dst: ocsp_CreateSingleRequestList
      Src: /src/nss/lib/certhigh/ocsp.c:2161,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certhigh/ocsp.c:2166,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - certList
    - time
    - addServiceLocator
    - signerCert
    argTypes:
    - CERTCertList*
    - PRTime
    - PRBool
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2170
      start: 2132
    functionDepth: 14
    functionLinenumber: 2132
    functionLinenumberEnd: 2170
    functionName: CERT_CreateOCSPRequest
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 1
    functionsReached:
    - ocsp_CreateSingleRequestList
    - PORT_SetError
    - ocsp_prepareEmptyOCSPRequest
    - PORT_FreeArena
    linkageType: ''
    returnType: CERTOCSPRequest
    signature: "CERTOCSPRequest *\nCERT_CreateOCSPRequest(CERTCertList *certList,
      PRTime time,\n                       PRBool addServiceLocator,\n                       CERTCertificate
      *signerCert)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - object
    - exts
    argTypes:
    - void*
    - CERTCertExtension**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2195
      start: 2189
    functionDepth: 0
    functionLinenumber: 2189
    functionLinenumberEnd: 2195
    functionName: SetRequestExts
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetRequestExts(void *object, CERTCertExtension **exts)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: cert_StartExtensions
      Src: /src/nss/lib/certhigh/ocsp.c:2215,1
    - Dst: va_start
      Src: /src/nss/lib/certhigh/ocsp.c:2223,1
    - Dst: va_arg
      Src: /src/nss/lib/certhigh/ocsp.c:2226,1
    - Dst: va_end
      Src: /src/nss/lib/certhigh/ocsp.c:2228,1
    - Dst: PORT_NewArray
      Src: /src/nss/lib/certhigh/ocsp.c:2231,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/lib/certhigh/ocsp.c:2236,1
    - Dst: va_start
      Src: /src/nss/lib/certhigh/ocsp.c:2239,1
    - Dst: va_arg
      Src: /src/nss/lib/certhigh/ocsp.c:2241,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/lib/certhigh/ocsp.c:2242,1
    - Dst: va_end
      Src: /src/nss/lib/certhigh/ocsp.c:2245,1
    - Dst: CERT_EncodeAndAddExtension
      Src: /src/nss/lib/certhigh/ocsp.c:2249,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/certhigh/ocsp.c:2251,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certhigh/ocsp.c:2255,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certhigh/ocsp.c:2262,1
    - Dst: CERT_FinishExtensions
      Src: /src/nss/lib/certhigh/ocsp.c:2264,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 49
    argCount: 2
    argNames:
    - request
    - responseType0
    argTypes:
    - CERTOCSPRequest*
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2266
      start: 2201
    functionDepth: 1
    functionLinenumber: 2201
    functionLinenumberEnd: 2266
    functionName: CERT_AddOCSPAcceptableResponses
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 2
    functionsReached:
    - va_end
    - SECOID_FindOIDByTag
    - PORT_Free
    - cert_StartExtensions
    - CERT_EncodeAndAddExtension
    - PORT_NewArray
    - va_start
    - va_arg
    - SEC_ASN1_GET
    - CERT_FinishExtensions
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_AddOCSPAcceptableResponses(CERTOCSPRequest *request,\n
      \                               SECOidTag responseType0, ...)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CERT_DestroyGeneralNameList
      Src: /src/nss/lib/certhigh/ocsp.c:2288,1
    - Dst: CERT_FinishExtensions
      Src: /src/nss/lib/certhigh/ocsp.c:2290,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/certhigh/ocsp.c:2295,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:2310,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certhigh/ocsp.c:2312,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - request
    argTypes:
    - CERTOCSPRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2313
      start: 2280
    functionDepth: 1
    functionLinenumber: 2280
    functionLinenumberEnd: 2313
    functionName: CERT_DestroyOCSPRequest
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 4
    functionsReached:
    - PORT_Assert
    - PORT_FreeArena
    - CERT_DestroyGeneralNameList
    - CERT_DestroyCertificate
    - CERT_FinishExtensions
    linkageType: ''
    returnType: void
    signature: void CERT_DestroyOCSPRequest(CERTOCSPRequest *request)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:2337,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - responderIDType
    argTypes:
    - CERTOCSPResponderIDType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2343
      start: 2323
    functionDepth: 0
    functionLinenumber: 2323
    functionLinenumberEnd: 2343
    functionName: ocsp_ResponderIDTemplateByType
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: SEC_ASN1Template
    signature: 'SEC_ASN1Template *

      ocsp_ResponderIDTemplateByType(CERTOCSPResponderIDType responderIDType)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:2366,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - certStatusType
    argTypes:
    - ocspCertStatusType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2372
      start: 2349
    functionDepth: 0
    functionLinenumber: 2349
    functionLinenumberEnd: 2372
    functionName: ocsp_CertStatusTemplateByType
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: SEC_ASN1Template
    signature: 'SEC_ASN1Template *

      ocsp_CertStatusTemplateByType(ocspCertStatusType certStatusType)'
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - derTag
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2399
      start: 2378
    functionDepth: 0
    functionLinenumber: 2378
    functionLinenumberEnd: 2399
    functionName: ocsp_CertStatusTypeByTag
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ocspCertStatusType
    signature: ocspCertStatusType ocsp_CertStatusTypeByTag(int derTag)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:2420,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:2433,1
    - Dst: ocsp_CertStatusTypeByTag
      Src: /src/nss/lib/certhigh/ocsp.c:2436,1
    - Dst: ocsp_CertStatusTemplateByType
      Src: /src/nss/lib/certhigh/ocsp.c:2437,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/certhigh/ocsp.c:2439,1
    - Dst: SECITEM_ArenaDupItem
      Src: /src/nss/lib/certhigh/ocsp.c:2443,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/certhigh/ocsp.c:2447,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/certhigh/ocsp.c:2450,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:2451,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 2
    argNames:
    - reqArena
    - responses
    argTypes:
    - PLArenaPool*
    - CERTOCSPSingleResponse**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2463
      start: 2408
    functionDepth: 1
    functionLinenumber: 2408
    functionLinenumberEnd: 2463
    functionName: ocsp_FinishDecodingSingleResponses
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_ArenaZAlloc
    - PORT_GetError
    - PORT_SetError
    - SEC_QuickDERDecodeItem
    - ocsp_CertStatusTypeByTag
    - ocsp_CertStatusTemplateByType
    - SECITEM_ArenaDupItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ocsp_FinishDecodingSingleResponses(PLArenaPool *reqArena,\n
      \                                  CERTOCSPSingleResponse **responses)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - derTag
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2487
      start: 2469
    functionDepth: 0
    functionLinenumber: 2469
    functionLinenumberEnd: 2487
    functionName: ocsp_ResponderIDTypeByTag
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CERTOCSPResponderIDType
    signature: CERTOCSPResponderIDType ocsp_ResponderIDTypeByTag(int derTag)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/certhigh/ocsp.c:2505,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/certhigh/ocsp.c:2507,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/certhigh/ocsp.c:2514,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/certhigh/ocsp.c:2519,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/certhigh/ocsp.c:2522,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:2523,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:2533,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:2534,1
    - Dst: ocsp_ResponderIDTypeByTag
      Src: /src/nss/lib/certhigh/ocsp.c:2541,1
    - Dst: ocsp_ResponderIDTemplateByType
      Src: /src/nss/lib/certhigh/ocsp.c:2542,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/certhigh/ocsp.c:2544,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/certhigh/ocsp.c:2549,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/certhigh/ocsp.c:2552,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:2553,1
    - Dst: ocsp_FinishDecodingSingleResponses
      Src: /src/nss/lib/certhigh/ocsp.c:2564,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/certhigh/ocsp.c:2569,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/certhigh/ocsp.c:2573,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 50
    argCount: 2
    argNames:
    - arena
    - src
    argTypes:
    - PLArenaPool*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2575
      start: 2492
    functionDepth: 2
    functionLinenumber: 2492
    functionLinenumberEnd: 2575
    functionName: ocsp_DecodeBasicOCSPResponse
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - ocsp_ResponderIDTypeByTag
    - ocsp_ResponderIDTemplateByType
    - PORT_ArenaZAlloc
    - PORT_ArenaRelease
    - PORT_GetError
    - PORT_ArenaMark
    - SECITEM_CopyItem
    - ocsp_FinishDecodingSingleResponses
    - SEC_QuickDERDecodeItem
    - PORT_SetError
    - PORT_ArenaUnmark
    linkageType: ''
    returnType: ocspBasicOCSPResponse
    signature: 'ocspBasicOCSPResponse *

      ocsp_DecodeBasicOCSPResponse(PLArenaPool *arena, SECItem *src)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:2585,1
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/certhigh/ocsp.c:2589,1
    - Dst: ocsp_DecodeBasicOCSPResponse
      Src: /src/nss/lib/certhigh/ocsp.c:2594,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:2607,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - arena
    - rbytes
    argTypes:
    - PLArenaPool*
    - ocspResponseBytes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2612
      start: 2581
    functionDepth: 3
    functionLinenumber: 2581
    functionLinenumberEnd: 2612
    functionName: ocsp_DecodeResponseBytes
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached:
    - SECOID_FindOIDTag
    - PORT_SetError
    - ocsp_DecodeBasicOCSPResponse
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ocsp_DecodeResponseBytes(PLArenaPool *arena, ocspResponseBytes
      *rbytes)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/certhigh/ocsp.c:2636,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/certhigh/ocsp.c:2640,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/certhigh/ocsp.c:2649,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/certhigh/ocsp.c:2654,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/certhigh/ocsp.c:2656,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:2657,1
    - Dst: DER_GetInteger
      Src: /src/nss/lib/certhigh/ocsp.c:2661,1
    - Dst: ocsp_DecodeResponseBytes
      Src: /src/nss/lib/certhigh/ocsp.c:2675,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certhigh/ocsp.c:2684,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 1
    argNames:
    - src
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2687
      start: 2627
    functionDepth: 4
    functionLinenumber: 2627
    functionLinenumberEnd: 2687
    functionName: CERT_DecodeOCSPResponse
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 4
    functionsReached:
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - PORT_FreeArena
    - PORT_GetError
    - SECITEM_CopyItem
    - ocsp_DecodeResponseBytes
    - SEC_QuickDERDecodeItem
    - PORT_SetError
    - DER_GetInteger
    linkageType: ''
    returnType: CERTOCSPResponse
    signature: 'CERTOCSPResponse *

      CERT_DecodeOCSPResponse(const SECItem *src)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:2724,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:2726,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:2728,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:2732,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:2735,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:2740,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:2741,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - response
    - tbsResponseDataDER
    argTypes:
    - CERTOCSPResponse*
    - SECItem**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2745
      start: 2718
    functionDepth: 0
    functionLinenumber: 2718
    functionLinenumberEnd: 2745
    functionName: ocsp_GetResponseData
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: ocspResponseData
    signature: 'ocspResponseData *

      ocsp_GetResponseData(CERTOCSPResponse *response, SECItem **tbsResponseDataDER)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:2756,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:2765,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - response
    argTypes:
    - CERTOCSPResponse*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2768
      start: 2751
    functionDepth: 0
    functionLinenumber: 2751
    functionLinenumberEnd: 2768
    functionName: ocsp_GetResponseSignature
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: ocspSignature
    signature: 'ocspSignature *

      ocsp_GetResponseSignature(CERTOCSPResponse *response)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ocsp_GetResponseSignature
      Src: /src/nss/lib/certhigh/ocsp.c:2783,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/certhigh/ocsp.c:2785,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:2792,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certhigh/ocsp.c:2794,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - response
    argTypes:
    - CERTOCSPResponse*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2797
      start: 2779
    functionDepth: 1
    functionLinenumber: 2779
    functionLinenumberEnd: 2797
    functionName: CERT_DestroyOCSPResponse
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 4
    functionsReached:
    - PORT_FreeArena
    - PORT_Assert
    - ocsp_GetResponseSignature
    - CERT_DestroyCertificate
    linkageType: ''
    returnType: void
    signature: void CERT_DestroyOCSPResponse(CERTOCSPResponse *response)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strncasecmp
      Src: /src/nss/lib/certhigh/ocsp.c:2843,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/certhigh/ocsp.c:2866,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/certhigh/ocsp.c:2869,1
    - Dst: PORT_Atoi
      Src: /src/nss/lib/certhigh/ocsp.c:2878,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/certhigh/ocsp.c:2899,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/certhigh/ocsp.c:2902,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/certhigh/ocsp.c:2905,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certhigh/ocsp.c:2917,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:2918,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 70
    argCount: 4
    argNames:
    - url
    - pHostname
    - pPort
    - pPath
    argTypes:
    - char*
    - char**
    - PRUint16*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2920
      start: 2815
    functionDepth: 1
    functionLinenumber: 2815
    functionLinenumberEnd: 2920
    functionName: ocsp_ParseURL
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_Atoi
    - PORT_Memcpy
    - PORT_Strncasecmp
    - PORT_Free
    - PORT_SetError
    - PORT_Strdup
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ocsp_ParseURL(const char *url, char **pHostname, PRUint16
      *pPort, char **pPath)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PR_NewTCPSocket
      Src: /src/nss/lib/certhigh/ocsp.c:2934,1
    - Dst: PR_SecondsToInterval
      Src: /src/nss/lib/certhigh/ocsp.c:2939,1
    - Dst: PR_StringToNetAddr
      Src: /src/nss/lib/certhigh/ocsp.c:2949,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/certhigh/ocsp.c:2953,1
    - Dst: PR_GetHostByName
      Src: /src/nss/lib/certhigh/ocsp.c:2957,1
    - Dst: PR_EnumerateHostEnt
      Src: /src/nss/lib/certhigh/ocsp.c:2963,1
    - Dst: PR_Connect
      Src: /src/nss/lib/certhigh/ocsp.c:2966,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certhigh/ocsp.c:2968,1
    - Dst: PR_InitializeNetAddr
      Src: /src/nss/lib/certhigh/ocsp.c:2973,1
    - Dst: PR_Connect
      Src: /src/nss/lib/certhigh/ocsp.c:2975,1
    - Dst: PR_Close
      Src: /src/nss/lib/certhigh/ocsp.c:2983,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certhigh/ocsp.c:2985,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 38
    argCount: 2
    argNames:
    - host
    - port
    argTypes:
    - char*
    - PRUint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2987
      start: 2926
    functionDepth: 1
    functionLinenumber: 2926
    functionLinenumberEnd: 2987
    functionName: ocsp_ConnectToHost
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached:
    - PR_NewTCPSocket
    - PORT_Alloc
    - PR_StringToNetAddr
    - PR_SecondsToInterval
    - PR_Connect
    - PR_GetHostByName
    - PORT_Free
    - PR_InitializeNetAddr
    - PR_EnumerateHostEnt
    - PR_Close
    linkageType: ''
    returnType: PRFileDesc
    signature: 'PRFileDesc *

      ocsp_ConnectToHost(const char *host, PRUint16 port)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ocsp_ParseURL
      Src: /src/nss/lib/certhigh/ocsp.c:3018,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:3022,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:3023,1
    - Dst: ocsp_ConnectToHost
      Src: /src/nss/lib/certhigh/ocsp.c:3025,1
    - Dst: PR_snprintf
      Src: /src/nss/lib/certhigh/ocsp.c:3031,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/certhigh/ocsp.c:3035,1
    - Dst: PR_Write
      Src: /src/nss/lib/certhigh/ocsp.c:3045,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/certhigh/ocsp.c:3045,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/certhigh/ocsp.c:3048,1
    - Dst: PR_Write
      Src: /src/nss/lib/certhigh/ocsp.c:3060,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/certhigh/ocsp.c:3060,1
    - Dst: PR_Write
      Src: /src/nss/lib/certhigh/ocsp.c:3063,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certhigh/ocsp.c:3073,1
    - Dst: PR_Close
      Src: /src/nss/lib/certhigh/ocsp.c:3075,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certhigh/ocsp.c:3077,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certhigh/ocsp.c:3079,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 48
    argCount: 2
    argNames:
    - location
    - encodedRequest
    argTypes:
    - char*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3082
      start: 3003
    functionDepth: 2
    functionLinenumber: 3003
    functionLinenumberEnd: 3082
    functionName: ocsp_SendEncodedRequest
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PR_snprintf
    - ocsp_ConnectToHost
    - PORT_Free
    - PORT_Strlen
    - PR_Write
    - ocsp_ParseURL
    - PR_smprintf
    - PR_Close
    linkageType: ''
    returnType: PRFileDesc
    signature: 'PRFileDesc *

      ocsp_SendEncodedRequest(const char *location, const SECItem *encodedRequest)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PR_Recv
      Src: /src/nss/lib/certhigh/ocsp.c:3097,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 4
    argNames:
    - fd
    - buf
    - toread
    - timeout
    argTypes:
    - PRFileDesc*
    - char*
    - int
    - PRIntervalTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3111
      start: 3089
    functionDepth: 1
    functionLinenumber: 3089
    functionLinenumberEnd: 3111
    functionName: ocsp_read
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached:
    - PR_Recv
    linkageType: ''
    returnType: int
    signature: int ocsp_read(PRFileDesc *fd, char *buf, int toread, PRIntervalTime
      timeout)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - error
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3122
      start: 3115
    functionDepth: 0
    functionLinenumber: 3115
    functionLinenumberEnd: 3122
    functionName: AbortHttpDecode
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AbortHttpDecode(error)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nss/lib/certhigh/ocsp.c:3142,1
    - Dst: strlen
      Src: /src/nss/lib/certhigh/ocsp.c:3144,1
    - Dst: PR_SecondsToInterval
      Src: /src/nss/lib/certhigh/ocsp.c:3146,1
    - Dst: strlen
      Src: /src/nss/lib/certhigh/ocsp.c:3150,1
    - Dst: PORT_Realloc
      Src: /src/nss/lib/certhigh/ocsp.c:3163,1
    - Dst: AbortHttpDecode
      Src: /src/nss/lib/certhigh/ocsp.c:3165,1
    - Dst: ocsp_read
      Src: /src/nss/lib/certhigh/ocsp.c:3167,1
    - Dst: strstr
      Src: /src/nss/lib/certhigh/ocsp.c:3173,1
    - Dst: AbortHttpDecode
      Src: /src/nss/lib/certhigh/ocsp.c:3187,1
    - Dst: strstr
      Src: /src/nss/lib/certhigh/ocsp.c:3191,1
    - Dst: AbortHttpDecode
      Src: /src/nss/lib/certhigh/ocsp.c:3193,1
    - Dst: strchr
      Src: /src/nss/lib/certhigh/ocsp.c:3198,1
    - Dst: PORT_Strncasecmp
      Src: /src/nss/lib/certhigh/ocsp.c:3199,1
    - Dst: AbortHttpDecode
      Src: /src/nss/lib/certhigh/ocsp.c:3200,1
    - Dst: strchr
      Src: /src/nss/lib/certhigh/ocsp.c:3205,1
    - Dst: AbortHttpDecode
      Src: /src/nss/lib/certhigh/ocsp.c:3207,1
    - Dst: strcmp
      Src: /src/nss/lib/certhigh/ocsp.c:3210,1
    - Dst: AbortHttpDecode
      Src: /src/nss/lib/certhigh/ocsp.c:3211,1
    - Dst: strchr
      Src: /src/nss/lib/certhigh/ocsp.c:3223,1
    - Dst: AbortHttpDecode
      Src: /src/nss/lib/certhigh/ocsp.c:3226,1
    - Dst: AbortHttpDecode
      Src: /src/nss/lib/certhigh/ocsp.c:3239,1
    - Dst: strstr
      Src: /src/nss/lib/certhigh/ocsp.c:3243,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/lib/certhigh/ocsp.c:3248,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/lib/certhigh/ocsp.c:3250,1
    - Dst: atoi
      Src: /src/nss/lib/certhigh/ocsp.c:3251,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/lib/certhigh/ocsp.c:3264,1
    - Dst: AbortHttpDecode
      Src: /src/nss/lib/certhigh/ocsp.c:3265,1
    - Dst: PORT_Memmove
      Src: /src/nss/lib/certhigh/ocsp.c:3272,1
    - Dst: PORT_Realloc
      Src: /src/nss/lib/certhigh/ocsp.c:3283,1
    - Dst: AbortHttpDecode
      Src: /src/nss/lib/certhigh/ocsp.c:3285,1
    - Dst: ocsp_read
      Src: /src/nss/lib/certhigh/ocsp.c:3287,1
    - Dst: AbortHttpDecode
      Src: /src/nss/lib/certhigh/ocsp.c:3303,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/certhigh/ocsp.c:3309,1
    - Dst: AbortHttpDecode
      Src: /src/nss/lib/certhigh/ocsp.c:3311,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/certhigh/ocsp.c:3317,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certhigh/ocsp.c:3320,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 102
    argCount: 2
    argNames:
    - arena
    - sock
    argTypes:
    - PLArenaPool*
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3322
      start: 3131
    functionDepth: 2
    functionLinenumber: 3131
    functionLinenumberEnd: 3322
    functionName: ocsp_GetEncodedResponse
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached:
    - strcmp
    - PORT_Memmove
    - PORT_Strcasecmp
    - PORT_Memcpy
    - PR_SecondsToInterval
    - strchr
    - PORT_Strncasecmp
    - PORT_Free
    - atoi
    - SECITEM_AllocItem
    - strstr
    - AbortHttpDecode
    - strlen
    - PORT_Realloc
    - ocsp_read
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      ocsp_GetEncodedResponse(PLArenaPool *arena, PRFileDesc *sock)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ocsp_ParseURL
      Src: /src/nss/lib/certhigh/ocsp.c:3327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - url
    - pHostname
    - pPort
    - pPath
    argTypes:
    - char*
    - char**
    - PRUint16*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3328
      start: 3324
    functionDepth: 2
    functionLinenumber: 3324
    functionLinenumberEnd: 3328
    functionName: CERT_ParseURL
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 4
    functionsReached:
    - ocsp_ParseURL
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERT_ParseURL(const char *url, char **pHostname, PRUint16
      *pPort, char **pPath)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ocsp_ParseURL
      Src: /src/nss/lib/certhigh/ocsp.c:3358,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:3359,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:3363,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:3364,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:3370,1
    - Dst: PR_TicksPerSecond
      Src: /src/nss/lib/certhigh/ocsp.c:3386,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:3388,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:3398,1
    - Dst: OCSP_TRACE
      Src: /src/nss/lib/certhigh/ocsp.c:3405,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:3415,1
    - Dst: OCSP_TRACE
      Src: /src/nss/lib/certhigh/ocsp.c:3419,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:3422,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/certhigh/ocsp.c:3426,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:3429,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/certhigh/ocsp.c:3433,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certhigh/ocsp.c:3441,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certhigh/ocsp.c:3443,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 54
    argCount: 4
    argNames:
    - arena
    - hcv1
    - location
    - encodedRequest
    argTypes:
    - PLArenaPool*
    - SEC_HttpClientFcnV1*
    - char*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3446
      start: 3342
    functionDepth: 2
    functionLinenumber: 3342
    functionLinenumberEnd: 3446
    functionName: fetchOcspHttpClientV1
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_Memcpy
    - PORT_Free
    - SECITEM_AllocItem
    - PORT_SetError
    - PR_TicksPerSecond
    - ocsp_ParseURL
    - OCSP_TRACE
    linkageType: ''
    returnType: SECItem
    signature: "SECItem *\nfetchOcspHttpClientV1(PLArenaPool *arena,\n                      const
      SEC_HttpClientFcnV1 *hcv1,\n                      const char *location,\n                      const
      SECItem *encodedRequest)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CERT_CreateOCSPRequest
      Src: /src/nss/lib/certhigh/ocsp.c:3507,1
    - Dst: ocsp_GetEncodedOCSPResponseFromRequest
      Src: /src/nss/lib/certhigh/ocsp.c:3511,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 9
    argNames:
    - arena
    - certList
    - location
    - method
    - time
    - addServiceLocator
    - signerCert
    - pwArg
    - pRequest
    argTypes:
    - PLArenaPool*
    - CERTCertList*
    - char*
    - char*
    - PRTime
    - PRBool
    - CERTCertificate*
    - void*
    - CERTOCSPRequest**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3514
      start: 3499
    functionDepth: 15
    functionLinenumber: 3499
    functionLinenumberEnd: 3514
    functionName: CERT_GetEncodedOCSPResponseByMethod
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached:
    - CERT_CreateOCSPRequest
    - ocsp_GetEncodedOCSPResponseFromRequest
    linkageType: ''
    returnType: SECItem
    signature: "SECItem *\nCERT_GetEncodedOCSPResponseByMethod(PLArenaPool *arena,
      CERTCertList *certList,\n                                    const char *location,
      const char *method,\n                                    PRTime time, PRBool
      addServiceLocator,\n                                    CERTCertificate *signerCert,
      void *pwArg,\n                                    CERTOCSPRequest **pRequest)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CERT_GetEncodedOCSPResponseByMethod
      Src: /src/nss/lib/certhigh/ocsp.c:3531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - arena
    - certList
    - location
    - time
    - addServiceLocator
    - signerCert
    - pwArg
    - pRequest
    argTypes:
    - PLArenaPool*
    - CERTCertList*
    - char*
    - PRTime
    - PRBool
    - CERTCertificate*
    - void*
    - CERTOCSPRequest**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3534
      start: 3524
    functionDepth: 16
    functionLinenumber: 3524
    functionLinenumberEnd: 3534
    functionName: CERT_GetEncodedOCSPResponse
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 1
    functionsReached:
    - CERT_GetEncodedOCSPResponseByMethod
    linkageType: ''
    returnType: SECItem
    signature: "SECItem *\nCERT_GetEncodedOCSPResponse(PLArenaPool *arena, CERTCertList
      *certList,\n                            const char *location, PRTime time,\n
      \                           PRBool addServiceLocator,\n                            CERTCertificate
      *signerCert, void *pwArg,\n                            CERTOCSPRequest **pRequest)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/nss/lib/certhigh/ocsp.c:3556,1
    - Dst: strcpy
      Src: /src/nss/lib/certhigh/ocsp.c:3561,1
    - Dst: strcpy
      Src: /src/nss/lib/certhigh/ocsp.c:3568,1
    - Dst: strcpy
      Src: /src/nss/lib/certhigh/ocsp.c:3575,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 2
    argNames:
    - base64Buf
    - outputBuf
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3594
      start: 3547
    functionDepth: 1
    functionLinenumber: 3547
    functionLinenumberEnd: 3594
    functionName: ocsp_UrlEncodeBase64Buf
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 1
    functionsReached:
    - isspace
    - strcpy
    linkageType: ''
    returnType: size_t
    signature: size_t ocsp_UrlEncodeBase64Buf(const char *base64Buf, char *outputBuf)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CERT_AddOCSPAcceptableResponses
      Src: /src/nss/lib/certhigh/ocsp.c:3619,1
    - Dst: CERT_EncodeOCSPRequest
      Src: /src/nss/lib/certhigh/ocsp.c:3624,1
    - Dst: strcmp
      Src: /src/nss/lib/certhigh/ocsp.c:3628,1
    - Dst: cert_GetOCSPResponse
      Src: /src/nss/lib/certhigh/ocsp.c:3629,1
    - Dst: strcmp
      Src: /src/nss/lib/certhigh/ocsp.c:3630,1
    - Dst: CERT_PostOCSPRequest
      Src: /src/nss/lib/certhigh/ocsp.c:3631,1
    - Dst: CERT_DestroyOCSPRequest
      Src: /src/nss/lib/certhigh/ocsp.c:3643,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/certhigh/ocsp.c:3645,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 32
    argCount: 8
    argNames:
    - arena
    - request
    - location
    - method
    - time
    - addServiceLocator
    - pwArg
    - pRequest
    argTypes:
    - PLArenaPool*
    - CERTOCSPRequest*
    - char*
    - char*
    - PRTime
    - PRBool
    - void*
    - CERTOCSPRequest**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3647
      start: 3602
    functionDepth: 2
    functionLinenumber: 3602
    functionLinenumberEnd: 3647
    functionName: ocsp_GetEncodedOCSPResponseFromRequest
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 1
    functionsReached:
    - strcmp
    - CERT_PostOCSPRequest
    - cert_GetOCSPResponse
    - CERT_AddOCSPAcceptableResponses
    - CERT_EncodeOCSPRequest
    - CERT_DestroyOCSPRequest
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECItem
    signature: "SECItem *\nocsp_GetEncodedOCSPResponseFromRequest(PLArenaPool *arena,\n
      \                                      CERTOCSPRequest *request,\n                                       const
      char *location,\n                                       const char *method,\n
      \                                      PRTime time,\n                                       PRBool
      addServiceLocator,\n                                       void *pwArg,\n                                       CERTOCSPRequest
      **pRequest)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nss/lib/certhigh/ocsp.c:3672,1
    - Dst: memset
      Src: /src/nss/lib/certhigh/ocsp.c:3684,1
    - Dst: PL_Base64Encode
      Src: /src/nss/lib/certhigh/ocsp.c:3685,1
    - Dst: ocsp_UrlEncodeBase64Buf
      Src: /src/nss/lib/certhigh/ocsp.c:3688,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/certhigh/ocsp.c:3695,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/certhigh/ocsp.c:3697,1
    - Dst: strcpy
      Src: /src/nss/lib/certhigh/ocsp.c:3703,1
    - Dst: strcpy
      Src: /src/nss/lib/certhigh/ocsp.c:3707,1
    - Dst: ocsp_UrlEncodeBase64Buf
      Src: /src/nss/lib/certhigh/ocsp.c:3710,1
    - Dst: cert_FetchOCSPResponse
      Src: /src/nss/lib/certhigh/ocsp.c:3712,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certhigh/ocsp.c:3714,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 3
    argNames:
    - arena
    - location
    - encodedRequest
    argTypes:
    - PLArenaPool*
    - char*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3717
      start: 3654
    functionDepth: 2
    functionLinenumber: 3654
    functionLinenumberEnd: 3717
    functionName: cert_GetOCSPResponse
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 1
    functionsReached:
    - PORT_Alloc
    - cert_FetchOCSPResponse
    - PL_Base64Encode
    - PORT_ArenaAlloc
    - PORT_Free
    - strcpy
    - ocsp_UrlEncodeBase64Buf
    - memset
    - strlen
    linkageType: ''
    returnType: SECItem
    signature: "SECItem *\ncert_GetOCSPResponse(PLArenaPool *arena, const char *location,\n
      \                    const SECItem *encodedRequest)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cert_FetchOCSPResponse
      Src: /src/nss/lib/certhigh/ocsp.c:3723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - arena
    - location
    - encodedRequest
    argTypes:
    - PLArenaPool*
    - char*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3724
      start: 3719
    functionDepth: 1
    functionLinenumber: 3719
    functionLinenumberEnd: 3724
    functionName: CERT_PostOCSPRequest
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 1
    functionsReached:
    - cert_FetchOCSPResponse
    linkageType: ''
    returnType: SECItem
    signature: "SECItem *\nCERT_PostOCSPRequest(PLArenaPool *arena, const char *location,\n
      \                    const SECItem *encodedRequest)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SEC_GetRegisteredHttpClient
      Src: /src/nss/lib/certhigh/ocsp.c:3733,1
    - Dst: fetchOcspHttpClientV1
      Src: /src/nss/lib/certhigh/ocsp.c:3736,1
    - Dst: ocsp_SendEncodedRequest
      Src: /src/nss/lib/certhigh/ocsp.c:3743,1
    - Dst: ocsp_GetEncodedResponse
      Src: /src/nss/lib/certhigh/ocsp.c:3745,1
    - Dst: PR_Close
      Src: /src/nss/lib/certhigh/ocsp.c:3746,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - arena
    - location
    - encodedRequest
    argTypes:
    - PLArenaPool*
    - char*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3751
      start: 3726
    functionDepth: 3
    functionLinenumber: 3726
    functionLinenumberEnd: 3751
    functionName: cert_FetchOCSPResponse
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 2
    functionsReached:
    - ocsp_SendEncodedRequest
    - fetchOcspHttpClientV1
    - SEC_GetRegisteredHttpClient
    - ocsp_GetEncodedResponse
    - PR_Close
    linkageType: ''
    returnType: SECItem
    signature: "SECItem *\ncert_FetchOCSPResponse(PLArenaPool *arena, const char *location,\n
      \                      const SECItem *encodedRequest)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cert_CreateSingleCertOCSPRequest
      Src: /src/nss/lib/certhigh/ocsp.c:3765,1
    - Dst: ocsp_GetEncodedOCSPResponseFromRequest
      Src: /src/nss/lib/certhigh/ocsp.c:3769,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 9
    argNames:
    - arena
    - certID
    - singleCert
    - location
    - method
    - time
    - addServiceLocator
    - pwArg
    - pRequest
    argTypes:
    - PLArenaPool*
    - CERTOCSPCertID*
    - CERTCertificate*
    - char*
    - char*
    - PRTime
    - PRBool
    - void*
    - CERTOCSPRequest**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3772
      start: 3753
    functionDepth: 4
    functionLinenumber: 3753
    functionLinenumberEnd: 3772
    functionName: ocsp_GetEncodedOCSPResponseForSingleCert
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached:
    - ocsp_GetEncodedOCSPResponseFromRequest
    - cert_CreateSingleCertOCSPRequest
    linkageType: ''
    returnType: SECItem
    signature: "SECItem *\nocsp_GetEncodedOCSPResponseForSingleCert(PLArenaPool *arena,\n
      \                                        CERTOCSPCertID *certID,\n                                         CERTCertificate
      *singleCert,\n                                         const char *location,\n
      \                                        const char *method,\n                                         PRTime
      time,\n                                         PRBool addServiceLocator,\n
      \                                        void *pwArg,\n                                         CERTOCSPRequest
      **pRequest)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CERT_FindCertExtension
      Src: /src/nss/lib/certhigh/ocsp.c:3787,1
    - Dst: CERT_DecodeOidSequence
      Src: /src/nss/lib/certhigh/ocsp.c:3792,1
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/certhigh/ocsp.c:3801,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:3812,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certhigh/ocsp.c:3818,1
    - Dst: CERT_DestroyOidSequence
      Src: /src/nss/lib/certhigh/ocsp.c:3821,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 1
    argNames:
    - cert
    argTypes:
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3825
      start: 3775
    functionDepth: 1
    functionLinenumber: 3775
    functionLinenumberEnd: 3825
    functionName: ocsp_CertIsOCSPDesignatedResponder
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached:
    - CERT_DecodeOidSequence
    - CERT_FindCertExtension
    - CERT_DestroyOidSequence
    - PORT_Free
    - SECOID_FindOIDTag
    - PORT_SetError
    linkageType: ''
    returnType: PRBool
    signature: PRBool ocsp_CertIsOCSPDesignatedResponder(CERTCertificate *cert)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CERT_FindCertExtension
      Src: /src/nss/lib/certhigh/ocsp.c:3841,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cert
    argTypes:
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3847
      start: 3836
    functionDepth: 1
    functionLinenumber: 3836
    functionLinenumberEnd: 3847
    functionName: ocsp_CertHasNoCheckExtension
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached:
    - CERT_FindCertExtension
    linkageType: ''
    returnType: PRBool
    signature: PRBool ocsp_CertHasNoCheckExtension(CERTCertificate *cert)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CERT_GetSubjectPublicKeyDigest
      Src: /src/nss/lib/certhigh/ocsp.c:3859,1
    - Dst: SECITEM_ItemsAreEqual
      Src: /src/nss/lib/certhigh/ocsp.c:3863,1
    - Dst: CERT_GetSubjectPublicKeyDigest
      Src: /src/nss/lib/certhigh/ocsp.c:3866,1
    - Dst: SECITEM_ItemsAreEqual
      Src: /src/nss/lib/certhigh/ocsp.c:3870,1
    - Dst: CERT_GetSubjectPublicKeyDigest
      Src: /src/nss/lib/certhigh/ocsp.c:3873,1
    - Dst: SECITEM_ItemsAreEqual
      Src: /src/nss/lib/certhigh/ocsp.c:3877,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - certIndex
    - testCert
    argTypes:
    - SECItem*
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3882
      start: 3850
    functionDepth: 12
    functionLinenumber: 3850
    functionLinenumberEnd: 3882
    functionName: ocsp_matchcert
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached:
    - SECITEM_ItemsAreEqual
    - CERT_GetSubjectPublicKeyDigest
    linkageType: ''
    returnType: PRBool
    signature: PRBool ocsp_matchcert(SECItem *certIndex, CERTCertificate *testCert)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:3898,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:3910,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:3911,1
    - Dst: CERT_ImportCerts
      Src: /src/nss/lib/certhigh/ocsp.c:3926,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/certhigh/ocsp.c:3942,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/certhigh/ocsp.c:3945,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/certhigh/ocsp.c:3949,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:3950,1
    - Dst: CERT_FindCertByName
      Src: /src/nss/lib/certhigh/ocsp.c:3952,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certhigh/ocsp.c:3954,1
    - Dst: ocsp_CertGetDefaultResponder
      Src: /src/nss/lib/certhigh/ocsp.c:3964,1
    - Dst: ocsp_matchcert
      Src: /src/nss/lib/certhigh/ocsp.c:3965,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/certhigh/ocsp.c:3966,1
    - Dst: ocsp_matchcert
      Src: /src/nss/lib/certhigh/ocsp.c:3967,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/certhigh/ocsp.c:3968,1
    - Dst: ocsp_matchcert
      Src: /src/nss/lib/certhigh/ocsp.c:3971,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/certhigh/ocsp.c:3972,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:3976,1
    - Dst: CERT_DestroyCertArray
      Src: /src/nss/lib/certhigh/ocsp.c:3982,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 59
    argCount: 4
    argNames:
    - handle
    - tbsData
    - signature
    - issuer
    argTypes:
    - CERTCertDBHandle*
    - ocspResponseData*
    - ocspSignature*
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3986
      start: 3887
    functionDepth: 13
    functionLinenumber: 3887
    functionLinenumberEnd: 3986
    functionName: ocsp_GetSignerCertificate
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - PORT_NewArena
    - PORT_FreeArena
    - PORT_GetError
    - CERT_DestroyCertArray
    - PORT_SetError
    - SEC_QuickDERDecodeItem
    - CERT_FindCertByName
    - ocsp_matchcert
    - CERT_DupCertificate
    - ocsp_CertGetDefaultResponder
    - CERT_ImportCerts
    linkageType: ''
    returnType: CERTCertificate
    signature: "CERTCertificate *\nocsp_GetSignerCertificate(CERTCertDBHandle *handle,
      ocspResponseData *tbsData,\n                          ocspSignature *signature,
      CERTCertificate *issuer)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CERT_ExtractPublicKey
      Src: /src/nss/lib/certhigh/ocsp.c:4002,1
    - Dst: CERT_VerifySignedDataWithPublicKey
      Src: /src/nss/lib/certhigh/ocsp.c:4016,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/certhigh/ocsp.c:4018,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/certhigh/ocsp.c:4019,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:4020,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/certhigh/ocsp.c:4024,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - signerCert
    - signature
    - tbsResponseDataDER
    - pwArg
    argTypes:
    - CERTCertificate*
    - ocspSignature*
    - SECItem*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4028
      start: 3988
    functionDepth: 4
    functionLinenumber: 3988
    functionLinenumberEnd: 4028
    functionName: ocsp_VerifyResponseSignature
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 1
    functionsReached:
    - SECKEY_DestroyPublicKey
    - PORT_GetError
    - CERT_VerifySignedDataWithPublicKey
    - PORT_SetError
    - CERT_ExtractPublicKey
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ocsp_VerifyResponseSignature(CERTCertificate *signerCert,\n
      \                            ocspSignature *signature,\n                             SECItem
      *tbsResponseDataDER,\n                             void *pwArg)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: ocsp_GetResponseData
      Src: /src/nss/lib/certhigh/ocsp.c:4074,1
    - Dst: ocsp_GetResponseSignature
      Src: /src/nss/lib/certhigh/ocsp.c:4076,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:4079,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/certhigh/ocsp.c:4090,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:4092,1
    - Dst: ocsp_GetSignerCertificate
      Src: /src/nss/lib/certhigh/ocsp.c:4097,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/certhigh/ocsp.c:4101,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:4103,1
    - Dst: DER_GeneralizedTimeToTime
      Src: /src/nss/lib/certhigh/ocsp.c:4122,1
    - Dst: ocsp_CertIsOCSPDefaultResponder
      Src: /src/nss/lib/certhigh/ocsp.c:4130,1
    - Dst: CERT_IsCACert
      Src: /src/nss/lib/certhigh/ocsp.c:4132,1
    - Dst: cert_VerifyCertWithFlags
      Src: /src/nss/lib/certhigh/ocsp.c:4137,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:4141,1
    - Dst: ocsp_VerifyResponseSignature
      Src: /src/nss/lib/certhigh/ocsp.c:4146,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/certhigh/ocsp.c:4155,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/certhigh/ocsp.c:4157,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/certhigh/ocsp.c:4168,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 57
    argCount: 5
    argNames:
    - response
    - handle
    - pwArg
    - pSignerCert
    - issuer
    argTypes:
    - CERTOCSPResponse*
    - CERTCertDBHandle*
    - void*
    - CERTCertificate**
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4173
      start: 4059
    functionDepth: 14
    functionLinenumber: 4059
    functionLinenumberEnd: 4173
    functionName: CERT_VerifyOCSPResponseSignature
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 2
    functionsReached:
    - ocsp_GetResponseData
    - ocsp_GetSignerCertificate
    - ocsp_CertIsOCSPDefaultResponder
    - cert_VerifyCertWithFlags
    - PORT_GetError
    - CERT_IsCACert
    - PORT_SetError
    - ocsp_VerifyResponseSignature
    - ocsp_GetResponseSignature
    - CERT_DupCertificate
    - CERT_DestroyCertificate
    - DER_GeneralizedTimeToTime
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_VerifyOCSPResponseSignature(CERTOCSPResponse *response,\n
      \                                CERTCertDBHandle *handle, void *pwArg,\n                                 CERTCertificate
      **pSignerCert,\n                                 CERTCertificate *issuer)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/certhigh/ocsp.c:4195,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/certhigh/ocsp.c:4207,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/certhigh/ocsp.c:4214,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/certhigh/ocsp.c:4216,1
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/certhigh/ocsp.c:4223,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:4238,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/certhigh/ocsp.c:4243,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/certhigh/ocsp.c:4245,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 2
    argNames:
    - requestCertID
    - responseCertID
    argTypes:
    - CERTOCSPCertID*
    - CERTOCSPCertID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4252
      start: 4180
    functionDepth: 0
    functionLinenumber: 4180
    functionLinenumberEnd: 4252
    functionName: ocsp_CertIDsMatch
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached:
    - SECOID_FindOIDTag
    - SECITEM_CompareItem
    - PORT_SetError
    linkageType: ''
    returnType: PRBool
    signature: "PRBool ocsp_CertIDsMatch(CERTOCSPCertID *requestCertID,\n                  CERTOCSPCertID
      *responseCertID)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ocsp_CertIDsMatch
      Src: /src/nss/lib/certhigh/ocsp.c:4273,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:4286,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - responses
    - handle
    - certID
    argTypes:
    - CERTOCSPSingleResponse**
    - CERTCertDBHandle*
    - CERTOCSPCertID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4288
      start: 4260
    functionDepth: 1
    functionLinenumber: 4260
    functionLinenumberEnd: 4288
    functionName: ocsp_GetSingleResponseForCertID
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - ocsp_CertIDsMatch
    linkageType: ''
    returnType: CERTOCSPSingleResponse
    signature: "CERTOCSPSingleResponse *\nocsp_GetSingleResponseForCertID(CERTOCSPSingleResponse
      **responses,\n                                CERTCertDBHandle *handle,\n                                CERTOCSPCertID
      *certID)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CERT_GetStatusConfig
      Src: /src/nss/lib/certhigh/ocsp.c:4296,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:4306,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:4310,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - handle
    argTypes:
    - CERTCertDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4313
      start: 4290
    functionDepth: 1
    functionLinenumber: 4290
    functionLinenumberEnd: 4313
    functionName: ocsp_GetCheckingContext
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - CERT_GetStatusConfig
    linkageType: ''
    returnType: ocspCheckingContext
    signature: 'ocspCheckingContext *

      ocsp_GetCheckingContext(CERTCertDBHandle *handle)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ocsp_GetCheckingContext
      Src: /src/nss/lib/certhigh/ocsp.c:4324,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:4337,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - handle
    - certID
    argTypes:
    - CERTCertDBHandle*
    - CERTOCSPCertID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4343
      start: 4319
    functionDepth: 2
    functionLinenumber: 4319
    functionLinenumberEnd: 4343
    functionName: ocsp_CertGetDefaultResponder
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - ocsp_GetCheckingContext
    linkageType: ''
    returnType: CERTCertificate
    signature: 'CERTCertificate *

      ocsp_CertGetDefaultResponder(CERTCertDBHandle *handle, CERTOCSPCertID *certID)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ocsp_GetCheckingContext
      Src: /src/nss/lib/certhigh/ocsp.c:4354,1
    - Dst: CERT_CompareCerts
      Src: /src/nss/lib/certhigh/ocsp.c:4367,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - handle
    - cert
    argTypes:
    - CERTCertDBHandle*
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4372
      start: 4349
    functionDepth: 2
    functionLinenumber: 4349
    functionLinenumberEnd: 4372
    functionName: ocsp_CertIsOCSPDefaultResponder
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 2
    functionsReached:
    - ocsp_GetCheckingContext
    - CERT_CompareCerts
    linkageType: ''
    returnType: PRBool
    signature: PRBool ocsp_CertIsOCSPDefaultResponder(CERTCertDBHandle *handle, CERTCertificate
      *cert)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ocsp_CertGetDefaultResponder
      Src: /src/nss/lib/certhigh/ocsp.c:4406,1
    - Dst: CERT_CompareCerts
      Src: /src/nss/lib/certhigh/ocsp.c:4407,1
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/certhigh/ocsp.c:4423,1
    - Dst: CERT_GetSubjectPublicKeyDigest
      Src: /src/nss/lib/certhigh/ocsp.c:4425,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/certhigh/ocsp.c:4429,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/certhigh/ocsp.c:4431,1
    - Dst: CERT_GetSubjectNameDigest
      Src: /src/nss/lib/certhigh/ocsp.c:4434,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/certhigh/ocsp.c:4437,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/certhigh/ocsp.c:4440,1
    - Dst: ocsp_CertIsOCSPDesignatedResponder
      Src: /src/nss/lib/certhigh/ocsp.c:4450,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:4451,1
    - Dst: CERT_FindCertIssuer
      Src: /src/nss/lib/certhigh/ocsp.c:4459,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:4467,1
    - Dst: CERT_GetSubjectPublicKeyDigest
      Src: /src/nss/lib/certhigh/ocsp.c:4471,1
    - Dst: CERT_GetSubjectNameDigest
      Src: /src/nss/lib/certhigh/ocsp.c:4472,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/certhigh/ocsp.c:4474,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/certhigh/ocsp.c:4478,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/certhigh/ocsp.c:4482,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/certhigh/ocsp.c:4487,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/certhigh/ocsp.c:4490,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:4497,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 4
    argNames:
    - handle
    - signerCert
    - certID
    - thisUpdate
    argTypes:
    - CERTCertDBHandle*
    - CERTCertificate*
    - CERTOCSPCertID*
    - PRTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4499
      start: 4391
    functionDepth: 12
    functionLinenumber: 4391
    functionLinenumberEnd: 4499
    functionName: ocsp_AuthorizedResponderForCertID
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached:
    - SECITEM_CompareItem
    - CERT_FindCertIssuer
    - CERT_CompareCerts
    - ocsp_CertIsOCSPDesignatedResponder
    - SECOID_FindOIDTag
    - PORT_SetError
    - CERT_DestroyCertificate
    - ocsp_CertGetDefaultResponder
    - CERT_GetSubjectNameDigest
    - CERT_GetSubjectPublicKeyDigest
    - SECITEM_FreeItem
    linkageType: ''
    returnType: PRBool
    signature: "PRBool ocsp_AuthorizedResponderForCertID(CERTCertDBHandle *handle,\n
      \                                 CERTCertificate *signerCert,\n                                  CERTOCSPCertID
      *certID,\n                                  PRTime thisUpdate)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_Now
      Src: /src/nss/lib/certhigh/ocsp.c:4518,1
    - Dst: LL_I2L
      Src: /src/nss/lib/certhigh/ocsp.c:4521,1
    - Dst: LL_I2L
      Src: /src/nss/lib/certhigh/ocsp.c:4522,1
    - Dst: LL_MUL
      Src: /src/nss/lib/certhigh/ocsp.c:4523,1
    - Dst: LL_ADD
      Src: /src/nss/lib/certhigh/ocsp.c:4525,1
    - Dst: LL_CMP
      Src: /src/nss/lib/certhigh/ocsp.c:4526,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - checkTime
    argTypes:
    - PRTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4530
      start: 4515
    functionDepth: 1
    functionLinenumber: 4515
    functionLinenumberEnd: 4530
    functionName: ocsp_TimeIsRecent
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached:
    - LL_I2L
    - LL_ADD
    - LL_MUL
    - PR_Now
    - LL_CMP
    linkageType: ''
    returnType: PRBool
    signature: PRBool ocsp_TimeIsRecent(PRTime checkTime)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ocsp_CertRevokedAfter
      Src: /src/nss/lib/certhigh/ocsp.c:4547,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/certhigh/ocsp.c:4549,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:4559,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - single
    - time
    argTypes:
    - CERTOCSPSingleResponse*
    - PRTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4561
      start: 4541
    functionDepth: 1
    functionLinenumber: 4541
    functionLinenumberEnd: 4561
    functionName: ocsp_HandleOldSingleResponse
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PORT_GetError
    - ocsp_CertRevokedAfter
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ocsp_HandleOldSingleResponse(CERTOCSPSingleResponse *single,
      PRTime time)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_TRACE
      Src: /src/nss/lib/certhigh/ocsp.c:4596,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:4604,1
    - Dst: DER_GeneralizedTimeToTime
      Src: /src/nss/lib/certhigh/ocsp.c:4613,1
    - Dst: ocsp_AuthorizedResponderForCertID
      Src: /src/nss/lib/certhigh/ocsp.c:4620,1
    - Dst: PR_Now
      Src: /src/nss/lib/certhigh/ocsp.c:4627,1
    - Dst: LL_UI2L
      Src: /src/nss/lib/certhigh/ocsp.c:4629,1
    - Dst: LL_UI2L
      Src: /src/nss/lib/certhigh/ocsp.c:4630,1
    - Dst: LL_MUL
      Src: /src/nss/lib/certhigh/ocsp.c:4631,1
    - Dst: LL_ADD
      Src: /src/nss/lib/certhigh/ocsp.c:4632,1
    - Dst: LL_CMP
      Src: /src/nss/lib/certhigh/ocsp.c:4634,1
    - Dst: LL_CMP
      Src: /src/nss/lib/certhigh/ocsp.c:4634,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:4635,1
    - Dst: DER_GeneralizedTimeToTime
      Src: /src/nss/lib/certhigh/ocsp.c:4639,1
    - Dst: LL_ADD
      Src: /src/nss/lib/certhigh/ocsp.c:4643,1
    - Dst: LL_CMP
      Src: /src/nss/lib/certhigh/ocsp.c:4644,1
    - Dst: LL_CMP
      Src: /src/nss/lib/certhigh/ocsp.c:4644,1
    - Dst: ocsp_HandleOldSingleResponse
      Src: /src/nss/lib/certhigh/ocsp.c:4645,1
    - Dst: ocsp_TimeIsRecent
      Src: /src/nss/lib/certhigh/ocsp.c:4646,1
    - Dst: ocsp_HandleOldSingleResponse
      Src: /src/nss/lib/certhigh/ocsp.c:4647,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 4
    argNames:
    - single
    - handle
    - signerCert
    - producedAt
    argTypes:
    - CERTOCSPSingleResponse*
    - CERTCertDBHandle*
    - CERTCertificate*
    - PRTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4651
      start: 4586
    functionDepth: 13
    functionLinenumber: 4586
    functionLinenumberEnd: 4651
    functionName: ocsp_VerifySingleResponse
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - LL_UI2L
    - LL_ADD
    - LL_MUL
    - ocsp_HandleOldSingleResponse
    - PR_Now
    - ocsp_AuthorizedResponderForCertID
    - PORT_SetError
    - ocsp_TimeIsRecent
    - LL_CMP
    - DER_GeneralizedTimeToTime
    - OCSP_TRACE
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ocsp_VerifySingleResponse(CERTOCSPSingleResponse *single,\n
      \                         CERTCertDBHandle *handle,\n                          CERTCertificate
      *signerCert,\n                          PRTime producedAt)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/certhigh/ocsp.c:4687,1
    - Dst: CERT_FindCertExtension
      Src: /src/nss/lib/certhigh/ocsp.c:4691,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:4694,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/certhigh/ocsp.c:4704,1
    - Dst: CERT_DecodeAuthInfoAccessExtension
      Src: /src/nss/lib/certhigh/ocsp.c:4708,1
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/certhigh/ocsp.c:4714,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:4726,1
    - Dst: CERT_GetGeneralNameByType
      Src: /src/nss/lib/certhigh/ocsp.c:4734,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:4743,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/certhigh/ocsp.c:4753,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/certhigh/ocsp.c:4757,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certhigh/ocsp.c:4762,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/certhigh/ocsp.c:4765,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 48
    argCount: 1
    argNames:
    - cert
    argTypes:
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4768
      start: 4670
    functionDepth: 1
    functionLinenumber: 4670
    functionLinenumberEnd: 4768
    functionName: CERT_GetOCSPAuthorityInfoAccessLocation
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 1
    functionsReached:
    - PORT_Alloc
    - CERT_FindCertExtension
    - PORT_Memcpy
    - PORT_NewArena
    - CERT_GetGeneralNameByType
    - PORT_FreeArena
    - SECITEM_AllocItem
    - SECOID_FindOIDTag
    - PORT_SetError
    - CERT_DecodeAuthInfoAccessExtension
    - SECITEM_FreeItem
    linkageType: ''
    returnType: char
    signature: 'char *

      CERT_GetOCSPAuthorityInfoAccessLocation(const CERTCertificate *cert)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ocsp_GetCheckingContext
      Src: /src/nss/lib/certhigh/ocsp.c:4791,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:4800,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/certhigh/ocsp.c:4802,1
    - Dst: CERT_GetOCSPAuthorityInfoAccessLocation
      Src: /src/nss/lib/certhigh/ocsp.c:4810,1
    - Dst: PR_EnterMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:4814,1
    - Dst: PR_ExitMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:4816,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 4
    argNames:
    - handle
    - cert
    - canUseDefault
    - isDefault
    argTypes:
    - CERTCertDBHandle*
    - CERTCertificate*
    - PRBool
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4824
      start: 4783
    functionDepth: 2
    functionLinenumber: 4783
    functionLinenumberEnd: 4824
    functionName: ocsp_GetResponderLocation
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - CERT_GetOCSPAuthorityInfoAccessLocation
    - ocsp_GetCheckingContext
    - PR_EnterMonitor
    - PR_ExitMonitor
    - PORT_Strdup
    linkageType: ''
    returnType: char
    signature: "char *\nocsp_GetResponderLocation(CERTCertDBHandle *handle, CERTCertificate
      *cert,\n                          PRBool canUseDefault, PRBool *isDefault)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DER_GeneralizedTimeToTime
      Src: /src/nss/lib/certhigh/ocsp.c:4836,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:4843,1
    - Dst: LL_CMP
      Src: /src/nss/lib/certhigh/ocsp.c:4845,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - revokedInfo
    - time
    argTypes:
    - ocspRevokedInfo*
    - PRTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4849
      start: 4830
    functionDepth: 1
    functionLinenumber: 4830
    functionLinenumberEnd: 4849
    functionName: ocsp_CertRevokedAfter
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 1
    functionsReached:
    - DER_GeneralizedTimeToTime
    - PORT_SetError
    - LL_CMP
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ocsp_CertRevokedAfter(ocspRevokedInfo *revokedInfo, PRTime
      time)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ocsp_CertRevokedAfter
      Src: /src/nss/lib/certhigh/ocsp.c:4864,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:4867,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:4872,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:4873,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - status
    - time
    argTypes:
    - ocspCertStatus*
    - PRTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4878
      start: 4855
    functionDepth: 2
    functionLinenumber: 4855
    functionLinenumberEnd: 4878
    functionName: ocsp_CertHasGoodStatus
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - ocsp_CertRevokedAfter
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ocsp_CertHasGoodStatus(ocspCertStatus *status, PRTime time)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ocsp_CertHasGoodStatus
      Src: /src/nss/lib/certhigh/ocsp.c:4884,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - single
    - time
    argTypes:
    - CERTOCSPSingleResponse*
    - PRTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4885
      start: 4880
    functionDepth: 3
    functionLinenumber: 4880
    functionLinenumberEnd: 4885
    functionName: ocsp_SingleResponseCertHasGoodStatus
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached:
    - ocsp_CertHasGoodStatus
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ocsp_SingleResponseCertHasGoodStatus(CERTOCSPSingleResponse
      *single,\n                                     PRTime time)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:4910,1
    - Dst: PR_EnterMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:4917,1
    - Dst: ocsp_FindCacheEntry
      Src: /src/nss/lib/certhigh/ocsp.c:4918,1
    - Dst: ocsp_IsCacheItemFresh
      Src: /src/nss/lib/certhigh/ocsp.c:4920,1
    - Dst: ocsp_CertHasGoodStatus
      Src: /src/nss/lib/certhigh/ocsp.c:4924,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/certhigh/ocsp.c:4926,1
    - Dst: PR_ExitMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:4944,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 6
    argNames:
    - certID
    - time
    - ignoreGlobalOcspFailureSetting
    - rvOcsp
    - missingResponseError
    - cacheFreshness
    argTypes:
    - CERTOCSPCertID*
    - PRTime
    - PRBool
    - SECStatus*
    - SECErrorCodes*
    - OCSPFreshness*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4946
      start: 4899
    functionDepth: 3
    functionLinenumber: 4899
    functionLinenumberEnd: 4946
    functionName: ocsp_GetCachedOCSPResponseStatus
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 1
    functionsReached:
    - ocsp_FindCacheEntry
    - ocsp_IsCacheItemFresh
    - PR_EnterMonitor
    - PORT_GetError
    - ocsp_CertHasGoodStatus
    - PORT_SetError
    - PR_ExitMonitor
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ocsp_GetCachedOCSPResponseStatus(CERTOCSPCertID *certID,\n
      \                                PRTime time,\n                                 PRBool
      ignoreGlobalOcspFailureSetting,\n                                 SECStatus
      *rvOcsp,\n                                 SECErrorCodes *missingResponseError,\n
      \                                OCSPFreshness *cacheFreshness)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_EnterMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:4953,1
    - Dst: PR_ExitMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:4956,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4958
      start: 4948
    functionDepth: 0
    functionLinenumber: 4948
    functionLinenumberEnd: 4958
    functionName: ocsp_FetchingFailureIsVerificationFailure
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 1
    functionsReached:
    - PR_ExitMonitor
    - PR_EnterMonitor
    linkageType: ''
    returnType: PRBool
    signature: PRBool ocsp_FetchingFailureIsVerificationFailure(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: OCSP_TRACE_CERT
      Src: /src/nss/lib/certhigh/ocsp.c:5021,1
    - Dst: OCSP_TRACE_TIME
      Src: /src/nss/lib/certhigh/ocsp.c:5022,1
    - Dst: CERT_CreateOCSPCertID
      Src: /src/nss/lib/certhigh/ocsp.c:5024,1
    - Dst: ocsp_GetCachedOCSPResponseStatus
      Src: /src/nss/lib/certhigh/ocsp.c:5027,1
    - Dst: CERT_DestroyOCSPCertID
      Src: /src/nss/lib/certhigh/ocsp.c:5031,1
    - Dst: CERT_DestroyOCSPCertID
      Src: /src/nss/lib/certhigh/ocsp.c:5035,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:5037,1
    - Dst: ocsp_GetOCSPStatusFromNetwork
      Src: /src/nss/lib/certhigh/ocsp.c:5042,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/certhigh/ocsp.c:5046,1
    - Dst: ocsp_FetchingFailureIsVerificationFailure
      Src: /src/nss/lib/certhigh/ocsp.c:5047,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:5048,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:5060,1
    - Dst: CERT_DestroyOCSPCertID
      Src: /src/nss/lib/certhigh/ocsp.c:5067,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 4
    argNames:
    - handle
    - cert
    - time
    - pwArg
    argTypes:
    - CERTCertDBHandle*
    - CERTCertificate*
    - PRTime
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5070
      start: 5010
    functionDepth: 14
    functionLinenumber: 5010
    functionLinenumberEnd: 5070
    functionName: CERT_CheckOCSPStatus
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 1
    functionsReached:
    - CERT_CreateOCSPCertID
    - CERT_DestroyOCSPCertID
    - ocsp_GetOCSPStatusFromNetwork
    - PORT_GetError
    - ocsp_GetCachedOCSPResponseStatus
    - OCSP_TRACE_CERT
    - PORT_SetError
    - OCSP_TRACE_TIME
    - ocsp_FetchingFailureIsVerificationFailure
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_CheckOCSPStatus(CERTCertDBHandle *handle, CERTCertificate
      *cert,\n                     PRTime time, void *pwArg)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:5156,1
    - Dst: CERT_CreateOCSPCertID
      Src: /src/nss/lib/certhigh/ocsp.c:5159,1
    - Dst: ocsp_GetCachedOCSPResponseStatus
      Src: /src/nss/lib/certhigh/ocsp.c:5166,1
    - Dst: CERT_DestroyOCSPCertID
      Src: /src/nss/lib/certhigh/ocsp.c:5172,1
    - Dst: ocsp_GetDecodedVerifiedSingleResponseForID
      Src: /src/nss/lib/certhigh/ocsp.c:5179,1
    - Dst: ocsp_SingleResponseCertHasGoodStatus
      Src: /src/nss/lib/certhigh/ocsp.c:5185,1
    - Dst: ocsp_CacheSingleResponse
      Src: /src/nss/lib/certhigh/ocsp.c:5187,1
    - Dst: CERT_DestroyOCSPResponse
      Src: /src/nss/lib/certhigh/ocsp.c:5190,1
    - Dst: CERT_DestroyOCSPCertID
      Src: /src/nss/lib/certhigh/ocsp.c:5193,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 5
    argNames:
    - handle
    - cert
    - time
    - encodedResponse
    - pwArg
    argTypes:
    - CERTCertDBHandle*
    - CERTCertificate*
    - PRTime
    - SECItem*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5196
      start: 5100
    functionDepth: 14
    functionLinenumber: 5100
    functionLinenumberEnd: 5196
    functionName: CERT_CacheOCSPResponseFromSideChannel
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 1
    functionsReached:
    - ocsp_SingleResponseCertHasGoodStatus
    - CERT_CreateOCSPCertID
    - ocsp_GetDecodedVerifiedSingleResponseForID
    - CERT_DestroyOCSPCertID
    - CERT_DestroyOCSPResponse
    - PORT_SetError
    - ocsp_GetCachedOCSPResponseStatus
    - ocsp_CacheSingleResponse
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_CacheOCSPResponseFromSideChannel(CERTCertDBHandle *handle,\n
      \                                     CERTCertificate *cert,\n                                      PRTime
      time,\n                                      const SECItem *encodedResponse,\n
      \                                     void *pwArg)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:5224,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:5231,1
    - Dst: PR_EnterMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:5234,1
    - Dst: PR_ExitMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:5240,1
    - Dst: ocsp_GetResponderLocation
      Src: /src/nss/lib/certhigh/ocsp.c:5253,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/certhigh/ocsp.c:5256,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:5259,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:5297,1
    - Dst: ocsp_GetEncodedOCSPResponseForSingleCert
      Src: /src/nss/lib/certhigh/ocsp.c:5302,1
    - Dst: ocsp_GetDecodedVerifiedSingleResponseForID
      Src: /src/nss/lib/certhigh/ocsp.c:5308,1
    - Dst: ocsp_SingleResponseCertHasGoodStatus
      Src: /src/nss/lib/certhigh/ocsp.c:5322,1
    - Dst: ocsp_CacheSingleResponse
      Src: /src/nss/lib/certhigh/ocsp.c:5329,1
    - Dst: cert_RememberOCSPProcessingFailure
      Src: /src/nss/lib/certhigh/ocsp.c:5338,1
    - Dst: ocsp_CacheSingleResponse
      Src: /src/nss/lib/certhigh/ocsp.c:5340,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/certhigh/ocsp.c:5346,1
    - Dst: CERT_DestroyOCSPRequest
      Src: /src/nss/lib/certhigh/ocsp.c:5350,1
    - Dst: CERT_DestroyOCSPResponse
      Src: /src/nss/lib/certhigh/ocsp.c:5354,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certhigh/ocsp.c:5361,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 81
    argCount: 7
    argNames:
    - handle
    - certID
    - cert
    - time
    - pwArg
    - certIDWasConsumed
    - rv_ocsp
    argTypes:
    - CERTCertDBHandle*
    - CERTOCSPCertID*
    - CERTCertificate*
    - PRTime
    - void*
    - PRBool*
    - SECStatus*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5363
      start: 5202
    functionDepth: 5
    functionLinenumber: 5202
    functionLinenumberEnd: 5363
    functionName: ocsp_GetOCSPStatusFromNetwork
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 1
    functionsReached:
    - ocsp_SingleResponseCertHasGoodStatus
    - PORT_Assert
    - cert_RememberOCSPProcessingFailure
    - ocsp_GetEncodedOCSPResponseForSingleCert
    - ocsp_GetDecodedVerifiedSingleResponseForID
    - PORT_Free
    - ocsp_GetResponderLocation
    - PR_EnterMonitor
    - PORT_GetError
    - CERT_DestroyOCSPResponse
    - PORT_SetError
    - PR_ExitMonitor
    - CERT_DestroyOCSPRequest
    - ocsp_CacheSingleResponse
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ocsp_GetOCSPStatusFromNetwork(CERTCertDBHandle *handle,\n
      \                             CERTOCSPCertID *certID,\n                              CERTCertificate
      *cert,\n                              PRTime time,\n                              void
      *pwArg,\n                              PRBool *certIDWasConsumed,\n                              SECStatus
      *rv_ocsp)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CERT_DecodeOCSPResponse
      Src: /src/nss/lib/certhigh/ocsp.c:5416,1
    - Dst: CERT_GetOCSPResponseStatus
      Src: /src/nss/lib/certhigh/ocsp.c:5430,1
    - Dst: CERT_FindCertIssuer
      Src: /src/nss/lib/certhigh/ocsp.c:5438,1
    - Dst: CERT_VerifyOCSPResponseSignature
      Src: /src/nss/lib/certhigh/ocsp.c:5439,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:5445,1
    - Dst: ocsp_GetVerifiedSingleResponseForCertID
      Src: /src/nss/lib/certhigh/ocsp.c:5454,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/certhigh/ocsp.c:5458,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/certhigh/ocsp.c:5460,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 8
    argNames:
    - handle
    - certID
    - cert
    - time
    - pwArg
    - encodedResponse
    - pDecodedResponse
    - pSingle
    argTypes:
    - CERTCertDBHandle*
    - CERTOCSPCertID*
    - CERTCertificate*
    - PRTime
    - void*
    - SECItem*
    - CERTOCSPResponse**
    - CERTOCSPSingleResponse**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5462
      start: 5398
    functionDepth: 15
    functionLinenumber: 5398
    functionLinenumberEnd: 5462
    functionName: ocsp_GetDecodedVerifiedSingleResponseForID
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 2
    functionsReached:
    - CERT_FindCertIssuer
    - CERT_GetOCSPResponseStatus
    - PORT_Assert
    - CERT_VerifyOCSPResponseSignature
    - CERT_DecodeOCSPResponse
    - CERT_DestroyCertificate
    - ocsp_GetVerifiedSingleResponseForCertID
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ocsp_GetDecodedVerifiedSingleResponseForID(CERTCertDBHandle
      *handle,\n                                           CERTOCSPCertID *certID,\n
      \                                          CERTCertificate *cert,\n                                           PRTime
      time,\n                                           void *pwArg,\n                                           const
      SECItem *encodedResponse,\n                                           CERTOCSPResponse
      **pDecodedResponse,\n                                           CERTOCSPSingleResponse
      **pSingle)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_EnterMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:5482,1
    - Dst: ocsp_CreateOrUpdateCacheEntry
      Src: /src/nss/lib/certhigh/ocsp.c:5484,1
    - Dst: PR_ExitMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:5488,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - certID
    - single
    - certIDWasConsumed
    argTypes:
    - CERTOCSPCertID*
    - CERTOCSPSingleResponse*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5490
      start: 5476
    functionDepth: 5
    functionLinenumber: 5476
    functionLinenumberEnd: 5490
    functionName: ocsp_CacheSingleResponse
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 3
    functionsReached:
    - PR_ExitMonitor
    - PR_EnterMonitor
    - ocsp_CreateOrUpdateCacheEntry
    linkageType: ''
    returnType: void
    signature: "void ocsp_CacheSingleResponse(CERTOCSPCertID *certID,\n                         CERTOCSPSingleResponse
      *single,\n                         PRBool *certIDWasConsumed)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ocsp_GetResponseData
      Src: /src/nss/lib/certhigh/ocsp.c:5509,1
    - Dst: DER_GeneralizedTimeToTime
      Src: /src/nss/lib/certhigh/ocsp.c:5521,1
    - Dst: ocsp_GetSingleResponseForCertID
      Src: /src/nss/lib/certhigh/ocsp.c:5525,1
    - Dst: ocsp_VerifySingleResponse
      Src: /src/nss/lib/certhigh/ocsp.c:5532,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 6
    argNames:
    - handle
    - response
    - certID
    - signerCert
    - time
    - pSingleResponse
    argTypes:
    - CERTCertDBHandle*
    - CERTOCSPResponse*
    - CERTOCSPCertID*
    - CERTCertificate*
    - PRTime
    - CERTOCSPSingleResponse**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5539
      start: 5492
    functionDepth: 14
    functionLinenumber: 5492
    functionLinenumberEnd: 5539
    functionName: ocsp_GetVerifiedSingleResponseForCertID
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 2
    functionsReached:
    - ocsp_GetResponseData
    - DER_GeneralizedTimeToTime
    - ocsp_GetSingleResponseForCertID
    - ocsp_VerifySingleResponse
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ocsp_GetVerifiedSingleResponseForCertID(CERTCertDBHandle
      *handle,\n                                        CERTOCSPResponse *response,\n
      \                                       CERTOCSPCertID *certID,\n                                        CERTCertificate
      *signerCert,\n                                        PRTime time,\n                                        CERTOCSPSingleResponse\n
      \                                           **pSingleResponse)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cert_ProcessOCSPResponse
      Src: /src/nss/lib/certhigh/ocsp.c:5567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - handle
    - response
    - certID
    - signerCert
    - time
    argTypes:
    - CERTCertDBHandle*
    - CERTOCSPResponse*
    - CERTOCSPCertID*
    - CERTCertificate*
    - PRTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5570
      start: 5541
    functionDepth: 1
    functionLinenumber: 5541
    functionLinenumberEnd: 5570
    functionName: CERT_GetOCSPStatusForCertID
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 1
    functionsReached:
    - cert_ProcessOCSPResponse
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_GetOCSPStatusForCertID(CERTCertDBHandle *handle,\n
      \                           CERTOCSPResponse *response,\n                            CERTOCSPCertID
      *certID,\n                            CERTCertificate *signerCert,\n                            PRTime
      time)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ocsp_GetVerifiedSingleResponseForCertID
      Src: /src/nss/lib/certhigh/ocsp.c:5588,1
    - Dst: ocsp_SingleResponseCertHasGoodStatus
      Src: /src/nss/lib/certhigh/ocsp.c:5595,1
    - Dst: PR_EnterMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:5605,1
    - Dst: ocsp_CreateOrUpdateCacheEntry
      Src: /src/nss/lib/certhigh/ocsp.c:5609,1
    - Dst: PR_ExitMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:5612,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 7
    argNames:
    - handle
    - response
    - certID
    - signerCert
    - time
    - certIDWasConsumed
    - cacheUpdateStatus
    argTypes:
    - CERTCertDBHandle*
    - CERTOCSPResponse*
    - CERTOCSPCertID*
    - CERTCertificate*
    - PRTime
    - PRBool*
    - SECStatus*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5619
      start: 5575
    functionDepth: 15
    functionLinenumber: 5575
    functionLinenumberEnd: 5619
    functionName: cert_ProcessOCSPResponse
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 1
    functionsReached:
    - ocsp_SingleResponseCertHasGoodStatus
    - PR_EnterMonitor
    - PR_ExitMonitor
    - ocsp_CreateOrUpdateCacheEntry
    - ocsp_GetVerifiedSingleResponseForCertID
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus cert_ProcessOCSPResponse(CERTCertDBHandle *handle,\n                         CERTOCSPResponse
      *response,\n                         CERTOCSPCertID *certID,\n                         CERTCertificate
      *signerCert,\n                         PRTime time,\n                         PRBool
      *certIDWasConsumed,\n                         SECStatus *cacheUpdateStatus)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_EnterMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:5626,1
    - Dst: ocsp_CreateOrUpdateCacheEntry
      Src: /src/nss/lib/certhigh/ocsp.c:5628,1
    - Dst: PR_ExitMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:5631,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - certID
    - certIDWasConsumed
    argTypes:
    - CERTOCSPCertID*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5633
      start: 5621
    functionDepth: 5
    functionLinenumber: 5621
    functionLinenumberEnd: 5633
    functionName: cert_RememberOCSPProcessingFailure
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 3
    functionsReached:
    - PR_ExitMonitor
    - PR_EnterMonitor
    - ocsp_CreateOrUpdateCacheEntry
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus cert_RememberOCSPProcessingFailure(CERTOCSPCertID *certID,\n
      \                                  PRBool *certIDWasConsumed)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:5649,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certhigh/ocsp.c:5654,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certhigh/ocsp.c:5656,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certhigh/ocsp.c:5658,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certhigh/ocsp.c:5661,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - statusConfig
    argTypes:
    - CERTStatusConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5664
      start: 5638
    functionDepth: 0
    functionLinenumber: 5638
    functionLinenumberEnd: 5664
    functionName: ocsp_DestroyStatusChecking
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - PORT_Assert
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ocsp_DestroyStatusChecking(CERTStatusConfig *statusConfig)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:5688,1
    - Dst: CERT_GetStatusConfig
      Src: /src/nss/lib/certhigh/ocsp.c:5692,1
    - Dst: ocsp_GetCheckingContext
      Src: /src/nss/lib/certhigh/ocsp.c:5693,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:5702,1
    - Dst: CERT_ClearOCSPCache
      Src: /src/nss/lib/certhigh/ocsp.c:5707,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - handle
    argTypes:
    - CERTCertDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5716
      start: 5681
    functionDepth: 4
    functionLinenumber: 5681
    functionLinenumberEnd: 5716
    functionName: CERT_DisableOCSPChecking
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 2
    functionsReached:
    - PORT_SetError
    - CERT_ClearOCSPCache
    - ocsp_GetCheckingContext
    - CERT_GetStatusConfig
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERT_DisableOCSPChecking(CERTCertDBHandle *handle)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:5729,1
    - Dst: CERT_GetStatusConfig
      Src: /src/nss/lib/certhigh/ocsp.c:5729,1
    - Dst: CERT_GetStatusConfig
      Src: /src/nss/lib/certhigh/ocsp.c:5730,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/certhigh/ocsp.c:5735,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/certhigh/ocsp.c:5739,1
    - Dst: CERT_SetStatusConfig
      Src: /src/nss/lib/certhigh/ocsp.c:5746,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certhigh/ocsp.c:5752,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - handle
    argTypes:
    - CERTCertDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5754
      start: 5723
    functionDepth: 1
    functionLinenumber: 5723
    functionLinenumberEnd: 5754
    functionName: ocsp_InitStatusChecking
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - CERT_SetStatusConfig
    - PORT_ZNew
    - PORT_Free
    - CERT_GetStatusConfig
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ocsp_InitStatusChecking(CERTCertDBHandle *handle)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:5774,1
    - Dst: CERT_GetStatusConfig
      Src: /src/nss/lib/certhigh/ocsp.c:5778,1
    - Dst: ocsp_InitStatusChecking
      Src: /src/nss/lib/certhigh/ocsp.c:5780,1
    - Dst: CERT_GetStatusConfig
      Src: /src/nss/lib/certhigh/ocsp.c:5785,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:5786,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - handle
    argTypes:
    - CERTCertDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5796
      start: 5766
    functionDepth: 2
    functionLinenumber: 5766
    functionLinenumberEnd: 5796
    functionName: CERT_EnableOCSPChecking
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 4
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - ocsp_InitStatusChecking
    - CERT_GetStatusConfig
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERT_EnableOCSPChecking(CERTCertDBHandle *handle)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:5837,1
    - Dst: CERT_FindCertByNickname
      Src: /src/nss/lib/certhigh/ocsp.c:5848,1
    - Dst: PK11_FindCertFromNickname
      Src: /src/nss/lib/certhigh/ocsp.c:5853,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/certhigh/ocsp.c:5861,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/certhigh/ocsp.c:5862,1
    - Dst: ocsp_GetCheckingContext
      Src: /src/nss/lib/certhigh/ocsp.c:5868,1
    - Dst: ocsp_InitStatusChecking
      Src: /src/nss/lib/certhigh/ocsp.c:5874,1
    - Dst: ocsp_GetCheckingContext
      Src: /src/nss/lib/certhigh/ocsp.c:5878,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:5879,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certhigh/ocsp.c:5892,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certhigh/ocsp.c:5894,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/certhigh/ocsp.c:5909,1
    - Dst: CERT_ClearOCSPCache
      Src: /src/nss/lib/certhigh/ocsp.c:5912,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:5914,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/certhigh/ocsp.c:5915,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/certhigh/ocsp.c:5922,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certhigh/ocsp.c:5924,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certhigh/ocsp.c:5926,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 50
    argCount: 3
    argNames:
    - handle
    - url
    - name
    argTypes:
    - CERTCertDBHandle*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5928
      start: 5822
    functionDepth: 9
    functionLinenumber: 5822
    functionLinenumberEnd: 5928
    functionName: CERT_SetOCSPDefaultResponder
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 2
    functionsReached:
    - PORT_Assert
    - ocsp_GetCheckingContext
    - PORT_Free
    - PORT_SetError
    - CERT_ClearOCSPCache
    - CERT_DestroyCertificate
    - CERT_FindCertByNickname
    - PK11_FindCertFromNickname
    - PORT_Strdup
    - ocsp_InitStatusChecking
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_SetOCSPDefaultResponder(CERTCertDBHandle *handle,\n
      \                            const char *url, const char *name)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:5956,1
    - Dst: ocsp_GetCheckingContext
      Src: /src/nss/lib/certhigh/ocsp.c:5960,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:5967,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:5972,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:5977,1
    - Dst: CERT_FindCertByNickname
      Src: /src/nss/lib/certhigh/ocsp.c:5984,1
    - Dst: PK11_FindCertFromNickname
      Src: /src/nss/lib/certhigh/ocsp.c:5987,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:5994,1
    - Dst: CERT_VerifyCertificateNow
      Src: /src/nss/lib/certhigh/ocsp.c:6003,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:6007,1
    - Dst: CERT_ClearOCSPCache
      Src: /src/nss/lib/certhigh/ocsp.c:6017,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 1
    argNames:
    - handle
    argTypes:
    - CERTCertDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6024
      start: 5947
    functionDepth: 9
    functionLinenumber: 5947
    functionLinenumberEnd: 6024
    functionName: CERT_EnableOCSPDefaultResponder
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 2
    functionsReached:
    - PORT_Assert
    - CERT_VerifyCertificateNow
    - ocsp_GetCheckingContext
    - PORT_SetError
    - CERT_ClearOCSPCache
    - CERT_FindCertByNickname
    - PK11_FindCertFromNickname
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERT_EnableOCSPDefaultResponder(CERTCertDBHandle *handle)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:6046,1
    - Dst: CERT_GetStatusConfig
      Src: /src/nss/lib/certhigh/ocsp.c:6050,1
    - Dst: ocsp_GetCheckingContext
      Src: /src/nss/lib/certhigh/ocsp.c:6054,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:6055,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/certhigh/ocsp.c:6062,1
    - Dst: CERT_ClearOCSPCache
      Src: /src/nss/lib/certhigh/ocsp.c:6064,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - handle
    argTypes:
    - CERTCertDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6072
      start: 6038
    functionDepth: 4
    functionLinenumber: 6038
    functionLinenumberEnd: 6072
    functionName: CERT_DisableOCSPDefaultResponder
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 3
    functionsReached:
    - PORT_Assert
    - ocsp_GetCheckingContext
    - PORT_SetError
    - CERT_ClearOCSPCache
    - CERT_DestroyCertificate
    - CERT_GetStatusConfig
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERT_DisableOCSPDefaultResponder(CERTCertDBHandle *handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:6078,1
    - Dst: PR_EnterMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:6082,1
    - Dst: PR_ExitMonitor
      Src: /src/nss/lib/certhigh/ocsp.c:6084,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - forcePost
    argTypes:
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6087
      start: 6074
    functionDepth: 0
    functionLinenumber: 6074
    functionLinenumberEnd: 6087
    functionName: CERT_ForcePostMethodForOCSP
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PR_ExitMonitor
    - PR_EnterMonitor
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERT_ForcePostMethodForOCSP(PRBool forcePost)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/ocsp.c:6092,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:6098,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:6101,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:6104,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:6108,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:6111,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/ocsp.c:6115,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - response
    argTypes:
    - CERTOCSPResponse*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6119
      start: 6089
    functionDepth: 0
    functionLinenumber: 6089
    functionLinenumberEnd: 6119
    functionName: CERT_GetOCSPResponseStatus
    functionSourceFile: /src/nss/lib/certhigh/ocsp.c
    functionUses: 3
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERT_GetOCSPResponseStatus(CERTOCSPResponse *response)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strdup
      Src: /src/nss/lib/certhigh/certhtml.c:32,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/certhigh/certhtml.c:35,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - i
    - do_colon
    argTypes:
    - SECItem*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 53
    functionName: CERT_Hexify
    functionSourceFile: /src/nss/lib/certhigh/certhtml.c
    functionUses: 2
    functionsReached:
    - PORT_Alloc
    - PORT_Strdup
    linkageType: ''
    returnType: char
    signature: 'char *

      CERT_Hexify(SECItem *i, int do_colon)'
  - BBCount: 48
    BranchProfiles: []
    Callsites:
    - Dst: CERT_GetAVATag
      Src: /src/nss/lib/certhigh/certhtml.c:94,1
    - Dst: CERT_DecodeAVAValue
      Src: /src/nss/lib/certhigh/certhtml.c:100,1
    - Dst: CERT_DecodeAVAValue
      Src: /src/nss/lib/certhigh/certhtml.c:112,1
    - Dst: CERT_DecodeAVAValue
      Src: /src/nss/lib/certhigh/certhtml.c:126,1
    - Dst: CERT_DecodeAVAValue
      Src: /src/nss/lib/certhigh/certhtml.c:138,1
    - Dst: CERT_DecodeAVAValue
      Src: /src/nss/lib/certhigh/certhtml.c:151,1
    - Dst: CERT_DecodeAVAValue
      Src: /src/nss/lib/certhigh/certhtml.c:163,1
    - Dst: CERT_DecodeAVAValue
      Src: /src/nss/lib/certhigh/certhtml.c:173,1
    - Dst: CERT_DecodeAVAValue
      Src: /src/nss/lib/certhigh/certhtml.c:184,1
    - Dst: CERT_DecodeAVAValue
      Src: /src/nss/lib/certhigh/certhtml.c:198,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/certhigh/certhtml.c:216,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/certhigh/certhtml.c:224,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/certhigh/certhtml.c:226,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/certhigh/certhtml.c:230,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/certhigh/certhtml.c:232,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/certhigh/certhtml.c:236,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/certhigh/certhtml.c:238,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/certhigh/certhtml.c:242,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/certhigh/certhtml.c:244,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/certhigh/certhtml.c:248,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/certhigh/certhtml.c:250,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/certhigh/certhtml.c:254,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/certhigh/certhtml.c:256,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/certhigh/certhtml.c:261,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/certhigh/certhtml.c:267,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/certhigh/certhtml.c:270,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/certhigh/certhtml.c:276,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/certhigh/certhtml.c:279,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/certhigh/certhtml.c:284,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/certhigh/certhtml.c:293,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/certhigh/certhtml.c:296,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/certhigh/certhtml.c:299,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/certhigh/certhtml.c:302,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/certhigh/certhtml.c:305,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/certhigh/certhtml.c:308,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/certhigh/certhtml.c:311,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/certhigh/certhtml.c:314,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/certhigh/certhtml.c:317,1
    CyclomaticComplexity: 70
    EdgeCount: 70
    ICount: 221
    argCount: 1
    argNames:
    - name
    argTypes:
    - CERTName*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 321
    functionName: CERT_FormatName
    functionSourceFile: /src/nss/lib/certhigh/certhtml.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_Memcpy
    - CERT_DecodeAVAValue
    - CERT_GetAVATag
    - SECITEM_FreeItem
    linkageType: ''
    returnType: char
    signature: 'char *

      CERT_FormatName(CERTName *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CERT_CheckCertValidTimes
      Src: /src/nss/lib/certhigh/certvfy.c:36,1
    - Dst: PR_Now
      Src: /src/nss/lib/certhigh/certvfy.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: CERT_CertTimesValid
    functionSourceFile: /src/nss/lib/certhigh/certvfy.c
    functionUses: 2
    functionsReached:
    - CERT_CheckCertValidTimes
    - PR_Now
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERT_CertTimesValid(CERTCertificate *c)
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/certhigh/certvfy.c:49,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfy.c:58,1
    - Dst: SECKEY_GetECCOid
      Src: /src/nss/lib/certhigh/certvfy.c:62,1
    - Dst: NSS_GetAlgorithmPolicy
      Src: /src/nss/lib/certhigh/certvfy.c:64,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfy.c:66,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfy.c:71,1
    - Dst: PORT_InitCheapArena
      Src: /src/nss/lib/certhigh/certvfy.c:79,1
    - Dst: sec_DecodeRSAPSSParams
      Src: /src/nss/lib/certhigh/certvfy.c:80,1
    - Dst: PORT_DestroyCheapArena
      Src: /src/nss/lib/certhigh/certvfy.c:83,1
    - Dst: NSS_GetAlgorithmPolicy
      Src: /src/nss/lib/certhigh/certvfy.c:88,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfy.c:90,1
    - Dst: NSS_GetAlgorithmPolicy
      Src: /src/nss/lib/certhigh/certvfy.c:93,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfy.c:95,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfy.c:108,1
    - Dst: NSS_OptionGet
      Src: /src/nss/lib/certhigh/certvfy.c:112,1
    - Dst: NSS_OptionGet
      Src: /src/nss/lib/certhigh/certvfy.c:121,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfy.c:138,1
    - Dst: NSS_OptionGet
      Src: /src/nss/lib/certhigh/certvfy.c:141,1
    - Dst: NSS_OptionGet
      Src: /src/nss/lib/certhigh/certvfy.c:150,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 92
    argCount: 2
    argNames:
    - sigAlgorithm
    - key
    argTypes:
    - SECAlgorithmID*
    - SECKEYPublicKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 163
    functionName: checkKeyParams
    functionSourceFile: /src/nss/lib/certhigh/certvfy.c
    functionUses: 0
    functionsReached:
    - NSS_GetAlgorithmPolicy
    - SECOID_GetAlgorithmTag
    - sec_DecodeRSAPSSParams
    - NSS_OptionGet
    - SECKEY_GetECCOid
    - PORT_SetError
    - PORT_InitCheapArena
    - PORT_DestroyCheapArena
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus checkKeyParams(const SECAlgorithmID *sigAlgorithm, const
      SECKEYPublicKey *key)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfy.c:182,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/certhigh/certvfy.c:187,1
    - Dst: sec_DecodeSigAlg
      Src: /src/nss/lib/certhigh/certvfy.c:188,1
    - Dst: NSS_GetAlgorithmPolicy
      Src: /src/nss/lib/certhigh/certvfy.c:194,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfy.c:197,1
    - Dst: NSS_GetAlgorithmPolicy
      Src: /src/nss/lib/certhigh/certvfy.c:200,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfy.c:203,1
    - Dst: checkKeyParams
      Src: /src/nss/lib/certhigh/certvfy.c:206,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfy.c:208,1
    - Dst: DER_ConvertBitString
      Src: /src/nss/lib/certhigh/certvfy.c:215,1
    - Dst: VFY_VerifyDataWithAlgorithmID
      Src: /src/nss/lib/certhigh/certvfy.c:217,1
    - Dst: NSS_GetAlgorithmPolicy
      Src: /src/nss/lib/certhigh/certvfy.c:225,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfy.c:228,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 3
    argNames:
    - sd
    - pubKey
    - wincx
    argTypes:
    - CERTSignedData*
    - SECKEYPublicKey*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 168
    functionDepth: 7
    functionLinenumber: 168
    functionLinenumberEnd: 232
    functionName: CERT_VerifySignedDataWithPublicKey
    functionSourceFile: /src/nss/lib/certhigh/certvfy.c
    functionUses: 3
    functionsReached:
    - NSS_GetAlgorithmPolicy
    - DER_ConvertBitString
    - SECOID_GetAlgorithmTag
    - VFY_VerifyDataWithAlgorithmID
    - checkKeyParams
    - PORT_SetError
    - sec_DecodeSigAlg
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_VerifySignedDataWithPublicKey(const CERTSignedData
      *sd,\n                                   SECKEYPublicKey *pubKey,\n                                   void
      *wincx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECKEY_ExtractPublicKey
      Src: /src/nss/lib/certhigh/certvfy.c:246,1
    - Dst: CERT_VerifySignedDataWithPublicKey
      Src: /src/nss/lib/certhigh/certvfy.c:248,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/certhigh/certvfy.c:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - sd
    - pubKeyInfo
    - wincx
    argTypes:
    - CERTSignedData*
    - CERTSubjectPublicKeyInfo*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 237
    functionDepth: 8
    functionLinenumber: 237
    functionLinenumberEnd: 252
    functionName: CERT_VerifySignedDataWithPublicKeyInfo
    functionSourceFile: /src/nss/lib/certhigh/certvfy.c
    functionUses: 1
    functionsReached:
    - SECKEY_ExtractPublicKey
    - SECKEY_DestroyPublicKey
    - CERT_VerifySignedDataWithPublicKey
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_VerifySignedDataWithPublicKeyInfo(CERTSignedData *sd,\n
      \                                      CERTSubjectPublicKeyInfo *pubKeyInfo,\n
      \                                      void *wincx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CERT_CheckCertValidTimes
      Src: /src/nss/lib/certhigh/certvfy.c:266,1
    - Dst: CERT_ExtractPublicKey
      Src: /src/nss/lib/certhigh/certvfy.c:272,1
    - Dst: CERT_VerifySignedDataWithPublicKey
      Src: /src/nss/lib/certhigh/certvfy.c:274,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/certhigh/certvfy.c:275,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - sd
    - cert
    - t
    - wincx
    argTypes:
    - CERTSignedData*
    - CERTCertificate*
    - PRTime
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 257
    functionDepth: 8
    functionLinenumber: 257
    functionLinenumberEnd: 278
    functionName: CERT_VerifySignedData
    functionSourceFile: /src/nss/lib/certhigh/certvfy.c
    functionUses: 2
    functionsReached:
    - SECKEY_DestroyPublicKey
    - CERT_ExtractPublicKey
    - CERT_VerifySignedDataWithPublicKey
    - CERT_CheckCertValidTimes
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_VerifySignedData(CERTSignedData *sd, CERTCertificate
      *cert,\n                      PRTime t, void *wincx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CERT_CheckCRL
      Src: /src/nss/lib/certhigh/certvfy.c:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - handle
    - cert
    - caCert
    - t
    - wincx
    argTypes:
    - CERTCertDBHandle*
    - CERTCertificate*
    - CERTCertificate*
    - PRTime
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 285
    functionName: SEC_CheckCRL
    functionSourceFile: /src/nss/lib/certhigh/certvfy.c
    functionUses: 0
    functionsReached:
    - CERT_CheckCRL
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SEC_CheckCRL(CERTCertDBHandle *handle, CERTCertificate *cert,\n
      \            CERTCertificate *caCert, PRTime t, void *wincx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STAN_GetNSSCertificate
      Src: /src/nss/lib/certhigh/certvfy.c:301,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfy.c:303,1
    - Dst: NSSTime_SetPRTime
      Src: /src/nss/lib/certhigh/certvfy.c:306,1
    - Dst: memset
      Src: /src/nss/lib/certhigh/certvfy.c:310,1
    - Dst: STAN_GetDefaultTrustDomain
      Src: /src/nss/lib/certhigh/certvfy.c:311,1
    - Dst: STAN_GetDefaultCryptoContext
      Src: /src/nss/lib/certhigh/certvfy.c:312,1
    - Dst: NSSCertificate_BuildChain
      Src: /src/nss/lib/certhigh/certvfy.c:313,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/certhigh/certvfy.c:315,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/certvfy.c:317,1
    - Dst: NSSCertificate_Destroy
      Src: /src/nss/lib/certhigh/certvfy.c:323,1
    - Dst: STAN_GetCERTCertificate
      Src: /src/nss/lib/certhigh/certvfy.c:324,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/certvfy.c:327,1
    - Dst: NSSCertificate_Destroy
      Src: /src/nss/lib/certhigh/certvfy.c:328,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfy.c:330,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 3
    argNames:
    - cert
    - validTime
    - usage
    argTypes:
    - CERTCertificate*
    - PRTime
    - SECCertUsage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 290
    functionDepth: 7
    functionLinenumber: 290
    functionLinenumberEnd: 332
    functionName: CERT_FindCertIssuer
    functionSourceFile: /src/nss/lib/certhigh/certvfy.c
    functionUses: 6
    functionsReached:
    - PORT_Assert
    - STAN_GetNSSCertificate
    - STAN_GetDefaultTrustDomain
    - STAN_GetDefaultCryptoContext
    - memset
    - PORT_SetError
    - nss_ZFreeIf
    - STAN_GetCERTCertificate
    - NSSCertificate_BuildChain
    - NSSTime_SetPRTime
    - NSSCertificate_Destroy
    linkageType: ''
    returnType: CERTCertificate
    signature: 'CERTCertificate *

      CERT_FindCertIssuer(CERTCertificate *cert, PRTime validTime, SECCertUsage usage)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/certvfy.c:379,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 49
    argCount: 3
    argNames:
    - usage
    - retFlags
    - retTrustType
    argTypes:
    - SECCertUsage
    - unsigned int*
    - SECTrustType*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 392
    functionName: CERT_TrustFlagsForCACertUsage
    functionSourceFile: /src/nss/lib/certhigh/certvfy.c
    functionUses: 3
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_TrustFlagsForCACertUsage(SECCertUsage usage,\n                              unsigned
      int *retFlags,\n                              SECTrustType *retTrustType)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/certvfy.c:400,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/certhigh/certvfy.c:402,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/certhigh/certvfy.c:405,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 40
    argCount: 5
    argNames:
    - log
    - cert
    - error
    - depth
    - arg
    argTypes:
    - CERTVerifyLog*
    - CERTCertificate*
    - long
    - unsigned int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 447
    functionName: cert_AddToVerifyLog
    functionSourceFile: /src/nss/lib/certhigh/certvfy.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - CERT_DupCertificate
    - PORT_ArenaAlloc
    linkageType: ''
    returnType: void
    signature: "void cert_AddToVerifyLog(CERTVerifyLog *log, CERTCertificate *cert,
      long error,\n                    unsigned int depth, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - log
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 453
    functionName: EXIT_IF_NOT_LOGGING
    functionSourceFile: /src/nss/lib/certhigh/certvfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXIT_IF_NOT_LOGGING(log)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - log
    - ','
    - cert
    - ','
    - depth
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 461
    functionName: LOG_ERROR_OR_EXIT
    functionSourceFile: /src/nss/lib/certhigh/certvfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOG_ERROR_OR_EXIT(log, cert, depth, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - log
    - ','
    - cert
    - ','
    - depth
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 467
    functionName: LOG_ERROR
    functionSourceFile: /src/nss/lib/certhigh/certvfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOG_ERROR(log, cert, depth, arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/nss/lib/certhigh/certvfy.c:567,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - cert
    argTypes:
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 559
    functionDepth: 0
    functionLinenumber: 559
    functionLinenumberEnd: 572
    functionName: CertIsStartComOrWoSign
    functionSourceFile: /src/nss/lib/certhigh/certvfy.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: PRBool
    signature: PRBool CertIsStartComOrWoSign(const CERTCertificate *cert)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfy.c:579,1
    - Dst: CertIsStartComOrWoSign
      Src: /src/nss/lib/certhigh/certvfy.c:583,1
    - Dst: CERT_GetCertTimes
      Src: /src/nss/lib/certhigh/certvfy.c:592,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - issuerCert
    - referenceCert
    argTypes:
    - CERTCertificate*
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 574
    functionDepth: 1
    functionLinenumber: 574
    functionLinenumberEnd: 602
    functionName: isIssuerCertAllowedAtCertIssuanceTime
    functionSourceFile: /src/nss/lib/certhigh/certvfy.c
    functionUses: 1
    functionsReached:
    - CertIsStartComOrWoSign
    - PORT_SetError
    - CERT_GetCertTimes
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus isIssuerCertAllowedAtCertIssuanceTime(CERTCertificate *issuerCert,\n
      \                                     CERTCertificate *referenceCert)"
  - BBCount: 63
    BranchProfiles: []
    Callsites:
    - Dst: CERT_KeyUsageAndTypeForCertUsage
      Src: /src/nss/lib/certhigh/certvfy.c:636,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/certvfy.c:640,1
    - Dst: EXIT_IF_NOT_LOGGING
      Src: /src/nss/lib/certhigh/certvfy.c:641,1
    - Dst: CERT_TrustFlagsForCACertUsage
      Src: /src/nss/lib/certhigh/certvfy.c:658,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/certvfy.c:660,1
    - Dst: EXIT_IF_NOT_LOGGING
      Src: /src/nss/lib/certhigh/certvfy.c:661,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/certvfy.c:676,1
    - Dst: EXIT_IF_NOT_LOGGING
      Src: /src/nss/lib/certhigh/certvfy.c:677,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/certhigh/certvfy.c:685,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/certhigh/certvfy.c:690,1
    - Dst: PORT_ZNewArray
      Src: /src/nss/lib/certhigh/certvfy.c:695,1
    - Dst: CERT_GetConstrainedCertificateNames
      Src: /src/nss/lib/certhigh/certvfy.c:719,1
    - Dst: CERT_GetNamesLength
      Src: /src/nss/lib/certhigh/certvfy.c:723,1
    - Dst: PORT_Realloc
      Src: /src/nss/lib/certhigh/certvfy.c:730,1
    - Dst: cert_CombineNamesLists
      Src: /src/nss/lib/certhigh/certvfy.c:742,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfy.c:747,1
    - Dst: LOG_ERROR_OR_EXIT
      Src: /src/nss/lib/certhigh/certvfy.c:748,1
    - Dst: SECOID_CompareAlgorithmID
      Src: /src/nss/lib/certhigh/certvfy.c:753,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfy.c:756,1
    - Dst: LOG_ERROR
      Src: /src/nss/lib/certhigh/certvfy.c:757,1
    - Dst: CERT_FindCertIssuer
      Src: /src/nss/lib/certhigh/certvfy.c:762,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfy.c:764,1
    - Dst: LOG_ERROR
      Src: /src/nss/lib/certhigh/certvfy.c:765,1
    - Dst: CERT_VerifySignedData
      Src: /src/nss/lib/certhigh/certvfy.c:771,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/certhigh/certvfy.c:778,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfy.c:779,1
    - Dst: LOG_ERROR_OR_EXIT
      Src: /src/nss/lib/certhigh/certvfy.c:780,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/certhigh/certvfy.c:782,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfy.c:784,1
    - Dst: LOG_ERROR_OR_EXIT
      Src: /src/nss/lib/certhigh/certvfy.c:786,1
    - Dst: CERT_FindBasicConstraintExten
      Src: /src/nss/lib/certhigh/certvfy.c:800,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/certhigh/certvfy.c:802,1
    - Dst: LOG_ERROR_OR_EXIT
      Src: /src/nss/lib/certhigh/certvfy.c:803,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfy.c:810,1
    - Dst: LOG_ERROR_OR_EXIT
      Src: /src/nss/lib/certhigh/certvfy.c:811,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfy.c:818,1
    - Dst: LOG_ERROR_OR_EXIT
      Src: /src/nss/lib/certhigh/certvfy.c:819,1
    - Dst: CERT_CompareNameSpace
      Src: /src/nss/lib/certhigh/certvfy.c:825,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfy.c:828,1
    - Dst: LOG_ERROR_OR_EXIT
      Src: /src/nss/lib/certhigh/certvfy.c:829,1
    - Dst: isIssuerCertAllowedAtCertIssuanceTime
      Src: /src/nss/lib/certhigh/certvfy.c:833,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfy.c:835,1
    - Dst: LOG_ERROR
      Src: /src/nss/lib/certhigh/certvfy.c:836,1
    - Dst: SEC_CheckCRL
      Src: /src/nss/lib/certhigh/certvfy.c:844,1
    - Dst: LOG_ERROR_OR_EXIT
      Src: /src/nss/lib/certhigh/certvfy.c:849,1
    - Dst: LOG_ERROR
      Src: /src/nss/lib/certhigh/certvfy.c:859,1
    - Dst: CERT_GetCertTrust
      Src: /src/nss/lib/certhigh/certvfy.c:862,1
    - Dst: SEC_GET_TRUST_FLAGS
      Src: /src/nss/lib/certhigh/certvfy.c:886,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfy.c:900,1
    - Dst: LOG_ERROR_OR_EXIT
      Src: /src/nss/lib/certhigh/certvfy.c:901,1
    - Dst: SEC_GET_TRUST_FLAGS
      Src: /src/nss/lib/certhigh/certvfy.c:908,1
    - Dst: SEC_GET_TRUST_FLAGS
      Src: /src/nss/lib/certhigh/certvfy.c:922,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfy.c:928,1
    - Dst: LOG_ERROR_OR_EXIT
      Src: /src/nss/lib/certhigh/certvfy.c:929,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfy.c:950,1
    - Dst: LOG_ERROR_OR_EXIT
      Src: /src/nss/lib/certhigh/certvfy.c:951,1
    - Dst: CERT_CheckKeyUsage
      Src: /src/nss/lib/certhigh/certvfy.c:955,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfy.c:956,1
    - Dst: LOG_ERROR_OR_EXIT
      Src: /src/nss/lib/certhigh/certvfy.c:957,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfy.c:965,1
    - Dst: LOG_ERROR
      Src: /src/nss/lib/certhigh/certvfy.c:966,1
    - Dst: SECITEM_ItemsAreEqual
      Src: /src/nss/lib/certhigh/certvfy.c:974,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/certhigh/certvfy.c:985,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfy.c:990,1
    - Dst: LOG_ERROR
      Src: /src/nss/lib/certhigh/certvfy.c:991,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certhigh/certvfy.c:996,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/certhigh/certvfy.c:999,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/certhigh/certvfy.c:1003,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certhigh/certvfy.c:1007,1
    CyclomaticComplexity: 78
    EdgeCount: 78
    ICount: 249
    argCount: 9
    argNames:
    - handle
    - cert
    - checkSig
    - sigerror
    - certUsage
    - t
    - wincx
    - log
    - revoked
    argTypes:
    - CERTCertDBHandle*
    - CERTCertificate*
    - PRBool
    - PRBool*
    - SECCertUsage
    - PRTime
    - void*
    - CERTVerifyLog*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 604
    functionDepth: 9
    functionLinenumber: 604
    functionLinenumberEnd: 1010
    functionName: cert_VerifyCertChainOld
    functionSourceFile: /src/nss/lib/certhigh/certvfy.c
    functionUses: 0
    functionsReached:
    - CERT_GetConstrainedCertificateNames
    - LOG_ERROR
    - PORT_ZNewArray
    - CERT_VerifySignedData
    - CERT_DupCertificate
    - PORT_Realloc
    - EXIT_IF_NOT_LOGGING
    - isIssuerCertAllowedAtCertIssuanceTime
    - PORT_NewArena
    - LOG_ERROR_OR_EXIT
    - PORT_SetError
    - SEC_CheckCRL
    - CERT_GetCertTrust
    - PORT_Assert
    - CERT_FindCertIssuer
    - CERT_CheckKeyUsage
    - CERT_FindBasicConstraintExten
    - PORT_FreeArena
    - SECOID_CompareAlgorithmID
    - CERT_KeyUsageAndTypeForCertUsage
    - CERT_DestroyCertificate
    - CERT_CompareNameSpace
    - cert_CombineNamesLists
    - SECITEM_ItemsAreEqual
    - PORT_Free
    - SEC_GET_TRUST_FLAGS
    - PORT_GetError
    - CERT_TrustFlagsForCACertUsage
    - CERT_GetNamesLength
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus cert_VerifyCertChainOld(CERTCertDBHandle *handle, CERTCertificate
      *cert,\n                        PRBool checkSig, PRBool *sigerror,\n                        SECCertUsage
      certUsage, PRTime t, void *wincx,\n                        CERTVerifyLog *log,
      PRBool *revoked)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CERT_GetUsePKIXForValidation
      Src: /src/nss/lib/certhigh/certvfy.c:1018,1
    - Dst: cert_VerifyCertChainPkix
      Src: /src/nss/lib/certhigh/certvfy.c:1019,1
    - Dst: cert_VerifyCertChainOld
      Src: /src/nss/lib/certhigh/certvfy.c:1022,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 9
    argNames:
    - handle
    - cert
    - checkSig
    - sigerror
    - certUsage
    - t
    - wincx
    - log
    - revoked
    argTypes:
    - CERTCertDBHandle*
    - CERTCertificate*
    - PRBool
    - PRBool*
    - SECCertUsage
    - PRTime
    - void*
    - CERTVerifyLog*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 1012
    functionDepth: 10
    functionLinenumber: 1012
    functionLinenumberEnd: 1024
    functionName: cert_VerifyCertChain
    functionSourceFile: /src/nss/lib/certhigh/certvfy.c
    functionUses: 0
    functionsReached:
    - cert_VerifyCertChainPkix
    - CERT_GetUsePKIXForValidation
    - cert_VerifyCertChainOld
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus cert_VerifyCertChain(CERTCertDBHandle *handle, CERTCertificate
      *cert,\n                     PRBool checkSig, PRBool *sigerror,\n                     SECCertUsage
      certUsage, PRTime t, void *wincx,\n                     CERTVerifyLog *log,
      PRBool *revoked)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cert_VerifyCertChain
      Src: /src/nss/lib/certhigh/certvfy.c:1031,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - handle
    - cert
    - checkSig
    - certUsage
    - t
    - wincx
    - log
    argTypes:
    - CERTCertDBHandle*
    - CERTCertificate*
    - PRBool
    - SECCertUsage
    - PRTime
    - void*
    - CERTVerifyLog*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1033
      start: 1026
    functionDepth: 11
    functionLinenumber: 1026
    functionLinenumberEnd: 1033
    functionName: CERT_VerifyCertChain
    functionSourceFile: /src/nss/lib/certhigh/certvfy.c
    functionUses: 0
    functionsReached:
    - cert_VerifyCertChain
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_VerifyCertChain(CERTCertDBHandle *handle, CERTCertificate
      *cert,\n                     PRBool checkSig, SECCertUsage certUsage, PRTime
      t,\n                     void *wincx, CERTVerifyLog *log)"
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: CERT_KeyUsageAndTypeForCertUsage
      Src: /src/nss/lib/certhigh/certvfy.c:1056,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/certvfy.c:1059,1
    - Dst: EXIT_IF_NOT_LOGGING
      Src: /src/nss/lib/certhigh/certvfy.c:1060,1
    - Dst: CERT_TrustFlagsForCACertUsage
      Src: /src/nss/lib/certhigh/certvfy.c:1076,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/certvfy.c:1078,1
    - Dst: EXIT_IF_NOT_LOGGING
      Src: /src/nss/lib/certhigh/certvfy.c:1079,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/certvfy.c:1085,1
    - Dst: EXIT_IF_NOT_LOGGING
      Src: /src/nss/lib/certhigh/certvfy.c:1086,1
    - Dst: CERT_FindBasicConstraintExten
      Src: /src/nss/lib/certhigh/certvfy.c:1103,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/certhigh/certvfy.c:1105,1
    - Dst: LOG_ERROR_OR_EXIT
      Src: /src/nss/lib/certhigh/certvfy.c:1106,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfy.c:1112,1
    - Dst: LOG_ERROR_OR_EXIT
      Src: /src/nss/lib/certhigh/certvfy.c:1113,1
    - Dst: CERT_GetCertTrust
      Src: /src/nss/lib/certhigh/certvfy.c:1120,1
    - Dst: CERT_FindCertIssuer
      Src: /src/nss/lib/certhigh/certvfy.c:1128,1
    - Dst: SEC_CheckCRL
      Src: /src/nss/lib/certhigh/certvfy.c:1130,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfy.c:1132,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/certhigh/certvfy.c:1133,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/certhigh/certvfy.c:1136,1
    - Dst: SEC_GET_TRUST_FLAGS
      Src: /src/nss/lib/certhigh/certvfy.c:1149,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfy.c:1163,1
    - Dst: LOG_ERROR_OR_EXIT
      Src: /src/nss/lib/certhigh/certvfy.c:1164,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfy.c:1182,1
    - Dst: LOG_ERROR_OR_EXIT
      Src: /src/nss/lib/certhigh/certvfy.c:1183,1
    - Dst: CERT_CheckKeyUsage
      Src: /src/nss/lib/certhigh/certvfy.c:1187,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfy.c:1188,1
    - Dst: LOG_ERROR_OR_EXIT
      Src: /src/nss/lib/certhigh/certvfy.c:1189,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfy.c:1196,1
    - Dst: LOG_ERROR
      Src: /src/nss/lib/certhigh/certvfy.c:1197,1
    - Dst: CERT_VerifyCertChain
      Src: /src/nss/lib/certhigh/certvfy.c:1201,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 101
    argCount: 7
    argNames:
    - handle
    - cert
    - checkSig
    - certUsage
    - t
    - wincx
    - log
    argTypes:
    - CERTCertDBHandle*
    - CERTCertificate*
    - PRBool
    - SECCertUsage
    - PRTime
    - void*
    - CERTVerifyLog*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1207
      start: 1038
    functionDepth: 12
    functionLinenumber: 1038
    functionLinenumberEnd: 1207
    functionName: CERT_VerifyCACertForUsage
    functionSourceFile: /src/nss/lib/certhigh/certvfy.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - CERT_FindCertIssuer
    - CERT_CheckKeyUsage
    - CERT_FindBasicConstraintExten
    - LOG_ERROR
    - SEC_GET_TRUST_FLAGS
    - PORT_GetError
    - CERT_TrustFlagsForCACertUsage
    - CERT_KeyUsageAndTypeForCertUsage
    - LOG_ERROR_OR_EXIT
    - PORT_SetError
    - SEC_CheckCRL
    - CERT_DestroyCertificate
    - CERT_GetCertTrust
    - EXIT_IF_NOT_LOGGING
    - CERT_VerifyCertChain
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_VerifyCACertForUsage(CERTCertDBHandle *handle, CERTCertificate
      *cert,\n                          PRBool checkSig, SECCertUsage certUsage, PRTime
      t,\n                          void *wincx, CERTVerifyLog *log)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1209
    functionDepth: 0
    functionLinenumber: 1209
    functionLinenumberEnd: 1215
    functionName: NEXT_USAGE
    functionSourceFile: /src/nss/lib/certhigh/certvfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEXT_USAGE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1220
      start: 1216
    functionDepth: 0
    functionLinenumber: 1216
    functionLinenumberEnd: 1220
    functionName: VALID_USAGE
    functionSourceFile: /src/nss/lib/certhigh/certvfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VALID_USAGE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1231
      start: 1221
    functionDepth: 0
    functionLinenumber: 1221
    functionLinenumberEnd: 1231
    functionName: INVALID_USAGE
    functionSourceFile: /src/nss/lib/certhigh/certvfy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INVALID_USAGE()
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: CERT_GetCertTrust
      Src: /src/nss/lib/certhigh/certvfy.c:1250,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 107
    argCount: 4
    argNames:
    - cert
    - certUsage
    - failedFlags
    - trusted
    argTypes:
    - CERTCertificate*
    - SECCertUsage
    - unsigned int*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1378
      start: 1239
    functionDepth: 1
    functionLinenumber: 1239
    functionLinenumberEnd: 1378
    functionName: cert_CheckLeafTrust
    functionSourceFile: /src/nss/lib/certhigh/certvfy.c
    functionUses: 2
    functionsReached:
    - CERT_GetCertTrust
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus cert_CheckLeafTrust(CERTCertificate *cert, SECCertUsage
      certUsage,\n                    unsigned int *failedFlags, PRBool *trusted)"
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: CERT_CheckCertValidTimes
      Src: /src/nss/lib/certhigh/certvfy.c:1433,1
    - Dst: LOG_ERROR_OR_EXIT
      Src: /src/nss/lib/certhigh/certvfy.c:1436,1
    - Dst: cert_GetCertType
      Src: /src/nss/lib/certhigh/certvfy.c:1440,1
    - Dst: NEXT_USAGE
      Src: /src/nss/lib/certhigh/certvfy.c:1447,1
    - Dst: CERT_KeyUsageAndTypeForCertUsage
      Src: /src/nss/lib/certhigh/certvfy.c:1462,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/certvfy.c:1466,1
    - Dst: INVALID_USAGE
      Src: /src/nss/lib/certhigh/certvfy.c:1470,1
    - Dst: NEXT_USAGE
      Src: /src/nss/lib/certhigh/certvfy.c:1479,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/certvfy.c:1482,1
    - Dst: INVALID_USAGE
      Src: /src/nss/lib/certhigh/certvfy.c:1485,1
    - Dst: CERT_CheckKeyUsage
      Src: /src/nss/lib/certhigh/certvfy.c:1487,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfy.c:1489,1
    - Dst: LOG_ERROR
      Src: /src/nss/lib/certhigh/certvfy.c:1491,1
    - Dst: INVALID_USAGE
      Src: /src/nss/lib/certhigh/certvfy.c:1492,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfy.c:1496,1
    - Dst: LOG_ERROR
      Src: /src/nss/lib/certhigh/certvfy.c:1498,1
    - Dst: INVALID_USAGE
      Src: /src/nss/lib/certhigh/certvfy.c:1499,1
    - Dst: cert_CheckLeafTrust
      Src: /src/nss/lib/certhigh/certvfy.c:1502,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfy.c:1505,1
    - Dst: LOG_ERROR
      Src: /src/nss/lib/certhigh/certvfy.c:1507,1
    - Dst: INVALID_USAGE
      Src: /src/nss/lib/certhigh/certvfy.c:1508,1
    - Dst: VALID_USAGE
      Src: /src/nss/lib/certhigh/certvfy.c:1510,1
    - Dst: INVALID_USAGE
      Src: /src/nss/lib/certhigh/certvfy.c:1514,1
    - Dst: cert_VerifyCertChain
      Src: /src/nss/lib/certhigh/certvfy.c:1517,1
    - Dst: INVALID_USAGE
      Src: /src/nss/lib/certhigh/certvfy.c:1524,1
    - Dst: CERT_GetStatusConfig
      Src: /src/nss/lib/certhigh/certvfy.c:1537,1
    - Dst: LOG_ERROR
      Src: /src/nss/lib/certhigh/certvfy.c:1544,1
    - Dst: INVALID_USAGE
      Src: /src/nss/lib/certhigh/certvfy.c:1546,1
    - Dst: NEXT_USAGE
      Src: /src/nss/lib/certhigh/certvfy.c:1552,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 105
    argCount: 8
    argNames:
    - handle
    - cert
    - checkSig
    - requiredUsages
    - t
    - wincx
    - log
    - returnedUsages
    argTypes:
    - CERTCertDBHandle*
    - CERTCertificate*
    - PRBool
    - SECCertificateUsage
    - PRTime
    - void*
    - CERTVerifyLog*
    - SECCertificateUsage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1557
      start: 1392
    functionDepth: 11
    functionLinenumber: 1392
    functionLinenumberEnd: 1557
    functionName: CERT_VerifyCertificate
    functionSourceFile: /src/nss/lib/certhigh/certvfy.c
    functionUses: 4
    functionsReached:
    - PORT_Assert
    - CERT_CheckKeyUsage
    - LOG_ERROR
    - cert_GetCertType
    - NEXT_USAGE
    - CERT_KeyUsageAndTypeForCertUsage
    - CERT_CheckCertValidTimes
    - LOG_ERROR_OR_EXIT
    - PORT_SetError
    - INVALID_USAGE
    - cert_CheckLeafTrust
    - CERT_GetStatusConfig
    - VALID_USAGE
    - cert_VerifyCertChain
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_VerifyCertificate(CERTCertDBHandle *handle, CERTCertificate
      *cert,\n                       PRBool checkSig, SECCertificateUsage requiredUsages,
      PRTime t,\n                       void *wincx, CERTVerifyLog *log, SECCertificateUsage
      *returnedUsages)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cert_VerifyCertWithFlags
      Src: /src/nss/lib/certhigh/certvfy.c:1564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - handle
    - cert
    - checkSig
    - certUsage
    - t
    - wincx
    - log
    argTypes:
    - CERTCertDBHandle*
    - CERTCertificate*
    - PRBool
    - SECCertUsage
    - PRTime
    - void*
    - CERTVerifyLog*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1566
      start: 1559
    functionDepth: 1
    functionLinenumber: 1559
    functionLinenumberEnd: 1566
    functionName: CERT_VerifyCert
    functionSourceFile: /src/nss/lib/certhigh/certvfy.c
    functionUses: 3
    functionsReached:
    - cert_VerifyCertWithFlags
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_VerifyCert(CERTCertDBHandle *handle, CERTCertificate
      *cert,\n                PRBool checkSig, SECCertUsage certUsage, PRTime t,\n
      \               void *wincx, CERTVerifyLog *log)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: CERT_CheckForEvilCert
      Src: /src/nss/lib/certhigh/certvfy.c:1585,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfy.c:1587,1
    - Dst: LOG_ERROR_OR_EXIT
      Src: /src/nss/lib/certhigh/certvfy.c:1588,1
    - Dst: CERT_CheckCertValidTimes
      Src: /src/nss/lib/certhigh/certvfy.c:1596,1
    - Dst: LOG_ERROR_OR_EXIT
      Src: /src/nss/lib/certhigh/certvfy.c:1598,1
    - Dst: cert_GetCertType
      Src: /src/nss/lib/certhigh/certvfy.c:1602,1
    - Dst: CERT_KeyUsageAndTypeForCertUsage
      Src: /src/nss/lib/certhigh/certvfy.c:1614,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/certvfy.c:1618,1
    - Dst: EXIT_IF_NOT_LOGGING
      Src: /src/nss/lib/certhigh/certvfy.c:1619,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/certvfy.c:1633,1
    - Dst: EXIT_IF_NOT_LOGGING
      Src: /src/nss/lib/certhigh/certvfy.c:1634,1
    - Dst: CERT_CheckKeyUsage
      Src: /src/nss/lib/certhigh/certvfy.c:1638,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfy.c:1639,1
    - Dst: LOG_ERROR_OR_EXIT
      Src: /src/nss/lib/certhigh/certvfy.c:1640,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfy.c:1643,1
    - Dst: LOG_ERROR_OR_EXIT
      Src: /src/nss/lib/certhigh/certvfy.c:1644,1
    - Dst: cert_CheckLeafTrust
      Src: /src/nss/lib/certhigh/certvfy.c:1647,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfy.c:1649,1
    - Dst: LOG_ERROR_OR_EXIT
      Src: /src/nss/lib/certhigh/certvfy.c:1650,1
    - Dst: CERT_VerifyCertChain
      Src: /src/nss/lib/certhigh/certvfy.c:1655,1
    - Dst: EXIT_IF_NOT_LOGGING
      Src: /src/nss/lib/certhigh/certvfy.c:1658,1
    - Dst: CERT_GetStatusConfig
      Src: /src/nss/lib/certhigh/certvfy.c:1671,1
    - Dst: LOG_ERROR_OR_EXIT
      Src: /src/nss/lib/certhigh/certvfy.c:1676,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 85
    argCount: 8
    argNames:
    - handle
    - cert
    - checkSig
    - certUsage
    - t
    - flags
    - wincx
    - log
    argTypes:
    - CERTCertDBHandle*
    - CERTCertificate*
    - PRBool
    - SECCertUsage
    - PRTime
    - PRUint32
    - void*
    - CERTVerifyLog*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1691
      start: 1568
    functionDepth: 12
    functionLinenumber: 1568
    functionLinenumberEnd: 1691
    functionName: cert_VerifyCertWithFlags
    functionSourceFile: /src/nss/lib/certhigh/certvfy.c
    functionUses: 2
    functionsReached:
    - PORT_Assert
    - CERT_CheckKeyUsage
    - cert_GetCertType
    - CERT_CheckForEvilCert
    - CERT_CheckCertValidTimes
    - CERT_KeyUsageAndTypeForCertUsage
    - LOG_ERROR_OR_EXIT
    - PORT_SetError
    - cert_CheckLeafTrust
    - CERT_GetStatusConfig
    - EXIT_IF_NOT_LOGGING
    - CERT_VerifyCertChain
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus cert_VerifyCertWithFlags(CERTCertDBHandle *handle, CERTCertificate
      *cert,\n                         PRBool checkSig, SECCertUsage certUsage, PRTime
      t,\n                         PRUint32 flags, void *wincx, CERTVerifyLog *log)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CERT_VerifyCertificate
      Src: /src/nss/lib/certhigh/certvfy.c:1702,1
    - Dst: PR_Now
      Src: /src/nss/lib/certhigh/certvfy.c:1703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - handle
    - cert
    - checkSig
    - requiredUsages
    - wincx
    - returnedUsages
    argTypes:
    - CERTCertDBHandle*
    - CERTCertificate*
    - PRBool
    - SECCertificateUsage
    - void*
    - SECCertificateUsage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1704
      start: 1697
    functionDepth: 12
    functionLinenumber: 1697
    functionLinenumberEnd: 1704
    functionName: CERT_VerifyCertificateNow
    functionSourceFile: /src/nss/lib/certhigh/certvfy.c
    functionUses: 2
    functionsReached:
    - CERT_VerifyCertificate
    - PR_Now
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_VerifyCertificateNow(CERTCertDBHandle *handle, CERTCertificate
      *cert,\n                          PRBool checkSig, SECCertificateUsage requiredUsages,\n
      \                         void *wincx, SECCertificateUsage *returnedUsages)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CERT_VerifyCert
      Src: /src/nss/lib/certhigh/certvfy.c:1711,1
    - Dst: PR_Now
      Src: /src/nss/lib/certhigh/certvfy.c:1712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - handle
    - cert
    - checkSig
    - certUsage
    - wincx
    argTypes:
    - CERTCertDBHandle*
    - CERTCertificate*
    - PRBool
    - SECCertUsage
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1713
      start: 1707
    functionDepth: 2
    functionLinenumber: 1707
    functionLinenumberEnd: 1713
    functionName: CERT_VerifyCertNow
    functionSourceFile: /src/nss/lib/certhigh/certvfy.c
    functionUses: 1
    functionsReached:
    - CERT_VerifyCert
    - PR_Now
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_VerifyCertNow(CERTCertDBHandle *handle, CERTCertificate
      *cert,\n                   PRBool checkSig, SECCertUsage certUsage, void *wincx)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certhigh/certvfy.c:1745,1
    - Dst: CERT_TrustFlagsForCACertUsage
      Src: /src/nss/lib/certhigh/certvfy.c:1750,1
    - Dst: CERT_CreateSubjectCertList
      Src: /src/nss/lib/certhigh/certvfy.c:1759,1
    - Dst: CERT_FilterCertListByUsage
      Src: /src/nss/lib/certhigh/certvfy.c:1762,1
    - Dst: CERT_LIST_HEAD
      Src: /src/nss/lib/certhigh/certvfy.c:1767,1
    - Dst: CERT_LIST_END
      Src: /src/nss/lib/certhigh/certvfy.c:1769,1
    - Dst: CERT_GetCertTrust
      Src: /src/nss/lib/certhigh/certvfy.c:1776,1
    - Dst: SEC_GET_TRUST_FLAGS
      Src: /src/nss/lib/certhigh/certvfy.c:1779,1
    - Dst: CERT_LIST_NEXT
      Src: /src/nss/lib/certhigh/certvfy.c:1797,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/certhigh/certvfy.c:1809,1
    - Dst: CERT_DestroyCertList
      Src: /src/nss/lib/certhigh/certvfy.c:1812,1
    - Dst: CERT_DestroyCertList
      Src: /src/nss/lib/certhigh/certvfy.c:1819,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 58
    argCount: 7
    argNames:
    - handle
    - derName
    - owner
    - usage
    - preferTrusted
    - validTime
    - validOnly
    argTypes:
    - CERTCertDBHandle*
    - SECItem*
    - CERTCertOwner
    - SECCertUsage
    - PRBool
    - PRTime
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1823
      start: 1727
    functionDepth: 1
    functionLinenumber: 1727
    functionLinenumberEnd: 1823
    functionName: CERT_FindMatchingCert
    functionSourceFile: /src/nss/lib/certhigh/certvfy.c
    functionUses: 0
    functionsReached:
    - CERT_LIST_NEXT
    - PORT_Assert
    - CERT_LIST_HEAD
    - SEC_GET_TRUST_FLAGS
    - CERT_CreateSubjectCertList
    - CERT_TrustFlagsForCACertUsage
    - CERT_LIST_END
    - CERT_DupCertificate
    - CERT_FilterCertListByUsage
    - CERT_GetCertTrust
    - CERT_DestroyCertList
    linkageType: ''
    returnType: CERTCertificate
    signature: "CERTCertificate *\nCERT_FindMatchingCert(CERTCertDBHandle *handle,
      SECItem *derName,\n                      CERTCertOwner owner, SECCertUsage usage,\n
      \                     PRBool preferTrusted, PRTime validTime, PRBool validOnly)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PR_Now
      Src: /src/nss/lib/certhigh/certvfy.c:1853,1
    - Dst: CERT_LIST_HEAD
      Src: /src/nss/lib/certhigh/certvfy.c:1855,1
    - Dst: CERT_LIST_END
      Src: /src/nss/lib/certhigh/certvfy.c:1857,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/certhigh/certvfy.c:1860,1
    - Dst: PORT_Strcmp
      Src: /src/nss/lib/certhigh/certvfy.c:1870,1
    - Dst: CERT_FindCertIssuer
      Src: /src/nss/lib/certhigh/certvfy.c:1884,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/certhigh/certvfy.c:1886,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/certhigh/certvfy.c:1890,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/certhigh/certvfy.c:1893,1
    - Dst: CERT_LIST_NEXT
      Src: /src/nss/lib/certhigh/certvfy.c:1897,1
    - Dst: CERT_RemoveCertListNode
      Src: /src/nss/lib/certhigh/certvfy.c:1898,1
    - Dst: CERT_LIST_NEXT
      Src: /src/nss/lib/certhigh/certvfy.c:1901,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 4
    argNames:
    - certList
    - nCANames
    - caNames
    - usage
    argTypes:
    - CERTCertList*
    - int
    - char**
    - SECCertUsage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1906
      start: 1836
    functionDepth: 8
    functionLinenumber: 1836
    functionLinenumberEnd: 1906
    functionName: CERT_FilterCertListByCANames
    functionSourceFile: /src/nss/lib/certhigh/certvfy.c
    functionUses: 1
    functionsReached:
    - CERT_LIST_NEXT
    - CERT_FindCertIssuer
    - CERT_LIST_HEAD
    - PR_Now
    - CERT_LIST_END
    - CERT_DupCertificate
    - CERT_DestroyCertificate
    - PORT_Strcmp
    - CERT_RemoveCertListNode
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_FilterCertListByCANames(CERTCertList *certList, int
      nCANames,\n                             char **caNames, SECCertUsage usage)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CERT_CheckCertValidTimes
      Src: /src/nss/lib/certhigh/certvfy.c:1932,1
    - Dst: PR_Now
      Src: /src/nss/lib/certhigh/certvfy.c:1932,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/certhigh/certvfy.c:1937,1
    - Dst: PORT_ArenaStrdup
      Src: /src/nss/lib/certhigh/certvfy.c:1939,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/certhigh/certvfy.c:1951,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/certhigh/certvfy.c:1955,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/certhigh/certvfy.c:1959,1
    - Dst: PORT_ArenaStrdup
      Src: /src/nss/lib/certhigh/certvfy.c:1969,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certhigh/certvfy.c:1970,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 4
    argNames:
    - arena
    - cert
    - expiredString
    - notYetGoodString
    argTypes:
    - PLArenaPool*
    - CERTCertificate*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1982
      start: 1921
    functionDepth: 1
    functionLinenumber: 1921
    functionLinenumberEnd: 1982
    functionName: CERT_GetCertNicknameWithValidity
    functionSourceFile: /src/nss/lib/certhigh/certvfy.c
    functionUses: 0
    functionsReached:
    - PORT_ArenaStrdup
    - PORT_Free
    - CERT_CheckCertValidTimes
    - PR_Now
    - PR_smprintf
    - PORT_Strdup
    linkageType: ''
    returnType: char
    signature: "char *\nCERT_GetCertNicknameWithValidity(PLArenaPool *arena, CERTCertificate
      *cert,\n                                 char *expiredString, char *notYetGoodString)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/certhigh/certvfy.c:2003,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/certhigh/certvfy.c:2009,1
    - Dst: CERT_LIST_HEAD
      Src: /src/nss/lib/certhigh/certvfy.c:2022,1
    - Dst: CERT_LIST_END
      Src: /src/nss/lib/certhigh/certvfy.c:2023,1
    - Dst: CERT_LIST_NEXT
      Src: /src/nss/lib/certhigh/certvfy.c:2025,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/certhigh/certvfy.c:2029,1
    - Dst: CERT_LIST_HEAD
      Src: /src/nss/lib/certhigh/certvfy.c:2046,1
    - Dst: CERT_LIST_END
      Src: /src/nss/lib/certhigh/certvfy.c:2047,1
    - Dst: CERT_GetCertNicknameWithValidity
      Src: /src/nss/lib/certhigh/certvfy.c:2048,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/certhigh/certvfy.c:2055,1
    - Dst: CERT_LIST_NEXT
      Src: /src/nss/lib/certhigh/certvfy.c:2058,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certhigh/certvfy.c:2064,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 48
    argCount: 3
    argNames:
    - certList
    - expiredString
    - notYetGoodString
    argTypes:
    - CERTCertList*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2066
      start: 1993
    functionDepth: 2
    functionLinenumber: 1993
    functionLinenumberEnd: 2066
    functionName: CERT_NicknameStringsFromCertList
    functionSourceFile: /src/nss/lib/certhigh/certvfy.c
    functionUses: 0
    functionsReached:
    - CERT_LIST_NEXT
    - CERT_LIST_HEAD
    - PORT_NewArena
    - PORT_FreeArena
    - PORT_ArenaAlloc
    - PORT_Strlen
    - CERT_LIST_END
    - CERT_GetCertNicknameWithValidity
    linkageType: ''
    returnType: CERTCertNicknames
    signature: "CERTCertNicknames *\nCERT_NicknameStringsFromCertList(CERTCertList
      *certList, char *expiredString,\n                                 char *notYetGoodString)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strlen
      Src: /src/nss/lib/certhigh/certvfy.c:2088,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/certhigh/certvfy.c:2089,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/certhigh/certvfy.c:2090,1
    - Dst: PORT_Strcmp
      Src: /src/nss/lib/certhigh/certvfy.c:2093,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/certhigh/certvfy.c:2095,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/certhigh/certvfy.c:2100,1
    - Dst: PORT_Strcmp
      Src: /src/nss/lib/certhigh/certvfy.c:2107,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/certhigh/certvfy.c:2109,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/certhigh/certvfy.c:2114,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/certhigh/certvfy.c:2123,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 3
    argNames:
    - namestring
    - expiredString
    - notYetGoodString
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2130
      start: 2080
    functionDepth: 1
    functionLinenumber: 2080
    functionLinenumberEnd: 2130
    functionName: CERT_ExtractNicknameString
    functionSourceFile: /src/nss/lib/certhigh/certvfy.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_Memcpy
    - PORT_Strcmp
    - PORT_Strlen
    - PORT_Strdup
    linkageType: ''
    returnType: char
    signature: "char *\nCERT_ExtractNicknameString(char *namestring, char *expiredString,\n
      \                          char *notYetGoodString)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/certhigh/certvfy.c:2142,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfy.c:2144,1
    - Dst: CERT_NewCertList
      Src: /src/nss/lib/certhigh/certvfy.c:2148,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfy.c:2150,1
    - Dst: CERT_AddCertToListTail
      Src: /src/nss/lib/certhigh/certvfy.c:2155,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfy.c:2157,1
    - Dst: CERT_FindCertIssuer
      Src: /src/nss/lib/certhigh/certvfy.c:2166,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certhigh/certvfy.c:2170,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - cert
    - time
    - usage
    argTypes:
    - CERTCertificate*
    - PRTime
    - SECCertUsage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2172
      start: 2132
    functionDepth: 8
    functionLinenumber: 2132
    functionLinenumberEnd: 2172
    functionName: CERT_GetCertChainFromCert
    functionSourceFile: /src/nss/lib/certhigh/certvfy.c
    functionUses: 1
    functionsReached:
    - CERT_FindCertIssuer
    - CERT_NewCertList
    - PORT_SetError
    - CERT_DupCertificate
    - CERT_AddCertToListTail
    linkageType: ''
    returnType: CERTCertList
    signature: 'CERTCertList *

      CERT_GetCertChainFromCert(CERTCertificate *cert, PRTime time, SECCertUsage usage)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cert_FindExtensionByOID
      Src: /src/nss/lib/certhigh/crlv2.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - crl
    - oid
    - value
    argTypes:
    - CERTCrl*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 21
    functionName: CERT_FindCRLExtensionByOID
    functionSourceFile: /src/nss/lib/certhigh/crlv2.c
    functionUses: 0
    functionsReached:
    - cert_FindExtensionByOID
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERT_FindCRLExtensionByOID(CERTCrl *crl, SECItem *oid, SECItem
      *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cert_FindExtension
      Src: /src/nss/lib/certhigh/crlv2.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - crl
    - tag
    - value
    argTypes:
    - CERTCrl*
    - int
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 27
    functionName: CERT_FindCRLExtension
    functionSourceFile: /src/nss/lib/certhigh/crlv2.c
    functionUses: 0
    functionsReached:
    - cert_FindExtension
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERT_FindCRLExtension(CERTCrl *crl, int tag, SECItem *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_SetUInteger
      Src: /src/nss/lib/certhigh/crlv2.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - object
    - exts
    argTypes:
    - void*
    - CERTCertExtension**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 37
    functionName: SetCrlExts
    functionSourceFile: /src/nss/lib/certhigh/crlv2.c
    functionUses: 0
    functionsReached:
    - DER_SetUInteger
    linkageType: ''
    returnType: void
    signature: void SetCrlExts(void *object, CERTCertExtension **exts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cert_StartExtensions
      Src: /src/nss/lib/certhigh/crlv2.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - crl
    argTypes:
    - CERTCrl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: CERT_StartCRLExtensions
    functionSourceFile: /src/nss/lib/certhigh/crlv2.c
    functionUses: 1
    functionsReached:
    - cert_StartExtensions
    linkageType: ''
    returnType: void
    signature: 'void *

      CERT_StartCRLExtensions(CERTCrl *crl)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - object
    - exts
    argTypes:
    - void*
    - CERTCertExtension**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 51
    functionName: SetCrlEntryExts
    functionSourceFile: /src/nss/lib/certhigh/crlv2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetCrlEntryExts(void *object, CERTCertExtension **exts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cert_StartExtensions
      Src: /src/nss/lib/certhigh/crlv2.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - crl
    - entry
    argTypes:
    - CERTCrl*
    - CERTCrlEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: CERT_StartCRLEntryExtensions
    functionSourceFile: /src/nss/lib/certhigh/crlv2.c
    functionUses: 2
    functionsReached:
    - cert_StartExtensions
    linkageType: ''
    returnType: void
    signature: 'void *

      CERT_StartCRLEntryExtensions(CERTCrl *crl, CERTCrlEntry *entry)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cert_FindExtension
      Src: /src/nss/lib/certhigh/crlv2.c:71,1
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/certhigh/crlv2.c:76,1
    - Dst: SECITEM_ArenaDupItem
      Src: /src/nss/lib/certhigh/crlv2.c:78,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/certhigh/crlv2.c:80,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/certhigh/crlv2.c:81,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certhigh/crlv2.c:87,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/certhigh/crlv2.c:89,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/certhigh/crlv2.c:91,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - arena
    - crl
    - value
    argTypes:
    - PLArenaPool*
    - CERTCrl*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 94
    functionName: CERT_FindCRLNumberExten
    functionSourceFile: /src/nss/lib/certhigh/crlv2.c
    functionUses: 1
    functionsReached:
    - cert_FindExtension
    - PORT_Free
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - SEC_QuickDERDecodeItem
    - PORT_ArenaUnmark
    - SEC_ASN1_GET
    - SECITEM_ArenaDupItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_FindCRLNumberExten(PLArenaPool *arena, CERTCrl *crl,\n
      \                       SECItem *value)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/certhigh/crlv2.c:105,1
    - Dst: cert_FindExtension
      Src: /src/nss/lib/certhigh/crlv2.c:110,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/certhigh/crlv2.c:116,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/certhigh/crlv2.c:117,1
    - Dst: DER_GetInteger
      Src: /src/nss/lib/certhigh/crlv2.c:124,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certhigh/crlv2.c:128,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certhigh/crlv2.c:132,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - crlEntry
    - value
    argTypes:
    - CERTCrlEntry*
    - CERTCRLEntryReasonCode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 136
    functionName: CERT_FindCRLEntryReasonExten
    functionSourceFile: /src/nss/lib/certhigh/crlv2.c
    functionUses: 1
    functionsReached:
    - cert_FindExtension
    - PORT_NewArena
    - PORT_FreeArena
    - PORT_Free
    - SEC_QuickDERDecodeItem
    - SEC_ASN1_GET
    - DER_GetInteger
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_FindCRLEntryReasonExten(CERTCrlEntry *crlEntry,\n                             CERTCRLEntryReasonCode
      *value)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cert_FindExtension
      Src: /src/nss/lib/certhigh/crlv2.c:148,1
    - Dst: SEC_ASN1DecodeItem
      Src: /src/nss/lib/certhigh/crlv2.c:152,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/certhigh/crlv2.c:153,1
    - Dst: DER_GeneralizedTimeToTime
      Src: /src/nss/lib/certhigh/crlv2.c:156,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certhigh/crlv2.c:157,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certhigh/crlv2.c:158,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - crl
    - value
    argTypes:
    - CERTCrl*
    - PRTime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 160
    functionName: CERT_FindInvalidDateExten
    functionSourceFile: /src/nss/lib/certhigh/crlv2.c
    functionUses: 0
    functionsReached:
    - cert_FindExtension
    - PORT_Free
    - SEC_ASN1DecodeItem
    - DER_GeneralizedTimeToTime
    - SEC_ASN1_GET
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERT_FindInvalidDateExten(CERTCrl *crl, PRTime *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/xconst.c:67,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/certdb/xconst.c:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - arena
    - srcString
    - encodedValue
    argTypes:
    - PLArenaPool*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 76
    functionName: CERT_EncodeSubjectKeyID
    functionSourceFile: /src/nss/lib/certdb/xconst.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - SEC_ASN1EncodeItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_EncodeSubjectKeyID(PLArenaPool *arena, const SECItem
      *srcString,\n                        SECItem *encodedValue)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/certdb/xconst.c:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - arena
    - pkup
    - encodedValue
    argTypes:
    - PLArenaPool*
    - CERTPrivKeyUsagePeriod*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 90
    functionName: CERT_EncodePrivateKeyUsagePeriod
    functionSourceFile: /src/nss/lib/certdb/xconst.c
    functionUses: 0
    functionsReached:
    - SEC_ASN1EncodeItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_EncodePrivateKeyUsagePeriod(PLArenaPool *arena,\n                                 CERTPrivKeyUsagePeriod
      *pkup,\n                                 SECItem *encodedValue)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/certdb/xconst.c:100,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/certdb/xconst.c:109,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/certdb/xconst.c:114,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - arena
    - extnValue
    argTypes:
    - PLArenaPool*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 123
    functionName: CERT_DecodePrivKeyUsagePeriodExtension
    functionSourceFile: /src/nss/lib/certdb/xconst.c
    functionUses: 1
    functionsReached:
    - PORT_ArenaZNew
    - SEC_QuickDERDecodeItem
    - SECITEM_CopyItem
    linkageType: ''
    returnType: CERTPrivKeyUsagePeriod
    signature: 'CERTPrivKeyUsagePeriod *

      CERT_DecodePrivKeyUsagePeriodExtension(PLArenaPool *arena, SECItem *extnValue)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memset
      Src: /src/nss/lib/certdb/xconst.c:132,1
    - Dst: strlen
      Src: /src/nss/lib/certdb/xconst.c:136,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/certdb/xconst.c:138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - arena
    - value
    - encodedValue
    argTypes:
    - PLArenaPool*
    - char*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 144
    functionName: CERT_EncodeIA5TypeExtension
    functionSourceFile: /src/nss/lib/certdb/xconst.c
    functionUses: 0
    functionsReached:
    - PORT_Memset
    - SEC_ASN1EncodeItem
    - strlen
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_EncodeIA5TypeExtension(PLArenaPool *arena, char *value,\n
      \                           SECItem *encodedValue)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cert_EncodeGeneralNames
      Src: /src/nss/lib/certdb/xconst.c:153,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/certdb/xconst.c:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - arena
    - value
    - encodedValue
    argTypes:
    - PLArenaPool*
    - CERTGeneralName*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 160
    functionName: CERT_EncodeAltNameExtension
    functionSourceFile: /src/nss/lib/certdb/xconst.c
    functionUses: 1
    functionsReached:
    - cert_EncodeGeneralNames
    - SEC_ASN1EncodeItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_EncodeAltNameExtension(PLArenaPool *arena, CERTGeneralName
      *value,\n                            SECItem *encodedValue)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/xconst.c:170,1
    - Dst: SECITEM_ArenaDupItem
      Src: /src/nss/lib/certdb/xconst.c:174,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/certdb/xconst.c:180,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/certdb/xconst.c:181,1
    - Dst: cert_DecodeGeneralNames
      Src: /src/nss/lib/certdb/xconst.c:187,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/xconst.c:190,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - reqArena
    - EncodedAltName
    argTypes:
    - PLArenaPool*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 193
    functionName: CERT_DecodeAltNameExtension
    functionSourceFile: /src/nss/lib/certdb/xconst.c
    functionUses: 1
    functionsReached:
    - cert_DecodeGeneralNames
    - PORT_SetError
    - SEC_QuickDERDecodeItem
    - PORT_Memset
    - SECITEM_ArenaDupItem
    linkageType: ''
    returnType: CERTGeneralName
    signature: 'CERTGeneralName *

      CERT_DecodeAltNameExtension(PLArenaPool *reqArena, SECItem *EncodedAltName)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cert_EncodeNameConstraints
      Src: /src/nss/lib/certdb/xconst.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - arena
    - value
    - encodedValue
    argTypes:
    - PLArenaPool*
    - CERTNameConstraints*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 204
    functionName: CERT_EncodeNameConstraintsExtension
    functionSourceFile: /src/nss/lib/certdb/xconst.c
    functionUses: 0
    functionsReached:
    - cert_EncodeNameConstraints
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_EncodeNameConstraintsExtension(PLArenaPool *arena,\n
      \                                   CERTNameConstraints *value,\n                                    SECItem
      *encodedValue)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cert_DecodeNameConstraints
      Src: /src/nss/lib/certdb/xconst.c:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - arena
    - encodedConstraints
    argTypes:
    - PLArenaPool*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 211
    functionName: CERT_DecodeNameConstraintsExtension
    functionSourceFile: /src/nss/lib/certdb/xconst.c
    functionUses: 1
    functionsReached:
    - cert_DecodeNameConstraints
    linkageType: ''
    returnType: CERTNameConstraints
    signature: "CERTNameConstraints *\nCERT_DecodeNameConstraintsExtension(PLArenaPool
      *arena,\n                                    const SECItem *encodedConstraints)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/xconst.c:223,1
    - Dst: SECITEM_ArenaDupItem
      Src: /src/nss/lib/certdb/xconst.c:227,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/certdb/xconst.c:232,1
    - Dst: CERT_DecodeGeneralName
      Src: /src/nss/lib/certdb/xconst.c:240,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 243
    functionName: CERT_DecodeAuthInfoAccessExtension
    functionSourceFile: /src/nss/lib/certdb/xconst.c
    functionUses: 3
    functionsReached:
    - PORT_SetError
    - SEC_QuickDERDecodeItem
    - SECITEM_ArenaDupItem
    - CERT_DecodeGeneralName
    linkageType: ''
    returnType: CERTAuthInfoAccess
    signature: "CERTAuthInfoAccess **\nCERT_DecodeAuthInfoAccessExtension(PLArenaPool
      *reqArena,\n                                   const SECItem *encodedExtension)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/xconst.c:252,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/xconst.c:253,1
    - Dst: CERT_EncodeGeneralName
      Src: /src/nss/lib/certdb/xconst.c:259,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/certdb/xconst.c:264,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - arena
    - info
    - dest
    argTypes:
    - PLArenaPool*
    - CERTAuthInfoAccess**
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 269
    functionName: CERT_EncodeInfoAccessExtension
    functionSourceFile: /src/nss/lib/certdb/xconst.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SEC_ASN1EncodeItem
    - CERT_EncodeGeneralName
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_EncodeInfoAccessExtension(PLArenaPool *arena, CERTAuthInfoAccess
      **info,\n                               SECItem *dest)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - array
    argTypes:
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 36
    functionName: CountArray
    functionSourceFile: /src/nss/lib/certdb/secname.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int CountArray(void **array)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaGrow
      Src: /src/nss/lib/certdb/secname.c:55,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/certdb/secname.c:58,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 65
    functionName: AddToArray
    functionSourceFile: /src/nss/lib/certdb/secname.c
    functionUses: 0
    functionsReached:
    - PORT_ArenaAlloc
    - PORT_ArenaGrow
    linkageType: ''
    returnType: void
    signature: 'void **

      AddToArray(PLArenaPool *arena, void **array, void *element)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOID
      Src: /src/nss/lib/certdb/secname.c:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ava
    argTypes:
    - CERTAVA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 80
    functionName: CERT_GetAVATag
    functionSourceFile: /src/nss/lib/certdb/secname.c
    functionUses: 1
    functionsReached:
    - SECOID_FindOID
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag CERT_GetAVATag(CERTAVA *ava)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/lib/certdb/secname.c:91,1
    - Dst: cert_AVAOidTagToMaxLen
      Src: /src/nss/lib/certdb/secname.c:98,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/secname.c:100,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/certdb/secname.c:104,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/certdb/secname.c:109,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 4
    argNames:
    - arena
    - type
    - it
    - maxLenp
    argTypes:
    - PLArenaPool*
    - SECOidTag
    - SECItem*
    - unsigned*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 112
    functionName: SetupAVAType
    functionSourceFile: /src/nss/lib/certdb/secname.c
    functionUses: 0
    functionsReached:
    - PORT_Memcpy
    - SECOID_FindOIDByTag
    - PORT_ArenaAlloc
    - PORT_SetError
    - cert_AVAOidTagToMaxLen
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SetupAVAType(PLArenaPool *arena, SECOidTag type, SECItem
      *it, unsigned *maxLenp)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/certdb/secname.c:132,1
    - Dst: PORT_UCS4_UTF8Conversion
      Src: /src/nss/lib/certdb/secname.c:134,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/secname.c:136,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/secname.c:144,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/secname.c:149,1
    - Dst: DER_LengthLength
      Src: /src/nss/lib/certdb/secname.c:153,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/certdb/secname.c:155,1
    - Dst: DER_StoreHeader
      Src: /src/nss/lib/certdb/secname.c:161,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/certdb/secname.c:162,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 5
    argNames:
    - arena
    - valueType
    - in
    - out
    - maxLen
    argTypes:
    - PLArenaPool*
    - int
    - SECItem*
    - SECItem*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 164
    functionName: SetupAVAValue
    functionSourceFile: /src/nss/lib/certdb/secname.c
    functionUses: 0
    functionsReached:
    - DER_LengthLength
    - PORT_Memcpy
    - PORT_ArenaZAlloc
    - PORT_ArenaAlloc
    - PORT_SetError
    - DER_StoreHeader
    - PORT_UCS4_UTF8Conversion
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SetupAVAValue(PLArenaPool *arena, int valueType, const SECItem
      *in,\n              SECItem *out, unsigned maxLen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/certdb/secname.c:173,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/certdb/secname.c:175,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/certdb/secname.c:179,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - pool
    - OID
    - value
    argTypes:
    - PLArenaPool*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 184
    functionName: CERT_CreateAVAFromRaw
    functionSourceFile: /src/nss/lib/certdb/secname.c
    functionUses: 0
    functionsReached:
    - PORT_ArenaZNew
    - SECITEM_CopyItem
    linkageType: ''
    returnType: CERTAVA
    signature: "CERTAVA *\nCERT_CreateAVAFromRaw(PLArenaPool *pool, const SECItem
      *OID,\n                      const SECItem *value)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/certdb/secname.c:194,1
    - Dst: SetupAVAType
      Src: /src/nss/lib/certdb/secname.c:196,1
    - Dst: SetupAVAValue
      Src: /src/nss/lib/certdb/secname.c:201,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - arena
    - kind
    - valueType
    - value
    argTypes:
    - PLArenaPool*
    - SECOidTag
    - int
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 208
    functionName: CERT_CreateAVAFromSECItem
    functionSourceFile: /src/nss/lib/certdb/secname.c
    functionUses: 0
    functionsReached:
    - SetupAVAType
    - PORT_ArenaZAlloc
    - SetupAVAValue
    linkageType: ''
    returnType: CERTAVA
    signature: "CERTAVA *\nCERT_CreateAVAFromSECItem(PLArenaPool *arena, SECOidTag
      kind, int valueType,\n                          SECItem *value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strlen
      Src: /src/nss/lib/certdb/secname.c:216,1
    - Dst: CERT_CreateAVAFromSECItem
      Src: /src/nss/lib/certdb/secname.c:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - arena
    - kind
    - valueType
    - value
    argTypes:
    - PLArenaPool*
    - SECOidTag
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 210
    functionDepth: 3
    functionLinenumber: 210
    functionLinenumberEnd: 219
    functionName: CERT_CreateAVA
    functionSourceFile: /src/nss/lib/certdb/secname.c
    functionUses: 0
    functionsReached:
    - CERT_CreateAVAFromSECItem
    - PORT_Strlen
    linkageType: ''
    returnType: CERTAVA
    signature: 'CERTAVA *

      CERT_CreateAVA(PLArenaPool *arena, SECOidTag kind, int valueType, char *value)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/certdb/secname.c:227,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/certdb/secname.c:229,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/certdb/secname.c:232,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - arena
    - from
    argTypes:
    - PLArenaPool*
    - CERTAVA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 240
    functionName: CERT_CopyAVA
    functionSourceFile: /src/nss/lib/certdb/secname.c
    functionUses: 0
    functionsReached:
    - PORT_ArenaZAlloc
    - SECITEM_CopyItem
    linkageType: ''
    returnType: CERTAVA
    signature: 'CERTAVA *

      CERT_CopyAVA(PLArenaPool *arena, CERTAVA *from)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/certdb/secname.c:251,1
    - Dst: va_start
      Src: /src/nss/lib/certdb/secname.c:257,1
    - Dst: va_arg
      Src: /src/nss/lib/certdb/secname.c:258,1
    - Dst: va_end
      Src: /src/nss/lib/certdb/secname.c:261,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/certdb/secname.c:266,1
    - Dst: va_start
      Src: /src/nss/lib/certdb/secname.c:272,1
    - Dst: va_arg
      Src: /src/nss/lib/certdb/secname.c:273,1
    - Dst: va_end
      Src: /src/nss/lib/certdb/secname.c:276,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - arena
    - ava0
    argTypes:
    - PLArenaPool*
    - CERTAVA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 281
    functionName: CERT_CreateRDN
    functionSourceFile: /src/nss/lib/certdb/secname.c
    functionUses: 0
    functionsReached:
    - va_arg
    - PORT_ArenaAlloc
    - va_end
    - va_start
    linkageType: ''
    returnType: CERTRDN
    signature: 'CERTRDN *

      CERT_CreateRDN(PLArenaPool *arena, CERTAVA *ava0, ...)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AddToArray
      Src: /src/nss/lib/certdb/secname.c:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - arena
    - rdn
    - ava
    argTypes:
    - PLArenaPool*
    - CERTRDN*
    - CERTAVA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 288
    functionName: CERT_AddAVA
    functionSourceFile: /src/nss/lib/certdb/secname.c
    functionUses: 0
    functionsReached:
    - AddToArray
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERT_AddAVA(PLArenaPool *arena, CERTRDN *rdn, CERTAVA *ava)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CERT_AddAVA
      Src: /src/nss/lib/certdb/secname.c:300,1
    - Dst: CERT_CopyAVA
      Src: /src/nss/lib/certdb/secname.c:304,1
    - Dst: CERT_AddAVA
      Src: /src/nss/lib/certdb/secname.c:309,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - arena
    - to
    - from
    argTypes:
    - PLArenaPool*
    - CERTRDN*
    - CERTRDN*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 290
    functionDepth: 2
    functionLinenumber: 290
    functionLinenumberEnd: 315
    functionName: CERT_CopyRDN
    functionSourceFile: /src/nss/lib/certdb/secname.c
    functionUses: 1
    functionsReached:
    - CERT_CopyAVA
    - CERT_AddAVA
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERT_CopyRDN(PLArenaPool *arena, CERTRDN *to, CERTRDN *from)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/certdb/secname.c:336,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/certdb/secname.c:341,1
    - Dst: va_start
      Src: /src/nss/lib/certdb/secname.c:350,1
    - Dst: va_arg
      Src: /src/nss/lib/certdb/secname.c:351,1
    - Dst: va_end
      Src: /src/nss/lib/certdb/secname.c:354,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/certdb/secname.c:359,1
    - Dst: va_start
      Src: /src/nss/lib/certdb/secname.c:367,1
    - Dst: va_arg
      Src: /src/nss/lib/certdb/secname.c:368,1
    - Dst: va_end
      Src: /src/nss/lib/certdb/secname.c:371,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certdb/secname.c:380,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 1
    argNames:
    - rdn0
    argTypes:
    - CERTRDN*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 382
    functionName: CERT_CreateName
    functionSourceFile: /src/nss/lib/certdb/secname.c
    functionUses: 0
    functionsReached:
    - va_end
    - PORT_NewArena
    - PORT_FreeArena
    - PORT_ArenaAlloc
    - va_start
    - va_arg
    linkageType: ''
    returnType: CERTName
    signature: 'CERTName *

      CERT_CreateName(CERTRDN *rdn0, ...)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certdb/secname.c:392,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - CERTName*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 394
    functionName: CERT_DestroyName
    functionSourceFile: /src/nss/lib/certdb/secname.c
    functionUses: 14
    functionsReached:
    - PORT_FreeArena
    linkageType: ''
    returnType: void
    signature: void CERT_DestroyName(CERTName *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AddToArray
      Src: /src/nss/lib/certdb/secname.c:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - name
    - rdn
    argTypes:
    - CERTName*
    - CERTRDN*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 401
    functionName: CERT_AddRDN
    functionSourceFile: /src/nss/lib/certdb/secname.c
    functionUses: 1
    functionsReached:
    - AddToArray
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERT_AddRDN(CERTName *name, CERTRDN *rdn)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/secname.c:410,1
    - Dst: CERT_DestroyName
      Src: /src/nss/lib/certdb/secname.c:414,1
    - Dst: CERT_AddRDN
      Src: /src/nss/lib/certdb/secname.c:421,1
    - Dst: CERT_CreateRDN
      Src: /src/nss/lib/certdb/secname.c:425,1
    - Dst: CERT_CopyRDN
      Src: /src/nss/lib/certdb/secname.c:430,1
    - Dst: CERT_AddRDN
      Src: /src/nss/lib/certdb/secname.c:433,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 3
    argNames:
    - arena
    - to
    - from
    argTypes:
    - PLArenaPool*
    - CERTName*
    - CERTName*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 403
    functionDepth: 3
    functionLinenumber: 403
    functionLinenumberEnd: 439
    functionName: CERT_CopyName
    functionSourceFile: /src/nss/lib/certdb/secname.c
    functionUses: 11
    functionsReached:
    - CERT_AddRDN
    - CERT_DestroyName
    - PORT_SetError
    - CERT_CreateRDN
    - CERT_CopyRDN
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERT_CopyName(PLArenaPool *arena, CERTName *to, const CERTName
      *from)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 24
    argCount: 1
    argNames:
    - foo
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 475
    functionName: canonicalize
    functionSourceFile: /src/nss/lib/certdb/secname.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void canonicalize(SECItem *foo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CERT_DecodeAVAValue
      Src: /src/nss/lib/certdb/secname.c:482,1
    - Dst: CERT_DecodeAVAValue
      Src: /src/nss/lib/certdb/secname.c:483,1
    - Dst: canonicalize
      Src: /src/nss/lib/certdb/secname.c:486,1
    - Dst: canonicalize
      Src: /src/nss/lib/certdb/secname.c:487,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/certdb/secname.c:488,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/certdb/secname.c:490,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/certdb/secname.c:491,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 478
    functionDepth: 1
    functionLinenumber: 478
    functionLinenumberEnd: 493
    functionName: CERT_CompareDERPrintableStrings
    functionSourceFile: /src/nss/lib/certdb/secname.c
    functionUses: 0
    functionsReached:
    - SECITEM_FreeItem
    - CERT_DecodeAVAValue
    - canonicalize
    - SECITEM_CompareItem
    linkageType: ''
    returnType: SECComparison
    signature: SECComparison CERT_CompareDERPrintableStrings(const SECItem *a, const
      SECItem *b)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/certdb/secname.c:500,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/certdb/secname.c:504,1
    - Dst: CERT_DecodeAVAValue
      Src: /src/nss/lib/certdb/secname.c:514,1
    - Dst: CERT_DecodeAVAValue
      Src: /src/nss/lib/certdb/secname.c:515,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/certdb/secname.c:518,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/certdb/secname.c:520,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/certdb/secname.c:521,1
    - Dst: CERT_CompareDERPrintableStrings
      Src: /src/nss/lib/certdb/secname.c:524,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 20
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - CERTAVA*
    - CERTAVA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 495
    functionDepth: 2
    functionLinenumber: 495
    functionLinenumberEnd: 528
    functionName: CERT_CompareAVA
    functionSourceFile: /src/nss/lib/certdb/secname.c
    functionUses: 0
    functionsReached:
    - SECITEM_FreeItem
    - SECITEM_CompareItem
    - CERT_CompareDERPrintableStrings
    - CERT_DecodeAVAValue
    linkageType: ''
    returnType: SECComparison
    signature: SECComparison CERT_CompareAVA(const CERTAVA *a, const CERTAVA *b)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CountArray
      Src: /src/nss/lib/certdb/secname.c:545,1
    - Dst: CountArray
      Src: /src/nss/lib/certdb/secname.c:546,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/certdb/secname.c:554,1
    - Dst: CERT_CompareAVA
      Src: /src/nss/lib/certdb/secname.c:556,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - CERTRDN*
    - CERTRDN*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 530
    functionDepth: 3
    functionLinenumber: 530
    functionLinenumberEnd: 566
    functionName: CERT_CompareRDN
    functionSourceFile: /src/nss/lib/certdb/secname.c
    functionUses: 0
    functionsReached:
    - CountArray
    - SECITEM_CompareItem
    - CERT_CompareAVA
    linkageType: ''
    returnType: SECComparison
    signature: SECComparison CERT_CompareRDN(const CERTRDN *a, const CERTRDN *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CountArray
      Src: /src/nss/lib/certdb/secname.c:583,1
    - Dst: CountArray
      Src: /src/nss/lib/certdb/secname.c:584,1
    - Dst: CERT_CompareRDN
      Src: /src/nss/lib/certdb/secname.c:591,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - CERTName*
    - CERTName*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 568
    functionDepth: 4
    functionLinenumber: 568
    functionLinenumberEnd: 594
    functionName: CERT_CompareName
    functionSourceFile: /src/nss/lib/certdb/secname.c
    functionUses: 2
    functionsReached:
    - CountArray
    - CERT_CompareRDN
    linkageType: ''
    returnType: SECComparison
    signature: SECComparison CERT_CompareName(const CERTName *a, const CERTName *b)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/secname.c:610,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/certdb/secname.c:617,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/certdb/secname.c:620,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/certdb/secname.c:623,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/certdb/secname.c:631,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/certdb/secname.c:635,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/certdb/secname.c:639,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/secname.c:642,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/certdb/secname.c:646,1
    - Dst: PORT_InitCheapArena
      Src: /src/nss/lib/certdb/secname.c:647,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/certdb/secname.c:648,1
    - Dst: PORT_DestroyCheapArena
      Src: /src/nss/lib/certdb/secname.c:650,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/certdb/secname.c:657,1
    - Dst: PORT_UCS4_UTF8Conversion
      Src: /src/nss/lib/certdb/secname.c:662,1
    - Dst: PORT_DestroyCheapArena
      Src: /src/nss/lib/certdb/secname.c:665,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/secname.c:666,1
    - Dst: PORT_UCS2_UTF8Conversion
      Src: /src/nss/lib/certdb/secname.c:672,1
    - Dst: PORT_DestroyCheapArena
      Src: /src/nss/lib/certdb/secname.c:675,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/secname.c:676,1
    - Dst: PORT_ISO88591_UTF8Conversion
      Src: /src/nss/lib/certdb/secname.c:681,1
    - Dst: PORT_DestroyCheapArena
      Src: /src/nss/lib/certdb/secname.c:684,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/secname.c:685,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/secname.c:690,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/certdb/secname.c:698,1
    - Dst: PORT_DestroyCheapArena
      Src: /src/nss/lib/certdb/secname.c:699,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 70
    argCount: 1
    argNames:
    - derAVAValue
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 597
    functionDepth: 1
    functionLinenumber: 597
    functionLinenumberEnd: 701
    functionName: CERT_DecodeAVAValue
    functionSourceFile: /src/nss/lib/certdb/secname.c
    functionUses: 3
    functionsReached:
    - PORT_Assert
    - SECITEM_DupItem
    - PORT_ArenaZAlloc
    - PORT_ISO88591_UTF8Conversion
    - PORT_SetError
    - SEC_QuickDERDecodeItem
    - PORT_UCS2_UTF8Conversion
    - PORT_InitCheapArena
    - PORT_Memset
    - SEC_ASN1_GET
    - PORT_DestroyCheapArena
    - PORT_UCS4_UTF8Conversion
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      CERT_DecodeAVAValue(const SECItem *derAVAValue)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/certdb/certxutl.c:35,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - extensions
    - oid
    argTypes:
    - CERTCertExtension**
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 44
    functionName: GetExtension
    functionSourceFile: /src/nss/lib/certdb/certxutl.c
    functionUses: 0
    functionsReached:
    - SECITEM_CompareItem
    linkageType: ''
    returnType: CERTCertExtension
    signature: 'CERTCertExtension *

      GetExtension(CERTCertExtension **extensions, SECItem *oid)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetExtension
      Src: /src/nss/lib/certdb/certxutl.c:53,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/certxutl.c:55,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/certdb/certxutl.c:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - extensions
    - oid
    - value
    argTypes:
    - CERTCertExtension**
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 61
    functionName: cert_FindExtensionByOID
    functionSourceFile: /src/nss/lib/certdb/certxutl.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    - GetExtension
    - SECITEM_CopyItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus cert_FindExtensionByOID(CERTCertExtension **extensions,
      SECItem *oid,\n                        SECItem *value)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/lib/certdb/certxutl.c:74,1
    - Dst: GetExtension
      Src: /src/nss/lib/certdb/certxutl.c:78,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/certxutl.c:80,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - extensions
    - tag
    - isCritical
    argTypes:
    - CERTCertExtension**
    - int
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 91
    functionName: CERT_GetExtenCriticality
    functionSourceFile: /src/nss/lib/certdb/certxutl.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    - GetExtension
    - SECOID_FindOIDByTag
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_GetExtenCriticality(CERTCertExtension **extensions,
      int tag,\n                         PRBool *isCritical)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/lib/certdb/certxutl.c:98,1
    - Dst: cert_FindExtensionByOID
      Src: /src/nss/lib/certdb/certxutl.c:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - extensions
    - tag
    - value
    argTypes:
    - CERTCertExtension**
    - int
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 104
    functionName: cert_FindExtension
    functionSourceFile: /src/nss/lib/certdb/certxutl.c
    functionUses: 5
    functionsReached:
    - cert_FindExtensionByOID
    - SECOID_FindOIDByTag
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus cert_FindExtension(CERTCertExtension **extensions, int tag,
      SECItem *value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/certdb/certxutl.c:133,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/certdb/certxutl.c:138,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certdb/certxutl.c:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - owner
    - ownerArena
    argTypes:
    - void*
    - PLArenaPool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 153
    functionName: cert_StartExtensions
    functionSourceFile: /src/nss/lib/certdb/certxutl.c
    functionUses: 5
    functionsReached:
    - PORT_FreeArena
    - PORT_ArenaAlloc
    - PORT_NewArena
    linkageType: ''
    returnType: void
    signature: "void *\ncert_StartExtensions(void *owner, PLArenaPool *ownerArena,\n
      \                    void (*setExts)(void *object, CERTCertExtension **exts))"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/certdb/certxutl.c:172,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/certdb/certxutl.c:178,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/certdb/certxutl.c:198,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/certdb/certxutl.c:203,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 5
    argNames:
    - exthandle
    - oid
    - value
    - critical
    - copyData
    argTypes:
    - void*
    - SECItem*
    - SECItem*
    - PRBool
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 215
    functionName: CERT_AddExtensionByOID
    functionSourceFile: /src/nss/lib/certdb/certxutl.c
    functionUses: 1
    functionsReached:
    - PORT_ArenaAlloc
    - PORT_ArenaZAlloc
    - SECITEM_CopyItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_AddExtensionByOID(void *exthandle, SECItem *oid, SECItem
      *value,\n                       PRBool critical, PRBool copyData)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/lib/certdb/certxutl.c:223,1
    - Dst: CERT_AddExtensionByOID
      Src: /src/nss/lib/certdb/certxutl.c:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - exthandle
    - idtag
    - value
    - critical
    - copyData
    argTypes:
    - void*
    - int
    - SECItem*
    - PRBool
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 230
    functionName: CERT_AddExtension
    functionSourceFile: /src/nss/lib/certdb/certxutl.c
    functionUses: 7
    functionsReached:
    - CERT_AddExtensionByOID
    - SECOID_FindOIDByTag
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_AddExtension(void *exthandle, int idtag, SECItem *value,
      PRBool critical,\n                  PRBool copyData)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/certdb/certxutl.c:241,1
    - Dst: CERT_AddExtension
      Src: /src/nss/lib/certdb/certxutl.c:246,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - exthandle
    - idtag
    - value
    - critical
    - atemplate
    argTypes:
    - void*
    - int
    - void*
    - PRBool
    - SEC_ASN1Template*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 247
    functionName: CERT_EncodeAndAddExtension
    functionSourceFile: /src/nss/lib/certdb/certxutl.c
    functionUses: 2
    functionsReached:
    - CERT_AddExtension
    - SEC_ASN1EncodeItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_EncodeAndAddExtension(void *exthandle, int idtag, void
      *value,\n                           PRBool critical, const SEC_ASN1Template
      *atemplate)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - bitsmap
    - value
    argTypes:
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 268
    functionName: PrepareBitStringForEncoding
    functionSourceFile: /src/nss/lib/certdb/certxutl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PrepareBitStringForEncoding(SECItem *bitsmap, SECItem *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PrepareBitStringForEncoding
      Src: /src/nss/lib/certdb/certxutl.c:276,1
    - Dst: CERT_EncodeAndAddExtension
      Src: /src/nss/lib/certdb/certxutl.c:277,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/certdb/certxutl.c:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - exthandle
    - idtag
    - value
    - critical
    argTypes:
    - void*
    - int
    - SECItem*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 270
    functionDepth: 3
    functionLinenumber: 270
    functionLinenumberEnd: 279
    functionName: CERT_EncodeAndAddBitStrExtension
    functionSourceFile: /src/nss/lib/certdb/certxutl.c
    functionUses: 3
    functionsReached:
    - CERT_EncodeAndAddExtension
    - SEC_ASN1_GET
    - PrepareBitStringForEncoding
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_EncodeAndAddBitStrExtension(void *exthandle, int idtag,
      SECItem *value,\n                                 PRBool critical)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaNewArray
      Src: /src/nss/lib/certdb/certxutl.c:292,1
    - Dst: DER_SetUInteger
      Src: /src/nss/lib/certdb/certxutl.c:304,1
    - Dst: DER_SetUInteger
      Src: /src/nss/lib/certdb/certxutl.c:309,1
    - Dst: extRec*::setExts
      Src: /src/nss/lib/certdb/certxutl.c:324,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certdb/certxutl.c:344,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 1
    argNames:
    - exthandle
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 346
    functionName: CERT_FinishExtensions
    functionSourceFile: /src/nss/lib/certdb/certxutl.c
    functionUses: 10
    functionsReached:
    - PORT_FreeArena
    - PORT_ArenaNewArray
    - DER_SetUInteger
    - extRec*::setExts
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERT_FinishExtensions(void *exthandle)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/certxutl.c:358,1
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/certdb/certxutl.c:362,1
    - Dst: SECITEM_ItemsAreEqual
      Src: /src/nss/lib/certdb/certxutl.c:365,1
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/certdb/certxutl.c:368,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/certxutl.c:377,1
    - Dst: CERT_AddExtensionByOID
      Src: /src/nss/lib/certdb/certxutl.c:382,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 29
    argCount: 2
    argNames:
    - exthandle
    - extensions
    argTypes:
    - void*
    - CERTCertExtension**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 389
    functionName: CERT_MergeExtensions
    functionSourceFile: /src/nss/lib/certdb/certxutl.c
    functionUses: 1
    functionsReached:
    - SECOID_FindOIDTag
    - PORT_SetError
    - SECITEM_ItemsAreEqual
    - CERT_AddExtensionByOID
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERT_MergeExtensions(void *exthandle, CERTCertExtension **extensions)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_InitCheapArena
      Src: /src/nss/lib/certdb/certxutl.c:405,1
    - Dst: cert_FindExtension
      Src: /src/nss/lib/certdb/certxutl.c:407,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/certdb/certxutl.c:412,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/certdb/certxutl.c:413,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/certdb/certxutl.c:420,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/certdb/certxutl.c:426,1
    - Dst: PORT_DestroyCheapArena
      Src: /src/nss/lib/certdb/certxutl.c:438,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certdb/certxutl.c:441,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 3
    argNames:
    - extensions
    - tag
    - retItem
    argTypes:
    - CERTCertExtension**
    - int
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 394
    functionDepth: 3
    functionLinenumber: 394
    functionLinenumberEnd: 445
    functionName: CERT_FindBitStringExtension
    functionSourceFile: /src/nss/lib/certdb/certxutl.c
    functionUses: 0
    functionsReached:
    - cert_FindExtension
    - PORT_Memcpy
    - PORT_Free
    - PORT_ZAlloc
    - SEC_QuickDERDecodeItem
    - PORT_InitCheapArena
    - SEC_ASN1_GET
    - PORT_DestroyCheapArena
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_FindBitStringExtension(CERTCertExtension **extensions,
      int tag,\n                            SECItem *retItem)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - extensions
    argTypes:
    - CERTCertExtension**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 468
    functionName: cert_HasCriticalExtension
    functionSourceFile: /src/nss/lib/certdb/certxutl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool cert_HasCriticalExtension(CERTCertExtension **extensions)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_KnownCertExtenOID
      Src: /src/nss/lib/certdb/certxutl.c:487,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - extensions
    argTypes:
    - CERTCertExtension**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 496
    functionName: cert_HasUnknownCriticalExten
    functionSourceFile: /src/nss/lib/certdb/certxutl.c
    functionUses: 0
    functionsReached:
    - SECOID_KnownCertExtenOID
    linkageType: ''
    returnType: PRBool
    signature: PRBool cert_HasUnknownCriticalExten(CERTCertExtension **extensions)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DER_GetUInteger
      Src: /src/nss/lib/certdb/crl.c:162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - crl
    argTypes:
    - CERTCrl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 165
    functionName: cert_get_crl_version
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 0
    functionsReached:
    - DER_GetUInteger
    linkageType: ''
    returnType: int
    signature: int cert_get_crl_version(CERTCrl* crl)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cert_HasCriticalExtension
      Src: /src/nss/lib/certdb/crl.c:198,1
    - Dst: cert_get_crl_version
      Src: /src/nss/lib/certdb/crl.c:200,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:202,1
    - Dst: cert_HasUnknownCriticalExten
      Src: /src/nss/lib/certdb/crl.c:213,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:214,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 1
    argNames:
    - crl
    argTypes:
    - CERTCrl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 168
    functionDepth: 2
    functionLinenumber: 168
    functionLinenumberEnd: 222
    functionName: cert_check_crl_entries
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 0
    functionsReached:
    - cert_HasCriticalExtension
    - PORT_SetError
    - cert_HasUnknownCriticalExten
    - cert_get_crl_version
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus cert_check_crl_entries(CERTCrl* crl)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cert_get_crl_version
      Src: /src/nss/lib/certdb/crl.c:233,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:236,1
    - Dst: cert_HasCriticalExtension
      Src: /src/nss/lib/certdb/crl.c:244,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:248,1
    - Dst: cert_HasUnknownCriticalExten
      Src: /src/nss/lib/certdb/crl.c:252,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:253,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - crl
    argTypes:
    - CERTCrl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 229
    functionDepth: 2
    functionLinenumber: 229
    functionLinenumberEnd: 260
    functionName: cert_check_crl_version
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 0
    functionsReached:
    - cert_HasCriticalExtension
    - PORT_SetError
    - cert_HasUnknownCriticalExten
    - cert_get_crl_version
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus cert_check_crl_version(CERTCrl* crl)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/certdb/crl.c:276,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/certdb/crl.c:280,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/certdb/crl.c:281,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/certdb/crl.c:283,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/certdb/crl.c:284,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/certdb/crl.c:291,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certdb/crl.c:295,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - arena
    - derCrl
    - key
    argTypes:
    - PLArenaPool*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 299
    functionName: CERT_KeyFromDERCrl
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 0
    functionsReached:
    - PORT_NewArena
    - PORT_FreeArena
    - SECITEM_CopyItem
    - SEC_QuickDERDecodeItem
    - PORT_Memset
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERT_KeyFromDERCrl(PLArenaPool* arena, SECItem* derCrl, SECItem*
      key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 302
    functionName: GetOpaqueCRLFields
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GetOpaqueCRLFields(x)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/certdb/crl.c:329,1
    - Dst: cert_check_crl_entries
      Src: /src/nss/lib/certdb/crl.c:341,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 1
    argNames:
    - crl
    argTypes:
    - CERTSignedCrl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 303
    functionDepth: 3
    functionLinenumber: 303
    functionLinenumberEnd: 347
    functionName: CERT_CompleteCRLDecodeEntries
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 0
    functionsReached:
    - SEC_QuickDERDecodeItem
    - cert_check_crl_entries
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERT_CompleteCRLDecodeEntries(CERTSignedCrl* crl)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:364,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:366,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:375,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:377,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/certdb/crl.c:383,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/certdb/crl.c:392,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:394,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/certdb/crl.c:401,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/certdb/crl.c:414,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/certdb/crl.c:418,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/certdb/crl.c:434,1
    - Dst: cert_check_crl_version
      Src: /src/nss/lib/certdb/crl.c:440,1
    - Dst: cert_check_crl_entries
      Src: /src/nss/lib/certdb/crl.c:451,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:459,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certdb/crl.c:484,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 101
    argCount: 4
    argNames:
    - narena
    - derSignedCrl
    - type
    - options
    argTypes:
    - PLArenaPool*
    - SECItem*
    - int
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 353
    functionDepth: 3
    functionLinenumber: 353
    functionLinenumberEnd: 488
    functionName: CERT_DecodeDERCrlWithFlags
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 10
    functionsReached:
    - PORT_Assert
    - cert_check_crl_version
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - PORT_FreeArena
    - SECITEM_CopyItem
    - PORT_SetError
    - SEC_QuickDERDecodeItem
    - cert_check_crl_entries
    linkageType: ''
    returnType: CERTSignedCrl
    signature: "CERTSignedCrl *\nCERT_DecodeDERCrlWithFlags(PLArenaPool* narena, SECItem*
      derSignedCrl, int type,\n                           PRInt32 options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CERT_DecodeDERCrlWithFlags
      Src: /src/nss/lib/certdb/crl.c:496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - narena
    - derSignedCrl
    - type
    argTypes:
    - PLArenaPool*
    - SECItem*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 493
    functionDepth: 4
    functionLinenumber: 493
    functionLinenumberEnd: 498
    functionName: CERT_DecodeDERCrl
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 1
    functionsReached:
    - CERT_DecodeDERCrlWithFlags
    linkageType: ''
    returnType: CERTSignedCrl
    signature: 'CERTSignedCrl *

      CERT_DecodeDERCrl(PLArenaPool* narena, SECItem* derSignedCrl, int type)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:526,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:528,1
    - Dst: PK11_FindCrlByName
      Src: /src/nss/lib/certdb/crl.c:532,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/certdb/crl.c:536,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:542,1
    - Dst: CERT_DecodeDERCrlWithFlags
      Src: /src/nss/lib/certdb/crl.c:550,1
    - Dst: PORT_ArenaStrdup
      Src: /src/nss/lib/certdb/crl.c:557,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certdb/crl.c:564,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/certdb/crl.c:568,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/certdb/crl.c:573,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 5
    argNames:
    - slot
    - crlKey
    - type
    - decoded
    - decodeoptions
    argTypes:
    - PK11SlotInfo*
    - SECItem*
    - int
    - CERTSignedCrl**
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 516
    functionDepth: 7
    functionLinenumber: 516
    functionLinenumberEnd: 579
    functionName: SEC_FindCrlByKeyOnSlot
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PK11_FindCrlByName
    - CERT_DecodeDERCrlWithFlags
    - PORT_ArenaStrdup
    - PORT_Free
    - PORT_GetError
    - PORT_SetError
    - PK11_FreeSlot
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SEC_FindCrlByKeyOnSlot(PK11SlotInfo* slot, SECItem* crlKey,
      int type,\n                       CERTSignedCrl** decoded, PRInt32 decodeoptions)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:589,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:590,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:591,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:594,1
    - Dst: SEC_FindCrlByKeyOnSlot
      Src: /src/nss/lib/certdb/crl.c:600,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/certdb/crl.c:608,1
    - Dst: PK11_ReferenceSlot
      Src: /src/nss/lib/certdb/crl.c:610,1
    - Dst: PORT_ArenaStrdup
      Src: /src/nss/lib/certdb/crl.c:615,1
    - Dst: SEC_CrlIsNewer
      Src: /src/nss/lib/certdb/crl.c:618,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:619,1
    - Dst: CERT_CRLCacheRefreshIssuer
      Src: /src/nss/lib/certdb/crl.c:634,1
    - Dst: PK11_PutCrl
      Src: /src/nss/lib/certdb/crl.c:636,1
    - Dst: PK11_ReferenceSlot
      Src: /src/nss/lib/certdb/crl.c:639,1
    - Dst: PORT_ArenaStrdup
      Src: /src/nss/lib/certdb/crl.c:642,1
    - Dst: SEC_DeletePermCRL
      Src: /src/nss/lib/certdb/crl.c:649,1
    - Dst: SEC_DestroyCrl
      Src: /src/nss/lib/certdb/crl.c:651,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 50
    argCount: 5
    argNames:
    - slot
    - url
    - newCrl
    - derCrl
    - type
    argTypes:
    - PK11SlotInfo*
    - char*
    - CERTSignedCrl*
    - SECItem*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 581
    functionDepth: 8
    functionLinenumber: 581
    functionLinenumberEnd: 655
    functionName: crl_storeCRL
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 1
    functionsReached:
    - SEC_FindCrlByKeyOnSlot
    - PORT_Assert
    - SECITEM_CompareItem
    - PORT_ArenaStrdup
    - SEC_CrlIsNewer
    - PORT_SetError
    - SEC_DeletePermCRL
    - SEC_DestroyCrl
    - PK11_ReferenceSlot
    - CERT_CRLCacheRefreshIssuer
    - PK11_PutCrl
    linkageType: ''
    returnType: CERTSignedCrl
    signature: "CERTSignedCrl *\ncrl_storeCRL(PK11SlotInfo* slot, char* url, CERTSignedCrl*
      newCrl,\n             SECItem* derCrl, int type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetInternalKeySlot
      Src: /src/nss/lib/certdb/crl.c:668,1
    - Dst: PK11_ImportCRL
      Src: /src/nss/lib/certdb/crl.c:670,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/certdb/crl.c:672,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - handle
    - url
    - derCrl
    - type
    argTypes:
    - CERTCertDBHandle*
    - char*
    - SECItem*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 664
    functionDepth: 3
    functionLinenumber: 664
    functionLinenumberEnd: 675
    functionName: SEC_NewCrl
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 0
    functionsReached:
    - PK11_ImportCRL
    - PK11_GetInternalKeySlot
    - PK11_FreeSlot
    linkageType: ''
    returnType: CERTSignedCrl
    signature: 'CERTSignedCrl *

      SEC_NewCrl(CERTCertDBHandle* handle, char* url, SECItem* derCrl, int type)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/certdb/crl.c:686,1
    - Dst: CERT_KeyFromDERCrl
      Src: /src/nss/lib/certdb/crl.c:692,1
    - Dst: SEC_FindCrlByName
      Src: /src/nss/lib/certdb/crl.c:698,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certdb/crl.c:701,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - handle
    - derCrl
    - type
    argTypes:
    - CERTCertDBHandle*
    - SECItem*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 677
    functionDepth: 1
    functionLinenumber: 677
    functionLinenumberEnd: 703
    functionName: SEC_FindCrlByDERCert
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 0
    functionsReached:
    - PORT_FreeArena
    - CERT_KeyFromDERCrl
    - PORT_NewArena
    - SEC_FindCrlByName
    linkageType: ''
    returnType: CERTSignedCrl
    signature: 'CERTSignedCrl *

      SEC_FindCrlByDERCert(CERTCertDBHandle* handle, SECItem* derCrl, int type)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_ATOMIC_INCREMENT
      Src: /src/nss/lib/certdb/crl.c:709,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - acrl
    argTypes:
    - CERTSignedCrl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 705
    functionDepth: 1
    functionLinenumber: 705
    functionLinenumberEnd: 713
    functionName: SEC_DupCrl
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 0
    functionsReached:
    - PR_ATOMIC_INCREMENT
    linkageType: ''
    returnType: CERTSignedCrl
    signature: 'CERTSignedCrl *

      SEC_DupCrl(CERTSignedCrl* acrl)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PR_ATOMIC_DECREMENT
      Src: /src/nss/lib/certdb/crl.c:719,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/certdb/crl.c:721,1
    - Dst: GetOpaqueCRLFields
      Src: /src/nss/lib/certdb/crl.c:723,1
    - Dst: GetOpaqueCRLFields
      Src: /src/nss/lib/certdb/crl.c:724,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/certdb/crl.c:725,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certdb/crl.c:728,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - crl
    argTypes:
    - CERTSignedCrl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 715
    functionDepth: 3
    functionLinenumber: 715
    functionLinenumberEnd: 735
    functionName: SEC_DestroyCrl
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 14
    functionsReached:
    - PORT_FreeArena
    - PR_ATOMIC_DECREMENT
    - PK11_FreeSlot
    - SECITEM_FreeItem
    - GetOpaqueCRLFields
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SEC_DestroyCrl(CERTSignedCrl* crl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/certdb/crl.c:746,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/certdb/crl.c:752,1
    - Dst: PK11_LookupCrls
      Src: /src/nss/lib/certdb/crl.c:761,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certdb/crl.c:765,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - handle
    - nodes
    - type
    argTypes:
    - CERTCertDBHandle*
    - CERTCrlHeadNode**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 737
    functionDepth: 2
    functionLinenumber: 737
    functionLinenumberEnd: 771
    functionName: SEC_LookupCrls
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 1
    functionsReached:
    - PK11_LookupCrls
    - PORT_ArenaAlloc
    - PORT_FreeArena
    - PORT_NewArena
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SEC_LookupCrls(CERTCertDBHandle* handle, CERTCrlHeadNode**
      nodes, int type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:859,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/certdb/crl.c:867,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - pool
    - size
    argTypes:
    - void*
    - PRSize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 855
    functionDepth: 0
    functionLinenumber: 855
    functionLinenumberEnd: 872
    functionName: PR_CALLBACK::PreAllocTable
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_ArenaAlloc
    linkageType: ''
    returnType: void
    signature: 'void * PR_CALLBACK

      PreAllocTable(void* pool, PRSize size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - pool
    - item
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 876
    functionDepth: 0
    functionLinenumber: 876
    functionLinenumberEnd: 879
    functionName: PR_CALLBACK::PreFreeTable
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void PR_CALLBACK

      PreFreeTable(void* pool, void* item)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_CALLBACK::PreAllocTable
      Src: /src/nss/lib/certdb/crl.c:885,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pool
    - key
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 882
    functionDepth: 1
    functionLinenumber: 882
    functionLinenumberEnd: 886
    functionName: PR_CALLBACK::PreAllocEntry
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 0
    functionsReached:
    - PR_CALLBACK::PreAllocTable
    linkageType: ''
    returnType: PLHashEntry
    signature: 'PLHashEntry * PR_CALLBACK

      PreAllocEntry(void* pool, const void* key)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - pool
    - he
    - flag
    argTypes:
    - void*
    - PLHashEntry*
    - PRUintn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 890
    functionDepth: 0
    functionLinenumber: 890
    functionLinenumberEnd: 893
    functionName: PR_CALLBACK::PreFreeEntry
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void PR_CALLBACK

      PreFreeEntry(void* pool, PLHashEntry* he, PRUintn flag)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certdb/crl.c:907,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - allocator
    argTypes:
    - PreAllocator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 900
    functionDepth: 0
    functionLinenumber: 900
    functionLinenumberEnd: 909
    functionName: PreAllocator_Destroy
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 0
    functionsReached:
    - PORT_FreeArena
    linkageType: ''
    returnType: void
    signature: void PreAllocator_Destroy(PreAllocator* allocator)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/certdb/crl.c:917,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/certdb/crl.c:921,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certdb/crl.c:923,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/certdb/crl.c:930,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certdb/crl.c:932,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - size
    argTypes:
    - PRSize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 912
    functionDepth: 0
    functionLinenumber: 912
    functionLinenumberEnd: 937
    functionName: PreAllocator_Create
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 0
    functionsReached:
    - PORT_FreeArena
    - PORT_ArenaAlloc
    - PORT_NewArena
    - PORT_ArenaZAlloc
    linkageType: ''
    returnType: PreAllocator
    signature: 'PreAllocator *

      PreAllocator_Create(PRSize size)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:964,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:965,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:966,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:967,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:971,1
    - Dst: NSSRWLock_New
      Src: /src/nss/lib/certdb/crl.c:975,1
    - Dst: PR_NewLock
      Src: /src/nss/lib/certdb/crl.c:977,1
    - Dst: PR_NewLock
      Src: /src/nss/lib/certdb/crl.c:979,1
    - Dst: PL_NewHashTable
      Src: /src/nss/lib/certdb/crl.c:980,1
    - Dst: PL_NewHashTable
      Src: /src/nss/lib/certdb/crl.c:982,1
    - Dst: NSSRWLock_Destroy
      Src: /src/nss/lib/certdb/crl.c:988,1
    - Dst: PR_DestroyLock
      Src: /src/nss/lib/certdb/crl.c:990,1
    - Dst: PR_DestroyLock
      Src: /src/nss/lib/certdb/crl.c:995,1
    - Dst: PL_HashTableDestroy
      Src: /src/nss/lib/certdb/crl.c:999,1
    - Dst: PL_HashTableDestroy
      Src: /src/nss/lib/certdb/crl.c:1003,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:1012,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:1013,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 960
    functionDepth: 1
    functionLinenumber: 960
    functionLinenumberEnd: 1022
    functionName: InitCRLCache
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - NSSRWLock_New
    - PL_HashTableDestroy
    - PORT_SetError
    - NSSRWLock_Destroy
    - PR_NewLock
    - PR_DestroyLock
    - PL_NewHashTable
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus InitCRLCache(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:1029,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:1031,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:1032,1
    - Dst: NSSRWLock_Destroy
      Src: /src/nss/lib/certdb/crl.c:1037,1
    - Dst: PR_DestroyLock
      Src: /src/nss/lib/certdb/crl.c:1039,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:1042,1
    - Dst: CachedCrl_Destroy
      Src: /src/nss/lib/certdb/crl.c:1048,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certdb/crl.c:1054,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/certdb/crl.c:1058,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/certdb/crl.c:1062,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/certdb/crl.c:1066,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certdb/crl.c:1068,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 1
    argNames:
    - cache
    argTypes:
    - CRLDPCache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1070
      start: 1025
    functionDepth: 1
    functionLinenumber: 1025
    functionLinenumberEnd: 1070
    functionName: DPCache_Destroy
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_Free
    - PORT_SetError
    - NSSRWLock_Destroy
    - CachedCrl_Destroy
    - PR_DestroyLock
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus DPCache_Destroy(CRLDPCache* cache)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:1076,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:1078,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:1079,1
    - Dst: NSSRWLock_Destroy
      Src: /src/nss/lib/certdb/crl.c:1084,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:1086,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:1087,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/certdb/crl.c:1091,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/certdb/crl.c:1096,1
    - Dst: DPCache_Destroy
      Src: /src/nss/lib/certdb/crl.c:1098,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:1099,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certdb/crl.c:1102,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 1
    argNames:
    - cache
    argTypes:
    - CRLIssuerCache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1073
    functionDepth: 2
    functionLinenumber: 1073
    functionLinenumberEnd: 1104
    functionName: IssuerCache_Destroy
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_Free
    - DPCache_Destroy
    - PORT_SetError
    - NSSRWLock_Destroy
    - CERT_DestroyCertificate
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus IssuerCache_Destroy(CRLIssuerCache* cache)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:1112,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:1113,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/certdb/crl.c:1117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - returned
    argTypes:
    - NamedCRLCacheEntry**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1123
      start: 1107
    functionDepth: 0
    functionLinenumber: 1107
    functionLinenumberEnd: 1123
    functionName: NamedCRLCacheEntry_Create
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_ZAlloc
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NamedCRLCacheEntry_Create(NamedCRLCacheEntry** returned)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:1130,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:1131,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/certdb/crl.c:1136,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/certdb/crl.c:1139,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certdb/crl.c:1141,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - entry
    argTypes:
    - NamedCRLCacheEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1143
      start: 1126
    functionDepth: 0
    functionLinenumber: 1126
    functionLinenumberEnd: 1143
    functionName: NamedCRLCacheEntry_Destroy
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_Free
    - PORT_SetError
    - SECITEM_ZfreeItem
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NamedCRLCacheEntry_Destroy(NamedCRLCacheEntry* entry)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:1152,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:1157,1
    - Dst: IssuerCache_Destroy
      Src: /src/nss/lib/certdb/crl.c:1159,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:1160,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - he
    - i
    - arg
    argTypes:
    - PLHashEntry*
    - PRIntn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1168
      start: 1146
    functionDepth: 3
    functionLinenumber: 1146
    functionLinenumberEnd: 1168
    functionName: PR_CALLBACK::FreeIssuer
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - IssuerCache_Destroy
    linkageType: ''
    returnType: PRIntn
    signature: 'PRIntn PR_CALLBACK

      FreeIssuer(PLHashEntry* he, PRIntn i, void* arg)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:1177,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:1182,1
    - Dst: NamedCRLCacheEntry_Destroy
      Src: /src/nss/lib/certdb/crl.c:1184,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:1185,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - he
    - i
    - arg
    argTypes:
    - PLHashEntry*
    - PRIntn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1193
      start: 1171
    functionDepth: 1
    functionLinenumber: 1171
    functionLinenumberEnd: 1193
    functionName: PR_CALLBACK::FreeNamedEntries
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - NamedCRLCacheEntry_Destroy
    linkageType: ''
    returnType: PRIntn
    signature: 'PRIntn PR_CALLBACK

      FreeNamedEntries(PLHashEntry* he, PRIntn i, void* arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:1213,1
    - Dst: PL_HashTableEnumerateEntries
      Src: /src/nss/lib/certdb/crl.c:1218,1
    - Dst: PL_HashTableDestroy
      Src: /src/nss/lib/certdb/crl.c:1220,1
    - Dst: NSSRWLock_Destroy
      Src: /src/nss/lib/certdb/crl.c:1224,1
    - Dst: PR_DestroyLock
      Src: /src/nss/lib/certdb/crl.c:1226,1
    - Dst: PL_HashTableEnumerateEntries
      Src: /src/nss/lib/certdb/crl.c:1233,1
    - Dst: PL_HashTableDestroy
      Src: /src/nss/lib/certdb/crl.c:1235,1
    - Dst: PR_DestroyLock
      Src: /src/nss/lib/certdb/crl.c:1238,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1243
      start: 1200
    functionDepth: 1
    functionLinenumber: 1200
    functionLinenumberEnd: 1243
    functionName: ShutdownCRLCache
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 0
    functionsReached:
    - PL_HashTableDestroy
    - PL_HashTableEnumerateEntries
    - PORT_SetError
    - NSSRWLock_Destroy
    - PR_DestroyLock
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ShutdownCRLCache(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:1252,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:1253,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:1254,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:1256,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:1267,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:1272,1
    - Dst: CachedCrl_Compare
      Src: /src/nss/lib/certdb/crl.c:1275,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:1277,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:1278,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:1283,1
    - Dst: DPCache_RemoveCRL
      Src: /src/nss/lib/certdb/crl.c:1289,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:1290,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:1291,1
    - Dst: PORT_Realloc
      Src: /src/nss/lib/certdb/crl.c:1297,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 46
    argCount: 3
    argNames:
    - cache
    - newcrl
    - added
    argTypes:
    - CRLDPCache*
    - CachedCrl*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1306
      start: 1247
    functionDepth: 1
    functionLinenumber: 1247
    functionLinenumberEnd: 1306
    functionName: DPCache_AddCRL
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 0
    functionsReached:
    - DPCache_RemoveCRL
    - PORT_Assert
    - CachedCrl_Compare
    - PORT_SetError
    - PORT_Realloc
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus DPCache_AddCRL(CRLDPCache* cache, CachedCrl* newcrl, PRBool*
      added)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:1313,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:1315,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:1319,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:1321,1
    - Dst: CachedCrl_Destroy
      Src: /src/nss/lib/certdb/crl.c:1330,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:1331,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:1332,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - cache
    - offset
    argTypes:
    - CRLDPCache*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1336
      start: 1309
    functionDepth: 1
    functionLinenumber: 1309
    functionLinenumberEnd: 1336
    functionName: DPCache_RemoveCRL
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - CachedCrl_Destroy
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus DPCache_RemoveCRL(CRLDPCache* cache, PRUint32 offset)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:1359,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:1364,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:1369,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:1379,1
    - Dst: PK11Slot_GetNSSToken
      Src: /src/nss/lib/certdb/crl.c:1383,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:1384,1
    - Dst: NSSArena_Create
      Src: /src/nss/lib/certdb/crl.c:1391,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:1392,1
    - Dst: nssToken_Destroy
      Src: /src/nss/lib/certdb/crl.c:1394,1
    - Dst: nssCryptokiCRL_GetAttributes
      Src: /src/nss/lib/certdb/crl.c:1399,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/certdb/crl.c:1406,1
    - Dst: NSSArena_Destroy
      Src: /src/nss/lib/certdb/crl.c:1415,1
    - Dst: nssToken_Destroy
      Src: /src/nss/lib/certdb/crl.c:1416,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 49
    argCount: 1
    argNames:
    - crl
    argTypes:
    - CERTSignedCrl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1418
      start: 1346
    functionDepth: 10
    functionLinenumber: 1346
    functionLinenumberEnd: 1418
    functionName: TokenCRLStillExists
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SECITEM_CompareItem
    - nssToken_Destroy
    - nssCryptokiCRL_GetAttributes
    - PK11Slot_GetNSSToken
    - NSSArena_Create
    - NSSArena_Destroy
    linkageType: ''
    returnType: PRBool
    signature: PRBool TokenCRLStillExists(CERTSignedCrl* crl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CERT_VerifySignedData
      Src: /src/nss/lib/certdb/crl.c:1425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - crlobject
    - issuer
    - vfdate
    - wincx
    argTypes:
    - CERTSignedCrl*
    - CERTCertificate*
    - PRTime
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1427
      start: 1421
    functionDepth: 9
    functionLinenumber: 1421
    functionLinenumberEnd: 1427
    functionName: CERT_VerifyCRL
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 0
    functionsReached:
    - CERT_VerifySignedData
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_VerifyCRL(CERTSignedCrl* crlobject, CERTCertificate*
      issuer, PRTime vfdate,\n               void* wincx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:1447,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:1448,1
    - Dst: GetOpaqueCRLFields
      Src: /src/nss/lib/certdb/crl.c:1451,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:1454,1
    - Dst: CERT_NewTempCertificate
      Src: /src/nss/lib/certdb/crl.c:1459,1
    - Dst: CERT_VerifyCRL
      Src: /src/nss/lib/certdb/crl.c:1464,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/certdb/crl.c:1465,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:1478,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 4
    argNames:
    - cache
    - crlobject
    - vfdate
    - wincx
    argTypes:
    - CRLDPCache*
    - CachedCrl*
    - PRTime
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1487
      start: 1430
    functionDepth: 10
    functionLinenumber: 1430
    functionLinenumberEnd: 1487
    functionName: CachedCrl_Verify
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - CERT_VerifyCRL
    - PORT_SetError
    - CERT_DestroyCertificate
    - CERT_NewTempCertificate
    - GetOpaqueCRLFields
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CachedCrl_Verify(CRLDPCache* cache, CachedCrl* crlobject,
      PRTime vfdate,\n                 void* wincx)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:1496,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:1497,1
    - Dst: memset
      Src: /src/nss/lib/certdb/crl.c:1501,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/certdb/crl.c:1502,1
    - Dst: pk11_RetrieveCrls
      Src: /src/nss/lib/certdb/crl.c:1503,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:1524,1
    - Dst: CachedCrl_Create
      Src: /src/nss/lib/certdb/crl.c:1527,1
    - Dst: DPCache_AddCRL
      Src: /src/nss/lib/certdb/crl.c:1530,1
    - Dst: CachedCrl_Destroy
      Src: /src/nss/lib/certdb/crl.c:1532,1
    - Dst: CachedCrl_Verify
      Src: /src/nss/lib/certdb/crl.c:1535,1
    - Dst: SEC_DestroyCrl
      Src: /src/nss/lib/certdb/crl.c:1554,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certdb/crl.c:1559,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 3
    argNames:
    - cache
    - vfdate
    - wincx
    argTypes:
    - CRLDPCache*
    - PRTime
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1563
      start: 1490
    functionDepth: 11
    functionLinenumber: 1490
    functionLinenumberEnd: 1563
    functionName: DPCache_FetchFromTokens
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - DPCache_AddCRL
    - PORT_NewArena
    - CachedCrl_Create
    - CachedCrl_Verify
    - PORT_FreeArena
    - memset
    - PORT_SetError
    - SEC_DestroyCrl
    - CachedCrl_Destroy
    - pk11_RetrieveCrls
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus DPCache_FetchFromTokens(CRLDPCache* cache, PRTime vfdate,
      void* wincx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:1570,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:1571,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:1572,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:1573,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:1575,1
    - Dst: PL_HashTableLookup
      Src: /src/nss/lib/certdb/crl.c:1578,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - crl
    - sn
    - returned
    argTypes:
    - CachedCrl*
    - SECItem*
    - CERTCrlEntry**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1585
      start: 1565
    functionDepth: 1
    functionLinenumber: 1565
    functionLinenumberEnd: 1585
    functionName: CachedCrl_GetEntry
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PL_HashTableLookup
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CachedCrl_GetEntry(CachedCrl* crl, const SECItem* sn, CERTCrlEntry**
      returned)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:1593,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:1600,1
    - Dst: CachedCrl_GetEntry
      Src: /src/nss/lib/certdb/crl.c:1608,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - cache
    - sn
    - returned
    argTypes:
    - CRLDPCache*
    - SECItem*
    - CERTCrlEntry**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1618
      start: 1588
    functionDepth: 2
    functionLinenumber: 1588
    functionLinenumberEnd: 1618
    functionName: DPCache_Lookup
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - CachedCrl_GetEntry
    linkageType: ''
    returnType: dpcacheStatus
    signature: dpcacheStatus DPCache_Lookup(CRLDPCache* cache, const SECItem* sn,
      CERTCrlEntry** returned)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1629
      start: 1622
    functionDepth: 0
    functionLinenumber: 1622
    functionLinenumberEnd: 1629
    functionName: DPCache_LockWrite
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DPCache_LockWrite()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1637
      start: 1630
    functionDepth: 0
    functionLinenumber: 1630
    functionLinenumberEnd: 1637
    functionName: DPCache_UnlockWrite
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DPCache_UnlockWrite()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1646
      start: 1643
    functionDepth: 0
    functionLinenumber: 1643
    functionLinenumberEnd: 1646
    functionName: DPCache_LockWrite
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DPCache_LockWrite()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1650
      start: 1647
    functionDepth: 0
    functionLinenumber: 1647
    functionLinenumberEnd: 1650
    functionName: DPCache_UnlockWrite
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DPCache_UnlockWrite()
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:1674,1
    - Dst: PR_Now
      Src: /src/nss/lib/certdb/crl.c:1692,1
    - Dst: DPCache_HasTokenCRLs
      Src: /src/nss/lib/certdb/crl.c:1693,1
    - Dst: DPCache_LockWrite
      Src: /src/nss/lib/certdb/crl.c:1710,1
    - Dst: DPCache_FetchFromTokens
      Src: /src/nss/lib/certdb/crl.c:1714,1
    - Dst: PR_Now
      Src: /src/nss/lib/certdb/crl.c:1719,1
    - Dst: DPCache_UnlockWrite
      Src: /src/nss/lib/certdb/crl.c:1721,1
    - Dst: PR_Now
      Src: /src/nss/lib/certdb/crl.c:1729,1
    - Dst: TokenCRLStillExists
      Src: /src/nss/lib/certdb/crl.c:1743,1
    - Dst: DPCache_LockWrite
      Src: /src/nss/lib/certdb/crl.c:1747,1
    - Dst: DPCache_RemoveCRL
      Src: /src/nss/lib/certdb/crl.c:1754,1
    - Dst: PR_Now
      Src: /src/nss/lib/certdb/crl.c:1762,1
    - Dst: DPCache_UnlockWrite
      Src: /src/nss/lib/certdb/crl.c:1763,1
    - Dst: CERT_CheckCertUsage
      Src: /src/nss/lib/certdb/crl.c:1770,1
    - Dst: DPCache_LockWrite
      Src: /src/nss/lib/certdb/crl.c:1772,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/certdb/crl.c:1776,1
    - Dst: DPCache_UnlockWrite
      Src: /src/nss/lib/certdb/crl.c:1778,1
    - Dst: DPCache_LockWrite
      Src: /src/nss/lib/certdb/crl.c:1797,1
    - Dst: CachedCrl_Verify
      Src: /src/nss/lib/certdb/crl.c:1807,1
    - Dst: DPCache_UnlockWrite
      Src: /src/nss/lib/certdb/crl.c:1814,1
    - Dst: DPCache_LockWrite
      Src: /src/nss/lib/certdb/crl.c:1824,1
    - Dst: DPCache_SelectCRL
      Src: /src/nss/lib/certdb/crl.c:1827,1
    - Dst: DPCache_UnlockWrite
      Src: /src/nss/lib/certdb/crl.c:1831,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 91
    argCount: 5
    argNames:
    - cache
    - issuer
    - readlocked
    - vfdate
    - wincx
    argTypes:
    - CRLDPCache*
    - CERTCertificate*
    - PRBool
    - PRTime
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1834
      start: 1656
    functionDepth: 12
    functionLinenumber: 1656
    functionLinenumberEnd: 1834
    functionName: DPCache_GetUpToDate
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 0
    functionsReached:
    - DPCache_RemoveCRL
    - TokenCRLStillExists
    - SECITEM_DupItem
    - DPCache_UnlockWrite
    - CERT_CheckCertUsage
    - CachedCrl_Verify
    - PR_Now
    - DPCache_SelectCRL
    - PORT_SetError
    - DPCache_HasTokenCRLs
    - DPCache_LockWrite
    - DPCache_FetchFromTokens
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus DPCache_GetUpToDate(CRLDPCache* cache, CERTCertificate*
      issuer,\n                    PRBool readlocked, PRTime vfdate, void* wincx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:1848,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:1849,1
    - Dst: DER_DecodeTimeChoice
      Src: /src/nss/lib/certdb/crl.c:1854,1
    - Dst: DER_DecodeTimeChoice
      Src: /src/nss/lib/certdb/crl.c:1857,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:1869,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - arg1
    - arg2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1871
      start: 1837
    functionDepth: 0
    functionLinenumber: 1837
    functionLinenumberEnd: 1871
    functionName: SortCRLsByThisUpdate
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - DER_DecodeTimeChoice
    - PORT_SetError
    linkageType: ''
    returnType: int
    signature: int SortCRLsByThisUpdate(const void* arg1, const void* arg2)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:1889,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:1890,1
    - Dst: SortCRLsByThisUpdate
      Src: /src/nss/lib/certdb/crl.c:1895,1
    - Dst: GetOpaqueCRLFields
      Src: /src/nss/lib/certdb/crl.c:1903,1
    - Dst: GetOpaqueCRLFields
      Src: /src/nss/lib/certdb/crl.c:1904,1
    - Dst: SortCRLsByThisUpdate
      Src: /src/nss/lib/certdb/crl.c:1908,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:1919,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 2
    argNames:
    - arg1
    - arg2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1921
      start: 1880
    functionDepth: 1
    functionLinenumber: 1880
    functionLinenumberEnd: 1921
    functionName: SortImperfectCRLs
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - SortCRLsByThisUpdate
    - GetOpaqueCRLFields
    linkageType: ''
    returnType: int
    signature: int SortImperfectCRLs(const void* arg1, const void* arg2)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:1931,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:1933,1
    - Dst: qsort
      Src: /src/nss/lib/certdb/crl.c:1959,1
    - Dst: qsort
      Src: /src/nss/lib/certdb/crl.c:1965,1
    - Dst: CachedCrl_Populate
      Src: /src/nss/lib/certdb/crl.c:1971,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 1
    argNames:
    - cache
    argTypes:
    - CRLDPCache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1979
      start: 1924
    functionDepth: 1
    functionLinenumber: 1924
    functionLinenumberEnd: 1979
    functionName: DPCache_SelectCRL
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 1
    functionsReached:
    - CachedCrl_Populate
    - PORT_Assert
    - PORT_SetError
    - qsort
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus DPCache_SelectCRL(CRLDPCache* cache)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:1987,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:1990,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:1991,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/certdb/crl.c:1995,1
    - Dst: NSSRWLock_New
      Src: /src/nss/lib/certdb/crl.c:2000,1
    - Dst: PR_NewLock
      Src: /src/nss/lib/certdb/crl.c:2002,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certdb/crl.c:2005,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/certdb/crl.c:2010,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/certdb/crl.c:2012,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/certdb/crl.c:2013,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 4
    argNames:
    - returned
    - issuer
    - subject
    - dp
    argTypes:
    - CRLDPCache**
    - CERTCertificate*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2018
      start: 1982
    functionDepth: 0
    functionLinenumber: 1982
    functionLinenumberEnd: 2018
    functionName: DPCache_Create
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SECITEM_DupItem
    - NSSRWLock_New
    - PORT_Free
    - PORT_ZAlloc
    - PORT_SetError
    - PR_NewLock
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus DPCache_Create(CRLDPCache** returned, CERTCertificate* issuer,\n
      \              const SECItem* subject, SECItem* dp)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:2027,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:2028,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:2031,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:2032,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/certdb/crl.c:2036,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/certdb/crl.c:2040,1
    - Dst: NSSRWLock_New
      Src: /src/nss/lib/certdb/crl.c:2042,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/certdb/crl.c:2047,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:2054,1
    - Dst: IssuerCache_Destroy
      Src: /src/nss/lib/certdb/crl.c:2054,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 4
    argNames:
    - returned
    - issuer
    - subject
    - dp
    argTypes:
    - CRLIssuerCache**
    - CERTCertificate*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2059
      start: 2021
    functionDepth: 3
    functionLinenumber: 2021
    functionLinenumberEnd: 2059
    functionName: IssuerCache_Create
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SECITEM_DupItem
    - NSSRWLock_New
    - IssuerCache_Destroy
    - PORT_ZAlloc
    - PORT_SetError
    - CERT_DupCertificate
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus IssuerCache_Create(CRLIssuerCache** returned, CERTCertificate*
      issuer,\n                   const SECItem* subject, const SECItem* dp)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:2069,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:2070,1
    - Dst: DPCache_Create
      Src: /src/nss/lib/certdb/crl.c:2075,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:2082,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 5
    argNames:
    - cache
    - issuer
    - subject
    - dp
    - newdpc
    argTypes:
    - CRLIssuerCache*
    - CERTCertificate*
    - SECItem*
    - SECItem*
    - CRLDPCache**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2087
      start: 2062
    functionDepth: 1
    functionLinenumber: 2062
    functionLinenumberEnd: 2087
    functionName: IssuerCache_AddDP
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - DPCache_Create
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus IssuerCache_AddDP(CRLIssuerCache* cache, CERTCertificate*
      issuer,\n                  const SECItem* subject, const SECItem* dp,\n                  CRLDPCache**
      newdpc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:2093,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:2094,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:2096,1
    - Dst: PL_HashTableAdd
      Src: /src/nss/lib/certdb/crl.c:2099,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - issuer
    argTypes:
    - CRLIssuerCache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2104
      start: 2090
    functionDepth: 1
    functionLinenumber: 2090
    functionLinenumberEnd: 2104
    functionName: CRLCache_AddIssuer
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 0
    functionsReached:
    - PL_HashTableAdd
    - PORT_Assert
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CRLCache_AddIssuer(CRLIssuerCache* issuer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:2113,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:2114,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:2115,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:2116,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:2118,1
    - Dst: PL_HashTableLookup
      Src: /src/nss/lib/certdb/crl.c:2123,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - cache
    - subject
    - returned
    argTypes:
    - CRLCache*
    - SECItem*
    - CRLIssuerCache**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2128
      start: 2107
    functionDepth: 1
    functionLinenumber: 2107
    functionLinenumberEnd: 2128
    functionName: CRLCache_GetIssuerCache
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PL_HashTableLookup
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CRLCache_GetIssuerCache(CRLCache* cache, const SECItem*
      subject,\n                        CRLIssuerCache** returned)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:2136,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:2138,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:2144,1
    - Dst: SEC_DupCrl
      Src: /src/nss/lib/certdb/crl.c:2150,1
    - Dst: GetOpaqueCRLFields
      Src: /src/nss/lib/certdb/crl.c:2156,1
    - Dst: CERT_CompleteCRLDecodeEntries
      Src: /src/nss/lib/certdb/crl.c:2159,1
    - Dst: SEC_DupCrl
      Src: /src/nss/lib/certdb/crl.c:2162,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:2166,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - cache
    - entries
    argTypes:
    - CRLDPCache*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2168
      start: 2131
    functionDepth: 4
    functionLinenumber: 2131
    functionLinenumberEnd: 2168
    functionName: GetBestCRL
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - CERT_CompleteCRLDecodeEntries
    - PORT_SetError
    - SEC_DupCrl
    - GetOpaqueCRLFields
    linkageType: ''
    returnType: CERTSignedCrl
    signature: 'CERTSignedCrl *

      GetBestCRL(CRLDPCache* cache, PRBool entries)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:2175,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:2179,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:2181,1
    - Dst: NSSRWLock_LockRead
      Src: /src/nss/lib/certdb/crl.c:2185,1
    - Dst: NSSRWLock_UnlockRead
      Src: /src/nss/lib/certdb/crl.c:2189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - cache
    - dp
    argTypes:
    - CRLIssuerCache*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2192
      start: 2171
    functionDepth: 0
    functionLinenumber: 2171
    functionLinenumberEnd: 2192
    functionName: IssuerCache_GetDPCache
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 0
    functionsReached:
    - NSSRWLock_LockRead
    - PORT_Assert
    - PORT_SetError
    - NSSRWLock_UnlockRead
    linkageType: ''
    returnType: CRLDPCache
    signature: 'CRLDPCache *

      IssuerCache_GetDPCache(CRLIssuerCache* cache, const SECItem* dp)'
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:2207,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:2210,1
    - Dst: NSSRWLock_LockRead
      Src: /src/nss/lib/certdb/crl.c:2214,1
    - Dst: PR_Lock
      Src: /src/nss/lib/certdb/crl.c:2216,1
    - Dst: CRLCache_GetIssuerCache
      Src: /src/nss/lib/certdb/crl.c:2218,1
    - Dst: NSSRWLock_UnlockRead
      Src: /src/nss/lib/certdb/crl.c:2221,1
    - Dst: PR_Unlock
      Src: /src/nss/lib/certdb/crl.c:2223,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:2225,1
    - Dst: IssuerCache_Create
      Src: /src/nss/lib/certdb/crl.c:2233,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:2235,1
    - Dst: IssuerCache_AddDP
      Src: /src/nss/lib/certdb/crl.c:2242,1
    - Dst: NSSRWLock_LockWrite
      Src: /src/nss/lib/certdb/crl.c:2250,1
    - Dst: PR_Lock
      Src: /src/nss/lib/certdb/crl.c:2252,1
    - Dst: NSSRWLock_UnlockRead
      Src: /src/nss/lib/certdb/crl.c:2261,1
    - Dst: NSSRWLock_LockWrite
      Src: /src/nss/lib/certdb/crl.c:2264,1
    - Dst: CRLCache_GetIssuerCache
      Src: /src/nss/lib/certdb/crl.c:2266,1
    - Dst: CRLCache_AddIssuer
      Src: /src/nss/lib/certdb/crl.c:2269,1
    - Dst: IssuerCache_Destroy
      Src: /src/nss/lib/certdb/crl.c:2277,1
    - Dst: IssuerCache_GetDPCache
      Src: /src/nss/lib/certdb/crl.c:2279,1
    - Dst: NSSRWLock_UnlockWrite
      Src: /src/nss/lib/certdb/crl.c:2288,1
    - Dst: NSSRWLock_UnlockRead
      Src: /src/nss/lib/certdb/crl.c:2291,1
    - Dst: PR_Unlock
      Src: /src/nss/lib/certdb/crl.c:2294,1
    - Dst: NSSRWLock_UnlockWrite
      Src: /src/nss/lib/certdb/crl.c:2301,1
    - Dst: PR_Unlock
      Src: /src/nss/lib/certdb/crl.c:2303,1
    - Dst: IssuerCache_Destroy
      Src: /src/nss/lib/certdb/crl.c:2306,1
    - Dst: NSSRWLock_UnlockRead
      Src: /src/nss/lib/certdb/crl.c:2315,1
    - Dst: PR_Unlock
      Src: /src/nss/lib/certdb/crl.c:2317,1
    - Dst: IssuerCache_GetDPCache
      Src: /src/nss/lib/certdb/crl.c:2319,1
    - Dst: NSSRWLock_LockRead
      Src: /src/nss/lib/certdb/crl.c:2325,1
    - Dst: PR_Lock
      Src: /src/nss/lib/certdb/crl.c:2327,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:2333,1
    - Dst: DPCache_GetUpToDate
      Src: /src/nss/lib/certdb/crl.c:2336,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 81
    argCount: 7
    argNames:
    - issuer
    - subject
    - dp
    - t
    - wincx
    - dpcache
    - writeLocked
    argTypes:
    - CERTCertificate*
    - SECItem*
    - SECItem*
    - PRTime
    - void*
    - CRLDPCache**
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2343
      start: 2197
    functionDepth: 13
    functionLinenumber: 2197
    functionLinenumberEnd: 2343
    functionName: AcquireDPCache
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - IssuerCache_Create
    - DPCache_GetUpToDate
    - IssuerCache_Destroy
    - IssuerCache_GetDPCache
    - NSSRWLock_UnlockWrite
    - NSSRWLock_UnlockRead
    - IssuerCache_AddDP
    - PORT_SetError
    - PR_Lock
    - NSSRWLock_LockWrite
    - PR_Unlock
    - NSSRWLock_LockRead
    - CRLCache_GetIssuerCache
    - CRLCache_AddIssuer
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus AcquireDPCache(CERTCertificate* issuer, const SECItem* subject,\n
      \              const SECItem* dp, PRTime t, void* wincx, CRLDPCache** dpcache,\n
      \              PRBool* writeLocked)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:2350,1
    - Dst: NSSRWLock_UnlockWrite
      Src: /src/nss/lib/certdb/crl.c:2355,1
    - Dst: NSSRWLock_UnlockRead
      Src: /src/nss/lib/certdb/crl.c:2357,1
    - Dst: PR_Unlock
      Src: /src/nss/lib/certdb/crl.c:2360,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - dpcache
    - writeLocked
    argTypes:
    - CRLDPCache*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2362
      start: 2346
    functionDepth: 0
    functionLinenumber: 2346
    functionLinenumberEnd: 2362
    functionName: ReleaseDPCache
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 0
    functionsReached:
    - PR_Unlock
    - PORT_SetError
    - NSSRWLock_UnlockWrite
    - NSSRWLock_UnlockRead
    linkageType: ''
    returnType: void
    signature: void ReleaseDPCache(CRLDPCache* dpcache, PRBool writeLocked)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:2379,1
    - Dst: CERT_CheckCertValidTimes
      Src: /src/nss/lib/certdb/crl.c:2391,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:2395,1
    - Dst: AcquireDPCache
      Src: /src/nss/lib/certdb/crl.c:2399,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:2401,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:2403,1
    - Dst: DPCache_Lookup
      Src: /src/nss/lib/certdb/crl.c:2407,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:2410,1
    - Dst: DER_DecodeTimeChoice
      Src: /src/nss/lib/certdb/crl.c:2415,1
    - Dst: CERT_FindCRLEntryReasonExten
      Src: /src/nss/lib/certdb/crl.c:2435,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:2436,1
    - Dst: ReleaseDPCache
      Src: /src/nss/lib/certdb/crl.c:2460,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 63
    argCount: 7
    argNames:
    - cert
    - issuer
    - dp
    - t
    - wincx
    - revStatus
    - revReason
    argTypes:
    - CERTCertificate*
    - CERTCertificate*
    - SECItem*
    - PRTime
    - void*
    - CERTRevocationStatus*
    - CERTCRLEntryReasonCode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2468
      start: 2364
    functionDepth: 14
    functionLinenumber: 2364
    functionLinenumberEnd: 2468
    functionName: cert_CheckCertRevocationStatus
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - AcquireDPCache
    - DER_DecodeTimeChoice
    - CERT_FindCRLEntryReasonExten
    - CERT_CheckCertValidTimes
    - PORT_SetError
    - ReleaseDPCache
    - DPCache_Lookup
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus cert_CheckCertRevocationStatus(CERTCertificate* cert, CERTCertificate*
      issuer,\n                               const SECItem* dp, PRTime t, void* wincx,\n
      \                              CERTRevocationStatus* revStatus,\n                               CERTCRLEntryReasonCode*
      revReason)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cert_CheckCertRevocationStatus
      Src: /src/nss/lib/certdb/crl.c:2475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - cert
    - issuer
    - dp
    - t
    - wincx
    argTypes:
    - CERTCertificate*
    - CERTCertificate*
    - SECItem*
    - PRTime
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2477
      start: 2471
    functionDepth: 15
    functionLinenumber: 2471
    functionLinenumberEnd: 2477
    functionName: CERT_CheckCRL
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 1
    functionsReached:
    - cert_CheckCertRevocationStatus
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_CheckCRL(CERTCertificate* cert, CERTCertificate* issuer,
      const SECItem* dp,\n              PRTime t, void* wincx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:2489,1
    - Dst: AcquireDPCache
      Src: /src/nss/lib/certdb/crl.c:2493,1
    - Dst: GetBestCRL
      Src: /src/nss/lib/certdb/crl.c:2495,1
    - Dst: ReleaseDPCache
      Src: /src/nss/lib/certdb/crl.c:2497,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - handle
    - crlKey
    - type
    argTypes:
    - CERTCertDBHandle*
    - SECItem*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2500
      start: 2480
    functionDepth: 14
    functionLinenumber: 2480
    functionLinenumberEnd: 2500
    functionName: SEC_FindCrlByName
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 3
    functionsReached:
    - PORT_SetError
    - ReleaseDPCache
    - AcquireDPCache
    - GetBestCRL
    linkageType: ''
    returnType: CERTSignedCrl
    signature: 'CERTSignedCrl *

      SEC_FindCrlByName(CERTCertDBHandle* handle, SECItem* crlKey, int type)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AcquireDPCache
      Src: /src/nss/lib/certdb/crl.c:2516,1
    - Dst: DPCache_LockWrite
      Src: /src/nss/lib/certdb/crl.c:2522,1
    - Dst: DPCache_UnlockWrite
      Src: /src/nss/lib/certdb/crl.c:2524,1
    - Dst: ReleaseDPCache
      Src: /src/nss/lib/certdb/crl.c:2525,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - dbhandle
    - crlKey
    argTypes:
    - CERTCertDBHandle*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2527
      start: 2504
    functionDepth: 14
    functionLinenumber: 2504
    functionLinenumberEnd: 2527
    functionName: CERT_CRLCacheRefreshIssuer
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 1
    functionsReached:
    - ReleaseDPCache
    - DPCache_UnlockWrite
    - AcquireDPCache
    - DPCache_LockWrite
    linkageType: ''
    returnType: void
    signature: void CERT_CRLCacheRefreshIssuer(CERTCertDBHandle* dbhandle, SECItem*
      crlKey)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:2543,1
    - Dst: CERT_DecodeDERCrlWithFlags
      Src: /src/nss/lib/certdb/crl.c:2548,1
    - Dst: AcquireDPCache
      Src: /src/nss/lib/certdb/crl.c:2558,1
    - Dst: CachedCrl_Create
      Src: /src/nss/lib/certdb/crl.c:2563,1
    - Dst: DPCache_LockWrite
      Src: /src/nss/lib/certdb/crl.c:2565,1
    - Dst: DPCache_AddCRL
      Src: /src/nss/lib/certdb/crl.c:2566,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/certdb/crl.c:2568,1
    - Dst: CachedCrl_Destroy
      Src: /src/nss/lib/certdb/crl.c:2569,1
    - Dst: DPCache_UnlockWrite
      Src: /src/nss/lib/certdb/crl.c:2572,1
    - Dst: ReleaseDPCache
      Src: /src/nss/lib/certdb/crl.c:2575,1
    - Dst: SEC_DestroyCrl
      Src: /src/nss/lib/certdb/crl.c:2581,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:2585,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 2
    argNames:
    - dbhandle
    - newdercrl
    argTypes:
    - CERTCertDBHandle*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2588
      start: 2530
    functionDepth: 14
    functionLinenumber: 2530
    functionLinenumberEnd: 2588
    functionName: CERT_CacheCRL
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 1
    functionsReached:
    - AcquireDPCache
    - DPCache_AddCRL
    - CERT_DecodeDERCrlWithFlags
    - DPCache_UnlockWrite
    - PORT_GetError
    - PORT_SetError
    - DPCache_LockWrite
    - SEC_DestroyCrl
    - CachedCrl_Destroy
    - ReleaseDPCache
    - CachedCrl_Create
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERT_CacheCRL(CERTCertDBHandle* dbhandle, SECItem* newdercrl)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:2603,1
    - Dst: CERT_DecodeDERCrlWithFlags
      Src: /src/nss/lib/certdb/crl.c:2608,1
    - Dst: AcquireDPCache
      Src: /src/nss/lib/certdb/crl.c:2617,1
    - Dst: CachedCrl_Create
      Src: /src/nss/lib/certdb/crl.c:2624,1
    - Dst: DPCache_LockWrite
      Src: /src/nss/lib/certdb/crl.c:2626,1
    - Dst: CachedCrl_Compare
      Src: /src/nss/lib/certdb/crl.c:2629,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:2632,1
    - Dst: DPCache_RemoveCRL
      Src: /src/nss/lib/certdb/crl.c:2636,1
    - Dst: DPCache_UnlockWrite
      Src: /src/nss/lib/certdb/crl.c:2645,1
    - Dst: CachedCrl_Destroy
      Src: /src/nss/lib/certdb/crl.c:2647,1
    - Dst: ReleaseDPCache
      Src: /src/nss/lib/certdb/crl.c:2652,1
    - Dst: SEC_DestroyCrl
      Src: /src/nss/lib/certdb/crl.c:2654,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:2659,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 44
    argCount: 2
    argNames:
    - dbhandle
    - olddercrl
    argTypes:
    - CERTCertDBHandle*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2662
      start: 2591
    functionDepth: 14
    functionLinenumber: 2591
    functionLinenumberEnd: 2662
    functionName: CERT_UncacheCRL
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 1
    functionsReached:
    - DPCache_RemoveCRL
    - AcquireDPCache
    - CachedCrl_Compare
    - CERT_DecodeDERCrlWithFlags
    - DPCache_UnlockWrite
    - PORT_SetError
    - DPCache_LockWrite
    - SEC_DestroyCrl
    - CachedCrl_Destroy
    - ReleaseDPCache
    - CachedCrl_Create
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERT_UncacheCRL(CERTCertDBHandle* dbhandle, SECItem* olddercrl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:2667,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:2669,1
    - Dst: PR_Lock
      Src: /src/nss/lib/certdb/crl.c:2672,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - returned
    argTypes:
    - NamedCRLCache**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2675
      start: 2664
    functionDepth: 0
    functionLinenumber: 2664
    functionLinenumberEnd: 2675
    functionName: cert_AcquireNamedCRLCache
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 2
    functionsReached:
    - PORT_Assert
    - PR_Lock
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus cert_AcquireNamedCRLCache(NamedCRLCache** returned)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:2685,1
    - Dst: PL_HashTableLookup
      Src: /src/nss/lib/certdb/crl.c:2688,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - ncc
    - canonicalizedName
    - retEntry
    argTypes:
    - NamedCRLCache*
    - SECItem*
    - NamedCRLCacheEntry**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2691
      start: 2680
    functionDepth: 1
    functionLinenumber: 2680
    functionLinenumberEnd: 2691
    functionName: cert_FindCRLByGeneralName
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 2
    functionsReached:
    - PORT_SetError
    - PL_HashTableLookup
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus cert_FindCRLByGeneralName(NamedCRLCache* ncc, const SECItem*
      canonicalizedName,\n                          NamedCRLCacheEntry** retEntry)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:2700,1
    - Dst: PR_Unlock
      Src: /src/nss/lib/certdb/crl.c:2703,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ncc
    argTypes:
    - NamedCRLCache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2705
      start: 2693
    functionDepth: 0
    functionLinenumber: 2693
    functionLinenumberEnd: 2705
    functionName: cert_ReleaseNamedCRLCache
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 2
    functionsReached:
    - PORT_Assert
    - PR_Unlock
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus cert_ReleaseNamedCRLCache(NamedCRLCache* ncc)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: NamedCRLCacheEntry_Create
      Src: /src/nss/lib/certdb/crl.c:2716,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/certdb/crl.c:2718,1
    - Dst: PR_Now
      Src: /src/nss/lib/certdb/crl.c:2723,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/certdb/crl.c:2724,1
    - Dst: NamedCRLCacheEntry_Destroy
      Src: /src/nss/lib/certdb/crl.c:2726,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:2727,1
    - Dst: CERT_CacheCRL
      Src: /src/nss/lib/certdb/crl.c:2731,1
    - Dst: PR_GetError
      Src: /src/nss/lib/certdb/crl.c:2735,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/certdb/crl.c:2751,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 4
    argNames:
    - dbhandle
    - crl
    - canonicalizedName
    - newEntry
    argTypes:
    - CERTCertDBHandle*
    - SECItem*
    - SECItem*
    - NamedCRLCacheEntry**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2755
      start: 2708
    functionDepth: 15
    functionLinenumber: 2708
    functionLinenumberEnd: 2755
    functionName: addCRLToCache
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SECITEM_DupItem
    - NamedCRLCacheEntry_Create
    - PR_Now
    - CERT_CacheCRL
    - NamedCRLCacheEntry_Destroy
    - PR_GetError
    - SECITEM_ZfreeItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus addCRLToCache(CERTCertDBHandle* dbhandle, SECItem* crl,\n
      \             const SECItem* canonicalizedName, NamedCRLCacheEntry** newEntry)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:2768,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:2769,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:2772,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:2773,1
    - Dst: cert_AcquireNamedCRLCache
      Src: /src/nss/lib/certdb/crl.c:2777,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:2778,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/certdb/crl.c:2780,1
    - Dst: cert_FindCRLByGeneralName
      Src: /src/nss/lib/certdb/crl.c:2783,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:2784,1
    - Dst: cert_ReleaseNamedCRLCache
      Src: /src/nss/lib/certdb/crl.c:2786,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/certdb/crl.c:2787,1
    - Dst: addCRLToCache
      Src: /src/nss/lib/certdb/crl.c:2791,1
    - Dst: PL_HashTableAdd
      Src: /src/nss/lib/certdb/crl.c:2794,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:2797,1
    - Dst: NamedCRLCacheEntry_Destroy
      Src: /src/nss/lib/certdb/crl.c:2798,1
    - Dst: CERT_UncacheCRL
      Src: /src/nss/lib/certdb/crl.c:2805,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:2806,1
    - Dst: PL_HashTableRemove
      Src: /src/nss/lib/certdb/crl.c:2808,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:2810,1
    - Dst: PORT_CheckSuccess
      Src: /src/nss/lib/certdb/crl.c:2816,1
    - Dst: NamedCRLCacheEntry_Destroy
      Src: /src/nss/lib/certdb/crl.c:2816,1
    - Dst: PL_HashTableAdd
      Src: /src/nss/lib/certdb/crl.c:2818,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:2821,1
    - Dst: PL_HashTableAdd
      Src: /src/nss/lib/certdb/crl.c:2832,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:2835,1
    - Dst: NamedCRLCacheEntry_Destroy
      Src: /src/nss/lib/certdb/crl.c:2843,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:2844,1
    - Dst: PL_HashTableRemove
      Src: /src/nss/lib/certdb/crl.c:2847,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:2849,1
    - Dst: PORT_CheckSuccess
      Src: /src/nss/lib/certdb/crl.c:2855,1
    - Dst: NamedCRLCacheEntry_Destroy
      Src: /src/nss/lib/certdb/crl.c:2855,1
    - Dst: PL_HashTableAdd
      Src: /src/nss/lib/certdb/crl.c:2857,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:2860,1
    - Dst: PORT_CheckSuccess
      Src: /src/nss/lib/certdb/crl.c:2866,1
    - Dst: cert_ReleaseNamedCRLCache
      Src: /src/nss/lib/certdb/crl.c:2866,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 75
    argCount: 3
    argNames:
    - dbhandle
    - crl
    - canonicalizedName
    argTypes:
    - CERTCertDBHandle*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2869
      start: 2760
    functionDepth: 16
    functionLinenumber: 2760
    functionLinenumberEnd: 2869
    functionName: cert_CacheCRLByGeneralName
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 1
    functionsReached:
    - addCRLToCache
    - PORT_Assert
    - cert_AcquireNamedCRLCache
    - PL_HashTableAdd
    - cert_ReleaseNamedCRLCache
    - PORT_SetError
    - NamedCRLCacheEntry_Destroy
    - CERT_UncacheCRL
    - PL_HashTableRemove
    - cert_FindCRLByGeneralName
    - SECITEM_ZfreeItem
    - PORT_CheckSuccess
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus cert_CacheCRLByGeneralName(CERTCertDBHandle* dbhandle, SECItem*
      crl,\n                           const SECItem* canonicalizedName)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:2876,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/certdb/crl.c:2879,1
    - Dst: SEC_DupCrl
      Src: /src/nss/lib/certdb/crl.c:2883,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - returned
    - crl
    - origin
    argTypes:
    - CachedCrl**
    - CERTSignedCrl*
    - CRLOrigin
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2887
      start: 2871
    functionDepth: 2
    functionLinenumber: 2871
    functionLinenumberEnd: 2887
    functionName: CachedCrl_Create
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 3
    functionsReached:
    - PORT_SetError
    - SEC_DupCrl
    - PORT_ZAlloc
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CachedCrl_Create(CachedCrl** returned, CERTSignedCrl* crl,
      CRLOrigin origin)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:2894,1
    - Dst: PL_HashTableDestroy
      Src: /src/nss/lib/certdb/crl.c:2899,1
    - Dst: PreAllocator_Destroy
      Src: /src/nss/lib/certdb/crl.c:2905,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - crl
    argTypes:
    - CachedCrl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2909
      start: 2890
    functionDepth: 1
    functionLinenumber: 2890
    functionLinenumberEnd: 2909
    functionName: CachedCrl_Depopulate
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PreAllocator_Destroy
    - PL_HashTableDestroy
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CachedCrl_Depopulate(CachedCrl* crl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:2915,1
    - Dst: CachedCrl_Depopulate
      Src: /src/nss/lib/certdb/crl.c:2918,1
    - Dst: SEC_DestroyCrl
      Src: /src/nss/lib/certdb/crl.c:2919,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certdb/crl.c:2920,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - crl
    argTypes:
    - CachedCrl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2922
      start: 2911
    functionDepth: 4
    functionLinenumber: 2911
    functionLinenumberEnd: 2922
    functionName: CachedCrl_Destroy
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 5
    functionsReached:
    - PORT_Free
    - PORT_SetError
    - SEC_DestroyCrl
    - CachedCrl_Depopulate
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CachedCrl_Destroy(CachedCrl* crl)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:2933,1
    - Dst: CERT_CompleteCRLDecodeEntries
      Src: /src/nss/lib/certdb/crl.c:2937,1
    - Dst: PreAllocator_Create
      Src: /src/nss/lib/certdb/crl.c:2955,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:2956,1
    - Dst: PL_NewHashTable
      Src: /src/nss/lib/certdb/crl.c:2962,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:2964,1
    - Dst: PL_HashTableAdd
      Src: /src/nss/lib/certdb/crl.c:2971,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 1
    argNames:
    - crlobject
    argTypes:
    - CachedCrl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2976
      start: 2925
    functionDepth: 4
    functionLinenumber: 2925
    functionLinenumberEnd: 2976
    functionName: CachedCrl_Populate
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - CERT_CompleteCRLDecodeEntries
    - PL_HashTableAdd
    - PORT_SetError
    - PreAllocator_Create
    - PL_NewHashTable
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CachedCrl_Populate(CachedCrl* crlobject)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - cache
    argTypes:
    - CRLDPCache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2991
      start: 2979
    functionDepth: 0
    functionLinenumber: 2979
    functionLinenumberEnd: 2991
    functionName: DPCache_HasTokenCRLs
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool DPCache_HasTokenCRLs(CRLDPCache* cache)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:3001,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:3002,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:3003,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/crl.c:3004,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/crl.c:3006,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/certdb/crl.c:3031,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 4
    argNames:
    - a
    - b
    - isDupe
    - isUpdated
    argTypes:
    - CachedCrl*
    - CachedCrl*
    - PRBool*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3049
      start: 2998
    functionDepth: 0
    functionLinenumber: 2998
    functionLinenumberEnd: 3049
    functionName: CachedCrl_Compare
    functionSourceFile: /src/nss/lib/certdb/crl.c
    functionUses: 2
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - SECITEM_CompareItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CachedCrl_Compare(CachedCrl* a, CachedCrl* b, PRBool* isDupe,
      PRBool* isUpdated)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - trust
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 173
    functionName: SEC_GET_TRUST_FLAGS
    functionSourceFile: /src/nss/lib/certdb/certt.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SEC_GET_TRUST_FLAGS(trust, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 362
    functionName: CERT_LIST_HEAD
    functionSourceFile: /src/nss/lib/certdb/certt.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CERT_LIST_HEAD(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 363
    functionName: CERT_LIST_TAIL
    functionSourceFile: /src/nss/lib/certdb/certt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CERT_LIST_TAIL(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 364
    functionName: CERT_LIST_NEXT
    functionSourceFile: /src/nss/lib/certdb/certt.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CERT_LIST_NEXT(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 365
    functionName: CERT_LIST_END
    functionSourceFile: /src/nss/lib/certdb/certt.h
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CERT_LIST_END(n, l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 366
    functionName: CERT_LIST_EMPTY
    functionSourceFile: /src/nss/lib/certdb/certt.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CERT_LIST_EMPTY(l)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strcasecmp
      Src: /src/nss/lib/certdb/genname.c:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 149
    functionName: CERT_GetGeneralNameTypeFromString
    functionSourceFile: /src/nss/lib/certdb/genname.c
    functionUses: 1
    functionsReached:
    - PORT_Strcasecmp
    linkageType: ''
    returnType: CERTGeneralNameType
    signature: CERTGeneralNameType CERT_GetGeneralNameTypeFromString(const char *string)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/certdb/genname.c:154,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/certdb/genname.c:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - arena
    - type
    argTypes:
    - PLArenaPool*
    - CERTGeneralNameType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 161
    functionName: CERT_NewGeneralName
    functionSourceFile: /src/nss/lib/certdb/genname.c
    functionUses: 1
    functionsReached:
    - PORT_ArenaZNew
    - PORT_ZNew
    linkageType: ''
    returnType: CERTGeneralName
    signature: 'CERTGeneralName *

      CERT_NewGeneralName(PLArenaPool *arena, CERTGeneralNameType type)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/genname.c:174,1
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/certdb/genname.c:177,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/certdb/genname.c:181,1
    - Dst: CERT_CopyName
      Src: /src/nss/lib/certdb/genname.c:184,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/certdb/genname.c:189,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/certdb/genname.c:192,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/certdb/genname.c:197,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/certdb/genname.c:201,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/certdb/genname.c:203,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - arena
    - dest
    - src
    argTypes:
    - PLArenaPool*
    - CERTGeneralName*
    - CERTGeneralName*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 167
    functionDepth: 4
    functionLinenumber: 167
    functionLinenumberEnd: 206
    functionName: cert_CopyOneGeneralName
    functionSourceFile: /src/nss/lib/certdb/genname.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - SECITEM_CopyItem
    - CERT_CopyName
    - PORT_ArenaUnmark
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus cert_CopyOneGeneralName(PLArenaPool *arena, CERTGeneralName
      *dest,\n                        CERTGeneralName *src)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/certdb/genname.c:215,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certdb/genname.c:217,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/certdb/genname.c:218,1
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/certdb/genname.c:219,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/certdb/genname.c:221,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - list
    argTypes:
    - CERTGeneralNameList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 225
    functionName: CERT_DestroyGeneralNameList
    functionSourceFile: /src/nss/lib/certdb/genname.c
    functionUses: 2
    functionsReached:
    - PORT_FreeArena
    - PZ_DestroyLock
    - PZ_Lock
    - PZ_Unlock
    linkageType: ''
    returnType: void
    signature: void CERT_DestroyGeneralNameList(CERTGeneralNameList *list)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/certdb/genname.c:233,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/certdb/genname.c:237,1
    - Dst: CERT_NewGeneralName
      Src: /src/nss/lib/certdb/genname.c:242,1
    - Dst: CERT_CopyGeneralName
      Src: /src/nss/lib/certdb/genname.c:245,1
    - Dst: PZ_NewLock
      Src: /src/nss/lib/certdb/genname.c:249,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certdb/genname.c:258,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 1
    argNames:
    - name
    argTypes:
    - CERTGeneralName*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 260
    functionName: CERT_CreateGeneralNameList
    functionSourceFile: /src/nss/lib/certdb/genname.c
    functionUses: 2
    functionsReached:
    - PORT_NewArena
    - PORT_FreeArena
    - CERT_NewGeneralName
    - CERT_CopyGeneralName
    - PORT_ArenaZNew
    - PZ_NewLock
    linkageType: ''
    returnType: CERTGeneralNameList
    signature: 'CERTGeneralNameList *

      CERT_CreateGeneralNameList(CERTGeneralName *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - current
    argTypes:
    - CERTGeneralName*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 269
    functionName: CERT_GetNextGeneralName
    functionSourceFile: /src/nss/lib/certdb/genname.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: CERTGeneralName
    signature: 'CERTGeneralName *

      CERT_GetNextGeneralName(CERTGeneralName *current)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - current
    argTypes:
    - CERTGeneralName*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 277
    functionName: CERT_GetPrevGeneralName
    functionSourceFile: /src/nss/lib/certdb/genname.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CERTGeneralName
    signature: 'CERTGeneralName *

      CERT_GetPrevGeneralName(CERTGeneralName *current)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - current
    argTypes:
    - CERTNameConstraint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 287
    functionName: CERT_GetNextNameConstraint
    functionSourceFile: /src/nss/lib/certdb/genname.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: CERTNameConstraint
    signature: 'CERTNameConstraint *

      CERT_GetNextNameConstraint(CERTNameConstraint *current)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - current
    argTypes:
    - CERTNameConstraint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 296
    functionName: CERT_GetPrevNameConstraint
    functionSourceFile: /src/nss/lib/certdb/genname.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CERTNameConstraint
    signature: 'CERTNameConstraint *

      CERT_GetPrevNameConstraint(CERTNameConstraint *current)'
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/genname.c:305,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/genname.c:307,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/certdb/genname.c:312,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/certdb/genname.c:319,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/genname.c:360,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/certdb/genname.c:363,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 66
    argCount: 3
    argNames:
    - genName
    - dest
    - arena
    argTypes:
    - CERTGeneralName*
    - SECItem*
    - PLArenaPool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 372
    functionName: CERT_EncodeGeneralName
    functionSourceFile: /src/nss/lib/certdb/genname.c
    functionUses: 1
    functionsReached:
    - PORT_ArenaZNew
    - PORT_Assert
    - PORT_SetError
    - SEC_ASN1EncodeItem
    linkageType: ''
    returnType: SECItem
    signature: "SECItem *\nCERT_EncodeGeneralName(CERTGeneralName *genName, SECItem
      *dest,\n                       PLArenaPool *arena)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/genname.c:387,1
    - Dst: CERT_GetNextGeneralName
      Src: /src/nss/lib/certdb/genname.c:392,1
    - Dst: CERT_GetNextGeneralName
      Src: /src/nss/lib/certdb/genname.c:395,1
    - Dst: PORT_ArenaNewArray
      Src: /src/nss/lib/certdb/genname.c:396,1
    - Dst: CERT_EncodeGeneralName
      Src: /src/nss/lib/certdb/genname.c:401,1
    - Dst: CERT_GetNextGeneralName
      Src: /src/nss/lib/certdb/genname.c:405,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 374
    functionDepth: 2
    functionLinenumber: 374
    functionLinenumberEnd: 413
    functionName: cert_EncodeGeneralNames
    functionSourceFile: /src/nss/lib/certdb/genname.c
    functionUses: 2
    functionsReached:
    - PORT_Assert
    - PORT_ArenaNewArray
    - CERT_EncodeGeneralName
    - CERT_GetNextGeneralName
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem **

      cert_EncodeGeneralNames(PLArenaPool *arena, CERTGeneralName *names)'
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/genname.c:425,1
    - Dst: SECITEM_ArenaDupItem
      Src: /src/nss/lib/certdb/genname.c:430,1
    - Dst: CERT_NewGeneralName
      Src: /src/nss/lib/certdb/genname.c:437,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/certdb/genname.c:476,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/certdb/genname.c:480,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 66
    argCount: 3
    argNames:
    - reqArena
    - encodedName
    - genName
    argTypes:
    - PLArenaPool*
    - SECItem*
    - CERTGeneralName*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 415
    functionDepth: 2
    functionLinenumber: 415
    functionLinenumberEnd: 492
    functionName: CERT_DecodeGeneralName
    functionSourceFile: /src/nss/lib/certdb/genname.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    - CERT_NewGeneralName
    - SEC_QuickDERDecodeItem
    - SECITEM_ArenaDupItem
    linkageType: ''
    returnType: CERTGeneralName
    signature: "CERTGeneralName *\nCERT_DecodeGeneralName(PLArenaPool *reqArena, SECItem
      *encodedName,\n                       CERTGeneralName *genName)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/genname.c:501,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/genname.c:503,1
    - Dst: CERT_DecodeGeneralName
      Src: /src/nss/lib/certdb/genname.c:508,1
    - Dst: CERT_GetNextGeneralName
      Src: /src/nss/lib/certdb/genname.c:522,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - arena
    - encodedGenName
    argTypes:
    - PLArenaPool*
    - SECItem**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 494
    functionDepth: 3
    functionLinenumber: 494
    functionLinenumberEnd: 526
    functionName: cert_DecodeGeneralNames
    functionSourceFile: /src/nss/lib/certdb/genname.c
    functionUses: 2
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - CERT_GetNextGeneralName
    - CERT_DecodeGeneralName
    linkageType: ''
    returnType: CERTGeneralName
    signature: 'CERTGeneralName *

      cert_DecodeGeneralNames(PLArenaPool *arena, SECItem **encodedGenName)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cert_DestroyGeneralNames
      Src: /src/nss/lib/certdb/genname.c:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - CERTGeneralName*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 528
    functionDepth: 1
    functionLinenumber: 528
    functionLinenumberEnd: 532
    functionName: CERT_DestroyGeneralName
    functionSourceFile: /src/nss/lib/certdb/genname.c
    functionUses: 0
    functionsReached:
    - cert_DestroyGeneralNames
    linkageType: ''
    returnType: void
    signature: void CERT_DestroyGeneralName(CERTGeneralName *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CERT_GetNextGeneralName
      Src: /src/nss/lib/certdb/genname.c:542,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certdb/genname.c:543,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - CERTGeneralName*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 534
    functionDepth: 1
    functionLinenumber: 534
    functionLinenumberEnd: 547
    functionName: cert_DestroyGeneralNames
    functionSourceFile: /src/nss/lib/certdb/genname.c
    functionUses: 1
    functionsReached:
    - PORT_Free
    - CERT_GetNextGeneralName
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus cert_DestroyGeneralNames(CERTGeneralName *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/genname.c:553,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/certdb/genname.c:555,1
    - Dst: CERT_EncodeGeneralName
      Src: /src/nss/lib/certdb/genname.c:560,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/certdb/genname.c:563,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - constraint
    - dest
    - arena
    argTypes:
    - CERTNameConstraint*
    - SECItem*
    - PLArenaPool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 549
    functionDepth: 2
    functionLinenumber: 549
    functionLinenumberEnd: 565
    functionName: cert_EncodeNameConstraint
    functionSourceFile: /src/nss/lib/certdb/genname.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_ArenaZNew
    - SEC_ASN1EncodeItem
    - CERT_EncodeGeneralName
    linkageType: ''
    returnType: SECItem
    signature: "SECItem *\ncert_EncodeNameConstraint(CERTNameConstraint *constraint,
      SECItem *dest,\n                          PLArenaPool *arena)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/genname.c:578,1
    - Dst: CERT_GetNextNameConstraint
      Src: /src/nss/lib/certdb/genname.c:585,1
    - Dst: CERT_GetNextNameConstraint
      Src: /src/nss/lib/certdb/genname.c:588,1
    - Dst: PORT_ArenaZNewArray
      Src: /src/nss/lib/certdb/genname.c:589,1
    - Dst: cert_EncodeNameConstraint
      Src: /src/nss/lib/certdb/genname.c:594,1
    - Dst: CERT_GetNextNameConstraint
      Src: /src/nss/lib/certdb/genname.c:599,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 4
    argNames:
    - constraints
    - arena
    - dest
    - permited
    argTypes:
    - CERTNameConstraint*
    - PLArenaPool*
    - SECItem***
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 567
    functionDepth: 3
    functionLinenumber: 567
    functionLinenumberEnd: 610
    functionName: cert_EncodeNameConstraintSubTree
    functionSourceFile: /src/nss/lib/certdb/genname.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - cert_EncodeNameConstraint
    - CERT_GetNextNameConstraint
    - PORT_ArenaZNewArray
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus cert_EncodeNameConstraintSubTree(CERTNameConstraint *constraints,\n
      \                                PLArenaPool *arena, SECItem ***dest,\n                                 PRBool
      permited)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/genname.c:618,1
    - Dst: cert_EncodeNameConstraintSubTree
      Src: /src/nss/lib/certdb/genname.c:621,1
    - Dst: cert_EncodeNameConstraintSubTree
      Src: /src/nss/lib/certdb/genname.c:628,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/certdb/genname.c:634,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - constraints
    - arena
    - dest
    argTypes:
    - CERTNameConstraints*
    - PLArenaPool*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 612
    functionDepth: 4
    functionLinenumber: 612
    functionLinenumberEnd: 644
    functionName: cert_EncodeNameConstraints
    functionSourceFile: /src/nss/lib/certdb/genname.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - SEC_ASN1EncodeItem
    - cert_EncodeNameConstraintSubTree
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus cert_EncodeNameConstraints(CERTNameConstraints *constraints,
      PLArenaPool *arena,\n                           SECItem *dest)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/genname.c:655,1
    - Dst: SECITEM_ArenaDupItem
      Src: /src/nss/lib/certdb/genname.c:658,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/certdb/genname.c:663,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/certdb/genname.c:666,1
    - Dst: CERT_DecodeGeneralName
      Src: /src/nss/lib/certdb/genname.c:671,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - reqArena
    - encodedConstraint
    argTypes:
    - PLArenaPool*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 646
    functionDepth: 3
    functionLinenumber: 646
    functionLinenumberEnd: 687
    functionName: cert_DecodeNameConstraint
    functionSourceFile: /src/nss/lib/certdb/genname.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PORT_ArenaZNew
    - SEC_QuickDERDecodeItem
    - SECITEM_ArenaDupItem
    - CERT_DecodeGeneralName
    linkageType: ''
    returnType: CERTNameConstraint
    signature: 'CERTNameConstraint *

      cert_DecodeNameConstraint(PLArenaPool *reqArena, SECItem *encodedConstraint)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/genname.c:698,1
    - Dst: cert_DecodeNameConstraint
      Src: /src/nss/lib/certdb/genname.c:701,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - arena
    - subTree
    - permited
    argTypes:
    - PLArenaPool*
    - SECItem**
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 689
    functionDepth: 4
    functionLinenumber: 689
    functionLinenumberEnd: 723
    functionName: cert_DecodeNameConstraintSubTree
    functionSourceFile: /src/nss/lib/certdb/genname.c
    functionUses: 0
    functionsReached:
    - cert_DecodeNameConstraint
    - PORT_Assert
    linkageType: ''
    returnType: CERTNameConstraint
    signature: "CERTNameConstraint *\ncert_DecodeNameConstraintSubTree(PLArenaPool
      *arena, SECItem **subTree,\n                                 PRBool permited)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/genname.c:734,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/genname.c:737,1
    - Dst: SECITEM_ArenaDupItem
      Src: /src/nss/lib/certdb/genname.c:738,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/certdb/genname.c:741,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/certdb/genname.c:745,1
    - Dst: cert_DecodeNameConstraintSubTree
      Src: /src/nss/lib/certdb/genname.c:753,1
    - Dst: cert_DecodeNameConstraintSubTree
      Src: /src/nss/lib/certdb/genname.c:761,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 2
    argNames:
    - reqArena
    - encodedConstraints
    argTypes:
    - PLArenaPool*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 725
    functionDepth: 5
    functionLinenumber: 725
    functionLinenumberEnd: 772
    functionName: cert_DecodeNameConstraints
    functionSourceFile: /src/nss/lib/certdb/genname.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - cert_DecodeNameConstraintSubTree
    - PORT_SetError
    - PORT_ArenaZNew
    - SEC_QuickDERDecodeItem
    - SECITEM_ArenaDupItem
    linkageType: ''
    returnType: CERTNameConstraints
    signature: "CERTNameConstraints *\ncert_DecodeNameConstraints(PLArenaPool *reqArena,\n
      \                          const SECItem *encodedConstraints)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/genname.c:795,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/genname.c:797,1
    - Dst: cert_CopyOneGeneralName
      Src: /src/nss/lib/certdb/genname.c:802,1
    - Dst: CERT_GetNextGeneralName
      Src: /src/nss/lib/certdb/genname.c:805,1
    - Dst: CERT_NewGeneralName
      Src: /src/nss/lib/certdb/genname.c:810,1
    - Dst: CERT_GetNextGeneralName
      Src: /src/nss/lib/certdb/genname.c:819,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 3
    argNames:
    - arena
    - dest
    - src
    argTypes:
    - PLArenaPool*
    - CERTGeneralName*
    - CERTGeneralName*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 787
    functionDepth: 5
    functionLinenumber: 787
    functionLinenumberEnd: 828
    functionName: CERT_CopyGeneralName
    functionSourceFile: /src/nss/lib/certdb/genname.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - CERT_GetNextGeneralName
    - CERT_NewGeneralName
    - PORT_SetError
    - cert_CopyOneGeneralName
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_CopyGeneralName(PLArenaPool *arena, CERTGeneralName
      *dest,\n                     CERTGeneralName *src)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/certdb/genname.c:834,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/certdb/genname.c:836,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - list
    argTypes:
    - CERTGeneralNameList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 830
    functionDepth: 1
    functionLinenumber: 830
    functionLinenumberEnd: 839
    functionName: CERT_DupGeneralNameList
    functionSourceFile: /src/nss/lib/certdb/genname.c
    functionUses: 0
    functionsReached:
    - PZ_Lock
    - PZ_Unlock
    linkageType: ''
    returnType: CERTGeneralNameList
    signature: 'CERTGeneralNameList *

      CERT_DupGeneralNameList(CERTGeneralNameList *list)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/certdb/genname.c:850,1
    - Dst: CERT_CopyGeneralName
      Src: /src/nss/lib/certdb/genname.c:856,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/certdb/genname.c:860,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/certdb/genname.c:864,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/certdb/genname.c:868,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 3
    argNames:
    - arena
    - dest
    - src
    argTypes:
    - PLArenaPool*
    - CERTNameConstraint*
    - CERTNameConstraint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 842
    functionDepth: 6
    functionLinenumber: 842
    functionLinenumberEnd: 878
    functionName: CERT_CopyNameConstraint
    functionSourceFile: /src/nss/lib/certdb/genname.c
    functionUses: 1
    functionsReached:
    - PORT_ArenaZNew
    - SECITEM_CopyItem
    - CERT_CopyGeneralName
    linkageType: ''
    returnType: CERTNameConstraint
    signature: "CERTNameConstraint *\nCERT_CopyNameConstraint(PLArenaPool *arena,
      CERTNameConstraint *dest,\n                        CERTNameConstraint *src)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - list1
    - list2
    argTypes:
    - CERTGeneralName*
    - CERTGeneralName*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 880
    functionDepth: 0
    functionLinenumber: 880
    functionLinenumberEnd: 903
    functionName: cert_CombineNamesLists
    functionSourceFile: /src/nss/lib/certdb/genname.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: CERTGeneralName
    signature: 'CERTGeneralName *

      cert_CombineNamesLists(CERTGeneralName *list1, CERTGeneralName *list2)'
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - list1
    - list2
    argTypes:
    - CERTNameConstraint*
    - CERTNameConstraint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 905
    functionDepth: 0
    functionLinenumber: 905
    functionLinenumberEnd: 929
    functionName: cert_CombineConstraintsLists
    functionSourceFile: /src/nss/lib/certdb/genname.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CERTNameConstraint
    signature: "CERTNameConstraint *\ncert_CombineConstraintsLists(CERTNameConstraint
      *list1,\n                             CERTNameConstraint *list2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/genname.c:935,1
    - Dst: cert_CombineConstraintsLists
      Src: /src/nss/lib/certdb/genname.c:937,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - list
    - constraint
    argTypes:
    - CERTNameConstraint*
    - CERTNameConstraint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 932
    functionDepth: 1
    functionLinenumber: 932
    functionLinenumberEnd: 939
    functionName: CERT_AddNameConstraint
    functionSourceFile: /src/nss/lib/certdb/genname.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - cert_CombineConstraintsLists
    linkageType: ''
    returnType: CERTNameConstraint
    signature: 'CERTNameConstraint *

      CERT_AddNameConstraint(CERTNameConstraint *list, CERTNameConstraint *constraint)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/certdb/genname.c:954,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/genname.c:958,1
    - Dst: CERT_CopyNameConstraint
      Src: /src/nss/lib/certdb/genname.c:961,1
    - Dst: CERT_AddNameConstraint
      Src: /src/nss/lib/certdb/genname.c:964,1
    - Dst: CERT_GetNextNameConstraint
      Src: /src/nss/lib/certdb/genname.c:966,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/certdb/genname.c:968,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/certdb/genname.c:972,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - constraints
    - type
    - returnList
    - arena
    argTypes:
    - CERTNameConstraint*
    - CERTGeneralNameType
    - CERTNameConstraint**
    - PLArenaPool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 941
    functionDepth: 7
    functionLinenumber: 941
    functionLinenumberEnd: 974
    functionName: CERT_GetNameConstraintByType
    functionSourceFile: /src/nss/lib/certdb/genname.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_ArenaRelease
    - CERT_GetNextNameConstraint
    - PORT_ArenaMark
    - PORT_ArenaUnmark
    - CERT_AddNameConstraint
    - CERT_CopyNameConstraint
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_GetNameConstraintByType(CERTNameConstraint *constraints,\n
      \                            CERTGeneralNameType type,\n                             CERTNameConstraint
      **returnList,\n                             PLArenaPool *arena)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/genname.c:1008,1
    - Dst: CERT_GetNextGeneralName
      Src: /src/nss/lib/certdb/genname.c:1011,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 3
    argNames:
    - genNames
    - type
    - derFormat
    argTypes:
    - CERTGeneralName*
    - CERTGeneralNameType
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 976
    functionDepth: 1
    functionLinenumber: 976
    functionLinenumberEnd: 1014
    functionName: CERT_GetGeneralNameByType
    functionSourceFile: /src/nss/lib/certdb/genname.c
    functionUses: 2
    functionsReached:
    - PORT_Assert
    - CERT_GetNextGeneralName
    linkageType: ''
    returnType: void
    signature: "void *\nCERT_GetGeneralNameByType(CERTGeneralName *genNames, CERTGeneralNameType
      type,\n                          PRBool derFormat)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CERT_GetNextGeneralName
      Src: /src/nss/lib/certdb/genname.c:1026,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - names
    argTypes:
    - CERTGeneralName*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1030
      start: 1016
    functionDepth: 1
    functionLinenumber: 1016
    functionLinenumberEnd: 1030
    functionName: CERT_GetNamesLength
    functionSourceFile: /src/nss/lib/certdb/genname.c
    functionUses: 1
    functionsReached:
    - CERT_GetNextGeneralName
    linkageType: ''
    returnType: int
    signature: int CERT_GetNamesLength(CERTGeneralName *names)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/genname.c:1042,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/genname.c:1044,1
    - Dst: CERT_GetAVATag
      Src: /src/nss/lib/certdb/genname.c:1054,1
    - Dst: CERT_DecodeAVAValue
      Src: /src/nss/lib/certdb/genname.c:1058,1
    - Dst: CERT_NewGeneralName
      Src: /src/nss/lib/certdb/genname.c:1062,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/certdb/genname.c:1065,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/certdb/genname.c:1067,1
    - Dst: cert_CombineNamesLists
      Src: /src/nss/lib/certdb/genname.c:1070,1
    - Dst: cert_CombineNamesLists
      Src: /src/nss/lib/certdb/genname.c:1075,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 2
    argNames:
    - name
    - arena
    argTypes:
    - CERTGeneralName*
    - PLArenaPool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1082
      start: 1035
    functionDepth: 2
    functionLinenumber: 1035
    functionLinenumberEnd: 1082
    functionName: cert_ExtractDNEmailAddrs
    functionSourceFile: /src/nss/lib/certdb/genname.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - cert_CombineNamesLists
    - CERT_NewGeneralName
    - SECITEM_CopyItem
    - PORT_SetError
    - CERT_DecodeAVAValue
    - CERT_GetAVATag
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus cert_ExtractDNEmailAddrs(CERTGeneralName *name, PLArenaPool
      *arena)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CERT_GetConstrainedCertificateNames
      Src: /src/nss/lib/certdb/genname.c:1090,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cert
    - arena
    argTypes:
    - CERTCertificate*
    - PLArenaPool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1087
    functionDepth: 1
    functionLinenumber: 1087
    functionLinenumberEnd: 1091
    functionName: CERT_GetCertificateNames
    functionSourceFile: /src/nss/lib/certdb/genname.c
    functionUses: 3
    functionsReached:
    - CERT_GetConstrainedCertificateNames
    linkageType: ''
    returnType: CERTGeneralName
    signature: 'CERTGeneralName *

      CERT_GetCertificateNames(CERTCertificate *cert, PLArenaPool *arena)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/genname.c:1107,1
    - Dst: CERT_NewGeneralName
      Src: /src/nss/lib/certdb/genname.c:1111,1
    - Dst: CERT_CopyName
      Src: /src/nss/lib/certdb/genname.c:1115,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/certdb/genname.c:1119,1
    - Dst: cert_ExtractDNEmailAddrs
      Src: /src/nss/lib/certdb/genname.c:1126,1
    - Dst: cert_GetSubjectAltNameList
      Src: /src/nss/lib/certdb/genname.c:1131,1
    - Dst: cert_CountDNSPatterns
      Src: /src/nss/lib/certdb/genname.c:1133,1
    - Dst: cert_CombineNamesLists
      Src: /src/nss/lib/certdb/genname.c:1134,1
    - Dst: CERT_GetCommonName
      Src: /src/nss/lib/certdb/genname.c:1137,1
    - Dst: CERT_NewGeneralName
      Src: /src/nss/lib/certdb/genname.c:1139,1
    - Dst: strlen
      Src: /src/nss/lib/certdb/genname.c:1143,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/certdb/genname.c:1144,1
    - Dst: cert_CombineNamesLists
      Src: /src/nss/lib/certdb/genname.c:1146,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certdb/genname.c:1149,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 48
    argCount: 3
    argNames:
    - cert
    - arena
    - includeSubjectCommonName
    argTypes:
    - CERTCertificate*
    - PLArenaPool*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1159
      start: 1096
    functionDepth: 4
    functionLinenumber: 1096
    functionLinenumberEnd: 1159
    functionName: CERT_GetConstrainedCertificateNames
    functionSourceFile: /src/nss/lib/certdb/genname.c
    functionUses: 3
    functionsReached:
    - cert_CombineNamesLists
    - cert_ExtractDNEmailAddrs
    - PORT_Free
    - CERT_NewGeneralName
    - cert_CountDNSPatterns
    - SECITEM_CopyItem
    - PORT_SetError
    - CERT_CopyName
    - cert_GetSubjectAltNameList
    - CERT_GetCommonName
    - strlen
    linkageType: ''
    returnType: CERTGeneralName
    signature: "CERTGeneralName *\nCERT_GetConstrainedCertificateNames(const CERTCertificate
      *cert,\n                                    PLArenaPool *arena,\n                                    PRBool
      includeSubjectCommonName)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PL_strncasecmp
      Src: /src/nss/lib/certdb/genname.c:1188,1
    - Dst: PL_strncasecmp
      Src: /src/nss/lib/certdb/genname.c:1197,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 2
    argNames:
    - name
    - constraint
    argTypes:
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1204
      start: 1176
    functionDepth: 1
    functionLinenumber: 1176
    functionLinenumberEnd: 1204
    functionName: compareURIN2C
    functionSourceFile: /src/nss/lib/certdb/genname.c
    functionUses: 0
    functionsReached:
    - PL_strncasecmp
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus compareURIN2C(const SECItem *name, const SECItem *constraint)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PL_strncasecmp
      Src: /src/nss/lib/certdb/genname.c:1242,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - name
    - constraint
    argTypes:
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1249
      start: 1230
    functionDepth: 1
    functionLinenumber: 1230
    functionLinenumberEnd: 1249
    functionName: compareDNSN2C
    functionSourceFile: /src/nss/lib/certdb/genname.c
    functionUses: 0
    functionsReached:
    - PL_strncasecmp
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus compareDNSN2C(const SECItem *name, const SECItem *constraint)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PL_strncasecmp
      Src: /src/nss/lib/certdb/genname.c:1272,1
    - Dst: PL_strncasecmp
      Src: /src/nss/lib/certdb/genname.c:1279,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 2
    argNames:
    - name
    - constraint
    argTypes:
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1287
      start: 1259
    functionDepth: 1
    functionLinenumber: 1259
    functionLinenumberEnd: 1287
    functionName: compareRFC822N2C
    functionSourceFile: /src/nss/lib/certdb/genname.c
    functionUses: 0
    functionsReached:
    - PL_strncasecmp
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus compareRFC822N2C(const SECItem *name, const SECItem *constraint)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 2
    argNames:
    - name
    - constraint
    argTypes:
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1316
      start: 1295
    functionDepth: 0
    functionLinenumber: 1295
    functionLinenumberEnd: 1316
    functionName: compareIPaddrN2C
    functionSourceFile: /src/nss/lib/certdb/genname.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus compareIPaddrN2C(const SECItem *name, const SECItem *constraint)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 33
    argCount: 1
    argNames:
    - item
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1364
      start: 1323
    functionDepth: 0
    functionLinenumber: 1323
    functionLinenumberEnd: 1364
    functionName: parseUriHostname
    functionSourceFile: /src/nss/lib/certdb/genname.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus parseUriHostname(SECItem *item)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/genname.c:1383,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/genname.c:1385,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/genname.c:1393,1
    - Dst: compareDNSN2C
      Src: /src/nss/lib/certdb/genname.c:1398,1
    - Dst: compareRFC822N2C
      Src: /src/nss/lib/certdb/genname.c:1402,1
    - Dst: parseUriHostname
      Src: /src/nss/lib/certdb/genname.c:1410,1
    - Dst: compareURIN2C
      Src: /src/nss/lib/certdb/genname.c:1413,1
    - Dst: CERT_CompareAVA
      Src: /src/nss/lib/certdb/genname.c:1442,1
    - Dst: compareIPaddrN2C
      Src: /src/nss/lib/certdb/genname.c:1457,1
    - Dst: SECITEM_ItemsAreEqual
      Src: /src/nss/lib/certdb/genname.c:1475,1
    - Dst: CERT_GetNextNameConstraint
      Src: /src/nss/lib/certdb/genname.c:1500,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 68
    argCount: 3
    argNames:
    - name
    - constraints
    - excluded
    argTypes:
    - CERTGeneralName*
    - CERTNameConstraint*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1511
      start: 1374
    functionDepth: 3
    functionLinenumber: 1374
    functionLinenumberEnd: 1511
    functionName: cert_CompareNameWithConstraints
    functionSourceFile: /src/nss/lib/certdb/genname.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SECITEM_ItemsAreEqual
    - compareRFC822N2C
    - CERT_GetNextNameConstraint
    - PORT_SetError
    - compareDNSN2C
    - CERT_CompareAVA
    - compareIPaddrN2C
    - parseUriHostname
    - compareURIN2C
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus cert_CompareNameWithConstraints(const CERTGeneralName *name,\n
      \                               const CERTNameConstraint *constraints,\n                                PRBool
      excluded)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/certdb/genname.c:1527,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/certdb/genname.c:1529,1
    - Dst: cert_CopyOneGeneralName
      Src: /src/nss/lib/certdb/genname.c:1535,1
    - Dst: PR_INIT_CLIST
      Src: /src/nss/lib/certdb/genname.c:1544,1
    - Dst: PR_INSERT_BEFORE
      Src: /src/nss/lib/certdb/genname.c:1546,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/certdb/genname.c:1551,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/certdb/genname.c:1553,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 3
    argNames:
    - arena
    - constraints
    - name
    argTypes:
    - PLArenaPool*
    - CERTNameConstraint**
    - CERTGeneralName*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1556
      start: 1517
    functionDepth: 5
    functionLinenumber: 1517
    functionLinenumberEnd: 1556
    functionName: CERT_AddNameConstraintByGeneralName
    functionSourceFile: /src/nss/lib/certdb/genname.c
    functionUses: 0
    functionsReached:
    - PR_INSERT_BEFORE
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - PORT_ArenaZNew
    - PORT_ArenaUnmark
    - PR_INIT_CLIST
    - cert_CopyOneGeneralName
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_AddNameConstraintByGeneralName(PLArenaPool *arena,\n
      \                                   CERTNameConstraint **constraints,\n                                    CERTGeneralName
      *name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1583
      start: 1579
    functionDepth: 0
    functionLinenumber: 1579
    functionLinenumberEnd: 1583
    functionName: STRING_TO_SECITEM
    functionSourceFile: /src/nss/lib/certdb/genname.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STRING_TO_SECITEM(str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - CA
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1590
      start: 1584
    functionDepth: 0
    functionLinenumber: 1584
    functionLinenumberEnd: 1590
    functionName: NAME_CONSTRAINTS_ENTRY
    functionSourceFile: /src/nss/lib/certdb/genname.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NAME_CONSTRAINTS_ENTRY(CA)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/genname.c:1654,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/certdb/genname.c:1658,1
    - Dst: SECITEM_ItemsAreEqual
      Src: /src/nss/lib/certdb/genname.c:1659,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/certdb/genname.c:1660,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/genname.c:1665,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - derSubject
    - extensions
    argTypes:
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1667
      start: 1648
    functionDepth: 0
    functionLinenumber: 1648
    functionLinenumberEnd: 1667
    functionName: CERT_GetImposedNameConstraints
    functionSourceFile: /src/nss/lib/certdb/genname.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - SECITEM_ItemsAreEqual
    - PR_ARRAY_SIZE
    - SECITEM_CopyItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERT_GetImposedNameConstraints(const SECItem *derSubject,
      SECItem *extensions)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CERT_FindCertExtension
      Src: /src/nss/lib/certdb/genname.c:1685,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/certdb/genname.c:1688,1
    - Dst: CERT_GetImposedNameConstraints
      Src: /src/nss/lib/certdb/genname.c:1691,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/certdb/genname.c:1694,1
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/certdb/genname.c:1701,1
    - Dst: cert_DecodeNameConstraints
      Src: /src/nss/lib/certdb/genname.c:1703,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certdb/genname.c:1707,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/certdb/genname.c:1710,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/certdb/genname.c:1712,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 3
    argNames:
    - arena
    - cert
    - constraints
    argTypes:
    - PLArenaPool*
    - CERTCertificate*
    - CERTNameConstraints**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1716
      start: 1675
    functionDepth: 6
    functionLinenumber: 1675
    functionLinenumberEnd: 1716
    functionName: CERT_FindNameConstraintsExten
    functionSourceFile: /src/nss/lib/certdb/genname.c
    functionUses: 1
    functionsReached:
    - CERT_FindCertExtension
    - PORT_ArenaUnmark
    - PORT_Free
    - PORT_ArenaRelease
    - PORT_GetError
    - PORT_ArenaMark
    - cert_DecodeNameConstraints
    - CERT_GetImposedNameConstraints
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_FindNameConstraintsExten(PLArenaPool *arena, CERTCertificate
      *cert,\n                              CERTNameConstraints **constraints)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CERT_GetNameConstraintByType
      Src: /src/nss/lib/certdb/genname.c:1729,1
    - Dst: cert_CompareNameWithConstraints
      Src: /src/nss/lib/certdb/genname.c:1733,1
    - Dst: CERT_GetNameConstraintByType
      Src: /src/nss/lib/certdb/genname.c:1742,1
    - Dst: cert_CompareNameWithConstraints
      Src: /src/nss/lib/certdb/genname.c:1746,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 3
    argNames:
    - arena
    - constraints
    - currentName
    argTypes:
    - PLArenaPool*
    - CERTNameConstraints*
    - CERTGeneralName*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1755
      start: 1721
    functionDepth: 8
    functionLinenumber: 1721
    functionLinenumberEnd: 1755
    functionName: CERT_CheckNameSpace
    functionSourceFile: /src/nss/lib/certdb/genname.c
    functionUses: 2
    functionsReached:
    - CERT_GetNameConstraintByType
    - cert_CompareNameWithConstraints
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_CheckNameSpace(PLArenaPool *arena, const CERTNameConstraints
      *constraints,\n                    const CERTGeneralName *currentName)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CERT_FindNameConstraintsExten
      Src: /src/nss/lib/certdb/genname.c:1778,1
    - Dst: CERT_CheckNameSpace
      Src: /src/nss/lib/certdb/genname.c:1787,1
    - Dst: CERT_GetNextGeneralName
      Src: /src/nss/lib/certdb/genname.c:1792,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 5
    argNames:
    - cert
    - namesList
    - certsList
    - reqArena
    - pBadCert
    argTypes:
    - CERTCertificate*
    - CERTGeneralName*
    - CERTCertificate**
    - PLArenaPool*
    - CERTCertificate**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1804
      start: 1764
    functionDepth: 9
    functionLinenumber: 1764
    functionLinenumberEnd: 1804
    functionName: CERT_CompareNameSpace
    functionSourceFile: /src/nss/lib/certdb/genname.c
    functionUses: 1
    functionsReached:
    - CERT_CheckNameSpace
    - CERT_GetNextGeneralName
    - CERT_FindNameConstraintsExten
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_CompareNameSpace(CERTCertificate *cert, CERTGeneralName
      *namesList,\n                      CERTCertificate **certsList, PLArenaPool
      *reqArena,\n                      CERTCertificate **pBadCert)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: CERT_GetNextGeneralName
      Src: /src/nss/lib/certdb/genname.c:1822,1
    - Dst: CERT_GetNextGeneralName
      Src: /src/nss/lib/certdb/genname.c:1823,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/certdb/genname.c:1843,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/certdb/genname.c:1850,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/certdb/genname.c:1853,1
    - Dst: CERT_CompareName
      Src: /src/nss/lib/certdb/genname.c:1860,1
    - Dst: CERT_GetNextGeneralName
      Src: /src/nss/lib/certdb/genname.c:1868,1
    - Dst: CERT_GetNextGeneralName
      Src: /src/nss/lib/certdb/genname.c:1873,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 52
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - CERTGeneralName*
    - CERTGeneralName*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1876
      start: 1808
    functionDepth: 5
    functionLinenumber: 1808
    functionLinenumberEnd: 1876
    functionName: CERT_CompareGeneralName
    functionSourceFile: /src/nss/lib/certdb/genname.c
    functionUses: 0
    functionsReached:
    - SECITEM_CompareItem
    - CERT_CompareName
    - CERT_GetNextGeneralName
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERT_CompareGeneralName(CERTGeneralName *a, CERTGeneralName
      *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/certdb/genname.c:1887,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/certdb/genname.c:1888,1
    - Dst: CERT_CompareGeneralName
      Src: /src/nss/lib/certdb/genname.c:1889,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/certdb/genname.c:1890,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/certdb/genname.c:1891,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - CERTGeneralNameList*
    - CERTGeneralNameList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1896
      start: 1878
    functionDepth: 6
    functionLinenumber: 1878
    functionLinenumberEnd: 1896
    functionName: CERT_CompareGeneralNameLists
    functionSourceFile: /src/nss/lib/certdb/genname.c
    functionUses: 0
    functionsReached:
    - CERT_CompareGeneralName
    - PZ_Lock
    - PZ_Unlock
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERT_CompareGeneralNameLists(CERTGeneralNameList *a, CERTGeneralNameList
      *b)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/certdb/genname.c:1915,1
    - Dst: CERT_GetGeneralNameByType
      Src: /src/nss/lib/certdb/genname.c:1916,1
    - Dst: PORT_ArenaNew
      Src: /src/nss/lib/certdb/genname.c:1927,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/certdb/genname.c:1932,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/certdb/genname.c:1934,1
    - Dst: PORT_ArenaNew
      Src: /src/nss/lib/certdb/genname.c:1939,1
    - Dst: PORT_New
      Src: /src/nss/lib/certdb/genname.c:1941,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/certdb/genname.c:1947,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/certdb/genname.c:1951,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/certdb/genname.c:1956,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/certdb/genname.c:1960,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 44
    argCount: 3
    argNames:
    - list
    - type
    - arena
    argTypes:
    - CERTGeneralNameList*
    - CERTGeneralNameType
    - PLArenaPool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1962
      start: 1904
    functionDepth: 2
    functionLinenumber: 1904
    functionLinenumberEnd: 1962
    functionName: CERT_GetGeneralNameFromListByType
    functionSourceFile: /src/nss/lib/certdb/genname.c
    functionUses: 0
    functionsReached:
    - SECITEM_DupItem
    - CERT_GetGeneralNameByType
    - PORT_ArenaNew
    - PZ_Unlock
    - PORT_ArenaZNew
    - PZ_Lock
    - PORT_New
    linkageType: ''
    returnType: void
    signature: "void *\nCERT_GetGeneralNameFromListByType(CERTGeneralNameList *list,\n\t\t\t\t
      \ CERTGeneralNameType type,\n\t\t\t\t  PLArenaPool *arena)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/certdb/genname.c:1979,1
    - Dst: CERT_NewGeneralName
      Src: /src/nss/lib/certdb/genname.c:1980,1
    - Dst: cert_CombineNamesLists
      Src: /src/nss/lib/certdb/genname.c:2004,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/certdb/genname.c:2007,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 4
    argNames:
    - list
    - type
    - data
    - oid
    argTypes:
    - CERTGeneralNameList*
    - CERTGeneralNameType
    - void*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2010
      start: 1971
    functionDepth: 2
    functionLinenumber: 1971
    functionLinenumberEnd: 2010
    functionName: CERT_AddGeneralNameToList
    functionSourceFile: /src/nss/lib/certdb/genname.c
    functionUses: 0
    functionsReached:
    - CERT_NewGeneralName
    - cert_CombineNamesLists
    - PZ_Lock
    - PZ_Unlock
    linkageType: ''
    returnType: void
    signature: "void CERT_AddGeneralNameToList(CERTGeneralNameList *list,\n\t\t\t
      \ CERTGeneralNameType type,\n\t\t\t  void *data, SECItem *oid)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/xauthkid.c:42,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/xauthkid.c:43,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/xauthkid.c:44,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/xauthkid.c:45,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/xauthkid.c:55,1
    - Dst: cert_EncodeGeneralNames
      Src: /src/nss/lib/certdb/xauthkid.c:60,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/xauthkid.c:62,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/xauthkid.c:66,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/certdb/xauthkid.c:70,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 3
    argNames:
    - arena
    - value
    - encodedValue
    argTypes:
    - PLArenaPool*
    - CERTAuthKeyID*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 36
    functionDepth: 3
    functionLinenumber: 36
    functionLinenumberEnd: 77
    functionName: CERT_EncodeAuthKeyID
    functionSourceFile: /src/nss/lib/certdb/xauthkid.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - SEC_ASN1EncodeItem
    - cert_EncodeGeneralNames
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_EncodeAuthKeyID(PLArenaPool *arena, CERTAuthKeyID *value,\n
      \                    SECItem *encodedValue)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/xauthkid.c:87,1
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/certdb/xauthkid.c:90,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/certdb/xauthkid.c:91,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/certdb/xauthkid.c:97,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/certdb/xauthkid.c:102,1
    - Dst: cert_DecodeGeneralNames
      Src: /src/nss/lib/certdb/xauthkid.c:108,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/xauthkid.c:117,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/certdb/xauthkid.c:123,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/certdb/xauthkid.c:126,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 29
    argCount: 2
    argNames:
    - arena
    - encodedValue
    argTypes:
    - PLArenaPool*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 79
    functionDepth: 4
    functionLinenumber: 79
    functionLinenumberEnd: 128
    functionName: CERT_DecodeAuthKeyID
    functionSourceFile: /src/nss/lib/certdb/xauthkid.c
    functionUses: 1
    functionsReached:
    - cert_DecodeGeneralNames
    - PORT_Assert
    - PORT_ArenaZAlloc
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - SECITEM_CopyItem
    - SEC_QuickDERDecodeItem
    - PORT_SetError
    - PORT_ArenaUnmark
    linkageType: ''
    returnType: CERTAuthKeyID
    signature: 'CERTAuthKeyID *

      CERT_DecodeAuthKeyID(PLArenaPool *arena, const SECItem *encodedValue)'
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 132
    functionName: breakLines
    functionSourceFile: /src/nss/lib/certdb/polcyxtn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void breakLines(char *string)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/certdb/polcyxtn.c:145,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/certdb/polcyxtn.c:152,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/certdb/polcyxtn.c:163,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/certdb/polcyxtn.c:169,1
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/certdb/polcyxtn.c:180,1
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/certdb/polcyxtn.c:185,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certdb/polcyxtn.c:195,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 1
    argNames:
    - extnValue
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 199
    functionName: CERT_DecodeCertificatePoliciesExtension
    functionSourceFile: /src/nss/lib/certdb/polcyxtn.c
    functionUses: 1
    functionsReached:
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - PORT_FreeArena
    - SECITEM_CopyItem
    - SECOID_FindOIDTag
    - SEC_QuickDERDecodeItem
    linkageType: ''
    returnType: CERTCertificatePolicies
    signature: 'CERTCertificatePolicies *

      CERT_DecodeCertificatePoliciesExtension(const SECItem *extnValue)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certdb/polcyxtn.c:205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - policies
    argTypes:
    - CERTCertificatePolicies*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 208
    functionName: CERT_DestroyCertificatePoliciesExtension
    functionSourceFile: /src/nss/lib/certdb/polcyxtn.c
    functionUses: 2
    functionsReached:
    - PORT_FreeArena
    linkageType: ''
    returnType: void
    signature: void CERT_DestroyCertificatePoliciesExtension(CERTCertificatePolicies
      *policies)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/certdb/polcyxtn.c:219,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/certdb/polcyxtn.c:225,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/certdb/polcyxtn.c:234,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/certdb/polcyxtn.c:240,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certdb/polcyxtn.c:250,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 1
    argNames:
    - extnValue
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 254
    functionName: CERT_DecodePolicyMappingsExtension
    functionSourceFile: /src/nss/lib/certdb/polcyxtn.c
    functionUses: 1
    functionsReached:
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - PORT_FreeArena
    - SECITEM_CopyItem
    - SEC_QuickDERDecodeItem
    linkageType: ''
    returnType: CERTCertificatePolicyMappings
    signature: 'CERTCertificatePolicyMappings *

      CERT_DecodePolicyMappingsExtension(SECItem *extnValue)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certdb/polcyxtn.c:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mappings
    argTypes:
    - CERTCertificatePolicyMappings*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 263
    functionName: CERT_DestroyPolicyMappingsExtension
    functionSourceFile: /src/nss/lib/certdb/polcyxtn.c
    functionUses: 1
    functionsReached:
    - PORT_FreeArena
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERT_DestroyPolicyMappingsExtension(CERTCertificatePolicyMappings
      *mappings)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memset
      Src: /src/nss/lib/certdb/polcyxtn.c:274,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/certdb/polcyxtn.c:277,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/certdb/polcyxtn.c:284,1
    - Dst: DER_GetInteger
      Src: /src/nss/lib/certdb/polcyxtn.c:296,1
    - Dst: DER_GetInteger
      Src: /src/nss/lib/certdb/polcyxtn.c:303,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certdb/polcyxtn.c:319,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 2
    argNames:
    - decodedValue
    - encodedValue
    argTypes:
    - CERTCertificatePolicyConstraints*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 321
    functionName: CERT_DecodePolicyConstraintsExtension
    functionSourceFile: /src/nss/lib/certdb/polcyxtn.c
    functionUses: 1
    functionsReached:
    - PORT_NewArena
    - PORT_FreeArena
    - SEC_QuickDERDecodeItem
    - PORT_Memset
    - DER_GetInteger
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_DecodePolicyConstraintsExtension(\n    CERTCertificatePolicyConstraints
      *decodedValue, const SECItem *encodedValue)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/certdb/polcyxtn.c:332,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/certdb/polcyxtn.c:341,1
    - Dst: DER_GetInteger
      Src: /src/nss/lib/certdb/polcyxtn.c:349,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certdb/polcyxtn.c:353,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - decodedValue
    - encodedValue
    argTypes:
    - CERTCertificateInhibitAny*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 355
    functionName: CERT_DecodeInhibitAnyExtension
    functionSourceFile: /src/nss/lib/certdb/polcyxtn.c
    functionUses: 1
    functionsReached:
    - PORT_FreeArena
    - SEC_QuickDERDecodeItem
    - PORT_NewArena
    - DER_GetInteger
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_DecodeInhibitAnyExtension(CERTCertificateInhibitAny
      *decodedValue,\n                               SECItem *encodedValue)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/certdb/polcyxtn.c:366,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/certdb/polcyxtn.c:374,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/certdb/polcyxtn.c:384,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/certdb/polcyxtn.c:390,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/certdb/polcyxtn.c:399,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certdb/polcyxtn.c:411,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 1
    argNames:
    - noticeItem
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 415
    functionName: CERT_DecodeUserNotice
    functionSourceFile: /src/nss/lib/certdb/polcyxtn.c
    functionUses: 1
    functionsReached:
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - PORT_FreeArena
    - SECITEM_CopyItem
    - SEC_QuickDERDecodeItem
    linkageType: ''
    returnType: CERTUserNotice
    signature: 'CERTUserNotice *

      CERT_DecodeUserNotice(SECItem *noticeItem)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certdb/polcyxtn.c:421,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - userNotice
    argTypes:
    - CERTUserNotice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 424
    functionName: CERT_DestroyUserNotice
    functionSourceFile: /src/nss/lib/certdb/polcyxtn.c
    functionUses: 1
    functionsReached:
    - PORT_FreeArena
    linkageType: ''
    returnType: void
    signature: void CERT_DestroyUserNotice(CERTUserNotice *userNotice)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - cb
    - cbarg
    argTypes:
    - CERTPolicyStringCallback
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 435
    functionName: CERT_SetCAPolicyStringCallback
    functionSourceFile: /src/nss/lib/certdb/polcyxtn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CERT_SetCAPolicyStringCallback(CERTPolicyStringCallback cb, void
      *cbarg)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: CERT_DecodeUserNotice
      Src: /src/nss/lib/certdb/polcyxtn.c:451,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/certdb/polcyxtn.c:462,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/certdb/polcyxtn.c:464,1
    - Dst: PR_sprintf_append
      Src: /src/nss/lib/certdb/polcyxtn.c:475,1
    - Dst: PR_sprintf_append
      Src: /src/nss/lib/certdb/polcyxtn.c:477,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certdb/polcyxtn.c:480,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certdb/polcyxtn.c:486,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/certdb/polcyxtn.c:503,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/certdb/polcyxtn.c:505,1
    - Dst: CERT_DestroyUserNotice
      Src: /src/nss/lib/certdb/polcyxtn.c:513,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 50
    argCount: 1
    argNames:
    - noticeItem
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 437
    functionDepth: 1
    functionLinenumber: 437
    functionLinenumberEnd: 516
    functionName: stringFromUserNotice
    functionSourceFile: /src/nss/lib/certdb/polcyxtn.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_Memcpy
    - CERT_DestroyUserNotice
    - PORT_Free
    - PR_sprintf_append
    - CERT_DecodeUserNotice
    linkageType: ''
    returnType: char
    signature: 'char *

      stringFromUserNotice(SECItem *noticeItem)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CERT_FindCertExtension
      Src: /src/nss/lib/certdb/polcyxtn.c:530,1
    - Dst: CERT_DecodeCertificatePoliciesExtension
      Src: /src/nss/lib/certdb/polcyxtn.c:536,1
    - Dst: stringFromUserNotice
      Src: /src/nss/lib/certdb/polcyxtn.c:551,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certdb/polcyxtn.c:564,1
    - Dst: CERT_DestroyCertificatePoliciesExtension
      Src: /src/nss/lib/certdb/polcyxtn.c:568,1
    - Dst: CERT_FindNSStringExtension
      Src: /src/nss/lib/certdb/polcyxtn.c:573,1
    - Dst: breakLines
      Src: /src/nss/lib/certdb/polcyxtn.c:577,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 1
    argNames:
    - cert
    argTypes:
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 518
    functionDepth: 2
    functionLinenumber: 518
    functionLinenumberEnd: 581
    functionName: CERT_GetCertCommentString
    functionSourceFile: /src/nss/lib/certdb/polcyxtn.c
    functionUses: 0
    functionsReached:
    - CERT_FindCertExtension
    - PORT_Free
    - CERT_DecodeCertificatePoliciesExtension
    - breakLines
    - stringFromUserNotice
    - CERT_FindNSStringExtension
    - CERT_DestroyCertificatePoliciesExtension
    linkageType: ''
    returnType: char
    signature: 'char *

      CERT_GetCertCommentString(CERTCertificate *cert)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/certdb/polcyxtn.c:597,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/certdb/polcyxtn.c:605,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/certdb/polcyxtn.c:615,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/certdb/polcyxtn.c:622,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certdb/polcyxtn.c:632,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 1
    argNames:
    - seqItem
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 635
    functionName: CERT_DecodeOidSequence
    functionSourceFile: /src/nss/lib/certdb/polcyxtn.c
    functionUses: 3
    functionsReached:
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - PORT_FreeArena
    - SECITEM_CopyItem
    - SEC_QuickDERDecodeItem
    linkageType: ''
    returnType: CERTOidSequence
    signature: 'CERTOidSequence *

      CERT_DecodeOidSequence(const SECItem *seqItem)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certdb/polcyxtn.c:641,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - oidSeq
    argTypes:
    - CERTOidSequence*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 637
    functionDepth: 0
    functionLinenumber: 637
    functionLinenumberEnd: 644
    functionName: CERT_DestroyOidSequence
    functionSourceFile: /src/nss/lib/certdb/polcyxtn.c
    functionUses: 3
    functionsReached:
    - PORT_FreeArena
    linkageType: ''
    returnType: void
    signature: void CERT_DestroyOidSequence(CERTOidSequence *oidSeq)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CERT_FindCertExtension
      Src: /src/nss/lib/certdb/polcyxtn.c:658,1
    - Dst: CERT_DecodeOidSequence
      Src: /src/nss/lib/certdb/polcyxtn.c:663,1
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/certdb/polcyxtn.c:672,1
    - Dst: CERT_DestroyOidSequence
      Src: /src/nss/lib/certdb/polcyxtn.c:688,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certdb/polcyxtn.c:691,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 1
    argNames:
    - cert
    argTypes:
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 646
    functionDepth: 1
    functionLinenumber: 646
    functionLinenumberEnd: 694
    functionName: CERT_GovtApprovedBitSet
    functionSourceFile: /src/nss/lib/certdb/polcyxtn.c
    functionUses: 0
    functionsReached:
    - CERT_DecodeOidSequence
    - CERT_FindCertExtension
    - CERT_DestroyOidSequence
    - PORT_Free
    - SECOID_FindOIDTag
    linkageType: ''
    returnType: PRBool
    signature: PRBool CERT_GovtApprovedBitSet(CERTCertificate *cert)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/polcyxtn.c:703,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/certdb/polcyxtn.c:708,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - arena
    - constr
    - dest
    argTypes:
    - PLArenaPool*
    - CERTCertificatePolicyConstraints*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 696
    functionDepth: 0
    functionLinenumber: 696
    functionLinenumberEnd: 713
    functionName: CERT_EncodePolicyConstraintsExtension
    functionSourceFile: /src/nss/lib/certdb/polcyxtn.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SEC_ASN1EncodeItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_EncodePolicyConstraintsExtension(PLArenaPool *arena,\n
      \                                     CERTCertificatePolicyConstraints *constr,\n
      \                                     SECItem *dest)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/polcyxtn.c:722,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/certdb/polcyxtn.c:727,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - arena
    - mapping
    - dest
    argTypes:
    - PLArenaPool*
    - CERTCertificatePolicyMappings*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 715
    functionDepth: 0
    functionLinenumber: 715
    functionLinenumberEnd: 732
    functionName: CERT_EncodePolicyMappingExtension
    functionSourceFile: /src/nss/lib/certdb/polcyxtn.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SEC_ASN1EncodeItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_EncodePolicyMappingExtension(PLArenaPool *arena,\n
      \                                 CERTCertificatePolicyMappings *mapping,\n
      \                                 SECItem *dest)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/polcyxtn.c:740,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/certdb/polcyxtn.c:745,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - arena
    - info
    - dest
    argTypes:
    - PLArenaPool*
    - CERTPolicyInfo**
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 734
    functionDepth: 0
    functionLinenumber: 734
    functionLinenumberEnd: 750
    functionName: CERT_EncodeCertPoliciesExtension
    functionSourceFile: /src/nss/lib/certdb/polcyxtn.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SEC_ASN1EncodeItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_EncodeCertPoliciesExtension(PLArenaPool *arena, CERTPolicyInfo
      **info,\n                                 SECItem *dest)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/polcyxtn.c:757,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/certdb/polcyxtn.c:762,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - arena
    - notice
    - dest
    argTypes:
    - PLArenaPool*
    - CERTUserNotice*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 752
    functionDepth: 0
    functionLinenumber: 752
    functionLinenumberEnd: 768
    functionName: CERT_EncodeUserNotice
    functionSourceFile: /src/nss/lib/certdb/polcyxtn.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - SEC_ASN1EncodeItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERT_EncodeUserNotice(PLArenaPool *arena, CERTUserNotice
      *notice, SECItem *dest)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/polcyxtn.c:776,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/certdb/polcyxtn.c:781,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - arena
    - reference
    - dest
    argTypes:
    - PLArenaPool*
    - CERTNoticeReference*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 787
    functionName: CERT_EncodeNoticeReference
    functionSourceFile: /src/nss/lib/certdb/polcyxtn.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - SEC_ASN1EncodeItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_EncodeNoticeReference(PLArenaPool *arena, CERTNoticeReference
      *reference,\n                           SECItem *dest)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/polcyxtn.c:796,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/certdb/polcyxtn.c:801,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - arena
    - certInhibitAny
    - dest
    argTypes:
    - PLArenaPool*
    - CERTCertificateInhibitAny*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 789
    functionDepth: 0
    functionLinenumber: 789
    functionLinenumberEnd: 806
    functionName: CERT_EncodeInhibitAnyExtension
    functionSourceFile: /src/nss/lib/certdb/polcyxtn.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SEC_ASN1EncodeItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_EncodeInhibitAnyExtension(PLArenaPool *arena,\n                               CERTCertificateInhibitAny
      *certInhibitAny,\n                               SECItem *dest)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cert_FindExtensionByOID
      Src: /src/nss/lib/certdb/certv3.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cert
    - oid
    - value
    argTypes:
    - CERTCertificate*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 21
    functionName: CERT_FindCertExtensionByOID
    functionSourceFile: /src/nss/lib/certdb/certv3.c
    functionUses: 1
    functionsReached:
    - cert_FindExtensionByOID
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERT_FindCertExtensionByOID(CERTCertificate *cert, SECItem
      *oid, SECItem *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cert_FindExtension
      Src: /src/nss/lib/certdb/certv3.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cert
    - tag
    - value
    argTypes:
    - CERTCertificate*
    - int
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 23
    functionDepth: 3
    functionLinenumber: 23
    functionLinenumberEnd: 27
    functionName: CERT_FindCertExtension
    functionSourceFile: /src/nss/lib/certdb/certv3.c
    functionUses: 12
    functionsReached:
    - cert_FindExtension
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERT_FindCertExtension(const CERTCertificate *cert, int tag,
      SECItem *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_SetUInteger
      Src: /src/nss/lib/certdb/certv3.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - object
    - exts
    argTypes:
    - void*
    - CERTCertExtension**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 36
    functionName: SetExts
    functionSourceFile: /src/nss/lib/certdb/certv3.c
    functionUses: 0
    functionsReached:
    - DER_SetUInteger
    linkageType: ''
    returnType: void
    signature: void SetExts(void *object, CERTCertExtension **exts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cert_StartExtensions
      Src: /src/nss/lib/certdb/certv3.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cert
    argTypes:
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: CERT_StartCertExtensions
    functionSourceFile: /src/nss/lib/certdb/certv3.c
    functionUses: 3
    functionsReached:
    - cert_StartExtensions
    linkageType: ''
    returnType: void
    signature: 'void *

      CERT_StartCertExtensions(CERTCertificate *cert)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CERT_FindBitStringExtension
      Src: /src/nss/lib/certdb/certv3.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cert
    - retItem
    argTypes:
    - CERTCertificate*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 47
    functionDepth: 4
    functionLinenumber: 47
    functionLinenumberEnd: 53
    functionName: CERT_FindNSCertTypeExtension
    functionSourceFile: /src/nss/lib/certdb/certv3.c
    functionUses: 0
    functionsReached:
    - CERT_FindBitStringExtension
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERT_FindNSCertTypeExtension(CERTCertificate *cert, SECItem
      *retItem)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/certdb/certv3.c:69,1
    - Dst: cert_FindExtension
      Src: /src/nss/lib/certdb/certv3.c:75,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/certdb/certv3.c:80,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/certdb/certv3.c:81,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/certdb/certv3.c:87,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/certdb/certv3.c:92,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certdb/certv3.c:97,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certdb/certv3.c:101,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 2
    argNames:
    - cert
    - oidtag
    argTypes:
    - CERTCertificate*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 58
    functionDepth: 3
    functionLinenumber: 58
    functionLinenumberEnd: 105
    functionName: CERT_FindNSStringExtension
    functionSourceFile: /src/nss/lib/certdb/certv3.c
    functionUses: 1
    functionsReached:
    - PORT_Alloc
    - cert_FindExtension
    - PORT_Memcpy
    - PORT_NewArena
    - PORT_FreeArena
    - PORT_Free
    - SEC_QuickDERDecodeItem
    - SEC_ASN1_GET
    linkageType: ''
    returnType: char
    signature: 'char *

      CERT_FindNSStringExtension(CERTCertificate *cert, int oidtag)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CERT_FindBitStringExtension
      Src: /src/nss/lib/certdb/certv3.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cert
    - retItem
    argTypes:
    - CERTCertificate*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 110
    functionDepth: 4
    functionLinenumber: 110
    functionLinenumberEnd: 116
    functionName: CERT_FindKeyUsageExtension
    functionSourceFile: /src/nss/lib/certdb/certv3.c
    functionUses: 0
    functionsReached:
    - CERT_FindBitStringExtension
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERT_FindKeyUsageExtension(CERTCertificate *cert, SECItem
      *retItem)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cert_FindExtension
      Src: /src/nss/lib/certdb/certv3.c:129,1
    - Dst: PORT_InitCheapArena
      Src: /src/nss/lib/certdb/certv3.c:133,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/certdb/certv3.c:134,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/certdb/certv3.c:135,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/certdb/certv3.c:138,1
    - Dst: PORT_DestroyCheapArena
      Src: /src/nss/lib/certdb/certv3.c:140,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/certdb/certv3.c:142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - cert
    - retItem
    argTypes:
    - CERTCertificate*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 121
    functionDepth: 3
    functionLinenumber: 121
    functionLinenumberEnd: 144
    functionName: CERT_FindSubjectKeyIDExtension
    functionSourceFile: /src/nss/lib/certdb/certv3.c
    functionUses: 4
    functionsReached:
    - cert_FindExtension
    - SECITEM_CopyItem
    - SEC_QuickDERDecodeItem
    - PORT_InitCheapArena
    - SEC_ASN1_GET
    - PORT_DestroyCheapArena
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERT_FindSubjectKeyIDExtension(CERTCertificate *cert, SECItem
      *retItem)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cert_FindExtension
      Src: /src/nss/lib/certdb/certv3.c:156,1
    - Dst: CERT_DecodeBasicConstraintValue
      Src: /src/nss/lib/certdb/certv3.c:162,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certdb/certv3.c:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - cert
    - value
    argTypes:
    - CERTCertificate*
    - CERTBasicConstraints*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 146
    functionDepth: 3
    functionLinenumber: 146
    functionLinenumberEnd: 169
    functionName: CERT_FindBasicConstraintExten
    functionSourceFile: /src/nss/lib/certdb/certv3.c
    functionUses: 3
    functionsReached:
    - PORT_Free
    - cert_FindExtension
    - CERT_DecodeBasicConstraintValue
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_FindBasicConstraintExten(CERTCertificate *cert,\n                              CERTBasicConstraints
      *value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cert_FindExtension
      Src: /src/nss/lib/certdb/certv3.c:181,1
    - Dst: CERT_DecodeAuthKeyID
      Src: /src/nss/lib/certdb/certv3.c:187,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certdb/certv3.c:189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - arena
    - cert
    argTypes:
    - PLArenaPool*
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 171
    functionDepth: 5
    functionLinenumber: 171
    functionLinenumberEnd: 193
    functionName: CERT_FindAuthKeyIDExten
    functionSourceFile: /src/nss/lib/certdb/certv3.c
    functionUses: 1
    functionsReached:
    - PORT_Free
    - cert_FindExtension
    - CERT_DecodeAuthKeyID
    linkageType: ''
    returnType: CERTAuthKeyID
    signature: 'CERTAuthKeyID *

      CERT_FindAuthKeyIDExten(PLArenaPool *arena, CERTCertificate *cert)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CERT_FindKeyUsageExtension
      Src: /src/nss/lib/certdb/certv3.c:212,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/certdb/certv3.c:214,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/certv3.c:217,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certdb/certv3.c:220,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - cert
    - usage
    argTypes:
    - CERTCertificate*
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 195
    functionDepth: 5
    functionLinenumber: 195
    functionLinenumberEnd: 222
    functionName: CERT_CheckCertUsage
    functionSourceFile: /src/nss/lib/certdb/certv3.c
    functionUses: 4
    functionsReached:
    - PORT_Free
    - PORT_SetError
    - PORT_GetError
    - CERT_FindKeyUsageExtension
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERT_CheckCertUsage(CERTCertificate *cert, unsigned char
      usage)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - status
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: GEN_BREAK
    functionSourceFile: /src/nss/lib/certdb/xbsconst.c
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEN_BREAK(status)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memset
      Src: /src/nss/lib/certdb/xbsconst.c:53,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/xbsconst.c:55,1
    - Dst: GEN_BREAK
      Src: /src/nss/lib/certdb/xbsconst.c:56,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/certdb/xbsconst.c:69,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/xbsconst.c:71,1
    - Dst: GEN_BREAK
      Src: /src/nss/lib/certdb/xbsconst.c:72,1
    - Dst: SEC_ASN1EncodeUnsignedInteger
      Src: /src/nss/lib/certdb/xbsconst.c:74,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/xbsconst.c:77,1
    - Dst: GEN_BREAK
      Src: /src/nss/lib/certdb/xbsconst.c:78,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/certdb/xbsconst.c:81,1
    - Dst: GEN_BREAK
      Src: /src/nss/lib/certdb/xbsconst.c:83,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certdb/xbsconst.c:87,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - arena
    - value
    - encodedValue
    argTypes:
    - PLArenaPool*
    - CERTBasicConstraints*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 89
    functionName: CERT_EncodeBasicConstraintValue
    functionSourceFile: /src/nss/lib/certdb/xbsconst.c
    functionUses: 0
    functionsReached:
    - SEC_ASN1EncodeItem
    - PORT_NewArena
    - PORT_FreeArena
    - SEC_ASN1EncodeUnsignedInteger
    - PORT_SetError
    - PORT_Memset
    - GEN_BREAK
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_EncodeBasicConstraintValue(PLArenaPool *arena, CERTBasicConstraints
      *value,\n                                SECItem *encodedValue)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memset
      Src: /src/nss/lib/certdb/xbsconst.c:100,1
    - Dst: PORT_InitCheapArena
      Src: /src/nss/lib/certdb/xbsconst.c:107,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/certdb/xbsconst.c:109,1
    - Dst: DER_GetInteger
      Src: /src/nss/lib/certdb/xbsconst.c:129,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/xbsconst.c:131,1
    - Dst: GEN_BREAK
      Src: /src/nss/lib/certdb/xbsconst.c:132,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/xbsconst.c:138,1
    - Dst: GEN_BREAK
      Src: /src/nss/lib/certdb/xbsconst.c:139,1
    - Dst: PORT_DestroyCheapArena
      Src: /src/nss/lib/certdb/xbsconst.c:144,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 2
    argNames:
    - value
    - encodedValue
    argTypes:
    - CERTBasicConstraints*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 146
    functionName: CERT_DecodeBasicConstraintValue
    functionSourceFile: /src/nss/lib/certdb/xbsconst.c
    functionUses: 2
    functionsReached:
    - PORT_SetError
    - SEC_QuickDERDecodeItem
    - PORT_InitCheapArena
    - PORT_Memset
    - GEN_BREAK
    - PORT_DestroyCheapArena
    - DER_GetInteger
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_DecodeBasicConstraintValue(CERTBasicConstraints *value,\n
      \                               const SECItem *encodedValue)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CERT_FindCertByNickname
      Src: /src/nss/lib/certdb/stanpcertdb.c:45,1
    - Dst: SECITEM_ItemsAreEqual
      Src: /src/nss/lib/certdb/stanpcertdb.c:51,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/certdb/stanpcertdb.c:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - nickname
    - derSubject
    - handle
    argTypes:
    - char*
    - SECItem*
    - CERTCertDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 54
    functionName: SEC_CertNicknameConflict
    functionSourceFile: /src/nss/lib/certdb/stanpcertdb.c
    functionUses: 1
    functionsReached:
    - CERT_FindCertByNickname
    - SECITEM_ItemsAreEqual
    - CERT_DestroyCertificate
    linkageType: ''
    returnType: PRBool
    signature: "PRBool SEC_CertNicknameConflict(const char *nickname, const SECItem
      *derSubject,\n                         CERTCertDBHandle *handle)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: STAN_GetDefaultTrustDomain
      Src: /src/nss/lib/certdb/stanpcertdb.c:60,1
    - Dst: STAN_GetNSSCertificate
      Src: /src/nss/lib/certdb/stanpcertdb.c:61,1
    - Dst: nssTrust_GetCERTCertTrustForCert
      Src: /src/nss/lib/certdb/stanpcertdb.c:69,1
    - Dst: nssTrustDomain_FindTrustForCertificate
      Src: /src/nss/lib/certdb/stanpcertdb.c:71,1
    - Dst: STAN_DeleteCertTrustMatchingSlot
      Src: /src/nss/lib/certdb/stanpcertdb.c:73,1
    - Dst: CERT_MapStanError
      Src: /src/nss/lib/certdb/stanpcertdb.c:75,1
    - Dst: nssTrust_Destroy
      Src: /src/nss/lib/certdb/stanpcertdb.c:78,1
    - Dst: NSSCertificate_DeleteStoredObject
      Src: /src/nss/lib/certdb/stanpcertdb.c:83,1
    - Dst: nssTrustDomain_LockCertCache
      Src: /src/nss/lib/certdb/stanpcertdb.c:86,1
    - Dst: nssTrustDomain_RemoveCertFromCacheLOCKED
      Src: /src/nss/lib/certdb/stanpcertdb.c:87,1
    - Dst: nssTrustDomain_UnlockCertCache
      Src: /src/nss/lib/certdb/stanpcertdb.c:88,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - cert
    argTypes:
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 56
    functionDepth: 5
    functionLinenumber: 56
    functionLinenumberEnd: 91
    functionName: SEC_DeletePermCertificate
    functionSourceFile: /src/nss/lib/certdb/stanpcertdb.c
    functionUses: 3
    functionsReached:
    - nssTrustDomain_RemoveCertFromCacheLOCKED
    - STAN_GetNSSCertificate
    - STAN_GetDefaultTrustDomain
    - nssTrust_GetCERTCertTrustForCert
    - NSSCertificate_DeleteStoredObject
    - CERT_MapStanError
    - nssTrust_Destroy
    - nssTrustDomain_LockCertCache
    - STAN_DeleteCertTrustMatchingSlot
    - nssTrustDomain_UnlockCertCache
    - nssTrustDomain_FindTrustForCertificate
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SEC_DeletePermCertificate(CERTCertificate *cert)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CERT_LockCertTrust
      Src: /src/nss/lib/certdb/stanpcertdb.c:97,1
    - Dst: CERT_UnlockCertTrust
      Src: /src/nss/lib/certdb/stanpcertdb.c:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - cert
    - trust
    argTypes:
    - CERTCertificate*
    - CERTCertTrust*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 106
    functionName: CERT_GetCertTrust
    functionSourceFile: /src/nss/lib/certdb/stanpcertdb.c
    functionUses: 17
    functionsReached:
    - CERT_LockCertTrust
    - CERT_UnlockCertTrust
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERT_GetCertTrust(const CERTCertificate *cert, CERTCertTrust
      *trust)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 151
    functionName: STAN_MAP_ERROR
    functionSourceFile: /src/nss/lib/certdb/stanpcertdb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STAN_MAP_ERROR(x, y)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NSS_GetErrorStack
      Src: /src/nss/lib/certdb/stanpcertdb.c:165,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/stanpcertdb.c:167,1
    - Dst: PK11_MapError
      Src: /src/nss/lib/certdb/stanpcertdb.c:178,1
    - Dst: STAN_MAP_ERROR
      Src: /src/nss/lib/certdb/stanpcertdb.c:180,1
    - Dst: STAN_MAP_ERROR
      Src: /src/nss/lib/certdb/stanpcertdb.c:181,1
    - Dst: STAN_MAP_ERROR
      Src: /src/nss/lib/certdb/stanpcertdb.c:182,1
    - Dst: STAN_MAP_ERROR
      Src: /src/nss/lib/certdb/stanpcertdb.c:183,1
    - Dst: STAN_MAP_ERROR
      Src: /src/nss/lib/certdb/stanpcertdb.c:184,1
    - Dst: STAN_MAP_ERROR
      Src: /src/nss/lib/certdb/stanpcertdb.c:185,1
    - Dst: STAN_MAP_ERROR
      Src: /src/nss/lib/certdb/stanpcertdb.c:186,1
    - Dst: STAN_MAP_ERROR
      Src: /src/nss/lib/certdb/stanpcertdb.c:187,1
    - Dst: STAN_MAP_ERROR
      Src: /src/nss/lib/certdb/stanpcertdb.c:188,1
    - Dst: STAN_MAP_ERROR
      Src: /src/nss/lib/certdb/stanpcertdb.c:190,1
    - Dst: STAN_MAP_ERROR
      Src: /src/nss/lib/certdb/stanpcertdb.c:191,1
    - Dst: STAN_MAP_ERROR
      Src: /src/nss/lib/certdb/stanpcertdb.c:192,1
    - Dst: STAN_MAP_ERROR
      Src: /src/nss/lib/certdb/stanpcertdb.c:195,1
    - Dst: STAN_MAP_ERROR
      Src: /src/nss/lib/certdb/stanpcertdb.c:196,1
    - Dst: STAN_MAP_ERROR
      Src: /src/nss/lib/certdb/stanpcertdb.c:197,1
    - Dst: STAN_MAP_ERROR
      Src: /src/nss/lib/certdb/stanpcertdb.c:198,1
    - Dst: STAN_MAP_ERROR
      Src: /src/nss/lib/certdb/stanpcertdb.c:199,1
    - Dst: STAN_MAP_ERROR
      Src: /src/nss/lib/certdb/stanpcertdb.c:200,1
    - Dst: STAN_MAP_ERROR
      Src: /src/nss/lib/certdb/stanpcertdb.c:201,1
    - Dst: STAN_MAP_ERROR
      Src: /src/nss/lib/certdb/stanpcertdb.c:203,1
    - Dst: STAN_MAP_ERROR
      Src: /src/nss/lib/certdb/stanpcertdb.c:205,1
    - Dst: STAN_MAP_ERROR
      Src: /src/nss/lib/certdb/stanpcertdb.c:208,1
    - Dst: STAN_MAP_ERROR
      Src: /src/nss/lib/certdb/stanpcertdb.c:209,1
    - Dst: STAN_MAP_ERROR
      Src: /src/nss/lib/certdb/stanpcertdb.c:210,1
    - Dst: STAN_MAP_ERROR
      Src: /src/nss/lib/certdb/stanpcertdb.c:211,1
    - Dst: STAN_MAP_ERROR
      Src: /src/nss/lib/certdb/stanpcertdb.c:212,1
    - Dst: STAN_MAP_ERROR
      Src: /src/nss/lib/certdb/stanpcertdb.c:213,1
    - Dst: STAN_MAP_ERROR
      Src: /src/nss/lib/certdb/stanpcertdb.c:214,1
    - Dst: STAN_MAP_ERROR
      Src: /src/nss/lib/certdb/stanpcertdb.c:215,1
    - Dst: STAN_MAP_ERROR
      Src: /src/nss/lib/certdb/stanpcertdb.c:216,1
    - Dst: STAN_MAP_ERROR
      Src: /src/nss/lib/certdb/stanpcertdb.c:217,1
    - Dst: STAN_MAP_ERROR
      Src: /src/nss/lib/certdb/stanpcertdb.c:218,1
    - Dst: STAN_MAP_ERROR
      Src: /src/nss/lib/certdb/stanpcertdb.c:219,1
    - Dst: STAN_MAP_ERROR
      Src: /src/nss/lib/certdb/stanpcertdb.c:220,1
    - Dst: STAN_MAP_ERROR
      Src: /src/nss/lib/certdb/stanpcertdb.c:221,1
    - Dst: STAN_MAP_ERROR
      Src: /src/nss/lib/certdb/stanpcertdb.c:222,1
    - Dst: STAN_MAP_ERROR
      Src: /src/nss/lib/certdb/stanpcertdb.c:223,1
    - Dst: STAN_MAP_ERROR
      Src: /src/nss/lib/certdb/stanpcertdb.c:224,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/stanpcertdb.c:226,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 54
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 227
    functionName: CERT_MapStanError
    functionSourceFile: /src/nss/lib/certdb/stanpcertdb.c
    functionUses: 3
    functionsReached:
    - NSS_GetErrorStack
    - PORT_SetError
    - STAN_MAP_ERROR
    - PK11_MapError
    linkageType: ''
    returnType: void
    signature: void CERT_MapStanError()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STAN_ChangeCertTrust
      Src: /src/nss/lib/certdb/stanpcertdb.c:236,1
    - Dst: CERT_MapStanError
      Src: /src/nss/lib/certdb/stanpcertdb.c:239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - handle
    - cert
    - trust
    argTypes:
    - CERTCertDBHandle*
    - CERTCertificate*
    - CERTCertTrust*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 229
    functionDepth: 5
    functionLinenumber: 229
    functionLinenumberEnd: 242
    functionName: CERT_ChangeCertTrust
    functionSourceFile: /src/nss/lib/certdb/stanpcertdb.c
    functionUses: 2
    functionsReached:
    - CERT_MapStanError
    - STAN_ChangeCertTrust
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_ChangeCertTrust(CERTCertDBHandle *handle, CERTCertificate
      *cert,\n                     CERTCertTrust *trust)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: STAN_GetNSSCertificate
      Src: /src/nss/lib/certdb/stanpcertdb.c:255,1
    - Dst: CERT_MapStanError
      Src: /src/nss/lib/certdb/stanpcertdb.c:262,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/stanpcertdb.c:268,1
    - Dst: nssCertificate_GetNickname
      Src: /src/nss/lib/certdb/stanpcertdb.c:271,1
    - Dst: strcmp
      Src: /src/nss/lib/certdb/stanpcertdb.c:272,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/certdb/stanpcertdb.c:275,1
    - Dst: nssUTF8_Duplicate
      Src: /src/nss/lib/certdb/stanpcertdb.c:280,1
    - Dst: nssCertificateStore_Lock
      Src: /src/nss/lib/certdb/stanpcertdb.c:283,1
    - Dst: nssCertificateStore_RemoveCertLOCKED
      Src: /src/nss/lib/certdb/stanpcertdb.c:284,1
    - Dst: nssCertificateStore_Unlock
      Src: /src/nss/lib/certdb/stanpcertdb.c:285,1
    - Dst: pk11_mkcertKeyID
      Src: /src/nss/lib/certdb/stanpcertdb.c:291,1
    - Dst: nssItem_Create
      Src: /src/nss/lib/certdb/stanpcertdb.c:293,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/certdb/stanpcertdb.c:294,1
    - Dst: PK11_GetInternalKeySlot
      Src: /src/nss/lib/certdb/stanpcertdb.c:300,1
    - Dst: PK11Slot_GetNSSToken
      Src: /src/nss/lib/certdb/stanpcertdb.c:301,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/certdb/stanpcertdb.c:303,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/stanpcertdb.c:304,1
    - Dst: nssToken_ImportCertificate
      Src: /src/nss/lib/certdb/stanpcertdb.c:307,1
    - Dst: nssToken_Destroy
      Src: /src/nss/lib/certdb/stanpcertdb.c:310,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/certdb/stanpcertdb.c:311,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/certdb/stanpcertdb.c:313,1
    - Dst: NSS_GetError
      Src: /src/nss/lib/certdb/stanpcertdb.c:315,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/stanpcertdb.c:316,1
    - Dst: nssPKIObject_AddInstance
      Src: /src/nss/lib/certdb/stanpcertdb.c:320,1
    - Dst: nssTrustDomain_AddCertsToCache
      Src: /src/nss/lib/certdb/stanpcertdb.c:321,1
    - Dst: STAN_GetDefaultTrustDomain
      Src: /src/nss/lib/certdb/stanpcertdb.c:321,1
    - Dst: CERT_LockCertTempPerm
      Src: /src/nss/lib/certdb/stanpcertdb.c:323,1
    - Dst: CERT_UnlockCertTempPerm
      Src: /src/nss/lib/certdb/stanpcertdb.c:325,1
    - Dst: STAN_GetCERTCertificateOrRelease
      Src: /src/nss/lib/certdb/stanpcertdb.c:326,1
    - Dst: CERT_MapStanError
      Src: /src/nss/lib/certdb/stanpcertdb.c:328,1
    - Dst: CERT_LockCertTempPerm
      Src: /src/nss/lib/certdb/stanpcertdb.c:331,1
    - Dst: CERT_UnlockCertTempPerm
      Src: /src/nss/lib/certdb/stanpcertdb.c:334,1
    - Dst: STAN_ChangeCertTrust
      Src: /src/nss/lib/certdb/stanpcertdb.c:338,1
    - Dst: CERT_MapStanError
      Src: /src/nss/lib/certdb/stanpcertdb.c:342,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 71
    argCount: 3
    argNames:
    - cert
    - nickname
    - trust
    argTypes:
    - CERTCertificate*
    - char*
    - CERTCertTrust*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 246
    functionDepth: 6
    functionLinenumber: 246
    functionLinenumberEnd: 345
    functionName: __CERT_AddTempCertToPerm
    functionSourceFile: /src/nss/lib/certdb/stanpcertdb.c
    functionUses: 0
    functionsReached:
    - PK11_GetInternalKeySlot
    - CERT_UnlockCertTempPerm
    - STAN_ChangeCertTrust
    - STAN_GetDefaultTrustDomain
    - nssItem_Create
    - CERT_MapStanError
    - nss_ZFreeIf
    - STAN_GetCERTCertificateOrRelease
    - CERT_LockCertTempPerm
    - nssUTF8_Duplicate
    - nssToken_Destroy
    - pk11_mkcertKeyID
    - PORT_SetError
    - nssCertificateStore_Lock
    - PK11Slot_GetNSSToken
    - SECITEM_FreeItem
    - STAN_GetNSSCertificate
    - nssPKIObject_AddInstance
    - nssCertificateStore_RemoveCertLOCKED
    - nssCertificate_GetNickname
    - PK11_FreeSlot
    - strcmp
    - nssToken_ImportCertificate
    - NSS_GetError
    - nssCertificateStore_Unlock
    - nssTrustDomain_AddCertsToCache
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus __CERT_AddTempCertToPerm(CERTCertificate *cert, char *nickname,\n
      \                        CERTCertTrust *trust)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __CERT_AddTempCertToPerm
      Src: /src/nss/lib/certdb/stanpcertdb.c:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cert
    - nickname
    - trust
    argTypes:
    - CERTCertificate*
    - char*
    - CERTCertTrust*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 347
    functionDepth: 7
    functionLinenumber: 347
    functionLinenumberEnd: 352
    functionName: CERT_AddTempCertToPerm
    functionSourceFile: /src/nss/lib/certdb/stanpcertdb.c
    functionUses: 3
    functionsReached:
    - __CERT_AddTempCertToPerm
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_AddTempCertToPerm(CERTCertificate *cert, char *nickname,\n
      \                      CERTCertTrust *trust)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: STAN_GetDefaultCryptoContext
      Src: /src/nss/lib/certdb/stanpcertdb.c:362,1
    - Dst: STAN_GetDefaultTrustDomain
      Src: /src/nss/lib/certdb/stanpcertdb.c:363,1
    - Dst: NSSITEM_FROM_SECITEM
      Src: /src/nss/lib/certdb/stanpcertdb.c:366,1
    - Dst: NSSCryptoContext_FindCertificateByEncodedCertificate
      Src: /src/nss/lib/certdb/stanpcertdb.c:368,1
    - Dst: NSSTrustDomain_FindCertificateByEncodedCertificate
      Src: /src/nss/lib/certdb/stanpcertdb.c:372,1
    - Dst: nssItem_Equal
      Src: /src/nss/lib/certdb/stanpcertdb.c:381,1
    - Dst: nssCertificate_Destroy
      Src: /src/nss/lib/certdb/stanpcertdb.c:382,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/stanpcertdb.c:383,1
    - Dst: STAN_GetCERTCertificateOrRelease
      Src: /src/nss/lib/certdb/stanpcertdb.c:386,1
    - Dst: CERT_MapStanError
      Src: /src/nss/lib/certdb/stanpcertdb.c:388,1
    - Dst: nssPKIObject_Create
      Src: /src/nss/lib/certdb/stanpcertdb.c:394,1
    - Dst: CERT_MapStanError
      Src: /src/nss/lib/certdb/stanpcertdb.c:396,1
    - Dst: nss_ZNEW
      Src: /src/nss/lib/certdb/stanpcertdb.c:399,1
    - Dst: CERT_MapStanError
      Src: /src/nss/lib/certdb/stanpcertdb.c:401,1
    - Dst: nssPKIObject_Destroy
      Src: /src/nss/lib/certdb/stanpcertdb.c:402,1
    - Dst: nssItem_Create
      Src: /src/nss/lib/certdb/stanpcertdb.c:407,1
    - Dst: NSSITEM_FROM_SECITEM
      Src: /src/nss/lib/certdb/stanpcertdb.c:410,1
    - Dst: STAN_GetCERTCertificate
      Src: /src/nss/lib/certdb/stanpcertdb.c:417,1
    - Dst: CERT_MapStanError
      Src: /src/nss/lib/certdb/stanpcertdb.c:419,1
    - Dst: nssItem_Create
      Src: /src/nss/lib/certdb/stanpcertdb.c:422,1
    - Dst: nssItem_Create
      Src: /src/nss/lib/certdb/stanpcertdb.c:424,1
    - Dst: CERT_SerialNumberFromDERCert
      Src: /src/nss/lib/certdb/stanpcertdb.c:430,1
    - Dst: nssItem_Create
      Src: /src/nss/lib/certdb/stanpcertdb.c:433,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certdb/stanpcertdb.c:435,1
    - Dst: nssUTF8_Create
      Src: /src/nss/lib/certdb/stanpcertdb.c:439,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/certdb/stanpcertdb.c:440,1
    - Dst: nssUTF8_Create
      Src: /src/nss/lib/certdb/stanpcertdb.c:443,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/certdb/stanpcertdb.c:445,1
    - Dst: NSSCryptoContext_FindOrImportCertificate
      Src: /src/nss/lib/certdb/stanpcertdb.c:448,1
    - Dst: CERT_MapStanError
      Src: /src/nss/lib/certdb/stanpcertdb.c:450,1
    - Dst: NSSCertificate_Destroy
      Src: /src/nss/lib/certdb/stanpcertdb.c:454,1
    - Dst: STAN_GetCERTCertificateOrRelease
      Src: /src/nss/lib/certdb/stanpcertdb.c:457,1
    - Dst: CERT_MapStanError
      Src: /src/nss/lib/certdb/stanpcertdb.c:460,1
    - Dst: CERT_LockCertTempPerm
      Src: /src/nss/lib/certdb/stanpcertdb.c:464,1
    - Dst: CERT_UnlockCertTempPerm
      Src: /src/nss/lib/certdb/stanpcertdb.c:467,1
    - Dst: nssPKIObject_Destroy
      Src: /src/nss/lib/certdb/stanpcertdb.c:471,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 80
    argCount: 5
    argNames:
    - handle
    - derCert
    - nickname
    - isperm
    - copyDER
    argTypes:
    - CERTCertDBHandle*
    - SECItem*
    - char*
    - PRBool
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 354
    functionDepth: 7
    functionLinenumber: 354
    functionLinenumberEnd: 473
    functionName: CERT_NewTempCertificate
    functionSourceFile: /src/nss/lib/certdb/stanpcertdb.c
    functionUses: 11
    functionsReached:
    - NSSCryptoContext_FindCertificateByEncodedCertificate
    - CERT_UnlockCertTempPerm
    - STAN_GetDefaultTrustDomain
    - NSSITEM_FROM_SECITEM
    - nssItem_Create
    - STAN_GetCERTCertificateOrRelease
    - CERT_MapStanError
    - nssPKIObject_Create
    - CERT_LockCertTempPerm
    - NSSCryptoContext_FindOrImportCertificate
    - NSSTrustDomain_FindCertificateByEncodedCertificate
    - PORT_SetError
    - NSSCertificate_Destroy
    - nssCertificate_Destroy
    - nssItem_Equal
    - nssUTF8_Create
    - PORT_Strlen
    - CERT_SerialNumberFromDERCert
    - PORT_Free
    - nss_ZNEW
    - STAN_GetDefaultCryptoContext
    - STAN_GetCERTCertificate
    - nssPKIObject_Destroy
    linkageType: ''
    returnType: CERTCertificate
    signature: "CERTCertificate *\nCERT_NewTempCertificate(CERTCertDBHandle *handle,
      SECItem *derCert,\n                        char *nickname, PRBool isperm, PRBool
      copyDER)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CERT_NewTempCertificate
      Src: /src/nss/lib/certdb/stanpcertdb.c:480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - handle
    - derCert
    - nickname
    - isperm
    - copyDER
    argTypes:
    - CERTCertDBHandle*
    - SECItem*
    - char*
    - PRBool
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 476
    functionDepth: 8
    functionLinenumber: 476
    functionLinenumberEnd: 481
    functionName: __CERT_NewTempCertificate
    functionSourceFile: /src/nss/lib/certdb/stanpcertdb.c
    functionUses: 0
    functionsReached:
    - CERT_NewTempCertificate
    linkageType: ''
    returnType: CERTCertificate
    signature: "CERTCertificate *\n__CERT_NewTempCertificate(CERTCertDBHandle *handle,
      SECItem *derCert,\n                          char *nickname, PRBool isperm,
      PRBool copyDER)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_FindCertByIssuerAndSN
      Src: /src/nss/lib/certdb/stanpcertdb.c:491,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/certdb/stanpcertdb.c:493,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - handle
    - issuerAndSN
    - wincx
    argTypes:
    - CERTCertDBHandle*
    - CERTIssuerAndSN*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 483
    functionDepth: 7
    functionLinenumber: 483
    functionLinenumberEnd: 497
    functionName: common_FindCertByIssuerAndSN
    functionSourceFile: /src/nss/lib/certdb/stanpcertdb.c
    functionUses: 0
    functionsReached:
    - PK11_FreeSlot
    - PK11_FindCertByIssuerAndSN
    linkageType: ''
    returnType: CERTCertificate
    signature: "CERTCertificate *\ncommon_FindCertByIssuerAndSN(CERTCertDBHandle *handle,\n
      \                            CERTIssuerAndSN *issuerAndSN,\n                             void
      *wincx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: common_FindCertByIssuerAndSN
      Src: /src/nss/lib/certdb/stanpcertdb.c:504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - issuerAndSN
    argTypes:
    - CERTCertDBHandle*
    - CERTIssuerAndSN*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 500
    functionDepth: 8
    functionLinenumber: 500
    functionLinenumberEnd: 505
    functionName: CERT_FindCertByIssuerAndSN
    functionSourceFile: /src/nss/lib/certdb/stanpcertdb.c
    functionUses: 0
    functionsReached:
    - common_FindCertByIssuerAndSN
    linkageType: ''
    returnType: CERTCertificate
    signature: "CERTCertificate *\nCERT_FindCertByIssuerAndSN(CERTCertDBHandle *handle,\n
      \                          CERTIssuerAndSN *issuerAndSN)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: common_FindCertByIssuerAndSN
      Src: /src/nss/lib/certdb/stanpcertdb.c:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - issuerAndSN
    - wincx
    argTypes:
    - CERTCertDBHandle*
    - CERTIssuerAndSN*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 508
    functionDepth: 8
    functionLinenumber: 508
    functionLinenumberEnd: 514
    functionName: CERT_FindCertByIssuerAndSNCX
    functionSourceFile: /src/nss/lib/certdb/stanpcertdb.c
    functionUses: 0
    functionsReached:
    - common_FindCertByIssuerAndSN
    linkageType: ''
    returnType: CERTCertificate
    signature: "CERTCertificate *\nCERT_FindCertByIssuerAndSNCX(CERTCertDBHandle *handle,\n
      \                            CERTIssuerAndSN *issuerAndSN,\n                             void
      *wincx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssCertificate_AddRef
      Src: /src/nss/lib/certdb/stanpcertdb.c:522,1
    - Dst: nssCertificate_AddRef
      Src: /src/nss/lib/certdb/stanpcertdb.c:524,1
    - Dst: nssCertificateArray_FindBestCertificate
      Src: /src/nss/lib/certdb/stanpcertdb.c:530,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - ct
    - cp
    argTypes:
    - NSSCertificate*
    - NSSCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 531
    functionName: get_best_temp_or_perm
    functionSourceFile: /src/nss/lib/certdb/stanpcertdb.c
    functionUses: 0
    functionsReached:
    - nssCertificateArray_FindBestCertificate
    - nssCertificate_AddRef
    linkageType: ''
    returnType: NSSCertificate
    signature: 'NSSCertificate *

      get_best_temp_or_perm(NSSCertificate *ct, NSSCertificate *cp)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NSSITEM_FROM_SECITEM
      Src: /src/nss/lib/certdb/stanpcertdb.c:540,1
    - Dst: STAN_GetDefaultCryptoContext
      Src: /src/nss/lib/certdb/stanpcertdb.c:542,1
    - Dst: NSSCryptoContext_FindBestCertificateBySubject
      Src: /src/nss/lib/certdb/stanpcertdb.c:543,1
    - Dst: NSSTrustDomain_FindBestCertificateBySubject
      Src: /src/nss/lib/certdb/stanpcertdb.c:545,1
    - Dst: get_best_temp_or_perm
      Src: /src/nss/lib/certdb/stanpcertdb.c:547,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/certdb/stanpcertdb.c:549,1
    - Dst: STAN_GetCERTCertificateOrRelease
      Src: /src/nss/lib/certdb/stanpcertdb.c:549,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/certdb/stanpcertdb.c:552,1
    - Dst: STAN_GetCERTCertificateOrRelease
      Src: /src/nss/lib/certdb/stanpcertdb.c:552,1
    - Dst: STAN_GetCERTCertificateOrRelease
      Src: /src/nss/lib/certdb/stanpcertdb.c:554,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - handle
    - name
    argTypes:
    - CERTCertDBHandle*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 533
    functionDepth: 1
    functionLinenumber: 533
    functionLinenumberEnd: 555
    functionName: CERT_FindCertByName
    functionSourceFile: /src/nss/lib/certdb/stanpcertdb.c
    functionUses: 4
    functionsReached:
    - NSSITEM_FROM_SECITEM
    - STAN_GetDefaultCryptoContext
    - get_best_temp_or_perm
    - NSSTrustDomain_FindBestCertificateBySubject
    - STAN_GetCERTCertificateOrRelease
    - CERT_DestroyCertificate
    - NSSCryptoContext_FindBestCertificateBySubject
    linkageType: ''
    returnType: CERTCertificate
    signature: 'CERTCertificate *

      CERT_FindCertByName(CERTCertDBHandle *handle, SECItem *name)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CERT_CreateSubjectCertList
      Src: /src/nss/lib/certdb/stanpcertdb.c:564,1
    - Dst: CERT_LIST_HEAD
      Src: /src/nss/lib/certdb/stanpcertdb.c:568,1
    - Dst: CERT_LIST_END
      Src: /src/nss/lib/certdb/stanpcertdb.c:569,1
    - Dst: SECITEM_ItemsAreEqual
      Src: /src/nss/lib/certdb/stanpcertdb.c:571,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/certdb/stanpcertdb.c:572,1
    - Dst: CERT_LIST_NEXT
      Src: /src/nss/lib/certdb/stanpcertdb.c:575,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/stanpcertdb.c:577,1
    - Dst: CERT_DestroyCertList
      Src: /src/nss/lib/certdb/stanpcertdb.c:580,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - handle
    - name
    - keyID
    argTypes:
    - CERTCertDBHandle*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 557
    functionDepth: 1
    functionLinenumber: 557
    functionLinenumberEnd: 582
    functionName: CERT_FindCertByKeyID
    functionSourceFile: /src/nss/lib/certdb/stanpcertdb.c
    functionUses: 0
    functionsReached:
    - CERT_LIST_NEXT
    - CERT_LIST_HEAD
    - SECITEM_ItemsAreEqual
    - CERT_CreateSubjectCertList
    - CERT_LIST_END
    - PORT_SetError
    - CERT_DupCertificate
    - CERT_DestroyCertList
    linkageType: ''
    returnType: CERTCertificate
    signature: 'CERTCertificate *

      CERT_FindCertByKeyID(CERTCertDBHandle *handle, SECItem *name, SECItem *keyID)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STAN_GetDefaultCryptoContext
      Src: /src/nss/lib/certdb/stanpcertdb.c:592,1
    - Dst: NSSCryptoContext_FindBestCertificateByNickname
      Src: /src/nss/lib/certdb/stanpcertdb.c:593,1
    - Dst: PK11_FindCertFromNickname
      Src: /src/nss/lib/certdb/stanpcertdb.c:595,1
    - Dst: get_best_temp_or_perm
      Src: /src/nss/lib/certdb/stanpcertdb.c:598,1
    - Dst: STAN_GetNSSCertificate
      Src: /src/nss/lib/certdb/stanpcertdb.c:598,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/certdb/stanpcertdb.c:599,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/certdb/stanpcertdb.c:601,1
    - Dst: STAN_GetCERTCertificateOrRelease
      Src: /src/nss/lib/certdb/stanpcertdb.c:601,1
    - Dst: STAN_GetCERTCertificateOrRelease
      Src: /src/nss/lib/certdb/stanpcertdb.c:606,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - handle
    - nickname
    argTypes:
    - CERTCertDBHandle*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 584
    functionDepth: 9
    functionLinenumber: 584
    functionLinenumberEnd: 607
    functionName: CERT_FindCertByNickname
    functionSourceFile: /src/nss/lib/certdb/stanpcertdb.c
    functionUses: 17
    functionsReached:
    - STAN_GetNSSCertificate
    - STAN_GetDefaultCryptoContext
    - get_best_temp_or_perm
    - STAN_GetCERTCertificateOrRelease
    - CERT_DestroyCertificate
    - NSSCryptoContext_FindBestCertificateByNickname
    - PK11_FindCertFromNickname
    linkageType: ''
    returnType: CERTCertificate
    signature: 'CERTCertificate *

      CERT_FindCertByNickname(CERTCertDBHandle *handle, const char *nickname)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NSSITEM_FROM_SECITEM
      Src: /src/nss/lib/certdb/stanpcertdb.c:615,1
    - Dst: STAN_GetDefaultCryptoContext
      Src: /src/nss/lib/certdb/stanpcertdb.c:616,1
    - Dst: NSSCryptoContext_FindCertificateByEncodedCertificate
      Src: /src/nss/lib/certdb/stanpcertdb.c:617,1
    - Dst: NSSTrustDomain_FindCertificateByEncodedCertificate
      Src: /src/nss/lib/certdb/stanpcertdb.c:619,1
    - Dst: STAN_GetCERTCertificateOrRelease
      Src: /src/nss/lib/certdb/stanpcertdb.c:624,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - handle
    - derCert
    argTypes:
    - CERTCertDBHandle*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 609
    functionDepth: 1
    functionLinenumber: 609
    functionLinenumberEnd: 625
    functionName: CERT_FindCertByDERCert
    functionSourceFile: /src/nss/lib/certdb/stanpcertdb.c
    functionUses: 4
    functionsReached:
    - NSSTrustDomain_FindCertificateByEncodedCertificate
    - NSSCryptoContext_FindCertificateByEncodedCertificate
    - NSSITEM_FROM_SECITEM
    - STAN_GetDefaultCryptoContext
    - STAN_GetCERTCertificateOrRelease
    linkageType: ''
    returnType: CERTCertificate
    signature: 'CERTCertificate *

      CERT_FindCertByDERCert(CERTCertDBHandle *handle, SECItem *derCert)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/stanpcertdb.c:640,1
    - Dst: STAN_GetDefaultCryptoContext
      Src: /src/nss/lib/certdb/stanpcertdb.c:651,1
    - Dst: NSSCryptoContext_FindBestCertificateByNickname
      Src: /src/nss/lib/certdb/stanpcertdb.c:652,1
    - Dst: PORT_Strchr
      Src: /src/nss/lib/certdb/stanpcertdb.c:654,1
    - Dst: CERT_FixupEmailAddr
      Src: /src/nss/lib/certdb/stanpcertdb.c:655,1
    - Dst: NSSCryptoContext_FindBestCertificateByEmail
      Src: /src/nss/lib/certdb/stanpcertdb.c:657,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certdb/stanpcertdb.c:659,1
    - Dst: PK11_FindCertFromNickname
      Src: /src/nss/lib/certdb/stanpcertdb.c:664,1
    - Dst: nssCertificate_GetDecoding
      Src: /src/nss/lib/certdb/stanpcertdb.c:669,1
    - Dst: nssDecodedCert*::matchUsage
      Src: /src/nss/lib/certdb/stanpcertdb.c:670,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/certdb/stanpcertdb.c:671,1
    - Dst: STAN_GetCERTCertificateOrRelease
      Src: /src/nss/lib/certdb/stanpcertdb.c:671,1
    - Dst: PK11_FindCertsFromNickname
      Src: /src/nss/lib/certdb/stanpcertdb.c:676,1
    - Dst: CERT_FilterCertListByUsage
      Src: /src/nss/lib/certdb/stanpcertdb.c:679,1
    - Dst: CERT_LIST_EMPTY
      Src: /src/nss/lib/certdb/stanpcertdb.c:680,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/certdb/stanpcertdb.c:681,1
    - Dst: CERT_LIST_HEAD
      Src: /src/nss/lib/certdb/stanpcertdb.c:681,1
    - Dst: CERT_DestroyCertList
      Src: /src/nss/lib/certdb/stanpcertdb.c:683,1
    - Dst: get_best_temp_or_perm
      Src: /src/nss/lib/certdb/stanpcertdb.c:688,1
    - Dst: STAN_GetNSSCertificate
      Src: /src/nss/lib/certdb/stanpcertdb.c:688,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/certdb/stanpcertdb.c:689,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/certdb/stanpcertdb.c:691,1
    - Dst: STAN_GetCERTCertificateOrRelease
      Src: /src/nss/lib/certdb/stanpcertdb.c:691,1
    - Dst: STAN_GetCERTCertificateOrRelease
      Src: /src/nss/lib/certdb/stanpcertdb.c:696,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 5
    argNames:
    - handle
    - name
    - anyUsage
    - lookingForUsage
    - wincx
    argTypes:
    - CERTCertDBHandle*
    - char*
    - PRBool
    - SECCertUsage
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 627
    functionDepth: 9
    functionLinenumber: 627
    functionLinenumberEnd: 697
    functionName: common_FindCertByNicknameOrEmailAddrForUsage
    functionSourceFile: /src/nss/lib/certdb/stanpcertdb.c
    functionUses: 0
    functionsReached:
    - PK11_FindCertsFromNickname
    - STAN_GetCERTCertificateOrRelease
    - CERT_FixupEmailAddr
    - CERT_DupCertificate
    - nssCertificate_GetDecoding
    - PORT_SetError
    - CERT_LIST_EMPTY
    - NSSCryptoContext_FindBestCertificateByNickname
    - PORT_Strchr
    - CERT_LIST_HEAD
    - STAN_GetNSSCertificate
    - NSSCryptoContext_FindBestCertificateByEmail
    - CERT_DestroyCertificate
    - PK11_FindCertFromNickname
    - CERT_DestroyCertList
    - nssDecodedCert*::matchUsage
    - PORT_Free
    - STAN_GetDefaultCryptoContext
    - get_best_temp_or_perm
    - CERT_FilterCertListByUsage
    linkageType: ''
    returnType: CERTCertificate
    signature: "CERTCertificate *\ncommon_FindCertByNicknameOrEmailAddrForUsage(CERTCertDBHandle
      *handle,\n                                             const char *name, PRBool
      anyUsage,\n                                             SECCertUsage lookingForUsage,\n
      \                                            void *wincx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: common_FindCertByNicknameOrEmailAddrForUsage
      Src: /src/nss/lib/certdb/stanpcertdb.c:702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - name
    argTypes:
    - CERTCertDBHandle*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 699
    functionDepth: 10
    functionLinenumber: 699
    functionLinenumberEnd: 704
    functionName: CERT_FindCertByNicknameOrEmailAddr
    functionSourceFile: /src/nss/lib/certdb/stanpcertdb.c
    functionUses: 10
    functionsReached:
    - common_FindCertByNicknameOrEmailAddrForUsage
    linkageType: ''
    returnType: CERTCertificate
    signature: 'CERTCertificate *

      CERT_FindCertByNicknameOrEmailAddr(CERTCertDBHandle *handle, const char *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: common_FindCertByNicknameOrEmailAddrForUsage
      Src: /src/nss/lib/certdb/stanpcertdb.c:710,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - name
    - wincx
    argTypes:
    - CERTCertDBHandle*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 706
    functionDepth: 10
    functionLinenumber: 706
    functionLinenumberEnd: 712
    functionName: CERT_FindCertByNicknameOrEmailAddrCX
    functionSourceFile: /src/nss/lib/certdb/stanpcertdb.c
    functionUses: 4
    functionsReached:
    - common_FindCertByNicknameOrEmailAddrForUsage
    linkageType: ''
    returnType: CERTCertificate
    signature: "CERTCertificate *\nCERT_FindCertByNicknameOrEmailAddrCX(CERTCertDBHandle
      *handle, const char *name,\n                                     void *wincx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: common_FindCertByNicknameOrEmailAddrForUsage
      Src: /src/nss/lib/certdb/stanpcertdb.c:719,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - name
    - lookingForUsage
    argTypes:
    - CERTCertDBHandle*
    - char*
    - SECCertUsage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 714
    functionDepth: 10
    functionLinenumber: 714
    functionLinenumberEnd: 721
    functionName: CERT_FindCertByNicknameOrEmailAddrForUsage
    functionSourceFile: /src/nss/lib/certdb/stanpcertdb.c
    functionUses: 0
    functionsReached:
    - common_FindCertByNicknameOrEmailAddrForUsage
    linkageType: ''
    returnType: CERTCertificate
    signature: "CERTCertificate *\nCERT_FindCertByNicknameOrEmailAddrForUsage(CERTCertDBHandle
      *handle,\n                                           const char *name,\n                                           SECCertUsage
      lookingForUsage)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: common_FindCertByNicknameOrEmailAddrForUsage
      Src: /src/nss/lib/certdb/stanpcertdb.c:729,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - handle
    - name
    - lookingForUsage
    - wincx
    argTypes:
    - CERTCertDBHandle*
    - char*
    - SECCertUsage
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 723
    functionDepth: 10
    functionLinenumber: 723
    functionLinenumberEnd: 731
    functionName: CERT_FindCertByNicknameOrEmailAddrForUsageCX
    functionSourceFile: /src/nss/lib/certdb/stanpcertdb.c
    functionUses: 0
    functionsReached:
    - common_FindCertByNicknameOrEmailAddrForUsage
    linkageType: ''
    returnType: CERTCertificate
    signature: "CERTCertificate *\nCERT_FindCertByNicknameOrEmailAddrForUsageCX(CERTCertDBHandle
      *handle,\n                                             const char *name,\n                                             SECCertUsage
      lookingForUsage,\n                                             void *wincx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CERT_CheckCertValidTimes
      Src: /src/nss/lib/certdb/stanpcertdb.c:739,1
    - Dst: CERT_AddCertToListSorted
      Src: /src/nss/lib/certdb/stanpcertdb.c:741,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/certdb/stanpcertdb.c:744,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/certdb/stanpcertdb.c:747,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - certList
    - cert
    - validOnly
    - sorttime
    argTypes:
    - CERTCertList*
    - CERTCertificate*
    - PRBool
    - PRTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 733
    functionDepth: 1
    functionLinenumber: 733
    functionLinenumberEnd: 749
    functionName: add_to_subject_list
    functionSourceFile: /src/nss/lib/certdb/stanpcertdb.c
    functionUses: 0
    functionsReached:
    - CERT_AddCertToListSorted
    - CERT_DestroyCertificate
    - CERT_CheckCertValidTimes
    linkageType: ''
    returnType: void
    signature: "void add_to_subject_list(CERTCertList *certList, CERTCertificate *cert,\n
      \                   PRBool validOnly, PRTime sorttime)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: STAN_GetDefaultCryptoContext
      Src: /src/nss/lib/certdb/stanpcertdb.c:762,1
    - Dst: NSSITEM_FROM_SECITEM
      Src: /src/nss/lib/certdb/stanpcertdb.c:763,1
    - Dst: NSSCryptoContext_FindCertificatesBySubject
      Src: /src/nss/lib/certdb/stanpcertdb.c:766,1
    - Dst: NSSTrustDomain_FindCertificatesBySubject
      Src: /src/nss/lib/certdb/stanpcertdb.c:767,1
    - Dst: CERT_NewCertList
      Src: /src/nss/lib/certdb/stanpcertdb.c:773,1
    - Dst: STAN_GetCERTCertificateOrRelease
      Src: /src/nss/lib/certdb/stanpcertdb.c:781,1
    - Dst: add_to_subject_list
      Src: /src/nss/lib/certdb/stanpcertdb.c:785,1
    - Dst: STAN_GetCERTCertificateOrRelease
      Src: /src/nss/lib/certdb/stanpcertdb.c:792,1
    - Dst: add_to_subject_list
      Src: /src/nss/lib/certdb/stanpcertdb.c:796,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/certdb/stanpcertdb.c:802,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/certdb/stanpcertdb.c:803,1
    - Dst: nssCertificateArray_Destroy
      Src: /src/nss/lib/certdb/stanpcertdb.c:807,1
    - Dst: nssCertificateArray_Destroy
      Src: /src/nss/lib/certdb/stanpcertdb.c:808,1
    - Dst: CERT_DestroyCertList
      Src: /src/nss/lib/certdb/stanpcertdb.c:810,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 5
    argNames:
    - certList
    - handle
    - name
    - sorttime
    - validOnly
    argTypes:
    - CERTCertList*
    - CERTCertDBHandle*
    - SECItem*
    - PRTime
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 751
    functionDepth: 7
    functionLinenumber: 751
    functionLinenumberEnd: 813
    functionName: CERT_CreateSubjectCertList
    functionSourceFile: /src/nss/lib/certdb/stanpcertdb.c
    functionUses: 6
    functionsReached:
    - NSSTrustDomain_FindCertificatesBySubject
    - nssCertificateArray_Destroy
    - NSSCryptoContext_FindCertificatesBySubject
    - NSSITEM_FROM_SECITEM
    - CERT_NewCertList
    - STAN_GetDefaultCryptoContext
    - STAN_GetCERTCertificateOrRelease
    - nss_ZFreeIf
    - add_to_subject_list
    - CERT_DestroyCertList
    linkageType: ''
    returnType: CERTCertList
    signature: "CERTCertList *\nCERT_CreateSubjectCertList(CERTCertList *certList,
      CERTCertDBHandle *handle,\n                           const SECItem *name, PRTime
      sorttime,\n                           PRBool validOnly)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CERT_MaybeLockCertTempPerm
      Src: /src/nss/lib/certdb/stanpcertdb.c:830,1
    - Dst: CERT_MaybeUnlockCertTempPerm
      Src: /src/nss/lib/certdb/stanpcertdb.c:832,1
    - Dst: NSSCertificate_Destroy
      Src: /src/nss/lib/certdb/stanpcertdb.c:835,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certdb/stanpcertdb.c:837,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - cert
    argTypes:
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 815
    functionDepth: 7
    functionLinenumber: 815
    functionLinenumberEnd: 841
    functionName: CERT_DestroyCertificate
    functionSourceFile: /src/nss/lib/certdb/stanpcertdb.c
    functionUses: 127
    functionsReached:
    - PORT_FreeArena
    - CERT_MaybeLockCertTempPerm
    - CERT_MaybeUnlockCertTempPerm
    - NSSCertificate_Destroy
    linkageType: ''
    returnType: void
    signature: void CERT_DestroyCertificate(CERTCertificate *cert)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - CERTCertDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 843
    functionDepth: 0
    functionLinenumber: 843
    functionLinenumberEnd: 848
    functionName: CERT_GetDBContentVersion
    functionSourceFile: /src/nss/lib/certdb/stanpcertdb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int CERT_GetDBContentVersion(CERTCertDBHandle *handle)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: STAN_GetNSSCertificate
      Src: /src/nss/lib/certdb/stanpcertdb.c:867,1
    - Dst: nssCryptoContext_FindSMIMEProfileForCertificate
      Src: /src/nss/lib/certdb/stanpcertdb.c:872,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/stanpcertdb.c:874,1
    - Dst: SECITEM_FROM_NSSITEM
      Src: /src/nss/lib/certdb/stanpcertdb.c:875,1
    - Dst: SECITEM_FROM_NSSITEM
      Src: /src/nss/lib/certdb/stanpcertdb.c:877,1
    - Dst: PK11_FindSMimeProfile
      Src: /src/nss/lib/certdb/stanpcertdb.c:881,1
    - Dst: DER_UTCTimeToTime
      Src: /src/nss/lib/certdb/stanpcertdb.c:905,1
    - Dst: DER_UTCTimeToTime
      Src: /src/nss/lib/certdb/stanpcertdb.c:911,1
    - Dst: LL_CMP
      Src: /src/nss/lib/certdb/stanpcertdb.c:916,1
    - Dst: nssItem_Create
      Src: /src/nss/lib/certdb/stanpcertdb.c:932,1
    - Dst: nssItem_Create
      Src: /src/nss/lib/certdb/stanpcertdb.c:934,1
    - Dst: NSSITEM_FROM_SECITEM
      Src: /src/nss/lib/certdb/stanpcertdb.c:939,1
    - Dst: NSSITEM_FROM_SECITEM
      Src: /src/nss/lib/certdb/stanpcertdb.c:940,1
    - Dst: nssSMIMEProfile_Create
      Src: /src/nss/lib/certdb/stanpcertdb.c:941,1
    - Dst: nssCryptoContext_ImportSMIMEProfile
      Src: /src/nss/lib/certdb/stanpcertdb.c:944,1
    - Dst: PK11_SaveSMimeProfile
      Src: /src/nss/lib/certdb/stanpcertdb.c:948,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/certdb/stanpcertdb.c:958,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/certdb/stanpcertdb.c:961,1
    - Dst: nssSMIMEProfile_Destroy
      Src: /src/nss/lib/certdb/stanpcertdb.c:964,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/certdb/stanpcertdb.c:967,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 87
    argCount: 4
    argNames:
    - cert
    - emailAddr
    - emailProfile
    - profileTime
    argTypes:
    - CERTCertificate*
    - char*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 850
    functionDepth: 7
    functionLinenumber: 850
    functionLinenumberEnd: 971
    functionName: certdb_SaveSingleProfile
    functionSourceFile: /src/nss/lib/certdb/stanpcertdb.c
    functionUses: 0
    functionsReached:
    - PK11_FreeSlot
    - PORT_Assert
    - STAN_GetNSSCertificate
    - nssSMIMEProfile_Destroy
    - nssSMIMEProfile_Create
    - NSSITEM_FROM_SECITEM
    - SECITEM_FROM_NSSITEM
    - nssItem_Create
    - SECITEM_FreeItem
    - LL_CMP
    - PK11_FindSMimeProfile
    - nssCryptoContext_FindSMIMEProfileForCertificate
    - PK11_SaveSMimeProfile
    - DER_UTCTimeToTime
    - nssCryptoContext_ImportSMIMEProfile
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus certdb_SaveSingleProfile(CERTCertificate *cert, const char
      *emailAddr,\n                         SECItem *emailProfile, SECItem *profileTime)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PK11_IsInternal
      Src: /src/nss/lib/certdb/stanpcertdb.c:991,1
    - Dst: PK11_GetInternalKeySlot
      Src: /src/nss/lib/certdb/stanpcertdb.c:994,1
    - Dst: PK11_ImportCert
      Src: /src/nss/lib/certdb/stanpcertdb.c:998,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/certdb/stanpcertdb.c:1001,1
    - Dst: CERT_GetCertIsPerm
      Src: /src/nss/lib/certdb/stanpcertdb.c:1007,1
    - Dst: CERT_IsUserCert
      Src: /src/nss/lib/certdb/stanpcertdb.c:1011,1
    - Dst: CERT_GetFirstEmailAddress
      Src: /src/nss/lib/certdb/stanpcertdb.c:1017,1
    - Dst: CERT_GetNextEmailAddress
      Src: /src/nss/lib/certdb/stanpcertdb.c:1018,1
    - Dst: certdb_SaveSingleProfile
      Src: /src/nss/lib/certdb/stanpcertdb.c:1019,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 3
    argNames:
    - cert
    - emailProfile
    - profileTime
    argTypes:
    - CERTCertificate*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 979
    functionDepth: 8
    functionLinenumber: 979
    functionLinenumberEnd: 1026
    functionName: CERT_SaveSMimeProfile
    functionSourceFile: /src/nss/lib/certdb/stanpcertdb.c
    functionUses: 2
    functionsReached:
    - PK11_GetInternalKeySlot
    - PK11_IsInternal
    - PK11_ImportCert
    - CERT_GetNextEmailAddress
    - CERT_GetFirstEmailAddress
    - CERT_IsUserCert
    - certdb_SaveSingleProfile
    - CERT_GetCertIsPerm
    - PK11_FreeSlot
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_SaveSMimeProfile(CERTCertificate *cert, SECItem *emailProfile,\n
      \                     SECItem *profileTime)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/stanpcertdb.c:1037,1
    - Dst: STAN_GetNSSCertificate
      Src: /src/nss/lib/certdb/stanpcertdb.c:1040,1
    - Dst: nssCryptoContext_FindSMIMEProfileForCertificate
      Src: /src/nss/lib/certdb/stanpcertdb.c:1046,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/certdb/stanpcertdb.c:1049,1
    - Dst: nssSMIMEProfile_Destroy
      Src: /src/nss/lib/certdb/stanpcertdb.c:1053,1
    - Dst: PK11_FindSMimeProfile
      Src: /src/nss/lib/certdb/stanpcertdb.c:1058,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/certdb/stanpcertdb.c:1060,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - cert
    argTypes:
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1063
      start: 1028
    functionDepth: 7
    functionLinenumber: 1028
    functionLinenumberEnd: 1063
    functionName: CERT_FindSMimeProfile
    functionSourceFile: /src/nss/lib/certdb/stanpcertdb.c
    functionUses: 0
    functionsReached:
    - PK11_FindSMimeProfile
    - STAN_GetNSSCertificate
    - SECITEM_AllocItem
    - PORT_SetError
    - nssSMIMEProfile_Destroy
    - nssCryptoContext_FindSMIMEProfileForCertificate
    - PK11_FreeSlot
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      CERT_FindSMimeProfile(CERTCertificate *cert)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CERT_LockCertTempPerm
      Src: /src/nss/lib/certdb/stanpcertdb.c:1072,1
    - Dst: CERT_UnlockCertTempPerm
      Src: /src/nss/lib/certdb/stanpcertdb.c:1074,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - cert
    - isperm
    argTypes:
    - CERTCertificate*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1065
    functionDepth: 1
    functionLinenumber: 1065
    functionLinenumberEnd: 1076
    functionName: CERT_GetCertIsPerm
    functionSourceFile: /src/nss/lib/certdb/stanpcertdb.c
    functionUses: 1
    functionsReached:
    - CERT_UnlockCertTempPerm
    - CERT_LockCertTempPerm
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERT_GetCertIsPerm(const CERTCertificate *cert, PRBool *isperm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CERT_LockCertTempPerm
      Src: /src/nss/lib/certdb/stanpcertdb.c:1085,1
    - Dst: CERT_UnlockCertTempPerm
      Src: /src/nss/lib/certdb/stanpcertdb.c:1087,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - cert
    - istemp
    argTypes:
    - CERTCertificate*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 1078
    functionDepth: 1
    functionLinenumber: 1078
    functionLinenumberEnd: 1089
    functionName: CERT_GetCertIsTemp
    functionSourceFile: /src/nss/lib/certdb/stanpcertdb.c
    functionUses: 1
    functionsReached:
    - CERT_UnlockCertTempPerm
    - CERT_LockCertTempPerm
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERT_GetCertIsTemp(const CERTCertificate *cert, PRBool *istemp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/stanpcertdb.c:1100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - handle
    argTypes:
    - CERTCertDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1102
      start: 1097
    functionDepth: 0
    functionLinenumber: 1097
    functionLinenumberEnd: 1102
    functionName: __CERT_ClosePermCertDB
    functionSourceFile: /src/nss/lib/certdb/stanpcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: void
    signature: void __CERT_ClosePermCertDB(CERTCertDBHandle *handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/stanpcertdb.c:1108,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/stanpcertdb.c:1109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - handle
    - certdbname
    - readOnly
    argTypes:
    - CERTCertDBHandle*
    - char*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1104
    functionDepth: 0
    functionLinenumber: 1104
    functionLinenumberEnd: 1111
    functionName: CERT_OpenCertDBFilename
    functionSourceFile: /src/nss/lib/certdb/stanpcertdb.c
    functionUses: 2
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_OpenCertDBFilename(CERTCertDBHandle *handle, char *certdbname,\n
      \                       PRBool readOnly)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/stanpcertdb.c:1116,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/stanpcertdb.c:1117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pw
    - salt
    argTypes:
    - char*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1119
      start: 1113
    functionDepth: 0
    functionLinenumber: 1113
    functionLinenumberEnd: 1119
    functionName: SECKEY_HashPassword
    functionSourceFile: /src/nss/lib/certdb/stanpcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      SECKEY_HashPassword(char *pw, SECItem *salt)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/stanpcertdb.c:1125,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/stanpcertdb.c:1126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - handle
    - derSubject
    - cb
    - cbarg
    argTypes:
    - CERTCertDBHandle*
    - SECItem*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1128
      start: 1121
    functionDepth: 0
    functionLinenumber: 1121
    functionLinenumberEnd: 1128
    functionName: __CERT_TraversePermCertsForSubject
    functionSourceFile: /src/nss/lib/certdb/stanpcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus __CERT_TraversePermCertsForSubject(CERTCertDBHandle *handle,\n
      \                                  SECItem *derSubject, void *cb, void *cbarg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/stanpcertdb.c:1134,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/stanpcertdb.c:1135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - handle
    - nickname
    - cb
    - cbarg
    argTypes:
    - CERTCertDBHandle*
    - char*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1137
      start: 1130
    functionDepth: 0
    functionLinenumber: 1130
    functionLinenumberEnd: 1137
    functionName: __CERT_TraversePermCertsForNickname
    functionSourceFile: /src/nss/lib/certdb/stanpcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus __CERT_TraversePermCertsForNickname(CERTCertDBHandle *handle,
      char *nickname,\n                                    void *cb, void *cbarg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 116
    functionName: IS_HEX
    functionSourceFile: /src/nss/lib/certdb/alg1485.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_HEX(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 125
    functionName: OPTIONAL_SPACE
    functionSourceFile: /src/nss/lib/certdb/alg1485.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPTIONAL_SPACE(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 131
    functionName: SPECIAL_CHAR
    functionSourceFile: /src/nss/lib/certdb/alg1485.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPECIAL_CHAR(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 139
    functionName: IS_PRINTABLE
    functionSourceFile: /src/nss/lib/certdb/alg1485.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_PRINTABLE(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 154
    functionName: NEEDS_ESCAPE
    functionSourceFile: /src/nss/lib/certdb/alg1485.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEEDS_ESCAPE(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 156
    functionName: NEEDS_HEX_ESCAPE
    functionSourceFile: /src/nss/lib/certdb/alg1485.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEEDS_HEX_ESCAPE(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - tag
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 166
    functionName: cert_AVAOidTagToMaxLen
    functionSourceFile: /src/nss/lib/certdb/alg1485.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cert_AVAOidTagToMaxLen(SECOidTag tag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IS_PRINTABLE
      Src: /src/nss/lib/certdb/alg1485.c:176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - unsigned char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 181
    functionName: IsPrintable
    functionSourceFile: /src/nss/lib/certdb/alg1485.c
    functionUses: 0
    functionsReached:
    - IS_PRINTABLE
    linkageType: ''
    returnType: PRBool
    signature: PRBool IsPrintable(unsigned char* data, unsigned len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPTIONAL_SPACE
      Src: /src/nss/lib/certdb/alg1485.c:187,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - pbp
    - endptr
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 191
    functionName: skipSpace
    functionSourceFile: /src/nss/lib/certdb/alg1485.c
    functionUses: 0
    functionsReached:
    - OPTIONAL_SPACE
    linkageType: ''
    returnType: void
    signature: void skipSpace(const char** pbp, const char* endptr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/alg1485.c:200,1
    - Dst: skipSpace
      Src: /src/nss/lib/certdb/alg1485.c:203,1
    - Dst: OPTIONAL_SPACE
      Src: /src/nss/lib/certdb/alg1485.c:213,1
    - Dst: skipSpace
      Src: /src/nss/lib/certdb/alg1485.c:225,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 4
    argNames:
    - pbp
    - endptr
    - tagBuf
    - tagBufSize
    argTypes:
    - char**
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 193
    functionDepth: 2
    functionLinenumber: 193
    functionLinenumberEnd: 238
    functionName: scanTag
    functionSourceFile: /src/nss/lib/certdb/alg1485.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - OPTIONAL_SPACE
    - skipSpace
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus scanTag(const char** pbp, const char* endptr, char* tagBuf,
      int tagBufSize)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/alg1485.c:249,1
    - Dst: skipSpace
      Src: /src/nss/lib/certdb/alg1485.c:252,1
    - Dst: IS_HEX
      Src: /src/nss/lib/certdb/alg1485.c:281,1
    - Dst: IS_HEX
      Src: /src/nss/lib/certdb/alg1485.c:281,1
    - Dst: SPECIAL_CHAR
      Src: /src/nss/lib/certdb/alg1485.c:287,1
    - Dst: OPTIONAL_SPACE
      Src: /src/nss/lib/certdb/alg1485.c:308,1
    - Dst: skipSpace
      Src: /src/nss/lib/certdb/alg1485.c:323,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 62
    argCount: 4
    argNames:
    - pbp
    - endptr
    - valBuf
    - valBufSize
    argTypes:
    - char**
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 241
    functionDepth: 2
    functionLinenumber: 241
    functionLinenumberEnd: 332
    functionName: scanVal
    functionSourceFile: /src/nss/lib/certdb/alg1485.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - OPTIONAL_SPACE
    - IS_HEX
    - SPECIAL_CHAR
    - skipSpace
    linkageType: ''
    returnType: int
    signature: int scanVal(const char** pbp, const char* endptr, char* valBuf, int
      valBufSize)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/certdb/alg1485.c:345,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/certdb/alg1485.c:360,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 4
    argNames:
    - pool
    - destItem
    - src
    - len
    argTypes:
    - PLArenaPool*
    - SECItem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 362
    functionName: hexToBin
    functionSourceFile: /src/nss/lib/certdb/alg1485.c
    functionUses: 0
    functionsReached:
    - SECITEM_FreeItem
    - SECITEM_AllocItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus hexToBin(PLArenaPool* pool, SECItem* destItem, const char*
      src, int len)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/alg1485.c:389,1
    - Dst: scanTag
      Src: /src/nss/lib/certdb/alg1485.c:390,1
    - Dst: scanVal
      Src: /src/nss/lib/certdb/alg1485.c:391,1
    - Dst: PL_strncasecmp
      Src: /src/nss/lib/certdb/alg1485.c:406,1
    - Dst: isdigit
      Src: /src/nss/lib/certdb/alg1485.c:406,1
    - Dst: SEC_StringToOID
      Src: /src/nss/lib/certdb/alg1485.c:407,1
    - Dst: strlen
      Src: /src/nss/lib/certdb/alg1485.c:407,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/lib/certdb/alg1485.c:412,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/lib/certdb/alg1485.c:415,1
    - Dst: hexToBin
      Src: /src/nss/lib/certdb/alg1485.c:429,1
    - Dst: CERT_CreateAVAFromRaw
      Src: /src/nss/lib/certdb/alg1485.c:432,1
    - Dst: IsPrintable
      Src: /src/nss/lib/certdb/alg1485.c:437,1
    - Dst: IsPrintable
      Src: /src/nss/lib/certdb/alg1485.c:441,1
    - Dst: CERT_CreateAVAFromRaw
      Src: /src/nss/lib/certdb/alg1485.c:450,1
    - Dst: CERT_CreateAVAFromSECItem
      Src: /src/nss/lib/certdb/alg1485.c:452,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/alg1485.c:459,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 66
    argCount: 3
    argNames:
    - arena
    - pbp
    - endptr
    argTypes:
    - PLArenaPool*
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 371
    functionDepth: 3
    functionLinenumber: 371
    functionLinenumberEnd: 461
    functionName: ParseRFC1485AVA
    functionSourceFile: /src/nss/lib/certdb/alg1485.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_Strcasecmp
    - SECOID_FindOIDByTag
    - scanTag
    - hexToBin
    - SEC_StringToOID
    - isdigit
    - PL_strncasecmp
    - CERT_CreateAVAFromRaw
    - IsPrintable
    - PORT_SetError
    - CERT_CreateAVAFromSECItem
    - scanVal
    - strlen
    linkageType: ''
    returnType: CERTAVA
    signature: 'CERTAVA *

      ParseRFC1485AVA(PLArenaPool* arena, const char** pbp, const char* endptr)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CERT_CreateName
      Src: /src/nss/lib/certdb/alg1485.c:472,1
    - Dst: ParseRFC1485AVA
      Src: /src/nss/lib/certdb/alg1485.c:480,1
    - Dst: CERT_CreateRDN
      Src: /src/nss/lib/certdb/alg1485.c:484,1
    - Dst: CERT_AddRDN
      Src: /src/nss/lib/certdb/alg1485.c:487,1
    - Dst: CERT_AddAVA
      Src: /src/nss/lib/certdb/alg1485.c:489,1
    - Dst: skipSpace
      Src: /src/nss/lib/certdb/alg1485.c:495,1
    - Dst: CERT_DestroyName
      Src: /src/nss/lib/certdb/alg1485.c:530,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 463
    functionDepth: 4
    functionLinenumber: 463
    functionLinenumberEnd: 532
    functionName: ParseRFC1485Name
    functionSourceFile: /src/nss/lib/certdb/alg1485.c
    functionUses: 0
    functionsReached:
    - CERT_AddRDN
    - CERT_AddAVA
    - ParseRFC1485AVA
    - CERT_DestroyName
    - CERT_CreateName
    - CERT_CreateRDN
    - skipSpace
    linkageType: ''
    returnType: CERTName
    signature: 'CERTName *

      ParseRFC1485Name(const char* buf, int len)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParseRFC1485Name
      Src: /src/nss/lib/certdb/alg1485.c:538,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/certdb/alg1485.c:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 534
    functionDepth: 5
    functionLinenumber: 534
    functionLinenumberEnd: 540
    functionName: CERT_AsciiToName
    functionSourceFile: /src/nss/lib/certdb/alg1485.c
    functionUses: 12
    functionsReached:
    - ParseRFC1485Name
    - PORT_Strlen
    linkageType: ''
    returnType: CERTName
    signature: 'CERTName *

      CERT_AsciiToName(const char* string)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strlen
      Src: /src/nss/lib/certdb/alg1485.c:562,1
    - Dst: PR_MAX
      Src: /src/nss/lib/certdb/alg1485.c:566,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/certdb/alg1485.c:567,1
    - Dst: PORT_Realloc
      Src: /src/nss/lib/certdb/alg1485.c:571,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/alg1485.c:575,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/certdb/alg1485.c:585,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 2
    argNames:
    - bufp
    - str
    argTypes:
    - stringBuf*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 552
    functionDepth: 1
    functionLinenumber: 552
    functionLinenumberEnd: 587
    functionName: AppendStr
    functionSourceFile: /src/nss/lib/certdb/alg1485.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_Memcpy
    - PORT_Strlen
    - PORT_SetError
    - PORT_Realloc
    - PR_MAX
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus AppendStr(stringBuf* bufp, char* str)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: NEEDS_HEX_ESCAPE
      Src: /src/nss/lib/certdb/alg1485.c:622,1
    - Dst: NEEDS_ESCAPE
      Src: /src/nss/lib/certdb/alg1485.c:624,1
    - Dst: SPECIAL_CHAR
      Src: /src/nss/lib/certdb/alg1485.c:626,1
    - Dst: OPTIONAL_SPACE
      Src: /src/nss/lib/certdb/alg1485.c:631,1
    - Dst: OPTIONAL_SPACE
      Src: /src/nss/lib/certdb/alg1485.c:631,1
    - Dst: OPTIONAL_SPACE
      Src: /src/nss/lib/certdb/alg1485.c:639,1
    - Dst: OPTIONAL_SPACE
      Src: /src/nss/lib/certdb/alg1485.c:639,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 32
    argCount: 3
    argNames:
    - src
    - srclen
    - pEQMode
    argTypes:
    - char*
    - int
    - EQMode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 649
    functionName: cert_RFC1485_GetRequiredLen
    functionSourceFile: /src/nss/lib/certdb/alg1485.c
    functionUses: 0
    functionsReached:
    - OPTIONAL_SPACE
    - SPECIAL_CHAR
    - NEEDS_ESCAPE
    - NEEDS_HEX_ESCAPE
    linkageType: ''
    returnType: int
    signature: int cert_RFC1485_GetRequiredLen(const char* src, int srclen, EQMode*
      pEQMode)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cert_RFC1485_GetRequiredLen
      Src: /src/nss/lib/certdb/alg1485.c:659,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/alg1485.c:663,1
    - Dst: NEEDS_HEX_ESCAPE
      Src: /src/nss/lib/certdb/alg1485.c:671,1
    - Dst: NEEDS_ESCAPE
      Src: /src/nss/lib/certdb/alg1485.c:676,1
    - Dst: SPECIAL_CHAR
      Src: /src/nss/lib/certdb/alg1485.c:676,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 5
    argNames:
    - dst
    - dstlen
    - src
    - srclen
    - pEQMode
    argTypes:
    - char*
    - int
    - char*
    - int
    - EQMode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 653
    functionDepth: 2
    functionLinenumber: 653
    functionLinenumberEnd: 688
    functionName: escapeAndQuote
    functionSourceFile: /src/nss/lib/certdb/alg1485.c
    functionUses: 0
    functionsReached:
    - NEEDS_ESCAPE
    - PORT_SetError
    - cert_RFC1485_GetRequiredLen
    - NEEDS_HEX_ESCAPE
    - SPECIAL_CHAR
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus escapeAndQuote(char* dst, int dstlen, char* src, int srclen,
      EQMode* pEQMode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: escapeAndQuote
      Src: /src/nss/lib/certdb/alg1485.c:694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - dst
    - dstlen
    - src
    - srclen
    argTypes:
    - char*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 690
    functionDepth: 3
    functionLinenumber: 690
    functionLinenumberEnd: 695
    functionName: CERT_RFC1485_EscapeAndQuote
    functionSourceFile: /src/nss/lib/certdb/alg1485.c
    functionUses: 0
    functionsReached:
    - escapeAndQuote
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERT_RFC1485_EscapeAndQuote(char* dst, int dstlen, char*
      src, int srclen)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/alg1485.c:711,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/certdb/alg1485.c:730,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/alg1485.c:732,1
    - Dst: CASE
      Src: /src/nss/lib/certdb/alg1485.c:765,1
    - Dst: CASE
      Src: /src/nss/lib/certdb/alg1485.c:766,1
    - Dst: CASE
      Src: /src/nss/lib/certdb/alg1485.c:767,1
    - Dst: PR_MIN
      Src: /src/nss/lib/certdb/alg1485.c:778,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/certdb/alg1485.c:781,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/certdb/alg1485.c:784,1
    - Dst: CASE
      Src: /src/nss/lib/certdb/alg1485.c:791,1
    - Dst: CASE
      Src: /src/nss/lib/certdb/alg1485.c:792,1
    - Dst: CASE
      Src: /src/nss/lib/certdb/alg1485.c:793,1
    - Dst: CASE
      Src: /src/nss/lib/certdb/alg1485.c:794,1
    - Dst: CASE
      Src: /src/nss/lib/certdb/alg1485.c:795,1
    - Dst: CASE
      Src: /src/nss/lib/certdb/alg1485.c:796,1
    - Dst: CGET
      Src: /src/nss/lib/certdb/alg1485.c:797,1
    - Dst: CGET
      Src: /src/nss/lib/certdb/alg1485.c:798,1
    - Dst: CGET
      Src: /src/nss/lib/certdb/alg1485.c:799,1
    - Dst: CGET
      Src: /src/nss/lib/certdb/alg1485.c:800,1
    - Dst: PR_MIN
      Src: /src/nss/lib/certdb/alg1485.c:808,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/certdb/alg1485.c:811,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/certdb/alg1485.c:814,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/certdb/alg1485.c:820,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/certdb/alg1485.c:823,1
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/certdb/alg1485.c:828,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/alg1485.c:832,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 90
    argCount: 1
    argNames:
    - oid
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 699
    functionDepth: 1
    functionLinenumber: 699
    functionLinenumberEnd: 837
    functionName: CERT_GetOidString
    functionSourceFile: /src/nss/lib/certdb/alg1485.c
    functionUses: 2
    functionsReached:
    - CGET
    - PR_MIN
    - CASE
    - PORT_SetError
    - PR_smprintf_free
    - PR_smprintf
    linkageType: ''
    returnType: char
    signature: 'char *

      CERT_GetOidString(const SECItem* oid)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 754
    functionDepth: 0
    functionLinenumber: 754
    functionLinenumberEnd: 757
    functionName: CGET
    functionSourceFile: /src/nss/lib/certdb/alg1485.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CGET(i, m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 758
    functionDepth: 0
    functionLinenumber: 758
    functionLinenumberEnd: 763
    functionName: CASE
    functionSourceFile: /src/nss/lib/certdb/alg1485.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CASE(i, m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/certdb/alg1485.c:848,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - data
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 840
    functionDepth: 0
    functionLinenumber: 840
    functionLinenumberEnd: 861
    functionName: get_hex_string
    functionSourceFile: /src/nss/lib/certdb/alg1485.c
    functionUses: 0
    functionsReached:
    - SECITEM_AllocItem
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      get_hex_string(SECItem* data)'
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: CERT_GetAVATag
      Src: /src/nss/lib/certdb/alg1485.c:950,1
    - Dst: CERT_DecodeAVAValue
      Src: /src/nss/lib/certdb/alg1485.c:966,1
    - Dst: CERT_GetOidString
      Src: /src/nss/lib/certdb/alg1485.c:976,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/certdb/alg1485.c:979,1
    - Dst: get_hex_string
      Src: /src/nss/lib/certdb/alg1485.c:984,1
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/certdb/alg1485.c:987,1
    - Dst: strlen
      Src: /src/nss/lib/certdb/alg1485.c:992,1
    - Dst: cert_RFC1485_GetRequiredLen
      Src: /src/nss/lib/certdb/alg1485.c:997,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/certdb/alg1485.c:999,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/certdb/alg1485.c:1006,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/certdb/alg1485.c:1016,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/certdb/alg1485.c:1018,1
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/certdb/alg1485.c:1020,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/alg1485.c:1039,1
    - Dst: memcpy
      Src: /src/nss/lib/certdb/alg1485.c:1046,1
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/certdb/alg1485.c:1057,1
    - Dst: memcpy
      Src: /src/nss/lib/certdb/alg1485.c:1068,1
    - Dst: escapeAndQuote
      Src: /src/nss/lib/certdb/alg1485.c:1077,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/alg1485.c:1082,1
    - Dst: escapeAndQuote
      Src: /src/nss/lib/certdb/alg1485.c:1083,1
    - Dst: PR_MIN
      Src: /src/nss/lib/certdb/alg1485.c:1084,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/alg1485.c:1098,1
    - Dst: memcpy
      Src: /src/nss/lib/certdb/alg1485.c:1099,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/certdb/alg1485.c:1102,1
    - Dst: AppendStr
      Src: /src/nss/lib/certdb/alg1485.c:1104,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certdb/alg1485.c:1106,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 134
    argCount: 3
    argNames:
    - bufp
    - ava
    - strict
    argTypes:
    - stringBuf*
    - CERTAVA*
    - CertStrictnessLevel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 919
    functionDepth: 3
    functionLinenumber: 919
    functionLinenumberEnd: 1108
    functionName: AppendAVA
    functionSourceFile: /src/nss/lib/certdb/alg1485.c
    functionUses: 0
    functionsReached:
    - get_hex_string
    - PORT_Alloc
    - PORT_Assert
    - memcpy
    - escapeAndQuote
    - PR_MIN
    - PORT_Free
    - CERT_DecodeAVAValue
    - PR_smprintf_free
    - cert_RFC1485_GetRequiredLen
    - AppendStr
    - CERT_GetAVATag
    - CERT_GetOidString
    - SECITEM_FreeItem
    - strlen
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus AppendAVA(stringBuf* bufp, CERTAVA* ava, CertStrictnessLevel
      strict)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: AppendStr
      Src: /src/nss/lib/certdb/alg1485.c:1151,1
    - Dst: AppendAVA
      Src: /src/nss/lib/certdb/alg1485.c:1159,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certdb/alg1485.c:1168,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 2
    argNames:
    - name
    - strict
    argTypes:
    - CERTName*
    - CertStrictnessLevel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1115
    functionDepth: 4
    functionLinenumber: 1115
    functionLinenumberEnd: 1171
    functionName: CERT_NameToAsciiInvertible
    functionSourceFile: /src/nss/lib/certdb/alg1485.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - AppendAVA
    - AppendStr
    linkageType: ''
    returnType: char
    signature: 'char *

      CERT_NameToAsciiInvertible(CERTName* name, CertStrictnessLevel strict)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CERT_NameToAsciiInvertible
      Src: /src/nss/lib/certdb/alg1485.c:1176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - CERTName*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1173
    functionDepth: 5
    functionLinenumber: 1173
    functionLinenumberEnd: 1177
    functionName: CERT_NameToAscii
    functionSourceFile: /src/nss/lib/certdb/alg1485.c
    functionUses: 9
    functionsReached:
    - CERT_NameToAsciiInvertible
    linkageType: ''
    returnType: char
    signature: 'char *

      CERT_NameToAscii(CERTName* name)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/certdb/alg1485.c:1191,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/certdb/alg1485.c:1197,1
    - Dst: CERT_NameToAscii
      Src: /src/nss/lib/certdb/alg1485.c:1203,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certdb/alg1485.c:1207,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - dername
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1211
      start: 1183
    functionDepth: 6
    functionLinenumber: 1183
    functionLinenumberEnd: 1211
    functionName: CERT_DerNameToAscii
    functionSourceFile: /src/nss/lib/certdb/alg1485.c
    functionUses: 3
    functionsReached:
    - PORT_FreeArena
    - SEC_QuickDERDecodeItem
    - CERT_NameToAscii
    - PORT_NewArena
    linkageType: ''
    returnType: char
    signature: 'char *

      CERT_DerNameToAscii(SECItem* dername)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CERT_DecodeAVAValue
      Src: /src/nss/lib/certdb/alg1485.c:1220,1
    - Dst: cert_RFC1485_GetRequiredLen
      Src: /src/nss/lib/certdb/alg1485.c:1224,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/certdb/alg1485.c:1229,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/certdb/alg1485.c:1231,1
    - Dst: escapeAndQuote
      Src: /src/nss/lib/certdb/alg1485.c:1235,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certdb/alg1485.c:1238,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/certdb/alg1485.c:1243,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - arena
    - ava
    argTypes:
    - PLArenaPool*
    - CERTAVA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1245
      start: 1213
    functionDepth: 3
    functionLinenumber: 1213
    functionLinenumberEnd: 1245
    functionName: avaToString
    functionSourceFile: /src/nss/lib/certdb/alg1485.c
    functionUses: 0
    functionsReached:
    - escapeAndQuote
    - PORT_ArenaZAlloc
    - PORT_Free
    - PORT_ZAlloc
    - CERT_DecodeAVAValue
    - cert_RFC1485_GetRequiredLen
    - SECITEM_FreeItem
    linkageType: ''
    returnType: char
    signature: 'char *

      avaToString(PLArenaPool* arena, CERTAVA* ava)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CERT_GetAVATag
      Src: /src/nss/lib/certdb/alg1485.c:1260,1
    - Dst: avaToString
      Src: /src/nss/lib/certdb/alg1485.c:1267,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - arena
    - name
    - wantedTag
    argTypes:
    - PLArenaPool*
    - CERTName*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1268
      start: 1250
    functionDepth: 4
    functionLinenumber: 1250
    functionLinenumberEnd: 1268
    functionName: CERT_GetNameElement
    functionSourceFile: /src/nss/lib/certdb/alg1485.c
    functionUses: 0
    functionsReached:
    - avaToString
    - CERT_GetAVATag
    linkageType: ''
    returnType: char
    signature: 'char *

      CERT_GetNameElement(PLArenaPool* arena, const CERTName* name, int wantedTag)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CERT_GetAVATag
      Src: /src/nss/lib/certdb/alg1485.c:1285,1
    - Dst: avaToString
      Src: /src/nss/lib/certdb/alg1485.c:1291,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - arena
    - name
    - wantedTag
    argTypes:
    - PLArenaPool*
    - CERTName*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1292
      start: 1274
    functionDepth: 4
    functionLinenumber: 1274
    functionLinenumberEnd: 1292
    functionName: CERT_GetLastNameElement
    functionSourceFile: /src/nss/lib/certdb/alg1485.c
    functionUses: 0
    functionsReached:
    - avaToString
    - CERT_GetAVATag
    linkageType: ''
    returnType: char
    signature: 'char *

      CERT_GetLastNameElement(PLArenaPool* arena, const CERTName* name, int wantedTag)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: CERT_GetNameElement
      Src: /src/nss/lib/certdb/alg1485.c:1307,1
    - Dst: CERT_GetNameElement
      Src: /src/nss/lib/certdb/alg1485.c:1311,1
    - Dst: CERT_FindCertExtension
      Src: /src/nss/lib/certdb/alg1485.c:1316,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/certdb/alg1485.c:1320,1
    - Dst: CERT_DecodeAltNameExtension
      Src: /src/nss/lib/certdb/alg1485.c:1324,1
    - Dst: CERT_GetNameElement
      Src: /src/nss/lib/certdb/alg1485.c:1332,1
    - Dst: CERT_GetNameElement
      Src: /src/nss/lib/certdb/alg1485.c:1337,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/certdb/alg1485.c:1342,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/certdb/alg1485.c:1346,1
    - Dst: CERT_GetNextGeneralName
      Src: /src/nss/lib/certdb/alg1485.c:1354,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/certdb/alg1485.c:1359,1
    - Dst: tolower
      Src: /src/nss/lib/certdb/alg1485.c:1360,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certdb/alg1485.c:1369,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/certdb/alg1485.c:1373,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 60
    argCount: 1
    argNames:
    - cert
    argTypes:
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1377
      start: 1294
    functionDepth: 5
    functionLinenumber: 1294
    functionLinenumberEnd: 1377
    functionName: CERT_GetCertificateEmailAddress
    functionSourceFile: /src/nss/lib/certdb/alg1485.c
    functionUses: 0
    functionsReached:
    - CERT_FindCertExtension
    - PORT_Memcpy
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - CERT_GetNextGeneralName
    - tolower
    - PORT_FreeArena
    - PORT_Strlen
    - CERT_DecodeAltNameExtension
    - CERT_GetNameElement
    - SECITEM_FreeItem
    linkageType: ''
    returnType: char
    signature: 'char *

      CERT_GetCertificateEmailAddress(CERTCertificate* cert)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PL_strlen
      Src: /src/nss/lib/certdb/alg1485.c:1383,1
    - Dst: tolower
      Src: /src/nss/lib/certdb/alg1485.c:1386,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - dest
    - src
    - pRemaining
    argTypes:
    - char*
    - char*
    - PRUint32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1392
      start: 1379
    functionDepth: 1
    functionLinenumber: 1379
    functionLinenumberEnd: 1392
    functionName: appendStringToBuf
    functionSourceFile: /src/nss/lib/certdb/alg1485.c
    functionUses: 0
    functionsReached:
    - PL_strlen
    - tolower
    linkageType: ''
    returnType: char
    signature: 'char *

      appendStringToBuf(char* dest, char* src, PRUint32* pRemaining)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1396
      start: 1395
    functionDepth: 0
    functionLinenumber: 1395
    functionLinenumberEnd: 1396
    functionName: NEEDS_HEX_ESCAPE
    functionSourceFile: /src/nss/lib/certdb/alg1485.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEEDS_HEX_ESCAPE(c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NEEDS_HEX_ESCAPE
      Src: /src/nss/lib/certdb/alg1485.c:1406,1
    - Dst: NEEDS_HEX_ESCAPE
      Src: /src/nss/lib/certdb/alg1485.c:1412,1
    - Dst: tolower
      Src: /src/nss/lib/certdb/alg1485.c:1421,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 3
    argNames:
    - dest
    - src
    - pRemaining
    argTypes:
    - char*
    - SECItem*
    - PRUint32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1429
      start: 1397
    functionDepth: 1
    functionLinenumber: 1397
    functionLinenumberEnd: 1429
    functionName: appendItemToBuf
    functionSourceFile: /src/nss/lib/certdb/alg1485.c
    functionUses: 0
    functionsReached:
    - tolower
    - NEEDS_HEX_ESCAPE
    linkageType: ''
    returnType: char
    signature: 'char *

      appendItemToBuf(char* dest, SECItem* src, PRUint32* pRemaining)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_InitCheapArena
      Src: /src/nss/lib/certdb/alg1485.c:1447,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/alg1485.c:1451,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/certdb/alg1485.c:1455,1
    - Dst: CERT_GetNameElement
      Src: /src/nss/lib/certdb/alg1485.c:1459,1
    - Dst: appendStringToBuf
      Src: /src/nss/lib/certdb/alg1485.c:1461,1
    - Dst: CERT_GetNameElement
      Src: /src/nss/lib/certdb/alg1485.c:1463,1
    - Dst: appendStringToBuf
      Src: /src/nss/lib/certdb/alg1485.c:1465,1
    - Dst: CERT_FindCertExtension
      Src: /src/nss/lib/certdb/alg1485.c:1467,1
    - Dst: CERT_DecodeAltNameExtension
      Src: /src/nss/lib/certdb/alg1485.c:1471,1
    - Dst: CERT_GetNameElement
      Src: /src/nss/lib/certdb/alg1485.c:1476,1
    - Dst: appendStringToBuf
      Src: /src/nss/lib/certdb/alg1485.c:1480,1
    - Dst: CERT_GetNameElement
      Src: /src/nss/lib/certdb/alg1485.c:1483,1
    - Dst: appendStringToBuf
      Src: /src/nss/lib/certdb/alg1485.c:1487,1
    - Dst: appendItemToBuf
      Src: /src/nss/lib/certdb/alg1485.c:1490,1
    - Dst: CERT_GetNextGeneralName
      Src: /src/nss/lib/certdb/alg1485.c:1492,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/certdb/alg1485.c:1495,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/certdb/alg1485.c:1502,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/certdb/alg1485.c:1504,1
    - Dst: PORT_DestroyCheapArena
      Src: /src/nss/lib/certdb/alg1485.c:1508,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 1
    argNames:
    - cert
    argTypes:
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1511
      start: 1435
    functionDepth: 5
    functionLinenumber: 1435
    functionLinenumberEnd: 1511
    functionName: cert_GetCertificateEmailAddresses
    functionSourceFile: /src/nss/lib/certdb/alg1485.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - CERT_FindCertExtension
    - PORT_Memcpy
    - PORT_ArenaZAlloc
    - CERT_DecodeAltNameExtension
    - CERT_GetNextGeneralName
    - PORT_ArenaAlloc
    - appendItemToBuf
    - PORT_InitCheapArena
    - appendStringToBuf
    - PORT_DestroyCheapArena
    - CERT_GetNameElement
    - SECITEM_FreeItem
    linkageType: ''
    returnType: char
    signature: 'char *

      cert_GetCertificateEmailAddresses(CERTCertificate* cert)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - cert
    argTypes:
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1523
      start: 1517
    functionDepth: 0
    functionLinenumber: 1517
    functionLinenumberEnd: 1523
    functionName: CERT_GetFirstEmailAddress
    functionSourceFile: /src/nss/lib/certdb/alg1485.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char * /* const so caller won''t muck with it. */

      CERT_GetFirstEmailAddress(CERTCertificate* cert)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PL_strlen
      Src: /src/nss/lib/certdb/alg1485.c:1533,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - cert
    - prev
    argTypes:
    - CERTCertificate*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1539
      start: 1529
    functionDepth: 1
    functionLinenumber: 1529
    functionLinenumberEnd: 1539
    functionName: CERT_GetNextEmailAddress
    functionSourceFile: /src/nss/lib/certdb/alg1485.c
    functionUses: 3
    functionsReached:
    - PL_strlen
    linkageType: ''
    returnType: char
    signature: 'char * /* const so caller won''t muck with it. */

      CERT_GetNextEmailAddress(CERTCertificate* cert, const char* prev)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CERT_GetNameElement
      Src: /src/nss/lib/certdb/alg1485.c:1551,1
    - Dst: CERT_GetNameElement
      Src: /src/nss/lib/certdb/alg1485.c:1553,1
    - Dst: CERT_FixupEmailAddr
      Src: /src/nss/lib/certdb/alg1485.c:1555,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certdb/alg1485.c:1557,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - name
    argTypes:
    - CERTName*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1560
      start: 1545
    functionDepth: 5
    functionLinenumber: 1545
    functionLinenumberEnd: 1560
    functionName: CERT_GetCertEmailAddress
    functionSourceFile: /src/nss/lib/certdb/alg1485.c
    functionUses: 1
    functionsReached:
    - PORT_Free
    - CERT_FixupEmailAddr
    - CERT_GetNameElement
    linkageType: ''
    returnType: char
    signature: 'char *

      CERT_GetCertEmailAddress(const CERTName* name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CERT_GetLastNameElement
      Src: /src/nss/lib/certdb/alg1485.c:1566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - CERTName*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1567
      start: 1563
    functionDepth: 5
    functionLinenumber: 1563
    functionLinenumberEnd: 1567
    functionName: CERT_GetCommonName
    functionSourceFile: /src/nss/lib/certdb/alg1485.c
    functionUses: 6
    functionsReached:
    - CERT_GetLastNameElement
    linkageType: ''
    returnType: char
    signature: 'char *

      CERT_GetCommonName(const CERTName* name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CERT_GetNameElement
      Src: /src/nss/lib/certdb/alg1485.c:1572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - CERTName*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1573
      start: 1569
    functionDepth: 5
    functionLinenumber: 1569
    functionLinenumberEnd: 1573
    functionName: CERT_GetCountryName
    functionSourceFile: /src/nss/lib/certdb/alg1485.c
    functionUses: 2
    functionsReached:
    - CERT_GetNameElement
    linkageType: ''
    returnType: char
    signature: 'char *

      CERT_GetCountryName(const CERTName* name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CERT_GetNameElement
      Src: /src/nss/lib/certdb/alg1485.c:1578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - CERTName*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1579
      start: 1575
    functionDepth: 5
    functionLinenumber: 1575
    functionLinenumberEnd: 1579
    functionName: CERT_GetLocalityName
    functionSourceFile: /src/nss/lib/certdb/alg1485.c
    functionUses: 0
    functionsReached:
    - CERT_GetNameElement
    linkageType: ''
    returnType: char
    signature: 'char *

      CERT_GetLocalityName(const CERTName* name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CERT_GetNameElement
      Src: /src/nss/lib/certdb/alg1485.c:1584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - CERTName*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1585
      start: 1581
    functionDepth: 5
    functionLinenumber: 1581
    functionLinenumberEnd: 1585
    functionName: CERT_GetStateName
    functionSourceFile: /src/nss/lib/certdb/alg1485.c
    functionUses: 1
    functionsReached:
    - CERT_GetNameElement
    linkageType: ''
    returnType: char
    signature: 'char *

      CERT_GetStateName(const CERTName* name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CERT_GetNameElement
      Src: /src/nss/lib/certdb/alg1485.c:1590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - CERTName*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1591
      start: 1587
    functionDepth: 5
    functionLinenumber: 1587
    functionLinenumberEnd: 1591
    functionName: CERT_GetOrgName
    functionSourceFile: /src/nss/lib/certdb/alg1485.c
    functionUses: 2
    functionsReached:
    - CERT_GetNameElement
    linkageType: ''
    returnType: char
    signature: 'char *

      CERT_GetOrgName(const CERTName* name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CERT_GetNameElement
      Src: /src/nss/lib/certdb/alg1485.c:1596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - CERTName*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1597
      start: 1593
    functionDepth: 5
    functionLinenumber: 1593
    functionLinenumberEnd: 1597
    functionName: CERT_GetDomainComponentName
    functionSourceFile: /src/nss/lib/certdb/alg1485.c
    functionUses: 0
    functionsReached:
    - CERT_GetNameElement
    linkageType: ''
    returnType: char
    signature: 'char *

      CERT_GetDomainComponentName(const CERTName* name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CERT_GetNameElement
      Src: /src/nss/lib/certdb/alg1485.c:1603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - CERTName*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1604
      start: 1599
    functionDepth: 5
    functionLinenumber: 1599
    functionLinenumberEnd: 1604
    functionName: CERT_GetOrgUnitName
    functionSourceFile: /src/nss/lib/certdb/alg1485.c
    functionUses: 0
    functionsReached:
    - CERT_GetNameElement
    linkageType: ''
    returnType: char
    signature: 'char *

      CERT_GetOrgUnitName(const CERTName* name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CERT_GetNameElement
      Src: /src/nss/lib/certdb/alg1485.c:1609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - CERTName*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1610
      start: 1606
    functionDepth: 5
    functionLinenumber: 1606
    functionLinenumberEnd: 1610
    functionName: CERT_GetDnQualifier
    functionSourceFile: /src/nss/lib/certdb/alg1485.c
    functionUses: 0
    functionsReached:
    - CERT_GetNameElement
    linkageType: ''
    returnType: char
    signature: 'char *

      CERT_GetDnQualifier(const CERTName* name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CERT_GetNameElement
      Src: /src/nss/lib/certdb/alg1485.c:1615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - CERTName*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1616
      start: 1612
    functionDepth: 5
    functionLinenumber: 1612
    functionLinenumberEnd: 1616
    functionName: CERT_GetCertUid
    functionSourceFile: /src/nss/lib/certdb/alg1485.c
    functionUses: 0
    functionsReached:
    - CERT_GetNameElement
    linkageType: ''
    returnType: char
    signature: 'char *

      CERT_GetCertUid(const CERTName* name)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/certdb/certdb.c:191,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/certdb/certdb.c:197,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/certdb/certdb.c:200,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - arena
    - issuer
    - sn
    - key
    argTypes:
    - PLArenaPool*
    - SECItem*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 206
    functionName: CERT_KeyFromIssuerAndSN
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 0
    functionsReached:
    - PORT_ArenaAlloc
    - PORT_Memcpy
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_KeyFromIssuerAndSN(PLArenaPool *arena, SECItem *issuer,
      SECItem *sn,\n                        SECItem *key)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/certdb/certdb.c:219,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/certdb/certdb.c:225,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/certdb/certdb.c:226,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/certdb/certdb.c:232,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/certdb/certdb.c:233,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/certdb/certdb.c:241,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/certdb/certdb.c:246,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certdb/certdb.c:248,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certdb/certdb.c:252,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - derCert
    - derName
    argTypes:
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 254
    functionName: CERT_NameFromDERCert
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 1
    functionsReached:
    - PORT_Alloc
    - PORT_Memcpy
    - PORT_NewArena
    - PORT_FreeArena
    - SEC_QuickDERDecodeItem
    - PORT_Memset
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERT_NameFromDERCert(SECItem *derCert, SECItem *derName)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_InitCheapArena
      Src: /src/nss/lib/certdb/certdb.c:264,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/certdb/certdb.c:266,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/certdb/certdb.c:267,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/certdb/certdb.c:273,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/certdb/certdb.c:274,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/certdb/certdb.c:281,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/certdb/certdb.c:286,1
    - Dst: PORT_DestroyCheapArena
      Src: /src/nss/lib/certdb/certdb.c:288,1
    - Dst: PORT_DestroyCheapArena
      Src: /src/nss/lib/certdb/certdb.c:292,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - derCert
    - derName
    argTypes:
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 294
    functionName: CERT_IssuerNameFromDERCert
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 1
    functionsReached:
    - PORT_Alloc
    - PORT_Memcpy
    - SEC_QuickDERDecodeItem
    - PORT_InitCheapArena
    - PORT_Memset
    - PORT_DestroyCheapArena
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERT_IssuerNameFromDERCert(SECItem *derCert, SECItem *derName)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_InitCheapArena
      Src: /src/nss/lib/certdb/certdb.c:304,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/certdb/certdb.c:306,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/certdb/certdb.c:307,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/certdb/certdb.c:313,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/certdb/certdb.c:314,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/certdb/certdb.c:321,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/certdb/certdb.c:326,1
    - Dst: PORT_DestroyCheapArena
      Src: /src/nss/lib/certdb/certdb.c:328,1
    - Dst: PORT_DestroyCheapArena
      Src: /src/nss/lib/certdb/certdb.c:332,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - derCert
    - derName
    argTypes:
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 334
    functionName: CERT_SerialNumberFromDERCert
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 4
    functionsReached:
    - PORT_Alloc
    - PORT_Memcpy
    - SEC_QuickDERDecodeItem
    - PORT_InitCheapArena
    - PORT_Memset
    - PORT_DestroyCheapArena
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERT_SerialNumberFromDERCert(SECItem *derCert, SECItem *derName)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/certdb.c:348,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/certdb/certdb.c:352,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/certdb/certdb.c:354,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/certdb/certdb.c:360,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/certdb/certdb.c:361,1
    - Dst: CERT_KeyFromIssuerAndSN
      Src: /src/nss/lib/certdb/certdb.c:368,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - reqArena
    - derCert
    - key
    argTypes:
    - PLArenaPool*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 372
    functionName: CERT_KeyFromDERCert
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 2
    functionsReached:
    - PORT_SetError
    - SEC_QuickDERDecodeItem
    - PORT_Memset
    - CERT_KeyFromIssuerAndSN
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERT_KeyFromDERCert(PLArenaPool *reqArena, SECItem *derCert,
      SECItem *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CERT_FindKeyUsageExtension
      Src: /src/nss/lib/certdb/certdb.c:384,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certdb/certdb.c:391,1
    - Dst: CERT_GovtApprovedBitSet
      Src: /src/nss/lib/certdb/certdb.c:400,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - cert
    argTypes:
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 378
    functionDepth: 5
    functionLinenumber: 378
    functionLinenumberEnd: 406
    functionName: GetKeyUsage
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 7
    functionsReached:
    - PORT_Free
    - CERT_GovtApprovedBitSet
    - CERT_FindKeyUsageExtension
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus GetKeyUsage(CERTCertificate *cert)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/certdb/certdb.c:419,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - seq
    - tagnum
    argTypes:
    - CERTOidSequence*
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 427
    functionName: findOIDinOIDSeqByTagNum
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 0
    functionsReached:
    - SECOID_FindOIDTag
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus findOIDinOIDSeqByTagNum(CERTOidSequence *seq, SECOidTag tagnum)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cert_ComputeCertType
      Src: /src/nss/lib/certdb/certdb.c:441,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/certdb.c:444,1
    - Dst: PR_ATOMIC_SET
      Src: /src/nss/lib/certdb/certdb.c:445,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - cert
    argTypes:
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 447
    functionName: cert_GetCertType
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 4
    functionsReached:
    - PORT_Assert
    - cert_ComputeCertType
    - PR_ATOMIC_SET
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus cert_GetCertType(CERTCertificate *cert)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: findOIDinOIDSeqByTagNum
      Src: /src/nss/lib/certdb/certdb.c:452,1
    - Dst: findOIDinOIDSeqByTagNum
      Src: /src/nss/lib/certdb/certdb.c:456,1
    - Dst: findOIDinOIDSeqByTagNum
      Src: /src/nss/lib/certdb/certdb.c:460,1
    - Dst: findOIDinOIDSeqByTagNum
      Src: /src/nss/lib/certdb/certdb.c:465,1
    - Dst: findOIDinOIDSeqByTagNum
      Src: /src/nss/lib/certdb/certdb.c:469,1
    - Dst: findOIDinOIDSeqByTagNum
      Src: /src/nss/lib/certdb/certdb.c:473,1
    - Dst: findOIDinOIDSeqByTagNum
      Src: /src/nss/lib/certdb/certdb.c:478,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - extKeyUsage
    argTypes:
    - CERTOidSequence*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 483
    functionName: cert_IsIPsecOID
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 0
    functionsReached:
    - findOIDinOIDSeqByTagNum
    linkageType: ''
    returnType: PRBool
    signature: PRBool cert_IsIPsecOID(CERTOidSequence *extKeyUsage)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: CERT_FindNSCertTypeExtension
      Src: /src/nss/lib/certdb/certdb.c:497,1
    - Dst: CERT_FindCertExtension
      Src: /src/nss/lib/certdb/certdb.c:499,1
    - Dst: CERT_DecodeOidSequence
      Src: /src/nss/lib/certdb/certdb.c:502,1
    - Dst: CERT_FindBasicConstraintExten
      Src: /src/nss/lib/certdb/certdb.c:504,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certdb/certdb.c:516,1
    - Dst: findOIDinOIDSeqByTagNum
      Src: /src/nss/lib/certdb/certdb.c:539,1
    - Dst: findOIDinOIDSeqByTagNum
      Src: /src/nss/lib/certdb/certdb.c:544,1
    - Dst: findOIDinOIDSeqByTagNum
      Src: /src/nss/lib/certdb/certdb.c:552,1
    - Dst: findOIDinOIDSeqByTagNum
      Src: /src/nss/lib/certdb/certdb.c:557,1
    - Dst: cert_IsIPsecOID
      Src: /src/nss/lib/certdb/certdb.c:561,1
    - Dst: findOIDinOIDSeqByTagNum
      Src: /src/nss/lib/certdb/certdb.c:564,1
    - Dst: findOIDinOIDSeqByTagNum
      Src: /src/nss/lib/certdb/certdb.c:568,1
    - Dst: findOIDinOIDSeqByTagNum
      Src: /src/nss/lib/certdb/certdb.c:572,1
    - Dst: CERT_IsCACert
      Src: /src/nss/lib/certdb/certdb.c:579,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certdb/certdb.c:601,1
    - Dst: CERT_DestroyOidSequence
      Src: /src/nss/lib/certdb/certdb.c:604,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 72
    argCount: 1
    argNames:
    - cert
    argTypes:
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 485
    functionDepth: 5
    functionLinenumber: 485
    functionLinenumberEnd: 607
    functionName: cert_ComputeCertType
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 2
    functionsReached:
    - CERT_DecodeOidSequence
    - CERT_FindCertExtension
    - CERT_FindBasicConstraintExten
    - CERT_DestroyOidSequence
    - PORT_Free
    - cert_IsIPsecOID
    - findOIDinOIDSeqByTagNum
    - CERT_FindNSCertTypeExtension
    - CERT_IsCACert
    linkageType: ''
    returnType: PRUint32
    signature: PRUint32 cert_ComputeCertType(CERTCertificate *cert)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CERT_FindSubjectKeyIDExtension
      Src: /src/nss/lib/certdb/certdb.c:621,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/certdb/certdb.c:624,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/certdb/certdb.c:626,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certdb/certdb.c:631,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/certdb/certdb.c:641,1
    - Dst: PK11_HashBuf
      Src: /src/nss/lib/certdb/certdb.c:643,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - cert
    argTypes:
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 612
    functionDepth: 10
    functionLinenumber: 612
    functionLinenumberEnd: 655
    functionName: cert_GetKeyID
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 0
    functionsReached:
    - PORT_Memcpy
    - CERT_FindSubjectKeyIDExtension
    - PORT_Free
    - PORT_ArenaAlloc
    - PK11_HashBuf
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus cert_GetKeyID(CERTCertificate *cert)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: CERT_FindAuthKeyIDExten
      Src: /src/nss/lib/certdb/certdb.c:664,1
    - Dst: SECITEM_ItemsAreEqual
      Src: /src/nss/lib/certdb/certdb.c:668,1
    - Dst: CERT_FindSubjectKeyIDExtension
      Src: /src/nss/lib/certdb/certdb.c:677,1
    - Dst: SECITEM_ItemsAreEqual
      Src: /src/nss/lib/certdb/certdb.c:682,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certdb/certdb.c:683,1
    - Dst: CERT_GetGeneralNameByType
      Src: /src/nss/lib/certdb/certdb.c:693,1
    - Dst: SECITEM_ItemsAreEqual
      Src: /src/nss/lib/certdb/certdb.c:696,1
    - Dst: SECITEM_ItemsAreEqual
      Src: /src/nss/lib/certdb/certdb.c:702,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 1
    argNames:
    - cert
    argTypes:
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 657
    functionDepth: 6
    functionLinenumber: 657
    functionLinenumberEnd: 713
    functionName: cert_IsRootCert
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 0
    functionsReached:
    - SECITEM_ItemsAreEqual
    - CERT_GetGeneralNameByType
    - CERT_FindSubjectKeyIDExtension
    - PORT_Free
    - CERT_FindAuthKeyIDExten
    linkageType: ''
    returnType: PRBool
    signature: PRBool cert_IsRootCert(CERTCertificate *cert)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/certdb/certdb.c:730,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/certdb/certdb.c:737,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/certdb/certdb.c:747,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/certdb/certdb.c:753,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/certdb/certdb.c:760,1
    - Dst: cert_HasUnknownCriticalExten
      Src: /src/nss/lib/certdb/certdb.c:767,1
    - Dst: CERT_KeyFromIssuerAndSN
      Src: /src/nss/lib/certdb/certdb.c:772,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/certdb/certdb.c:783,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/certdb/certdb.c:784,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/certdb/certdb.c:789,1
    - Dst: cert_GetCertificateEmailAddresses
      Src: /src/nss/lib/certdb/certdb.c:793,1
    - Dst: cert_GetKeyID
      Src: /src/nss/lib/certdb/certdb.c:796,1
    - Dst: GetKeyUsage
      Src: /src/nss/lib/certdb/certdb.c:802,1
    - Dst: cert_IsRootCert
      Src: /src/nss/lib/certdb/certdb.c:808,1
    - Dst: cert_GetCertType
      Src: /src/nss/lib/certdb/certdb.c:811,1
    - Dst: CERT_NameToAscii
      Src: /src/nss/lib/certdb/certdb.c:816,1
    - Dst: PORT_ArenaStrdup
      Src: /src/nss/lib/certdb/certdb.c:818,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certdb/certdb.c:819,1
    - Dst: CERT_NameToAscii
      Src: /src/nss/lib/certdb/certdb.c:822,1
    - Dst: PORT_ArenaStrdup
      Src: /src/nss/lib/certdb/certdb.c:824,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certdb/certdb.c:825,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certdb/certdb.c:838,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 85
    argCount: 3
    argNames:
    - derSignedCert
    - copyDER
    - nickname
    argTypes:
    - SECItem*
    - PRBool
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 718
    functionDepth: 11
    functionLinenumber: 718
    functionLinenumberEnd: 842
    functionName: CERT_DecodeDERCertificate
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 11
    functionsReached:
    - cert_IsRootCert
    - cert_HasUnknownCriticalExten
    - CERT_NameToAscii
    - PORT_Memcpy
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - cert_GetCertType
    - PORT_FreeArena
    - PORT_ArenaAlloc
    - GetKeyUsage
    - PORT_ArenaStrdup
    - PORT_Free
    - PORT_Strlen
    - CERT_KeyFromIssuerAndSN
    - SEC_QuickDERDecodeItem
    - cert_GetCertificateEmailAddresses
    - cert_GetKeyID
    linkageType: ''
    returnType: CERTCertificate
    signature: "CERTCertificate *\nCERT_DecodeDERCertificate(SECItem *derSignedCert,
      PRBool copyDER,\n                          char *nickname)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CERT_DecodeDERCertificate
      Src: /src/nss/lib/certdb/certdb.c:848,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - derSignedCert
    - copyDER
    - nickname
    argTypes:
    - SECItem*
    - PRBool
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 844
    functionDepth: 12
    functionLinenumber: 844
    functionLinenumberEnd: 849
    functionName: __CERT_DecodeDERCertificate
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 0
    functionsReached:
    - CERT_DecodeDERCertificate
    linkageType: ''
    returnType: CERTCertificate
    signature: "CERTCertificate *\n__CERT_DecodeDERCertificate(SECItem *derSignedCert,
      PRBool copyDER,\n                            char *nickname)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/certdb.c:859,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/certdb/certdb.c:862,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/certdb/certdb.c:868,1
    - Dst: DER_EncodeTimeChoice
      Src: /src/nss/lib/certdb/certdb.c:871,1
    - Dst: DER_EncodeTimeChoice
      Src: /src/nss/lib/certdb/certdb.c:874,1
    - Dst: CERT_DestroyValidity
      Src: /src/nss/lib/certdb/certdb.c:881,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - notBefore
    - notAfter
    argTypes:
    - PRTime
    - PRTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 851
    functionDepth: 1
    functionLinenumber: 851
    functionLinenumberEnd: 883
    functionName: CERT_CreateValidity
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 3
    functionsReached:
    - PORT_NewArena
    - CERT_DestroyValidity
    - PORT_ArenaZAlloc
    - PORT_SetError
    - DER_EncodeTimeChoice
    linkageType: ''
    returnType: CERTValidity
    signature: 'CERTValidity *

      CERT_CreateValidity(PRTime notBefore, PRTime notAfter)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CERT_DestroyValidity
      Src: /src/nss/lib/certdb/certdb.c:890,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/certdb/certdb.c:893,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/certdb/certdb.c:896,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - arena
    - to
    - from
    argTypes:
    - PLArenaPool*
    - CERTValidity*
    - CERTValidity*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 885
    functionDepth: 1
    functionLinenumber: 885
    functionLinenumberEnd: 898
    functionName: CERT_CopyValidity
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 1
    functionsReached:
    - CERT_DestroyValidity
    - SECITEM_CopyItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERT_CopyValidity(PLArenaPool *arena, CERTValidity *to, CERTValidity
      *from)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certdb/certdb.c:904,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - CERTValidity*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 900
    functionDepth: 0
    functionLinenumber: 900
    functionLinenumberEnd: 907
    functionName: CERT_DestroyValidity
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 4
    functionsReached:
    - PORT_FreeArena
    linkageType: ''
    returnType: void
    signature: void CERT_DestroyValidity(CERTValidity *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 918
    functionDepth: 0
    functionLinenumber: 918
    functionLinenumberEnd: 922
    functionName: CERT_GetSlopTime
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRInt32
    signature: PRInt32 CERT_GetSlopTime(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - slop
    argTypes:
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 924
    functionDepth: 0
    functionLinenumber: 924
    functionLinenumberEnd: 931
    functionName: CERT_SetSlopTime
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERT_SetSlopTime(PRInt32 slop)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/certdb.c:939,1
    - Dst: DER_DecodeTimeChoice
      Src: /src/nss/lib/certdb/certdb.c:944,1
    - Dst: DER_DecodeTimeChoice
      Src: /src/nss/lib/certdb/certdb.c:950,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - c
    - notBefore
    - notAfter
    argTypes:
    - CERTCertificate*
    - PRTime*
    - PRTime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 933
    functionDepth: 0
    functionLinenumber: 933
    functionLinenumberEnd: 956
    functionName: CERT_GetCertTimes
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    - DER_DecodeTimeChoice
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERT_GetCertTimes(const CERTCertificate *c, PRTime *notBefore,
      PRTime *notAfter)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/certdb.c:969,1
    - Dst: CERT_GetCertTimes
      Src: /src/nss/lib/certdb/certdb.c:977,1
    - Dst: LL_I2L
      Src: /src/nss/lib/certdb/certdb.c:983,1
    - Dst: LL_UI2L
      Src: /src/nss/lib/certdb/certdb.c:985,1
    - Dst: LL_MUL
      Src: /src/nss/lib/certdb/certdb.c:986,1
    - Dst: LL_SUB
      Src: /src/nss/lib/certdb/certdb.c:987,1
    - Dst: LL_CMP
      Src: /src/nss/lib/certdb/certdb.c:988,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/certdb.c:989,1
    - Dst: LL_CMP
      Src: /src/nss/lib/certdb/certdb.c:992,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/certdb.c:993,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - c
    - t
    - allowOverride
    argTypes:
    - CERTCertificate*
    - PRTime
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 961
    functionDepth: 1
    functionLinenumber: 961
    functionLinenumberEnd: 998
    functionName: CERT_CheckCertValidTimes
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 13
    functionsReached:
    - LL_I2L
    - LL_UI2L
    - LL_MUL
    - CERT_GetCertTimes
    - PORT_SetError
    - LL_CMP
    - LL_SUB
    linkageType: ''
    returnType: SECCertTimeValidity
    signature: "SECCertTimeValidity CERT_CheckCertValidTimes(const CERTCertificate
      *c, PRTime t,\n                         PRBool allowOverride)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DER_DecodeTimeChoice
      Src: /src/nss/lib/certdb/certdb.c:1006,1
    - Dst: DER_DecodeTimeChoice
      Src: /src/nss/lib/certdb/certdb.c:1013,1
    - Dst: LL_I2L
      Src: /src/nss/lib/certdb/certdb.c:1018,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - date
    - notBefore
    - notAfter
    argTypes:
    - CERTCrl*
    - PRTime*
    - PRTime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 1000
    functionDepth: 1
    functionLinenumber: 1000
    functionLinenumberEnd: 1021
    functionName: SEC_GetCrlTimes
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 0
    functionsReached:
    - DER_DecodeTimeChoice
    - LL_I2L
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SEC_GetCrlTimes(CERTCrl *date, PRTime *notBefore, PRTime
      *notAfter)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/certdb.c:1033,1
    - Dst: SEC_GetCrlTimes
      Src: /src/nss/lib/certdb/certdb.c:1037,1
    - Dst: LL_I2L
      Src: /src/nss/lib/certdb/certdb.c:1043,1
    - Dst: LL_I2L
      Src: /src/nss/lib/certdb/certdb.c:1045,1
    - Dst: LL_MUL
      Src: /src/nss/lib/certdb/certdb.c:1046,1
    - Dst: LL_SUB
      Src: /src/nss/lib/certdb/certdb.c:1047,1
    - Dst: LL_CMP
      Src: /src/nss/lib/certdb/certdb.c:1048,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/certdb.c:1049,1
    - Dst: LL_IS_ZERO
      Src: /src/nss/lib/certdb/certdb.c:1056,1
    - Dst: LL_CMP
      Src: /src/nss/lib/certdb/certdb.c:1060,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/certdb.c:1061,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - crl
    - t
    argTypes:
    - CERTCrl*
    - PRTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1026
    functionDepth: 2
    functionLinenumber: 1026
    functionLinenumberEnd: 1066
    functionName: SEC_CheckCrlTimes
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 0
    functionsReached:
    - LL_I2L
    - LL_MUL
    - PORT_SetError
    - LL_CMP
    - LL_SUB
    - SEC_GetCrlTimes
    - LL_IS_ZERO
    linkageType: ''
    returnType: SECCertTimeValidity
    signature: SECCertTimeValidity SEC_CheckCrlTimes(CERTCrl *crl, PRTime t)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SEC_GetCrlTimes
      Src: /src/nss/lib/certdb/certdb.c:1076,1
    - Dst: SEC_GetCrlTimes
      Src: /src/nss/lib/certdb/certdb.c:1081,1
    - Dst: LL_CMP
      Src: /src/nss/lib/certdb/certdb.c:1086,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - inNew
    - old
    argTypes:
    - CERTCrl*
    - CERTCrl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1087
      start: 1068
    functionDepth: 2
    functionLinenumber: 1068
    functionLinenumberEnd: 1087
    functionName: SEC_CrlIsNewer
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 1
    functionsReached:
    - LL_CMP
    - SEC_GetCrlTimes
    linkageType: ''
    returnType: PRBool
    signature: PRBool SEC_CrlIsNewer(CERTCrl *inNew, CERTCrl *old)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/certdb.c:1142,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/certdb.c:1193,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 100
    argCount: 4
    argNames:
    - usage
    - ca
    - retKeyUsage
    - retCertType
    argTypes:
    - SECCertUsage
    - PRBool
    - unsigned int*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1208
      start: 1092
    functionDepth: 0
    functionLinenumber: 1092
    functionLinenumberEnd: 1208
    functionName: CERT_KeyUsageAndTypeForCertUsage
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 8
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_KeyUsageAndTypeForCertUsage(SECCertUsage usage, PRBool
      ca,\n                                 unsigned int *retKeyUsage,\n                                 unsigned
      int *retCertType)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/certdb.c:1217,1
    - Dst: CERT_GetCertKeyType
      Src: /src/nss/lib/certdb/certdb.c:1224,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/certdb.c:1263,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 2
    argNames:
    - cert
    - requiredUsage
    argTypes:
    - CERTCertificate*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1265
      start: 1213
    functionDepth: 2
    functionLinenumber: 1213
    functionLinenumberEnd: 1265
    functionName: CERT_CheckKeyUsage
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 8
    functionsReached:
    - PORT_SetError
    - CERT_GetCertKeyType
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERT_CheckKeyUsage(CERTCertificate *cert, unsigned int requiredUsage)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STAN_GetNSSCertificate
      Src: /src/nss/lib/certdb/certdb.c:1271,1
    - Dst: nssCertificate_AddRef
      Src: /src/nss/lib/certdb/certdb.c:1272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - c
    argTypes:
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1275
      start: 1267
    functionDepth: 0
    functionLinenumber: 1267
    functionLinenumberEnd: 1275
    functionName: CERT_DupCertificate
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 24
    functionsReached:
    - STAN_GetNSSCertificate
    - nssCertificate_AddRef
    linkageType: ''
    returnType: CERTCertificate
    signature: 'CERTCertificate *

      CERT_DupCertificate(CERTCertificate *c)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/certdb.c:1281,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - c
    - der
    argTypes:
    - CERTCertificate*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1286
      start: 1277
    functionDepth: 0
    functionLinenumber: 1277
    functionLinenumberEnd: 1286
    functionName: CERT_GetCertificateDer
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERT_GetCertificateDer(const CERTCertificate *c, SECItem
      *der)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - handle
    argTypes:
    - CERTCertDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1300
      start: 1294
    functionDepth: 0
    functionLinenumber: 1294
    functionLinenumberEnd: 1300
    functionName: CERT_SetDefaultCertDB
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CERT_SetDefaultCertDB(CERTCertDBHandle *handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1306
      start: 1302
    functionDepth: 0
    functionLinenumber: 1302
    functionLinenumberEnd: 1306
    functionName: CERT_GetDefaultCertDB
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 46
    functionsReached: []
    linkageType: ''
    returnType: CERTCertDBHandle
    signature: 'CERTCertDBHandle *

      CERT_GetDefaultCertDB(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Tolower
      Src: /src/nss/lib/certdb/certdb.c:1317,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1322
      start: 1309
    functionDepth: 0
    functionLinenumber: 1309
    functionLinenumberEnd: 1322
    functionName: sec_lower_string
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 0
    functionsReached:
    - PORT_Tolower
    linkageType: ''
    returnType: void
    signature: void sec_lower_string(char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_StringToNetAddr
      Src: /src/nss/lib/certdb/certdb.c:1329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hn
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1331
      start: 1324
    functionDepth: 1
    functionLinenumber: 1324
    functionLinenumberEnd: 1331
    functionName: cert_IsIPAddr
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 0
    functionsReached:
    - PR_StringToNetAddr
    linkageType: ''
    returnType: PRBool
    signature: PRBool cert_IsIPAddr(const char *hn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nss/lib/certdb/certdb.c:1343,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/certdb.c:1344,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/certdb/certdb.c:1347,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/certdb/certdb.c:1351,1
    - Dst: PORT_Strncpy
      Src: /src/nss/lib/certdb/certdb.c:1356,1
    - Dst: sec_lower_string
      Src: /src/nss/lib/certdb/certdb.c:1357,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - cert
    - hn
    argTypes:
    - CERTCertificate*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1363
      start: 1337
    functionDepth: 1
    functionLinenumber: 1337
    functionLinenumberEnd: 1363
    functionName: CERT_AddOKDomainName
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 0
    functionsReached:
    - PORT_ArenaZAlloc
    - PORT_SetError
    - PORT_Strncpy
    - sec_lower_string
    - strlen
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERT_AddOKDomainName(CERTCertificate *cert, const char *hn)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/certdb/certdb.c:1377,1
    - Dst: PORT_RegExpValid
      Src: /src/nss/lib/certdb/certdb.c:1381,1
    - Dst: PORT_RegExpCaseSearch
      Src: /src/nss/lib/certdb/certdb.c:1385,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/certdb.c:1390,1
    - Dst: PORT_Strchr
      Src: /src/nss/lib/certdb/certdb.c:1397,1
    - Dst: PORT_Strchr
      Src: /src/nss/lib/certdb/certdb.c:1398,1
    - Dst: PORT_Strchr
      Src: /src/nss/lib/certdb/certdb.c:1400,1
    - Dst: PORT_Strchr
      Src: /src/nss/lib/certdb/certdb.c:1401,1
    - Dst: PORT_Strrchr
      Src: /src/nss/lib/certdb/certdb.c:1412,1
    - Dst: PORT_Strncasecmp
      Src: /src/nss/lib/certdb/certdb.c:1413,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/lib/certdb/certdb.c:1414,1
    - Dst: PORT_Strncasecmp
      Src: /src/nss/lib/certdb/certdb.c:1416,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/lib/certdb/certdb.c:1424,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/certdb.c:1428,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 24
    argCount: 2
    argNames:
    - cn
    - hn
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1430
      start: 1371
    functionDepth: 1
    functionLinenumber: 1371
    functionLinenumberEnd: 1430
    functionName: cert_TestHostName
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 0
    functionsReached:
    - PORT_Strchr
    - PORT_Strcasecmp
    - PORT_Strrchr
    - PORT_Strncasecmp
    - PORT_RegExpValid
    - PR_GetEnvSecure
    - PORT_SetError
    - PORT_RegExpCaseSearch
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus cert_TestHostName(char *cn, const char *hn)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: CERT_FindCertExtension
      Src: /src/nss/lib/certdb/certdb.c:1452,1
    - Dst: PR_StringToNetAddr
      Src: /src/nss/lib/certdb/certdb.c:1457,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/certdb/certdb.c:1458,1
    - Dst: CERT_DecodeAltNameExtension
      Src: /src/nss/lib/certdb/certdb.c:1462,1
    - Dst: CERT_RFC1485_EscapeAndQuote
      Src: /src/nss/lib/certdb/certdb.c:1474,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/certdb/certdb.c:1477,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/certdb/certdb.c:1480,1
    - Dst: CERT_RFC1485_EscapeAndQuote
      Src: /src/nss/lib/certdb/certdb.c:1483,1
    - Dst: cert_TestHostName
      Src: /src/nss/lib/certdb/certdb.c:1488,1
    - Dst: memcmp
      Src: /src/nss/lib/certdb/certdb.c:1500,1
    - Dst: memcmp
      Src: /src/nss/lib/certdb/certdb.c:1505,1
    - Dst: PR_ConvertIPv4AddrToIPv6
      Src: /src/nss/lib/certdb/certdb.c:1512,1
    - Dst: memcmp
      Src: /src/nss/lib/certdb/certdb.c:1513,1
    - Dst: PR_ConvertIPv4AddrToIPv6
      Src: /src/nss/lib/certdb/certdb.c:1522,1
    - Dst: PR_htonl
      Src: /src/nss/lib/certdb/certdb.c:1522,1
    - Dst: memcmp
      Src: /src/nss/lib/certdb/certdb.c:1523,1
    - Dst: CERT_GetNextGeneralName
      Src: /src/nss/lib/certdb/certdb.c:1535,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/certdb.c:1542,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/certdb.c:1544,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certdb/certdb.c:1552,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/certdb/certdb.c:1556,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 85
    argCount: 2
    argNames:
    - cert
    - hn
    argTypes:
    - CERTCertificate*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1560
      start: 1432
    functionDepth: 4
    functionLinenumber: 1432
    functionLinenumberEnd: 1560
    functionName: cert_VerifySubjectAltName
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 0
    functionsReached:
    - CERT_FindCertExtension
    - PR_ConvertIPv4AddrToIPv6
    - PORT_NewArena
    - PR_StringToNetAddr
    - cert_TestHostName
    - CERT_GetNextGeneralName
    - PORT_ArenaAlloc
    - CERT_RFC1485_EscapeAndQuote
    - PORT_FreeArena
    - PORT_GetError
    - PR_htonl
    - PORT_SetError
    - CERT_DecodeAltNameExtension
    - memcmp
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus cert_VerifySubjectAltName(const CERTCertificate *cert, const
      char *hn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CERT_FindCertExtension
      Src: /src/nss/lib/certdb/certdb.c:1581,1
    - Dst: CERT_DecodeAltNameExtension
      Src: /src/nss/lib/certdb/certdb.c:1586,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/certdb/certdb.c:1587,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - cert
    - arena
    argTypes:
    - CERTCertificate*
    - PLArenaPool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1589
      start: 1569
    functionDepth: 4
    functionLinenumber: 1569
    functionLinenumberEnd: 1589
    functionName: cert_GetSubjectAltNameList
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 1
    functionsReached:
    - CERT_FindCertExtension
    - CERT_DecodeAltNameExtension
    - SECITEM_FreeItem
    linkageType: ''
    returnType: CERTGeneralName
    signature: 'CERTGeneralName *

      cert_GetSubjectAltNameList(const CERTCertificate *cert, PLArenaPool *arena)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CERT_GetNextGeneralName
      Src: /src/nss/lib/certdb/certdb.c:1610,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - firstName
    argTypes:
    - CERTGeneralName*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1614
      start: 1591
    functionDepth: 1
    functionLinenumber: 1591
    functionLinenumberEnd: 1614
    functionName: cert_CountDNSPatterns
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 1
    functionsReached:
    - CERT_GetNextGeneralName
    linkageType: ''
    returnType: PRUint32
    signature: PRUint32 cert_CountDNSPatterns(CERTGeneralName *firstName)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/certdb/certdb.c:1637,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/certdb/certdb.c:1660,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/certdb/certdb.c:1664,1
    - Dst: memcpy
      Src: /src/nss/lib/certdb/certdb.c:1671,1
    - Dst: memcpy
      Src: /src/nss/lib/certdb/certdb.c:1675,1
    - Dst: PR_NetAddrToString
      Src: /src/nss/lib/certdb/certdb.c:1678,1
    - Dst: PORT_ArenaStrdup
      Src: /src/nss/lib/certdb/certdb.c:1681,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/certdb/certdb.c:1690,1
    - Dst: CERT_GetNextGeneralName
      Src: /src/nss/lib/certdb/certdb.c:1694,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 48
    argCount: 3
    argNames:
    - firstName
    - numberOfGeneralNames
    - nickNames
    argTypes:
    - CERTGeneralName*
    - PRUint32
    - CERTCertNicknames*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1698
      start: 1625
    functionDepth: 1
    functionLinenumber: 1625
    functionLinenumberEnd: 1698
    functionName: cert_GetDNSPatternsFromGeneralNames
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PORT_Memcpy
    - CERT_GetNextGeneralName
    - PORT_ArenaAlloc
    - PORT_ArenaStrdup
    - PORT_Strlen
    - PR_NetAddrToString
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus cert_GetDNSPatternsFromGeneralNames(CERTGeneralName *firstName,\n
      \                                   PRUint32 numberOfGeneralNames,\n                                    CERTCertNicknames
      *nickNames)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/certdb/certdb.c:1714,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/certdb/certdb.c:1719,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certdb/certdb.c:1721,1
    - Dst: cert_GetSubjectAltNameList
      Src: /src/nss/lib/certdb/certdb.c:1732,1
    - Dst: cert_CountDNSPatterns
      Src: /src/nss/lib/certdb/certdb.c:1735,1
    - Dst: cert_GetDNSPatternsFromGeneralNames
      Src: /src/nss/lib/certdb/certdb.c:1738,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certdb/certdb.c:1750,1
    - Dst: CERT_GetCommonName
      Src: /src/nss/lib/certdb/certdb.c:1756,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/certdb/certdb.c:1759,1
    - Dst: PORT_ArenaStrdup
      Src: /src/nss/lib/certdb/certdb.c:1761,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certdb/certdb.c:1763,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certdb/certdb.c:1771,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 1
    argNames:
    - cert
    argTypes:
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1773
      start: 1706
    functionDepth: 6
    functionLinenumber: 1706
    functionLinenumberEnd: 1773
    functionName: CERT_GetValidDNSPatternsFromCert
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 0
    functionsReached:
    - PORT_NewArena
    - PORT_FreeArena
    - PORT_ArenaAlloc
    - PORT_ArenaStrdup
    - PORT_Free
    - cert_CountDNSPatterns
    - cert_GetSubjectAltNameList
    - cert_GetDNSPatternsFromGeneralNames
    - CERT_GetCommonName
    linkageType: ''
    returnType: CERTCertNicknames
    signature: 'CERTCertNicknames *

      CERT_GetValidDNSPatternsFromCert(CERTCertificate *cert)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nss/lib/certdb/certdb.c:1786,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/certdb.c:1787,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/lib/certdb/certdb.c:1793,1
    - Dst: cert_VerifySubjectAltName
      Src: /src/nss/lib/certdb/certdb.c:1801,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/certdb/certdb.c:1802,1
    - Dst: CERT_GetCommonName
      Src: /src/nss/lib/certdb/certdb.c:1805,1
    - Dst: cert_IsIPAddr
      Src: /src/nss/lib/certdb/certdb.c:1807,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/lib/certdb/certdb.c:1809,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/certdb.c:1812,1
    - Dst: cert_TestHostName
      Src: /src/nss/lib/certdb/certdb.c:1816,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certdb/certdb.c:1818,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/certdb.c:1820,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - cert
    - hn
    argTypes:
    - CERTCertificate*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1822
      start: 1779
    functionDepth: 6
    functionLinenumber: 1779
    functionLinenumberEnd: 1822
    functionName: CERT_VerifyCertName
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 1
    functionsReached:
    - PORT_Strcasecmp
    - cert_TestHostName
    - cert_VerifySubjectAltName
    - PORT_Free
    - PORT_GetError
    - PORT_SetError
    - cert_IsIPAddr
    - CERT_GetCommonName
    - strlen
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERT_VerifyCertName(const CERTCertificate *cert, const char
      *hn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/certdb/certdb.c:1829,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - c1
    - c2
    argTypes:
    - CERTCertificate*
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1835
      start: 1824
    functionDepth: 0
    functionLinenumber: 1824
    functionLinenumberEnd: 1835
    functionName: CERT_CompareCerts
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 4
    functionsReached:
    - SECITEM_CompareItem
    linkageType: ''
    returnType: PRBool
    signature: PRBool CERT_CompareCerts(const CERTCertificate *c1, const CERTCertificate
      *c2)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strcmp
      Src: /src/nss/lib/certdb/certdb.c:1847,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1852
      start: 1837
    functionDepth: 0
    functionLinenumber: 1837
    functionLinenumberEnd: 1852
    functionName: StringsEqual
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 0
    functionsReached:
    - PORT_Strcmp
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus StringsEqual(char *s1, char *s2)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/certdb/certdb.c:1861,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/certdb/certdb.c:1867,1
    - Dst: CERT_GetCountryName
      Src: /src/nss/lib/certdb/certdb.c:1873,1
    - Dst: CERT_GetCountryName
      Src: /src/nss/lib/certdb/certdb.c:1874,1
    - Dst: StringsEqual
      Src: /src/nss/lib/certdb/certdb.c:1875,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certdb/certdb.c:1876,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certdb/certdb.c:1877,1
    - Dst: CERT_GetLocalityName
      Src: /src/nss/lib/certdb/certdb.c:1883,1
    - Dst: CERT_GetLocalityName
      Src: /src/nss/lib/certdb/certdb.c:1884,1
    - Dst: StringsEqual
      Src: /src/nss/lib/certdb/certdb.c:1885,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certdb/certdb.c:1886,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certdb/certdb.c:1887,1
    - Dst: CERT_GetStateName
      Src: /src/nss/lib/certdb/certdb.c:1893,1
    - Dst: CERT_GetStateName
      Src: /src/nss/lib/certdb/certdb.c:1894,1
    - Dst: StringsEqual
      Src: /src/nss/lib/certdb/certdb.c:1895,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certdb/certdb.c:1896,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certdb/certdb.c:1897,1
    - Dst: CERT_GetOrgName
      Src: /src/nss/lib/certdb/certdb.c:1903,1
    - Dst: CERT_GetOrgName
      Src: /src/nss/lib/certdb/certdb.c:1904,1
    - Dst: StringsEqual
      Src: /src/nss/lib/certdb/certdb.c:1905,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certdb/certdb.c:1906,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certdb/certdb.c:1907,1
    - Dst: CERT_GetOrgUnitName
      Src: /src/nss/lib/certdb/certdb.c:1918,1
    - Dst: CERT_GetOrgUnitName
      Src: /src/nss/lib/certdb/certdb.c:1919,1
    - Dst: StringsEqual
      Src: /src/nss/lib/certdb/certdb.c:1920,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certdb/certdb.c:1921,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certdb/certdb.c:1922,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 50
    argCount: 2
    argNames:
    - c1
    - c2
    argTypes:
    - CERTCertificate*
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1929
      start: 1854
    functionDepth: 6
    functionLinenumber: 1854
    functionLinenumberEnd: 1929
    functionName: CERT_CompareCertsForRedirection
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 0
    functionsReached:
    - SECITEM_CompareItem
    - CERT_GetCountryName
    - PORT_Free
    - CERT_GetOrgUnitName
    - StringsEqual
    - CERT_GetOrgName
    - CERT_GetLocalityName
    - CERT_GetStateName
    linkageType: ''
    returnType: PRBool
    signature: PRBool CERT_CompareCertsForRedirection(CERTCertificate *c1, CERTCertificate
      *c2)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/certdb/certdb.c:1944,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/certdb.c:1946,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/certdb/certdb.c:1950,1
    - Dst: CERT_CopyName
      Src: /src/nss/lib/certdb/certdb.c:1954,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/certdb/certdb.c:1958,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - arena
    - cert
    argTypes:
    - PLArenaPool*
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1963
      start: 1934
    functionDepth: 4
    functionLinenumber: 1934
    functionLinenumberEnd: 1963
    functionName: CERT_GetCertIssuerAndSN
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - CERT_CopyName
    - PORT_ArenaZAlloc
    - SECITEM_CopyItem
    linkageType: ''
    returnType: CERTIssuerAndSN
    signature: 'CERTIssuerAndSN *

      CERT_GetCertIssuerAndSN(PLArenaPool *arena, CERTCertificate *cert)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: CERT_GetCommonName
      Src: /src/nss/lib/certdb/certdb.c:1974,1
    - Dst: CERT_GetOrgUnitName
      Src: /src/nss/lib/certdb/certdb.c:1976,1
    - Dst: CERT_GetOrgName
      Src: /src/nss/lib/certdb/certdb.c:1979,1
    - Dst: CERT_GetDomainComponentName
      Src: /src/nss/lib/certdb/certdb.c:1981,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/certdb/certdb.c:1987,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/certdb/certdb.c:2003,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/certdb/certdb.c:2005,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/certdb/certdb.c:2009,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/certdb/certdb.c:2011,1
    - Dst: CERT_FindCertByNickname
      Src: /src/nss/lib/certdb/certdb.c:2019,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/certdb/certdb.c:2026,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certdb/certdb.c:2029,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certdb/certdb.c:2036,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certdb/certdb.c:2039,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 58
    argCount: 1
    argNames:
    - cert
    argTypes:
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2043
      start: 1965
    functionDepth: 10
    functionLinenumber: 1965
    functionLinenumberEnd: 2043
    functionName: CERT_MakeCANickname
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 2
    functionsReached:
    - CERT_GetDomainComponentName
    - CERT_FindCertByNickname
    - PORT_Free
    - CERT_GetOrgUnitName
    - PR_smprintf
    - CERT_DestroyCertificate
    - CERT_GetOrgName
    - CERT_GetCommonName
    - PORT_Strdup
    linkageType: ''
    returnType: char
    signature: 'char *

      CERT_MakeCANickname(CERTCertificate *cert)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SEC_DestroyCrl
      Src: /src/nss/lib/certdb/certdb.c:2050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - crl
    argTypes:
    - CERTSignedCrl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2051
      start: 2047
    functionDepth: 4
    functionLinenumber: 2047
    functionLinenumberEnd: 2051
    functionName: CERT_DestroyCrl
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 1
    functionsReached:
    - SEC_DestroyCrl
    linkageType: ''
    returnType: void
    signature: void CERT_DestroyCrl(CERTSignedCrl *crl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DER_GetInteger
      Src: /src/nss/lib/certdb/certdb.c:2058,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - cert
    argTypes:
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2063
      start: 2053
    functionDepth: 0
    functionLinenumber: 2053
    functionLinenumberEnd: 2063
    functionName: cert_Version
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 0
    functionsReached:
    - DER_GetInteger
    linkageType: ''
    returnType: int
    signature: int cert_Version(CERTCertificate *cert)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: CERT_GetCertTrust
      Src: /src/nss/lib/certdb/certdb.c:2071,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 2
    argNames:
    - cert
    - cType
    argTypes:
    - CERTCertificate*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2105
      start: 2065
    functionDepth: 2
    functionLinenumber: 2065
    functionLinenumberEnd: 2105
    functionName: cert_ComputeTrustOverrides
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 0
    functionsReached:
    - CERT_GetCertTrust
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int cert_ComputeTrustOverrides(CERTCertificate *cert, unsigned
      int cType)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CERT_FindBasicConstraintExten
      Src: /src/nss/lib/certdb/certdb.c:2122,1
    - Dst: cert_Version
      Src: /src/nss/lib/certdb/certdb.c:2124,1
    - Dst: cert_ComputeTrustOverrides
      Src: /src/nss/lib/certdb/certdb.c:2130,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - cert
    - rettype
    argTypes:
    - CERTCertificate*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2141
      start: 2111
    functionDepth: 4
    functionLinenumber: 2111
    functionLinenumberEnd: 2141
    functionName: CERT_IsCACert
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 9
    functionsReached:
    - cert_ComputeTrustOverrides
    - cert_Version
    - CERT_FindBasicConstraintExten
    linkageType: ''
    returnType: PRBool
    signature: PRBool CERT_IsCACert(CERTCertificate *cert, unsigned int *rettype)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CERT_DecodeDERCertificate
      Src: /src/nss/lib/certdb/certdb.c:2150,1
    - Dst: CERT_IsCACert
      Src: /src/nss/lib/certdb/certdb.c:2154,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/certdb/certdb.c:2155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - derCert
    - type
    argTypes:
    - SECItem*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2157
      start: 2143
    functionDepth: 12
    functionLinenumber: 2143
    functionLinenumberEnd: 2157
    functionName: CERT_IsCADERCert
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 1
    functionsReached:
    - CERT_DecodeDERCertificate
    - CERT_DestroyCertificate
    - CERT_IsCACert
    linkageType: ''
    returnType: PRBool
    signature: PRBool CERT_IsCADERCert(SECItem *derCert, unsigned int *type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CERT_DecodeDERCertificate
      Src: /src/nss/lib/certdb/certdb.c:2166,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/certdb/certdb.c:2171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - derCert
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2173
      start: 2159
    functionDepth: 12
    functionLinenumber: 2159
    functionLinenumberEnd: 2173
    functionName: CERT_IsRootDERCert
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 1
    functionsReached:
    - CERT_DecodeDERCertificate
    - CERT_DestroyCertificate
    linkageType: ''
    returnType: PRBool
    signature: PRBool CERT_IsRootDERCert(SECItem *derCert)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/certdb.c:2181,1
    - Dst: DER_DecodeTimeChoice
      Src: /src/nss/lib/certdb/certdb.c:2185,1
    - Dst: DER_DecodeTimeChoice
      Src: /src/nss/lib/certdb/certdb.c:2186,1
    - Dst: DER_DecodeTimeChoice
      Src: /src/nss/lib/certdb/certdb.c:2187,1
    - Dst: DER_DecodeTimeChoice
      Src: /src/nss/lib/certdb/certdb.c:2188,1
    - Dst: LL_CMP
      Src: /src/nss/lib/certdb/certdb.c:2193,1
    - Dst: LL_CMP
      Src: /src/nss/lib/certdb/certdb.c:2193,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/certdb.c:2194,1
    - Dst: LL_CMP
      Src: /src/nss/lib/certdb/certdb.c:2198,1
    - Dst: LL_CMP
      Src: /src/nss/lib/certdb/certdb.c:2200,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/certdb.c:2204,1
    - Dst: LL_CMP
      Src: /src/nss/lib/certdb/certdb.c:2204,1
    - Dst: LL_CMP
      Src: /src/nss/lib/certdb/certdb.c:2206,1
    - Dst: LL_CMP
      Src: /src/nss/lib/certdb/certdb.c:2210,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 2
    argNames:
    - val_a
    - val_b
    argTypes:
    - CERTValidity*
    - CERTValidity*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2212
      start: 2175
    functionDepth: 1
    functionLinenumber: 2175
    functionLinenumberEnd: 2212
    functionName: CERT_CompareValidityTimes
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - DER_DecodeTimeChoice
    - LL_CMP
    linkageType: ''
    returnType: CERTCompareValidityStatus
    signature: CERTCompareValidityStatus CERT_CompareValidityTimes(CERTValidity *val_a,
      CERTValidity *val_b)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CERT_GetCertTimes
      Src: /src/nss/lib/certdb/certdb.c:2224,1
    - Dst: CERT_GetCertTimes
      Src: /src/nss/lib/certdb/certdb.c:2229,1
    - Dst: LL_CMP
      Src: /src/nss/lib/certdb/certdb.c:2235,1
    - Dst: LL_CMP
      Src: /src/nss/lib/certdb/certdb.c:2240,1
    - Dst: PR_Now
      Src: /src/nss/lib/certdb/certdb.c:2253,1
    - Dst: LL_CMP
      Src: /src/nss/lib/certdb/certdb.c:2258,1
    - Dst: LL_CMP
      Src: /src/nss/lib/certdb/certdb.c:2265,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 2
    argNames:
    - certa
    - certb
    argTypes:
    - CERTCertificate*
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2270
      start: 2217
    functionDepth: 1
    functionLinenumber: 2217
    functionLinenumberEnd: 2270
    functionName: CERT_IsNewer
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 2
    functionsReached:
    - PR_Now
    - CERT_GetCertTimes
    - LL_CMP
    linkageType: ''
    returnType: PRBool
    signature: PRBool CERT_IsNewer(CERTCertificate *certa, CERTCertificate *certb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/certdb/certdb.c:2280,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certdb/certdb.c:2284,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - certs
    - ncerts
    argTypes:
    - CERTCertificate**
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2288
      start: 2272
    functionDepth: 8
    functionLinenumber: 2272
    functionLinenumberEnd: 2288
    functionName: CERT_DestroyCertArray
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 2
    functionsReached:
    - PORT_Free
    - CERT_DestroyCertificate
    linkageType: ''
    returnType: void
    signature: void CERT_DestroyCertArray(CERTCertificate **certs, unsigned int ncerts)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strdup
      Src: /src/nss/lib/certdb/certdb.c:2301,1
    - Dst: tolower
      Src: /src/nss/lib/certdb/certdb.c:2308,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - emailAddr
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2313
      start: 2290
    functionDepth: 0
    functionLinenumber: 2290
    functionLinenumberEnd: 2313
    functionName: CERT_FixupEmailAddr
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 4
    functionsReached:
    - PORT_Strdup
    - tolower
    linkageType: ''
    returnType: char
    signature: 'char *

      CERT_FixupEmailAddr(const char *emailAddr)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/certdb.c:2325,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/certdb.c:2332,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/certdb/certdb.c:2338,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/certdb.c:2383,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 55
    argCount: 2
    argNames:
    - trust
    - trusts
    argTypes:
    - CERTCertTrust*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2389
      start: 2318
    functionDepth: 1
    functionLinenumber: 2318
    functionLinenumberEnd: 2389
    functionName: CERT_DecodeTrustString
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 4
    functionsReached:
    - PORT_SetError
    - PORT_Strlen
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERT_DecodeTrustString(CERTCertTrust *trust, const char *trusts)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strcat
      Src: /src/nss/lib/certdb/certdb.c:2396,1
    - Dst: PORT_Strcat
      Src: /src/nss/lib/certdb/certdb.c:2399,1
    - Dst: PORT_Strcat
      Src: /src/nss/lib/certdb/certdb.c:2401,1
    - Dst: PORT_Strcat
      Src: /src/nss/lib/certdb/certdb.c:2403,1
    - Dst: PORT_Strcat
      Src: /src/nss/lib/certdb/certdb.c:2405,1
    - Dst: PORT_Strcat
      Src: /src/nss/lib/certdb/certdb.c:2407,1
    - Dst: PORT_Strcat
      Src: /src/nss/lib/certdb/certdb.c:2409,1
    - Dst: PORT_Strcat
      Src: /src/nss/lib/certdb/certdb.c:2411,1
    - Dst: PORT_Strcat
      Src: /src/nss/lib/certdb/certdb.c:2413,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 22
    argCount: 2
    argNames:
    - trusts
    - flags
    argTypes:
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2415
      start: 2391
    functionDepth: 0
    functionLinenumber: 2391
    functionLinenumberEnd: 2415
    functionName: EncodeFlags
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 0
    functionsReached:
    - PORT_Strcat
    linkageType: ''
    returnType: void
    signature: void EncodeFlags(char *trusts, unsigned int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EncodeFlags
      Src: /src/nss/lib/certdb/certdb.c:2430,1
    - Dst: EncodeFlags
      Src: /src/nss/lib/certdb/certdb.c:2431,1
    - Dst: EncodeFlags
      Src: /src/nss/lib/certdb/certdb.c:2432,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/certdb/certdb.c:2434,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - trust
    argTypes:
    - CERTCertTrust*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2439
      start: 2417
    functionDepth: 1
    functionLinenumber: 2417
    functionLinenumberEnd: 2439
    functionName: CERT_EncodeTrustString
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 0
    functionsReached:
    - PR_smprintf
    - EncodeFlags
    linkageType: ''
    returnType: char
    signature: 'char *

      CERT_EncodeTrustString(CERTCertTrust *trust)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZNewArray
      Src: /src/nss/lib/certdb/certdb.c:2452,1
    - Dst: CERT_NewTempCertificate
      Src: /src/nss/lib/certdb/certdb.c:2459,1
    - Dst: CERT_FindSubjectKeyIDExtension
      Src: /src/nss/lib/certdb/certdb.c:2463,1
    - Dst: cert_AddSubjectKeyIDMapping
      Src: /src/nss/lib/certdb/certdb.c:2466,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/certdb/certdb.c:2468,1
    - Dst: SECKEY_UpdateCertPQG
      Src: /src/nss/lib/certdb/certdb.c:2479,1
    - Dst: CERT_IsCACert
      Src: /src/nss/lib/certdb/certdb.c:2481,1
    - Dst: CERT_MakeCANickname
      Src: /src/nss/lib/certdb/certdb.c:2483,1
    - Dst: CERT_AddTempCertToPerm
      Src: /src/nss/lib/certdb/certdb.c:2494,1
    - Dst: CERT_AddTempCertToPerm
      Src: /src/nss/lib/certdb/certdb.c:2496,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certdb/certdb.c:2500,1
    - Dst: CERT_DestroyCertArray
      Src: /src/nss/lib/certdb/certdb.c:2510,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 8
    argNames:
    - certdb
    - usage
    - ncerts
    - derCerts
    - retCerts
    - keepCerts
    - caOnly
    - nickname
    argTypes:
    - CERTCertDBHandle*
    - SECCertUsage
    - unsigned int
    - SECItem**
    - CERTCertificate***
    - PRBool
    - PRBool
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2515
      start: 2441
    functionDepth: 11
    functionLinenumber: 2441
    functionLinenumberEnd: 2515
    functionName: CERT_ImportCerts
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 2
    functionsReached:
    - cert_AddSubjectKeyIDMapping
    - PORT_ZNewArray
    - CERT_FindSubjectKeyIDExtension
    - PORT_Free
    - CERT_DestroyCertArray
    - CERT_IsCACert
    - SECKEY_UpdateCertPQG
    - CERT_AddTempCertToPerm
    - CERT_NewTempCertificate
    - SECITEM_FreeItem
    - CERT_MakeCANickname
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_ImportCerts(CERTCertDBHandle *certdb, SECCertUsage
      usage,\n                 unsigned int ncerts, SECItem **derCerts,\n                 CERTCertificate
      ***retCerts, PRBool keepCerts, PRBool caOnly,\n                 char *nickname)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/certdb/certdb.c:2527,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/certdb/certdb.c:2532,1
    - Dst: PR_INIT_CLIST
      Src: /src/nss/lib/certdb/certdb.c:2539,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certdb/certdb.c:2545,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2549
      start: 2521
    functionDepth: 1
    functionLinenumber: 2521
    functionLinenumberEnd: 2549
    functionName: CERT_NewCertList
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 15
    functionsReached:
    - PORT_FreeArena
    - PR_INIT_CLIST
    - PORT_NewArena
    - PORT_ArenaZAlloc
    linkageType: ''
    returnType: CERTCertList
    signature: 'CERTCertList *

      CERT_NewCertList(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/lib/certdb/certdb.c:2560,1
    - Dst: PR_LIST_HEAD
      Src: /src/nss/lib/certdb/certdb.c:2561,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/certdb/certdb.c:2562,1
    - Dst: PR_REMOVE_LINK
      Src: /src/nss/lib/certdb/certdb.c:2563,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/certdb/certdb.c:2566,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - certs
    argTypes:
    - CERTCertList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2569
      start: 2551
    functionDepth: 8
    functionLinenumber: 2551
    functionLinenumberEnd: 2569
    functionName: CERT_DestroyCertList
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 32
    functionsReached:
    - PORT_FreeArena
    - PR_REMOVE_LINK
    - CERT_DestroyCertificate
    - PR_LIST_HEAD
    - PR_CLIST_IS_EMPTY
    linkageType: ''
    returnType: void
    signature: void CERT_DestroyCertList(CERTCertList *certs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/certdb/certdb.c:2574,1
    - Dst: PR_REMOVE_LINK
      Src: /src/nss/lib/certdb/certdb.c:2575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - node
    argTypes:
    - CERTCertListNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2577
      start: 2571
    functionDepth: 8
    functionLinenumber: 2571
    functionLinenumberEnd: 2577
    functionName: CERT_RemoveCertListNode
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 2
    functionsReached:
    - PR_REMOVE_LINK
    - CERT_DestroyCertificate
    linkageType: ''
    returnType: void
    signature: void CERT_RemoveCertListNode(CERTCertListNode *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/certdb/certdb.c:2585,1
    - Dst: PR_INSERT_BEFORE
      Src: /src/nss/lib/certdb/certdb.c:2591,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - certs
    - cert
    - appData
    argTypes:
    - CERTCertList*
    - CERTCertificate*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2599
      start: 2579
    functionDepth: 1
    functionLinenumber: 2579
    functionLinenumberEnd: 2599
    functionName: CERT_AddCertToListTailWithData
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 2
    functionsReached:
    - PR_INSERT_BEFORE
    - PORT_ArenaZAlloc
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_AddCertToListTailWithData(CERTCertList *certs, CERTCertificate
      *cert,\n                               void *appData)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CERT_AddCertToListTailWithData
      Src: /src/nss/lib/certdb/certdb.c:2604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - certs
    - cert
    argTypes:
    - CERTCertList*
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2605
      start: 2601
    functionDepth: 2
    functionLinenumber: 2601
    functionLinenumberEnd: 2605
    functionName: CERT_AddCertToListTail
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 7
    functionsReached:
    - CERT_AddCertToListTailWithData
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERT_AddCertToListTail(CERTCertList *certs, CERTCertificate
      *cert)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CERT_LIST_HEAD
      Src: /src/nss/lib/certdb/certdb.c:2614,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/certdb/certdb.c:2619,1
    - Dst: PR_INSERT_BEFORE
      Src: /src/nss/lib/certdb/certdb.c:2625,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - certs
    - cert
    - appData
    argTypes:
    - CERTCertList*
    - CERTCertificate*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2633
      start: 2607
    functionDepth: 1
    functionLinenumber: 2607
    functionLinenumberEnd: 2633
    functionName: CERT_AddCertToListHeadWithData
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 1
    functionsReached:
    - PR_INSERT_BEFORE
    - CERT_LIST_HEAD
    - PORT_ArenaZAlloc
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_AddCertToListHeadWithData(CERTCertList *certs, CERTCertificate
      *cert,\n                               void *appData)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CERT_AddCertToListHeadWithData
      Src: /src/nss/lib/certdb/certdb.c:2638,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - certs
    - cert
    argTypes:
    - CERTCertList*
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2639
      start: 2635
    functionDepth: 2
    functionLinenumber: 2635
    functionLinenumberEnd: 2639
    functionName: CERT_AddCertToListHead
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 1
    functionsReached:
    - CERT_AddCertToListHeadWithData
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERT_AddCertToListHead(CERTCertList *certs, CERTCertificate
      *cert)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: CERT_GetCertTimes
      Src: /src/nss/lib/certdb/certdb.c:2656,1
    - Dst: CERT_GetCertTimes
      Src: /src/nss/lib/certdb/certdb.c:2661,1
    - Dst: LL_CMP
      Src: /src/nss/lib/certdb/certdb.c:2666,1
    - Dst: LL_CMP
      Src: /src/nss/lib/certdb/certdb.c:2670,1
    - Dst: CERT_CheckCertValidTimes
      Src: /src/nss/lib/certdb/certdb.c:2675,1
    - Dst: CERT_CheckCertValidTimes
      Src: /src/nss/lib/certdb/certdb.c:2681,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 3
    argNames:
    - certa
    - certb
    - arg
    argTypes:
    - CERTCertificate*
    - CERTCertificate*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2712
      start: 2645
    functionDepth: 2
    functionLinenumber: 2645
    functionLinenumberEnd: 2712
    functionName: CERT_SortCBValidity
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 0
    functionsReached:
    - CERT_GetCertTimes
    - CERT_CheckCertValidTimes
    - LL_CMP
    linkageType: ''
    returnType: PRBool
    signature: PRBool CERT_SortCBValidity(CERTCertificate *certa, CERTCertificate
      *certb, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/certdb/certdb.c:2722,1
    - Dst: CERT_LIST_HEAD
      Src: /src/nss/lib/certdb/certdb.c:2728,1
    - Dst: CERT_LIST_END
      Src: /src/nss/lib/certdb/certdb.c:2730,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/certdb/certdb.c:2736,1
    - Dst: PR_INSERT_BEFORE
      Src: /src/nss/lib/certdb/certdb.c:2743,1
    - Dst: CERT_LIST_NEXT
      Src: /src/nss/lib/certdb/certdb.c:2747,1
    - Dst: PR_INSERT_BEFORE
      Src: /src/nss/lib/certdb/certdb.c:2750,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 4
    argNames:
    - certs
    - cert
    - f
    - arg
    argTypes:
    - CERTCertList*
    - CERTCertificate*
    - CERTSortCallback
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2759
      start: 2714
    functionDepth: 8
    functionLinenumber: 2714
    functionLinenumberEnd: 2759
    functionName: CERT_AddCertToListSorted
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 5
    functionsReached:
    - CERT_LIST_NEXT
    - CERT_LIST_HEAD
    - PORT_ArenaZAlloc
    - PR_INSERT_BEFORE
    - CERT_LIST_END
    - CERT_DestroyCertificate
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_AddCertToListSorted(CERTCertList *certs, CERTCertificate
      *cert,\n                         CERTSortCallback f, void *arg)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CERT_KeyUsageAndTypeForCertUsage
      Src: /src/nss/lib/certdb/certdb.c:2781,1
    - Dst: CERT_LIST_HEAD
      Src: /src/nss/lib/certdb/certdb.c:2787,1
    - Dst: CERT_LIST_END
      Src: /src/nss/lib/certdb/certdb.c:2789,1
    - Dst: CERT_CheckKeyUsage
      Src: /src/nss/lib/certdb/certdb.c:2795,1
    - Dst: CERT_IsCACert
      Src: /src/nss/lib/certdb/certdb.c:2806,1
    - Dst: CERT_LIST_NEXT
      Src: /src/nss/lib/certdb/certdb.c:2817,1
    - Dst: CERT_RemoveCertListNode
      Src: /src/nss/lib/certdb/certdb.c:2818,1
    - Dst: CERT_LIST_NEXT
      Src: /src/nss/lib/certdb/certdb.c:2821,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 3
    argNames:
    - certList
    - usage
    - ca
    argTypes:
    - CERTCertList*
    - SECCertUsage
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2828
      start: 2769
    functionDepth: 9
    functionLinenumber: 2769
    functionLinenumberEnd: 2828
    functionName: CERT_FilterCertListByUsage
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 4
    functionsReached:
    - CERT_LIST_NEXT
    - CERT_CheckKeyUsage
    - CERT_LIST_HEAD
    - CERT_IsCACert
    - CERT_KeyUsageAndTypeForCertUsage
    - CERT_LIST_END
    - CERT_RemoveCertListNode
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_FilterCertListByUsage(CERTCertList *certList, SECCertUsage
      usage,\n                           PRBool ca)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CERT_GetCertTrust
      Src: /src/nss/lib/certdb/certdb.c:2836,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - cert
    argTypes:
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2844
      start: 2830
    functionDepth: 2
    functionLinenumber: 2830
    functionLinenumberEnd: 2844
    functionName: CERT_IsUserCert
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 4
    functionsReached:
    - CERT_GetCertTrust
    linkageType: ''
    returnType: PRBool
    signature: PRBool CERT_IsUserCert(CERTCertificate *cert)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CERT_LIST_HEAD
      Src: /src/nss/lib/certdb/certdb.c:2856,1
    - Dst: CERT_LIST_END
      Src: /src/nss/lib/certdb/certdb.c:2858,1
    - Dst: CERT_IsUserCert
      Src: /src/nss/lib/certdb/certdb.c:2860,1
    - Dst: CERT_LIST_NEXT
      Src: /src/nss/lib/certdb/certdb.c:2863,1
    - Dst: CERT_RemoveCertListNode
      Src: /src/nss/lib/certdb/certdb.c:2864,1
    - Dst: CERT_LIST_NEXT
      Src: /src/nss/lib/certdb/certdb.c:2867,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - certList
    argTypes:
    - CERTCertList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2872
      start: 2846
    functionDepth: 9
    functionLinenumber: 2846
    functionLinenumberEnd: 2872
    functionName: CERT_FilterCertListForUserCerts
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 3
    functionsReached:
    - CERT_LIST_NEXT
    - CERT_LIST_HEAD
    - CERT_LIST_END
    - CERT_IsUserCert
    - CERT_RemoveCertListNode
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CERT_FilterCertListForUserCerts(CERTCertList *certList)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CERT_LIST_HEAD
      Src: /src/nss/lib/certdb/certdb.c:2879,1
    - Dst: CERT_LIST_END
      Src: /src/nss/lib/certdb/certdb.c:2879,1
    - Dst: CERT_LIST_NEXT
      Src: /src/nss/lib/certdb/certdb.c:2880,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - cert
    - certList
    argTypes:
    - CERTCertificate*
    - CERTCertList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2886
      start: 2875
    functionDepth: 1
    functionLinenumber: 2875
    functionLinenumberEnd: 2886
    functionName: CERT_IsInList
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 0
    functionsReached:
    - CERT_LIST_NEXT
    - CERT_LIST_END
    - CERT_LIST_HEAD
    linkageType: ''
    returnType: PRBool
    signature: PRBool CERT_IsInList(const CERTCertificate *cert, const CERTCertList
      *certList)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CERT_LIST_EMPTY
      Src: /src/nss/lib/certdb/certdb.c:2901,1
    - Dst: CERT_LIST_HEAD
      Src: /src/nss/lib/certdb/certdb.c:2903,1
    - Dst: CERT_LIST_END
      Src: /src/nss/lib/certdb/certdb.c:2903,1
    - Dst: CERT_LIST_NEXT
      Src: /src/nss/lib/certdb/certdb.c:2905,1
    - Dst: CERT_RemoveCertListNode
      Src: /src/nss/lib/certdb/certdb.c:2906,1
    - Dst: CERT_LIST_HEAD
      Src: /src/nss/lib/certdb/certdb.c:2911,1
    - Dst: CERT_LIST_END
      Src: /src/nss/lib/certdb/certdb.c:2913,1
    - Dst: CERT_IsInList
      Src: /src/nss/lib/certdb/certdb.c:2915,1
    - Dst: CERT_LIST_NEXT
      Src: /src/nss/lib/certdb/certdb.c:2918,1
    - Dst: CERT_RemoveCertListNode
      Src: /src/nss/lib/certdb/certdb.c:2919,1
    - Dst: CERT_LIST_NEXT
      Src: /src/nss/lib/certdb/certdb.c:2922,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - certList
    - filterList
    argTypes:
    - CERTCertList*
    - CERTCertList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2927
      start: 2890
    functionDepth: 9
    functionLinenumber: 2890
    functionLinenumberEnd: 2927
    functionName: CERT_FilterCertListByCertList
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 0
    functionsReached:
    - CERT_LIST_NEXT
    - CERT_LIST_HEAD
    - CERT_LIST_END
    - CERT_LIST_EMPTY
    - CERT_IsInList
    - CERT_RemoveCertListNode
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_FilterCertListByCertList(CERTCertList *certList,\n
      \                             const CERTCertList *filterList)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_FindCertsFromNickname
      Src: /src/nss/lib/certdb/certdb.c:2945,1
    - Dst: CERT_FilterCertListByCertList
      Src: /src/nss/lib/certdb/certdb.c:2948,1
    - Dst: CERT_DestroyCertList
      Src: /src/nss/lib/certdb/certdb.c:2950,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - certList
    - nickname
    - pwarg
    argTypes:
    - CERTCertList*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2952
      start: 2929
    functionDepth: 10
    functionLinenumber: 2929
    functionLinenumberEnd: 2952
    functionName: CERT_FilterCertListByNickname
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 0
    functionsReached:
    - PK11_FindCertsFromNickname
    - CERT_FilterCertListByCertList
    - CERT_DestroyCertList
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_FilterCertListByNickname(CERTCertList *certList, char
      *nickname,\n                              void *pwarg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/certdb.c:2965,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/certdb/certdb.c:2966,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cert
    argTypes:
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2968
      start: 2962
    functionDepth: 1
    functionLinenumber: 2962
    functionLinenumberEnd: 2968
    functionName: CERT_LockCertRefCount
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PZ_Lock
    linkageType: ''
    returnType: void
    signature: void CERT_LockCertRefCount(CERTCertificate *cert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/certdb.c:2976,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/certdb/certdb.c:2977,1
    - Dst: PORT_AssertArg
      Src: /src/nss/lib/certdb/certdb.c:2978,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cert
    argTypes:
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2979
      start: 2973
    functionDepth: 1
    functionLinenumber: 2973
    functionLinenumberEnd: 2979
    functionName: CERT_UnlockCertRefCount
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_AssertArg
    - PZ_Unlock
    linkageType: ''
    returnType: void
    signature: void CERT_UnlockCertRefCount(CERTCertificate *cert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/certdb.c:2992,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/certdb/certdb.c:2993,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cert
    argTypes:
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2994
      start: 2989
    functionDepth: 1
    functionLinenumber: 2989
    functionLinenumberEnd: 2994
    functionName: CERT_LockCertTrust
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 5
    functionsReached:
    - PORT_Assert
    - PZ_Lock
    linkageType: ''
    returnType: void
    signature: void CERT_LockCertTrust(const CERTCertificate *cert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/certdb.c:3004,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/certdb/certdb.c:3005,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cert
    argTypes:
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3006
      start: 3001
    functionDepth: 1
    functionLinenumber: 3001
    functionLinenumberEnd: 3006
    functionName: CERT_LockCertTempPerm
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 8
    functionsReached:
    - PORT_Assert
    - PZ_Lock
    linkageType: ''
    returnType: void
    signature: void CERT_LockCertTempPerm(const CERTCertificate *cert)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/certdb/certdb.c:3015,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cert
    argTypes:
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3017
      start: 3011
    functionDepth: 1
    functionLinenumber: 3011
    functionLinenumberEnd: 3017
    functionName: CERT_MaybeLockCertTempPerm
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 1
    functionsReached:
    - PZ_Lock
    linkageType: ''
    returnType: void
    signature: void CERT_MaybeLockCertTempPerm(const CERTCertificate *cert)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PZ_NewLock
      Src: /src/nss/lib/certdb/certdb.c:3023,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/certdb.c:3024,1
    - Dst: PZ_NewLock
      Src: /src/nss/lib/certdb/certdb.c:3031,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/certdb.c:3032,1
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/certdb/certdb.c:3034,1
    - Dst: PZ_NewLock
      Src: /src/nss/lib/certdb/certdb.c:3041,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/certdb.c:3042,1
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/certdb/certdb.c:3044,1
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/certdb/certdb.c:3045,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3053
      start: 3019
    functionDepth: 1
    functionLinenumber: 3019
    functionLinenumberEnd: 3053
    functionName: cert_InitLocks
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PZ_DestroyLock
    - PZ_NewLock
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus cert_InitLocks(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/certdb.c:3060,1
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/certdb/certdb.c:3062,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/certdb.c:3068,1
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/certdb/certdb.c:3070,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/certdb.c:3076,1
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/certdb/certdb.c:3078,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3084
      start: 3055
    functionDepth: 1
    functionLinenumber: 3055
    functionLinenumberEnd: 3084
    functionName: cert_DestroyLocks
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PZ_DestroyLock
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus cert_DestroyLocks(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/certdb.c:3092,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/certdb/certdb.c:3093,1
    - Dst: PORT_AssertArg
      Src: /src/nss/lib/certdb/certdb.c:3094,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cert
    argTypes:
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3095
      start: 3089
    functionDepth: 1
    functionLinenumber: 3089
    functionLinenumberEnd: 3095
    functionName: CERT_UnlockCertTrust
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 5
    functionsReached:
    - PORT_Assert
    - PORT_AssertArg
    - PZ_Unlock
    linkageType: ''
    returnType: void
    signature: void CERT_UnlockCertTrust(const CERTCertificate *cert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/certdb.c:3103,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/certdb/certdb.c:3104,1
    - Dst: PORT_AssertArg
      Src: /src/nss/lib/certdb/certdb.c:3105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cert
    argTypes:
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3106
      start: 3100
    functionDepth: 1
    functionLinenumber: 3100
    functionLinenumberEnd: 3106
    functionName: CERT_UnlockCertTempPerm
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 8
    functionsReached:
    - PORT_Assert
    - PORT_AssertArg
    - PZ_Unlock
    linkageType: ''
    returnType: void
    signature: void CERT_UnlockCertTempPerm(const CERTCertificate *cert)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Unlock
      Src: /src/nss/lib/certdb/certdb.c:3112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cert
    argTypes:
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3114
      start: 3108
    functionDepth: 1
    functionLinenumber: 3108
    functionLinenumberEnd: 3114
    functionName: CERT_MaybeUnlockCertTempPerm
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 1
    functionsReached:
    - PZ_Unlock
    linkageType: ''
    returnType: void
    signature: void CERT_MaybeUnlockCertTempPerm(const CERTCertificate *cert)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - CERTCertDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3123
      start: 3119
    functionDepth: 0
    functionLinenumber: 3119
    functionLinenumberEnd: 3123
    functionName: CERT_GetStatusConfig
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: CERTStatusConfig
    signature: 'CERTStatusConfig *

      CERT_GetStatusConfig(CERTCertDBHandle *handle)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/certdb.c:3132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - handle
    - statusConfig
    argTypes:
    - CERTCertDBHandle*
    - CERTStatusConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3134
      start: 3129
    functionDepth: 0
    functionLinenumber: 3129
    functionLinenumberEnd: 3134
    functionName: CERT_SetStatusConfig
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: void
    signature: void CERT_SetStatusConfig(CERTCertDBHandle *handle, CERTStatusConfig
      *statusConfig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Alloc
      Src: /src/nss/lib/certdb/certdb.c:3148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pool
    - size
    argTypes:
    - void*
    - PRSize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3149
      start: 3145
    functionDepth: 0
    functionLinenumber: 3145
    functionLinenumberEnd: 3149
    functionName: cert_AllocTable
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    linkageType: ''
    returnType: void
    signature: 'void *

      cert_AllocTable(void *pool, PRSize size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Free
      Src: /src/nss/lib/certdb/certdb.c:3154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pool
    - item
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3155
      start: 3151
    functionDepth: 0
    functionLinenumber: 3151
    functionLinenumberEnd: 3155
    functionName: cert_FreeTable
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    linkageType: ''
    returnType: void
    signature: void cert_FreeTable(void *pool, void *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_New
      Src: /src/nss/lib/certdb/certdb.c:3160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pool
    - key
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3161
      start: 3157
    functionDepth: 1
    functionLinenumber: 3157
    functionLinenumberEnd: 3161
    functionName: cert_AllocEntry
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 0
    functionsReached:
    - PORT_New
    linkageType: ''
    returnType: PLHashEntry
    signature: 'PLHashEntry *

      cert_AllocEntry(void *pool, const void *key)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/certdb/certdb.c:3166,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/certdb/certdb.c:3168,1
    - Dst: PORT_Free
      Src: /src/nss/lib/certdb/certdb.c:3169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pool
    - he
    - flag
    argTypes:
    - void*
    - PLHashEntry*
    - PRUintn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3171
      start: 3163
    functionDepth: 0
    functionLinenumber: 3163
    functionLinenumberEnd: 3171
    functionName: cert_FreeEntry
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - SECITEM_FreeItem
    linkageType: ''
    returnType: void
    signature: void cert_FreeEntry(void *pool, PLHashEntry *he, PRUintn flag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PL_NewHashTable
      Src: /src/nss/lib/certdb/certdb.c:3184,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/certdb.c:3187,1
    - Dst: PR_NewLock
      Src: /src/nss/lib/certdb/certdb.c:3190,1
    - Dst: PL_HashTableDestroy
      Src: /src/nss/lib/certdb/certdb.c:3192,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/certdb.c:3194,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3198
      start: 3176
    functionDepth: 1
    functionLinenumber: 3176
    functionLinenumberEnd: 3198
    functionName: cert_CreateSubjectKeyIDSlotCheckHash
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PL_HashTableDestroy
    - PR_NewLock
    - PL_NewHashTable
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus cert_CreateSubjectKeyIDSlotCheckHash(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PL_NewHashTable
      Src: /src/nss/lib/certdb/certdb.c:3203,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/certdb.c:3206,1
    - Dst: PR_NewLock
      Src: /src/nss/lib/certdb/certdb.c:3209,1
    - Dst: PL_HashTableDestroy
      Src: /src/nss/lib/certdb/certdb.c:3211,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/certdb.c:3213,1
    - Dst: cert_CreateSubjectKeyIDSlotCheckHash
      Src: /src/nss/lib/certdb/certdb.c:3217,1
    - Dst: cert_DestroySubjectKeyIDHashTable
      Src: /src/nss/lib/certdb/certdb.c:3218,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3222
      start: 3200
    functionDepth: 2
    functionLinenumber: 3200
    functionLinenumberEnd: 3222
    functionName: cert_CreateSubjectKeyIDHashTable
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 0
    functionsReached:
    - PL_HashTableDestroy
    - cert_CreateSubjectKeyIDSlotCheckHash
    - cert_DestroySubjectKeyIDHashTable
    - PORT_SetError
    - PR_NewLock
    - PL_NewHashTable
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus cert_CreateSubjectKeyIDHashTable(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/certdb/certdb.c:3235,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/certdb.c:3237,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/certdb/certdb.c:3240,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/certdb/certdb.c:3242,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/certdb.c:3243,1
    - Dst: PR_Lock
      Src: /src/nss/lib/certdb/certdb.c:3247,1
    - Dst: PL_HashTableLookup
      Src: /src/nss/lib/certdb/certdb.c:3253,1
    - Dst: PL_HashTableRemove
      Src: /src/nss/lib/certdb/certdb.c:3255,1
    - Dst: PL_HashTableAdd
      Src: /src/nss/lib/certdb/certdb.c:3258,1
    - Dst: PR_Unlock
      Src: /src/nss/lib/certdb/certdb.c:3260,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - subjKeyID
    - cert
    argTypes:
    - SECItem*
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3263
      start: 3224
    functionDepth: 1
    functionLinenumber: 3224
    functionLinenumberEnd: 3263
    functionName: cert_AddSubjectKeyIDMapping
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 3
    functionsReached:
    - PL_HashTableLookup
    - SECITEM_DupItem
    - PL_HashTableAdd
    - PORT_SetError
    - PR_Lock
    - PL_HashTableRemove
    - PR_Unlock
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus cert_AddSubjectKeyIDMapping(SECItem *subjKeyID, CERTCertificate
      *cert)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_Lock
      Src: /src/nss/lib/certdb/certdb.c:3272,1
    - Dst: PL_HashTableRemove
      Src: /src/nss/lib/certdb/certdb.c:3273,1
    - Dst: PR_Unlock
      Src: /src/nss/lib/certdb/certdb.c:3275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - subjKeyID
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3277
      start: 3265
    functionDepth: 1
    functionLinenumber: 3265
    functionLinenumberEnd: 3277
    functionName: cert_RemoveSubjectKeyIDMapping
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 0
    functionsReached:
    - PL_HashTableRemove
    - PR_Lock
    - PR_Unlock
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus cert_RemoveSubjectKeyIDMapping(SECItem *subjKeyID)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/certdb/certdb.c:3289,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/certdb/certdb.c:3290,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/certdb.c:3292,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/certdb/certdb.c:3295,1
    - Dst: PR_Lock
      Src: /src/nss/lib/certdb/certdb.c:3297,1
    - Dst: PL_HashTableLookup
      Src: /src/nss/lib/certdb/certdb.c:3298,1
    - Dst: PL_HashTableRemove
      Src: /src/nss/lib/certdb/certdb.c:3304,1
    - Dst: PL_HashTableAdd
      Src: /src/nss/lib/certdb/certdb.c:3306,1
    - Dst: PR_Unlock
      Src: /src/nss/lib/certdb/certdb.c:3309,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/certdb/certdb.c:3316,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/certdb/certdb.c:3319,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 2
    argNames:
    - slotid
    - series
    argTypes:
    - SECItem*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3322
      start: 3279
    functionDepth: 1
    functionLinenumber: 3279
    functionLinenumberEnd: 3322
    functionName: cert_UpdateSubjectKeyIDSlotCheck
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 2
    functionsReached:
    - PL_HashTableLookup
    - SECITEM_DupItem
    - PORT_Memcpy
    - PL_HashTableAdd
    - SECITEM_AllocItem
    - PORT_SetError
    - PR_Lock
    - PL_HashTableRemove
    - PR_Unlock
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus cert_UpdateSubjectKeyIDSlotCheck(SECItem *slotid, int series)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/certdb.c:3331,1
    - Dst: PR_Lock
      Src: /src/nss/lib/certdb/certdb.c:3335,1
    - Dst: PL_HashTableLookup
      Src: /src/nss/lib/certdb/certdb.c:3336,1
    - Dst: PR_Unlock
      Src: /src/nss/lib/certdb/certdb.c:3337,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/certdb/certdb.c:3344,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/certdb/certdb.c:3346,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/certdb/certdb.c:3349,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - slotid
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3351
      start: 3324
    functionDepth: 1
    functionLinenumber: 3324
    functionLinenumberEnd: 3351
    functionName: cert_SubjectKeyIDSlotCheckSeries
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - PL_HashTableLookup
    - PORT_Memcpy
    - PORT_SetError
    - PR_Lock
    - PR_Unlock
    linkageType: ''
    returnType: int
    signature: int cert_SubjectKeyIDSlotCheckSeries(SECItem *slotid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_Lock
      Src: /src/nss/lib/certdb/certdb.c:3357,1
    - Dst: PL_HashTableDestroy
      Src: /src/nss/lib/certdb/certdb.c:3358,1
    - Dst: PR_Unlock
      Src: /src/nss/lib/certdb/certdb.c:3360,1
    - Dst: PR_DestroyLock
      Src: /src/nss/lib/certdb/certdb.c:3361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3365
      start: 3353
    functionDepth: 1
    functionLinenumber: 3353
    functionLinenumberEnd: 3365
    functionName: cert_DestroySubjectKeyIDSlotCheckHash
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 0
    functionsReached:
    - PR_Unlock
    - PR_Lock
    - PR_DestroyLock
    - PL_HashTableDestroy
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus cert_DestroySubjectKeyIDSlotCheckHash(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_Lock
      Src: /src/nss/lib/certdb/certdb.c:3371,1
    - Dst: PL_HashTableDestroy
      Src: /src/nss/lib/certdb/certdb.c:3372,1
    - Dst: PR_Unlock
      Src: /src/nss/lib/certdb/certdb.c:3374,1
    - Dst: PR_DestroyLock
      Src: /src/nss/lib/certdb/certdb.c:3375,1
    - Dst: cert_DestroySubjectKeyIDSlotCheckHash
      Src: /src/nss/lib/certdb/certdb.c:3378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3380
      start: 3367
    functionDepth: 2
    functionLinenumber: 3367
    functionLinenumberEnd: 3380
    functionName: cert_DestroySubjectKeyIDHashTable
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 1
    functionsReached:
    - PL_HashTableDestroy
    - cert_DestroySubjectKeyIDSlotCheckHash
    - PR_Lock
    - PR_Unlock
    - PR_DestroyLock
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus cert_DestroySubjectKeyIDHashTable(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_Lock
      Src: /src/nss/lib/certdb/certdb.c:3390,1
    - Dst: PL_HashTableLookup
      Src: /src/nss/lib/certdb/certdb.c:3391,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/certdb/certdb.c:3393,1
    - Dst: PR_Unlock
      Src: /src/nss/lib/certdb/certdb.c:3395,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - subjKeyID
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3397
      start: 3382
    functionDepth: 1
    functionLinenumber: 3382
    functionLinenumberEnd: 3397
    functionName: cert_FindDERCertBySubjectKeyID
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 1
    functionsReached:
    - PR_Unlock
    - PL_HashTableLookup
    - PR_Lock
    - SECITEM_DupItem
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      cert_FindDERCertBySubjectKeyID(SECItem *subjKeyID)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cert_FindDERCertBySubjectKeyID
      Src: /src/nss/lib/certdb/certdb.c:3405,1
    - Dst: CERT_FindCertByDERCert
      Src: /src/nss/lib/certdb/certdb.c:3407,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/certdb/certdb.c:3408,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - handle
    - subjKeyID
    argTypes:
    - CERTCertDBHandle*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3411
      start: 3399
    functionDepth: 2
    functionLinenumber: 3399
    functionLinenumberEnd: 3411
    functionName: CERT_FindCertBySubjectKeyID
    functionSourceFile: /src/nss/lib/certdb/certdb.c
    functionUses: 0
    functionsReached:
    - cert_FindDERCertBySubjectKeyID
    - SECITEM_FreeItem
    - CERT_FindCertByDERCert
    linkageType: ''
    returnType: CERTCertificate
    signature: 'CERTCertificate *

      CERT_FindCertBySubjectKeyID(CERTCertDBHandle *handle, SECItem *subjKeyID)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sysinit/nsssysinit.c:30,1
    - Dst: stat
      Src: /src/nss/lib/sysinit/nsssysinit.c:32,1
    - Dst: S_ISDIR
      Src: /src/nss/lib/sysinit/nsssysinit.c:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - dir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 37
    functionName: testdir
    functionSourceFile: /src/nss/lib/sysinit/nsssysinit.c
    functionUses: 0
    functionsReached:
    - memset
    - S_ISDIR
    - stat
    linkageType: ''
    returnType: int
    signature: int testdir(char *dir)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strcat
      Src: /src/nss/lib/sysinit/nsssysinit.c:48,1
    - Dst: testdir
      Src: /src/nss/lib/sysinit/nsssysinit.c:49,1
    - Dst: mkdir
      Src: /src/nss/lib/sysinit/nsssysinit.c:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - path
    - dir
    - mode
    argTypes:
    - char*
    - char*
    - mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 55
    functionName: appendDirAndCreate
    functionSourceFile: /src/nss/lib/sysinit/nsssysinit.c
    functionUses: 0
    functionsReached:
    - testdir
    - PORT_Strcat
    - mkdir
    linkageType: ''
    returnType: int
    signature: int appendDirAndCreate(char *path, char *dir, mode_t mode)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/sysinit/nsssysinit.c:76,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/sysinit/nsssysinit.c:83,1
    - Dst: strlen
      Src: /src/nss/lib/sysinit/nsssysinit.c:83,1
    - Dst: PORT_Strcpy
      Src: /src/nss/lib/sysinit/nsssysinit.c:84,1
    - Dst: testdir
      Src: /src/nss/lib/sysinit/nsssysinit.c:86,1
    - Dst: PORT_Free
      Src: /src/nss/lib/sysinit/nsssysinit.c:91,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/sysinit/nsssysinit.c:94,1
    - Dst: strlen
      Src: /src/nss/lib/sysinit/nsssysinit.c:96,1
    - Dst: strlen
      Src: /src/nss/lib/sysinit/nsssysinit.c:98,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/sysinit/nsssysinit.c:102,1
    - Dst: PORT_Strcpy
      Src: /src/nss/lib/sysinit/nsssysinit.c:108,1
    - Dst: testdir
      Src: /src/nss/lib/sysinit/nsssysinit.c:109,1
    - Dst: PORT_Free
      Src: /src/nss/lib/sysinit/nsssysinit.c:110,1
    - Dst: PORT_Strcpy
      Src: /src/nss/lib/sysinit/nsssysinit.c:115,1
    - Dst: appendDirAndCreate
      Src: /src/nss/lib/sysinit/nsssysinit.c:116,1
    - Dst: appendDirAndCreate
      Src: /src/nss/lib/sysinit/nsssysinit.c:117,1
    - Dst: PORT_Free
      Src: /src/nss/lib/sysinit/nsssysinit.c:118,1
    - Dst: appendDirAndCreate
      Src: /src/nss/lib/sysinit/nsssysinit.c:123,1
    - Dst: appendDirAndCreate
      Src: /src/nss/lib/sysinit/nsssysinit.c:124,1
    - Dst: PORT_Free
      Src: /src/nss/lib/sysinit/nsssysinit.c:125,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 129
    functionName: getUserDB
    functionSourceFile: /src/nss/lib/sysinit/nsssysinit.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - appendDirAndCreate
    - PORT_Free
    - PR_GetEnvSecure
    - PORT_Strcpy
    - testdir
    - strlen
    linkageType: ''
    returnType: char
    signature: 'char *

      getUserDB(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strdup
      Src: /src/nss/lib/sysinit/nsssysinit.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 136
    functionName: getSystemDB
    functionSourceFile: /src/nss/lib/sysinit/nsssysinit.c
    functionUses: 0
    functionsReached:
    - PORT_Strdup
    linkageType: ''
    returnType: char
    signature: 'char *

      getSystemDB(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getuid
      Src: /src/nss/lib/sysinit/nsssysinit.c:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 144
    functionName: userIsRoot
    functionSourceFile: /src/nss/lib/sysinit/nsssysinit.c
    functionUses: 0
    functionsReached:
    - getuid
    linkageType: ''
    returnType: PRBool
    signature: PRBool userIsRoot()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: access
      Src: /src/nss/lib/sysinit/nsssysinit.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 150
    functionName: userCanModifySystemDB
    functionSourceFile: /src/nss/lib/sysinit/nsssysinit.c
    functionUses: 0
    functionsReached:
    - access
    linkageType: ''
    returnType: PRBool
    signature: PRBool userCanModifySystemDB()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/sysinit/nsssysinit.c:156,1
    - Dst: strcasecmp
      Src: /src/nss/lib/sysinit/nsssysinit.c:160,1
    - Dst: strcasecmp
      Src: /src/nss/lib/sysinit/nsssysinit.c:161,1
    - Dst: strcasecmp
      Src: /src/nss/lib/sysinit/nsssysinit.c:162,1
    - Dst: strcasecmp
      Src: /src/nss/lib/sysinit/nsssysinit.c:163,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 167
    functionName: getFIPSEnv
    functionSourceFile: /src/nss/lib/sysinit/nsssysinit.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    - PR_GetEnvSecure
    linkageType: ''
    returnType: PRBool
    signature: PRBool getFIPSEnv(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/nss/lib/sysinit/nsssysinit.c:178,1
    - Dst: getFIPSEnv
      Src: /src/nss/lib/sysinit/nsssysinit.c:182,1
    - Dst: fread
      Src: /src/nss/lib/sysinit/nsssysinit.c:185,1
    - Dst: fclose
      Src: /src/nss/lib/sysinit/nsssysinit.c:186,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 195
    functionName: getFIPSMode
    functionSourceFile: /src/nss/lib/sysinit/nsssysinit.c
    functionUses: 0
    functionsReached:
    - getFIPSEnv
    - fread
    - fopen
    - fclose
    linkageType: ''
    returnType: PRBool
    signature: PRBool getFIPSMode(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZNewArray
      Src: /src/nss/lib/sysinit/nsssysinit.c:235,1
    - Dst: getFIPSMode
      Src: /src/nss/lib/sysinit/nsssysinit.c:237,1
    - Dst: getSystemDB
      Src: /src/nss/lib/sysinit/nsssysinit.c:246,1
    - Dst: getUserDB
      Src: /src/nss/lib/sysinit/nsssysinit.c:247,1
    - Dst: userIsRoot
      Src: /src/nss/lib/sysinit/nsssysinit.c:250,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/sysinit/nsssysinit.c:252,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/sysinit/nsssysinit.c:262,1
    - Dst: userCanModifySystemDB
      Src: /src/nss/lib/sysinit/nsssysinit.c:272,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/sysinit/nsssysinit.c:273,1
    - Dst: PORT_Free
      Src: /src/nss/lib/sysinit/nsssysinit.c:284,1
    - Dst: PORT_Free
      Src: /src/nss/lib/sysinit/nsssysinit.c:285,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 232
    functionDepth: 3
    functionLinenumber: 232
    functionLinenumberEnd: 288
    functionName: get_list
    functionSourceFile: /src/nss/lib/sysinit/nsssysinit.c
    functionUses: 0
    functionsReached:
    - getFIPSMode
    - PORT_ZNewArray
    - PORT_Free
    - userCanModifySystemDB
    - getUserDB
    - PR_smprintf
    - getSystemDB
    - userIsRoot
    linkageType: ''
    returnType: char
    signature: 'char **

      get_list(char *filename, char *stripped_parameters)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/nss/lib/sysinit/nsssysinit.c:297,1
    - Dst: PORT_Free
      Src: /src/nss/lib/sysinit/nsssysinit.c:299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 301
    functionName: release_list
    functionSourceFile: /src/nss/lib/sysinit/nsssysinit.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - free
    linkageType: ''
    returnType: char
    signature: 'char **

      release_list(char **arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - new
    - ','
    - start
    - ','
    - end
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 311
    functionName: TARGET_SPEC_COPY
    functionSourceFile: /src/nss/lib/sysinit/nsssysinit.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TARGET_SPEC_COPY(new, start, end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - target
    - src
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 330
    functionName: overlapstrcpy
    functionSourceFile: /src/nss/lib/sysinit/nsssysinit.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void overlapstrcpy(char *target, char *src)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Alloc
      Src: /src/nss/lib/sysinit/nsssysinit.c:345,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/sysinit/nsssysinit.c:345,1
    - Dst: NSSUTIL_ArgStrip
      Src: /src/nss/lib/sysinit/nsssysinit.c:348,1
    - Dst: TARGET_SPEC_COPY
      Src: /src/nss/lib/sysinit/nsssysinit.c:349,1
    - Dst: NSSUTIL_HANDLE_STRING_ARG
      Src: /src/nss/lib/sysinit/nsssysinit.c:354,1
    - Dst: NSSUTIL_HANDLE_FINAL_ARG
      Src: /src/nss/lib/sysinit/nsssysinit.c:356,1
    - Dst: TARGET_SPEC_COPY
      Src: /src/nss/lib/sysinit/nsssysinit.c:357,1
    - Dst: PORT_Free
      Src: /src/nss/lib/sysinit/nsssysinit.c:361,1
    - Dst: strncmp
      Src: /src/nss/lib/sysinit/nsssysinit.c:365,1
    - Dst: overlapstrcpy
      Src: /src/nss/lib/sysinit/nsssysinit.c:366,1
    - Dst: strncmp
      Src: /src/nss/lib/sysinit/nsssysinit.c:367,1
    - Dst: overlapstrcpy
      Src: /src/nss/lib/sysinit/nsssysinit.c:368,1
    - Dst: strncmp
      Src: /src/nss/lib/sysinit/nsssysinit.c:369,1
    - Dst: overlapstrcpy
      Src: /src/nss/lib/sysinit/nsssysinit.c:370,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 3
    argNames:
    - parameters
    - filename
    - stripped
    argTypes:
    - char*
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 374
    functionName: parse_parameters
    functionSourceFile: /src/nss/lib/sysinit/nsssysinit.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - strncmp
    - NSSUTIL_ArgStrip
    - PORT_Free
    - NSSUTIL_HANDLE_FINAL_ARG
    - PORT_Strlen
    - overlapstrcpy
    - TARGET_SPEC_COPY
    - NSSUTIL_HANDLE_STRING_ARG
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus parse_parameters(const char *parameters, char **filename,
      char **stripped)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: parse_parameters
      Src: /src/nss/lib/sysinit/nsssysinit.c:385,1
    - Dst: getSystemDB
      Src: /src/nss/lib/sysinit/nsssysinit.c:388,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/sysinit/nsssysinit.c:392,1
    - Dst: free
      Src: /src/nss/lib/sysinit/nsssysinit.c:394,1
    - Dst: get_list
      Src: /src/nss/lib/sysinit/nsssysinit.c:400,1
    - Dst: release_list
      Src: /src/nss/lib/sysinit/nsssysinit.c:403,1
    - Dst: PORT_Free
      Src: /src/nss/lib/sysinit/nsssysinit.c:415,1
    - Dst: PORT_Free
      Src: /src/nss/lib/sysinit/nsssysinit.c:416,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 377
    functionDepth: 4
    functionLinenumber: 377
    functionLinenumberEnd: 418
    functionName: NSS_ReturnModuleSpecData
    functionSourceFile: /src/nss/lib/sysinit/nsssysinit.c
    functionUses: 0
    functionsReached:
    - free
    - PORT_Free
    - parse_parameters
    - get_list
    - getSystemDB
    - release_list
    - PORT_Strdup
    linkageType: ''
    returnType: char
    signature: 'char **

      NSS_ReturnModuleSpecData(unsigned long function, char *parameters, void *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 16
    functionName: IS_NOT_NULL
    functionSourceFile: /src/nss/lib/crmf/crmfreq.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_NOT_NULL(ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1EncodeInteger
      Src: /src/nss/lib/crmf/crmfreq.c:25,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/crmfreq.c:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - poolp
    - dest
    - value
    argTypes:
    - PLArenaPool*
    - SECItem*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 31
    functionName: crmf_encode_integer
    functionSourceFile: /src/nss/lib/crmf/crmfreq.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SEC_ASN1EncodeInteger
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus crmf_encode_integer(PLArenaPool *poolp, SECItem *dest, long
      value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1EncodeUnsignedInteger
      Src: /src/nss/lib/crmf/crmfreq.c:39,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/crmfreq.c:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - poolp
    - dest
    - value
    argTypes:
    - PLArenaPool*
    - SECItem*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 45
    functionName: crmf_encode_unsigned_integer
    functionSourceFile: /src/nss/lib/crmf/crmfreq.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SEC_ASN1EncodeUnsignedInteger
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus crmf_encode_unsigned_integer(PLArenaPool *poolp, SECItem
      *dest,\n                             unsigned long value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/crmf/crmfreq.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - poolp
    - dest
    - src
    argTypes:
    - PLArenaPool*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: crmf_copy_secitem
    functionSourceFile: /src/nss/lib/crmf/crmfreq.c
    functionUses: 0
    functionsReached:
    - SECITEM_CopyItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus crmf_copy_secitem(PLArenaPool *poolp, SECItem *dest, SECItem
      *src)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/crmfreq.c:58,1
    - Dst: CRMF_CertRequestGetNumberOfExtensions
      Src: /src/nss/lib/crmf/crmfreq.c:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 28
    argCount: 2
    argNames:
    - inCertReq
    - inField
    argTypes:
    - CRMFCertRequest*
    - CRMFCertTemplateField
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 85
    functionName: CRMF_DoesRequestHaveField
    functionSourceFile: /src/nss/lib/crmf/crmfreq.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - CRMF_CertRequestGetNumberOfExtensions
    linkageType: ''
    returnType: PRBool
    signature: "PRBool CRMF_DoesRequestHaveField(CRMFCertRequest *inCertReq,\n                          CRMFCertTemplateField
      inField)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/crmf/crmfreq.c:94,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/crmf/crmfreq.c:99,1
    - Dst: crmf_encode_unsigned_integer
      Src: /src/nss/lib/crmf/crmfreq.c:107,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/crmf/crmfreq.c:116,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - inRequestID
    argTypes:
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 119
    functionName: CRMF_CreateCertRequest
    functionSourceFile: /src/nss/lib/crmf/crmfreq.c
    functionUses: 1
    functionsReached:
    - PORT_FreeArena
    - PORT_ArenaZNew
    - PORT_NewArena
    - crmf_encode_unsigned_integer
    linkageType: ''
    returnType: CRMFCertRequest
    signature: 'CRMFCertRequest *

      CRMF_CreateCertRequest(PRUint32 inRequestID)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/crmfreq.c:124,1
    - Dst: PORT_Free
      Src: /src/nss/lib/crmf/crmfreq.c:127,1
    - Dst: PORT_Free
      Src: /src/nss/lib/crmf/crmfreq.c:134,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/crmf/crmfreq.c:137,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - inCertReq
    argTypes:
    - CRMFCertRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 141
    functionName: CRMF_DestroyCertRequest
    functionSourceFile: /src/nss/lib/crmf/crmfreq.c
    functionUses: 4
    functionsReached:
    - PORT_Free
    - PORT_Assert
    - PORT_FreeArena
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CRMF_DestroyCertRequest(CRMFCertRequest *inCertReq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crmf_encode_integer
      Src: /src/nss/lib/crmf/crmfreq.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - poolp
    - dest
    - version
    argTypes:
    - PLArenaPool*
    - SECItem*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 147
    functionName: crmf_template_add_version
    functionSourceFile: /src/nss/lib/crmf/crmfreq.c
    functionUses: 0
    functionsReached:
    - crmf_encode_integer
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus crmf_template_add_version(PLArenaPool *poolp, SECItem *dest,
      long version)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crmf_encode_integer
      Src: /src/nss/lib/crmf/crmfreq.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - poolp
    - dest
    - serial
    argTypes:
    - PLArenaPool*
    - SECItem*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 153
    functionName: crmf_template_add_serialnumber
    functionSourceFile: /src/nss/lib/crmf/crmfreq.c
    functionUses: 0
    functionsReached:
    - crmf_encode_integer
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus crmf_template_add_serialnumber(PLArenaPool *poolp, SECItem
      *dest, long serial)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/crmf/crmfreq.c:164,1
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/crmf/crmfreq.c:168,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/crmf/crmfreq.c:169,1
    - Dst: SECOID_CopyAlgorithmID
      Src: /src/nss/lib/crmf/crmfreq.c:173,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/crmf/crmfreq.c:178,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/crmf/crmfreq.c:185,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - poolp
    - dest
    - src
    argTypes:
    - PLArenaPool*
    - SECAlgorithmID**
    - SECAlgorithmID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 188
    functionName: crmf_template_copy_secalg
    functionSourceFile: /src/nss/lib/crmf/crmfreq.c
    functionUses: 0
    functionsReached:
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - SECOID_CopyAlgorithmID
    - PORT_SetError
    - PORT_ArenaZNew
    - PORT_ArenaUnmark
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus crmf_template_copy_secalg(PLArenaPool *poolp, SECAlgorithmID
      **dest,\n                          SECAlgorithmID *src)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/crmf/crmfreq.c:198,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/crmf/crmfreq.c:199,1
    - Dst: CERT_CopyName
      Src: /src/nss/lib/crmf/crmfreq.c:204,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/crmf/crmfreq.c:208,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/crmf/crmfreq.c:211,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - poolp
    - dest
    - src
    argTypes:
    - PLArenaPool*
    - CERTName**
    - CERTName*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 190
    functionDepth: 4
    functionLinenumber: 190
    functionLinenumberEnd: 214
    functionName: crmf_copy_cert_name
    functionSourceFile: /src/nss/lib/crmf/crmfreq.c
    functionUses: 0
    functionsReached:
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - PORT_ArenaZNew
    - CERT_CopyName
    - PORT_ArenaUnmark
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus crmf_copy_cert_name(PLArenaPool *poolp, CERTName **dest,\n
      \                   CERTName *src)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crmf_copy_cert_name
      Src: /src/nss/lib/crmf/crmfreq.c:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - poolp
    - dest
    - issuerName
    argTypes:
    - PLArenaPool*
    - CERTName**
    - CERTName*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 216
    functionDepth: 5
    functionLinenumber: 216
    functionLinenumberEnd: 221
    functionName: crmf_template_add_issuer
    functionSourceFile: /src/nss/lib/crmf/crmfreq.c
    functionUses: 0
    functionsReached:
    - crmf_copy_cert_name
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus crmf_template_add_issuer(PLArenaPool *poolp, CERTName **dest,\n
      \                        CERTName *issuerName)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/crmf/crmfreq.c:235,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/crmf/crmfreq.c:236,1
    - Dst: DER_EncodeTimeChoice
      Src: /src/nss/lib/crmf/crmfreq.c:242,1
    - Dst: DER_EncodeTimeChoice
      Src: /src/nss/lib/crmf/crmfreq.c:249,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/crmf/crmfreq.c:255,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/crmf/crmfreq.c:258,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 3
    argNames:
    - poolp
    - dest
    - info
    argTypes:
    - PLArenaPool*
    - CRMFOptionalValidity**
    - CRMFValidityCreationInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 261
    functionName: crmf_template_add_validity
    functionSourceFile: /src/nss/lib/crmf/crmfreq.c
    functionUses: 0
    functionsReached:
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - PORT_ArenaZNew
    - DER_EncodeTimeChoice
    - PORT_ArenaUnmark
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus crmf_template_add_validity(PLArenaPool *poolp, CRMFOptionalValidity
      **dest,\n                           CRMFValidityCreationInfo *info)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crmf_copy_cert_name
      Src: /src/nss/lib/crmf/crmfreq.c:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - poolp
    - dest
    - subject
    argTypes:
    - PLArenaPool*
    - CERTName**
    - CERTName*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 263
    functionDepth: 5
    functionLinenumber: 263
    functionLinenumberEnd: 268
    functionName: crmf_template_add_subject
    functionSourceFile: /src/nss/lib/crmf/crmfreq.c
    functionUses: 0
    functionsReached:
    - crmf_copy_cert_name
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus crmf_template_add_subject(PLArenaPool *poolp, CERTName **dest,\n
      \                         CERTName *subject)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZNew
      Src: /src/nss/lib/crmf/crmfreq.c:278,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/crmf/crmfreq.c:278,1
    - Dst: SECKEY_CopySubjectPublicKeyInfo
      Src: /src/nss/lib/crmf/crmfreq.c:282,1
    - Dst: SECKEY_DestroySubjectPublicKeyInfo
      Src: /src/nss/lib/crmf/crmfreq.c:289,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - poolp
    - dest
    - pubKey
    argTypes:
    - PLArenaPool*
    - CERTSubjectPublicKeyInfo**
    - CERTSubjectPublicKeyInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 270
    functionDepth: 2
    functionLinenumber: 270
    functionLinenumberEnd: 293
    functionName: crmf_template_add_public_key
    functionSourceFile: /src/nss/lib/crmf/crmfreq.c
    functionUses: 0
    functionsReached:
    - PORT_ArenaZNew
    - SECKEY_CopySubjectPublicKeyInfo
    - SECKEY_DestroySubjectPublicKeyInfo
    - PORT_ZNew
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus crmf_template_add_public_key(PLArenaPool *poolp,\n                             CERTSubjectPublicKeyInfo
      **dest,\n                             CERTSubjectPublicKeyInfo *pubKey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CRMF_BITS_TO_BYTES
      Src: /src/nss/lib/crmf/crmfreq.c:302,1
    - Dst: crmf_copy_secitem
      Src: /src/nss/lib/crmf/crmfreq.c:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - poolp
    - dest
    - src
    argTypes:
    - PLArenaPool*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 306
    functionName: crmf_copy_bitstring
    functionSourceFile: /src/nss/lib/crmf/crmfreq.c
    functionUses: 0
    functionsReached:
    - CRMF_BITS_TO_BYTES
    - crmf_copy_secitem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus crmf_copy_bitstring(PLArenaPool *poolp, SECItem *dest, const
      SECItem *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crmf_copy_bitstring
      Src: /src/nss/lib/crmf/crmfreq.c:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - poolp
    - dest
    - issuerUID
    argTypes:
    - PLArenaPool*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 308
    functionDepth: 2
    functionLinenumber: 308
    functionLinenumberEnd: 313
    functionName: crmf_template_add_issuer_uid
    functionSourceFile: /src/nss/lib/crmf/crmfreq.c
    functionUses: 0
    functionsReached:
    - crmf_copy_bitstring
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus crmf_template_add_issuer_uid(PLArenaPool *poolp, SECItem
      *dest,\n                             const SECItem *issuerUID)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crmf_copy_bitstring
      Src: /src/nss/lib/crmf/crmfreq.c:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - poolp
    - dest
    - subjectUID
    argTypes:
    - PLArenaPool*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 315
    functionDepth: 2
    functionLinenumber: 315
    functionLinenumberEnd: 320
    functionName: crmf_template_add_subject_uid
    functionSourceFile: /src/nss/lib/crmf/crmfreq.c
    functionUses: 0
    functionsReached:
    - crmf_copy_bitstring
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus crmf_template_add_subject_uid(PLArenaPool *poolp, SECItem
      *dest,\n                              const SECItem *subjectUID)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memset
      Src: /src/nss/lib/crmf/crmfreq.c:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - extensions
    - numToZeroize
    argTypes:
    - CRMFCertExtension**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 327
    functionName: crmf_zeroize_new_extensions
    functionSourceFile: /src/nss/lib/crmf/crmfreq.c
    functionUses: 0
    functionsReached:
    - PORT_Memset
    linkageType: ''
    returnType: void
    signature: "void crmf_zeroize_new_extensions(CRMFCertExtension **extensions,\n
      \                           int numToZeroize)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/crmf/crmfreq.c:349,1
    - Dst: PORT_ZNewArray
      Src: /src/nss/lib/crmf/crmfreq.c:352,1
    - Dst: PORT_Realloc
      Src: /src/nss/lib/crmf/crmfreq.c:355,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/crmf/crmfreq.c:365,1
    - Dst: crmf_copy_secitem
      Src: /src/nss/lib/crmf/crmfreq.c:370,1
    - Dst: crmf_copy_secitem
      Src: /src/nss/lib/crmf/crmfreq.c:374,1
    - Dst: crmf_copy_secitem
      Src: /src/nss/lib/crmf/crmfreq.c:379,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/crmf/crmfreq.c:386,1
    - Dst: crmf_zeroize_new_extensions
      Src: /src/nss/lib/crmf/crmfreq.c:389,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/crmf/crmfreq.c:393,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 51
    argCount: 3
    argNames:
    - poolp
    - inTemplate
    - extensions
    argTypes:
    - PLArenaPool*
    - CRMFCertTemplate*
    - CRMFCertExtCreationInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 395
    functionName: crmf_template_add_extensions
    functionSourceFile: /src/nss/lib/crmf/crmfreq.c
    functionUses: 0
    functionsReached:
    - PORT_ZNewArray
    - crmf_zeroize_new_extensions
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - PORT_ArenaZNew
    - PORT_Realloc
    - PORT_ArenaUnmark
    - crmf_copy_secitem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus crmf_template_add_extensions(PLArenaPool *poolp, CRMFCertTemplate
      *inTemplate,\n                             CRMFCertExtCreationInfo *extensions)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/crmf/crmfreq.c:414,1
    - Dst: crmf_template_add_version
      Src: /src/nss/lib/crmf/crmfreq.c:417,1
    - Dst: crmf_template_add_serialnumber
      Src: /src/nss/lib/crmf/crmfreq.c:421,1
    - Dst: crmf_template_copy_secalg
      Src: /src/nss/lib/crmf/crmfreq.c:426,1
    - Dst: crmf_template_add_issuer
      Src: /src/nss/lib/crmf/crmfreq.c:430,1
    - Dst: crmf_template_add_validity
      Src: /src/nss/lib/crmf/crmfreq.c:434,1
    - Dst: crmf_template_add_subject
      Src: /src/nss/lib/crmf/crmfreq.c:438,1
    - Dst: crmf_template_add_public_key
      Src: /src/nss/lib/crmf/crmfreq.c:442,1
    - Dst: crmf_template_add_issuer_uid
      Src: /src/nss/lib/crmf/crmfreq.c:446,1
    - Dst: crmf_template_add_subject_uid
      Src: /src/nss/lib/crmf/crmfreq.c:450,1
    - Dst: crmf_template_add_extensions
      Src: /src/nss/lib/crmf/crmfreq.c:454,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/crmf/crmfreq.c:459,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/crmf/crmfreq.c:461,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 3
    argNames:
    - inCertReq
    - inTemplateField
    - data
    argTypes:
    - CRMFCertRequest*
    - CRMFCertTemplateField
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 397
    functionDepth: 6
    functionLinenumber: 397
    functionLinenumberEnd: 464
    functionName: CRMF_CertRequestSetTemplateField
    functionSourceFile: /src/nss/lib/crmf/crmfreq.c
    functionUses: 2
    functionsReached:
    - crmf_template_add_issuer
    - crmf_template_add_issuer_uid
    - crmf_template_add_version
    - crmf_template_add_serialnumber
    - crmf_template_add_validity
    - crmf_template_add_extensions
    - PORT_ArenaMark
    - crmf_template_copy_secalg
    - PORT_ArenaRelease
    - crmf_template_add_public_key
    - crmf_template_add_subject
    - PORT_ArenaUnmark
    - crmf_template_add_subject_uid
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CRMF_CertRequestSetTemplateField(CRMFCertRequest *inCertReq,\n
      \                                CRMFCertTemplateField inTemplateField,\n                                 void
      *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/crmfreq.c:470,1
    - Dst: crmf_copy_cert_request
      Src: /src/nss/lib/crmf/crmfreq.c:474,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - inCertReqMsg
    - inCertReq
    argTypes:
    - CRMFCertReqMsg*
    - CRMFCertRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 466
    functionDepth: 1
    functionLinenumber: 466
    functionLinenumberEnd: 477
    functionName: CRMF_CertReqMsgSetCertRequest
    functionSourceFile: /src/nss/lib/crmf/crmfreq.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - crmf_copy_cert_request
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CRMF_CertReqMsgSetCertRequest(CRMFCertReqMsg *inCertReqMsg,\n
      \                             CRMFCertRequest *inCertReq)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/crmf/crmfreq.c:485,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/crmf/crmfreq.c:489,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/crmf/crmfreq.c:498,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 479
    functionDepth: 1
    functionLinenumber: 479
    functionLinenumberEnd: 501
    functionName: CRMF_CreateCertReqMsg
    functionSourceFile: /src/nss/lib/crmf/crmfreq.c
    functionUses: 1
    functionsReached:
    - PORT_FreeArena
    - PORT_ArenaZNew
    - PORT_NewArena
    linkageType: ''
    returnType: CRMFCertReqMsg
    signature: 'CRMFCertReqMsg *

      CRMF_CreateCertReqMsg(void)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/crmfreq.c:506,1
    - Dst: PORT_Free
      Src: /src/nss/lib/crmf/crmfreq.c:509,1
    - Dst: PORT_Free
      Src: /src/nss/lib/crmf/crmfreq.c:512,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/crmf/crmfreq.c:515,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - inCertReqMsg
    argTypes:
    - CRMFCertReqMsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 517
    functionName: CRMF_DestroyCertReqMsg
    functionSourceFile: /src/nss/lib/crmf/crmfreq.c
    functionUses: 3
    functionsReached:
    - PORT_Free
    - PORT_Assert
    - PORT_FreeArena
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CRMF_DestroyCertReqMsg(CRMFCertReqMsg *inCertReqMsg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZNew
      Src: /src/nss/lib/crmf/crmfreq.c:529,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/crmf/crmfreq.c:529,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/lib/crmf/crmfreq.c:533,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/crmf/crmfreq.c:539,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/crmf/crmfreq.c:544,1
    - Dst: PORT_New
      Src: /src/nss/lib/crmf/crmfreq.c:550,1
    - Dst: PORT_ArenaNew
      Src: /src/nss/lib/crmf/crmfreq.c:551,1
    - Dst: CRMF_DestroyCertExtension
      Src: /src/nss/lib/crmf/crmfreq.c:561,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 37
    argCount: 4
    argNames:
    - poolp
    - id
    - isCritical
    - data
    argTypes:
    - PLArenaPool*
    - SECOidTag
    - PRBool
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 564
    functionName: crmf_create_cert_extension
    functionSourceFile: /src/nss/lib/crmf/crmfreq.c
    functionUses: 0
    functionsReached:
    - SECOID_FindOIDByTag
    - PORT_ZNew
    - PORT_ArenaNew
    - CRMF_DestroyCertExtension
    - SECITEM_CopyItem
    - PORT_ArenaZNew
    - PORT_New
    linkageType: ''
    returnType: CRMFCertExtension
    signature: "CRMFCertExtension *\ncrmf_create_cert_extension(PLArenaPool *poolp,\n
      \                          SECOidTag id,\n                           PRBool
      isCritical,\n                           SECItem *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crmf_create_cert_extension
      Src: /src/nss/lib/crmf/crmfreq.c:571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - id
    - isCritical
    - data
    argTypes:
    - SECOidTag
    - PRBool
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 566
    functionDepth: 2
    functionLinenumber: 566
    functionLinenumberEnd: 572
    functionName: CRMF_CreateCertExtension
    functionSourceFile: /src/nss/lib/crmf/crmfreq.c
    functionUses: 1
    functionsReached:
    - crmf_create_cert_extension
    linkageType: ''
    returnType: CRMFCertExtension
    signature: "CRMFCertExtension *\nCRMF_CreateCertExtension(SECOidTag id,\n                         PRBool
      isCritical,\n                         SECItem *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/crmf/crmfreq.c:578,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/crmf/crmfreq.c:579,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/crmf/crmfreq.c:580,1
    - Dst: PORT_Free
      Src: /src/nss/lib/crmf/crmfreq.c:582,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - inExtension
    - freeit
    argTypes:
    - CRMFCertExtension*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 586
    functionName: crmf_destroy_cert_extension
    functionSourceFile: /src/nss/lib/crmf/crmfreq.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus crmf_destroy_cert_extension(CRMFCertExtension *inExtension,
      PRBool freeit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crmf_destroy_cert_extension
      Src: /src/nss/lib/crmf/crmfreq.c:591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inExtension
    argTypes:
    - CRMFCertExtension*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 588
    functionDepth: 1
    functionLinenumber: 588
    functionLinenumberEnd: 592
    functionName: CRMF_DestroyCertExtension
    functionSourceFile: /src/nss/lib/crmf/crmfreq.c
    functionUses: 2
    functionsReached:
    - crmf_destroy_cert_extension
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CRMF_DestroyCertExtension(CRMFCertExtension *inExtension)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/crmfreq.c:597,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/crmf/crmfreq.c:599,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - inCertReqMsgs
    argTypes:
    - CRMFCertReqMessages*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 594
    functionDepth: 0
    functionLinenumber: 594
    functionLinenumberEnd: 602
    functionName: CRMF_DestroyCertReqMessages
    functionSourceFile: /src/nss/lib/crmf/crmfreq.c
    functionUses: 2
    functionsReached:
    - PORT_FreeArena
    - PORT_Assert
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CRMF_DestroyCertReqMessages(CRMFCertReqMessages *inCertReqMsgs)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - item
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 611
    functionName: crmf_item_has_data
    functionSourceFile: /src/nss/lib/crmf/crmfreq.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool crmf_item_has_data(SECItem *item)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/crmfreq.c:620,1
    - Dst: crmf_item_has_data
      Src: /src/nss/lib/crmf/crmfreq.c:630,1
    - Dst: crmf_item_has_data
      Src: /src/nss/lib/crmf/crmfreq.c:633,1
    - Dst: IS_NOT_NULL
      Src: /src/nss/lib/crmf/crmfreq.c:636,1
    - Dst: IS_NOT_NULL
      Src: /src/nss/lib/crmf/crmfreq.c:639,1
    - Dst: IS_NOT_NULL
      Src: /src/nss/lib/crmf/crmfreq.c:642,1
    - Dst: IS_NOT_NULL
      Src: /src/nss/lib/crmf/crmfreq.c:645,1
    - Dst: IS_NOT_NULL
      Src: /src/nss/lib/crmf/crmfreq.c:648,1
    - Dst: crmf_item_has_data
      Src: /src/nss/lib/crmf/crmfreq.c:651,1
    - Dst: crmf_item_has_data
      Src: /src/nss/lib/crmf/crmfreq.c:654,1
    - Dst: IS_NOT_NULL
      Src: /src/nss/lib/crmf/crmfreq.c:657,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 2
    argNames:
    - inCertReq
    - inTemplateField
    argTypes:
    - CRMFCertRequest*
    - CRMFCertTemplateField
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 663
    functionName: CRMF_CertRequestIsFieldPresent
    functionSourceFile: /src/nss/lib/crmf/crmfreq.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - IS_NOT_NULL
    - crmf_item_has_data
    linkageType: ''
    returnType: PRBool
    signature: "PRBool CRMF_CertRequestIsFieldPresent(CRMFCertRequest *inCertReq,\n
      \                              CRMFCertTemplateField inTemplateField)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Free
      Src: /src/nss/lib/crmf/respcmn.c:15,1
    - Dst: PORT_Free
      Src: /src/nss/lib/crmf/respcmn.c:19,1
    - Dst: PORT_Free
      Src: /src/nss/lib/crmf/respcmn.c:23,1
    - Dst: PORT_Free
      Src: /src/nss/lib/crmf/respcmn.c:27,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - info
    - freeit
    argTypes:
    - CMMFPKIStatusInfo*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 30
    functionName: cmmf_DestroyPKIStatusInfo
    functionSourceFile: /src/nss/lib/crmf/respcmn.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus cmmf_DestroyPKIStatusInfo(CMMFPKIStatusInfo *info, PRBool
      freeit)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/respcmn.c:35,1
    - Dst: PORT_Free
      Src: /src/nss/lib/crmf/respcmn.c:38,1
    - Dst: cmmf_DestroyPKIStatusInfo
      Src: /src/nss/lib/crmf/respcmn.c:40,1
    - Dst: CMMF_DestroyCertifiedKeyPair
      Src: /src/nss/lib/crmf/respcmn.c:42,1
    - Dst: PORT_Free
      Src: /src/nss/lib/crmf/respcmn.c:44,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - inCertResp
    argTypes:
    - CMMFCertResponse*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 47
    functionName: CMMF_DestroyCertResponse
    functionSourceFile: /src/nss/lib/crmf/respcmn.c
    functionUses: 1
    functionsReached:
    - PORT_Free
    - PORT_Assert
    - CMMF_DestroyCertifiedKeyPair
    - cmmf_DestroyPKIStatusInfo
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CMMF_DestroyCertResponse(CMMFCertResponse *inCertResp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/respcmn.c:52,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/crmf/respcmn.c:64,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/crmf/respcmn.c:72,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/crmf/respcmn.c:77,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 1
    argNames:
    - inCertRepContent
    argTypes:
    - CMMFCertRepContent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 49
    functionDepth: 8
    functionLinenumber: 49
    functionLinenumberEnd: 81
    functionName: CMMF_DestroyCertRepContent
    functionSourceFile: /src/nss/lib/crmf/respcmn.c
    functionUses: 2
    functionsReached:
    - PORT_FreeArena
    - PORT_Assert
    - CERT_DestroyCertificate
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CMMF_DestroyCertRepContent(CMMFCertRepContent *inCertRepContent)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/respcmn.c:86,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/crmf/respcmn.c:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - inDecKeyCont
    argTypes:
    - CMMFPOPODecKeyChallContent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 91
    functionName: CMMF_DestroyPOPODecKeyChallContent
    functionSourceFile: /src/nss/lib/crmf/respcmn.c
    functionUses: 1
    functionsReached:
    - PORT_FreeArena
    - PORT_Assert
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CMMF_DestroyPOPODecKeyChallContent(CMMFPOPODecKeyChallContent
      *inDecKeyCont)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZNew
      Src: /src/nss/lib/crmf/respcmn.c:96,1
    - Dst: DER_DecodeTimeChoice
      Src: /src/nss/lib/crmf/respcmn.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - src
    - dest
    argTypes:
    - SECItem*
    - PRTime**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: crmf_create_prtime
    functionSourceFile: /src/nss/lib/crmf/respcmn.c
    functionUses: 0
    functionsReached:
    - DER_DecodeTimeChoice
    - PORT_ZNew
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus crmf_create_prtime(SECItem *src, PRTime **dest)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/respcmn.c:108,1
    - Dst: CRMF_CertExtensionGetOidTag
      Src: /src/nss/lib/crmf/respcmn.c:112,1
    - Dst: CRMF_CertExtensionGetIsCritical
      Src: /src/nss/lib/crmf/respcmn.c:113,1
    - Dst: CRMF_CertExtensionGetValue
      Src: /src/nss/lib/crmf/respcmn.c:114,1
    - Dst: crmf_create_cert_extension
      Src: /src/nss/lib/crmf/respcmn.c:115,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/crmf/respcmn.c:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - poolp
    - inExtension
    argTypes:
    - PLArenaPool*
    - CRMFCertExtension*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 120
    functionName: crmf_copy_cert_extension
    functionSourceFile: /src/nss/lib/crmf/respcmn.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - crmf_create_cert_extension
    - CRMF_CertExtensionGetOidTag
    - CRMF_CertExtensionGetIsCritical
    - CRMF_CertExtensionGetValue
    - SECITEM_FreeItem
    linkageType: ''
    returnType: CRMFCertExtension
    signature: 'CRMFCertExtension *

      crmf_copy_cert_extension(PLArenaPool *poolp, CRMFCertExtension *inExtension)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/crmf/respcmn.c:125,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/crmf/respcmn.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inCert
    argTypes:
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 127
    functionName: cmmf_encode_certificate
    functionSourceFile: /src/nss/lib/crmf/respcmn.c
    functionUses: 0
    functionsReached:
    - SEC_ASN1_GET
    - SEC_ASN1EncodeItem
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      cmmf_encode_certificate(CERTCertificate *inCert)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CERT_NewCertList
      Src: /src/nss/lib/crmf/respcmn.c:138,1
    - Dst: cmmf_encode_certificate
      Src: /src/nss/lib/crmf/respcmn.c:145,1
    - Dst: CERT_NewTempCertificate
      Src: /src/nss/lib/crmf/respcmn.c:147,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/lib/crmf/respcmn.c:147,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/crmf/respcmn.c:150,1
    - Dst: CERT_AddCertToListTail
      Src: /src/nss/lib/crmf/respcmn.c:156,1
    - Dst: CERT_DestroyCertList
      Src: /src/nss/lib/crmf/respcmn.c:163,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 1
    argNames:
    - inCerts
    argTypes:
    - CERTCertificate**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 129
    functionDepth: 9
    functionLinenumber: 129
    functionLinenumberEnd: 165
    functionName: cmmf_MakeCertList
    functionSourceFile: /src/nss/lib/crmf/respcmn.c
    functionUses: 0
    functionsReached:
    - cmmf_encode_certificate
    - CERT_DestroyCertList
    - CERT_NewCertList
    - CERT_GetDefaultCertDB
    - CERT_AddCertToListTail
    - CERT_NewTempCertificate
    - SECITEM_FreeItem
    linkageType: ''
    returnType: CERTCertList
    signature: 'CERTCertList *

      cmmf_MakeCertList(CERTCertificate **inCerts)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DER_GetInteger
      Src: /src/nss/lib/crmf/respcmn.c:172,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - inStatus
    argTypes:
    - CMMFPKIStatusInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 177
    functionName: cmmf_PKIStatusInfoGetStatus
    functionSourceFile: /src/nss/lib/crmf/respcmn.c
    functionUses: 0
    functionsReached:
    - DER_GetInteger
    linkageType: ''
    returnType: CMMFPKIStatus
    signature: CMMFPKIStatus cmmf_PKIStatusInfoGetStatus(CMMFPKIStatusInfo *inStatus)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/respcmn.c:183,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - inCertRepContent
    argTypes:
    - CMMFCertRepContent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 190
    functionName: CMMF_CertRepContentGetNumResponses
    functionSourceFile: /src/nss/lib/crmf/respcmn.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: int
    signature: int CMMF_CertRepContentGetNumResponses(CMMFCertRepContent *inCertRepContent)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/crmf/respcmn.c:197,1
    - Dst: crmf_destroy_encrypted_value
      Src: /src/nss/lib/crmf/respcmn.c:201,1
    - Dst: PORT_Free
      Src: /src/nss/lib/crmf/respcmn.c:209,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - certOrEncCert
    - freeit
    argTypes:
    - CMMFCertOrEncCert*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 192
    functionDepth: 8
    functionLinenumber: 192
    functionLinenumberEnd: 212
    functionName: cmmf_DestroyCertOrEncCert
    functionSourceFile: /src/nss/lib/crmf/respcmn.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - crmf_destroy_encrypted_value
    - CERT_DestroyCertificate
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus cmmf_DestroyCertOrEncCert(CMMFCertOrEncCert *certOrEncCert,
      PRBool freeit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/crmf/respcmn.c:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - poolp
    - dest
    - src
    argTypes:
    - PLArenaPool*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 227
    functionName: cmmf_copy_secitem
    functionSourceFile: /src/nss/lib/crmf/respcmn.c
    functionUses: 0
    functionsReached:
    - SECITEM_CopyItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus cmmf_copy_secitem(PLArenaPool *poolp, SECItem *dest, SECItem
      *src)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/respcmn.c:232,1
    - Dst: cmmf_DestroyCertOrEncCert
      Src: /src/nss/lib/crmf/respcmn.c:234,1
    - Dst: crmf_destroy_encrypted_value
      Src: /src/nss/lib/crmf/respcmn.c:236,1
    - Dst: PORT_Free
      Src: /src/nss/lib/crmf/respcmn.c:239,1
    - Dst: PORT_Free
      Src: /src/nss/lib/crmf/respcmn.c:241,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - inCertKeyPair
    argTypes:
    - CMMFCertifiedKeyPair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 229
    functionDepth: 9
    functionLinenumber: 229
    functionLinenumberEnd: 244
    functionName: CMMF_DestroyCertifiedKeyPair
    functionSourceFile: /src/nss/lib/crmf/respcmn.c
    functionUses: 2
    functionsReached:
    - PORT_Free
    - PORT_Assert
    - crmf_destroy_encrypted_value
    - cmmf_DestroyCertOrEncCert
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CMMF_DestroyCertifiedKeyPair(CMMFCertifiedKeyPair *inCertKeyPair)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/crmf/respcmn.c:254,1
    - Dst: cmmf_CopyPKIStatusInfo
      Src: /src/nss/lib/crmf/respcmn.c:259,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/crmf/respcmn.c:266,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/crmf/respcmn.c:266,1
    - Dst: cmmf_CopyCertifiedKeyPair
      Src: /src/nss/lib/crmf/respcmn.c:270,1
    - Dst: CMMF_DestroyCertifiedKeyPair
      Src: /src/nss/lib/crmf/respcmn.c:274,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - poolp
    - dest
    - src
    argTypes:
    - PLArenaPool*
    - CMMFCertResponse*
    - CMMFCertResponse*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 246
    functionDepth: 10
    functionLinenumber: 246
    functionLinenumberEnd: 281
    functionName: cmmf_CopyCertResponse
    functionSourceFile: /src/nss/lib/crmf/respcmn.c
    functionUses: 0
    functionsReached:
    - PORT_ZNew
    - SECITEM_CopyItem
    - PORT_ArenaZNew
    - cmmf_CopyCertifiedKeyPair
    - cmmf_CopyPKIStatusInfo
    - CMMF_DestroyCertifiedKeyPair
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus cmmf_CopyCertResponse(PLArenaPool *poolp,\n                      CMMFCertResponse
      *dest,\n                      CMMFCertResponse *src)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cmmf_copy_secitem
      Src: /src/nss/lib/crmf/respcmn.c:291,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/crmf/respcmn.c:294,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/crmf/respcmn.c:297,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/crmf/respcmn.c:297,1
    - Dst: crmf_copy_encryptedvalue
      Src: /src/nss/lib/crmf/respcmn.c:301,1
    - Dst: crmf_destroy_encrypted_value
      Src: /src/nss/lib/crmf/respcmn.c:304,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - poolp
    - dest
    - src
    argTypes:
    - PLArenaPool*
    - CMMFCertOrEncCert*
    - CMMFCertOrEncCert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 314
    functionName: cmmf_CopyCertOrEncCert
    functionSourceFile: /src/nss/lib/crmf/respcmn.c
    functionUses: 0
    functionsReached:
    - PORT_ZNew
    - crmf_copy_encryptedvalue
    - PORT_ArenaZNew
    - cmmf_copy_secitem
    - CERT_DupCertificate
    - crmf_destroy_encrypted_value
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus cmmf_CopyCertOrEncCert(PLArenaPool *poolp, CMMFCertOrEncCert
      *dest,\n                       CMMFCertOrEncCert *src)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cmmf_CopyCertOrEncCert
      Src: /src/nss/lib/crmf/respcmn.c:322,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/crmf/respcmn.c:331,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/crmf/respcmn.c:331,1
    - Dst: crmf_copy_encryptedvalue
      Src: /src/nss/lib/crmf/respcmn.c:335,1
    - Dst: crmf_destroy_encrypted_value
      Src: /src/nss/lib/crmf/respcmn.c:339,1
    - Dst: cmmf_copy_secitem
      Src: /src/nss/lib/crmf/respcmn.c:345,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - poolp
    - dest
    - src
    argTypes:
    - PLArenaPool*
    - CMMFCertifiedKeyPair*
    - CMMFCertifiedKeyPair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 316
    functionDepth: 2
    functionLinenumber: 316
    functionLinenumberEnd: 348
    functionName: cmmf_CopyCertifiedKeyPair
    functionSourceFile: /src/nss/lib/crmf/respcmn.c
    functionUses: 1
    functionsReached:
    - PORT_ZNew
    - crmf_copy_encryptedvalue
    - PORT_ArenaZNew
    - cmmf_copy_secitem
    - cmmf_CopyCertOrEncCert
    - crmf_destroy_encrypted_value
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus cmmf_CopyCertifiedKeyPair(PLArenaPool *poolp, CMMFCertifiedKeyPair
      *dest,\n                          CMMFCertifiedKeyPair *src)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cmmf_copy_secitem
      Src: /src/nss/lib/crmf/respcmn.c:356,1
    - Dst: cmmf_copy_secitem
      Src: /src/nss/lib/crmf/respcmn.c:360,1
    - Dst: cmmf_copy_secitem
      Src: /src/nss/lib/crmf/respcmn.c:364,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - poolp
    - dest
    - src
    argTypes:
    - PLArenaPool*
    - CMMFPKIStatusInfo*
    - CMMFPKIStatusInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 366
    functionName: cmmf_CopyPKIStatusInfo
    functionSourceFile: /src/nss/lib/crmf/respcmn.c
    functionUses: 1
    functionsReached:
    - cmmf_copy_secitem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus cmmf_CopyPKIStatusInfo(PLArenaPool *poolp, CMMFPKIStatusInfo
      *dest,\n                       CMMFPKIStatusInfo *src)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CERT_NewTempCertificate
      Src: /src/nss/lib/crmf/respcmn.c:376,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - certOrEncCert
    - certdb
    argTypes:
    - CMMFCertOrEncCert*
    - CERTCertDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 368
    functionDepth: 8
    functionLinenumber: 368
    functionLinenumberEnd: 379
    functionName: cmmf_CertOrEncCertGetCertificate
    functionSourceFile: /src/nss/lib/crmf/respcmn.c
    functionUses: 0
    functionsReached:
    - CERT_NewTempCertificate
    linkageType: ''
    returnType: CERTCertificate
    signature: "CERTCertificate *\ncmmf_CertOrEncCertGetCertificate(CMMFCertOrEncCert
      *certOrEncCert,\n                                 CERTCertDBHandle *certdb)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1EncodeInteger
      Src: /src/nss/lib/crmf/respcmn.c:392,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/respcmn.c:393,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/crmf/respcmn.c:395,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - statusInfo
    - poolp
    - inStatus
    argTypes:
    - CMMFPKIStatusInfo*
    - PLArenaPool*
    - CMMFPKIStatus
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 399
    functionName: cmmf_PKIStatusInfoSetStatus
    functionSourceFile: /src/nss/lib/crmf/respcmn.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SEC_ASN1EncodeInteger
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus cmmf_PKIStatusInfoSetStatus(CMMFPKIStatusInfo *statusInfo,\n
      \                           PLArenaPool *poolp,\n                            CMMFPKIStatus
      inStatus)"
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - derPOP
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 33
    functionName: crmf_get_popchoice_from_der
    functionSourceFile: /src/nss/lib/crmf/crmfdec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CRMFPOPChoice
    signature: CRMFPOPChoice crmf_get_popchoice_from_der(SECItem *derPOP)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - inCertReqMsg
    argTypes:
    - CRMFCertReqMsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 46
    functionName: crmf_decode_process_raverified
    functionSourceFile: /src/nss/lib/crmf/crmfdec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus crmf_decode_process_raverified(CRMFCertReqMsg *inCertReqMsg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/crmfdec.c:51,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/crmf/crmfdec.c:53,1
    - Dst: SEC_ASN1Decode
      Src: /src/nss/lib/crmf/crmfdec.c:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - inCertReqMsg
    argTypes:
    - CRMFCertReqMsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 61
    functionName: crmf_decode_process_signature
    functionSourceFile: /src/nss/lib/crmf/crmfdec.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - SEC_ASN1Decode
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus crmf_decode_process_signature(CRMFCertReqMsg *inCertReqMsg)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - derPOP
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 82
    functionName: crmf_get_messagechoice_from_der
    functionSourceFile: /src/nss/lib/crmf/crmfdec.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CRMFPOPOPrivKeyChoice
    signature: CRMFPOPOPrivKeyChoice crmf_get_messagechoice_from_der(SECItem *derPOP)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: crmf_get_messagechoice_from_der
      Src: /src/nss/lib/crmf/crmfdec.c:97,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/crmf/crmfdec.c:118,1
    - Dst: CRMF_BYTES_TO_BITS
      Src: /src/nss/lib/crmf/crmfdec.c:130,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 1
    argNames:
    - inCertReqMsg
    argTypes:
    - CRMFCertReqMsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 133
    functionName: crmf_decode_process_popoprivkey
    functionSourceFile: /src/nss/lib/crmf/crmfdec.c
    functionUses: 0
    functionsReached:
    - crmf_get_messagechoice_from_der
    - CRMF_BYTES_TO_BITS
    - SECITEM_CopyItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus crmf_decode_process_popoprivkey(CRMFCertReqMsg *inCertReqMsg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crmf_decode_process_popoprivkey
      Src: /src/nss/lib/crmf/crmfdec.c:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inCertReqMsg
    argTypes:
    - CRMFCertReqMsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 139
    functionName: crmf_decode_process_keyagreement
    functionSourceFile: /src/nss/lib/crmf/crmfdec.c
    functionUses: 0
    functionsReached:
    - crmf_decode_process_popoprivkey
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus crmf_decode_process_keyagreement(CRMFCertReqMsg *inCertReqMsg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crmf_decode_process_popoprivkey
      Src: /src/nss/lib/crmf/crmfdec.c:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - inCertReqMsg
    argTypes:
    - CRMFCertReqMsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 158
    functionName: crmf_decode_process_keyencipherment
    functionSourceFile: /src/nss/lib/crmf/crmfdec.c
    functionUses: 0
    functionsReached:
    - crmf_decode_process_popoprivkey
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus crmf_decode_process_keyencipherment(CRMFCertReqMsg *inCertReqMsg)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/crmf/crmfdec.c:175,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/crmf/crmfdec.c:176,1
    - Dst: crmf_get_popchoice_from_der
      Src: /src/nss/lib/crmf/crmfdec.c:180,1
    - Dst: crmf_decode_process_raverified
      Src: /src/nss/lib/crmf/crmfdec.c:190,1
    - Dst: crmf_decode_process_signature
      Src: /src/nss/lib/crmf/crmfdec.c:193,1
    - Dst: crmf_decode_process_keyencipherment
      Src: /src/nss/lib/crmf/crmfdec.c:196,1
    - Dst: crmf_decode_process_keyagreement
      Src: /src/nss/lib/crmf/crmfdec.c:199,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/crmf/crmfdec.c:207,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/crmf/crmfdec.c:211,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 1
    argNames:
    - inCertReqMsg
    argTypes:
    - CRMFCertReqMsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 160
    functionDepth: 3
    functionLinenumber: 160
    functionLinenumberEnd: 214
    functionName: crmf_decode_process_pop
    functionSourceFile: /src/nss/lib/crmf/crmfdec.c
    functionUses: 0
    functionsReached:
    - crmf_decode_process_signature
    - PORT_ArenaUnmark
    - PORT_ArenaRelease
    - crmf_decode_process_keyagreement
    - PORT_ArenaMark
    - PORT_ArenaZNew
    - crmf_decode_process_keyencipherment
    - crmf_decode_process_raverified
    - crmf_get_popchoice_from_der
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus crmf_decode_process_pop(CRMFCertReqMsg *inCertReqMsg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/crmf/crmfdec.c:222,1
    - Dst: crmf_get_pkiarchiveoptions_subtemplate
      Src: /src/nss/lib/crmf/crmfdec.c:223,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/crmfdec.c:225,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/crmfdec.c:226,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/crmf/crmfdec.c:228,1
    - Dst: SEC_ASN1Decode
      Src: /src/nss/lib/crmf/crmfdec.c:235,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - poolp
    - inControl
    argTypes:
    - PLArenaPool*
    - CRMFControl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 238
    functionName: crmf_decode_process_single_control
    functionSourceFile: /src/nss/lib/crmf/crmfdec.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SECOID_FindOIDTag
    - PORT_SetError
    - crmf_get_pkiarchiveoptions_subtemplate
    - SEC_ASN1Decode
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus crmf_decode_process_single_control(PLArenaPool *poolp,\n
      \                                  CRMFControl *inControl)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRMF_CertRequestGetNumControls
      Src: /src/nss/lib/crmf/crmfdec.c:248,1
    - Dst: crmf_decode_process_single_control
      Src: /src/nss/lib/crmf/crmfdec.c:252,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - inCertReqMsg
    argTypes:
    - CRMFCertReqMsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 240
    functionDepth: 2
    functionLinenumber: 240
    functionLinenumberEnd: 258
    functionName: crmf_decode_process_controls
    functionSourceFile: /src/nss/lib/crmf/crmfdec.c
    functionUses: 0
    functionsReached:
    - crmf_decode_process_single_control
    - CRMF_CertRequestGetNumControls
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus crmf_decode_process_controls(CRMFCertReqMsg *inCertReqMsg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crmf_decode_process_pop
      Src: /src/nss/lib/crmf/crmfdec.c:265,1
    - Dst: crmf_decode_process_controls
      Src: /src/nss/lib/crmf/crmfdec.c:270,1
    - Dst: CRMF_CertRequestGetNumberOfExtensions
      Src: /src/nss/lib/crmf/crmfdec.c:275,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - inCertReqMsg
    argTypes:
    - CRMFCertReqMsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 260
    functionDepth: 4
    functionLinenumber: 260
    functionLinenumberEnd: 280
    functionName: crmf_decode_process_single_reqmsg
    functionSourceFile: /src/nss/lib/crmf/crmfdec.c
    functionUses: 0
    functionsReached:
    - crmf_decode_process_pop
    - crmf_decode_process_controls
    - CRMF_CertRequestGetNumberOfExtensions
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus crmf_decode_process_single_reqmsg(CRMFCertReqMsg *inCertReqMsg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/crmf/crmfdec.c:289,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/crmf/crmfdec.c:293,1
    - Dst: SEC_ASN1Decode
      Src: /src/nss/lib/crmf/crmfdec.c:298,1
    - Dst: crmf_decode_process_single_reqmsg
      Src: /src/nss/lib/crmf/crmfdec.c:303,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/crmf/crmfdec.c:311,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - char*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 282
    functionDepth: 5
    functionLinenumber: 282
    functionLinenumberEnd: 314
    functionName: CRMF_CreateCertReqMsgFromDER
    functionSourceFile: /src/nss/lib/crmf/crmfdec.c
    functionUses: 0
    functionsReached:
    - PORT_NewArena
    - PORT_FreeArena
    - PORT_ArenaZNew
    - SEC_ASN1Decode
    - crmf_decode_process_single_reqmsg
    linkageType: ''
    returnType: CRMFCertReqMsg
    signature: 'CRMFCertReqMsg *

      CRMF_CreateCertReqMsgFromDER(const char *buf, long len)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/crmfdec.c:325,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/crmf/crmfdec.c:330,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/crmf/crmfdec.c:334,1
    - Dst: SEC_ASN1Decode
      Src: /src/nss/lib/crmf/crmfdec.c:339,1
    - Dst: crmf_decode_process_single_reqmsg
      Src: /src/nss/lib/crmf/crmfdec.c:349,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/crmf/crmfdec.c:358,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - char*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 316
    functionDepth: 5
    functionLinenumber: 316
    functionLinenumberEnd: 360
    functionName: CRMF_CreateCertReqMessagesFromDER
    functionSourceFile: /src/nss/lib/crmf/crmfdec.c
    functionUses: 2
    functionsReached:
    - PORT_Assert
    - PORT_NewArena
    - PORT_FreeArena
    - PORT_ArenaZNew
    - SEC_ASN1Decode
    - crmf_decode_process_single_reqmsg
    linkageType: ''
    returnType: CRMFCertReqMessages
    signature: 'CRMFCertReqMessages *

      CRMF_CreateCertReqMessagesFromDER(const char *buf, long len)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Realloc
      Src: /src/nss/lib/crmf/crmfcont.c:16,1
    - Dst: PORT_ZNewArray
      Src: /src/nss/lib/crmf/crmfcont.c:23,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - inCertReq
    - count
    argTypes:
    - CRMFCertRequest*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 26
    functionName: crmf_modify_control_array
    functionSourceFile: /src/nss/lib/crmf/crmfcont.c
    functionUses: 0
    functionsReached:
    - PORT_Realloc
    - PORT_ZNewArray
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus crmf_modify_control_array(CRMFCertRequest *inCertReq, int
      count)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/crmf/crmfcont.c:44,1
    - Dst: crmf_modify_control_array
      Src: /src/nss/lib/crmf/crmfcont.c:49,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/lib/crmf/crmfcont.c:54,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/crmf/crmfcont.c:55,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/crmf/crmfcont.c:59,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/crmf/crmfcont.c:66,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/crmf/crmfcont.c:70,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 3
    argNames:
    - inCertReq
    - inTag
    - destControl
    argTypes:
    - CRMFCertRequest*
    - SECOidTag
    - CRMFControl**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 73
    functionName: crmf_add_new_control
    functionSourceFile: /src/nss/lib/crmf/crmfcont.c
    functionUses: 0
    functionsReached:
    - SECOID_FindOIDByTag
    - PORT_ArenaRelease
    - crmf_modify_control_array
    - PORT_ArenaMark
    - SECITEM_CopyItem
    - PORT_ArenaZNew
    - PORT_ArenaUnmark
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus crmf_add_new_control(CRMFCertRequest *inCertReq, SECOidTag
      inTag,\n                     CRMFControl **destControl)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crmf_add_new_control
      Src: /src/nss/lib/crmf/crmfcont.c:83,1
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/crmf/crmfcont.c:87,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/crmf/crmfcont.c:88,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/crmf/crmfcont.c:90,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/crmf/crmfcont.c:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - inCertReq
    - value
    - inTag
    argTypes:
    - CRMFCertRequest*
    - SECItem*
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 95
    functionName: crmf_add_secitem_control
    functionSourceFile: /src/nss/lib/crmf/crmfcont.c
    functionUses: 0
    functionsReached:
    - crmf_add_new_control
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - SECITEM_CopyItem
    - PORT_ArenaUnmark
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus crmf_add_secitem_control(CRMFCertRequest *inCertReq, SECItem
      *value,\n                         SECOidTag inTag)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crmf_add_secitem_control
      Src: /src/nss/lib/crmf/crmfcont.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inCertReq
    - value
    argTypes:
    - CRMFCertRequest*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 97
    functionDepth: 4
    functionLinenumber: 97
    functionLinenumberEnd: 102
    functionName: CRMF_CertRequestSetRegTokenControl
    functionSourceFile: /src/nss/lib/crmf/crmfcont.c
    functionUses: 0
    functionsReached:
    - crmf_add_secitem_control
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CRMF_CertRequestSetRegTokenControl(CRMFCertRequest *inCertReq,
      SECItem *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crmf_add_secitem_control
      Src: /src/nss/lib/crmf/crmfcont.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inCertReq
    - value
    argTypes:
    - CRMFCertRequest*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 4
    functionLinenumber: 104
    functionLinenumberEnd: 110
    functionName: CRMF_CertRequestSetAuthenticatorControl
    functionSourceFile: /src/nss/lib/crmf/crmfcont.c
    functionUses: 0
    functionsReached:
    - crmf_add_secitem_control
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CRMF_CertRequestSetAuthenticatorControl(CRMFCertRequest
      *inCertReq,\n                                        SECItem *value)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_DestroyAlgorithmID
      Src: /src/nss/lib/crmf/crmfcont.c:117,1
    - Dst: SECOID_DestroyAlgorithmID
      Src: /src/nss/lib/crmf/crmfcont.c:121,1
    - Dst: PORT_Free
      Src: /src/nss/lib/crmf/crmfcont.c:125,1
    - Dst: SECOID_DestroyAlgorithmID
      Src: /src/nss/lib/crmf/crmfcont.c:129,1
    - Dst: PORT_Free
      Src: /src/nss/lib/crmf/crmfcont.c:133,1
    - Dst: PORT_Free
      Src: /src/nss/lib/crmf/crmfcont.c:137,1
    - Dst: PORT_Free
      Src: /src/nss/lib/crmf/crmfcont.c:141,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 2
    argNames:
    - inEncrValue
    - freeit
    argTypes:
    - CRMFEncryptedValue*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 145
    functionName: crmf_destroy_encrypted_value
    functionSourceFile: /src/nss/lib/crmf/crmfcont.c
    functionUses: 4
    functionsReached:
    - PORT_Free
    - SECOID_DestroyAlgorithmID
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus crmf_destroy_encrypted_value(CRMFEncryptedValue *inEncrValue,
      PRBool freeit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crmf_destroy_encrypted_value
      Src: /src/nss/lib/crmf/crmfcont.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inEncrValue
    argTypes:
    - CRMFEncryptedValue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: CRMF_DestroyEncryptedValue
    functionSourceFile: /src/nss/lib/crmf/crmfcont.c
    functionUses: 0
    functionsReached:
    - crmf_destroy_encrypted_value
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CRMF_DestroyEncryptedValue(CRMFEncryptedValue *inEncrValue)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/crmf/crmfcont.c:161,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/crmf/crmfcont.c:161,1
    - Dst: SECOID_CopyAlgorithmID
      Src: /src/nss/lib/crmf/crmfcont.c:166,1
    - Dst: SECOID_DestroyAlgorithmID
      Src: /src/nss/lib/crmf/crmfcont.c:169,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - poolp
    - srcAlgId
    - destAlgId
    argTypes:
    - PLArenaPool*
    - SECAlgorithmID*
    - SECAlgorithmID**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 176
    functionName: crmf_copy_encryptedvalue_secalg
    functionSourceFile: /src/nss/lib/crmf/crmfcont.c
    functionUses: 0
    functionsReached:
    - PORT_ArenaZNew
    - SECOID_DestroyAlgorithmID
    - SECOID_CopyAlgorithmID
    - PORT_ZNew
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus crmf_copy_encryptedvalue_secalg(PLArenaPool *poolp,\n                                SECAlgorithmID
      *srcAlgId,\n                                SECAlgorithmID **destAlgId)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: crmf_copy_encryptedvalue_secalg
      Src: /src/nss/lib/crmf/crmfcont.c:186,1
    - Dst: crmf_copy_encryptedvalue_secalg
      Src: /src/nss/lib/crmf/crmfcont.c:194,1
    - Dst: crmf_make_bitstring_copy
      Src: /src/nss/lib/crmf/crmfcont.c:202,1
    - Dst: crmf_copy_encryptedvalue_secalg
      Src: /src/nss/lib/crmf/crmfcont.c:210,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/crmf/crmfcont.c:218,1
    - Dst: crmf_make_bitstring_copy
      Src: /src/nss/lib/crmf/crmfcont.c:226,1
    - Dst: crmf_destroy_encrypted_value
      Src: /src/nss/lib/crmf/crmfcont.c:236,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 50
    argCount: 3
    argNames:
    - poolp
    - srcValue
    - destValue
    argTypes:
    - PLArenaPool*
    - CRMFEncryptedValue*
    - CRMFEncryptedValue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 239
    functionName: crmf_copy_encryptedvalue
    functionSourceFile: /src/nss/lib/crmf/crmfcont.c
    functionUses: 2
    functionsReached:
    - crmf_destroy_encrypted_value
    - crmf_make_bitstring_copy
    - crmf_copy_encryptedvalue_secalg
    - SECITEM_CopyItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus crmf_copy_encryptedvalue(PLArenaPool *poolp,\n                         CRMFEncryptedValue
      *srcValue,\n                         CRMFEncryptedValue *destValue)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/crmf/crmfcont.c:250,1
    - Dst: crmf_copy_encryptedvalue
      Src: /src/nss/lib/crmf/crmfcont.c:255,1
    - Dst: SEC_PKCS7CopyContentInfo
      Src: /src/nss/lib/crmf/crmfcont.c:261,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/crmf/crmfcont.c:272,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/crmf/crmfcont.c:278,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 3
    argNames:
    - poolp
    - srcEncrKey
    - destEncrKey
    argTypes:
    - PLArenaPool*
    - CRMFEncryptedKey*
    - CRMFEncryptedKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 241
    functionDepth: 3
    functionLinenumber: 241
    functionLinenumberEnd: 281
    functionName: crmf_copy_encryptedkey
    functionSourceFile: /src/nss/lib/crmf/crmfcont.c
    functionUses: 0
    functionsReached:
    - crmf_copy_encryptedvalue
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - PORT_ArenaUnmark
    - SEC_PKCS7CopyContentInfo
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus crmf_copy_encryptedkey(PLArenaPool *poolp,\n                       CRMFEncryptedKey
      *srcEncrKey,\n                       CRMFEncryptedKey *destEncrKey)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZNew
      Src: /src/nss/lib/crmf/crmfcont.c:289,1
    - Dst: crmf_copy_encryptedkey
      Src: /src/nss/lib/crmf/crmfcont.c:294,1
    - Dst: CRMF_DestroyPKIArchiveOptions
      Src: /src/nss/lib/crmf/crmfcont.c:304,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - inEncryptedKey
    argTypes:
    - CRMFEncryptedKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 283
    functionDepth: 4
    functionLinenumber: 283
    functionLinenumberEnd: 307
    functionName: crmf_create_encr_pivkey_option
    functionSourceFile: /src/nss/lib/crmf/crmfcont.c
    functionUses: 0
    functionsReached:
    - CRMF_DestroyPKIArchiveOptions
    - crmf_copy_encryptedkey
    - PORT_ZNew
    linkageType: ''
    returnType: CRMFPKIArchiveOptions
    signature: 'CRMFPKIArchiveOptions *

      crmf_create_encr_pivkey_option(CRMFEncryptedKey *inEncryptedKey)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZNew
      Src: /src/nss/lib/crmf/crmfcont.c:315,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/crmf/crmfcont.c:320,1
    - Dst: CRMF_DestroyPKIArchiveOptions
      Src: /src/nss/lib/crmf/crmfcont.c:328,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - inKeyGenParams
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 331
    functionName: crmf_create_keygen_param_option
    functionSourceFile: /src/nss/lib/crmf/crmfcont.c
    functionUses: 0
    functionsReached:
    - SECITEM_CopyItem
    - CRMF_DestroyPKIArchiveOptions
    - PORT_ZNew
    linkageType: ''
    returnType: CRMFPKIArchiveOptions
    signature: 'CRMFPKIArchiveOptions *

      crmf_create_keygen_param_option(SECItem *inKeyGenParams)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZNew
      Src: /src/nss/lib/crmf/crmfcont.c:341,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/crmf/crmfcont.c:345,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/crmf/crmfcont.c:347,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/crmfcont.c:348,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/crmf/crmfcont.c:350,1
    - Dst: CRMF_DestroyPKIArchiveOptions
      Src: /src/nss/lib/crmf/crmfcont.c:357,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - archiveRemGenPrivKey
    argTypes:
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 360
    functionName: crmf_create_arch_rem_gen_privkey
    functionSourceFile: /src/nss/lib/crmf/crmfcont.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - CRMF_DestroyPKIArchiveOptions
    - SEC_ASN1EncodeItem
    - PORT_ZNew
    - SEC_ASN1_GET
    - SECITEM_FreeItem
    linkageType: ''
    returnType: CRMFPKIArchiveOptions
    signature: 'CRMFPKIArchiveOptions *

      crmf_create_arch_rem_gen_privkey(PRBool archiveRemGenPrivKey)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/crmfcont.c:367,1
    - Dst: crmf_create_encr_pivkey_option
      Src: /src/nss/lib/crmf/crmfcont.c:373,1
    - Dst: crmf_create_keygen_param_option
      Src: /src/nss/lib/crmf/crmfcont.c:376,1
    - Dst: crmf_create_arch_rem_gen_privkey
      Src: /src/nss/lib/crmf/crmfcont.c:379,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - inType
    - data
    argTypes:
    - CRMFPKIArchiveOptionsType
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 362
    functionDepth: 5
    functionLinenumber: 362
    functionLinenumberEnd: 385
    functionName: CRMF_CreatePKIArchiveOptions
    functionSourceFile: /src/nss/lib/crmf/crmfcont.c
    functionUses: 1
    functionsReached:
    - crmf_create_arch_rem_gen_privkey
    - PORT_Assert
    - crmf_create_keygen_param_option
    - crmf_create_encr_pivkey_option
    linkageType: ''
    returnType: CRMFPKIArchiveOptions
    signature: 'CRMFPKIArchiveOptions *

      CRMF_CreatePKIArchiveOptions(CRMFPKIArchiveOptionsType inType, void *data)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/crmfcont.c:390,1
    - Dst: crmf_destroy_encrypted_value
      Src: /src/nss/lib/crmf/crmfcont.c:394,1
    - Dst: SEC_PKCS7DestroyContentInfo
      Src: /src/nss/lib/crmf/crmfcont.c:398,1
    - Dst: PORT_Free
      Src: /src/nss/lib/crmf/crmfcont.c:404,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - inEncrKey
    - freeit
    argTypes:
    - CRMFEncryptedKey*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 408
    functionName: crmf_destroy_encrypted_key
    functionSourceFile: /src/nss/lib/crmf/crmfcont.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - PORT_Assert
    - crmf_destroy_encrypted_value
    - SEC_PKCS7DestroyContentInfo
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus crmf_destroy_encrypted_key(CRMFEncryptedKey *inEncrKey, PRBool
      freeit)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/crmfcont.c:414,1
    - Dst: crmf_destroy_encrypted_key
      Src: /src/nss/lib/crmf/crmfcont.c:418,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/crmf/crmfcont.c:426,1
    - Dst: PORT_Free
      Src: /src/nss/lib/crmf/crmfcont.c:433,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - inArchOptions
    - freeit
    argTypes:
    - CRMFPKIArchiveOptions*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 410
    functionDepth: 2
    functionLinenumber: 410
    functionLinenumberEnd: 437
    functionName: crmf_destroy_pkiarchiveoptions
    functionSourceFile: /src/nss/lib/crmf/crmfcont.c
    functionUses: 0
    functionsReached:
    - SECITEM_FreeItem
    - PORT_Assert
    - PORT_Free
    - crmf_destroy_encrypted_key
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus crmf_destroy_pkiarchiveoptions(CRMFPKIArchiveOptions *inArchOptions,\n
      \                              PRBool freeit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crmf_destroy_pkiarchiveoptions
      Src: /src/nss/lib/crmf/crmfcont.c:442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inArchOptions
    argTypes:
    - CRMFPKIArchiveOptions*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 439
    functionDepth: 3
    functionLinenumber: 439
    functionLinenumberEnd: 443
    functionName: CRMF_DestroyPKIArchiveOptions
    functionSourceFile: /src/nss/lib/crmf/crmfcont.c
    functionUses: 4
    functionsReached:
    - crmf_destroy_pkiarchiveoptions
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CRMF_DestroyPKIArchiveOptions(CRMFPKIArchiveOptions *inArchOptions)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 1
    argNames:
    - type
    argTypes:
    - CK_MECHANISM_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 469
    functionName: crmf_get_non_pad_mechanism
    functionSourceFile: /src/nss/lib/crmf/crmfcont.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_MECHANISM_TYPE
    signature: CK_MECHANISM_TYPE crmf_get_non_pad_mechanism(CK_MECHANISM_TYPE type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/lib/crmf/crmfcont.c:477,1
    - Dst: PK11_GetPadMechanism
      Src: /src/nss/lib/crmf/crmfcont.c:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - oidTag
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 471
    functionDepth: 1
    functionLinenumber: 471
    functionLinenumberEnd: 480
    functionName: crmf_get_pad_mech_from_tag
    functionSourceFile: /src/nss/lib/crmf/crmfcont.c
    functionUses: 0
    functionsReached:
    - PK11_GetPadMechanism
    - SECOID_FindOIDByTag
    linkageType: ''
    returnType: CK_MECHANISM_TYPE
    signature: CK_MECHANISM_TYPE crmf_get_pad_mech_from_tag(SECOidTag oidTag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_DoesMechanism
      Src: /src/nss/lib/crmf/crmfcont.c:498,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - slot
    argTypes:
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 482
    functionDepth: 1
    functionLinenumber: 482
    functionLinenumberEnd: 503
    functionName: crmf_get_best_privkey_wrap_mechanism
    functionSourceFile: /src/nss/lib/crmf/crmfcont.c
    functionUses: 0
    functionsReached:
    - PK11_DoesMechanism
    linkageType: ''
    returnType: CK_MECHANISM_TYPE
    signature: CK_MECHANISM_TYPE crmf_get_best_privkey_wrap_mechanism(PK11SlotInfo
      *slot)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crmf_get_best_privkey_wrap_mechanism
      Src: /src/nss/lib/crmf/crmfcont.c:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - slot
    argTypes:
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 505
    functionDepth: 2
    functionLinenumber: 505
    functionLinenumberEnd: 509
    functionName: CRMF_GetBestWrapPadMechanism
    functionSourceFile: /src/nss/lib/crmf/crmfcont.c
    functionUses: 0
    functionsReached:
    - crmf_get_best_privkey_wrap_mechanism
    linkageType: ''
    returnType: CK_MECHANISM_TYPE
    signature: CK_MECHANISM_TYPE CRMF_GetBestWrapPadMechanism(PK11SlotInfo *slot)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetIVLength
      Src: /src/nss/lib/crmf/crmfcont.c:514,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/crmf/crmfcont.c:518,1
    - Dst: PORT_NewArray
      Src: /src/nss/lib/crmf/crmfcont.c:527,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/lib/crmf/crmfcont.c:533,1
    - Dst: PORT_Free
      Src: /src/nss/lib/crmf/crmfcont.c:535,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - mechType
    argTypes:
    - CK_MECHANISM_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 511
    functionDepth: 9
    functionLinenumber: 511
    functionLinenumberEnd: 540
    functionName: crmf_get_iv
    functionSourceFile: /src/nss/lib/crmf/crmfcont.c
    functionUses: 0
    functionsReached:
    - PORT_ZNew
    - PORT_Free
    - PK11_GetIVLength
    - PORT_NewArray
    - PK11_GenerateRandom
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      crmf_get_iv(CK_MECHANISM_TYPE mechType)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crmf_get_iv
      Src: /src/nss/lib/crmf/crmfcont.c:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mechType
    argTypes:
    - CK_MECHANISM_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 542
    functionDepth: 10
    functionLinenumber: 542
    functionLinenumberEnd: 546
    functionName: CRMF_GetIVFromMechanism
    functionSourceFile: /src/nss/lib/crmf/crmfcont.c
    functionUses: 0
    functionsReached:
    - crmf_get_iv
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      CRMF_GetIVFromMechanism(CK_MECHANISM_TYPE mechType)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECKEY_CreateSubjectPublicKeyInfo
      Src: /src/nss/lib/crmf/crmfcont.c:554,1
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/crmf/crmfcont.c:558,1
    - Dst: SECKEY_DestroySubjectPublicKeyInfo
      Src: /src/nss/lib/crmf/crmfcont.c:559,1
    - Dst: PK11_AlgtagToMechanism
      Src: /src/nss/lib/crmf/crmfcont.c:561,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - inPubKey
    argTypes:
    - SECKEYPublicKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 548
    functionDepth: 4
    functionLinenumber: 548
    functionLinenumberEnd: 562
    functionName: crmf_get_mechanism_from_public_key
    functionSourceFile: /src/nss/lib/crmf/crmfcont.c
    functionUses: 0
    functionsReached:
    - SECOID_FindOIDTag
    - SECKEY_CreateSubjectPublicKeyInfo
    - PK11_AlgtagToMechanism
    - SECKEY_DestroySubjectPublicKeyInfo
    linkageType: ''
    returnType: CK_MECHANISM_TYPE
    signature: CK_MECHANISM_TYPE crmf_get_mechanism_from_public_key(SECKEYPublicKey
      *inPubKey)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/crmf/crmfcont.c:584,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/crmf/crmfcont.c:589,1
    - Dst: SECITEM_ArenaDupItem
      Src: /src/nss/lib/crmf/crmfcont.c:594,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - pubKey
    - dest
    argTypes:
    - SECKEYPublicKey*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 597
    functionName: crmf_get_public_value
    functionSourceFile: /src/nss/lib/crmf/crmfcont.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - SECITEM_ArenaDupItem
    - SECITEM_CopyItem
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      crmf_get_public_value(SECKEYPublicKey *pubKey, SECItem *dest)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/crmf/crmfcont.c:606,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/crmf/crmfcont.c:611,1
    - Dst: SEC_ASN1DecodeItem
      Src: /src/nss/lib/crmf/crmfcont.c:613,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/crmf/crmfcont.c:614,1
    - Dst: SECITEM_ArenaDupItem
      Src: /src/nss/lib/crmf/crmfcont.c:617,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/crmf/crmfcont.c:618,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - inParams
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 599
    functionDepth: 1
    functionLinenumber: 599
    functionLinenumberEnd: 620
    functionName: crmf_decode_params
    functionSourceFile: /src/nss/lib/crmf/crmfcont.c
    functionUses: 0
    functionsReached:
    - PORT_NewArena
    - PORT_FreeArena
    - SEC_ASN1DecodeItem
    - PORT_ArenaZNew
    - SEC_ASN1_GET
    - SECITEM_ArenaDupItem
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      crmf_decode_params(SECItem *inParams)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetKeyGen
      Src: /src/nss/lib/crmf/crmfcont.c:625,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - mechType
    argTypes:
    - CK_MECHANISM_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 622
    functionDepth: 2
    functionLinenumber: 622
    functionLinenumberEnd: 637
    functionName: crmf_get_key_size_from_mech
    functionSourceFile: /src/nss/lib/crmf/crmfcont.c
    functionUses: 0
    functionsReached:
    - PK11_GetKeyGen
    linkageType: ''
    returnType: int
    signature: int crmf_get_key_size_from_mech(CK_MECHANISM_TYPE mechType)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/crmf/crmfcont.c:664,1
    - Dst: crmf_get_pad_mech_from_tag
      Src: /src/nss/lib/crmf/crmfcont.c:665,1
    - Dst: crmf_get_key_size_from_mech
      Src: /src/nss/lib/crmf/crmfcont.c:666,1
    - Dst: PK11_PubUnwrapSymKey
      Src: /src/nss/lib/crmf/crmfcont.c:667,1
    - Dst: crmf_decode_params
      Src: /src/nss/lib/crmf/crmfcont.c:672,1
    - Dst: CRMF_BITS_TO_BYTES
      Src: /src/nss/lib/crmf/crmfcont.c:675,1
    - Dst: crmf_get_public_value
      Src: /src/nss/lib/crmf/crmfcont.c:676,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/crmfcont.c:709,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/crmfcont.c:710,1
    - Dst: PK11_UnwrapPrivKey
      Src: /src/nss/lib/crmf/crmfcont.c:711,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/crmf/crmfcont.c:719,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/crmf/crmfcont.c:721,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/crmf/crmfcont.c:723,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 62
    argCount: 9
    argNames:
    - poolp
    - encValue
    - privKey
    - newPubKey
    - nickname
    - slot
    - keyUsage
    - unWrappedKey
    - wincx
    argTypes:
    - PLArenaPool*
    - CRMFEncryptedValue*
    - SECKEYPrivateKey*
    - SECKEYPublicKey*
    - SECItem*
    - PK11SlotInfo*
    - unsigned char
    - SECKEYPrivateKey**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 639
    functionDepth: 9
    functionLinenumber: 639
    functionLinenumberEnd: 728
    functionName: crmf_encrypted_value_unwrap_priv_key
    functionSourceFile: /src/nss/lib/crmf/crmfcont.c
    functionUses: 0
    functionsReached:
    - CRMF_BITS_TO_BYTES
    - PORT_Assert
    - SECOID_GetAlgorithmTag
    - PK11_PubUnwrapSymKey
    - crmf_decode_params
    - crmf_get_key_size_from_mech
    - crmf_get_pad_mech_from_tag
    - PK11_FreeSymKey
    - crmf_get_public_value
    - SECITEM_FreeItem
    - PK11_UnwrapPrivKey
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus crmf_encrypted_value_unwrap_priv_key(PLArenaPool *poolp,\n
      \                                    CRMFEncryptedValue *encValue,\n                                     SECKEYPrivateKey
      *privKey,\n                                     SECKEYPublicKey *newPubKey,\n
      \                                    SECItem *nickname,\n                                     PK11SlotInfo
      *slot,\n                                     unsigned char keyUsage,\n                                     SECKEYPrivateKey
      **unWrappedKey,\n                                     void *wincx)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArray
      Src: /src/nss/lib/crmf/crmfcont.c:749,1
    - Dst: PORT_NewArray
      Src: /src/nss/lib/crmf/crmfcont.c:750,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/crmf/crmfcont.c:755,1
    - Dst: crmf_get_mechanism_from_public_key
      Src: /src/nss/lib/crmf/crmfcont.c:761,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/crmfcont.c:770,1
    - Dst: crmf_get_best_privkey_wrap_mechanism
      Src: /src/nss/lib/crmf/crmfcont.c:771,1
    - Dst: PK11_KeyGen
      Src: /src/nss/lib/crmf/crmfcont.c:772,1
    - Dst: PK11_PubWrapSymKey
      Src: /src/nss/lib/crmf/crmfcont.c:779,1
    - Dst: crmf_get_iv
      Src: /src/nss/lib/crmf/crmfcont.c:788,1
    - Dst: PK11_WrapPrivKey
      Src: /src/nss/lib/crmf/crmfcont.c:789,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/crmf/crmfcont.c:791,1
    - Dst: crmf_make_bitstring_copy
      Src: /src/nss/lib/crmf/crmfcont.c:797,1
    - Dst: crmf_make_bitstring_copy
      Src: /src/nss/lib/crmf/crmfcont.c:804,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/crmf/crmfcont.c:810,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/crmf/crmfcont.c:815,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/crmf/crmfcont.c:816,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/crmf/crmfcont.c:818,1
    - Dst: crmf_get_non_pad_mechanism
      Src: /src/nss/lib/crmf/crmfcont.c:822,1
    - Dst: PK11_MechanismToAlgtag
      Src: /src/nss/lib/crmf/crmfcont.c:823,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/lib/crmf/crmfcont.c:824,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/crmf/crmfcont.c:828,1
    - Dst: PORT_Free
      Src: /src/nss/lib/crmf/crmfcont.c:829,1
    - Dst: PORT_Free
      Src: /src/nss/lib/crmf/crmfcont.c:830,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/crmf/crmfcont.c:831,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/crmf/crmfcont.c:835,1
    - Dst: crmf_destroy_encrypted_value
      Src: /src/nss/lib/crmf/crmfcont.c:838,1
    - Dst: PORT_Free
      Src: /src/nss/lib/crmf/crmfcont.c:841,1
    - Dst: PORT_Free
      Src: /src/nss/lib/crmf/crmfcont.c:844,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/crmf/crmfcont.c:847,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 97
    argCount: 3
    argNames:
    - inPrivKey
    - inCAKey
    - destValue
    argTypes:
    - SECKEYPrivateKey*
    - SECKEYPublicKey*
    - CRMFEncryptedValue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 730
    functionDepth: 10
    functionLinenumber: 730
    functionLinenumberEnd: 850
    functionName: crmf_create_encrypted_value_wrapped_privkey
    functionSourceFile: /src/nss/lib/crmf/crmfcont.c
    functionUses: 0
    functionsReached:
    - PORT_ZNew
    - crmf_get_mechanism_from_public_key
    - SEC_ASN1EncodeItem
    - crmf_get_best_privkey_wrap_mechanism
    - SECOID_SetAlgorithmID
    - PK11_KeyGen
    - SECITEM_FreeItem
    - PORT_Assert
    - crmf_get_iv
    - crmf_get_non_pad_mechanism
    - PK11_MechanismToAlgtag
    - crmf_destroy_encrypted_value
    - PK11_WrapPrivKey
    - PK11_PubWrapSymKey
    - PORT_Free
    - PORT_NewArray
    - crmf_make_bitstring_copy
    - SEC_ASN1_GET
    - PK11_FreeSymKey
    linkageType: ''
    returnType: CRMFEncryptedValue
    signature: "CRMFEncryptedValue *\ncrmf_create_encrypted_value_wrapped_privkey(SECKEYPrivateKey
      *inPrivKey,\n                                            SECKEYPublicKey *inCAKey,\n
      \                                           CRMFEncryptedValue *destValue)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/crmfcont.c:859,1
    - Dst: CERT_ExtractPublicKey
      Src: /src/nss/lib/crmf/crmfcont.c:864,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/crmf/crmfcont.c:869,1
    - Dst: crmf_create_encrypted_value_wrapped_privkey
      Src: /src/nss/lib/crmf/crmfcont.c:876,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/crmfcont.c:878,1
    - Dst: crmf_create_encrypted_value_wrapped_privkey
      Src: /src/nss/lib/crmf/crmfcont.c:881,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/crmf/crmfcont.c:887,1
    - Dst: CRMF_DestroyEncryptedKey
      Src: /src/nss/lib/crmf/crmfcont.c:892,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/crmf/crmfcont.c:895,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 2
    argNames:
    - inPrivKey
    - inCACert
    argTypes:
    - SECKEYPrivateKey*
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 852
    functionDepth: 11
    functionLinenumber: 852
    functionLinenumberEnd: 898
    functionName: CRMF_CreateEncryptedKeyWithEncryptedValue
    functionSourceFile: /src/nss/lib/crmf/crmfcont.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - crmf_create_encrypted_value_wrapped_privkey
    - SECKEY_DestroyPublicKey
    - PORT_ZNew
    - CERT_ExtractPublicKey
    - CRMF_DestroyEncryptedKey
    linkageType: ''
    returnType: CRMFEncryptedKey
    signature: "CRMFEncryptedKey *\nCRMF_CreateEncryptedKeyWithEncryptedValue(SECKEYPrivateKey
      *inPrivKey,\n                                          CERTCertificate *inCACert)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crmf_destroy_encrypted_key
      Src: /src/nss/lib/crmf/crmfcont.c:903,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inEncrKey
    argTypes:
    - CRMFEncryptedKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 900
    functionDepth: 2
    functionLinenumber: 900
    functionLinenumberEnd: 904
    functionName: CRMF_DestroyEncryptedKey
    functionSourceFile: /src/nss/lib/crmf/crmfcont.c
    functionUses: 2
    functionsReached:
    - crmf_destroy_encrypted_key
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CRMF_DestroyEncryptedKey(CRMFEncryptedKey *inEncrKey)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: crmf_copy_encryptedkey
      Src: /src/nss/lib/crmf/crmfcont.c:915,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/crmf/crmfcont.c:924,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - poolp
    - destOpt
    - srcOpt
    argTypes:
    - PLArenaPool*
    - CRMFPKIArchiveOptions*
    - CRMFPKIArchiveOptions*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 932
      start: 906
    functionDepth: 4
    functionLinenumber: 906
    functionLinenumberEnd: 932
    functionName: crmf_copy_pkiarchiveoptions
    functionSourceFile: /src/nss/lib/crmf/crmfcont.c
    functionUses: 0
    functionsReached:
    - crmf_copy_encryptedkey
    - SECITEM_CopyItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus crmf_copy_pkiarchiveoptions(PLArenaPool *poolp,\n                            CRMFPKIArchiveOptions
      *destOpt,\n                            CRMFPKIArchiveOptions *srcOpt)"
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - inControl
    argTypes:
    - CRMFControl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 934
    functionDepth: 0
    functionLinenumber: 934
    functionLinenumberEnd: 960
    functionName: crmf_check_and_adjust_archoption
    functionSourceFile: /src/nss/lib/crmf/crmfcont.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus crmf_check_and_adjust_archoption(CRMFControl *inControl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: crmf_check_and_adjust_archoption
      Src: /src/nss/lib/crmf/crmfcont.c:973,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - inControl
    argTypes:
    - CRMFControl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 962
    functionDepth: 1
    functionLinenumber: 962
    functionLinenumberEnd: 988
    functionName: crmf_get_pkiarchive_subtemplate
    functionSourceFile: /src/nss/lib/crmf/crmfcont.c
    functionUses: 0
    functionsReached:
    - crmf_check_and_adjust_archoption
    linkageType: ''
    returnType: SEC_ASN1Template
    signature: 'SEC_ASN1Template *

      crmf_get_pkiarchive_subtemplate(CRMFControl *inControl)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/crmf/crmfcont.c:998,1
    - Dst: crmf_get_pkiarchive_subtemplate
      Src: /src/nss/lib/crmf/crmfcont.c:1001,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - inControl
    argTypes:
    - CRMFControl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 990
    functionDepth: 2
    functionLinenumber: 990
    functionLinenumberEnd: 1013
    functionName: crmf_get_pkiarchiveoptions_subtemplate
    functionSourceFile: /src/nss/lib/crmf/crmfcont.c
    functionUses: 1
    functionsReached:
    - crmf_get_pkiarchive_subtemplate
    - SEC_ASN1_GET
    linkageType: ''
    returnType: SEC_ASN1Template
    signature: 'SEC_ASN1Template *

      crmf_get_pkiarchiveoptions_subtemplate(CRMFControl *inControl)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crmf_get_pkiarchiveoptions_subtemplate
      Src: /src/nss/lib/crmf/crmfcont.c:1020,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/crmf/crmfcont.c:1025,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - poolp
    - inControl
    argTypes:
    - PLArenaPool*
    - CRMFControl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1034
      start: 1015
    functionDepth: 3
    functionLinenumber: 1015
    functionLinenumberEnd: 1034
    functionName: crmf_encode_pkiarchiveoptions
    functionSourceFile: /src/nss/lib/crmf/crmfcont.c
    functionUses: 0
    functionsReached:
    - crmf_get_pkiarchiveoptions_subtemplate
    - SEC_ASN1EncodeItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus crmf_encode_pkiarchiveoptions(PLArenaPool *poolp, CRMFControl
      *inControl)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/crmfcont.c:1045,1
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/crmf/crmfcont.c:1050,1
    - Dst: crmf_add_new_control
      Src: /src/nss/lib/crmf/crmfcont.c:1051,1
    - Dst: crmf_copy_pkiarchiveoptions
      Src: /src/nss/lib/crmf/crmfcont.c:1058,1
    - Dst: crmf_encode_pkiarchiveoptions
      Src: /src/nss/lib/crmf/crmfcont.c:1065,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/crmf/crmfcont.c:1069,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/crmf/crmfcont.c:1072,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - inCertReq
    - inOptions
    argTypes:
    - CRMFCertRequest*
    - CRMFPKIArchiveOptions*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1074
      start: 1036
    functionDepth: 5
    functionLinenumber: 1036
    functionLinenumberEnd: 1074
    functionName: CRMF_CertRequestSetPKIArchiveOptions
    functionSourceFile: /src/nss/lib/crmf/crmfcont.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - crmf_add_new_control
    - crmf_copy_pkiarchiveoptions
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - PORT_ArenaUnmark
    - crmf_encode_pkiarchiveoptions
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CRMF_CertRequestSetPKIArchiveOptions(CRMFCertRequest *inCertReq,\n
      \                                    CRMFPKIArchiveOptions *inOptions)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/crmfcont.c:1079,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/crmf/crmfcont.c:1081,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/crmf/crmfcont.c:1082,1
    - Dst: crmf_destroy_pkiarchiveoptions
      Src: /src/nss/lib/crmf/crmfcont.c:1092,1
    - Dst: PORT_Free
      Src: /src/nss/lib/crmf/crmfcont.c:1100,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - inControl
    - freeit
    argTypes:
    - CRMFControl*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1076
    functionDepth: 3
    functionLinenumber: 1076
    functionLinenumberEnd: 1104
    functionName: crmf_destroy_control
    functionSourceFile: /src/nss/lib/crmf/crmfcont.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - PORT_Assert
    - SECITEM_FreeItem
    - crmf_destroy_pkiarchiveoptions
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus crmf_destroy_control(CRMFControl *inControl, PRBool freeit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crmf_destroy_control
      Src: /src/nss/lib/crmf/crmfcont.c:1109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inControl
    argTypes:
    - CRMFControl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1106
    functionDepth: 4
    functionLinenumber: 1106
    functionLinenumberEnd: 1110
    functionName: CRMF_DestroyControl
    functionSourceFile: /src/nss/lib/crmf/crmfcont.c
    functionUses: 0
    functionsReached:
    - crmf_destroy_control
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CRMF_DestroyControl(CRMFControl *inControl)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - inControlType
    argTypes:
    - CRMFControlType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1141
      start: 1112
    functionDepth: 0
    functionLinenumber: 1112
    functionLinenumberEnd: 1141
    functionName: crmf_controltype_to_tag
    functionSourceFile: /src/nss/lib/crmf/crmfcont.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag crmf_controltype_to_tag(CRMFControlType inControlType)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/crmfcont.c:1150,1
    - Dst: crmf_controltype_to_tag
      Src: /src/nss/lib/crmf/crmfcont.c:1154,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - inCertReq
    - inControlType
    argTypes:
    - CRMFCertRequest*
    - CRMFControlType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1161
      start: 1143
    functionDepth: 1
    functionLinenumber: 1143
    functionLinenumberEnd: 1161
    functionName: CRMF_CertRequestIsControlPresent
    functionSourceFile: /src/nss/lib/crmf/crmfcont.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - crmf_controltype_to_tag
    linkageType: ''
    returnType: PRBool
    signature: "PRBool CRMF_CertRequestIsControlPresent(CRMFCertRequest *inCertReq,\n
      \                                CRMFControlType inControlType)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1Encode
      Src: /src/nss/lib/crmf/crmfenc.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - inCertReqMsg
    - fn
    - arg
    argTypes:
    - CRMFCertReqMsg*
    - CRMFEncoderOutputCallback
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 20
    functionName: CRMF_EncodeCertReqMsg
    functionSourceFile: /src/nss/lib/crmf/crmfenc.c
    functionUses: 0
    functionsReached:
    - SEC_ASN1Encode
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CRMF_EncodeCertReqMsg(CRMFCertReqMsg *inCertReqMsg,\n                      CRMFEncoderOutputCallback
      fn,\n                      void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1Encode
      Src: /src/nss/lib/crmf/crmfenc.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - inCertReq
    - fn
    - arg
    argTypes:
    - CRMFCertRequest*
    - CRMFEncoderOutputCallback
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 33
    functionName: CRMF_EncodeCertRequest
    functionSourceFile: /src/nss/lib/crmf/crmfenc.c
    functionUses: 0
    functionsReached:
    - SEC_ASN1Encode
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CRMF_EncodeCertRequest(CRMFCertRequest *inCertReq,\n                       CRMFEncoderOutputCallback
      fn,\n                       void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1Encode
      Src: /src/nss/lib/crmf/crmfenc.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - inCertReqMsgs
    - fn
    - arg
    argTypes:
    - CRMFCertReqMsg**
    - CRMFEncoderOutputCallback
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 48
    functionName: CRMF_EncodeCertReqMessages
    functionSourceFile: /src/nss/lib/crmf/crmfenc.c
    functionUses: 1
    functionsReached:
    - SEC_ASN1Encode
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CRMF_EncodeCertReqMessages(CRMFCertReqMsg **inCertReqMsgs,\n
      \                          CRMFEncoderOutputCallback fn,\n                           void
      *arg)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/crmf/respcli.c:29,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/crmf/respcli.c:33,1
    - Dst: SEC_ASN1Decode
      Src: /src/nss/lib/crmf/respcli.c:38,1
    - Dst: cmmf_decode_process_cert_response
      Src: /src/nss/lib/crmf/respcli.c:45,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/crmf/respcli.c:55,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 3
    argNames:
    - db
    - buf
    - len
    argTypes:
    - CERTCertDBHandle*
    - char*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 57
    functionName: CMMF_CreateCertRepContentFromDER
    functionSourceFile: /src/nss/lib/crmf/respcli.c
    functionUses: 1
    functionsReached:
    - PORT_NewArena
    - PORT_FreeArena
    - cmmf_decode_process_cert_response
    - PORT_ArenaZNew
    - SEC_ASN1Decode
    linkageType: ''
    returnType: CMMFCertRepContent
    signature: "CMMFCertRepContent *\nCMMF_CreateCertRepContentFromDER(CERTCertDBHandle
      *db, const char *buf,\n                                 long len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/respcli.c:62,1
    - Dst: DER_GetInteger
      Src: /src/nss/lib/crmf/respcli.c:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - inCertResp
    argTypes:
    - CMMFCertResponse*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 67
    functionName: CMMF_CertResponseGetCertReqId
    functionSourceFile: /src/nss/lib/crmf/respcli.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - DER_GetInteger
    linkageType: ''
    returnType: long
    signature: long CMMF_CertResponseGetCertReqId(CMMFCertResponse *inCertResp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/respcli.c:75,1
    - Dst: CMMF_CertRepContentGetNumResponses
      Src: /src/nss/lib/crmf/respcli.c:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - inCertRepContent
    - inIndex
    argTypes:
    - CMMFCertRepContent*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 78
    functionName: cmmf_CertRepContentIsIndexValid
    functionSourceFile: /src/nss/lib/crmf/respcli.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - CMMF_CertRepContentGetNumResponses
    linkageType: ''
    returnType: PRBool
    signature: "PRBool cmmf_CertRepContentIsIndexValid(CMMFCertRepContent *inCertRepContent,\n
      \                               int inIndex)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/respcli.c:87,1
    - Dst: cmmf_CertRepContentIsIndexValid
      Src: /src/nss/lib/crmf/respcli.c:88,1
    - Dst: cmmf_CertRepContentIsIndexValid
      Src: /src/nss/lib/crmf/respcli.c:90,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/crmf/respcli.c:93,1
    - Dst: cmmf_CopyCertResponse
      Src: /src/nss/lib/crmf/respcli.c:95,1
    - Dst: CMMF_DestroyCertResponse
      Src: /src/nss/lib/crmf/respcli.c:98,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - inCertRepContent
    - inIndex
    argTypes:
    - CMMFCertRepContent*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 80
    functionDepth: 11
    functionLinenumber: 80
    functionLinenumberEnd: 103
    functionName: CMMF_CertRepContentGetResponseAtIndex
    functionSourceFile: /src/nss/lib/crmf/respcli.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - CMMF_DestroyCertResponse
    - PORT_ZNew
    - cmmf_CopyCertResponse
    - cmmf_CertRepContentIsIndexValid
    linkageType: ''
    returnType: CMMFCertResponse
    signature: "CMMFCertResponse *\nCMMF_CertRepContentGetResponseAtIndex(CMMFCertRepContent
      *inCertRepContent,\n                                      int inIndex)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/respcli.c:108,1
    - Dst: cmmf_PKIStatusInfoGetStatus
      Src: /src/nss/lib/crmf/respcli.c:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - inCertResp
    argTypes:
    - CMMFCertResponse*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 113
    functionName: CMMF_CertResponseGetPKIStatusInfoStatus
    functionSourceFile: /src/nss/lib/crmf/respcli.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - cmmf_PKIStatusInfoGetStatus
    linkageType: ''
    returnType: CMMFPKIStatus
    signature: CMMFPKIStatus CMMF_CertResponseGetPKIStatusInfoStatus(CMMFCertResponse
      *inCertResp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/respcli.c:119,1
    - Dst: cmmf_CertOrEncCertGetCertificate
      Src: /src/nss/lib/crmf/respcli.c:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - inCertResp
    - inCertdb
    argTypes:
    - CMMFCertResponse*
    - CERTCertDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 115
    functionDepth: 9
    functionLinenumber: 115
    functionLinenumberEnd: 126
    functionName: CMMF_CertResponseGetCertificate
    functionSourceFile: /src/nss/lib/crmf/respcli.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - cmmf_CertOrEncCertGetCertificate
    linkageType: ''
    returnType: CERTCertificate
    signature: "CERTCertificate *\nCMMF_CertResponseGetCertificate(CMMFCertResponse
      *inCertResp,\n                                CERTCertDBHandle *inCertdb)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/respcli.c:131,1
    - Dst: cmmf_MakeCertList
      Src: /src/nss/lib/crmf/respcli.c:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - inCertRepContent
    argTypes:
    - CMMFCertRepContent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 128
    functionDepth: 10
    functionLinenumber: 128
    functionLinenumberEnd: 136
    functionName: CMMF_CertRepContentGetCAPubs
    functionSourceFile: /src/nss/lib/crmf/respcli.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - cmmf_MakeCertList
    linkageType: ''
    returnType: CERTCertList
    signature: 'CERTCertList *

      CMMF_CertRepContentGetCAPubs(CMMFCertRepContent *inCertRepContent)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cmmf_user_encode
      Src: /src/nss/lib/crmf/cmmfasn1.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - inCertRepContent
    - inCallback
    - inArg
    argTypes:
    - CMMFCertRepContent*
    - CRMFEncoderOutputCallback
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 41
    functionName: CMMF_EncodeCertRepContent
    functionSourceFile: /src/nss/lib/crmf/cmmfasn1.c
    functionUses: 1
    functionsReached:
    - cmmf_user_encode
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CMMF_EncodeCertRepContent(CMMFCertRepContent *inCertRepContent,\n
      \                         CRMFEncoderOutputCallback inCallback,\n                          void
      *inArg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cmmf_user_encode
      Src: /src/nss/lib/crmf/cmmfasn1.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - inDecKeyChall
    - inCallback
    - inArg
    argTypes:
    - CMMFPOPODecKeyChallContent*
    - CRMFEncoderOutputCallback
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 50
    functionName: CMMF_EncodePOPODecKeyChallContent
    functionSourceFile: /src/nss/lib/crmf/cmmfasn1.c
    functionUses: 1
    functionsReached:
    - cmmf_user_encode
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CMMF_EncodePOPODecKeyChallContent(CMMFPOPODecKeyChallContent
      *inDecKeyChall,\n                                  CRMFEncoderOutputCallback
      inCallback,\n                                  void *inArg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/crmf/cmmfasn1.c:59,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/crmf/cmmfasn1.c:63,1
    - Dst: SEC_ASN1Decode
      Src: /src/nss/lib/crmf/cmmfasn1.c:68,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/crmf/cmmfasn1.c:77,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - char*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 80
    functionName: CMMF_CreatePOPODecKeyRespContentFromDER
    functionSourceFile: /src/nss/lib/crmf/cmmfasn1.c
    functionUses: 2
    functionsReached:
    - PORT_FreeArena
    - PORT_ArenaZNew
    - PORT_NewArena
    - SEC_ASN1Decode
    linkageType: ''
    returnType: CMMFPOPODecKeyRespContent
    signature: 'CMMFPOPODecKeyRespContent *

      CMMF_CreatePOPODecKeyRespContentFromDER(const char *buf, long len)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cmmf_user_encode
      Src: /src/nss/lib/crmf/cmmfasn1.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - inKeyRecRep
    - inCallback
    - inArg
    argTypes:
    - CMMFKeyRecRepContent*
    - CRMFEncoderOutputCallback
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 89
    functionName: CMMF_EncodeKeyRecRepContent
    functionSourceFile: /src/nss/lib/crmf/cmmfasn1.c
    functionUses: 2
    functionsReached:
    - cmmf_user_encode
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CMMF_EncodeKeyRecRepContent(CMMFKeyRecRepContent *inKeyRecRep,\n
      \                           CRMFEncoderOutputCallback inCallback,\n                            void
      *inArg)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/crmf/cmmfasn1.c:99,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/crmf/cmmfasn1.c:103,1
    - Dst: SEC_ASN1Decode
      Src: /src/nss/lib/crmf/cmmfasn1.c:108,1
    - Dst: cmmf_decode_process_certified_key_pair
      Src: /src/nss/lib/crmf/cmmfasn1.c:115,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/crmf/cmmfasn1.c:128,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 3
    argNames:
    - db
    - buf
    - len
    argTypes:
    - CERTCertDBHandle*
    - char*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 131
    functionName: CMMF_CreateKeyRecRepContentFromDER
    functionSourceFile: /src/nss/lib/crmf/cmmfasn1.c
    functionUses: 2
    functionsReached:
    - PORT_NewArena
    - PORT_FreeArena
    - SEC_ASN1Decode
    - PORT_ArenaZNew
    - cmmf_decode_process_certified_key_pair
    linkageType: ''
    returnType: CMMFKeyRecRepContent
    signature: "CMMFKeyRecRepContent *\nCMMF_CreateKeyRecRepContentFromDER(CERTCertDBHandle
      *db, const char *buf,\n                                   long len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/servget.c:15,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - inEncrKey
    argTypes:
    - CRMFEncryptedKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 20
    functionName: CRMF_EncryptedKeyGetChoice
    functionSourceFile: /src/nss/lib/crmf/servget.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: CRMFEncryptedKeyChoice
    signature: CRMFEncryptedKeyChoice CRMF_EncryptedKeyGetChoice(CRMFEncryptedKey
      *inEncrKey)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/servget.c:28,1
    - Dst: CRMF_EncryptedKeyGetChoice
      Src: /src/nss/lib/crmf/servget.c:30,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/crmf/servget.c:33,1
    - Dst: crmf_copy_encryptedvalue
      Src: /src/nss/lib/crmf/servget.c:37,1
    - Dst: CRMF_DestroyEncryptedValue
      Src: /src/nss/lib/crmf/servget.c:45,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - inEncrKey
    argTypes:
    - CRMFEncryptedKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 22
    functionDepth: 3
    functionLinenumber: 22
    functionLinenumberEnd: 48
    functionName: CRMF_EncryptedKeyGetEncryptedValue
    functionSourceFile: /src/nss/lib/crmf/servget.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_ZNew
    - CRMF_DestroyEncryptedValue
    - CRMF_EncryptedKeyGetChoice
    - crmf_copy_encryptedvalue
    linkageType: ''
    returnType: CRMFEncryptedValue
    signature: 'CRMFEncryptedValue *

      CRMF_EncryptedKeyGetEncryptedValue(CRMFEncryptedKey *inEncrKey)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZNew
      Src: /src/nss/lib/crmf/servget.c:59,1
    - Dst: crmf_make_bitstring_copy
      Src: /src/nss/lib/crmf/servget.c:63,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/crmf/servget.c:70,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - srcItem
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 73
    functionName: crmf_get_encvalue_bitstring
    functionSourceFile: /src/nss/lib/crmf/servget.c
    functionUses: 0
    functionsReached:
    - crmf_make_bitstring_copy
    - SECITEM_FreeItem
    - PORT_ZNew
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      crmf_get_encvalue_bitstring(SECItem *srcItem)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crmf_get_encvalue_bitstring
      Src: /src/nss/lib/crmf/servget.c:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - inEncValue
    argTypes:
    - CRMFEncryptedValue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 82
    functionName: CRMF_EncryptedValueGetEncSymmKey
    functionSourceFile: /src/nss/lib/crmf/servget.c
    functionUses: 0
    functionsReached:
    - crmf_get_encvalue_bitstring
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      CRMF_EncryptedValueGetEncSymmKey(CRMFEncryptedValue *inEncValue)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crmf_get_encvalue_bitstring
      Src: /src/nss/lib/crmf/servget.c:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - inEncrValue
    argTypes:
    - CRMFEncryptedValue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 91
    functionName: CRMF_EncryptedValueGetEncValue
    functionSourceFile: /src/nss/lib/crmf/servget.c
    functionUses: 0
    functionsReached:
    - crmf_get_encvalue_bitstring
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      CRMF_EncryptedValueGetEncValue(CRMFEncryptedValue *inEncrValue)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: crmf_copy_encryptedvalue_secalg
      Src: /src/nss/lib/crmf/servget.c:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - srcAlg
    argTypes:
    - SECAlgorithmID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 107
    functionName: crmf_get_encvalue_algid
    functionSourceFile: /src/nss/lib/crmf/servget.c
    functionUses: 0
    functionsReached:
    - crmf_copy_encryptedvalue_secalg
    linkageType: ''
    returnType: SECAlgorithmID
    signature: 'SECAlgorithmID *

      crmf_get_encvalue_algid(SECAlgorithmID *srcAlg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crmf_get_encvalue_algid
      Src: /src/nss/lib/crmf/servget.c:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - inEncValue
    argTypes:
    - CRMFEncryptedValue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 109
    functionDepth: 3
    functionLinenumber: 109
    functionLinenumberEnd: 116
    functionName: CRMF_EncryptedValueGetIntendedAlg
    functionSourceFile: /src/nss/lib/crmf/servget.c
    functionUses: 0
    functionsReached:
    - crmf_get_encvalue_algid
    linkageType: ''
    returnType: SECAlgorithmID
    signature: 'SECAlgorithmID *

      CRMF_EncryptedValueGetIntendedAlg(CRMFEncryptedValue *inEncValue)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crmf_get_encvalue_algid
      Src: /src/nss/lib/crmf/servget.c:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - inEncValue
    argTypes:
    - CRMFEncryptedValue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 118
    functionDepth: 3
    functionLinenumber: 118
    functionLinenumberEnd: 125
    functionName: CRMF_EncryptedValueGetKeyAlg
    functionSourceFile: /src/nss/lib/crmf/servget.c
    functionUses: 0
    functionsReached:
    - crmf_get_encvalue_algid
    linkageType: ''
    returnType: SECAlgorithmID
    signature: 'SECAlgorithmID *

      CRMF_EncryptedValueGetKeyAlg(CRMFEncryptedValue *inEncValue)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crmf_get_encvalue_algid
      Src: /src/nss/lib/crmf/servget.c:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - inEncValue
    argTypes:
    - CRMFEncryptedValue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 127
    functionDepth: 3
    functionLinenumber: 127
    functionLinenumberEnd: 134
    functionName: CRMF_EncryptedValueGetSymmAlg
    functionSourceFile: /src/nss/lib/crmf/servget.c
    functionUses: 0
    functionsReached:
    - crmf_get_encvalue_algid
    linkageType: ''
    returnType: SECAlgorithmID
    signature: 'SECAlgorithmID *

      CRMF_EncryptedValueGetSymmAlg(CRMFEncryptedValue *inEncValue)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/crmf/servget.c:142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - inEncValue
    argTypes:
    - CRMFEncryptedValue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 143
    functionName: CRMF_EncryptedValueGetValueHint
    functionSourceFile: /src/nss/lib/crmf/servget.c
    functionUses: 0
    functionsReached:
    - SECITEM_DupItem
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      CRMF_EncryptedValueGetValueHint(CRMFEncryptedValue *inEncValue)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRMF_PKIArchiveOptionsGetOptionType
      Src: /src/nss/lib/crmf/servget.c:150,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - inOpt
    - destVal
    argTypes:
    - CRMFPKIArchiveOptions*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 157
    functionName: CRMF_PKIArchiveOptionsGetArchiveRemGenPrivKey
    functionSourceFile: /src/nss/lib/crmf/servget.c
    functionUses: 0
    functionsReached:
    - CRMF_PKIArchiveOptionsGetOptionType
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CRMF_PKIArchiveOptionsGetArchiveRemGenPrivKey(CRMFPKIArchiveOptions
      *inOpt,\n                                              PRBool *destVal)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/servget.c:165,1
    - Dst: CRMF_PKIArchiveOptionsGetOptionType
      Src: /src/nss/lib/crmf/servget.c:167,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/crmf/servget.c:170,1
    - Dst: crmf_copy_encryptedkey
      Src: /src/nss/lib/crmf/servget.c:174,1
    - Dst: CRMF_DestroyEncryptedKey
      Src: /src/nss/lib/crmf/servget.c:182,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - inOpts
    argTypes:
    - CRMFPKIArchiveOptions*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 159
    functionDepth: 4
    functionLinenumber: 159
    functionLinenumberEnd: 185
    functionName: CRMF_PKIArchiveOptionsGetEncryptedPrivKey
    functionSourceFile: /src/nss/lib/crmf/servget.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_ZNew
    - CRMF_PKIArchiveOptionsGetOptionType
    - crmf_copy_encryptedkey
    - CRMF_DestroyEncryptedKey
    linkageType: ''
    returnType: CRMFEncryptedKey
    signature: 'CRMFEncryptedKey *

      CRMF_PKIArchiveOptionsGetEncryptedPrivKey(CRMFPKIArchiveOptions *inOpts)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRMF_PKIArchiveOptionsGetOptionType
      Src: /src/nss/lib/crmf/servget.c:191,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/crmf/servget.c:195,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - inOptions
    argTypes:
    - CRMFPKIArchiveOptions*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 196
    functionName: CRMF_PKIArchiveOptionsGetKeyGenParameters
    functionSourceFile: /src/nss/lib/crmf/servget.c
    functionUses: 0
    functionsReached:
    - SECITEM_DupItem
    - CRMF_PKIArchiveOptionsGetOptionType
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      CRMF_PKIArchiveOptionsGetKeyGenParameters(CRMFPKIArchiveOptions *inOptions)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/servget.c:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - inOptions
    argTypes:
    - CRMFPKIArchiveOptions*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 206
    functionName: CRMF_PKIArchiveOptionsGetOptionType
    functionSourceFile: /src/nss/lib/crmf/servget.c
    functionUses: 3
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: CRMFPKIArchiveOptionsType
    signature: CRMFPKIArchiveOptionsType CRMF_PKIArchiveOptionsGetOptionType(CRMFPKIArchiveOptions
      *inOptions)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_GetInteger
      Src: /src/nss/lib/crmf/servget.c:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - intItem
    - destLong
    argTypes:
    - SECItem*
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 213
    functionName: crmf_extract_long_from_item
    functionSourceFile: /src/nss/lib/crmf/servget.c
    functionUses: 0
    functionsReached:
    - DER_GetInteger
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus crmf_extract_long_from_item(SECItem *intItem, long *destLong)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/servget.c:222,1
    - Dst: crmf_extract_long_from_item
      Src: /src/nss/lib/crmf/servget.c:227,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - inKey
    - destOpt
    argTypes:
    - CRMFPOPOPrivKey*
    - CRMFSubseqMessOptions*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 245
    functionName: CRMF_POPOPrivGetKeySubseqMess
    functionSourceFile: /src/nss/lib/crmf/servget.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - crmf_extract_long_from_item
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CRMF_POPOPrivGetKeySubseqMess(CRMFPOPOPrivKey *inKey,\n
      \                             CRMFSubseqMessOptions *destOpt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/servget.c:250,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - inPrivKey
    argTypes:
    - CRMFPOPOPrivKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 255
    functionName: CRMF_POPOPrivKeyGetChoice
    functionSourceFile: /src/nss/lib/crmf/servget.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: CRMFPOPOPrivKeyChoice
    signature: CRMFPOPOPrivKeyChoice CRMF_POPOPrivKeyGetChoice(CRMFPOPOPrivKey *inPrivKey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/servget.c:260,1
    - Dst: crmf_make_bitstring_copy
      Src: /src/nss/lib/crmf/servget.c:264,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - inKey
    - destMAC
    argTypes:
    - CRMFPOPOPrivKey*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 265
    functionName: CRMF_POPOPrivKeyGetDHMAC
    functionSourceFile: /src/nss/lib/crmf/servget.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - crmf_make_bitstring_copy
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CRMF_POPOPrivKeyGetDHMAC(CRMFPOPOPrivKey *inKey, SECItem
      *destMAC)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/servget.c:271,1
    - Dst: crmf_make_bitstring_copy
      Src: /src/nss/lib/crmf/servget.c:277,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - inKey
    - destString
    argTypes:
    - CRMFPOPOPrivKey*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 279
    functionName: CRMF_POPOPrivKeyGetThisMessage
    functionSourceFile: /src/nss/lib/crmf/servget.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - crmf_make_bitstring_copy
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CRMF_POPOPrivKeyGetThisMessage(CRMFPOPOPrivKey *inKey,\n
      \                              SECItem *destString)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/servget.c:287,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/crmf/servget.c:291,1
    - Dst: SECOID_CopyAlgorithmID
      Src: /src/nss/lib/crmf/servget.c:295,1
    - Dst: SECOID_DestroyAlgorithmID
      Src: /src/nss/lib/crmf/servget.c:304,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - inSignKey
    argTypes:
    - CRMFPOPOSigningKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 307
    functionName: CRMF_POPOSigningKeyGetAlgID
    functionSourceFile: /src/nss/lib/crmf/servget.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - SECOID_DestroyAlgorithmID
    - SECOID_CopyAlgorithmID
    - PORT_ZNew
    linkageType: ''
    returnType: SECAlgorithmID
    signature: 'SECAlgorithmID *

      CRMF_POPOSigningKeyGetAlgID(CRMFPOPOSigningKey *inSignKey)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/servget.c:312,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/crmf/servget.c:316,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - inSignKey
    argTypes:
    - CRMFPOPOSigningKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 317
    functionName: CRMF_POPOSigningKeyGetInput
    functionSourceFile: /src/nss/lib/crmf/servget.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SECITEM_DupItem
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      CRMF_POPOSigningKeyGetInput(CRMFPOPOSigningKey *inSignKey)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/servget.c:325,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/crmf/servget.c:329,1
    - Dst: crmf_make_bitstring_copy
      Src: /src/nss/lib/crmf/servget.c:333,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/crmf/servget.c:340,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - inSignKey
    argTypes:
    - CRMFPOPOSigningKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 343
    functionName: CRMF_POPOSigningKeyGetSignature
    functionSourceFile: /src/nss/lib/crmf/servget.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - crmf_make_bitstring_copy
    - SECITEM_FreeItem
    - PORT_ZNew
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      CRMF_POPOSigningKeyGetSignature(CRMFPOPOSigningKey *inSignKey)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/crmf/servget.c:356,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/crmf/servget.c:362,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/crmf/servget.c:363,1
    - Dst: SECOID_CopyAlgorithmID
      Src: /src/nss/lib/crmf/servget.c:368,1
    - Dst: crmf_make_bitstring_copy
      Src: /src/nss/lib/crmf/servget.c:374,1
    - Dst: CRMF_DestroyPOPOSigningKey
      Src: /src/nss/lib/crmf/servget.c:382,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - poolp
    - inPopoSignKey
    - destPopoSignKey
    argTypes:
    - PLArenaPool*
    - CRMFPOPOSigningKey*
    - CRMFPOPOSigningKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 385
    functionName: crmf_copy_poposigningkey
    functionSourceFile: /src/nss/lib/crmf/servget.c
    functionUses: 0
    functionsReached:
    - PORT_ZNew
    - CRMF_DestroyPOPOSigningKey
    - SECOID_CopyAlgorithmID
    - SECITEM_CopyItem
    - PORT_ArenaZNew
    - crmf_make_bitstring_copy
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus crmf_copy_poposigningkey(PLArenaPool *poolp,\n                         CRMFPOPOSigningKey
      *inPopoSignKey,\n                         CRMFPOPOSigningKey *destPopoSignKey)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: crmf_make_bitstring_copy
      Src: /src/nss/lib/crmf/servget.c:401,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/crmf/servget.c:405,1
    - Dst: CRMF_DestroyPOPOPrivKey
      Src: /src/nss/lib/crmf/servget.c:413,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - poolp
    - srcPrivKey
    - destPrivKey
    argTypes:
    - PLArenaPool*
    - CRMFPOPOPrivKey*
    - CRMFPOPOPrivKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 416
    functionName: crmf_copy_popoprivkey
    functionSourceFile: /src/nss/lib/crmf/servget.c
    functionUses: 0
    functionsReached:
    - CRMF_DestroyPOPOPrivKey
    - crmf_make_bitstring_copy
    - SECITEM_CopyItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus crmf_copy_popoprivkey(PLArenaPool *poolp,\n                      CRMFPOPOPrivKey
      *srcPrivKey,\n                      CRMFPOPOPrivKey *destPrivKey)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/crmf/servget.c:431,1
    - Dst: crmf_copy_poposigningkey
      Src: /src/nss/lib/crmf/servget.c:441,1
    - Dst: crmf_copy_popoprivkey
      Src: /src/nss/lib/crmf/servget.c:452,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 2
    argNames:
    - poolp
    - srcPOP
    argTypes:
    - PLArenaPool*
    - CRMFProofOfPossession*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 418
    functionDepth: 2
    functionLinenumber: 418
    functionLinenumberEnd: 466
    functionName: crmf_copy_pop
    functionSourceFile: /src/nss/lib/crmf/servget.c
    functionUses: 0
    functionsReached:
    - PORT_ArenaZNew
    - crmf_copy_poposigningkey
    - crmf_copy_popoprivkey
    linkageType: ''
    returnType: CRMFProofOfPossession
    signature: 'CRMFProofOfPossession *

      crmf_copy_pop(PLArenaPool *poolp, CRMFProofOfPossession *srcPOP)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/crmf/servget.c:474,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/crmf/servget.c:478,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/crmf/servget.c:480,1
    - Dst: crmf_copy_cert_request
      Src: /src/nss/lib/crmf/servget.c:485,1
    - Dst: crmf_copy_pop
      Src: /src/nss/lib/crmf/servget.c:489,1
    - Dst: CRMF_DestroyCertReqMsg
      Src: /src/nss/lib/crmf/servget.c:499,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - srcReqMsg
    argTypes:
    - CRMFCertReqMsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 468
    functionDepth: 3
    functionLinenumber: 468
    functionLinenumberEnd: 501
    functionName: crmf_copy_cert_req_msg
    functionSourceFile: /src/nss/lib/crmf/servget.c
    functionUses: 0
    functionsReached:
    - PORT_NewArena
    - PORT_FreeArena
    - CRMF_DestroyCertReqMsg
    - PORT_ArenaZNew
    - crmf_copy_cert_request
    - crmf_copy_pop
    linkageType: ''
    returnType: CRMFCertReqMsg
    signature: 'CRMFCertReqMsg *

      crmf_copy_cert_req_msg(CRMFCertReqMsg *srcReqMsg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/servget.c:509,1
    - Dst: CRMF_CertReqMessagesGetNumMessages
      Src: /src/nss/lib/crmf/servget.c:513,1
    - Dst: crmf_copy_cert_req_msg
      Src: /src/nss/lib/crmf/servget.c:517,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - inReqMsgs
    - index
    argTypes:
    - CRMFCertReqMessages*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 503
    functionDepth: 4
    functionLinenumber: 503
    functionLinenumberEnd: 518
    functionName: CRMF_CertReqMessagesGetCertReqMsgAtIndex
    functionSourceFile: /src/nss/lib/crmf/servget.c
    functionUses: 2
    functionsReached:
    - CRMF_CertReqMessagesGetNumMessages
    - PORT_Assert
    - crmf_copy_cert_req_msg
    linkageType: ''
    returnType: CRMFCertReqMsg
    signature: "CRMFCertReqMsg *\nCRMF_CertReqMessagesGetCertReqMsgAtIndex(CRMFCertReqMessages
      *inReqMsgs,\n                                         int index)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/servget.c:525,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - inCertReqMsgs
    argTypes:
    - CRMFCertReqMessages*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 533
    functionName: CRMF_CertReqMessagesGetNumMessages
    functionSourceFile: /src/nss/lib/crmf/servget.c
    functionUses: 3
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: int
    signature: int CRMF_CertReqMessagesGetNumMessages(CRMFCertReqMessages *inCertReqMsgs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/servget.c:541,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/crmf/servget.c:543,1
    - Dst: crmf_copy_cert_request
      Src: /src/nss/lib/crmf/servget.c:547,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/crmf/servget.c:555,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - inCertReqMsg
    argTypes:
    - CRMFCertReqMsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 535
    functionDepth: 1
    functionLinenumber: 535
    functionLinenumberEnd: 558
    functionName: CRMF_CertReqMsgGetCertRequest
    functionSourceFile: /src/nss/lib/crmf/servget.c
    functionUses: 2
    functionsReached:
    - PORT_FreeArena
    - PORT_Assert
    - crmf_copy_cert_request
    - PORT_NewArena
    linkageType: ''
    returnType: CRMFCertRequest
    signature: 'CRMFCertRequest *

      CRMF_CertReqMsgGetCertRequest(CRMFCertReqMsg *inCertReqMsg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/servget.c:563,1
    - Dst: crmf_extract_long_from_item
      Src: /src/nss/lib/crmf/servget.c:567,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - inCertReqMsg
    - destID
    argTypes:
    - CRMFCertReqMsg*
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 560
    functionDepth: 1
    functionLinenumber: 560
    functionLinenumberEnd: 569
    functionName: CRMF_CertReqMsgGetID
    functionSourceFile: /src/nss/lib/crmf/servget.c
    functionUses: 2
    functionsReached:
    - PORT_Assert
    - crmf_extract_long_from_item
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CRMF_CertReqMsgGetID(CRMFCertReqMsg *inCertReqMsg, long *destID)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/servget.c:575,1
    - Dst: CRMF_CertReqMsgGetPOPType
      Src: /src/nss/lib/crmf/servget.c:577,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/crmf/servget.c:580,1
    - Dst: crmf_copy_popoprivkey
      Src: /src/nss/lib/crmf/servget.c:584,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - inCertReqMsg
    - destKey
    argTypes:
    - CRMFCertReqMsg*
    - CRMFPOPOPrivKey**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 571
    functionDepth: 2
    functionLinenumber: 571
    functionLinenumberEnd: 587
    functionName: CRMF_CertReqMsgGetPOPKeyAgreement
    functionSourceFile: /src/nss/lib/crmf/servget.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - crmf_copy_popoprivkey
    - CRMF_CertReqMsgGetPOPType
    - PORT_ZNew
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CRMF_CertReqMsgGetPOPKeyAgreement(CRMFCertReqMsg *inCertReqMsg,\n
      \                                 CRMFPOPOPrivKey **destKey)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/servget.c:593,1
    - Dst: CRMF_CertReqMsgGetPOPType
      Src: /src/nss/lib/crmf/servget.c:595,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/crmf/servget.c:598,1
    - Dst: crmf_copy_popoprivkey
      Src: /src/nss/lib/crmf/servget.c:602,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - inCertReqMsg
    - destKey
    argTypes:
    - CRMFCertReqMsg*
    - CRMFPOPOPrivKey**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 589
    functionDepth: 2
    functionLinenumber: 589
    functionLinenumberEnd: 605
    functionName: CRMF_CertReqMsgGetPOPKeyEncipherment
    functionSourceFile: /src/nss/lib/crmf/servget.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - crmf_copy_popoprivkey
    - CRMF_CertReqMsgGetPOPType
    - PORT_ZNew
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CRMF_CertReqMsgGetPOPKeyEncipherment(CRMFCertReqMsg *inCertReqMsg,\n
      \                                    CRMFPOPOPrivKey **destKey)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/servget.c:612,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/crmf/servget.c:621,1
    - Dst: crmf_copy_poposigningkey
      Src: /src/nss/lib/crmf/servget.c:625,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - inCertReqMsg
    - destKey
    argTypes:
    - CRMFCertReqMsg*
    - CRMFPOPOSigningKey**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 607
    functionDepth: 2
    functionLinenumber: 607
    functionLinenumberEnd: 626
    functionName: CRMF_CertReqMsgGetPOPOSigningKey
    functionSourceFile: /src/nss/lib/crmf/servget.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - crmf_copy_poposigningkey
    - PORT_ZNew
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CRMF_CertReqMsgGetPOPOSigningKey(CRMFCertReqMsg *inCertReqMsg,\n
      \                                CRMFPOPOSigningKey **destKey)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/crmf/servget.c:637,1
    - Dst: CERT_CopyName
      Src: /src/nss/lib/crmf/servget.c:646,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - destName
    - srcName
    argTypes:
    - CERTName*
    - CERTName*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 628
    functionDepth: 4
    functionLinenumber: 628
    functionLinenumberEnd: 649
    functionName: crmf_copy_name
    functionSourceFile: /src/nss/lib/crmf/servget.c
    functionUses: 0
    functionsReached:
    - CERT_CopyName
    - PORT_NewArena
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus crmf_copy_name(CERTName *destName, CERTName *srcName)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/servget.c:655,1
    - Dst: CRMF_DoesRequestHaveField
      Src: /src/nss/lib/crmf/servget.c:659,1
    - Dst: crmf_copy_name
      Src: /src/nss/lib/crmf/servget.c:660,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - inCertReq
    - destIssuer
    argTypes:
    - CRMFCertRequest*
    - CERTName*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 651
    functionDepth: 5
    functionLinenumber: 651
    functionLinenumberEnd: 664
    functionName: CRMF_CertRequestGetCertTemplateIssuer
    functionSourceFile: /src/nss/lib/crmf/servget.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - crmf_copy_name
    - CRMF_DoesRequestHaveField
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CRMF_CertRequestGetCertTemplateIssuer(CRMFCertRequest *inCertReq,\n
      \                                     CERTName *destIssuer)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/servget.c:670,1
    - Dst: CRMF_DoesRequestHaveField
      Src: /src/nss/lib/crmf/servget.c:674,1
    - Dst: crmf_make_bitstring_copy
      Src: /src/nss/lib/crmf/servget.c:675,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - inCertReq
    - destIssuerUID
    argTypes:
    - CRMFCertRequest*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 666
    functionDepth: 2
    functionLinenumber: 666
    functionLinenumberEnd: 679
    functionName: CRMF_CertRequestGetCertTemplateIssuerUID
    functionSourceFile: /src/nss/lib/crmf/servget.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - crmf_make_bitstring_copy
    - CRMF_DoesRequestHaveField
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CRMF_CertRequestGetCertTemplateIssuerUID(CRMFCertRequest
      *inCertReq,\n                                         SECItem *destIssuerUID)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/servget.c:685,1
    - Dst: CRMF_DoesRequestHaveField
      Src: /src/nss/lib/crmf/servget.c:689,1
    - Dst: SECKEY_CopySubjectPublicKeyInfo
      Src: /src/nss/lib/crmf/servget.c:690,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - inCertReq
    - destPublicKey
    argTypes:
    - CRMFCertRequest*
    - CERTSubjectPublicKeyInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 681
    functionDepth: 2
    functionLinenumber: 681
    functionLinenumberEnd: 694
    functionName: CRMF_CertRequestGetCertTemplatePublicKey
    functionSourceFile: /src/nss/lib/crmf/servget.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - SECKEY_CopySubjectPublicKeyInfo
    - CRMF_DoesRequestHaveField
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CRMF_CertRequestGetCertTemplatePublicKey(CRMFCertRequest
      *inCertReq,\n                                         CERTSubjectPublicKeyInfo
      *destPublicKey)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/servget.c:700,1
    - Dst: CRMF_DoesRequestHaveField
      Src: /src/nss/lib/crmf/servget.c:704,1
    - Dst: crmf_extract_long_from_item
      Src: /src/nss/lib/crmf/servget.c:705,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - inCertReq
    - serialNumber
    argTypes:
    - CRMFCertRequest*
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 696
    functionDepth: 2
    functionLinenumber: 696
    functionLinenumberEnd: 709
    functionName: CRMF_CertRequestGetCertTemplateSerialNumber
    functionSourceFile: /src/nss/lib/crmf/servget.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - CRMF_DoesRequestHaveField
    - crmf_extract_long_from_item
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CRMF_CertRequestGetCertTemplateSerialNumber(CRMFCertRequest
      *inCertReq,\n                                            long *serialNumber)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/servget.c:715,1
    - Dst: CRMF_DoesRequestHaveField
      Src: /src/nss/lib/crmf/servget.c:719,1
    - Dst: SECOID_CopyAlgorithmID
      Src: /src/nss/lib/crmf/servget.c:720,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - inCertReq
    - destAlg
    argTypes:
    - CRMFCertRequest*
    - SECAlgorithmID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 711
    functionDepth: 2
    functionLinenumber: 711
    functionLinenumberEnd: 724
    functionName: CRMF_CertRequestGetCertTemplateSigningAlg
    functionSourceFile: /src/nss/lib/crmf/servget.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - CRMF_DoesRequestHaveField
    - SECOID_CopyAlgorithmID
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CRMF_CertRequestGetCertTemplateSigningAlg(CRMFCertRequest
      *inCertReq,\n                                          SECAlgorithmID *destAlg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/servget.c:730,1
    - Dst: CRMF_DoesRequestHaveField
      Src: /src/nss/lib/crmf/servget.c:734,1
    - Dst: crmf_copy_name
      Src: /src/nss/lib/crmf/servget.c:735,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - inCertReq
    - destSubject
    argTypes:
    - CRMFCertRequest*
    - CERTName*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 726
    functionDepth: 5
    functionLinenumber: 726
    functionLinenumberEnd: 738
    functionName: CRMF_CertRequestGetCertTemplateSubject
    functionSourceFile: /src/nss/lib/crmf/servget.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - crmf_copy_name
    - CRMF_DoesRequestHaveField
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CRMF_CertRequestGetCertTemplateSubject(CRMFCertRequest *inCertReq,\n
      \                                      CERTName *destSubject)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/servget.c:744,1
    - Dst: CRMF_DoesRequestHaveField
      Src: /src/nss/lib/crmf/servget.c:748,1
    - Dst: crmf_make_bitstring_copy
      Src: /src/nss/lib/crmf/servget.c:749,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - inCertReq
    - destSubjectUID
    argTypes:
    - CRMFCertRequest*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 740
    functionDepth: 2
    functionLinenumber: 740
    functionLinenumberEnd: 753
    functionName: CRMF_CertRequestGetCertTemplateSubjectUID
    functionSourceFile: /src/nss/lib/crmf/servget.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - crmf_make_bitstring_copy
    - CRMF_DoesRequestHaveField
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CRMF_CertRequestGetCertTemplateSubjectUID(CRMFCertRequest
      *inCertReq,\n                                          SECItem *destSubjectUID)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/servget.c:759,1
    - Dst: CRMF_DoesRequestHaveField
      Src: /src/nss/lib/crmf/servget.c:763,1
    - Dst: crmf_extract_long_from_item
      Src: /src/nss/lib/crmf/servget.c:764,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - inCertReq
    - version
    argTypes:
    - CRMFCertRequest*
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 755
    functionDepth: 2
    functionLinenumber: 755
    functionLinenumberEnd: 768
    functionName: CRMF_CertRequestGetCertTemplateVersion
    functionSourceFile: /src/nss/lib/crmf/servget.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - CRMF_DoesRequestHaveField
    - crmf_extract_long_from_item
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CRMF_CertRequestGetCertTemplateVersion(CRMFCertRequest *inCertReq,\n
      \                                      long *version)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: crmf_create_prtime
      Src: /src/nss/lib/crmf/servget.c:778,1
    - Dst: crmf_create_prtime
      Src: /src/nss/lib/crmf/servget.c:785,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - destValidity
    - src
    argTypes:
    - CRMFGetValidity*
    - CRMFOptionalValidity*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 770
    functionDepth: 2
    functionLinenumber: 770
    functionLinenumberEnd: 792
    functionName: crmf_copy_validity
    functionSourceFile: /src/nss/lib/crmf/servget.c
    functionUses: 0
    functionsReached:
    - crmf_create_prtime
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus crmf_copy_validity(CRMFGetValidity *destValidity,\n                   CRMFOptionalValidity
      *src)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/servget.c:798,1
    - Dst: CRMF_DoesRequestHaveField
      Src: /src/nss/lib/crmf/servget.c:802,1
    - Dst: crmf_copy_validity
      Src: /src/nss/lib/crmf/servget.c:803,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - inCertReq
    - destValidity
    argTypes:
    - CRMFCertRequest*
    - CRMFGetValidity*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 794
    functionDepth: 3
    functionLinenumber: 794
    functionLinenumberEnd: 807
    functionName: CRMF_CertRequestGetCertTemplateValidity
    functionSourceFile: /src/nss/lib/crmf/servget.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - crmf_copy_validity
    - CRMF_DoesRequestHaveField
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CRMF_CertRequestGetCertTemplateValidity(CRMFCertRequest
      *inCertReq,\n                                        CRMFGetValidity *destValidity)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/servget.c:816,1
    - Dst: CRMF_CertRequestGetNumControls
      Src: /src/nss/lib/crmf/servget.c:820,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/crmf/servget.c:824,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/crmf/servget.c:830,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/crmf/servget.c:835,1
    - Dst: crmf_copy_pkiarchiveoptions
      Src: /src/nss/lib/crmf/servget.c:857,1
    - Dst: CRMF_DestroyControl
      Src: /src/nss/lib/crmf/servget.c:869,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 50
    argCount: 2
    argNames:
    - inCertReq
    - index
    argTypes:
    - CRMFCertRequest*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 809
    functionDepth: 5
    functionLinenumber: 809
    functionLinenumberEnd: 871
    functionName: CRMF_CertRequestGetControlAtIndex
    functionSourceFile: /src/nss/lib/crmf/servget.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - crmf_copy_pkiarchiveoptions
    - PORT_ZNew
    - SECITEM_CopyItem
    - CRMF_DestroyControl
    - CRMF_CertRequestGetNumControls
    linkageType: ''
    returnType: CRMFControl
    signature: 'CRMFControl *

      CRMF_CertRequestGetControlAtIndex(CRMFCertRequest *inCertReq, int index)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/crmf/servget.c:876,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inControl
    argTypes:
    - CRMFControl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 873
    functionDepth: 0
    functionLinenumber: 873
    functionLinenumberEnd: 877
    functionName: crmf_copy_control_value
    functionSourceFile: /src/nss/lib/crmf/servget.c
    functionUses: 0
    functionsReached:
    - SECITEM_DupItem
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      crmf_copy_control_value(CRMFControl *inControl)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/servget.c:882,1
    - Dst: CRMF_ControlGetControlType
      Src: /src/nss/lib/crmf/servget.c:884,1
    - Dst: crmf_copy_control_value
      Src: /src/nss/lib/crmf/servget.c:887,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - inControl
    argTypes:
    - CRMFControl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 879
    functionDepth: 1
    functionLinenumber: 879
    functionLinenumberEnd: 888
    functionName: CRMF_ControlGetAuthenticatorControlValue
    functionSourceFile: /src/nss/lib/crmf/servget.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - crmf_copy_control_value
    - CRMF_ControlGetControlType
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      CRMF_ControlGetAuthenticatorControlValue(CRMFControl *inControl)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/servget.c:895,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - inControl
    argTypes:
    - CRMFControl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 890
    functionDepth: 0
    functionLinenumber: 890
    functionLinenumberEnd: 919
    functionName: CRMF_ControlGetControlType
    functionSourceFile: /src/nss/lib/crmf/servget.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: CRMFControlType
    signature: CRMFControlType CRMF_ControlGetControlType(CRMFControl *inControl)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/servget.c:927,1
    - Dst: CRMF_ControlGetControlType
      Src: /src/nss/lib/crmf/servget.c:929,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/crmf/servget.c:932,1
    - Dst: crmf_copy_pkiarchiveoptions
      Src: /src/nss/lib/crmf/servget.c:936,1
    - Dst: CRMF_DestroyPKIArchiveOptions
      Src: /src/nss/lib/crmf/servget.c:944,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - inControl
    argTypes:
    - CRMFControl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 921
    functionDepth: 5
    functionLinenumber: 921
    functionLinenumberEnd: 947
    functionName: CRMF_ControlGetPKIArchiveOptions
    functionSourceFile: /src/nss/lib/crmf/servget.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - CRMF_DestroyPKIArchiveOptions
    - crmf_copy_pkiarchiveoptions
    - PORT_ZNew
    - CRMF_ControlGetControlType
    linkageType: ''
    returnType: CRMFPKIArchiveOptions
    signature: 'CRMFPKIArchiveOptions *

      CRMF_ControlGetPKIArchiveOptions(CRMFControl *inControl)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/servget.c:952,1
    - Dst: CRMF_ControlGetControlType
      Src: /src/nss/lib/crmf/servget.c:954,1
    - Dst: crmf_copy_control_value
      Src: /src/nss/lib/crmf/servget.c:957,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - inControl
    argTypes:
    - CRMFControl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 949
    functionDepth: 1
    functionLinenumber: 949
    functionLinenumberEnd: 959
    functionName: CRMF_ControlGetRegTokenControlValue
    functionSourceFile: /src/nss/lib/crmf/servget.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - crmf_copy_control_value
    - CRMF_ControlGetControlType
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      CRMF_ControlGetRegTokenControlValue(CRMFControl *inControl)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/servget.c:967,1
    - Dst: CRMF_CertRequestGetNumberOfExtensions
      Src: /src/nss/lib/crmf/servget.c:968,1
    - Dst: crmf_copy_cert_extension
      Src: /src/nss/lib/crmf/servget.c:972,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - inCertReq
    - index
    argTypes:
    - CRMFCertRequest*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 961
    functionDepth: 3
    functionLinenumber: 961
    functionLinenumberEnd: 974
    functionName: CRMF_CertRequestGetExtensionAtIndex
    functionSourceFile: /src/nss/lib/crmf/servget.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - crmf_copy_cert_extension
    - CRMF_CertRequestGetNumberOfExtensions
    linkageType: ''
    returnType: CRMFCertExtension
    signature: "CRMFCertExtension *\nCRMF_CertRequestGetExtensionAtIndex(CRMFCertRequest
      *inCertReq,\n                                    int index)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bits
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    functionName: CRMF_BITS_TO_BYTES
    functionSourceFile: /src/nss/lib/crmf/crmfi.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CRMF_BITS_TO_BYTES(bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bytes
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: CRMF_BYTES_TO_BITS
    functionSourceFile: /src/nss/lib/crmf/crmfi.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CRMF_BYTES_TO_BITS(bytes)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/crmf/challcli.c:20,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/crmf/challcli.c:24,1
    - Dst: SEC_ASN1Decode
      Src: /src/nss/lib/crmf/challcli.c:29,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/crmf/challcli.c:43,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - char*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 46
    functionName: CMMF_CreatePOPODecKeyChallContentFromDER
    functionSourceFile: /src/nss/lib/crmf/challcli.c
    functionUses: 1
    functionsReached:
    - PORT_FreeArena
    - PORT_ArenaZNew
    - PORT_NewArena
    - SEC_ASN1Decode
    linkageType: ''
    returnType: CMMFPOPODecKeyChallContent
    signature: 'CMMFPOPODecKeyChallContent *

      CMMF_CreatePOPODecKeyChallContentFromDER(const char *buf, long len)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/challcli.c:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - inKeyChallCont
    argTypes:
    - CMMFPOPODecKeyChallContent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 56
    functionName: CMMF_POPODecKeyChallContentGetNumChallenges
    functionSourceFile: /src/nss/lib/crmf/challcli.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: int
    signature: int CMMF_POPODecKeyChallContentGetNumChallenges(CMMFPOPODecKeyChallContent
      *inKeyChallCont)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/challcli.c:62,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/crmf/challcli.c:67,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - inKeyChallCont
    - inIndex
    argTypes:
    - CMMFPOPODecKeyChallContent*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 68
    functionName: CMMF_POPODecKeyChallContentGetPublicValue
    functionSourceFile: /src/nss/lib/crmf/challcli.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - SECITEM_DupItem
    linkageType: ''
    returnType: SECItem
    signature: "SECItem *\nCMMF_POPODecKeyChallContentGetPublicValue(CMMFPOPODecKeyChallContent
      *inKeyChallCont,\n                                          int inIndex)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - inChalCont
    - inIndex
    argTypes:
    - CMMFPOPODecKeyChallContent*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 82
    functionName: cmmf_get_owf
    functionSourceFile: /src/nss/lib/crmf/challcli.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECAlgorithmID
    signature: "SECAlgorithmID *\ncmmf_get_owf(CMMFPOPODecKeyChallContent *inChalCont,\n
      \            int inIndex)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/challcli.c:99,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/crmf/challcli.c:105,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/crmf/challcli.c:111,1
    - Dst: PK11_PrivDecryptPKCS1
      Src: /src/nss/lib/crmf/challcli.c:115,1
    - Dst: SEC_ASN1DecodeItem
      Src: /src/nss/lib/crmf/challcli.c:122,1
    - Dst: cmmf_get_owf
      Src: /src/nss/lib/crmf/challcli.c:130,1
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/crmf/challcli.c:136,1
    - Dst: HASH_ResultLenByOidTag
      Src: /src/nss/lib/crmf/challcli.c:137,1
    - Dst: PK11_HashBuf
      Src: /src/nss/lib/crmf/challcli.c:141,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/crmf/challcli.c:146,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/crmf/challcli.c:150,1
    - Dst: PK11_HashBuf
      Src: /src/nss/lib/crmf/challcli.c:154,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/crmf/challcli.c:159,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/crmf/challcli.c:163,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/crmf/challcli.c:168,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/crmf/challcli.c:172,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 67
    argCount: 3
    argNames:
    - inChalCont
    - inIndex
    - inPrivKey
    argTypes:
    - CMMFPOPODecKeyChallContent*
    - int
    - SECKEYPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 84
    functionDepth: 10
    functionLinenumber: 84
    functionLinenumberEnd: 175
    functionName: CMMF_POPODecKeyChallContDecryptChallenge
    functionSourceFile: /src/nss/lib/crmf/challcli.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - SECITEM_CompareItem
    - HASH_ResultLenByOidTag
    - PORT_NewArena
    - PK11_PrivDecryptPKCS1
    - PORT_FreeArena
    - cmmf_get_owf
    - PK11_HashBuf
    - SECITEM_AllocItem
    - SEC_ASN1DecodeItem
    - SECOID_FindOIDTag
    - PORT_SetError
    - SECITEM_CopyItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CMMF_POPODecKeyChallContDecryptChallenge(CMMFPOPODecKeyChallContent
      *inChalCont,\n                                         int inIndex,\n                                         SECKEYPrivateKey
      *inPrivKey)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/challcli.c:184,1
    - Dst: DER_GetInteger
      Src: /src/nss/lib/crmf/challcli.c:193,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - inKeyChallCont
    - inIndex
    - inDest
    argTypes:
    - CMMFPOPODecKeyChallContent*
    - int
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 195
    functionName: CMMF_POPODecKeyChallContentGetRandomNumber
    functionSourceFile: /src/nss/lib/crmf/challcli.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - DER_GetInteger
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CMMF_POPODecKeyChallContentGetRandomNumber(CMMFPOPODecKeyChallContent
      *inKeyChallCont,\n                                           int inIndex,\n
      \                                          long *inDest)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/crmf/challcli.c:209,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/crmf/challcli.c:213,1
    - Dst: PORT_ArenaZNewArray
      Src: /src/nss/lib/crmf/challcli.c:217,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/crmf/challcli.c:222,1
    - Dst: SEC_ASN1EncodeInteger
      Src: /src/nss/lib/crmf/challcli.c:226,1
    - Dst: cmmf_user_encode
      Src: /src/nss/lib/crmf/challcli.c:231,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/crmf/challcli.c:235,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 4
    argNames:
    - inDecodedRand
    - inNumRand
    - inCallback
    - inArg
    argTypes:
    - long*
    - int
    - CRMFEncoderOutputCallback
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 238
    functionName: CMMF_EncodePOPODecKeyRespContent
    functionSourceFile: /src/nss/lib/crmf/challcli.c
    functionUses: 1
    functionsReached:
    - cmmf_user_encode
    - PORT_ArenaZNewArray
    - PORT_NewArena
    - PORT_FreeArena
    - PORT_ArenaZNew
    - SEC_ASN1EncodeInteger
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CMMF_EncodePOPODecKeyRespContent(long *inDecodedRand,\n
      \                                int inNumRand,\n                                 CRMFEncoderOutputCallback
      inCallback,\n                                 void *inArg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/crmf/cmmfresp.c:24,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/crmf/cmmfresp.c:28,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/crmf/cmmfresp.c:36,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 39
    functionName: CMMF_CreateCertRepContent
    functionSourceFile: /src/nss/lib/crmf/cmmfresp.c
    functionUses: 2
    functionsReached:
    - PORT_FreeArena
    - PORT_ArenaZNew
    - PORT_NewArena
    linkageType: ''
    returnType: CMMFCertRepContent
    signature: 'CMMFCertRepContent *

      CMMF_CreateCertRepContent(void)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/crmf/cmmfresp.c:50,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/crmf/cmmfresp.c:56,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/cmmfresp.c:61,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/crmf/cmmfresp.c:62,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/crmf/cmmfresp.c:65,1
    - Dst: PORT_Free
      Src: /src/nss/lib/crmf/cmmfresp.c:72,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/crmf/cmmfresp.c:76,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 3
    argNames:
    - certOrEncCert
    - poolp
    - inCert
    argTypes:
    - CMMFCertOrEncCert*
    - PLArenaPool*
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 79
    functionName: cmmf_CertOrEncCertSetCertificate
    functionSourceFile: /src/nss/lib/crmf/cmmfresp.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SECITEM_DupItem
    - SEC_ASN1EncodeItem
    - PORT_Free
    - SECITEM_CopyItem
    - CERT_DupCertificate
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus cmmf_CertOrEncCertSetCertificate(CMMFCertOrEncCert *certOrEncCert,\n
      \                                PLArenaPool *poolp,\n                                 CERTCertificate
      *inCert)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CERT_LIST_HEAD
      Src: /src/nss/lib/crmf/cmmfresp.c:90,1
    - Dst: CERT_LIST_END
      Src: /src/nss/lib/crmf/cmmfresp.c:90,1
    - Dst: CERT_LIST_NEXT
      Src: /src/nss/lib/crmf/cmmfresp.c:91,1
    - Dst: PORT_NewArray
      Src: /src/nss/lib/crmf/cmmfresp.c:95,1
    - Dst: PORT_ArenaNewArray
      Src: /src/nss/lib/crmf/cmmfresp.c:95,1
    - Dst: CERT_LIST_HEAD
      Src: /src/nss/lib/crmf/cmmfresp.c:99,1
    - Dst: CERT_LIST_END
      Src: /src/nss/lib/crmf/cmmfresp.c:100,1
    - Dst: CERT_LIST_NEXT
      Src: /src/nss/lib/crmf/cmmfresp.c:101,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/crmf/cmmfresp.c:102,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/crmf/cmmfresp.c:107,1
    - Dst: PORT_Free
      Src: /src/nss/lib/crmf/cmmfresp.c:110,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - inCertList
    - poolp
    - certArray
    argTypes:
    - CERTCertList*
    - PLArenaPool*
    - CERTCertificate***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 81
    functionDepth: 8
    functionLinenumber: 81
    functionLinenumberEnd: 118
    functionName: cmmf_ExtractCertsFromList
    functionSourceFile: /src/nss/lib/crmf/cmmfresp.c
    functionUses: 0
    functionsReached:
    - CERT_LIST_NEXT
    - CERT_LIST_HEAD
    - PORT_Free
    - CERT_LIST_END
    - PORT_NewArray
    - CERT_DupCertificate
    - CERT_DestroyCertificate
    - PORT_ArenaNewArray
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus cmmf_ExtractCertsFromList(CERTCertList *inCertList,\n                          PLArenaPool
      *poolp,\n                          CERTCertificate ***certArray)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/cmmfresp.c:131,1
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/crmf/cmmfresp.c:140,1
    - Dst: PORT_ArenaZNewArray
      Src: /src/nss/lib/crmf/cmmfresp.c:142,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/crmf/cmmfresp.c:147,1
    - Dst: cmmf_CopyCertResponse
      Src: /src/nss/lib/crmf/cmmfresp.c:151,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/crmf/cmmfresp.c:158,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/crmf/cmmfresp.c:162,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 3
    argNames:
    - inCertRepContent
    - inCertResponses
    - inNumResponses
    argTypes:
    - CMMFCertRepContent*
    - CMMFCertResponse**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 120
    functionDepth: 11
    functionLinenumber: 120
    functionLinenumberEnd: 164
    functionName: CMMF_CertRepContentSetCertResponses
    functionSourceFile: /src/nss/lib/crmf/cmmfresp.c
    functionUses: 2
    functionsReached:
    - PORT_Assert
    - PORT_ArenaZNewArray
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - PORT_ArenaZNew
    - cmmf_CopyCertResponse
    - PORT_ArenaUnmark
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CMMF_CertRepContentSetCertResponses(CMMFCertRepContent *inCertRepContent,\n
      \                                   CMMFCertResponse **inCertResponses,\n                                    int
      inNumResponses)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZNew
      Src: /src/nss/lib/crmf/cmmfresp.c:172,1
    - Dst: SEC_ASN1EncodeInteger
      Src: /src/nss/lib/crmf/cmmfresp.c:176,1
    - Dst: CMMF_DestroyCertResponse
      Src: /src/nss/lib/crmf/cmmfresp.c:184,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - inCertReqId
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 166
    functionDepth: 2
    functionLinenumber: 166
    functionLinenumberEnd: 187
    functionName: CMMF_CreateCertResponse
    functionSourceFile: /src/nss/lib/crmf/cmmfresp.c
    functionUses: 2
    functionsReached:
    - CMMF_DestroyCertResponse
    - SEC_ASN1EncodeInteger
    - PORT_ZNew
    linkageType: ''
    returnType: CMMFCertResponse
    signature: 'CMMFCertResponse *

      CMMF_CreateCertResponse(long inCertReqId)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/cmmfresp.c:193,1
    - Dst: cmmf_PKIStatusInfoSetStatus
      Src: /src/nss/lib/crmf/cmmfresp.c:199,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - inCertResp
    - inPKIStatus
    argTypes:
    - CMMFCertResponse*
    - CMMFPKIStatus
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 201
    functionName: CMMF_CertResponseSetPKIStatusInfoStatus
    functionSourceFile: /src/nss/lib/crmf/cmmfresp.c
    functionUses: 2
    functionsReached:
    - PORT_Assert
    - cmmf_PKIStatusInfoSetStatus
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CMMF_CertResponseSetPKIStatusInfoStatus(CMMFCertResponse
      *inCertResp,\n                                        CMMFPKIStatus inPKIStatus)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/cmmfresp.c:210,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/crmf/cmmfresp.c:216,1
    - Dst: cmmf_CertOrEncCertSetCertificate
      Src: /src/nss/lib/crmf/cmmfresp.c:223,1
    - Dst: PORT_Free
      Src: /src/nss/lib/crmf/cmmfresp.c:232,1
    - Dst: PORT_Free
      Src: /src/nss/lib/crmf/cmmfresp.c:234,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 2
    argNames:
    - inCertResp
    - inCertificate
    argTypes:
    - CMMFCertResponse*
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 237
    functionName: CMMF_CertResponseSetCertificate
    functionSourceFile: /src/nss/lib/crmf/cmmfresp.c
    functionUses: 2
    functionsReached:
    - PORT_Free
    - PORT_Assert
    - cmmf_CertOrEncCertSetCertificate
    - PORT_ZNew
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CMMF_CertResponseSetCertificate(CMMFCertResponse *inCertResp,\n
      \                               CERTCertificate *inCertificate)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/cmmfresp.c:247,1
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/crmf/cmmfresp.c:257,1
    - Dst: cmmf_ExtractCertsFromList
      Src: /src/nss/lib/crmf/cmmfresp.c:259,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/crmf/cmmfresp.c:263,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/crmf/cmmfresp.c:265,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - inCertRepContent
    - inCAPubs
    argTypes:
    - CMMFCertRepContent*
    - CERTCertList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 239
    functionDepth: 9
    functionLinenumber: 239
    functionLinenumberEnd: 268
    functionName: CMMF_CertRepContentSetCAPubs
    functionSourceFile: /src/nss/lib/crmf/cmmfresp.c
    functionUses: 2
    functionsReached:
    - PORT_Assert
    - cmmf_ExtractCertsFromList
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - PORT_ArenaUnmark
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CMMF_CertRepContentSetCAPubs(CMMFCertRepContent *inCertRepContent,\n
      \                            CERTCertList *inCAPubs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/cmmfresp.c:274,1
    - Dst: cmmf_CertOrEncCertGetCertificate
      Src: /src/nss/lib/crmf/cmmfresp.c:278,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - inCertKeyPair
    - inCertdb
    argTypes:
    - CMMFCertifiedKeyPair*
    - CERTCertDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 270
    functionDepth: 9
    functionLinenumber: 270
    functionLinenumberEnd: 280
    functionName: CMMF_CertifiedKeyPairGetCertificate
    functionSourceFile: /src/nss/lib/crmf/cmmfresp.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - cmmf_CertOrEncCertGetCertificate
    linkageType: ''
    returnType: CERTCertificate
    signature: "CERTCertificate *\nCMMF_CertifiedKeyPairGetCertificate(CMMFCertifiedKeyPair
      *inCertKeyPair,\n                                    CERTCertDBHandle *inCertdb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct crmfEncoderOutput*::fn
      Src: /src/nss/lib/crmf/encutil.c:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - arg
    - buf
    - len
    - depth
    - data_kind
    argTypes:
    - void*
    - char*
    - unsigned long
    - int
    - SEC_ASN1EncodingPart
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 18
    functionName: crmf_encoder_out
    functionSourceFile: /src/nss/lib/crmf/encutil.c
    functionUses: 0
    functionsReached:
    - struct crmfEncoderOutput*::fn
    linkageType: ''
    returnType: void
    signature: "void crmf_encoder_out(void *arg, const char *buf, unsigned long len,\n
      \                int depth, SEC_ASN1EncodingPart data_kind)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/encutil.c:26,1
    - Dst: SEC_ASN1Encode
      Src: /src/nss/lib/crmf/encutil.c:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - src
    - inCallback
    - inArg
    - inTemplate
    argTypes:
    - void*
    - CRMFEncoderOutputCallback
    - void*
    - SEC_ASN1Template*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 33
    functionName: cmmf_user_encode
    functionSourceFile: /src/nss/lib/crmf/encutil.c
    functionUses: 4
    functionsReached:
    - SEC_ASN1Encode
    - PORT_Assert
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus cmmf_user_encode(void *src, CRMFEncoderOutputCallback inCallback,
      void *inArg,\n                 const SEC_ASN1Template *inTemplate)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/crmfget.c:14,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - inCertReqMsg
    argTypes:
    - CRMFCertReqMsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 19
    functionName: CRMF_CertReqMsgGetPOPType
    functionSourceFile: /src/nss/lib/crmf/crmfget.c
    functionUses: 3
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: CRMFPOPChoice
    signature: CRMFPOPChoice CRMF_CertReqMsgGetPOPType(CRMFCertReqMsg *inCertReqMsg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Free
      Src: /src/nss/lib/crmf/crmfget.c:26,1
    - Dst: PORT_Free
      Src: /src/nss/lib/crmf/crmfget.c:29,1
    - Dst: PORT_Free
      Src: /src/nss/lib/crmf/crmfget.c:32,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - inValidity
    - freeit
    argTypes:
    - CRMFOptionalValidity*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 36
    functionName: crmf_destroy_validity
    functionSourceFile: /src/nss/lib/crmf/crmfget.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus crmf_destroy_validity(CRMFOptionalValidity *inValidity, PRBool
      freeit)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZNew
      Src: /src/nss/lib/crmf/crmfget.c:46,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/crmf/crmfget.c:47,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/crmf/crmfget.c:52,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/crmf/crmfget.c:59,1
    - Dst: crmf_destroy_validity
      Src: /src/nss/lib/crmf/crmfget.c:68,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 3
    argNames:
    - poolp
    - destValidity
    - srcValidity
    argTypes:
    - PLArenaPool*
    - CRMFOptionalValidity**
    - CRMFOptionalValidity*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 71
    functionName: crmf_copy_cert_request_validity
    functionSourceFile: /src/nss/lib/crmf/crmfget.c
    functionUses: 0
    functionsReached:
    - PORT_ArenaZNew
    - SECITEM_CopyItem
    - crmf_destroy_validity
    - PORT_ZNew
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus crmf_copy_cert_request_validity(PLArenaPool *poolp,\n                                CRMFOptionalValidity
      **destValidity,\n                                CRMFOptionalValidity *srcValidity)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArray
      Src: /src/nss/lib/crmf/crmfget.c:91,1
    - Dst: crmf_copy_cert_extension
      Src: /src/nss/lib/crmf/crmfget.c:97,1
    - Dst: CRMF_DestroyCertExtension
      Src: /src/nss/lib/crmf/crmfget.c:109,1
    - Dst: PORT_Free
      Src: /src/nss/lib/crmf/crmfget.c:112,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 3
    argNames:
    - poolp
    - destTemplate
    - srcExt
    argTypes:
    - PLArenaPool*
    - CRMFCertTemplate*
    - CRMFCertExtension**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 117
    functionName: crmf_copy_extensions
    functionSourceFile: /src/nss/lib/crmf/crmfget.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - CRMF_DestroyCertExtension
    - PORT_NewArray
    - crmf_copy_cert_extension
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus crmf_copy_extensions(PLArenaPool *poolp,\n                     CRMFCertTemplate
      *destTemplate,\n                     CRMFCertExtension **srcExt)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/crmf/crmfget.c:127,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/crmf/crmfget.c:134,1
    - Dst: crmf_template_copy_secalg
      Src: /src/nss/lib/crmf/crmfget.c:141,1
    - Dst: crmf_copy_cert_name
      Src: /src/nss/lib/crmf/crmfget.c:148,1
    - Dst: crmf_copy_cert_request_validity
      Src: /src/nss/lib/crmf/crmfget.c:155,1
    - Dst: crmf_copy_cert_name
      Src: /src/nss/lib/crmf/crmfget.c:162,1
    - Dst: crmf_template_add_public_key
      Src: /src/nss/lib/crmf/crmfget.c:169,1
    - Dst: crmf_make_bitstring_copy
      Src: /src/nss/lib/crmf/crmfget.c:176,1
    - Dst: crmf_make_bitstring_copy
      Src: /src/nss/lib/crmf/crmfget.c:183,1
    - Dst: crmf_copy_extensions
      Src: /src/nss/lib/crmf/crmfget.c:190,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 75
    argCount: 3
    argNames:
    - poolp
    - destTemplate
    - srcTemplate
    argTypes:
    - PLArenaPool*
    - CRMFCertTemplate*
    - CRMFCertTemplate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 119
    functionDepth: 5
    functionLinenumber: 119
    functionLinenumberEnd: 199
    functionName: crmf_copy_cert_request_template
    functionSourceFile: /src/nss/lib/crmf/crmfget.c
    functionUses: 0
    functionsReached:
    - crmf_copy_extensions
    - crmf_copy_cert_name
    - crmf_template_copy_secalg
    - SECITEM_CopyItem
    - crmf_make_bitstring_copy
    - crmf_template_add_public_key
    - crmf_copy_cert_request_validity
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus crmf_copy_cert_request_template(PLArenaPool *poolp,\n                                CRMFCertTemplate
      *destTemplate,\n                                CRMFCertTemplate *srcTemplate)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZNew
      Src: /src/nss/lib/crmf/crmfget.c:207,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/crmf/crmfget.c:207,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/crmf/crmfget.c:212,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/crmf/crmfget.c:216,1
    - Dst: crmf_copy_pkiarchiveoptions
      Src: /src/nss/lib/crmf/crmfget.c:226,1
    - Dst: CRMF_DestroyControl
      Src: /src/nss/lib/crmf/crmfget.c:240,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 2
    argNames:
    - poolp
    - srcControl
    argTypes:
    - PLArenaPool*
    - CRMFControl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 201
    functionDepth: 5
    functionLinenumber: 201
    functionLinenumberEnd: 243
    functionName: crmf_copy_control
    functionSourceFile: /src/nss/lib/crmf/crmfget.c
    functionUses: 0
    functionsReached:
    - crmf_copy_pkiarchiveoptions
    - PORT_ZNew
    - SECITEM_CopyItem
    - CRMF_DestroyControl
    - PORT_ArenaZNew
    linkageType: ''
    returnType: CRMFControl
    signature: 'CRMFControl *

      crmf_copy_control(PLArenaPool *poolp, CRMFControl *srcControl)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CRMF_CertRequestGetNumControls
      Src: /src/nss/lib/crmf/crmfget.c:253,1
    - Dst: PORT_NewArray
      Src: /src/nss/lib/crmf/crmfget.c:258,1
    - Dst: crmf_copy_control
      Src: /src/nss/lib/crmf/crmfget.c:264,1
    - Dst: CRMF_DestroyControl
      Src: /src/nss/lib/crmf/crmfget.c:275,1
    - Dst: PORT_Free
      Src: /src/nss/lib/crmf/crmfget.c:278,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - poolp
    - destReq
    - srcReq
    argTypes:
    - PLArenaPool*
    - CRMFCertRequest*
    - CRMFCertRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 245
    functionDepth: 6
    functionLinenumber: 245
    functionLinenumberEnd: 281
    functionName: crmf_copy_cert_request_controls
    functionSourceFile: /src/nss/lib/crmf/crmfget.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - crmf_copy_control
    - CRMF_DestroyControl
    - PORT_NewArray
    - CRMF_CertRequestGetNumControls
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus crmf_copy_cert_request_controls(PLArenaPool *poolp,\n                                CRMFCertRequest
      *destReq,\n                                CRMFCertRequest *srcReq)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZNew
      Src: /src/nss/lib/crmf/crmfget.c:292,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/crmf/crmfget.c:292,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/crmf/crmfget.c:296,1
    - Dst: crmf_copy_cert_request_template
      Src: /src/nss/lib/crmf/crmfget.c:300,1
    - Dst: crmf_copy_cert_request_controls
      Src: /src/nss/lib/crmf/crmfget.c:305,1
    - Dst: CRMF_DestroyCertRequest
      Src: /src/nss/lib/crmf/crmfget.c:312,1
    - Dst: PORT_Free
      Src: /src/nss/lib/crmf/crmfget.c:313,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 2
    argNames:
    - poolp
    - srcReq
    argTypes:
    - PLArenaPool*
    - CRMFCertRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 283
    functionDepth: 7
    functionLinenumber: 283
    functionLinenumberEnd: 316
    functionName: crmf_copy_cert_request
    functionSourceFile: /src/nss/lib/crmf/crmfget.c
    functionUses: 3
    functionsReached:
    - PORT_ZNew
    - PORT_Free
    - CRMF_DestroyCertRequest
    - SECITEM_CopyItem
    - PORT_ArenaZNew
    - crmf_copy_cert_request_template
    - crmf_copy_cert_request_controls
    linkageType: ''
    returnType: CRMFCertRequest
    signature: 'CRMFCertRequest *

      crmf_copy_cert_request(PLArenaPool *poolp, CRMFCertRequest *srcReq)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/crmfget.c:321,1
    - Dst: PORT_Free
      Src: /src/nss/lib/crmf/crmfget.c:324,1
    - Dst: PORT_Free
      Src: /src/nss/lib/crmf/crmfget.c:328,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - inValidity
    argTypes:
    - CRMFGetValidity*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 333
    functionName: CRMF_DestroyGetValidity
    functionSourceFile: /src/nss/lib/crmf/crmfget.c
    functionUses: 1
    functionsReached:
    - PORT_Free
    - PORT_Assert
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CRMF_DestroyGetValidity(CRMFGetValidity *inValidity)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRMF_BITS_TO_BYTES
      Src: /src/nss/lib/crmf/crmfget.c:343,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/crmf/crmfget.c:345,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - arena
    - dest
    - src
    argTypes:
    - PLArenaPool*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 352
    functionName: crmf_make_bitstring_copy
    functionSourceFile: /src/nss/lib/crmf/crmfget.c
    functionUses: 11
    functionsReached:
    - CRMF_BITS_TO_BYTES
    - SECITEM_CopyItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus crmf_make_bitstring_copy(PLArenaPool *arena, SECItem *dest,
      SECItem *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - inCertReq
    argTypes:
    - CRMFCertRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 366
    functionName: CRMF_CertRequestGetNumberOfExtensions
    functionSourceFile: /src/nss/lib/crmf/crmfget.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int CRMF_CertRequestGetNumberOfExtensions(CRMFCertRequest *inCertReq)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/crmfget.c:371,1
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/crmf/crmfget.c:375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - inExtension
    argTypes:
    - CRMFCertExtension*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 376
    functionName: CRMF_CertExtensionGetOidTag
    functionSourceFile: /src/nss/lib/crmf/crmfget.c
    functionUses: 2
    functionsReached:
    - SECOID_FindOIDTag
    - PORT_Assert
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag CRMF_CertExtensionGetOidTag(CRMFCertExtension *inExtension)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/crmfget.c:381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - inExt
    argTypes:
    - CRMFCertExtension*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 386
    functionName: CRMF_CertExtensionGetIsCritical
    functionSourceFile: /src/nss/lib/crmf/crmfget.c
    functionUses: 2
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: PRBool
    signature: PRBool CRMF_CertExtensionGetIsCritical(CRMFCertExtension *inExt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/crmfget.c:391,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/crmf/crmfget.c:396,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - inExtension
    argTypes:
    - CRMFCertExtension*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 397
    functionName: CRMF_CertExtensionGetValue
    functionSourceFile: /src/nss/lib/crmf/crmfget.c
    functionUses: 2
    functionsReached:
    - PORT_Assert
    - SECITEM_DupItem
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      CRMF_CertExtensionGetValue(CRMFCertExtension *inExtension)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/crmfget.c:402,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/crmf/crmfget.c:405,1
    - Dst: SECOID_DestroyAlgorithmID
      Src: /src/nss/lib/crmf/crmfget.c:408,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/crmf/crmfget.c:411,1
    - Dst: PORT_Free
      Src: /src/nss/lib/crmf/crmfget.c:413,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - inKey
    argTypes:
    - CRMFPOPOSigningKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 416
    functionName: CRMF_DestroyPOPOSigningKey
    functionSourceFile: /src/nss/lib/crmf/crmfget.c
    functionUses: 2
    functionsReached:
    - PORT_Free
    - PORT_Assert
    - SECOID_DestroyAlgorithmID
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CRMF_DestroyPOPOSigningKey(CRMFPOPOSigningKey *inKey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/crmfget.c:421,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/crmf/crmfget.c:423,1
    - Dst: PORT_Free
      Src: /src/nss/lib/crmf/crmfget.c:424,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - inPrivKey
    argTypes:
    - CRMFPOPOPrivKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 427
    functionName: CRMF_DestroyPOPOPrivKey
    functionSourceFile: /src/nss/lib/crmf/crmfget.c
    functionUses: 2
    functionsReached:
    - PORT_Free
    - PORT_Assert
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CRMF_DestroyPOPOPrivKey(CRMFPOPOPrivKey *inPrivKey)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/crmfget.c:434,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - inCertReq
    argTypes:
    - CRMFCertRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 443
    functionName: CRMF_CertRequestGetNumControls
    functionSourceFile: /src/nss/lib/crmf/crmfget.c
    functionUses: 3
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: int
    signature: int CRMF_CertRequestGetNumControls(CRMFCertRequest *inCertReq)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZNewArray
      Src: /src/nss/lib/crmf/crmfpop.c:18,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - encoderArg
    - derDest
    argTypes:
    - struct crmfEncoderArg*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 26
    functionName: crmf_init_encoder_callback_arg
    functionSourceFile: /src/nss/lib/crmf/crmfpop.c
    functionUses: 0
    functionsReached:
    - PORT_ZNewArray
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus crmf_init_encoder_callback_arg(struct crmfEncoderArg *encoderArg,\n
      \                              SECItem *derDest)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/crmfpop.c:38,1
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/crmf/crmfpop.c:40,1
    - Dst: CRMF_CertReqMsgGetPOPType
      Src: /src/nss/lib/crmf/crmfpop.c:41,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/crmf/crmfpop.c:44,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/crmf/crmfpop.c:52,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/crmf/crmfpop.c:57,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - inCertReqMsg
    argTypes:
    - CRMFCertReqMsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 59
    functionName: CRMF_CertReqMsgSetRAVerifiedPOP
    functionSourceFile: /src/nss/lib/crmf/crmfpop.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - SEC_ASN1EncodeItem
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - PORT_ArenaZNew
    - CRMF_CertReqMsgGetPOPType
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CRMF_CertReqMsgSetRAVerifiedPOP(CRMFCertReqMsg *inCertReqMsg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SEC_GetSignatureAlgorithmOidTag
      Src: /src/nss/lib/crmf/crmfpop.c:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - inPubKey
    argTypes:
    - SECKEYPublicKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 70
    functionName: crmf_get_key_sign_tag
    functionSourceFile: /src/nss/lib/crmf/crmfpop.c
    functionUses: 0
    functionsReached:
    - SEC_GetSignatureAlgorithmOidTag
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag crmf_get_key_sign_tag(SECKEYPublicKey *inPubKey)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/crmf/crmfpop.c:81,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/crmf/crmfpop.c:82,1
    - Dst: crmf_get_key_sign_tag
      Src: /src/nss/lib/crmf/crmfpop.c:86,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/lib/crmf/crmfpop.c:90,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/crmf/crmfpop.c:94,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/crmf/crmfpop.c:97,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - poolp
    - inPubKey
    argTypes:
    - PLArenaPool*
    - SECKEYPublicKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 99
    functionName: crmf_create_poposignkey_algid
    functionSourceFile: /src/nss/lib/crmf/crmfpop.c
    functionUses: 0
    functionsReached:
    - crmf_get_key_sign_tag
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - SECOID_SetAlgorithmID
    - PORT_ArenaZNew
    - PORT_ArenaUnmark
    linkageType: ''
    returnType: SECAlgorithmID
    signature: "SECAlgorithmID *\ncrmf_create_poposignkey_algid(PLArenaPool *poolp,\n
      \                             SECKEYPublicKey *inPubKey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - poolp
    - inCert
    - fn
    - arg
    argTypes:
    - PLArenaPool*
    - CERTCertificate*
    - CRMFMACPasswordCallback
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 107
    functionName: crmf_create_poposigningkeyinput
    functionSourceFile: /src/nss/lib/crmf/crmfpop.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CRMFPOPOSigningKeyInput
    signature: "CRMFPOPOSigningKeyInput *\ncrmf_create_poposigningkeyinput(PLArenaPool
      *poolp, CERTCertificate *inCert,\n                                CRMFMACPasswordCallback
      fn, void *arg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Realloc
      Src: /src/nss/lib/crmf/crmfpop.c:118,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/crmfpop.c:121,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/crmf/crmfpop.c:129,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - arg
    - buf
    - len
    - depth
    - data_kind
    argTypes:
    - void*
    - char*
    - unsigned long
    - int
    - SEC_ASN1EncodingPart
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 132
    functionName: crmf_generic_encoder_callback
    functionSourceFile: /src/nss/lib/crmf/crmfpop.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_Memcpy
    - PORT_Realloc
    linkageType: ''
    returnType: void
    signature: "void crmf_generic_encoder_callback(void *arg, const char *buf, unsigned
      long len,\n                              int depth, SEC_ASN1EncodingPart data_kind)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: crmf_init_encoder_callback_arg
      Src: /src/nss/lib/crmf/crmfpop.c:140,1
    - Dst: SEC_ASN1Encode
      Src: /src/nss/lib/crmf/crmfpop.c:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - inCertReq
    - derDest
    argTypes:
    - CRMFCertRequest*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 146
    functionName: crmf_encode_certreq
    functionSourceFile: /src/nss/lib/crmf/crmfpop.c
    functionUses: 0
    functionsReached:
    - SEC_ASN1Encode
    - crmf_init_encoder_callback_arg
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus crmf_encode_certreq(CRMFCertRequest *inCertReq, SECItem *derDest)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: crmf_encode_certreq
      Src: /src/nss/lib/crmf/crmfpop.c:159,1
    - Dst: SEC_SignData
      Src: /src/nss/lib/crmf/crmfpop.c:163,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/crmf/crmfpop.c:164,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/crmf/crmfpop.c:170,1
    - Dst: PORT_Free
      Src: /src/nss/lib/crmf/crmfpop.c:176,1
    - Dst: PORT_Free
      Src: /src/nss/lib/crmf/crmfpop.c:179,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 5
    argNames:
    - poolp
    - crmfSignKey
    - certReq
    - inKey
    - inAlgId
    argTypes:
    - PLArenaPool*
    - CRMFPOPOSigningKey*
    - CRMFCertRequest*
    - SECKEYPrivateKey*
    - SECAlgorithmID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 148
    functionDepth: 8
    functionLinenumber: 148
    functionLinenumberEnd: 182
    functionName: crmf_sign_certreq
    functionSourceFile: /src/nss/lib/crmf/crmfpop.c
    functionUses: 0
    functionsReached:
    - crmf_encode_certreq
    - SECOID_GetAlgorithmTag
    - PORT_Free
    - SECITEM_CopyItem
    - SEC_SignData
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus crmf_sign_certreq(PLArenaPool *poolp,\n                  CRMFPOPOSigningKey
      *crmfSignKey,\n                  CRMFCertRequest *certReq,\n                  SECKEYPrivateKey
      *inKey,\n                  SECAlgorithmID *inAlgId)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/crmfpop.c:197,1
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/crmf/crmfpop.c:198,1
    - Dst: CRMF_DoesRequestHaveField
      Src: /src/nss/lib/crmf/crmfpop.c:203,1
    - Dst: CRMF_DoesRequestHaveField
      Src: /src/nss/lib/crmf/crmfpop.c:204,1
    - Dst: crmf_sign_certreq
      Src: /src/nss/lib/crmf/crmfpop.c:209,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/crmf/crmfpop.c:214,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/crmf/crmfpop.c:217,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 6
    argNames:
    - poolp
    - inCertReqMsg
    - signKeyInput
    - inPrivKey
    - inAlgID
    - signKey
    argTypes:
    - PLArenaPool*
    - CRMFCertReqMsg*
    - CRMFPOPOSigningKeyInput*
    - SECKEYPrivateKey*
    - SECAlgorithmID*
    - CRMFPOPOSigningKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 184
    functionDepth: 9
    functionLinenumber: 184
    functionLinenumberEnd: 219
    functionName: crmf_create_poposignkey
    functionSourceFile: /src/nss/lib/crmf/crmfpop.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - PORT_ArenaUnmark
    - crmf_sign_certreq
    - CRMF_DoesRequestHaveField
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus crmf_create_poposignkey(PLArenaPool *poolp,\n                        CRMFCertReqMsg
      *inCertReqMsg,\n                        CRMFPOPOSigningKeyInput *signKeyInput,\n
      \                       SECKEYPrivateKey *inPrivKey,\n                        SECAlgorithmID
      *inAlgID,\n                        CRMFPOPOSigningKey *signKey)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/crmfpop.c:239,1
    - Dst: CRMF_CertReqMsgGetPOPType
      Src: /src/nss/lib/crmf/crmfpop.c:242,1
    - Dst: CRMF_DoesRequestHaveField
      Src: /src/nss/lib/crmf/crmfpop.c:243,1
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/crmf/crmfpop.c:247,1
    - Dst: crmf_create_poposignkey_algid
      Src: /src/nss/lib/crmf/crmfpop.c:248,1
    - Dst: CRMF_DoesRequestHaveField
      Src: /src/nss/lib/crmf/crmfpop.c:250,1
    - Dst: crmf_create_poposigningkeyinput
      Src: /src/nss/lib/crmf/crmfpop.c:251,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/crmf/crmfpop.c:258,1
    - Dst: crmf_create_poposignkey
      Src: /src/nss/lib/crmf/crmfpop.c:263,1
    - Dst: crmf_init_encoder_callback_arg
      Src: /src/nss/lib/crmf/crmfpop.c:274,1
    - Dst: SEC_ASN1Encode
      Src: /src/nss/lib/crmf/crmfpop.c:278,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/crmf/crmfpop.c:284,1
    - Dst: PORT_Free
      Src: /src/nss/lib/crmf/crmfpop.c:288,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/crmf/crmfpop.c:289,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/crmf/crmfpop.c:293,1
    - Dst: PORT_Free
      Src: /src/nss/lib/crmf/crmfpop.c:295,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 54
    argCount: 6
    argNames:
    - inCertReqMsg
    - inPrivKey
    - inPubKey
    - inCertForInput
    - fn
    - arg
    argTypes:
    - CRMFCertReqMsg*
    - SECKEYPrivateKey*
    - SECKEYPublicKey*
    - CERTCertificate*
    - CRMFMACPasswordCallback
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 221
    functionDepth: 10
    functionLinenumber: 221
    functionLinenumberEnd: 298
    functionName: CRMF_CertReqMsgSetSignaturePOP
    functionSourceFile: /src/nss/lib/crmf/crmfpop.c
    functionUses: 1
    functionsReached:
    - crmf_create_poposignkey
    - PORT_Assert
    - crmf_create_poposigningkeyinput
    - PORT_Free
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - SECITEM_CopyItem
    - PORT_ArenaZNew
    - CRMF_CertReqMsgGetPOPType
    - SEC_ASN1Encode
    - PORT_ArenaUnmark
    - crmf_create_poposignkey_algid
    - CRMF_DoesRequestHaveField
    - crmf_init_encoder_callback_arg
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CRMF_CertReqMsgSetSignaturePOP(CRMFCertReqMsg *inCertReqMsg,\n
      \                              SECKEYPrivateKey *inPrivKey,\n                               SECKEYPublicKey
      *inPubKey,\n                               CERTCertificate *inCertForInput,\n
      \                              CRMFMACPasswordCallback fn,\n                               void
      *arg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - inPrivKey
    argTypes:
    - CRMFPOPOPrivKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 319
    functionName: crmf_get_popoprivkey_subtemplate
    functionSourceFile: /src/nss/lib/crmf/crmfpop.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SEC_ASN1Template
    signature: 'SEC_ASN1Template *

      crmf_get_popoprivkey_subtemplate(CRMFPOPOPrivKey *inPrivKey)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/crmf/crmfpop.c:333,1
    - Dst: crmf_init_encoder_callback_arg
      Src: /src/nss/lib/crmf/crmfpop.c:334,1
    - Dst: crmf_get_popoprivkey_subtemplate
      Src: /src/nss/lib/crmf/crmfpop.c:338,1
    - Dst: SEC_ASN1Encode
      Src: /src/nss/lib/crmf/crmfpop.c:342,1
    - Dst: PORT_Realloc
      Src: /src/nss/lib/crmf/crmfpop.c:349,1
    - Dst: PORT_Memmove
      Src: /src/nss/lib/crmf/crmfpop.c:355,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/crmf/crmfpop.c:363,1
    - Dst: PORT_Free
      Src: /src/nss/lib/crmf/crmfpop.c:367,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/crmf/crmfpop.c:368,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/crmf/crmfpop.c:371,1
    - Dst: PORT_Free
      Src: /src/nss/lib/crmf/crmfpop.c:373,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 4
    argNames:
    - poolp
    - inCertReqMsg
    - popoPrivKey
    - privKeyTemplate
    argTypes:
    - PLArenaPool*
    - CRMFCertReqMsg*
    - CRMFPOPOPrivKey*
    - SEC_ASN1Template*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 321
    functionDepth: 2
    functionLinenumber: 321
    functionLinenumberEnd: 376
    functionName: crmf_encode_popoprivkey
    functionSourceFile: /src/nss/lib/crmf/crmfpop.c
    functionUses: 0
    functionsReached:
    - PORT_Memmove
    - crmf_get_popoprivkey_subtemplate
    - PORT_Free
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - SECITEM_CopyItem
    - PORT_Realloc
    - SEC_ASN1Encode
    - PORT_ArenaUnmark
    - crmf_init_encoder_callback_arg
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus crmf_encode_popoprivkey(PLArenaPool *poolp,\n                        CRMFCertReqMsg
      *inCertReqMsg,\n                        CRMFPOPOPrivKey *popoPrivKey,\n                        const
      SEC_ASN1Template *privKeyTemplate)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - inChoice
    argTypes:
    - CRMFPOPChoice
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 390
    functionName: crmf_get_template_for_privkey
    functionSourceFile: /src/nss/lib/crmf/crmfpop.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SEC_ASN1Template
    signature: 'SEC_ASN1Template *

      crmf_get_template_for_privkey(CRMFPOPChoice inChoice)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/crmfpop.c:402,1
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/crmf/crmfpop.c:404,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/crmf/crmfpop.c:405,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/crmf/crmfpop.c:418,1
    - Dst: crmf_encode_popoprivkey
      Src: /src/nss/lib/crmf/crmfpop.c:426,1
    - Dst: crmf_get_template_for_privkey
      Src: /src/nss/lib/crmf/crmfpop.c:427,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/crmf/crmfpop.c:431,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/crmf/crmfpop.c:435,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 3
    argNames:
    - inCertReqMsg
    - encPrivKey
    - inChoice
    argTypes:
    - CRMFCertReqMsg*
    - SECItem*
    - CRMFPOPChoice
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 392
    functionDepth: 3
    functionLinenumber: 392
    functionLinenumberEnd: 437
    functionName: crmf_add_privkey_thismessage
    functionSourceFile: /src/nss/lib/crmf/crmfpop.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - crmf_encode_popoprivkey
    - crmf_get_template_for_privkey
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - SECITEM_CopyItem
    - PORT_ArenaZNew
    - PORT_ArenaUnmark
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus crmf_add_privkey_thismessage(CRMFCertReqMsg *inCertReqMsg,
      SECItem *encPrivKey,\n                             CRMFPOPChoice inChoice)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/crmfpop.c:449,1
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/crmf/crmfpop.c:451,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/crmf/crmfpop.c:452,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/crmf/crmfpop.c:459,1
    - Dst: crmf_encode_popoprivkey
      Src: /src/nss/lib/crmf/crmfpop.c:467,1
    - Dst: crmf_get_template_for_privkey
      Src: /src/nss/lib/crmf/crmfpop.c:468,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/crmf/crmfpop.c:472,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/crmf/crmfpop.c:476,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 3
    argNames:
    - inCertReqMsg
    - dhmac
    - inChoice
    argTypes:
    - CRMFCertReqMsg*
    - SECItem*
    - CRMFPOPChoice
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 439
    functionDepth: 3
    functionLinenumber: 439
    functionLinenumberEnd: 478
    functionName: crmf_add_privkey_dhmac
    functionSourceFile: /src/nss/lib/crmf/crmfpop.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - crmf_encode_popoprivkey
    - crmf_get_template_for_privkey
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - SECITEM_CopyItem
    - PORT_ArenaZNew
    - PORT_ArenaUnmark
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus crmf_add_privkey_dhmac(CRMFCertReqMsg *inCertReqMsg, SECItem
      *dhmac,\n                       CRMFPOPChoice inChoice)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/crmf/crmfpop.c:496,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/crmf/crmfpop.c:497,1
    - Dst: crmf_encode_integer
      Src: /src/nss/lib/crmf/crmfpop.c:511,1
    - Dst: crmf_encode_integer
      Src: /src/nss/lib/crmf/crmfpop.c:516,1
    - Dst: crmf_get_template_for_privkey
      Src: /src/nss/lib/crmf/crmfpop.c:527,1
    - Dst: crmf_encode_popoprivkey
      Src: /src/nss/lib/crmf/crmfpop.c:529,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/crmf/crmfpop.c:535,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/crmf/crmfpop.c:538,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 3
    argNames:
    - inCertReqMsg
    - subsequentMessage
    - inChoice
    argTypes:
    - CRMFCertReqMsg*
    - CRMFSubseqMessOptions
    - CRMFPOPChoice
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 480
    functionDepth: 3
    functionLinenumber: 480
    functionLinenumberEnd: 540
    functionName: crmf_add_privkey_subseqmessage
    functionSourceFile: /src/nss/lib/crmf/crmfpop.c
    functionUses: 0
    functionsReached:
    - crmf_encode_popoprivkey
    - crmf_get_template_for_privkey
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - PORT_ArenaZNew
    - crmf_encode_integer
    - PORT_ArenaUnmark
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus crmf_add_privkey_subseqmessage(CRMFCertReqMsg *inCertReqMsg,\n
      \                              CRMFSubseqMessOptions subsequentMessage,\n                               CRMFPOPChoice
      inChoice)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/crmfpop.c:550,1
    - Dst: CRMF_CertReqMsgGetPOPType
      Src: /src/nss/lib/crmf/crmfpop.c:551,1
    - Dst: crmf_add_privkey_thismessage
      Src: /src/nss/lib/crmf/crmfpop.c:556,1
    - Dst: crmf_add_privkey_subseqmessage
      Src: /src/nss/lib/crmf/crmfpop.c:560,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - inCertReqMsg
    - inKeyChoice
    - subseqMess
    - encPrivKey
    argTypes:
    - CRMFCertReqMsg*
    - CRMFPOPOPrivKeyChoice
    - CRMFSubseqMessOptions
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 542
    functionDepth: 4
    functionLinenumber: 542
    functionLinenumberEnd: 568
    functionName: CRMF_CertReqMsgSetKeyEnciphermentPOP
    functionSourceFile: /src/nss/lib/crmf/crmfpop.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - crmf_add_privkey_subseqmessage
    - CRMF_CertReqMsgGetPOPType
    - crmf_add_privkey_thismessage
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CRMF_CertReqMsgSetKeyEnciphermentPOP(CRMFCertReqMsg *inCertReqMsg,\n
      \                                    CRMFPOPOPrivKeyChoice inKeyChoice,\n                                     CRMFSubseqMessOptions
      subseqMess,\n                                     SECItem *encPrivKey)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/crmfpop.c:578,1
    - Dst: crmf_add_privkey_thismessage
      Src: /src/nss/lib/crmf/crmfpop.c:581,1
    - Dst: crmf_add_privkey_subseqmessage
      Src: /src/nss/lib/crmf/crmfpop.c:585,1
    - Dst: crmf_add_privkey_dhmac
      Src: /src/nss/lib/crmf/crmfpop.c:591,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - inCertReqMsg
    - inKeyChoice
    - subseqMess
    - encPrivKey
    argTypes:
    - CRMFCertReqMsg*
    - CRMFPOPOPrivKeyChoice
    - CRMFSubseqMessOptions
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 570
    functionDepth: 4
    functionLinenumber: 570
    functionLinenumberEnd: 598
    functionName: CRMF_CertReqMsgSetKeyAgreementPOP
    functionSourceFile: /src/nss/lib/crmf/crmfpop.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - crmf_add_privkey_subseqmessage
    - crmf_add_privkey_dhmac
    - crmf_add_privkey_thismessage
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CRMF_CertReqMsgSetKeyAgreementPOP(CRMFCertReqMsg *inCertReqMsg,\n
      \                                 CRMFPOPOPrivKeyChoice inKeyChoice,\n                                  CRMFSubseqMessOptions
      subseqMess,\n                                  SECItem *encPrivKey)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cmmf_decode_process_certified_key_pair
      Src: /src/nss/lib/crmf/asn1cmn.c:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - poolp
    - db
    - inCertResp
    argTypes:
    - PLArenaPool*
    - CERTCertDBHandle*
    - CMMFCertResponse*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 130
    functionName: cmmf_decode_process_cert_response
    functionSourceFile: /src/nss/lib/crmf/asn1cmn.c
    functionUses: 1
    functionsReached:
    - cmmf_decode_process_certified_key_pair
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus cmmf_decode_process_cert_response(PLArenaPool *poolp,\n
      \                                 CERTCertDBHandle *db,\n                                  CMMFCertResponse
      *inCertResp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CERT_NewTempCertificate
      Src: /src/nss/lib/crmf/asn1cmn.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - db
    - derCert
    argTypes:
    - CERTCertDBHandle*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 132
    functionDepth: 8
    functionLinenumber: 132
    functionLinenumberEnd: 139
    functionName: cmmf_DecodeDERCertificate
    functionSourceFile: /src/nss/lib/crmf/asn1cmn.c
    functionUses: 0
    functionsReached:
    - CERT_NewTempCertificate
    linkageType: ''
    returnType: CERTCertificate
    signature: 'CERTCertificate *

      cmmf_DecodeDERCertificate(CERTCertDBHandle *db, SECItem *derCert)'
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - der
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 158
    functionName: cmmf_get_certorenccertchoice_from_der
    functionSourceFile: /src/nss/lib/crmf/asn1cmn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CMMFCertOrEncCertChoice
    signature: CMMFCertOrEncCertChoice cmmf_get_certorenccertchoice_from_der(SECItem
      *der)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cmmf_get_certorenccertchoice_from_der
      Src: /src/nss/lib/crmf/asn1cmn.c:168,1
    - Dst: cmmf_DecodeDERCertificate
      Src: /src/nss/lib/crmf/asn1cmn.c:178,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/asn1cmn.c:185,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/crmf/asn1cmn.c:187,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/crmf/asn1cmn.c:192,1
    - Dst: SEC_ASN1Decode
      Src: /src/nss/lib/crmf/asn1cmn.c:197,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - poolp
    - db
    - inCertOrEncCert
    argTypes:
    - PLArenaPool*
    - CERTCertDBHandle*
    - CMMFCertOrEncCert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 160
    functionDepth: 9
    functionLinenumber: 160
    functionLinenumberEnd: 206
    functionName: cmmf_decode_process_certorenccert
    functionSourceFile: /src/nss/lib/crmf/asn1cmn.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - cmmf_DecodeDERCertificate
    - PORT_ArenaZNew
    - PORT_SetError
    - cmmf_get_certorenccertchoice_from_der
    - SEC_ASN1Decode
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus cmmf_decode_process_certorenccert(PLArenaPool *poolp,\n
      \                                 CERTCertDBHandle *db,\n                                  CMMFCertOrEncCert
      *inCertOrEncCert)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cmmf_decode_process_certorenccert
      Src: /src/nss/lib/crmf/asn1cmn.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - poolp
    - db
    - inCertKeyPair
    argTypes:
    - PLArenaPool*
    - CERTCertDBHandle*
    - CMMFCertifiedKeyPair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 208
    functionDepth: 10
    functionLinenumber: 208
    functionLinenumberEnd: 216
    functionName: cmmf_decode_process_certified_key_pair
    functionSourceFile: /src/nss/lib/crmf/asn1cmn.c
    functionUses: 2
    functionsReached:
    - cmmf_decode_process_certorenccert
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus cmmf_decode_process_certified_key_pair(PLArenaPool *poolp,\n
      \                                      CERTCertDBHandle *db,\n                                       CMMFCertifiedKeyPair
      *inCertKeyPair)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/crmf/cmmfrec.c:22,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/crmf/cmmfrec.c:26,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/crmf/cmmfrec.c:28,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 33
    functionName: CMMF_CreateKeyRecRepContent
    functionSourceFile: /src/nss/lib/crmf/cmmfrec.c
    functionUses: 2
    functionsReached:
    - PORT_FreeArena
    - PORT_ArenaZNew
    - PORT_NewArena
    linkageType: ''
    returnType: CMMFKeyRecRepContent
    signature: 'CMMFKeyRecRepContent *

      CMMF_CreateKeyRecRepContent(void)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/cmmfrec.c:38,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/crmf/cmmfrec.c:43,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/crmf/cmmfrec.c:47,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/crmf/cmmfrec.c:54,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/crmf/cmmfrec.c:58,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 1
    argNames:
    - inKeyRecRep
    argTypes:
    - CMMFKeyRecRepContent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 35
    functionDepth: 8
    functionLinenumber: 35
    functionLinenumberEnd: 61
    functionName: CMMF_DestroyKeyRecRepContent
    functionSourceFile: /src/nss/lib/crmf/cmmfrec.c
    functionUses: 3
    functionsReached:
    - PORT_FreeArena
    - PORT_Assert
    - CERT_DestroyCertificate
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CMMF_DestroyKeyRecRepContent(CMMFKeyRecRepContent *inKeyRecRep)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/cmmfrec.c:67,1
    - Dst: cmmf_PKIStatusInfoSetStatus
      Src: /src/nss/lib/crmf/cmmfrec.c:73,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - inKeyRecRep
    - inPKIStatus
    argTypes:
    - CMMFKeyRecRepContent*
    - CMMFPKIStatus
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 76
    functionName: CMMF_KeyRecRepContentSetPKIStatusInfoStatus
    functionSourceFile: /src/nss/lib/crmf/cmmfrec.c
    functionUses: 2
    functionsReached:
    - PORT_Assert
    - cmmf_PKIStatusInfoSetStatus
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CMMF_KeyRecRepContentSetPKIStatusInfoStatus(CMMFKeyRecRepContent
      *inKeyRecRep,\n                                            CMMFPKIStatus inPKIStatus)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/cmmfrec.c:82,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/crmf/cmmfrec.c:87,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/crmf/cmmfrec.c:90,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - inKeyRecRep
    - inNewSignCert
    argTypes:
    - CMMFKeyRecRepContent*
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 78
    functionDepth: 8
    functionLinenumber: 78
    functionLinenumberEnd: 92
    functionName: CMMF_KeyRecRepContentSetNewSignCert
    functionSourceFile: /src/nss/lib/crmf/cmmfrec.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - CERT_DupCertificate
    - CERT_DestroyCertificate
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CMMF_KeyRecRepContentSetNewSignCert(CMMFKeyRecRepContent
      *inKeyRecRep,\n                                    CERTCertificate *inNewSignCert)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/cmmfrec.c:101,1
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/crmf/cmmfrec.c:105,1
    - Dst: cmmf_ExtractCertsFromList
      Src: /src/nss/lib/crmf/cmmfrec.c:106,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/crmf/cmmfrec.c:109,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/crmf/cmmfrec.c:111,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - inKeyRecRep
    - inCACerts
    argTypes:
    - CMMFKeyRecRepContent*
    - CERTCertList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 94
    functionDepth: 9
    functionLinenumber: 94
    functionLinenumberEnd: 114
    functionName: CMMF_KeyRecRepContentSetCACerts
    functionSourceFile: /src/nss/lib/crmf/cmmfrec.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - cmmf_ExtractCertsFromList
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - PORT_ArenaUnmark
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CMMF_KeyRecRepContentSetCACerts(CMMFKeyRecRepContent *inKeyRecRep,\n
      \                               CERTCertList *inCACerts)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/cmmfrec.c:128,1
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/crmf/cmmfrec.c:139,1
    - Dst: PORT_ArenaNewArray
      Src: /src/nss/lib/crmf/cmmfrec.c:141,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/crmf/cmmfrec.c:155,1
    - Dst: cmmf_CertOrEncCertSetCertificate
      Src: /src/nss/lib/crmf/cmmfrec.c:159,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/crmf/cmmfrec.c:164,1
    - Dst: crmf_create_encrypted_value_wrapped_privkey
      Src: /src/nss/lib/crmf/cmmfrec.c:168,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/cmmfrec.c:170,1
    - Dst: crmf_destroy_encrypted_value
      Src: /src/nss/lib/crmf/cmmfrec.c:172,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/crmf/cmmfrec.c:178,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/crmf/cmmfrec.c:182,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 51
    argCount: 4
    argNames:
    - inKeyRecRep
    - inCert
    - inPrivKey
    - inPubKey
    argTypes:
    - CMMFKeyRecRepContent*
    - CERTCertificate*
    - SECKEYPrivateKey*
    - SECKEYPublicKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 116
    functionDepth: 11
    functionLinenumber: 116
    functionLinenumberEnd: 184
    functionName: CMMF_KeyRecRepContentSetCertifiedKeyPair
    functionSourceFile: /src/nss/lib/crmf/cmmfrec.c
    functionUses: 2
    functionsReached:
    - PORT_Assert
    - crmf_create_encrypted_value_wrapped_privkey
    - crmf_destroy_encrypted_value
    - cmmf_CertOrEncCertSetCertificate
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - PORT_ArenaZNew
    - PORT_ArenaUnmark
    - PORT_ArenaNewArray
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CMMF_KeyRecRepContentSetCertifiedKeyPair(CMMFKeyRecRepContent
      *inKeyRecRep,\n                                         CERTCertificate *inCert,\n
      \                                        SECKEYPrivateKey *inPrivKey,\n                                         SECKEYPublicKey
      *inPubKey)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/cmmfrec.c:189,1
    - Dst: cmmf_PKIStatusInfoGetStatus
      Src: /src/nss/lib/crmf/cmmfrec.c:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - inKeyRecRep
    argTypes:
    - CMMFKeyRecRepContent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 194
    functionName: CMMF_KeyRecRepContentGetPKIStatusInfoStatus
    functionSourceFile: /src/nss/lib/crmf/cmmfrec.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - cmmf_PKIStatusInfoGetStatus
    linkageType: ''
    returnType: CMMFPKIStatus
    signature: CMMFPKIStatus CMMF_KeyRecRepContentGetPKIStatusInfoStatus(CMMFKeyRecRepContent
      *inKeyRecRep)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/cmmfrec.c:199,1
    - Dst: CERT_NewTempCertificate
      Src: /src/nss/lib/crmf/cmmfrec.c:210,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/lib/crmf/cmmfrec.c:210,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - inKeyRecRep
    argTypes:
    - CMMFKeyRecRepContent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 196
    functionDepth: 8
    functionLinenumber: 196
    functionLinenumberEnd: 213
    functionName: CMMF_KeyRecRepContentGetNewSignCert
    functionSourceFile: /src/nss/lib/crmf/cmmfrec.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - CERT_GetDefaultCertDB
    - CERT_NewTempCertificate
    linkageType: ''
    returnType: CERTCertificate
    signature: 'CERTCertificate *

      CMMF_KeyRecRepContentGetNewSignCert(CMMFKeyRecRepContent *inKeyRecRep)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/cmmfrec.c:218,1
    - Dst: cmmf_MakeCertList
      Src: /src/nss/lib/crmf/cmmfrec.c:222,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - inKeyRecRep
    argTypes:
    - CMMFKeyRecRepContent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 215
    functionDepth: 10
    functionLinenumber: 215
    functionLinenumberEnd: 223
    functionName: CMMF_KeyRecRepContentGetCACerts
    functionSourceFile: /src/nss/lib/crmf/cmmfrec.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - cmmf_MakeCertList
    linkageType: ''
    returnType: CERTCertList
    signature: 'CERTCertList *

      CMMF_KeyRecRepContentGetCACerts(CMMFKeyRecRepContent *inKeyRecRep)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/cmmfrec.c:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - inKeyRecRep
    argTypes:
    - CMMFKeyRecRepContent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 230
    functionName: CMMF_KeyRecRepContentGetNumKeyPairs
    functionSourceFile: /src/nss/lib/crmf/cmmfrec.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: int
    signature: int CMMF_KeyRecRepContentGetNumKeyPairs(CMMFKeyRecRepContent *inKeyRecRep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMMF_KeyRecRepContentGetNumKeyPairs
      Src: /src/nss/lib/crmf/cmmfrec.c:236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - inKeyRecRep
    - inIndex
    argTypes:
    - CMMFKeyRecRepContent*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 239
    functionName: cmmf_KeyRecRepContentIsValidIndex
    functionSourceFile: /src/nss/lib/crmf/cmmfrec.c
    functionUses: 0
    functionsReached:
    - CMMF_KeyRecRepContentGetNumKeyPairs
    linkageType: ''
    returnType: PRBool
    signature: "PRBool cmmf_KeyRecRepContentIsValidIndex(CMMFKeyRecRepContent *inKeyRecRep,\n
      \                                 int inIndex)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/cmmfrec.c:248,1
    - Dst: cmmf_KeyRecRepContentIsValidIndex
      Src: /src/nss/lib/crmf/cmmfrec.c:249,1
    - Dst: cmmf_KeyRecRepContentIsValidIndex
      Src: /src/nss/lib/crmf/cmmfrec.c:251,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/crmf/cmmfrec.c:254,1
    - Dst: cmmf_CopyCertifiedKeyPair
      Src: /src/nss/lib/crmf/cmmfrec.c:258,1
    - Dst: CMMF_DestroyCertifiedKeyPair
      Src: /src/nss/lib/crmf/cmmfrec.c:261,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - inKeyRecRep
    - inIndex
    argTypes:
    - CMMFKeyRecRepContent*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 241
    functionDepth: 10
    functionLinenumber: 241
    functionLinenumberEnd: 265
    functionName: CMMF_KeyRecRepContentGetCertKeyAtIndex
    functionSourceFile: /src/nss/lib/crmf/cmmfrec.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - PORT_ZNew
    - cmmf_KeyRecRepContentIsValidIndex
    - cmmf_CopyCertifiedKeyPair
    - CMMF_DestroyCertifiedKeyPair
    linkageType: ''
    returnType: CMMFCertifiedKeyPair
    signature: "CMMFCertifiedKeyPair *\nCMMF_KeyRecRepContentGetCertKeyAtIndex(CMMFKeyRecRepContent
      *inKeyRecRep,\n                                       int inIndex)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/cmmfrec.c:282,1
    - Dst: CMMF_CertifiedKeyPairGetCertificate
      Src: /src/nss/lib/crmf/cmmfrec.c:291,1
    - Dst: CERT_FindKeyUsageExtension
      Src: /src/nss/lib/crmf/cmmfrec.c:292,1
    - Dst: PORT_Free
      Src: /src/nss/lib/crmf/cmmfrec.c:295,1
    - Dst: CERT_ExtractPublicKey
      Src: /src/nss/lib/crmf/cmmfrec.c:297,1
    - Dst: crmf_encrypted_value_unwrap_priv_key
      Src: /src/nss/lib/crmf/cmmfrec.c:298,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/crmf/cmmfrec.c:302,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/crmf/cmmfrec.c:303,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 7
    argNames:
    - inKeyPair
    - inPrivKey
    - inNickName
    - inSlot
    - inCertdb
    - destPrivKey
    - wincx
    argTypes:
    - CMMFCertifiedKeyPair*
    - SECKEYPrivateKey*
    - SECItem*
    - PK11SlotInfo*
    - CERTCertDBHandle*
    - SECKEYPrivateKey**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 267
    functionDepth: 10
    functionLinenumber: 267
    functionLinenumberEnd: 305
    functionName: CMMF_CertifiedKeyPairUnwrapPrivKey
    functionSourceFile: /src/nss/lib/crmf/cmmfrec.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - SECKEY_DestroyPublicKey
    - crmf_encrypted_value_unwrap_priv_key
    - PORT_Free
    - CMMF_CertifiedKeyPairGetCertificate
    - CERT_DestroyCertificate
    - CERT_ExtractPublicKey
    - CERT_FindKeyUsageExtension
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CMMF_CertifiedKeyPairUnwrapPrivKey(CMMFCertifiedKeyPair
      *inKeyPair,\n                                   SECKEYPrivateKey *inPrivKey,\n
      \                                  SECItem *inNickName,\n                                   PK11SlotInfo
      *inSlot,\n                                   CERTCertDBHandle *inCertdb,\n                                   SECKEYPrivateKey
      **destPrivKey,\n                                   void *wincx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/cmmfrec.c:310,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - inKeyRecRep
    argTypes:
    - CMMFKeyRecRepContent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 316
    functionName: CMMF_KeyRecRepContentHasCACerts
    functionSourceFile: /src/nss/lib/crmf/cmmfrec.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: PRBool
    signature: PRBool CMMF_KeyRecRepContentHasCACerts(CMMFKeyRecRepContent *inKeyRecRep)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1EncodeInteger
      Src: /src/nss/lib/crmf/cmmfchal.c:35,1
    - Dst: PORT_ArenaNewArray
      Src: /src/nss/lib/crmf/cmmfchal.c:40,1
    - Dst: PORT_ArenaNewArray
      Src: /src/nss/lib/crmf/cmmfchal.c:41,1
    - Dst: PK11_HashBuf
      Src: /src/nss/lib/crmf/cmmfchal.c:45,1
    - Dst: PK11_HashBuf
      Src: /src/nss/lib/crmf/cmmfchal.c:50,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/crmf/cmmfchal.c:61,1
    - Dst: SECKEY_PublicKeyStrength
      Src: /src/nss/lib/crmf/cmmfchal.c:68,1
    - Dst: PORT_ArenaNewArray
      Src: /src/nss/lib/crmf/cmmfchal.c:69,1
    - Dst: PK11_GetBestSlotWithAttributes
      Src: /src/nss/lib/crmf/cmmfchal.c:74,1
    - Dst: PK11_ImportPublicKey
      Src: /src/nss/lib/crmf/cmmfchal.c:79,1
    - Dst: PK11_ImportSymKey
      Src: /src/nss/lib/crmf/cmmfchal.c:86,1
    - Dst: PK11_PubWrapSymKey
      Src: /src/nss/lib/crmf/cmmfchal.c:94,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/crmf/cmmfchal.c:96,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/crmf/cmmfchal.c:100,1
    - Dst: crmf_get_public_value
      Src: /src/nss/lib/crmf/cmmfchal.c:101,1
    - Dst: SECKEY_DestroySubjectPublicKeyInfo
      Src: /src/nss/lib/crmf/cmmfchal.c:105,1
    - Dst: PORT_Free
      Src: /src/nss/lib/crmf/cmmfchal.c:108,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/crmf/cmmfchal.c:111,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/crmf/cmmfchal.c:114,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 78
    argCount: 6
    argNames:
    - poolp
    - challenge
    - inRandom
    - senderDER
    - inPubKey
    - passwdArg
    argTypes:
    - PLArenaPool*
    - CMMFChallenge*
    - long
    - SECItem*
    - SECKEYPublicKey*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 16
    functionDepth: 10
    functionLinenumber: 16
    functionLinenumberEnd: 117
    functionName: cmmf_create_witness_and_challenge
    functionSourceFile: /src/nss/lib/crmf/cmmfchal.c
    functionUses: 0
    functionsReached:
    - SECKEY_PublicKeyStrength
    - PK11_FreeSlot
    - PK11_PubWrapSymKey
    - SEC_ASN1EncodeItem
    - PK11_GetBestSlotWithAttributes
    - SECKEY_DestroySubjectPublicKeyInfo
    - PORT_Free
    - PK11_HashBuf
    - SECITEM_CopyItem
    - PK11_ImportSymKey
    - SEC_ASN1EncodeInteger
    - PORT_ArenaNewArray
    - crmf_get_public_value
    - PK11_ImportPublicKey
    - SECITEM_FreeItem
    - PK11_FreeSymKey
    linkageType: ''
    returnType: int
    signature: "int cmmf_create_witness_and_challenge(PLArenaPool *poolp,\n                                  CMMFChallenge
      *challenge,\n                                  long inRandom,\n                                  SECItem
      *senderDER,\n                                  SECKEYPublicKey *inPubKey,\n
      \                                 void *passwdArg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/lib/crmf/cmmfchal.c:132,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/crmf/cmmfchal.c:137,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/crmf/cmmfchal.c:141,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/crmf/cmmfchal.c:145,1
    - Dst: cmmf_create_witness_and_challenge
      Src: /src/nss/lib/crmf/cmmfchal.c:149,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 5
    argNames:
    - challContent
    - inRandom
    - senderDER
    - inPubKey
    - passwdArg
    argTypes:
    - CMMFPOPODecKeyChallContent*
    - long
    - SECItem*
    - SECKEYPublicKey*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 119
    functionDepth: 11
    functionLinenumber: 119
    functionLinenumberEnd: 154
    functionName: cmmf_create_first_challenge
    functionSourceFile: /src/nss/lib/crmf/cmmfchal.c
    functionUses: 0
    functionsReached:
    - PORT_ArenaZNew
    - cmmf_create_witness_and_challenge
    - SECOID_FindOIDByTag
    - SECITEM_CopyItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus cmmf_create_first_challenge(CMMFPOPODecKeyChallContent *challContent,\n
      \                           long inRandom,\n                            SECItem
      *senderDER,\n                            SECKEYPublicKey *inPubKey,\n                            void
      *passwdArg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/crmf/cmmfchal.c:162,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/crmf/cmmfchal.c:166,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/crmf/cmmfchal.c:168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 173
    functionName: CMMF_CreatePOPODecKeyChallContent
    functionSourceFile: /src/nss/lib/crmf/cmmfchal.c
    functionUses: 2
    functionsReached:
    - PORT_FreeArena
    - PORT_ArenaZNew
    - PORT_NewArena
    linkageType: ''
    returnType: CMMFPOPODecKeyChallContent
    signature: 'CMMFPOPODecKeyChallContent *

      CMMF_CreatePOPODecKeyChallContent(void)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/cmmfchal.c:188,1
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/crmf/cmmfchal.c:197,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/crmf/cmmfchal.c:199,1
    - Dst: CERT_EncodeGeneralName
      Src: /src/nss/lib/crmf/cmmfchal.c:200,1
    - Dst: PORT_ArenaZNewArray
      Src: /src/nss/lib/crmf/cmmfchal.c:207,1
    - Dst: cmmf_create_first_challenge
      Src: /src/nss/lib/crmf/cmmfchal.c:217,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/crmf/cmmfchal.c:220,1
    - Dst: cmmf_create_witness_and_challenge
      Src: /src/nss/lib/crmf/cmmfchal.c:225,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/crmf/cmmfchal.c:237,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/crmf/cmmfchal.c:238,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/crmf/cmmfchal.c:242,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/crmf/cmmfchal.c:244,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/cmmfchal.c:246,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 53
    argCount: 5
    argNames:
    - inDecKeyChall
    - inRandom
    - inSender
    - inPubKey
    - passwdArg
    argTypes:
    - CMMFPOPODecKeyChallContent*
    - long
    - CERTGeneralName*
    - SECKEYPublicKey*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 175
    functionDepth: 12
    functionLinenumber: 175
    functionLinenumberEnd: 248
    functionName: CMMF_POPODecKeyChallContentSetNextChallenge
    functionSourceFile: /src/nss/lib/crmf/cmmfchal.c
    functionUses: 2
    functionsReached:
    - PORT_Assert
    - PORT_ArenaZNewArray
    - cmmf_create_first_challenge
    - PORT_NewArena
    - PORT_FreeArena
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - CERT_EncodeGeneralName
    - PORT_ArenaZNew
    - PORT_ArenaUnmark
    - cmmf_create_witness_and_challenge
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CMMF_POPODecKeyChallContentSetNextChallenge(CMMFPOPODecKeyChallContent
      *inDecKeyChall,\n                                            long inRandom,\n
      \                                           CERTGeneralName *inSender,\n                                            SECKEYPublicKey
      *inPubKey,\n                                            void *passwdArg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/cmmfchal.c:253,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/crmf/cmmfchal.c:255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - inDecKeyResp
    argTypes:
    - CMMFPOPODecKeyRespContent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 258
    functionName: CMMF_DestroyPOPODecKeyRespContent
    functionSourceFile: /src/nss/lib/crmf/cmmfchal.c
    functionUses: 2
    functionsReached:
    - PORT_FreeArena
    - PORT_Assert
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CMMF_DestroyPOPODecKeyRespContent(CMMFPOPODecKeyRespContent
      *inDecKeyResp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/cmmfchal.c:265,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - inRespCont
    argTypes:
    - CMMFPOPODecKeyRespContent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 274
    functionName: CMMF_POPODecKeyRespContentGetNumResponses
    functionSourceFile: /src/nss/lib/crmf/cmmfchal.c
    functionUses: 2
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: int
    signature: int CMMF_POPODecKeyRespContentGetNumResponses(CMMFPOPODecKeyRespContent
      *inRespCont)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/crmf/cmmfchal.c:281,1
    - Dst: CMMF_POPODecKeyRespContentGetNumResponses
      Src: /src/nss/lib/crmf/cmmfchal.c:284,1
    - Dst: DER_GetInteger
      Src: /src/nss/lib/crmf/cmmfchal.c:287,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - inRespCont
    - inIndex
    - inDest
    argTypes:
    - CMMFPOPODecKeyRespContent*
    - int
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 289
    functionName: CMMF_POPODecKeyRespContentGetResponse
    functionSourceFile: /src/nss/lib/crmf/cmmfchal.c
    functionUses: 2
    functionsReached:
    - PORT_Assert
    - CMMF_POPODecKeyRespContentGetNumResponses
    - DER_GetInteger
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CMMF_POPODecKeyRespContentGetResponse(CMMFPOPODecKeyRespContent
      *inRespCont,\n                                      int inIndex,\n                                      long
      *inDest)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - priority
    - ','
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: TraceMe
    functionSourceFile: /src/nss/lib/dbm/tests/lots.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TraceMe(priority, msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/nss/lib/dbm/tests/lots.c:72,1
    - Dst: va_start
      Src: /src/nss/lib/dbm/tests/lots.c:74,1
    - Dst: vfprintf
      Src: /src/nss/lib/dbm/tests/lots.c:76,1
    - Dst: va_end
      Src: /src/nss/lib/dbm/tests/lots.c:77,1
    - Dst: fprintf
      Src: /src/nss/lib/dbm/tests/lots.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 82
    functionName: ReportStatus
    functionSourceFile: /src/nss/lib/dbm/tests/lots.c
    functionUses: 0
    functionsReached:
    - fprintf
    - vfprintf
    - va_end
    - va_start
    linkageType: ''
    returnType: int
    signature: int ReportStatus(char *string, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/nss/lib/dbm/tests/lots.c:90,1
    - Dst: va_start
      Src: /src/nss/lib/dbm/tests/lots.c:92,1
    - Dst: fprintf
      Src: /src/nss/lib/dbm/tests/lots.c:94,1
    - Dst: vfprintf
      Src: /src/nss/lib/dbm/tests/lots.c:95,1
    - Dst: fprintf
      Src: /src/nss/lib/dbm/tests/lots.c:96,1
    - Dst: va_end
      Src: /src/nss/lib/dbm/tests/lots.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 100
    functionName: ReportError
    functionSourceFile: /src/nss/lib/dbm/tests/lots.c
    functionUses: 0
    functionsReached:
    - fprintf
    - vfprintf
    - va_end
    - va_start
    linkageType: ''
    returnType: int
    signature: int ReportError(char *string, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/nss/lib/dbm/tests/lots.c:112,1
    - Dst: malloc
      Src: /src/nss/lib/dbm/tests/lots.c:124,1
    - Dst: memset
      Src: /src/nss/lib/dbm/tests/lots.c:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - num
    argTypes:
    - int32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 132
    functionName: MakeLargeKey
    functionSourceFile: /src/nss/lib/dbm/tests/lots.c
    functionUses: 0
    functionsReached:
    - malloc
    - free
    - memset
    linkageType: ''
    returnType: DBT
    signature: 'DBT *

      MakeLargeKey(int32 num)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/nss/lib/dbm/tests/lots.c:142,1
    - Dst: strlen
      Src: /src/nss/lib/dbm/tests/lots.c:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - num
    argTypes:
    - int32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 146
    functionName: MakeSmallKey
    functionSourceFile: /src/nss/lib/dbm/tests/lots.c
    functionUses: 0
    functionsReached:
    - snprintf
    - strlen
    linkageType: ''
    returnType: DBT
    signature: 'DBT *

      MakeSmallKey(int32 num)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MakeLargeKey
      Src: /src/nss/lib/dbm/tests/lots.c:155,1
    - Dst: MakeSmallKey
      Src: /src/nss/lib/dbm/tests/lots.c:158,1
    - Dst: abort
      Src: /src/nss/lib/dbm/tests/lots.c:161,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - num
    - key_type
    argTypes:
    - int32
    - key_type_enum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 166
    functionName: GenKey
    functionSourceFile: /src/nss/lib/dbm/tests/lots.c
    functionUses: 0
    functionsReached:
    - MakeSmallKey
    - MakeLargeKey
    - abort
    linkageType: ''
    returnType: DBT
    signature: 'DBT *

      GenKey(int32 num, key_type_enum key_type)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ReportStatus
      Src: /src/nss/lib/dbm/tests/lots.c:174,1
    - Dst: ReportError
      Src: /src/nss/lib/dbm/tests/lots.c:183,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 186
    functionName: SeqDatabase
    functionSourceFile: /src/nss/lib/dbm/tests/lots.c
    functionUses: 0
    functionsReached:
    - ReportStatus
    - ReportError
    linkageType: ''
    returnType: int
    signature: int SeqDatabase()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ReportError
      Src: /src/nss/lib/dbm/tests/lots.c:200,1
    - Dst: memcpy
      Src: /src/nss/lib/dbm/tests/lots.c:204,1
    - Dst: ReportError
      Src: /src/nss/lib/dbm/tests/lots.c:209,1
    - Dst: memcpy
      Src: /src/nss/lib/dbm/tests/lots.c:216,1
    - Dst: ReportError
      Src: /src/nss/lib/dbm/tests/lots.c:219,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - data
    - num
    - key_type
    argTypes:
    - DBT*
    - int32
    - key_type_enum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 225
    functionName: VerifyData
    functionSourceFile: /src/nss/lib/dbm/tests/lots.c
    functionUses: 3
    functionsReached:
    - memcpy
    - ReportError
    linkageType: ''
    returnType: int
    signature: int VerifyData(DBT *data, int32 num, key_type_enum key_type)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TraceMe
      Src: /src/nss/lib/dbm/tests/lots.c:239,1
    - Dst: GenKey
      Src: /src/nss/lib/dbm/tests/lots.c:244,1
    - Dst: ReportError
      Src: /src/nss/lib/dbm/tests/lots.c:251,1
    - Dst: VerifyData
      Src: /src/nss/lib/dbm/tests/lots.c:254,1
    - Dst: ReportError
      Src: /src/nss/lib/dbm/tests/lots.c:259,1
    - Dst: ReportError
      Src: /src/nss/lib/dbm/tests/lots.c:263,1
    - Dst: TraceMe
      Src: /src/nss/lib/dbm/tests/lots.c:268,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - low
    - high
    - should_exist
    - key_type
    argTypes:
    - int32
    - int32
    - int32
    - key_type_enum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 232
    functionDepth: 3
    functionLinenumber: 232
    functionLinenumberEnd: 271
    functionName: VerifyRange
    functionSourceFile: /src/nss/lib/dbm/tests/lots.c
    functionUses: 0
    functionsReached:
    - ReportError
    - TraceMe
    - VerifyData
    - GenKey
    linkageType: ''
    returnType: int
    signature: int VerifyRange(int32 low, int32 high, int32 should_exist, key_type_enum
      key_type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/nss/lib/dbm/tests/lots.c:282,1
    - Dst: free
      Src: /src/nss/lib/dbm/tests/lots.c:286,1
    - Dst: rand
      Src: /src/nss/lib/dbm/tests/lots.c:289,1
    - Dst: malloc
      Src: /src/nss/lib/dbm/tests/lots.c:294,1
    - Dst: memcpy
      Src: /src/nss/lib/dbm/tests/lots.c:296,1
    - Dst: memcpy
      Src: /src/nss/lib/dbm/tests/lots.c:299,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - num
    argTypes:
    - int32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 306
    functionName: GenData
    functionSourceFile: /src/nss/lib/dbm/tests/lots.c
    functionUses: 0
    functionsReached:
    - malloc
    - free
    - memcpy
    - rand
    linkageType: ''
    returnType: DBT
    signature: 'DBT *

      GenData(int32 num)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/dbm/tests/lots.c:322,1
    - Dst: TraceMe
      Src: /src/nss/lib/dbm/tests/lots.c:325,1
    - Dst: TraceMe
      Src: /src/nss/lib/dbm/tests/lots.c:328,1
    - Dst: GenKey
      Src: /src/nss/lib/dbm/tests/lots.c:334,1
    - Dst: GenData
      Src: /src/nss/lib/dbm/tests/lots.c:337,1
    - Dst: ReportError
      Src: /src/nss/lib/dbm/tests/lots.c:344,1
    - Dst: ReportError
      Src: /src/nss/lib/dbm/tests/lots.c:348,1
    - Dst: ReportError
      Src: /src/nss/lib/dbm/tests/lots.c:356,1
    - Dst: ReportError
      Src: /src/nss/lib/dbm/tests/lots.c:367,1
    - Dst: VerifyRange
      Src: /src/nss/lib/dbm/tests/lots.c:375,1
    - Dst: TraceMe
      Src: /src/nss/lib/dbm/tests/lots.c:382,1
    - Dst: TraceMe
      Src: /src/nss/lib/dbm/tests/lots.c:384,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 4
    argNames:
    - low
    - high
    - action
    - key_type
    argTypes:
    - int32
    - int32
    - int
    - key_type_enum
    assertStmts:
    - condition: (0)
      pos:
        line_end: 321
        line_start: 321
        source_file: /src/nss/lib/dbm/tests/lots.c
    constantsTouched: []
    func_position:
      end: 388
      start: 311
    functionDepth: 4
    functionLinenumber: 311
    functionLinenumberEnd: 388
    functionName: AddOrDelRange
    functionSourceFile: /src/nss/lib/dbm/tests/lots.c
    functionUses: 0
    functionsReached:
    - TraceMe
    - VerifyRange
    - assert
    - ReportError
    - GenData
    - GenKey
    linkageType: ''
    returnType: int
    signature: int AddOrDelRange(int32 low, int32 high, int action, key_type_enum
      key_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AddOrDelRange
      Src: /src/nss/lib/dbm/tests/lots.c:398,1
    - Dst: VerifyRange
      Src: /src/nss/lib/dbm/tests/lots.c:399,1
    - Dst: TraceMe
      Src: /src/nss/lib/dbm/tests/lots.c:401,1
    - Dst: SeqDatabase
      Src: /src/nss/lib/dbm/tests/lots.c:403,1
    - Dst: AddOrDelRange
      Src: /src/nss/lib/dbm/tests/lots.c:409,1
    - Dst: VerifyRange
      Src: /src/nss/lib/dbm/tests/lots.c:410,1
    - Dst: VerifyRange
      Src: /src/nss/lib/dbm/tests/lots.c:411,1
    - Dst: TraceMe
      Src: /src/nss/lib/dbm/tests/lots.c:413,1
    - Dst: SeqDatabase
      Src: /src/nss/lib/dbm/tests/lots.c:415,1
    - Dst: AddOrDelRange
      Src: /src/nss/lib/dbm/tests/lots.c:417,1
    - Dst: VerifyRange
      Src: /src/nss/lib/dbm/tests/lots.c:419,1
    - Dst: TraceMe
      Src: /src/nss/lib/dbm/tests/lots.c:421,1
    - Dst: SeqDatabase
      Src: /src/nss/lib/dbm/tests/lots.c:423,1
    - Dst: AddOrDelRange
      Src: /src/nss/lib/dbm/tests/lots.c:425,1
    - Dst: VerifyRange
      Src: /src/nss/lib/dbm/tests/lots.c:426,1
    - Dst: VerifyRange
      Src: /src/nss/lib/dbm/tests/lots.c:427,1
    - Dst: TraceMe
      Src: /src/nss/lib/dbm/tests/lots.c:429,1
    - Dst: SeqDatabase
      Src: /src/nss/lib/dbm/tests/lots.c:431,1
    - Dst: AddOrDelRange
      Src: /src/nss/lib/dbm/tests/lots.c:433,1
    - Dst: VerifyRange
      Src: /src/nss/lib/dbm/tests/lots.c:435,1
    - Dst: TraceMe
      Src: /src/nss/lib/dbm/tests/lots.c:437,1
    - Dst: SeqDatabase
      Src: /src/nss/lib/dbm/tests/lots.c:439,1
    - Dst: AddOrDelRange
      Src: /src/nss/lib/dbm/tests/lots.c:448,1
    - Dst: VerifyRange
      Src: /src/nss/lib/dbm/tests/lots.c:449,1
    - Dst: VerifyRange
      Src: /src/nss/lib/dbm/tests/lots.c:450,1
    - Dst: VerifyRange
      Src: /src/nss/lib/dbm/tests/lots.c:451,1
    - Dst: TraceMe
      Src: /src/nss/lib/dbm/tests/lots.c:453,1
    - Dst: SeqDatabase
      Src: /src/nss/lib/dbm/tests/lots.c:455,1
    - Dst: AddOrDelRange
      Src: /src/nss/lib/dbm/tests/lots.c:457,1
    - Dst: VerifyRange
      Src: /src/nss/lib/dbm/tests/lots.c:459,1
    - Dst: TraceMe
      Src: /src/nss/lib/dbm/tests/lots.c:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 43
    argCount: 3
    argNames:
    - low
    - range
    - key_type
    argTypes:
    - int32
    - int32
    - key_type_enum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 390
    functionDepth: 5
    functionLinenumber: 390
    functionLinenumberEnd: 464
    functionName: TestRange
    functionSourceFile: /src/nss/lib/dbm/tests/lots.c
    functionUses: 0
    functionsReached:
    - VerifyRange
    - TraceMe
    - AddOrDelRange
    - SeqDatabase
    linkageType: ''
    returnType: int
    signature: int TestRange(int32 low, int32 range, key_type_enum key_type)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nss/lib/dbm/tests/lots.c:484,1
    - Dst: strcmp
      Src: /src/nss/lib/dbm/tests/lots.c:486,1
    - Dst: dbopen
      Src: /src/nss/lib/dbm/tests/lots.c:493,1
    - Dst: ReportError
      Src: /src/nss/lib/dbm/tests/lots.c:496,1
    - Dst: perror
      Src: /src/nss/lib/dbm/tests/lots.c:498,1
    - Dst: exit
      Src: /src/nss/lib/dbm/tests/lots.c:500,1
    - Dst: TestRange
      Src: /src/nss/lib/dbm/tests/lots.c:505,1
    - Dst: TestRange
      Src: /src/nss/lib/dbm/tests/lots.c:507,1
    - Dst: exit
      Src: /src/nss/lib/dbm/tests/lots.c:511,1
    - Dst: TestRange
      Src: /src/nss/lib/dbm/tests/lots.c:516,1
    - Dst: TestRange
      Src: /src/nss/lib/dbm/tests/lots.c:519,1
    - Dst: rand
      Src: /src/nss/lib/dbm/tests/lots.c:523,1
    - Dst: rand
      Src: /src/nss/lib/dbm/tests/lots.c:527,1
    - Dst: dbopen
      Src: /src/nss/lib/dbm/tests/lots.c:530,1
    - Dst: ReportError
      Src: /src/nss/lib/dbm/tests/lots.c:532,1
    - Dst: perror
      Src: /src/nss/lib/dbm/tests/lots.c:534,1
    - Dst: exit
      Src: /src/nss/lib/dbm/tests/lots.c:536,1
    - Dst: dbopen
      Src: /src/nss/lib/dbm/tests/lots.c:540,1
    - Dst: ReportError
      Src: /src/nss/lib/dbm/tests/lots.c:542,1
    - Dst: perror
      Src: /src/nss/lib/dbm/tests/lots.c:545,1
    - Dst: exit
      Src: /src/nss/lib/dbm/tests/lots.c:547,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 54
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 467
    functionDepth: 6
    functionLinenumber: 467
    functionLinenumberEnd: 553
    functionName: main
    functionSourceFile: /src/nss/lib/dbm/tests/lots.c
    functionUses: 42
    functionsReached:
    - strcmp
    - dbopen
    - exit
    - TestRange
    - rand
    - ReportError
    - perror
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - P
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 105
    functionName: PAGE_INIT
    functionSourceFile: /src/nss/lib/dbm/src/h_page.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAGE_INIT(P)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: lseek
      Src: /src/nss/lib/dbm/src/h_page.c:119,1
    - Dst: lseek
      Src: /src/nss/lib/dbm/src/h_page.c:121,1
    - Dst: lseek
      Src: /src/nss/lib/dbm/src/h_page.c:127,1
    - Dst: assert
      Src: /src/nss/lib/dbm/src/h_page.c:138,1
    - Dst: lseek
      Src: /src/nss/lib/dbm/src/h_page.c:147,1
    - Dst: memset
      Src: /src/nss/lib/dbm/src/h_page.c:161,1
    - Dst: write
      Src: /src/nss/lib/dbm/src/h_page.c:163,1
    - Dst: lseek
      Src: /src/nss/lib/dbm/src/h_page.c:167,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - fd
    - offset
    - origin
    argTypes:
    - int
    - long
    - int
    assertStmts:
    - condition: (0)
      pos:
        line_end: 137
        line_start: 137
        source_file: /src/nss/lib/dbm/src/h_page.c
    constantsTouched: []
    func_position:
      end: 169
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 169
    functionName: new_lseek
    functionSourceFile: /src/nss/lib/dbm/src/h_page.c
    functionUses: 0
    functionsReached:
    - assert
    - write
    - memset
    - lseek
    linkageType: ''
    returnType: long
    signature: long new_lseek(int fd, long offset, int origin)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OFFSET
      Src: /src/nss/lib/dbm/src/h_page.c:186,1
    - Dst: memmove
      Src: /src/nss/lib/dbm/src/h_page.c:187,1
    - Dst: memmove
      Src: /src/nss/lib/dbm/src/h_page.c:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - p
    - key
    - val
    argTypes:
    - char*
    - DBT*
    - DBT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 199
    functionName: putpair
    functionSourceFile: /src/nss/lib/dbm/src/h_page.c
    functionUses: 0
    functionsReached:
    - memmove
    - OFFSET
    linkageType: ''
    returnType: void
    signature: void putpair(char *p, const DBT *key, DBT *val)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: dbm_big_delete
      Src: /src/nss/lib/dbm/src/h_page.c:217,1
    - Dst: OFFSET
      Src: /src/nss/lib/dbm/src/h_page.c:227,1
    - Dst: OFFSET
      Src: /src/nss/lib/dbm/src/h_page.c:228,1
    - Dst: OFFSET
      Src: /src/nss/lib/dbm/src/h_page.c:230,1
    - Dst: memmove
      Src: /src/nss/lib/dbm/src/h_page.c:252,1
    - Dst: OFFSET
      Src: /src/nss/lib/dbm/src/h_page.c:266,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 3
    argNames:
    - hashp
    - bufp
    - ndx
    argTypes:
    - HTAB*
    - BUFHEAD*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 273
    functionName: dbm_delpair
    functionSourceFile: /src/nss/lib/dbm/src/h_page.c
    functionUses: 0
    functionsReached:
    - dbm_big_delete
    - memmove
    - OFFSET
    linkageType: ''
    returnType: int
    signature: int dbm_delpair(HTAB *hashp, BUFHEAD *bufp, int ndx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: dbm_get_buf
      Src: /src/nss/lib/dbm/src/h_page.c:295,1
    - Dst: dbm_get_buf
      Src: /src/nss/lib/dbm/src/h_page.c:298,1
    - Dst: ugly_split
      Src: /src/nss/lib/dbm/src/h_page.c:312,1
    - Dst: assert
      Src: /src/nss/lib/dbm/src/h_page.c:331,1
    - Dst: dbm_call_hash
      Src: /src/nss/lib/dbm/src/h_page.c:334,1
    - Dst: memmove
      Src: /src/nss/lib/dbm/src/h_page.c:339,1
    - Dst: PAIRFITS
      Src: /src/nss/lib/dbm/src/h_page.c:355,1
    - Dst: putpair
      Src: /src/nss/lib/dbm/src/h_page.c:358,1
    - Dst: FREESPACE
      Src: /src/nss/lib/dbm/src/h_page.c:367,1
    - Dst: OFFSET
      Src: /src/nss/lib/dbm/src/h_page.c:368,1
    - Dst: fprintf
      Src: /src/nss/lib/dbm/src/h_page.c:371,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 54
    argCount: 3
    argNames:
    - hashp
    - obucket
    - nbucket
    argTypes:
    - HTAB*
    - uint32
    - uint32
    assertStmts:
    - condition: (((int)key.size) > -1)
      pos:
        line_end: 330
        line_start: 330
        source_file: /src/nss/lib/dbm/src/h_page.c
    constantsTouched: []
    func_position:
      end: 379
      start: 279
    functionDepth: 2
    functionLinenumber: 279
    functionLinenumberEnd: 379
    functionName: dbm_split_page
    functionSourceFile: /src/nss/lib/dbm/src/h_page.c
    functionUses: 0
    functionsReached:
    - dbm_call_hash
    - FREESPACE
    - PAIRFITS
    - ugly_split
    - putpair
    - assert
    - fprintf
    - dbm_get_buf
    - memmove
    - OFFSET
    linkageType: ''
    returnType: int
    signature: int dbm_split_page(HTAB *hashp, uint32 obucket, uint32 nbucket)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: dbm_big_split
      Src: /src/nss/lib/dbm/src/h_page.c:446,1
    - Dst: FREESPACE
      Src: /src/nss/lib/dbm/src/h_page.c:476,1
    - Dst: OFFSET
      Src: /src/nss/lib/dbm/src/h_page.c:478,1
    - Dst: dbm_get_buf
      Src: /src/nss/lib/dbm/src/h_page.c:480,1
    - Dst: dbm_free_ovflpage
      Src: /src/nss/lib/dbm/src/h_page.c:490,1
    - Dst: dbm_call_hash
      Src: /src/nss/lib/dbm/src/h_page.c:509,1
    - Dst: PAIRFITS
      Src: /src/nss/lib/dbm/src/h_page.c:511,1
    - Dst: putpair
      Src: /src/nss/lib/dbm/src/h_page.c:512,1
    - Dst: dbm_add_ovflpage
      Src: /src/nss/lib/dbm/src/h_page.c:515,1
    - Dst: putpair
      Src: /src/nss/lib/dbm/src/h_page.c:519,1
    - Dst: PAIRFITS
      Src: /src/nss/lib/dbm/src/h_page.c:524,1
    - Dst: putpair
      Src: /src/nss/lib/dbm/src/h_page.c:525,1
    - Dst: dbm_add_ovflpage
      Src: /src/nss/lib/dbm/src/h_page.c:528,1
    - Dst: putpair
      Src: /src/nss/lib/dbm/src/h_page.c:532,1
    - Dst: dbm_free_ovflpage
      Src: /src/nss/lib/dbm/src/h_page.c:539,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 95
    argCount: 6
    argNames:
    - hashp
    - obucket
    - old_bufp
    - new_bufp
    - copyto
    - moved
    argTypes:
    - HTAB*
    - uint32
    - BUFHEAD*
    - BUFHEAD*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 403
    functionDepth: 2
    functionLinenumber: 403
    functionLinenumberEnd: 541
    functionName: ugly_split
    functionSourceFile: /src/nss/lib/dbm/src/h_page.c
    functionUses: 1
    functionsReached:
    - dbm_call_hash
    - dbm_free_ovflpage
    - FREESPACE
    - dbm_big_split
    - PAIRFITS
    - putpair
    - dbm_add_ovflpage
    - dbm_get_buf
    - OFFSET
    linkageType: ''
    returnType: int
    signature: "int ugly_split(HTAB *hashp, uint32 obucket, BUFHEAD *old_bufp,\n           BUFHEAD
      *new_bufp, /* Same as __split_page. */ int copyto, int moved)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: dbm_get_buf
      Src: /src/nss/lib/dbm/src/h_page.c:565,1
    - Dst: assert
      Src: /src/nss/lib/dbm/src/h_page.c:568,1
    - Dst: FREESPACE
      Src: /src/nss/lib/dbm/src/h_page.c:575,1
    - Dst: PAIRSIZE
      Src: /src/nss/lib/dbm/src/h_page.c:575,1
    - Dst: squeeze_key
      Src: /src/nss/lib/dbm/src/h_page.c:577,1
    - Dst: dbm_get_buf
      Src: /src/nss/lib/dbm/src/h_page.c:588,1
    - Dst: assert
      Src: /src/nss/lib/dbm/src/h_page.c:591,1
    - Dst: PAIRFITS
      Src: /src/nss/lib/dbm/src/h_page.c:598,1
    - Dst: putpair
      Src: /src/nss/lib/dbm/src/h_page.c:599,1
    - Dst: dbm_add_ovflpage
      Src: /src/nss/lib/dbm/src/h_page.c:602,1
    - Dst: assert
      Src: /src/nss/lib/dbm/src/h_page.c:605,1
    - Dst: PAIRFITS
      Src: /src/nss/lib/dbm/src/h_page.c:611,1
    - Dst: putpair
      Src: /src/nss/lib/dbm/src/h_page.c:612,1
    - Dst: dbm_big_insert
      Src: /src/nss/lib/dbm/src/h_page.c:613,1
    - Dst: assert
      Src: /src/nss/lib/dbm/src/h_page.c:615,1
    - Dst: dbm_expand_table
      Src: /src/nss/lib/dbm/src/h_page.c:628,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 48
    argCount: 4
    argNames:
    - hashp
    - bufp
    - key
    - val
    argTypes:
    - HTAB*
    - BUFHEAD*
    - DBT*
    - DBT*
    assertStmts:
    - condition: (0)
      pos:
        line_end: 567
        line_start: 567
        source_file: /src/nss/lib/dbm/src/h_page.c
    - condition: (0)
      pos:
        line_end: 590
        line_start: 590
        source_file: /src/nss/lib/dbm/src/h_page.c
    - condition: (0)
      pos:
        line_end: 604
        line_start: 604
        source_file: /src/nss/lib/dbm/src/h_page.c
    - condition: (0)
      pos:
        line_end: 614
        line_start: 614
        source_file: /src/nss/lib/dbm/src/h_page.c
    constantsTouched: []
    func_position:
      end: 630
      start: 550
    functionDepth: 2
    functionLinenumber: 550
    functionLinenumberEnd: 630
    functionName: dbm_addel
    functionSourceFile: /src/nss/lib/dbm/src/h_page.c
    functionUses: 0
    functionsReached:
    - FREESPACE
    - dbm_expand_table
    - PAIRFITS
    - putpair
    - dbm_add_ovflpage
    - assert
    - squeeze_key
    - PAIRSIZE
    - dbm_get_buf
    - dbm_big_insert
    linkageType: ''
    returnType: int
    signature: int dbm_addel(HTAB *hashp, BUFHEAD *bufp, const DBT *key, const DBT
      *val)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: overflow_page
      Src: /src/nss/lib/dbm/src/h_page.c:655,1
    - Dst: dbm_get_buf
      Src: /src/nss/lib/dbm/src/h_page.c:660,1
    - Dst: fprintf
      Src: /src/nss/lib/dbm/src/h_page.c:664,1
    - Dst: OFFSET
      Src: /src/nss/lib/dbm/src/h_page.c:673,1
    - Dst: FREESPACE
      Src: /src/nss/lib/dbm/src/h_page.c:674,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - hashp
    - bufp
    argTypes:
    - HTAB*
    - BUFHEAD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 638
    functionDepth: 1
    functionLinenumber: 638
    functionLinenumberEnd: 682
    functionName: dbm_add_ovflpage
    functionSourceFile: /src/nss/lib/dbm/src/h_page.c
    functionUses: 2
    functionsReached:
    - overflow_page
    - FREESPACE
    - fprintf
    - dbm_get_buf
    - OFFSET
    linkageType: ''
    returnType: BUFHEAD
    signature: 'BUFHEAD *

      dbm_add_ovflpage(HTAB *hashp, BUFHEAD *bufp)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PAGE_INIT
      Src: /src/nss/lib/dbm/src/h_page.c:706,1
    - Dst: BUCKET_TO_PAGE
      Src: /src/nss/lib/dbm/src/h_page.c:710,1
    - Dst: OADDR_TO_PAGE
      Src: /src/nss/lib/dbm/src/h_page.c:712,1
    - Dst: MY_LSEEK
      Src: /src/nss/lib/dbm/src/h_page.c:713,1
    - Dst: read
      Src: /src/nss/lib/dbm/src/h_page.c:714,1
    - Dst: PAGE_INIT
      Src: /src/nss/lib/dbm/src/h_page.c:726,1
    - Dst: M_32_SWAP
      Src: /src/nss/lib/dbm/src/h_page.c:735,1
    - Dst: M_16_SWAP
      Src: /src/nss/lib/dbm/src/h_page.c:737,1
    - Dst: M_16_SWAP
      Src: /src/nss/lib/dbm/src/h_page.c:750,1
    - Dst: FREESPACE
      Src: /src/nss/lib/dbm/src/h_page.c:771,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 54
    argCount: 6
    argNames:
    - hashp
    - p
    - bucket
    - is_bucket
    - is_disk
    - is_bitmap
    argTypes:
    - HTAB*
    - char*
    - uint32
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 689
    functionDepth: 1
    functionLinenumber: 689
    functionLinenumberEnd: 798
    functionName: dbm_get_page
    functionSourceFile: /src/nss/lib/dbm/src/h_page.c
    functionUses: 0
    functionsReached:
    - PAGE_INIT
    - BUCKET_TO_PAGE
    - read
    - FREESPACE
    - OADDR_TO_PAGE
    - M_16_SWAP
    - M_32_SWAP
    - MY_LSEEK
    linkageType: ''
    returnType: int
    signature: "int dbm_get_page(HTAB *hashp,\n             char *p,\n             uint32
      bucket,\n             int is_bucket,\n             int is_disk,\n             int
      is_bitmap)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: open_temp
      Src: /src/nss/lib/dbm/src/h_page.c:816,1
    - Dst: M_32_SWAP
      Src: /src/nss/lib/dbm/src/h_page.c:827,1
    - Dst: M_16_SWAP
      Src: /src/nss/lib/dbm/src/h_page.c:839,1
    - Dst: BUCKET_TO_PAGE
      Src: /src/nss/lib/dbm/src/h_page.c:844,1
    - Dst: OADDR_TO_PAGE
      Src: /src/nss/lib/dbm/src/h_page.c:846,1
    - Dst: MY_LSEEK
      Src: /src/nss/lib/dbm/src/h_page.c:848,1
    - Dst: write
      Src: /src/nss/lib/dbm/src/h_page.c:849,1
    - Dst: M_32_SWAP
      Src: /src/nss/lib/dbm/src/h_page.c:871,1
    - Dst: M_16_SWAP
      Src: /src/nss/lib/dbm/src/h_page.c:875,1
    - Dst: M_16_SWAP
      Src: /src/nss/lib/dbm/src/h_page.c:885,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 44
    argCount: 5
    argNames:
    - hashp
    - p
    - bucket
    - is_bucket
    - is_bitmap
    argTypes:
    - HTAB*
    - char*
    - uint32
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 807
    functionDepth: 1
    functionLinenumber: 807
    functionLinenumberEnd: 890
    functionName: dbm_put_page
    functionSourceFile: /src/nss/lib/dbm/src/h_page.c
    functionUses: 0
    functionsReached:
    - BUCKET_TO_PAGE
    - write
    - open_temp
    - OADDR_TO_PAGE
    - M_32_SWAP
    - MY_LSEEK
    - M_16_SWAP
    linkageType: ''
    returnType: int
    signature: int dbm_put_page(HTAB *hashp, char *p, uint32 bucket, int is_bucket,
      int is_bitmap)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/nss/lib/dbm/src/h_page.c:903,1
    - Dst: memset
      Src: /src/nss/lib/dbm/src/h_page.c:908,1
    - Dst: memset
      Src: /src/nss/lib/dbm/src/h_page.c:909,1
    - Dst: SETBIT
      Src: /src/nss/lib/dbm/src/h_page.c:912,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - hashp
    - pnum
    - nbits
    - ndx
    argTypes:
    - HTAB*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 897
    functionDepth: 1
    functionLinenumber: 897
    functionLinenumberEnd: 916
    functionName: dbm_ibitmap
    functionSourceFile: /src/nss/lib/dbm/src/h_page.c
    functionUses: 0
    functionsReached:
    - malloc
    - SETBIT
    - memset
    linkageType: ''
    returnType: int
    signature: int dbm_ibitmap(HTAB *hashp, int pnum, int nbits, int ndx)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - map
    argTypes:
    - uint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 918
    functionDepth: 0
    functionLinenumber: 918
    functionLinenumberEnd: 930
    functionName: first_free
    functionSourceFile: /src/nss/lib/dbm/src/h_page.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32
    signature: uint32 first_free(uint32 map)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: fetch_bitmap
      Src: /src/nss/lib/dbm/src/h_page.c:953,1
    - Dst: fwrite
      Src: /src/nss/lib/dbm/src/h_page.c:984,1
    - Dst: fwrite
      Src: /src/nss/lib/dbm/src/h_page.c:999,1
    - Dst: dbm_ibitmap
      Src: /src/nss/lib/dbm/src/h_page.c:1014,1
    - Dst: OADDR_OF
      Src: /src/nss/lib/dbm/src/h_page.c:1015,1
    - Dst: fwrite
      Src: /src/nss/lib/dbm/src/h_page.c:1025,1
    - Dst: SETBIT
      Src: /src/nss/lib/dbm/src/h_page.c:1040,1
    - Dst: OADDR_OF
      Src: /src/nss/lib/dbm/src/h_page.c:1044,1
    - Dst: fprintf
      Src: /src/nss/lib/dbm/src/h_page.c:1046,1
    - Dst: first_free
      Src: /src/nss/lib/dbm/src/h_page.c:1052,1
    - Dst: SETBIT
      Src: /src/nss/lib/dbm/src/h_page.c:1053,1
    - Dst: OADDR_OF
      Src: /src/nss/lib/dbm/src/h_page.c:1073,1
    - Dst: fprintf
      Src: /src/nss/lib/dbm/src/h_page.c:1075,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 83
    argCount: 1
    argNames:
    - hashp
    argTypes:
    - HTAB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 932
    functionDepth: 2
    functionLinenumber: 932
    functionLinenumberEnd: 1081
    functionName: overflow_page
    functionSourceFile: /src/nss/lib/dbm/src/h_page.c
    functionUses: 1
    functionsReached:
    - fetch_bitmap
    - fprintf
    - dbm_ibitmap
    - fwrite
    - first_free
    - SETBIT
    - OADDR_OF
    linkageType: ''
    returnType: uint16
    signature: uint16 overflow_page(HTAB *hashp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/lib/dbm/src/h_page.c:1099,1
    - Dst: fetch_bitmap
      Src: /src/nss/lib/dbm/src/h_page.c:1110,1
    - Dst: assert
      Src: /src/nss/lib/dbm/src/h_page.c:1119,1
    - Dst: CLRBIT
      Src: /src/nss/lib/dbm/src/h_page.c:1123,1
    - Dst: fprintf
      Src: /src/nss/lib/dbm/src/h_page.c:1125,1
    - Dst: dbm_reclaim_buf
      Src: /src/nss/lib/dbm/src/h_page.c:1128,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - hashp
    - obufp
    argTypes:
    - HTAB*
    - BUFHEAD*
    assertStmts:
    - condition: (0)
      pos:
        line_end: 1118
        line_start: 1118
        source_file: /src/nss/lib/dbm/src/h_page.c
    constantsTouched: []
    func_position:
      end: 1129
      start: 1086
    functionDepth: 1
    functionLinenumber: 1086
    functionLinenumberEnd: 1129
    functionName: dbm_free_ovflpage
    functionSourceFile: /src/nss/lib/dbm/src/h_page.c
    functionUses: 1
    functionsReached:
    - fetch_bitmap
    - fprintf
    - assert
    - dbm_reclaim_buf
    - CLRBIT
    linkageType: ''
    returnType: void
    signature: void dbm_free_ovflpage(HTAB *hashp, BUFHEAD *obufp)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sigfillset
      Src: /src/nss/lib/dbm/src/h_page.c:1152,1
    - Dst: sigprocmask
      Src: /src/nss/lib/dbm/src/h_page.c:1153,1
    - Dst: strcat
      Src: /src/nss/lib/dbm/src/h_page.c:1158,1
    - Dst: getenv
      Src: /src/nss/lib/dbm/src/h_page.c:1160,1
    - Dst: getenv
      Src: /src/nss/lib/dbm/src/h_page.c:1162,1
    - Dst: getenv
      Src: /src/nss/lib/dbm/src/h_page.c:1164,1
    - Dst: strlen
      Src: /src/nss/lib/dbm/src/h_page.c:1167,1
    - Dst: strcpy
      Src: /src/nss/lib/dbm/src/h_page.c:1169,1
    - Dst: strlen
      Src: /src/nss/lib/dbm/src/h_page.c:1171,1
    - Dst: strcat
      Src: /src/nss/lib/dbm/src/h_page.c:1173,1
    - Dst: mkstempflags
      Src: /src/nss/lib/dbm/src/h_page.c:1177,1
    - Dst: free
      Src: /src/nss/lib/dbm/src/h_page.c:1179,1
    - Dst: strdup
      Src: /src/nss/lib/dbm/src/h_page.c:1181,1
    - Dst: mkstemp
      Src: /src/nss/lib/dbm/src/h_page.c:1185,1
    - Dst: unlink
      Src: /src/nss/lib/dbm/src/h_page.c:1186,1
    - Dst: fcntl
      Src: /src/nss/lib/dbm/src/h_page.c:1188,1
    - Dst: sigprocmask
      Src: /src/nss/lib/dbm/src/h_page.c:1194,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 32
    argCount: 1
    argNames:
    - hashp
    argTypes:
    - HTAB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1197
      start: 1136
    functionDepth: 1
    functionLinenumber: 1136
    functionLinenumberEnd: 1197
    functionName: open_temp
    functionSourceFile: /src/nss/lib/dbm/src/h_page.c
    functionUses: 1
    functionsReached:
    - mkstempflags
    - getenv
    - sigfillset
    - free
    - strdup
    - fcntl
    - strcpy
    - sigprocmask
    - unlink
    - mkstemp
    - strcat
    - strlen
    linkageType: ''
    returnType: int
    signature: int open_temp(HTAB *hashp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FREESPACE
      Src: /src/nss/lib/dbm/src/h_page.c:1211,1
    - Dst: OFFSET
      Src: /src/nss/lib/dbm/src/h_page.c:1212,1
    - Dst: memmove
      Src: /src/nss/lib/dbm/src/h_page.c:1217,1
    - Dst: memmove
      Src: /src/nss/lib/dbm/src/h_page.c:1220,1
    - Dst: FREESPACE
      Src: /src/nss/lib/dbm/src/h_page.c:1224,1
    - Dst: PAIRSIZE
      Src: /src/nss/lib/dbm/src/h_page.c:1224,1
    - Dst: OFFSET
      Src: /src/nss/lib/dbm/src/h_page.c:1225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 3
    argNames:
    - sp
    - key
    - val
    argTypes:
    - uint16*
    - DBT*
    - DBT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1226
      start: 1203
    functionDepth: 1
    functionLinenumber: 1203
    functionLinenumberEnd: 1226
    functionName: squeeze_key
    functionSourceFile: /src/nss/lib/dbm/src/h_page.c
    functionUses: 1
    functionsReached:
    - FREESPACE
    - memmove
    - PAIRSIZE
    - OFFSET
    linkageType: ''
    returnType: void
    signature: void squeeze_key(uint16 *sp, const DBT *key, const DBT *val)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/nss/lib/dbm/src/h_page.c:1233,1
    - Dst: dbm_get_page
      Src: /src/nss/lib/dbm/src/h_page.c:1235,1
    - Dst: free
      Src: /src/nss/lib/dbm/src/h_page.c:1237,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - hashp
    - ndx
    argTypes:
    - HTAB*
    - uint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1242
      start: 1228
    functionDepth: 2
    functionLinenumber: 1228
    functionLinenumberEnd: 1242
    functionName: fetch_bitmap
    functionSourceFile: /src/nss/lib/dbm/src/h_page.c
    functionUses: 2
    functionsReached:
    - malloc
    - dbm_get_page
    - free
    linkageType: ''
    returnType: uint32
    signature: 'uint32 *

      fetch_bitmap(HTAB *hashp, uint32 ndx)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/lib/dbm/src/h_page.c:1251,1
    - Dst: dbm_get_buf
      Src: /src/nss/lib/dbm/src/h_page.c:1252,1
    - Dst: fprintf
      Src: /src/nss/lib/dbm/src/h_page.c:1257,1
    - Dst: dbm_get_buf
      Src: /src/nss/lib/dbm/src/h_page.c:1258,1
    - Dst: fprintf
      Src: /src/nss/lib/dbm/src/h_page.c:1261,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - addr
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1262
      start: 1245
    functionDepth: 1
    functionLinenumber: 1245
    functionLinenumberEnd: 1262
    functionName: print_chain
    functionSourceFile: /src/nss/lib/dbm/src/h_page.c
    functionUses: 0
    functionsReached:
    - fprintf
    - dbm_get_buf
    linkageType: ''
    returnType: int
    signature: int print_chain(int addr)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - type
    argTypes:
    - DBLockFlagEnum
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 65
    functionName: dbSetOrClearDBLock
    functionSourceFile: /src/nss/lib/dbm/src/db.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dbSetOrClearDBLock(DBLockFlagEnum type)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: dbm_bt_open
      Src: /src/nss/lib/dbm/src/db.c:95,1
    - Dst: dbm_rec_open
      Src: /src/nss/lib/dbm/src/db.c:98,1
    - Dst: dbm_hash_open
      Src: /src/nss/lib/dbm/src/db.c:103,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 5
    argNames:
    - fname
    - flags
    - mode
    - type
    - openinfo
    argTypes:
    - char*
    - int
    - int
    - DBTYPE
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 110
    functionName: dbopen
    functionSourceFile: /src/nss/lib/dbm/src/db.c
    functionUses: 2
    functionsReached:
    - dbm_rec_open
    - dbm_hash_open
    - dbm_bt_open
    linkageType: ''
    returnType: DB
    signature: 'DB *

      dbopen(const char *fname, int flags, int mode, DBTYPE type, const void *openinfo)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: dbm_dberr
    functionSourceFile: /src/nss/lib/dbm/src/db.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dbm_dberr()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - dbp
    argTypes:
    - DB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 134
    functionName: dbm_dbpanic
    functionSourceFile: /src/nss/lib/dbm/src/db.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dbm_dbpanic(DB *dbp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _gettemp
      Src: /src/nss/lib/dbm/src/mktemp.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: mkstemp
    functionSourceFile: /src/nss/lib/dbm/src/mktemp.c
    functionUses: 1
    functionsReached:
    - _gettemp
    linkageType: ''
    returnType: int
    signature: int mkstemp(char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _gettemp
      Src: /src/nss/lib/dbm/src/mktemp.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - path
    - extraFlags
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 73
    functionName: mkstempflags
    functionSourceFile: /src/nss/lib/dbm/src/mktemp.c
    functionUses: 1
    functionsReached:
    - _gettemp
    linkageType: ''
    returnType: int
    signature: int mkstempflags(char *path, int extraFlags)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: getpid
      Src: /src/nss/lib/dbm/src/mktemp.c:85,1
    - Dst: stat
      Src: /src/nss/lib/dbm/src/mktemp.c:105,1
    - Dst: S_ISDIR
      Src: /src/nss/lib/dbm/src/mktemp.c:109,1
    - Dst: open
      Src: /src/nss/lib/dbm/src/mktemp.c:120,1
    - Dst: stat
      Src: /src/nss/lib/dbm/src/mktemp.c:124,1
    - Dst: isdigit
      Src: /src/nss/lib/dbm/src/mktemp.c:134,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 46
    argCount: 3
    argNames:
    - path
    - doopen
    - extraFlags
    argTypes:
    - char*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 143
    functionName: _gettemp
    functionSourceFile: /src/nss/lib/dbm/src/mktemp.c
    functionUses: 2
    functionsReached:
    - isdigit
    - open
    - stat
    - getpid
    - S_ISDIR
    linkageType: ''
    returnType: int
    signature: int _gettemp(char *path, register int *doopen, int extraFlags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - num
    argTypes:
    - uint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 54
    functionName: dbm_log2
    functionSourceFile: /src/nss/lib/dbm/src/h_log2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32
    signature: uint32 dbm_log2(uint32 num)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FREESPACE
      Src: /src/nss/lib/dbm/src/h_bigkey.c:104,1
    - Dst: FREESPACE
      Src: /src/nss/lib/dbm/src/h_bigkey.c:105,1
    - Dst: PR_MIN
      Src: /src/nss/lib/dbm/src/h_bigkey.c:106,1
    - Dst: OFFSET
      Src: /src/nss/lib/dbm/src/h_bigkey.c:107,1
    - Dst: memmove
      Src: /src/nss/lib/dbm/src/h_bigkey.c:108,1
    - Dst: FREESPACE
      Src: /src/nss/lib/dbm/src/h_bigkey.c:114,1
    - Dst: PAGE_META
      Src: /src/nss/lib/dbm/src/h_bigkey.c:114,1
    - Dst: OFFSET
      Src: /src/nss/lib/dbm/src/h_bigkey.c:115,1
    - Dst: dbm_add_ovflpage
      Src: /src/nss/lib/dbm/src/h_bigkey.c:117,1
    - Dst: FREESPACE
      Src: /src/nss/lib/dbm/src/h_bigkey.c:122,1
    - Dst: PR_MIN
      Src: /src/nss/lib/dbm/src/h_bigkey.c:123,1
    - Dst: FREESPACE
      Src: /src/nss/lib/dbm/src/h_bigkey.c:123,1
    - Dst: OFFSET
      Src: /src/nss/lib/dbm/src/h_bigkey.c:124,1
    - Dst: memmove
      Src: /src/nss/lib/dbm/src/h_bigkey.c:126,1
    - Dst: FREESPACE
      Src: /src/nss/lib/dbm/src/h_bigkey.c:130,1
    - Dst: FREESPACE
      Src: /src/nss/lib/dbm/src/h_bigkey.c:130,1
    - Dst: OFFSET
      Src: /src/nss/lib/dbm/src/h_bigkey.c:131,1
    - Dst: FREESPACE
      Src: /src/nss/lib/dbm/src/h_bigkey.c:141,1
    - Dst: FREESPACE
      Src: /src/nss/lib/dbm/src/h_bigkey.c:142,1
    - Dst: PR_MIN
      Src: /src/nss/lib/dbm/src/h_bigkey.c:143,1
    - Dst: OFFSET
      Src: /src/nss/lib/dbm/src/h_bigkey.c:150,1
    - Dst: memmove
      Src: /src/nss/lib/dbm/src/h_bigkey.c:151,1
    - Dst: FREESPACE
      Src: /src/nss/lib/dbm/src/h_bigkey.c:157,1
    - Dst: PAGE_META
      Src: /src/nss/lib/dbm/src/h_bigkey.c:157,1
    - Dst: OFFSET
      Src: /src/nss/lib/dbm/src/h_bigkey.c:158,1
    - Dst: dbm_add_ovflpage
      Src: /src/nss/lib/dbm/src/h_bigkey.c:161,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 66
    argCount: 4
    argNames:
    - hashp
    - bufp
    - key
    - val
    argTypes:
    - HTAB*
    - BUFHEAD*
    - DBT*
    - DBT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 171
    functionName: dbm_big_insert
    functionSourceFile: /src/nss/lib/dbm/src/h_bigkey.c
    functionUses: 1
    functionsReached:
    - PR_MIN
    - FREESPACE
    - dbm_add_ovflpage
    - PAGE_META
    - memmove
    - OFFSET
    linkageType: ''
    returnType: int
    signature: int dbm_big_insert(HTAB *hashp, BUFHEAD *bufp, const DBT *key, const
      DBT *val)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FREESPACE
      Src: /src/nss/lib/dbm/src/h_bigkey.c:205,1
    - Dst: dbm_get_buf
      Src: /src/nss/lib/dbm/src/h_bigkey.c:209,1
    - Dst: dbm_free_ovflpage
      Src: /src/nss/lib/dbm/src/h_bigkey.c:211,1
    - Dst: FREESPACE
      Src: /src/nss/lib/dbm/src/h_bigkey.c:241,1
    - Dst: PAGE_META
      Src: /src/nss/lib/dbm/src/h_bigkey.c:241,1
    - Dst: OFFSET
      Src: /src/nss/lib/dbm/src/h_bigkey.c:242,1
    - Dst: dbm_free_ovflpage
      Src: /src/nss/lib/dbm/src/h_bigkey.c:246,1
    - Dst: dbm_free_ovflpage
      Src: /src/nss/lib/dbm/src/h_bigkey.c:248,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 2
    argNames:
    - hashp
    - bufp
    argTypes:
    - HTAB*
    - BUFHEAD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 252
    functionName: dbm_big_delete
    functionSourceFile: /src/nss/lib/dbm/src/h_bigkey.c
    functionUses: 1
    functionsReached:
    - dbm_free_ovflpage
    - FREESPACE
    - PAGE_META
    - dbm_get_buf
    - OFFSET
    linkageType: ''
    returnType: int
    signature: int dbm_big_delete(HTAB *hashp, BUFHEAD *bufp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/nss/lib/dbm/src/h_bigkey.c:277,1
    - Dst: dbm_get_buf
      Src: /src/nss/lib/dbm/src/h_bigkey.c:281,1
    - Dst: memcmp
      Src: /src/nss/lib/dbm/src/h_bigkey.c:289,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 5
    argNames:
    - hashp
    - bufp
    - ndx
    - key
    - size
    argTypes:
    - HTAB*
    - BUFHEAD*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 296
    functionName: dbm_find_bigpair
    functionSourceFile: /src/nss/lib/dbm/src/h_bigkey.c
    functionUses: 0
    functionsReached:
    - dbm_get_buf
    - memcmp
    linkageType: ''
    returnType: int
    signature: int dbm_find_bigpair(HTAB *hashp, BUFHEAD *bufp, int ndx, char *key,
      int size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FREESPACE
      Src: /src/nss/lib/dbm/src/h_bigkey.c:325,1
    - Dst: dbm_get_buf
      Src: /src/nss/lib/dbm/src/h_bigkey.c:334,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 2
    argNames:
    - hashp
    - bpp
    argTypes:
    - HTAB*
    - BUFHEAD**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 345
    functionName: dbm_find_last_page
    functionSourceFile: /src/nss/lib/dbm/src/h_bigkey.c
    functionUses: 0
    functionsReached:
    - dbm_get_buf
    - FREESPACE
    linkageType: ''
    returnType: uint16
    signature: uint16 dbm_find_last_page(HTAB *hashp, BUFHEAD **bpp)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: dbm_get_buf
      Src: /src/nss/lib/dbm/src/h_bigkey.c:366,1
    - Dst: dbm_get_buf
      Src: /src/nss/lib/dbm/src/h_bigkey.c:374,1
    - Dst: FREESPACE
      Src: /src/nss/lib/dbm/src/h_bigkey.c:382,1
    - Dst: dbm_get_buf
      Src: /src/nss/lib/dbm/src/h_bigkey.c:394,1
    - Dst: dbm_get_buf
      Src: /src/nss/lib/dbm/src/h_bigkey.c:411,1
    - Dst: collect_data
      Src: /src/nss/lib/dbm/src/h_bigkey.c:430,1
    - Dst: memmove
      Src: /src/nss/lib/dbm/src/h_bigkey.c:439,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 64
    argCount: 5
    argNames:
    - hashp
    - bufp
    - ndx
    - val
    - set_current
    argTypes:
    - HTAB*
    - BUFHEAD*
    - int
    - DBT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 442
    functionName: dbm_big_return
    functionSourceFile: /src/nss/lib/dbm/src/h_bigkey.c
    functionUses: 0
    functionsReached:
    - dbm_get_buf
    - FREESPACE
    - memmove
    - collect_data
    linkageType: ''
    returnType: int
    signature: "int dbm_big_return(\n    HTAB *hashp,\n    BUFHEAD *bufp,\n    int
      ndx,\n    DBT *val,\n    int set_current)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: dbm_get_buf
      Src: /src/nss/lib/dbm/src/h_bigkey.c:472,1
    - Dst: free
      Src: /src/nss/lib/dbm/src/h_bigkey.c:496,1
    - Dst: malloc
      Src: /src/nss/lib/dbm/src/h_bigkey.c:497,1
    - Dst: dbm_get_buf
      Src: /src/nss/lib/dbm/src/h_bigkey.c:504,1
    - Dst: memmove
      Src: /src/nss/lib/dbm/src/h_bigkey.c:507,1
    - Dst: dbm_get_buf
      Src: /src/nss/lib/dbm/src/h_bigkey.c:524,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 52
    argCount: 4
    argNames:
    - hashp
    - bufp
    - len
    - set
    argTypes:
    - HTAB*
    - BUFHEAD*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 534
    functionName: collect_data
    functionSourceFile: /src/nss/lib/dbm/src/h_bigkey.c
    functionUses: 1
    functionsReached:
    - dbm_get_buf
    - free
    - malloc
    - memmove
    linkageType: ''
    returnType: int
    signature: "int collect_data(\n    HTAB *hashp,\n    BUFHEAD *bufp,\n    int len,
      int set)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: collect_key
      Src: /src/nss/lib/dbm/src/h_bigkey.c:546,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - hashp
    - bufp
    - key
    - val
    - set
    argTypes:
    - HTAB*
    - BUFHEAD*
    - DBT*
    - DBT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 551
    functionName: dbm_big_keydata
    functionSourceFile: /src/nss/lib/dbm/src/h_bigkey.c
    functionUses: 0
    functionsReached:
    - collect_key
    linkageType: ''
    returnType: int
    signature: "int dbm_big_keydata(\n    HTAB *hashp,\n    BUFHEAD *bufp,\n    DBT
      *key, DBT *val,\n    int set)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/nss/lib/dbm/src/h_bigkey.c:578,1
    - Dst: malloc
      Src: /src/nss/lib/dbm/src/h_bigkey.c:579,1
    - Dst: dbm_big_return
      Src: /src/nss/lib/dbm/src/h_bigkey.c:581,1
    - Dst: dbm_get_buf
      Src: /src/nss/lib/dbm/src/h_bigkey.c:584,1
    - Dst: collect_key
      Src: /src/nss/lib/dbm/src/h_bigkey.c:586,1
    - Dst: memmove
      Src: /src/nss/lib/dbm/src/h_bigkey.c:593,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 5
    argNames:
    - hashp
    - bufp
    - len
    - val
    - set
    argTypes:
    - HTAB*
    - BUFHEAD*
    - int
    - DBT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 557
    functionDepth: 2
    functionLinenumber: 557
    functionLinenumberEnd: 595
    functionName: collect_key
    functionSourceFile: /src/nss/lib/dbm/src/h_bigkey.c
    functionUses: 2
    functionsReached:
    - malloc
    - dbm_big_return
    - free
    - collect_key
    - dbm_get_buf
    - memmove
    linkageType: ''
    returnType: int
    signature: "int collect_key(\n    HTAB *hashp,\n    BUFHEAD *bufp,\n    int len,\n
      \   DBT *val,\n    int set)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: dbm_big_keydata
      Src: /src/nss/lib/dbm/src/h_bigkey.c:623,1
    - Dst: dbm_call_hash
      Src: /src/nss/lib/dbm/src/h_bigkey.c:625,1
    - Dst: dbm_find_last_page
      Src: /src/nss/lib/dbm/src/h_bigkey.c:627,1
    - Dst: dbm_get_buf
      Src: /src/nss/lib/dbm/src/h_bigkey.c:629,1
    - Dst: assert
      Src: /src/nss/lib/dbm/src/h_bigkey.c:637,1
    - Dst: fprintf
      Src: /src/nss/lib/dbm/src/h_bigkey.c:646,1
    - Dst: assert
      Src: /src/nss/lib/dbm/src/h_bigkey.c:654,1
    - Dst: FREESPACE
      Src: /src/nss/lib/dbm/src/h_bigkey.c:654,1
    - Dst: FREESPACE
      Src: /src/nss/lib/dbm/src/h_bigkey.c:656,1
    - Dst: OFFSET
      Src: /src/nss/lib/dbm/src/h_bigkey.c:660,1
    - Dst: FREESPACE
      Src: /src/nss/lib/dbm/src/h_bigkey.c:661,1
    - Dst: OFFSET
      Src: /src/nss/lib/dbm/src/h_bigkey.c:665,1
    - Dst: FREESPACE
      Src: /src/nss/lib/dbm/src/h_bigkey.c:666,1
    - Dst: FREESPACE
      Src: /src/nss/lib/dbm/src/h_bigkey.c:689,1
    - Dst: OFFSET
      Src: /src/nss/lib/dbm/src/h_bigkey.c:690,1
    - Dst: FREESPACE
      Src: /src/nss/lib/dbm/src/h_bigkey.c:692,1
    - Dst: OFFSET
      Src: /src/nss/lib/dbm/src/h_bigkey.c:693,1
    - Dst: dbm_add_ovflpage
      Src: /src/nss/lib/dbm/src/h_bigkey.c:694,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 51
    argCount: 7
    argNames:
    - hashp
    - op
    - np
    - big_keyp
    - addr
    - obucket
    - ret
    argTypes:
    - HTAB*
    - BUFHEAD*
    - BUFHEAD*
    - BUFHEAD*
    - uint32
    - uint32
    - SPLIT_RETURN*
    assertStmts:
    - condition: (np->ovfl == NULL)
      pos:
        line_end: 636
        line_start: 636
        source_file: /src/nss/lib/dbm/src/h_bigkey.c
    - condition: (FREESPACE(tp) >= OVFLSIZE)
      pos:
        line_end: 653
        line_start: 653
        source_file: /src/nss/lib/dbm/src/h_bigkey.c
    constantsTouched: []
    func_position:
      end: 706
      start: 602
    functionDepth: 2
    functionLinenumber: 602
    functionLinenumberEnd: 706
    functionName: dbm_big_split
    functionSourceFile: /src/nss/lib/dbm/src/h_bigkey.c
    functionUses: 1
    functionsReached:
    - dbm_call_hash
    - FREESPACE
    - dbm_find_last_page
    - dbm_big_keydata
    - dbm_add_ovflpage
    - assert
    - fprintf
    - dbm_get_buf
    - OFFSET
    linkageType: ''
    returnType: int
    signature: "int dbm_big_split(\n    HTAB *hashp,\n    BUFHEAD *op, /* Pointer
      to where to put keys that go in old bucket */\n    BUFHEAD *np, /* Pointer to
      new bucket page */\n                 /* Pointer to first page containing the
      big key/data */\n    BUFHEAD *big_keyp,\n    uint32 addr,    /* Address of big_keyp
      */\n    uint32 obucket, /* Old Bucket */\n    SPLIT_RETURN *ret)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - keyarg
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 81
    functionName: hash1
    functionSourceFile: /src/nss/lib/dbm/src/h_func.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32
    signature: uint32 hash1(const void *keyarg, register size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - h
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: dcharhash
    functionSourceFile: /src/nss/lib/dbm/src/h_func.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dcharhash(h, c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dcharhash
      Src: /src/nss/lib/dbm/src/h_func.c:101,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - keyarg
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 104
    functionName: hash2
    functionSourceFile: /src/nss/lib/dbm/src/h_func.c
    functionUses: 0
    functionsReached:
    - dcharhash
    linkageType: ''
    returnType: uint32
    signature: uint32 hash2(const void *keyarg, size_t len)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 2
    argNames:
    - keyarg
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 158
    functionName: hash3
    functionSourceFile: /src/nss/lib/dbm/src/h_func.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32
    signature: uint32 hash3(const void *keyarg, register size_t len)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 2
    argNames:
    - keyarg
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 207
    functionName: hash4
    functionSourceFile: /src/nss/lib/dbm/src/h_func.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32
    signature: uint32 hash4(const void *keyarg, register size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 81
    functionName: BUF_REMOVE
    functionSourceFile: /src/nss/lib/dbm/src/hash_buf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUF_REMOVE(B)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - B
    - ','
    - P
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 90
    functionName: BUF_INSERT
    functionSourceFile: /src/nss/lib/dbm/src/hash_buf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUF_INSERT(B, P)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 95
    functionName: MRU_INSERT
    functionSourceFile: /src/nss/lib/dbm/src/hash_buf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MRU_INSERT(B)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 96
    functionName: LRU_INSERT
    functionSourceFile: /src/nss/lib/dbm/src/hash_buf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LRU_INSERT(B)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/dbm/src/hash_buf.c:130,1
    - Dst: PTROF
      Src: /src/nss/lib/dbm/src/hash_buf.c:133,1
    - Dst: ISDISK
      Src: /src/nss/lib/dbm/src/hash_buf.c:135,1
    - Dst: newbuf
      Src: /src/nss/lib/dbm/src/hash_buf.c:140,1
    - Dst: dbm_get_page
      Src: /src/nss/lib/dbm/src/hash_buf.c:143,1
    - Dst: BUF_REMOVE
      Src: /src/nss/lib/dbm/src/hash_buf.c:155,1
    - Dst: free
      Src: /src/nss/lib/dbm/src/hash_buf.c:156,1
    - Dst: free
      Src: /src/nss/lib/dbm/src/hash_buf.c:157,1
    - Dst: BUF_REMOVE
      Src: /src/nss/lib/dbm/src/hash_buf.c:176,1
    - Dst: MRU_INSERT
      Src: /src/nss/lib/dbm/src/hash_buf.c:177,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 4
    argNames:
    - hashp
    - addr
    - prev_bp
    - newpage
    argTypes:
    - HTAB*
    - uint32
    - BUFHEAD*
    - int
    assertStmts:
    - condition: (segp != NULL)
      pos:
        line_end: 129
        line_start: 129
        source_file: /src/nss/lib/dbm/src/hash_buf.c
    constantsTouched: []
    func_position:
      end: 180
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 180
    functionName: dbm_get_buf
    functionSourceFile: /src/nss/lib/dbm/src/hash_buf.c
    functionUses: 12
    functionsReached:
    - free
    - MRU_INSERT
    - BUF_REMOVE
    - assert
    - dbm_get_page
    - PTROF
    - ISDISK
    - newbuf
    linkageType: ''
    returnType: BUFHEAD
    signature: 'BUFHEAD *

      dbm_get_buf(HTAB *hashp, uint32 addr, BUFHEAD *prev_bp, int newpage)'
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/nss/lib/dbm/src/hash_buf.c:206,1
    - Dst: memset
      Src: /src/nss/lib/dbm/src/hash_buf.c:212,1
    - Dst: malloc
      Src: /src/nss/lib/dbm/src/hash_buf.c:214,1
    - Dst: free
      Src: /src/nss/lib/dbm/src/hash_buf.c:215,1
    - Dst: memset
      Src: /src/nss/lib/dbm/src/hash_buf.c:222,1
    - Dst: BUF_REMOVE
      Src: /src/nss/lib/dbm/src/hash_buf.c:228,1
    - Dst: dbm_put_page
      Src: /src/nss/lib/dbm/src/hash_buf.c:245,1
    - Dst: IS_BUCKET
      Src: /src/nss/lib/dbm/src/hash_buf.c:246,1
    - Dst: IS_BUCKET
      Src: /src/nss/lib/dbm/src/hash_buf.c:256,1
    - Dst: assert
      Src: /src/nss/lib/dbm/src/hash_buf.c:260,1
    - Dst: ISDISK
      Src: /src/nss/lib/dbm/src/hash_buf.c:265,1
    - Dst: IS_BUCKET
      Src: /src/nss/lib/dbm/src/hash_buf.c:287,1
    - Dst: dbm_put_page
      Src: /src/nss/lib/dbm/src/hash_buf.c:301,1
    - Dst: BUF_REMOVE
      Src: /src/nss/lib/dbm/src/hash_buf.c:306,1
    - Dst: LRU_INSERT
      Src: /src/nss/lib/dbm/src/hash_buf.c:307,1
    - Dst: fprintf
      Src: /src/nss/lib/dbm/src/hash_buf.c:315,1
    - Dst: fprintf
      Src: /src/nss/lib/dbm/src/hash_buf.c:325,1
    - Dst: MRU_INSERT
      Src: /src/nss/lib/dbm/src/hash_buf.c:333,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 69
    argCount: 3
    argNames:
    - hashp
    - addr
    - prev_bp
    argTypes:
    - HTAB*
    - uint32
    - BUFHEAD*
    assertStmts:
    - condition: (segp != NULL)
      pos:
        line_end: 259
        line_start: 259
        source_file: /src/nss/lib/dbm/src/hash_buf.c
    constantsTouched: []
    func_position:
      end: 335
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 335
    functionName: newbuf
    functionSourceFile: /src/nss/lib/dbm/src/hash_buf.c
    functionUses: 1
    functionsReached:
    - malloc
    - free
    - dbm_put_page
    - MRU_INSERT
    - BUF_REMOVE
    - memset
    - assert
    - IS_BUCKET
    - LRU_INSERT
    - fprintf
    - ISDISK
    linkageType: ''
    returnType: BUFHEAD
    signature: 'BUFHEAD *

      newbuf(HTAB *hashp, uint32 addr, BUFHEAD *prev_bp)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_MAX
      Src: /src/nss/lib/dbm/src/hash_buf.c:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - hashp
    - nbytes
    argTypes:
    - HTAB*
    - int32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 358
    functionName: dbm_buf_init
    functionSourceFile: /src/nss/lib/dbm/src/hash_buf.c
    functionUses: 0
    functionsReached:
    - PR_MAX
    linkageType: ''
    returnType: void
    signature: void dbm_buf_init(HTAB *hashp, int32 nbytes)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: IS_BUCKET
      Src: /src/nss/lib/dbm/src/hash_buf.c:371,1
    - Dst: dbm_put_page
      Src: /src/nss/lib/dbm/src/hash_buf.c:373,1
    - Dst: IS_BUCKET
      Src: /src/nss/lib/dbm/src/hash_buf.c:374,1
    - Dst: free
      Src: /src/nss/lib/dbm/src/hash_buf.c:378,1
    - Dst: BUF_REMOVE
      Src: /src/nss/lib/dbm/src/hash_buf.c:379,1
    - Dst: free
      Src: /src/nss/lib/dbm/src/hash_buf.c:380,1
    - Dst: free
      Src: /src/nss/lib/dbm/src/hash_buf.c:389,1
    - Dst: BUF_REMOVE
      Src: /src/nss/lib/dbm/src/hash_buf.c:390,1
    - Dst: free
      Src: /src/nss/lib/dbm/src/hash_buf.c:391,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 3
    argNames:
    - hashp
    - do_free
    - to_disk
    argTypes:
    - HTAB*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 360
    functionDepth: 2
    functionLinenumber: 360
    functionLinenumberEnd: 397
    functionName: dbm_buf_free
    functionSourceFile: /src/nss/lib/dbm/src/hash_buf.c
    functionUses: 0
    functionsReached:
    - IS_BUCKET
    - BUF_REMOVE
    - free
    - dbm_put_page
    linkageType: ''
    returnType: int
    signature: int dbm_buf_free(HTAB *hashp, int do_free, int to_disk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUF_REMOVE
      Src: /src/nss/lib/dbm/src/hash_buf.c:405,1
    - Dst: LRU_INSERT
      Src: /src/nss/lib/dbm/src/hash_buf.c:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - hashp
    - bp
    argTypes:
    - HTAB*
    - BUFHEAD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 407
    functionName: dbm_reclaim_buf
    functionSourceFile: /src/nss/lib/dbm/src/hash_buf.c
    functionUses: 1
    functionsReached:
    - LRU_INSERT
    - BUF_REMOVE
    linkageType: ''
    returnType: void
    signature: void dbm_reclaim_buf(HTAB *hashp, BUFHEAD *bp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: TLOOP
    functionSourceFile: /src/nss/lib/dbm/src/memmove.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TLOOP(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 89
    functionName: TLOOP1
    functionSourceFile: /src/nss/lib/dbm/src/memmove.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TLOOP1(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 95
    functionName: MOD
    functionSourceFile: /src/nss/lib/dbm/src/hash.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MOD(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ERR
    - ','
    - LOC
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 101
    functionName: RETURN_ERROR
    functionSourceFile: /src/nss/lib/dbm/src/hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RETURN_ERROR(ERR, LOC)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/dbm/src/hash.c:122,1
    - Dst: hdestroy
      Src: /src/nss/lib/dbm/src/hash.c:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - dbp
    argTypes:
    - DB*
    assertStmts:
    - condition: (0)
      pos:
        line_end: 121
        line_start: 121
        source_file: /src/nss/lib/dbm/src/hash.c
    constantsTouched: []
    func_position:
      end: 128
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 128
    functionName: dbm_remove_database
    functionSourceFile: /src/nss/lib/dbm/src/hash.c
    functionUses: 0
    functionsReached:
    - assert
    - hdestroy
    linkageType: ''
    returnType: void
    signature: void dbm_remove_database(DB *dbp)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/dbm/src/hash.c:150,1
    - Dst: calloc
      Src: /src/nss/lib/dbm/src/hash.c:152,1
    - Dst: strdup
      Src: /src/nss/lib/dbm/src/hash.c:158,1
    - Dst: stat
      Src: /src/nss/lib/dbm/src/hash.c:169,1
    - Dst: DBFILE_OPEN
      Src: /src/nss/lib/dbm/src/hash.c:183,1
    - Dst: RETURN_ERROR
      Src: /src/nss/lib/dbm/src/hash.c:184,1
    - Dst: open
      Src: /src/nss/lib/dbm/src/hash.c:186,1
    - Dst: RETURN_ERROR
      Src: /src/nss/lib/dbm/src/hash.c:187,1
    - Dst: fcntl
      Src: /src/nss/lib/dbm/src/hash.c:188,1
    - Dst: init_hash
      Src: /src/nss/lib/dbm/src/hash.c:192,1
    - Dst: RETURN_ERROR
      Src: /src/nss/lib/dbm/src/hash.c:193,1
    - Dst: read
      Src: /src/nss/lib/dbm/src/hash.c:201,1
    - Dst: RETURN_ERROR
      Src: /src/nss/lib/dbm/src/hash.c:203,1
    - Dst: RETURN_ERROR
      Src: /src/nss/lib/dbm/src/hash.c:205,1
    - Dst: swap_header
      Src: /src/nss/lib/dbm/src/hash.c:207,1
    - Dst: RETURN_ERROR
      Src: /src/nss/lib/dbm/src/hash.c:211,1
    - Dst: RETURN_ERROR
      Src: /src/nss/lib/dbm/src/hash.c:215,1
    - Dst: HTAB*::hash
      Src: /src/nss/lib/dbm/src/hash.c:216,1
    - Dst: RETURN_ERROR
      Src: /src/nss/lib/dbm/src/hash.c:217,1
    - Dst: RETURN_ERROR
      Src: /src/nss/lib/dbm/src/hash.c:219,1
    - Dst: alloc_segs
      Src: /src/nss/lib/dbm/src/hash.c:229,1
    - Dst: RETURN_ERROR
      Src: /src/nss/lib/dbm/src/hash.c:231,1
    - Dst: memset
      Src: /src/nss/lib/dbm/src/hash.c:238,1
    - Dst: dbm_buf_init
      Src: /src/nss/lib/dbm/src/hash.c:243,1
    - Dst: dbm_buf_init
      Src: /src/nss/lib/dbm/src/hash.c:245,1
    - Dst: malloc
      Src: /src/nss/lib/dbm/src/hash.c:254,1
    - Dst: RETURN_ERROR
      Src: /src/nss/lib/dbm/src/hash.c:255,1
    - Dst: hdestroy
      Src: /src/nss/lib/dbm/src/hash.c:273,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 86
    argCount: 5
    argNames:
    - file
    - flags
    - mode
    - info
    - dflags
    argTypes:
    - char*
    - int
    - int
    - HASHINFO*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 276
    functionName: dbm_hash_open
    functionSourceFile: /src/nss/lib/dbm/src/hash.c
    functionUses: 1
    functionsReached:
    - malloc
    - strdup
    - fcntl
    - hdestroy
    - DBFILE_OPEN
    - read
    - dbm_buf_init
    - alloc_segs
    - open
    - memset
    - stat
    - init_hash
    - swap_header
    - calloc
    - HTAB*::hash
    - RETURN_ERROR
    linkageType: ''
    returnType: DB
    signature: 'DB *

      dbm_hash_open(const char *file, int flags, int mode, const HASHINFO *info, int
      dflags)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hdestroy
      Src: /src/nss/lib/dbm/src/hash.c:291,1
    - Dst: free
      Src: /src/nss/lib/dbm/src/hash.c:292,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - dbp
    argTypes:
    - DB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 294
    functionName: hash_close
    functionSourceFile: /src/nss/lib/dbm/src/hash.c
    functionUses: 0
    functionsReached:
    - hdestroy
    - free
    linkageType: ''
    returnType: int
    signature: int hash_close(DB *dbp)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - dbp
    argTypes:
    - DB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 313
    functionName: hash_fd
    functionSourceFile: /src/nss/lib/dbm/src/hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hash_fd(const DB *dbp)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/dbm/src/hash.c:332,1
    - Dst: memset
      Src: /src/nss/lib/dbm/src/hash.c:333,1
    - Dst: stat
      Src: /src/nss/lib/dbm/src/hash.c:337,1
    - Dst: dbm_log2
      Src: /src/nss/lib/dbm/src/hash.c:353,1
    - Dst: dbm_log2
      Src: /src/nss/lib/dbm/src/hash.c:359,1
    - Dst: init_htab
      Src: /src/nss/lib/dbm/src/hash.c:382,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 48
    argCount: 3
    argNames:
    - hashp
    - file
    - info
    argTypes:
    - HTAB*
    - char*
    - HASHINFO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 386
    functionName: init_hash
    functionSourceFile: /src/nss/lib/dbm/src/hash.c
    functionUses: 1
    functionsReached:
    - memset
    - init_htab
    - dbm_log2
    - stat
    linkageType: ''
    returnType: HTAB
    signature: 'HTAB *

      init_hash(HTAB *hashp, const char *file, HASHINFO *info)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dbm_log2
      Src: /src/nss/lib/dbm/src/hash.c:406,1
    - Dst: PR_MAX
      Src: /src/nss/lib/dbm/src/hash.c:406,1
    - Dst: dbm_ibitmap
      Src: /src/nss/lib/dbm/src/hash.c:415,1
    - Dst: OADDR_OF
      Src: /src/nss/lib/dbm/src/hash.c:415,1
    - Dst: PR_MAX
      Src: /src/nss/lib/dbm/src/hash.c:420,1
    - Dst: dbm_log2
      Src: /src/nss/lib/dbm/src/hash.c:425,1
    - Dst: alloc_segs
      Src: /src/nss/lib/dbm/src/hash.c:429,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - hashp
    - nelem
    argTypes:
    - HTAB*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 393
    functionDepth: 2
    functionLinenumber: 393
    functionLinenumberEnd: 430
    functionName: init_htab
    functionSourceFile: /src/nss/lib/dbm/src/hash.c
    functionUses: 1
    functionsReached:
    - alloc_segs
    - dbm_log2
    - dbm_ibitmap
    - PR_MAX
    - OADDR_OF
    linkageType: ''
    returnType: int
    signature: int init_htab(HTAB *hashp, int nelem)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/lib/dbm/src/hash.c:446,1
    - Dst: fprintf
      Src: /src/nss/lib/dbm/src/hash.c:448,1
    - Dst: fprintf
      Src: /src/nss/lib/dbm/src/hash.c:450,1
    - Dst: fprintf
      Src: /src/nss/lib/dbm/src/hash.c:452,1
    - Dst: fprintf
      Src: /src/nss/lib/dbm/src/hash.c:456,1
    - Dst: dbm_buf_free
      Src: /src/nss/lib/dbm/src/hash.c:463,1
    - Dst: free
      Src: /src/nss/lib/dbm/src/hash.c:466,1
    - Dst: free
      Src: /src/nss/lib/dbm/src/hash.c:469,1
    - Dst: free
      Src: /src/nss/lib/dbm/src/hash.c:470,1
    - Dst: flush_meta
      Src: /src/nss/lib/dbm/src/hash.c:472,1
    - Dst: free
      Src: /src/nss/lib/dbm/src/hash.c:477,1
    - Dst: close
      Src: /src/nss/lib/dbm/src/hash.c:480,1
    - Dst: unlink
      Src: /src/nss/lib/dbm/src/hash.c:485,1
    - Dst: free
      Src: /src/nss/lib/dbm/src/hash.c:487,1
    - Dst: free
      Src: /src/nss/lib/dbm/src/hash.c:490,1
    - Dst: free
      Src: /src/nss/lib/dbm/src/hash.c:492,1
    - Dst: free
      Src: /src/nss/lib/dbm/src/hash.c:493,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 1
    argNames:
    - hashp
    argTypes:
    - HTAB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 438
    functionDepth: 3
    functionLinenumber: 438
    functionLinenumberEnd: 499
    functionName: hdestroy
    functionSourceFile: /src/nss/lib/dbm/src/hash.c
    functionUses: 3
    functionsReached:
    - close
    - free
    - flush_meta
    - unlink
    - fprintf
    - dbm_buf_free
    linkageType: ''
    returnType: int
    signature: int hdestroy(HTAB *hashp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/dbm/src/hash.c:519,1
    - Dst: stat
      Src: /src/nss/lib/dbm/src/hash.c:522,1
    - Dst: close
      Src: /src/nss/lib/dbm/src/hash.c:527,1
    - Dst: DBFILE_OPEN
      Src: /src/nss/lib/dbm/src/hash.c:531,1
    - Dst: lseek
      Src: /src/nss/lib/dbm/src/hash.c:533,1
    - Dst: lseek
      Src: /src/nss/lib/dbm/src/hash.c:540,1
    - Dst: _get_osfhandle
      Src: /src/nss/lib/dbm/src/hash.c:541,1
    - Dst: FlushFileBuffers
      Src: /src/nss/lib/dbm/src/hash.c:542,1
    - Dst: GetLastError
      Src: /src/nss/lib/dbm/src/hash.c:545,1
    - Dst: fprintf
      Src: /src/nss/lib/dbm/src/hash.c:546,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - hashp
    argTypes:
    - HTAB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 509
    functionDepth: 1
    functionLinenumber: 509
    functionLinenumberEnd: 556
    functionName: update_EOF
    functionSourceFile: /src/nss/lib/dbm/src/hash.c
    functionUses: 0
    functionsReached:
    - close
    - _get_osfhandle
    - DBFILE_OPEN
    - FlushFileBuffers
    - memset
    - stat
    - GetLastError
    - fprintf
    - lseek
    linkageType: ''
    returnType: int
    signature: int update_EOF(HTAB *hashp)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: dbm_buf_free
      Src: /src/nss/lib/dbm/src/hash.c:585,1
    - Dst: flush_meta
      Src: /src/nss/lib/dbm/src/hash.c:585,1
    - Dst: update_EOF
      Src: /src/nss/lib/dbm/src/hash.c:589,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 2
    argNames:
    - dbp
    - flags
    argTypes:
    - DB*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 566
    functionDepth: 3
    functionLinenumber: 566
    functionLinenumberEnd: 597
    functionName: hash_sync
    functionSourceFile: /src/nss/lib/dbm/src/hash.c
    functionUses: 0
    functionsReached:
    - dbm_buf_free
    - flush_meta
    - update_EOF
    linkageType: ''
    returnType: int
    signature: int hash_sync(const DB *dbp, uint flags)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: HTAB*::hash
      Src: /src/nss/lib/dbm/src/hash.c:617,1
    - Dst: swap_header_copy
      Src: /src/nss/lib/dbm/src/hash.c:623,1
    - Dst: lseek
      Src: /src/nss/lib/dbm/src/hash.c:625,1
    - Dst: write
      Src: /src/nss/lib/dbm/src/hash.c:626,1
    - Dst: dbm_put_page
      Src: /src/nss/lib/dbm/src/hash.c:635,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - hashp
    argTypes:
    - HTAB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 604
    functionDepth: 2
    functionLinenumber: 604
    functionLinenumberEnd: 639
    functionName: flush_meta
    functionSourceFile: /src/nss/lib/dbm/src/hash.c
    functionUses: 2
    functionsReached:
    - write
    - dbm_put_page
    - swap_header_copy
    - lseek
    - HTAB*::hash
    linkageType: ''
    returnType: int
    signature: int flush_meta(HTAB *hashp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hash_access
      Src: /src/nss/lib/dbm/src/hash.c:669,1
    - Dst: printf
      Src: /src/nss/lib/dbm/src/hash.c:673,1
    - Dst: dbm_remove_database
      Src: /src/nss/lib/dbm/src/hash.c:675,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - dbp
    - key
    - data
    - flag
    argTypes:
    - DB*
    - DBT*
    - DBT*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 650
    functionDepth: 2
    functionLinenumber: 650
    functionLinenumberEnd: 679
    functionName: hash_get
    functionSourceFile: /src/nss/lib/dbm/src/hash.c
    functionUses: 0
    functionsReached:
    - hash_access
    - printf
    - dbm_remove_database
    linkageType: ''
    returnType: int
    signature: "int hash_get(\n    const DB *dbp,\n    const DBT *key,\n    DBT *data,\n
      \   uint flag)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hash_access
      Src: /src/nss/lib/dbm/src/hash.c:704,1
    - Dst: printf
      Src: /src/nss/lib/dbm/src/hash.c:709,1
    - Dst: dbm_remove_database
      Src: /src/nss/lib/dbm/src/hash.c:711,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - dbp
    - key
    - data
    - flag
    argTypes:
    - DB*
    - DBT*
    - DBT*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 681
    functionDepth: 2
    functionLinenumber: 681
    functionLinenumberEnd: 715
    functionName: hash_put
    functionSourceFile: /src/nss/lib/dbm/src/hash.c
    functionUses: 0
    functionsReached:
    - hash_access
    - printf
    - dbm_remove_database
    linkageType: ''
    returnType: int
    signature: "int hash_put(\n    const DB *dbp,\n    DBT *key,\n    const DBT *data,\n
      \   uint flag)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hash_access
      Src: /src/nss/lib/dbm/src/hash.c:738,1
    - Dst: printf
      Src: /src/nss/lib/dbm/src/hash.c:742,1
    - Dst: dbm_remove_database
      Src: /src/nss/lib/dbm/src/hash.c:744,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - dbp
    - key
    - flag
    argTypes:
    - DB*
    - DBT*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 717
    functionDepth: 2
    functionLinenumber: 717
    functionLinenumberEnd: 748
    functionName: hash_delete
    functionSourceFile: /src/nss/lib/dbm/src/hash.c
    functionUses: 0
    functionsReached:
    - hash_access
    - printf
    - dbm_remove_database
    linkageType: ''
    returnType: int
    signature: "int hash_delete(\n    const DB *dbp,\n    const DBT *key,\n    uint
      flag)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: dbm_get_buf
      Src: /src/nss/lib/dbm/src/hash.c:777,1
    - Dst: dbm_call_hash
      Src: /src/nss/lib/dbm/src/hash.c:777,1
    - Dst: memcmp
      Src: /src/nss/lib/dbm/src/hash.c:789,1
    - Dst: dbm_get_buf
      Src: /src/nss/lib/dbm/src/hash.c:805,1
    - Dst: dbm_find_bigpair
      Src: /src/nss/lib/dbm/src/hash.c:822,1
    - Dst: dbm_find_last_page
      Src: /src/nss/lib/dbm/src/hash.c:827,1
    - Dst: dbm_get_buf
      Src: /src/nss/lib/dbm/src/hash.c:832,1
    - Dst: dbm_addel
      Src: /src/nss/lib/dbm/src/hash.c:853,1
    - Dst: dbm_big_return
      Src: /src/nss/lib/dbm/src/hash.c:875,1
    - Dst: dbm_delpair
      Src: /src/nss/lib/dbm/src/hash.c:883,1
    - Dst: dbm_addel
      Src: /src/nss/lib/dbm/src/hash.c:884,1
    - Dst: dbm_delpair
      Src: /src/nss/lib/dbm/src/hash.c:890,1
    - Dst: abort
      Src: /src/nss/lib/dbm/src/hash.c:894,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 110
    argCount: 4
    argNames:
    - hashp
    - action
    - key
    - val
    argTypes:
    - HTAB*
    - ACTION
    - DBT*
    - DBT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 754
    functionDepth: 3
    functionLinenumber: 754
    functionLinenumberEnd: 898
    functionName: hash_access
    functionSourceFile: /src/nss/lib/dbm/src/hash.c
    functionUses: 3
    functionsReached:
    - dbm_call_hash
    - dbm_big_return
    - dbm_delpair
    - dbm_find_bigpair
    - dbm_find_last_page
    - abort
    - dbm_addel
    - dbm_get_buf
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int hash_access(\n    HTAB *hashp,\n    ACTION action,\n    DBT *key,
      DBT *val)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: dbm_get_buf
      Src: /src/nss/lib/dbm/src/hash.c:933,1
    - Dst: assert
      Src: /src/nss/lib/dbm/src/hash.c:950,1
    - Dst: assert
      Src: /src/nss/lib/dbm/src/hash.c:951,1
    - Dst: dbm_get_buf
      Src: /src/nss/lib/dbm/src/hash.c:955,1
    - Dst: dbm_big_keydata
      Src: /src/nss/lib/dbm/src/hash.c:968,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 64
    argCount: 4
    argNames:
    - dbp
    - key
    - data
    - flag
    argTypes:
    - DB*
    - DBT*
    - DBT*
    - uint
    assertStmts:
    - condition: (bufp)
      pos:
        line_end: 950
        line_start: 950
        source_file: /src/nss/lib/dbm/src/hash.c
    - condition: (bp)
      pos:
        line_end: 949
        line_start: 949
        source_file: /src/nss/lib/dbm/src/hash.c
    constantsTouched: []
    func_position:
      end: 984
      start: 900
    functionDepth: 3
    functionLinenumber: 900
    functionLinenumberEnd: 984
    functionName: hash_seq
    functionSourceFile: /src/nss/lib/dbm/src/hash.c
    functionUses: 0
    functionsReached:
    - dbm_get_buf
    - assert
    - dbm_big_keydata
    linkageType: ''
    returnType: int
    signature: "int hash_seq(\n    const DB *dbp,\n    DBT *key, DBT *data,\n    uint
      flag)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: hash_realloc
      Src: /src/nss/lib/dbm/src/hash.c:1014,1
    - Dst: calloc
      Src: /src/nss/lib/dbm/src/hash.c:1019,1
    - Dst: dbm_log2
      Src: /src/nss/lib/dbm/src/hash.c:1029,1
    - Dst: dbm_split_page
      Src: /src/nss/lib/dbm/src/hash.c:1041,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - hashp
    argTypes:
    - HTAB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 993
    functionDepth: 3
    functionLinenumber: 993
    functionLinenumberEnd: 1042
    functionName: dbm_expand_table
    functionSourceFile: /src/nss/lib/dbm/src/hash.c
    functionUses: 1
    functionsReached:
    - calloc
    - dbm_split_page
    - dbm_log2
    - hash_realloc
    linkageType: ''
    returnType: int
    signature: int dbm_expand_table(HTAB *hashp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/nss/lib/dbm/src/hash.c:1055,1
    - Dst: memmove
      Src: /src/nss/lib/dbm/src/hash.c:1056,1
    - Dst: memset
      Src: /src/nss/lib/dbm/src/hash.c:1057,1
    - Dst: free
      Src: /src/nss/lib/dbm/src/hash.c:1058,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - p_ptr
    - oldsize
    - newsize
    argTypes:
    - SEGMENT**
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1048
    functionDepth: 1
    functionLinenumber: 1048
    functionLinenumberEnd: 1062
    functionName: hash_realloc
    functionSourceFile: /src/nss/lib/dbm/src/hash.c
    functionUses: 1
    functionsReached:
    - malloc
    - free
    - memmove
    - memset
    linkageType: ''
    returnType: void
    signature: "void *\nhash_realloc(\n    SEGMENT **p_ptr,\n    size_t oldsize, size_t
      newsize)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HTAB*::hash
      Src: /src/nss/lib/dbm/src/hash.c:1069,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - hashp
    - k
    - len
    argTypes:
    - HTAB*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1074
      start: 1064
    functionDepth: 0
    functionLinenumber: 1064
    functionLinenumberEnd: 1074
    functionName: dbm_call_hash
    functionSourceFile: /src/nss/lib/dbm/src/hash.c
    functionUses: 4
    functionsReached:
    - HTAB*::hash
    linkageType: ''
    returnType: uint32
    signature: uint32 dbm_call_hash(HTAB *hashp, char *k, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/nss/lib/dbm/src/hash.c:1090,1
    - Dst: calloc
      Src: /src/nss/lib/dbm/src/hash.c:1096,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - hashp
    - nsegs
    argTypes:
    - HTAB*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 1081
    functionDepth: 1
    functionLinenumber: 1081
    functionLinenumberEnd: 1103
    functionName: alloc_segs
    functionSourceFile: /src/nss/lib/dbm/src/hash.c
    functionUses: 2
    functionsReached:
    - calloc
    linkageType: ''
    returnType: int
    signature: "int alloc_segs(\n    HTAB *hashp,\n    int nsegs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: P_32_COPY
      Src: /src/nss/lib/dbm/src/hash.c:1115,1
    - Dst: P_32_COPY
      Src: /src/nss/lib/dbm/src/hash.c:1116,1
    - Dst: P_32_COPY
      Src: /src/nss/lib/dbm/src/hash.c:1117,1
    - Dst: P_32_COPY
      Src: /src/nss/lib/dbm/src/hash.c:1118,1
    - Dst: P_32_COPY
      Src: /src/nss/lib/dbm/src/hash.c:1119,1
    - Dst: P_32_COPY
      Src: /src/nss/lib/dbm/src/hash.c:1120,1
    - Dst: P_32_COPY
      Src: /src/nss/lib/dbm/src/hash.c:1121,1
    - Dst: P_32_COPY
      Src: /src/nss/lib/dbm/src/hash.c:1122,1
    - Dst: P_32_COPY
      Src: /src/nss/lib/dbm/src/hash.c:1123,1
    - Dst: P_32_COPY
      Src: /src/nss/lib/dbm/src/hash.c:1124,1
    - Dst: P_32_COPY
      Src: /src/nss/lib/dbm/src/hash.c:1125,1
    - Dst: P_32_COPY
      Src: /src/nss/lib/dbm/src/hash.c:1126,1
    - Dst: P_32_COPY
      Src: /src/nss/lib/dbm/src/hash.c:1127,1
    - Dst: P_32_COPY
      Src: /src/nss/lib/dbm/src/hash.c:1128,1
    - Dst: P_32_COPY
      Src: /src/nss/lib/dbm/src/hash.c:1129,1
    - Dst: P_32_COPY
      Src: /src/nss/lib/dbm/src/hash.c:1130,1
    - Dst: P_32_COPY
      Src: /src/nss/lib/dbm/src/hash.c:1131,1
    - Dst: P_32_COPY
      Src: /src/nss/lib/dbm/src/hash.c:1133,1
    - Dst: P_16_COPY
      Src: /src/nss/lib/dbm/src/hash.c:1134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 2
    argNames:
    - srcp
    - destp
    argTypes:
    - HASHHDR*
    - HASHHDR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1136
      start: 1109
    functionDepth: 1
    functionLinenumber: 1109
    functionLinenumberEnd: 1136
    functionName: swap_header_copy
    functionSourceFile: /src/nss/lib/dbm/src/hash.c
    functionUses: 1
    functionsReached:
    - P_32_COPY
    - P_16_COPY
    linkageType: ''
    returnType: void
    signature: "void swap_header_copy(\n    HASHHDR *srcp, HASHHDR *destp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: M_32_SWAP
      Src: /src/nss/lib/dbm/src/hash.c:1146,1
    - Dst: M_32_SWAP
      Src: /src/nss/lib/dbm/src/hash.c:1147,1
    - Dst: M_32_SWAP
      Src: /src/nss/lib/dbm/src/hash.c:1148,1
    - Dst: M_32_SWAP
      Src: /src/nss/lib/dbm/src/hash.c:1149,1
    - Dst: M_32_SWAP
      Src: /src/nss/lib/dbm/src/hash.c:1150,1
    - Dst: M_32_SWAP
      Src: /src/nss/lib/dbm/src/hash.c:1151,1
    - Dst: M_32_SWAP
      Src: /src/nss/lib/dbm/src/hash.c:1152,1
    - Dst: M_32_SWAP
      Src: /src/nss/lib/dbm/src/hash.c:1153,1
    - Dst: M_32_SWAP
      Src: /src/nss/lib/dbm/src/hash.c:1154,1
    - Dst: M_32_SWAP
      Src: /src/nss/lib/dbm/src/hash.c:1155,1
    - Dst: M_32_SWAP
      Src: /src/nss/lib/dbm/src/hash.c:1156,1
    - Dst: M_32_SWAP
      Src: /src/nss/lib/dbm/src/hash.c:1157,1
    - Dst: M_32_SWAP
      Src: /src/nss/lib/dbm/src/hash.c:1158,1
    - Dst: M_32_SWAP
      Src: /src/nss/lib/dbm/src/hash.c:1159,1
    - Dst: M_32_SWAP
      Src: /src/nss/lib/dbm/src/hash.c:1160,1
    - Dst: M_32_SWAP
      Src: /src/nss/lib/dbm/src/hash.c:1161,1
    - Dst: M_32_SWAP
      Src: /src/nss/lib/dbm/src/hash.c:1162,1
    - Dst: M_32_SWAP
      Src: /src/nss/lib/dbm/src/hash.c:1164,1
    - Dst: M_16_SWAP
      Src: /src/nss/lib/dbm/src/hash.c:1165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 1
    argNames:
    - hashp
    argTypes:
    - HTAB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1167
      start: 1138
    functionDepth: 1
    functionLinenumber: 1138
    functionLinenumberEnd: 1167
    functionName: swap_header
    functionSourceFile: /src/nss/lib/dbm/src/hash.c
    functionUses: 1
    functionsReached:
    - M_16_SWAP
    - M_32_SWAP
    linkageType: ''
    returnType: void
    signature: void swap_header(HTAB *hashp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dirp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: rewinddir
    functionSourceFile: /src/nss/lib/dbm/src/dirent.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rewinddir(dirp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: S_ISDIR
    functionSourceFile: /src/nss/lib/dbm/src/dirent.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISDIR(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: S_ISREG
    functionSourceFile: /src/nss/lib/dbm/src/dirent.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISREG(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/nss/lib/dbm/src/snprintf.c:22,1
    - Dst: vsprintf
      Src: /src/nss/lib/dbm/src/snprintf.c:24,1
    - Dst: va_end
      Src: /src/nss/lib/dbm/src/snprintf.c:25,1
    - Dst: strlen
      Src: /src/nss/lib/dbm/src/snprintf.c:26,1
    - Dst: vsprintf
      Src: /src/nss/lib/dbm/src/snprintf.c:28,1
    - Dst: va_end
      Src: /src/nss/lib/dbm/src/snprintf.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - str
    - n
    - fmt
    argTypes:
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 32
    functionName: snprintf
    functionSourceFile: /src/nss/lib/dbm/src/snprintf.c
    functionUses: 97
    functionsReached:
    - va_end
    - vsprintf
    - va_start
    - strlen
    linkageType: ''
    returnType: int
    signature: int snprintf(char *str, size_t n, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 358
    functionName: M_32_SWAP
    functionSourceFile: /src/nss/lib/dbm/include/mcom_db.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: M_32_SWAP(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 366
    functionName: P_32_SWAP
    functionSourceFile: /src/nss/lib/dbm/include/mcom_db.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: P_32_SWAP(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 373
    functionName: P_32_COPY
    functionSourceFile: /src/nss/lib/dbm/include/mcom_db.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: P_32_COPY(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 386
    functionName: M_16_SWAP
    functionSourceFile: /src/nss/lib/dbm/include/mcom_db.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: M_16_SWAP(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 392
    functionName: P_16_SWAP
    functionSourceFile: /src/nss/lib/dbm/include/mcom_db.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: P_16_SWAP(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 397
    functionName: P_16_COPY
    functionSourceFile: /src/nss/lib/dbm/include/mcom_db.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: P_16_COPY(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: IS_BUCKET
    functionSourceFile: /src/nss/lib/dbm/include/hash.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_BUCKET(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - path
    - ','
    - flag
    - ','
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: DBFILE_OPEN
    functionSourceFile: /src/nss/lib/dbm/include/hash.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DBFILE_OPEN(path, flag, mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - path
    - ','
    - flag
    - ','
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: DBFILE_OPEN
    functionSourceFile: /src/nss/lib/dbm/include/hash.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DBFILE_OPEN(path, flag, mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 166
    functionName: PTROF
    functionSourceFile: /src/nss/lib/dbm/include/hash.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTROF(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 169
    functionName: ISDISK
    functionSourceFile: /src/nss/lib/dbm/include/hash.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISDISK(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - A
    - ','
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 174
    functionName: CLRBIT
    functionSourceFile: /src/nss/lib/dbm/include/hash.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLRBIT(A, N)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - A
    - ','
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 175
    functionName: SETBIT
    functionSourceFile: /src/nss/lib/dbm/include/hash.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SETBIT(A, N)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - A
    - ','
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 176
    functionName: ISSET
    functionSourceFile: /src/nss/lib/dbm/include/hash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISSET(A, N)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 189
    functionName: SPLITNUM
    functionSourceFile: /src/nss/lib/dbm/include/hash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPLITNUM(N)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 190
    functionName: OPAGENUM
    functionSourceFile: /src/nss/lib/dbm/include/hash.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OPAGENUM(N)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - S
    - ','
    - O
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 191
    functionName: OADDR_OF
    functionSourceFile: /src/nss/lib/dbm/include/hash.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OADDR_OF(S, O)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 194
    functionName: BUCKET_TO_PAGE
    functionSourceFile: /src/nss/lib/dbm/include/hash.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUCKET_TO_PAGE(B)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 196
    functionName: OADDR_TO_PAGE
    functionSourceFile: /src/nss/lib/dbm/include/hash.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OADDR_TO_PAGE(B)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: S_ISDIR
    functionSourceFile: /src/nss/lib/dbm/include/winfile.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISDIR(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 96
    functionName: S_ISDIR
    functionSourceFile: /src/nss/lib/dbm/include/winfile.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISDIR(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - set
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: sigemptyset
    functionSourceFile: /src/nss/lib/dbm/include/ncompat.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sigemptyset(set)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - set
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: sigfillset
    functionSourceFile: /src/nss/lib/dbm/include/ncompat.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sigfillset(set)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - set
    - ','
    - signo
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: sigaddset
    functionSourceFile: /src/nss/lib/dbm/include/ncompat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sigaddset(set, signo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - set
    - ','
    - signo
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: sigdelset
    functionSourceFile: /src/nss/lib/dbm/include/ncompat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sigdelset(set, signo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - set
    - ','
    - signo
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: sigismember
    functionSourceFile: /src/nss/lib/dbm/include/ncompat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sigismember(set, signo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - how
    - ','
    - set
    - ','
    - oset
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 99
    functionName: sigprocmask
    functionSourceFile: /src/nss/lib/dbm/include/ncompat.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sigprocmask(how, set, oset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 113
    functionName: index
    functionSourceFile: /src/nss/lib/dbm/include/ncompat.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: index(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: rindex
    functionSourceFile: /src/nss/lib/dbm/include/ncompat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rindex(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 115
    functionName: bzero
    functionSourceFile: /src/nss/lib/dbm/include/ncompat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bzero(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 116
    functionName: bcmp
    functionSourceFile: /src/nss/lib/dbm/include/ncompat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bcmp(a, b, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 117
    functionName: bcopy
    functionSourceFile: /src/nss/lib/dbm/include/ncompat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bcopy(a, b, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 121
    functionName: strchr
    functionSourceFile: /src/nss/lib/dbm/include/ncompat.h
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: strchr(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 122
    functionName: strrchr
    functionSourceFile: /src/nss/lib/dbm/include/ncompat.h
    functionUses: 47
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: strrchr(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 123
    functionName: memcmp
    functionSourceFile: /src/nss/lib/dbm/include/ncompat.h
    functionUses: 42
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: memcmp(a, b, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 124
    functionName: memmove
    functionSourceFile: /src/nss/lib/dbm/include/ncompat.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: memmove(a, b, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 163
    functionName: WCOREDUMP
    functionSourceFile: /src/nss/lib/dbm/include/ncompat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WCOREDUMP(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _a
    - ','
    - _b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 195
    functionName: MAX
    functionSourceFile: /src/nss/lib/dbm/include/ncompat.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAX(_a, _b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _a
    - ','
    - _b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 198
    functionName: MIN
    functionSourceFile: /src/nss/lib/dbm/include/ncompat.h
    functionUses: 55
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIN(_a, _b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 208
    functionName: S_ISDIR
    functionSourceFile: /src/nss/lib/dbm/include/ncompat.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISDIR(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 209
    functionName: S_ISCHR
    functionSourceFile: /src/nss/lib/dbm/include/ncompat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISCHR(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 210
    functionName: S_ISBLK
    functionSourceFile: /src/nss/lib/dbm/include/ncompat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISBLK(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 211
    functionName: S_ISREG
    functionSourceFile: /src/nss/lib/dbm/include/ncompat.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISREG(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 212
    functionName: S_ISFIFO
    functionSourceFile: /src/nss/lib/dbm/include/ncompat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISFIFO(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 215
    functionName: S_ISLNK
    functionSourceFile: /src/nss/lib/dbm/include/ncompat.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISLNK(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 216
    functionName: S_ISSOCK
    functionSourceFile: /src/nss/lib/dbm/include/ncompat.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_ISSOCK(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: LIST_ENTRY
    functionSourceFile: /src/nss/lib/dbm/include/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_ENTRY(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: LIST_INIT
    functionSourceFile: /src/nss/lib/dbm/include/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_INIT(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - listelm
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 96
    functionName: LIST_INSERT_AFTER
    functionSourceFile: /src/nss/lib/dbm/include/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_INSERT_AFTER(listelm, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 104
    functionName: LIST_INSERT_HEAD
    functionSourceFile: /src/nss/lib/dbm/include/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_INSERT_HEAD(head, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 112
    functionName: LIST_REMOVE
    functionSourceFile: /src/nss/lib/dbm/include/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIST_REMOVE(elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 118
    functionName: TAILQ_HEAD
    functionSourceFile: /src/nss/lib/dbm/include/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_HEAD(name, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 124
    functionName: TAILQ_ENTRY
    functionSourceFile: /src/nss/lib/dbm/include/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_ENTRY(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 136
    functionName: TAILQ_INIT
    functionSourceFile: /src/nss/lib/dbm/include/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_INIT(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 147
    functionName: TAILQ_INSERT_HEAD
    functionSourceFile: /src/nss/lib/dbm/include/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_INSERT_HEAD(head, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 155
    functionName: TAILQ_INSERT_TAIL
    functionSourceFile: /src/nss/lib/dbm/include/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_INSERT_TAIL(head, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - head
    - ','
    - listelm
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 166
    functionName: TAILQ_INSERT_AFTER
    functionSourceFile: /src/nss/lib/dbm/include/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_INSERT_AFTER(head, listelm, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 176
    functionName: TAILQ_REMOVE
    functionSourceFile: /src/nss/lib/dbm/include/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TAILQ_REMOVE(head, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 182
    functionName: CIRCLEQ_HEAD
    functionSourceFile: /src/nss/lib/dbm/include/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CIRCLEQ_HEAD(name, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 188
    functionName: CIRCLEQ_ENTRY
    functionSourceFile: /src/nss/lib/dbm/include/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CIRCLEQ_ENTRY(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 200
    functionName: CIRCLEQ_INIT
    functionSourceFile: /src/nss/lib/dbm/include/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CIRCLEQ_INIT(head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - head
    - ','
    - listelm
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 211
    functionName: CIRCLEQ_INSERT_AFTER
    functionSourceFile: /src/nss/lib/dbm/include/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CIRCLEQ_INSERT_AFTER(head, listelm, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - head
    - ','
    - listelm
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 222
    functionName: CIRCLEQ_INSERT_BEFORE
    functionSourceFile: /src/nss/lib/dbm/include/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CIRCLEQ_INSERT_BEFORE(head, listelm, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 233
    functionName: CIRCLEQ_INSERT_HEAD
    functionSourceFile: /src/nss/lib/dbm/include/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CIRCLEQ_INSERT_HEAD(head, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 244
    functionName: CIRCLEQ_INSERT_TAIL
    functionSourceFile: /src/nss/lib/dbm/include/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CIRCLEQ_INSERT_TAIL(head, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - head
    - ','
    - elm
    - ','
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 258
    functionName: CIRCLEQ_REMOVE
    functionSourceFile: /src/nss/lib/dbm/include/queue.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CIRCLEQ_REMOVE(head, elm, field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - K
    - ','
    - D
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: PAIRSIZE
    functionSourceFile: /src/nss/lib/dbm/include/page.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAIRSIZE(K, D)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - K
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: KEYSIZE
    functionSourceFile: /src/nss/lib/dbm/include/page.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KEYSIZE(K)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - P
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: FREESPACE
    functionSourceFile: /src/nss/lib/dbm/include/page.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FREESPACE(P)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - P
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: OFFSET
    functionSourceFile: /src/nss/lib/dbm/include/page.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OFFSET(P)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - P
    - ','
    - K
    - ','
    - D
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: PAIRFITS
    functionSourceFile: /src/nss/lib/dbm/include/page.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAIRFITS(P, K, D)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: PAGE_META
    functionSourceFile: /src/nss/lib/dbm/include/page.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAGE_META(N)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lst
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 32
    functionName: ZZ_InitList
    functionSourceFile: /src/nss/lib/jar/jar-ds.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZZ_InitList(lst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lst
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: ZZ_ListEmpty
    functionSourceFile: /src/nss/lib/jar/jar-ds.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZZ_ListEmpty(lst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lst
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: ZZ_ListHead
    functionSourceFile: /src/nss/lib/jar/jar-ds.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZZ_ListHead(lst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lst
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: ZZ_ListTail
    functionSourceFile: /src/nss/lib/jar/jar-ds.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZZ_ListTail(lst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lst
    - ','
    - lnk
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: ZZ_ListIterDone
    functionSourceFile: /src/nss/lib/jar/jar-ds.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZZ_ListIterDone(lst, lnk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lst
    - ','
    - lnk
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 48
    functionName: ZZ_AppendLink
    functionSourceFile: /src/nss/lib/jar/jar-ds.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZZ_AppendLink(lst, lnk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - lst
    - ','
    - lnk
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 56
    functionName: ZZ_InsertLink
    functionSourceFile: /src/nss/lib/jar/jar-ds.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZZ_InsertLink(lst, lnk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - lnk
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 64
    functionName: ZZ_RemoveLink
    functionSourceFile: /src/nss/lib/jar/jar-ds.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ZZ_RemoveLink(lnk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - args
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 121
    functionName: OF
    functionSourceFile: /src/nss/lib/jar/jzconf.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OF(args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - args
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 123
    functionName: OF
    functionSourceFile: /src/nss/lib/jar/jzconf.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OF(args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 186
    functionName: PR_PUBLIC_API
    functionSourceFile: /src/nss/lib/jar/jzconf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PR_PUBLIC_API(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - list
    - ','
    - type
    - ','
    - pathname
    - ','
    - data
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 38
    functionName: ADDITEM
    functionSourceFile: /src/nss/lib/jar/jarint.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADDITEM(list, type, pathname, data, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fn
    - ','
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: JAR_FOPEN
    functionSourceFile: /src/nss/lib/jar/jarint.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JAR_FOPEN(fn, mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ii
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: x86ShortToUint32
    functionSourceFile: /src/nss/lib/jar/jarfile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: x86ShortToUint32(ii)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ii
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: x86LongToUint32
    functionSourceFile: /src/nss/lib/jar/jarfile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: x86LongToUint32(ii)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: JAR_FOPEN
      Src: /src/nss/lib/jar/jarfile.c:110,1
    - Dst: jar_guess_jar
      Src: /src/nss/lib/jar/jarfile.c:112,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/jar/jarfile.c:115,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/jar/jarfile.c:116,1
    - Dst: jar_gen_index
      Src: /src/nss/lib/jar/jarfile.c:118,1
    - Dst: jar_extract_manifests
      Src: /src/nss/lib/jar/jarfile.c:120,1
    - Dst: JAR_FCLOSE
      Src: /src/nss/lib/jar/jarfile.c:122,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - jar
    - format
    - filename
    - url
    argTypes:
    - JAR*
    - jarArch
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 131
    functionName: JAR_pass_archive
    functionSourceFile: /src/nss/lib/jar/jarfile.c
    functionUses: 3
    functionsReached:
    - jar_gen_index
    - JAR_FOPEN
    - jar_guess_jar
    - jar_extract_manifests
    - PORT_Strdup
    - JAR_FCLOSE
    linkageType: ''
    returnType: int
    signature: int JAR_pass_archive(JAR *jar, jarArch format, char *filename, const
      char *url)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: JAR_FOPEN
      Src: /src/nss/lib/jar/jarfile.c:150,1
    - Dst: jar_guess_jar
      Src: /src/nss/lib/jar/jarfile.c:152,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/jar/jarfile.c:156,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/jar/jarfile.c:157,1
    - Dst: jar_gen_index
      Src: /src/nss/lib/jar/jarfile.c:159,1
    - Dst: jar_extract_mf
      Src: /src/nss/lib/jar/jarfile.c:161,1
    - Dst: JAR_FCLOSE
      Src: /src/nss/lib/jar/jarfile.c:164,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - jar
    - format
    - filename
    - url
    argTypes:
    - JAR*
    - jarArch
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 174
    functionName: JAR_pass_archive_unverified
    functionSourceFile: /src/nss/lib/jar/jarfile.c
    functionUses: 1
    functionsReached:
    - jar_extract_mf
    - jar_gen_index
    - JAR_FOPEN
    - jar_guess_jar
    - PORT_Strdup
    - JAR_FCLOSE
    linkageType: ''
    returnType: int
    signature: "int JAR_pass_archive_unverified(JAR *jar, jarArch format, char *filename,\n
      \                           const char *url)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JAR_extract
      Src: /src/nss/lib/jar/jarfile.c:188,1
    - Dst: jar_verify_extract
      Src: /src/nss/lib/jar/jarfile.c:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - jar
    - path
    - outpath
    argTypes:
    - JAR*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 193
    functionName: JAR_verified_extract
    functionSourceFile: /src/nss/lib/jar/jarfile.c
    functionUses: 3
    functionsReached:
    - jar_verify_extract
    - JAR_extract
    linkageType: ''
    returnType: int
    signature: int JAR_verified_extract(JAR *jar, char *path, char *outpath)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: JAR_FOPEN
      Src: /src/nss/lib/jar/jarfile.c:202,1
    - Dst: jar_get_physical
      Src: /src/nss/lib/jar/jarfile.c:209,1
    - Dst: jar_physical_extraction
      Src: /src/nss/lib/jar/jarfile.c:212,1
    - Dst: jar_physical_inflate
      Src: /src/nss/lib/jar/jarfile.c:217,1
    - Dst: chmod
      Src: /src/nss/lib/jar/jarfile.c:224,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - jar
    - path
    - outpath
    argTypes:
    - JAR*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 231
    functionName: JAR_extract
    functionSourceFile: /src/nss/lib/jar/jarfile.c
    functionUses: 4
    functionsReached:
    - jar_physical_extraction
    - JAR_FOPEN
    - jar_get_physical
    - jar_physical_inflate
    - chmod
    linkageType: ''
    returnType: int
    signature: int JAR_extract(JAR *jar, char *path, char *outpath)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/jar/jarfile.c:249,1
    - Dst: JAR_FOPEN
      Src: /src/nss/lib/jar/jarfile.c:255,1
    - Dst: JAR_FSEEK
      Src: /src/nss/lib/jar/jarfile.c:258,1
    - Dst: JAR_FREAD
      Src: /src/nss/lib/jar/jarfile.c:261,1
    - Dst: JAR_FWRITE
      Src: /src/nss/lib/jar/jarfile.c:266,1
    - Dst: JAR_FCLOSE
      Src: /src/nss/lib/jar/jarfile.c:272,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jarfile.c:277,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - fp
    - outpath
    - offset
    - length
    argTypes:
    - JAR_FILE
    - char*
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 279
    functionName: jar_physical_extraction
    functionSourceFile: /src/nss/lib/jar/jarfile.c
    functionUses: 1
    functionsReached:
    - JAR_FOPEN
    - PORT_Free
    - PORT_ZAlloc
    - JAR_FSEEK
    - JAR_FREAD
    - JAR_FWRITE
    - JAR_FCLOSE
    linkageType: ''
    returnType: int
    signature: "int jar_physical_extraction(JAR_FILE fp, char *outpath, unsigned long
      offset,\n                        unsigned long length)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/jar/jarfile.c:303,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/jar/jarfile.c:306,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/jar/jarfile.c:311,1
    - Dst: inflateInit2
      Src: /src/nss/lib/jar/jarfile.c:312,1
    - Dst: JAR_FOPEN
      Src: /src/nss/lib/jar/jarfile.c:318,1
    - Dst: JAR_FSEEK
      Src: /src/nss/lib/jar/jarfile.c:322,1
    - Dst: JAR_FREAD
      Src: /src/nss/lib/jar/jarfile.c:327,1
    - Dst: JAR_FCLOSE
      Src: /src/nss/lib/jar/jarfile.c:329,1
    - Dst: inflate
      Src: /src/nss/lib/jar/jarfile.c:348,1
    - Dst: JAR_FCLOSE
      Src: /src/nss/lib/jar/jarfile.c:351,1
    - Dst: JAR_FWRITE
      Src: /src/nss/lib/jar/jarfile.c:356,1
    - Dst: JAR_FCLOSE
      Src: /src/nss/lib/jar/jarfile.c:368,1
    - Dst: inflateEnd
      Src: /src/nss/lib/jar/jarfile.c:369,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jarfile.c:379,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jarfile.c:382,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 69
    argCount: 5
    argNames:
    - fp
    - outpath
    - offset
    - length
    - method
    argTypes:
    - JAR_FILE
    - char*
    - unsigned long
    - unsigned long
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 293
    functionDepth: 5
    functionLinenumber: 293
    functionLinenumberEnd: 385
    functionName: jar_physical_inflate
    functionSourceFile: /src/nss/lib/jar/jarfile.c
    functionUses: 1
    functionsReached:
    - inflate
    - JAR_FOPEN
    - PORT_Free
    - JAR_FWRITE
    - PORT_ZAlloc
    - JAR_FSEEK
    - JAR_FREAD
    - inflateEnd
    - inflateInit2
    - PORT_Memset
    - JAR_FCLOSE
    linkageType: ''
    returnType: int
    signature: "int jar_physical_inflate(JAR_FILE fp, char *outpath, unsigned long
      offset, unsigned long length,\n                     unsigned int method)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/jar/jarfile.c:399,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/jar/jarfile.c:407,1
    - Dst: inflateInit2
      Src: /src/nss/lib/jar/jarfile.c:408,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jarfile.c:411,1
    - Dst: inflate
      Src: /src/nss/lib/jar/jarfile.c:420,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jarfile.c:423,1
    - Dst: inflateEnd
      Src: /src/nss/lib/jar/jarfile.c:427,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jarfile.c:430,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jarfile.c:433,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 4
    argNames:
    - method
    - length
    - expected_out_len
    - data
    argTypes:
    - unsigned int
    - long*
    - long
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 394
    functionDepth: 5
    functionLinenumber: 394
    functionLinenumberEnd: 437
    functionName: jar_inflate_memory
    functionSourceFile: /src/nss/lib/jar/jarfile.c
    functionUses: 0
    functionsReached:
    - inflate
    - PORT_Free
    - PORT_ZAlloc
    - inflateEnd
    - inflateInit2
    - PORT_Memset
    linkageType: ''
    returnType: int
    signature: "int jar_inflate_memory(unsigned int method, long *length, long expected_out_len,\n
      \                  char **data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memset
      Src: /src/nss/lib/jar/jarfile.c:451,1
    - Dst: JAR_digest_file
      Src: /src/nss/lib/jar/jarfile.c:452,1
    - Dst: JAR_verify_digest
      Src: /src/nss/lib/jar/jarfile.c:454,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - jar
    - path
    - physical_path
    argTypes:
    - JAR*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 456
    functionName: jar_verify_extract
    functionSourceFile: /src/nss/lib/jar/jarfile.c
    functionUses: 1
    functionsReached:
    - PORT_Memset
    - JAR_digest_file
    - JAR_verify_digest
    linkageType: ''
    returnType: int
    signature: int jar_verify_extract(JAR *jar, char *path, char *physical_path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ZZ_ListEmpty
      Src: /src/nss/lib/jar/jarfile.c:471,1
    - Dst: ZZ_ListHead
      Src: /src/nss/lib/jar/jarfile.c:474,1
    - Dst: ZZ_ListIterDone
      Src: /src/nss/lib/jar/jarfile.c:475,1
    - Dst: PORT_Strcmp
      Src: /src/nss/lib/jar/jarfile.c:480,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - jar
    - pathname
    argTypes:
    - JAR*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 465
    functionDepth: 1
    functionLinenumber: 465
    functionLinenumberEnd: 486
    functionName: jar_get_physical
    functionSourceFile: /src/nss/lib/jar/jarfile.c
    functionUses: 1
    functionsReached:
    - ZZ_ListEmpty
    - ZZ_ListHead
    - ZZ_ListIterDone
    - PORT_Strcmp
    linkageType: ''
    returnType: JAR_Physical
    signature: 'JAR_Physical *

      jar_get_physical(JAR *jar, char *pathname)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: jar_extract_mf
      Src: /src/nss/lib/jar/jarfile.c:503,1
    - Dst: jar_extract_mf
      Src: /src/nss/lib/jar/jarfile.c:507,1
    - Dst: jar_extract_mf
      Src: /src/nss/lib/jar/jarfile.c:511,1
    - Dst: jar_extract_mf
      Src: /src/nss/lib/jar/jarfile.c:514,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 3
    argNames:
    - jar
    - format
    - fp
    argTypes:
    - JAR*
    - jarArch
    - JAR_FILE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 495
    functionDepth: 1
    functionLinenumber: 495
    functionLinenumberEnd: 519
    functionName: jar_extract_manifests
    functionSourceFile: /src/nss/lib/jar/jarfile.c
    functionUses: 1
    functionsReached:
    - jar_extract_mf
    linkageType: ''
    returnType: int
    signature: int jar_extract_manifests(JAR *jar, jarArch format, JAR_FILE fp)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: ZZ_ListEmpty
      Src: /src/nss/lib/jar/jarfile.c:536,1
    - Dst: ZZ_ListHead
      Src: /src/nss/lib/jar/jarfile.c:539,1
    - Dst: ZZ_ListIterDone
      Src: /src/nss/lib/jar/jarfile.c:540,1
    - Dst: PORT_Strncmp
      Src: /src/nss/lib/jar/jarfile.c:545,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/jar/jarfile.c:553,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/lib/jar/jarfile.c:570,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/jar/jarfile.c:582,1
    - Dst: JAR_FSEEK
      Src: /src/nss/lib/jar/jarfile.c:586,1
    - Dst: JAR_FREAD
      Src: /src/nss/lib/jar/jarfile.c:587,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jarfile.c:590,1
    - Dst: jar_inflate_memory
      Src: /src/nss/lib/jar/jarfile.c:598,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jarfile.c:603,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jarfile.c:608,1
    - Dst: JAR_parse_manifest
      Src: /src/nss/lib/jar/jarfile.c:613,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jarfile.c:615,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 55
    argCount: 4
    argNames:
    - jar
    - format
    - fp
    - ext
    argTypes:
    - JAR*
    - jarArch
    - JAR_FILE
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 529
    functionDepth: 6
    functionLinenumber: 529
    functionLinenumberEnd: 625
    functionName: jar_extract_mf
    functionSourceFile: /src/nss/lib/jar/jarfile.c
    functionUses: 2
    functionsReached:
    - JAR_parse_manifest
    - PORT_Strcasecmp
    - jar_inflate_memory
    - PORT_Strncmp
    - PORT_Free
    - PORT_ZAlloc
    - ZZ_ListIterDone
    - PORT_Strlen
    - JAR_FSEEK
    - JAR_FREAD
    - ZZ_ListEmpty
    - ZZ_ListHead
    linkageType: ''
    returnType: int
    signature: int jar_extract_mf(JAR *jar, jarArch format, JAR_FILE fp, char *ext)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: JAR_FSEEK
      Src: /src/nss/lib/jar/jarfile.c:639,1
    - Dst: jar_listzip
      Src: /src/nss/lib/jar/jarfile.c:642,1
    - Dst: jar_listtar
      Src: /src/nss/lib/jar/jarfile.c:646,1
    - Dst: JAR_FSEEK
      Src: /src/nss/lib/jar/jarfile.c:653,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - jar
    - format
    - fp
    argTypes:
    - JAR*
    - jarArch
    - JAR_FILE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 634
    functionDepth: 1
    functionLinenumber: 634
    functionLinenumberEnd: 655
    functionName: jar_gen_index
    functionSourceFile: /src/nss/lib/jar/jarfile.c
    functionUses: 2
    functionsReached:
    - jar_listzip
    - jar_listtar
    - JAR_FSEEK
    linkageType: ''
    returnType: int
    signature: int jar_gen_index(JAR *jar, jarArch format, JAR_FILE fp)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZNew
      Src: /src/nss/lib/jar/jarfile.c:670,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/jar/jarfile.c:671,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/jar/jarfile.c:672,1
    - Dst: JAR_FSEEK
      Src: /src/nss/lib/jar/jarfile.c:691,1
    - Dst: JAR_FREAD
      Src: /src/nss/lib/jar/jarfile.c:693,1
    - Dst: JAR_FSEEK
      Src: /src/nss/lib/jar/jarfile.c:699,1
    - Dst: x86LongToUint32
      Src: /src/nss/lib/jar/jarfile.c:700,1
    - Dst: JAR_FREAD
      Src: /src/nss/lib/jar/jarfile.c:702,1
    - Dst: x86ShortToUint32
      Src: /src/nss/lib/jar/jarfile.c:704,1
    - Dst: x86ShortToUint32
      Src: /src/nss/lib/jar/jarfile.c:705,1
    - Dst: JAR_FREAD
      Src: /src/nss/lib/jar/jarfile.c:712,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/jar/jarfile.c:719,1
    - Dst: x86ShortToUint32
      Src: /src/nss/lib/jar/jarfile.c:727,1
    - Dst: x86LongToUint32
      Src: /src/nss/lib/jar/jarfile.c:732,1
    - Dst: x86LongToUint32
      Src: /src/nss/lib/jar/jarfile.c:733,1
    - Dst: dosdate
      Src: /src/nss/lib/jar/jarfile.c:735,1
    - Dst: dostime
      Src: /src/nss/lib/jar/jarfile.c:736,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/jar/jarfile.c:738,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/jar/jarfile.c:744,1
    - Dst: ZZ_NewLink
      Src: /src/nss/lib/jar/jarfile.c:749,1
    - Dst: ZZ_AppendLink
      Src: /src/nss/lib/jar/jarfile.c:755,1
    - Dst: JAR_FREAD
      Src: /src/nss/lib/jar/jarfile.c:761,1
    - Dst: x86ShortToUint32
      Src: /src/nss/lib/jar/jarfile.c:773,1
    - Dst: JAR_FREAD
      Src: /src/nss/lib/jar/jarfile.c:780,1
    - Dst: jar_get_physical
      Src: /src/nss/lib/jar/jarfile.c:788,1
    - Dst: x86ShortToUint32
      Src: /src/nss/lib/jar/jarfile.c:796,1
    - Dst: x86ShortToUint32
      Src: /src/nss/lib/jar/jarfile.c:797,1
    - Dst: x86ShortToUint32
      Src: /src/nss/lib/jar/jarfile.c:798,1
    - Dst: JAR_FREAD
      Src: /src/nss/lib/jar/jarfile.c:800,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jarfile.c:814,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jarfile.c:816,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jarfile.c:818,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jarfile.c:820,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 113
    argCount: 2
    argNames:
    - jar
    - fp
    argTypes:
    - JAR*
    - JAR_FILE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 664
    functionDepth: 2
    functionLinenumber: 664
    functionLinenumberEnd: 822
    functionName: jar_listzip
    functionSourceFile: /src/nss/lib/jar/jarfile.c
    functionUses: 1
    functionsReached:
    - dosdate
    - ZZ_NewLink
    - PORT_ZNew
    - jar_get_physical
    - PORT_Free
    - JAR_FSEEK
    - dostime
    - JAR_FREAD
    - x86LongToUint32
    - x86ShortToUint32
    - PORT_Strdup
    - ZZ_AppendLink
    linkageType: ''
    returnType: int
    signature: int jar_listzip(JAR *jar, JAR_FILE fp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: JAR_FSEEK
      Src: /src/nss/lib/jar/jarfile.c:841,1
    - Dst: JAR_FREAD
      Src: /src/nss/lib/jar/jarfile.c:843,1
    - Dst: octalToLong
      Src: /src/nss/lib/jar/jarfile.c:849,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/jar/jarfile.c:858,1
    - Dst: ADDITEM
      Src: /src/nss/lib/jar/jarfile.c:866,1
    - Dst: PR_ROUNDUP
      Src: /src/nss/lib/jar/jarfile.c:870,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - jar
    - fp
    argTypes:
    - JAR*
    - JAR_FILE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 831
    functionDepth: 1
    functionLinenumber: 831
    functionLinenumberEnd: 875
    functionName: jar_listtar
    functionSourceFile: /src/nss/lib/jar/jarfile.c
    functionUses: 1
    functionsReached:
    - ADDITEM
    - PORT_ZNew
    - octalToLong
    - JAR_FSEEK
    - JAR_FREAD
    - PR_ROUNDUP
    linkageType: ''
    returnType: int
    signature: int jar_listtar(JAR *jar, JAR_FILE fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: x86ShortToUint32
      Src: /src/nss/lib/jar/jarfile.c:887,1
    - Dst: PR_snprintf
      Src: /src/nss/lib/jar/jarfile.c:889,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - date
    - s
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 884
    functionDepth: 1
    functionLinenumber: 884
    functionLinenumberEnd: 892
    functionName: dosdate
    functionSourceFile: /src/nss/lib/jar/jarfile.c
    functionUses: 1
    functionsReached:
    - PR_snprintf
    - x86ShortToUint32
    linkageType: ''
    returnType: int
    signature: int dosdate(char *date, const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: x86ShortToUint32
      Src: /src/nss/lib/jar/jarfile.c:904,1
    - Dst: PR_snprintf
      Src: /src/nss/lib/jar/jarfile.c:906,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - time
    - s
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 901
    functionDepth: 1
    functionLinenumber: 901
    functionLinenumberEnd: 909
    functionName: dostime
    functionSourceFile: /src/nss/lib/jar/jarfile.c
    functionUses: 1
    functionsReached:
    - PR_snprintf
    - x86ShortToUint32
    linkageType: ''
    returnType: int
    signature: int dostime(char *time, const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 915
    functionDepth: 0
    functionLinenumber: 915
    functionLinenumberEnd: 921
    functionName: x86ShortToUint32
    functionSourceFile: /src/nss/lib/jar/jarfile.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: PRUint32
    signature: PRUint32 x86ShortToUint32(const void *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 926
    functionDepth: 0
    functionLinenumber: 926
    functionLinenumberEnd: 937
    functionName: x86LongToUint32
    functionSourceFile: /src/nss/lib/jar/jarfile.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: PRUint32
    signature: PRUint32 x86LongToUint32(const void *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 957
      start: 945
    functionDepth: 0
    functionLinenumber: 945
    functionLinenumberEnd: 957
    functionName: octalToLong
    functionSourceFile: /src/nss/lib/jar/jarfile.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long octalToLong(const char *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strlen
      Src: /src/nss/lib/jar/jarfile.c:970,1
    - Dst: PL_strcasecmp
      Src: /src/nss/lib/jar/jarfile.c:973,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - filename
    - fp
    argTypes:
    - char*
    - JAR_FILE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 967
    functionDepth: 1
    functionLinenumber: 967
    functionLinenumberEnd: 976
    functionName: jar_guess_jar
    functionSourceFile: /src/nss/lib/jar/jarfile.c
    functionUses: 2
    functionsReached:
    - PL_strcasecmp
    - PORT_Strlen
    linkageType: ''
    returnType: int
    signature: int jar_guess_jar(const char *filename, JAR_FILE fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JAR_init_callbacks
      Src: /src/nss/lib/jar/jarnav.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: JAR_init
    functionSourceFile: /src/nss/lib/jar/jarnav.c
    functionUses: 0
    functionsReached:
    - JAR_init_callbacks
    linkageType: ''
    returnType: void
    signature: void JAR_init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: jar_fn_GetInitContext
      Src: /src/nss/lib/jar/jarnav.c:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - jar
    - mw
    argTypes:
    - JAR*
    - MWContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 63
    functionName: JAR_set_context
    functionSourceFile: /src/nss/lib/jar/jarnav.c
    functionUses: 0
    functionsReached:
    - jar_fn_GetInitContext
    linkageType: ''
    returnType: int
    signature: int JAR_set_context(JAR *jar, MWContext *mw)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/jar/jarsign.c:97,1
    - Dst: JAR_FOPEN
      Src: /src/nss/lib/jar/jarsign.c:106,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jarsign.c:108,1
    - Dst: PK11_CreateDigestContext
      Src: /src/nss/lib/jar/jarsign.c:112,1
    - Dst: PK11_CreateDigestContext
      Src: /src/nss/lib/jar/jarsign.c:113,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/jar/jarsign.c:117,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/jar/jarsign.c:120,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jarsign.c:123,1
    - Dst: JAR_FCLOSE
      Src: /src/nss/lib/jar/jarsign.c:124,1
    - Dst: PK11_DigestBegin
      Src: /src/nss/lib/jar/jarsign.c:128,1
    - Dst: PK11_DigestBegin
      Src: /src/nss/lib/jar/jarsign.c:129,1
    - Dst: JAR_FREAD
      Src: /src/nss/lib/jar/jarsign.c:132,1
    - Dst: PK11_DigestOp
      Src: /src/nss/lib/jar/jarsign.c:135,1
    - Dst: PK11_DigestOp
      Src: /src/nss/lib/jar/jarsign.c:136,1
    - Dst: PK11_DigestFinal
      Src: /src/nss/lib/jar/jarsign.c:139,1
    - Dst: PK11_DigestFinal
      Src: /src/nss/lib/jar/jarsign.c:140,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/jar/jarsign.c:142,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/jar/jarsign.c:143,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jarsign.c:145,1
    - Dst: JAR_FCLOSE
      Src: /src/nss/lib/jar/jarsign.c:146,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 2
    argNames:
    - filename
    - dig
    argTypes:
    - char*
    - JAR_Digest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 91
    functionDepth: 9
    functionLinenumber: 91
    functionLinenumberEnd: 149
    functionName: JAR_digest_file
    functionSourceFile: /src/nss/lib/jar/jarsign.c
    functionUses: 2
    functionsReached:
    - PK11_DestroyContext
    - JAR_FOPEN
    - PK11_DigestOp
    - PK11_CreateDigestContext
    - PORT_Free
    - PORT_ZAlloc
    - JAR_FREAD
    - PK11_DigestBegin
    - PK11_DigestFinal
    - JAR_FCLOSE
    linkageType: ''
    returnType: int
    signature: int JAR_digest_file(char *filename, JAR_Digest *dig)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 160
    functionName: jar_open_key_database
    functionSourceFile: /src/nss/lib/jar/jarsign.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void *

      jar_open_key_database(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - keydb
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 167
    functionName: jar_close_key_database
    functionSourceFile: /src/nss/lib/jar/jarsign.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int jar_close_key_database(void *keydb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JAR_FWRITE
      Src: /src/nss/lib/jar/jarsign.c:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - arg
    - buf
    - len
    argTypes:
    - void*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 178
    functionName: jar_pk7_out
    functionSourceFile: /src/nss/lib/jar/jarsign.c
    functionUses: 0
    functionsReached:
    - JAR_FWRITE
    linkageType: ''
    returnType: void
    signature: void jar_pk7_out(void *arg, const char *buf, unsigned long len)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: HASH_GetHashObject
      Src: /src/nss/lib/jar/jarsign.c:199,1
    - Dst: JAR_FREAD
      Src: /src/nss/lib/jar/jarsign.c:207,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/jar/jarsign.c:221,1
    - Dst: SEC_PKCS7CreateSignedData
      Src: /src/nss/lib/jar/jarsign.c:222,1
    - Dst: SEC_PKCS7IncludeCertChain
      Src: /src/nss/lib/jar/jarsign.c:227,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/jar/jarsign.c:229,1
    - Dst: SEC_PKCS7DestroyContentInfo
      Src: /src/nss/lib/jar/jarsign.c:230,1
    - Dst: SEC_PKCS7AddSigningTime
      Src: /src/nss/lib/jar/jarsign.c:235,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/jar/jarsign.c:237,1
    - Dst: SEC_PKCS7Encode
      Src: /src/nss/lib/jar/jarsign.c:240,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/jar/jarsign.c:242,1
    - Dst: SEC_PKCS7DestroyContentInfo
      Src: /src/nss/lib/jar/jarsign.c:243,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 6
    argNames:
    - certdb
    - keydb
    - cert
    - password
    - infp
    - outfp
    argTypes:
    - CERTCertDBHandle*
    - void*
    - CERTCertificate*
    - char*
    - JAR_FILE
    - JAR_FILE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 248
    functionName: jar_create_pk7
    functionSourceFile: /src/nss/lib/jar/jarsign.c
    functionUses: 0
    functionsReached:
    - SEC_PKCS7Encode
    - HASH_GetHashObject
    - SEC_PKCS7DestroyContentInfo
    - SEC_PKCS7CreateSignedData
    - PORT_GetError
    - JAR_FREAD
    - PORT_SetError
    - SEC_PKCS7AddSigningTime
    - SEC_PKCS7IncludeCertChain
    linkageType: ''
    returnType: int
    signature: "int jar_create_pk7(CERTCertDBHandle *certdb, void *keydb, CERTCertificate
      *cert,\n               char *password, JAR_FILE infp, JAR_FILE outfp)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/nss/lib/jar/jarint.c:23,1
    - Dst: strchr
      Src: /src/nss/lib/jar/jarint.c:23,1
    - Dst: strchr
      Src: /src/nss/lib/jar/jarint.c:25,1
    - Dst: strchr
      Src: /src/nss/lib/jar/jarint.c:25,1
    - Dst: strchr
      Src: /src/nss/lib/jar/jarint.c:26,1
    - Dst: strchr
      Src: /src/nss/lib/jar/jarint.c:33,1
    - Dst: strchr
      Src: /src/nss/lib/jar/jarint.c:33,1
    - Dst: strchr
      Src: /src/nss/lib/jar/jarint.c:38,1
    - Dst: strchr
      Src: /src/nss/lib/jar/jarint.c:43,1
    - Dst: PR_Open
      Src: /src/nss/lib/jar/jarint.c:51,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 2
    argNames:
    - name
    - mode
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 52
    functionName: JAR_FOPEN_to_PR_Open
    functionSourceFile: /src/nss/lib/jar/jarint.c
    functionUses: 0
    functionsReached:
    - PR_Open
    - strchr
    linkageType: ''
    returnType: PRFileDesc
    signature: 'PRFileDesc *

      JAR_FOPEN_to_PR_Open(const char* name, const char* mode)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/jar/jar.c:35,1
    - Dst: ZZ_NewList
      Src: /src/nss/lib/jar/jar.c:37,1
    - Dst: ZZ_NewList
      Src: /src/nss/lib/jar/jar.c:39,1
    - Dst: ZZ_NewList
      Src: /src/nss/lib/jar/jar.c:41,1
    - Dst: ZZ_NewList
      Src: /src/nss/lib/jar/jar.c:43,1
    - Dst: ZZ_NewList
      Src: /src/nss/lib/jar/jar.c:45,1
    - Dst: ZZ_DestroyList
      Src: /src/nss/lib/jar/jar.c:52,1
    - Dst: ZZ_DestroyList
      Src: /src/nss/lib/jar/jar.c:54,1
    - Dst: ZZ_DestroyList
      Src: /src/nss/lib/jar/jar.c:56,1
    - Dst: ZZ_DestroyList
      Src: /src/nss/lib/jar/jar.c:58,1
    - Dst: ZZ_DestroyList
      Src: /src/nss/lib/jar/jar.c:60,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jar.c:61,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 64
    functionName: JAR_new
    functionSourceFile: /src/nss/lib/jar/jar.c
    functionUses: 3
    functionsReached:
    - PORT_Free
    - PORT_ZAlloc
    - ZZ_NewList
    - ZZ_DestroyList
    linkageType: ''
    returnType: JAR
    signature: 'JAR *

      JAR_new(void)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/jar/jar.c:72,1
    - Dst: JAR_FCLOSE
      Src: /src/nss/lib/jar/jar.c:78,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jar.c:80,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jar.c:82,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jar.c:84,1
    - Dst: jar_destroy_list
      Src: /src/nss/lib/jar/jar.c:87,1
    - Dst: ZZ_DestroyList
      Src: /src/nss/lib/jar/jar.c:88,1
    - Dst: jar_destroy_list
      Src: /src/nss/lib/jar/jar.c:89,1
    - Dst: ZZ_DestroyList
      Src: /src/nss/lib/jar/jar.c:90,1
    - Dst: jar_destroy_list
      Src: /src/nss/lib/jar/jar.c:91,1
    - Dst: ZZ_DestroyList
      Src: /src/nss/lib/jar/jar.c:92,1
    - Dst: jar_destroy_list
      Src: /src/nss/lib/jar/jar.c:93,1
    - Dst: ZZ_DestroyList
      Src: /src/nss/lib/jar/jar.c:94,1
    - Dst: jar_destroy_list
      Src: /src/nss/lib/jar/jar.c:95,1
    - Dst: ZZ_DestroyList
      Src: /src/nss/lib/jar/jar.c:96,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jar.c:97,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - jar
    argTypes:
    - JAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 98
    functionName: PR_CALLBACK::JAR_destroy
    functionSourceFile: /src/nss/lib/jar/jar.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_Free
    - jar_destroy_list
    - ZZ_DestroyList
    - JAR_FCLOSE
    linkageType: ''
    returnType: void
    signature: 'void PR_CALLBACK

      JAR_destroy(JAR *jar)'
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: ZZ_ListEmpty
      Src: /src/nss/lib/jar/jar.c:111,1
    - Dst: ZZ_ListHead
      Src: /src/nss/lib/jar/jar.c:112,1
    - Dst: ZZ_ListIterDone
      Src: /src/nss/lib/jar/jar.c:113,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jar.c:118,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jar.c:125,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jar.c:127,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jar.c:128,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jar.c:135,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/jar/jar.c:142,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jar.c:144,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jar.c:145,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jar.c:154,1
    - Dst: JAR_destroy_signer
      Src: /src/nss/lib/jar/jar.c:161,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jar.c:168,1
    - Dst: ZZ_DestroyLink
      Src: /src/nss/lib/jar/jar.c:173,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 60
    argCount: 1
    argNames:
    - list
    argTypes:
    - ZZList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 100
    functionDepth: 8
    functionLinenumber: 100
    functionLinenumberEnd: 176
    functionName: jar_destroy_list
    functionSourceFile: /src/nss/lib/jar/jar.c
    functionUses: 1
    functionsReached:
    - JAR_destroy_signer
    - PORT_Free
    - ZZ_ListIterDone
    - ZZ_DestroyLink
    - CERT_DestroyCertificate
    - ZZ_ListEmpty
    - ZZ_ListHead
    linkageType: ''
    returnType: void
    signature: void jar_destroy_list(ZZList *list)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/jar/jar.c:194,1
    - Dst: ZZ_ListEmpty
      Src: /src/nss/lib/jar/jar.c:201,1
    - Dst: ZZ_ListHead
      Src: /src/nss/lib/jar/jar.c:204,1
    - Dst: ZZ_ListIterDone
      Src: /src/nss/lib/jar/jar.c:205,1
    - Dst: strcmp
      Src: /src/nss/lib/jar/jar.c:213,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/lib/jar/jar.c:216,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/jar/jar.c:217,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/jar/jar.c:218,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 23
    argCount: 5
    argNames:
    - jar
    - name
    - header
    - info
    - length
    argTypes:
    - JAR*
    - char*
    - char*
    - void**
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 224
    functionName: JAR_get_metainfo
    functionSourceFile: /src/nss/lib/jar/jar.c
    functionUses: 1
    functionsReached:
    - strcmp
    - PORT_Assert
    - PORT_Strcasecmp
    - ZZ_ListIterDone
    - PORT_Strlen
    - PORT_Strdup
    - ZZ_ListEmpty
    - ZZ_ListHead
    linkageType: ''
    returnType: int
    signature: "int JAR_get_metainfo(JAR *jar, char *name, char *header, void **info,\n
      \                unsigned long *length)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/jar/jar.c:241,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/jar/jar.c:246,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/jar/jar.c:252,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jar.c:253,1
    - Dst: ZZ_ListHead
      Src: /src/nss/lib/jar/jar.c:261,1
    - Dst: ZZ_ListHead
      Src: /src/nss/lib/jar/jar.c:267,1
    - Dst: ZZ_ListHead
      Src: /src/nss/lib/jar/jar.c:271,1
    - Dst: ZZ_ListHead
      Src: /src/nss/lib/jar/jar.c:275,1
    - Dst: ZZ_ListHead
      Src: /src/nss/lib/jar/jar.c:280,1
    - Dst: ZZ_ListHead
      Src: /src/nss/lib/jar/jar.c:286,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/jar/jar.c:290,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 3
    argNames:
    - jar
    - pattern
    - type
    argTypes:
    - JAR*
    - char*
    - jarType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 294
    functionName: JAR_find
    functionSourceFile: /src/nss/lib/jar/jar.c
    functionUses: 4
    functionsReached:
    - PORT_Assert
    - PORT_Free
    - PORT_ZAlloc
    - PORT_Strdup
    - ZZ_ListHead
    linkageType: ''
    returnType: JAR_Context
    signature: 'JAR_Context *

      JAR_find(JAR *jar, char *pattern, jarType type)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/jar/jar.c:305,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jar.c:308,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jar.c:309,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - JAR_Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 311
    functionName: JAR_find_end
    functionSourceFile: /src/nss/lib/jar/jar.c
    functionUses: 4
    functionsReached:
    - PORT_Free
    - PORT_Assert
    linkageType: ''
    returnType: void
    signature: void JAR_find_end(JAR_Context *ctx)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/jar/jar.c:329,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/jar/jar.c:330,1
    - Dst: ZZ_ListIterDone
      Src: /src/nss/lib/jar/jar.c:338,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/jar/jar.c:342,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/jar/jar.c:351,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/jar/jar.c:364,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/jar/jar.c:381,1
    - Dst: ZZ_ListIterDone
      Src: /src/nss/lib/jar/jar.c:391,1
    - Dst: ZZ_ListIterDone
      Src: /src/nss/lib/jar/jar.c:394,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/jar/jar.c:395,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/jar/jar.c:397,1
    - Dst: ZZ_ListHead
      Src: /src/nss/lib/jar/jar.c:410,1
    - Dst: ZZ_ListHead
      Src: /src/nss/lib/jar/jar.c:414,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/jar/jar.c:425,1
    - Dst: ZZ_ListIterDone
      Src: /src/nss/lib/jar/jar.c:430,1
    - Dst: PORT_RegExpSearch
      Src: /src/nss/lib/jar/jar.c:436,1
    - Dst: jar_find_first_cert
      Src: /src/nss/lib/jar/jar.c:445,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 101
    argCount: 2
    argNames:
    - ctx
    - it
    argTypes:
    - JAR_Context*
    - JAR_Item**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 454
    functionName: JAR_find_next
    functionSourceFile: /src/nss/lib/jar/jar.c
    functionUses: 4
    functionsReached:
    - PORT_Assert
    - ZZ_ListIterDone
    - jar_find_first_cert
    - PORT_RegExpSearch
    - ZZ_ListHead
    linkageType: ''
    returnType: int
    signature: int JAR_find_next(JAR_Context *ctx, JAR_Item **it)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ZZ_ListEmpty
      Src: /src/nss/lib/jar/jar.c:464,1
    - Dst: ZZ_ListHead
      Src: /src/nss/lib/jar/jar.c:469,1
    - Dst: ZZ_ListIterDone
      Src: /src/nss/lib/jar/jar.c:470,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - signer
    - type
    - it
    argTypes:
    - JAR_Signer*
    - jarType
    - JAR_Item**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 479
    functionName: jar_find_first_cert
    functionSourceFile: /src/nss/lib/jar/jar.c
    functionUses: 1
    functionsReached:
    - ZZ_ListEmpty
    - ZZ_ListHead
    - ZZ_ListIterDone
    linkageType: ''
    returnType: int
    signature: int jar_find_first_cert(JAR_Signer *signer, jarType type, JAR_Item
      **it)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/jar/jar.c:484,1
    - Dst: ZZ_NewList
      Src: /src/nss/lib/jar/jar.c:489,1
    - Dst: ZZ_NewList
      Src: /src/nss/lib/jar/jar.c:494,1
    - Dst: ZZ_DestroyList
      Src: /src/nss/lib/jar/jar.c:502,1
    - Dst: ZZ_DestroyList
      Src: /src/nss/lib/jar/jar.c:504,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jar.c:505,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 481
    functionDepth: 1
    functionLinenumber: 481
    functionLinenumberEnd: 508
    functionName: JAR_new_signer
    functionSourceFile: /src/nss/lib/jar/jar.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - PORT_ZAlloc
    - ZZ_NewList
    - ZZ_DestroyList
    linkageType: ''
    returnType: JAR_Signer
    signature: 'JAR_Signer *

      JAR_new_signer(void)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jar.c:515,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jar.c:517,1
    - Dst: jar_destroy_list
      Src: /src/nss/lib/jar/jar.c:518,1
    - Dst: ZZ_DestroyList
      Src: /src/nss/lib/jar/jar.c:519,1
    - Dst: jar_destroy_list
      Src: /src/nss/lib/jar/jar.c:520,1
    - Dst: ZZ_DestroyList
      Src: /src/nss/lib/jar/jar.c:521,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jar.c:522,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - signer
    argTypes:
    - JAR_Signer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 510
    functionDepth: 9
    functionLinenumber: 510
    functionLinenumberEnd: 524
    functionName: JAR_destroy_signer
    functionSourceFile: /src/nss/lib/jar/jar.c
    functionUses: 1
    functionsReached:
    - PORT_Free
    - jar_destroy_list
    - ZZ_DestroyList
    linkageType: ''
    returnType: void
    signature: void JAR_destroy_signer(JAR_Signer *signer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: JAR_find
      Src: /src/nss/lib/jar/jar.c:530,1
    - Dst: JAR_find_next
      Src: /src/nss/lib/jar/jar.c:537,1
    - Dst: PORT_Strcmp
      Src: /src/nss/lib/jar/jar.c:539,1
    - Dst: JAR_find_end
      Src: /src/nss/lib/jar/jar.c:544,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - jar
    - basename
    argTypes:
    - JAR*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 526
    functionDepth: 2
    functionLinenumber: 526
    functionLinenumberEnd: 546
    functionName: jar_get_signer
    functionSourceFile: /src/nss/lib/jar/jar.c
    functionUses: 0
    functionsReached:
    - JAR_find_next
    - JAR_find
    - PORT_Strcmp
    - JAR_find_end
    linkageType: ''
    returnType: JAR_Signer
    signature: 'JAR_Signer *

      jar_get_signer(JAR *jar, char *basename)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - jar
    argTypes:
    - JAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 559
    functionName: JAR_get_filename
    functionSourceFile: /src/nss/lib/jar/jar.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      JAR_get_filename(JAR *jar)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - jar
    argTypes:
    - JAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 568
    functionDepth: 0
    functionLinenumber: 568
    functionLinenumberEnd: 572
    functionName: JAR_get_url
    functionSourceFile: /src/nss/lib/jar/jar.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      JAR_get_url(JAR *jar)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - type
    - jar
    - fn
    argTypes:
    - int
    - JAR*
    - jar_settable_callback_fn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 588
    functionName: JAR_set_callback
    functionSourceFile: /src/nss/lib/jar/jar.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int JAR_set_callback(int type, JAR *jar, jar_settable_callback_fn *fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - (*string_cb)(int)
    - (*find_cx)(void)
    - (*init_cx)(void)
    argTypes:
    - char*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 612
    functionName: JAR_init_callbacks
    functionSourceFile: /src/nss/lib/jar/jar.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void JAR_init_callbacks(char *(*string_cb)(int),\n                   void
      *(*find_cx)(void),\n                   void *(*init_cx)(void))"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: jar_fn_GetString
      Src: /src/nss/lib/jar/jar.c:680,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/jar/jar.c:684,1
    - Dst: PR_snprintf
      Src: /src/nss/lib/jar/jar.c:686,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 50
    argCount: 1
    argNames:
    - status
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 624
    functionDepth: 1
    functionLinenumber: 624
    functionLinenumberEnd: 694
    functionName: JAR_get_error
    functionSourceFile: /src/nss/lib/jar/jar.c
    functionUses: 5
    functionsReached:
    - PORT_Alloc
    - PR_snprintf
    - jar_fn_GetString
    linkageType: ''
    returnType: char
    signature: 'char *

      JAR_get_error(int status)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - strm
    - ','
    - level
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 894
    functionDepth: 0
    functionLinenumber: 894
    functionLinenumberEnd: 896
    functionName: deflateInit
    functionSourceFile: /src/nss/lib/jar/jzlib.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: deflateInit(strm, level)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - strm
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 896
    functionDepth: 0
    functionLinenumber: 896
    functionLinenumberEnd: 898
    functionName: inflateInit
    functionSourceFile: /src/nss/lib/jar/jzlib.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: inflateInit(strm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - strm
    - ','
    - level
    - ','
    - method
    - ','
    - windowBits
    - ','
    - memLevel
    - ','
    - strategy
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 898
    functionDepth: 0
    functionLinenumber: 898
    functionLinenumberEnd: 901
    functionName: deflateInit2
    functionSourceFile: /src/nss/lib/jar/jzlib.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: deflateInit2(strm, level, method, windowBits, memLevel, strategy)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - strm
    - ','
    - windowBits
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 901
    functionDepth: 0
    functionLinenumber: 901
    functionLinenumberEnd: 903
    functionName: inflateInit2
    functionSourceFile: /src/nss/lib/jar/jzlib.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: inflateInit2(strm, windowBits)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strdup
      Src: /src/nss/lib/jar/jarver.c:94,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/jar/jarver.c:104,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jarver.c:107,1
    - Dst: PORT_Strncasecmp
      Src: /src/nss/lib/jar/jarver.c:116,1
    - Dst: jar_parse_mf
      Src: /src/nss/lib/jar/jarver.c:117,1
    - Dst: PORT_Strncasecmp
      Src: /src/nss/lib/jar/jarver.c:118,1
    - Dst: jar_parse_sf
      Src: /src/nss/lib/jar/jarver.c:119,1
    - Dst: jar_parse_sig
      Src: /src/nss/lib/jar/jarver.c:122,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 5
    argNames:
    - jar
    - raw_manifest
    - length
    - path
    - url
    argTypes:
    - JAR*
    - char*
    - long
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 124
    functionName: JAR_parse_manifest
    functionSourceFile: /src/nss/lib/jar/jarver.c
    functionUses: 1
    functionsReached:
    - PORT_Strncasecmp
    - PORT_Free
    - jar_parse_sf
    - jar_parse_sig
    - jar_parse_mf
    - PORT_Strdup
    linkageType: ''
    returnType: int
    signature: "int JAR_parse_manifest(JAR *jar, char *raw_manifest, long length,\n
      \                  const char *path, const char *url)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: jar_basename
      Src: /src/nss/lib/jar/jarver.c:155,1
    - Dst: jar_get_signer
      Src: /src/nss/lib/jar/jarver.c:160,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jarver.c:161,1
    - Dst: jar_get_signer
      Src: /src/nss/lib/jar/jarver.c:163,1
    - Dst: jar_parse_digital_signature
      Src: /src/nss/lib/jar/jarver.c:178,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - jar
    - path
    - raw_manifest
    - length
    argTypes:
    - JAR*
    - char*
    - char*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 133
    functionDepth: 3
    functionLinenumber: 133
    functionLinenumberEnd: 181
    functionName: jar_parse_sig
    functionSourceFile: /src/nss/lib/jar/jarver.c
    functionUses: 1
    functionsReached:
    - PORT_Free
    - jar_parse_digital_signature
    - jar_basename
    - jar_get_signer
    linkageType: ''
    returnType: int
    signature: "int jar_parse_sig(JAR *jar, const char *path, char *raw_manifest,\n
      \             long length)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: jar_digest_section
      Src: /src/nss/lib/jar/jarver.c:200,1
    - Dst: jar_parse_any
      Src: /src/nss/lib/jar/jarver.c:203,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - jar
    - raw_manifest
    - length
    - path
    - url
    argTypes:
    - JAR*
    - char*
    - long
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 205
    functionName: jar_parse_mf
    functionSourceFile: /src/nss/lib/jar/jarver.c
    functionUses: 1
    functionsReached:
    - jar_parse_any
    - jar_digest_section
    linkageType: ''
    returnType: int
    signature: "int jar_parse_mf(JAR *jar, char *raw_manifest, long length,\n             const
      char *path, const char *url)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: JAR_new_signer
      Src: /src/nss/lib/jar/jarver.c:226,1
    - Dst: jar_basename
      Src: /src/nss/lib/jar/jarver.c:231,1
    - Dst: jar_get_signer
      Src: /src/nss/lib/jar/jarver.c:239,1
    - Dst: JAR_calculate_digest
      Src: /src/nss/lib/jar/jarver.c:246,1
    - Dst: ADDITEM
      Src: /src/nss/lib/jar/jarver.c:251,1
    - Dst: jar_parse_any
      Src: /src/nss/lib/jar/jarver.c:254,1
    - Dst: JAR_destroy_signer
      Src: /src/nss/lib/jar/jarver.c:259,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 5
    argNames:
    - jar
    - raw_manifest
    - length
    - path
    - url
    argTypes:
    - JAR*
    - char*
    - long
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 214
    functionDepth: 10
    functionLinenumber: 214
    functionLinenumberEnd: 261
    functionName: jar_parse_sf
    functionSourceFile: /src/nss/lib/jar/jarver.c
    functionUses: 1
    functionsReached:
    - JAR_destroy_signer
    - ADDITEM
    - JAR_new_signer
    - jar_parse_any
    - jar_basename
    - JAR_calculate_digest
    - jar_get_signer
    linkageType: ''
    returnType: int
    signature: "int jar_parse_sf(JAR *jar, char *raw_manifest, long length,\n             const
      char *path, const char *url)"
  - BBCount: 44
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/jar/jarver.c:286,1
    - Dst: jar_insanity_check
      Src: /src/nss/lib/jar/jarver.c:290,1
    - Dst: jar_eat_line
      Src: /src/nss/lib/jar/jarver.c:295,1
    - Dst: jar_eat_line
      Src: /src/nss/lib/jar/jarver.c:302,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/jar/jarver.c:306,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/jar/jarver.c:311,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jarver.c:313,1
    - Dst: PORT_Strcpy
      Src: /src/nss/lib/jar/jarver.c:317,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/jar/jarver.c:330,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/jar/jarver.c:331,1
    - Dst: ADDITEM
      Src: /src/nss/lib/jar/jarver.c:334,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/lib/jar/jarver.c:342,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/lib/jar/jarver.c:344,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/lib/jar/jarver.c:345,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jarver.c:348,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jarver.c:354,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jarver.c:356,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jarver.c:358,1
    - Dst: ATOB_AsciiToData
      Src: /src/nss/lib/jar/jarver.c:373,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/jar/jarver.c:374,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jarver.c:375,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/jar/jarver.c:380,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jarver.c:381,1
    - Dst: ATOB_AsciiToData
      Src: /src/nss/lib/jar/jarver.c:388,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/jar/jarver.c:389,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jarver.c:390,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/jar/jarver.c:395,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jarver.c:396,1
    - Dst: jar_eat_line
      Src: /src/nss/lib/jar/jarver.c:421,1
    - Dst: PORT_Strncasecmp
      Src: /src/nss/lib/jar/jarver.c:425,1
    - Dst: jar_digest_section
      Src: /src/nss/lib/jar/jarver.c:427,1
    - Dst: jar_eat_line
      Src: /src/nss/lib/jar/jarver.c:434,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/jar/jarver.c:438,1
    - Dst: PORT_Strcpy
      Src: /src/nss/lib/jar/jarver.c:444,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/lib/jar/jarver.c:457,1
    - Dst: PORT_Strcpy
      Src: /src/nss/lib/jar/jarver.c:458,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/lib/jar/jarver.c:459,1
    - Dst: PORT_Strcpy
      Src: /src/nss/lib/jar/jarver.c:460,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/lib/jar/jarver.c:461,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/lib/jar/jarver.c:462,1
    - Dst: PORT_Strcpy
      Src: /src/nss/lib/jar/jarver.c:463,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/lib/jar/jarver.c:467,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/lib/jar/jarver.c:468,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/jar/jarver.c:477,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/jar/jarver.c:482,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jarver.c:483,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/jar/jarver.c:487,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jarver.c:488,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jarver.c:489,1
    - Dst: ADDITEM
      Src: /src/nss/lib/jar/jarver.c:493,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/jar/jarver.c:504,1
    - Dst: ATOB_AsciiToData
      Src: /src/nss/lib/jar/jarver.c:512,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/jar/jarver.c:513,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jarver.c:515,1
    - Dst: memcpy
      Src: /src/nss/lib/jar/jarver.c:518,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jarver.c:520,1
    - Dst: ATOB_AsciiToData
      Src: /src/nss/lib/jar/jarver.c:527,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/jar/jarver.c:528,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jarver.c:530,1
    - Dst: memcpy
      Src: /src/nss/lib/jar/jarver.c:533,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jarver.c:535,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/jar/jarver.c:538,1
    - Dst: ADDITEM
      Src: /src/nss/lib/jar/jarver.c:540,1
    - Dst: ADDITEM
      Src: /src/nss/lib/jar/jarver.c:542,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jarver.c:544,1
    - Dst: ADDITEM
      Src: /src/nss/lib/jar/jarver.c:551,1
    - Dst: jar_internal_digest
      Src: /src/nss/lib/jar/jarver.c:561,1
    CyclomaticComplexity: 77
    EdgeCount: 77
    ICount: 178
    argCount: 7
    argNames:
    - jar
    - type
    - signer
    - raw_manifest
    - length
    - path
    - url
    argTypes:
    - JAR*
    - int
    - JAR_Signer*
    - char*
    - long
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 567
    functionName: jar_parse_any
    functionSourceFile: /src/nss/lib/jar/jarver.c
    functionUses: 2
    functionsReached:
    - PORT_Assert
    - PORT_Strcasecmp
    - ADDITEM
    - PORT_Strncasecmp
    - jar_insanity_check
    - PORT_ZNew
    - PORT_Memcmp
    - PORT_Free
    - memcpy
    - PORT_Strlen
    - PORT_Strcpy
    - jar_digest_section
    - jar_internal_digest
    - jar_eat_line
    - PORT_Strdup
    - ATOB_AsciiToData
    linkageType: ''
    returnType: int
    signature: "int jar_parse_any(JAR *jar, int type, JAR_Signer *signer,\n              char
      *raw_manifest, long length, const char *path,\n              const char *url)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: jar_get_mf_digest
      Src: /src/nss/lib/jar/jarver.c:577,1
    - Dst: jar_signal
      Src: /src/nss/lib/jar/jarver.c:580,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/jar/jarver.c:588,1
    - Dst: jar_signal
      Src: /src/nss/lib/jar/jarver.c:591,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/jar/jarver.c:605,1
    - Dst: jar_signal
      Src: /src/nss/lib/jar/jarver.c:608,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 4
    argNames:
    - jar
    - path
    - x_name
    - dig
    argTypes:
    - JAR*
    - char*
    - char*
    - JAR_Digest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 569
    functionDepth: 1
    functionLinenumber: 569
    functionLinenumberEnd: 620
    functionName: jar_internal_digest
    functionSourceFile: /src/nss/lib/jar/jarver.c
    functionUses: 1
    functionsReached:
    - PORT_Memcmp
    - jar_signal
    - jar_get_mf_digest
    linkageType: ''
    returnType: int
    signature: int jar_internal_digest(JAR *jar, const char *path, char *x_name, JAR_Digest
      *dig)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 2
    argNames:
    - data
    - length
    argTypes:
    - char*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 632
    functionDepth: 0
    functionLinenumber: 632
    functionLinenumberEnd: 645
    functionName: jar_insanity_check
    functionSourceFile: /src/nss/lib/jar/jarver.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int jar_insanity_check(char *data, long length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: jar_validate_pkcs7
      Src: /src/nss/lib/jar/jarver.c:659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - raw_manifest
    - signer
    - length
    - jar
    argTypes:
    - char*
    - JAR_Signer*
    - long
    - JAR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 655
    functionDepth: 1
    functionLinenumber: 655
    functionLinenumberEnd: 660
    functionName: jar_parse_digital_signature
    functionSourceFile: /src/nss/lib/jar/jarver.c
    functionUses: 1
    functionsReached:
    - jar_validate_pkcs7
    linkageType: ''
    returnType: int
    signature: "int jar_parse_digital_signature(char *raw_manifest, JAR_Signer *signer,\n
      \                           long length, JAR *jar)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZNew
      Src: /src/nss/lib/jar/jarver.c:680,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/jar/jarver.c:684,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/jar/jarver.c:688,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/jar/jarver.c:693,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/jar/jarver.c:694,1
    - Dst: ADDITEM
      Src: /src/nss/lib/jar/jarver.c:697,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/jar/jarver.c:703,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jarver.c:704,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 4
    argNames:
    - jar
    - signer
    - type
    - cert
    argTypes:
    - JAR*
    - JAR_Signer*
    - int
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 671
    functionDepth: 8
    functionLinenumber: 671
    functionLinenumberEnd: 707
    functionName: jar_add_cert
    functionSourceFile: /src/nss/lib/jar/jarver.c
    functionUses: 0
    functionsReached:
    - ADDITEM
    - PORT_Memcpy
    - PORT_ZNew
    - PORT_Free
    - PORT_ZAlloc
    - CERT_DupCertificate
    - CERT_DestroyCertificate
    linkageType: ''
    returnType: int
    signature: int jar_add_cert(JAR *jar, JAR_Signer *signer, int type, CERTCertificate
      *cert)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 25
    argCount: 4
    argNames:
    - lines
    - eating
    - data
    - len
    argTypes:
    - int
    - int
    - char*
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 730
    functionDepth: 0
    functionLinenumber: 730
    functionLinenumberEnd: 776
    functionName: jar_eat_line
    functionSourceFile: /src/nss/lib/jar/jarver.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      jar_eat_line(int lines, int eating, char *data, long *len)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: jar_eat_line
      Src: /src/nss/lib/jar/jarver.c:796,1
    - Dst: JAR_calculate_digest
      Src: /src/nss/lib/jar/jarver.c:800,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - manifest
    - length
    argTypes:
    - char*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 786
    functionDepth: 1
    functionLinenumber: 786
    functionLinenumberEnd: 801
    functionName: jar_digest_section
    functionSourceFile: /src/nss/lib/jar/jarver.c
    functionUses: 2
    functionsReached:
    - jar_eat_line
    - JAR_calculate_digest
    linkageType: ''
    returnType: JAR_Digest
    signature: 'JAR_Digest *

      jar_digest_section(char *manifest, long length)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ZZ_ListEmpty
      Src: /src/nss/lib/jar/jarver.c:824,1
    - Dst: ZZ_ListHead
      Src: /src/nss/lib/jar/jarver.c:829,1
    - Dst: ZZ_ListIterDone
      Src: /src/nss/lib/jar/jarver.c:830,1
    - Dst: PORT_Strcmp
      Src: /src/nss/lib/jar/jarver.c:834,1
    - Dst: memcmp
      Src: /src/nss/lib/jar/jarver.c:839,1
    - Dst: memcmp
      Src: /src/nss/lib/jar/jarver.c:844,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 3
    argNames:
    - jar
    - name
    - dig
    argTypes:
    - JAR*
    - char*
    - JAR_Digest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 810
    functionDepth: 1
    functionLinenumber: 810
    functionLinenumberEnd: 850
    functionName: PR_CALLBACK::JAR_verify_digest
    functionSourceFile: /src/nss/lib/jar/jarver.c
    functionUses: 0
    functionsReached:
    - PORT_Strcmp
    - ZZ_ListIterDone
    - ZZ_ListEmpty
    - memcmp
    - ZZ_ListHead
    linkageType: ''
    returnType: int
    signature: 'int PR_CALLBACK

      JAR_verify_digest(JAR *jar, const char *name, JAR_Digest *dig)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JAR_open_database
      Src: /src/nss/lib/jar/jarver.c:868,1
    - Dst: CERT_FindCertByIssuerAndSN
      Src: /src/nss/lib/jar/jarver.c:875,1
    - Dst: JAR_close_database
      Src: /src/nss/lib/jar/jarver.c:876,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - length
    - key
    argTypes:
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 861
    functionDepth: 9
    functionLinenumber: 861
    functionLinenumberEnd: 879
    functionName: JAR_fetch_cert
    functionSourceFile: /src/nss/lib/jar/jarver.c
    functionUses: 0
    functionsReached:
    - JAR_open_database
    - JAR_close_database
    - CERT_FindCertByIssuerAndSN
    linkageType: ''
    returnType: CERTCertificate
    signature: 'CERTCertificate *

      JAR_fetch_cert(long length, void *key)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ZZ_ListEmpty
      Src: /src/nss/lib/jar/jarver.c:896,1
    - Dst: ZZ_ListHead
      Src: /src/nss/lib/jar/jarver.c:899,1
    - Dst: ZZ_ListIterDone
      Src: /src/nss/lib/jar/jarver.c:900,1
    - Dst: PORT_Strcmp
      Src: /src/nss/lib/jar/jarver.c:904,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - jar
    - pathname
    argTypes:
    - JAR*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 888
    functionDepth: 1
    functionLinenumber: 888
    functionLinenumberEnd: 910
    functionName: jar_get_mf_digest
    functionSourceFile: /src/nss/lib/jar/jarver.c
    functionUses: 1
    functionsReached:
    - ZZ_ListEmpty
    - ZZ_ListHead
    - ZZ_ListIterDone
    - PORT_Strcmp
    linkageType: ''
    returnType: JAR_Digest
    signature: 'JAR_Digest *

      jar_get_mf_digest(JAR *jar, char *pathname)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strdup
      Src: /src/nss/lib/jar/jarver.c:925,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/jar/jarver.c:927,1
    - Dst: PORT_Strrchr
      Src: /src/nss/lib/jar/jarver.c:938,1
    - Dst: PORT_Strcpy
      Src: /src/nss/lib/jar/jarver.c:942,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 919
    functionDepth: 0
    functionLinenumber: 919
    functionLinenumberEnd: 944
    functionName: jar_basename
    functionSourceFile: /src/nss/lib/jar/jarver.c
    functionUses: 2
    functionsReached:
    - PORT_Strcpy
    - PORT_Strrchr
    - PORT_Strdup
    linkageType: ''
    returnType: char
    signature: 'char *

      jar_basename(const char *path)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - arg
    - buf
    - len
    argTypes:
    - void*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 965
    functionDepth: 0
    functionLinenumber: 965
    functionLinenumberEnd: 970
    functionName: jar_catch_bytes
    functionSourceFile: /src/nss/lib/jar/jarver.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void jar_catch_bytes(void *arg, const char *buf, unsigned long len)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/jar/jarver.c:989,1
    - Dst: SEC_PKCS7DecoderStart
      Src: /src/nss/lib/jar/jarver.c:997,1
    - Dst: SEC_PKCS7DecoderUpdate
      Src: /src/nss/lib/jar/jarver.c:1005,1
    - Dst: SEC_PKCS7DecoderFinish
      Src: /src/nss/lib/jar/jarver.c:1006,1
    - Dst: SEC_PKCS7ContentIsEncrypted
      Src: /src/nss/lib/jar/jarver.c:1011,1
    - Dst: SEC_PKCS7ContentIsSigned
      Src: /src/nss/lib/jar/jarver.c:1015,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/jar/jarver.c:1020,1
    - Dst: SEC_PKCS7VerifyDetachedSignature
      Src: /src/nss/lib/jar/jarver.c:1025,1
    - Dst: jar_gather_signers
      Src: /src/nss/lib/jar/jarver.c:1029,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/jar/jarver.c:1034,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/jar/jarver.c:1035,1
    - Dst: SEC_PKCS7DestroyContentInfo
      Src: /src/nss/lib/jar/jarver.c:1043,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 4
    argNames:
    - jar
    - signer
    - data
    - length
    argTypes:
    - JAR*
    - JAR_Signer*
    - char*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1045
      start: 979
    functionDepth: 1
    functionLinenumber: 979
    functionLinenumberEnd: 1045
    functionName: jar_validate_pkcs7
    functionSourceFile: /src/nss/lib/jar/jarver.c
    functionUses: 1
    functionsReached:
    - SEC_PKCS7ContentIsEncrypted
    - PORT_Assert
    - jar_gather_signers
    - SEC_PKCS7DestroyContentInfo
    - SEC_PKCS7DecoderFinish
    - SEC_PKCS7ContentIsSigned
    - PORT_GetError
    - SEC_PKCS7VerifyDetachedSignature
    - SEC_PKCS7DecoderStart
    - PORT_SetError
    - SEC_PKCS7DecoderUpdate
    linkageType: ''
    returnType: int
    signature: int jar_validate_pkcs7(JAR *jar, JAR_Signer *signer, char *data, long
      length)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: JAR_open_database
      Src: /src/nss/lib/jar/jarver.c:1077,1
    - Dst: jar_add_cert
      Src: /src/nss/lib/jar/jarver.c:1081,1
    - Dst: JAR_close_database
      Src: /src/nss/lib/jar/jarver.c:1082,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - jar
    - signer
    - cinfo
    argTypes:
    - JAR*
    - JAR_Signer*
    - SEC_PKCS7ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1084
      start: 1054
    functionDepth: 9
    functionLinenumber: 1054
    functionLinenumberEnd: 1084
    functionName: jar_gather_signers
    functionSourceFile: /src/nss/lib/jar/jarver.c
    functionUses: 1
    functionsReached:
    - JAR_open_database
    - JAR_close_database
    - jar_add_cert
    linkageType: ''
    returnType: int
    signature: int jar_gather_signers(JAR *jar, JAR_Signer *signer, SEC_PKCS7ContentInfo
      *cinfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/lib/jar/jarver.c:1096,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1093
    functionDepth: 1
    functionLinenumber: 1093
    functionLinenumberEnd: 1097
    functionName: JAR_open_database
    functionSourceFile: /src/nss/lib/jar/jarver.c
    functionUses: 2
    functionsReached:
    - CERT_GetDefaultCertDB
    linkageType: ''
    returnType: CERTCertDBHandle
    signature: 'CERTCertDBHandle *

      JAR_open_database(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - certdb
    argTypes:
    - CERTCertDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1106
    functionDepth: 0
    functionLinenumber: 1106
    functionLinenumberEnd: 1110
    functionName: JAR_close_database
    functionSourceFile: /src/nss/lib/jar/jarver.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int JAR_close_database(CERTCertDBHandle *certdb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JAR_get_error
      Src: /src/nss/lib/jar/jarver.c:1121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - status
    - jar
    - metafile
    - pathname
    argTypes:
    - int
    - JAR*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1118
    functionDepth: 2
    functionLinenumber: 1118
    functionLinenumberEnd: 1127
    functionName: jar_signal
    functionSourceFile: /src/nss/lib/jar/jarver.c
    functionUses: 1
    functionsReached:
    - JAR_get_error
    linkageType: ''
    returnType: int
    signature: int jar_signal(int status, JAR *jar, const char *metafile, char *pathname)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZNew
      Src: /src/nss/lib/jar/jarver.c:1139,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/jar/jarver.c:1146,1
    - Dst: ZZ_NewLink
      Src: /src/nss/lib/jar/jarver.c:1154,1
    - Dst: ZZ_AppendLink
      Src: /src/nss/lib/jar/jarver.c:1156,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jarver.c:1163,1
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jarver.c:1164,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 5
    argNames:
    - list
    - type
    - pathname
    - data
    - size
    argTypes:
    - ZZList*
    - int
    - char*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1167
      start: 1136
    functionDepth: 1
    functionLinenumber: 1136
    functionLinenumberEnd: 1167
    functionName: jar_append
    functionSourceFile: /src/nss/lib/jar/jarver.c
    functionUses: 0
    functionsReached:
    - PORT_ZNew
    - PORT_Free
    - PORT_Strdup
    - ZZ_NewLink
    - ZZ_AppendLink
    linkageType: ''
    returnType: int
    signature: int jar_append(ZZList *list, int type, char *pathname, void *data,
      size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/jar/jar-ds.c:11,1
    - Dst: ZZ_InitList
      Src: /src/nss/lib/jar/jar-ds.c:13,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 8
    functionDepth: 1
    functionLinenumber: 8
    functionLinenumberEnd: 15
    functionName: ZZ_NewList
    functionSourceFile: /src/nss/lib/jar/jar-ds.c
    functionUses: 2
    functionsReached:
    - ZZ_InitList
    - PORT_ZAlloc
    linkageType: ''
    returnType: ZZList
    signature: 'ZZList *

      ZZ_NewList(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/jar/jar-ds.c:20,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - thing
    argTypes:
    - JAR_Item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 24
    functionName: ZZ_NewLink
    functionSourceFile: /src/nss/lib/jar/jar-ds.c
    functionUses: 2
    functionsReached:
    - PORT_ZAlloc
    linkageType: ''
    returnType: ZZLink
    signature: 'ZZLink *

      ZZ_NewLink(JAR_Item *thing)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jar-ds.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - link
    argTypes:
    - ZZLink*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: ZZ_DestroyLink
    functionSourceFile: /src/nss/lib/jar/jar-ds.c
    functionUses: 1
    functionsReached:
    - PORT_Free
    linkageType: ''
    returnType: void
    signature: void ZZ_DestroyLink(ZZLink *link)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Free
      Src: /src/nss/lib/jar/jar-ds.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list
    argTypes:
    - ZZList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: ZZ_DestroyList
    functionSourceFile: /src/nss/lib/jar/jar-ds.c
    functionUses: 4
    functionsReached:
    - PORT_Free
    linkageType: ''
    returnType: void
    signature: void ZZ_DestroyList(ZZList *list)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nssPointerTracker_initialize
      Src: /src/nss/lib/base/arena.c:103,1
    - Dst: nssPointerTracker_add
      Src: /src/nss/lib/base/arena.c:108,1
    - Dst: NSS_GetError
      Src: /src/nss/lib/base/arena.c:110,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/arena.c:112,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - arena
    argTypes:
    - NSSArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 119
    functionName: arena_add_pointer
    functionSourceFile: /src/nss/lib/base/arena.c
    functionUses: 0
    functionsReached:
    - nssPointerTracker_add
    - NSS_GetError
    - nss_SetError
    - nssPointerTracker_initialize
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus arena_add_pointer(const NSSArena *arena)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssPointerTracker_remove
      Src: /src/nss/lib/base/arena.c:126,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/arena.c:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - arena
    argTypes:
    - NSSArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 132
    functionName: arena_remove_pointer
    functionSourceFile: /src/nss/lib/base/arena.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    - nssPointerTracker_remove
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus arena_remove_pointer(const NSSArena *arena)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssPointerTracker_initialize
      Src: /src/nss/lib/base/arena.c:156,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/arena.c:167,1
    - Dst: nssPointerTracker_verify
      Src: /src/nss/lib/base/arena.c:171,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/arena.c:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - arena
    argTypes:
    - NSSArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 178
    functionName: nssArena_verifyPointer
    functionSourceFile: /src/nss/lib/base/arena.c
    functionUses: 2
    functionsReached:
    - nssPointerTracker_verify
    - nss_SetError
    - nssPointerTracker_initialize
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nssArena_verifyPointer(const NSSArena *arena)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nssArena_verifyPointer
      Src: /src/nss/lib/base/arena.c:223,1
    - Dst: nss_ZNEW
      Src: /src/nss/lib/base/arena.c:228,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - arena
    - arg
    argTypes:
    - NSSArena*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 245
    functionName: nssArena_registerDestructor
    functionSourceFile: /src/nss/lib/base/arena.c
    functionUses: 0
    functionsReached:
    - nssArena_verifyPointer
    - nss_ZNEW
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssArena_registerDestructor(NSSArena *arena, void (*destructor)(void
      *argument),\n                            void *arg)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: nssArena_verifyPointer
      Src: /src/nss/lib/base/arena.c:254,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/arena.c:266,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/base/arena.c:298,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 2
    argNames:
    - arena
    - arg
    argTypes:
    - NSSArena*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 247
    functionDepth: 2
    functionLinenumber: 247
    functionLinenumberEnd: 300
    functionName: nssArena_deregisterDestructor
    functionSourceFile: /src/nss/lib/base/arena.c
    functionUses: 0
    functionsReached:
    - nssArena_verifyPointer
    - nss_ZFreeIf
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssArena_deregisterDestructor(NSSArena *arena,\n                              void
      (*destructor)(void *argument), void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - it
    argTypes:
    - struct arena_destructor_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 308
    functionName: nss_arena_call_destructor_chain
    functionSourceFile: /src/nss/lib/base/arena.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void nss_arena_call_destructor_chain(struct arena_destructor_node *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_ClearErrorStack
      Src: /src/nss/lib/base/arena.c:329,1
    - Dst: nssArena_Create
      Src: /src/nss/lib/base/arena.c:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 331
    functionName: NSSArena_Create
    functionSourceFile: /src/nss/lib/base/arena.c
    functionUses: 18
    functionsReached:
    - nssArena_Create
    - nss_ClearErrorStack
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: 'NSS_IMPLEMENT *

      NSSArena_Create(void)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nss_ZNEW
      Src: /src/nss/lib/base/arena.c:353,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/arena.c:355,1
    - Dst: PR_NewLock
      Src: /src/nss/lib/base/arena.c:359,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/base/arena.c:361,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/arena.c:362,1
    - Dst: PL_InitArenaPool
      Src: /src/nss/lib/base/arena.c:383,1
    - Dst: arena_add_pointer
      Src: /src/nss/lib/base/arena.c:388,1
    - Dst: PL_FinishArenaPool
      Src: /src/nss/lib/base/arena.c:390,1
    - Dst: PR_DestroyLock
      Src: /src/nss/lib/base/arena.c:391,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/base/arena.c:392,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 348
    functionDepth: 2
    functionLinenumber: 348
    functionLinenumberEnd: 399
    functionName: nssArena_Create
    functionSourceFile: /src/nss/lib/base/arena.c
    functionUses: 15
    functionsReached:
    - PL_InitArenaPool
    - PR_DestroyLock
    - nss_ZNEW
    - nss_ZFreeIf
    - nss_SetError
    - PR_NewLock
    - arena_add_pointer
    - PL_FinishArenaPool
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: 'NSS_IMPLEMENT *

      nssArena_Create(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nss_ClearErrorStack
      Src: /src/nss/lib/base/arena.c:420,1
    - Dst: nssArena_verifyPointer
      Src: /src/nss/lib/base/arena.c:423,1
    - Dst: nssArena_Destroy
      Src: /src/nss/lib/base/arena.c:428,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - arena
    argTypes:
    - NSSArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 417
    functionDepth: 2
    functionLinenumber: 417
    functionLinenumberEnd: 429
    functionName: NSSArena_Destroy
    functionSourceFile: /src/nss/lib/base/arena.c
    functionUses: 21
    functionsReached:
    - nssArena_verifyPointer
    - nssArena_Destroy
    - nss_ClearErrorStack
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT NSSArena_Destroy(NSSArena *arena)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nssArena_verifyPointer
      Src: /src/nss/lib/base/arena.c:453,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/arena.c:460,1
    - Dst: PR_Lock
      Src: /src/nss/lib/base/arena.c:463,1
    - Dst: arena_remove_pointer
      Src: /src/nss/lib/base/arena.c:466,1
    - Dst: PR_Unlock
      Src: /src/nss/lib/base/arena.c:467,1
    - Dst: nss_arena_call_destructor_chain
      Src: /src/nss/lib/base/arena.c:474,1
    - Dst: PL_FinishArenaPool
      Src: /src/nss/lib/base/arena.c:477,1
    - Dst: PR_Unlock
      Src: /src/nss/lib/base/arena.c:480,1
    - Dst: PR_DestroyLock
      Src: /src/nss/lib/base/arena.c:481,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/base/arena.c:482,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - arena
    argTypes:
    - NSSArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 447
    functionDepth: 2
    functionLinenumber: 447
    functionLinenumberEnd: 484
    functionName: nssArena_Destroy
    functionSourceFile: /src/nss/lib/base/arena.c
    functionUses: 35
    functionsReached:
    - nssArena_verifyPointer
    - PR_DestroyLock
    - nss_arena_call_destructor_chain
    - arena_remove_pointer
    - nss_ZFreeIf
    - PR_Lock
    - nss_SetError
    - PR_Unlock
    - PL_FinishArenaPool
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nssArena_Destroy(NSSArena *arena)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: nssArena_verifyPointer
      Src: /src/nss/lib/base/arena.c:516,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/arena.c:523,1
    - Dst: PR_Lock
      Src: /src/nss/lib/base/arena.c:526,1
    - Dst: PR_GetCurrentThread
      Src: /src/nss/lib/base/arena.c:531,1
    - Dst: PR_GetCurrentThread
      Src: /src/nss/lib/base/arena.c:535,1
    - Dst: PR_Unlock
      Src: /src/nss/lib/base/arena.c:536,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/arena.c:537,1
    - Dst: PL_ARENA_MARK
      Src: /src/nss/lib/base/arena.c:543,1
    - Dst: nss_zalloc_arena_locked
      Src: /src/nss/lib/base/arena.c:547,1
    - Dst: PR_Unlock
      Src: /src/nss/lib/base/arena.c:549,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/arena.c:550,1
    - Dst: PR_Unlock
      Src: /src/nss/lib/base/arena.c:571,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 509
    functionDepth: 2
    functionLinenumber: 509
    functionLinenumberEnd: 574
    functionName: 'nssArenaMark *

      nssArena_Mark(NSSArena *arena)'
    functionSourceFile: /src/nss/lib/base/arena.c
    functionUses: 0
    functionsReached:
    - nssArena_verifyPointer
    - PL_ARENA_MARK
    - nss_zalloc_arena_locked
    - PR_Lock
    - nss_SetError
    - PR_Unlock
    - PR_GetCurrentThread
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: 'NSS_IMPLEMENT nssArenaMark *

      nssArena_Mark(NSSArena *arena)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: nssArena_verifyPointer
      Src: /src/nss/lib/base/arena.c:590,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/arena.c:596,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/arena.c:602,1
    - Dst: PR_Lock
      Src: /src/nss/lib/base/arena.c:605,1
    - Dst: PR_GetCurrentThread
      Src: /src/nss/lib/base/arena.c:609,1
    - Dst: PR_Unlock
      Src: /src/nss/lib/base/arena.c:610,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/arena.c:611,1
    - Dst: PR_Unlock
      Src: /src/nss/lib/base/arena.c:619,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/arena.c:620,1
    - Dst: nss_arena_call_destructor_chain
      Src: /src/nss/lib/base/arena.c:667,1
    - Dst: PL_ARENA_RELEASE
      Src: /src/nss/lib/base/arena.c:670,1
    - Dst: PR_Unlock
      Src: /src/nss/lib/base/arena.c:674,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 51
    argCount: 3
    argNames:
    - arena
    - arenaMark
    - release
    argTypes:
    - NSSArena*
    - nssArenaMark*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 583
    functionDepth: 2
    functionLinenumber: 583
    functionLinenumberEnd: 676
    functionName: nss_arena_unmark_release
    functionSourceFile: /src/nss/lib/base/arena.c
    functionUses: 0
    functionsReached:
    - nssArena_verifyPointer
    - nss_arena_call_destructor_chain
    - PR_Lock
    - nss_SetError
    - PR_Unlock
    - PR_GetCurrentThread
    - PL_ARENA_RELEASE
    linkageType: ''
    returnType: PRStatus
    signature: "PRStatus nss_arena_unmark_release(NSSArena *arena, nssArenaMark *arenaMark,\n
      \                        PRBool release)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_arena_unmark_release
      Src: /src/nss/lib/base/arena.c:700,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - arena
    - arenaMark
    argTypes:
    - NSSArena*
    - nssArenaMark*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 697
    functionDepth: 3
    functionLinenumber: 697
    functionLinenumberEnd: 701
    functionName: nssArena_Release
    functionSourceFile: /src/nss/lib/base/arena.c
    functionUses: 5
    functionsReached:
    - nss_arena_unmark_release
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nssArena_Release(NSSArena *arena, nssArenaMark *arenaMark)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_arena_unmark_release
      Src: /src/nss/lib/base/arena.c:728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - arena
    - arenaMark
    argTypes:
    - NSSArena*
    - nssArenaMark*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 725
    functionDepth: 3
    functionLinenumber: 725
    functionLinenumberEnd: 729
    functionName: nssArena_Unmark
    functionSourceFile: /src/nss/lib/base/arena.c
    functionUses: 5
    functionsReached:
    - nss_arena_unmark_release
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nssArena_Unmark(NSSArena *arena, nssArenaMark *arenaMark)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PL_ARENA_ALLOCATE
      Src: /src/nss/lib/base/arena.c:751,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/arena.c:753,1
    - Dst: nsslibc_memset
      Src: /src/nss/lib/base/arena.c:765,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - arena
    - size
    argTypes:
    - NSSArena*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 744
    functionDepth: 1
    functionLinenumber: 744
    functionLinenumberEnd: 767
    functionName: nss_zalloc_arena_locked
    functionSourceFile: /src/nss/lib/base/arena.c
    functionUses: 1
    functionsReached:
    - PL_ARENA_ALLOCATE
    - nss_SetError
    - nsslibc_memset
    linkageType: ''
    returnType: void
    signature: 'void *

      nss_zalloc_arena_locked(NSSArena *arena, PRUint32 size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_ZAlloc
      Src: /src/nss/lib/base/arena.c:795,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - arenaOpt
    - size
    argTypes:
    - NSSArena*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 792
    functionDepth: 1
    functionLinenumber: 792
    functionLinenumberEnd: 796
    functionName: NSS_ZAlloc
    functionSourceFile: /src/nss/lib/base/arena.c
    functionUses: 0
    functionsReached:
    - nss_ZAlloc
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: 'NSS_IMPLEMENT *

      NSS_ZAlloc(NSSArena *arenaOpt, PRUint32 size)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/base/arena.c:829,1
    - Dst: PR_Calloc
      Src: /src/nss/lib/base/arena.c:835,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/arena.c:837,1
    - Dst: nssArena_verifyPointer
      Src: /src/nss/lib/base/arena.c:850,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/arena.c:857,1
    - Dst: PR_Lock
      Src: /src/nss/lib/base/arena.c:860,1
    - Dst: PR_GetCurrentThread
      Src: /src/nss/lib/base/arena.c:864,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/arena.c:865,1
    - Dst: PR_Unlock
      Src: /src/nss/lib/base/arena.c:866,1
    - Dst: nss_zalloc_arena_locked
      Src: /src/nss/lib/base/arena.c:872,1
    - Dst: PR_Unlock
      Src: /src/nss/lib/base/arena.c:874,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 2
    argNames:
    - arenaOpt
    - size
    argTypes:
    - NSSArena*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 821
    functionDepth: 2
    functionLinenumber: 821
    functionLinenumberEnd: 878
    functionName: nss_ZAlloc
    functionSourceFile: /src/nss/lib/base/arena.c
    functionUses: 14
    functionsReached:
    - nssArena_verifyPointer
    - nss_zalloc_arena_locked
    - PR_Calloc
    - PR_Lock
    - nss_SetError
    - PR_GetCurrentThread
    - PR_Unlock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: 'NSS_IMPLEMENT *

      nss_ZAlloc(NSSArena *arenaOpt, PRUint32 size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/base/arena.c:900,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pointer
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 897
    functionDepth: 1
    functionLinenumber: 897
    functionLinenumberEnd: 901
    functionName: NSS_ZFreeIf
    functionSourceFile: /src/nss/lib/base/arena.c
    functionUses: 0
    functionsReached:
    - nss_ZFreeIf
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT NSS_ZFreeIf(void *pointer)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nsslibc_memset
      Src: /src/nss/lib/base/arena.c:937,1
    - Dst: PR_Free
      Src: /src/nss/lib/base/arena.c:938,1
    - Dst: nssArena_verifyPointer
      Src: /src/nss/lib/base/arena.c:943,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/arena.c:950,1
    - Dst: PR_Lock
      Src: /src/nss/lib/base/arena.c:953,1
    - Dst: nsslibc_memset
      Src: /src/nss/lib/base/arena.c:955,1
    - Dst: PR_Unlock
      Src: /src/nss/lib/base/arena.c:959,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - pointer
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 921
    functionDepth: 2
    functionLinenumber: 921
    functionLinenumberEnd: 963
    functionName: nss_ZFreeIf
    functionSourceFile: /src/nss/lib/base/arena.c
    functionUses: 83
    functionsReached:
    - nssArena_verifyPointer
    - PR_Free
    - PR_Lock
    - nss_SetError
    - PR_Unlock
    - nsslibc_memset
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nss_ZFreeIf(void *pointer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_ZRealloc
      Src: /src/nss/lib/base/arena.c:988,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pointer
    - newSize
    argTypes:
    - void*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 985
    functionDepth: 1
    functionLinenumber: 985
    functionLinenumberEnd: 989
    functionName: NSS_ZRealloc
    functionSourceFile: /src/nss/lib/base/arena.c
    functionUses: 0
    functionsReached:
    - nss_ZRealloc
    linkageType: ''
    returnType: NSS_EXTERN
    signature: 'NSS_EXTERN *

      NSS_ZRealloc(void *pointer, PRUint32 newSize)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/base/arena.c:1021,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/arena.c:1026,1
    - Dst: PR_Calloc
      Src: /src/nss/lib/base/arena.c:1043,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/arena.c:1045,1
    - Dst: nsslibc_memcpy
      Src: /src/nss/lib/base/arena.c:1054,1
    - Dst: nsslibc_memset
      Src: /src/nss/lib/base/arena.c:1055,1
    - Dst: nsslibc_memcpy
      Src: /src/nss/lib/base/arena.c:1058,1
    - Dst: nsslibc_memset
      Src: /src/nss/lib/base/arena.c:1061,1
    - Dst: PR_Free
      Src: /src/nss/lib/base/arena.c:1063,1
    - Dst: nssArena_verifyPointer
      Src: /src/nss/lib/base/arena.c:1070,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/arena.c:1077,1
    - Dst: PR_Lock
      Src: /src/nss/lib/base/arena.c:1080,1
    - Dst: PR_GetCurrentThread
      Src: /src/nss/lib/base/arena.c:1084,1
    - Dst: PR_Unlock
      Src: /src/nss/lib/base/arena.c:1085,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/arena.c:1086,1
    - Dst: nsslibc_memset
      Src: /src/nss/lib/base/arena.c:1106,1
    - Dst: PR_Unlock
      Src: /src/nss/lib/base/arena.c:1107,1
    - Dst: PL_ARENA_ALLOCATE
      Src: /src/nss/lib/base/arena.c:1111,1
    - Dst: PR_Unlock
      Src: /src/nss/lib/base/arena.c:1113,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/arena.c:1114,1
    - Dst: nsslibc_memcpy
      Src: /src/nss/lib/base/arena.c:1123,1
    - Dst: nsslibc_memset
      Src: /src/nss/lib/base/arena.c:1124,1
    - Dst: nsslibc_memset
      Src: /src/nss/lib/base/arena.c:1126,1
    - Dst: PR_Unlock
      Src: /src/nss/lib/base/arena.c:1129,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 74
    argCount: 2
    argNames:
    - pointer
    - newSize
    argTypes:
    - void*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1133
      start: 1011
    functionDepth: 2
    functionLinenumber: 1011
    functionLinenumberEnd: 1133
    functionName: nss_ZRealloc
    functionSourceFile: /src/nss/lib/base/arena.c
    functionUses: 2
    functionsReached:
    - nssArena_verifyPointer
    - PL_ARENA_ALLOCATE
    - PR_Free
    - PR_Calloc
    - PR_Lock
    - nsslibc_memcpy
    - nss_SetError
    - PR_GetCurrentThread
    - PR_Unlock
    - nsslibc_memset
    linkageType: ''
    returnType: NSS_EXTERN
    signature: 'NSS_EXTERN *

      nss_ZRealloc(void *pointer, PRUint32 newSize)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssPointerTracker_finalize
      Src: /src/nss/lib/base/arena.c:1140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1143
      start: 1135
    functionDepth: 1
    functionLinenumber: 1135
    functionLinenumberEnd: 1143
    functionName: nssArena_Shutdown
    functionSourceFile: /src/nss/lib/base/arena.c
    functionUses: 1
    functionsReached:
    - nssPointerTracker_finalize
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus nssArena_Shutdown(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - arenaOpt
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 349
    functionName: nss_ZNEW
    functionSourceFile: /src/nss/lib/base/base.h
    functionUses: 62
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nss_ZNEW(arenaOpt, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - arenaOpt
    - ','
    - type
    - ','
    - quantity
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 372
    functionName: nss_ZNEWARRAY
    functionSourceFile: /src/nss/lib/base/base.h
    functionUses: 31
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nss_ZNEWARRAY(arenaOpt, type, quantity)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - p
    - ','
    - type
    - ','
    - quantity
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 392
    functionName: nss_ZREALLOCARRAY
    functionSourceFile: /src/nss/lib/base/base.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nss_ZREALLOCARRAY(p, type, quantity)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 431
    functionName: nssArena_VERIFYPOINTER
    functionSourceFile: /src/nss/lib/base/base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nssArena_VERIFYPOINTER(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 435
    functionName: nssArena_VERIFYPOINTER
    functionSourceFile: /src/nss/lib/base/base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nssArena_VERIFYPOINTER(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - str
    - ','
    - memb
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 1102
    functionDepth: 0
    functionLinenumber: 1102
    functionLinenumberEnd: 1103
    functionName: nsslibc_offsetof
    functionSourceFile: /src/nss/lib/base/base.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nsslibc_offsetof(str, memb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetModuleHandleW
      Src: /src/nss/lib/base/error.c:87,1
    - Dst: GetProcAddress
      Src: /src/nss/lib/base/error.c:89,1
    - Dst: PR_NewThreadPrivateIndex
      Src: /src/nss/lib/base/error.c:91,1
    - Dst: PR_NewThreadPrivateIndex
      Src: /src/nss/lib/base/error.c:94,1
    - Dst: PR_NewThreadPrivateIndex
      Src: /src/nss/lib/base/error.c:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 98
    functionName: error_once_function
    functionSourceFile: /src/nss/lib/base/error.c
    functionUses: 0
    functionsReached:
    - PR_NewThreadPrivateIndex
    - GetProcAddress
    - GetModuleHandleW
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus error_once_function(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PR_CallOnce
      Src: /src/nss/lib/base/error.c:118,1
    - Dst: PR_GetThreadPrivate
      Src: /src/nss/lib/base/error.c:124,1
    - Dst: PR_MIN
      Src: /src/nss/lib/base/error.c:131,1
    - Dst: PR_Calloc
      Src: /src/nss/lib/base/error.c:139,1
    - Dst: nsslibc_memcpy
      Src: /src/nss/lib/base/error.c:143,1
    - Dst: PR_SetThreadPrivate
      Src: /src/nss/lib/base/error.c:149,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 151
    functionName: error_get_my_stack
    functionSourceFile: /src/nss/lib/base/error.c
    functionUses: 0
    functionsReached:
    - PR_MIN
    - PR_SetThreadPrivate
    - PR_Calloc
    - nsslibc_memcpy
    - PR_CallOnce
    - PR_GetThreadPrivate
    linkageType: ''
    returnType: error_stack
    signature: 'error_stack *

      error_get_my_stack(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: error_get_my_stack
      Src: /src/nss/lib/base/error.c:186,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 197
    functionName: NSS_GetError
    functionSourceFile: /src/nss/lib/base/error.c
    functionUses: 4
    functionsReached:
    - error_get_my_stack
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT NSS_GetError(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: error_get_my_stack
      Src: /src/nss/lib/base/error.c:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 230
    functionName: NSS_GetErrorStack
    functionSourceFile: /src/nss/lib/base/error.c
    functionUses: 1
    functionsReached:
    - error_get_my_stack
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: 'NSS_IMPLEMENT *

      NSS_GetErrorStack(void)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nss_ClearErrorStack
      Src: /src/nss/lib/base/error.c:246,1
    - Dst: error_get_my_stack
      Src: /src/nss/lib/base/error.c:250,1
    - Dst: memmove
      Src: /src/nss/lib/base/error.c:259,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - error
    argTypes:
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 240
    functionDepth: 2
    functionLinenumber: 240
    functionLinenumberEnd: 264
    functionName: nss_SetError
    functionSourceFile: /src/nss/lib/base/error.c
    functionUses: 179
    functionsReached:
    - error_get_my_stack
    - nss_ClearErrorStack
    - memmove
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nss_SetError(PRUint32 error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: error_get_my_stack
      Src: /src/nss/lib/base/error.c:275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 272
    functionDepth: 2
    functionLinenumber: 272
    functionLinenumberEnd: 284
    functionName: nss_ClearErrorStack
    functionSourceFile: /src/nss/lib/base/error.c
    functionUses: 3
    functionsReached:
    - error_get_my_stack
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nss_ClearErrorStack(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_SetThreadPrivate
      Src: /src/nss/lib/base/error.c:296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 301
    functionName: nss_DestroyErrorStack
    functionSourceFile: /src/nss/lib/base/error.c
    functionUses: 1
    functionsReached:
    - PR_SetThreadPrivate
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nss_DestroyErrorStack(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - arenaOpt
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 140
    functionName: NSS_ZNEW
    functionSourceFile: /src/nss/lib/base/nssbase.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NSS_ZNEW(arenaOpt, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - arenaOpt
    - ','
    - type
    - ','
    - quantity
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 163
    functionName: NSS_ZNEWARRAY
    functionSourceFile: /src/nss/lib/base/nssbase.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NSS_ZNEWARRAY(arenaOpt, type, quantity)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssArena_verifyPointer
      Src: /src/nss/lib/base/hashops.c:22,1
    - Dst: nss_ZAlloc
      Src: /src/nss/lib/base/hashops.c:28,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - pool
    - size
    argTypes:
    - void*
    - PRSize
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 15
    functionDepth: 3
    functionLinenumber: 15
    functionLinenumberEnd: 29
    functionName: PR_CALLBACK::nss_arena_hash_alloc_table
    functionSourceFile: /src/nss/lib/base/hashops.c
    functionUses: 0
    functionsReached:
    - nssArena_verifyPointer
    - nss_ZAlloc
    linkageType: ''
    returnType: void
    signature: 'void *PR_CALLBACK

      nss_arena_hash_alloc_table(void *pool, PRSize size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/base/hashops.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pool
    - item
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 3
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: PR_CALLBACK::nss_arena_hash_free_table
    functionSourceFile: /src/nss/lib/base/hashops.c
    functionUses: 0
    functionsReached:
    - nss_ZFreeIf
    linkageType: ''
    returnType: void
    signature: 'void PR_CALLBACK

      nss_arena_hash_free_table(void *pool, void *item)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nssArena_verifyPointer
      Src: /src/nss/lib/base/hashops.c:44,1
    - Dst: nss_ZNEW
      Src: /src/nss/lib/base/hashops.c:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - pool
    - key
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 51
    functionName: PR_CALLBACK::nss_arena_hash_alloc_entry
    functionSourceFile: /src/nss/lib/base/hashops.c
    functionUses: 0
    functionsReached:
    - nssArena_verifyPointer
    - nss_ZNEW
    linkageType: ''
    returnType: PLHashEntry
    signature: 'PLHashEntry *PR_CALLBACK

      nss_arena_hash_alloc_entry(void *pool, const void *key)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/base/hashops.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - pool
    - he
    - flag
    argTypes:
    - void*
    - PLHashEntry*
    - PRUintn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 53
    functionDepth: 3
    functionLinenumber: 53
    functionLinenumberEnd: 59
    functionName: PR_CALLBACK::nss_arena_hash_free_entry
    functionSourceFile: /src/nss/lib/base/hashops.c
    functionUses: 0
    functionsReached:
    - nss_ZFreeIf
    linkageType: ''
    returnType: void
    signature: 'void PR_CALLBACK

      nss_arena_hash_free_entry(void *pool, PLHashEntry *he, PRUintn flag)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - list
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: NSSLIST_LOCK_IF
    functionSourceFile: /src/nss/lib/base/list.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NSSLIST_LOCK_IF(list)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - list
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: NSSLIST_UNLOCK_IF
    functionSourceFile: /src/nss/lib/base/list.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NSSLIST_UNLOCK_IF(list)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: pointer_compare
    functionSourceFile: /src/nss/lib/base/list.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool pointer_compare(void *a, void *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nssList*::compareFunc
      Src: /src/nss/lib/base/list.c:62,1
    - Dst: PR_LIST_TAIL
      Src: /src/nss/lib/base/list.c:65,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/base/list.c:69,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - list
    - data
    argTypes:
    - nssList*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 72
    functionName: nsslist_get_matching_element
    functionSourceFile: /src/nss/lib/base/list.c
    functionUses: 0
    functionsReached:
    - PR_LIST_TAIL
    - PR_NEXT_LINK
    - nssList*::compareFunc
    linkageType: ''
    returnType: nssListElement
    signature: 'nssListElement *

      nsslist_get_matching_element(nssList *list, void *data)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: nssArena_Create
      Src: /src/nss/lib/base/list.c:84,1
    - Dst: nss_ZNEW
      Src: /src/nss/lib/base/list.c:90,1
    - Dst: NSSArena_Destroy
      Src: /src/nss/lib/base/list.c:93,1
    - Dst: PZ_NewLock
      Src: /src/nss/lib/base/list.c:98,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/base/list.c:101,1
    - Dst: NSSArena_Destroy
      Src: /src/nss/lib/base/list.c:103,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 2
    argNames:
    - arenaOpt
    - threadSafe
    argTypes:
    - NSSArena*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 74
    functionDepth: 3
    functionLinenumber: 74
    functionLinenumberEnd: 112
    functionName: nssList_Create
    functionSourceFile: /src/nss/lib/base/list.c
    functionUses: 16
    functionsReached:
    - nssArena_Create
    - nss_ZNEW
    - nss_ZFreeIf
    - PZ_NewLock
    - NSSArena_Destroy
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: 'NSS_IMPLEMENT *

      nssList_Create(NSSArena *arenaOpt, PRBool threadSafe)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nssList_Clear
      Src: /src/nss/lib/base/list.c:121,1
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/base/list.c:124,1
    - Dst: NSSArena_Destroy
      Src: /src/nss/lib/base/list.c:127,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/base/list.c:130,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - list
    argTypes:
    - nssList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 114
    functionDepth: 3
    functionLinenumber: 114
    functionLinenumberEnd: 132
    functionName: nssList_Destroy
    functionSourceFile: /src/nss/lib/base/list.c
    functionUses: 17
    functionsReached:
    - nss_ZFreeIf
    - PZ_DestroyLock
    - NSSArena_Destroy
    - nssList_Clear
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nssList_Destroy(nssList *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - list
    - compareFunc
    argTypes:
    - nssList*
    - nssListCompareFunc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 138
    functionName: nssList_SetCompareFunction
    functionSourceFile: /src/nss/lib/base/list.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nssList_SetCompareFunction(nssList *list, nssListCompareFunc
      compareFunc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - list
    - sortFunc
    argTypes:
    - nssList*
    - nssListSortFunc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 145
    functionName: nssList_SetSortFunction
    functionSourceFile: /src/nss/lib/base/list.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nssList_SetSortFunction(nssList *list, nssListSortFunc
      sortFunc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list
    argTypes:
    - nssList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: nssListCompareFunc::nssList_GetCompareFunction
    functionSourceFile: /src/nss/lib/base/list.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: 'NSS_IMPLEMENT nssListCompareFunc

      nssList_GetCompareFunction(nssList *list)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NSSLIST_LOCK_IF
      Src: /src/nss/lib/base/list.c:161,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/base/list.c:168,1
    - Dst: PR_REMOVE_LINK
      Src: /src/nss/lib/base/list.c:169,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/base/list.c:170,1
    - Dst: NSSLIST_UNLOCK_IF
      Src: /src/nss/lib/base/list.c:174,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - list
    - destructor
    argTypes:
    - nssList*
    - nssListElementDestructorFunc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 153
    functionDepth: 3
    functionLinenumber: 153
    functionLinenumberEnd: 175
    functionName: nssList_Clear
    functionSourceFile: /src/nss/lib/base/list.c
    functionUses: 2
    functionsReached:
    - PR_NEXT_LINK
    - PR_REMOVE_LINK
    - nss_ZFreeIf
    - NSSLIST_LOCK_IF
    - NSSLIST_UNLOCK_IF
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nssList_Clear(nssList *list, nssListElementDestructorFunc
      destructor)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: nss_ZNEW
      Src: /src/nss/lib/base/list.c:180,1
    - Dst: PR_INIT_CLIST
      Src: /src/nss/lib/base/list.c:184,1
    - Dst: nssList*::sortFunc
      Src: /src/nss/lib/base/list.c:194,1
    - Dst: PR_INSERT_BEFORE
      Src: /src/nss/lib/base/list.c:196,1
    - Dst: PR_LIST_TAIL
      Src: /src/nss/lib/base/list.c:202,1
    - Dst: PR_INSERT_AFTER
      Src: /src/nss/lib/base/list.c:204,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/base/list.c:207,1
    - Dst: PR_APPEND_LINK
      Src: /src/nss/lib/base/list.c:211,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 2
    argNames:
    - list
    - data
    argTypes:
    - nssList*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 218
    functionName: nsslist_add_element
    functionSourceFile: /src/nss/lib/base/list.c
    functionUses: 0
    functionsReached:
    - PR_LIST_TAIL
    - PR_INSERT_AFTER
    - PR_INSERT_BEFORE
    - PR_NEXT_LINK
    - nss_ZNEW
    - PR_APPEND_LINK
    - nssList*::sortFunc
    - PR_INIT_CLIST
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus nsslist_add_element(nssList *list, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSSLIST_LOCK_IF
      Src: /src/nss/lib/base/list.c:223,1
    - Dst: nsslist_add_element
      Src: /src/nss/lib/base/list.c:224,1
    - Dst: NSSLIST_UNLOCK_IF
      Src: /src/nss/lib/base/list.c:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - list
    - data
    argTypes:
    - nssList*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 227
    functionName: nssList_Add
    functionSourceFile: /src/nss/lib/base/list.c
    functionUses: 5
    functionsReached:
    - NSSLIST_LOCK_IF
    - nsslist_add_element
    - NSSLIST_UNLOCK_IF
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nssList_Add(nssList *list, void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSSLIST_LOCK_IF
      Src: /src/nss/lib/base/list.c:234,1
    - Dst: nsslist_get_matching_element
      Src: /src/nss/lib/base/list.c:235,1
    - Dst: NSSLIST_UNLOCK_IF
      Src: /src/nss/lib/base/list.c:238,1
    - Dst: nsslist_add_element
      Src: /src/nss/lib/base/list.c:241,1
    - Dst: NSSLIST_UNLOCK_IF
      Src: /src/nss/lib/base/list.c:242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - list
    - data
    argTypes:
    - nssList*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 229
    functionDepth: 2
    functionLinenumber: 229
    functionLinenumberEnd: 244
    functionName: nssList_AddUnique
    functionSourceFile: /src/nss/lib/base/list.c
    functionUses: 3
    functionsReached:
    - NSSLIST_LOCK_IF
    - nsslist_get_matching_element
    - nsslist_add_element
    - NSSLIST_UNLOCK_IF
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nssList_AddUnique(nssList *list, void *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NSSLIST_LOCK_IF
      Src: /src/nss/lib/base/list.c:250,1
    - Dst: nsslist_get_matching_element
      Src: /src/nss/lib/base/list.c:251,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/base/list.c:254,1
    - Dst: PR_REMOVE_LINK
      Src: /src/nss/lib/base/list.c:256,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/base/list.c:257,1
    - Dst: NSSLIST_UNLOCK_IF
      Src: /src/nss/lib/base/list.c:262,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - list
    - data
    argTypes:
    - nssList*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 246
    functionDepth: 3
    functionLinenumber: 246
    functionLinenumberEnd: 264
    functionName: nssList_Remove
    functionSourceFile: /src/nss/lib/base/list.c
    functionUses: 4
    functionsReached:
    - nsslist_get_matching_element
    - PR_NEXT_LINK
    - PR_REMOVE_LINK
    - nss_ZFreeIf
    - NSSLIST_LOCK_IF
    - NSSLIST_UNLOCK_IF
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nssList_Remove(nssList *list, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSSLIST_LOCK_IF
      Src: /src/nss/lib/base/list.c:270,1
    - Dst: nsslist_get_matching_element
      Src: /src/nss/lib/base/list.c:271,1
    - Dst: NSSLIST_UNLOCK_IF
      Src: /src/nss/lib/base/list.c:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - list
    - data
    argTypes:
    - nssList*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 266
    functionDepth: 2
    functionLinenumber: 266
    functionLinenumberEnd: 274
    functionName: nssList_Get
    functionSourceFile: /src/nss/lib/base/list.c
    functionUses: 0
    functionsReached:
    - NSSLIST_LOCK_IF
    - nsslist_get_matching_element
    - NSSLIST_UNLOCK_IF
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: 'NSS_IMPLEMENT *

      nssList_Get(nssList *list, void *data)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list
    argTypes:
    - nssList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 280
    functionName: nssList_Count
    functionSourceFile: /src/nss/lib/base/list.c
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nssList_Count(nssList *list)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PR_ASSERT
      Src: /src/nss/lib/base/list.c:287,1
    - Dst: NSSLIST_LOCK_IF
      Src: /src/nss/lib/base/list.c:292,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/base/list.c:297,1
    - Dst: NSSLIST_UNLOCK_IF
      Src: /src/nss/lib/base/list.c:302,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - list
    - rvArray
    - maxElements
    argTypes:
    - nssList*
    - void**
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 304
    functionName: nssList_GetArray
    functionSourceFile: /src/nss/lib/base/list.c
    functionUses: 12
    functionsReached:
    - NSSLIST_LOCK_IF
    - PR_NEXT_LINK
    - NSSLIST_UNLOCK_IF
    - PR_ASSERT
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nssList_GetArray(nssList *list, void **rvArray, PRUint32
      maxElements)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nssList_Create
      Src: /src/nss/lib/base/list.c:311,1
    - Dst: NSSLIST_LOCK_IF
      Src: /src/nss/lib/base/list.c:315,1
    - Dst: nssList_Add
      Src: /src/nss/lib/base/list.c:319,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/base/list.c:320,1
    - Dst: NSSLIST_UNLOCK_IF
      Src: /src/nss/lib/base/list.c:326,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - list
    argTypes:
    - nssList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 306
    functionDepth: 4
    functionLinenumber: 306
    functionLinenumberEnd: 328
    functionName: nssList_Clone
    functionSourceFile: /src/nss/lib/base/list.c
    functionUses: 0
    functionsReached:
    - PR_NEXT_LINK
    - nssList_Create
    - nssList_Add
    - NSSLIST_LOCK_IF
    - NSSLIST_UNLOCK_IF
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: 'NSS_IMPLEMENT *

      nssList_Clone(nssList *list)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nss_ZNEW
      Src: /src/nss/lib/base/list.c:334,1
    - Dst: nssList_Clone
      Src: /src/nss/lib/base/list.c:338,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/base/list.c:340,1
    - Dst: PZ_NewLock
      Src: /src/nss/lib/base/list.c:345,1
    - Dst: nssList_Destroy
      Src: /src/nss/lib/base/list.c:347,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/base/list.c:348,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 330
    functionDepth: 5
    functionLinenumber: 330
    functionLinenumberEnd: 353
    functionName: 'nssListIterator *

      nssList_CreateIterator(nssList *list)'
    functionSourceFile: /src/nss/lib/base/list.c
    functionUses: 0
    functionsReached:
    - nssList_Clone
    - nss_ZNEW
    - nss_ZFreeIf
    - nssList_Destroy
    - PZ_NewLock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: 'NSS_IMPLEMENT nssListIterator *

      nssList_CreateIterator(nssList *list)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/base/list.c:359,1
    - Dst: nssList_Destroy
      Src: /src/nss/lib/base/list.c:362,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/base/list.c:364,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - iter
    argTypes:
    - nssListIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 355
    functionDepth: 4
    functionLinenumber: 355
    functionLinenumberEnd: 365
    functionName: nssListIterator_Destroy
    functionSourceFile: /src/nss/lib/base/list.c
    functionUses: 8
    functionsReached:
    - nss_ZFreeIf
    - PZ_DestroyLock
    - nssList_Destroy
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nssListIterator_Destroy(nssListIterator *iter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSSLIST_LOCK_IF
      Src: /src/nss/lib/base/list.c:370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - iter
    argTypes:
    - nssListIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 376
    functionName: nssListIterator_Start
    functionSourceFile: /src/nss/lib/base/list.c
    functionUses: 7
    functionsReached:
    - NSSLIST_LOCK_IF
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: 'NSS_IMPLEMENT *

      nssListIterator_Start(nssListIterator *iter)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/base/list.c:389,1
    - Dst: PR_LIST_TAIL
      Src: /src/nss/lib/base/list.c:391,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - iter
    argTypes:
    - nssListIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 398
    functionName: nssListIterator_Next
    functionSourceFile: /src/nss/lib/base/list.c
    functionUses: 7
    functionsReached:
    - PR_LIST_TAIL
    - PR_NEXT_LINK
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: 'NSS_IMPLEMENT *

      nssListIterator_Next(nssListIterator *iter)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Unlock
      Src: /src/nss/lib/base/list.c:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - iter
    argTypes:
    - nssListIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 405
    functionName: nssListIterator_Finish
    functionSourceFile: /src/nss/lib/base/list.c
    functionUses: 7
    functionsReached:
    - PZ_Unlock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nssListIterator_Finish(nssListIterator *iter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/base/libc.c:45,1
    - Dst: memcpy
      Src: /src/nss/lib/base/libc.c:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - dest
    - source
    - n
    argTypes:
    - void*
    - void*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 40
    functionDepth: 3
    functionLinenumber: 40
    functionLinenumberEnd: 51
    functionName: nsslibc_memcpy
    functionSourceFile: /src/nss/lib/base/libc.c
    functionUses: 12
    functionsReached:
    - memcpy
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: 'NSS_IMPLEMENT *

      nsslibc_memcpy(void *dest, const void *source, PRUint32 n)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/base/libc.c:69,1
    - Dst: memset
      Src: /src/nss/lib/base/libc.c:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - dest
    - byte
    - n
    argTypes:
    - void*
    - PRUint8
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 64
    functionDepth: 3
    functionLinenumber: 64
    functionLinenumberEnd: 75
    functionName: nsslibc_memset
    functionSourceFile: /src/nss/lib/base/libc.c
    functionUses: 13
    functionsReached:
    - memset
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: 'NSS_IMPLEMENT *

      nsslibc_memset(void *dest, PRUint8 byte, PRUint32 n)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/base/libc.c:95,1
    - Dst: memcmp
      Src: /src/nss/lib/base/libc.c:107,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - a
    - b
    - len
    - statusOpt
    argTypes:
    - void*
    - void*
    - PRUint32
    - PRStatus*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 89
    functionDepth: 3
    functionLinenumber: 89
    functionLinenumberEnd: 112
    functionName: nsslibc_memequal
    functionSourceFile: /src/nss/lib/base/libc.c
    functionUses: 3
    functionsReached:
    - memcmp
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nsslibc_memequal(const void *a, const void *b, PRUint32
      len,\n                 PRStatus *statusOpt)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/base/libc.c:125,1
    - Dst: memcmp
      Src: /src/nss/lib/base/libc.c:137,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - a
    - b
    - len
    - statusOpt
    argTypes:
    - void*
    - void*
    - PRUint32
    - PRStatus*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 118
    functionDepth: 3
    functionLinenumber: 118
    functionLinenumberEnd: 139
    functionName: nsslibc_memcmp
    functionSourceFile: /src/nss/lib/base/libc.c
    functionUses: 0
    functionsReached:
    - memcmp
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nsslibc_memcmp(const void *a, const void *b, PRUint32
      len, PRStatus *statusOpt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: nss_identity_hash
    functionSourceFile: /src/nss/lib/base/hash.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PLHashNumber
    signature: PLHashNumber nss_identity_hash(const void *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_ROTATE_LEFT32
      Src: /src/nss/lib/base/hash.c:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - key
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 64
    functionName: nss_item_hash
    functionSourceFile: /src/nss/lib/base/hash.c
    functionUses: 0
    functionsReached:
    - PR_ROTATE_LEFT32
    linkageType: ''
    returnType: PLHashNumber
    signature: PLHashNumber nss_item_hash(const void *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssItem_Equal
      Src: /src/nss/lib/base/hash.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v1
    - v2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 71
    functionName: nss_compare_items
    functionSourceFile: /src/nss/lib/base/hash.c
    functionUses: 0
    functionsReached:
    - nssItem_Equal
    linkageType: ''
    returnType: int
    signature: int nss_compare_items(const void *v1, const void *v2)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: nssArena_verifyPointer
      Src: /src/nss/lib/base/hash.c:86,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/hash.c:87,1
    - Dst: nssArena_Create
      Src: /src/nss/lib/base/hash.c:96,1
    - Dst: nss_ZNEW
      Src: /src/nss/lib/base/hash.c:100,1
    - Dst: PZ_NewLock
      Src: /src/nss/lib/base/hash.c:105,1
    - Dst: PL_NewHashTable
      Src: /src/nss/lib/base/hash.c:111,1
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/base/hash.c:114,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/base/hash.c:124,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 5
    argNames:
    - arenaOpt
    - numBuckets
    - keyHash
    - keyCompare
    - valueCompare
    argTypes:
    - NSSArena*
    - PRUint32
    - PLHashFunction
    - PLHashComparator
    - PLHashComparator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 77
    functionDepth: 3
    functionLinenumber: 77
    functionLinenumberEnd: 126
    functionName: nssHash_Create
    functionSourceFile: /src/nss/lib/base/hash.c
    functionUses: 1
    functionsReached:
    - nssArena_Create
    - nssArena_verifyPointer
    - nss_ZNEW
    - nss_ZFreeIf
    - nss_SetError
    - PZ_DestroyLock
    - PZ_NewLock
    - PL_NewHashTable
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nnssHash_Create(NSSArena *arenaOpt, PRUint32 numBuckets,
      PLHashFunction keyHash,\n               PLHashComparator keyCompare, PLHashComparator
      valueCompare)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssHash_Create
      Src: /src/nss/lib/base/hash.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - arenaOpt
    - numBuckets
    argTypes:
    - NSSArena*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 132
    functionDepth: 4
    functionLinenumber: 132
    functionLinenumberEnd: 137
    functionName: nssHash_CreatePointer
    functionSourceFile: /src/nss/lib/base/hash.c
    functionUses: 0
    functionsReached:
    - nssHash_Create
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: 'NSS_IMPLEMENT *

      nssHash_CreatePointer(NSSArena *arenaOpt, PRUint32 numBuckets)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssHash_Create
      Src: /src/nss/lib/base/hash.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - arenaOpt
    - numBuckets
    argTypes:
    - NSSArena*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 143
    functionDepth: 4
    functionLinenumber: 143
    functionLinenumberEnd: 148
    functionName: nssHash_CreateString
    functionSourceFile: /src/nss/lib/base/hash.c
    functionUses: 1
    functionsReached:
    - nssHash_Create
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: 'NSS_IMPLEMENT *

      nssHash_CreateString(NSSArena *arenaOpt, PRUint32 numBuckets)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssHash_Create
      Src: /src/nss/lib/base/hash.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - arenaOpt
    - numBuckets
    argTypes:
    - NSSArena*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 154
    functionDepth: 4
    functionLinenumber: 154
    functionLinenumberEnd: 159
    functionName: nssHash_CreateItem
    functionSourceFile: /src/nss/lib/base/hash.c
    functionUses: 2
    functionsReached:
    - nssHash_Create
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: 'NSS_IMPLEMENT *

      nssHash_CreateItem(NSSArena *arenaOpt, PRUint32 numBuckets)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/base/hash.c:168,1
    - Dst: PL_HashTableDestroy
      Src: /src/nss/lib/base/hash.c:169,1
    - Dst: nssArena_Destroy
      Src: /src/nss/lib/base/hash.c:171,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/base/hash.c:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - hash
    argTypes:
    - nssHash*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 165
    functionDepth: 3
    functionLinenumber: 165
    functionLinenumberEnd: 175
    functionName: nssHash_Destroy
    functionSourceFile: /src/nss/lib/base/hash.c
    functionUses: 3
    functionsReached:
    - nss_ZFreeIf
    - PZ_DestroyLock
    - PL_HashTableDestroy
    - nssArena_Destroy
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nssHash_Destroy(nssHash *hash)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/base/hash.c:187,1
    - Dst: PL_HashTableAdd
      Src: /src/nss/lib/base/hash.c:189,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/hash.c:191,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/hash.c:193,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/base/hash.c:199,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - hash
    - key
    - value
    argTypes:
    - nssHash*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 181
    functionDepth: 3
    functionLinenumber: 181
    functionLinenumberEnd: 202
    functionName: nssHash_Add
    functionSourceFile: /src/nss/lib/base/hash.c
    functionUses: 7
    functionsReached:
    - PL_HashTableAdd
    - PZ_Unlock
    - PZ_Lock
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nssHash_Add(nssHash *hash, const void *key, const void
      *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/base/hash.c:213,1
    - Dst: PL_HashTableRemove
      Src: /src/nss/lib/base/hash.c:215,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/base/hash.c:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - hash
    - it
    argTypes:
    - nssHash*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 222
    functionName: nssHash_Remove
    functionSourceFile: /src/nss/lib/base/hash.c
    functionUses: 7
    functionsReached:
    - PL_HashTableRemove
    - PZ_Lock
    - PZ_Unlock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nssHash_Remove(nssHash *hash, const void *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/base/hash.c:233,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/base/hash.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - hash
    argTypes:
    - nssHash*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 240
    functionName: nssHash_Count
    functionSourceFile: /src/nss/lib/base/hash.c
    functionUses: 2
    functionsReached:
    - PZ_Lock
    - PZ_Unlock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nssHash_Count(nssHash *hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/base/hash.c:251,1
    - Dst: PL_HashTableLookup
      Src: /src/nss/lib/base/hash.c:253,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/base/hash.c:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - hash
    - it
    argTypes:
    - nssHash*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 262
    functionName: nssHash_Exists
    functionSourceFile: /src/nss/lib/base/hash.c
    functionUses: 0
    functionsReached:
    - PL_HashTableLookup
    - PZ_Lock
    - PZ_Unlock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nssHash_Exists(nssHash *hash, const void *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/base/hash.c:273,1
    - Dst: PL_HashTableLookup
      Src: /src/nss/lib/base/hash.c:275,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/base/hash.c:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - hash
    - it
    argTypes:
    - nssHash*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 280
    functionName: nssHash_Lookup
    functionSourceFile: /src/nss/lib/base/hash.c
    functionUses: 21
    functionsReached:
    - PL_HashTableLookup
    - PZ_Lock
    - PZ_Unlock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: 'NSS_IMPLEMENT *

      nssHash_Lookup(nssHash *hash, const void *it)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct arg_str*::fcn
      Src: /src/nss/lib/base/hash.c:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - he
    - index
    - arg
    argTypes:
    - PLHashEntry*
    - PRIntn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 293
    functionName: nss_hash_enumerator
    functionSourceFile: /src/nss/lib/base/hash.c
    functionUses: 0
    functionsReached:
    - struct arg_str*::fcn
    linkageType: ''
    returnType: PRIntn
    signature: PRIntn nss_hash_enumerator(PLHashEntry *he, PRIntn index, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/base/hash.c:307,1
    - Dst: PL_HashTableEnumerateEntries
      Src: /src/nss/lib/base/hash.c:309,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/base/hash.c:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - hash
    - fcn
    - closure
    argTypes:
    - nssHash*
    - nssHashIterator
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 314
    functionName: nssHash_Iterate
    functionSourceFile: /src/nss/lib/base/hash.c
    functionUses: 6
    functionsReached:
    - PL_HashTableEnumerateEntries
    - PZ_Lock
    - PZ_Unlock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nssHash_Iterate(nssHash *hash, nssHashIterator fcn, void
      *closure)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: PR_CALLBACK::identity_hash
    functionSourceFile: /src/nss/lib/base/tracker.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PLHashNumber
    signature: 'PLHashNumber PR_CALLBACK

      identity_hash(const void *key)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PZ_NewLock
      Src: /src/nss/lib/base/tracker.c:45,1
    - Dst: PL_NewHashTable
      Src: /src/nss/lib/base/tracker.c:51,1
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/base/tracker.c:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 60
    functionName: trackerOnceFunc
    functionSourceFile: /src/nss/lib/base/tracker.c
    functionUses: 0
    functionsReached:
    - PZ_DestroyLock
    - PZ_NewLock
    - PL_NewHashTable
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus trackerOnceFunc(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_CallOnceWithArg
      Src: /src/nss/lib/base/tracker.c:86,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/tracker.c:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - tracker
    argTypes:
    - nssPointerTracker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 83
    functionDepth: 3
    functionLinenumber: 83
    functionLinenumberEnd: 92
    functionName: nssPointerTracker_initialize
    functionSourceFile: /src/nss/lib/base/tracker.c
    functionUses: 2
    functionsReached:
    - PR_CallOnceWithArg
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nssPointerTracker_initialize(nssPointerTracker *tracker)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - he
    - index
    - arg
    argTypes:
    - PLHashEntry*
    - PRIntn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: PR_CALLBACK::count_entries
    functionSourceFile: /src/nss/lib/base/tracker.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRIntn
    signature: 'PRIntn PR_CALLBACK

      count_entries(PLHashEntry *he, PRIntn index, void *arg)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/base/tracker.c:151,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/tracker.c:156,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/base/tracker.c:161,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/base/tracker.c:164,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/tracker.c:165,1
    - Dst: PL_HashTableEnumerateEntries
      Src: /src/nss/lib/base/tracker.c:174,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/base/tracker.c:178,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/tracker.c:179,1
    - Dst: PL_HashTableDestroy
      Src: /src/nss/lib/base/tracker.c:184,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/base/tracker.c:190,1
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/base/tracker.c:191,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 1
    argNames:
    - tracker
    argTypes:
    - nssPointerTracker*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 145
    functionDepth: 3
    functionLinenumber: 145
    functionLinenumberEnd: 194
    functionName: nssPointerTracker_finalize
    functionSourceFile: /src/nss/lib/base/tracker.c
    functionUses: 1
    functionsReached:
    - PL_HashTableDestroy
    - PL_HashTableEnumerateEntries
    - PZ_Unlock
    - PZ_Lock
    - nss_SetError
    - PZ_DestroyLock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nssPointerTracker_finalize(nssPointerTracker *tracker)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/base/tracker.c:226,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/tracker.c:231,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/base/tracker.c:235,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/base/tracker.c:238,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/tracker.c:239,1
    - Dst: PL_HashTableLookup
      Src: /src/nss/lib/base/tracker.c:243,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/base/tracker.c:245,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/tracker.c:246,1
    - Dst: PL_HashTableAdd
      Src: /src/nss/lib/base/tracker.c:250,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/base/tracker.c:252,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/tracker.c:255,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 2
    argNames:
    - tracker
    - pointer
    argTypes:
    - nssPointerTracker*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 219
    functionDepth: 3
    functionLinenumber: 219
    functionLinenumberEnd: 260
    functionName: nssPointerTracker_add
    functionSourceFile: /src/nss/lib/base/tracker.c
    functionUses: 1
    functionsReached:
    - PL_HashTableLookup
    - PL_HashTableAdd
    - PZ_Unlock
    - PZ_Lock
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nssPointerTracker_add(nssPointerTracker *tracker, const
      void *pointer)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/base/tracker.c:291,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/tracker.c:296,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/base/tracker.c:300,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/base/tracker.c:303,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/tracker.c:304,1
    - Dst: PL_HashTableRemove
      Src: /src/nss/lib/base/tracker.c:308,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/base/tracker.c:309,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/tracker.c:312,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - tracker
    - pointer
    argTypes:
    - nssPointerTracker*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 285
    functionDepth: 3
    functionLinenumber: 285
    functionLinenumberEnd: 317
    functionName: nssPointerTracker_remove
    functionSourceFile: /src/nss/lib/base/tracker.c
    functionUses: 1
    functionsReached:
    - PZ_Lock
    - PL_HashTableRemove
    - nss_SetError
    - PZ_Unlock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nssPointerTracker_remove(nssPointerTracker *tracker,
      const void *pointer)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/base/tracker.c:350,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/tracker.c:355,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/base/tracker.c:359,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/base/tracker.c:362,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/tracker.c:363,1
    - Dst: PL_HashTableLookup
      Src: /src/nss/lib/base/tracker.c:367,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/base/tracker.c:368,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/tracker.c:371,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - tracker
    - pointer
    argTypes:
    - nssPointerTracker*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 344
    functionDepth: 3
    functionLinenumber: 344
    functionLinenumberEnd: 376
    functionName: nssPointerTracker_verify
    functionSourceFile: /src/nss/lib/base/tracker.c
    functionUses: 1
    functionsReached:
    - PZ_Lock
    - PL_HashTableLookup
    - nss_SetError
    - PZ_Unlock
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nssPointerTracker_verify(nssPointerTracker *tracker,
      const void *pointer)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/base/utf8.c:45,1
    - Dst: PL_strcasecmp
      Src: /src/nss/lib/base/utf8.c:62,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - a
    - b
    - statusOpt
    argTypes:
    - NSSUTF8*
    - NSSUTF8*
    - PRStatus*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 40
    functionDepth: 3
    functionLinenumber: 40
    functionLinenumberEnd: 67
    functionName: nssUTF8_CaseIgnoreMatch
    functionSourceFile: /src/nss/lib/base/utf8.c
    functionUses: 0
    functionsReached:
    - PL_strcasecmp
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nssUTF8_CaseIgnoreMatch(const NSSUTF8 *a, const NSSUTF8
      *b, PRStatus *statusOpt)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/base/utf8.c:99,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 57
    argCount: 3
    argNames:
    - a
    - b
    - statusOpt
    argTypes:
    - NSSUTF8*
    - NSSUTF8*
    - PRStatus*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 91
    functionDepth: 3
    functionLinenumber: 91
    functionLinenumberEnd: 172
    functionName: nssUTF8_PrintableMatch
    functionSourceFile: /src/nss/lib/base/utf8.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nssUTF8_PrintableMatch(const NSSUTF8 *a, const NSSUTF8
      *b, PRStatus *statusOpt)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/base/utf8.c:199,1
    - Dst: nssArena_verifyPointer
      Src: /src/nss/lib/base/utf8.c:204,1
    - Dst: PL_strlen
      Src: /src/nss/lib/base/utf8.c:210,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/utf8.c:214,1
    - Dst: nss_ZAlloc
      Src: /src/nss/lib/base/utf8.c:220,1
    - Dst: nsslibc_memcpy
      Src: /src/nss/lib/base/utf8.c:225,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - s
    - arenaOpt
    argTypes:
    - NSSUTF8*
    - NSSArena*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 191
    functionDepth: 4
    functionLinenumber: 191
    functionLinenumberEnd: 227
    functionName: nssUTF8_Duplicate
    functionSourceFile: /src/nss/lib/base/utf8.c
    functionUses: 12
    functionsReached:
    - PL_strlen
    - nssArena_verifyPointer
    - nss_ZAlloc
    - nsslibc_memcpy
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: 'NSS_IMPLEMENT *

      nssUTF8_Duplicate(const NSSUTF8 *s, NSSArena *arenaOpt)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/base/utf8.c:252,1
    - Dst: PL_strlen
      Src: /src/nss/lib/base/utf8.c:260,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/utf8.c:264,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - s
    - statusOpt
    argTypes:
    - NSSUTF8*
    - PRStatus*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 245
    functionDepth: 3
    functionLinenumber: 245
    functionLinenumberEnd: 277
    functionName: nssUTF8_Size
    functionSourceFile: /src/nss/lib/base/utf8.c
    functionUses: 6
    functionsReached:
    - PL_strlen
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nssUTF8_Size(const NSSUTF8 *s, PRStatus *statusOpt)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/base/utf8.c:304,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/utf8.c:328,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/utf8.c:334,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/utf8.c:340,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/utf8.c:346,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/utf8.c:354,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/utf8.c:359,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/utf8.c:368,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/utf8.c:377,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 83
    argCount: 2
    argNames:
    - s
    - statusOpt
    argTypes:
    - NSSUTF8*
    - PRStatus*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 296
    functionDepth: 3
    functionLinenumber: 296
    functionLinenumberEnd: 398
    functionName: nssUTF8_Length
    functionSourceFile: /src/nss/lib/base/utf8.c
    functionUses: 1
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nssUTF8_Length(const NSSUTF8 *s, PRStatus *statusOpt)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: nssArena_verifyPointer
      Src: /src/nss/lib/base/utf8.c:434,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/utf8.c:440,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/utf8.c:448,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/utf8.c:462,1
    - Dst: nssUTF8_Duplicate
      Src: /src/nss/lib/base/utf8.c:472,1
    - Dst: nss_ZAlloc
      Src: /src/nss/lib/base/utf8.c:474,1
    - Dst: nsslibc_memcpy
      Src: /src/nss/lib/base/utf8.c:479,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/utf8.c:485,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/utf8.c:489,1
    - Dst: nssUTF8_Duplicate
      Src: /src/nss/lib/base/utf8.c:493,1
    - Dst: nss_ZAlloc
      Src: /src/nss/lib/base/utf8.c:495,1
    - Dst: nsslibc_memcpy
      Src: /src/nss/lib/base/utf8.c:500,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/utf8.c:510,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/utf8.c:513,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/utf8.c:516,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 56
    argCount: 4
    argNames:
    - arenaOpt
    - type
    - inputString
    - size
    argTypes:
    - NSSArena*
    - nssStringType
    - void*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 425
    functionDepth: 5
    functionLinenumber: 425
    functionLinenumberEnd: 521
    functionName: nssUTF8_Create
    functionSourceFile: /src/nss/lib/base/utf8.c
    functionUses: 3
    functionsReached:
    - nssArena_verifyPointer
    - nss_ZAlloc
    - nsslibc_memcpy
    - nss_SetError
    - nssUTF8_Duplicate
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nnssUTF8_Create(NSSArena *arenaOpt, nssStringType
      type, const void *inputString,\n               PRUint32 size /* in bytes, not
      characters */\n)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: nssArena_verifyPointer
      Src: /src/nss/lib/base/utf8.c:532,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/utf8.c:538,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/utf8.c:545,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/utf8.c:548,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/utf8.c:551,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/utf8.c:554,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/utf8.c:557,1
    - Dst: nssUTF8_Duplicate
      Src: /src/nss/lib/base/utf8.c:560,1
    - Dst: nss_ZNEW
      Src: /src/nss/lib/base/utf8.c:566,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/base/utf8.c:568,1
    - Dst: nssUTF8_Size
      Src: /src/nss/lib/base/utf8.c:577,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/base/utf8.c:580,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/utf8.c:586,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/utf8.c:589,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 58
    argCount: 4
    argNames:
    - arenaOpt
    - rvOpt
    - type
    - string
    argTypes:
    - NSSArena*
    - NSSItem*
    - nssStringType
    - NSSUTF8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 523
    functionDepth: 5
    functionLinenumber: 523
    functionLinenumberEnd: 594
    functionName: nssUTF8_GetEncoding
    functionSourceFile: /src/nss/lib/base/utf8.c
    functionUses: 0
    functionsReached:
    - nssArena_verifyPointer
    - nss_ZNEW
    - nss_ZFreeIf
    - nss_SetError
    - nssUTF8_Duplicate
    - nssUTF8_Size
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nnssUTF8_GetEncoding(NSSArena *arenaOpt, NSSItem *rvOpt,
      nssStringType type,\n                    NSSUTF8 *string)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/base/utf8.c:615,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/utf8.c:620,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/utf8.c:625,1
    - Dst: nssUTF8_Size
      Src: /src/nss/lib/base/utf8.c:634,1
    - Dst: nsslibc_memcpy
      Src: /src/nss/lib/base/utf8.c:638,1
    - Dst: nsslibc_memset
      Src: /src/nss/lib/base/utf8.c:660,1
    - Dst: nsslibc_memcpy
      Src: /src/nss/lib/base/utf8.c:661,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 36
    argCount: 4
    argNames:
    - string
    - buffer
    - bufferSize
    - pad
    argTypes:
    - NSSUTF8*
    - char*
    - PRUint32
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 607
    functionDepth: 4
    functionLinenumber: 607
    functionLinenumberEnd: 665
    functionName: nssUTF8_CopyIntoFixedBuffer
    functionSourceFile: /src/nss/lib/base/utf8.c
    functionUses: 9
    functionsReached:
    - nsslibc_memcpy
    - nss_SetError
    - nssUTF8_Size
    - nsslibc_memset
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT nssUTF8_CopyIntoFixedBuffer(NSSUTF8 *string, char *buffer,
      PRUint32 bufferSize,\n                            char pad)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/base/utf8.c:679,1
    - Dst: nssUTF8_Size
      Src: /src/nss/lib/base/utf8.c:687,1
    - Dst: nssUTF8_Size
      Src: /src/nss/lib/base/utf8.c:692,1
    - Dst: nsslibc_memequal
      Src: /src/nss/lib/base/utf8.c:701,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - a
    - b
    - statusOpt
    argTypes:
    - NSSUTF8*
    - NSSUTF8*
    - PRStatus*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 672
    functionDepth: 4
    functionLinenumber: 672
    functionLinenumberEnd: 702
    functionName: nssUTF8_Equal
    functionSourceFile: /src/nss/lib/base/utf8.c
    functionUses: 3
    functionsReached:
    - nsslibc_memequal
    - nss_SetError
    - nssUTF8_Size
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nssUTF8_Equal(const NSSUTF8 *a, const NSSUTF8 *b, PRStatus
      *statusOpt)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: nssArena_verifyPointer
      Src: /src/nss/lib/base/item.c:39,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/item.c:46,1
    - Dst: nss_ZNEW
      Src: /src/nss/lib/base/item.c:53,1
    - Dst: nss_ZAlloc
      Src: /src/nss/lib/base/item.c:62,1
    - Dst: nsslibc_memcpy
      Src: /src/nss/lib/base/item.c:68,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/base/item.c:75,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 4
    argNames:
    - arenaOpt
    - rvOpt
    - length
    - data
    argTypes:
    - NSSArena*
    - NSSItem*
    - PRUint32
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 31
    functionDepth: 4
    functionLinenumber: 31
    functionLinenumberEnd: 79
    functionName: nssItem_Create
    functionSourceFile: /src/nss/lib/base/item.c
    functionUses: 10
    functionsReached:
    - nssArena_verifyPointer
    - nss_ZNEW
    - nss_ZAlloc
    - nss_ZFreeIf
    - nsslibc_memcpy
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: "NSS_IMPLEMENT *\nnssItem_Create(NSSArena *arenaOpt, NSSItem *rvOpt,
      PRUint32 length,\n               const void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_ClearErrorStack
      Src: /src/nss/lib/base/item.c:84,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/base/item.c:86,1
    - Dst: nss_ZFreeIf
      Src: /src/nss/lib/base/item.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - item
    argTypes:
    - NSSItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 81
    functionDepth: 3
    functionLinenumber: 81
    functionLinenumberEnd: 88
    functionName: nssItem_Destroy
    functionSourceFile: /src/nss/lib/base/item.c
    functionUses: 1
    functionsReached:
    - nss_ZFreeIf
    - nss_ClearErrorStack
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nssItem_Destroy(NSSItem *item)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nssArena_verifyPointer
      Src: /src/nss/lib/base/item.c:111,1
    - Dst: nss_SetError
      Src: /src/nss/lib/base/item.c:117,1
    - Dst: nssItem_Create
      Src: /src/nss/lib/base/item.c:122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - obj
    - arenaOpt
    - rvOpt
    argTypes:
    - NSSItem*
    - NSSArena*
    - NSSItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 106
    functionDepth: 5
    functionLinenumber: 106
    functionLinenumberEnd: 123
    functionName: nssItem_Duplicate
    functionSourceFile: /src/nss/lib/base/item.c
    functionUses: 3
    functionsReached:
    - nssArena_verifyPointer
    - nss_SetError
    - nssItem_Create
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: 'NSS_IMPLEMENT *

      nssItem_Duplicate(NSSItem *obj, NSSArena *arenaOpt, NSSItem *rvOpt)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nss_SetError
      Src: /src/nss/lib/base/item.c:144,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - item
    argTypes:
    - NSSItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 139
    functionDepth: 3
    functionLinenumber: 139
    functionLinenumberEnd: 149
    functionName: nssItem_verifyPointer
    functionSourceFile: /src/nss/lib/base/item.c
    functionUses: 0
    functionsReached:
    - nss_SetError
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nssItem_verifyPointer(const NSSItem *item)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nsslibc_memequal
      Src: /src/nss/lib/base/item.c:185,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - one
    - two
    - statusOpt
    argTypes:
    - NSSItem*
    - NSSItem*
    - PRStatus*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 166
    functionDepth: 4
    functionLinenumber: 166
    functionLinenumberEnd: 186
    functionName: nssItem_Equal
    functionSourceFile: /src/nss/lib/base/item.c
    functionUses: 5
    functionsReached:
    - nsslibc_memequal
    linkageType: ''
    returnType: NSS_IMPLEMENT
    signature: NSS_IMPLEMENT nssItem_Equal(const NSSItem *one, const NSSItem *two,
      PRStatus *statusOpt)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - algtag
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 142
    functionName: smime_legacy_pref
    functionSourceFile: /src/nss/lib/smime/smimeutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smime_legacy_pref(SECOidTag algtag)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - which
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 157
    functionName: smime_legacy_to_policy
    functionSourceFile: /src/nss/lib/smime/smimeutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag smime_legacy_to_policy(unsigned long which)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: smime_legacy_to_policy
      Src: /src/nss/lib/smime/smimeutil.c:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - which
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 177
    functionName: smime_legacy_to_oid
    functionSourceFile: /src/nss/lib/smime/smimeutil.c
    functionUses: 0
    functionsReached:
    - smime_legacy_to_policy
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag smime_legacy_to_oid(unsigned long which)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - algtag
    - keybits
    argTypes:
    - SECOidTag
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 200
    functionName: smime_get_policy_tag_from_key_length
    functionSourceFile: /src/nss/lib/smime/smimeutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag smime_get_policy_tag_from_key_length(SECOidTag algtag, unsigned
      long keybits)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PK11_AlgtagToMechanism
      Src: /src/nss/lib/smime/smimeutil.c:210,1
    - Dst: NSS_GetAlgorithmPolicy
      Src: /src/nss/lib/smime/smimeutil.c:219,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/smimeutil.c:221,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - algtag
    - neededPolicy
    argTypes:
    - SECOidTag
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 225
    functionName: smime_allowed_by_policy
    functionSourceFile: /src/nss/lib/smime/smimeutil.c
    functionUses: 0
    functionsReached:
    - PK11_AlgtagToMechanism
    - NSS_GetAlgorithmPolicy
    - PORT_SetError
    linkageType: ''
    returnType: PRBool
    signature: PRBool smime_allowed_by_policy(SECOidTag algtag, PRUint32 neededPolicy)
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 1
    argNames:
    - algtag
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 264
    functionName: smime_keysize_by_cipher
    functionSourceFile: /src/nss/lib/smime/smimeutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smime_keysize_by_cipher(SECOidTag algtag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: smime_keysize_by_cipher
      Src: /src/nss/lib/smime/smimeutil.c:269,1
    - Dst: PK11_AlgtagToMechanism
      Src: /src/nss/lib/smime/smimeutil.c:272,1
    - Dst: PK11_GetMaxKeyLength
      Src: /src/nss/lib/smime/smimeutil.c:273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - algtag
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 266
    functionDepth: 7
    functionLinenumber: 266
    functionLinenumberEnd: 276
    functionName: smime_max_keysize_by_cipher
    functionSourceFile: /src/nss/lib/smime/smimeutil.c
    functionUses: 0
    functionsReached:
    - smime_keysize_by_cipher
    - PK11_GetMaxKeyLength
    - PK11_AlgtagToMechanism
    linkageType: ''
    returnType: int
    signature: int smime_max_keysize_by_cipher(SECOidTag algtag)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - policy
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 290
    functionName: smime_get_alg_from_policy
    functionSourceFile: /src/nss/lib/smime/smimeutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag smime_get_alg_from_policy(SECOidTag policy)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - list
    argTypes:
    - SMIMEList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 310
    functionName: smime_list_length
    functionSourceFile: /src/nss/lib/smime/smimeutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t smime_list_length(const SMIMEList *list)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - list
    - algtag
    argTypes:
    - SMIMEList*
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 327
    functionName: smime_list_index_find
    functionSourceFile: /src/nss/lib/smime/smimeutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t smime_list_index_find(const SMIMEList *list, SECOidTag algtag)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZNew
      Src: /src/nss/lib/smime/smimeutil.c:336,1
    - Dst: PORT_ZNewArray
      Src: /src/nss/lib/smime/smimeutil.c:343,1
    - Dst: PORT_Realloc
      Src: /src/nss/lib/smime/smimeutil.c:353,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - list
    argTypes:
    - SMIMEList**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 362
    functionName: smime_list_grow
    functionSourceFile: /src/nss/lib/smime/smimeutil.c
    functionUses: 0
    functionsReached:
    - PORT_Realloc
    - PORT_ZNewArray
    - PORT_ZNew
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus smime_list_grow(SMIMEList **list)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: smime_list_length
      Src: /src/nss/lib/smime/smimeutil.c:370,1
    - Dst: smime_list_index_find
      Src: /src/nss/lib/smime/smimeutil.c:371,1
    - Dst: smime_list_grow
      Src: /src/nss/lib/smime/smimeutil.c:379,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - list
    - algtag
    argTypes:
    - SMIMEList**
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 366
    functionDepth: 2
    functionLinenumber: 366
    functionLinenumberEnd: 385
    functionName: smime_list_add
    functionSourceFile: /src/nss/lib/smime/smimeutil.c
    functionUses: 0
    functionsReached:
    - smime_list_length
    - smime_list_grow
    - smime_list_index_find
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus smime_list_add(SMIMEList **list, SECOidTag algtag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: smime_list_length
      Src: /src/nss/lib/smime/smimeutil.c:391,1
    - Dst: smime_list_index_find
      Src: /src/nss/lib/smime/smimeutil.c:396,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - list
    - algtag
    argTypes:
    - SMIMEList*
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 407
    functionName: smime_list_remove
    functionSourceFile: /src/nss/lib/smime/smimeutil.c
    functionUses: 0
    functionsReached:
    - smime_list_length
    - smime_list_index_find
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus smime_list_remove(SMIMEList *list, SECOidTag algtag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: smime_list_length
      Src: /src/nss/lib/smime/smimeutil.c:412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - list
    - c_index
    argTypes:
    - SMIMEList*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 420
    functionName: smime_list_fetch_by_index
    functionSourceFile: /src/nss/lib/smime/smimeutil.c
    functionUses: 0
    functionsReached:
    - smime_list_length
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag smime_list_fetch_by_index(const SMIMEList *list, size_t c_index)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Free
      Src: /src/nss/lib/smime/smimeutil.c:427,1
    - Dst: PORT_Free
      Src: /src/nss/lib/smime/smimeutil.c:429,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - list
    argTypes:
    - SMIMEList**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 432
    functionName: smime_free_list
    functionSourceFile: /src/nss/lib/smime/smimeutil.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    linkageType: ''
    returnType: void
    signature: void smime_free_list(SMIMEList **list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/smime/smimeutil.c:437,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/smime/smimeutil.c:439,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 434
    functionDepth: 1
    functionLinenumber: 434
    functionLinenumberEnd: 442
    functionName: smime_lock_algorithm_list
    functionSourceFile: /src/nss/lib/smime/smimeutil.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PZ_Lock
    linkageType: ''
    returnType: void
    signature: void smime_lock_algorithm_list(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/smime/smimeutil.c:447,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/smime/smimeutil.c:449,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 452
    functionName: smime_unlock_algorithm_list
    functionSourceFile: /src/nss/lib/smime/smimeutil.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PZ_Unlock
    linkageType: ''
    returnType: void
    signature: void smime_unlock_algorithm_list(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/smime/smimeutil.c:458,1
    - Dst: smime_free_list
      Src: /src/nss/lib/smime/smimeutil.c:461,1
    - Dst: memset
      Src: /src/nss/lib/smime/smimeutil.c:462,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - appData
    - nssData
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 464
    functionName: smime_shutdown
    functionSourceFile: /src/nss/lib/smime/smimeutil.c
    functionUses: 0
    functionsReached:
    - memset
    - PZ_DestroyLock
    - smime_free_list
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus smime_shutdown(void *appData, void *nssData)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: NSS_RegisterShutdown
      Src: /src/nss/lib/smime/smimeutil.c:477,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/smime/smimeutil.c:479,1
    - Dst: PZ_NewLock
      Src: /src/nss/lib/smime/smimeutil.c:482,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/smime/smimeutil.c:484,1
    - Dst: NSS_GetAlgorithmPolicyAll
      Src: /src/nss/lib/smime/smimeutil.c:493,1
    - Dst: PORT_Free
      Src: /src/nss/lib/smime/smimeutil.c:497,1
    - Dst: NSS_SetAlgorithmPolicy
      Src: /src/nss/lib/smime/smimeutil.c:508,1
    - Dst: smime_list_add
      Src: /src/nss/lib/smime/smimeutil.c:513,1
    - Dst: NSS_GetAlgorithmPolicyAll
      Src: /src/nss/lib/smime/smimeutil.c:520,1
    - Dst: PORT_Free
      Src: /src/nss/lib/smime/smimeutil.c:527,1
    - Dst: smime_list_add
      Src: /src/nss/lib/smime/smimeutil.c:536,1
    - Dst: PORT_ZNewArray
      Src: /src/nss/lib/smime/smimeutil.c:542,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/smime/smimeutil.c:544,1
    - Dst: PORT_ZNewArray
      Src: /src/nss/lib/smime/smimeutil.c:547,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/smime/smimeutil.c:549,1
    - Dst: smime_max_keysize_by_cipher
      Src: /src/nss/lib/smime/smimeutil.c:554,1
    - Dst: smime_legacy_pref
      Src: /src/nss/lib/smime/smimeutil.c:555,1
    - Dst: smime_list_add
      Src: /src/nss/lib/smime/smimeutil.c:589,1
    - Dst: PORT_Free
      Src: /src/nss/lib/smime/smimeutil.c:591,1
    - Dst: PORT_Free
      Src: /src/nss/lib/smime/smimeutil.c:592,1
    - Dst: PORT_Free
      Src: /src/nss/lib/smime/smimeutil.c:593,1
    - Dst: PORT_Free
      Src: /src/nss/lib/smime/smimeutil.c:597,1
    - Dst: PORT_Free
      Src: /src/nss/lib/smime/smimeutil.c:599,1
    - Dst: PORT_Free
      Src: /src/nss/lib/smime/smimeutil.c:601,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 78
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 466
    functionDepth: 8
    functionLinenumber: 466
    functionLinenumberEnd: 603
    functionName: smime_init_once
    functionSourceFile: /src/nss/lib/smime/smimeutil.c
    functionUses: 0
    functionsReached:
    - NSS_RegisterShutdown
    - smime_max_keysize_by_cipher
    - PORT_ZNewArray
    - PORT_Free
    - smime_list_add
    - PORT_GetError
    - smime_legacy_pref
    - NSS_GetAlgorithmPolicyAll
    - PZ_NewLock
    - NSS_SetAlgorithmPolicy
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus smime_init_once(void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NSS_IsInitialized
      Src: /src/nss/lib/smime/smimeutil.c:613,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/smimeutil.c:614,1
    - Dst: PR_CallOnceWithArg
      Src: /src/nss/lib/smime/smimeutil.c:620,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/smimeutil.c:625,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 605
    functionDepth: 1
    functionLinenumber: 605
    functionLinenumberEnd: 627
    functionName: smime_init
    functionSourceFile: /src/nss/lib/smime/smimeutil.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PR_CallOnceWithArg
    - NSS_IsInitialized
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus smime_init(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: smime_init
      Src: /src/nss/lib/smime/smimeutil.c:637,1
    - Dst: smime_legacy_to_oid
      Src: /src/nss/lib/smime/smimeutil.c:642,1
    - Dst: smime_allowed_by_policy
      Src: /src/nss/lib/smime/smimeutil.c:643,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/smimeutil.c:644,1
    - Dst: smime_lock_algorithm_list
      Src: /src/nss/lib/smime/smimeutil.c:648,1
    - Dst: smime_list_add
      Src: /src/nss/lib/smime/smimeutil.c:650,1
    - Dst: smime_list_remove
      Src: /src/nss/lib/smime/smimeutil.c:652,1
    - Dst: smime_unlock_algorithm_list
      Src: /src/nss/lib/smime/smimeutil.c:654,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - which
    - 'on'
    argTypes:
    - unsigned long
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 632
    functionDepth: 3
    functionLinenumber: 632
    functionLinenumberEnd: 656
    functionName: NSS_SMIMEUtil_EnableCipher
    functionSourceFile: /src/nss/lib/smime/smimeutil.c
    functionUses: 0
    functionsReached:
    - smime_init
    - smime_allowed_by_policy
    - smime_legacy_to_oid
    - smime_list_add
    - smime_unlock_algorithm_list
    - smime_list_remove
    - smime_lock_algorithm_list
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_SMIMEUtil_EnableCipher(unsigned long which, PRBool on)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: smime_legacy_to_oid
      Src: /src/nss/lib/smime/smimeutil.c:664,1
    - Dst: smime_init
      Src: /src/nss/lib/smime/smimeutil.c:669,1
    - Dst: NSS_SetAlgorithmPolicy
      Src: /src/nss/lib/smime/smimeutil.c:674,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - which
    - 'on'
    argTypes:
    - unsigned long
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 661
    functionDepth: 2
    functionLinenumber: 661
    functionLinenumberEnd: 675
    functionName: NSS_SMIMEUtil_AllowCipher
    functionSourceFile: /src/nss/lib/smime/smimeutil.c
    functionUses: 0
    functionsReached:
    - smime_legacy_to_oid
    - NSS_SetAlgorithmPolicy
    - smime_init
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_SMIMEUtil_AllowCipher(unsigned long which, PRBool on)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: smime_init
      Src: /src/nss/lib/smime/smimeutil.c:683,1
    - Dst: smime_get_policy_tag_from_key_length
      Src: /src/nss/lib/smime/smimeutil.c:688,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/smime/smimeutil.c:688,1
    - Dst: PK11_GetKeyStrength
      Src: /src/nss/lib/smime/smimeutil.c:689,1
    - Dst: smime_allowed_by_policy
      Src: /src/nss/lib/smime/smimeutil.c:690,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - algid
    - key
    argTypes:
    - SECAlgorithmID*
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 677
    functionDepth: 4
    functionLinenumber: 677
    functionLinenumberEnd: 691
    functionName: NSS_SMIMEUtil_DecryptionAllowed
    functionSourceFile: /src/nss/lib/smime/smimeutil.c
    functionUses: 0
    functionsReached:
    - SECOID_GetAlgorithmTag
    - PK11_GetKeyStrength
    - smime_init
    - smime_allowed_by_policy
    - smime_get_policy_tag_from_key_length
    linkageType: ''
    returnType: PRBool
    signature: PRBool NSS_SMIMEUtil_DecryptionAllowed(SECAlgorithmID *algid, PK11SymKey
      *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: smime_init
      Src: /src/nss/lib/smime/smimeutil.c:699,1
    - Dst: smime_get_policy_tag_from_key_length
      Src: /src/nss/lib/smime/smimeutil.c:704,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/smime/smimeutil.c:704,1
    - Dst: PK11_GetKeyStrength
      Src: /src/nss/lib/smime/smimeutil.c:705,1
    - Dst: smime_allowed_by_policy
      Src: /src/nss/lib/smime/smimeutil.c:706,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - algid
    - key
    argTypes:
    - SECAlgorithmID*
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 693
    functionDepth: 4
    functionLinenumber: 693
    functionLinenumberEnd: 707
    functionName: NSS_SMIMEUtil_EncryptionAllowed
    functionSourceFile: /src/nss/lib/smime/smimeutil.c
    functionUses: 0
    functionsReached:
    - SECOID_GetAlgorithmTag
    - PK11_GetKeyStrength
    - smime_init
    - smime_allowed_by_policy
    - smime_get_policy_tag_from_key_length
    linkageType: ''
    returnType: PRBool
    signature: PRBool NSS_SMIMEUtil_EncryptionAllowed(SECAlgorithmID *algid, PK11SymKey
      *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/smime/smimeutil.c:716,1
    - Dst: smime_allowed_by_policy
      Src: /src/nss/lib/smime/smimeutil.c:717,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - algid
    argTypes:
    - SECAlgorithmID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 709
    functionDepth: 2
    functionLinenumber: 709
    functionLinenumberEnd: 718
    functionName: NSS_SMIMEUtil_SigningAllowed
    functionSourceFile: /src/nss/lib/smime/smimeutil.c
    functionUses: 0
    functionsReached:
    - smime_allowed_by_policy
    - SECOID_GetAlgorithmTag
    linkageType: ''
    returnType: PRBool
    signature: PRBool NSS_SMIMEUtil_SigningAllowed(SECAlgorithmID *algid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NSS_OptionGet
      Src: /src/nss/lib/smime/smimeutil.c:725,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 720
    functionDepth: 1
    functionLinenumber: 720
    functionLinenumberEnd: 731
    functionName: nss_smime_enforce_key_size
    functionSourceFile: /src/nss/lib/smime/smimeutil.c
    functionUses: 0
    functionsReached:
    - NSS_OptionGet
    linkageType: ''
    returnType: PRBool
    signature: PRBool nss_smime_enforce_key_size(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: nss_smime_enforce_key_size
      Src: /src/nss/lib/smime/smimeutil.c:742,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/smimeutil.c:750,1
    - Dst: CERT_ExtractPublicKey
      Src: /src/nss/lib/smime/smimeutil.c:753,1
    - Dst: SECKEY_EnforceKeySize
      Src: /src/nss/lib/smime/smimeutil.c:756,1
    - Dst: SECKEY_PublicKeyStrengthInBits
      Src: /src/nss/lib/smime/smimeutil.c:757,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/smime/smimeutil.c:760,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/smime/smimeutil.c:766,1
    - Dst: smime_allowed_by_policy
      Src: /src/nss/lib/smime/smimeutil.c:767,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - algid
    - cert
    - key
    argTypes:
    - SECAlgorithmID*
    - CERTCertificate*
    - SECKEYPublicKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 733
    functionDepth: 4
    functionLinenumber: 733
    functionLinenumberEnd: 768
    functionName: NSS_SMIMEUtil_KeyEncodingAllowed
    functionSourceFile: /src/nss/lib/smime/smimeutil.c
    functionUses: 0
    functionsReached:
    - SECKEY_EnforceKeySize
    - SECKEY_DestroyPublicKey
    - SECOID_GetAlgorithmTag
    - SECKEY_PublicKeyStrengthInBits
    - smime_allowed_by_policy
    - PORT_SetError
    - nss_smime_enforce_key_size
    - CERT_ExtractPublicKey
    linkageType: ''
    returnType: PRBool
    signature: "PRBool NSS_SMIMEUtil_KeyEncodingAllowed(SECAlgorithmID *algid, CERTCertificate
      *cert,\n                                 SECKEYPublicKey *key)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nss_smime_enforce_key_size
      Src: /src/nss/lib/smime/smimeutil.c:778,1
    - Dst: SECKEY_EnforceKeySize
      Src: /src/nss/lib/smime/smimeutil.c:780,1
    - Dst: SECKEY_PrivateKeyStrengthInBits
      Src: /src/nss/lib/smime/smimeutil.c:781,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/smime/smimeutil.c:787,1
    - Dst: smime_allowed_by_policy
      Src: /src/nss/lib/smime/smimeutil.c:788,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - algid
    - key
    argTypes:
    - SECAlgorithmID*
    - SECKEYPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 770
    functionDepth: 2
    functionLinenumber: 770
    functionLinenumberEnd: 789
    functionName: NSS_SMIMEUtil_KeyDecodingAllowed
    functionSourceFile: /src/nss/lib/smime/smimeutil.c
    functionUses: 0
    functionsReached:
    - SECKEY_EnforceKeySize
    - SECOID_GetAlgorithmTag
    - smime_allowed_by_policy
    - nss_smime_enforce_key_size
    - SECKEY_PrivateKeyStrengthInBits
    linkageType: ''
    returnType: PRBool
    signature: PRBool NSS_SMIMEUtil_KeyDecodingAllowed(SECAlgorithmID *algid, SECKEYPrivateKey
      *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: smime_init
      Src: /src/nss/lib/smime/smimeutil.c:812,1
    - Dst: smime_lock_algorithm_list
      Src: /src/nss/lib/smime/smimeutil.c:817,1
    - Dst: smime_list_length
      Src: /src/nss/lib/smime/smimeutil.c:818,1
    - Dst: smime_unlock_algorithm_list
      Src: /src/nss/lib/smime/smimeutil.c:819,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 809
    functionDepth: 2
    functionLinenumber: 809
    functionLinenumberEnd: 821
    functionName: NSS_SMIMEUtil_EncryptionPossible
    functionSourceFile: /src/nss/lib/smime/smimeutil.c
    functionUses: 0
    functionsReached:
    - smime_unlock_algorithm_list
    - smime_list_length
    - smime_lock_algorithm_list
    - smime_init
    linkageType: ''
    returnType: PRBool
    signature: PRBool NSS_SMIMEUtil_EncryptionPossible(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: smime_init
      Src: /src/nss/lib/smime/smimeutil.c:829,1
    - Dst: smime_legacy_to_oid
      Src: /src/nss/lib/smime/smimeutil.c:834,1
    - Dst: smime_lock_algorithm_list
      Src: /src/nss/lib/smime/smimeutil.c:836,1
    - Dst: smime_list_length
      Src: /src/nss/lib/smime/smimeutil.c:837,1
    - Dst: smime_list_index_find
      Src: /src/nss/lib/smime/smimeutil.c:838,1
    - Dst: smime_unlock_algorithm_list
      Src: /src/nss/lib/smime/smimeutil.c:839,1
    - Dst: smime_allowed_by_policy
      Src: /src/nss/lib/smime/smimeutil.c:845,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - which
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 846
      start: 823
    functionDepth: 2
    functionLinenumber: 823
    functionLinenumberEnd: 846
    functionName: NSS_SMIMEUtil_EncryptionEnabled
    functionSourceFile: /src/nss/lib/smime/smimeutil.c
    functionUses: 0
    functionsReached:
    - smime_init
    - smime_unlock_algorithm_list
    - smime_legacy_to_oid
    - smime_allowed_by_policy
    - smime_list_index_find
    - smime_lock_algorithm_list
    - smime_list_length
    linkageType: ''
    returnType: PRBool
    signature: PRBool NSS_SMIMEUtil_EncryptionEnabled(int which)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/smime/smimeutil.c:854,1
    - Dst: SEC_ASN1DecodeItem
      Src: /src/nss/lib/smime/smimeutil.c:863,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/smime/smimeutil.c:864,1
    - Dst: SEC_ASN1DecodeInteger
      Src: /src/nss/lib/smime/smimeutil.c:868,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/smime/smimeutil.c:869,1
    - Dst: smime_get_policy_tag_from_key_length
      Src: /src/nss/lib/smime/smimeutil.c:873,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - cap
    argTypes:
    - NSSSMIMECapability*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 848
    functionDepth: 1
    functionLinenumber: 848
    functionLinenumberEnd: 886
    functionName: nss_SMIME_FindCipherForSMIMECap
    functionSourceFile: /src/nss/lib/smime/smimeutil.c
    functionUses: 0
    functionsReached:
    - SEC_ASN1DecodeInteger
    - SECOID_FindOIDTag
    - SEC_ASN1DecodeItem
    - SEC_ASN1_GET
    - smime_get_policy_tag_from_key_length
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag nss_SMIME_FindCipherForSMIMECap(NSSSMIMECapability *cap)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: smime_lock_algorithm_list
      Src: /src/nss/lib/smime/smimeutil.c:909,1
    - Dst: smime_list_length
      Src: /src/nss/lib/smime/smimeutil.c:910,1
    - Dst: smime_list_index_find
      Src: /src/nss/lib/smime/smimeutil.c:916,1
    - Dst: smime_list_index_find
      Src: /src/nss/lib/smime/smimeutil.c:917,1
    - Dst: smime_list_index_find
      Src: /src/nss/lib/smime/smimeutil.c:918,1
    - Dst: smime_list_index_find
      Src: /src/nss/lib/smime/smimeutil.c:919,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/smime/smimeutil.c:937,1
    - Dst: PORT_ArenaZNewArray
      Src: /src/nss/lib/smime/smimeutil.c:941,1
    - Dst: PORT_ArenaZNewArray
      Src: /src/nss/lib/smime/smimeutil.c:942,1
    - Dst: CERT_FindSMimeProfile
      Src: /src/nss/lib/smime/smimeutil.c:961,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/smime/smimeutil.c:967,1
    - Dst: nss_SMIME_FindCipherForSMIMECap
      Src: /src/nss/lib/smime/smimeutil.c:973,1
    - Dst: smime_list_index_find
      Src: /src/nss/lib/smime/smimeutil.c:974,1
    - Dst: CERT_ExtractPublicKey
      Src: /src/nss/lib/smime/smimeutil.c:1004,1
    - Dst: SECKEY_PublicKeyStrengthInBits
      Src: /src/nss/lib/smime/smimeutil.c:1008,1
    - Dst: SECKEY_GetPublicKeyType
      Src: /src/nss/lib/smime/smimeutil.c:1009,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/smime/smimeutil.c:1010,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/smime/smimeutil.c:1067,1
    - Dst: smime_list_fetch_by_index
      Src: /src/nss/lib/smime/smimeutil.c:1076,1
    - Dst: smime_allowed_by_policy
      Src: /src/nss/lib/smime/smimeutil.c:1078,1
    - Dst: smime_unlock_algorithm_list
      Src: /src/nss/lib/smime/smimeutil.c:1092,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/smime/smimeutil.c:1094,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 117
    argCount: 1
    argNames:
    - rcerts
    argTypes:
    - CERTCertificate**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 893
    functionDepth: 8
    functionLinenumber: 893
    functionLinenumberEnd: 1097
    functionName: smime_choose_cipher
    functionSourceFile: /src/nss/lib/smime/smimeutil.c
    functionUses: 0
    functionsReached:
    - nss_SMIME_FindCipherForSMIMECap
    - PORT_ArenaZNewArray
    - SECKEY_DestroyPublicKey
    - PORT_NewArena
    - SECKEY_PublicKeyStrengthInBits
    - smime_allowed_by_policy
    - smime_unlock_algorithm_list
    - PORT_FreeArena
    - smime_list_fetch_by_index
    - smime_list_index_find
    - smime_lock_algorithm_list
    - SEC_QuickDERDecodeItem
    - CERT_FindSMimeProfile
    - SECKEY_GetPublicKeyType
    - smime_list_length
    - CERT_ExtractPublicKey
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag smime_choose_cipher(CERTCertificate **rcerts)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: smime_init
      Src: /src/nss/lib/smime/smimeutil.c:1111,1
    - Dst: smime_choose_cipher
      Src: /src/nss/lib/smime/smimeutil.c:1116,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/smimeutil.c:1118,1
    - Dst: smime_get_alg_from_policy
      Src: /src/nss/lib/smime/smimeutil.c:1122,1
    - Dst: smime_keysize_by_cipher
      Src: /src/nss/lib/smime/smimeutil.c:1123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - rcerts
    - bulkalgtag
    - keysize
    argTypes:
    - CERTCertificate**
    - SECOidTag*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1126
      start: 1105
    functionDepth: 2
    functionLinenumber: 1105
    functionLinenumberEnd: 1126
    functionName: NSS_SMIMEUtil_FindBulkAlgForRecipients
    functionSourceFile: /src/nss/lib/smime/smimeutil.c
    functionUses: 1
    functionsReached:
    - smime_keysize_by_cipher
    - smime_init
    - PORT_SetError
    - smime_choose_cipher
    - smime_get_alg_from_policy
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus NSS_SMIMEUtil_FindBulkAlgForRecipients(CERTCertificate **rcerts,\n
      \                                      SECOidTag *bulkalgtag, int *keysize)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/lib/smime/smimeutil.c:1138,1
    - Dst: smime_get_alg_from_policy
      Src: /src/nss/lib/smime/smimeutil.c:1138,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/smime/smimeutil.c:1143,1
    - Dst: smime_get_alg_from_policy
      Src: /src/nss/lib/smime/smimeutil.c:1152,1
    - Dst: SEC_ASN1EncodeInteger
      Src: /src/nss/lib/smime/smimeutil.c:1153,1
    - Dst: PORT_Free
      Src: /src/nss/lib/smime/smimeutil.c:1155,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/smime/smimeutil.c:1158,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/smime/smimeutil.c:1159,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/smime/smimeutil.c:1160,1
    - Dst: PORT_Free
      Src: /src/nss/lib/smime/smimeutil.c:1162,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1131
    functionDepth: 1
    functionLinenumber: 1131
    functionLinenumberEnd: 1170
    functionName: smime_create_capability
    functionSourceFile: /src/nss/lib/smime/smimeutil.c
    functionUses: 0
    functionsReached:
    - SEC_ASN1EncodeItem
    - SECOID_FindOIDByTag
    - PORT_ZNew
    - PORT_Free
    - SEC_ASN1EncodeInteger
    - SEC_ASN1_GET
    - smime_get_alg_from_policy
    - SECITEM_FreeItem
    linkageType: ''
    returnType: NSSSMIMECapability
    signature: 'NSSSMIMECapability *

      smime_create_capability(SECOidTag cipher)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: smime_init
      Src: /src/nss/lib/smime/smimeutil.c:1194,1
    - Dst: HASH_GetHashOidTagByHashType
      Src: /src/nss/lib/smime/smimeutil.c:1200,1
    - Dst: smime_lock_algorithm_list
      Src: /src/nss/lib/smime/smimeutil.c:1206,1
    - Dst: smime_list_length
      Src: /src/nss/lib/smime/smimeutil.c:1208,1
    - Dst: smime_unlock_algorithm_list
      Src: /src/nss/lib/smime/smimeutil.c:1210,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/smimeutil.c:1211,1
    - Dst: PORT_ZNewArray
      Src: /src/nss/lib/smime/smimeutil.c:1218,1
    - Dst: smime_unlock_algorithm_list
      Src: /src/nss/lib/smime/smimeutil.c:1220,1
    - Dst: smime_list_fetch_by_index
      Src: /src/nss/lib/smime/smimeutil.c:1231,1
    - Dst: smime_allowed_by_policy
      Src: /src/nss/lib/smime/smimeutil.c:1234,1
    - Dst: smime_get_alg_from_policy
      Src: /src/nss/lib/smime/smimeutil.c:1237,1
    - Dst: smime_create_capability
      Src: /src/nss/lib/smime/smimeutil.c:1239,1
    - Dst: smime_unlock_algorithm_list
      Src: /src/nss/lib/smime/smimeutil.c:1251,1
    - Dst: HASH_GetHashOidTagByHashType
      Src: /src/nss/lib/smime/smimeutil.c:1253,1
    - Dst: smime_allowed_by_policy
      Src: /src/nss/lib/smime/smimeutil.c:1255,1
    - Dst: smime_create_capability
      Src: /src/nss/lib/smime/smimeutil.c:1259,1
    - Dst: smime_allowed_by_policy
      Src: /src/nss/lib/smime/smimeutil.c:1274,1
    - Dst: smime_create_capability
      Src: /src/nss/lib/smime/smimeutil.c:1277,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/smime/smimeutil.c:1285,1
    - Dst: PORT_Free
      Src: /src/nss/lib/smime/smimeutil.c:1291,1
    - Dst: PORT_Free
      Src: /src/nss/lib/smime/smimeutil.c:1293,1
    - Dst: PORT_Free
      Src: /src/nss/lib/smime/smimeutil.c:1295,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 63
    argCount: 2
    argNames:
    - poolp
    - dest
    argTypes:
    - PLArenaPool*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1298
      start: 1183
    functionDepth: 2
    functionLinenumber: 1183
    functionLinenumberEnd: 1298
    functionName: NSS_SMIMEUtil_CreateSMIMECapabilities
    functionSourceFile: /src/nss/lib/smime/smimeutil.c
    functionUses: 0
    functionsReached:
    - SEC_ASN1EncodeItem
    - PORT_ZNewArray
    - smime_init
    - smime_unlock_algorithm_list
    - smime_allowed_by_policy
    - PORT_Free
    - smime_list_fetch_by_index
    - smime_get_alg_from_policy
    - smime_create_capability
    - smime_lock_algorithm_list
    - PORT_SetError
    - smime_list_length
    - HASH_GetHashOidTagByHashType
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_SMIMEUtil_CreateSMIMECapabilities(PLArenaPool *poolp,
      SECItem *dest)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/smime/smimeutil.c:1318,1
    - Dst: CERT_GetCertIssuerAndSN
      Src: /src/nss/lib/smime/smimeutil.c:1324,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/smime/smimeutil.c:1328,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/smime/smimeutil.c:1332,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - poolp
    - dest
    - cert
    argTypes:
    - PLArenaPool*
    - SECItem*
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1335
      start: 1308
    functionDepth: 5
    functionLinenumber: 1308
    functionLinenumberEnd: 1335
    functionName: NSS_SMIMEUtil_CreateSMIMEEncKeyPrefs
    functionSourceFile: /src/nss/lib/smime/smimeutil.c
    functionUses: 0
    functionsReached:
    - PORT_FreeArena
    - CERT_GetCertIssuerAndSN
    - SEC_ASN1EncodeItem
    - PORT_NewArena
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_SMIMEUtil_CreateSMIMEEncKeyPrefs(PLArenaPool *poolp,
      SECItem *dest, CERTCertificate *cert)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/smime/smimeutil.c:1355,1
    - Dst: CERT_GetCertIssuerAndSN
      Src: /src/nss/lib/smime/smimeutil.c:1359,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/smime/smimeutil.c:1363,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/smime/smimeutil.c:1363,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/smime/smimeutil.c:1367,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - poolp
    - dest
    - cert
    argTypes:
    - PLArenaPool*
    - SECItem*
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1370
      start: 1345
    functionDepth: 5
    functionLinenumber: 1345
    functionLinenumberEnd: 1370
    functionName: NSS_SMIMEUtil_CreateMSSMIMEEncKeyPrefs
    functionSourceFile: /src/nss/lib/smime/smimeutil.c
    functionUses: 0
    functionsReached:
    - SEC_ASN1EncodeItem
    - PORT_NewArena
    - PORT_FreeArena
    - CERT_GetCertIssuerAndSN
    - SEC_ASN1_GET
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_SMIMEUtil_CreateMSSMIMEEncKeyPrefs(PLArenaPool *poolp,
      SECItem *dest, CERTCertificate *cert)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/smime/smimeutil.c:1389,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/smime/smimeutil.c:1394,1
    - Dst: CERT_FindCertByIssuerAndSN
      Src: /src/nss/lib/smime/smimeutil.c:1401,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/smime/smimeutil.c:1408,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/smime/smimeutil.c:1412,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - certdb
    - DERekp
    argTypes:
    - CERTCertDBHandle*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1415
      start: 1382
    functionDepth: 9
    functionLinenumber: 1382
    functionLinenumberEnd: 1415
    functionName: NSS_SMIMEUtil_GetCertFromEncryptionKeyPreference
    functionSourceFile: /src/nss/lib/smime/smimeutil.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_NewArena
    - PORT_FreeArena
    - SEC_QuickDERDecodeItem
    - CERT_FindCertByIssuerAndSN
    linkageType: ''
    returnType: CERTCertificate
    signature: 'CERTCertificate *

      NSS_SMIMEUtil_GetCertFromEncryptionKeyPreference(CERTCertDBHandle *certdb, SECItem
      *DERekp)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSS_VersionCheck
      Src: /src/nss/lib/smime/smimeutil.c:1433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - importedVersion
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1434
      start: 1419
    functionDepth: 1
    functionLinenumber: 1419
    functionLinenumberEnd: 1434
    functionName: NSSSMIME_VersionCheck
    functionSourceFile: /src/nss/lib/smime/smimeutil.c
    functionUses: 0
    functionsReached:
    - NSS_VersionCheck
    linkageType: ''
    returnType: PRBool
    signature: PRBool NSSSMIME_VersionCheck(const char *importedVersion)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1440
      start: 1436
    functionDepth: 0
    functionLinenumber: 1436
    functionLinenumberEnd: 1440
    functionName: NSSSMIME_GetVersion
    functionSourceFile: /src/nss/lib/smime/smimeutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      NSSSMIME_GetVersion(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZNew
      Src: /src/nss/lib/smime/cmscinfo.c:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cinfo
    argTypes:
    - NSSCMSContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 29
    functionName: NSS_CMSContentInfo_Private_Init
    functionSourceFile: /src/nss/lib/smime/cmscinfo.c
    functionUses: 0
    functionsReached:
    - PORT_ZNew
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_CMSContentInfo_Private_Init(NSSCMSContentInfo *cinfo)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSDigestContext_Cancel
      Src: /src/nss/lib/smime/cmscinfo.c:36,1
    - Dst: NSS_CMSCipherContext_Destroy
      Src: /src/nss/lib/smime/cmscinfo.c:40,1
    - Dst: PORT_Free
      Src: /src/nss/lib/smime/cmscinfo.c:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - privateInfo
    argTypes:
    - NSSCMSContentInfoPrivate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 44
    functionName: nss_cmsContentInfo_private_destroy
    functionSourceFile: /src/nss/lib/smime/cmscinfo.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - NSS_CMSCipherContext_Destroy
    - NSS_CMSDigestContext_Cancel
    linkageType: ''
    returnType: void
    signature: void nss_cmsContentInfo_private_destroy(NSSCMSContentInfoPrivate *privateInfo)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSContentInfo_GetContentTypeTag
      Src: /src/nss/lib/smime/cmscinfo.c:58,1
    - Dst: NSS_CMSEnvelopedData_Destroy
      Src: /src/nss/lib/smime/cmscinfo.c:61,1
    - Dst: NSS_CMSSignedData_Destroy
      Src: /src/nss/lib/smime/cmscinfo.c:64,1
    - Dst: NSS_CMSEncryptedData_Destroy
      Src: /src/nss/lib/smime/cmscinfo.c:67,1
    - Dst: NSS_CMSDigestedData_Destroy
      Src: /src/nss/lib/smime/cmscinfo.c:70,1
    - Dst: NSS_CMSGenericWrapperData_Destroy
      Src: /src/nss/lib/smime/cmscinfo.c:73,1
    - Dst: nss_cmsContentInfo_private_destroy
      Src: /src/nss/lib/smime/cmscinfo.c:78,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/smime/cmscinfo.c:82,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 1
    argNames:
    - cinfo
    argTypes:
    - NSSCMSContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 49
    functionDepth: 4
    functionLinenumber: 49
    functionLinenumberEnd: 84
    functionName: NSS_CMSContentInfo_Destroy
    functionSourceFile: /src/nss/lib/smime/cmscinfo.c
    functionUses: 0
    functionsReached:
    - NSS_CMSEnvelopedData_Destroy
    - NSS_CMSSignedData_Destroy
    - nss_cmsContentInfo_private_destroy
    - NSS_CMSEncryptedData_Destroy
    - NSS_CMSDigestedData_Destroy
    - NSS_CMSGenericWrapperData_Destroy
    - PK11_FreeSymKey
    - NSS_CMSContentInfo_GetContentTypeTag
    linkageType: ''
    returnType: void
    signature: void NSS_CMSContentInfo_Destroy(NSSCMSContentInfo *cinfo)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSContentInfo_GetContentTypeTag
      Src: /src/nss/lib/smime/cmscinfo.c:98,1
    - Dst: NSS_CMSType_IsWrapper
      Src: /src/nss/lib/smime/cmscinfo.c:122,1
    - Dst: NSS_CMSContentInfo_Private_Init
      Src: /src/nss/lib/smime/cmscinfo.c:130,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 1
    argNames:
    - cinfo
    argTypes:
    - NSSCMSContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 133
    functionName: NSS_CMSContentInfo_GetChildContentInfo
    functionSourceFile: /src/nss/lib/smime/cmscinfo.c
    functionUses: 0
    functionsReached:
    - NSS_CMSContentInfo_Private_Init
    - NSS_CMSType_IsWrapper
    - NSS_CMSContentInfo_GetContentTypeTag
    linkageType: ''
    returnType: NSSCMSContentInfo
    signature: 'NSSCMSContentInfo *

      NSS_CMSContentInfo_GetChildContentInfo(NSSCMSContentInfo *cinfo)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSContentInfo_Private_Init
      Src: /src/nss/lib/smime/cmscinfo.c:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - cinfo
    - dontStream
    argTypes:
    - NSSCMSContentInfo*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 150
    functionName: NSS_CMSContentInfo_SetDontStream
    functionSourceFile: /src/nss/lib/smime/cmscinfo.c
    functionUses: 0
    functionsReached:
    - NSS_CMSContentInfo_Private_Init
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_CMSContentInfo_SetDontStream(NSSCMSContentInfo *cinfo,
      PRBool dontStream)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/lib/smime/cmscinfo.c:164,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/smime/cmscinfo.c:170,1
    - Dst: NSS_CMSType_IsData
      Src: /src/nss/lib/smime/cmscinfo.c:177,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/smime/cmscinfo.c:183,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmscinfo.c:185,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - cmsg
    - cinfo
    - type
    - ptr
    argTypes:
    - NSSCMSMessage*
    - NSSCMSContentInfo*
    - SECOidTag
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 191
    functionName: NSS_CMSContentInfo_SetContent
    functionSourceFile: /src/nss/lib/smime/cmscinfo.c
    functionUses: 0
    functionsReached:
    - SECOID_FindOIDByTag
    - SECITEM_AllocItem
    - SECITEM_CopyItem
    - PORT_SetError
    - NSS_CMSType_IsData
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus NSS_CMSContentInfo_SetContent(NSSCMSMessage *cmsg, NSSCMSContentInfo
      *cinfo,\n                              SECOidTag type, void *ptr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSContentInfo_SetContent
      Src: /src/nss/lib/smime/cmscinfo.c:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - cmsg
    - cinfo
    - data
    - detached
    argTypes:
    - NSSCMSMessage*
    - NSSCMSContentInfo*
    - SECItem*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 213
    functionName: NSS_CMSContentInfo_SetContent_Data
    functionSourceFile: /src/nss/lib/smime/cmscinfo.c
    functionUses: 4
    functionsReached:
    - NSS_CMSContentInfo_SetContent
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus NSS_CMSContentInfo_SetContent_Data(NSSCMSMessage *cmsg,
      NSSCMSContentInfo *cinfo,\n                                   SECItem *data,
      PRBool detached)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSContentInfo_SetContent
      Src: /src/nss/lib/smime/cmscinfo.c:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmsg
    - cinfo
    - sigd
    argTypes:
    - NSSCMSMessage*
    - NSSCMSContentInfo*
    - NSSCMSSignedData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 220
    functionName: NSS_CMSContentInfo_SetContent_SignedData
    functionSourceFile: /src/nss/lib/smime/cmscinfo.c
    functionUses: 2
    functionsReached:
    - NSS_CMSContentInfo_SetContent
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus NSS_CMSContentInfo_SetContent_SignedData(NSSCMSMessage *cmsg,
      NSSCMSContentInfo *cinfo,\n                                         NSSCMSSignedData
      *sigd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSContentInfo_SetContent
      Src: /src/nss/lib/smime/cmscinfo.c:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmsg
    - cinfo
    - envd
    argTypes:
    - NSSCMSMessage*
    - NSSCMSContentInfo*
    - NSSCMSEnvelopedData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 222
    functionDepth: 2
    functionLinenumber: 222
    functionLinenumberEnd: 227
    functionName: NSS_CMSContentInfo_SetContent_EnvelopedData
    functionSourceFile: /src/nss/lib/smime/cmscinfo.c
    functionUses: 1
    functionsReached:
    - NSS_CMSContentInfo_SetContent
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus NSS_CMSContentInfo_SetContent_EnvelopedData(NSSCMSMessage
      *cmsg, NSSCMSContentInfo *cinfo,\n                                            NSSCMSEnvelopedData
      *envd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSContentInfo_SetContent
      Src: /src/nss/lib/smime/cmscinfo.c:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmsg
    - cinfo
    - digd
    argTypes:
    - NSSCMSMessage*
    - NSSCMSContentInfo*
    - NSSCMSDigestedData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 229
    functionDepth: 2
    functionLinenumber: 229
    functionLinenumberEnd: 234
    functionName: NSS_CMSContentInfo_SetContent_DigestedData
    functionSourceFile: /src/nss/lib/smime/cmscinfo.c
    functionUses: 0
    functionsReached:
    - NSS_CMSContentInfo_SetContent
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus NSS_CMSContentInfo_SetContent_DigestedData(NSSCMSMessage
      *cmsg, NSSCMSContentInfo *cinfo,\n                                           NSSCMSDigestedData
      *digd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSContentInfo_SetContent
      Src: /src/nss/lib/smime/cmscinfo.c:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmsg
    - cinfo
    - encd
    argTypes:
    - NSSCMSMessage*
    - NSSCMSContentInfo*
    - NSSCMSEncryptedData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 241
    functionName: NSS_CMSContentInfo_SetContent_EncryptedData
    functionSourceFile: /src/nss/lib/smime/cmscinfo.c
    functionUses: 1
    functionsReached:
    - NSS_CMSContentInfo_SetContent
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus NSS_CMSContentInfo_SetContent_EncryptedData(NSSCMSMessage
      *cmsg, NSSCMSContentInfo *cinfo,\n                                            NSSCMSEncryptedData
      *encd)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSType_IsWrapper
      Src: /src/nss/lib/smime/cmscinfo.c:266,1
    - Dst: NSS_CMSType_IsData
      Src: /src/nss/lib/smime/cmscinfo.c:267,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - cinfo
    argTypes:
    - NSSCMSContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 270
    functionName: NSS_CMSContentInfo_GetContent
    functionSourceFile: /src/nss/lib/smime/cmscinfo.c
    functionUses: 1
    functionsReached:
    - NSS_CMSType_IsData
    - NSS_CMSType_IsWrapper
    linkageType: ''
    returnType: void
    signature: 'void *

      NSS_CMSContentInfo_GetContent(NSSCMSContentInfo *cinfo)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSContentInfo_GetContentTypeTag
      Src: /src/nss/lib/smime/cmscinfo.c:289,1
    - Dst: NSS_CMSType_IsData
      Src: /src/nss/lib/smime/cmscinfo.c:290,1
    - Dst: NSS_CMSType_IsWrapper
      Src: /src/nss/lib/smime/cmscinfo.c:292,1
    - Dst: NSS_CMSContentInfo_GetChildContentInfo
      Src: /src/nss/lib/smime/cmscinfo.c:293,1
    - Dst: NSS_CMSContentInfo_GetContent
      Src: /src/nss/lib/smime/cmscinfo.c:295,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/smime/cmscinfo.c:298,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - cinfo
    argTypes:
    - NSSCMSContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 278
    functionDepth: 3
    functionLinenumber: 278
    functionLinenumberEnd: 302
    functionName: NSS_CMSContentInfo_GetInnerContent
    functionSourceFile: /src/nss/lib/smime/cmscinfo.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - NSS_CMSContentInfo_GetChildContentInfo
    - NSS_CMSType_IsWrapper
    - NSS_CMSType_IsData
    - NSS_CMSContentInfo_GetContent
    - NSS_CMSContentInfo_GetContentTypeTag
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      NSS_CMSContentInfo_GetInnerContent(NSSCMSContentInfo *cinfo)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOID
      Src: /src/nss/lib/smime/cmscinfo.c:316,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - cinfo
    argTypes:
    - NSSCMSContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 322
    functionName: NSS_CMSContentInfo_GetContentTypeTag
    functionSourceFile: /src/nss/lib/smime/cmscinfo.c
    functionUses: 5
    functionsReached:
    - SECOID_FindOID
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag NSS_CMSContentInfo_GetContentTypeTag(NSSCMSContentInfo *cinfo)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOID
      Src: /src/nss/lib/smime/cmscinfo.c:332,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - cinfo
    argTypes:
    - NSSCMSContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 340
    functionName: NSS_CMSContentInfo_GetContentTypeOID
    functionSourceFile: /src/nss/lib/smime/cmscinfo.c
    functionUses: 0
    functionsReached:
    - SECOID_FindOID
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      NSS_CMSContentInfo_GetContentTypeOID(NSSCMSContentInfo *cinfo)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/smime/cmscinfo.c:354,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - cinfo
    argTypes:
    - NSSCMSContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 358
    functionName: NSS_CMSContentInfo_GetContentEncAlgTag
    functionSourceFile: /src/nss/lib/smime/cmscinfo.c
    functionUses: 1
    functionsReached:
    - SECOID_GetAlgorithmTag
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag NSS_CMSContentInfo_GetContentEncAlgTag(NSSCMSContentInfo
      *cinfo)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cinfo
    argTypes:
    - NSSCMSContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 371
    functionName: NSS_CMSContentInfo_GetContentEncAlg
    functionSourceFile: /src/nss/lib/smime/cmscinfo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECAlgorithmID
    signature: 'SECAlgorithmID *

      NSS_CMSContentInfo_GetContentEncAlg(NSSCMSContentInfo *cinfo)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/lib/smime/cmscinfo.c:382,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - poolp
    - cinfo
    - bulkalgtag
    - parameters
    - keysize
    argTypes:
    - PLArenaPool*
    - NSSCMSContentInfo*
    - SECOidTag
    - SECItem*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 388
    functionName: NSS_CMSContentInfo_SetContentEncAlg
    functionSourceFile: /src/nss/lib/smime/cmscinfo.c
    functionUses: 0
    functionsReached:
    - SECOID_SetAlgorithmID
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus NSS_CMSContentInfo_SetContentEncAlg(PLArenaPool *poolp,
      NSSCMSContentInfo *cinfo,\n                                    SECOidTag bulkalgtag,
      SECItem *parameters, int keysize)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_CopyAlgorithmID
      Src: /src/nss/lib/smime/cmscinfo.c:399,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - poolp
    - cinfo
    - algid
    - keysize
    argTypes:
    - PLArenaPool*
    - NSSCMSContentInfo*
    - SECAlgorithmID*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 407
    functionName: NSS_CMSContentInfo_SetContentEncAlgID
    functionSourceFile: /src/nss/lib/smime/cmscinfo.c
    functionUses: 0
    functionsReached:
    - SECOID_CopyAlgorithmID
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus NSS_CMSContentInfo_SetContentEncAlgID(PLArenaPool *poolp,
      NSSCMSContentInfo *cinfo,\n                                      SECAlgorithmID
      *algid, int keysize)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PK11_ReferenceSymKey
      Src: /src/nss/lib/smime/cmscinfo.c:420,1
    - Dst: PK11_GetKeyStrength
      Src: /src/nss/lib/smime/cmscinfo.c:421,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - cinfo
    - bulkkey
    argTypes:
    - NSSCMSContentInfo*
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 409
    functionDepth: 4
    functionLinenumber: 409
    functionLinenumberEnd: 423
    functionName: NSS_CMSContentInfo_SetBulkKey
    functionSourceFile: /src/nss/lib/smime/cmscinfo.c
    functionUses: 0
    functionsReached:
    - PK11_ReferenceSymKey
    - PK11_GetKeyStrength
    linkageType: ''
    returnType: void
    signature: void NSS_CMSContentInfo_SetBulkKey(NSSCMSContentInfo *cinfo, PK11SymKey
      *bulkkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_ReferenceSymKey
      Src: /src/nss/lib/smime/cmscinfo.c:432,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - cinfo
    argTypes:
    - NSSCMSContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 425
    functionDepth: 2
    functionLinenumber: 425
    functionLinenumberEnd: 433
    functionName: NSS_CMSContentInfo_GetBulkKey
    functionSourceFile: /src/nss/lib/smime/cmscinfo.c
    functionUses: 1
    functionsReached:
    - PK11_ReferenceSymKey
    linkageType: ''
    returnType: PK11SymKey
    signature: 'PK11SymKey *

      NSS_CMSContentInfo_GetBulkKey(NSSCMSContentInfo *cinfo)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cinfo
    argTypes:
    - NSSCMSContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 443
    functionName: NSS_CMSContentInfo_GetBulkKeySize
    functionSourceFile: /src/nss/lib/smime/cmscinfo.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int NSS_CMSContentInfo_GetBulkKeySize(NSSCMSContentInfo *cinfo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CERT_ExtractPublicKey
      Src: /src/nss/lib/smime/cmspubkey.c:38,1
    - Dst: NSS_CMSUtil_EncryptSymKey_RSAPubKey
      Src: /src/nss/lib/smime/cmspubkey.c:42,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/smime/cmspubkey.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - poolp
    - cert
    - bulkkey
    - encKey
    argTypes:
    - PLArenaPool*
    - CERTCertificate*
    - PK11SymKey*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 30
    functionDepth: 4
    functionLinenumber: 30
    functionLinenumberEnd: 45
    functionName: NSS_CMSUtil_EncryptSymKey_RSA
    functionSourceFile: /src/nss/lib/smime/cmspubkey.c
    functionUses: 0
    functionsReached:
    - NSS_CMSUtil_EncryptSymKey_RSAPubKey
    - CERT_ExtractPublicKey
    - SECKEY_DestroyPublicKey
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus NSS_CMSUtil_EncryptSymKey_RSA(PLArenaPool *poolp, CERTCertificate
      *cert,\n                              PK11SymKey *bulkkey,\n                              SECItem
      *encKey)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/smime/cmspubkey.c:57,1
    - Dst: SECKEY_GetPublicKeyType
      Src: /src/nss/lib/smime/cmspubkey.c:62,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/smime/cmspubkey.c:63,1
    - Dst: SECKEY_PublicKeyStrength
      Src: /src/nss/lib/smime/cmspubkey.c:68,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/smime/cmspubkey.c:69,1
    - Dst: PK11_PubWrapSymKey
      Src: /src/nss/lib/smime/cmspubkey.c:75,1
    - Dst: PK11_AlgtagToMechanism
      Src: /src/nss/lib/smime/cmspubkey.c:75,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/smime/cmspubkey.c:81,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/smime/cmspubkey.c:86,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 4
    argNames:
    - poolp
    - publickey
    - bulkkey
    - encKey
    argTypes:
    - PLArenaPool*
    - SECKEYPublicKey*
    - PK11SymKey*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 89
    functionName: NSS_CMSUtil_EncryptSymKey_RSAPubKey
    functionSourceFile: /src/nss/lib/smime/cmspubkey.c
    functionUses: 1
    functionsReached:
    - SECKEY_PublicKeyStrength
    - PORT_Assert
    - PK11_PubWrapSymKey
    - PORT_ArenaAlloc
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - PK11_AlgtagToMechanism
    - SECKEY_GetPublicKeyType
    - PORT_ArenaUnmark
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus NSS_CMSUtil_EncryptSymKey_RSAPubKey(PLArenaPool *poolp,\n
      \                                   SECKEYPublicKey *publickey,\n                                    PK11SymKey
      *bulkkey, SECItem *encKey)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/smime/cmspubkey.c:103,1
    - Dst: PK11_AlgtagToMechanism
      Src: /src/nss/lib/smime/cmspubkey.c:104,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmspubkey.c:106,1
    - Dst: PK11_PubUnwrapSymKey
      Src: /src/nss/lib/smime/cmspubkey.c:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - privkey
    - encKey
    - bulkalgtag
    argTypes:
    - SECKEYPrivateKey*
    - SECItem*
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 110
    functionName: NSS_CMSUtil_DecryptSymKey_RSA
    functionSourceFile: /src/nss/lib/smime/cmspubkey.c
    functionUses: 0
    functionsReached:
    - PK11_AlgtagToMechanism
    - PORT_Assert
    - PORT_SetError
    - PK11_PubUnwrapSymKey
    linkageType: ''
    returnType: PK11SymKey
    signature: 'PK11SymKey *

      NSS_CMSUtil_DecryptSymKey_RSA(SECKEYPrivateKey *privkey, SECItem *encKey, SECOidTag
      bulkalgtag)'
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/smime/cmspubkey.c:164,1
    - Dst: PK11_AlgtagToMechanism
      Src: /src/nss/lib/smime/cmspubkey.c:165,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmspubkey.c:167,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/smime/cmspubkey.c:171,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/smime/cmspubkey.c:172,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/smime/cmspubkey.c:173,1
    - Dst: SEC_ASN1DecodeItem
      Src: /src/nss/lib/smime/cmspubkey.c:190,1
    - Dst: PK11_AlgtagToMechanism
      Src: /src/nss/lib/smime/cmspubkey.c:195,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/smime/cmspubkey.c:195,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/smime/cmspubkey.c:198,1
    - Dst: SEC_ASN1DecodeItem
      Src: /src/nss/lib/smime/cmspubkey.c:206,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/smime/cmspubkey.c:206,1
    - Dst: SEC_GetMgfTypeByOidTag
      Src: /src/nss/lib/smime/cmspubkey.c:211,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/smime/cmspubkey.c:211,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/smime/cmspubkey.c:217,1
    - Dst: SEC_ASN1DecodeItem
      Src: /src/nss/lib/smime/cmspubkey.c:223,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/smime/cmspubkey.c:223,1
    - Dst: PK11_PubUnwrapSymKeyWithMechanism
      Src: /src/nss/lib/smime/cmspubkey.c:236,1
    - Dst: PORT_Free
      Src: /src/nss/lib/smime/cmspubkey.c:240,1
    - Dst: SECOID_DestroyAlgorithmID
      Src: /src/nss/lib/smime/cmspubkey.c:242,1
    - Dst: SECOID_DestroyAlgorithmID
      Src: /src/nss/lib/smime/cmspubkey.c:245,1
    - Dst: SECOID_DestroyAlgorithmID
      Src: /src/nss/lib/smime/cmspubkey.c:248,1
    - Dst: SECOID_DestroyAlgorithmID
      Src: /src/nss/lib/smime/cmspubkey.c:250,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 80
    argCount: 4
    argNames:
    - privkey
    - parameters
    - encKey
    - bulkalgtag
    argTypes:
    - SECKEYPrivateKey*
    - SECItem*
    - SECItem*
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 152
    functionDepth: 11
    functionLinenumber: 152
    functionLinenumberEnd: 252
    functionName: NSS_CMSUtil_DecryptSymKey_RSA_OAEP
    functionSourceFile: /src/nss/lib/smime/cmspubkey.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SECOID_GetAlgorithmTag
    - SEC_GetMgfTypeByOidTag
    - PK11_PubUnwrapSymKeyWithMechanism
    - PORT_Free
    - SECOID_DestroyAlgorithmID
    - PK11_AlgtagToMechanism
    - PORT_SetError
    - SEC_ASN1DecodeItem
    - PORT_Memset
    - SEC_ASN1_GET
    linkageType: ''
    returnType: PK11SymKey
    signature: 'PK11SymKey *

      NSS_CMSUtil_DecryptSymKey_RSA_OAEP(SECKEYPrivateKey *privkey, SECItem *parameters,
      SECItem *encKey, SECOidTag bulkalgtag)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/smime/cmspubkey.c:312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 4
    argNames:
    - poolp
    - keyInfo
    - ukm
    - KEKsize
    argTypes:
    - PLArenaPool*
    - SECAlgorithmID*
    - SECItem*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 313
    functionName: Create_ECC_CMS_SharedInfo
    functionSourceFile: /src/nss/lib/smime/cmspubkey.c
    functionUses: 0
    functionsReached:
    - SEC_ASN1EncodeItem
    linkageType: ''
    returnType: SECItem
    signature: "SECItem *\nCreate_ECC_CMS_SharedInfo(PLArenaPool *poolp,\n                          SECAlgorithmID
      *keyInfo, SECItem *ukm, unsigned int KEKsize)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmspubkey.c:344,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/smime/cmspubkey.c:348,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/smime/cmspubkey.c:349,1
    - Dst: CERT_ExtractPublicKey
      Src: /src/nss/lib/smime/cmspubkey.c:355,1
    - Dst: SECKEY_CreateECPrivateKey
      Src: /src/nss/lib/smime/cmspubkey.c:359,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/smime/cmspubkey.c:365,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/smime/cmspubkey.c:374,1
    - Dst: PK11_GetKeyLength
      Src: /src/nss/lib/smime/cmspubkey.c:377,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/smime/cmspubkey.c:386,1
    - Dst: PK11_GetMechanism
      Src: /src/nss/lib/smime/cmspubkey.c:406,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/lib/smime/cmspubkey.c:407,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/lib/smime/cmspubkey.c:414,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/smime/cmspubkey.c:432,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/lib/smime/cmspubkey.c:437,1
    - Dst: Create_ECC_CMS_SharedInfo
      Src: /src/nss/lib/smime/cmspubkey.c:443,1
    - Dst: PK11_PubDeriveWithKDF
      Src: /src/nss/lib/smime/cmspubkey.c:452,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/smime/cmspubkey.c:460,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/lib/smime/cmspubkey.c:461,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/smime/cmspubkey.c:469,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/smime/cmspubkey.c:472,1
    - Dst: PK11_WrapSymKey
      Src: /src/nss/lib/smime/cmspubkey.c:476,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/smime/cmspubkey.c:478,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/smime/cmspubkey.c:483,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/smime/cmspubkey.c:483,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/lib/smime/cmspubkey.c:489,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/smime/cmspubkey.c:498,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/smime/cmspubkey.c:501,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/lib/smime/cmspubkey.c:504,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 122
    argCount: 9
    argNames:
    - poolp
    - cert
    - bulkkey
    - encKey
    - genUkm
    - ukm
    - keyEncAlg
    - pubKey
    - wincx
    argTypes:
    - PLArenaPool*
    - CERTCertificate*
    - PK11SymKey*
    - SECItem*
    - PRBool
    - SECItem*
    - SECAlgorithmID*
    - SECItem*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 322
    functionDepth: 12
    functionLinenumber: 322
    functionLinenumberEnd: 507
    functionName: NSS_CMSUtil_EncryptSymKey_ESECDH
    functionSourceFile: /src/nss/lib/smime/cmspubkey.c
    functionUses: 0
    functionsReached:
    - PK11_PubDeriveWithKDF
    - SECKEY_DestroyPublicKey
    - SEC_ASN1EncodeItem
    - PORT_ArenaAlloc
    - SECOID_SetAlgorithmID
    - PORT_SetError
    - PK11_WrapSymKey
    - PORT_Assert
    - PK11_GetKeyLength
    - SECOID_GetAlgorithmTag
    - Create_ECC_CMS_SharedInfo
    - PK11_GetMechanism
    - SECKEY_CreateECPrivateKey
    - SECITEM_CopyItem
    - PK11_GenerateRandom
    - SECKEY_DestroyPrivateKey
    - SEC_ASN1_GET
    - CERT_ExtractPublicKey
    - PK11_FreeSymKey
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus NSS_CMSUtil_EncryptSymKey_ESECDH(PLArenaPool *poolp, CERTCertificate
      *cert,\n                                 PK11SymKey *bulkkey, SECItem *encKey,\n
      \                                PRBool genUkm, SECItem *ukm,\n                                 SECAlgorithmID
      *keyEncAlg, SECItem *pubKey,\n                                 void *wincx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - keyWrapAlgtag
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 524
    functionName: cms_GetKekSizeFromKeyWrapAlgTag
    functionSourceFile: /src/nss/lib/smime/cmspubkey.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cms_GetKekSizeFromKeyWrapAlgTag(SECOidTag keyWrapAlgtag)
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - keyEncAlgtag
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 527
    functionDepth: 0
    functionLinenumber: 527
    functionLinenumberEnd: 550
    functionName: cms_GetKdfFromKeyEncAlgTag
    functionSourceFile: /src/nss/lib/smime/cmspubkey.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_ULONG
    signature: CK_ULONG cms_GetKdfFromKeyEncAlgTag(SECOidTag keyEncAlgtag)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memset
      Src: /src/nss/lib/smime/cmspubkey.c:568,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/smime/cmspubkey.c:570,1
    - Dst: PK11_AlgtagToMechanism
      Src: /src/nss/lib/smime/cmspubkey.c:571,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmspubkey.c:573,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/smime/cmspubkey.c:577,1
    - Dst: PK11_AlgtagToMechanism
      Src: /src/nss/lib/smime/cmspubkey.c:578,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmspubkey.c:581,1
    - Dst: SEC_ASN1DecodeItem
      Src: /src/nss/lib/smime/cmspubkey.c:585,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/smime/cmspubkey.c:586,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/smime/cmspubkey.c:591,1
    - Dst: PK11_AlgtagToMechanism
      Src: /src/nss/lib/smime/cmspubkey.c:592,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmspubkey.c:595,1
    - Dst: cms_GetKekSizeFromKeyWrapAlgTag
      Src: /src/nss/lib/smime/cmspubkey.c:599,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmspubkey.c:601,1
    - Dst: cms_GetKdfFromKeyEncAlgTag
      Src: /src/nss/lib/smime/cmspubkey.c:605,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmspubkey.c:607,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmspubkey.c:614,1
    - Dst: Create_ECC_CMS_SharedInfo
      Src: /src/nss/lib/smime/cmspubkey.c:625,1
    - Dst: PK11_PubDeriveWithKDF
      Src: /src/nss/lib/smime/cmspubkey.c:632,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/smime/cmspubkey.c:637,1
    - Dst: PK11_UnwrapSymKey
      Src: /src/nss/lib/smime/cmspubkey.c:643,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/smime/cmspubkey.c:644,1
    - Dst: SECOID_DestroyAlgorithmID
      Src: /src/nss/lib/smime/cmspubkey.c:646,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 66
    argCount: 7
    argNames:
    - privkey
    - encKey
    - keyEncAlg
    - bulkalgtag
    - ukm
    - oiok
    - wincx
    argTypes:
    - SECKEYPrivateKey*
    - SECItem*
    - SECAlgorithmID*
    - SECOidTag
    - SECItem*
    - NSSCMSOriginatorIdentifierOrKey*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 552
    functionDepth: 12
    functionLinenumber: 552
    functionLinenumberEnd: 648
    functionName: NSS_CMSUtil_DecryptSymKey_ECDH
    functionSourceFile: /src/nss/lib/smime/cmspubkey.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SECOID_GetAlgorithmTag
    - cms_GetKdfFromKeyEncAlgTag
    - cms_GetKekSizeFromKeyWrapAlgTag
    - SECOID_DestroyAlgorithmID
    - PK11_UnwrapSymKey
    - PK11_AlgtagToMechanism
    - PORT_SetError
    - SEC_ASN1DecodeItem
    - Create_ECC_CMS_SharedInfo
    - PORT_Memset
    - SEC_ASN1_GET
    - PK11_FreeSymKey
    - SECITEM_FreeItem
    - PK11_PubDeriveWithKDF
    linkageType: ''
    returnType: PK11SymKey
    signature: "PK11SymKey *\nNSS_CMSUtil_DecryptSymKey_ECDH(SECKEYPrivateKey *privkey,
      SECItem *encKey,\n                               SECAlgorithmID *keyEncAlg,
      SECOidTag bulkalgtag,\n                               SECItem *ukm, NSSCMSOriginatorIdentifierOrKey
      *oiok,\n                               void *wincx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/smime/cmsarray.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: NSS_CMSArray_Alloc
    functionSourceFile: /src/nss/lib/smime/cmsarray.c
    functionUses: 0
    functionsReached:
    - PORT_ArenaZAlloc
    linkageType: ''
    returnType: void
    signature: 'void **

      NSS_CMSArray_Alloc(PLArenaPool *poolp, int n)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/smime/cmsarray.c:47,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/smime/cmsarray.c:52,1
    - Dst: PORT_ArenaGrow
      Src: /src/nss/lib/smime/cmsarray.c:59,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - poolp
    - array
    - obj
    argTypes:
    - PLArenaPool*
    - void***
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 72
    functionName: NSS_CMSArray_Add
    functionSourceFile: /src/nss/lib/smime/cmsarray.c
    functionUses: 0
    functionsReached:
    - PORT_ArenaGrow
    - PORT_Assert
    - PORT_ArenaAlloc
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_CMSArray_Add(PLArenaPool *poolp, void ***array, void
      *obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - array
    argTypes:
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: NSS_CMSArray_IsEmpty
    functionSourceFile: /src/nss/lib/smime/cmsarray.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool NSS_CMSArray_IsEmpty(void **array)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - array
    argTypes:
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 98
    functionName: NSS_CMSArray_Count
    functionSourceFile: /src/nss/lib/smime/cmsarray.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int NSS_CMSArray_Count(void **array)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSArray_Count
      Src: /src/nss/lib/smime/cmsarray.c:118,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/smime/cmsarray.c:120,1
    - Dst: NSS_CMSArray_Count
      Src: /src/nss/lib/smime/cmsarray.c:120,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/smime/cmsarray.c:121,1
    - Dst: NSS_CMSArray_Count
      Src: /src/nss/lib/smime/cmsarray.c:121,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 3
    argNames:
    - primary
    - secondary
    - tertiary
    argTypes:
    - void**
    - void**
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 153
    functionName: NSS_CMSArray_Sort
    functionSourceFile: /src/nss/lib/smime/cmsarray.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - NSS_CMSArray_Count
    linkageType: ''
    returnType: void
    signature: void NSS_CMSArray_Sort(void **primary, int (*compare)(void *, void
      *), void **secondary, void **tertiary)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - array
    argTypes:
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 168
    functionName: NSS_CMSArray_First
    functionSourceFile: /src/nss/lib/smime/cmsarray.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSSCMSArrayIterator
    signature: NSSCMSArrayIterator NSS_CMSArray_First(void **array)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iter
    argTypes:
    - NSSCMSArrayIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 176
    functionName: NSS_CMSArray_Obj
    functionSourceFile: /src/nss/lib/smime/cmsarray.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void *

      NSS_CMSArray_Obj(NSSCMSArrayIterator iter)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iter
    argTypes:
    - NSSCMSArrayIterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 184
    functionName: NSS_CMSArray_Next
    functionSourceFile: /src/nss/lib/smime/cmsarray.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSSCMSArrayIterator
    signature: NSSCMSArrayIterator NSS_CMSArray_Next(NSSCMSArrayIterator iter)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/smime/cmsasn1.c:485,1
    - Dst: NSS_CMSContentInfo_GetContentTypeTag
      Src: /src/nss/lib/smime/cmsasn1.c:490,1
    - Dst: NSS_CMSType_GetTemplate
      Src: /src/nss/lib/smime/cmsasn1.c:493,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/smime/cmsasn1.c:496,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - src_or_dest
    - encoding
    argTypes:
    - void*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 478
    functionDepth: 1
    functionLinenumber: 478
    functionLinenumberEnd: 512
    functionName: nss_cms_choose_content_template
    functionSourceFile: /src/nss/lib/smime/cmsasn1.c
    functionUses: 0
    functionsReached:
    - NSS_CMSType_GetTemplate
    - PORT_Assert
    - SEC_ASN1_GET
    - NSS_CMSContentInfo_GetContentTypeTag
    linkageType: ''
    returnType: SEC_ASN1Template
    signature: 'SEC_ASN1Template *

      nss_cms_choose_content_template(void *src_or_dest, PRBool encoding)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmssigdata.c:27,1
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/smime/cmssigdata.c:33,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/smime/cmssigdata.c:35,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/smime/cmssigdata.c:44,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/smime/cmssigdata.c:48,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - cmsg
    argTypes:
    - NSSCMSMessage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 50
    functionName: NSS_CMSSignedData_Create
    functionSourceFile: /src/nss/lib/smime/cmssigdata.c
    functionUses: 1
    functionsReached:
    - PORT_ArenaZAlloc
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - PORT_SetError
    - PORT_ArenaUnmark
    linkageType: ''
    returnType: NSSCMSSignedData
    signature: 'NSSCMSSignedData *

      NSS_CMSSignedData_Create(NSSCMSMessage *cmsg)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/smime/cmssigdata.c:69,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/smime/cmssigdata.c:74,1
    - Dst: CERT_DestroyCertificateList
      Src: /src/nss/lib/smime/cmssigdata.c:79,1
    - Dst: NSS_CMSSignerInfo_Destroy
      Src: /src/nss/lib/smime/cmssigdata.c:84,1
    - Dst: NSS_CMSContentInfo_Destroy
      Src: /src/nss/lib/smime/cmssigdata.c:88,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 1
    argNames:
    - sigd
    argTypes:
    - NSSCMSSignedData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 52
    functionDepth: 8
    functionLinenumber: 52
    functionLinenumberEnd: 89
    functionName: NSS_CMSSignedData_Destroy
    functionSourceFile: /src/nss/lib/smime/cmssigdata.c
    functionUses: 1
    functionsReached:
    - NSS_CMSContentInfo_Destroy
    - CERT_DestroyCertificateList
    - CERT_DestroyCertificate
    - NSS_CMSSignerInfo_Destroy
    linkageType: ''
    returnType: void
    signature: void NSS_CMSSignedData_Destroy(NSSCMSSignedData *sigd)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmssigdata.c:115,1
    - Dst: NSS_CMSContentInfo_GetContentTypeTag
      Src: /src/nss/lib/smime/cmssigdata.c:135,1
    - Dst: NSS_CMSSignedData_SignerInfoCount
      Src: /src/nss/lib/smime/cmssigdata.c:139,1
    - Dst: NSS_CMSSignedData_GetSignerInfo
      Src: /src/nss/lib/smime/cmssigdata.c:140,1
    - Dst: NSS_CMSSignerInfo_GetVersion
      Src: /src/nss/lib/smime/cmssigdata.c:143,1
    - Dst: NSS_CMSSignerInfo_GetDigestAlgTag
      Src: /src/nss/lib/smime/cmssigdata.c:149,1
    - Dst: NSS_CMSAlgArray_GetIndexByAlgTag
      Src: /src/nss/lib/smime/cmssigdata.c:150,1
    - Dst: NSS_CMSSignedData_AddDigest
      Src: /src/nss/lib/smime/cmssigdata.c:157,1
    - Dst: SEC_ASN1EncodeInteger
      Src: /src/nss/lib/smime/cmssigdata.c:165,1
    - Dst: NSS_CMSArray_SortByDER
      Src: /src/nss/lib/smime/cmssigdata.c:170,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/smime/cmssigdata.c:171,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 45
    argCount: 1
    argNames:
    - sigd
    argTypes:
    - NSSCMSSignedData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 180
    functionName: NSS_CMSSignedData_Encode_BeforeStart
    functionSourceFile: /src/nss/lib/smime/cmssigdata.c
    functionUses: 0
    functionsReached:
    - NSS_CMSSignedData_GetSignerInfo
    - NSS_CMSArray_SortByDER
    - NSS_CMSSignerInfo_GetDigestAlgTag
    - PORT_SetError
    - NSS_CMSAlgArray_GetIndexByAlgTag
    - SEC_ASN1EncodeInteger
    - NSS_CMSSignedData_AddDigest
    - NSS_CMSSignedData_SignerInfoCount
    - SEC_ASN1_GET
    - NSS_CMSSignerInfo_GetVersion
    - NSS_CMSContentInfo_GetContentTypeTag
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_CMSSignedData_Encode_BeforeStart(NSSCMSSignedData *sigd)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmssigdata.c:187,1
    - Dst: NSS_CMSContentInfo_Private_Init
      Src: /src/nss/lib/smime/cmssigdata.c:190,1
    - Dst: NSS_CMSDigestContext_StartMultiple
      Src: /src/nss/lib/smime/cmssigdata.c:199,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - sigd
    argTypes:
    - NSSCMSSignedData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 204
    functionName: NSS_CMSSignedData_Encode_BeforeData
    functionSourceFile: /src/nss/lib/smime/cmssigdata.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - NSS_CMSContentInfo_Private_Init
    - NSS_CMSDigestContext_StartMultiple
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_CMSSignedData_Encode_BeforeData(NSSCMSSignedData *sigd)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmssigdata.c:232,1
    - Dst: NSS_CMSDigestContext_FinishMultiple
      Src: /src/nss/lib/smime/cmssigdata.c:241,1
    - Dst: NSS_CMSSignedData_SignerInfoCount
      Src: /src/nss/lib/smime/cmssigdata.c:253,1
    - Dst: NSS_CMSSignedData_GetSignerInfo
      Src: /src/nss/lib/smime/cmssigdata.c:254,1
    - Dst: NSS_CMSSignerInfo_GetDigestAlgTag
      Src: /src/nss/lib/smime/cmssigdata.c:257,1
    - Dst: NSS_CMSAlgArray_GetIndexByAlgTag
      Src: /src/nss/lib/smime/cmssigdata.c:258,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmssigdata.c:261,1
    - Dst: NSS_CMSContentInfo_GetContentTypeOID
      Src: /src/nss/lib/smime/cmssigdata.c:270,1
    - Dst: NSS_CMSSignerInfo_Sign
      Src: /src/nss/lib/smime/cmssigdata.c:274,1
    - Dst: NSS_CMSSignerInfo_GetCertList
      Src: /src/nss/lib/smime/cmssigdata.c:279,1
    - Dst: NSS_CMSArray_SortByDER
      Src: /src/nss/lib/smime/cmssigdata.c:285,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/smime/cmssigdata.c:316,1
    - Dst: NSS_CMSArray_Sort
      Src: /src/nss/lib/smime/cmssigdata.c:353,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 79
    argCount: 1
    argNames:
    - sigd
    argTypes:
    - NSSCMSSignedData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 360
    functionName: NSS_CMSSignedData_Encode_AfterData
    functionSourceFile: /src/nss/lib/smime/cmssigdata.c
    functionUses: 0
    functionsReached:
    - NSS_CMSArray_Sort
    - NSS_CMSSignedData_GetSignerInfo
    - NSS_CMSArray_SortByDER
    - NSS_CMSSignerInfo_GetDigestAlgTag
    - PORT_ArenaAlloc
    - NSS_CMSSignerInfo_GetCertList
    - NSS_CMSSignerInfo_Sign
    - PORT_SetError
    - NSS_CMSDigestContext_FinishMultiple
    - NSS_CMSAlgArray_GetIndexByAlgTag
    - NSS_CMSContentInfo_GetContentTypeOID
    - NSS_CMSSignedData_SignerInfoCount
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_CMSSignedData_Encode_AfterData(NSSCMSSignedData *sigd)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmssigdata.c:367,1
    - Dst: NSS_CMSContentInfo_Private_Init
      Src: /src/nss/lib/smime/cmssigdata.c:370,1
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/smime/cmssigdata.c:379,1
    - Dst: NSS_CMSUtil_MapSignAlgs
      Src: /src/nss/lib/smime/cmssigdata.c:380,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/lib/smime/cmssigdata.c:383,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/smime/cmssigdata.c:384,1
    - Dst: NSS_CMSDigestContext_StartMultiple
      Src: /src/nss/lib/smime/cmssigdata.c:395,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 1
    argNames:
    - sigd
    argTypes:
    - NSSCMSSignedData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 362
    functionDepth: 2
    functionLinenumber: 362
    functionLinenumberEnd: 400
    functionName: NSS_CMSSignedData_Decode_BeforeData
    functionSourceFile: /src/nss/lib/smime/cmssigdata.c
    functionUses: 0
    functionsReached:
    - SECOID_FindOIDByTag
    - NSS_CMSUtil_MapSignAlgs
    - SECITEM_CopyItem
    - SECOID_FindOIDTag
    - PORT_SetError
    - NSS_CMSContentInfo_Private_Init
    - NSS_CMSDigestContext_StartMultiple
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_CMSSignedData_Decode_BeforeData(NSSCMSSignedData *sigd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmssigdata.c:412,1
    - Dst: NSS_CMSDigestContext_FinishMultiple
      Src: /src/nss/lib/smime/cmssigdata.c:418,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - sigd
    argTypes:
    - NSSCMSSignedData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 424
    functionName: NSS_CMSSignedData_Decode_AfterData
    functionSourceFile: /src/nss/lib/smime/cmssigdata.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - NSS_CMSDigestContext_FinishMultiple
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_CMSSignedData_Decode_AfterData(NSSCMSSignedData *sigd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmssigdata.c:437,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - sigd
    argTypes:
    - NSSCMSSignedData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 451
    functionName: NSS_CMSSignedData_Decode_AfterEnd
    functionSourceFile: /src/nss/lib/smime/cmssigdata.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_CMSSignedData_Decode_AfterEnd(NSSCMSSignedData *sigd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmssigdata.c:460,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 464
    functionName: NSS_CMSSignedData_GetSignerInfos
    functionSourceFile: /src/nss/lib/smime/cmssigdata.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: NSSCMSSignerInfo
    signature: 'NSSCMSSignerInfo **

      NSS_CMSSignedData_GetSignerInfos(NSSCMSSignedData *sigd)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmssigdata.c:470,1
    - Dst: NSS_CMSArray_Count
      Src: /src/nss/lib/smime/cmssigdata.c:473,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - sigd
    argTypes:
    - NSSCMSSignedData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 466
    functionDepth: 1
    functionLinenumber: 466
    functionLinenumberEnd: 474
    functionName: NSS_CMSSignedData_SignerInfoCount
    functionSourceFile: /src/nss/lib/smime/cmssigdata.c
    functionUses: 3
    functionsReached:
    - PORT_SetError
    - NSS_CMSArray_Count
    linkageType: ''
    returnType: int
    signature: int NSS_CMSSignedData_SignerInfoCount(NSSCMSSignedData *sigd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmssigdata.c:480,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - sigd
    - i
    argTypes:
    - NSSCMSSignedData*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 484
    functionName: NSS_CMSSignedData_GetSignerInfo
    functionSourceFile: /src/nss/lib/smime/cmssigdata.c
    functionUses: 3
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: NSSCMSSignerInfo
    signature: 'NSSCMSSignerInfo *

      NSS_CMSSignedData_GetSignerInfo(NSSCMSSignedData *sigd, int i)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmssigdata.c:493,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 497
    functionName: NSS_CMSSignedData_GetDigestAlgs
    functionSourceFile: /src/nss/lib/smime/cmssigdata.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: SECAlgorithmID
    signature: 'SECAlgorithmID **

      NSS_CMSSignedData_GetDigestAlgs(NSSCMSSignedData *sigd)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmssigdata.c:506,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - sigd
    argTypes:
    - NSSCMSSignedData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 510
    functionName: NSS_CMSSignedData_GetContentInfo
    functionSourceFile: /src/nss/lib/smime/cmssigdata.c
    functionUses: 2
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: NSSCMSContentInfo
    signature: 'NSSCMSContentInfo *

      NSS_CMSSignedData_GetContentInfo(NSSCMSSignedData *sigd)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmssigdata.c:519,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 523
    functionName: NSS_CMSSignedData_GetCertificateList
    functionSourceFile: /src/nss/lib/smime/cmssigdata.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem **

      NSS_CMSSignedData_GetCertificateList(NSSCMSSignedData *sigd)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmssigdata.c:539,1
    - Dst: NSS_CMSArray_Count
      Src: /src/nss/lib/smime/cmssigdata.c:543,1
    - Dst: CERT_ImportCerts
      Src: /src/nss/lib/smime/cmssigdata.c:546,1
    - Dst: NSS_CMSSignedData_AddTempCertificate
      Src: /src/nss/lib/smime/cmssigdata.c:556,1
    - Dst: CERT_NewCertList
      Src: /src/nss/lib/smime/cmssigdata.c:564,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/smime/cmssigdata.c:572,1
    - Dst: CERT_AddCertToListTail
      Src: /src/nss/lib/smime/cmssigdata.c:574,1
    - Dst: CERT_FilterCertListByUsage
      Src: /src/nss/lib/smime/cmssigdata.c:578,1
    - Dst: PR_Now
      Src: /src/nss/lib/smime/cmssigdata.c:586,1
    - Dst: CERT_LIST_HEAD
      Src: /src/nss/lib/smime/cmssigdata.c:587,1
    - Dst: CERT_LIST_END
      Src: /src/nss/lib/smime/cmssigdata.c:587,1
    - Dst: CERT_LIST_NEXT
      Src: /src/nss/lib/smime/cmssigdata.c:588,1
    - Dst: CERT_VerifyCert
      Src: /src/nss/lib/smime/cmssigdata.c:591,1
    - Dst: CERT_CertChainFromCert
      Src: /src/nss/lib/smime/cmssigdata.c:596,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/smime/cmssigdata.c:606,1
    - Dst: CERT_DestroyCertificateList
      Src: /src/nss/lib/smime/cmssigdata.c:608,1
    - Dst: CERT_ImportCerts
      Src: /src/nss/lib/smime/cmssigdata.c:614,1
    - Dst: PORT_Free
      Src: /src/nss/lib/smime/cmssigdata.c:616,1
    - Dst: CERT_DestroyCertificateList
      Src: /src/nss/lib/smime/cmssigdata.c:617,1
    - Dst: NSS_CMSSignerInfo_GetSigningCertificate
      Src: /src/nss/lib/smime/cmssigdata.c:628,1
    - Dst: CERT_DestroyCertArray
      Src: /src/nss/lib/smime/cmssigdata.c:635,1
    - Dst: CERT_DestroyCertList
      Src: /src/nss/lib/smime/cmssigdata.c:638,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 73
    argCount: 4
    argNames:
    - sigd
    - certdb
    - certusage
    - keepcerts
    argTypes:
    - NSSCMSSignedData*
    - CERTCertDBHandle*
    - SECCertUsage
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 525
    functionDepth: 12
    functionLinenumber: 525
    functionLinenumberEnd: 642
    functionName: NSS_CMSSignedData_ImportCerts
    functionSourceFile: /src/nss/lib/smime/cmssigdata.c
    functionUses: 1
    functionsReached:
    - CERT_DestroyCertArray
    - CERT_NewCertList
    - PR_Now
    - CERT_DestroyCertificateList
    - CERT_DupCertificate
    - CERT_FilterCertListByUsage
    - CERT_ImportCerts
    - PORT_SetError
    - CERT_LIST_END
    - CERT_CertChainFromCert
    - CERT_LIST_NEXT
    - CERT_LIST_HEAD
    - CERT_VerifyCert
    - NSS_CMSSignedData_AddTempCertificate
    - CERT_DestroyCertList
    - PORT_Alloc
    - PORT_Free
    - NSS_CMSArray_Count
    - CERT_AddCertToListTail
    - NSS_CMSSignerInfo_GetSigningCertificate
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus NSS_CMSSignedData_ImportCerts(NSSCMSSignedData *sigd, CERTCertDBHandle
      *certdb,\n                              SECCertUsage certusage, PRBool keepcerts)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmssigdata.c:670,1
    - Dst: NSS_CMSSignerInfo_VerifyCertificate
      Src: /src/nss/lib/smime/cmssigdata.c:679,1
    - Dst: NSS_CMSSignerInfo_GetDigestAlg
      Src: /src/nss/lib/smime/cmssigdata.c:684,1
    - Dst: NSS_CMSSignedData_GetDigestValue
      Src: /src/nss/lib/smime/cmssigdata.c:686,1
    - Dst: NSS_CMSContentInfo_GetContentTypeOID
      Src: /src/nss/lib/smime/cmssigdata.c:688,1
    - Dst: NSS_CMSSignerInfo_Verify
      Src: /src/nss/lib/smime/cmssigdata.c:692,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - sigd
    - i
    - certdb
    - certusage
    argTypes:
    - NSSCMSSignedData*
    - int
    - CERTCertDBHandle*
    - SECCertUsage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 658
    functionDepth: 1
    functionLinenumber: 658
    functionLinenumberEnd: 694
    functionName: NSS_CMSSignedData_VerifySignerInfo
    functionSourceFile: /src/nss/lib/smime/cmssigdata.c
    functionUses: 1
    functionsReached:
    - NSS_CMSSignerInfo_Verify
    - NSS_CMSSignerInfo_GetDigestAlg
    - NSS_CMSSignedData_GetDigestValue
    - PORT_SetError
    - NSS_CMSContentInfo_GetContentTypeOID
    - NSS_CMSSignerInfo_VerifyCertificate
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus NSS_CMSSignedData_VerifySignerInfo(NSSCMSSignedData *sigd,
      int i,\n                                   CERTCertDBHandle *certdb, SECCertUsage
      certusage)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmssigdata.c:712,1
    - Dst: NSS_CMSArray_Count
      Src: /src/nss/lib/smime/cmssigdata.c:716,1
    - Dst: PR_Now
      Src: /src/nss/lib/smime/cmssigdata.c:717,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/smime/cmssigdata.c:720,1
    - Dst: CERT_FindCertByDERCert
      Src: /src/nss/lib/smime/cmssigdata.c:722,1
    - Dst: CERT_VerifyCert
      Src: /src/nss/lib/smime/cmssigdata.c:731,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/smime/cmssigdata.c:733,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 3
    argNames:
    - sigd
    - certdb
    - usage
    argTypes:
    - NSSCMSSignedData*
    - CERTCertDBHandle*
    - SECCertUsage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 699
    functionDepth: 8
    functionLinenumber: 699
    functionLinenumberEnd: 737
    functionName: NSS_CMSSignedData_VerifyCertsOnly
    functionSourceFile: /src/nss/lib/smime/cmssigdata.c
    functionUses: 1
    functionsReached:
    - CERT_VerifyCert
    - NSS_CMSArray_Count
    - PR_Now
    - PORT_SetError
    - CERT_DupCertificate
    - CERT_DestroyCertificate
    - CERT_FindCertByDERCert
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus NSS_CMSSignedData_VerifyCertsOnly(NSSCMSSignedData *sigd,\n
      \                                 CERTCertDBHandle *certdb,\n                                  SECCertUsage
      usage)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmssigdata.c:746,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - sigd
    argTypes:
    - NSSCMSSignedData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 742
    functionDepth: 0
    functionLinenumber: 742
    functionLinenumberEnd: 750
    functionName: NSS_CMSSignedData_HasDigests
    functionSourceFile: /src/nss/lib/smime/cmssigdata.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: PRBool
    signature: PRBool NSS_CMSSignedData_HasDigests(NSSCMSSignedData *sigd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmssigdata.c:758,1
    - Dst: NSS_CMSArray_Add
      Src: /src/nss/lib/smime/cmssigdata.c:763,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - sigd
    - certlist
    argTypes:
    - NSSCMSSignedData*
    - CERTCertificateList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 752
    functionDepth: 1
    functionLinenumber: 752
    functionLinenumberEnd: 766
    functionName: NSS_CMSSignedData_AddCertList
    functionSourceFile: /src/nss/lib/smime/cmssigdata.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - NSS_CMSArray_Add
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_CMSSignedData_AddCertList(NSSCMSSignedData *sigd, CERTCertificateList
      *certlist)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmssigdata.c:781,1
    - Dst: CERT_CertChainFromCert
      Src: /src/nss/lib/smime/cmssigdata.c:786,1
    - Dst: NSS_CMSSignedData_AddCertList
      Src: /src/nss/lib/smime/cmssigdata.c:790,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - sigd
    - cert
    argTypes:
    - NSSCMSSignedData*
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 771
    functionDepth: 2
    functionLinenumber: 771
    functionLinenumberEnd: 793
    functionName: NSS_CMSSignedData_AddCertChain
    functionSourceFile: /src/nss/lib/smime/cmssigdata.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    - CERT_CertChainFromCert
    - NSS_CMSSignedData_AddCertList
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_CMSSignedData_AddCertChain(NSSCMSSignedData *sigd, CERTCertificate
      *cert)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmssigdata.c:802,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/smime/cmssigdata.c:806,1
    - Dst: NSS_CMSArray_Add
      Src: /src/nss/lib/smime/cmssigdata.c:807,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - sigd
    - cert
    argTypes:
    - NSSCMSSignedData*
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 795
    functionDepth: 1
    functionLinenumber: 795
    functionLinenumberEnd: 809
    functionName: NSS_CMSSignedData_AddTempCertificate
    functionSourceFile: /src/nss/lib/smime/cmssigdata.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    - CERT_DupCertificate
    - NSS_CMSArray_Add
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_CMSSignedData_AddTempCertificate(NSSCMSSignedData *sigd,
      CERTCertificate *cert)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmssigdata.c:818,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/smime/cmssigdata.c:822,1
    - Dst: NSS_CMSArray_Add
      Src: /src/nss/lib/smime/cmssigdata.c:823,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - sigd
    - cert
    argTypes:
    - NSSCMSSignedData*
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 811
    functionDepth: 1
    functionLinenumber: 811
    functionLinenumberEnd: 825
    functionName: NSS_CMSSignedData_AddCertificate
    functionSourceFile: /src/nss/lib/smime/cmssigdata.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    - CERT_DupCertificate
    - NSS_CMSArray_Add
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_CMSSignedData_AddCertificate(NSSCMSSignedData *sigd,
      CERTCertificate *cert)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmssigdata.c:831,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - sigd
    argTypes:
    - NSSCMSSignedData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 827
    functionDepth: 0
    functionLinenumber: 827
    functionLinenumberEnd: 840
    functionName: NSS_CMSSignedData_ContainsCertsOrCrls
    functionSourceFile: /src/nss/lib/smime/cmssigdata.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: PRBool
    signature: PRBool NSS_CMSSignedData_ContainsCertsOrCrls(NSSCMSSignedData *sigd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmssigdata.c:852,1
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/smime/cmssigdata.c:858,1
    - Dst: NSS_CMSArray_Add
      Src: /src/nss/lib/smime/cmssigdata.c:861,1
    - Dst: NSS_CMSSignerInfo_GetDigestAlgTag
      Src: /src/nss/lib/smime/cmssigdata.c:871,1
    - Dst: NSS_CMSSignedData_SetDigestValue
      Src: /src/nss/lib/smime/cmssigdata.c:872,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/smime/cmssigdata.c:880,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/smime/cmssigdata.c:884,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - sigd
    - signerinfo
    argTypes:
    - NSSCMSSignedData*
    - NSSCMSSignerInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 842
    functionDepth: 1
    functionLinenumber: 842
    functionLinenumberEnd: 886
    functionName: NSS_CMSSignedData_AddSignerInfo
    functionSourceFile: /src/nss/lib/smime/cmssigdata.c
    functionUses: 1
    functionsReached:
    - NSS_CMSSignerInfo_GetDigestAlgTag
    - PORT_ArenaRelease
    - NSS_CMSSignedData_SetDigestValue
    - PORT_ArenaMark
    - PORT_SetError
    - PORT_ArenaUnmark
    - NSS_CMSArray_Add
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus NSS_CMSSignedData_AddSignerInfo(NSSCMSSignedData *sigd,\n
      \                               NSSCMSSignerInfo *signerinfo)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmssigdata.c:902,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmssigdata.c:907,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/smime/cmssigdata.c:912,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmssigdata.c:914,1
    - Dst: NSS_CMSArray_Count
      Src: /src/nss/lib/smime/cmssigdata.c:919,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/smime/cmssigdata.c:920,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmssigdata.c:922,1
    - Dst: NSS_CMSAlgArray_GetIndexByAlgID
      Src: /src/nss/lib/smime/cmssigdata.c:928,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmssigdata.c:930,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/smime/cmssigdata.c:942,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/smime/cmssigdata.c:943,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmssigdata.c:944,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 3
    argNames:
    - sigd
    - digestalgs
    - digests
    argTypes:
    - NSSCMSSignedData*
    - SECAlgorithmID**
    - SECItem**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 894
    functionDepth: 1
    functionLinenumber: 894
    functionLinenumberEnd: 949
    functionName: NSS_CMSSignedData_SetDigests
    functionSourceFile: /src/nss/lib/smime/cmssigdata.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - PORT_ArenaZAlloc
    - NSS_CMSArray_Count
    - SECITEM_AllocItem
    - SECITEM_CopyItem
    - PORT_SetError
    - NSS_CMSAlgArray_GetIndexByAlgID
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus NSS_CMSSignedData_SetDigests(NSSCMSSignedData *sigd,\n                             SECAlgorithmID
      **digestalgs,\n                             SECItem **digests)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmssigdata.c:962,1
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/smime/cmssigdata.c:968,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/smime/cmssigdata.c:971,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/smime/cmssigdata.c:974,1
    - Dst: NSS_CMSArray_Count
      Src: /src/nss/lib/smime/cmssigdata.c:980,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/smime/cmssigdata.c:981,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmssigdata.c:983,1
    - Dst: NSS_CMSAlgArray_GetIndexByAlgTag
      Src: /src/nss/lib/smime/cmssigdata.c:990,1
    - Dst: NSS_CMSSignedData_AddDigest
      Src: /src/nss/lib/smime/cmssigdata.c:994,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/smime/cmssigdata.c:1001,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/smime/cmssigdata.c:1005,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 3
    argNames:
    - sigd
    - digestalgtag
    - digestdata
    argTypes:
    - NSSCMSSignedData*
    - SECOidTag
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1007
      start: 951
    functionDepth: 1
    functionLinenumber: 951
    functionLinenumberEnd: 1007
    functionName: NSS_CMSSignedData_SetDigestValue
    functionSourceFile: /src/nss/lib/smime/cmssigdata.c
    functionUses: 1
    functionsReached:
    - PORT_ArenaZAlloc
    - NSS_CMSArray_Count
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - SECITEM_CopyItem
    - PORT_SetError
    - NSS_CMSAlgArray_GetIndexByAlgTag
    - NSS_CMSSignedData_AddDigest
    - PORT_ArenaUnmark
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus NSS_CMSSignedData_SetDigestValue(NSSCMSSignedData *sigd,\n
      \                                SECOidTag digestalgtag,\n                                 SECItem
      *digestdata)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmssigdata.c:1019,1
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/smime/cmssigdata.c:1023,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/smime/cmssigdata.c:1025,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/lib/smime/cmssigdata.c:1029,1
    - Dst: NSS_CMSArray_Add
      Src: /src/nss/lib/smime/cmssigdata.c:1032,1
    - Dst: NSS_CMSArray_Add
      Src: /src/nss/lib/smime/cmssigdata.c:1035,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/smime/cmssigdata.c:1040,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/smime/cmssigdata.c:1044,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 4
    argNames:
    - poolp
    - sigd
    - digestalgtag
    - digest
    argTypes:
    - PLArenaPool*
    - NSSCMSSignedData*
    - SECOidTag
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 1009
    functionDepth: 1
    functionLinenumber: 1009
    functionLinenumberEnd: 1046
    functionName: NSS_CMSSignedData_AddDigest
    functionSourceFile: /src/nss/lib/smime/cmssigdata.c
    functionUses: 2
    functionsReached:
    - PORT_ArenaZAlloc
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - SECOID_SetAlgorithmID
    - PORT_SetError
    - PORT_ArenaUnmark
    - NSS_CMSArray_Add
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus NSS_CMSSignedData_AddDigest(PLArenaPool *poolp,\n                            NSSCMSSignedData
      *sigd,\n                            SECOidTag digestalgtag,\n                            SECItem
      *digest)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmssigdata.c:1055,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmssigdata.c:1060,1
    - Dst: NSS_CMSAlgArray_GetIndexByAlgTag
      Src: /src/nss/lib/smime/cmssigdata.c:1064,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - sigd
    - digestalgtag
    argTypes:
    - NSSCMSSignedData*
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1067
      start: 1049
    functionDepth: 1
    functionLinenumber: 1049
    functionLinenumberEnd: 1067
    functionName: NSS_CMSSignedData_GetDigestValue
    functionSourceFile: /src/nss/lib/smime/cmssigdata.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    - NSS_CMSAlgArray_GetIndexByAlgTag
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      NSS_CMSSignedData_GetDigestValue(NSSCMSSignedData *sigd, SECOidTag digestalgtag)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmssigdata.c:1094,1
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/smime/cmssigdata.c:1099,1
    - Dst: NSS_CMSSignedData_Create
      Src: /src/nss/lib/smime/cmssigdata.c:1101,1
    - Dst: NSS_CMSSignedData_AddCertChain
      Src: /src/nss/lib/smime/cmssigdata.c:1109,1
    - Dst: NSS_CMSSignedData_AddCertificate
      Src: /src/nss/lib/smime/cmssigdata.c:1111,1
    - Dst: NSS_CMSContentInfo_SetContent_Data
      Src: /src/nss/lib/smime/cmssigdata.c:1123,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/smime/cmssigdata.c:1127,1
    - Dst: NSS_CMSSignedData_Destroy
      Src: /src/nss/lib/smime/cmssigdata.c:1132,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/smime/cmssigdata.c:1133,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 3
    argNames:
    - cmsg
    - cert
    - include_chain
    argTypes:
    - NSSCMSMessage*
    - CERTCertificate*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 1085
    functionDepth: 9
    functionLinenumber: 1085
    functionLinenumberEnd: 1135
    functionName: NSS_CMSSignedData_CreateCertsOnly
    functionSourceFile: /src/nss/lib/smime/cmssigdata.c
    functionUses: 1
    functionsReached:
    - NSS_CMSSignedData_Destroy
    - NSS_CMSSignedData_Create
    - NSS_CMSSignedData_AddCertChain
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - PORT_SetError
    - PORT_ArenaUnmark
    - NSS_CMSContentInfo_SetContent_Data
    - NSS_CMSSignedData_AddCertificate
    linkageType: ''
    returnType: NSSCMSSignedData
    signature: 'NSSCMSSignedData *

      NSS_CMSSignedData_CreateCertsOnly(NSSCMSMessage *cmsg, CERTCertificate *cert,
      PRBool include_chain)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/smime/cmscipher.c:58,1
    - Dst: SEC_PKCS5IsAlgorithmPBEAlg
      Src: /src/nss/lib/smime/cmscipher.c:61,1
    - Dst: PK11_GetSymKeyUserData
      Src: /src/nss/lib/smime/cmscipher.c:64,1
    - Dst: PK11_GetPBECryptoMechanism
      Src: /src/nss/lib/smime/cmscipher.c:68,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/smime/cmscipher.c:70,1
    - Dst: PK11_AlgtagToMechanism
      Src: /src/nss/lib/smime/cmscipher.c:75,1
    - Dst: PK11_ParamFromAlgid
      Src: /src/nss/lib/smime/cmscipher.c:76,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/smime/cmscipher.c:80,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/smime/cmscipher.c:82,1
    - Dst: PK11_GetBlockSize
      Src: /src/nss/lib/smime/cmscipher.c:87,1
    - Dst: PK11_GetSlotFromKey
      Src: /src/nss/lib/smime/cmscipher.c:88,1
    - Dst: PK11_IsHW
      Src: /src/nss/lib/smime/cmscipher.c:89,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/smime/cmscipher.c:90,1
    - Dst: PK11_CreateContextBySymKey
      Src: /src/nss/lib/smime/cmscipher.c:93,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/smime/cmscipher.c:95,1
    - Dst: PORT_Free
      Src: /src/nss/lib/smime/cmscipher.c:97,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 37
    argCount: 2
    argNames:
    - key
    - algid
    argTypes:
    - PK11SymKey*
    - SECAlgorithmID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 48
    functionDepth: 12
    functionLinenumber: 48
    functionLinenumberEnd: 108
    functionName: NSS_CMSCipherContext_StartDecrypt
    functionSourceFile: /src/nss/lib/smime/cmscipher.c
    functionUses: 0
    functionsReached:
    - PK11_GetPBECryptoMechanism
    - PK11_FreeSlot
    - SECOID_GetAlgorithmTag
    - PK11_GetBlockSize
    - PK11_GetSlotFromKey
    - PK11_ParamFromAlgid
    - PORT_Free
    - PORT_ZAlloc
    - PK11_AlgtagToMechanism
    - PK11_GetSymKeyUserData
    - SEC_PKCS5IsAlgorithmPBEAlg
    - PK11_CreateContextBySymKey
    - PK11_IsHW
    - SECITEM_FreeItem
    linkageType: ''
    returnType: NSSCMSCipherContext
    signature: 'NSSCMSCipherContext *

      NSS_CMSCipherContext_StartDecrypt(PK11SymKey *key, SECAlgorithmID *algid)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/smime/cmscipher.c:129,1
    - Dst: SEC_PKCS5IsAlgorithmPBEAlg
      Src: /src/nss/lib/smime/cmscipher.c:132,1
    - Dst: PK11_GetSymKeyUserData
      Src: /src/nss/lib/smime/cmscipher.c:135,1
    - Dst: PK11_GetPBECryptoMechanism
      Src: /src/nss/lib/smime/cmscipher.c:139,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/smime/cmscipher.c:141,1
    - Dst: PK11_AlgtagToMechanism
      Src: /src/nss/lib/smime/cmscipher.c:145,1
    - Dst: PK11_GenerateNewParam
      Src: /src/nss/lib/smime/cmscipher.c:146,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/smime/cmscipher.c:151,1
    - Dst: PK11_GetBlockSize
      Src: /src/nss/lib/smime/cmscipher.c:157,1
    - Dst: PK11_GetSlotFromKey
      Src: /src/nss/lib/smime/cmscipher.c:158,1
    - Dst: PK11_IsHW
      Src: /src/nss/lib/smime/cmscipher.c:159,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/smime/cmscipher.c:160,1
    - Dst: PK11_CreateContextBySymKey
      Src: /src/nss/lib/smime/cmscipher.c:163,1
    - Dst: PORT_Free
      Src: /src/nss/lib/smime/cmscipher.c:166,1
    - Dst: PK11_ParamToAlgid
      Src: /src/nss/lib/smime/cmscipher.c:180,1
    - Dst: PORT_Free
      Src: /src/nss/lib/smime/cmscipher.c:182,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/smime/cmscipher.c:196,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/smime/cmscipher.c:198,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 54
    argCount: 3
    argNames:
    - poolp
    - key
    - algid
    argTypes:
    - PLArenaPool*
    - PK11SymKey*
    - SECAlgorithmID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 119
    functionDepth: 12
    functionLinenumber: 119
    functionLinenumberEnd: 202
    functionName: NSS_CMSCipherContext_StartEncrypt
    functionSourceFile: /src/nss/lib/smime/cmscipher.c
    functionUses: 0
    functionsReached:
    - PK11_GetPBECryptoMechanism
    - PK11_FreeSlot
    - PK11_ParamToAlgid
    - PK11_DestroyContext
    - SECOID_GetAlgorithmTag
    - PK11_GetBlockSize
    - PK11_GetSlotFromKey
    - PORT_Free
    - PORT_ZAlloc
    - PK11_AlgtagToMechanism
    - PK11_GenerateNewParam
    - PK11_GetSymKeyUserData
    - SEC_PKCS5IsAlgorithmPBEAlg
    - PK11_CreateContextBySymKey
    - PK11_IsHW
    - SECITEM_FreeItem
    linkageType: ''
    returnType: NSSCMSCipherContext
    signature: 'NSSCMSCipherContext *

      NSS_CMSCipherContext_StartEncrypt(PLArenaPool *poolp, PK11SymKey *key, SECAlgorithmID
      *algid)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/smime/cmscipher.c:207,1
    - Dst: PORT_Free
      Src: /src/nss/lib/smime/cmscipher.c:211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cc
    argTypes:
    - NSSCMSCipherContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 212
    functionName: NSS_CMSCipherContext_Destroy
    functionSourceFile: /src/nss/lib/smime/cmscipher.c
    functionUses: 1
    functionsReached:
    - PORT_Free
    - PORT_Assert
    linkageType: ''
    returnType: void
    signature: void NSS_CMSCipherContext_Destroy(NSSCMSCipherContext *cc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/smime/cmscipher.c:240,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - cc
    - input_len
    - final
    argTypes:
    - NSSCMSCipherContext*
    - unsigned int
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 274
    functionName: NSS_CMSCipherContext_DecryptLength
    functionSourceFile: /src/nss/lib/smime/cmscipher.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int NSS_CMSCipherContext_DecryptLength(NSSCMSCipherContext
      *cc, unsigned int input_len, PRBool final)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/smime/cmscipher.c:299,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - cc
    - input_len
    - final
    argTypes:
    - NSSCMSCipherContext*
    - unsigned int
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 333
    functionName: NSS_CMSCipherContext_EncryptLength
    functionSourceFile: /src/nss/lib/smime/cmscipher.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int NSS_CMSCipherContext_EncryptLength(NSSCMSCipherContext
      *cc, unsigned int input_len, PRBool final)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/smime/cmscipher.c:376,1
    - Dst: NSS_CMSCipherContext_DecryptLength
      Src: /src/nss/lib/smime/cmscipher.c:382,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/smime/cmscipher.c:383,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/smime/cmscipher.c:437,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmscipher.c:438,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/smime/cmscipher.c:454,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/smime/cmscipher.c:483,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmscipher.c:486,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/smime/cmscipher.c:492,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/smime/cmscipher.c:495,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/smime/cmscipher.c:510,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmscipher.c:512,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmscipher.c:529,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/smime/cmscipher.c:535,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 82
    argCount: 7
    argNames:
    - cc
    - output
    - output_len_p
    - max_output_len
    - input
    - input_len
    - final
    argTypes:
    - NSSCMSCipherContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 540
    functionName: NSS_CMSCipherContext_Decrypt
    functionSourceFile: /src/nss/lib/smime/cmscipher.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - NSS_CMSCipherContext_DecryptLength
    - PORT_Memcpy
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus NSS_CMSCipherContext_Decrypt(NSSCMSCipherContext *cc, unsigned
      char *output,\n                             unsigned int *output_len_p, unsigned
      int max_output_len,\n                             const unsigned char *input,
      unsigned int input_len,\n                             PRBool final)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/smime/cmscipher.c:588,1
    - Dst: NSS_CMSCipherContext_EncryptLength
      Src: /src/nss/lib/smime/cmscipher.c:594,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/smime/cmscipher.c:595,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/smime/cmscipher.c:651,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/smime/cmscipher.c:665,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/smime/cmscipher.c:681,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/smime/cmscipher.c:689,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/smime/cmscipher.c:691,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/smime/cmscipher.c:699,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/smime/cmscipher.c:711,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/smime/cmscipher.c:717,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 74
    argCount: 7
    argNames:
    - cc
    - output
    - output_len_p
    - max_output_len
    - input
    - input_len
    - final
    argTypes:
    - NSSCMSCipherContext*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 577
    functionDepth: 1
    functionLinenumber: 577
    functionLinenumberEnd: 722
    functionName: NSS_CMSCipherContext_Encrypt
    functionSourceFile: /src/nss/lib/smime/cmscipher.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - NSS_CMSCipherContext_EncryptLength
    - PORT_Memcpy
    - PORT_Memset
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus NSS_CMSCipherContext_Encrypt(NSSCMSCipherContext *cc, unsigned
      char *output,\n                             unsigned int *output_len_p, unsigned
      int max_output_len,\n                             const unsigned char *input,
      unsigned int input_len,\n                             PRBool final)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/smime/cmsmessage.c:31,1
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/smime/cmsmessage.c:39,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/smime/cmsmessage.c:41,1
    - Dst: NSS_CMSContentInfo_Private_Init
      Src: /src/nss/lib/smime/cmsmessage.c:43,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/smime/cmsmessage.c:46,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/smime/cmsmessage.c:49,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/smime/cmsmessage.c:59,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - poolp
    argTypes:
    - PLArenaPool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 63
    functionName: NSS_CMSMessage_Create
    functionSourceFile: /src/nss/lib/smime/cmsmessage.c
    functionUses: 4
    functionsReached:
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - PORT_FreeArena
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - PORT_ArenaUnmark
    - NSS_CMSContentInfo_Private_Init
    linkageType: ''
    returnType: NSSCMSMessage
    signature: 'NSSCMSMessage *

      NSS_CMSMessage_Create(PLArenaPool *poolp)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PK11_SetPasswordFunc
      Src: /src/nss/lib/smime/cmsmessage.c:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 7
    argNames:
    - cmsg
    - pwfn
    - pwfn_arg
    - decrypt_key_cb
    - decrypt_key_cb_arg
    - detached_digestalgs
    - detached_digests
    argTypes:
    - NSSCMSMessage*
    - PK11PasswordFunc
    - void*
    - NSSCMSGetDecryptKeyCallback
    - void*
    - SECAlgorithmID**
    - SECItem**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 91
    functionName: NSS_CMSMessage_SetEncodingParams
    functionSourceFile: /src/nss/lib/smime/cmsmessage.c
    functionUses: 0
    functionsReached:
    - PK11_SetPasswordFunc
    linkageType: ''
    returnType: void
    signature: "void NSS_CMSMessage_SetEncodingParams(NSSCMSMessage *cmsg,\n                                 PK11PasswordFunc
      pwfn, void *pwfn_arg,\n                                 NSSCMSGetDecryptKeyCallback
      decrypt_key_cb, void *decrypt_key_cb_arg,\n                                 SECAlgorithmID
      **detached_digestalgs, SECItem **detached_digests)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/smime/cmsmessage.c:102,1
    - Dst: NSS_CMSContentInfo_Destroy
      Src: /src/nss/lib/smime/cmsmessage.c:112,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/smime/cmsmessage.c:116,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - cmsg
    argTypes:
    - NSSCMSMessage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 96
    functionDepth: 5
    functionLinenumber: 96
    functionLinenumberEnd: 118
    functionName: NSS_CMSMessage_Destroy
    functionSourceFile: /src/nss/lib/smime/cmsmessage.c
    functionUses: 9
    functionsReached:
    - NSS_CMSContentInfo_Destroy
    - PORT_Assert
    - PORT_FreeArena
    linkageType: ''
    returnType: void
    signature: void NSS_CMSMessage_Destroy(NSSCMSMessage *cmsg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/smime/cmsmessage.c:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - cmsg
    argTypes:
    - NSSCMSMessage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 137
    functionName: NSS_CMSMessage_Copy
    functionSourceFile: /src/nss/lib/smime/cmsmessage.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: NSSCMSMessage
    signature: 'NSSCMSMessage *

      NSS_CMSMessage_Copy(NSSCMSMessage *cmsg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cmsg
    argTypes:
    - NSSCMSMessage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 150
    functionName: NSS_CMSMessage_GetArena
    functionSourceFile: /src/nss/lib/smime/cmsmessage.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PLArenaPool
    signature: 'PLArenaPool *

      NSS_CMSMessage_GetArena(NSSCMSMessage *cmsg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cmsg
    argTypes:
    - NSSCMSMessage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 163
    functionName: NSS_CMSMessage_GetContentInfo
    functionSourceFile: /src/nss/lib/smime/cmsmessage.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: NSSCMSContentInfo
    signature: 'NSSCMSContentInfo *

      NSS_CMSMessage_GetContentInfo(NSSCMSMessage *cmsg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSMessage_GetContentInfo
      Src: /src/nss/lib/smime/cmsmessage.c:178,1
    - Dst: NSS_CMSContentInfo_GetInnerContent
      Src: /src/nss/lib/smime/cmsmessage.c:179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cmsg
    argTypes:
    - NSSCMSMessage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 170
    functionDepth: 4
    functionLinenumber: 170
    functionLinenumberEnd: 181
    functionName: NSS_CMSMessage_GetContent
    functionSourceFile: /src/nss/lib/smime/cmsmessage.c
    functionUses: 1
    functionsReached:
    - NSS_CMSMessage_GetContentInfo
    - NSS_CMSContentInfo_GetInnerContent
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      NSS_CMSMessage_GetContent(NSSCMSMessage *cmsg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSContentInfo_GetChildContentInfo
      Src: /src/nss/lib/smime/cmsmessage.c:201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - cmsg
    argTypes:
    - NSSCMSMessage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 188
    functionDepth: 3
    functionLinenumber: 188
    functionLinenumberEnd: 204
    functionName: NSS_CMSMessage_ContentLevelCount
    functionSourceFile: /src/nss/lib/smime/cmsmessage.c
    functionUses: 2
    functionsReached:
    - NSS_CMSContentInfo_GetChildContentInfo
    linkageType: ''
    returnType: int
    signature: int NSS_CMSMessage_ContentLevelCount(NSSCMSMessage *cmsg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSContentInfo_GetChildContentInfo
      Src: /src/nss/lib/smime/cmsmessage.c:223,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - cmsg
    - n
    argTypes:
    - NSSCMSMessage*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 211
    functionDepth: 3
    functionLinenumber: 211
    functionLinenumberEnd: 228
    functionName: NSS_CMSMessage_ContentLevel
    functionSourceFile: /src/nss/lib/smime/cmsmessage.c
    functionUses: 2
    functionsReached:
    - NSS_CMSContentInfo_GetChildContentInfo
    linkageType: ''
    returnType: NSSCMSContentInfo
    signature: 'NSSCMSContentInfo *

      NSS_CMSMessage_ContentLevel(NSSCMSMessage *cmsg, int n)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSContentInfo_GetChildContentInfo
      Src: /src/nss/lib/smime/cmsmessage.c:244,1
    - Dst: NSS_CMSContentInfo_GetContentTypeTag
      Src: /src/nss/lib/smime/cmsmessage.c:245,1
    - Dst: NSS_CMSSignedData_ContainsCertsOrCrls
      Src: /src/nss/lib/smime/cmsmessage.c:249,1
    - Dst: NSS_CMSContentInfo_GetContent
      Src: /src/nss/lib/smime/cmsmessage.c:249,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - cmsg
    argTypes:
    - NSSCMSMessage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 233
    functionDepth: 3
    functionLinenumber: 233
    functionLinenumberEnd: 254
    functionName: NSS_CMSMessage_ContainsCertsOrCrls
    functionSourceFile: /src/nss/lib/smime/cmsmessage.c
    functionUses: 0
    functionsReached:
    - NSS_CMSSignedData_ContainsCertsOrCrls
    - NSS_CMSContentInfo_GetChildContentInfo
    - NSS_CMSContentInfo_GetContent
    - NSS_CMSContentInfo_GetContentTypeTag
    linkageType: ''
    returnType: PRBool
    signature: PRBool NSS_CMSMessage_ContainsCertsOrCrls(NSSCMSMessage *cmsg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSContentInfo_GetChildContentInfo
      Src: /src/nss/lib/smime/cmsmessage.c:270,1
    - Dst: NSS_CMSContentInfo_GetContentTypeTag
      Src: /src/nss/lib/smime/cmsmessage.c:271,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - cmsg
    argTypes:
    - NSSCMSMessage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 259
    functionDepth: 3
    functionLinenumber: 259
    functionLinenumberEnd: 281
    functionName: NSS_CMSMessage_IsEncrypted
    functionSourceFile: /src/nss/lib/smime/cmsmessage.c
    functionUses: 0
    functionsReached:
    - NSS_CMSContentInfo_GetChildContentInfo
    - NSS_CMSContentInfo_GetContentTypeTag
    linkageType: ''
    returnType: PRBool
    signature: PRBool NSS_CMSMessage_IsEncrypted(NSSCMSMessage *cmsg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSContentInfo_GetChildContentInfo
      Src: /src/nss/lib/smime/cmsmessage.c:304,1
    - Dst: NSS_CMSContentInfo_GetContentTypeTag
      Src: /src/nss/lib/smime/cmsmessage.c:305,1
    - Dst: NSS_CMSArray_IsEmpty
      Src: /src/nss/lib/smime/cmsmessage.c:310,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - cmsg
    argTypes:
    - NSSCMSMessage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 293
    functionDepth: 3
    functionLinenumber: 293
    functionLinenumberEnd: 320
    functionName: NSS_CMSMessage_IsSigned
    functionSourceFile: /src/nss/lib/smime/cmsmessage.c
    functionUses: 0
    functionsReached:
    - NSS_CMSArray_IsEmpty
    - NSS_CMSContentInfo_GetChildContentInfo
    - NSS_CMSContentInfo_GetContentTypeTag
    linkageType: ''
    returnType: PRBool
    signature: PRBool NSS_CMSMessage_IsSigned(NSSCMSMessage *cmsg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSContentInfo_GetContent
      Src: /src/nss/lib/smime/cmsmessage.c:337,1
    - Dst: NSS_CMSMessage_GetContentInfo
      Src: /src/nss/lib/smime/cmsmessage.c:337,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - cmsg
    - minLen
    argTypes:
    - NSSCMSMessage*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 328
    functionDepth: 2
    functionLinenumber: 328
    functionLinenumberEnd: 346
    functionName: NSS_CMSMessage_IsContentEmpty
    functionSourceFile: /src/nss/lib/smime/cmsmessage.c
    functionUses: 0
    functionsReached:
    - NSS_CMSMessage_GetContentInfo
    - NSS_CMSContentInfo_GetContent
    linkageType: ''
    returnType: PRBool
    signature: PRBool NSS_CMSMessage_IsContentEmpty(NSSCMSMessage *cmsg, unsigned
      int minLen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SEC_PKCS7DecodeItem
      Src: /src/nss/lib/smime/smimesym.c:10,1
    - Dst: SEC_PKCS7DestroyContentInfo
      Src: /src/nss/lib/smime/smimesym.c:11,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 8
    functionDepth: 1
    functionLinenumber: 8
    functionLinenumberEnd: 12
    functionName: smime_CMDExports
    functionSourceFile: /src/nss/lib/smime/smimesym.c
    functionUses: 0
    functionsReached:
    - SEC_PKCS7DecodeItem
    - SEC_PKCS7DestroyContentInfo
    linkageType: ''
    returnType: void
    signature: void smime_CMDExports()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/smime/cmsdigest.c:52,1
    - Dst: NSS_CMSArray_Count
      Src: /src/nss/lib/smime/cmsdigest.c:55,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/smime/cmsdigest.c:59,1
    - Dst: PORT_ArenaNew
      Src: /src/nss/lib/smime/cmsdigest.c:63,1
    - Dst: PORT_ArenaZNewArray
      Src: /src/nss/lib/smime/cmsdigest.c:71,1
    - Dst: NSS_SMIMEUtil_SigningAllowed
      Src: /src/nss/lib/smime/cmsdigest.c:83,1
    - Dst: NSS_CMSUtil_GetHashObjByAlgID
      Src: /src/nss/lib/smime/cmsdigest.c:86,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/smime/cmsdigest.c:122,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 1
    argNames:
    - digestalgs
    argTypes:
    - SECAlgorithmID**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 43
    functionDepth: 3
    functionLinenumber: 43
    functionLinenumberEnd: 125
    functionName: NSS_CMSDigestContext_StartMultiple
    functionSourceFile: /src/nss/lib/smime/cmsdigest.c
    functionUses: 3
    functionsReached:
    - PORT_Assert
    - PORT_ArenaZNewArray
    - PORT_NewArena
    - NSS_SMIMEUtil_SigningAllowed
    - PORT_FreeArena
    - PORT_ArenaNew
    - NSS_CMSArray_Count
    - NSS_CMSUtil_GetHashObjByAlgID
    linkageType: ''
    returnType: NSSCMSDigestContext
    signature: 'NSSCMSDigestContext *

      NSS_CMSDigestContext_StartMultiple(SECAlgorithmID **digestalgs)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSDigestContext_StartMultiple
      Src: /src/nss/lib/smime/cmsdigest.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - digestalg
    argTypes:
    - SECAlgorithmID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 131
    functionDepth: 4
    functionLinenumber: 131
    functionLinenumberEnd: 138
    functionName: NSS_CMSDigestContext_StartSingle
    functionSourceFile: /src/nss/lib/smime/cmsdigest.c
    functionUses: 0
    functionsReached:
    - NSS_CMSDigestContext_StartMultiple
    linkageType: ''
    returnType: NSSCMSDigestContext
    signature: 'NSSCMSDigestContext *

      NSS_CMSDigestContext_StartSingle(SECAlgorithmID *digestalg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - cmsdigcx
    - data
    - len
    argTypes:
    - NSSCMSDigestContext*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 157
    functionName: NSS_CMSDigestContext_Update
    functionSourceFile: /src/nss/lib/smime/cmsdigest.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void NSS_CMSDigestContext_Update(NSSCMSDigestContext *cmsdigcx,\n
      \                           const unsigned char *data, int len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/smime/cmsdigest.c:177,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/smime/cmsdigest.c:179,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - cmsdigcx
    argTypes:
    - NSSCMSDigestContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 180
    functionName: NSS_CMSDigestContext_Cancel
    functionSourceFile: /src/nss/lib/smime/cmsdigest.c
    functionUses: 1
    functionsReached:
    - PORT_FreeArena
    - PORT_Assert
    linkageType: ''
    returnType: void
    signature: void NSS_CMSDigestContext_Cancel(NSSCMSDigestContext *cmsdigcx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/smime/cmsdigest.c:203,1
    - Dst: PORT_ArenaNewArray
      Src: /src/nss/lib/smime/cmsdigest.c:206,1
    - Dst: SECITEM_ArenaDupItem
      Src: /src/nss/lib/smime/cmsdigest.c:223,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/smime/cmsdigest.c:230,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/smime/cmsdigest.c:232,1
    - Dst: NSS_CMSDigestContext_Cancel
      Src: /src/nss/lib/smime/cmsdigest.c:235,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 3
    argNames:
    - cmsdigcx
    - poolp
    - digestsp
    argTypes:
    - NSSCMSDigestContext*
    - PLArenaPool*
    - SECItem***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 243
    functionName: NSS_CMSDigestContext_FinishMultiple
    functionSourceFile: /src/nss/lib/smime/cmsdigest.c
    functionUses: 3
    functionsReached:
    - NSS_CMSDigestContext_Cancel
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - PORT_ArenaUnmark
    - PORT_ArenaNewArray
    - SECITEM_ArenaDupItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus NSS_CMSDigestContext_FinishMultiple(NSSCMSDigestContext
      *cmsdigcx,\n                                    PLArenaPool *poolp,\n                                    SECItem
      ***digestsp)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/smime/cmsdigest.c:258,1
    - Dst: NSS_CMSDigestContext_FinishMultiple
      Src: /src/nss/lib/smime/cmsdigest.c:262,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/smime/cmsdigest.c:265,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/smime/cmsdigest.c:269,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 3
    argNames:
    - cmsdigcx
    - poolp
    - digest
    argTypes:
    - NSSCMSDigestContext*
    - PLArenaPool*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 272
    functionName: NSS_CMSDigestContext_FinishSingle
    functionSourceFile: /src/nss/lib/smime/cmsdigest.c
    functionUses: 0
    functionsReached:
    - PORT_FreeArena
    - NSS_CMSDigestContext_FinishMultiple
    - PORT_NewArena
    - SECITEM_CopyItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus NSS_CMSDigestContext_FinishSingle(NSSCMSDigestContext *cmsdigcx,\n
      \                                 PLArenaPool *poolp,\n                                  SECItem
      *digest)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_cmssignerinfo_create
      Src: /src/nss/lib/smime/cmssiginfo.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - cmsg
    - subjKeyID
    - pubKey
    - signingKey
    - digestalgtag
    argTypes:
    - NSSCMSMessage*
    - SECItem*
    - SECKEYPublicKey*
    - SECKEYPrivateKey*
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 39
    functionName: NSS_CMSSignerInfo_CreateWithSubjKeyID
    functionSourceFile: /src/nss/lib/smime/cmssiginfo.c
    functionUses: 0
    functionsReached:
    - nss_cmssignerinfo_create
    linkageType: ''
    returnType: NSSCMSSignerInfo
    signature: "NSSCMSSignerInfo *\nNSS_CMSSignerInfo_CreateWithSubjKeyID(NSSCMSMessage
      *cmsg, SECItem *subjKeyID,\n                                      SECKEYPublicKey
      *pubKey,\n                                      SECKEYPrivateKey *signingKey,
      SECOidTag digestalgtag)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_cmssignerinfo_create
      Src: /src/nss/lib/smime/cmssiginfo.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmsg
    - cert
    - digestalgtag
    argTypes:
    - NSSCMSMessage*
    - CERTCertificate*
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: NSS_CMSSignerInfo_Create
    functionSourceFile: /src/nss/lib/smime/cmssiginfo.c
    functionUses: 1
    functionsReached:
    - nss_cmssignerinfo_create
    linkageType: ''
    returnType: NSSCMSSignerInfo
    signature: 'NSSCMSSignerInfo *

      NSS_CMSSignerInfo_Create(NSSCMSMessage *cmsg, CERTCertificate *cert, SECOidTag
      digestalgtag)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/smime/cmssiginfo.c:61,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/smime/cmssiginfo.c:63,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/smime/cmssiginfo.c:65,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/smime/cmssiginfo.c:74,1
    - Dst: CERT_GetCertIssuerAndSN
      Src: /src/nss/lib/smime/cmssiginfo.c:76,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/smime/cmssiginfo.c:81,1
    - Dst: PORT_ArenaNew
      Src: /src/nss/lib/smime/cmssiginfo.c:85,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/smime/cmssiginfo.c:86,1
    - Dst: SECKEY_CopyPrivateKey
      Src: /src/nss/lib/smime/cmssiginfo.c:91,1
    - Dst: SECKEY_CopyPublicKey
      Src: /src/nss/lib/smime/cmssiginfo.c:94,1
    - Dst: SEC_ASN1EncodeInteger
      Src: /src/nss/lib/smime/cmssiginfo.c:107,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/lib/smime/cmssiginfo.c:109,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/smime/cmssiginfo.c:112,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/smime/cmssiginfo.c:116,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 57
    argCount: 7
    argNames:
    - cmsg
    - type
    - cert
    - subjKeyID
    - pubKey
    - signingKey
    - digestalgtag
    argTypes:
    - NSSCMSMessage*
    - NSSCMSSignerIDSelector
    - CERTCertificate*
    - SECItem*
    - SECKEYPublicKey*
    - SECKEYPrivateKey*
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 48
    functionDepth: 5
    functionLinenumber: 48
    functionLinenumberEnd: 118
    functionName: nss_cmssignerinfo_create
    functionSourceFile: /src/nss/lib/smime/cmssiginfo.c
    functionUses: 2
    functionsReached:
    - PORT_Assert
    - SECKEY_CopyPublicKey
    - PORT_ArenaZAlloc
    - PORT_ArenaNew
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - SECITEM_CopyItem
    - SECOID_SetAlgorithmID
    - SEC_ASN1EncodeInteger
    - CERT_GetCertIssuerAndSN
    - CERT_DupCertificate
    - PORT_ArenaUnmark
    - SECKEY_CopyPrivateKey
    linkageType: ''
    returnType: NSSCMSSignerInfo
    signature: "NSSCMSSignerInfo *\nnss_cmssignerinfo_create(NSSCMSMessage *cmsg,
      NSSCMSSignerIDSelector type,\n                         CERTCertificate *cert,
      SECItem *subjKeyID, SECKEYPublicKey *pubKey,\n                         SECKEYPrivateKey
      *signingKey, SECOidTag digestalgtag)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/smime/cmssiginfo.c:127,1
    - Dst: CERT_DestroyCertificateList
      Src: /src/nss/lib/smime/cmssiginfo.c:130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - si
    argTypes:
    - NSSCMSSignerInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 123
    functionDepth: 8
    functionLinenumber: 123
    functionLinenumberEnd: 133
    functionName: NSS_CMSSignerInfo_Destroy
    functionSourceFile: /src/nss/lib/smime/cmssiginfo.c
    functionUses: 2
    functionsReached:
    - CERT_DestroyCertificateList
    - CERT_DestroyCertificate
    linkageType: ''
    returnType: void
    signature: void NSS_CMSSignerInfo_Destroy(NSSCMSSignerInfo *si)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - keyType
    - pubkAlgTag
    - signAlgTag
    argTypes:
    - KeyType
    - SECOidTag
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 149
    functionName: NSS_CMSSignerInfo_GetSignatureAlgorithmOidTag
    functionSourceFile: /src/nss/lib/smime/cmssiginfo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECOidTag
    signature: "SECOidTag NSS_CMSSignerInfo_GetSignatureAlgorithmOidTag(KeyType keyType,\n
      \                                             SECOidTag pubkAlgTag,\n                                              SECOidTag
      signAlgTag)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/smime/cmssiginfo.c:171,1
    - Dst: PK11_FindKeyByAnyCert
      Src: /src/nss/lib/smime/cmssiginfo.c:179,1
    - Dst: SECKEY_CreateSubjectPublicKeyInfo
      Src: /src/nss/lib/smime/cmssiginfo.c:187,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/smime/cmssiginfo.c:188,1
    - Dst: SECOID_CopyAlgorithmID
      Src: /src/nss/lib/smime/cmssiginfo.c:190,1
    - Dst: SECKEY_DestroySubjectPublicKeyInfo
      Src: /src/nss/lib/smime/cmssiginfo.c:191,1
    - Dst: NSS_CMSSignerInfo_GetDigestAlgTag
      Src: /src/nss/lib/smime/cmssiginfo.c:197,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/smime/cmssiginfo.c:202,1
    - Dst: SECOID_DestroyAlgorithmID
      Src: /src/nss/lib/smime/cmssiginfo.c:204,1
    - Dst: SEC_GetSignatureAlgorithmOidTag
      Src: /src/nss/lib/smime/cmssiginfo.c:207,1
    - Dst: SECKEY_GetPrivateKeyType
      Src: /src/nss/lib/smime/cmssiginfo.c:207,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmssiginfo.c:210,1
    - Dst: NSS_CMSSignerInfo_GetSignatureAlgorithmOidTag
      Src: /src/nss/lib/smime/cmssiginfo.c:214,1
    - Dst: SECKEY_GetPrivateKeyType
      Src: /src/nss/lib/smime/cmssiginfo.c:215,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmssiginfo.c:217,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/lib/smime/cmssiginfo.c:221,1
    - Dst: NSS_SMIMEUtil_SigningAllowed
      Src: /src/nss/lib/smime/cmssiginfo.c:225,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmssiginfo.c:226,1
    - Dst: NSS_CMSAttributeArray_SetAttr
      Src: /src/nss/lib/smime/cmssiginfo.c:234,1
    - Dst: NSS_CMSAttributeArray_SetAttr
      Src: /src/nss/lib/smime/cmssiginfo.c:241,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/smime/cmssiginfo.c:247,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmssiginfo.c:248,1
    - Dst: NSS_CMSAttributeArray_Reorder
      Src: /src/nss/lib/smime/cmssiginfo.c:264,1
    - Dst: NSS_CMSAttributeArray_Encode
      Src: /src/nss/lib/smime/cmssiginfo.c:269,1
    - Dst: SEC_SignData
      Src: /src/nss/lib/smime/cmssiginfo.c:273,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/smime/cmssiginfo.c:275,1
    - Dst: SGN_Digest
      Src: /src/nss/lib/smime/cmssiginfo.c:278,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/lib/smime/cmssiginfo.c:280,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/smime/cmssiginfo.c:286,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/smime/cmssiginfo.c:289,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/smime/cmssiginfo.c:295,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/lib/smime/cmssiginfo.c:297,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/smime/cmssiginfo.c:299,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 100
    argCount: 3
    argNames:
    - signerinfo
    - digest
    - contentType
    argTypes:
    - NSSCMSSignerInfo*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 155
    functionDepth: 9
    functionLinenumber: 155
    functionLinenumberEnd: 301
    functionName: NSS_CMSSignerInfo_Sign
    functionSourceFile: /src/nss/lib/smime/cmssiginfo.c
    functionUses: 1
    functionsReached:
    - SEC_GetSignatureAlgorithmOidTag
    - SECOID_CopyAlgorithmID
    - NSS_CMSAttributeArray_Reorder
    - SECOID_DestroyAlgorithmID
    - SECKEY_CreateSubjectPublicKeyInfo
    - PK11_FindKeyByAnyCert
    - SECKEY_DestroyPublicKey
    - PORT_NewArena
    - SECOID_SetAlgorithmID
    - PORT_SetError
    - SGN_Digest
    - SECITEM_FreeItem
    - PORT_Assert
    - SECOID_GetAlgorithmTag
    - SECKEY_DestroySubjectPublicKeyInfo
    - PORT_FreeArena
    - NSS_CMSSignerInfo_GetDigestAlgTag
    - NSS_CMSAttributeArray_SetAttr
    - NSS_CMSAttributeArray_Encode
    - NSS_CMSSignerInfo_GetSignatureAlgorithmOidTag
    - NSS_SMIMEUtil_SigningAllowed
    - SECITEM_CopyItem
    - SECKEY_GetPrivateKeyType
    - SECKEY_DestroyPrivateKey
    - SEC_SignData
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus NSS_CMSSignerInfo_Sign(NSSCMSSignerInfo *signerinfo, SECItem
      *digest,\n                       SECItem *contentType)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSSignerInfo_GetSigningCertificate
      Src: /src/nss/lib/smime/cmssiginfo.c:310,1
    - Dst: NSS_CMSSignerInfo_GetSigningTime
      Src: /src/nss/lib/smime/cmssiginfo.c:320,1
    - Dst: PR_Now
      Src: /src/nss/lib/smime/cmssiginfo.c:321,1
    - Dst: CERT_VerifyCert
      Src: /src/nss/lib/smime/cmssiginfo.c:331,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - signerinfo
    - certdb
    - certusage
    argTypes:
    - NSSCMSSignerInfo*
    - CERTCertDBHandle*
    - SECCertUsage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 303
    functionDepth: 2
    functionLinenumber: 303
    functionLinenumberEnd: 337
    functionName: NSS_CMSSignerInfo_VerifyCertificate
    functionSourceFile: /src/nss/lib/smime/cmssiginfo.c
    functionUses: 1
    functionsReached:
    - CERT_VerifyCert
    - NSS_CMSSignerInfo_GetSigningTime
    - NSS_CMSSignerInfo_GetSigningCertificate
    - PR_Now
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus NSS_CMSSignerInfo_VerifyCertificate(NSSCMSSignerInfo *signerinfo,
      CERTCertDBHandle *certdb,\n                                    SECCertUsage
      certusage)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSSignerInfo_GetSigningCertificate
      Src: /src/nss/lib/smime/cmssiginfo.c:367,1
    - Dst: CERT_ExtractPublicKey
      Src: /src/nss/lib/smime/cmssiginfo.c:373,1
    - Dst: NSS_CMSSignerInfo_GetDigestAlgTag
      Src: /src/nss/lib/smime/cmssiginfo.c:378,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/smime/cmssiginfo.c:379,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/smime/cmssiginfo.c:380,1
    - Dst: NSS_SMIMEUtil_SigningAllowed
      Src: /src/nss/lib/smime/cmssiginfo.c:386,1
    - Dst: NSS_CMSArray_IsEmpty
      Src: /src/nss/lib/smime/cmssiginfo.c:391,1
    - Dst: NSS_CMSAttributeArray_FindAttrByOidTag
      Src: /src/nss/lib/smime/cmssiginfo.c:402,1
    - Dst: NSS_CMSAttribute_CompareValue
      Src: /src/nss/lib/smime/cmssiginfo.c:409,1
    - Dst: NSS_CMSAttributeArray_FindAttrByOidTag
      Src: /src/nss/lib/smime/cmssiginfo.c:418,1
    - Dst: NSS_CMSAttribute_CompareValue
      Src: /src/nss/lib/smime/cmssiginfo.c:425,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/smime/cmssiginfo.c:430,1
    - Dst: NSS_CMSAttributeArray_Encode
      Src: /src/nss/lib/smime/cmssiginfo.c:446,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/smime/cmssiginfo.c:449,1
    - Dst: VFY_VerifyDataDirect
      Src: /src/nss/lib/smime/cmssiginfo.c:458,1
    - Dst: VFY_VerifyDataWithAlgorithmID
      Src: /src/nss/lib/smime/cmssiginfo.c:464,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmssiginfo.c:470,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/smime/cmssiginfo.c:477,1
    - Dst: VFY_VerifyDigestDirect
      Src: /src/nss/lib/smime/cmssiginfo.c:494,1
    - Dst: VFY_VerifyDigestWithAlgorithmID
      Src: /src/nss/lib/smime/cmssiginfo.c:500,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/smime/cmssiginfo.c:509,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmssiginfo.c:527,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmssiginfo.c:534,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/smime/cmssiginfo.c:540,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/smime/cmssiginfo.c:548,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmssiginfo.c:552,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 109
    argCount: 3
    argNames:
    - signerinfo
    - digest
    - contentType
    argTypes:
    - NSSCMSSignerInfo*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 345
    functionDepth: 7
    functionLinenumber: 345
    functionLinenumberEnd: 554
    functionName: NSS_CMSSignerInfo_Verify
    functionSourceFile: /src/nss/lib/smime/cmssiginfo.c
    functionUses: 1
    functionsReached:
    - SECKEY_DestroyPublicKey
    - SECOID_GetAlgorithmTag
    - PORT_NewArena
    - NSS_SMIMEUtil_SigningAllowed
    - PORT_FreeArena
    - VFY_VerifyDataWithAlgorithmID
    - NSS_CMSSignerInfo_GetDigestAlgTag
    - VFY_VerifyDigestDirect
    - PORT_GetError
    - NSS_CMSAttribute_CompareValue
    - PORT_SetError
    - NSS_CMSAttributeArray_Encode
    - NSS_CMSAttributeArray_FindAttrByOidTag
    - VFY_VerifyDigestWithAlgorithmID
    - VFY_VerifyDataDirect
    - NSS_CMSArray_IsEmpty
    - CERT_ExtractPublicKey
    - NSS_CMSSignerInfo_GetSigningCertificate
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus NSS_CMSSignerInfo_Verify(NSSCMSSignerInfo *signerinfo,\n
      \                        SECItem *digest,      /* may be NULL */\n                         SECItem
      *contentType)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - signerinfo
    argTypes:
    - NSSCMSSignerInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 560
    functionName: NSS_CMSSignerInfo_GetVerificationStatus
    functionSourceFile: /src/nss/lib/smime/cmssiginfo.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: NSSCMSVerificationStatus
    signature: NSSCMSVerificationStatus NSS_CMSSignerInfo_GetVerificationStatus(NSSCMSSignerInfo
      *signerinfo)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOID
      Src: /src/nss/lib/smime/cmssiginfo.c:568,1
    - Dst: NSS_CMSUtil_MapSignAlgs
      Src: /src/nss/lib/smime/cmssiginfo.c:577,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/lib/smime/cmssiginfo.c:582,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - signerinfo
    argTypes:
    - NSSCMSSignerInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 562
    functionDepth: 1
    functionLinenumber: 562
    functionLinenumberEnd: 586
    functionName: NSS_CMSSignerInfo_GetDigestAlg
    functionSourceFile: /src/nss/lib/smime/cmssiginfo.c
    functionUses: 1
    functionsReached:
    - SECOID_FindOIDByTag
    - SECOID_FindOID
    - NSS_CMSUtil_MapSignAlgs
    linkageType: ''
    returnType: SECOidData
    signature: 'SECOidData *

      NSS_CMSSignerInfo_GetDigestAlg(NSSCMSSignerInfo *signerinfo)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmssiginfo.c:594,1
    - Dst: NSS_CMSSignerInfo_GetDigestAlg
      Src: /src/nss/lib/smime/cmssiginfo.c:598,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - signerinfo
    argTypes:
    - NSSCMSSignerInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 588
    functionDepth: 2
    functionLinenumber: 588
    functionLinenumberEnd: 603
    functionName: NSS_CMSSignerInfo_GetDigestAlgTag
    functionSourceFile: /src/nss/lib/smime/cmssiginfo.c
    functionUses: 5
    functionsReached:
    - PORT_SetError
    - NSS_CMSSignerInfo_GetDigestAlg
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag NSS_CMSSignerInfo_GetDigestAlgTag(NSSCMSSignerInfo *signerinfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - signerinfo
    argTypes:
    - NSSCMSSignerInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 605
    functionDepth: 0
    functionLinenumber: 605
    functionLinenumberEnd: 609
    functionName: NSS_CMSSignerInfo_GetCertList
    functionSourceFile: /src/nss/lib/smime/cmssiginfo.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: CERTCertificateList
    signature: 'CERTCertificateList *

      NSS_CMSSignerInfo_GetCertList(NSSCMSSignerInfo *signerinfo)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1DecodeInteger
      Src: /src/nss/lib/smime/cmssiginfo.c:617,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - signerinfo
    argTypes:
    - NSSCMSSignerInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 611
    functionDepth: 0
    functionLinenumber: 611
    functionLinenumberEnd: 621
    functionName: NSS_CMSSignerInfo_GetVersion
    functionSourceFile: /src/nss/lib/smime/cmssiginfo.c
    functionUses: 1
    functionsReached:
    - SEC_ASN1DecodeInteger
    linkageType: ''
    returnType: int
    signature: int NSS_CMSSignerInfo_GetVersion(NSSCMSSignerInfo *signerinfo)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSAttributeArray_FindAttrByOidTag
      Src: /src/nss/lib/smime/cmssiginfo.c:647,1
    - Dst: NSS_CMSAttribute_GetValue
      Src: /src/nss/lib/smime/cmssiginfo.c:650,1
    - Dst: DER_DecodeTimeChoice
      Src: /src/nss/lib/smime/cmssiginfo.c:652,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - sinfo
    - stime
    argTypes:
    - NSSCMSSignerInfo*
    - PRTime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 656
    functionName: NSS_CMSSignerInfo_GetSigningTime
    functionSourceFile: /src/nss/lib/smime/cmssiginfo.c
    functionUses: 1
    functionsReached:
    - DER_DecodeTimeChoice
    - NSS_CMSAttributeArray_FindAttrByOidTag
    - NSS_CMSAttribute_GetValue
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_CMSSignerInfo_GetSigningTime(NSSCMSSignerInfo *sinfo,
      PRTime *stime)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CERT_FindCertByIssuerAndSN
      Src: /src/nss/lib/smime/cmssiginfo.c:685,1
    - Dst: CERT_FindCertBySubjectKeyID
      Src: /src/nss/lib/smime/cmssiginfo.c:688,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - signerinfo
    - certdb
    argTypes:
    - NSSCMSSignerInfo*
    - CERTCertDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 663
    functionDepth: 9
    functionLinenumber: 663
    functionLinenumberEnd: 699
    functionName: NSS_CMSSignerInfo_GetSigningCertificate
    functionSourceFile: /src/nss/lib/smime/cmssiginfo.c
    functionUses: 3
    functionsReached:
    - CERT_FindCertByIssuerAndSN
    - CERT_FindCertBySubjectKeyID
    linkageType: ''
    returnType: CERTCertificate
    signature: 'CERTCertificate *

      NSS_CMSSignerInfo_GetSigningCertificate(NSSCMSSignerInfo *signerinfo, CERTCertDBHandle
      *certdb)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSSignerInfo_GetSigningCertificate
      Src: /src/nss/lib/smime/cmssiginfo.c:715,1
    - Dst: CERT_GetCommonName
      Src: /src/nss/lib/smime/cmssiginfo.c:718,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - sinfo
    argTypes:
    - NSSCMSSignerInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 709
    functionDepth: 10
    functionLinenumber: 709
    functionLinenumberEnd: 719
    functionName: NSS_CMSSignerInfo_GetSignerCommonName
    functionSourceFile: /src/nss/lib/smime/cmssiginfo.c
    functionUses: 1
    functionsReached:
    - CERT_GetCommonName
    - NSS_CMSSignerInfo_GetSigningCertificate
    linkageType: ''
    returnType: char
    signature: 'char *

      NSS_CMSSignerInfo_GetSignerCommonName(NSSCMSSignerInfo *sinfo)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSSignerInfo_GetSigningCertificate
      Src: /src/nss/lib/smime/cmssiginfo.c:734,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/smime/cmssiginfo.c:740,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - sinfo
    argTypes:
    - NSSCMSSignerInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 729
    functionDepth: 10
    functionLinenumber: 729
    functionLinenumberEnd: 741
    functionName: NSS_CMSSignerInfo_GetSignerEmailAddress
    functionSourceFile: /src/nss/lib/smime/cmssiginfo.c
    functionUses: 0
    functionsReached:
    - PORT_Strdup
    - NSS_CMSSignerInfo_GetSigningCertificate
    linkageType: ''
    returnType: char
    signature: 'char *

      NSS_CMSSignerInfo_GetSignerEmailAddress(NSSCMSSignerInfo *sinfo)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSAttributeArray_AddAttr
      Src: /src/nss/lib/smime/cmssiginfo.c:750,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - signerinfo
    - attr
    argTypes:
    - NSSCMSSignerInfo*
    - NSSCMSAttribute*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 747
    functionDepth: 1
    functionLinenumber: 747
    functionLinenumberEnd: 751
    functionName: NSS_CMSSignerInfo_AddAuthAttr
    functionSourceFile: /src/nss/lib/smime/cmssiginfo.c
    functionUses: 0
    functionsReached:
    - NSS_CMSAttributeArray_AddAttr
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_CMSSignerInfo_AddAuthAttr(NSSCMSSignerInfo *signerinfo,
      NSSCMSAttribute *attr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSAttributeArray_AddAttr
      Src: /src/nss/lib/smime/cmssiginfo.c:760,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - signerinfo
    - attr
    argTypes:
    - NSSCMSSignerInfo*
    - NSSCMSAttribute*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 757
    functionDepth: 1
    functionLinenumber: 757
    functionLinenumberEnd: 761
    functionName: NSS_CMSSignerInfo_AddUnauthAttr
    functionSourceFile: /src/nss/lib/smime/cmssiginfo.c
    functionUses: 0
    functionsReached:
    - NSS_CMSAttributeArray_AddAttr
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_CMSSignerInfo_AddUnauthAttr(NSSCMSSignerInfo *signerinfo,
      NSSCMSAttribute *attr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/smime/cmssiginfo.c:786,1
    - Dst: DER_EncodeTimeChoice
      Src: /src/nss/lib/smime/cmssiginfo.c:789,1
    - Dst: NSS_CMSAttribute_Create
      Src: /src/nss/lib/smime/cmssiginfo.c:792,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/smime/cmssiginfo.c:793,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/smime/cmssiginfo.c:797,1
    - Dst: NSS_CMSSignerInfo_AddAuthAttr
      Src: /src/nss/lib/smime/cmssiginfo.c:799,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/smime/cmssiginfo.c:802,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/smime/cmssiginfo.c:807,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - signerinfo
    - t
    argTypes:
    - NSSCMSSignerInfo*
    - PRTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 776
    functionDepth: 2
    functionLinenumber: 776
    functionLinenumberEnd: 809
    functionName: NSS_CMSSignerInfo_AddSigningTime
    functionSourceFile: /src/nss/lib/smime/cmssiginfo.c
    functionUses: 1
    functionsReached:
    - NSS_CMSSignerInfo_AddAuthAttr
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - NSS_CMSAttribute_Create
    - DER_EncodeTimeChoice
    - PORT_ArenaUnmark
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_CMSSignerInfo_AddSigningTime(NSSCMSSignerInfo *signerinfo,
      PRTime t)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/smime/cmssiginfo.c:828,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/smime/cmssiginfo.c:830,1
    - Dst: NSS_SMIMEUtil_CreateSMIMECapabilities
      Src: /src/nss/lib/smime/cmssiginfo.c:835,1
    - Dst: NSS_CMSAttribute_Create
      Src: /src/nss/lib/smime/cmssiginfo.c:838,1
    - Dst: NSS_CMSSignerInfo_AddAuthAttr
      Src: /src/nss/lib/smime/cmssiginfo.c:841,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/smime/cmssiginfo.c:844,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/smime/cmssiginfo.c:848,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - signerinfo
    argTypes:
    - NSSCMSSignerInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 818
    functionDepth: 3
    functionLinenumber: 818
    functionLinenumberEnd: 850
    functionName: NSS_CMSSignerInfo_AddSMIMECaps
    functionSourceFile: /src/nss/lib/smime/cmssiginfo.c
    functionUses: 1
    functionsReached:
    - NSS_CMSSignerInfo_AddAuthAttr
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - SECITEM_AllocItem
    - NSS_CMSAttribute_Create
    - NSS_SMIMEUtil_CreateSMIMECapabilities
    - PORT_ArenaUnmark
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_CMSSignerInfo_AddSMIMECaps(NSSCMSSignerInfo *signerinfo)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CERT_VerifyCert
      Src: /src/nss/lib/smime/cmssiginfo.c:867,1
    - Dst: PR_Now
      Src: /src/nss/lib/smime/cmssiginfo.c:867,1
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/smime/cmssiginfo.c:872,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/smime/cmssiginfo.c:874,1
    - Dst: NSS_SMIMEUtil_CreateSMIMEEncKeyPrefs
      Src: /src/nss/lib/smime/cmssiginfo.c:879,1
    - Dst: NSS_CMSAttribute_Create
      Src: /src/nss/lib/smime/cmssiginfo.c:882,1
    - Dst: NSS_CMSSignerInfo_AddAuthAttr
      Src: /src/nss/lib/smime/cmssiginfo.c:885,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/smime/cmssiginfo.c:888,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/smime/cmssiginfo.c:892,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - signerinfo
    - cert
    - certdb
    argTypes:
    - NSSCMSSignerInfo*
    - CERTCertificate*
    - CERTCertDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 858
    functionDepth: 6
    functionLinenumber: 858
    functionLinenumberEnd: 894
    functionName: NSS_CMSSignerInfo_AddSMIMEEncKeyPrefs
    functionSourceFile: /src/nss/lib/smime/cmssiginfo.c
    functionUses: 1
    functionsReached:
    - NSS_CMSSignerInfo_AddAuthAttr
    - NSS_SMIMEUtil_CreateSMIMEEncKeyPrefs
    - CERT_VerifyCert
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - SECITEM_AllocItem
    - PR_Now
    - NSS_CMSAttribute_Create
    - PORT_ArenaUnmark
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_CMSSignerInfo_AddSMIMEEncKeyPrefs(NSSCMSSignerInfo *signerinfo,
      CERTCertificate *cert, CERTCertDBHandle *certdb)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CERT_VerifyCert
      Src: /src/nss/lib/smime/cmssiginfo.c:912,1
    - Dst: PR_Now
      Src: /src/nss/lib/smime/cmssiginfo.c:912,1
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/smime/cmssiginfo.c:917,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/smime/cmssiginfo.c:919,1
    - Dst: NSS_SMIMEUtil_CreateMSSMIMEEncKeyPrefs
      Src: /src/nss/lib/smime/cmssiginfo.c:924,1
    - Dst: NSS_CMSAttribute_Create
      Src: /src/nss/lib/smime/cmssiginfo.c:927,1
    - Dst: NSS_CMSSignerInfo_AddAuthAttr
      Src: /src/nss/lib/smime/cmssiginfo.c:930,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/smime/cmssiginfo.c:933,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/smime/cmssiginfo.c:937,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - signerinfo
    - cert
    - certdb
    argTypes:
    - NSSCMSSignerInfo*
    - CERTCertificate*
    - CERTCertDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 903
    functionDepth: 6
    functionLinenumber: 903
    functionLinenumberEnd: 939
    functionName: NSS_CMSSignerInfo_AddMSSMIMEEncKeyPrefs
    functionSourceFile: /src/nss/lib/smime/cmssiginfo.c
    functionUses: 1
    functionsReached:
    - NSS_CMSSignerInfo_AddAuthAttr
    - CERT_VerifyCert
    - NSS_SMIMEUtil_CreateMSSMIMEEncKeyPrefs
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - SECITEM_AllocItem
    - PR_Now
    - NSS_CMSAttribute_Create
    - PORT_ArenaUnmark
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_CMSSignerInfo_AddMSSMIMEEncKeyPrefs(NSSCMSSignerInfo
      *signerinfo, CERTCertificate *cert, CERTCertDBHandle *certdb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - signerinfo
    - digestalg
    - signingcert
    argTypes:
    - NSSCMSSignerInfo*
    - SECOidTag
    - CERTCertificate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 954
    functionDepth: 0
    functionLinenumber: 954
    functionLinenumberEnd: 960
    functionName: NSS_CMSSignerInfo_AddCounterSignature
    functionSourceFile: /src/nss/lib/smime/cmssiginfo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus NSS_CMSSignerInfo_AddCounterSignature(NSSCMSSignerInfo *signerinfo,\n
      \                                     SECOidTag digestalg, CERTCertificate signingcert)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/lib/smime/cmssiginfo.c:979,1
    - Dst: NSS_CMSArray_IsEmpty
      Src: /src/nss/lib/smime/cmssiginfo.c:986,1
    - Dst: NSS_CMSAttributeArray_FindAttrByOidTag
      Src: /src/nss/lib/smime/cmssiginfo.c:987,1
    - Dst: NSS_CMSAttribute_GetValue
      Src: /src/nss/lib/smime/cmssiginfo.c:989,1
    - Dst: NSS_SMIMEUtil_GetCertFromEncryptionKeyPreference
      Src: /src/nss/lib/smime/cmssiginfo.c:995,1
    - Dst: NSS_CMSSignerInfo_GetSigningCertificate
      Src: /src/nss/lib/smime/cmssiginfo.c:1004,1
    - Dst: CERT_VerifyCert
      Src: /src/nss/lib/smime/cmssiginfo.c:1014,1
    - Dst: PR_Now
      Src: /src/nss/lib/smime/cmssiginfo.c:1014,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/smime/cmssiginfo.c:1016,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/smime/cmssiginfo.c:1027,1
    - Dst: NSS_CMSArray_IsEmpty
      Src: /src/nss/lib/smime/cmssiginfo.c:1029,1
    - Dst: NSS_CMSAttributeArray_FindAttrByOidTag
      Src: /src/nss/lib/smime/cmssiginfo.c:1030,1
    - Dst: NSS_CMSAttribute_GetValue
      Src: /src/nss/lib/smime/cmssiginfo.c:1033,1
    - Dst: NSS_CMSAttributeArray_FindAttrByOidTag
      Src: /src/nss/lib/smime/cmssiginfo.c:1034,1
    - Dst: NSS_CMSAttribute_GetValue
      Src: /src/nss/lib/smime/cmssiginfo.c:1037,1
    - Dst: CERT_SaveSMimeProfile
      Src: /src/nss/lib/smime/cmssiginfo.c:1040,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/smime/cmssiginfo.c:1042,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmssiginfo.c:1048,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 1
    argNames:
    - signerinfo
    argTypes:
    - NSSCMSSignerInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 966
    functionDepth: 10
    functionLinenumber: 966
    functionLinenumberEnd: 1051
    functionName: NSS_SMIMESignerInfo_SaveSMIMEProfile
    functionSourceFile: /src/nss/lib/smime/cmssiginfo.c
    functionUses: 1
    functionsReached:
    - NSS_SMIMEUtil_GetCertFromEncryptionKeyPreference
    - CERT_SaveSMimeProfile
    - CERT_VerifyCert
    - PORT_GetError
    - PR_Now
    - PORT_SetError
    - NSS_CMSAttributeArray_FindAttrByOidTag
    - CERT_GetDefaultCertDB
    - CERT_DestroyCertificate
    - NSS_CMSArray_IsEmpty
    - NSS_CMSSignerInfo_GetSigningCertificate
    - NSS_CMSAttribute_GetValue
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_SMIMESignerInfo_SaveSMIMEProfile(NSSCMSSignerInfo *signerinfo)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CERT_DestroyCertificateList
      Src: /src/nss/lib/smime/cmssiginfo.c:1065,1
    - Dst: CERT_CertListFromCert
      Src: /src/nss/lib/smime/cmssiginfo.c:1074,1
    - Dst: CERT_CertChainFromCert
      Src: /src/nss/lib/smime/cmssiginfo.c:1077,1
    - Dst: CERT_CertChainFromCert
      Src: /src/nss/lib/smime/cmssiginfo.c:1081,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 3
    argNames:
    - signerinfo
    - cm
    - usage
    argTypes:
    - NSSCMSSignerInfo*
    - NSSCMSCertChainMode
    - SECCertUsage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1090
      start: 1056
    functionDepth: 2
    functionLinenumber: 1056
    functionLinenumberEnd: 1090
    functionName: NSS_CMSSignerInfo_IncludeCerts
    functionSourceFile: /src/nss/lib/smime/cmssiginfo.c
    functionUses: 1
    functionsReached:
    - CERT_DestroyCertificateList
    - CERT_CertListFromCert
    - CERT_CertChainFromCert
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus NSS_CMSSignerInfo_IncludeCerts(NSSCMSSignerInfo *signerinfo,\n
      \                              NSSCMSCertChainMode cm, SECCertUsage usage)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/smime/cmsattr.c:42,1
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/smime/cmsattr.c:44,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/smime/cmsattr.c:46,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/lib/smime/cmsattr.c:50,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/smime/cmsattr.c:54,1
    - Dst: SECITEM_ArenaDupItem
      Src: /src/nss/lib/smime/cmsattr.c:58,1
    - Dst: NSS_CMSArray_Add
      Src: /src/nss/lib/smime/cmsattr.c:61,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/smime/cmsattr.c:67,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/smime/cmsattr.c:72,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/smime/cmsattr.c:73,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 4
    argNames:
    - poolp
    - oidtag
    - value
    - encoded
    argTypes:
    - PLArenaPool*
    - SECOidTag
    - SECItem*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 75
    functionName: NSS_CMSAttribute_Create
    functionSourceFile: /src/nss/lib/smime/cmsattr.c
    functionUses: 4
    functionsReached:
    - PORT_Assert
    - SECOID_FindOIDByTag
    - PORT_ArenaZAlloc
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - SECITEM_CopyItem
    - PORT_ArenaUnmark
    - SECITEM_ArenaDupItem
    - NSS_CMSArray_Add
    linkageType: ''
    returnType: NSSCMSAttribute
    signature: "NSSCMSAttribute *\nNSS_CMSAttribute_Create(PLArenaPool *poolp, SECOidTag
      oidtag, SECItem *value,\n                        PRBool encoded)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/smime/cmsattr.c:86,1
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/smime/cmsattr.c:88,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmsattr.c:91,1
    - Dst: SECITEM_ArenaDupItem
      Src: /src/nss/lib/smime/cmsattr.c:95,1
    - Dst: NSS_CMSArray_Add
      Src: /src/nss/lib/smime/cmsattr.c:98,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/smime/cmsattr.c:101,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/smime/cmsattr.c:105,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/smime/cmsattr.c:106,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - poolp
    - attr
    - value
    argTypes:
    - PLArenaPool*
    - NSSCMSAttribute*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 108
    functionName: NSS_CMSAttribute_AddValue
    functionSourceFile: /src/nss/lib/smime/cmsattr.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - PORT_SetError
    - PORT_ArenaUnmark
    - SECITEM_ArenaDupItem
    - NSS_CMSArray_Add
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_CMSAttribute_AddValue(PLArenaPool *poolp, NSSCMSAttribute
      *attr, SECItem *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOID
      Src: /src/nss/lib/smime/cmsattr.c:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - attr
    argTypes:
    - NSSCMSAttribute*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 123
    functionName: NSS_CMSAttribute_GetType
    functionSourceFile: /src/nss/lib/smime/cmsattr.c
    functionUses: 0
    functionsReached:
    - SECOID_FindOID
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag NSS_CMSAttribute_GetType(NSSCMSAttribute *attr)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - attr
    argTypes:
    - NSSCMSAttribute*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 149
    functionName: NSS_CMSAttribute_GetValue
    functionSourceFile: /src/nss/lib/smime/cmsattr.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      NSS_CMSAttribute_GetValue(NSSCMSAttribute *attr)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSAttribute_GetValue
      Src: /src/nss/lib/smime/cmsattr.c:162,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/smime/cmsattr.c:165,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - attr
    - av
    argTypes:
    - NSSCMSAttribute*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 166
    functionName: NSS_CMSAttribute_CompareValue
    functionSourceFile: /src/nss/lib/smime/cmsattr.c
    functionUses: 1
    functionsReached:
    - PORT_Memcmp
    - NSS_CMSAttribute_GetValue
    linkageType: ''
    returnType: PRBool
    signature: PRBool NSS_CMSAttribute_CompareValue(NSSCMSAttribute *attr, SECItem
      *av)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/smime/cmsattr.c:185,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/smime/cmsattr.c:195,1
    - Dst: SECOID_FindOID
      Src: /src/nss/lib/smime/cmsattr.c:201,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/smime/cmsattr.c:208,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/smime/cmsattr.c:217,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/smime/cmsattr.c:224,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/smime/cmsattr.c:228,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/smime/cmsattr.c:232,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/smime/cmsattr.c:236,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/smime/cmsattr.c:250,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 50
    argCount: 2
    argNames:
    - src_or_dest
    - encoding
    argTypes:
    - void*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 259
    functionName: cms_attr_choose_attr_value_template
    functionSourceFile: /src/nss/lib/smime/cmsattr.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SEC_ASN1_GET
    - SECOID_FindOID
    linkageType: ''
    returnType: SEC_ASN1Template
    signature: 'SEC_ASN1Template *

      cms_attr_choose_attr_value_template(void *src_or_dest, PRBool encoding)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/smime/cmsattr.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - poolp
    - attrs
    - dest
    argTypes:
    - PLArenaPool*
    - NSSCMSAttribute***
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 295
    functionName: NSS_CMSAttributeArray_Encode
    functionSourceFile: /src/nss/lib/smime/cmsattr.c
    functionUses: 2
    functionsReached:
    - SEC_ASN1EncodeItem
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      NSS_CMSAttributeArray_Encode(PLArenaPool *poolp, NSSCMSAttribute ***attrs, SECItem
      *dest)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSArray_SortByDER
      Src: /src/nss/lib/smime/cmsattr.c:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - attrs
    argTypes:
    - NSSCMSAttribute**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 308
    functionName: NSS_CMSAttributeArray_Reorder
    functionSourceFile: /src/nss/lib/smime/cmsattr.c
    functionUses: 1
    functionsReached:
    - NSS_CMSArray_SortByDER
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_CMSAttributeArray_Reorder(NSSCMSAttribute **attrs)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/lib/smime/cmsattr.c:327,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/smime/cmsattr.c:333,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/smime/cmsattr.c:345,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 21
    argCount: 3
    argNames:
    - attrs
    - oidtag
    - only
    argTypes:
    - NSSCMSAttribute**
    - SECOidTag
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 353
    functionName: NSS_CMSAttributeArray_FindAttrByOidTag
    functionSourceFile: /src/nss/lib/smime/cmsattr.c
    functionUses: 3
    functionsReached:
    - PORT_Memcmp
    - SECOID_FindOIDByTag
    linkageType: ''
    returnType: NSSCMSAttribute
    signature: 'NSSCMSAttribute *

      NSS_CMSAttributeArray_FindAttrByOidTag(NSSCMSAttribute **attrs, SECOidTag oidtag,
      PRBool only)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/smime/cmsattr.c:367,1
    - Dst: NSS_CMSAttribute_GetType
      Src: /src/nss/lib/smime/cmsattr.c:370,1
    - Dst: NSS_CMSAttributeArray_FindAttrByOidTag
      Src: /src/nss/lib/smime/cmsattr.c:373,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/smime/cmsattr.c:374,1
    - Dst: NSS_CMSArray_Add
      Src: /src/nss/lib/smime/cmsattr.c:379,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/smime/cmsattr.c:382,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/smime/cmsattr.c:386,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - poolp
    - attrs
    - attr
    argTypes:
    - PLArenaPool*
    - NSSCMSAttribute***
    - NSSCMSAttribute*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 388
    functionName: NSS_CMSAttributeArray_AddAttr
    functionSourceFile: /src/nss/lib/smime/cmsattr.c
    functionUses: 2
    functionsReached:
    - PORT_Assert
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - NSS_CMSAttributeArray_FindAttrByOidTag
    - PORT_ArenaUnmark
    - NSS_CMSAttribute_GetType
    - NSS_CMSArray_Add
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus NSS_CMSAttributeArray_AddAttr(PLArenaPool *poolp, NSSCMSAttribute
      ***attrs,\n                              NSSCMSAttribute *attr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/smime/cmsattr.c:400,1
    - Dst: NSS_CMSAttributeArray_FindAttrByOidTag
      Src: /src/nss/lib/smime/cmsattr.c:403,1
    - Dst: NSS_CMSAttribute_Create
      Src: /src/nss/lib/smime/cmsattr.c:406,1
    - Dst: NSS_CMSArray_Add
      Src: /src/nss/lib/smime/cmsattr.c:410,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/smime/cmsattr.c:419,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/smime/cmsattr.c:423,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 5
    argNames:
    - poolp
    - attrs
    - type
    - value
    - encoded
    argTypes:
    - PLArenaPool*
    - NSSCMSAttribute***
    - SECOidTag
    - SECItem*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 393
    functionDepth: 2
    functionLinenumber: 393
    functionLinenumberEnd: 425
    functionName: NSS_CMSAttributeArray_SetAttr
    functionSourceFile: /src/nss/lib/smime/cmsattr.c
    functionUses: 1
    functionsReached:
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - NSS_CMSAttributeArray_FindAttrByOidTag
    - NSS_CMSAttribute_Create
    - PORT_ArenaUnmark
    - NSS_CMSArray_Add
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus NSS_CMSAttributeArray_SetAttr(PLArenaPool *poolp, NSSCMSAttribute
      ***attrs,\n                              SECOidTag type, SECItem *value, PRBool
      encoded)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PR_Lock
      Src: /src/nss/lib/smime/cmsudf.c:52,1
    - Dst: PL_HashTableDestroy
      Src: /src/nss/lib/smime/cmsudf.c:55,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/smime/cmsudf.c:59,1
    - Dst: PR_DestroyLock
      Src: /src/nss/lib/smime/cmsudf.c:63,1
    - Dst: PR_Unlock
      Src: /src/nss/lib/smime/cmsudf.c:68,1
    - Dst: PR_DestroyLock
      Src: /src/nss/lib/smime/cmsudf.c:69,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - appData
    - reserved
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 77
    functionName: nss_cmstype_shutdown
    functionSourceFile: /src/nss/lib/smime/cmsudf.c
    functionUses: 0
    functionsReached:
    - PL_HashTableDestroy
    - PORT_FreeArena
    - PR_Lock
    - PR_Unlock
    - PR_DestroyLock
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus nss_cmstype_shutdown(void *appData, void *reserved)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: nss_cmstype_hash_key
    functionSourceFile: /src/nss/lib/smime/cmsudf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PLHashNumber
    signature: PLHashNumber nss_cmstype_hash_key(const void *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_cmstype_hash_key
      Src: /src/nss/lib/smime/cmsudf.c:88,1
    - Dst: nss_cmstype_hash_key
      Src: /src/nss/lib/smime/cmsudf.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v1
    - v2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 92
    functionName: nss_cmstype_compare_keys
    functionSourceFile: /src/nss/lib/smime/cmsudf.c
    functionUses: 0
    functionsReached:
    - nss_cmstype_hash_key
    linkageType: ''
    returnType: PRIntn
    signature: PRIntn nss_cmstype_compare_keys(const void *v1, const void *v2)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PR_NewLock
      Src: /src/nss/lib/smime/cmsudf.c:103,1
    - Dst: PR_NewLock
      Src: /src/nss/lib/smime/cmsudf.c:107,1
    - Dst: PL_NewHashTable
      Src: /src/nss/lib/smime/cmsudf.c:111,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/smime/cmsudf.c:117,1
    - Dst: NSS_RegisterShutdown
      Src: /src/nss/lib/smime/cmsudf.c:121,1
    - Dst: nss_cmstype_shutdown
      Src: /src/nss/lib/smime/cmsudf.c:128,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 130
    functionName: nss_cmstype_init
    functionSourceFile: /src/nss/lib/smime/cmsudf.c
    functionUses: 0
    functionsReached:
    - NSS_RegisterShutdown
    - PORT_NewArena
    - nss_cmstype_shutdown
    - PR_NewLock
    - PL_NewHashTable
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus nss_cmstype_init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_Lock
      Src: /src/nss/lib/smime/cmsudf.c:143,1
    - Dst: PL_HashTableLookupConst
      Src: /src/nss/lib/smime/cmsudf.c:145,1
    - Dst: PR_Unlock
      Src: /src/nss/lib/smime/cmsudf.c:147,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - type
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 149
    functionName: nss_cmstype_lookup
    functionSourceFile: /src/nss/lib/smime/cmsudf.c
    functionUses: 0
    functionsReached:
    - PR_Lock
    - PL_HashTableLookupConst
    - PR_Unlock
    linkageType: ''
    returnType: nsscmstypeInfo
    signature: 'nsscmstypeInfo *

      nss_cmstype_lookup(SECOidTag type)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_Lock
      Src: /src/nss/lib/smime/cmsudf.c:163,1
    - Dst: PR_Unlock
      Src: /src/nss/lib/smime/cmsudf.c:167,1
    - Dst: PL_HashTableAdd
      Src: /src/nss/lib/smime/cmsudf.c:170,1
    - Dst: PR_Unlock
      Src: /src/nss/lib/smime/cmsudf.c:171,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - type
    - typeinfo
    argTypes:
    - SECOidTag
    - nsscmstypeInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 173
    functionName: nss_cmstype_add
    functionSourceFile: /src/nss/lib/smime/cmsudf.c
    functionUses: 0
    functionsReached:
    - PR_Lock
    - PL_HashTableAdd
    - PR_Unlock
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus nss_cmstype_add(SECOidTag type, nsscmstypeInfo *typeinfo)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: nss_cmstype_lookup
      Src: /src/nss/lib/smime/cmsudf.c:190,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - type
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 196
    functionName: NSS_CMSType_IsWrapper
    functionSourceFile: /src/nss/lib/smime/cmsudf.c
    functionUses: 3
    functionsReached:
    - nss_cmstype_lookup
    linkageType: ''
    returnType: PRBool
    signature: PRBool NSS_CMSType_IsWrapper(SECOidTag type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nss_cmstype_lookup
      Src: /src/nss/lib/smime/cmsudf.c:207,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - type
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 198
    functionDepth: 2
    functionLinenumber: 198
    functionLinenumberEnd: 213
    functionName: NSS_CMSType_IsData
    functionSourceFile: /src/nss/lib/smime/cmsudf.c
    functionUses: 3
    functionsReached:
    - nss_cmstype_lookup
    linkageType: ''
    returnType: PRBool
    signature: PRBool NSS_CMSType_IsData(SECOidTag type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nss_cmstype_lookup
      Src: /src/nss/lib/smime/cmsudf.c:218,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/smime/cmsudf.c:223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - type
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 224
    functionName: NSS_CMSType_GetTemplate
    functionSourceFile: /src/nss/lib/smime/cmsudf.c
    functionUses: 1
    functionsReached:
    - SEC_ASN1_GET
    - nss_cmstype_lookup
    linkageType: ''
    returnType: SEC_ASN1Template
    signature: 'SEC_ASN1Template *

      NSS_CMSType_GetTemplate(SECOidTag type)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nss_cmstype_lookup
      Src: /src/nss/lib/smime/cmsudf.c:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - type
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 235
    functionName: NSS_CMSType_GetContentSize
    functionSourceFile: /src/nss/lib/smime/cmsudf.c
    functionUses: 0
    functionsReached:
    - nss_cmstype_lookup
    linkageType: ''
    returnType: size_t
    signature: size_t NSS_CMSType_GetContentSize(SECOidTag type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nss_cmstype_lookup
      Src: /src/nss/lib/smime/cmsudf.c:240,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - type
    - gd
    argTypes:
    - SECOidTag
    - NSSCMSGenericWrapperData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 237
    functionDepth: 2
    functionLinenumber: 237
    functionLinenumberEnd: 245
    functionName: NSS_CMSGenericWrapperData_Destroy
    functionSourceFile: /src/nss/lib/smime/cmsudf.c
    functionUses: 1
    functionsReached:
    - nss_cmstype_lookup
    linkageType: ''
    returnType: void
    signature: void NSS_CMSGenericWrapperData_Destroy(SECOidTag type, NSSCMSGenericWrapperData
      *gd)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nss_cmstype_lookup
      Src: /src/nss/lib/smime/cmsudf.c:258,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - type
    - gd
    argTypes:
    - SECOidTag
    - NSSCMSGenericWrapperData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 247
    functionDepth: 2
    functionLinenumber: 247
    functionLinenumberEnd: 270
    functionName: NSS_CMSGenericWrapperData_Decode_BeforeData
    functionSourceFile: /src/nss/lib/smime/cmsudf.c
    functionUses: 0
    functionsReached:
    - nss_cmstype_lookup
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus NSS_CMSGenericWrapperData_Decode_BeforeData(SECOidTag type,\n
      \                                           NSSCMSGenericWrapperData *gd)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nss_cmstype_lookup
      Src: /src/nss/lib/smime/cmsudf.c:283,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - type
    - gd
    argTypes:
    - SECOidTag
    - NSSCMSGenericWrapperData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 272
    functionDepth: 2
    functionLinenumber: 272
    functionLinenumberEnd: 295
    functionName: NSS_CMSGenericWrapperData_Decode_AfterData
    functionSourceFile: /src/nss/lib/smime/cmsudf.c
    functionUses: 0
    functionsReached:
    - nss_cmstype_lookup
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus NSS_CMSGenericWrapperData_Decode_AfterData(SECOidTag type,\n
      \                                          NSSCMSGenericWrapperData *gd)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nss_cmstype_lookup
      Src: /src/nss/lib/smime/cmsudf.c:308,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - type
    - gd
    argTypes:
    - SECOidTag
    - NSSCMSGenericWrapperData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 297
    functionDepth: 2
    functionLinenumber: 297
    functionLinenumberEnd: 320
    functionName: NSS_CMSGenericWrapperData_Decode_AfterEnd
    functionSourceFile: /src/nss/lib/smime/cmsudf.c
    functionUses: 0
    functionsReached:
    - nss_cmstype_lookup
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus NSS_CMSGenericWrapperData_Decode_AfterEnd(SECOidTag type,\n
      \                                         NSSCMSGenericWrapperData *gd)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nss_cmstype_lookup
      Src: /src/nss/lib/smime/cmsudf.c:333,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - type
    - gd
    argTypes:
    - SECOidTag
    - NSSCMSGenericWrapperData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 322
    functionDepth: 2
    functionLinenumber: 322
    functionLinenumberEnd: 345
    functionName: NSS_CMSGenericWrapperData_Encode_BeforeStart
    functionSourceFile: /src/nss/lib/smime/cmsudf.c
    functionUses: 0
    functionsReached:
    - nss_cmstype_lookup
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus NSS_CMSGenericWrapperData_Encode_BeforeStart(SECOidTag type,\n
      \                                            NSSCMSGenericWrapperData *gd)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nss_cmstype_lookup
      Src: /src/nss/lib/smime/cmsudf.c:358,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - type
    - gd
    argTypes:
    - SECOidTag
    - NSSCMSGenericWrapperData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 347
    functionDepth: 2
    functionLinenumber: 347
    functionLinenumberEnd: 370
    functionName: NSS_CMSGenericWrapperData_Encode_BeforeData
    functionSourceFile: /src/nss/lib/smime/cmsudf.c
    functionUses: 0
    functionsReached:
    - nss_cmstype_lookup
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus NSS_CMSGenericWrapperData_Encode_BeforeData(SECOidTag type,\n
      \                                           NSSCMSGenericWrapperData *gd)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nss_cmstype_lookup
      Src: /src/nss/lib/smime/cmsudf.c:383,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - type
    - gd
    argTypes:
    - SECOidTag
    - NSSCMSGenericWrapperData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 372
    functionDepth: 2
    functionLinenumber: 372
    functionLinenumberEnd: 395
    functionName: NSS_CMSGenericWrapperData_Encode_AfterData
    functionSourceFile: /src/nss/lib/smime/cmsudf.c
    functionUses: 0
    functionsReached:
    - nss_cmstype_lookup
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus NSS_CMSGenericWrapperData_Encode_AfterData(SECOidTag type,\n
      \                                          NSSCMSGenericWrapperData *gd)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_CallOnce
      Src: /src/nss/lib/smime/cmsudf.c:414,1
    - Dst: PR_Lock
      Src: /src/nss/lib/smime/cmsudf.c:418,1
    - Dst: nss_cmstype_lookup
      Src: /src/nss/lib/smime/cmsudf.c:419,1
    - Dst: PR_Unlock
      Src: /src/nss/lib/smime/cmsudf.c:421,1
    - Dst: PORT_ArenaNew
      Src: /src/nss/lib/smime/cmsudf.c:425,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 11
    argNames:
    - type
    - asn1Template
    - size
    - destroy
    - decode_before
    - decode_after
    - decode_end
    - encode_start
    - encode_before
    - encode_after
    - isData
    argTypes:
    - SECOidTag
    - SEC_ASN1Template*
    - size_t
    - NSSCMSGenericWrapperDataDestroy
    - NSSCMSGenericWrapperDataCallback
    - NSSCMSGenericWrapperDataCallback
    - NSSCMSGenericWrapperDataCallback
    - NSSCMSGenericWrapperDataCallback
    - NSSCMSGenericWrapperDataCallback
    - NSSCMSGenericWrapperDataCallback
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 397
    functionDepth: 2
    functionLinenumber: 397
    functionLinenumberEnd: 440
    functionName: NSS_CMSType_RegisterContentType
    functionSourceFile: /src/nss/lib/smime/cmsudf.c
    functionUses: 0
    functionsReached:
    - PORT_ArenaNew
    - nss_cmstype_lookup
    - PR_Lock
    - PR_Unlock
    - PR_CallOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus NSS_CMSType_RegisterContentType(SECOidTag type,\n                                SEC_ASN1Template
      *asn1Template, size_t size,\n                                NSSCMSGenericWrapperDataDestroy
      destroy,\n                                NSSCMSGenericWrapperDataCallback decode_before,\n
      \                               NSSCMSGenericWrapperDataCallback decode_after,\n
      \                               NSSCMSGenericWrapperDataCallback decode_end,\n
      \                               NSSCMSGenericWrapperDataCallback encode_start,\n
      \                               NSSCMSGenericWrapperDataCallback encode_before,\n
      \                               NSSCMSGenericWrapperDataCallback encode_after,\n
      \                               PRBool isData)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/smime/cmsdigdata.c:33,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/smime/cmsdigdata.c:35,1
    - Dst: SECOID_CopyAlgorithmID
      Src: /src/nss/lib/smime/cmsdigdata.c:41,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/smime/cmsdigdata.c:44,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/smime/cmsdigdata.c:48,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - cmsg
    - digestalg
    argTypes:
    - NSSCMSMessage*
    - SECAlgorithmID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 50
    functionName: NSS_CMSDigestedData_Create
    functionSourceFile: /src/nss/lib/smime/cmsdigdata.c
    functionUses: 0
    functionsReached:
    - PORT_ArenaZAlloc
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - SECOID_CopyAlgorithmID
    - PORT_ArenaUnmark
    linkageType: ''
    returnType: NSSCMSDigestedData
    signature: 'NSSCMSDigestedData *

      NSS_CMSDigestedData_Create(NSSCMSMessage *cmsg, SECAlgorithmID *digestalg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSContentInfo_Destroy
      Src: /src/nss/lib/smime/cmsdigdata.c:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - digd
    argTypes:
    - NSSCMSDigestedData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 55
    functionDepth: 5
    functionLinenumber: 55
    functionLinenumberEnd: 63
    functionName: NSS_CMSDigestedData_Destroy
    functionSourceFile: /src/nss/lib/smime/cmsdigdata.c
    functionUses: 1
    functionsReached:
    - NSS_CMSContentInfo_Destroy
    linkageType: ''
    returnType: void
    signature: void NSS_CMSDigestedData_Destroy(NSSCMSDigestedData *digd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - digd
    argTypes:
    - NSSCMSDigestedData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: NSS_CMSDigestedData_GetContentInfo
    functionSourceFile: /src/nss/lib/smime/cmsdigdata.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NSSCMSContentInfo
    signature: 'NSSCMSContentInfo *

      NSS_CMSDigestedData_GetContentInfo(NSSCMSDigestedData *digd)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSType_IsData
      Src: /src/nss/lib/smime/cmsdigdata.c:88,1
    - Dst: NSS_CMSContentInfo_GetContentTypeTag
      Src: /src/nss/lib/smime/cmsdigdata.c:88,1
    - Dst: SEC_ASN1EncodeInteger
      Src: /src/nss/lib/smime/cmsdigdata.c:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - digd
    argTypes:
    - NSSCMSDigestedData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 81
    functionDepth: 3
    functionLinenumber: 81
    functionLinenumberEnd: 94
    functionName: NSS_CMSDigestedData_Encode_BeforeStart
    functionSourceFile: /src/nss/lib/smime/cmsdigdata.c
    functionUses: 0
    functionsReached:
    - NSS_CMSType_IsData
    - SEC_ASN1EncodeInteger
    - NSS_CMSContentInfo_GetContentTypeTag
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_CMSDigestedData_Encode_BeforeStart(NSSCMSDigestedData
      *digd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSContentInfo_Private_Init
      Src: /src/nss/lib/smime/cmsdigdata.c:106,1
    - Dst: NSS_CMSDigestContext_StartSingle
      Src: /src/nss/lib/smime/cmsdigdata.c:114,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - digd
    argTypes:
    - NSSCMSDigestedData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 103
    functionDepth: 5
    functionLinenumber: 103
    functionLinenumberEnd: 119
    functionName: NSS_CMSDigestedData_Encode_BeforeData
    functionSourceFile: /src/nss/lib/smime/cmsdigdata.c
    functionUses: 0
    functionsReached:
    - NSS_CMSContentInfo_Private_Init
    - NSS_CMSDigestContext_StartSingle
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_CMSDigestedData_Encode_BeforeData(NSSCMSDigestedData
      *digd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSDigestContext_FinishSingle
      Src: /src/nss/lib/smime/cmsdigdata.c:134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - digd
    argTypes:
    - NSSCMSDigestedData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 128
    functionDepth: 3
    functionLinenumber: 128
    functionLinenumberEnd: 142
    functionName: NSS_CMSDigestedData_Encode_AfterData
    functionSourceFile: /src/nss/lib/smime/cmsdigdata.c
    functionUses: 0
    functionsReached:
    - NSS_CMSDigestContext_FinishSingle
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_CMSDigestedData_Encode_AfterData(NSSCMSDigestedData *digd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSContentInfo_Private_Init
      Src: /src/nss/lib/smime/cmsdigdata.c:160,1
    - Dst: NSS_CMSDigestContext_StartSingle
      Src: /src/nss/lib/smime/cmsdigdata.c:165,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - digd
    argTypes:
    - NSSCMSDigestedData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 151
    functionDepth: 5
    functionLinenumber: 151
    functionLinenumberEnd: 170
    functionName: NSS_CMSDigestedData_Decode_BeforeData
    functionSourceFile: /src/nss/lib/smime/cmsdigdata.c
    functionUses: 0
    functionsReached:
    - NSS_CMSContentInfo_Private_Init
    - NSS_CMSDigestContext_StartSingle
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_CMSDigestedData_Decode_BeforeData(NSSCMSDigestedData
      *digd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSDigestContext_FinishSingle
      Src: /src/nss/lib/smime/cmsdigdata.c:185,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - digd
    argTypes:
    - NSSCMSDigestedData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 179
    functionDepth: 3
    functionLinenumber: 179
    functionLinenumberEnd: 193
    functionName: NSS_CMSDigestedData_Decode_AfterData
    functionSourceFile: /src/nss/lib/smime/cmsdigdata.c
    functionUses: 0
    functionsReached:
    - NSS_CMSDigestContext_FinishSingle
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_CMSDigestedData_Decode_AfterData(NSSCMSDigestedData *digd)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - digd
    argTypes:
    - NSSCMSDigestedData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 212
    functionName: NSS_CMSDigestedData_Decode_AfterEnd
    functionSourceFile: /src/nss/lib/smime/cmsdigdata.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_CMSDigestedData_Decode_AfterEnd(NSSCMSDigestedData *digd)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSArray_Count
      Src: /src/nss/lib/smime/cmsutil.c:39,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/smime/cmsutil.c:43,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/smime/cmsutil.c:51,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/smime/cmsutil.c:57,1
    - Dst: NSS_CMSArray_Sort
      Src: /src/nss/lib/smime/cmsutil.c:64,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/smime/cmsutil.c:69,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 3
    argNames:
    - objs
    - objtemplate
    - objs2
    argTypes:
    - void**
    - SEC_ASN1Template*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 71
    functionName: NSS_CMSArray_SortByDER
    functionSourceFile: /src/nss/lib/smime/cmsutil.c
    functionUses: 3
    functionsReached:
    - NSS_CMSArray_Sort
    - SEC_ASN1EncodeItem
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - PORT_FreeArena
    - NSS_CMSArray_Count
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_CMSArray_SortByDER(void **objs, const SEC_ASN1Template
      *objtemplate, void **objs2)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 104
    functionName: NSS_CMSUtil_DERCompare
    functionSourceFile: /src/nss/lib/smime/cmsutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int NSS_CMSUtil_DERCompare(void *a, void *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_CompareAlgorithmID
      Src: /src/nss/lib/smime/cmsutil.c:126,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - algorithmArray
    - algid
    argTypes:
    - SECAlgorithmID**
    - SECAlgorithmID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 134
    functionName: NSS_CMSAlgArray_GetIndexByAlgID
    functionSourceFile: /src/nss/lib/smime/cmsutil.c
    functionUses: 1
    functionsReached:
    - SECOID_CompareAlgorithmID
    linkageType: ''
    returnType: int
    signature: int NSS_CMSAlgArray_GetIndexByAlgID(SECAlgorithmID **algorithmArray,
      SECAlgorithmID *algid)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOID
      Src: /src/nss/lib/smime/cmsutil.c:159,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/lib/smime/cmsutil.c:164,1
    - Dst: SECITEM_ItemsAreEqual
      Src: /src/nss/lib/smime/cmsutil.c:168,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 2
    argNames:
    - algorithmArray
    - algtag
    argTypes:
    - SECAlgorithmID**
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 177
    functionName: NSS_CMSAlgArray_GetIndexByAlgTag
    functionSourceFile: /src/nss/lib/smime/cmsutil.c
    functionUses: 4
    functionsReached:
    - SECITEM_ItemsAreEqual
    - SECOID_FindOID
    - SECOID_FindOIDByTag
    linkageType: ''
    returnType: int
    signature: "int NSS_CMSAlgArray_GetIndexByAlgTag(SECAlgorithmID **algorithmArray,\n
      \                                SECOidTag algtag)"
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 1
    argNames:
    - signAlg
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 216
    functionName: NSS_CMSUtil_MapSignAlgs
    functionSourceFile: /src/nss/lib/smime/cmsutil.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag NSS_CMSUtil_MapSignAlgs(SECOidTag signAlg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/smime/cmsutil.c:221,1
    - Dst: HASH_GetHashObjectByOidTag
      Src: /src/nss/lib/smime/cmsutil.c:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - algid
    argTypes:
    - SECAlgorithmID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 225
    functionName: NSS_CMSUtil_GetHashObjByAlgID
    functionSourceFile: /src/nss/lib/smime/cmsutil.c
    functionUses: 1
    functionsReached:
    - SECOID_FindOIDTag
    - HASH_GetHashObjectByOidTag
    linkageType: ''
    returnType: SECHashObject
    signature: 'SECHashObject *

      NSS_CMSUtil_GetHashObjByAlgID(SECAlgorithmID *algid)'
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - type
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 254
    functionName: NSS_CMSUtil_GetTemplateByTypeTag
    functionSourceFile: /src/nss/lib/smime/cmsutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SEC_ASN1Template
    signature: 'SEC_ASN1Template *

      NSS_CMSUtil_GetTemplateByTypeTag(SECOidTag type)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSType_GetContentSize
      Src: /src/nss/lib/smime/cmsutil.c:275,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - type
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 256
    functionDepth: 3
    functionLinenumber: 256
    functionLinenumberEnd: 279
    functionName: NSS_CMSUtil_GetSizeByTypeTag
    functionSourceFile: /src/nss/lib/smime/cmsutil.c
    functionUses: 0
    functionsReached:
    - NSS_CMSType_GetContentSize
    linkageType: ''
    returnType: size_t
    signature: size_t NSS_CMSUtil_GetSizeByTypeTag(SECOidTag type)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSType_IsWrapper
      Src: /src/nss/lib/smime/cmsutil.c:305,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - msg
    - type
    argTypes:
    - void*
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 281
    functionDepth: 3
    functionLinenumber: 281
    functionLinenumberEnd: 314
    functionName: NSS_CMSContent_GetContentInfo
    functionSourceFile: /src/nss/lib/smime/cmsutil.c
    functionUses: 0
    functionsReached:
    - NSS_CMSType_IsWrapper
    linkageType: ''
    returnType: NSSCMSContentInfo
    signature: 'NSSCMSContentInfo *

      NSS_CMSContent_GetContentInfo(void *msg, SECOidTag type)'
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 1
    argNames:
    - vs
    argTypes:
    - NSSCMSVerificationStatus
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 343
    functionName: NSS_CMSUtil_VerificationStatusToString
    functionSourceFile: /src/nss/lib/smime/cmsutil.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      NSS_CMSUtil_VerificationStatusToString(NSSCMSVerificationStatus vs)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmsutil.c:352,1
    - Dst: NSS_CMSEncoder_Start
      Src: /src/nss/lib/smime/cmsutil.c:355,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmsutil.c:357,1
    - Dst: NSS_CMSEncoder_Update
      Src: /src/nss/lib/smime/cmsutil.c:361,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmsutil.c:363,1
    - Dst: NSS_CMSEncoder_Finish
      Src: /src/nss/lib/smime/cmsutil.c:366,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmsutil.c:368,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 4
    argNames:
    - cmsg
    - input
    - derOut
    - arena
    argTypes:
    - NSSCMSMessage*
    - SECItem*
    - SECItem*
    - PLArenaPool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 371
    functionName: NSS_CMSDEREncode
    functionSourceFile: /src/nss/lib/smime/cmsutil.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    - NSS_CMSEncoder_Finish
    - NSS_CMSEncoder_Start
    - NSS_CMSEncoder_Update
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus NSS_CMSDEREncode(NSSCMSMessage *cmsg, SECItem *input, SECItem
      *derOut,\n                 PLArenaPool *arena)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/smime/cmsencdata.c:42,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/smime/cmsencdata.c:44,1
    - Dst: SEC_PKCS5IsAlgorithmPBEAlgTag
      Src: /src/nss/lib/smime/cmsencdata.c:52,1
    - Dst: NSS_CMSContentInfo_SetContentEncAlg
      Src: /src/nss/lib/smime/cmsencdata.c:53,1
    - Dst: PK11_CreatePBEAlgorithmID
      Src: /src/nss/lib/smime/cmsencdata.c:63,1
    - Dst: NSS_CMSContentInfo_SetContentEncAlgID
      Src: /src/nss/lib/smime/cmsencdata.c:67,1
    - Dst: SECOID_DestroyAlgorithmID
      Src: /src/nss/lib/smime/cmsencdata.c:70,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/smime/cmsencdata.c:76,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/smime/cmsencdata.c:80,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 3
    argNames:
    - cmsg
    - algorithm
    - keysize
    argTypes:
    - NSSCMSMessage*
    - SECOidTag
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 30
    functionDepth: 13
    functionLinenumber: 30
    functionLinenumberEnd: 82
    functionName: NSS_CMSEncryptedData_Create
    functionSourceFile: /src/nss/lib/smime/cmsencdata.c
    functionUses: 1
    functionsReached:
    - NSS_CMSContentInfo_SetContentEncAlgID
    - PK11_CreatePBEAlgorithmID
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - PORT_ArenaZNew
    - SEC_PKCS5IsAlgorithmPBEAlgTag
    - NSS_CMSContentInfo_SetContentEncAlg
    - PORT_ArenaUnmark
    - SECOID_DestroyAlgorithmID
    linkageType: ''
    returnType: NSSCMSEncryptedData
    signature: "NSSCMSEncryptedData *\nNSS_CMSEncryptedData_Create(NSSCMSMessage *cmsg,
      SECOidTag algorithm,\n                            int keysize)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSContentInfo_Destroy
      Src: /src/nss/lib/smime/cmsencdata.c:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - encd
    argTypes:
    - NSSCMSEncryptedData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 87
    functionDepth: 5
    functionLinenumber: 87
    functionLinenumberEnd: 95
    functionName: NSS_CMSEncryptedData_Destroy
    functionSourceFile: /src/nss/lib/smime/cmsencdata.c
    functionUses: 1
    functionsReached:
    - NSS_CMSContentInfo_Destroy
    linkageType: ''
    returnType: void
    signature: void NSS_CMSEncryptedData_Destroy(NSSCMSEncryptedData *encd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - encd
    argTypes:
    - NSSCMSEncryptedData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 104
    functionName: NSS_CMSEncryptedData_GetContentInfo
    functionSourceFile: /src/nss/lib/smime/cmsencdata.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: NSSCMSContentInfo
    signature: 'NSSCMSContentInfo *

      NSS_CMSEncryptedData_GetContentInfo(NSSCMSEncryptedData *encd)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSArray_IsEmpty
      Src: /src/nss/lib/smime/cmsencdata.c:123,1
    - Dst: SEC_ASN1EncodeInteger
      Src: /src/nss/lib/smime/cmsencdata.c:128,1
    - Dst: NSS_CMSContentInfo_GetContentEncAlg
      Src: /src/nss/lib/smime/cmsencdata.c:134,1
    - Dst: NSS_CMSContentInfo_SetBulkKey
      Src: /src/nss/lib/smime/cmsencdata.c:141,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/smime/cmsencdata.c:142,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - encd
    argTypes:
    - NSSCMSEncryptedData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 114
    functionDepth: 5
    functionLinenumber: 114
    functionLinenumberEnd: 145
    functionName: NSS_CMSEncryptedData_Encode_BeforeStart
    functionSourceFile: /src/nss/lib/smime/cmsencdata.c
    functionUses: 0
    functionsReached:
    - NSS_CMSContentInfo_GetContentEncAlg
    - NSS_CMSContentInfo_SetBulkKey
    - SEC_ASN1EncodeInteger
    - NSS_CMSArray_IsEmpty
    - PK11_FreeSymKey
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_CMSEncryptedData_Encode_BeforeStart(NSSCMSEncryptedData
      *encd)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSContentInfo_GetBulkKey
      Src: /src/nss/lib/smime/cmsencdata.c:161,1
    - Dst: NSS_CMSContentInfo_GetContentEncAlg
      Src: /src/nss/lib/smime/cmsencdata.c:166,1
    - Dst: NSS_CMSContentInfo_Private_Init
      Src: /src/nss/lib/smime/cmsencdata.c:171,1
    - Dst: NSS_SMIMEUtil_EncryptionAllowed
      Src: /src/nss/lib/smime/cmsencdata.c:176,1
    - Dst: NSS_CMSCipherContext_StartEncrypt
      Src: /src/nss/lib/smime/cmsencdata.c:183,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/smime/cmsencdata.c:192,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 1
    argNames:
    - encd
    argTypes:
    - NSSCMSEncryptedData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 150
    functionDepth: 13
    functionLinenumber: 150
    functionLinenumberEnd: 195
    functionName: NSS_CMSEncryptedData_Encode_BeforeData
    functionSourceFile: /src/nss/lib/smime/cmsencdata.c
    functionUses: 0
    functionsReached:
    - NSS_SMIMEUtil_EncryptionAllowed
    - NSS_CMSContentInfo_GetContentEncAlg
    - NSS_CMSCipherContext_StartEncrypt
    - NSS_CMSContentInfo_Private_Init
    - NSS_CMSContentInfo_GetBulkKey
    - PK11_FreeSymKey
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_CMSEncryptedData_Encode_BeforeData(NSSCMSEncryptedData
      *encd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSCipherContext_Destroy
      Src: /src/nss/lib/smime/cmsencdata.c:204,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - encd
    argTypes:
    - NSSCMSEncryptedData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 210
    functionName: NSS_CMSEncryptedData_Encode_AfterData
    functionSourceFile: /src/nss/lib/smime/cmsencdata.c
    functionUses: 0
    functionsReached:
    - NSS_CMSCipherContext_Destroy
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_CMSEncryptedData_Encode_AfterData(NSSCMSEncryptedData
      *encd)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSContentInfo_GetContentEncAlg
      Src: /src/nss/lib/smime/cmsencdata.c:225,1
    - Dst: NSS_CMSContentInfo_SetBulkKey
      Src: /src/nss/lib/smime/cmsencdata.c:235,1
    - Dst: NSS_CMSContentInfo_Private_Init
      Src: /src/nss/lib/smime/cmsencdata.c:237,1
    - Dst: NSS_SMIMEUtil_DecryptionAllowed
      Src: /src/nss/lib/smime/cmsencdata.c:243,1
    - Dst: NSS_CMSCipherContext_StartDecrypt
      Src: /src/nss/lib/smime/cmsencdata.c:247,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/smime/cmsencdata.c:254,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 1
    argNames:
    - encd
    argTypes:
    - NSSCMSEncryptedData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 215
    functionDepth: 13
    functionLinenumber: 215
    functionLinenumberEnd: 257
    functionName: NSS_CMSEncryptedData_Decode_BeforeData
    functionSourceFile: /src/nss/lib/smime/cmsencdata.c
    functionUses: 0
    functionsReached:
    - NSS_CMSContentInfo_GetContentEncAlg
    - NSS_CMSCipherContext_StartDecrypt
    - NSS_CMSContentInfo_SetBulkKey
    - NSS_SMIMEUtil_DecryptionAllowed
    - NSS_CMSContentInfo_Private_Init
    - PK11_FreeSymKey
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_CMSEncryptedData_Decode_BeforeData(NSSCMSEncryptedData
      *encd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSCipherContext_Destroy
      Src: /src/nss/lib/smime/cmsencdata.c:266,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - encd
    argTypes:
    - NSSCMSEncryptedData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 271
    functionName: NSS_CMSEncryptedData_Decode_AfterData
    functionSourceFile: /src/nss/lib/smime/cmsencdata.c
    functionUses: 0
    functionsReached:
    - NSS_CMSCipherContext_Destroy
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_CMSEncryptedData_Decode_AfterData(NSSCMSEncryptedData
      *encd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - encd
    argTypes:
    - NSSCMSEncryptedData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 281
    functionName: NSS_CMSEncryptedData_Decode_AfterEnd
    functionSourceFile: /src/nss/lib/smime/cmsencdata.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_CMSEncryptedData_Decode_AfterEnd(NSSCMSEncryptedData
      *encd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1DecoderSetMaximumElementSize
      Src: /src/nss/lib/smime/cmsdecode.c:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - p7dcx
    - max_asn_len
    argTypes:
    - NSSCMSDecoderContext*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 63
    functionName: nss_cms_set_max_asn_length
    functionSourceFile: /src/nss/lib/smime/cmsdecode.c
    functionUses: 0
    functionsReached:
    - SEC_ASN1DecoderSetMaximumElementSize
    linkageType: ''
    returnType: void
    signature: void nss_cms_set_max_asn_length(NSSCMSDecoderContext *p7dcx, unsigned
      int max_asn_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/smime/cmsdecode.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - poolp
    argTypes:
    - PLArenaPool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 79
    functionName: nss_cms_create_decoder_data
    functionSourceFile: /src/nss/lib/smime/cmsdecode.c
    functionUses: 0
    functionsReached:
    - PORT_ArenaAlloc
    linkageType: ''
    returnType: NSSCMSDecoderData
    signature: 'NSSCMSDecoderData *

      nss_cms_create_decoder_data(PLArenaPool *poolp)'
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/lib/smime/cmsdecode.c:101,1
    - Dst: NSS_CMSContentInfo_GetContentTypeTag
      Src: /src/nss/lib/smime/cmsdecode.c:116,1
    - Dst: NSS_CMSType_IsData
      Src: /src/nss/lib/smime/cmsdecode.c:121,1
    - Dst: SEC_ASN1DecoderSetFilterProc
      Src: /src/nss/lib/smime/cmsdecode.c:130,1
    - Dst: SEC_ASN1DecoderClearFilterProc
      Src: /src/nss/lib/smime/cmsdecode.c:136,1
    - Dst: NSS_CMSType_IsWrapper
      Src: /src/nss/lib/smime/cmsdecode.c:138,1
    - Dst: NSS_CMSContent_GetContentInfo
      Src: /src/nss/lib/smime/cmsdecode.c:145,1
    - Dst: SEC_ASN1DecoderSetFilterProc
      Src: /src/nss/lib/smime/cmsdecode.c:178,1
    - Dst: nss_cms_before_data
      Src: /src/nss/lib/smime/cmsdecode.c:183,1
    - Dst: SEC_ASN1DecoderClearFilterProc
      Src: /src/nss/lib/smime/cmsdecode.c:184,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/smime/cmsdecode.c:186,1
    - Dst: nss_cms_after_data
      Src: /src/nss/lib/smime/cmsdecode.c:191,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/smime/cmsdecode.c:192,1
    - Dst: SEC_ASN1DecoderClearFilterProc
      Src: /src/nss/lib/smime/cmsdecode.c:195,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 62
    argCount: 4
    argNames:
    - arg
    - before
    - dest
    - depth
    argTypes:
    - void*
    - PRBool
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 88
    functionDepth: 4
    functionLinenumber: 88
    functionLinenumberEnd: 202
    functionName: nss_cms_decoder_notify
    functionSourceFile: /src/nss/lib/smime/cmsdecode.c
    functionUses: 0
    functionsReached:
    - SEC_ASN1DecoderClearFilterProc
    - NSS_CMSContent_GetContentInfo
    - SEC_ASN1DecoderSetFilterProc
    - PORT_GetError
    - fprintf
    - NSS_CMSType_IsWrapper
    - nss_cms_after_data
    - NSS_CMSType_IsData
    - nss_cms_before_data
    - NSS_CMSContentInfo_GetContentTypeTag
    linkageType: ''
    returnType: void
    signature: void nss_cms_decoder_notify(void *arg, PRBool before, void *dest, int
      depth)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSSignedData_Decode_BeforeData
      Src: /src/nss/lib/smime/cmsdecode.c:225,1
    - Dst: NSS_CMSDigestedData_Decode_BeforeData
      Src: /src/nss/lib/smime/cmsdecode.c:229,1
    - Dst: NSS_CMSEnvelopedData_Decode_BeforeData
      Src: /src/nss/lib/smime/cmsdecode.c:232,1
    - Dst: NSS_CMSEncryptedData_Decode_BeforeData
      Src: /src/nss/lib/smime/cmsdecode.c:236,1
    - Dst: NSS_CMSGenericWrapperData_Decode_BeforeData
      Src: /src/nss/lib/smime/cmsdecode.c:240,1
    - Dst: NSS_CMSContent_GetContentInfo
      Src: /src/nss/lib/smime/cmsdecode.c:249,1
    - Dst: NSS_CMSContentInfo_GetContentTypeTag
      Src: /src/nss/lib/smime/cmsdecode.c:250,1
    - Dst: NSS_CMSType_IsData
      Src: /src/nss/lib/smime/cmsdecode.c:252,1
    - Dst: nss_cms_create_decoder_data
      Src: /src/nss/lib/smime/cmsdecode.c:253,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/smime/cmsdecode.c:267,1
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/smime/cmsdecode.c:271,1
    - Dst: NSS_CMSUtil_GetSizeByTypeTag
      Src: /src/nss/lib/smime/cmsdecode.c:274,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/smime/cmsdecode.c:275,1
    - Dst: SEC_ASN1DecoderStart
      Src: /src/nss/lib/smime/cmsdecode.c:283,1
    - Dst: nss_cms_set_max_asn_length
      Src: /src/nss/lib/smime/cmsdecode.c:289,1
    - Dst: SEC_ASN1DecoderSetNotifyProc
      Src: /src/nss/lib/smime/cmsdecode.c:293,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/smime/cmsdecode.c:318,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/smime/cmsdecode.c:324,1
    - Dst: PORT_Free
      Src: /src/nss/lib/smime/cmsdecode.c:325,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 70
    argCount: 1
    argNames:
    - p7dcx
    argTypes:
    - NSSCMSDecoderContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 207
    functionDepth: 14
    functionLinenumber: 207
    functionLinenumberEnd: 328
    functionName: nss_cms_before_data
    functionSourceFile: /src/nss/lib/smime/cmsdecode.c
    functionUses: 1
    functionsReached:
    - NSS_CMSDigestedData_Decode_BeforeData
    - SEC_ASN1DecoderSetNotifyProc
    - PORT_ArenaMark
    - nss_cms_create_decoder_data
    - PORT_ArenaUnmark
    - NSS_CMSUtil_GetSizeByTypeTag
    - NSS_CMSGenericWrapperData_Decode_BeforeData
    - PORT_ArenaRelease
    - PORT_ArenaZNew
    - nss_cms_set_max_asn_length
    - NSS_CMSSignedData_Decode_BeforeData
    - SEC_ASN1DecoderStart
    - PORT_ArenaZAlloc
    - NSS_CMSType_IsData
    - NSS_CMSEncryptedData_Decode_BeforeData
    - NSS_CMSEnvelopedData_Decode_BeforeData
    - NSS_CMSContent_GetContentInfo
    - PORT_Free
    - NSS_CMSContentInfo_GetContentTypeTag
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus nss_cms_before_data(NSSCMSDecoderContext *p7dcx)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: nss_cms_decoder_work_data
      Src: /src/nss/lib/smime/cmsdecode.c:338,1
    - Dst: NSS_CMSDecoder_Update
      Src: /src/nss/lib/smime/cmsdecode.c:347,1
    - Dst: nss_cms_after_end
      Src: /src/nss/lib/smime/cmsdecode.c:351,1
    - Dst: NSS_CMSSignedData_Decode_AfterData
      Src: /src/nss/lib/smime/cmsdecode.c:361,1
    - Dst: NSS_CMSEnvelopedData_Decode_AfterData
      Src: /src/nss/lib/smime/cmsdecode.c:364,1
    - Dst: NSS_CMSDigestedData_Decode_AfterData
      Src: /src/nss/lib/smime/cmsdecode.c:368,1
    - Dst: NSS_CMSEncryptedData_Decode_AfterData
      Src: /src/nss/lib/smime/cmsdecode.c:372,1
    - Dst: NSS_CMSGenericWrapperData_Decode_AfterData
      Src: /src/nss/lib/smime/cmsdecode.c:379,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 1
    argNames:
    - p7dcx
    argTypes:
    - NSSCMSDecoderContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 330
    functionDepth: 4
    functionLinenumber: 330
    functionLinenumberEnd: 385
    functionName: nss_cms_after_data
    functionSourceFile: /src/nss/lib/smime/cmsdecode.c
    functionUses: 1
    functionsReached:
    - NSS_CMSSignedData_Decode_AfterData
    - NSS_CMSDecoder_Update
    - NSS_CMSEncryptedData_Decode_AfterData
    - NSS_CMSEnvelopedData_Decode_AfterData
    - nss_cms_decoder_work_data
    - NSS_CMSDigestedData_Decode_AfterData
    - NSS_CMSGenericWrapperData_Decode_AfterData
    - nss_cms_after_end
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus nss_cms_after_data(NSSCMSDecoderContext *p7dcx)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: nss_cms_after_end
      Src: /src/nss/lib/smime/cmsdecode.c:394,1
    - Dst: SEC_ASN1DecoderFinish
      Src: /src/nss/lib/smime/cmsdecode.c:399,1
    - Dst: NSS_CMSSignedData_Decode_AfterEnd
      Src: /src/nss/lib/smime/cmsdecode.c:409,1
    - Dst: NSS_CMSEnvelopedData_Decode_AfterEnd
      Src: /src/nss/lib/smime/cmsdecode.c:413,1
    - Dst: NSS_CMSDigestedData_Decode_AfterEnd
      Src: /src/nss/lib/smime/cmsdecode.c:418,1
    - Dst: NSS_CMSEncryptedData_Decode_AfterEnd
      Src: /src/nss/lib/smime/cmsdecode.c:423,1
    - Dst: NSS_CMSGenericWrapperData_Decode_AfterEnd
      Src: /src/nss/lib/smime/cmsdecode.c:429,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 36
    argCount: 1
    argNames:
    - p7dcx
    argTypes:
    - NSSCMSDecoderContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 387
    functionDepth: 3
    functionLinenumber: 387
    functionLinenumberEnd: 434
    functionName: nss_cms_after_end
    functionSourceFile: /src/nss/lib/smime/cmsdecode.c
    functionUses: 2
    functionsReached:
    - SEC_ASN1DecoderFinish
    - NSS_CMSEnvelopedData_Decode_AfterEnd
    - NSS_CMSEncryptedData_Decode_AfterEnd
    - NSS_CMSGenericWrapperData_Decode_AfterEnd
    - nss_cms_after_end
    - NSS_CMSSignedData_Decode_AfterEnd
    - NSS_CMSDigestedData_Decode_AfterEnd
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus nss_cms_after_end(NSSCMSDecoderContext *p7dcx)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/smime/cmsdecode.c:460,1
    - Dst: NSS_CMSContent_GetContentInfo
      Src: /src/nss/lib/smime/cmsdecode.c:462,1
    - Dst: NSS_CMSCipherContext_DecryptLength
      Src: /src/nss/lib/smime/cmsdecode.c:483,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/smime/cmsdecode.c:501,1
    - Dst: NSS_CMSCipherContext_Decrypt
      Src: /src/nss/lib/smime/cmsdecode.c:514,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/smime/cmsdecode.c:517,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/smime/cmsdecode.c:521,1
    - Dst: NSS_CMSDigestContext_Update
      Src: /src/nss/lib/smime/cmsdecode.c:535,1
    - Dst: NSS_CMSContentInfo_GetContentTypeTag
      Src: /src/nss/lib/smime/cmsdecode.c:550,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/smime/cmsdecode.c:561,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/smime/cmsdecode.c:568,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/smime/cmsdecode.c:575,1
    - Dst: PORT_Free
      Src: /src/nss/lib/smime/cmsdecode.c:582,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 63
    argCount: 4
    argNames:
    - p7dcx
    - data
    - len
    - final
    argTypes:
    - NSSCMSDecoderContext*
    - unsigned char*
    - unsigned long
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 442
    functionDepth: 4
    functionLinenumber: 442
    functionLinenumberEnd: 583
    functionName: nss_cms_decoder_work_data
    functionSourceFile: /src/nss/lib/smime/cmsdecode.c
    functionUses: 1
    functionsReached:
    - PORT_Alloc
    - PORT_Assert
    - NSS_CMSCipherContext_DecryptLength
    - PORT_Memcpy
    - NSS_CMSContent_GetContentInfo
    - PORT_ArenaAlloc
    - PORT_Free
    - PORT_GetError
    - NSS_CMSDigestContext_Update
    - NSS_CMSCipherContext_Decrypt
    - NSS_CMSContentInfo_GetContentTypeTag
    linkageType: ''
    returnType: void
    signature: "void nss_cms_decoder_work_data(NSSCMSDecoderContext *p7dcx,\n                          const
      unsigned char *data, unsigned long len,\n                          PRBool final)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSDecoder_Update
      Src: /src/nss/lib/smime/cmsdecode.c:591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p7ecx
    - data
    - len
    argTypes:
    - void*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 588
    functionDepth: 1
    functionLinenumber: 588
    functionLinenumberEnd: 592
    functionName: nss_cms_decoder_update
    functionSourceFile: /src/nss/lib/smime/cmsdecode.c
    functionUses: 0
    functionsReached:
    - NSS_CMSDecoder_Update
    linkageType: ''
    returnType: void
    signature: void nss_cms_decoder_update(void *p7ecx, const char *data, unsigned
      long len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/smime/cmsdecode.c:608,1
    - Dst: nss_cms_decoder_work_data
      Src: /src/nss/lib/smime/cmsdecode.c:618,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - arg
    - data
    - len
    - depth
    - data_kind
    argTypes:
    - void*
    - char*
    - unsigned long
    - int
    - SEC_ASN1EncodingPart
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 602
    functionDepth: 5
    functionLinenumber: 602
    functionLinenumberEnd: 620
    functionName: nss_cms_decoder_update_filter
    functionSourceFile: /src/nss/lib/smime/cmsdecode.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - nss_cms_decoder_work_data
    linkageType: ''
    returnType: void
    signature: "void nss_cms_decoder_update_filter(void *arg, const char *data, unsigned
      long len,\n                              int depth, SEC_ASN1EncodingPart data_kind)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSMessage_Create
      Src: /src/nss/lib/smime/cmsdecode.c:640,1
    - Dst: NSS_CMSMessage_SetEncodingParams
      Src: /src/nss/lib/smime/cmsdecode.c:644,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/smime/cmsdecode.c:647,1
    - Dst: NSS_CMSMessage_Destroy
      Src: /src/nss/lib/smime/cmsdecode.c:649,1
    - Dst: SEC_ASN1DecoderStart
      Src: /src/nss/lib/smime/cmsdecode.c:653,1
    - Dst: PORT_Free
      Src: /src/nss/lib/smime/cmsdecode.c:655,1
    - Dst: NSS_CMSMessage_Destroy
      Src: /src/nss/lib/smime/cmsdecode.c:656,1
    - Dst: SEC_ASN1DecoderSetNotifyProc
      Src: /src/nss/lib/smime/cmsdecode.c:660,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 7
    argNames:
    - poolp
    - cb
    - cb_arg
    - pwfn
    - pwfn_arg
    - decrypt_key_cb
    - decrypt_key_cb_arg
    argTypes:
    - PLArenaPool*
    - NSSCMSContentCallback
    - void*
    - PK11PasswordFunc
    - void*
    - NSSCMSGetDecryptKeyCallback
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 630
    functionDepth: 6
    functionLinenumber: 630
    functionLinenumberEnd: 670
    functionName: NSS_CMSDecoder_Start
    functionSourceFile: /src/nss/lib/smime/cmsdecode.c
    functionUses: 1
    functionsReached:
    - SEC_ASN1DecoderStart
    - PORT_ZNew
    - SEC_ASN1DecoderSetNotifyProc
    - PORT_Free
    - NSS_CMSMessage_SetEncodingParams
    - NSS_CMSMessage_Destroy
    - NSS_CMSMessage_Create
    linkageType: ''
    returnType: NSSCMSDecoderContext
    signature: "NSSCMSDecoderContext *\nNSS_CMSDecoder_Start(PLArenaPool *poolp,\n
      \                    NSSCMSContentCallback cb, void *cb_arg,\n                     PK11PasswordFunc
      pwfn, void *pwfn_arg,\n                     NSSCMSGetDecryptKeyCallback decrypt_key_cb,\n
      \                    void *decrypt_key_cb_arg)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1DecoderUpdate
      Src: /src/nss/lib/smime/cmsdecode.c:689,1
    - Dst: SEC_ASN1DecoderUpdate
      Src: /src/nss/lib/smime/cmsdecode.c:697,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/smime/cmsdecode.c:703,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/smime/cmsdecode.c:704,1
    - Dst: nss_cms_after_end
      Src: /src/nss/lib/smime/cmsdecode.c:713,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmsdecode.c:714,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 3
    argNames:
    - p7dcx
    - buf
    - len
    argTypes:
    - NSSCMSDecoderContext*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 675
    functionDepth: 4
    functionLinenumber: 675
    functionLinenumberEnd: 716
    functionName: NSS_CMSDecoder_Update
    functionSourceFile: /src/nss/lib/smime/cmsdecode.c
    functionUses: 3
    functionsReached:
    - PORT_Assert
    - PORT_GetError
    - PORT_SetError
    - SEC_ASN1DecoderUpdate
    - nss_cms_after_end
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus NSS_CMSDecoder_Update(NSSCMSDecoderContext *p7dcx, const
      char *buf,\n                      unsigned long len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_cms_after_end
      Src: /src/nss/lib/smime/cmsdecode.c:724,1
    - Dst: NSS_CMSMessage_Destroy
      Src: /src/nss/lib/smime/cmsdecode.c:725,1
    - Dst: PORT_Free
      Src: /src/nss/lib/smime/cmsdecode.c:726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - p7dcx
    argTypes:
    - NSSCMSDecoderContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 721
    functionDepth: 6
    functionLinenumber: 721
    functionLinenumberEnd: 727
    functionName: NSS_CMSDecoder_Cancel
    functionSourceFile: /src/nss/lib/smime/cmsdecode.c
    functionUses: 1
    functionsReached:
    - PORT_Free
    - nss_cms_after_end
    - NSS_CMSMessage_Destroy
    linkageType: ''
    returnType: void
    signature: void NSS_CMSDecoder_Cancel(NSSCMSDecoderContext *p7dcx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nss_cms_after_end
      Src: /src/nss/lib/smime/cmsdecode.c:739,1
    - Dst: NSS_CMSMessage_Destroy
      Src: /src/nss/lib/smime/cmsdecode.c:740,1
    - Dst: PORT_Free
      Src: /src/nss/lib/smime/cmsdecode.c:744,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - p7dcx
    argTypes:
    - NSSCMSDecoderContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 732
    functionDepth: 6
    functionLinenumber: 732
    functionLinenumberEnd: 746
    functionName: NSS_CMSDecoder_Finish
    functionSourceFile: /src/nss/lib/smime/cmsdecode.c
    functionUses: 1
    functionsReached:
    - PORT_Free
    - nss_cms_after_end
    - NSS_CMSMessage_Destroy
    linkageType: ''
    returnType: NSSCMSMessage
    signature: 'NSSCMSMessage *

      NSS_CMSDecoder_Finish(NSSCMSDecoderContext *p7dcx)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSDecoder_Start
      Src: /src/nss/lib/smime/cmsdecode.c:758,1
    - Dst: nss_cms_set_max_asn_length
      Src: /src/nss/lib/smime/cmsdecode.c:763,1
    - Dst: NSS_CMSDecoder_Update
      Src: /src/nss/lib/smime/cmsdecode.c:765,1
    - Dst: NSS_CMSDecoder_Finish
      Src: /src/nss/lib/smime/cmsdecode.c:766,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 7
    argNames:
    - DERmessage
    - cb
    - cb_arg
    - pwfn
    - pwfn_arg
    - decrypt_key_cb
    - decrypt_key_cb_arg
    argTypes:
    - SECItem*
    - NSSCMSContentCallback
    - void*
    - PK11PasswordFunc
    - void*
    - NSSCMSGetDecryptKeyCallback
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 748
    functionDepth: 7
    functionLinenumber: 748
    functionLinenumberEnd: 767
    functionName: NSS_CMSMessage_CreateFromDER
    functionSourceFile: /src/nss/lib/smime/cmsdecode.c
    functionUses: 0
    functionsReached:
    - nss_cms_set_max_asn_length
    - NSS_CMSDecoder_Start
    - NSS_CMSDecoder_Finish
    - NSS_CMSDecoder_Update
    linkageType: ''
    returnType: NSSCMSMessage
    signature: "NSSCMSMessage *\nNSS_CMSMessage_CreateFromDER(SECItem *DERmessage,\n
      \                            NSSCMSContentCallback cb, void *cb_arg,\n                             PK11PasswordFunc
      pwfn, void *pwfn_arg,\n                             NSSCMSGetDecryptKeyCallback
      decrypt_key_cb,\n                             void *decrypt_key_cb_arg)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmsreclist.c:41,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/smime/cmsreclist.c:45,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/smime/cmsreclist.c:76,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 69
    argCount: 2
    argNames:
    - recipientinfos
    - recipient_list
    argTypes:
    - NSSCMSRecipientInfo**
    - NSSCMSRecipient**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 112
    functionName: nss_cms_recipients_traverse
    functionSourceFile: /src/nss/lib/smime/cmsreclist.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PORT_ZAlloc
    linkageType: ''
    returnType: int
    signature: "int nss_cms_recipients_traverse(NSSCMSRecipientInfo **recipientinfos,\n
      \                           NSSCMSRecipient **recipient_list)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nss_cms_recipients_traverse
      Src: /src/nss/lib/smime/cmsreclist.c:121,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmsreclist.c:124,1
    - Dst: PORT_SetErrorString
      Src: /src/nss/lib/smime/cmsreclist.c:126,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/smime/cmsreclist.c:133,1
    - Dst: nss_cms_recipients_traverse
      Src: /src/nss/lib/smime/cmsreclist.c:138,1
    - Dst: nss_cms_recipient_list_destroy
      Src: /src/nss/lib/smime/cmsreclist.c:140,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 144
    functionName: nss_cms_recipient_list_create
    functionSourceFile: /src/nss/lib/smime/cmsreclist.c
    functionUses: 0
    functionsReached:
    - PORT_ZAlloc
    - nss_cms_recipients_traverse
    - PORT_SetError
    - nss_cms_recipient_list_destroy
    - PORT_SetErrorString
    linkageType: ''
    returnType: NSSCMSRecipient
    signature: 'NSSCMSRecipient **

      nss_cms_recipient_list_create(NSSCMSRecipientInfo **recipientinfos)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/smime/cmsreclist.c:155,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/lib/smime/cmsreclist.c:157,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/smime/cmsreclist.c:159,1
    - Dst: PORT_Free
      Src: /src/nss/lib/smime/cmsreclist.c:160,1
    - Dst: PORT_Free
      Src: /src/nss/lib/smime/cmsreclist.c:162,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - recipient_list
    argTypes:
    - NSSCMSRecipient**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 146
    functionDepth: 8
    functionLinenumber: 146
    functionLinenumberEnd: 163
    functionName: nss_cms_recipient_list_destroy
    functionSourceFile: /src/nss/lib/smime/cmsreclist.c
    functionUses: 1
    functionsReached:
    - PORT_Free
    - SECKEY_DestroyPrivateKey
    - PK11_FreeSlot
    - CERT_DestroyCertificate
    linkageType: ''
    returnType: void
    signature: void nss_cms_recipient_list_destroy(NSSCMSRecipient **recipient_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/smime/cmsreclist.c:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - poolp
    argTypes:
    - PLArenaPool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 170
    functionName: NSS_CMSRecipientEncryptedKey_Create
    functionSourceFile: /src/nss/lib/smime/cmsreclist.c
    functionUses: 0
    functionsReached:
    - PORT_ArenaZAlloc
    linkageType: ''
    returnType: NSSCMSRecipientEncryptedKey
    signature: 'NSSCMSRecipientEncryptedKey *

      NSS_CMSRecipientEncryptedKey_Create(PLArenaPool *poolp)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/lib/smime/cmsencode.c:78,1
    - Dst: fprintf
      Src: /src/nss/lib/smime/cmsencode.c:80,1
    - Dst: fprintf
      Src: /src/nss/lib/smime/cmsencode.c:83,1
    - Dst: struct nss_cms_encoder_output*::outputfn
      Src: /src/nss/lib/smime/cmsencode.c:88,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/smime/cmsencode.c:94,1
    - Dst: PORT_ArenaGrow
      Src: /src/nss/lib/smime/cmsencode.c:96,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/smime/cmsencode.c:110,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 5
    argNames:
    - arg
    - buf
    - len
    - depth
    - data_kind
    argTypes:
    - void*
    - char*
    - unsigned long
    - int
    - SEC_ASN1EncodingPart
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 113
    functionName: nss_cms_encoder_out
    functionSourceFile: /src/nss/lib/smime/cmsencode.c
    functionUses: 0
    functionsReached:
    - PORT_Memcpy
    - PORT_ArenaGrow
    - PORT_ArenaAlloc
    - fprintf
    - struct nss_cms_encoder_output*::outputfn
    linkageType: ''
    returnType: void
    signature: "void nss_cms_encoder_out(void *arg, const char *buf, unsigned long
      len,\n                    int depth, SEC_ASN1EncodingPart data_kind)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/smime/cmsencode.c:132,1
    - Dst: fprintf
      Src: /src/nss/lib/smime/cmsencode.c:137,1
    - Dst: NSS_CMSType_IsData
      Src: /src/nss/lib/smime/cmsencode.c:145,1
    - Dst: NSS_CMSContent_GetContentInfo
      Src: /src/nss/lib/smime/cmsencode.c:146,1
    - Dst: nss_cms_encoder_work_data
      Src: /src/nss/lib/smime/cmsencode.c:150,1
    - Dst: SEC_ASN1EncoderSetTakeFromBuf
      Src: /src/nss/lib/smime/cmsencode.c:153,1
    - Dst: SEC_ASN1EncoderClearNotifyProc
      Src: /src/nss/lib/smime/cmsencode.c:154,1
    - Dst: NSS_CMSType_IsWrapper
      Src: /src/nss/lib/smime/cmsencode.c:156,1
    - Dst: NSS_CMSContent_GetContentInfo
      Src: /src/nss/lib/smime/cmsencode.c:158,1
    - Dst: NSS_CMSContentInfo_GetContentTypeTag
      Src: /src/nss/lib/smime/cmsencode.c:159,1
    - Dst: nss_cms_before_data
      Src: /src/nss/lib/smime/cmsencode.c:165,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/smime/cmsencode.c:166,1
    - Dst: NSS_CMSType_IsData
      Src: /src/nss/lib/smime/cmsencode.c:170,1
    - Dst: nss_cms_encoder_work_data
      Src: /src/nss/lib/smime/cmsencode.c:172,1
    - Dst: SEC_ASN1EncoderSetTakeFromBuf
      Src: /src/nss/lib/smime/cmsencode.c:176,1
    - Dst: SEC_ASN1EncoderSetTakeFromBuf
      Src: /src/nss/lib/smime/cmsencode.c:180,1
    - Dst: nss_cms_after_data
      Src: /src/nss/lib/smime/cmsencode.c:184,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/smime/cmsencode.c:185,1
    - Dst: SEC_ASN1EncoderClearNotifyProc
      Src: /src/nss/lib/smime/cmsencode.c:186,1
    - Dst: NSS_CMSContentInfo_GetContentTypeTag
      Src: /src/nss/lib/smime/cmsencode.c:192,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 43
    argCount: 4
    argNames:
    - arg
    - before
    - dest
    - depth
    argTypes:
    - void*
    - PRBool
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 122
    functionDepth: 4
    functionLinenumber: 122
    functionLinenumberEnd: 197
    functionName: nss_cms_encoder_notify
    functionSourceFile: /src/nss/lib/smime/cmsencode.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - nss_cms_encoder_work_data
    - NSS_CMSContent_GetContentInfo
    - PORT_GetError
    - fprintf
    - SEC_ASN1EncoderClearNotifyProc
    - NSS_CMSType_IsWrapper
    - SEC_ASN1EncoderSetTakeFromBuf
    - nss_cms_after_data
    - NSS_CMSType_IsData
    - nss_cms_before_data
    - NSS_CMSContentInfo_GetContentTypeTag
    linkageType: ''
    returnType: void
    signature: void nss_cms_encoder_notify(void *arg, PRBool before, void *dest, int
      depth)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSSignedData_Encode_BeforeData
      Src: /src/nss/lib/smime/cmsencode.c:215,1
    - Dst: NSS_CMSDigestedData_Encode_BeforeData
      Src: /src/nss/lib/smime/cmsencode.c:219,1
    - Dst: NSS_CMSEnvelopedData_Encode_BeforeData
      Src: /src/nss/lib/smime/cmsencode.c:222,1
    - Dst: NSS_CMSEncryptedData_Encode_BeforeData
      Src: /src/nss/lib/smime/cmsencode.c:225,1
    - Dst: NSS_CMSType_IsWrapper
      Src: /src/nss/lib/smime/cmsencode.c:228,1
    - Dst: NSS_CMSGenericWrapperData_Encode_BeforeData
      Src: /src/nss/lib/smime/cmsencode.c:229,1
    - Dst: NSS_CMSContent_GetContentInfo
      Src: /src/nss/lib/smime/cmsencode.c:241,1
    - Dst: NSS_CMSContentInfo_GetContentTypeTag
      Src: /src/nss/lib/smime/cmsencode.c:242,1
    - Dst: NSS_CMSType_IsWrapper
      Src: /src/nss/lib/smime/cmsencode.c:244,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/smime/cmsencode.c:247,1
    - Dst: NSS_CMSSignedData_Encode_BeforeStart
      Src: /src/nss/lib/smime/cmsencode.c:273,1
    - Dst: NSS_CMSEnvelopedData_Encode_BeforeStart
      Src: /src/nss/lib/smime/cmsencode.c:276,1
    - Dst: NSS_CMSDigestedData_Encode_BeforeStart
      Src: /src/nss/lib/smime/cmsencode.c:279,1
    - Dst: NSS_CMSEncryptedData_Encode_BeforeStart
      Src: /src/nss/lib/smime/cmsencode.c:282,1
    - Dst: NSS_CMSGenericWrapperData_Encode_BeforeStart
      Src: /src/nss/lib/smime/cmsencode.c:285,1
    - Dst: SEC_ASN1EncoderStart
      Src: /src/nss/lib/smime/cmsencode.c:295,1
    - Dst: SEC_ASN1EncoderSetStreaming
      Src: /src/nss/lib/smime/cmsencode.c:305,1
    - Dst: SEC_ASN1EncoderSetNotifyProc
      Src: /src/nss/lib/smime/cmsencode.c:311,1
    - Dst: NSS_CMSType_IsData
      Src: /src/nss/lib/smime/cmsencode.c:319,1
    - Dst: SEC_ASN1EncoderFinish
      Src: /src/nss/lib/smime/cmsencode.c:331,1
    - Dst: PORT_Free
      Src: /src/nss/lib/smime/cmsencode.c:332,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 86
    argCount: 1
    argNames:
    - p7ecx
    argTypes:
    - NSSCMSEncoderContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 202
    functionDepth: 14
    functionLinenumber: 202
    functionLinenumberEnd: 336
    functionName: nss_cms_before_data
    functionSourceFile: /src/nss/lib/smime/cmsencode.c
    functionUses: 2
    functionsReached:
    - NSS_CMSEncryptedData_Encode_BeforeData
    - NSS_CMSGenericWrapperData_Encode_BeforeData
    - NSS_CMSDigestedData_Encode_BeforeStart
    - NSS_CMSType_IsWrapper
    - NSS_CMSEnvelopedData_Encode_BeforeStart
    - SEC_ASN1EncoderStart
    - NSS_CMSSignedData_Encode_BeforeStart
    - SEC_ASN1EncoderFinish
    - NSS_CMSDigestedData_Encode_BeforeData
    - NSS_CMSGenericWrapperData_Encode_BeforeStart
    - NSS_CMSSignedData_Encode_BeforeData
    - PORT_ZAlloc
    - SEC_ASN1EncoderSetNotifyProc
    - NSS_CMSType_IsData
    - NSS_CMSEnvelopedData_Encode_BeforeData
    - NSS_CMSEncryptedData_Encode_BeforeStart
    - NSS_CMSContent_GetContentInfo
    - PORT_Free
    - SEC_ASN1EncoderSetStreaming
    - NSS_CMSContentInfo_GetContentTypeTag
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus nss_cms_before_data(NSSCMSEncoderContext *p7ecx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSSignedData_Encode_AfterData
      Src: /src/nss/lib/smime/cmsencode.c:346,1
    - Dst: NSS_CMSEnvelopedData_Encode_AfterData
      Src: /src/nss/lib/smime/cmsencode.c:349,1
    - Dst: NSS_CMSDigestedData_Encode_AfterData
      Src: /src/nss/lib/smime/cmsencode.c:352,1
    - Dst: NSS_CMSEncryptedData_Encode_AfterData
      Src: /src/nss/lib/smime/cmsencode.c:355,1
    - Dst: NSS_CMSType_IsWrapper
      Src: /src/nss/lib/smime/cmsencode.c:358,1
    - Dst: NSS_CMSGenericWrapperData_Encode_AfterData
      Src: /src/nss/lib/smime/cmsencode.c:359,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - p7ecx
    argTypes:
    - NSSCMSEncoderContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 338
    functionDepth: 4
    functionLinenumber: 338
    functionLinenumberEnd: 367
    functionName: nss_cms_after_data
    functionSourceFile: /src/nss/lib/smime/cmsencode.c
    functionUses: 2
    functionsReached:
    - NSS_CMSDigestedData_Encode_AfterData
    - NSS_CMSEncryptedData_Encode_AfterData
    - NSS_CMSType_IsWrapper
    - NSS_CMSSignedData_Encode_AfterData
    - NSS_CMSGenericWrapperData_Encode_AfterData
    - NSS_CMSEnvelopedData_Encode_AfterData
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus nss_cms_after_data(NSSCMSEncoderContext *p7ecx)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/smime/cmsencode.c:393,1
    - Dst: NSS_CMSContent_GetContentInfo
      Src: /src/nss/lib/smime/cmsencode.c:396,1
    - Dst: NSS_CMSDigestContext_Update
      Src: /src/nss/lib/smime/cmsencode.c:405,1
    - Dst: NSS_CMSCipherContext_EncryptLength
      Src: /src/nss/lib/smime/cmsencode.c:414,1
    - Dst: NSS_CMSCipherContext_Encrypt
      Src: /src/nss/lib/smime/cmsencode.c:421,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/smime/cmsencode.c:431,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/smime/cmsencode.c:433,1
    - Dst: NSS_CMSCipherContext_Encrypt
      Src: /src/nss/lib/smime/cmsencode.c:438,1
    - Dst: SEC_ASN1EncoderUpdate
      Src: /src/nss/lib/smime/cmsencode.c:456,1
    - Dst: PORT_Free
      Src: /src/nss/lib/smime/cmsencode.c:465,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 49
    argCount: 6
    argNames:
    - p7ecx
    - dest
    - data
    - len
    - final
    - innermost
    argTypes:
    - NSSCMSEncoderContext*
    - SECItem*
    - unsigned char*
    - unsigned long
    - PRBool
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 375
    functionDepth: 4
    functionLinenumber: 375
    functionLinenumberEnd: 469
    functionName: nss_cms_encoder_work_data
    functionSourceFile: /src/nss/lib/smime/cmsencode.c
    functionUses: 1
    functionsReached:
    - PORT_Alloc
    - PORT_Assert
    - SEC_ASN1EncoderUpdate
    - NSS_CMSContent_GetContentInfo
    - PORT_ArenaAlloc
    - PORT_Free
    - NSS_CMSCipherContext_Encrypt
    - NSS_CMSDigestContext_Update
    - NSS_CMSCipherContext_EncryptLength
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus nss_cms_encoder_work_data(NSSCMSEncoderContext *p7ecx, SECItem
      *dest,\n                          const unsigned char *data, unsigned long len,\n
      \                         PRBool final, PRBool innermost)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_cms_encoder_work_data
      Src: /src/nss/lib/smime/cmsencode.c:480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p7ecx
    - data
    - len
    argTypes:
    - void*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 476
    functionDepth: 5
    functionLinenumber: 476
    functionLinenumberEnd: 482
    functionName: nss_cms_encoder_update
    functionSourceFile: /src/nss/lib/smime/cmsencode.c
    functionUses: 0
    functionsReached:
    - nss_cms_encoder_work_data
    linkageType: ''
    returnType: void
    signature: void nss_cms_encoder_update(void *p7ecx, const char *data, unsigned
      long len)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSMessage_SetEncodingParams
      Src: /src/nss/lib/smime/cmsencode.c:509,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/smime/cmsencode.c:512,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmsencode.c:514,1
    - Dst: NSS_CMSMessage_GetContentInfo
      Src: /src/nss/lib/smime/cmsencode.c:525,1
    - Dst: NSS_CMSContentInfo_GetContentTypeTag
      Src: /src/nss/lib/smime/cmsencode.c:527,1
    - Dst: NSS_CMSSignedData_Encode_BeforeStart
      Src: /src/nss/lib/smime/cmsencode.c:530,1
    - Dst: NSS_CMSEnvelopedData_Encode_BeforeStart
      Src: /src/nss/lib/smime/cmsencode.c:533,1
    - Dst: NSS_CMSDigestedData_Encode_BeforeStart
      Src: /src/nss/lib/smime/cmsencode.c:536,1
    - Dst: NSS_CMSEncryptedData_Encode_BeforeStart
      Src: /src/nss/lib/smime/cmsencode.c:539,1
    - Dst: NSS_CMSType_IsWrapper
      Src: /src/nss/lib/smime/cmsencode.c:542,1
    - Dst: NSS_CMSGenericWrapperData_Encode_BeforeStart
      Src: /src/nss/lib/smime/cmsencode.c:543,1
    - Dst: PORT_Free
      Src: /src/nss/lib/smime/cmsencode.c:551,1
    - Dst: SEC_ASN1EncoderStart
      Src: /src/nss/lib/smime/cmsencode.c:557,1
    - Dst: PORT_Free
      Src: /src/nss/lib/smime/cmsencode.c:560,1
    - Dst: SEC_ASN1EncoderSetStreaming
      Src: /src/nss/lib/smime/cmsencode.c:570,1
    - Dst: SEC_ASN1EncoderSetNotifyProc
      Src: /src/nss/lib/smime/cmsencode.c:575,1
    - Dst: SEC_ASN1EncoderUpdate
      Src: /src/nss/lib/smime/cmsencode.c:581,1
    - Dst: PORT_Free
      Src: /src/nss/lib/smime/cmsencode.c:582,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 55
    argCount: 11
    argNames:
    - cmsg
    - outputfn
    - outputarg
    - dest
    - destpoolp
    - pwfn
    - pwfn_arg
    - decrypt_key_cb
    - decrypt_key_cb_arg
    - detached_digestalgs
    - detached_digests
    argTypes:
    - NSSCMSMessage*
    - NSSCMSContentCallback
    - void*
    - SECItem*
    - PLArenaPool*
    - PK11PasswordFunc
    - void*
    - NSSCMSGetDecryptKeyCallback
    - void*
    - SECAlgorithmID**
    - SECItem**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 496
    functionDepth: 6
    functionLinenumber: 496
    functionLinenumberEnd: 587
    functionName: NSS_CMSEncoder_Start
    functionSourceFile: /src/nss/lib/smime/cmsencode.c
    functionUses: 3
    functionsReached:
    - SEC_ASN1EncoderUpdate
    - NSS_CMSEncryptedData_Encode_BeforeStart
    - NSS_CMSEnvelopedData_Encode_BeforeStart
    - NSS_CMSGenericWrapperData_Encode_BeforeStart
    - PORT_Free
    - NSS_CMSSignedData_Encode_BeforeStart
    - PORT_ZAlloc
    - NSS_CMSMessage_SetEncodingParams
    - NSS_CMSMessage_GetContentInfo
    - NSS_CMSDigestedData_Encode_BeforeStart
    - SEC_ASN1EncoderStart
    - SEC_ASN1EncoderSetNotifyProc
    - PORT_SetError
    - NSS_CMSType_IsWrapper
    - SEC_ASN1EncoderSetStreaming
    - NSS_CMSContentInfo_GetContentTypeTag
    linkageType: ''
    returnType: NSSCMSEncoderContext
    signature: "NSSCMSEncoderContext *\nNSS_CMSEncoder_Start(NSSCMSMessage *cmsg,\n
      \                    NSSCMSContentCallback outputfn, void *outputarg,\n                     SECItem
      *dest, PLArenaPool *destpoolp,\n                     PK11PasswordFunc pwfn,
      void *pwfn_arg,\n                     NSSCMSGetDecryptKeyCallback decrypt_key_cb,
      void *decrypt_key_cb_arg,\n                     SECAlgorithmID **detached_digestalgs,
      SECItem **detached_digests)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1EncoderUpdate
      Src: /src/nss/lib/smime/cmsencode.c:615,1
    - Dst: NSS_CMSEncoder_Update
      Src: /src/nss/lib/smime/cmsencode.c:619,1
    - Dst: NSS_CMSContent_GetContentInfo
      Src: /src/nss/lib/smime/cmsencode.c:623,1
    - Dst: NSS_CMSContentInfo_GetContentTypeTag
      Src: /src/nss/lib/smime/cmsencode.c:630,1
    - Dst: NSS_CMSType_IsData
      Src: /src/nss/lib/smime/cmsencode.c:631,1
    - Dst: nss_cms_encoder_work_data
      Src: /src/nss/lib/smime/cmsencode.c:638,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - p7ecx
    - data
    - len
    argTypes:
    - NSSCMSEncoderContext*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 599
    functionDepth: 5
    functionLinenumber: 599
    functionLinenumberEnd: 642
    functionName: NSS_CMSEncoder_Update
    functionSourceFile: /src/nss/lib/smime/cmsencode.c
    functionUses: 4
    functionsReached:
    - SEC_ASN1EncoderUpdate
    - nss_cms_encoder_work_data
    - NSS_CMSContent_GetContentInfo
    - NSS_CMSEncoder_Update
    - NSS_CMSType_IsData
    - NSS_CMSContentInfo_GetContentTypeTag
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_CMSEncoder_Update(NSSCMSEncoderContext *p7ecx, const
      char *data, unsigned long len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSEncoder_Cancel
      Src: /src/nss/lib/smime/cmsencode.c:663,1
    - Dst: fprintf
      Src: /src/nss/lib/smime/cmsencode.c:667,1
    - Dst: nss_cms_encoder_work_data
      Src: /src/nss/lib/smime/cmsencode.c:677,1
    - Dst: SEC_ASN1EncoderClearTakeFromBuf
      Src: /src/nss/lib/smime/cmsencode.c:687,1
    - Dst: SEC_ASN1EncoderClearStreaming
      Src: /src/nss/lib/smime/cmsencode.c:688,1
    - Dst: SEC_ASN1EncoderUpdate
      Src: /src/nss/lib/smime/cmsencode.c:691,1
    - Dst: SEC_ASN1EncoderFinish
      Src: /src/nss/lib/smime/cmsencode.c:694,1
    - Dst: PORT_Free
      Src: /src/nss/lib/smime/cmsencode.c:695,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - p7ecx
    argTypes:
    - NSSCMSEncoderContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 649
    functionDepth: 5
    functionLinenumber: 649
    functionLinenumberEnd: 697
    functionName: NSS_CMSEncoder_Cancel
    functionSourceFile: /src/nss/lib/smime/cmsencode.c
    functionUses: 1
    functionsReached:
    - nss_cms_encoder_work_data
    - SEC_ASN1EncoderUpdate
    - SEC_ASN1EncoderClearStreaming
    - PORT_Free
    - NSS_CMSEncoder_Cancel
    - SEC_ASN1EncoderClearTakeFromBuf
    - SEC_ASN1EncoderFinish
    - fprintf
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_CMSEncoder_Cancel(NSSCMSEncoderContext *p7ecx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1EncoderUpdate
      Src: /src/nss/lib/smime/cmsencode.c:721,1
    - Dst: NSS_CMSEncoder_Finish
      Src: /src/nss/lib/smime/cmsencode.c:723,1
    - Dst: NSS_CMSEncoder_Finish
      Src: /src/nss/lib/smime/cmsencode.c:727,1
    - Dst: nss_cms_encoder_work_data
      Src: /src/nss/lib/smime/cmsencode.c:737,1
    - Dst: NSS_CMSContent_GetContentInfo
      Src: /src/nss/lib/smime/cmsencode.c:743,1
    - Dst: SEC_ASN1EncoderClearTakeFromBuf
      Src: /src/nss/lib/smime/cmsencode.c:750,1
    - Dst: SEC_ASN1EncoderClearStreaming
      Src: /src/nss/lib/smime/cmsencode.c:751,1
    - Dst: SEC_ASN1EncoderUpdate
      Src: /src/nss/lib/smime/cmsencode.c:753,1
    - Dst: SEC_ASN1EncoderFinish
      Src: /src/nss/lib/smime/cmsencode.c:759,1
    - Dst: PORT_Free
      Src: /src/nss/lib/smime/cmsencode.c:760,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 1
    argNames:
    - p7ecx
    argTypes:
    - NSSCMSEncoderContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 704
    functionDepth: 5
    functionLinenumber: 704
    functionLinenumberEnd: 762
    functionName: NSS_CMSEncoder_Finish
    functionSourceFile: /src/nss/lib/smime/cmsencode.c
    functionUses: 4
    functionsReached:
    - nss_cms_encoder_work_data
    - SEC_ASN1EncoderUpdate
    - NSS_CMSContent_GetContentInfo
    - SEC_ASN1EncoderClearStreaming
    - PORT_Free
    - SEC_ASN1EncoderClearTakeFromBuf
    - SEC_ASN1EncoderFinish
    - NSS_CMSEncoder_Finish
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_CMSEncoder_Finish(NSSCMSEncoderContext *p7ecx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: smime_choose_cipher
      Src: /src/nss/lib/smime/smimemessage.c:52,1
    - Dst: smime_mapi_by_cipher
      Src: /src/nss/lib/smime/smimemessage.c:56,1
    - Dst: smime_keysize_by_cipher
      Src: /src/nss/lib/smime/smimemessage.c:69,1
    - Dst: SEC_PKCS7CreateEnvelopedData
      Src: /src/nss/lib/smime/smimemessage.c:73,1
    - Dst: SEC_PKCS7AddRecipient
      Src: /src/nss/lib/smime/smimemessage.c:82,1
    - Dst: SEC_PKCS7DestroyContentInfo
      Src: /src/nss/lib/smime/smimemessage.c:84,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 5
    argNames:
    - scert
    - rcerts
    - certdb
    - pwfn
    - pwfn_arg
    argTypes:
    - CERTCertificate*
    - CERTCertificate**
    - CERTCertDBHandle*
    - PK11PasswordFunc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 90
    functionName: NSS_SMIMEMessage_CreateEncrypted
    functionSourceFile: /src/nss/lib/smime/smimemessage.c
    functionUses: 0
    functionsReached:
    - smime_keysize_by_cipher
    - SEC_PKCS7DestroyContentInfo
    - smime_mapi_by_cipher
    - SEC_PKCS7AddRecipient
    - smime_choose_cipher
    - SEC_PKCS7CreateEnvelopedData
    linkageType: ''
    returnType: NSSCMSMessage
    signature: "NSSCMSMessage *\nNSS_SMIMEMessage_CreateEncrypted(CERTCertificate
      *scert,\n                        CERTCertificate **rcerts,\n                        CERTCertDBHandle
      *certdb,\n                        PK11PasswordFunc pwfn,\n                        void
      *pwfn_arg)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSMessage_Create
      Src: /src/nss/lib/smime/smimemessage.c:139,1
    - Dst: NSS_CMSSignedData_Create
      Src: /src/nss/lib/smime/smimemessage.c:143,1
    - Dst: NSS_CMSSignerInfo_Create
      Src: /src/nss/lib/smime/smimemessage.c:148,1
    - Dst: NSS_CMSSignerInfo_AddSigningTime
      Src: /src/nss/lib/smime/smimemessage.c:153,1
    - Dst: PR_Now
      Src: /src/nss/lib/smime/smimemessage.c:153,1
    - Dst: NSS_SMIMESignerInfo_AddSMIMEProfile
      Src: /src/nss/lib/smime/smimemessage.c:157,1
    - Dst: NSS_CMSSignedData_AddSignerInfo
      Src: /src/nss/lib/smime/smimemessage.c:161,1
    - Dst: NSS_CMSSignedData_AddCertChain
      Src: /src/nss/lib/smime/smimemessage.c:169,1
    - Dst: NSS_CMSSignedData_AddCertificate
      Src: /src/nss/lib/smime/smimemessage.c:175,1
    - Dst: NSS_CMSMessage_Destroy
      Src: /src/nss/lib/smime/smimemessage.c:182,1
    - Dst: NSS_CMSSignerInfo_Destroy
      Src: /src/nss/lib/smime/smimemessage.c:184,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 38
    argCount: 7
    argNames:
    - scert
    - ecert
    - certdb
    - digestalgtag
    - digest
    - pwfn
    - pwfn_arg
    argTypes:
    - CERTCertificate*
    - CERTCertificate*
    - CERTCertDBHandle*
    - SECOidTag
    - SECItem*
    - PK11PasswordFunc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 123
    functionDepth: 9
    functionLinenumber: 123
    functionLinenumberEnd: 186
    functionName: NSS_SMIMEMessage_CreateSigned
    functionSourceFile: /src/nss/lib/smime/smimemessage.c
    functionUses: 0
    functionsReached:
    - NSS_CMSSignedData_AddSignerInfo
    - NSS_CMSSignerInfo_AddSigningTime
    - NSS_CMSSignerInfo_Destroy
    - NSS_CMSSignedData_Create
    - NSS_CMSSignedData_AddCertChain
    - PR_Now
    - NSS_SMIMESignerInfo_AddSMIMEProfile
    - NSS_CMSMessage_Destroy
    - NSS_CMSSignerInfo_Create
    - NSS_CMSMessage_Create
    - NSS_CMSSignedData_AddCertificate
    linkageType: ''
    returnType: NSSCMSMessage
    signature: "NSSCMSMessage *\nNSS_SMIMEMessage_CreateSigned(CERTCertificate *scert,\n
      \                     CERTCertificate *ecert,\n                      CERTCertDBHandle
      *certdb,\n                      SECOidTag digestalgtag,\n                      SECItem
      *digest,\n                      PK11PasswordFunc pwfn,\n                      void
      *pwfn_arg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/smime/cmsenvdata.c:33,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/smime/cmsenvdata.c:35,1
    - Dst: NSS_CMSContentInfo_SetContentEncAlg
      Src: /src/nss/lib/smime/cmsenvdata.c:43,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/smime/cmsenvdata.c:48,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/smime/cmsenvdata.c:52,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - cmsg
    - algorithm
    - keysize
    argTypes:
    - NSSCMSMessage*
    - SECOidTag
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 54
    functionName: NSS_CMSEnvelopedData_Create
    functionSourceFile: /src/nss/lib/smime/cmsenvdata.c
    functionUses: 1
    functionsReached:
    - PORT_ArenaZAlloc
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - NSS_CMSContentInfo_SetContentEncAlg
    - PORT_ArenaUnmark
    linkageType: ''
    returnType: NSSCMSEnvelopedData
    signature: 'NSSCMSEnvelopedData *

      NSS_CMSEnvelopedData_Create(NSSCMSMessage *cmsg, SECOidTag algorithm, int keysize)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSRecipientInfo_Destroy
      Src: /src/nss/lib/smime/cmsenvdata.c:70,1
    - Dst: NSS_CMSContentInfo_Destroy
      Src: /src/nss/lib/smime/cmsenvdata.c:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - edp
    argTypes:
    - NSSCMSEnvelopedData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 59
    functionDepth: 5
    functionLinenumber: 59
    functionLinenumberEnd: 73
    functionName: NSS_CMSEnvelopedData_Destroy
    functionSourceFile: /src/nss/lib/smime/cmsenvdata.c
    functionUses: 1
    functionsReached:
    - NSS_CMSContentInfo_Destroy
    - NSS_CMSRecipientInfo_Destroy
    linkageType: ''
    returnType: void
    signature: void NSS_CMSEnvelopedData_Destroy(NSSCMSEnvelopedData *edp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - envd
    argTypes:
    - NSSCMSEnvelopedData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 82
    functionName: NSS_CMSEnvelopedData_GetContentInfo
    functionSourceFile: /src/nss/lib/smime/cmsenvdata.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: NSSCMSContentInfo
    signature: 'NSSCMSContentInfo *

      NSS_CMSEnvelopedData_GetContentInfo(NSSCMSEnvelopedData *envd)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_ASSERT
      Src: /src/nss/lib/smime/cmsenvdata.c:97,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/smime/cmsenvdata.c:98,1
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/smime/cmsenvdata.c:100,1
    - Dst: NSS_CMSArray_Add
      Src: /src/nss/lib/smime/cmsenvdata.c:102,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/smime/cmsenvdata.c:104,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/smime/cmsenvdata.c:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - edp
    - rip
    argTypes:
    - NSSCMSEnvelopedData*
    - NSSCMSRecipientInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 110
    functionName: NSS_CMSEnvelopedData_AddRecipient
    functionSourceFile: /src/nss/lib/smime/cmsenvdata.c
    functionUses: 1
    functionsReached:
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - PR_ASSERT
    - PORT_ArenaUnmark
    - NSS_CMSArray_Add
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_CMSEnvelopedData_AddRecipient(NSSCMSEnvelopedData *edp,
      NSSCMSRecipientInfo *rip)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmsenvdata.c:145,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmsenvdata.c:151,1
    - Dst: PORT_SetErrorString
      Src: /src/nss/lib/smime/cmsenvdata.c:153,1
    - Dst: NSS_CMSRecipientInfo_GetVersion
      Src: /src/nss/lib/smime/cmsenvdata.c:163,1
    - Dst: SEC_ASN1EncodeInteger
      Src: /src/nss/lib/smime/cmsenvdata.c:169,1
    - Dst: NSS_CMSContentInfo_GetContentEncAlgTag
      Src: /src/nss/lib/smime/cmsenvdata.c:177,1
    - Dst: NSS_CMSContentInfo_SetContentEncAlg
      Src: /src/nss/lib/smime/cmsenvdata.c:178,1
    - Dst: PK11_AlgtagToMechanism
      Src: /src/nss/lib/smime/cmsenvdata.c:185,1
    - Dst: PK11_GetBestSlot
      Src: /src/nss/lib/smime/cmsenvdata.c:186,1
    - Dst: PK11_KeyGen
      Src: /src/nss/lib/smime/cmsenvdata.c:191,1
    - Dst: NSS_CMSContentInfo_GetBulkKeySize
      Src: /src/nss/lib/smime/cmsenvdata.c:192,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/smime/cmsenvdata.c:194,1
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/smime/cmsenvdata.c:198,1
    - Dst: NSS_CMSRecipientInfo_WrapBulkKey
      Src: /src/nss/lib/smime/cmsenvdata.c:202,1
    - Dst: NSS_CMSArray_SortByDER
      Src: /src/nss/lib/smime/cmsenvdata.c:209,1
    - Dst: NSS_CMSContentInfo_SetBulkKey
      Src: /src/nss/lib/smime/cmsenvdata.c:215,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/smime/cmsenvdata.c:217,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/smime/cmsenvdata.c:219,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/smime/cmsenvdata.c:225,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/smime/cmsenvdata.c:227,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 69
    argCount: 1
    argNames:
    - envd
    argTypes:
    - NSSCMSEnvelopedData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 124
    functionDepth: 8
    functionLinenumber: 124
    functionLinenumberEnd: 230
    functionName: NSS_CMSEnvelopedData_Encode_BeforeStart
    functionSourceFile: /src/nss/lib/smime/cmsenvdata.c
    functionUses: 2
    functionsReached:
    - NSS_CMSRecipientInfo_WrapBulkKey
    - NSS_CMSArray_SortByDER
    - PK11_GetBestSlot
    - PORT_ArenaRelease
    - NSS_CMSContentInfo_GetContentEncAlgTag
    - NSS_CMSRecipientInfo_GetVersion
    - NSS_CMSContentInfo_GetBulkKeySize
    - PK11_AlgtagToMechanism
    - PORT_SetError
    - PORT_ArenaMark
    - NSS_CMSContentInfo_SetBulkKey
    - SEC_ASN1EncodeInteger
    - NSS_CMSContentInfo_SetContentEncAlg
    - PK11_KeyGen
    - PORT_ArenaUnmark
    - PORT_SetErrorString
    - PK11_FreeSlot
    - PK11_FreeSymKey
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_CMSEnvelopedData_Encode_BeforeStart(NSSCMSEnvelopedData
      *envd)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSContentInfo_GetBulkKey
      Src: /src/nss/lib/smime/cmsenvdata.c:249,1
    - Dst: NSS_CMSContentInfo_GetContentEncAlg
      Src: /src/nss/lib/smime/cmsenvdata.c:252,1
    - Dst: NSS_CMSContentInfo_Private_Init
      Src: /src/nss/lib/smime/cmsenvdata.c:256,1
    - Dst: NSS_CMSCipherContext_StartEncrypt
      Src: /src/nss/lib/smime/cmsenvdata.c:263,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/smime/cmsenvdata.c:264,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - envd
    argTypes:
    - NSSCMSEnvelopedData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 238
    functionDepth: 13
    functionLinenumber: 238
    functionLinenumberEnd: 269
    functionName: NSS_CMSEnvelopedData_Encode_BeforeData
    functionSourceFile: /src/nss/lib/smime/cmsenvdata.c
    functionUses: 1
    functionsReached:
    - NSS_CMSContentInfo_GetContentEncAlg
    - NSS_CMSCipherContext_StartEncrypt
    - NSS_CMSContentInfo_Private_Init
    - NSS_CMSContentInfo_GetBulkKey
    - PK11_FreeSymKey
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_CMSEnvelopedData_Encode_BeforeData(NSSCMSEnvelopedData
      *envd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSCipherContext_Destroy
      Src: /src/nss/lib/smime/cmsenvdata.c:278,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - envd
    argTypes:
    - NSSCMSEnvelopedData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 284
    functionName: NSS_CMSEnvelopedData_Encode_AfterData
    functionSourceFile: /src/nss/lib/smime/cmsenvdata.c
    functionUses: 1
    functionsReached:
    - NSS_CMSCipherContext_Destroy
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_CMSEnvelopedData_Encode_AfterData(NSSCMSEnvelopedData
      *envd)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSArray_Count
      Src: /src/nss/lib/smime/cmsenvdata.c:303,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmsenvdata.c:304,1
    - Dst: PORT_SetErrorString
      Src: /src/nss/lib/smime/cmsenvdata.c:306,1
    - Dst: nss_cms_recipient_list_create
      Src: /src/nss/lib/smime/cmsenvdata.c:313,1
    - Dst: PK11_FindCertAndKeyByRecipientListNew
      Src: /src/nss/lib/smime/cmsenvdata.c:321,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmsenvdata.c:325,1
    - Dst: PORT_SetErrorString
      Src: /src/nss/lib/smime/cmsenvdata.c:327,1
    - Dst: NSS_CMSContentInfo_GetContentEncAlgTag
      Src: /src/nss/lib/smime/cmsenvdata.c:341,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmsenvdata.c:343,1
    - Dst: NSS_CMSRecipientInfo_UnwrapBulkKey
      Src: /src/nss/lib/smime/cmsenvdata.c:346,1
    - Dst: NSS_CMSContentInfo_SetBulkKey
      Src: /src/nss/lib/smime/cmsenvdata.c:355,1
    - Dst: NSS_CMSContentInfo_GetContentEncAlg
      Src: /src/nss/lib/smime/cmsenvdata.c:357,1
    - Dst: NSS_CMSContentInfo_Private_Init
      Src: /src/nss/lib/smime/cmsenvdata.c:359,1
    - Dst: NSS_CMSCipherContext_StartDecrypt
      Src: /src/nss/lib/smime/cmsenvdata.c:364,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/smime/cmsenvdata.c:372,1
    - Dst: nss_cms_recipient_list_destroy
      Src: /src/nss/lib/smime/cmsenvdata.c:374,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 54
    argCount: 1
    argNames:
    - envd
    argTypes:
    - NSSCMSEnvelopedData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 290
    functionDepth: 13
    functionLinenumber: 290
    functionLinenumberEnd: 376
    functionName: NSS_CMSEnvelopedData_Decode_BeforeData
    functionSourceFile: /src/nss/lib/smime/cmsenvdata.c
    functionUses: 1
    functionsReached:
    - NSS_CMSRecipientInfo_UnwrapBulkKey
    - nss_cms_recipient_list_create
    - NSS_CMSArray_Count
    - NSS_CMSContentInfo_GetContentEncAlgTag
    - NSS_CMSContentInfo_GetContentEncAlg
    - PK11_FindCertAndKeyByRecipientListNew
    - PORT_SetError
    - nss_cms_recipient_list_destroy
    - NSS_CMSCipherContext_StartDecrypt
    - NSS_CMSContentInfo_SetBulkKey
    - PORT_SetErrorString
    - NSS_CMSContentInfo_Private_Init
    - PK11_FreeSymKey
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_CMSEnvelopedData_Decode_BeforeData(NSSCMSEnvelopedData
      *envd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSCipherContext_Destroy
      Src: /src/nss/lib/smime/cmsenvdata.c:385,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - envd
    argTypes:
    - NSSCMSEnvelopedData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 390
    functionName: NSS_CMSEnvelopedData_Decode_AfterData
    functionSourceFile: /src/nss/lib/smime/cmsenvdata.c
    functionUses: 1
    functionsReached:
    - NSS_CMSCipherContext_Destroy
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_CMSEnvelopedData_Decode_AfterData(NSSCMSEnvelopedData
      *envd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - envd
    argTypes:
    - NSSCMSEnvelopedData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 400
    functionName: NSS_CMSEnvelopedData_Decode_AfterEnd
    functionSourceFile: /src/nss/lib/smime/cmsenvdata.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_CMSEnvelopedData_Decode_AfterEnd(NSSCMSEnvelopedData
      *envd)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ri
    argTypes:
    - NSSCMSRecipientInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 31
    functionName: nss_cmsrecipientinfo_usessubjectkeyid
    functionSourceFile: /src/nss/lib/smime/cmsrecinfo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool nss_cmsrecipientinfo_usessubjectkeyid(NSSCMSRecipientInfo *ri)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: NSS_CMSMessage_Create
      Src: /src/nss/lib/smime/cmsrecinfo.c:67,1
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/smime/cmsrecinfo.c:75,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/smime/cmsrecinfo.c:77,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/smime/cmsrecinfo.c:86,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/smime/cmsrecinfo.c:89,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/smime/cmsrecinfo.c:96,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/smime/cmsrecinfo.c:104,1
    - Dst: SECKEY_CreateSubjectPublicKeyInfo
      Src: /src/nss/lib/smime/cmsrecinfo.c:105,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/smime/cmsrecinfo.c:119,1
    - Dst: CERT_GetCertIssuerAndSN
      Src: /src/nss/lib/smime/cmsrecinfo.c:129,1
    - Dst: PORT_ArenaNew
      Src: /src/nss/lib/smime/cmsrecinfo.c:136,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmsrecinfo.c:139,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/smime/cmsrecinfo.c:142,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmsrecinfo.c:145,1
    - Dst: SECKEY_CopyPublicKey
      Src: /src/nss/lib/smime/cmsrecinfo.c:150,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmsrecinfo.c:153,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmsrecinfo.c:157,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/smime/cmsrecinfo.c:162,1
    - Dst: NSS_CMSRecipientEncryptedKey_Create
      Src: /src/nss/lib/smime/cmsrecinfo.c:181,1
    - Dst: CERT_GetCertIssuerAndSN
      Src: /src/nss/lib/smime/cmsrecinfo.c:188,1
    - Dst: NSS_CMSArray_Add
      Src: /src/nss/lib/smime/cmsrecinfo.c:198,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmsrecinfo.c:205,1
    - Dst: SEC_ASN1EncodeInteger
      Src: /src/nss/lib/smime/cmsrecinfo.c:220,1
    - Dst: SEC_ASN1EncodeInteger
      Src: /src/nss/lib/smime/cmsrecinfo.c:225,1
    - Dst: SEC_ASN1EncodeInteger
      Src: /src/nss/lib/smime/cmsrecinfo.c:232,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/smime/cmsrecinfo.c:240,1
    - Dst: SECKEY_DestroySubjectPublicKeyInfo
      Src: /src/nss/lib/smime/cmsrecinfo.c:242,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/smime/cmsrecinfo.c:247,1
    - Dst: SECKEY_DestroySubjectPublicKeyInfo
      Src: /src/nss/lib/smime/cmsrecinfo.c:250,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/smime/cmsrecinfo.c:252,1
    - Dst: NSS_CMSMessage_Destroy
      Src: /src/nss/lib/smime/cmsrecinfo.c:254,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 154
    argCount: 7
    argNames:
    - cmsg
    - type
    - cert
    - pubKey
    - subjKeyID
    - pwfn_arg
    - DERinput
    argTypes:
    - NSSCMSMessage*
    - NSSCMSRecipientIDSelector
    - CERTCertificate*
    - SECKEYPublicKey*
    - SECItem*
    - void*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 42
    functionDepth: 8
    functionLinenumber: 42
    functionLinenumberEnd: 257
    functionName: nss_cmsrecipientinfo_create
    functionSourceFile: /src/nss/lib/smime/cmsrecinfo.c
    functionUses: 0
    functionsReached:
    - PORT_ArenaNew
    - PORT_ArenaMark
    - CERT_DupCertificate
    - PORT_ArenaUnmark
    - SECKEY_CreateSubjectPublicKeyInfo
    - PORT_ArenaRelease
    - PORT_SetError
    - SEC_ASN1EncodeInteger
    - CERT_GetCertIssuerAndSN
    - NSS_CMSMessage_Create
    - NSS_CMSArray_Add
    - NSS_CMSRecipientEncryptedKey_Create
    - PORT_Assert
    - SECKEY_CopyPublicKey
    - SECOID_GetAlgorithmTag
    - PORT_ArenaZAlloc
    - SECKEY_DestroySubjectPublicKeyInfo
    - SEC_QuickDERDecodeItem
    - CERT_DestroyCertificate
    - SECITEM_CopyItem
    - NSS_CMSMessage_Destroy
    linkageType: ''
    returnType: NSSCMSRecipientInfo
    signature: "NSSCMSRecipientInfo *\nnss_cmsrecipientinfo_create(NSSCMSMessage *cmsg,\n
      \                           NSSCMSRecipientIDSelector type,\n                            CERTCertificate
      *cert,\n                            SECKEYPublicKey *pubKey,\n                            SECItem
      *subjKeyID,\n                            void *pwfn_arg,\n                            SECItem
      *DERinput)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/smime/cmsrecinfo.c:270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - cert
    argTypes:
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 279
    functionName: NSS_CMSRecipient_IsSupported
    functionSourceFile: /src/nss/lib/smime/cmsrecinfo.c
    functionUses: 0
    functionsReached:
    - SECOID_GetAlgorithmTag
    linkageType: ''
    returnType: PRBool
    signature: PRBool NSS_CMSRecipient_IsSupported(CERTCertificate *cert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_cmsrecipientinfo_create
      Src: /src/nss/lib/smime/cmsrecinfo.c:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cmsg
    - cert
    argTypes:
    - NSSCMSMessage*
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 288
    functionDepth: 9
    functionLinenumber: 288
    functionLinenumberEnd: 293
    functionName: NSS_CMSRecipientInfo_Create
    functionSourceFile: /src/nss/lib/smime/cmsrecinfo.c
    functionUses: 1
    functionsReached:
    - nss_cmsrecipientinfo_create
    linkageType: ''
    returnType: NSSCMSRecipientInfo
    signature: 'NSSCMSRecipientInfo *

      NSS_CMSRecipientInfo_Create(NSSCMSMessage *cmsg, CERTCertificate *cert)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_cmsrecipientinfo_create
      Src: /src/nss/lib/smime/cmsrecinfo.c:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pwfn_arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 295
    functionDepth: 9
    functionLinenumber: 295
    functionLinenumberEnd: 300
    functionName: NSS_CMSRecipientInfo_CreateNew
    functionSourceFile: /src/nss/lib/smime/cmsrecinfo.c
    functionUses: 0
    functionsReached:
    - nss_cmsrecipientinfo_create
    linkageType: ''
    returnType: NSSCMSRecipientInfo
    signature: 'NSSCMSRecipientInfo *

      NSS_CMSRecipientInfo_CreateNew(void *pwfn_arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_cmsrecipientinfo_create
      Src: /src/nss/lib/smime/cmsrecinfo.c:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - input
    - pwfn_arg
    argTypes:
    - SECItem*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 302
    functionDepth: 9
    functionLinenumber: 302
    functionLinenumberEnd: 307
    functionName: NSS_CMSRecipientInfo_CreateFromDER
    functionSourceFile: /src/nss/lib/smime/cmsrecinfo.c
    functionUses: 0
    functionsReached:
    - nss_cmsrecipientinfo_create
    linkageType: ''
    returnType: NSSCMSRecipientInfo
    signature: 'NSSCMSRecipientInfo *

      NSS_CMSRecipientInfo_CreateFromDER(SECItem *input, void *pwfn_arg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_cmsrecipientinfo_create
      Src: /src/nss/lib/smime/cmsrecinfo.c:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cmsg
    - subjKeyID
    - pubKey
    argTypes:
    - NSSCMSMessage*
    - SECItem*
    - SECKEYPublicKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 309
    functionDepth: 9
    functionLinenumber: 309
    functionLinenumberEnd: 316
    functionName: NSS_CMSRecipientInfo_CreateWithSubjKeyID
    functionSourceFile: /src/nss/lib/smime/cmsrecinfo.c
    functionUses: 0
    functionsReached:
    - nss_cmsrecipientinfo_create
    linkageType: ''
    returnType: NSSCMSRecipientInfo
    signature: "NSSCMSRecipientInfo *\nNSS_CMSRecipientInfo_CreateWithSubjKeyID(NSSCMSMessage
      *cmsg,\n                                         SECItem *subjKeyID,\n                                         SECKEYPublicKey
      *pubKey)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CERT_ExtractPublicKey
      Src: /src/nss/lib/smime/cmsrecinfo.c:329,1
    - Dst: CERT_FindSubjectKeyIDExtension
      Src: /src/nss/lib/smime/cmsrecinfo.c:333,1
    - Dst: NSS_CMSRecipientInfo_CreateWithSubjKeyID
      Src: /src/nss/lib/smime/cmsrecinfo.c:337,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/smime/cmsrecinfo.c:340,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/smime/cmsrecinfo.c:343,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 2
    argNames:
    - cmsg
    - cert
    argTypes:
    - NSSCMSMessage*
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 318
    functionDepth: 10
    functionLinenumber: 318
    functionLinenumberEnd: 346
    functionName: NSS_CMSRecipientInfo_CreateWithSubjKeyIDFromCert
    functionSourceFile: /src/nss/lib/smime/cmsrecinfo.c
    functionUses: 0
    functionsReached:
    - SECKEY_DestroyPublicKey
    - CERT_FindSubjectKeyIDExtension
    - NSS_CMSRecipientInfo_CreateWithSubjKeyID
    - CERT_ExtractPublicKey
    - SECITEM_FreeItem
    linkageType: ''
    returnType: NSSCMSRecipientInfo
    signature: "NSSCMSRecipientInfo *\nNSS_CMSRecipientInfo_CreateWithSubjKeyIDFromCert(NSSCMSMessage
      *cmsg,\n                                                 CERTCertificate *cert)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/smime/cmsrecinfo.c:357,1
    - Dst: nss_cmsrecipientinfo_usessubjectkeyid
      Src: /src/nss/lib/smime/cmsrecinfo.c:359,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/smime/cmsrecinfo.c:363,1
    - Dst: NSS_CMSMessage_Destroy
      Src: /src/nss/lib/smime/cmsrecinfo.c:366,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - ri
    argTypes:
    - NSSCMSRecipientInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 348
    functionDepth: 8
    functionLinenumber: 348
    functionLinenumberEnd: 370
    functionName: NSS_CMSRecipientInfo_Destroy
    functionSourceFile: /src/nss/lib/smime/cmsrecinfo.c
    functionUses: 1
    functionsReached:
    - nss_cmsrecipientinfo_usessubjectkeyid
    - SECKEY_DestroyPublicKey
    - NSS_CMSMessage_Destroy
    - CERT_DestroyCertificate
    linkageType: ''
    returnType: void
    signature: void NSS_CMSRecipientInfo_Destroy(NSSCMSRecipientInfo *ri)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/smime/cmsrecinfo.c:392,1
    - Dst: SEC_ASN1DecodeInteger
      Src: /src/nss/lib/smime/cmsrecinfo.c:397,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - ri
    argTypes:
    - NSSCMSRecipientInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 401
    functionName: NSS_CMSRecipientInfo_GetVersion
    functionSourceFile: /src/nss/lib/smime/cmsrecinfo.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - SEC_ASN1DecodeInteger
    linkageType: ''
    returnType: int
    signature: int NSS_CMSRecipientInfo_GetVersion(NSSCMSRecipientInfo *ri)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - ri
    - subIndex
    argTypes:
    - NSSCMSRecipientInfo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 422
    functionName: NSS_CMSRecipientInfo_GetEncryptedKey
    functionSourceFile: /src/nss/lib/smime/cmsrecinfo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      NSS_CMSRecipientInfo_GetEncryptedKey(NSSCMSRecipientInfo *ri, int subIndex)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/smime/cmsrecinfo.c:431,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/smime/cmsrecinfo.c:434,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/smime/cmsrecinfo.c:437,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - ri
    argTypes:
    - NSSCMSRecipientInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 441
    functionName: NSS_CMSRecipientInfo_GetKeyEncryptionAlgorithmTag
    functionSourceFile: /src/nss/lib/smime/cmsrecinfo.c
    functionUses: 0
    functionsReached:
    - SECOID_GetAlgorithmTag
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag NSS_CMSRecipientInfo_GetKeyEncryptionAlgorithmTag(NSSCMSRecipientInfo
      *ri)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: nss_cmsrecipientinfo_usessubjectkeyid
      Src: /src/nss/lib/smime/cmsrecinfo.c:460,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/smime/cmsrecinfo.c:466,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmsrecinfo.c:468,1
    - Dst: SECKEY_CreateSubjectPublicKeyInfo
      Src: /src/nss/lib/smime/cmsrecinfo.c:471,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmsrecinfo.c:473,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/smime/cmsrecinfo.c:480,1
    - Dst: NSS_SMIMEUtil_KeyEncodingAllowed
      Src: /src/nss/lib/smime/cmsrecinfo.c:481,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmsrecinfo.c:482,1
    - Dst: NSS_CMSUtil_EncryptSymKey_RSA
      Src: /src/nss/lib/smime/cmsrecinfo.c:490,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/smime/cmsrecinfo.c:495,1
    - Dst: NSS_CMSUtil_EncryptSymKey_RSAPubKey
      Src: /src/nss/lib/smime/cmsrecinfo.c:496,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/lib/smime/cmsrecinfo.c:502,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/smime/cmsrecinfo.c:512,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/lib/smime/cmsrecinfo.c:515,1
    - Dst: PK11_GetWindow
      Src: /src/nss/lib/smime/cmsrecinfo.c:529,1
    - Dst: NSS_CMSUtil_EncryptSymKey_ESECDH
      Src: /src/nss/lib/smime/cmsrecinfo.c:531,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/smime/cmsrecinfo.c:542,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmsrecinfo.c:549,1
    - Dst: SECKEY_DestroySubjectPublicKeyInfo
      Src: /src/nss/lib/smime/cmsrecinfo.c:554,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 76
    argCount: 3
    argNames:
    - ri
    - bulkkey
    - bulkalgtag
    argTypes:
    - NSSCMSRecipientInfo*
    - PK11SymKey*
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 443
    functionDepth: 13
    functionLinenumber: 443
    functionLinenumberEnd: 557
    functionName: NSS_CMSRecipientInfo_WrapBulkKey
    functionSourceFile: /src/nss/lib/smime/cmsrecinfo.c
    functionUses: 1
    functionsReached:
    - NSS_CMSUtil_EncryptSymKey_RSAPubKey
    - PORT_Assert
    - NSS_CMSUtil_EncryptSymKey_RSA
    - SECOID_GetAlgorithmTag
    - nss_cmsrecipientinfo_usessubjectkeyid
    - PK11_GetWindow
    - SECKEY_DestroySubjectPublicKeyInfo
    - SECOID_SetAlgorithmID
    - PORT_SetError
    - NSS_CMSUtil_EncryptSymKey_ESECDH
    - NSS_SMIMEUtil_KeyEncodingAllowed
    - SECKEY_CreateSubjectPublicKeyInfo
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus NSS_CMSRecipientInfo_WrapBulkKey(NSSCMSRecipientInfo *ri,
      PK11SymKey *bulkkey,\n                                 SECOidTag bulkalgtag)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/smime/cmsrecinfo.c:571,1
    - Dst: NSS_SMIMEUtil_KeyDecodingAllowed
      Src: /src/nss/lib/smime/cmsrecinfo.c:597,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/smime/cmsrecinfo.c:601,1
    - Dst: NSS_CMSUtil_DecryptSymKey_RSA
      Src: /src/nss/lib/smime/cmsrecinfo.c:610,1
    - Dst: NSS_CMSUtil_DecryptSymKey_RSA_OAEP
      Src: /src/nss/lib/smime/cmsrecinfo.c:619,1
    - Dst: NSS_CMSUtil_DecryptSymKey_ECDH
      Src: /src/nss/lib/smime/cmsrecinfo.c:639,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmsrecinfo.c:650,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 78
    argCount: 5
    argNames:
    - ri
    - subIndex
    - cert
    - privkey
    - bulkalgtag
    argTypes:
    - NSSCMSRecipientInfo*
    - int
    - CERTCertificate*
    - SECKEYPrivateKey*
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 559
    functionDepth: 13
    functionLinenumber: 559
    functionLinenumberEnd: 652
    functionName: NSS_CMSRecipientInfo_UnwrapBulkKey
    functionSourceFile: /src/nss/lib/smime/cmsrecinfo.c
    functionUses: 1
    functionsReached:
    - NSS_CMSUtil_DecryptSymKey_RSA_OAEP
    - SECOID_GetAlgorithmTag
    - NSS_CMSUtil_DecryptSymKey_ECDH
    - NSS_CMSUtil_DecryptSymKey_RSA
    - NSS_SMIMEUtil_KeyDecodingAllowed
    - PORT_SetError
    - CERT_DupCertificate
    linkageType: ''
    returnType: PK11SymKey
    signature: "PK11SymKey *\nNSS_CMSRecipientInfo_UnwrapBulkKey(NSSCMSRecipientInfo
      *ri, int subIndex,\n                                   CERTCertificate *cert,
      SECKEYPrivateKey *privkey, SECOidTag bulkalgtag)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/smime/cmsrecinfo.c:681,1
    - Dst: nss_cms_recipient_list_create
      Src: /src/nss/lib/smime/cmsrecinfo.c:692,1
    - Dst: PK11_FindCertAndKeyByRecipientListNew
      Src: /src/nss/lib/smime/cmsrecinfo.c:695,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/smime/cmsrecinfo.c:697,1
    - Dst: SECKEY_CopyPrivateKey
      Src: /src/nss/lib/smime/cmsrecinfo.c:698,1
    - Dst: nss_cms_recipient_list_destroy
      Src: /src/nss/lib/smime/cmsrecinfo.c:703,1
    - Dst: PK11_FindPrivateKeyFromCert
      Src: /src/nss/lib/smime/cmsrecinfo.c:709,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/smime/cmsrecinfo.c:715,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/lib/smime/cmsrecinfo.c:722,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 52
    argCount: 3
    argNames:
    - ri
    - retcert
    - retkey
    argTypes:
    - NSSCMSRecipientInfo*
    - CERTCertificate**
    - SECKEYPrivateKey**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 654
    functionDepth: 10
    functionLinenumber: 654
    functionLinenumberEnd: 727
    functionName: NSS_CMSRecipientInfo_GetCertAndKey
    functionSourceFile: /src/nss/lib/smime/cmsrecinfo.c
    functionUses: 0
    functionsReached:
    - nss_cms_recipient_list_create
    - PK11_FindPrivateKeyFromCert
    - PK11_FindCertAndKeyByRecipientListNew
    - nss_cms_recipient_list_destroy
    - CERT_DupCertificate
    - CERT_DestroyCertificate
    - SECKEY_DestroyPrivateKey
    - SECKEY_CopyPrivateKey
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus NSS_CMSRecipientInfo_GetCertAndKey(NSSCMSRecipientInfo *ri,\n
      \                                  CERTCertificate **retcert,\n                                   SECKEYPrivateKey
      **retkey)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/smime/cmsrecinfo.c:737,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/smime/cmsrecinfo.c:738,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - poolp
    - src
    - returned
    argTypes:
    - PLArenaPool*
    - NSSCMSRecipientInfo*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 729
    functionDepth: 0
    functionLinenumber: 729
    functionLinenumberEnd: 743
    functionName: NSS_CMSRecipientInfo_Encode
    functionSourceFile: /src/nss/lib/smime/cmsrecinfo.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - SEC_ASN1EncodeItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus NSS_CMSRecipientInfo_Encode(PLArenaPool *poolp,\n                            const
      NSSCMSRecipientInfo *src,\n                            SECItem *returned)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - from
    - ','
    - to
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 17
    functionName: MAP_ERROR
    functionSourceFile: /src/nss/lib/ssl/ssldef.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAP_ERROR(from, to)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRFileDesc*::methods::connect
      Src: /src/nss/lib/ssl/ssldef.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ss
    - sa
    argTypes:
    - sslSocket*
    - PRNetAddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 31
    functionName: ssl_DefConnect
    functionSourceFile: /src/nss/lib/ssl/ssldef.c
    functionUses: 0
    functionsReached:
    - PRFileDesc*::methods::connect
    linkageType: ''
    returnType: int
    signature: int ssl_DefConnect(sslSocket *ss, const PRNetAddr *sa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRFileDesc*::methods::bind
      Src: /src/nss/lib/ssl/ssldef.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ss
    - addr
    argTypes:
    - sslSocket*
    - PRNetAddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 41
    functionName: ssl_DefBind
    functionSourceFile: /src/nss/lib/ssl/ssldef.c
    functionUses: 0
    functionsReached:
    - PRFileDesc*::methods::bind
    linkageType: ''
    returnType: int
    signature: int ssl_DefBind(sslSocket *ss, const PRNetAddr *addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRFileDesc*::methods::listen
      Src: /src/nss/lib/ssl/ssldef.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ss
    - backlog
    argTypes:
    - sslSocket*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 51
    functionName: ssl_DefListen
    functionSourceFile: /src/nss/lib/ssl/ssldef.c
    functionUses: 0
    functionsReached:
    - PRFileDesc*::methods::listen
    linkageType: ''
    returnType: int
    signature: int ssl_DefListen(sslSocket *ss, int backlog)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRFileDesc*::methods::shutdown
      Src: /src/nss/lib/ssl/ssldef.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ss
    - how
    argTypes:
    - sslSocket*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 61
    functionName: ssl_DefShutdown
    functionSourceFile: /src/nss/lib/ssl/ssldef.c
    functionUses: 0
    functionsReached:
    - PRFileDesc*::methods::shutdown
    linkageType: ''
    returnType: int
    signature: int ssl_DefShutdown(sslSocket *ss, int how)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssldef.c:69,1
    - Dst: PRFileDesc*::methods::recv
      Src: /src/nss/lib/ssl/ssldef.c:71,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssldef.c:76,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssldef.c:77,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - ss
    - buf
    - len
    - flags
    argTypes:
    - sslSocket*
    - unsigned char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 81
    functionName: ssl_DefRecv
    functionSourceFile: /src/nss/lib/ssl/ssldef.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - PRFileDesc*::methods::recv
    linkageType: ''
    returnType: int
    signature: int ssl_DefRecv(sslSocket *ss, unsigned char *buf, int len, int flags)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ssl_EnableNagleDelay
      Src: /src/nss/lib/ssl/ssldef.c:100,1
    - Dst: PRFileDesc*::methods::send
      Src: /src/nss/lib/ssl/ssldef.c:105,1
    - Dst: PR_GetError
      Src: /src/nss/lib/ssl/ssldef.c:108,1
    - Dst: MAP_ERROR
      Src: /src/nss/lib/ssl/ssldef.c:114,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssldef.c:120,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - ss
    - buf
    - len
    - flags
    argTypes:
    - sslSocket*
    - unsigned char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 127
    functionName: ssl_DefSend
    functionSourceFile: /src/nss/lib/ssl/ssldef.c
    functionUses: 0
    functionsReached:
    - IS_DTLS
    - PRFileDesc*::methods::send
    - MAP_ERROR
    - PR_GetError
    - ssl_EnableNagleDelay
    linkageType: ''
    returnType: int
    signature: int ssl_DefSend(sslSocket *ss, const unsigned char *buf, int len, int
      flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PRFileDesc*::methods::read
      Src: /src/nss/lib/ssl/ssldef.c:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ss
    - buf
    - len
    argTypes:
    - sslSocket*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 141
    functionName: ssl_DefRead
    functionSourceFile: /src/nss/lib/ssl/ssldef.c
    functionUses: 0
    functionsReached:
    - PRFileDesc*::methods::read
    linkageType: ''
    returnType: int
    signature: int ssl_DefRead(sslSocket *ss, unsigned char *buf, int len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PRFileDesc*::methods::write
      Src: /src/nss/lib/ssl/ssldef.c:150,1
    - Dst: PR_GetError
      Src: /src/nss/lib/ssl/ssldef.c:153,1
    - Dst: MAP_ERROR
      Src: /src/nss/lib/ssl/ssldef.c:159,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - ss
    - buf
    - len
    argTypes:
    - sslSocket*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 167
    functionName: ssl_DefWrite
    functionSourceFile: /src/nss/lib/ssl/ssldef.c
    functionUses: 0
    functionsReached:
    - PR_GetError
    - MAP_ERROR
    - PRFileDesc*::methods::write
    linkageType: ''
    returnType: int
    signature: int ssl_DefWrite(sslSocket *ss, const unsigned char *buf, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRFileDesc*::methods::getpeername
      Src: /src/nss/lib/ssl/ssldef.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ss
    - name
    argTypes:
    - sslSocket*
    - PRNetAddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 177
    functionName: ssl_DefGetpeername
    functionSourceFile: /src/nss/lib/ssl/ssldef.c
    functionUses: 0
    functionsReached:
    - PRFileDesc*::methods::getpeername
    linkageType: ''
    returnType: int
    signature: int ssl_DefGetpeername(sslSocket *ss, PRNetAddr *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRFileDesc*::methods::getsockname
      Src: /src/nss/lib/ssl/ssldef.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ss
    - name
    argTypes:
    - sslSocket*
    - PRNetAddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 187
    functionName: ssl_DefGetsockname
    functionSourceFile: /src/nss/lib/ssl/ssldef.c
    functionUses: 0
    functionsReached:
    - PRFileDesc*::methods::getsockname
    linkageType: ''
    returnType: int
    signature: int ssl_DefGetsockname(sslSocket *ss, PRNetAddr *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssldef.c:202,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssldef.c:204,1
    - Dst: PR_PopIOLayer
      Src: /src/nss/lib/ssl/ssldef.c:213,1
    - Dst: PRFileDesc*::dtor
      Src: /src/nss/lib/ssl/ssldef.c:214,1
    - Dst: PRFileDesc*::methods::close
      Src: /src/nss/lib/ssl/ssldef.c:219,1
    - Dst: ssl_FreeSocket
      Src: /src/nss/lib/ssl/ssldef.c:221,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssldef.c:223,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssldef.c:224,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/ssldef.c:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 226
    functionName: ssl_DefClose
    functionSourceFile: /src/nss/lib/ssl/ssldef.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PRFileDesc*::dtor
    - PRFileDesc*::methods::close
    - SSL_TRC
    - SSL_GETPID
    - PORT_GetError
    - PORT_SetError
    - ssl_FreeSocket
    - PR_PopIOLayer
    linkageType: ''
    returnType: int
    signature: int ssl_DefClose(sslSocket *ss)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - variant
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 119
    functionName: VERSIONS_DEFAULTS
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VERSIONS_DEFAULTS(variant)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - variant
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 121
    functionName: VERSIONS_POLICY_MIN
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VERSIONS_POLICY_MIN(variant)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - variant
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 123
    functionName: VERSIONS_POLICY_MAX
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VERSIONS_POLICY_MAX(variant)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - name
    - ','
    - size
    - ','
    - oid
    - ','
    - assumeSupported
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 156
    functionName: ECGROUP
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ECGROUP(name, size, oid, assumeSupported)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 161
    functionName: FFGROUP
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FFGROUP(size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsock.c:224,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsock.c:225,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsock.c:226,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:230,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - fd
    argTypes:
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 242
    functionName: ssl_GetPrivate
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    linkageType: ''
    returnType: sslSocket
    signature: 'sslSocket *

      ssl_GetPrivate(PRFileDesc *fd)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsock.c:255,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsock.c:256,1
    - Dst: PR_GetIdentitiesLayer
      Src: /src/nss/lib/ssl/sslsock.c:258,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - fd
    argTypes:
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 272
    functionName: ssl_FindSocket
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - PR_GetIdentitiesLayer
    linkageType: ''
    returnType: sslSocket
    signature: 'sslSocket *

      ssl_FindSocket(PRFileDesc *fd)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: ssl_NewSocket
      Src: /src/nss/lib/ssl/sslsock.c:280,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/ssl/sslsock.c:287,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/ssl/sslsock.c:295,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/ssl/sslsock.c:296,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/sslsock.c:305,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/sslsock.c:306,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/sslsock.c:309,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/sslsock.c:317,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/sslsock.c:327,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/sslsock.c:329,1
    - Dst: ssl_CopyServerCert
      Src: /src/nss/lib/ssl/sslsock.c:330,1
    - Dst: PR_APPEND_LINK
      Src: /src/nss/lib/ssl/sslsock.c:333,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/sslsock.c:336,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/sslsock.c:338,1
    - Dst: ssl_CopyEphemeralKeyPair
      Src: /src/nss/lib/ssl/sslsock.c:340,1
    - Dst: PR_APPEND_LINK
      Src: /src/nss/lib/ssl/sslsock.c:343,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/sslsock.c:346,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/sslsock.c:348,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/ssl/sslsock.c:350,1
    - Dst: PR_APPEND_LINK
      Src: /src/nss/lib/ssl/sslsock.c:355,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/sslsock.c:381,1
    - Dst: tls13_CopyEchConfigs
      Src: /src/nss/lib/ssl/sslsock.c:388,1
    - Dst: SECKEY_CopyPrivateKey
      Src: /src/nss/lib/ssl/sslsock.c:393,1
    - Dst: SECKEY_CopyPublicKey
      Src: /src/nss/lib/ssl/sslsock.c:394,1
    - Dst: tls13_RefAntiReplayContext
      Src: /src/nss/lib/ssl/sslsock.c:401,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsock.c:402,1
    - Dst: tls13_CopyPsk
      Src: /src/nss/lib/ssl/sslsock.c:408,1
    - Dst: ssl_CopySecurityInfo
      Src: /src/nss/lib/ssl/sslsock.c:415,1
    - Dst: ssl_FreeSocket
      Src: /src/nss/lib/ssl/sslsock.c:424,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 114
    argCount: 1
    argNames:
    - os
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 274
    functionDepth: 3
    functionLinenumber: 274
    functionLinenumberEnd: 426
    functionName: ssl_DupSocket
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - ssl_CopyEphemeralKeyPair
    - tls13_CopyEchConfigs
    - PORT_Memcpy
    - SECKEY_CopyPublicKey
    - tls13_CopyPsk
    - PORT_ZNew
    - ssl_CopyServerCert
    - ssl_CopySecurityInfo
    - ssl_NewSocket
    - PR_NEXT_LINK
    - SECITEM_CopyItem
    - PR_APPEND_LINK
    - tls13_RefAntiReplayContext
    - ssl_FreeSocket
    - PORT_Strdup
    - SECKEY_CopyPrivateKey
    linkageType: ''
    returnType: sslSocket
    signature: 'sslSocket *

      ssl_DupSocket(sslSocket *os)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PZ_DestroyMonitor
      Src: /src/nss/lib/ssl/sslsock.c:433,1
    - Dst: PZ_DestroyMonitor
      Src: /src/nss/lib/ssl/sslsock.c:437,1
    - Dst: NSSRWLock_Destroy
      Src: /src/nss/lib/ssl/sslsock.c:441,1
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/ssl/sslsock.c:446,1
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/ssl/sslsock.c:450,1
    - Dst: PZ_DestroyMonitor
      Src: /src/nss/lib/ssl/sslsock.c:454,1
    - Dst: PZ_DestroyMonitor
      Src: /src/nss/lib/ssl/sslsock.c:458,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 461
    functionName: ssl_DestroyLocks
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - NSSRWLock_Destroy
    - PZ_DestroyMonitor
    - PZ_DestroyLock
    linkageType: ''
    returnType: void
    signature: void ssl_DestroyLocks(sslSocket *ss)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ssl_DestroySecurityInfo
      Src: /src/nss/lib/ssl/sslsock.c:470,1
    - Dst: ssl3_DestroySSL3Info
      Src: /src/nss/lib/ssl/sslsock.c:472,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/sslsock.c:474,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/sslsock.c:475,1
    - Dst: ssl3_DestroyGather
      Src: /src/nss/lib/ssl/sslsock.c:476,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/sslsock.c:479,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/sslsock.c:481,1
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/lib/ssl/sslsock.c:484,1
    - Dst: PR_LIST_TAIL
      Src: /src/nss/lib/ssl/sslsock.c:485,1
    - Dst: PR_REMOVE_LINK
      Src: /src/nss/lib/ssl/sslsock.c:486,1
    - Dst: ssl_FreeServerCert
      Src: /src/nss/lib/ssl/sslsock.c:487,1
    - Dst: ssl_ClearPRCList
      Src: /src/nss/lib/ssl/sslsock.c:491,1
    - Dst: ssl_FreeEphemeralKeyPairs
      Src: /src/nss/lib/ssl/sslsock.c:493,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/sslsock.c:494,1
    - Dst: ssl3_FreeSniNameArray
      Src: /src/nss/lib/ssl/sslsock.c:495,1
    - Dst: ssl_ClearPRCList
      Src: /src/nss/lib/ssl/sslsock.c:497,1
    - Dst: ssl_ClearPRCList
      Src: /src/nss/lib/ssl/sslsock.c:498,1
    - Dst: tls13_DestroyPskList
      Src: /src/nss/lib/ssl/sslsock.c:499,1
    - Dst: tls13_ReleaseAntiReplayContext
      Src: /src/nss/lib/ssl/sslsock.c:501,1
    - Dst: tls13_DestroyPsk
      Src: /src/nss/lib/ssl/sslsock.c:503,1
    - Dst: tls13_DestroyEchConfigs
      Src: /src/nss/lib/ssl/sslsock.c:505,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/lib/ssl/sslsock.c:506,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/ssl/sslsock.c:507,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 464
    functionDepth: 2
    functionLinenumber: 464
    functionLinenumberEnd: 508
    functionName: ssl_DestroySocketContents
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - PR_LIST_TAIL
    - SECKEY_DestroyPublicKey
    - ssl_DestroySecurityInfo
    - tls13_ReleaseAntiReplayContext
    - tls13_DestroyEchConfigs
    - PORT_Free
    - PR_REMOVE_LINK
    - ssl3_FreeSniNameArray
    - tls13_DestroyPskList
    - ssl3_DestroySSL3Info
    - tls13_DestroyPsk
    - ssl_ClearPRCList
    - SECITEM_FreeItem
    - SECKEY_DestroyPrivateKey
    - ssl3_DestroyGather
    - ssl_FreeEphemeralKeyPairs
    - ssl_FreeServerCert
    - PR_CLIST_IS_EMPTY
    linkageType: ''
    returnType: void
    signature: void ssl_DestroySocketContents(sslSocket *ss)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_Get1stHandshakeLock
      Src: /src/nss/lib/ssl/sslsock.c:521,1
    - Dst: ssl_GetRecvBufLock
      Src: /src/nss/lib/ssl/sslsock.c:522,1
    - Dst: ssl_GetSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsock.c:523,1
    - Dst: ssl_GetXmitBufLock
      Src: /src/nss/lib/ssl/sslsock.c:524,1
    - Dst: ssl_GetSpecWriteLock
      Src: /src/nss/lib/ssl/sslsock.c:525,1
    - Dst: ssl_DestroySocketContents
      Src: /src/nss/lib/ssl/sslsock.c:527,1
    - Dst: SSL_UNLOCK_READER
      Src: /src/nss/lib/ssl/sslsock.c:530,1
    - Dst: SSL_UNLOCK_WRITER
      Src: /src/nss/lib/ssl/sslsock.c:531,1
    - Dst: ssl_Release1stHandshakeLock
      Src: /src/nss/lib/ssl/sslsock.c:532,1
    - Dst: ssl_ReleaseRecvBufLock
      Src: /src/nss/lib/ssl/sslsock.c:533,1
    - Dst: ssl_ReleaseSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsock.c:534,1
    - Dst: ssl_ReleaseXmitBufLock
      Src: /src/nss/lib/ssl/sslsock.c:535,1
    - Dst: ssl_ReleaseSpecWriteLock
      Src: /src/nss/lib/ssl/sslsock.c:536,1
    - Dst: ssl_DestroyLocks
      Src: /src/nss/lib/ssl/sslsock.c:538,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/ssl/sslsock.c:541,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/sslsock.c:543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 513
    functionDepth: 3
    functionLinenumber: 513
    functionLinenumberEnd: 545
    functionName: ssl_FreeSocket
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 2
    functionsReached:
    - SSL_UNLOCK_READER
    - ssl_GetXmitBufLock
    - ssl_GetSSL3HandshakeLock
    - ssl_GetSpecWriteLock
    - PORT_Free
    - ssl_DestroyLocks
    - ssl_ReleaseRecvBufLock
    - ssl_ReleaseSSL3HandshakeLock
    - ssl_DestroySocketContents
    - ssl_Get1stHandshakeLock
    - ssl_ReleaseXmitBufLock
    - ssl_GetRecvBufLock
    - SSL_UNLOCK_WRITER
    - ssl_Release1stHandshakeLock
    - PORT_Memset
    - ssl_ReleaseSpecWriteLock
    linkageType: ''
    returnType: void
    signature: void ssl_FreeSocket(sslSocket *ss)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PRFileDesc*::methods::setsocketoption
      Src: /src/nss/lib/ssl/sslsock.c:559,1
    - Dst: PR_SetError
      Src: /src/nss/lib/ssl/sslsock.c:561,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ss
    - enabled
    argTypes:
    - sslSocket*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 548
    functionDepth: 1
    functionLinenumber: 548
    functionLinenumberEnd: 565
    functionName: ssl_EnableNagleDelay
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 1
    functionsReached:
    - PR_SetError
    - PRFileDesc*::methods::setsocketoption
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl_EnableNagleDelay(sslSocket *ss, PRBool enabled)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 571
    functionName: ssl_ChooseOps
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ssl_ChooseOps(sslSocket *ss)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_ChooseOps
      Src: /src/nss/lib/ssl/sslsock.c:579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 574
    functionDepth: 1
    functionLinenumber: 574
    functionLinenumberEnd: 581
    functionName: PrepareSocket
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - ssl_ChooseOps
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus PrepareSocket(sslSocket *ss)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_OptionSet
      Src: /src/nss/lib/ssl/sslsock.c:586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - which
    - 'on'
    argTypes:
    - PRFileDesc*
    - int
    - PRIntn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 583
    functionDepth: 1
    functionLinenumber: 583
    functionLinenumberEnd: 587
    functionName: SSL_Enable
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - SSL_OptionSet
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSL_Enable(PRFileDesc *fd, int which, PRIntn on)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ssl_VersionIsSupportedByPolicy
      Src: /src/nss/lib/ssl/sslsock.c:600,1
    - Dst: SSL_ALL_VERSIONS_DISABLED
      Src: /src/nss/lib/ssl/sslsock.c:605,1
    - Dst: PR_MIN
      Src: /src/nss/lib/ssl/sslsock.c:615,1
    - Dst: PR_MAX
      Src: /src/nss/lib/ssl/sslsock.c:616,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - vrange
    - enable
    argTypes:
    - SSLVersionRange*
    - PRIntn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 595
    functionDepth: 1
    functionLinenumber: 595
    functionLinenumberEnd: 627
    functionName: ssl_EnableTLS
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - ssl_VersionIsSupportedByPolicy
    - SSL_ALL_VERSIONS_DISABLED
    - PR_MAX
    - PR_MIN
    linkageType: ''
    returnType: void
    signature: void ssl_EnableTLS(SSLVersionRange *vrange, PRIntn enable)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ssl_VersionIsSupportedByPolicy
      Src: /src/nss/lib/ssl/sslsock.c:637,1
    - Dst: SSL_ALL_VERSIONS_DISABLED
      Src: /src/nss/lib/ssl/sslsock.c:642,1
    - Dst: PR_MAX
      Src: /src/nss/lib/ssl/sslsock.c:659,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - vrange
    - enable
    argTypes:
    - SSLVersionRange*
    - PRIntn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 632
    functionDepth: 1
    functionLinenumber: 632
    functionLinenumberEnd: 666
    functionName: ssl_EnableSSL3
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - ssl_VersionIsSupportedByPolicy
    - SSL_ALL_VERSIONS_DISABLED
    - PR_MAX
    linkageType: ''
    returnType: void
    signature: void ssl_EnableSSL3(SSLVersionRange *vrange, PRIntn enable)
  - BBCount: 63
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslsock.c:671,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsock.c:676,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsock.c:676,1
    - Dst: ssl_Get1stHandshakeLock
      Src: /src/nss/lib/ssl/sslsock.c:681,1
    - Dst: ssl_GetSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsock.c:682,1
    - Dst: PrepareSocket
      Src: /src/nss/lib/ssl/sslsock.c:687,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:689,1
    - Dst: PrepareSocket
      Src: /src/nss/lib/ssl/sslsock.c:696,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:709,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:718,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/sslsock.c:726,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:728,1
    - Dst: ssl_EnableTLS
      Src: /src/nss/lib/ssl/sslsock.c:733,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/sslsock.c:737,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:739,1
    - Dst: ssl_EnableSSL3
      Src: /src/nss/lib/ssl/sslsock.c:744,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:754,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:765,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:783,1
    - Dst: PZ_ExitMonitor
      Src: /src/nss/lib/ssl/sslsock.c:792,1
    - Dst: PZ_ExitMonitor
      Src: /src/nss/lib/ssl/sslsock.c:793,1
    - Dst: ssl_DestroyLocks
      Src: /src/nss/lib/ssl/sslsock.c:794,1
    - Dst: ssl_MakeLocks
      Src: /src/nss/lib/ssl/sslsock.c:798,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/sslsock.c:814,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:815,1
    - Dst: val < 64 || val >
      Src: /src/nss/lib/ssl/sslsock.c:878,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:879,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:923,1
    - Dst: PZ_ExitMonitor
      Src: /src/nss/lib/ssl/sslsock.c:933,1
    - Dst: PZ_ExitMonitor
      Src: /src/nss/lib/ssl/sslsock.c:934,1
    CyclomaticComplexity: 75
    EdgeCount: 75
    ICount: 207
    argCount: 3
    argNames:
    - fd
    - which
    - val
    argTypes:
    - PRFileDesc*
    - PRInt32
    - PRIntn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 668
    functionDepth: 2
    functionLinenumber: 668
    functionLinenumberEnd: 938
    functionName: SSL_OptionSet
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 7
    functionsReached:
    - IS_DTLS
    - ssl_GetSSL3HandshakeLock
    - ssl_EnableTLS
    - ssl_DestroyLocks
    - SSL_GETPID
    - PZ_ExitMonitor
    - ssl_EnableSSL3
    - ssl_Get1stHandshakeLock
    - PORT_SetError
    - ssl_MakeLocks
    - PrepareSocket
    - SSL_DBG
    - ssl_FindSocket
    - val < 64 || val >
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSL_OptionSet(PRFileDesc *fd, PRInt32 which, PRIntn val)
  - BBCount: 47
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslsock.c:943,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:948,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsock.c:952,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsock.c:952,1
    - Dst: ssl_Get1stHandshakeLock
      Src: /src/nss/lib/ssl/sslsock.c:957,1
    - Dst: ssl_GetSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsock.c:958,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:1089,1
    - Dst: ssl_ReleaseSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsock.c:1093,1
    - Dst: ssl_Release1stHandshakeLock
      Src: /src/nss/lib/ssl/sslsock.c:1094,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 148
    argCount: 3
    argNames:
    - fd
    - which
    - pVal
    argTypes:
    - PRFileDesc*
    - PRInt32
    - PRIntn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1098
      start: 940
    functionDepth: 2
    functionLinenumber: 940
    functionLinenumberEnd: 1098
    functionName: SSL_OptionGet
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - ssl_GetSSL3HandshakeLock
    - SSL_GETPID
    - ssl_ReleaseSSL3HandshakeLock
    - ssl_Get1stHandshakeLock
    - PORT_SetError
    - SSL_DBG
    - ssl_Release1stHandshakeLock
    - ssl_FindSocket
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSL_OptionGet(PRFileDesc *fd, PRInt32 which, PRIntn *pVal)
  - BBCount: 46
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:1107,1
    - Dst: ssl_SetDefaultsFromEnvironment
      Src: /src/nss/lib/ssl/sslsock.c:1111,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:1242,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 140
    argCount: 2
    argNames:
    - which
    - pVal
    argTypes:
    - PRInt32
    - PRIntn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1248
      start: 1100
    functionDepth: 1
    functionLinenumber: 1100
    functionLinenumberEnd: 1248
    functionName: SSL_OptionGetDefault
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - ssl_SetDefaultsFromEnvironment
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSL_OptionGetDefault(PRInt32 which, PRIntn *pVal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_OptionSetDefault
      Src: /src/nss/lib/ssl/sslsock.c:1254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - which
    - val
    argTypes:
    - int
    - PRIntn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 1251
    functionDepth: 1
    functionLinenumber: 1251
    functionLinenumberEnd: 1255
    functionName: SSL_EnableDefault
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - SSL_OptionSetDefault
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSL_EnableDefault(int which, PRIntn val)
  - BBCount: 54
    BranchProfiles: []
    Callsites:
    - Dst: ssl_Init
      Src: /src/nss/lib/ssl/sslsock.c:1260,1
    - Dst: ssl_SetDefaultsFromEnvironment
      Src: /src/nss/lib/ssl/sslsock.c:1266,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:1272,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:1291,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:1299,1
    - Dst: ssl_EnableTLS
      Src: /src/nss/lib/ssl/sslsock.c:1306,1
    - Dst: ssl_EnableSSL3
      Src: /src/nss/lib/ssl/sslsock.c:1310,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:1320,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:1331,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:1349,1
    - Dst: val < 64 || val >
      Src: /src/nss/lib/ssl/sslsock.c:1423,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:1424,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:1463,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 164
    argCount: 2
    argNames:
    - which
    - val
    argTypes:
    - PRInt32
    - PRIntn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1467
      start: 1257
    functionDepth: 2
    functionLinenumber: 1257
    functionLinenumberEnd: 1467
    functionName: SSL_OptionSetDefault
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 4
    functionsReached:
    - ssl_SetDefaultsFromEnvironment
    - ssl_EnableTLS
    - ssl_EnableSSL3
    - PORT_SetError
    - val < 64 || val >
    - ssl_Init
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSL_OptionSetDefault(PRInt32 which, PRIntn val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslsock.c:1472,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - fd
    - size
    argTypes:
    - PRFileDesc*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1479
      start: 1469
    functionDepth: 2
    functionLinenumber: 1469
    functionLinenumberEnd: 1479
    functionName: SSLExp_SetMaxEarlyDataSize
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - ssl_FindSocket
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSLExp_SetMaxEarlyDataSize(PRFileDesc *fd, PRUint32 size)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - suite
    argTypes:
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1493
      start: 1482
    functionDepth: 0
    functionLinenumber: 1482
    functionLinenumberEnd: 1493
    functionName: ssl_IsRemovedCipherSuite
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool ssl_IsRemovedCipherSuite(PRInt32 suite)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_IsRemovedCipherSuite
      Src: /src/nss/lib/ssl/sslsock.c:1502,1
    - Dst: SSL_CipherPolicySet
      Src: /src/nss/lib/ssl/sslsock.c:1504,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - which
    - policy
    argTypes:
    - long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1505
      start: 1499
    functionDepth: 1
    functionLinenumber: 1499
    functionLinenumberEnd: 1505
    functionName: SSL_SetPolicy
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - ssl_IsRemovedCipherSuite
    - SSL_CipherPolicySet
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSL_SetPolicy(long which, int policy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_IsRemovedCipherSuite
      Src: /src/nss/lib/ssl/sslsock.c:1512,1
    - Dst: ssl3_SetPolicy
      Src: /src/nss/lib/ssl/sslsock.c:1515,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - which
    - policy
    argTypes:
    - PRInt32
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1518
      start: 1507
    functionDepth: 1
    functionLinenumber: 1507
    functionLinenumberEnd: 1518
    functionName: ssl_CipherPolicySet
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - ssl_IsRemovedCipherSuite
    - ssl3_SetPolicy
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl_CipherPolicySet(PRInt32 which, PRInt32 policy)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ssl_Init
      Src: /src/nss/lib/ssl/sslsock.c:1522,1
    - Dst: NSS_IsPolicyLocked
      Src: /src/nss/lib/ssl/sslsock.c:1527,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:1528,1
    - Dst: ssl_CipherPolicySet
      Src: /src/nss/lib/ssl/sslsock.c:1531,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - which
    - policy
    argTypes:
    - PRInt32
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1532
      start: 1519
    functionDepth: 2
    functionLinenumber: 1519
    functionLinenumberEnd: 1532
    functionName: SSL_CipherPolicySet
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    - NSS_IsPolicyLocked
    - ssl_CipherPolicySet
    - ssl_Init
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSL_CipherPolicySet(PRInt32 which, PRInt32 policy)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:1540,1
    - Dst: ssl_IsRemovedCipherSuite
      Src: /src/nss/lib/ssl/sslsock.c:1543,1
    - Dst: ssl3_GetPolicy
      Src: /src/nss/lib/ssl/sslsock.c:1547,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - which
    - oPolicy
    argTypes:
    - PRInt32
    - PRInt32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1550
      start: 1534
    functionDepth: 1
    functionLinenumber: 1534
    functionLinenumberEnd: 1550
    functionName: SSL_CipherPolicyGet
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - ssl_IsRemovedCipherSuite
    - ssl3_GetPolicy
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSL_CipherPolicyGet(PRInt32 which, PRInt32 *oPolicy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_IsRemovedCipherSuite
      Src: /src/nss/lib/ssl/sslsock.c:1560,1
    - Dst: SSL_CipherPrefSetDefault
      Src: /src/nss/lib/ssl/sslsock.c:1562,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - which
    - enabled
    argTypes:
    - long
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1563
      start: 1557
    functionDepth: 1
    functionLinenumber: 1557
    functionLinenumberEnd: 1563
    functionName: SSL_EnableCipher
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - ssl_IsRemovedCipherSuite
    - SSL_CipherPrefSetDefault
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSL_EnableCipher(long which, PRBool enabled)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_IsRemovedCipherSuite
      Src: /src/nss/lib/ssl/sslsock.c:1568,1
    - Dst: ssl3_CipherPrefSetDefault
      Src: /src/nss/lib/ssl/sslsock.c:1570,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - which
    - enabled
    argTypes:
    - PRInt32
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1571
      start: 1565
    functionDepth: 1
    functionLinenumber: 1565
    functionLinenumberEnd: 1571
    functionName: ssl_CipherPrefSetDefault
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - ssl_IsRemovedCipherSuite
    - ssl3_CipherPrefSetDefault
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl_CipherPrefSetDefault(PRInt32 which, PRBool enabled)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ssl_Init
      Src: /src/nss/lib/ssl/sslsock.c:1576,1
    - Dst: NSS_OptionGet
      Src: /src/nss/lib/ssl/sslsock.c:1582,1
    - Dst: ssl_CipherPrefSetDefault
      Src: /src/nss/lib/ssl/sslsock.c:1586,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - which
    - enabled
    argTypes:
    - PRInt32
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1587
      start: 1573
    functionDepth: 2
    functionLinenumber: 1573
    functionLinenumberEnd: 1587
    functionName: SSL_CipherPrefSetDefault
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 9
    functionsReached:
    - ssl_CipherPrefSetDefault
    - NSS_OptionGet
    - ssl_Init
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSL_CipherPrefSetDefault(PRInt32 which, PRBool enabled)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:1595,1
    - Dst: ssl_IsRemovedCipherSuite
      Src: /src/nss/lib/ssl/sslsock.c:1598,1
    - Dst: ssl3_CipherPrefGetDefault
      Src: /src/nss/lib/ssl/sslsock.c:1602,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - which
    - enabled
    argTypes:
    - PRInt32
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1605
      start: 1589
    functionDepth: 1
    functionLinenumber: 1589
    functionLinenumberEnd: 1605
    functionName: SSL_CipherPrefGetDefault
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 2
    functionsReached:
    - PORT_SetError
    - ssl_IsRemovedCipherSuite
    - ssl3_CipherPrefGetDefault
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSL_CipherPrefGetDefault(PRInt32 which, PRBool *enabled)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslsock.c:1610,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsock.c:1615,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsock.c:1615,1
    - Dst: NSS_OptionGet
      Src: /src/nss/lib/ssl/sslsock.c:1618,1
    - Dst: ssl_IsRemovedCipherSuite
      Src: /src/nss/lib/ssl/sslsock.c:1622,1
    - Dst: ssl3_CipherPrefSet
      Src: /src/nss/lib/ssl/sslsock.c:1624,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - fd
    - which
    - enabled
    argTypes:
    - PRFileDesc*
    - PRInt32
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1625
      start: 1607
    functionDepth: 2
    functionLinenumber: 1607
    functionLinenumberEnd: 1625
    functionName: SSL_CipherPrefSet
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 1
    functionsReached:
    - ssl3_CipherPrefSet
    - NSS_OptionGet
    - SSL_GETPID
    - SSL_DBG
    - ssl_FindSocket
    - ssl_IsRemovedCipherSuite
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSL_CipherPrefSet(PRFileDesc *fd, PRInt32 which, PRBool enabled)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslsock.c:1631,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:1634,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsock.c:1638,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsock.c:1638,1
    - Dst: ssl_IsRemovedCipherSuite
      Src: /src/nss/lib/ssl/sslsock.c:1642,1
    - Dst: ssl3_CipherPrefGet
      Src: /src/nss/lib/ssl/sslsock.c:1646,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - fd
    - which
    - enabled
    argTypes:
    - PRFileDesc*
    - PRInt32
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1649
      start: 1627
    functionDepth: 2
    functionLinenumber: 1627
    functionLinenumberEnd: 1649
    functionName: SSL_CipherPrefGet
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - ssl_FindSocket
    - ssl3_CipherPrefGet
    - SSL_GETPID
    - PORT_SetError
    - SSL_DBG
    - ssl_IsRemovedCipherSuite
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSL_CipherPrefGet(PRFileDesc *fd, PRInt32 which, PRBool *enabled)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsock.c:1658,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsock.c:1659,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:1660,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:1664,1
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslsock.c:1667,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsock.c:1669,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsock.c:1669,1
    - Dst: ssl_Get1stHandshakeLock
      Src: /src/nss/lib/ssl/sslsock.c:1675,1
    - Dst: ssl_GetSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsock.c:1676,1
    - Dst: ssl_ReleaseSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsock.c:1684,1
    - Dst: ssl_Release1stHandshakeLock
      Src: /src/nss/lib/ssl/sslsock.c:1685,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - fd
    - cipherOrder
    - numCiphers
    argTypes:
    - PRFileDesc*
    - PRUint16*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1688
      start: 1653
    functionDepth: 2
    functionLinenumber: 1653
    functionLinenumberEnd: 1688
    functionName: SSLExp_CipherSuiteOrderGet
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - ssl_GetSSL3HandshakeLock
    - SSL_GETPID
    - ssl_ReleaseSSL3HandshakeLock
    - ssl_Get1stHandshakeLock
    - PORT_SetError
    - SSL_DBG
    - ssl_Release1stHandshakeLock
    - ssl_FindSocket
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSLExp_CipherSuiteOrderGet(PRFileDesc *fd, PRUint16 *cipherOrder,\n
      \                          unsigned int *numCiphers)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsock.c:1697,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsock.c:1698,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:1699,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:1703,1
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslsock.c:1706,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsock.c:1708,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsock.c:1708,1
    - Dst: ssl_Get1stHandshakeLock
      Src: /src/nss/lib/ssl/sslsock.c:1713,1
    - Dst: ssl_GetSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsock.c:1714,1
    - Dst: ssl_LookupCipherSuiteCfg
      Src: /src/nss/lib/ssl/sslsock.c:1719,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:1721,1
    - Dst: ssl_ReleaseSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsock.c:1722,1
    - Dst: ssl_Release1stHandshakeLock
      Src: /src/nss/lib/ssl/sslsock.c:1723,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:1729,1
    - Dst: ssl_ReleaseSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsock.c:1730,1
    - Dst: ssl_Release1stHandshakeLock
      Src: /src/nss/lib/ssl/sslsock.c:1731,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsock.c:1756,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/sslsock.c:1758,1
    - Dst: ssl_ReleaseSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsock.c:1759,1
    - Dst: ssl_Release1stHandshakeLock
      Src: /src/nss/lib/ssl/sslsock.c:1760,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 51
    argCount: 3
    argNames:
    - fd
    - cipherOrder
    - numCiphers
    argTypes:
    - PRFileDesc*
    - PRUint16*
    - PRUint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1762
      start: 1692
    functionDepth: 2
    functionLinenumber: 1692
    functionLinenumberEnd: 1762
    functionName: SSLExp_CipherSuiteOrderSet
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - ssl_LookupCipherSuiteCfg
    - PORT_Assert
    - PORT_Memcpy
    - ssl_GetSSL3HandshakeLock
    - SSL_GETPID
    - ssl_ReleaseSSL3HandshakeLock
    - ssl_Get1stHandshakeLock
    - PORT_SetError
    - SSL_DBG
    - ssl_Release1stHandshakeLock
    - ssl_FindSocket
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSLExp_CipherSuiteOrderSet(PRFileDesc *fd, const PRUint16
      *cipherOrder,\n                           PRUint16 numCiphers)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NSS_GetAlgorithmPolicy
      Src: /src/nss/lib/ssl/sslsock.c:1773,1
    - Dst: ssl_Init
      Src: /src/nss/lib/ssl/sslsock.c:1775,1
    - Dst: SSL_SetPolicy
      Src: /src/nss/lib/ssl/sslsock.c:1779,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1784
      start: 1764
    functionDepth: 2
    functionLinenumber: 1764
    functionLinenumberEnd: 1784
    functionName: NSS_SetDomesticPolicy
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 2
    functionsReached:
    - SSL_SetPolicy
    - NSS_GetAlgorithmPolicy
    - ssl_Init
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_SetDomesticPolicy(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSS_SetDomesticPolicy
      Src: /src/nss/lib/ssl/sslsock.c:1789,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1790
      start: 1786
    functionDepth: 3
    functionLinenumber: 1786
    functionLinenumberEnd: 1790
    functionName: NSS_SetExportPolicy
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - NSS_SetDomesticPolicy
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_SetExportPolicy(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSS_SetDomesticPolicy
      Src: /src/nss/lib/ssl/sslsock.c:1795,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1796
      start: 1792
    functionDepth: 3
    functionLinenumber: 1792
    functionLinenumberEnd: 1796
    functionName: NSS_SetFrancePolicy
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - NSS_SetDomesticPolicy
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_SetFrancePolicy(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslsock.c:1804,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:1807,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:1812,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:1816,1
    - Dst: memset
      Src: /src/nss/lib/ssl/sslsock.c:1820,1
    - Dst: ssl_LookupNamedGroup
      Src: /src/nss/lib/ssl/sslsock.c:1823,1
    - Dst: ssl_NamedGroupEnabled
      Src: /src/nss/lib/ssl/sslsock.c:1824,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - fd
    - groups
    - numGroups
    argTypes:
    - PRFileDesc*
    - SSLNamedGroup*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1830
      start: 1798
    functionDepth: 2
    functionLinenumber: 1798
    functionLinenumberEnd: 1830
    functionName: SSL_NamedGroupConfig
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 2
    functionsReached:
    - ssl_LookupNamedGroup
    - memset
    - PORT_SetError
    - ssl_NamedGroupEnabled
    - ssl_FindSocket
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSL_NamedGroupConfig(PRFileDesc *fd, const SSLNamedGroup
      *groups,\n                     unsigned int numGroups)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:1847,1
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslsock.c:1851,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsock.c:1853,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsock.c:1853,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/ssl/sslsock.c:1862,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:1897,1
    - Dst: ssl_LookupNamedGroup
      Src: /src/nss/lib/ssl/sslsock.c:1900,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsock.c:1901,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsock.c:1905,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 66
    argCount: 3
    argNames:
    - fd
    - groups
    - num_groups
    argTypes:
    - PRFileDesc*
    - SSLDHEGroupType*
    - PRUint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1922
      start: 1832
    functionDepth: 2
    functionLinenumber: 1832
    functionLinenumberEnd: 1922
    functionName: SSL_DHEGroupPrefSet
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SSL_GETPID
    - PR_ARRAY_SIZE
    - ssl_LookupNamedGroup
    - PORT_SetError
    - SSL_DBG
    - ssl_FindSocket
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSL_DHEGroupPrefSet(PRFileDesc *fd, const SSLDHEGroupType
      *groups,\n                    PRUint16 num_groups)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsock.c:1941,1
    - Dst: PK11_PQG_ParamGenV2
      Src: /src/nss/lib/ssl/sslsock.c:1943,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/sslsock.c:1946,1
    - Dst: PK11_PQG_VerifyParams
      Src: /src/nss/lib/ssl/sslsock.c:1950,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsock.c:1952,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsock.c:1953,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/sslsock.c:1954,1
    - Dst: PORT_ArenaNew
      Src: /src/nss/lib/ssl/sslsock.c:1958,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/sslsock.c:1960,1
    - Dst: PK11_PQG_DestroyVerify
      Src: /src/nss/lib/ssl/sslsock.c:1970,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1972
      start: 1935
    functionDepth: 2
    functionLinenumber: 1935
    functionLinenumberEnd: 1972
    functionName: ssl3_CreateWeakDHParams
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - PK11_PQG_VerifyParams
    - PORT_Assert
    - PORT_ArenaNew
    - PORT_GetError
    - SSL_GETPID
    - SSL_DBG
    - PK11_PQG_DestroyVerify
    - PK11_PQG_ParamGenV2
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus ssl3_CreateWeakDHParams(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_PQG_DestroyParams
      Src: /src/nss/lib/ssl/sslsock.c:1978,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - appData
    - nssData
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1983
      start: 1974
    functionDepth: 1
    functionLinenumber: 1974
    functionLinenumberEnd: 1983
    functionName: ssl3_WeakDHParamsShutdown
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - PK11_PQG_DestroyParams
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_WeakDHParamsShutdown(void *appData, void *nssData)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSS_RegisterShutdown
      Src: /src/nss/lib/ssl/sslsock.c:1989,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/sslsock.c:1991,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1994
      start: 1985
    functionDepth: 1
    functionLinenumber: 1985
    functionLinenumberEnd: 1994
    functionName: ssl3_WeakDHParamsRegisterShutdown
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - NSS_RegisterShutdown
    - PORT_GetError
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus ssl3_WeakDHParamsRegisterShutdown(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PR_CallOnce
      Src: /src/nss/lib/ssl/sslsock.c:2004,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:2007,1
    - Dst: PR_CallOnce
      Src: /src/nss/lib/ssl/sslsock.c:2011,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:2013,1
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslsock.c:2021,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsock.c:2023,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsock.c:2023,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - fd
    - enabled
    argTypes:
    - PRFileDesc*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2029
      start: 1997
    functionDepth: 2
    functionLinenumber: 1997
    functionLinenumberEnd: 2029
    functionName: SSL_EnableWeakDHEPrimeGroup
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 2
    functionsReached:
    - SSL_GETPID
    - PORT_SetError
    - SSL_DBG
    - PR_CallOnce
    - ssl_FindSocket
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSL_EnableWeakDHEPrimeGroup(PRFileDesc *fd, PRBool enabled)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsock.c:2048,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsock.c:2051,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - groupDef
    argTypes:
    - sslNamedGroupDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2054
      start: 2033
    functionDepth: 0
    functionLinenumber: 2033
    functionLinenumberEnd: 2054
    functionName: ssl_GetDHEParams
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: ssl3DHParams
    signature: 'ssl3DHParams *

      ssl_GetDHEParams(const sslNamedGroupDef *groupDef)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SECKEY_BigIntegerBitLength
      Src: /src/nss/lib/ssl/sslsock.c:2060,1
    - Dst: SECKEY_BigIntegerBitLength
      Src: /src/nss/lib/ssl/sslsock.c:2061,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsock.c:2083,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsock.c:2084,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/ssl/sslsock.c:2085,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - dh_p
    - dh_Ys
    argTypes:
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2102
      start: 2057
    functionDepth: 1
    functionLinenumber: 2057
    functionLinenumberEnd: 2102
    functionName: ssl_IsValidDHEShare
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SECKEY_BigIntegerBitLength
    - PORT_Memcmp
    linkageType: ''
    returnType: PRBool
    signature: PRBool ssl_IsValidDHEShare(const SECItem *dh_p, const SECItem *dh_Ys)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ssl_GetDHEParams
      Src: /src/nss/lib/ssl/sslsock.c:2128,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsock.c:2129,1
    - Dst: SECITEM_ItemsAreEqual
      Src: /src/nss/lib/ssl/sslsock.c:2130,1
    - Dst: SECITEM_ItemsAreEqual
      Src: /src/nss/lib/ssl/sslsock.c:2131,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 5
    argNames:
    - ss
    - dh_p
    - dh_g
    - groupDef
    - dhParams
    argTypes:
    - sslSocket*
    - SECItem*
    - SECItem*
    - sslNamedGroupDef**
    - ssl3DHParams**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2143
      start: 2110
    functionDepth: 1
    functionLinenumber: 2110
    functionLinenumberEnd: 2143
    functionName: ssl_ValidateDHENamedGroup
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SECITEM_ItemsAreEqual
    - ssl_GetDHEParams
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_ValidateDHENamedGroup(sslSocket *ss,\n                          const
      SECItem *dh_p,\n                          const SECItem *dh_g,\n                          const
      sslNamedGroupDef **groupDef,\n                          const ssl3DHParams **dhParams)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NSS_OptionGet
      Src: /src/nss/lib/ssl/sslsock.c:2160,1
    - Dst: ssl_NamedGroupEnabled
      Src: /src/nss/lib/ssl/sslsock.c:2175,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:2190,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 22
    argCount: 2
    argNames:
    - ss
    - groupDef
    argTypes:
    - sslSocket*
    - sslNamedGroupDef**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2192
      start: 2147
    functionDepth: 1
    functionLinenumber: 2147
    functionLinenumberEnd: 2192
    functionName: ssl_SelectDHEGroup
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - NSS_OptionGet
    - ssl_NamedGroupEnabled
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl_SelectDHEGroup(sslSocket *ss, const sslNamedGroupDef
      **groupDef)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ssl_Init
      Src: /src/nss/lib/ssl/sslsock.c:2201,1
    - Dst: ssl_NewSocket
      Src: /src/nss/lib/ssl/sslsock.c:2209,1
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslsock.c:2211,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsock.c:2213,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsock.c:2214,1
    - Dst: ssl_DupSocket
      Src: /src/nss/lib/ssl/sslsock.c:2217,1
    - Dst: ssl_PushIOLayer
      Src: /src/nss/lib/ssl/sslsock.c:2222,1
    - Dst: ssl_FreeSocket
      Src: /src/nss/lib/ssl/sslsock.c:2224,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:2225,1
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslsock.c:2230,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsock.c:2231,1
    - Dst: ssl_DefGetpeername
      Src: /src/nss/lib/ssl/sslsock.c:2234,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - model
    - fd
    - variant
    argTypes:
    - PRFileDesc*
    - PRFileDesc*
    - SSLProtocolVariant
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2236
      start: 2195
    functionDepth: 4
    functionLinenumber: 2195
    functionLinenumberEnd: 2236
    functionName: ssl_ImportFD
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - ssl_NewSocket
    - SSL_GETPID
    - ssl_DupSocket
    - PORT_SetError
    - ssl_DefGetpeername
    - SSL_DBG
    - ssl_PushIOLayer
    - ssl_FindSocket
    - ssl_FreeSocket
    - ssl_Init
    linkageType: ''
    returnType: PRFileDesc
    signature: 'PRFileDesc *

      ssl_ImportFD(PRFileDesc *model, PRFileDesc *fd, SSLProtocolVariant variant)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_ImportFD
      Src: /src/nss/lib/ssl/sslsock.c:2241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - model
    - fd
    argTypes:
    - PRFileDesc*
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2242
      start: 2238
    functionDepth: 5
    functionLinenumber: 2238
    functionLinenumberEnd: 2242
    functionName: SSL_ImportFD
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 7
    functionsReached:
    - ssl_ImportFD
    linkageType: ''
    returnType: PRFileDesc
    signature: 'PRFileDesc *

      SSL_ImportFD(PRFileDesc *model, PRFileDesc *fd)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_ImportFD
      Src: /src/nss/lib/ssl/sslsock.c:2247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - model
    - fd
    argTypes:
    - PRFileDesc*
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2248
      start: 2244
    functionDepth: 5
    functionLinenumber: 2244
    functionLinenumberEnd: 2248
    functionName: DTLS_ImportFD
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 1
    functionsReached:
    - ssl_ImportFD
    linkageType: ''
    returnType: PRFileDesc
    signature: 'PRFileDesc *

      DTLS_ImportFD(PRFileDesc *model, PRFileDesc *fd)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslsock.c:2256,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsock.c:2259,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsock.c:2259,1
    - Dst: ssl_GetSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsock.c:2264,1
    - Dst: ssl_ReleaseSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsock.c:2267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - fd
    - callback
    - arg
    argTypes:
    - PRFileDesc*
    - SSLNextProtoCallback
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2270
      start: 2252
    functionDepth: 2
    functionLinenumber: 2252
    functionLinenumberEnd: 2270
    functionName: SSL_SetNextProtoCallback
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - ssl_GetSSL3HandshakeLock
    - SSL_GETPID
    - ssl_ReleaseSSL3HandshakeLock
    - SSL_DBG
    - ssl_FindSocket
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSL_SetNextProtoCallback(PRFileDesc *fd, SSLNextProtoCallback
      callback,\n                         void *arg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslsock.c:2282,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsock.c:2284,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsock.c:2285,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsock.c:2289,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsock.c:2290,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/sslsock.c:2291,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsock.c:2295,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:2297,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/ssl/sslsock.c:2305,1
    - Dst: memcpy
      Src: /src/nss/lib/ssl/sslsock.c:2309,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 7
    argNames:
    - arg
    - fd
    - protos
    - protos_len
    - protoOut
    - protoOutLen
    - protoMaxLen
    argTypes:
    - void*
    - PRFileDesc*
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2319
      start: 2275
    functionDepth: 2
    functionLinenumber: 2275
    functionLinenumberEnd: 2319
    functionName: ssl_NextProtoNegoCallback
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - SSL3_SendAlert
    - PORT_Assert
    - memcpy
    - PORT_Memcmp
    - SSL_GETPID
    - PORT_SetError
    - SSL_DBG
    - ssl_FindSocket
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_NextProtoNegoCallback(void *arg, PRFileDesc *fd,\n                          const
      unsigned char *protos, unsigned int protos_len,\n                          unsigned
      char *protoOut, unsigned int *protoOutLen,\n                          unsigned
      int protoMaxLen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslsock.c:2327,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsock.c:2329,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsock.c:2330,1
    - Dst: ssl3_ValidateAppProtocol
      Src: /src/nss/lib/ssl/sslsock.c:2334,1
    - Dst: ssl_GetSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsock.c:2341,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/sslsock.c:2342,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/ssl/sslsock.c:2344,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/sslsock.c:2347,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/sslsock.c:2348,1
    - Dst: ssl_ReleaseSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsock.c:2350,1
    - Dst: SSL_SetNextProtoCallback
      Src: /src/nss/lib/ssl/sslsock.c:2352,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - fd
    - data
    - length
    argTypes:
    - PRFileDesc*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2353
      start: 2321
    functionDepth: 3
    functionLinenumber: 2321
    functionLinenumberEnd: 2353
    functionName: SSL_SetNextProtoNego
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 1
    functionsReached:
    - SSL_SetNextProtoCallback
    - PORT_Memcpy
    - ssl_GetSSL3HandshakeLock
    - SSL_GETPID
    - ssl_ReleaseSSL3HandshakeLock
    - SECITEM_AllocItem
    - SSL_DBG
    - SECITEM_FreeItem
    - ssl_FindSocket
    - ssl3_ValidateAppProtocol
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSL_SetNextProtoNego(PRFileDesc *fd, const unsigned char
      *data,\n                     unsigned int length)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslsock.c:2359,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsock.c:2362,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsock.c:2362,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:2368,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:2377,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/sslsock.c:2380,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 5
    argNames:
    - fd
    - state
    - buf
    - bufLen
    - bufLenMax
    argTypes:
    - PRFileDesc*
    - SSLNextProtoState*
    - unsigned char*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2387
      start: 2355
    functionDepth: 2
    functionLinenumber: 2355
    functionLinenumberEnd: 2387
    functionName: SSL_GetNextProto
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - PORT_Memcpy
    - SSL_GETPID
    - PORT_SetError
    - SSL_DBG
    - ssl_FindSocket
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSL_GetNextProto(PRFileDesc *fd, SSLNextProtoState *state,
      unsigned char *buf,\n                 unsigned int *bufLen, unsigned int bufLenMax)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslsock.c:2397,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/sslsock.c:2398,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsock.c:2399,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsock.c:2400,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:2401,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:2406,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsock.c:2423,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsock.c:2425,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:2431,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 3
    argNames:
    - fd
    - ciphers
    - numCiphers
    argTypes:
    - PRFileDesc*
    - PRUint16*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2436
      start: 2389
    functionDepth: 2
    functionLinenumber: 2389
    functionLinenumberEnd: 2436
    functionName: SSL_SetSRTPCiphers
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - IS_DTLS
    - SSL_GETPID
    - PORT_SetError
    - SSL_DBG
    - ssl_FindSocket
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSL_SetSRTPCiphers(PRFileDesc *fd,\n                   const
      PRUint16 *ciphers,\n                   unsigned int numCiphers)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslsock.c:2443,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsock.c:2445,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsock.c:2446,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:2447,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:2452,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - fd
    - cipher
    argTypes:
    - PRFileDesc*
    - PRUint16*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2458
      start: 2438
    functionDepth: 2
    functionLinenumber: 2438
    functionLinenumberEnd: 2458
    functionName: SSL_GetSRTPCipher
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - ssl_FindSocket
    - PORT_SetError
    - SSL_GETPID
    - SSL_DBG
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSL_GetSRTPCipher(PRFileDesc *fd, PRUint16 *cipher)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: PR_SetError
      Src: /src/nss/lib/ssl/sslsock.c:2468,1
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslsock.c:2471,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsock.c:2473,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsock.c:2474,1
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslsock.c:2477,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsock.c:2478,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:2480,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/sslsock.c:2488,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/sslsock.c:2489,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/sslsock.c:2492,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:2499,1
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/lib/ssl/sslsock.c:2502,1
    - Dst: PR_LIST_TAIL
      Src: /src/nss/lib/ssl/sslsock.c:2503,1
    - Dst: PR_REMOVE_LINK
      Src: /src/nss/lib/ssl/sslsock.c:2504,1
    - Dst: ssl_FreeServerCert
      Src: /src/nss/lib/ssl/sslsock.c:2505,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/sslsock.c:2507,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/sslsock.c:2509,1
    - Dst: ssl_CopyServerCert
      Src: /src/nss/lib/ssl/sslsock.c:2510,1
    - Dst: PR_APPEND_LINK
      Src: /src/nss/lib/ssl/sslsock.c:2513,1
    - Dst: ssl_FreeEphemeralKeyPairs
      Src: /src/nss/lib/ssl/sslsock.c:2516,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/sslsock.c:2517,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/sslsock.c:2519,1
    - Dst: ssl_CopyEphemeralKeyPair
      Src: /src/nss/lib/ssl/sslsock.c:2521,1
    - Dst: PR_APPEND_LINK
      Src: /src/nss/lib/ssl/sslsock.c:2524,1
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/lib/ssl/sslsock.c:2527,1
    - Dst: PR_LIST_TAIL
      Src: /src/nss/lib/ssl/sslsock.c:2528,1
    - Dst: PR_REMOVE_LINK
      Src: /src/nss/lib/ssl/sslsock.c:2529,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/sslsock.c:2530,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/sslsock.c:2532,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/sslsock.c:2534,1
    - Dst: SSL_InstallExtensionHooks
      Src: /src/nss/lib/ssl/sslsock.c:2536,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/sslsock.c:2544,1
    - Dst: CERT_FreeDistNames
      Src: /src/nss/lib/ssl/sslsock.c:2552,1
    - Dst: CERT_DupDistNames
      Src: /src/nss/lib/ssl/sslsock.c:2554,1
    - Dst: tls13_DestroyEchConfigs
      Src: /src/nss/lib/ssl/sslsock.c:2561,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/lib/ssl/sslsock.c:2562,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/ssl/sslsock.c:2563,1
    - Dst: tls13_CopyEchConfigs
      Src: /src/nss/lib/ssl/sslsock.c:2564,1
    - Dst: SECKEY_CopyPrivateKey
      Src: /src/nss/lib/ssl/sslsock.c:2570,1
    - Dst: SECKEY_CopyPublicKey
      Src: /src/nss/lib/ssl/sslsock.c:2571,1
    - Dst: tls13_ReleaseAntiReplayContext
      Src: /src/nss/lib/ssl/sslsock.c:2579,1
    - Dst: tls13_RefAntiReplayContext
      Src: /src/nss/lib/ssl/sslsock.c:2583,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsock.c:2584,1
    - Dst: tls13_ResetHandshakePsks
      Src: /src/nss/lib/ssl/sslsock.c:2590,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 125
    argCount: 2
    argNames:
    - model
    - fd
    argTypes:
    - PRFileDesc*
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2624
      start: 2460
    functionDepth: 3
    functionLinenumber: 2460
    functionLinenumberEnd: 2624
    functionName: SSL_ReconfigFD
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - PR_LIST_TAIL
    - tls13_DestroyEchConfigs
    - PR_REMOVE_LINK
    - SSL_DBG
    - tls13_ResetHandshakePsks
    - SECKEY_CopyPrivateKey
    - ssl_CopyEphemeralKeyPair
    - SECKEY_DestroyPublicKey
    - PORT_Memcpy
    - tls13_ReleaseAntiReplayContext
    - SSL_InstallExtensionHooks
    - ssl_CopyServerCert
    - PORT_SetError
    - PR_SetError
    - tls13_RefAntiReplayContext
    - ssl_FindSocket
    - PR_CLIST_IS_EMPTY
    - PORT_Assert
    - SECKEY_CopyPublicKey
    - CERT_FreeDistNames
    - ssl_FreeEphemeralKeyPairs
    - ssl_FreeServerCert
    - tls13_CopyEchConfigs
    - PORT_Free
    - CERT_DupDistNames
    - SSL_GETPID
    - PR_NEXT_LINK
    - PR_APPEND_LINK
    - SECKEY_DestroyPrivateKey
    linkageType: ''
    returnType: PRFileDesc
    signature: 'PRFileDesc *

      SSL_ReconfigFD(PRFileDesc *model, PRFileDesc *fd)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NSS_GetAlgorithmPolicy
      Src: /src/nss/lib/ssl/sslsock.c:2642,1
    - Dst: NSS_OptionGet
      Src: /src/nss/lib/ssl/sslsock.c:2648,1
    - Dst: VERSIONS_POLICY_MIN
      Src: /src/nss/lib/ssl/sslsock.c:2648,1
    - Dst: NSS_OptionGet
      Src: /src/nss/lib/ssl/sslsock.c:2652,1
    - Dst: VERSIONS_POLICY_MAX
      Src: /src/nss/lib/ssl/sslsock.c:2652,1
    - Dst: PR_MAX
      Src: /src/nss/lib/ssl/sslsock.c:2662,1
    - Dst: PR_MIN
      Src: /src/nss/lib/ssl/sslsock.c:2663,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - variant
    - effectivePolicy
    argTypes:
    - SSLProtocolVariant
    - SSLVersionRange*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2665
      start: 2626
    functionDepth: 1
    functionLinenumber: 2626
    functionLinenumberEnd: 2665
    functionName: ssl3_GetEffectiveVersionPolicy
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - NSS_GetAlgorithmPolicy
    - NSS_OptionGet
    - PR_MIN
    - VERSIONS_POLICY_MAX
    - VERSIONS_POLICY_MIN
    - PR_MAX
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_GetEffectiveVersionPolicy(SSLProtocolVariant variant,\n
      \                              SSLVersionRange *effectivePolicy)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsock.c:2682,1
    - Dst: ssl3_GetEffectiveVersionPolicy
      Src: /src/nss/lib/ssl/sslsock.c:2684,1
    - Dst: PR_MAX
      Src: /src/nss/lib/ssl/sslsock.c:2692,1
    - Dst: PR_MIN
      Src: /src/nss/lib/ssl/sslsock.c:2693,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - protocolVariant
    - input
    - overlap
    argTypes:
    - SSLProtocolVariant
    - SSLVersionRange*
    - SSLVersionRange*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2703
      start: 2673
    functionDepth: 2
    functionLinenumber: 2673
    functionLinenumberEnd: 2703
    functionName: ssl3_CreateOverlapWithPolicy
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - ssl3_GetEffectiveVersionPolicy
    - PR_MIN
    - PR_MAX
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_CreateOverlapWithPolicy(SSLProtocolVariant protocolVariant,\n
      \                            SSLVersionRange *input,\n                             SSLVersionRange
      *overlap)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_GetEffectiveVersionPolicy
      Src: /src/nss/lib/ssl/sslsock.c:2712,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - protocolVariant
    - version
    argTypes:
    - SSLProtocolVariant
    - SSL3ProtocolVersion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2720
      start: 2705
    functionDepth: 2
    functionLinenumber: 2705
    functionLinenumberEnd: 2720
    functionName: ssl_VersionIsSupportedByPolicy
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 2
    functionsReached:
    - ssl3_GetEffectiveVersionPolicy
    linkageType: ''
    returnType: PRBool
    signature: "PRBool ssl_VersionIsSupportedByPolicy(SSLProtocolVariant protocolVariant,\n
      \                              SSL3ProtocolVersion version)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_CreateOverlapWithPolicy
      Src: /src/nss/lib/ssl/sslsock.c:2732,1
    - Dst: VERSIONS_DEFAULTS
      Src: /src/nss/lib/ssl/sslsock.c:2733,1
    - Dst: VERSIONS_DEFAULTS
      Src: /src/nss/lib/ssl/sslsock.c:2734,1
    - Dst: ssl3_CreateOverlapWithPolicy
      Src: /src/nss/lib/ssl/sslsock.c:2735,1
    - Dst: VERSIONS_DEFAULTS
      Src: /src/nss/lib/ssl/sslsock.c:2736,1
    - Dst: VERSIONS_DEFAULTS
      Src: /src/nss/lib/ssl/sslsock.c:2737,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2739
      start: 2726
    functionDepth: 3
    functionLinenumber: 2726
    functionLinenumberEnd: 2739
    functionName: ssl3_ConstrainRangeByPolicy
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - VERSIONS_DEFAULTS
    - ssl3_CreateOverlapWithPolicy
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_ConstrainRangeByPolicy(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsock.c:2755,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - protocolVariant
    - version
    argTypes:
    - SSLProtocolVariant
    - SSL3ProtocolVersion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2757
      start: 2741
    functionDepth: 0
    functionLinenumber: 2741
    functionLinenumberEnd: 2757
    functionName: ssl3_VersionIsSupportedByCode
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: PRBool
    signature: "PRBool ssl3_VersionIsSupportedByCode(SSLProtocolVariant protocolVariant,\n
      \                             SSL3ProtocolVersion version)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_VersionIsSupportedByPolicy
      Src: /src/nss/lib/ssl/sslsock.c:2763,1
    - Dst: ssl3_VersionIsSupportedByCode
      Src: /src/nss/lib/ssl/sslsock.c:2766,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - protocolVariant
    - version
    argTypes:
    - SSLProtocolVariant
    - SSL3ProtocolVersion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2767
      start: 2759
    functionDepth: 3
    functionLinenumber: 2759
    functionLinenumberEnd: 2767
    functionName: ssl3_VersionIsSupported
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - ssl_VersionIsSupportedByPolicy
    - ssl3_VersionIsSupportedByCode
    linkageType: ''
    returnType: PRBool
    signature: "PRBool ssl3_VersionIsSupported(SSLProtocolVariant protocolVariant,\n
      \                       SSL3ProtocolVersion version)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslsock.c:2772,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsock.c:2775,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsock.c:2776,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:2781,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - fd
    argTypes:
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2786
      start: 2769
    functionDepth: 2
    functionLinenumber: 2769
    functionLinenumberEnd: 2786
    functionName: SSL_PeerSignedCertTimestamps
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 1
    functionsReached:
    - ssl_FindSocket
    - PORT_SetError
    - SSL_GETPID
    - SSL_DBG
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      SSL_PeerSignedCertTimestamps(PRFileDesc *fd)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:2795,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:2813,1
    - Dst: ssl3_CreateOverlapWithPolicy
      Src: /src/nss/lib/ssl/sslsock.c:2817,1
    - Dst: PR_MAX
      Src: /src/nss/lib/ssl/sslsock.c:2825,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - protocolVariant
    - vrange
    argTypes:
    - SSLProtocolVariant
    - SSLVersionRange*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2829
      start: 2788
    functionDepth: 3
    functionLinenumber: 2788
    functionLinenumberEnd: 2829
    functionName: SSL_VersionRangeGetSupported
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 4
    functionsReached:
    - PORT_SetError
    - ssl3_CreateOverlapWithPolicy
    - PR_MAX
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSL_VersionRangeGetSupported(SSLProtocolVariant protocolVariant,\n
      \                            SSLVersionRange *vrange)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:2838,1
    - Dst: VERSIONS_DEFAULTS
      Src: /src/nss/lib/ssl/sslsock.c:2842,1
    - Dst: ssl3_CreateOverlapWithPolicy
      Src: /src/nss/lib/ssl/sslsock.c:2843,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - protocolVariant
    - vrange
    argTypes:
    - SSLProtocolVariant
    - SSLVersionRange*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2844
      start: 2831
    functionDepth: 3
    functionLinenumber: 2831
    functionLinenumberEnd: 2844
    functionName: SSL_VersionRangeGetDefault
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    - VERSIONS_DEFAULTS
    - ssl3_CreateOverlapWithPolicy
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSL_VersionRangeGetDefault(SSLProtocolVariant protocolVariant,\n
      \                          SSLVersionRange *vrange)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - vrange
    argTypes:
    - SSLVersionRange*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2851
      start: 2846
    functionDepth: 0
    functionLinenumber: 2846
    functionLinenumberEnd: 2851
    functionName: ssl3_HasConflictingSSLVersions
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool ssl3_HasConflictingSSLVersions(const SSLVersionRange *vrange)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_VersionIsSupportedByCode
      Src: /src/nss/lib/ssl/sslsock.c:2860,1
    - Dst: ssl3_VersionIsSupportedByCode
      Src: /src/nss/lib/ssl/sslsock.c:2861,1
    - Dst: ssl3_HasConflictingSSLVersions
      Src: /src/nss/lib/ssl/sslsock.c:2862,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:2863,1
    - Dst: ssl3_CreateOverlapWithPolicy
      Src: /src/nss/lib/ssl/sslsock.c:2871,1
    - Dst: PR_MAX
      Src: /src/nss/lib/ssl/sslsock.c:2878,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - protocolVariant
    - vrange
    argTypes:
    - SSLProtocolVariant
    - SSLVersionRange*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2882
      start: 2853
    functionDepth: 3
    functionLinenumber: 2853
    functionLinenumberEnd: 2882
    functionName: ssl3_CheckRangeValidAndConstrainByPolicy
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - ssl3_CreateOverlapWithPolicy
    - ssl3_HasConflictingSSLVersions
    - PORT_SetError
    - ssl3_VersionIsSupportedByCode
    - PR_MAX
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_CheckRangeValidAndConstrainByPolicy(SSLProtocolVariant
      protocolVariant,\n                                         SSLVersionRange *vrange)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:2892,1
    - Dst: ssl3_CheckRangeValidAndConstrainByPolicy
      Src: /src/nss/lib/ssl/sslsock.c:2897,1
    - Dst: VERSIONS_DEFAULTS
      Src: /src/nss/lib/ssl/sslsock.c:2902,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - protocolVariant
    - vrange
    argTypes:
    - SSLProtocolVariant
    - SSLVersionRange*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2904
      start: 2884
    functionDepth: 4
    functionLinenumber: 2884
    functionLinenumberEnd: 2904
    functionName: SSL_VersionRangeSetDefault
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - VERSIONS_DEFAULTS
    - ssl3_CheckRangeValidAndConstrainByPolicy
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSL_VersionRangeSetDefault(SSLProtocolVariant protocolVariant,\n
      \                          const SSLVersionRange *vrange)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslsock.c:2909,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsock.c:2912,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsock.c:2913,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:2918,1
    - Dst: ssl_Get1stHandshakeLock
      Src: /src/nss/lib/ssl/sslsock.c:2922,1
    - Dst: ssl_GetSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsock.c:2923,1
    - Dst: ssl_ReleaseSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsock.c:2927,1
    - Dst: ssl_Release1stHandshakeLock
      Src: /src/nss/lib/ssl/sslsock.c:2928,1
    - Dst: ssl3_CreateOverlapWithPolicy
      Src: /src/nss/lib/ssl/sslsock.c:2930,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - fd
    - vrange
    argTypes:
    - PRFileDesc*
    - SSLVersionRange*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2931
      start: 2906
    functionDepth: 3
    functionLinenumber: 2906
    functionLinenumberEnd: 2931
    functionName: SSL_VersionRangeGet
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - ssl3_CreateOverlapWithPolicy
    - ssl_GetSSL3HandshakeLock
    - SSL_GETPID
    - ssl_ReleaseSSL3HandshakeLock
    - ssl_Get1stHandshakeLock
    - PORT_SetError
    - SSL_DBG
    - ssl_Release1stHandshakeLock
    - ssl_FindSocket
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSL_VersionRangeGet(PRFileDesc *fd, SSLVersionRange *vrange)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:2941,1
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslsock.c:2945,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsock.c:2947,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsock.c:2948,1
    - Dst: ssl3_CheckRangeValidAndConstrainByPolicy
      Src: /src/nss/lib/ssl/sslsock.c:2953,1
    - Dst: ssl_Get1stHandshakeLock
      Src: /src/nss/lib/ssl/sslsock.c:2958,1
    - Dst: ssl_GetSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsock.c:2959,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:2963,1
    - Dst: ssl_ReleaseSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsock.c:2964,1
    - Dst: ssl_Release1stHandshakeLock
      Src: /src/nss/lib/ssl/sslsock.c:2965,1
    - Dst: ssl_ReleaseSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsock.c:2971,1
    - Dst: ssl_Release1stHandshakeLock
      Src: /src/nss/lib/ssl/sslsock.c:2972,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - fd
    - vrange
    argTypes:
    - PRFileDesc*
    - SSLVersionRange*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2975
      start: 2933
    functionDepth: 4
    functionLinenumber: 2933
    functionLinenumberEnd: 2975
    functionName: SSL_VersionRangeSet
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 3
    functionsReached:
    - ssl3_CheckRangeValidAndConstrainByPolicy
    - ssl_GetSSL3HandshakeLock
    - SSL_GETPID
    - ssl_ReleaseSSL3HandshakeLock
    - ssl_Get1stHandshakeLock
    - PORT_SetError
    - SSL_DBG
    - ssl_Release1stHandshakeLock
    - ssl_FindSocket
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSL_VersionRangeSet(PRFileDesc *fd, const SSLVersionRange
      *vrange)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslsock.c:2980,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsock.c:2984,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsock.c:2985,1
    - Dst: ssl3_VersionIsSupported
      Src: /src/nss/lib/ssl/sslsock.c:2989,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:2990,1
    - Dst: ssl_Get1stHandshakeLock
      Src: /src/nss/lib/ssl/sslsock.c:2994,1
    - Dst: ssl_GetSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsock.c:2995,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:2998,1
    - Dst: ssl_ReleaseSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsock.c:3005,1
    - Dst: ssl_Release1stHandshakeLock
      Src: /src/nss/lib/ssl/sslsock.c:3006,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - fd
    - version
    argTypes:
    - PRFileDesc*
    - PRUint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3009
      start: 2977
    functionDepth: 4
    functionLinenumber: 2977
    functionLinenumberEnd: 3009
    functionName: SSL_SetDowngradeCheckVersion
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - ssl_GetSSL3HandshakeLock
    - SSL_GETPID
    - ssl_ReleaseSSL3HandshakeLock
    - ssl_Get1stHandshakeLock
    - PORT_SetError
    - SSL_DBG
    - ssl_Release1stHandshakeLock
    - ssl_FindSocket
    - ssl3_VersionIsSupported
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSL_SetDowngradeCheckVersion(PRFileDesc *fd, PRUint16 version)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslsock.c:3014,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsock.c:3017,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsock.c:3018,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:3023,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - fd
    argTypes:
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3028
      start: 3011
    functionDepth: 2
    functionLinenumber: 3011
    functionLinenumberEnd: 3028
    functionName: SSL_PeerStapledOCSPResponses
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 3
    functionsReached:
    - ssl_FindSocket
    - PORT_SetError
    - SSL_GETPID
    - SSL_DBG
    linkageType: ''
    returnType: SECItemArray
    signature: 'SECItemArray *

      SSL_PeerStapledOCSPResponses(PRFileDesc *fd)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ssl_GetPrivate
      Src: /src/nss/lib/ssl/sslsock.c:3044,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsock.c:3046,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsock.c:3046,1
    - Dst: SSL_LOCK_READER
      Src: /src/nss/lib/ssl/sslsock.c:3051,1
    - Dst: SSL_LOCK_WRITER
      Src: /src/nss/lib/ssl/sslsock.c:3052,1
    - Dst: ssl_Get1stHandshakeLock
      Src: /src/nss/lib/ssl/sslsock.c:3053,1
    - Dst: ssl_GetSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsock.c:3054,1
    - Dst: PRFileDesc*::methods::accept
      Src: /src/nss/lib/ssl/sslsock.c:3061,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsock.c:3063,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsock.c:3064,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/sslsock.c:3064,1
    - Dst: ssl_DupSocket
      Src: /src/nss/lib/ssl/sslsock.c:3067,1
    - Dst: ssl_ReleaseSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsock.c:3070,1
    - Dst: ssl_Release1stHandshakeLock
      Src: /src/nss/lib/ssl/sslsock.c:3071,1
    - Dst: SSL_UNLOCK_WRITER
      Src: /src/nss/lib/ssl/sslsock.c:3072,1
    - Dst: SSL_UNLOCK_READER
      Src: /src/nss/lib/ssl/sslsock.c:3073,1
    - Dst: ssl_PushIOLayer
      Src: /src/nss/lib/ssl/sslsock.c:3079,1
    - Dst: ssl_FreeSocket
      Src: /src/nss/lib/ssl/sslsock.c:3100,1
    - Dst: PR_Close
      Src: /src/nss/lib/ssl/sslsock.c:3102,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 47
    argCount: 3
    argNames:
    - fd
    - sockaddr
    - timeout
    argTypes:
    - PRFileDesc*
    - PRNetAddr*
    - PRIntervalTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3104
      start: 3035
    functionDepth: 4
    functionLinenumber: 3035
    functionLinenumberEnd: 3104
    functionName: PR_CALLBACK::ssl_Accept
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - SSL_UNLOCK_READER
    - PRFileDesc*::methods::accept
    - ssl_GetSSL3HandshakeLock
    - SSL_LOCK_WRITER
    - ssl_DupSocket
    - SSL_GETPID
    - ssl_GetPrivate
    - PORT_GetError
    - ssl_Get1stHandshakeLock
    - ssl_ReleaseSSL3HandshakeLock
    - SSL_UNLOCK_WRITER
    - SSL_DBG
    - SSL_LOCK_READER
    - ssl_PushIOLayer
    - ssl_Release1stHandshakeLock
    - PR_Close
    - ssl_FreeSocket
    linkageType: ''
    returnType: PRFileDesc
    signature: 'PRFileDesc *PR_CALLBACK

      ssl_Accept(PRFileDesc *fd, PRNetAddr *sockaddr, PRIntervalTime timeout)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_GetPrivate
      Src: /src/nss/lib/ssl/sslsock.c:3112,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsock.c:3114,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsock.c:3114,1
    - Dst: SSL_LOCK_READER
      Src: /src/nss/lib/ssl/sslsock.c:3119,1
    - Dst: SSL_LOCK_WRITER
      Src: /src/nss/lib/ssl/sslsock.c:3120,1
    - Dst: SSL_UNLOCK_WRITER
      Src: /src/nss/lib/ssl/sslsock.c:3125,1
    - Dst: SSL_UNLOCK_READER
      Src: /src/nss/lib/ssl/sslsock.c:3126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - fd
    - sockaddr
    - timeout
    argTypes:
    - PRFileDesc*
    - PRNetAddr*
    - PRIntervalTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3129
      start: 3106
    functionDepth: 1
    functionLinenumber: 3106
    functionLinenumberEnd: 3129
    functionName: PR_CALLBACK::ssl_Connect
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - SSL_UNLOCK_READER
    - SSL_LOCK_WRITER
    - SSL_GETPID
    - ssl_GetPrivate
    - SSL_UNLOCK_WRITER
    - SSL_DBG
    - SSL_LOCK_READER
    linkageType: ''
    returnType: PRStatus
    signature: 'PRStatus PR_CALLBACK

      ssl_Connect(PRFileDesc *fd, const PRNetAddr *sockaddr, PRIntervalTime timeout)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_GetPrivate
      Src: /src/nss/lib/ssl/sslsock.c:3134,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsock.c:3138,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsock.c:3138,1
    - Dst: SSL_LOCK_READER
      Src: /src/nss/lib/ssl/sslsock.c:3141,1
    - Dst: SSL_LOCK_WRITER
      Src: /src/nss/lib/ssl/sslsock.c:3142,1
    - Dst: SSL_UNLOCK_WRITER
      Src: /src/nss/lib/ssl/sslsock.c:3146,1
    - Dst: SSL_UNLOCK_READER
      Src: /src/nss/lib/ssl/sslsock.c:3147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - fd
    - addr
    argTypes:
    - PRFileDesc*
    - PRNetAddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3149
      start: 3131
    functionDepth: 1
    functionLinenumber: 3131
    functionLinenumberEnd: 3149
    functionName: PR_CALLBACK::ssl_Bind
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - SSL_UNLOCK_READER
    - SSL_LOCK_WRITER
    - SSL_GETPID
    - ssl_GetPrivate
    - SSL_UNLOCK_WRITER
    - SSL_DBG
    - SSL_LOCK_READER
    linkageType: ''
    returnType: PRStatus
    signature: 'PRStatus PR_CALLBACK

      ssl_Bind(PRFileDesc *fd, const PRNetAddr *addr)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_GetPrivate
      Src: /src/nss/lib/ssl/sslsock.c:3154,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsock.c:3158,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsock.c:3158,1
    - Dst: SSL_LOCK_READER
      Src: /src/nss/lib/ssl/sslsock.c:3161,1
    - Dst: SSL_LOCK_WRITER
      Src: /src/nss/lib/ssl/sslsock.c:3162,1
    - Dst: SSL_UNLOCK_WRITER
      Src: /src/nss/lib/ssl/sslsock.c:3166,1
    - Dst: SSL_UNLOCK_READER
      Src: /src/nss/lib/ssl/sslsock.c:3167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - fd
    - backlog
    argTypes:
    - PRFileDesc*
    - PRIntn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3169
      start: 3151
    functionDepth: 1
    functionLinenumber: 3151
    functionLinenumberEnd: 3169
    functionName: PR_CALLBACK::ssl_Listen
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - SSL_UNLOCK_READER
    - SSL_LOCK_WRITER
    - SSL_GETPID
    - ssl_GetPrivate
    - SSL_UNLOCK_WRITER
    - SSL_DBG
    - SSL_LOCK_READER
    linkageType: ''
    returnType: PRStatus
    signature: 'PRStatus PR_CALLBACK

      ssl_Listen(PRFileDesc *fd, PRIntn backlog)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ssl_GetPrivate
      Src: /src/nss/lib/ssl/sslsock.c:3174,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsock.c:3178,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsock.c:3178,1
    - Dst: SSL_LOCK_READER
      Src: /src/nss/lib/ssl/sslsock.c:3182,1
    - Dst: SSL_LOCK_WRITER
      Src: /src/nss/lib/ssl/sslsock.c:3185,1
    - Dst: SSL_UNLOCK_WRITER
      Src: /src/nss/lib/ssl/sslsock.c:3191,1
    - Dst: SSL_UNLOCK_READER
      Src: /src/nss/lib/ssl/sslsock.c:3194,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 2
    argNames:
    - fd
    - how
    argTypes:
    - PRFileDesc*
    - PRIntn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3197
      start: 3171
    functionDepth: 1
    functionLinenumber: 3171
    functionLinenumberEnd: 3197
    functionName: PR_CALLBACK::ssl_Shutdown
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - SSL_UNLOCK_READER
    - SSL_LOCK_WRITER
    - SSL_GETPID
    - ssl_GetPrivate
    - SSL_UNLOCK_WRITER
    - SSL_DBG
    - SSL_LOCK_READER
    linkageType: ''
    returnType: PRStatus
    signature: 'PRStatus PR_CALLBACK

      ssl_Shutdown(PRFileDesc *fd, PRIntn how)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_GetPrivate
      Src: /src/nss/lib/ssl/sslsock.c:3205,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsock.c:3207,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsock.c:3207,1
    - Dst: SSL_LOCK_READER
      Src: /src/nss/lib/ssl/sslsock.c:3212,1
    - Dst: SSL_LOCK_WRITER
      Src: /src/nss/lib/ssl/sslsock.c:3213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - fd
    argTypes:
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3224
      start: 3199
    functionDepth: 1
    functionLinenumber: 3199
    functionLinenumberEnd: 3224
    functionName: PR_CALLBACK::ssl_Close
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - SSL_LOCK_WRITER
    - SSL_GETPID
    - ssl_GetPrivate
    - SSL_DBG
    - SSL_LOCK_READER
    linkageType: ''
    returnType: PRStatus
    signature: 'PRStatus PR_CALLBACK

      ssl_Close(PRFileDesc *fd)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ssl_GetPrivate
      Src: /src/nss/lib/ssl/sslsock.c:3233,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsock.c:3235,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsock.c:3235,1
    - Dst: SSL_LOCK_READER
      Src: /src/nss/lib/ssl/sslsock.c:3238,1
    - Dst: SSL_UNLOCK_READER
      Src: /src/nss/lib/ssl/sslsock.c:3243,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - fd
    - buf
    - len
    - flags
    - timeout
    argTypes:
    - PRFileDesc*
    - void*
    - PRInt32
    - PRIntn
    - PRIntervalTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3245
      start: 3226
    functionDepth: 1
    functionLinenumber: 3226
    functionLinenumberEnd: 3245
    functionName: PR_CALLBACK::ssl_Recv
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - SSL_UNLOCK_READER
    - SSL_GETPID
    - ssl_GetPrivate
    - SSL_DBG
    - SSL_LOCK_READER
    linkageType: ''
    returnType: int
    signature: "int PR_CALLBACK\nssl_Recv(PRFileDesc *fd, void *buf, PRInt32 len,
      PRIntn flags,\n         PRIntervalTime timeout)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ssl_GetPrivate
      Src: /src/nss/lib/ssl/sslsock.c:3254,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsock.c:3256,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsock.c:3256,1
    - Dst: SSL_LOCK_WRITER
      Src: /src/nss/lib/ssl/sslsock.c:3259,1
    - Dst: SSL_UNLOCK_WRITER
      Src: /src/nss/lib/ssl/sslsock.c:3264,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - fd
    - buf
    - len
    - flags
    - timeout
    argTypes:
    - PRFileDesc*
    - void*
    - PRInt32
    - PRIntn
    - PRIntervalTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3266
      start: 3247
    functionDepth: 1
    functionLinenumber: 3247
    functionLinenumberEnd: 3266
    functionName: PR_CALLBACK::ssl_Send
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - SSL_LOCK_WRITER
    - SSL_GETPID
    - ssl_GetPrivate
    - SSL_UNLOCK_WRITER
    - SSL_DBG
    linkageType: ''
    returnType: int
    signature: "int PR_CALLBACK\nssl_Send(PRFileDesc *fd, const void *buf, PRInt32
      len, PRIntn flags,\n         PRIntervalTime timeout)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ssl_GetPrivate
      Src: /src/nss/lib/ssl/sslsock.c:3274,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsock.c:3276,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsock.c:3276,1
    - Dst: SSL_LOCK_READER
      Src: /src/nss/lib/ssl/sslsock.c:3279,1
    - Dst: SSL_UNLOCK_READER
      Src: /src/nss/lib/ssl/sslsock.c:3284,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - fd
    - buf
    - len
    argTypes:
    - PRFileDesc*
    - void*
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3286
      start: 3268
    functionDepth: 1
    functionLinenumber: 3268
    functionLinenumberEnd: 3286
    functionName: PR_CALLBACK::ssl_Read
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - SSL_UNLOCK_READER
    - SSL_GETPID
    - ssl_GetPrivate
    - SSL_DBG
    - SSL_LOCK_READER
    linkageType: ''
    returnType: int
    signature: 'int PR_CALLBACK

      ssl_Read(PRFileDesc *fd, void *buf, PRInt32 len)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ssl_GetPrivate
      Src: /src/nss/lib/ssl/sslsock.c:3294,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsock.c:3296,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsock.c:3296,1
    - Dst: SSL_LOCK_WRITER
      Src: /src/nss/lib/ssl/sslsock.c:3299,1
    - Dst: SSL_UNLOCK_WRITER
      Src: /src/nss/lib/ssl/sslsock.c:3304,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - fd
    - buf
    - len
    argTypes:
    - PRFileDesc*
    - void*
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3306
      start: 3288
    functionDepth: 1
    functionLinenumber: 3288
    functionLinenumberEnd: 3306
    functionName: PR_CALLBACK::ssl_Write
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - SSL_LOCK_WRITER
    - SSL_GETPID
    - ssl_GetPrivate
    - SSL_UNLOCK_WRITER
    - SSL_DBG
    linkageType: ''
    returnType: int
    signature: 'int PR_CALLBACK

      ssl_Write(PRFileDesc *fd, const void *buf, PRInt32 len)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_GetPrivate
      Src: /src/nss/lib/ssl/sslsock.c:3313,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsock.c:3315,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsock.c:3315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - fd
    - addr
    argTypes:
    - PRFileDesc*
    - PRNetAddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3319
      start: 3308
    functionDepth: 1
    functionLinenumber: 3308
    functionLinenumberEnd: 3319
    functionName: PR_CALLBACK::ssl_GetPeerName
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - SSL_GETPID
    - ssl_GetPrivate
    - SSL_DBG
    linkageType: ''
    returnType: PRStatus
    signature: 'PRStatus PR_CALLBACK

      ssl_GetPeerName(PRFileDesc *fd, PRNetAddr *addr)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memset
      Src: /src/nss/lib/ssl/sslsock.c:3332,1
    - Dst: PRFileDesc*::methods::getpeername
      Src: /src/nss/lib/ssl/sslsock.c:3333,1
    - Dst: PR_ConvertIPv4AddrToIPv6
      Src: /src/nss/lib/ssl/sslsock.c:3339,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:3345,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3349
      start: 3323
    functionDepth: 1
    functionLinenumber: 3323
    functionLinenumberEnd: 3349
    functionName: ssl_GetPeerInfo
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - PORT_Memset
    - PRFileDesc*::methods::getpeername
    - PORT_SetError
    - PR_ConvertIPv4AddrToIPv6
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl_GetPeerInfo(sslSocket *ss)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_GetPrivate
      Src: /src/nss/lib/ssl/sslsock.c:3356,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsock.c:3358,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsock.c:3358,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - fd
    - name
    argTypes:
    - PRFileDesc*
    - PRNetAddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3362
      start: 3351
    functionDepth: 1
    functionLinenumber: 3351
    functionLinenumberEnd: 3362
    functionName: PR_CALLBACK::ssl_GetSockName
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - SSL_GETPID
    - ssl_GetPrivate
    - SSL_DBG
    linkageType: ''
    returnType: PRStatus
    signature: 'PRStatus PR_CALLBACK

      ssl_GetSockName(PRFileDesc *fd, PRNetAddr *name)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslsock.c:3369,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsock.c:3371,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsock.c:3372,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/sslsock.c:3377,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/ssl/sslsock.c:3381,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - fd
    - peerID
    argTypes:
    - PRFileDesc*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3383
      start: 3364
    functionDepth: 2
    functionLinenumber: 3364
    functionLinenumberEnd: 3383
    functionName: SSL_SetSockPeerID
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 1
    functionsReached:
    - PORT_Free
    - SSL_GETPID
    - SSL_DBG
    - ssl_FindSocket
    - PORT_Strdup
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSL_SetSockPeerID(PRFileDesc *fd, const char *peerID)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: ssl_GetPrivate
      Src: /src/nss/lib/ssl/sslsock.c:3395,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsock.c:3397,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsock.c:3398,1
    - Dst: ssl_DefGetpeername
      Src: /src/nss/lib/ssl/sslsock.c:3407,1
    - Dst: SSL_DataPending
      Src: /src/nss/lib/ssl/sslsock.c:3449,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/sslsock.c:3484,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsock.c:3485,1
    - Dst: PRFileDesc*::lower::methods::poll
      Src: /src/nss/lib/ssl/sslsock.c:3490,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 64
    argCount: 3
    argNames:
    - fd
    - how_flags
    - p_out_flags
    argTypes:
    - PRFileDesc*
    - PRInt16
    - PRInt16*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3507
      start: 3387
    functionDepth: 1
    functionLinenumber: 3387
    functionLinenumberEnd: 3507
    functionName: PR_CALLBACK::ssl_Poll
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - SSL_DataPending
    - SSL_TRC
    - SSL_GETPID
    - ssl_GetPrivate
    - ssl_DefGetpeername
    - SSL_DBG
    - PRFileDesc*::lower::methods::poll
    linkageType: ''
    returnType: PRInt16
    signature: 'PRInt16 PR_CALLBACK

      ssl_Poll(PRFileDesc *fd, PRInt16 how_flags, PRInt16 *p_out_flags)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRFileDesc*::methods::sendfile
      Src: /src/nss/lib/ssl/sslsock.c:3524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 6
    argNames:
    - sd
    - fd
    - headers
    - hlen
    - flags
    - timeout
    argTypes:
    - PRFileDesc*
    - PRFileDesc*
    - void*
    - PRInt32
    - PRTransmitFileFlags
    - PRIntervalTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3525
      start: 3509
    functionDepth: 0
    functionLinenumber: 3509
    functionLinenumberEnd: 3525
    functionName: PR_CALLBACK::ssl_TransmitFile
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - PRFileDesc*::methods::sendfile
    linkageType: ''
    returnType: PRInt32
    signature: "PRInt32 PR_CALLBACK\nssl_TransmitFile(PRFileDesc *sd, PRFileDesc *fd,\n
      \                const void *headers, PRInt32 hlen,\n                 PRTransmitFileFlags
      flags, PRIntervalTime timeout)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetSocketOption
      Src: /src/nss/lib/ssl/sslsock.c:3535,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - fd
    argTypes:
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3539
      start: 3527
    functionDepth: 1
    functionLinenumber: 3527
    functionLinenumberEnd: 3539
    functionName: ssl_FdIsBlocking
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - PR_GetSocketOption
    linkageType: ''
    returnType: PRBool
    signature: PRBool ssl_FdIsBlocking(PRFileDesc *fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FdIsBlocking
      Src: /src/nss/lib/ssl/sslsock.c:3544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3545
      start: 3541
    functionDepth: 2
    functionLinenumber: 3541
    functionLinenumberEnd: 3545
    functionName: ssl_SocketIsBlocking
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - ssl_FdIsBlocking
    linkageType: ''
    returnType: PRBool
    signature: PRBool ssl_SocketIsBlocking(sslSocket *ss)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:3566,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:3570,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:3575,1
    - Dst: ssl_FdIsBlocking
      Src: /src/nss/lib/ssl/sslsock.c:3579,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/sslsock.c:3605,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - fd
    - iov
    - vectors
    - timeout
    argTypes:
    - PRFileDesc*
    - PRIOVec*
    - PRInt32
    - PRIntervalTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3607
      start: 3550
    functionDepth: 2
    functionLinenumber: 3550
    functionLinenumberEnd: 3607
    functionName: PR_CALLBACK::ssl_WriteV
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - ssl_FdIsBlocking
    - PR_ASSERT
    linkageType: ''
    returnType: PRInt32
    signature: "PRInt32 PR_CALLBACK\nssl_WriteV(PRFileDesc *fd, const PRIOVec *iov,
      PRInt32 vectors,\n           PRIntervalTime timeout)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - rv
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3604
      start: 3593
    functionDepth: 0
    functionLinenumber: 3593
    functionLinenumberEnd: 3604
    functionName: HANDLE_ERR
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HANDLE_ERR(rv, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - bfr
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3614
      start: 3608
    functionDepth: 0
    functionLinenumber: 3608
    functionLinenumberEnd: 3614
    functionName: SEND
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SEND(bfr, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsock.c:3703,1
    - Dst: PR_SetError
      Src: /src/nss/lib/ssl/sslsock.c:3704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fd
    argTypes:
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3706
      start: 3700
    functionDepth: 1
    functionLinenumber: 3700
    functionLinenumberEnd: 3706
    functionName: PR_CALLBACK::ssl_Available
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PR_SetError
    linkageType: ''
    returnType: PRInt32
    signature: 'PRInt32 PR_CALLBACK

      ssl_Available(PRFileDesc *fd)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsock.c:3713,1
    - Dst: PR_SetError
      Src: /src/nss/lib/ssl/sslsock.c:3714,1
    - Dst: LL_I2L
      Src: /src/nss/lib/ssl/sslsock.c:3715,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - fd
    argTypes:
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3717
      start: 3708
    functionDepth: 1
    functionLinenumber: 3708
    functionLinenumberEnd: 3717
    functionName: PR_CALLBACK::ssl_Available64
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PR_SetError
    - LL_I2L
    linkageType: ''
    returnType: PRInt64
    signature: 'PRInt64 PR_CALLBACK

      ssl_Available64(PRFileDesc *fd)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsock.c:3722,1
    - Dst: PR_SetError
      Src: /src/nss/lib/ssl/sslsock.c:3723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fd
    argTypes:
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3725
      start: 3719
    functionDepth: 1
    functionLinenumber: 3719
    functionLinenumberEnd: 3725
    functionName: PR_CALLBACK::ssl_FSync
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PR_SetError
    linkageType: ''
    returnType: PRStatus
    signature: 'PRStatus PR_CALLBACK

      ssl_FSync(PRFileDesc *fd)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsock.c:3730,1
    - Dst: PR_SetError
      Src: /src/nss/lib/ssl/sslsock.c:3731,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - fd
    - offset
    - how
    argTypes:
    - PRFileDesc*
    - PRInt32
    - PRSeekWhence
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3733
      start: 3727
    functionDepth: 1
    functionLinenumber: 3727
    functionLinenumberEnd: 3733
    functionName: PR_CALLBACK::ssl_Seek
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PR_SetError
    linkageType: ''
    returnType: PRInt32
    signature: 'PRInt32 PR_CALLBACK

      ssl_Seek(PRFileDesc *fd, PRInt32 offset, PRSeekWhence how)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsock.c:3740,1
    - Dst: PR_SetError
      Src: /src/nss/lib/ssl/sslsock.c:3741,1
    - Dst: LL_I2L
      Src: /src/nss/lib/ssl/sslsock.c:3742,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - fd
    - offset
    - how
    argTypes:
    - PRFileDesc*
    - PRInt64
    - PRSeekWhence
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3744
      start: 3735
    functionDepth: 1
    functionLinenumber: 3735
    functionLinenumberEnd: 3744
    functionName: PR_CALLBACK::ssl_Seek64
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PR_SetError
    - LL_I2L
    linkageType: ''
    returnType: PRInt64
    signature: 'PRInt64 PR_CALLBACK

      ssl_Seek64(PRFileDesc *fd, PRInt64 offset, PRSeekWhence how)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsock.c:3749,1
    - Dst: PR_SetError
      Src: /src/nss/lib/ssl/sslsock.c:3750,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - fd
    - info
    argTypes:
    - PRFileDesc*
    - PRFileInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3752
      start: 3746
    functionDepth: 1
    functionLinenumber: 3746
    functionLinenumberEnd: 3752
    functionName: PR_CALLBACK::ssl_FileInfo
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PR_SetError
    linkageType: ''
    returnType: PRStatus
    signature: 'PRStatus PR_CALLBACK

      ssl_FileInfo(PRFileDesc *fd, PRFileInfo *info)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsock.c:3757,1
    - Dst: PR_SetError
      Src: /src/nss/lib/ssl/sslsock.c:3758,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - fd
    - info
    argTypes:
    - PRFileDesc*
    - PRFileInfo64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3760
      start: 3754
    functionDepth: 1
    functionLinenumber: 3754
    functionLinenumberEnd: 3760
    functionName: PR_CALLBACK::ssl_FileInfo64
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PR_SetError
    linkageType: ''
    returnType: PRStatus
    signature: 'PRStatus PR_CALLBACK

      ssl_FileInfo64(PRFileDesc *fd, PRFileInfo64 *info)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsock.c:3766,1
    - Dst: PR_SetError
      Src: /src/nss/lib/ssl/sslsock.c:3767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - fd
    - buf
    - amount
    - flags
    - addr
    - timeout
    argTypes:
    - PRFileDesc*
    - void*
    - PRInt32
    - PRIntn
    - PRNetAddr*
    - PRIntervalTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3769
      start: 3762
    functionDepth: 1
    functionLinenumber: 3762
    functionLinenumberEnd: 3769
    functionName: PR_CALLBACK::ssl_RecvFrom
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PR_SetError
    linkageType: ''
    returnType: PRInt32
    signature: "PRInt32 PR_CALLBACK\nssl_RecvFrom(PRFileDesc *fd, void *buf, PRInt32
      amount, PRIntn flags,\n             PRNetAddr *addr, PRIntervalTime timeout)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsock.c:3775,1
    - Dst: PR_SetError
      Src: /src/nss/lib/ssl/sslsock.c:3776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - fd
    - buf
    - amount
    - flags
    - addr
    - timeout
    argTypes:
    - PRFileDesc*
    - void*
    - PRInt32
    - PRIntn
    - PRNetAddr*
    - PRIntervalTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3778
      start: 3771
    functionDepth: 1
    functionLinenumber: 3771
    functionLinenumberEnd: 3778
    functionName: PR_CALLBACK::ssl_SendTo
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PR_SetError
    linkageType: ''
    returnType: PRInt32
    signature: "PRInt32 PR_CALLBACK\nssl_SendTo(PRFileDesc *fd, const void *buf, PRInt32
      amount, PRIntn flags,\n           const PRNetAddr *addr, PRIntervalTime timeout)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetDefaultIOMethods
      Src: /src/nss/lib/ssl/sslsock.c:3825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3859
      start: 3821
    functionDepth: 1
    functionLinenumber: 3821
    functionLinenumberEnd: 3859
    functionName: ssl_SetupIOMethods
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - PR_GetDefaultIOMethods
    linkageType: ''
    returnType: void
    signature: void ssl_SetupIOMethods(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetUniqueIdentity
      Src: /src/nss/lib/ssl/sslsock.c:3866,1
    - Dst: ssl_SetupIOMethods
      Src: /src/nss/lib/ssl/sslsock.c:3867,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3869
      start: 3863
    functionDepth: 2
    functionLinenumber: 3863
    functionLinenumberEnd: 3869
    functionName: ssl_InitIOLayer
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - ssl_SetupIOMethods
    - PR_GetUniqueIdentity
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus ssl_InitIOLayer(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PR_CallOnce
      Src: /src/nss/lib/ssl/sslsock.c:3877,1
    - Dst: PR_CreateIOLayerStub
      Src: /src/nss/lib/ssl/sslsock.c:3884,1
    - Dst: PR_PushIOLayer
      Src: /src/nss/lib/ssl/sslsock.c:3900,1
    - Dst: PRFileDesc*::dtor
      Src: /src/nss/lib/ssl/sslsock.c:3909,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - ns
    - stack
    - id
    argTypes:
    - sslSocket*
    - PRFileDesc*
    - PRDescIdentity
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3912
      start: 3871
    functionDepth: 1
    functionLinenumber: 3871
    functionLinenumberEnd: 3912
    functionName: ssl_PushIOLayer
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 2
    functionsReached:
    - PR_CallOnce
    - PR_PushIOLayer
    - PR_CreateIOLayerStub
    - PRFileDesc*::dtor
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus ssl_PushIOLayer(sslSocket *ns, PRFileDesc *stack, PRDescIdentity
      id)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/sslsock.c:3918,1
    - Dst: PZ_NewMonitor
      Src: /src/nss/lib/ssl/sslsock.c:3919,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/sslsock.c:3923,1
    - Dst: PZ_NewMonitor
      Src: /src/nss/lib/ssl/sslsock.c:3924,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/sslsock.c:3928,1
    - Dst: NSSRWLock_New
      Src: /src/nss/lib/ssl/sslsock.c:3929,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/sslsock.c:3933,1
    - Dst: PZ_NewMonitor
      Src: /src/nss/lib/ssl/sslsock.c:3934,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/sslsock.c:3938,1
    - Dst: PZ_NewMonitor
      Src: /src/nss/lib/ssl/sslsock.c:3939,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/sslsock.c:3944,1
    - Dst: PZ_NewLock
      Src: /src/nss/lib/ssl/sslsock.c:3945,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/sslsock.c:3949,1
    - Dst: PZ_NewLock
      Src: /src/nss/lib/ssl/sslsock.c:3950,1
    - Dst: ssl_DestroyLocks
      Src: /src/nss/lib/ssl/sslsock.c:3956,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3958
      start: 3915
    functionDepth: 2
    functionLinenumber: 3915
    functionLinenumberEnd: 3958
    functionName: ssl_MakeLocks
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 1
    functionsReached:
    - NSSRWLock_New
    - ssl_DestroyLocks
    - PR_ASSERT
    - PZ_NewMonitor
    - PZ_NewLock
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl_MakeLocks(sslSocket *ss)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3965
      start: 3964
    functionDepth: 0
    functionLinenumber: 3964
    functionLinenumberEnd: 3965
    functionName: LOWER
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOWER(x)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/ssl/sslsock.c:3973,1
    - Dst: fopen
      Src: /src/nss/lib/ssl/sslsock.c:3975,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/ssl/sslsock.c:3981,1
    - Dst: atoi
      Src: /src/nss/lib/ssl/sslsock.c:3983,1
    - Dst: SSL_TRACE
      Src: /src/nss/lib/ssl/sslsock.c:3984,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/ssl/sslsock.c:3987,1
    - Dst: atoi
      Src: /src/nss/lib/ssl/sslsock.c:3989,1
    - Dst: SSL_TRACE
      Src: /src/nss/lib/ssl/sslsock.c:3990,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/ssl/sslsock.c:3995,1
    - Dst: fopen
      Src: /src/nss/lib/ssl/sslsock.c:3997,1
    - Dst: SSL_TRACE
      Src: /src/nss/lib/ssl/sslsock.c:3999,1
    - Dst: ftell
      Src: /src/nss/lib/ssl/sslsock.c:4001,1
    - Dst: fputs
      Src: /src/nss/lib/ssl/sslsock.c:4002,1
    - Dst: SSL_TRACE
      Src: /src/nss/lib/ssl/sslsock.c:4005,1
    - Dst: PR_NewLock
      Src: /src/nss/lib/ssl/sslsock.c:4006,1
    - Dst: SSL_TRACE
      Src: /src/nss/lib/ssl/sslsock.c:4008,1
    - Dst: fclose
      Src: /src/nss/lib/ssl/sslsock.c:4009,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/ssl/sslsock.c:4015,1
    - Dst: SSL_TRACE
      Src: /src/nss/lib/ssl/sslsock.c:4019,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/ssl/sslsock.c:4021,1
    - Dst: LOWER
      Src: /src/nss/lib/ssl/sslsock.c:4023,1
    - Dst: LOWER
      Src: /src/nss/lib/ssl/sslsock.c:4025,1
    - Dst: LOWER
      Src: /src/nss/lib/ssl/sslsock.c:4027,1
    - Dst: LOWER
      Src: /src/nss/lib/ssl/sslsock.c:4029,1
    - Dst: SSL_TRACE
      Src: /src/nss/lib/ssl/sslsock.c:4031,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/ssl/sslsock.c:4034,1
    - Dst: SSL_TRACE
      Src: /src/nss/lib/ssl/sslsock.c:4037,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/ssl/sslsock.c:4040,1
    - Dst: SSL_TRACE
      Src: /src/nss/lib/ssl/sslsock.c:4043,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 67
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4047
      start: 3966
    functionDepth: 1
    functionLinenumber: 3966
    functionLinenumberEnd: 4047
    functionName: ssl_SetDefaultsFromEnvironmentCallOnce
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - fclose
    - fputs
    - atoi
    - SSL_TRACE
    - PR_GetEnvSecure
    - fopen
    - PR_NewLock
    - ftell
    - LOWER
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus ssl_SetDefaultsFromEnvironmentCallOnce(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_CallOnce
      Src: /src/nss/lib/ssl/sslsock.c:4052,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4053
      start: 4049
    functionDepth: 1
    functionLinenumber: 4049
    functionLinenumberEnd: 4053
    functionName: ssl_SetDefaultsFromEnvironment
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 2
    functionsReached:
    - PR_CallOnce
    linkageType: ''
    returnType: void
    signature: void ssl_SetDefaultsFromEnvironment(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - group
    argTypes:
    - SSLNamedGroup
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4066
      start: 4055
    functionDepth: 0
    functionLinenumber: 4055
    functionLinenumberEnd: 4066
    functionName: ssl_LookupNamedGroup
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: sslNamedGroupDef
    signature: 'sslNamedGroupDef *

      ssl_LookupNamedGroup(SSLNamedGroup group)'
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - ss
    - groupDef
    argTypes:
    - sslSocket*
    - sslNamedGroupDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4084
      start: 4068
    functionDepth: 0
    functionLinenumber: 4068
    functionLinenumberEnd: 4084
    functionName: ssl_NamedGroupEnabled
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool ssl_NamedGroupEnabled(const sslSocket *ss, const sslNamedGroupDef
      *groupDef)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:4096,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/ssl/sslsock.c:4099,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - privKey
    - pubKey
    argTypes:
    - SECKEYPrivateKey*
    - SECKEYPublicKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4106
      start: 4090
    functionDepth: 1
    functionLinenumber: 4090
    functionLinenumberEnd: 4106
    functionName: ssl_NewKeyPair
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PORT_ZNew
    linkageType: ''
    returnType: sslKeyPair
    signature: 'sslKeyPair *

      ssl_NewKeyPair(SECKEYPrivateKey *privKey, SECKEYPublicKey *pubKey)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_ATOMIC_INCREMENT
      Src: /src/nss/lib/ssl/sslsock.c:4111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - keyPair
    argTypes:
    - sslKeyPair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4113
      start: 4108
    functionDepth: 1
    functionLinenumber: 4108
    functionLinenumberEnd: 4113
    functionName: ssl_GetKeyPairRef
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - PR_ATOMIC_INCREMENT
    linkageType: ''
    returnType: sslKeyPair
    signature: 'sslKeyPair *

      ssl_GetKeyPairRef(sslKeyPair *keyPair)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_ATOMIC_DECREMENT
      Src: /src/nss/lib/ssl/sslsock.c:4122,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/lib/ssl/sslsock.c:4124,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/ssl/sslsock.c:4125,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/sslsock.c:4126,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - keyPair
    argTypes:
    - sslKeyPair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4128
      start: 4115
    functionDepth: 2
    functionLinenumber: 4115
    functionLinenumberEnd: 4128
    functionName: ssl_FreeKeyPair
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - SECKEY_DestroyPrivateKey
    - PR_ATOMIC_DECREMENT
    - SECKEY_DestroyPublicKey
    linkageType: ''
    returnType: void
    signature: void ssl_FreeKeyPair(sslKeyPair *keyPair)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:4139,1
    - Dst: ssl_NewKeyPair
      Src: /src/nss/lib/ssl/sslsock.c:4143,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/ssl/sslsock.c:4148,1
    - Dst: ssl_FreeKeyPair
      Src: /src/nss/lib/ssl/sslsock.c:4150,1
    - Dst: PR_INIT_CLIST
      Src: /src/nss/lib/ssl/sslsock.c:4154,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - group
    - privKey
    - pubKey
    argTypes:
    - sslNamedGroupDef*
    - SECKEYPrivateKey*
    - SECKEYPublicKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4161
      start: 4131
    functionDepth: 3
    functionLinenumber: 4131
    functionLinenumberEnd: 4161
    functionName: ssl_NewEphemeralKeyPair
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - PORT_ZNew
    - ssl_NewKeyPair
    - ssl_FreeKeyPair
    - PORT_SetError
    - PR_INIT_CLIST
    linkageType: ''
    returnType: sslEphemeralKeyPair
    signature: "sslEphemeralKeyPair *\nssl_NewEphemeralKeyPair(const sslNamedGroupDef
      *group,\n                        SECKEYPrivateKey *privKey, SECKEYPublicKey
      *pubKey)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZNew
      Src: /src/nss/lib/ssl/sslsock.c:4168,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/ssl/sslsock.c:4175,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/sslsock.c:4177,1
    - Dst: PR_INIT_CLIST
      Src: /src/nss/lib/ssl/sslsock.c:4182,1
    - Dst: ssl_GetKeyPairRef
      Src: /src/nss/lib/ssl/sslsock.c:4184,1
    - Dst: ssl_GetKeyPairRef
      Src: /src/nss/lib/ssl/sslsock.c:4185,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - keyPair
    argTypes:
    - sslEphemeralKeyPair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4188
      start: 4163
    functionDepth: 2
    functionLinenumber: 4163
    functionLinenumberEnd: 4188
    functionName: ssl_CopyEphemeralKeyPair
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 2
    functionsReached:
    - SECITEM_DupItem
    - PORT_ZNew
    - PORT_Free
    - ssl_GetKeyPairRef
    - PR_INIT_CLIST
    linkageType: ''
    returnType: sslEphemeralKeyPair
    signature: 'sslEphemeralKeyPair *

      ssl_CopyEphemeralKeyPair(sslEphemeralKeyPair *keyPair)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FreeKeyPair
      Src: /src/nss/lib/ssl/sslsock.c:4197,1
    - Dst: ssl_FreeKeyPair
      Src: /src/nss/lib/ssl/sslsock.c:4198,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/sslsock.c:4199,1
    - Dst: PR_REMOVE_LINK
      Src: /src/nss/lib/ssl/sslsock.c:4200,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/sslsock.c:4201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - keyPair
    argTypes:
    - sslEphemeralKeyPair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4202
      start: 4190
    functionDepth: 3
    functionLinenumber: 4190
    functionLinenumberEnd: 4202
    functionName: ssl_FreeEphemeralKeyPair
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - ssl_FreeKeyPair
    - PR_REMOVE_LINK
    - SECITEM_FreeItem
    linkageType: ''
    returnType: void
    signature: void ssl_FreeEphemeralKeyPair(sslEphemeralKeyPair *keyPair)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_LookupEphemeralKeyPair
      Src: /src/nss/lib/ssl/sslsock.c:4207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ss
    - groupDef
    argTypes:
    - sslSocket*
    - sslNamedGroupDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4208
      start: 4204
    functionDepth: 1
    functionLinenumber: 4204
    functionLinenumberEnd: 4208
    functionName: ssl_HaveEphemeralKeyPair
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - ssl_LookupEphemeralKeyPair
    linkageType: ''
    returnType: PRBool
    signature: PRBool ssl_HaveEphemeralKeyPair(const sslSocket *ss, const sslNamedGroupDef
      *groupDef)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/sslsock.c:4214,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/sslsock.c:4216,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ss
    - groupDef
    argTypes:
    - sslSocket*
    - sslNamedGroupDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4223
      start: 4210
    functionDepth: 1
    functionLinenumber: 4210
    functionLinenumberEnd: 4223
    functionName: ssl_LookupEphemeralKeyPair
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 1
    functionsReached:
    - PR_NEXT_LINK
    linkageType: ''
    returnType: sslEphemeralKeyPair
    signature: 'sslEphemeralKeyPair *

      ssl_LookupEphemeralKeyPair(sslSocket *ss, const sslNamedGroupDef *groupDef)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/lib/ssl/sslsock.c:4228,1
    - Dst: PR_LIST_TAIL
      Src: /src/nss/lib/ssl/sslsock.c:4229,1
    - Dst: ssl_FreeEphemeralKeyPair
      Src: /src/nss/lib/ssl/sslsock.c:4230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4232
      start: 4225
    functionDepth: 4
    functionLinenumber: 4225
    functionLinenumberEnd: 4232
    functionName: ssl_FreeEphemeralKeyPairs
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 2
    functionsReached:
    - PR_LIST_TAIL
    - ssl_FreeEphemeralKeyPair
    - PR_CLIST_IS_EMPTY
    linkageType: ''
    returnType: void
    signature: void ssl_FreeEphemeralKeyPairs(sslSocket *ss)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_Now
      Src: /src/nss/lib/ssl/sslsock.c:4238,1
    - Dst: sslSocket*::now
      Src: /src/nss/lib/ssl/sslsock.c:4240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4241
      start: 4234
    functionDepth: 0
    functionLinenumber: 4234
    functionLinenumberEnd: 4241
    functionName: ssl_Time
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - sslSocket*::now
    - PR_Now
    linkageType: ''
    returnType: PRTime
    signature: PRTime ssl_Time(const sslSocket *ss)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ssl_SetDefaultsFromEnvironment
      Src: /src/nss/lib/ssl/sslsock.c:4252,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/ssl/sslsock.c:4258,1
    - Dst: VERSIONS_DEFAULTS
      Src: /src/nss/lib/ssl/sslsock.c:4268,1
    - Dst: ssl3_CreateOverlapWithPolicy
      Src: /src/nss/lib/ssl/sslsock.c:4273,1
    - Dst: PR_INIT_CLIST
      Src: /src/nss/lib/ssl/sslsock.c:4280,1
    - Dst: PR_INIT_CLIST
      Src: /src/nss/lib/ssl/sslsock.c:4281,1
    - Dst: PR_INIT_CLIST
      Src: /src/nss/lib/ssl/sslsock.c:4282,1
    - Dst: PR_INIT_CLIST
      Src: /src/nss/lib/ssl/sslsock.c:4283,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/lib/ssl/sslsock.c:4285,1
    - Dst: ssl_ChooseOps
      Src: /src/nss/lib/ssl/sslsock.c:4301,1
    - Dst: ssl3_InitSocketPolicy
      Src: /src/nss/lib/ssl/sslsock.c:4302,1
    - Dst: PR_INIT_CLIST
      Src: /src/nss/lib/ssl/sslsock.c:4307,1
    - Dst: PR_INIT_CLIST
      Src: /src/nss/lib/ssl/sslsock.c:4308,1
    - Dst: PR_INIT_CLIST
      Src: /src/nss/lib/ssl/sslsock.c:4309,1
    - Dst: PR_INIT_CLIST
      Src: /src/nss/lib/ssl/sslsock.c:4310,1
    - Dst: ssl3_InitExtensionData
      Src: /src/nss/lib/ssl/sslsock.c:4311,1
    - Dst: PR_INIT_CLIST
      Src: /src/nss/lib/ssl/sslsock.c:4312,1
    - Dst: PR_INIT_CLIST
      Src: /src/nss/lib/ssl/sslsock.c:4313,1
    - Dst: PR_INIT_CLIST
      Src: /src/nss/lib/ssl/sslsock.c:4314,1
    - Dst: dtls_InitTimers
      Src: /src/nss/lib/ssl/sslsock.c:4315,1
    - Dst: ssl_MakeLocks
      Src: /src/nss/lib/ssl/sslsock.c:4323,1
    - Dst: ssl_CreateSecurityInfo
      Src: /src/nss/lib/ssl/sslsock.c:4327,1
    - Dst: ssl3_InitGather
      Src: /src/nss/lib/ssl/sslsock.c:4330,1
    - Dst: ssl3_InitState
      Src: /src/nss/lib/ssl/sslsock.c:4333,1
    - Dst: ssl_DestroySocketContents
      Src: /src/nss/lib/ssl/sslsock.c:4340,1
    - Dst: ssl_DestroyLocks
      Src: /src/nss/lib/ssl/sslsock.c:4341,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/sslsock.c:4342,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 84
    argCount: 2
    argNames:
    - makeLocks
    - protocolVariant
    argTypes:
    - PRBool
    - SSLProtocolVariant
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4344
      start: 4246
    functionDepth: 3
    functionLinenumber: 4246
    functionLinenumberEnd: 4344
    functionName: ssl_NewSocket
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 2
    functionsReached:
    - VERSIONS_DEFAULTS
    - ssl_SetDefaultsFromEnvironment
    - ssl3_CreateOverlapWithPolicy
    - ssl3_InitState
    - PORT_ZNew
    - ssl3_InitExtensionData
    - ssl_CreateSecurityInfo
    - ssl_DestroyLocks
    - PORT_Free
    - ssl_DestroySocketContents
    - ssl_MakeLocks
    - ssl_ChooseOps
    - CERT_GetDefaultCertDB
    - ssl3_InitGather
    - ssl3_InitSocketPolicy
    - PR_INIT_CLIST
    - dtls_InitTimers
    linkageType: ''
    returnType: sslSocket
    signature: 'sslSocket *

      ssl_NewSocket(PRBool makeLocks, SSLProtocolVariant protocolVariant)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:4355,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 7
    argNames:
    - cert
    - srvPrivkey
    - protocolmask
    - ciphersuites
    - nsuites
    - pcanbypass
    - pwArg
    argTypes:
    - CERTCertificate*
    - SECKEYPrivateKey*
    - PRUint32
    - PRUint16*
    - int
    - PRBool*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4360
      start: 4349
    functionDepth: 0
    functionLinenumber: 4349
    functionLinenumberEnd: 4360
    functionName: SSL_CanBypass
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSL_CanBypass(CERTCertificate *cert, SECKEYPrivateKey *srvPrivkey,\n
      \             PRUint32 protocolmask, PRUint16 *ciphersuites, int nsuites,\n
      \             PRBool *pcanbypass, void *pwArg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4378
      start: 4374
    functionDepth: 0
    functionLinenumber: 4374
    functionLinenumberEnd: 4378
    functionName: EXP
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXP(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4382
      start: 4378
    functionDepth: 0
    functionLinenumber: 4378
    functionLinenumberEnd: 4382
    functionName: PUB
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PUB(n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/ssl/sslsock.c:4448,1
    - Dst: strcmp
      Src: /src/nss/lib/ssl/sslsock.c:4449,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:4453,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4455
      start: 4444
    functionDepth: 0
    functionLinenumber: 4444
    functionLinenumberEnd: 4455
    functionName: SSL_GetExperimentalAPI
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - strcmp
    - PORT_SetError
    - PR_ARRAY_SIZE
    linkageType: ''
    returnType: void
    signature: 'void *

      SSL_GetExperimentalAPI(const char *name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/lib/ssl/sslsock.c:4462,1
    - Dst: PR_LIST_TAIL
      Src: /src/nss/lib/ssl/sslsock.c:4463,1
    - Dst: PR_REMOVE_LINK
      Src: /src/nss/lib/ssl/sslsock.c:4465,1
    - Dst: f
      Src: /src/nss/lib/ssl/sslsock.c:4467,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/sslsock.c:4469,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - list
    argTypes:
    - PRCList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4471
      start: 4457
    functionDepth: 1
    functionLinenumber: 4457
    functionLinenumberEnd: 4471
    functionName: ssl_ClearPRCList
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 1
    functionsReached:
    - PR_LIST_TAIL
    - PORT_Free
    - PR_REMOVE_LINK
    - f
    - PR_CLIST_IS_EMPTY
    linkageType: ''
    returnType: void
    signature: void ssl_ClearPRCList(PRCList *list, void (*f)(void *))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslsock.c:4476,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - fd
    - enabled
    argTypes:
    - PRFileDesc*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4482
      start: 4473
    functionDepth: 2
    functionLinenumber: 4473
    functionLinenumberEnd: 4482
    functionName: SSLExp_EnableTls13GreaseEch
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - ssl_FindSocket
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSLExp_EnableTls13GreaseEch(PRFileDesc *fd, PRBool enabled)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslsock.c:4487,1
    - Dst: ssl_Get1stHandshakeLock
      Src: /src/nss/lib/ssl/sslsock.c:4491,1
    - Dst: ssl_GetSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsock.c:4492,1
    - Dst: ssl_ReleaseSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsock.c:4496,1
    - Dst: ssl_Release1stHandshakeLock
      Src: /src/nss/lib/ssl/sslsock.c:4497,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - fd
    - size
    argTypes:
    - PRFileDesc*
    - PRUint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4500
      start: 4484
    functionDepth: 2
    functionLinenumber: 4484
    functionLinenumberEnd: 4500
    functionName: SSLExp_SetTls13GreaseEchSize
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - ssl_GetSSL3HandshakeLock
    - ssl_ReleaseSSL3HandshakeLock
    - ssl_Get1stHandshakeLock
    - ssl_Release1stHandshakeLock
    - ssl_FindSocket
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSLExp_SetTls13GreaseEchSize(PRFileDesc *fd, PRUint8 size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslsock.c:4505,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - fd
    - enabled
    argTypes:
    - PRFileDesc*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4511
      start: 4502
    functionDepth: 2
    functionLinenumber: 4502
    functionLinenumberEnd: 4511
    functionName: SSLExp_EnableTls13BackendEch
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - ssl_FindSocket
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSLExp_EnableTls13BackendEch(PRFileDesc *fd, PRBool enabled)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslsock.c:4516,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - fd
    - enabled
    argTypes:
    - PRFileDesc*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4522
      start: 4513
    functionDepth: 2
    functionLinenumber: 4513
    functionLinenumberEnd: 4522
    functionName: SSLExp_CallExtensionWriterOnEchInner
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - ssl_FindSocket
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSLExp_CallExtensionWriterOnEchInner(PRFileDesc *fd, PRBool
      enabled)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslsock.c:4527,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - fd
    - enabled
    argTypes:
    - PRFileDesc*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4533
      start: 4524
    functionDepth: 2
    functionLinenumber: 4524
    functionLinenumberEnd: 4533
    functionName: SSLExp_SetDtls13VersionWorkaround
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - ssl_FindSocket
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSLExp_SetDtls13VersionWorkaround(PRFileDesc *fd, PRBool
      enabled)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslsock.c:4538,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsock.c:4541,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsock.c:4542,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - fd
    - f
    - arg
    argTypes:
    - PRFileDesc*
    - SSLTimeFunc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4548
      start: 4535
    functionDepth: 2
    functionLinenumber: 4535
    functionLinenumberEnd: 4548
    functionName: SSLExp_SetTimeFunc
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - ssl_FindSocket
    - SSL_GETPID
    - SSL_DBG
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSLExp_SetTimeFunc(PRFileDesc *fd, SSLTimeFunc f, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslsock.c:4557,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsock.c:4560,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsock.c:4561,1
    - Dst: ssl_Get1stHandshakeLock
      Src: /src/nss/lib/ssl/sslsock.c:4565,1
    - Dst: ssl_GetSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsock.c:4566,1
    - Dst: ssl_ReleaseSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsock.c:4569,1
    - Dst: ssl_Release1stHandshakeLock
      Src: /src/nss/lib/ssl/sslsock.c:4570,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - fd
    - cb
    - ctx
    argTypes:
    - PRFileDesc*
    - SSLResumptionTokenCallback
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4573
      start: 4552
    functionDepth: 2
    functionLinenumber: 4552
    functionLinenumberEnd: 4573
    functionName: SSLExp_SetResumptionTokenCallback
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - ssl_GetSSL3HandshakeLock
    - SSL_GETPID
    - ssl_ReleaseSSL3HandshakeLock
    - ssl_Get1stHandshakeLock
    - SSL_DBG
    - ssl_Release1stHandshakeLock
    - ssl_FindSocket
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSLExp_SetResumptionTokenCallback(PRFileDesc *fd,\n                                  SSLResumptionTokenCallback
      cb,\n                                  void *ctx)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslsock.c:4579,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsock.c:4583,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsock.c:4584,1
    - Dst: ssl_Get1stHandshakeLock
      Src: /src/nss/lib/ssl/sslsock.c:4588,1
    - Dst: ssl_GetSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsock.c:4589,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:4593,1
    - Dst: ssl_FreeSID
      Src: /src/nss/lib/ssl/sslsock.c:4599,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/sslsock.c:4603,1
    - Dst: ssl3_NewSessionID
      Src: /src/nss/lib/ssl/sslsock.c:4605,1
    - Dst: ssl_DecodeResumptionToken
      Src: /src/nss/lib/ssl/sslsock.c:4611,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:4614,1
    - Dst: ssl_IsResumptionTokenUsable
      Src: /src/nss/lib/ssl/sslsock.c:4619,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:4620,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/lib/ssl/sslsock.c:4625,1
    - Dst: ssl_Time
      Src: /src/nss/lib/ssl/sslsock.c:4633,1
    - Dst: ssl_ReleaseSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsock.c:4637,1
    - Dst: ssl_Release1stHandshakeLock
      Src: /src/nss/lib/ssl/sslsock.c:4638,1
    - Dst: ssl_FreeSID
      Src: /src/nss/lib/ssl/sslsock.c:4642,1
    - Dst: ssl_ReleaseSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsock.c:4643,1
    - Dst: ssl_Release1stHandshakeLock
      Src: /src/nss/lib/ssl/sslsock.c:4644,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 50
    argCount: 3
    argNames:
    - fd
    - token
    - len
    argTypes:
    - PRFileDesc*
    - PRUint8*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4647
      start: 4575
    functionDepth: 9
    functionLinenumber: 4575
    functionLinenumberEnd: 4647
    functionName: SSLExp_SetResumptionToken
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - ssl_IsResumptionTokenUsable
    - ssl_Time
    - ssl_GetSSL3HandshakeLock
    - SSL_GETPID
    - ssl_FreeSID
    - PRINT_BUF
    - ssl_Get1stHandshakeLock
    - ssl3_NewSessionID
    - PORT_SetError
    - ssl_DecodeResumptionToken
    - ssl_ReleaseSSL3HandshakeLock
    - PK11_GenerateRandom
    - SSL_DBG
    - ssl_Release1stHandshakeLock
    - ssl_FindSocket
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSLExp_SetResumptionToken(PRFileDesc *fd, const PRUint8
      *token,\n                          unsigned int len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:4653,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/ssl/sslsock.c:4657,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/sslsock.c:4659,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/ssl/sslsock.c:4660,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - token
    argTypes:
    - SSLResumptionTokenInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4662
      start: 4649
    functionDepth: 8
    functionLinenumber: 4649
    functionLinenumberEnd: 4662
    functionName: SSLExp_DestroyResumptionTokenInfo
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - PORT_SetError
    - PORT_Memset
    - CERT_DestroyCertificate
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSLExp_DestroyResumptionTokenInfo(SSLResumptionTokenInfo
      *token)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:4670,1
    - Dst: ssl_DecodeResumptionToken
      Src: /src/nss/lib/ssl/sslsock.c:4677,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsock.c:4679,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/ssl/sslsock.c:4683,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/ssl/sslsock.c:4686,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsock.c:4691,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/sslsock.c:4692,1
    - Dst: PR_MIN
      Src: /src/nss/lib/ssl/sslsock.c:4704,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/sslsock.c:4705,1
    - Dst: ssl_DestroySID
      Src: /src/nss/lib/ssl/sslsock.c:4707,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 4
    argNames:
    - tokenData
    - tokenLen
    - tokenOut
    - len
    argTypes:
    - PRUint8*
    - unsigned int
    - SSLResumptionTokenInfo*
    - PRUintn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4709
      start: 4664
    functionDepth: 1
    functionLinenumber: 4664
    functionLinenumberEnd: 4709
    functionName: SSLExp_GetResumptionTokenInfo
    functionSourceFile: /src/nss/lib/ssl/sslsock.c
    functionUses: 0
    functionsReached:
    - ssl_DestroySID
    - PORT_Assert
    - PORT_Memcpy
    - PR_MIN
    - PORT_ZAlloc
    - ssl_DecodeResumptionToken
    - PORT_SetError
    - CERT_DupCertificate
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSLExp_GetResumptionTokenInfo(const PRUint8 *tokenData,
      unsigned int tokenLen,\n                              SSLResumptionTokenInfo
      *tokenOut, PRUintn len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/ssl/cmpcert.c:38,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/ssl/cmpcert.c:45,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/ssl/cmpcert.c:46,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/ssl/cmpcert.c:51,1
    - Dst: CERT_FindCertByName
      Src: /src/nss/lib/ssl/cmpcert.c:54,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/ssl/cmpcert.c:56,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/ssl/cmpcert.c:59,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 2
    argNames:
    - cert
    - caNames
    argTypes:
    - CERTCertificate*
    - CERTDistNames*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 24
    functionDepth: 8
    functionLinenumber: 24
    functionLinenumberEnd: 64
    functionName: NSS_CmpCertChainWCANames
    functionSourceFile: /src/nss/lib/ssl/cmpcert.c
    functionUses: 2
    functionsReached:
    - SECITEM_CompareItem
    - CERT_FindCertByName
    - CERT_DestroyCertificate
    - CERT_DupCertificate
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_CmpCertChainWCANames(CERTCertificate *cert, CERTDistNames
      *caNames)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13exthandle.c:39,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/tls13exthandle.c:44,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - ss
    - xtnData
    - buf
    - added
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - sslBuffer*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 51
    functionName: tls13_ServerSendStatusRequestXtn
    functionSourceFile: /src/nss/lib/ssl/tls13exthandle.c
    functionUses: 0
    functionsReached:
    - sslBuffer_AppendVariable
    - sslBuffer_AppendNumber
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_ServerSendStatusRequestXtn(const sslSocket *ss, TLSExtensionData
      *xtnData,\n                                 sslBuffer *buf, PRBool *added)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13exthandle.c:77,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13exthandle.c:82,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13exthandle.c:83,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13exthandle.c:88,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13exthandle.c:89,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - keyPair
    argTypes:
    - sslEphemeralKeyPair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 94
    functionName: tls13_SizeOfKeyShareEntry
    functionSourceFile: /src/nss/lib/ssl/tls13exthandle.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: PRUint32
    signature: PRUint32 tls13_SizeOfKeyShareEntry(const sslEphemeralKeyPair *keyPair)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13exthandle.c:99,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13exthandle.c:100,1
    - Dst: sslBuffer_Append
      Src: /src/nss/lib/ssl/tls13exthandle.c:104,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13exthandle.c:111,1
    - Dst: sslBuffer_Append
      Src: /src/nss/lib/ssl/tls13exthandle.c:112,1
    - Dst: sslBuffer_Append
      Src: /src/nss/lib/ssl/tls13exthandle.c:114,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13exthandle.c:116,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13exthandle.c:117,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - buf
    - keyPair
    argTypes:
    - sslBuffer*
    - sslEphemeralKeyPair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 121
    functionName: tls13_WriteXyber768D00KeyExchangeInfo
    functionSourceFile: /src/nss/lib/ssl/tls13exthandle.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - sslBuffer_Append
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_WriteXyber768D00KeyExchangeInfo(sslBuffer *buf, sslEphemeralKeyPair
      *keyPair)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13exthandle.c:126,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13exthandle.c:127,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13exthandle.c:132,1
    - Dst: sslBuffer_Append
      Src: /src/nss/lib/ssl/tls13exthandle.c:133,1
    - Dst: sslBuffer_Append
      Src: /src/nss/lib/ssl/tls13exthandle.c:135,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13exthandle.c:137,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13exthandle.c:138,1
    - Dst: sslBuffer_Append
      Src: /src/nss/lib/ssl/tls13exthandle.c:145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - buf
    - keyPair
    argTypes:
    - sslBuffer*
    - sslEphemeralKeyPair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 148
    functionName: tls13_WriteMLKEM768X25519KeyExchangeInfo
    functionSourceFile: /src/nss/lib/ssl/tls13exthandle.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - sslBuffer_Append
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_WriteMLKEM768X25519KeyExchangeInfo(sslBuffer *buf,
      sslEphemeralKeyPair *keyPair)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sslBuffer_Append
      Src: /src/nss/lib/ssl/tls13exthandle.c:157,1
    - Dst: ssl_AppendPaddedDHKeyShare
      Src: /src/nss/lib/ssl/tls13exthandle.c:161,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13exthandle.c:164,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13exthandle.c:165,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - buf
    - keyPair
    argTypes:
    - sslBuffer*
    - sslEphemeralKeyPair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 171
    functionName: tls13_WriteKeyExchangeInfo
    functionSourceFile: /src/nss/lib/ssl/tls13exthandle.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - ssl_AppendPaddedDHKeyShare
    - PORT_SetError
    - sslBuffer_Append
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_WriteKeyExchangeInfo(sslBuffer *buf, sslEphemeralKeyPair
      *keyPair)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tls13_SizeOfKeyShareEntry
      Src: /src/nss/lib/ssl/tls13exthandle.c:177,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13exthandle.c:179,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13exthandle.c:184,1
    - Dst: tls13_WriteMLKEM768X25519KeyExchangeInfo
      Src: /src/nss/lib/ssl/tls13exthandle.c:191,1
    - Dst: tls13_WriteXyber768D00KeyExchangeInfo
      Src: /src/nss/lib/ssl/tls13exthandle.c:194,1
    - Dst: tls13_WriteKeyExchangeInfo
      Src: /src/nss/lib/ssl/tls13exthandle.c:197,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - buf
    - keyPair
    argTypes:
    - sslBuffer*
    - sslEphemeralKeyPair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 173
    functionDepth: 2
    functionLinenumber: 173
    functionLinenumberEnd: 201
    functionName: tls13_EncodeKeyShareEntry
    functionSourceFile: /src/nss/lib/ssl/tls13exthandle.c
    functionUses: 0
    functionsReached:
    - tls13_WriteKeyExchangeInfo
    - sslBuffer_AppendNumber
    - tls13_WriteMLKEM768X25519KeyExchangeInfo
    - tls13_SizeOfKeyShareEntry
    - tls13_WriteXyber768D00KeyExchangeInfo
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_EncodeKeyShareEntry(sslBuffer *buf, sslEphemeralKeyPair
      *keyPair)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13exthandle.c:217,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13exthandle.c:218,1
    - Dst: sslBuffer_Skip
      Src: /src/nss/lib/ssl/tls13exthandle.c:221,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/tls13exthandle.c:226,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/tls13exthandle.c:228,1
    - Dst: tls13_EncodeKeyShareEntry
      Src: /src/nss/lib/ssl/tls13exthandle.c:230,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13exthandle.c:245,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13exthandle.c:249,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13exthandle.c:253,1
    - Dst: sslBuffer_InsertLength
      Src: /src/nss/lib/ssl/tls13exthandle.c:258,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 4
    argNames:
    - ss
    - xtnData
    - buf
    - added
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - sslBuffer*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 203
    functionDepth: 3
    functionLinenumber: 203
    functionLinenumberEnd: 265
    functionName: tls13_ClientSendKeyShareXtn
    functionSourceFile: /src/nss/lib/ssl/tls13exthandle.c
    functionUses: 0
    functionsReached:
    - tls13_EncodeKeyShareEntry
    - SSL_TRC
    - PR_NEXT_LINK
    - SSL_GETPID
    - sslBuffer_AppendNumber
    - sslBuffer_InsertLength
    - sslBuffer_Skip
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_ClientSendKeyShareXtn(const sslSocket *ss, TLSExtensionData
      *xtnData,\n                            sslBuffer *buf, PRBool *added)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/tls13exthandle.c:276,1
    - Dst: ssl_LookupNamedGroup
      Src: /src/nss/lib/ssl/tls13exthandle.c:280,1
    - Dst: sslRead_ReadVariable
      Src: /src/nss/lib/ssl/tls13exthandle.c:281,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/ssl/tls13exthandle.c:294,1
    - Dst: SECITEM_MakeItem
      Src: /src/nss/lib/ssl/tls13exthandle.c:300,1
    - Dst: tls13_DestroyKeyShareEntry
      Src: /src/nss/lib/ssl/tls13exthandle.c:310,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - rdr
    - ksp
    argTypes:
    - sslReader*
    - TLS13KeyShareEntry**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 313
    functionName: tls13_DecodeKeyShareEntry
    functionSourceFile: /src/nss/lib/ssl/tls13exthandle.c
    functionUses: 0
    functionsReached:
    - sslRead_ReadVariable
    - PORT_ZNew
    - ssl_LookupNamedGroup
    - tls13_DestroyKeyShareEntry
    - SECITEM_MakeItem
    - sslRead_ReadNumber
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_DecodeKeyShareEntry(sslReader *rdr, TLS13KeyShareEntry
      **ksp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13exthandle.c:322,1
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/lib/ssl/tls13exthandle.c:322,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13exthandle.c:325,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13exthandle.c:329,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13exthandle.c:333,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13exthandle.c:334,1
    - Dst: SSL_READER
      Src: /src/nss/lib/ssl/tls13exthandle.c:336,1
    - Dst: tls13_DecodeKeyShareEntry
      Src: /src/nss/lib/ssl/tls13exthandle.c:337,1
    - Dst: ssl3_ExtSendAlert
      Src: /src/nss/lib/ssl/tls13exthandle.c:339,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13exthandle.c:340,1
    - Dst: SSL_READER_REMAINING
      Src: /src/nss/lib/ssl/tls13exthandle.c:344,1
    - Dst: tls13_DestroyKeyShareEntry
      Src: /src/nss/lib/ssl/tls13exthandle.c:345,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13exthandle.c:346,1
    - Dst: PR_APPEND_LINK
      Src: /src/nss/lib/ssl/tls13exthandle.c:349,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - ss
    - xtnData
    - data
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 317
    functionDepth: 2
    functionLinenumber: 317
    functionLinenumberEnd: 352
    functionName: tls13_ClientHandleKeyShareXtn
    functionSourceFile: /src/nss/lib/ssl/tls13exthandle.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SSL_TRC
    - SSL_GETPID
    - tls13_DestroyKeyShareEntry
    - tls13_DecodeKeyShareEntry
    - PORT_SetError
    - ssl3_ExtSendAlert
    - PR_APPEND_LINK
    - SSL_READER
    - SSL_READER_REMAINING
    - PR_CLIST_IS_EMPTY
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_ClientHandleKeyShareXtn(const sslSocket *ss, TLSExtensionData
      *xtnData,\n                              SECItem *data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13exthandle.c:362,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13exthandle.c:363,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13exthandle.c:365,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13exthandle.c:366,1
    - Dst: ssl3_ExtConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/tls13exthandle.c:368,1
    - Dst: ssl3_ExtSendAlert
      Src: /src/nss/lib/ssl/tls13exthandle.c:373,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13exthandle.c:374,1
    - Dst: ssl_LookupNamedGroup
      Src: /src/nss/lib/ssl/tls13exthandle.c:378,1
    - Dst: ssl_NamedGroupEnabled
      Src: /src/nss/lib/ssl/tls13exthandle.c:381,1
    - Dst: ssl_HaveEphemeralKeyPair
      Src: /src/nss/lib/ssl/tls13exthandle.c:382,1
    - Dst: ssl3_ExtSendAlert
      Src: /src/nss/lib/ssl/tls13exthandle.c:383,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13exthandle.c:384,1
    - Dst: ssl_FreeEphemeralKeyPairs
      Src: /src/nss/lib/ssl/tls13exthandle.c:389,1
    - Dst: CONST_CAST
      Src: /src/nss/lib/ssl/tls13exthandle.c:389,1
    - Dst: tls13_AddKeyShare
      Src: /src/nss/lib/ssl/tls13exthandle.c:392,1
    - Dst: CONST_CAST
      Src: /src/nss/lib/ssl/tls13exthandle.c:392,1
    - Dst: ssl3_ExtSendAlert
      Src: /src/nss/lib/ssl/tls13exthandle.c:394,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13exthandle.c:395,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 3
    argNames:
    - ss
    - xtnData
    - data
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 354
    functionDepth: 5
    functionLinenumber: 354
    functionLinenumberEnd: 400
    functionName: tls13_ClientHandleKeyShareXtnHrr
    functionSourceFile: /src/nss/lib/ssl/tls13exthandle.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - CONST_CAST
    - SSL_TRC
    - ssl3_ExtConsumeHandshakeNumber
    - SSL_GETPID
    - ssl_LookupNamedGroup
    - ssl3_ExtSendAlert
    - PORT_SetError
    - tls13_AddKeyShare
    - ssl_NamedGroupEnabled
    - ssl_HaveEphemeralKeyPair
    - ssl_FreeEphemeralKeyPairs
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_ClientHandleKeyShareXtnHrr(const sslSocket *ss, TLSExtensionData
      *xtnData,\n                                 SECItem *data)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13exthandle.c:412,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13exthandle.c:413,1
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/lib/ssl/tls13exthandle.c:413,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13exthandle.c:419,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13exthandle.c:420,1
    - Dst: ssl3_ExtConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/tls13exthandle.c:424,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13exthandle.c:430,1
    - Dst: SSL_READER
      Src: /src/nss/lib/ssl/tls13exthandle.c:434,1
    - Dst: SSL_READER_REMAINING
      Src: /src/nss/lib/ssl/tls13exthandle.c:435,1
    - Dst: tls13_DecodeKeyShareEntry
      Src: /src/nss/lib/ssl/tls13exthandle.c:437,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13exthandle.c:439,1
    - Dst: PR_APPEND_LINK
      Src: /src/nss/lib/ssl/tls13exthandle.c:444,1
    - Dst: tls13_DestroyKeyShares
      Src: /src/nss/lib/ssl/tls13exthandle.c:455,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 3
    argNames:
    - ss
    - xtnData
    - data
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 405
    functionDepth: 2
    functionLinenumber: 405
    functionLinenumberEnd: 457
    functionName: tls13_ServerHandleKeyShareXtn
    functionSourceFile: /src/nss/lib/ssl/tls13exthandle.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - tls13_DestroyKeyShares
    - SSL_TRC
    - ssl3_ExtConsumeHandshakeNumber
    - SSL_GETPID
    - tls13_DecodeKeyShareEntry
    - PORT_SetError
    - PR_APPEND_LINK
    - SSL_READER
    - SSL_READER_REMAINING
    - PR_CLIST_IS_EMPTY
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_ServerHandleKeyShareXtn(const sslSocket *ss, TLSExtensionData
      *xtnData,\n                              SECItem *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13exthandle.c:467,1
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/lib/ssl/tls13exthandle.c:467,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13exthandle.c:468,1
    - Dst: PR_PREV_LINK
      Src: /src/nss/lib/ssl/tls13exthandle.c:468,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/tls13exthandle.c:469,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/tls13exthandle.c:471,1
    - Dst: tls13_EncodeKeyShareEntry
      Src: /src/nss/lib/ssl/tls13exthandle.c:473,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - ss
    - xtnData
    - buf
    - added
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - sslBuffer*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 459
    functionDepth: 3
    functionLinenumber: 459
    functionLinenumberEnd: 480
    functionName: tls13_ServerSendKeyShareXtn
    functionSourceFile: /src/nss/lib/ssl/tls13exthandle.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - tls13_EncodeKeyShareEntry
    - PR_NEXT_LINK
    - PR_CLIST_IS_EMPTY
    - PR_PREV_LINK
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_ServerSendKeyShareXtn(const sslSocket *ss, TLSExtensionData
      *xtnData,\n                            sslBuffer *buf, PRBool *added)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/lib/ssl/tls13exthandle.c:515,1
    - Dst: PR_LIST_HEAD
      Src: /src/nss/lib/ssl/tls13exthandle.c:521,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13exthandle.c:541,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13exthandle.c:543,1
    - Dst: tls13_GetHashSizeForHash
      Src: /src/nss/lib/ssl/tls13exthandle.c:544,1
    - Dst: ssl_Time
      Src: /src/nss/lib/ssl/tls13exthandle.c:552,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/tls13exthandle.c:555,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/tls13exthandle.c:560,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13exthandle.c:562,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13exthandle.c:563,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13exthandle.c:568,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/tls13exthandle.c:573,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13exthandle.c:579,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13exthandle.c:585,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/tls13exthandle.c:592,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 66
    argCount: 4
    argNames:
    - ss
    - xtnData
    - buf
    - added
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - sslBuffer*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 607
    functionName: tls13_ClientSendPreSharedKeyXtn
    functionSourceFile: /src/nss/lib/ssl/tls13exthandle.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - ssl_Time
    - tls13_GetHashSizeForHash
    - PRINT_BUF
    - sslBuffer_AppendVariable
    - sslBuffer_AppendNumber
    - PORT_SetError
    - PR_LIST_HEAD
    - PR_CLIST_IS_EMPTY
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_ClientSendPreSharedKeyXtn(const sslSocket *ss, TLSExtensionData
      *xtnData,\n                                sslBuffer *buf, PRBool *added)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13exthandle.c:620,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13exthandle.c:621,1
    - Dst: ssl3_ExtConsumeHandshakeVariable
      Src: /src/nss/lib/ssl/tls13exthandle.c:639,1
    - Dst: ssl3_ExtConsumeHandshakeVariable
      Src: /src/nss/lib/ssl/tls13exthandle.c:649,1
    - Dst: ssl3_ExtConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/tls13exthandle.c:657,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13exthandle.c:665,1
    - Dst: PR_LIST_HEAD
      Src: /src/nss/lib/ssl/tls13exthandle.c:666,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/tls13exthandle.c:668,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/ssl/tls13exthandle.c:671,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/tls13exthandle.c:674,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/tls13exthandle.c:680,1
    - Dst: ssl3_ProcessSessionTicketCommon
      Src: /src/nss/lib/ssl/tls13exthandle.c:682,1
    - Dst: CONST_CAST
      Src: /src/nss/lib/ssl/tls13exthandle.c:683,1
    - Dst: ssl3_ExtConsumeHandshakeVariable
      Src: /src/nss/lib/ssl/tls13exthandle.c:715,1
    - Dst: ssl3_ExtConsumeHandshakeVariable
      Src: /src/nss/lib/ssl/tls13exthandle.c:725,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13exthandle.c:743,1
    - Dst: ssl3_ExtSendAlert
      Src: /src/nss/lib/ssl/tls13exthandle.c:753,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13exthandle.c:754,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 84
    argCount: 3
    argNames:
    - ss
    - xtnData
    - data
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 610
    functionDepth: 1
    functionLinenumber: 610
    functionLinenumberEnd: 756
    functionName: tls13_ServerHandlePreSharedKeyXtn
    functionSourceFile: /src/nss/lib/ssl/tls13exthandle.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SECITEM_CompareItem
    - CONST_CAST
    - SSL_TRC
    - ssl3_ExtConsumeHandshakeNumber
    - SSL_GETPID
    - PR_NEXT_LINK
    - PRINT_BUF
    - ssl3_ProcessSessionTicketCommon
    - ssl3_ExtSendAlert
    - PORT_SetError
    - PR_LIST_HEAD
    - ssl3_ExtConsumeHandshakeVariable
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_ServerHandlePreSharedKeyXtn(const sslSocket *ss, TLSExtensionData
      *xtnData,\n                                  SECItem *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13exthandle.c:766,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - ss
    - xtnData
    - buf
    - added
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - sslBuffer*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 758
    functionDepth: 1
    functionLinenumber: 758
    functionLinenumberEnd: 773
    functionName: tls13_ServerSendPreSharedKeyXtn
    functionSourceFile: /src/nss/lib/ssl/tls13exthandle.c
    functionUses: 0
    functionsReached:
    - sslBuffer_AppendNumber
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_ServerSendPreSharedKeyXtn(const sslSocket *ss, TLSExtensionData
      *xtnData,\n                                sslBuffer *buf, PRBool *added)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13exthandle.c:783,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13exthandle.c:784,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13exthandle.c:788,1
    - Dst: ssl3_ExtConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/tls13exthandle.c:792,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13exthandle.c:798,1
    - Dst: ssl3_ExtSendAlert
      Src: /src/nss/lib/ssl/tls13exthandle.c:804,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13exthandle.c:805,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13exthandle.c:809,1
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/lib/ssl/tls13exthandle.c:809,1
    - Dst: PR_LIST_HEAD
      Src: /src/nss/lib/ssl/tls13exthandle.c:810,1
    - Dst: tls13_GetHashForCipherSuite
      Src: /src/nss/lib/ssl/tls13exthandle.c:813,1
    - Dst: ssl3_ExtSendAlert
      Src: /src/nss/lib/ssl/tls13exthandle.c:814,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - ss
    - xtnData
    - data
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 776
    functionDepth: 1
    functionLinenumber: 776
    functionLinenumberEnd: 823
    functionName: tls13_ClientHandlePreSharedKeyXtn
    functionSourceFile: /src/nss/lib/ssl/tls13exthandle.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SSL_TRC
    - ssl3_ExtConsumeHandshakeNumber
    - SSL_GETPID
    - tls13_GetHashForCipherSuite
    - ssl3_ExtSendAlert
    - PORT_SetError
    - PR_LIST_HEAD
    - PR_CLIST_IS_EMPTY
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_ClientHandlePreSharedKeyXtn(const sslSocket *ss, TLSExtensionData
      *xtnData,\n                                  SECItem *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tls13_ClientAllow0Rtt
      Src: /src/nss/lib/ssl/tls13exthandle.c:832,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ss
    - xtnData
    - buf
    - added
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - sslBuffer*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 828
    functionDepth: 1
    functionLinenumber: 828
    functionLinenumberEnd: 838
    functionName: tls13_ClientSendEarlyDataXtn
    functionSourceFile: /src/nss/lib/ssl/tls13exthandle.c
    functionUses: 0
    functionsReached:
    - tls13_ClientAllow0Rtt
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_ClientSendEarlyDataXtn(const sslSocket *ss, TLSExtensionData
      *xtnData,\n                             sslBuffer *buf, PRBool *added)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13exthandle.c:844,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13exthandle.c:845,1
    - Dst: ssl3_ExtSendAlert
      Src: /src/nss/lib/ssl/tls13exthandle.c:853,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13exthandle.c:854,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13exthandle.c:859,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - ss
    - xtnData
    - data
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 840
    functionDepth: 1
    functionLinenumber: 840
    functionLinenumberEnd: 866
    functionName: tls13_ServerHandleEarlyDataXtn
    functionSourceFile: /src/nss/lib/ssl/tls13exthandle.c
    functionUses: 0
    functionsReached:
    - ssl3_ExtSendAlert
    - SSL_TRC
    - PORT_SetError
    - SSL_GETPID
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_ServerHandleEarlyDataXtn(const sslSocket *ss, TLSExtensionData
      *xtnData,\n                               SECItem *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13exthandle.c:873,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13exthandle.c:874,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13exthandle.c:878,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13exthandle.c:883,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - ss
    - xtnData
    - data
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 869
    functionDepth: 1
    functionLinenumber: 869
    functionLinenumberEnd: 891
    functionName: tls13_ClientHandleEarlyDataXtn
    functionSourceFile: /src/nss/lib/ssl/tls13exthandle.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - SSL_TRC
    - SSL_GETPID
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_ClientHandleEarlyDataXtn(const sslSocket *ss, TLSExtensionData
      *xtnData,\n                               SECItem *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13exthandle.c:900,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13exthandle.c:901,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13exthandle.c:905,1
    - Dst: ssl3_ExtConsumeHandshake
      Src: /src/nss/lib/ssl/tls13exthandle.c:909,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13exthandle.c:912,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13exthandle.c:916,1
    - Dst: PR_ntohl
      Src: /src/nss/lib/ssl/tls13exthandle.c:920,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - ss
    - xtnData
    - data
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 893
    functionDepth: 1
    functionLinenumber: 893
    functionLinenumberEnd: 923
    functionName: tls13_ClientHandleTicketEarlyDataXtn
    functionSourceFile: /src/nss/lib/ssl/tls13exthandle.c
    functionUses: 0
    functionsReached:
    - PR_ntohl
    - SSL_TRC
    - ssl3_ExtConsumeHandshake
    - SSL_GETPID
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_ClientHandleTicketEarlyDataXtn(const sslSocket *ss,
      TLSExtensionData *xtnData,\n                                     SECItem *data)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13exthandle.c:947,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13exthandle.c:948,1
    - Dst: sslBuffer_Skip
      Src: /src/nss/lib/ssl/tls13exthandle.c:950,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13exthandle.c:955,1
    - Dst: tls13_EncodeVersion
      Src: /src/nss/lib/ssl/tls13exthandle.c:957,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13exthandle.c:959,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13exthandle.c:969,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13exthandle.c:984,1
    - Dst: sslBuffer_InsertLength
      Src: /src/nss/lib/ssl/tls13exthandle.c:990,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 4
    argNames:
    - ss
    - xtnData
    - buf
    - added
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - sslBuffer*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 997
      start: 935
    functionDepth: 1
    functionLinenumber: 935
    functionLinenumberEnd: 997
    functionName: tls13_ClientSendSupportedVersionsXtn
    functionSourceFile: /src/nss/lib/ssl/tls13exthandle.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SSL_TRC
    - SSL_GETPID
    - sslBuffer_AppendNumber
    - sslBuffer_InsertLength
    - sslBuffer_Skip
    - tls13_EncodeVersion
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_ClientSendSupportedVersionsXtn(const sslSocket *ss,
      TLSExtensionData *xtnData,\n                                     sslBuffer *buf,
      PRBool *added)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13exthandle.c:1009,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13exthandle.c:1010,1
    - Dst: tls13_EncodeVersion
      Src: /src/nss/lib/ssl/tls13exthandle.c:1012,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13exthandle.c:1014,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - ss
    - xtnData
    - buf
    - added
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - sslBuffer*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 999
    functionDepth: 1
    functionLinenumber: 999
    functionLinenumberEnd: 1021
    functionName: tls13_ServerSendSupportedVersionsXtn
    functionSourceFile: /src/nss/lib/ssl/tls13exthandle.c
    functionUses: 0
    functionsReached:
    - SSL_TRC
    - sslBuffer_AppendNumber
    - SSL_GETPID
    - tls13_EncodeVersion
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_ServerSendSupportedVersionsXtn(const sslSocket *ss,
      TLSExtensionData *xtnData,\n                                     sslBuffer *buf,
      PRBool *added)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13exthandle.c:1034,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13exthandle.c:1035,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13exthandle.c:1037,1
    - Dst: ssl3_ExtConsumeHandshakeVariable
      Src: /src/nss/lib/ssl/tls13exthandle.c:1040,1
    - Dst: CONST_CAST
      Src: /src/nss/lib/ssl/tls13exthandle.c:1041,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13exthandle.c:1044,1
    - Dst: ssl3_ExtSendAlert
      Src: /src/nss/lib/ssl/tls13exthandle.c:1048,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13exthandle.c:1049,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - ss
    - xtnData
    - data
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1028
    functionDepth: 1
    functionLinenumber: 1028
    functionLinenumberEnd: 1054
    functionName: tls13_ClientHandleHrrCookie
    functionSourceFile: /src/nss/lib/ssl/tls13exthandle.c
    functionUses: 0
    functionsReached:
    - CONST_CAST
    - PORT_Assert
    - SSL_TRC
    - SSL_GETPID
    - PORT_SetError
    - ssl3_ExtSendAlert
    - ssl3_ExtConsumeHandshakeVariable
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_ClientHandleHrrCookie(const sslSocket *ss, TLSExtensionData
      *xtnData,\n                            SECItem *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13exthandle.c:1067,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13exthandle.c:1067,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/tls13exthandle.c:1068,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - ss
    - xtnData
    - buf
    - added
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - sslBuffer*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1056
    functionDepth: 1
    functionLinenumber: 1056
    functionLinenumberEnd: 1076
    functionName: tls13_ClientSendHrrCookieXtn
    functionSourceFile: /src/nss/lib/ssl/tls13exthandle.c
    functionUses: 0
    functionsReached:
    - SSL_TRC
    - SSL_GETPID
    - sslBuffer_AppendVariable
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_ClientSendHrrCookieXtn(const sslSocket *ss, TLSExtensionData
      *xtnData,\n                             sslBuffer *buf, PRBool *added)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13exthandle.c:1084,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13exthandle.c:1085,1
    - Dst: ssl3_ExtConsumeHandshakeVariable
      Src: /src/nss/lib/ssl/tls13exthandle.c:1087,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13exthandle.c:1094,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13exthandle.c:1099,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - ss
    - xtnData
    - data
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1107
      start: 1078
    functionDepth: 1
    functionLinenumber: 1078
    functionLinenumberEnd: 1107
    functionName: tls13_ServerHandleCookieXtn
    functionSourceFile: /src/nss/lib/ssl/tls13exthandle.c
    functionUses: 0
    functionsReached:
    - ssl3_ExtConsumeHandshakeVariable
    - SSL_TRC
    - PORT_SetError
    - SSL_GETPID
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_ServerHandleCookieXtn(const sslSocket *ss, TLSExtensionData
      *xtnData,\n                            SECItem *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/tls13exthandle.c:1116,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13exthandle.c:1117,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13exthandle.c:1118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ss
    - xtnData
    - buf
    - added
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - sslBuffer*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1122
      start: 1109
    functionDepth: 1
    functionLinenumber: 1109
    functionLinenumberEnd: 1122
    functionName: tls13_ClientSendPostHandshakeAuthXtn
    functionSourceFile: /src/nss/lib/ssl/tls13exthandle.c
    functionUses: 0
    functionsReached:
    - IS_DTLS
    - SSL_TRC
    - SSL_GETPID
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_ClientSendPostHandshakeAuthXtn(const sslSocket *ss,\n
      \                                    TLSExtensionData *xtnData,\n                                     sslBuffer
      *buf, PRBool *added)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13exthandle.c:1129,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13exthandle.c:1130,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13exthandle.c:1133,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/tls13exthandle.c:1139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - ss
    - xtnData
    - data
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1145
      start: 1124
    functionDepth: 1
    functionLinenumber: 1124
    functionLinenumberEnd: 1145
    functionName: tls13_ServerHandlePostHandshakeAuthXtn
    functionSourceFile: /src/nss/lib/ssl/tls13exthandle.c
    functionUses: 0
    functionsReached:
    - IS_DTLS
    - PORT_SetError
    - SSL_TRC
    - SSL_GETPID
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_ServerHandlePostHandshakeAuthXtn(const sslSocket *ss,\n
      \                                      TLSExtensionData *xtnData,\n                                       SECItem
      *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13exthandle.c:1165,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13exthandle.c:1166,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/tls13exthandle.c:1173,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/tls13exthandle.c:1175,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - ss
    - xtnData
    - buf
    - added
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - sslBuffer*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1183
      start: 1154
    functionDepth: 1
    functionLinenumber: 1154
    functionLinenumberEnd: 1183
    functionName: tls13_ClientSendPskModesXtn
    functionSourceFile: /src/nss/lib/ssl/tls13exthandle.c
    functionUses: 0
    functionsReached:
    - SSL_TRC
    - SSL_GETPID
    - sslBuffer_AppendVariable
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_ClientSendPskModesXtn(const sslSocket *ss, TLSExtensionData
      *xtnData,\n                            sslBuffer *buf, PRBool *added)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13exthandle.c:1196,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13exthandle.c:1197,1
    - Dst: ssl3_ExtConsumeHandshakeVariable
      Src: /src/nss/lib/ssl/tls13exthandle.c:1201,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13exthandle.c:1207,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - ss
    - xtnData
    - data
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1216
      start: 1185
    functionDepth: 1
    functionLinenumber: 1185
    functionLinenumberEnd: 1216
    functionName: tls13_ServerHandlePskModesXtn
    functionSourceFile: /src/nss/lib/ssl/tls13exthandle.c
    functionUses: 0
    functionsReached:
    - ssl3_ExtConsumeHandshakeVariable
    - SSL_TRC
    - PORT_SetError
    - SSL_GETPID
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_ServerHandlePskModesXtn(const sslSocket *ss, TLSExtensionData
      *xtnData,\n                              SECItem *data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13exthandle.c:1227,1
    - Dst: ssl_GetCertificateRequestCAs
      Src: /src/nss/lib/ssl/tls13exthandle.c:1229,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13exthandle.c:1238,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/tls13exthandle.c:1244,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - ss
    - xtnData
    - buf
    - added
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - sslBuffer*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1254
      start: 1218
    functionDepth: 1
    functionLinenumber: 1218
    functionLinenumberEnd: 1254
    functionName: tls13_SendCertAuthoritiesXtn
    functionSourceFile: /src/nss/lib/ssl/tls13exthandle.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - sslBuffer_AppendVariable
    - ssl_GetCertificateRequestCAs
    - sslBuffer_AppendNumber
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_SendCertAuthoritiesXtn(const sslSocket *ss, TLSExtensionData
      *xtnData,\n                             sslBuffer *buf, PRBool *added)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_ExtSendAlert
      Src: /src/nss/lib/ssl/tls13exthandle.c:1265,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13exthandle.c:1266,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/ssl/tls13exthandle.c:1270,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13exthandle.c:1272,1
    - Dst: ssl3_ParseCertificateRequestCAs
      Src: /src/nss/lib/ssl/tls13exthandle.c:1277,1
    - Dst: ssl3_ExtSendAlert
      Src: /src/nss/lib/ssl/tls13exthandle.c:1284,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13exthandle.c:1285,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/ssl/tls13exthandle.c:1291,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 3
    argNames:
    - ss
    - xtnData
    - data
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1294
      start: 1256
    functionDepth: 1
    functionLinenumber: 1256
    functionLinenumberEnd: 1294
    functionName: tls13_ClientHandleCertAuthoritiesXtn
    functionSourceFile: /src/nss/lib/ssl/tls13exthandle.c
    functionUses: 0
    functionsReached:
    - PORT_NewArena
    - PORT_FreeArena
    - ssl3_ExtSendAlert
    - PORT_SetError
    - ssl3_ParseCertificateRequestCAs
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_ClientHandleCertAuthoritiesXtn(const sslSocket *ss,\n
      \                                    TLSExtensionData *xtnData,\n                                     SECItem
      *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13exthandle.c:1299,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13exthandle.c:1300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ss
    - xtnData
    - data
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1303
      start: 1296
    functionDepth: 1
    functionLinenumber: 1296
    functionLinenumberEnd: 1303
    functionName: tls13_ServerHandleCertAuthoritiesXtn
    functionSourceFile: /src/nss/lib/ssl/tls13exthandle.c
    functionUses: 0
    functionsReached:
    - SSL_TRC
    - SSL_GETPID
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_ServerHandleCertAuthoritiesXtn(const sslSocket *ss,
      TLSExtensionData *xtnData, SECItem *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13exthandle.c:1311,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13exthandle.c:1317,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - ss
    - xtnData
    - buf
    - added
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - sslBuffer*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1324
      start: 1305
    functionDepth: 1
    functionLinenumber: 1305
    functionLinenumberEnd: 1324
    functionName: tls13_ServerSendHrrKeyShareXtn
    functionSourceFile: /src/nss/lib/ssl/tls13exthandle.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - sslBuffer_AppendNumber
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_ServerSendHrrKeyShareXtn(const sslSocket *ss, TLSExtensionData
      *xtnData,\n                               sslBuffer *buf, PRBool *added)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13exthandle.c:1332,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13exthandle.c:1333,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/tls13exthandle.c:1335,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - ss
    - xtnData
    - buf
    - added
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - sslBuffer*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1343
      start: 1326
    functionDepth: 1
    functionLinenumber: 1326
    functionLinenumberEnd: 1343
    functionName: tls13_ServerSendHrrCookieXtn
    functionSourceFile: /src/nss/lib/ssl/tls13exthandle.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - sslBuffer_AppendVariable
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_ServerSendHrrCookieXtn(const sslSocket *ss, TLSExtensionData
      *xtnData,\n                             sslBuffer *buf, PRBool *added)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_ExtSendAlert
      Src: /src/nss/lib/ssl/tls13exthandle.c:1350,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13exthandle.c:1351,1
    - Dst: ssl3_ExtensionAdvertised
      Src: /src/nss/lib/ssl/tls13exthandle.c:1354,1
    - Dst: ssl3_ExtSendAlert
      Src: /src/nss/lib/ssl/tls13exthandle.c:1355,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13exthandle.c:1356,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13exthandle.c:1360,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13exthandle.c:1361,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13exthandle.c:1364,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13exthandle.c:1365,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13exthandle.c:1366,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/ssl/tls13exthandle.c:1367,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - ss
    - xtnData
    - data
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1373
      start: 1345
    functionDepth: 1
    functionLinenumber: 1345
    functionLinenumberEnd: 1373
    functionName: tls13_ClientHandleHrrEchXtn
    functionSourceFile: /src/nss/lib/ssl/tls13exthandle.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_ZNew
    - SSL_TRC
    - SSL_GETPID
    - ssl3_ExtensionAdvertised
    - ssl3_ExtSendAlert
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_ClientHandleHrrEchXtn(const sslSocket *ss, TLSExtensionData
      *xtnData,\n                            SECItem *data)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PR_INIT_CLIST
      Src: /src/nss/lib/ssl/tls13exthandle.c:1381,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13exthandle.c:1388,1
    - Dst: ssl3_ExtSendAlert
      Src: /src/nss/lib/ssl/tls13exthandle.c:1389,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13exthandle.c:1398,1
    - Dst: ssl3_ExtSendAlert
      Src: /src/nss/lib/ssl/tls13exthandle.c:1401,1
    - Dst: ssl3_ExtSendAlert
      Src: /src/nss/lib/ssl/tls13exthandle.c:1405,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13exthandle.c:1410,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/ssl/tls13exthandle.c:1411,1
    - Dst: tls13_DecodeEchConfigs
      Src: /src/nss/lib/ssl/tls13exthandle.c:1418,1
    - Dst: ssl3_ExtSendAlert
      Src: /src/nss/lib/ssl/tls13exthandle.c:1420,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13exthandle.c:1421,1
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/lib/ssl/tls13exthandle.c:1427,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/ssl/tls13exthandle.c:1428,1
    - Dst: tls13_DestroyEchConfigs
      Src: /src/nss/lib/ssl/tls13exthandle.c:1430,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 3
    argNames:
    - ss
    - xtnData
    - data
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1433
      start: 1375
    functionDepth: 1
    functionLinenumber: 1375
    functionLinenumberEnd: 1433
    functionName: tls13_ClientHandleEchXtn
    functionSourceFile: /src/nss/lib/ssl/tls13exthandle.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - tls13_DecodeEchConfigs
    - PORT_ZNew
    - tls13_DestroyEchConfigs
    - SECITEM_CopyItem
    - ssl3_ExtSendAlert
    - PORT_SetError
    - PR_INIT_CLIST
    - PR_CLIST_IS_EMPTY
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_ClientHandleEchXtn(const sslSocket *ss, TLSExtensionData
      *xtnData,\n                         SECItem *data)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_FilterSigAlgs
      Src: /src/nss/lib/ssl/tls13exthandle.c:1455,1
    - Dst: ssl3_EncodeFilteredSigAlgs
      Src: /src/nss/lib/ssl/tls13exthandle.c:1470,1
    - Dst: PORT_ZNewArray
      Src: /src/nss/lib/ssl/tls13exthandle.c:1476,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/tls13exthandle.c:1486,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 4
    argNames:
    - ss
    - xtnData
    - buf
    - added
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - sslBuffer*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1492
      start: 1437
    functionDepth: 1
    functionLinenumber: 1437
    functionLinenumberEnd: 1492
    functionName: tls13_ClientSendDelegatedCredentialsXtn
    functionSourceFile: /src/nss/lib/ssl/tls13exthandle.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - ssl3_FilterSigAlgs
    - PORT_ZNewArray
    - ssl3_EncodeFilteredSigAlgs
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_ClientSendDelegatedCredentialsXtn(const sslSocket
      *ss,\n                                        TLSExtensionData *xtnData,\n                                        sslBuffer
      *buf, PRBool *added)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_ExtSendAlert
      Src: /src/nss/lib/ssl/tls13exthandle.c:1508,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13exthandle.c:1509,1
    - Dst: tls13_ReadDelegatedCredential
      Src: /src/nss/lib/ssl/tls13exthandle.c:1514,1
    - Dst: ssl3_ExtSendAlert
      Src: /src/nss/lib/ssl/tls13exthandle.c:1561,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13exthandle.c:1562,1
    - Dst: tls13_DestroyDelegatedCredential
      Src: /src/nss/lib/ssl/tls13exthandle.c:1564,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 48
    argCount: 3
    argNames:
    - ss
    - xtnData
    - data
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1566
      start: 1501
    functionDepth: 1
    functionLinenumber: 1501
    functionLinenumberEnd: 1566
    functionName: tls13_ClientHandleDelegatedCredentialsXtn
    functionSourceFile: /src/nss/lib/ssl/tls13exthandle.c
    functionUses: 0
    functionsReached:
    - ssl3_ExtSendAlert
    - tls13_ReadDelegatedCredential
    - PORT_SetError
    - tls13_DestroyDelegatedCredential
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_ClientHandleDelegatedCredentialsXtn(const sslSocket
      *ss,\n                                          TLSExtensionData *xtnData,\n
      \                                         SECItem *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tls13_IsSigningWithDelegatedCredential
      Src: /src/nss/lib/ssl/tls13exthandle.c:1574,1
    - Dst: sslBuffer_Append
      Src: /src/nss/lib/ssl/tls13exthandle.c:1577,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - ss
    - xtnData
    - buf
    - added
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - sslBuffer*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1584
      start: 1569
    functionDepth: 1
    functionLinenumber: 1569
    functionLinenumberEnd: 1584
    functionName: tls13_ServerSendDelegatedCredentialsXtn
    functionSourceFile: /src/nss/lib/ssl/tls13exthandle.c
    functionUses: 0
    functionsReached:
    - tls13_IsSigningWithDelegatedCredential
    - sslBuffer_Append
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_ServerSendDelegatedCredentialsXtn(const sslSocket
      *ss,\n                                        TLSExtensionData *xtnData,\n                                        sslBuffer
      *buf, PRBool *added)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/tls13exthandle.c:1595,1
    - Dst: ssl_ParseSignatureSchemes
      Src: /src/nss/lib/ssl/tls13exthandle.c:1599,1
    - Dst: ssl3_ExtSendAlert
      Src: /src/nss/lib/ssl/tls13exthandle.c:1604,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13exthandle.c:1605,1
    - Dst: ssl3_ExtSendAlert
      Src: /src/nss/lib/ssl/tls13exthandle.c:1609,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13exthandle.c:1610,1
    - Dst: ssl3_ExtSendAlert
      Src: /src/nss/lib/ssl/tls13exthandle.c:1615,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13exthandle.c:1616,1
    - Dst: ssl3_RegisterExtensionSender
      Src: /src/nss/lib/ssl/tls13exthandle.c:1625,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 3
    argNames:
    - ss
    - xtnData
    - data
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1628
      start: 1589
    functionDepth: 1
    functionLinenumber: 1589
    functionLinenumberEnd: 1628
    functionName: tls13_ServerHandleDelegatedCredentialsXtn
    functionSourceFile: /src/nss/lib/ssl/tls13exthandle.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - ssl3_ExtSendAlert
    - ssl_ParseSignatureSchemes
    - PORT_SetError
    - ssl3_RegisterExtensionSender
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_ServerHandleDelegatedCredentialsXtn(const sslSocket
      *ss,\n                                          TLSExtensionData *xtnData,\n
      \                                         SECItem *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13exthandle.c:1637,1
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/lib/ssl/tls13exthandle.c:1638,1
    - Dst: PR_LIST_HEAD
      Src: /src/nss/lib/ssl/tls13exthandle.c:1642,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/tls13exthandle.c:1643,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - ss
    - xtnData
    - buf
    - added
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - sslBuffer*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1650
      start: 1631
    functionDepth: 1
    functionLinenumber: 1631
    functionLinenumberEnd: 1650
    functionName: tls13_ServerSendEchXtn
    functionSourceFile: /src/nss/lib/ssl/tls13exthandle.c
    functionUses: 0
    functionsReached:
    - PR_LIST_HEAD
    - PORT_Assert
    - sslBuffer_AppendVariable
    - PR_CLIST_IS_EMPTY
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_ServerSendEchXtn(const sslSocket *ss,\n                       TLSExtensionData
      *xtnData,\n                       sslBuffer *buf, PRBool *added)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13exthandle.c:1673,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13exthandle.c:1674,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13exthandle.c:1677,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13exthandle.c:1678,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/tls13exthandle.c:1679,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/tls13exthandle.c:1679,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/tls13exthandle.c:1680,1
    - Dst: sslBuffer_AppendBuffer
      Src: /src/nss/lib/ssl/tls13exthandle.c:1681,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 4
    argNames:
    - ss
    - xtnData
    - buf
    - added
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - sslBuffer*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1687
      start: 1662
    functionDepth: 1
    functionLinenumber: 1662
    functionLinenumberEnd: 1687
    functionName: tls13_ServerSendHrrEchXtn
    functionSourceFile: /src/nss/lib/ssl/tls13exthandle.c
    functionUses: 0
    functionsReached:
    - SSL_BUFFER_LEN
    - SSL_TRC
    - SSL_GETPID
    - PRINT_BUF
    - sslBuffer_AppendBuffer
    - PR_ASSERT
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_ServerSendHrrEchXtn(const sslSocket *ss, TLSExtensionData
      *xtnData,\n                          sslBuffer *buf, PRBool *added)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSL_READER
      Src: /src/nss/lib/ssl/tls13exthandle.c:1694,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/tls13exthandle.c:1696,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/tls13exthandle.c:1697,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/tls13exthandle.c:1699,1
    - Dst: SSL_READER_REMAINING
      Src: /src/nss/lib/ssl/tls13exthandle.c:1706,1
    - Dst: ssl3_ExtSendAlert
      Src: /src/nss/lib/ssl/tls13exthandle.c:1716,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13exthandle.c:1717,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - ss
    - xtnData
    - data
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1719
      start: 1689
    functionDepth: 1
    functionLinenumber: 1689
    functionLinenumberEnd: 1719
    functionName: tls13_ServerHandleInnerEchXtn
    functionSourceFile: /src/nss/lib/ssl/tls13exthandle.c
    functionUses: 0
    functionsReached:
    - PR_ASSERT
    - ssl3_ExtSendAlert
    - PORT_SetError
    - sslRead_ReadNumber
    - SSL_READER
    - SSL_READER_REMAINING
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_ServerHandleInnerEchXtn(const sslSocket *ss, TLSExtensionData
      *xtnData,\n                              SECItem *data)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_ExtConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/tls13exthandle.c:1734,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13exthandle.c:1739,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13exthandle.c:1740,1
    - Dst: ssl3_ExtSendAlert
      Src: /src/nss/lib/ssl/tls13exthandle.c:1746,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13exthandle.c:1747,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13exthandle.c:1750,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/ssl/tls13exthandle.c:1751,1
    - Dst: tls13_ServerHandleInnerEchXtn
      Src: /src/nss/lib/ssl/tls13exthandle.c:1758,1
    - Dst: ssl3_ExtSendAlert
      Src: /src/nss/lib/ssl/tls13exthandle.c:1761,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13exthandle.c:1762,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13exthandle.c:1766,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13exthandle.c:1767,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13exthandle.c:1769,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/ssl/tls13exthandle.c:1770,1
    - Dst: ssl3_ExtConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/tls13exthandle.c:1776,1
    - Dst: ssl3_ExtConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/tls13exthandle.c:1782,1
    - Dst: ssl3_ExtConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/tls13exthandle.c:1790,1
    - Dst: ssl3_ExtConsumeHandshakeVariable
      Src: /src/nss/lib/ssl/tls13exthandle.c:1798,1
    - Dst: ssl3_ExtConsumeHandshakeVariable
      Src: /src/nss/lib/ssl/tls13exthandle.c:1806,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/ssl/tls13exthandle.c:1822,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/ssl/tls13exthandle.c:1828,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/tls13exthandle.c:1829,1
    - Dst: ssl3_ExtSendAlert
      Src: /src/nss/lib/ssl/tls13exthandle.c:1841,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13exthandle.c:1842,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 94
    argCount: 3
    argNames:
    - ss
    - xtnData
    - data
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1844
      start: 1721
    functionDepth: 2
    functionLinenumber: 1721
    functionLinenumberEnd: 1844
    functionName: tls13_ServerHandleOuterEchXtn
    functionSourceFile: /src/nss/lib/ssl/tls13exthandle.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_ZNew
    - SSL_TRC
    - ssl3_ExtConsumeHandshakeNumber
    - SSL_GETPID
    - PRINT_BUF
    - SECITEM_CopyItem
    - ssl3_ExtSendAlert
    - PORT_SetError
    - ssl3_ExtConsumeHandshakeVariable
    - tls13_ServerHandleInnerEchXtn
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_ServerHandleOuterEchXtn(const sslSocket *ss, TLSExtensionData
      *xtnData,\n                              SECItem *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 4
    argNames:
    - ss
    - xtnData
    - buf
    - added
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - sslBuffer*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1859
      start: 1846
    functionDepth: 0
    functionLinenumber: 1846
    functionLinenumberEnd: 1859
    functionName: tls13_SendEmptyGreaseXtn
    functionSourceFile: /src/nss/lib/ssl/tls13exthandle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_SendEmptyGreaseXtn(const sslSocket *ss,\n                         TLSExtensionData
      *xtnData,\n                         sslBuffer *buf, PRBool *added)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/tls13exthandle.c:1872,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 4
    argNames:
    - ss
    - xtnData
    - buf
    - added
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - sslBuffer*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1879
      start: 1861
    functionDepth: 1
    functionLinenumber: 1861
    functionLinenumberEnd: 1879
    functionName: tls13_SendGreaseXtn
    functionSourceFile: /src/nss/lib/ssl/tls13exthandle.c
    functionUses: 0
    functionsReached:
    - sslBuffer_AppendVariable
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_SendGreaseXtn(const sslSocket *ss,\n                    TLSExtensionData
      *xtnData,\n                    sslBuffer *buf, PRBool *added)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13exthandle.c:1900,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13exthandle.c:1901,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13exthandle.c:1907,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13exthandle.c:1908,1
    - Dst: SSL_ROLE
      Src: /src/nss/lib/ssl/tls13exthandle.c:1908,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13exthandle.c:1912,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13exthandle.c:1913,1
    - Dst: SSL_ROLE
      Src: /src/nss/lib/ssl/tls13exthandle.c:1913,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13exthandle.c:1914,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13exthandle.c:1916,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13exthandle.c:1922,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 4
    argNames:
    - ss
    - xtnData
    - buf
    - added
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - sslBuffer*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1931
      start: 1881
    functionDepth: 1
    functionLinenumber: 1881
    functionLinenumberEnd: 1931
    functionName: ssl3_SendCertificateCompressionXtn
    functionSourceFile: /src/nss/lib/ssl/tls13exthandle.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SSL_ROLE
    - SSL_TRC
    - SSL_GETPID
    - sslBuffer_AppendNumber
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_SendCertificateCompressionXtn(const sslSocket *ss,\n
      \                                  TLSExtensionData *xtnData,\n                                   sslBuffer
      *buf, PRBool *added)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ss
    - alg
    argTypes:
    - sslSocket*
    - SSLCertificateCompressionAlgorithmID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1942
      start: 1933
    functionDepth: 0
    functionLinenumber: 1933
    functionLinenumberEnd: 1942
    functionName: ssl3_mapCertificateCompressionAlgorithmToName
    functionSourceFile: /src/nss/lib/ssl/tls13exthandle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      ssl3_mapCertificateCompressionAlgorithmToName(const sslSocket *ss, SSLCertificateCompressionAlgorithmID
      alg)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13exthandle.c:1953,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13exthandle.c:1954,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13exthandle.c:1962,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13exthandle.c:1963,1
    - Dst: SSL_ROLE
      Src: /src/nss/lib/ssl/tls13exthandle.c:1963,1
    - Dst: ssl3_ExtConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/tls13exthandle.c:1965,1
    - Dst: ssl3_ExtConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/tls13exthandle.c:1983,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13exthandle.c:1990,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13exthandle.c:1991,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13exthandle.c:2010,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13exthandle.c:2011,1
    - Dst: SSL_ROLE
      Src: /src/nss/lib/ssl/tls13exthandle.c:2011,1
    - Dst: ssl3_mapCertificateCompressionAlgorithmToName
      Src: /src/nss/lib/ssl/tls13exthandle.c:2012,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13exthandle.c:2014,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13exthandle.c:2015,1
    - Dst: SSL_ROLE
      Src: /src/nss/lib/ssl/tls13exthandle.c:2015,1
    - Dst: ssl3_ExtDecodeError
      Src: /src/nss/lib/ssl/tls13exthandle.c:2021,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 51
    argCount: 3
    argNames:
    - ss
    - xtnData
    - data
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2023
      start: 1944
    functionDepth: 1
    functionLinenumber: 1944
    functionLinenumberEnd: 2023
    functionName: ssl3_HandleCertificateCompressionXtn
    functionSourceFile: /src/nss/lib/ssl/tls13exthandle.c
    functionUses: 0
    functionsReached:
    - SSL_ROLE
    - SSL_TRC
    - ssl3_ExtConsumeHandshakeNumber
    - SSL_GETPID
    - ssl3_mapCertificateCompressionAlgorithmToName
    - ssl3_ExtDecodeError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_HandleCertificateCompressionXtn(const sslSocket *ss,\n
      \                                    TLSExtensionData *xtnData,\n                                     SECItem
      *data)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: SSL_BUFFER
      Src: /src/nss/lib/ssl/tls13hashstate.c:46,1
    - Dst: sslBuffer_Append
      Src: /src/nss/lib/ssl/tls13hashstate.c:51,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13hashstate.c:55,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13hashstate.c:59,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13hashstate.c:67,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13hashstate.c:72,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13hashstate.c:78,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13hashstate.c:82,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/tls13hashstate.c:91,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/tls13hashstate.c:91,1
    - Dst: sslBuffer_AppendBuffer
      Src: /src/nss/lib/ssl/tls13hashstate.c:92,1
    - Dst: PK11_HPKE_ExportContext
      Src: /src/nss/lib/ssl/tls13hashstate.c:99,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/tls13hashstate.c:103,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/ssl/tls13hashstate.c:104,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13hashstate.c:107,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13hashstate.c:113,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/tls13hashstate.c:120,1
    - Dst: tls13_ComputeHandshakeHashes
      Src: /src/nss/lib/ssl/tls13hashstate.c:126,1
    - Dst: sslBuffer_Append
      Src: /src/nss/lib/ssl/tls13hashstate.c:130,1
    - Dst: ssl_SelfEncryptProtect
      Src: /src/nss/lib/ssl/tls13hashstate.c:136,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 71
    argCount: 7
    argNames:
    - ss
    - selectedGroup
    - appToken
    - appTokenLen
    - buf
    - len
    - maxlen
    argTypes:
    - sslSocket*
    - sslNamedGroupDef*
    - PRUint8*
    - unsigned int
    - PRUint8*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 38
    functionDepth: 3
    functionLinenumber: 38
    functionLinenumberEnd: 143
    functionName: tls13_MakeHrrCookie
    functionSourceFile: /src/nss/lib/ssl/tls13hashstate.c
    functionUses: 0
    functionsReached:
    - ssl_SelfEncryptProtect
    - SSL_BUFFER_LEN
    - sslBuffer_AppendVariable
    - sslBuffer_AppendBuffer
    - PR_ASSERT
    - sslBuffer_AppendNumber
    - SSL_BUFFER
    - tls13_ComputeHandshakeHashes
    - PK11_HPKE_ExportContext
    - SECITEM_ZfreeItem
    - sslBuffer_Append
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_MakeHrrCookie(sslSocket *ss, const sslNamedGroupDef
      *selectedGroup,\n                    const PRUint8 *appToken, unsigned int appTokenLen,\n
      \                   PRUint8 *buf, unsigned int *len, unsigned int maxlen)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: ssl_SelfEncryptUnprotect
      Src: /src/nss/lib/ssl/tls13hashstate.c:175,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13hashstate.c:178,1
    - Dst: SSL_READER
      Src: /src/nss/lib/ssl/tls13hashstate.c:182,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/tls13hashstate.c:185,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13hashstate.c:187,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/tls13hashstate.c:191,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13hashstate.c:193,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/tls13hashstate.c:198,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13hashstate.c:200,1
    - Dst: ssl_LookupNamedGroup
      Src: /src/nss/lib/ssl/tls13hashstate.c:203,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/tls13hashstate.c:206,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13hashstate.c:208,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/tls13hashstate.c:215,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13hashstate.c:217,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/tls13hashstate.c:223,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13hashstate.c:225,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/tls13hashstate.c:230,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13hashstate.c:232,1
    - Dst: sslRead_Read
      Src: /src/nss/lib/ssl/tls13hashstate.c:238,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13hashstate.c:240,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/tls13hashstate.c:243,1
    - Dst: sslRead_ReadVariable
      Src: /src/nss/lib/ssl/tls13hashstate.c:246,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13hashstate.c:248,1
    - Dst: CONST_CAST
      Src: /src/nss/lib/ssl/tls13hashstate.c:252,1
    - Dst: PK11_HPKE_ImportContext
      Src: /src/nss/lib/ssl/tls13hashstate.c:254,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13hashstate.c:256,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/tls13hashstate.c:256,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/tls13hashstate.c:263,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13hashstate.c:265,1
    - Dst: sslRead_Read
      Src: /src/nss/lib/ssl/tls13hashstate.c:269,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13hashstate.c:271,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13hashstate.c:274,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13hashstate.c:277,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/ssl/tls13hashstate.c:278,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13hashstate.c:280,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/tls13hashstate.c:280,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/tls13hashstate.c:283,1
    - Dst: SSL_READER_REMAINING
      Src: /src/nss/lib/ssl/tls13hashstate.c:287,1
    - Dst: tls13_GetHashSize
      Src: /src/nss/lib/ssl/tls13hashstate.c:288,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13hashstate.c:289,1
    - Dst: SSL_ASSERT_HASHES_EMPTY
      Src: /src/nss/lib/ssl/tls13hashstate.c:294,1
    - Dst: ssl_HashHandshakeMessageInt
      Src: /src/nss/lib/ssl/tls13hashstate.c:295,1
    - Dst: SSL_READER_CURRENT
      Src: /src/nss/lib/ssl/tls13hashstate.c:296,1
    - Dst: tls13_ConstructHelloRetryRequest
      Src: /src/nss/lib/ssl/tls13hashstate.c:303,1
    - Dst: ssl_HashHandshakeMessageInt
      Src: /src/nss/lib/ssl/tls13hashstate.c:312,1
    - Dst: SSL_BUFFER_BASE
      Src: /src/nss/lib/ssl/tls13hashstate.c:313,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/tls13hashstate.c:314,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/tls13hashstate.c:316,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/tls13hashstate.c:329,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 115
    argCount: 8
    argNames:
    - ss
    - cookie
    - cookieLen
    - previousCipherSuite
    - previousGroup
    - previousOfferedEch
    - echData
    - recoverState
    argTypes:
    - sslSocket*
    - unsigned char*
    - unsigned int
    - ssl3CipherSuite*
    - sslNamedGroupDef**
    - PRBool*
    - sslEchCookieData*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 151
    functionDepth: 10
    functionLinenumber: 151
    functionLinenumberEnd: 332
    functionName: tls13_HandleHrrCookie
    functionSourceFile: /src/nss/lib/ssl/tls13hashstate.c
    functionUses: 0
    functionsReached:
    - ssl_LookupNamedGroup
    - SSL_READER_REMAINING
    - PK11_HPKE_ImportContext
    - SSL_BUFFER_LEN
    - PORT_Memcpy
    - ssl_SelfEncryptUnprotect
    - FATAL_ERROR
    - sslRead_ReadNumber
    - tls13_ConstructHelloRetryRequest
    - ssl_HashHandshakeMessageInt
    - PORT_Assert
    - SSL_READER_CURRENT
    - SECITEM_AllocItem
    - SSL_READER
    - sslBuffer_Clear
    - CONST_CAST
    - SSL_BUFFER_BASE
    - sslRead_ReadVariable
    - SSL_ASSERT_HASHES_EMPTY
    - SSL_TRC
    - PORT_GetError
    - sslRead_Read
    - tls13_GetHashSize
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_HandleHrrCookie(sslSocket *ss,\n                      unsigned
      char *cookie, unsigned int cookieLen,\n                      ssl3CipherSuite
      *previousCipherSuite,\n                      const sslNamedGroupDef **previousGroup,\n
      \                     PRBool *previousOfferedEch,\n                      sslEchCookieData
      *echData,\n                      PRBool recoverState)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslauth.c:19,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslauth.c:21,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslauth.c:22,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/ssl/sslauth.c:26,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - fd
    argTypes:
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 14
    functionDepth: 2
    functionLinenumber: 14
    functionLinenumberEnd: 29
    functionName: SSL_PeerCertificate
    functionSourceFile: /src/nss/lib/ssl/sslauth.c
    functionUses: 5
    functionsReached:
    - ssl_FindSocket
    - CERT_DupCertificate
    - SSL_GETPID
    - SSL_DBG
    linkageType: ''
    returnType: CERTCertificate
    signature: 'CERTCertificate *

      SSL_PeerCertificate(PRFileDesc *fd)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslauth.c:42,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslauth.c:44,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslauth.c:45,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslauth.c:49,1
    - Dst: SECITEM_AllocArray
      Src: /src/nss/lib/ssl/sslauth.c:58,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/ssl/sslauth.c:64,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/ssl/sslauth.c:70,1
    - Dst: SECITEM_FreeArray
      Src: /src/nss/lib/ssl/sslauth.c:80,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 2
    argNames:
    - fd
    - out
    argTypes:
    - PRFileDesc*
    - SECItemArray**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 32
    functionDepth: 2
    functionLinenumber: 32
    functionLinenumberEnd: 82
    functionName: SSLExp_PeerCertificateChainDER
    functionSourceFile: /src/nss/lib/ssl/sslauth.c
    functionUses: 0
    functionsReached:
    - SSL_GETPID
    - SECITEM_CopyItem
    - SECITEM_FreeArray
    - PORT_SetError
    - SSL_DBG
    - SECITEM_AllocArray
    - ssl_FindSocket
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSLExp_PeerCertificateChainDER(PRFileDesc *fd, SECItemArray
      **out)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslauth.c:93,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslauth.c:95,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslauth.c:96,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslauth.c:100,1
    - Dst: CERT_NewCertList
      Src: /src/nss/lib/ssl/sslauth.c:103,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/ssl/sslauth.c:107,1
    - Dst: CERT_AddCertToListTail
      Src: /src/nss/lib/ssl/sslauth.c:108,1
    - Dst: CERT_NewTempCertificate
      Src: /src/nss/lib/ssl/sslauth.c:112,1
    - Dst: CERT_AddCertToListTail
      Src: /src/nss/lib/ssl/sslauth.c:114,1
    - Dst: CERT_DestroyCertList
      Src: /src/nss/lib/ssl/sslauth.c:121,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 1
    argNames:
    - fd
    argTypes:
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 85
    functionDepth: 9
    functionLinenumber: 85
    functionLinenumberEnd: 123
    functionName: SSL_PeerCertificateChain
    functionSourceFile: /src/nss/lib/ssl/sslauth.c
    functionUses: 2
    functionsReached:
    - SSL_GETPID
    - CERT_NewCertList
    - PORT_SetError
    - SSL_DBG
    - CERT_DupCertificate
    - CERT_AddCertToListTail
    - ssl_FindSocket
    - CERT_NewTempCertificate
    - CERT_DestroyCertList
    linkageType: ''
    returnType: CERTCertList
    signature: 'CERTCertList *

      SSL_PeerCertificateChain(PRFileDesc *fd)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslauth.c:131,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslauth.c:133,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslauth.c:134,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/ssl/sslauth.c:139,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/ssl/sslauth.c:142,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - fd
    argTypes:
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 146
    functionName: SSL_LocalCertificate
    functionSourceFile: /src/nss/lib/ssl/sslauth.c
    functionUses: 2
    functionsReached:
    - ssl_FindSocket
    - CERT_DupCertificate
    - SSL_GETPID
    - SSL_DBG
    linkageType: ''
    returnType: CERTCertificate
    signature: 'CERTCertificate *

      SSL_LocalCertificate(PRFileDesc *fd)'
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslauth.c:155,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslauth.c:157,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslauth.c:158,1
    - Dst: ssl_GetBulkCipherDef
      Src: /src/nss/lib/ssl/sslauth.c:180,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/ssl/sslauth.c:182,1
    - Dst: PORT_Strstr
      Src: /src/nss/lib/ssl/sslauth.c:184,1
    - Dst: CERT_NameToAscii
      Src: /src/nss/lib/ssl/sslauth.c:214,1
    - Dst: CERT_NameToAscii
      Src: /src/nss/lib/ssl/sslauth.c:217,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/ssl/sslauth.c:221,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/ssl/sslauth.c:224,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 67
    argCount: 7
    argNames:
    - fd
    - op
    - cp
    - kp0
    - kp1
    - ip
    - sp
    argTypes:
    - PRFileDesc*
    - int*
    - char**
    - int*
    - int*
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 149
    functionDepth: 6
    functionLinenumber: 149
    functionLinenumberEnd: 231
    functionName: SSL_SecurityStatus
    functionSourceFile: /src/nss/lib/ssl/sslauth.c
    functionUses: 1
    functionsReached:
    - CERT_NameToAscii
    - ssl_GetBulkCipherDef
    - SSL_GETPID
    - SSL_DBG
    - ssl_FindSocket
    - PORT_Strdup
    - PORT_Strstr
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSL_SecurityStatus(PRFileDesc *fd, int *op, char **cp, int
      *kp0, int *kp1,\n                   char **ip, char **sp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslauth.c:241,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslauth.c:243,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslauth.c:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - s
    - func
    - arg
    argTypes:
    - PRFileDesc*
    - SSLAuthCertificate
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 252
    functionName: SSL_AuthCertificateHook
    functionSourceFile: /src/nss/lib/ssl/sslauth.c
    functionUses: 4
    functionsReached:
    - ssl_FindSocket
    - SSL_GETPID
    - SSL_DBG
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSL_AuthCertificateHook(PRFileDesc *s, SSLAuthCertificate
      func, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslauth.c:261,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslauth.c:263,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslauth.c:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - s
    - func
    - arg
    argTypes:
    - PRFileDesc*
    - SSLGetClientAuthData
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 255
    functionDepth: 2
    functionLinenumber: 255
    functionLinenumberEnd: 271
    functionName: SSL_GetClientAuthDataHook
    functionSourceFile: /src/nss/lib/ssl/sslauth.c
    functionUses: 3
    functionsReached:
    - ssl_FindSocket
    - SSL_GETPID
    - SSL_DBG
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSL_GetClientAuthDataHook(PRFileDesc *s, SSLGetClientAuthData
      func,\n                          void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslauth.c:279,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslauth.c:281,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslauth.c:282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - s
    - arg
    argTypes:
    - PRFileDesc*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 274
    functionDepth: 2
    functionLinenumber: 274
    functionLinenumberEnd: 288
    functionName: SSL_SetPKCS11PinArg
    functionSourceFile: /src/nss/lib/ssl/sslauth.c
    functionUses: 3
    functionsReached:
    - ssl_FindSocket
    - SSL_GETPID
    - SSL_DBG
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSL_SetPKCS11PinArg(PRFileDesc *s, void *arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslauth.c:304,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslauth.c:305,1
    - Dst: ssl_Time
      Src: /src/nss/lib/ssl/sslauth.c:313,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslauth.c:315,1
    - Dst: CERT_CacheOCSPResponseFromSideChannel
      Src: /src/nss/lib/ssl/sslauth.c:316,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslauth.c:320,1
    - Dst: PR_GetError
      Src: /src/nss/lib/ssl/sslauth.c:320,1
    - Dst: SSL_PeerCertificateChain
      Src: /src/nss/lib/ssl/sslauth.c:330,1
    - Dst: CERT_VerifyCert
      Src: /src/nss/lib/ssl/sslauth.c:332,1
    - Dst: CERT_DestroyCertList
      Src: /src/nss/lib/ssl/sslauth.c:335,1
    - Dst: CERT_VerifyCertName
      Src: /src/nss/lib/ssl/sslauth.c:346,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslauth.c:350,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 4
    argNames:
    - arg
    - fd
    - checkSig
    - isServer
    argTypes:
    - void*
    - PRFileDesc*
    - PRBool
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 294
    functionDepth: 15
    functionLinenumber: 294
    functionLinenumberEnd: 353
    functionName: SSL_AuthCertificate
    functionSourceFile: /src/nss/lib/ssl/sslauth.c
    functionUses: 4
    functionsReached:
    - PORT_Assert
    - SSL_PeerCertificateChain
    - ssl_Time
    - CERT_VerifyCert
    - PORT_SetError
    - CERT_VerifyCertName
    - CERT_CacheOCSPResponseFromSideChannel
    - PR_GetError
    - ssl_FindSocket
    - CERT_DestroyCertList
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSL_AuthCertificate(void *arg, PRFileDesc *fd, PRBool checkSig,
      PRBool isServer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - spec
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: SPEC_DIR
    functionSourceFile: /src/nss/lib/ssl/sslspec.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPEC_DIR(spec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslcert.c:28,1
    - Dst: CERT_FreeDistNames
      Src: /src/nss/lib/ssl/sslcert.c:30,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/ssl/sslcert.c:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - appData
    - nssData
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 34
    functionName: ssl_ServerCAListShutdown
    functionSourceFile: /src/nss/lib/ssl/sslcert.c
    functionUses: 0
    functionsReached:
    - PORT_Memset
    - PORT_Assert
    - CERT_FreeDistNames
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl_ServerCAListShutdown(void *appData, void *nssData)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSS_RegisterShutdown
      Src: /src/nss/lib/ssl/sslcert.c:40,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslcert.c:41,1
    - Dst: CERT_GetSSLCACerts
      Src: /src/nss/lib/ssl/sslcert.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 36
    functionDepth: 5
    functionLinenumber: 36
    functionLinenumberEnd: 47
    functionName: ssl_SetupCAListOnce
    functionSourceFile: /src/nss/lib/ssl/sslcert.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - NSS_RegisterShutdown
    - CERT_GetSSLCACerts
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus ssl_SetupCAListOnce(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_CallOnceWithArg
      Src: /src/nss/lib/ssl/sslcert.c:52,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslcert.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 59
    functionName: ssl_SetupCAList
    functionSourceFile: /src/nss/lib/ssl/sslcert.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PR_CallOnceWithArg
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl_SetupCAList(const sslSocket *ss)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ssl_SetupCAList
      Src: /src/nss/lib/ssl/sslcert.c:76,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - ss
    - calen
    - names
    - nnames
    argTypes:
    - sslSocket*
    - unsigned int*
    - SECItem**
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 91
    functionName: ssl_GetCertificateRequestCAs
    functionSourceFile: /src/nss/lib/ssl/sslcert.c
    functionUses: 1
    functionsReached:
    - ssl_SetupCAList
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_GetCertificateRequestCAs(const sslSocket *ss, unsigned
      int *calen,\n                             const SECItem **names, unsigned int
      *nnames)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZNew
      Src: /src/nss/lib/ssl/sslcert.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 109
    functionName: ssl_NewServerCert
    functionSourceFile: /src/nss/lib/ssl/sslcert.c
    functionUses: 0
    functionsReached:
    - PORT_ZNew
    linkageType: ''
    returnType: sslServerCert
    signature: 'sslServerCert *

      ssl_NewServerCert()'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ssl_NewServerCert
      Src: /src/nss/lib/ssl/sslcert.c:116,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/ssl/sslcert.c:125,1
    - Dst: CERT_DupCertList
      Src: /src/nss/lib/ssl/sslcert.c:128,1
    - Dst: ssl_GetKeyPairRef
      Src: /src/nss/lib/ssl/sslcert.c:137,1
    - Dst: SECITEM_DupArray
      Src: /src/nss/lib/ssl/sslcert.c:146,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/ssl/sslcert.c:153,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/ssl/sslcert.c:158,1
    - Dst: ssl_GetKeyPairRef
      Src: /src/nss/lib/ssl/sslcert.c:162,1
    - Dst: ssl_FreeServerCert
      Src: /src/nss/lib/ssl/sslcert.c:167,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 53
    argCount: 1
    argNames:
    - oc
    argTypes:
    - sslServerCert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 169
    functionName: ssl_CopyServerCert
    functionSourceFile: /src/nss/lib/ssl/sslcert.c
    functionUses: 2
    functionsReached:
    - SECITEM_DupArray
    - ssl_GetKeyPairRef
    - SECITEM_CopyItem
    - CERT_DupCertificate
    - CERT_DupCertList
    - ssl_FreeServerCert
    - ssl_NewServerCert
    linkageType: ''
    returnType: sslServerCert
    signature: 'sslServerCert *

      ssl_CopyServerCert(const sslServerCert *oc)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/ssl/sslcert.c:179,1
    - Dst: CERT_DestroyCertificateList
      Src: /src/nss/lib/ssl/sslcert.c:182,1
    - Dst: ssl_FreeKeyPair
      Src: /src/nss/lib/ssl/sslcert.c:185,1
    - Dst: SECITEM_FreeArray
      Src: /src/nss/lib/ssl/sslcert.c:188,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/sslcert.c:191,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/sslcert.c:194,1
    - Dst: ssl_FreeKeyPair
      Src: /src/nss/lib/ssl/sslcert.c:197,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/ssl/sslcert.c:199,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - sc
    argTypes:
    - sslServerCert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 171
    functionDepth: 8
    functionLinenumber: 171
    functionLinenumberEnd: 200
    functionName: ssl_FreeServerCert
    functionSourceFile: /src/nss/lib/ssl/sslcert.c
    functionUses: 3
    functionsReached:
    - PORT_ZFree
    - ssl_FreeKeyPair
    - SECITEM_FreeArray
    - CERT_DestroyCertificateList
    - CERT_DestroyCertificate
    - SECITEM_FreeItem
    linkageType: ''
    returnType: void
    signature: void ssl_FreeServerCert(sslServerCert *sc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/sslcert.c:213,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/sslcert.c:215,1
    - Dst: SSL_CERT_IS
      Src: /src/nss/lib/ssl/sslcert.c:217,1
    - Dst: SSL_CERT_IS_EC
      Src: /src/nss/lib/ssl/sslcert.c:220,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 3
    argNames:
    - ss
    - authType
    - namedCurve
    argTypes:
    - sslSocket*
    - SSLAuthType
    - sslNamedGroupDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 230
    functionName: ssl_FindServerCert
    functionSourceFile: /src/nss/lib/ssl/sslcert.c
    functionUses: 0
    functionsReached:
    - SSL_CERT_IS
    - PR_NEXT_LINK
    - SSL_CERT_IS_EC
    linkageType: ''
    returnType: sslServerCert
    signature: "sslServerCert *\nssl_FindServerCert(const sslSocket *ss, SSLAuthType
      authType,\n                   const sslNamedGroupDef *namedCurve)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/ssl/sslcert.c:237,1
    - Dst: CERT_DestroyCertificateList
      Src: /src/nss/lib/ssl/sslcert.c:240,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/ssl/sslcert.c:249,1
    - Dst: CERT_DupCertList
      Src: /src/nss/lib/ssl/sslcert.c:251,1
    - Dst: CERT_CertChainFromCert
      Src: /src/nss/lib/ssl/sslcert.c:254,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - sc
    - cert
    - certChain
    argTypes:
    - sslServerCert*
    - CERTCertificate*
    - CERTCertificateList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 232
    functionDepth: 8
    functionLinenumber: 232
    functionLinenumberEnd: 258
    functionName: ssl_PopulateServerCert
    functionSourceFile: /src/nss/lib/ssl/sslcert.c
    functionUses: 0
    functionsReached:
    - CERT_DestroyCertificateList
    - CERT_DupCertificate
    - CERT_DestroyCertificate
    - CERT_DupCertList
    - CERT_CertChainFromCert
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_PopulateServerCert(sslServerCert *sc, CERTCertificate
      *cert,\n                       const CERTCertificateList *certChain)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FreeKeyPair
      Src: /src/nss/lib/ssl/sslcert.c:264,1
    - Dst: SECKEY_GetPublicKeyType
      Src: /src/nss/lib/ssl/sslcert.c:268,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslcert.c:269,1
    - Dst: SECKEY_GetPrivateKeyType
      Src: /src/nss/lib/ssl/sslcert.c:269,1
    - Dst: ssl_ECPubKey2NamedGroup
      Src: /src/nss/lib/ssl/sslcert.c:272,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslcert.c:275,1
    - Dst: SECKEY_PublicKeyStrengthInBits
      Src: /src/nss/lib/ssl/sslcert.c:281,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslcert.c:284,1
    - Dst: SECKEY_CacheStaticFlags
      Src: /src/nss/lib/ssl/sslcert.c:288,1
    - Dst: ssl_GetKeyPairRef
      Src: /src/nss/lib/ssl/sslcert.c:289,1
    - Dst: SSL_CERT_IS
      Src: /src/nss/lib/ssl/sslcert.c:291,1
    - Dst: ssl_MaybeSetSelfEncryptKeyPair
      Src: /src/nss/lib/ssl/sslcert.c:294,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 2
    argNames:
    - sc
    - keyPair
    argTypes:
    - sslServerCert*
    - sslKeyPair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 260
    functionDepth: 3
    functionLinenumber: 260
    functionLinenumberEnd: 303
    functionName: ssl_PopulateKeyPair
    functionSourceFile: /src/nss/lib/ssl/sslcert.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SSL_CERT_IS
    - SECKEY_PublicKeyStrengthInBits
    - ssl_ECPubKey2NamedGroup
    - ssl_FreeKeyPair
    - SECKEY_CacheStaticFlags
    - ssl_GetKeyPairRef
    - PORT_SetError
    - SECKEY_GetPrivateKeyType
    - SECKEY_GetPublicKeyType
    - ssl_MaybeSetSelfEncryptKeyPair
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl_PopulateKeyPair(sslServerCert *sc, sslKeyPair *keyPair)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_FreeArray
      Src: /src/nss/lib/ssl/sslcert.c:310,1
    - Dst: SECITEM_DupArray
      Src: /src/nss/lib/ssl/sslcert.c:313,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - sc
    - stapledOCSPResponses
    argTypes:
    - sslServerCert*
    - SECItemArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 319
    functionName: ssl_PopulateOCSPResponses
    functionSourceFile: /src/nss/lib/ssl/sslcert.c
    functionUses: 0
    functionsReached:
    - SECITEM_DupArray
    - SECITEM_FreeArray
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_PopulateOCSPResponses(sslServerCert *sc,\n                          const
      SECItemArray *stapledOCSPResponses)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/sslcert.c:326,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/ssl/sslcert.c:329,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - sc
    - signedCertTimestamps
    argTypes:
    - sslServerCert*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 333
    functionName: ssl_PopulateSignedCertTimestamps
    functionSourceFile: /src/nss/lib/ssl/sslcert.c
    functionUses: 0
    functionsReached:
    - SECITEM_FreeItem
    - SECITEM_CopyItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_PopulateSignedCertTimestamps(sslServerCert *sc,\n                                 const
      SECItem *signedCertTimestamps)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/sslcert.c:349,1
    - Dst: ssl_FreeKeyPair
      Src: /src/nss/lib/ssl/sslcert.c:353,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslcert.c:364,1
    - Dst: tls13_ReadDelegatedCredential
      Src: /src/nss/lib/ssl/sslcert.c:369,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/ssl/sslcert.c:375,1
    - Dst: SECKEY_CopyPrivateKey
      Src: /src/nss/lib/ssl/sslcert.c:381,1
    - Dst: SECKEY_ExtractPublicKey
      Src: /src/nss/lib/ssl/sslcert.c:387,1
    - Dst: ssl_NewKeyPair
      Src: /src/nss/lib/ssl/sslcert.c:392,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslcert.c:396,1
    - Dst: tls13_DestroyDelegatedCredential
      Src: /src/nss/lib/ssl/sslcert.c:400,1
    - Dst: tls13_DestroyDelegatedCredential
      Src: /src/nss/lib/ssl/sslcert.c:404,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 47
    argCount: 3
    argNames:
    - sc
    - delegCred
    - delegCredPrivKey
    argTypes:
    - sslServerCert*
    - SECItem*
    - SECKEYPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 341
    functionDepth: 4
    functionLinenumber: 341
    functionLinenumberEnd: 406
    functionName: ssl_PopulateDelegatedCredential
    functionSourceFile: /src/nss/lib/ssl/sslcert.c
    functionUses: 0
    functionsReached:
    - ssl_NewKeyPair
    - ssl_FreeKeyPair
    - tls13_DestroyDelegatedCredential
    - SECITEM_CopyItem
    - PORT_SetError
    - tls13_ReadDelegatedCredential
    - SECKEY_ExtractPublicKey
    - SECITEM_FreeItem
    - SECKEY_CopyPrivateKey
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_PopulateDelegatedCredential(sslServerCert *sc,\n                                const
      SECItem *delegCred,\n                                const SECKEYPrivateKey
      *delegCredPrivKey)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/sslcert.c:415,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/sslcert.c:419,1
    - Dst: PR_REMOVE_LINK
      Src: /src/nss/lib/ssl/sslcert.c:430,1
    - Dst: ssl_FreeServerCert
      Src: /src/nss/lib/ssl/sslcert.c:431,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - ss
    - authTypes
    - namedCurve
    argTypes:
    - sslSocket*
    - sslAuthTypeMask
    - sslNamedGroupDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 411
    functionDepth: 9
    functionLinenumber: 411
    functionLinenumberEnd: 434
    functionName: ssl_ClearMatchingCerts
    functionSourceFile: /src/nss/lib/ssl/sslcert.c
    functionUses: 0
    functionsReached:
    - ssl_FreeServerCert
    - PR_NEXT_LINK
    - PR_REMOVE_LINK
    linkageType: ''
    returnType: void
    signature: "void ssl_ClearMatchingCerts(sslSocket *ss, sslAuthTypeMask authTypes,\n
      \                      const sslNamedGroupDef *namedCurve)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslcert.c:445,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslcert.c:446,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslcert.c:447,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslcert.c:448,1
    - Dst: ssl_NewServerCert
      Src: /src/nss/lib/ssl/sslcert.c:455,1
    - Dst: ssl_PopulateServerCert
      Src: /src/nss/lib/ssl/sslcert.c:461,1
    - Dst: ssl_PopulateKeyPair
      Src: /src/nss/lib/ssl/sslcert.c:465,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/sslcert.c:467,1
    - Dst: ssl_PopulateOCSPResponses
      Src: /src/nss/lib/ssl/sslcert.c:470,1
    - Dst: ssl_PopulateSignedCertTimestamps
      Src: /src/nss/lib/ssl/sslcert.c:474,1
    - Dst: ssl_PopulateDelegatedCredential
      Src: /src/nss/lib/ssl/sslcert.c:478,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/sslcert.c:481,1
    - Dst: ssl_ClearMatchingCerts
      Src: /src/nss/lib/ssl/sslcert.c:484,1
    - Dst: PR_APPEND_LINK
      Src: /src/nss/lib/ssl/sslcert.c:485,1
    - Dst: ssl_FreeServerCert
      Src: /src/nss/lib/ssl/sslcert.c:489,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslcert.c:490,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 51
    argCount: 5
    argNames:
    - ss
    - authTypes
    - cert
    - keyPair
    - data
    argTypes:
    - sslSocket*
    - sslAuthTypeMask
    - CERTCertificate*
    - sslKeyPair*
    - SSLExtraServerCertData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 436
    functionDepth: 10
    functionLinenumber: 436
    functionLinenumberEnd: 492
    functionName: ssl_ConfigCert
    functionSourceFile: /src/nss/lib/ssl/sslcert.c
    functionUses: 0
    functionsReached:
    - ssl_ClearMatchingCerts
    - PORT_Assert
    - ssl_PopulateDelegatedCredential
    - ssl_PopulateKeyPair
    - ssl_PopulateOCSPResponses
    - PORT_GetError
    - PORT_SetError
    - PR_APPEND_LINK
    - ssl_PopulateServerCert
    - ssl_PopulateSignedCertTimestamps
    - ssl_FreeServerCert
    - ssl_NewServerCert
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_ConfigCert(sslSocket *ss, sslAuthTypeMask authTypes,\n
      \              CERTCertificate *cert, sslKeyPair *keyPair,\n               const
      SSLExtraServerCertData *data)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/ssl/sslcert.c:497,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 1
    argNames:
    - cert
    argTypes:
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 521
    functionName: ssl_GetEcdhAuthType
    functionSourceFile: /src/nss/lib/ssl/sslcert.c
    functionUses: 0
    functionsReached:
    - SECOID_GetAlgorithmTag
    linkageType: ''
    returnType: SSLAuthType
    signature: SSLAuthType ssl_GetEcdhAuthType(CERTCertificate *cert)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/ssl/sslcert.c:535,1
    - Dst: ssl_GetEcdhAuthType
      Src: /src/nss/lib/ssl/sslcert.c:569,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 2
    argNames:
    - cert
    - targetAuthType
    argTypes:
    - CERTCertificate*
    - SSLAuthType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 529
    functionDepth: 1
    functionLinenumber: 529
    functionLinenumberEnd: 582
    functionName: ssl_GetCertificateAuthTypes
    functionSourceFile: /src/nss/lib/ssl/sslcert.c
    functionUses: 0
    functionsReached:
    - ssl_GetEcdhAuthType
    - SECOID_GetAlgorithmTag
    linkageType: ''
    returnType: sslAuthTypeMask
    signature: sslAuthTypeMask ssl_GetCertificateAuthTypes(CERTCertificate *cert,
      SSLAuthType targetAuthType)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: CERT_ExtractPublicKey
      Src: /src/nss/lib/ssl/sslcert.c:593,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslcert.c:595,1
    - Dst: SECKEY_GetPublicKeyType
      Src: /src/nss/lib/ssl/sslcert.c:599,1
    - Dst: SECKEY_GetPrivateKeyType
      Src: /src/nss/lib/ssl/sslcert.c:599,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/ssl/sslcert.c:600,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslcert.c:601,1
    - Dst: PK11_ReferenceSlot
      Src: /src/nss/lib/ssl/sslcert.c:606,1
    - Dst: PK11_CopyTokenPrivKeyToSessionPrivKey
      Src: /src/nss/lib/ssl/sslcert.c:608,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/ssl/sslcert.c:609,1
    - Dst: PK11_MapSignKeyType
      Src: /src/nss/lib/ssl/sslcert.c:613,1
    - Dst: PK11_GetBestSlot
      Src: /src/nss/lib/ssl/sslcert.c:615,1
    - Dst: PK11_CopyTokenPrivKeyToSessionPrivKey
      Src: /src/nss/lib/ssl/sslcert.c:617,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/ssl/sslcert.c:618,1
    - Dst: SECKEY_CopyPrivateKey
      Src: /src/nss/lib/ssl/sslcert.c:622,1
    - Dst: ssl_NewKeyPair
      Src: /src/nss/lib/ssl/sslcert.c:625,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/lib/ssl/sslcert.c:629,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/ssl/sslcert.c:631,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslcert.c:632,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 2
    argNames:
    - key
    - cert
    argTypes:
    - SECKEYPrivateKey*
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 585
    functionDepth: 8
    functionLinenumber: 585
    functionLinenumberEnd: 635
    functionName: ssl_MakeKeyPairForCert
    functionSourceFile: /src/nss/lib/ssl/sslcert.c
    functionUses: 0
    functionsReached:
    - PK11_ReferenceSlot
    - SECKEY_DestroyPublicKey
    - ssl_NewKeyPair
    - PK11_GetBestSlot
    - PK11_CopyTokenPrivKeyToSessionPrivKey
    - PORT_SetError
    - SECKEY_GetPrivateKeyType
    - PK11_MapSignKeyType
    - SECKEY_GetPublicKeyType
    - SECKEY_DestroyPrivateKey
    - CERT_ExtractPublicKey
    - PK11_FreeSlot
    - SECKEY_CopyPrivateKey
    linkageType: ''
    returnType: sslKeyPair
    signature: 'sslKeyPair *

      ssl_MakeKeyPairForCert(SECKEYPrivateKey *key, CERTCertificate *cert)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslcert.c:657,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslcert.c:663,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslcert.c:669,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/sslcert.c:672,1
    - Dst: ssl_GetCertificateAuthTypes
      Src: /src/nss/lib/ssl/sslcert.c:675,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslcert.c:677,1
    - Dst: ssl_MakeKeyPairForCert
      Src: /src/nss/lib/ssl/sslcert.c:681,1
    - Dst: ssl_ConfigCert
      Src: /src/nss/lib/ssl/sslcert.c:686,1
    - Dst: ssl_FreeKeyPair
      Src: /src/nss/lib/ssl/sslcert.c:687,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 5
    argNames:
    - fd
    - cert
    - key
    - data
    - data_len
    argTypes:
    - PRFileDesc*
    - CERTCertificate*
    - SECKEYPrivateKey*
    - SSLExtraServerCertData*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 644
    functionDepth: 11
    functionLinenumber: 644
    functionLinenumberEnd: 692
    functionName: SSL_ConfigServerCert
    functionSourceFile: /src/nss/lib/ssl/sslcert.c
    functionUses: 3
    functionsReached:
    - PORT_Memcpy
    - ssl_ConfigCert
    - ssl_GetCertificateAuthTypes
    - ssl_FreeKeyPair
    - PORT_SetError
    - ssl_MakeKeyPairForCert
    - ssl_FindSocket
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSL_ConfigServerCert(PRFileDesc *fd, CERTCertificate *cert,\n
      \                    SECKEYPrivateKey *key,\n                     const SSLExtraServerCertData
      *data, unsigned int data_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_ConfigSecureServerWithCertChain
      Src: /src/nss/lib/ssl/sslcert.c:708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - fd
    - cert
    - key
    - kea
    argTypes:
    - PRFileDesc*
    - CERTCertificate*
    - SECKEYPrivateKey*
    - SSLKEAType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 704
    functionDepth: 1
    functionLinenumber: 704
    functionLinenumberEnd: 709
    functionName: SSL_ConfigSecureServer
    functionSourceFile: /src/nss/lib/ssl/sslcert.c
    functionUses: 0
    functionsReached:
    - SSL_ConfigSecureServerWithCertChain
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSL_ConfigSecureServer(PRFileDesc *fd, CERTCertificate *cert,\n
      \                      SECKEYPrivateKey *key, SSLKEAType kea)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/ssl/sslcert.c:718,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslcert.c:737,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - cert
    - authTypes
    argTypes:
    - CERTCertificate*
    - sslAuthTypeMask
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 715
    functionDepth: 0
    functionLinenumber: 715
    functionLinenumberEnd: 740
    functionName: ssl_CertSuitableForAuthType
    functionSourceFile: /src/nss/lib/ssl/sslcert.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SECOID_GetAlgorithmTag
    linkageType: ''
    returnType: PRBool
    signature: PRBool ssl_CertSuitableForAuthType(CERTCertificate *cert, sslAuthTypeMask
      authTypes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/sslcert.c:750,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/sslcert.c:752,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ss
    - authTypes
    argTypes:
    - sslSocket*
    - sslAuthTypeMask
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 745
    functionDepth: 1
    functionLinenumber: 745
    functionLinenumberEnd: 759
    functionName: ssl_FindCertWithMask
    functionSourceFile: /src/nss/lib/ssl/sslcert.c
    functionUses: 0
    functionsReached:
    - PR_NEXT_LINK
    linkageType: ''
    returnType: sslServerCert
    signature: 'sslServerCert *

      ssl_FindCertWithMask(sslSocket *ss, sslAuthTypeMask authTypes)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindCertWithMask
      Src: /src/nss/lib/ssl/sslcert.c:775,1
    - Dst: PR_REMOVE_LINK
      Src: /src/nss/lib/ssl/sslcert.c:777,1
    - Dst: ssl_ClearMatchingCerts
      Src: /src/nss/lib/ssl/sslcert.c:783,1
    - Dst: ssl_NewServerCert
      Src: /src/nss/lib/ssl/sslcert.c:785,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - ss
    - authTypes
    argTypes:
    - sslSocket*
    - sslAuthTypeMask
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 764
    functionDepth: 10
    functionLinenumber: 764
    functionLinenumberEnd: 790
    functionName: ssl_FindOrMakeCert
    functionSourceFile: /src/nss/lib/ssl/sslcert.c
    functionUses: 0
    functionsReached:
    - ssl_FindCertWithMask
    - PR_REMOVE_LINK
    - ssl_NewServerCert
    - ssl_ClearMatchingCerts
    linkageType: ''
    returnType: sslServerCert
    signature: 'sslServerCert *

      ssl_FindOrMakeCert(sslSocket *ss, sslAuthTypeMask authTypes)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslcert.c:809,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - keaType
    argTypes:
    - SSLKEAType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 792
    functionDepth: 0
    functionLinenumber: 792
    functionLinenumberEnd: 812
    functionName: ssl_KeaTypeToAuthTypeMask
    functionSourceFile: /src/nss/lib/ssl/sslcert.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: sslAuthTypeMask
    signature: sslAuthTypeMask ssl_KeaTypeToAuthTypeMask(SSLKEAType keaType)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ssl_CertSuitableForAuthType
      Src: /src/nss/lib/ssl/sslcert.c:824,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslcert.c:825,1
    - Dst: ssl_FindOrMakeCert
      Src: /src/nss/lib/ssl/sslcert.c:829,1
    - Dst: ssl_PopulateServerCert
      Src: /src/nss/lib/ssl/sslcert.c:834,1
    - Dst: ssl_MakeKeyPairForCert
      Src: /src/nss/lib/ssl/sslcert.c:839,1
    - Dst: ssl_PopulateKeyPair
      Src: /src/nss/lib/ssl/sslcert.c:844,1
    - Dst: ssl_FreeKeyPair
      Src: /src/nss/lib/ssl/sslcert.c:845,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/sslcert.c:847,1
    - Dst: PR_APPEND_LINK
      Src: /src/nss/lib/ssl/sslcert.c:851,1
    - Dst: ssl_FreeServerCert
      Src: /src/nss/lib/ssl/sslcert.c:855,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslcert.c:856,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 5
    argNames:
    - ss
    - cert
    - certChainOpt
    - key
    - authTypes
    argTypes:
    - sslSocket*
    - CERTCertificate*
    - CERTCertificateList*
    - SECKEYPrivateKey*
    - sslAuthTypeMask
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 814
    functionDepth: 11
    functionLinenumber: 814
    functionLinenumberEnd: 858
    functionName: ssl_AddCertChain
    functionSourceFile: /src/nss/lib/ssl/sslcert.c
    functionUses: 0
    functionsReached:
    - ssl_FindOrMakeCert
    - ssl_CertSuitableForAuthType
    - ssl_PopulateKeyPair
    - ssl_FreeKeyPair
    - PORT_GetError
    - PORT_SetError
    - PR_APPEND_LINK
    - ssl_PopulateServerCert
    - ssl_MakeKeyPairForCert
    - ssl_FreeServerCert
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_AddCertChain(sslSocket *ss, CERTCertificate *cert,\n
      \                const CERTCertificateList *certChainOpt,\n                 SECKEYPrivateKey
      *key, sslAuthTypeMask authTypes)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslcert.c:869,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslcert.c:875,1
    - Dst: ssl_KeaTypeToAuthTypeMask
      Src: /src/nss/lib/ssl/sslcert.c:879,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslcert.c:881,1
    - Dst: ssl_FindCertWithMask
      Src: /src/nss/lib/ssl/sslcert.c:886,1
    - Dst: ssl_PopulateServerCert
      Src: /src/nss/lib/ssl/sslcert.c:888,1
    - Dst: ssl_PopulateKeyPair
      Src: /src/nss/lib/ssl/sslcert.c:889,1
    - Dst: ssl_AddCertChain
      Src: /src/nss/lib/ssl/sslcert.c:897,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 5
    argNames:
    - fd
    - cert
    - certChainOpt
    - key
    - certType
    argTypes:
    - PRFileDesc*
    - CERTCertificate*
    - CERTCertificateList*
    - SECKEYPrivateKey*
    - SSLKEAType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 861
    functionDepth: 12
    functionLinenumber: 861
    functionLinenumberEnd: 898
    functionName: SSL_ConfigSecureServerWithCertChain
    functionSourceFile: /src/nss/lib/ssl/sslcert.c
    functionUses: 1
    functionsReached:
    - ssl_FindCertWithMask
    - ssl_PopulateKeyPair
    - ssl_AddCertChain
    - PORT_SetError
    - ssl_PopulateServerCert
    - ssl_KeaTypeToAuthTypeMask
    - ssl_FindSocket
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSL_ConfigSecureServerWithCertChain(PRFileDesc *fd, CERTCertificate
      *cert,\n                                    const CERTCertificateList *certChainOpt,\n
      \                                   SECKEYPrivateKey *key, SSLKEAType certType)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslcert.c:910,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslcert.c:912,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslcert.c:913,1
    - Dst: ssl_KeaTypeToAuthTypeMask
      Src: /src/nss/lib/ssl/sslcert.c:917,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslcert.c:919,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslcert.c:920,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslcert.c:921,1
    - Dst: ssl_FindCertWithMask
      Src: /src/nss/lib/ssl/sslcert.c:926,1
    - Dst: ssl_PopulateOCSPResponses
      Src: /src/nss/lib/ssl/sslcert.c:928,1
    - Dst: ssl_FindOrMakeCert
      Src: /src/nss/lib/ssl/sslcert.c:933,1
    - Dst: ssl_PopulateOCSPResponses
      Src: /src/nss/lib/ssl/sslcert.c:938,1
    - Dst: PR_APPEND_LINK
      Src: /src/nss/lib/ssl/sslcert.c:940,1
    - Dst: ssl_FreeServerCert
      Src: /src/nss/lib/ssl/sslcert.c:942,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 3
    argNames:
    - fd
    - responses
    - certType
    argTypes:
    - PRFileDesc*
    - SECItemArray*
    - SSLKEAType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 901
    functionDepth: 11
    functionLinenumber: 901
    functionLinenumberEnd: 945
    functionName: SSL_SetStapledOCSPResponses
    functionSourceFile: /src/nss/lib/ssl/sslcert.c
    functionUses: 0
    functionsReached:
    - ssl_FindOrMakeCert
    - ssl_FindCertWithMask
    - ssl_PopulateOCSPResponses
    - SSL_GETPID
    - PORT_SetError
    - PR_APPEND_LINK
    - SSL_DBG
    - ssl_KeaTypeToAuthTypeMask
    - ssl_FindSocket
    - ssl_FreeServerCert
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSL_SetStapledOCSPResponses(PRFileDesc *fd, const SECItemArray
      *responses,\n                            SSLKEAType certType)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslcert.c:957,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslcert.c:959,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslcert.c:960,1
    - Dst: ssl_KeaTypeToAuthTypeMask
      Src: /src/nss/lib/ssl/sslcert.c:964,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslcert.c:966,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslcert.c:967,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslcert.c:968,1
    - Dst: ssl_FindCertWithMask
      Src: /src/nss/lib/ssl/sslcert.c:973,1
    - Dst: ssl_PopulateSignedCertTimestamps
      Src: /src/nss/lib/ssl/sslcert.c:975,1
    - Dst: ssl_FindOrMakeCert
      Src: /src/nss/lib/ssl/sslcert.c:980,1
    - Dst: ssl_PopulateSignedCertTimestamps
      Src: /src/nss/lib/ssl/sslcert.c:985,1
    - Dst: PR_APPEND_LINK
      Src: /src/nss/lib/ssl/sslcert.c:987,1
    - Dst: ssl_FreeServerCert
      Src: /src/nss/lib/ssl/sslcert.c:989,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 3
    argNames:
    - fd
    - scts
    - certType
    argTypes:
    - PRFileDesc*
    - SECItem*
    - SSLKEAType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 948
    functionDepth: 11
    functionLinenumber: 948
    functionLinenumberEnd: 992
    functionName: SSL_SetSignedCertTimestamps
    functionSourceFile: /src/nss/lib/ssl/sslcert.c
    functionUses: 0
    functionsReached:
    - ssl_FindOrMakeCert
    - ssl_FindCertWithMask
    - SSL_GETPID
    - PORT_SetError
    - PR_APPEND_LINK
    - SSL_DBG
    - ssl_KeaTypeToAuthTypeMask
    - ssl_PopulateSignedCertTimestamps
    - ssl_FindSocket
    - ssl_FreeServerCert
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSL_SetSignedCertTimestamps(PRFileDesc *fd, const SECItem
      *scts,\n                            SSLKEAType certType)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/ssl/sslcert.c:1003,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - cert
    argTypes:
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 995
    functionDepth: 0
    functionLinenumber: 995
    functionLinenumberEnd: 1016
    functionName: NSS_FindCertKEAType
    functionSourceFile: /src/nss/lib/ssl/sslcert.c
    functionUses: 0
    functionsReached:
    - SECOID_GetAlgorithmTag
    linkageType: ''
    returnType: SSLKEAType
    signature: SSLKEAType NSS_FindCertKEAType(CERTCertificate *cert)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/ssl/ssl3ext.c:217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - type
    argTypes:
    - PRUint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 223
    functionName: ssl_GetExtensionSupport
    functionSourceFile: /src/nss/lib/ssl/ssl3ext.c
    functionUses: 0
    functionsReached:
    - PR_ARRAY_SIZE
    linkageType: ''
    returnType: SSLExtensionSupport
    signature: SSLExtensionSupport ssl_GetExtensionSupport(PRUint16 type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_GetExtensionSupport
      Src: /src/nss/lib/ssl/ssl3ext.c:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - type
    - support
    argTypes:
    - PRUint16
    - SSLExtensionSupport*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 230
    functionName: SSLExp_GetExtensionSupport
    functionSourceFile: /src/nss/lib/ssl/ssl3ext.c
    functionUses: 0
    functionsReached:
    - ssl_GetExtensionSupport
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSLExp_GetExtensionSupport(PRUint16 type, SSLExtensionSupport
      *support)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/ssl3ext.c:237,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3ext.c:247,1
    - Dst: ssl_GetExtensionSupport
      Src: /src/nss/lib/ssl/ssl3ext.c:251,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3ext.c:252,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3ext.c:258,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/ssl3ext.c:263,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/ssl3ext.c:265,1
    - Dst: PR_REMOVE_LINK
      Src: /src/nss/lib/ssl/ssl3ext.c:268,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/ssl3ext.c:269,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/ssl/ssl3ext.c:278,1
    - Dst: PR_APPEND_LINK
      Src: /src/nss/lib/ssl/ssl3ext.c:288,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 6
    argNames:
    - fd
    - extension
    - writer
    - writerArg
    - handler
    - handlerArg
    argTypes:
    - PRFileDesc*
    - PRUint16
    - SSLExtensionWriter
    - void*
    - SSLExtensionHandler
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 290
    functionName: SSLExp_InstallExtensionHooks
    functionSourceFile: /src/nss/lib/ssl/ssl3ext.c
    functionUses: 0
    functionsReached:
    - PORT_ZNew
    - PORT_Free
    - ssl_GetExtensionSupport
    - PR_NEXT_LINK
    - PR_REMOVE_LINK
    - PORT_SetError
    - PR_APPEND_LINK
    - ssl_FindSocket
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSLExp_InstallExtensionHooks(PRFileDesc *fd, PRUint16 extension,\n
      \                            SSLExtensionWriter writer, void *writerArg,\n                             SSLExtensionHandler
      handler, void *handlerArg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/ssl3ext.c:297,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/ssl3ext.c:299,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ss
    - extension
    argTypes:
    - sslSocket*
    - PRUint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 307
    functionName: ssl_FindCustomExtensionHooks
    functionSourceFile: /src/nss/lib/ssl/ssl3ext.c
    functionUses: 0
    functionsReached:
    - PR_NEXT_LINK
    linkageType: ''
    returnType: sslCustomExtensionHooks
    signature: 'sslCustomExtensionHooks *

      ssl_FindCustomExtensionHooks(sslSocket *ss, PRUint16 extension)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - array
    - len
    - ex_type
    argTypes:
    - PRUint16*
    - PRUint32
    - PRUint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 318
    functionName: arrayContainsExtension
    functionSourceFile: /src/nss/lib/ssl/ssl3ext.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool arrayContainsExtension(const PRUint16 *array, PRUint32 len,
      PRUint16 ex_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: arrayContainsExtension
      Src: /src/nss/lib/ssl/ssl3ext.c:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ss
    - ex_type
    argTypes:
    - sslSocket*
    - PRUint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 326
    functionName: ssl3_ExtensionNegotiated
    functionSourceFile: /src/nss/lib/ssl/ssl3ext.c
    functionUses: 0
    functionsReached:
    - arrayContainsExtension
    linkageType: ''
    returnType: PRBool
    signature: PRBool ssl3_ExtensionNegotiated(const sslSocket *ss, PRUint16 ex_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: arrayContainsExtension
      Src: /src/nss/lib/ssl/ssl3ext.c:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ss
    - ex_type
    argTypes:
    - sslSocket*
    - PRUint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 337
    functionName: ssl3_ExtensionAdvertised
    functionSourceFile: /src/nss/lib/ssl/ssl3ext.c
    functionUses: 1
    functionsReached:
    - arrayContainsExtension
    linkageType: ''
    returnType: PRBool
    signature: PRBool ssl3_ExtensionAdvertised(const sslSocket *ss, PRUint16 ex_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: arrayContainsExtension
      Src: /src/nss/lib/ssl/ssl3ext.c:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ss
    - ex_type
    argTypes:
    - sslSocket*
    - PRUint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 345
    functionName: ssl3_ExtensionAdvertisedClientHelloInner
    functionSourceFile: /src/nss/lib/ssl/ssl3ext.c
    functionUses: 0
    functionsReached:
    - arrayContainsExtension
    linkageType: ''
    returnType: PRBool
    signature: PRBool ssl3_ExtensionAdvertisedClientHelloInner(const sslSocket *ss,
      PRUint16 ex_type)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_DestroyRemoteExtensions
      Src: /src/nss/lib/ssl/ssl3ext.c:358,1
    - Dst: ssl3_ConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/ssl3ext.c:368,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/ssl3ext.c:374,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/ssl3ext.c:376,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3ext.c:378,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3ext.c:379,1
    - Dst: ssl3_ConsumeHandshakeVariable
      Src: /src/nss/lib/ssl/ssl3ext.c:385,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3ext.c:390,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3ext.c:391,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/ssl/ssl3ext.c:393,1
    - Dst: PR_APPEND_LINK
      Src: /src/nss/lib/ssl/ssl3ext.c:400,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 3
    argNames:
    - ss
    - b
    - length
    argTypes:
    - sslSocket*
    - PRUint8**
    - PRUint32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 404
    functionName: ssl3_ParseExtensions
    functionSourceFile: /src/nss/lib/ssl/ssl3ext.c
    functionUses: 0
    functionsReached:
    - SSL3_SendAlert
    - PORT_ZNew
    - SSL_TRC
    - ssl3_ConsumeHandshakeVariable
    - PR_NEXT_LINK
    - SSL_GETPID
    - ssl3_DestroyRemoteExtensions
    - PORT_SetError
    - PR_APPEND_LINK
    - ssl3_ConsumeHandshakeNumber
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_ParseExtensions(sslSocket *ss, PRUint8 **b, PRUint32
      *length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/ssl3ext.c:411,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/ssl3ext.c:413,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ss
    - extension_type
    argTypes:
    - sslSocket*
    - SSLExtensionType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 422
    functionName: ssl3_FindExtension
    functionSourceFile: /src/nss/lib/ssl/ssl3ext.c
    functionUses: 0
    functionsReached:
    - PR_NEXT_LINK
    linkageType: ''
    returnType: TLSExtension
    signature: 'TLSExtension *

      ssl3_FindExtension(sslSocket *ss, SSLExtensionType extension_type)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindCustomExtensionHooks
      Src: /src/nss/lib/ssl/ssl3ext.c:433,1
    - Dst: sslCustomExtensionHooks*::handler
      Src: /src/nss/lib/ssl/ssl3ext.c:436,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3ext.c:456,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 4
    argNames:
    - ss
    - handshakeMessage
    - extension
    - handler
    argTypes:
    - sslSocket*
    - SSLHandshakeType
    - TLSExtension*
    - ssl3ExtensionHandler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 424
    functionDepth: 2
    functionLinenumber: 424
    functionLinenumberEnd: 462
    functionName: ssl_CallExtensionHandler
    functionSourceFile: /src/nss/lib/ssl/ssl3ext.c
    functionUses: 0
    functionsReached:
    - ssl_FindCustomExtensionHooks
    - SSL3_SendAlert
    - sslCustomExtensionHooks*::handler
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_CallExtensionHandler(sslSocket *ss, SSLHandshakeType
      handshakeMessage,\n                         TLSExtension *extension,\n                         const
      ssl3ExtensionHandler *handler)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3ext.c:493,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3ext.c:500,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3ext.c:510,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3ext.c:514,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3ext.c:518,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3ext.c:519,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/ssl3ext.c:523,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/ssl3ext.c:525,1
    - Dst: ssl3_ExtensionAdvertised
      Src: /src/nss/lib/ssl/ssl3ext.c:538,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3ext.c:539,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3ext.c:540,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3ext.c:541,1
    - Dst: ssl3_ExtensionAdvertisedClientHelloInner
      Src: /src/nss/lib/ssl/ssl3ext.c:548,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3ext.c:549,1
    - Dst: ssl_FindCustomExtensionHooks
      Src: /src/nss/lib/ssl/ssl3ext.c:556,1
    - Dst: tls13_ExtensionStatus
      Src: /src/nss/lib/ssl/ssl3ext.c:557,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3ext.c:568,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3ext.c:569,1
    - Dst: tls13_FatalError
      Src: /src/nss/lib/ssl/ssl3ext.c:570,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3ext.c:577,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3ext.c:578,1
    - Dst: tls13_FatalError
      Src: /src/nss/lib/ssl/ssl3ext.c:579,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/ssl3ext.c:589,1
    - Dst: tls13_FatalError
      Src: /src/nss/lib/ssl/ssl3ext.c:590,1
    - Dst: ssl_CallExtensionHandler
      Src: /src/nss/lib/ssl/ssl3ext.c:596,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 74
    argCount: 2
    argNames:
    - ss
    - message
    argTypes:
    - sslSocket*
    - SSLHandshakeType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 473
    functionDepth: 3
    functionLinenumber: 473
    functionLinenumberEnd: 602
    functionName: ssl3_HandleParsedExtensions
    functionSourceFile: /src/nss/lib/ssl/ssl3ext.c
    functionUses: 0
    functionsReached:
    - SSL3_SendAlert
    - PORT_Assert
    - SSL_TRC
    - PR_NEXT_LINK
    - ssl3_ExtensionAdvertisedClientHelloInner
    - SSL_GETPID
    - ssl3_ExtensionAdvertised
    - PORT_SetError
    - ssl_CallExtensionHandler
    - ssl_FindCustomExtensionHooks
    - tls13_FatalError
    - tls13_ExtensionStatus
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_HandleParsedExtensions(sslSocket *ss, SSLHandshakeType
      message)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_ParseExtensions
      Src: /src/nss/lib/ssl/ssl3ext.c:613,1
    - Dst: ssl3_HandleParsedExtensions
      Src: /src/nss/lib/ssl/ssl3ext.c:617,1
    - Dst: ssl3_DestroyRemoteExtensions
      Src: /src/nss/lib/ssl/ssl3ext.c:621,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - ss
    - b
    - length
    - handshakeMessage
    argTypes:
    - sslSocket*
    - PRUint8**
    - PRUint32*
    - SSLHandshakeType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 606
    functionDepth: 4
    functionLinenumber: 606
    functionLinenumberEnd: 623
    functionName: ssl3_HandleExtensions
    functionSourceFile: /src/nss/lib/ssl/ssl3ext.c
    functionUses: 0
    functionsReached:
    - ssl3_DestroyRemoteExtensions
    - ssl3_ParseExtensions
    - ssl3_HandleParsedExtensions
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_HandleExtensions(sslSocket *ss,\n                      PRUint8
      **b, PRUint32 *length,\n                      SSLHandshakeType handshakeMessage)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: tls13_ExtensionStatus
      Src: /src/nss/lib/ssl/ssl3ext.c:638,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3ext.c:640,1
    - Dst: tls13_ExtensionStatus
      Src: /src/nss/lib/ssl/ssl3ext.c:640,1
    - Dst: tls13_ExtensionStatus
      Src: /src/nss/lib/ssl/ssl3ext.c:644,1
    - Dst: tls13_ExtensionStatus
      Src: /src/nss/lib/ssl/ssl3ext.c:648,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3ext.c:652,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3ext.c:653,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3ext.c:664,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3ext.c:670,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3ext.c:671,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 4
    argNames:
    - ss
    - xtnData
    - ex_type
    - cb
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - PRUint16
    - sslExtensionBuilderFunc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 627
    functionDepth: 1
    functionLinenumber: 627
    functionLinenumberEnd: 673
    functionName: ssl3_RegisterExtensionSender
    functionSourceFile: /src/nss/lib/ssl/ssl3ext.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - tls13_ExtensionStatus
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_RegisterExtensionSender(const sslSocket *ss,\n                             TLSExtensionData
      *xtnData,\n                             PRUint16 ex_type,\n                             sslExtensionBuilderFunc
      cb)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: sslBuffer_Append
      Src: /src/nss/lib/ssl/ssl3ext.c:685,1
    - Dst: sslBuffer_Grow
      Src: /src/nss/lib/ssl/ssl3ext.c:694,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/ssl3ext.c:699,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/ssl3ext.c:701,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3ext.c:715,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3ext.c:723,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3ext.c:727,1
    - Dst: sslBuffer_Append
      Src: /src/nss/lib/ssl/ssl3ext.c:743,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/ssl3ext.c:749,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/ssl3ext.c:753,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 53
    argCount: 3
    argNames:
    - ss
    - buf
    - message
    argTypes:
    - sslSocket*
    - sslBuffer*
    - SSLHandshakeType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 675
    functionDepth: 1
    functionLinenumber: 675
    functionLinenumberEnd: 755
    functionName: ssl_CallCustomExtensionSenders
    functionSourceFile: /src/nss/lib/ssl/ssl3ext.c
    functionUses: 0
    functionsReached:
    - sslBuffer_Grow
    - PR_NEXT_LINK
    - sslBuffer_AppendNumber
    - PORT_SetError
    - sslBuffer_Clear
    - sslBuffer_Append
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_CallCustomExtensionSenders(sslSocket *ss, sslBuffer
      *buf,\n                               SSLHandshakeType message)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3ext.c:764,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3ext.c:789,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3ext.c:794,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3ext.c:799,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3ext.c:804,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3ext.c:809,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3ext.c:810,1
    - Dst: ssl_FindCustomExtensionHooks
      Src: /src/nss/lib/ssl/ssl3ext.c:820,1
    - Dst: tls13_MaybeGreaseExtensionType
      Src: /src/nss/lib/ssl/ssl3ext.c:841,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3ext.c:846,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3ext.c:850,1
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/lib/ssl/ssl3ext.c:864,1
    - Dst: ssl_CallCustomExtensionSenders
      Src: /src/nss/lib/ssl/ssl3ext.c:868,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3ext.c:875,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/ssl3ext.c:882,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 95
    argCount: 3
    argNames:
    - ss
    - buf
    - message
    argTypes:
    - sslSocket*
    - sslBuffer*
    - SSLHandshakeType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 758
    functionDepth: 2
    functionLinenumber: 758
    functionLinenumberEnd: 884
    functionName: ssl_ConstructExtensions
    functionSourceFile: /src/nss/lib/ssl/ssl3ext.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - sslBuffer_AppendNumber
    - PORT_SetError
    - ssl_CallCustomExtensionSenders
    - tls13_MaybeGreaseExtensionType
    - ssl_FindCustomExtensionHooks
    - sslBuffer_Clear
    - PR_CLIST_IS_EMPTY
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl_ConstructExtensions(sslSocket *ss, sslBuffer *buf, SSLHandshakeType
      message)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ss
    - xtnData
    - buf
    - append
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - sslBuffer*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 889
    functionDepth: 0
    functionLinenumber: 889
    functionLinenumberEnd: 895
    functionName: ssl_SendEmptyExtension
    functionSourceFile: /src/nss/lib/ssl/ssl3ext.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_SendEmptyExtension(const sslSocket *ss, TLSExtensionData
      *xtnData,\n                       sslBuffer *buf, PRBool *append)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3ext.c:905,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - ss
    - clientHelloLength
    argTypes:
    - sslSocket*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 899
    functionDepth: 1
    functionLinenumber: 899
    functionLinenumberEnd: 928
    functionName: ssl_CalculatePaddingExtLen
    functionSourceFile: /src/nss/lib/ssl/ssl3ext.c
    functionUses: 0
    functionsReached:
    - IS_DTLS
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int ssl_CalculatePaddingExtLen(const sslSocket *ss, unsigned
      int clientHelloLength)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3ext.c:942,1
    - Dst: sslBuffer_Grow
      Src: /src/nss/lib/ssl/ssl3ext.c:944,1
    - Dst: PORT_Memmove
      Src: /src/nss/lib/ssl/ssl3ext.c:948,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3ext.c:958,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/ssl3ext.c:962,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 6
    argNames:
    - ss
    - buf
    - exType
    - data
    - len
    - advertise
    argTypes:
    - sslSocket*
    - sslBuffer*
    - PRUint16
    - PRUint8*
    - unsigned int
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 932
    functionDepth: 1
    functionLinenumber: 932
    functionLinenumberEnd: 980
    functionName: ssl3_EmplaceExtension
    functionSourceFile: /src/nss/lib/ssl/ssl3ext.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_Memmove
    - sslBuffer_Grow
    - sslBuffer_AppendVariable
    - sslBuffer_AppendNumber
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_EmplaceExtension(sslSocket *ss, sslBuffer *buf, PRUint16
      exType,\n                      const PRUint8 *data, unsigned int len, PRBool
      advertise)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_ExtensionAdvertised
      Src: /src/nss/lib/ssl/ssl3ext.c:998,1
    - Dst: ssl_CalculatePaddingExtLen
      Src: /src/nss/lib/ssl/ssl3ext.c:1004,1
    - Dst: ssl3_EmplaceExtension
      Src: /src/nss/lib/ssl/ssl3ext.c:1009,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ss
    - prefixLen
    - buf
    argTypes:
    - sslSocket*
    - unsigned int
    - sslBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 990
    functionDepth: 2
    functionLinenumber: 990
    functionLinenumberEnd: 1010
    functionName: ssl_InsertPaddingExtension
    functionSourceFile: /src/nss/lib/ssl/ssl3ext.c
    functionUses: 0
    functionsReached:
    - ssl3_ExtensionAdvertised
    - ssl_CalculatePaddingExtLen
    - ssl3_EmplaceExtension
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_InsertPaddingExtension(sslSocket *ss, unsigned int prefixLen,\n
      \                          sslBuffer *buf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/lib/ssl/ssl3ext.c:1016,1
    - Dst: PR_LIST_TAIL
      Src: /src/nss/lib/ssl/ssl3ext.c:1017,1
    - Dst: PR_REMOVE_LINK
      Src: /src/nss/lib/ssl/ssl3ext.c:1018,1
    - Dst: PR_INSERT_LINK
      Src: /src/nss/lib/ssl/ssl3ext.c:1019,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - PRCList*
    - PRCList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 1012
    functionDepth: 1
    functionLinenumber: 1012
    functionLinenumberEnd: 1021
    functionName: ssl3_MoveRemoteExtensions
    functionSourceFile: /src/nss/lib/ssl/ssl3ext.c
    functionUses: 0
    functionsReached:
    - PR_LIST_TAIL
    - PR_REMOVE_LINK
    - PR_INSERT_LINK
    - PR_CLIST_IS_EMPTY
    linkageType: ''
    returnType: void
    signature: void ssl3_MoveRemoteExtensions(PRCList *dst, PRCList *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/lib/ssl/ssl3ext.c:1028,1
    - Dst: PR_LIST_TAIL
      Src: /src/nss/lib/ssl/ssl3ext.c:1029,1
    - Dst: PR_REMOVE_LINK
      Src: /src/nss/lib/ssl/ssl3ext.c:1030,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/ssl3ext.c:1031,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - list
    argTypes:
    - PRCList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1033
      start: 1023
    functionDepth: 1
    functionLinenumber: 1023
    functionLinenumberEnd: 1033
    functionName: ssl3_DestroyRemoteExtensions
    functionSourceFile: /src/nss/lib/ssl/ssl3ext.c
    functionUses: 2
    functionsReached:
    - PORT_Free
    - PR_LIST_TAIL
    - PR_REMOVE_LINK
    - PR_CLIST_IS_EMPTY
    linkageType: ''
    returnType: void
    signature: void ssl3_DestroyRemoteExtensions(PRCList *list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memset
      Src: /src/nss/lib/ssl/ssl3ext.c:1043,1
    - Dst: PR_INIT_CLIST
      Src: /src/nss/lib/ssl/ssl3ext.c:1045,1
    - Dst: PR_MAX
      Src: /src/nss/lib/ssl/ssl3ext.c:1049,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/ssl/ssl3ext.c:1049,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/ssl/ssl3ext.c:1050,1
    - Dst: PR_MAX
      Src: /src/nss/lib/ssl/ssl3ext.c:1052,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/ssl/ssl3ext.c:1052,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/ssl/ssl3ext.c:1053,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/ssl3ext.c:1056,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/ssl3ext.c:1058,1
    - Dst: PORT_ZNewArray
      Src: /src/nss/lib/ssl/ssl3ext.c:1061,1
    - Dst: PORT_ZNewArray
      Src: /src/nss/lib/ssl/ssl3ext.c:1062,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - xtnData
    - ss
    argTypes:
    - TLSExtensionData*
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1068
      start: 1036
    functionDepth: 1
    functionLinenumber: 1036
    functionLinenumberEnd: 1068
    functionName: ssl3_InitExtensionData
    functionSourceFile: /src/nss/lib/ssl/ssl3ext.c
    functionUses: 1
    functionsReached:
    - PORT_ZNewArray
    - PR_NEXT_LINK
    - PR_ARRAY_SIZE
    - PORT_Memset
    - PR_INIT_CLIST
    - PR_MAX
    linkageType: ''
    returnType: void
    signature: void ssl3_InitExtensionData(TLSExtensionData *xtnData, const sslSocket
      *ss)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_FreeSniNameArray
      Src: /src/nss/lib/ssl/ssl3ext.c:1073,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/ssl3ext.c:1074,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/ssl3ext.c:1075,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/ssl3ext.c:1076,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/ssl3ext.c:1077,1
    - Dst: tls13_DestroyKeyShares
      Src: /src/nss/lib/ssl/ssl3ext.c:1078,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/ssl3ext.c:1079,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/ssl3ext.c:1080,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/ssl/ssl3ext.c:1082,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/ssl3ext.c:1085,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/ssl3ext.c:1086,1
    - Dst: tls13_DestroyDelegatedCredential
      Src: /src/nss/lib/ssl/ssl3ext.c:1087,1
    - Dst: tls13_DestroyEchXtnState
      Src: /src/nss/lib/ssl/ssl3ext.c:1089,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - xtnData
    argTypes:
    - TLSExtensionData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1070
    functionDepth: 1
    functionLinenumber: 1070
    functionLinenumberEnd: 1091
    functionName: ssl3_DestroyExtensionData
    functionSourceFile: /src/nss/lib/ssl/ssl3ext.c
    functionUses: 0
    functionsReached:
    - tls13_DestroyKeyShares
    - PORT_FreeArena
    - PORT_Free
    - tls13_DestroyDelegatedCredential
    - ssl3_FreeSniNameArray
    - tls13_DestroyEchXtnState
    - SECITEM_FreeItem
    linkageType: ''
    returnType: void
    signature: void ssl3_DestroyExtensionData(TLSExtensionData *xtnData)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_DestroyExtensionData
      Src: /src/nss/lib/ssl/ssl3ext.c:1098,1
    - Dst: ssl3_InitExtensionData
      Src: /src/nss/lib/ssl/ssl3ext.c:1099,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - xtnData
    - ss
    argTypes:
    - TLSExtensionData*
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 1095
    functionDepth: 2
    functionLinenumber: 1095
    functionLinenumberEnd: 1100
    functionName: ssl3_ResetExtensionData
    functionSourceFile: /src/nss/lib/ssl/ssl3ext.c
    functionUses: 0
    functionsReached:
    - ssl3_InitExtensionData
    - ssl3_DestroyExtensionData
    linkageType: ''
    returnType: void
    signature: void ssl3_ResetExtensionData(TLSExtensionData *xtnData, const sslSocket
      *ss)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3ext.c:1107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ss
    - level
    - desc
    argTypes:
    - sslSocket*
    - SSL3AlertLevel
    - SSL3AlertDescription
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 1103
    functionDepth: 1
    functionLinenumber: 1103
    functionLinenumberEnd: 1108
    functionName: ssl3_ExtSendAlert
    functionSourceFile: /src/nss/lib/ssl/ssl3ext.c
    functionUses: 13
    functionsReached:
    - SSL3_SendAlert
    linkageType: ''
    returnType: void
    signature: "void ssl3_ExtSendAlert(const sslSocket *ss, SSL3AlertLevel level,\n
      \                 SSL3AlertDescription desc)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_DecodeError
      Src: /src/nss/lib/ssl/ssl3ext.c:1113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1114
      start: 1110
    functionDepth: 1
    functionLinenumber: 1110
    functionLinenumberEnd: 1114
    functionName: ssl3_ExtDecodeError
    functionSourceFile: /src/nss/lib/ssl/ssl3ext.c
    functionUses: 1
    functionsReached:
    - ssl3_DecodeError
    linkageType: ''
    returnType: void
    signature: void ssl3_ExtDecodeError(const sslSocket *ss)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_ConsumeHandshake
      Src: /src/nss/lib/ssl/ssl3ext.c:1120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ss
    - v
    - bytes
    - b
    - length
    argTypes:
    - sslSocket*
    - void*
    - PRUint32
    - PRUint8**
    - PRUint32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1116
    functionDepth: 1
    functionLinenumber: 1116
    functionLinenumberEnd: 1121
    functionName: ssl3_ExtConsumeHandshake
    functionSourceFile: /src/nss/lib/ssl/ssl3ext.c
    functionUses: 1
    functionsReached:
    - ssl3_ConsumeHandshake
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_ExtConsumeHandshake(const sslSocket *ss, void *v, PRUint32
      bytes,\n                         PRUint8 **b, PRUint32 *length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_ConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/ssl3ext.c:1127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ss
    - num
    - bytes
    - b
    - length
    argTypes:
    - sslSocket*
    - PRUint32*
    - PRUint32
    - PRUint8**
    - PRUint32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1128
      start: 1123
    functionDepth: 1
    functionLinenumber: 1123
    functionLinenumberEnd: 1128
    functionName: ssl3_ExtConsumeHandshakeNumber
    functionSourceFile: /src/nss/lib/ssl/ssl3ext.c
    functionUses: 6
    functionsReached:
    - ssl3_ConsumeHandshakeNumber
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_ExtConsumeHandshakeNumber(const sslSocket *ss, PRUint32
      *num,\n                               PRUint32 bytes, PRUint8 **b, PRUint32
      *length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_ConsumeHandshakeVariable
      Src: /src/nss/lib/ssl/ssl3ext.c:1135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ss
    - i
    - bytes
    - b
    - length
    argTypes:
    - sslSocket*
    - SECItem*
    - PRUint32
    - PRUint8**
    - PRUint32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1136
      start: 1130
    functionDepth: 1
    functionLinenumber: 1130
    functionLinenumberEnd: 1136
    functionName: ssl3_ExtConsumeHandshakeVariable
    functionSourceFile: /src/nss/lib/ssl/ssl3ext.c
    functionUses: 5
    functionsReached:
    - ssl3_ConsumeHandshakeVariable
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_ExtConsumeHandshakeVariable(const sslSocket *ss, SECItem
      *i,\n                                 PRUint32 bytes, PRUint8 **b,\n                                 PRUint32
      *length)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/ssl/ssl3ext.c:1141,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/ssl3ext.c:1147,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/ssl3ext.c:1150,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/ssl/ssl3ext.c:1153,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/ssl3ext.c:1159,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/lib/ssl/ssl3ext.c:1162,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/ssl3ext.c:1163,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/ssl3ext.c:1176,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/ssl3ext.c:1177,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1181
      start: 1138
    functionDepth: 9
    functionLinenumber: 1138
    functionLinenumberEnd: 1181
    functionName: tls_ClientHelloExtensionPermutationSetup
    functionSourceFile: /src/nss/lib/ssl/ssl3ext.c
    functionUses: 0
    functionsReached:
    - PORT_Memcpy
    - PORT_Free
    - PORT_ZAlloc
    - PR_ARRAY_SIZE
    - PR_ASSERT
    - PK11_GenerateRandom
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls_ClientHelloExtensionPermutationSetup(sslSocket *ss)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/ssl3ext.c:1187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1183
    functionDepth: 0
    functionLinenumber: 1183
    functionLinenumberEnd: 1190
    functionName: tls_ClientHelloExtensionPermutationDestroy
    functionSourceFile: /src/nss/lib/ssl/ssl3ext.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    linkageType: ''
    returnType: void
    signature: void tls_ClientHelloExtensionPermutationDestroy(sslSocket *ss)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ss
    - ','
    - prError
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 19
    functionName: LOG_ERROR
    functionSourceFile: /src/nss/lib/ssl/tls13err.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOG_ERROR(ss, prError)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ss
    - ','
    - prError
    - ','
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 26
    functionName: FATAL_ERROR
    functionSourceFile: /src/nss/lib/ssl/tls13err.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FATAL_ERROR(ss, prError, desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: SSL_GetImplementedCiphers
    functionSourceFile: /src/nss/lib/ssl/sslenum.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: PRUint16
    signature: 'PRUint16 *

      SSL_GetImplementedCiphers(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 157
    functionName: SSL_GetNumImplementedCiphers
    functionSourceFile: /src/nss/lib/ssl/sslenum.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: PRUint16
    signature: PRUint16 SSL_GetNumImplementedCiphers(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsecur.c:38,1
    - Dst: ssl_Have1stHandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:38,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsecur.c:39,1
    - Dst: ssl_HaveRecvBufLock
      Src: /src/nss/lib/ssl/sslsecur.c:39,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsecur.c:40,1
    - Dst: ssl_HaveXmitBufLock
      Src: /src/nss/lib/ssl/sslsecur.c:40,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsecur.c:41,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:41,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsecur.c:46,1
    - Dst: ssl_HaveRecvBufLock
      Src: /src/nss/lib/ssl/sslsecur.c:46,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsecur.c:47,1
    - Dst: ssl_HaveXmitBufLock
      Src: /src/nss/lib/ssl/sslsecur.c:47,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsecur.c:48,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:48,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 13
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 51
    functionName: ssl_Do1stHandshake
    functionSourceFile: /src/nss/lib/ssl/sslsecur.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    - ssl_Have1stHandshakeLock
    - ssl_HaveXmitBufLock
    - ssl_HaveRecvBufLock
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl_Do1stHandshake(sslSocket *ss)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsecur.c:56,1
    - Dst: ssl_Have1stHandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:56,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsecur.c:57,1
    - Dst: ssl_HaveRecvBufLock
      Src: /src/nss/lib/ssl/sslsecur.c:57,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsecur.c:58,1
    - Dst: ssl3_ExtensionNegotiated
      Src: /src/nss/lib/ssl/sslsecur.c:62,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/sslsecur.c:69,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsecur.c:74,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsecur.c:77,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/sslsecur.c:82,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsecur.c:82,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsecur.c:90,1
    - Dst: ssl_FreeEphemeralKeyPairs
      Src: /src/nss/lib/ssl/sslsecur.c:95,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 53
    functionDepth: 5
    functionLinenumber: 53
    functionLinenumberEnd: 98
    functionName: ssl_FinishHandshake
    functionSourceFile: /src/nss/lib/ssl/sslsecur.c
    functionUses: 0
    functionsReached:
    - SSL3_SendAlert
    - PORT_Assert
    - ssl3_ExtensionNegotiated
    - ssl_Have1stHandshakeLock
    - SSL_TRC
    - SSL_GETPID
    - PORT_SetError
    - ssl_HaveRecvBufLock
    - ssl_FreeEphemeralKeyPairs
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl_FinishHandshake(sslSocket *ss)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsecur.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 109
    functionName: ssl3_AlwaysBlock
    functionSourceFile: /src/nss/lib/ssl/sslsecur.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_AlwaysBlock(sslSocket *ss)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 120
    functionName: ssl3_SetAlwaysBlock
    functionSourceFile: /src/nss/lib/ssl/sslsecur.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ssl3_SetAlwaysBlock(sslSocket *ss)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslsecur.c:127,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsecur.c:129,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsecur.c:129,1
    - Dst: SSL_LOCK_READER
      Src: /src/nss/lib/ssl/sslsecur.c:132,1
    - Dst: SSL_LOCK_WRITER
      Src: /src/nss/lib/ssl/sslsecur.c:135,1
    - Dst: SSL_UNLOCK_WRITER
      Src: /src/nss/lib/ssl/sslsecur.c:139,1
    - Dst: SSL_UNLOCK_READER
      Src: /src/nss/lib/ssl/sslsecur.c:141,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - fd
    - timeout
    argTypes:
    - PRFileDesc*
    - PRIntervalTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 122
    functionDepth: 2
    functionLinenumber: 122
    functionLinenumberEnd: 143
    functionName: ssl_SetTimeout
    functionSourceFile: /src/nss/lib/ssl/sslsecur.c
    functionUses: 0
    functionsReached:
    - SSL_UNLOCK_READER
    - SSL_LOCK_WRITER
    - SSL_GETPID
    - SSL_UNLOCK_WRITER
    - SSL_DBG
    - SSL_LOCK_READER
    - ssl_FindSocket
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl_SetTimeout(PRFileDesc *fd, PRIntervalTime timeout)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslsecur.c:154,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsecur.c:156,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsecur.c:156,1
    - Dst: SSL_LOCK_READER
      Src: /src/nss/lib/ssl/sslsecur.c:164,1
    - Dst: SSL_LOCK_WRITER
      Src: /src/nss/lib/ssl/sslsecur.c:165,1
    - Dst: ssl_Get1stHandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:168,1
    - Dst: ssl_GetRecvBufLock
      Src: /src/nss/lib/ssl/sslsecur.c:180,1
    - Dst: ssl3_InitGather
      Src: /src/nss/lib/ssl/sslsecur.c:181,1
    - Dst: ssl_ReleaseRecvBufLock
      Src: /src/nss/lib/ssl/sslsecur.c:182,1
    - Dst: ssl_GetSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:186,1
    - Dst: ssl_GetXmitBufLock
      Src: /src/nss/lib/ssl/sslsecur.c:193,1
    - Dst: ssl_ResetSecurityInfo
      Src: /src/nss/lib/ssl/sslsecur.c:194,1
    - Dst: ssl_CreateSecurityInfo
      Src: /src/nss/lib/ssl/sslsecur.c:195,1
    - Dst: ssl_ReleaseXmitBufLock
      Src: /src/nss/lib/ssl/sslsecur.c:196,1
    - Dst: ssl_ReleaseSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:198,1
    - Dst: ssl_Release1stHandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:199,1
    - Dst: ssl3_DestroyRemoteExtensions
      Src: /src/nss/lib/ssl/sslsecur.c:201,1
    - Dst: ssl3_DestroyRemoteExtensions
      Src: /src/nss/lib/ssl/sslsecur.c:202,1
    - Dst: ssl3_ResetExtensionData
      Src: /src/nss/lib/ssl/sslsecur.c:203,1
    - Dst: tls13_ResetHandshakePsks
      Src: /src/nss/lib/ssl/sslsecur.c:204,1
    - Dst: PK11_HPKE_DestroyContext
      Src: /src/nss/lib/ssl/sslsecur.c:207,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsecur.c:209,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/sslsecur.c:210,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/sslsecur.c:217,1
    - Dst: tls13_ClientGreaseDestroy
      Src: /src/nss/lib/ssl/sslsecur.c:220,1
    - Dst: tls_ClientHelloExtensionPermutationDestroy
      Src: /src/nss/lib/ssl/sslsecur.c:222,1
    - Dst: ssl_DefGetpeername
      Src: /src/nss/lib/ssl/sslsecur.c:225,1
    - Dst: SSL_UNLOCK_WRITER
      Src: /src/nss/lib/ssl/sslsecur.c:228,1
    - Dst: SSL_UNLOCK_READER
      Src: /src/nss/lib/ssl/sslsecur.c:229,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 58
    argCount: 2
    argNames:
    - s
    - asServer
    argTypes:
    - PRFileDesc*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 147
    functionDepth: 3
    functionLinenumber: 147
    functionLinenumberEnd: 232
    functionName: SSL_ResetHandshake
    functionSourceFile: /src/nss/lib/ssl/sslsecur.c
    functionUses: 5
    functionsReached:
    - ssl_ResetSecurityInfo
    - ssl_CreateSecurityInfo
    - ssl_ReleaseSSL3HandshakeLock
    - SSL_DBG
    - tls13_ResetHandshakePsks
    - ssl3_ResetExtensionData
    - ssl_GetSSL3HandshakeLock
    - PK11_HPKE_DestroyContext
    - ssl_ReleaseXmitBufLock
    - ssl_GetRecvBufLock
    - ssl_DefGetpeername
    - ssl_Release1stHandshakeLock
    - ssl3_InitGather
    - ssl_FindSocket
    - SSL_UNLOCK_READER
    - ssl_GetXmitBufLock
    - PORT_Assert
    - tls13_ClientGreaseDestroy
    - ssl_Get1stHandshakeLock
    - ssl3_DestroyRemoteExtensions
    - sslBuffer_Clear
    - PORT_Free
    - SSL_LOCK_WRITER
    - ssl_ReleaseRecvBufLock
    - SSL_GETPID
    - tls_ClientHelloExtensionPermutationDestroy
    - SSL_UNLOCK_WRITER
    - SSL_LOCK_READER
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSL_ResetHandshake(PRFileDesc *s, PRBool asServer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslsecur.c:245,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsecur.c:247,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsecur.c:247,1
    - Dst: ssl_Get1stHandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:254,1
    - Dst: ssl_GetSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:256,1
    - Dst: ssl3_RedoHandshake
      Src: /src/nss/lib/ssl/sslsecur.c:257,1
    - Dst: ssl_ReleaseSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:258,1
    - Dst: ssl_Release1stHandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:260,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - fd
    - flushCache
    argTypes:
    - PRFileDesc*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 239
    functionDepth: 2
    functionLinenumber: 239
    functionLinenumberEnd: 263
    functionName: SSL_ReHandshake
    functionSourceFile: /src/nss/lib/ssl/sslsecur.c
    functionUses: 2
    functionsReached:
    - ssl3_RedoHandshake
    - ssl_GetSSL3HandshakeLock
    - SSL_GETPID
    - ssl_ReleaseSSL3HandshakeLock
    - ssl_Get1stHandshakeLock
    - SSL_DBG
    - ssl_Release1stHandshakeLock
    - ssl_FindSocket
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSL_ReHandshake(PRFileDesc *fd, PRBool flushCache)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_SetTimeout
      Src: /src/nss/lib/ssl/sslsecur.c:273,1
    - Dst: SSL_ReHandshake
      Src: /src/nss/lib/ssl/sslsecur.c:276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - fd
    - flushCache
    - timeout
    argTypes:
    - PRFileDesc*
    - PRBool
    - PRIntervalTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 268
    functionDepth: 3
    functionLinenumber: 268
    functionLinenumberEnd: 277
    functionName: SSL_ReHandshakeWithTimeout
    functionSourceFile: /src/nss/lib/ssl/sslsecur.c
    functionUses: 0
    functionsReached:
    - ssl_SetTimeout
    - SSL_ReHandshake
    linkageType: ''
    returnType: SSL_IMPORT
    signature: "SSL_IMPORT SSL_ReHandshakeWithTimeout(PRFileDesc *fd,\n                           PRBool
      flushCache,\n                           PRIntervalTime timeout)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_ReHandshake
      Src: /src/nss/lib/ssl/sslsecur.c:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 279
    functionDepth: 3
    functionLinenumber: 279
    functionLinenumberEnd: 283
    functionName: SSL_RedoHandshake
    functionSourceFile: /src/nss/lib/ssl/sslsecur.c
    functionUses: 0
    functionsReached:
    - SSL_ReHandshake
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSL_RedoHandshake(PRFileDesc *fd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslsecur.c:294,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsecur.c:296,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsecur.c:297,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsecur.c:302,1
    - Dst: ssl_Get1stHandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:306,1
    - Dst: ssl_GetSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:307,1
    - Dst: ssl_ReleaseSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:312,1
    - Dst: ssl_Release1stHandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:313,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - fd
    - cb
    - client_data
    argTypes:
    - PRFileDesc*
    - SSLHandshakeCallback
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 288
    functionDepth: 2
    functionLinenumber: 288
    functionLinenumberEnd: 316
    functionName: SSL_HandshakeCallback
    functionSourceFile: /src/nss/lib/ssl/sslsecur.c
    functionUses: 4
    functionsReached:
    - ssl_GetSSL3HandshakeLock
    - SSL_GETPID
    - ssl_ReleaseSSL3HandshakeLock
    - ssl_Get1stHandshakeLock
    - PORT_SetError
    - SSL_DBG
    - ssl_Release1stHandshakeLock
    - ssl_FindSocket
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSL_HandshakeCallback(PRFileDesc *fd, SSLHandshakeCallback
      cb,\n                      void *client_data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslsecur.c:327,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsecur.c:329,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsecur.c:330,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsecur.c:335,1
    - Dst: ssl_Get1stHandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:339,1
    - Dst: ssl_GetSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:340,1
    - Dst: ssl_ReleaseSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:345,1
    - Dst: ssl_Release1stHandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:346,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - fd
    - cb
    - arg
    argTypes:
    - PRFileDesc*
    - SSLCanFalseStartCallback
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 321
    functionDepth: 2
    functionLinenumber: 321
    functionLinenumberEnd: 349
    functionName: SSL_SetCanFalseStartCallback
    functionSourceFile: /src/nss/lib/ssl/sslsecur.c
    functionUses: 0
    functionsReached:
    - ssl_GetSSL3HandshakeLock
    - SSL_GETPID
    - ssl_ReleaseSSL3HandshakeLock
    - ssl_Get1stHandshakeLock
    - PORT_SetError
    - SSL_DBG
    - ssl_Release1stHandshakeLock
    - ssl_FindSocket
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSL_SetCanFalseStartCallback(PRFileDesc *fd, SSLCanFalseStartCallback
      cb,\n                             void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslsecur.c:357,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsecur.c:359,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsecur.c:360,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - fd
    - canFalseStart
    argTypes:
    - PRFileDesc*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 351
    functionDepth: 2
    functionLinenumber: 351
    functionLinenumberEnd: 371
    functionName: SSL_RecommendedCanFalseStart
    functionSourceFile: /src/nss/lib/ssl/sslsecur.c
    functionUses: 0
    functionsReached:
    - ssl_FindSocket
    - SSL_GETPID
    - SSL_DBG
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSL_RecommendedCanFalseStart(PRFileDesc *fd, PRBool *canFalseStart)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslsecur.c:388,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsecur.c:390,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsecur.c:391,1
    - Dst: ssl_SocketIsBlocking
      Src: /src/nss/lib/ssl/sslsecur.c:399,1
    - Dst: ssl_GetXmitBufLock
      Src: /src/nss/lib/ssl/sslsecur.c:400,1
    - Dst: ssl_SendSavedWriteData
      Src: /src/nss/lib/ssl/sslsecur.c:402,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/sslsecur.c:403,1
    - Dst: ssl_ReleaseXmitBufLock
      Src: /src/nss/lib/ssl/sslsecur.c:404,1
    - Dst: ssl_ReleaseXmitBufLock
      Src: /src/nss/lib/ssl/sslsecur.c:408,1
    - Dst: ssl_Get1stHandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:411,1
    - Dst: ssl_GetRecvBufLock
      Src: /src/nss/lib/ssl/sslsecur.c:416,1
    - Dst: ssl3_GatherCompleteHandshake
      Src: /src/nss/lib/ssl/sslsecur.c:417,1
    - Dst: ssl_ReleaseRecvBufLock
      Src: /src/nss/lib/ssl/sslsecur.c:418,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsecur.c:423,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsecur.c:430,1
    - Dst: ssl_Do1stHandshake
      Src: /src/nss/lib/ssl/sslsecur.c:431,1
    - Dst: ssl_Release1stHandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:434,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 1
    argNames:
    - fd
    argTypes:
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 382
    functionDepth: 3
    functionLinenumber: 382
    functionLinenumberEnd: 437
    functionName: SSL_ForceHandshake
    functionSourceFile: /src/nss/lib/ssl/sslsecur.c
    functionUses: 3
    functionsReached:
    - ssl3_GatherCompleteHandshake
    - ssl_GetXmitBufLock
    - PORT_Assert
    - ssl_Do1stHandshake
    - ssl_ReleaseRecvBufLock
    - SSL_GETPID
    - PORT_GetError
    - ssl_SendSavedWriteData
    - ssl_ReleaseXmitBufLock
    - ssl_Get1stHandshakeLock
    - ssl_GetRecvBufLock
    - PORT_SetError
    - SSL_DBG
    - ssl_Release1stHandshakeLock
    - ssl_FindSocket
    - ssl_SocketIsBlocking
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSL_ForceHandshake(PRFileDesc *fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_SetTimeout
      Src: /src/nss/lib/ssl/sslsecur.c:446,1
    - Dst: SSL_ForceHandshake
      Src: /src/nss/lib/ssl/sslsecur.c:449,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - fd
    - timeout
    argTypes:
    - PRFileDesc*
    - PRIntervalTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 442
    functionDepth: 4
    functionLinenumber: 442
    functionLinenumberEnd: 450
    functionName: SSL_ForceHandshakeWithTimeout
    functionSourceFile: /src/nss/lib/ssl/sslsecur.c
    functionUses: 0
    functionsReached:
    - SSL_ForceHandshake
    - ssl_SetTimeout
    linkageType: ''
    returnType: SSL_IMPORT
    signature: "SSL_IMPORT SSL_ForceHandshakeWithTimeout(PRFileDesc *fd,\n                              PRIntervalTime
      timeout)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsecur.c:465,1
    - Dst: ssl_HaveXmitBufLock
      Src: /src/nss/lib/ssl/sslsecur.c:465,1
    - Dst: sslBuffer_Append
      Src: /src/nss/lib/ssl/sslsecur.c:466,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/sslsecur.c:467,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsecur.c:468,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ss
    - data
    - len
    argTypes:
    - sslSocket*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 470
    functionName: ssl_SaveWriteData
    functionSourceFile: /src/nss/lib/ssl/sslsecur.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - ssl_HaveXmitBufLock
    - SSL_TRC
    - SSL_GETPID
    - sslBuffer_Append
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl_SaveWriteData(sslSocket *ss, const void *data, unsigned
      int len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsecur.c:483,1
    - Dst: ssl_HaveXmitBufLock
      Src: /src/nss/lib/ssl/sslsecur.c:483,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/sslsecur.c:485,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsecur.c:486,1
    - Dst: ssl_DefSend
      Src: /src/nss/lib/ssl/sslsecur.c:487,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsecur.c:492,1
    - Dst: PORT_Memmove
      Src: /src/nss/lib/ssl/sslsecur.c:499,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 478
    functionDepth: 2
    functionLinenumber: 478
    functionLinenumberEnd: 504
    functionName: ssl_SendSavedWriteData
    functionSourceFile: /src/nss/lib/ssl/sslsecur.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - PORT_Memmove
    - ssl_HaveXmitBufLock
    - SSL_TRC
    - SSL_GETPID
    - ssl_DefSend
    linkageType: ''
    returnType: int
    signature: int ssl_SendSavedWriteData(sslSocket *ss)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ssl_Get1stHandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:530,1
    - Dst: ssl_GetRecvBufLock
      Src: /src/nss/lib/ssl/sslsecur.c:531,1
    - Dst: ssl3_GatherAppDataRecord
      Src: /src/nss/lib/ssl/sslsecur.c:536,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/sslsecur.c:540,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsecur.c:541,1
    - Dst: PR_GetError
      Src: /src/nss/lib/ssl/sslsecur.c:544,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsecur.c:567,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/sslsecur.c:571,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsecur.c:572,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/sslsecur.c:575,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/sslsecur.c:577,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsecur.c:578,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsecur.c:580,1
    - Dst: PR_MIN
      Src: /src/nss/lib/ssl/sslsecur.c:586,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/sslsecur.c:587,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsecur.c:591,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/sslsecur.c:601,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/sslsecur.c:605,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsecur.c:606,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/sslsecur.c:607,1
    - Dst: ssl_ReleaseRecvBufLock
      Src: /src/nss/lib/ssl/sslsecur.c:610,1
    - Dst: ssl_Release1stHandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:611,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 52
    argCount: 4
    argNames:
    - ss
    - out
    - len
    - flags
    argTypes:
    - sslSocket*
    - unsigned char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 521
    functionDepth: 1
    functionLinenumber: 521
    functionLinenumberEnd: 613
    functionName: DoRecv
    functionSourceFile: /src/nss/lib/ssl/sslsecur.c
    functionUses: 0
    functionsReached:
    - IS_DTLS
    - PORT_Assert
    - PORT_Memcpy
    - PR_MIN
    - ssl3_GatherAppDataRecord
    - SSL_TRC
    - ssl_ReleaseRecvBufLock
    - SSL_GETPID
    - PRINT_BUF
    - ssl_Release1stHandshakeLock
    - ssl_Get1stHandshakeLock
    - ssl_GetRecvBufLock
    - PORT_SetError
    - PR_GetError
    - sslBuffer_Clear
    linkageType: ''
    returnType: int
    signature: int DoRecv(sslSocket *ss, unsigned char *out, int len, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_GetXmitBufLock
      Src: /src/nss/lib/ssl/sslsecur.c:622,1
    - Dst: sslBuffer_Grow
      Src: /src/nss/lib/ssl/sslsecur.c:623,1
    - Dst: ssl_ReleaseXmitBufLock
      Src: /src/nss/lib/ssl/sslsecur.c:624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 617
    functionDepth: 1
    functionLinenumber: 617
    functionLinenumberEnd: 627
    functionName: ssl_CreateSecurityInfo
    functionSourceFile: /src/nss/lib/ssl/sslsecur.c
    functionUses: 2
    functionsReached:
    - sslBuffer_Grow
    - ssl_GetXmitBufLock
    - ssl_ReleaseXmitBufLock
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl_CreateSecurityInfo(sslSocket *ss)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/ssl/sslsecur.c:634,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ss
    - os
    argTypes:
    - sslSocket*
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 629
    functionDepth: 1
    functionLinenumber: 629
    functionLinenumberEnd: 642
    functionName: ssl_CopySecurityInfo
    functionSourceFile: /src/nss/lib/ssl/sslsecur.c
    functionUses: 1
    functionsReached:
    - CERT_DupCertificate
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl_CopySecurityInfo(sslSocket *ss, sslSocket *os)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/ssl/sslsecur.c:651,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/ssl/sslsecur.c:655,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/ssl/sslsecur.c:659,1
    - Dst: ssl_FreeSID
      Src: /src/nss/lib/ssl/sslsecur.c:665,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/ssl/sslsecur.c:667,1
    - Dst: memset
      Src: /src/nss/lib/ssl/sslsecur.c:669,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - sec
    - doMemset
    argTypes:
    - sslSecurityInfo*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 647
    functionDepth: 8
    functionLinenumber: 647
    functionLinenumberEnd: 671
    functionName: ssl_ResetSecurityInfo
    functionSourceFile: /src/nss/lib/ssl/sslsecur.c
    functionUses: 1
    functionsReached:
    - PORT_ZFree
    - SECKEY_DestroyPublicKey
    - ssl_FreeSID
    - memset
    - CERT_DestroyCertificate
    linkageType: ''
    returnType: void
    signature: void ssl_ResetSecurityInfo(sslSecurityInfo *sec, PRBool doMemset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_ResetSecurityInfo
      Src: /src/nss/lib/ssl/sslsecur.c:681,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/ssl/sslsecur.c:683,1
    - Dst: memset
      Src: /src/nss/lib/ssl/sslsecur.c:686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - sec
    argTypes:
    - sslSecurityInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 678
    functionDepth: 9
    functionLinenumber: 678
    functionLinenumberEnd: 687
    functionName: ssl_DestroySecurityInfo
    functionSourceFile: /src/nss/lib/ssl/sslsecur.c
    functionUses: 1
    functionsReached:
    - memset
    - PORT_ZFree
    - ssl_ResetSecurityInfo
    linkageType: ''
    returnType: void
    signature: void ssl_DestroySecurityInfo(sslSecurityInfo *sec)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PRFileDesc*::methods::connect
      Src: /src/nss/lib/ssl/sslsecur.c:706,1
    - Dst: PR_GetError
      Src: /src/nss/lib/ssl/sslsecur.c:710,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsecur.c:711,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsecur.c:712,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/sslsecur.c:718,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsecur.c:719,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - ss
    - sa
    argTypes:
    - sslSocket*
    - PRNetAddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 691
    functionDepth: 1
    functionLinenumber: 691
    functionLinenumberEnd: 721
    functionName: ssl_SecureConnect
    functionSourceFile: /src/nss/lib/ssl/sslsecur.c
    functionUses: 0
    functionsReached:
    - SSL_TRC
    - SSL_GETPID
    - PRFileDesc*::methods::connect
    - SSL_DBG
    - PR_GetError
    linkageType: ''
    returnType: int
    signature: int ssl_SecureConnect(sslSocket *ss, const PRNetAddr *sa)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ssl_EnableNagleDelay
      Src: /src/nss/lib/ssl/sslsecur.c:740,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/sslsecur.c:744,1
    - Dst: ssl_DefClose
      Src: /src/nss/lib/ssl/sslsecur.c:746,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 730
    functionDepth: 2
    functionLinenumber: 730
    functionLinenumberEnd: 748
    functionName: ssl_SecureClose
    functionSourceFile: /src/nss/lib/ssl/sslsecur.c
    functionUses: 0
    functionsReached:
    - ssl_EnableNagleDelay
    - SSL3_SendAlert
    - ssl_DefClose
    linkageType: ''
    returnType: int
    signature: int ssl_SecureClose(sslSocket *ss)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsecur.c:759,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/sslsecur.c:767,1
    - Dst: PRFileDesc*::methods::shutdown
      Src: /src/nss/lib/ssl/sslsecur.c:770,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - ss
    - nsprHow
    argTypes:
    - sslSocket*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 751
    functionDepth: 1
    functionLinenumber: 751
    functionLinenumberEnd: 775
    functionName: ssl_SecureShutdown
    functionSourceFile: /src/nss/lib/ssl/sslsecur.c
    functionUses: 0
    functionsReached:
    - SSL3_SendAlert
    - PORT_SetError
    - PRFileDesc*::methods::shutdown
    linkageType: ''
    returnType: int
    signature: int ssl_SecureShutdown(sslSocket *ss, int nsprHow)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ssl_GetSpecReadLock
      Src: /src/nss/lib/ssl/sslsecur.c:803,1
    - Dst: ssl_ReleaseSpecReadLock
      Src: /src/nss/lib/ssl/sslsecur.c:813,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/sslsecur.c:818,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsecur.c:819,1
    - Dst: ssl_GetSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:822,1
    - Dst: tls13_SendKeyUpdate
      Src: /src/nss/lib/ssl/sslsecur.c:827,1
    - Dst: ssl_ReleaseSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:830,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 2
    argNames:
    - ss
    - dir
    argTypes:
    - sslSocket*
    - SSLSecretDirection
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 779
    functionDepth: 1
    functionLinenumber: 779
    functionLinenumberEnd: 832
    functionName: tls13_CheckKeyUpdate
    functionSourceFile: /src/nss/lib/ssl/sslsecur.c
    functionUses: 0
    functionsReached:
    - ssl_GetSSL3HandshakeLock
    - SSL_TRC
    - SSL_GETPID
    - ssl_ReleaseSSL3HandshakeLock
    - ssl_GetSpecReadLock
    - ssl_ReleaseSpecReadLock
    - tls13_SendKeyUpdate
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_CheckKeyUpdate(sslSocket *ss, SSLSecretDirection dir)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsecur.c:840,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsecur.c:844,1
    - Dst: ssl_SocketIsBlocking
      Src: /src/nss/lib/ssl/sslsecur.c:848,1
    - Dst: ssl_GetXmitBufLock
      Src: /src/nss/lib/ssl/sslsecur.c:849,1
    - Dst: ssl_SendSavedWriteData
      Src: /src/nss/lib/ssl/sslsecur.c:851,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/sslsecur.c:852,1
    - Dst: ssl_ReleaseXmitBufLock
      Src: /src/nss/lib/ssl/sslsecur.c:853,1
    - Dst: ssl_ReleaseXmitBufLock
      Src: /src/nss/lib/ssl/sslsecur.c:857,1
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/lib/ssl/sslsecur.c:861,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsecur.c:862,1
    - Dst: tls13_Read0RttData
      Src: /src/nss/lib/ssl/sslsecur.c:863,1
    - Dst: ssl_Get1stHandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:868,1
    - Dst: ssl_Do1stHandshake
      Src: /src/nss/lib/ssl/sslsecur.c:870,1
    - Dst: ssl_Release1stHandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:872,1
    - Dst: tls13_CheckKeyUpdate
      Src: /src/nss/lib/ssl/sslsecur.c:874,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/sslsecur.c:879,1
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/lib/ssl/sslsecur.c:880,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsecur.c:881,1
    - Dst: tls13_Read0RttData
      Src: /src/nss/lib/ssl/sslsecur.c:882,1
    - Dst: DoRecv
      Src: /src/nss/lib/ssl/sslsecur.c:890,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/sslsecur.c:891,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsecur.c:892,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/sslsecur.c:892,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 48
    argCount: 4
    argNames:
    - ss
    - buf
    - len
    - flags
    argTypes:
    - sslSocket*
    - unsigned char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 834
    functionDepth: 3
    functionLinenumber: 834
    functionLinenumberEnd: 894
    functionName: ssl_SecureRecv
    functionSourceFile: /src/nss/lib/ssl/sslsecur.c
    functionUses: 0
    functionsReached:
    - ssl_Do1stHandshake
    - ssl_GetXmitBufLock
    - PORT_Assert
    - tls13_CheckKeyUpdate
    - DoRecv
    - SSL_TRC
    - PORT_GetError
    - SSL_GETPID
    - ssl_SendSavedWriteData
    - ssl_ReleaseXmitBufLock
    - PORT_SetError
    - tls13_Read0RttData
    - ssl_Get1stHandshakeLock
    - ssl_Release1stHandshakeLock
    - ssl_SocketIsBlocking
    - PR_CLIST_IS_EMPTY
    linkageType: ''
    returnType: int
    signature: int ssl_SecureRecv(sslSocket *ss, unsigned char *buf, int len, int
      flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_SecureRecv
      Src: /src/nss/lib/ssl/sslsecur.c:899,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ss
    - buf
    - len
    argTypes:
    - sslSocket*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 896
    functionDepth: 4
    functionLinenumber: 896
    functionLinenumberEnd: 900
    functionName: ssl_SecureRead
    functionSourceFile: /src/nss/lib/ssl/sslsecur.c
    functionUses: 0
    functionsReached:
    - ssl_SecureRecv
    linkageType: ''
    returnType: int
    signature: int ssl_SecureRead(sslSocket *ss, unsigned char *buf, int len)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/sslsecur.c:909,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsecur.c:910,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsecur.c:913,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsecur.c:918,1
    - Dst: ssl_GetXmitBufLock
      Src: /src/nss/lib/ssl/sslsecur.c:923,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsecur.c:925,1
    - Dst: ssl_SendSavedWriteData
      Src: /src/nss/lib/ssl/sslsecur.c:926,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsecur.c:928,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsecur.c:929,1
    - Dst: ssl_ReleaseXmitBufLock
      Src: /src/nss/lib/ssl/sslsecur.c:933,1
    - Dst: PR_GetCurrentThread
      Src: /src/nss/lib/ssl/sslsecur.c:939,1
    - Dst: ssl_Get1stHandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:950,1
    - Dst: ssl_GetSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:955,1
    - Dst: ssl_ReleaseSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:960,1
    - Dst: tls13_ShouldRequestClientAuth
      Src: /src/nss/lib/ssl/sslsecur.c:976,1
    - Dst: ssl_GetSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:977,1
    - Dst: TLS13_IN_HS_STATE
      Src: /src/nss/lib/ssl/sslsecur.c:978,1
    - Dst: ssl_ReleaseSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:979,1
    - Dst: ssl_Do1stHandshake
      Src: /src/nss/lib/ssl/sslsecur.c:982,1
    - Dst: ssl_GetSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:986,1
    - Dst: ssl_ReleaseSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:989,1
    - Dst: ssl_Release1stHandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:991,1
    - Dst: tls13_CheckKeyUpdate
      Src: /src/nss/lib/ssl/sslsecur.c:1000,1
    - Dst: ssl_GetSpecReadLock
      Src: /src/nss/lib/ssl/sslsecur.c:1015,1
    - Dst: tls13_LimitEarlyData
      Src: /src/nss/lib/ssl/sslsecur.c:1016,1
    - Dst: ssl_ReleaseSpecReadLock
      Src: /src/nss/lib/ssl/sslsecur.c:1017,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsecur.c:1027,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsecur.c:1029,1
    - Dst: ssl_GetXmitBufLock
      Src: /src/nss/lib/ssl/sslsecur.c:1034,1
    - Dst: ssl3_SendApplicationData
      Src: /src/nss/lib/ssl/sslsecur.c:1035,1
    - Dst: ssl_ReleaseXmitBufLock
      Src: /src/nss/lib/ssl/sslsecur.c:1036,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/sslsecur.c:1040,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsecur.c:1041,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/sslsecur.c:1041,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/sslsecur.c:1043,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsecur.c:1044,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 96
    argCount: 4
    argNames:
    - ss
    - buf
    - len
    - flags
    argTypes:
    - sslSocket*
    - unsigned char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 903
    functionDepth: 3
    functionLinenumber: 903
    functionLinenumberEnd: 1047
    functionName: ssl_SecureSend
    functionSourceFile: /src/nss/lib/ssl/sslsecur.c
    functionUses: 0
    functionsReached:
    - ssl_ReleaseSSL3HandshakeLock
    - ssl_GetSSL3HandshakeLock
    - TLS13_IN_HS_STATE
    - ssl_ReleaseXmitBufLock
    - PORT_SetError
    - ssl_Release1stHandshakeLock
    - ssl_Do1stHandshake
    - ssl_GetXmitBufLock
    - PORT_Assert
    - ssl_SendSavedWriteData
    - ssl_Get1stHandshakeLock
    - tls13_LimitEarlyData
    - ssl_GetSpecReadLock
    - tls13_ShouldRequestClientAuth
    - ssl3_SendApplicationData
    - SSL_TRC
    - SSL_GETPID
    - PORT_GetError
    - PR_GetCurrentThread
    - ssl_ReleaseSpecReadLock
    - tls13_CheckKeyUpdate
    linkageType: ''
    returnType: int
    signature: int ssl_SecureSend(sslSocket *ss, const unsigned char *buf, int len,
      int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_SecureSend
      Src: /src/nss/lib/ssl/sslsecur.c:1052,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ss
    - buf
    - len
    argTypes:
    - sslSocket*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1053
      start: 1049
    functionDepth: 4
    functionLinenumber: 1049
    functionLinenumberEnd: 1053
    functionName: ssl_SecureWrite
    functionSourceFile: /src/nss/lib/ssl/sslsecur.c
    functionUses: 0
    functionsReached:
    - ssl_SecureSend
    linkageType: ''
    returnType: int
    signature: int ssl_SecureWrite(sslSocket *ss, const unsigned char *buf, int len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslsecur.c:1059,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsecur.c:1061,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsecur.c:1062,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/sslsecur.c:1065,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsecur.c:1066,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsecur.c:1067,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsecur.c:1068,1
    - Dst: ssl_GetSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:1075,1
    - Dst: ssl_GetXmitBufLock
      Src: /src/nss/lib/ssl/sslsecur.c:1076,1
    - Dst: ssl_ReleaseXmitBufLock
      Src: /src/nss/lib/ssl/sslsecur.c:1079,1
    - Dst: ssl_ReleaseSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:1080,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - fd
    - cb
    - arg
    argTypes:
    - PRFileDesc*
    - SSLRecordWriteCallback
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1082
      start: 1055
    functionDepth: 2
    functionLinenumber: 1055
    functionLinenumberEnd: 1082
    functionName: SSLExp_RecordLayerWriteCallback
    functionSourceFile: /src/nss/lib/ssl/sslsecur.c
    functionUses: 0
    functionsReached:
    - IS_DTLS
    - ssl_GetXmitBufLock
    - ssl_GetSSL3HandshakeLock
    - SSL_GETPID
    - ssl_ReleaseSSL3HandshakeLock
    - ssl_ReleaseXmitBufLock
    - PORT_SetError
    - SSL_DBG
    - ssl_FindSocket
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSLExp_RecordLayerWriteCallback(PRFileDesc *fd, SSLRecordWriteCallback
      cb,\n                                void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslsecur.c:1089,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsecur.c:1091,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsecur.c:1092,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - fd
    - cb
    - arg
    argTypes:
    - PRFileDesc*
    - SSLAlertCallback
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 1084
    functionDepth: 2
    functionLinenumber: 1084
    functionLinenumberEnd: 1100
    functionName: SSL_AlertReceivedCallback
    functionSourceFile: /src/nss/lib/ssl/sslsecur.c
    functionUses: 0
    functionsReached:
    - ssl_FindSocket
    - SSL_GETPID
    - SSL_DBG
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSL_AlertReceivedCallback(PRFileDesc *fd, SSLAlertCallback
      cb, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslsecur.c:1107,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsecur.c:1109,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsecur.c:1110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - fd
    - cb
    - arg
    argTypes:
    - PRFileDesc*
    - SSLAlertCallback
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1118
      start: 1102
    functionDepth: 2
    functionLinenumber: 1102
    functionLinenumberEnd: 1118
    functionName: SSL_AlertSentCallback
    functionSourceFile: /src/nss/lib/ssl/sslsecur.c
    functionUses: 0
    functionsReached:
    - ssl_FindSocket
    - SSL_GETPID
    - SSL_DBG
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSL_AlertSentCallback(PRFileDesc *fd, SSLAlertCallback cb,
      void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslsecur.c:1125,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsecur.c:1127,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsecur.c:1128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - fd
    - f
    - arg
    argTypes:
    - PRFileDesc*
    - SSLBadCertHandler
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1136
      start: 1120
    functionDepth: 2
    functionLinenumber: 1120
    functionLinenumberEnd: 1136
    functionName: SSL_BadCertHook
    functionSourceFile: /src/nss/lib/ssl/sslsecur.c
    functionUses: 4
    functionsReached:
    - ssl_FindSocket
    - SSL_GETPID
    - SSL_DBG
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSL_BadCertHook(PRFileDesc *fd, SSLBadCertHandler f, void
      *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslsecur.c:1146,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsecur.c:1150,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsecur.c:1151,1
    - Dst: ssl_Get1stHandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:1154,1
    - Dst: ssl_GetSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:1155,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/sslsecur.c:1158,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/ssl/sslsecur.c:1161,1
    - Dst: ssl_ReleaseSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:1166,1
    - Dst: ssl_Release1stHandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:1167,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - fd
    - url
    argTypes:
    - PRFileDesc*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1143
    functionDepth: 2
    functionLinenumber: 1143
    functionLinenumberEnd: 1170
    functionName: SSL_SetURL
    functionSourceFile: /src/nss/lib/ssl/sslsecur.c
    functionUses: 4
    functionsReached:
    - ssl_GetSSL3HandshakeLock
    - PORT_Free
    - SSL_GETPID
    - ssl_ReleaseSSL3HandshakeLock
    - ssl_Get1stHandshakeLock
    - SSL_DBG
    - ssl_Release1stHandshakeLock
    - ssl_FindSocket
    - PORT_Strdup
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSL_SetURL(PRFileDesc *fd, const char *url)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslsecur.c:1178,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsecur.c:1182,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsecur.c:1186,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsecur.c:1187,1
    - Dst: CERT_DistNamesFromCertList
      Src: /src/nss/lib/ssl/sslsecur.c:1191,1
    - Dst: ssl_Get1stHandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:1195,1
    - Dst: ssl_GetSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:1196,1
    - Dst: CERT_FreeDistNames
      Src: /src/nss/lib/ssl/sslsecur.c:1198,1
    - Dst: ssl_ReleaseSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:1201,1
    - Dst: ssl_Release1stHandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:1202,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - fd
    - certList
    argTypes:
    - PRFileDesc*
    - CERTCertList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1205
      start: 1175
    functionDepth: 2
    functionLinenumber: 1175
    functionLinenumberEnd: 1205
    functionName: SSL_SetTrustAnchors
    functionSourceFile: /src/nss/lib/ssl/sslsecur.c
    functionUses: 0
    functionsReached:
    - ssl_GetSSL3HandshakeLock
    - SSL_GETPID
    - CERT_FreeDistNames
    - ssl_ReleaseSSL3HandshakeLock
    - ssl_Get1stHandshakeLock
    - PORT_SetError
    - SSL_DBG
    - ssl_Release1stHandshakeLock
    - ssl_FindSocket
    - CERT_DistNamesFromCertList
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSL_SetTrustAnchors(PRFileDesc *fd, CERTCertList *certList)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslsecur.c:1217,1
    - Dst: ssl_GetRecvBufLock
      Src: /src/nss/lib/ssl/sslsecur.c:1220,1
    - Dst: ssl_ReleaseRecvBufLock
      Src: /src/nss/lib/ssl/sslsecur.c:1222,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - fd
    argTypes:
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1226
      start: 1211
    functionDepth: 2
    functionLinenumber: 1211
    functionLinenumberEnd: 1226
    functionName: SSL_DataPending
    functionSourceFile: /src/nss/lib/ssl/sslsecur.c
    functionUses: 1
    functionsReached:
    - ssl_FindSocket
    - ssl_GetRecvBufLock
    - ssl_ReleaseRecvBufLock
    linkageType: ''
    returnType: int
    signature: int SSL_DataPending(PRFileDesc *fd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslsecur.c:1231,1
    - Dst: ssl_Get1stHandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:1235,1
    - Dst: ssl_GetSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:1236,1
    - Dst: ssl_UncacheSessionID
      Src: /src/nss/lib/ssl/sslsecur.c:1239,1
    - Dst: ssl_ReleaseSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:1243,1
    - Dst: ssl_Release1stHandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:1244,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - fd
    argTypes:
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1247
      start: 1228
    functionDepth: 2
    functionLinenumber: 1228
    functionLinenumberEnd: 1247
    functionName: SSL_InvalidateSession
    functionSourceFile: /src/nss/lib/ssl/sslsecur.c
    functionUses: 0
    functionsReached:
    - ssl_GetSSL3HandshakeLock
    - ssl_UncacheSessionID
    - ssl_ReleaseSSL3HandshakeLock
    - ssl_Get1stHandshakeLock
    - ssl_Release1stHandshakeLock
    - ssl_FindSocket
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSL_InvalidateSession(PRFileDesc *fd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslsecur.c:1255,1
    - Dst: ssl_Get1stHandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:1257,1
    - Dst: ssl_GetSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:1258,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/ssl/sslsecur.c:1261,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/ssl/sslsecur.c:1265,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/sslsecur.c:1266,1
    - Dst: ssl_ReleaseSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:1270,1
    - Dst: ssl_Release1stHandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:1271,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - fd
    argTypes:
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1274
      start: 1249
    functionDepth: 2
    functionLinenumber: 1249
    functionLinenumberEnd: 1274
    functionName: SSL_GetSessionID
    functionSourceFile: /src/nss/lib/ssl/sslsecur.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_Memcpy
    - ssl_GetSSL3HandshakeLock
    - ssl_ReleaseSSL3HandshakeLock
    - ssl_Get1stHandshakeLock
    - ssl_Release1stHandshakeLock
    - ssl_FindSocket
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      SSL_GetSessionID(PRFileDesc *fd)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslsecur.c:1281,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsecur.c:1285,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - fd
    - dbHandle
    argTypes:
    - PRFileDesc*
    - CERTCertDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1290
      start: 1276
    functionDepth: 2
    functionLinenumber: 1276
    functionLinenumberEnd: 1290
    functionName: SSL_CertDBHandleSet
    functionSourceFile: /src/nss/lib/ssl/sslsecur.c
    functionUses: 0
    functionsReached:
    - ssl_FindSocket
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSL_CertDBHandleSet(PRFileDesc *fd, CERTCertDBHandle *dbHandle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsecur.c:1301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ss
    - cert
    - key
    - certChain
    argTypes:
    - sslSocket*
    - CERTCertificate*
    - SECKEYPrivateKey*
    - CERTCertificateList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1303
      start: 1295
    functionDepth: 0
    functionLinenumber: 1295
    functionLinenumberEnd: 1303
    functionName: SSL_RestartHandshakeAfterCertReq
    functionSourceFile: /src/nss/lib/ssl/sslsecur.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: int
    signature: "int SSL_RestartHandshakeAfterCertReq(sslSocket *ss,\n                                 CERTCertificate
      *cert,\n                                 SECKEYPrivateKey *key,\n                                 CERTCertificateList
      *certChain)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsecur.c:1311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1313
      start: 1308
    functionDepth: 0
    functionLinenumber: 1308
    functionLinenumberEnd: 1313
    functionName: SSL_RestartHandshakeAfterServerCert
    functionSourceFile: /src/nss/lib/ssl/sslsecur.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: int
    signature: int SSL_RestartHandshakeAfterServerCert(sslSocket *ss)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslsecur.c:1320,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsecur.c:1323,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsecur.c:1324,1
    - Dst: ssl_Get1stHandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:1328,1
    - Dst: ssl3_AuthCertificateComplete
      Src: /src/nss/lib/ssl/sslsecur.c:1329,1
    - Dst: ssl_Release1stHandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:1330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - fd
    - error
    argTypes:
    - PRFileDesc*
    - PRErrorCode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1333
      start: 1316
    functionDepth: 2
    functionLinenumber: 1316
    functionLinenumberEnd: 1333
    functionName: SSL_AuthCertificateComplete
    functionSourceFile: /src/nss/lib/ssl/sslsecur.c
    functionUses: 1
    functionsReached:
    - SSL_GETPID
    - ssl_Release1stHandshakeLock
    - ssl_Get1stHandshakeLock
    - ssl3_AuthCertificateComplete
    - SSL_DBG
    - ssl_FindSocket
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSL_AuthCertificateComplete(PRFileDesc *fd, PRErrorCode error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslsecur.c:1340,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsecur.c:1343,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsecur.c:1344,1
    - Dst: ssl_Get1stHandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:1350,1
    - Dst: ssl_GetRecvBufLock
      Src: /src/nss/lib/ssl/sslsecur.c:1351,1
    - Dst: ssl_GetSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:1352,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsecur.c:1356,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsecur.c:1357,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsecur.c:1358,1
    - Dst: ssl3_ClientCertCallbackComplete
      Src: /src/nss/lib/ssl/sslsecur.c:1363,1
    - Dst: ssl_ReleaseRecvBufLock
      Src: /src/nss/lib/ssl/sslsecur.c:1366,1
    - Dst: ssl_ReleaseSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:1367,1
    - Dst: ssl_Release1stHandshakeLock
      Src: /src/nss/lib/ssl/sslsecur.c:1368,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 4
    argNames:
    - fd
    - outcome
    - clientPrivateKey
    - clientCertificate
    argTypes:
    - PRFileDesc*
    - SECStatus
    - SECKEYPrivateKey*
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1370
      start: 1335
    functionDepth: 2
    functionLinenumber: 1335
    functionLinenumberEnd: 1370
    functionName: SSL_ClientCertCallbackComplete
    functionSourceFile: /src/nss/lib/ssl/sslsecur.c
    functionUses: 1
    functionsReached:
    - ssl_GetSSL3HandshakeLock
    - ssl_ReleaseRecvBufLock
    - SSL_GETPID
    - ssl3_ClientCertCallbackComplete
    - ssl_ReleaseSSL3HandshakeLock
    - ssl_Get1stHandshakeLock
    - ssl_GetRecvBufLock
    - PORT_SetError
    - SSL_DBG
    - ssl_Release1stHandshakeLock
    - ssl_FindSocket
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSL_ClientCertCallbackComplete(PRFileDesc *fd, SECStatus
      outcome, SECKEYPrivateKey *clientPrivateKey,\n                               CERTCertificate
      *clientCertificate)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslsecur.c:1379,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsecur.c:1381,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsecur.c:1382,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - fd
    - func
    - arg
    argTypes:
    - PRFileDesc*
    - SSLSNISocketConfig
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1389
      start: 1373
    functionDepth: 2
    functionLinenumber: 1373
    functionLinenumberEnd: 1389
    functionName: SSL_SNISocketConfigHook
    functionSourceFile: /src/nss/lib/ssl/sslsecur.c
    functionUses: 1
    functionsReached:
    - ssl_FindSocket
    - SSL_GETPID
    - SSL_DBG
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSL_SNISocketConfigHook(PRFileDesc *fd, SSLSNISocketConfig
      func,\n                        void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sslBuffer_Grow
      Src: /src/nss/lib/ssl/ssl3gthr.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - gs
    argTypes:
    - sslGather*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 39
    functionName: ssl3_InitGather
    functionSourceFile: /src/nss/lib/ssl/ssl3gthr.c
    functionUses: 2
    functionsReached:
    - sslBuffer_Grow
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_InitGather(sslGather *gs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZFree
      Src: /src/nss/lib/ssl/ssl3gthr.c:46,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/ssl3gthr.c:47,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/ssl3gthr.c:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - gs
    argTypes:
    - sslGather*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 50
    functionName: ssl3_DestroyGather
    functionSourceFile: /src/nss/lib/ssl/ssl3gthr.c
    functionUses: 1
    functionsReached:
    - PORT_Free
    - PORT_ZFree
    linkageType: ''
    returnType: void
    signature: void ssl3_DestroyGather(sslGather *gs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MSB
      Src: /src/nss/lib/ssl/ssl3gthr.c:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - buf
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 66
    functionName: ssl3_isLikelyV3Hello
    functionSourceFile: /src/nss/lib/ssl/ssl3gthr.c
    functionUses: 0
    functionsReached:
    - MSB
    linkageType: ''
    returnType: PRBool
    signature: PRBool ssl3_isLikelyV3Hello(const unsigned char *buf)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3gthr.c:99,1
    - Dst: ssl_HaveRecvBufLock
      Src: /src/nss/lib/ssl/ssl3gthr.c:99,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3gthr.c:111,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3gthr.c:112,1
    - Dst: ssl_DefRecv
      Src: /src/nss/lib/ssl/ssl3gthr.c:114,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/ssl3gthr.c:117,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3gthr.c:120,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3gthr.c:120,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/ssl3gthr.c:124,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3gthr.c:124,1
    - Dst: PR_GetError
      Src: /src/nss/lib/ssl/ssl3gthr.c:125,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3gthr.c:130,1
    - Dst: ssl3_isLikelyV3Hello
      Src: /src/nss/lib/ssl/ssl3gthr.c:156,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3gthr.c:192,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3gthr.c:194,1
    - Dst: sslBuffer_Grow
      Src: /src/nss/lib/ssl/ssl3gthr.c:204,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3gthr.c:218,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3gthr.c:219,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3gthr.c:223,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/ssl3gthr.c:225,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3gthr.c:242,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3gthr.c:243,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 95
    argCount: 4
    argNames:
    - ss
    - gs
    - flags
    - ssl2gs
    argTypes:
    - sslSocket*
    - sslGather*
    - int
    - ssl2Gather*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 254
    functionName: ssl3_GatherData
    functionSourceFile: /src/nss/lib/ssl/ssl3gthr.c
    functionUses: 0
    functionsReached:
    - SSL3_SendAlert
    - PORT_Assert
    - PR_GetError
    - PORT_Memcpy
    - ssl3_isLikelyV3Hello
    - sslBuffer_Grow
    - SSL_TRC
    - SSL_GETPID
    - PRINT_BUF
    - PORT_SetError
    - ssl_DefRecv
    - SSL_DBG
    - ssl_HaveRecvBufLock
    linkageType: ''
    returnType: int
    signature: int ssl3_GatherData(sslSocket *ss, sslGather *gs, int flags, ssl2Gather
      *ssl2gs)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3gthr.c:286,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3gthr.c:288,1
    - Dst: ssl_HaveRecvBufLock
      Src: /src/nss/lib/ssl/ssl3gthr.c:288,1
    - Dst: sslBuffer_Grow
      Src: /src/nss/lib/ssl/ssl3gthr.c:310,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/ssl3gthr.c:317,1
    - Dst: sslBuffer_Grow
      Src: /src/nss/lib/ssl/ssl3gthr.c:318,1
    - Dst: ssl_DefRecv
      Src: /src/nss/lib/ssl/ssl3gthr.c:327,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/ssl3gthr.c:329,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3gthr.c:332,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3gthr.c:332,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/ssl3gthr.c:335,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3gthr.c:335,1
    - Dst: PR_GetError
      Src: /src/nss/lib/ssl/ssl3gthr.c:336,1
    - Dst: dtls_IsLongHeader
      Src: /src/nss/lib/ssl/ssl3gthr.c:346,1
    - Dst: dtls_IsDtls13Ciphertext
      Src: /src/nss/lib/ssl/ssl3gthr.c:350,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3gthr.c:361,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/ssl3gthr.c:372,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3gthr.c:373,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3gthr.c:374,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/ssl3gthr.c:384,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3gthr.c:386,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3gthr.c:387,1
    - Dst: memcpy
      Src: /src/nss/lib/ssl/ssl3gthr.c:392,1
    - Dst: SSL_BUFFER_BASE
      Src: /src/nss/lib/ssl/ssl3gthr.c:392,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/ssl3gthr.c:406,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3gthr.c:408,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3gthr.c:409,1
    - Dst: sslBuffer_Append
      Src: /src/nss/lib/ssl/ssl3gthr.c:417,1
    - Dst: SSL_BUFFER_BASE
      Src: /src/nss/lib/ssl/ssl3gthr.c:418,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3gthr.c:427,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3gthr.c:428,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 89
    argCount: 3
    argNames:
    - ss
    - gs
    - flags
    argTypes:
    - sslSocket*
    - sslGather*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 430
    functionName: dtls_GatherData
    functionSourceFile: /src/nss/lib/ssl/ssl3gthr.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PR_GetError
    - memcpy
    - dtls_IsLongHeader
    - SSL_BUFFER_BASE
    - sslBuffer_Grow
    - dtls_IsDtls13Ciphertext
    - SSL_TRC
    - SSL_GETPID
    - PRINT_BUF
    - PORT_SetError
    - ssl_DefRecv
    - SSL_DBG
    - ssl_HaveRecvBufLock
    - sslBuffer_Clear
    - sslBuffer_Append
    linkageType: ''
    returnType: int
    signature: int dtls_GatherData(sslSocket *ss, sslGather *gs, int flags)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3gthr.c:455,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3gthr.c:456,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3gthr.c:457,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3gthr.c:461,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3gthr.c:462,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3gthr.c:468,1
    - Dst: ssl_Have1stHandshakeLock
      Src: /src/nss/lib/ssl/ssl3gthr.c:468,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3gthr.c:469,1
    - Dst: ssl_HaveRecvBufLock
      Src: /src/nss/lib/ssl/ssl3gthr.c:469,1
    - Dst: ssl_GetSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3gthr.c:474,1
    - Dst: ssl_ReleaseSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3gthr.c:483,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3gthr.c:484,1
    - Dst: ssl_ReleaseSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3gthr.c:491,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3gthr.c:495,1
    - Dst: ssl_ReleaseSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3gthr.c:499,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3gthr.c:519,1
    - Dst: ssl3_GatherData
      Src: /src/nss/lib/ssl/ssl3gthr.c:522,1
    - Dst: dtls_GatherData
      Src: /src/nss/lib/ssl/ssl3gthr.c:524,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/ssl3gthr.c:530,1
    - Dst: dtls_CheckTimer
      Src: /src/nss/lib/ssl/ssl3gthr.c:531,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3gthr.c:533,1
    - Dst: ssl3_HandleV2ClientHello
      Src: /src/nss/lib/ssl/ssl3gthr.c:542,1
    - Dst: ssl3_HandleRecord
      Src: /src/nss/lib/ssl/ssl3gthr.c:560,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/ssl3gthr.c:568,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3gthr.c:579,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3gthr.c:583,1
    - Dst: ssl_GetSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3gthr.c:584,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3gthr.c:592,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3gthr.c:593,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3gthr.c:604,1
    - Dst: ssl3_WaitingForServerSecondRound
      Src: /src/nss/lib/ssl/ssl3gthr.c:606,1
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/lib/ssl/ssl3gthr.c:613,1
    - Dst: ssl_ReleaseSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3gthr.c:617,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3gthr.c:618,1
    - Dst: ssl_ReleaseSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3gthr.c:621,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3gthr.c:626,1
    - Dst: dtls_CheckTimer
      Src: /src/nss/lib/ssl/ssl3gthr.c:627,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 91
    argCount: 2
    argNames:
    - ss
    - flags
    argTypes:
    - sslSocket*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 447
    functionDepth: 2
    functionLinenumber: 447
    functionLinenumberEnd: 632
    functionName: ssl3_GatherCompleteHandshake
    functionSourceFile: /src/nss/lib/ssl/ssl3gthr.c
    functionUses: 1
    functionsReached:
    - IS_DTLS
    - PORT_Assert
    - ssl3_WaitingForServerSecondRound
    - sslBuffer_Clear
    - ssl_GetSSL3HandshakeLock
    - ssl_Have1stHandshakeLock
    - SSL_TRC
    - SSL_GETPID
    - ssl_ReleaseSSL3HandshakeLock
    - dtls_GatherData
    - PORT_GetError
    - PORT_SetError
    - dtls_CheckTimer
    - ssl_HaveRecvBufLock
    - ssl3_HandleV2ClientHello
    - ssl3_GatherData
    - PR_CLIST_IS_EMPTY
    - ssl3_HandleRecord
    linkageType: ''
    returnType: int
    signature: int ssl3_GatherCompleteHandshake(sslSocket *ss, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3gthr.c:650,1
    - Dst: ssl_Have1stHandshakeLock
      Src: /src/nss/lib/ssl/ssl3gthr.c:650,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3gthr.c:651,1
    - Dst: ssl_HaveRecvBufLock
      Src: /src/nss/lib/ssl/ssl3gthr.c:651,1
    - Dst: ssl3_GatherCompleteHandshake
      Src: /src/nss/lib/ssl/ssl3gthr.c:654,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - ss
    - flags
    argTypes:
    - sslSocket*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 644
    functionDepth: 3
    functionLinenumber: 644
    functionLinenumberEnd: 658
    functionName: ssl3_GatherAppDataRecord
    functionSourceFile: /src/nss/lib/ssl/ssl3gthr.c
    functionUses: 1
    functionsReached:
    - ssl_HaveRecvBufLock
    - PORT_Assert
    - ssl3_GatherCompleteHandshake
    - ssl_Have1stHandshakeLock
    linkageType: ''
    returnType: int
    signature: int ssl3_GatherAppDataRecord(sslSocket *ss, int flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3gthr.c:663,1
    - Dst: CONST_CAST
      Src: /src/nss/lib/ssl/ssl3gthr.c:665,1
    - Dst: tls13_HandleEarlyApplicationData
      Src: /src/nss/lib/ssl/ssl3gthr.c:666,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3gthr.c:673,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - ss
    - data
    - len
    argTypes:
    - sslSocket*
    - PRUint8*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 660
    functionDepth: 1
    functionLinenumber: 660
    functionLinenumberEnd: 675
    functionName: ssl_HandleZeroRttRecordData
    functionSourceFile: /src/nss/lib/ssl/ssl3gthr.c
    functionUses: 0
    functionsReached:
    - CONST_CAST
    - PORT_Assert
    - PORT_SetError
    - tls13_HandleEarlyApplicationData
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl_HandleZeroRttRecordData(sslSocket *ss, const PRUint8
      *data, unsigned int len)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - ss
    - epoch
    argTypes:
    - sslSocket*
    - PRUint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 678
    functionDepth: 0
    functionLinenumber: 678
    functionLinenumberEnd: 698
    functionName: ssl_IsApplicationDataPermitted
    functionSourceFile: /src/nss/lib/ssl/ssl3gthr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool ssl_IsApplicationDataPermitted(sslSocket *ss, PRUint16 epoch)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/ssl3gthr.c:706,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3gthr.c:710,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3gthr.c:711,1
    - Dst: ssl_Get1stHandshakeLock
      Src: /src/nss/lib/ssl/ssl3gthr.c:720,1
    - Dst: ssl_Do1stHandshake
      Src: /src/nss/lib/ssl/ssl3gthr.c:721,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/ssl3gthr.c:722,1
    - Dst: ssl_IsApplicationDataPermitted
      Src: /src/nss/lib/ssl/ssl3gthr.c:727,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3gthr.c:728,1
    - Dst: ssl_GetSpecReadLock
      Src: /src/nss/lib/ssl/ssl3gthr.c:734,1
    - Dst: ssl_ReleaseSpecReadLock
      Src: /src/nss/lib/ssl/ssl3gthr.c:753,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3gthr.c:755,1
    - Dst: ssl_Do1stHandshake
      Src: /src/nss/lib/ssl/ssl3gthr.c:760,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/ssl3gthr.c:761,1
    - Dst: ssl_HandleZeroRttRecordData
      Src: /src/nss/lib/ssl/ssl3gthr.c:769,1
    - Dst: ssl_Release1stHandshakeLock
      Src: /src/nss/lib/ssl/ssl3gthr.c:770,1
    - Dst: ssl_GetRecvBufLock
      Src: /src/nss/lib/ssl/ssl3gthr.c:775,1
    - Dst: sslBuffer_Append
      Src: /src/nss/lib/ssl/ssl3gthr.c:776,1
    - Dst: ssl3_HandleNonApplicationData
      Src: /src/nss/lib/ssl/ssl3gthr.c:784,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/ssl3gthr.c:786,1
    - Dst: ssl_ReleaseRecvBufLock
      Src: /src/nss/lib/ssl/ssl3gthr.c:791,1
    - Dst: ssl_Release1stHandshakeLock
      Src: /src/nss/lib/ssl/ssl3gthr.c:792,1
    - Dst: ssl_ReleaseRecvBufLock
      Src: /src/nss/lib/ssl/ssl3gthr.c:798,1
    - Dst: ssl_Release1stHandshakeLock
      Src: /src/nss/lib/ssl/ssl3gthr.c:800,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 72
    argCount: 5
    argNames:
    - fd
    - epoch
    - contentType
    - data
    - len
    argTypes:
    - PRFileDesc*
    - PRUint16
    - SSLContentType
    - PRUint8*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 700
    functionDepth: 2
    functionLinenumber: 700
    functionLinenumberEnd: 802
    functionName: SSLExp_RecordLayerData
    functionSourceFile: /src/nss/lib/ssl/ssl3gthr.c
    functionUses: 0
    functionsReached:
    - IS_DTLS
    - ssl_Do1stHandshake
    - ssl_HandleZeroRttRecordData
    - ssl_ReleaseRecvBufLock
    - PORT_GetError
    - ssl_Get1stHandshakeLock
    - ssl3_HandleNonApplicationData
    - PORT_SetError
    - ssl_GetRecvBufLock
    - ssl_Release1stHandshakeLock
    - ssl_GetSpecReadLock
    - ssl_FindSocket
    - ssl_ReleaseSpecReadLock
    - ssl_IsApplicationDataPermitted
    - sslBuffer_Append
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSLExp_RecordLayerData(PRFileDesc *fd, PRUint16 epoch,\n
      \                      SSLContentType contentType,\n                       const
      PRUint8 *data, unsigned int len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/ssl3gthr.c:808,1
    - Dst: ssl_GetSpecReadLock
      Src: /src/nss/lib/ssl/ssl3gthr.c:813,1
    - Dst: ssl_ReleaseSpecReadLock
      Src: /src/nss/lib/ssl/ssl3gthr.c:820,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - fd
    - readEpoch
    - writeEpoch
    argTypes:
    - PRFileDesc*
    - PRUint16*
    - PRUint16*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 804
    functionDepth: 2
    functionLinenumber: 804
    functionLinenumberEnd: 822
    functionName: SSLExp_GetCurrentEpoch
    functionSourceFile: /src/nss/lib/ssl/ssl3gthr.c
    functionUses: 0
    functionsReached:
    - ssl_GetSpecReadLock
    - ssl_FindSocket
    - ssl_ReleaseSpecReadLock
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSLExp_GetCurrentEpoch(PRFileDesc *fd, PRUint16 *readEpoch,\n
      \                      PRUint16 *writeEpoch)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PR_ATOMIC_DECREMENT
      Src: /src/nss/lib/ssl/tls13replay.c:44,1
    - Dst: PZ_DestroyMonitor
      Src: /src/nss/lib/ssl/tls13replay.c:49,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/tls13replay.c:52,1
    - Dst: sslBloom_Destroy
      Src: /src/nss/lib/ssl/tls13replay.c:54,1
    - Dst: sslBloom_Destroy
      Src: /src/nss/lib/ssl/tls13replay.c:55,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/tls13replay.c:56,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSLAntiReplayContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 38
    functionDepth: 4
    functionLinenumber: 38
    functionLinenumberEnd: 57
    functionName: tls13_ReleaseAntiReplayContext
    functionSourceFile: /src/nss/lib/ssl/tls13replay.c
    functionUses: 2
    functionsReached:
    - PORT_Free
    - PR_ATOMIC_DECREMENT
    - sslBloom_Destroy
    - PZ_DestroyMonitor
    - PK11_FreeSymKey
    linkageType: ''
    returnType: void
    signature: void tls13_ReleaseAntiReplayContext(SSLAntiReplayContext *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tls13_ReleaseAntiReplayContext
      Src: /src/nss/lib/ssl/tls13replay.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSLAntiReplayContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 60
    functionDepth: 5
    functionLinenumber: 60
    functionLinenumberEnd: 65
    functionName: SSLExp_ReleaseAntiReplayContext
    functionSourceFile: /src/nss/lib/ssl/tls13replay.c
    functionUses: 0
    functionsReached:
    - tls13_ReleaseAntiReplayContext
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSLExp_ReleaseAntiReplayContext(SSLAntiReplayContext *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13replay.c:70,1
    - Dst: PR_ATOMIC_INCREMENT
      Src: /src/nss/lib/ssl/tls13replay.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSLAntiReplayContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 73
    functionName: tls13_RefAntiReplayContext
    functionSourceFile: /src/nss/lib/ssl/tls13replay.c
    functionUses: 2
    functionsReached:
    - PORT_Assert
    - PR_ATOMIC_INCREMENT
    linkageType: ''
    returnType: SSLAntiReplayContext
    signature: 'SSLAntiReplayContext *

      tls13_RefAntiReplayContext(SSLAntiReplayContext *ctx)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13replay.c:80,1
    - Dst: PK11_GetBestSlot
      Src: /src/nss/lib/ssl/tls13replay.c:82,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13replay.c:84,1
    - Dst: PK11_KeyGen
      Src: /src/nss/lib/ssl/tls13replay.c:88,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/ssl/tls13replay.c:93,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/ssl/tls13replay.c:97,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSLAntiReplayContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 75
    functionDepth: 8
    functionLinenumber: 75
    functionLinenumberEnd: 99
    functionName: tls13_AntiReplayKeyGen
    functionSourceFile: /src/nss/lib/ssl/tls13replay.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PK11_GetBestSlot
    - PORT_SetError
    - PK11_KeyGen
    - PK11_FreeSlot
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_AntiReplayKeyGen(SSLAntiReplayContext *ctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13replay.c:117,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13replay.c:121,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/ssl/tls13replay.c:125,1
    - Dst: PZ_NewMonitor
      Src: /src/nss/lib/ssl/tls13replay.c:131,1
    - Dst: tls13_AntiReplayKeyGen
      Src: /src/nss/lib/ssl/tls13replay.c:136,1
    - Dst: sslBloom_Init
      Src: /src/nss/lib/ssl/tls13replay.c:141,1
    - Dst: sslBloom_Init
      Src: /src/nss/lib/ssl/tls13replay.c:145,1
    - Dst: sslBloom_Fill
      Src: /src/nss/lib/ssl/tls13replay.c:151,1
    - Dst: tls13_ReleaseAntiReplayContext
      Src: /src/nss/lib/ssl/tls13replay.c:160,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 5
    argNames:
    - now
    - window
    - k
    - bits
    - pctx
    argTypes:
    - PRTime
    - PRTime
    - unsigned int
    - unsigned int
    - SSLAntiReplayContext**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 110
    functionDepth: 9
    functionLinenumber: 110
    functionLinenumberEnd: 162
    functionName: SSLExp_CreateAntiReplayContext
    functionSourceFile: /src/nss/lib/ssl/tls13replay.c
    functionUses: 0
    functionsReached:
    - tls13_ReleaseAntiReplayContext
    - PORT_ZNew
    - sslBloom_Init
    - tls13_AntiReplayKeyGen
    - PORT_SetError
    - PZ_NewMonitor
    - sslBloom_Fill
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSLExp_CreateAntiReplayContext(PRTime now, PRTime window,
      unsigned int k,\n                               unsigned int bits, SSLAntiReplayContext
      **pctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/tls13replay.c:167,1
    - Dst: tls13_ReleaseAntiReplayContext
      Src: /src/nss/lib/ssl/tls13replay.c:171,1
    - Dst: tls13_RefAntiReplayContext
      Src: /src/nss/lib/ssl/tls13replay.c:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - fd
    - ctx
    argTypes:
    - PRFileDesc*
    - SSLAntiReplayContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 164
    functionDepth: 5
    functionLinenumber: 164
    functionLinenumberEnd: 178
    functionName: SSLExp_SetAntiReplayContext
    functionSourceFile: /src/nss/lib/ssl/tls13replay.c
    functionUses: 0
    functionsReached:
    - ssl_FindSocket
    - tls13_ReleaseAntiReplayContext
    - tls13_RefAntiReplayContext
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSLExp_SetAntiReplayContext(PRFileDesc *fd, SSLAntiReplayContext
      *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_ASSERT_CURRENT_THREAD_IN_MONITOR
      Src: /src/nss/lib/ssl/tls13replay.c:183,1
    - Dst: sslBloom_Zero
      Src: /src/nss/lib/ssl/tls13replay.c:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - now
    argTypes:
    - SSLAntiReplayContext*
    - PRTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 189
    functionName: tls13_AntiReplayUpdate
    functionSourceFile: /src/nss/lib/ssl/tls13replay.c
    functionUses: 0
    functionsReached:
    - PR_ASSERT_CURRENT_THREAD_IN_MONITOR
    - sslBloom_Zero
    linkageType: ''
    returnType: void
    signature: void tls13_AntiReplayUpdate(SSLAntiReplayContext *ctx, PRTime now)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_Time
      Src: /src/nss/lib/ssl/tls13replay.c:201,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13replay.c:226,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13replay.c:227,1
    - Dst: PR_ABS
      Src: /src/nss/lib/ssl/tls13replay.c:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ss
    - sid
    argTypes:
    - sslSocket*
    - sslSessionID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 229
    functionName: tls13_InWindow
    functionSourceFile: /src/nss/lib/ssl/tls13replay.c
    functionUses: 0
    functionsReached:
    - SSL_TRC
    - SSL_GETPID
    - ssl_Time
    - PR_ABS
    linkageType: ''
    returnType: PRBool
    signature: PRBool tls13_InWindow(const sslSocket *ss, const sslSessionID *sid)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13replay.c:254,1
    - Dst: tls13_InWindow
      Src: /src/nss/lib/ssl/tls13replay.c:255,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13replay.c:260,1
    - Dst: tls13_HkdfExpandLabelRaw
      Src: /src/nss/lib/ssl/tls13replay.c:261,1
    - Dst: strlen
      Src: /src/nss/lib/ssl/tls13replay.c:264,1
    - Dst: PZ_EnterMonitor
      Src: /src/nss/lib/ssl/tls13replay.c:270,1
    - Dst: tls13_AntiReplayUpdate
      Src: /src/nss/lib/ssl/tls13replay.c:271,1
    - Dst: ssl_Time
      Src: /src/nss/lib/ssl/tls13replay.c:271,1
    - Dst: sslBloom_Add
      Src: /src/nss/lib/ssl/tls13replay.c:274,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13replay.c:275,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13replay.c:276,1
    - Dst: sslBloom_Check
      Src: /src/nss/lib/ssl/tls13replay.c:278,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13replay.c:279,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13replay.c:280,1
    - Dst: PZ_ExitMonitor
      Src: /src/nss/lib/ssl/tls13replay.c:283,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 2
    argNames:
    - ss
    - sid
    argTypes:
    - sslSocket*
    - sslSessionID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 285
    functionName: tls13_IsReplay
    functionSourceFile: /src/nss/lib/ssl/tls13replay.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - tls13_InWindow
    - ssl_Time
    - SSL_TRC
    - SSL_GETPID
    - PZ_ExitMonitor
    - tls13_AntiReplayUpdate
    - sslBloom_Add
    - PZ_EnterMonitor
    - sslBloom_Check
    - tls13_HkdfExpandLabelRaw
    - strlen
    linkageType: ''
    returnType: PRBool
    signature: PRBool tls13_IsReplay(const sslSocket *ss, const sslSessionID *sid)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: CONST_CAST
      Src: /src/nss/lib/ssl/tls13hkdf.c:41,1
    - Dst: PK11_GetSymKeyHandle
      Src: /src/nss/lib/ssl/tls13hkdf.c:62,1
    - Dst: PK11_SymKeysToSameSlot
      Src: /src/nss/lib/ssl/tls13hkdf.c:67,1
    - Dst: PK11_ExtractKeyValue
      Src: /src/nss/lib/ssl/tls13hkdf.c:73,1
    - Dst: PK11_GetKeyData
      Src: /src/nss/lib/ssl/tls13hkdf.c:76,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13hkdf.c:79,1
    - Dst: PK11_GetSymKeyHandle
      Src: /src/nss/lib/ssl/tls13hkdf.c:88,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13hkdf.c:100,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13hkdf.c:101,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13hkdf.c:102,1
    - Dst: PK11_GetSlotFromKey
      Src: /src/nss/lib/ssl/tls13hkdf.c:107,1
    - Dst: PK11_GetBestSlot
      Src: /src/nss/lib/ssl/tls13hkdf.c:107,1
    - Dst: PK11_ImportDataKey
      Src: /src/nss/lib/ssl/tls13hkdf.c:112,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13hkdf.c:119,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/tls13hkdf.c:121,1
    - Dst: PRINT_KEY
      Src: /src/nss/lib/ssl/tls13hkdf.c:122,1
    - Dst: PK11_Derive
      Src: /src/nss/lib/ssl/tls13hkdf.c:124,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/tls13hkdf.c:126,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/tls13hkdf.c:127,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/ssl/tls13hkdf.c:129,1
    - Dst: PRINT_KEY
      Src: /src/nss/lib/ssl/tls13hkdf.c:134,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 66
    argCount: 4
    argNames:
    - ikm1
    - ikm2
    - baseHash
    - prkp
    argTypes:
    - PK11SymKey*
    - PK11SymKey*
    - SSLHashType
    - PK11SymKey**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 33
    functionDepth: 10
    functionLinenumber: 33
    functionLinenumberEnd: 138
    functionName: tls13_HkdfExtract
    functionSourceFile: /src/nss/lib/ssl/tls13hkdf.c
    functionUses: 0
    functionsReached:
    - CONST_CAST
    - PORT_Assert
    - PRINT_KEY
    - PK11_GetSlotFromKey
    - PK11_GetSymKeyHandle
    - PK11_SymKeysToSameSlot
    - PK11_GetBestSlot
    - PRINT_BUF
    - PK11_ImportDataKey
    - PK11_ExtractKeyValue
    - PK11_Derive
    - PK11_GetKeyData
    - PK11_FreeSlot
    - PK11_FreeSymKey
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_HkdfExtract(PK11SymKey *ikm1, PK11SymKey *ikm2, SSLHashType
      baseHash,\n                  PK11SymKey **prkp)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SSL_BUFFER
      Src: /src/nss/lib/ssl/tls13hkdf.c:154,1
    - Dst: strlen
      Src: /src/nss/lib/ssl/tls13hkdf.c:160,1
    - Dst: strlen
      Src: /src/nss/lib/ssl/tls13hkdf.c:160,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13hkdf.c:164,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13hkdf.c:165,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13hkdf.c:169,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13hkdf.c:193,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13hkdf.c:197,1
    - Dst: sslBuffer_Append
      Src: /src/nss/lib/ssl/tls13hkdf.c:201,1
    - Dst: sslBuffer_Append
      Src: /src/nss/lib/ssl/tls13hkdf.c:205,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/tls13hkdf.c:209,1
    - Dst: SSL_BUFFER_BASE
      Src: /src/nss/lib/ssl/tls13hkdf.c:217,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/tls13hkdf.c:218,1
    - Dst: PK11_DeriveWithFlags
      Src: /src/nss/lib/ssl/tls13hkdf.c:221,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/tls13hkdf.c:235,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13hkdf.c:237,1
    - Dst: PRINT_KEY
      Src: /src/nss/lib/ssl/tls13hkdf.c:240,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/tls13hkdf.c:241,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/tls13hkdf.c:242,1
    - Dst: SSL_BUFFER_BASE
      Src: /src/nss/lib/ssl/tls13hkdf.c:242,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/tls13hkdf.c:243,1
    - Dst: PRINT_KEY
      Src: /src/nss/lib/ssl/tls13hkdf.c:244,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 49
    argCount: 11
    argNames:
    - deriveMech
    - prk
    - baseHash
    - handshakeHash
    - handshakeHashLen
    - label
    - labelLen
    - algorithm
    - keySize
    - variant
    - keyp
    argTypes:
    - CK_MECHANISM_TYPE
    - PK11SymKey*
    - SSLHashType
    - PRUint8*
    - unsigned int
    - char*
    - unsigned int
    - CK_MECHANISM_TYPE
    - unsigned int
    - SSLProtocolVariant
    - PK11SymKey**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 140
    functionDepth: 2
    functionLinenumber: 140
    functionLinenumberEnd: 248
    functionName: tls13_HkdfExpandLabelGeneral
    functionSourceFile: /src/nss/lib/ssl/tls13hkdf.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SSL_BUFFER_LEN
    - PRINT_KEY
    - SSL_BUFFER_BASE
    - PORT_Memcpy
    - SSL_TRC
    - PK11_DeriveWithFlags
    - sslBuffer_AppendVariable
    - PRINT_BUF
    - sslBuffer_AppendNumber
    - SSL_BUFFER
    - PORT_SetError
    - sslBuffer_Append
    - strlen
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_HkdfExpandLabelGeneral(CK_MECHANISM_TYPE deriveMech,
      PK11SymKey *prk,\n                             SSLHashType baseHash,\n                             const
      PRUint8 *handshakeHash, unsigned int handshakeHashLen,\n                             const
      char *label, unsigned int labelLen,\n                             CK_MECHANISM_TYPE
      algorithm, unsigned int keySize,\n                             SSLProtocolVariant
      variant, PK11SymKey **keyp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tls13_HkdfExpandLabelGeneral
      Src: /src/nss/lib/ssl/tls13hkdf.c:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 10
    argNames:
    - prk
    - baseHash
    - handshakeHash
    - handshakeHashLen
    - label
    - labelLen
    - algorithm
    - keySize
    - variant
    - keyp
    argTypes:
    - PK11SymKey*
    - SSLHashType
    - PRUint8*
    - unsigned int
    - char*
    - unsigned int
    - CK_MECHANISM_TYPE
    - unsigned int
    - SSLProtocolVariant
    - PK11SymKey**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 250
    functionDepth: 3
    functionLinenumber: 250
    functionLinenumberEnd: 261
    functionName: tls13_HkdfExpandLabel
    functionSourceFile: /src/nss/lib/ssl/tls13hkdf.c
    functionUses: 0
    functionsReached:
    - tls13_HkdfExpandLabelGeneral
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_HkdfExpandLabel(PK11SymKey *prk, SSLHashType baseHash,\n
      \                     const PRUint8 *handshakeHash, unsigned int handshakeHashLen,\n
      \                     const char *label, unsigned int labelLen,\n                      CK_MECHANISM_TYPE
      algorithm, unsigned int keySize,\n                      SSLProtocolVariant variant,
      PK11SymKey **keyp)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tls13_HkdfExpandLabelGeneral
      Src: /src/nss/lib/ssl/tls13hkdf.c:275,1
    - Dst: PK11_ExtractKeyValue
      Src: /src/nss/lib/ssl/tls13hkdf.c:283,1
    - Dst: PK11_GetKeyData
      Src: /src/nss/lib/ssl/tls13hkdf.c:288,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13hkdf.c:293,1
    - Dst: memcpy
      Src: /src/nss/lib/ssl/tls13hkdf.c:294,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/tls13hkdf.c:295,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/tls13hkdf.c:301,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13hkdf.c:303,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 9
    argNames:
    - prk
    - baseHash
    - handshakeHash
    - handshakeHashLen
    - label
    - labelLen
    - variant
    - output
    - outputLen
    argTypes:
    - PK11SymKey*
    - SSLHashType
    - PRUint8*
    - unsigned int
    - char*
    - unsigned int
    - SSLProtocolVariant
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 263
    functionDepth: 4
    functionLinenumber: 263
    functionLinenumberEnd: 305
    functionName: tls13_HkdfExpandLabelRaw
    functionSourceFile: /src/nss/lib/ssl/tls13hkdf.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - memcpy
    - PK11_ExtractKeyValue
    - PORT_SetError
    - PK11_GetKeyData
    - tls13_HkdfExpandLabelGeneral
    - PK11_FreeSymKey
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_HkdfExpandLabelRaw(PK11SymKey *prk, SSLHashType baseHash,\n
      \                        const PRUint8 *handshakeHash, unsigned int handshakeHashLen,\n
      \                        const char *label, unsigned int labelLen,\n                         SSLProtocolVariant
      variant, unsigned char *output,\n                         unsigned int outputLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/prelib.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fd
    - inHeader
    - headerSize
    argTypes:
    - PRFileDesc*
    - PEHeader*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 26
    functionName: SSL_PreencryptedStreamToFile
    functionSourceFile: /src/nss/lib/ssl/prelib.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: PEHeader
    signature: "PEHeader *\nSSL_PreencryptedStreamToFile(PRFileDesc *fd, PEHeader
      *inHeader,\n                             int *headerSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/prelib.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fd
    - header
    - headerSize
    argTypes:
    - PRFileDesc*
    - PEHeader*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 34
    functionName: SSL_PreencryptedFileToStream
    functionSourceFile: /src/nss/lib/ssl/prelib.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: PEHeader
    signature: "PEHeader *\nSSL_PreencryptedFileToStream(PRFileDesc *fd, PEHeader
      *header,\n                             int *headerSize)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZNewArray
      Src: /src/nss/lib/ssl/authcert.c:35,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/ssl/authcert.c:39,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/authcert.c:41,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/ssl/authcert.c:46,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/ssl/authcert.c:46,1
    - Dst: CERT_NameToAscii
      Src: /src/nss/lib/ssl/authcert.c:51,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/ssl/authcert.c:55,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 26
    functionDepth: 6
    functionLinenumber: 26
    functionLinenumberEnd: 57
    functionName: ssl_DistNamesToStrings
    functionSourceFile: /src/nss/lib/ssl/authcert.c
    functionUses: 0
    functionsReached:
    - CERT_NameToAscii
    - PORT_NewArena
    - PORT_ZNewArray
    - PORT_FreeArena
    - PORT_Free
    - SEC_QuickDERDecodeItem
    - SEC_ASN1_GET
    linkageType: ''
    returnType: char
    signature: 'char **

      ssl_DistNamesToStrings(struct CERTDistNamesStr *caNames, int *n)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/authcert.c:66,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/authcert.c:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - strings
    - n
    argTypes:
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 69
    functionName: ssl_FreeDistNamesStrings
    functionSourceFile: /src/nss/lib/ssl/authcert.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    linkageType: ''
    returnType: void
    signature: void ssl_FreeDistNamesStrings(char **strings, int n)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ssl_PickClientSignatureScheme
      Src: /src/nss/lib/ssl/authcert.c:99,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - ss
    - cert
    argTypes:
    - sslSocket*
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 107
    functionName: ssl_CertIsUsable
    functionSourceFile: /src/nss/lib/ssl/authcert.c
    functionUses: 0
    functionsReached:
    - ssl_PickClientSignatureScheme
    linkageType: ''
    returnType: PRBool
    signature: PRBool ssl_CertIsUsable(sslSocket *ss, CERTCertificate *cert)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CERT_LIST_HEAD
      Src: /src/nss/lib/ssl/authcert.c:119,1
    - Dst: CERT_LIST_END
      Src: /src/nss/lib/ssl/authcert.c:121,1
    - Dst: ssl_CertIsUsable
      Src: /src/nss/lib/ssl/authcert.c:123,1
    - Dst: CERT_LIST_NEXT
      Src: /src/nss/lib/ssl/authcert.c:126,1
    - Dst: CERT_RemoveCertListNode
      Src: /src/nss/lib/ssl/authcert.c:127,1
    - Dst: CERT_LIST_NEXT
      Src: /src/nss/lib/ssl/authcert.c:130,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - ss
    - certList
    argTypes:
    - sslSocket*
    - CERTCertList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 109
    functionDepth: 9
    functionLinenumber: 109
    functionLinenumberEnd: 135
    functionName: ssl_FilterClientCertListBySSLSocket
    functionSourceFile: /src/nss/lib/ssl/authcert.c
    functionUses: 0
    functionsReached:
    - CERT_LIST_NEXT
    - CERT_LIST_HEAD
    - ssl_CertIsUsable
    - CERT_LIST_END
    - CERT_RemoveCertListNode
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl_FilterClientCertListBySSLSocket(sslSocket *ss, CERTCertList
      *certList)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/authcert.c:144,1
    - Dst: ssl_FilterClientCertListBySSLSocket
      Src: /src/nss/lib/ssl/authcert.c:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - fd
    - certList
    argTypes:
    - PRFileDesc*
    - CERTCertList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 141
    functionDepth: 10
    functionLinenumber: 141
    functionLinenumberEnd: 149
    functionName: SSL_FilterClientCertListBySocket
    functionSourceFile: /src/nss/lib/ssl/authcert.c
    functionUses: 0
    functionsReached:
    - ssl_FilterClientCertListBySSLSocket
    - ssl_FindSocket
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSL_FilterClientCertListBySocket(PRFileDesc *fd, CERTCertList
      *certList)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/authcert.c:158,1
    - Dst: ssl_CertIsUsable
      Src: /src/nss/lib/ssl/authcert.c:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - fd
    - cert
    argTypes:
    - PRFileDesc*
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 163
    functionName: SSL_CertIsUsable
    functionSourceFile: /src/nss/lib/ssl/authcert.c
    functionUses: 0
    functionsReached:
    - ssl_CertIsUsable
    - ssl_FindSocket
    linkageType: ''
    returnType: PRBool
    signature: PRBool SSL_CertIsUsable(PRFileDesc *fd, CERTCertificate *cert)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/authcert.c:182,1
    - Dst: SSL_RevealPinArg
      Src: /src/nss/lib/ssl/authcert.c:186,1
    - Dst: PK11_FindCertsFromNickname
      Src: /src/nss/lib/ssl/authcert.c:190,1
    - Dst: CERT_FilterCertListForUserCerts
      Src: /src/nss/lib/ssl/authcert.c:192,1
    - Dst: CERT_FilterCertListByUsage
      Src: /src/nss/lib/ssl/authcert.c:193,1
    - Dst: CERT_LIST_EMPTY
      Src: /src/nss/lib/ssl/authcert.c:195,1
    - Dst: CERT_DestroyCertList
      Src: /src/nss/lib/ssl/authcert.c:196,1
    - Dst: CERT_FindUserCertsByUsage
      Src: /src/nss/lib/ssl/authcert.c:205,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/lib/ssl/authcert.c:205,1
    - Dst: CERT_FilterCertListByNickname
      Src: /src/nss/lib/ssl/authcert.c:214,1
    - Dst: ssl_DistNamesToStrings
      Src: /src/nss/lib/ssl/authcert.c:218,1
    - Dst: CERT_FilterCertListByCANames
      Src: /src/nss/lib/ssl/authcert.c:219,1
    - Dst: ssl_FreeDistNamesStrings
      Src: /src/nss/lib/ssl/authcert.c:221,1
    - Dst: CERT_LIST_EMPTY
      Src: /src/nss/lib/ssl/authcert.c:223,1
    - Dst: CERT_DestroyCertList
      Src: /src/nss/lib/ssl/authcert.c:224,1
    - Dst: ssl_FilterClientCertListBySSLSocket
      Src: /src/nss/lib/ssl/authcert.c:230,1
    - Dst: CERT_LIST_EMPTY
      Src: /src/nss/lib/ssl/authcert.c:231,1
    - Dst: CERT_DestroyCertList
      Src: /src/nss/lib/ssl/authcert.c:233,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/ssl/authcert.c:240,1
    - Dst: CERT_LIST_HEAD
      Src: /src/nss/lib/ssl/authcert.c:240,1
    - Dst: CERT_DestroyCertList
      Src: /src/nss/lib/ssl/authcert.c:241,1
    - Dst: PK11_FindKeyByAnyCert
      Src: /src/nss/lib/ssl/authcert.c:242,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/ssl/authcert.c:244,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 5
    argNames:
    - arg
    - fd
    - caNames
    - pRetCert
    - pRetKey
    argTypes:
    - void*
    - PRFileDesc*
    - struct CERTDistNamesStr*
    - struct CERTCertificateStr**
    - struct SECKEYPrivateKeyStr**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 169
    functionDepth: 11
    functionLinenumber: 169
    functionLinenumberEnd: 250
    functionName: NSS_GetClientAuthData
    functionSourceFile: /src/nss/lib/ssl/authcert.c
    functionUses: 2
    functionsReached:
    - CERT_LIST_HEAD
    - SSL_RevealPinArg
    - PK11_FindCertsFromNickname
    - PK11_FindKeyByAnyCert
    - CERT_FilterCertListByCANames
    - ssl_DistNamesToStrings
    - ssl_FilterClientCertListBySSLSocket
    - CERT_FilterCertListForUserCerts
    - CERT_FilterCertListByNickname
    - CERT_GetDefaultCertDB
    - CERT_LIST_EMPTY
    - CERT_DupCertificate
    - CERT_DestroyCertificate
    - CERT_FilterCertListByUsage
    - ssl_FindSocket
    - CERT_FindUserCertsByUsage
    - CERT_DestroyCertList
    - ssl_FreeDistNamesStrings
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus NSS_GetClientAuthData(void *arg,\n                      PRFileDesc
      *fd,\n                      struct CERTDistNamesStr *caNames,\n                      struct
      CERTCertificateStr **pRetCert,\n                      struct SECKEYPrivateKeyStr
      **pRetKey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_unix_map_default_error
      Src: /src/nss/lib/ssl/unix_err.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: nss_MD_unix_map_opendir_error
    functionSourceFile: /src/nss/lib/ssl/unix_err.c
    functionUses: 0
    functionsReached:
    - nss_MD_unix_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_unix_map_opendir_error(int err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_unix_map_default_error
      Src: /src/nss/lib/ssl/unix_err.c:48,1
    - Dst: PR_SetError
      Src: /src/nss/lib/ssl/unix_err.c:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 52
    functionName: nss_MD_unix_map_closedir_error
    functionSourceFile: /src/nss/lib/ssl/unix_err.c
    functionUses: 0
    functionsReached:
    - PR_SetError
    - nss_MD_unix_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_unix_map_closedir_error(int err)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_unix_map_default_error
      Src: /src/nss/lib/ssl/unix_err.c:75,1
    - Dst: PR_SetError
      Src: /src/nss/lib/ssl/unix_err.c:78,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 79
    functionName: nss_MD_unix_readdir_error
    functionSourceFile: /src/nss/lib/ssl/unix_err.c
    functionUses: 0
    functionsReached:
    - PR_SetError
    - nss_MD_unix_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_unix_readdir_error(int err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_unix_map_default_error
      Src: /src/nss/lib/ssl/unix_err.c:90,1
    - Dst: PR_SetError
      Src: /src/nss/lib/ssl/unix_err.c:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 94
    functionName: nss_MD_unix_map_unlink_error
    functionSourceFile: /src/nss/lib/ssl/unix_err.c
    functionUses: 0
    functionsReached:
    - PR_SetError
    - nss_MD_unix_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_unix_map_unlink_error(int err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_unix_map_default_error
      Src: /src/nss/lib/ssl/unix_err.c:105,1
    - Dst: PR_SetError
      Src: /src/nss/lib/ssl/unix_err.c:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 109
    functionName: nss_MD_unix_map_stat_error
    functionSourceFile: /src/nss/lib/ssl/unix_err.c
    functionUses: 0
    functionsReached:
    - PR_SetError
    - nss_MD_unix_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_unix_map_stat_error(int err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_unix_map_default_error
      Src: /src/nss/lib/ssl/unix_err.c:120,1
    - Dst: PR_SetError
      Src: /src/nss/lib/ssl/unix_err.c:123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 124
    functionName: nss_MD_unix_map_fstat_error
    functionSourceFile: /src/nss/lib/ssl/unix_err.c
    functionUses: 0
    functionsReached:
    - PR_SetError
    - nss_MD_unix_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_unix_map_fstat_error(int err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_unix_map_default_error
      Src: /src/nss/lib/ssl/unix_err.c:135,1
    - Dst: PR_SetError
      Src: /src/nss/lib/ssl/unix_err.c:138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 139
    functionName: nss_MD_unix_map_rename_error
    functionSourceFile: /src/nss/lib/ssl/unix_err.c
    functionUses: 0
    functionsReached:
    - PR_SetError
    - nss_MD_unix_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_unix_map_rename_error(int err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_unix_map_default_error
      Src: /src/nss/lib/ssl/unix_err.c:150,1
    - Dst: PR_SetError
      Src: /src/nss/lib/ssl/unix_err.c:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 154
    functionName: nss_MD_unix_map_access_error
    functionSourceFile: /src/nss/lib/ssl/unix_err.c
    functionUses: 0
    functionsReached:
    - PR_SetError
    - nss_MD_unix_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_unix_map_access_error(int err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_unix_map_default_error
      Src: /src/nss/lib/ssl/unix_err.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 160
    functionName: nss_MD_unix_map_mkdir_error
    functionSourceFile: /src/nss/lib/ssl/unix_err.c
    functionUses: 0
    functionsReached:
    - nss_MD_unix_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_unix_map_mkdir_error(int err)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_unix_map_default_error
      Src: /src/nss/lib/ssl/unix_err.c:178,1
    - Dst: PR_SetError
      Src: /src/nss/lib/ssl/unix_err.c:181,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 182
    functionName: nss_MD_unix_map_rmdir_error
    functionSourceFile: /src/nss/lib/ssl/unix_err.c
    functionUses: 0
    functionsReached:
    - PR_SetError
    - nss_MD_unix_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_unix_map_rmdir_error(int err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_unix_map_default_error
      Src: /src/nss/lib/ssl/unix_err.c:196,1
    - Dst: PR_SetError
      Src: /src/nss/lib/ssl/unix_err.c:199,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 200
    functionName: nss_MD_unix_map_read_error
    functionSourceFile: /src/nss/lib/ssl/unix_err.c
    functionUses: 0
    functionsReached:
    - PR_SetError
    - nss_MD_unix_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_unix_map_read_error(int err)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_unix_map_default_error
      Src: /src/nss/lib/ssl/unix_err.c:217,1
    - Dst: PR_SetError
      Src: /src/nss/lib/ssl/unix_err.c:220,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 221
    functionName: nss_MD_unix_map_write_error
    functionSourceFile: /src/nss/lib/ssl/unix_err.c
    functionUses: 0
    functionsReached:
    - PR_SetError
    - nss_MD_unix_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_unix_map_write_error(int err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_unix_map_default_error
      Src: /src/nss/lib/ssl/unix_err.c:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 227
    functionName: nss_MD_unix_map_lseek_error
    functionSourceFile: /src/nss/lib/ssl/unix_err.c
    functionUses: 0
    functionsReached:
    - nss_MD_unix_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_unix_map_lseek_error(int err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_unix_map_default_error
      Src: /src/nss/lib/ssl/unix_err.c:241,1
    - Dst: PR_SetError
      Src: /src/nss/lib/ssl/unix_err.c:244,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 245
    functionName: nss_MD_unix_map_fsync_error
    functionSourceFile: /src/nss/lib/ssl/unix_err.c
    functionUses: 0
    functionsReached:
    - PR_SetError
    - nss_MD_unix_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_unix_map_fsync_error(int err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_unix_map_default_error
      Src: /src/nss/lib/ssl/unix_err.c:256,1
    - Dst: PR_SetError
      Src: /src/nss/lib/ssl/unix_err.c:259,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 260
    functionName: nss_MD_unix_map_close_error
    functionSourceFile: /src/nss/lib/ssl/unix_err.c
    functionUses: 0
    functionsReached:
    - PR_SetError
    - nss_MD_unix_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_unix_map_close_error(int err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_unix_map_default_error
      Src: /src/nss/lib/ssl/unix_err.c:271,1
    - Dst: PR_SetError
      Src: /src/nss/lib/ssl/unix_err.c:274,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 275
    functionName: nss_MD_unix_map_socket_error
    functionSourceFile: /src/nss/lib/ssl/unix_err.c
    functionUses: 0
    functionsReached:
    - PR_SetError
    - nss_MD_unix_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_unix_map_socket_error(int err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_SetError
      Src: /src/nss/lib/ssl/unix_err.c:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 281
    functionName: nss_MD_unix_map_socketavailable_error
    functionSourceFile: /src/nss/lib/ssl/unix_err.c
    functionUses: 0
    functionsReached:
    - PR_SetError
    linkageType: ''
    returnType: void
    signature: void nss_MD_unix_map_socketavailable_error(int err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_unix_map_default_error
      Src: /src/nss/lib/ssl/unix_err.c:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 287
    functionName: nss_MD_unix_map_recv_error
    functionSourceFile: /src/nss/lib/ssl/unix_err.c
    functionUses: 0
    functionsReached:
    - nss_MD_unix_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_unix_map_recv_error(int err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_unix_map_default_error
      Src: /src/nss/lib/ssl/unix_err.c:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 293
    functionName: nss_MD_unix_map_recvfrom_error
    functionSourceFile: /src/nss/lib/ssl/unix_err.c
    functionUses: 0
    functionsReached:
    - nss_MD_unix_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_unix_map_recvfrom_error(int err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_unix_map_default_error
      Src: /src/nss/lib/ssl/unix_err.c:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 299
    functionName: nss_MD_unix_map_send_error
    functionSourceFile: /src/nss/lib/ssl/unix_err.c
    functionUses: 0
    functionsReached:
    - nss_MD_unix_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_unix_map_send_error(int err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_unix_map_default_error
      Src: /src/nss/lib/ssl/unix_err.c:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 305
    functionName: nss_MD_unix_map_sendto_error
    functionSourceFile: /src/nss/lib/ssl/unix_err.c
    functionUses: 0
    functionsReached:
    - nss_MD_unix_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_unix_map_sendto_error(int err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_unix_map_default_error
      Src: /src/nss/lib/ssl/unix_err.c:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 311
    functionName: nss_MD_unix_map_writev_error
    functionSourceFile: /src/nss/lib/ssl/unix_err.c
    functionUses: 0
    functionsReached:
    - nss_MD_unix_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_unix_map_writev_error(int err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_unix_map_default_error
      Src: /src/nss/lib/ssl/unix_err.c:322,1
    - Dst: PR_SetError
      Src: /src/nss/lib/ssl/unix_err.c:325,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 326
    functionName: nss_MD_unix_map_accept_error
    functionSourceFile: /src/nss/lib/ssl/unix_err.c
    functionUses: 0
    functionsReached:
    - PR_SetError
    - nss_MD_unix_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_unix_map_accept_error(int err)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_unix_map_default_error
      Src: /src/nss/lib/ssl/unix_err.c:346,1
    - Dst: PR_SetError
      Src: /src/nss/lib/ssl/unix_err.c:349,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 350
    functionName: nss_MD_unix_map_connect_error
    functionSourceFile: /src/nss/lib/ssl/unix_err.c
    functionUses: 0
    functionsReached:
    - PR_SetError
    - nss_MD_unix_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_unix_map_connect_error(int err)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_unix_map_default_error
      Src: /src/nss/lib/ssl/unix_err.c:382,1
    - Dst: PR_SetError
      Src: /src/nss/lib/ssl/unix_err.c:385,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 386
    functionName: nss_MD_unix_map_bind_error
    functionSourceFile: /src/nss/lib/ssl/unix_err.c
    functionUses: 0
    functionsReached:
    - PR_SetError
    - nss_MD_unix_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_unix_map_bind_error(int err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_unix_map_default_error
      Src: /src/nss/lib/ssl/unix_err.c:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 392
    functionName: nss_MD_unix_map_listen_error
    functionSourceFile: /src/nss/lib/ssl/unix_err.c
    functionUses: 0
    functionsReached:
    - nss_MD_unix_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_unix_map_listen_error(int err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_unix_map_default_error
      Src: /src/nss/lib/ssl/unix_err.c:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 398
    functionName: nss_MD_unix_map_shutdown_error
    functionSourceFile: /src/nss/lib/ssl/unix_err.c
    functionUses: 0
    functionsReached:
    - nss_MD_unix_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_unix_map_shutdown_error(int err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_unix_map_default_error
      Src: /src/nss/lib/ssl/unix_err.c:409,1
    - Dst: PR_SetError
      Src: /src/nss/lib/ssl/unix_err.c:412,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 413
    functionName: nss_MD_unix_map_socketpair_error
    functionSourceFile: /src/nss/lib/ssl/unix_err.c
    functionUses: 0
    functionsReached:
    - PR_SetError
    - nss_MD_unix_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_unix_map_socketpair_error(int err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_unix_map_default_error
      Src: /src/nss/lib/ssl/unix_err.c:424,1
    - Dst: PR_SetError
      Src: /src/nss/lib/ssl/unix_err.c:427,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 415
    functionDepth: 1
    functionLinenumber: 415
    functionLinenumberEnd: 428
    functionName: nss_MD_unix_map_getsockname_error
    functionSourceFile: /src/nss/lib/ssl/unix_err.c
    functionUses: 0
    functionsReached:
    - PR_SetError
    - nss_MD_unix_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_unix_map_getsockname_error(int err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_unix_map_default_error
      Src: /src/nss/lib/ssl/unix_err.c:440,1
    - Dst: PR_SetError
      Src: /src/nss/lib/ssl/unix_err.c:443,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 444
    functionName: nss_MD_unix_map_getpeername_error
    functionSourceFile: /src/nss/lib/ssl/unix_err.c
    functionUses: 0
    functionsReached:
    - PR_SetError
    - nss_MD_unix_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_unix_map_getpeername_error(int err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_unix_map_default_error
      Src: /src/nss/lib/ssl/unix_err.c:458,1
    - Dst: PR_SetError
      Src: /src/nss/lib/ssl/unix_err.c:461,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 462
    functionName: nss_MD_unix_map_getsockopt_error
    functionSourceFile: /src/nss/lib/ssl/unix_err.c
    functionUses: 0
    functionsReached:
    - PR_SetError
    - nss_MD_unix_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_unix_map_getsockopt_error(int err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_unix_map_default_error
      Src: /src/nss/lib/ssl/unix_err.c:476,1
    - Dst: PR_SetError
      Src: /src/nss/lib/ssl/unix_err.c:479,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 464
    functionDepth: 1
    functionLinenumber: 464
    functionLinenumberEnd: 480
    functionName: nss_MD_unix_map_setsockopt_error
    functionSourceFile: /src/nss/lib/ssl/unix_err.c
    functionUses: 0
    functionsReached:
    - PR_SetError
    - nss_MD_unix_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_unix_map_setsockopt_error(int err)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_unix_map_default_error
      Src: /src/nss/lib/ssl/unix_err.c:503,1
    - Dst: PR_SetError
      Src: /src/nss/lib/ssl/unix_err.c:506,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 482
    functionDepth: 1
    functionLinenumber: 482
    functionLinenumberEnd: 507
    functionName: nss_MD_unix_map_open_error
    functionSourceFile: /src/nss/lib/ssl/unix_err.c
    functionUses: 0
    functionsReached:
    - PR_SetError
    - nss_MD_unix_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_unix_map_open_error(int err)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_unix_map_default_error
      Src: /src/nss/lib/ssl/unix_err.c:527,1
    - Dst: PR_SetError
      Src: /src/nss/lib/ssl/unix_err.c:530,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 509
    functionDepth: 1
    functionLinenumber: 509
    functionLinenumberEnd: 531
    functionName: nss_MD_unix_map_mmap_error
    functionSourceFile: /src/nss/lib/ssl/unix_err.c
    functionUses: 0
    functionsReached:
    - PR_SetError
    - nss_MD_unix_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_unix_map_mmap_error(int err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_unix_map_default_error
      Src: /src/nss/lib/ssl/unix_err.c:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 533
    functionDepth: 1
    functionLinenumber: 533
    functionLinenumberEnd: 537
    functionName: nss_MD_unix_map_gethostname_error
    functionSourceFile: /src/nss/lib/ssl/unix_err.c
    functionUses: 0
    functionsReached:
    - nss_MD_unix_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_unix_map_gethostname_error(int err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_unix_map_default_error
      Src: /src/nss/lib/ssl/unix_err.c:542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 543
    functionName: nss_MD_unix_map_select_error
    functionSourceFile: /src/nss/lib/ssl/unix_err.c
    functionUses: 0
    functionsReached:
    - nss_MD_unix_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_unix_map_select_error(int err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_unix_map_default_error
      Src: /src/nss/lib/ssl/unix_err.c:556,1
    - Dst: PR_SetError
      Src: /src/nss/lib/ssl/unix_err.c:559,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 546
    functionDepth: 1
    functionLinenumber: 546
    functionLinenumberEnd: 560
    functionName: nss_MD_unix_map_poll_error
    functionSourceFile: /src/nss/lib/ssl/unix_err.c
    functionUses: 0
    functionsReached:
    - PR_SetError
    - nss_MD_unix_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_unix_map_poll_error(int err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PR_SetError
      Src: /src/nss/lib/ssl/unix_err.c:566,1
    - Dst: PR_SetError
      Src: /src/nss/lib/ssl/unix_err.c:568,1
    - Dst: PR_SetError
      Src: /src/nss/lib/ssl/unix_err.c:570,1
    - Dst: PR_SetError
      Src: /src/nss/lib/ssl/unix_err.c:572,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 562
    functionDepth: 1
    functionLinenumber: 562
    functionLinenumberEnd: 573
    functionName: nss_MD_unix_map_poll_revents_error
    functionSourceFile: /src/nss/lib/ssl/unix_err.c
    functionUses: 0
    functionsReached:
    - PR_SetError
    linkageType: ''
    returnType: void
    signature: void nss_MD_unix_map_poll_revents_error(int err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_unix_map_default_error
      Src: /src/nss/lib/ssl/unix_err.c:588,1
    - Dst: PR_SetError
      Src: /src/nss/lib/ssl/unix_err.c:591,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 576
    functionDepth: 1
    functionLinenumber: 576
    functionLinenumberEnd: 592
    functionName: nss_MD_unix_map_flock_error
    functionSourceFile: /src/nss/lib/ssl/unix_err.c
    functionUses: 0
    functionsReached:
    - PR_SetError
    - nss_MD_unix_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_unix_map_flock_error(int err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_unix_map_default_error
      Src: /src/nss/lib/ssl/unix_err.c:606,1
    - Dst: PR_SetError
      Src: /src/nss/lib/ssl/unix_err.c:609,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 594
    functionDepth: 1
    functionLinenumber: 594
    functionLinenumberEnd: 610
    functionName: nss_MD_unix_map_lockf_error
    functionSourceFile: /src/nss/lib/ssl/unix_err.c
    functionUses: 0
    functionsReached:
    - PR_SetError
    - nss_MD_unix_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_unix_map_lockf_error(int err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_unix_map_default_error
      Src: /src/nss/lib/ssl/unix_err.c:616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 617
    functionName: nss_MD_hpux_map_sendfile_error
    functionSourceFile: /src/nss/lib/ssl/unix_err.c
    functionUses: 0
    functionsReached:
    - nss_MD_unix_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_hpux_map_sendfile_error(int err)
  - BBCount: 59
    BranchProfiles: []
    Callsites:
    - Dst: PR_SetError
      Src: /src/nss/lib/ssl/unix_err.c:824,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 178
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 620
    functionDepth: 1
    functionLinenumber: 620
    functionLinenumberEnd: 825
    functionName: nss_MD_unix_map_default_error
    functionSourceFile: /src/nss/lib/ssl/unix_err.c
    functionUses: 39
    functionsReached:
    - PR_SetError
    linkageType: ''
    returnType: void
    signature: void nss_MD_unix_map_default_error(int err)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 3
    argNames:
    - c
    - radix
    - d
    argTypes:
    - PRUint8
    - PRUint8
    - PRUint8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 31
    functionName: tls13_IpDigit
    functionSourceFile: /src/nss/lib/ssl/tls13echv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_IpDigit(PRUint8 c, PRUint8 radix, PRUint8 *d)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 4
    argNames:
    - str
    - len
    - i
    - radix
    argTypes:
    - PRUint8*
    - unsigned int
    - unsigned int*
    - PRUint8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 62
    functionName: tls13_IpRadix
    functionSourceFile: /src/nss/lib/ssl/tls13echv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_IpRadix(const PRUint8 *str, unsigned int len, unsigned
      int *i, PRUint8 *radix)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tls13_IpRadix
      Src: /src/nss/lib/ssl/tls13echv.c:74,1
    - Dst: tls13_IpDigit
      Src: /src/nss/lib/ssl/tls13echv.c:81,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - str
    - len
    - i
    - v
    argTypes:
    - PRUint8*
    - unsigned int
    - unsigned int*
    - PRUint32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 96
    functionName: tls13_IpValue
    functionSourceFile: /src/nss/lib/ssl/tls13echv.c
    functionUses: 0
    functionsReached:
    - tls13_IpRadix
    - tls13_IpDigit
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_IpValue(const PRUint8 *str, unsigned int len, unsigned
      int *i, PRUint32 *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - end
    - v
    - limit
    argTypes:
    - PRBool
    - PRUint32
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 108
    functionName: tls13_IpLastPart
    functionSourceFile: /src/nss/lib/ssl/tls13echv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool tls13_IpLastPart(PRBool end, PRUint32 v, PRUint32 limit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tls13_IpValue
      Src: /src/nss/lib/ssl/tls13echv.c:118,1
    - Dst: tls13_IpLastPart
      Src: /src/nss/lib/ssl/tls13echv.c:123,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13echv.c:125,1
    - Dst: tls13_IpLastPart
      Src: /src/nss/lib/ssl/tls13echv.c:129,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - PRUint8*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 130
    functionName: tls13_IsIp
    functionSourceFile: /src/nss/lib/ssl/tls13echv.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - tls13_IpValue
    - tls13_IpLastPart
    linkageType: ''
    returnType: PRBool
    signature: PRBool tls13_IsIp(const PRUint8 *str, unsigned int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - PRUint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 139
    functionName: tls13_IsLD
    functionSourceFile: /src/nss/lib/ssl/tls13echv.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool tls13_IsLD(PRUint8 c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tls13_IsLD
      Src: /src/nss/lib/ssl/tls13echv.c:148,1
    - Dst: PR_MIN
      Src: /src/nss/lib/ssl/tls13echv.c:149,1
    - Dst: tls13_IsLD
      Src: /src/nss/lib/ssl/tls13echv.c:151,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - PRUint8*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 167
    functionName: tls13_IsLDH
    functionSourceFile: /src/nss/lib/ssl/tls13echv.c
    functionUses: 0
    functionsReached:
    - tls13_IsLD
    - PR_MIN
    linkageType: ''
    returnType: PRBool
    signature: PRBool tls13_IsLDH(const PRUint8 *str, unsigned int len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslcon.c:68,1
    - Dst: ssl_Have1stHandshakeLock
      Src: /src/nss/lib/ssl/sslcon.c:68,1
    - Dst: ssl_GetRecvBufLock
      Src: /src/nss/lib/ssl/sslcon.c:70,1
    - Dst: ssl3_GatherCompleteHandshake
      Src: /src/nss/lib/ssl/sslcon.c:73,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/sslcon.c:74,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslcon.c:75,1
    - Dst: ssl_ReleaseRecvBufLock
      Src: /src/nss/lib/ssl/sslcon.c:77,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslcon.c:82,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/sslcon.c:84,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/sslcon.c:85,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslcon.c:86,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 63
    functionDepth: 3
    functionLinenumber: 63
    functionLinenumberEnd: 93
    functionName: ssl_GatherRecord1stHandshake
    functionSourceFile: /src/nss/lib/ssl/sslcon.c
    functionUses: 0
    functionsReached:
    - ssl3_GatherCompleteHandshake
    - PORT_Assert
    - ssl_Have1stHandshakeLock
    - SSL_TRC
    - ssl_ReleaseRecvBufLock
    - SSL_GETPID
    - PORT_GetError
    - ssl_GetRecvBufLock
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl_GatherRecord1stHandshake(sslSocket *ss)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_ALL_VERSIONS_DISABLED
      Src: /src/nss/lib/ssl/sslcon.c:100,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslcon.c:101,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslcon.c:102,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslcon.c:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 107
    functionName: ssl_CheckConfigSanity
    functionSourceFile: /src/nss/lib/ssl/sslcon.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - SSL_ALL_VERSIONS_DISABLED
    - SSL_GETPID
    - SSL_DBG
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl_CheckConfigSanity(sslSocket *ss)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslcon.c:118,1
    - Dst: ssl_Have1stHandshakeLock
      Src: /src/nss/lib/ssl/sslcon.c:118,1
    - Dst: ssl_CheckConfigSanity
      Src: /src/nss/lib/ssl/sslcon.c:122,1
    - Dst: ssl_GetPeerInfo
      Src: /src/nss/lib/ssl/sslcon.c:127,1
    - Dst: PR_GetError
      Src: /src/nss/lib/ssl/sslcon.c:136,1
    - Dst: PR_Write
      Src: /src/nss/lib/ssl/sslcon.c:138,1
    - Dst: ssl_GetPeerInfo
      Src: /src/nss/lib/ssl/sslcon.c:139,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/sslcon.c:149,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslcon.c:149,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/sslcon.c:154,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslcon.c:154,1
    - Dst: ssl_LookupSID
      Src: /src/nss/lib/ssl/sslcon.c:157,1
    - Dst: ssl_Time
      Src: /src/nss/lib/ssl/sslcon.c:157,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslcon.c:163,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/ssl/sslcon.c:164,1
    - Dst: ssl_UncacheSessionID
      Src: /src/nss/lib/ssl/sslcon.c:166,1
    - Dst: ssl_FreeSID
      Src: /src/nss/lib/ssl/sslcon.c:167,1
    - Dst: ssl3_NewSessionID
      Src: /src/nss/lib/ssl/sslcon.c:172,1
    - Dst: ssl_GetSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslcon.c:187,1
    - Dst: ssl_GetXmitBufLock
      Src: /src/nss/lib/ssl/sslcon.c:188,1
    - Dst: ssl3_SendClientHello
      Src: /src/nss/lib/ssl/sslcon.c:189,1
    - Dst: ssl_ReleaseXmitBufLock
      Src: /src/nss/lib/ssl/sslcon.c:190,1
    - Dst: ssl_ReleaseSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslcon.c:191,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 59
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 197
    functionName: ssl_BeginClientHandshake
    functionSourceFile: /src/nss/lib/ssl/sslcon.c
    functionUses: 0
    functionsReached:
    - ssl3_SendClientHello
    - ssl_ReleaseSSL3HandshakeLock
    - CERT_DupCertificate
    - ssl3_NewSessionID
    - ssl_GetSSL3HandshakeLock
    - ssl_FreeSID
    - ssl_ReleaseXmitBufLock
    - ssl_GetPeerInfo
    - PORT_Assert
    - ssl_GetXmitBufLock
    - ssl_CheckConfigSanity
    - ssl_Time
    - ssl_Have1stHandshakeLock
    - ssl_LookupSID
    - ssl_UncacheSessionID
    - SSL_TRC
    - SSL_GETPID
    - PR_Write
    - PR_GetError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl_BeginClientHandshake(sslSocket *ss)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_CheckConfigSanity
      Src: /src/nss/lib/ssl/sslcon.c:207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 199
    functionDepth: 2
    functionLinenumber: 199
    functionLinenumberEnd: 216
    functionName: ssl_BeginServerHandshake
    functionSourceFile: /src/nss/lib/ssl/sslcon.c
    functionUses: 0
    functionsReached:
    - ssl_CheckConfigSanity
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl_BeginServerHandshake(sslSocket *ss)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSS_VersionCheck
      Src: /src/nss/lib/ssl/sslcon.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - importedVersion
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 242
    functionName: NSSSSL_VersionCheck
    functionSourceFile: /src/nss/lib/ssl/sslcon.c
    functionUses: 0
    functionsReached:
    - NSS_VersionCheck
    linkageType: ''
    returnType: PRBool
    signature: PRBool NSSSSL_VersionCheck(const char *importedVersion)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 248
    functionName: NSSSSL_GetVersion
    functionSourceFile: /src/nss/lib/ssl/sslcon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      NSSSSL_GetVersion(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PZ_NewLock
      Src: /src/nss/lib/ssl/sslnonce.c:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 43
    functionName: ssl_InitClientSessionCacheLock
    functionSourceFile: /src/nss/lib/ssl/sslnonce.c
    functionUses: 0
    functionsReached:
    - PZ_NewLock
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl_InitClientSessionCacheLock(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/ssl/sslnonce.c:49,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslnonce.c:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 55
    functionName: ssl_FreeClientSessionCacheLock
    functionSourceFile: /src/nss/lib/ssl/sslnonce.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PZ_DestroyLock
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl_FreeClientSessionCacheLock(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FreeSymWrapKeysLock
      Src: /src/nss/lib/ssl/sslnonce.c:63,1
    - Dst: ssl_FreeClientSessionCacheLock
      Src: /src/nss/lib/ssl/sslnonce.c:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 69
    functionName: FreeSessionCacheLocks
    functionSourceFile: /src/nss/lib/ssl/sslnonce.c
    functionUses: 0
    functionsReached:
    - ssl_FreeClientSessionCacheLock
    - ssl_FreeSymWrapKeysLock
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus FreeSessionCacheLocks()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_InitSymWrapKeysLock
      Src: /src/nss/lib/ssl/sslnonce.c:76,1
    - Dst: ssl_InitClientSessionCacheLock
      Src: /src/nss/lib/ssl/sslnonce.c:77,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/sslnonce.c:81,1
    - Dst: FreeSessionCacheLocks
      Src: /src/nss/lib/ssl/sslnonce.c:82,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslnonce.c:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 71
    functionDepth: 3
    functionLinenumber: 71
    functionLinenumberEnd: 85
    functionName: InitSessionCacheLocks
    functionSourceFile: /src/nss/lib/ssl/sslnonce.c
    functionUses: 0
    functionsReached:
    - ssl_InitSymWrapKeysLock
    - ssl_InitClientSessionCacheLock
    - PORT_GetError
    - FreeSessionCacheLocks
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus InitSessionCacheLocks(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslnonce.c:91,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslnonce.c:93,1
    - Dst: FreeSessionCacheLocks
      Src: /src/nss/lib/ssl/sslnonce.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 88
    functionDepth: 3
    functionLinenumber: 88
    functionLinenumberEnd: 99
    functionName: ssl_FreeSessionCacheLocks
    functionSourceFile: /src/nss/lib/ssl/sslnonce.c
    functionUses: 0
    functionsReached:
    - FreeSessionCacheLocks
    - PORT_Assert
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl_FreeSessionCacheLocks()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslnonce.c:107,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslnonce.c:109,1
    - Dst: FreeSessionCacheLocks
      Src: /src/nss/lib/ssl/sslnonce.c:112,1
    - Dst: memset
      Src: /src/nss/lib/ssl/sslnonce.c:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - appData
    - nssData
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 104
    functionDepth: 3
    functionLinenumber: 104
    functionLinenumberEnd: 115
    functionName: ssl_ShutdownLocks
    functionSourceFile: /src/nss/lib/ssl/sslnonce.c
    functionUses: 0
    functionsReached:
    - FreeSessionCacheLocks
    - PORT_Assert
    - PORT_SetError
    - memset
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl_ShutdownLocks(void *appData, void *nssData)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: InitSessionCacheLocks
      Src: /src/nss/lib/ssl/sslnonce.c:120,1
    - Dst: NSS_RegisterShutdown
      Src: /src/nss/lib/ssl/sslnonce.c:124,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslnonce.c:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 117
    functionDepth: 4
    functionLinenumber: 117
    functionLinenumberEnd: 130
    functionName: initSessionCacheLocksLazily
    functionSourceFile: /src/nss/lib/ssl/sslnonce.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - InitSessionCacheLocks
    - NSS_RegisterShutdown
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus initSessionCacheLocksLazily(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PR_CallOnce
      Src: /src/nss/lib/ssl/sslnonce.c:144,1
    - Dst: InitSessionCacheLocks
      Src: /src/nss/lib/ssl/sslnonce.c:149,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - lazyInit
    argTypes:
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 135
    functionDepth: 4
    functionLinenumber: 135
    functionLinenumberEnd: 155
    functionName: ssl_InitSessionCacheLocks
    functionSourceFile: /src/nss/lib/ssl/sslnonce.c
    functionUses: 0
    functionsReached:
    - PR_CallOnce
    - InitSessionCacheLocks
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl_InitSessionCacheLocks(PRBool lazyInit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_InitSessionCacheLocks
      Src: /src/nss/lib/ssl/sslnonce.c:160,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/ssl/sslnonce.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 157
    functionDepth: 5
    functionLinenumber: 157
    functionLinenumberEnd: 162
    functionName: lock_cache
    functionSourceFile: /src/nss/lib/ssl/sslnonce.c
    functionUses: 0
    functionsReached:
    - ssl_InitSessionCacheLocks
    - PZ_Lock
    linkageType: ''
    returnType: void
    signature: void lock_cache(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/sslnonce.c:170,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslnonce.c:171,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslnonce.c:172,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/sslnonce.c:175,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/sslnonce.c:179,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/sslnonce.c:182,1
    - Dst: PR_DestroyRWLock
      Src: /src/nss/lib/ssl/sslnonce.c:186,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/sslnonce.c:189,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/sslnonce.c:190,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/ssl/sslnonce.c:193,1
    - Dst: SECITEM_FreeArray
      Src: /src/nss/lib/ssl/sslnonce.c:196,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/ssl/sslnonce.c:200,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/sslnonce.c:203,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/ssl/sslnonce.c:206,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 2
    argNames:
    - sid
    - freeIt
    argTypes:
    - sslSessionID*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 167
    functionDepth: 8
    functionLinenumber: 167
    functionLinenumberEnd: 208
    functionName: ssl_DestroySID
    functionSourceFile: /src/nss/lib/ssl/sslnonce.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - PORT_ZFree
    - PORT_Free
    - SSL_TRC
    - SECITEM_FreeArray
    - PR_DestroyRWLock
    - CERT_DestroyCertificate
    - SECITEM_FreeItem
    linkageType: ''
    returnType: void
    signature: void ssl_DestroySID(sslSessionID *sid, PRBool freeIt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslnonce.c:220,1
    - Dst: ssl_DestroySID
      Src: /src/nss/lib/ssl/sslnonce.c:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - sid
    argTypes:
    - sslSessionID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 217
    functionDepth: 9
    functionLinenumber: 217
    functionLinenumberEnd: 224
    functionName: ssl_FreeLockedSID
    functionSourceFile: /src/nss/lib/ssl/sslnonce.c
    functionUses: 0
    functionsReached:
    - ssl_DestroySID
    - PORT_Assert
    linkageType: ''
    returnType: void
    signature: void ssl_FreeLockedSID(sslSessionID *sid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FreeLockedSID
      Src: /src/nss/lib/ssl/sslnonce.c:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - sid
    argTypes:
    - sslSessionID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 232
    functionDepth: 10
    functionLinenumber: 232
    functionLinenumberEnd: 240
    functionName: ssl_FreeSID
    functionSourceFile: /src/nss/lib/ssl/sslnonce.c
    functionUses: 3
    functionsReached:
    - ssl_FreeLockedSID
    linkageType: ''
    returnType: void
    signature: void ssl_FreeSID(sslSessionID *sid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - sid
    argTypes:
    - sslSessionID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 249
    functionName: ssl_ReferenceSID
    functionSourceFile: /src/nss/lib/ssl/sslnonce.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sslSessionID
    signature: 'sslSessionID *

      ssl_ReferenceSID(sslSessionID *sid)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslnonce.c:271,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslnonce.c:272,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/sslnonce.c:274,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/sslnonce.c:281,1
    - Dst: ssl_FreeLockedSID
      Src: /src/nss/lib/ssl/sslnonce.c:286,1
    - Dst: memcmp
      Src: /src/nss/lib/ssl/sslnonce.c:287,1
    - Dst: PORT_Strcmp
      Src: /src/nss/lib/ssl/sslnonce.c:292,1
    - Dst: PORT_Strcmp
      Src: /src/nss/lib/ssl/sslnonce.c:297,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 25
    argCount: 5
    argNames:
    - now
    - addr
    - port
    - peerID
    - urlSvrName
    argTypes:
    - PRTime
    - PRIPv6Addr*
    - PRUint16
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 259
    functionDepth: 10
    functionLinenumber: 259
    functionLinenumberEnd: 308
    functionName: ssl_LookupSID
    functionSourceFile: /src/nss/lib/ssl/sslnonce.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - ssl_FreeLockedSID
    - SSL_TRC
    - memcmp
    - PORT_Strcmp
    linkageType: ''
    returnType: sslSessionID
    signature: "sslSessionID *\nssl_LookupSID(PRTime now, const PRIPv6Addr *addr,
      PRUint16 port, const char *peerID,\n              const char *urlSvrName)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslnonce.c:317,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslnonce.c:318,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/sslnonce.c:320,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/lib/ssl/sslnonce.c:339,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/sslnonce.c:345,1
    - Dst: PR_NewRWLock
      Src: /src/nss/lib/ssl/sslnonce.c:348,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslnonce.c:352,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslnonce.c:356,1
    - Dst: PR_MIN
      Src: /src/nss/lib/ssl/sslnonce.c:358,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 2
    argNames:
    - sid
    - creationTime
    argTypes:
    - sslSessionID*
    - PRTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 314
    functionDepth: 9
    functionLinenumber: 314
    functionLinenumberEnd: 374
    functionName: CacheSID
    functionSourceFile: /src/nss/lib/ssl/sslnonce.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PR_NewRWLock
    - PR_MIN
    - SSL_TRC
    - PRINT_BUF
    - PK11_GenerateRandom
    linkageType: ''
    returnType: void
    signature: void CacheSID(sslSessionID *sid, PRTime creationTime)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/sslnonce.c:391,1
    - Dst: ssl_FreeLockedSID
      Src: /src/nss/lib/ssl/sslnonce.c:407,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - zap
    argTypes:
    - sslSessionID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 381
    functionDepth: 10
    functionLinenumber: 381
    functionLinenumberEnd: 412
    functionName: UncacheSID
    functionSourceFile: /src/nss/lib/ssl/sslnonce.c
    functionUses: 0
    functionsReached:
    - ssl_FreeLockedSID
    - SSL_TRC
    linkageType: ''
    returnType: void
    signature: void UncacheSID(sslSessionID *zap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UncacheSID
      Src: /src/nss/lib/ssl/sslnonce.c:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - zap
    argTypes:
    - sslSessionID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 419
    functionDepth: 11
    functionLinenumber: 419
    functionLinenumberEnd: 425
    functionName: LockAndUncacheSID
    functionSourceFile: /src/nss/lib/ssl/sslnonce.c
    functionUses: 0
    functionsReached:
    - UncacheSID
    linkageType: ''
    returnType: void
    signature: void LockAndUncacheSID(sslSessionID *zap)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sslRead_ReadVariable
      Src: /src/nss/lib/ssl/sslnonce.c:431,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslnonce.c:432,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/ssl/sslnonce.c:438,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - reader
    - readerBuffer
    - lenBytes
    - dest
    argTypes:
    - sslReader*
    - sslReadBuffer*
    - uint8_t
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 444
    functionName: ReadVariableFromBuffer
    functionSourceFile: /src/nss/lib/ssl/sslnonce.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - sslRead_ReadVariable
    - SECITEM_CopyItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ReadVariableFromBuffer(sslReader *reader, sslReadBuffer
      *readerBuffer,\n                       uint8_t lenBytes, SECItem *dest)"
  - BBCount: 56
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslnonce.c:454,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslnonce.c:455,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslnonce.c:456,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslnonce.c:458,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslnonce.c:464,1
    - Dst: SSL_READER
      Src: /src/nss/lib/ssl/sslnonce.c:469,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/sslnonce.c:474,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/sslnonce.c:478,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/sslnonce.c:482,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/sslnonce.c:487,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/sslnonce.c:491,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/sslnonce.c:495,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/sslnonce.c:499,1
    - Dst: sslRead_ReadVariable
      Src: /src/nss/lib/ssl/sslnonce.c:504,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslnonce.c:505,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslnonce.c:509,1
    - Dst: CERT_NewTempCertificate
      Src: /src/nss/lib/ssl/sslnonce.c:512,1
    - Dst: sslRead_ReadVariable
      Src: /src/nss/lib/ssl/sslnonce.c:520,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslnonce.c:521,1
    - Dst: SECITEM_AllocArray
      Src: /src/nss/lib/ssl/sslnonce.c:525,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/ssl/sslnonce.c:531,1
    - Dst: sslRead_ReadVariable
      Src: /src/nss/lib/ssl/sslnonce.c:534,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslnonce.c:535,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslnonce.c:539,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/sslnonce.c:541,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/ssl/sslnonce.c:543,1
    - Dst: sslRead_ReadVariable
      Src: /src/nss/lib/ssl/sslnonce.c:546,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslnonce.c:547,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/sslnonce.c:552,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslnonce.c:554,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/ssl/sslnonce.c:555,1
    - Dst: sslRead_ReadVariable
      Src: /src/nss/lib/ssl/sslnonce.c:558,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslnonce.c:559,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslnonce.c:563,1
    - Dst: CERT_NewTempCertificate
      Src: /src/nss/lib/ssl/sslnonce.c:566,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/sslnonce.c:571,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/sslnonce.c:574,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/sslnonce.c:578,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/sslnonce.c:582,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/sslnonce.c:587,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/sslnonce.c:592,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/sslnonce.c:596,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/sslnonce.c:600,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/sslnonce.c:604,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/sslnonce.c:608,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/sslnonce.c:613,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/sslnonce.c:618,1
    - Dst: sslRead_ReadVariable
      Src: /src/nss/lib/ssl/sslnonce.c:623,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslnonce.c:624,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslnonce.c:628,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/sslnonce.c:629,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/sslnonce.c:632,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/sslnonce.c:636,1
    - Dst: sslRead_ReadVariable
      Src: /src/nss/lib/ssl/sslnonce.c:641,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslnonce.c:642,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslnonce.c:645,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslnonce.c:647,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslnonce.c:650,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/sslnonce.c:651,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/sslnonce.c:654,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/sslnonce.c:658,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/sslnonce.c:663,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/sslnonce.c:667,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/sslnonce.c:671,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/sslnonce.c:676,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/sslnonce.c:680,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/sslnonce.c:685,1
    - Dst: ReadVariableFromBuffer
      Src: /src/nss/lib/ssl/sslnonce.c:690,1
    - Dst: ReadVariableFromBuffer
      Src: /src/nss/lib/ssl/sslnonce.c:694,1
    - Dst: ReadVariableFromBuffer
      Src: /src/nss/lib/ssl/sslnonce.c:698,1
    - Dst: ReadVariableFromBuffer
      Src: /src/nss/lib/ssl/sslnonce.c:702,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslnonce.c:707,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslnonce.c:712,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslnonce.c:714,1
    CyclomaticComplexity: 57
    EdgeCount: 57
    ICount: 220
    argCount: 3
    argNames:
    - sid
    - encodedToken
    - encodedTokenLen
    argTypes:
    - sslSessionID*
    - PRUint8*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 450
    functionDepth: 8
    functionLinenumber: 450
    functionLinenumberEnd: 719
    functionName: ssl_DecodeResumptionToken
    functionSourceFile: /src/nss/lib/ssl/sslnonce.c
    functionUses: 2
    functionsReached:
    - PORT_Assert
    - PORT_Memcpy
    - sslRead_ReadVariable
    - PORT_Free
    - SECITEM_CopyItem
    - PORT_Strdup
    - PORT_SetError
    - ReadVariableFromBuffer
    - sslRead_ReadNumber
    - SSL_READER
    - SECITEM_AllocArray
    - CERT_NewTempCertificate
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_DecodeResumptionToken(sslSessionID *sid, const PRUint8
      *encodedToken,\n                          PRUint32 encodedTokenLen)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslnonce.c:724,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslnonce.c:725,1
    - Dst: ssl_Time
      Src: /src/nss/lib/ssl/sslnonce.c:733,1
    - Dst: ssl_Time
      Src: /src/nss/lib/ssl/sslnonce.c:739,1
    - Dst: PORT_Strcmp
      Src: /src/nss/lib/ssl/sslnonce.c:745,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - ss
    - sid
    argTypes:
    - sslSocket*
    - sslSessionID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 721
    functionDepth: 1
    functionLinenumber: 721
    functionLinenumberEnd: 755
    functionName: ssl_IsResumptionTokenUsable
    functionSourceFile: /src/nss/lib/ssl/sslnonce.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - PORT_Strcmp
    - ssl_Time
    linkageType: ''
    returnType: PRBool
    signature: PRBool ssl_IsResumptionTokenUsable(sslSocket *ss, sslSessionID *sid)
  - BBCount: 51
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslnonce.c:763,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslnonce.c:764,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslnonce.c:767,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/sslnonce.c:777,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/sslnonce.c:783,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslnonce.c:785,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/sslnonce.c:788,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslnonce.c:790,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/sslnonce.c:795,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslnonce.c:799,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/sslnonce.c:802,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslnonce.c:806,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/sslnonce.c:809,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslnonce.c:813,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/sslnonce.c:816,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslnonce.c:820,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/sslnonce.c:823,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslnonce.c:827,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/sslnonce.c:831,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslnonce.c:841,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslnonce.c:842,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/sslnonce.c:847,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/sslnonce.c:854,1
    - Dst: strlen
      Src: /src/nss/lib/ssl/sslnonce.c:860,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslnonce.c:863,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/sslnonce.c:866,1
    - Dst: strlen
      Src: /src/nss/lib/ssl/sslnonce.c:872,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslnonce.c:874,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslnonce.c:879,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/sslnonce.c:882,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/sslnonce.c:890,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/sslnonce.c:897,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/sslnonce.c:903,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslnonce.c:905,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/sslnonce.c:908,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslnonce.c:910,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/sslnonce.c:913,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslnonce.c:915,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/sslnonce.c:918,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslnonce.c:920,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/sslnonce.c:923,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslnonce.c:925,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/sslnonce.c:928,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslnonce.c:930,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/sslnonce.c:933,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslnonce.c:935,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/sslnonce.c:938,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslnonce.c:940,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/sslnonce.c:943,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslnonce.c:945,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/sslnonce.c:948,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslnonce.c:950,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/sslnonce.c:953,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslnonce.c:955,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/sslnonce.c:959,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslnonce.c:961,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/sslnonce.c:964,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/sslnonce.c:970,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslnonce.c:972,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/sslnonce.c:975,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslnonce.c:977,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/sslnonce.c:981,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/sslnonce.c:988,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslnonce.c:992,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/sslnonce.c:995,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslnonce.c:999,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/sslnonce.c:1003,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslnonce.c:1005,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/sslnonce.c:1008,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslnonce.c:1010,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/sslnonce.c:1013,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslnonce.c:1015,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/sslnonce.c:1018,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslnonce.c:1020,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/sslnonce.c:1023,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslnonce.c:1025,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/sslnonce.c:1029,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslnonce.c:1031,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/sslnonce.c:1035,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/sslnonce.c:1040,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/sslnonce.c:1047,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslnonce.c:1054,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/sslnonce.c:1055,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 233
    argCount: 2
    argNames:
    - sid
    - encodedTokenBuf
    argTypes:
    - sslSessionID*
    - sslBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 760
    functionDepth: 1
    functionLinenumber: 760
    functionLinenumberEnd: 1064
    functionName: ssl_EncodeResumptionToken
    functionSourceFile: /src/nss/lib/ssl/sslnonce.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - sslBuffer_AppendVariable
    - sslBuffer_AppendNumber
    - PORT_SetError
    - strlen
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl_EncodeResumptionToken(sslSessionID *sid, sslBuffer *encodedTokenBuf)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslnonce.c:1069,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslnonce.c:1071,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslnonce.c:1072,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslnonce.c:1073,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/sslnonce.c:1075,1
    - Dst: ssl_Time
      Src: /src/nss/lib/ssl/sslnonce.c:1094,1
    - Dst: PR_MIN
      Src: /src/nss/lib/ssl/sslnonce.c:1097,1
    - Dst: ssl_EncodeResumptionToken
      Src: /src/nss/lib/ssl/sslnonce.c:1104,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/sslnonce.c:1105,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslnonce.c:1108,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/sslnonce.c:1108,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/sslnonce.c:1109,1
    - Dst: SSL_BUFFER_BASE
      Src: /src/nss/lib/ssl/sslnonce.c:1110,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/sslnonce.c:1111,1
    - Dst: sslSocket*::resumptionTokenCallback
      Src: /src/nss/lib/ssl/sslnonce.c:1112,1
    - Dst: SSL_BUFFER_BASE
      Src: /src/nss/lib/ssl/sslnonce.c:1113,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/sslnonce.c:1113,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/sslnonce.c:1118,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1119
      start: 1066
    functionDepth: 2
    functionLinenumber: 1066
    functionLinenumberEnd: 1119
    functionName: ssl_CacheExternalToken
    functionSourceFile: /src/nss/lib/ssl/sslnonce.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SSL_BUFFER_LEN
    - sslSocket*::resumptionTokenCallback
    - SSL_BUFFER_BASE
    - ssl_Time
    - PR_MIN
    - SSL_TRC
    - PRINT_BUF
    - ssl_EncodeResumptionToken
    - sslBuffer_Clear
    linkageType: ''
    returnType: void
    signature: void ssl_CacheExternalToken(sslSocket *ss)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslnonce.c:1125,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslnonce.c:1126,1
    - Dst: ssl_CacheExternalToken
      Src: /src/nss/lib/ssl/sslnonce.c:1133,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslnonce.c:1137,1
    - Dst: ssl_ServerCacheSessionID
      Src: /src/nss/lib/ssl/sslnonce.c:1139,1
    - Dst: ssl_Time
      Src: /src/nss/lib/ssl/sslnonce.c:1139,1
    - Dst: CacheSID
      Src: /src/nss/lib/ssl/sslnonce.c:1143,1
    - Dst: ssl_Time
      Src: /src/nss/lib/ssl/sslnonce.c:1143,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1144
      start: 1121
    functionDepth: 10
    functionLinenumber: 1121
    functionLinenumberEnd: 1144
    functionName: ssl_CacheSessionID
    functionSourceFile: /src/nss/lib/ssl/sslnonce.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - ssl_Time
    - CacheSID
    - ssl_CacheExternalToken
    - ssl_ServerCacheSessionID
    linkageType: ''
    returnType: void
    signature: void ssl_CacheSessionID(sslSocket *ss)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslnonce.c:1154,1
    - Dst: ssl_ServerUncacheSessionID
      Src: /src/nss/lib/ssl/sslnonce.c:1158,1
    - Dst: LockAndUncacheSID
      Src: /src/nss/lib/ssl/sslnonce.c:1160,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1163
      start: 1146
    functionDepth: 12
    functionLinenumber: 1146
    functionLinenumberEnd: 1163
    functionName: ssl_UncacheSessionID
    functionSourceFile: /src/nss/lib/ssl/sslnonce.c
    functionUses: 2
    functionsReached:
    - ssl_ServerUncacheSessionID
    - PORT_Assert
    - LockAndUncacheSID
    linkageType: ''
    returnType: void
    signature: void ssl_UncacheSessionID(sslSocket *ss)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UncacheSID
      Src: /src/nss/lib/ssl/sslnonce.c:1171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1173
      start: 1166
    functionDepth: 11
    functionLinenumber: 1166
    functionLinenumberEnd: 1173
    functionName: SSL_ClearSessionCache
    functionSourceFile: /src/nss/lib/ssl/sslnonce.c
    functionUses: 2
    functionsReached:
    - UncacheSID
    linkageType: ''
    returnType: void
    signature: void SSL_ClearSessionCache(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_Time
      Src: /src/nss/lib/ssl/sslnonce.c:1186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ss
    - ticket
    argTypes:
    - sslSocket*
    - NewSessionTicket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1187
      start: 1175
    functionDepth: 1
    functionLinenumber: 1175
    functionLinenumberEnd: 1187
    functionName: ssl_TicketTimeValid
    functionSourceFile: /src/nss/lib/ssl/sslnonce.c
    functionUses: 0
    functionsReached:
    - ssl_Time
    linkageType: ''
    returnType: PRBool
    signature: PRBool ssl_TicketTimeValid(const sslSocket *ss, const NewSessionTicket
      *ticket)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslnonce.c:1193,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslnonce.c:1194,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslnonce.c:1195,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslnonce.c:1196,1
    - Dst: PR_RWLock_Wlock
      Src: /src/nss/lib/ssl/sslnonce.c:1204,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslnonce.c:1206,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslnonce.c:1212,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/sslnonce.c:1214,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslnonce.c:1218,1
    - Dst: PR_RWLock_Unlock
      Src: /src/nss/lib/ssl/sslnonce.c:1226,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - sid
    - newSessionTicket
    argTypes:
    - sslSessionID*
    - NewSessionTicket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1228
      start: 1189
    functionDepth: 1
    functionLinenumber: 1189
    functionLinenumberEnd: 1228
    functionName: ssl3_SetSIDSessionTicket
    functionSourceFile: /src/nss/lib/ssl/sslnonce.c
    functionUses: 0
    functionsReached:
    - PR_RWLock_Unlock
    - PORT_Assert
    - PR_RWLock_Wlock
    - SECITEM_FreeItem
    linkageType: ''
    returnType: void
    signature: "void ssl3_SetSIDSessionTicket(sslSessionID *sid,\n                         /*in/out*/
      NewSessionTicket *newSessionTicket)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:139,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/tls13con.c:140,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ss
    - prError
    - desc
    argTypes:
    - sslSocket*
    - PRErrorCode
    - SSL3AlertDescription
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 142
    functionName: tls13_FatalError
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 1
    functionsReached:
    - SSL3_SendAlert
    - PORT_Assert
    - PORT_SetError
    linkageType: ''
    returnType: void
    signature: void tls13_FatalError(sslSocket *ss, PRErrorCode prError, SSL3AlertDescription
      desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 148
    functionName: STATE_CASE
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATE_CASE(a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: STATE_CASE
      Src: /src/nss/lib/ssl/tls13con.c:152,1
    - Dst: STATE_CASE
      Src: /src/nss/lib/ssl/tls13con.c:153,1
    - Dst: STATE_CASE
      Src: /src/nss/lib/ssl/tls13con.c:154,1
    - Dst: STATE_CASE
      Src: /src/nss/lib/ssl/tls13con.c:155,1
    - Dst: STATE_CASE
      Src: /src/nss/lib/ssl/tls13con.c:156,1
    - Dst: STATE_CASE
      Src: /src/nss/lib/ssl/tls13con.c:157,1
    - Dst: STATE_CASE
      Src: /src/nss/lib/ssl/tls13con.c:158,1
    - Dst: STATE_CASE
      Src: /src/nss/lib/ssl/tls13con.c:159,1
    - Dst: STATE_CASE
      Src: /src/nss/lib/ssl/tls13con.c:160,1
    - Dst: STATE_CASE
      Src: /src/nss/lib/ssl/tls13con.c:161,1
    - Dst: STATE_CASE
      Src: /src/nss/lib/ssl/tls13con.c:162,1
    - Dst: STATE_CASE
      Src: /src/nss/lib/ssl/tls13con.c:163,1
    - Dst: STATE_CASE
      Src: /src/nss/lib/ssl/tls13con.c:164,1
    - Dst: STATE_CASE
      Src: /src/nss/lib/ssl/tls13con.c:165,1
    - Dst: STATE_CASE
      Src: /src/nss/lib/ssl/tls13con.c:166,1
    - Dst: STATE_CASE
      Src: /src/nss/lib/ssl/tls13con.c:167,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:171,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 1
    argNames:
    - st
    argTypes:
    - SSL3WaitState
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 173
    functionName: tls13_HandshakeState
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - STATE_CASE
    linkageType: ''
    returnType: char
    signature: 'char *

      tls13_HandshakeState(SSL3WaitState st)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ws
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 179
    functionName: TLS13_BASE_WAIT_STATE
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TLS13_BASE_WAIT_STATE(ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ws
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 181
    functionName: TLS13_WAIT_STATE
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TLS13_WAIT_STATE(ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ss
    - ','
    - err
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 185
    functionName: TLS13_CHECK_HS_STATE
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TLS13_CHECK_HS_STATE(ss, err, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tls13_HandshakeState
      Src: /src/nss/lib/ssl/tls13con.c:191,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:193,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:194,1
    - Dst: SSL_ROLE
      Src: /src/nss/lib/ssl/tls13con.c:194,1
    - Dst: tls13_HandshakeState
      Src: /src/nss/lib/ssl/tls13con.c:195,1
    - Dst: TLS13_BASE_WAIT_STATE
      Src: /src/nss/lib/ssl/tls13con.c:195,1
    - Dst: TLS13_WAIT_STATE
      Src: /src/nss/lib/ssl/tls13con.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ss
    - ws
    - func
    - file
    - line
    argTypes:
    - sslSocket*
    - SSL3WaitState
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 185
    functionDepth: 2
    functionLinenumber: 185
    functionLinenumberEnd: 201
    functionName: tls13_SetHsState
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - SSL_ROLE
    - tls13_HandshakeState
    - SSL_TRC
    - SSL_GETPID
    - TLS13_WAIT_STATE
    - TLS13_BASE_WAIT_STATE
    linkageType: ''
    returnType: void
    signature: "void tls13_SetHsState(sslSocket *ss, SSL3WaitState ws,\n                 const
      char *func, const char *file, int line)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_arg
      Src: /src/nss/lib/ssl/tls13con.c:208,1
    - Dst: TLS13_WAIT_STATE
      Src: /src/nss/lib/ssl/tls13con.c:209,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ss
    - ap
    argTypes:
    - sslSocket*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 214
    functionName: tls13_InHsStateV
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - va_arg
    - TLS13_WAIT_STATE
    linkageType: ''
    returnType: PRBool
    signature: PRBool tls13_InHsStateV(sslSocket *ss, va_list ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/nss/lib/ssl/tls13con.c:222,1
    - Dst: tls13_InHsStateV
      Src: /src/nss/lib/ssl/tls13con.c:223,1
    - Dst: va_end
      Src: /src/nss/lib/ssl/tls13con.c:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 227
    functionName: tls13_InHsState
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - tls13_InHsStateV
    - va_end
    - va_start
    linkageType: ''
    returnType: PRBool
    signature: PRBool tls13_InHsState(sslSocket *ss, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/nss/lib/ssl/tls13con.c:235,1
    - Dst: tls13_InHsStateV
      Src: /src/nss/lib/ssl/tls13con.c:236,1
    - Dst: va_end
      Src: /src/nss/lib/ssl/tls13con.c:237,1
    - Dst: va_end
      Src: /src/nss/lib/ssl/tls13con.c:240,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:242,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:243,1
    - Dst: tls13_HandshakeState
      Src: /src/nss/lib/ssl/tls13con.c:245,1
    - Dst: TLS13_BASE_WAIT_STATE
      Src: /src/nss/lib/ssl/tls13con.c:245,1
    - Dst: tls13_FatalError
      Src: /src/nss/lib/ssl/tls13con.c:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 6
    argNames:
    - ss
    - err
    - error_name
    - func
    - file
    - line
    argTypes:
    - sslSocket*
    - int
    - char*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 229
    functionDepth: 2
    functionLinenumber: 229
    functionLinenumberEnd: 249
    functionName: tls13_CheckHsState
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - va_end
    - SSL_TRC
    - tls13_HandshakeState
    - SSL_GETPID
    - tls13_InHsStateV
    - TLS13_BASE_WAIT_STATE
    - va_start
    - tls13_FatalError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_CheckHsState(sslSocket *ss, int err, const char *error_name,\n
      \                  const char *func, const char *file, int line,\n                   ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 255
    functionName: tls13_IsPostHandshake
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool tls13_IsPostHandshake(const sslSocket *ss)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_LookupCipherSuiteDef
      Src: /src/nss/lib/ssl/tls13con.c:261,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - suite
    argTypes:
    - ssl3CipherSuite
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 267
    functionName: tls13_GetHashForCipherSuite
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - ssl_LookupCipherSuiteDef
    linkageType: ''
    returnType: SSLHashType
    signature: SSLHashType tls13_GetHashForCipherSuite(ssl3CipherSuite suite)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:278,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:283,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 285
    functionName: tls13_GetHash
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: SSLHashType
    signature: SSLHashType tls13_GetHash(const sslSocket *ss)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:292,1
    - Dst: ssl3_CipherSuiteAllowedForVersionRange
      Src: /src/nss/lib/ssl/tls13con.c:298,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:299,1
    - Dst: ssl_LookupCipherSuiteDef
      Src: /src/nss/lib/ssl/tls13con.c:302,1
    - Dst: ssl_GetBulkCipherDef
      Src: /src/nss/lib/ssl/tls13con.c:303,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:305,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - version
    - cipherSuite
    - hash
    - cipher
    argTypes:
    - PRUint16
    - PRUint16
    - SSLHashType*
    - ssl3BulkCipherDef**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 313
    functionName: tls13_GetHashAndCipher
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - ssl_LookupCipherSuiteDef
    - ssl_GetBulkCipherDef
    - ssl3_CipherSuiteAllowedForVersionRange
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_GetHashAndCipher(PRUint16 version, PRUint16 cipherSuite,\n
      \                      SSLHashType *hash, const ssl3BulkCipherDef **cipher)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - hash
    argTypes:
    - SSLHashType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 327
    functionName: tls13_GetHashSizeForHash
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int tls13_GetHashSizeForHash(SSLHashType hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tls13_GetHashSizeForHash
      Src: /src/nss/lib/ssl/tls13con.c:332,1
    - Dst: tls13_GetHash
      Src: /src/nss/lib/ssl/tls13con.c:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 333
    functionName: tls13_GetHashSize
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 1
    functionsReached:
    - tls13_GetHash
    - tls13_GetHashSizeForHash
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int tls13_GetHashSize(const sslSocket *ss)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - hashType
    argTypes:
    - SSLHashType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 347
    functionName: tls13_GetHmacMechanismFromHash
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: CK_MECHANISM_TYPE
    signature: CK_MECHANISM_TYPE tls13_GetHmacMechanismFromHash(SSLHashType hashType)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tls13_GetHmacMechanismFromHash
      Src: /src/nss/lib/ssl/tls13con.c:352,1
    - Dst: tls13_GetHash
      Src: /src/nss/lib/ssl/tls13con.c:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 353
    functionName: tls13_GetHmacMechanism
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - tls13_GetHash
    - tls13_GetHmacMechanismFromHash
    linkageType: ''
    returnType: CK_MECHANISM_TYPE
    signature: CK_MECHANISM_TYPE tls13_GetHmacMechanism(const sslSocket *ss)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_HashBuf
      Src: /src/nss/lib/ssl/tls13con.c:362,1
    - Dst: ssl3_HashTypeToOID
      Src: /src/nss/lib/ssl/tls13con.c:362,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:364,1
    - Dst: tls13_GetHashSizeForHash
      Src: /src/nss/lib/ssl/tls13con.c:367,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - ss
    - hashes
    - buf
    - len
    - hash
    argTypes:
    - sslSocket*
    - SSL3Hashes*
    - PRUint8*
    - unsigned int
    - SSLHashType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 355
    functionDepth: 10
    functionLinenumber: 355
    functionLinenumberEnd: 370
    functionName: tls13_ComputeHash
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - FATAL_ERROR
    - ssl3_HashTypeToOID
    - PK11_HashBuf
    - tls13_GetHashSizeForHash
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_ComputeHash(sslSocket *ss, SSL3Hashes *hashes,\n                  const
      PRUint8 *buf, unsigned int len,\n                  SSLHashType hash)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:376,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:394,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:395,1
    - Dst: PK11_GetBestSlot
      Src: /src/nss/lib/ssl/tls13con.c:399,1
    - Dst: PK11_GenerateKeyPairWithOpFlags
      Src: /src/nss/lib/ssl/tls13con.c:404,1
    - Dst: PK11_GenerateKeyPairWithOpFlags
      Src: /src/nss/lib/ssl/tls13con.c:409,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/ssl/tls13con.c:414,1
    - Dst: ssl_NewKeyPair
      Src: /src/nss/lib/ssl/tls13con.c:419,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:424,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:425,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/tls13con.c:426,1
    - Dst: PK11_ReadRawAttribute
      Src: /src/nss/lib/ssl/tls13con.c:431,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/tls13con.c:433,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/tls13con.c:434,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:436,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/lib/ssl/tls13con.c:445,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/ssl/tls13con.c:446,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/tls13con.c:447,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 52
    argCount: 3
    argNames:
    - ss
    - groupDef
    - outKeyPair
    argTypes:
    - sslSocket*
    - sslNamedGroupDef*
    - sslKeyPair**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 372
    functionDepth: 10
    functionLinenumber: 372
    functionLinenumberEnd: 449
    functionName: tls13_CreateKEMKeyPair
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SECKEY_DestroyPublicKey
    - PK11_GenerateKeyPairWithOpFlags
    - ssl_NewKeyPair
    - SSL_TRC
    - PK11_GetBestSlot
    - SSL_GETPID
    - PRINT_BUF
    - PORT_SetError
    - PK11_ReadRawAttribute
    - ssl_MapLowLevelError
    - SECKEY_DestroyPrivateKey
    - PK11_FreeSlot
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_CreateKEMKeyPair(sslSocket *ss, const sslNamedGroupDef
      *groupDef,\n                       sslKeyPair **outKeyPair)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:459,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:463,1
    - Dst: ssl_LookupNamedGroup
      Src: /src/nss/lib/ssl/tls13con.c:466,1
    - Dst: ssl_LookupEphemeralKeyPair
      Src: /src/nss/lib/ssl/tls13con.c:467,1
    - Dst: ssl_CopyEphemeralKeyPair
      Src: /src/nss/lib/ssl/tls13con.c:469,1
    - Dst: ssl_CreateECDHEphemeralKeyPair
      Src: /src/nss/lib/ssl/tls13con.c:472,1
    - Dst: ssl_LookupEphemeralKeyPair
      Src: /src/nss/lib/ssl/tls13con.c:481,1
    - Dst: ssl_LookupNamedGroup
      Src: /src/nss/lib/ssl/tls13con.c:481,1
    - Dst: ssl_LookupEphemeralKeyPair
      Src: /src/nss/lib/ssl/tls13con.c:483,1
    - Dst: ssl_LookupNamedGroup
      Src: /src/nss/lib/ssl/tls13con.c:483,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/ssl/tls13con.c:489,1
    - Dst: PR_INIT_CLIST
      Src: /src/nss/lib/ssl/tls13con.c:493,1
    - Dst: ssl_GetKeyPairRef
      Src: /src/nss/lib/ssl/tls13con.c:495,1
    - Dst: ssl_CreateECDHEphemeralKeyPair
      Src: /src/nss/lib/ssl/tls13con.c:499,1
    - Dst: ssl_GetDHEParams
      Src: /src/nss/lib/ssl/tls13con.c:506,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:507,1
    - Dst: ssl_CreateDHEKeyPair
      Src: /src/nss/lib/ssl/tls13con.c:508,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:514,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:515,1
    - Dst: tls13_CreateKEMKeyPair
      Src: /src/nss/lib/ssl/tls13con.c:522,1
    - Dst: ssl_FreeEphemeralKeyPair
      Src: /src/nss/lib/ssl/tls13con.c:524,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 63
    argCount: 3
    argNames:
    - ss
    - groupDef
    - outKeyPair
    argTypes:
    - sslSocket*
    - sslNamedGroupDef*
    - sslEphemeralKeyPair**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 451
    functionDepth: 11
    functionLinenumber: 451
    functionLinenumberEnd: 531
    functionName: tls13_CreateKeyShare
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - ssl_CopyEphemeralKeyPair
    - ssl_FreeEphemeralKeyPair
    - ssl_LookupEphemeralKeyPair
    - ssl_CreateECDHEphemeralKeyPair
    - PORT_ZNew
    - ssl_LookupNamedGroup
    - ssl_CreateDHEKeyPair
    - ssl_GetKeyPairRef
    - PORT_SetError
    - tls13_CreateKEMKeyPair
    - PR_INIT_CLIST
    - ssl_GetDHEParams
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_CreateKeyShare(sslSocket *ss, const sslNamedGroupDef
      *groupDef,\n                     sslEphemeralKeyPair **outKeyPair)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tls13_CreateKeyShare
      Src: /src/nss/lib/ssl/tls13con.c:539,1
    - Dst: PR_APPEND_LINK
      Src: /src/nss/lib/ssl/tls13con.c:543,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ss
    - groupDef
    argTypes:
    - sslSocket*
    - sslNamedGroupDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 533
    functionDepth: 12
    functionLinenumber: 533
    functionLinenumberEnd: 545
    functionName: tls13_AddKeyShare
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 1
    functionsReached:
    - PR_APPEND_LINK
    - tls13_CreateKeyShare
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_AddKeyShare(sslSocket *ss, const sslNamedGroupDef *groupDef)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/tls13con.c:550,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:552,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - fd
    - count
    argTypes:
    - PRFileDesc*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 547
    functionDepth: 2
    functionLinenumber: 547
    functionLinenumberEnd: 558
    functionName: SSL_SendAdditionalKeyShares
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - ssl_FindSocket
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSL_SendAdditionalKeyShares(PRFileDesc *fd, unsigned int
      count)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: SSL_GetStatistics
      Src: /src/nss/lib/ssl/tls13con.c:570,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:576,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/tls13con.c:576,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:577,1
    - Dst: ssl_HaveXmitBufLock
      Src: /src/nss/lib/ssl/tls13con.c:577,1
    - Dst: tls13_ClientSetupEch
      Src: /src/nss/lib/ssl/tls13con.c:579,1
    - Dst: tls13_ClientGreaseSetup
      Src: /src/nss/lib/ssl/tls13con.c:589,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:597,1
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/lib/ssl/tls13con.c:597,1
    - Dst: tls13_AddKeyShare
      Src: /src/nss/lib/ssl/tls13con.c:602,1
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/lib/ssl/tls13con.c:611,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:612,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:621,1
    - Dst: ssl_TicketTimeValid
      Src: /src/nss/lib/ssl/tls13con.c:623,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:628,1
    - Dst: tls13_RecoverWrappedSharedSecret
      Src: /src/nss/lib/ssl/tls13con.c:629,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:631,1
    - Dst: SSL_AtomicIncrementLong
      Src: /src/nss/lib/ssl/tls13con.c:632,1
    - Dst: ssl_UncacheSessionID
      Src: /src/nss/lib/ssl/tls13con.c:633,1
    - Dst: ssl_FreeSID
      Src: /src/nss/lib/ssl/tls13con.c:634,1
    - Dst: ssl3_SetupCipherSuite
      Src: /src/nss/lib/ssl/tls13con.c:640,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:642,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/tls13con.c:642,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:645,1
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/lib/ssl/tls13con.c:645,1
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/lib/ssl/tls13con.c:650,1
    - Dst: PR_LIST_HEAD
      Src: /src/nss/lib/ssl/tls13con.c:652,1
    - Dst: tls13_ComputeEarlySecretsWithPsk
      Src: /src/nss/lib/ssl/tls13con.c:659,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:661,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 68
    argCount: 2
    argNames:
    - ss
    - chType
    argTypes:
    - sslSocket*
    - sslClientHelloType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 566
    functionDepth: 13
    functionLinenumber: 566
    functionLinenumberEnd: 667
    functionName: tls13_SetupClientHello
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - tls13_ComputeEarlySecretsWithPsk
    - SSL_GetStatistics
    - ssl_FreeSID
    - PORT_SetError
    - FATAL_ERROR
    - tls13_AddKeyShare
    - PR_CLIST_IS_EMPTY
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    - tls13_ClientGreaseSetup
    - SSL_AtomicIncrementLong
    - tls13_ClientSetupEch
    - tls13_RecoverWrappedSharedSecret
    - ssl_HaveXmitBufLock
    - ssl_TicketTimeValid
    - ssl_UncacheSessionID
    - PORT_GetError
    - PR_LIST_HEAD
    - ssl3_SetupCipherSuite
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_SetupClientHello(sslSocket *ss, sslClientHelloType
      chType)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ssl_IsValidDHEShare
      Src: /src/nss/lib/ssl/tls13con.c:679,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:680,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/ssl/tls13con.c:685,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/ssl/tls13con.c:689,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/ssl/tls13con.c:693,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - peerKey
    - b
    - length
    - pubKey
    argTypes:
    - SECKEYPublicKey*
    - PRUint8*
    - PRUint32
    - SECKEYPublicKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 669
    functionDepth: 2
    functionLinenumber: 669
    functionLinenumberEnd: 699
    functionName: tls13_ImportDHEKeyShare
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - ssl_IsValidDHEShare
    - SECITEM_CopyItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_ImportDHEKeyShare(SECKEYPublicKey *peerKey,\n                        PRUint8
      *b, PRUint32 length,\n                        SECKEYPublicKey *pubKey)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:716,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:721,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:741,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:742,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/ssl/tls13con.c:746,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:748,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    argCount: 2
    argNames:
    - peerKey
    - entry
    argTypes:
    - SECKEYPublicKey*
    - TLS13KeyShareEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 701
    functionDepth: 0
    functionLinenumber: 701
    functionLinenumberEnd: 753
    functionName: tls13_ImportKEMKeyShare
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - SECITEM_CopyItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_ImportKEMKeyShare(SECKEYPublicKey *peerKey, TLS13KeyShareEntry
      *entry)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/tls13con.c:764,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/tls13con.c:772,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:779,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/tls13con.c:780,1
    - Dst: PK11_Decapsulate
      Src: /src/nss/lib/ssl/tls13con.c:784,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/tls13con.c:786,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 4
    argNames:
    - ss
    - entry
    - keyPair
    - outKey
    argTypes:
    - sslSocket*
    - TLS13KeyShareEntry*
    - sslKeyPair*
    - PK11SymKey**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 755
    functionDepth: 5
    functionLinenumber: 755
    functionLinenumberEnd: 789
    functionName: tls13_HandleKEMCiphertext
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - ssl_MapLowLevelError
    - PK11_Decapsulate
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_HandleKEMCiphertext(sslSocket *ss, TLS13KeyShareEntry
      *entry, sslKeyPair *keyPair, PK11SymKey **outKey)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_InitCheapArena
      Src: /src/nss/lib/ssl/tls13con.c:802,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/ssl/tls13con.c:803,1
    - Dst: tls13_ImportKEMKeyShare
      Src: /src/nss/lib/ssl/tls13con.c:811,1
    - Dst: PK11_GetBestSlot
      Src: /src/nss/lib/ssl/tls13con.c:816,1
    - Dst: PK11_ImportPublicKey
      Src: /src/nss/lib/ssl/tls13con.c:821,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/ssl/tls13con.c:822,1
    - Dst: PK11_Encapsulate
      Src: /src/nss/lib/ssl/tls13con.c:827,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:832,1
    - Dst: PK11_DestroyObject
      Src: /src/nss/lib/ssl/tls13con.c:833,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/ssl/tls13con.c:834,1
    - Dst: PORT_DestroyCheapArena
      Src: /src/nss/lib/ssl/tls13con.c:836,1
    - Dst: PORT_DestroyCheapArena
      Src: /src/nss/lib/ssl/tls13con.c:840,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 4
    argNames:
    - ss
    - entry
    - key
    - ciphertext
    argTypes:
    - sslSocket*
    - TLS13KeyShareEntry*
    - PK11SymKey**
    - SECItem**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 791
    functionDepth: 8
    functionLinenumber: 791
    functionLinenumberEnd: 842
    functionName: tls13_HandleKEMKey
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - PK11_FreeSlot
    - PK11_Encapsulate
    - PORT_Assert
    - tls13_ImportKEMKeyShare
    - PK11_GetBestSlot
    - PK11_DestroyObject
    - PORT_ArenaZNew
    - PORT_InitCheapArena
    - PORT_DestroyCheapArena
    - PK11_ImportPublicKey
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_HandleKEMKey(sslSocket *ss,\n                   TLS13KeyShareEntry
      *entry,\n                   PK11SymKey **key,\n                   SECItem **ciphertext)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PORT_InitCheapArena
      Src: /src/nss/lib/ssl/tls13con.c:859,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/ssl/tls13con.c:860,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:888,1
    - Dst: ssl_ImportECDHKeyShare
      Src: /src/nss/lib/ssl/tls13con.c:891,1
    - Dst: ssl_LookupNamedGroup
      Src: /src/nss/lib/ssl/tls13con.c:894,1
    - Dst: ssl_ImportECDHKeyShare
      Src: /src/nss/lib/ssl/tls13con.c:898,1
    - Dst: tls13_ImportDHEKeyShare
      Src: /src/nss/lib/ssl/tls13con.c:905,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:913,1
    - Dst: PK11_PubDeriveWithKDF
      Src: /src/nss/lib/ssl/tls13con.c:920,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/tls13con.c:924,1
    - Dst: PORT_DestroyCheapArena
      Src: /src/nss/lib/ssl/tls13con.c:929,1
    - Dst: PORT_DestroyCheapArena
      Src: /src/nss/lib/ssl/tls13con.c:933,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 62
    argCount: 5
    argNames:
    - ss
    - entry
    - keyPair
    - hash
    - out
    argTypes:
    - sslSocket*
    - TLS13KeyShareEntry*
    - sslKeyPair*
    - SSLHashType
    - PK11SymKey**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 844
    functionDepth: 12
    functionLinenumber: 844
    functionLinenumberEnd: 935
    functionName: tls13_HandleKeyShare
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - tls13_ImportDHEKeyShare
    - ssl_LookupNamedGroup
    - PORT_InitCheapArena
    - PORT_ArenaZNew
    - PORT_SetError
    - ssl_MapLowLevelError
    - ssl_ImportECDHKeyShare
    - PORT_DestroyCheapArena
    - PK11_PubDeriveWithKDF
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_HandleKeyShare(sslSocket *ss,\n                     TLS13KeyShareEntry
      *entry,\n                     sslKeyPair *keyPair,\n                     SSLHashType
      hash,\n                     PK11SymKey **out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ss
    - direction
    argTypes:
    - sslSocket*
    - SSLSecretDirection
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 937
    functionDepth: 0
    functionLinenumber: 937
    functionLinenumberEnd: 941
    functionName: tls13_UseServerSecret
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool tls13_UseServerSecret(sslSocket *ss, SSLSecretDirection direction)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tls13_UseServerSecret
      Src: /src/nss/lib/ssl/tls13con.c:946,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 950
      start: 943
    functionDepth: 1
    functionLinenumber: 943
    functionLinenumberEnd: 950
    functionName: tls13_TrafficSecretRef
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - tls13_UseServerSecret
    linkageType: ''
    returnType: PK11SymKey
    signature: 'PK11SymKey **

      tls13_TrafficSecretRef(sslSocket *ss, SSLSecretDirection direction)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tls13_TrafficSecretRef
      Src: /src/nss/lib/ssl/tls13con.c:960,1
    - Dst: tls13_HkdfExpandLabel
      Src: /src/nss/lib/ssl/tls13con.c:961,1
    - Dst: tls13_GetHash
      Src: /src/nss/lib/ssl/tls13con.c:961,1
    - Dst: strlen
      Src: /src/nss/lib/ssl/tls13con.c:964,1
    - Dst: tls13_GetHmacMechanism
      Src: /src/nss/lib/ssl/tls13con.c:965,1
    - Dst: tls13_GetHashSize
      Src: /src/nss/lib/ssl/tls13con.c:966,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/tls13con.c:973,1
    - Dst: ssl_GetSpecReadLock
      Src: /src/nss/lib/ssl/tls13con.c:976,1
    - Dst: ssl_ReleaseSpecReadLock
      Src: /src/nss/lib/ssl/tls13con.c:982,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:986,1
    - Dst: sslSocket*::secretCallback
      Src: /src/nss/lib/ssl/tls13con.c:992,1
    - Dst: tls13_SetCipherSpec
      Src: /src/nss/lib/ssl/tls13con.c:995,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:997,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 2
    argNames:
    - ss
    - direction
    argTypes:
    - sslSocket*
    - SSLSecretDirection
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 952
    functionDepth: 4
    functionLinenumber: 952
    functionLinenumberEnd: 1001
    functionName: tls13_UpdateTrafficKeys
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - tls13_HkdfExpandLabel
    - ssl_ReleaseSpecReadLock
    - FATAL_ERROR
    - ssl_GetSpecReadLock
    - tls13_TrafficSecretRef
    - tls13_SetCipherSpec
    - tls13_GetHashSize
    - sslSocket*::secretCallback
    - tls13_GetHmacMechanism
    - PK11_FreeSymKey
    - tls13_GetHash
    - strlen
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_UpdateTrafficKeys(sslSocket *ss, SSLSecretDirection
      direction)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:1008,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:1009,1
    - Dst: SSL_ROLE
      Src: /src/nss/lib/ssl/tls13con.c:1009,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:1013,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/tls13con.c:1013,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:1014,1
    - Dst: tls13_IsPostHandshake
      Src: /src/nss/lib/ssl/tls13con.c:1016,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:1017,1
    - Dst: TLS13_CHECK_HS_STATE
      Src: /src/nss/lib/ssl/tls13con.c:1021,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/tls13con.c:1027,1
    - Dst: dtls13_MaybeSendKeyUpdate
      Src: /src/nss/lib/ssl/tls13con.c:1028,1
    - Dst: ssl_GetXmitBufLock
      Src: /src/nss/lib/ssl/tls13con.c:1036,1
    - Dst: ssl3_AppendHandshakeHeader
      Src: /src/nss/lib/ssl/tls13con.c:1037,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:1039,1
    - Dst: ssl3_AppendHandshakeNumber
      Src: /src/nss/lib/ssl/tls13con.c:1042,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:1044,1
    - Dst: ssl3_FlushHandshake
      Src: /src/nss/lib/ssl/tls13con.c:1050,1
    - Dst: ssl_ReleaseXmitBufLock
      Src: /src/nss/lib/ssl/tls13con.c:1054,1
    - Dst: tls13_UpdateTrafficKeys
      Src: /src/nss/lib/ssl/tls13con.c:1056,1
    - Dst: ssl_ReleaseXmitBufLock
      Src: /src/nss/lib/ssl/tls13con.c:1064,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 3
    argNames:
    - ss
    - request
    - buffer
    argTypes:
    - sslSocket*
    - tls13KeyUpdateRequest
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1003
    functionDepth: 5
    functionLinenumber: 1003
    functionLinenumberEnd: 1066
    functionName: tls13_SendKeyUpdate
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 1
    functionsReached:
    - IS_DTLS
    - PORT_Assert
    - SSL_ROLE
    - ssl_HaveSSL3HandshakeLock
    - ssl_GetXmitBufLock
    - tls13_IsPostHandshake
    - SSL_TRC
    - SSL_GETPID
    - ssl3_AppendHandshakeNumber
    - PORT_SetError
    - ssl3_AppendHandshakeHeader
    - FATAL_ERROR
    - dtls13_MaybeSendKeyUpdate
    - ssl3_FlushHandshake
    - TLS13_CHECK_HS_STATE
    - ssl_ReleaseXmitBufLock
    - tls13_UpdateTrafficKeys
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_SendKeyUpdate(sslSocket *ss, tls13KeyUpdateRequest
      request, PRBool buffer)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/tls13con.c:1072,1
    - Dst: tls13_IsPostHandshake
      Src: /src/nss/lib/ssl/tls13con.c:1077,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:1078,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:1083,1
    - Dst: TLS13_CHECK_HS_STATE
      Src: /src/nss/lib/ssl/tls13con.c:1087,1
    - Dst: ssl_GetSSL3HandshakeLock
      Src: /src/nss/lib/ssl/tls13con.c:1093,1
    - Dst: tls13_SendKeyUpdate
      Src: /src/nss/lib/ssl/tls13con.c:1094,1
    - Dst: ssl_ReleaseSSL3HandshakeLock
      Src: /src/nss/lib/ssl/tls13con.c:1101,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - fd
    - requestUpdate
    argTypes:
    - PRFileDesc*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 1068
    functionDepth: 6
    functionLinenumber: 1068
    functionLinenumberEnd: 1103
    functionName: SSLExp_KeyUpdate
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - ssl_GetSSL3HandshakeLock
    - tls13_IsPostHandshake
    - ssl_ReleaseSSL3HandshakeLock
    - PORT_SetError
    - TLS13_CHECK_HS_STATE
    - ssl_FindSocket
    - tls13_SendKeyUpdate
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSLExp_KeyUpdate(PRFileDesc *fd, PRBool requestUpdate)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/tls13con.c:1108,1
    - Dst: ssl_GetSSL3HandshakeLock
      Src: /src/nss/lib/ssl/tls13con.c:1113,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/tls13con.c:1134,1
    - Dst: ssl_ReleaseSSL3HandshakeLock
      Src: /src/nss/lib/ssl/tls13con.c:1138,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:1142,1
    - Dst: ssl_ReleaseSSL3HandshakeLock
      Src: /src/nss/lib/ssl/tls13con.c:1143,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 2
    argNames:
    - fd
    - alg
    argTypes:
    - PRFileDesc*
    - SSLCertificateCompressionAlgorithm
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1145
      start: 1105
    functionDepth: 2
    functionLinenumber: 1105
    functionLinenumberEnd: 1145
    functionName: SSLExp_SetCertificateCompressionAlgorithm
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - PORT_Memcpy
    - ssl_GetSSL3HandshakeLock
    - ssl_ReleaseSSL3HandshakeLock
    - PORT_SetError
    - ssl_FindSocket
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSLExp_SetCertificateCompressionAlgorithm(PRFileDesc *fd,
      SSLCertificateCompressionAlgorithm alg)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:1164,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:1165,1
    - Dst: SSL_ROLE
      Src: /src/nss/lib/ssl/tls13con.c:1165,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:1167,1
    - Dst: ssl_HaveRecvBufLock
      Src: /src/nss/lib/ssl/tls13con.c:1167,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:1168,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/tls13con.c:1168,1
    - Dst: tls13_IsPostHandshake
      Src: /src/nss/lib/ssl/tls13con.c:1170,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:1171,1
    - Dst: TLS13_CHECK_HS_STATE
      Src: /src/nss/lib/ssl/tls13con.c:1175,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:1179,1
    - Dst: ssl3_ConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/tls13con.c:1183,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:1188,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:1193,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/tls13con.c:1197,1
    - Dst: dtls13_HandleKeyUpdate
      Src: /src/nss/lib/ssl/tls13con.c:1198,1
    - Dst: tls13_UpdateTrafficKeys
      Src: /src/nss/lib/ssl/tls13con.c:1201,1
    - Dst: ssl_GetSpecReadLock
      Src: /src/nss/lib/ssl/tls13con.c:1216,1
    - Dst: ssl_ReleaseSpecReadLock
      Src: /src/nss/lib/ssl/tls13con.c:1218,1
    - Dst: tls13_SendKeyUpdate
      Src: /src/nss/lib/ssl/tls13con.c:1224,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 54
    argCount: 3
    argNames:
    - ss
    - b
    - length
    argTypes:
    - sslSocket*
    - PRUint8*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1233
      start: 1158
    functionDepth: 6
    functionLinenumber: 1158
    functionLinenumberEnd: 1233
    functionName: tls13_HandleKeyUpdate
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 1
    functionsReached:
    - IS_DTLS
    - PORT_Assert
    - SSL_ROLE
    - ssl_HaveSSL3HandshakeLock
    - tls13_IsPostHandshake
    - SSL_TRC
    - SSL_GETPID
    - FATAL_ERROR
    - ssl_GetSpecReadLock
    - dtls13_HandleKeyUpdate
    - TLS13_CHECK_HS_STATE
    - tls13_UpdateTrafficKeys
    - ssl_HaveRecvBufLock
    - ssl3_ConsumeHandshakeNumber
    - ssl_ReleaseSpecReadLock
    - tls13_SendKeyUpdate
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_HandleKeyUpdate(sslSocket *ss, PRUint8 *b, unsigned
      int length)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/tls13con.c:1239,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/tls13con.c:1245,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:1246,1
    - Dst: tls13_IsPostHandshake
      Src: /src/nss/lib/ssl/tls13con.c:1250,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:1251,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:1256,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:1262,1
    - Dst: TLS13_CHECK_HS_STATE
      Src: /src/nss/lib/ssl/tls13con.c:1266,1
    - Dst: ssl3_ExtensionNegotiated
      Src: /src/nss/lib/ssl/tls13con.c:1272,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:1273,1
    - Dst: ssl_GetSSL3HandshakeLock
      Src: /src/nss/lib/ssl/tls13con.c:1277,1
    - Dst: tls13_SendCertificateRequest
      Src: /src/nss/lib/ssl/tls13con.c:1279,1
    - Dst: ssl_GetXmitBufLock
      Src: /src/nss/lib/ssl/tls13con.c:1281,1
    - Dst: ssl3_FlushHandshake
      Src: /src/nss/lib/ssl/tls13con.c:1282,1
    - Dst: ssl_ReleaseXmitBufLock
      Src: /src/nss/lib/ssl/tls13con.c:1283,1
    - Dst: ssl_ReleaseSSL3HandshakeLock
      Src: /src/nss/lib/ssl/tls13con.c:1287,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 1
    argNames:
    - fd
    argTypes:
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1289
      start: 1235
    functionDepth: 2
    functionLinenumber: 1235
    functionLinenumberEnd: 1289
    functionName: SSLExp_SendCertificateRequest
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - IS_DTLS
    - ssl_GetXmitBufLock
    - ssl_GetSSL3HandshakeLock
    - tls13_IsPostHandshake
    - ssl3_ExtensionNegotiated
    - ssl_ReleaseSSL3HandshakeLock
    - ssl_ReleaseXmitBufLock
    - PORT_SetError
    - ssl3_FlushHandshake
    - TLS13_CHECK_HS_STATE
    - ssl_FindSocket
    - tls13_SendCertificateRequest
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSLExp_SendCertificateRequest(PRFileDesc *fd)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:1295,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:1297,1
    - Dst: tls13_HandleCertificate
      Src: /src/nss/lib/ssl/tls13con.c:1304,1
    - Dst: tls13_HandleCertificateDecode
      Src: /src/nss/lib/ssl/tls13con.c:1306,1
    - Dst: tls13_HandleCertificateRequest
      Src: /src/nss/lib/ssl/tls13con.c:1308,1
    - Dst: tls13_HandleCertificateVerify
      Src: /src/nss/lib/ssl/tls13con.c:1311,1
    - Dst: tls13_HandleEncryptedExtensions
      Src: /src/nss/lib/ssl/tls13con.c:1314,1
    - Dst: tls13_HandleNewSessionTicket
      Src: /src/nss/lib/ssl/tls13con.c:1317,1
    - Dst: tls13_ServerHandleFinished
      Src: /src/nss/lib/ssl/tls13con.c:1321,1
    - Dst: tls13_ClientHandleFinished
      Src: /src/nss/lib/ssl/tls13con.c:1323,1
    - Dst: tls13_HandleEndOfEarlyData
      Src: /src/nss/lib/ssl/tls13con.c:1327,1
    - Dst: tls13_HandleKeyUpdate
      Src: /src/nss/lib/ssl/tls13con.c:1330,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:1333,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:1337,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 34
    argCount: 3
    argNames:
    - ss
    - b
    - length
    argTypes:
    - sslSocket*
    - PRUint8*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1339
      start: 1291
    functionDepth: 7
    functionLinenumber: 1291
    functionLinenumberEnd: 1339
    functionName: tls13_HandlePostHelloHandshakeMessage
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - tls13_HandleCertificateVerify
    - PORT_Assert
    - tls13_HandleKeyUpdate
    - tls13_HandleEndOfEarlyData
    - SSL_TRC
    - tls13_ClientHandleFinished
    - tls13_HandleCertificateDecode
    - SSL_GETPID
    - tls13_HandleCertificate
    - tls13_HandleNewSessionTicket
    - tls13_ServerHandleFinished
    - FATAL_ERROR
    - tls13_HandleEncryptedExtensions
    - tls13_HandleCertificateRequest
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_HandlePostHelloHandshakeMessage(sslSocket *ss, PRUint8
      *b, PRUint32 length)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:1348,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:1349,1
    - Dst: SSL_ROLE
      Src: /src/nss/lib/ssl/tls13con.c:1349,1
    - Dst: tls13_GetHashForCipherSuite
      Src: /src/nss/lib/ssl/tls13con.c:1352,1
    - Dst: ssl3_GetWrappingKey
      Src: /src/nss/lib/ssl/tls13con.c:1357,1
    - Dst: SECMOD_LookupSlot
      Src: /src/nss/lib/ssl/tls13con.c:1361,1
    - Dst: PK11_GetWrapKey
      Src: /src/nss/lib/ssl/tls13con.c:1366,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/ssl/tls13con.c:1371,1
    - Dst: ssl_unwrapSymKey
      Src: /src/nss/lib/ssl/tls13con.c:1380,1
    - Dst: tls13_GetHashSizeForHash
      Src: /src/nss/lib/ssl/tls13con.c:1382,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/tls13con.c:1384,1
    - Dst: tls13_MakePsk
      Src: /src/nss/lib/ssl/tls13con.c:1388,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/tls13con.c:1390,1
    - Dst: PRINT_KEY
      Src: /src/nss/lib/ssl/tls13con.c:1397,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:1398,1
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/lib/ssl/tls13con.c:1398,1
    - Dst: PR_LIST_HEAD
      Src: /src/nss/lib/ssl/tls13con.c:1399,1
    - Dst: PR_APPEND_LINK
      Src: /src/nss/lib/ssl/tls13con.c:1407,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 2
    argNames:
    - ss
    - sid
    argTypes:
    - sslSocket*
    - sslSessionID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1410
      start: 1341
    functionDepth: 6
    functionLinenumber: 1341
    functionLinenumberEnd: 1410
    functionName: tls13_RecoverWrappedSharedSecret
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 1
    functionsReached:
    - SSL_ROLE
    - PRINT_KEY
    - PORT_Assert
    - SSL_TRC
    - tls13_GetHashForCipherSuite
    - SSL_GETPID
    - SECMOD_LookupSlot
    - tls13_GetHashSizeForHash
    - tls13_MakePsk
    - PK11_GetWrapKey
    - PR_APPEND_LINK
    - ssl3_GetWrappingKey
    - PR_LIST_HEAD
    - ssl_unwrapSymKey
    - PK11_FreeSlot
    - PR_CLIST_IS_EMPTY
    - PK11_FreeSymKey
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_RecoverWrappedSharedSecret(sslSocket *ss, sslSessionID
      *sid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:1470,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:1471,1
    - Dst: SSL_ROLE
      Src: /src/nss/lib/ssl/tls13con.c:1471,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:1473,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:1480,1
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/lib/ssl/tls13con.c:1480,1
    - Dst: PR_LIST_HEAD
      Src: /src/nss/lib/ssl/tls13con.c:1481,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:1483,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:1484,1
    - Dst: tls13_HkdfExtract
      Src: /src/nss/lib/ssl/tls13con.c:1487,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/tls13con.c:1493,1
    - Dst: tls13_DeriveSecretNullHash
      Src: /src/nss/lib/ssl/tls13con.c:1496,1
    - Dst: strlen
      Src: /src/nss/lib/ssl/tls13con.c:1497,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/tls13con.c:1500,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1506
      start: 1465
    functionDepth: 11
    functionLinenumber: 1465
    functionLinenumberEnd: 1506
    functionName: tls13_ComputeEarlySecretsWithPsk
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 1
    functionsReached:
    - tls13_HkdfExtract
    - PORT_Assert
    - SSL_ROLE
    - SSL_TRC
    - tls13_DeriveSecretNullHash
    - SSL_GETPID
    - strlen
    - PR_LIST_HEAD
    - PR_CLIST_IS_EMPTY
    - PK11_FreeSymKey
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_ComputeEarlySecretsWithPsk(sslSocket *ss)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:1513,1
    - Dst: tls13_DeriveSecretWrap
      Src: /src/nss/lib/ssl/tls13con.c:1514,1
    - Dst: sslSocket*::secretCallback
      Src: /src/nss/lib/ssl/tls13con.c:1524,1
    - Dst: tls13_DeriveSecretWrap
      Src: /src/nss/lib/ssl/tls13con.c:1530,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1539
      start: 1509
    functionDepth: 1
    functionLinenumber: 1509
    functionLinenumberEnd: 1539
    functionName: tls13_DeriveEarlySecrets
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - tls13_DeriveSecretWrap
    - sslSocket*::secretCallback
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_DeriveEarlySecrets(sslSocket *ss)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:1547,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:1548,1
    - Dst: SSL_ROLE
      Src: /src/nss/lib/ssl/tls13con.c:1548,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:1552,1
    - Dst: tls13_HkdfExtract
      Src: /src/nss/lib/ssl/tls13con.c:1553,1
    - Dst: tls13_GetHash
      Src: /src/nss/lib/ssl/tls13con.c:1554,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:1559,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:1560,1
    - Dst: tls13_DeriveSecretNullHash
      Src: /src/nss/lib/ssl/tls13con.c:1563,1
    - Dst: strlen
      Src: /src/nss/lib/ssl/tls13con.c:1565,1
    - Dst: tls13_GetHash
      Src: /src/nss/lib/ssl/tls13con.c:1566,1
    - Dst: LOG_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:1568,1
    - Dst: tls13_HkdfExtract
      Src: /src/nss/lib/ssl/tls13con.c:1573,1
    - Dst: tls13_GetHash
      Src: /src/nss/lib/ssl/tls13con.c:1574,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/tls13con.c:1575,1
    - Dst: LOG_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:1577,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/tls13con.c:1581,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1584
      start: 1541
    functionDepth: 11
    functionLinenumber: 1541
    functionLinenumberEnd: 1584
    functionName: tls13_ComputeHandshakeSecret
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - tls13_HkdfExtract
    - PORT_Assert
    - SSL_ROLE
    - LOG_ERROR
    - SSL_TRC
    - tls13_DeriveSecretNullHash
    - SSL_GETPID
    - PK11_FreeSymKey
    - tls13_GetHash
    - strlen
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_ComputeHandshakeSecret(sslSocket *ss)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/tls13con.c:1593,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:1596,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:1597,1
    - Dst: SSL_ROLE
      Src: /src/nss/lib/ssl/tls13con.c:1597,1
    - Dst: tls13_DeriveSecretWrap
      Src: /src/nss/lib/ssl/tls13con.c:1600,1
    - Dst: LOG_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:1606,1
    - Dst: tls13_DeriveSecretWrap
      Src: /src/nss/lib/ssl/tls13con.c:1609,1
    - Dst: LOG_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:1615,1
    - Dst: sslSocket*::secretCallback
      Src: /src/nss/lib/ssl/tls13con.c:1622,1
    - Dst: sslSocket*::secretCallback
      Src: /src/nss/lib/ssl/tls13con.c:1626,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:1631,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:1632,1
    - Dst: SSL_ROLE
      Src: /src/nss/lib/ssl/tls13con.c:1632,1
    - Dst: tls13_DeriveSecretNullHash
      Src: /src/nss/lib/ssl/tls13con.c:1636,1
    - Dst: strlen
      Src: /src/nss/lib/ssl/tls13con.c:1638,1
    - Dst: tls13_GetHash
      Src: /src/nss/lib/ssl/tls13con.c:1639,1
    - Dst: LOG_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:1641,1
    - Dst: tls13_HkdfExtract
      Src: /src/nss/lib/ssl/tls13con.c:1644,1
    - Dst: tls13_GetHash
      Src: /src/nss/lib/ssl/tls13con.c:1646,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/tls13con.c:1648,1
    - Dst: LOG_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:1650,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/tls13con.c:1653,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1657
      start: 1586
    functionDepth: 11
    functionLinenumber: 1586
    functionLinenumberEnd: 1657
    functionName: tls13_ComputeHandshakeSecrets
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - tls13_HkdfExtract
    - SSL_ROLE
    - tls13_DeriveSecretWrap
    - LOG_ERROR
    - SSL_TRC
    - tls13_DeriveSecretNullHash
    - SSL_GETPID
    - strlen
    - sslSocket*::secretCallback
    - tls13_GetHash
    - PK11_FreeSymKey
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_ComputeHandshakeSecrets(sslSocket *ss)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tls13_DeriveSecretWrap
      Src: /src/nss/lib/ssl/tls13con.c:1664,1
    - Dst: tls13_DeriveSecretWrap
      Src: /src/nss/lib/ssl/tls13con.c:1672,1
    - Dst: sslSocket*::secretCallback
      Src: /src/nss/lib/ssl/tls13con.c:1684,1
    - Dst: sslSocket*::secretCallback
      Src: /src/nss/lib/ssl/tls13con.c:1688,1
    - Dst: tls13_DeriveSecretWrap
      Src: /src/nss/lib/ssl/tls13con.c:1693,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1702
      start: 1659
    functionDepth: 1
    functionLinenumber: 1659
    functionLinenumberEnd: 1702
    functionName: tls13_ComputeApplicationSecrets
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - sslSocket*::secretCallback
    - tls13_DeriveSecretWrap
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_ComputeApplicationSecrets(sslSocket *ss)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:1709,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:1710,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:1711,1
    - Dst: tls13_DeriveSecretWrap
      Src: /src/nss/lib/ssl/tls13con.c:1712,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/tls13con.c:1716,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1723
      start: 1704
    functionDepth: 4
    functionLinenumber: 1704
    functionLinenumberEnd: 1723
    functionName: tls13_ComputeFinalSecrets
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - tls13_DeriveSecretWrap
    - PK11_FreeSymKey
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_ComputeFinalSecrets(sslSocket *ss)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_LookupNamedGroup
      Src: /src/nss/lib/ssl/tls13con.c:1734,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ss
    - sid
    argTypes:
    - sslSocket*
    - sslSessionID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1736
      start: 1725
    functionDepth: 1
    functionLinenumber: 1725
    functionLinenumberEnd: 1736
    functionName: tls13_RestoreCipherInfo
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - ssl_LookupNamedGroup
    linkageType: ''
    returnType: void
    signature: void tls13_RestoreCipherInfo(sslSocket *ss, sslSessionID *sid)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:1778,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:1800,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:1801,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/ssl/tls13con.c:1805,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:1810,1
    - Dst: tls13_IsReplay
      Src: /src/nss/lib/ssl/tls13con.c:1814,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 2
    argNames:
    - ss
    - sid
    argTypes:
    - sslSocket*
    - sslSessionID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1819
      start: 1775
    functionDepth: 3
    functionLinenumber: 1775
    functionLinenumberEnd: 1819
    functionName: tls13_CanNegotiateZeroRtt
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - tls13_IsReplay
    - SECITEM_CompareItem
    linkageType: ''
    returnType: PRBool
    signature: PRBool tls13_CanNegotiateZeroRtt(sslSocket *ss, const sslSessionID
      *sid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:1833,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:1834,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:1847,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:1851,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:1852,1
    - Dst: tls13_CanNegotiateZeroRtt
      Src: /src/nss/lib/ssl/tls13con.c:1857,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:1858,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:1858,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:1864,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:1864,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:1865,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 2
    argNames:
    - ss
    - sid
    argTypes:
    - sslSocket*
    - sslSessionID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1870
      start: 1830
    functionDepth: 4
    functionLinenumber: 1830
    functionLinenumberEnd: 1870
    functionName: tls13_NegotiateZeroRtt
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SSL_TRC
    - SSL_GETPID
    - tls13_CanNegotiateZeroRtt
    linkageType: ''
    returnType: void
    signature: void tls13_NegotiateZeroRtt(sslSocket *ss, const sslSessionID *sid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:1880,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:1881,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - offered
    - preferredGroup
    argTypes:
    - sslNamedGroupDef*
    - sslNamedGroupDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1889
      start: 1873
    functionDepth: 0
    functionLinenumber: 1873
    functionLinenumberEnd: 1889
    functionName: tls13_isGroupAcceptable
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: PRBool
    signature: "PRBool tls13_isGroupAcceptable(const sslNamedGroupDef *offered,\n
      \                       const sslNamedGroupDef *preferredGroup)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/tls13con.c:1896,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/tls13con.c:1902,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ss
    - group
    argTypes:
    - sslSocket*
    - sslNamedGroupDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1905
      start: 1893
    functionDepth: 1
    functionLinenumber: 1893
    functionLinenumberEnd: 1905
    functionName: tls13_FindKeyShareEntry
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - PR_NEXT_LINK
    linkageType: ''
    returnType: TLS13KeyShareEntry
    signature: 'TLS13KeyShareEntry *

      tls13_FindKeyShareEntry(sslSocket *ss, const sslNamedGroupDef *group)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_ExtensionNegotiated
      Src: /src/nss/lib/ssl/tls13con.c:1917,1
    - Dst: ssl3_ExtensionNegotiated
      Src: /src/nss/lib/ssl/tls13con.c:1918,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:1919,1
    - Dst: memchr
      Src: /src/nss/lib/ssl/tls13con.c:1926,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:1928,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:1929,1
    - Dst: ssl3_ExtensionNegotiated
      Src: /src/nss/lib/ssl/tls13con.c:1938,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:1939,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:1944,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:1944,1
    - Dst: tls13_FindKeyShareEntry
      Src: /src/nss/lib/ssl/tls13con.c:1961,1
    - Dst: tls13_isGroupAcceptable
      Src: /src/nss/lib/ssl/tls13con.c:1967,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:1987,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:1990,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:1990,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:1996,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 55
    argCount: 3
    argNames:
    - ss
    - requestedGroup
    - clientShare
    argTypes:
    - sslSocket*
    - sslNamedGroupDef**
    - TLS13KeyShareEntry**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2004
      start: 1907
    functionDepth: 2
    functionLinenumber: 1907
    functionLinenumberEnd: 2004
    functionName: tls13_NegotiateKeyExchange
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - memchr
    - ssl3_ExtensionNegotiated
    - SSL_TRC
    - SSL_GETPID
    - FATAL_ERROR
    - tls13_isGroupAcceptable
    - tls13_FindKeyShareEntry
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_NegotiateKeyExchange(sslSocket *ss,\n                           const
      sslNamedGroupDef **requestedGroup,\n                           TLS13KeyShareEntry
      **clientShare)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_ExtensionNegotiated
      Src: /src/nss/lib/ssl/tls13con.c:2012,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:2013,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/tls13con.c:2024,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/tls13con.c:2026,1
    - Dst: SSL_CERT_IS_ONLY
      Src: /src/nss/lib/ssl/tls13con.c:2029,1
    - Dst: ssl_PickSignatureScheme
      Src: /src/nss/lib/ssl/tls13con.c:2033,1
    - Dst: tls13_MaybeSetDelegatedCredential
      Src: /src/nss/lib/ssl/tls13con.c:2053,1
    - Dst: ssl_SignatureSchemeToAuthType
      Src: /src/nss/lib/ssl/tls13con.c:2059,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:2065,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2068
      start: 2006
    functionDepth: 2
    functionLinenumber: 2006
    functionLinenumberEnd: 2068
    functionName: tls13_SelectServerCert
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - ssl3_ExtensionNegotiated
    - PR_NEXT_LINK
    - ssl_PickSignatureScheme
    - SSL_CERT_IS_ONLY
    - FATAL_ERROR
    - tls13_MaybeSetDelegatedCredential
    - ssl_SignatureSchemeToAuthType
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_SelectServerCert(sslSocket *ss)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sslSocket*::hrrCallback
      Src: /src/nss/lib/ssl/tls13con.c:2081,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/tls13con.c:2091,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:2092,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/tls13con.c:2097,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:2098,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/tls13con.c:2103,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:2104,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:2109,1
    - Dst: tls13_SendHelloRetryRequest
      Src: /src/nss/lib/ssl/tls13con.c:2122,1
    - Dst: PK11_HPKE_DestroyContext
      Src: /src/nss/lib/ssl/tls13con.c:2129,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 3
    argNames:
    - ss
    - requestedGroup
    - hrrSent
    argTypes:
    - sslSocket*
    - sslNamedGroupDef*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2134
      start: 2071
    functionDepth: 2
    functionLinenumber: 2071
    functionLinenumberEnd: 2134
    functionName: tls13_MaybeSendHelloRetry
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - SSL3_SendAlert
    - PK11_HPKE_DestroyContext
    - PORT_SetError
    - FATAL_ERROR
    - tls13_SendHelloRetryRequest
    - sslSocket*::hrrCallback
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_MaybeSendHelloRetry(sslSocket *ss, const sslNamedGroupDef
      *requestedGroup,\n                          PRBool *hrrSent)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:2140,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:2141,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:2152,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:2153,1
    - Dst: tls13_DestroyPskList
      Src: /src/nss/lib/ssl/tls13con.c:2163,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:2167,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:2168,1
    - Dst: tls13_SelectServerCert
      Src: /src/nss/lib/ssl/tls13con.c:2169,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2174
      start: 2136
    functionDepth: 3
    functionLinenumber: 2136
    functionLinenumberEnd: 2174
    functionName: tls13_NegotiateAuthentication
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - SSL_TRC
    - tls13_SelectServerCert
    - SSL_GETPID
    - tls13_DestroyPskList
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_NegotiateAuthentication(sslSocket *ss)
  - BBCount: 47
    BranchProfiles: []
    Callsites:
    - Dst: SSL_GetStatistics
      Src: /src/nss/lib/ssl/tls13con.c:2186,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:2197,1
    - Dst: ssl3_ExtensionNegotiated
      Src: /src/nss/lib/ssl/tls13con.c:2203,1
    - Dst: ssl3_NegotiateCipherSuite
      Src: /src/nss/lib/ssl/tls13con.c:2208,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:2210,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/tls13con.c:2210,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/tls13con.c:2220,1
    - Dst: ssl_GetSpecWriteLock
      Src: /src/nss/lib/ssl/tls13con.c:2224,1
    - Dst: ssl_ReleaseSpecWriteLock
      Src: /src/nss/lib/ssl/tls13con.c:2228,1
    - Dst: ssl3_ExtensionNegotiated
      Src: /src/nss/lib/ssl/tls13con.c:2231,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:2233,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/tls13con.c:2237,1
    - Dst: tls13_HandleHrrCookie
      Src: /src/nss/lib/ssl/tls13con.c:2240,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:2247,1
    - Dst: ssl_HashHandshakeMessage
      Src: /src/nss/lib/ssl/tls13con.c:2253,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:2255,1
    - Dst: ssl3_ServerCallSNICallback
      Src: /src/nss/lib/ssl/tls13con.c:2265,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:2272,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:2274,1
    - Dst: tls13_CanResume
      Src: /src/nss/lib/ssl/tls13con.c:2277,1
    - Dst: tls13_NegotiateKeyExchange
      Src: /src/nss/lib/ssl/tls13con.c:2283,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:2288,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:2293,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:2295,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:2300,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:2307,1
    - Dst: PR_PREV_LINK
      Src: /src/nss/lib/ssl/tls13con.c:2315,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/tls13con.c:2316,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:2317,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:2322,1
    - Dst: tls13_MaybeSendHelloRetry
      Src: /src/nss/lib/ssl/tls13con.c:2329,1
    - Dst: ssl_UncacheSessionID
      Src: /src/nss/lib/ssl/tls13con.c:2335,1
    - Dst: ssl_FreeSID
      Src: /src/nss/lib/ssl/tls13con.c:2336,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:2338,1
    - Dst: tls13_NegotiateAuthentication
      Src: /src/nss/lib/ssl/tls13con.c:2343,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:2351,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/ssl/tls13con.c:2353,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:2355,1
    - Dst: ssl_FindServerCert
      Src: /src/nss/lib/ssl/tls13con.c:2360,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:2362,1
    - Dst: tls13_RecoverWrappedSharedSecret
      Src: /src/nss/lib/ssl/tls13con.c:2364,1
    - Dst: SSL_AtomicIncrementLong
      Src: /src/nss/lib/ssl/tls13con.c:2366,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:2367,1
    - Dst: tls13_RestoreCipherInfo
      Src: /src/nss/lib/ssl/tls13con.c:2370,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:2372,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/ssl/tls13con.c:2373,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/ssl/tls13con.c:2375,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:2379,1
    - Dst: ssl_UncacheSessionID
      Src: /src/nss/lib/ssl/tls13con.c:2380,1
    - Dst: ssl_FreeSID
      Src: /src/nss/lib/ssl/tls13con.c:2381,1
    - Dst: ssl3_RegisterExtensionSender
      Src: /src/nss/lib/ssl/tls13con.c:2384,1
    - Dst: tls13_NegotiateZeroRtt
      Src: /src/nss/lib/ssl/tls13con.c:2387,1
    - Dst: tls13_ComputeEarlySecretsWithPsk
      Src: /src/nss/lib/ssl/tls13con.c:2389,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:2391,1
    - Dst: SSL_AtomicIncrementLong
      Src: /src/nss/lib/ssl/tls13con.c:2396,1
    - Dst: ssl_UncacheSessionID
      Src: /src/nss/lib/ssl/tls13con.c:2397,1
    - Dst: ssl_FreeSID
      Src: /src/nss/lib/ssl/tls13con.c:2398,1
    - Dst: tls13_NegotiateZeroRtt
      Src: /src/nss/lib/ssl/tls13con.c:2401,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:2405,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:2406,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:2412,1
    - Dst: tls13_ComputePskBinderHash
      Src: /src/nss/lib/ssl/tls13con.c:2413,1
    - Dst: tls13_GetHash
      Src: /src/nss/lib/ssl/tls13con.c:2417,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:2419,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:2423,1
    - Dst: tls13_GetHash
      Src: /src/nss/lib/ssl/tls13con.c:2423,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:2424,1
    - Dst: tls13_VerifyFinished
      Src: /src/nss/lib/ssl/tls13con.c:2425,1
    - Dst: ssl3_InitHandshakeHashes
      Src: /src/nss/lib/ssl/tls13con.c:2436,1
    - Dst: tls13_HandleClientKeyShare
      Src: /src/nss/lib/ssl/tls13con.c:2444,1
    - Dst: SSL_AtomicIncrementLong
      Src: /src/nss/lib/ssl/tls13con.c:2451,1
    - Dst: SSL_AtomicIncrementLong
      Src: /src/nss/lib/ssl/tls13con.c:2452,1
    - Dst: SSL_AtomicIncrementLong
      Src: /src/nss/lib/ssl/tls13con.c:2456,1
    - Dst: ssl_UncacheSessionID
      Src: /src/nss/lib/ssl/tls13con.c:2457,1
    - Dst: ssl_FreeSID
      Src: /src/nss/lib/ssl/tls13con.c:2458,1
    - Dst: SSL_AtomicIncrementLong
      Src: /src/nss/lib/ssl/tls13con.c:2460,1
    - Dst: ssl3_NewSessionID
      Src: /src/nss/lib/ssl/tls13con.c:2463,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:2465,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/tls13con.c:2465,1
    - Dst: tls13_DeriveEarlySecrets
      Src: /src/nss/lib/ssl/tls13con.c:2474,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:2476,1
    - Dst: ssl_GetXmitBufLock
      Src: /src/nss/lib/ssl/tls13con.c:2481,1
    - Dst: tls13_SendServerHelloSequence
      Src: /src/nss/lib/ssl/tls13con.c:2482,1
    - Dst: ssl_ReleaseXmitBufLock
      Src: /src/nss/lib/ssl/tls13con.c:2483,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:2485,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/tls13con.c:2485,1
    - Dst: tls13_DestroyPskList
      Src: /src/nss/lib/ssl/tls13con.c:2490,1
    - Dst: ssl_UncacheSessionID
      Src: /src/nss/lib/ssl/tls13con.c:2497,1
    - Dst: ssl_FreeSID
      Src: /src/nss/lib/ssl/tls13con.c:2498,1
    CyclomaticComplexity: 70
    EdgeCount: 70
    ICount: 234
    argCount: 5
    argNames:
    - ss
    - suites
    - sid
    - msg
    - len
    argTypes:
    - sslSocket*
    - SECItem*
    - sslSessionID*
    - PRUint8*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2501
      start: 2178
    functionDepth: 13
    functionLinenumber: 2178
    functionLinenumberEnd: 2501
    functionName: tls13_HandleClientHelloPart2
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - SECITEM_CompareItem
    - tls13_CanResume
    - tls13_NegotiateAuthentication
    - ssl3_ExtensionNegotiated
    - tls13_ComputeEarlySecretsWithPsk
    - CERT_DupCertificate
    - tls13_HandleClientKeyShare
    - ssl3_NewSessionID
    - tls13_NegotiateZeroRtt
    - tls13_GetHash
    - tls13_MaybeSendHelloRetry
    - SSL_GetStatistics
    - tls13_RestoreCipherInfo
    - ssl_FreeSID
    - tls13_DestroyPskList
    - ssl_ReleaseXmitBufLock
    - FATAL_ERROR
    - tls13_SendServerHelloSequence
    - ssl_FindServerCert
    - ssl3_NegotiateCipherSuite
    - ssl3_InitHandshakeHashes
    - PR_PREV_LINK
    - IS_DTLS
    - PORT_Assert
    - tls13_HandleHrrCookie
    - tls13_DeriveEarlySecrets
    - ssl_GetXmitBufLock
    - ssl_GetSpecWriteLock
    - tls13_NegotiateKeyExchange
    - ssl_HashHandshakeMessage
    - PRINT_BUF
    - tls13_ComputePskBinderHash
    - tls13_VerifyFinished
    - SSL_AtomicIncrementLong
    - tls13_RecoverWrappedSharedSecret
    - ssl3_RegisterExtensionSender
    - ssl_UncacheSessionID
    - PORT_GetError
    - PR_NEXT_LINK
    - ssl3_ServerCallSNICallback
    - ssl_ReleaseSpecWriteLock
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_HandleClientHelloPart2(sslSocket *ss,\n                             const
      SECItem *suites,\n                             sslSessionID *sid,\n                             const
      PRUint8 *msg,\n                             unsigned int len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/tls13con.c:2507,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - fd
    - cb
    - arg
    argTypes:
    - PRFileDesc*
    - SSLHelloRetryRequestCallback
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2515
      start: 2503
    functionDepth: 2
    functionLinenumber: 2503
    functionLinenumberEnd: 2515
    functionName: SSLExp_HelloRetryRequestCallback
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - ssl_FindSocket
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSLExp_HelloRetryRequestCallback(PRFileDesc *fd,\n                                 SSLHelloRetryRequestCallback
      cb, void *arg)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:2538,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:2549,1
    - Dst: sslBuffer_Append
      Src: /src/nss/lib/ssl/tls13con.c:2550,1
    - Dst: ssl_ConstructExtensions
      Src: /src/nss/lib/ssl/tls13con.c:2557,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/tls13con.c:2561,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:2567,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/tls13con.c:2567,1
    - Dst: ssl_ConstructServerHello
      Src: /src/nss/lib/ssl/tls13con.c:2573,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/tls13con.c:2577,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/tls13con.c:2581,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/tls13con.c:2582,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 7
    argNames:
    - ss
    - cipherSuite
    - selectedGroup
    - cookie
    - cookieLen
    - cookieGreaseEchSignal
    - buffer
    argTypes:
    - sslSocket*
    - ssl3CipherSuite
    - sslNamedGroupDef*
    - PRUint8*
    - unsigned int
    - PRUint8*
    - sslBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2584
      start: 2528
    functionDepth: 3
    functionLinenumber: 2528
    functionLinenumberEnd: 2584
    functionName: tls13_ConstructHelloRetryRequest
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - SSL_BUFFER_LEN
    - ssl_ConstructServerHello
    - ssl_ConstructExtensions
    - sslBuffer_Clear
    - sslBuffer_Append
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_ConstructHelloRetryRequest(sslSocket *ss,\n                                 ssl3CipherSuite
      cipherSuite,\n                                 const sslNamedGroupDef *selectedGroup,\n
      \                                PRUint8 *cookie, unsigned int cookieLen,\n
      \                                const PRUint8 *cookieGreaseEchSignal,\n                                 sslBuffer
      *buffer)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:2596,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:2597,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:2599,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/tls13con.c:2599,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/lib/ssl/tls13con.c:2618,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:2622,1
    - Dst: sslBuffer_Append
      Src: /src/nss/lib/ssl/tls13con.c:2625,1
    - Dst: tls13_MakeHrrCookie
      Src: /src/nss/lib/ssl/tls13con.c:2634,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:2638,1
    - Dst: tls13_ConstructHelloRetryRequest
      Src: /src/nss/lib/ssl/tls13con.c:2643,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:2648,1
    - Dst: ssl_GetXmitBufLock
      Src: /src/nss/lib/ssl/tls13con.c:2653,1
    - Dst: ssl3_AppendHandshakeHeader
      Src: /src/nss/lib/ssl/tls13con.c:2654,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/tls13con.c:2655,1
    - Dst: ssl3_AppendBufferToHandshake
      Src: /src/nss/lib/ssl/tls13con.c:2659,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/tls13con.c:2663,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:2668,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/tls13con.c:2668,1
    - Dst: ssl3_SendChangeCipherSpecsInt
      Src: /src/nss/lib/ssl/tls13con.c:2669,1
    - Dst: ssl_SendSavedWriteData
      Src: /src/nss/lib/ssl/tls13con.c:2675,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/tls13con.c:2676,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:2677,1
    - Dst: ssl3_FlushHandshake
      Src: /src/nss/lib/ssl/tls13con.c:2681,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:2688,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/tls13con.c:2688,1
    - Dst: ssl_ReleaseXmitBufLock
      Src: /src/nss/lib/ssl/tls13con.c:2690,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/tls13con.c:2703,1
    - Dst: ssl_ReleaseXmitBufLock
      Src: /src/nss/lib/ssl/tls13con.c:2704,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 72
    argCount: 4
    argNames:
    - ss
    - requestedGroup
    - appToken
    - appTokenLen
    argTypes:
    - sslSocket*
    - sslNamedGroupDef*
    - PRUint8*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2706
      start: 2586
    functionDepth: 9
    functionLinenumber: 2586
    functionLinenumberEnd: 2706
    functionName: tls13_SendHelloRetryRequest
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 1
    functionsReached:
    - sslBuffer_Append
    - SSL_BUFFER_LEN
    - ssl_ReleaseXmitBufLock
    - FATAL_ERROR
    - PORT_SetError
    - ssl3_FlushHandshake
    - ssl3_AppendBufferToHandshake
    - tls13_ConstructHelloRetryRequest
    - IS_DTLS
    - PORT_Assert
    - ssl_GetXmitBufLock
    - ssl_HaveSSL3HandshakeLock
    - ssl_SendSavedWriteData
    - ssl3_AppendHandshakeHeader
    - sslBuffer_Clear
    - SSL_TRC
    - SSL_GETPID
    - PORT_GetError
    - PK11_GenerateRandom
    - tls13_MakeHrrCookie
    - ssl3_SendChangeCipherSpecsInt
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_SendHelloRetryRequest(sslSocket *ss,\n                            const
      sslNamedGroupDef *requestedGroup,\n                            const PRUint8
      *appToken, unsigned int appTokenLen)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:2722,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:2723,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:2725,1
    - Dst: ssl_HaveRecvBufLock
      Src: /src/nss/lib/ssl/tls13con.c:2725,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:2726,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/tls13con.c:2726,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:2727,1
    - Dst: tls13_SetKeyExchangeType
      Src: /src/nss/lib/ssl/tls13con.c:2729,1
    - Dst: tls13_AddKeyShare
      Src: /src/nss/lib/ssl/tls13con.c:2732,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:2738,1
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/lib/ssl/tls13con.c:2738,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:2739,1
    - Dst: PR_PREV_LINK
      Src: /src/nss/lib/ssl/tls13con.c:2739,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/tls13con.c:2740,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/tls13con.c:2742,1
    - Dst: SECKEY_PublicKeyStrengthInBits
      Src: /src/nss/lib/ssl/tls13con.c:2743,1
    - Dst: ssl3_RegisterExtensionSender
      Src: /src/nss/lib/ssl/tls13con.c:2746,1
    - Dst: tls13_HandleKeyShare
      Src: /src/nss/lib/ssl/tls13con.c:2752,1
    - Dst: tls13_GetHash
      Src: /src/nss/lib/ssl/tls13con.c:2753,1
    - Dst: tls13_HandleKEMKey
      Src: /src/nss/lib/ssl/tls13con.c:2760,1
    - Dst: PK11_ConcatSymKeys
      Src: /src/nss/lib/ssl/tls13con.c:2766,1
    - Dst: PK11_ConcatSymKeys
      Src: /src/nss/lib/ssl/tls13con.c:2769,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:2772,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:2773,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/tls13con.c:2781,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/tls13con.c:2782,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/tls13con.c:2790,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/tls13con.c:2791,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/tls13con.c:2792,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:2793,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/tls13con.c:2793,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 60
    argCount: 2
    argNames:
    - ss
    - peerShare
    argTypes:
    - sslSocket*
    - TLS13KeyShareEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2795
      start: 2713
    functionDepth: 13
    functionLinenumber: 2713
    functionLinenumberEnd: 2795
    functionName: tls13_HandleClientKeyShare
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 1
    functionsReached:
    - tls13_HandleKEMKey
    - SECKEY_PublicKeyStrengthInBits
    - tls13_GetHash
    - PORT_SetError
    - FATAL_ERROR
    - tls13_AddKeyShare
    - tls13_HandleKeyShare
    - PK11_ConcatSymKeys
    - PK11_FreeSymKey
    - SECITEM_FreeItem
    - PR_CLIST_IS_EMPTY
    - PR_PREV_LINK
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    - ssl_HaveRecvBufLock
    - tls13_SetKeyExchangeType
    - SSL_TRC
    - SSL_GETPID
    - PR_NEXT_LINK
    - PORT_GetError
    - ssl3_RegisterExtensionSender
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_HandleClientKeyShare(sslSocket *ss, TLS13KeyShareEntry
      *peerShare)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:2822,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:2823,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:2826,1
    - Dst: PK11_CloneContext
      Src: /src/nss/lib/ssl/tls13con.c:2827,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/tls13con.c:2829,1
    - Dst: ssl_ConstructExtensions
      Src: /src/nss/lib/ssl/tls13con.c:2834,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:2839,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/tls13con.c:2839,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/lib/ssl/tls13con.c:2846,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/tls13con.c:2851,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/ssl/tls13con.c:2852,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:2854,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/tls13con.c:2858,1
    - Dst: ssl3_AppendHandshakeHeader
      Src: /src/nss/lib/ssl/tls13con.c:2861,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/tls13con.c:2865,1
    - Dst: ssl3_AppendHandshakeVariable
      Src: /src/nss/lib/ssl/tls13con.c:2871,1
    - Dst: ssl3_AppendBufferToHandshakeVariable
      Src: /src/nss/lib/ssl/tls13con.c:2877,1
    - Dst: ssl3_UpdatePostHandshakeHashes
      Src: /src/nss/lib/ssl/tls13con.c:2883,1
    - Dst: SSL_BUFFER_BASE
      Src: /src/nss/lib/ssl/tls13con.c:2884,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/tls13con.c:2885,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/tls13con.c:2891,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/tls13con.c:2895,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 58
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2897
      start: 2815
    functionDepth: 9
    functionLinenumber: 2815
    functionLinenumberEnd: 2897
    functionName: tls13_SendCertificateRequest
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 1
    functionsReached:
    - PK11_CloneContext
    - PORT_Assert
    - SSL_BUFFER_LEN
    - ssl3_AppendBufferToHandshakeVariable
    - SSL_BUFFER_BASE
    - ssl_ConstructExtensions
    - SSL_TRC
    - SSL_GETPID
    - SECITEM_CopyItem
    - ssl3_UpdatePostHandshakeHashes
    - FATAL_ERROR
    - ssl3_AppendHandshakeHeader
    - ssl_MapLowLevelError
    - PK11_GenerateRandom
    - ssl3_AppendHandshakeVariable
    - sslBuffer_Clear
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_SendCertificateRequest(sslSocket *ss)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: tls13_ComputeHash
      Src: /src/nss/lib/ssl/tls13con.c:2919,1
    - Dst: tls13_GetHash
      Src: /src/nss/lib/ssl/tls13con.c:2922,1
    - Dst: tls13_ComputeHash
      Src: /src/nss/lib/ssl/tls13con.c:2928,1
    - Dst: tls13_GetHash
      Src: /src/nss/lib/ssl/tls13con.c:2931,1
    - Dst: ssl3_RestartHandshakeHashes
      Src: /src/nss/lib/ssl/tls13con.c:2937,1
    - Dst: ssl_HashHandshakeMessageDefault
      Src: /src/nss/lib/ssl/tls13con.c:2941,1
    - Dst: ssl_HashHandshakeMessageEchInner
      Src: /src/nss/lib/ssl/tls13con.c:2948,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2957
      start: 2911
    functionDepth: 11
    functionLinenumber: 2911
    functionLinenumberEnd: 2957
    functionName: tls13_ReinjectHandshakeTranscript
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - ssl_HashHandshakeMessageDefault
    - ssl_HashHandshakeMessageEchInner
    - tls13_ComputeHash
    - ssl3_RestartHandshakeHashes
    - tls13_GetHash
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_ReinjectHandshakeTranscript(sslSocket *ss)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/tls13con.c:2963,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/tls13con.c:2963,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - list
    argTypes:
    - PRCList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2967
      start: 2958
    functionDepth: 1
    functionLinenumber: 2958
    functionLinenumberEnd: 2967
    functionName: ssl_ListCount
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - PR_NEXT_LINK
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int ssl_ListCount(PRCList *list)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:2987,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:2988,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:2990,1
    - Dst: ssl_HaveRecvBufLock
      Src: /src/nss/lib/ssl/tls13con.c:2990,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:2991,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/tls13con.c:2991,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:2994,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:2998,1
    - Dst: ssl_GetSpecWriteLock
      Src: /src/nss/lib/ssl/tls13con.c:3003,1
    - Dst: ssl_CipherSpecRelease
      Src: /src/nss/lib/ssl/tls13con.c:3004,1
    - Dst: ssl_FindCipherSpecByEpoch
      Src: /src/nss/lib/ssl/tls13con.c:3005,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:3007,1
    - Dst: ssl_ReleaseSpecWriteLock
      Src: /src/nss/lib/ssl/tls13con.c:3008,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:3010,1
    - Dst: tls13_SetSpecRecordVersion
      Src: /src/nss/lib/ssl/tls13con.c:3013,1
    - Dst: ssl_ListCount
      Src: /src/nss/lib/ssl/tls13con.c:3025,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:3026,1
    - Dst: ssl3_HandleParsedExtensions
      Src: /src/nss/lib/ssl/tls13con.c:3031,1
    - Dst: ssl3_DestroyRemoteExtensions
      Src: /src/nss/lib/ssl/tls13con.c:3032,1
    - Dst: tls13_MaybeHandleEchSignal
      Src: /src/nss/lib/ssl/tls13con.c:3036,1
    - Dst: tls13_ReinjectHandshakeTranscript
      Src: /src/nss/lib/ssl/tls13con.c:3041,1
    - Dst: ssl_HashHandshakeMessage
      Src: /src/nss/lib/ssl/tls13con.c:3046,1
    - Dst: ssl_GetXmitBufLock
      Src: /src/nss/lib/ssl/tls13con.c:3052,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/tls13con.c:3053,1
    - Dst: ssl3_SendChangeCipherSpecsInt
      Src: /src/nss/lib/ssl/tls13con.c:3055,1
    - Dst: ssl3_SendClientHello
      Src: /src/nss/lib/ssl/tls13con.c:3061,1
    - Dst: ssl_ReleaseXmitBufLock
      Src: /src/nss/lib/ssl/tls13con.c:3066,1
    - Dst: ssl_ReleaseXmitBufLock
      Src: /src/nss/lib/ssl/tls13con.c:3070,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 64
    argCount: 3
    argNames:
    - ss
    - savedMsg
    - savedLength
    argTypes:
    - sslSocket*
    - PRUint8*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3072
      start: 2981
    functionDepth: 12
    functionLinenumber: 2981
    functionLinenumberEnd: 3072
    functionName: tls13_HandleHelloRetryRequest
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - ssl3_SendClientHello
    - ssl_ListCount
    - tls13_MaybeHandleEchSignal
    - ssl_CipherSpecRelease
    - ssl_ReleaseXmitBufLock
    - FATAL_ERROR
    - ssl3_HandleParsedExtensions
    - IS_DTLS
    - PORT_Assert
    - ssl_GetXmitBufLock
    - ssl_HaveSSL3HandshakeLock
    - ssl_GetSpecWriteLock
    - tls13_ReinjectHandshakeTranscript
    - ssl_HashHandshakeMessage
    - ssl3_DestroyRemoteExtensions
    - ssl_FindCipherSpecByEpoch
    - ssl_HaveRecvBufLock
    - SSL_TRC
    - SSL_GETPID
    - tls13_SetSpecRecordVersion
    - ssl3_SendChangeCipherSpecsInt
    - ssl_ReleaseSpecWriteLock
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_HandleHelloRetryRequest(sslSocket *ss, const PRUint8
      *savedMsg,\n                              PRUint32 savedLength)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PR_NOT_REACHED
      Src: /src/nss/lib/ssl/tls13con.c:3079,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:3080,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:3085,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:3087,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:3089,1
    - Dst: ssl_GetXmitBufLock
      Src: /src/nss/lib/ssl/tls13con.c:3093,1
    - Dst: tls13_SendClientSecondFlight
      Src: /src/nss/lib/ssl/tls13con.c:3094,1
    - Dst: ssl_ReleaseXmitBufLock
      Src: /src/nss/lib/ssl/tls13con.c:3095,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:3096,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:3097,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/ssl/tls13con.c:3098,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3104
      start: 3074
    functionDepth: 5
    functionLinenumber: 3074
    functionLinenumberEnd: 3104
    functionName: tls13_SendPostHandshakeCertificate
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - ssl_GetXmitBufLock
    - PORT_Assert
    - PK11_DestroyContext
    - PR_NOT_REACHED
    - SSL_TRC
    - SSL_GETPID
    - ssl_ReleaseXmitBufLock
    - PORT_SetError
    - tls13_SendClientSecondFlight
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_SendPostHandshakeCertificate(sslSocket *ss)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:3113,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:3114,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:3116,1
    - Dst: ssl_HaveRecvBufLock
      Src: /src/nss/lib/ssl/tls13con.c:3116,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:3117,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/tls13con.c:3117,1
    - Dst: TLS13_CHECK_HS_STATE
      Src: /src/nss/lib/ssl/tls13con.c:3121,1
    - Dst: TLS13_CHECK_HS_STATE
      Src: /src/nss/lib/ssl/tls13con.c:3124,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:3133,1
    - Dst: tls13_IsPostHandshake
      Src: /src/nss/lib/ssl/tls13con.c:3137,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:3138,1
    - Dst: PK11_CloneContext
      Src: /src/nss/lib/ssl/tls13con.c:3139,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/tls13con.c:3141,1
    - Dst: ssl_HashPostHandshakeMessage
      Src: /src/nss/lib/ssl/tls13con.c:3144,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:3146,1
    - Dst: CERT_DestroyCertificateList
      Src: /src/nss/lib/ssl/tls13con.c:3152,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/ssl/tls13con.c:3156,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/lib/ssl/tls13con.c:3160,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/tls13con.c:3164,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/tls13con.c:3168,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:3171,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:3172,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:3173,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:3174,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:3175,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:3176,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:3177,1
    - Dst: ssl3_ConsumeHandshakeVariable
      Src: /src/nss/lib/ssl/tls13con.c:3180,1
    - Dst: tls13_IsPostHandshake
      Src: /src/nss/lib/ssl/tls13con.c:3187,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:3188,1
    - Dst: ssl3_ConsumeHandshakeVariable
      Src: /src/nss/lib/ssl/tls13con.c:3192,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:3198,1
    - Dst: ssl3_HandleExtensions
      Src: /src/nss/lib/ssl/tls13con.c:3203,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:3210,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/ssl/tls13con.c:3215,1
    - Dst: ssl3_BeginHandleCertificateRequest
      Src: /src/nss/lib/ssl/tls13con.c:3225,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:3229,1
    - Dst: tls13_SendPostHandshakeCertificate
      Src: /src/nss/lib/ssl/tls13con.c:3232,1
    - Dst: TLS13_SET_HS_STATE
      Src: /src/nss/lib/ssl/tls13con.c:3237,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 99
    argCount: 3
    argNames:
    - ss
    - b
    - length
    argTypes:
    - sslSocket*
    - PRUint8*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3240
      start: 3106
    functionDepth: 8
    functionLinenumber: 3106
    functionLinenumberEnd: 3240
    functionName: tls13_HandleCertificateRequest
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 1
    functionsReached:
    - ssl3_HandleExtensions
    - tls13_IsPostHandshake
    - CERT_DestroyCertificateList
    - ssl3_BeginHandleCertificateRequest
    - TLS13_CHECK_HS_STATE
    - ssl_HashPostHandshakeMessage
    - FATAL_ERROR
    - SECITEM_FreeItem
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    - ssl_MapLowLevelError
    - CERT_DestroyCertificate
    - ssl_HaveRecvBufLock
    - TLS13_SET_HS_STATE
    - PK11_CloneContext
    - PORT_Free
    - SSL_TRC
    - ssl3_ConsumeHandshakeVariable
    - SSL_GETPID
    - SECITEM_CopyItem
    - tls13_SendPostHandshakeCertificate
    - SECKEY_DestroyPrivateKey
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_HandleCertificateRequest(sslSocket *ss, PRUint8 *b,
      PRUint32 length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3249
      start: 3242
    functionDepth: 0
    functionLinenumber: 3242
    functionLinenumberEnd: 3249
    functionName: tls13_ShouldRequestClientAuth
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool tls13_ShouldRequestClientAuth(sslSocket *ss)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: tls13_ComputeHandshakeSecrets
      Src: /src/nss/lib/ssl/tls13con.c:3256,1
    - Dst: tls13_SetCipherSpec
      Src: /src/nss/lib/ssl/tls13con.c:3261,1
    - Dst: LOG_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:3264,1
    - Dst: ssl3_RegisterExtensionSender
      Src: /src/nss/lib/ssl/tls13con.c:3269,1
    - Dst: tls13_SendEncryptedExtensions
      Src: /src/nss/lib/ssl/tls13con.c:3277,1
    - Dst: tls13_ShouldRequestClientAuth
      Src: /src/nss/lib/ssl/tls13con.c:3282,1
    - Dst: tls13_SendCertificateRequest
      Src: /src/nss/lib/ssl/tls13con.c:3283,1
    - Dst: tls13_SendCertificate
      Src: /src/nss/lib/ssl/tls13con.c:3291,1
    - Dst: tls13_IsSigningWithDelegatedCredential
      Src: /src/nss/lib/ssl/tls13con.c:3296,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:3297,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:3298,1
    - Dst: tls13_SendCertificateVerify
      Src: /src/nss/lib/ssl/tls13con.c:3304,1
    - Dst: tls13_SendFinished
      Src: /src/nss/lib/ssl/tls13con.c:3310,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 47
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3316
      start: 3251
    functionDepth: 12
    functionLinenumber: 3251
    functionLinenumberEnd: 3316
    functionName: tls13_SendEncryptedServerSequence
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - tls13_SendFinished
    - LOG_ERROR
    - tls13_SendEncryptedExtensions
    - tls13_ComputeHandshakeSecrets
    - tls13_SendCertificateVerify
    - SSL_TRC
    - SSL_GETPID
    - tls13_SendCertificateRequest
    - tls13_IsSigningWithDelegatedCredential
    - tls13_SendCertificate
    - tls13_ShouldRequestClientAuth
    - tls13_SetCipherSpec
    - ssl3_RegisterExtensionSender
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_SendEncryptedServerSequence(sslSocket *ss)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:3325,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:3326,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:3328,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/tls13con.c:3328,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:3329,1
    - Dst: ssl_HaveXmitBufLock
      Src: /src/nss/lib/ssl/tls13con.c:3329,1
    - Dst: ssl3_RegisterExtensionSender
      Src: /src/nss/lib/ssl/tls13con.c:3331,1
    - Dst: tls13_ComputeHandshakeSecret
      Src: /src/nss/lib/ssl/tls13con.c:3338,1
    - Dst: ssl3_SendServerHello
      Src: /src/nss/lib/ssl/tls13con.c:3343,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:3349,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/tls13con.c:3349,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/tls13con.c:3350,1
    - Dst: ssl3_SendChangeCipherSpecsInt
      Src: /src/nss/lib/ssl/tls13con.c:3352,1
    - Dst: tls13_SendEncryptedServerSequence
      Src: /src/nss/lib/ssl/tls13con.c:3359,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/tls13con.c:3361,1
    - Dst: ssl3_FlushHandshake
      Src: /src/nss/lib/ssl/tls13con.c:3367,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:3370,1
    - Dst: tls13_ComputeApplicationSecrets
      Src: /src/nss/lib/ssl/tls13con.c:3377,1
    - Dst: LOG_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:3379,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/tls13con.c:3379,1
    - Dst: tls13_SetCipherSpec
      Src: /src/nss/lib/ssl/tls13con.c:3383,1
    - Dst: LOG_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:3386,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/tls13con.c:3390,1
    - Dst: ssl_CipherSpecAddRef
      Src: /src/nss/lib/ssl/tls13con.c:3392,1
    - Dst: tls13_SetCipherSpec
      Src: /src/nss/lib/ssl/tls13con.c:3395,1
    - Dst: LOG_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:3398,1
    - Dst: TLS13_SET_HS_STATE
      Src: /src/nss/lib/ssl/tls13con.c:3401,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:3403,1
    - Dst: tls13_SetCipherSpec
      Src: /src/nss/lib/ssl/tls13con.c:3406,1
    - Dst: LOG_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:3410,1
    - Dst: tls13_ShouldRequestClientAuth
      Src: /src/nss/lib/ssl/tls13con.c:3413,1
    - Dst: TLS13_SET_HS_STATE
      Src: /src/nss/lib/ssl/tls13con.c:3414,1
    - Dst: TLS13_SET_HS_STATE
      Src: /src/nss/lib/ssl/tls13con.c:3416,1
    - Dst: ssl_Time
      Src: /src/nss/lib/ssl/tls13con.c:3422,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 72
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3424
      start: 3319
    functionDepth: 13
    functionLinenumber: 3319
    functionLinenumberEnd: 3424
    functionName: tls13_SendServerHelloSequence
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 1
    functionsReached:
    - LOG_ERROR
    - tls13_ComputeApplicationSecrets
    - ssl_CipherSpecAddRef
    - PORT_SetError
    - tls13_SendEncryptedServerSequence
    - ssl3_FlushHandshake
    - tls13_SetCipherSpec
    - SECITEM_FreeItem
    - IS_DTLS
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    - ssl_Time
    - ssl3_SendServerHello
    - TLS13_SET_HS_STATE
    - tls13_ComputeHandshakeSecret
    - tls13_ShouldRequestClientAuth
    - ssl_HaveXmitBufLock
    - SSL_TRC
    - SSL_GETPID
    - PORT_GetError
    - ssl3_SendChangeCipherSpecsInt
    - ssl3_RegisterExtensionSender
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_SendServerHelloSequence(sslSocket *ss)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: SSL_GetStatistics
      Src: /src/nss/lib/ssl/tls13con.c:3431,1
    - Dst: ssl3_ExtensionNegotiated
      Src: /src/nss/lib/ssl/tls13con.c:3433,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:3434,1
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/lib/ssl/tls13con.c:3434,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:3435,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:3446,1
    - Dst: ssl3_ExtensionAdvertised
      Src: /src/nss/lib/ssl/tls13con.c:3447,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/tls13con.c:3448,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:3456,1
    - Dst: tls13_GetHash
      Src: /src/nss/lib/ssl/tls13con.c:3457,1
    - Dst: tls13_GetHashForCipherSuite
      Src: /src/nss/lib/ssl/tls13con.c:3458,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:3459,1
    - Dst: tls13_RestoreCipherInfo
      Src: /src/nss/lib/ssl/tls13con.c:3472,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/ssl/tls13con.c:3474,1
    - Dst: SSL_AtomicIncrementLong
      Src: /src/nss/lib/ssl/tls13con.c:3477,1
    - Dst: SSL_AtomicIncrementLong
      Src: /src/nss/lib/ssl/tls13con.c:3478,1
    - Dst: ssl3_ExtensionAdvertised
      Src: /src/nss/lib/ssl/tls13con.c:3484,1
    - Dst: SSL_AtomicIncrementLong
      Src: /src/nss/lib/ssl/tls13con.c:3485,1
    - Dst: ssl_UncacheSessionID
      Src: /src/nss/lib/ssl/tls13con.c:3489,1
    - Dst: ssl_FreeSID
      Src: /src/nss/lib/ssl/tls13con.c:3496,1
    - Dst: ssl3_NewSessionID
      Src: /src/nss/lib/ssl/tls13con.c:3497,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:3499,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/tls13con.c:3499,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:3503,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/ssl/tls13con.c:3504,1
    - Dst: tls13_HandleServerKeyShare
      Src: /src/nss/lib/ssl/tls13con.c:3508,1
    - Dst: tls13_ComputeHandshakeSecret
      Src: /src/nss/lib/ssl/tls13con.c:3513,1
    - Dst: tls13_MaybeHandleEchSignal
      Src: /src/nss/lib/ssl/tls13con.c:3518,1
    - Dst: tls13_ComputeHandshakeSecrets
      Src: /src/nss/lib/ssl/tls13con.c:3523,1
    - Dst: ssl_CipherSpecReleaseByEpoch
      Src: /src/nss/lib/ssl/tls13con.c:3532,1
    - Dst: tls13_SetCipherSpec
      Src: /src/nss/lib/ssl/tls13con.c:3535,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:3538,1
    - Dst: TLS13_SET_HS_STATE
      Src: /src/nss/lib/ssl/tls13con.c:3541,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 82
    argCount: 3
    argNames:
    - ss
    - savedMsg
    - savedLength
    argTypes:
    - sslSocket*
    - PRUint8*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3544
      start: 3426
    functionDepth: 13
    functionLinenumber: 3426
    functionLinenumberEnd: 3544
    functionName: tls13_HandleServerHelloPart2
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - ssl3_ExtensionNegotiated
    - CERT_DupCertificate
    - ssl3_NewSessionID
    - tls13_GetHash
    - tls13_HandleServerKeyShare
    - SSL_GetStatistics
    - tls13_RestoreCipherInfo
    - tls13_ComputeHandshakeSecrets
    - tls13_MaybeHandleEchSignal
    - ssl_FreeSID
    - ssl3_ExtensionAdvertised
    - FATAL_ERROR
    - tls13_SetCipherSpec
    - PR_CLIST_IS_EMPTY
    - PORT_Assert
    - SSL_AtomicIncrementLong
    - TLS13_SET_HS_STATE
    - tls13_ComputeHandshakeSecret
    - ssl_UncacheSessionID
    - tls13_GetHashForCipherSuite
    - PORT_GetError
    - ssl_CipherSpecReleaseByEpoch
    - PK11_FreeSymKey
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_HandleServerHelloPart2(sslSocket *ss, const PRUint8
      *savedMsg, PRUint32 savedLength)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:3570,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - ss
    - group
    argTypes:
    - sslSocket*
    - sslNamedGroupDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3572
      start: 3546
    functionDepth: 0
    functionLinenumber: 3546
    functionLinenumberEnd: 3572
    functionName: tls13_SetKeyExchangeType
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: void
    signature: void tls13_SetKeyExchangeType(sslSocket *ss, const sslNamedGroupDef
      *group)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:3588,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:3589,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:3590,1
    - Dst: ssl_HaveRecvBufLock
      Src: /src/nss/lib/ssl/tls13con.c:3590,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:3591,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/tls13con.c:3591,1
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/lib/ssl/tls13con.c:3594,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:3595,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/tls13con.c:3599,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:3600,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/tls13con.c:3600,1
    - Dst: ssl_LookupEphemeralKeyPair
      Src: /src/nss/lib/ssl/tls13con.c:3603,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:3605,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:3609,1
    - Dst: ssl_NamedGroupEnabled
      Src: /src/nss/lib/ssl/tls13con.c:3609,1
    - Dst: tls13_HandleKeyShare
      Src: /src/nss/lib/ssl/tls13con.c:3611,1
    - Dst: tls13_GetHash
      Src: /src/nss/lib/ssl/tls13con.c:3612,1
    - Dst: tls13_HandleKEMCiphertext
      Src: /src/nss/lib/ssl/tls13con.c:3619,1
    - Dst: PK11_ConcatSymKeys
      Src: /src/nss/lib/ssl/tls13con.c:3625,1
    - Dst: PK11_ConcatSymKeys
      Src: /src/nss/lib/ssl/tls13con.c:3628,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:3631,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:3632,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/tls13con.c:3639,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/tls13con.c:3640,1
    - Dst: tls13_SetKeyExchangeType
      Src: /src/nss/lib/ssl/tls13con.c:3645,1
    - Dst: SECKEY_PublicKeyStrengthInBits
      Src: /src/nss/lib/ssl/tls13con.c:3646,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/tls13con.c:3651,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/tls13con.c:3652,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:3653,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/tls13con.c:3653,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 58
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3655
      start: 3579
    functionDepth: 13
    functionLinenumber: 3579
    functionLinenumberEnd: 3655
    functionName: tls13_HandleServerKeyShare
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 1
    functionsReached:
    - SECKEY_PublicKeyStrengthInBits
    - ssl_LookupEphemeralKeyPair
    - tls13_GetHash
    - FATAL_ERROR
    - PORT_SetError
    - tls13_HandleKeyShare
    - PK11_ConcatSymKeys
    - PR_CLIST_IS_EMPTY
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    - ssl_HaveRecvBufLock
    - tls13_SetKeyExchangeType
    - tls13_HandleKEMCiphertext
    - SSL_TRC
    - SSL_GETPID
    - PR_NEXT_LINK
    - PORT_GetError
    - ssl_NamedGroupEnabled
    - PK11_FreeSymKey
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_HandleServerKeyShare(sslSocket *ss)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:3660,1
    - Dst: ssl_HaveXmitBufLock
      Src: /src/nss/lib/ssl/tls13con.c:3660,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:3661,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/tls13con.c:3661,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3673
      start: 3657
    functionDepth: 1
    functionLinenumber: 3657
    functionLinenumberEnd: 3673
    functionName: tls13_FindCompressionAlgAndCheckIfSupportsEncoding
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    - ssl_HaveXmitBufLock
    linkageType: ''
    returnType: PRBool
    signature: PRBool tls13_FindCompressionAlgAndCheckIfSupportsEncoding(sslSocket
      *ss)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:3679,1
    - Dst: ssl_HaveXmitBufLock
      Src: /src/nss/lib/ssl/tls13con.c:3679,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:3680,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/tls13con.c:3680,1
    - Dst: encode
      Src: /src/nss/lib/ssl/tls13con.c:3686,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:3692,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - ss
    - certificateToEncode
    - encodedCertificate
    argTypes:
    - sslSocket*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3694
      start: 3675
    functionDepth: 1
    functionLinenumber: 3675
    functionLinenumberEnd: 3694
    functionName: tls13_FindCompressionAlgAndEncodeCertificate
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - encode
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    - ssl_HaveXmitBufLock
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_FindCompressionAlgAndEncodeCertificate(\n    sslSocket
      *ss, SECItem *certificateToEncode, SECItem *encodedCertificate)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:3710,1
    - Dst: ssl_HaveXmitBufLock
      Src: /src/nss/lib/ssl/tls13con.c:3710,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:3711,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/tls13con.c:3711,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:3713,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:3714,1
    - Dst: SSL_ROLE
      Src: /src/nss/lib/ssl/tls13con.c:3714,1
    - Dst: ssl3_mapCertificateCompressionAlgorithmToName
      Src: /src/nss/lib/ssl/tls13con.c:3715,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/tls13con.c:3717,1
    - Dst: ssl3_CopyToSECItem
      Src: /src/nss/lib/ssl/tls13con.c:3721,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:3723,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:3724,1
    - Dst: SSL_ROLE
      Src: /src/nss/lib/ssl/tls13con.c:3724,1
    - Dst: tls13_FindCompressionAlgAndEncodeCertificate
      Src: /src/nss/lib/ssl/tls13con.c:3728,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:3731,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:3732,1
    - Dst: SSL_ROLE
      Src: /src/nss/lib/ssl/tls13con.c:3732,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:3733,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:3746,1
    - Dst: ssl3_AppendHandshakeHeader
      Src: /src/nss/lib/ssl/tls13con.c:3750,1
    - Dst: ssl3_AppendHandshakeNumber
      Src: /src/nss/lib/ssl/tls13con.c:3756,1
    - Dst: ssl3_AppendHandshakeNumber
      Src: /src/nss/lib/ssl/tls13con.c:3761,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/tls13con.c:3766,1
    - Dst: ssl3_AppendHandshakeVariable
      Src: /src/nss/lib/ssl/tls13con.c:3769,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/tls13con.c:3774,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/tls13con.c:3775,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/tls13con.c:3779,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/tls13con.c:3780,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 52
    argCount: 2
    argNames:
    - ss
    - bufferCertificate
    argTypes:
    - sslSocket*
    - sslBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3782
      start: 3696
    functionDepth: 2
    functionLinenumber: 3696
    functionLinenumberEnd: 3782
    functionName: tls13_SendCompressedCertificate
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SSL_ROLE
    - ssl_HaveSSL3HandshakeLock
    - ssl_HaveXmitBufLock
    - SSL_TRC
    - SSL_GETPID
    - PRINT_BUF
    - ssl3_AppendHandshakeNumber
    - ssl3_mapCertificateCompressionAlgorithmToName
    - PORT_SetError
    - ssl3_AppendHandshakeHeader
    - tls13_FindCompressionAlgAndEncodeCertificate
    - ssl3_AppendHandshakeVariable
    - ssl3_CopyToSECItem
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_SendCompressedCertificate(sslSocket *ss, sslBuffer
      *bufferCertificate)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:3808,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:3809,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:3811,1
    - Dst: ssl_HaveXmitBufLock
      Src: /src/nss/lib/ssl/tls13con.c:3811,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:3812,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/tls13con.c:3812,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:3815,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:3817,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/ssl/tls13con.c:3820,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/ssl/tls13con.c:3823,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/ssl/tls13con.c:3826,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:3830,1
    - Dst: ssl_ConstructExtensions
      Src: /src/nss/lib/ssl/tls13con.c:3842,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/tls13con.c:3847,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/tls13con.c:3850,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13con.c:3855,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/tls13con.c:3862,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13con.c:3870,1
    - Dst: sslBuffer_AppendBufferVariable
      Src: /src/nss/lib/ssl/tls13con.c:3877,1
    - Dst: tls13_FindCompressionAlgAndCheckIfSupportsEncoding
      Src: /src/nss/lib/ssl/tls13con.c:3887,1
    - Dst: ssl3_AppendHandshakeHeader
      Src: /src/nss/lib/ssl/tls13con.c:3888,1
    - Dst: ssl3_AppendBufferToHandshake
      Src: /src/nss/lib/ssl/tls13con.c:3893,1
    - Dst: tls13_SendCompressedCertificate
      Src: /src/nss/lib/ssl/tls13con.c:3898,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/tls13con.c:3904,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/tls13con.c:3905,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/tls13con.c:3909,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/tls13con.c:3910,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 87
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3912
      start: 3797
    functionDepth: 8
    functionLinenumber: 3797
    functionLinenumberEnd: 3912
    functionName: tls13_SendCertificate
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 1
    functionsReached:
    - sslBuffer_AppendBufferVariable
    - PORT_Assert
    - SSL_BUFFER_LEN
    - ssl_HaveSSL3HandshakeLock
    - tls13_FindCompressionAlgAndCheckIfSupportsEncoding
    - ssl_HaveXmitBufLock
    - SSL_TRC
    - ssl_ConstructExtensions
    - SSL_GETPID
    - sslBuffer_AppendVariable
    - sslBuffer_AppendNumber
    - ssl3_AppendHandshakeHeader
    - ssl3_AppendBufferToHandshake
    - CERT_DupCertificate
    - CERT_DestroyCertificate
    - sslBuffer_Clear
    - tls13_SendCompressedCertificate
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_SendCertificate(sslSocket *ss)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_ConsumeHandshakeVariable
      Src: /src/nss/lib/ssl/tls13con.c:3921,1
    - Dst: ssl3_ConsumeHandshakeVariable
      Src: /src/nss/lib/ssl/tls13con.c:3927,1
    - Dst: ssl3_HandleExtensions
      Src: /src/nss/lib/ssl/tls13con.c:3935,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - ss
    - data
    - first
    - certData
    argTypes:
    - sslSocket*
    - SECItem*
    - PRBool
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3945
      start: 3914
    functionDepth: 5
    functionLinenumber: 3914
    functionLinenumberEnd: 3945
    functionName: tls13_HandleCertificateEntry
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - ssl3_HandleExtensions
    - ssl3_ConsumeHandshakeVariable
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_HandleCertificateEntry(sslSocket *ss, SECItem *data,
      PRBool first,\n                             SECItem *certData)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:3951,1
    - Dst: ssl_HaveRecvBufLock
      Src: /src/nss/lib/ssl/tls13con.c:3951,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:3952,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/tls13con.c:3952,1
    - Dst: tls13_MaybeHandleSuppressedEndOfEarlyData
      Src: /src/nss/lib/ssl/tls13con.c:3957,1
    - Dst: TLS13_CHECK_HS_STATE
      Src: /src/nss/lib/ssl/tls13con.c:3963,1
    - Dst: TLS13_CHECK_HS_STATE
      Src: /src/nss/lib/ssl/tls13con.c:3966,1
    - Dst: TLS13_CHECK_HS_STATE
      Src: /src/nss/lib/ssl/tls13con.c:3970,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3974
      start: 3947
    functionDepth: 1
    functionLinenumber: 3947
    functionLinenumberEnd: 3974
    functionName: tls13_EnsureCerticateExpected
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    - tls13_MaybeHandleSuppressedEndOfEarlyData
    - TLS13_CHECK_HS_STATE
    - ssl_HaveRecvBufLock
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_EnsureCerticateExpected(sslSocket *ss)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:3986,1
    - Dst: ssl_HaveRecvBufLock
      Src: /src/nss/lib/ssl/tls13con.c:3986,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:3987,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/tls13con.c:3987,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:3992,1
    - Dst: tls13_EnsureCerticateExpected
      Src: /src/nss/lib/ssl/tls13con.c:3996,1
    - Dst: ssl_HashPostHandshakeMessage
      Src: /src/nss/lib/ssl/tls13con.c:4002,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:4008,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:4009,1
    - Dst: SSL_ROLE
      Src: /src/nss/lib/ssl/tls13con.c:4009,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/tls13con.c:4011,1
    - Dst: ssl3_ConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/tls13con.c:4014,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:4031,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:4032,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/tls13con.c:4032,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:4038,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:4039,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/tls13con.c:4039,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:4043,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:4044,1
    - Dst: SSL_ROLE
      Src: /src/nss/lib/ssl/tls13con.c:4044,1
    - Dst: ssl3_mapCertificateCompressionAlgorithmToName
      Src: /src/nss/lib/ssl/tls13con.c:4045,1
    - Dst: ssl3_ConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/tls13con.c:4047,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:4056,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:4057,1
    - Dst: SSL_ROLE
      Src: /src/nss/lib/ssl/tls13con.c:4057,1
    - Dst: ssl3_mapCertificateCompressionAlgorithmToName
      Src: /src/nss/lib/ssl/tls13con.c:4058,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:4059,1
    - Dst: ssl3_ConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/tls13con.c:4065,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:4071,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/ssl/tls13con.c:4076,1
    - Dst: certificateDecodingFunc
      Src: /src/nss/lib/ssl/tls13con.c:4084,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:4088,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:4089,1
    - Dst: SSL_ROLE
      Src: /src/nss/lib/ssl/tls13con.c:4089,1
    - Dst: ssl3_mapCertificateCompressionAlgorithmToName
      Src: /src/nss/lib/ssl/tls13con.c:4090,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:4091,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/tls13con.c:4094,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:4103,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:4104,1
    - Dst: SSL_ROLE
      Src: /src/nss/lib/ssl/tls13con.c:4104,1
    - Dst: ssl3_mapCertificateCompressionAlgorithmToName
      Src: /src/nss/lib/ssl/tls13con.c:4105,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:4106,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/tls13con.c:4110,1
    - Dst: tls13_HandleCertificate
      Src: /src/nss/lib/ssl/tls13con.c:4122,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/tls13con.c:4130,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/tls13con.c:4134,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 89
    argCount: 3
    argNames:
    - ss
    - b
    - length
    argTypes:
    - sslSocket*
    - PRUint8*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4136
      start: 3983
    functionDepth: 2
    functionLinenumber: 3983
    functionLinenumberEnd: 4136
    functionName: tls13_HandleCertificateDecode
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - ssl_HashPostHandshakeMessage
    - ssl_HaveSSL3HandshakeLock
    - SSL_ROLE
    - PORT_Free
    - SSL_TRC
    - PORT_ZAlloc
    - SSL_GETPID
    - PRINT_BUF
    - PORT_GetError
    - tls13_HandleCertificate
    - FATAL_ERROR
    - tls13_EnsureCerticateExpected
    - PORT_SetError
    - ssl3_mapCertificateCompressionAlgorithmToName
    - certificateDecodingFunc
    - ssl_HaveRecvBufLock
    - ssl3_ConsumeHandshakeNumber
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_HandleCertificateDecode(sslSocket *ss, PRUint8 *b,
      PRUint32 length)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:4151,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:4152,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:4153,1
    - Dst: ssl_HaveRecvBufLock
      Src: /src/nss/lib/ssl/tls13con.c:4153,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:4154,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/tls13con.c:4154,1
    - Dst: tls13_EnsureCerticateExpected
      Src: /src/nss/lib/ssl/tls13con.c:4156,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/tls13con.c:4162,1
    - Dst: ssl_CipherSpecReleaseByEpoch
      Src: /src/nss/lib/ssl/tls13con.c:4163,1
    - Dst: dtls_ReceivedFirstMessageInFlight
      Src: /src/nss/lib/ssl/tls13con.c:4164,1
    - Dst: ssl_HashPostHandshakeMessage
      Src: /src/nss/lib/ssl/tls13con.c:4169,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:4171,1
    - Dst: ssl_Time
      Src: /src/nss/lib/ssl/tls13con.c:4180,1
    - Dst: ssl3_ConsumeHandshakeVariable
      Src: /src/nss/lib/ssl/tls13con.c:4184,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:4189,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/ssl/tls13con.c:4190,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:4191,1
    - Dst: ssl3_ConsumeHandshakeVariable
      Src: /src/nss/lib/ssl/tls13con.c:4195,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:4200,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:4207,1
    - Dst: ssl3_HandleNoCertificate
      Src: /src/nss/lib/ssl/tls13con.c:4212,1
    - Dst: TLS13_SET_HS_STATE
      Src: /src/nss/lib/ssl/tls13con.c:4217,1
    - Dst: ssl3_CleanupPeerCerts
      Src: /src/nss/lib/ssl/tls13con.c:4223,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/ssl/tls13con.c:4224,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:4226,1
    - Dst: tls13_HandleCertificateEntry
      Src: /src/nss/lib/ssl/tls13con.c:4232,1
    - Dst: CERT_NewTempCertificate
      Src: /src/nss/lib/ssl/tls13con.c:4240,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/tls13con.c:4243,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:4248,1
    - Dst: ssl3_SendAlertForCertError
      Src: /src/nss/lib/ssl/tls13con.c:4251,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/ssl/tls13con.c:4258,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:4262,1
    - Dst: PORT_ArenaNew
      Src: /src/nss/lib/ssl/tls13con.c:4267,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:4270,1
    - Dst: SECITEM_ArenaDupItem
      Src: /src/nss/lib/ssl/tls13con.c:4273,1
    - Dst: SECKEY_UpdateCertPQG
      Src: /src/nss/lib/ssl/tls13con.c:4287,1
    - Dst: ssl3_AuthCertificate
      Src: /src/nss/lib/ssl/tls13con.c:4289,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 105
    argCount: 4
    argNames:
    - ss
    - b
    - length
    - alreadyHashed
    argTypes:
    - sslSocket*
    - PRUint8*
    - PRUint32
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4290
      start: 4142
    functionDepth: 8
    functionLinenumber: 4142
    functionLinenumberEnd: 4290
    functionName: tls13_HandleCertificate
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 2
    functionsReached:
    - SECITEM_CompareItem
    - PORT_ArenaNew
    - ssl3_CleanupPeerCerts
    - ssl3_HandleNoCertificate
    - SECITEM_ArenaDupItem
    - ssl_HashPostHandshakeMessage
    - PORT_NewArena
    - PORT_SetError
    - FATAL_ERROR
    - SECKEY_UpdateCertPQG
    - tls13_HandleCertificateEntry
    - IS_DTLS
    - PORT_Assert
    - ssl3_AuthCertificate
    - ssl_HaveSSL3HandshakeLock
    - ssl_Time
    - tls13_EnsureCerticateExpected
    - TLS13_SET_HS_STATE
    - ssl_HaveRecvBufLock
    - CERT_NewTempCertificate
    - dtls_ReceivedFirstMessageInFlight
    - SSL_TRC
    - ssl3_ConsumeHandshakeVariable
    - SSL_GETPID
    - PORT_GetError
    - SECITEM_CopyItem
    - ssl_CipherSpecReleaseByEpoch
    - ssl3_SendAlertForCertError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_HandleCertificate(sslSocket *ss, PRUint8 *b, PRUint32
      length, PRBool alreadyHashed)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:4319,1
    - Dst: tls13_GetHashSize
      Src: /src/nss/lib/ssl/tls13con.c:4319,1
    - Dst: PK11_CreateDigestContext
      Src: /src/nss/lib/ssl/tls13con.c:4321,1
    - Dst: ssl3_HashTypeToOID
      Src: /src/nss/lib/ssl/tls13con.c:4321,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:4323,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:4327,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:4328,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/tls13con.c:4330,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/tls13con.c:4331,1
    - Dst: strlen
      Src: /src/nss/lib/ssl/tls13con.c:4331,1
    - Dst: PK11_DigestBegin
      Src: /src/nss/lib/ssl/tls13con.c:4332,1
    - Dst: PK11_DigestOp
      Src: /src/nss/lib/ssl/tls13con.c:4333,1
    - Dst: PK11_DigestOp
      Src: /src/nss/lib/ssl/tls13con.c:4334,1
    - Dst: strlen
      Src: /src/nss/lib/ssl/tls13con.c:4335,1
    - Dst: PK11_DigestOp
      Src: /src/nss/lib/ssl/tls13con.c:4336,1
    - Dst: PK11_DigestFinal
      Src: /src/nss/lib/ssl/tls13con.c:4338,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/ssl/tls13con.c:4339,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/tls13con.c:4340,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/tls13con.c:4346,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 5
    argNames:
    - ss
    - hashes
    - algorithm
    - sending
    - tbsHash
    argTypes:
    - sslSocket*
    - SSL3Hashes*
    - SSLHashType
    - PRBool
    - SSL3Hashes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4353
      start: 4294
    functionDepth: 9
    functionLinenumber: 4294
    functionLinenumberEnd: 4353
    functionName: tls13_AddContextToHashes
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PK11_DestroyContext
    - PK11_DigestOp
    - PK11_CreateDigestContext
    - ssl3_HashTypeToOID
    - PRINT_BUF
    - PORT_SetError
    - ssl_MapLowLevelError
    - tls13_GetHashSize
    - PK11_DigestBegin
    - PK11_DigestFinal
    - strlen
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_AddContextToHashes(sslSocket *ss, const SSL3Hashes
      *hashes,\n                         SSLHashType algorithm, PRBool sending,\n
      \                        SSL3Hashes *tbsHash)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tls13_HkdfExpandLabel
      Src: /src/nss/lib/ssl/tls13con.c:4370,1
    - Dst: tls13_GetHashSizeForHash
      Src: /src/nss/lib/ssl/tls13con.c:4372,1
    - Dst: LOG_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:4375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 7
    argNames:
    - ss
    - key
    - label
    - labelLen
    - hashes
    - dest
    - hash
    argTypes:
    - sslSocket*
    - PK11SymKey*
    - char*
    - unsigned int
    - SSL3Hashes*
    - PK11SymKey**
    - SSLHashType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4379
      start: 4360
    functionDepth: 4
    functionLinenumber: 4360
    functionLinenumberEnd: 4379
    functionName: tls13_DeriveSecret
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - tls13_GetHashSizeForHash
    - LOG_ERROR
    - tls13_HkdfExpandLabel
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_DeriveSecret(sslSocket *ss, PK11SymKey *key,\n                   const
      char *label,\n                   unsigned int labelLen,\n                   const
      SSL3Hashes *hashes,\n                   PK11SymKey **dest,\n                   SSLHashType
      hash)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tls13_ComputeHash
      Src: /src/nss/lib/ssl/tls13con.c:4393,1
    - Dst: tls13_DeriveSecret
      Src: /src/nss/lib/ssl/tls13con.c:4398,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - ss
    - key
    - label
    - labelLen
    - dest
    - hash
    argTypes:
    - sslSocket*
    - PK11SymKey*
    - char*
    - unsigned int
    - PK11SymKey**
    - SSLHashType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4399
      start: 4382
    functionDepth: 11
    functionLinenumber: 4382
    functionLinenumberEnd: 4399
    functionName: tls13_DeriveSecretNullHash
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 3
    functionsReached:
    - tls13_DeriveSecret
    - tls13_ComputeHash
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_DeriveSecretNullHash(sslSocket *ss, PK11SymKey *key,\n
      \                          const char *label,\n                           unsigned
      int labelLen,\n                           PK11SymKey **dest,\n                           SSLHashType
      hash)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nss/lib/ssl/tls13con.c:4415,1
    - Dst: strlen
      Src: /src/nss/lib/ssl/tls13con.c:4415,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:4416,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:4417,1
    - Dst: PR_snprintf
      Src: /src/nss/lib/ssl/tls13con.c:4420,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:4427,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:4428,1
    - Dst: tls13_ComputeHandshakeHashes
      Src: /src/nss/lib/ssl/tls13con.c:4429,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:4431,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/tls13con.c:4432,1
    - Dst: tls13_DeriveSecret
      Src: /src/nss/lib/ssl/tls13con.c:4436,1
    - Dst: strlen
      Src: /src/nss/lib/ssl/tls13con.c:4436,1
    - Dst: tls13_GetHash
      Src: /src/nss/lib/ssl/tls13con.c:4437,1
    - Dst: ssl3_RecordKeyLog
      Src: /src/nss/lib/ssl/tls13con.c:4443,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 6
    argNames:
    - ss
    - key
    - prefix
    - suffix
    - keylogLabel
    - dest
    argTypes:
    - sslSocket*
    - PK11SymKey*
    - char*
    - char*
    - char*
    - PK11SymKey**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4446
      start: 4402
    functionDepth: 5
    functionLinenumber: 4402
    functionLinenumberEnd: 4446
    functionName: tls13_DeriveSecretWrap
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 4
    functionsReached:
    - PORT_Assert
    - PR_snprintf
    - SSL_TRC
    - tls13_DeriveSecret
    - SSL_GETPID
    - PORT_SetError
    - ssl_MapLowLevelError
    - ssl3_RecordKeyLog
    - tls13_ComputeHandshakeHashes
    - tls13_GetHash
    - strlen
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_DeriveSecretWrap(sslSocket *ss, PK11SymKey *key,\n
      \                      const char *prefix,\n                       const char
      *suffix,\n                       const char *keylogLabel,\n                       PK11SymKey
      **dest)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/tls13con.c:4451,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/tls13con.c:4453,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:4454,1
    - Dst: ssl_Get1stHandshakeLock
      Src: /src/nss/lib/ssl/tls13con.c:4458,1
    - Dst: ssl_GetSSL3HandshakeLock
      Src: /src/nss/lib/ssl/tls13con.c:4459,1
    - Dst: ssl_ReleaseSSL3HandshakeLock
      Src: /src/nss/lib/ssl/tls13con.c:4462,1
    - Dst: ssl_Release1stHandshakeLock
      Src: /src/nss/lib/ssl/tls13con.c:4463,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - fd
    - cb
    - arg
    argTypes:
    - PRFileDesc*
    - SSLSecretCallback
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4465
      start: 4448
    functionDepth: 2
    functionLinenumber: 4448
    functionLinenumberEnd: 4465
    functionName: SSLExp_SecretCallback
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - ssl_GetSSL3HandshakeLock
    - SSL_GETPID
    - ssl_ReleaseSSL3HandshakeLock
    - ssl_Get1stHandshakeLock
    - SSL_DBG
    - ssl_Release1stHandshakeLock
    - ssl_FindSocket
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSLExp_SecretCallback(PRFileDesc *fd, SSLSecretCallback cb,
      void *arg)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_Alg2Mech
      Src: /src/nss/lib/ssl/tls13con.c:4478,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:4488,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/tls13con.c:4488,1
    - Dst: tls13_UseServerSecret
      Src: /src/nss/lib/ssl/tls13con.c:4490,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:4493,1
    - Dst: LOG_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:4508,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:4509,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:4512,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:4515,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:4516,1
    - Dst: SPEC_DIR
      Src: /src/nss/lib/ssl/tls13con.c:4516,1
    - Dst: tls13_HkdfExpandLabel
      Src: /src/nss/lib/ssl/tls13con.c:4519,1
    - Dst: tls13_GetHash
      Src: /src/nss/lib/ssl/tls13con.c:4519,1
    - Dst: strlen
      Src: /src/nss/lib/ssl/tls13con.c:4521,1
    - Dst: LOG_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:4526,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:4527,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/tls13con.c:4531,1
    - Dst: ssl_CreateMaskingContextInner
      Src: /src/nss/lib/ssl/tls13con.c:4532,1
    - Dst: strlen
      Src: /src/nss/lib/ssl/tls13con.c:4534,1
    - Dst: LOG_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:4536,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:4537,1
    - Dst: tls13_HkdfExpandLabelRaw
      Src: /src/nss/lib/ssl/tls13con.c:4542,1
    - Dst: tls13_GetHash
      Src: /src/nss/lib/ssl/tls13con.c:4542,1
    - Dst: strlen
      Src: /src/nss/lib/ssl/tls13con.c:4544,1
    - Dst: LOG_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:4548,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:4549,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/tls13con.c:4554,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 4
    argNames:
    - ss
    - spec
    - type
    - deleteSecret
    argTypes:
    - sslSocket*
    - ssl3CipherSpec*
    - TrafficKeyType
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4561
      start: 4468
    functionDepth: 5
    functionLinenumber: 4468
    functionLinenumberEnd: 4561
    functionName: tls13_DeriveTrafficKeys
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - IS_DTLS
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    - LOG_ERROR
    - tls13_HkdfExpandLabel
    - tls13_GetHash
    - SSL_TRC
    - SSL_GETPID
    - ssl_CreateMaskingContextInner
    - strlen
    - SPEC_DIR
    - PK11_FreeSymKey
    - tls13_UseServerSecret
    - tls13_HkdfExpandLabelRaw
    - ssl3_Alg2Mech
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_DeriveTrafficKeys(sslSocket *ss, ssl3CipherSpec *spec,\n
      \                       TrafficKeyType type,\n                        PRBool
      deleteSecret)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/tls13con.c:4567,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:4572,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:4573,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ss
    - spec
    argTypes:
    - sslSocket*
    - ssl3CipherSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4574
      start: 4563
    functionDepth: 1
    functionLinenumber: 4563
    functionLinenumberEnd: 4574
    functionName: tls13_SetSpecRecordVersion
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 1
    functionsReached:
    - IS_DTLS
    - SSL_TRC
    - SSL_GETPID
    linkageType: ''
    returnType: void
    signature: void tls13_SetSpecRecordVersion(sslSocket *ss, ssl3CipherSpec *spec)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:4581,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/tls13con.c:4581,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:4582,1
    - Dst: PR_MAX
      Src: /src/nss/lib/ssl/tls13con.c:4585,1
    - Dst: ssl_SaveCipherSpec
      Src: /src/nss/lib/ssl/tls13con.c:4587,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/tls13con.c:4591,1
    - Dst: ssl_CipherSpecAddRef
      Src: /src/nss/lib/ssl/tls13con.c:4592,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:4595,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:4596,1
    - Dst: ssl_GetBulkCipherDef
      Src: /src/nss/lib/ssl/tls13con.c:4598,1
    - Dst: ssl_LookupCipherSuiteDef
      Src: /src/nss/lib/ssl/tls13con.c:4598,1
    - Dst: tls13_SetSpecRecordVersion
      Src: /src/nss/lib/ssl/tls13con.c:4607,1
    - Dst: ssl3_ExtensionNegotiated
      Src: /src/nss/lib/ssl/tls13con.c:4611,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - ss
    - spec
    argTypes:
    - sslSocket*
    - ssl3CipherSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4620
      start: 4576
    functionDepth: 2
    functionLinenumber: 4576
    functionLinenumberEnd: 4620
    functionName: tls13_SetupPendingCipherSpec
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - IS_DTLS
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    - ssl_GetBulkCipherDef
    - ssl3_ExtensionNegotiated
    - ssl_CipherSpecAddRef
    - SSL_TRC
    - ssl_LookupCipherSuiteDef
    - SSL_GETPID
    - tls13_SetSpecRecordVersion
    - ssl_SaveCipherSpec
    - PR_MAX
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_SetupPendingCipherSpec(sslSocket *ss, ssl3CipherSpec
      *spec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_Alg2Mech
      Src: /src/nss/lib/ssl/tls13con.c:4636,1
    - Dst: PK11_CreateContextBySymKey
      Src: /src/nss/lib/ssl/tls13con.c:4644,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/tls13con.c:4648,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - ss
    - spec
    argTypes:
    - sslSocket*
    - ssl3CipherSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4652
      start: 4626
    functionDepth: 11
    functionLinenumber: 4626
    functionLinenumberEnd: 4652
    functionName: tls13_InitPendingContext
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - ssl_MapLowLevelError
    - PK11_CreateContextBySymKey
    - ssl3_Alg2Mech
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_InitPendingContext(sslSocket *ss, ssl3CipherSpec *spec)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TLS13_IN_HS_STATE
      Src: /src/nss/lib/ssl/tls13con.c:4671,1
    - Dst: tls13_SetCipherSpec
      Src: /src/nss/lib/ssl/tls13con.c:4679,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:4682,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4686
      start: 4660
    functionDepth: 1
    functionLinenumber: 4660
    functionLinenumberEnd: 4686
    functionName: tls13_SetAlertCipherSpec
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - tls13_SetCipherSpec
    - TLS13_IN_HS_STATE
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_SetAlertCipherSpec(sslSocket *ss)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ssl_GetXmitBufLock
      Src: /src/nss/lib/ssl/tls13con.c:4703,1
    - Dst: ssl3_FlushHandshake
      Src: /src/nss/lib/ssl/tls13con.c:4704,1
    - Dst: ssl_ReleaseXmitBufLock
      Src: /src/nss/lib/ssl/tls13con.c:4705,1
    - Dst: ssl_CreateCipherSpec
      Src: /src/nss/lib/ssl/tls13con.c:4711,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/tls13con.c:4717,1
    - Dst: dtls_InitRecvdRecords
      Src: /src/nss/lib/ssl/tls13con.c:4718,1
    - Dst: tls13_SetupPendingCipherSpec
      Src: /src/nss/lib/ssl/tls13con.c:4722,1
    - Dst: PR_MIN
      Src: /src/nss/lib/ssl/tls13con.c:4727,1
    - Dst: tls13_DeriveTrafficKeys
      Src: /src/nss/lib/ssl/tls13con.c:4728,1
    - Dst: tls13_InitPendingContext
      Src: /src/nss/lib/ssl/tls13con.c:4733,1
    - Dst: ssl_GetSpecWriteLock
      Src: /src/nss/lib/ssl/tls13con.c:4740,1
    - Dst: ssl_CipherSpecRelease
      Src: /src/nss/lib/ssl/tls13con.c:4741,1
    - Dst: ssl_ReleaseSpecWriteLock
      Src: /src/nss/lib/ssl/tls13con.c:4743,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:4745,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:4746,1
    - Dst: SSL_ROLE
      Src: /src/nss/lib/ssl/tls13con.c:4746,1
    - Dst: SPEC_DIR
      Src: /src/nss/lib/ssl/tls13con.c:4747,1
    - Dst: ssl_CipherSpecRelease
      Src: /src/nss/lib/ssl/tls13con.c:4751,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 43
    argCount: 4
    argNames:
    - ss
    - epoch
    - direction
    - deleteSecret
    argTypes:
    - sslSocket*
    - PRUint16
    - SSLSecretDirection
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4753
      start: 4693
    functionDepth: 12
    functionLinenumber: 4693
    functionLinenumberEnd: 4753
    functionName: tls13_SetCipherSpec
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 5
    functionsReached:
    - IS_DTLS
    - ssl_GetXmitBufLock
    - tls13_SetupPendingCipherSpec
    - tls13_InitPendingContext
    - SSL_ROLE
    - PR_MIN
    - ssl_GetSpecWriteLock
    - SSL_TRC
    - SSL_GETPID
    - ssl_CipherSpecRelease
    - ssl_ReleaseXmitBufLock
    - ssl3_FlushHandshake
    - ssl_CreateCipherSpec
    - dtls_InitRecvdRecords
    - SPEC_DIR
    - tls13_DeriveTrafficKeys
    - ssl_ReleaseSpecWriteLock
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_SetCipherSpec(sslSocket *ss, PRUint16 epoch,\n                    SSLSecretDirection
      direction, PRBool deleteSecret)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:4763,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/tls13con.c:4763,1
    - Dst: PK11_CreateDigestContext
      Src: /src/nss/lib/ssl/tls13con.c:4767,1
    - Dst: ssl3_HashTypeToOID
      Src: /src/nss/lib/ssl/tls13con.c:4767,1
    - Dst: tls13_GetHash
      Src: /src/nss/lib/ssl/tls13con.c:4767,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/tls13con.c:4769,1
    - Dst: PK11_DigestBegin
      Src: /src/nss/lib/ssl/tls13con.c:4773,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/tls13con.c:4774,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/tls13con.c:4783,1
    - Dst: PK11_DigestOp
      Src: /src/nss/lib/ssl/tls13con.c:4787,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/tls13con.c:4790,1
    - Dst: PK11_CloneContext
      Src: /src/nss/lib/ssl/tls13con.c:4795,1
    - Dst: PK11_CloneContext
      Src: /src/nss/lib/ssl/tls13con.c:4797,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/tls13con.c:4800,1
    - Dst: PK11_DigestFinal
      Src: /src/nss/lib/ssl/tls13con.c:4805,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/tls13con.c:4809,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/tls13con.c:4813,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:4814,1
    - Dst: tls13_GetHashSize
      Src: /src/nss/lib/ssl/tls13con.c:4814,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/ssl/tls13con.c:4815,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/ssl/tls13con.c:4820,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 46
    argCount: 2
    argNames:
    - ss
    - hashes
    argTypes:
    - sslSocket*
    - SSL3Hashes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4822
      start: 4755
    functionDepth: 9
    functionLinenumber: 4755
    functionLinenumberEnd: 4822
    functionName: tls13_ComputeHandshakeHashes
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 2
    functionsReached:
    - PK11_CloneContext
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    - PK11_DestroyContext
    - PK11_DigestOp
    - PK11_CreateDigestContext
    - ssl3_HashTypeToOID
    - PRINT_BUF
    - ssl_MapLowLevelError
    - tls13_GetHashSize
    - PK11_DigestBegin
    - tls13_GetHash
    - PK11_DigestFinal
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_ComputeHandshakeHashes(sslSocket *ss, SSL3Hashes *hashes)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:4829,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/ssl/tls13con.c:4830,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/ssl/tls13con.c:4835,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/tls13con.c:4836,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - o
    argTypes:
    - TLS13KeyShareEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4841
      start: 4824
    functionDepth: 1
    functionLinenumber: 4824
    functionLinenumberEnd: 4841
    functionName: tls13_CopyKeyShareEntry
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - PORT_Assert
    - SECITEM_CopyItem
    - PORT_ZNew
    linkageType: ''
    returnType: TLS13KeyShareEntry
    signature: 'TLS13KeyShareEntry *

      tls13_CopyKeyShareEntry(TLS13KeyShareEntry *o)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/ssl/tls13con.c:4849,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/ssl/tls13con.c:4850,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - offer
    argTypes:
    - TLS13KeyShareEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4851
      start: 4843
    functionDepth: 0
    functionLinenumber: 4843
    functionLinenumberEnd: 4851
    functionName: tls13_DestroyKeyShareEntry
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 2
    functionsReached:
    - PORT_ZFree
    - SECITEM_ZfreeItem
    linkageType: ''
    returnType: void
    signature: void tls13_DestroyKeyShareEntry(TLS13KeyShareEntry *offer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:4859,1
    - Dst: PR_LIST_HEAD
      Src: /src/nss/lib/ssl/tls13con.c:4859,1
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/lib/ssl/tls13con.c:4861,1
    - Dst: PR_LIST_TAIL
      Src: /src/nss/lib/ssl/tls13con.c:4862,1
    - Dst: PR_REMOVE_LINK
      Src: /src/nss/lib/ssl/tls13con.c:4863,1
    - Dst: tls13_DestroyKeyShareEntry
      Src: /src/nss/lib/ssl/tls13con.c:4864,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - list
    argTypes:
    - PRCList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4866
      start: 4853
    functionDepth: 1
    functionLinenumber: 4853
    functionLinenumberEnd: 4866
    functionName: tls13_DestroyKeyShares
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 2
    functionsReached:
    - PORT_Assert
    - PR_LIST_TAIL
    - PR_REMOVE_LINK
    - tls13_DestroyKeyShareEntry
    - PR_LIST_HEAD
    - PR_CLIST_IS_EMPTY
    linkageType: ''
    returnType: void
    signature: void tls13_DestroyKeyShares(PRCList *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/lib/ssl/tls13con.c:4873,1
    - Dst: PR_LIST_TAIL
      Src: /src/nss/lib/ssl/tls13con.c:4876,1
    - Dst: PR_REMOVE_LINK
      Src: /src/nss/lib/ssl/tls13con.c:4879,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/ssl/tls13con.c:4880,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/ssl/tls13con.c:4881,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - list
    argTypes:
    - PRCList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4883
      start: 4868
    functionDepth: 1
    functionLinenumber: 4868
    functionLinenumberEnd: 4883
    functionName: tls13_DestroyEarlyData
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - PR_LIST_TAIL
    - PORT_ZFree
    - PR_REMOVE_LINK
    - SECITEM_ZfreeItem
    - PR_CLIST_IS_EMPTY
    linkageType: ''
    returnType: void
    signature: void tls13_DestroyEarlyData(PRCList *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:4914,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:4915,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/ssl/tls13con.c:4916,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/tls13con.c:4917,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/tls13con.c:4923,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 6
    argNames:
    - ivIn
    - ivInLen
    - nonce
    - nonceLen
    - ivOut
    - ivOutLen
    argTypes:
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4924
      start: 4906
    functionDepth: 1
    functionLinenumber: 4906
    functionLinenumberEnd: 4924
    functionName: tls13_WriteNonce
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PRINT_BUF
    - PORT_Memcpy
    - PORT_Memset
    linkageType: ''
    returnType: void
    signature: "void tls13_WriteNonce(const unsigned char *ivIn, unsigned int ivInLen,\n
      \                const unsigned char *nonce, unsigned int nonceLen,\n                 unsigned
      char *ivOut, unsigned int ivOutLen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/tls13con.c:4933,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 7
    argNames:
    - isDTLS
    - v
    - ivOut
    - ivIn
    - offset
    - ivLen
    - epoch
    argTypes:
    - PRBool
    - SSL3ProtocolVersion
    - unsigned char*
    - unsigned char*
    - unsigned int
    - unsigned int
    - DTLSEpoch
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4947
      start: 4929
    functionDepth: 0
    functionLinenumber: 4929
    functionLinenumberEnd: 4947
    functionName: tls13_SetupAeadIv
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - PORT_Memcpy
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int tls13_SetupAeadIv(PRBool isDTLS, SSL3ProtocolVersion
      v, unsigned char *ivOut, unsigned char *ivIn,\n                  unsigned int
      offset, unsigned int ivLen, DTLSEpoch epoch)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:4976,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:4980,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:4981,1
    - Dst: tls13_WriteNonce
      Src: /src/nss/lib/ssl/tls13con.c:4987,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/tls13con.c:4989,1
    - Dst: PK11_AEADOp
      Src: /src/nss/lib/ssl/tls13con.c:5001,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:5008,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/tls13con.c:5011,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 17
    argNames:
    - context
    - decrypt
    - ivGen
    - fixedbits
    - ivIn
    - ivOut
    - ivLen
    - nonceIn
    - nonceLen
    - aad
    - aadLen
    - out
    - outLen
    - maxout
    - tagLen
    - in
    - inLen
    argTypes:
    - PK11Context*
    - PRBool
    - CK_GENERATOR_FUNCTION
    - unsigned int
    - unsigned char*
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5015
      start: 4960
    functionDepth: 11
    functionLinenumber: 4960
    functionLinenumberEnd: 5015
    functionName: tls13_AEAD
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_Memcpy
    - PORT_SetError
    - PK11_AEADOp
    - tls13_WriteNonce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_AEAD(PK11Context *context, PRBool decrypt,\n           CK_GENERATOR_FUNCTION
      ivGen, unsigned int fixedbits,\n           const unsigned char *ivIn, unsigned
      char *ivOut, unsigned int ivLen,\n           const unsigned char *nonceIn, unsigned
      int nonceLen,\n           const unsigned char *aad, unsigned int aadLen,\n           unsigned
      char *out, unsigned int *outLen, unsigned int maxout,\n           unsigned int
      tagLen, const unsigned char *in, unsigned int inLen)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:5024,1
    - Dst: ssl_HaveRecvBufLock
      Src: /src/nss/lib/ssl/tls13con.c:5024,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:5025,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/tls13con.c:5025,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:5027,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:5028,1
    - Dst: TLS13_CHECK_HS_STATE
      Src: /src/nss/lib/ssl/tls13con.c:5030,1
    - Dst: ssl3_ConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/tls13con.c:5036,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:5041,1
    - Dst: ssl3_ParseExtensions
      Src: /src/nss/lib/ssl/tls13con.c:5055,1
    - Dst: ssl3_HandleParsedExtensions
      Src: /src/nss/lib/ssl/tls13con.c:5061,1
    - Dst: ssl3_ExtensionNegotiated
      Src: /src/nss/lib/ssl/tls13con.c:5067,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:5068,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:5071,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/ssl/tls13con.c:5077,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/tls13con.c:5078,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:5079,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:5085,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:5095,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/tls13con.c:5100,1
    - Dst: TLS13_SET_HS_STATE
      Src: /src/nss/lib/ssl/tls13con.c:5102,1
    - Dst: TLS13_SET_HS_STATE
      Src: /src/nss/lib/ssl/tls13con.c:5104,1
    - Dst: tls13_DestroyPskList
      Src: /src/nss/lib/ssl/tls13con.c:5108,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 60
    argCount: 3
    argNames:
    - ss
    - b
    - length
    argTypes:
    - sslSocket*
    - PRUint8*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5112
      start: 5017
    functionDepth: 4
    functionLinenumber: 5017
    functionLinenumberEnd: 5112
    functionName: tls13_HandleEncryptedExtensions
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - SECITEM_CompareItem
    - ssl_HaveSSL3HandshakeLock
    - ssl3_ExtensionNegotiated
    - SSL_TRC
    - SSL_GETPID
    - TLS13_SET_HS_STATE
    - tls13_DestroyPskList
    - FATAL_ERROR
    - TLS13_CHECK_HS_STATE
    - ssl3_HandleParsedExtensions
    - ssl_HaveRecvBufLock
    - ssl3_ConsumeHandshakeNumber
    - ssl3_ParseExtensions
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_HandleEncryptedExtensions(sslSocket *ss, PRUint8 *b,
      PRUint32 length)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:5120,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:5121,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:5123,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/tls13con.c:5123,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:5124,1
    - Dst: ssl_HaveXmitBufLock
      Src: /src/nss/lib/ssl/tls13con.c:5124,1
    - Dst: ssl_ConstructExtensions
      Src: /src/nss/lib/ssl/tls13con.c:5126,1
    - Dst: ssl3_AppendHandshakeHeader
      Src: /src/nss/lib/ssl/tls13con.c:5131,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/tls13con.c:5132,1
    - Dst: LOG_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:5134,1
    - Dst: ssl3_AppendBufferToHandshakeVariable
      Src: /src/nss/lib/ssl/tls13con.c:5137,1
    - Dst: LOG_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:5139,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/tls13con.c:5142,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/tls13con.c:5146,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5148
      start: 5114
    functionDepth: 3
    functionLinenumber: 5114
    functionLinenumberEnd: 5148
    functionName: tls13_SendEncryptedExtensions
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - SSL_BUFFER_LEN
    - ssl_HaveSSL3HandshakeLock
    - ssl3_AppendBufferToHandshakeVariable
    - LOG_ERROR
    - ssl_HaveXmitBufLock
    - SSL_TRC
    - ssl_ConstructExtensions
    - SSL_GETPID
    - ssl3_AppendHandshakeHeader
    - sslBuffer_Clear
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_SendEncryptedExtensions(sslSocket *ss)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:5160,1
    - Dst: ssl_HaveXmitBufLock
      Src: /src/nss/lib/ssl/tls13con.c:5160,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:5161,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/tls13con.c:5161,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:5163,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:5164,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:5166,1
    - Dst: tls13_ComputeHandshakeHashes
      Src: /src/nss/lib/ssl/tls13con.c:5167,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:5174,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:5176,1
    - Dst: ssl_SignatureSchemeToHashType
      Src: /src/nss/lib/ssl/tls13con.c:5179,1
    - Dst: tls13_AddContextToHashes
      Src: /src/nss/lib/ssl/tls13con.c:5180,1
    - Dst: ssl3_SignHashes
      Src: /src/nss/lib/ssl/tls13con.c:5186,1
    - Dst: PK11_GetSlotFromPrivateKey
      Src: /src/nss/lib/ssl/tls13con.c:5195,1
    - Dst: PK11_GetSlotSeries
      Src: /src/nss/lib/ssl/tls13con.c:5196,1
    - Dst: PK11_GetSlotID
      Src: /src/nss/lib/ssl/tls13con.c:5197,1
    - Dst: PK11_GetModuleID
      Src: /src/nss/lib/ssl/tls13con.c:5198,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/ssl/tls13con.c:5200,1
    - Dst: ssl3_AppendHandshakeHeader
      Src: /src/nss/lib/ssl/tls13con.c:5208,1
    - Dst: ssl3_AppendHandshakeNumber
      Src: /src/nss/lib/ssl/tls13con.c:5213,1
    - Dst: ssl3_AppendHandshakeVariable
      Src: /src/nss/lib/ssl/tls13con.c:5218,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/tls13con.c:5227,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 53
    argCount: 2
    argNames:
    - ss
    - privKey
    argTypes:
    - sslSocket*
    - SECKEYPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5229
      start: 5150
    functionDepth: 10
    functionLinenumber: 5150
    functionLinenumberEnd: 5229
    functionName: tls13_SendCertificateVerify
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 1
    functionsReached:
    - ssl3_SignHashes
    - PK11_GetSlotID
    - PORT_SetError
    - tls13_AddContextToHashes
    - tls13_ComputeHandshakeHashes
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    - ssl3_AppendHandshakeNumber
    - ssl3_AppendHandshakeHeader
    - PK11_GetSlotSeries
    - PK11_FreeSlot
    - ssl_SignatureSchemeToHashType
    - ssl_HaveXmitBufLock
    - SSL_TRC
    - PORT_Free
    - SSL_GETPID
    - ssl3_AppendHandshakeVariable
    - PK11_GetSlotFromPrivateKey
    - PK11_GetModuleID
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_SendCertificateVerify(sslSocket *ss, SECKEYPrivateKey
      *privKey)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:5248,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:5249,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:5250,1
    - Dst: ssl_HaveRecvBufLock
      Src: /src/nss/lib/ssl/tls13con.c:5250,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:5251,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/tls13con.c:5251,1
    - Dst: TLS13_CHECK_HS_STATE
      Src: /src/nss/lib/ssl/tls13con.c:5253,1
    - Dst: tls13_ComputeHandshakeHashes
      Src: /src/nss/lib/ssl/tls13con.c:5259,1
    - Dst: ssl_HashPostHandshakeMessage
      Src: /src/nss/lib/ssl/tls13con.c:5265,1
    - Dst: ssl_HashHandshakeMessage
      Src: /src/nss/lib/ssl/tls13con.c:5267,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:5270,1
    - Dst: ssl_ConsumeSignatureScheme
      Src: /src/nss/lib/ssl/tls13con.c:5274,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:5276,1
    - Dst: tls13_IsVerifyingWithDelegatedCredential
      Src: /src/nss/lib/ssl/tls13con.c:5285,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:5292,1
    - Dst: tls13_VerifyDelegatedCredential
      Src: /src/nss/lib/ssl/tls13con.c:5301,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:5306,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:5307,1
    - Dst: ssl_CheckSignatureSchemeConsistency
      Src: /src/nss/lib/ssl/tls13con.c:5313,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:5316,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/tls13con.c:5316,1
    - Dst: ssl_SignatureSchemeToHashType
      Src: /src/nss/lib/ssl/tls13con.c:5319,1
    - Dst: tls13_AddContextToHashes
      Src: /src/nss/lib/ssl/tls13con.c:5321,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:5323,1
    - Dst: ssl3_ConsumeHandshakeVariable
      Src: /src/nss/lib/ssl/tls13con.c:5327,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:5329,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:5334,1
    - Dst: SECKEY_ExtractPublicKey
      Src: /src/nss/lib/ssl/tls13con.c:5338,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/tls13con.c:5340,1
    - Dst: ssl_VerifySignedHashesWithPubKey
      Src: /src/nss/lib/ssl/tls13con.c:5344,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:5347,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/tls13con.c:5347,1
    - Dst: ssl_SignatureSchemeToAuthType
      Src: /src/nss/lib/ssl/tls13con.c:5353,1
    - Dst: ssl_SetAuthKeyBits
      Src: /src/nss/lib/ssl/tls13con.c:5356,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:5362,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:5369,1
    - Dst: ssl3_BeginHandleCertificateRequest
      Src: /src/nss/lib/ssl/tls13con.c:5370,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:5374,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/ssl/tls13con.c:5379,1
    - Dst: TLS13_SET_HS_STATE
      Src: /src/nss/lib/ssl/tls13con.c:5380,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/ssl/tls13con.c:5384,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 100
    argCount: 3
    argNames:
    - ss
    - b
    - length
    argTypes:
    - sslSocket*
    - PRUint8*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5386
      start: 5235
    functionDepth: 10
    functionLinenumber: 5235
    functionLinenumberEnd: 5386
    functionName: tls13_HandleCertificateVerify
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 1
    functionsReached:
    - tls13_IsVerifyingWithDelegatedCredential
    - ssl3_BeginHandleCertificateRequest
    - TLS13_CHECK_HS_STATE
    - ssl_HashPostHandshakeMessage
    - SECKEY_DestroyPublicKey
    - ssl_CheckSignatureSchemeConsistency
    - tls13_VerifyDelegatedCredential
    - PORT_SetError
    - FATAL_ERROR
    - tls13_AddContextToHashes
    - tls13_ComputeHandshakeHashes
    - ssl_SignatureSchemeToAuthType
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    - ssl_VerifySignedHashesWithPubKey
    - ssl_HashHandshakeMessage
    - ssl_MapLowLevelError
    - ssl_HaveRecvBufLock
    - TLS13_SET_HS_STATE
    - ssl_SignatureSchemeToHashType
    - ssl_SetAuthKeyBits
    - SSL_TRC
    - ssl3_ConsumeHandshakeVariable
    - SSL_GETPID
    - PORT_GetError
    - SECKEY_ExtractPublicKey
    - ssl_ConsumeSignatureScheme
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_HandleCertificateVerify(sslSocket *ss, PRUint8 *b,
      PRUint32 length)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:5402,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:5403,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/tls13con.c:5403,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/tls13con.c:5405,1
    - Dst: PK11_CreateDigestContext
      Src: /src/nss/lib/ssl/tls13con.c:5408,1
    - Dst: ssl3_HashTypeToOID
      Src: /src/nss/lib/ssl/tls13con.c:5408,1
    - Dst: PK11_DigestBegin
      Src: /src/nss/lib/ssl/tls13con.c:5412,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/tls13con.c:5414,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/tls13con.c:5419,1
    - Dst: PK11_DigestOp
      Src: /src/nss/lib/ssl/tls13con.c:5421,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/tls13con.c:5423,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/tls13con.c:5428,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:5431,1
    - Dst: PK11_DigestOp
      Src: /src/nss/lib/ssl/tls13con.c:5432,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/tls13con.c:5434,1
    - Dst: PK11_DigestOp
      Src: /src/nss/lib/ssl/tls13con.c:5437,1
    - Dst: PK11_DigestOp
      Src: /src/nss/lib/ssl/tls13con.c:5439,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/tls13con.c:5442,1
    - Dst: PK11_DigestFinal
      Src: /src/nss/lib/ssl/tls13con.c:5445,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/tls13con.c:5447,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/ssl/tls13con.c:5451,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/tls13con.c:5452,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/ssl/tls13con.c:5457,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 59
    argCount: 5
    argNames:
    - ss
    - b
    - length
    - hashes
    - hashType
    argTypes:
    - sslSocket*
    - PRUint8*
    - size_t
    - SSL3Hashes*
    - SSLHashType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5460
      start: 5391
    functionDepth: 9
    functionLinenumber: 5391
    functionLinenumberEnd: 5460
    functionName: tls13_ComputePskBinderHash
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 1
    functionsReached:
    - IS_DTLS
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    - PK11_DestroyContext
    - PK11_DigestOp
    - PK11_CreateDigestContext
    - ssl3_HashTypeToOID
    - PRINT_BUF
    - ssl_MapLowLevelError
    - PK11_DigestBegin
    - PK11_DigestFinal
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_ComputePskBinderHash(sslSocket *ss, PRUint8 *b, size_t
      length,\n                           SSL3Hashes *hashes, SSLHashType hashType)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:5475,1
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/lib/ssl/tls13con.c:5475,1
    - Dst: PR_LIST_HEAD
      Src: /src/nss/lib/ssl/tls13con.c:5476,1
    - Dst: tls13_GetHashSizeForHash
      Src: /src/nss/lib/ssl/tls13con.c:5477,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:5481,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13con.c:5483,1
    - Dst: sslBuffer_Append
      Src: /src/nss/lib/ssl/tls13con.c:5492,1
    - Dst: tls13_ComputePskBinderHash
      Src: /src/nss/lib/ssl/tls13con.c:5498,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:5506,1
    - Dst: tls13_ComputeFinished
      Src: /src/nss/lib/ssl/tls13con.c:5507,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:5514,1
    - Dst: sslBuffer_Append
      Src: /src/nss/lib/ssl/tls13con.c:5517,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - ss
    - extensions
    - chBuf
    argTypes:
    - sslSocket*
    - sslBuffer*
    - sslBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5524
      start: 5469
    functionDepth: 10
    functionLinenumber: 5469
    functionLinenumberEnd: 5524
    functionName: tls13_WriteExtensionsWithBinder
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - sslBuffer_Append
    - tls13_GetHashSizeForHash
    - tls13_ComputePskBinderHash
    - sslBuffer_AppendNumber
    - tls13_ComputeFinished
    - PR_LIST_HEAD
    - PR_CLIST_IS_EMPTY
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_WriteExtensionsWithBinder(sslSocket *ss, sslBuffer
      *extensions, sslBuffer *chBuf)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: tls13_GetHmacMechanismFromHash
      Src: /src/nss/lib/ssl/tls13con.c:5534,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:5540,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:5541,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:5542,1
    - Dst: SSL_ROLE
      Src: /src/nss/lib/ssl/tls13con.c:5542,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/tls13con.c:5543,1
    - Dst: tls13_HkdfExpandLabel
      Src: /src/nss/lib/ssl/tls13con.c:5546,1
    - Dst: strlen
      Src: /src/nss/lib/ssl/tls13con.c:5547,1
    - Dst: tls13_GetHmacMechanismFromHash
      Src: /src/nss/lib/ssl/tls13con.c:5548,1
    - Dst: tls13_GetHashSizeForHash
      Src: /src/nss/lib/ssl/tls13con.c:5549,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:5555,1
    - Dst: tls13_GetHashSizeForHash
      Src: /src/nss/lib/ssl/tls13con.c:5555,1
    - Dst: PK11_CreateContextBySymKey
      Src: /src/nss/lib/ssl/tls13con.c:5556,1
    - Dst: PK11_DigestBegin
      Src: /src/nss/lib/ssl/tls13con.c:5562,1
    - Dst: PK11_DigestOp
      Src: /src/nss/lib/ssl/tls13con.c:5566,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:5570,1
    - Dst: tls13_GetHashSizeForHash
      Src: /src/nss/lib/ssl/tls13con.c:5570,1
    - Dst: PK11_DigestFinal
      Src: /src/nss/lib/ssl/tls13con.c:5571,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/tls13con.c:5576,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/ssl/tls13con.c:5577,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/tls13con.c:5578,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/tls13con.c:5583,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/ssl/tls13con.c:5587,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:5590,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 8
    argNames:
    - ss
    - baseKey
    - hashType
    - hashes
    - sending
    - output
    - outputLen
    - maxOutputLen
    argTypes:
    - sslSocket*
    - PK11SymKey*
    - SSLHashType
    - SSL3Hashes*
    - PRBool
    - PRUint8*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5592
      start: 5526
    functionDepth: 11
    functionLinenumber: 5526
    functionLinenumberEnd: 5592
    functionName: tls13_ComputeFinished
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - SSL_ROLE
    - PK11_DestroyContext
    - PK11_DigestOp
    - tls13_HkdfExpandLabel
    - SSL_TRC
    - SSL_GETPID
    - PRINT_BUF
    - tls13_GetHashSizeForHash
    - PK11_FreeSymKey
    - PORT_SetError
    - tls13_GetHmacMechanismFromHash
    - PK11_DigestBegin
    - PK11_CreateContextBySymKey
    - PK11_DigestFinal
    - strlen
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_ComputeFinished(sslSocket *ss, PK11SymKey *baseKey,\n
      \                     SSLHashType hashType, const SSL3Hashes *hashes,\n                      PRBool
      sending, PRUint8 *output, unsigned int *outputLen,\n                      unsigned
      int maxOutputLen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:5602,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:5602,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:5604,1
    - Dst: ssl_HaveXmitBufLock
      Src: /src/nss/lib/ssl/tls13con.c:5604,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:5605,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/tls13con.c:5605,1
    - Dst: tls13_ComputeHandshakeHashes
      Src: /src/nss/lib/ssl/tls13con.c:5607,1
    - Dst: LOG_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:5609,1
    - Dst: ssl_GetSpecReadLock
      Src: /src/nss/lib/ssl/tls13con.c:5613,1
    - Dst: tls13_ComputeFinished
      Src: /src/nss/lib/ssl/tls13con.c:5614,1
    - Dst: tls13_GetHash
      Src: /src/nss/lib/ssl/tls13con.c:5614,1
    - Dst: ssl_ReleaseSpecReadLock
      Src: /src/nss/lib/ssl/tls13con.c:5616,1
    - Dst: LOG_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:5618,1
    - Dst: ssl3_AppendHandshakeHeader
      Src: /src/nss/lib/ssl/tls13con.c:5622,1
    - Dst: ssl3_AppendHandshake
      Src: /src/nss/lib/ssl/tls13con.c:5627,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - ss
    - baseKey
    argTypes:
    - sslSocket*
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5634
      start: 5594
    functionDepth: 12
    functionLinenumber: 5594
    functionLinenumberEnd: 5634
    functionName: tls13_SendFinished
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    - LOG_ERROR
    - ssl_HaveXmitBufLock
    - SSL_TRC
    - SSL_GETPID
    - ssl3_AppendHandshake
    - ssl3_AppendHandshakeHeader
    - tls13_ComputeFinished
    - tls13_ComputeHandshakeHashes
    - ssl_GetSpecReadLock
    - ssl_ReleaseSpecReadLock
    - tls13_GetHash
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_SendFinished(sslSocket *ss, PK11SymKey *baseKey)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:5647,1
    - Dst: tls13_ComputeFinished
      Src: /src/nss/lib/ssl/tls13con.c:5651,1
    - Dst: tls13_GetHash
      Src: /src/nss/lib/ssl/tls13con.c:5651,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:5654,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:5660,1
    - Dst: NSS_SecureMemcmp
      Src: /src/nss/lib/ssl/tls13con.c:5665,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:5667,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 6
    argNames:
    - ss
    - message
    - secret
    - b
    - length
    - hashes
    argTypes:
    - sslSocket*
    - SSLHandshakeType
    - PK11SymKey*
    - PRUint8*
    - PRUint32
    - SSL3Hashes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5674
      start: 5636
    functionDepth: 12
    functionLinenumber: 5636
    functionLinenumberEnd: 5674
    functionName: tls13_VerifyFinished
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 1
    functionsReached:
    - NSS_SecureMemcmp
    - FATAL_ERROR
    - tls13_GetHash
    - tls13_ComputeFinished
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_VerifyFinished(sslSocket *ss, SSLHandshakeType message,\n
      \                    PK11SymKey *secret,\n                     PRUint8 *b, PRUint32
      length,\n                     const SSL3Hashes *hashes)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TLS13_CHECK_HS_STATE
      Src: /src/nss/lib/ssl/tls13con.c:5683,1
    - Dst: tls13_ComputeHandshakeHashes
      Src: /src/nss/lib/ssl/tls13con.c:5690,1
    - Dst: LOG_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:5692,1
    - Dst: ssl_HashPostHandshakeMessage
      Src: /src/nss/lib/ssl/tls13con.c:5697,1
    - Dst: ssl_HashHandshakeMessage
      Src: /src/nss/lib/ssl/tls13con.c:5699,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:5702,1
    - Dst: tls13_VerifyFinished
      Src: /src/nss/lib/ssl/tls13con.c:5706,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 4
    argNames:
    - ss
    - key
    - b
    - length
    argTypes:
    - sslSocket*
    - PK11SymKey*
    - PRUint8*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5708
      start: 5676
    functionDepth: 13
    functionLinenumber: 5676
    functionLinenumberEnd: 5708
    functionName: tls13_CommonHandleFinished
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - ssl_HashPostHandshakeMessage
    - LOG_ERROR
    - ssl_HashHandshakeMessage
    - tls13_VerifyFinished
    - PORT_SetError
    - TLS13_CHECK_HS_STATE
    - tls13_ComputeHandshakeHashes
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_CommonHandleFinished(sslSocket *ss, PK11SymKey *key,\n
      \                          PRUint8 *b, PRUint32 length)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:5715,1
    - Dst: ssl_HaveRecvBufLock
      Src: /src/nss/lib/ssl/tls13con.c:5715,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:5716,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/tls13con.c:5716,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:5718,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:5719,1
    - Dst: tls13_CommonHandleFinished
      Src: /src/nss/lib/ssl/tls13con.c:5721,1
    - Dst: tls13_SendClientSecondRound
      Src: /src/nss/lib/ssl/tls13con.c:5727,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - ss
    - b
    - length
    argTypes:
    - sslSocket*
    - PRUint8*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5728
      start: 5710
    functionDepth: 14
    functionLinenumber: 5710
    functionLinenumberEnd: 5728
    functionName: tls13_ClientHandleFinished
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    - tls13_SendClientSecondRound
    - SSL_TRC
    - tls13_CommonHandleFinished
    - SSL_GETPID
    - ssl_HaveRecvBufLock
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_ClientHandleFinished(sslSocket *ss, PRUint8 *b, PRUint32
      length)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:5735,1
    - Dst: ssl_HaveRecvBufLock
      Src: /src/nss/lib/ssl/tls13con.c:5735,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:5736,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/tls13con.c:5736,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:5738,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:5739,1
    - Dst: tls13_ShouldRequestClientAuth
      Src: /src/nss/lib/ssl/tls13con.c:5741,1
    - Dst: tls13_MaybeHandleSuppressedEndOfEarlyData
      Src: /src/nss/lib/ssl/tls13con.c:5744,1
    - Dst: tls13_IsPostHandshake
      Src: /src/nss/lib/ssl/tls13con.c:5749,1
    - Dst: ssl_Time
      Src: /src/nss/lib/ssl/tls13con.c:5751,1
    - Dst: tls13_CommonHandleFinished
      Src: /src/nss/lib/ssl/tls13con.c:5755,1
    - Dst: TLS13_SET_HS_STATE
      Src: /src/nss/lib/ssl/tls13con.c:5763,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:5765,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/ssl/tls13con.c:5766,1
    - Dst: tls13_SendKeyUpdate
      Src: /src/nss/lib/ssl/tls13con.c:5772,1
    - Dst: tls13_ShouldRequestClientAuth
      Src: /src/nss/lib/ssl/tls13con.c:5783,1
    - Dst: dtls_ReceivedFirstMessageInFlight
      Src: /src/nss/lib/ssl/tls13con.c:5785,1
    - Dst: tls13_SetCipherSpec
      Src: /src/nss/lib/ssl/tls13con.c:5788,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:5791,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/tls13con.c:5795,1
    - Dst: ssl_CipherSpecReleaseByEpoch
      Src: /src/nss/lib/ssl/tls13con.c:5796,1
    - Dst: dtls_StartTimer
      Src: /src/nss/lib/ssl/tls13con.c:5799,1
    - Dst: tls13_ComputeFinalSecrets
      Src: /src/nss/lib/ssl/tls13con.c:5807,1
    - Dst: tls13_FinishHandshake
      Src: /src/nss/lib/ssl/tls13con.c:5812,1
    - Dst: ssl_GetXmitBufLock
      Src: /src/nss/lib/ssl/tls13con.c:5817,1
    - Dst: tls13_SendNewSessionTicket
      Src: /src/nss/lib/ssl/tls13con.c:5820,1
    - Dst: ssl3_FlushHandshake
      Src: /src/nss/lib/ssl/tls13con.c:5824,1
    - Dst: ssl_ReleaseXmitBufLock
      Src: /src/nss/lib/ssl/tls13con.c:5829,1
    - Dst: ssl_ReleaseXmitBufLock
      Src: /src/nss/lib/ssl/tls13con.c:5833,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 74
    argCount: 3
    argNames:
    - ss
    - b
    - length
    argTypes:
    - sslSocket*
    - PRUint8*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5835
      start: 5730
    functionDepth: 14
    functionLinenumber: 5730
    functionLinenumberEnd: 5835
    functionName: tls13_ServerHandleFinished
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 1
    functionsReached:
    - tls13_IsPostHandshake
    - tls13_SendKeyUpdate
    - PK11_DestroyContext
    - tls13_CommonHandleFinished
    - tls13_ComputeFinalSecrets
    - ssl_ReleaseXmitBufLock
    - FATAL_ERROR
    - ssl3_FlushHandshake
    - tls13_SetCipherSpec
    - IS_DTLS
    - PORT_Assert
    - ssl_GetXmitBufLock
    - ssl_HaveSSL3HandshakeLock
    - tls13_FinishHandshake
    - ssl_Time
    - tls13_MaybeHandleSuppressedEndOfEarlyData
    - TLS13_SET_HS_STATE
    - ssl_HaveRecvBufLock
    - tls13_ShouldRequestClientAuth
    - dtls_ReceivedFirstMessageInFlight
    - SSL_TRC
    - SSL_GETPID
    - tls13_SendNewSessionTicket
    - ssl_CipherSpecReleaseByEpoch
    - dtls_StartTimer
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_ServerHandleFinished(sslSocket *ss, PRUint8 *b, PRUint32
      length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:5840,1
    - Dst: ssl_HaveRecvBufLock
      Src: /src/nss/lib/ssl/tls13con.c:5840,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:5841,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/tls13con.c:5841,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:5842,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/tls13con.c:5848,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/tls13con.c:5850,1
    - Dst: TLS13_SET_HS_STATE
      Src: /src/nss/lib/ssl/tls13con.c:5853,1
    - Dst: ssl_FinishHandshake
      Src: /src/nss/lib/ssl/tls13con.c:5855,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5856
      start: 5837
    functionDepth: 6
    functionLinenumber: 5837
    functionLinenumberEnd: 5856
    functionName: tls13_FinishHandshake
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    - ssl_FinishHandshake
    - TLS13_SET_HS_STATE
    - ssl_HaveRecvBufLock
    - PK11_FreeSymKey
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_FinishHandshake(sslSocket *ss)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:5866,1
    - Dst: ssl_HaveXmitBufLock
      Src: /src/nss/lib/ssl/tls13con.c:5866,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:5867,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/tls13con.c:5874,1
    - Dst: ssl3_SendEmptyCertificate
      Src: /src/nss/lib/ssl/tls13con.c:5879,1
    - Dst: tls13_SendCertificate
      Src: /src/nss/lib/ssl/tls13con.c:5885,1
    - Dst: ssl3_UpdatePostHandshakeHashes
      Src: /src/nss/lib/ssl/tls13con.c:5892,1
    - Dst: SSL_BUFFER_BASE
      Src: /src/nss/lib/ssl/tls13con.c:5893,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/tls13con.c:5894,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/tls13con.c:5901,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/ssl/tls13con.c:5903,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/ssl/tls13con.c:5906,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/tls13con.c:5913,1
    - Dst: tls13_SendCertificateVerify
      Src: /src/nss/lib/ssl/tls13con.c:5916,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/lib/ssl/tls13con.c:5917,1
    - Dst: ssl3_UpdatePostHandshakeHashes
      Src: /src/nss/lib/ssl/tls13con.c:5924,1
    - Dst: SSL_BUFFER_BASE
      Src: /src/nss/lib/ssl/tls13con.c:5925,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/tls13con.c:5926,1
    - Dst: tls13_SendFinished
      Src: /src/nss/lib/ssl/tls13con.c:5933,1
    - Dst: ssl3_FlushHandshake
      Src: /src/nss/lib/ssl/tls13con.c:5937,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:5947,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/tls13con.c:5947,1
    - Dst: LOG_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:5950,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/tls13con.c:5950,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 75
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5952
      start: 5860
    functionDepth: 13
    functionLinenumber: 5860
    functionLinenumberEnd: 5952
    functionName: tls13_SendClientSecondFlight
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 1
    functionsReached:
    - tls13_SendFinished
    - PORT_Assert
    - SSL_BUFFER_LEN
    - SSL_BUFFER_BASE
    - tls13_SendCertificateVerify
    - LOG_ERROR
    - PORT_FreeArena
    - ssl_HaveXmitBufLock
    - PORT_GetError
    - SECKEY_DestroyPrivateKey
    - ssl3_UpdatePostHandshakeHashes
    - FATAL_ERROR
    - ssl3_FlushHandshake
    - tls13_SendCertificate
    - PORT_Memset
    - ssl3_SendEmptyCertificate
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_SendClientSecondFlight(sslSocket *ss)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:5959,1
    - Dst: ssl_HaveRecvBufLock
      Src: /src/nss/lib/ssl/tls13con.c:5959,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:5960,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/tls13con.c:5960,1
    - Dst: PR_NOT_REACHED
      Src: /src/nss/lib/ssl/tls13con.c:5967,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:5968,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:5972,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:5974,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:5976,1
    - Dst: tls13_ComputeApplicationSecrets
      Src: /src/nss/lib/ssl/tls13con.c:5980,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:5982,1
    - Dst: ssl_GetXmitBufLock
      Src: /src/nss/lib/ssl/tls13con.c:5987,1
    - Dst: tls13_SendEndOfEarlyData
      Src: /src/nss/lib/ssl/tls13con.c:5988,1
    - Dst: ssl_ReleaseXmitBufLock
      Src: /src/nss/lib/ssl/tls13con.c:5989,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/tls13con.c:5993,1
    - Dst: ssl_GetXmitBufLock
      Src: /src/nss/lib/ssl/tls13con.c:5996,1
    - Dst: ssl3_SendChangeCipherSpecsInt
      Src: /src/nss/lib/ssl/tls13con.c:5997,1
    - Dst: ssl_ReleaseXmitBufLock
      Src: /src/nss/lib/ssl/tls13con.c:5998,1
    - Dst: tls13_SetCipherSpec
      Src: /src/nss/lib/ssl/tls13con.c:6004,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:6007,1
    - Dst: tls13_SetCipherSpec
      Src: /src/nss/lib/ssl/tls13con.c:6011,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:6014,1
    - Dst: ssl_GetXmitBufLock
      Src: /src/nss/lib/ssl/tls13con.c:6018,1
    - Dst: tls13_SendClientSecondFlight
      Src: /src/nss/lib/ssl/tls13con.c:6020,1
    - Dst: ssl_ReleaseXmitBufLock
      Src: /src/nss/lib/ssl/tls13con.c:6021,1
    - Dst: tls13_SetCipherSpec
      Src: /src/nss/lib/ssl/tls13con.c:6025,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:6028,1
    - Dst: tls13_ComputeFinalSecrets
      Src: /src/nss/lib/ssl/tls13con.c:6032,1
    - Dst: tls13_FinishHandshake
      Src: /src/nss/lib/ssl/tls13con.c:6038,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 61
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6039
      start: 5954
    functionDepth: 14
    functionLinenumber: 5954
    functionLinenumberEnd: 6039
    functionName: tls13_SendClientSecondRound
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 1
    functionsReached:
    - IS_DTLS
    - PORT_Assert
    - ssl_GetXmitBufLock
    - ssl_HaveSSL3HandshakeLock
    - PR_NOT_REACHED
    - tls13_FinishHandshake
    - tls13_SendEndOfEarlyData
    - SSL_TRC
    - SSL_GETPID
    - tls13_ComputeFinalSecrets
    - tls13_ComputeApplicationSecrets
    - ssl_ReleaseXmitBufLock
    - PORT_SetError
    - FATAL_ERROR
    - tls13_SendClientSecondFlight
    - ssl_HaveRecvBufLock
    - tls13_SetCipherSpec
    - ssl3_SendChangeCipherSpecsInt
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_SendClientSecondRound(sslSocket *ss)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: SSL_BUFFER
      Src: /src/nss/lib/ssl/tls13con.c:6070,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:6072,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:6073,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/lib/ssl/tls13con.c:6087,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13con.c:6092,1
    - Dst: tls13_HkdfExpandLabel
      Src: /src/nss/lib/ssl/tls13con.c:6098,1
    - Dst: tls13_GetHash
      Src: /src/nss/lib/ssl/tls13con.c:6099,1
    - Dst: strlen
      Src: /src/nss/lib/ssl/tls13con.c:6102,1
    - Dst: tls13_GetHashSize
      Src: /src/nss/lib/ssl/tls13con.c:6104,1
    - Dst: ssl3_EncodeSessionTicket
      Src: /src/nss/lib/ssl/tls13con.c:6110,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/tls13con.c:6112,1
    - Dst: ssl3_AppendHandshakeHeader
      Src: /src/nss/lib/ssl/tls13con.c:6126,1
    - Dst: ssl3_AppendHandshakeNumber
      Src: /src/nss/lib/ssl/tls13con.c:6132,1
    - Dst: ssl3_AppendHandshakeNumber
      Src: /src/nss/lib/ssl/tls13con.c:6136,1
    - Dst: ssl3_AppendHandshakeVariable
      Src: /src/nss/lib/ssl/tls13con.c:6141,1
    - Dst: ssl3_AppendHandshakeVariable
      Src: /src/nss/lib/ssl/tls13con.c:6146,1
    - Dst: ssl3_AppendHandshakeNumber
      Src: /src/nss/lib/ssl/tls13con.c:6152,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/tls13con.c:6161,1
    - Dst: tls13_RandomGreaseValue
      Src: /src/nss/lib/ssl/tls13con.c:6164,1
    - Dst: ssl3_AppendHandshakeNumber
      Src: /src/nss/lib/ssl/tls13con.c:6168,1
    - Dst: ssl3_AppendHandshakeNumber
      Src: /src/nss/lib/ssl/tls13con.c:6172,1
    - Dst: ssl3_AppendHandshakeNumber
      Src: /src/nss/lib/ssl/tls13con.c:6179,1
    - Dst: ssl3_AppendHandshakeNumber
      Src: /src/nss/lib/ssl/tls13con.c:6185,1
    - Dst: ssl3_AppendHandshakeNumber
      Src: /src/nss/lib/ssl/tls13con.c:6189,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/tls13con.c:6194,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/tls13con.c:6199,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 93
    argCount: 3
    argNames:
    - ss
    - appToken
    - appTokenLen
    argTypes:
    - sslSocket*
    - PRUint8*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6202
      start: 6058
    functionDepth: 9
    functionLinenumber: 6058
    functionLinenumberEnd: 6202
    functionName: tls13_SendNewSessionTicket
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 1
    functionsReached:
    - ssl3_EncodeSessionTicket
    - tls13_HkdfExpandLabel
    - SSL_TRC
    - SSL_GETPID
    - sslBuffer_AppendNumber
    - SSL_BUFFER
    - ssl3_AppendHandshakeHeader
    - ssl3_AppendHandshakeNumber
    - PR_ASSERT
    - PK11_GenerateRandom
    - ssl3_AppendHandshakeVariable
    - tls13_GetHashSize
    - tls13_RandomGreaseValue
    - PK11_FreeSymKey
    - tls13_GetHash
    - SECITEM_FreeItem
    - strlen
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_SendNewSessionTicket(sslSocket *ss, const PRUint8
      *appToken,\n                           unsigned int appTokenLen)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/tls13con.c:6211,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/tls13con.c:6216,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:6217,1
    - Dst: tls13_IsPostHandshake
      Src: /src/nss/lib/ssl/tls13con.c:6221,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:6223,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:6231,1
    - Dst: ssl_GetSSL3HandshakeLock
      Src: /src/nss/lib/ssl/tls13con.c:6235,1
    - Dst: ssl_GetXmitBufLock
      Src: /src/nss/lib/ssl/tls13con.c:6236,1
    - Dst: tls13_SendNewSessionTicket
      Src: /src/nss/lib/ssl/tls13con.c:6237,1
    - Dst: ssl3_FlushHandshake
      Src: /src/nss/lib/ssl/tls13con.c:6239,1
    - Dst: ssl_ReleaseXmitBufLock
      Src: /src/nss/lib/ssl/tls13con.c:6241,1
    - Dst: ssl_ReleaseSSL3HandshakeLock
      Src: /src/nss/lib/ssl/tls13con.c:6242,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - fd
    - token
    - tokenLen
    argTypes:
    - PRFileDesc*
    - PRUint8*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6245
      start: 6204
    functionDepth: 10
    functionLinenumber: 6204
    functionLinenumberEnd: 6245
    functionName: SSLExp_SendSessionTicket
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - IS_DTLS
    - ssl_GetXmitBufLock
    - ssl_GetSSL3HandshakeLock
    - tls13_IsPostHandshake
    - ssl_ReleaseSSL3HandshakeLock
    - tls13_SendNewSessionTicket
    - ssl_ReleaseXmitBufLock
    - PORT_SetError
    - ssl3_FlushHandshake
    - ssl_FindSocket
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSLExp_SendSessionTicket(PRFileDesc *fd, const PRUint8 *token,\n
      \                        unsigned int tokenLen)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:6257,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:6258,1
    - Dst: TLS13_CHECK_HS_STATE
      Src: /src/nss/lib/ssl/tls13con.c:6260,1
    - Dst: tls13_IsPostHandshake
      Src: /src/nss/lib/ssl/tls13con.c:6265,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:6266,1
    - Dst: ssl_Time
      Src: /src/nss/lib/ssl/tls13con.c:6271,1
    - Dst: ssl3_ConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/tls13con.c:6272,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:6275,1
    - Dst: ssl3_ConsumeHandshake
      Src: /src/nss/lib/ssl/tls13con.c:6281,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:6284,1
    - Dst: PR_ntohl
      Src: /src/nss/lib/ssl/tls13con.c:6287,1
    - Dst: ssl3_ConsumeHandshakeVariable
      Src: /src/nss/lib/ssl/tls13con.c:6290,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:6292,1
    - Dst: ssl3_ConsumeHandshakeVariable
      Src: /src/nss/lib/ssl/tls13con.c:6298,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:6300,1
    - Dst: ssl3_ConsumeHandshakeVariable
      Src: /src/nss/lib/ssl/tls13con.c:6306,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:6308,1
    - Dst: ssl3_HandleExtensions
      Src: /src/nss/lib/ssl/tls13con.c:6313,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:6316,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:6328,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/ssl/tls13con.c:6329,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:6331,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/tls13con.c:6334,1
    - Dst: ssl3_NewSessionID
      Src: /src/nss/lib/ssl/tls13con.c:6343,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:6349,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/ssl/tls13con.c:6350,1
    - Dst: ssl_FreeSID
      Src: /src/nss/lib/ssl/tls13con.c:6352,1
    - Dst: ssl_UncacheSessionID
      Src: /src/nss/lib/ssl/tls13con.c:6357,1
    - Dst: ssl_FreeSID
      Src: /src/nss/lib/ssl/tls13con.c:6358,1
    - Dst: ssl3_SetSIDSessionTicket
      Src: /src/nss/lib/ssl/tls13con.c:6362,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:6363,1
    - Dst: tls13_HkdfExpandLabel
      Src: /src/nss/lib/ssl/tls13con.c:6365,1
    - Dst: tls13_GetHash
      Src: /src/nss/lib/ssl/tls13con.c:6366,1
    - Dst: strlen
      Src: /src/nss/lib/ssl/tls13con.c:6369,1
    - Dst: tls13_GetHashSize
      Src: /src/nss/lib/ssl/tls13con.c:6371,1
    - Dst: ssl3_FillInCachedSID
      Src: /src/nss/lib/ssl/tls13con.c:6377,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/tls13con.c:6378,1
    - Dst: ssl_CacheSessionID
      Src: /src/nss/lib/ssl/tls13con.c:6384,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 83
    argCount: 3
    argNames:
    - ss
    - b
    - length
    argTypes:
    - sslSocket*
    - PRUint8*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6388
      start: 6247
    functionDepth: 13
    functionLinenumber: 6247
    functionLinenumberEnd: 6388
    functionName: tls13_HandleNewSessionTicket
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 1
    functionsReached:
    - ssl3_HandleExtensions
    - tls13_IsPostHandshake
    - TLS13_CHECK_HS_STATE
    - CERT_DupCertificate
    - ssl_CacheSessionID
    - ssl3_NewSessionID
    - tls13_GetHash
    - strlen
    - ssl3_ConsumeHandshake
    - ssl_FreeSID
    - ssl3_SetSIDSessionTicket
    - FATAL_ERROR
    - PORT_SetError
    - PR_ntohl
    - PORT_Assert
    - ssl_Time
    - PRINT_BUF
    - ssl3_FillInCachedSID
    - tls13_HkdfExpandLabel
    - ssl_UncacheSessionID
    - SSL_TRC
    - ssl3_ConsumeHandshakeVariable
    - SSL_GETPID
    - SECITEM_CopyItem
    - tls13_GetHashSize
    - ssl3_ConsumeHandshakeNumber
    - PK11_FreeSymKey
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_HandleNewSessionTicket(sslSocket *ss, PRUint8 *b, PRUint32
      length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6392
      start: 6391
    functionDepth: 0
    functionLinenumber: 6391
    functionLinenumberEnd: 6392
    functionName: _M
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _M(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6393
      start: 6392
    functionDepth: 0
    functionLinenumber: 6392
    functionLinenumberEnd: 6393
    functionName: _M1
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _M1(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6394
      start: 6393
    functionDepth: 0
    functionLinenumber: 6393
    functionLinenumberEnd: 6394
    functionName: _M2
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _M2(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6395
      start: 6394
    functionDepth: 0
    functionLinenumber: 6394
    functionLinenumberEnd: 6395
    functionName: _M3
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _M3(a, b, c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:6435,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/ssl/tls13con.c:6443,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:6445,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/ssl/tls13con.c:6450,1
    - Dst: _M
      Src: /src/nss/lib/ssl/tls13con.c:6455,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 15
    argCount: 2
    argNames:
    - extension
    - message
    argTypes:
    - PRUint16
    - SSLHandshakeType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6460
      start: 6430
    functionDepth: 1
    functionLinenumber: 6430
    functionLinenumberEnd: 6460
    functionName: tls13_ExtensionStatus
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 2
    functionsReached:
    - PORT_Assert
    - PR_ARRAY_SIZE
    - _M
    linkageType: ''
    returnType: tls13ExtensionStatus
    signature: tls13ExtensionStatus tls13_ExtensionStatus(PRUint16 extension, SSLHandshakeType
      message)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SSL_BUFFER_FIXED
      Src: /src/nss/lib/ssl/tls13con.c:6479,1
    - Dst: IS_DTLS_1_OR_12
      Src: /src/nss/lib/ssl/tls13con.c:6481,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13con.c:6482,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13con.c:6487,1
    - Dst: IS_DTLS_1_OR_12
      Src: /src/nss/lib/ssl/tls13con.c:6487,1
    - Dst: sslBuffer_Append
      Src: /src/nss/lib/ssl/tls13con.c:6492,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 8
    argNames:
    - ss
    - header
    - headerLen
    - epoch
    - seqNum
    - aad
    - aadLength
    - maxLength
    argTypes:
    - sslSocket*
    - PRUint8*
    - unsigned int
    - DTLSEpoch
    - sslSequenceNumber
    - PRUint8*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6500
      start: 6471
    functionDepth: 1
    functionLinenumber: 6471
    functionLinenumberEnd: 6500
    functionName: tls13_FormatAdditionalData
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - SSL_BUFFER_FIXED
    - sslBuffer_AppendNumber
    - sslBuffer_Append
    - IS_DTLS_1_OR_12
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_FormatAdditionalData(\n    sslSocket *ss,\n    const
      PRUint8 *header, unsigned int headerLen,\n    DTLSEpoch epoch, sslSequenceNumber
      seqNum,\n    PRUint8 *aad, unsigned int *aadLength, unsigned int maxLength)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:6507,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:6508,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:6509,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/tls13con.c:6514,1
    - Dst: PR_MIN
      Src: /src/nss/lib/ssl/tls13con.c:6519,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - ss
    - type
    - toSend
    argTypes:
    - sslSocket*
    - SSLContentType
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6522
      start: 6502
    functionDepth: 1
    functionLinenumber: 6502
    functionLinenumberEnd: 6522
    functionName: tls13_LimitEarlyData
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 1
    functionsReached:
    - IS_DTLS
    - PORT_Assert
    - PR_MIN
    linkageType: ''
    returnType: PRInt32
    signature: PRInt32 tls13_LimitEarlyData(sslSocket *ss, SSLContentType type, PRInt32
      toSend)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:6536,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:6537,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:6538,1
    - Dst: SSL_BUFFER_SPACE
      Src: /src/nss/lib/ssl/tls13con.c:6541,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:6542,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/tls13con.c:6548,1
    - Dst: SSL_BUFFER_NEXT
      Src: /src/nss/lib/ssl/tls13con.c:6548,1
    - Dst: sslBuffer_Skip
      Src: /src/nss/lib/ssl/tls13con.c:6552,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:6553,1
    - Dst: SSL_BUFFER_FIXED
      Src: /src/nss/lib/ssl/tls13con.c:6556,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:6566,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:6571,1
    - Dst: SSL_BUFFER_NEXT
      Src: /src/nss/lib/ssl/tls13con.c:6574,1
    - Dst: ssl_InsertRecordHeader
      Src: /src/nss/lib/ssl/tls13con.c:6577,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13con.c:6583,1
    - Dst: tls13_FormatAdditionalData
      Src: /src/nss/lib/ssl/tls13con.c:6588,1
    - Dst: SSL_BUFFER_BASE
      Src: /src/nss/lib/ssl/tls13con.c:6588,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/tls13con.c:6588,1
    - Dst: tls13_SetupAeadIv
      Src: /src/nss/lib/ssl/tls13con.c:6595,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/tls13con.c:6595,1
    - Dst: tls13_AEAD
      Src: /src/nss/lib/ssl/tls13con.c:6597,1
    - Dst: SSL_BUFFER_NEXT
      Src: /src/nss/lib/ssl/tls13con.c:6603,1
    - Dst: SSL_BUFFER_SPACE
      Src: /src/nss/lib/ssl/tls13con.c:6605,1
    - Dst: SSL_BUFFER_NEXT
      Src: /src/nss/lib/ssl/tls13con.c:6607,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:6610,1
    - Dst: sslBuffer_Skip
      Src: /src/nss/lib/ssl/tls13con.c:6613,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:6614,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 6
    argNames:
    - ss
    - cwSpec
    - type
    - pIn
    - contentLen
    - wrBuf
    argTypes:
    - sslSocket*
    - ssl3CipherSpec*
    - SSLContentType
    - PRUint8*
    - PRUint32
    - sslBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6618
      start: 6524
    functionDepth: 12
    functionLinenumber: 6524
    functionLinenumberEnd: 6618
    functionName: tls13_ProtectRecord
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - IS_DTLS
    - PORT_Assert
    - SSL_BUFFER_LEN
    - tls13_SetupAeadIv
    - PORT_Memcpy
    - SSL_BUFFER_BASE
    - SSL_BUFFER_SPACE
    - SSL_TRC
    - tls13_FormatAdditionalData
    - SSL_GETPID
    - sslBuffer_AppendNumber
    - PORT_SetError
    - SSL_BUFFER_NEXT
    - sslBuffer_Skip
    - SSL_BUFFER_FIXED
    - tls13_AEAD
    - ssl_InsertRecordHeader
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_ProtectRecord(sslSocket *ss,\n                    ssl3CipherSpec
      *cwSpec,\n                    SSLContentType type,\n                    const
      PRUint8 *pIn,\n                    PRUint32 contentLen,\n                    sslBuffer
      *wrBuf)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:6648,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:6649,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:6650,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/tls13con.c:6663,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:6666,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:6668,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:6669,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:6677,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:6679,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:6680,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:6691,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/tls13con.c:6696,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:6702,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:6703,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:6709,1
    - Dst: tls13_FormatAdditionalData
      Src: /src/nss/lib/ssl/tls13con.c:6710,1
    - Dst: tls13_AEAD
      Src: /src/nss/lib/ssl/tls13con.c:6717,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/tls13con.c:6730,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:6734,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:6736,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:6737,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:6745,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:6758,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:6758,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:6762,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/tls13con.c:6777,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/tls13con.c:6778,1
    - Dst: dtls_IsDtls13Ciphertext
      Src: /src/nss/lib/ssl/tls13con.c:6778,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:6782,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:6786,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:6798,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:6804,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:6806,1
    - Dst: SSL_ROLE
      Src: /src/nss/lib/ssl/tls13con.c:6806,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 80
    argCount: 6
    argNames:
    - ss
    - spec
    - cText
    - plaintext
    - innerType
    - alert
    argTypes:
    - sslSocket*
    - ssl3CipherSpec*
    - SSL3Ciphertext*
    - sslBuffer*
    - SSLContentType*
    - SSL3AlertDescription*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6809
      start: 6629
    functionDepth: 12
    functionLinenumber: 6629
    functionLinenumberEnd: 6809
    functionName: tls13_UnprotectRecord
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - IS_DTLS
    - PORT_Assert
    - SSL_ROLE
    - dtls_IsDtls13Ciphertext
    - SSL_TRC
    - tls13_FormatAdditionalData
    - SSL_GETPID
    - PORT_SetError
    - tls13_AEAD
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_UnprotectRecord(sslSocket *ss,\n                      ssl3CipherSpec
      *spec,\n                      SSL3Ciphertext *cText,\n                      sslBuffer
      *plaintext,\n                      SSLContentType *innerType,\n                      SSL3AlertDescription
      *alert)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/lib/ssl/tls13con.c:6838,1
    - Dst: PR_LIST_HEAD
      Src: /src/nss/lib/ssl/tls13con.c:6841,1
    - Dst: tls13_GetHashForCipherSuite
      Src: /src/nss/lib/ssl/tls13con.c:6851,1
    - Dst: ssl_AlpnTagAllowed
      Src: /src/nss/lib/ssl/tls13con.c:6858,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:6860,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 2
    argNames:
    - ss
    - sid
    argTypes:
    - sslSocket*
    - sslSessionID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6862
      start: 6824
    functionDepth: 2
    functionLinenumber: 6824
    functionLinenumberEnd: 6862
    functionName: tls13_ClientAllow0Rtt
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - tls13_GetHashForCipherSuite
    - ssl_AlpnTagAllowed
    - PR_LIST_HEAD
    - PR_CLIST_IS_EMPTY
    linkageType: ''
    returnType: PRBool
    signature: PRBool tls13_ClientAllow0Rtt(const sslSocket *ss, const sslSessionID
      *sid)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_ExtensionAdvertised
      Src: /src/nss/lib/ssl/tls13con.c:6871,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:6881,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:6881,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/ssl/tls13con.c:6887,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/tls13con.c:6894,1
    - Dst: ssl_GetSpecWriteLock
      Src: /src/nss/lib/ssl/tls13con.c:6897,1
    - Dst: tls13_SetSpecRecordVersion
      Src: /src/nss/lib/ssl/tls13con.c:6898,1
    - Dst: ssl_ReleaseSpecWriteLock
      Src: /src/nss/lib/ssl/tls13con.c:6899,1
    - Dst: ssl_GetXmitBufLock
      Src: /src/nss/lib/ssl/tls13con.c:6900,1
    - Dst: ssl3_SendChangeCipherSpecsInt
      Src: /src/nss/lib/ssl/tls13con.c:6901,1
    - Dst: ssl_ReleaseXmitBufLock
      Src: /src/nss/lib/ssl/tls13con.c:6902,1
    - Dst: ssl3_MaybeUpdateHashWithSavedRecord
      Src: /src/nss/lib/ssl/tls13con.c:6910,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:6916,1
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/lib/ssl/tls13con.c:6916,1
    - Dst: PR_LIST_HEAD
      Src: /src/nss/lib/ssl/tls13con.c:6917,1
    - Dst: tls13_DeriveEarlySecrets
      Src: /src/nss/lib/ssl/tls13con.c:6918,1
    - Dst: ssl_CipherSpecAddRef
      Src: /src/nss/lib/ssl/tls13con.c:6925,1
    - Dst: tls13_SetCipherSpec
      Src: /src/nss/lib/ssl/tls13con.c:6927,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6935
      start: 6864
    functionDepth: 13
    functionLinenumber: 6864
    functionLinenumberEnd: 6935
    functionName: tls13_MaybeDo0RTTHandshake
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - IS_DTLS
    - ssl_GetXmitBufLock
    - PORT_Assert
    - tls13_DeriveEarlySecrets
    - ssl_GetSpecWriteLock
    - ssl_CipherSpecAddRef
    - SSL_TRC
    - SSL_GETPID
    - PR_CLIST_IS_EMPTY
    - SECITEM_CopyItem
    - ssl3_ExtensionAdvertised
    - tls13_SetSpecRecordVersion
    - ssl_ReleaseXmitBufLock
    - ssl3_MaybeUpdateHashWithSavedRecord
    - PR_LIST_HEAD
    - tls13_SetCipherSpec
    - ssl3_SendChangeCipherSpecsInt
    - ssl_ReleaseSpecWriteLock
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_MaybeDo0RTTHandshake(sslSocket *ss)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:6940,1
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/lib/ssl/tls13con.c:6940,1
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/lib/ssl/tls13con.c:6942,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/tls13con.c:6944,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/tls13con.c:6948,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:6951,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:6952,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:6953,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/tls13con.c:6960,1
    - Dst: PR_REMOVE_LINK
      Src: /src/nss/lib/ssl/tls13con.c:6965,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/ssl/tls13con.c:6966,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/ssl/tls13con.c:6967,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/tls13con.c:6971,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - ss
    - buf
    - len
    argTypes:
    - sslSocket*
    - PRUint8*
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6977
      start: 6937
    functionDepth: 1
    functionLinenumber: 6937
    functionLinenumberEnd: 6977
    functionName: tls13_Read0RttData
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 1
    functionsReached:
    - IS_DTLS
    - PORT_Assert
    - PORT_ZFree
    - PORT_Memcpy
    - PR_NEXT_LINK
    - PR_REMOVE_LINK
    - PORT_SetError
    - SECITEM_ZfreeItem
    - PR_CLIST_IS_EMPTY
    linkageType: ''
    returnType: PRInt32
    signature: PRInt32 tls13_Read0RttData(sslSocket *ss, PRUint8 *buf, PRInt32 len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:6984,1
    - Dst: ssl_HaveXmitBufLock
      Src: /src/nss/lib/ssl/tls13con.c:6984,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13con.c:6987,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13con.c:6987,1
    - Dst: ssl3_AppendHandshakeHeader
      Src: /src/nss/lib/ssl/tls13con.c:6988,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6996
      start: 6979
    functionDepth: 1
    functionLinenumber: 6979
    functionLinenumberEnd: 6996
    functionName: tls13_SendEndOfEarlyData
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - ssl_HaveXmitBufLock
    - SSL_TRC
    - SSL_GETPID
    - ssl3_AppendHandshakeHeader
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_SendEndOfEarlyData(sslSocket *ss)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:7003,1
    - Dst: TLS13_CHECK_HS_STATE
      Src: /src/nss/lib/ssl/tls13con.c:7005,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/tls13con.c:7013,1
    - Dst: ssl_CipherSpecReleaseByEpoch
      Src: /src/nss/lib/ssl/tls13con.c:7014,1
    - Dst: dtls_ReceivedFirstMessageInFlight
      Src: /src/nss/lib/ssl/tls13con.c:7016,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:7019,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:7022,1
    - Dst: tls13_SetCipherSpec
      Src: /src/nss/lib/ssl/tls13con.c:7026,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:7029,1
    - Dst: tls13_ShouldRequestClientAuth
      Src: /src/nss/lib/ssl/tls13con.c:7034,1
    - Dst: TLS13_SET_HS_STATE
      Src: /src/nss/lib/ssl/tls13con.c:7035,1
    - Dst: TLS13_SET_HS_STATE
      Src: /src/nss/lib/ssl/tls13con.c:7037,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 3
    argNames:
    - ss
    - b
    - length
    argTypes:
    - sslSocket*
    - PRUint8*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7040
      start: 6998
    functionDepth: 13
    functionLinenumber: 6998
    functionLinenumberEnd: 7040
    functionName: tls13_HandleEndOfEarlyData
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 1
    functionsReached:
    - IS_DTLS
    - PORT_Assert
    - ssl_CipherSpecReleaseByEpoch
    - FATAL_ERROR
    - PORT_SetError
    - TLS13_CHECK_HS_STATE
    - TLS13_SET_HS_STATE
    - tls13_ShouldRequestClientAuth
    - tls13_SetCipherSpec
    - dtls_ReceivedFirstMessageInFlight
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_HandleEndOfEarlyData(sslSocket *ss, const PRUint8 *b,
      PRUint32 length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:7045,1
    - Dst: tls13_HandleEndOfEarlyData
      Src: /src/nss/lib/ssl/tls13con.c:7051,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7052
      start: 7042
    functionDepth: 14
    functionLinenumber: 7042
    functionLinenumberEnd: 7052
    functionName: tls13_MaybeHandleSuppressedEndOfEarlyData
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 2
    functionsReached:
    - PORT_Assert
    - tls13_HandleEndOfEarlyData
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_MaybeHandleSuppressedEndOfEarlyData(sslSocket *ss)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:7060,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:7061,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:7064,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/tls13con.c:7068,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/ssl/tls13con.c:7070,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:7072,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/ssl/tls13con.c:7077,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:7078,1
    - Dst: PR_APPEND_LINK
      Src: /src/nss/lib/ssl/tls13con.c:7081,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - ss
    - origBuf
    argTypes:
    - sslSocket*
    - sslBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7086
      start: 7054
    functionDepth: 1
    functionLinenumber: 7054
    functionLinenumberEnd: 7086
    functionName: tls13_HandleEarlyApplicationData
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - PORT_ZNew
    - PRINT_BUF
    - SECITEM_CopyItem
    - FATAL_ERROR
    - PR_APPEND_LINK
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_HandleEarlyApplicationData(sslSocket *ss, sslBuffer
      *origBuf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dtls_TLSVersionToDTLSVersion
      Src: /src/nss/lib/ssl/tls13con.c:7092,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - version
    - variant
    argTypes:
    - SSL3ProtocolVersion
    - SSLProtocolVariant
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7096
      start: 7088
    functionDepth: 1
    functionLinenumber: 7088
    functionLinenumberEnd: 7096
    functionName: tls13_EncodeVersion
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 2
    functionsReached:
    - dtls_TLSVersionToDTLSVersion
    linkageType: ''
    returnType: PRUint16
    signature: PRUint16 tls13_EncodeVersion(SSL3ProtocolVersion version, SSLProtocolVariant
      variant)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_FindExtension
      Src: /src/nss/lib/ssl/tls13con.c:7107,1
    - Dst: ssl3_ConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/tls13con.c:7115,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:7120,1
    - Dst: tls13_EncodeVersion
      Src: /src/nss/lib/ssl/tls13con.c:7124,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:7127,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:7138,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7144
      start: 7098
    functionDepth: 2
    functionLinenumber: 7098
    functionLinenumberEnd: 7144
    functionName: tls13_ClientReadSupportedVersion
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - FATAL_ERROR
    - ssl3_ConsumeHandshakeNumber
    - tls13_EncodeVersion
    - ssl3_FindExtension
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_ClientReadSupportedVersion(sslSocket *ss)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_ConsumeHandshakeVariable
      Src: /src/nss/lib/ssl/tls13con.c:7156,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:7162,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13con.c:7172,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:7173,1
    - Dst: tls13_EncodeVersion
      Src: /src/nss/lib/ssl/tls13con.c:7177,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13con.c:7190,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 2
    argNames:
    - ss
    - supportedVersions
    argTypes:
    - sslSocket*
    - TLSExtension*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7192
      start: 7147
    functionDepth: 2
    functionLinenumber: 7147
    functionLinenumberEnd: 7192
    functionName: tls13_NegotiateVersion
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached:
    - FATAL_ERROR
    - ssl3_ConsumeHandshakeVariable
    - PORT_SetError
    - tls13_EncodeVersion
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_NegotiateVersion(sslSocket *ss, const TLSExtension
      *supportedVersions)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7211
      start: 7195
    functionDepth: 0
    functionLinenumber: 7195
    functionLinenumberEnd: 7211
    functionName: tls13_MaybeTls13
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool tls13_MaybeTls13(sslSocket *ss)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13con.c:7222,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/ssl/tls13con.c:7227,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/lib/ssl/tls13con.c:7237,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/ssl/tls13con.c:7240,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7253
      start: 7215
    functionDepth: 9
    functionLinenumber: 7215
    functionLinenumberEnd: 7253
    functionName: tls13_ClientGreaseSetup
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 1
    functionsReached:
    - PORT_Alloc
    - PORT_Assert
    - PK11_GenerateRandom
    - PR_ARRAY_SIZE
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_ClientGreaseSetup(sslSocket *ss)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/tls13con.c:7260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7263
      start: 7256
    functionDepth: 0
    functionLinenumber: 7256
    functionLinenumberEnd: 7263
    functionName: tls13_ClientGreaseDestroy
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 1
    functionsReached:
    - PORT_Free
    linkageType: ''
    returnType: void
    signature: void tls13_ClientGreaseDestroy(sslSocket *ss)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GenerateRandom
      Src: /src/nss/lib/ssl/tls13con.c:7272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - out
    argTypes:
    - PRUint16*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7280
      start: 7267
    functionDepth: 9
    functionLinenumber: 7267
    functionLinenumberEnd: 7280
    functionName: tls13_RandomGreaseValue
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 1
    functionsReached:
    - PK11_GenerateRandom
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_RandomGreaseValue(PRUint16 *out)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/tls13con.c:7292,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/tls13con.c:7293,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/tls13con.c:7301,1
    - Dst: ssl3_ExtensionAdvertised
      Src: /src/nss/lib/ssl/tls13con.c:7303,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/tls13con.c:7315,1
    - Dst: tls13_RandomGreaseValue
      Src: /src/nss/lib/ssl/tls13con.c:7317,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - ss
    - message
    - exType
    argTypes:
    - sslSocket*
    - SSLHandshakeType
    - PRUint16*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7324
      start: 7283
    functionDepth: 10
    functionLinenumber: 7283
    functionLinenumberEnd: 7324
    functionName: tls13_MaybeGreaseExtensionType
    functionSourceFile: /src/nss/lib/ssl/tls13con.c
    functionUses: 1
    functionsReached:
    - ssl3_ExtensionAdvertised
    - tls13_RandomGreaseValue
    - PR_ASSERT
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_MaybeGreaseExtensionType(const sslSocket *ss,\n                               const
      SSLHandshakeType message,\n                               PRUint16 *exType)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - value
    - ','
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 11
    functionName: ER3
    functionSourceFile: /src/nss/lib/ssl/sslerrstrs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ER3(name, value, str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_ErrorInstallTable
      Src: /src/nss/lib/ssl/sslerrstrs.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: ssl_InitializePRErrorTableOnce
    functionSourceFile: /src/nss/lib/ssl/sslerrstrs.c
    functionUses: 0
    functionsReached:
    - PR_ErrorInstallTable
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus ssl_InitializePRErrorTableOnce(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_CallOnce
      Src: /src/nss/lib/ssl/sslerrstrs.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 36
    functionName: ssl_InitializePRErrorTable
    functionSourceFile: /src/nss/lib/ssl/sslerrstrs.c
    functionUses: 0
    functionsReached:
    - PR_CallOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl_InitializePRErrorTable(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7
      start: 5
    functionDepth: 0
    functionLinenumber: 5
    functionLinenumberEnd: 7
    functionName: UNUSED_ERROR
    functionSourceFile: /src/nss/lib/ssl/SSLerrs.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNUSED_ERROR(x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3ecc.c:41,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3ecc.c:42,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/lib/ssl/ssl3ecc.c:47,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3ecc.c:48,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/ssl/ssl3ecc.c:52,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3ecc.c:53,1
    - Dst: memcpy
      Src: /src/nss/lib/ssl/ssl3ecc.c:64,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - arena
    - ecGroup
    - params
    argTypes:
    - PLArenaPool*
    - sslNamedGroupDef*
    - SECKEYECParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 67
    functionName: ssl_NamedGroup2ECParams
    functionSourceFile: /src/nss/lib/ssl/ssl3ecc.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - memcpy
    - SECOID_FindOIDByTag
    - SECITEM_AllocItem
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_NamedGroup2ECParams(PLArenaPool *arena, const sslNamedGroupDef
      *ecGroup,\n                        SECKEYECParams *params)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3ecc.c:79,1
    - Dst: SECOID_FindOID
      Src: /src/nss/lib/ssl/ssl3ecc.c:94,1
    - Dst: NSS_GetAlgorithmPolicy
      Src: /src/nss/lib/ssl/ssl3ecc.c:96,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - pubKey
    argTypes:
    - SECKEYPublicKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 108
    functionName: ssl_ECPubKey2NamedGroup
    functionSourceFile: /src/nss/lib/ssl/ssl3ecc.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - SECOID_FindOID
    - NSS_GetAlgorithmPolicy
    linkageType: ''
    returnType: sslNamedGroupDef
    signature: 'sslNamedGroupDef *

      ssl_ECPubKey2NamedGroup(const SECKEYPublicKey *pubKey)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Alloc
      Src: /src/nss/lib/ssl/ssl3ecc.c:132,1
    - Dst: memcpy
      Src: /src/nss/lib/ssl/ssl3ecc.c:138,1
    - Dst: memcpy
      Src: /src/nss/lib/ssl/ssl3ecc.c:140,1
    - Dst: memcpy
      Src: /src/nss/lib/ssl/ssl3ecc.c:142,1
    - Dst: memcpy
      Src: /src/nss/lib/ssl/ssl3ecc.c:146,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3ecc.c:148,1
    - Dst: ssl3_ComputeCommonKeyHash
      Src: /src/nss/lib/ssl/ssl3ecc.c:150,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/ssl3ecc.c:152,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/ssl3ecc.c:153,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/ssl3ecc.c:155,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/ssl3ecc.c:159,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 6
    argNames:
    - hashAlg
    - ec_params
    - server_ecpoint
    - client_rand
    - server_rand
    - hashes
    argTypes:
    - SSLHashType
    - SECItem
    - SECItem
    - PRUint8*
    - PRUint8*
    - SSL3Hashes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 161
    functionName: ssl3_ComputeECDHKeyHash
    functionSourceFile: /src/nss/lib/ssl/ssl3ecc.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_Assert
    - memcpy
    - PORT_Free
    - PRINT_BUF
    - ssl3_ComputeCommonKeyHash
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_ComputeECDHKeyHash(SSLHashType hashAlg,\n                        SECItem
      ec_params, SECItem server_ecpoint,\n                        PRUint8 *client_rand,
      PRUint8 *server_rand,\n                        SSL3Hashes *hashes)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3ecc.c:175,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3ecc.c:175,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3ecc.c:176,1
    - Dst: ssl_HaveXmitBufLock
      Src: /src/nss/lib/ssl/ssl3ecc.c:176,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3ecc.c:183,1
    - Dst: ssl_ECPubKey2NamedGroup
      Src: /src/nss/lib/ssl/ssl3ecc.c:186,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3ecc.c:188,1
    - Dst: ssl_CreateECDHEphemeralKeyPair
      Src: /src/nss/lib/ssl/ssl3ecc.c:192,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3ecc.c:194,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/ssl3ecc.c:199,1
    - Dst: PK11_PubDeriveWithKDF
      Src: /src/nss/lib/ssl/ssl3ecc.c:212,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3ecc.c:217,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3ecc.c:218,1
    - Dst: ssl3_AppendHandshakeHeader
      Src: /src/nss/lib/ssl/ssl3ecc.c:222,1
    - Dst: ssl3_AppendHandshakeVariable
      Src: /src/nss/lib/ssl/ssl3ecc.c:228,1
    - Dst: ssl3_InitPendingCipherSpecs
      Src: /src/nss/lib/ssl/ssl3ecc.c:235,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3ecc.c:237,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/ssl3ecc.c:241,1
    - Dst: ssl_FreeEphemeralKeyPair
      Src: /src/nss/lib/ssl/ssl3ecc.c:242,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/ssl3ecc.c:247,1
    - Dst: ssl_FreeEphemeralKeyPair
      Src: /src/nss/lib/ssl/ssl3ecc.c:249,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 66
    argCount: 2
    argNames:
    - ss
    - svrPubKey
    argTypes:
    - sslSocket*
    - SECKEYPublicKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 164
    functionDepth: 12
    functionLinenumber: 164
    functionLinenumberEnd: 251
    functionName: ssl3_SendECDHClientKeyExchange
    functionSourceFile: /src/nss/lib/ssl/ssl3ecc.c
    functionUses: 0
    functionsReached:
    - SSL3_SendAlert
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    - ssl3_InitPendingCipherSpecs
    - ssl_CreateECDHEphemeralKeyPair
    - ssl_HaveXmitBufLock
    - ssl_ECPubKey2NamedGroup
    - PRINT_BUF
    - PORT_SetError
    - ssl3_AppendHandshakeHeader
    - ssl_MapLowLevelError
    - ssl3_AppendHandshakeVariable
    - PK11_FreeSymKey
    - ssl_FreeEphemeralKeyPair
    - PK11_PubDeriveWithKDF
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_SendECDHClientKeyExchange(sslSocket *ss, SECKEYPublicKey
      *svrPubKey)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3ecc.c:268,1
    - Dst: ssl_HaveRecvBufLock
      Src: /src/nss/lib/ssl/ssl3ecc.c:268,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3ecc.c:269,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3ecc.c:269,1
    - Dst: ssl3_ConsumeHandshakeVariable
      Src: /src/nss/lib/ssl/ssl3ecc.c:278,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3ecc.c:281,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3ecc.c:287,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3ecc.c:288,1
    - Dst: PK11_PubDeriveWithKDF
      Src: /src/nss/lib/ssl/ssl3ecc.c:304,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3ecc.c:311,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3ecc.c:312,1
    - Dst: ssl3_InitPendingCipherSpecs
      Src: /src/nss/lib/ssl/ssl3ecc.c:316,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/ssl3ecc.c:317,1
    - Dst: ssl_ECPubKey2NamedGroup
      Src: /src/nss/lib/ssl/ssl3ecc.c:322,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    argCount: 4
    argNames:
    - ss
    - b
    - length
    - serverKeyPair
    argTypes:
    - sslSocket*
    - PRUint8*
    - PRUint32
    - sslKeyPair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 256
    functionDepth: 12
    functionLinenumber: 256
    functionLinenumberEnd: 324
    functionName: ssl3_HandleECDHClientKeyExchange
    functionSourceFile: /src/nss/lib/ssl/ssl3ecc.c
    functionUses: 0
    functionsReached:
    - SSL3_SendAlert
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    - ssl3_InitPendingCipherSpecs
    - ssl_ECPubKey2NamedGroup
    - ssl3_ConsumeHandshakeVariable
    - PORT_SetError
    - ssl_MapLowLevelError
    - ssl_HaveRecvBufLock
    - PK11_FreeSymKey
    - PK11_PubDeriveWithKDF
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_HandleECDHClientKeyExchange(sslSocket *ss, PRUint8
      *b,\n                                 PRUint32 length,\n                                 sslKeyPair
      *serverKeyPair)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3ecc.c:338,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3ecc.c:345,1
    - Dst: ssl_NamedGroup2ECParams
      Src: /src/nss/lib/ssl/ssl3ecc.c:351,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3ecc.c:354,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/ssl/ssl3ecc.c:363,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - peerKey
    - b
    - length
    - ecGroup
    argTypes:
    - SECKEYPublicKey*
    - PRUint8*
    - PRUint32
    - sslNamedGroupDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 329
    functionDepth: 2
    functionLinenumber: 329
    functionLinenumberEnd: 369
    functionName: ssl_ImportECDHKeyShare
    functionSourceFile: /src/nss/lib/ssl/ssl3ecc.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    - ssl_MapLowLevelError
    - ssl_NamedGroup2ECParams
    - SECITEM_CopyItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_ImportECDHKeyShare(SECKEYPublicKey *peerKey,\n                       PRUint8
      *b, PRUint32 length,\n                       const sslNamedGroupDef *ecGroup)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3ecc.c:376,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3ecc.c:386,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - ss
    - requiredECCbits
    argTypes:
    - sslSocket*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 388
    functionName: ssl_GetECGroupWithStrength
    functionSourceFile: /src/nss/lib/ssl/ssl3ecc.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    linkageType: ''
    returnType: sslNamedGroupDef
    signature: 'sslNamedGroupDef *

      ssl_GetECGroupWithStrength(sslSocket *ss, unsigned int requiredECCbits)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3ecc.c:400,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3ecc.c:402,1
    - Dst: SSL_CERT_IS
      Src: /src/nss/lib/ssl/ssl3ecc.c:406,1
    - Dst: SSL_CERT_IS
      Src: /src/nss/lib/ssl/ssl3ecc.c:407,1
    - Dst: SECKEY_PublicKeyStrengthInBits
      Src: /src/nss/lib/ssl/ssl3ecc.c:408,1
    - Dst: SSL_RSASTRENGTH_TO_ECSTRENGTH
      Src: /src/nss/lib/ssl/ssl3ecc.c:409,1
    - Dst: SSL_CERT_IS_EC
      Src: /src/nss/lib/ssl/ssl3ecc.c:410,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3ecc.c:413,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3ecc.c:414,1
    - Dst: ssl_NamedGroupEnabled
      Src: /src/nss/lib/ssl/ssl3ecc.c:414,1
    - Dst: ssl_NamedGroupEnabled
      Src: /src/nss/lib/ssl/ssl3ecc.c:415,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3ecc.c:420,1
    - Dst: ssl_GetBulkCipherDef
      Src: /src/nss/lib/ssl/ssl3ecc.c:423,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3ecc.c:425,1
    - Dst: ssl_GetECGroupWithStrength
      Src: /src/nss/lib/ssl/ssl3ecc.c:431,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 392
    functionDepth: 2
    functionLinenumber: 392
    functionLinenumberEnd: 432
    functionName: ssl_GetECGroupForServerSocket
    functionSourceFile: /src/nss/lib/ssl/ssl3ecc.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SSL_CERT_IS
    - ssl_GetBulkCipherDef
    - SECKEY_PublicKeyStrengthInBits
    - PORT_SetError
    - SSL_RSASTRENGTH_TO_ECSTRENGTH
    - SSL_CERT_IS_EC
    - ssl_NamedGroupEnabled
    - ssl_GetECGroupWithStrength
    linkageType: ''
    returnType: sslNamedGroupDef
    signature: 'sslNamedGroupDef *

      ssl_GetECGroupForServerSocket(sslSocket *ss)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetInternalSlot
      Src: /src/nss/lib/ssl/ssl3ecc.c:447,1
    - Dst: PK11_DoesMechanism
      Src: /src/nss/lib/ssl/ssl3ecc.c:448,1
    - Dst: PK11_IsFIPS
      Src: /src/nss/lib/ssl/ssl3ecc.c:448,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/ssl/ssl3ecc.c:450,1
    - Dst: SECKEY_CreateECPrivateKey
      Src: /src/nss/lib/ssl/ssl3ecc.c:452,1
    - Dst: PK11_GenerateKeyPairWithOpFlags
      Src: /src/nss/lib/ssl/ssl3ecc.c:455,1
    - Dst: PK11_GenerateKeyPairWithOpFlags
      Src: /src/nss/lib/ssl/ssl3ecc.c:459,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/ssl/ssl3ecc.c:464,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - param
    - pubk
    - cx
    argTypes:
    - SECKEYECParams*
    - SECKEYPublicKey**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 441
    functionDepth: 5
    functionLinenumber: 441
    functionLinenumberEnd: 466
    functionName: ssl_CreateECDHEPrivateKey
    functionSourceFile: /src/nss/lib/ssl/ssl3ecc.c
    functionUses: 0
    functionsReached:
    - PK11_GenerateKeyPairWithOpFlags
    - SECKEY_CreateECPrivateKey
    - PK11_DoesMechanism
    - PK11_IsFIPS
    - PK11_GetInternalSlot
    - PK11_FreeSlot
    linkageType: ''
    returnType: SECKEYPrivateKey
    signature: 'SECKEYPrivateKey *

      ssl_CreateECDHEPrivateKey(SECKEYECParams *param, SECKEYPublicKey **pubk, void
      *cx)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ssl_NamedGroup2ECParams
      Src: /src/nss/lib/ssl/ssl3ecc.c:479,1
    - Dst: ssl_CreateECDHEPrivateKey
      Src: /src/nss/lib/ssl/ssl3ecc.c:482,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/ssl3ecc.c:483,1
    - Dst: ssl_NewEphemeralKeyPair
      Src: /src/nss/lib/ssl/ssl3ecc.c:486,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/lib/ssl/ssl3ecc.c:488,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/ssl/ssl3ecc.c:491,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3ecc.c:493,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3ecc.c:498,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3ecc.c:499,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/ssl3ecc.c:500,1
    - Dst: PK11_ReadRawAttribute
      Src: /src/nss/lib/ssl/ssl3ecc.c:505,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/ssl3ecc.c:508,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/ssl3ecc.c:509,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3ecc.c:511,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - ss
    - ecGroup
    - keyPair
    argTypes:
    - sslSocket*
    - sslNamedGroupDef*
    - sslEphemeralKeyPair**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 469
    functionDepth: 10
    functionLinenumber: 469
    functionLinenumberEnd: 516
    functionName: ssl_CreateECDHEphemeralKeyPair
    functionSourceFile: /src/nss/lib/ssl/ssl3ecc.c
    functionUses: 2
    functionsReached:
    - SECKEY_DestroyPublicKey
    - SSL_TRC
    - ssl_NewEphemeralKeyPair
    - SSL_GETPID
    - ssl_NamedGroup2ECParams
    - ssl_CreateECDHEPrivateKey
    - PRINT_BUF
    - PK11_ReadRawAttribute
    - ssl_MapLowLevelError
    - SECKEY_DestroyPrivateKey
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_CreateECDHEphemeralKeyPair(const sslSocket *ss,\n                               const
      sslNamedGroupDef *ecGroup,\n                               sslEphemeralKeyPair
      **keyPair)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_ConsumeHandshake
      Src: /src/nss/lib/ssl/ssl3ecc.c:541,1
    - Dst: ssl_LookupNamedGroup
      Src: /src/nss/lib/ssl/ssl3ecc.c:552,1
    - Dst: ssl3_ConsumeHandshakeVariable
      Src: /src/nss/lib/ssl/ssl3ecc.c:559,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3ecc.c:578,1
    - Dst: ssl_ConsumeSignatureScheme
      Src: /src/nss/lib/ssl/ssl3ecc.c:580,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/ssl3ecc.c:582,1
    - Dst: ssl_CheckSignatureSchemeConsistency
      Src: /src/nss/lib/ssl/ssl3ecc.c:585,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/ssl3ecc.c:588,1
    - Dst: ssl_SignatureSchemeToHashType
      Src: /src/nss/lib/ssl/ssl3ecc.c:591,1
    - Dst: ssl3_ConsumeHandshakeVariable
      Src: /src/nss/lib/ssl/ssl3ecc.c:598,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/ssl3ecc.c:609,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/ssl3ecc.c:610,1
    - Dst: ssl3_ComputeECDHKeyHash
      Src: /src/nss/lib/ssl/ssl3ecc.c:619,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3ecc.c:626,1
    - Dst: ssl3_VerifySignedHashes
      Src: /src/nss/lib/ssl/ssl3ecc.c:629,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3ecc.c:632,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/ssl/ssl3ecc.c:636,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/ssl/ssl3ecc.c:642,1
    - Dst: ssl_ImportECDHKeyShare
      Src: /src/nss/lib/ssl/ssl3ecc.c:650,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/ssl3ecc.c:655,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3ecc.c:665,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/ssl/ssl3ecc.c:668,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3ecc.c:670,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 116
    argCount: 3
    argNames:
    - ss
    - b
    - length
    argTypes:
    - sslSocket*
    - PRUint8*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 518
    functionDepth: 3
    functionLinenumber: 518
    functionLinenumberEnd: 672
    functionName: ssl3_HandleECDHServerKeyExchange
    functionSourceFile: /src/nss/lib/ssl/ssl3ecc.c
    functionUses: 0
    functionsReached:
    - SSL3_SendAlert
    - PORT_Assert
    - ssl3_ConsumeHandshake
    - PORT_NewArena
    - ssl_CheckSignatureSchemeConsistency
    - PORT_FreeArena
    - ssl3_ConsumeHandshakeVariable
    - ssl_LookupNamedGroup
    - PORT_GetError
    - PRINT_BUF
    - ssl3_VerifySignedHashes
    - PORT_ArenaZNew
    - PORT_SetError
    - ssl_ConsumeSignatureScheme
    - ssl_MapLowLevelError
    - ssl3_ComputeECDHKeyHash
    - ssl_ImportECDHKeyShare
    - ssl_SignatureSchemeToHashType
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_HandleECDHServerKeyExchange(sslSocket *ss, PRUint8 *b,
      PRUint32 length)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: ssl_GetECGroupForServerSocket
      Src: /src/nss/lib/ssl/ssl3ecc.c:691,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3ecc.c:696,1
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/lib/ssl/ssl3ecc.c:696,1
    - Dst: ssl_CreateStaticECDHEKey
      Src: /src/nss/lib/ssl/ssl3ecc.c:698,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/ssl3ecc.c:702,1
    - Dst: ssl_CreateECDHEphemeralKeyPair
      Src: /src/nss/lib/ssl/ssl3ecc.c:704,1
    - Dst: PR_APPEND_LINK
      Src: /src/nss/lib/ssl/ssl3ecc.c:708,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3ecc.c:711,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3ecc.c:713,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3ecc.c:719,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3ecc.c:720,1
    - Dst: ssl_SignatureSchemeToHashType
      Src: /src/nss/lib/ssl/ssl3ecc.c:727,1
    - Dst: ssl3_ComputeECDHKeyHash
      Src: /src/nss/lib/ssl/ssl3ecc.c:732,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3ecc.c:738,1
    - Dst: ssl3_SignHashes
      Src: /src/nss/lib/ssl/ssl3ecc.c:744,1
    - Dst: ssl3_AppendHandshakeHeader
      Src: /src/nss/lib/ssl/ssl3ecc.c:754,1
    - Dst: ssl3_AppendHandshake
      Src: /src/nss/lib/ssl/ssl3ecc.c:759,1
    - Dst: ssl3_AppendHandshakeVariable
      Src: /src/nss/lib/ssl/ssl3ecc.c:764,1
    - Dst: ssl3_AppendHandshakeNumber
      Src: /src/nss/lib/ssl/ssl3ecc.c:771,1
    - Dst: ssl3_AppendHandshakeVariable
      Src: /src/nss/lib/ssl/ssl3ecc.c:777,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/ssl3ecc.c:783,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/ssl3ecc.c:788,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 87
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 674
    functionDepth: 11
    functionLinenumber: 674
    functionLinenumberEnd: 790
    functionName: ssl3_SendECDHServerKeyExchange
    functionSourceFile: /src/nss/lib/ssl/ssl3ecc.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - ssl_CreateECDHEphemeralKeyPair
    - PORT_Free
    - PR_NEXT_LINK
    - ssl_CreateStaticECDHEKey
    - ssl3_AppendHandshake
    - ssl3_SignHashes
    - PORT_SetError
    - ssl3_AppendHandshakeHeader
    - PR_APPEND_LINK
    - ssl_MapLowLevelError
    - ssl3_AppendHandshakeVariable
    - ssl3_ComputeECDHKeyHash
    - ssl3_AppendHandshakeNumber
    - ssl_GetECGroupForServerSocket
    - PR_CLIST_IS_EMPTY
    - ssl_SignatureSchemeToHashType
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_SendECDHServerKeyExchange(sslSocket *ss)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_CipherPrefGet
      Src: /src/nss/lib/ssl/ssl3ecc.c:860,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3ecc.c:862,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - ss
    - list
    argTypes:
    - sslSocket*
    - ssl3CipherSuite*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 853
    functionDepth: 1
    functionLinenumber: 853
    functionLinenumberEnd: 867
    functionName: ssl_IsSuiteEnabled
    functionSourceFile: /src/nss/lib/ssl/ssl3ecc.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - ssl3_CipherPrefGet
    linkageType: ''
    returnType: PRBool
    signature: PRBool ssl_IsSuiteEnabled(const sslSocket *ss, const ssl3CipherSuite
      *list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetBestSlot
      Src: /src/nss/lib/ssl/ssl3ecc.c:876,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/ssl/ssl3ecc.c:880,1
    - Dst: ssl_IsSuiteEnabled
      Src: /src/nss/lib/ssl/ssl3ecc.c:883,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 870
    functionDepth: 8
    functionLinenumber: 870
    functionLinenumberEnd: 884
    functionName: ssl_IsECCEnabled
    functionSourceFile: /src/nss/lib/ssl/ssl3ecc.c
    functionUses: 0
    functionsReached:
    - PK11_GetBestSlot
    - PK11_FreeSlot
    - ssl_IsSuiteEnabled
    linkageType: ''
    returnType: PRBool
    signature: PRBool ssl_IsECCEnabled(const sslSocket *ss)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_IsSuiteEnabled
      Src: /src/nss/lib/ssl/ssl3ecc.c:889,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 886
    functionDepth: 2
    functionLinenumber: 886
    functionLinenumberEnd: 890
    functionName: ssl_IsDHEEnabled
    functionSourceFile: /src/nss/lib/ssl/ssl3ecc.c
    functionUses: 0
    functionsReached:
    - ssl_IsSuiteEnabled
    linkageType: ''
    returnType: PRBool
    signature: PRBool ssl_IsDHEEnabled(const sslSocket *ss)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ssl_IsECCEnabled
      Src: /src/nss/lib/ssl/ssl3ecc.c:908,1
    - Dst: ssl_IsDHEEnabled
      Src: /src/nss/lib/ssl/ssl3ecc.c:910,1
    - Dst: sslBuffer_Skip
      Src: /src/nss/lib/ssl/ssl3ecc.c:920,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3ecc.c:941,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3ecc.c:954,1
    - Dst: sslBuffer_InsertLength
      Src: /src/nss/lib/ssl/ssl3ecc.c:966,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 51
    argCount: 4
    argNames:
    - ss
    - xtnData
    - buf
    - added
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - sslBuffer*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 893
    functionDepth: 9
    functionLinenumber: 893
    functionLinenumberEnd: 973
    functionName: ssl_SendSupportedGroupsXtn
    functionSourceFile: /src/nss/lib/ssl/ssl3ecc.c
    functionUses: 0
    functionsReached:
    - ssl_IsECCEnabled
    - ssl_IsDHEEnabled
    - sslBuffer_AppendNumber
    - sslBuffer_InsertLength
    - sslBuffer_Skip
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_SendSupportedGroupsXtn(const sslSocket *ss, TLSExtensionData
      *xtnData,\n                           sslBuffer *buf, PRBool *added)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ssl_IsECCEnabled
      Src: /src/nss/lib/ssl/ssl3ecc.c:987,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3ecc.c:992,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3ecc.c:996,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 4
    argNames:
    - ss
    - xtnData
    - buf
    - added
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - sslBuffer*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 978
    functionDepth: 9
    functionLinenumber: 978
    functionLinenumberEnd: 1003
    functionName: ssl3_SendSupportedPointFormatsXtn
    functionSourceFile: /src/nss/lib/ssl/ssl3ecc.c
    functionUses: 0
    functionsReached:
    - ssl_IsECCEnabled
    - sslBuffer_AppendNumber
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_SendSupportedPointFormatsXtn(const sslSocket *ss, TLSExtensionData
      *xtnData,\n                                  sslBuffer *buf, PRBool *added)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - code
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 17
    functionName: IS_SSL_ERROR
    functionSourceFile: /src/nss/lib/ssl/sslerr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_SSL_ERROR(code)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FreeEphemeralKeyPair
      Src: /src/nss/lib/ssl/sslgrp.c:32,1
    - Dst: memset
      Src: /src/nss/lib/ssl/sslgrp.c:35,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - appData
    - nssData
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 25
    functionDepth: 4
    functionLinenumber: 25
    functionLinenumberEnd: 37
    functionName: ssl_CleanupECDHEKeys
    functionSourceFile: /src/nss/lib/ssl/sslgrp.c
    functionUses: 0
    functionsReached:
    - memset
    - ssl_FreeEphemeralKeyPair
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl_CleanupECDHEKeys(void *appData, void *nssData)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSS_RegisterShutdown
      Src: /src/nss/lib/ssl/sslgrp.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: ssl_SetupCleanupECDHEKeysOnce
    functionSourceFile: /src/nss/lib/ssl/sslgrp.c
    functionUses: 0
    functionsReached:
    - NSS_RegisterShutdown
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus ssl_SetupCleanupECDHEKeysOnce(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslgrp.c:62,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslgrp.c:63,1
    - Dst: ssl_CreateECDHEphemeralKeyPair
      Src: /src/nss/lib/ssl/sslgrp.c:64,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/sslgrp.c:68,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslgrp.c:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 53
    functionDepth: 11
    functionLinenumber: 53
    functionLinenumberEnd: 73
    functionName: ssl_CreateStaticECDHEKeyPair
    functionSourceFile: /src/nss/lib/ssl/sslgrp.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SSL_TRC
    - SSL_GETPID
    - ssl_CreateECDHEphemeralKeyPair
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus ssl_CreateStaticECDHEKeyPair(void *arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PR_CallOnce
      Src: /src/nss/lib/ssl/sslgrp.c:82,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslgrp.c:83,1
    - Dst: NSS_GetAlgorithmPolicy
      Src: /src/nss/lib/ssl/sslgrp.c:97,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslgrp.c:110,1
    - Dst: PR_CallOnceWithArg
      Src: /src/nss/lib/ssl/sslgrp.c:113,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslgrp.c:116,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 125
    functionName: ssl_FilterSupportedGroups
    functionSourceFile: /src/nss/lib/ssl/sslgrp.c
    functionUses: 0
    functionsReached:
    - PR_CallOnce
    - PORT_Assert
    - PR_CallOnceWithArg
    - NSS_GetAlgorithmPolicy
    linkageType: ''
    returnType: void
    signature: void ssl_FilterSupportedGroups(sslSocket *ss)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PR_CallOnceWithArg
      Src: /src/nss/lib/ssl/sslgrp.c:140,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslgrp.c:143,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslgrp.c:145,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslgrp.c:152,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslgrp.c:153,1
    - Dst: ssl_CopyEphemeralKeyPair
      Src: /src/nss/lib/ssl/sslgrp.c:157,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslgrp.c:161,1
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/lib/ssl/sslgrp.c:161,1
    - Dst: PR_APPEND_LINK
      Src: /src/nss/lib/ssl/sslgrp.c:162,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - ss
    - ecGroup
    argTypes:
    - sslSocket*
    - sslNamedGroupDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 131
    functionDepth: 3
    functionLinenumber: 131
    functionLinenumberEnd: 164
    functionName: ssl_CreateStaticECDHEKey
    functionSourceFile: /src/nss/lib/ssl/sslgrp.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - ssl_CopyEphemeralKeyPair
    - PORT_SetError
    - PR_APPEND_LINK
    - PR_CallOnceWithArg
    - PR_CLIST_IS_EMPTY
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl_CreateStaticECDHEKey(sslSocket *ss, const sslNamedGroupDef
      *ecGroup)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_StringToNetAddr
      Src: /src/nss/lib/ssl/ssl3exthandle.c:31,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ss
    - url
    argTypes:
    - sslSocket*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 37
    functionName: ssl_ShouldSendSNIExtension
    functionSourceFile: /src/nss/lib/ssl/ssl3exthandle.c
    functionUses: 0
    functionsReached:
    - PR_StringToNetAddr
    linkageType: ''
    returnType: PRBool
    signature: PRBool ssl_ShouldSendSNIExtension(const sslSocket *ss, const char *url)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:51,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:56,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/ssl3exthandle.c:61,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - ss
    - url
    - len
    - xtnData
    - buf
    argTypes:
    - sslSocket*
    - char*
    - unsigned int
    - TLSExtensionData*
    - sslBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 67
    functionName: ssl3_ClientFormatServerNameXtn
    functionSourceFile: /src/nss/lib/ssl/ssl3exthandle.c
    functionUses: 0
    functionsReached:
    - sslBuffer_AppendVariable
    - sslBuffer_AppendNumber
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_ClientFormatServerNameXtn(const sslSocket *ss, const
      char *url,\n                               unsigned int len, TLSExtensionData
      *xtnData,\n                               sslBuffer *buf)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ssl_ShouldSendSNIExtension
      Src: /src/nss/lib/ssl/ssl3exthandle.c:77,1
    - Dst: PR_LIST_HEAD
      Src: /src/nss/lib/ssl/ssl3exthandle.c:83,1
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/lib/ssl/ssl3exthandle.c:84,1
    - Dst: ssl3_ClientFormatServerNameXtn
      Src: /src/nss/lib/ssl/ssl3exthandle.c:85,1
    - Dst: strlen
      Src: /src/nss/lib/ssl/ssl3exthandle.c:85,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - ss
    - xtnData
    - buf
    - added
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - sslBuffer*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 92
    functionName: ssl3_ClientSendServerNameXtn
    functionSourceFile: /src/nss/lib/ssl/ssl3exthandle.c
    functionUses: 0
    functionsReached:
    - ssl3_ClientFormatServerNameXtn
    - ssl_ShouldSendSNIExtension
    - PR_LIST_HEAD
    - PR_CLIST_IS_EMPTY
    - strlen
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_ClientSendServerNameXtn(const sslSocket *ss, TLSExtensionData
      *xtnData,\n                             sslBuffer *buf, PRBool *added)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_ExtConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:113,1
    - Dst: ssl3_ExtConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:127,1
    - Dst: ssl3_ExtConsumeHandshakeVariable
      Src: /src/nss/lib/ssl/ssl3exthandle.c:134,1
    - Dst: PORT_ZNewArray
      Src: /src/nss/lib/ssl/ssl3exthandle.c:147,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/ssl/ssl3exthandle.c:153,1
    - Dst: ssl3_FreeSniNameArray
      Src: /src/nss/lib/ssl/ssl3exthandle.c:165,1
    - Dst: ssl3_ExtDecodeError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:173,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/ssl3exthandle.c:176,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 59
    argCount: 3
    argNames:
    - ss
    - xtnData
    - data
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 179
    functionName: ssl3_HandleServerNameXtn
    functionSourceFile: /src/nss/lib/ssl/ssl3exthandle.c
    functionUses: 0
    functionsReached:
    - PORT_ZNewArray
    - PORT_Free
    - ssl3_ExtConsumeHandshakeNumber
    - ssl3_FreeSniNameArray
    - SECITEM_CopyItem
    - ssl3_ExtConsumeHandshakeVariable
    - ssl3_ExtDecodeError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_HandleServerNameXtn(const sslSocket *ss, TLSExtensionData
      *xtnData,\n                         SECItem *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/ssl3exthandle.c:192,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/ssl3exthandle.c:195,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - xtnData
    argTypes:
    - TLSExtensionData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 198
    functionName: ssl3_FreeSniNameArray
    functionSourceFile: /src/nss/lib/ssl/ssl3exthandle.c
    functionUses: 3
    functionsReached:
    - PORT_Free
    - SECITEM_FreeItem
    linkageType: ''
    returnType: void
    signature: void ssl3_FreeSniNameArray(TLSExtensionData *xtnData)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3exthandle.c:212,1
    - Dst: ssl_TicketTimeValid
      Src: /src/nss/lib/ssl/ssl3exthandle.c:238,1
    - Dst: sslBuffer_Append
      Src: /src/nss/lib/ssl/ssl3exthandle.c:242,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 4
    argNames:
    - ss
    - xtnData
    - buf
    - added
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - sslBuffer*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 253
    functionName: ssl3_ClientSendSessionTicketXtn
    functionSourceFile: /src/nss/lib/ssl/ssl3exthandle.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - ssl_TicketTimeValid
    - sslBuffer_Append
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_ClientSendSessionTicketXtn(const sslSocket *ss, TLSExtensionData
      *xtnData,\n                                sslBuffer *buf, PRBool *added)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/ssl/ssl3exthandle.c:268,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - ss
    - tag
    argTypes:
    - sslSocket*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 274
    functionName: ssl_AlpnTagAllowed
    functionSourceFile: /src/nss/lib/ssl/ssl3exthandle.c
    functionUses: 1
    functionsReached:
    - PORT_Memcmp
    linkageType: ''
    returnType: PRBool
    signature: PRBool ssl_AlpnTagAllowed(const sslSocket *ss, const SECItem *tag)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - data
    - length
    argTypes:
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 296
    functionName: ssl3_ValidateAppProtocol
    functionSourceFile: /src/nss/lib/ssl/ssl3exthandle.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_ValidateAppProtocol(const unsigned char *data, unsigned
      int length)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_ValidateAppProtocol
      Src: /src/nss/lib/ssl/ssl3exthandle.c:307,1
    - Dst: ssl3_ExtSendAlert
      Src: /src/nss/lib/ssl/ssl3exthandle.c:309,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:310,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3exthandle.c:314,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3exthandle.c:317,1
    - Dst: sslSocket*::nextProtoCallback
      Src: /src/nss/lib/ssl/ssl3exthandle.c:322,1
    - Dst: ssl3_ExtSendAlert
      Src: /src/nss/lib/ssl/ssl3exthandle.c:326,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:333,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3exthandle.c:334,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/ssl3exthandle.c:338,1
    - Dst: ssl3_ExtSendAlert
      Src: /src/nss/lib/ssl/ssl3exthandle.c:342,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:343,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/ssl/ssl3exthandle.c:349,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 4
    argNames:
    - ss
    - xtnData
    - extension
    - data
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - PRUint16
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 299
    functionDepth: 2
    functionLinenumber: 299
    functionLinenumberEnd: 350
    functionName: ssl3_SelectAppProtocol
    functionSourceFile: /src/nss/lib/ssl/ssl3exthandle.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - sslSocket*::nextProtoCallback
    - SECITEM_CopyItem
    - ssl3_ExtSendAlert
    - PORT_SetError
    - SECITEM_FreeItem
    - ssl3_ValidateAppProtocol
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_SelectAppProtocol(const sslSocket *ss, TLSExtensionData
      *xtnData,\n                       PRUint16 extension, SECItem *data)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_ExtSendAlert
      Src: /src/nss/lib/ssl/ssl3exthandle.c:364,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:365,1
    - Dst: ssl3_ExtConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:371,1
    - Dst: ssl3_ExtDecodeError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:373,1
    - Dst: ssl3_SelectAppProtocol
      Src: /src/nss/lib/ssl/ssl3exthandle.c:382,1
    - Dst: ssl3_RegisterExtensionSender
      Src: /src/nss/lib/ssl/ssl3exthandle.c:389,1
    - Dst: ssl3_ExtSendAlert
      Src: /src/nss/lib/ssl/ssl3exthandle.c:393,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:394,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - ss
    - xtnData
    - data
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 353
    functionDepth: 3
    functionLinenumber: 353
    functionLinenumberEnd: 399
    functionName: ssl3_ServerHandleAppProtoXtn
    functionSourceFile: /src/nss/lib/ssl/ssl3exthandle.c
    functionUses: 0
    functionsReached:
    - ssl3_ExtConsumeHandshakeNumber
    - ssl3_SelectAppProtocol
    - ssl3_ExtSendAlert
    - PORT_SetError
    - ssl3_ExtDecodeError
    - ssl3_RegisterExtensionSender
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_ServerHandleAppProtoXtn(const sslSocket *ss, TLSExtensionData
      *xtnData,\n                             SECItem *data)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_ExtensionNegotiated
      Src: /src/nss/lib/ssl/ssl3exthandle.c:409,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:410,1
    - Dst: ssl3_ExtSendAlert
      Src: /src/nss/lib/ssl/ssl3exthandle.c:419,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:420,1
    - Dst: ssl3_ExtConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:424,1
    - Dst: ssl3_ExtSendAlert
      Src: /src/nss/lib/ssl/ssl3exthandle.c:428,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:429,1
    - Dst: ssl3_ExtConsumeHandshakeVariable
      Src: /src/nss/lib/ssl/ssl3exthandle.c:433,1
    - Dst: ssl3_ExtSendAlert
      Src: /src/nss/lib/ssl/ssl3exthandle.c:437,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:438,1
    - Dst: ssl_AlpnTagAllowed
      Src: /src/nss/lib/ssl/ssl3exthandle.c:442,1
    - Dst: ssl3_ExtSendAlert
      Src: /src/nss/lib/ssl/ssl3exthandle.c:443,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:444,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/ssl3exthandle.c:448,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/ssl/ssl3exthandle.c:451,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 3
    argNames:
    - ss
    - xtnData
    - data
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 401
    functionDepth: 2
    functionLinenumber: 401
    functionLinenumberEnd: 452
    functionName: ssl3_ClientHandleAppProtoXtn
    functionSourceFile: /src/nss/lib/ssl/ssl3exthandle.c
    functionUses: 0
    functionsReached:
    - ssl3_ExtensionNegotiated
    - ssl3_ExtConsumeHandshakeNumber
    - ssl_AlpnTagAllowed
    - SECITEM_CopyItem
    - ssl3_ExtSendAlert
    - PORT_SetError
    - ssl3_ExtConsumeHandshakeVariable
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_ClientHandleAppProtoXtn(const sslSocket *ss, TLSExtensionData
      *xtnData,\n                             SECItem *data)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/ssl3exthandle.c:462,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:468,1
    - Dst: sslBuffer_Append
      Src: /src/nss/lib/ssl/ssl3exthandle.c:473,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:481,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:485,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 4
    argNames:
    - ss
    - xtnData
    - buf
    - added
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - sslBuffer*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 493
    functionName: ssl3_ClientSendAppProtoXtn
    functionSourceFile: /src/nss/lib/ssl/ssl3exthandle.c
    functionUses: 0
    functionsReached:
    - sslBuffer_AppendNumber
    - sslBuffer_Append
    - PR_ASSERT
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_ClientSendAppProtoXtn(const sslSocket *ss, TLSExtensionData
      *xtnData,\n                           sslBuffer *buf, PRBool *added)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3exthandle.c:502,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3exthandle.c:503,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3exthandle.c:504,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3exthandle.c:505,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3exthandle.c:506,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:508,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/ssl3exthandle.c:512,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - ss
    - xtnData
    - buf
    - added
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - sslBuffer*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 495
    functionDepth: 1
    functionLinenumber: 495
    functionLinenumberEnd: 520
    functionName: ssl3_ServerSendAppProtoXtn
    functionSourceFile: /src/nss/lib/ssl/ssl3exthandle.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - sslBuffer_AppendVariable
    - sslBuffer_AppendNumber
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_ServerSendAppProtoXtn(const sslSocket *ss, TLSExtensionData
      *xtnData,\n                           sslBuffer *buf, PRBool *added)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3exthandle.c:528,1
    - Dst: ssl3_RegisterExtensionSender
      Src: /src/nss/lib/ssl/ssl3exthandle.c:538,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ss
    - xtnData
    - data
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 522
    functionDepth: 2
    functionLinenumber: 522
    functionLinenumberEnd: 539
    functionName: ssl3_ServerHandleStatusRequestXtn
    functionSourceFile: /src/nss/lib/ssl/ssl3exthandle.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - ssl3_RegisterExtensionSender
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_ServerHandleStatusRequestXtn(const sslSocket *ss, TLSExtensionData
      *xtnData,\n                                  SECItem *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - ss
    - xtnData
    - buf
    - added
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - sslBuffer*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 554
    functionName: ssl3_ServerSendStatusRequestXtn
    functionSourceFile: /src/nss/lib/ssl/ssl3exthandle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_ServerSendStatusRequestXtn(const sslSocket *ss, TLSExtensionData
      *xtnData,\n                                sslBuffer *buf, PRBool *added)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:568,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:574,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:581,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - ss
    - xtnData
    - buf
    - added
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - sslBuffer*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 558
    functionDepth: 1
    functionLinenumber: 558
    functionLinenumberEnd: 588
    functionName: ssl3_ClientSendStatusRequestXtn
    functionSourceFile: /src/nss/lib/ssl/ssl3exthandle.c
    functionUses: 0
    functionsReached:
    - sslBuffer_AppendNumber
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_ClientSendStatusRequestXtn(const sslSocket *ss, TLSExtensionData
      *xtnData,\n                                sslBuffer *buf, PRBool *added)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ssl_ReadCertificateStatus
      Src: /src/nss/lib/ssl/ssl3exthandle.c:597,1
    - Dst: CONST_CAST
      Src: /src/nss/lib/ssl/ssl3exthandle.c:597,1
    - Dst: ssl3_ExtSendAlert
      Src: /src/nss/lib/ssl/ssl3exthandle.c:603,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:604,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - ss
    - xtnData
    - data
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 590
    functionDepth: 2
    functionLinenumber: 590
    functionLinenumberEnd: 611
    functionName: ssl3_ClientHandleStatusRequestXtn
    functionSourceFile: /src/nss/lib/ssl/ssl3exthandle.c
    functionUses: 0
    functionsReached:
    - CONST_CAST
    - ssl_ReadCertificateStatus
    - PORT_SetError
    - ssl3_ExtSendAlert
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_ClientHandleStatusRequestXtn(const sslSocket *ss, TLSExtensionData
      *xtnData,\n                                  SECItem *data)"
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3exthandle.c:635,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3exthandle.c:636,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3exthandle.c:638,1
    - Dst: ssl_HaveXmitBufLock
      Src: /src/nss/lib/ssl/ssl3exthandle.c:638,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3exthandle.c:639,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3exthandle.c:639,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/ssl/ssl3exthandle.c:643,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3exthandle.c:645,1
    - Dst: ssl3_CacheWrappedSecret
      Src: /src/nss/lib/ssl/ssl3exthandle.c:646,1
    - Dst: memcpy
      Src: /src/nss/lib/ssl/ssl3exthandle.c:650,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:663,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:669,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:675,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:681,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:684,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:687,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:690,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:694,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:699,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:703,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3exthandle.c:708,1
    - Dst: SSL_CERT_IS
      Src: /src/nss/lib/ssl/ssl3exthandle.c:708,1
    - Dst: SSL_CERT_IS_EC
      Src: /src/nss/lib/ssl/ssl3exthandle.c:709,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3exthandle.c:711,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3exthandle.c:713,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:714,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:716,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:722,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/ssl3exthandle.c:725,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:731,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/ssl3exthandle.c:734,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:740,1
    - Dst: ssl_Time
      Src: /src/nss/lib/ssl/ssl3exthandle.c:746,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3exthandle.c:747,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:748,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/ssl3exthandle.c:753,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:758,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:764,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3exthandle.c:770,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3exthandle.c:774,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/ssl3exthandle.c:775,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:780,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:803,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/ssl3exthandle.c:808,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/ssl3exthandle.c:814,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:815,1
    - Dst: ssl_SelfEncryptGetProtectedSize
      Src: /src/nss/lib/ssl/ssl3exthandle.c:819,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/ssl3exthandle.c:819,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3exthandle.c:820,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/ssl/ssl3exthandle.c:821,1
    - Dst: ssl_SelfEncryptProtect
      Src: /src/nss/lib/ssl/ssl3exthandle.c:826,1
    - Dst: SSL_BUFFER_BASE
      Src: /src/nss/lib/ssl/ssl3exthandle.c:826,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/ssl3exthandle.c:827,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/ssl3exthandle.c:836,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/ssl3exthandle.c:840,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/ssl3exthandle.c:842,1
    CyclomaticComplexity: 67
    EdgeCount: 67
    ICount: 162
    argCount: 6
    argNames:
    - ss
    - ticket
    - appToken
    - appTokenLen
    - secret
    - ticket_data
    argTypes:
    - sslSocket*
    - NewSessionTicket*
    - PRUint8*
    - unsigned int
    - PK11SymKey*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 846
      start: 618
    functionDepth: 1
    functionLinenumber: 618
    functionLinenumberEnd: 846
    functionName: ssl3_EncodeSessionTicket
    functionSourceFile: /src/nss/lib/ssl/ssl3exthandle.c
    functionUses: 1
    functionsReached:
    - SSL_CERT_IS
    - ssl_SelfEncryptGetProtectedSize
    - SSL_BUFFER_LEN
    - memcpy
    - PORT_SetError
    - ssl3_CacheWrappedSecret
    - SECITEM_FreeItem
    - PORT_Assert
    - ssl_SelfEncryptProtect
    - ssl_HaveSSL3HandshakeLock
    - ssl_Time
    - sslBuffer_AppendVariable
    - SECITEM_AllocItem
    - SSL_CERT_IS_EC
    - sslBuffer_Clear
    - SSL_BUFFER_BASE
    - ssl_HaveXmitBufLock
    - SSL_TRC
    - SSL_GETPID
    - sslBuffer_AppendNumber
    - PORT_Memset
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_EncodeSessionTicket(sslSocket *ss, const NewSessionTicket
      *ticket,\n                         const PRUint8 *appToken, unsigned int appTokenLen,\n
      \                        PK11SymKey *secret, SECItem *ticket_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3exthandle.c:855,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ss
    - xtnData
    - data
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 851
    functionDepth: 0
    functionLinenumber: 851
    functionLinenumberEnd: 864
    functionName: ssl3_ClientHandleSessionTicketXtn
    functionSourceFile: /src/nss/lib/ssl/ssl3exthandle.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_ClientHandleSessionTicketXtn(const sslSocket *ss, TLSExtensionData
      *xtnData,\n                                  SECItem *data)"
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memset
      Src: /src/nss/lib/ssl/ssl3exthandle.c:878,1
    - Dst: ssl3_ExtConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:888,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:890,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:897,1
    - Dst: ssl3_ExtConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:907,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:909,1
    - Dst: ssl3_VersionIsSupported
      Src: /src/nss/lib/ssl/ssl3exthandle.c:913,1
    - Dst: ssl3_ExtConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:920,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:922,1
    - Dst: ssl3_ExtConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:928,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:930,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3exthandle.c:935,1
    - Dst: ssl3_ExtConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:941,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:943,1
    - Dst: ssl3_ExtConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:947,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:949,1
    - Dst: ssl3_ExtConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:953,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:955,1
    - Dst: ssl3_ExtConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:959,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:961,1
    - Dst: ssl3_ExtConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:965,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:967,1
    - Dst: ssl3_ExtConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:973,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:975,1
    - Dst: ssl_LookupNamedGroup
      Src: /src/nss/lib/ssl/ssl3exthandle.c:982,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:984,1
    - Dst: ssl3_ExtConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:991,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:993,1
    - Dst: ssl3_ExtConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:998,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1000,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1004,1
    - Dst: ssl3_ExtConsumeHandshake
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1010,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1013,1
    - Dst: ssl3_ExtConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1017,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1019,1
    - Dst: ssl3_ExtConsumeHandshakeVariable
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1027,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1030,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1035,1
    - Dst: ssl3_ExtConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1041,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1043,1
    - Dst: ssl3_ExtConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1049,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1051,1
    - Dst: ssl3_ExtConsumeHandshakeVariable
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1057,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1060,1
    - Dst: ssl3_ExtConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1065,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1067,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1072,1
    - Dst: ssl3_ExtConsumeHandshake
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1076,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1078,1
    - Dst: PR_ntohl
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1081,1
    - Dst: ssl3_ExtConsumeHandshakeVariable
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1083,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1085,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1087,1
    - Dst: ssl3_ExtConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1091,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1093,1
    - Dst: ssl3_ExtConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1098,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1100,1
    - Dst: ssl3_ExtConsumeHandshakeVariable
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1105,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1108,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1115,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 183
    argCount: 3
    argNames:
    - ss
    - decryptedTicket
    - parsedTicket
    argTypes:
    - sslSocket*
    - SECItem*
    - SessionTicket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1122
      start: 868
    functionDepth: 4
    functionLinenumber: 868
    functionLinenumberEnd: 1122
    functionName: ssl_ParseSessionTicket
    functionSourceFile: /src/nss/lib/ssl/ssl3exthandle.c
    functionUses: 0
    functionsReached:
    - PR_ntohl
    - PORT_Assert
    - ssl3_ExtConsumeHandshake
    - ssl3_ExtConsumeHandshakeNumber
    - ssl_LookupNamedGroup
    - PORT_SetError
    - ssl3_ExtConsumeHandshakeVariable
    - PORT_Memset
    - ssl3_VersionIsSupported
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_ParseSessionTicket(sslSocket *ss, const SECItem *decryptedTicket,\n
      \                      SessionTicket *parsedTicket)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_NewSessionID
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1131,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1148,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1161,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1171,1
    - Dst: CERT_NewTempCertificate
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1172,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1182,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1183,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1190,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1191,1
    - Dst: ssl_FreeSID
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1202,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 62
    argCount: 4
    argNames:
    - ss
    - rawTicket
    - parsedTicket
    - out
    argTypes:
    - sslSocket*
    - SECItem*
    - SessionTicket*
    - sslSessionID**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1204
      start: 1124
    functionDepth: 11
    functionLinenumber: 1124
    functionLinenumberEnd: 1204
    functionName: ssl_CreateSIDFromTicket
    functionSourceFile: /src/nss/lib/ssl/ssl3exthandle.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_Memcpy
    - ssl_FreeSID
    - SECITEM_CopyItem
    - ssl3_NewSessionID
    - CERT_NewTempCertificate
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_CreateSIDFromTicket(sslSocket *ss, const SECItem *rawTicket,\n
      \                       SessionTicket *parsedTicket, sslSessionID **out)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ssl_UncacheSessionID
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1217,1
    - Dst: ssl_FreeSID
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1218,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1222,1
    - Dst: ssl_SelfEncryptUnprotect
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1227,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1237,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1238,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1242,1
    - Dst: ssl_ParseSessionTicket
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1246,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1250,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1251,1
    - Dst: SSL_GetStatistics
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1252,1
    - Dst: SSL_AtomicIncrementLong
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1253,1
    - Dst: ssl_Time
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1259,1
    - Dst: ssl_CreateSIDFromTicket
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1261,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1266,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1282,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1283,1
    - Dst: ssl_FreeSID
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1288,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1290,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1291,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 55
    argCount: 3
    argNames:
    - ss
    - ticket
    - appToken
    argTypes:
    - sslSocket*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1293
      start: 1207
    functionDepth: 13
    functionLinenumber: 1207
    functionLinenumberEnd: 1293
    functionName: ssl3_ProcessSessionTicketCommon
    functionSourceFile: /src/nss/lib/ssl/ssl3exthandle.c
    functionUses: 1
    functionsReached:
    - SSL3_SendAlert
    - SSL_GetStatistics
    - ssl_Time
    - ssl_CreateSIDFromTicket
    - ssl_UncacheSessionID
    - ssl_FreeSID
    - PORT_GetError
    - ssl_ParseSessionTicket
    - SECITEM_AllocItem
    - SSL_GETPID
    - ssl_SelfEncryptUnprotect
    - SECITEM_CopyItem
    - SSL_DBG
    - SSL_AtomicIncrementLong
    - PORT_Memset
    - SECITEM_ZfreeItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_ProcessSessionTicketCommon(sslSocket *ss, const SECItem
      *ticket,\n                                SECItem *appToken)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1299,1
    - Dst: ssl3_ProcessSessionTicketCommon
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1323,1
    - Dst: CONST_CAST
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1323,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - ss
    - xtnData
    - data
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1325
      start: 1295
    functionDepth: 14
    functionLinenumber: 1295
    functionLinenumberEnd: 1325
    functionName: ssl3_ServerHandleSessionTicketXtn
    functionSourceFile: /src/nss/lib/ssl/ssl3exthandle.c
    functionUses: 0
    functionsReached:
    - CONST_CAST
    - PORT_Assert
    - ssl3_ProcessSessionTicketCommon
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_ServerHandleSessionTicketXtn(const sslSocket *ss, TLSExtensionData
      *xtnData,\n                                  SECItem *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1353,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - ss
    - xtnData
    - buf
    - added
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - sslBuffer*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1361
      start: 1334
    functionDepth: 1
    functionLinenumber: 1334
    functionLinenumberEnd: 1361
    functionName: ssl3_SendRenegotiationInfoXtn
    functionSourceFile: /src/nss/lib/ssl/ssl3exthandle.c
    functionUses: 0
    functionsReached:
    - sslBuffer_AppendVariable
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_SendRenegotiationInfoXtn(const sslSocket *ss, TLSExtensionData
      *xtnData,\n                              sslBuffer *buf, PRBool *added)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1371,1
    - Dst: ssl3_ExtDecodeError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1378,1
    - Dst: NSS_SecureMemcmp
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1381,1
    - Dst: ssl3_ExtSendAlert
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1383,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1384,1
    - Dst: CONST_CAST
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1388,1
    - Dst: ssl3_RegisterExtensionSender
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1393,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - ss
    - xtnData
    - data
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1398
      start: 1364
    functionDepth: 2
    functionLinenumber: 1364
    functionLinenumberEnd: 1398
    functionName: ssl3_HandleRenegotiationInfoXtn
    functionSourceFile: /src/nss/lib/ssl/ssl3exthandle.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - CONST_CAST
    - NSS_SecureMemcmp
    - PORT_SetError
    - ssl3_ExtSendAlert
    - ssl3_ExtDecodeError
    - ssl3_RegisterExtensionSender
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_HandleRenegotiationInfoXtn(const sslSocket *ss, TLSExtensionData
      *xtnData,\n                                SECItem *data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1407,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1412,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1418,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1424,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - ss
    - xtnData
    - buf
    - added
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - sslBuffer*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1431
      start: 1400
    functionDepth: 1
    functionLinenumber: 1400
    functionLinenumberEnd: 1431
    functionName: ssl3_ClientSendUseSRTPXtn
    functionSourceFile: /src/nss/lib/ssl/ssl3exthandle.c
    functionUses: 0
    functionsReached:
    - IS_DTLS
    - sslBuffer_AppendNumber
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_ClientSendUseSRTPXtn(const sslSocket *ss, TLSExtensionData
      *xtnData,\n                          sslBuffer *buf, PRBool *added)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1440,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1445,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1450,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - ss
    - xtnData
    - buf
    - added
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - sslBuffer*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1457
      start: 1433
    functionDepth: 1
    functionLinenumber: 1433
    functionLinenumberEnd: 1457
    functionName: ssl3_ServerSendUseSRTPXtn
    functionSourceFile: /src/nss/lib/ssl/ssl3exthandle.c
    functionUses: 0
    functionsReached:
    - sslBuffer_AppendNumber
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_ServerSendUseSRTPXtn(const sslSocket *ss, TLSExtensionData
      *xtnData,\n                          sslBuffer *buf, PRBool *added)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_ExtDecodeError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1471,1
    - Dst: ssl3_ExtConsumeHandshakeVariable
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1476,1
    - Dst: ssl3_ExtDecodeError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1483,1
    - Dst: ssl3_ExtSendAlert
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1499,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1500,1
    - Dst: ssl3_ExtConsumeHandshakeVariable
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1505,1
    - Dst: ssl3_ExtSendAlert
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1513,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1514,1
    - Dst: ssl3_ExtDecodeError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1520,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 3
    argNames:
    - ss
    - xtnData
    - data
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1528
      start: 1459
    functionDepth: 2
    functionLinenumber: 1459
    functionLinenumberEnd: 1528
    functionName: ssl3_ClientHandleUseSRTPXtn
    functionSourceFile: /src/nss/lib/ssl/ssl3exthandle.c
    functionUses: 0
    functionsReached:
    - ssl3_ExtSendAlert
    - ssl3_ExtConsumeHandshakeVariable
    - PORT_SetError
    - ssl3_ExtDecodeError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_ClientHandleUseSRTPXtn(const sslSocket *ss, TLSExtensionData
      *xtnData,\n                            SECItem *data)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1542,1
    - Dst: ssl3_ExtDecodeError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1549,1
    - Dst: ssl3_ExtConsumeHandshakeVariable
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1554,1
    - Dst: ssl3_ExtDecodeError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1561,1
    - Dst: ssl3_ExtConsumeHandshakeVariable
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1578,1
    - Dst: ssl3_ExtDecodeError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1584,1
    - Dst: ssl3_RegisterExtensionSender
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1598,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 3
    argNames:
    - ss
    - xtnData
    - data
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1601
      start: 1530
    functionDepth: 2
    functionLinenumber: 1530
    functionLinenumberEnd: 1601
    functionName: ssl3_ServerHandleUseSRTPXtn
    functionSourceFile: /src/nss/lib/ssl/ssl3exthandle.c
    functionUses: 0
    functionsReached:
    - IS_DTLS
    - ssl3_ExtConsumeHandshakeVariable
    - ssl3_ExtDecodeError
    - ssl3_RegisterExtensionSender
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_ServerHandleUseSRTPXtn(const sslSocket *ss, TLSExtensionData
      *xtnData,\n                            SECItem *data)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1618,1
    - Dst: ssl_ParseSignatureSchemes
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1621,1
    - Dst: ssl3_ExtSendAlert
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1626,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1627,1
    - Dst: ssl3_ExtSendAlert
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1631,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1632,1
    - Dst: ssl3_ExtSendAlert
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1637,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1638,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - ss
    - xtnData
    - data
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1645
      start: 1606
    functionDepth: 2
    functionLinenumber: 1606
    functionLinenumberEnd: 1645
    functionName: ssl3_HandleSigAlgsXtn
    functionSourceFile: /src/nss/lib/ssl/ssl3exthandle.c
    functionUses: 0
    functionsReached:
    - ssl3_ExtSendAlert
    - PORT_Free
    - ssl_ParseSignatureSchemes
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_HandleSigAlgsXtn(const sslSocket *ss, TLSExtensionData
      *xtnData,\n                      SECItem *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_EncodeSigAlgs
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1664,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - ss
    - xtnData
    - buf
    - added
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - sslBuffer*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1672
      start: 1649
    functionDepth: 1
    functionLinenumber: 1649
    functionLinenumberEnd: 1672
    functionName: ssl3_SendSigAlgsXtn
    functionSourceFile: /src/nss/lib/ssl/ssl3exthandle.c
    functionUses: 0
    functionsReached:
    - ssl3_EncodeSigAlgs
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_SendSigAlgsXtn(const sslSocket *ss, TLSExtensionData
      *xtnData,\n                    sslBuffer *buf, PRBool *added)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ss
    - xtnData
    - buf
    - added
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - sslBuffer*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1687
      start: 1674
    functionDepth: 0
    functionLinenumber: 1674
    functionLinenumberEnd: 1687
    functionName: ssl3_SendExtendedMasterSecretXtn
    functionSourceFile: /src/nss/lib/ssl/ssl3exthandle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_SendExtendedMasterSecretXtn(const sslSocket *ss, TLSExtensionData
      *xtnData,\n                                 sslBuffer *buf, PRBool *added)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1693,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1704,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1705,1
    - Dst: ssl3_ExtSendAlert
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1706,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1710,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1711,1
    - Dst: ssl3_RegisterExtensionSender
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1717,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - ss
    - xtnData
    - data
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1722
      start: 1689
    functionDepth: 2
    functionLinenumber: 1689
    functionLinenumberEnd: 1722
    functionName: ssl3_HandleExtendedMasterSecretXtn
    functionSourceFile: /src/nss/lib/ssl/ssl3exthandle.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SSL_TRC
    - SSL_GETPID
    - ssl3_ExtSendAlert
    - SSL_DBG
    - ssl3_RegisterExtensionSender
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_HandleExtendedMasterSecretXtn(const sslSocket *ss,
      TLSExtensionData *xtnData,\n                                   SECItem *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ss
    - xtnData
    - buf
    - added
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - sslBuffer*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1738
      start: 1726
    functionDepth: 0
    functionLinenumber: 1726
    functionLinenumberEnd: 1738
    functionName: ssl3_ClientSendSignedCertTimestampXtn
    functionSourceFile: /src/nss/lib/ssl/ssl3exthandle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_ClientSendSignedCertTimestampXtn(const sslSocket *ss,\n
      \                                     TLSExtensionData *xtnData,\n                                      sslBuffer
      *buf, PRBool *added)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1753,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - ss
    - xtnData
    - data
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1763
      start: 1740
    functionDepth: 0
    functionLinenumber: 1740
    functionLinenumberEnd: 1763
    functionName: ssl3_ClientHandleSignedCertTimestampXtn
    functionSourceFile: /src/nss/lib/ssl/ssl3exthandle.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_ClientHandleSignedCertTimestampXtn(const sslSocket
      *ss, TLSExtensionData *xtnData,\n                                        SECItem
      *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sslBuffer_Append
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1777,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - ss
    - xtnData
    - buf
    - added
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - sslBuffer*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1784
      start: 1765
    functionDepth: 1
    functionLinenumber: 1765
    functionLinenumberEnd: 1784
    functionName: ssl3_ServerSendSignedCertTimestampXtn
    functionSourceFile: /src/nss/lib/ssl/ssl3exthandle.c
    functionUses: 0
    functionsReached:
    - sslBuffer_Append
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_ServerSendSignedCertTimestampXtn(const sslSocket *ss,
      TLSExtensionData *xtnData,\n                                      sslBuffer
      *buf, PRBool *added)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_ExtSendAlert
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1792,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1793,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1798,1
    - Dst: ssl3_RegisterExtensionSender
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1799,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ss
    - xtnData
    - data
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1802
      start: 1786
    functionDepth: 2
    functionLinenumber: 1786
    functionLinenumberEnd: 1802
    functionName: ssl3_ServerHandleSignedCertTimestampXtn
    functionSourceFile: /src/nss/lib/ssl/ssl3exthandle.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - ssl3_ExtSendAlert
    - PORT_SetError
    - ssl3_RegisterExtensionSender
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_ServerHandleSignedCertTimestampXtn(const sslSocket
      *ss,\n                                        TLSExtensionData *xtnData,\n                                        SECItem
      *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1814,1
    - Dst: ssl3_ExtDecodeError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1818,1
    - Dst: ssl3_RegisterExtensionSender
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1824,1
    - Dst: ssl3_ExtSendAlert
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1837,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1838,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - ss
    - xtnData
    - data
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1841
      start: 1807
    functionDepth: 2
    functionLinenumber: 1807
    functionLinenumberEnd: 1841
    functionName: ssl3_HandleSupportedPointFormatsXtn
    functionSourceFile: /src/nss/lib/ssl/ssl3exthandle.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - ssl3_ExtSendAlert
    - PORT_SetError
    - ssl3_ExtDecodeError
    - ssl3_RegisterExtensionSender
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_HandleSupportedPointFormatsXtn(const sslSocket *ss,\n
      \                                   TLSExtensionData *xtnData,\n                                    SECItem
      *data)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1850,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1850,1
    - Dst: ssl3_DecodeError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1853,1
    - Dst: ssl3_ConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1858,1
    - Dst: ssl3_DecodeError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1860,1
    - Dst: ssl3_ConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1874,1
    - Dst: ssl_LookupNamedGroup
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1879,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 41
    argCount: 2
    argNames:
    - ss
    - data
    argTypes:
    - sslSocket*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1912
      start: 1843
    functionDepth: 1
    functionLinenumber: 1843
    functionLinenumberEnd: 1912
    functionName: ssl_UpdateSupportedGroups
    functionSourceFile: /src/nss/lib/ssl/ssl3exthandle.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - ssl3_DecodeError
    - ssl_LookupNamedGroup
    - PR_ARRAY_SIZE
    - ssl3_ConsumeHandshakeNumber
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl_UpdateSupportedGroups(sslSocket *ss, SECItem *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ssl_UpdateSupportedGroups
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1923,1
    - Dst: CONST_CAST
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1923,1
    - Dst: ssl3_RegisterExtensionSender
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1929,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - ss
    - xtnData
    - data
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1940
      start: 1917
    functionDepth: 2
    functionLinenumber: 1917
    functionLinenumberEnd: 1940
    functionName: ssl_HandleSupportedGroupsXtn
    functionSourceFile: /src/nss/lib/ssl/ssl3exthandle.c
    functionUses: 0
    functionsReached:
    - CONST_CAST
    - ssl_UpdateSupportedGroups
    - ssl3_RegisterExtensionSender
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_HandleSupportedGroupsXtn(const sslSocket *ss, TLSExtensionData
      *xtnData,\n                             SECItem *data)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_ExtConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1952,1
    - Dst: ssl3_ExtSendAlert
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1957,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1958,1
    - Dst: ssl3_RegisterExtensionSender
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1963,1
    - Dst: ssl3_ExtSendAlert
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1970,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1971,1
    - Dst: PR_MIN
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1977,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - ss
    - xtnData
    - data
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1980
      start: 1942
    functionDepth: 2
    functionLinenumber: 1942
    functionLinenumberEnd: 1980
    functionName: ssl_HandleRecordSizeLimitXtn
    functionSourceFile: /src/nss/lib/ssl/ssl3exthandle.c
    functionUses: 0
    functionsReached:
    - PR_MIN
    - ssl3_ExtConsumeHandshakeNumber
    - ssl3_ExtSendAlert
    - PORT_SetError
    - ssl3_RegisterExtensionSender
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_HandleRecordSizeLimitXtn(const sslSocket *ss, TLSExtensionData
      *xtnData,\n                             SECItem *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_MIN
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1996,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3exthandle.c:1997,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - ss
    - xtnData
    - buf
    - added
    argTypes:
    - sslSocket*
    - TLSExtensionData*
    - sslBuffer*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2004
      start: 1982
    functionDepth: 1
    functionLinenumber: 1982
    functionLinenumberEnd: 2004
    functionName: ssl_SendRecordSizeLimitXtn
    functionSourceFile: /src/nss/lib/ssl/ssl3exthandle.c
    functionUses: 0
    functionsReached:
    - PR_MIN
    - sslBuffer_AppendNumber
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_SendRecordSizeLimitXtn(const sslSocket *ss, TLSExtensionData
      *xtnData,\n                           sslBuffer *buf, PRBool *added)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PK11_CreateContextBySymKey
      Src: /src/nss/lib/ssl/selfencrypt.c:27,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/selfencrypt.c:29,1
    - Dst: PK11_DigestBegin
      Src: /src/nss/lib/ssl/selfencrypt.c:33,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/selfencrypt.c:35,1
    - Dst: PK11_DigestOp
      Src: /src/nss/lib/ssl/selfencrypt.c:39,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/selfencrypt.c:41,1
    - Dst: PK11_DigestFinal
      Src: /src/nss/lib/ssl/selfencrypt.c:45,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/selfencrypt.c:47,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/ssl/selfencrypt.c:52,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/ssl/selfencrypt.c:56,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 7
    argNames:
    - key
    - mech
    - in
    - len
    - mac
    - macLen
    - maxMacLen
    argTypes:
    - PK11SymKey*
    - CK_MECHANISM_TYPE
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 17
    functionDepth: 11
    functionLinenumber: 17
    functionLinenumberEnd: 58
    functionName: ssl_MacBuffer
    functionSourceFile: /src/nss/lib/ssl/selfencrypt.c
    functionUses: 0
    functionsReached:
    - PK11_DestroyContext
    - PK11_DigestOp
    - PK11_CreateContextBySymKey
    - PORT_SetError
    - PK11_DigestBegin
    - PK11_DigestFinal
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_MacBuffer(PK11SymKey *key, CK_MECHANISM_TYPE mech,\n
      \             const unsigned char *in, unsigned int len,\n              unsigned
      char *mac, unsigned int *macLen, unsigned int maxMacLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/selfencrypt.c:69,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/selfencrypt.c:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 8
    argNames:
    - encKey
    - macKey
    - keyName
    - in
    - inLen
    - out
    - outLen
    - maxOutLen
    argTypes:
    - PK11SymKey*
    - PK11SymKey*
    - unsigned char*
    - PRUint8*
    - unsigned int
    - PRUint8*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 77
    functionName: ssl_SelfEncryptProtectInt
    functionSourceFile: /src/nss/lib/ssl/selfencrypt.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PORT_Memcpy
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_SelfEncryptProtectInt(\n    PK11SymKey *encKey, PK11SymKey
      *macKey,\n    const unsigned char *keyName,\n    const PRUint8 *in, unsigned
      int inLen,\n    PRUint8 *out, unsigned int *outLen, unsigned int maxOutLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/selfencrypt.c:86,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/selfencrypt.c:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 8
    argNames:
    - encKey
    - macKey
    - keyName
    - in
    - inLen
    - out
    - outLen
    - maxOutLen
    argTypes:
    - PK11SymKey*
    - PK11SymKey*
    - unsigned char*
    - PRUint8*
    - unsigned int
    - PRUint8*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 94
    functionName: ssl_SelfEncryptUnprotectInt
    functionSourceFile: /src/nss/lib/ssl/selfencrypt.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PORT_Memcpy
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_SelfEncryptUnprotectInt(\n    PK11SymKey *encKey, PK11SymKey
      *macKey, const unsigned char *keyName,\n    const PRUint8 *in, unsigned int
      inLen,\n    PRUint8 *out, unsigned int *outLen, unsigned int maxOutLen)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: SSL_BUFFER_FIXED
      Src: /src/nss/lib/ssl/selfencrypt.c:127,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/lib/ssl/selfencrypt.c:131,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/selfencrypt.c:133,1
    - Dst: sslBuffer_Append
      Src: /src/nss/lib/ssl/selfencrypt.c:138,1
    - Dst: sslBuffer_Append
      Src: /src/nss/lib/ssl/selfencrypt.c:142,1
    - Dst: sslBuffer_Skip
      Src: /src/nss/lib/ssl/selfencrypt.c:148,1
    - Dst: PK11_Encrypt
      Src: /src/nss/lib/ssl/selfencrypt.c:154,1
    - Dst: SSL_BUFFER_NEXT
      Src: /src/nss/lib/ssl/selfencrypt.c:155,1
    - Dst: SSL_BUFFER_SPACE
      Src: /src/nss/lib/ssl/selfencrypt.c:156,1
    - Dst: sslBuffer_Skip
      Src: /src/nss/lib/ssl/selfencrypt.c:160,1
    - Dst: sslBuffer_InsertLength
      Src: /src/nss/lib/ssl/selfencrypt.c:165,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/selfencrypt.c:171,1
    - Dst: ssl_MacBuffer
      Src: /src/nss/lib/ssl/selfencrypt.c:172,1
    - Dst: SSL_BUFFER_BASE
      Src: /src/nss/lib/ssl/selfencrypt.c:173,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/selfencrypt.c:174,1
    - Dst: SSL_BUFFER_NEXT
      Src: /src/nss/lib/ssl/selfencrypt.c:175,1
    - Dst: sslBuffer_Skip
      Src: /src/nss/lib/ssl/selfencrypt.c:180,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/selfencrypt.c:185,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 8
    argNames:
    - encKey
    - macKey
    - keyName
    - in
    - inLen
    - out
    - outLen
    - maxOutLen
    argTypes:
    - PK11SymKey*
    - PK11SymKey*
    - unsigned char*
    - PRUint8*
    - unsigned int
    - PRUint8*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 115
    functionDepth: 12
    functionLinenumber: 115
    functionLinenumberEnd: 187
    functionName: ssl_SelfEncryptProtectInt
    functionSourceFile: /src/nss/lib/ssl/selfencrypt.c
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - PORT_Assert
    - ssl_MacBuffer
    - SSL_BUFFER_LEN
    - SSL_BUFFER_BASE
    - SSL_BUFFER_SPACE
    - sslBuffer_InsertLength
    - PORT_SetError
    - PK11_GenerateRandom
    - sslBuffer_Skip
    - SSL_BUFFER_NEXT
    - SSL_BUFFER_FIXED
    - sslBuffer_Append
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_SelfEncryptProtectInt(\n    PK11SymKey *encKey, PK11SymKey
      *macKey,\n    const unsigned char *keyName,\n    const PRUint8 *in, unsigned
      int inLen,\n    PRUint8 *out, unsigned int *outLen, unsigned int maxOutLen)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: SSL_READER
      Src: /src/nss/lib/ssl/selfencrypt.c:195,1
    - Dst: sslRead_Read
      Src: /src/nss/lib/ssl/selfencrypt.c:198,1
    - Dst: sslRead_Read
      Src: /src/nss/lib/ssl/selfencrypt.c:205,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/selfencrypt.c:211,1
    - Dst: sslRead_Read
      Src: /src/nss/lib/ssl/selfencrypt.c:217,1
    - Dst: sslRead_Read
      Src: /src/nss/lib/ssl/selfencrypt.c:224,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/selfencrypt.c:231,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/ssl/selfencrypt.c:237,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/selfencrypt.c:238,1
    - Dst: ssl_MacBuffer
      Src: /src/nss/lib/ssl/selfencrypt.c:245,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/selfencrypt.c:250,1
    - Dst: NSS_SecureMemcmp
      Src: /src/nss/lib/ssl/selfencrypt.c:251,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/selfencrypt.c:252,1
    - Dst: PK11_Decrypt
      Src: /src/nss/lib/ssl/selfencrypt.c:258,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 8
    argNames:
    - encKey
    - macKey
    - keyName
    - in
    - inLen
    - out
    - outLen
    - maxOutLen
    argTypes:
    - PK11SymKey*
    - PK11SymKey*
    - unsigned char*
    - PRUint8*
    - unsigned int
    - PRUint8*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 189
    functionDepth: 12
    functionLinenumber: 189
    functionLinenumberEnd: 265
    functionName: ssl_SelfEncryptUnprotectInt
    functionSourceFile: /src/nss/lib/ssl/selfencrypt.c
    functionUses: 0
    functionsReached:
    - ssl_MacBuffer
    - PORT_Assert
    - PK11_Decrypt
    - PORT_Memcmp
    - NSS_SecureMemcmp
    - PORT_SetError
    - sslRead_ReadNumber
    - sslRead_Read
    - SSL_READER
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_SelfEncryptUnprotectInt(\n    PK11SymKey *encKey, PK11SymKey
      *macKey, const unsigned char *keyName,\n    const PRUint8 *in, unsigned int
      inLen,\n    PRUint8 *out, unsigned int *outLen, unsigned int maxOutLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - inLen
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 277
    functionName: ssl_SelfEncryptGetProtectedSize
    functionSourceFile: /src/nss/lib/ssl/selfencrypt.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int ssl_SelfEncryptGetProtectedSize(unsigned int inLen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_GetSelfEncryptKeys
      Src: /src/nss/lib/ssl/selfencrypt.c:290,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/selfencrypt.c:292,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/selfencrypt.c:293,1
    - Dst: ssl_SelfEncryptProtectInt
      Src: /src/nss/lib/ssl/selfencrypt.c:297,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - ss
    - in
    - inLen
    - out
    - outLen
    - maxOutLen
    argTypes:
    - sslSocket*
    - PRUint8*
    - unsigned int
    - PRUint8*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 299
    functionName: ssl_SelfEncryptProtect
    functionSourceFile: /src/nss/lib/ssl/selfencrypt.c
    functionUses: 2
    functionsReached:
    - ssl_SelfEncryptProtectInt
    - SSL_GETPID
    - SSL_DBG
    - ssl_GetSelfEncryptKeys
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_SelfEncryptProtect(\n    sslSocket *ss, const PRUint8
      *in, unsigned int inLen,\n    PRUint8 *out, unsigned int *outLen, unsigned int
      maxOutLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_GetSelfEncryptKeys
      Src: /src/nss/lib/ssl/selfencrypt.c:312,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/selfencrypt.c:314,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/selfencrypt.c:315,1
    - Dst: ssl_SelfEncryptUnprotectInt
      Src: /src/nss/lib/ssl/selfencrypt.c:319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - ss
    - in
    - inLen
    - out
    - outLen
    - maxOutLen
    argTypes:
    - sslSocket*
    - PRUint8*
    - unsigned int
    - PRUint8*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 321
    functionName: ssl_SelfEncryptUnprotect
    functionSourceFile: /src/nss/lib/ssl/selfencrypt.c
    functionUses: 2
    functionsReached:
    - ssl_SelfEncryptUnprotectInt
    - SSL_GETPID
    - SSL_DBG
    - ssl_GetSelfEncryptKeys
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_SelfEncryptUnprotect(\n    sslSocket *ss, const PRUint8
      *in, unsigned int inLen,\n    PRUint8 *out, unsigned int *outLen, unsigned int
      maxOutLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - which
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: SSL_IS_SSL2_CIPHER
    functionSourceFile: /src/nss/lib/ssl/ssl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_IS_SSL2_CIPHER(which)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: PR_ARRAY_SIZE
    functionSourceFile: /src/nss/lib/ssl/dtlscon.c
    functionUses: 38
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PR_ARRAY_SIZE(a)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - tlsv
    argTypes:
    - SSL3ProtocolVersion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 74
    functionName: dtls_TLSVersionToDTLSVersion
    functionSourceFile: /src/nss/lib/ssl/dtlscon.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SSL3ProtocolVersion
    signature: SSL3ProtocolVersion dtls_TLSVersionToDTLSVersion(SSL3ProtocolVersion
      tlsv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: MSB
      Src: /src/nss/lib/ssl/dtlscon.c:83,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - dtlsv
    argTypes:
    - SSL3ProtocolVersion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 104
    functionName: dtls_DTLSVersionToTLSVersion
    functionSourceFile: /src/nss/lib/ssl/dtlscon.c
    functionUses: 0
    functionsReached:
    - MSB
    linkageType: ''
    returnType: SSL3ProtocolVersion
    signature: SSL3ProtocolVersion dtls_DTLSVersionToTLSVersion(SSL3ProtocolVersion
      dtlsv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_CheckSuccess
      Src: /src/nss/lib/ssl/dtlscon.c:113,1
    - Dst: ssl3_CipherPrefSet
      Src: /src/nss/lib/ssl/dtlscon.c:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 116
    functionName: ssl3_DisableNonDTLSSuites
    functionSourceFile: /src/nss/lib/ssl/dtlscon.c
    functionUses: 0
    functionsReached:
    - ssl3_CipherPrefSet
    - PORT_CheckSuccess
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_DisableNonDTLSSuites(sslSocket *ss)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZNew
      Src: /src/nss/lib/ssl/dtlscon.c:128,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/ssl/dtlscon.c:132,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/dtlscon.c:134,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/dtlscon.c:137,1
    - Dst: ssl_CipherSpecAddRef
      Src: /src/nss/lib/ssl/dtlscon.c:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - cwSpec
    - ct
    - data
    - len
    argTypes:
    - ssl3CipherSpec*
    - SSLContentType
    - unsigned char*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 147
    functionName: dtls_AllocQueuedMessage
    functionSourceFile: /src/nss/lib/ssl/dtlscon.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_Memcpy
    - PORT_ZNew
    - PORT_Free
    - ssl_CipherSpecAddRef
    linkageType: ''
    returnType: DTLSQueuedMessage
    signature: "DTLSQueuedMessage *\ndtls_AllocQueuedMessage(ssl3CipherSpec *cwSpec,
      SSLContentType ct,\n                        const unsigned char *data, PRUint32
      len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_CipherSpecRelease
      Src: /src/nss/lib/ssl/dtlscon.c:162,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/ssl/dtlscon.c:163,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/dtlscon.c:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - msg
    argTypes:
    - DTLSQueuedMessage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 165
    functionName: dtls_FreeHandshakeMessage
    functionSourceFile: /src/nss/lib/ssl/dtlscon.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - PORT_ZFree
    - ssl_CipherSpecRelease
    linkageType: ''
    returnType: void
    signature: void dtls_FreeHandshakeMessage(DTLSQueuedMessage *msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/lib/ssl/dtlscon.c:179,1
    - Dst: PR_LIST_TAIL
      Src: /src/nss/lib/ssl/dtlscon.c:180,1
    - Dst: PR_REMOVE_LINK
      Src: /src/nss/lib/ssl/dtlscon.c:181,1
    - Dst: dtls_FreeHandshakeMessage
      Src: /src/nss/lib/ssl/dtlscon.c:182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - list
    argTypes:
    - PRCList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 184
    functionName: dtls_FreeHandshakeMessages
    functionSourceFile: /src/nss/lib/ssl/dtlscon.c
    functionUses: 0
    functionsReached:
    - PR_LIST_TAIL
    - PR_REMOVE_LINK
    - PR_CLIST_IS_EMPTY
    - dtls_FreeHandshakeMessage
    linkageType: ''
    returnType: void
    signature: void dtls_FreeHandshakeMessages(PRCList *list)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/dtlscon.c:195,1
    - Dst: ssl_HaveRecvBufLock
      Src: /src/nss/lib/ssl/dtlscon.c:195,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/dtlscon.c:196,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/dtlscon.c:196,1
    - Dst: PR_IntervalNow
      Src: /src/nss/lib/ssl/dtlscon.c:204,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/dtlscon.c:206,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/dtlscon.c:208,1
    - Dst: dtls_CancelTimer
      Src: /src/nss/lib/ssl/dtlscon.c:212,1
    - Dst: dtls_RetransmitTimerExpiredCb
      Src: /src/nss/lib/ssl/dtlscon.c:213,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/dtlscon.c:215,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/dtlscon.c:218,1
    - Dst: PR_IntervalNow
      Src: /src/nss/lib/ssl/dtlscon.c:219,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/dtlscon.c:223,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/dtlscon.c:224,1
    - Dst: dtls_CancelTimer
      Src: /src/nss/lib/ssl/dtlscon.c:230,1
    - Dst: dtls_TransmitMessageFlight
      Src: /src/nss/lib/ssl/dtlscon.c:231,1
    - Dst: dtls_StartHolddownTimer
      Src: /src/nss/lib/ssl/dtlscon.c:233,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/dtlscon.c:238,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/dtlscon.c:241,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 245
    functionName: dtls_RetransmitDetected
    functionSourceFile: /src/nss/lib/ssl/dtlscon.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    - dtls_CancelTimer
    - dtls_TransmitMessageFlight
    - SSL_TRC
    - SSL_GETPID
    - dtls_StartHolddownTimer
    - PR_IntervalNow
    - ssl_HaveRecvBufLock
    - dtls_RetransmitTimerExpiredCb
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus dtls_RetransmitDetected(sslSocket *ss)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_HandleHandshakeMessage
      Src: /src/nss/lib/ssl/dtlscon.c:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ss
    - data
    - last
    argTypes:
    - sslSocket*
    - PRUint8*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 254
    functionName: dtls_HandleHandshakeMessage
    functionSourceFile: /src/nss/lib/ssl/dtlscon.c
    functionUses: 0
    functionsReached:
    - ssl3_HandleHandshakeMessage
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus dtls_HandleHandshakeMessage(sslSocket *ss, PRUint8 *data,
      PRBool last)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 271
    functionName: OFFSET_BYTE
    functionSourceFile: /src/nss/lib/ssl/dtlscon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OFFSET_BYTE(o)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - o
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 272
    functionName: OFFSET_MASK
    functionSourceFile: /src/nss/lib/ssl/dtlscon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OFFSET_MASK(o)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/dtlscon.c:283,1
    - Dst: ssl_HaveRecvBufLock
      Src: /src/nss/lib/ssl/dtlscon.c:283,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/dtlscon.c:284,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/dtlscon.c:284,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/dtlscon.c:295,1
    - Dst: ssl3_DecodeError
      Src: /src/nss/lib/ssl/dtlscon.c:309,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/dtlscon.c:310,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/dtlscon.c:321,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/dtlscon.c:328,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/dtlscon.c:342,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/dtlscon.c:343,1
    - Dst: dtls_HandleHandshakeMessage
      Src: /src/nss/lib/ssl/dtlscon.c:364,1
    - Dst: dtls_RetransmitDetected
      Src: /src/nss/lib/ssl/dtlscon.c:373,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/dtlscon.c:384,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/dtlscon.c:385,1
    - Dst: OFFSET_BYTE
      Src: /src/nss/lib/ssl/dtlscon.c:396,1
    - Dst: sslBuffer_Grow
      Src: /src/nss/lib/ssl/dtlscon.c:398,1
    - Dst: sslBuffer_Grow
      Src: /src/nss/lib/ssl/dtlscon.c:402,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/ssl/dtlscon.c:409,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/dtlscon.c:421,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/dtlscon.c:428,1
    - Dst: OFFSET_BYTE
      Src: /src/nss/lib/ssl/dtlscon.c:451,1
    - Dst: OFFSET_MASK
      Src: /src/nss/lib/ssl/dtlscon.c:452,1
    - Dst: OFFSET_BYTE
      Src: /src/nss/lib/ssl/dtlscon.c:462,1
    - Dst: OFFSET_MASK
      Src: /src/nss/lib/ssl/dtlscon.c:463,1
    - Dst: dtls_HandleHandshakeMessage
      Src: /src/nss/lib/ssl/dtlscon.c:472,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/dtlscon.c:488,1
    - Dst: tls13_MaybeTls13
      Src: /src/nss/lib/ssl/dtlscon.c:495,1
    - Dst: dtls13_RememberFragment
      Src: /src/nss/lib/ssl/dtlscon.c:496,1
    - Dst: dtls13_SetupAcks
      Src: /src/nss/lib/ssl/dtlscon.c:502,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 129
    argCount: 4
    argNames:
    - ss
    - epoch
    - seqNum
    - origBuf
    argTypes:
    - sslSocket*
    - DTLSEpoch
    - sslSequenceNumber
    - sslBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 273
    functionDepth: 2
    functionLinenumber: 273
    functionLinenumberEnd: 507
    functionName: dtls_HandleHandshake
    functionSourceFile: /src/nss/lib/ssl/dtlscon.c
    functionUses: 0
    functionsReached:
    - dtls_RetransmitDetected
    - PORT_Assert
    - dtls_HandleHandshakeMessage
    - ssl_HaveSSL3HandshakeLock
    - ssl3_DecodeError
    - PORT_Memcpy
    - dtls13_RememberFragment
    - dtls13_SetupAcks
    - sslBuffer_Grow
    - SSL_TRC
    - OFFSET_BYTE
    - SSL_GETPID
    - OFFSET_MASK
    - tls13_MaybeTls13
    - PORT_SetError
    - ssl_HaveRecvBufLock
    - PORT_Memset
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus dtls_HandleHandshake(sslSocket *ss, DTLSEpoch epoch, sslSequenceNumber
      seqNum,\n                     sslBuffer *origBuf)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/dtlscon.c:523,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/dtlscon.c:523,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/dtlscon.c:524,1
    - Dst: ssl_HaveXmitBufLock
      Src: /src/nss/lib/ssl/dtlscon.c:524,1
    - Dst: dtls_AllocQueuedMessage
      Src: /src/nss/lib/ssl/dtlscon.c:527,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/dtlscon.c:530,1
    - Dst: PR_APPEND_LINK
      Src: /src/nss/lib/ssl/dtlscon.c:533,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - ss
    - ct
    - pIn
    - nIn
    argTypes:
    - sslSocket*
    - SSLContentType
    - PRUint8*
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 515
    functionDepth: 2
    functionLinenumber: 515
    functionLinenumberEnd: 537
    functionName: dtls_QueueMessage
    functionSourceFile: /src/nss/lib/ssl/dtlscon.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    - ssl_HaveXmitBufLock
    - dtls_AllocQueuedMessage
    - PORT_SetError
    - PR_APPEND_LINK
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus dtls_QueueMessage(sslSocket *ss, SSLContentType ct,\n                  const
      PRUint8 *pIn, PRInt32 nIn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/dtlscon.c:552,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/dtlscon.c:552,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/dtlscon.c:553,1
    - Dst: ssl_HaveXmitBufLock
      Src: /src/nss/lib/ssl/dtlscon.c:553,1
    - Dst: dtls_QueueMessage
      Src: /src/nss/lib/ssl/dtlscon.c:560,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 547
    functionDepth: 3
    functionLinenumber: 547
    functionLinenumberEnd: 566
    functionName: dtls_StageHandshakeMessage
    functionSourceFile: /src/nss/lib/ssl/dtlscon.c
    functionUses: 0
    functionsReached:
    - dtls_QueueMessage
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    - ssl_HaveXmitBufLock
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus dtls_StageHandshakeMessage(sslSocket *ss)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/dtlscon.c:579,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/dtlscon.c:579,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/dtlscon.c:580,1
    - Dst: ssl_HaveXmitBufLock
      Src: /src/nss/lib/ssl/dtlscon.c:580,1
    - Dst: dtls_StageHandshakeMessage
      Src: /src/nss/lib/ssl/dtlscon.c:582,1
    - Dst: dtls_TransmitMessageFlight
      Src: /src/nss/lib/ssl/dtlscon.c:588,1
    - Dst: dtls_StartRetransmitTimer
      Src: /src/nss/lib/ssl/dtlscon.c:594,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/dtlscon.c:596,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - ss
    - flags
    argTypes:
    - sslSocket*
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 574
    functionDepth: 4
    functionLinenumber: 574
    functionLinenumberEnd: 601
    functionName: dtls_FlushHandshakeMessages
    functionSourceFile: /src/nss/lib/ssl/dtlscon.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    - dtls_TransmitMessageFlight
    - ssl_HaveXmitBufLock
    - dtls_StageHandshakeMessage
    - dtls_StartRetransmitTimer
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus dtls_FlushHandshakeMessages(sslSocket *ss, PRInt32 flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dtls_SetMTU
      Src: /src/nss/lib/ssl/dtlscon.c:620,1
    - Dst: dtls_TransmitMessageFlight
      Src: /src/nss/lib/ssl/dtlscon.c:623,1
    - Dst: PR_IntervalNow
      Src: /src/nss/lib/ssl/dtlscon.c:631,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/dtlscon.c:634,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/dtlscon.c:636,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 609
    functionDepth: 1
    functionLinenumber: 609
    functionLinenumberEnd: 641
    functionName: dtls_RetransmitTimerExpiredCb
    functionSourceFile: /src/nss/lib/ssl/dtlscon.c
    functionUses: 1
    functionsReached:
    - dtls_TransmitMessageFlight
    - SSL_TRC
    - SSL_GETPID
    - dtls_SetMTU
    - PR_IntervalNow
    linkageType: ''
    returnType: void
    signature: void dtls_RetransmitTimerExpiredCb(sslSocket *ss)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/dtlscon.c:655,1
    - Dst: ssl3_SendRecord
      Src: /src/nss/lib/ssl/dtlscon.c:656,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/dtlscon.c:660,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/dtlscon.c:667,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/dtlscon.c:668,1
    - Dst: dtls_SendSavedWriteData
      Src: /src/nss/lib/ssl/dtlscon.c:669,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - ss
    - msg
    - data
    - len
    argTypes:
    - sslSocket*
    - DTLSQueuedMessage*
    - PRUint8*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 648
    functionDepth: 1
    functionLinenumber: 648
    functionLinenumberEnd: 675
    functionName: dtls_SendFragment
    functionSourceFile: /src/nss/lib/ssl/dtlscon.c
    functionUses: 0
    functionsReached:
    - dtls_SendSavedWriteData
    - SSL_TRC
    - SSL_GETPID
    - PRINT_BUF
    - PORT_SetError
    - ssl3_SendRecord
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus dtls_SendFragment(sslSocket *ss, DTLSQueuedMessage *msg,
      PRUint8 *data,\n                  unsigned int len)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/dtlscon.c:692,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/dtlscon.c:695,1
    - Dst: dtls_NextUnackedRange
      Src: /src/nss/lib/ssl/dtlscon.c:705,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/dtlscon.c:709,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/dtlscon.c:710,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/dtlscon.c:714,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/dtlscon.c:715,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/dtlscon.c:718,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/dtlscon.c:719,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/dtlscon.c:720,1
    - Dst: PR_MIN
      Src: /src/nss/lib/ssl/dtlscon.c:721,1
    - Dst: PR_MIN
      Src: /src/nss/lib/ssl/dtlscon.c:724,1
    - Dst: PR_MIN
      Src: /src/nss/lib/ssl/dtlscon.c:728,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/dtlscon.c:733,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/dtlscon.c:738,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/dtlscon.c:739,1
    - Dst: SSL_BUFFER_FIXED
      Src: /src/nss/lib/ssl/dtlscon.c:746,1
    - Dst: sslBuffer_Append
      Src: /src/nss/lib/ssl/dtlscon.c:750,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/dtlscon.c:755,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/dtlscon.c:760,1
    - Dst: sslBuffer_Append
      Src: /src/nss/lib/ssl/dtlscon.c:765,1
    - Dst: SSL_BUFFER_BASE
      Src: /src/nss/lib/ssl/dtlscon.c:770,1
    - Dst: dtls13_RememberFragment
      Src: /src/nss/lib/ssl/dtlscon.c:775,1
    - Dst: dtls_SendFragment
      Src: /src/nss/lib/ssl/dtlscon.c:783,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/dtlscon.c:796,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/dtlscon.c:797,1
    - Dst: PR_REMOVE_LINK
      Src: /src/nss/lib/ssl/dtlscon.c:798,1
    - Dst: dtls_FreeHandshakeMessage
      Src: /src/nss/lib/ssl/dtlscon.c:799,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 61
    argCount: 2
    argNames:
    - ss
    - msg
    argTypes:
    - sslSocket*
    - DTLSQueuedMessage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 678
    functionDepth: 2
    functionLinenumber: 678
    functionLinenumberEnd: 803
    functionName: dtls_FragmentHandshake
    functionSourceFile: /src/nss/lib/ssl/dtlscon.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - dtls13_RememberFragment
    - SSL_BUFFER_BASE
    - PR_MIN
    - dtls_SendFragment
    - SSL_TRC
    - SSL_GETPID
    - PR_REMOVE_LINK
    - sslBuffer_AppendNumber
    - PORT_SetError
    - dtls_FreeHandshakeMessage
    - dtls_NextUnackedRange
    - SSL_BUFFER_FIXED
    - sslBuffer_Append
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus dtls_FragmentHandshake(sslSocket *ss, DTLSQueuedMessage *msg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/dtlscon.c:820,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/dtlscon.c:821,1
    - Dst: ssl_GetXmitBufLock
      Src: /src/nss/lib/ssl/dtlscon.c:823,1
    - Dst: ssl_GetSpecReadLock
      Src: /src/nss/lib/ssl/dtlscon.c:824,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/dtlscon.c:832,1
    - Dst: PR_LIST_HEAD
      Src: /src/nss/lib/ssl/dtlscon.c:834,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/dtlscon.c:840,1
    - Dst: dtls_FragmentHandshake
      Src: /src/nss/lib/ssl/dtlscon.c:847,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/dtlscon.c:849,1
    - Dst: tls13_MaybeTls13
      Src: /src/nss/lib/ssl/dtlscon.c:849,1
    - Dst: dtls_SendFragment
      Src: /src/nss/lib/ssl/dtlscon.c:850,1
    - Dst: dtls_SendSavedWriteData
      Src: /src/nss/lib/ssl/dtlscon.c:859,1
    - Dst: ssl_ReleaseSpecReadLock
      Src: /src/nss/lib/ssl/dtlscon.c:863,1
    - Dst: ssl_ReleaseXmitBufLock
      Src: /src/nss/lib/ssl/dtlscon.c:864,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 814
    functionDepth: 3
    functionLinenumber: 814
    functionLinenumberEnd: 867
    functionName: dtls_TransmitMessageFlight
    functionSourceFile: /src/nss/lib/ssl/dtlscon.c
    functionUses: 3
    functionsReached:
    - dtls_FragmentHandshake
    - ssl_GetXmitBufLock
    - PORT_Assert
    - dtls_SendSavedWriteData
    - dtls_SendFragment
    - SSL_TRC
    - tls13_MaybeTls13
    - SSL_GETPID
    - PR_NEXT_LINK
    - ssl_ReleaseXmitBufLock
    - ssl_GetSpecReadLock
    - ssl_ReleaseSpecReadLock
    - PR_LIST_HEAD
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus dtls_TransmitMessageFlight(sslSocket *ss)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ssl_SendSavedWriteData
      Src: /src/nss/lib/ssl/dtlscon.c:880,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/dtlscon.c:887,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 897
      start: 875
    functionDepth: 3
    functionLinenumber: 875
    functionLinenumberEnd: 897
    functionName: dtls_SendSavedWriteData
    functionSourceFile: /src/nss/lib/ssl/dtlscon.c
    functionUses: 2
    functionsReached:
    - ssl_MapLowLevelError
    - ssl_SendSavedWriteData
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus dtls_SendSavedWriteData(sslSocket *ss)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/ssl/dtlscon.c:903,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/dtlscon.c:912,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/ssl/dtlscon.c:912,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/ssl/dtlscon.c:912,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/ssl/dtlscon.c:913,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 899
    functionDepth: 0
    functionLinenumber: 899
    functionLinenumberEnd: 917
    functionName: dtls_InitTimers
    functionSourceFile: /src/nss/lib/ssl/dtlscon.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - PR_ARRAY_SIZE
    linkageType: ''
    returnType: void
    signature: void dtls_InitTimers(sslSocket *ss)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/dtlscon.c:922,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/dtlscon.c:924,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/dtlscon.c:925,1
    - Dst: SSL_ROLE
      Src: /src/nss/lib/ssl/dtlscon.c:925,1
    - Dst: PR_IntervalNow
      Src: /src/nss/lib/ssl/dtlscon.c:927,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - ss
    - timer
    - time
    - cb
    argTypes:
    - sslSocket*
    - dtlsTimer*
    - PRUint32
    - DTLSTimerCb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 919
    functionDepth: 1
    functionLinenumber: 919
    functionLinenumberEnd: 931
    functionName: dtls_StartTimer
    functionSourceFile: /src/nss/lib/ssl/dtlscon.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - SSL_ROLE
    - SSL_TRC
    - SSL_GETPID
    - PR_IntervalNow
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus dtls_StartTimer(sslSocket *ss, dtlsTimer *timer, PRUint32
      time, DTLSTimerCb cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_IntervalNow
      Src: /src/nss/lib/ssl/dtlscon.c:936,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ss
    - timer
    argTypes:
    - sslSocket*
    - dtlsTimer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 933
    functionDepth: 1
    functionLinenumber: 933
    functionLinenumberEnd: 938
    functionName: dtls_RestartTimer
    functionSourceFile: /src/nss/lib/ssl/dtlscon.c
    functionUses: 0
    functionsReached:
    - PR_IntervalNow
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus dtls_RestartTimer(sslSocket *ss, dtlsTimer *timer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ss
    - timer
    argTypes:
    - sslSocket*
    - dtlsTimer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 940
    functionDepth: 0
    functionLinenumber: 940
    functionLinenumberEnd: 944
    functionName: dtls_TimerActive
    functionSourceFile: /src/nss/lib/ssl/dtlscon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool dtls_TimerActive(sslSocket *ss, dtlsTimer *timer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dtls_StartTimer
      Src: /src/nss/lib/ssl/dtlscon.c:950,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 946
    functionDepth: 2
    functionLinenumber: 946
    functionLinenumberEnd: 953
    functionName: dtls_StartRetransmitTimer
    functionSourceFile: /src/nss/lib/ssl/dtlscon.c
    functionUses: 1
    functionsReached:
    - dtls_StartTimer
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus dtls_StartRetransmitTimer(sslSocket *ss)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/dtlscon.c:960,1
    - Dst: dtls_StartTimer
      Src: /src/nss/lib/ssl/dtlscon.c:961,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 964
      start: 956
    functionDepth: 2
    functionLinenumber: 956
    functionLinenumberEnd: 964
    functionName: dtls_StartHolddownTimer
    functionSourceFile: /src/nss/lib/ssl/dtlscon.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - dtls_StartTimer
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus dtls_StartHolddownTimer(sslSocket *ss)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/dtlscon.c:975,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/dtlscon.c:976,1
    - Dst: SSL_ROLE
      Src: /src/nss/lib/ssl/dtlscon.c:976,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/dtlscon.c:979,1
    - Dst: ssl_HaveRecvBufLock
      Src: /src/nss/lib/ssl/dtlscon.c:979,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ss
    - timer
    argTypes:
    - sslSocket*
    - dtlsTimer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 972
    functionDepth: 1
    functionLinenumber: 972
    functionLinenumberEnd: 982
    functionName: dtls_CancelTimer
    functionSourceFile: /src/nss/lib/ssl/dtlscon.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - SSL_ROLE
    - SSL_TRC
    - SSL_GETPID
    - ssl_HaveRecvBufLock
    linkageType: ''
    returnType: void
    signature: void dtls_CancelTimer(sslSocket *ss, dtlsTimer *timer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/ssl/dtlscon.c:989,1
    - Dst: dtls_CancelTimer
      Src: /src/nss/lib/ssl/dtlscon.c:990,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 984
    functionDepth: 2
    functionLinenumber: 984
    functionLinenumberEnd: 992
    functionName: dtls_CancelAllTimers
    functionSourceFile: /src/nss/lib/ssl/dtlscon.c
    functionUses: 0
    functionsReached:
    - dtls_CancelTimer
    - PR_ARRAY_SIZE
    linkageType: ''
    returnType: void
    signature: void dtls_CancelAllTimers(sslSocket *ss)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/dtlscon.c:1002,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/dtlscon.c:1003,1
    - Dst: ssl_GetSSL3HandshakeLock
      Src: /src/nss/lib/ssl/dtlscon.c:1005,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/ssl/dtlscon.c:1007,1
    - Dst: PR_IntervalNow
      Src: /src/nss/lib/ssl/dtlscon.c:1013,1
    - Dst: PR_MillisecondsToInterval
      Src: /src/nss/lib/ssl/dtlscon.c:1014,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/dtlscon.c:1018,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/dtlscon.c:1019,1
    - Dst: SSL_ROLE
      Src: /src/nss/lib/ssl/dtlscon.c:1019,1
    - Dst: dtls_CancelTimer
      Src: /src/nss/lib/ssl/dtlscon.c:1023,1
    - Dst: cb
      Src: /src/nss/lib/ssl/dtlscon.c:1026,1
    - Dst: ssl_ReleaseSSL3HandshakeLock
      Src: /src/nss/lib/ssl/dtlscon.c:1029,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1030
      start: 998
    functionDepth: 2
    functionLinenumber: 998
    functionLinenumberEnd: 1030
    functionName: dtls_CheckTimer
    functionSourceFile: /src/nss/lib/ssl/dtlscon.c
    functionUses: 1
    functionsReached:
    - SSL_ROLE
    - dtls_CancelTimer
    - PR_MillisecondsToInterval
    - ssl_GetSSL3HandshakeLock
    - SSL_TRC
    - SSL_GETPID
    - PR_ARRAY_SIZE
    - ssl_ReleaseSSL3HandshakeLock
    - PR_IntervalNow
    - cb
    linkageType: ''
    returnType: void
    signature: void dtls_CheckTimer(sslSocket *ss)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dtls_FreeHandshakeMessages
      Src: /src/nss/lib/ssl/dtlscon.c:1040,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 1037
    functionDepth: 3
    functionLinenumber: 1037
    functionLinenumberEnd: 1041
    functionName: dtls_FinishedTimerCb
    functionSourceFile: /src/nss/lib/ssl/dtlscon.c
    functionUses: 0
    functionsReached:
    - dtls_FreeHandshakeMessages
    linkageType: ''
    returnType: void
    signature: void dtls_FinishedTimerCb(sslSocket *ss)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/dtlscon.c:1058,1
    - Dst: dtls_CancelAllTimers
      Src: /src/nss/lib/ssl/dtlscon.c:1059,1
    - Dst: dtls_FreeHandshakeMessages
      Src: /src/nss/lib/ssl/dtlscon.c:1060,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1063
      start: 1051
    functionDepth: 3
    functionLinenumber: 1051
    functionLinenumberEnd: 1063
    functionName: dtls_RehandshakeCleanup
    functionSourceFile: /src/nss/lib/ssl/dtlscon.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - dtls_CancelAllTimers
    - dtls_FreeHandshakeMessages
    linkageType: ''
    returnType: void
    signature: void dtls_RehandshakeCleanup(sslSocket *ss)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/dtlscon.c:1083,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/ssl/dtlscon.c:1087,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/dtlscon.c:1090,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/ssl/dtlscon.c:1096,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/dtlscon.c:1097,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - ss
    - advertised
    argTypes:
    - sslSocket*
    - PRUint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1098
      start: 1076
    functionDepth: 1
    functionLinenumber: 1076
    functionLinenumberEnd: 1098
    functionName: dtls_SetMTU
    functionSourceFile: /src/nss/lib/ssl/dtlscon.c
    functionUses: 1
    functionsReached:
    - SSL_TRC
    - PR_ARRAY_SIZE
    linkageType: ''
    returnType: void
    signature: void dtls_SetMTU(sslSocket *ss, PRUint16 advertised)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/dtlscon.c:1112,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/dtlscon.c:1113,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/dtlscon.c:1114,1
    - Dst: ssl_HaveRecvBufLock
      Src: /src/nss/lib/ssl/dtlscon.c:1114,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/dtlscon.c:1115,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/dtlscon.c:1115,1
    - Dst: dtls_ReceivedFirstMessageInFlight
      Src: /src/nss/lib/ssl/dtlscon.c:1123,1
    - Dst: ssl_ClientReadVersion
      Src: /src/nss/lib/ssl/dtlscon.c:1138,1
    - Dst: ssl3_ConsumeHandshakeVariable
      Src: /src/nss/lib/ssl/dtlscon.c:1146,1
    - Dst: ssl_GetXmitBufLock
      Src: /src/nss/lib/ssl/dtlscon.c:1155,1
    - Dst: ssl3_SendClientHello
      Src: /src/nss/lib/ssl/dtlscon.c:1158,1
    - Dst: ssl_ReleaseXmitBufLock
      Src: /src/nss/lib/ssl/dtlscon.c:1160,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/dtlscon.c:1166,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/dtlscon.c:1169,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 3
    argNames:
    - ss
    - b
    - length
    argTypes:
    - sslSocket*
    - PRUint8*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1104
    functionDepth: 1
    functionLinenumber: 1104
    functionLinenumberEnd: 1171
    functionName: dtls_HandleHelloVerifyRequest
    functionSourceFile: /src/nss/lib/ssl/dtlscon.c
    functionUses: 0
    functionsReached:
    - ssl3_SendClientHello
    - PORT_Assert
    - ssl_GetXmitBufLock
    - ssl_HaveSSL3HandshakeLock
    - SSL3_SendAlert
    - SSL_TRC
    - ssl3_ConsumeHandshakeVariable
    - SSL_GETPID
    - ssl_ReleaseXmitBufLock
    - ssl_MapLowLevelError
    - ssl_HaveRecvBufLock
    - dtls_ReceivedFirstMessageInFlight
    - ssl_ClientReadVersion
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus dtls_HandleHelloVerifyRequest(sslSocket *ss, PRUint8 *b,
      PRUint32 length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memset
      Src: /src/nss/lib/ssl/dtlscon.c:1182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - records
    argTypes:
    - DTLSRecvdRecords*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1185
      start: 1179
    functionDepth: 0
    functionLinenumber: 1179
    functionLinenumberEnd: 1185
    functionName: dtls_InitRecvdRecords
    functionSourceFile: /src/nss/lib/ssl/dtlscon.c
    functionUses: 1
    functionsReached:
    - PORT_Memset
    linkageType: ''
    returnType: void
    signature: void dtls_InitRecvdRecords(DTLSRecvdRecords *records)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - records
    - seq
    argTypes:
    - DTLSRecvdRecords*
    - sslSequenceNumber
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1214
      start: 1195
    functionDepth: 0
    functionLinenumber: 1195
    functionLinenumberEnd: 1214
    functionName: dtls_RecordGetRecvd
    functionSourceFile: /src/nss/lib/ssl/dtlscon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dtls_RecordGetRecvd(const DTLSRecvdRecords *records, sslSequenceNumber
      seq)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memset
      Src: /src/nss/lib/ssl/dtlscon.c:1248,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - records
    - seq
    argTypes:
    - DTLSRecvdRecords*
    - sslSequenceNumber
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1263
      start: 1220
    functionDepth: 0
    functionLinenumber: 1220
    functionLinenumberEnd: 1263
    functionName: dtls_RecordSetRecvd
    functionSourceFile: /src/nss/lib/ssl/dtlscon.c
    functionUses: 0
    functionsReached:
    - PORT_Memset
    linkageType: ''
    returnType: void
    signature: void dtls_RecordSetRecvd(DTLSRecvdRecords *records, sslSequenceNumber
      seq)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PR_IntervalNow
      Src: /src/nss/lib/ssl/dtlscon.c:1270,1
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/dtlscon.c:1276,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/dtlscon.c:1279,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/dtlscon.c:1283,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/dtlscon.c:1284,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/ssl/dtlscon.c:1288,1
    - Dst: PR_MillisecondsToInterval
      Src: /src/nss/lib/ssl/dtlscon.c:1299,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/dtlscon.c:1314,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 2
    argNames:
    - socket
    - timeout
    argTypes:
    - PRFileDesc*
    - PRIntervalTime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1319
      start: 1265
    functionDepth: 2
    functionLinenumber: 1265
    functionLinenumberEnd: 1319
    functionName: DTLS_GetHandshakeTimeout
    functionSourceFile: /src/nss/lib/ssl/dtlscon.c
    functionUses: 0
    functionsReached:
    - IS_DTLS
    - PR_MillisecondsToInterval
    - PR_ARRAY_SIZE
    - PORT_SetError
    - PR_IntervalNow
    - ssl_FindSocket
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus DTLS_GetHandshakeTimeout(PRFileDesc *socket, PRIntervalTime
      *timeout)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 2
    argNames:
    - version
    - firstOctet
    argTypes:
    - SSL3ProtocolVersion
    - PRUint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1332
      start: 1321
    functionDepth: 0
    functionLinenumber: 1321
    functionLinenumberEnd: 1332
    functionName: dtls_IsLongHeader
    functionSourceFile: /src/nss/lib/ssl/dtlscon.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool dtls_IsLongHeader(SSL3ProtocolVersion version, PRUint8 firstOctet)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - version
    - firstOctet
    argTypes:
    - SSL3ProtocolVersion
    - PRUint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1340
      start: 1334
    functionDepth: 0
    functionLinenumber: 1334
    functionLinenumberEnd: 1340
    functionName: dtls_IsDtls13Ciphertext
    functionSourceFile: /src/nss/lib/ssl/dtlscon.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool dtls_IsDtls13Ciphertext(SSL3ProtocolVersion version, PRUint8
      firstOctet)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dtls_IsLongHeader
      Src: /src/nss/lib/ssl/dtlscon.c:1345,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - version
    - specEpoch
    - hdr
    argTypes:
    - SSL3ProtocolVersion
    - DTLSEpoch
    - PRUint8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1357
      start: 1342
    functionDepth: 1
    functionLinenumber: 1342
    functionLinenumberEnd: 1357
    functionName: dtls_ReadEpoch
    functionSourceFile: /src/nss/lib/ssl/dtlscon.c
    functionUses: 0
    functionsReached:
    - dtls_IsLongHeader
    linkageType: ''
    returnType: DTLSEpoch
    signature: DTLSEpoch dtls_ReadEpoch(const SSL3ProtocolVersion version, const DTLSEpoch
      specEpoch, const PRUint8 *hdr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dtls_IsLongHeader
      Src: /src/nss/lib/ssl/dtlscon.c:1367,1
    - Dst: SSL_READER
      Src: /src/nss/lib/ssl/dtlscon.c:1370,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/dtlscon.c:1371,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - spec
    - hdr
    argTypes:
    - ssl3CipherSpec*
    - PRUint8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1402
      start: 1359
    functionDepth: 1
    functionLinenumber: 1359
    functionLinenumberEnd: 1402
    functionName: dtls_ReadSequenceNumber
    functionSourceFile: /src/nss/lib/ssl/dtlscon.c
    functionUses: 0
    functionsReached:
    - sslRead_ReadNumber
    - SSL_READER
    - dtls_IsLongHeader
    linkageType: ''
    returnType: sslSequenceNumber
    signature: sslSequenceNumber dtls_ReadSequenceNumber(const ssl3CipherSpec *spec,
      const PRUint8 *hdr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dtls_ReadSequenceNumber
      Src: /src/nss/lib/ssl/dtlscon.c:1421,1
    - Dst: dtls_RecordGetRecvd
      Src: /src/nss/lib/ssl/dtlscon.c:1422,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/dtlscon.c:1423,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/dtlscon.c:1425,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - ss
    - spec
    - cText
    - seqNumOut
    argTypes:
    - sslSocket*
    - ssl3CipherSpec*
    - SSL3Ciphertext*
    - sslSequenceNumber*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1431
      start: 1416
    functionDepth: 2
    functionLinenumber: 1416
    functionLinenumberEnd: 1431
    functionName: dtls_IsRelevant
    functionSourceFile: /src/nss/lib/ssl/dtlscon.c
    functionUses: 0
    functionsReached:
    - dtls_RecordGetRecvd
    - SSL_TRC
    - SSL_GETPID
    - dtls_ReadSequenceNumber
    linkageType: ''
    returnType: PRBool
    signature: "PRBool dtls_IsRelevant(sslSocket *ss, const ssl3CipherSpec *spec,\n
      \               const SSL3Ciphertext *cText,\n                sslSequenceNumber
      *seqNumOut)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/dtlscon.c:1436,1
    - Dst: dtls_FreeHandshakeMessages
      Src: /src/nss/lib/ssl/dtlscon.c:1446,1
    - Dst: dtls_CancelTimer
      Src: /src/nss/lib/ssl/dtlscon.c:1450,1
    - Dst: ssl_ClearPRCList
      Src: /src/nss/lib/ssl/dtlscon.c:1457,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1458
      start: 1433
    functionDepth: 3
    functionLinenumber: 1433
    functionLinenumberEnd: 1458
    functionName: dtls_ReceivedFirstMessageInFlight
    functionSourceFile: /src/nss/lib/ssl/dtlscon.c
    functionUses: 4
    functionsReached:
    - IS_DTLS
    - ssl_ClearPRCList
    - dtls_CancelTimer
    - dtls_FreeHandshakeMessages
    linkageType: ''
    returnType: void
    signature: void dtls_ReceivedFirstMessageInFlight(sslSocket *ss)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslspec.c:70,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/ssl/sslspec.c:70,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslspec.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - suiteDef
    argTypes:
    - ssl3CipherSuiteDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 73
    functionName: ssl_GetBulkCipherDef
    functionSourceFile: /src/nss/lib/ssl/sslspec.c
    functionUses: 4
    functionsReached:
    - PORT_Assert
    - PR_ARRAY_SIZE
    linkageType: ''
    returnType: ssl3BulkCipherDef
    signature: 'ssl3BulkCipherDef *

      ssl_GetBulkCipherDef(const ssl3CipherSuiteDef *suiteDef)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslspec.c:93,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/ssl/sslspec.c:93,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslspec.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - mac
    argTypes:
    - SSL3MACAlgorithm
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 96
    functionName: ssl_GetMacDefByAlg
    functionSourceFile: /src/nss/lib/ssl/sslspec.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PR_ARRAY_SIZE
    linkageType: ''
    returnType: ssl3MACDef
    signature: 'ssl3MACDef *

      ssl_GetMacDefByAlg(SSL3MACAlgorithm mac)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ssl_GetMacDefByAlg
      Src: /src/nss/lib/ssl/sslspec.c:114,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - ss
    - suiteDef
    argTypes:
    - sslSocket*
    - ssl3CipherSuiteDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 115
    functionName: ssl_GetMacDef
    functionSourceFile: /src/nss/lib/ssl/sslspec.c
    functionUses: 0
    functionsReached:
    - ssl_GetMacDefByAlg
    linkageType: ''
    returnType: ssl3MACDef
    signature: 'ssl3MACDef *

      ssl_GetMacDef(const sslSocket *ss, const ssl3CipherSuiteDef *suiteDef)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_LIST_HEAD
      Src: /src/nss/lib/ssl/sslspec.c:122,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/sslspec.c:124,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - ss
    - direction
    - epoch
    argTypes:
    - sslSocket*
    - SSLSecretDirection
    - DTLSEpoch
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 135
    functionName: ssl_FindCipherSpecByEpoch
    functionSourceFile: /src/nss/lib/ssl/sslspec.c
    functionUses: 1
    functionsReached:
    - PR_LIST_HEAD
    - PR_NEXT_LINK
    linkageType: ''
    returnType: ssl3CipherSpec
    signature: "ssl3CipherSpec *\nssl_FindCipherSpecByEpoch(sslSocket *ss, SSLSecretDirection
      direction,\n                          DTLSEpoch epoch)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZNew
      Src: /src/nss/lib/ssl/sslspec.c:140,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/sslspec.c:148,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslspec.c:149,1
    - Dst: SPEC_DIR
      Src: /src/nss/lib/ssl/sslspec.c:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ss
    - direction
    argTypes:
    - sslSocket*
    - SSLSecretDirection
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 152
    functionName: ssl_CreateCipherSpec
    functionSourceFile: /src/nss/lib/ssl/sslspec.c
    functionUses: 1
    functionsReached:
    - SPEC_DIR
    - SSL_TRC
    - SSL_GETPID
    - PORT_ZNew
    linkageType: ''
    returnType: ssl3CipherSpec
    signature: 'ssl3CipherSpec *

      ssl_CreateCipherSpec(sslSocket *ss, SSLSecretDirection direction)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_APPEND_LINK
      Src: /src/nss/lib/ssl/sslspec.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ss
    - spec
    argTypes:
    - sslSocket*
    - ssl3CipherSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 158
    functionName: ssl_SaveCipherSpec
    functionSourceFile: /src/nss/lib/ssl/sslspec.c
    functionUses: 1
    functionsReached:
    - PR_APPEND_LINK
    linkageType: ''
    returnType: void
    signature: void ssl_SaveCipherSpec(sslSocket *ss, ssl3CipherSpec *spec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslspec.c:167,1
    - Dst: ssl_HaveSpecWriteLock
      Src: /src/nss/lib/ssl/sslspec.c:167,1
    - Dst: ssl_CreateCipherSpec
      Src: /src/nss/lib/ssl/sslspec.c:169,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/sslspec.c:178,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslspec.c:182,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslspec.c:184,1
    - Dst: dtls_InitRecvdRecords
      Src: /src/nss/lib/ssl/sslspec.c:188,1
    - Dst: ssl_SaveCipherSpec
      Src: /src/nss/lib/ssl/sslspec.c:190,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - ss
    - dir
    argTypes:
    - sslSocket*
    - SSLSecretDirection
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 197
    functionName: ssl_SetupNullCipherSpec
    functionSourceFile: /src/nss/lib/ssl/sslspec.c
    functionUses: 0
    functionsReached:
    - ssl_HaveSpecWriteLock
    - PORT_Assert
    - IS_DTLS
    - ssl_SaveCipherSpec
    - ssl_CreateCipherSpec
    - dtls_InitRecvdRecords
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl_SetupNullCipherSpec(sslSocket *ss, SSLSecretDirection
      dir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/sslspec.c:203,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslspec.c:204,1
    - Dst: SPEC_DIR
      Src: /src/nss/lib/ssl/sslspec.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - spec
    argTypes:
    - ssl3CipherSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 205
    functionName: ssl_CipherSpecAddRef
    functionSourceFile: /src/nss/lib/ssl/sslspec.c
    functionUses: 4
    functionsReached:
    - SPEC_DIR
    - SSL_TRC
    - SSL_GETPID
    linkageType: ''
    returnType: void
    signature: void ssl_CipherSpecAddRef(ssl3CipherSpec *spec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/sslspec.c:210,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/sslspec.c:211,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/ssl/sslspec.c:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - keyMaterial
    argTypes:
    - ssl3KeyMaterial*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 207
    functionDepth: 5
    functionLinenumber: 207
    functionLinenumberEnd: 215
    functionName: ssl_DestroyKeyMaterial
    functionSourceFile: /src/nss/lib/ssl/sslspec.c
    functionUses: 0
    functionsReached:
    - PK11_DestroyContext
    - PK11_FreeSymKey
    linkageType: ''
    returnType: void
    signature: void ssl_DestroyKeyMaterial(ssl3KeyMaterial *keyMaterial)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/sslspec.c:220,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslspec.c:221,1
    - Dst: SPEC_DIR
      Src: /src/nss/lib/ssl/sslspec.c:221,1
    - Dst: PR_REMOVE_LINK
      Src: /src/nss/lib/ssl/sslspec.c:223,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/ssl/sslspec.c:227,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/sslspec.c:229,1
    - Dst: ssl_DestroyKeyMaterial
      Src: /src/nss/lib/ssl/sslspec.c:230,1
    - Dst: ssl_DestroyMaskingContextInner
      Src: /src/nss/lib/ssl/sslspec.c:231,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/ssl/sslspec.c:233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - spec
    argTypes:
    - ssl3CipherSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 217
    functionDepth: 6
    functionLinenumber: 217
    functionLinenumberEnd: 234
    functionName: ssl_FreeCipherSpec
    functionSourceFile: /src/nss/lib/ssl/sslspec.c
    functionUses: 0
    functionsReached:
    - PK11_DestroyContext
    - PORT_ZFree
    - SSL_TRC
    - SSL_GETPID
    - PR_REMOVE_LINK
    - ssl_DestroyMaskingContextInner
    - ssl_DestroyKeyMaterial
    - SPEC_DIR
    - PK11_FreeSymKey
    linkageType: ''
    returnType: void
    signature: void ssl_FreeCipherSpec(ssl3CipherSpec *spec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslspec.c:245,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/sslspec.c:247,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslspec.c:248,1
    - Dst: SPEC_DIR
      Src: /src/nss/lib/ssl/sslspec.c:248,1
    - Dst: ssl_FreeCipherSpec
      Src: /src/nss/lib/ssl/sslspec.c:250,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - spec
    argTypes:
    - ssl3CipherSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 238
    functionDepth: 7
    functionLinenumber: 238
    functionLinenumberEnd: 252
    functionName: ssl_CipherSpecRelease
    functionSourceFile: /src/nss/lib/ssl/sslspec.c
    functionUses: 3
    functionsReached:
    - PORT_Assert
    - SSL_TRC
    - SSL_GETPID
    - ssl_FreeCipherSpec
    - SPEC_DIR
    linkageType: ''
    returnType: void
    signature: void ssl_CipherSpecRelease(ssl3CipherSpec *spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/lib/ssl/sslspec.c:257,1
    - Dst: PR_LIST_TAIL
      Src: /src/nss/lib/ssl/sslspec.c:258,1
    - Dst: ssl_FreeCipherSpec
      Src: /src/nss/lib/ssl/sslspec.c:259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - list
    argTypes:
    - PRCList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 254
    functionDepth: 7
    functionLinenumber: 254
    functionLinenumberEnd: 261
    functionName: ssl_DestroyCipherSpecs
    functionSourceFile: /src/nss/lib/ssl/sslspec.c
    functionUses: 0
    functionsReached:
    - ssl_FreeCipherSpec
    - PR_LIST_TAIL
    - PR_CLIST_IS_EMPTY
    linkageType: ''
    returnType: void
    signature: void ssl_DestroyCipherSpecs(PRCList *list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/sslspec.c:268,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslspec.c:269,1
    - Dst: ssl_FindCipherSpecByEpoch
      Src: /src/nss/lib/ssl/sslspec.c:272,1
    - Dst: ssl_CipherSpecRelease
      Src: /src/nss/lib/ssl/sslspec.c:274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ss
    - dir
    - epoch
    argTypes:
    - sslSocket*
    - SSLSecretDirection
    - DTLSEpoch
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 263
    functionDepth: 8
    functionLinenumber: 263
    functionLinenumberEnd: 276
    functionName: ssl_CipherSpecReleaseByEpoch
    functionSourceFile: /src/nss/lib/ssl/sslspec.c
    functionUses: 4
    functionsReached:
    - SSL_TRC
    - SSL_GETPID
    - ssl_FindCipherSpecByEpoch
    - ssl_CipherSpecRelease
    linkageType: ''
    returnType: void
    signature: "void ssl_CipherSpecReleaseByEpoch(sslSocket *ss, SSLSecretDirection
      dir,\n                             DTLSEpoch epoch)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_win32_map_default_error
      Src: /src/nss/lib/ssl/win32err.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 40
    functionName: nss_MD_win32_map_opendir_error
    functionSourceFile: /src/nss/lib/ssl/win32err.c
    functionUses: 0
    functionsReached:
    - nss_MD_win32_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_win32_map_opendir_error(PRInt32 err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_win32_map_default_error
      Src: /src/nss/lib/ssl/win32err.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: nss_MD_win32_map_closedir_error
    functionSourceFile: /src/nss/lib/ssl/win32err.c
    functionUses: 0
    functionsReached:
    - nss_MD_win32_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_win32_map_closedir_error(PRInt32 err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_win32_map_default_error
      Src: /src/nss/lib/ssl/win32err.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: nss_MD_win32_map_readdir_error
    functionSourceFile: /src/nss/lib/ssl/win32err.c
    functionUses: 0
    functionsReached:
    - nss_MD_win32_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_win32_map_readdir_error(PRInt32 err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_win32_map_default_error
      Src: /src/nss/lib/ssl/win32err.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: nss_MD_win32_map_delete_error
    functionSourceFile: /src/nss/lib/ssl/win32err.c
    functionUses: 0
    functionsReached:
    - nss_MD_win32_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_win32_map_delete_error(PRInt32 err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_win32_map_default_error
      Src: /src/nss/lib/ssl/win32err.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 65
    functionName: nss_MD_win32_map_stat_error
    functionSourceFile: /src/nss/lib/ssl/win32err.c
    functionUses: 0
    functionsReached:
    - nss_MD_win32_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_win32_map_stat_error(PRInt32 err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_win32_map_default_error
      Src: /src/nss/lib/ssl/win32err.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: nss_MD_win32_map_fstat_error
    functionSourceFile: /src/nss/lib/ssl/win32err.c
    functionUses: 0
    functionsReached:
    - nss_MD_win32_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_win32_map_fstat_error(PRInt32 err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_win32_map_default_error
      Src: /src/nss/lib/ssl/win32err.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: nss_MD_win32_map_rename_error
    functionSourceFile: /src/nss/lib/ssl/win32err.c
    functionUses: 0
    functionsReached:
    - nss_MD_win32_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_win32_map_rename_error(PRInt32 err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_win32_map_default_error
      Src: /src/nss/lib/ssl/win32err.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 84
    functionName: nss_MD_win32_map_access_error
    functionSourceFile: /src/nss/lib/ssl/win32err.c
    functionUses: 0
    functionsReached:
    - nss_MD_win32_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_win32_map_access_error(PRInt32 err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_win32_map_default_error
      Src: /src/nss/lib/ssl/win32err.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: nss_MD_win32_map_mkdir_error
    functionSourceFile: /src/nss/lib/ssl/win32err.c
    functionUses: 0
    functionsReached:
    - nss_MD_win32_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_win32_map_mkdir_error(PRInt32 err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_win32_map_default_error
      Src: /src/nss/lib/ssl/win32err.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: nss_MD_win32_map_rmdir_error
    functionSourceFile: /src/nss/lib/ssl/win32err.c
    functionUses: 0
    functionsReached:
    - nss_MD_win32_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_win32_map_rmdir_error(PRInt32 err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_win32_map_default_error
      Src: /src/nss/lib/ssl/win32err.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: nss_MD_win32_map_read_error
    functionSourceFile: /src/nss/lib/ssl/win32err.c
    functionUses: 0
    functionsReached:
    - nss_MD_win32_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_win32_map_read_error(PRInt32 err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_win32_map_default_error
      Src: /src/nss/lib/ssl/win32err.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: nss_MD_win32_map_transmitfile_error
    functionSourceFile: /src/nss/lib/ssl/win32err.c
    functionUses: 0
    functionsReached:
    - nss_MD_win32_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_win32_map_transmitfile_error(PRInt32 err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_win32_map_default_error
      Src: /src/nss/lib/ssl/win32err.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: nss_MD_win32_map_write_error
    functionSourceFile: /src/nss/lib/ssl/win32err.c
    functionUses: 0
    functionsReached:
    - nss_MD_win32_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_win32_map_write_error(PRInt32 err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_win32_map_default_error
      Src: /src/nss/lib/ssl/win32err.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 120
    functionName: nss_MD_win32_map_lseek_error
    functionSourceFile: /src/nss/lib/ssl/win32err.c
    functionUses: 0
    functionsReached:
    - nss_MD_win32_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_win32_map_lseek_error(PRInt32 err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_win32_map_default_error
      Src: /src/nss/lib/ssl/win32err.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 126
    functionName: nss_MD_win32_map_fsync_error
    functionSourceFile: /src/nss/lib/ssl/win32err.c
    functionUses: 0
    functionsReached:
    - nss_MD_win32_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_win32_map_fsync_error(PRInt32 err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_win32_map_default_error
      Src: /src/nss/lib/ssl/win32err.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 135
    functionName: nss_MD_win32_map_close_error
    functionSourceFile: /src/nss/lib/ssl/win32err.c
    functionUses: 0
    functionsReached:
    - nss_MD_win32_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_win32_map_close_error(PRInt32 err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/win32err.c:140,1
    - Dst: nss_MD_win32_map_default_error
      Src: /src/nss/lib/ssl/win32err.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - err
    argTypes:
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: nss_MD_win32_map_socket_error
    functionSourceFile: /src/nss/lib/ssl/win32err.c
    functionUses: 0
    functionsReached:
    - nss_MD_win32_map_default_error
    - PR_ASSERT
    linkageType: ''
    returnType: void
    signature: void nss_MD_win32_map_socket_error(PRInt32 err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_win32_map_default_error
      Src: /src/nss/lib/ssl/win32err.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 148
    functionName: nss_MD_win32_map_recv_error
    functionSourceFile: /src/nss/lib/ssl/win32err.c
    functionUses: 0
    functionsReached:
    - nss_MD_win32_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_win32_map_recv_error(PRInt32 err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_win32_map_default_error
      Src: /src/nss/lib/ssl/win32err.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 154
    functionName: nss_MD_win32_map_recvfrom_error
    functionSourceFile: /src/nss/lib/ssl/win32err.c
    functionUses: 0
    functionsReached:
    - nss_MD_win32_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_win32_map_recvfrom_error(PRInt32 err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_win32_map_default_error
      Src: /src/nss/lib/ssl/win32err.c:165,1
    - Dst: PR_SetError
      Src: /src/nss/lib/ssl/win32err.c:168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - err
    argTypes:
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 169
    functionName: nss_MD_win32_map_send_error
    functionSourceFile: /src/nss/lib/ssl/win32err.c
    functionUses: 0
    functionsReached:
    - PR_SetError
    - nss_MD_win32_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_win32_map_send_error(PRInt32 err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_win32_map_default_error
      Src: /src/nss/lib/ssl/win32err.c:180,1
    - Dst: PR_SetError
      Src: /src/nss/lib/ssl/win32err.c:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - err
    argTypes:
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 184
    functionName: nss_MD_win32_map_sendto_error
    functionSourceFile: /src/nss/lib/ssl/win32err.c
    functionUses: 0
    functionsReached:
    - PR_SetError
    - nss_MD_win32_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_win32_map_sendto_error(PRInt32 err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_win32_map_default_error
      Src: /src/nss/lib/ssl/win32err.c:198,1
    - Dst: PR_SetError
      Src: /src/nss/lib/ssl/win32err.c:201,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - err
    argTypes:
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 202
    functionName: nss_MD_win32_map_accept_error
    functionSourceFile: /src/nss/lib/ssl/win32err.c
    functionUses: 0
    functionsReached:
    - PR_SetError
    - nss_MD_win32_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_win32_map_accept_error(PRInt32 err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_win32_map_default_error
      Src: /src/nss/lib/ssl/win32err.c:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 208
    functionName: nss_MD_win32_map_acceptex_error
    functionSourceFile: /src/nss/lib/ssl/win32err.c
    functionUses: 0
    functionsReached:
    - nss_MD_win32_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_win32_map_acceptex_error(PRInt32 err)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_win32_map_default_error
      Src: /src/nss/lib/ssl/win32err.c:225,1
    - Dst: PR_SetError
      Src: /src/nss/lib/ssl/win32err.c:228,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - err
    argTypes:
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 229
    functionName: nss_MD_win32_map_connect_error
    functionSourceFile: /src/nss/lib/ssl/win32err.c
    functionUses: 0
    functionsReached:
    - PR_SetError
    - nss_MD_win32_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_win32_map_connect_error(PRInt32 err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_win32_map_default_error
      Src: /src/nss/lib/ssl/win32err.c:240,1
    - Dst: PR_SetError
      Src: /src/nss/lib/ssl/win32err.c:243,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - err
    argTypes:
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 244
    functionName: nss_MD_win32_map_bind_error
    functionSourceFile: /src/nss/lib/ssl/win32err.c
    functionUses: 0
    functionsReached:
    - PR_SetError
    - nss_MD_win32_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_win32_map_bind_error(PRInt32 err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_win32_map_default_error
      Src: /src/nss/lib/ssl/win32err.c:258,1
    - Dst: PR_SetError
      Src: /src/nss/lib/ssl/win32err.c:261,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - err
    argTypes:
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 262
    functionName: nss_MD_win32_map_listen_error
    functionSourceFile: /src/nss/lib/ssl/win32err.c
    functionUses: 0
    functionsReached:
    - PR_SetError
    - nss_MD_win32_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_win32_map_listen_error(PRInt32 err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_win32_map_default_error
      Src: /src/nss/lib/ssl/win32err.c:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 268
    functionName: nss_MD_win32_map_shutdown_error
    functionSourceFile: /src/nss/lib/ssl/win32err.c
    functionUses: 0
    functionsReached:
    - nss_MD_win32_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_win32_map_shutdown_error(PRInt32 err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_win32_map_default_error
      Src: /src/nss/lib/ssl/win32err.c:279,1
    - Dst: PR_SetError
      Src: /src/nss/lib/ssl/win32err.c:282,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - err
    argTypes:
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 283
    functionName: nss_MD_win32_map_getsockname_error
    functionSourceFile: /src/nss/lib/ssl/win32err.c
    functionUses: 0
    functionsReached:
    - PR_SetError
    - nss_MD_win32_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_win32_map_getsockname_error(PRInt32 err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_win32_map_default_error
      Src: /src/nss/lib/ssl/win32err.c:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 289
    functionName: nss_MD_win32_map_getpeername_error
    functionSourceFile: /src/nss/lib/ssl/win32err.c
    functionUses: 0
    functionsReached:
    - nss_MD_win32_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_win32_map_getpeername_error(PRInt32 err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_win32_map_default_error
      Src: /src/nss/lib/ssl/win32err.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 295
    functionName: nss_MD_win32_map_getsockopt_error
    functionSourceFile: /src/nss/lib/ssl/win32err.c
    functionUses: 0
    functionsReached:
    - nss_MD_win32_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_win32_map_getsockopt_error(PRInt32 err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_win32_map_default_error
      Src: /src/nss/lib/ssl/win32err.c:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 301
    functionName: nss_MD_win32_map_setsockopt_error
    functionSourceFile: /src/nss/lib/ssl/win32err.c
    functionUses: 0
    functionsReached:
    - nss_MD_win32_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_win32_map_setsockopt_error(PRInt32 err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_win32_map_default_error
      Src: /src/nss/lib/ssl/win32err.c:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 307
    functionName: nss_MD_win32_map_open_error
    functionSourceFile: /src/nss/lib/ssl/win32err.c
    functionUses: 0
    functionsReached:
    - nss_MD_win32_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_win32_map_open_error(PRInt32 err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_win32_map_default_error
      Src: /src/nss/lib/ssl/win32err.c:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 313
    functionName: nss_MD_win32_map_gethostname_error
    functionSourceFile: /src/nss/lib/ssl/win32err.c
    functionUses: 0
    functionsReached:
    - nss_MD_win32_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_win32_map_gethostname_error(PRInt32 err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_win32_map_default_error
      Src: /src/nss/lib/ssl/win32err.c:327,1
    - Dst: PR_SetError
      Src: /src/nss/lib/ssl/win32err.c:330,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - err
    argTypes:
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 331
    functionName: nss_MD_win32_map_select_error
    functionSourceFile: /src/nss/lib/ssl/win32err.c
    functionUses: 0
    functionsReached:
    - PR_SetError
    - nss_MD_win32_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_win32_map_select_error(PRInt32 err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_MD_win32_map_default_error
      Src: /src/nss/lib/ssl/win32err.c:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 337
    functionName: nss_MD_win32_map_lockf_error
    functionSourceFile: /src/nss/lib/ssl/win32err.c
    functionUses: 0
    functionsReached:
    - nss_MD_win32_map_default_error
    linkageType: ''
    returnType: void
    signature: void nss_MD_win32_map_lockf_error(PRInt32 err)
  - BBCount: 68
    BranchProfiles: []
    Callsites:
    - Dst: PR_SetError
      Src: /src/nss/lib/ssl/win32err.c:549,1
    CyclomaticComplexity: 68
    EdgeCount: 68
    ICount: 205
    argCount: 1
    argNames:
    - err
    argTypes:
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 550
    functionName: nss_MD_win32_map_default_error
    functionSourceFile: /src/nss/lib/ssl/win32err.c
    functionUses: 35
    functionsReached:
    - PR_SetError
    linkageType: ''
    returnType: void
    signature: void nss_MD_win32_map_default_error(PRInt32 err)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRACE
      Src: /src/nss/lib/ssl/ssltrace.c:46,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssltrace.c:46,1
    - Dst: SSL_TRACE
      Src: /src/nss/lib/ssl/ssltrace.c:49,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssltrace.c:49,1
    - Dst: SSL_TRACE
      Src: /src/nss/lib/ssl/ssltrace.c:53,1
    - Dst: memset
      Src: /src/nss/lib/ssl/ssltrace.c:57,1
    - Dst: SSL_TRACE
      Src: /src/nss/lib/ssl/ssltrace.c:68,1
    - Dst: memset
      Src: /src/nss/lib/ssl/ssltrace.c:69,1
    - Dst: SSL_TRACE
      Src: /src/nss/lib/ssl/ssltrace.c:76,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 4
    argNames:
    - ss
    - msg
    - vp
    - len
    argTypes:
    - sslSocket*
    - char*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 78
    functionName: ssl_PrintBuf
    functionSourceFile: /src/nss/lib/ssl/ssltrace.c
    functionUses: 0
    functionsReached:
    - memset
    - SSL_GETPID
    - SSL_TRACE
    linkageType: ''
    returnType: void
    signature: void ssl_PrintBuf(const sslSocket *ss, const char *msg, const void
      *vp, int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/nss/lib/ssl/ssltrace.c:87,1
    - Dst: PR_vsnprintf
      Src: /src/nss/lib/ssl/ssltrace.c:88,1
    - Dst: va_end
      Src: /src/nss/lib/ssl/ssltrace.c:89,1
    - Dst: fputs
      Src: /src/nss/lib/ssl/ssltrace.c:91,1
    - Dst: fputs
      Src: /src/nss/lib/ssl/ssltrace.c:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 94
    functionName: ssl_Trace
    functionSourceFile: /src/nss/lib/ssl/ssltrace.c
    functionUses: 0
    functionsReached:
    - va_end
    - fputs
    - va_start
    - PR_vsnprintf
    linkageType: ''
    returnType: void
    signature: void ssl_Trace(const char *format, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PK11_ExtractKeyValue
      Src: /src/nss/lib/ssl/ssltrace.c:102,1
    - Dst: ssl_Trace
      Src: /src/nss/lib/ssl/ssltrace.c:104,1
    - Dst: PK11_GetKeyData
      Src: /src/nss/lib/ssl/ssltrace.c:107,1
    - Dst: ssl_Trace
      Src: /src/nss/lib/ssl/ssltrace.c:109,1
    - Dst: ssl_PrintBuf
      Src: /src/nss/lib/ssl/ssltrace.c:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - ss
    - msg
    - key
    argTypes:
    - sslSocket*
    - char*
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 113
    functionName: ssl_PrintKey
    functionSourceFile: /src/nss/lib/ssl/ssltrace.c
    functionUses: 0
    functionsReached:
    - ssl_PrintBuf
    - PK11_ExtractKeyValue
    - ssl_Trace
    - PK11_GetKeyData
    linkageType: ''
    returnType: void
    signature: void ssl_PrintKey(const sslSocket *ss, const char *msg, PK11SymKey
      *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:221,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/ssl/ssl3con.c:221,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/ssl/ssl3con.c:223,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 226
    functionName: ssl3_CheckCipherSuiteOrderConsistency
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PR_ARRAY_SIZE
    linkageType: ''
    returnType: void
    signature: void ssl3_CheckCipherSuiteOrderConsistency()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - calg
    argTypes:
    - SSLCipherAlgorithm
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 440
    functionName: ssl3_Alg2Mech
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 2
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: CK_MECHANISM_TYPE
    signature: CK_MECHANISM_TYPE ssl3_Alg2Mech(SSLCipherAlgorithm calg)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/nss/lib/ssl/ssl3con.c:506,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 61
    argCount: 1
    argNames:
    - msgType
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 510
    functionName: ssl3_DecodeHandshakeType
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: char
    signature: 'char *

      ssl3_DecodeHandshakeType(int msgType)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/nss/lib/ssl/ssl3con.c:535,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - msgType
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 539
    functionName: ssl3_DecodeContentType
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: char
    signature: 'char *

      ssl3_DecodeContentType(int msgType)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PZ_InMonitor
      Src: /src/nss/lib/ssl/ssl3con.c:547,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 543
    functionDepth: 1
    functionLinenumber: 543
    functionLinenumberEnd: 551
    functionName: ssl_HaveRecvBufLock
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 25
    functionsReached:
    - PZ_InMonitor
    linkageType: ''
    returnType: PRBool
    signature: PRBool ssl_HaveRecvBufLock(sslSocket *ss)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PZ_InMonitor
      Src: /src/nss/lib/ssl/ssl3con.c:557,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 553
    functionDepth: 1
    functionLinenumber: 553
    functionLinenumberEnd: 561
    functionName: ssl_HaveXmitBufLock
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 19
    functionsReached:
    - PZ_InMonitor
    linkageType: ''
    returnType: PRBool
    signature: PRBool ssl_HaveXmitBufLock(sslSocket *ss)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PZ_InMonitor
      Src: /src/nss/lib/ssl/ssl3con.c:567,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 563
    functionDepth: 1
    functionLinenumber: 563
    functionLinenumberEnd: 571
    functionName: ssl_Have1stHandshakeLock
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 6
    functionsReached:
    - PZ_InMonitor
    linkageType: ''
    returnType: PRBool
    signature: PRBool ssl_Have1stHandshakeLock(sslSocket *ss)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PZ_InMonitor
      Src: /src/nss/lib/ssl/ssl3con.c:577,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 573
    functionDepth: 1
    functionLinenumber: 573
    functionLinenumberEnd: 581
    functionName: ssl_HaveSSL3HandshakeLock
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 39
    functionsReached:
    - PZ_InMonitor
    linkageType: ''
    returnType: PRBool
    signature: PRBool ssl_HaveSSL3HandshakeLock(sslSocket *ss)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSSRWLock_HaveWriteLock
      Src: /src/nss/lib/ssl/ssl3con.c:587,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 591
    functionName: ssl_HaveSpecWriteLock
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - NSSRWLock_HaveWriteLock
    linkageType: ''
    returnType: PRBool
    signature: PRBool ssl_HaveSpecWriteLock(sslSocket *ss)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:598,1
    - Dst: PZ_InMonitor
      Src: /src/nss/lib/ssl/ssl3con.c:598,1
    - Dst: ssl_HaveRecvBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:599,1
    - Dst: PZ_EnterMonitor
      Src: /src/nss/lib/ssl/ssl3con.c:600,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 594
    functionDepth: 2
    functionLinenumber: 594
    functionLinenumberEnd: 602
    functionName: ssl_Get1stHandshakeLock
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 28
    functionsReached:
    - PZ_InMonitor
    - PORT_Assert
    - ssl_HaveRecvBufLock
    - PZ_EnterMonitor
    linkageType: ''
    returnType: void
    signature: void ssl_Get1stHandshakeLock(sslSocket *ss)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PZ_ExitMonitor
      Src: /src/nss/lib/ssl/ssl3con.c:608,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 604
    functionDepth: 1
    functionLinenumber: 604
    functionLinenumberEnd: 610
    functionName: ssl_Release1stHandshakeLock
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 27
    functionsReached:
    - PZ_ExitMonitor
    linkageType: ''
    returnType: void
    signature: void ssl_Release1stHandshakeLock(sslSocket *ss)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:616,1
    - Dst: ssl_HaveXmitBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:616,1
    - Dst: PZ_EnterMonitor
      Src: /src/nss/lib/ssl/ssl3con.c:617,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 612
    functionDepth: 2
    functionLinenumber: 612
    functionLinenumberEnd: 619
    functionName: ssl_GetSSL3HandshakeLock
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 34
    functionsReached:
    - PORT_Assert
    - ssl_HaveXmitBufLock
    - PZ_EnterMonitor
    linkageType: ''
    returnType: void
    signature: void ssl_GetSSL3HandshakeLock(sslSocket *ss)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PZ_ExitMonitor
      Src: /src/nss/lib/ssl/ssl3con.c:625,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 621
    functionDepth: 1
    functionLinenumber: 621
    functionLinenumberEnd: 627
    functionName: ssl_ReleaseSSL3HandshakeLock
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 33
    functionsReached:
    - PZ_ExitMonitor
    linkageType: ''
    returnType: void
    signature: void ssl_ReleaseSSL3HandshakeLock(sslSocket *ss)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSSRWLock_LockRead
      Src: /src/nss/lib/ssl/ssl3con.c:633,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 629
    functionDepth: 0
    functionLinenumber: 629
    functionLinenumberEnd: 635
    functionName: ssl_GetSpecReadLock
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 8
    functionsReached:
    - NSSRWLock_LockRead
    linkageType: ''
    returnType: void
    signature: void ssl_GetSpecReadLock(sslSocket *ss)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSSRWLock_UnlockRead
      Src: /src/nss/lib/ssl/ssl3con.c:641,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 637
    functionDepth: 0
    functionLinenumber: 637
    functionLinenumberEnd: 643
    functionName: ssl_ReleaseSpecReadLock
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 8
    functionsReached:
    - NSSRWLock_UnlockRead
    linkageType: ''
    returnType: void
    signature: void ssl_ReleaseSpecReadLock(sslSocket *ss)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSSRWLock_LockWrite
      Src: /src/nss/lib/ssl/ssl3con.c:651,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 653
    functionName: ssl_GetSpecWriteLock
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 5
    functionsReached:
    - NSSRWLock_LockWrite
    linkageType: ''
    returnType: void
    signature: void ssl_GetSpecWriteLock(sslSocket *ss)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSSRWLock_UnlockWrite
      Src: /src/nss/lib/ssl/ssl3con.c:659,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 661
    functionName: ssl_ReleaseSpecWriteLock
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 5
    functionsReached:
    - NSSRWLock_UnlockWrite
    linkageType: ''
    returnType: void
    signature: void ssl_ReleaseSpecWriteLock(sslSocket *ss)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:668,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:668,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:669,1
    - Dst: ssl_HaveXmitBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:669,1
    - Dst: PZ_EnterMonitor
      Src: /src/nss/lib/ssl/ssl3con.c:670,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 664
    functionDepth: 2
    functionLinenumber: 664
    functionLinenumberEnd: 672
    functionName: ssl_GetRecvBufLock
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 8
    functionsReached:
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    - ssl_HaveXmitBufLock
    - PZ_EnterMonitor
    linkageType: ''
    returnType: void
    signature: void ssl_GetRecvBufLock(sslSocket *ss)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PZ_ExitMonitor
      Src: /src/nss/lib/ssl/ssl3con.c:678,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 674
    functionDepth: 1
    functionLinenumber: 674
    functionLinenumberEnd: 680
    functionName: ssl_ReleaseRecvBufLock
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 8
    functionsReached:
    - PZ_ExitMonitor
    linkageType: ''
    returnType: void
    signature: void ssl_ReleaseRecvBufLock(sslSocket *ss)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PZ_EnterMonitor
      Src: /src/nss/lib/ssl/ssl3con.c:687,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 683
    functionDepth: 1
    functionLinenumber: 683
    functionLinenumberEnd: 689
    functionName: ssl_GetXmitBufLock
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 21
    functionsReached:
    - PZ_EnterMonitor
    linkageType: ''
    returnType: void
    signature: void ssl_GetXmitBufLock(sslSocket *ss)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PZ_ExitMonitor
      Src: /src/nss/lib/ssl/ssl3con.c:695,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 691
    functionDepth: 1
    functionLinenumber: 691
    functionLinenumberEnd: 697
    functionName: ssl_ReleaseXmitBufLock
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 21
    functionsReached:
    - PZ_ExitMonitor
    linkageType: ''
    returnType: void
    signature: void ssl_ReleaseXmitBufLock(sslSocket *ss)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 699
    functionDepth: 0
    functionLinenumber: 699
    functionLinenumberEnd: 703
    functionName: SSL_GetStatistics
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: SSL3Statistics
    signature: 'SSL3Statistics *

      SSL_GetStatistics(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_ATOMIC_INCREMENT
      Src: /src/nss/lib/ssl/ssl3con.c:719,1
    - Dst: PR_ATOMIC_INCREMENT
      Src: /src/nss/lib/ssl/ssl3con.c:722,1
    - Dst: PR_ATOMIC_INCREMENT
      Src: /src/nss/lib/ssl/ssl3con.c:723,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - x
    argTypes:
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 715
    functionDepth: 1
    functionLinenumber: 715
    functionLinenumberEnd: 725
    functionName: SSL_AtomicIncrementLong
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 4
    functionsReached:
    - PR_ATOMIC_INCREMENT
    linkageType: ''
    returnType: void
    signature: void SSL_AtomicIncrementLong(long *x)
  - BBCount: 49
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 55
    argCount: 2
    argNames:
    - cipherSuite
    - vrange
    argTypes:
    - ssl3CipherSuite
    - SSLVersionRange*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 727
    functionDepth: 0
    functionLinenumber: 727
    functionLinenumberEnd: 792
    functionName: ssl3_CipherSuiteAllowedForVersionRange
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: "PRBool ssl3_CipherSuiteAllowedForVersionRange(ssl3CipherSuite cipherSuite,\n
      \                                      const SSLVersionRange *vrange)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:807,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:808,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - suite
    argTypes:
    - ssl3CipherSuite
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 796
    functionDepth: 0
    functionLinenumber: 796
    functionLinenumberEnd: 810
    functionName: ssl_LookupCipherSuiteDef
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 3
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    linkageType: ''
    returnType: ssl3CipherSuiteDef
    signature: 'ssl3CipherSuiteDef *

      ssl_LookupCipherSuiteDef(ssl3CipherSuite suite)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:825,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - suite
    - suites
    argTypes:
    - ssl3CipherSuite
    - ssl3CipherSuiteCfg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 814
    functionDepth: 0
    functionLinenumber: 814
    functionLinenumberEnd: 827
    functionName: ssl_LookupCipherSuiteCfgMutable
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: ssl3CipherSuiteCfg
    signature: "ssl3CipherSuiteCfg *\nssl_LookupCipherSuiteCfgMutable(ssl3CipherSuite
      suite,\n                                ssl3CipherSuiteCfg *suites)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_LookupCipherSuiteCfgMutable
      Src: /src/nss/lib/ssl/ssl3con.c:832,1
    - Dst: CONST_CAST
      Src: /src/nss/lib/ssl/ssl3con.c:833,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - suite
    - suites
    argTypes:
    - ssl3CipherSuite
    - ssl3CipherSuiteCfg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 829
    functionDepth: 1
    functionLinenumber: 829
    functionLinenumberEnd: 834
    functionName: ssl_LookupCipherSuiteCfg
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - CONST_CAST
    - ssl_LookupCipherSuiteCfgMutable
    linkageType: ''
    returnType: ssl3CipherSuiteCfg
    signature: 'ssl3CipherSuiteCfg *

      ssl_LookupCipherSuiteCfg(ssl3CipherSuite suite, const ssl3CipherSuiteCfg *suites)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - ss
    - keaType
    argTypes:
    - sslSocket*
    - SSLKEAType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 836
    functionDepth: 0
    functionLinenumber: 836
    functionLinenumberEnd: 847
    functionName: ssl_NamedGroupTypeEnabled
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool ssl_NamedGroupTypeEnabled(const sslSocket *ss, SSLKEAType keaType)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: ssl_NamedGroupTypeEnabled
      Src: /src/nss/lib/ssl/ssl3con.c:891,1
    - Dst: ssl_NamedGroupTypeEnabled
      Src: /src/nss/lib/ssl/ssl3con.c:896,1
    - Dst: ssl_NamedGroupTypeEnabled
      Src: /src/nss/lib/ssl/ssl3con.c:903,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:910,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 2
    argNames:
    - ss
    - keaType
    argTypes:
    - sslSocket*
    - SSLKEAType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 849
    functionDepth: 1
    functionLinenumber: 849
    functionLinenumberEnd: 913
    functionName: ssl_KEAEnabled
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - ssl_NamedGroupTypeEnabled
    linkageType: ''
    returnType: PRBool
    signature: PRBool ssl_KEAEnabled(const sslSocket *ss, SSLKEAType keaType)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/ssl3con.c:922,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/ssl3con.c:924,1
    - Dst: SSL_CERT_IS
      Src: /src/nss/lib/ssl/ssl3con.c:929,1
    - Dst: ssl_NamedGroupEnabled
      Src: /src/nss/lib/ssl/ssl3con.c:945,1
    - Dst: ssl_HasCert
      Src: /src/nss/lib/ssl/ssl3con.c:951,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 17
    argCount: 3
    argNames:
    - ss
    - maxVersion
    - authType
    argTypes:
    - sslSocket*
    - PRUint16
    - SSLAuthType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 915
    functionDepth: 1
    functionLinenumber: 915
    functionLinenumberEnd: 954
    functionName: ssl_HasCert
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - SSL_CERT_IS
    - ssl_HasCert
    - PR_NEXT_LINK
    - ssl_NamedGroupEnabled
    linkageType: ''
    returnType: PRBool
    signature: PRBool ssl_HasCert(const sslSocket *ss, PRUint16 maxVersion, SSLAuthType
      authType)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_HashTypeToOID
      Src: /src/nss/lib/ssl/ssl3con.c:964,1
    - Dst: ssl_SignatureSchemeToHashType
      Src: /src/nss/lib/ssl/ssl3con.c:964,1
    - Dst: NSS_GetAlgorithmPolicy
      Src: /src/nss/lib/ssl/ssl3con.c:968,1
    - Dst: ssl_IsRsaPssSignatureScheme
      Src: /src/nss/lib/ssl/ssl3con.c:977,1
    - Dst: ssl3_AuthTypeToOID
      Src: /src/nss/lib/ssl/ssl3con.c:980,1
    - Dst: ssl_SignatureSchemeToAuthType
      Src: /src/nss/lib/ssl/ssl3con.c:980,1
    - Dst: NSS_GetAlgorithmPolicy
      Src: /src/nss/lib/ssl/ssl3con.c:983,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - scheme
    - require
    argTypes:
    - SSLSignatureScheme
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 959
    functionDepth: 1
    functionLinenumber: 959
    functionLinenumberEnd: 989
    functionName: ssl_SchemePolicyOK
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - NSS_GetAlgorithmPolicy
    - ssl3_HashTypeToOID
    - ssl3_AuthTypeToOID
    - ssl_IsRsaPssSignatureScheme
    - ssl_SignatureSchemeToAuthType
    - ssl_SignatureSchemeToHashType
    linkageType: ''
    returnType: PRBool
    signature: PRBool ssl_SchemePolicyOK(SSLSignatureScheme scheme, PRUint32 require)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ssl_IsRsaPssSignatureScheme
      Src: /src/nss/lib/ssl/ssl3con.c:999,1
    - Dst: PK11_TokenExists
      Src: /src/nss/lib/ssl/ssl3con.c:1000,1
    - Dst: ssl_IsRsaPkcs1SignatureScheme
      Src: /src/nss/lib/ssl/ssl3con.c:1003,1
    - Dst: ssl_IsDsaSignatureScheme
      Src: /src/nss/lib/ssl/ssl3con.c:1011,1
    - Dst: ssl_SchemePolicyOK
      Src: /src/nss/lib/ssl/ssl3con.c:1018,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 3
    argNames:
    - minVersion
    - scheme
    - forCert
    argTypes:
    - PRUint16
    - SSLSignatureScheme
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 993
    functionDepth: 7
    functionLinenumber: 993
    functionLinenumberEnd: 1019
    functionName: ssl_SignatureSchemeAccepted
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - ssl_IsRsaPkcs1SignatureScheme
    - PK11_TokenExists
    - ssl_SchemePolicyOK
    - ssl_IsDsaSignatureScheme
    - ssl_IsRsaPssSignatureScheme
    linkageType: ''
    returnType: PRBool
    signature: "PRBool ssl_SignatureSchemeAccepted(PRUint16 minVersion,\n                            SSLSignatureScheme
      scheme,\n                            PRBool forCert)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ssl_SignatureSchemeToAuthType
      Src: /src/nss/lib/ssl/ssl3con.c:1037,1
    - Dst: ssl_HasCert
      Src: /src/nss/lib/ssl/ssl3con.c:1038,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:1044,1
    - Dst: ssl_SignatureSchemeAccepted
      Src: /src/nss/lib/ssl/ssl3con.c:1051,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:1057,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 1021
    functionDepth: 8
    functionLinenumber: 1021
    functionLinenumberEnd: 1059
    functionName: ssl_CheckSignatureSchemes
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - ssl_SignatureSchemeToAuthType
    - PORT_SetError
    - ssl_HasCert
    - ssl_SignatureSchemeAccepted
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl_CheckSignatureSchemes(sslSocket *ss)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:1066,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:1067,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:1068,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:1069,1
    - Dst: ssl_SignatureSchemeToAuthType
      Src: /src/nss/lib/ssl/ssl3con.c:1078,1
    - Dst: ssl_SignatureSchemeAccepted
      Src: /src/nss/lib/ssl/ssl3con.c:1082,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 2
    argNames:
    - ss
    - authType
    argTypes:
    - sslSocket*
    - SSLAuthType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1087
      start: 1063
    functionDepth: 8
    functionLinenumber: 1063
    functionLinenumberEnd: 1087
    functionName: ssl_HasSignatureScheme
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - ssl_SignatureSchemeToAuthType
    - PORT_Assert
    - ssl_SignatureSchemeAccepted
    linkageType: ''
    returnType: PRBool
    signature: PRBool ssl_HasSignatureScheme(const sslSocket *ss, SSLAuthType authType)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:1107,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:1109,1
    - Dst: SSL_ALL_VERSIONS_DISABLED
      Src: /src/nss/lib/ssl/ssl3con.c:1112,1
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/lib/ssl/ssl3con.c:1116,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:1119,1
    - Dst: ssl_CheckSignatureSchemes
      Src: /src/nss/lib/ssl/ssl3con.c:1122,1
    - Dst: ssl_FilterSupportedGroups
      Src: /src/nss/lib/ssl/ssl3con.c:1126,1
    - Dst: ssl_LookupCipherSuiteDef
      Src: /src/nss/lib/ssl/ssl3con.c:1134,1
    - Dst: ssl_GetBulkCipherDef
      Src: /src/nss/lib/ssl/ssl3con.c:1139,1
    - Dst: ssl3_Alg2Mech
      Src: /src/nss/lib/ssl/ssl3con.c:1140,1
    - Dst: ssl_HasCert
      Src: /src/nss/lib/ssl/ssl3con.c:1148,1
    - Dst: ssl_HasSignatureScheme
      Src: /src/nss/lib/ssl/ssl3con.c:1149,1
    - Dst: PK11_TokenExists
      Src: /src/nss/lib/ssl/ssl3con.c:1151,1
    - Dst: PK11_TokenExists
      Src: /src/nss/lib/ssl/ssl3con.c:1159,1
    - Dst: PK11_TokenExists
      Src: /src/nss/lib/ssl/ssl3con.c:1164,1
    - Dst: PORT_AssertArg
      Src: /src/nss/lib/ssl/ssl3con.c:1173,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:1175,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 55
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1178
      start: 1094
    functionDepth: 9
    functionLinenumber: 1094
    functionLinenumberEnd: 1178
    functionName: ssl3_config_match_init
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - ssl_GetBulkCipherDef
    - ssl_FilterSupportedGroups
    - PK11_TokenExists
    - ssl_LookupCipherSuiteDef
    - PORT_SetError
    - SSL_ALL_VERSIONS_DISABLED
    - ssl_CheckSignatureSchemes
    - ssl_HasSignatureScheme
    - ssl_HasCert
    - PORT_AssertArg
    - PR_CLIST_IS_EMPTY
    - ssl3_Alg2Mech
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int ssl3_config_match_init(sslSocket *ss)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:1191,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:1195,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:1206,1
    - Dst: ssl_LookupCipherSuiteDef
      Src: /src/nss/lib/ssl/ssl3con.c:1207,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:1208,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:1210,1
    - Dst: ssl_KEAEnabled
      Src: /src/nss/lib/ssl/ssl3con.c:1211,1
    - Dst: ssl_HasCert
      Src: /src/nss/lib/ssl/ssl3con.c:1215,1
    - Dst: ssl3_CipherSuiteAllowedForVersionRange
      Src: /src/nss/lib/ssl/ssl3con.c:1229,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 4
    argNames:
    - suite
    - policy
    - vrange
    - ss
    argTypes:
    - ssl3CipherSuiteCfg*
    - PRUint8
    - SSLVersionRange*
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1230
      start: 1183
    functionDepth: 2
    functionLinenumber: 1183
    functionLinenumberEnd: 1230
    functionName: ssl3_config_match
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - ssl_LookupCipherSuiteDef
    - ssl3_CipherSuiteAllowedForVersionRange
    - ssl_HasCert
    - ssl_KEAEnabled
    linkageType: ''
    returnType: PRBool
    signature: "PRBool ssl3_config_match(const ssl3CipherSuiteCfg *suite, PRUint8
      policy,\n                  const SSLVersionRange *vrange, const sslSocket *ss)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tls13_GetHashForCipherSuite
      Src: /src/nss/lib/ssl/ssl3con.c:1239,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/ssl/ssl3con.c:1240,1
    - Dst: ssl_LookupCipherSuiteCfg
      Src: /src/nss/lib/ssl/ssl3con.c:1243,1
    - Dst: ssl3_config_match
      Src: /src/nss/lib/ssl/ssl3con.c:1245,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - ss
    - suite
    argTypes:
    - sslSocket*
    - ssl3CipherSuite
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1251
      start: 1234
    functionDepth: 3
    functionLinenumber: 1234
    functionLinenumberEnd: 1251
    functionName: tls13_ResumptionCompatible
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - ssl_LookupCipherSuiteCfg
    - ssl3_config_match
    - tls13_GetHashForCipherSuite
    - PR_ARRAY_SIZE
    linkageType: ''
    returnType: PRBool
    signature: PRBool tls13_ResumptionCompatible(sslSocket *ss, ssl3CipherSuite suite)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:1262,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/ssl3con.c:1267,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 6
    argNames:
    - ctx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - void*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1270
      start: 1256
    functionDepth: 0
    functionLinenumber: 1256
    functionLinenumberEnd: 1270
    functionName: Null_Cipher
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PORT_Memcpy
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus Null_Cipher(void *ctx, unsigned char *output, unsigned int
      *outputLen, unsigned int maxOutputLen,\n            const unsigned char *input,
      unsigned int inputLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:1280,1
    - Dst: PK11_CipherOp
      Src: /src/nss/lib/ssl/ssl3con.c:1282,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:1283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - ctx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - void*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1286
      start: 1275
    functionDepth: 10
    functionLinenumber: 1275
    functionLinenumberEnd: 1286
    functionName: SSLCipher_PK11_CipherOp
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PK11_CipherOp
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSLCipher_PK11_CipherOp(void *ctx, unsigned char *output,
      unsigned int *outputLen, unsigned int maxOutputLen,\n                        const
      unsigned char *input, unsigned int inputLen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tls13_SetSpecRecordVersion
      Src: /src/nss/lib/ssl/ssl3con.c:1297,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:1298,1
    - Dst: dtls_TLSVersionToDTLSVersion
      Src: /src/nss/lib/ssl/ssl3con.c:1299,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ss
    - spec
    argTypes:
    - sslSocket*
    - ssl3CipherSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1303
      start: 1292
    functionDepth: 2
    functionLinenumber: 1292
    functionLinenumberEnd: 1303
    functionName: ssl_SetSpecVersions
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - tls13_SetSpecRecordVersion
    - dtls_TLSVersionToDTLSVersion
    - IS_DTLS
    linkageType: ''
    returnType: void
    signature: void ssl_SetSpecVersions(sslSocket *ss, ssl3CipherSpec *spec)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:1320,1
    - Dst: SSL_ALL_VERSIONS_DISABLED
      Src: /src/nss/lib/ssl/ssl3con.c:1324,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:1325,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:1331,1
    - Dst: PR_MIN
      Src: /src/nss/lib/ssl/ssl3con.c:1335,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:1336,1
    - Dst: ssl3_VersionIsSupported
      Src: /src/nss/lib/ssl/ssl3con.c:1336,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:1338,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - ss
    - peerVersion
    - allowLargerPeerVersion
    argTypes:
    - sslSocket*
    - SSL3ProtocolVersion
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1344
      start: 1312
    functionDepth: 4
    functionLinenumber: 1312
    functionLinenumberEnd: 1344
    functionName: ssl3_NegotiateVersion
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PR_MIN
    - PORT_SetError
    - SSL_ALL_VERSIONS_DISABLED
    - ssl3_VersionIsSupported
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_NegotiateVersion(sslSocket *ss, SSL3ProtocolVersion
      peerVersion,\n                      PRBool allowLargerPeerVersion)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_ConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/ssl3con.c:1356,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:1362,1
    - Dst: dtls_DTLSVersionToTLSVersion
      Src: /src/nss/lib/ssl/ssl3con.c:1363,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:1366,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:1373,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - ss
    - b
    - len
    - version
    argTypes:
    - sslSocket*
    - PRUint8**
    - unsigned int*
    - SSL3ProtocolVersion*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1378
      start: 1348
    functionDepth: 1
    functionLinenumber: 1348
    functionLinenumberEnd: 1378
    functionName: ssl_ClientReadVersion
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - IS_DTLS
    - dtls_DTLSVersionToTLSVersion
    - ssl3_ConsumeHandshakeNumber
    - SSL3_SendAlert
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_ClientReadVersion(sslSocket *ss, PRUint8 **b, unsigned
      int *len,\n                      SSL3ProtocolVersion *version)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GenerateRandom
      Src: /src/nss/lib/ssl/ssl3con.c:1385,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:1387,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - random
    argTypes:
    - SSL3Random
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1390
      start: 1380
    functionDepth: 9
    functionLinenumber: 1380
    functionLinenumberEnd: 1390
    functionName: ssl3_GetNewRandom
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - ssl_MapLowLevelError
    - PK11_GenerateRandom
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_GetNewRandom(SSL3Random random)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: ssl_IsRsaPssSignatureScheme
      Src: /src/nss/lib/ssl/ssl3con.c:1398,1
    - Dst: SECKEY_GetPrivateKeyType
      Src: /src/nss/lib/ssl/ssl3con.c:1403,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:1433,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/ssl3con.c:1436,1
    - Dst: PK11_MapSignKeyType
      Src: /src/nss/lib/ssl/ssl3con.c:1439,1
    - Dst: PK11_SignatureLen
      Src: /src/nss/lib/ssl/ssl3con.c:1440,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:1450,1
    - Dst: NSS_OptionGet
      Src: /src/nss/lib/ssl/ssl3con.c:1455,1
    - Dst: SECKEY_EnforceKeySize
      Src: /src/nss/lib/ssl/ssl3con.c:1458,1
    - Dst: SECKEY_PrivateKeyStrengthInBits
      Src: /src/nss/lib/ssl/ssl3con.c:1458,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/ssl/ssl3con.c:1466,1
    - Dst: ssl3_GetHashMechanismByHashType
      Src: /src/nss/lib/ssl/ssl3con.c:1471,1
    - Dst: ssl3_GetMgfMechanismByHashType
      Src: /src/nss/lib/ssl/ssl3con.c:1472,1
    - Dst: PK11_SignWithMechanism
      Src: /src/nss/lib/ssl/ssl3con.c:1478,1
    - Dst: ssl3_HashTypeToOID
      Src: /src/nss/lib/ssl/ssl3con.c:1480,1
    - Dst: SGN_Digest
      Src: /src/nss/lib/ssl/ssl3con.c:1481,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:1484,1
    - Dst: DSAU_EncodeDerSigWithLen
      Src: /src/nss/lib/ssl/ssl3con.c:1489,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/ssl3con.c:1491,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/ssl3con.c:1494,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/ssl3con.c:1498,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/ssl3con.c:1501,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 84
    argCount: 5
    argNames:
    - hash
    - key
    - scheme
    - isTls
    - buf
    argTypes:
    - SSL3Hashes*
    - SECKEYPrivateKey*
    - SSLSignatureScheme
    - PRBool
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1505
      start: 1392
    functionDepth: 7
    functionLinenumber: 1392
    functionLinenumberEnd: 1505
    functionName: ssl3_SignHashesWithPrivKey
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - SECKEY_EnforceKeySize
    - ssl3_GetHashMechanismByHashType
    - NSS_OptionGet
    - PORT_Free
    - ssl3_HashTypeToOID
    - PRINT_BUF
    - PORT_SetError
    - ssl_MapLowLevelError
    - SECKEY_GetPrivateKeyType
    - PK11_MapSignKeyType
    - PK11_SignatureLen
    - PK11_SignWithMechanism
    - SECKEY_PrivateKeyStrengthInBits
    - ssl_IsRsaPssSignatureScheme
    - SGN_Digest
    - DSAU_EncodeDerSigWithLen
    - ssl3_GetMgfMechanismByHashType
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_SignHashesWithPrivKey(SSL3Hashes *hash, SECKEYPrivateKey
      *key,\n                           SSLSignatureScheme scheme, PRBool isTls, SECItem
      *buf)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_SignHashesWithPrivKey
      Src: /src/nss/lib/ssl/ssl3con.c:1516,1
    - Dst: ssl_SignatureSchemeToAuthType
      Src: /src/nss/lib/ssl/ssl3con.c:1523,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - ss
    - hash
    - key
    - buf
    argTypes:
    - sslSocket*
    - SSL3Hashes*
    - SECKEYPrivateKey*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1527
      start: 1508
    functionDepth: 8
    functionLinenumber: 1508
    functionLinenumberEnd: 1527
    functionName: ssl3_SignHashes
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 2
    functionsReached:
    - ssl_SignatureSchemeToAuthType
    - ssl3_SignHashesWithPrivKey
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_SignHashes(sslSocket *ss, SSL3Hashes *hash, SECKEYPrivateKey
      *key,\n                SECItem *buf)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: ssl_IsRsaPssSignatureScheme
      Src: /src/nss/lib/ssl/ssl3con.c:1541,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/ssl3con.c:1543,1
    - Dst: ssl3_HashTypeToOID
      Src: /src/nss/lib/ssl/ssl3con.c:1545,1
    - Dst: SECKEY_GetPublicKeyType
      Src: /src/nss/lib/ssl/ssl3con.c:1546,1
    - Dst: SECKEY_SignatureLen
      Src: /src/nss/lib/ssl/ssl3con.c:1568,1
    - Dst: DSAU_DecodeDerSigToLen
      Src: /src/nss/lib/ssl/ssl3con.c:1569,1
    - Dst: SECKEY_SignatureLen
      Src: /src/nss/lib/ssl/ssl3con.c:1569,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:1571,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:1603,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/ssl3con.c:1607,1
    - Dst: SECKEY_GetPublicKeyType
      Src: /src/nss/lib/ssl/ssl3con.c:1612,1
    - Dst: PK11_MapSignKeyType
      Src: /src/nss/lib/ssl/ssl3con.c:1618,1
    - Dst: ssl3_GetHashMechanismByHashType
      Src: /src/nss/lib/ssl/ssl3con.c:1627,1
    - Dst: ssl3_GetMgfMechanismByHashType
      Src: /src/nss/lib/ssl/ssl3con.c:1628,1
    - Dst: PK11_VerifyWithMechanism
      Src: /src/nss/lib/ssl/ssl3con.c:1634,1
    - Dst: VFY_VerifyDigestDirect
      Src: /src/nss/lib/ssl/ssl3con.c:1636,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/ssl3con.c:1640,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:1643,1
    - Dst: ssl_SignatureSchemeToAuthType
      Src: /src/nss/lib/ssl/ssl3con.c:1647,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:1653,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 80
    argCount: 5
    argNames:
    - ss
    - key
    - scheme
    - hash
    - buf
    argTypes:
    - sslSocket*
    - SECKEYPublicKey*
    - SSLSignatureScheme
    - SSL3Hashes*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1656
      start: 1530
    functionDepth: 9
    functionLinenumber: 1530
    functionLinenumberEnd: 1656
    functionName: ssl_VerifySignedHashesWithPubKey
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - ssl3_GetHashMechanismByHashType
    - VFY_VerifyDigestDirect
    - PK11_VerifyWithMechanism
    - ssl3_HashTypeToOID
    - PRINT_BUF
    - PORT_SetError
    - ssl_MapLowLevelError
    - SECKEY_SignatureLen
    - PK11_MapSignKeyType
    - SECKEY_GetPublicKeyType
    - ssl_SignatureSchemeToAuthType
    - ssl_IsRsaPssSignatureScheme
    - ssl3_GetMgfMechanismByHashType
    - SECITEM_FreeItem
    - DSAU_DecodeDerSigToLen
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_VerifySignedHashesWithPubKey(sslSocket *ss, SECKEYPublicKey
      *key,\n                                 SSLSignatureScheme scheme,\n                                 SSL3Hashes
      *hash, SECItem *buf)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECKEY_ExtractPublicKey
      Src: /src/nss/lib/ssl/ssl3con.c:1664,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:1666,1
    - Dst: ssl_VerifySignedHashesWithPubKey
      Src: /src/nss/lib/ssl/ssl3con.c:1669,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/ssl/ssl3con.c:1671,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - ss
    - scheme
    - hash
    - buf
    argTypes:
    - sslSocket*
    - SSLSignatureScheme
    - SSL3Hashes*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1673
      start: 1659
    functionDepth: 10
    functionLinenumber: 1659
    functionLinenumberEnd: 1673
    functionName: ssl3_VerifySignedHashes
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - SECKEY_ExtractPublicKey
    - ssl_MapLowLevelError
    - SECKEY_DestroyPublicKey
    - ssl_VerifySignedHashesWithPubKey
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_VerifySignedHashes(sslSocket *ss, SSLSignatureScheme
      scheme, SSL3Hashes *hash,\n                        SECItem *buf)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: NSS_GetAlgorithmPolicy
      Src: /src/nss/lib/ssl/ssl3con.c:1691,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:1693,1
    - Dst: PK11_HashBuf
      Src: /src/nss/lib/ssl/ssl3con.c:1696,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:1698,1
    - Dst: PK11_HashBuf
      Src: /src/nss/lib/ssl/ssl3con.c:1701,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:1703,1
    - Dst: ssl3_HashTypeToOID
      Src: /src/nss/lib/ssl/ssl3con.c:1708,1
    - Dst: NSS_GetAlgorithmPolicy
      Src: /src/nss/lib/ssl/ssl3con.c:1709,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:1711,1
    - Dst: HASH_ResultLenByOidTag
      Src: /src/nss/lib/ssl/ssl3con.c:1714,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:1716,1
    - Dst: PK11_HashBuf
      Src: /src/nss/lib/ssl/ssl3con.c:1719,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:1721,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 4
    argNames:
    - hashAlg
    - hashBuf
    - bufLen
    - hashes
    argTypes:
    - SSLHashType
    - PRUint8*
    - unsigned int
    - SSL3Hashes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1727
      start: 1681
    functionDepth: 10
    functionLinenumber: 1681
    functionLinenumberEnd: 1727
    functionName: ssl3_ComputeCommonKeyHash
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - NSS_GetAlgorithmPolicy
    - HASH_ResultLenByOidTag
    - ssl3_HashTypeToOID
    - PK11_HashBuf
    - ssl_MapLowLevelError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_ComputeCommonKeyHash(SSLHashType hashAlg,\n                          PRUint8
      *hashBuf, unsigned int bufLen,\n                          SSL3Hashes *hashes)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:1740,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:1741,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:1742,1
    - Dst: sslBuffer_Append
      Src: /src/nss/lib/ssl/ssl3con.c:1744,1
    - Dst: sslBuffer_Append
      Src: /src/nss/lib/ssl/ssl3con.c:1748,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/ssl3con.c:1753,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/ssl3con.c:1758,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3con.c:1764,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:1769,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3con.c:1771,1
    - Dst: sslBuffer_Append
      Src: /src/nss/lib/ssl/ssl3con.c:1776,1
    - Dst: ssl3_ComputeCommonKeyHash
      Src: /src/nss/lib/ssl/ssl3con.c:1781,1
    - Dst: SSL_BUFFER_BASE
      Src: /src/nss/lib/ssl/ssl3con.c:1781,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/ssl3con.c:1782,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/ssl3con.c:1787,1
    - Dst: SSL_BUFFER_BASE
      Src: /src/nss/lib/ssl/ssl3con.c:1787,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/ssl3con.c:1788,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/ssl3con.c:1790,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/ssl3con.c:1792,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/ssl3con.c:1795,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/ssl3con.c:1799,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/ssl3con.c:1803,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 61
    argCount: 7
    argNames:
    - ss
    - hashAlg
    - hashes
    - dh_p
    - dh_g
    - dh_Ys
    - padY
    argTypes:
    - sslSocket*
    - SSLHashType
    - SSL3Hashes*
    - SECItem
    - SECItem
    - SECItem
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1805
      start: 1731
    functionDepth: 11
    functionLinenumber: 1731
    functionLinenumberEnd: 1805
    functionName: ssl3_ComputeDHKeyHash
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SSL_BUFFER_LEN
    - SSL_BUFFER_BASE
    - sslBuffer_AppendVariable
    - PRINT_BUF
    - sslBuffer_AppendNumber
    - ssl3_ComputeCommonKeyHash
    - sslBuffer_Clear
    - sslBuffer_Append
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_ComputeDHKeyHash(sslSocket *ss, SSLHashType hashAlg,
      SSL3Hashes *hashes,\n                      SECItem dh_p, SECItem dh_g, SECItem
      dh_Ys, PRBool padY)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:1817,1
    - Dst: ssl_CreateCipherSpec
      Src: /src/nss/lib/ssl/ssl3con.c:1821,1
    - Dst: ssl_GetBulkCipherDef
      Src: /src/nss/lib/ssl/ssl3con.c:1826,1
    - Dst: ssl_GetMacDef
      Src: /src/nss/lib/ssl/ssl3con.c:1827,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:1831,1
    - Dst: dtls_InitRecvdRecords
      Src: /src/nss/lib/ssl/ssl3con.c:1832,1
    - Dst: ssl_SetSpecVersions
      Src: /src/nss/lib/ssl/ssl3con.c:1834,1
    - Dst: ssl_SaveCipherSpec
      Src: /src/nss/lib/ssl/ssl3con.c:1836,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 4
    argNames:
    - ss
    - direction
    - suiteDef
    - specp
    argTypes:
    - sslSocket*
    - SSLSecretDirection
    - ssl3CipherSuiteDef*
    - ssl3CipherSpec**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1839
      start: 1807
    functionDepth: 3
    functionLinenumber: 1807
    functionLinenumberEnd: 1839
    functionName: ssl3_SetupPendingCipherSpec
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - IS_DTLS
    - ssl_GetBulkCipherDef
    - ssl_SetSpecVersions
    - PORT_SetError
    - ssl_SaveCipherSpec
    - ssl_CreateCipherSpec
    - dtls_InitRecvdRecords
    - ssl_GetMacDef
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_SetupPendingCipherSpec(sslSocket *ss, SSLSecretDirection
      direction,\n                            const ssl3CipherSuiteDef *suiteDef,\n
      \                           ssl3CipherSpec **specp)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:1855,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:1855,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:1856,1
    - Dst: ssl_GetSpecWriteLock
      Src: /src/nss/lib/ssl/ssl3con.c:1858,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3con.c:1866,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:1867,1
    - Dst: ssl_LookupCipherSuiteDef
      Src: /src/nss/lib/ssl/ssl3con.c:1869,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:1874,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:1876,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:1883,1
    - Dst: ssl3_SetupPendingCipherSpec
      Src: /src/nss/lib/ssl/ssl3con.c:1885,1
    - Dst: ssl3_SetupPendingCipherSpec
      Src: /src/nss/lib/ssl/ssl3con.c:1890,1
    - Dst: ssl3_ExtensionNegotiated
      Src: /src/nss/lib/ssl/ssl3con.c:1896,1
    - Dst: PR_MIN
      Src: /src/nss/lib/ssl/ssl3con.c:1897,1
    - Dst: PR_MIN
      Src: /src/nss/lib/ssl/ssl3con.c:1899,1
    - Dst: ssl_ReleaseSpecWriteLock
      Src: /src/nss/lib/ssl/ssl3con.c:1903,1
    - Dst: ssl_ReleaseSpecWriteLock
      Src: /src/nss/lib/ssl/ssl3con.c:1907,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1909
      start: 1847
    functionDepth: 4
    functionLinenumber: 1847
    functionLinenumberEnd: 1909
    functionName: ssl3_SetupBothPendingCipherSpecs
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - IS_DTLS
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    - PR_MIN
    - ssl3_ExtensionNegotiated
    - ssl_GetSpecWriteLock
    - SSL_TRC
    - ssl_LookupCipherSuiteDef
    - SSL_GETPID
    - ssl3_SetupPendingCipherSpec
    - ssl_ReleaseSpecWriteLock
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_SetupBothPendingCipherSpecs(sslSocket *ss)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3con.c:1935,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3con.c:1939,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3con.c:1941,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3con.c:1946,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3con.c:1954,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3con.c:1959,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 9
    argNames:
    - epoch
    - seqNum
    - ct
    - includesVersion
    - version
    - isDTLS
    - length
    - buf
    - v
    argTypes:
    - DTLSEpoch
    - sslSequenceNumber
    - SSLContentType
    - PRBool
    - SSL3ProtocolVersion
    - PRBool
    - int
    - sslBuffer*
    - SSL3ProtocolVersion
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1965
      start: 1923
    functionDepth: 1
    functionLinenumber: 1923
    functionLinenumberEnd: 1965
    functionName: ssl3_BuildRecordPseudoHeader
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - sslBuffer_AppendNumber
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_BuildRecordPseudoHeader(DTLSEpoch epoch,\n                             sslSequenceNumber
      seqNum,\n                             SSLContentType ct,\n                             PRBool
      includesVersion,\n                             SSL3ProtocolVersion version,\n
      \                            PRBool isDTLS,\n                             int
      length,\n                             sslBuffer *buf, SSL3ProtocolVersion v)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:1981,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:1981,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:1982,1
    - Dst: ssl_HaveSpecWriteLock
      Src: /src/nss/lib/ssl/ssl3con.c:1982,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:1985,1
    - Dst: PK11_CreateContextBySymKey
      Src: /src/nss/lib/ssl/ssl3con.c:1998,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:2001,1
    - Dst: ssl3_Alg2Mech
      Src: /src/nss/lib/ssl/ssl3con.c:2014,1
    - Dst: PK11_CreateContextBySymKey
      Src: /src/nss/lib/ssl/ssl3con.c:2029,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:2033,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 2
    argNames:
    - ss
    - spec
    argTypes:
    - sslSocket*
    - ssl3CipherSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2038
      start: 1971
    functionDepth: 11
    functionLinenumber: 1971
    functionLinenumberEnd: 2038
    functionName: ssl3_InitPendingContexts
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - ssl_HaveSpecWriteLock
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    - ssl_MapLowLevelError
    - PK11_CreateContextBySymKey
    - ssl3_Alg2Mech
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_InitPendingContexts(sslSocket *ss, ssl3CipherSpec *spec)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:2060,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:2060,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:2061,1
    - Dst: ssl_GetSpecWriteLock
      Src: /src/nss/lib/ssl/ssl3con.c:2063,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:2065,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:2066,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:2075,1
    - Dst: ssl3_ComputeMasterSecret
      Src: /src/nss/lib/ssl/ssl3con.c:2080,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:2088,1
    - Dst: ssl3_DeriveConnectionKeys
      Src: /src/nss/lib/ssl/ssl3con.c:2089,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/ssl3con.c:2093,1
    - Dst: PK11_ReferenceSymKey
      Src: /src/nss/lib/ssl/ssl3con.c:2101,1
    - Dst: ssl3_InitPendingContexts
      Src: /src/nss/lib/ssl/ssl3con.c:2102,1
    - Dst: ssl3_InitPendingContexts
      Src: /src/nss/lib/ssl/ssl3con.c:2107,1
    - Dst: ssl_ReleaseSpecWriteLock
      Src: /src/nss/lib/ssl/ssl3con.c:2112,1
    - Dst: ssl_ReleaseSpecWriteLock
      Src: /src/nss/lib/ssl/ssl3con.c:2116,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:2117,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 50
    argCount: 3
    argNames:
    - ss
    - secret
    - derive
    argTypes:
    - sslSocket*
    - PK11SymKey*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2119
      start: 2052
    functionDepth: 12
    functionLinenumber: 2052
    functionLinenumberEnd: 2119
    functionName: ssl3_InitPendingCipherSpecs
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 2
    functionsReached:
    - PORT_Assert
    - ssl3_InitPendingContexts
    - ssl_HaveSSL3HandshakeLock
    - ssl_GetSpecWriteLock
    - ssl3_ComputeMasterSecret
    - PORT_SetError
    - ssl3_DeriveConnectionKeys
    - ssl_ReleaseSpecWriteLock
    - ssl_MapLowLevelError
    - PK11_ReferenceSymKey
    - PK11_FreeSymKey
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_InitPendingCipherSpecs(sslSocket *ss, PK11SymKey *secret,
      PRBool derive)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/ssl3con.c:2162,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/ssl3con.c:2163,1
    - Dst: PK11_DigestBegin
      Src: /src/nss/lib/ssl/ssl3con.c:2171,1
    - Dst: PK11_DigestOp
      Src: /src/nss/lib/ssl/ssl3con.c:2172,1
    - Dst: PK11_DigestOp
      Src: /src/nss/lib/ssl/ssl3con.c:2173,1
    - Dst: PK11_DigestFinal
      Src: /src/nss/lib/ssl/ssl3con.c:2174,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:2175,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/ssl3con.c:2177,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:2181,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 7
    argNames:
    - spec
    - header
    - headerLen
    - input
    - inputLen
    - outbuf
    - outLen
    argTypes:
    - ssl3CipherSpec*
    - unsigned char*
    - unsigned int
    - PRUint8*
    - int
    - unsigned char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2184
      start: 2148
    functionDepth: 6
    functionLinenumber: 2148
    functionLinenumberEnd: 2184
    functionName: ssl3_ComputeRecordMAC
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PK11_DigestOp
    - PRINT_BUF
    - ssl_MapLowLevelError
    - PK11_DigestBegin
    - PK11_DigestFinal
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_ComputeRecordMAC(\n    ssl3CipherSpec *spec,\n    const
      unsigned char *header,\n    unsigned int headerLen,\n    const PRUint8 *input,\n
      \   int inputLen,\n    unsigned char *outbuf,\n    unsigned int *outLen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:2209,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:2210,1
    - Dst: PK11_SignWithSymKey
      Src: /src/nss/lib/ssl/ssl3con.c:2239,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/ssl3con.c:2242,1
    - Dst: ssl3_ComputeRecordMAC
      Src: /src/nss/lib/ssl/ssl3con.c:2245,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:2252,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:2256,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 37
    argCount: 8
    argNames:
    - spec
    - header
    - headerLen
    - input
    - inputLen
    - originalLen
    - outbuf
    - outLen
    argTypes:
    - ssl3CipherSpec*
    - unsigned char*
    - unsigned int
    - PRUint8*
    - int
    - int
    - unsigned char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2260
      start: 2192
    functionDepth: 7
    functionLinenumber: 2192
    functionLinenumberEnd: 2260
    functionName: ssl3_ComputeRecordMACConstantTime
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_GetError
    - ssl_MapLowLevelError
    - ssl3_ComputeRecordMAC
    - PK11_SignWithSymKey
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_ComputeRecordMACConstantTime(\n    ssl3CipherSpec *spec,\n
      \   const unsigned char *header,\n    unsigned int headerLen,\n    const PRUint8
      *input,\n    int inputLen,\n    int originalLen,\n    unsigned char *outbuf,\n
      \   unsigned int *outLen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SECMOD_LookupSlot
      Src: /src/nss/lib/ssl/ssl3con.c:2274,1
    - Dst: PK11_IsPresent
      Src: /src/nss/lib/ssl/ssl3con.c:2277,1
    - Dst: PK11_GetSlotSeries
      Src: /src/nss/lib/ssl/ssl3con.c:2278,1
    - Dst: PK11_GetSlotID
      Src: /src/nss/lib/ssl/ssl3con.c:2279,1
    - Dst: PK11_GetModuleID
      Src: /src/nss/lib/ssl/ssl3con.c:2280,1
    - Dst: PK11_NeedLogin
      Src: /src/nss/lib/ssl/ssl3con.c:2281,1
    - Dst: PK11_IsLoggedIn
      Src: /src/nss/lib/ssl/ssl3con.c:2281,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/ssl/ssl3con.c:2285,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 12
    argCount: 1
    argNames:
    - sid
    argTypes:
    - sslSessionID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2288
      start: 2262
    functionDepth: 6
    functionLinenumber: 2262
    functionLinenumberEnd: 2288
    functionName: ssl3_ClientAuthTokenPresent
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - PK11_IsPresent
    - SECMOD_LookupSlot
    - PK11_IsLoggedIn
    - PK11_NeedLogin
    - PK11_GetSlotSeries
    - PK11_GetSlotID
    - PK11_FreeSlot
    - PK11_GetModuleID
    linkageType: ''
    returnType: PRBool
    signature: PRBool ssl3_ClientAuthTokenPresent(sslSessionID *sid)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: SSL_BUFFER
      Src: /src/nss/lib/ssl/ssl3con.c:2306,1
    - Dst: SSL_BUFFER_SPACE
      Src: /src/nss/lib/ssl/ssl3con.c:2317,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:2318,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/lib/ssl/ssl3con.c:2321,1
    - Dst: SSL_BUFFER_NEXT
      Src: /src/nss/lib/ssl/ssl3con.c:2321,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:2323,1
    - Dst: ssl3CipherSpec*::cipher
      Src: /src/nss/lib/ssl/ssl3con.c:2326,1
    - Dst: SSL_BUFFER_NEXT
      Src: /src/nss/lib/ssl/ssl3con.c:2327,1
    - Dst: SSL_BUFFER_NEXT
      Src: /src/nss/lib/ssl/ssl3con.c:2330,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:2333,1
    - Dst: sslBuffer_Skip
      Src: /src/nss/lib/ssl/ssl3con.c:2337,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:2338,1
    - Dst: ssl3_BuildRecordPseudoHeader
      Src: /src/nss/lib/ssl/ssl3con.c:2340,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:2344,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:2355,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:2356,1
    - Dst: SSL_BUFFER_SPACE
      Src: /src/nss/lib/ssl/ssl3con.c:2358,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:2359,1
    - Dst: tls13_SetupAeadIv
      Src: /src/nss/lib/ssl/ssl3con.c:2370,1
    - Dst: tls13_AEAD
      Src: /src/nss/lib/ssl/ssl3con.c:2372,1
    - Dst: SSL_BUFFER_BASE
      Src: /src/nss/lib/ssl/ssl3con.c:2379,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/ssl3con.c:2380,1
    - Dst: SSL_BUFFER_NEXT
      Src: /src/nss/lib/ssl/ssl3con.c:2381,1
    - Dst: SSL_BUFFER_SPACE
      Src: /src/nss/lib/ssl/ssl3con.c:2383,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:2387,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/ssl3con.c:2393,1
    - Dst: SSL_BUFFER_NEXT
      Src: /src/nss/lib/ssl/ssl3con.c:2393,1
    - Dst: sslBuffer_Skip
      Src: /src/nss/lib/ssl/ssl3con.c:2396,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:2397,1
    - Dst: ssl3_ComputeRecordMAC
      Src: /src/nss/lib/ssl/ssl3con.c:2404,1
    - Dst: SSL_BUFFER_BASE
      Src: /src/nss/lib/ssl/ssl3con.c:2404,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/ssl3con.c:2405,1
    - Dst: SSL_BUFFER_NEXT
      Src: /src/nss/lib/ssl/ssl3con.c:2407,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:2409,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:2415,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:2430,1
    - Dst: SSL_BUFFER_NEXT
      Src: /src/nss/lib/ssl/ssl3con.c:2433,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:2448,1
    - Dst: memmove
      Src: /src/nss/lib/ssl/ssl3con.c:2450,1
    - Dst: SSL_BUFFER_NEXT
      Src: /src/nss/lib/ssl/ssl3con.c:2450,1
    - Dst: ssl3CipherSpec*::cipher
      Src: /src/nss/lib/ssl/ssl3con.c:2454,1
    - Dst: SSL_BUFFER_NEXT
      Src: /src/nss/lib/ssl/ssl3con.c:2455,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:2460,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:2462,1
    - Dst: sslBuffer_Skip
      Src: /src/nss/lib/ssl/ssl3con.c:2465,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:2466,1
    - Dst: ssl3CipherSpec*::cipher
      Src: /src/nss/lib/ssl/ssl3con.c:2470,1
    - Dst: SSL_BUFFER_NEXT
      Src: /src/nss/lib/ssl/ssl3con.c:2471,1
    - Dst: SSL_BUFFER_NEXT
      Src: /src/nss/lib/ssl/ssl3con.c:2474,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:2476,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:2478,1
    - Dst: sslBuffer_Skip
      Src: /src/nss/lib/ssl/ssl3con.c:2481,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:2482,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 103
    argCount: 7
    argNames:
    - cwSpec
    - isServer
    - isDTLS
    - ct
    - pIn
    - contentLen
    - wrBuf
    argTypes:
    - ssl3CipherSpec*
    - PRBool
    - PRBool
    - SSLContentType
    - PRUint8*
    - PRUint32
    - sslBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2487
      start: 2291
    functionDepth: 12
    functionLinenumber: 2291
    functionLinenumberEnd: 2487
    functionName: ssl3_MACEncryptRecord
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - tls13_SetupAeadIv
    - SSL_BUFFER_LEN
    - SSL_BUFFER_BASE
    - PORT_Memcpy
    - memmove
    - SSL_BUFFER_SPACE
    - SSL_BUFFER
    - PORT_SetError
    - ssl3_BuildRecordPseudoHeader
    - ssl_MapLowLevelError
    - PK11_GenerateRandom
    - SSL_BUFFER_NEXT
    - sslBuffer_Skip
    - tls13_AEAD
    - ssl3CipherSpec*::cipher
    - ssl3_ComputeRecordMAC
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_MACEncryptRecord(ssl3CipherSpec *cwSpec,\n                      PRBool
      isServer,\n                      PRBool isDTLS,\n                      SSLContentType
      ct,\n                      const PRUint8 *pIn,\n                      PRUint32
      contentLen,\n                      sslBuffer *wrBuf)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:2500,1
    - Dst: dtls13_InsertCipherTextHeader
      Src: /src/nss/lib/ssl/ssl3con.c:2501,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3con.c:2507,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3con.c:2512,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:2516,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3con.c:2517,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3con.c:2521,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 5
    argNames:
    - ss
    - cwSpec
    - contentType
    - wrBuf
    - needsLength
    argTypes:
    - sslSocket*
    - ssl3CipherSpec*
    - SSLContentType
    - sslBuffer*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2528
      start: 2490
    functionDepth: 1
    functionLinenumber: 2490
    functionLinenumberEnd: 2528
    functionName: ssl_InsertRecordHeader
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - IS_DTLS
    - sslBuffer_AppendNumber
    - dtls13_InsertCipherTextHeader
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_InsertRecordHeader(const sslSocket *ss, ssl3CipherSpec
      *cwSpec,\n                       SSLContentType contentType, sslBuffer *wrBuf,\n
      \                      PRBool *needsLength)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:2538,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:2539,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/ssl3con.c:2539,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:2540,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3con.c:2543,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:2544,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:2545,1
    - Dst: ssl_InsertRecordHeader
      Src: /src/nss/lib/ssl/ssl3con.c:2549,1
    - Dst: sslBuffer_Skip
      Src: /src/nss/lib/ssl/ssl3con.c:2554,1
    - Dst: Null_Cipher
      Src: /src/nss/lib/ssl/ssl3con.c:2563,1
    - Dst: SSL_BUFFER_NEXT
      Src: /src/nss/lib/ssl/ssl3con.c:2563,1
    - Dst: SSL_BUFFER_SPACE
      Src: /src/nss/lib/ssl/ssl3con.c:2564,1
    - Dst: sslBuffer_Skip
      Src: /src/nss/lib/ssl/ssl3con.c:2568,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:2569,1
    - Dst: SSL_BUFFER_NEXT
      Src: /src/nss/lib/ssl/ssl3con.c:2573,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/ssl3con.c:2574,1
    - Dst: tls13_ProtectRecord
      Src: /src/nss/lib/ssl/ssl3con.c:2575,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:2579,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/ssl3con.c:2580,1
    - Dst: dtls13_MaskSequenceNumber
      Src: /src/nss/lib/ssl/ssl3con.c:2581,1
    - Dst: SSL_BUFFER_BASE
      Src: /src/nss/lib/ssl/ssl3con.c:2582,1
    - Dst: ssl3_MACEncryptRecord
      Src: /src/nss/lib/ssl/ssl3con.c:2586,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:2586,1
    - Dst: sslBuffer_InsertLength
      Src: /src/nss/lib/ssl/ssl3con.c:2596,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:2598,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 50
    argCount: 6
    argNames:
    - ss
    - cwSpec
    - ct
    - pIn
    - contentLen
    - wrBuf
    argTypes:
    - sslSocket*
    - ssl3CipherSpec*
    - SSLContentType
    - PRUint8*
    - PRUint32
    - sslBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2605
      start: 2530
    functionDepth: 13
    functionLinenumber: 2530
    functionLinenumberEnd: 2605
    functionName: ssl_ProtectRecord
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - IS_DTLS
    - PORT_Assert
    - SSL_BUFFER_LEN
    - SSL_BUFFER_BASE
    - SSL_BUFFER_SPACE
    - SSL_TRC
    - ssl3_MACEncryptRecord
    - SSL_GETPID
    - dtls13_MaskSequenceNumber
    - sslBuffer_InsertLength
    - PORT_SetError
    - SSL_BUFFER_NEXT
    - sslBuffer_Skip
    - Null_Cipher
    - tls13_ProtectRecord
    - ssl_InsertRecordHeader
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_ProtectRecord(sslSocket *ss, ssl3CipherSpec *cwSpec,
      SSLContentType ct,\n                  const PRUint8 *pIn, PRUint32 contentLen,
      sslBuffer *wrBuf)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PR_MIN
      Src: /src/nss/lib/ssl/ssl3con.c:2617,1
    - Dst: SSL_BUFFER_SPACE
      Src: /src/nss/lib/ssl/ssl3con.c:2623,1
    - Dst: sslBuffer_Grow
      Src: /src/nss/lib/ssl/ssl3con.c:2624,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/ssl3con.c:2626,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:2627,1
    - Dst: ssl_ProtectRecord
      Src: /src/nss/lib/ssl/ssl3con.c:2632,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/ssl3con.c:2636,1
    - Dst: SSL_BUFFER_BASE
      Src: /src/nss/lib/ssl/ssl3con.c:2637,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/ssl3con.c:2637,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 6
    argNames:
    - ss
    - spec
    - ct
    - pIn
    - nIn
    - written
    argTypes:
    - sslSocket*
    - ssl3CipherSpec*
    - SSLContentType
    - PRUint8*
    - unsigned int
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2640
      start: 2607
    functionDepth: 14
    functionLinenumber: 2607
    functionLinenumberEnd: 2640
    functionName: ssl_ProtectNextRecord
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - SSL_BUFFER_LEN
    - SSL_BUFFER_BASE
    - PR_MIN
    - sslBuffer_Grow
    - SSL_BUFFER_SPACE
    - SSL_GETPID
    - ssl_ProtectRecord
    - PRINT_BUF
    - SSL_DBG
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_ProtectNextRecord(sslSocket *ss, ssl3CipherSpec *spec,
      SSLContentType ct,\n                      const PRUint8 *pIn, unsigned int nIn,\n
      \                     unsigned int *written)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3con.c:2676,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:2677,1
    - Dst: ssl3_DecodeContentType
      Src: /src/nss/lib/ssl/ssl3con.c:2677,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/ssl3con.c:2679,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:2681,1
    - Dst: ssl_HaveXmitBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:2681,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:2682,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/ssl3con.c:2682,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3con.c:2685,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:2686,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:2690,1
    - Dst: ssl3_ClientAuthTokenPresent
      Src: /src/nss/lib/ssl/ssl3con.c:2696,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:2697,1
    - Dst: ssl_GetSpecReadLock
      Src: /src/nss/lib/ssl/ssl3con.c:2703,1
    - Dst: ssl_ReleaseSpecReadLock
      Src: /src/nss/lib/ssl/ssl3con.c:2705,1
    - Dst: sslSocket*::recordWriteCallback
      Src: /src/nss/lib/ssl/ssl3con.c:2706,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:2716,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:2716,1
    - Dst: ssl_GetSpecReadLock
      Src: /src/nss/lib/ssl/ssl3con.c:2728,1
    - Dst: ssl_ProtectNextRecord
      Src: /src/nss/lib/ssl/ssl3con.c:2729,1
    - Dst: ssl_ReleaseSpecReadLock
      Src: /src/nss/lib/ssl/ssl3con.c:2730,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:2735,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:2737,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:2738,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:2743,1
    - Dst: ssl_SaveWriteData
      Src: /src/nss/lib/ssl/ssl3con.c:2752,1
    - Dst: SSL_BUFFER_BASE
      Src: /src/nss/lib/ssl/ssl3con.c:2752,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/ssl3con.c:2753,1
    - Dst: ssl_SendSavedWriteData
      Src: /src/nss/lib/ssl/ssl3con.c:2761,1
    - Dst: PR_GetError
      Src: /src/nss/lib/ssl/ssl3con.c:2762,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:2763,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:2771,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/ssl3con.c:2771,1
    - Dst: ssl_DefSend
      Src: /src/nss/lib/ssl/ssl3con.c:2773,1
    - Dst: SSL_BUFFER_BASE
      Src: /src/nss/lib/ssl/ssl3con.c:2773,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/ssl3con.c:2774,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/ssl3con.c:2777,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:2778,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/ssl3con.c:2784,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:2785,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:2787,1
    - Dst: ssl_SaveWriteData
      Src: /src/nss/lib/ssl/ssl3con.c:2793,1
    - Dst: SSL_BUFFER_BASE
      Src: /src/nss/lib/ssl/ssl3con.c:2793,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/ssl3con.c:2794,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 98
    argCount: 6
    argNames:
    - ss
    - cwSpec
    - ct
    - pIn
    - nIn
    - flags
    argTypes:
    - sslSocket*
    - ssl3CipherSpec*
    - SSLContentType
    - PRUint8*
    - PRInt32
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2810
      start: 2663
    functionDepth: 15
    functionLinenumber: 2663
    functionLinenumberEnd: 2810
    functionName: ssl3_SendRecord
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - ssl3_DecodeContentType
    - ssl_ProtectNextRecord
    - SSL_BUFFER_LEN
    - sslSocket*::recordWriteCallback
    - ssl_SaveWriteData
    - PORT_SetError
    - IS_DTLS
    - PORT_Assert
    - PRINT_BUF
    - ssl_SendSavedWriteData
    - ssl_MapLowLevelError
    - ssl_GetSpecReadLock
    - SSL_BUFFER_BASE
    - ssl_HaveXmitBufLock
    - SSL_TRC
    - ssl3_ClientAuthTokenPresent
    - SSL_GETPID
    - PORT_GetError
    - ssl_DefSend
    - PR_GetError
    - ssl_ReleaseSpecReadLock
    linkageType: ''
    returnType: PRInt32
    signature: "PRInt32 ssl3_SendRecord(sslSocket *ss,\n                ssl3CipherSpec
      *cwSpec, /* non-NULL for DTLS retransmits */\n                SSLContentType
      ct,\n                const PRUint8 *pIn, /* input buffer */\n                PRInt32
      nIn,        /* bytes of input */\n                PRInt32 flags)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:2825,1
    - Dst: ssl_HaveXmitBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:2825,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:2827,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:2829,1
    - Dst: ssl_SocketIsBlocking
      Src: /src/nss/lib/ssl/ssl3con.c:2834,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:2835,1
    - Dst: ssl_SocketIsBlocking
      Src: /src/nss/lib/ssl/ssl3con.c:2835,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:2836,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:2841,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:2843,1
    - Dst: ssl_ReleaseXmitBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:2870,1
    - Dst: PR_Sleep
      Src: /src/nss/lib/ssl/ssl3con.c:2871,1
    - Dst: ssl_GetXmitBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:2872,1
    - Dst: PR_MIN
      Src: /src/nss/lib/ssl/ssl3con.c:2879,1
    - Dst: ssl3_SendRecord
      Src: /src/nss/lib/ssl/ssl3con.c:2886,1
    - Dst: PR_GetError
      Src: /src/nss/lib/ssl/ssl3con.c:2889,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:2890,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:2898,1
    - Dst: ssl_SocketIsBlocking
      Src: /src/nss/lib/ssl/ssl3con.c:2898,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:2899,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:2905,1
    - Dst: ssl_SocketIsBlocking
      Src: /src/nss/lib/ssl/ssl3con.c:2905,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:2912,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 66
    argCount: 4
    argNames:
    - ss
    - in
    - len
    - flags
    argTypes:
    - sslSocket*
    - unsigned char*
    - PRInt32
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2919
      start: 2817
    functionDepth: 16
    functionLinenumber: 2817
    functionLinenumberEnd: 2919
    functionName: ssl3_SendApplicationData
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - ssl_GetXmitBufLock
    - PR_MIN
    - ssl_HaveXmitBufLock
    - ssl_ReleaseXmitBufLock
    - PORT_SetError
    - PR_Sleep
    - ssl3_SendRecord
    - PR_GetError
    - ssl_SocketIsBlocking
    linkageType: ''
    returnType: int
    signature: "int ssl3_SendApplicationData(sslSocket *ss, const unsigned char *in,\n
      \                        PRInt32 len, PRInt32 flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:2937,1
    - Dst: dtls_FlushHandshakeMessages
      Src: /src/nss/lib/ssl/ssl3con.c:2938,1
    - Dst: ssl3_FlushHandshakeMessages
      Src: /src/nss/lib/ssl/ssl3con.c:2940,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ss
    - flags
    argTypes:
    - sslSocket*
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2941
      start: 2934
    functionDepth: 5
    functionLinenumber: 2934
    functionLinenumberEnd: 2941
    functionName: ssl3_FlushHandshake
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 8
    functionsReached:
    - IS_DTLS
    - ssl3_FlushHandshakeMessages
    - dtls_FlushHandshakeMessages
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_FlushHandshake(sslSocket *ss, PRInt32 flags)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:2955,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:2955,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:2956,1
    - Dst: ssl_HaveXmitBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:2956,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:2962,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:2964,1
    - Dst: ssl3_SendRecord
      Src: /src/nss/lib/ssl/ssl3con.c:2967,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/ssl3con.c:2971,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:2972,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:2974,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:2979,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:2980,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - ss
    - flags
    argTypes:
    - sslSocket*
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2989
      start: 2948
    functionDepth: 16
    functionLinenumber: 2948
    functionLinenumberEnd: 2989
    functionName: ssl3_FlushHandshakeMessages
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    - ssl_HaveXmitBufLock
    - PORT_GetError
    - PORT_SetError
    - ssl3_SendRecord
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_FlushHandshakeMessages(sslSocket *ss, PRInt32 flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_CleanupPeerCerts
      Src: /src/nss/lib/ssl/ssl3con.c:3000,1
    - Dst: ssl_UncacheSessionID
      Src: /src/nss/lib/ssl/ssl3con.c:3014,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:3017,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:3019,1
    - Dst: PRFileDesc*::methods::shutdown
      Src: /src/nss/lib/ssl/ssl3con.c:3024,1
    - Dst: PRFileDesc*::methods::shutdown
      Src: /src/nss/lib/ssl/ssl3con.c:3026,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:3028,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3032
      start: 2997
    functionDepth: 13
    functionLinenumber: 2997
    functionLinenumberEnd: 3032
    functionName: ssl3_HandleNoCertificate
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - SSL3_SendAlert
    - ssl_UncacheSessionID
    - ssl3_CleanupPeerCerts
    - PORT_SetError
    - PRFileDesc*::methods::shutdown
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_HandleNoCertificate(sslSocket *ss)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:3066,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:3069,1
    - Dst: ssl_HaveXmitBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:3069,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3con.c:3071,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:3072,1
    - Dst: ssl_GetSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:3078,1
    - Dst: ssl_UncacheSessionID
      Src: /src/nss/lib/ssl/ssl3con.c:3082,1
    - Dst: tls13_SetAlertCipherSpec
      Src: /src/nss/lib/ssl/ssl3con.c:3086,1
    - Dst: ssl_ReleaseSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:3089,1
    - Dst: ssl_GetXmitBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:3094,1
    - Dst: ssl3_FlushHandshake
      Src: /src/nss/lib/ssl/ssl3con.c:3095,1
    - Dst: ssl3_SendRecord
      Src: /src/nss/lib/ssl/ssl3con.c:3098,1
    - Dst: ssl_ReleaseXmitBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:3105,1
    - Dst: ssl_ReleaseSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:3107,1
    - Dst: sslSocket*::alertSentCallback
      Src: /src/nss/lib/ssl/ssl3con.c:3111,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 3
    argNames:
    - ss
    - level
    - desc
    argTypes:
    - sslSocket*
    - SSL3AlertLevel
    - SSL3AlertDescription
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3114
      start: 3061
    functionDepth: 16
    functionLinenumber: 3061
    functionLinenumberEnd: 3114
    functionName: SSL3_SendAlert
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 18
    functionsReached:
    - PORT_Assert
    - ssl_GetXmitBufLock
    - ssl_HaveSSL3HandshakeLock
    - ssl_GetSSL3HandshakeLock
    - tls13_SetAlertCipherSpec
    - ssl_HaveXmitBufLock
    - SSL_TRC
    - ssl_UncacheSessionID
    - SSL_GETPID
    - ssl_ReleaseSSL3HandshakeLock
    - sslSocket*::alertSentCallback
    - ssl_ReleaseXmitBufLock
    - ssl3_FlushHandshake
    - ssl3_SendRecord
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSL3_SendAlert(sslSocket *ss, SSL3AlertLevel level, SSL3AlertDescription
      desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:3122,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:3123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3126
      start: 3119
    functionDepth: 17
    functionLinenumber: 3119
    functionLinenumberEnd: 3126
    functionName: ssl3_IllegalParameter
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - SSL3_SendAlert
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_IllegalParameter(sslSocket *ss)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:3134,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:3135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3138
      start: 3131
    functionDepth: 17
    functionLinenumber: 3131
    functionLinenumberEnd: 3138
    functionName: ssl3_HandshakeFailure
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - SSL3_SendAlert
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_HandshakeFailure(sslSocket *ss)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/ssl3con.c:3179,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:3180,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:3182,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 2
    argNames:
    - ss
    - errCode
    argTypes:
    - sslSocket*
    - PRErrorCode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3183
      start: 3140
    functionDepth: 17
    functionLinenumber: 3140
    functionLinenumberEnd: 3183
    functionName: ssl3_SendAlertForCertError
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - SSL3_SendAlert
    - SSL_GETPID
    - SSL_DBG
    linkageType: ''
    returnType: void
    signature: void ssl3_SendAlertForCertError(sslSocket *ss, PRErrorCode errCode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:3191,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:3194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3197
      start: 3188
    functionDepth: 17
    functionLinenumber: 3188
    functionLinenumberEnd: 3197
    functionName: ssl3_DecodeError
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 3
    functionsReached:
    - SSL3_SendAlert
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_DecodeError(sslSocket *ss)
  - BBCount: 45
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:3209,1
    - Dst: ssl_HaveRecvBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:3209,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:3210,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:3210,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3con.c:3212,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:3212,1
    - Dst: ssl3_DecodeError
      Src: /src/nss/lib/ssl/ssl3con.c:3215,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:3216,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3con.c:3222,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:3223,1
    - Dst: sslSocket*::alertReceivedCallback
      Src: /src/nss/lib/ssl/ssl3con.c:3227,1
    - Dst: ssl_UncacheSessionID
      Src: /src/nss/lib/ssl/ssl3con.c:3355,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:3363,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:3370,1
    - Dst: ssl3_HandleNoCertificate
      Src: /src/nss/lib/ssl/ssl3con.c:3372,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 148
    argCount: 2
    argNames:
    - ss
    - buf
    argTypes:
    - sslSocket*
    - sslBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3376
      start: 3202
    functionDepth: 18
    functionLinenumber: 3202
    functionLinenumberEnd: 3376
    functionName: ssl3_HandleAlert
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    - ssl3_DecodeError
    - sslSocket*::alertReceivedCallback
    - ssl_UncacheSessionID
    - SSL_TRC
    - SSL_GETPID
    - PORT_SetError
    - ssl3_HandleNoCertificate
    - ssl_HaveRecvBufLock
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_HandleAlert(sslSocket *ss, sslBuffer *buf)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3con.c:3394,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:3395,1
    - Dst: ssl3_FlushHandshake
      Src: /src/nss/lib/ssl/ssl3con.c:3397,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:3402,1
    - Dst: ssl3_SendRecord
      Src: /src/nss/lib/ssl/ssl3con.c:3404,1
    - Dst: dtls_QueueMessage
      Src: /src/nss/lib/ssl/ssl3con.c:3410,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3416
      start: 3388
    functionDepth: 16
    functionLinenumber: 3388
    functionLinenumberEnd: 3416
    functionName: ssl3_SendChangeCipherSpecsInt
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 5
    functionsReached:
    - IS_DTLS
    - SSL_TRC
    - SSL_GETPID
    - ssl3_FlushHandshake
    - ssl3_SendRecord
    - dtls_QueueMessage
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_SendChangeCipherSpecsInt(sslSocket *ss)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:3423,1
    - Dst: ssl_HaveXmitBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:3423,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:3424,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:3424,1
    - Dst: ssl3_SendChangeCipherSpecsInt
      Src: /src/nss/lib/ssl/ssl3con.c:3426,1
    - Dst: ssl_GetSpecWriteLock
      Src: /src/nss/lib/ssl/ssl3con.c:3432,1
    - Dst: ssl_CipherSpecRelease
      Src: /src/nss/lib/ssl/ssl3con.c:3434,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3con.c:3438,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:3439,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:3443,1
    - Dst: dtls_StartHolddownTimer
      Src: /src/nss/lib/ssl/ssl3con.c:3444,1
    - Dst: ssl_ReleaseSpecWriteLock
      Src: /src/nss/lib/ssl/ssl3con.c:3446,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3449
      start: 3418
    functionDepth: 17
    functionLinenumber: 3418
    functionLinenumberEnd: 3449
    functionName: ssl3_SendChangeCipherSpecs
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - IS_DTLS
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    - ssl_GetSpecWriteLock
    - ssl_HaveXmitBufLock
    - SSL_TRC
    - SSL_GETPID
    - dtls_StartHolddownTimer
    - ssl_CipherSpecRelease
    - ssl3_SendChangeCipherSpecsInt
    - ssl_ReleaseSpecWriteLock
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_SendChangeCipherSpecs(sslSocket *ss)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:3463,1
    - Dst: ssl_HaveRecvBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:3463,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:3464,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:3464,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3con.c:3466,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:3467,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:3472,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3con.c:3474,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:3476,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:3483,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:3484,1
    - Dst: ssl3_DecodeError
      Src: /src/nss/lib/ssl/ssl3con.c:3488,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:3489,1
    - Dst: ssl3_IllegalParameter
      Src: /src/nss/lib/ssl/ssl3con.c:3495,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:3496,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:3508,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:3518,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:3522,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:3523,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3con.c:3527,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:3528,1
    - Dst: ssl_GetSpecWriteLock
      Src: /src/nss/lib/ssl/ssl3con.c:3529,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:3530,1
    - Dst: ssl_CipherSpecRelease
      Src: /src/nss/lib/ssl/ssl3con.c:3531,1
    - Dst: ssl_ReleaseSpecWriteLock
      Src: /src/nss/lib/ssl/ssl3con.c:3534,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 49
    argCount: 2
    argNames:
    - ss
    - buf
    argTypes:
    - sslSocket*
    - sslBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3538
      start: 3457
    functionDepth: 18
    functionLinenumber: 3457
    functionLinenumberEnd: 3538
    functionName: ssl3_HandleChangeCipherSpecs
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - IS_DTLS
    - PORT_Assert
    - SSL3_SendAlert
    - ssl_HaveSSL3HandshakeLock
    - ssl3_DecodeError
    - ssl_GetSpecWriteLock
    - SSL_TRC
    - SSL_GETPID
    - ssl3_IllegalParameter
    - ssl_CipherSpecRelease
    - PORT_SetError
    - ssl_HaveRecvBufLock
    - ssl_ReleaseSpecWriteLock
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_HandleChangeCipherSpecs(sslSocket *ss, sslBuffer *buf)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:3551,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - hash
    argTypes:
    - SSLHashType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3554
      start: 3540
    functionDepth: 0
    functionLinenumber: 3540
    functionLinenumberEnd: 3554
    functionName: ssl3_GetMgfMechanismByHashType
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 2
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: CK_MECHANISM_TYPE
    signature: CK_MECHANISM_TYPE ssl3_GetMgfMechanismByHashType(SSLHashType hash)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:3572,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - hashType
    argTypes:
    - SSLHashType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3575
      start: 3557
    functionDepth: 0
    functionLinenumber: 3557
    functionLinenumberEnd: 3575
    functionName: ssl3_GetHashMechanismByHashType
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 2
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: CK_MECHANISM_TYPE
    signature: CK_MECHANISM_TYPE ssl3_GetHashMechanismByHashType(SSLHashType hashType)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_GetHashMechanismByHashType
      Src: /src/nss/lib/ssl/ssl3con.c:3581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3582
      start: 3578
    functionDepth: 1
    functionLinenumber: 3578
    functionLinenumberEnd: 3582
    functionName: ssl3_GetPrfHashMechanism
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - ssl3_GetHashMechanismByHashType
    linkageType: ''
    returnType: CK_MECHANISM_TYPE
    signature: CK_MECHANISM_TYPE ssl3_GetPrfHashMechanism(sslSocket *ss)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3592
      start: 3584
    functionDepth: 0
    functionLinenumber: 3584
    functionLinenumberEnd: 3592
    functionName: ssl3_GetSuitePrfHash
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SSLHashType
    signature: SSLHashType ssl3_GetSuitePrfHash(sslSocket *ss)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PK11_DeriveWithFlags
      Src: /src/nss/lib/ssl/ssl3con.c:3617,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:3621,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:3629,1
    - Dst: dtls_DTLSVersionToTLSVersion
      Src: /src/nss/lib/ssl/ssl3con.c:3630,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/ssl3con.c:3635,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:3636,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/ssl3con.c:3644,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 8
    argNames:
    - ss
    - master_derive
    - key_derive
    - pms_version
    - params
    - keyFlags
    - pms
    - msp
    argTypes:
    - sslSocket*
    - CK_MECHANISM_TYPE
    - CK_MECHANISM_TYPE
    - CK_VERSION*
    - SECItem*
    - CK_FLAGS
    - PK11SymKey*
    - PK11SymKey**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3648
      start: 3607
    functionDepth: 4
    functionLinenumber: 3607
    functionLinenumberEnd: 3648
    functionName: ssl3_ComputeMasterSecretFinish
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - IS_DTLS
    - dtls_DTLSVersionToTLSVersion
    - PK11_DeriveWithFlags
    - ssl_MapLowLevelError
    - PK11_FreeSymKey
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_ComputeMasterSecretFinish(sslSocket *ss,\n                               CK_MECHANISM_TYPE
      master_derive,\n                               CK_MECHANISM_TYPE key_derive,\n
      \                              CK_VERSION *pms_version,\n                               SECItem
      *params, CK_FLAGS keyFlags,\n                               PK11SymKey *pms,
      PK11SymKey **msp)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: NSS_GetAlgorithmPolicy
      Src: /src/nss/lib/ssl/ssl3con.c:3690,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:3695,1
    - Dst: ssl3_GetPrfHashMechanism
      Src: /src/nss/lib/ssl/ssl3con.c:3733,1
    - Dst: ssl3_ComputeMasterSecretFinish
      Src: /src/nss/lib/ssl/ssl3con.c:3743,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 3
    argNames:
    - ss
    - pms
    - msp
    argTypes:
    - sslSocket*
    - PK11SymKey*
    - PK11SymKey**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3746
      start: 3655
    functionDepth: 5
    functionLinenumber: 3655
    functionLinenumberEnd: 3746
    functionName: ssl3_ComputeMasterSecretInt
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - NSS_GetAlgorithmPolicy
    - PORT_SetError
    - ssl3_ComputeMasterSecretFinish
    - ssl3_GetPrfHashMechanism
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_ComputeMasterSecretInt(sslSocket *ss, PK11SymKey *pms,\n
      \                           PK11SymKey **msp)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_ComputeHandshakeHashes
      Src: /src/nss/lib/ssl/ssl3con.c:3778,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:3780,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:3781,1
    - Dst: ssl3_GetPrfHashMechanism
      Src: /src/nss/lib/ssl/ssl3con.c:3794,1
    - Dst: ssl3_ComputeMasterSecretFinish
      Src: /src/nss/lib/ssl/ssl3con.c:3809,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 3
    argNames:
    - ss
    - pms
    - msp
    argTypes:
    - sslSocket*
    - PK11SymKey*
    - PK11SymKey**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3812
      start: 3753
    functionDepth: 5
    functionLinenumber: 3753
    functionLinenumberEnd: 3812
    functionName: tls_ComputeExtendedMasterSecretInt
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - ssl3_ComputeMasterSecretFinish
    - ssl3_GetPrfHashMechanism
    - ssl3_ComputeHandshakeHashes
    - ssl_MapLowLevelError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls_ComputeExtendedMasterSecretInt(sslSocket *ss, PK11SymKey
      *pms,\n                                   PK11SymKey **msp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:3822,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:3823,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:3823,1
    - Dst: ssl3_ExtensionNegotiated
      Src: /src/nss/lib/ssl/ssl3con.c:3825,1
    - Dst: tls_ComputeExtendedMasterSecretInt
      Src: /src/nss/lib/ssl/ssl3con.c:3826,1
    - Dst: ssl3_ComputeMasterSecretInt
      Src: /src/nss/lib/ssl/ssl3con.c:3828,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - ss
    - pms
    - msp
    argTypes:
    - sslSocket*
    - PK11SymKey*
    - PK11SymKey**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3830
      start: 3818
    functionDepth: 6
    functionLinenumber: 3818
    functionLinenumberEnd: 3830
    functionName: ssl3_ComputeMasterSecret
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    - ssl3_ExtensionNegotiated
    - ssl3_ComputeMasterSecretInt
    - tls_ComputeExtendedMasterSecretInt
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_ComputeMasterSecret(sslSocket *ss, PK11SymKey *pms,\n
      \                        PK11SymKey **msp)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:3872,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:3872,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:3873,1
    - Dst: ssl_HaveSpecWriteLock
      Src: /src/nss/lib/ssl/ssl3con.c:3873,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:3874,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/ssl/ssl3con.c:3892,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/ssl/ssl3con.c:3893,1
    - Dst: ssl3_Alg2Mech
      Src: /src/nss/lib/ssl/ssl3con.c:3919,1
    - Dst: ssl3_GetPrfHashMechanism
      Src: /src/nss/lib/ssl/ssl3con.c:3923,1
    - Dst: PK11_Derive
      Src: /src/nss/lib/ssl/ssl3con.c:3938,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:3941,1
    - Dst: PK11_GetSlotFromKey
      Src: /src/nss/lib/ssl/ssl3con.c:3948,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/ssl/ssl3con.c:3950,1
    - Dst: PK11_SymKeyFromHandle
      Src: /src/nss/lib/ssl/ssl3con.c:3952,1
    - Dst: PK11_SymKeyFromHandle
      Src: /src/nss/lib/ssl/ssl3con.c:3959,1
    - Dst: PK11_SymKeyFromHandle
      Src: /src/nss/lib/ssl/ssl3con.c:3967,1
    - Dst: PK11_SymKeyFromHandle
      Src: /src/nss/lib/ssl/ssl3con.c:3974,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/ssl3con.c:3981,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/ssl3con.c:3985,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:3986,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 88
    argCount: 2
    argNames:
    - ss
    - masterSecret
    argTypes:
    - sslSocket*
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3988
      start: 3847
    functionDepth: 5
    functionLinenumber: 3847
    functionLinenumberEnd: 3988
    functionName: ssl3_DeriveConnectionKeys
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - ssl_HaveSpecWriteLock
    - PORT_Assert
    - PK11_SymKeyFromHandle
    - ssl_HaveSSL3HandshakeLock
    - PK11_GetSlotFromKey
    - ssl3_GetPrfHashMechanism
    - PK11_Derive
    - ssl_MapLowLevelError
    - PORT_Memset
    - PK11_FreeSymKey
    - PK11_FreeSlot
    - ssl3_Alg2Mech
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_DeriveConnectionKeys(sslSocket *ss, PK11SymKey *masterSecret)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:3998,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/ssl/ssl3con.c:3999,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/ssl/ssl3con.c:4005,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4009
      start: 3990
    functionDepth: 5
    functionLinenumber: 3990
    functionLinenumberEnd: 4009
    functionName: ssl3_CoalesceEchHandshakeHashes
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PK11_DestroyContext
    linkageType: ''
    returnType: void
    signature: void ssl3_CoalesceEchHandshakeHashes(sslSocket *ss)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3con.c:4018,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:4018,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:4020,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:4024,1
    - Dst: SECOID_FindOIDByMechanism
      Src: /src/nss/lib/ssl/ssl3con.c:4033,1
    - Dst: ssl3_GetPrfHashMechanism
      Src: /src/nss/lib/ssl/ssl3con.c:4033,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:4038,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:4040,1
    - Dst: PK11_CreateDigestContext
      Src: /src/nss/lib/ssl/ssl3con.c:4044,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:4046,1
    - Dst: PK11_DigestBegin
      Src: /src/nss/lib/ssl/ssl3con.c:4050,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:4051,1
    - Dst: PK11_CreateDigestContext
      Src: /src/nss/lib/ssl/ssl3con.c:4057,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:4059,1
    - Dst: PK11_DigestBegin
      Src: /src/nss/lib/ssl/ssl3con.c:4062,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:4063,1
    - Dst: PK11_CreateDigestContext
      Src: /src/nss/lib/ssl/ssl3con.c:4070,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:4072,1
    - Dst: PK11_CreateDigestContext
      Src: /src/nss/lib/ssl/ssl3con.c:4075,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/ssl/ssl3con.c:4077,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:4079,1
    - Dst: PK11_DigestBegin
      Src: /src/nss/lib/ssl/ssl3con.c:4084,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:4085,1
    - Dst: PK11_DigestBegin
      Src: /src/nss/lib/ssl/ssl3con.c:4088,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:4089,1
    - Dst: ssl3_UpdateDefaultHandshakeHashes
      Src: /src/nss/lib/ssl/ssl3con.c:4102,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/ssl3con.c:4112,1
    - Dst: PK11_DigestOp
      Src: /src/nss/lib/ssl/ssl3con.c:4117,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:4119,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/ssl3con.c:4123,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 76
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4128
      start: 4015
    functionDepth: 9
    functionLinenumber: 4015
    functionLinenumberEnd: 4128
    functionName: ssl3_InitHandshakeHashes
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - PK11_DestroyContext
    - PK11_DigestOp
    - ssl3_GetPrfHashMechanism
    - PK11_CreateDigestContext
    - SSL_TRC
    - SSL_GETPID
    - SECOID_FindOIDByMechanism
    - ssl3_UpdateDefaultHandshakeHashes
    - ssl_MapLowLevelError
    - sslBuffer_Clear
    - PK11_DigestBegin
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_InitHandshakeHashes(sslSocket *ss)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3con.c:4133,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:4134,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/ssl/ssl3con.c:4139,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/ssl/ssl3con.c:4143,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/ssl/ssl3con.c:4147,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/ssl/ssl3con.c:4151,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4154
      start: 4130
    functionDepth: 5
    functionLinenumber: 4130
    functionLinenumberEnd: 4154
    functionName: ssl3_RestartHandshakeHashes
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - SSL_TRC
    - PK11_DestroyContext
    - SSL_GETPID
    linkageType: ''
    returnType: void
    signature: void ssl3_RestartHandshakeHashes(sslSocket *ss)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:4170,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:4170,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:4171,1
    - Dst: sslBuffer_Append
      Src: /src/nss/lib/ssl/ssl3con.c:4191,1
    - Dst: sslBuffer_Append
      Src: /src/nss/lib/ssl/ssl3con.c:4196,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/ssl3con.c:4201,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:4204,1
    - Dst: PK11_DigestOp
      Src: /src/nss/lib/ssl/ssl3con.c:4206,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:4208,1
    - Dst: PK11_DigestOp
      Src: /src/nss/lib/ssl/ssl3con.c:4214,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:4216,1
    - Dst: PK11_DigestOp
      Src: /src/nss/lib/ssl/ssl3con.c:4221,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:4223,1
    - Dst: PK11_DigestOp
      Src: /src/nss/lib/ssl/ssl3con.c:4226,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:4228,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 47
    argCount: 4
    argNames:
    - ss
    - b
    - l
    - target
    argTypes:
    - sslSocket*
    - unsigned char*
    - unsigned int
    - sslBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4233
      start: 4160
    functionDepth: 4
    functionLinenumber: 4160
    functionLinenumberEnd: 4233
    functionName: ssl3_UpdateHandshakeHashesInt
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    - PK11_DigestOp
    - PRINT_BUF
    - ssl_MapLowLevelError
    - sslBuffer_Append
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_UpdateHandshakeHashesInt(sslSocket *ss, const unsigned
      char *b,\n                              unsigned int l, sslBuffer *target)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_UpdateHandshakeHashesInt
      Src: /src/nss/lib/ssl/ssl3con.c:4239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ss
    - b
    - l
    argTypes:
    - sslSocket*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4241
      start: 4235
    functionDepth: 5
    functionLinenumber: 4235
    functionLinenumberEnd: 4241
    functionName: ssl3_UpdateDefaultHandshakeHashes
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - ssl3_UpdateHandshakeHashesInt
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_UpdateDefaultHandshakeHashes(sslSocket *ss, const unsigned
      char *b,\n                                  unsigned int l)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_UpdateHandshakeHashesInt
      Src: /src/nss/lib/ssl/ssl3con.c:4247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ss
    - b
    - l
    argTypes:
    - sslSocket*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4249
      start: 4243
    functionDepth: 5
    functionLinenumber: 4243
    functionLinenumberEnd: 4249
    functionName: ssl3_UpdateInnerHandshakeHashes
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - ssl3_UpdateHandshakeHashesInt
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_UpdateInnerHandshakeHashes(sslSocket *ss, const unsigned
      char *b,\n                                unsigned int l)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_UpdateHandshakeHashesInt
      Src: /src/nss/lib/ssl/ssl3con.c:4263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ss
    - b
    - l
    argTypes:
    - sslSocket*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4264
      start: 4260
    functionDepth: 5
    functionLinenumber: 4260
    functionLinenumberEnd: 4264
    functionName: ssl3_UpdateHandshakeHashes
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - ssl3_UpdateHandshakeHashesInt
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_UpdateHandshakeHashes(sslSocket *ss, const unsigned
      char *b, unsigned int l)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:4271,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:4271,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/ssl3con.c:4273,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:4275,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:4276,1
    - Dst: PK11_DigestOp
      Src: /src/nss/lib/ssl/ssl3con.c:4277,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:4279,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - ss
    - b
    - l
    argTypes:
    - sslSocket*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4282
      start: 4266
    functionDepth: 4
    functionLinenumber: 4266
    functionLinenumberEnd: 4282
    functionName: ssl3_UpdatePostHandshakeHashes
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 2
    functionsReached:
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    - PK11_DigestOp
    - PRINT_BUF
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_UpdatePostHandshakeHashes(sslSocket *ss, const unsigned
      char *b, unsigned int l)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:4292,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:4299,1
    - Dst: dtls_StageHandshakeMessage
      Src: /src/nss/lib/ssl/ssl3con.c:4300,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3con.c:4306,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:4307,1
    - Dst: ssl3_DecodeHandshakeType
      Src: /src/nss/lib/ssl/ssl3con.c:4307,1
    - Dst: ssl3_AppendHandshakeNumber
      Src: /src/nss/lib/ssl/ssl3con.c:4309,1
    - Dst: ssl3_AppendHandshakeNumber
      Src: /src/nss/lib/ssl/ssl3con.c:4313,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:4318,1
    - Dst: ssl3_AppendHandshakeNumberSuppressHash
      Src: /src/nss/lib/ssl/ssl3con.c:4328,1
    - Dst: ssl3_AppendHandshakeNumberSuppressHash
      Src: /src/nss/lib/ssl/ssl3con.c:4340,1
    - Dst: ssl3_AppendHandshakeNumberSuppressHash
      Src: /src/nss/lib/ssl/ssl3con.c:4346,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 4
    argNames:
    - ss
    - t
    - length
    - sendMessageSeqOut
    argTypes:
    - sslSocket*
    - SSLHandshakeType
    - PRUint32
    - PRUint64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4353
      start: 4289
    functionDepth: 4
    functionLinenumber: 4289
    functionLinenumberEnd: 4353
    functionName: ssl3_AppendHandshakeHeaderAndStashSeqNum
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - IS_DTLS
    - PORT_Assert
    - dtls_StageHandshakeMessage
    - SSL_TRC
    - SSL_GETPID
    - ssl3_AppendHandshakeNumber
    - ssl3_DecodeHandshakeType
    - ssl3_AppendHandshakeNumberSuppressHash
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_AppendHandshakeHeaderAndStashSeqNum(sslSocket *ss, SSLHandshakeType
      t, PRUint32 length, PRUint64 *sendMessageSeqOut)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_AppendHandshakeHeaderAndStashSeqNum
      Src: /src/nss/lib/ssl/ssl3con.c:4361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ss
    - t
    - length
    argTypes:
    - sslSocket*
    - SSLHandshakeType
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4362
      start: 4358
    functionDepth: 5
    functionLinenumber: 4358
    functionLinenumberEnd: 4362
    functionName: ssl3_AppendHandshakeHeader
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 12
    functionsReached:
    - ssl3_AppendHandshakeHeaderAndStashSeqNum
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_AppendHandshakeHeader(sslSocket *ss, SSLHandshakeType
      t, PRUint32 length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:4383,1
    - Dst: ssl_HaveRecvBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:4383,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:4384,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:4384,1
    - Dst: ssl3_DecodeError
      Src: /src/nss/lib/ssl/ssl3con.c:4387,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/ssl3con.c:4389,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/ssl3con.c:4390,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - ss
    - v
    - bytes
    - b
    - length
    argTypes:
    - sslSocket*
    - void*
    - PRUint32
    - PRUint8**
    - PRUint32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4394
      start: 4379
    functionDepth: 18
    functionLinenumber: 4379
    functionLinenumberEnd: 4394
    functionName: ssl3_ConsumeHandshake
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 3
    functionsReached:
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    - ssl3_DecodeError
    - PORT_Memcpy
    - PRINT_BUF
    - ssl_HaveRecvBufLock
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_ConsumeHandshake(sslSocket *ss, void *v, PRUint32 bytes,
      PRUint8 **b,\n                      PRUint32 *length)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:4410,1
    - Dst: ssl_HaveRecvBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:4410,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:4411,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:4411,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:4415,1
    - Dst: ssl3_DecodeError
      Src: /src/nss/lib/ssl/ssl3con.c:4420,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/ssl3con.c:4422,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 5
    argNames:
    - ss
    - num
    - bytes
    - b
    - length
    argTypes:
    - sslSocket*
    - PRUint64*
    - PRUint32
    - PRUint8**
    - PRUint32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4430
      start: 4403
    functionDepth: 18
    functionLinenumber: 4403
    functionLinenumberEnd: 4430
    functionName: ssl3_ConsumeHandshakeNumber64
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    - ssl3_DecodeError
    - PRINT_BUF
    - PORT_SetError
    - ssl_HaveRecvBufLock
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_ConsumeHandshakeNumber64(sslSocket *ss, PRUint64 *num,
      PRUint32 bytes,\n                              PRUint8 **b, PRUint32 *length)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:4439,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:4441,1
    - Dst: ssl3_ConsumeHandshakeNumber64
      Src: /src/nss/lib/ssl/ssl3con.c:4444,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - ss
    - num
    - bytes
    - b
    - length
    argTypes:
    - sslSocket*
    - PRUint32*
    - PRUint32
    - PRUint8**
    - PRUint32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4450
      start: 4432
    functionDepth: 19
    functionLinenumber: 4432
    functionLinenumberEnd: 4450
    functionName: ssl3_ConsumeHandshakeNumber
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 9
    functionsReached:
    - ssl3_ConsumeHandshakeNumber64
    - PORT_Assert
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_ConsumeHandshakeNumber(sslSocket *ss, PRUint32 *num,
      PRUint32 bytes,\n                            PRUint8 **b, PRUint32 *length)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:4473,1
    - Dst: ssl3_ConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/ssl3con.c:4477,1
    - Dst: ssl3_DecodeError
      Src: /src/nss/lib/ssl/ssl3con.c:4483,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 5
    argNames:
    - ss
    - i
    - bytes
    - b
    - length
    argTypes:
    - sslSocket*
    - SECItem*
    - PRUint32
    - PRUint8**
    - PRUint32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4491
      start: 4466
    functionDepth: 20
    functionLinenumber: 4466
    functionLinenumberEnd: 4491
    functionName: ssl3_ConsumeHandshakeVariable
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 11
    functionsReached:
    - PORT_Assert
    - ssl3_ConsumeHandshakeNumber
    - ssl3_DecodeError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_ConsumeHandshakeVariable(sslSocket *ss, SECItem *i,
      PRUint32 bytes,\n                              PRUint8 **b, PRUint32 *length)"
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - hashType
    argTypes:
    - SSLHashType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4513
      start: 4497
    functionDepth: 0
    functionLinenumber: 4497
    functionLinenumberEnd: 4513
    functionName: ssl3_HashTypeToOID
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag ssl3_HashTypeToOID(SSLHashType hashType)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:4531,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - authType
    argTypes:
    - SSLAuthType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4533
      start: 4515
    functionDepth: 0
    functionLinenumber: 4515
    functionLinenumberEnd: 4533
    functionName: ssl3_AuthTypeToOID
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag ssl3_AuthTypeToOID(SSLAuthType authType)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:4568,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 1
    argNames:
    - scheme
    argTypes:
    - SSLSignatureScheme
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4570
      start: 4535
    functionDepth: 0
    functionLinenumber: 4535
    functionLinenumberEnd: 4570
    functionName: ssl_SignatureSchemeToHashType
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 5
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: SSLHashType
    signature: SSLHashType ssl_SignatureSchemeToHashType(SSLSignatureScheme scheme)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_AuthTypeToOID
      Src: /src/nss/lib/ssl/ssl3con.c:4575,1
    - Dst: ssl_SignatureSchemeToAuthType
      Src: /src/nss/lib/ssl/ssl3con.c:4575,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - scheme
    - spkiOid
    argTypes:
    - SSLSignatureScheme
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4585
      start: 4572
    functionDepth: 1
    functionLinenumber: 4572
    functionLinenumberEnd: 4585
    functionName: ssl_SignatureSchemeMatchesSpkiOid
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - ssl3_AuthTypeToOID
    - ssl_SignatureSchemeToAuthType
    linkageType: ''
    returnType: PRBool
    signature: PRBool ssl_SignatureSchemeMatchesSpkiOid(SSLSignatureScheme scheme,
      SECOidTag spkiOid)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ssl_IsSupportedSignatureScheme
      Src: /src/nss/lib/ssl/ssl3con.c:4592,1
    - Dst: ssl_SignatureSchemeMatchesSpkiOid
      Src: /src/nss/lib/ssl/ssl3con.c:4599,1
    - Dst: ssl_SignatureSchemeToHashType
      Src: /src/nss/lib/ssl/ssl3con.c:4603,1
    - Dst: ssl_IsRsaPkcs1SignatureScheme
      Src: /src/nss/lib/ssl/ssl3con.c:4606,1
    - Dst: ssl_IsDsaSignatureScheme
      Src: /src/nss/lib/ssl/ssl3con.c:4609,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - scheme
    - spkiOid
    - isTls13
    argTypes:
    - SSLSignatureScheme
    - SECOidTag
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4617
      start: 4588
    functionDepth: 2
    functionLinenumber: 4588
    functionLinenumberEnd: 4617
    functionName: ssl_SignatureSchemeValid
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - ssl_IsRsaPkcs1SignatureScheme
    - ssl_IsSupportedSignatureScheme
    - ssl_IsDsaSignatureScheme
    - ssl_SignatureSchemeMatchesSpkiOid
    - ssl_SignatureSchemeToHashType
    linkageType: ''
    returnType: PRBool
    signature: "PRBool ssl_SignatureSchemeValid(SSLSignatureScheme scheme, SECOidTag
      spkiOid,\n                         PRBool isTls13)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_InitCheapArena
      Src: /src/nss/lib/ssl/ssl3con.c:4633,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/ssl/ssl3con.c:4634,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/ssl/ssl3con.c:4635,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/ssl/ssl3con.c:4644,1
    - Dst: PORT_DestroyCheapArena
      Src: /src/nss/lib/ssl/ssl3con.c:4658,1
    - Dst: PORT_DestroyCheapArena
      Src: /src/nss/lib/ssl/ssl3con.c:4662,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:4663,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 2
    argNames:
    - spki
    - scheme
    argTypes:
    - CERTSubjectPublicKeyInfo*
    - SSLSignatureScheme*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4665
      start: 4619
    functionDepth: 1
    functionLinenumber: 4619
    functionLinenumberEnd: 4665
    functionName: ssl_SignatureSchemeFromPssSpki
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - SECOID_GetAlgorithmTag
    - SEC_QuickDERDecodeItem
    - PORT_SetError
    - PORT_InitCheapArena
    - SEC_ASN1_GET
    - PORT_DestroyCheapArena
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_SignatureSchemeFromPssSpki(const CERTSubjectPublicKeyInfo
      *spki,\n                               SSLSignatureScheme *scheme)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SECKEY_ExtractPublicKey
      Src: /src/nss/lib/ssl/ssl3con.c:4674,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:4676,1
    - Dst: ssl_ECPubKey2NamedGroup
      Src: /src/nss/lib/ssl/ssl3con.c:4679,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/ssl/ssl3con.c:4680,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:4682,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:4698,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 2
    argNames:
    - spki
    - scheme
    argTypes:
    - CERTSubjectPublicKeyInfo*
    - SSLSignatureScheme*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4700
      start: 4667
    functionDepth: 4
    functionLinenumber: 4667
    functionLinenumberEnd: 4700
    functionName: ssl_SignatureSchemeFromEcSpki
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - SECKEY_ExtractPublicKey
    - PORT_SetError
    - SECKEY_DestroyPublicKey
    - ssl_ECPubKey2NamedGroup
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_SignatureSchemeFromEcSpki(const CERTSubjectPublicKeyInfo
      *spki,\n                              SSLSignatureScheme *scheme)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/ssl/ssl3con.c:4709,1
    - Dst: ssl_SignatureSchemeFromPssSpki
      Src: /src/nss/lib/ssl/ssl3con.c:4712,1
    - Dst: ssl_SignatureSchemeFromEcSpki
      Src: /src/nss/lib/ssl/ssl3con.c:4719,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - spki
    - isTls13
    - scheme
    argTypes:
    - CERTSubjectPublicKeyInfo*
    - PRBool
    - SSLSignatureScheme*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4724
      start: 4705
    functionDepth: 5
    functionLinenumber: 4705
    functionLinenumberEnd: 4724
    functionName: ssl_SignatureSchemeFromSpki
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - ssl_SignatureSchemeFromEcSpki
    - SECOID_GetAlgorithmTag
    - ssl_SignatureSchemeFromPssSpki
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_SignatureSchemeFromSpki(const CERTSubjectPublicKeyInfo
      *spki,\n                            PRBool isTls13, SSLSignatureScheme *scheme)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ss
    - scheme
    argTypes:
    - sslSocket*
    - SSLSignatureScheme
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4737
      start: 4727
    functionDepth: 0
    functionLinenumber: 4727
    functionLinenumberEnd: 4737
    functionName: ssl_SignatureSchemeEnabled
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool ssl_SignatureSchemeEnabled(const sslSocket *ss, SSLSignatureScheme
      scheme)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - keaDef
    - spkiOid
    argTypes:
    - ssl3KEADef*
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4755
      start: 4739
    functionDepth: 0
    functionLinenumber: 4739
    functionLinenumberEnd: 4755
    functionName: ssl_SignatureKeyMatchesSpkiOid
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool ssl_SignatureKeyMatchesSpkiOid(const ssl3KEADef *keaDef, SECOidTag
      spkiOid)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ssl_SignatureSchemeFromSpki
      Src: /src/nss/lib/ssl/ssl3con.c:4771,1
    - Dst: ssl_SignatureSchemeEnabled
      Src: /src/nss/lib/ssl/ssl3con.c:4778,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:4779,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/ssl/ssl3con.c:4785,1
    - Dst: ssl_SignatureKeyMatchesSpkiOid
      Src: /src/nss/lib/ssl/ssl3con.c:4790,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:4791,1
    - Dst: ssl_SignatureSchemeValid
      Src: /src/nss/lib/ssl/ssl3con.c:4798,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:4799,1
    - Dst: ssl_SignatureSchemeEnabled
      Src: /src/nss/lib/ssl/ssl3con.c:4803,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:4804,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - ss
    - scheme
    - spki
    argTypes:
    - sslSocket*
    - SSLSignatureScheme
    - CERTSubjectPublicKeyInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4809
      start: 4762
    functionDepth: 6
    functionLinenumber: 4762
    functionLinenumberEnd: 4809
    functionName: ssl_CheckSignatureSchemeConsistency
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 2
    functionsReached:
    - SECOID_GetAlgorithmTag
    - ssl_SignatureKeyMatchesSpkiOid
    - ssl_SignatureSchemeFromSpki
    - ssl_SignatureSchemeValid
    - PORT_SetError
    - ssl_SignatureSchemeEnabled
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_CheckSignatureSchemeConsistency(sslSocket *ss, SSLSignatureScheme
      scheme,\n                                    CERTSubjectPublicKeyInfo *spki)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: ssl_SchemePolicyOK
      Src: /src/nss/lib/ssl/ssl3con.c:4833,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 1
    argNames:
    - scheme
    argTypes:
    - SSLSignatureScheme
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4843
      start: 4811
    functionDepth: 2
    functionLinenumber: 4811
    functionLinenumberEnd: 4843
    functionName: ssl_IsSupportedSignatureScheme
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - ssl_SchemePolicyOK
    linkageType: ''
    returnType: PRBool
    signature: PRBool ssl_IsSupportedSignatureScheme(SSLSignatureScheme scheme)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - scheme
    argTypes:
    - SSLSignatureScheme
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4861
      start: 4845
    functionDepth: 0
    functionLinenumber: 4845
    functionLinenumberEnd: 4861
    functionName: ssl_IsRsaPssSignatureScheme
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool ssl_IsRsaPssSignatureScheme(SSLSignatureScheme scheme)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - scheme
    argTypes:
    - SSLSignatureScheme
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4876
      start: 4863
    functionDepth: 0
    functionLinenumber: 4863
    functionLinenumberEnd: 4876
    functionName: ssl_IsRsaeSignatureScheme
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool ssl_IsRsaeSignatureScheme(SSLSignatureScheme scheme)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - scheme
    argTypes:
    - SSLSignatureScheme
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4892
      start: 4878
    functionDepth: 0
    functionLinenumber: 4878
    functionLinenumberEnd: 4892
    functionName: ssl_IsRsaPkcs1SignatureScheme
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool ssl_IsRsaPkcs1SignatureScheme(SSLSignatureScheme scheme)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - scheme
    argTypes:
    - SSLSignatureScheme
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4908
      start: 4894
    functionDepth: 0
    functionLinenumber: 4894
    functionLinenumberEnd: 4908
    functionName: ssl_IsDsaSignatureScheme
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool ssl_IsDsaSignatureScheme(SSLSignatureScheme scheme)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:4940,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 1
    argNames:
    - scheme
    argTypes:
    - SSLSignatureScheme
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4943
      start: 4910
    functionDepth: 0
    functionLinenumber: 4910
    functionLinenumberEnd: 4943
    functionName: ssl_SignatureSchemeToAuthType
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 8
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: SSLAuthType
    signature: SSLAuthType ssl_SignatureSchemeToAuthType(SSLSignatureScheme scheme)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_ConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/ssl3con.c:4957,1
    - Dst: ssl_IsSupportedSignatureScheme
      Src: /src/nss/lib/ssl/ssl3con.c:4961,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:4962,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:4963,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - ss
    - b
    - length
    - out
    argTypes:
    - sslSocket*
    - PRUint8**
    - PRUint32*
    - SSLSignatureScheme*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4968
      start: 4950
    functionDepth: 20
    functionLinenumber: 4950
    functionLinenumberEnd: 4968
    functionName: ssl_ConsumeSignatureScheme
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 2
    functionsReached:
    - SSL3_SendAlert
    - PORT_SetError
    - ssl3_ConsumeHandshakeNumber
    - ssl_IsSupportedSignatureScheme
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_ConsumeSignatureScheme(sslSocket *ss, PRUint8 **b,\n
      \                          PRUint32 *length, SSLSignatureScheme *out)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PK11_CreateDigestContext
      Src: /src/nss/lib/ssl/ssl3con.c:4979,1
    - Dst: ssl3_HashTypeToOID
      Src: /src/nss/lib/ssl/ssl3con.c:4980,1
    - Dst: PK11_DigestBegin
      Src: /src/nss/lib/ssl/ssl3con.c:4985,1
    - Dst: PK11_DigestOp
      Src: /src/nss/lib/ssl/ssl3con.c:4987,1
    - Dst: PK11_DigestFinal
      Src: /src/nss/lib/ssl/ssl3con.c:4990,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/ssl/ssl3con.c:4996,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - buf
    - len
    - hashAlg
    - hashes
    argTypes:
    - unsigned char*
    - unsigned int
    - SSLHashType
    - SSL3Hashes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4998
      start: 4974
    functionDepth: 9
    functionLinenumber: 4974
    functionLinenumberEnd: 4998
    functionName: ssl3_ComputeHandshakeHash
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - PK11_DestroyContext
    - PK11_DigestOp
    - PK11_CreateDigestContext
    - ssl3_HashTypeToOID
    - PK11_DigestBegin
    - PK11_DigestFinal
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_ComputeHandshakeHash(unsigned char *buf, unsigned int
      len,\n                          SSLHashType hashAlg, SSL3Hashes *hashes)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:5021,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:5021,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:5023,1
    - Dst: PK11_SaveContextAlloc
      Src: /src/nss/lib/ssl/ssl3con.c:5036,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:5039,1
    - Dst: PK11_DigestFinal
      Src: /src/nss/lib/ssl/ssl3con.c:5043,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:5046,1
    - Dst: ssl3_GetSuitePrfHash
      Src: /src/nss/lib/ssl/ssl3con.c:5051,1
    - Dst: PK11_RestoreContext
      Src: /src/nss/lib/ssl/ssl3con.c:5055,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:5056,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/ssl/ssl3con.c:5060,1
    - Dst: ssl3_ComputeHandshakeHash
      Src: /src/nss/lib/ssl/ssl3con.c:5064,1
    - Dst: ssl3_GetSuitePrfHash
      Src: /src/nss/lib/ssl/ssl3con.c:5066,1
    - Dst: ssl_GetMacDefByAlg
      Src: /src/nss/lib/ssl/ssl3con.c:5076,1
    - Dst: ssl_GetMacDefByAlg
      Src: /src/nss/lib/ssl/ssl3con.c:5077,1
    - Dst: PK11_SaveContextAlloc
      Src: /src/nss/lib/ssl/ssl3con.c:5079,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:5082,1
    - Dst: PK11_SaveContextAlloc
      Src: /src/nss/lib/ssl/ssl3con.c:5088,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:5091,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:5102,1
    - Dst: PK11_DigestOp
      Src: /src/nss/lib/ssl/ssl3con.c:5113,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/ssl3con.c:5114,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/ssl3con.c:5117,1
    - Dst: PK11_DigestKey
      Src: /src/nss/lib/ssl/ssl3con.c:5119,1
    - Dst: PK11_DigestOp
      Src: /src/nss/lib/ssl/ssl3con.c:5120,1
    - Dst: PK11_DigestFinal
      Src: /src/nss/lib/ssl/ssl3con.c:5121,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:5122,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:5124,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/ssl3con.c:5129,1
    - Dst: PK11_DigestOp
      Src: /src/nss/lib/ssl/ssl3con.c:5132,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/ssl3con.c:5133,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/ssl3con.c:5136,1
    - Dst: PK11_DigestKey
      Src: /src/nss/lib/ssl/ssl3con.c:5138,1
    - Dst: PK11_DigestOp
      Src: /src/nss/lib/ssl/ssl3con.c:5139,1
    - Dst: PK11_DigestFinal
      Src: /src/nss/lib/ssl/ssl3con.c:5140,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:5141,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:5143,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/ssl3con.c:5148,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/ssl3con.c:5150,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/ssl3con.c:5151,1
    - Dst: PK11_DigestBegin
      Src: /src/nss/lib/ssl/ssl3con.c:5153,1
    - Dst: PK11_DigestKey
      Src: /src/nss/lib/ssl/ssl3con.c:5154,1
    - Dst: PK11_DigestOp
      Src: /src/nss/lib/ssl/ssl3con.c:5155,1
    - Dst: PK11_DigestOp
      Src: /src/nss/lib/ssl/ssl3con.c:5156,1
    - Dst: PK11_DigestFinal
      Src: /src/nss/lib/ssl/ssl3con.c:5158,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:5159,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:5161,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/ssl3con.c:5166,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/ssl3con.c:5169,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/ssl3con.c:5170,1
    - Dst: PK11_DigestBegin
      Src: /src/nss/lib/ssl/ssl3con.c:5172,1
    - Dst: PK11_DigestKey
      Src: /src/nss/lib/ssl/ssl3con.c:5173,1
    - Dst: PK11_DigestOp
      Src: /src/nss/lib/ssl/ssl3con.c:5174,1
    - Dst: PK11_DigestOp
      Src: /src/nss/lib/ssl/ssl3con.c:5175,1
    - Dst: PK11_DigestFinal
      Src: /src/nss/lib/ssl/ssl3con.c:5177,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:5178,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:5180,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/ssl3con.c:5185,1
    - Dst: PK11_RestoreContext
      Src: /src/nss/lib/ssl/ssl3con.c:5191,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:5193,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/ssl/ssl3con.c:5197,1
    - Dst: PK11_RestoreContext
      Src: /src/nss/lib/ssl/ssl3con.c:5201,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:5203,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/ssl/ssl3con.c:5207,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 154
    argCount: 4
    argNames:
    - ss
    - spec
    - hashes
    - sender
    argTypes:
    - sslSocket*
    - ssl3CipherSpec*
    - SSL3Hashes*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5212
      start: 5009
    functionDepth: 10
    functionLinenumber: 5009
    functionLinenumberEnd: 5212
    functionName: ssl3_ComputeHandshakeHashes
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    - PORT_ZFree
    - PK11_DigestOp
    - PK11_SaveContextAlloc
    - ssl_GetMacDefByAlg
    - PRINT_BUF
    - PK11_RestoreContext
    - PORT_SetError
    - ssl_MapLowLevelError
    - ssl3_ComputeHandshakeHash
    - ssl3_GetSuitePrfHash
    - PK11_DigestKey
    - PK11_DigestBegin
    - PK11_DigestFinal
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_ComputeHandshakeHashes(sslSocket *ss,\n                            ssl3CipherSpec
      *spec, /* uses ->master_secret */\n                            SSL3Hashes *hashes,
      \  /* output goes here. */\n                            PRUint32 sender)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5223
      start: 5220
    functionDepth: 0
    functionLinenumber: 5220
    functionLinenumberEnd: 5223
    functionName: CHTYPE
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHTYPE(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHTYPE
      Src: /src/nss/lib/ssl/ssl3con.c:5228,1
    - Dst: CHTYPE
      Src: /src/nss/lib/ssl/ssl3con.c:5229,1
    - Dst: CHTYPE
      Src: /src/nss/lib/ssl/ssl3con.c:5230,1
    - Dst: CHTYPE
      Src: /src/nss/lib/ssl/ssl3con.c:5231,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:5233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - type
    argTypes:
    - sslClientHelloType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5235
      start: 5224
    functionDepth: 1
    functionLinenumber: 5224
    functionLinenumberEnd: 5235
    functionName: ssl_ClientHelloTypeName
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - CHTYPE
    linkageType: ''
    returnType: char
    signature: 'char *

      ssl_ClientHelloTypeName(sslClientHelloType type)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ss
    - buf
    argTypes:
    - sslSocket*
    - PRUint8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5249
      start: 5240
    functionDepth: 0
    functionLinenumber: 5240
    functionLinenumberEnd: 5249
    functionName: ssl_MakeFakeSid
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ssl_MakeFakeSid(sslSocket *ss, PRUint8 *buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_GetSpecWriteLock
      Src: /src/nss/lib/ssl/ssl3con.c:5255,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:5256,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:5259,1
    - Dst: PR_MIN
      Src: /src/nss/lib/ssl/ssl3con.c:5275,1
    - Dst: ssl_ReleaseSpecWriteLock
      Src: /src/nss/lib/ssl/ssl3con.c:5278,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ss
    - spec
    argTypes:
    - sslSocket*
    - ssl3CipherSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5279
      start: 5252
    functionDepth: 1
    functionLinenumber: 5252
    functionLinenumberEnd: 5279
    functionName: ssl_SetClientHelloSpecVersion
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - IS_DTLS
    - PORT_Assert
    - PR_MIN
    - ssl_GetSpecWriteLock
    - ssl_ReleaseSpecWriteLock
    linkageType: ''
    returnType: void
    signature: void ssl_SetClientHelloSpecVersion(sslSocket *ss, ssl3CipherSpec *spec)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:5287,1
    - Dst: sslBuffer_InsertNumber
      Src: /src/nss/lib/ssl/ssl3con.c:5290,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:5294,1
    - Dst: sslBuffer_InsertNumber
      Src: /src/nss/lib/ssl/ssl3con.c:5298,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - ss
    - preamble
    - extensions
    argTypes:
    - sslSocket*
    - sslBuffer*
    - sslBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5305
      start: 5281
    functionDepth: 1
    functionLinenumber: 5281
    functionLinenumberEnd: 5305
    functionName: ssl3_InsertChHeaderSize
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - IS_DTLS
    - sslBuffer_InsertNumber
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_InsertChHeaderSize(const sslSocket *ss, sslBuffer *preamble,
      const sslBuffer *extensions)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: sslBuffer_Skip
      Src: /src/nss/lib/ssl/ssl3con.c:5315,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3con.c:5322,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3con.c:5329,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/ssl3con.c:5336,1
    - Dst: ssl3_config_match
      Src: /src/nss/lib/ssl/ssl3con.c:5340,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3con.c:5341,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3con.c:5353,1
    - Dst: SSL_ALL_VERSIONS_DISABLED
      Src: /src/nss/lib/ssl/ssl3con.c:5360,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/ssl3con.c:5361,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:5362,1
    - Dst: sslBuffer_InsertLength
      Src: /src/nss/lib/ssl/ssl3con.c:5366,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 3
    argNames:
    - ss
    - fallbackSCSV
    - buf
    argTypes:
    - sslSocket*
    - PRBool
    - sslBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5367
      start: 5307
    functionDepth: 3
    functionLinenumber: 5307
    functionLinenumberEnd: 5367
    functionName: ssl3_AppendCipherSuites
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - SSL_BUFFER_LEN
    - sslBuffer_AppendNumber
    - sslBuffer_InsertLength
    - PORT_SetError
    - SSL_ALL_VERSIONS_DISABLED
    - ssl3_config_match
    - sslBuffer_Skip
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_AppendCipherSuites(sslSocket *ss, PRBool fallbackSCSV,
      sslBuffer *buf)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:5377,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3con.c:5381,1
    - Dst: sslBuffer_Skip
      Src: /src/nss/lib/ssl/ssl3con.c:5386,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:5391,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3con.c:5394,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3con.c:5401,1
    - Dst: sslBuffer_Skip
      Src: /src/nss/lib/ssl/ssl3con.c:5407,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:5416,1
    - Dst: PR_MIN
      Src: /src/nss/lib/ssl/ssl3con.c:5419,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:5420,1
    - Dst: dtls_TLSVersionToDTLSVersion
      Src: /src/nss/lib/ssl/ssl3con.c:5421,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3con.c:5422,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3con.c:5424,1
    - Dst: sslBuffer_Append
      Src: /src/nss/lib/ssl/ssl3con.c:5430,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/ssl3con.c:5436,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:5438,1
    - Dst: ssl_MakeFakeSid
      Src: /src/nss/lib/ssl/ssl3con.c:5442,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/ssl3con.c:5443,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3con.c:5445,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:5451,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/ssl3con.c:5454,1
    - Dst: ssl3_AppendCipherSuites
      Src: /src/nss/lib/ssl/ssl3con.c:5462,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3con.c:5468,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3con.c:5472,1
    - Dst: ssl3_InsertChHeaderSize
      Src: /src/nss/lib/ssl/ssl3con.c:5477,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/ssl3con.c:5485,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 94
    argCount: 7
    argNames:
    - ss
    - sid
    - realSid
    - version
    - isEchInner
    - extensions
    - preamble
    argTypes:
    - sslSocket*
    - sslSessionID*
    - PRBool
    - PRUint16
    - PRBool
    - sslBuffer*
    - sslBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5487
      start: 5369
    functionDepth: 4
    functionLinenumber: 5369
    functionLinenumberEnd: 5487
    functionName: ssl3_CreateClientHelloPreamble
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - IS_DTLS
    - PORT_Assert
    - PR_MIN
    - sslBuffer_AppendVariable
    - sslBuffer_AppendNumber
    - dtls_TLSVersionToDTLSVersion
    - ssl3_AppendCipherSuites
    - sslBuffer_Skip
    - sslBuffer_Clear
    - ssl_MakeFakeSid
    - ssl3_InsertChHeaderSize
    - sslBuffer_Append
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_CreateClientHelloPreamble(sslSocket *ss, const sslSessionID
      *sid,\n                               PRBool realSid, PRUint16 version, PRBool
      isEchInner,\n                               const sslBuffer *extensions, sslBuffer
      *preamble)"
  - BBCount: 68
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3con.c:5514,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:5514,1
    - Dst: ssl_ClientHelloTypeName
      Src: /src/nss/lib/ssl/ssl3con.c:5515,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:5517,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:5517,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:5518,1
    - Dst: ssl_HaveXmitBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:5518,1
    - Dst: SSL_ALL_VERSIONS_DISABLED
      Src: /src/nss/lib/ssl/ssl3con.c:5521,1
    - Dst: PR_NOT_REACHED
      Src: /src/nss/lib/ssl/ssl3con.c:5522,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:5523,1
    - Dst: ssl3_RestartHandshakeHashes
      Src: /src/nss/lib/ssl/ssl3con.c:5530,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:5532,1
    - Dst: ssl_SetClientHelloSpecVersion
      Src: /src/nss/lib/ssl/ssl3con.c:5535,1
    - Dst: ssl3_ResetExtensionData
      Src: /src/nss/lib/ssl/ssl3con.c:5538,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:5541,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:5541,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/ssl3con.c:5542,1
    - Dst: ssl3_config_match_init
      Src: /src/nss/lib/ssl/ssl3con.c:5546,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:5555,1
    - Dst: SSL_ALL_VERSIONS_DISABLED
      Src: /src/nss/lib/ssl/ssl3con.c:5556,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:5557,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:5563,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:5572,1
    - Dst: ssl_ReferenceSID
      Src: /src/nss/lib/ssl/ssl3con.c:5573,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3con.c:5574,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:5575,1
    - Dst: ssl_ReferenceSID
      Src: /src/nss/lib/ssl/ssl3con.c:5579,1
    - Dst: ssl_LookupSID
      Src: /src/nss/lib/ssl/ssl3con.c:5586,1
    - Dst: ssl_Time
      Src: /src/nss/lib/ssl/ssl3con.c:5586,1
    - Dst: tls13_ResumptionCompatible
      Src: /src/nss/lib/ssl/ssl3con.c:5601,1
    - Dst: ssl_LookupCipherSuiteCfg
      Src: /src/nss/lib/ssl/ssl3con.c:5607,1
    - Dst: ssl3_config_match
      Src: /src/nss/lib/ssl/ssl3con.c:5610,1
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/lib/ssl/ssl3con.c:5616,1
    - Dst: SECMOD_LookupSlot
      Src: /src/nss/lib/ssl/ssl3con.c:5627,1
    - Dst: PK11_IsPresent
      Src: /src/nss/lib/ssl/ssl3con.c:5634,1
    - Dst: PK11_GetWrapKey
      Src: /src/nss/lib/ssl/ssl3con.c:5635,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/ssl3con.c:5643,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/ssl/ssl3con.c:5644,1
    - Dst: ssl3_ClientAuthTokenPresent
      Src: /src/nss/lib/ssl/ssl3con.c:5652,1
    - Dst: SSL_AtomicIncrementLong
      Src: /src/nss/lib/ssl/ssl3con.c:5694,1
    - Dst: ssl_UncacheSessionID
      Src: /src/nss/lib/ssl/ssl3con.c:5695,1
    - Dst: ssl_FreeSID
      Src: /src/nss/lib/ssl/ssl3con.c:5696,1
    - Dst: SSL_AtomicIncrementLong
      Src: /src/nss/lib/ssl/ssl3con.c:5703,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/ssl3con.c:5705,1
    - Dst: SSL_AtomicIncrementLong
      Src: /src/nss/lib/ssl/ssl3con.c:5710,1
    - Dst: ssl3_NewSessionID
      Src: /src/nss/lib/ssl/ssl3con.c:5724,1
    - Dst: ssl_GetSpecWriteLock
      Src: /src/nss/lib/ssl/ssl3con.c:5733,1
    - Dst: ssl_ReleaseSpecWriteLock
      Src: /src/nss/lib/ssl/ssl3con.c:5738,1
    - Dst: ssl_FreeSID
      Src: /src/nss/lib/ssl/ssl3con.c:5740,1
    - Dst: PR_RWLock_Rlock
      Src: /src/nss/lib/ssl/ssl3con.c:5762,1
    - Dst: ssl3_GetNewRandom
      Src: /src/nss/lib/ssl/ssl3con.c:5768,1
    - Dst: tls13_SetupClientHello
      Src: /src/nss/lib/ssl/ssl3con.c:5775,1
    - Dst: tls_ClientHelloExtensionPermutationSetup
      Src: /src/nss/lib/ssl/ssl3con.c:5785,1
    - Dst: ssl_ConstructExtensions
      Src: /src/nss/lib/ssl/ssl3con.c:5792,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:5798,1
    - Dst: ssl3_DisableNonDTLSSuites
      Src: /src/nss/lib/ssl/ssl3con.c:5799,1
    - Dst: ssl3_CreateClientHelloPreamble
      Src: /src/nss/lib/ssl/ssl3con.c:5802,1
    - Dst: tls13_MaybeGreaseEch
      Src: /src/nss/lib/ssl/ssl3con.c:5810,1
    - Dst: ssl_InsertPaddingExtension
      Src: /src/nss/lib/ssl/ssl3con.c:5814,1
    - Dst: ssl3_InsertChHeaderSize
      Src: /src/nss/lib/ssl/ssl3con.c:5819,1
    - Dst: ssl3_ExtensionAdvertised
      Src: /src/nss/lib/ssl/ssl3con.c:5825,1
    - Dst: tls13_WriteExtensionsWithBinder
      Src: /src/nss/lib/ssl/ssl3con.c:5826,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3con.c:5828,1
    - Dst: sslBuffer_AppendBuffer
      Src: /src/nss/lib/ssl/ssl3con.c:5832,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:5842,1
    - Dst: dtls_StageHandshakeMessage
      Src: /src/nss/lib/ssl/ssl3con.c:5843,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:5852,1
    - Dst: ssl3_AppendHandshakeSuppressHash
      Src: /src/nss/lib/ssl/ssl3con.c:5853,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:5858,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/ssl3con.c:5860,1
    - Dst: sslBuffer_Append
      Src: /src/nss/lib/ssl/ssl3con.c:5862,1
    - Dst: ssl3_AppendHandshake
      Src: /src/nss/lib/ssl/ssl3con.c:5865,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:5869,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:5869,1
    - Dst: tls13_ConstructClientHelloWithEch
      Src: /src/nss/lib/ssl/ssl3con.c:5870,1
    - Dst: ssl3_UpdateDefaultHandshakeHashes
      Src: /src/nss/lib/ssl/ssl3con.c:5874,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:5879,1
    - Dst: dtls_StageHandshakeMessage
      Src: /src/nss/lib/ssl/ssl3con.c:5880,1
    - Dst: ssl3_AppendHandshakeSuppressHash
      Src: /src/nss/lib/ssl/ssl3con.c:5887,1
    - Dst: PR_RWLock_Unlock
      Src: /src/nss/lib/ssl/ssl3con.c:5895,1
    - Dst: SSL_AtomicIncrementLong
      Src: /src/nss/lib/ssl/ssl3con.c:5899,1
    - Dst: ssl3_FlushHandshake
      Src: /src/nss/lib/ssl/ssl3con.c:5910,1
    - Dst: tls13_MaybeDo0RTTHandshake
      Src: /src/nss/lib/ssl/ssl3con.c:5916,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/ssl3con.c:5923,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/ssl3con.c:5924,1
    - Dst: PR_RWLock_Unlock
      Src: /src/nss/lib/ssl/ssl3con.c:5929,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/ssl3con.c:5931,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/ssl3con.c:5932,1
    CyclomaticComplexity: 104
    EdgeCount: 104
    ICount: 278
    argCount: 2
    argNames:
    - ss
    - type
    argTypes:
    - sslSocket*
    - sslClientHelloType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5934
      start: 5501
    functionDepth: 14
    functionLinenumber: 5501
    functionLinenumberEnd: 5934
    functionName: ssl3_SendClientHello
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 3
    functionsReached:
    - ssl_InsertPaddingExtension
    - ssl3_DisableNonDTLSSuites
    - tls13_MaybeGreaseEch
    - ssl3_config_match
    - ssl3_config_match_init
    - ssl3_NewSessionID
    - tls13_ResumptionCompatible
    - ssl3_ResetExtensionData
    - sslBuffer_Append
    - tls13_MaybeDo0RTTHandshake
    - ssl_ClientHelloTypeName
    - PR_NOT_REACHED
    - tls13_SetupClientHello
    - ssl_ConstructExtensions
    - ssl_FreeSID
    - tls13_WriteExtensionsWithBinder
    - ssl3_AppendHandshake
    - ssl3_ExtensionAdvertised
    - PORT_SetError
    - SSL_ALL_VERSIONS_DISABLED
    - ssl3_FlushHandshake
    - ssl3_CreateClientHelloPreamble
    - SECITEM_FreeItem
    - PR_CLIST_IS_EMPTY
    - IS_DTLS
    - PORT_Assert
    - dtls_StageHandshakeMessage
    - ssl_HaveSSL3HandshakeLock
    - ssl_Time
    - ssl3_GetNewRandom
    - ssl_GetSpecWriteLock
    - ssl3_AppendHandshakeSuppressHash
    - SECMOD_LookupSlot
    - PRINT_BUF
    - ssl3_RestartHandshakeHashes
    - PR_RWLock_Unlock
    - ssl_ReferenceSID
    - SSL_AtomicIncrementLong
    - sslBuffer_Clear
    - ssl_LookupSID
    - PK11_FreeSlot
    - PR_RWLock_Rlock
    - tls13_ConstructClientHelloWithEch
    - ssl_LookupCipherSuiteCfg
    - ssl_HaveXmitBufLock
    - SSL_TRC
    - PK11_IsPresent
    - SSL_GETPID
    - ssl3_ClientAuthTokenPresent
    - ssl_UncacheSessionID
    - tls_ClientHelloExtensionPermutationSetup
    - sslBuffer_AppendNumber
    - sslBuffer_AppendBuffer
    - PK11_GetWrapKey
    - ssl_ReleaseSpecWriteLock
    - ssl3_UpdateDefaultHandshakeHashes
    - ssl3_InsertChHeaderSize
    - ssl_SetClientHelloSpecVersion
    - PK11_FreeSymKey
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_SendClientHello(sslSocket *ss, sslClientHelloType type)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3con.c:5946,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:5947,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:5949,1
    - Dst: ssl_HaveRecvBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:5949,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:5950,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:5950,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:5951,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:5956,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:5957,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:5961,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:5962,1
    - Dst: ssl_UncacheSessionID
      Src: /src/nss/lib/ssl/ssl3con.c:5967,1
    - Dst: ssl_FreeSID
      Src: /src/nss/lib/ssl/ssl3con.c:5968,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:5972,1
    - Dst: dtls_RehandshakeCleanup
      Src: /src/nss/lib/ssl/ssl3con.c:5973,1
    - Dst: ssl_GetXmitBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:5976,1
    - Dst: ssl3_SendClientHello
      Src: /src/nss/lib/ssl/ssl3con.c:5977,1
    - Dst: ssl_ReleaseXmitBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:5978,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5981
      start: 5940
    functionDepth: 17
    functionLinenumber: 5940
    functionLinenumberEnd: 5981
    functionName: ssl3_HandleHelloRequest
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - SSL3_SendAlert
    - PORT_Assert
    - IS_DTLS
    - ssl_HaveSSL3HandshakeLock
    - ssl_GetXmitBufLock
    - ssl3_SendClientHello
    - ssl_UncacheSessionID
    - SSL_TRC
    - SSL_GETPID
    - ssl_FreeSID
    - ssl_ReleaseXmitBufLock
    - PORT_SetError
    - dtls_RehandshakeCleanup
    - ssl_HaveRecvBufLock
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_HandleHelloRequest(sslSocket *ss)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:6011,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:6012,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - mech
    - wrapMechIndex
    argTypes:
    - CK_MECHANISM_TYPE
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6014
      start: 6001
    functionDepth: 0
    functionLinenumber: 6001
    functionLinenumberEnd: 6014
    functionName: ssl_FindIndexByWrapMechanism
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl_FindIndexByWrapMechanism(CK_MECHANISM_TYPE mech, unsigned
      int *wrapMechIndex)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CERT_IS
      Src: /src/nss/lib/ssl/ssl3con.c:6035,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:6041,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - serverCert
    - wrapKeyIndex
    argTypes:
    - sslServerCert*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6043
      start: 6030
    functionDepth: 1
    functionLinenumber: 6030
    functionLinenumberEnd: 6043
    functionName: ssl_FindIndexByWrapKey
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - SSL_CERT_IS
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl_FindIndexByWrapKey(const sslServerCert *serverCert, unsigned
      int *wrapKeyIndex)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:6060,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:6061,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:6069,1
    - Dst: PK11_PubUnwrapSymKey
      Src: /src/nss/lib/ssl/ssl3con.c:6076,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:6096,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:6103,1
    - Dst: PK11_PubDeriveWithKDF
      Src: /src/nss/lib/ssl/ssl3con.c:6120,1
    - Dst: PK11_UnwrapSymKey
      Src: /src/nss/lib/ssl/ssl3con.c:6128,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/ssl3con.c:6131,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:6136,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:6137,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 51
    argCount: 5
    argNames:
    - pWswk
    - svrPrivKey
    - wrapKeyIndex
    - masterWrapMech
    - pwArg
    argTypes:
    - SSLWrappedSymWrappingKey*
    - SECKEYPrivateKey*
    - unsigned int
    - CK_MECHANISM_TYPE
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6142
      start: 6045
    functionDepth: 12
    functionLinenumber: 6045
    functionLinenumberEnd: 6142
    functionName: ssl_UnwrapSymWrappingKey
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PK11_PubUnwrapSymKey
    - PK11_UnwrapSymKey
    - PORT_SetError
    - PK11_FreeSymKey
    - PK11_PubDeriveWithKDF
    linkageType: ''
    returnType: PK11SymKey
    signature: "PK11SymKey *\nssl_UnwrapSymWrappingKey(\n    SSLWrappedSymWrappingKey
      *pWswk,\n    SECKEYPrivateKey *svrPrivKey,\n    unsigned int wrapKeyIndex,\n
      \   CK_MECHANISM_TYPE masterWrapMech,\n    void *pwArg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/ssl/ssl3con.c:6155,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:6159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6161
      start: 6151
    functionDepth: 1
    functionLinenumber: 6151
    functionLinenumberEnd: 6161
    functionName: ssl_FreeSymWrapKeysLock
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    - PZ_DestroyLock
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl_FreeSymWrapKeysLock(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/ssl/ssl3con.c:6170,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/ssl3con.c:6177,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/ssl/ssl3con.c:6183,1
    - Dst: ssl_FreeSessionCacheLocks
      Src: /src/nss/lib/ssl/ssl3con.c:6184,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6186
      start: 6163
    functionDepth: 4
    functionLinenumber: 6163
    functionLinenumberEnd: 6186
    functionName: SSL3_ShutdownServerCache
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - ssl_FreeSessionCacheLocks
    - PZ_Lock
    - PZ_Unlock
    - PK11_FreeSymKey
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSL3_ShutdownServerCache(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PZ_NewLock
      Src: /src/nss/lib/ssl/ssl3con.c:6191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6193
      start: 6188
    functionDepth: 1
    functionLinenumber: 6188
    functionLinenumberEnd: 6193
    functionName: ssl_InitSymWrapKeysLock
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - PZ_NewLock
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl_InitSymWrapKeysLock(void)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:6228,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:6229,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:6230,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:6231,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:6235,1
    - Dst: ssl_FindIndexByWrapKey
      Src: /src/nss/lib/ssl/ssl3con.c:6239,1
    - Dst: ssl_FindIndexByWrapMechanism
      Src: /src/nss/lib/ssl/ssl3con.c:6243,1
    - Dst: ssl_InitSessionCacheLocks
      Src: /src/nss/lib/ssl/ssl3con.c:6251,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/ssl/ssl3con.c:6253,1
    - Dst: PK11_VerifyKeyOK
      Src: /src/nss/lib/ssl/ssl3con.c:6257,1
    - Dst: PK11_ReferenceSymKey
      Src: /src/nss/lib/ssl/ssl3con.c:6258,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/ssl3con.c:6262,1
    - Dst: ssl_GetWrappingKey
      Src: /src/nss/lib/ssl/ssl3con.c:6268,1
    - Dst: ssl_UnwrapSymWrappingKey
      Src: /src/nss/lib/ssl/ssl3con.c:6272,1
    - Dst: PK11_GetBestKeyLength
      Src: /src/nss/lib/ssl/ssl3con.c:6282,1
    - Dst: PK11_KeyGen
      Src: /src/nss/lib/ssl/ssl3con.c:6286,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/ssl/ssl3con.c:6295,1
    - Dst: SECKEY_PublicKeyStrength
      Src: /src/nss/lib/ssl/ssl3con.c:6299,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:6302,1
    - Dst: PK11_PubWrapSymKey
      Src: /src/nss/lib/ssl/ssl3con.c:6312,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:6330,1
    - Dst: SECKEY_GetPublicKeyType
      Src: /src/nss/lib/ssl/ssl3con.c:6330,1
    - Dst: SECKEY_GetPublicKeyType
      Src: /src/nss/lib/ssl/ssl3con.c:6331,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:6333,1
    - Dst: SECKEY_CreateECPrivateKey
      Src: /src/nss/lib/ssl/ssl3con.c:6338,1
    - Dst: SECKEY_PublicKeyStrengthInBits
      Src: /src/nss/lib/ssl/ssl3con.c:6347,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:6350,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:6356,1
    - Dst: PK11_PubDeriveWithKDF
      Src: /src/nss/lib/ssl/ssl3con.c:6362,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/ssl3con.c:6373,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/ssl3con.c:6377,1
    - Dst: PK11_WrapSymKey
      Src: /src/nss/lib/ssl/ssl3con.c:6387,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/lib/ssl/ssl3con.c:6401,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/ssl/ssl3con.c:6403,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/ssl3con.c:6405,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:6415,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:6419,1
    - Dst: ssl_SetWrappingKey
      Src: /src/nss/lib/ssl/ssl3con.c:6432,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/ssl3con.c:6438,1
    - Dst: ssl_UnwrapSymWrappingKey
      Src: /src/nss/lib/ssl/ssl3con.c:6441,1
    - Dst: PK11_ReferenceSymKey
      Src: /src/nss/lib/ssl/ssl3con.c:6447,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/ssl/ssl3con.c:6452,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 150
    argCount: 4
    argNames:
    - ss
    - masterSecretSlot
    - masterWrapMech
    - pwArg
    argTypes:
    - sslSocket*
    - PK11SlotInfo*
    - CK_MECHANISM_TYPE
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6454
      start: 6204
    functionDepth: 13
    functionLinenumber: 6204
    functionLinenumberEnd: 6454
    functionName: ssl3_GetWrappingKey
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - SECKEY_PublicKeyStrengthInBits
    - ssl_FindIndexByWrapKey
    - ssl_GetWrappingKey
    - PK11_PubDeriveWithKDF
    - PZ_Unlock
    - SECKEY_DestroyPublicKey
    - PORT_Memcpy
    - ssl_SetWrappingKey
    - PORT_SetError
    - PK11_VerifyKeyOK
    - PK11_WrapSymKey
    - PK11_GetBestKeyLength
    - PK11_KeyGen
    - PK11_ReferenceSymKey
    - SECKEY_PublicKeyStrength
    - PORT_Assert
    - ssl_FindIndexByWrapMechanism
    - SECKEY_DestroyPrivateKey
    - ssl_InitSessionCacheLocks
    - ssl_MapLowLevelError
    - SECKEY_GetPublicKeyType
    - PK11_PubWrapSymKey
    - SECKEY_CreateECPrivateKey
    - PZ_Lock
    - ssl_UnwrapSymWrappingKey
    - PORT_Memset
    - PK11_FreeSymKey
    linkageType: ''
    returnType: PK11SymKey
    signature: "PK11SymKey *\nssl3_GetWrappingKey(sslSocket *ss,\n                    PK11SlotInfo
      *masterSecretSlot,\n                    CK_MECHANISM_TYPE masterWrapMech,\n
      \                   void *pwArg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - out
    - in
    - length
    argTypes:
    - char*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6469
      start: 6459
    functionDepth: 0
    functionLinenumber: 6459
    functionLinenumberEnd: 6469
    functionName: hexEncode
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void hexEncode(char *out, const unsigned char *in, unsigned int length)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:6481,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:6481,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:6482,1
    - Dst: ssl_HaveXmitBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:6482,1
    - Dst: ssl_GetSpecWriteLock
      Src: /src/nss/lib/ssl/ssl3con.c:6485,1
    - Dst: ssl3_GenerateRSAPMS
      Src: /src/nss/lib/ssl/ssl3con.c:6488,1
    - Dst: ssl_ReleaseSpecWriteLock
      Src: /src/nss/lib/ssl/ssl3con.c:6489,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:6491,1
    - Dst: SECKEY_PublicKeyStrengthInBits
      Src: /src/nss/lib/ssl/ssl3con.c:6496,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:6500,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:6501,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/ssl/ssl3con.c:6504,1
    - Dst: PK11_PubWrapSymKey
      Src: /src/nss/lib/ssl/ssl3con.c:6510,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:6512,1
    - Dst: PK11_ExtractKeyValue
      Src: /src/nss/lib/ssl/ssl3con.c:6518,1
    - Dst: PK11_GetKeyData
      Src: /src/nss/lib/ssl/ssl3con.c:6520,1
    - Dst: ssl_PrintBuf
      Src: /src/nss/lib/ssl/ssl3con.c:6522,1
    - Dst: ssl3_AppendHandshakeHeader
      Src: /src/nss/lib/ssl/ssl3con.c:6529,1
    - Dst: ssl3_AppendHandshakeVariable
      Src: /src/nss/lib/ssl/ssl3con.c:6536,1
    - Dst: ssl3_AppendHandshake
      Src: /src/nss/lib/ssl/ssl3con.c:6538,1
    - Dst: ssl3_InitPendingCipherSpecs
      Src: /src/nss/lib/ssl/ssl3con.c:6544,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/ssl3con.c:6545,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:6549,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/ssl3con.c:6557,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/ssl3con.c:6560,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 69
    argCount: 2
    argNames:
    - ss
    - svrPubKey
    argTypes:
    - sslSocket*
    - SECKEYPublicKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6563
      start: 6473
    functionDepth: 17
    functionLinenumber: 6473
    functionLinenumberEnd: 6563
    functionName: ssl3_SendRSAClientKeyExchange
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - SECKEY_PublicKeyStrengthInBits
    - SSL3_SendAlert
    - ssl3_AppendHandshake
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    - ssl_GetSpecWriteLock
    - PK11_ExtractKeyValue
    - ssl3_AppendHandshakeHeader
    - ssl_MapLowLevelError
    - PK11_GetKeyData
    - ssl_PrintBuf
    - ssl3_GenerateRSAPMS
    - PORT_Alloc
    - PK11_PubWrapSymKey
    - ssl3_InitPendingCipherSpecs
    - ssl_HaveXmitBufLock
    - PORT_Free
    - ssl_ReleaseSpecWriteLock
    - ssl3_AppendHandshakeVariable
    - PK11_FreeSymKey
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_SendRSAClientKeyExchange(sslSocket *ss, SECKEYPublicKey
      *svrPubKey)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3con.c:6575,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3con.c:6581,1
    - Dst: sslBuffer_Append
      Src: /src/nss/lib/ssl/ssl3con.c:6587,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - buf
    - pubKey
    - appendLength
    argTypes:
    - sslBuffer*
    - SECKEYPublicKey*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6593
      start: 6567
    functionDepth: 1
    functionLinenumber: 6567
    functionLinenumberEnd: 6593
    functionName: ssl_AppendPaddedDHKeyShare
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - sslBuffer_Append
    - sslBuffer_AppendNumber
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_AppendPaddedDHKeyShare(sslBuffer *buf, const SECKEYPublicKey
      *pubKey,\n                           PRBool appendLength)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: SSL_BUFFER
      Src: /src/nss/lib/ssl/ssl3con.c:6613,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:6615,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:6615,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:6616,1
    - Dst: ssl_HaveXmitBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:6616,1
    - Dst: SECKEY_GetPublicKeyType
      Src: /src/nss/lib/ssl/ssl3con.c:6622,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:6623,1
    - Dst: ssl_ValidateDHENamedGroup
      Src: /src/nss/lib/ssl/ssl3con.c:6628,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:6634,1
    - Dst: ssl_CreateDHEKeyPair
      Src: /src/nss/lib/ssl/ssl3con.c:6647,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:6649,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/ssl3con.c:6653,1
    - Dst: PK11_PubDerive
      Src: /src/nss/lib/ssl/ssl3con.c:6663,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:6668,1
    - Dst: ssl3_AppendHandshakeHeader
      Src: /src/nss/lib/ssl/ssl3con.c:6673,1
    - Dst: ssl_AppendPaddedDHKeyShare
      Src: /src/nss/lib/ssl/ssl3con.c:6678,1
    - Dst: ssl3_AppendBufferToHandshake
      Src: /src/nss/lib/ssl/ssl3con.c:6682,1
    - Dst: ssl3_InitPendingCipherSpecs
      Src: /src/nss/lib/ssl/ssl3con.c:6687,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:6689,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/ssl3con.c:6693,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/ssl3con.c:6694,1
    - Dst: ssl_FreeEphemeralKeyPair
      Src: /src/nss/lib/ssl/ssl3con.c:6695,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/ssl3con.c:6700,1
    - Dst: ssl_FreeEphemeralKeyPair
      Src: /src/nss/lib/ssl/ssl3con.c:6702,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/ssl3con.c:6703,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 70
    argCount: 2
    argNames:
    - ss
    - svrPubKey
    argTypes:
    - sslSocket*
    - SECKEYPublicKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6705
      start: 6596
    functionDepth: 13
    functionLinenumber: 6596
    functionLinenumberEnd: 6705
    functionName: ssl3_SendDHClientKeyExchange
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - ssl_AppendPaddedDHKeyShare
    - ssl_HaveSSL3HandshakeLock
    - ssl3_InitPendingCipherSpecs
    - ssl_ValidateDHENamedGroup
    - ssl_HaveXmitBufLock
    - PRINT_BUF
    - ssl_CreateDHEKeyPair
    - SSL_BUFFER
    - PORT_SetError
    - ssl3_AppendHandshakeHeader
    - ssl_MapLowLevelError
    - ssl3_AppendBufferToHandshake
    - SECKEY_GetPublicKeyType
    - sslBuffer_Clear
    - ssl_FreeEphemeralKeyPair
    - PK11_PubDerive
    - PK11_FreeSymKey
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_SendDHClientKeyExchange(sslSocket *ss, SECKEYPublicKey
      *svrPubKey)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3con.c:6714,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:6715,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:6717,1
    - Dst: ssl_HaveXmitBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:6717,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:6718,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:6718,1
    - Dst: CERT_ExtractPublicKey
      Src: /src/nss/lib/ssl/ssl3con.c:6721,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:6723,1
    - Dst: SECKEY_PublicKeyStrengthInBits
      Src: /src/nss/lib/ssl/ssl3con.c:6732,1
    - Dst: ssl3_SendRSAClientKeyExchange
      Src: /src/nss/lib/ssl/ssl3con.c:6736,1
    - Dst: ssl3_SendDHClientKeyExchange
      Src: /src/nss/lib/ssl/ssl3con.c:6740,1
    - Dst: ssl3_SendECDHClientKeyExchange
      Src: /src/nss/lib/ssl/ssl3con.c:6744,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:6748,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:6749,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3con.c:6753,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:6754,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/ssl/ssl3con.c:6756,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6758
      start: 6708
    functionDepth: 18
    functionLinenumber: 6708
    functionLinenumberEnd: 6758
    functionName: ssl3_SendClientKeyExchange
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    - SECKEY_DestroyPublicKey
    - SECKEY_PublicKeyStrengthInBits
    - ssl_HaveXmitBufLock
    - SSL_TRC
    - ssl3_SendECDHClientKeyExchange
    - SSL_GETPID
    - ssl3_SendRSAClientKeyExchange
    - PORT_SetError
    - ssl_MapLowLevelError
    - CERT_ExtractPublicKey
    - ssl3_SendDHClientKeyExchange
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_SendClientKeyExchange(sslSocket *ss)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ssl_IsRsaPssSignatureScheme
      Src: /src/nss/lib/ssl/ssl3con.c:6773,1
    - Dst: ssl_SignatureSchemeToHashType
      Src: /src/nss/lib/ssl/ssl3con.c:6777,1
    - Dst: ssl_SchemePolicyOK
      Src: /src/nss/lib/ssl/ssl3con.c:6782,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 5
    argNames:
    - scheme
    - peerSchemes
    - peerSchemeCount
    - requireSha1
    - slotDoesPss
    argTypes:
    - SSLSignatureScheme
    - SSLSignatureScheme*
    - unsigned int
    - PRBool
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6792
      start: 6761
    functionDepth: 2
    functionLinenumber: 6761
    functionLinenumberEnd: 6792
    functionName: ssl_CanUseSignatureScheme
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - ssl_IsRsaPssSignatureScheme
    - ssl_SchemePolicyOK
    - ssl_SignatureSchemeToHashType
    linkageType: ''
    returnType: PRBool
    signature: "PRBool ssl_CanUseSignatureScheme(SSLSignatureScheme scheme,\n                          const
      SSLSignatureScheme *peerSchemes,\n                          unsigned int peerSchemeCount,\n
      \                         PRBool requireSha1,\n                          PRBool
      slotDoesPss)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetSlotFromPrivateKey
      Src: /src/nss/lib/ssl/ssl3con.c:6800,1
    - Dst: PK11_FindObjectForCert
      Src: /src/nss/lib/ssl/ssl3con.c:6802,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:6804,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:6809,1
    - Dst: PK11_DoesMechanism
      Src: /src/nss/lib/ssl/ssl3con.c:6812,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/ssl/ssl3con.c:6813,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - privKey
    - cert
    - pwarg
    - supportsRsaPss
    argTypes:
    - SECKEYPrivateKey*
    - CERTCertificate*
    - void*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6815
      start: 6794
    functionDepth: 8
    functionLinenumber: 6794
    functionLinenumberEnd: 6815
    functionName: ssl_PrivateKeySupportsRsaPss
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - PK11_GetSlotFromPrivateKey
    - PK11_DoesMechanism
    - PORT_SetError
    - PK11_FreeSlot
    - PK11_FindObjectForCert
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_PrivateKeySupportsRsaPss(SECKEYPrivateKey *privKey,
      CERTCertificate *cert,\n                             void *pwarg, PRBool *supportsRsaPss)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:6835,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:6837,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:6838,1
    - Dst: ssl_PrivateKeySupportsRsaPss
      Src: /src/nss/lib/ssl/ssl3con.c:6841,1
    - Dst: ssl_SignatureSchemeFromSpki
      Src: /src/nss/lib/ssl/ssl3con.c:6848,1
    - Dst: ssl_SignatureSchemeEnabled
      Src: /src/nss/lib/ssl/ssl3con.c:6854,1
    - Dst: ssl_CanUseSignatureScheme
      Src: /src/nss/lib/ssl/ssl3con.c:6855,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:6857,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/ssl/ssl3con.c:6864,1
    - Dst: ssl_SignatureSchemeValid
      Src: /src/nss/lib/ssl/ssl3con.c:6874,1
    - Dst: ssl_CanUseSignatureScheme
      Src: /src/nss/lib/ssl/ssl3con.c:6875,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:6882,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 8
    argNames:
    - ss
    - cert
    - pubKey
    - privKey
    - peerSchemes
    - peerSchemeCount
    - requireSha1
    - schemePtr
    argTypes:
    - sslSocket*
    - CERTCertificate*
    - SECKEYPublicKey*
    - SECKEYPrivateKey*
    - SSLSignatureScheme*
    - unsigned int
    - PRBool
    - SSLSignatureScheme*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6884
      start: 6817
    functionDepth: 9
    functionLinenumber: 6817
    functionLinenumberEnd: 6884
    functionName: ssl_PickSignatureScheme
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - ssl_PrivateKeySupportsRsaPss
    - SECOID_GetAlgorithmTag
    - ssl_CanUseSignatureScheme
    - ssl_SignatureSchemeValid
    - ssl_SignatureSchemeFromSpki
    - PORT_SetError
    - ssl_SignatureSchemeEnabled
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_PickSignatureScheme(sslSocket *ss,\n                        CERTCertificate
      *cert,\n                        SECKEYPublicKey *pubKey,\n                        SECKEYPrivateKey
      *privKey,\n                        const SSLSignatureScheme *peerSchemes,\n
      \                       unsigned int peerSchemeCount,\n                        PRBool
      requireSha1,\n                        SSLSignatureScheme *schemePtr)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SECKEY_GetPublicKeyType
      Src: /src/nss/lib/ssl/ssl3con.c:6891,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:6906,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:6907,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - ss
    - pubKey
    argTypes:
    - sslSocket*
    - SECKEYPublicKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6911
      start: 6886
    functionDepth: 1
    functionLinenumber: 6886
    functionLinenumberEnd: 6911
    functionName: ssl_PickFallbackSignatureScheme
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - SECKEY_GetPublicKeyType
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl_PickFallbackSignatureScheme(sslSocket *ss, SECKEYPublicKey
      *pubKey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_ExtensionNegotiated
      Src: /src/nss/lib/ssl/ssl3con.c:6923,1
    - Dst: ssl_PickFallbackSignatureScheme
      Src: /src/nss/lib/ssl/ssl3con.c:6926,1
    - Dst: ssl_PickSignatureScheme
      Src: /src/nss/lib/ssl/ssl3con.c:6930,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6937
      start: 6917
    functionDepth: 10
    functionLinenumber: 6917
    functionLinenumberEnd: 6937
    functionName: ssl3_PickServerSignatureScheme
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - ssl_PickFallbackSignatureScheme
    - ssl_PickSignatureScheme
    - ssl3_ExtensionNegotiated
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_PickServerSignatureScheme(sslSocket *ss)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CERT_ExtractPublicKey
      Src: /src/nss/lib/ssl/ssl3con.c:6948,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:6950,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:6955,1
    - Dst: SECKEY_GetPublicKeyType
      Src: /src/nss/lib/ssl/ssl3con.c:6959,1
    - Dst: SECKEY_GetPublicKeyType
      Src: /src/nss/lib/ssl/ssl3con.c:6960,1
    - Dst: SECKEY_PublicKeyStrengthInBits
      Src: /src/nss/lib/ssl/ssl3con.c:6961,1
    - Dst: ssl_PickSignatureScheme
      Src: /src/nss/lib/ssl/ssl3con.c:6968,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/ssl/ssl3con.c:6972,1
    - Dst: ssl_PickSignatureScheme
      Src: /src/nss/lib/ssl/ssl3con.c:6978,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/ssl/ssl3con.c:6981,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 6
    argNames:
    - ss
    - clientCertificate
    - privKey
    - schemes
    - numSchemes
    - schemePtr
    argTypes:
    - sslSocket*
    - CERTCertificate*
    - SECKEYPrivateKey*
    - SSLSignatureScheme*
    - unsigned int
    - SSLSignatureScheme*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6983
      start: 6939
    functionDepth: 10
    functionLinenumber: 6939
    functionLinenumberEnd: 6983
    functionName: ssl_PickClientSignatureScheme
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - SECKEY_DestroyPublicKey
    - SECKEY_PublicKeyStrengthInBits
    - ssl_PickSignatureScheme
    - SECKEY_GetPublicKeyType
    - CERT_ExtractPublicKey
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_PickClientSignatureScheme(sslSocket *ss, CERTCertificate
      *clientCertificate,\n                              SECKEYPrivateKey *privKey,\n
      \                             const SSLSignatureScheme *schemes,\n                              unsigned
      int numSchemes,\n                              SSLSignatureScheme *schemePtr)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:6996,1
    - Dst: ssl_HaveXmitBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:6996,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:6997,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:6997,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3con.c:6999,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:7000,1
    - Dst: ssl_GetSpecReadLock
      Src: /src/nss/lib/ssl/ssl3con.c:7002,1
    - Dst: ssl_SignatureSchemeToHashType
      Src: /src/nss/lib/ssl/ssl3con.c:7005,1
    - Dst: ssl3_GetSuitePrfHash
      Src: /src/nss/lib/ssl/ssl3con.c:7011,1
    - Dst: ssl3_ComputeHandshakeHash
      Src: /src/nss/lib/ssl/ssl3con.c:7012,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:7016,1
    - Dst: ssl3_ComputeHandshakeHashes
      Src: /src/nss/lib/ssl/ssl3con.c:7019,1
    - Dst: ssl_ReleaseSpecReadLock
      Src: /src/nss/lib/ssl/ssl3con.c:7021,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:7027,1
    - Dst: ssl3_SignHashes
      Src: /src/nss/lib/ssl/ssl3con.c:7029,1
    - Dst: PK11_GetSlotFromPrivateKey
      Src: /src/nss/lib/ssl/ssl3con.c:7038,1
    - Dst: PK11_GetSlotSeries
      Src: /src/nss/lib/ssl/ssl3con.c:7039,1
    - Dst: PK11_GetSlotID
      Src: /src/nss/lib/ssl/ssl3con.c:7040,1
    - Dst: PK11_GetModuleID
      Src: /src/nss/lib/ssl/ssl3con.c:7041,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/ssl/ssl3con.c:7043,1
    - Dst: ssl3_AppendHandshakeHeader
      Src: /src/nss/lib/ssl/ssl3con.c:7051,1
    - Dst: ssl3_AppendHandshakeNumber
      Src: /src/nss/lib/ssl/ssl3con.c:7056,1
    - Dst: ssl3_AppendHandshakeVariable
      Src: /src/nss/lib/ssl/ssl3con.c:7061,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/ssl3con.c:7068,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 61
    argCount: 2
    argNames:
    - ss
    - privKey
    argTypes:
    - sslSocket*
    - SECKEYPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7070
      start: 6986
    functionDepth: 11
    functionLinenumber: 6986
    functionLinenumberEnd: 7070
    functionName: ssl3_SendCertificateVerify
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - ssl3_SignHashes
    - ssl3_ComputeHandshakeHash
    - PK11_GetSlotID
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    - ssl3_ComputeHandshakeHashes
    - ssl3_AppendHandshakeNumber
    - ssl3_AppendHandshakeHeader
    - ssl_MapLowLevelError
    - PK11_GetSlotSeries
    - ssl_GetSpecReadLock
    - ssl3_GetSuitePrfHash
    - PK11_FreeSlot
    - ssl_SignatureSchemeToHashType
    - ssl_HaveXmitBufLock
    - SSL_TRC
    - PORT_Free
    - SSL_GETPID
    - ssl3_AppendHandshakeVariable
    - ssl_ReleaseSpecReadLock
    - PK11_GetSlotFromPrivateKey
    - PK11_GetModuleID
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_SendCertificateVerify(sslSocket *ss, SECKEYPrivateKey
      *privKey)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ssl_LookupCipherSuiteDef
      Src: /src/nss/lib/ssl/ssl3con.c:7077,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:7079,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:7080,1
    - Dst: ssl3_InitHandshakeHashes
      Src: /src/nss/lib/ssl/ssl3con.c:7091,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - ss
    - initHashes
    argTypes:
    - sslSocket*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7092
      start: 7074
    functionDepth: 10
    functionLinenumber: 7074
    functionLinenumberEnd: 7092
    functionName: ssl3_SetupCipherSuite
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - ssl_LookupCipherSuiteDef
    - PORT_SetError
    - ssl3_InitHandshakeHashes
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_SetupCipherSuite(sslSocket *ss, PRBool initHashes)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_config_match_init
      Src: /src/nss/lib/ssl/ssl3con.c:7099,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:7100,1
    - Dst: ssl3_config_match
      Src: /src/nss/lib/ssl/ssl3con.c:7107,1
    - Dst: ssl3_CipherSuiteAllowedForVersionRange
      Src: /src/nss/lib/ssl/ssl3con.c:7111,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:7112,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:7114,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:7122,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:7128,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:7129,1
    - Dst: ssl3_SetupCipherSuite
      Src: /src/nss/lib/ssl/ssl3con.c:7134,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 4
    argNames:
    - ss
    - version
    - suite
    - initHashes
    argTypes:
    - sslSocket*
    - SSL3ProtocolVersion
    - ssl3CipherSuite
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7135
      start: 7094
    functionDepth: 17
    functionLinenumber: 7094
    functionLinenumberEnd: 7135
    functionName: ssl_ClientSetCipherSuite
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - SSL3_SendAlert
    - PORT_Assert
    - ssl3_CipherSuiteAllowedForVersionRange
    - PORT_SetError
    - ssl3_config_match
    - ssl3_config_match_init
    - ssl3_SetupCipherSuite
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_ClientSetCipherSuite(sslSocket *ss, SSL3ProtocolVersion
      version,\n                         ssl3CipherSuite suite, PRBool initHashes)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/ssl/ssl3con.c:7153,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:7157,1
    - Dst: ssl_MakeFakeSid
      Src: /src/nss/lib/ssl/ssl3con.c:7160,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/ssl/ssl3con.c:7161,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:7174,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 20
    argCount: 2
    argNames:
    - ss
    - sidBytes
    argTypes:
    - sslSocket*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7180
      start: 7141
    functionDepth: 1
    functionLinenumber: 7141
    functionLinenumberEnd: 7180
    functionName: ssl_CheckServerSessionIdCorrectness
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - PORT_Memcmp
    - IS_DTLS
    - ssl_MakeFakeSid
    linkageType: ''
    returnType: PRBool
    signature: PRBool ssl_CheckServerSessionIdCorrectness(sslSocket *ss, SECItem *sidBytes)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/ssl/ssl3con.c:7205,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/ssl/ssl3con.c:7208,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7216
      start: 7182
    functionDepth: 0
    functionLinenumber: 7182
    functionLinenumberEnd: 7216
    functionName: ssl_CheckServerRandom
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - PORT_Memcmp
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl_CheckServerRandom(sslSocket *ss)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3con.c:7235,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:7236,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:7237,1
    - Dst: ssl_HaveRecvBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:7237,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:7238,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:7238,1
    - Dst: CERT_DestroyCertificateList
      Src: /src/nss/lib/ssl/ssl3con.c:7248,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/ssl/ssl3con.c:7252,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/lib/ssl/ssl3con.c:7256,1
    - Dst: PR_Free
      Src: /src/nss/lib/ssl/ssl3con.c:7261,1
    - Dst: ssl_ClientReadVersion
      Src: /src/nss/lib/ssl/ssl3con.c:7268,1
    - Dst: ssl3_ConsumeHandshake
      Src: /src/nss/lib/ssl/ssl3con.c:7273,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/ssl/ssl3con.c:7278,1
    - Dst: ssl3_ConsumeHandshakeVariable
      Src: /src/nss/lib/ssl/ssl3con.c:7281,1
    - Dst: ssl3_ConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/ssl3con.c:7292,1
    - Dst: ssl3_ConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/ssl3con.c:7298,1
    - Dst: ssl3_ConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/ssl3con.c:7311,1
    - Dst: ssl3_ParseExtensions
      Src: /src/nss/lib/ssl/ssl3con.c:7319,1
    - Dst: tls13_ClientReadSupportedVersion
      Src: /src/nss/lib/ssl/ssl3con.c:7326,1
    - Dst: ssl3_MaybeUpdateHashWithSavedRecord
      Src: /src/nss/lib/ssl/ssl3con.c:7337,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:7342,1
    - Dst: SSL_ALL_VERSIONS_DISABLED
      Src: /src/nss/lib/ssl/ssl3con.c:7342,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3con.c:7353,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:7354,1
    - Dst: ssl_CheckServerRandom
      Src: /src/nss/lib/ssl/ssl3con.c:7397,1
    - Dst: ssl_GetSpecWriteLock
      Src: /src/nss/lib/ssl/ssl3con.c:7411,1
    - Dst: ssl_SetSpecVersions
      Src: /src/nss/lib/ssl/ssl3con.c:7412,1
    - Dst: ssl_ReleaseSpecWriteLock
      Src: /src/nss/lib/ssl/ssl3con.c:7413,1
    - Dst: ssl_CheckServerSessionIdCorrectness
      Src: /src/nss/lib/ssl/ssl3con.c:7417,1
    - Dst: ssl_ClientSetCipherSuite
      Src: /src/nss/lib/ssl/ssl3con.c:7424,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/ssl3con.c:7428,1
    - Dst: dtls_ReceivedFirstMessageInFlight
      Src: /src/nss/lib/ssl/ssl3con.c:7432,1
    - Dst: tls13_HandleHelloRetryRequest
      Src: /src/nss/lib/ssl/ssl3con.c:7435,1
    - Dst: ssl3_HandleParsedExtensions
      Src: /src/nss/lib/ssl/ssl3con.c:7442,1
    - Dst: ssl3_DestroyRemoteExtensions
      Src: /src/nss/lib/ssl/ssl3con.c:7443,1
    - Dst: ssl_HashHandshakeMessage
      Src: /src/nss/lib/ssl/ssl3con.c:7448,1
    - Dst: tls13_HandleServerHelloPart2
      Src: /src/nss/lib/ssl/ssl3con.c:7455,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/ssl3con.c:7457,1
    - Dst: ssl3_HandleServerHelloPart2
      Src: /src/nss/lib/ssl/ssl3con.c:7461,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:7470,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:7475,1
    CyclomaticComplexity: 70
    EdgeCount: 70
    ICount: 197
    argCount: 3
    argNames:
    - ss
    - b
    - length
    argTypes:
    - sslSocket*
    - PRUint8*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7477
      start: 7222
    functionDepth: 21
    functionLinenumber: 7222
    functionLinenumberEnd: 7477
    functionName: ssl3_HandleServerHello
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - PR_Free
    - CERT_DestroyCertificateList
    - ssl_CheckServerSessionIdCorrectness
    - SSL3_SendAlert
    - ssl3_ConsumeHandshake
    - tls13_HandleHelloRetryRequest
    - tls13_HandleServerHelloPart2
    - SSL_ALL_VERSIONS_DISABLED
    - ssl3_HandleParsedExtensions
    - ssl_ClientSetCipherSuite
    - ssl3_ParseExtensions
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    - ssl_SetSpecVersions
    - ssl_GetSpecWriteLock
    - ssl_HashHandshakeMessage
    - ssl3_DestroyRemoteExtensions
    - ssl_MapLowLevelError
    - ssl3_MaybeUpdateHashWithSavedRecord
    - CERT_DestroyCertificate
    - ssl_HaveRecvBufLock
    - dtls_ReceivedFirstMessageInFlight
    - ssl_ClientReadVersion
    - ssl_CheckServerRandom
    - PORT_Memcmp
    - SSL_TRC
    - ssl3_ConsumeHandshakeVariable
    - SSL_GETPID
    - PORT_GetError
    - ssl3_HandleServerHelloPart2
    - SECKEY_DestroyPrivateKey
    - ssl3_ConsumeHandshakeNumber
    - tls13_ClientReadSupportedVersion
    - ssl_ReleaseSpecWriteLock
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_HandleServerHello(sslSocket *ss, PRUint8 *b, PRUint32
      length)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SECMOD_LookupSlot
      Src: /src/nss/lib/ssl/ssl3con.c:7492,1
    - Dst: PK11_IsPresent
      Src: /src/nss/lib/ssl/ssl3con.c:7497,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/ssl/ssl3con.c:7498,1
    - Dst: PK11_GetWrapKey
      Src: /src/nss/lib/ssl/ssl3con.c:7501,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/ssl/ssl3con.c:7505,1
    - Dst: PK11_UnwrapSymKeyWithFlags
      Src: /src/nss/lib/ssl/ssl3con.c:7514,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/ssl3con.c:7517,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - ss
    - sid
    - ms
    argTypes:
    - sslSocket*
    - sslSessionID*
    - PK11SymKey**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7522
      start: 7479
    functionDepth: 11
    functionLinenumber: 7479
    functionLinenumberEnd: 7522
    functionName: ssl3_UnwrapMasterSecretClient
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - PK11_UnwrapSymKeyWithFlags
    - PK11_IsPresent
    - SECMOD_LookupSlot
    - PK11_GetWrapKey
    - PK11_FreeSlot
    - PK11_FreeSymKey
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_UnwrapMasterSecretClient(sslSocket *ss, sslSessionID
      *sid, PK11SymKey **ms)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_ExtensionNegotiated
      Src: /src/nss/lib/ssl/ssl3con.c:7538,1
    - Dst: ssl3_SetupBothPendingCipherSpecs
      Src: /src/nss/lib/ssl/ssl3con.c:7550,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/ssl/ssl3con.c:7563,1
    - Dst: ssl3_ExtensionNegotiated
      Src: /src/nss/lib/ssl/ssl3con.c:7582,1
    - Dst: ssl3_ExtensionNegotiated
      Src: /src/nss/lib/ssl/ssl3con.c:7596,1
    - Dst: ssl_LookupNamedGroup
      Src: /src/nss/lib/ssl/ssl3con.c:7605,1
    - Dst: ssl3_UnwrapMasterSecretClient
      Src: /src/nss/lib/ssl/ssl3con.c:7608,1
    - Dst: SSL_AtomicIncrementLong
      Src: /src/nss/lib/ssl/ssl3con.c:7614,1
    - Dst: SSL_AtomicIncrementLong
      Src: /src/nss/lib/ssl/ssl3con.c:7618,1
    - Dst: ssl3_ExtensionNegotiated
      Src: /src/nss/lib/ssl/ssl3con.c:7620,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/ssl/ssl3con.c:7629,1
    - Dst: ssl3_InitPendingCipherSpecs
      Src: /src/nss/lib/ssl/ssl3con.c:7633,1
    - Dst: SSL_AtomicIncrementLong
      Src: /src/nss/lib/ssl/ssl3con.c:7642,1
    - Dst: SSL_AtomicIncrementLong
      Src: /src/nss/lib/ssl/ssl3con.c:7644,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:7648,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:7649,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/ssl3con.c:7655,1
    - Dst: ssl_UncacheSessionID
      Src: /src/nss/lib/ssl/ssl3con.c:7661,1
    - Dst: ssl_FreeSID
      Src: /src/nss/lib/ssl/ssl3con.c:7662,1
    - Dst: ssl3_NewSessionID
      Src: /src/nss/lib/ssl/ssl3con.c:7665,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/ssl3con.c:7673,1
    - Dst: ssl3_ExtensionNegotiated
      Src: /src/nss/lib/ssl/ssl3con.c:7677,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/ssl/ssl3con.c:7681,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:7697,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:7703,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 105
    argCount: 3
    argNames:
    - ss
    - sidBytes
    - retErrCode
    argTypes:
    - sslSocket*
    - SECItem*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7708
      start: 7524
    functionDepth: 17
    functionLinenumber: 7524
    functionLinenumberEnd: 7708
    functionName: ssl3_HandleServerHelloPart2
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - SSL3_SendAlert
    - PORT_Assert
    - ssl3_InitPendingCipherSpecs
    - PORT_Memcpy
    - ssl3_ExtensionNegotiated
    - PORT_Memcmp
    - ssl_UncacheSessionID
    - ssl_LookupNamedGroup
    - ssl_FreeSID
    - SECITEM_CopyItem
    - ssl3_SetupBothPendingCipherSpecs
    - CERT_DupCertificate
    - SSL_AtomicIncrementLong
    - ssl3_NewSessionID
    - ssl3_UnwrapMasterSecretClient
    - PK11_FreeSymKey
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_HandleServerHelloPart2(sslSocket *ss, const SECItem
      *sidBytes,\n                            int *retErrCode)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_ConsumeHandshakeVariable
      Src: /src/nss/lib/ssl/ssl3con.c:7733,1
    - Dst: NSS_OptionGet
      Src: /src/nss/lib/ssl/ssl3con.c:7737,1
    - Dst: NSS_OptionGet
      Src: /src/nss/lib/ssl/ssl3con.c:7739,1
    - Dst: SECKEY_BigIntegerBitLength
      Src: /src/nss/lib/ssl/ssl3con.c:7745,1
    - Dst: ssl3_ConsumeHandshakeVariable
      Src: /src/nss/lib/ssl/ssl3con.c:7754,1
    - Dst: SECKEY_BigIntegerBitLength
      Src: /src/nss/lib/ssl/ssl3con.c:7759,1
    - Dst: ssl_ValidateDHENamedGroup
      Src: /src/nss/lib/ssl/ssl3con.c:7765,1
    - Dst: ssl3_ConsumeHandshakeVariable
      Src: /src/nss/lib/ssl/ssl3con.c:7772,1
    - Dst: ssl_IsValidDHEShare
      Src: /src/nss/lib/ssl/ssl3con.c:7776,1
    - Dst: ssl_ConsumeSignatureScheme
      Src: /src/nss/lib/ssl/ssl3con.c:7782,1
    - Dst: ssl_CheckSignatureSchemeConsistency
      Src: /src/nss/lib/ssl/ssl3con.c:7786,1
    - Dst: ssl_SignatureSchemeToHashType
      Src: /src/nss/lib/ssl/ssl3con.c:7791,1
    - Dst: ssl3_ConsumeHandshakeVariable
      Src: /src/nss/lib/ssl/ssl3con.c:7797,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/ssl3con.c:7808,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/ssl3con.c:7809,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/ssl3con.c:7810,1
    - Dst: ssl3_ComputeDHKeyHash
      Src: /src/nss/lib/ssl/ssl3con.c:7819,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:7823,1
    - Dst: ssl3_VerifySignedHashes
      Src: /src/nss/lib/ssl/ssl3con.c:7826,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:7829,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/ssl/ssl3con.c:7838,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/ssl/ssl3con.c:7844,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/ssl/ssl3con.c:7855,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/ssl/ssl3con.c:7856,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/ssl/ssl3con.c:7857,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:7865,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/ssl/ssl3con.c:7868,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:7870,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:7870,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 129
    argCount: 3
    argNames:
    - ss
    - b
    - length
    argTypes:
    - sslSocket*
    - PRUint8*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7872
      start: 7710
    functionDepth: 21
    functionLinenumber: 7710
    functionLinenumberEnd: 7872
    functionName: ssl_HandleDHServerKeyExchange
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - SSL3_SendAlert
    - ssl_IsValidDHEShare
    - ssl_ValidateDHENamedGroup
    - NSS_OptionGet
    - ssl_CheckSignatureSchemeConsistency
    - PORT_NewArena
    - PORT_FreeArena
    - ssl3_ConsumeHandshakeVariable
    - ssl3_VerifySignedHashes
    - PRINT_BUF
    - SECITEM_CopyItem
    - SECKEY_BigIntegerBitLength
    - PORT_ArenaZNew
    - ssl_ConsumeSignatureScheme
    - ssl_MapLowLevelError
    - PORT_SetError
    - ssl3_ComputeDHKeyHash
    - ssl_SignatureSchemeToHashType
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl_HandleDHServerKeyExchange(sslSocket *ss, PRUint8 *b,
      PRUint32 length)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3con.c:7883,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:7884,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:7885,1
    - Dst: ssl_HaveRecvBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:7885,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:7886,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:7886,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:7889,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:7890,1
    - Dst: ssl_HandleDHServerKeyExchange
      Src: /src/nss/lib/ssl/ssl3con.c:7896,1
    - Dst: ssl3_HandleECDHServerKeyExchange
      Src: /src/nss/lib/ssl/ssl3con.c:7900,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:7904,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:7905,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - ss
    - b
    - length
    argTypes:
    - sslSocket*
    - PRUint8*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7915
      start: 7878
    functionDepth: 22
    functionLinenumber: 7878
    functionLinenumberEnd: 7915
    functionName: ssl3_HandleServerKeyExchange
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - SSL3_SendAlert
    - PORT_Assert
    - ssl3_HandleECDHServerKeyExchange
    - ssl_HaveSSL3HandshakeLock
    - ssl_HandleDHServerKeyExchange
    - SSL_TRC
    - SSL_GETPID
    - PORT_SetError
    - ssl_HaveRecvBufLock
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_HandleServerKeyExchange(sslSocket *ss, PRUint8 *b, PRUint32
      length)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_ConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/ssl3con.c:7939,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/ssl/ssl3con.c:7946,1
    - Dst: ssl3_ConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/ssl3con.c:7956,1
    - Dst: SECITEM_MakeItem
      Src: /src/nss/lib/ssl/ssl3con.c:7963,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/ssl/ssl3con.c:7974,1
    - Dst: PORT_ArenaNewArray
      Src: /src/nss/lib/ssl/ssl3con.c:7981,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:7997,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:8000,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 56
    argCount: 4
    argNames:
    - ss
    - b
    - length
    - ca_list
    argTypes:
    - sslSocket*
    - PRUint8**
    - PRUint32*
    - CERTDistNames*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8002
      start: 7929
    functionDepth: 20
    functionLinenumber: 7929
    functionLinenumberEnd: 8002
    functionName: ssl3_ParseCertificateRequestCAs
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - SSL3_SendAlert
    - PORT_ArenaZNew
    - PORT_SetError
    - SECITEM_MakeItem
    - ssl3_ConsumeHandshakeNumber
    - PORT_ArenaNewArray
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_ParseCertificateRequestCAs(sslSocket *ss, PRUint8 **b,
      PRUint32 *length,\n                                CERTDistNames *ca_list)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_ExtConsumeHandshakeVariable
      Src: /src/nss/lib/ssl/ssl3con.c:8017,1
    - Dst: ssl3_ExtSendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:8023,1
    - Dst: PR_MIN
      Src: /src/nss/lib/ssl/ssl3con.c:8034,1
    - Dst: PORT_ArenaZNewArray
      Src: /src/nss/lib/ssl/ssl3con.c:8037,1
    - Dst: PORT_ZNewArray
      Src: /src/nss/lib/ssl/ssl3con.c:8039,1
    - Dst: ssl3_ExtSendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:8042,1
    - Dst: ssl3_ExtConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/ssl3con.c:8048,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:8050,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:8051,1
    - Dst: ssl_SignatureSchemeValid
      Src: /src/nss/lib/ssl/ssl3con.c:8054,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/ssl3con.c:8063,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 47
    argCount: 6
    argNames:
    - ss
    - arena
    - schemesOut
    - numSchemesOut
    - b
    - len
    argTypes:
    - sslSocket*
    - PLArenaPool*
    - SSLSignatureScheme**
    - unsigned int*
    - unsigned char**
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8072
      start: 8004
    functionDepth: 3
    functionLinenumber: 8004
    functionLinenumberEnd: 8072
    functionName: ssl_ParseSignatureSchemes
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 2
    functionsReached:
    - PORT_ArenaZNewArray
    - PORT_Assert
    - PORT_ZNewArray
    - PR_MIN
    - PORT_Free
    - ssl3_ExtConsumeHandshakeNumber
    - ssl_SignatureSchemeValid
    - ssl3_ExtSendAlert
    - PORT_SetError
    - ssl3_ExtConsumeHandshakeVariable
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_ParseSignatureSchemes(const sslSocket *ss, PLArenaPool
      *arena,\n                          SSLSignatureScheme **schemesOut,\n                          unsigned
      int *numSchemesOut,\n                          unsigned char **b, unsigned int
      *len)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3con.c:8092,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:8093,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:8094,1
    - Dst: ssl_HaveRecvBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:8094,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:8095,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:8095,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:8103,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:8104,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:8105,1
    - Dst: ssl3_ConsumeHandshakeVariable
      Src: /src/nss/lib/ssl/ssl3con.c:8109,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/ssl/ssl3con.c:8113,1
    - Dst: ssl_ParseSignatureSchemes
      Src: /src/nss/lib/ssl/ssl3con.c:8118,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:8123,1
    - Dst: ssl3_ParseCertificateRequestCAs
      Src: /src/nss/lib/ssl/ssl3con.c:8133,1
    - Dst: ssl3_BeginHandleCertificateRequest
      Src: /src/nss/lib/ssl/ssl3con.c:8142,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:8145,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:8154,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:8160,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:8162,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/ssl/ssl3con.c:8166,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 75
    argCount: 3
    argNames:
    - ss
    - b
    - length
    argTypes:
    - sslSocket*
    - PRUint8*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8168
      start: 8078
    functionDepth: 21
    functionLinenumber: 8078
    functionLinenumberEnd: 8168
    functionName: ssl3_HandleCertificateRequest
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - SSL3_SendAlert
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    - PORT_NewArena
    - PORT_FreeArena
    - SSL_TRC
    - ssl3_ConsumeHandshakeVariable
    - SSL_GETPID
    - PORT_SetError
    - ssl_ParseSignatureSchemes
    - ssl3_BeginHandleCertificateRequest
    - ssl3_ParseCertificateRequestCAs
    - ssl_HaveRecvBufLock
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_HandleCertificateRequest(sslSocket *ss, PRUint8 *b,
      PRUint32 length)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CERT_CertChainFromCert
      Src: /src/nss/lib/ssl/ssl3con.c:8184,1
    - Dst: ssl_PickClientSignatureScheme
      Src: /src/nss/lib/ssl/ssl3con.c:8192,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/ssl/ssl3con.c:8211,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/lib/ssl/ssl3con.c:8212,1
    - Dst: CERT_DestroyCertificateList
      Src: /src/nss/lib/ssl/ssl3con.c:8216,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:8223,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/ssl3con.c:8229,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 2
    argNames:
    - ss
    - outcome
    argTypes:
    - sslSocket*
    - SECStatus
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8232
      start: 8170
    functionDepth: 17
    functionLinenumber: 8170
    functionLinenumberEnd: 8232
    functionName: ssl3_ClientAuthCallbackOutcome
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - SSL3_SendAlert
    - PORT_Free
    - ssl_PickClientSignatureScheme
    - CERT_DestroyCertificateList
    - CERT_DestroyCertificate
    - SECKEY_DestroyPrivateKey
    - CERT_CertChainFromCert
    linkageType: ''
    returnType: void
    signature: void ssl3_ClientAuthCallbackOutcome(sslSocket *ss, SECStatus outcome)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/ssl3con.c:8242,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:8246,1
    - Dst: ssl3_ExtensionAdvertised
      Src: /src/nss/lib/ssl/ssl3con.c:8246,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:8249,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:8250,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:8252,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:8253,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:8254,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:8257,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:8258,1
    - Dst: PORT_ZNewArray
      Src: /src/nss/lib/ssl/ssl3con.c:8266,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/ssl3con.c:8268,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:8284,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:8285,1
    - Dst: ssl3_ClientAuthCallbackOutcome
      Src: /src/nss/lib/ssl/ssl3con.c:8293,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 4
    argNames:
    - ss
    - signatureSchemes
    - signatureSchemeCount
    - ca_list
    argTypes:
    - sslSocket*
    - SSLSignatureScheme*
    - unsigned int
    - CERTDistNames*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8297
      start: 8234
    functionDepth: 18
    functionLinenumber: 8234
    functionLinenumberEnd: 8297
    functionName: ssl3_BeginHandleCertificateRequest
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 3
    functionsReached:
    - PORT_Assert
    - PORT_Memcpy
    - PORT_ZNewArray
    - PR_ASSERT
    - ssl3_ExtensionAdvertised
    - ssl3_ClientAuthCallbackOutcome
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_BeginHandleCertificateRequest(sslSocket *ss,\n                                   const
      SSLSignatureScheme *signatureSchemes,\n                                   unsigned
      int signatureSchemeCount,\n                                   CERTDistNames
      *ca_list)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:8303,1
    - Dst: ssl3_ClientAuthCallbackOutcome
      Src: /src/nss/lib/ssl/ssl3con.c:8309,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:8312,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/ssl3con.c:8314,1
    - Dst: target
      Src: /src/nss/lib/ssl/ssl3con.c:8319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - ss
    - outcome
    - clientPrivateKey
    - clientCertificate
    argTypes:
    - sslSocket*
    - SECStatus
    - SECKEYPrivateKey*
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8320
      start: 8300
    functionDepth: 18
    functionLinenumber: 8300
    functionLinenumberEnd: 8320
    functionName: ssl3_ClientCertCallbackComplete
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - FATAL_ERROR
    - target
    - ssl3_ClientAuthCallbackOutcome
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_ClientCertCallbackComplete(sslSocket *ss, SECStatus
      outcome, SECKEYPrivateKey *clientPrivateKey, CERTCertificate *clientCertificate)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:8325,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:8325,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:8326,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:8327,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3con.c:8330,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:8331,1
    - Dst: ssl_CheckServerRandom
      Src: /src/nss/lib/ssl/ssl3con.c:8335,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3con.c:8337,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:8338,1
    - Dst: ssl_GetSpecReadLock
      Src: /src/nss/lib/ssl/ssl3con.c:8346,1
    - Dst: ssl_ReleaseSpecReadLock
      Src: /src/nss/lib/ssl/ssl3con.c:8348,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3con.c:8350,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:8351,1
    - Dst: ssl3_ExtensionAdvertised
      Src: /src/nss/lib/ssl/ssl3con.c:8355,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3con.c:8356,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:8357,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:8361,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3con.c:8367,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:8368,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3con.c:8372,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:8373,1
    - Dst: PR_ErrorToName
      Src: /src/nss/lib/ssl/ssl3con.c:8374,1
    - Dst: PR_GetError
      Src: /src/nss/lib/ssl/ssl3con.c:8374,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8382
      start: 8322
    functionDepth: 2
    functionLinenumber: 8322
    functionLinenumberEnd: 8382
    functionName: ssl3_CheckFalseStart
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    - ssl_CheckServerRandom
    - SSL_TRC
    - SSL_GETPID
    - ssl3_ExtensionAdvertised
    - PR_ErrorToName
    - PR_GetError
    - ssl_GetSpecReadLock
    - ssl_ReleaseSpecReadLock
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_CheckFalseStart(sslSocket *ss)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:8389,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:8389,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8403
      start: 8384
    functionDepth: 2
    functionLinenumber: 8384
    functionLinenumberEnd: 8403
    functionName: ssl3_WaitingForServerSecondRound
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    linkageType: ''
    returnType: PRBool
    signature: PRBool ssl3_WaitingForServerSecondRound(sslSocket *ss)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3con.c:8417,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:8418,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:8419,1
    - Dst: ssl_HaveRecvBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:8419,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:8420,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:8420,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:8425,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:8426,1
    - Dst: ssl3_SendClientSecondRound
      Src: /src/nss/lib/ssl/ssl3con.c:8430,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8433
      start: 8411
    functionDepth: 17
    functionLinenumber: 8411
    functionLinenumberEnd: 8433
    functionName: ssl3_HandleServerHelloDone
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - SSL3_SendAlert
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    - SSL_TRC
    - SSL_GETPID
    - PORT_SetError
    - ssl3_SendClientSecondRound
    - ssl_HaveRecvBufLock
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_HandleServerHelloDone(sslSocket *ss)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:8445,1
    - Dst: ssl_HaveRecvBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:8445,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:8446,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:8446,1
    - Dst: PR_NOT_REACHED
      Src: /src/nss/lib/ssl/ssl3con.c:8473,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:8474,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3con.c:8482,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:8484,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:8486,1
    - Dst: ssl_GetXmitBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:8490,1
    - Dst: ssl3_SendEmptyCertificate
      Src: /src/nss/lib/ssl/ssl3con.c:8494,1
    - Dst: ssl3_SendCertificate
      Src: /src/nss/lib/ssl/ssl3con.c:8500,1
    - Dst: ssl3_SendClientKeyExchange
      Src: /src/nss/lib/ssl/ssl3con.c:8506,1
    - Dst: ssl3_SendCertificateVerify
      Src: /src/nss/lib/ssl/ssl3con.c:8512,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/lib/ssl/ssl3con.c:8513,1
    - Dst: ssl3_SendChangeCipherSpecs
      Src: /src/nss/lib/ssl/ssl3con.c:8520,1
    - Dst: ssl_ReleaseXmitBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:8544,1
    - Dst: ssl3_CheckFalseStart
      Src: /src/nss/lib/ssl/ssl3con.c:8545,1
    - Dst: ssl_GetXmitBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:8546,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3con.c:8556,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:8558,1
    - Dst: ssl3_SendFinished
      Src: /src/nss/lib/ssl/ssl3con.c:8563,1
    - Dst: ssl_ReleaseXmitBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:8568,1
    - Dst: ssl3_ExtensionNegotiated
      Src: /src/nss/lib/ssl/ssl3con.c:8570,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:8575,1
    - Dst: ssl3_WaitingForServerSecondRound
      Src: /src/nss/lib/ssl/ssl3con.c:8575,1
    - Dst: ssl_ReleaseXmitBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:8580,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 81
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8582
      start: 8439
    functionDepth: 19
    functionLinenumber: 8439
    functionLinenumberEnd: 8582
    functionName: ssl3_SendClientSecondRound
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - ssl3_ExtensionNegotiated
    - ssl3_SendCertificateVerify
    - PR_NOT_REACHED
    - ssl_ReleaseXmitBufLock
    - PORT_SetError
    - ssl3_SendCertificate
    - ssl3_CheckFalseStart
    - PORT_Assert
    - ssl_GetXmitBufLock
    - ssl_HaveSSL3HandshakeLock
    - ssl3_SendFinished
    - ssl3_SendChangeCipherSpecs
    - ssl3_SendClientKeyExchange
    - ssl_HaveRecvBufLock
    - ssl3_WaitingForServerSecondRound
    - SSL_TRC
    - SSL_GETPID
    - SECKEY_DestroyPrivateKey
    - ssl3_SendEmptyCertificate
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_SendClientSecondRound(sslSocket *ss)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3con.c:8592,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:8592,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:8595,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:8595,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:8596,1
    - Dst: ssl_HaveXmitBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:8596,1
    - Dst: ssl3_AppendHandshakeHeader
      Src: /src/nss/lib/ssl/ssl3con.c:8598,1
    - Dst: ssl3_FlushHandshake
      Src: /src/nss/lib/ssl/ssl3con.c:8602,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8608
      start: 8587
    functionDepth: 6
    functionLinenumber: 8587
    functionLinenumberEnd: 8608
    functionName: ssl3_SendHelloRequest
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    - ssl_HaveXmitBufLock
    - SSL_TRC
    - SSL_GETPID
    - ssl3_AppendHandshakeHeader
    - ssl3_FlushHandshake
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_SendHelloRequest(sslSocket *ss)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/ssl/ssl3con.c:8626,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - name1
    - name2
    argTypes:
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8627
      start: 8614
    functionDepth: 0
    functionLinenumber: 8614
    functionLinenumberEnd: 8627
    functionName: ssl3_ServerNameCompare
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - SECITEM_CompareItem
    linkageType: ''
    returnType: SECComparison
    signature: SECComparison ssl3_ServerNameCompare(const SECItem *name1, const SECItem
      *name2)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZNew
      Src: /src/nss/lib/ssl/ssl3con.c:8641,1
    - Dst: ssl_GetSpecReadLock
      Src: /src/nss/lib/ssl/ssl3con.c:8649,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/ssl/ssl3con.c:8652,1
    - Dst: ssl_ReleaseSpecReadLock
      Src: /src/nss/lib/ssl/ssl3con.c:8654,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/ssl3con.c:8656,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/ssl/ssl3con.c:8660,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/ssl/ssl3con.c:8661,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:8675,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/lib/ssl/ssl3con.c:8680,1
    - Dst: ssl_FreeSID
      Src: /src/nss/lib/ssl/ssl3con.c:8683,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:8684,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 2
    argNames:
    - ss
    - is_server
    argTypes:
    - sslSocket*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8689
      start: 8636
    functionDepth: 11
    functionLinenumber: 8636
    functionLinenumberEnd: 8689
    functionName: ssl3_NewSessionID
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 8
    functionsReached:
    - PORT_ZNew
    - PORT_Free
    - SSL_GETPID
    - ssl_FreeSID
    - SECITEM_CopyItem
    - ssl_MapLowLevelError
    - PK11_GenerateRandom
    - ssl_GetSpecReadLock
    - ssl_ReleaseSpecReadLock
    - PORT_Strdup
    linkageType: ''
    returnType: sslSessionID
    signature: 'sslSessionID *

      ssl3_NewSessionID(sslSocket *ss, PRBool is_server)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3con.c:8698,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:8699,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:8701,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:8701,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:8702,1
    - Dst: ssl_HaveXmitBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:8702,1
    - Dst: ssl3_SendServerHello
      Src: /src/nss/lib/ssl/ssl3con.c:8704,1
    - Dst: ssl3_SendCertificate
      Src: /src/nss/lib/ssl/ssl3con.c:8708,1
    - Dst: ssl3_SendCertificateStatus
      Src: /src/nss/lib/ssl/ssl3con.c:8712,1
    - Dst: ssl3_SendServerKeyExchange
      Src: /src/nss/lib/ssl/ssl3con.c:8722,1
    - Dst: ssl3_SendCertificateRequest
      Src: /src/nss/lib/ssl/ssl3con.c:8729,1
    - Dst: ssl3_SendServerHelloDone
      Src: /src/nss/lib/ssl/ssl3con.c:8734,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8742
      start: 8692
    functionDepth: 2
    functionLinenumber: 8692
    functionLinenumberEnd: 8742
    functionName: ssl3_SendServerHelloSequence
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - ssl3_SendCertificateStatus
    - ssl_HaveSSL3HandshakeLock
    - ssl_HaveXmitBufLock
    - SSL_TRC
    - ssl3_SendCertificateRequest
    - SSL_GETPID
    - ssl3_SendServerHello
    - ssl3_SendServerHelloDone
    - ssl3_SendCertificate
    - ssl3_SendServerKeyExchange
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_SendServerHelloSequence(sslSocket *ss)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - kea_def
    argTypes:
    - ssl3KEADef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8756
      start: 8747
    functionDepth: 0
    functionLinenumber: 8747
    functionLinenumberEnd: 8756
    functionName: ssl3_KEASupportsTickets
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool ssl3_KEASupportsTickets(const ssl3KEADef *kea_def)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - peerSuites
    - suite
    argTypes:
    - SECItem*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8768
      start: 8758
    functionDepth: 0
    functionLinenumber: 8758
    functionLinenumberEnd: 8768
    functionName: ssl3_PeerSupportsCipherSuite
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool ssl3_PeerSupportsCipherSuite(const SECItem *peerSuites, uint16_t
      suite)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ssl_LookupCipherSuiteCfgMutable
      Src: /src/nss/lib/ssl/ssl3con.c:8786,1
    - Dst: ssl3_config_match
      Src: /src/nss/lib/ssl/ssl3con.c:8788,1
    - Dst: ssl3_PeerSupportsCipherSuite
      Src: /src/nss/lib/ssl/ssl3con.c:8789,1
    - Dst: ssl3_config_match
      Src: /src/nss/lib/ssl/ssl3con.c:8797,1
    - Dst: ssl3_PeerSupportsCipherSuite
      Src: /src/nss/lib/ssl/ssl3con.c:8800,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:8806,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 19
    argCount: 4
    argNames:
    - ss
    - suites
    - version
    - suitep
    argTypes:
    - sslSocket*
    - SECItem*
    - PRUint16
    - PRUint16*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8808
      start: 8770
    functionDepth: 3
    functionLinenumber: 8770
    functionLinenumberEnd: 8808
    functionName: ssl3_NegotiateCipherSuiteInner
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - ssl3_PeerSupportsCipherSuite
    - ssl3_config_match
    - ssl_LookupCipherSuiteCfgMutable
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_NegotiateCipherSuiteInner(sslSocket *ss, const SECItem
      *suites,\n                               PRUint16 version, PRUint16 *suitep)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_config_match_init
      Src: /src/nss/lib/ssl/ssl3con.c:8832,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/ssl3con.c:8835,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/ssl3con.c:8835,1
    - Dst: ssl3_NegotiateCipherSuiteInner
      Src: /src/nss/lib/ssl/ssl3con.c:8839,1
    - Dst: ssl3_SetupCipherSuite
      Src: /src/nss/lib/ssl/ssl3con.c:8845,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - ss
    - suites
    - initHashes
    argTypes:
    - sslSocket*
    - SECItem*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8846
      start: 8824
    functionDepth: 11
    functionLinenumber: 8824
    functionLinenumberEnd: 8846
    functionName: ssl3_NegotiateCipherSuite
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - PORT_GetError
    - FATAL_ERROR
    - ssl3_config_match_init
    - ssl3_NegotiateCipherSuiteInner
    - ssl3_SetupCipherSuite
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_NegotiateCipherSuite(sslSocket *ss, const SECItem *suites,\n
      \                         PRBool initHashes)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_ExtensionNegotiated
      Src: /src/nss/lib/ssl/ssl3con.c:8865,1
    - Dst: ssl_GetSpecReadLock
      Src: /src/nss/lib/ssl/ssl3con.c:8870,1
    - Dst: ssl_ReleaseSpecReadLock
      Src: /src/nss/lib/ssl/ssl3con.c:8874,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:8886,1
    - Dst: ssl_GetSpecWriteLock
      Src: /src/nss/lib/ssl/ssl3con.c:8910,1
    - Dst: ssl3_ServerNameCompare
      Src: /src/nss/lib/ssl/ssl3con.c:8914,1
    - Dst: ssl_ReleaseSpecWriteLock
      Src: /src/nss/lib/ssl/ssl3con.c:8915,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/ssl3con.c:8923,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/ssl/ssl3con.c:8926,1
    - Dst: ssl_ReleaseSpecWriteLock
      Src: /src/nss/lib/ssl/ssl3con.c:8928,1
    - Dst: ssl_GetSpecWriteLock
      Src: /src/nss/lib/ssl/ssl3con.c:8944,1
    - Dst: ssl3_ServerNameCompare
      Src: /src/nss/lib/ssl/ssl3con.c:8948,1
    - Dst: ssl_ReleaseSpecWriteLock
      Src: /src/nss/lib/ssl/ssl3con.c:8949,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/ssl3con.c:8958,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/ssl/ssl3con.c:8960,1
    - Dst: ssl_ReleaseSpecWriteLock
      Src: /src/nss/lib/ssl/ssl3con.c:8961,1
    - Dst: ssl3_RegisterExtensionSender
      Src: /src/nss/lib/ssl/ssl3con.c:8971,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:8975,1
    - Dst: ssl3_FreeSniNameArray
      Src: /src/nss/lib/ssl/ssl3con.c:8982,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:8991,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:8992,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 98
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8994
      start: 8855
    functionDepth: 17
    functionLinenumber: 8855
    functionLinenumberEnd: 8994
    functionName: ssl3_ServerCallSNICallback
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - SSL3_SendAlert
    - PORT_Assert
    - ssl3_ExtensionNegotiated
    - ssl_GetSpecWriteLock
    - ssl3_RegisterExtensionSender
    - ssl3_FreeSniNameArray
    - SECITEM_CopyItem
    - PORT_SetError
    - ssl_GetSpecReadLock
    - ssl_ReleaseSpecReadLock
    - ssl3_ServerNameCompare
    - SECITEM_FreeItem
    - ssl_ReleaseSpecWriteLock
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_ServerCallSNICallback(sslSocket *ss)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_ExtensionNegotiated
      Src: /src/nss/lib/ssl/ssl3con.c:9006,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/ssl3con.c:9023,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/ssl3con.c:9025,1
    - Dst: SSL_CERT_IS
      Src: /src/nss/lib/ssl/ssl3con.c:9029,1
    - Dst: SSL_CERT_IS
      Src: /src/nss/lib/ssl/ssl3con.c:9030,1
    - Dst: SSL_CERT_IS
      Src: /src/nss/lib/ssl/ssl3con.c:9035,1
    - Dst: SSL_CERT_IS_EC
      Src: /src/nss/lib/ssl/ssl3con.c:9038,1
    - Dst: ssl_NamedGroupEnabled
      Src: /src/nss/lib/ssl/ssl3con.c:9039,1
    - Dst: ssl3_PickServerSignatureScheme
      Src: /src/nss/lib/ssl/ssl3con.c:9054,1
    - Dst: ssl_SignatureSchemeToAuthType
      Src: /src/nss/lib/ssl/ssl3con.c:9059,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:9063,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 36
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9065
      start: 8996
    functionDepth: 11
    functionLinenumber: 8996
    functionLinenumberEnd: 9065
    functionName: ssl3_SelectServerCert
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - SSL_CERT_IS
    - ssl3_ExtensionNegotiated
    - PR_NEXT_LINK
    - ssl3_PickServerSignatureScheme
    - PORT_SetError
    - SSL_CERT_IS_EC
    - ssl_NamedGroupEnabled
    - ssl_SignatureSchemeToAuthType
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_SelectServerCert(sslSocket *ss)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_GetNewRandom
      Src: /src/nss/lib/ssl/ssl3con.c:9073,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/ssl3con.c:9107,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/ssl3con.c:9112,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9122
      start: 9067
    functionDepth: 10
    functionLinenumber: 9067
    functionLinenumberEnd: 9122
    functionName: ssl_GenerateServerRandom
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - PORT_Memcpy
    - ssl3_GetNewRandom
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl_GenerateServerRandom(sslSocket *ss)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_ConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/ssl3con.c:9130,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:9136,1
    - Dst: dtls_DTLSVersionToTLSVersion
      Src: /src/nss/lib/ssl/ssl3con.c:9137,1
    - Dst: ssl3_ConsumeHandshake
      Src: /src/nss/lib/ssl/ssl3con.c:9143,1
    - Dst: ssl3_ConsumeHandshakeVariable
      Src: /src/nss/lib/ssl/ssl3con.c:9150,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:9158,1
    - Dst: ssl3_ConsumeHandshakeVariable
      Src: /src/nss/lib/ssl/ssl3con.c:9159,1
    - Dst: ssl3_ConsumeHandshakeVariable
      Src: /src/nss/lib/ssl/ssl3con.c:9166,1
    - Dst: ssl3_ConsumeHandshakeVariable
      Src: /src/nss/lib/ssl/ssl3con.c:9172,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 7
    argNames:
    - ss
    - b
    - length
    - sidBytes
    - cookieBytes
    - suites
    - comps
    argTypes:
    - sslSocket*
    - PRUint8**
    - PRUint32*
    - SECItem*
    - SECItem*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9177
      start: 9124
    functionDepth: 21
    functionLinenumber: 9124
    functionLinenumberEnd: 9177
    functionName: ssl3_HandleClientHelloPreamble
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - IS_DTLS
    - ssl3_ConsumeHandshake
    - dtls_DTLSVersionToTLSVersion
    - ssl3_ConsumeHandshakeVariable
    - ssl3_ConsumeHandshakeNumber
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_HandleClientHelloPreamble(sslSocket *ss, PRUint8 **b,
      PRUint32 *length, SECItem *sidBytes,\n                               SECItem
      *cookieBytes, SECItem *suites, SECItem *comps)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:9185,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/ssl3con.c:9186,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/ssl/ssl3con.c:9187,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/ssl3con.c:9189,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/ssl3con.c:9189,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/ssl3con.c:9196,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/ssl3con.c:9202,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:9209,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/ssl3con.c:9210,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/ssl3con.c:9219,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/ssl3con.c:9225,1
    - Dst: memchr
      Src: /src/nss/lib/ssl/ssl3con.c:9231,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/ssl3con.c:9232,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:9237,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/ssl3con.c:9238,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 42
    argCount: 4
    argNames:
    - ss
    - sidBytes
    - comps
    - cookieBytes
    argTypes:
    - sslSocket*
    - SECItem*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9244
      start: 9179
    functionDepth: 1
    functionLinenumber: 9179
    functionLinenumberEnd: 9244
    functionName: ssl3_ValidatePreambleWithVersion
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - IS_DTLS
    - memchr
    - PORT_GetError
    - SECITEM_CopyItem
    - FATAL_ERROR
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_ValidatePreambleWithVersion(sslSocket *ss, const SECItem
      *sidBytes, const SECItem *comps,\n                                 const SECItem
      *cookieBytes)"
  - BBCount: 41
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3con.c:9270,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:9271,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:9273,1
    - Dst: ssl_HaveRecvBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:9273,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:9274,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:9274,1
    - Dst: SSL_ASSERT_HASHES_EMPTY
      Src: /src/nss/lib/ssl/ssl3con.c:9300,1
    - Dst: ssl_GetPeerInfo
      Src: /src/nss/lib/ssl/ssl3con.c:9303,1
    - Dst: ssl3_ResetExtensionData
      Src: /src/nss/lib/ssl/ssl3con.c:9311,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:9314,1
    - Dst: dtls_RehandshakeCleanup
      Src: /src/nss/lib/ssl/ssl3con.c:9315,1
    - Dst: ssl3_HandleClientHelloPreamble
      Src: /src/nss/lib/ssl/ssl3con.c:9318,1
    - Dst: ssl3_ConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/ssl3con.c:9332,1
    - Dst: ssl3_ParseExtensions
      Src: /src/nss/lib/ssl/ssl3con.c:9342,1
    - Dst: ssl3_FindExtension
      Src: /src/nss/lib/ssl/ssl3con.c:9348,1
    - Dst: tls13_NegotiateVersion
      Src: /src/nss/lib/ssl/ssl3con.c:9350,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/ssl3con.c:9352,1
    - Dst: ssl3_NegotiateVersion
      Src: /src/nss/lib/ssl/ssl3con.c:9359,1
    - Dst: PR_MIN
      Src: /src/nss/lib/ssl/ssl3con.c:9360,1
    - Dst: ssl_GetSpecWriteLock
      Src: /src/nss/lib/ssl/ssl3con.c:9380,1
    - Dst: ssl_SetSpecVersions
      Src: /src/nss/lib/ssl/ssl3con.c:9381,1
    - Dst: ssl_ReleaseSpecWriteLock
      Src: /src/nss/lib/ssl/ssl3con.c:9382,1
    - Dst: ssl3_FindExtension
      Src: /src/nss/lib/ssl/ssl3con.c:9394,1
    - Dst: tls13_MaybeHandleEch
      Src: /src/nss/lib/ssl/ssl3con.c:9398,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/ssl3con.c:9401,1
    - Dst: ssl3_ValidatePreambleWithVersion
      Src: /src/nss/lib/ssl/ssl3con.c:9406,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/ssl3con.c:9408,1
    - Dst: ssl3_HandleParsedExtensions
      Src: /src/nss/lib/ssl/ssl3con.c:9413,1
    - Dst: ssl3_DestroyRemoteExtensions
      Src: /src/nss/lib/ssl/ssl3con.c:9414,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/ssl3con.c:9416,1
    - Dst: ssl3_ExtensionNegotiated
      Src: /src/nss/lib/ssl/ssl3con.c:9435,1
    - Dst: ssl3_HandleExtensions
      Src: /src/nss/lib/ssl/ssl3con.c:9445,1
    - Dst: ssl3_ExtensionNegotiated
      Src: /src/nss/lib/ssl/ssl3con.c:9456,1
    - Dst: ssl3_ExtensionNegotiated
      Src: /src/nss/lib/ssl/ssl3con.c:9464,1
    - Dst: ssl3_ExtensionNegotiated
      Src: /src/nss/lib/ssl/ssl3con.c:9478,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3con.c:9481,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:9482,1
    - Dst: ssl_Time
      Src: /src/nss/lib/ssl/ssl3con.c:9487,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:9500,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/ssl3con.c:9504,1
    - Dst: ssl_FreeSID
      Src: /src/nss/lib/ssl/ssl3con.c:9515,1
    - Dst: SSL_AtomicIncrementLong
      Src: /src/nss/lib/ssl/ssl3con.c:9532,1
    - Dst: ssl_FreeSID
      Src: /src/nss/lib/ssl/ssl3con.c:9533,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:9539,1
    - Dst: ssl3_DisableNonDTLSSuites
      Src: /src/nss/lib/ssl/ssl3con.c:9540,1
    - Dst: dtls_ReceivedFirstMessageInFlight
      Src: /src/nss/lib/ssl/ssl3con.c:9541,1
    - Dst: tls13_HandleClientHelloPart2
      Src: /src/nss/lib/ssl/ssl3con.c:9545,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/ssl3con.c:9548,1
    - Dst: ssl3_HandleClientHelloPart2
      Src: /src/nss/lib/ssl/ssl3con.c:9551,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/ssl3con.c:9555,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:9561,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/ssl3con.c:9564,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:9565,1
    CyclomaticComplexity: 81
    EdgeCount: 81
    ICount: 210
    argCount: 3
    argNames:
    - ss
    - b
    - length
    argTypes:
    - sslSocket*
    - PRUint8*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9567
      start: 9250
    functionDepth: 22
    functionLinenumber: 9250
    functionLinenumberEnd: 9567
    functionName: ssl3_HandleClientHello
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - ssl3_HandleExtensions
    - ssl3_DisableNonDTLSSuites
    - ssl3_ExtensionNegotiated
    - ssl3_ResetExtensionData
    - SSL3_SendAlert
    - PORT_Memcpy
    - ssl_FreeSID
    - PORT_SetError
    - ssl3_HandleParsedExtensions
    - ssl3_ParseExtensions
    - ssl_GetPeerInfo
    - tls13_HandleClientHelloPart2
    - IS_DTLS
    - PORT_Assert
    - SECITEM_FreeItem
    - ssl_HaveSSL3HandshakeLock
    - ssl_Time
    - PR_MIN
    - ssl_SetSpecVersions
    - ssl_GetSpecWriteLock
    - ssl3_ValidatePreambleWithVersion
    - ssl3_DestroyRemoteExtensions
    - tls13_NegotiateVersion
    - dtls_RehandshakeCleanup
    - ssl3_HandleClientHelloPart2
    - SSL_AtomicIncrementLong
    - ssl_HaveRecvBufLock
    - ssl3_NegotiateVersion
    - dtls_ReceivedFirstMessageInFlight
    - ssl3_HandleClientHelloPreamble
    - SSL_ASSERT_HASHES_EMPTY
    - SSL_TRC
    - tls13_MaybeHandleEch
    - SSL_GETPID
    - PORT_GetError
    - ssl3_FindExtension
    - ssl3_ConsumeHandshakeNumber
    - ssl_ReleaseSpecWriteLock
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_HandleClientHello(sslSocket *ss, PRUint8 *b, PRUint32
      length)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PK11_UnwrapSymKeyWithFlags
      Src: /src/nss/lib/ssl/ssl3con.c:9581,1
    - Dst: PK11_GetBestSlot
      Src: /src/nss/lib/ssl/ssl3con.c:9585,1
    - Dst: PK11_MoveSymKey
      Src: /src/nss/lib/ssl/ssl3con.c:9594,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/ssl/ssl3con.c:9596,1
    - Dst: PK11_UnwrapSymKeyWithFlags
      Src: /src/nss/lib/ssl/ssl3con.c:9600,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/ssl3con.c:9603,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 9
    argNames:
    - wrapKey
    - wrapType
    - param
    - wrappedKey
    - target
    - operation
    - keySize
    - keyFlags
    - pinArg
    argTypes:
    - PK11SymKey*
    - CK_MECHANISM_TYPE
    - SECItem*
    - SECItem*
    - CK_MECHANISM_TYPE
    - CK_ATTRIBUTE_TYPE
    - int
    - CK_FLAGS
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9606
      start: 9571
    functionDepth: 11
    functionLinenumber: 9571
    functionLinenumberEnd: 9606
    functionName: ssl_unwrapSymKey
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - PK11_MoveSymKey
    - PK11_UnwrapSymKeyWithFlags
    - PK11_GetBestSlot
    - PK11_FreeSlot
    - PK11_FreeSymKey
    linkageType: ''
    returnType: PK11SymKey
    signature: "PK11SymKey *\nssl_unwrapSymKey(PK11SymKey *wrapKey,\n                 CK_MECHANISM_TYPE
      wrapType, SECItem *param,\n                 SECItem *wrappedKey,\n                 CK_MECHANISM_TYPE
      target, CK_ATTRIBUTE_TYPE operation,\n                 int keySize, CK_FLAGS
      keyFlags, void *pinArg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_GetWrappingKey
      Src: /src/nss/lib/ssl/ssl3con.c:9619,1
    - Dst: ssl_unwrapSymKey
      Src: /src/nss/lib/ssl/ssl3con.c:9629,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/ssl3con.c:9633,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3con.c:9635,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:9636,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - ss
    - sid
    - ms
    argTypes:
    - sslSocket*
    - sslSessionID*
    - PK11SymKey**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9640
      start: 9608
    functionDepth: 14
    functionLinenumber: 9608
    functionLinenumberEnd: 9640
    functionName: ssl3_UnwrapMasterSecretServer
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - SSL_TRC
    - SSL_GETPID
    - ssl3_GetWrappingKey
    - ssl_unwrapSymKey
    - PK11_FreeSymKey
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_UnwrapMasterSecretServer(sslSocket *ss, sslSessionID
      *sid, PK11SymKey **ms)
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: ssl_HashHandshakeMessage
      Src: /src/nss/lib/ssl/ssl3con.c:9656,1
    - Dst: ssl3_config_match_init
      Src: /src/nss/lib/ssl/ssl3con.c:9684,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/ssl3con.c:9686,1
    - Dst: ssl3_config_match
      Src: /src/nss/lib/ssl/ssl3con.c:9689,1
    - Dst: ssl3_SetupCipherSuite
      Src: /src/nss/lib/ssl/ssl3con.c:9698,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/ssl3con.c:9701,1
    - Dst: ssl3_NegotiateCipherSuite
      Src: /src/nss/lib/ssl/ssl3con.c:9711,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/ssl3con.c:9714,1
    - Dst: ssl_FindServerCert
      Src: /src/nss/lib/ssl/ssl3con.c:9741,1
    - Dst: ssl3_ExtensionNegotiated
      Src: /src/nss/lib/ssl/ssl3con.c:9760,1
    - Dst: ssl_UncacheSessionID
      Src: /src/nss/lib/ssl/ssl3con.c:9774,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:9775,1
    - Dst: ssl_FreeSID
      Src: /src/nss/lib/ssl/ssl3con.c:9777,1
    - Dst: ssl3_UnwrapMasterSecretServer
      Src: /src/nss/lib/ssl/ssl3con.c:9783,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/ssl/ssl3con.c:9790,1
    - Dst: SSL_AtomicIncrementLong
      Src: /src/nss/lib/ssl/ssl3con.c:9796,1
    - Dst: SSL_AtomicIncrementLong
      Src: /src/nss/lib/ssl/ssl3con.c:9798,1
    - Dst: ssl_LookupNamedGroup
      Src: /src/nss/lib/ssl/ssl3con.c:9805,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/ssl/ssl3con.c:9809,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/ssl3con.c:9819,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/ssl/ssl3con.c:9821,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/ssl3con.c:9823,1
    - Dst: ssl3_FreeSniNameArray
      Src: /src/nss/lib/ssl/ssl3con.c:9830,1
    - Dst: ssl_GetXmitBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:9832,1
    - Dst: ssl3_SendServerHello
      Src: /src/nss/lib/ssl/ssl3con.c:9835,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/ssl3con.c:9837,1
    - Dst: ssl3_InitPendingCipherSpecs
      Src: /src/nss/lib/ssl/ssl3con.c:9842,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/ssl3con.c:9844,1
    - Dst: ssl3_SendChangeCipherSpecs
      Src: /src/nss/lib/ssl/ssl3con.c:9848,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/ssl3con.c:9850,1
    - Dst: ssl3_SendFinished
      Src: /src/nss/lib/ssl/ssl3con.c:9853,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/ssl3con.c:9856,1
    - Dst: ssl_ReleaseXmitBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:9860,1
    - Dst: SSL_AtomicIncrementLong
      Src: /src/nss/lib/ssl/ssl3con.c:9867,1
    - Dst: ssl_UncacheSessionID
      Src: /src/nss/lib/ssl/ssl3con.c:9868,1
    - Dst: ssl_FreeSID
      Src: /src/nss/lib/ssl/ssl3con.c:9869,1
    - Dst: SSL_AtomicIncrementLong
      Src: /src/nss/lib/ssl/ssl3con.c:9872,1
    - Dst: ssl3_ExtensionNegotiated
      Src: /src/nss/lib/ssl/ssl3con.c:9883,1
    - Dst: ssl3_KEASupportsTickets
      Src: /src/nss/lib/ssl/ssl3con.c:9884,1
    - Dst: ssl3_RegisterExtensionSender
      Src: /src/nss/lib/ssl/ssl3con.c:9885,1
    - Dst: ssl3_ServerCallSNICallback
      Src: /src/nss/lib/ssl/ssl3con.c:9889,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/ssl3con.c:9892,1
    - Dst: ssl3_SelectServerCert
      Src: /src/nss/lib/ssl/ssl3con.c:9896,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/ssl3con.c:9898,1
    - Dst: ssl3_NewSessionID
      Src: /src/nss/lib/ssl/ssl3con.c:9903,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/ssl3con.c:9905,1
    - Dst: ssl3_ExtensionNegotiated
      Src: /src/nss/lib/ssl/ssl3con.c:9911,1
    - Dst: ssl_GetXmitBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:9914,1
    - Dst: ssl3_SendServerHelloSequence
      Src: /src/nss/lib/ssl/ssl3con.c:9915,1
    - Dst: ssl_ReleaseXmitBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:9916,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/ssl3con.c:9918,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:9926,1
    - Dst: ssl_UncacheSessionID
      Src: /src/nss/lib/ssl/ssl3con.c:9930,1
    - Dst: ssl_FreeSID
      Src: /src/nss/lib/ssl/ssl3con.c:9931,1
    - Dst: ssl_ReleaseXmitBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:9935,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:9938,1
    CyclomaticComplexity: 68
    EdgeCount: 68
    ICount: 198
    argCount: 5
    argNames:
    - ss
    - suites
    - sid
    - msg
    - len
    argTypes:
    - sslSocket*
    - SECItem*
    - sslSessionID*
    - PRUint8*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9940
      start: 9642
    functionDepth: 18
    functionLinenumber: 9642
    functionLinenumberEnd: 9940
    functionName: ssl3_HandleClientHelloPart2
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - ssl3_ExtensionNegotiated
    - ssl_LookupNamedGroup
    - ssl3_FreeSniNameArray
    - ssl3_config_match
    - ssl3_config_match_init
    - CERT_DupCertificate
    - ssl3_NewSessionID
    - ssl3_KEASupportsTickets
    - SSL3_SendAlert
    - ssl_FreeSID
    - ssl_ReleaseXmitBufLock
    - PORT_SetError
    - ssl_FindServerCert
    - ssl3_SelectServerCert
    - ssl3_NegotiateCipherSuite
    - SECITEM_FreeItem
    - PORT_Assert
    - ssl_GetXmitBufLock
    - ssl3_UnwrapMasterSecretServer
    - ssl3_SendFinished
    - ssl_HashHandshakeMessage
    - ssl3_SendChangeCipherSpecs
    - ssl3_SendServerHello
    - ssl3_SendServerHelloSequence
    - SSL_AtomicIncrementLong
    - ssl3_InitPendingCipherSpecs
    - ssl_UncacheSessionID
    - PORT_GetError
    - SECITEM_CopyItem
    - ssl3_ServerCallSNICallback
    - ssl3_SetupCipherSuite
    - ssl3_RegisterExtensionSender
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_HandleClientHelloPart2(sslSocket *ss,\n                            SECItem
      *suites,\n                            sslSessionID *sid,\n                            const
      PRUint8 *msg,\n                            unsigned int len)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3con.c:9964,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:9964,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:9966,1
    - Dst: ssl_HaveRecvBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:9966,1
    - Dst: ssl_GetSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:9968,1
    - Dst: ssl3_RestartHandshakeHashes
      Src: /src/nss/lib/ssl/ssl3con.c:9975,1
    - Dst: ssl3_NegotiateVersion
      Src: /src/nss/lib/ssl/ssl3con.c:9997,1
    - Dst: ssl_GetSpecWriteLock
      Src: /src/nss/lib/ssl/ssl3con.c:10009,1
    - Dst: ssl_SetSpecVersions
      Src: /src/nss/lib/ssl/ssl3con.c:10010,1
    - Dst: ssl_ReleaseSpecWriteLock
      Src: /src/nss/lib/ssl/ssl3con.c:10011,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/ssl3con.c:10016,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:10017,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:10033,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/ssl/ssl3con.c:10035,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/ssl3con.c:10036,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/ssl3con.c:10039,1
    - Dst: ssl3_config_match_init
      Src: /src/nss/lib/ssl/ssl3con.c:10042,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/ssl3con.c:10043,1
    - Dst: ssl3_config_match
      Src: /src/nss/lib/ssl/ssl3con.c:10055,1
    - Dst: ssl3_SetupCipherSuite
      Src: /src/nss/lib/ssl/ssl3con.c:10062,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/ssl3con.c:10065,1
    - Dst: ssl3_HandleExtensions
      Src: /src/nss/lib/ssl/ssl3con.c:10098,1
    - Dst: ssl3_ExtensionNegotiated
      Src: /src/nss/lib/ssl/ssl3con.c:10104,1
    - Dst: ssl3_SelectServerCert
      Src: /src/nss/lib/ssl/ssl3con.c:10110,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/ssl3con.c:10112,1
    - Dst: SSL_AtomicIncrementLong
      Src: /src/nss/lib/ssl/ssl3con.c:10118,1
    - Dst: ssl3_NewSessionID
      Src: /src/nss/lib/ssl/ssl3con.c:10119,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/ssl3con.c:10121,1
    - Dst: ssl3_UpdateHandshakeHashes
      Src: /src/nss/lib/ssl/ssl3con.c:10128,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/ssl3con.c:10130,1
    - Dst: ssl_GetXmitBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:10134,1
    - Dst: ssl3_SendServerHelloSequence
      Src: /src/nss/lib/ssl/ssl3con.c:10135,1
    - Dst: ssl_ReleaseXmitBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:10136,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/ssl3con.c:10138,1
    - Dst: ssl_ReleaseSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:10142,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:10146,1
    - Dst: ssl_ReleaseSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:10148,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:10149,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 150
    argCount: 4
    argNames:
    - ss
    - buffer
    - length
    - padding
    argTypes:
    - sslSocket*
    - unsigned char*
    - unsigned int
    - PRUint8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10151
      start: 9946
    functionDepth: 17
    functionLinenumber: 9946
    functionLinenumberEnd: 10151
    functionName: ssl3_HandleV2ClientHello
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - ssl3_HandleExtensions
    - ssl3_ExtensionNegotiated
    - ssl_ReleaseSSL3HandshakeLock
    - ssl3_config_match
    - ssl3_config_match_init
    - SSL_DBG
    - ssl3_NewSessionID
    - SSL3_SendAlert
    - PORT_Memcpy
    - ssl_GetSSL3HandshakeLock
    - ssl_ReleaseXmitBufLock
    - PORT_SetError
    - ssl3_SelectServerCert
    - ssl3_UpdateHandshakeHashes
    - PORT_Assert
    - ssl_GetXmitBufLock
    - ssl_SetSpecVersions
    - ssl_GetSpecWriteLock
    - PRINT_BUF
    - ssl3_RestartHandshakeHashes
    - ssl3_SendServerHelloSequence
    - SSL_AtomicIncrementLong
    - ssl_HaveRecvBufLock
    - ssl3_NegotiateVersion
    - SSL_TRC
    - SSL_GETPID
    - PORT_GetError
    - PORT_Memset
    - ssl3_SetupCipherSuite
    - ssl_ReleaseSpecWriteLock
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_HandleV2ClientHello(sslSocket *ss, unsigned char *buffer,
      unsigned int length,\n                         PRUint8 padding)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PR_MIN
      Src: /src/nss/lib/ssl/ssl3con.c:10162,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:10163,1
    - Dst: dtls_TLSVersionToDTLSVersion
      Src: /src/nss/lib/ssl/ssl3con.c:10164,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3con.c:10166,1
    - Dst: ssl_GenerateServerRandom
      Src: /src/nss/lib/ssl/ssl3con.c:10174,1
    - Dst: sslBuffer_Append
      Src: /src/nss/lib/ssl/ssl3con.c:10180,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/ssl3con.c:10187,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3con.c:10190,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/ssl3con.c:10193,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3con.c:10200,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3con.c:10204,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/ssl3con.c:10208,1
    - Dst: sslBuffer_AppendBufferVariable
      Src: /src/nss/lib/ssl/ssl3con.c:10210,1
    - Dst: tls13_WriteServerEchHrrSignal
      Src: /src/nss/lib/ssl/ssl3con.c:10221,1
    - Dst: SSL_BUFFER_BASE
      Src: /src/nss/lib/ssl/ssl3con.c:10221,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/ssl3con.c:10222,1
    - Dst: tls13_WriteServerEchSignal
      Src: /src/nss/lib/ssl/ssl3con.c:10224,1
    - Dst: SSL_BUFFER_BASE
      Src: /src/nss/lib/ssl/ssl3con.c:10224,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/ssl3con.c:10225,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 58
    argCount: 4
    argNames:
    - ss
    - helloRetry
    - extensionBuf
    - messageBuf
    argTypes:
    - sslSocket*
    - PRBool
    - sslBuffer*
    - sslBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10230
      start: 10153
    functionDepth: 11
    functionLinenumber: 10153
    functionLinenumberEnd: 10230
    functionName: ssl_ConstructServerHello
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - IS_DTLS
    - sslBuffer_AppendBufferVariable
    - SSL_BUFFER_LEN
    - tls13_WriteServerEchSignal
    - SSL_BUFFER_BASE
    - PR_MIN
    - tls13_WriteServerEchHrrSignal
    - sslBuffer_AppendVariable
    - sslBuffer_AppendNumber
    - dtls_TLSVersionToDTLSVersion
    - ssl_GenerateServerRandom
    - sslBuffer_Append
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_ConstructServerHello(sslSocket *ss, PRBool helloRetry,\n
      \                        const sslBuffer *extensionBuf, sslBuffer *messageBuf)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3con.c:10245,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:10245,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:10248,1
    - Dst: ssl_HaveXmitBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:10248,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:10249,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:10249,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:10251,1
    - Dst: MSB
      Src: /src/nss/lib/ssl/ssl3con.c:10251,1
    - Dst: MSB
      Src: /src/nss/lib/ssl/ssl3con.c:10251,1
    - Dst: MSB
      Src: /src/nss/lib/ssl/ssl3con.c:10252,1
    - Dst: MSB
      Src: /src/nss/lib/ssl/ssl3con.c:10252,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:10253,1
    - Dst: ssl_ConstructExtensions
      Src: /src/nss/lib/ssl/ssl3con.c:10257,1
    - Dst: ssl_ConstructServerHello
      Src: /src/nss/lib/ssl/ssl3con.c:10262,1
    - Dst: ssl3_AppendHandshakeHeader
      Src: /src/nss/lib/ssl/ssl3con.c:10267,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/ssl3con.c:10268,1
    - Dst: ssl3_AppendHandshake
      Src: /src/nss/lib/ssl/ssl3con.c:10273,1
    - Dst: SSL_BUFFER_BASE
      Src: /src/nss/lib/ssl/ssl3con.c:10273,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/ssl3con.c:10274,1
    - Dst: ssl3_SetupBothPendingCipherSpecs
      Src: /src/nss/lib/ssl/ssl3con.c:10280,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/ssl3con.c:10286,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/ssl3con.c:10287,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/ssl3con.c:10291,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/ssl3con.c:10292,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10294
      start: 10238
    functionDepth: 12
    functionLinenumber: 10238
    functionLinenumberEnd: 10294
    functionName: ssl3_SendServerHello
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 3
    functionsReached:
    - PORT_Assert
    - SSL_BUFFER_LEN
    - ssl_HaveSSL3HandshakeLock
    - ssl_ConstructServerHello
    - SSL_BUFFER_BASE
    - ssl_HaveXmitBufLock
    - SSL_TRC
    - ssl_ConstructExtensions
    - SSL_GETPID
    - MSB
    - ssl3_AppendHandshake
    - ssl3_SetupBothPendingCipherSpecs
    - PORT_SetError
    - ssl3_AppendHandshakeHeader
    - sslBuffer_Clear
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_SendServerHello(sslSocket *ss)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/ssl3con.c:10311,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/ssl3con.c:10313,1
    - Dst: SECKEY_CreateDHPrivateKey
      Src: /src/nss/lib/ssl/ssl3con.c:10317,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:10319,1
    - Dst: ssl_NewEphemeralKeyPair
      Src: /src/nss/lib/ssl/ssl3con.c:10323,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/lib/ssl/ssl3con.c:10325,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/ssl/ssl3con.c:10326,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - groupDef
    - params
    - keyPair
    argTypes:
    - sslNamedGroupDef*
    - ssl3DHParams*
    - sslEphemeralKeyPair**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10333
      start: 10296
    functionDepth: 4
    functionLinenumber: 10296
    functionLinenumberEnd: 10333
    functionName: ssl_CreateDHEKeyPair
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 2
    functionsReached:
    - SECKEY_DestroyPublicKey
    - ssl_NewEphemeralKeyPair
    - PRINT_BUF
    - ssl_MapLowLevelError
    - SECKEY_CreateDHPrivateKey
    - SECKEY_DestroyPrivateKey
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_CreateDHEKeyPair(const sslNamedGroupDef *groupDef,\n
      \                    const ssl3DHParams *params,\n                     sslEphemeralKeyPair
      **keyPair)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:10356,1
    - Dst: ssl_SelectDHEGroup
      Src: /src/nss/lib/ssl/ssl3con.c:10360,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:10362,1
    - Dst: ssl_GetDHEParams
      Src: /src/nss/lib/ssl/ssl3con.c:10367,1
    - Dst: ssl_CreateDHEKeyPair
      Src: /src/nss/lib/ssl/ssl3con.c:10368,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:10370,1
    - Dst: PR_APPEND_LINK
      Src: /src/nss/lib/ssl/ssl3con.c:10373,1
    - Dst: ssl_SignatureSchemeToHashType
      Src: /src/nss/lib/ssl/ssl3con.c:10376,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/ssl3con.c:10383,1
    - Dst: ssl3_ComputeDHKeyHash
      Src: /src/nss/lib/ssl/ssl3con.c:10386,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:10392,1
    - Dst: ssl3_SignHashes
      Src: /src/nss/lib/ssl/ssl3con.c:10397,1
    - Dst: ssl3_AppendHandshakeHeader
      Src: /src/nss/lib/ssl/ssl3con.c:10411,1
    - Dst: ssl3_AppendHandshakeVariable
      Src: /src/nss/lib/ssl/ssl3con.c:10416,1
    - Dst: ssl3_AppendHandshakeVariable
      Src: /src/nss/lib/ssl/ssl3con.c:10422,1
    - Dst: ssl_AppendPaddedDHKeyShare
      Src: /src/nss/lib/ssl/ssl3con.c:10428,1
    - Dst: ssl3_AppendBufferToHandshake
      Src: /src/nss/lib/ssl/ssl3con.c:10432,1
    - Dst: ssl3_AppendHandshakeNumber
      Src: /src/nss/lib/ssl/ssl3con.c:10438,1
    - Dst: ssl3_AppendHandshakeVariable
      Src: /src/nss/lib/ssl/ssl3con.c:10444,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/ssl3con.c:10450,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/ssl3con.c:10451,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/ssl3con.c:10456,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/ssl3con.c:10457,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 87
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10459
      start: 10335
    functionDepth: 12
    functionLinenumber: 10335
    functionLinenumberEnd: 10459
    functionName: ssl3_SendDHServerKeyExchange
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - ssl_AppendPaddedDHKeyShare
    - ssl3_ComputeDHKeyHash
    - PORT_Free
    - ssl_SelectDHEGroup
    - PRINT_BUF
    - ssl_CreateDHEKeyPair
    - ssl3_SignHashes
    - PORT_SetError
    - ssl3_AppendHandshakeHeader
    - ssl_MapLowLevelError
    - PR_APPEND_LINK
    - ssl3_AppendHandshakeVariable
    - ssl3_AppendBufferToHandshake
    - ssl3_AppendHandshakeNumber
    - sslBuffer_Clear
    - ssl_GetDHEParams
    - ssl_SignatureSchemeToHashType
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_SendDHServerKeyExchange(sslSocket *ss)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3con.c:10466,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:10467,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:10469,1
    - Dst: ssl_HaveXmitBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:10469,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:10470,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:10470,1
    - Dst: ssl3_SendDHServerKeyExchange
      Src: /src/nss/lib/ssl/ssl3con.c:10474,1
    - Dst: ssl3_SendECDHServerKeyExchange
      Src: /src/nss/lib/ssl/ssl3con.c:10478,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:10484,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10489
      start: 10461
    functionDepth: 13
    functionLinenumber: 10461
    functionLinenumberEnd: 10489
    functionName: ssl3_SendServerKeyExchange
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    - ssl_HaveXmitBufLock
    - SSL_TRC
    - SSL_GETPID
    - ssl3_SendECDHServerKeyExchange
    - PORT_SetError
    - ssl3_SendDHServerKeyExchange
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_SendServerKeyExchange(sslSocket *ss)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_FilterSigAlgs
      Src: /src/nss/lib/ssl/ssl3con.c:10498,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/ssl/ssl3con.c:10499,1
    - Dst: ssl3_EncodeFilteredSigAlgs
      Src: /src/nss/lib/ssl/ssl3con.c:10504,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - ss
    - minVersion
    - forCert
    - grease
    - buf
    argTypes:
    - sslSocket*
    - PRUint16
    - PRBool
    - PRBool
    - sslBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10505
      start: 10491
    functionDepth: 1
    functionLinenumber: 10491
    functionLinenumberEnd: 10505
    functionName: ssl3_EncodeSigAlgs
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - ssl3_FilterSigAlgs
    - PR_ARRAY_SIZE
    - ssl3_EncodeFilteredSigAlgs
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_EncodeSigAlgs(const sslSocket *ss, PRUint16 minVersion,
      PRBool forCert,\n                   PRBool grease, sslBuffer *buf)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:10512,1
    - Dst: sslBuffer_Skip
      Src: /src/nss/lib/ssl/ssl3con.c:10519,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3con.c:10525,1
    - Dst: tls13_RandomGreaseValue
      Src: /src/nss/lib/ssl/ssl3con.c:10546,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/ssl3con.c:10553,1
    - Dst: sslBuffer_InsertLength
      Src: /src/nss/lib/ssl/ssl3con.c:10559,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 5
    argNames:
    - ss
    - schemes
    - numSchemes
    - grease
    - buf
    argTypes:
    - sslSocket*
    - SSLSignatureScheme*
    - PRUint32
    - PRBool
    - sslBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10560
      start: 10507
    functionDepth: 10
    functionLinenumber: 10507
    functionLinenumberEnd: 10560
    functionName: ssl3_EncodeFilteredSigAlgs
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 2
    functionsReached:
    - sslBuffer_InsertLength
    - sslBuffer_AppendNumber
    - PORT_SetError
    - sslBuffer_Skip
    - tls13_RandomGreaseValue
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_EncodeFilteredSigAlgs(const sslSocket *ss, const SSLSignatureScheme
      *schemes,\n                           PRUint32 numSchemes, PRBool grease, sslBuffer
      *buf)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:10580,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:10581,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:10582,1
    - Dst: ssl_IsRsaeSignatureScheme
      Src: /src/nss/lib/ssl/ssl3con.c:10590,1
    - Dst: ssl_SignatureSchemeAccepted
      Src: /src/nss/lib/ssl/ssl3con.c:10593,1
    - Dst: ssl_IsRsaeSignatureScheme
      Src: /src/nss/lib/ssl/ssl3con.c:10601,1
    - Dst: ssl_SignatureSchemeAccepted
      Src: /src/nss/lib/ssl/ssl3con.c:10604,1
    - Dst: ssl_SignatureSchemeAccepted
      Src: /src/nss/lib/ssl/ssl3con.c:10607,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 27
    argCount: 7
    argNames:
    - ss
    - minVersion
    - disableRsae
    - forCert
    - maxSchemes
    - filteredSchemes
    - numFilteredSchemes
    argTypes:
    - sslSocket*
    - PRUint16
    - PRBool
    - PRBool
    - unsigned int
    - SSLSignatureScheme*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10615
      start: 10574
    functionDepth: 8
    functionLinenumber: 10574
    functionLinenumberEnd: 10615
    functionName: ssl3_FilterSigAlgs
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 2
    functionsReached:
    - PORT_Assert
    - ssl_IsRsaeSignatureScheme
    - ssl_SignatureSchemeAccepted
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_FilterSigAlgs(const sslSocket *ss, PRUint16 minVersion,
      PRBool disableRsae,\n                   PRBool forCert,\n                   unsigned
      int maxSchemes, SSLSignatureScheme *filteredSchemes,\n                   unsigned
      int *numFilteredSchemes)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: SSL_BUFFER
      Src: /src/nss/lib/ssl/ssl3con.c:10631,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3con.c:10633,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:10634,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:10636,1
    - Dst: ssl_HaveXmitBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:10636,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:10637,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:10637,1
    - Dst: ssl_GetCertificateRequestCAs
      Src: /src/nss/lib/ssl/ssl3con.c:10641,1
    - Dst: ssl3_EncodeSigAlgs
      Src: /src/nss/lib/ssl/ssl3con.c:10650,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/ssl3con.c:10655,1
    - Dst: ssl3_AppendHandshakeHeader
      Src: /src/nss/lib/ssl/ssl3con.c:10658,1
    - Dst: ssl3_AppendHandshakeVariable
      Src: /src/nss/lib/ssl/ssl3con.c:10662,1
    - Dst: ssl3_AppendHandshake
      Src: /src/nss/lib/ssl/ssl3con.c:10667,1
    - Dst: SSL_BUFFER_BASE
      Src: /src/nss/lib/ssl/ssl3con.c:10667,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/ssl3con.c:10668,1
    - Dst: ssl3_AppendHandshakeNumber
      Src: /src/nss/lib/ssl/ssl3con.c:10673,1
    - Dst: ssl3_AppendHandshakeVariable
      Src: /src/nss/lib/ssl/ssl3con.c:10678,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10685
      start: 10617
    functionDepth: 6
    functionLinenumber: 10617
    functionLinenumberEnd: 10685
    functionName: ssl3_SendCertificateRequest
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - SSL_BUFFER_LEN
    - ssl_HaveSSL3HandshakeLock
    - SSL_BUFFER_BASE
    - ssl_HaveXmitBufLock
    - SSL_TRC
    - SSL_GETPID
    - ssl3_AppendHandshake
    - SSL_BUFFER
    - ssl3_AppendHandshakeNumber
    - ssl3_AppendHandshakeHeader
    - ssl3_EncodeSigAlgs
    - ssl3_AppendHandshakeVariable
    - ssl_GetCertificateRequestCAs
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_SendCertificateRequest(sslSocket *ss)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3con.c:10692,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:10693,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:10695,1
    - Dst: ssl_HaveXmitBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:10695,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:10696,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:10696,1
    - Dst: ssl3_AppendHandshakeHeader
      Src: /src/nss/lib/ssl/ssl3con.c:10698,1
    - Dst: ssl3_FlushHandshake
      Src: /src/nss/lib/ssl/ssl3con.c:10702,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10707
      start: 10687
    functionDepth: 6
    functionLinenumber: 10687
    functionLinenumberEnd: 10707
    functionName: ssl3_SendServerHelloDone
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    - ssl_HaveXmitBufLock
    - SSL_TRC
    - SSL_GETPID
    - ssl3_AppendHandshakeHeader
    - ssl3_FlushHandshake
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_SendServerHelloDone(sslSocket *ss)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3con.c:10726,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:10727,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:10728,1
    - Dst: ssl_HaveRecvBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:10728,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:10729,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:10729,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:10738,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:10741,1
    - Dst: ssl_ConsumeSignatureScheme
      Src: /src/nss/lib/ssl/ssl3con.c:10742,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/ssl3con.c:10744,1
    - Dst: ssl_CheckSignatureSchemeConsistency
      Src: /src/nss/lib/ssl/ssl3con.c:10749,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/ssl3con.c:10752,1
    - Dst: ssl3_ComputeHandshakeHash
      Src: /src/nss/lib/ssl/ssl3con.c:10757,1
    - Dst: ssl_SignatureSchemeToHashType
      Src: /src/nss/lib/ssl/ssl3con.c:10759,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:10762,1
    - Dst: ssl3_ComputeHandshakeHashes
      Src: /src/nss/lib/ssl/ssl3con.c:10764,1
    - Dst: ssl3_ConsumeHandshakeVariable
      Src: /src/nss/lib/ssl/ssl3con.c:10773,1
    - Dst: ssl3_VerifySignedHashes
      Src: /src/nss/lib/ssl/ssl3con.c:10781,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/ssl3con.c:10783,1
    - Dst: ssl_HashHandshakeMessage
      Src: /src/nss/lib/ssl/ssl3con.c:10795,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:10798,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:10806,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:10808,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 73
    argCount: 3
    argNames:
    - ss
    - b
    - length
    argTypes:
    - sslSocket*
    - PRUint8*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10810
      start: 10713
    functionDepth: 21
    functionLinenumber: 10713
    functionLinenumberEnd: 10810
    functionName: ssl3_HandleCertificateVerify
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - SSL3_SendAlert
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    - ssl_CheckSignatureSchemeConsistency
    - ssl3_ComputeHandshakeHashes
    - SSL_TRC
    - ssl3_ConsumeHandshakeVariable
    - SSL_GETPID
    - PORT_GetError
    - ssl3_VerifySignedHashes
    - ssl_HashHandshakeMessage
    - PORT_SetError
    - ssl_ConsumeSignatureScheme
    - ssl3_ComputeHandshakeHash
    - ssl_HaveRecvBufLock
    - ssl_SignatureSchemeToHashType
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_HandleCertificateVerify(sslSocket *ss, PRUint8 *b, PRUint32
      length)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:10833,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:10833,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:10841,1
    - Dst: ssl_HaveSpecWriteLock
      Src: /src/nss/lib/ssl/ssl3con.c:10841,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:10842,1
    - Dst: ssl3_Alg2Mech
      Src: /src/nss/lib/ssl/ssl3con.c:10849,1
    - Dst: PK11_GetBestSlotMultiple
      Src: /src/nss/lib/ssl/ssl3con.c:10851,1
    - Dst: PK11_GetBestSlotMultiple
      Src: /src/nss/lib/ssl/ssl3con.c:10854,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:10856,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:10863,1
    - Dst: dtls_TLSVersionToDTLSVersion
      Src: /src/nss/lib/ssl/ssl3con.c:10866,1
    - Dst: MSB
      Src: /src/nss/lib/ssl/ssl3con.c:10867,1
    - Dst: LSB
      Src: /src/nss/lib/ssl/ssl3con.c:10868,1
    - Dst: MSB
      Src: /src/nss/lib/ssl/ssl3con.c:10870,1
    - Dst: LSB
      Src: /src/nss/lib/ssl/ssl3con.c:10871,1
    - Dst: PK11_KeyGen
      Src: /src/nss/lib/ssl/ssl3con.c:10877,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/ssl/ssl3con.c:10879,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:10881,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 3
    argNames:
    - ss
    - spec
    - serverKeySlot
    argTypes:
    - sslSocket*
    - ssl3CipherSpec*
    - PK11SlotInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10884
      start: 10822
    functionDepth: 8
    functionLinenumber: 10822
    functionLinenumberEnd: 10884
    functionName: ssl3_GenerateRSAPMS
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - ssl_HaveSpecWriteLock
    - PORT_Assert
    - IS_DTLS
    - ssl_HaveSSL3HandshakeLock
    - MSB
    - LSB
    - PORT_SetError
    - dtls_TLSVersionToDTLSVersion
    - ssl_MapLowLevelError
    - PK11_GetBestSlotMultiple
    - PK11_KeyGen
    - PK11_FreeSlot
    - ssl3_Alg2Mech
    linkageType: ''
    returnType: PK11SymKey
    signature: "PK11SymKey *\nssl3_GenerateRSAPMS(sslSocket *ss, ssl3CipherSpec *spec,\n
      \                   PK11SlotInfo *serverKeySlot)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - x
    - y
    - c
    argTypes:
    - PK11SymKey**
    - PK11SymKey**
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10901
      start: 10886
    functionDepth: 0
    functionLinenumber: 10886
    functionLinenumberEnd: 10901
    functionName: ssl3_CSwapPK11SymKey
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ssl3_CSwapPK11SymKey(PK11SymKey **x, PK11SymKey **y, PRBool c)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:10927,1
    - Dst: ssl_HaveRecvBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:10927,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:10928,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:10928,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:10929,1
    - Dst: ssl3_ConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/ssl3con.c:10936,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:10938,1
    - Dst: PK11_GetSlotFromPrivateKey
      Src: /src/nss/lib/ssl/ssl3con.c:10969,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:10971,1
    - Dst: PK11_DoesMechanism
      Src: /src/nss/lib/ssl/ssl3con.c:10975,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/ssl/ssl3con.c:10976,1
    - Dst: PK11_GetBestSlot
      Src: /src/nss/lib/ssl/ssl3con.c:10977,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:10979,1
    - Dst: ssl_GetSpecWriteLock
      Src: /src/nss/lib/ssl/ssl3con.c:10984,1
    - Dst: ssl3_GenerateRSAPMS
      Src: /src/nss/lib/ssl/ssl3con.c:10985,1
    - Dst: ssl_ReleaseSpecWriteLock
      Src: /src/nss/lib/ssl/ssl3con.c:10986,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/ssl/ssl3con.c:10987,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:10990,1
    - Dst: PK11_PubUnwrapSymKey
      Src: /src/nss/lib/ssl/ssl3con.c:11000,1
    - Dst: ssl3_CSwapPK11SymKey
      Src: /src/nss/lib/ssl/ssl3con.c:11003,1
    - Dst: ssl3_ComputeMasterSecret
      Src: /src/nss/lib/ssl/ssl3con.c:11010,1
    - Dst: ssl3_CSwapPK11SymKey
      Src: /src/nss/lib/ssl/ssl3con.c:11013,1
    - Dst: ssl3_InitPendingCipherSpecs
      Src: /src/nss/lib/ssl/ssl3con.c:11016,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/ssl3con.c:11019,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/ssl3con.c:11020,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:11023,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 49
    argCount: 4
    argNames:
    - ss
    - b
    - length
    - serverKeyPair
    argTypes:
    - sslSocket*
    - PRUint8*
    - PRUint32
    - sslKeyPair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11028
      start: 10915
    functionDepth: 20
    functionLinenumber: 10915
    functionLinenumberEnd: 11028
    functionName: ssl3_HandleRSAClientKeyExchange
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - PK11_PubUnwrapSymKey
    - PK11_GetBestSlot
    - PK11_DoesMechanism
    - SSL3_SendAlert
    - ssl3_ComputeMasterSecret
    - PORT_SetError
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    - ssl_GetSpecWriteLock
    - ssl3_CSwapPK11SymKey
    - ssl_MapLowLevelError
    - ssl_HaveRecvBufLock
    - PK11_FreeSlot
    - ssl3_GenerateRSAPMS
    - ssl3_InitPendingCipherSpecs
    - ssl_ReleaseSpecWriteLock
    - ssl3_ConsumeHandshakeNumber
    - PK11_GetSlotFromPrivateKey
    - PK11_FreeSymKey
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_HandleRSAClientKeyExchange(sslSocket *ss,\n                                PRUint8
      *b,\n                                PRUint32 length,\n                                sslKeyPair
      *serverKeyPair)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:11042,1
    - Dst: ssl_HaveRecvBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:11042,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:11043,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:11043,1
    - Dst: ssl3_ConsumeHandshakeVariable
      Src: /src/nss/lib/ssl/ssl3con.c:11051,1
    - Dst: ssl_IsValidDHEShare
      Src: /src/nss/lib/ssl/ssl3con.c:11057,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:11059,1
    - Dst: PK11_PubDerive
      Src: /src/nss/lib/ssl/ssl3con.c:11071,1
    - Dst: ssl_FreeEphemeralKeyPairs
      Src: /src/nss/lib/ssl/ssl3con.c:11074,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:11075,1
    - Dst: ssl3_InitPendingCipherSpecs
      Src: /src/nss/lib/ssl/ssl3con.c:11079,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/ssl3con.c:11080,1
    - Dst: ssl_FreeEphemeralKeyPairs
      Src: /src/nss/lib/ssl/ssl3con.c:11081,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 4
    argNames:
    - ss
    - b
    - length
    - serverKeyPair
    argTypes:
    - sslSocket*
    - PRUint8*
    - PRUint32
    - sslKeyPair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11083
      start: 11030
    functionDepth: 21
    functionLinenumber: 11030
    functionLinenumberEnd: 11083
    functionName: ssl3_HandleDHClientKeyExchange
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    - ssl_IsValidDHEShare
    - ssl3_InitPendingCipherSpecs
    - ssl3_ConsumeHandshakeVariable
    - PORT_SetError
    - ssl_MapLowLevelError
    - PK11_PubDerive
    - ssl_HaveRecvBufLock
    - ssl_FreeEphemeralKeyPairs
    - PK11_FreeSymKey
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_HandleDHClientKeyExchange(sslSocket *ss,\n                               PRUint8
      *b,\n                               PRUint32 length,\n                               sslKeyPair
      *serverKeyPair)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3con.c:11096,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:11097,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:11099,1
    - Dst: ssl_HaveRecvBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:11099,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:11100,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:11100,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:11103,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:11104,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:11113,1
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/lib/ssl/ssl3con.c:11113,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:11114,1
    - Dst: PR_PREV_LINK
      Src: /src/nss/lib/ssl/ssl3con.c:11114,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/ssl3con.c:11115,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/ssl3con.c:11116,1
    - Dst: SECKEY_PublicKeyStrengthInBits
      Src: /src/nss/lib/ssl/ssl3con.c:11119,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:11126,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:11127,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:11130,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:11131,1
    - Dst: ssl3_HandleRSAClientKeyExchange
      Src: /src/nss/lib/ssl/ssl3con.c:11137,1
    - Dst: ssl3_HandleDHClientKeyExchange
      Src: /src/nss/lib/ssl/ssl3con.c:11141,1
    - Dst: ssl3_HandleECDHClientKeyExchange
      Src: /src/nss/lib/ssl/ssl3con.c:11145,1
    - Dst: ssl3_HandshakeFailure
      Src: /src/nss/lib/ssl/ssl3con.c:11149,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:11150,1
    - Dst: ssl_FreeEphemeralKeyPairs
      Src: /src/nss/lib/ssl/ssl3con.c:11153,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/ssl3con.c:11161,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:11162,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:11163,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 51
    argCount: 3
    argNames:
    - ss
    - b
    - length
    argTypes:
    - sslSocket*
    - PRUint8*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11166
      start: 11089
    functionDepth: 22
    functionLinenumber: 11089
    functionLinenumberEnd: 11166
    functionName: ssl3_HandleClientKeyExchange
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - SSL3_SendAlert
    - PORT_Assert
    - ssl3_HandleECDHClientKeyExchange
    - ssl_HaveSSL3HandshakeLock
    - SECKEY_PublicKeyStrengthInBits
    - ssl3_HandleRSAClientKeyExchange
    - ssl3_HandshakeFailure
    - SSL_TRC
    - ssl3_HandleDHClientKeyExchange
    - SSL_GETPID
    - PR_NEXT_LINK
    - PORT_GetError
    - PORT_SetError
    - ssl_HaveRecvBufLock
    - ssl_FreeEphemeralKeyPairs
    - PR_CLIST_IS_EMPTY
    - PR_PREV_LINK
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_HandleClientKeyExchange(sslSocket *ss, PRUint8 *b, PRUint32
      length)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:11178,1
    - Dst: ssl3_AppendHandshakeHeader
      Src: /src/nss/lib/ssl/ssl3con.c:11184,1
    - Dst: ssl3_AppendHandshakeVariable
      Src: /src/nss/lib/ssl/ssl3con.c:11190,1
    - Dst: ssl3_AppendHandshakeNumber
      Src: /src/nss/lib/ssl/ssl3con.c:11196,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11197
      start: 11169
    functionDepth: 6
    functionLinenumber: 11169
    functionLinenumberEnd: 11197
    functionName: ssl3_SendEmptyCertificate
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 2
    functionsReached:
    - ssl3_AppendHandshakeNumber
    - PORT_Assert
    - ssl3_AppendHandshakeHeader
    - ssl3_AppendHandshakeVariable
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_SendEmptyCertificate(sslSocket *ss)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_EncodeSessionTicket
      Src: /src/nss/lib/ssl/ssl3con.c:11210,1
    - Dst: ssl3_AppendHandshakeHeader
      Src: /src/nss/lib/ssl/ssl3con.c:11217,1
    - Dst: ssl3_AppendHandshakeNumber
      Src: /src/nss/lib/ssl/ssl3con.c:11223,1
    - Dst: ssl3_AppendHandshakeVariable
      Src: /src/nss/lib/ssl/ssl3con.c:11228,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/ssl3con.c:11236,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11239
      start: 11203
    functionDepth: 6
    functionLinenumber: 11203
    functionLinenumberEnd: 11239
    functionName: ssl3_SendNewSessionTicket
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - ssl3_AppendHandshakeNumber
    - ssl3_AppendHandshakeHeader
    - ssl3_AppendHandshakeVariable
    - ssl3_EncodeSessionTicket
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_SendNewSessionTicket(sslSocket *ss)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3con.c:11248,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:11249,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:11251,1
    - Dst: ssl_HaveRecvBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:11251,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:11252,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:11252,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:11254,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:11255,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:11258,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:11259,1
    - Dst: ssl_Time
      Src: /src/nss/lib/ssl/ssl3con.c:11267,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:11269,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:11270,1
    - Dst: ssl3_ConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/ssl3con.c:11274,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:11276,1
    - Dst: ssl3_ConsumeHandshakeVariable
      Src: /src/nss/lib/ssl/ssl3con.c:11281,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:11283,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:11284,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/ssl/ssl3con.c:11290,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 3
    argNames:
    - ss
    - b
    - length
    argTypes:
    - sslSocket*
    - PRUint8*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11300
      start: 11241
    functionDepth: 21
    functionLinenumber: 11241
    functionLinenumberEnd: 11300
    functionName: ssl3_HandleNewSessionTicket
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - SSL3_SendAlert
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    - ssl_Time
    - SSL_TRC
    - ssl3_ConsumeHandshakeVariable
    - SSL_GETPID
    - SECITEM_CopyItem
    - PORT_SetError
    - ssl_HaveRecvBufLock
    - ssl3_ConsumeHandshakeNumber
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_HandleNewSessionTicket(sslSocket *ss, PRUint8 *b, PRUint32
      length)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/ssl/ssl3con.c:11320,1
    - Dst: strstr
      Src: /src/nss/lib/ssl/ssl3con.c:11323,1
    - Dst: strstr
      Src: /src/nss/lib/ssl/ssl3con.c:11324,1
    - Dst: PR_ATOMIC_INCREMENT
      Src: /src/nss/lib/ssl/ssl3con.c:11325,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/ssl/ssl3con.c:11326,1
    - Dst: atoi
      Src: /src/nss/lib/ssl/ssl3con.c:11327,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/ssl/ssl3con.c:11329,1
    - Dst: atoi
      Src: /src/nss/lib/ssl/ssl3con.c:11330,1
    - Dst: snprintf
      Src: /src/nss/lib/ssl/ssl3con.c:11334,1
    - Dst: PR_Open
      Src: /src/nss/lib/ssl/ssl3con.c:11335,1
    - Dst: PR_GetOpenFileInfo
      Src: /src/nss/lib/ssl/ssl3con.c:11339,1
    - Dst: PR_Close
      Src: /src/nss/lib/ssl/ssl3con.c:11341,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/ssl/ssl3con.c:11344,1
    - Dst: PR_Read
      Src: /src/nss/lib/ssl/ssl3con.c:11346,1
    - Dst: PR_Close
      Src: /src/nss/lib/ssl/ssl3con.c:11348,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/ssl3con.c:11350,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:11351,1
    - Dst: fprintf
      Src: /src/nss/lib/ssl/ssl3con.c:11354,1
    - Dst: fprintf
      Src: /src/nss/lib/ssl/ssl3con.c:11358,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 2
    argNames:
    - pCertItem
    - pIndex
    argTypes:
    - SECItem*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11361
      start: 11305
    functionDepth: 1
    functionLinenumber: 11305
    functionLinenumberEnd: 11361
    functionName: get_fake_cert
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - PR_ATOMIC_INCREMENT
    - atoi
    - PR_GetEnvSecure
    - SECITEM_AllocItem
    - PR_Read
    - strstr
    - snprintf
    - PR_Open
    - PR_GetOpenFileInfo
    - PORT_SetError
    - fprintf
    - PR_Close
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus get_fake_cert(SECItem *pCertItem, int *pIndex)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3con.c:11383,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:11384,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:11386,1
    - Dst: ssl_HaveXmitBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:11386,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:11387,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:11387,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/ssl3con.c:11388,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/ssl/ssl3con.c:11391,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:11394,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/ssl/ssl3con.c:11397,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/ssl/ssl3con.c:11400,1
    - Dst: get_fake_cert
      Src: /src/nss/lib/ssl/ssl3con.c:11404,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:11410,1
    - Dst: ssl3_AppendHandshakeHeader
      Src: /src/nss/lib/ssl/ssl3con.c:11429,1
    - Dst: ssl3_AppendHandshakeVariable
      Src: /src/nss/lib/ssl/ssl3con.c:11436,1
    - Dst: ssl3_AppendHandshakeNumber
      Src: /src/nss/lib/ssl/ssl3con.c:11443,1
    - Dst: ssl3_AppendHandshakeVariable
      Src: /src/nss/lib/ssl/ssl3con.c:11451,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/ssl3con.c:11453,1
    - Dst: ssl3_AppendHandshakeVariable
      Src: /src/nss/lib/ssl/ssl3con.c:11455,1
    - Dst: ssl3_AppendHandshakeVariable
      Src: /src/nss/lib/ssl/ssl3con.c:11459,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 63
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11469
      start: 11368
    functionDepth: 8
    functionLinenumber: 11368
    functionLinenumberEnd: 11469
    functionName: ssl3_SendCertificate
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 2
    functionsReached:
    - PORT_Assert
    - get_fake_cert
    - ssl_HaveSSL3HandshakeLock
    - ssl_HaveXmitBufLock
    - SSL_TRC
    - SSL_GETPID
    - PR_ASSERT
    - ssl3_AppendHandshakeNumber
    - ssl3_AppendHandshakeHeader
    - ssl3_AppendHandshakeVariable
    - CERT_DestroyCertificate
    - CERT_DupCertificate
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_SendCertificate(sslSocket *ss)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3con.c:11483,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:11484,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:11486,1
    - Dst: ssl_HaveXmitBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:11486,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:11487,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:11487,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:11488,1
    - Dst: ssl3_ExtensionNegotiated
      Src: /src/nss/lib/ssl/ssl3con.c:11490,1
    - Dst: ssl3_AppendHandshakeHeader
      Src: /src/nss/lib/ssl/ssl3con.c:11504,1
    - Dst: ssl3_AppendHandshakeNumber
      Src: /src/nss/lib/ssl/ssl3con.c:11508,1
    - Dst: ssl3_AppendHandshakeVariable
      Src: /src/nss/lib/ssl/ssl3con.c:11512,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11520
      start: 11475
    functionDepth: 6
    functionLinenumber: 11475
    functionLinenumberEnd: 11520
    functionName: ssl3_SendCertificateStatus
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    - ssl3_ExtensionNegotiated
    - ssl_HaveXmitBufLock
    - SSL_TRC
    - SSL_GETPID
    - ssl3_AppendHandshakeNumber
    - ssl3_AppendHandshakeHeader
    - ssl3_AppendHandshakeVariable
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_SendCertificateStatus(sslSocket *ss)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/ssl/ssl3con.c:11531,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/ssl/ssl3con.c:11537,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/ssl/ssl3con.c:11540,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11543
      start: 11525
    functionDepth: 8
    functionLinenumber: 11525
    functionLinenumberEnd: 11543
    functionName: ssl3_CleanupPeerCerts
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 2
    functionsReached:
    - PORT_FreeArena
    - SECKEY_DestroyPublicKey
    - CERT_DestroyCertificate
    linkageType: ''
    returnType: void
    signature: void ssl3_CleanupPeerCerts(sslSocket *ss)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:11555,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:11556,1
    - Dst: ssl_ReadCertificateStatus
      Src: /src/nss/lib/ssl/ssl3con.c:11560,1
    - Dst: ssl3_AuthCertificate
      Src: /src/nss/lib/ssl/ssl3con.c:11565,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - ss
    - b
    - length
    argTypes:
    - sslSocket*
    - PRUint8*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11566
      start: 11549
    functionDepth: 17
    functionLinenumber: 11549
    functionLinenumberEnd: 11566
    functionName: ssl3_HandleCertificateStatus
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - SSL3_SendAlert
    - PORT_SetError
    - ssl3_AuthCertificate
    - ssl_ReadCertificateStatus
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_HandleCertificateStatus(sslSocket *ss, PRUint8 *b, PRUint32
      length)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:11574,1
    - Dst: ssl3_ConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/ssl3con.c:11577,1
    - Dst: ssl3_DecodeError
      Src: /src/nss/lib/ssl/ssl3con.c:11579,1
    - Dst: ssl3_ConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/ssl3con.c:11582,1
    - Dst: ssl3_DecodeError
      Src: /src/nss/lib/ssl/ssl3con.c:11584,1
    - Dst: ssl3_DecodeError
      Src: /src/nss/lib/ssl/ssl3con.c:11589,1
    - Dst: SECITEM_AllocArray
      Src: /src/nss/lib/ssl/ssl3con.c:11595,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/ssl/ssl3con.c:11599,1
    - Dst: SECITEM_FreeArray
      Src: /src/nss/lib/ssl/ssl3con.c:11602,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/ssl3con.c:11606,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - ss
    - b
    - length
    argTypes:
    - sslSocket*
    - PRUint8*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11610
      start: 11568
    functionDepth: 20
    functionLinenumber: 11568
    functionLinenumberEnd: 11610
    functionName: ssl_ReadCertificateStatus
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 2
    functionsReached:
    - PORT_Alloc
    - PORT_Assert
    - ssl3_DecodeError
    - PORT_Memcpy
    - SECITEM_FreeArray
    - SECITEM_AllocArray
    - ssl3_ConsumeHandshakeNumber
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl_ReadCertificateStatus(sslSocket *ss, PRUint8 *b, PRUint32
      length)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3con.c:11619,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:11620,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:11621,1
    - Dst: ssl_HaveRecvBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:11621,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:11622,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:11622,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:11626,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:11627,1
    - Dst: dtls_ReceivedFirstMessageInFlight
      Src: /src/nss/lib/ssl/ssl3con.c:11632,1
    - Dst: ssl3_CompleteHandleCertificate
      Src: /src/nss/lib/ssl/ssl3con.c:11635,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 3
    argNames:
    - ss
    - b
    - length
    argTypes:
    - sslSocket*
    - PRUint8*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11636
      start: 11616
    functionDepth: 17
    functionLinenumber: 11616
    functionLinenumberEnd: 11636
    functionName: ssl3_HandleCertificate
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - SSL3_SendAlert
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    - SSL_TRC
    - SSL_GETPID
    - ssl3_CompleteHandleCertificate
    - PORT_SetError
    - ssl_HaveRecvBufLock
    - dtls_ReceivedFirstMessageInFlight
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_HandleCertificate(sslSocket *ss, PRUint8 *b, PRUint32
      length)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_CleanupPeerCerts
      Src: /src/nss/lib/ssl/ssl3con.c:11654,1
    - Dst: ssl3_ConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/ssl3con.c:11662,1
    - Dst: ssl3_HandleNoCertificate
      Src: /src/nss/lib/ssl/ssl3con.c:11676,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/ssl3con.c:11678,1
    - Dst: TLS13_SET_HS_STATE
      Src: /src/nss/lib/ssl/ssl3con.c:11685,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/ssl/ssl3con.c:11690,1
    - Dst: ssl3_ConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/ssl3con.c:11700,1
    - Dst: CERT_NewTempCertificate
      Src: /src/nss/lib/ssl/ssl3con.c:11712,1
    - Dst: ssl3_ConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/ssl3con.c:11727,1
    - Dst: PORT_ArenaNew
      Src: /src/nss/lib/ssl/ssl3con.c:11739,1
    - Dst: SECITEM_ArenaDupItem
      Src: /src/nss/lib/ssl/ssl3con.c:11744,1
    - Dst: SECKEY_UpdateCertPQG
      Src: /src/nss/lib/ssl/ssl3con.c:11759,1
    - Dst: ssl3_ExtensionNegotiated
      Src: /src/nss/lib/ssl/ssl3con.c:11763,1
    - Dst: ssl3_AuthCertificate
      Src: /src/nss/lib/ssl/ssl3con.c:11767,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/ssl3con.c:11773,1
    - Dst: ssl3_SendAlertForCertError
      Src: /src/nss/lib/ssl/ssl3con.c:11784,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:11791,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:11794,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 128
    argCount: 3
    argNames:
    - ss
    - b
    - length
    argTypes:
    - sslSocket*
    - PRUint8*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11796
      start: 11640
    functionDepth: 20
    functionLinenumber: 11640
    functionLinenumberEnd: 11796
    functionName: ssl3_CompleteHandleCertificate
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - SSL3_SendAlert
    - ssl3_AuthCertificate
    - PORT_NewArena
    - ssl3_ExtensionNegotiated
    - PORT_ArenaNew
    - PORT_GetError
    - ssl3_CleanupPeerCerts
    - ssl3_HandleNoCertificate
    - ssl_MapLowLevelError
    - SECKEY_UpdateCertPQG
    - ssl3_SendAlertForCertError
    - TLS13_SET_HS_STATE
    - ssl3_ConsumeHandshakeNumber
    - CERT_NewTempCertificate
    - SECITEM_ArenaDupItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_CompleteHandleCertificate(sslSocket *ss, PRUint8 *b,
      PRUint32 length)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: NSS_OptionGet
      Src: /src/nss/lib/ssl/ssl3con.c:11806,1
    - Dst: SECKEY_PublicKeyStrengthInBits
      Src: /src/nss/lib/ssl/ssl3con.c:11811,1
    - Dst: SECKEY_GetPublicKeyType
      Src: /src/nss/lib/ssl/ssl3con.c:11812,1
    - Dst: NSS_OptionGet
      Src: /src/nss/lib/ssl/ssl3con.c:11816,1
    - Dst: NSS_OptionGet
      Src: /src/nss/lib/ssl/ssl3con.c:11826,1
    - Dst: NSS_OptionGet
      Src: /src/nss/lib/ssl/ssl3con.c:11836,1
    - Dst: NSS_OptionGet
      Src: /src/nss/lib/ssl/ssl3con.c:11846,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/ssl3con.c:11858,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/ssl3con.c:11864,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 2
    argNames:
    - ss
    - pubKey
    argTypes:
    - sslSocket*
    - SECKEYPublicKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11875
      start: 11798
    functionDepth: 2
    functionLinenumber: 11798
    functionLinenumberEnd: 11875
    functionName: ssl_SetAuthKeyBits
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - FATAL_ERROR
    - NSS_OptionGet
    - SECKEY_PublicKeyStrengthInBits
    - SECKEY_GetPublicKeyType
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl_SetAuthKeyBits(sslSocket *ss, const SECKEYPublicKey *pubKey)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:11880,1
    - Dst: tls13_IsVerifyingWithDelegatedCredential
      Src: /src/nss/lib/ssl/ssl3con.c:11884,1
    - Dst: SECKEY_ExtractPublicKey
      Src: /src/nss/lib/ssl/ssl3con.c:11886,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:11888,1
    - Dst: CERT_ExtractPublicKey
      Src: /src/nss/lib/ssl/ssl3con.c:11898,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:11900,1
    - Dst: ssl_SetAuthKeyBits
      Src: /src/nss/lib/ssl/ssl3con.c:11905,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/ssl/ssl3con.c:11906,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11912
      start: 11877
    functionDepth: 4
    functionLinenumber: 11877
    functionLinenumberEnd: 11912
    functionName: ssl3_HandleServerSpki
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SECKEY_DestroyPublicKey
    - ssl_SetAuthKeyBits
    - tls13_IsVerifyingWithDelegatedCredential
    - PORT_SetError
    - SECKEY_ExtractPublicKey
    - CERT_ExtractPublicKey
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_HandleServerSpki(sslSocket *ss)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:11924,1
    - Dst: ssl3_HandleServerSpki
      Src: /src/nss/lib/ssl/ssl3con.c:11932,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/ssl3con.c:11936,1
    - Dst: SSL_PeerCertificateChain
      Src: /src/nss/lib/ssl/ssl3con.c:11952,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/ssl3con.c:11954,1
    - Dst: CERT_DestroyCertList
      Src: /src/nss/lib/ssl/ssl3con.c:11963,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/ssl3con.c:11968,1
    - Dst: ssl3_SendAlertForCertError
      Src: /src/nss/lib/ssl/ssl3con.c:11989,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/ssl/ssl3con.c:11995,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/ssl/ssl3con.c:11997,1
    - Dst: TLS13_SET_HS_STATE
      Src: /src/nss/lib/ssl/ssl3con.c:12001,1
    - Dst: TLS13_SET_HS_STATE
      Src: /src/nss/lib/ssl/ssl3con.c:12022,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:12026,1
    - Dst: ssl_MapLowLevelError
      Src: /src/nss/lib/ssl/ssl3con.c:12035,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 88
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12037
      start: 11914
    functionDepth: 18
    functionLinenumber: 11914
    functionLinenumberEnd: 12037
    functionName: ssl3_AuthCertificate
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 3
    functionsReached:
    - PORT_Assert
    - ssl3_HandleServerSpki
    - SSL_PeerCertificateChain
    - PORT_GetError
    - TLS13_SET_HS_STATE
    - ssl_MapLowLevelError
    - CERT_DestroyCertificate
    - ssl3_SendAlertForCertError
    - CERT_DupCertificate
    - CERT_DestroyCertList
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_AuthCertificate(sslSocket *ss)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:12046,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12048
      start: 12041
    functionDepth: 0
    functionLinenumber: 12041
    functionLinenumberEnd: 12048
    functionName: ssl3_AlwaysFail
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_AlwaysFail(sslSocket *ss)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:12057,1
    - Dst: ssl_Have1stHandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:12057,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:12060,1
    - Dst: ssl_GetRecvBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:12064,1
    - Dst: ssl_GetSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:12065,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:12068,1
    - Dst: ssl3_SendAlertForCertError
      Src: /src/nss/lib/ssl/ssl3con.c:12077,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3con.c:12084,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:12086,1
    - Dst: target
      Src: /src/nss/lib/ssl/ssl3con.c:12089,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3con.c:12091,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:12093,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:12095,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:12096,1
    - Dst: ssl3_WaitingForServerSecondRound
      Src: /src/nss/lib/ssl/ssl3con.c:12101,1
    - Dst: ssl3_CheckFalseStart
      Src: /src/nss/lib/ssl/ssl3con.c:12106,1
    - Dst: ssl_ReleaseSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:12113,1
    - Dst: ssl_ReleaseRecvBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:12114,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 2
    argNames:
    - ss
    - error
    argTypes:
    - sslSocket*
    - PRErrorCode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12117
      start: 12052
    functionDepth: 18
    functionLinenumber: 12052
    functionLinenumberEnd: 12117
    functionName: ssl3_AuthCertificateComplete
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - ssl3_CheckFalseStart
    - PORT_Assert
    - target
    - ssl3_WaitingForServerSecondRound
    - ssl_GetSSL3HandshakeLock
    - ssl_Have1stHandshakeLock
    - SSL_TRC
    - ssl_ReleaseRecvBufLock
    - SSL_GETPID
    - ssl_ReleaseSSL3HandshakeLock
    - ssl_GetRecvBufLock
    - PORT_SetError
    - ssl3_SendAlertForCertError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_AuthCertificateComplete(sslSocket *ss, PRErrorCode error)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:12131,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:12133,1
    - Dst: ssl3_GetPrfHashMechanism
      Src: /src/nss/lib/ssl/ssl3con.c:12140,1
    - Dst: PK11_CreateContextBySymKey
      Src: /src/nss/lib/ssl/ssl3con.c:12146,1
    - Dst: PK11_DigestBegin
      Src: /src/nss/lib/ssl/ssl3con.c:12151,1
    - Dst: PK11_DigestOp
      Src: /src/nss/lib/ssl/ssl3con.c:12152,1
    - Dst: PK11_DigestFinal
      Src: /src/nss/lib/ssl/ssl3con.c:12153,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:12155,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/ssl/ssl3con.c:12157,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 5
    argNames:
    - ss
    - spec
    - isServer
    - hashes
    - tlsFinished
    argTypes:
    - sslSocket*
    - ssl3CipherSpec*
    - PRBool
    - SSL3Hashes*
    - TLSFinished*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12160
      start: 12119
    functionDepth: 11
    functionLinenumber: 12119
    functionLinenumberEnd: 12160
    functionName: ssl3_ComputeTLSFinished
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PK11_DestroyContext
    - PK11_DigestOp
    - ssl3_GetPrfHashMechanism
    - PORT_SetError
    - PK11_DigestBegin
    - PK11_CreateContextBySymKey
    - PK11_DigestFinal
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_ComputeTLSFinished(sslSocket *ss, ssl3CipherSpec *spec,\n
      \                       PRBool isServer,\n                        const SSL3Hashes
      *hashes,\n                        TLSFinished *tlsFinished)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:12179,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:12180,1
    - Dst: ssl3_GetPrfHashMechanism
      Src: /src/nss/lib/ssl/ssl3con.c:12186,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:12187,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:12188,1
    - Dst: PK11_CreateContextBySymKey
      Src: /src/nss/lib/ssl/ssl3con.c:12193,1
    - Dst: PK11_DigestBegin
      Src: /src/nss/lib/ssl/ssl3con.c:12198,1
    - Dst: PK11_DigestOp
      Src: /src/nss/lib/ssl/ssl3con.c:12199,1
    - Dst: PK11_DigestOp
      Src: /src/nss/lib/ssl/ssl3con.c:12200,1
    - Dst: PK11_DigestFinal
      Src: /src/nss/lib/ssl/ssl3con.c:12201,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:12202,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/ssl/ssl3con.c:12204,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 8
    argNames:
    - ss
    - spec
    - label
    - labelLen
    - val
    - valLen
    - out
    - outLen
    argTypes:
    - sslSocket*
    - ssl3CipherSpec*
    - char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12206
      start: 12166
    functionDepth: 11
    functionLinenumber: 12166
    functionLinenumberEnd: 12206
    functionName: ssl3_TLSPRFWithMasterSecret
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PK11_DestroyContext
    - PK11_DigestOp
    - ssl3_GetPrfHashMechanism
    - PORT_SetError
    - PK11_DigestBegin
    - PK11_CreateContextBySymKey
    - PK11_DigestFinal
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_TLSPRFWithMasterSecret(sslSocket *ss, ssl3CipherSpec
      *spec,\n                            const char *label, unsigned int labelLen,\n
      \                           const unsigned char *val, unsigned int valLen,\n
      \                           unsigned char *out, unsigned int outLen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:12223,1
    - Dst: ssl_HaveXmitBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:12223,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:12224,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:12224,1
    - Dst: ssl3_AppendHandshakeHeader
      Src: /src/nss/lib/ssl/ssl3con.c:12228,1
    - Dst: ssl3_AppendHandshakeVariable
      Src: /src/nss/lib/ssl/ssl3con.c:12232,1
    - Dst: ssl3_AppendHandshakeVariable
      Src: /src/nss/lib/ssl/ssl3con.c:12237,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12242
      start: 12211
    functionDepth: 6
    functionLinenumber: 12211
    functionLinenumberEnd: 12242
    functionName: ssl3_SendNextProto
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    - ssl_HaveXmitBufLock
    - ssl3_AppendHandshakeHeader
    - ssl3_AppendHandshakeVariable
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_SendNextProto(sslSocket *ss)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:12262,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:12262,1
    - Dst: PK11_ExtractKeyValue
      Src: /src/nss/lib/ssl/ssl3con.c:12267,1
    - Dst: PK11_GetKeyData
      Src: /src/nss/lib/ssl/ssl3con.c:12272,1
    - Dst: strlen
      Src: /src/nss/lib/ssl/ssl3con.c:12276,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:12279,1
    - Dst: strcpy
      Src: /src/nss/lib/ssl/ssl3con.c:12289,1
    - Dst: strlen
      Src: /src/nss/lib/ssl/ssl3con.c:12290,1
    - Dst: hexEncode
      Src: /src/nss/lib/ssl/ssl3con.c:12292,1
    - Dst: hexEncode
      Src: /src/nss/lib/ssl/ssl3con.c:12295,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:12299,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/ssl/ssl3con.c:12301,1
    - Dst: fwrite
      Src: /src/nss/lib/ssl/ssl3con.c:12302,1
    - Dst: fflush
      Src: /src/nss/lib/ssl/ssl3con.c:12303,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/ssl/ssl3con.c:12304,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - ss
    - label
    - secret
    argTypes:
    - sslSocket*
    - char*
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12306
      start: 12248
    functionDepth: 2
    functionLinenumber: 12248
    functionLinenumberEnd: 12306
    functionName: ssl3_RecordKeyLog
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    - hexEncode
    - strcpy
    - PZ_Unlock
    - PK11_ExtractKeyValue
    - PZ_Lock
    - PK11_GetKeyData
    - fwrite
    - fflush
    - strlen
    linkageType: ''
    returnType: void
    signature: void ssl3_RecordKeyLog(sslSocket *ss, const char *label, PK11SymKey
      *secret)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3con.c:12323,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:12323,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:12325,1
    - Dst: ssl_HaveXmitBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:12325,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:12326,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:12326,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/ssl3con.c:12327,1
    - Dst: ssl_GetSpecReadLock
      Src: /src/nss/lib/ssl/ssl3con.c:12329,1
    - Dst: ssl3_ComputeHandshakeHashes
      Src: /src/nss/lib/ssl/ssl3con.c:12332,1
    - Dst: ssl3_ComputeTLSFinished
      Src: /src/nss/lib/ssl/ssl3con.c:12334,1
    - Dst: ssl_ReleaseSpecReadLock
      Src: /src/nss/lib/ssl/ssl3con.c:12336,1
    - Dst: ssl3_AppendHandshakeHeader
      Src: /src/nss/lib/ssl/ssl3con.c:12347,1
    - Dst: ssl3_AppendHandshake
      Src: /src/nss/lib/ssl/ssl3con.c:12350,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:12358,1
    - Dst: ssl3_AppendHandshakeHeader
      Src: /src/nss/lib/ssl/ssl3con.c:12360,1
    - Dst: ssl3_AppendHandshake
      Src: /src/nss/lib/ssl/ssl3con.c:12363,1
    - Dst: ssl3_FlushHandshake
      Src: /src/nss/lib/ssl/ssl3con.c:12367,1
    - Dst: ssl3_RecordKeyLog
      Src: /src/nss/lib/ssl/ssl3con.c:12372,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 55
    argCount: 2
    argNames:
    - ss
    - flags
    argTypes:
    - sslSocket*
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12378
      start: 12312
    functionDepth: 12
    functionLinenumber: 12312
    functionLinenumberEnd: 12378
    functionName: ssl3_SendFinished
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 2
    functionsReached:
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    - ssl3_ComputeHandshakeHashes
    - ssl_HaveXmitBufLock
    - SSL_TRC
    - ssl3_ComputeTLSFinished
    - SSL_GETPID
    - ssl3_AppendHandshake
    - PR_ASSERT
    - ssl3_AppendHandshakeHeader
    - ssl3_FlushHandshake
    - ssl3_RecordKeyLog
    - ssl_GetSpecReadLock
    - ssl_ReleaseSpecReadLock
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_SendFinished(sslSocket *ss, PRInt32 flags)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GetSlotFromKey
      Src: /src/nss/lib/ssl/ssl3con.c:12394,1
    - Dst: PK11_GetCurrentWrapIndex
      Src: /src/nss/lib/ssl/ssl3con.c:12401,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:12402,1
    - Dst: PK11_GetSlotSeries
      Src: /src/nss/lib/ssl/ssl3con.c:12405,1
    - Dst: PK11_GetSlotID
      Src: /src/nss/lib/ssl/ssl3con.c:12406,1
    - Dst: PK11_GetModuleID
      Src: /src/nss/lib/ssl/ssl3con.c:12407,1
    - Dst: PK11_GetWrapKey
      Src: /src/nss/lib/ssl/ssl3con.c:12411,1
    - Dst: PK11_GetMechanism
      Src: /src/nss/lib/ssl/ssl3con.c:12415,1
    - Dst: PK11_GetBestWrapMechanism
      Src: /src/nss/lib/ssl/ssl3con.c:12423,1
    - Dst: PK11_GetBestKeyLength
      Src: /src/nss/lib/ssl/ssl3con.c:12424,1
    - Dst: PK11_KeyGen
      Src: /src/nss/lib/ssl/ssl3con.c:12428,1
    - Dst: PK11_SetWrapKey
      Src: /src/nss/lib/ssl/ssl3con.c:12436,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/ssl3con.c:12437,1
    - Dst: PK11_GetWrapKey
      Src: /src/nss/lib/ssl/ssl3con.c:12438,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/ssl/ssl3con.c:12441,1
    - Dst: PK11_GetBestWrapMechanism
      Src: /src/nss/lib/ssl/ssl3con.c:12448,1
    - Dst: ssl3_GetWrappingKey
      Src: /src/nss/lib/ssl/ssl3con.c:12451,1
    - Dst: PK11_GetMechanism
      Src: /src/nss/lib/ssl/ssl3con.c:12453,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/ssl/ssl3con.c:12459,1
    - Dst: PK11_WrapSymKey
      Src: /src/nss/lib/ssl/ssl3con.c:12466,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/ssl3con.c:12470,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 45
    argCount: 3
    argNames:
    - ss
    - sid
    - secret
    argTypes:
    - sslSocket*
    - sslSessionID*
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12473
      start: 12383
    functionDepth: 14
    functionLinenumber: 12383
    functionLinenumberEnd: 12473
    functionName: ssl3_CacheWrappedSecret
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - PK11_FreeSlot
    - PORT_Assert
    - PK11_GetBestWrapMechanism
    - PK11_GetSlotFromKey
    - PK11_SetWrapKey
    - PK11_GetMechanism
    - ssl3_GetWrappingKey
    - PK11_GetCurrentWrapIndex
    - PK11_GetWrapKey
    - PK11_GetSlotSeries
    - PK11_GetBestKeyLength
    - PK11_WrapSymKey
    - PK11_GetSlotID
    - PK11_KeyGen
    - PK11_GetModuleID
    - PK11_FreeSymKey
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_CacheWrappedSecret(sslSocket *ss, sslSessionID *sid,\n
      \                       PK11SymKey *secret)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:12487,1
    - Dst: ssl_HaveRecvBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:12487,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:12488,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:12488,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3con.c:12490,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:12491,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:12494,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:12495,1
    - Dst: dtls_ReceivedFirstMessageInFlight
      Src: /src/nss/lib/ssl/ssl3con.c:12500,1
    - Dst: ssl3_ComputeHandshakeHashes
      Src: /src/nss/lib/ssl/ssl3con.c:12503,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:12506,1
    - Dst: ssl_HashHandshakeMessage
      Src: /src/nss/lib/ssl/ssl3con.c:12510,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:12512,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:12522,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:12523,1
    - Dst: ssl3_ComputeTLSFinished
      Src: /src/nss/lib/ssl/ssl3con.c:12527,1
    - Dst: NSS_SecureMemcmp
      Src: /src/nss/lib/ssl/ssl3con.c:12535,1
    - Dst: PR_MIN
      Src: /src/nss/lib/ssl/ssl3con.c:12536,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:12538,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:12539,1
    - Dst: ssl3_IllegalParameter
      Src: /src/nss/lib/ssl/ssl3con.c:12545,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:12546,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:12554,1
    - Dst: NSS_SecureMemcmp
      Src: /src/nss/lib/ssl/ssl3con.c:12556,1
    - Dst: ssl3_HandshakeFailure
      Src: /src/nss/lib/ssl/ssl3con.c:12557,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:12558,1
    - Dst: ssl_GetXmitBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:12563,1
    - Dst: ssl3_ExtensionNegotiated
      Src: /src/nss/lib/ssl/ssl3con.c:12576,1
    - Dst: ssl3_KEASupportsTickets
      Src: /src/nss/lib/ssl/ssl3con.c:12577,1
    - Dst: ssl3_SendNewSessionTicket
      Src: /src/nss/lib/ssl/ssl3con.c:12583,1
    - Dst: ssl3_SendChangeCipherSpecs
      Src: /src/nss/lib/ssl/ssl3con.c:12589,1
    - Dst: PR_GetCurrentThread
      Src: /src/nss/lib/ssl/ssl3con.c:12598,1
    - Dst: ssl3_SendNextProto
      Src: /src/nss/lib/ssl/ssl3con.c:12603,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:12609,1
    - Dst: ssl3_SendFinished
      Src: /src/nss/lib/ssl/ssl3con.c:12613,1
    - Dst: ssl_ReleaseXmitBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:12620,1
    - Dst: PR_NOT_REACHED
      Src: /src/nss/lib/ssl/ssl3con.c:12627,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:12628,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:12633,1
    - Dst: ssl3_FinishHandshake
      Src: /src/nss/lib/ssl/ssl3con.c:12637,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 107
    argCount: 3
    argNames:
    - ss
    - b
    - length
    argTypes:
    - sslSocket*
    - PRUint8*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12639
      start: 12479
    functionDepth: 18
    functionLinenumber: 12479
    functionLinenumberEnd: 12639
    functionName: ssl3_HandleFinished
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - ssl3_ExtensionNegotiated
    - ssl3_SendNewSessionTicket
    - ssl3_KEASupportsTickets
    - SSL3_SendAlert
    - PR_NOT_REACHED
    - ssl3_HandshakeFailure
    - ssl_ReleaseXmitBufLock
    - PORT_SetError
    - IS_DTLS
    - PORT_Assert
    - ssl_GetXmitBufLock
    - ssl_HaveSSL3HandshakeLock
    - ssl3_SendNextProto
    - PR_MIN
    - ssl3_ComputeHandshakeHashes
    - ssl3_ComputeTLSFinished
    - ssl_HashHandshakeMessage
    - ssl3_SendFinished
    - ssl3_IllegalParameter
    - ssl3_SendChangeCipherSpecs
    - ssl_HaveRecvBufLock
    - dtls_ReceivedFirstMessageInFlight
    - SSL_TRC
    - SSL_GETPID
    - NSS_SecureMemcmp
    - ssl3_FinishHandshake
    - PR_GetCurrentThread
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_HandleFinished(sslSocket *ss, PRUint8 *b, PRUint32 length)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:12644,1
    - Dst: ssl_Time
      Src: /src/nss/lib/ssl/ssl3con.c:12660,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/ssl/ssl3con.c:12663,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/ssl/ssl3con.c:12665,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/ssl3con.c:12672,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/ssl/ssl3con.c:12673,1
    - Dst: ssl3_CacheWrappedSecret
      Src: /src/nss/lib/ssl/ssl3con.c:12680,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 3
    argNames:
    - ss
    - sid
    - secret
    argTypes:
    - sslSocket*
    - sslSessionID*
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12681
      start: 12641
    functionDepth: 15
    functionLinenumber: 12641
    functionLinenumberEnd: 12681
    functionName: ssl3_FillInCachedSID
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - ssl_Time
    - SECITEM_CopyItem
    - ssl3_CacheWrappedSecret
    - CERT_DupCertificate
    - CERT_DestroyCertificate
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_FillInCachedSID(sslSocket *ss, sslSessionID *sid, PK11SymKey
      *secret)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:12689,1
    - Dst: ssl_HaveRecvBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:12689,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:12690,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:12690,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:12691,1
    - Dst: ssl3_FillInCachedSID
      Src: /src/nss/lib/ssl/ssl3con.c:12701,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:12715,1
    - Dst: ssl3_SetSIDSessionTicket
      Src: /src/nss/lib/ssl/ssl3con.c:12718,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:12721,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/ssl3con.c:12722,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:12725,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:12729,1
    - Dst: ssl_CacheSessionID
      Src: /src/nss/lib/ssl/ssl3con.c:12730,1
    - Dst: ssl_FinishHandshake
      Src: /src/nss/lib/ssl/ssl3con.c:12736,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12737
      start: 12686
    functionDepth: 16
    functionLinenumber: 12686
    functionLinenumberEnd: 12737
    functionName: ssl3_FinishHandshake
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    - ssl_FinishHandshake
    - ssl3_SetSIDSessionTicket
    - SECITEM_FreeItem
    - ssl_CacheSessionID
    - ssl_HaveRecvBufLock
    - ssl3_FillInCachedSID
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_FinishHandshake(sslSocket *ss)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/ssl3con.c:12749,1
    - Dst: updateHashes
      Src: /src/nss/lib/ssl/ssl3con.c:12756,1
    - Dst: IS_DTLS_1_OR_12
      Src: /src/nss/lib/ssl/ssl3con.c:12761,1
    - Dst: MSB
      Src: /src/nss/lib/ssl/ssl3con.c:12763,1
    - Dst: LSB
      Src: /src/nss/lib/ssl/ssl3con.c:12764,1
    - Dst: updateHashes
      Src: /src/nss/lib/ssl/ssl3con.c:12776,1
    - Dst: updateHashes
      Src: /src/nss/lib/ssl/ssl3con.c:12782,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 6
    argNames:
    - ss
    - ct
    - dtlsSeq
    - b
    - length
    - updateHashes
    argTypes:
    - sslSocket*
    - SSLHandshakeType
    - PRUint32
    - PRUint8*
    - PRUint32
    - sslUpdateHandshakeHashes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12787
      start: 12739
    functionDepth: 1
    functionLinenumber: 12739
    functionLinenumberEnd: 12787
    functionName: ssl_HashHandshakeMessageInt
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - MSB
    - PRINT_BUF
    - IS_DTLS_1_OR_12
    - LSB
    - updateHashes
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_HashHandshakeMessageInt(sslSocket *ss, SSLHandshakeType
      ct,\n                            PRUint32 dtlsSeq,\n                            const
      PRUint8 *b, PRUint32 length,\n                            sslUpdateHandshakeHashes
      updateHashes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_HashHandshakeMessageInt
      Src: /src/nss/lib/ssl/ssl3con.c:12793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ss
    - ct
    - b
    - length
    argTypes:
    - sslSocket*
    - SSLHandshakeType
    - PRUint8*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12795
      start: 12789
    functionDepth: 2
    functionLinenumber: 12789
    functionLinenumberEnd: 12795
    functionName: ssl_HashHandshakeMessage
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 8
    functionsReached:
    - ssl_HashHandshakeMessageInt
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_HashHandshakeMessage(sslSocket *ss, SSLHandshakeType
      ct,\n                         const PRUint8 *b, PRUint32 length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_HashHandshakeMessageInt
      Src: /src/nss/lib/ssl/ssl3con.c:12801,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ss
    - ct
    - b
    - length
    argTypes:
    - sslSocket*
    - SSLHandshakeType
    - PRUint8*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12803
      start: 12797
    functionDepth: 2
    functionLinenumber: 12797
    functionLinenumberEnd: 12803
    functionName: ssl_HashHandshakeMessageDefault
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - ssl_HashHandshakeMessageInt
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_HashHandshakeMessageDefault(sslSocket *ss, SSLHandshakeType
      ct,\n                                const PRUint8 *b, PRUint32 length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_HashHandshakeMessageInt
      Src: /src/nss/lib/ssl/ssl3con.c:12808,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ss
    - ct
    - b
    - length
    argTypes:
    - sslSocket*
    - SSLHandshakeType
    - PRUint8*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12810
      start: 12804
    functionDepth: 2
    functionLinenumber: 12804
    functionLinenumberEnd: 12810
    functionName: ssl_HashHandshakeMessageEchInner
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - ssl_HashHandshakeMessageInt
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_HashHandshakeMessageEchInner(sslSocket *ss, SSLHandshakeType
      ct,\n                                 const PRUint8 *b, PRUint32 length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_HashHandshakeMessageInt
      Src: /src/nss/lib/ssl/ssl3con.c:12816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ss
    - ct
    - b
    - length
    argTypes:
    - sslSocket*
    - SSLHandshakeType
    - PRUint8*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12818
      start: 12812
    functionDepth: 2
    functionLinenumber: 12812
    functionLinenumberEnd: 12818
    functionName: ssl_HashPostHandshakeMessage
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 5
    functionsReached:
    - ssl_HashHandshakeMessageInt
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_HashPostHandshakeMessage(sslSocket *ss, SSLHandshakeType
      ct,\n                             const PRUint8 *b, PRUint32 length)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:12831,1
    - Dst: ssl_HaveRecvBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:12831,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:12832,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:12832,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3con.c:12834,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:12834,1
    - Dst: ssl3_DecodeHandshakeType
      Src: /src/nss/lib/ssl/ssl3con.c:12835,1
    - Dst: ssl3_RestartHandshakeHashes
      Src: /src/nss/lib/ssl/ssl3con.c:12839,1
    - Dst: tls13_IsPostHandshake
      Src: /src/nss/lib/ssl/ssl3con.c:12856,1
    - Dst: ssl_HashHandshakeMessage
      Src: /src/nss/lib/ssl/ssl3con.c:12857,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:12864,1
    - Dst: ssl3_AuthCertificate
      Src: /src/nss/lib/ssl/ssl3con.c:12875,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:12878,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/ssl3con.c:12878,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:12887,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:12888,1
    - Dst: ssl3_HandleClientHello
      Src: /src/nss/lib/ssl/ssl3con.c:12891,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:12895,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:12896,1
    - Dst: ssl3_HandleServerHello
      Src: /src/nss/lib/ssl/ssl3con.c:12899,1
    - Dst: ssl3_HandlePostHelloHandshakeMessage
      Src: /src/nss/lib/ssl/ssl3con.c:12903,1
    - Dst: tls13_HandlePostHelloHandshakeMessage
      Src: /src/nss/lib/ssl/ssl3con.c:12905,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:12913,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:12914,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:12921,1
    - Dst: PR_GetError
      Src: /src/nss/lib/ssl/ssl3con.c:12921,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/ssl/ssl3con.c:12927,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 68
    argCount: 4
    argNames:
    - ss
    - b
    - length
    - endOfRecord
    argTypes:
    - sslSocket*
    - PRUint8*
    - PRUint32
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12930
      start: 12824
    functionDepth: 23
    functionLinenumber: 12824
    functionLinenumberEnd: 12930
    functionName: ssl3_HandleHandshakeMessage
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - tls13_IsPostHandshake
    - tls13_HandlePostHelloHandshakeMessage
    - SSL3_SendAlert
    - ssl3_HandlePostHelloHandshakeMessage
    - PORT_SetError
    - ssl3_HandleClientHello
    - IS_DTLS
    - PORT_Assert
    - ssl3_AuthCertificate
    - ssl_HaveSSL3HandshakeLock
    - ssl_HashHandshakeMessage
    - ssl3_RestartHandshakeHashes
    - ssl3_DecodeHandshakeType
    - ssl_HaveRecvBufLock
    - SSL_TRC
    - SSL_GETPID
    - PORT_GetError
    - ssl3_HandleServerHello
    - PR_GetError
    - PORT_Memset
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_HandleHandshakeMessage(sslSocket *ss, PRUint8 *b, PRUint32
      length,\n                            PRBool endOfRecord)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:12937,1
    - Dst: ssl3_DecodeError
      Src: /src/nss/lib/ssl/ssl3con.c:12942,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:12943,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:12947,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:12948,1
    - Dst: ssl3_HandleHelloRequest
      Src: /src/nss/lib/ssl/ssl3con.c:12951,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:12955,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:12956,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:12957,1
    - Dst: dtls_HandleHelloVerifyRequest
      Src: /src/nss/lib/ssl/ssl3con.c:12960,1
    - Dst: ssl3_HandleCertificate
      Src: /src/nss/lib/ssl/ssl3con.c:12963,1
    - Dst: ssl3_HandleCertificateStatus
      Src: /src/nss/lib/ssl/ssl3con.c:12966,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:12970,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:12971,1
    - Dst: ssl3_HandleServerKeyExchange
      Src: /src/nss/lib/ssl/ssl3con.c:12974,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:12978,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:12979,1
    - Dst: ssl3_HandleCertificateRequest
      Src: /src/nss/lib/ssl/ssl3con.c:12982,1
    - Dst: ssl3_DecodeError
      Src: /src/nss/lib/ssl/ssl3con.c:12986,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:12987,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:12991,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:12992,1
    - Dst: ssl3_HandleServerHelloDone
      Src: /src/nss/lib/ssl/ssl3con.c:12995,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:12999,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:13000,1
    - Dst: ssl3_HandleCertificateVerify
      Src: /src/nss/lib/ssl/ssl3con.c:13003,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:13007,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:13008,1
    - Dst: ssl3_HandleClientKeyExchange
      Src: /src/nss/lib/ssl/ssl3con.c:13011,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:13015,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:13016,1
    - Dst: ssl3_HandleNewSessionTicket
      Src: /src/nss/lib/ssl/ssl3con.c:13019,1
    - Dst: ssl3_HandleFinished
      Src: /src/nss/lib/ssl/ssl3con.c:13022,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:13025,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:13026,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 92
    argCount: 3
    argNames:
    - ss
    - b
    - length
    argTypes:
    - sslSocket*
    - PRUint8*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13031
      start: 12932
    functionDepth: 23
    functionLinenumber: 12932
    functionLinenumberEnd: 13031
    functionName: ssl3_HandlePostHelloHandshakeMessage
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - SSL3_SendAlert
    - PORT_Assert
    - ssl3_HandleHelloRequest
    - IS_DTLS
    - ssl3_DecodeError
    - ssl3_HandleServerKeyExchange
    - ssl3_HandleCertificateStatus
    - ssl3_HandleCertificateVerify
    - ssl3_HandleFinished
    - dtls_HandleHelloVerifyRequest
    - PORT_SetError
    - ssl3_HandleCertificate
    - ssl3_HandleServerHelloDone
    - ssl3_HandleClientKeyExchange
    - ssl3_HandleNewSessionTicket
    - ssl3_HandleCertificateRequest
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_HandlePostHelloHandshakeMessage(sslSocket *ss, PRUint8
      *b,\n                                     PRUint32 length)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:13043,1
    - Dst: ssl_HaveRecvBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:13043,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:13044,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:13044,1
    - Dst: ssl3_DecodeError
      Src: /src/nss/lib/ssl/ssl3con.c:13060,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:13061,1
    - Dst: ssl3_HandleHandshakeMessage
      Src: /src/nss/lib/ssl/ssl3con.c:13080,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:13093,1
    - Dst: PR_MIN
      Src: /src/nss/lib/ssl/ssl3con.c:13094,1
    - Dst: sslBuffer_Grow
      Src: /src/nss/lib/ssl/ssl3con.c:13097,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/ssl3con.c:13103,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:13109,1
    - Dst: ssl3_HandleHandshakeMessage
      Src: /src/nss/lib/ssl/ssl3con.c:13113,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:13123,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:13135,1
    - Dst: memmove
      Src: /src/nss/lib/ssl/ssl3con.c:13137,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 70
    argCount: 2
    argNames:
    - ss
    - origBuf
    argTypes:
    - sslSocket*
    - sslBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13142
      start: 13037
    functionDepth: 24
    functionLinenumber: 13037
    functionLinenumberEnd: 13142
    functionName: ssl3_HandleHandshake
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    - ssl3_DecodeError
    - PORT_Memcpy
    - PR_MIN
    - sslBuffer_Grow
    - PORT_SetError
    - ssl3_HandleHandshakeMessage
    - ssl_HaveRecvBufLock
    - memmove
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_HandleHandshake(sslSocket *ss, sslBuffer *origBuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_CT_EQ
      Src: /src/nss/lib/ssl/ssl3con.c:13149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rv
    argTypes:
    - SECStatus
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13150
      start: 13146
    functionDepth: 1
    functionLinenumber: 13146
    functionLinenumberEnd: 13150
    functionName: SECStatusToMask
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - PORT_CT_EQ
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int SECStatusToMask(SECStatus rv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_CT_GE
      Src: /src/nss/lib/ssl/ssl3con.c:13156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13157
      start: 13153
    functionDepth: 1
    functionLinenumber: 13153
    functionLinenumberEnd: 13157
    functionName: ssl_ConstantTimeGE
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - PORT_CT_GE
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char ssl_ConstantTimeGE(unsigned int a, unsigned int b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_CT_EQ
      Src: /src/nss/lib/ssl/ssl3con.c:13163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - unsigned char
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13164
      start: 13160
    functionDepth: 1
    functionLinenumber: 13160
    functionLinenumberEnd: 13164
    functionName: ssl_ConstantTimeEQ
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - PORT_CT_EQ
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char ssl_ConstantTimeEQ(unsigned char a, unsigned char b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mask
    - a
    - b
    argTypes:
    - unsigned char
    - unsigned char
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13171
      start: 13167
    functionDepth: 0
    functionLinenumber: 13167
    functionLinenumberEnd: 13171
    functionName: ssl_constantTimeSelect
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char ssl_constantTimeSelect(unsigned char mask, unsigned char
      a, unsigned char b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_CT_GE
      Src: /src/nss/lib/ssl/ssl3con.c:13189,1
    - Dst: PORT_CT_GE
      Src: /src/nss/lib/ssl/ssl3con.c:13191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - plaintext
    - blockSize
    - macSize
    argTypes:
    - sslBuffer*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13194
      start: 13173
    functionDepth: 1
    functionLinenumber: 13173
    functionLinenumberEnd: 13194
    functionName: ssl_RemoveSSLv3CBCPadding
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - PORT_CT_GE
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_RemoveSSLv3CBCPadding(sslBuffer *plaintext,\n                          unsigned
      int blockSize,\n                          unsigned int macSize)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_CT_GE
      Src: /src/nss/lib/ssl/ssl3con.c:13209,1
    - Dst: PORT_CT_LE
      Src: /src/nss/lib/ssl/ssl3con.c:13228,1
    - Dst: PORT_CT_DUPLICATE_MSB_TO_ALL
      Src: /src/nss/lib/ssl/ssl3con.c:13243,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - plaintext
    - macSize
    argTypes:
    - sslBuffer*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13247
      start: 13196
    functionDepth: 1
    functionLinenumber: 13196
    functionLinenumberEnd: 13247
    functionName: ssl_RemoveTLSCBCPadding
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - PORT_CT_LE
    - PORT_CT_GE
    - PORT_CT_DUPLICATE_MSB_TO_ALL
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl_RemoveTLSCBCPadding(sslBuffer *plaintext, unsigned int
      macSize)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ssl_constantTimeSelect
      Src: /src/nss/lib/ssl/ssl3con.c:13295,1
    - Dst: ssl_ConstantTimeGE
      Src: /src/nss/lib/ssl/ssl3con.c:13295,1
    - Dst: ssl_constantTimeSelect
      Src: /src/nss/lib/ssl/ssl3con.c:13306,1
    - Dst: ssl_ConstantTimeGE
      Src: /src/nss/lib/ssl/ssl3con.c:13306,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:13313,1
    - Dst: memset
      Src: /src/nss/lib/ssl/ssl3con.c:13317,1
    - Dst: ssl_ConstantTimeGE
      Src: /src/nss/lib/ssl/ssl3con.c:13320,1
    - Dst: ssl_ConstantTimeGE
      Src: /src/nss/lib/ssl/ssl3con.c:13321,1
    - Dst: memset
      Src: /src/nss/lib/ssl/ssl3con.c:13330,1
    - Dst: ssl_constantTimeSelect
      Src: /src/nss/lib/ssl/ssl3con.c:13332,1
    - Dst: ssl_ConstantTimeGE
      Src: /src/nss/lib/ssl/ssl3con.c:13332,1
    - Dst: ssl_ConstantTimeEQ
      Src: /src/nss/lib/ssl/ssl3con.c:13336,1
    - Dst: ssl_constantTimeSelect
      Src: /src/nss/lib/ssl/ssl3con.c:13339,1
    - Dst: ssl_ConstantTimeGE
      Src: /src/nss/lib/ssl/ssl3con.c:13339,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 4
    argNames:
    - plaintext
    - originalLength
    - out
    - macSize
    argTypes:
    - sslBuffer*
    - unsigned int
    - PRUint8*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13342
      start: 13254
    functionDepth: 2
    functionLinenumber: 13254
    functionLinenumberEnd: 13342
    functionName: ssl_CBCExtractMAC
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - ssl_ConstantTimeEQ
    - ssl_ConstantTimeGE
    - memset
    - ssl_constantTimeSelect
    linkageType: ''
    returnType: void
    signature: "void ssl_CBCExtractMAC(sslBuffer *plaintext,\n                  unsigned
      int originalLength,\n                  PRUint8 *out,\n                  unsigned
      int macSize)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: SSL_BUFFER
      Src: /src/nss/lib/ssl/ssl3con.c:13375,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:13382,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:13417,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/ssl3con.c:13421,1
    - Dst: ssl3CipherSpec*::cipher
      Src: /src/nss/lib/ssl/ssl3con.c:13427,1
    - Dst: SECStatusToMask
      Src: /src/nss/lib/ssl/ssl3con.c:13430,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/ssl3con.c:13433,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:13443,1
    - Dst: ssl3_BuildRecordPseudoHeader
      Src: /src/nss/lib/ssl/ssl3con.c:13468,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:13470,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:13471,1
    - Dst: SSL_BUFFER_BASE
      Src: /src/nss/lib/ssl/ssl3con.c:13477,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/ssl3con.c:13479,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/ssl/ssl3con.c:13480,1
    - Dst: tls13_AEAD
      Src: /src/nss/lib/ssl/ssl3con.c:13485,1
    - Dst: SSL_BUFFER_BASE
      Src: /src/nss/lib/ssl/ssl3con.c:13492,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/ssl3con.c:13493,1
    - Dst: ssl3CipherSpec*::cipher
      Src: /src/nss/lib/ssl/ssl3con.c:13510,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/ssl3con.c:13517,1
    - Dst: SECStatusToMask
      Src: /src/nss/lib/ssl/ssl3con.c:13527,1
    - Dst: ssl_RemoveSSLv3CBCPadding
      Src: /src/nss/lib/ssl/ssl3con.c:13527,1
    - Dst: SECStatusToMask
      Src: /src/nss/lib/ssl/ssl3con.c:13530,1
    - Dst: ssl_RemoveTLSCBCPadding
      Src: /src/nss/lib/ssl/ssl3con.c:13530,1
    - Dst: ssl3_BuildRecordPseudoHeader
      Src: /src/nss/lib/ssl/ssl3con.c:13536,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:13538,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:13540,1
    - Dst: ssl3_ComputeRecordMACConstantTime
      Src: /src/nss/lib/ssl/ssl3con.c:13542,1
    - Dst: SSL_BUFFER_BASE
      Src: /src/nss/lib/ssl/ssl3con.c:13543,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/ssl3con.c:13543,1
    - Dst: ssl_CBCExtractMAC
      Src: /src/nss/lib/ssl/ssl3con.c:13547,1
    - Dst: ssl3_ComputeRecordMAC
      Src: /src/nss/lib/ssl/ssl3con.c:13560,1
    - Dst: SSL_BUFFER_BASE
      Src: /src/nss/lib/ssl/ssl3con.c:13561,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/ssl3con.c:13561,1
    - Dst: SECStatusToMask
      Src: /src/nss/lib/ssl/ssl3con.c:13569,1
    - Dst: NSS_SecureMemcmp
      Src: /src/nss/lib/ssl/ssl3con.c:13572,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:13581,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 100
    argCount: 5
    argNames:
    - ss
    - spec
    - cText
    - plaintext
    - alert
    argTypes:
    - sslSocket*
    - ssl3CipherSpec*
    - SSL3Ciphertext*
    - sslBuffer*
    - SSL3AlertDescription*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13586
      start: 13360
    functionDepth: 12
    functionLinenumber: 13360
    functionLinenumberEnd: 13586
    functionName: ssl3_UnprotectRecord
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - tls13_AEAD
    - ssl3CipherSpec*::cipher
    - SSL_BUFFER_LEN
    - PORT_Memcpy
    - ssl_RemoveTLSCBCPadding
    - PORT_SetError
    - SECStatusToMask
    - IS_DTLS
    - PORT_Assert
    - PRINT_BUF
    - ssl_RemoveSSLv3CBCPadding
    - ssl3_BuildRecordPseudoHeader
    - ssl_CBCExtractMAC
    - SSL_BUFFER_BASE
    - ssl3_ComputeRecordMACConstantTime
    - SSL_BUFFER
    - NSS_SecureMemcmp
    - PORT_Memset
    - ssl3_ComputeRecordMAC
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_UnprotectRecord(sslSocket *ss,\n                     ssl3CipherSpec
      *spec,\n                     SSL3Ciphertext *cText, sslBuffer *plaintext,\n
      \                    SSL3AlertDescription *alert)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_ClientAuthTokenPresent
      Src: /src/nss/lib/ssl/ssl3con.c:13596,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:13597,1
    - Dst: ssl_GetSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:13601,1
    - Dst: ssl3_HandleChangeCipherSpecs
      Src: /src/nss/lib/ssl/ssl3con.c:13608,1
    - Dst: ssl3_HandleAlert
      Src: /src/nss/lib/ssl/ssl3con.c:13611,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:13614,1
    - Dst: ssl3_HandleHandshake
      Src: /src/nss/lib/ssl/ssl3con.c:13615,1
    - Dst: dtls_HandleHandshake
      Src: /src/nss/lib/ssl/ssl3con.c:13617,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:13621,1
    - Dst: tls13_MaybeTls13
      Src: /src/nss/lib/ssl/ssl3con.c:13621,1
    - Dst: dtls13_HandleAck
      Src: /src/nss/lib/ssl/ssl3con.c:13622,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:13640,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:13641,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:13643,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/ssl3con.c:13644,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:13645,1
    - Dst: ssl_ReleaseSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:13650,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 5
    argNames:
    - ss
    - rType
    - epoch
    - seqNum
    - databuf
    argTypes:
    - sslSocket*
    - SSLContentType
    - DTLSEpoch
    - sslSequenceNumber
    - sslBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13652
      start: 13588
    functionDepth: 25
    functionLinenumber: 13588
    functionLinenumberEnd: 13652
    functionName: ssl3_HandleNonApplicationData
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - IS_DTLS
    - ssl3_HandleChangeCipherSpecs
    - SSL3_SendAlert
    - ssl3_HandleAlert
    - ssl_GetSSL3HandshakeLock
    - dtls13_HandleAck
    - tls13_MaybeTls13
    - ssl3_ClientAuthTokenPresent
    - SSL_GETPID
    - ssl_ReleaseSSL3HandshakeLock
    - PORT_SetError
    - ssl3_HandleHandshake
    - dtls_HandleHandshake
    - SSL_DBG
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_HandleNonApplicationData(sslSocket *ss, SSLContentType
      rType,\n                              DTLSEpoch epoch, sslSequenceNumber seqNum,\n
      \                             sslBuffer *databuf)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:13667,1
    - Dst: dtls_ReadEpoch
      Src: /src/nss/lib/ssl/ssl3con.c:13670,1
    - Dst: ssl_FindCipherSpecByEpoch
      Src: /src/nss/lib/ssl/ssl3con.c:13676,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3con.c:13682,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:13683,1
    - Dst: SSL_ROLE
      Src: /src/nss/lib/ssl/ssl3con.c:13683,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - ss
    - cText
    argTypes:
    - sslSocket*
    - SSL3Ciphertext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13685
      start: 13660
    functionDepth: 2
    functionLinenumber: 13660
    functionLinenumberEnd: 13685
    functionName: ssl3_GetCipherSpec
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - IS_DTLS
    - SSL_ROLE
    - SSL_TRC
    - SSL_GETPID
    - dtls_ReadEpoch
    - ssl_FindCipherSpecByEpoch
    linkageType: ''
    returnType: ssl3CipherSpec
    signature: 'ssl3CipherSpec *

      ssl3_GetCipherSpec(sslSocket *ss, SSL3Ciphertext *cText)'
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:13721,1
    - Dst: ssl_HaveRecvBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:13721,1
    - Dst: ssl3_ClientAuthTokenPresent
      Src: /src/nss/lib/ssl/ssl3con.c:13724,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:13725,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:13737,1
    - Dst: ssl_GetSpecReadLock
      Src: /src/nss/lib/ssl/ssl3con.c:13741,1
    - Dst: ssl3_GetCipherSpec
      Src: /src/nss/lib/ssl/ssl3con.c:13742,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:13744,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:13744,1
    - Dst: ssl_ReleaseSpecReadLock
      Src: /src/nss/lib/ssl/ssl3con.c:13745,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:13749,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:13749,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3con.c:13750,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:13751,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:13755,1
    - Dst: dtls13_MaskSequenceNumber
      Src: /src/nss/lib/ssl/ssl3con.c:13756,1
    - Dst: SSL_BUFFER_BASE
      Src: /src/nss/lib/ssl/ssl3con.c:13757,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/ssl3con.c:13757,1
    - Dst: ssl_ReleaseSpecReadLock
      Src: /src/nss/lib/ssl/ssl3con.c:13758,1
    - Dst: dtls_IsRelevant
      Src: /src/nss/lib/ssl/ssl3con.c:13762,1
    - Dst: ssl_ReleaseSpecReadLock
      Src: /src/nss/lib/ssl/ssl3con.c:13763,1
    - Dst: ssl_ReleaseSpecReadLock
      Src: /src/nss/lib/ssl/ssl3con.c:13770,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3con.c:13771,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:13772,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:13773,1
    - Dst: ssl_ReleaseSpecReadLock
      Src: /src/nss/lib/ssl/ssl3con.c:13792,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:13794,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:13797,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:13798,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/ssl3con.c:13807,1
    - Dst: sslBuffer_Grow
      Src: /src/nss/lib/ssl/ssl3con.c:13807,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/ssl3con.c:13812,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:13820,1
    - Dst: dtls_IsDtls13Ciphertext
      Src: /src/nss/lib/ssl/ssl3con.c:13821,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:13823,1
    - Dst: Null_Cipher
      Src: /src/nss/lib/ssl/ssl3con.c:13828,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/ssl3con.c:13842,1
    - Dst: ssl3_UnprotectRecord
      Src: /src/nss/lib/ssl/ssl3con.c:13845,1
    - Dst: tls13_UnprotectRecord
      Src: /src/nss/lib/ssl/ssl3con.c:13847,1
    - Dst: ssl_ReleaseSpecReadLock
      Src: /src/nss/lib/ssl/ssl3con.c:13855,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/ssl3con.c:13857,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:13857,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:13877,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:13887,1
    - Dst: dtls13_AeadLimitReached
      Src: /src/nss/lib/ssl/ssl3con.c:13887,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:13888,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/ssl3con.c:13901,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:13902,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:13905,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:13910,1
    - Dst: dtls_RecordSetRecvd
      Src: /src/nss/lib/ssl/ssl3con.c:13911,1
    - Dst: PR_MAX
      Src: /src/nss/lib/ssl/ssl3con.c:13912,1
    - Dst: ssl_ReleaseSpecReadLock
      Src: /src/nss/lib/ssl/ssl3con.c:13918,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:13932,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:13932,1
    - Dst: ssl_GetSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:13933,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/ssl3con.c:13935,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:13936,1
    - Dst: ssl_ReleaseSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:13937,1
    - Dst: ssl_ReleaseSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:13939,1
    - Dst: dtls13_HandleOutOfEpochRecord
      Src: /src/nss/lib/ssl/ssl3con.c:13940,1
    - Dst: ssl_GetSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:13943,1
    - Dst: ssl_ReleaseSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:13947,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:13954,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:13957,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:13958,1
    - Dst: tls13_HandleEarlyApplicationData
      Src: /src/nss/lib/ssl/ssl3con.c:13971,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/ssl3con.c:13974,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:13975,1
    - Dst: ssl3_HandleNonApplicationData
      Src: /src/nss/lib/ssl/ssl3con.c:13979,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/ssl3con.c:13987,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 143
    argCount: 2
    argNames:
    - ss
    - cText
    argTypes:
    - sslSocket*
    - SSL3Ciphertext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13991
      start: 13709
    functionDepth: 26
    functionLinenumber: 13709
    functionLinenumberEnd: 13991
    functionName: ssl3_HandleRecord
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - ssl_ReleaseSSL3HandshakeLock
    - ssl3_HandleNonApplicationData
    - dtls_RecordSetRecvd
    - SSL_DBG
    - SSL3_SendAlert
    - SSL_BUFFER_LEN
    - ssl_GetSSL3HandshakeLock
    - sslBuffer_Grow
    - dtls_IsDtls13Ciphertext
    - dtls_IsRelevant
    - PORT_SetError
    - IS_DTLS
    - PORT_Assert
    - ssl3_UnprotectRecord
    - tls13_HandleEarlyApplicationData
    - tls13_UnprotectRecord
    - ssl_GetSpecReadLock
    - Null_Cipher
    - ssl_HaveRecvBufLock
    - sslBuffer_Clear
    - PR_MAX
    - SSL_BUFFER_BASE
    - ssl3_GetCipherSpec
    - dtls13_HandleOutOfEpochRecord
    - SSL_TRC
    - ssl3_ClientAuthTokenPresent
    - SSL_GETPID
    - PORT_GetError
    - dtls13_MaskSequenceNumber
    - PR_ASSERT
    - dtls13_AeadLimitReached
    - ssl_ReleaseSpecReadLock
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_HandleRecord(sslSocket *ss, SSL3Ciphertext *cText)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - sec
    argTypes:
    - sslSecurityInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14006
      start: 13997
    functionDepth: 0
    functionLinenumber: 13997
    functionLinenumberEnd: 14006
    functionName: ssl_InitSecState
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ssl_InitSecState(sslSecurityInfo *sec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ssl_InitSecState
      Src: /src/nss/lib/ssl/ssl3con.c:14015,1
    - Dst: ssl_GetSpecWriteLock
      Src: /src/nss/lib/ssl/ssl3con.c:14017,1
    - Dst: PR_INIT_CLIST
      Src: /src/nss/lib/ssl/ssl3con.c:14018,1
    - Dst: ssl_SetupNullCipherSpec
      Src: /src/nss/lib/ssl/ssl3con.c:14019,1
    - Dst: ssl_SetupNullCipherSpec
      Src: /src/nss/lib/ssl/ssl3con.c:14020,1
    - Dst: ssl_ReleaseSpecWriteLock
      Src: /src/nss/lib/ssl/ssl3con.c:14022,1
    - Dst: ssl3_ResetExtensionData
      Src: /src/nss/lib/ssl/ssl3con.c:14032,1
    - Dst: PR_INIT_CLIST
      Src: /src/nss/lib/ssl/ssl3con.c:14033,1
    - Dst: PR_INIT_CLIST
      Src: /src/nss/lib/ssl/ssl3con.c:14034,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:14035,1
    - Dst: PR_INIT_CLIST
      Src: /src/nss/lib/ssl/ssl3con.c:14041,1
    - Dst: dtls_SetMTU
      Src: /src/nss/lib/ssl/ssl3con.c:14042,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:14061,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/ssl/ssl3con.c:14066,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 48
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14071
      start: 14008
    functionDepth: 3
    functionLinenumber: 14008
    functionLinenumberEnd: 14071
    functionName: ssl3_InitState
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - IS_DTLS
    - PORT_Assert
    - ssl_SetupNullCipherSpec
    - ssl_GetSpecWriteLock
    - dtls_SetMTU
    - ssl_InitSecState
    - PORT_Memset
    - PR_INIT_CLIST
    - ssl3_ResetExtensionData
    - ssl_ReleaseSpecWriteLock
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_InitState(sslSocket *ss)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_LookupCipherSuiteCfgMutable
      Src: /src/nss/lib/ssl/ssl3con.c:14079,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - which
    - policy
    argTypes:
    - ssl3CipherSuite
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14086
      start: 14074
    functionDepth: 1
    functionLinenumber: 14074
    functionLinenumberEnd: 14086
    functionName: ssl3_SetPolicy
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - ssl_LookupCipherSuiteCfgMutable
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_SetPolicy(ssl3CipherSuite which, int policy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_LookupCipherSuiteCfg
      Src: /src/nss/lib/ssl/ssl3con.c:14095,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - which
    - oPolicy
    argTypes:
    - ssl3CipherSuite
    - PRInt32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14105
      start: 14088
    functionDepth: 2
    functionLinenumber: 14088
    functionLinenumberEnd: 14105
    functionName: ssl3_GetPolicy
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - ssl_LookupCipherSuiteCfg
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_GetPolicy(ssl3CipherSuite which, PRInt32 *oPolicy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_LookupCipherSuiteCfgMutable
      Src: /src/nss/lib/ssl/ssl3con.c:14113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - which
    - enabled
    argTypes:
    - ssl3CipherSuite
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14119
      start: 14108
    functionDepth: 1
    functionLinenumber: 14108
    functionLinenumberEnd: 14119
    functionName: ssl3_CipherPrefSetDefault
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - ssl_LookupCipherSuiteCfgMutable
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_CipherPrefSetDefault(ssl3CipherSuite which, PRBool enabled)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_LookupCipherSuiteCfg
      Src: /src/nss/lib/ssl/ssl3con.c:14129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - which
    - enabled
    argTypes:
    - ssl3CipherSuite
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14139
      start: 14122
    functionDepth: 2
    functionLinenumber: 14122
    functionLinenumberEnd: 14139
    functionName: ssl3_CipherPrefGetDefault
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - ssl_LookupCipherSuiteCfg
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_CipherPrefGetDefault(ssl3CipherSuite which, PRBool *enabled)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_LookupCipherSuiteCfgMutable
      Src: /src/nss/lib/ssl/ssl3con.c:14146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ss
    - which
    - enabled
    argTypes:
    - sslSocket*
    - ssl3CipherSuite
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14152
      start: 14141
    functionDepth: 1
    functionLinenumber: 14141
    functionLinenumberEnd: 14152
    functionName: ssl3_CipherPrefSet
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 2
    functionsReached:
    - ssl_LookupCipherSuiteCfgMutable
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_CipherPrefSet(sslSocket *ss, ssl3CipherSuite which,
      PRBool enabled)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_LookupCipherSuiteCfg
      Src: /src/nss/lib/ssl/ssl3con.c:14161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - ss
    - which
    - enabled
    argTypes:
    - sslSocket*
    - ssl3CipherSuite
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14171
      start: 14154
    functionDepth: 2
    functionLinenumber: 14154
    functionLinenumberEnd: 14171
    functionName: ssl3_CipherPrefGet
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 2
    functionsReached:
    - ssl_LookupCipherSuiteCfg
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_CipherPrefGet(const sslSocket *ss, ssl3CipherSuite which,
      PRBool *enabled)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/ssl3con.c:14181,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/ssl3con.c:14183,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:14184,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:14185,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:14190,1
    - Dst: ssl_IsSupportedSignatureScheme
      Src: /src/nss/lib/ssl/ssl3con.c:14195,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:14201,1
    - Dst: ssl_IsSupportedSignatureScheme
      Src: /src/nss/lib/ssl/ssl3con.c:14207,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/ssl3con.c:14208,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:14209,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:14217,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 3
    argNames:
    - fd
    - schemes
    - count
    argTypes:
    - PRFileDesc*
    - SSLSignatureScheme*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14221
      start: 14173
    functionDepth: 3
    functionLinenumber: 14173
    functionLinenumberEnd: 14221
    functionName: SSL_SignatureSchemePrefSet
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 3
    functionsReached:
    - SSL_GETPID
    - PORT_SetError
    - SSL_DBG
    - ssl_FindSocket
    - ssl_IsSupportedSignatureScheme
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSL_SignatureSchemePrefSet(PRFileDesc *fd, const SSLSignatureScheme
      *schemes,\n                           unsigned int count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_MIN
      Src: /src/nss/lib/ssl/ssl3con.c:14230,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/ssl/ssl3con.c:14230,1
    - Dst: SSL_SignatureSchemePrefSet
      Src: /src/nss/lib/ssl/ssl3con.c:14234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - fd
    - algorithms
    - count
    argTypes:
    - PRFileDesc*
    - SSLSignatureAndHashAlg*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14235
      start: 14223
    functionDepth: 4
    functionLinenumber: 14223
    functionLinenumberEnd: 14235
    functionName: SSL_SignaturePrefSet
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - PR_ARRAY_SIZE
    - PR_MIN
    - SSL_SignatureSchemePrefSet
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSL_SignaturePrefSet(PRFileDesc *fd, const SSLSignatureAndHashAlg
      *algorithms,\n                     unsigned int count)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/ssl3con.c:14243,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/ssl3con.c:14245,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:14246,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:14247,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:14253,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/ssl3con.c:14257,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - fd
    - schemes
    - count
    - maxCount
    argTypes:
    - PRFileDesc*
    - SSLSignatureScheme*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14261
      start: 14237
    functionDepth: 2
    functionLinenumber: 14237
    functionLinenumberEnd: 14261
    functionName: SSL_SignatureSchemePrefGet
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - PORT_Memcpy
    - SSL_GETPID
    - PORT_SetError
    - SSL_DBG
    - ssl_FindSocket
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSL_SignatureSchemePrefGet(PRFileDesc *fd, SSLSignatureScheme
      *schemes,\n                           unsigned int *count, unsigned int maxCount)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/ssl3con.c:14270,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/ssl3con.c:14272,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/ssl3con.c:14273,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:14274,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:14280,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - fd
    - algorithms
    - count
    - maxCount
    argTypes:
    - PRFileDesc*
    - SSLSignatureAndHashAlg*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14290
      start: 14263
    functionDepth: 2
    functionLinenumber: 14263
    functionLinenumberEnd: 14290
    functionName: SSL_SignaturePrefGet
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - ssl_FindSocket
    - PORT_SetError
    - SSL_GETPID
    - SSL_DBG
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSL_SignaturePrefGet(PRFileDesc *fd, SSLSignatureAndHashAlg
      *algorithms,\n                     unsigned int *count, unsigned int maxCount)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14296
      start: 14292
    functionDepth: 0
    functionLinenumber: 14292
    functionLinenumberEnd: 14296
    functionName: SSL_SignatureMaxCount
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int SSL_SignatureMaxCount(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/ssl3con.c:14302,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/ssl3con.c:14303,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/ssl/ssl3con.c:14305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14306
      start: 14299
    functionDepth: 0
    functionLinenumber: 14299
    functionLinenumberEnd: 14306
    functionName: ssl3_InitSocketPolicy
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - PORT_Memcpy
    - PR_ARRAY_SIZE
    linkageType: ''
    returnType: void
    signature: void ssl3_InitSocketPolicy(sslSocket *ss)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/ssl3con.c:14322,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/ssl3con.c:14322,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:14325,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:14329,1
    - Dst: dtls_RehandshakeCleanup
      Src: /src/nss/lib/ssl/ssl3con.c:14330,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:14335,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/ssl3con.c:14339,1
    - Dst: ssl_UncacheSessionID
      Src: /src/nss/lib/ssl/ssl3con.c:14344,1
    - Dst: ssl_FreeSID
      Src: /src/nss/lib/ssl/ssl3con.c:14345,1
    - Dst: ssl_GetXmitBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:14349,1
    - Dst: ssl3_SendHelloRequest
      Src: /src/nss/lib/ssl/ssl3con.c:14353,1
    - Dst: ssl3_SendClientHello
      Src: /src/nss/lib/ssl/ssl3con.c:14355,1
    - Dst: ssl_ReleaseXmitBufLock
      Src: /src/nss/lib/ssl/ssl3con.c:14358,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 2
    argNames:
    - ss
    - flushCache
    argTypes:
    - sslSocket*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14360
      start: 14316
    functionDepth: 15
    functionLinenumber: 14316
    functionLinenumberEnd: 14360
    functionName: ssl3_RedoHandshake
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - IS_DTLS
    - PORT_Assert
    - ssl_GetXmitBufLock
    - ssl_HaveSSL3HandshakeLock
    - ssl3_SendClientHello
    - ssl_UncacheSessionID
    - ssl_FreeSID
    - ssl_ReleaseXmitBufLock
    - PORT_SetError
    - dtls_RehandshakeCleanup
    - ssl3_SendHelloRequest
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_RedoHandshake(sslSocket *ss, PRBool flushCache)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/ssl/ssl3con.c:14368,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/lib/ssl/ssl3con.c:14371,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/ssl3con.c:14374,1
    - Dst: ssl3_CleanupPeerCerts
      Src: /src/nss/lib/ssl/ssl3con.c:14380,1
    - Dst: CERT_DestroyCertificateList
      Src: /src/nss/lib/ssl/ssl3con.c:14383,1
    - Dst: CERT_FreeDistNames
      Src: /src/nss/lib/ssl/ssl3con.c:14387,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/ssl/ssl3con.c:14392,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/ssl/ssl3con.c:14395,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/ssl/ssl3con.c:14398,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/ssl/ssl3con.c:14401,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/ssl3con.c:14404,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/ssl3con.c:14407,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/ssl3con.c:14410,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/ssl3con.c:14414,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/ssl3con.c:14416,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/ssl3con.c:14417,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/ssl3con.c:14418,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/ssl3con.c:14421,1
    - Dst: dtls_FreeHandshakeMessages
      Src: /src/nss/lib/ssl/ssl3con.c:14422,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/ssl3con.c:14424,1
    - Dst: ssl3_DestroyRemoteExtensions
      Src: /src/nss/lib/ssl/ssl3con.c:14429,1
    - Dst: ssl3_DestroyRemoteExtensions
      Src: /src/nss/lib/ssl/ssl3con.c:14430,1
    - Dst: ssl3_DestroyExtensionData
      Src: /src/nss/lib/ssl/ssl3con.c:14431,1
    - Dst: ssl_DestroyCipherSpecs
      Src: /src/nss/lib/ssl/ssl3con.c:14434,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/ssl3con.c:14438,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/ssl3con.c:14440,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/ssl3con.c:14442,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/ssl3con.c:14444,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/ssl3con.c:14446,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/ssl3con.c:14448,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/ssl3con.c:14450,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/ssl3con.c:14452,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/ssl3con.c:14454,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/ssl3con.c:14456,1
    - Dst: tls13_DestroyEarlyData
      Src: /src/nss/lib/ssl/ssl3con.c:14460,1
    - Dst: tls13_DestroyPskList
      Src: /src/nss/lib/ssl/ssl3con.c:14463,1
    - Dst: PK11_HPKE_DestroyContext
      Src: /src/nss/lib/ssl/ssl3con.c:14466,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/ssl3con.c:14467,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/ssl3con.c:14468,1
    - Dst: tls13_ClientGreaseDestroy
      Src: /src/nss/lib/ssl/ssl3con.c:14471,1
    - Dst: tls_ClientHelloExtensionPermutationDestroy
      Src: /src/nss/lib/ssl/ssl3con.c:14474,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 82
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14475
      start: 14363
    functionDepth: 9
    functionLinenumber: 14363
    functionLinenumberEnd: 14475
    functionName: ssl3_DestroySSL3Info
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 1
    functionsReached:
    - ssl3_CleanupPeerCerts
    - CERT_DestroyCertificateList
    - PK11_DestroyContext
    - PK11_HPKE_DestroyContext
    - tls13_DestroyPskList
    - SECITEM_FreeItem
    - ssl3_DestroyExtensionData
    - IS_DTLS
    - tls13_ClientGreaseDestroy
    - CERT_FreeDistNames
    - ssl3_DestroyRemoteExtensions
    - CERT_DestroyCertificate
    - dtls_FreeHandshakeMessages
    - sslBuffer_Clear
    - PORT_Free
    - ssl_DestroyCipherSpecs
    - tls_ClientHelloExtensionPermutationDestroy
    - tls13_DestroyEarlyData
    - SECKEY_DestroyPrivateKey
    - PK11_FreeSymKey
    linkageType: ''
    returnType: void
    signature: void ssl3_DestroySSL3Info(sslSocket *ss)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PK11_ContextGetFIPSStatus
      Src: /src/nss/lib/ssl/ssl3con.c:14492,1
    - Dst: PK11_ContextGetFIPSStatus
      Src: /src/nss/lib/ssl/ssl3con.c:14499,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - spec
    argTypes:
    - ssl3CipherSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14500
      start: 14481
    functionDepth: 2
    functionLinenumber: 14481
    functionLinenumberEnd: 14500
    functionName: ssl_cipherSpecIsFips
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - PK11_ContextGetFIPSStatus
    linkageType: ''
    returnType: PRBool
    signature: PRBool ssl_cipherSpecIsFips(ssl3CipherSpec *spec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_cipherSpecIsFips
      Src: /src/nss/lib/ssl/ssl3con.c:14506,1
    - Dst: ssl_cipherSpecIsFips
      Src: /src/nss/lib/ssl/ssl3con.c:14509,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14510
      start: 14503
    functionDepth: 3
    functionLinenumber: 14503
    functionLinenumberEnd: 14510
    functionName: ssl_isFIPS
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - ssl_cipherSpecIsFips
    linkageType: ''
    returnType: PRBool
    signature: PRBool ssl_isFIPS(sslSocket *ss)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NSS_GetAlgorithmPolicy
      Src: /src/nss/lib/ssl/ssl3con.c:14536,1
    - Dst: ssl_CipherPrefSetDefault
      Src: /src/nss/lib/ssl/ssl3con.c:14542,1
    - Dst: ssl_CipherPolicySet
      Src: /src/nss/lib/ssl/ssl3con.c:14543,1
    - Dst: ssl_CipherPrefSetDefault
      Src: /src/nss/lib/ssl/ssl3con.c:14559,1
    - Dst: ssl_CipherPrefSetDefault
      Src: /src/nss/lib/ssl/ssl3con.c:14562,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - cipher_suite
    - policyOid
    - requiredPolicy
    - isDisabled
    argTypes:
    - int
    - SECOidTag
    - PRUint32
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14565
      start: 14528
    functionDepth: 2
    functionLinenumber: 14528
    functionLinenumberEnd: 14565
    functionName: ssl_HandlePolicy
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - NSS_GetAlgorithmPolicy
    - ssl_CipherPrefSetDefault
    - ssl_CipherPolicySet
    linkageType: ''
    returnType: PRBool
    signature: "PRBool ssl_HandlePolicy(int cipher_suite, SECOidTag policyOid,\n                 PRUint32
      requiredPolicy, PRBool *isDisabled)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14568
      start: 14567
    functionDepth: 0
    functionLinenumber: 14567
    functionLinenumberEnd: 14568
    functionName: MAP_NULL
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAP_NULL(x)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NSS_GetAlgorithmPolicy
      Src: /src/nss/lib/ssl/ssl3con.c:14576,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/ssl/ssl3con.c:14582,1
    - Dst: ssl_CipherPolicySet
      Src: /src/nss/lib/ssl/ssl3con.c:14588,1
    - Dst: MAP_NULL
      Src: /src/nss/lib/ssl/ssl3con.c:14593,1
    - Dst: ssl_HandlePolicy
      Src: /src/nss/lib/ssl/ssl3con.c:14594,1
    - Dst: MAP_NULL
      Src: /src/nss/lib/ssl/ssl3con.c:14599,1
    - Dst: ssl_GetBulkCipherDef
      Src: /src/nss/lib/ssl/ssl3con.c:14599,1
    - Dst: ssl_HandlePolicy
      Src: /src/nss/lib/ssl/ssl3con.c:14600,1
    - Dst: ssl_GetBulkCipherDef
      Src: /src/nss/lib/ssl/ssl3con.c:14605,1
    - Dst: MAP_NULL
      Src: /src/nss/lib/ssl/ssl3con.c:14606,1
    - Dst: ssl_GetMacDefByAlg
      Src: /src/nss/lib/ssl/ssl3con.c:14606,1
    - Dst: ssl_HandlePolicy
      Src: /src/nss/lib/ssl/ssl3con.c:14607,1
    - Dst: ssl3_ConstrainRangeByPolicy
      Src: /src/nss/lib/ssl/ssl3con.c:14614,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14617
      start: 14569
    functionDepth: 4
    functionLinenumber: 14569
    functionLinenumberEnd: 14617
    functionName: ssl3_ApplyNSSPolicy
    functionSourceFile: /src/nss/lib/ssl/ssl3con.c
    functionUses: 0
    functionsReached:
    - NSS_GetAlgorithmPolicy
    - MAP_NULL
    - ssl_HandlePolicy
    - ssl_GetBulkCipherDef
    - ssl_GetMacDefByAlg
    - ssl3_ConstrainRangeByPolicy
    - PR_ARRAY_SIZE
    - ssl_CipherPolicySet
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_ApplyNSSPolicy(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslprimitive.c:46,1
    - Dst: strlen
      Src: /src/nss/lib/ssl/sslprimitive.c:46,1
    - Dst: strlen
      Src: /src/nss/lib/ssl/sslprimitive.c:46,1
    - Dst: strlen
      Src: /src/nss/lib/ssl/sslprimitive.c:49,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslprimitive.c:50,1
    - Dst: tls13_GetHashAndCipher
      Src: /src/nss/lib/ssl/sslprimitive.c:56,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/ssl/sslprimitive.c:62,1
    - Dst: ssl3_Alg2Mech
      Src: /src/nss/lib/ssl/sslprimitive.c:66,1
    - Dst: memcpy
      Src: /src/nss/lib/ssl/sslprimitive.c:71,1
    - Dst: memcpy
      Src: /src/nss/lib/ssl/sslprimitive.c:73,1
    - Dst: strlen
      Src: /src/nss/lib/ssl/sslprimitive.c:73,1
    - Dst: strlen
      Src: /src/nss/lib/ssl/sslprimitive.c:74,1
    - Dst: tls13_HkdfExpandLabelRaw
      Src: /src/nss/lib/ssl/sslprimitive.c:76,1
    - Dst: memcpy
      Src: /src/nss/lib/ssl/sslprimitive.c:84,1
    - Dst: strlen
      Src: /src/nss/lib/ssl/sslprimitive.c:84,1
    - Dst: strlen
      Src: /src/nss/lib/ssl/sslprimitive.c:85,1
    - Dst: tls13_HkdfExpandLabel
      Src: /src/nss/lib/ssl/sslprimitive.c:86,1
    - Dst: PK11_CreateContextBySymKey
      Src: /src/nss/lib/ssl/sslprimitive.c:98,1
    - Dst: PK11_CreateContextBySymKey
      Src: /src/nss/lib/ssl/sslprimitive.c:105,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/sslprimitive.c:112,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/sslprimitive.c:117,1
    - Dst: SSLExp_DestroyAead
      Src: /src/nss/lib/ssl/sslprimitive.c:118,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 53
    argCount: 7
    argNames:
    - version
    - cipherSuite
    - variant
    - secret
    - labelPrefix
    - labelPrefixLen
    - ctx
    argTypes:
    - PRUint16
    - PRUint16
    - SSLProtocolVariant
    - PK11SymKey*
    - char*
    - unsigned int
    - SSLAeadContext**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 33
    functionDepth: 11
    functionLinenumber: 33
    functionLinenumberEnd: 120
    functionName: SSLExp_MakeVariantAead
    functionSourceFile: /src/nss/lib/ssl/sslprimitive.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - tls13_GetHashAndCipher
    - ssl3_Alg2Mech
    - memcpy
    - PORT_ZNew
    - tls13_HkdfExpandLabel
    - PK11_FreeSymKey
    - PORT_SetError
    - PK11_CreateContextBySymKey
    - SSLExp_DestroyAead
    - tls13_HkdfExpandLabelRaw
    - strlen
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSLExp_MakeVariantAead(PRUint16 version, PRUint16 cipherSuite,
      SSLProtocolVariant variant,\n                       PK11SymKey *secret, const
      char *labelPrefix,\n                       unsigned int labelPrefixLen, SSLAeadContext
      **ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSLExp_MakeVariantAead
      Src: /src/nss/lib/ssl/sslprimitive.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - version
    - cipherSuite
    - secret
    - labelPrefix
    - labelPrefixLen
    - ctx
    argTypes:
    - PRUint16
    - PRUint16
    - PK11SymKey*
    - char*
    - unsigned int
    - SSLAeadContext**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 122
    functionDepth: 12
    functionLinenumber: 122
    functionLinenumberEnd: 128
    functionName: SSLExp_MakeAead
    functionSourceFile: /src/nss/lib/ssl/sslprimitive.c
    functionUses: 0
    functionsReached:
    - SSLExp_MakeVariantAead
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSLExp_MakeAead(PRUint16 version, PRUint16 cipherSuite,
      PK11SymKey *secret,\n                const char *labelPrefix, unsigned int labelPrefixLen,
      SSLAeadContext **ctx)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/ssl/sslprimitive.c:137,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/ssl/sslprimitive.c:140,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/ssl/sslprimitive.c:143,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSLAeadContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 130
    functionDepth: 5
    functionLinenumber: 130
    functionLinenumberEnd: 145
    functionName: SSLExp_DestroyAead
    functionSourceFile: /src/nss/lib/ssl/sslprimitive.c
    functionUses: 1
    functionsReached:
    - PORT_ZFree
    - PK11_DestroyContext
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSLExp_DestroyAead(SSLAeadContext *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslprimitive.c:157,1
    - Dst: SSL_BUFFER_FIXED
      Src: /src/nss/lib/ssl/sslprimitive.c:163,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/sslprimitive.c:164,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslprimitive.c:166,1
    - Dst: tls13_AEAD
      Src: /src/nss/lib/ssl/sslprimitive.c:175,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 11
    argNames:
    - ctx
    - context
    - decrypt
    - counter
    - aad
    - aadLen
    - in
    - inLen
    - out
    - outLen
    - maxOut
    argTypes:
    - SSLAeadContext*
    - PK11Context*
    - PRBool
    - PRUint64
    - PRUint8*
    - unsigned int
    - PRUint8*
    - unsigned int
    - PRUint8*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 148
    functionDepth: 12
    functionLinenumber: 148
    functionLinenumberEnd: 178
    functionName: ssl_AeadInner
    functionSourceFile: /src/nss/lib/ssl/sslprimitive.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - sslBuffer_AppendNumber
    - PORT_SetError
    - SSL_BUFFER_FIXED
    - tls13_AEAD
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_AeadInner(const SSLAeadContext *ctx, PK11Context *context,\n
      \             PRBool decrypt, PRUint64 counter,\n              const PRUint8
      *aad, unsigned int aadLen,\n              const PRUint8 *in, unsigned int inLen,\n
      \             PRUint8 *out, unsigned int *outLen, unsigned int maxOut)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_AeadInner
      Src: /src/nss/lib/ssl/sslprimitive.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 9
    argNames:
    - ctx
    - counter
    - aad
    - aadLen
    - plaintext
    - plaintextLen
    - out
    - outLen
    - maxOut
    argTypes:
    - SSLAeadContext*
    - PRUint64
    - PRUint8*
    - unsigned int
    - PRUint8*
    - unsigned int
    - PRUint8*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 180
    functionDepth: 13
    functionLinenumber: 180
    functionLinenumberEnd: 190
    functionName: SSLExp_AeadEncrypt
    functionSourceFile: /src/nss/lib/ssl/sslprimitive.c
    functionUses: 0
    functionsReached:
    - ssl_AeadInner
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSLExp_AeadEncrypt(const SSLAeadContext *ctx, PRUint64 counter,\n
      \                  const PRUint8 *aad, unsigned int aadLen,\n                   const
      PRUint8 *plaintext, unsigned int plaintextLen,\n                   PRUint8 *out,
      unsigned int *outLen, unsigned int maxOut)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_AeadInner
      Src: /src/nss/lib/ssl/sslprimitive.c:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 9
    argNames:
    - ctx
    - counter
    - aad
    - aadLen
    - ciphertext
    - ciphertextLen
    - out
    - outLen
    - maxOut
    argTypes:
    - SSLAeadContext*
    - PRUint64
    - PRUint8*
    - unsigned int
    - PRUint8*
    - unsigned int
    - PRUint8*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 192
    functionDepth: 13
    functionLinenumber: 192
    functionLinenumberEnd: 202
    functionName: SSLExp_AeadDecrypt
    functionSourceFile: /src/nss/lib/ssl/sslprimitive.c
    functionUses: 0
    functionsReached:
    - ssl_AeadInner
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSLExp_AeadDecrypt(const SSLAeadContext *ctx, PRUint64 counter,\n
      \                  const PRUint8 *aad, unsigned int aadLen,\n                   const
      PRUint8 *ciphertext, unsigned int ciphertextLen,\n                   PRUint8
      *out, unsigned int *outLen, unsigned int maxOut)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslprimitive.c:209,1
    - Dst: tls13_GetHashAndCipher
      Src: /src/nss/lib/ssl/sslprimitive.c:214,1
    - Dst: tls13_HkdfExtract
      Src: /src/nss/lib/ssl/sslprimitive.c:219,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - version
    - cipherSuite
    - salt
    - ikm
    - keyp
    argTypes:
    - PRUint16
    - PRUint16
    - PK11SymKey*
    - PK11SymKey*
    - PK11SymKey**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 204
    functionDepth: 11
    functionLinenumber: 204
    functionLinenumberEnd: 220
    functionName: SSLExp_HkdfExtract
    functionSourceFile: /src/nss/lib/ssl/sslprimitive.c
    functionUses: 0
    functionsReached:
    - tls13_HkdfExtract
    - PORT_SetError
    - tls13_GetHashAndCipher
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSLExp_HkdfExtract(PRUint16 version, PRUint16 cipherSuite,\n
      \                  PK11SymKey *salt, PK11SymKey *ikm, PK11SymKey **keyp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSLExp_HkdfVariantExpandLabel
      Src: /src/nss/lib/ssl/sslprimitive.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - version
    - cipherSuite
    - prk
    - hsHash
    - hsHashLen
    - label
    - labelLen
    - keyp
    argTypes:
    - PRUint16
    - PRUint16
    - PK11SymKey*
    - PRUint8*
    - unsigned int
    - char*
    - unsigned int
    - PK11SymKey**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 229
    functionName: SSLExp_HkdfExpandLabel
    functionSourceFile: /src/nss/lib/ssl/sslprimitive.c
    functionUses: 0
    functionsReached:
    - SSLExp_HkdfVariantExpandLabel
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSLExp_HkdfExpandLabel(PRUint16 version, PRUint16 cipherSuite,
      PK11SymKey *prk,\n                       const PRUint8 *hsHash, unsigned int
      hsHashLen,\n                       const char *label, unsigned int labelLen,
      PK11SymKey **keyp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslprimitive.c:239,1
    - Dst: tls13_GetHashAndCipher
      Src: /src/nss/lib/ssl/sslprimitive.c:244,1
    - Dst: tls13_HkdfExpandLabel
      Src: /src/nss/lib/ssl/sslprimitive.c:249,1
    - Dst: tls13_GetHashSizeForHash
      Src: /src/nss/lib/ssl/sslprimitive.c:251,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 9
    argNames:
    - version
    - cipherSuite
    - prk
    - hsHash
    - hsHashLen
    - label
    - labelLen
    - variant
    - keyp
    argTypes:
    - PRUint16
    - PRUint16
    - PK11SymKey*
    - PRUint8*
    - unsigned int
    - char*
    - unsigned int
    - SSLProtocolVariant
    - PK11SymKey**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 231
    functionDepth: 4
    functionLinenumber: 231
    functionLinenumberEnd: 252
    functionName: SSLExp_HkdfVariantExpandLabel
    functionSourceFile: /src/nss/lib/ssl/sslprimitive.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    - tls13_GetHashAndCipher
    - tls13_GetHashSizeForHash
    - tls13_HkdfExpandLabel
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSLExp_HkdfVariantExpandLabel(PRUint16 version, PRUint16
      cipherSuite, PK11SymKey *prk,\n                              const PRUint8 *hsHash,
      unsigned int hsHashLen,\n                              const char *label, unsigned
      int labelLen,\n                              SSLProtocolVariant variant, PK11SymKey
      **keyp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSLExp_HkdfVariantExpandLabelWithMech
      Src: /src/nss/lib/ssl/sslprimitive.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 10
    argNames:
    - version
    - cipherSuite
    - prk
    - hsHash
    - hsHashLen
    - label
    - labelLen
    - mech
    - keySize
    - keyp
    argTypes:
    - PRUint16
    - PRUint16
    - PK11SymKey*
    - PRUint8*
    - unsigned int
    - char*
    - unsigned int
    - CK_MECHANISM_TYPE
    - unsigned int
    - PK11SymKey**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 264
    functionName: SSLExp_HkdfExpandLabelWithMech
    functionSourceFile: /src/nss/lib/ssl/sslprimitive.c
    functionUses: 0
    functionsReached:
    - SSLExp_HkdfVariantExpandLabelWithMech
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSLExp_HkdfExpandLabelWithMech(PRUint16 version, PRUint16
      cipherSuite, PK11SymKey *prk,\n                               const PRUint8
      *hsHash, unsigned int hsHashLen,\n                               const char
      *label, unsigned int labelLen,\n                               CK_MECHANISM_TYPE
      mech, unsigned int keySize,\n                               PK11SymKey **keyp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslprimitive.c:276,1
    - Dst: tls13_GetHashAndCipher
      Src: /src/nss/lib/ssl/sslprimitive.c:281,1
    - Dst: tls13_HkdfExpandLabel
      Src: /src/nss/lib/ssl/sslprimitive.c:286,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 11
    argNames:
    - version
    - cipherSuite
    - prk
    - hsHash
    - hsHashLen
    - label
    - labelLen
    - mech
    - keySize
    - variant
    - keyp
    argTypes:
    - PRUint16
    - PRUint16
    - PK11SymKey*
    - PRUint8*
    - unsigned int
    - char*
    - unsigned int
    - CK_MECHANISM_TYPE
    - unsigned int
    - SSLProtocolVariant
    - PK11SymKey**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 266
    functionDepth: 4
    functionLinenumber: 266
    functionLinenumberEnd: 288
    functionName: SSLExp_HkdfVariantExpandLabelWithMech
    functionSourceFile: /src/nss/lib/ssl/sslprimitive.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    - tls13_GetHashAndCipher
    - tls13_HkdfExpandLabel
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSLExp_HkdfVariantExpandLabelWithMech(PRUint16 version,
      PRUint16 cipherSuite, PK11SymKey *prk,\n                                      const
      PRUint8 *hsHash, unsigned int hsHashLen,\n                                      const
      char *label, unsigned int labelLen,\n                                      CK_MECHANISM_TYPE
      mech, unsigned int keySize,\n                                      SSLProtocolVariant
      variant, PK11SymKey **keyp)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslprimitive.c:299,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/ssl/sslprimitive.c:303,1
    - Dst: tls13_GetHashAndCipher
      Src: /src/nss/lib/ssl/sslprimitive.c:310,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslprimitive.c:313,1
    - Dst: tls13_SequenceNumberEncryptionMechanism
      Src: /src/nss/lib/ssl/sslprimitive.c:317,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslprimitive.c:319,1
    - Dst: tls13_HkdfExpandLabel
      Src: /src/nss/lib/ssl/sslprimitive.c:324,1
    - Dst: SSLExp_DestroyMaskingContext
      Src: /src/nss/lib/ssl/sslprimitive.c:340,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 7
    argNames:
    - version
    - cipherSuite
    - variant
    - secret
    - label
    - labelLen
    - ctx
    argTypes:
    - PRUint16
    - PRUint16
    - SSLProtocolVariant
    - PK11SymKey*
    - char*
    - unsigned int
    - SSLMaskingContext**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 290
    functionDepth: 4
    functionLinenumber: 290
    functionLinenumberEnd: 342
    functionName: ssl_CreateMaskingContextInner
    functionSourceFile: /src/nss/lib/ssl/sslprimitive.c
    functionUses: 1
    functionsReached:
    - tls13_GetHashAndCipher
    - tls13_HkdfExpandLabel
    - PORT_ZNew
    - SSLExp_DestroyMaskingContext
    - PORT_SetError
    - tls13_SequenceNumberEncryptionMechanism
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_CreateMaskingContextInner(PRUint16 version, PRUint16
      cipherSuite,\n                              SSLProtocolVariant variant,\n                              PK11SymKey
      *secret,\n                              const char *label,\n                              unsigned
      int labelLen,\n                              SSLMaskingContext **ctx)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslprimitive.c:350,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslprimitive.c:355,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslprimitive.c:373,1
    - Dst: PK11_Encrypt
      Src: /src/nss/lib/ssl/sslprimitive.c:380,1
    - Dst: memcpy
      Src: /src/nss/lib/ssl/sslprimitive.c:387,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslprimitive.c:396,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslprimitive.c:407,1
    - Dst: PK11_Encrypt
      Src: /src/nss/lib/ssl/sslprimitive.c:411,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslprimitive.c:419,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslprimitive.c:424,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslprimitive.c:430,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 54
    argCount: 5
    argNames:
    - ctx
    - sample
    - sampleLen
    - outMask
    - maskLen
    argTypes:
    - SSLMaskingContext*
    - PRUint8*
    - unsigned int
    - PRUint8*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 344
    functionDepth: 4
    functionLinenumber: 344
    functionLinenumberEnd: 435
    functionName: ssl_CreateMaskInner
    functionSourceFile: /src/nss/lib/ssl/sslprimitive.c
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - PORT_SetError
    - memcpy
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_CreateMaskInner(SSLMaskingContext *ctx, const PRUint8
      *sample,\n                    unsigned int sampleLen, PRUint8 *outMask,\n                    unsigned
      int maskLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/sslprimitive.c:444,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/ssl/sslprimitive.c:445,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSLMaskingContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 437
    functionDepth: 4
    functionLinenumber: 437
    functionLinenumberEnd: 447
    functionName: ssl_DestroyMaskingContextInner
    functionSourceFile: /src/nss/lib/ssl/sslprimitive.c
    functionUses: 1
    functionsReached:
    - PORT_ZFree
    - PK11_FreeSymKey
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl_DestroyMaskingContextInner(SSLMaskingContext *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_CreateMaskInner
      Src: /src/nss/lib/ssl/sslprimitive.c:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - sample
    - sampleLen
    - outMask
    - maskLen
    argTypes:
    - SSLMaskingContext*
    - PRUint8*
    - unsigned int
    - PRUint8*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 449
    functionDepth: 5
    functionLinenumber: 449
    functionLinenumberEnd: 455
    functionName: SSLExp_CreateMask
    functionSourceFile: /src/nss/lib/ssl/sslprimitive.c
    functionUses: 0
    functionsReached:
    - ssl_CreateMaskInner
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSLExp_CreateMask(SSLMaskingContext *ctx, const PRUint8
      *sample,\n                  unsigned int sampleLen, PRUint8 *outMask,\n                  unsigned
      int maskLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_CreateMaskingContextInner
      Src: /src/nss/lib/ssl/sslprimitive.c:464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - version
    - cipherSuite
    - secret
    - label
    - labelLen
    - ctx
    argTypes:
    - PRUint16
    - PRUint16
    - PK11SymKey*
    - char*
    - unsigned int
    - SSLMaskingContext**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 457
    functionDepth: 5
    functionLinenumber: 457
    functionLinenumberEnd: 466
    functionName: SSLExp_CreateMaskingContext
    functionSourceFile: /src/nss/lib/ssl/sslprimitive.c
    functionUses: 0
    functionsReached:
    - ssl_CreateMaskingContextInner
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSLExp_CreateMaskingContext(PRUint16 version, PRUint16 cipherSuite,\n
      \                           PK11SymKey *secret,\n                            const
      char *label,\n                            unsigned int labelLen,\n                            SSLMaskingContext
      **ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_CreateMaskingContextInner
      Src: /src/nss/lib/ssl/sslprimitive.c:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - version
    - cipherSuite
    - variant
    - secret
    - label
    - labelLen
    - ctx
    argTypes:
    - PRUint16
    - PRUint16
    - SSLProtocolVariant
    - PK11SymKey*
    - char*
    - unsigned int
    - SSLMaskingContext**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 468
    functionDepth: 5
    functionLinenumber: 468
    functionLinenumberEnd: 478
    functionName: SSLExp_CreateVariantMaskingContext
    functionSourceFile: /src/nss/lib/ssl/sslprimitive.c
    functionUses: 0
    functionsReached:
    - ssl_CreateMaskingContextInner
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSLExp_CreateVariantMaskingContext(PRUint16 version, PRUint16
      cipherSuite,\n                                   SSLProtocolVariant variant,\n
      \                                  PK11SymKey *secret,\n                                   const
      char *label,\n                                   unsigned int labelLen,\n                                   SSLMaskingContext
      **ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_DestroyMaskingContextInner
      Src: /src/nss/lib/ssl/sslprimitive.c:483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSLMaskingContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 480
    functionDepth: 5
    functionLinenumber: 480
    functionLinenumberEnd: 484
    functionName: SSLExp_DestroyMaskingContext
    functionSourceFile: /src/nss/lib/ssl/sslprimitive.c
    functionUses: 1
    functionsReached:
    - ssl_DestroyMaskingContextInner
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSLExp_DestroyMaskingContext(SSLMaskingContext *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: SSL_CERT_IS
    functionSourceFile: /src/nss/lib/ssl/sslcert.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CERT_IS(c, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: SSL_CERT_IS_ONLY
    functionSourceFile: /src/nss/lib/ssl/sslcert.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CERT_IS_ONLY(c, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: SSL_CERT_IS_EC
    functionSourceFile: /src/nss/lib/ssl/sslcert.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CERT_IS_EC(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 245
    functionName: SID_HOWMANY
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SID_HOWMANY(val, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - val
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 246
    functionName: SID_ROUNDUP
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SID_ROUNDUP(val, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_InitializePRErrorTable
      Src: /src/nss/lib/ssl/sslsnce.c:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 283
    functionDepth: 2
    functionLinenumber: 283
    functionLinenumberEnd: 288
    functionName: ssl_InitSessionCache
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 0
    functionsReached:
    - ssl_InitializePRErrorTable
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl_InitSessionCache()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_Now
      Src: /src/nss/lib/ssl/sslsnce.c:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 296
    functionName: ssl_CacheNow
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 0
    functionsReached:
    - PR_Now
    linkageType: ''
    returnType: PRUint32
    signature: PRUint32 ssl_CacheNow()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sslMutex_Lock
      Src: /src/nss/lib/ssl/sslsnce.c:301,1
    - Dst: ssl_CacheNow
      Src: /src/nss/lib/ssl/sslsnce.c:305,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - lock
    - now
    argTypes:
    - sidCacheLock*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 311
    functionName: LockSidCacheLock
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 0
    functionsReached:
    - sslMutex_Lock
    - ssl_CacheNow
    linkageType: ''
    returnType: PRUint32
    signature: PRUint32 LockSidCacheLock(sidCacheLock *lock, PRUint32 now)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sslMutex_Unlock
      Src: /src/nss/lib/ssl/sslsnce.c:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - lock
    argTypes:
    - sidCacheLock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 321
    functionName: UnlockSidCacheLock
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 0
    functionsReached:
    - sslMutex_Unlock
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus UnlockSidCacheLock(sidCacheLock *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LockSidCacheLock
      Src: /src/nss/lib/ssl/sslsnce.c:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cache
    - set
    - now
    argTypes:
    - cacheDesc*
    - PRUint32
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 324
    functionDepth: 2
    functionLinenumber: 324
    functionLinenumberEnd: 331
    functionName: LockSet
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 0
    functionsReached:
    - LockSidCacheLock
    linkageType: ''
    returnType: PRUint32
    signature: PRUint32 LockSet(cacheDesc *cache, PRUint32 set, PRUint32 now)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UnlockSidCacheLock
      Src: /src/nss/lib/ssl/sslsnce.c:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cache
    - set
    argTypes:
    - cacheDesc*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 333
    functionDepth: 2
    functionLinenumber: 333
    functionLinenumberEnd: 340
    functionName: UnlockSet
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 0
    functionsReached:
    - UnlockSidCacheLock
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus UnlockSet(cacheDesc *cache, PRUint32 set)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsnce.c:355,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/sslsnce.c:360,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/sslsnce.c:363,1
    - Dst: LockSidCacheLock
      Src: /src/nss/lib/ssl/sslsnce.c:366,1
    - Dst: UnlockSidCacheLock
      Src: /src/nss/lib/ssl/sslsnce.c:383,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - cache
    - cert
    - sce
    argTypes:
    - cacheDesc*
    - CERTCertificate*
    - sidCacheEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 346
    functionDepth: 2
    functionLinenumber: 346
    functionLinenumberEnd: 386
    functionName: CacheCert
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PORT_Memcpy
    - UnlockSidCacheLock
    - LockSidCacheLock
    linkageType: ''
    returnType: PRUint32
    signature: PRUint32 CacheCert(cacheDesc *cache, CERTCertificate *cert, sidCacheEntry
      *sce)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_Hash
      Src: /src/nss/lib/ssl/sslsnce.c:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - name
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 399
    functionName: Get32BitNameHash
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 0
    functionsReached:
    - SECITEM_Hash
    linkageType: ''
    returnType: PLHashNumber
    signature: PLHashNumber Get32BitNameHash(const SECItem *name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsnce.c:412,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/sslsnce.c:418,1
    - Dst: HASH_HashBuf
      Src: /src/nss/lib/ssl/sslsnce.c:419,1
    - Dst: Get32BitNameHash
      Src: /src/nss/lib/ssl/sslsnce.c:422,1
    - Dst: LockSidCacheLock
      Src: /src/nss/lib/ssl/sslsnce.c:424,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/sslsnce.c:434,1
    - Dst: UnlockSidCacheLock
      Src: /src/nss/lib/ssl/sslsnce.c:436,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - cache
    - name
    - sce
    argTypes:
    - cacheDesc*
    - SECItem*
    - sidCacheEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 403
    functionDepth: 2
    functionLinenumber: 403
    functionLinenumberEnd: 439
    functionName: CacheSrvName
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 0
    functionsReached:
    - PORT_Memcpy
    - Get32BitNameHash
    - PORT_SetError
    - HASH_HashBuf
    - UnlockSidCacheLock
    - LockSidCacheLock
    linkageType: ''
    returnType: PRUint32
    signature: PRUint32 CacheSrvName(cacheDesc *cache, SECItem *name, sidCacheEntry
      *sce)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/sslsnce.c:466,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsnce.c:472,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/sslsnce.c:476,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 2
    argNames:
    - to
    - from
    argTypes:
    - sidCacheEntry*
    - sslSessionID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 482
    functionName: ConvertFromSID
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SSL_TRC
    - PORT_Memcpy
    linkageType: ''
    returnType: void
    signature: void ConvertFromSID(sidCacheEntry *to, sslSessionID *from)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZNew
      Src: /src/nss/lib/ssl/sslsnce.c:496,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/ssl/sslsnce.c:511,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/sslsnce.c:517,1
    - Dst: CERT_NewTempCertificate
      Src: /src/nss/lib/ssl/sslsnce.c:538,1
    - Dst: ssl_LookupNamedGroup
      Src: /src/nss/lib/ssl/sslsnce.c:547,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/sslsnce.c:568,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/sslsnce.c:569,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 62
    argCount: 4
    argNames:
    - from
    - pcce
    - psnce
    - dbHandle
    argTypes:
    - sidCacheEntry*
    - certCacheEntry*
    - srvNameCacheEntry*
    - CERTCertDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 488
    functionDepth: 8
    functionLinenumber: 488
    functionLinenumberEnd: 572
    functionName: ConvertToSID
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 0
    functionsReached:
    - PORT_Memcpy
    - PORT_ZNew
    - PORT_Free
    - ssl_LookupNamedGroup
    - SECITEM_CopyItem
    - CERT_NewTempCertificate
    - SECITEM_FreeItem
    linkageType: ''
    returnType: sslSessionID
    signature: "sslSessionID *\nConvertToSID(sidCacheEntry *from,\n             certCacheEntry
      *pcce,\n             srvNameCacheEntry *psnce,\n             CERTCertDBHandle
      *dbHandle)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/ssl/sslsnce.c:584,1
    - Dst: memcpy
      Src: /src/nss/lib/ssl/sslsnce.c:587,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - cache
    - addr
    - s
    - nl
    argTypes:
    - cacheDesc*
    - PRIPv6Addr*
    - PRUint8*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 578
    functionDepth: 1
    functionLinenumber: 578
    functionLinenumberEnd: 594
    functionName: SIDindex
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 0
    functionsReached:
    - memset
    - memcpy
    linkageType: ''
    returnType: PRUint32
    signature: PRUint32 SIDindex(cacheDesc *cache, const PRIPv6Addr *addr, PRUint8
      *s, unsigned nl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/sslsnce.c:623,1
    - Dst: memcmp
      Src: /src/nss/lib/ssl/sslsnce.c:638,1
    - Dst: memcmp
      Src: /src/nss/lib/ssl/sslsnce.c:639,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsnce.c:645,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 6
    argNames:
    - cache
    - setNum
    - now
    - addr
    - sessionID
    - sessionIDLength
    argTypes:
    - cacheDesc*
    - PRUint32
    - PRUint32
    - PRIPv6Addr*
    - unsigned char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 601
    functionDepth: 1
    functionLinenumber: 601
    functionLinenumberEnd: 647
    functionName: FindSID
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - SSL_TRC
    - memcmp
    linkageType: ''
    returnType: sidCacheEntry
    signature: "sidCacheEntry *\nFindSID(cacheDesc *cache, PRUint32 setNum, PRUint32
      now,\n        const PRIPv6Addr *addr, unsigned char *sessionID,\n        unsigned
      sessionIDLength)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: SIDindex
      Src: /src/nss/lib/ssl/sslsnce.c:676,1
    - Dst: LockSet
      Src: /src/nss/lib/ssl/sslsnce.c:677,1
    - Dst: FindSID
      Src: /src/nss/lib/ssl/sslsnce.c:681,1
    - Dst: LockSidCacheLock
      Src: /src/nss/lib/ssl/sslsnce.c:684,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/ssl/sslsnce.c:690,1
    - Dst: UnlockSidCacheLock
      Src: /src/nss/lib/ssl/sslsnce.c:701,1
    - Dst: PORT_AssertNotReached
      Src: /src/nss/lib/ssl/sslsnce.c:706,1
    - Dst: LockSidCacheLock
      Src: /src/nss/lib/ssl/sslsnce.c:712,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/ssl/sslsnce.c:717,1
    - Dst: UnlockSidCacheLock
      Src: /src/nss/lib/ssl/sslsnce.c:728,1
    - Dst: PORT_AssertNotReached
      Src: /src/nss/lib/ssl/sslsnce.c:733,1
    - Dst: UnlockSet
      Src: /src/nss/lib/ssl/sslsnce.c:743,1
    - Dst: ConvertToSID
      Src: /src/nss/lib/ssl/sslsnce.c:748,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 51
    argCount: 5
    argNames:
    - sslNow
    - addr
    - sessionID
    - sessionIDLength
    - dbHandle
    argTypes:
    - PRTime
    - PRIPv6Addr*
    - unsigned char*
    - unsigned int
    - CERTCertDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 658
    functionDepth: 9
    functionLinenumber: 658
    functionLinenumberEnd: 751
    functionName: ServerSessionIDLookup
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 0
    functionsReached:
    - ConvertToSID
    - SIDindex
    - LockSet
    - PORT_AssertNotReached
    - PORT_Memcmp
    - UnlockSet
    - UnlockSidCacheLock
    - FindSID
    - LockSidCacheLock
    linkageType: ''
    returnType: sslSessionID
    signature: "sslSessionID *\nServerSessionIDLookup(PRTime sslNow, const PRIPv6Addr
      *addr,\n                      unsigned char *sessionID,\n                      unsigned
      int sessionIDLength,\n                      CERTCertDBHandle *dbHandle)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsnce.c:759,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsnce.c:773,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/sslsnce.c:781,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/sslsnce.c:788,1
    - Dst: ConvertFromSID
      Src: /src/nss/lib/ssl/sslsnce.c:791,1
    - Dst: CacheSrvName
      Src: /src/nss/lib/ssl/sslsnce.c:795,1
    - Dst: CacheCert
      Src: /src/nss/lib/ssl/sslsnce.c:798,1
    - Dst: SIDindex
      Src: /src/nss/lib/ssl/sslsnce.c:801,1
    - Dst: LockSet
      Src: /src/nss/lib/ssl/sslsnce.c:802,1
    - Dst: UnlockSet
      Src: /src/nss/lib/ssl/sslsnce.c:813,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - sid
    - creationTime
    argTypes:
    - sslSessionID*
    - PRTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 756
    functionDepth: 3
    functionLinenumber: 756
    functionLinenumberEnd: 817
    functionName: ssl_ServerCacheSessionID
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - ConvertFromSID
    - SIDindex
    - LockSet
    - CacheCert
    - SSL_TRC
    - PRINT_BUF
    - UnlockSet
    - CacheSrvName
    linkageType: ''
    returnType: void
    signature: void ssl_ServerCacheSessionID(sslSessionID *sid, PRTime creationTime)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetError
      Src: /src/nss/lib/ssl/sslsnce.c:840,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/sslsnce.c:844,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/sslsnce.c:851,1
    - Dst: SIDindex
      Src: /src/nss/lib/ssl/sslsnce.c:852,1
    - Dst: LockSet
      Src: /src/nss/lib/ssl/sslsnce.c:853,1
    - Dst: FindSID
      Src: /src/nss/lib/ssl/sslsnce.c:855,1
    - Dst: UnlockSet
      Src: /src/nss/lib/ssl/sslsnce.c:859,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsnce.c:862,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - sid
    argTypes:
    - sslSessionID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 823
    functionDepth: 3
    functionLinenumber: 823
    functionLinenumberEnd: 863
    functionName: ssl_ServerUncacheSessionID
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 1
    functionsReached:
    - SIDindex
    - LockSet
    - SSL_TRC
    - PRINT_BUF
    - PORT_SetError
    - PR_GetError
    - UnlockSet
    - FindSID
    linkageType: ''
    returnType: void
    signature: void ssl_ServerUncacheSessionID(sslSessionID *sid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sslMutex_Destroy
      Src: /src/nss/lib/ssl/sslsnce.c:879,1
    - Dst: PR_MemUnmap
      Src: /src/nss/lib/ssl/sslsnce.c:884,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/sslsnce.c:886,1
    - Dst: PR_CloseFileMap
      Src: /src/nss/lib/ssl/sslsnce.c:891,1
    - Dst: memset
      Src: /src/nss/lib/ssl/sslsnce.c:894,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - cache
    argTypes:
    - cacheDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 865
    functionDepth: 1
    functionLinenumber: 865
    functionLinenumberEnd: 895
    functionName: CloseCache
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 0
    functionsReached:
    - sslMutex_Destroy
    - PORT_Free
    - PR_CloseFileMap
    - PR_MemUnmap
    - memset
    linkageType: ''
    returnType: void
    signature: void CloseCache(cacheDesc *cache)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsnce.c:912,1
    - Dst: SID_HOWMANY
      Src: /src/nss/lib/ssl/sslsnce.c:937,1
    - Dst: PR_MIN
      Src: /src/nss/lib/ssl/sslsnce.c:943,1
    - Dst: SID_HOWMANY
      Src: /src/nss/lib/ssl/sslsnce.c:946,1
    - Dst: SID_ROUNDUP
      Src: /src/nss/lib/ssl/sslsnce.c:956,1
    - Dst: SID_ROUNDUP
      Src: /src/nss/lib/ssl/sslsnce.c:963,1
    - Dst: SID_ROUNDUP
      Src: /src/nss/lib/ssl/sslsnce.c:967,1
    - Dst: SID_ROUNDUP
      Src: /src/nss/lib/ssl/sslsnce.c:971,1
    - Dst: SID_ROUNDUP
      Src: /src/nss/lib/ssl/sslsnce.c:984,1
    - Dst: SID_ROUNDUP
      Src: /src/nss/lib/ssl/sslsnce.c:992,1
    - Dst: SID_ROUNDUP
      Src: /src/nss/lib/ssl/sslsnce.c:999,1
    - Dst: SID_ROUNDUP
      Src: /src/nss/lib/ssl/sslsnce.c:1003,1
    - Dst: SID_ROUNDUP
      Src: /src/nss/lib/ssl/sslsnce.c:1007,1
    - Dst: SID_ROUNDUP
      Src: /src/nss/lib/ssl/sslsnce.c:1011,1
    - Dst: SID_ROUNDUP
      Src: /src/nss/lib/ssl/sslsnce.c:1017,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/ssl/sslsnce.c:1040,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/ssl/sslsnce.c:1042,1
    - Dst: GetCurrentThreadId
      Src: /src/nss/lib/ssl/sslsnce.c:1043,1
    - Dst: PR_OpenAnonFileMap
      Src: /src/nss/lib/ssl/sslsnce.c:1052,1
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/ssl/sslsnce.c:1055,1
    - Dst: PR_MemMap
      Src: /src/nss/lib/ssl/sslsnce.c:1060,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/ssl/sslsnce.c:1062,1
    - Dst: memset
      Src: /src/nss/lib/ssl/sslsnce.c:1070,1
    - Dst: memcpy
      Src: /src/nss/lib/ssl/sslsnce.c:1073,1
    - Dst: ssl_CacheNow
      Src: /src/nss/lib/ssl/sslsnce.c:1098,1
    - Dst: sslMutex_Init
      Src: /src/nss/lib/ssl/sslsnce.c:1104,1
    - Dst: CloseCache
      Src: /src/nss/lib/ssl/sslsnce.c:1117,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsnce.c:1118,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 140
    argCount: 7
    argNames:
    - cache
    - maxCacheEntries
    - maxCertCacheEntries
    - maxSrvNameCacheEntries
    - ssl3_timeout
    - directory
    - shared
    argTypes:
    - cacheDesc*
    - int
    - int
    - int
    - PRUint32
    - char*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1120
      start: 897
    functionDepth: 2
    functionLinenumber: 897
    functionLinenumberEnd: 1120
    functionName: InitCache
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - CloseCache
    - memcpy
    - PR_MIN
    - sslMutex_Init
    - SID_ROUNDUP
    - memset
    - PORT_SetError
    - PR_smprintf_free
    - GetCurrentThreadId
    - PR_smprintf
    - ssl_CacheNow
    - SID_HOWMANY
    - PR_OpenAnonFileMap
    - PR_MemMap
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus InitCache(cacheDesc *cache, int maxCacheEntries, int maxCertCacheEntries,\n
      \         int maxSrvNameCacheEntries, PRUint32 ssl3_timeout,\n          const
      char *directory, PRBool shared)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1122
    functionDepth: 0
    functionLinenumber: 1122
    functionLinenumberEnd: 1127
    functionName: SSL_GetMaxServerCacheLocks
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRUint32
    signature: PRUint32 SSL_GetMaxServerCacheLocks(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsnce.c:1138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - maxLocks
    argTypes:
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1144
      start: 1129
    functionDepth: 0
    functionLinenumber: 1129
    functionLinenumberEnd: 1144
    functionName: SSL_SetMaxServerCacheLocks
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSL_SetMaxServerCacheLocks(PRUint32 maxLocks)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ssl_InitSessionCache
      Src: /src/nss/lib/ssl/sslsnce.c:1161,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsnce.c:1166,1
    - Dst: InitCache
      Src: /src/nss/lib/ssl/sslsnce.c:1170,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 7
    argNames:
    - cache
    - ssl3_timeout
    - directory
    - shared
    - maxCacheEntries
    - maxCertCacheEntries
    - maxSrvNameCacheEntries
    argTypes:
    - cacheDesc*
    - PRUint32
    - char*
    - PRBool
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1178
      start: 1150
    functionDepth: 3
    functionLinenumber: 1150
    functionLinenumberEnd: 1178
    functionName: ssl_ConfigServerSessionIDCacheInstanceWithOpt
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 0
    functionsReached:
    - InitCache
    - ssl_InitSessionCache
    - SSL_GETPID
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_ConfigServerSessionIDCacheInstanceWithOpt(cacheDesc
      *cache,\n                                              PRUint32 ssl3_timeout,\n
      \                                             const char *directory,\n                                              PRBool
      shared,\n                                              int maxCacheEntries,\n
      \                                             int maxCertCacheEntries,\n                                              int
      maxSrvNameCacheEntries)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_ConfigServerSessionIDCacheInstanceWithOpt
      Src: /src/nss/lib/ssl/sslsnce.c:1187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - cache
    - maxCacheEntries
    - ssl2_timeout
    - ssl3_timeout
    - directory
    - shared
    argTypes:
    - cacheDesc*
    - int
    - PRUint32
    - PRUint32
    - char*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1193
      start: 1180
    functionDepth: 4
    functionLinenumber: 1180
    functionLinenumberEnd: 1193
    functionName: SSL_ConfigServerSessionIDCacheInstance
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 0
    functionsReached:
    - ssl_ConfigServerSessionIDCacheInstanceWithOpt
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSL_ConfigServerSessionIDCacheInstance(cacheDesc *cache,\n
      \                                      int maxCacheEntries,\n                                       PRUint32
      ssl2_timeout,\n                                       PRUint32 ssl3_timeout,\n
      \                                      const char *directory, PRBool shared)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_InitSessionCacheLocks
      Src: /src/nss/lib/ssl/sslsnce.c:1201,1
    - Dst: SSL_ConfigServerSessionIDCacheInstance
      Src: /src/nss/lib/ssl/sslsnce.c:1202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - maxCacheEntries
    - ssl2_timeout
    - ssl3_timeout
    - directory
    argTypes:
    - int
    - PRUint32
    - PRUint32
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1204
      start: 1195
    functionDepth: 5
    functionLinenumber: 1195
    functionLinenumberEnd: 1204
    functionName: SSL_ConfigServerSessionIDCache
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 2
    functionsReached:
    - ssl_InitSessionCacheLocks
    - SSL_ConfigServerSessionIDCacheInstance
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSL_ConfigServerSessionIDCache(int maxCacheEntries,\n                               PRUint32
      ssl2_timeout,\n                               PRUint32 ssl3_timeout,\n                               const
      char *directory)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CloseCache
      Src: /src/nss/lib/ssl/sslsnce.c:1209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cache
    argTypes:
    - cacheDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1211
      start: 1206
    functionDepth: 2
    functionLinenumber: 1206
    functionLinenumberEnd: 1211
    functionName: SSL_ShutdownServerSessionIDCacheInstance
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 0
    functionsReached:
    - CloseCache
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSL_ShutdownServerSessionIDCacheInstance(cacheDesc *cache)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StopLockPoller
      Src: /src/nss/lib/ssl/sslsnce.c:1218,1
    - Dst: SSL3_ShutdownServerCache
      Src: /src/nss/lib/ssl/sslsnce.c:1220,1
    - Dst: SSL_ShutdownServerSessionIDCacheInstance
      Src: /src/nss/lib/ssl/sslsnce.c:1221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1222
      start: 1213
    functionDepth: 5
    functionLinenumber: 1213
    functionLinenumberEnd: 1222
    functionName: SSL_ShutdownServerSessionIDCache
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 2
    functionsReached:
    - StopLockPoller
    - SSL_ShutdownServerSessionIDCacheInstance
    - SSL3_ShutdownServerCache
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSL_ShutdownServerSessionIDCache(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ssl_ConfigServerSessionIDCacheInstanceWithOpt
      Src: /src/nss/lib/ssl/sslsnce.c:1245,1
    - Dst: PR_ExportFileMapAsString
      Src: /src/nss/lib/ssl/sslsnce.c:1251,1
    - Dst: strlen
      Src: /src/nss/lib/ssl/sslsnce.c:1253,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsnce.c:1254,1
    - Dst: BTOA_DataToAscii
      Src: /src/nss/lib/ssl/sslsnce.c:1261,1
    - Dst: strlen
      Src: /src/nss/lib/ssl/sslsnce.c:1262,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsnce.c:1263,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/ssl/sslsnce.c:1266,1
    - Dst: strlen
      Src: /src/nss/lib/ssl/sslsnce.c:1267,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsnce.c:1268,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/sslsnce.c:1271,1
    - Dst: NSS_PutEnv
      Src: /src/nss/lib/ssl/sslsnce.c:1273,1
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/ssl/sslsnce.c:1274,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsnce.c:1276,1
    - Dst: LaunchLockPoller
      Src: /src/nss/lib/ssl/sslsnce.c:1282,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 5
    argNames:
    - ssl3_timeout
    - directory
    - maxCacheEntries
    - maxCertCacheEntries
    - maxSrvNameCacheEntries
    argTypes:
    - PRUint32
    - char*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1285
      start: 1227
    functionDepth: 4
    functionLinenumber: 1227
    functionLinenumberEnd: 1285
    functionName: ssl_ConfigMPServerSIDCacheWithOpt
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 0
    functionsReached:
    - NSS_PutEnv
    - PR_ExportFileMapAsString
    - LaunchLockPoller
    - BTOA_DataToAscii
    - PORT_Free
    - ssl_ConfigServerSessionIDCacheInstanceWithOpt
    - PORT_SetError
    - PR_smprintf_free
    - PR_smprintf
    - strlen
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_ConfigMPServerSIDCacheWithOpt(PRUint32 ssl3_timeout,\n
      \                                 const char *directory,\n                                  int
      maxCacheEntries,\n                                  int maxCertCacheEntries,\n
      \                                 int maxSrvNameCacheEntries)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_ConfigMPServerSIDCacheWithOpt
      Src: /src/nss/lib/ssl/sslsnce.c:1296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - maxCacheEntries
    - ssl2_timeout
    - ssl3_timeout
    - directory
    argTypes:
    - int
    - PRUint32
    - PRUint32
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1300
      start: 1290
    functionDepth: 5
    functionLinenumber: 1290
    functionLinenumberEnd: 1300
    functionName: SSL_ConfigMPServerSIDCache
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 1
    functionsReached:
    - ssl_ConfigMPServerSIDCacheWithOpt
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSL_ConfigMPServerSIDCache(int maxCacheEntries,\n                           PRUint32
      ssl2_timeout,\n                           PRUint32 ssl3_timeout,\n                           const
      char *directory)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_InitSessionCacheLocks
      Src: /src/nss/lib/ssl/sslsnce.c:1313,1
    - Dst: ssl_ConfigServerSessionIDCacheInstanceWithOpt
      Src: /src/nss/lib/ssl/sslsnce.c:1314,1
    - Dst: ssl_ConfigMPServerSIDCacheWithOpt
      Src: /src/nss/lib/ssl/sslsnce.c:1318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 7
    argNames:
    - ssl2_timeout
    - ssl3_timeout
    - directory
    - maxCacheEntries
    - maxCertCacheEntries
    - maxSrvNameCacheEntries
    - enableMPCache
    argTypes:
    - PRUint32
    - PRUint32
    - char*
    - int
    - int
    - int
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1321
      start: 1302
    functionDepth: 5
    functionLinenumber: 1302
    functionLinenumberEnd: 1321
    functionName: SSL_ConfigServerSessionIDCacheWithOpt
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 0
    functionsReached:
    - ssl_InitSessionCacheLocks
    - ssl_ConfigMPServerSIDCacheWithOpt
    - ssl_ConfigServerSessionIDCacheInstanceWithOpt
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSL_ConfigServerSessionIDCacheWithOpt(\n    PRUint32 ssl2_timeout,\n
      \   PRUint32 ssl3_timeout,\n    const char *directory,\n    int maxCacheEntries,\n
      \   int maxCertCacheEntries,\n    int maxSrvNameCacheEntries,\n    PRBool enableMPCache)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: ssl_InitSessionCache
      Src: /src/nss/lib/ssl/sslsnce.c:1337,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsnce.c:1343,1
    - Dst: ssl_InitSessionCacheLocks
      Src: /src/nss/lib/ssl/sslsnce.c:1356,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/ssl/sslsnce.c:1361,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsnce.c:1363,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/ssl/sslsnce.c:1367,1
    - Dst: strchr
      Src: /src/nss/lib/ssl/sslsnce.c:1370,1
    - Dst: ATOB_AsciiToData
      Src: /src/nss/lib/ssl/sslsnce.c:1375,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/sslsnce.c:1383,1
    - Dst: strlen
      Src: /src/nss/lib/ssl/sslsnce.c:1385,1
    - Dst: memset
      Src: /src/nss/lib/ssl/sslsnce.c:1389,1
    - Dst: PR_ImportFileMapFromString
      Src: /src/nss/lib/ssl/sslsnce.c:1393,1
    - Dst: PR_MemMap
      Src: /src/nss/lib/ssl/sslsnce.c:1397,1
    - Dst: memcpy
      Src: /src/nss/lib/ssl/sslsnce.c:1415,1
    - Dst: PORT_NewArray
      Src: /src/nss/lib/ssl/sslsnce.c:1455,1
    - Dst: memcpy
      Src: /src/nss/lib/ssl/sslsnce.c:1459,1
    - Dst: sslMutex_2LevelInit
      Src: /src/nss/lib/ssl/sslsnce.c:1466,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/sslsnce.c:1480,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/sslsnce.c:1481,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/sslsnce.c:1490,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/sslsnce.c:1492,1
    - Dst: CloseCache
      Src: /src/nss/lib/ssl/sslsnce.c:1493,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsnce.c:1494,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 109
    argCount: 2
    argNames:
    - cache
    - envString
    argTypes:
    - cacheDesc*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1496
      start: 1323
    functionDepth: 5
    functionLinenumber: 1323
    functionLinenumberEnd: 1496
    functionName: SSL_InheritMPServerSIDCacheInstance
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 0
    functionsReached:
    - CloseCache
    - memcpy
    - PORT_Memcpy
    - strchr
    - PORT_Free
    - ssl_InitSessionCache
    - SSL_GETPID
    - PR_GetEnvSecure
    - ssl_InitSessionCacheLocks
    - PORT_SetError
    - memset
    - PR_MemMap
    - strlen
    - PORT_NewArray
    - sslMutex_2LevelInit
    - PR_ImportFileMapFromString
    - PORT_Strdup
    - ATOB_AsciiToData
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSL_InheritMPServerSIDCacheInstance(cacheDesc *cache, const
      char *envString)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_InheritMPServerSIDCacheInstance
      Src: /src/nss/lib/ssl/sslsnce.c:1501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - envString
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1502
      start: 1498
    functionDepth: 6
    functionLinenumber: 1498
    functionLinenumberEnd: 1502
    functionName: SSL_InheritMPServerSIDCache
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 1
    functionsReached:
    - SSL_InheritMPServerSIDCacheInstance
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSL_InheritMPServerSIDCache(const char *envString)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PR_SecondsToInterval
      Src: /src/nss/lib/ssl/sslsnce.c:1521,1
    - Dst: PR_Sleep
      Src: /src/nss/lib/ssl/sslsnce.c:1523,1
    - Dst: ssl_CacheNow
      Src: /src/nss/lib/ssl/sslsnce.c:1527,1
    - Dst: kill
      Src: /src/nss/lib/ssl/sslsnce.c:1539,1
    - Dst: sslMutex_Unlock
      Src: /src/nss/lib/ssl/sslsnce.c:1547,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1555
      start: 1508
    functionDepth: 1
    functionLinenumber: 1508
    functionLinenumberEnd: 1555
    functionName: LockPoller
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 2
    functionsReached:
    - kill
    - PR_SecondsToInterval
    - sslMutex_Unlock
    - ssl_CacheNow
    - PR_Sleep
    linkageType: ''
    returnType: void
    signature: void LockPoller(void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/ssl/sslsnce.c:1565,1
    - Dst: strtol
      Src: /src/nss/lib/ssl/sslsnce.c:1567,1
    - Dst: PR_CreateThread
      Src: /src/nss/lib/ssl/sslsnce.c:1576,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - cache
    argTypes:
    - cacheDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1583
      start: 1558
    functionDepth: 1
    functionLinenumber: 1558
    functionLinenumberEnd: 1583
    functionName: LaunchLockPoller
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 1
    functionsReached:
    - PR_CreateThread
    - PR_GetEnvSecure
    - strtol
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus LaunchLockPoller(cacheDesc *cache)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PR_Interrupt
      Src: /src/nss/lib/ssl/sslsnce.c:1593,1
    - Dst: PR_JoinThread
      Src: /src/nss/lib/ssl/sslsnce.c:1596,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - cache
    argTypes:
    - cacheDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1601
      start: 1586
    functionDepth: 0
    functionLinenumber: 1586
    functionLinenumberEnd: 1601
    functionName: StopLockPoller
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 1
    functionsReached:
    - PR_Interrupt
    - PR_JoinThread
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus StopLockPoller(cacheDesc *cache)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1631
      start: 1627
    functionDepth: 0
    functionLinenumber: 1627
    functionLinenumberEnd: 1631
    functionName: ssl_GetSelfEncryptKeysInt
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sslSelfEncryptKeys
    signature: 'sslSelfEncryptKeys *

      ssl_GetSelfEncryptKeysInt()'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsnce.c:1637,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/ssl/sslsnce.c:1638,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/lib/ssl/sslsnce.c:1639,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1641
      start: 1633
    functionDepth: 2
    functionLinenumber: 1633
    functionLinenumberEnd: 1641
    functionName: ssl_CleanupSelfEncryptKeyPair
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SECKEY_DestroyPublicKey
    - SECKEY_DestroyPrivateKey
    linkageType: ''
    returnType: void
    signature: void ssl_CleanupSelfEncryptKeyPair()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsnce.c:1647,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/sslsnce.c:1648,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/sslsnce.c:1649,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/ssl/sslsnce.c:1651,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1653
      start: 1643
    functionDepth: 4
    functionLinenumber: 1643
    functionLinenumberEnd: 1653
    functionName: ssl_ResetSelfEncryptKeys
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_Memset
    - PK11_FreeSymKey
    linkageType: ''
    returnType: void
    signature: void ssl_ResetSelfEncryptKeys()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_CleanupSelfEncryptKeyPair
      Src: /src/nss/lib/ssl/sslsnce.c:1658,1
    - Dst: PR_DestroyRWLock
      Src: /src/nss/lib/ssl/sslsnce.c:1659,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/ssl/sslsnce.c:1660,1
    - Dst: ssl_ResetSelfEncryptKeys
      Src: /src/nss/lib/ssl/sslsnce.c:1663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - appData
    - nssData
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1665
      start: 1655
    functionDepth: 5
    functionLinenumber: 1655
    functionLinenumberEnd: 1665
    functionName: ssl_SelfEncryptShutdown
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 0
    functionsReached:
    - PORT_Memset
    - ssl_CleanupSelfEncryptKeyPair
    - PR_DestroyRWLock
    - ssl_ResetSelfEncryptKeys
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl_SelfEncryptShutdown(void *appData, void *nssData)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NSS_RegisterShutdown
      Src: /src/nss/lib/ssl/sslsnce.c:1670,1
    - Dst: PR_NewRWLock
      Src: /src/nss/lib/ssl/sslsnce.c:1674,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1679
      start: 1667
    functionDepth: 1
    functionLinenumber: 1667
    functionLinenumberEnd: 1679
    functionName: ssl_SelfEncryptSetup
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 0
    functionsReached:
    - NSS_RegisterShutdown
    - PR_NewRWLock
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus ssl_SelfEncryptSetup(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsnce.c:1692,1
    - Dst: SECKEY_CopyPublicKey
      Src: /src/nss/lib/ssl/sslsnce.c:1693,1
    - Dst: SECKEY_CopyPrivateKey
      Src: /src/nss/lib/ssl/sslsnce.c:1694,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/ssl/sslsnce.c:1697,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/lib/ssl/sslsnce.c:1698,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsnce.c:1699,1
    - Dst: PR_RWLock_Wlock
      Src: /src/nss/lib/ssl/sslsnce.c:1703,1
    - Dst: PR_RWLock_Unlock
      Src: /src/nss/lib/ssl/sslsnce.c:1709,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsnce.c:1712,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/ssl/sslsnce.c:1713,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/lib/ssl/sslsnce.c:1714,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 3
    argNames:
    - pubKey
    - privKey
    - explicitConfig
    argTypes:
    - SECKEYPublicKey*
    - SECKEYPrivateKey*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1718
      start: 1684
    functionDepth: 3
    functionLinenumber: 1684
    functionLinenumberEnd: 1718
    functionName: ssl_SetSelfEncryptKeyPair
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SECKEY_CopyPublicKey
    - SECKEY_DestroyPublicKey
    - PR_RWLock_Wlock
    - PR_RWLock_Unlock
    - PORT_SetError
    - SECKEY_DestroyPrivateKey
    - SECKEY_CopyPrivateKey
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_SetSelfEncryptKeyPair(SECKEYPublicKey *pubKey,\n                          SECKEYPrivateKey
      *privKey,\n                          PRBool explicitConfig)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECKEY_GetPublicKeyType
      Src: /src/nss/lib/ssl/sslsnce.c:1726,1
    - Dst: SECKEY_GetPrivateKeyType
      Src: /src/nss/lib/ssl/sslsnce.c:1727,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsnce.c:1728,1
    - Dst: PR_CallOnce
      Src: /src/nss/lib/ssl/sslsnce.c:1732,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsnce.c:1734,1
    - Dst: ssl_SetSelfEncryptKeyPair
      Src: /src/nss/lib/ssl/sslsnce.c:1738,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - pubKey
    - privKey
    argTypes:
    - SECKEYPublicKey*
    - SECKEYPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1739
      start: 1722
    functionDepth: 4
    functionLinenumber: 1722
    functionLinenumberEnd: 1739
    functionName: SSL_SetSessionTicketKeyPair
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 0
    functionsReached:
    - ssl_SetSelfEncryptKeyPair
    - PORT_SetError
    - SECKEY_GetPrivateKeyType
    - SECKEY_GetPublicKeyType
    - PR_CallOnce
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSL_SetSessionTicketKeyPair(SECKEYPublicKey *pubKey,\n                            SECKEYPrivateKey
      *privKey)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_CallOnce
      Src: /src/nss/lib/ssl/sslsnce.c:1749,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsnce.c:1751,1
    - Dst: PR_RWLock_Rlock
      Src: /src/nss/lib/ssl/sslsnce.c:1755,1
    - Dst: PR_RWLock_Unlock
      Src: /src/nss/lib/ssl/sslsnce.c:1757,1
    - Dst: ssl_SetSelfEncryptKeyPair
      Src: /src/nss/lib/ssl/sslsnce.c:1761,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - keyPair
    argTypes:
    - sslKeyPair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1763
      start: 1744
    functionDepth: 4
    functionLinenumber: 1744
    functionLinenumberEnd: 1763
    functionName: ssl_MaybeSetSelfEncryptKeyPair
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 1
    functionsReached:
    - ssl_SetSelfEncryptKeyPair
    - PR_RWLock_Unlock
    - PORT_SetError
    - PR_CallOnce
    - PR_RWLock_Rlock
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl_MaybeSetSelfEncryptKeyPair(const sslKeyPair *keyPair)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PR_CallOnce
      Src: /src/nss/lib/ssl/sslsnce.c:1769,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsnce.c:1771,1
    - Dst: PR_RWLock_Rlock
      Src: /src/nss/lib/ssl/sslsnce.c:1779,1
    - Dst: SECKEY_CopyPublicKey
      Src: /src/nss/lib/ssl/sslsnce.c:1781,1
    - Dst: SECKEY_CopyPrivateKey
      Src: /src/nss/lib/ssl/sslsnce.c:1782,1
    - Dst: PR_RWLock_Unlock
      Src: /src/nss/lib/ssl/sslsnce.c:1786,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsnce.c:1789,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/ssl/sslsnce.c:1794,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/lib/ssl/sslsnce.c:1795,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsnce.c:1796,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - pubKey
    - privKey
    argTypes:
    - SECKEYPublicKey**
    - SECKEYPrivateKey**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1803
      start: 1765
    functionDepth: 3
    functionLinenumber: 1765
    functionLinenumberEnd: 1803
    functionName: ssl_GetSelfEncryptKeyPair
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 0
    functionsReached:
    - SECKEY_CopyPublicKey
    - SECKEY_DestroyPublicKey
    - PR_RWLock_Unlock
    - PORT_SetError
    - PR_RWLock_Rlock
    - PR_CallOnce
    - SECKEY_DestroyPrivateKey
    - SECKEY_CopyPrivateKey
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_GetSelfEncryptKeyPair(SECKEYPublicKey **pubKey,\n                          SECKEYPrivateKey
      **privKey)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/sslsnce.c:1815,1
    - Dst: ssl_GenerateSelfEncryptKeys
      Src: /src/nss/lib/ssl/sslsnce.c:1820,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1828
      start: 1809
    functionDepth: 1
    functionLinenumber: 1809
    functionLinenumberEnd: 1828
    functionName: ssl_GenerateSelfEncryptKeysOnce
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 0
    functionsReached:
    - PORT_Memcpy
    - ssl_GenerateSelfEncryptKeys
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus ssl_GenerateSelfEncryptKeysOnce(void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_CallOnceWithArg
      Src: /src/nss/lib/ssl/sslsnce.c:1834,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsnce.c:1837,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsnce.c:1842,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/sslsnce.c:1846,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - ss
    - keyName
    - encKey
    - macKey
    argTypes:
    - sslSocket*
    - PRUint8*
    - PK11SymKey**
    - PK11SymKey**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1851
      start: 1830
    functionDepth: 1
    functionLinenumber: 1830
    functionLinenumberEnd: 1851
    functionName: ssl_GetSelfEncryptKeys
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 2
    functionsReached:
    - PORT_SetError
    - PR_CallOnceWithArg
    - PORT_Memcpy
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_GetSelfEncryptKeys(sslSocket *ss, PRUint8 *keyName,\n
      \                      PK11SymKey **encKey, PK11SymKey **macKey)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsnce.c:1867,1
    - Dst: LockSidCacheLock
      Src: /src/nss/lib/ssl/sslsnce.c:1875,1
    - Dst: UnlockSidCacheLock
      Src: /src/nss/lib/ssl/sslsnce.c:1887,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 5
    argNames:
    - symWrapMechIndex
    - wrapKeyIndex
    - wswk
    - cache
    - lockTime
    argTypes:
    - unsigned int
    - unsigned int
    - SSLWrappedSymWrappingKey*
    - cacheDesc*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1890
      start: 1856
    functionDepth: 2
    functionLinenumber: 1856
    functionLinenumberEnd: 1890
    functionName: getSvrWrappingKey
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - UnlockSidCacheLock
    - LockSidCacheLock
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus getSvrWrappingKey(unsigned int symWrapMechIndex,\n                  unsigned
      int wrapKeyIndex,\n                  SSLWrappedSymWrappingKey *wswk,\n                  cacheDesc
      *cache,\n                  PRUint32 lockTime)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsnce.c:1897,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsnce.c:1898,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsnce.c:1901,1
    - Dst: getSvrWrappingKey
      Src: /src/nss/lib/ssl/sslsnce.c:1905,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - wrapMechIndex
    - wrapKeyIndex
    - wswk
    argTypes:
    - unsigned int
    - unsigned int
    - SSLWrappedSymWrappingKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1907
      start: 1892
    functionDepth: 3
    functionLinenumber: 1892
    functionLinenumberEnd: 1907
    functionName: ssl_GetWrappingKey
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - getSvrWrappingKey
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_GetWrappingKey(unsigned int wrapMechIndex,\n                   unsigned
      int wrapKeyIndex,\n                   SSLWrappedSymWrappingKey *wswk)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECKEY_PublicKeyStrength
      Src: /src/nss/lib/ssl/sslsnce.c:1916,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsnce.c:1917,1
    - Dst: PK11_PubWrapSymKey
      Src: /src/nss/lib/ssl/sslsnce.c:1922,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsnce.c:1924,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsnce.c:1925,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - svrPubKey
    - symKey
    - keyName
    - cacheEntry
    argTypes:
    - SECKEYPublicKey*
    - PK11SymKey*
    - char*
    - encKeyCacheEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1930
      start: 1910
    functionDepth: 2
    functionLinenumber: 1910
    functionLinenumberEnd: 1930
    functionName: WrapSelfEncryptKey
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 0
    functionsReached:
    - SECKEY_PublicKeyStrength
    - PORT_Assert
    - PK11_PubWrapSymKey
    - SSL_GETPID
    - SSL_DBG
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus WrapSelfEncryptKey(SECKEYPublicKey *svrPubKey, PK11SymKey
      *symKey,\n                   const char *keyName, encKeyCacheEntry *cacheEntry)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GenerateRandom
      Src: /src/nss/lib/ssl/sslsnce.c:1951,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsnce.c:1954,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsnce.c:1955,1
    - Dst: PK11_GetBestSlotMultiple
      Src: /src/nss/lib/ssl/sslsnce.c:1962,1
    - Dst: PK11_KeyGen
      Src: /src/nss/lib/ssl/sslsnce.c:1964,1
    - Dst: PK11_KeyGen
      Src: /src/nss/lib/ssl/sslsnce.c:1966,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/ssl/sslsnce.c:1968,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsnce.c:1972,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsnce.c:1973,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/sslsnce.c:1976,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/sslsnce.c:1983,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/sslsnce.c:1985,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 4
    argNames:
    - pwArg
    - keyName
    - aesKey
    - macKey
    argTypes:
    - void*
    - PRUint8*
    - PK11SymKey**
    - PK11SymKey**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1987
      start: 1932
    functionDepth: 9
    functionLinenumber: 1932
    functionLinenumberEnd: 1987
    functionName: GenerateSelfEncryptKeys
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 1
    functionsReached:
    - PORT_Memcpy
    - SSL_GETPID
    - PK11_GenerateRandom
    - SSL_DBG
    - PK11_GetBestSlotMultiple
    - PK11_KeyGen
    - PK11_FreeSlot
    - PK11_FreeSymKey
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus GenerateSelfEncryptKeys(void *pwArg, PRUint8 *keyName, PK11SymKey
      **aesKey,\n                        PK11SymKey **macKey)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GenerateSelfEncryptKeys
      Src: /src/nss/lib/ssl/sslsnce.c:1999,1
    - Dst: WrapSelfEncryptKey
      Src: /src/nss/lib/ssl/sslsnce.c:2006,1
    - Dst: WrapSelfEncryptKey
      Src: /src/nss/lib/ssl/sslsnce.c:2010,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/sslsnce.c:2020,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/sslsnce.c:2021,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 5
    argNames:
    - svrPubKey
    - pwArg
    - keyName
    - aesKey
    - macKey
    argTypes:
    - SECKEYPublicKey*
    - void*
    - PRUint8*
    - PK11SymKey**
    - PK11SymKey**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2023
      start: 1989
    functionDepth: 10
    functionLinenumber: 1989
    functionLinenumberEnd: 2023
    functionName: GenerateAndWrapSelfEncryptKeys
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 0
    functionsReached:
    - WrapSelfEncryptKey
    - GenerateSelfEncryptKeys
    - PK11_FreeSymKey
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus GenerateAndWrapSelfEncryptKeys(SECKEYPublicKey *svrPubKey,
      void *pwArg,\n                               PRUint8 *keyName, PK11SymKey **aesKey,\n
      \                              PK11SymKey **macKey)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsnce.c:2036,1
    - Dst: PK11_PubUnwrapSymKey
      Src: /src/nss/lib/ssl/sslsnce.c:2037,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsnce.c:2042,1
    - Dst: PK11_PubUnwrapSymKey
      Src: /src/nss/lib/ssl/sslsnce.c:2043,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsnce.c:2047,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsnce.c:2048,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslsnce.c:2051,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslsnce.c:2052,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/sslsnce.c:2054,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/sslsnce.c:2062,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/sslsnce.c:2064,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 4
    argNames:
    - svrPrivKey
    - keyName
    - aesKey
    - macKey
    argTypes:
    - SECKEYPrivateKey*
    - PRUint8*
    - PK11SymKey**
    - PK11SymKey**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2066
      start: 2025
    functionDepth: 4
    functionLinenumber: 2025
    functionLinenumberEnd: 2066
    functionName: UnwrapCachedSelfEncryptKeys
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_Memcpy
    - PK11_PubUnwrapSymKey
    - SSL_GETPID
    - SSL_DBG
    - PK11_FreeSymKey
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus UnwrapCachedSelfEncryptKeys(SECKEYPrivateKey *svrPrivKey,
      PRUint8 *keyName,\n                            PK11SymKey **aesKey, PK11SymKey
      **macKey)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ssl_GetSelfEncryptKeyPair
      Src: /src/nss/lib/ssl/sslsnce.c:2077,1
    - Dst: GenerateSelfEncryptKeys
      Src: /src/nss/lib/ssl/sslsnce.c:2081,1
    - Dst: LockSidCacheLock
      Src: /src/nss/lib/ssl/sslsnce.c:2083,1
    - Dst: UnwrapCachedSelfEncryptKeys
      Src: /src/nss/lib/ssl/sslsnce.c:2089,1
    - Dst: GenerateAndWrapSelfEncryptKeys
      Src: /src/nss/lib/ssl/sslsnce.c:2092,1
    - Dst: UnlockSidCacheLock
      Src: /src/nss/lib/ssl/sslsnce.c:2098,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/ssl/sslsnce.c:2100,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/lib/ssl/sslsnce.c:2101,1
    - Dst: UnlockSidCacheLock
      Src: /src/nss/lib/ssl/sslsnce.c:2105,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/ssl/sslsnce.c:2106,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/lib/ssl/sslsnce.c:2107,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 4
    argNames:
    - pwArg
    - keyName
    - encKey
    - macKey
    argTypes:
    - void*
    - PRUint8*
    - PK11SymKey**
    - PK11SymKey**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2109
      start: 2068
    functionDepth: 11
    functionLinenumber: 2068
    functionLinenumberEnd: 2109
    functionName: ssl_GenerateSelfEncryptKeys
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 1
    functionsReached:
    - GenerateSelfEncryptKeys
    - SECKEY_DestroyPublicKey
    - GenerateAndWrapSelfEncryptKeys
    - ssl_GetSelfEncryptKeyPair
    - UnwrapCachedSelfEncryptKeys
    - SECKEY_DestroyPrivateKey
    - UnlockSidCacheLock
    - LockSidCacheLock
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_GenerateSelfEncryptKeys(void *pwArg, PRUint8 *keyName,\n
      \                           PK11SymKey **encKey, PK11SymKey **macKey)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsnce.c:2130,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsnce.c:2134,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslsnce.c:2135,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslsnce.c:2138,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/ssl/sslsnce.c:2143,1
    - Dst: LockSidCacheLock
      Src: /src/nss/lib/ssl/sslsnce.c:2145,1
    - Dst: getSvrWrappingKey
      Src: /src/nss/lib/ssl/sslsnce.c:2149,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/sslsnce.c:2153,1
    - Dst: UnlockSidCacheLock
      Src: /src/nss/lib/ssl/sslsnce.c:2158,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 1
    argNames:
    - wswk
    argTypes:
    - SSLWrappedSymWrappingKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2160
      start: 2120
    functionDepth: 3
    functionLinenumber: 2120
    functionLinenumberEnd: 2160
    functionName: ssl_SetWrappingKey
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - PORT_Memcpy
    - PORT_SetError
    - PORT_Memset
    - UnlockSidCacheLock
    - getSvrWrappingKey
    - LockSidCacheLock
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl_SetWrappingKey(SSLWrappedSymWrappingKey *wswk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/sslsnce.c:2175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - maxCacheEntries
    - ssl2_timeout
    - ssl3_timeout
    - directory
    argTypes:
    - int
    - PRUint32
    - PRUint32
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2177
      start: 2169
    functionDepth: 1
    functionLinenumber: 2169
    functionLinenumberEnd: 2177
    functionName: SSL_ConfigServerSessionIDCache
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 2
    functionsReached:
    - PR_ASSERT
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSL_ConfigServerSessionIDCache(int maxCacheEntries,\n                               PRUint32
      ssl2_timeout,\n                               PRUint32 ssl3_timeout,\n                               const
      char *directory)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/sslsnce.c:2185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - maxCacheEntries
    - ssl2_timeout
    - ssl3_timeout
    - directory
    argTypes:
    - int
    - PRUint32
    - PRUint32
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2187
      start: 2179
    functionDepth: 1
    functionLinenumber: 2179
    functionLinenumberEnd: 2187
    functionName: SSL_ConfigMPServerSIDCache
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 1
    functionsReached:
    - PR_ASSERT
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSL_ConfigMPServerSIDCache(int maxCacheEntries,\n                           PRUint32
      ssl2_timeout,\n                           PRUint32 ssl3_timeout,\n                           const
      char *directory)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/sslsnce.c:2192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - envString
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2194
      start: 2189
    functionDepth: 1
    functionLinenumber: 2189
    functionLinenumberEnd: 2194
    functionName: SSL_InheritMPServerSIDCache
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 1
    functionsReached:
    - PR_ASSERT
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSL_InheritMPServerSIDCache(const char *envString)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/sslsnce.c:2201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - wrapMechIndex
    - wrapKeyIndex
    - wswk
    argTypes:
    - unsigned int
    - unsigned int
    - SSLWrappedSymWrappingKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2203
      start: 2196
    functionDepth: 1
    functionLinenumber: 2196
    functionLinenumberEnd: 2203
    functionName: ssl_GetWrappingKey
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 1
    functionsReached:
    - PR_ASSERT
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl_GetWrappingKey(unsigned int wrapMechIndex,\n                   unsigned
      int wrapKeyIndex,\n                   SSLWrappedSymWrappingKey *wswk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/sslsnce.c:2217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - wswk
    argTypes:
    - SSLWrappedSymWrappingKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2219
      start: 2214
    functionDepth: 1
    functionLinenumber: 2214
    functionLinenumberEnd: 2219
    functionName: ssl_SetWrappingKey
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 1
    functionsReached:
    - PR_ASSERT
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl_SetWrappingKey(SSLWrappedSymWrappingKey *wswk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/sslsnce.c:2224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2226
      start: 2221
    functionDepth: 1
    functionLinenumber: 2221
    functionLinenumberEnd: 2226
    functionName: SSL_GetMaxServerCacheLocks
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 0
    functionsReached:
    - PR_ASSERT
    linkageType: ''
    returnType: PRUint32
    signature: PRUint32 SSL_GetMaxServerCacheLocks(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/sslsnce.c:2231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - maxLocks
    argTypes:
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2233
      start: 2228
    functionDepth: 1
    functionLinenumber: 2228
    functionLinenumberEnd: 2233
    functionName: SSL_SetMaxServerCacheLocks
    functionSourceFile: /src/nss/lib/ssl/sslsnce.c
    functionUses: 0
    functionsReached:
    - PR_ASSERT
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSL_SetMaxServerCacheLocks(PRUint32 maxLocks)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - maxlen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: SSL_BUFFER_FIXED
    functionSourceFile: /src/nss/lib/ssl/sslencode.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_BUFFER_FIXED(b, maxlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 34
    functionName: SSL_BUFFER_FIXED_LEN
    functionSourceFile: /src/nss/lib/ssl/sslencode.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_BUFFER_FIXED_LEN(b, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: SSL_BUFFER
    functionSourceFile: /src/nss/lib/ssl/sslencode.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_BUFFER(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: SSL_BUFFER_BASE
    functionSourceFile: /src/nss/lib/ssl/sslencode.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_BUFFER_BASE(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: SSL_BUFFER_LEN
    functionSourceFile: /src/nss/lib/ssl/sslencode.h
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_BUFFER_LEN(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: SSL_BUFFER_NEXT
    functionSourceFile: /src/nss/lib/ssl/sslencode.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_BUFFER_NEXT(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: SSL_BUFFER_SPACE
    functionSourceFile: /src/nss/lib/ssl/sslencode.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_BUFFER_SPACE(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - b
    - ','
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 88
    functionName: SSL_READER
    functionSourceFile: /src/nss/lib/ssl/sslencode.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_READER(b, l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 90
    functionName: SSL_READER_CURRENT
    functionSourceFile: /src/nss/lib/ssl/sslencode.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_READER_CURRENT(r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: SSL_READER_REMAINING
    functionSourceFile: /src/nss/lib/ssl/sslencode.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_READER_REMAINING(r)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/sslerr.c:22,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslerr.c:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - hiLevelError
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 41
    functionName: ssl_MapLowLevelError
    functionSourceFile: /src/nss/lib/ssl/sslerr.c
    functionUses: 51
    functionsReached:
    - PORT_SetError
    - PORT_GetError
    linkageType: ''
    returnType: int
    signature: int ssl_MapLowLevelError(int hiLevelError)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/tls13psk.c:23,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/tls13psk.c:25,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13psk.c:26,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13psk.c:32,1
    - Dst: CONST_CAST
      Src: /src/nss/lib/ssl/tls13psk.c:36,1
    - Dst: tls13_MakePsk
      Src: /src/nss/lib/ssl/tls13psk.c:37,1
    - Dst: PK11_ReferenceSymKey
      Src: /src/nss/lib/ssl/tls13psk.c:37,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13psk.c:40,1
    - Dst: ssl_Get1stHandshakeLock
      Src: /src/nss/lib/ssl/tls13psk.c:47,1
    - Dst: ssl_GetSSL3HandshakeLock
      Src: /src/nss/lib/ssl/tls13psk.c:48,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13psk.c:51,1
    - Dst: tls13_DestroyPsk
      Src: /src/nss/lib/ssl/tls13psk.c:52,1
    - Dst: tls13_ResetHandshakePsks
      Src: /src/nss/lib/ssl/tls13psk.c:56,1
    - Dst: ssl_ReleaseSSL3HandshakeLock
      Src: /src/nss/lib/ssl/tls13psk.c:59,1
    - Dst: ssl_Release1stHandshakeLock
      Src: /src/nss/lib/ssl/tls13psk.c:60,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 7
    argNames:
    - fd
    - key
    - identity
    - identityLen
    - hash
    - zeroRttSuite
    - maxEarlyData
    argTypes:
    - PRFileDesc*
    - PK11SymKey*
    - PRUint8*
    - unsigned int
    - SSLHashType
    - PRUint16
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 17
    functionDepth: 3
    functionLinenumber: 17
    functionLinenumberEnd: 63
    functionName: SSLExp_AddExternalPsk0Rtt
    functionSourceFile: /src/nss/lib/ssl/tls13psk.c
    functionUses: 0
    functionsReached:
    - CONST_CAST
    - ssl_GetSSL3HandshakeLock
    - tls13_MakePsk
    - SSL_GETPID
    - ssl_ReleaseSSL3HandshakeLock
    - ssl_Get1stHandshakeLock
    - PORT_SetError
    - tls13_DestroyPsk
    - SSL_DBG
    - ssl_Release1stHandshakeLock
    - ssl_FindSocket
    - tls13_ResetHandshakePsks
    - PK11_ReferenceSymKey
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSLExp_AddExternalPsk0Rtt(PRFileDesc *fd, PK11SymKey *key,
      const PRUint8 *identity,\n                          unsigned int identityLen,
      SSLHashType hash,\n                          PRUint16 zeroRttSuite, PRUint32
      maxEarlyData)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSLExp_AddExternalPsk0Rtt
      Src: /src/nss/lib/ssl/tls13psk.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - fd
    - key
    - identity
    - identityLen
    - hash
    argTypes:
    - PRFileDesc*
    - PK11SymKey*
    - PRUint8*
    - unsigned int
    - SSLHashType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 65
    functionDepth: 4
    functionLinenumber: 65
    functionLinenumberEnd: 71
    functionName: SSLExp_AddExternalPsk
    functionSourceFile: /src/nss/lib/ssl/tls13psk.c
    functionUses: 0
    functionsReached:
    - SSLExp_AddExternalPsk0Rtt
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSLExp_AddExternalPsk(PRFileDesc *fd, PK11SymKey *key, const
      PRUint8 *identity,\n                      unsigned int identityLen, SSLHashType
      hash)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13psk.c:77,1
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/tls13psk.c:81,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/tls13psk.c:83,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13psk.c:84,1
    - Dst: ssl_Get1stHandshakeLock
      Src: /src/nss/lib/ssl/tls13psk.c:93,1
    - Dst: ssl_GetSSL3HandshakeLock
      Src: /src/nss/lib/ssl/tls13psk.c:94,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/ssl/tls13psk.c:96,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13psk.c:97,1
    - Dst: tls13_DestroyPsk
      Src: /src/nss/lib/ssl/tls13psk.c:100,1
    - Dst: tls13_ResetHandshakePsks
      Src: /src/nss/lib/ssl/tls13psk.c:102,1
    - Dst: ssl_ReleaseSSL3HandshakeLock
      Src: /src/nss/lib/ssl/tls13psk.c:106,1
    - Dst: ssl_Release1stHandshakeLock
      Src: /src/nss/lib/ssl/tls13psk.c:107,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - fd
    - identity
    - identityLen
    argTypes:
    - PRFileDesc*
    - PRUint8*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 110
    functionName: SSLExp_RemoveExternalPsk
    functionSourceFile: /src/nss/lib/ssl/tls13psk.c
    functionUses: 0
    functionsReached:
    - SECITEM_CompareItem
    - ssl_GetSSL3HandshakeLock
    - SSL_GETPID
    - ssl_ReleaseSSL3HandshakeLock
    - ssl_Get1stHandshakeLock
    - PORT_SetError
    - tls13_DestroyPsk
    - SSL_DBG
    - ssl_Release1stHandshakeLock
    - ssl_FindSocket
    - tls13_ResetHandshakePsks
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSLExp_RemoveExternalPsk(PRFileDesc *fd, const PRUint8 *identity,
      unsigned int identityLen)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZNew
      Src: /src/nss/lib/ssl/tls13psk.c:119,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/ssl/tls13psk.c:124,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/tls13psk.c:126,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13psk.c:131,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13psk.c:132,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13psk.c:133,1
    - Dst: PK11_ReferenceSymKey
      Src: /src/nss/lib/ssl/tls13psk.c:136,1
    - Dst: PK11_ReferenceSymKey
      Src: /src/nss/lib/ssl/tls13psk.c:137,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - opsk
    argTypes:
    - sslPsk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 139
    functionName: tls13_CopyPsk
    functionSourceFile: /src/nss/lib/ssl/tls13psk.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - PORT_ZNew
    - PORT_Free
    - SECITEM_CopyItem
    - PK11_ReferenceSymKey
    linkageType: ''
    returnType: sslPsk
    signature: 'sslPsk *

      tls13_CopyPsk(sslPsk *opsk)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/tls13psk.c:148,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/tls13psk.c:152,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/ssl/tls13psk.c:155,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/ssl/tls13psk.c:156,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - psk
    argTypes:
    - sslPsk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 141
    functionDepth: 4
    functionLinenumber: 141
    functionLinenumberEnd: 157
    functionName: tls13_DestroyPsk
    functionSourceFile: /src/nss/lib/ssl/tls13psk.c
    functionUses: 3
    functionsReached:
    - PORT_ZFree
    - SECITEM_ZfreeItem
    - PK11_FreeSymKey
    linkageType: ''
    returnType: void
    signature: void tls13_DestroyPsk(sslPsk *psk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/lib/ssl/tls13psk.c:163,1
    - Dst: PR_LIST_TAIL
      Src: /src/nss/lib/ssl/tls13psk.c:164,1
    - Dst: PR_REMOVE_LINK
      Src: /src/nss/lib/ssl/tls13psk.c:165,1
    - Dst: tls13_DestroyPsk
      Src: /src/nss/lib/ssl/tls13psk.c:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - list
    argTypes:
    - PRCList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 159
    functionDepth: 5
    functionLinenumber: 159
    functionLinenumberEnd: 168
    functionName: tls13_DestroyPskList
    functionSourceFile: /src/nss/lib/ssl/tls13psk.c
    functionUses: 5
    functionsReached:
    - PR_LIST_TAIL
    - PR_REMOVE_LINK
    - tls13_DestroyPsk
    - PR_CLIST_IS_EMPTY
    linkageType: ''
    returnType: void
    signature: void tls13_DestroyPskList(PRCList *list)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZNew
      Src: /src/nss/lib/ssl/tls13psk.c:173,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13psk.c:175,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13psk.c:184,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/ssl/tls13psk.c:185,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13psk.c:187,1
    - Dst: tls13_DestroyPsk
      Src: /src/nss/lib/ssl/tls13psk.c:188,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - key
    - pskType
    - hashType
    - label
    argTypes:
    - PK11SymKey*
    - SSLPskType
    - SSLHashType
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 170
    functionDepth: 5
    functionLinenumber: 170
    functionLinenumberEnd: 194
    functionName: tls13_MakePsk
    functionSourceFile: /src/nss/lib/ssl/tls13psk.c
    functionUses: 2
    functionsReached:
    - PORT_Assert
    - PORT_ZNew
    - SECITEM_CopyItem
    - PORT_SetError
    - tls13_DestroyPsk
    linkageType: ''
    returnType: sslPsk
    signature: 'sslPsk *

      tls13_MakePsk(PK11SymKey *key, SSLPskType pskType, SSLHashType hashType, const
      SECItem *label)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tls13_DestroyPskList
      Src: /src/nss/lib/ssl/tls13psk.c:201,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13psk.c:202,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13psk.c:205,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13psk.c:206,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13psk.c:207,1
    - Dst: tls13_MakePsk
      Src: /src/nss/lib/ssl/tls13psk.c:209,1
    - Dst: PK11_ReferenceSymKey
      Src: /src/nss/lib/ssl/tls13psk.c:209,1
    - Dst: PR_APPEND_LINK
      Src: /src/nss/lib/ssl/tls13psk.c:216,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - ss
    - list
    argTypes:
    - sslSocket*
    - PRCList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 198
    functionDepth: 6
    functionLinenumber: 198
    functionLinenumberEnd: 219
    functionName: tls13_ResetHandshakePsks
    functionSourceFile: /src/nss/lib/ssl/tls13psk.c
    functionUses: 4
    functionsReached:
    - PORT_Assert
    - tls13_MakePsk
    - tls13_DestroyPskList
    - PR_APPEND_LINK
    - PK11_ReferenceSymKey
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_ResetHandshakePsks(sslSocket *ss, PRCList *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bits
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 17
    functionName: sslBloom_Size
    functionSourceFile: /src/nss/lib/ssl/sslbloom.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int sslBloom_Size(unsigned int bits)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslbloom.c:22,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslbloom.c:23,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslbloom.c:24,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslbloom.c:25,1
    - Dst: PORT_ZNewArray
      Src: /src/nss/lib/ssl/sslbloom.c:27,1
    - Dst: sslBloom_Size
      Src: /src/nss/lib/ssl/sslbloom.c:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - filter
    - k
    - bits
    argTypes:
    - sslBloomFilter*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 35
    functionName: sslBloom_Init
    functionSourceFile: /src/nss/lib/ssl/sslbloom.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - sslBloom_Size
    - PORT_ZNewArray
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sslBloom_Init(sslBloomFilter *filter, unsigned int k, unsigned
      int bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memset
      Src: /src/nss/lib/ssl/sslbloom.c:40,1
    - Dst: sslBloom_Size
      Src: /src/nss/lib/ssl/sslbloom.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - filter
    argTypes:
    - sslBloomFilter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: sslBloom_Zero
    functionSourceFile: /src/nss/lib/ssl/sslbloom.c
    functionUses: 1
    functionsReached:
    - PORT_Memset
    - sslBloom_Size
    linkageType: ''
    returnType: void
    signature: void sslBloom_Zero(sslBloomFilter *filter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memset
      Src: /src/nss/lib/ssl/sslbloom.c:46,1
    - Dst: sslBloom_Size
      Src: /src/nss/lib/ssl/sslbloom.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - filter
    argTypes:
    - sslBloomFilter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: sslBloom_Fill
    functionSourceFile: /src/nss/lib/ssl/sslbloom.c
    functionUses: 1
    functionsReached:
    - PORT_Memset
    - sslBloom_Size
    linkageType: ''
    returnType: void
    signature: void sslBloom_Fill(sslBloomFilter *filter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslbloom.c:60,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/sslbloom.c:63,1
    - Dst: PR_ntohl
      Src: /src/nss/lib/ssl/sslbloom.c:66,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - filter
    - hashes
    - add
    argTypes:
    - sslBloomFilter*
    - PRUint8*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 75
    functionName: sslBloom_AddOrCheck
    functionSourceFile: /src/nss/lib/ssl/sslbloom.c
    functionUses: 0
    functionsReached:
    - PR_ntohl
    - PORT_Assert
    - PORT_Memcpy
    linkageType: ''
    returnType: PRBool
    signature: PRBool sslBloom_AddOrCheck(sslBloomFilter *filter, const PRUint8 *hashes,
      PRBool add)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sslBloom_AddOrCheck
      Src: /src/nss/lib/ssl/sslbloom.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - filter
    - hashes
    argTypes:
    - sslBloomFilter*
    - PRUint8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: sslBloom_Add
    functionSourceFile: /src/nss/lib/ssl/sslbloom.c
    functionUses: 1
    functionsReached:
    - sslBloom_AddOrCheck
    linkageType: ''
    returnType: PRBool
    signature: PRBool sslBloom_Add(sslBloomFilter *filter, const PRUint8 *hashes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sslBloom_AddOrCheck
      Src: /src/nss/lib/ssl/sslbloom.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - filter
    - hashes
    argTypes:
    - sslBloomFilter*
    - PRUint8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: sslBloom_Check
    functionSourceFile: /src/nss/lib/ssl/sslbloom.c
    functionUses: 1
    functionsReached:
    - sslBloom_AddOrCheck
    linkageType: ''
    returnType: PRBool
    signature: PRBool sslBloom_Check(sslBloomFilter *filter, const PRUint8 *hashes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/sslbloom.c:92,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/ssl/sslbloom.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - filter
    argTypes:
    - sslBloomFilter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: sslBloom_Destroy
    functionSourceFile: /src/nss/lib/ssl/sslbloom.c
    functionUses: 1
    functionsReached:
    - PORT_Free
    - PORT_Memset
    linkageType: ''
    returnType: void
    signature: void sslBloom_Destroy(sslBloomFilter *filter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/sslmutex.c:15,1
    - Dst: PR_NewLock
      Src: /src/nss/lib/ssl/sslmutex.c:17,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - pMutex
    argTypes:
    - sslMutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 22
    functionName: single_process_sslMutex_Init
    functionSourceFile: /src/nss/lib/ssl/sslmutex.c
    functionUses: 0
    functionsReached:
    - PR_NewLock
    - PR_ASSERT
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus single_process_sslMutex_Init(sslMutex* pMutex)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/sslmutex.c:27,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/sslmutex.c:28,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslmutex.c:30,1
    - Dst: PR_DestroyLock
      Src: /src/nss/lib/ssl/sslmutex.c:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - pMutex
    argTypes:
    - sslMutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 35
    functionName: single_process_sslMutex_Destroy
    functionSourceFile: /src/nss/lib/ssl/sslmutex.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PR_DestroyLock
    - PR_ASSERT
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus single_process_sslMutex_Destroy(sslMutex* pMutex)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/sslmutex.c:40,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/sslmutex.c:41,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslmutex.c:43,1
    - Dst: PR_Unlock
      Src: /src/nss/lib/ssl/sslmutex.c:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - pMutex
    argTypes:
    - sslMutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 48
    functionName: single_process_sslMutex_Unlock
    functionSourceFile: /src/nss/lib/ssl/sslmutex.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PR_Unlock
    - PR_ASSERT
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus single_process_sslMutex_Unlock(sslMutex* pMutex)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/sslmutex.c:53,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/sslmutex.c:54,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslmutex.c:56,1
    - Dst: PR_Lock
      Src: /src/nss/lib/ssl/sslmutex.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - pMutex
    argTypes:
    - sslMutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 61
    functionName: single_process_sslMutex_Lock
    functionSourceFile: /src/nss/lib/ssl/sslmutex.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PR_Lock
    - PR_ASSERT
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus single_process_sslMutex_Lock(sslMutex* pMutex)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/nss/lib/ssl/sslmutex.c:88,1
    - Dst: fcntl
      Src: /src/nss/lib/ssl/sslmutex.c:95,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - fd
    - nonBlocking
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 97
    functionName: setNonBlocking
    functionSourceFile: /src/nss/lib/ssl/sslmutex.c
    functionUses: 0
    functionsReached:
    - fcntl
    linkageType: ''
    returnType: int
    signature: int setNonBlocking(int fd, int nonBlocking)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/sslmutex.c:104,1
    - Dst: single_process_sslMutex_Init
      Src: /src/nss/lib/ssl/sslmutex.c:107,1
    - Dst: pipe
      Src: /src/nss/lib/ssl/sslmutex.c:114,1
    - Dst: nss_MD_unix_map_default_error
      Src: /src/nss/lib/ssl/sslmutex.c:116,1
    - Dst: setNonBlocking
      Src: /src/nss/lib/ssl/sslmutex.c:120,1
    - Dst: sslMutex_Unlock
      Src: /src/nss/lib/ssl/sslmutex.c:132,1
    - Dst: nss_MD_unix_map_default_error
      Src: /src/nss/lib/ssl/sslmutex.c:136,1
    - Dst: close
      Src: /src/nss/lib/ssl/sslmutex.c:137,1
    - Dst: close
      Src: /src/nss/lib/ssl/sslmutex.c:138,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 2
    argNames:
    - pMutex
    - shared
    argTypes:
    - sslMutex*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 140
    functionName: sslMutex_Init
    functionSourceFile: /src/nss/lib/ssl/sslmutex.c
    functionUses: 2
    functionsReached:
    - close
    - setNonBlocking
    - nss_MD_unix_map_default_error
    - PR_ASSERT
    - sslMutex_Unlock
    - single_process_sslMutex_Init
    - pipe
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sslMutex_Init(sslMutex* pMutex, int shared)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: single_process_sslMutex_Destroy
      Src: /src/nss/lib/ssl/sslmutex.c:146,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslmutex.c:149,1
    - Dst: close
      Src: /src/nss/lib/ssl/sslmutex.c:152,1
    - Dst: close
      Src: /src/nss/lib/ssl/sslmutex.c:153,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - pMutex
    - processLocal
    argTypes:
    - sslMutex*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 165
    functionName: sslMutex_Destroy
    functionSourceFile: /src/nss/lib/ssl/sslmutex.c
    functionUses: 2
    functionsReached:
    - PORT_SetError
    - single_process_sslMutex_Destroy
    - close
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sslMutex_Destroy(sslMutex* pMutex, PRBool processLocal)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: single_process_sslMutex_Unlock
      Src: /src/nss/lib/ssl/sslmutex.c:181,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslmutex.c:185,1
    - Dst: PR_ATOMIC_DECREMENT
      Src: /src/nss/lib/ssl/sslmutex.c:189,1
    - Dst: write
      Src: /src/nss/lib/ssl/sslmutex.c:194,1
    - Dst: nss_MD_unix_map_default_error
      Src: /src/nss/lib/ssl/sslmutex.c:198,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslmutex.c:200,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - pMutex
    argTypes:
    - sslMutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 205
    functionName: sslMutex_Unlock
    functionSourceFile: /src/nss/lib/ssl/sslmutex.c
    functionUses: 4
    functionsReached:
    - write
    - PR_ATOMIC_DECREMENT
    - single_process_sslMutex_Unlock
    - nss_MD_unix_map_default_error
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sslMutex_Unlock(sslMutex* pMutex)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: single_process_sslMutex_Lock
      Src: /src/nss/lib/ssl/sslmutex.c:212,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslmutex.c:216,1
    - Dst: PR_ATOMIC_INCREMENT
      Src: /src/nss/lib/ssl/sslmutex.c:219,1
    - Dst: read
      Src: /src/nss/lib/ssl/sslmutex.c:225,1
    - Dst: nss_MD_unix_map_default_error
      Src: /src/nss/lib/ssl/sslmutex.c:229,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslmutex.c:231,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - pMutex
    argTypes:
    - sslMutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 207
    functionDepth: 2
    functionLinenumber: 207
    functionLinenumberEnd: 236
    functionName: sslMutex_Lock
    functionSourceFile: /src/nss/lib/ssl/sslmutex.c
    functionUses: 2
    functionsReached:
    - PR_ATOMIC_INCREMENT
    - read
    - single_process_sslMutex_Lock
    - nss_MD_unix_map_default_error
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sslMutex_Lock(sslMutex* pMutex)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: single_process_sslMutex_Unlock
      Src: /src/nss/lib/ssl/sslmutex.c:253,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslmutex.c:257,1
    - Dst: write
      Src: /src/nss/lib/ssl/sslmutex.c:261,1
    - Dst: nss_MD_unix_map_default_error
      Src: /src/nss/lib/ssl/sslmutex.c:265,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslmutex.c:267,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - pMutex
    argTypes:
    - sslMutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 246
    functionDepth: 2
    functionLinenumber: 246
    functionLinenumberEnd: 272
    functionName: sslMutex_Unlock
    functionSourceFile: /src/nss/lib/ssl/sslmutex.c
    functionUses: 5
    functionsReached:
    - PORT_SetError
    - write
    - single_process_sslMutex_Unlock
    - nss_MD_unix_map_default_error
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sslMutex_Unlock(sslMutex* pMutex)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: single_process_sslMutex_Lock
      Src: /src/nss/lib/ssl/sslmutex.c:281,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslmutex.c:285,1
    - Dst: read
      Src: /src/nss/lib/ssl/sslmutex.c:290,1
    - Dst: nss_MD_unix_map_default_error
      Src: /src/nss/lib/ssl/sslmutex.c:294,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslmutex.c:296,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - pMutex
    argTypes:
    - sslMutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 274
    functionDepth: 2
    functionLinenumber: 274
    functionLinenumberEnd: 301
    functionName: sslMutex_Lock
    functionSourceFile: /src/nss/lib/ssl/sslmutex.c
    functionUses: 3
    functionsReached:
    - PORT_SetError
    - single_process_sslMutex_Lock
    - nss_MD_unix_map_default_error
    - read
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sslMutex_Lock(sslMutex* pMutex)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/sslmutex.c:329,1
    - Dst: single_process_sslMutex_Init
      Src: /src/nss/lib/ssl/sslmutex.c:335,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - sem
    argTypes:
    - sslMutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 321
    functionDepth: 2
    functionLinenumber: 321
    functionLinenumberEnd: 336
    functionName: sslMutex_2LevelInit
    functionSourceFile: /src/nss/lib/ssl/sslmutex.c
    functionUses: 1
    functionsReached:
    - single_process_sslMutex_Init
    - PR_ASSERT
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sslMutex_2LevelInit(sslMutex *sem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: single_process_sslMutex_Destroy
      Src: /src/nss/lib/ssl/sslmutex.c:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sem
    argTypes:
    - sslMutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 338
    functionDepth: 2
    functionLinenumber: 338
    functionLinenumberEnd: 342
    functionName: sslMutex_2LevelDestroy
    functionSourceFile: /src/nss/lib/ssl/sslmutex.c
    functionUses: 0
    functionsReached:
    - single_process_sslMutex_Destroy
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sslMutex_2LevelDestroy(sslMutex *sem)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/sslmutex.c:355,1
    - Dst: single_process_sslMutex_Init
      Src: /src/nss/lib/ssl/sslmutex.c:362,1
    - Dst: sslMutex_2LevelInit
      Src: /src/nss/lib/ssl/sslmutex.c:367,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslmutex.c:375,1
    - Dst: CreateMutex
      Src: /src/nss/lib/ssl/sslmutex.c:379,1
    - Dst: nss_MD_win32_map_default_error
      Src: /src/nss/lib/ssl/sslmutex.c:382,1
    - Dst: GetLastError
      Src: /src/nss/lib/ssl/sslmutex.c:382,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - pMutex
    - shared
    argTypes:
    - sslMutex*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 346
    functionDepth: 3
    functionLinenumber: 346
    functionLinenumberEnd: 387
    functionName: sslMutex_Init
    functionSourceFile: /src/nss/lib/ssl/sslmutex.c
    functionUses: 4
    functionsReached:
    - CreateMutex
    - nss_MD_win32_map_default_error
    - PR_ASSERT
    - sslMutex_2LevelInit
    - PORT_SetError
    - GetLastError
    - single_process_sslMutex_Init
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sslMutex_Init(sslMutex *pMutex, int shared)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/sslmutex.c:396,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslmutex.c:398,1
    - Dst: single_process_sslMutex_Destroy
      Src: /src/nss/lib/ssl/sslmutex.c:403,1
    - Dst: sslMutex_2LevelDestroy
      Src: /src/nss/lib/ssl/sslmutex.c:409,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/sslmutex.c:412,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslmutex.c:415,1
    - Dst: CloseHandle
      Src: /src/nss/lib/ssl/sslmutex.c:419,1
    - Dst: nss_MD_win32_map_default_error
      Src: /src/nss/lib/ssl/sslmutex.c:424,1
    - Dst: GetLastError
      Src: /src/nss/lib/ssl/sslmutex.c:424,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - pMutex
    - processLocal
    argTypes:
    - sslMutex*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 389
    functionDepth: 3
    functionLinenumber: 389
    functionLinenumberEnd: 428
    functionName: sslMutex_Destroy
    functionSourceFile: /src/nss/lib/ssl/sslmutex.c
    functionUses: 4
    functionsReached:
    - nss_MD_win32_map_default_error
    - sslMutex_2LevelDestroy
    - PR_ASSERT
    - GetLastError
    - PORT_SetError
    - CloseHandle
    - single_process_sslMutex_Destroy
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sslMutex_Destroy(sslMutex *pMutex, PRBool processLocal)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/sslmutex.c:436,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslmutex.c:438,1
    - Dst: single_process_sslMutex_Unlock
      Src: /src/nss/lib/ssl/sslmutex.c:443,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/sslmutex.c:446,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslmutex.c:449,1
    - Dst: ReleaseMutex
      Src: /src/nss/lib/ssl/sslmutex.c:452,1
    - Dst: nss_MD_win32_map_default_error
      Src: /src/nss/lib/ssl/sslmutex.c:454,1
    - Dst: GetLastError
      Src: /src/nss/lib/ssl/sslmutex.c:454,1
    - Dst: single_process_sslMutex_Unlock
      Src: /src/nss/lib/ssl/sslmutex.c:458,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - pMutex
    argTypes:
    - sslMutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 430
    functionDepth: 2
    functionLinenumber: 430
    functionLinenumberEnd: 463
    functionName: sslMutex_Unlock
    functionSourceFile: /src/nss/lib/ssl/sslmutex.c
    functionUses: 6
    functionsReached:
    - nss_MD_win32_map_default_error
    - single_process_sslMutex_Unlock
    - ReleaseMutex
    - PR_ASSERT
    - PORT_SetError
    - GetLastError
    linkageType: ''
    returnType: int
    signature: int sslMutex_Unlock(sslMutex *pMutex)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/sslmutex.c:474,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslmutex.c:476,1
    - Dst: single_process_sslMutex_Lock
      Src: /src/nss/lib/ssl/sslmutex.c:481,1
    - Dst: single_process_sslMutex_Lock
      Src: /src/nss/lib/ssl/sslmutex.c:485,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/sslmutex.c:487,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslmutex.c:490,1
    - Dst: WaitForSingleObject
      Src: /src/nss/lib/ssl/sslmutex.c:494,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/sslmutex.c:506,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslmutex.c:507,1
    - Dst: GetLastError
      Src: /src/nss/lib/ssl/sslmutex.c:513,1
    - Dst: nss_MD_win32_map_default_error
      Src: /src/nss/lib/ssl/sslmutex.c:514,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 1
    argNames:
    - pMutex
    argTypes:
    - sslMutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 465
    functionDepth: 2
    functionLinenumber: 465
    functionLinenumberEnd: 523
    functionName: sslMutex_Lock
    functionSourceFile: /src/nss/lib/ssl/sslmutex.c
    functionUses: 4
    functionsReached:
    - WaitForSingleObject
    - nss_MD_win32_map_default_error
    - single_process_sslMutex_Lock
    - PR_ASSERT
    - GetLastError
    - PORT_SetError
    linkageType: ''
    returnType: int
    signature: int sslMutex_Lock(sslMutex *pMutex)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/sslmutex.c:534,1
    - Dst: single_process_sslMutex_Init
      Src: /src/nss/lib/ssl/sslmutex.c:537,1
    - Dst: sem_init
      Src: /src/nss/lib/ssl/sslmutex.c:540,1
    - Dst: nss_MD_unix_map_default_error
      Src: /src/nss/lib/ssl/sslmutex.c:543,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - pMutex
    - shared
    argTypes:
    - sslMutex*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 530
    functionDepth: 2
    functionLinenumber: 530
    functionLinenumberEnd: 547
    functionName: sslMutex_Init
    functionSourceFile: /src/nss/lib/ssl/sslmutex.c
    functionUses: 5
    functionsReached:
    - sem_init
    - single_process_sslMutex_Init
    - nss_MD_unix_map_default_error
    - PR_ASSERT
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sslMutex_Init(sslMutex* pMutex, int shared)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: single_process_sslMutex_Destroy
      Src: /src/nss/lib/ssl/sslmutex.c:554,1
    - Dst: sem_destroy
      Src: /src/nss/lib/ssl/sslmutex.c:562,1
    - Dst: nss_MD_unix_map_default_error
      Src: /src/nss/lib/ssl/sslmutex.c:565,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - pMutex
    - processLocal
    argTypes:
    - sslMutex*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 549
    functionDepth: 2
    functionLinenumber: 549
    functionLinenumberEnd: 569
    functionName: sslMutex_Destroy
    functionSourceFile: /src/nss/lib/ssl/sslmutex.c
    functionUses: 5
    functionsReached:
    - nss_MD_unix_map_default_error
    - single_process_sslMutex_Destroy
    - sem_destroy
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sslMutex_Destroy(sslMutex* pMutex, PRBool processLocal)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: single_process_sslMutex_Unlock
      Src: /src/nss/lib/ssl/sslmutex.c:576,1
    - Dst: sem_post
      Src: /src/nss/lib/ssl/sslmutex.c:579,1
    - Dst: nss_MD_unix_map_default_error
      Src: /src/nss/lib/ssl/sslmutex.c:582,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - pMutex
    argTypes:
    - sslMutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 571
    functionDepth: 2
    functionLinenumber: 571
    functionLinenumberEnd: 586
    functionName: sslMutex_Unlock
    functionSourceFile: /src/nss/lib/ssl/sslmutex.c
    functionUses: 7
    functionsReached:
    - single_process_sslMutex_Unlock
    - nss_MD_unix_map_default_error
    - sem_post
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sslMutex_Unlock(sslMutex* pMutex)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: single_process_sslMutex_Lock
      Src: /src/nss/lib/ssl/sslmutex.c:593,1
    - Dst: sem_wait
      Src: /src/nss/lib/ssl/sslmutex.c:596,1
    - Dst: nss_MD_unix_map_default_error
      Src: /src/nss/lib/ssl/sslmutex.c:599,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - pMutex
    argTypes:
    - sslMutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 588
    functionDepth: 2
    functionLinenumber: 588
    functionLinenumberEnd: 603
    functionName: sslMutex_Lock
    functionSourceFile: /src/nss/lib/ssl/sslmutex.c
    functionUses: 5
    functionsReached:
    - nss_MD_unix_map_default_error
    - single_process_sslMutex_Lock
    - sem_wait
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sslMutex_Lock(sslMutex* pMutex)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/sslmutex.c:610,1
    - Dst: single_process_sslMutex_Init
      Src: /src/nss/lib/ssl/sslmutex.c:613,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslmutex.c:615,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslmutex.c:616,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - pMutex
    - shared
    argTypes:
    - sslMutex*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 607
    functionDepth: 2
    functionLinenumber: 607
    functionLinenumberEnd: 618
    functionName: sslMutex_Init
    functionSourceFile: /src/nss/lib/ssl/sslmutex.c
    functionUses: 6
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - single_process_sslMutex_Init
    - PR_ASSERT
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sslMutex_Init(sslMutex* pMutex, int shared)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/sslmutex.c:623,1
    - Dst: single_process_sslMutex_Destroy
      Src: /src/nss/lib/ssl/sslmutex.c:625,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslmutex.c:627,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslmutex.c:628,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - pMutex
    - processLocal
    argTypes:
    - sslMutex*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 620
    functionDepth: 2
    functionLinenumber: 620
    functionLinenumberEnd: 630
    functionName: sslMutex_Destroy
    functionSourceFile: /src/nss/lib/ssl/sslmutex.c
    functionUses: 6
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - single_process_sslMutex_Destroy
    - PR_ASSERT
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sslMutex_Destroy(sslMutex* pMutex, PRBool processLocal)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/sslmutex.c:635,1
    - Dst: single_process_sslMutex_Unlock
      Src: /src/nss/lib/ssl/sslmutex.c:637,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslmutex.c:639,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslmutex.c:640,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - pMutex
    argTypes:
    - sslMutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 632
    functionDepth: 2
    functionLinenumber: 632
    functionLinenumberEnd: 642
    functionName: sslMutex_Unlock
    functionSourceFile: /src/nss/lib/ssl/sslmutex.c
    functionUses: 8
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - single_process_sslMutex_Unlock
    - PR_ASSERT
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sslMutex_Unlock(sslMutex* pMutex)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/sslmutex.c:647,1
    - Dst: single_process_sslMutex_Lock
      Src: /src/nss/lib/ssl/sslmutex.c:649,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslmutex.c:651,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslmutex.c:652,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - pMutex
    argTypes:
    - sslMutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 644
    functionDepth: 2
    functionLinenumber: 644
    functionLinenumberEnd: 654
    functionName: sslMutex_Lock
    functionSourceFile: /src/nss/lib/ssl/sslmutex.c
    functionUses: 6
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - single_process_sslMutex_Lock
    - PR_ASSERT
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sslMutex_Lock(sslMutex* pMutex)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: SSL_READER
      Src: /src/nss/lib/ssl/tls13subcerts.c:33,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13subcerts.c:35,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/ssl/tls13subcerts.c:37,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13subcerts.c:39,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/tls13subcerts.c:44,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/tls13subcerts.c:52,1
    - Dst: sslRead_ReadVariable
      Src: /src/nss/lib/ssl/tls13subcerts.c:59,1
    - Dst: SECITEM_MakeItem
      Src: /src/nss/lib/ssl/tls13subcerts.c:63,1
    - Dst: SECKEY_DecodeDERSubjectPublicKeyInfo
      Src: /src/nss/lib/ssl/tls13subcerts.c:69,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/tls13subcerts.c:75,1
    - Dst: sslRead_ReadVariable
      Src: /src/nss/lib/ssl/tls13subcerts.c:82,1
    - Dst: SECITEM_MakeItem
      Src: /src/nss/lib/ssl/tls13subcerts.c:86,1
    - Dst: SSL_READER_REMAINING
      Src: /src/nss/lib/ssl/tls13subcerts.c:92,1
    - Dst: tls13_DestroyDelegatedCredential
      Src: /src/nss/lib/ssl/tls13subcerts.c:100,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 62
    argCount: 3
    argNames:
    - b
    - length
    - dcp
    argTypes:
    - PRUint8*
    - PRUint32
    - sslDelegatedCredential**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 103
    functionName: tls13_ReadDelegatedCredential
    functionSourceFile: /src/nss/lib/ssl/tls13subcerts.c
    functionUses: 2
    functionsReached:
    - PORT_Assert
    - sslRead_ReadVariable
    - PORT_ZNew
    - tls13_DestroyDelegatedCredential
    - PORT_SetError
    - SECKEY_DecodeDERSubjectPublicKeyInfo
    - sslRead_ReadNumber
    - SSL_READER
    - SECITEM_MakeItem
    - SSL_READER_REMAINING
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_ReadDelegatedCredential(PRUint8 *b, PRUint32 length,\n
      \                             sslDelegatedCredential **dcp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECKEY_DestroySubjectPublicKeyInfo
      Src: /src/nss/lib/ssl/tls13subcerts.c:113,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/tls13subcerts.c:114,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/tls13subcerts.c:115,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/ssl/tls13subcerts.c:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - dc
    argTypes:
    - sslDelegatedCredential*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 117
    functionName: tls13_DestroyDelegatedCredential
    functionSourceFile: /src/nss/lib/ssl/tls13subcerts.c
    functionUses: 4
    functionsReached:
    - SECITEM_FreeItem
    - PORT_ZFree
    - SECKEY_DestroySubjectPublicKeyInfo
    linkageType: ''
    returnType: void
    signature: void tls13_DestroyDelegatedCredential(sslDelegatedCredential *dc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSL_READER
      Src: /src/nss/lib/ssl/tls13subcerts.c:128,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/tls13subcerts.c:134,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/tls13subcerts.c:139,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - in
    - certVerifyAlg
    argTypes:
    - SECItem
    - SSLSignatureScheme*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 146
    functionName: tls13_GetExpectedCertVerifyAlg
    functionSourceFile: /src/nss/lib/ssl/tls13subcerts.c
    functionUses: 0
    functionsReached:
    - sslRead_ReadNumber
    - SSL_READER
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_GetExpectedCertVerifyAlg(SECItem in, SSLSignatureScheme
      *certVerifyAlg)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 160
    functionName: tls13_IsVerifyingWithDelegatedCredential
    functionSourceFile: /src/nss/lib/ssl/tls13subcerts.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool tls13_IsVerifyingWithDelegatedCredential(const sslSocket *ss)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 173
    functionName: tls13_IsSigningWithDelegatedCredential
    functionSourceFile: /src/nss/lib/ssl/tls13subcerts.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool tls13_IsSigningWithDelegatedCredential(const sslSocket *ss)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13subcerts.c:198,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13subcerts.c:199,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13subcerts.c:200,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13subcerts.c:201,1
    - Dst: tls13_GetExpectedCertVerifyAlg
      Src: /src/nss/lib/ssl/tls13subcerts.c:216,1
    - Dst: ssl_PrivateKeySupportsRsaPss
      Src: /src/nss/lib/ssl/tls13subcerts.c:223,1
    - Dst: ssl_SignatureSchemeEnabled
      Src: /src/nss/lib/ssl/tls13subcerts.c:228,1
    - Dst: ssl_CanUseSignatureScheme
      Src: /src/nss/lib/ssl/tls13subcerts.c:229,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 185
    functionDepth: 9
    functionLinenumber: 185
    functionLinenumberEnd: 243
    functionName: tls13_MaybeSetDelegatedCredential
    functionSourceFile: /src/nss/lib/ssl/tls13subcerts.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - ssl_PrivateKeySupportsRsaPss
    - ssl_CanUseSignatureScheme
    - tls13_GetExpectedCertVerifyAlg
    - ssl_SignatureSchemeEnabled
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_MaybeSetDelegatedCredential(sslSocket *ss)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13subcerts.c:250,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13subcerts.c:255,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/tls13subcerts.c:260,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13subcerts.c:265,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - buf
    - dc
    argTypes:
    - sslBuffer*
    - sslDelegatedCredential*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 271
    functionName: tls13_AppendCredentialParams
    functionSourceFile: /src/nss/lib/ssl/tls13subcerts.c
    functionUses: 0
    functionsReached:
    - sslBuffer_AppendVariable
    - sslBuffer_AppendNumber
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_AppendCredentialParams(sslBuffer *buf, sslDelegatedCredential
      *dc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/tls13subcerts.c:278,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - buf
    - dc
    argTypes:
    - sslBuffer*
    - sslDelegatedCredential*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 285
    functionName: tls13_AppendCredentialSignature
    functionSourceFile: /src/nss/lib/ssl/tls13subcerts.c
    functionUses: 0
    functionsReached:
    - sslBuffer_AppendVariable
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_AppendCredentialSignature(sslBuffer *buf, sslDelegatedCredential
      *dc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ssl_SignatureSchemeToHashType
      Src: /src/nss/lib/ssl/tls13subcerts.c:299,1
    - Dst: PK11_CreateDigestContext
      Src: /src/nss/lib/ssl/tls13subcerts.c:300,1
    - Dst: ssl3_HashTypeToOID
      Src: /src/nss/lib/ssl/tls13subcerts.c:300,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13subcerts.c:302,1
    - Dst: PK11_DigestBegin
      Src: /src/nss/lib/ssl/tls13subcerts.c:321,1
    - Dst: PK11_DigestOp
      Src: /src/nss/lib/ssl/tls13subcerts.c:322,1
    - Dst: PK11_DigestOp
      Src: /src/nss/lib/ssl/tls13subcerts.c:323,1
    - Dst: strlen
      Src: /src/nss/lib/ssl/tls13subcerts.c:323,1
    - Dst: PK11_DigestOp
      Src: /src/nss/lib/ssl/tls13subcerts.c:324,1
    - Dst: PK11_DigestOp
      Src: /src/nss/lib/ssl/tls13subcerts.c:325,1
    - Dst: PK11_DigestFinal
      Src: /src/nss/lib/ssl/tls13subcerts.c:326,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13subcerts.c:328,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/ssl/tls13subcerts.c:334,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/ssl/tls13subcerts.c:340,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 4
    argNames:
    - hash
    - scheme
    - cert
    - dcBuf
    argTypes:
    - SSL3Hashes*
    - SSLSignatureScheme
    - CERTCertificate*
    - sslBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 288
    functionDepth: 9
    functionLinenumber: 288
    functionLinenumberEnd: 343
    functionName: tls13_HashCredentialSignatureMessage
    functionSourceFile: /src/nss/lib/ssl/tls13subcerts.c
    functionUses: 0
    functionsReached:
    - PK11_DestroyContext
    - PK11_DigestOp
    - PK11_CreateDigestContext
    - ssl3_HashTypeToOID
    - PORT_SetError
    - strlen
    - PK11_DigestBegin
    - PK11_DigestFinal
    - ssl_SignatureSchemeToHashType
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_HashCredentialSignatureMessage(SSL3Hashes *hash,\n
      \                                    SSLSignatureScheme scheme,\n                                     const
      CERTCertificate *cert,\n                                     const sslBuffer
      *dcBuf)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: tls13_AppendCredentialParams
      Src: /src/nss/lib/ssl/tls13subcerts.c:356,1
    - Dst: tls13_HashCredentialSignatureMessage
      Src: /src/nss/lib/ssl/tls13subcerts.c:362,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13subcerts.c:364,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/tls13subcerts.c:364,1
    - Dst: SECKEY_ExtractPublicKey
      Src: /src/nss/lib/ssl/tls13subcerts.c:368,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13subcerts.c:370,1
    - Dst: ssl_VerifySignedHashesWithPubKey
      Src: /src/nss/lib/ssl/tls13subcerts.c:375,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13subcerts.c:378,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/ssl/tls13subcerts.c:382,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13subcerts.c:384,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/ssl/tls13subcerts.c:388,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/tls13subcerts.c:389,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/ssl/tls13subcerts.c:393,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/tls13subcerts.c:394,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 2
    argNames:
    - ss
    - dc
    argTypes:
    - sslSocket*
    - sslDelegatedCredential*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 346
    functionDepth: 10
    functionLinenumber: 346
    functionLinenumberEnd: 396
    functionName: tls13_VerifyCredentialSignature
    functionSourceFile: /src/nss/lib/ssl/tls13subcerts.c
    functionUses: 0
    functionsReached:
    - ssl_VerifySignedHashesWithPubKey
    - SECKEY_DestroyPublicKey
    - SECOID_GetAlgorithmTag
    - tls13_AppendCredentialParams
    - PORT_GetError
    - tls13_HashCredentialSignatureMessage
    - FATAL_ERROR
    - SECKEY_ExtractPublicKey
    - sslBuffer_Clear
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_VerifyCredentialSignature(sslSocket *ss, sslDelegatedCredential
      *dc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/ssl/tls13subcerts.c:430,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13subcerts.c:440,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 445
    functionName: tls13_CheckCertDelegationUsage
    functionSourceFile: /src/nss/lib/ssl/tls13subcerts.c
    functionUses: 0
    functionsReached:
    - SECITEM_CompareItem
    - FATAL_ERROR
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_CheckCertDelegationUsage(sslSocket *ss)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DER_DecodeTimeChoice
      Src: /src/nss/lib/ssl/tls13subcerts.c:456,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13subcerts.c:458,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/tls13subcerts.c:458,1
    - Dst: ssl_Time
      Src: /src/nss/lib/ssl/tls13subcerts.c:463,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13subcerts.c:465,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13subcerts.c:471,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - ss
    - dc
    argTypes:
    - sslSocket*
    - sslDelegatedCredential*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 476
    functionName: tls13_CheckCredentialExpiration
    functionSourceFile: /src/nss/lib/ssl/tls13subcerts.c
    functionUses: 0
    functionsReached:
    - FATAL_ERROR
    - DER_DecodeTimeChoice
    - PORT_GetError
    - ssl_Time
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_CheckCredentialExpiration(sslSocket *ss, sslDelegatedCredential
      *dc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DER_DecodeTimeChoice
      Src: /src/nss/lib/ssl/tls13subcerts.c:497,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13subcerts.c:499,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/tls13subcerts.c:499,1
    - Dst: PR_ExplodeTime
      Src: /src/nss/lib/ssl/tls13subcerts.c:503,1
    - Dst: PR_FormatTime
      Src: /src/nss/lib/ssl/tls13subcerts.c:505,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13subcerts.c:506,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13subcerts.c:507,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13subcerts.c:509,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13subcerts.c:510,1
    - Dst: tls13_VerifyCredentialSignature
      Src: /src/nss/lib/ssl/tls13subcerts.c:514,1
    - Dst: tls13_CheckCertDelegationUsage
      Src: /src/nss/lib/ssl/tls13subcerts.c:515,1
    - Dst: tls13_CheckCredentialExpiration
      Src: /src/nss/lib/ssl/tls13subcerts.c:516,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - ss
    - dc
    argTypes:
    - sslSocket*
    - sslDelegatedCredential*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 487
    functionDepth: 11
    functionLinenumber: 487
    functionLinenumberEnd: 518
    functionName: tls13_VerifyDelegatedCredential
    functionSourceFile: /src/nss/lib/ssl/tls13subcerts.c
    functionUses: 1
    functionsReached:
    - tls13_CheckCertDelegationUsage
    - tls13_VerifyCredentialSignature
    - DER_DecodeTimeChoice
    - SSL_TRC
    - PORT_GetError
    - SSL_GETPID
    - PR_FormatTime
    - PR_ExplodeTime
    - FATAL_ERROR
    - tls13_CheckCredentialExpiration
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_VerifyDelegatedCredential(sslSocket *ss,\n                                sslDelegatedCredential
      *dc)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/ssl/tls13subcerts.c:524,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/ssl/tls13subcerts.c:528,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/ssl/tls13subcerts.c:535,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/lib/ssl/tls13subcerts.c:536,1
    - Dst: memset
      Src: /src/nss/lib/ssl/tls13subcerts.c:544,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/lib/ssl/tls13subcerts.c:545,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/ssl/tls13subcerts.c:550,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/ssl/tls13subcerts.c:551,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13subcerts.c:554,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/ssl/tls13subcerts.c:558,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/lib/ssl/tls13subcerts.c:559,1
    - Dst: HASH_ResultLenByOidTag
      Src: /src/nss/lib/ssl/tls13subcerts.c:566,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13subcerts.c:567,1
    - Dst: SEC_ASN1EncodeInteger
      Src: /src/nss/lib/ssl/tls13subcerts.c:568,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13subcerts.c:569,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/ssl/tls13subcerts.c:575,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/ssl/tls13subcerts.c:576,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13subcerts.c:578,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/lib/ssl/tls13subcerts.c:581,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/ssl/tls13subcerts.c:587,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/ssl/tls13subcerts.c:588,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13subcerts.c:590,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/ssl/tls13subcerts.c:597,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 60
    argCount: 2
    argNames:
    - pub
    - hashOid
    argTypes:
    - SECKEYPublicKey*
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 520
    functionDepth: 2
    functionLinenumber: 520
    functionLinenumberEnd: 599
    functionName: tls13_MakePssSpki
    functionSourceFile: /src/nss/lib/ssl/tls13subcerts.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SEC_ASN1EncodeItem
    - PORT_NewArena
    - HASH_ResultLenByOidTag
    - PORT_FreeArena
    - SECOID_SetAlgorithmID
    - PORT_ArenaZNew
    - memset
    - PORT_SetError
    - SEC_ASN1EncodeInteger
    - SEC_ASN1_GET
    linkageType: ''
    returnType: CERTSubjectPublicKeyInfo
    signature: 'CERTSubjectPublicKeyInfo *

      tls13_MakePssSpki(const SECKEYPublicKey *pub, SECOidTag hashOid)'
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: SECKEY_GetPublicKeyType
      Src: /src/nss/lib/ssl/tls13subcerts.c:604,1
    - Dst: SECKEY_CreateSubjectPublicKeyInfo
      Src: /src/nss/lib/ssl/tls13subcerts.c:614,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13subcerts.c:626,1
    - Dst: tls13_MakePssSpki
      Src: /src/nss/lib/ssl/tls13subcerts.c:629,1
    - Dst: ssl_ECPubKey2NamedGroup
      Src: /src/nss/lib/ssl/tls13subcerts.c:633,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13subcerts.c:635,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13subcerts.c:650,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13subcerts.c:654,1
    - Dst: SECKEY_CreateSubjectPublicKeyInfo
      Src: /src/nss/lib/ssl/tls13subcerts.c:657,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13subcerts.c:664,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 53
    argCount: 2
    argNames:
    - dcPub
    - dcCertVerifyAlg
    argTypes:
    - SECKEYPublicKey*
    - SSLSignatureScheme
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 601
    functionDepth: 4
    functionLinenumber: 601
    functionLinenumberEnd: 666
    functionName: tls13_MakeDcSpki
    functionSourceFile: /src/nss/lib/ssl/tls13subcerts.c
    functionUses: 0
    functionsReached:
    - tls13_MakePssSpki
    - ssl_ECPubKey2NamedGroup
    - PORT_SetError
    - SECKEY_GetPublicKeyType
    - SECKEY_CreateSubjectPublicKeyInfo
    linkageType: ''
    returnType: CERTSubjectPublicKeyInfo
    signature: 'CERTSubjectPublicKeyInfo *

      tls13_MakeDcSpki(const SECKEYPublicKey *dcPub, SSLSignatureScheme dcCertVerifyAlg)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13subcerts.c:698,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/ssl/tls13subcerts.c:702,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13subcerts.c:704,1
    - Dst: DER_DecodeTimeChoice
      Src: /src/nss/lib/ssl/tls13subcerts.c:710,1
    - Dst: tls13_MakeDcSpki
      Src: /src/nss/lib/ssl/tls13subcerts.c:717,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/ssl/tls13subcerts.c:724,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/ssl/tls13subcerts.c:725,1
    - Dst: ssl_SignatureSchemeFromSpki
      Src: /src/nss/lib/ssl/tls13subcerts.c:730,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/ssl/tls13subcerts.c:737,1
    - Dst: ssl_SignatureSchemeValid
      Src: /src/nss/lib/ssl/tls13subcerts.c:745,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13subcerts.c:750,1
    - Dst: tls13_AppendCredentialParams
      Src: /src/nss/lib/ssl/tls13subcerts.c:752,1
    - Dst: tls13_HashCredentialSignatureMessage
      Src: /src/nss/lib/ssl/tls13subcerts.c:758,1
    - Dst: SECKEY_CopyPrivateKey
      Src: /src/nss/lib/ssl/tls13subcerts.c:768,1
    - Dst: ssl3_SignHashesWithPrivKey
      Src: /src/nss/lib/ssl/tls13subcerts.c:769,1
    - Dst: tls13_AppendCredentialSignature
      Src: /src/nss/lib/ssl/tls13subcerts.c:776,1
    - Dst: SECITEM_MakeItem
      Src: /src/nss/lib/ssl/tls13subcerts.c:782,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/tls13subcerts.c:787,1
    - Dst: SECKEY_DestroySubjectPublicKeyInfo
      Src: /src/nss/lib/ssl/tls13subcerts.c:789,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/lib/ssl/tls13subcerts.c:790,1
    - Dst: tls13_DestroyDelegatedCredential
      Src: /src/nss/lib/ssl/tls13subcerts.c:791,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/tls13subcerts.c:792,1
    - Dst: SECKEY_DestroySubjectPublicKeyInfo
      Src: /src/nss/lib/ssl/tls13subcerts.c:796,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/lib/ssl/tls13subcerts.c:797,1
    - Dst: tls13_DestroyDelegatedCredential
      Src: /src/nss/lib/ssl/tls13subcerts.c:798,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/tls13subcerts.c:799,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 79
    argCount: 7
    argNames:
    - cert
    - certPriv
    - dcPub
    - dcCertVerifyAlg
    - dcValidFor
    - now
    - out
    argTypes:
    - CERTCertificate*
    - SECKEYPrivateKey*
    - SECKEYPublicKey*
    - SSLSignatureScheme
    - PRUint32
    - PRTime
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 681
    functionDepth: 10
    functionLinenumber: 681
    functionLinenumberEnd: 801
    functionName: SSLExp_DelegateCredential
    functionSourceFile: /src/nss/lib/ssl/tls13subcerts.c
    functionUses: 0
    functionsReached:
    - PORT_ZNew
    - tls13_DestroyDelegatedCredential
    - ssl_SignatureSchemeFromSpki
    - SECKEY_CopyPrivateKey
    - SEC_ASN1EncodeItem
    - tls13_AppendCredentialParams
    - tls13_HashCredentialSignatureMessage
    - PORT_SetError
    - tls13_MakeDcSpki
    - PORT_Assert
    - SECOID_GetAlgorithmTag
    - SECKEY_DestroySubjectPublicKeyInfo
    - PRINT_BUF
    - SECITEM_MakeItem
    - sslBuffer_Clear
    - tls13_AppendCredentialSignature
    - DER_DecodeTimeChoice
    - ssl_SignatureSchemeValid
    - ssl3_SignHashesWithPrivKey
    - SECKEY_DestroyPrivateKey
    - SEC_ASN1_GET
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSLExp_DelegateCredential(const CERTCertificate *cert,\n
      \                         const SECKEYPrivateKey *certPriv,\n                          const
      SECKEYPublicKey *dcPub,\n                          SSLSignatureScheme dcCertVerifyAlg,\n
      \                         PRUint32 dcValidFor,\n                          PRTime
      now,\n                          SECItem *out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslreveal.c:22,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/ssl/sslreveal.c:28,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - fd
    argTypes:
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 16
    functionDepth: 2
    functionLinenumber: 16
    functionLinenumberEnd: 31
    functionName: SSL_RevealCert
    functionSourceFile: /src/nss/lib/ssl/sslreveal.c
    functionUses: 3
    functionsReached:
    - ssl_FindSocket
    - CERT_DupCertificate
    linkageType: ''
    returnType: CERTCertificate
    signature: 'CERTCertificate *

      SSL_RevealCert(PRFileDesc *fd)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslreveal.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fd
    argTypes:
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 48
    functionName: SSL_RevealPinArg
    functionSourceFile: /src/nss/lib/ssl/sslreveal.c
    functionUses: 4
    functionsReached:
    - ssl_FindSocket
    linkageType: ''
    returnType: void
    signature: 'void *

      SSL_RevealPinArg(PRFileDesc *fd)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslreveal.c:59,1
    - Dst: PL_strdup
      Src: /src/nss/lib/ssl/sslreveal.c:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - fd
    argTypes:
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 65
    functionName: SSL_RevealURL
    functionSourceFile: /src/nss/lib/ssl/sslreveal.c
    functionUses: 1
    functionsReached:
    - ssl_FindSocket
    - PL_strdup
    linkageType: ''
    returnType: char
    signature: 'char *

      SSL_RevealURL(PRFileDesc *fd)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslreveal.c:80,1
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslreveal.c:84,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslreveal.c:86,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslreveal.c:87,1
    - Dst: ssl_GetSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslreveal.c:102,1
    - Dst: ssl3_ExtensionNegotiated
      Src: /src/nss/lib/ssl/sslreveal.c:103,1
    - Dst: ssl_ReleaseSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslreveal.c:104,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - socket
    - extId
    - pYes
    argTypes:
    - PRFileDesc*
    - SSLExtensionType
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 71
    functionDepth: 3
    functionLinenumber: 71
    functionLinenumberEnd: 108
    functionName: SSL_HandshakeNegotiatedExtension
    functionSourceFile: /src/nss/lib/ssl/sslreveal.c
    functionUses: 0
    functionsReached:
    - ssl_GetSSL3HandshakeLock
    - ssl3_ExtensionNegotiated
    - SSL_GETPID
    - ssl_ReleaseSSL3HandshakeLock
    - PORT_SetError
    - SSL_DBG
    - ssl_FindSocket
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSL_HandshakeNegotiatedExtension(PRFileDesc *socket,\n                                 SSLExtensionType
      extId,\n                                 PRBool *pYes)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslinfo.c:24,1
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslinfo.c:28,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslinfo.c:30,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslinfo.c:31,1
    - Dst: memset
      Src: /src/nss/lib/ssl/sslinfo.c:35,1
    - Dst: PR_MIN
      Src: /src/nss/lib/ssl/sslinfo.c:36,1
    - Dst: ssl_GetSpecReadLock
      Src: /src/nss/lib/ssl/sslinfo.c:47,1
    - Dst: ssl_ReleaseSpecReadLock
      Src: /src/nss/lib/ssl/sslinfo.c:53,1
    - Dst: SSL_GetCipherSuiteInfo
      Src: /src/nss/lib/ssl/sslinfo.c:58,1
    - Dst: tls13_IsVerifyingWithDelegatedCredential
      Src: /src/nss/lib/ssl/sslinfo.c:91,1
    - Dst: PR_MIN
      Src: /src/nss/lib/ssl/sslinfo.c:110,1
    - Dst: memcpy
      Src: /src/nss/lib/ssl/sslinfo.c:112,1
    - Dst: ssl_isFIPS
      Src: /src/nss/lib/ssl/sslinfo.c:113,1
    - Dst: memcpy
      Src: /src/nss/lib/ssl/sslinfo.c:117,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 64
    argCount: 3
    argNames:
    - fd
    - info
    - len
    argTypes:
    - PRFileDesc*
    - SSLChannelInfo*
    - PRUintn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 13
    functionDepth: 4
    functionLinenumber: 13
    functionLinenumberEnd: 120
    functionName: SSL_GetChannelInfo
    functionSourceFile: /src/nss/lib/ssl/sslinfo.c
    functionUses: 4
    functionsReached:
    - memcpy
    - PR_MIN
    - ssl_isFIPS
    - SSL_GETPID
    - tls13_IsVerifyingWithDelegatedCredential
    - SSL_GetCipherSuiteInfo
    - memset
    - PORT_SetError
    - SSL_DBG
    - ssl_GetSpecReadLock
    - ssl_FindSocket
    - ssl_ReleaseSpecReadLock
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSL_GetChannelInfo(PRFileDesc *fd, SSLChannelInfo *info,
      PRUintn len)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslinfo.c:134,1
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslinfo.c:138,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslinfo.c:140,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslinfo.c:141,1
    - Dst: memset
      Src: /src/nss/lib/ssl/sslinfo.c:146,1
    - Dst: PR_MIN
      Src: /src/nss/lib/ssl/sslinfo.c:147,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslinfo.c:156,1
    - Dst: tls13_IsVerifyingWithDelegatedCredential
      Src: /src/nss/lib/ssl/sslinfo.c:178,1
    - Dst: memcpy
      Src: /src/nss/lib/ssl/sslinfo.c:185,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 3
    argNames:
    - fd
    - info
    - len
    argTypes:
    - PRFileDesc*
    - SSLPreliminaryChannelInfo*
    - PRUintn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 122
    functionDepth: 2
    functionLinenumber: 122
    functionLinenumberEnd: 187
    functionName: SSL_GetPreliminaryChannelInfo
    functionSourceFile: /src/nss/lib/ssl/sslinfo.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - memcpy
    - PR_MIN
    - SSL_GETPID
    - tls13_IsVerifyingWithDelegatedCredential
    - memset
    - PORT_SetError
    - SSL_DBG
    - ssl_FindSocket
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSL_GetPreliminaryChannelInfo(PRFileDesc *fd,\n                              SSLPreliminaryChannelInfo
      *info,\n                              PRUintn len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 191
    functionName: CS_
    functionSourceFile: /src/nss/lib/ssl/sslinfo.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CS_(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 192
    functionName: CS
    functionSourceFile: /src/nss/lib/ssl/sslinfo.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CS(x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslinfo.c:366,1
    - Dst: PR_MIN
      Src: /src/nss/lib/ssl/sslinfo.c:369,1
    - Dst: memcpy
      Src: /src/nss/lib/ssl/sslinfo.c:372,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslinfo.c:378,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - cipherSuite
    - info
    - len
    argTypes:
    - PRUint16
    - SSLCipherSuiteInfo*
    - PRUintn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 380
    functionName: SSL_GetCipherSuiteInfo
    functionSourceFile: /src/nss/lib/ssl/sslinfo.c
    functionUses: 6
    functionsReached:
    - PORT_SetError
    - memcpy
    - PR_MIN
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSL_GetCipherSuiteInfo(PRUint16 cipherSuite,\n                       SSLCipherSuiteInfo
      *info, PRUintn len)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslinfo.c:389,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslinfo.c:391,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslinfo.c:392,1
    - Dst: ssl_GetSpecReadLock
      Src: /src/nss/lib/ssl/sslinfo.c:399,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/ssl/sslinfo.c:402,1
    - Dst: ssl_ReleaseSpecReadLock
      Src: /src/nss/lib/ssl/sslinfo.c:404,1
    - Dst: SSL_RevealURL
      Src: /src/nss/lib/ssl/sslinfo.c:408,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/ssl/sslinfo.c:410,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/sslinfo.c:412,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/ssl/sslinfo.c:416,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 1
    argNames:
    - fd
    argTypes:
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 382
    functionDepth: 3
    functionLinenumber: 382
    functionLinenumberEnd: 419
    functionName: SSL_GetNegotiatedHostInfo
    functionSourceFile: /src/nss/lib/ssl/sslinfo.c
    functionUses: 2
    functionsReached:
    - SSL_RevealURL
    - SECITEM_DupItem
    - PORT_ZNew
    - PORT_Free
    - SSL_GETPID
    - PORT_Strlen
    - SSL_DBG
    - ssl_GetSpecReadLock
    - ssl_FindSocket
    - ssl_ReleaseSpecReadLock
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      SSL_GetNegotiatedHostInfo(PRFileDesc *fd)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslinfo.c:438,1
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/lib/ssl/sslinfo.c:446,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslinfo.c:447,1
    - Dst: PR_LIST_HEAD
      Src: /src/nss/lib/ssl/sslinfo.c:450,1
    - Dst: tls13_GetHash
      Src: /src/nss/lib/ssl/sslinfo.c:452,1
    - Dst: tls13_ComputeHash
      Src: /src/nss/lib/ssl/sslinfo.c:456,1
    - Dst: tls13_DeriveSecretNullHash
      Src: /src/nss/lib/ssl/sslinfo.c:461,1
    - Dst: tls13_HkdfExpandLabelRaw
      Src: /src/nss/lib/ssl/sslinfo.c:467,1
    - Dst: strlen
      Src: /src/nss/lib/ssl/sslinfo.c:471,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/sslinfo.c:473,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 8
    argNames:
    - ss
    - secret
    - label
    - labelLen
    - context
    - contextLen
    - out
    - outLen
    argTypes:
    - sslSocket*
    - PK11SymKey*
    - char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 425
    functionDepth: 12
    functionLinenumber: 425
    functionLinenumberEnd: 475
    functionName: tls13_Exporter
    functionSourceFile: /src/nss/lib/ssl/sslinfo.c
    functionUses: 0
    functionsReached:
    - tls13_DeriveSecretNullHash
    - tls13_ComputeHash
    - PORT_SetError
    - PR_LIST_HEAD
    - PK11_FreeSymKey
    - tls13_GetHash
    - tls13_HkdfExpandLabelRaw
    - PR_CLIST_IS_EMPTY
    - strlen
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_Exporter(sslSocket *ss, PK11SymKey *secret,\n               const
      char *label, unsigned int labelLen,\n               const unsigned char *context,
      unsigned int contextLen,\n               unsigned char *out, unsigned int outLen)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslinfo.c:489,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslinfo.c:491,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslinfo.c:492,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslinfo.c:498,1
    - Dst: tls13_Exporter
      Src: /src/nss/lib/ssl/sslinfo.c:503,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslinfo.c:510,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/ssl/sslinfo.c:519,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/sslinfo.c:524,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/sslinfo.c:526,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/sslinfo.c:531,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslinfo.c:534,1
    - Dst: ssl_GetSpecReadLock
      Src: /src/nss/lib/ssl/sslinfo.c:539,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslinfo.c:541,1
    - Dst: ssl3_TLSPRFWithMasterSecret
      Src: /src/nss/lib/ssl/sslinfo.c:544,1
    - Dst: ssl_ReleaseSpecReadLock
      Src: /src/nss/lib/ssl/sslinfo.c:547,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/ssl/sslinfo.c:549,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 8
    argNames:
    - fd
    - label
    - labelLen
    - hasContext
    - context
    - contextLen
    - out
    - outLen
    argTypes:
    - PRFileDesc*
    - char*
    - unsigned int
    - PRBool
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 477
    functionDepth: 13
    functionLinenumber: 477
    functionLinenumberEnd: 551
    functionName: SSL_ExportKeyingMaterial
    functionSourceFile: /src/nss/lib/ssl/sslinfo.c
    functionUses: 1
    functionsReached:
    - tls13_Exporter
    - PORT_Alloc
    - PORT_Assert
    - PORT_ZFree
    - PORT_Memcpy
    - SSL_GETPID
    - PORT_SetError
    - SSL_DBG
    - ssl3_TLSPRFWithMasterSecret
    - ssl_GetSpecReadLock
    - ssl_FindSocket
    - ssl_ReleaseSpecReadLock
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSL_ExportKeyingMaterial(PRFileDesc *fd,\n                         const
      char *label, unsigned int labelLen,\n                         PRBool hasContext,\n
      \                        const unsigned char *context, unsigned int contextLen,\n
      \                        unsigned char *out, unsigned int outLen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/sslinfo.c:562,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/sslinfo.c:564,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslinfo.c:565,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslinfo.c:571,1
    - Dst: tls13_Exporter
      Src: /src/nss/lib/ssl/sslinfo.c:575,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 7
    argNames:
    - fd
    - label
    - labelLen
    - context
    - contextLen
    - out
    - outLen
    argTypes:
    - PRFileDesc*
    - char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 553
    functionDepth: 13
    functionLinenumber: 553
    functionLinenumberEnd: 578
    functionName: SSL_ExportEarlyKeyingMaterial
    functionSourceFile: /src/nss/lib/ssl/sslinfo.c
    functionUses: 0
    functionsReached:
    - tls13_Exporter
    - SSL_GETPID
    - PORT_SetError
    - SSL_DBG
    - ssl_FindSocket
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSL_ExportEarlyKeyingMaterial(PRFileDesc *fd,\n                              const
      char *label, unsigned int labelLen,\n                              const unsigned
      char *context,\n                              unsigned int contextLen,\n                              unsigned
      char *out, unsigned int outLen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/dtls13con.c:73,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/dtls13con.c:77,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/dtls13con.c:81,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/dtls13con.c:85,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - ss
    - cwSpec
    - wrBuf
    - needsLength
    argTypes:
    - sslSocket*
    - ssl3CipherSpec*
    - sslBuffer*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 90
    functionName: dtls13_InsertCipherTextHeader
    functionSourceFile: /src/nss/lib/ssl/dtls13con.c
    functionUses: 1
    functionsReached:
    - sslBuffer_AppendNumber
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus dtls13_InsertCipherTextHeader(const sslSocket *ss, const
      ssl3CipherSpec *cwSpec,\n                              sslBuffer *wrBuf, PRBool
      *needsLength)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/dtls13con.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - epoch
    - seqNum
    argTypes:
    - DTLSEpoch
    - sslSequenceNumber
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 118
    functionName: dtls_CombineSequenceNumber
    functionSourceFile: /src/nss/lib/ssl/dtls13con.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: sslSequenceNumber
    signature: sslSequenceNumber dtls_CombineSequenceNumber(DTLSEpoch epoch, sslSequenceNumber
      seqNum)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/dtls13con.c:131,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/dtls13con.c:131,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/dtls13con.c:133,1
    - Dst: tls13_MaybeTls13
      Src: /src/nss/lib/ssl/dtls13con.c:135,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/dtls13con.c:139,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/dtls13con.c:140,1
    - Dst: SSL_ROLE
      Src: /src/nss/lib/ssl/dtls13con.c:141,1
    - Dst: dtls_CombineSequenceNumber
      Src: /src/nss/lib/ssl/dtls13con.c:143,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/ssl/dtls13con.c:145,1
    - Dst: dtls_CombineSequenceNumber
      Src: /src/nss/lib/ssl/dtls13con.c:153,1
    - Dst: PR_APPEND_LINK
      Src: /src/nss/lib/ssl/dtls13con.c:156,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 7
    argNames:
    - ss
    - list
    - sequence
    - offset
    - length
    - epoch
    - record
    argTypes:
    - sslSocket*
    - PRCList*
    - PRUint32
    - PRUint32
    - PRUint32
    - DTLSEpoch
    - sslSequenceNumber
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 159
    functionName: dtls13_RememberFragment
    functionSourceFile: /src/nss/lib/ssl/dtls13con.c
    functionUses: 2
    functionsReached:
    - IS_DTLS
    - PORT_Assert
    - SSL_ROLE
    - dtls_CombineSequenceNumber
    - tls13_MaybeTls13
    - SSL_TRC
    - SSL_GETPID
    - PORT_ZAlloc
    - PR_APPEND_LINK
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus dtls13_RememberFragment(sslSocket *ss,\n                        PRCList
      *list,\n                        PRUint32 sequence,\n                        PRUint32
      offset,\n                        PRUint32 length,\n                        DTLSEpoch
      epoch,\n                        sslSequenceNumber record)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/dtls13con.c:171,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/dtls13con.c:172,1
    - Dst: sslBuffer_Skip
      Src: /src/nss/lib/ssl/dtls13con.c:177,1
    - Dst: PR_LIST_HEAD
      Src: /src/nss/lib/ssl/dtls13con.c:181,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/dtls13con.c:183,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/dtls13con.c:186,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/dtls13con.c:187,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/dtls13con.c:193,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/dtls13con.c:198,1
    - Dst: sslBuffer_InsertLength
      Src: /src/nss/lib/ssl/dtls13con.c:204,1
    - Dst: ssl_GetXmitBufLock
      Src: /src/nss/lib/ssl/dtls13con.c:209,1
    - Dst: ssl3_SendRecord
      Src: /src/nss/lib/ssl/dtls13con.c:210,1
    - Dst: ssl_ReleaseXmitBufLock
      Src: /src/nss/lib/ssl/dtls13con.c:212,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/dtls13con.c:216,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/dtls13con.c:221,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 162
    functionDepth: 16
    functionLinenumber: 162
    functionLinenumberEnd: 223
    functionName: dtls13_SendAck
    functionSourceFile: /src/nss/lib/ssl/dtls13con.c
    functionUses: 0
    functionsReached:
    - ssl_GetXmitBufLock
    - SSL_TRC
    - SSL_GETPID
    - PR_NEXT_LINK
    - sslBuffer_AppendNumber
    - sslBuffer_InsertLength
    - ssl_ReleaseXmitBufLock
    - PORT_SetError
    - ssl3_SendRecord
    - sslBuffer_Skip
    - PR_LIST_HEAD
    - sslBuffer_Clear
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus dtls13_SendAck(sslSocket *ss)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/dtls13con.c:228,1
    - Dst: dtls13_SendAck
      Src: /src/nss/lib/ssl/dtls13con.c:231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 225
    functionDepth: 17
    functionLinenumber: 225
    functionLinenumberEnd: 232
    functionName: dtls13_SendAckCb
    functionSourceFile: /src/nss/lib/ssl/dtls13con.c
    functionUses: 0
    functionsReached:
    - IS_DTLS
    - dtls13_SendAck
    linkageType: ''
    returnType: void
    signature: void dtls13_SendAckCb(sslSocket *ss)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/dtls13con.c:248,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - spec
    argTypes:
    - ssl3CipherSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 253
    functionName: dtls13_AeadLimitReached
    functionSourceFile: /src/nss/lib/ssl/dtls13con.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: PRBool
    signature: PRBool dtls13_AeadLimitReached(ssl3CipherSpec *spec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_LIST_HEAD
      Src: /src/nss/lib/ssl/dtls13con.c:261,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/dtls13con.c:263,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/dtls13con.c:270,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - ss
    - msgSeq
    - offset
    argTypes:
    - sslSocket*
    - PRUint16
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 275
    functionName: dtls_IsEmptyMessageAcknowledged
    functionSourceFile: /src/nss/lib/ssl/dtls13con.c
    functionUses: 0
    functionsReached:
    - PR_LIST_HEAD
    - PORT_Assert
    - PR_NEXT_LINK
    linkageType: ''
    returnType: PRBool
    signature: PRBool dtls_IsEmptyMessageAcknowledged(sslSocket *ss, PRUint16 msgSeq,
      PRUint32 offset)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - entry
    - start
    argTypes:
    - DTLSHandshakeRecordEntry*
    - PRUint32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 293
    functionName: dtls_MoveUnackedStartForward
    functionSourceFile: /src/nss/lib/ssl/dtls13con.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool dtls_MoveUnackedStartForward(DTLSHandshakeRecordEntry *entry,
      PRUint32 *start)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - entry
    - end
    argTypes:
    - DTLSHandshakeRecordEntry*
    - PRUint32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 311
    functionName: dtls_MoveUnackedEndBackward
    functionSourceFile: /src/nss/lib/ssl/dtls13con.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool dtls_MoveUnackedEndBackward(DTLSHandshakeRecordEntry *entry,
      PRUint32 *end)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/dtls13con.c:333,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/dtls13con.c:333,1
    - Dst: tls13_MaybeTls13
      Src: /src/nss/lib/ssl/dtls13con.c:337,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/dtls13con.c:343,1
    - Dst: dtls_IsEmptyMessageAcknowledged
      Src: /src/nss/lib/ssl/dtls13con.c:344,1
    - Dst: PR_LIST_HEAD
      Src: /src/nss/lib/ssl/dtls13con.c:356,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/dtls13con.c:358,1
    - Dst: dtls_MoveUnackedStartForward
      Src: /src/nss/lib/ssl/dtls13con.c:364,1
    - Dst: dtls_MoveUnackedEndBackward
      Src: /src/nss/lib/ssl/dtls13con.c:365,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/dtls13con.c:377,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 6
    argNames:
    - ss
    - msgSeq
    - offset
    - len
    - startOut
    - endOut
    argTypes:
    - sslSocket*
    - PRUint16
    - PRUint32
    - PRUint32
    - PRUint32*
    - PRUint32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 323
    functionDepth: 2
    functionLinenumber: 323
    functionLinenumberEnd: 382
    functionName: dtls_NextUnackedRange
    functionSourceFile: /src/nss/lib/ssl/dtls13con.c
    functionUses: 1
    functionsReached:
    - IS_DTLS
    - PORT_Assert
    - tls13_MaybeTls13
    - PR_NEXT_LINK
    - dtls_IsEmptyMessageAcknowledged
    - dtls_MoveUnackedEndBackward
    - PR_LIST_HEAD
    - dtls_MoveUnackedStartForward
    linkageType: ''
    returnType: PRBool
    signature: "PRBool dtls_NextUnackedRange(sslSocket *ss, PRUint16 msgSeq, PRUint32
      offset,\n                      PRUint32 len, PRUint32 *startOut, PRUint32 *endOut)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dtls_CancelTimer
      Src: /src/nss/lib/ssl/dtls13con.c:392,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/dtls13con.c:395,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/dtls13con.c:396,1
    - Dst: dtls13_SendAck
      Src: /src/nss/lib/ssl/dtls13con.c:397,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/dtls13con.c:405,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/dtls13con.c:406,1
    - Dst: dtls_StartTimer
      Src: /src/nss/lib/ssl/dtls13con.c:407,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 384
    functionDepth: 17
    functionLinenumber: 384
    functionLinenumberEnd: 413
    functionName: dtls13_SetupAcks
    functionSourceFile: /src/nss/lib/ssl/dtls13con.c
    functionUses: 1
    functionsReached:
    - dtls13_SendAck
    - dtls_CancelTimer
    - SSL_TRC
    - SSL_GETPID
    - dtls_StartTimer
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus dtls13_SetupAcks(sslSocket *ss)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/dtls13con.c:436,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/dtls13con.c:436,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/dtls13con.c:437,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/dtls13con.c:439,1
    - Dst: tls13_FatalError
      Src: /src/nss/lib/ssl/dtls13con.c:440,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/dtls13con.c:443,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/dtls13con.c:443,1
    - Dst: SSL_ROLE
      Src: /src/nss/lib/ssl/dtls13con.c:444,1
    - Dst: ssl_GetSSL3HandshakeLock
      Src: /src/nss/lib/ssl/dtls13con.c:447,1
    - Dst: dtls13_HandleAck
      Src: /src/nss/lib/ssl/dtls13con.c:448,1
    - Dst: ssl_ReleaseSSL3HandshakeLock
      Src: /src/nss/lib/ssl/dtls13con.c:449,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/dtls13con.c:450,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/dtls13con.c:469,1
    - Dst: dtls_TimerActive
      Src: /src/nss/lib/ssl/dtls13con.c:469,1
    - Dst: dtls13_SendAck
      Src: /src/nss/lib/ssl/dtls13con.c:470,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/dtls13con.c:486,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/dtls13con.c:486,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/dtls13con.c:489,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/dtls13con.c:490,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 4
    argNames:
    - ss
    - spec
    - rType
    - databuf
    argTypes:
    - sslSocket*
    - ssl3CipherSpec*
    - SSLContentType
    - sslBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 427
    functionDepth: 17
    functionLinenumber: 427
    functionLinenumberEnd: 492
    functionName: dtls13_HandleOutOfEpochRecord
    functionSourceFile: /src/nss/lib/ssl/dtls13con.c
    functionUses: 1
    functionsReached:
    - IS_DTLS
    - PORT_Assert
    - SSL_ROLE
    - dtls13_SendAck
    - SSL3_SendAlert
    - ssl_GetSSL3HandshakeLock
    - dtls13_HandleAck
    - SSL_TRC
    - SSL_GETPID
    - ssl_ReleaseSSL3HandshakeLock
    - PORT_SetError
    - tls13_FatalError
    - dtls_TimerActive
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus dtls13_HandleOutOfEpochRecord(sslSocket *ss, const ssl3CipherSpec
      *spec,\n                              SSLContentType rType,\n                              sslBuffer
      *databuf)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/dtls13con.c:509,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/dtls13con.c:509,1
    - Dst: SSL_ROLE
      Src: /src/nss/lib/ssl/dtls13con.c:509,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/dtls13con.c:510,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/dtls13con.c:510,1
    - Dst: tls13_UpdateTrafficKeys
      Src: /src/nss/lib/ssl/dtls13con.c:513,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/dtls13con.c:517,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - ss
    - entrySeq
    argTypes:
    - sslSocket*
    - PRUint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 498
    functionDepth: 5
    functionLinenumber: 498
    functionLinenumberEnd: 525
    functionName: dtls13_maybeProcessKeyUpdateAck
    functionSourceFile: /src/nss/lib/ssl/dtls13con.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SSL_ROLE
    - ssl_HaveSSL3HandshakeLock
    - SSL_TRC
    - SSL_GETPID
    - tls13_UpdateTrafficKeys
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus dtls13_maybeProcessKeyUpdateAck(sslSocket *ss, PRUint16 entrySeq)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/dtls13con.c:535,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/dtls13con.c:535,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/dtls13con.c:540,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/dtls13con.c:540,1
    - Dst: tls13_MaybeTls13
      Src: /src/nss/lib/ssl/dtls13con.c:541,1
    - Dst: tls13_FatalError
      Src: /src/nss/lib/ssl/dtls13con.c:542,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/dtls13con.c:546,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/dtls13con.c:546,1
    - Dst: ssl3_ConsumeHandshakeNumber
      Src: /src/nss/lib/ssl/dtls13con.c:547,1
    - Dst: ssl3_ConsumeHandshakeNumber64
      Src: /src/nss/lib/ssl/dtls13con.c:560,1
    - Dst: ssl3_ConsumeHandshakeNumber64
      Src: /src/nss/lib/ssl/dtls13con.c:565,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/dtls13con.c:571,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/dtls13con.c:571,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/dtls13con.c:575,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/dtls13con.c:575,1
    - Dst: dtls_CombineSequenceNumber
      Src: /src/nss/lib/ssl/dtls13con.c:579,1
    - Dst: PR_LIST_HEAD
      Src: /src/nss/lib/ssl/dtls13con.c:581,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/dtls13con.c:583,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/dtls13con.c:587,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/dtls13con.c:589,1
    - Dst: dtls13_maybeProcessKeyUpdateAck
      Src: /src/nss/lib/ssl/dtls13con.c:595,1
    - Dst: dtls_TransmitMessageFlight
      Src: /src/nss/lib/ssl/dtls13con.c:603,1
    - Dst: dtls_RestartTimer
      Src: /src/nss/lib/ssl/dtls13con.c:610,1
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/lib/ssl/dtls13con.c:614,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/dtls13con.c:615,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/dtls13con.c:616,1
    - Dst: dtls_CancelTimer
      Src: /src/nss/lib/ssl/dtls13con.c:618,1
    - Dst: ssl_ClearPRCList
      Src: /src/nss/lib/ssl/dtls13con.c:619,1
    - Dst: ssl_CipherSpecReleaseByEpoch
      Src: /src/nss/lib/ssl/dtls13con.c:627,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/dtls13con.c:636,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/dtls13con.c:637,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/dtls13con.c:638,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 70
    argCount: 2
    argNames:
    - ss
    - databuf
    argTypes:
    - sslSocket*
    - sslBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 527
    functionDepth: 20
    functionLinenumber: 527
    functionLinenumberEnd: 640
    functionName: dtls13_HandleAck
    functionSourceFile: /src/nss/lib/ssl/dtls13con.c
    functionUses: 2
    functionsReached:
    - dtls_CancelTimer
    - dtls_CombineSequenceNumber
    - ssl_ClearPRCList
    - dtls_TransmitMessageFlight
    - PORT_SetError
    - PR_CLIST_IS_EMPTY
    - IS_DTLS
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    - tls13_MaybeTls13
    - dtls13_maybeProcessKeyUpdateAck
    - tls13_FatalError
    - PR_LIST_HEAD
    - SSL_TRC
    - SSL_GETPID
    - PR_NEXT_LINK
    - ssl_CipherSpecReleaseByEpoch
    - dtls_RestartTimer
    - ssl3_ConsumeHandshakeNumber64
    - ssl3_ConsumeHandshakeNumber
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus dtls13_HandleAck(sslSocket *ss, sslBuffer *databuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/dtls13con.c:661,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/dtls13con.c:662,1
    - Dst: ssl_CipherSpecReleaseByEpoch
      Src: /src/nss/lib/ssl/dtls13con.c:663,1
    - Dst: ssl_ClearPRCList
      Src: /src/nss/lib/ssl/dtls13con.c:664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 658
    functionDepth: 9
    functionLinenumber: 658
    functionLinenumberEnd: 665
    functionName: dtls13_HolddownTimerCb
    functionSourceFile: /src/nss/lib/ssl/dtls13con.c
    functionUses: 0
    functionsReached:
    - ssl_CipherSpecReleaseByEpoch
    - SSL_TRC
    - SSL_GETPID
    - ssl_ClearPRCList
    linkageType: ''
    returnType: void
    signature: void dtls13_HolddownTimerCb(sslSocket *ss)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/dtls13con.c:672,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/dtls13con.c:672,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/dtls13con.c:686,1
    - Dst: ssl_CreateMaskInner
      Src: /src/nss/lib/ssl/dtls13con.c:691,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/dtls13con.c:694,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 5
    argNames:
    - ss
    - spec
    - hdr
    - cipherText
    - cipherTextLen
    argTypes:
    - sslSocket*
    - ssl3CipherSpec*
    - PRUint8*
    - PRUint8*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 668
    functionDepth: 5
    functionLinenumber: 668
    functionLinenumberEnd: 712
    functionName: dtls13_MaskSequenceNumber
    functionSourceFile: /src/nss/lib/ssl/dtls13con.c
    functionUses: 2
    functionsReached:
    - IS_DTLS
    - PORT_Assert
    - ssl_CreateMaskInner
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus dtls13_MaskSequenceNumber(sslSocket *ss, ssl3CipherSpec
      *spec,\n                          PRUint8 *hdr, PRUint8 *cipherText, PRUint32
      cipherTextLen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/dtls13con.c:733,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - bulkAlgorithm
    argTypes:
    - SSLCipherAlgorithm
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 714
    functionDepth: 0
    functionLinenumber: 714
    functionLinenumberEnd: 736
    functionName: tls13_SequenceNumberEncryptionMechanism
    functionSourceFile: /src/nss/lib/ssl/dtls13con.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: CK_MECHANISM_TYPE
    signature: CK_MECHANISM_TYPE tls13_SequenceNumberEncryptionMechanism(SSLCipherAlgorithm
      bulkAlgorithm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_AppendHandshakeHeaderAndStashSeqNum
      Src: /src/nss/lib/ssl/dtls13con.c:749,1
    - Dst: ssl3_AppendHandshakeNumber
      Src: /src/nss/lib/ssl/dtls13con.c:753,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ss
    - request
    argTypes:
    - sslSocket*
    - tls13KeyUpdateRequest
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 741
    functionDepth: 5
    functionLinenumber: 741
    functionLinenumberEnd: 759
    functionName: dtls13_EnqueueKeyUpdateMessage
    functionSourceFile: /src/nss/lib/ssl/dtls13con.c
    functionUses: 0
    functionsReached:
    - ssl3_AppendHandshakeNumber
    - ssl3_AppendHandshakeHeaderAndStashSeqNum
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus dtls13_EnqueueKeyUpdateMessage(sslSocket *ss, tls13KeyUpdateRequest
      request)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/dtls13con.c:774,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/dtls13con.c:775,1
    - Dst: SSL_ROLE
      Src: /src/nss/lib/ssl/dtls13con.c:775,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/dtls13con.c:779,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/dtls13con.c:779,1
    - Dst: ssl_GetSpecWriteLock
      Src: /src/nss/lib/ssl/dtls13con.c:787,1
    - Dst: ssl_ReleaseSpecWriteLock
      Src: /src/nss/lib/ssl/dtls13con.c:790,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/dtls13con.c:791,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/dtls13con.c:792,1
    - Dst: SSL_ROLE
      Src: /src/nss/lib/ssl/dtls13con.c:792,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/dtls13con.c:793,1
    - Dst: ssl_ReleaseSpecWriteLock
      Src: /src/nss/lib/ssl/dtls13con.c:796,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/dtls13con.c:799,1
    - Dst: ssl_GetSpecReadLock
      Src: /src/nss/lib/ssl/dtls13con.c:801,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/dtls13con.c:804,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/dtls13con.c:805,1
    - Dst: SSL_ROLE
      Src: /src/nss/lib/ssl/dtls13con.c:805,1
    - Dst: ssl_ReleaseSpecReadLock
      Src: /src/nss/lib/ssl/dtls13con.c:808,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/dtls13con.c:815,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/dtls13con.c:816,1
    - Dst: SSL_ROLE
      Src: /src/nss/lib/ssl/dtls13con.c:816,1
    - Dst: ssl_GetXmitBufLock
      Src: /src/nss/lib/ssl/dtls13con.c:820,1
    - Dst: dtls13_EnqueueKeyUpdateMessage
      Src: /src/nss/lib/ssl/dtls13con.c:821,1
    - Dst: ssl3_FlushHandshake
      Src: /src/nss/lib/ssl/dtls13con.c:828,1
    - Dst: ssl_ReleaseXmitBufLock
      Src: /src/nss/lib/ssl/dtls13con.c:832,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/dtls13con.c:835,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/dtls13con.c:838,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/dtls13con.c:839,1
    - Dst: SSL_ROLE
      Src: /src/nss/lib/ssl/dtls13con.c:839,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 3
    argNames:
    - ss
    - request
    - buffer
    argTypes:
    - sslSocket*
    - tls13KeyUpdateRequest
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 770
    functionDepth: 6
    functionLinenumber: 770
    functionLinenumberEnd: 841
    functionName: dtls13_MaybeSendKeyUpdate
    functionSourceFile: /src/nss/lib/ssl/dtls13con.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - SSL_ROLE
    - ssl_HaveSSL3HandshakeLock
    - ssl_GetXmitBufLock
    - dtls13_EnqueueKeyUpdateMessage
    - ssl_GetSpecWriteLock
    - SSL_TRC
    - SSL_GETPID
    - ssl_ReleaseXmitBufLock
    - PORT_SetError
    - ssl3_FlushHandshake
    - ssl_GetSpecReadLock
    - ssl_ReleaseSpecReadLock
    - ssl_ReleaseSpecWriteLock
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus dtls13_MaybeSendKeyUpdate(sslSocket *ss, tls13KeyUpdateRequest
      request, PRBool buffer)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/dtls13con.c:846,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/dtls13con.c:847,1
    - Dst: SSL_ROLE
      Src: /src/nss/lib/ssl/dtls13con.c:847,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/dtls13con.c:849,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/dtls13con.c:849,1
    - Dst: tls13_SendKeyUpdate
      Src: /src/nss/lib/ssl/dtls13con.c:853,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/dtls13con.c:859,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/dtls13con.c:860,1
    - Dst: SSL_ROLE
      Src: /src/nss/lib/ssl/dtls13con.c:860,1
    - Dst: tls13_UpdateTrafficKeys
      Src: /src/nss/lib/ssl/dtls13con.c:863,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - ss
    - b
    - length
    - update
    argTypes:
    - sslSocket*
    - PRUint8*
    - unsigned int
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 843
    functionDepth: 6
    functionLinenumber: 843
    functionLinenumberEnd: 868
    functionName: dtls13_HandleKeyUpdate
    functionSourceFile: /src/nss/lib/ssl/dtls13con.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - SSL_ROLE
    - ssl_HaveSSL3HandshakeLock
    - SSL_TRC
    - SSL_GETPID
    - tls13_UpdateTrafficKeys
    - tls13_SendKeyUpdate
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus dtls13_HandleKeyUpdate(sslSocket *ss, PRUint8 *b, unsigned
      int length, PRBool update)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ss
    - ','
    - ws
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: TLS13_SET_HS_STATE
    functionSourceFile: /src/nss/lib/ssl/tls13con.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TLS13_SET_HS_STATE(ss, ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ss
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: TLS13_IN_HS_STATE
    functionSourceFile: /src/nss/lib/ssl/tls13con.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TLS13_IN_HS_STATE(ss, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ss
    - ','
    - prError
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 172
    functionName: LOG_ERROR
    functionSourceFile: /src/nss/lib/ssl/tls13con.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOG_ERROR(ss, prError)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ss
    - ','
    - prError
    - ','
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 179
    functionName: FATAL_ERROR
    functionSourceFile: /src/nss/lib/ssl/tls13con.h
    functionUses: 43
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FATAL_ERROR(ss, prError, desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/ssl/sslinit.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - appData
    - nssData
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 25
    functionName: ssl_InitShutdown
    functionSourceFile: /src/nss/lib/ssl/sslinit.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl_InitShutdown(void *appData, void *nssData)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ssl_InitializePRErrorTable
      Src: /src/nss/lib/ssl/sslinit.c:33,1
    - Dst: ssl3_CheckCipherSuiteOrderConsistency
      Src: /src/nss/lib/ssl/sslinit.c:39,1
    - Dst: ssl3_ApplyNSSPolicy
      Src: /src/nss/lib/ssl/sslinit.c:42,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/sslinit.c:44,1
    - Dst: NSS_RegisterShutdown
      Src: /src/nss/lib/ssl/sslinit.c:48,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/sslinit.c:50,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 27
    functionDepth: 5
    functionLinenumber: 27
    functionLinenumberEnd: 54
    functionName: ssl_InitCallOnce
    functionSourceFile: /src/nss/lib/ssl/sslinit.c
    functionUses: 0
    functionsReached:
    - NSS_RegisterShutdown
    - ssl3_ApplyNSSPolicy
    - PORT_GetError
    - ssl3_CheckCipherSuiteOrderConsistency
    - ssl_InitializePRErrorTable
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus ssl_InitCallOnce(void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_CallOnceWithArg
      Src: /src/nss/lib/ssl/sslinit.c:60,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslinit.c:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 66
    functionName: ssl_Init
    functionSourceFile: /src/nss/lib/ssl/sslinit.c
    functionUses: 5
    functionsReached:
    - PORT_SetError
    - PR_CallOnceWithArg
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl_Init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - arglist
    - ','
    - args
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 25
    functionName: SSL_EXPERIMENTAL_API
    functionSourceFile: /src/nss/lib/ssl/sslexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_EXPERIMENTAL_API(name, arglist, args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - extension
    - ','
    - support
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 54
    functionName: SSL_GetExtensionSupport
    functionSourceFile: /src/nss/lib/ssl/sslexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_GetExtensionSupport(extension, support)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - fd
    - ','
    - extension
    - ','
    - writer
    - ','
    - writerArg
    - ','
    - handler
    - ','
    - handlerArg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 161
    functionName: SSL_InstallExtensionHooks
    functionSourceFile: /src/nss/lib/ssl/sslexp.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "SSL_InstallExtensionHooks(fd, extension, writer, writerArg,         \\\n
      \                                 handler, handlerArg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - now
    - ','
    - window
    - ','
    - k
    - ','
    - bits
    - ','
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 235
    functionName: SSL_CreateAntiReplayContext
    functionSourceFile: /src/nss/lib/ssl/sslexp.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CreateAntiReplayContext(now, window, k, bits, ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fd
    - ','
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 240
    functionName: SSL_SetAntiReplayContext
    functionSourceFile: /src/nss/lib/ssl/sslexp.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_SetAntiReplayContext(fd, ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 245
    functionName: SSL_ReleaseAntiReplayContext
    functionSourceFile: /src/nss/lib/ssl/sslexp.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_ReleaseAntiReplayContext(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fd
    - ','
    - appToken
    - ','
    - appTokenLen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 266
    functionName: SSL_SendSessionTicket
    functionSourceFile: /src/nss/lib/ssl/sslexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_SendSessionTicket(fd, appToken, appTokenLen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fd
    - ','
    - cb
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 367
    functionName: SSL_HelloRetryRequestCallback
    functionSourceFile: /src/nss/lib/ssl/sslexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_HelloRetryRequestCallback(fd, cb, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fd
    - ','
    - requestUpdate
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 377
    functionName: SSL_KeyUpdate
    functionSourceFile: /src/nss/lib/ssl/sslexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_KeyUpdate(fd, requestUpdate)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 402
    functionName: SSL_SendCertificateRequest
    functionSourceFile: /src/nss/lib/ssl/sslexp.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_SendCertificateRequest(fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - tokenData
    - ','
    - tokenLen
    - ','
    - token
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 439
    functionName: SSL_GetResumptionTokenInfo
    functionSourceFile: /src/nss/lib/ssl/sslexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_GetResumptionTokenInfo(tokenData, tokenLen, token, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tokenInfo
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 450
    functionName: SSL_DestroyResumptionTokenInfo
    functionSourceFile: /src/nss/lib/ssl/sslexp.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_DestroyResumptionTokenInfo(tokenInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fd
    - ','
    - cb
    - ','
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 481
    functionName: SSL_SetResumptionTokenCallback
    functionSourceFile: /src/nss/lib/ssl/sslexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_SetResumptionTokenCallback(fd, cb, ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fd
    - ','
    - token
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 497
    functionName: SSL_SetResumptionToken
    functionSourceFile: /src/nss/lib/ssl/sslexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_SetResumptionToken(fd, token, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fd
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 505
    functionName: SSL_SetMaxEarlyDataSize
    functionSourceFile: /src/nss/lib/ssl/sslexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_SetMaxEarlyDataSize(fd, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fd
    - ','
    - enabled
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 519
    functionName: SSL_EnableTls13GreaseEch
    functionSourceFile: /src/nss/lib/ssl/sslexp.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_EnableTls13GreaseEch(fd, enabled)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fd
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 532
    functionName: SSL_SetTls13GreaseEchSize
    functionSourceFile: /src/nss/lib/ssl/sslexp.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_SetTls13GreaseEchSize(fd, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fd
    - ','
    - enabled
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 537
    functionDepth: 0
    functionLinenumber: 537
    functionLinenumberEnd: 540
    functionName: SSL_EnableTls13BackendEch
    functionSourceFile: /src/nss/lib/ssl/sslexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_EnableTls13BackendEch(fd, enabled)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fd
    - ','
    - enabled
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 561
    functionName: SSL_CallExtensionWriterOnEchInner
    functionSourceFile: /src/nss/lib/ssl/sslexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CallExtensionWriterOnEchInner(fd, enabled)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fd
    - ','
    - out
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 572
    functionName: SSL_GetEchRetryConfigs
    functionSourceFile: /src/nss/lib/ssl/sslexp.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_GetEchRetryConfigs(fd, out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 578
    functionName: SSL_RemoveEchConfigs
    functionSourceFile: /src/nss/lib/ssl/sslexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_RemoveEchConfigs(fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - fd
    - ','
    - pubKey
    - ','
    - privKey
    - ','
    - record
    - ','
    - recordLen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 595
    functionName: SSL_SetServerEchConfigs
    functionSourceFile: /src/nss/lib/ssl/sslexp.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "SSL_SetServerEchConfigs(fd, pubKey,                                 \\\n
      \                               privKey, record, recordLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fd
    - ','
    - echConfigs
    - ','
    - echConfigsLen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 601
    functionDepth: 0
    functionLinenumber: 601
    functionLinenumberEnd: 607
    functionName: SSL_SetClientEchConfigs
    functionSourceFile: /src/nss/lib/ssl/sslexp.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_SetClientEchConfigs(fd, echConfigs, echConfigsLen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 21
    argNames:
    - (
    - configId
    - ','
    - publicName
    - ','
    - maxNameLen
    - ','
    - kemId
    - ','
    - pubKey
    - ','
    - hpkeSuites
    - ','
    - hpkeSuiteCount
    - ','
    - out
    - ','
    - outlen
    - ','
    - maxlen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 638
    functionName: SSL_EncodeEchConfigId
    functionSourceFile: /src/nss/lib/ssl/sslexp.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "SSL_EncodeEchConfigId(configId, publicName, maxNameLen,          \\\n
      \                             kemId, pubKey, hpkeSuites, hpkeSuiteCount, \\\n
      \                             out, outlen, maxlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fd
    - ','
    - cb
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 659
    functionDepth: 0
    functionLinenumber: 659
    functionLinenumberEnd: 663
    functionName: SSL_SecretCallback
    functionSourceFile: /src/nss/lib/ssl/sslexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_SecretCallback(fd, cb, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fd
    - ','
    - writeCb
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 695
    functionDepth: 0
    functionLinenumber: 695
    functionLinenumberEnd: 700
    functionName: SSL_RecordLayerWriteCallback
    functionSourceFile: /src/nss/lib/ssl/sslexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_RecordLayerWriteCallback(fd, writeCb, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - fd
    - ','
    - epoch
    - ','
    - ct
    - ','
    - data
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 714
    functionDepth: 0
    functionLinenumber: 714
    functionLinenumberEnd: 720
    functionName: SSL_RecordLayerData
    functionSourceFile: /src/nss/lib/ssl/sslexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_RecordLayerData(fd, epoch, ct, data, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fd
    - ','
    - readEpoch
    - ','
    - writeEpoch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 727
    functionDepth: 0
    functionLinenumber: 727
    functionLinenumberEnd: 732
    functionName: SSL_GetCurrentEpoch
    functionSourceFile: /src/nss/lib/ssl/sslexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_GetCurrentEpoch(fd, readEpoch, writeEpoch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - version
    - ','
    - cipherSuite
    - ','
    - secret
    - ','
    - labelPrefix
    - ','
    - labelPrefixLen
    - ','
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 753
    functionDepth: 0
    functionLinenumber: 753
    functionLinenumberEnd: 763
    functionName: SSL_MakeAead
    functionSourceFile: /src/nss/lib/ssl/sslexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "SSL_MakeAead(version, cipherSuite, secret,                  \\\n                     labelPrefix,
      labelPrefixLen, ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - version
    - ','
    - cipherSuite
    - ','
    - variant
    - ','
    - secret
    - ','
    - labelPrefix
    - ','
    - labelPrefixLen
    - ','
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 764
    functionDepth: 0
    functionLinenumber: 764
    functionLinenumberEnd: 775
    functionName: SSL_MakeVariantAead
    functionSourceFile: /src/nss/lib/ssl/sslexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "SSL_MakeVariantAead(version, cipherSuite, variant, secret,  \\\n                            labelPrefix,
      labelPrefixLen, ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - ctx
    - ','
    - counter
    - ','
    - aad
    - ','
    - aadLen
    - ','
    - in
    - ','
    - inLen
    - ','
    - output
    - ','
    - outputLen
    - ','
    - maxOutputLen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 776
    functionDepth: 0
    functionLinenumber: 776
    functionLinenumberEnd: 786
    functionName: SSL_AeadEncrypt
    functionSourceFile: /src/nss/lib/ssl/sslexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "SSL_AeadEncrypt(ctx, counter, aad, aadLen, in, inLen,            \\\n
      \                       output, outputLen, maxOutputLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - ctx
    - ','
    - counter
    - ','
    - aad
    - ','
    - aadLen
    - ','
    - in
    - ','
    - inLen
    - ','
    - output
    - ','
    - outputLen
    - ','
    - maxOutputLen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 787
    functionDepth: 0
    functionLinenumber: 787
    functionLinenumberEnd: 797
    functionName: SSL_AeadDecrypt
    functionSourceFile: /src/nss/lib/ssl/sslexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "SSL_AeadDecrypt(ctx, counter, aad, aadLen, in, inLen,            \\\n
      \                       output, outputLen, maxOutputLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 798
    functionDepth: 0
    functionLinenumber: 798
    functionLinenumberEnd: 802
    functionName: SSL_DestroyAead
    functionSourceFile: /src/nss/lib/ssl/sslexp.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_DestroyAead(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - version
    - ','
    - cipherSuite
    - ','
    - salt
    - ','
    - ikm
    - ','
    - keyp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 809
    functionDepth: 0
    functionLinenumber: 809
    functionLinenumberEnd: 815
    functionName: SSL_HkdfExtract
    functionSourceFile: /src/nss/lib/ssl/sslexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_HkdfExtract(version, cipherSuite, salt, ikm, keyp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - version
    - ','
    - cipherSuite
    - ','
    - prk
    - ','
    - hsHash
    - ','
    - hsHashLen
    - ','
    - label
    - ','
    - labelLen
    - ','
    - keyp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 823
    functionDepth: 0
    functionLinenumber: 823
    functionLinenumberEnd: 833
    functionName: SSL_HkdfExpandLabel
    functionSourceFile: /src/nss/lib/ssl/sslexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "SSL_HkdfExpandLabel(version, cipherSuite, prk,                     \\\n
      \                           hsHash, hsHashLen, label, labelLen, keyp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - version
    - ','
    - cipherSuite
    - ','
    - prk
    - ','
    - hsHash
    - ','
    - hsHashLen
    - ','
    - label
    - ','
    - labelLen
    - ','
    - variant
    - ','
    - keyp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 834
    functionDepth: 0
    functionLinenumber: 834
    functionLinenumberEnd: 847
    functionName: SSL_HkdfVariantExpandLabel
    functionSourceFile: /src/nss/lib/ssl/sslexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "SSL_HkdfVariantExpandLabel(version, cipherSuite, prk,                   \\\n
      \                                  hsHash, hsHashLen, label, labelLen, variant,
      \\\n                                   keyp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 21
    argNames:
    - (
    - version
    - ','
    - cipherSuite
    - ','
    - prk
    - ','
    - hsHash
    - ','
    - hsHashLen
    - ','
    - label
    - ','
    - labelLen
    - ','
    - mech
    - ','
    - keySize
    - ','
    - keyp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 856
    functionDepth: 0
    functionLinenumber: 856
    functionLinenumberEnd: 869
    functionName: SSL_HkdfExpandLabelWithMech
    functionSourceFile: /src/nss/lib/ssl/sslexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "SSL_HkdfExpandLabelWithMech(version, cipherSuite, prk,             \\\n
      \                                   hsHash, hsHashLen, label, labelLen,    \\\n
      \                                   mech, keySize, keyp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 23
    argNames:
    - (
    - version
    - ','
    - cipherSuite
    - ','
    - prk
    - ','
    - hsHash
    - ','
    - hsHashLen
    - ','
    - label
    - ','
    - labelLen
    - ','
    - mech
    - ','
    - keySize
    - ','
    - variant
    - ','
    - keyp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 870
    functionDepth: 0
    functionLinenumber: 870
    functionLinenumberEnd: 884
    functionName: SSL_HkdfVariantExpandLabelWithMech
    functionSourceFile: /src/nss/lib/ssl/sslexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "SSL_HkdfVariantExpandLabelWithMech(version, cipherSuite, prk,          \\\n
      \                                          hsHash, hsHashLen, label, labelLen,
      \\\n                                           mech, keySize, variant, keyp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fd
    - ','
    - f
    - ','
    - arg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 891
    functionDepth: 0
    functionLinenumber: 891
    functionLinenumberEnd: 895
    functionName: SSL_SetTimeFunc
    functionSourceFile: /src/nss/lib/ssl/sslexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_SetTimeFunc(fd, f, arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - cert
    - ','
    - certPriv
    - ','
    - dcPub
    - ','
    - dcCertVerifyAlg
    - ','
    - dcValidFor
    - ','
    - now
    - ','
    - out
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 913
    functionDepth: 0
    functionLinenumber: 913
    functionLinenumberEnd: 925
    functionName: SSL_DelegateCredential
    functionSourceFile: /src/nss/lib/ssl/sslexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "SSL_DelegateCredential(cert, certPriv, dcPub, dcCertVerifyAlg,        \\\n
      \                              dcValidFor, now, out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fd
    - ','
    - cipherOrder
    - ','
    - numCiphers
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 953
    functionDepth: 0
    functionLinenumber: 953
    functionLinenumberEnd: 958
    functionName: SSL_CipherSuiteOrderGet
    functionSourceFile: /src/nss/lib/ssl/sslexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CipherSuiteOrderGet(fd, cipherOrder, numCiphers)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fd
    - ','
    - cipherOrder
    - ','
    - numCiphers
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 964
      start: 959
    functionDepth: 0
    functionLinenumber: 959
    functionLinenumberEnd: 964
    functionName: SSL_CipherSuiteOrderSet
    functionSourceFile: /src/nss/lib/ssl/sslexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CipherSuiteOrderSet(fd, cipherOrder, numCiphers)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - version
    - ','
    - cipherSuite
    - ','
    - secret
    - ','
    - label
    - ','
    - labelLen
    - ','
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 993
    functionDepth: 0
    functionLinenumber: 993
    functionLinenumberEnd: 1002
    functionName: SSL_CreateMaskingContext
    functionSourceFile: /src/nss/lib/ssl/sslexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "SSL_CreateMaskingContext(version, cipherSuite, secret,      \\\n                                 label,
      labelLen, ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - version
    - ','
    - cipherSuite
    - ','
    - variant
    - ','
    - secret
    - ','
    - label
    - ','
    - labelLen
    - ','
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 1003
    functionDepth: 0
    functionLinenumber: 1003
    functionLinenumberEnd: 1014
    functionName: SSL_CreateVariantMaskingContext
    functionSourceFile: /src/nss/lib/ssl/sslexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "SSL_CreateVariantMaskingContext(version, cipherSuite, variant, \\\n
      \                                       secret, label, labelLen, ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 1015
    functionDepth: 0
    functionLinenumber: 1015
    functionLinenumberEnd: 1019
    functionName: SSL_DestroyMaskingContext
    functionSourceFile: /src/nss/lib/ssl/sslexp.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_DestroyMaskingContext(ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - ctx
    - ','
    - sample
    - ','
    - sampleLen
    - ','
    - mask
    - ','
    - maskLen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 1020
    functionDepth: 0
    functionLinenumber: 1020
    functionLinenumberEnd: 1026
    functionName: SSL_CreateMask
    functionSourceFile: /src/nss/lib/ssl/sslexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_CreateMask(ctx, sample, sampleLen, mask, maskLen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fd
    - ','
    - enabled
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1030
      start: 1027
    functionDepth: 0
    functionLinenumber: 1027
    functionLinenumberEnd: 1030
    functionName: SSL_SetDtls13VersionWorkaround
    functionSourceFile: /src/nss/lib/ssl/sslexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_SetDtls13VersionWorkaround(fd, enabled)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - fd
    - ','
    - psk
    - ','
    - identity
    - ','
    - identityLen
    - ','
    - hash
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1050
    functionDepth: 0
    functionLinenumber: 1050
    functionLinenumberEnd: 1056
    functionName: SSL_AddExternalPsk
    functionSourceFile: /src/nss/lib/ssl/sslexp.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_AddExternalPsk(fd, psk, identity, identityLen, hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - fd
    - ','
    - psk
    - ','
    - identity
    - ','
    - identityLen
    - ','
    - hash
    - ','
    - zeroRttSuite
    - ','
    - maxEarlyData
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1057
    functionDepth: 0
    functionLinenumber: 1057
    functionLinenumberEnd: 1066
    functionName: SSL_AddExternalPsk0Rtt
    functionSourceFile: /src/nss/lib/ssl/sslexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: "SSL_AddExternalPsk0Rtt(fd, psk, identity, identityLen, hash,           \\\n
      \                              zeroRttSuite, maxEarlyData)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fd
    - ','
    - identity
    - ','
    - identityLen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 1070
    functionDepth: 0
    functionLinenumber: 1070
    functionLinenumberEnd: 1075
    functionName: SSL_RemoveExternalPsk
    functionSourceFile: /src/nss/lib/ssl/sslexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_RemoveExternalPsk(fd, identity, identityLen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fd
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1087
      start: 1082
    functionDepth: 0
    functionLinenumber: 1082
    functionLinenumberEnd: 1087
    functionName: SSL_SetCertificateCompressionAlgorithm
    functionSourceFile: /src/nss/lib/ssl/sslexp.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_SetCertificateCompressionAlgorithm(fd, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fd
    - ','
    - out
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 1096
    functionDepth: 0
    functionLinenumber: 1096
    functionLinenumberEnd: 1100
    functionName: SSL_PeerCertificateChainDER
    functionSourceFile: /src/nss/lib/ssl/sslexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_PeerCertificateChainDER(fd, out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fd
    - ','
    - enable
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 1102
    functionDepth: 0
    functionLinenumber: 1102
    functionLinenumberEnd: 1103
    functionName: SSL_UseAltServerHelloType
    functionSourceFile: /src/nss/lib/ssl/sslexp.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_UseAltServerHelloType(fd, enable)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1103
    functionDepth: 0
    functionLinenumber: 1103
    functionLinenumberEnd: 1104
    functionName: SSL_SetupAntiReplay
    functionSourceFile: /src/nss/lib/ssl/sslexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_SetupAntiReplay(a, b, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1105
      start: 1104
    functionDepth: 0
    functionLinenumber: 1104
    functionLinenumberEnd: 1105
    functionName: SSL_InitAntiReplay
    functionSourceFile: /src/nss/lib/ssl/sslexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_InitAntiReplay(a, b, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 1105
    functionDepth: 0
    functionLinenumber: 1105
    functionLinenumberEnd: 1106
    functionName: SSL_EnableESNI
    functionSourceFile: /src/nss/lib/ssl/sslexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_EnableESNI(a, b, c, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 21
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - ','
    - i
    - ','
    - j
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1107
      start: 1106
    functionDepth: 0
    functionLinenumber: 1106
    functionLinenumberEnd: 1107
    functionName: SSL_EncodeESNIKeys
    functionSourceFile: /src/nss/lib/ssl/sslexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_EncodeESNIKeys(a, b, c, d, e, f, g, h, i, j)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 1107
    functionDepth: 0
    functionLinenumber: 1107
    functionLinenumberEnd: 1108
    functionName: SSL_SetESNIKeyPair
    functionSourceFile: /src/nss/lib/ssl/sslexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_SetESNIKeyPair(a, b, c, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1109
      start: 1108
    functionDepth: 0
    functionLinenumber: 1108
    functionLinenumberEnd: 1109
    functionName: SSL_EncodeEchConfig
    functionSourceFile: /src/nss/lib/ssl/sslexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_EncodeEchConfig(a, b, c, d, e, f, g, h, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - header
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: PEFIXED_Label
    functionSourceFile: /src/nss/lib/ssl/preenc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PEFIXED_Label(header)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - header
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: PEFIXED_KeyID
    functionSourceFile: /src/nss/lib/ssl/preenc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PEFIXED_KeyID(header)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - header
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: PEFIXED_IV
    functionSourceFile: /src/nss/lib/ssl/preenc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PEFIXED_IV(header)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - header
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: PEFIXED_Key
    functionSourceFile: /src/nss/lib/ssl/preenc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PEFIXED_Key(header)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - header
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: PERSA_Issuer
    functionSourceFile: /src/nss/lib/ssl/preenc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PERSA_Issuer(header)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - header
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: PERSA_Serial
    functionSourceFile: /src/nss/lib/ssl/preenc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PERSA_Serial(header)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - header
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: PERSA_IV
    functionSourceFile: /src/nss/lib/ssl/preenc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PERSA_IV(header)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - header
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: PERSA_Key
    functionSourceFile: /src/nss/lib/ssl/preenc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PERSA_Key(header)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 94
    functionName: GetInt2
    functionSourceFile: /src/nss/lib/ssl/preenc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GetInt2(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: GetInt4
    functionSourceFile: /src/nss/lib/ssl/preenc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GetInt4(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 97
    functionName: PutInt2
    functionSourceFile: /src/nss/lib/ssl/preenc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PutInt2(c, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - c
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: PutInt4
    functionSourceFile: /src/nss/lib/ssl/preenc.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PutInt4(c, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: SSL_TRC
    functionSourceFile: /src/nss/lib/ssl/sslimpl.h
    functionUses: 173
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_TRC(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: PRINT_BUF
    functionSourceFile: /src/nss/lib/ssl/sslimpl.h
    functionUses: 50
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PRINT_BUF(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: PRINT_KEY
    functionSourceFile: /src/nss/lib/ssl/sslimpl.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PRINT_KEY(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: SSL_DBG
    functionSourceFile: /src/nss/lib/ssl/sslimpl.h
    functionUses: 93
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_DBG(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 94
    functionName: LSB
    functionSourceFile: /src/nss/lib/ssl/sslimpl.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LSB(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 95
    functionName: MSB
    functionSourceFile: /src/nss/lib/ssl/sslimpl.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MSB(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - T
    - ','
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 97
    functionName: CONST_CAST
    functionSourceFile: /src/nss/lib/ssl/sslimpl.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONST_CAST(T, X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ss
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 815
    functionDepth: 0
    functionLinenumber: 815
    functionLinenumberEnd: 821
    functionName: SSL_ASSERT_HASHES_EMPTY
    functionSourceFile: /src/nss/lib/ssl/sslimpl.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_ASSERT_HASHES_EMPTY(ss)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ss
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 893
    functionDepth: 0
    functionLinenumber: 893
    functionLinenumberEnd: 894
    functionName: IS_DTLS
    functionSourceFile: /src/nss/lib/ssl/sslimpl.h
    functionUses: 77
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_DTLS(ss)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ss
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 894
    functionDepth: 0
    functionLinenumber: 894
    functionLinenumberEnd: 895
    functionName: IS_DTLS_1_OR_12
    functionSourceFile: /src/nss/lib/ssl/sslimpl.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_DTLS_1_OR_12(ss)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ss
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 895
    functionDepth: 0
    functionLinenumber: 895
    functionLinenumberEnd: 896
    functionName: IS_DTLS_13_OR_ABOVE
    functionSourceFile: /src/nss/lib/ssl/sslimpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_DTLS_13_OR_ABOVE(ss)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ss
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 1003
    functionDepth: 0
    functionLinenumber: 1003
    functionLinenumberEnd: 1004
    functionName: SSL_ROLE
    functionSourceFile: /src/nss/lib/ssl/sslimpl.h
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_ROLE(ss)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ss
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1379
      start: 1376
    functionDepth: 0
    functionLinenumber: 1376
    functionLinenumberEnd: 1379
    functionName: SSL_LOCK_READER
    functionSourceFile: /src/nss/lib/ssl/sslimpl.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_LOCK_READER(ss)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ss
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1382
      start: 1379
    functionDepth: 0
    functionLinenumber: 1379
    functionLinenumberEnd: 1382
    functionName: SSL_UNLOCK_READER
    functionSourceFile: /src/nss/lib/ssl/sslimpl.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_UNLOCK_READER(ss)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ss
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1385
      start: 1382
    functionDepth: 0
    functionLinenumber: 1382
    functionLinenumberEnd: 1385
    functionName: SSL_LOCK_WRITER
    functionSourceFile: /src/nss/lib/ssl/sslimpl.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_LOCK_WRITER(ss)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ss
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1388
      start: 1385
    functionDepth: 0
    functionLinenumber: 1385
    functionLinenumberEnd: 1388
    functionName: SSL_UNLOCK_WRITER
    functionSourceFile: /src/nss/lib/ssl/sslimpl.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_UNLOCK_WRITER(ss)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - vrange
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1439
      start: 1437
    functionDepth: 0
    functionLinenumber: 1437
    functionLinenumberEnd: 1439
    functionName: SSL_ALL_VERSIONS_DISABLED
    functionSourceFile: /src/nss/lib/ssl/sslimpl.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_ALL_VERSIONS_DISABLED(vrange)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1537
      start: 1531
    functionDepth: 0
    functionLinenumber: 1531
    functionLinenumberEnd: 1537
    functionName: SSL_RSASTRENGTH_TO_ECSTRENGTH
    functionSourceFile: /src/nss/lib/ssl/sslimpl.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_RSASTRENGTH_TO_ECSTRENGTH(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1836
      start: 1835
    functionDepth: 0
    functionLinenumber: 1835
    functionLinenumberEnd: 1836
    functionName: SSL_TRACE
    functionSourceFile: /src/nss/lib/ssl/sslimpl.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_TRACE(msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1999
      start: 1998
    functionDepth: 0
    functionLinenumber: 1998
    functionLinenumberEnd: 1999
    functionName: SSL_GETPID
    functionSourceFile: /src/nss/lib/ssl/sslimpl.h
    functionUses: 251
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SSL_GETPID()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_READER
      Src: /src/nss/lib/ssl/tls13ech.c:39,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/tls13ech.c:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - start
    - xtnType
    argTypes:
    - PRUint8*
    - PRUint16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 46
    functionName: tls13_Debug_CheckXtnBegins
    functionSourceFile: /src/nss/lib/ssl/tls13ech.c
    functionUses: 0
    functionsReached:
    - sslRead_ReadNumber
    - SSL_READER
    linkageType: ''
    returnType: PRBool
    signature: PRBool tls13_Debug_CheckXtnBegins(const PRUint8 *start, const PRUint16
      xtnType)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/tls13ech.c:54,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/tls13ech.c:55,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/tls13ech.c:56,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/tls13ech.c:57,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/ssl/tls13ech.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - config
    argTypes:
    - sslEchConfig*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 60
    functionName: tls13_DestroyEchConfig
    functionSourceFile: /src/nss/lib/ssl/tls13ech.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - PORT_ZFree
    - SECITEM_FreeItem
    linkageType: ''
    returnType: void
    signature: void tls13_DestroyEchConfig(sslEchConfig *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/lib/ssl/tls13ech.c:66,1
    - Dst: PR_LIST_TAIL
      Src: /src/nss/lib/ssl/tls13ech.c:67,1
    - Dst: PR_REMOVE_LINK
      Src: /src/nss/lib/ssl/tls13ech.c:68,1
    - Dst: tls13_DestroyEchConfig
      Src: /src/nss/lib/ssl/tls13ech.c:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - list
    argTypes:
    - PRCList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 71
    functionName: tls13_DestroyEchConfigs
    functionSourceFile: /src/nss/lib/ssl/tls13ech.c
    functionUses: 3
    functionsReached:
    - PR_LIST_TAIL
    - tls13_DestroyEchConfig
    - PR_REMOVE_LINK
    - PR_CLIST_IS_EMPTY
    linkageType: ''
    returnType: void
    signature: void tls13_DestroyEchConfigs(PRCList *list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/tls13ech.c:79,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/tls13ech.c:80,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/tls13ech.c:81,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/ssl/tls13ech.c:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - state
    argTypes:
    - sslEchXtnState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 83
    functionName: tls13_DestroyEchXtnState
    functionSourceFile: /src/nss/lib/ssl/tls13ech.c
    functionUses: 1
    functionsReached:
    - PORT_ZFree
    - SECITEM_FreeItem
    linkageType: ''
    returnType: void
    signature: void tls13_DestroyEchXtnState(sslEchXtnState *state)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PR_LIST_HEAD
      Src: /src/nss/lib/ssl/tls13ech.c:92,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/tls13ech.c:94,1
    - Dst: PR_LIST_TAIL
      Src: /src/nss/lib/ssl/tls13ech.c:95,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/ssl/tls13ech.c:96,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/ssl/tls13ech.c:101,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/ssl/tls13ech.c:105,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/ssl/tls13ech.c:109,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/ssl/tls13ech.c:114,1
    - Dst: PR_APPEND_LINK
      Src: /src/nss/lib/ssl/tls13ech.c:125,1
    - Dst: tls13_DestroyEchConfig
      Src: /src/nss/lib/ssl/tls13ech.c:130,1
    - Dst: tls13_DestroyEchConfigs
      Src: /src/nss/lib/ssl/tls13ech.c:131,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 2
    argNames:
    - oConfigs
    - configs
    argTypes:
    - PRCList*
    - PRCList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 133
    functionName: tls13_CopyEchConfigs
    functionSourceFile: /src/nss/lib/ssl/tls13ech.c
    functionUses: 2
    functionsReached:
    - PR_LIST_TAIL
    - PORT_ZNew
    - tls13_DestroyEchConfigs
    - PR_NEXT_LINK
    - SECITEM_CopyItem
    - PR_APPEND_LINK
    - tls13_DestroyEchConfig
    - PR_LIST_HEAD
    - PORT_Strdup
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_CopyEchConfigs(PRCList *oConfigs, PRCList *configs)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: SSL_READER
      Src: /src/nss/lib/ssl/tls13ech.c:175,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/tls13ech.c:183,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/tls13ech.c:190,1
    - Dst: sslRead_ReadVariable
      Src: /src/nss/lib/ssl/tls13ech.c:197,1
    - Dst: SECITEM_MakeItem
      Src: /src/nss/lib/ssl/tls13ech.c:201,1
    - Dst: sslRead_ReadVariable
      Src: /src/nss/lib/ssl/tls13ech.c:207,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13ech.c:212,1
    - Dst: SSL_READER
      Src: /src/nss/lib/ssl/tls13ech.c:215,1
    - Dst: SSL_READER_REMAINING
      Src: /src/nss/lib/ssl/tls13ech.c:216,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/tls13ech.c:218,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/tls13ech.c:223,1
    - Dst: PK11_HPKE_ValidateParameters
      Src: /src/nss/lib/ssl/tls13ech.c:229,1
    - Dst: SECITEM_MakeItem
      Src: /src/nss/lib/ssl/tls13ech.c:239,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/tls13ech.c:245,1
    - Dst: sslRead_ReadVariable
      Src: /src/nss/lib/ssl/tls13ech.c:252,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13ech.c:258,1
    - Dst: tls13_IsLDH
      Src: /src/nss/lib/ssl/tls13ech.c:261,1
    - Dst: tls13_IsIp
      Src: /src/nss/lib/ssl/tls13ech.c:262,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13ech.c:263,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/ssl/tls13ech.c:267,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/tls13ech.c:271,1
    - Dst: sslRead_ReadVariable
      Src: /src/nss/lib/ssl/tls13ech.c:275,1
    - Dst: SSL_READER
      Src: /src/nss/lib/ssl/tls13ech.c:280,1
    - Dst: PORT_NewArray
      Src: /src/nss/lib/ssl/tls13ech.c:281,1
    - Dst: SSL_READER_REMAINING
      Src: /src/nss/lib/ssl/tls13ech.c:286,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/tls13ech.c:288,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13ech.c:295,1
    - Dst: sslRead_ReadVariable
      Src: /src/nss/lib/ssl/tls13ech.c:310,1
    - Dst: SSL_READER_REMAINING
      Src: /src/nss/lib/ssl/tls13ech.c:317,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13ech.c:318,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/ssl/tls13ech.c:326,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/tls13ech.c:333,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/tls13ech.c:334,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/tls13ech.c:335,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/tls13ech.c:337,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/tls13ech.c:341,1
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/tls13ech.c:342,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/tls13ech.c:343,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/tls13ech.c:344,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 148
    argCount: 2
    argNames:
    - rawConfig
    - outConfig
    argTypes:
    - sslReadBuffer*
    - sslEchConfig**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 163
    functionDepth: 3
    functionLinenumber: 163
    functionLinenumberEnd: 346
    functionName: tls13_DecodeEchConfigContents
    functionSourceFile: /src/nss/lib/ssl/tls13ech.c
    functionUses: 0
    functionsReached:
    - tls13_IsLDH
    - PORT_Memcpy
    - sslRead_ReadVariable
    - PORT_ZNew
    - PORT_Free
    - PORT_ZAlloc
    - tls13_IsIp
    - PK11_HPKE_ValidateParameters
    - PORT_SetError
    - SECITEM_MakeItem
    - sslRead_ReadNumber
    - SSL_READER
    - PORT_NewArray
    - SSL_READER_REMAINING
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_DecodeEchConfigContents(const sslReadBuffer *rawConfig,\n
      \                             sslEchConfig **outConfig)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: SSL_READER
      Src: /src/nss/lib/ssl/tls13ech.c:355,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13ech.c:360,1
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/lib/ssl/tls13ech.c:360,1
    - Dst: sslRead_ReadVariable
      Src: /src/nss/lib/ssl/tls13ech.c:362,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13ech.c:366,1
    - Dst: SSL_READER_REMAINING
      Src: /src/nss/lib/ssl/tls13ech.c:366,1
    - Dst: SSL_READER_REMAINING
      Src: /src/nss/lib/ssl/tls13ech.c:367,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13ech.c:368,1
    - Dst: SSL_READER
      Src: /src/nss/lib/ssl/tls13ech.c:372,1
    - Dst: SSL_READER_REMAINING
      Src: /src/nss/lib/ssl/tls13ech.c:374,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13ech.c:375,1
    - Dst: SSL_READER_REMAINING
      Src: /src/nss/lib/ssl/tls13ech.c:380,1
    - Dst: SSL_READER_CURRENT
      Src: /src/nss/lib/ssl/tls13ech.c:381,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/tls13ech.c:383,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/tls13ech.c:388,1
    - Dst: sslRead_Read
      Src: /src/nss/lib/ssl/tls13ech.c:394,1
    - Dst: tls13_DecodeEchConfigContents
      Src: /src/nss/lib/ssl/tls13ech.c:400,1
    - Dst: SECITEM_MakeItem
      Src: /src/nss/lib/ssl/tls13ech.c:407,1
    - Dst: PR_APPEND_LINK
      Src: /src/nss/lib/ssl/tls13ech.c:413,1
    - Dst: tls13_DestroyEchConfigs
      Src: /src/nss/lib/ssl/tls13ech.c:421,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 56
    argCount: 2
    argNames:
    - data
    - configs
    argTypes:
    - SECItem*
    - PRCList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 350
    functionDepth: 4
    functionLinenumber: 350
    functionLinenumberEnd: 423
    functionName: tls13_DecodeEchConfigs
    functionSourceFile: /src/nss/lib/ssl/tls13ech.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - SSL_READER_CURRENT
    - sslRead_ReadVariable
    - tls13_DestroyEchConfigs
    - SSL_TRC
    - tls13_DecodeEchConfigContents
    - PORT_SetError
    - sslRead_ReadNumber
    - SSL_READER
    - sslRead_Read
    - SECITEM_MakeItem
    - PR_APPEND_LINK
    - SSL_READER_REMAINING
    - PR_CLIST_IS_EMPTY
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_DecodeEchConfigs(const SECItem *data, PRCList *configs)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13ech.c:443,1
    - Dst: sslBuffer_Skip
      Src: /src/nss/lib/ssl/tls13ech.c:448,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13ech.c:462,1
    - Dst: sslBuffer_Skip
      Src: /src/nss/lib/ssl/tls13ech.c:467,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13ech.c:480,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13ech.c:485,1
    - Dst: PK11_HPKE_Serialize
      Src: /src/nss/lib/ssl/tls13ech.c:490,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/tls13ech.c:494,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13ech.c:499,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13ech.c:504,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13ech.c:508,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13ech.c:522,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/ssl/tls13ech.c:527,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13ech.c:529,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/tls13ech.c:532,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13ech.c:538,1
    - Dst: sslBuffer_InsertLength
      Src: /src/nss/lib/ssl/tls13ech.c:544,1
    - Dst: sslBuffer_InsertLength
      Src: /src/nss/lib/ssl/tls13ech.c:548,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/tls13ech.c:553,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13ech.c:554,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/tls13ech.c:557,1
    - Dst: SSL_BUFFER_BASE
      Src: /src/nss/lib/ssl/tls13ech.c:557,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/tls13ech.c:557,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/tls13ech.c:558,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/tls13ech.c:559,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/tls13ech.c:563,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 101
    argCount: 10
    argNames:
    - configId
    - publicName
    - maxNameLen
    - kemId
    - pubKey
    - hpkeSuites
    - hpkeSuiteCount
    - out
    - outlen
    - maxlen
    argTypes:
    - PRUint8
    - char*
    - unsigned int
    - HpkeKemId
    - SECKEYPublicKey*
    - HpkeSymmetricSuite*
    - unsigned int
    - PRUint8*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 565
    functionName: SSLExp_EncodeEchConfigId
    functionSourceFile: /src/nss/lib/ssl/tls13ech.c
    functionUses: 0
    functionsReached:
    - SSL_BUFFER_LEN
    - PORT_Memcpy
    - SSL_BUFFER_BASE
    - sslBuffer_AppendVariable
    - PORT_Strlen
    - sslBuffer_AppendNumber
    - sslBuffer_InsertLength
    - PORT_SetError
    - PK11_HPKE_Serialize
    - sslBuffer_Skip
    - sslBuffer_Clear
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSLExp_EncodeEchConfigId(PRUint8 configId, const char *publicName,
      unsigned int maxNameLen,\n                         HpkeKemId kemId, const SECKEYPublicKey
      *pubKey,\n                         const HpkeSymmetricSuite *hpkeSuites, unsigned
      int hpkeSuiteCount,\n                         PRUint8 *out, unsigned int *outlen,
      unsigned int maxlen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13ech.c:575,1
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/tls13ech.c:578,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/tls13ech.c:580,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13ech.c:581,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13ech.c:582,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13ech.c:591,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/ssl/tls13ech.c:596,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - fd
    - retryConfigs
    argTypes:
    - PRFileDesc*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 567
    functionDepth: 2
    functionLinenumber: 567
    functionLinenumberEnd: 602
    functionName: SSLExp_GetEchRetryConfigs
    functionSourceFile: /src/nss/lib/ssl/tls13ech.c
    functionUses: 0
    functionsReached:
    - SSL_GETPID
    - SECITEM_CopyItem
    - PORT_SetError
    - SSL_DBG
    - ssl_FindSocket
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSLExp_GetEchRetryConfigs(PRFileDesc *fd, SECItem *retryConfigs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13ech.c:610,1
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/tls13ech.c:614,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/tls13ech.c:616,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13ech.c:617,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13ech.c:618,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/lib/ssl/tls13ech.c:622,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/ssl/tls13ech.c:624,1
    - Dst: tls13_DestroyEchConfigs
      Src: /src/nss/lib/ssl/tls13ech.c:626,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/tls13ech.c:630,1
    - Dst: PK11_HPKE_DestroyContext
      Src: /src/nss/lib/ssl/tls13ech.c:634,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 1
    argNames:
    - fd
    argTypes:
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 604
    functionDepth: 2
    functionLinenumber: 604
    functionLinenumberEnd: 641
    functionName: SSLExp_RemoveEchConfigs
    functionSourceFile: /src/nss/lib/ssl/tls13ech.c
    functionUses: 0
    functionsReached:
    - SECKEY_DestroyPublicKey
    - PK11_HPKE_DestroyContext
    - tls13_DestroyEchConfigs
    - SSL_GETPID
    - SECKEY_DestroyPrivateKey
    - PORT_SetError
    - SSL_DBG
    - ssl_FindSocket
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SSLExp_RemoveEchConfigs(PRFileDesc *fd)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CONST_CAST
      Src: /src/nss/lib/ssl/tls13ech.c:652,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13ech.c:655,1
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/tls13ech.c:659,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/tls13ech.c:661,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13ech.c:662,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13ech.c:663,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/tls13ech.c:667,1
    - Dst: SSLExp_RemoveEchConfigs
      Src: /src/nss/lib/ssl/tls13ech.c:672,1
    - Dst: tls13_DecodeEchConfigs
      Src: /src/nss/lib/ssl/tls13ech.c:677,1
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/lib/ssl/tls13ech.c:681,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13ech.c:682,1
    - Dst: SECKEY_CopyPublicKey
      Src: /src/nss/lib/ssl/tls13ech.c:686,1
    - Dst: SECKEY_CopyPrivateKey
      Src: /src/nss/lib/ssl/tls13ech.c:690,1
    - Dst: tls13_DestroyEchConfigs
      Src: /src/nss/lib/ssl/tls13ech.c:697,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/lib/ssl/tls13ech.c:698,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/ssl/tls13ech.c:699,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 5
    argNames:
    - fd
    - pubKey
    - privKey
    - echConfigs
    - echConfigsLen
    argTypes:
    - PRFileDesc*
    - SECKEYPublicKey*
    - SECKEYPrivateKey*
    - PRUint8*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 645
    functionDepth: 5
    functionLinenumber: 645
    functionLinenumberEnd: 703
    functionName: SSLExp_SetServerEchConfigs
    functionSourceFile: /src/nss/lib/ssl/tls13ech.c
    functionUses: 0
    functionsReached:
    - IS_DTLS
    - CONST_CAST
    - SECKEY_CopyPublicKey
    - SSLExp_RemoveEchConfigs
    - SECKEY_DestroyPublicKey
    - tls13_DecodeEchConfigs
    - tls13_DestroyEchConfigs
    - SSL_GETPID
    - SECKEY_DestroyPrivateKey
    - PORT_SetError
    - SSL_DBG
    - ssl_FindSocket
    - PR_CLIST_IS_EMPTY
    - SECKEY_CopyPrivateKey
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSLExp_SetServerEchConfigs(PRFileDesc *fd,\n                           const
      SECKEYPublicKey *pubKey, const SECKEYPrivateKey *privKey,\n                           const
      PRUint8 *echConfigs, unsigned int echConfigsLen)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CONST_CAST
      Src: /src/nss/lib/ssl/tls13ech.c:714,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13ech.c:717,1
    - Dst: ssl_FindSocket
      Src: /src/nss/lib/ssl/tls13ech.c:721,1
    - Dst: SSL_DBG
      Src: /src/nss/lib/ssl/tls13ech.c:723,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13ech.c:724,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13ech.c:725,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/tls13ech.c:729,1
    - Dst: SSLExp_RemoveEchConfigs
      Src: /src/nss/lib/ssl/tls13ech.c:734,1
    - Dst: tls13_DecodeEchConfigs
      Src: /src/nss/lib/ssl/tls13ech.c:739,1
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/lib/ssl/tls13ech.c:743,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13ech.c:744,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - fd
    - echConfigs
    - echConfigsLen
    argTypes:
    - PRFileDesc*
    - PRUint8*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 707
    functionDepth: 5
    functionLinenumber: 707
    functionLinenumberEnd: 749
    functionName: SSLExp_SetClientEchConfigs
    functionSourceFile: /src/nss/lib/ssl/tls13ech.c
    functionUses: 0
    functionsReached:
    - IS_DTLS
    - CONST_CAST
    - SSLExp_RemoveEchConfigs
    - tls13_DecodeEchConfigs
    - SSL_GETPID
    - PORT_SetError
    - SSL_DBG
    - ssl_FindSocket
    - PR_CLIST_IS_EMPTY
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SSLExp_SetClientEchConfigs(PRFileDesc *fd,\n                           const
      PRUint8 *echConfigs,\n                           unsigned int echConfigsLen)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/lib/ssl/tls13ech.c:762,1
    - Dst: ssl_ShouldSendSNIExtension
      Src: /src/nss/lib/ssl/tls13ech.c:763,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/tls13ech.c:764,1
    - Dst: PR_LIST_HEAD
      Src: /src/nss/lib/ssl/tls13ech.c:771,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13ech.c:773,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13ech.c:774,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13ech.c:778,1
    - Dst: PK11_HPKE_NewContext
      Src: /src/nss/lib/ssl/tls13ech.c:779,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13ech.c:784,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13ech.c:790,1
    - Dst: PK11_HPKE_Deserialize
      Src: /src/nss/lib/ssl/tls13ech.c:797,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/ssl/tls13ech.c:802,1
    - Dst: strlen
      Src: /src/nss/lib/ssl/tls13ech.c:802,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/tls13ech.c:805,1
    - Dst: strlen
      Src: /src/nss/lib/ssl/tls13ech.c:805,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/ssl/tls13ech.c:806,1
    - Dst: strlen
      Src: /src/nss/lib/ssl/tls13ech.c:806,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/tls13ech.c:807,1
    - Dst: strlen
      Src: /src/nss/lib/ssl/tls13ech.c:807,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/tls13ech.c:809,1
    - Dst: PK11_HPKE_SetupS
      Src: /src/nss/lib/ssl/tls13ech.c:812,1
    - Dst: ssl3_GetNewRandom
      Src: /src/nss/lib/ssl/tls13ech.c:817,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/ssl/tls13ech.c:824,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/ssl/tls13ech.c:830,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/tls13ech.c:831,1
    - Dst: PK11_HPKE_DestroyContext
      Src: /src/nss/lib/ssl/tls13ech.c:835,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/ssl/tls13ech.c:836,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/tls13ech.c:837,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13ech.c:838,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/tls13ech.c:838,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 65
    argCount: 2
    argNames:
    - ss
    - type
    argTypes:
    - sslSocket*
    - sslClientHelloType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 753
    functionDepth: 11
    functionLinenumber: 753
    functionLinenumberEnd: 840
    functionName: tls13_ClientSetupEch
    functionSourceFile: /src/nss/lib/ssl/tls13ech.c
    functionUses: 1
    functionsReached:
    - ssl_ShouldSendSNIExtension
    - PK11_HPKE_SetupS
    - strlen
    - SECKEY_DestroyPublicKey
    - PORT_Memcpy
    - PK11_HPKE_DestroyContext
    - PK11_HPKE_NewContext
    - FATAL_ERROR
    - PR_CLIST_IS_EMPTY
    - SECITEM_FreeItem
    - IS_DTLS
    - PORT_Assert
    - ssl3_GetNewRandom
    - PRINT_BUF
    - SECITEM_AllocItem
    - PR_LIST_HEAD
    - SSL_TRC
    - SSL_GETPID
    - PORT_GetError
    - PK11_HPKE_Deserialize
    - PORT_Memset
    - PORT_Strdup
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_ClientSetupEch(sslSocket *ss, sslClientHelloType type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/tls13ech.c:856,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/tls13ech.c:857,1
    - Dst: PK11_HPKE_Seal
      Src: /src/nss/lib/ssl/tls13ech.c:860,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/tls13ech.c:864,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/ssl/tls13ech.c:867,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/tls13ech.c:871,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/tls13ech.c:880,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/tls13ech.c:881,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/tls13ech.c:884,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/tls13ech.c:885,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/tls13ech.c:889,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 4
    argNames:
    - ss
    - aadItem
    - chInner
    - echPayload
    argTypes:
    - sslSocket*
    - SECItem*
    - sslBuffer*
    - PRUint8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 849
    functionDepth: 2
    functionLinenumber: 849
    functionLinenumberEnd: 891
    functionName: tls13_EncryptClientHello
    functionSourceFile: /src/nss/lib/ssl/tls13ech.c
    functionUses: 0
    functionsReached:
    - PORT_Memcpy
    - PRINT_BUF
    - PR_ASSERT
    - SECITEM_AllocItem
    - PK11_HPKE_Seal
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_EncryptClientHello(sslSocket *ss, SECItem *aadItem,
      const sslBuffer *chInner, PRUint8 *echPayload)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13ech.c:897,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13ech.c:898,1
    - Dst: PR_LIST_HEAD
      Src: /src/nss/lib/ssl/tls13ech.c:901,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/tls13ech.c:903,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 6
    argNames:
    - ss
    - kdf
    - aead
    - configId
    - cur
    - next
    argTypes:
    - sslSocket*
    - HpkeKdfId
    - HpkeAeadId
    - PRUint8
    - sslEchConfig*
    - sslEchConfig**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 893
    functionDepth: 1
    functionLinenumber: 893
    functionLinenumberEnd: 915
    functionName: tls13_GetMatchingEchConfigs
    functionSourceFile: /src/nss/lib/ssl/tls13ech.c
    functionUses: 0
    functionsReached:
    - PR_LIST_HEAD
    - SSL_TRC
    - SSL_GETPID
    - PR_NEXT_LINK
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_GetMatchingEchConfigs(const sslSocket *ss, HpkeKdfId
      kdf, HpkeAeadId aead,\n                            const PRUint8 configId, const
      sslEchConfig *cur, sslEchConfig **next)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: sslRead_Read
      Src: /src/nss/lib/ssl/tls13ech.c:928,1
    - Dst: sslBuffer_Append
      Src: /src/nss/lib/ssl/tls13ech.c:932,1
    - Dst: sslRead_ReadVariable
      Src: /src/nss/lib/ssl/tls13ech.c:938,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13ech.c:945,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/tls13ech.c:948,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/tls13ech.c:950,1
    - Dst: sslRead_ReadVariable
      Src: /src/nss/lib/ssl/tls13ech.c:957,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/tls13ech.c:961,1
    - Dst: sslRead_ReadVariable
      Src: /src/nss/lib/ssl/tls13ech.c:967,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/tls13ech.c:971,1
    - Dst: sslRead_ReadVariable
      Src: /src/nss/lib/ssl/tls13ech.c:977,1
    - Dst: sslRead_Read
      Src: /src/nss/lib/ssl/tls13ech.c:984,1
    - Dst: SSL_READER_REMAINING
      Src: /src/nss/lib/ssl/tls13ech.c:984,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13ech.c:993,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13ech.c:993,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13ech.c:994,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 58
    argCount: 5
    argNames:
    - ss
    - reader
    - explicitSid
    - writer
    - extensions
    argTypes:
    - sslSocket*
    - sslReader*
    - SECItem*
    - sslBuffer*
    - sslReadBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 921
    functionDepth: 1
    functionLinenumber: 921
    functionLinenumberEnd: 998
    functionName: tls13_CopyChPreamble
    functionSourceFile: /src/nss/lib/ssl/tls13ech.c
    functionUses: 0
    functionsReached:
    - sslRead_ReadVariable
    - SSL_TRC
    - SSL_GETPID
    - sslBuffer_AppendVariable
    - PORT_SetError
    - FATAL_ERROR
    - sslRead_Read
    - SSL_READER_REMAINING
    - sslBuffer_Append
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_CopyChPreamble(sslSocket *ss, sslReader *reader, const
      SECItem *explicitSid, sslBuffer *writer, sslReadBuffer *extensions)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13ech.c:1015,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13ech.c:1016,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13ech.c:1017,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13ech.c:1018,1
    - Dst: SSL_READER
      Src: /src/nss/lib/ssl/tls13ech.c:1022,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/tls13ech.c:1024,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/tls13ech.c:1025,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/tls13ech.c:1026,1
    - Dst: sslBuffer_Append
      Src: /src/nss/lib/ssl/tls13ech.c:1029,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/ssl/tls13ech.c:1033,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/tls13ech.c:1035,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/tls13ech.c:1042,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 4
    argNames:
    - ss
    - outerCh
    - outerChLen
    - outerAAD
    argTypes:
    - sslSocket*
    - PRUint8*
    - unsigned int
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1007
    functionDepth: 1
    functionLinenumber: 1007
    functionLinenumberEnd: 1044
    functionName: tls13_ServerMakeChOuterAAD
    functionSourceFile: /src/nss/lib/ssl/tls13ech.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - sslBuffer_Clear
    - PRINT_BUF
    - PR_ASSERT
    - sslRead_ReadNumber
    - SSL_READER
    - PORT_Memset
    - sslBuffer_Append
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_ServerMakeChOuterAAD(sslSocket *ss, const PRUint8 *outerCh,
      unsigned int outerChLen, SECItem *outerAAD)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13ech.c:1053,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13ech.c:1053,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13ech.c:1057,1
    - Dst: PK11_HPKE_NewContext
      Src: /src/nss/lib/ssl/tls13ech.c:1058,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/ssl/tls13ech.c:1064,1
    - Dst: strlen
      Src: /src/nss/lib/ssl/tls13ech.c:1064,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/tls13ech.c:1067,1
    - Dst: strlen
      Src: /src/nss/lib/ssl/tls13ech.c:1067,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/ssl/tls13ech.c:1068,1
    - Dst: strlen
      Src: /src/nss/lib/ssl/tls13ech.c:1068,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/tls13ech.c:1069,1
    - Dst: strlen
      Src: /src/nss/lib/ssl/tls13ech.c:1069,1
    - Dst: PK11_HPKE_SetupR
      Src: /src/nss/lib/ssl/tls13ech.c:1071,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13ech.c:1077,1
    - Dst: PK11_HPKE_Open
      Src: /src/nss/lib/ssl/tls13ech.c:1082,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13ech.c:1084,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13ech.c:1085,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/ssl/tls13ech.c:1089,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/tls13ech.c:1099,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/tls13ech.c:1100,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/tls13ech.c:1104,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/tls13ech.c:1105,1
    - Dst: PK11_HPKE_DestroyContext
      Src: /src/nss/lib/ssl/tls13ech.c:1108,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 50
    argCount: 5
    argNames:
    - ss
    - outer
    - outerAAD
    - cfg
    - chInner
    argTypes:
    - sslSocket*
    - SECItem*
    - SECItem*
    - sslEchConfig*
    - SECItem**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1046
    functionDepth: 11
    functionLinenumber: 1046
    functionLinenumberEnd: 1111
    functionName: tls13_OpenClientHelloInner
    functionSourceFile: /src/nss/lib/ssl/tls13ech.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_Memcpy
    - PK11_HPKE_Open
    - PK11_HPKE_DestroyContext
    - SSL_TRC
    - SSL_GETPID
    - PRINT_BUF
    - PK11_HPKE_NewContext
    - SECITEM_AllocItem
    - SECITEM_CopyItem
    - PK11_HPKE_SetupR
    - PORT_Memset
    - SECITEM_FreeItem
    - strlen
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_OpenClientHelloInner(sslSocket *ss, const SECItem *outer,
      const SECItem *outerAAD, sslEchConfig *cfg, SECItem **chInner)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/tls13ech.c:1120,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13ech.c:1121,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13ech.c:1125,1
    - Dst: sslBuffer_AppendBufferVariable
      Src: /src/nss/lib/ssl/tls13ech.c:1129,1
    - Dst: sslBuffer_AppendBuffer
      Src: /src/nss/lib/ssl/tls13ech.c:1135,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/tls13ech.c:1140,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - compressing
    - dupXtns
    - chInnerXtns
    argTypes:
    - PRBool
    - sslBuffer*
    - sslBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1142
      start: 1116
    functionDepth: 1
    functionLinenumber: 1116
    functionLinenumberEnd: 1142
    functionName: tls13_WriteDupXtnsToChInner
    functionSourceFile: /src/nss/lib/ssl/tls13ech.c
    functionUses: 0
    functionsReached:
    - sslBuffer_AppendBufferVariable
    - SSL_BUFFER_LEN
    - sslBuffer_AppendBuffer
    - sslBuffer_AppendNumber
    - sslBuffer_Clear
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_WriteDupXtnsToChInner(PRBool compressing, sslBuffer
      *dupXtns, sslBuffer *chInnerXtns)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13ech.c:1169,1
    - Dst: ssl_FindCustomExtensionHooks
      Src: /src/nss/lib/ssl/tls13ech.c:1171,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13ech.c:1175,1
    - Dst: NSS_SecureMemcmp
      Src: /src/nss/lib/ssl/tls13ech.c:1193,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13ech.c:1204,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/tls13ech.c:1209,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13ech.c:1217,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 8
    argNames:
    - ss
    - extensionType
    - extensionData
    - dupXtns
    - chInnerXtns
    - compressing
    - called
    - nCalled
    argTypes:
    - sslSocket*
    - PRUint16
    - sslReadBuffer*
    - sslBuffer*
    - sslBuffer*
    - PRBool
    - PRUint16*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1220
      start: 1157
    functionDepth: 2
    functionLinenumber: 1157
    functionLinenumberEnd: 1220
    functionName: tls13_ChInnerAppendExtension
    functionSourceFile: /src/nss/lib/ssl/tls13ech.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SSL_TRC
    - sslBuffer_AppendVariable
    - sslBuffer_AppendNumber
    - NSS_SecureMemcmp
    - PORT_SetError
    - ssl_FindCustomExtensionHooks
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_ChInnerAppendExtension(sslSocket *ss, PRUint16 extensionType,\n
      \                            const sslReadBuffer *extensionData,\n                             sslBuffer
      *dupXtns, sslBuffer *chInnerXtns,\n                             PRBool compressing,\n
      \                            PRUint16 *called, unsigned int *nCalled)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/tls13ech.c:1231,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/tls13ech.c:1233,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13ech.c:1257,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/tls13ech.c:1261,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 4
    argNames:
    - ss
    - called
    - nCalled
    - chInnerXtns
    argTypes:
    - sslSocket*
    - PRUint16*
    - unsigned int
    - sslBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1268
      start: 1223
    functionDepth: 1
    functionLinenumber: 1223
    functionLinenumberEnd: 1268
    functionName: tls13_ChInnerAdditionalExtensionWriters
    functionSourceFile: /src/nss/lib/ssl/tls13ech.c
    functionUses: 0
    functionsReached:
    - PR_NEXT_LINK
    - sslBuffer_AppendVariable
    - sslBuffer_AppendNumber
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_ChInnerAdditionalExtensionWriters(sslSocket *ss, const
      PRUint16 *called,\n                                        unsigned int nCalled,
      sslBuffer *chInnerXtns)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SSL_READER
      Src: /src/nss/lib/ssl/tls13ech.c:1274,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/tls13ech.c:1278,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13ech.c:1282,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/tls13ech.c:1286,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13ech.c:1291,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/lib/ssl/tls13ech.c:1294,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/tls13ech.c:1301,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13ech.c:1305,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/tls13ech.c:1308,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13ech.c:1313,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/lib/ssl/tls13ech.c:1316,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - PRUint8*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1322
      start: 1271
    functionDepth: 9
    functionLinenumber: 1271
    functionLinenumberEnd: 1322
    functionName: tls13_RandomizePsk
    functionSourceFile: /src/nss/lib/ssl/tls13ech.c
    functionUses: 0
    functionsReached:
    - PK11_GenerateRandom
    - PORT_Assert
    - sslRead_ReadNumber
    - SSL_READER
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_RandomizePsk(PRUint8 *buf, unsigned int len)
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13ech.c:1361,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13ech.c:1362,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13ech.c:1367,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13ech.c:1371,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13ech.c:1375,1
    - Dst: SSL_READER
      Src: /src/nss/lib/ssl/tls13ech.c:1380,1
    - Dst: SSL_READER_REMAINING
      Src: /src/nss/lib/ssl/tls13ech.c:1381,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/tls13ech.c:1383,1
    - Dst: sslRead_ReadVariable
      Src: /src/nss/lib/ssl/tls13ech.c:1389,1
    - Dst: SSLExp_GetExtensionSupport
      Src: /src/nss/lib/ssl/tls13ech.c:1399,1
    - Dst: tls13_ExtensionStatus
      Src: /src/nss/lib/ssl/tls13ech.c:1401,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13ech.c:1408,1
    - Dst: sslBuffer_Skip
      Src: /src/nss/lib/ssl/tls13ech.c:1412,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/tls13ech.c:1416,1
    - Dst: ssl3_ClientFormatServerNameXtn
      Src: /src/nss/lib/ssl/tls13ech.c:1417,1
    - Dst: strlen
      Src: /src/nss/lib/ssl/tls13ech.c:1418,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/tls13ech.c:1423,1
    - Dst: sslBuffer_InsertNumber
      Src: /src/nss/lib/ssl/tls13ech.c:1424,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13ech.c:1435,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13ech.c:1441,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13ech.c:1446,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13ech.c:1451,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13ech.c:1457,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13ech.c:1469,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/tls13ech.c:1473,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13ech.c:1479,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13ech.c:1480,1
    - Dst: tls13_RandomizePsk
      Src: /src/nss/lib/ssl/tls13ech.c:1481,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13ech.c:1489,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/tls13ech.c:1493,1
    - Dst: tls13_ChInnerAppendExtension
      Src: /src/nss/lib/ssl/tls13ech.c:1506,1
    - Dst: tls13_WriteDupXtnsToChInner
      Src: /src/nss/lib/ssl/tls13ech.c:1519,1
    - Dst: tls13_ChInnerAdditionalExtensionWriters
      Src: /src/nss/lib/ssl/tls13ech.c:1526,1
    - Dst: sslBuffer_AppendBuffer
      Src: /src/nss/lib/ssl/tls13ech.c:1536,1
    - Dst: sslBuffer_AppendBuffer
      Src: /src/nss/lib/ssl/tls13ech.c:1538,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/tls13ech.c:1549,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/tls13ech.c:1550,1
    CyclomaticComplexity: 64
    EdgeCount: 64
    ICount: 168
    argCount: 5
    argNames:
    - ss
    - chOuterXtnsBuf
    - chInnerXtns
    - inOutPskXtn
    - shouldCompress
    argTypes:
    - sslSocket*
    - sslBuffer*
    - sslBuffer*
    - sslBuffer*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1552
      start: 1344
    functionDepth: 10
    functionLinenumber: 1344
    functionLinenumberEnd: 1552
    functionName: tls13_ConstructInnerExtensionsFromOuter
    functionSourceFile: /src/nss/lib/ssl/tls13ech.c
    functionUses: 0
    functionsReached:
    - tls13_WriteDupXtnsToChInner
    - sslBuffer_Skip
    - SSL_READER_REMAINING
    - tls13_RandomizePsk
    - tls13_ExtensionStatus
    - strlen
    - SSL_BUFFER_LEN
    - ssl3_ClientFormatServerNameXtn
    - sslRead_ReadNumber
    - PORT_Assert
    - sslBuffer_InsertNumber
    - sslBuffer_AppendVariable
    - SSL_READER
    - tls13_ChInnerAppendExtension
    - sslBuffer_Clear
    - sslRead_ReadVariable
    - SSL_TRC
    - SSL_GETPID
    - sslBuffer_AppendBuffer
    - sslBuffer_AppendNumber
    - tls13_ChInnerAdditionalExtensionWriters
    - SSLExp_GetExtensionSupport
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_ConstructInnerExtensionsFromOuter(sslSocket *ss, sslBuffer
      *chOuterXtnsBuf,\n                                        sslBuffer *chInnerXtns,
      sslBuffer *inOutPskXtn,\n                                        PRBool shouldCompress)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13ech.c:1557,1
    - Dst: SSL_READER
      Src: /src/nss/lib/ssl/tls13ech.c:1560,1
    - Dst: sslRead_Read
      Src: /src/nss/lib/ssl/tls13ech.c:1562,1
    - Dst: sslRead_Read
      Src: /src/nss/lib/ssl/tls13ech.c:1567,1
    - Dst: sslBuffer_Append
      Src: /src/nss/lib/ssl/tls13ech.c:1571,1
    - Dst: sslRead_ReadVariable
      Src: /src/nss/lib/ssl/tls13ech.c:1577,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13ech.c:1581,1
    - Dst: sslRead_ReadVariable
      Src: /src/nss/lib/ssl/tls13ech.c:1587,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/tls13ech.c:1591,1
    - Dst: sslRead_ReadVariable
      Src: /src/nss/lib/ssl/tls13ech.c:1597,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/tls13ech.c:1601,1
    - Dst: sslBuffer_AppendBufferVariable
      Src: /src/nss/lib/ssl/tls13ech.c:1607,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/tls13ech.c:1614,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 57
    argCount: 4
    argNames:
    - ss
    - chInner
    - chInnerXtns
    - out
    argTypes:
    - sslSocket*
    - sslBuffer*
    - sslBuffer*
    - sslBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1616
      start: 1554
    functionDepth: 1
    functionLinenumber: 1554
    functionLinenumberEnd: 1616
    functionName: tls13_EncodeClientHelloInner
    functionSourceFile: /src/nss/lib/ssl/tls13ech.c
    functionUses: 0
    functionsReached:
    - sslBuffer_AppendBufferVariable
    - PORT_Assert
    - sslRead_ReadVariable
    - sslBuffer_AppendVariable
    - sslBuffer_AppendNumber
    - sslRead_Read
    - SSL_READER
    - sslBuffer_Clear
    - sslBuffer_Append
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_EncodeClientHelloInner(sslSocket *ss, const sslBuffer
      *chInner, const sslBuffer *chInnerXtns, sslBuffer *out)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13ech.c:1622,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13ech.c:1623,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/tls13ech.c:1629,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13ech.c:1631,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13ech.c:1632,1
    - Dst: sslBuffer_Append
      Src: /src/nss/lib/ssl/tls13ech.c:1633,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/tls13ech.c:1635,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - chInner
    - maxNameLen
    - serverNameLen
    argTypes:
    - sslBuffer*
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1639
      start: 1618
    functionDepth: 1
    functionLinenumber: 1618
    functionLinenumberEnd: 1639
    functionName: tls13_PadChInner
    functionSourceFile: /src/nss/lib/ssl/tls13ech.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SSL_BUFFER_LEN
    - SSL_TRC
    - sslBuffer_Clear
    - sslBuffer_Append
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_PadChInner(sslBuffer *chInner, uint8_t maxNameLen,
      uint8_t serverNameLen)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13ech.c:1667,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13ech.c:1671,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13ech.c:1675,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13ech.c:1680,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/tls13ech.c:1686,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13ech.c:1692,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13ech.c:1698,1
    - Dst: sslBuffer_Fill
      Src: /src/nss/lib/ssl/tls13ech.c:1703,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/tls13ech.c:1707,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/tls13ech.c:1710,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 52
    argCount: 5
    argNames:
    - cfg
    - hpkeEnc
    - payloadLen
    - payloadOffset
    - echXtn
    argTypes:
    - sslEchConfig*
    - SECItem*
    - unsigned int
    - PRUint16*
    - sslBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1712
      start: 1662
    functionDepth: 1
    functionLinenumber: 1662
    functionLinenumberEnd: 1712
    functionName: tls13_BuildEchXtn
    functionSourceFile: /src/nss/lib/ssl/tls13ech.c
    functionUses: 0
    functionsReached:
    - sslBuffer_Fill
    - PRINT_BUF
    - sslBuffer_AppendVariable
    - sslBuffer_AppendNumber
    - sslBuffer_Clear
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_BuildEchXtn(sslEchConfig *cfg, const SECItem *hpkeEnc,
      unsigned int payloadLen, PRUint16 *payloadOffset, sslBuffer *echXtn)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13ech.c:1726,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13ech.c:1726,1
    - Dst: tls13_ConstructInnerExtensionsFromOuter
      Src: /src/nss/lib/ssl/tls13ech.c:1730,1
    - Dst: ssl3_CreateClientHelloPreamble
      Src: /src/nss/lib/ssl/tls13ech.c:1736,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/tls13ech.c:1741,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13ech.c:1746,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/tls13ech.c:1746,1
    - Dst: sslBuffer_InsertNumber
      Src: /src/nss/lib/ssl/tls13ech.c:1747,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13ech.c:1754,1
    - Dst: ssl3_ExtensionAdvertised
      Src: /src/nss/lib/ssl/tls13ech.c:1754,1
    - Dst: tls13_WriteExtensionsWithBinder
      Src: /src/nss/lib/ssl/tls13ech.c:1755,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/tls13ech.c:1757,1
    - Dst: sslBuffer_AppendBufferVariable
      Src: /src/nss/lib/ssl/tls13ech.c:1759,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/tls13ech.c:1765,1
    - Dst: ssl3_UpdateHandshakeHashesInt
      Src: /src/nss/lib/ssl/tls13ech.c:1766,1
    - Dst: SSL_BUFFER_LEN
      Src: /src/nss/lib/ssl/tls13ech.c:1773,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/tls13ech.c:1774,1
    - Dst: tls13_ConstructInnerExtensionsFromOuter
      Src: /src/nss/lib/ssl/tls13ech.c:1775,1
    - Dst: tls13_EncodeClientHelloInner
      Src: /src/nss/lib/ssl/tls13ech.c:1781,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/tls13ech.c:1785,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13ech.c:1787,1
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/lib/ssl/tls13ech.c:1787,1
    - Dst: PR_LIST_HEAD
      Src: /src/nss/lib/ssl/tls13ech.c:1788,1
    - Dst: tls13_PadChInner
      Src: /src/nss/lib/ssl/tls13ech.c:1791,1
    - Dst: strlen
      Src: /src/nss/lib/ssl/tls13ech.c:1791,1
    - Dst: PK11_HPKE_GetEncapPubKey
      Src: /src/nss/lib/ssl/tls13ech.c:1800,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13ech.c:1802,1
    - Dst: tls13_BuildEchXtn
      Src: /src/nss/lib/ssl/tls13ech.c:1807,1
    - Dst: ssl3_EmplaceExtension
      Src: /src/nss/lib/ssl/tls13ech.c:1812,1
    - Dst: ssl_InsertPaddingExtension
      Src: /src/nss/lib/ssl/tls13ech.c:1819,1
    - Dst: ssl3_InsertChHeaderSize
      Src: /src/nss/lib/ssl/tls13ech.c:1825,1
    - Dst: sslBuffer_AppendBufferVariable
      Src: /src/nss/lib/ssl/tls13ech.c:1830,1
    - Dst: tls13_EncryptClientHello
      Src: /src/nss/lib/ssl/tls13ech.c:1840,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/tls13ech.c:1845,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/tls13ech.c:1846,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/tls13ech.c:1847,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/tls13ech.c:1848,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/tls13ech.c:1849,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/tls13ech.c:1850,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/tls13ech.c:1854,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/tls13ech.c:1855,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/tls13ech.c:1856,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/tls13ech.c:1857,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/tls13ech.c:1858,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13ech.c:1859,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/tls13ech.c:1859,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 110
    argCount: 5
    argNames:
    - ss
    - sid
    - freshSid
    - chOuter
    - chOuterXtnsBuf
    argTypes:
    - sslSocket*
    - sslSessionID*
    - PRBool
    - sslBuffer*
    - sslBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1861
      start: 1714
    functionDepth: 11
    functionLinenumber: 1714
    functionLinenumberEnd: 1861
    functionName: tls13_ConstructClientHelloWithEch
    functionSourceFile: /src/nss/lib/ssl/tls13ech.c
    functionUses: 1
    functionsReached:
    - ssl_InsertPaddingExtension
    - tls13_ConstructInnerExtensionsFromOuter
    - PK11_HPKE_GetEncapPubKey
    - strlen
    - sslBuffer_AppendBufferVariable
    - SSL_BUFFER_LEN
    - PORT_Memcpy
    - ssl3_EmplaceExtension
    - tls13_WriteExtensionsWithBinder
    - tls13_EncryptClientHello
    - ssl3_ExtensionAdvertised
    - FATAL_ERROR
    - ssl3_CreateClientHelloPreamble
    - PR_CLIST_IS_EMPTY
    - IS_DTLS
    - PORT_Assert
    - sslBuffer_InsertNumber
    - PRINT_BUF
    - ssl3_UpdateHandshakeHashesInt
    - tls13_PadChInner
    - sslBuffer_Clear
    - tls13_EncodeClientHelloInner
    - SSL_TRC
    - SSL_GETPID
    - PORT_GetError
    - PR_LIST_HEAD
    - tls13_BuildEchXtn
    - ssl3_InsertChHeaderSize
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_ConstructClientHelloWithEch(sslSocket *ss, const sslSessionID
      *sid, PRBool freshSid,\n                                  sslBuffer *chOuter,
      sslBuffer *chOuterXtnsBuf)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: tls13_ComputeHash
      Src: /src/nss/lib/ssl/tls13ech.c:1892,1
    - Dst: tls13_GetHash
      Src: /src/nss/lib/ssl/tls13ech.c:1892,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13ech.c:1896,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13ech.c:1900,1
    - Dst: sslBuffer_Append
      Src: /src/nss/lib/ssl/tls13ech.c:1904,1
    - Dst: sslBuffer_AppendBuffer
      Src: /src/nss/lib/ssl/tls13ech.c:1909,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/tls13ech.c:1915,1
    - Dst: tls13_GetHashSize
      Src: /src/nss/lib/ssl/tls13ech.c:1915,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/tls13ech.c:1916,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13ech.c:1918,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13ech.c:1923,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13ech.c:1931,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13ech.c:1941,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13ech.c:1942,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/tls13ech.c:1945,1
    - Dst: tls13_Debug_CheckXtnBegins
      Src: /src/nss/lib/ssl/tls13ech.c:1945,1
    - Dst: sslBuffer_Append
      Src: /src/nss/lib/ssl/tls13ech.c:1947,1
    - Dst: sslBuffer_Append
      Src: /src/nss/lib/ssl/tls13ech.c:1951,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/tls13ech.c:1955,1
    - Dst: sslBuffer_Append
      Src: /src/nss/lib/ssl/tls13ech.c:1957,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/tls13ech.c:1961,1
    - Dst: tls13_GetHashSize
      Src: /src/nss/lib/ssl/tls13ech.c:1961,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/tls13ech.c:1964,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 77
    argCount: 4
    argNames:
    - ss
    - sh
    - shLen
    - out
    argTypes:
    - sslSocket*
    - PRUint8*
    - unsigned int
    - sslBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1966
      start: 1863
    functionDepth: 11
    functionLinenumber: 1863
    functionLinenumberEnd: 1966
    functionName: tls13_ComputeEchHelloRetryTranscript
    functionSourceFile: /src/nss/lib/ssl/tls13ech.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - tls13_Debug_CheckXtnBegins
    - PRINT_BUF
    - sslBuffer_AppendBuffer
    - tls13_ComputeHash
    - sslBuffer_AppendNumber
    - PR_ASSERT
    - tls13_GetHashSize
    - sslBuffer_Clear
    - tls13_GetHash
    - sslBuffer_Append
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_ComputeEchHelloRetryTranscript(sslSocket *ss, const
      PRUint8 *sh, unsigned int shLen, sslBuffer *out)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13ech.c:1975,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13ech.c:1976,1
    - Dst: sslBuffer_AppendBuffer
      Src: /src/nss/lib/ssl/tls13ech.c:1980,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13ech.c:1986,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13ech.c:1991,1
    - Dst: sslBuffer_Append
      Src: /src/nss/lib/ssl/tls13ech.c:1997,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13ech.c:2003,1
    - Dst: sslBuffer_Append
      Src: /src/nss/lib/ssl/tls13ech.c:2010,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/tls13ech.c:2014,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/tls13ech.c:2015,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/tls13ech.c:2018,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/tls13ech.c:2019,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/tls13ech.c:2020,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 4
    argNames:
    - ss
    - sh
    - shLen
    - out
    argTypes:
    - sslSocket*
    - PRUint8*
    - unsigned int
    - sslBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2022
      start: 1968
    functionDepth: 1
    functionLinenumber: 1968
    functionLinenumberEnd: 2022
    functionName: tls13_ComputeEchServerHelloTranscript
    functionSourceFile: /src/nss/lib/ssl/tls13ech.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - sslBuffer_AppendBuffer
    - sslBuffer_AppendNumber
    - sslBuffer_Clear
    - sslBuffer_Append
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_ComputeEchServerHelloTranscript(sslSocket *ss, const
      PRUint8 *sh, unsigned int shLen, sslBuffer *out)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nss/lib/ssl/tls13ech.c:2037,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/tls13ech.c:2039,1
    - Dst: tls13_ComputeEchHelloRetryTranscript
      Src: /src/nss/lib/ssl/tls13ech.c:2042,1
    - Dst: tls13_ComputeEchServerHelloTranscript
      Src: /src/nss/lib/ssl/tls13ech.c:2044,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/tls13ech.c:2049,1
    - Dst: tls13_ComputeHash
      Src: /src/nss/lib/ssl/tls13ech.c:2050,1
    - Dst: tls13_GetHash
      Src: /src/nss/lib/ssl/tls13ech.c:2051,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/tls13ech.c:2055,1
    - Dst: tls13_DeriveEchSecret
      Src: /src/nss/lib/ssl/tls13ech.c:2056,1
    - Dst: tls13_HkdfExpandLabelRaw
      Src: /src/nss/lib/ssl/tls13ech.c:2060,1
    - Dst: tls13_GetHash
      Src: /src/nss/lib/ssl/tls13ech.c:2060,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13ech.c:2066,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13ech.c:2066,1
    - Dst: SSL_ROLE
      Src: /src/nss/lib/ssl/tls13ech.c:2066,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/tls13ech.c:2067,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/tls13ech.c:2068,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/tls13ech.c:2069,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/tls13ech.c:2073,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/tls13ech.c:2074,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 5
    argNames:
    - ss
    - isHrr
    - sh
    - shLen
    - out
    argTypes:
    - sslSocket*
    - PRBool
    - PRUint8*
    - unsigned int
    - PRUint8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2076
      start: 2028
    functionDepth: 12
    functionLinenumber: 2028
    functionLinenumberEnd: 2076
    functionName: tls13_ComputeEchSignal
    functionSourceFile: /src/nss/lib/ssl/tls13ech.c
    functionUses: 0
    functionsReached:
    - tls13_ComputeEchServerHelloTranscript
    - SSL_ROLE
    - tls13_ComputeEchHelloRetryTranscript
    - SSL_TRC
    - SSL_GETPID
    - PRINT_BUF
    - tls13_ComputeHash
    - tls13_DeriveEchSecret
    - sslBuffer_Clear
    - PK11_FreeSymKey
    - tls13_GetHash
    - tls13_HkdfExpandLabelRaw
    - strlen
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_ComputeEchSignal(sslSocket *ss, PRBool isHrr, const
      PRUint8 *sh, unsigned int shLen, PRUint8 *out)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/tls13ech.c:2088,1
    - Dst: SECITEM_MakeItem
      Src: /src/nss/lib/ssl/tls13ech.c:2090,1
    - Dst: PK11_GetBestSlot
      Src: /src/nss/lib/ssl/tls13ech.c:2095,1
    - Dst: PK11_ImportDataKey
      Src: /src/nss/lib/ssl/tls13ech.c:2101,1
    - Dst: tls13_HkdfExtract
      Src: /src/nss/lib/ssl/tls13ech.c:2108,1
    - Dst: tls13_GetHash
      Src: /src/nss/lib/ssl/tls13ech.c:2108,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13ech.c:2112,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13ech.c:2113,1
    - Dst: PRINT_KEY
      Src: /src/nss/lib/ssl/tls13ech.c:2114,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/ssl/tls13ech.c:2116,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/ssl/tls13ech.c:2118,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/tls13ech.c:2121,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/tls13ech.c:2124,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 2
    argNames:
    - ss
    - output
    argTypes:
    - sslSocket*
    - PK11SymKey**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2128
      start: 2080
    functionDepth: 11
    functionLinenumber: 2080
    functionLinenumberEnd: 2128
    functionName: tls13_DeriveEchSecret
    functionSourceFile: /src/nss/lib/ssl/tls13ech.c
    functionUses: 1
    functionsReached:
    - tls13_HkdfExtract
    - PRINT_KEY
    - SSL_TRC
    - PK11_GetBestSlot
    - SSL_GETPID
    - PRINT_BUF
    - PK11_ImportDataKey
    - SECITEM_MakeItem
    - PK11_FreeSymKey
    - tls13_GetHash
    - PK11_FreeSlot
    - SECITEM_ZfreeItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_DeriveEchSecret(const sslSocket *ss, PK11SymKey **output)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/tls13ech.c:2148,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/tls13ech.c:2156,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/tls13ech.c:2161,1
    - Dst: ssl3_EmplaceExtension
      Src: /src/nss/lib/ssl/tls13ech.c:2166,1
    - Dst: tls13_ConstructInnerExtensionsFromOuter
      Src: /src/nss/lib/ssl/tls13ech.c:2172,1
    - Dst: tls13_EncodeClientHelloInner
      Src: /src/nss/lib/ssl/tls13ech.c:2177,1
    - Dst: tls13_PadChInner
      Src: /src/nss/lib/ssl/tls13ech.c:2181,1
    - Dst: strlen
      Src: /src/nss/lib/ssl/tls13ech.c:2181,1
    - Dst: PK11_GetBestSlot
      Src: /src/nss/lib/ssl/tls13ech.c:2190,1
    - Dst: PK11_KeyGen
      Src: /src/nss/lib/ssl/tls13ech.c:2195,1
    - Dst: PK11_DeriveWithFlags
      Src: /src/nss/lib/ssl/tls13ech.c:2207,1
    - Dst: PK11_ExtractKeyValue
      Src: /src/nss/lib/ssl/tls13ech.c:2215,1
    - Dst: PK11_GetKeyData
      Src: /src/nss/lib/ssl/tls13ech.c:2220,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13ech.c:2224,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13ech.c:2233,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13ech.c:2238,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13ech.c:2245,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13ech.c:2251,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/tls13ech.c:2257,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/tls13ech.c:2262,1
    - Dst: ssl3_EmplaceExtension
      Src: /src/nss/lib/ssl/tls13ech.c:2269,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13ech.c:2276,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/tls13ech.c:2279,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/tls13ech.c:2280,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/tls13ech.c:2281,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/tls13ech.c:2282,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/ssl/tls13ech.c:2283,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/tls13ech.c:2287,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/tls13ech.c:2288,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/tls13ech.c:2289,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/ssl/tls13ech.c:2290,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/ssl/tls13ech.c:2292,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 118
    argCount: 3
    argNames:
    - ss
    - preamble
    - buf
    argTypes:
    - sslSocket*
    - sslBuffer*
    - sslBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2295
      start: 2132
    functionDepth: 11
    functionLinenumber: 2132
    functionLinenumberEnd: 2295
    functionName: tls13_MaybeGreaseEch
    functionSourceFile: /src/nss/lib/ssl/tls13ech.c
    functionUses: 1
    functionsReached:
    - IS_DTLS
    - PORT_Assert
    - tls13_EncodeClientHelloInner
    - tls13_ConstructInnerExtensionsFromOuter
    - ssl3_EmplaceExtension
    - PK11_GetBestSlot
    - PK11_DeriveWithFlags
    - sslBuffer_AppendVariable
    - PR_ASSERT
    - sslBuffer_AppendNumber
    - PK11_ExtractKeyValue
    - tls13_PadChInner
    - PK11_GetKeyData
    - PK11_KeyGen
    - sslBuffer_Clear
    - PK11_FreeSymKey
    - PK11_FreeSlot
    - strlen
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_MaybeGreaseEch(sslSocket *ss, const sslBuffer *preamble,
      sslBuffer *buf)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13ech.c:2307,1
    - Dst: ssl3_FindExtension
      Src: /src/nss/lib/ssl/tls13ech.c:2313,1
    - Dst: tls13_ServerHandleOuterEchXtn
      Src: /src/nss/lib/ssl/tls13ech.c:2315,1
    - Dst: tls13_MaybeAcceptEch
      Src: /src/nss/lib/ssl/tls13ech.c:2319,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13ech.c:2327,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13ech.c:2328,1
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/lib/ssl/tls13ech.c:2328,1
    - Dst: ssl3_HandleClientHelloPreamble
      Src: /src/nss/lib/ssl/tls13ech.c:2333,1
    - Dst: ssl3_FindExtension
      Src: /src/nss/lib/ssl/tls13ech.c:2339,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13ech.c:2341,1
    - Dst: tls13_NegotiateVersion
      Src: /src/nss/lib/ssl/tls13ech.c:2344,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/tls13ech.c:2359,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13ech.c:2360,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/ssl/tls13ech.c:2360,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 49
    argCount: 8
    argNames:
    - ss
    - msg
    - msgLen
    - sidBytes
    - comps
    - cookieBytes
    - suites
    - echInner
    argTypes:
    - sslSocket*
    - PRUint8*
    - PRUint32
    - SECItem*
    - SECItem*
    - SECItem*
    - SECItem*
    - SECItem**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2362
      start: 2297
    functionDepth: 22
    functionLinenumber: 2297
    functionLinenumberEnd: 2362
    functionName: tls13_MaybeHandleEch
    functionSourceFile: /src/nss/lib/ssl/tls13ech.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - tls13_ServerHandleOuterEchXtn
    - ssl3_HandleClientHelloPreamble
    - PORT_GetError
    - FATAL_ERROR
    - tls13_NegotiateVersion
    - ssl3_FindExtension
    - SECITEM_FreeItem
    - PR_CLIST_IS_EMPTY
    - tls13_MaybeAcceptEch
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_MaybeHandleEch(sslSocket *ss, const PRUint8 *msg,
      PRUint32 msgLen, SECItem *sidBytes,\n                     SECItem *comps, SECItem
      *cookieBytes, SECItem *suites, SECItem **echInner)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13ech.c:2370,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13ech.c:2374,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13ech.c:2375,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13ech.c:2380,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/tls13ech.c:2380,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13ech.c:2386,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13ech.c:2387,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13ech.c:2396,1
    - Dst: ssl3_ExtensionAdvertised
      Src: /src/nss/lib/ssl/tls13ech.c:2396,1
    - Dst: tls13_ComputeEchSignal
      Src: /src/nss/lib/ssl/tls13ech.c:2400,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/tls13ech.c:2404,1
    - Dst: NSS_SecureMemcmp
      Src: /src/nss/lib/ssl/tls13ech.c:2405,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13ech.c:2408,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13ech.c:2418,1
    - Dst: SSL3_SendAlert
      Src: /src/nss/lib/ssl/tls13ech.c:2423,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13ech.c:2424,1
    - Dst: ssl3_ExtSendAlert
      Src: /src/nss/lib/ssl/tls13ech.c:2441,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/tls13ech.c:2442,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/tls13ech.c:2450,1
    - Dst: ssl3_CoalesceEchHandshakeHashes
      Src: /src/nss/lib/ssl/tls13ech.c:2454,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13ech.c:2455,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13ech.c:2456,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 62
    argCount: 4
    argNames:
    - ss
    - sh
    - shLen
    - isHrr
    argTypes:
    - sslSocket*
    - PRUint8*
    - PRUint32
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2458
      start: 2364
    functionDepth: 17
    functionLinenumber: 2364
    functionLinenumberEnd: 2458
    functionName: tls13_MaybeHandleEchSignal
    functionSourceFile: /src/nss/lib/ssl/tls13ech.c
    functionUses: 2
    functionsReached:
    - IS_DTLS
    - PORT_Assert
    - SSL3_SendAlert
    - PORT_Memcpy
    - ssl3_CoalesceEchHandshakeHashes
    - SSL_TRC
    - tls13_ComputeEchSignal
    - SSL_GETPID
    - PRINT_BUF
    - ssl3_ExtensionAdvertised
    - NSS_SecureMemcmp
    - FATAL_ERROR
    - PORT_SetError
    - ssl3_ExtSendAlert
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_MaybeHandleEchSignal(sslSocket *ss, const PRUint8 *sh,
      PRUint32 shLen, PRBool isHrr)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: SSL_READER
      Src: /src/nss/lib/ssl/tls13ech.c:2474,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13ech.c:2475,1
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/lib/ssl/tls13ech.c:2475,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13ech.c:2476,1
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/lib/ssl/tls13ech.c:2476,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/tls13ech.c:2481,1
    - Dst: tls13_CopyChPreamble
      Src: /src/nss/lib/ssl/tls13ech.c:2484,1
    - Dst: CONST_CAST
      Src: /src/nss/lib/ssl/tls13ech.c:2490,1
    - Dst: ssl3_ParseExtensions
      Src: /src/nss/lib/ssl/tls13ech.c:2491,1
    - Dst: ssl3_FindExtension
      Src: /src/nss/lib/ssl/tls13ech.c:2496,1
    - Dst: tls13_ServerHandleInnerEchXtn
      Src: /src/nss/lib/ssl/tls13ech.c:2502,1
    - Dst: ssl3_FindExtension
      Src: /src/nss/lib/ssl/tls13ech.c:2508,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/tls13ech.c:2509,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/tls13ech.c:2513,1
    - Dst: sslBuffer_Skip
      Src: /src/nss/lib/ssl/tls13ech.c:2518,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/tls13ech.c:2527,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/tls13ech.c:2529,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13ech.c:2532,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13ech.c:2532,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13ech.c:2534,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/tls13ech.c:2539,1
    - Dst: SSL_READER
      Src: /src/nss/lib/ssl/tls13ech.c:2549,1
    - Dst: sslRead_ReadVariable
      Src: /src/nss/lib/ssl/tls13ech.c:2551,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13ech.c:2553,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13ech.c:2554,1
    - Dst: SSL_READER_REMAINING
      Src: /src/nss/lib/ssl/tls13ech.c:2559,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13ech.c:2560,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13ech.c:2561,1
    - Dst: SSL_READER
      Src: /src/nss/lib/ssl/tls13ech.c:2568,1
    - Dst: SSL_READER_REMAINING
      Src: /src/nss/lib/ssl/tls13ech.c:2569,1
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/tls13ech.c:2571,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13ech.c:2573,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13ech.c:2574,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13ech.c:2581,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13ech.c:2582,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/lib/ssl/tls13ech.c:2590,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13ech.c:2593,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13ech.c:2594,1
    - Dst: sslBuffer_AppendNumber
      Src: /src/nss/lib/ssl/tls13ech.c:2595,1
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/tls13ech.c:2600,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13ech.c:2610,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13ech.c:2612,1
    - Dst: ssl3_DestroyRemoteExtensions
      Src: /src/nss/lib/ssl/tls13ech.c:2619,1
    - Dst: ssl3_DestroyRemoteExtensions
      Src: /src/nss/lib/ssl/tls13ech.c:2620,1
    - Dst: sslBuffer_InsertNumber
      Src: /src/nss/lib/ssl/tls13ech.c:2623,1
    - Dst: ssl3_ConsumeHandshakeNumber64
      Src: /src/nss/lib/ssl/tls13ech.c:2631,1
    - Dst: ssl3_ParseExtensions
      Src: /src/nss/lib/ssl/tls13ech.c:2638,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/tls13ech.c:2643,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13ech.c:2648,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/tls13ech.c:2650,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 148
    argCount: 3
    argNames:
    - ss
    - sidBytes
    - echInner
    argTypes:
    - sslSocket*
    - SECItem*
    - SECItem**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2652
      start: 2460
    functionDepth: 19
    functionLinenumber: 2460
    functionLinenumberEnd: 2652
    functionName: tls13_UnencodeChInner
    functionSourceFile: /src/nss/lib/ssl/tls13ech.c
    functionUses: 0
    functionsReached:
    - sslBuffer_Skip
    - SSL_READER_REMAINING
    - FATAL_ERROR
    - sslRead_ReadNumber
    - ssl3_ParseExtensions
    - PR_CLIST_IS_EMPTY
    - SECITEM_FreeItem
    - PORT_Assert
    - sslBuffer_InsertNumber
    - PRINT_BUF
    - sslBuffer_AppendVariable
    - ssl3_DestroyRemoteExtensions
    - SSL_READER
    - sslBuffer_Clear
    - tls13_CopyChPreamble
    - CONST_CAST
    - sslRead_ReadVariable
    - SSL_TRC
    - PR_NEXT_LINK
    - SSL_GETPID
    - sslBuffer_AppendNumber
    - ssl3_FindExtension
    - ssl3_ConsumeHandshakeNumber64
    - tls13_ServerHandleInnerEchXtn
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_UnencodeChInner(sslSocket *ss, const SECItem *sidBytes,
      SECItem **echInner)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: CONST_CAST
      Src: /src/nss/lib/ssl/tls13ech.c:2659,1
    - Dst: IS_DTLS
      Src: /src/nss/lib/ssl/tls13ech.c:2668,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13ech.c:2673,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13ech.c:2677,1
    - Dst: ssl3_FindExtension
      Src: /src/nss/lib/ssl/tls13ech.c:2678,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13ech.c:2684,1
    - Dst: ssl3_ExtConsumeHandshakeVariable
      Src: /src/nss/lib/ssl/tls13ech.c:2688,1
    - Dst: tls13_HandleHrrCookie
      Src: /src/nss/lib/ssl/tls13ech.c:2697,1
    - Dst: NSS_SecureMemcmp
      Src: /src/nss/lib/ssl/tls13ech.c:2707,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13ech.c:2712,1
    - Dst: tls13_GetMatchingEchConfigs
      Src: /src/nss/lib/ssl/tls13ech.c:2730,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13ech.c:2733,1
    - Dst: tls13_ServerMakeChOuterAAD
      Src: /src/nss/lib/ssl/tls13ech.c:2738,1
    - Dst: tls13_OpenClientHelloInner
      Src: /src/nss/lib/ssl/tls13ech.c:2745,1
    - Dst: tls13_GetMatchingEchConfigs
      Src: /src/nss/lib/ssl/tls13ech.c:2748,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13ech.c:2751,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/tls13ech.c:2752,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/tls13ech.c:2759,1
    - Dst: FATAL_ERROR
      Src: /src/nss/lib/ssl/tls13ech.c:2763,1
    - Dst: ssl3_RegisterExtensionSender
      Src: /src/nss/lib/ssl/tls13ech.c:2768,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/tls13ech.c:2774,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/tls13ech.c:2775,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/tls13ech.c:2776,1
    - Dst: ssl3_MoveRemoteExtensions
      Src: /src/nss/lib/ssl/tls13ech.c:2783,1
    - Dst: tls13_UnencodeChInner
      Src: /src/nss/lib/ssl/tls13ech.c:2785,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/ssl/tls13ech.c:2787,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/tls13ech.c:2790,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 81
    argCount: 5
    argNames:
    - ss
    - sidBytes
    - chOuter
    - chOuterLen
    - chInner
    argTypes:
    - sslSocket*
    - SECItem*
    - PRUint8*
    - unsigned int
    - SECItem**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2794
      start: 2654
    functionDepth: 20
    functionLinenumber: 2654
    functionLinenumberEnd: 2794
    functionName: tls13_MaybeAcceptEch
    functionSourceFile: /src/nss/lib/ssl/tls13ech.c
    functionUses: 1
    functionsReached:
    - IS_DTLS
    - CONST_CAST
    - PORT_Assert
    - tls13_HandleHrrCookie
    - tls13_GetMatchingEchConfigs
    - SSL_TRC
    - tls13_UnencodeChInner
    - SSL_GETPID
    - PRINT_BUF
    - NSS_SecureMemcmp
    - FATAL_ERROR
    - tls13_ServerMakeChOuterAAD
    - tls13_OpenClientHelloInner
    - ssl3_FindExtension
    - ssl3_ExtConsumeHandshakeVariable
    - ssl3_MoveRemoteExtensions
    - SECITEM_FreeItem
    - ssl3_RegisterExtensionSender
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus tls13_MaybeAcceptEch(sslSocket *ss, const SECItem *sidBytes,
      const PRUint8 *chOuter,\n                     unsigned int chOuterLen, SECItem
      **chInner)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13ech.c:2803,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13ech.c:2804,1
    - Dst: tls13_ComputeEchSignal
      Src: /src/nss/lib/ssl/tls13ech.c:2806,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/tls13ech.c:2811,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/tls13ech.c:2814,1
    - Dst: memcmp
      Src: /src/nss/lib/ssl/tls13ech.c:2814,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/tls13ech.c:2816,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - ss
    - sh
    - shLen
    argTypes:
    - sslSocket*
    - PRUint8*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2819
      start: 2796
    functionDepth: 13
    functionLinenumber: 2796
    functionLinenumberEnd: 2819
    functionName: tls13_WriteServerEchSignal
    functionSourceFile: /src/nss/lib/ssl/tls13ech.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - tls13_ComputeEchSignal
    - memcmp
    - PORT_Memcpy
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_WriteServerEchSignal(sslSocket *ss, PRUint8 *sh, unsigned
      int shLen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/tls13ech.c:2825,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/ssl/tls13ech.c:2829,1
    - Dst: tls13_Debug_CheckXtnBegins
      Src: /src/nss/lib/ssl/tls13ech.c:2829,1
    - Dst: tls13_ComputeEchSignal
      Src: /src/nss/lib/ssl/tls13ech.c:2831,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/tls13ech.c:2837,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ss
    - sh
    - shLen
    argTypes:
    - sslSocket*
    - PRUint8*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2839
      start: 2821
    functionDepth: 13
    functionLinenumber: 2821
    functionLinenumberEnd: 2839
    functionName: tls13_WriteServerEchHrrSignal
    functionSourceFile: /src/nss/lib/ssl/tls13ech.c
    functionUses: 1
    functionsReached:
    - sslBuffer_Clear
    - tls13_ComputeEchSignal
    - tls13_Debug_CheckXtnBegins
    - PR_ASSERT
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus tls13_WriteServerEchHrrSignal(sslSocket *ss, PRUint8 *sh,
      unsigned int shLen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslencode.c:21,1
    - Dst: PR_htonll
      Src: /src/nss/lib/ssl/sslencode.c:23,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/sslencode.c:24,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - to
    - value
    - bytes
    argTypes:
    - PRUint8*
    - PRUint64
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 26
    functionName: ssl_EncodeUintX
    functionSourceFile: /src/nss/lib/ssl/sslencode.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_Memcpy
    - PR_htonll
    linkageType: ''
    returnType: void
    signature: void ssl_EncodeUintX(PRUint8 *to, PRUint64 value, unsigned int bytes)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslencode.c:33,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslencode.c:35,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslencode.c:37,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslencode.c:45,1
    - Dst: PR_MAX
      Src: /src/nss/lib/ssl/sslencode.c:47,1
    - Dst: PORT_Realloc
      Src: /src/nss/lib/ssl/sslencode.c:50,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/ssl/sslencode.c:52,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - b
    - newLen
    argTypes:
    - sslBuffer*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 61
    functionName: sslBuffer_Grow
    functionSourceFile: /src/nss/lib/ssl/sslencode.c
    functionUses: 10
    functionsReached:
    - PORT_Alloc
    - PORT_Assert
    - PORT_SetError
    - PORT_Realloc
    - PR_MAX
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sslBuffer_Grow(sslBuffer *b, unsigned int newLen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslencode.c:67,1
    - Dst: sslBuffer_Grow
      Src: /src/nss/lib/ssl/sslencode.c:68,1
    - Dst: memset
      Src: /src/nss/lib/ssl/sslencode.c:73,1
    - Dst: SSL_BUFFER_NEXT
      Src: /src/nss/lib/ssl/sslencode.c:73,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - b
    - c
    - len
    argTypes:
    - sslBuffer*
    - PRUint8
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 77
    functionName: sslBuffer_Fill
    functionSourceFile: /src/nss/lib/ssl/sslencode.c
    functionUses: 1
    functionsReached:
    - sslBuffer_Grow
    - PORT_Assert
    - SSL_BUFFER_NEXT
    - memset
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sslBuffer_Fill(sslBuffer *b, PRUint8 c, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sslBuffer_Grow
      Src: /src/nss/lib/ssl/sslencode.c:82,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslencode.c:87,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/sslencode.c:88,1
    - Dst: SSL_BUFFER_NEXT
      Src: /src/nss/lib/ssl/sslencode.c:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - b
    - data
    - len
    argTypes:
    - sslBuffer*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 92
    functionName: sslBuffer_Append
    functionSourceFile: /src/nss/lib/ssl/sslencode.c
    functionUses: 31
    functionsReached:
    - sslBuffer_Grow
    - PORT_Assert
    - PORT_Memcpy
    - SSL_BUFFER_NEXT
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sslBuffer_Append(sslBuffer *b, const void *data, unsigned
      int len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sslBuffer_Grow
      Src: /src/nss/lib/ssl/sslencode.c:97,1
    - Dst: ssl_EncodeUintX
      Src: /src/nss/lib/ssl/sslencode.c:101,1
    - Dst: SSL_BUFFER_NEXT
      Src: /src/nss/lib/ssl/sslencode.c:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - b
    - v
    - size
    argTypes:
    - sslBuffer*
    - PRUint64
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 104
    functionName: sslBuffer_AppendNumber
    functionSourceFile: /src/nss/lib/ssl/sslencode.c
    functionUses: 56
    functionsReached:
    - sslBuffer_Grow
    - ssl_EncodeUintX
    - SSL_BUFFER_NEXT
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sslBuffer_AppendNumber(sslBuffer *b, PRUint64 v, unsigned
      int size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslencode.c:110,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslencode.c:111,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslencode.c:113,1
    - Dst: sslBuffer_Grow
      Src: /src/nss/lib/ssl/sslencode.c:117,1
    - Dst: ssl_EncodeUintX
      Src: /src/nss/lib/ssl/sslencode.c:121,1
    - Dst: SSL_BUFFER_NEXT
      Src: /src/nss/lib/ssl/sslencode.c:121,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslencode.c:124,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/sslencode.c:126,1
    - Dst: SSL_BUFFER_NEXT
      Src: /src/nss/lib/ssl/sslencode.c:126,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - b
    - data
    - len
    - size
    argTypes:
    - sslBuffer*
    - PRUint8*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 130
    functionName: sslBuffer_AppendVariable
    functionSourceFile: /src/nss/lib/ssl/sslencode.c
    functionUses: 31
    functionsReached:
    - PORT_Assert
    - ssl_EncodeUintX
    - PORT_Memcpy
    - sslBuffer_Grow
    - PORT_SetError
    - SSL_BUFFER_NEXT
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sslBuffer_AppendVariable(sslBuffer *b, const PRUint8 *data,
      unsigned int len,\n                         unsigned int size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sslBuffer_Append
      Src: /src/nss/lib/ssl/sslencode.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - append
    argTypes:
    - sslBuffer*
    - sslBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 132
    functionDepth: 3
    functionLinenumber: 132
    functionLinenumberEnd: 136
    functionName: sslBuffer_AppendBuffer
    functionSourceFile: /src/nss/lib/ssl/sslencode.c
    functionUses: 7
    functionsReached:
    - sslBuffer_Append
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sslBuffer_AppendBuffer(sslBuffer *b, const sslBuffer *append)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sslBuffer_AppendVariable
      Src: /src/nss/lib/ssl/sslencode.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - b
    - append
    - size
    argTypes:
    - sslBuffer*
    - sslBuffer*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 138
    functionDepth: 3
    functionLinenumber: 138
    functionLinenumberEnd: 143
    functionName: sslBuffer_AppendBufferVariable
    functionSourceFile: /src/nss/lib/ssl/sslencode.c
    functionUses: 5
    functionsReached:
    - sslBuffer_AppendVariable
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sslBuffer_AppendBufferVariable(sslBuffer *b, const sslBuffer
      *append,\n                               unsigned int size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sslBuffer_Grow
      Src: /src/nss/lib/ssl/sslencode.c:148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - b
    - size
    - savedOffset
    argTypes:
    - sslBuffer*
    - unsigned int
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 157
    functionName: sslBuffer_Skip
    functionSourceFile: /src/nss/lib/ssl/sslencode.c
    functionUses: 14
    functionsReached:
    - sslBuffer_Grow
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sslBuffer_Skip(sslBuffer *b, unsigned int size, unsigned
      int *savedOffset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslencode.c:173,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslencode.c:174,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslencode.c:177,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslencode.c:179,1
    - Dst: ssl_EncodeUintX
      Src: /src/nss/lib/ssl/sslencode.c:183,1
    - Dst: SSL_BUFFER_BASE
      Src: /src/nss/lib/ssl/sslencode.c:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - b
    - at
    - size
    argTypes:
    - sslBuffer*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 168
    functionDepth: 2
    functionLinenumber: 168
    functionLinenumberEnd: 185
    functionName: sslBuffer_InsertLength
    functionSourceFile: /src/nss/lib/ssl/sslencode.c
    functionUses: 9
    functionsReached:
    - PORT_Assert
    - ssl_EncodeUintX
    - PORT_SetError
    - SSL_BUFFER_BASE
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sslBuffer_InsertLength(sslBuffer *b, unsigned int at, unsigned
      int size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslencode.c:191,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslencode.c:192,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslencode.c:194,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslencode.c:196,1
    - Dst: ssl_EncodeUintX
      Src: /src/nss/lib/ssl/sslencode.c:200,1
    - Dst: SSL_BUFFER_BASE
      Src: /src/nss/lib/ssl/sslencode.c:200,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - b
    - at
    - v
    - size
    argTypes:
    - sslBuffer*
    - unsigned int
    - PRUint64
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 202
    functionName: sslBuffer_InsertNumber
    functionSourceFile: /src/nss/lib/ssl/sslencode.c
    functionUses: 4
    functionsReached:
    - PORT_Assert
    - ssl_EncodeUintX
    - PORT_SetError
    - SSL_BUFFER_BASE
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sslBuffer_InsertNumber(sslBuffer *b, unsigned int at,\n
      \                      PRUint64 v, unsigned int size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Free
      Src: /src/nss/lib/ssl/sslencode.c:209,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - b
    argTypes:
    - sslBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 215
    functionName: sslBuffer_Clear
    functionSourceFile: /src/nss/lib/ssl/sslencode.c
    functionUses: 40
    functionsReached:
    - PORT_Free
    linkageType: ''
    returnType: void
    signature: void sslBuffer_Clear(sslBuffer *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslencode.c:221,1
    - Dst: SSL_READER_REMAINING
      Src: /src/nss/lib/ssl/sslencode.c:225,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslencode.c:226,1
    - Dst: SSL_READER_CURRENT
      Src: /src/nss/lib/ssl/sslencode.c:230,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - reader
    - count
    - out
    argTypes:
    - sslReader*
    - unsigned int
    - sslReadBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 235
    functionName: sslRead_Read
    functionSourceFile: /src/nss/lib/ssl/sslencode.c
    functionUses: 5
    functionsReached:
    - SSL_READER_REMAINING
    - PORT_SetError
    - SSL_READER_CURRENT
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sslRead_Read(sslReader *reader, unsigned int count, sslReadBuffer
      *out)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sslRead_ReadNumber
      Src: /src/nss/lib/ssl/sslencode.c:241,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslencode.c:243,1
    - Dst: sslRead_Read
      Src: /src/nss/lib/ssl/sslencode.c:251,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - reader
    - sizeLen
    - out
    argTypes:
    - sslReader*
    - unsigned int
    - sslReadBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 237
    functionDepth: 2
    functionLinenumber: 237
    functionLinenumberEnd: 252
    functionName: sslRead_ReadVariable
    functionSourceFile: /src/nss/lib/ssl/sslencode.c
    functionUses: 11
    functionsReached:
    - PORT_SetError
    - sslRead_ReadNumber
    - sslRead_Read
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sslRead_ReadVariable(sslReader *reader, unsigned int sizeLen,
      sslReadBuffer *out)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslencode.c:258,1
    - Dst: SSL_READER_REMAINING
      Src: /src/nss/lib/ssl/sslencode.c:262,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslencode.c:264,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - reader
    - bytes
    - num
    argTypes:
    - sslReader*
    - unsigned int
    - PRUint64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 276
    functionName: sslRead_ReadNumber
    functionSourceFile: /src/nss/lib/ssl/sslencode.c
    functionUses: 16
    functionsReached:
    - SSL_READER_REMAINING
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sslRead_ReadNumber(sslReader *reader, unsigned int bytes,
      PRUint64 *num)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslencode.c:293,1
    - Dst: ssl_HaveSSL3HandshakeLock
      Src: /src/nss/lib/ssl/sslencode.c:293,1
    - Dst: sslBuffer_Grow
      Src: /src/nss/lib/ssl/sslencode.c:298,1
    - Dst: PR_MAX
      Src: /src/nss/lib/ssl/sslencode.c:298,1
    - Dst: PR_MIN
      Src: /src/nss/lib/ssl/sslencode.c:299,1
    - Dst: PRINT_BUF
      Src: /src/nss/lib/ssl/sslencode.c:305,1
    - Dst: ssl3_UpdateHandshakeHashes
      Src: /src/nss/lib/ssl/sslencode.c:308,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/sslencode.c:315,1
    - Dst: ssl3_FlushHandshake
      Src: /src/nss/lib/ssl/sslencode.c:318,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslencode.c:325,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/ssl/sslencode.c:327,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 4
    argNames:
    - ss
    - void_src
    - bytes
    - suppressHash
    argTypes:
    - sslSocket*
    - void*
    - unsigned int
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 286
    functionDepth: 6
    functionLinenumber: 286
    functionLinenumberEnd: 330
    functionName: ssl3_AppendHandshakeInternal
    functionSourceFile: /src/nss/lib/ssl/sslencode.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - ssl_HaveSSL3HandshakeLock
    - PORT_Memcpy
    - PR_MIN
    - sslBuffer_Grow
    - PRINT_BUF
    - ssl3_FlushHandshake
    - ssl3_UpdateHandshakeHashes
    - PR_MAX
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_AppendHandshakeInternal(sslSocket *ss, const void *void_src,
      unsigned int bytes, PRBool suppressHash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_AppendHandshakeInternal
      Src: /src/nss/lib/ssl/sslencode.c:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ss
    - void_src
    - bytes
    argTypes:
    - sslSocket*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 332
    functionDepth: 7
    functionLinenumber: 332
    functionLinenumberEnd: 336
    functionName: ssl3_AppendHandshakeSuppressHash
    functionSourceFile: /src/nss/lib/ssl/sslencode.c
    functionUses: 1
    functionsReached:
    - ssl3_AppendHandshakeInternal
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_AppendHandshakeSuppressHash(sslSocket *ss, const void
      *void_src, unsigned int bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_AppendHandshakeInternal
      Src: /src/nss/lib/ssl/sslencode.c:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ss
    - void_src
    - bytes
    argTypes:
    - sslSocket*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 338
    functionDepth: 7
    functionLinenumber: 338
    functionLinenumberEnd: 342
    functionName: ssl3_AppendHandshake
    functionSourceFile: /src/nss/lib/ssl/sslencode.c
    functionUses: 7
    functionsReached:
    - ssl3_AppendHandshakeInternal
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_AppendHandshake(sslSocket *ss, const void *void_src,
      unsigned int bytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslencode.c:348,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/sslencode.c:353,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslencode.c:353,1
    - Dst: ssl_EncodeUintX
      Src: /src/nss/lib/ssl/sslencode.c:354,1
    - Dst: ssl3_AppendHandshakeInternal
      Src: /src/nss/lib/ssl/sslencode.c:355,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - ss
    - num
    - lenSize
    - suppressHash
    argTypes:
    - sslSocket*
    - PRUint64
    - unsigned int
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 344
    functionDepth: 7
    functionLinenumber: 344
    functionLinenumberEnd: 356
    functionName: ssl3_AppendHandshakeNumberSuppressHash
    functionSourceFile: /src/nss/lib/ssl/sslencode.c
    functionUses: 1
    functionsReached:
    - ssl_EncodeUintX
    - SSL_TRC
    - SSL_GETPID
    - ssl3_AppendHandshakeInternal
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_AppendHandshakeNumberSuppressHash(sslSocket *ss, PRUint64
      num, unsigned int lenSize, PRBool suppressHash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_AppendHandshakeNumberSuppressHash
      Src: /src/nss/lib/ssl/sslencode.c:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ss
    - num
    - lenSize
    argTypes:
    - sslSocket*
    - PRUint64
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 358
    functionDepth: 8
    functionLinenumber: 358
    functionLinenumberEnd: 362
    functionName: ssl3_AppendHandshakeNumber
    functionSourceFile: /src/nss/lib/ssl/sslencode.c
    functionUses: 14
    functionsReached:
    - ssl3_AppendHandshakeNumberSuppressHash
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_AppendHandshakeNumber(sslSocket *ss, PRUint64 num, unsigned
      int lenSize)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslencode.c:370,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/sslencode.c:374,1
    - Dst: SSL_GETPID
      Src: /src/nss/lib/ssl/sslencode.c:374,1
    - Dst: ssl3_AppendHandshakeNumber
      Src: /src/nss/lib/ssl/sslencode.c:375,1
    - Dst: SSL_TRC
      Src: /src/nss/lib/ssl/sslencode.c:379,1
    - Dst: ssl3_AppendHandshake
      Src: /src/nss/lib/ssl/sslencode.c:380,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 4
    argNames:
    - ss
    - src
    - bytes
    - lenSize
    argTypes:
    - sslSocket*
    - PRUint8*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 364
    functionDepth: 9
    functionLinenumber: 364
    functionLinenumberEnd: 381
    functionName: ssl3_AppendHandshakeVariable
    functionSourceFile: /src/nss/lib/ssl/sslencode.c
    functionUses: 15
    functionsReached:
    - PORT_Assert
    - SSL_TRC
    - SSL_GETPID
    - ssl3_AppendHandshake
    - ssl3_AppendHandshakeNumber
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_AppendHandshakeVariable(sslSocket *ss, const PRUint8
      *src,\n                             unsigned int bytes, unsigned int lenSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_AppendHandshake
      Src: /src/nss/lib/ssl/sslencode.c:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ss
    - buf
    argTypes:
    - sslSocket*
    - sslBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 383
    functionDepth: 8
    functionLinenumber: 383
    functionLinenumberEnd: 387
    functionName: ssl3_AppendBufferToHandshake
    functionSourceFile: /src/nss/lib/ssl/sslencode.c
    functionUses: 4
    functionsReached:
    - ssl3_AppendHandshake
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_AppendBufferToHandshake(sslSocket *ss, sslBuffer *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl3_AppendHandshakeVariable
      Src: /src/nss/lib/ssl/sslencode.c:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ss
    - buf
    - lenSize
    argTypes:
    - sslSocket*
    - sslBuffer*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 389
    functionDepth: 10
    functionLinenumber: 389
    functionLinenumberEnd: 394
    functionName: ssl3_AppendBufferToHandshakeVariable
    functionSourceFile: /src/nss/lib/ssl/sslencode.c
    functionUses: 2
    functionsReached:
    - ssl3_AppendHandshakeVariable
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ssl3_AppendBufferToHandshakeVariable(sslSocket *ss, sslBuffer
      *buf,\n                                     unsigned int lenSize)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/ssl/sslencode.c:413,1
    - Dst: ssl3_UpdateHandshakeHashes
      Src: /src/nss/lib/ssl/sslencode.c:417,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/ssl/sslencode.c:424,1
    - Dst: ssl3_UpdateHandshakeHashes
      Src: /src/nss/lib/ssl/sslencode.c:425,1
    - Dst: sslBuffer_Clear
      Src: /src/nss/lib/ssl/sslencode.c:431,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sslSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 396
    functionDepth: 6
    functionLinenumber: 396
    functionLinenumberEnd: 434
    functionName: ssl3_MaybeUpdateHashWithSavedRecord
    functionSourceFile: /src/nss/lib/ssl/sslencode.c
    functionUses: 2
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - sslBuffer_Clear
    - ssl3_UpdateHandshakeHashes
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_MaybeUpdateHashWithSavedRecord(sslSocket *ss)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_MakeItem
      Src: /src/nss/lib/ssl/sslencode.c:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - i
    argTypes:
    - sslBuffer*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 440
    functionName: ssl3_CopyToSECItem
    functionSourceFile: /src/nss/lib/ssl/sslencode.c
    functionUses: 1
    functionsReached:
    - SECITEM_MakeItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ssl3_CopyToSECItem(sslBuffer *buf, SECItem *i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - value
    - ','
    - str
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 16
    functionName: ER3
    functionSourceFile: /src/nss/lib/util/errstrs.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ER3(name, value, str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_ErrorInstallTable
      Src: /src/nss/lib/util/errstrs.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 31
    functionName: nss_InitializePRErrorTableOnce
    functionSourceFile: /src/nss/lib/util/errstrs.c
    functionUses: 0
    functionsReached:
    - PR_ErrorInstallTable
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus nss_InitializePRErrorTableOnce(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_CallOnce
      Src: /src/nss/lib/util/errstrs.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 41
    functionName: NSS_InitializePRErrorTable
    functionSourceFile: /src/nss/lib/util/errstrs.c
    functionUses: 2
    functionsReached:
    - PR_CallOnce
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_InitializePRErrorTable(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - param
    - ','
    - target
    - ','
    - value
    - ','
    - command
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 29
    functionName: NSSUTIL_HANDLE_STRING_ARG
    functionSourceFile: /src/nss/lib/util/utilparst.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NSSUTIL_HANDLE_STRING_ARG(param, target, value, command)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - param
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: NSSUTIL_HANDLE_FINAL_ARG
    functionSourceFile: /src/nss/lib/util/utilparst.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NSSUTIL_HANDLE_FINAL_ARG(param)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - len
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 32
    functionName: SEC_ASN1LengthLength
    functionSourceFile: /src/nss/lib/util/secasn1u.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SEC_ASN1LengthLength(unsigned long len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1u.c:56,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - theTemplate
    - thing
    - encoding
    argTypes:
    - SEC_ASN1Template*
    - void*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 72
    functionName: SEC_ASN1GetSubtemplate
    functionSourceFile: /src/nss/lib/util/secasn1u.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: SEC_ASN1Template
    signature: "SEC_ASN1Template *\nSEC_ASN1GetSubtemplate(const SEC_ASN1Template
      *theTemplate, void *thing,\n                       PRBool encoding)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - theTemplate
    argTypes:
    - SEC_ASN1Template*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 94
    functionName: SEC_ASN1IsTemplateSimple
    functionSourceFile: /src/nss/lib/util/secasn1u.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool SEC_ASN1IsTemplateSimple(const SEC_ASN1Template *theTemplate)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - path
    - ','
    - how
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: _NSSUTIL_Access
    functionSourceFile: /src/nss/lib/util/utilpars.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NSSUTIL_Access(path, how)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - item
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 128
    functionName: DER_ConvertBitString
    functionSourceFile: /src/nss/lib/util/secdert.h
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DER_ConvertBitString(item)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/derenc.c:99,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - dtemplate
    - contents_len
    argTypes:
    - DERTemplate*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 108
    functionName: header_length
    functionSourceFile: /src/nss/lib/util/derenc.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: int
    signature: int header_length(DERTemplate *dtemplate, PRUint32 contents_len)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - ' DER_POINTER'
    argTypes:
    - encode_kind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 98
    functionName: "&& universal)); /* bad templates */\n\n    if (encode_kind & DER_POINTER)"
    functionSourceFile: /src/nss/lib/util/derenc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void && universal)); /* bad templates */\n\n    if (encode_kind &
      DER_POINTER)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/derenc.c:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' DER_INLINE'
    argTypes:
    - encode_kind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 104
    functionName: if
    functionSourceFile: /src/nss/lib/util/derenc.c
    functionUses: 2
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: else
    signature: else if (encode_kind & DER_INLINE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 106
    functionName: if
    functionSourceFile: /src/nss/lib/util/derenc.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: else
    signature: else if (universal)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/derenc.c:160,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/derenc.c:184,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/derenc.c:195,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/derenc.c:213,1
    - Dst: contents_length
      Src: /src/nss/lib/util/derenc.c:217,1
    - Dst: header_length
      Src: /src/nss/lib/util/derenc.c:218,1
    - Dst: DER_LengthLength
      Src: /src/nss/lib/util/derenc.c:235,1
    - Dst: contents_length
      Src: /src/nss/lib/util/derenc.c:252,1
    - Dst: header_length
      Src: /src/nss/lib/util/derenc.c:253,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 81
    argCount: 2
    argNames:
    - dtemplate
    - src
    argTypes:
    - DERTemplate*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 270
    functionName: contents_length
    functionSourceFile: /src/nss/lib/util/derenc.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - header_length
    - DER_LengthLength
    - contents_length
    linkageType: ''
    returnType: PRUint32
    signature: PRUint32 contents_length(DERTemplate *dtemplate, void *src)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: contents_length
      Src: /src/nss/lib/util/derenc.c:285,1
    - Dst: header_length
      Src: /src/nss/lib/util/derenc.c:286,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/derenc.c:307,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 3
    argNames:
    - buf
    - dtemplate
    - src
    argTypes:
    - unsigned char*
    - DERTemplate*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 272
    functionDepth: 2
    functionLinenumber: 272
    functionLinenumberEnd: 332
    functionName: der_encode
    functionSourceFile: /src/nss/lib/util/derenc.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - header_length
    - contents_length
    linkageType: ''
    returnType: unsigned char
    signature: 'unsigned char *

      der_encode(unsigned char *buf, DERTemplate *dtemplate, void *src)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/derenc.c:307,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - ' DER_POINTER'
    argTypes:
    - encode_kind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 321
    functionName: PR_FALSE
    functionSourceFile: /src/nss/lib/util/derenc.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: void
    signature: "void PR_FALSE;\n\n    if (encode_kind & DER_POINTER)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' DER_INLINE'
    argTypes:
    - encode_kind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 328
    functionName: if
    functionSourceFile: /src/nss/lib/util/derenc.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: else
    signature: else if (encode_kind & DER_INLINE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 330
    functionName: if
    functionSourceFile: /src/nss/lib/util/derenc.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: else
    signature: else if (universal)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: contents_length
      Src: /src/nss/lib/util/derenc.c:444,1
    - Dst: header_length
      Src: /src/nss/lib/util/derenc.c:445,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/util/derenc.c:450,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/derenc.c:452,1
    - Dst: der_encode
      Src: /src/nss/lib/util/derenc.c:457,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - arena
    - dest
    - dtemplate
    - src
    argTypes:
    - PLArenaPool*
    - SECItem*
    - DERTemplate*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 432
    functionDepth: 3
    functionLinenumber: 432
    functionLinenumberEnd: 460
    functionName: DER_Encode
    functionSourceFile: /src/nss/lib/util/derenc.c
    functionUses: 3
    functionsReached:
    - header_length
    - PORT_ArenaAlloc
    - der_encode
    - PORT_SetError
    - contents_length
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus DER_Encode(PLArenaPool *arena, SECItem *dest, DERTemplate
      *dtemplate, void *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - name
    - ','
    - message
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: _NSS_DEPRECATE_DEFINE_TYPE
    functionSourceFile: /src/nss/lib/util/pkcs11n.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NSS_DEPRECATE_DEFINE_TYPE(type, name, message)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: _NSS_DEPRECATE_DEFINE_VALUE
    functionSourceFile: /src/nss/lib/util/pkcs11n.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NSS_DEPRECATE_DEFINE_VALUE(name, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - alias
    - ','
    - name
    - ','
    - message
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: _NSS_DEPRECATE_STRUCT
    functionSourceFile: /src/nss/lib/util/pkcs11n.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NSS_DEPRECATE_STRUCT(alias, name, message)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - name
    - ','
    - message
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: _NSS_DEPRECATE_DEFINE_TYPE
    functionSourceFile: /src/nss/lib/util/pkcs11n.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NSS_DEPRECATE_DEFINE_TYPE(type, name, message)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: _NSS_DEPRECATE_DEFINE_VALUE
    functionSourceFile: /src/nss/lib/util/pkcs11n.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NSS_DEPRECATE_DEFINE_VALUE(name, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - alias
    - ','
    - name
    - ','
    - message
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: _NSS_DEPRECATE_STRUCT
    functionSourceFile: /src/nss/lib/util/pkcs11n.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NSS_DEPRECATE_STRUCT(alias, name, message)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: _NSS_DEPRECATE_DEFINE_VALUE
    functionSourceFile: /src/nss/lib/util/pkcs11n.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NSS_DEPRECATE_DEFINE_VALUE(name, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - alias
    - ','
    - name
    - ','
    - message
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 83
    functionName: _NSS_DEPRECATE_STRUCT
    functionSourceFile: /src/nss/lib/util/pkcs11n.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NSS_DEPRECATE_STRUCT(alias, name, message)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 89
    functionName: _NSS_DEPRECATE_DEFINE_VALUE
    functionSourceFile: /src/nss/lib/util/pkcs11n.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NSS_DEPRECATE_DEFINE_VALUE(name, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - alias
    - ','
    - name
    - ','
    - message
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 91
    functionName: _NSS_DEPRECATE_STRUCT
    functionSourceFile: /src/nss/lib/util/pkcs11n.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NSS_DEPRECATE_STRUCT(alias, name, message)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - reasonStr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 128
    functionName: PORT_AssertNotReached
    functionSourceFile: /src/nss/lib/util/secport.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PORT_AssertNotReached(reasonStr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - value
    - ','
    - offset
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 132
    functionName: PORT_GET_BYTE_BE
    functionSourceFile: /src/nss/lib/util/secport.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PORT_GET_BYTE_BE(value, offset, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - value
    - ','
    - offset
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 134
    functionName: PORT_GET_BYTE_LE
    functionSourceFile: /src/nss/lib/util/secport.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PORT_GET_BYTE_LE(value, offset, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 145
    functionName: PORT_CheckSuccess
    functionSourceFile: /src/nss/lib/util/secport.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PORT_CheckSuccess(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 147
    functionName: PORT_CheckSuccess
    functionSourceFile: /src/nss/lib/util/secport.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PORT_CheckSuccess(f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 149
    functionName: PORT_ZNew
    functionSourceFile: /src/nss/lib/util/secport.h
    functionUses: 106
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PORT_ZNew(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - alignment
    - ','
    - mem
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 151
    functionName: PORT_ZNewAligned
    functionSourceFile: /src/nss/lib/util/secport.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PORT_ZNewAligned(type, alignment, mem)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 152
    functionName: PORT_New
    functionSourceFile: /src/nss/lib/util/secport.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PORT_New(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - poolp
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 154
    functionName: PORT_ArenaNew
    functionSourceFile: /src/nss/lib/util/secport.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PORT_ArenaNew(poolp, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - poolp
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 156
    functionName: PORT_ArenaZNew
    functionSourceFile: /src/nss/lib/util/secport.h
    functionUses: 130
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PORT_ArenaZNew(poolp, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - num
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 158
    functionName: PORT_NewArray
    functionSourceFile: /src/nss/lib/util/secport.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PORT_NewArray(type, num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - num
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 160
    functionName: PORT_ZNewArray
    functionSourceFile: /src/nss/lib/util/secport.h
    functionUses: 24
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PORT_ZNewArray(type, num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - poolp
    - ','
    - type
    - ','
    - num
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 162
    functionName: PORT_ArenaNewArray
    functionSourceFile: /src/nss/lib/util/secport.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PORT_ArenaNewArray(poolp, type, num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - poolp
    - ','
    - type
    - ','
    - num
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 164
    functionName: PORT_ArenaZNewArray
    functionSourceFile: /src/nss/lib/util/secport.h
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PORT_ArenaZNewArray(poolp, type, num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - buff
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 168
    functionName: PORT_Atoi
    functionSourceFile: /src/nss/lib/util/secport.h
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PORT_Atoi(buff)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - err
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 176
    functionName: PORT_ErrorToString
    functionSourceFile: /src/nss/lib/util/secport.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PORT_ErrorToString(err)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 191
    functionName: PORT_Strlen
    functionSourceFile: /src/nss/lib/util/secport.h
    functionUses: 102
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PORT_Strlen(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 345
    functionName: PORT_CT_DUPLICATE_MSB_TO_ALL
    functionSourceFile: /src/nss/lib/util/secport.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PORT_CT_DUPLICATE_MSB_TO_ALL(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - m
    - ','
    - l
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 349
    functionName: PORT_CT_SEL
    functionSourceFile: /src/nss/lib/util/secport.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PORT_CT_SEL(m, l, r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 353
    functionName: PORT_CT_NOT_ZERO
    functionSourceFile: /src/nss/lib/util/secport.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PORT_CT_NOT_ZERO(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 357
    functionName: PORT_CT_ZERO
    functionSourceFile: /src/nss/lib/util/secport.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PORT_CT_ZERO(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 361
    functionName: PORT_CT_EQ
    functionSourceFile: /src/nss/lib/util/secport.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PORT_CT_EQ(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 362
    functionName: PORT_CT_NE
    functionSourceFile: /src/nss/lib/util/secport.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PORT_CT_NE(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 363
    functionName: PORT_CT_GT
    functionSourceFile: /src/nss/lib/util/secport.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PORT_CT_GT(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 364
    functionName: PORT_CT_LT
    functionSourceFile: /src/nss/lib/util/secport.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PORT_CT_LT(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 365
    functionName: PORT_CT_GE
    functionSourceFile: /src/nss/lib/util/secport.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PORT_CT_GE(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 366
    functionName: PORT_CT_LE
    functionSourceFile: /src/nss/lib/util/secport.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PORT_CT_LE(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - buf
    - ','
    - length
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 372
    functionName: NSS_CLASSIFY
    functionSourceFile: /src/nss/lib/util/secport.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NSS_CLASSIFY(buf, length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - buf
    - ','
    - length
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 373
    functionName: NSS_DECLASSIFY
    functionSourceFile: /src/nss/lib/util/secport.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NSS_DECLASSIFY(buf, length)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/nsshash.c:50,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 1
    argNames:
    - hashOid
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 54
    functionName: HASH_GetHashTypeByOidTag
    functionSourceFile: /src/nss/lib/util/nsshash.c
    functionUses: 9
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: HASH_HashType
    signature: HASH_HashType HASH_GetHashTypeByOidTag(SECOidTag hashOid)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/nsshash.c:96,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 1
    argNames:
    - type
    argTypes:
    - HASH_HashType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 100
    functionName: HASH_GetHashOidTagByHashType
    functionSourceFile: /src/nss/lib/util/nsshash.c
    functionUses: 6
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag HASH_GetHashOidTagByHashType(HASH_HashType type)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/nsshash.c:142,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 1
    argNames:
    - hmacOid
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 146
    functionName: HASH_GetHashOidTagByHMACOidTag
    functionSourceFile: /src/nss/lib/util/nsshash.c
    functionUses: 9
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag HASH_GetHashOidTagByHMACOidTag(SECOidTag hmacOid)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/nsshash.c:188,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 1
    argNames:
    - hashOid
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 192
    functionName: HASH_GetHMACOidTagByHashOidTag
    functionSourceFile: /src/nss/lib/util/nsshash.c
    functionUses: 3
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag HASH_GetHMACOidTagByHashOidTag(SECOidTag hashOid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - rtype
    - ','
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: CK_CALLBACK_FUNCTION
    functionSourceFile: /src/nss/lib/util/pkcs11t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CK_CALLBACK_FUNCTION(rtype, func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - rtype
    - ','
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: CK_DECLARE_FUNCTION
    functionSourceFile: /src/nss/lib/util/pkcs11t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CK_DECLARE_FUNCTION(rtype, func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - rtype
    - ','
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: CK_DECLARE_FUNCTION_POINTER
    functionSourceFile: /src/nss/lib/util/pkcs11t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CK_DECLARE_FUNCTION_POINTER(rtype, func)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/util/secalgid.c:18,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - id
    argTypes:
    - SECAlgorithmID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 19
    functionName: SECOID_GetAlgorithmTag
    functionSourceFile: /src/nss/lib/util/secalgid.c
    functionUses: 63
    functionsReached:
    - SECOID_FindOIDTag
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag SECOID_GetAlgorithmTag(const SECAlgorithmID *id)
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - which
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 39
    functionName: secoid_IsRSAPKCS1
    functionSourceFile: /src/nss/lib/util/secalgid.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool secoid_IsRSAPKCS1(SECOidTag which)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/lib/util/secalgid.c:48,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secalgid.c:50,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/util/secalgid.c:54,1
    - Dst: secoid_IsRSAPKCS1
      Src: /src/nss/lib/util/secalgid.c:57,1
    - Dst: HASH_GetHashTypeByOidTag
      Src: /src/nss/lib/util/secalgid.c:58,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secalgid.c:73,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/util/secalgid.c:74,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secalgid.c:85,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/util/secalgid.c:88,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 4
    argNames:
    - arena
    - id
    - which
    - params
    argTypes:
    - PLArenaPool*
    - SECAlgorithmID*
    - SECOidTag
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 98
    functionName: SECOID_SetAlgorithmID
    functionSourceFile: /src/nss/lib/util/secalgid.c
    functionUses: 27
    functionsReached:
    - PORT_Assert
    - SECOID_FindOIDByTag
    - HASH_GetHashTypeByOidTag
    - SECITEM_CopyItem
    - SECITEM_AllocItem
    - PORT_SetError
    - secoid_IsRSAPKCS1
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SECOID_SetAlgorithmID(PLArenaPool *arena, SECAlgorithmID
      *id, SECOidTag which,\n                      SECItem *params)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/util/secalgid.c:106,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/util/secalgid.c:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - arena
    - to
    - from
    argTypes:
    - PLArenaPool*
    - SECAlgorithmID*
    - SECAlgorithmID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 111
    functionName: SECOID_CopyAlgorithmID
    functionSourceFile: /src/nss/lib/util/secalgid.c
    functionUses: 17
    functionsReached:
    - SECITEM_CopyItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SECOID_CopyAlgorithmID(PLArenaPool *arena, SECAlgorithmID
      *to,\n                       const SECAlgorithmID *from)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/util/secalgid.c:116,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/util/secalgid.c:117,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/secalgid.c:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - algid
    - freeit
    argTypes:
    - SECAlgorithmID*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 120
    functionName: SECOID_DestroyAlgorithmID
    functionSourceFile: /src/nss/lib/util/secalgid.c
    functionUses: 20
    functionsReached:
    - PORT_Free
    - SECITEM_ZfreeItem
    - SECITEM_FreeItem
    linkageType: ''
    returnType: void
    signature: void SECOID_DestroyAlgorithmID(SECAlgorithmID *algid, PRBool freeit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/util/secalgid.c:127,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/util/secalgid.c:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - SECAlgorithmID*
    - SECAlgorithmID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 132
    functionName: SECOID_CompareAlgorithmID
    functionSourceFile: /src/nss/lib/util/secalgid.c
    functionUses: 3
    functionsReached:
    - SECITEM_CompareItem
    linkageType: ''
    returnType: SECComparison
    signature: SECComparison SECOID_CompareAlgorithmID(SECAlgorithmID *a, SECAlgorithmID
      *b)
  - BBCount: 15
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 54
    argCount: 4
    argNames:
    - buf
    - buf_length
    - out_data_length
    - includeTag
    argTypes:
    - unsigned char*
    - unsigned int
    - unsigned int*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 111
    functionName: definite_length_decoder
    functionSourceFile: /src/nss/lib/util/quickder.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: "unsigned char *\ndefinite_length_decoder(const unsigned char* buf,\n
      \                       const unsigned int buf_length,\n                        unsigned
      int* out_data_length,\n                        PRBool includeTag)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/quickder.c:117,1
    - Dst: definite_length_decoder
      Src: /src/nss/lib/util/quickder.c:128,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/quickder.c:131,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - src
    - dest
    - includeTag
    argTypes:
    - SECItem*
    - SECItem*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 137
    functionName: GetItem
    functionSourceFile: /src/nss/lib/util/quickder.c
    functionUses: 115
    functionsReached:
    - PORT_SetError
    - definite_length_decoder
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus GetItem(SECItem* src, SECItem* dest, PRBool includeTag)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/quickder.c:149,1
    - Dst: SEC_ASN1GetSubtemplate
      Src: /src/nss/lib/util/quickder.c:178,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/quickder.c:180,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/quickder.c:190,1
    - Dst: MatchComponentType
      Src: /src/nss/lib/util/quickder.c:193,1
    - Dst: MatchComponentType
      Src: /src/nss/lib/util/quickder.c:208,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 80
    argCount: 4
    argNames:
    - templateEntry
    - item
    - match
    - dest
    argTypes:
    - SEC_ASN1Template*
    - SECItem*
    - PRBool*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 297
    functionName: MatchComponentType
    functionSourceFile: /src/nss/lib/util/quickder.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    - MatchComponentType
    - SEC_ASN1GetSubtemplate
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus MatchComponentType(const SEC_ASN1Template* templateEntry,\n
      \                  SECItem* item, PRBool* match, void* dest)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/quickder.c:332,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - sequenceTemplate
    argTypes:
    - SEC_ASN1Template*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 341
    functionName: CheckSequenceTemplate
    functionSourceFile: /src/nss/lib/util/quickder.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CheckSequenceTemplate(const SEC_ASN1Template* sequenceTemplate)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CheckSequenceTemplate
      Src: /src/nss/lib/util/quickder.c:363,1
    - Dst: GetItem
      Src: /src/nss/lib/util/quickder.c:370,1
    - Dst: DecodeItem
      Src: /src/nss/lib/util/quickder.c:379,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/quickder.c:391,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 18
    argCount: 4
    argNames:
    - dest
    - templateEntry
    - src
    - arena
    argTypes:
    - void*
    - SEC_ASN1Template*
    - SECItem*
    - PLArenaPool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 349
    functionDepth: 2
    functionLinenumber: 349
    functionLinenumberEnd: 396
    functionName: DecodeSequence
    functionSourceFile: /src/nss/lib/util/quickder.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - GetItem
    - DecodeItem
    - CheckSequenceTemplate
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus DecodeSequence(void* dest,\n               const SEC_ASN1Template*
      templateEntry,\n               SECItem* src, PLArenaPool* arena)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1GetSubtemplate
      Src: /src/nss/lib/util/quickder.c:404,1
    - Dst: DecodeItem
      Src: /src/nss/lib/util/quickder.c:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - dest
    - templateEntry
    - src
    - arena
    - checkTag
    argTypes:
    - void*
    - SEC_ASN1Template*
    - SECItem*
    - PLArenaPool*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 407
    functionName: DecodeInline
    functionSourceFile: /src/nss/lib/util/quickder.c
    functionUses: 0
    functionsReached:
    - DecodeItem
    - SEC_ASN1GetSubtemplate
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus DecodeInline(void* dest,\n             const SEC_ASN1Template*
      templateEntry,\n             SECItem* src, PLArenaPool* arena, PRBool checkTag)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1GetSubtemplate
      Src: /src/nss/lib/util/quickder.c:415,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/quickder.c:417,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/util/quickder.c:420,1
    - Dst: DecodeItem
      Src: /src/nss/lib/util/quickder.c:423,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/quickder.c:425,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - dest
    - templateEntry
    - src
    - arena
    - checkTag
    argTypes:
    - void*
    - SEC_ASN1Template*
    - SECItem*
    - PLArenaPool*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 428
    functionName: DecodePointer
    functionSourceFile: /src/nss/lib/util/quickder.c
    functionUses: 0
    functionsReached:
    - DecodeItem
    - PORT_SetError
    - PORT_ArenaZAlloc
    - SEC_ASN1GetSubtemplate
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus DecodePointer(void* dest,\n              const SEC_ASN1Template*
      templateEntry,\n              SECItem* src, PLArenaPool* arena, PRBool checkTag)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DecodePointer
      Src: /src/nss/lib/util/quickder.c:436,1
    - Dst: DecodeInline
      Src: /src/nss/lib/util/quickder.c:439,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - dest
    - templateEntry
    - src
    - arena
    argTypes:
    - void*
    - SEC_ASN1Template*
    - SECItem*
    - PLArenaPool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 430
    functionDepth: 2
    functionLinenumber: 430
    functionLinenumberEnd: 442
    functionName: DecodeImplicit
    functionSourceFile: /src/nss/lib/util/quickder.c
    functionUses: 0
    functionsReached:
    - DecodeInline
    - DecodePointer
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus DecodeImplicit(void* dest,\n               const SEC_ASN1Template*
      templateEntry,\n               SECItem* src, PLArenaPool* arena)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DecodeItem
      Src: /src/nss/lib/util/quickder.c:465,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/quickder.c:471,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/quickder.c:482,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - dest
    - templateEntry
    - src
    - arena
    argTypes:
    - void*
    - SEC_ASN1Template*
    - SECItem*
    - PLArenaPool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 486
    functionName: DecodeChoice
    functionSourceFile: /src/nss/lib/util/quickder.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - DecodeItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus DecodeChoice(void* dest,\n             const SEC_ASN1Template*
      templateEntry,\n             SECItem* src, PLArenaPool* arena)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1GetSubtemplate
      Src: /src/nss/lib/util/quickder.c:501,1
    - Dst: GetItem
      Src: /src/nss/lib/util/quickder.c:507,1
    - Dst: GetItem
      Src: /src/nss/lib/util/quickder.c:519,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/util/quickder.c:528,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/quickder.c:534,1
    - Dst: DecodeItem
      Src: /src/nss/lib/util/quickder.c:555,1
    - Dst: memcpy
      Src: /src/nss/lib/util/quickder.c:559,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 37
    argCount: 4
    argNames:
    - dest
    - templateEntry
    - src
    - arena
    argTypes:
    - void*
    - SEC_ASN1Template*
    - SECItem*
    - PLArenaPool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 488
    functionDepth: 2
    functionLinenumber: 488
    functionLinenumberEnd: 562
    functionName: DecodeGroup
    functionSourceFile: /src/nss/lib/util/quickder.c
    functionUses: 0
    functionsReached:
    - GetItem
    - memcpy
    - PORT_ArenaZAlloc
    - DecodeItem
    - PORT_SetError
    - SEC_ASN1GetSubtemplate
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus DecodeGroup(void* dest,\n            const SEC_ASN1Template*
      templateEntry,\n            SECItem* src, PLArenaPool* arena)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetItem
      Src: /src/nss/lib/util/quickder.c:573,1
    - Dst: DecodePointer
      Src: /src/nss/lib/util/quickder.c:577,1
    - Dst: DecodeInline
      Src: /src/nss/lib/util/quickder.c:579,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - dest
    - templateEntry
    - src
    - arena
    argTypes:
    - void*
    - SEC_ASN1Template*
    - SECItem*
    - PLArenaPool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 564
    functionDepth: 2
    functionLinenumber: 564
    functionLinenumberEnd: 584
    functionName: DecodeExplicit
    functionSourceFile: /src/nss/lib/util/quickder.c
    functionUses: 0
    functionsReached:
    - DecodeInline
    - DecodePointer
    - GetItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus DecodeExplicit(void* dest,\n               const SEC_ASN1Template*
      templateEntry,\n               SECItem* src, PLArenaPool* arena)"
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: PR_ASSERT
      Src: /src/nss/lib/util/quickder.c:602,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/quickder.c:606,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/quickder.c:615,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/util/quickder.c:631,1
    - Dst: GetItem
      Src: /src/nss/lib/util/quickder.c:658,1
    - Dst: MatchComponentType
      Src: /src/nss/lib/util/quickder.c:667,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/quickder.c:680,1
    - Dst: DecodeInline
      Src: /src/nss/lib/util/quickder.c:692,1
    - Dst: DecodeExplicit
      Src: /src/nss/lib/util/quickder.c:696,1
    - Dst: DecodeImplicit
      Src: /src/nss/lib/util/quickder.c:702,1
    - Dst: DecodePointer
      Src: /src/nss/lib/util/quickder.c:704,1
    - Dst: DecodeChoice
      Src: /src/nss/lib/util/quickder.c:706,1
    - Dst: GetItem
      Src: /src/nss/lib/util/quickder.c:713,1
    - Dst: DecodeGroup
      Src: /src/nss/lib/util/quickder.c:718,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/quickder.c:721,1
    - Dst: DecodeSequence
      Src: /src/nss/lib/util/quickder.c:726,1
    - Dst: GetItem
      Src: /src/nss/lib/util/quickder.c:731,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/quickder.c:744,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/quickder.c:759,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/quickder.c:771,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/quickder.c:800,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 130
    argCount: 5
    argNames:
    - dest
    - templateEntry
    - src
    - arena
    - checkTag
    argTypes:
    - void*
    - SEC_ASN1Template*
    - SECItem*
    - PLArenaPool*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 588
    functionDepth: 3
    functionLinenumber: 588
    functionLinenumberEnd: 810
    functionName: DecodeItem
    functionSourceFile: /src/nss/lib/util/quickder.c
    functionUses: 110
    functionsReached:
    - GetItem
    - MatchComponentType
    - PR_ASSERT
    - DecodeInline
    - PORT_SetError
    - DecodePointer
    - DecodeSequence
    - DecodeImplicit
    - DecodeGroup
    - DecodeChoice
    - DecodeExplicit
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus DecodeItem(void* dest,\n           const SEC_ASN1Template*
      templateEntry,\n           SECItem* src, PLArenaPool* arena, PRBool checkTag)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/quickder.c:823,1
    - Dst: DecodeItem
      Src: /src/nss/lib/util/quickder.c:829,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/quickder.c:832,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 4
    argNames:
    - arena
    - dest
    - templateEntry
    - src
    argTypes:
    - PLArenaPool*
    - void*
    - SEC_ASN1Template*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 814
    functionDepth: 4
    functionLinenumber: 814
    functionLinenumberEnd: 837
    functionName: SEC_QuickDERDecodeItem
    functionSourceFile: /src/nss/lib/util/quickder.c
    functionUses: 69
    functionsReached:
    - PORT_SetError
    - DecodeItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SEC_QuickDERDecodeItem(PLArenaPool* arena, void* dest,\n
      \                      const SEC_ASN1Template* templateEntry,\n                       const
      SECItem* src)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/util/secasn1e.c:103,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 4
    argNames:
    - cx
    - theTemplate
    - src
    - new_depth
    argTypes:
    - SEC_ASN1EncoderContext*
    - SEC_ASN1Template*
    - void*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 126
    functionName: sec_asn1e_push_state
    functionSourceFile: /src/nss/lib/util/secasn1e.c
    functionUses: 0
    functionsReached:
    - PORT_ArenaZAlloc
    linkageType: ''
    returnType: sec_asn1e_state
    signature: "sec_asn1e_state *\nsec_asn1e_push_state(SEC_ASN1EncoderContext *cx,\n
      \                    const SEC_ASN1Template *theTemplate,\n                     const
      void *src, PRBool new_depth)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - sec_asn1e_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 137
    functionName: sec_asn1e_scrub_state
    functionSourceFile: /src/nss/lib/util/secasn1e.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sec_asn1e_scrub_state(sec_asn1e_state *state)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - cx
    - src
    - depth
    argTypes:
    - SEC_ASN1EncoderContext*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 148
    functionName: sec_asn1e_notify_before
    functionSourceFile: /src/nss/lib/util/secasn1e.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sec_asn1e_notify_before(SEC_ASN1EncoderContext *cx, void *src,
      int depth)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - cx
    - src
    - depth
    argTypes:
    - SEC_ASN1EncoderContext*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 159
    functionName: sec_asn1e_notify_after
    functionSourceFile: /src/nss/lib/util/secasn1e.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sec_asn1e_notify_after(SEC_ASN1EncoderContext *cx, void *src,
      int depth)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1e.c:183,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1e.c:201,1
    - Dst: sec_asn1e_scrub_state
      Src: /src/nss/lib/util/secasn1e.c:203,1
    - Dst: SEC_ASN1GetSubtemplate
      Src: /src/nss/lib/util/secasn1e.c:244,1
    - Dst: SEC_ASN1IsTemplateSimple
      Src: /src/nss/lib/util/secasn1e.c:248,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1e.c:257,1
    - Dst: sec_asn1e_push_state
      Src: /src/nss/lib/util/secasn1e.c:261,1
    - Dst: sec_asn1e_init_state_based_on_template
      Src: /src/nss/lib/util/secasn1e.c:270,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1e.c:305,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1e.c:310,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1e.c:331,1
    - Dst: sec_asn1e_scrub_state
      Src: /src/nss/lib/util/secasn1e.c:365,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 104
    argCount: 1
    argNames:
    - state
    argTypes:
    - sec_asn1e_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 368
    functionName: sec_asn1e_init_state_based_on_template
    functionSourceFile: /src/nss/lib/util/secasn1e.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - sec_asn1e_scrub_state
    - SEC_ASN1IsTemplateSimple
    - sec_asn1e_init_state_based_on_template
    - sec_asn1e_push_state
    - SEC_ASN1GetSubtemplate
    linkageType: ''
    returnType: sec_asn1e_state
    signature: 'sec_asn1e_state *

      sec_asn1e_init_state_based_on_template(sec_asn1e_state *state)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - state
    - buf
    - len
    - part
    argTypes:
    - sec_asn1e_state*
    - char*
    - unsigned long
    - SEC_ASN1EncodingPart
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 379
    functionName: sec_asn1e_write_part
    functionSourceFile: /src/nss/lib/util/secasn1e.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void sec_asn1e_write_part(sec_asn1e_state *state,\n                     const
      char *buf, unsigned long len,\n                     SEC_ASN1EncodingPart part)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sec_asn1e_write_part
      Src: /src/nss/lib/util/secasn1e.c:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - state
    - value
    argTypes:
    - sec_asn1e_state*
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 386
    functionDepth: 1
    functionLinenumber: 386
    functionLinenumberEnd: 393
    functionName: sec_asn1e_write_identifier_bytes
    functionSourceFile: /src/nss/lib/util/secasn1e.c
    functionUses: 0
    functionsReached:
    - sec_asn1e_write_part
    linkageType: ''
    returnType: void
    signature: void sec_asn1e_write_identifier_bytes(sec_asn1e_state *state, unsigned
      char value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1LengthLength
      Src: /src/nss/lib/util/secasn1e.c:400,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1e.c:412,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - buf
    - value
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 415
    functionName: SEC_ASN1EncodeLength
    functionSourceFile: /src/nss/lib/util/secasn1e.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SEC_ASN1LengthLength
    linkageType: ''
    returnType: int
    signature: int SEC_ASN1EncodeLength(unsigned char *buf, int value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1e.c:425,1
    - Dst: SEC_ASN1EncodeLength
      Src: /src/nss/lib/util/secasn1e.c:429,1
    - Dst: sec_asn1e_write_part
      Src: /src/nss/lib/util/secasn1e.c:432,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - state
    - value
    - indefinite
    argTypes:
    - sec_asn1e_state*
    - unsigned long
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 417
    functionDepth: 1
    functionLinenumber: 417
    functionLinenumberEnd: 433
    functionName: sec_asn1e_write_length_bytes
    functionSourceFile: /src/nss/lib/util/secasn1e.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - sec_asn1e_write_part
    - SEC_ASN1EncodeLength
    linkageType: ''
    returnType: void
    signature: "void sec_asn1e_write_length_bytes(sec_asn1e_state *state, unsigned
      long value,\n                             PRBool indefinite)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sec_asn1e_write_part
      Src: /src/nss/lib/util/secasn1e.c:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - state
    - buf
    - len
    argTypes:
    - sec_asn1e_state*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 440
    functionName: sec_asn1e_write_contents_bytes
    functionSourceFile: /src/nss/lib/util/secasn1e.c
    functionUses: 0
    functionsReached:
    - sec_asn1e_write_part
    linkageType: ''
    returnType: void
    signature: "void sec_asn1e_write_contents_bytes(sec_asn1e_state *state,\n                               const
      char *buf, unsigned long len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sec_asn1e_write_part
      Src: /src/nss/lib/util/secasn1e.c:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - sec_asn1e_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 448
    functionName: sec_asn1e_write_end_of_contents_bytes
    functionSourceFile: /src/nss/lib/util/secasn1e.c
    functionUses: 0
    functionsReached:
    - sec_asn1e_write_part
    linkageType: ''
    returnType: void
    signature: void sec_asn1e_write_end_of_contents_bytes(sec_asn1e_state *state)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - src
    - theTemplate
    argTypes:
    - void*
    - SEC_ASN1Template*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 465
    functionName: sec_asn1e_which_choice
    functionSourceFile: /src/nss/lib/util/secasn1e.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int sec_asn1e_which_choice(\n    void *src,\n    const SEC_ASN1Template
      *theTemplate)"
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1e.c:503,1
    - Dst: sec_asn1e_which_choice
      Src: /src/nss/lib/util/secasn1e.c:518,1
    - Dst: sec_asn1e_contents_length
      Src: /src/nss/lib/util/secasn1e.c:527,1
    - Dst: SEC_ASN1GetSubtemplate
      Src: /src/nss/lib/util/secasn1e.c:534,1
    - Dst: SEC_ASN1IsTemplateSimple
      Src: /src/nss/lib/util/secasn1e.c:544,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1e.c:554,1
    - Dst: sec_asn1e_contents_length
      Src: /src/nss/lib/util/secasn1e.c:563,1
    - Dst: SEC_ASN1LengthLength
      Src: /src/nss/lib/util/secasn1e.c:579,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1e.c:589,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1e.c:599,1
    - Dst: sec_asn1e_which_choice
      Src: /src/nss/lib/util/secasn1e.c:605,1
    - Dst: sec_asn1e_contents_length
      Src: /src/nss/lib/util/secasn1e.c:613,1
    - Dst: SEC_ASN1GetSubtemplate
      Src: /src/nss/lib/util/secasn1e.c:631,1
    - Dst: sec_asn1e_contents_length
      Src: /src/nss/lib/util/secasn1e.c:635,1
    - Dst: SEC_ASN1LengthLength
      Src: /src/nss/lib/util/secasn1e.c:645,1
    - Dst: sec_asn1e_contents_length
      Src: /src/nss/lib/util/secasn1e.c:658,1
    - Dst: SEC_ASN1LengthLength
      Src: /src/nss/lib/util/secasn1e.c:668,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 141
    argCount: 5
    argNames:
    - theTemplate
    - src
    - disallowStreaming
    - insideIndefinite
    - pHdrException
    argTypes:
    - SEC_ASN1Template*
    - void*
    - PRBool
    - PRBool
    - sec_asn1e_hdr_encoding*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 467
    functionDepth: 1
    functionLinenumber: 467
    functionLinenumberEnd: 730
    functionName: sec_asn1e_contents_length
    functionSourceFile: /src/nss/lib/util/secasn1e.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - SEC_ASN1IsTemplateSimple
    - sec_asn1e_contents_length
    - SEC_ASN1GetSubtemplate
    - SEC_ASN1LengthLength
    - sec_asn1e_which_choice
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long sec_asn1e_contents_length(const SEC_ASN1Template *theTemplate,
      void *src,\n                          PRBool disallowStreaming, PRBool insideIndefinite,\n
      \                         sec_asn1e_hdr_encoding *pHdrException)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1e.c:740,1
    - Dst: sec_asn1e_which_choice
      Src: /src/nss/lib/util/secasn1e.c:751,1
    - Dst: sec_asn1e_push_state
      Src: /src/nss/lib/util/secasn1e.c:758,1
    - Dst: sec_asn1e_notify_before
      Src: /src/nss/lib/util/secasn1e.c:765,1
    - Dst: sec_asn1e_init_state_based_on_template
      Src: /src/nss/lib/util/secasn1e.c:766,1
    - Dst: sec_asn1e_contents_length
      Src: /src/nss/lib/util/secasn1e.c:787,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1e.c:822,1
    - Dst: sec_asn1e_write_identifier_bytes
      Src: /src/nss/lib/util/secasn1e.c:827,1
    - Dst: sec_asn1e_write_length_bytes
      Src: /src/nss/lib/util/secasn1e.c:829,1
    - Dst: SEC_ASN1GetSubtemplate
      Src: /src/nss/lib/util/secasn1e.c:845,1
    - Dst: sec_asn1e_push_state
      Src: /src/nss/lib/util/secasn1e.c:847,1
    - Dst: sec_asn1e_init_state_based_on_template
      Src: /src/nss/lib/util/secasn1e.c:849,1
    - Dst: SEC_ASN1GetSubtemplate
      Src: /src/nss/lib/util/secasn1e.c:873,1
    - Dst: sec_asn1e_push_state
      Src: /src/nss/lib/util/secasn1e.c:875,1
    - Dst: sec_asn1e_init_state_based_on_template
      Src: /src/nss/lib/util/secasn1e.c:877,1
    - Dst: sec_asn1e_push_state
      Src: /src/nss/lib/util/secasn1e.c:888,1
    - Dst: sec_asn1e_notify_before
      Src: /src/nss/lib/util/secasn1e.c:894,1
    - Dst: sec_asn1e_init_state_based_on_template
      Src: /src/nss/lib/util/secasn1e.c:895,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 79
    argCount: 1
    argNames:
    - state
    argTypes:
    - sec_asn1e_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 732
    functionDepth: 2
    functionLinenumber: 732
    functionLinenumberEnd: 907
    functionName: sec_asn1e_write_header
    functionSourceFile: /src/nss/lib/util/secasn1e.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - sec_asn1e_notify_before
    - sec_asn1e_write_identifier_bytes
    - sec_asn1e_contents_length
    - sec_asn1e_init_state_based_on_template
    - SEC_ASN1GetSubtemplate
    - sec_asn1e_push_state
    - sec_asn1e_write_length_bytes
    - sec_asn1e_which_choice
    linkageType: ''
    returnType: void
    signature: void sec_asn1e_write_header(sec_asn1e_state *state)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1e.c:913,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1e.c:914,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1e.c:915,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1e.c:934,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1e.c:949,1
    - Dst: sec_asn1e_write_identifier_bytes
      Src: /src/nss/lib/util/secasn1e.c:953,1
    - Dst: sec_asn1e_write_length_bytes
      Src: /src/nss/lib/util/secasn1e.c:968,1
    - Dst: sec_asn1e_write_contents_bytes
      Src: /src/nss/lib/util/secasn1e.c:970,1
    - Dst: sec_asn1e_write_length_bytes
      Src: /src/nss/lib/util/secasn1e.c:972,1
    - Dst: sec_asn1e_write_contents_bytes
      Src: /src/nss/lib/util/secasn1e.c:975,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - state
    - buf
    - len
    argTypes:
    - sec_asn1e_state*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 909
    functionDepth: 2
    functionLinenumber: 909
    functionLinenumberEnd: 977
    functionName: sec_asn1e_write_contents_from_buf
    functionSourceFile: /src/nss/lib/util/secasn1e.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - sec_asn1e_write_identifier_bytes
    - sec_asn1e_write_contents_bytes
    - sec_asn1e_write_length_bytes
    linkageType: ''
    returnType: void
    signature: "void sec_asn1e_write_contents_from_buf(sec_asn1e_state *state,\n                                  const
      char *buf, unsigned long len)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1e.c:984,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1e.c:989,1
    - Dst: sec_asn1e_write_contents_bytes
      Src: /src/nss/lib/util/secasn1e.c:999,1
    - Dst: sec_asn1e_write_contents_bytes
      Src: /src/nss/lib/util/secasn1e.c:1000,1
    - Dst: sec_asn1e_write_contents_bytes
      Src: /src/nss/lib/util/secasn1e.c:1041,1
    - Dst: sec_asn1e_write_contents_bytes
      Src: /src/nss/lib/util/secasn1e.c:1043,1
    - Dst: sec_asn1e_write_contents_bytes
      Src: /src/nss/lib/util/secasn1e.c:1056,1
    - Dst: sec_asn1e_write_contents_bytes
      Src: /src/nss/lib/util/secasn1e.c:1073,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 59
    argCount: 1
    argNames:
    - state
    argTypes:
    - sec_asn1e_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 979
    functionDepth: 2
    functionLinenumber: 979
    functionLinenumberEnd: 1078
    functionName: sec_asn1e_write_contents
    functionSourceFile: /src/nss/lib/util/secasn1e.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - sec_asn1e_write_contents_bytes
    linkageType: ''
    returnType: void
    signature: void sec_asn1e_write_contents(sec_asn1e_state *state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1e.c:1090,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1e.c:1091,1
    - Dst: sec_asn1e_scrub_state
      Src: /src/nss/lib/util/secasn1e.c:1121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - state
    argTypes:
    - sec_asn1e_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1123
      start: 1083
    functionDepth: 1
    functionLinenumber: 1083
    functionLinenumberEnd: 1123
    functionName: sec_asn1e_next_in_group
    functionSourceFile: /src/nss/lib/util/secasn1e.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - sec_asn1e_scrub_state
    linkageType: ''
    returnType: void
    signature: void sec_asn1e_next_in_group(sec_asn1e_state *state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1e.c:1134,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1e.c:1135,1
    - Dst: sec_asn1e_notify_after
      Src: /src/nss/lib/util/secasn1e.c:1142,1
    - Dst: sec_asn1e_notify_before
      Src: /src/nss/lib/util/secasn1e.c:1166,1
    - Dst: sec_asn1e_init_state_based_on_template
      Src: /src/nss/lib/util/secasn1e.c:1169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - state
    argTypes:
    - sec_asn1e_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1129
    functionDepth: 2
    functionLinenumber: 1129
    functionLinenumberEnd: 1170
    functionName: sec_asn1e_next_in_sequence
    functionSourceFile: /src/nss/lib/util/secasn1e.c
    functionUses: 0
    functionsReached:
    - sec_asn1e_init_state_based_on_template
    - PORT_Assert
    - sec_asn1e_notify_before
    - sec_asn1e_notify_after
    linkageType: ''
    returnType: void
    signature: void sec_asn1e_next_in_sequence(sec_asn1e_state *state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1e.c:1175,1
    - Dst: sec_asn1e_write_end_of_contents_bytes
      Src: /src/nss/lib/util/secasn1e.c:1178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - sec_asn1e_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1185
      start: 1172
    functionDepth: 2
    functionLinenumber: 1172
    functionLinenumberEnd: 1185
    functionName: sec_asn1e_after_contents
    functionSourceFile: /src/nss/lib/util/secasn1e.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - sec_asn1e_write_end_of_contents_bytes
    linkageType: ''
    returnType: void
    signature: void sec_asn1e_after_contents(sec_asn1e_state *state)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: sec_asn1e_write_header
      Src: /src/nss/lib/util/secasn1e.c:1212,1
    - Dst: sec_asn1e_write_contents_from_buf
      Src: /src/nss/lib/util/secasn1e.c:1216,1
    - Dst: sec_asn1e_write_contents
      Src: /src/nss/lib/util/secasn1e.c:1218,1
    - Dst: sec_asn1e_next_in_group
      Src: /src/nss/lib/util/secasn1e.c:1221,1
    - Dst: sec_asn1e_next_in_sequence
      Src: /src/nss/lib/util/secasn1e.c:1224,1
    - Dst: sec_asn1e_after_contents
      Src: /src/nss/lib/util/secasn1e.c:1227,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1e.c:1237,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1e.c:1243,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 49
    argCount: 3
    argNames:
    - cx
    - buf
    - len
    argTypes:
    - SEC_ASN1EncoderContext*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1266
      start: 1198
    functionDepth: 3
    functionLinenumber: 1198
    functionLinenumberEnd: 1266
    functionName: SEC_ASN1EncoderUpdate
    functionSourceFile: /src/nss/lib/util/secasn1e.c
    functionUses: 8
    functionsReached:
    - PORT_Assert
    - sec_asn1e_write_contents_from_buf
    - sec_asn1e_next_in_group
    - sec_asn1e_after_contents
    - sec_asn1e_write_contents
    - sec_asn1e_next_in_sequence
    - sec_asn1e_write_header
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SEC_ASN1EncoderUpdate(SEC_ASN1EncoderContext *cx,\n                      const
      char *buf, unsigned long len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/util/secasn1e.c:1275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cx
    argTypes:
    - SEC_ASN1EncoderContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1276
      start: 1268
    functionDepth: 0
    functionLinenumber: 1268
    functionLinenumberEnd: 1276
    functionName: SEC_ASN1EncoderFinish
    functionSourceFile: /src/nss/lib/util/secasn1e.c
    functionUses: 6
    functionsReached:
    - PORT_FreeArena
    linkageType: ''
    returnType: void
    signature: void SEC_ASN1EncoderFinish(SEC_ASN1EncoderContext *cx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/util/secasn1e.c:1285,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/util/secasn1e.c:1289,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/util/secasn1e.c:1291,1
    - Dst: sec_asn1e_push_state
      Src: /src/nss/lib/util/secasn1e.c:1301,1
    - Dst: sec_asn1e_init_state_based_on_template
      Src: /src/nss/lib/util/secasn1e.c:1302,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/util/secasn1e.c:1307,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - src
    - theTemplate
    - output_proc
    - output_arg
    argTypes:
    - void*
    - SEC_ASN1Template*
    - SEC_ASN1WriteProc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1312
      start: 1278
    functionDepth: 2
    functionLinenumber: 1278
    functionLinenumberEnd: 1312
    functionName: SEC_ASN1EncoderStart
    functionSourceFile: /src/nss/lib/util/secasn1e.c
    functionUses: 4
    functionsReached:
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - PORT_FreeArena
    - sec_asn1e_init_state_based_on_template
    - sec_asn1e_push_state
    linkageType: ''
    returnType: SEC_ASN1EncoderContext
    signature: "SEC_ASN1EncoderContext *\nSEC_ASN1EncoderStart(const void *src, const
      SEC_ASN1Template *theTemplate,\n                     SEC_ASN1WriteProc output_proc,
      void *output_arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - cx
    - fn
    - arg
    argTypes:
    - SEC_ASN1EncoderContext*
    - SEC_ASN1NotifyProc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1324
      start: 1318
    functionDepth: 0
    functionLinenumber: 1318
    functionLinenumberEnd: 1324
    functionName: SEC_ASN1EncoderSetNotifyProc
    functionSourceFile: /src/nss/lib/util/secasn1e.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void SEC_ASN1EncoderSetNotifyProc(SEC_ASN1EncoderContext *cx,\n                             SEC_ASN1NotifyProc
      fn, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cx
    argTypes:
    - SEC_ASN1EncoderContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1331
      start: 1326
    functionDepth: 0
    functionLinenumber: 1326
    functionLinenumberEnd: 1331
    functionName: SEC_ASN1EncoderClearNotifyProc
    functionSourceFile: /src/nss/lib/util/secasn1e.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SEC_ASN1EncoderClearNotifyProc(SEC_ASN1EncoderContext *cx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1e.c:1336,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secasn1e.c:1337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - cx
    - error
    argTypes:
    - SEC_ASN1EncoderContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1339
      start: 1333
    functionDepth: 0
    functionLinenumber: 1333
    functionLinenumberEnd: 1339
    functionName: SEC_ASN1EncoderAbort
    functionSourceFile: /src/nss/lib/util/secasn1e.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    linkageType: ''
    returnType: void
    signature: void SEC_ASN1EncoderAbort(SEC_ASN1EncoderContext *cx, int error)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cx
    argTypes:
    - SEC_ASN1EncoderContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1347
      start: 1341
    functionDepth: 0
    functionLinenumber: 1341
    functionLinenumberEnd: 1347
    functionName: SEC_ASN1EncoderSetStreaming
    functionSourceFile: /src/nss/lib/util/secasn1e.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SEC_ASN1EncoderSetStreaming(SEC_ASN1EncoderContext *cx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cx
    argTypes:
    - SEC_ASN1EncoderContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1355
      start: 1349
    functionDepth: 0
    functionLinenumber: 1349
    functionLinenumberEnd: 1355
    functionName: SEC_ASN1EncoderClearStreaming
    functionSourceFile: /src/nss/lib/util/secasn1e.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SEC_ASN1EncoderClearStreaming(SEC_ASN1EncoderContext *cx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1e.c:1365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cx
    argTypes:
    - SEC_ASN1EncoderContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1368
      start: 1357
    functionDepth: 0
    functionLinenumber: 1357
    functionLinenumberEnd: 1368
    functionName: SEC_ASN1EncoderSetTakeFromBuf
    functionSourceFile: /src/nss/lib/util/secasn1e.c
    functionUses: 3
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: void
    signature: void SEC_ASN1EncoderSetTakeFromBuf(SEC_ASN1EncoderContext *cx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1e.c:1374,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - cx
    argTypes:
    - SEC_ASN1EncoderContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1384
      start: 1370
    functionDepth: 0
    functionLinenumber: 1370
    functionLinenumberEnd: 1384
    functionName: SEC_ASN1EncoderClearTakeFromBuf
    functionSourceFile: /src/nss/lib/util/secasn1e.c
    functionUses: 3
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: void
    signature: void SEC_ASN1EncoderClearTakeFromBuf(SEC_ASN1EncoderContext *cx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1EncoderStart
      Src: /src/nss/lib/util/secasn1e.c:1393,1
    - Dst: SEC_ASN1EncoderUpdate
      Src: /src/nss/lib/util/secasn1e.c:1397,1
    - Dst: SEC_ASN1EncoderFinish
      Src: /src/nss/lib/util/secasn1e.c:1399,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - src
    - theTemplate
    - output_proc
    - output_arg
    argTypes:
    - void*
    - SEC_ASN1Template*
    - SEC_ASN1WriteProc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1401
      start: 1386
    functionDepth: 0
    functionLinenumber: 1386
    functionLinenumberEnd: 1401
    functionName: SEC_ASN1Encode
    functionSourceFile: /src/nss/lib/util/secasn1e.c
    functionUses: 7
    functionsReached:
    - SEC_ASN1EncoderStart
    - SEC_ASN1EncoderFinish
    - SEC_ASN1EncoderUpdate
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SEC_ASN1Encode(const void *src, const SEC_ASN1Template *theTemplate,\n
      \              SEC_ASN1WriteProc output_proc, void *output_arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1e.c:1414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - arg
    - buf
    - len
    - depth
    - data_kind
    argTypes:
    - void*
    - char*
    - unsigned long
    - int
    - SEC_ASN1EncodingPart
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1417
      start: 1407
    functionDepth: 0
    functionLinenumber: 1407
    functionLinenumberEnd: 1417
    functionName: sec_asn1e_encode_item_count
    functionSourceFile: /src/nss/lib/util/secasn1e.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: void
    signature: "void sec_asn1e_encode_item_count(void *arg, const char *buf, unsigned
      long len,\n                            int depth, SEC_ASN1EncodingPart data_kind)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1e.c:1427,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/util/secasn1e.c:1430,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - arg
    - buf
    - len
    - depth
    - data_kind
    argTypes:
    - void*
    - char*
    - unsigned long
    - int
    - SEC_ASN1EncodingPart
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1433
      start: 1420
    functionDepth: 0
    functionLinenumber: 1420
    functionLinenumberEnd: 1433
    functionName: sec_asn1e_encode_item_store
    functionSourceFile: /src/nss/lib/util/secasn1e.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_Memcpy
    linkageType: ''
    returnType: void
    signature: "void sec_asn1e_encode_item_store(void *arg, const char *buf, unsigned
      long len,\n                            int depth, SEC_ASN1EncodingPart data_kind)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/util/secasn1e.c:1448,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/util/secasn1e.c:1450,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/util/secasn1e.c:1452,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/util/secasn1e.c:1459,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/util/secasn1e.c:1462,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/util/secasn1e.c:1469,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/util/secasn1e.c:1472,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/secasn1e.c:1475,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 3
    argNames:
    - poolp
    - dest
    - len
    argTypes:
    - PLArenaPool*
    - SECItem*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1482
      start: 1442
    functionDepth: 0
    functionLinenumber: 1442
    functionLinenumberEnd: 1482
    functionName: sec_asn1e_allocate_item
    functionSourceFile: /src/nss/lib/util/secasn1e.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_ArenaAlloc
    - PORT_Free
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - PORT_ArenaUnmark
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      sec_asn1e_allocate_item(PLArenaPool *poolp, SECItem *dest, unsigned long len)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1e.c:1491,1
    - Dst: SEC_ASN1Encode
      Src: /src/nss/lib/util/secasn1e.c:1494,1
    - Dst: sec_asn1e_allocate_item
      Src: /src/nss/lib/util/secasn1e.c:1499,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1e.c:1504,1
    - Dst: SEC_ASN1Encode
      Src: /src/nss/lib/util/secasn1e.c:1509,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1e.c:1511,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - poolp
    - dest
    - src
    - theTemplate
    argTypes:
    - PLArenaPool*
    - SECItem*
    - void*
    - SEC_ASN1Template*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1513
      start: 1484
    functionDepth: 1
    functionLinenumber: 1484
    functionLinenumberEnd: 1513
    functionName: SEC_ASN1EncodeItem
    functionSourceFile: /src/nss/lib/util/secasn1e.c
    functionUses: 78
    functionsReached:
    - SEC_ASN1Encode
    - PORT_Assert
    - sec_asn1e_allocate_item
    linkageType: ''
    returnType: SECItem
    signature: "SECItem *\nSEC_ASN1EncodeItem(PLArenaPool *poolp, SECItem *dest, const
      void *src,\n                   const SEC_ASN1Template *theTemplate)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sec_asn1e_allocate_item
      Src: /src/nss/lib/util/secasn1e.c:1544,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1e.c:1556,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 4
    argNames:
    - poolp
    - dest
    - value
    - is_unsigned
    argTypes:
    - PLArenaPool*
    - SECItem*
    - unsigned long
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1559
      start: 1515
    functionDepth: 1
    functionLinenumber: 1515
    functionLinenumberEnd: 1559
    functionName: sec_asn1e_integer
    functionSourceFile: /src/nss/lib/util/secasn1e.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - sec_asn1e_allocate_item
    linkageType: ''
    returnType: SECItem
    signature: "SECItem *\nsec_asn1e_integer(PLArenaPool *poolp, SECItem *dest, unsigned
      long value,\n                  PRBool is_unsigned)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sec_asn1e_integer
      Src: /src/nss/lib/util/secasn1e.c:1564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - poolp
    - dest
    - value
    argTypes:
    - PLArenaPool*
    - SECItem*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1565
      start: 1561
    functionDepth: 2
    functionLinenumber: 1561
    functionLinenumberEnd: 1565
    functionName: SEC_ASN1EncodeInteger
    functionSourceFile: /src/nss/lib/util/secasn1e.c
    functionUses: 31
    functionsReached:
    - sec_asn1e_integer
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      SEC_ASN1EncodeInteger(PLArenaPool *poolp, SECItem *dest, long value)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sec_asn1e_integer
      Src: /src/nss/lib/util/secasn1e.c:1571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - poolp
    - dest
    - value
    argTypes:
    - PLArenaPool*
    - SECItem*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1572
      start: 1567
    functionDepth: 2
    functionLinenumber: 1567
    functionLinenumberEnd: 1572
    functionName: SEC_ASN1EncodeUnsignedInteger
    functionSourceFile: /src/nss/lib/util/secasn1e.c
    functionUses: 3
    functionsReached:
    - sec_asn1e_integer
    linkageType: ''
    returnType: SECItem
    signature: "SECItem *\nSEC_ASN1EncodeUnsignedInteger(PLArenaPool *poolp,\n                              SECItem
      *dest, unsigned long value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DecodeUTCTime2FormattedAscii
      Src: /src/nss/lib/util/sectime.c:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - utcTime
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 18
    functionName: DER_UTCTimeToAscii
    functionSourceFile: /src/nss/lib/util/sectime.c
    functionUses: 0
    functionsReached:
    - DecodeUTCTime2FormattedAscii
    linkageType: ''
    returnType: char
    signature: 'char *

      DER_UTCTimeToAscii(SECItem *utcTime)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DecodeUTCTime2FormattedAscii
      Src: /src/nss/lib/util/sectime.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - utctime
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 25
    functionName: DER_UTCDayToAscii
    functionSourceFile: /src/nss/lib/util/sectime.c
    functionUses: 0
    functionsReached:
    - DecodeUTCTime2FormattedAscii
    linkageType: ''
    returnType: char
    signature: 'char *

      DER_UTCDayToAscii(SECItem *utctime)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DecodeGeneralizedTime2FormattedAscii
      Src: /src/nss/lib/util/sectime.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gentime
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: DER_GeneralizedDayToAscii
    functionSourceFile: /src/nss/lib/util/sectime.c
    functionUses: 0
    functionsReached:
    - DecodeGeneralizedTime2FormattedAscii
    linkageType: ''
    returnType: char
    signature: 'char *

      DER_GeneralizedDayToAscii(SECItem *gentime)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DER_UTCDayToAscii
      Src: /src/nss/lib/util/sectime.c:43,1
    - Dst: DER_GeneralizedDayToAscii
      Src: /src/nss/lib/util/sectime.c:46,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/sectime.c:49,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/sectime.c:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - timechoice
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 53
    functionName: DER_TimeChoiceDayToAscii
    functionSourceFile: /src/nss/lib/util/sectime.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - DER_GeneralizedDayToAscii
    - DER_UTCDayToAscii
    linkageType: ''
    returnType: char
    signature: 'char *

      DER_TimeChoiceDayToAscii(SECItem *timechoice)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_ExplodeTime
      Src: /src/nss/lib/util/sectime.c:62,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/util/sectime.c:64,1
    - Dst: PR_FormatTime
      Src: /src/nss/lib/util/sectime.c:67,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/sectime.c:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - utcTime
    - format
    argTypes:
    - PRTime
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 74
    functionName: CERT_UTCTime2FormattedAscii
    functionSourceFile: /src/nss/lib/util/sectime.c
    functionUses: 0
    functionsReached:
    - PR_ExplodeTime
    - PORT_Free
    - PORT_Alloc
    - PR_FormatTime
    linkageType: ''
    returnType: char
    signature: 'char *

      CERT_UTCTime2FormattedAscii(PRTime utcTime, char *format)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_ExplodeTime
      Src: /src/nss/lib/util/sectime.c:83,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/util/sectime.c:85,1
    - Dst: PR_FormatTime
      Src: /src/nss/lib/util/sectime.c:88,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/sectime.c:89,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/sectime.c:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - genTime
    - format
    argTypes:
    - PRTime
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 96
    functionName: CERT_GenTime2FormattedAscii
    functionSourceFile: /src/nss/lib/util/sectime.c
    functionUses: 2
    functionsReached:
    - PORT_Alloc
    - PORT_Free
    - PR_FormatTime
    - PR_ExplodeTime
    - PORT_SetError
    linkageType: ''
    returnType: char
    signature: 'char *

      CERT_GenTime2FormattedAscii(PRTime genTime, char *format)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DER_UTCTimeToTime
      Src: /src/nss/lib/util/sectime.c:107,1
    - Dst: CERT_UTCTime2FormattedAscii
      Src: /src/nss/lib/util/sectime.c:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - utcTimeDER
    - format
    argTypes:
    - SECItem*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 112
    functionName: DecodeUTCTime2FormattedAscii
    functionSourceFile: /src/nss/lib/util/sectime.c
    functionUses: 2
    functionsReached:
    - CERT_UTCTime2FormattedAscii
    - DER_UTCTimeToTime
    linkageType: ''
    returnType: char
    signature: 'char *

      DecodeUTCTime2FormattedAscii(SECItem *utcTimeDER, char *format)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DER_GeneralizedTimeToTime
      Src: /src/nss/lib/util/sectime.c:123,1
    - Dst: CERT_GeneralizedTime2FormattedAscii
      Src: /src/nss/lib/util/sectime.c:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - generalizedTimeDER
    - format
    argTypes:
    - SECItem*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 128
    functionName: DecodeGeneralizedTime2FormattedAscii
    functionSourceFile: /src/nss/lib/util/sectime.c
    functionUses: 1
    functionsReached:
    - DER_GeneralizedTimeToTime
    - CERT_GeneralizedTime2FormattedAscii
    linkageType: ''
    returnType: char
    signature: 'char *

      DecodeGeneralizedTime2FormattedAscii(SECItem *generalizedTimeDER, char *format)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DER_GeneralizedTimeToTime
      Src: /src/nss/lib/util/sectime.c:138,1
    - Dst: DER_UTCTimeToTime
      Src: /src/nss/lib/util/sectime.c:141,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/sectime.c:144,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/sectime.c:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - output
    - input
    argTypes:
    - PRTime*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 148
    functionName: DER_DecodeTimeChoice
    functionSourceFile: /src/nss/lib/util/sectime.c
    functionUses: 16
    functionsReached:
    - PORT_Assert
    - DER_GeneralizedTimeToTime
    - PORT_SetError
    - DER_UTCTimeToTime
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus DER_DecodeTimeChoice(PRTime *output, const SECItem *input)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DER_TimeToUTCTimeArena
      Src: /src/nss/lib/util/sectime.c:158,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/util/sectime.c:159,1
    - Dst: DER_TimeToGeneralizedTimeArena
      Src: /src/nss/lib/util/sectime.c:162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - arena
    - output
    - input
    argTypes:
    - PLArenaPool*
    - SECItem*
    - PRTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 163
    functionName: DER_EncodeTimeChoice
    functionSourceFile: /src/nss/lib/util/sectime.c
    functionUses: 7
    functionsReached:
    - DER_TimeToUTCTimeArena
    - PORT_GetError
    - DER_TimeToGeneralizedTimeArena
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus DER_EncodeTimeChoice(PLArenaPool *arena, SECItem *output,
      PRTime input)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - code
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 15
    functionName: IS_SEC_ERROR
    functionSourceFile: /src/nss/lib/util/secerr.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_SEC_ERROR(code)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_NEWZAP
      Src: /src/nss/lib/util/secplcy.c:13,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - onlyAllowed
    - policy
    - ciphers
    argTypes:
    - PRBool
    - secCPStruct*
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 8
    functionDepth: 1
    functionLinenumber: 8
    functionLinenumberEnd: 21
    functionName: sec_CipherFindInit
    functionSourceFile: /src/nss/lib/util/secplcy.c
    functionUses: 0
    functionsReached:
    - PR_NEWZAP
    linkageType: ''
    returnType: SECCipherFind
    signature: "SECCipherFind *\nsec_CipherFindInit(PRBool onlyAllowed,\n                   secCPStruct
      *policy,\n                   long *ciphers)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - find
    argTypes:
    - SECCipherFind*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 52
    functionName: sec_CipherFindNext
    functionSourceFile: /src/nss/lib/util/secplcy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long sec_CipherFindNext(SECCipherFind *find)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - cipher
    - policies
    - ciphers
    argTypes:
    - long
    - secCPStruct*
    - long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 77
    functionName: sec_IsCipherAllowed
    functionSourceFile: /src/nss/lib/util/secplcy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: "char sec_IsCipherAllowed(long cipher, secCPStruct *policies,\n                    long
      *ciphers)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_FREEIF
      Src: /src/nss/lib/util/secplcy.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - find
    argTypes:
    - SECCipherFind*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: sec_CipherFindEnd
    functionSourceFile: /src/nss/lib/util/secplcy.c
    functionUses: 0
    functionsReached:
    - PR_FREEIF
    linkageType: ''
    returnType: void
    signature: void sec_CipherFindEnd(SECCipherFind *find)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 97
    functionName: PLBase64EncoderStr
    functionSourceFile: /src/nss/lib/util/nssb64e.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PR_BEGIN_EXTERN_C
    signature: PR_BEGIN_EXTERN_C PLBase64EncoderStr
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PR_ASSERT
      Src: /src/nss/lib/util/nssb64e.c:127,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/util/nssb64e.c:184,1
    - Dst: PLBase64Encoder*::output_fn
      Src: /src/nss/lib/util/nssb64e.c:188,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/util/nssb64e.c:202,1
    - Dst: PR_SetError
      Src: /src/nss/lib/util/nssb64e.c:204,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 64
    argCount: 3
    argNames:
    - data
    - in
    - size
    argTypes:
    - PLBase64Encoder*
    - unsigned char*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 212
    functionName: pl_base64_encode_buffer
    functionSourceFile: /src/nss/lib/util/nssb64e.c
    functionUses: 0
    functionsReached:
    - PLBase64Encoder*::output_fn
    - PR_SetError
    - PR_ASSERT
    linkageType: ''
    returnType: PRStatus
    signature: "PRStatus pl_base64_encode_buffer(PLBase64Encoder *data, const unsigned
      char *in,\n                        PRUint32 size)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PLBase64Encoder*::output_fn
      Src: /src/nss/lib/util/nssb64e.c:263,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - data
    argTypes:
    - PLBase64Encoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 272
    functionName: pl_base64_encode_flush
    functionSourceFile: /src/nss/lib/util/nssb64e.c
    functionUses: 0
    functionsReached:
    - PLBase64Encoder*::output_fn
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus pl_base64_encode_flush(PLBase64Encoder *data)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - size
    - line_length
    argTypes:
    - PRUint32
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 309
    functionName: PL_Base64MaxEncodedLength
    functionSourceFile: /src/nss/lib/util/nssb64e.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRUint32
    signature: PRUint32 PL_Base64MaxEncodedLength(PRUint32 size, PRUint32 line_length)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PR_NEWZAP
      Src: /src/nss/lib/util/nssb64e.c:328,1
    - Dst: PR_Malloc
      Src: /src/nss/lib/util/nssb64e.c:346,1
    - Dst: PR_Free
      Src: /src/nss/lib/util/nssb64e.c:348,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - line_length
    - output_buffer
    - output_buflen
    argTypes:
    - PRUint32
    - char*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 356
    functionName: pl_base64_create_encoder
    functionSourceFile: /src/nss/lib/util/nssb64e.c
    functionUses: 0
    functionsReached:
    - PR_NEWZAP
    - PR_Malloc
    - PR_Free
    linkageType: ''
    returnType: PLBase64Encoder
    signature: "PLBase64Encoder *\npl_base64_create_encoder(PRUint32 line_length,
      char *output_buffer,\n                         PRUint32 output_buflen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_SetError
      Src: /src/nss/lib/util/nssb64e.c:373,1
    - Dst: pl_base64_create_encoder
      Src: /src/nss/lib/util/nssb64e.c:377,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - output_arg
    - line_length
    argTypes:
    - void*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 366
    functionDepth: 2
    functionLinenumber: 366
    functionLinenumberEnd: 385
    functionName: PL_CreateBase64Encoder
    functionSourceFile: /src/nss/lib/util/nssb64e.c
    functionUses: 0
    functionsReached:
    - PR_SetError
    - pl_base64_create_encoder
    linkageType: ''
    returnType: PLBase64Encoder
    signature: "PLBase64Encoder *\nPL_CreateBase64Encoder(PRInt32 (*output_fn)(void
      *, const char *, PRInt32),\n                       void *output_arg, PRUint32
      line_length)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_SetError
      Src: /src/nss/lib/util/nssb64e.c:397,1
    - Dst: pl_base64_encode_buffer
      Src: /src/nss/lib/util/nssb64e.c:401,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - data
    - buffer
    - size
    argTypes:
    - PLBase64Encoder*
    - unsigned char*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 391
    functionDepth: 2
    functionLinenumber: 391
    functionLinenumberEnd: 402
    functionName: PL_UpdateBase64Encoder
    functionSourceFile: /src/nss/lib/util/nssb64e.c
    functionUses: 0
    functionsReached:
    - PR_SetError
    - pl_base64_encode_buffer
    linkageType: ''
    returnType: PRStatus
    signature: "PRStatus PL_UpdateBase64Encoder(PLBase64Encoder *data, const unsigned
      char *buffer,\n                       PRUint32 size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PR_SetError
      Src: /src/nss/lib/util/nssb64e.c:416,1
    - Dst: pl_base64_encode_flush
      Src: /src/nss/lib/util/nssb64e.c:422,1
    - Dst: PR_Free
      Src: /src/nss/lib/util/nssb64e.c:425,1
    - Dst: PR_Free
      Src: /src/nss/lib/util/nssb64e.c:426,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - data
    - abort_p
    argTypes:
    - PLBase64Encoder*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 429
    functionName: PL_DestroyBase64Encoder
    functionSourceFile: /src/nss/lib/util/nssb64e.c
    functionUses: 0
    functionsReached:
    - PR_SetError
    - pl_base64_encode_flush
    - PR_Free
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus PL_DestroyBase64Encoder(PLBase64Encoder *data, PRBool abort_p)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PR_ASSERT
      Src: /src/nss/lib/util/nssb64e.c:457,1
    - Dst: PL_Base64MaxEncodedLength
      Src: /src/nss/lib/util/nssb64e.c:465,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/nssb64e.c:467,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/util/nssb64e.c:475,1
    - Dst: PR_SetError
      Src: /src/nss/lib/util/nssb64e.c:477,1
    - Dst: pl_base64_create_encoder
      Src: /src/nss/lib/util/nssb64e.c:484,1
    - Dst: pl_base64_encode_buffer
      Src: /src/nss/lib/util/nssb64e.c:488,1
    - Dst: pl_base64_encode_flush
      Src: /src/nss/lib/util/nssb64e.c:495,1
    - Dst: PL_DestroyBase64Encoder
      Src: /src/nss/lib/util/nssb64e.c:498,1
    - Dst: PL_DestroyBase64Encoder
      Src: /src/nss/lib/util/nssb64e.c:508,1
    - Dst: PR_Free
      Src: /src/nss/lib/util/nssb64e.c:510,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 6
    argNames:
    - src
    - srclen
    - line_length
    - dest
    - maxdestlen
    - output_destlen
    argTypes:
    - unsigned char*
    - PRUint32
    - PRUint32
    - char*
    - PRUint32
    - PRUint32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 448
    functionDepth: 2
    functionLinenumber: 448
    functionLinenumberEnd: 515
    functionName: PL_Base64EncodeBuffer
    functionSourceFile: /src/nss/lib/util/nssb64e.c
    functionUses: 0
    functionsReached:
    - PL_Base64MaxEncodedLength
    - pl_base64_encode_buffer
    - PR_Free
    - PR_ASSERT
    - PORT_SetError
    - PR_SetError
    - PL_DestroyBase64Encoder
    - pl_base64_encode_flush
    - pl_base64_create_encoder
    linkageType: ''
    returnType: char
    signature: "char *\nPL_Base64EncodeBuffer(const unsigned char *src, PRUint32 srclen,\n
      \                     PRUint32 line_length, char *dest, PRUint32 maxdestlen,\n
      \                     PRUint32 *output_destlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 537
    functionName: NSSBase64EncoderStr
    functionSourceFile: /src/nss/lib/util/nssb64e.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PR_BEGIN_EXTERN_C
    signature: PR_BEGIN_EXTERN_C NSSBase64EncoderStr
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZNew
      Src: /src/nss/lib/util/nssb64e.c:551,1
    - Dst: PL_CreateBase64Encoder
      Src: /src/nss/lib/util/nssb64e.c:555,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/nssb64e.c:557,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 539
    functionDepth: 3
    functionLinenumber: 539
    functionLinenumberEnd: 563
    functionName: "NSSBase64Encoder *\nNSSBase64Encoder_Create(PRInt32 (*output_fn)(void
      *, const char *, PRInt32),\n                        void *output_arg)"
    functionSourceFile: /src/nss/lib/util/nssb64e.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - PL_CreateBase64Encoder
    - PORT_ZNew
    linkageType: ''
    returnType: PR_END_EXTERN_C
    signature: "PR_END_EXTERN_C NSSBase64Encoder *\nNSSBase64Encoder_Create(PRInt32
      (*output_fn)(void *, const char *, PRInt32),\n                        void *output_arg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/nssb64e.c:577,1
    - Dst: PL_UpdateBase64Encoder
      Src: /src/nss/lib/util/nssb64e.c:581,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - data
    - buffer
    - size
    argTypes:
    - NSSBase64Encoder*
    - unsigned char*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 569
    functionDepth: 3
    functionLinenumber: 569
    functionLinenumberEnd: 586
    functionName: NSSBase64Encoder_Update
    functionSourceFile: /src/nss/lib/util/nssb64e.c
    functionUses: 3
    functionsReached:
    - PL_UpdateBase64Encoder
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus NSSBase64Encoder_Update(NSSBase64Encoder *data, const unsigned
      char *buffer,\n                        PRUint32 size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/nssb64e.c:600,1
    - Dst: PL_DestroyBase64Encoder
      Src: /src/nss/lib/util/nssb64e.c:604,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/nssb64e.c:606,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - data
    - abort_p
    argTypes:
    - NSSBase64Encoder*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 593
    functionDepth: 2
    functionLinenumber: 593
    functionLinenumberEnd: 612
    functionName: NSSBase64Encoder_Destroy
    functionSourceFile: /src/nss/lib/util/nssb64e.c
    functionUses: 3
    functionsReached:
    - PORT_Free
    - PORT_SetError
    - PL_DestroyBase64Encoder
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSSBase64Encoder_Destroy(NSSBase64Encoder *data, PRBool abort_p)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/nssb64e.c:640,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/nssb64e.c:642,1
    - Dst: PL_Base64MaxEncodedLength
      Src: /src/nss/lib/util/nssb64e.c:646,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/nssb64e.c:648,1
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/util/nssb64e.c:653,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/util/nssb64e.c:657,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/util/nssb64e.c:659,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/util/nssb64e.c:663,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/nssb64e.c:668,1
    - Dst: PL_Base64EncodeBuffer
      Src: /src/nss/lib/util/nssb64e.c:674,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/util/nssb64e.c:678,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/nssb64e.c:680,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/util/nssb64e.c:686,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 4
    argNames:
    - arenaOpt
    - outStrOpt
    - maxOutLen
    - inItem
    argTypes:
    - PLArenaPool*
    - char*
    - unsigned int
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 630
    functionDepth: 3
    functionLinenumber: 630
    functionLinenumberEnd: 690
    functionName: NSSBase64_EncodeItem
    functionSourceFile: /src/nss/lib/util/nssb64e.c
    functionUses: 3
    functionsReached:
    - PL_Base64MaxEncodedLength
    - PORT_Assert
    - PORT_Alloc
    - PORT_ArenaAlloc
    - PORT_Free
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - PORT_SetError
    - PORT_ArenaUnmark
    - PL_Base64EncodeBuffer
    linkageType: ''
    returnType: char
    signature: "char *\nNSSBase64_EncodeItem(PLArenaPool *arenaOpt, char *outStrOpt,\n
      \                    unsigned int maxOutLen, SECItem *inItem)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSSBase64_EncodeItem
      Src: /src/nss/lib/util/nssb64e.c:724,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 716
    functionDepth: 0
    functionLinenumber: 716
    functionLinenumberEnd: 725
    functionName: BTOA_DataToAscii
    functionSourceFile: /src/nss/lib/util/nssb64e.c
    functionUses: 11
    functionsReached:
    - NSSBase64_EncodeItem
    linkageType: ''
    returnType: char
    signature: 'char *

      BTOA_DataToAscii(const unsigned char *data, unsigned int len)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSSBase64_EncodeItem
      Src: /src/nss/lib/util/nssb64e.c:733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - binary_item
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 730
    functionDepth: 0
    functionLinenumber: 730
    functionLinenumberEnd: 734
    functionName: BTOA_ConvertItemToAscii
    functionSourceFile: /src/nss/lib/util/nssb64e.c
    functionUses: 2
    functionsReached:
    - NSSBase64_EncodeItem
    linkageType: ''
    returnType: char
    signature: 'char *

      BTOA_ConvertItemToAscii(SECItem *binary_item)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_ATOMIC_INCREMENT
      Src: /src/nss/lib/util/nssilock.c:95,1
    - Dst: PR_Lock
      Src: /src/nss/lib/util/nssilock.c:99,1
    - Dst: PR_Write
      Src: /src/nss/lib/util/nssilock.c:100,1
    - Dst: PR_NotifyAllCondVar
      Src: /src/nss/lib/util/nssilock.c:102,1
    - Dst: PR_Unlock
      Src: /src/nss/lib/util/nssilock.c:103,1
    - Dst: PR_Lock
      Src: /src/nss/lib/util/nssilock.c:106,1
    - Dst: PR_WaitCondVar
      Src: /src/nss/lib/util/nssilock.c:108,1
    - Dst: PR_Unlock
      Src: /src/nss/lib/util/nssilock.c:109,1
    - Dst: PR_GetThreadID
      Src: /src/nss/lib/util/nssilock.c:116,1
    - Dst: PR_GetCurrentThread
      Src: /src/nss/lib/util/nssilock.c:116,1
    - Dst: strcpy
      Src: /src/nss/lib/util/nssilock.c:123,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 7
    argNames:
    - op
    - ltype
    - callTime
    - heldTime
    - lock
    - line
    - file
    argTypes:
    - nssILockOp
    - nssILockType
    - PRIntervalTime
    - PRIntervalTime
    - void*
    - PRIntn
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 125
    functionName: Vtrace
    functionSourceFile: /src/nss/lib/util/nssilock.c
    functionUses: 0
    functionsReached:
    - PR_ATOMIC_INCREMENT
    - PR_WaitCondVar
    - PR_GetThreadID
    - strcpy
    - PR_NotifyAllCondVar
    - PR_Lock
    - PR_Write
    - PR_Unlock
    - PR_GetCurrentThread
    linkageType: ''
    returnType: void
    signature: "void Vtrace(\n    nssILockOp op,\n    nssILockType ltype,\n    PRIntervalTime
      callTime,\n    PRIntervalTime heldTime,\n    void *lock,\n    PRIntn line,\n
      \   char *file)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Vtrace
      Src: /src/nss/lib/util/nssilock.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 136
    functionName: pz_TraceFlush
    functionSourceFile: /src/nss/lib/util/nssilock.c
    functionUses: 0
    functionsReached:
    - Vtrace
    linkageType: ''
    returnType: void
    signature: void pz_TraceFlush(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PR_NewLogModule
      Src: /src/nss/lib/util/nssilock.c:150,1
    - Dst: PR_Calloc
      Src: /src/nss/lib/util/nssilock.c:155,1
    - Dst: fprintf
      Src: /src/nss/lib/util/nssilock.c:157,1
    - Dst: exit
      Src: /src/nss/lib/util/nssilock.c:158,1
    - Dst: PR_Open
      Src: /src/nss/lib/util/nssilock.c:161,1
    - Dst: fprintf
      Src: /src/nss/lib/util/nssilock.c:163,1
    - Dst: exit
      Src: /src/nss/lib/util/nssilock.c:164,1
    - Dst: PR_NewLock
      Src: /src/nss/lib/util/nssilock.c:167,1
    - Dst: PR_NewCondVar
      Src: /src/nss/lib/util/nssilock.c:168,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 171
    functionName: nssILockInit
    functionSourceFile: /src/nss/lib/util/nssilock.c
    functionUses: 0
    functionsReached:
    - PR_NewCondVar
    - exit
    - PR_Calloc
    - fprintf
    - PR_NewLogModule
    - PR_Open
    - PR_NewLock
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus nssILockInit(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PR_CallOnce
      Src: /src/nss/lib/util/nssilock.c:184,1
    - Dst: PR_SetError
      Src: /src/nss/lib/util/nssilock.c:186,1
    - Dst: PR_NEWZAP
      Src: /src/nss/lib/util/nssilock.c:191,1
    - Dst: PR_NewLock
      Src: /src/nss/lib/util/nssilock.c:194,1
    - Dst: PR_DELETE
      Src: /src/nss/lib/util/nssilock.c:196,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/nssilock.c:197,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/nssilock.c:200,1
    - Dst: Vtrace
      Src: /src/nss/lib/util/nssilock.c:203,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - ltype
    - file
    - line
    argTypes:
    - nssILockType
    - char*
    - PRIntn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 173
    functionDepth: 2
    functionLinenumber: 173
    functionLinenumberEnd: 205
    functionName: pz_NewLock
    functionSourceFile: /src/nss/lib/util/nssilock.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PR_SetError
    - PR_DELETE
    - PR_NEWZAP
    - PR_NewLock
    - PR_CallOnce
    - Vtrace
    linkageType: ''
    returnType: PZLock
    signature: "PZLock *\npz_NewLock(\n    nssILockType ltype,\n    char *file,\n
      \   PRIntn line)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_IntervalNow
      Src: /src/nss/lib/util/nssilock.c:215,1
    - Dst: PR_Lock
      Src: /src/nss/lib/util/nssilock.c:216,1
    - Dst: PR_IntervalNow
      Src: /src/nss/lib/util/nssilock.c:217,1
    - Dst: Vtrace
      Src: /src/nss/lib/util/nssilock.c:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - lock
    - file
    - line
    argTypes:
    - PZLock*
    - char*
    - PRIntn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 207
    functionDepth: 2
    functionLinenumber: 207
    functionLinenumberEnd: 222
    functionName: pz_Lock
    functionSourceFile: /src/nss/lib/util/nssilock.c
    functionUses: 0
    functionsReached:
    - PR_Lock
    - PR_IntervalNow
    - Vtrace
    linkageType: ''
    returnType: void
    signature: "void pz_Lock(\n    PZLock *lock,\n    char *file,\n    PRIntn line)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_IntervalNow
      Src: /src/nss/lib/util/nssilock.c:233,1
    - Dst: PR_Unlock
      Src: /src/nss/lib/util/nssilock.c:234,1
    - Dst: PR_IntervalNow
      Src: /src/nss/lib/util/nssilock.c:235,1
    - Dst: Vtrace
      Src: /src/nss/lib/util/nssilock.c:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - lock
    - file
    - line
    argTypes:
    - PZLock*
    - char*
    - PRIntn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 240
    functionName: pz_Unlock
    functionSourceFile: /src/nss/lib/util/nssilock.c
    functionUses: 0
    functionsReached:
    - PR_IntervalNow
    - PR_Unlock
    - Vtrace
    linkageType: ''
    returnType: PRStatus
    signature: "PRStatus pz_Unlock(\n    PZLock *lock,\n    char *file,\n    PRIntn
      line)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Vtrace
      Src: /src/nss/lib/util/nssilock.c:248,1
    - Dst: PR_DestroyLock
      Src: /src/nss/lib/util/nssilock.c:249,1
    - Dst: PR_DELETE
      Src: /src/nss/lib/util/nssilock.c:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - lock
    - file
    - line
    argTypes:
    - PZLock*
    - char*
    - PRIntn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 242
    functionDepth: 2
    functionLinenumber: 242
    functionLinenumberEnd: 252
    functionName: pz_DestroyLock
    functionSourceFile: /src/nss/lib/util/nssilock.c
    functionUses: 0
    functionsReached:
    - PR_DELETE
    - PR_DestroyLock
    - Vtrace
    linkageType: ''
    returnType: void
    signature: "void pz_DestroyLock(\n    PZLock *lock,\n    char *file,\n    PRIntn
      line)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_NEWZAP
      Src: /src/nss/lib/util/nssilock.c:262,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/nssilock.c:264,1
    - Dst: PR_NewCondVar
      Src: /src/nss/lib/util/nssilock.c:267,1
    - Dst: PR_DELETE
      Src: /src/nss/lib/util/nssilock.c:269,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/nssilock.c:270,1
    - Dst: Vtrace
      Src: /src/nss/lib/util/nssilock.c:273,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - lock
    - file
    - line
    argTypes:
    - PZLock*
    - char*
    - PRIntn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 254
    functionDepth: 2
    functionLinenumber: 254
    functionLinenumberEnd: 275
    functionName: pz_NewCondVar
    functionSourceFile: /src/nss/lib/util/nssilock.c
    functionUses: 0
    functionsReached:
    - PR_NewCondVar
    - PORT_SetError
    - PR_DELETE
    - PR_NEWZAP
    - Vtrace
    linkageType: ''
    returnType: PZCondVar
    signature: "PZCondVar *\npz_NewCondVar(\n    PZLock *lock,\n    char *file,\n
      \   PRIntn line)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Vtrace
      Src: /src/nss/lib/util/nssilock.c:283,1
    - Dst: PR_DestroyCondVar
      Src: /src/nss/lib/util/nssilock.c:284,1
    - Dst: PR_DELETE
      Src: /src/nss/lib/util/nssilock.c:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - cvar
    - file
    - line
    argTypes:
    - PZCondVar*
    - char*
    - PRIntn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 277
    functionDepth: 2
    functionLinenumber: 277
    functionLinenumberEnd: 286
    functionName: pz_DestroyCondVar
    functionSourceFile: /src/nss/lib/util/nssilock.c
    functionUses: 0
    functionsReached:
    - PR_DELETE
    - PR_DestroyCondVar
    - Vtrace
    linkageType: ''
    returnType: void
    signature: "void pz_DestroyCondVar(\n    PZCondVar *cvar,\n    char *file,\n    PRIntn
      line)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_IntervalNow
      Src: /src/nss/lib/util/nssilock.c:298,1
    - Dst: PR_WaitCondVar
      Src: /src/nss/lib/util/nssilock.c:299,1
    - Dst: PR_IntervalNow
      Src: /src/nss/lib/util/nssilock.c:300,1
    - Dst: Vtrace
      Src: /src/nss/lib/util/nssilock.c:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - cvar
    - timeout
    - file
    - line
    argTypes:
    - PZCondVar*
    - PRIntervalTime
    - char*
    - PRIntn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 288
    functionDepth: 2
    functionLinenumber: 288
    functionLinenumberEnd: 304
    functionName: pz_WaitCondVar
    functionSourceFile: /src/nss/lib/util/nssilock.c
    functionUses: 0
    functionsReached:
    - PR_WaitCondVar
    - PR_IntervalNow
    - Vtrace
    linkageType: ''
    returnType: PRStatus
    signature: "PRStatus pz_WaitCondVar(\n    PZCondVar *cvar,\n    PRIntervalTime
      timeout,\n    char *file,\n    PRIntn line)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_NotifyCondVar
      Src: /src/nss/lib/util/nssilock.c:314,1
    - Dst: Vtrace
      Src: /src/nss/lib/util/nssilock.c:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - cvar
    - file
    - line
    argTypes:
    - PZCondVar*
    - char*
    - PRIntn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 306
    functionDepth: 2
    functionLinenumber: 306
    functionLinenumberEnd: 318
    functionName: pz_NotifyCondVar
    functionSourceFile: /src/nss/lib/util/nssilock.c
    functionUses: 0
    functionsReached:
    - PR_NotifyCondVar
    - Vtrace
    linkageType: ''
    returnType: PRStatus
    signature: "PRStatus pz_NotifyCondVar(\n    PZCondVar *cvar,\n    char *file,\n
      \   PRIntn line)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_NotifyAllCondVar
      Src: /src/nss/lib/util/nssilock.c:328,1
    - Dst: Vtrace
      Src: /src/nss/lib/util/nssilock.c:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - cvar
    - file
    - line
    argTypes:
    - PZCondVar*
    - char*
    - PRIntn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 320
    functionDepth: 2
    functionLinenumber: 320
    functionLinenumberEnd: 332
    functionName: pz_NotifyAllCondVar
    functionSourceFile: /src/nss/lib/util/nssilock.c
    functionUses: 0
    functionsReached:
    - PR_NotifyAllCondVar
    - Vtrace
    linkageType: ''
    returnType: PRStatus
    signature: "PRStatus pz_NotifyAllCondVar(\n    PZCondVar *cvar,\n    char *file,\n
      \   PRIntn line)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PR_CallOnce
      Src: /src/nss/lib/util/nssilock.c:345,1
    - Dst: PR_SetError
      Src: /src/nss/lib/util/nssilock.c:347,1
    - Dst: PR_NEWZAP
      Src: /src/nss/lib/util/nssilock.c:352,1
    - Dst: PR_NewMonitor
      Src: /src/nss/lib/util/nssilock.c:355,1
    - Dst: PR_DELETE
      Src: /src/nss/lib/util/nssilock.c:357,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/nssilock.c:358,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/nssilock.c:361,1
    - Dst: Vtrace
      Src: /src/nss/lib/util/nssilock.c:364,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - ltype
    - file
    - line
    argTypes:
    - nssILockType
    - char*
    - PRIntn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 334
    functionDepth: 2
    functionLinenumber: 334
    functionLinenumberEnd: 366
    functionName: pz_NewMonitor
    functionSourceFile: /src/nss/lib/util/nssilock.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PR_SetError
    - PR_DELETE
    - PR_NEWZAP
    - PR_NewMonitor
    - PR_CallOnce
    - Vtrace
    linkageType: ''
    returnType: PZMonitor
    signature: "PZMonitor *\npz_NewMonitor(\n    nssILockType ltype,\n    char *file,\n
      \   PRIntn line)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Vtrace
      Src: /src/nss/lib/util/nssilock.c:374,1
    - Dst: PR_DestroyMonitor
      Src: /src/nss/lib/util/nssilock.c:375,1
    - Dst: PR_DELETE
      Src: /src/nss/lib/util/nssilock.c:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - mon
    - file
    - line
    argTypes:
    - PZMonitor*
    - char*
    - PRIntn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 368
    functionDepth: 2
    functionLinenumber: 368
    functionLinenumberEnd: 378
    functionName: pz_DestroyMonitor
    functionSourceFile: /src/nss/lib/util/nssilock.c
    functionUses: 0
    functionsReached:
    - PR_DestroyMonitor
    - PR_DELETE
    - Vtrace
    linkageType: ''
    returnType: void
    signature: "void pz_DestroyMonitor(\n    PZMonitor *mon,\n    char *file,\n    PRIntn
      line)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_IntervalNow
      Src: /src/nss/lib/util/nssilock.c:388,1
    - Dst: PR_EnterMonitor
      Src: /src/nss/lib/util/nssilock.c:389,1
    - Dst: PR_IntervalNow
      Src: /src/nss/lib/util/nssilock.c:390,1
    - Dst: PR_GetMonitorEntryCount
      Src: /src/nss/lib/util/nssilock.c:392,1
    - Dst: Vtrace
      Src: /src/nss/lib/util/nssilock.c:395,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - mon
    - file
    - line
    argTypes:
    - PZMonitor*
    - char*
    - PRIntn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 380
    functionDepth: 2
    functionLinenumber: 380
    functionLinenumberEnd: 397
    functionName: pz_EnterMonitor
    functionSourceFile: /src/nss/lib/util/nssilock.c
    functionUses: 0
    functionsReached:
    - PR_GetMonitorEntryCount
    - PR_EnterMonitor
    - PR_IntervalNow
    - Vtrace
    linkageType: ''
    returnType: void
    signature: "void pz_EnterMonitor(\n    PZMonitor *mon,\n    char *file,\n    PRIntn
      line)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetMonitorEntryCount
      Src: /src/nss/lib/util/nssilock.c:407,1
    - Dst: PR_IntervalNow
      Src: /src/nss/lib/util/nssilock.c:410,1
    - Dst: PR_ExitMonitor
      Src: /src/nss/lib/util/nssilock.c:411,1
    - Dst: PR_IntervalNow
      Src: /src/nss/lib/util/nssilock.c:412,1
    - Dst: Vtrace
      Src: /src/nss/lib/util/nssilock.c:416,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - mon
    - file
    - line
    argTypes:
    - PZMonitor*
    - char*
    - PRIntn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 399
    functionDepth: 2
    functionLinenumber: 399
    functionLinenumberEnd: 418
    functionName: pz_ExitMonitor
    functionSourceFile: /src/nss/lib/util/nssilock.c
    functionUses: 0
    functionsReached:
    - PR_GetMonitorEntryCount
    - PR_ExitMonitor
    - PR_IntervalNow
    - Vtrace
    linkageType: ''
    returnType: PRStatus
    signature: "PRStatus pz_ExitMonitor(\n    PZMonitor *mon,\n    char *file,\n    PRIntn
      line)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetMonitorEntryCount
      Src: /src/nss/lib/util/nssilock.c:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - mon
    - file
    - line
    argTypes:
    - PZMonitor*
    - char*
    - PRIntn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 427
    functionName: pz_GetMonitorEntryCount
    functionSourceFile: /src/nss/lib/util/nssilock.c
    functionUses: 0
    functionsReached:
    - PR_GetMonitorEntryCount
    linkageType: ''
    returnType: PRIntn
    signature: "PRIntn pz_GetMonitorEntryCount(\n    PZMonitor *mon,\n    char *file,\n
      \   PRIntn line)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_IntervalNow
      Src: /src/nss/lib/util/nssilock.c:439,1
    - Dst: PR_Wait
      Src: /src/nss/lib/util/nssilock.c:440,1
    - Dst: PR_IntervalNow
      Src: /src/nss/lib/util/nssilock.c:441,1
    - Dst: Vtrace
      Src: /src/nss/lib/util/nssilock.c:442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - mon
    - ticks
    - file
    - line
    argTypes:
    - PZMonitor*
    - PRIntervalTime
    - char*
    - PRIntn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 429
    functionDepth: 2
    functionLinenumber: 429
    functionLinenumberEnd: 444
    functionName: pz_Wait
    functionSourceFile: /src/nss/lib/util/nssilock.c
    functionUses: 0
    functionsReached:
    - PR_Wait
    - PR_IntervalNow
    - Vtrace
    linkageType: ''
    returnType: PRStatus
    signature: "PRStatus pz_Wait(\n    PZMonitor *mon,\n    PRIntervalTime ticks,\n
      \   char *file,\n    PRIntn line)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_IntervalNow
      Src: /src/nss/lib/util/nssilock.c:455,1
    - Dst: PR_Notify
      Src: /src/nss/lib/util/nssilock.c:456,1
    - Dst: PR_IntervalNow
      Src: /src/nss/lib/util/nssilock.c:457,1
    - Dst: Vtrace
      Src: /src/nss/lib/util/nssilock.c:458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - mon
    - file
    - line
    argTypes:
    - PZMonitor*
    - char*
    - PRIntn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 446
    functionDepth: 2
    functionLinenumber: 446
    functionLinenumberEnd: 460
    functionName: pz_Notify
    functionSourceFile: /src/nss/lib/util/nssilock.c
    functionUses: 0
    functionsReached:
    - PR_Notify
    - PR_IntervalNow
    - Vtrace
    linkageType: ''
    returnType: PRStatus
    signature: "PRStatus pz_Notify(\n    PZMonitor *mon,\n    char *file,\n    PRIntn
      line)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_IntervalNow
      Src: /src/nss/lib/util/nssilock.c:471,1
    - Dst: PR_NotifyAll
      Src: /src/nss/lib/util/nssilock.c:472,1
    - Dst: PR_IntervalNow
      Src: /src/nss/lib/util/nssilock.c:473,1
    - Dst: Vtrace
      Src: /src/nss/lib/util/nssilock.c:474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - mon
    - file
    - line
    argTypes:
    - PZMonitor*
    - char*
    - PRIntn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 462
    functionDepth: 2
    functionLinenumber: 462
    functionLinenumberEnd: 476
    functionName: pz_NotifyAll
    functionSourceFile: /src/nss/lib/util/nssilock.c
    functionUses: 0
    functionsReached:
    - PR_IntervalNow
    - Vtrace
    - PR_NotifyAll
    linkageType: ''
    returnType: PRStatus
    signature: "PRStatus pz_NotifyAll(\n    PZMonitor *mon,\n    char *file,\n    PRIntn
      line)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: der_indefinite_length
      Src: /src/nss/lib/util/derdec.c:30,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/derdec.c:54,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 2
    argNames:
    - buf
    - end
    argTypes:
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 8
    functionDepth: 1
    functionLinenumber: 8
    functionLinenumberEnd: 68
    functionName: der_indefinite_length
    functionSourceFile: /src/nss/lib/util/derdec.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    - der_indefinite_length
    linkageType: ''
    returnType: PRUint32
    signature: PRUint32 der_indefinite_length(unsigned char *buf, unsigned char *end)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/derdec.c:101,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/derdec.c:124,1
    - Dst: der_indefinite_length
      Src: /src/nss/lib/util/derdec.c:162,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/derdec.c:167,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/derdec.c:174,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 70
    argCount: 4
    argNames:
    - buf
    - end
    - header_len_p
    - contents_len_p
    argTypes:
    - unsigned char*
    - unsigned char*
    - int*
    - PRUint32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 182
    functionName: der_capture
    functionSourceFile: /src/nss/lib/util/derdec.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - der_indefinite_length
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus der_capture(unsigned char *buf, unsigned char *end,\n            int
      *header_len_p, PRUint32 *contents_len_p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: der_capture
      Src: /src/nss/lib/util/derdec.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - item
    - header_len_p
    - contents_len_p
    argTypes:
    - SECItem*
    - int*
    - PRUint32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 184
    functionDepth: 3
    functionLinenumber: 184
    functionLinenumberEnd: 189
    functionName: DER_Lengths
    functionSourceFile: /src/nss/lib/util/derdec.c
    functionUses: 0
    functionsReached:
    - der_capture
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus DER_Lengths(SECItem *item, int *header_len_p, PRUint32 *contents_len_p)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: _valid_subexp
      Src: /src/nss/lib/util/portreg.c:59,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 61
    argCount: 3
    argNames:
    - exp
    - stop1
    - stop2
    argTypes:
    - char*
    - char
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 86
    functionName: _valid_subexp
    functionSourceFile: /src/nss/lib/util/portreg.c
    functionUses: 1
    functionsReached:
    - _valid_subexp
    linkageType: ''
    returnType: int
    signature: int _valid_subexp(const char *exp, char stop1, char stop2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _valid_subexp
      Src: /src/nss/lib/util/portreg.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - exp
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 95
    functionName: PORT_RegExpValid
    functionSourceFile: /src/nss/lib/util/portreg.c
    functionUses: 1
    functionsReached:
    - _valid_subexp
    linkageType: ''
    returnType: int
    signature: int PORT_RegExpValid(const char *exp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/util/portreg.c:136,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 20
    argCount: 4
    argNames:
    - exp
    - stop1
    - stop2
    - dest
    argTypes:
    - char*
    - char
    - char
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 140
    functionName: _scan_and_copy
    functionSourceFile: /src/nss/lib/util/portreg.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: int _scan_and_copy(const char *exp, char stop1, char stop2, char *dest)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: _scan_and_copy
      Src: /src/nss/lib/util/portreg.c:161,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/util/portreg.c:165,1
    - Dst: strlen
      Src: /src/nss/lib/util/portreg.c:165,1
    - Dst: _scan_and_copy
      Src: /src/nss/lib/util/portreg.c:171,1
    - Dst: strcpy
      Src: /src/nss/lib/util/portreg.c:178,1
    - Dst: _shexp_match
      Src: /src/nss/lib/util/portreg.c:179,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/portreg.c:183,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 24
    argCount: 4
    argNames:
    - str
    - exp
    - case_insensitive
    - level
    argTypes:
    - char*
    - char*
    - PRBool
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 187
    functionName: _handle_union
    functionSourceFile: /src/nss/lib/util/portreg.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - _scan_and_copy
    - PORT_Free
    - _shexp_match
    - strcpy
    - strlen
    linkageType: ''
    returnType: int
    signature: "int _handle_union(const char *str, const char *exp, PRBool case_insensitive,\n
      \             unsigned int level)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/util/portreg.c:194,1
    - Dst: tolower
      Src: /src/nss/lib/util/portreg.c:196,1
    - Dst: tolower
      Src: /src/nss/lib/util/portreg.c:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - start
    - end
    - val
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 198
    functionName: _is_char_in_range
    functionSourceFile: /src/nss/lib/util/portreg.c
    functionUses: 0
    functionsReached:
    - memset
    - tolower
    linkageType: ''
    returnType: int
    signature: int _is_char_in_range(int start, int end, int val)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: _shexp_match
      Src: /src/nss/lib/util/portreg.c:226,1
    - Dst: isalnum
      Src: /src/nss/lib/util/portreg.c:250,1
    - Dst: isalnum
      Src: /src/nss/lib/util/portreg.c:255,1
    - Dst: isalpha
      Src: /src/nss/lib/util/portreg.c:263,1
    - Dst: _is_char_in_range
      Src: /src/nss/lib/util/portreg.c:264,1
    - Dst: toupper
      Src: /src/nss/lib/util/portreg.c:278,1
    - Dst: toupper
      Src: /src/nss/lib/util/portreg.c:279,1
    - Dst: _handle_union
      Src: /src/nss/lib/util/portreg.c:291,1
    - Dst: toupper
      Src: /src/nss/lib/util/portreg.c:303,1
    - Dst: toupper
      Src: /src/nss/lib/util/portreg.c:303,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 99
    argCount: 4
    argNames:
    - str
    - exp
    - case_insensitive
    - level
    argTypes:
    - char*
    - char*
    - PRBool
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 200
    functionDepth: 3
    functionLinenumber: 200
    functionLinenumberEnd: 313
    functionName: _shexp_match
    functionSourceFile: /src/nss/lib/util/portreg.c
    functionUses: 2
    functionsReached:
    - toupper
    - isalpha
    - _handle_union
    - _shexp_match
    - _is_char_in_range
    - isalnum
    linkageType: ''
    returnType: int
    signature: "int _shexp_match(const char *str, const char *exp, PRBool case_insensitive,\n
      \            unsigned int level)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/nss/lib/util/portreg.c:321,1
    - Dst: _shexp_match
      Src: /src/nss/lib/util/portreg.c:322,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/util/portreg.c:324,1
    - Dst: _scan_and_copy
      Src: /src/nss/lib/util/portreg.c:328,1
    - Dst: _shexp_match
      Src: /src/nss/lib/util/portreg.c:331,1
    - Dst: _shexp_match
      Src: /src/nss/lib/util/portreg.c:344,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/portreg.c:346,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - str
    - xp
    - case_insensitive
    argTypes:
    - char*
    - char*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 315
    functionDepth: 4
    functionLinenumber: 315
    functionLinenumberEnd: 348
    functionName: port_RegExpMatch
    functionSourceFile: /src/nss/lib/util/portreg.c
    functionUses: 0
    functionsReached:
    - strchr
    - PORT_Free
    - _scan_and_copy
    - _shexp_match
    - PORT_Strdup
    linkageType: ''
    returnType: int
    signature: int port_RegExpMatch(const char *str, const char *xp, PRBool case_insensitive)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_RegExpValid
      Src: /src/nss/lib/util/portreg.c:355,1
    - Dst: strcmp
      Src: /src/nss/lib/util/portreg.c:359,1
    - Dst: port_RegExpMatch
      Src: /src/nss/lib/util/portreg.c:361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - str
    - exp
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 352
    functionDepth: 5
    functionLinenumber: 352
    functionLinenumberEnd: 363
    functionName: PORT_RegExpSearch
    functionSourceFile: /src/nss/lib/util/portreg.c
    functionUses: 1
    functionsReached:
    - strcmp
    - port_RegExpMatch
    - PORT_RegExpValid
    linkageType: ''
    returnType: int
    signature: int PORT_RegExpSearch(const char *str, const char *exp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_RegExpValid
      Src: /src/nss/lib/util/portreg.c:368,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/lib/util/portreg.c:372,1
    - Dst: port_RegExpMatch
      Src: /src/nss/lib/util/portreg.c:374,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - str
    - exp
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 365
    functionDepth: 5
    functionLinenumber: 365
    functionLinenumberEnd: 376
    functionName: PORT_RegExpCaseSearch
    functionSourceFile: /src/nss/lib/util/portreg.c
    functionUses: 1
    functionsReached:
    - port_RegExpMatch
    - PORT_Strcasecmp
    - PORT_RegExpValid
    linkageType: ''
    returnType: int
    signature: int PORT_RegExpCaseSearch(const char *str, const char *exp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_Malloc
      Src: /src/nss/lib/util/secport.c:87,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secport.c:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 93
    functionName: PORT_Alloc
    functionSourceFile: /src/nss/lib/util/secport.c
    functionUses: 157
    functionsReached:
    - PR_Malloc
    - PORT_SetError
    linkageType: ''
    returnType: void
    signature: 'void *

      PORT_Alloc(size_t bytes)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_Realloc
      Src: /src/nss/lib/util/secport.c:101,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secport.c:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - oldptr
    - bytes
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 107
    functionName: PORT_Realloc
    functionSourceFile: /src/nss/lib/util/secport.c
    functionUses: 20
    functionsReached:
    - PR_Realloc
    - PORT_SetError
    linkageType: ''
    returnType: void
    signature: 'void *

      PORT_Realloc(void *oldptr, size_t bytes)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_Calloc
      Src: /src/nss/lib/util/secport.c:116,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secport.c:119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 122
    functionName: PORT_ZAlloc
    functionSourceFile: /src/nss/lib/util/secport.c
    functionUses: 77
    functionsReached:
    - PORT_SetError
    - PR_Calloc
    linkageType: ''
    returnType: void
    signature: 'void *

      PORT_ZAlloc(size_t bytes)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secport.c:132,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/util/secport.c:141,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secport.c:143,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - bytes
    - alignment
    - mem
    argTypes:
    - size_t
    - size_t
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 148
    functionName: PORT_ZAllocAligned
    functionSourceFile: /src/nss/lib/util/secport.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PORT_ZAlloc
    linkageType: ''
    returnType: void
    signature: 'void *

      PORT_ZAllocAligned(size_t bytes, size_t alignment, void **mem)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secport.c:153,1
    - Dst: PORT_ZAllocAligned
      Src: /src/nss/lib/util/secport.c:159,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secport.c:164,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - size
    - alignment
    - offset
    argTypes:
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 167
    functionName: PORT_ZAllocAlignedOffset
    functionSourceFile: /src/nss/lib/util/secport.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_ZAllocAligned
    linkageType: ''
    returnType: void
    signature: 'void *

      PORT_ZAllocAlignedOffset(size_t size, size_t alignment, size_t offset)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_Free
      Src: /src/nss/lib/util/secport.c:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 175
    functionName: PORT_Free
    functionSourceFile: /src/nss/lib/util/secport.c
    functionUses: 521
    functionsReached:
    - PR_Free
    linkageType: ''
    returnType: void
    signature: void PORT_Free(void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/util/secport.c:181,1
    - Dst: PR_Free
      Src: /src/nss/lib/util/secport.c:182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ptr
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 184
    functionName: PORT_ZFree
    functionSourceFile: /src/nss/lib/util/secport.c
    functionUses: 64
    functionsReached:
    - memset
    - PR_Free
    linkageType: ''
    returnType: void
    signature: void PORT_ZFree(void *ptr, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strlen
      Src: /src/nss/lib/util/secport.c:189,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/util/secport.c:192,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/util/secport.c:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 197
    functionName: PORT_Strdup
    functionSourceFile: /src/nss/lib/util/secport.c
    functionUses: 81
    functionsReached:
    - PORT_Alloc
    - PORT_Memcpy
    - PORT_Strlen
    linkageType: ''
    returnType: char
    signature: 'char *

      PORT_Strdup(const char *str)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_SetError
      Src: /src/nss/lib/util/secport.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 204
    functionName: PORT_SetError
    functionSourceFile: /src/nss/lib/util/secport.c
    functionUses: 1323
    functionsReached:
    - PR_SetError
    linkageType: ''
    returnType: void
    signature: void PORT_SetError(int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetError
      Src: /src/nss/lib/util/secport.c:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 210
    functionName: PORT_GetError
    functionSourceFile: /src/nss/lib/util/secport.c
    functionUses: 185
    functionsReached:
    - PR_GetError
    linkageType: ''
    returnType: int
    signature: int PORT_GetError(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset_s
      Src: /src/nss/lib/util/secport.c:222,1
    - Dst: explicit_bzero
      Src: /src/nss/lib/util/secport.c:228,1
    - Dst: SecureZeroMemory
      Src: /src/nss/lib/util/secport.c:232,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 2
    argNames:
    - p
    - n
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 248
    functionName: PORT_SafeZero
    functionSourceFile: /src/nss/lib/util/secport.c
    functionUses: 30
    functionsReached:
    - SecureZeroMemory
    - memset_s
    - explicit_bzero
    linkageType: ''
    returnType: void
    signature: void PORT_SafeZero(void *p, size_t n)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secport.c:304,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/util/secport.c:307,1
    - Dst: PZ_NewLock
      Src: /src/nss/lib/util/secport.c:312,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/secport.c:314,1
    - Dst: PL_InitArenaPool
      Src: /src/nss/lib/util/secport.c:317,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - chunksize
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 319
    functionName: PORT_NewArena
    functionSourceFile: /src/nss/lib/util/secport.c
    functionUses: 253
    functionsReached:
    - PL_InitArenaPool
    - PORT_ZNew
    - PORT_Free
    - PORT_SetError
    - PZ_NewLock
    linkageType: ''
    returnType: PLArenaPool
    signature: 'PLArenaPool *

      PORT_NewArena(unsigned long chunksize)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PL_InitArenaPool
      Src: /src/nss/lib/util/secport.c:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pool
    - chunksize
    argTypes:
    - PORTCheapArenaPool*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 326
    functionName: PORT_InitCheapArena
    functionSourceFile: /src/nss/lib/util/secport.c
    functionUses: 18
    functionsReached:
    - PL_InitArenaPool
    linkageType: ''
    returnType: void
    signature: void PORT_InitCheapArena(PORTCheapArenaPool *pool, unsigned long chunksize)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/util/secport.c:344,1
    - Dst: PR_GetCurrentThread
      Src: /src/nss/lib/util/secport.c:348,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/util/secport.c:350,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secport.c:351,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secport.c:352,1
    - Dst: PL_ARENA_ALLOCATE
      Src: /src/nss/lib/util/secport.c:356,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/util/secport.c:357,1
    - Dst: PL_ARENA_ALLOCATE
      Src: /src/nss/lib/util/secport.c:359,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secport.c:363,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - arena
    - size
    argTypes:
    - PLArenaPool*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 367
    functionName: PORT_ArenaAlloc
    functionSourceFile: /src/nss/lib/util/secport.c
    functionUses: 80
    functionsReached:
    - PORT_Assert
    - PZ_Unlock
    - PL_ARENA_ALLOCATE
    - PORT_SetError
    - PZ_Lock
    - PR_GetCurrentThread
    linkageType: ''
    returnType: void
    signature: 'void *

      PORT_ArenaAlloc(PLArenaPool *arena, size_t size)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/util/secport.c:377,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/util/secport.c:380,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - arena
    - size
    argTypes:
    - PLArenaPool*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 384
    functionName: PORT_ArenaZAlloc
    functionSourceFile: /src/nss/lib/util/secport.c
    functionUses: 124
    functionsReached:
    - PORT_ArenaAlloc
    - PORT_Memset
    linkageType: ''
    returnType: void
    signature: 'void *

      PORT_ArenaZAlloc(PLArenaPool *arena, size_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/util/secport.c:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 394
    functionName: SetupUseFreeList
    functionSourceFile: /src/nss/lib/util/secport.c
    functionUses: 0
    functionsReached:
    - PR_GetEnvSecure
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus SetupUseFreeList(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/util/secport.c:411,1
    - Dst: PL_ClearArenaPool
      Src: /src/nss/lib/util/secport.c:414,1
    - Dst: PR_CallOnce
      Src: /src/nss/lib/util/secport.c:416,1
    - Dst: PL_FreeArenaPool
      Src: /src/nss/lib/util/secport.c:418,1
    - Dst: PL_FinishArenaPool
      Src: /src/nss/lib/util/secport.c:420,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/util/secport.c:422,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/util/secport.c:424,1
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/util/secport.c:425,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - arena
    - zero
    argTypes:
    - PLArenaPool*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 427
    functionName: PORT_FreeArena
    functionSourceFile: /src/nss/lib/util/secport.c
    functionUses: 325
    functionsReached:
    - PORT_ZFree
    - PL_ClearArenaPool
    - PZ_Unlock
    - PZ_Lock
    - PR_CallOnce
    - PL_FreeArenaPool
    - PZ_DestroyLock
    - PL_FinishArenaPool
    linkageType: ''
    returnType: void
    signature: void PORT_FreeArena(PLArenaPool *arena, PRBool zero)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_CallOnce
      Src: /src/nss/lib/util/secport.c:432,1
    - Dst: PL_FreeArenaPool
      Src: /src/nss/lib/util/secport.c:434,1
    - Dst: PL_FinishArenaPool
      Src: /src/nss/lib/util/secport.c:436,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pool
    argTypes:
    - PORTCheapArenaPool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 438
    functionName: PORT_DestroyCheapArena
    functionSourceFile: /src/nss/lib/util/secport.c
    functionUses: 18
    functionsReached:
    - PR_CallOnce
    - PL_FreeArenaPool
    - PL_FinishArenaPool
    linkageType: ''
    returnType: void
    signature: void PORT_DestroyCheapArena(PORTCheapArenaPool *pool)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secport.c:444,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secport.c:447,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/util/secport.c:452,1
    - Dst: PL_ARENA_GROW
      Src: /src/nss/lib/util/secport.c:454,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/util/secport.c:455,1
    - Dst: PL_ARENA_GROW
      Src: /src/nss/lib/util/secport.c:457,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - arena
    - ptr
    - oldsize
    - newsize
    argTypes:
    - PLArenaPool*
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 461
    functionName: PORT_ArenaGrow
    functionSourceFile: /src/nss/lib/util/secport.c
    functionUses: 18
    functionsReached:
    - PORT_Assert
    - PZ_Unlock
    - PL_ARENA_GROW
    - PORT_SetError
    - PZ_Lock
    linkageType: ''
    returnType: void
    signature: 'void *

      PORT_ArenaGrow(PLArenaPool *arena, void *ptr, size_t oldsize, size_t newsize)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/util/secport.c:470,1
    - Dst: PR_GetCurrentThread
      Src: /src/nss/lib/util/secport.c:474,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/util/secport.c:480,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secport.c:481,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secport.c:482,1
    - Dst: PL_ARENA_MARK
      Src: /src/nss/lib/util/secport.c:486,1
    - Dst: PL_ARENA_ALLOCATE
      Src: /src/nss/lib/util/secport.c:487,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/util/secport.c:489,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secport.c:490,1
    - Dst: PL_ARENA_MARK
      Src: /src/nss/lib/util/secport.c:505,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/util/secport.c:507,1
    - Dst: PL_ARENA_MARK
      Src: /src/nss/lib/util/secport.c:510,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 1
    argNames:
    - arena
    argTypes:
    - PLArenaPool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 463
    functionDepth: 1
    functionLinenumber: 463
    functionLinenumberEnd: 513
    functionName: PORT_ArenaMark
    functionSourceFile: /src/nss/lib/util/secport.c
    functionUses: 103
    functionsReached:
    - PORT_Assert
    - PL_ARENA_MARK
    - PZ_Unlock
    - PL_ARENA_ALLOCATE
    - PORT_SetError
    - PZ_Lock
    - PR_GetCurrentThread
    linkageType: ''
    returnType: void
    signature: 'void *

      PORT_ArenaMark(PLArenaPool *arena)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PL_MAKE_MEM_UNDEFINED
      Src: /src/nss/lib/util/secport.c:533,1
    - Dst: memset
      Src: /src/nss/lib/util/secport.c:535,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/util/secport.c:539,1
    - Dst: PL_MAKE_MEM_UNDEFINED
      Src: /src/nss/lib/util/secport.c:542,1
    - Dst: memset
      Src: /src/nss/lib/util/secport.c:544,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/util/secport.c:550,1
    - Dst: PL_MAKE_MEM_UNDEFINED
      Src: /src/nss/lib/util/secport.c:552,1
    - Dst: memset
      Src: /src/nss/lib/util/secport.c:554,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 2
    argNames:
    - arena
    - mark
    argTypes:
    - PLArenaPool*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 526
    functionDepth: 1
    functionLinenumber: 526
    functionLinenumberEnd: 557
    functionName: port_ArenaZeroAfterMark
    functionSourceFile: /src/nss/lib/util/secport.c
    functionUses: 0
    functionsReached:
    - memset
    - PL_MAKE_MEM_UNDEFINED
    - PR_ASSERT
    linkageType: ''
    returnType: void
    signature: void port_ArenaZeroAfterMark(PLArenaPool *arena, void *mark)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/util/secport.c:564,1
    - Dst: PR_GetCurrentThread
      Src: /src/nss/lib/util/secport.c:569,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/util/secport.c:570,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secport.c:571,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secport.c:572,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/util/secport.c:583,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secport.c:584,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secport.c:585,1
    - Dst: port_ArenaZeroAfterMark
      Src: /src/nss/lib/util/secport.c:592,1
    - Dst: PL_ARENA_RELEASE
      Src: /src/nss/lib/util/secport.c:594,1
    - Dst: port_ArenaZeroAfterMark
      Src: /src/nss/lib/util/secport.c:602,1
    - Dst: PL_ARENA_RELEASE
      Src: /src/nss/lib/util/secport.c:604,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/util/secport.c:606,1
    - Dst: port_ArenaZeroAfterMark
      Src: /src/nss/lib/util/secport.c:609,1
    - Dst: PL_ARENA_RELEASE
      Src: /src/nss/lib/util/secport.c:611,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 3
    argNames:
    - arena
    - mark
    - zero
    argTypes:
    - PLArenaPool*
    - void*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 559
    functionDepth: 2
    functionLinenumber: 559
    functionLinenumberEnd: 613
    functionName: port_ArenaRelease
    functionSourceFile: /src/nss/lib/util/secport.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - port_ArenaZeroAfterMark
    - PZ_Unlock
    - PORT_SetError
    - PZ_Lock
    - PR_GetCurrentThread
    - PL_ARENA_RELEASE
    linkageType: ''
    returnType: void
    signature: void port_ArenaRelease(PLArenaPool *arena, void *mark, PRBool zero)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: port_ArenaRelease
      Src: /src/nss/lib/util/secport.c:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - arena
    - mark
    argTypes:
    - PLArenaPool*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 615
    functionDepth: 3
    functionLinenumber: 615
    functionLinenumberEnd: 619
    functionName: PORT_ArenaRelease
    functionSourceFile: /src/nss/lib/util/secport.c
    functionUses: 103
    functionsReached:
    - port_ArenaRelease
    linkageType: ''
    returnType: void
    signature: void PORT_ArenaRelease(PLArenaPool *arena, void *mark)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: port_ArenaRelease
      Src: /src/nss/lib/util/secport.c:627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - arena
    - mark
    argTypes:
    - PLArenaPool*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 624
    functionDepth: 3
    functionLinenumber: 624
    functionLinenumberEnd: 628
    functionName: PORT_ArenaZRelease
    functionSourceFile: /src/nss/lib/util/secport.c
    functionUses: 0
    functionsReached:
    - port_ArenaRelease
    linkageType: ''
    returnType: void
    signature: void PORT_ArenaZRelease(PLArenaPool *arena, void *mark)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/util/secport.c:638,1
    - Dst: PR_GetCurrentThread
      Src: /src/nss/lib/util/secport.c:640,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/util/secport.c:641,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secport.c:642,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secport.c:643,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/util/secport.c:654,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secport.c:655,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secport.c:656,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/util/secport.c:666,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - arena
    - mark
    argTypes:
    - PLArenaPool*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 630
    functionDepth: 1
    functionLinenumber: 630
    functionLinenumberEnd: 669
    functionName: PORT_ArenaUnmark
    functionSourceFile: /src/nss/lib/util/secport.c
    functionUses: 94
    functionsReached:
    - PORT_Assert
    - PZ_Unlock
    - PORT_SetError
    - PZ_Lock
    - PR_GetCurrentThread
    linkageType: ''
    returnType: void
    signature: void PORT_ArenaUnmark(PLArenaPool *arena, void *mark)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strlen
      Src: /src/nss/lib/util/secport.c:674,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/util/secport.c:677,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/util/secport.c:679,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - arena
    - str
    argTypes:
    - PLArenaPool*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 671
    functionDepth: 1
    functionLinenumber: 671
    functionLinenumberEnd: 682
    functionName: PORT_ArenaStrdup
    functionSourceFile: /src/nss/lib/util/secport.c
    functionUses: 13
    functionsReached:
    - PORT_ArenaAlloc
    - PORT_Memcpy
    - PORT_Strlen
    linkageType: ''
    returnType: char
    signature: 'char *

      PORT_ArenaStrdup(PLArenaPool *arena, const char *str)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - convFunc
    argTypes:
    - PORTCharConversionFunc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 695
    functionDepth: 0
    functionLinenumber: 695
    functionLinenumberEnd: 699
    functionName: PORT_SetUCS4_UTF8ConversionFunction
    functionSourceFile: /src/nss/lib/util/secport.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PORT_SetUCS4_UTF8ConversionFunction(PORTCharConversionFunc convFunc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - convFunc
    argTypes:
    - PORTCharConversionWSwapFunc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 701
    functionDepth: 0
    functionLinenumber: 701
    functionLinenumberEnd: 705
    functionName: PORT_SetUCS2_ASCIIConversionFunction
    functionSourceFile: /src/nss/lib/util/secport.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PORT_SetUCS2_ASCIIConversionFunction(PORTCharConversionWSwapFunc
      convFunc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - convFunc
    argTypes:
    - PORTCharConversionFunc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 707
    functionDepth: 0
    functionLinenumber: 707
    functionLinenumberEnd: 711
    functionName: PORT_SetUCS2_UTF8ConversionFunction
    functionSourceFile: /src/nss/lib/util/secport.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PORT_SetUCS2_UTF8ConversionFunction(PORTCharConversionFunc convFunc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sec_port_ucs4_utf8_conversion_function
      Src: /src/nss/lib/util/secport.c:719,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - toUnicode
    - inBuf
    - inBufLen
    - outBuf
    - maxOutBufLen
    - outBufLen
    argTypes:
    - PRBool
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 713
    functionDepth: 1
    functionLinenumber: 713
    functionLinenumberEnd: 725
    functionName: PORT_UCS4_UTF8Conversion
    functionSourceFile: /src/nss/lib/util/secport.c
    functionUses: 2
    functionsReached:
    - sec_port_ucs4_utf8_conversion_function
    linkageType: ''
    returnType: PRBool
    signature: "PRBool PORT_UCS4_UTF8Conversion(PRBool toUnicode, unsigned char *inBuf,\n
      \                        unsigned int inBufLen, unsigned char *outBuf,\n                         unsigned
      int maxOutBufLen, unsigned int *outBufLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sec_port_ucs2_utf8_conversion_function
      Src: /src/nss/lib/util/secport.c:733,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - toUnicode
    - inBuf
    - inBufLen
    - outBuf
    - maxOutBufLen
    - outBufLen
    argTypes:
    - PRBool
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 727
    functionDepth: 1
    functionLinenumber: 727
    functionLinenumberEnd: 739
    functionName: PORT_UCS2_UTF8Conversion
    functionSourceFile: /src/nss/lib/util/secport.c
    functionUses: 5
    functionsReached:
    - sec_port_ucs2_utf8_conversion_function
    linkageType: ''
    returnType: PRBool
    signature: "PRBool PORT_UCS2_UTF8Conversion(PRBool toUnicode, unsigned char *inBuf,\n
      \                        unsigned int inBufLen, unsigned char *outBuf,\n                         unsigned
      int maxOutBufLen, unsigned int *outBufLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sec_port_iso88591_utf8_conversion_function
      Src: /src/nss/lib/util/secport.c:746,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - inBuf
    - inBufLen
    - outBuf
    - maxOutBufLen
    - outBufLen
    argTypes:
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 741
    functionDepth: 1
    functionLinenumber: 741
    functionLinenumberEnd: 748
    functionName: PORT_ISO88591_UTF8Conversion
    functionSourceFile: /src/nss/lib/util/secport.c
    functionUses: 1
    functionsReached:
    - sec_port_iso88591_utf8_conversion_function
    linkageType: ''
    returnType: PRBool
    signature: "PRBool PORT_ISO88591_UTF8Conversion(const unsigned char *inBuf,\n
      \                            unsigned int inBufLen, unsigned char *outBuf,\n
      \                            unsigned int maxOutBufLen, unsigned int *outBufLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 7
    argNames:
    - toUnicode
    - inBuf
    - inBufLen
    - outBuf
    - maxOutBufLen
    - outBufLen
    - swapBytes
    argTypes:
    - PRBool
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned int*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 750
    functionDepth: 0
    functionLinenumber: 750
    functionLinenumberEnd: 762
    functionName: PORT_UCS2_ASCIIConversion
    functionSourceFile: /src/nss/lib/util/secport.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: "PRBool PORT_UCS2_ASCIIConversion(PRBool toUnicode, unsigned char *inBuf,\n
      \                         unsigned int inBufLen, unsigned char *outBuf,\n                          unsigned
      int maxOutBufLen, unsigned int *outBufLen,\n                          PRBool
      swapBytes)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SetEnvironmentVariable
      Src: /src/nss/lib/util/secport.c:774,1
    - Dst: setenv
      Src: /src/nss/lib/util/secport.c:781,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/util/secport.c:787,1
    - Dst: strlen
      Src: /src/nss/lib/util/secport.c:787,1
    - Dst: strlen
      Src: /src/nss/lib/util/secport.c:787,1
    - Dst: strcpy
      Src: /src/nss/lib/util/secport.c:791,1
    - Dst: strcat
      Src: /src/nss/lib/util/secport.c:792,1
    - Dst: strcat
      Src: /src/nss/lib/util/secport.c:793,1
    - Dst: putenv
      Src: /src/nss/lib/util/secport.c:794,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/secport.c:799,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - envVarName
    - envValue
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 767
    functionDepth: 0
    functionLinenumber: 767
    functionLinenumberEnd: 803
    functionName: NSS_PutEnv
    functionSourceFile: /src/nss/lib/util/secport.c
    functionUses: 1
    functionsReached:
    - strcat
    - setenv
    - PORT_Free
    - PORT_ZAlloc
    - strcpy
    - putenv
    - SetEnvironmentVariable
    - strlen
    linkageType: ''
    returnType: int
    signature: int NSS_PutEnv(const char *envVarName, const char *envValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ia
    - ib
    - n
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 809
    functionDepth: 0
    functionLinenumber: 809
    functionLinenumberEnd: 822
    functionName: NSS_SecureMemcmp
    functionSourceFile: /src/nss/lib/util/secport.c
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int NSS_SecureMemcmp(const void *ia, const void *ib, size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - mem
    - n
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 828
    functionDepth: 0
    functionLinenumber: 828
    functionLinenumberEnd: 840
    functionName: NSS_SecureMemcmpZero
    functionSourceFile: /src/nss/lib/util/secport.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int NSS_SecureMemcmpZero(const void *mem, size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 854
    functionDepth: 0
    functionLinenumber: 854
    functionLinenumberEnd: 879
    functionName: value_barrier_int
    functionSourceFile: /src/nss/lib/util/secport.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int value_barrier_int(int x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value_barrier_int
      Src: /src/nss/lib/util/secport.c:904,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - dest
    - src0
    - src1
    - n
    - b
    argTypes:
    - void*
    - void*
    - void*
    - size_t
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 897
    functionDepth: 1
    functionLinenumber: 897
    functionLinenumberEnd: 917
    functionName: NSS_SecureSelect
    functionSourceFile: /src/nss/lib/util/secport.c
    functionUses: 1
    functionsReached:
    - value_barrier_int
    linkageType: ''
    returnType: void
    signature: void NSS_SecureSelect(void *dest, const void *src0, const void *src1,
      size_t n, unsigned char b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/util/secport.c:932,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/lib/util/secport.c:936,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/lib/util/secport.c:937,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/lib/util/secport.c:938,1
    - Dst: fopen
      Src: /src/nss/lib/util/secport.c:949,1
    - Dst: fread
      Src: /src/nss/lib/util/secport.c:953,1
    - Dst: fclose
      Src: /src/nss/lib/util/secport.c:954,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 923
    functionDepth: 1
    functionLinenumber: 923
    functionLinenumberEnd: 963
    functionName: NSS_GetSystemFIPSEnabled
    functionSourceFile: /src/nss/lib/util/secport.c
    functionUses: 4
    functionsReached:
    - PORT_Strcasecmp
    - fclose
    - PR_GetEnvSecure
    - fopen
    - fread
    linkageType: ''
    returnType: PRBool
    signature: PRBool NSS_GetSystemFIPSEnabled(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/pkcs1sig.c:62,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/util/pkcs1sig.c:67,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/pkcs1sig.c:69,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/util/pkcs1sig.c:79,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 4
    argNames:
    - hashOid
    - digestLen
    - prefix
    - withParams
    argTypes:
    - SECOidData*
    - unsigned int
    - pkcs1Prefix*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 88
    functionName: encodePrefix
    functionSourceFile: /src/nss/lib/util/pkcs1sig.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_SetError
    - PORT_Memcpy
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus encodePrefix(const SECOidData *hashOid, unsigned int digestLen,\n
      \            pkcs1Prefix *prefix, PRBool withParams)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/pkcs1sig.c:102,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/lib/util/pkcs1sig.c:106,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/pkcs1sig.c:108,1
    - Dst: encodePrefix
      Src: /src/nss/lib/util/pkcs1sig.c:114,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/pkcs1sig.c:127,1
    - Dst: encodePrefix
      Src: /src/nss/lib/util/pkcs1sig.c:130,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/pkcs1sig.c:138,1
    - Dst: memcmp
      Src: /src/nss/lib/util/pkcs1sig.c:145,1
    - Dst: memcmp
      Src: /src/nss/lib/util/pkcs1sig.c:146,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/pkcs1sig.c:148,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/pkcs1sig.c:154,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 40
    argCount: 4
    argNames:
    - digestAlg
    - digest
    - dataRecoveredFromSignature
    - unsafeAllowMissingParameters
    argTypes:
    - SECOidTag
    - SECItem*
    - SECItem*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 158
    functionName: _SGN_VerifyPKCS1DigestInfo
    functionSourceFile: /src/nss/lib/util/pkcs1sig.c
    functionUses: 1
    functionsReached:
    - SECOID_FindOIDByTag
    - PORT_Free
    - encodePrefix
    - PORT_SetError
    - memcmp
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus _SGN_VerifyPKCS1DigestInfo(SECOidTag digestAlg,\n                           const
      SECItem *digest,\n                           const SECItem *dataRecoveredFromSignature,\n
      \                          PRBool unsafeAllowMissingParameters)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 183
    functionName: SEC_ASN1_GET
    functionSourceFile: /src/nss/lib/util/secasn1t.h
    functionUses: 80
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SEC_ASN1_GET(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 184
    functionName: SEC_ASN1_SUB
    functionSourceFile: /src/nss/lib/util/secasn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SEC_ASN1_SUB(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 187
    functionName: SEC_ASN1_MKSUB
    functionSourceFile: /src/nss/lib/util/secasn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SEC_ASN1_MKSUB(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 189
    functionName: SEC_ASN1_GET
    functionSourceFile: /src/nss/lib/util/secasn1t.h
    functionUses: 80
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SEC_ASN1_GET(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 190
    functionName: SEC_ASN1_SUB
    functionSourceFile: /src/nss/lib/util/secasn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SEC_ASN1_SUB(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 196
    functionName: SEC_ASN1_CHOOSER_DECLARE
    functionSourceFile: /src/nss/lib/util/secasn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SEC_ASN1_CHOOSER_DECLARE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 202
    functionName: SEC_ASN1_CHOOSER_IMPLEMENT
    functionSourceFile: /src/nss/lib/util/secasn1t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SEC_ASN1_CHOOSER_IMPLEMENT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 650
    functionDepth: 0
    functionLinenumber: 650
    functionLinenumberEnd: 654
    functionName: OI
    functionSourceFile: /src/nss/lib/util/secoid.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OI(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - oid
    - ','
    - tag
    - ','
    - desc
    - ','
    - mech
    - ','
    - ext
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 660
    functionName: OD
    functionSourceFile: /src/nss/lib/util/secoid.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OD(oid, tag, desc, mech, ext)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - tag
    - ','
    - desc
    - ','
    - mech
    - ','
    - ext
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 664
    functionName: ODE
    functionSourceFile: /src/nss/lib/util/secoid.c
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ODE(tag, desc, mech, ext)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - oid
    - ','
    - tag
    - ','
    - desc
    - ','
    - mech
    - ','
    - ext
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 665
    functionDepth: 0
    functionLinenumber: 665
    functionLinenumberEnd: 670
    functionName: OD
    functionSourceFile: /src/nss/lib/util/secoid.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OD(oid, tag, desc, mech, ext)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - tag
    - ','
    - desc
    - ','
    - mech
    - ','
    - ext
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 670
    functionDepth: 0
    functionLinenumber: 670
    functionLinenumberEnd: 674
    functionName: ODE
    functionSourceFile: /src/nss/lib/util/secoid.c
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ODE(tag, desc, mech, ext)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NSSRWLock_New
      Src: /src/nss/lib/util/secoid.c:1952,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/util/secoid.c:1956,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1961
      start: 1947
    functionDepth: 0
    functionLinenumber: 1947
    functionLinenumberEnd: 1961
    functionName: secoid_InitDynOidData
    functionSourceFile: /src/nss/lib/util/secoid.c
    functionUses: 0
    functionsReached:
    - NSSRWLock_New
    - PORT_NewArena
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus secoid_InitDynOidData(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PL_NewHashTable
      Src: /src/nss/lib/util/secoid.c:1970,1
    - Dst: PL_HashTableAdd
      Src: /src/nss/lib/util/secoid.c:1977,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - oid
    argTypes:
    - SECOidData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1979
      start: 1964
    functionDepth: 1
    functionLinenumber: 1964
    functionLinenumberEnd: 1979
    functionName: secoid_HashDynamicOiddata
    functionSourceFile: /src/nss/lib/util/secoid.c
    functionUses: 0
    functionsReached:
    - PL_HashTableAdd
    - PL_NewHashTable
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus secoid_HashDynamicOiddata(const SECOidData *oid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NSSRWLock_LockRead
      Src: /src/nss/lib/util/secoid.c:1991,1
    - Dst: PL_HashTableLookup
      Src: /src/nss/lib/util/secoid.c:1993,1
    - Dst: NSSRWLock_UnlockRead
      Src: /src/nss/lib/util/secoid.c:1995,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secoid.c:1997,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - key
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2000
      start: 1986
    functionDepth: 1
    functionLinenumber: 1986
    functionLinenumberEnd: 2000
    functionName: secoid_FindDynamic
    functionSourceFile: /src/nss/lib/util/secoid.c
    functionUses: 0
    functionsReached:
    - NSSRWLock_LockRead
    - PL_HashTableLookup
    - PORT_SetError
    - NSSRWLock_UnlockRead
    linkageType: ''
    returnType: SECOidData
    signature: 'SECOidData *

      secoid_FindDynamic(const SECItem *key)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secoid.c:2009,1
    - Dst: NSSRWLock_LockRead
      Src: /src/nss/lib/util/secoid.c:2014,1
    - Dst: NSSRWLock_UnlockRead
      Src: /src/nss/lib/util/secoid.c:2019,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secoid.c:2021,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - tagnum
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2024
      start: 2002
    functionDepth: 0
    functionLinenumber: 2002
    functionLinenumberEnd: 2024
    functionName: secoid_FindDynamicByTag
    functionSourceFile: /src/nss/lib/util/secoid.c
    functionUses: 0
    functionsReached:
    - NSSRWLock_LockRead
    - PORT_SetError
    - NSSRWLock_UnlockRead
    linkageType: ''
    returnType: dynXOid
    signature: 'dynXOid *

      secoid_FindDynamicByTag(SECOidTag tagnum)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nss/lib/util/secoid.c:2040,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secoid.c:2041,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secoid.c:2047,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secoid.c:2052,1
    - Dst: NSSRWLock_LockWrite
      Src: /src/nss/lib/util/secoid.c:2056,1
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/util/secoid.c:2064,1
    - Dst: PORT_Realloc
      Src: /src/nss/lib/util/secoid.c:2082,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/util/secoid.c:2092,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/util/secoid.c:2097,1
    - Dst: PORT_ArenaStrdup
      Src: /src/nss/lib/util/secoid.c:2101,1
    - Dst: secoid_HashDynamicOiddata
      Src: /src/nss/lib/util/secoid.c:2111,1
    - Dst: NSSRWLock_UnlockWrite
      Src: /src/nss/lib/util/secoid.c:2118,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 60
    argCount: 1
    argNames:
    - src
    argTypes:
    - SECOidData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2120
      start: 2029
    functionDepth: 2
    functionLinenumber: 2029
    functionLinenumberEnd: 2120
    functionName: SECOID_AddEntry
    functionSourceFile: /src/nss/lib/util/secoid.c
    functionUses: 3
    functionsReached:
    - secoid_HashDynamicOiddata
    - PORT_ArenaStrdup
    - NSSRWLock_UnlockWrite
    - SECITEM_CopyItem
    - SECOID_FindOIDTag
    - PORT_SetError
    - PORT_ArenaZNew
    - NSSRWLock_LockWrite
    - PORT_Realloc
    - strlen
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag SECOID_AddEntry(const SECOidData *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2130
      start: 2126
    functionDepth: 0
    functionLinenumber: 2126
    functionLinenumberEnd: 2130
    functionName: secoid_HashNumber
    functionSourceFile: /src/nss/lib/util/secoid.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PLHashNumber
    signature: PLHashNumber secoid_HashNumber(const void *key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strdup
      Src: /src/nss/lib/util/secoid.c:2137,1
    - Dst: PL_strpbrk
      Src: /src/nss/lib/util/secoid.c:2141,1
    - Dst: strstr
      Src: /src/nss/lib/util/secoid.c:2154,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/secoid.c:2162,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 1
    argNames:
    - envVal
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2163
      start: 2134
    functionDepth: 1
    functionLinenumber: 2134
    functionLinenumberEnd: 2163
    functionName: handleHashAlgSupport
    functionSourceFile: /src/nss/lib/util/secoid.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - PL_strpbrk
    - PORT_Strdup
    - strstr
    linkageType: ''
    returnType: void
    signature: void handleHashAlgSupport(char *envVal)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/util/secoid.c:2183,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/util/secoid.c:2200,1
    - Dst: handleHashAlgSupport
      Src: /src/nss/lib/util/secoid.c:2202,1
    - Dst: secoid_InitDynOidData
      Src: /src/nss/lib/util/secoid.c:2204,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secoid.c:2205,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secoid.c:2206,1
    - Dst: PL_NewHashTable
      Src: /src/nss/lib/util/secoid.c:2210,1
    - Dst: PL_NewHashTable
      Src: /src/nss/lib/util/secoid.c:2212,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secoid.c:2216,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secoid.c:2217,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secoid.c:2223,1
    - Dst: PL_HashTableAdd
      Src: /src/nss/lib/util/secoid.c:2224,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secoid.c:2227,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secoid.c:2228,1
    - Dst: PL_HashTableAdd
      Src: /src/nss/lib/util/secoid.c:2233,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secoid.c:2236,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secoid.c:2237,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secoid.c:2243,1
    - Dst: NSS_SetAlgorithmPolicyAll
      Src: /src/nss/lib/util/secoid.c:2247,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2250
      start: 2165
    functionDepth: 2
    functionLinenumber: 2165
    functionLinenumberEnd: 2250
    functionName: SECOID_Init
    functionSourceFile: /src/nss/lib/util/secoid.c
    functionUses: 7
    functionsReached:
    - PORT_Assert
    - secoid_InitDynOidData
    - PL_HashTableAdd
    - PR_GetEnvSecure
    - PORT_SetError
    - handleHashAlgSupport
    - NSS_SetAlgorithmPolicyAll
    - PL_NewHashTable
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SECOID_Init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_ASSERT
      Src: /src/nss/lib/util/secoid.c:2257,1
    - Dst: SECOID_Init
      Src: /src/nss/lib/util/secoid.c:2258,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secoid.c:2259,1
    - Dst: PL_HashTableLookupConst
      Src: /src/nss/lib/util/secoid.c:2263,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secoid.c:2265,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - mechanism
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2269
      start: 2252
    functionDepth: 3
    functionLinenumber: 2252
    functionLinenumberEnd: 2269
    functionName: SECOID_FindOIDByMechanism
    functionSourceFile: /src/nss/lib/util/secoid.c
    functionUses: 3
    functionsReached:
    - PORT_SetError
    - PL_HashTableLookupConst
    - SECOID_Init
    - PR_ASSERT
    linkageType: ''
    returnType: SECOidData
    signature: 'SECOidData *

      SECOID_FindOIDByMechanism(unsigned long mechanism)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PR_ASSERT
      Src: /src/nss/lib/util/secoid.c:2276,1
    - Dst: SECOID_Init
      Src: /src/nss/lib/util/secoid.c:2277,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secoid.c:2278,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secoid.c:2283,1
    - Dst: PL_HashTableLookupConst
      Src: /src/nss/lib/util/secoid.c:2287,1
    - Dst: secoid_FindDynamic
      Src: /src/nss/lib/util/secoid.c:2289,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secoid.c:2291,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - oid
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2295
      start: 2271
    functionDepth: 3
    functionLinenumber: 2271
    functionLinenumberEnd: 2295
    functionName: SECOID_FindOID
    functionSourceFile: /src/nss/lib/util/secoid.c
    functionUses: 28
    functionsReached:
    - secoid_FindDynamic
    - PL_HashTableLookupConst
    - PR_ASSERT
    - PORT_SetError
    - SECOID_Init
    linkageType: ''
    returnType: SECOidData
    signature: 'SECOidData *

      SECOID_FindOID(const SECItem *oid)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOID
      Src: /src/nss/lib/util/secoid.c:2302,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - oid
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2308
      start: 2297
    functionDepth: 0
    functionLinenumber: 2297
    functionLinenumberEnd: 2308
    functionName: SECOID_FindOIDTag
    functionSourceFile: /src/nss/lib/util/secoid.c
    functionUses: 49
    functionsReached:
    - SECOID_FindOID
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag SECOID_FindOIDTag(const SECItem *oid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: secoid_FindDynamicByTag
      Src: /src/nss/lib/util/secoid.c:2315,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secoid.c:2318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - tagnum
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2320
      start: 2311
    functionDepth: 1
    functionLinenumber: 2311
    functionLinenumberEnd: 2320
    functionName: SECOID_FindOIDByTag
    functionSourceFile: /src/nss/lib/util/secoid.c
    functionUses: 55
    functionsReached:
    - secoid_FindDynamicByTag
    - PORT_Assert
    linkageType: ''
    returnType: SECOidData
    signature: 'SECOidData *

      SECOID_FindOIDByTag(SECOidTag tagnum)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOID
      Src: /src/nss/lib/util/secoid.c:2327,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - extenOid
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2331
      start: 2322
    functionDepth: 0
    functionLinenumber: 2322
    functionLinenumberEnd: 2331
    functionName: SECOID_KnownCertExtenOID
    functionSourceFile: /src/nss/lib/util/secoid.c
    functionUses: 1
    functionsReached:
    - SECOID_FindOID
    linkageType: ''
    returnType: PRBool
    signature: PRBool SECOID_KnownCertExtenOID(SECItem *extenOid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/lib/util/secoid.c:2336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tagnum
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2338
      start: 2333
    functionDepth: 0
    functionLinenumber: 2333
    functionLinenumberEnd: 2338
    functionName: SECOID_FindOIDTagDescription
    functionSourceFile: /src/nss/lib/util/secoid.c
    functionUses: 5
    functionsReached:
    - SECOID_FindOIDByTag
    linkageType: ''
    returnType: char
    signature: 'char *

      SECOID_FindOIDTagDescription(SECOidTag tagnum)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSSRWLock_LockRead
      Src: /src/nss/lib/util/secoid.c:2352,1
    - Dst: NSSRWLock_UnlockRead
      Src: /src/nss/lib/util/secoid.c:2354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2356
      start: 2345
    functionDepth: 0
    functionLinenumber: 2345
    functionLinenumberEnd: 2356
    functionName: SECOID_GetTotalTags
    functionSourceFile: /src/nss/lib/util/secoid.c
    functionUses: 0
    functionsReached:
    - NSSRWLock_LockRead
    - NSSRWLock_UnlockRead
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag SECOID_GetTotalTags(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: secoid_FindDynamicByTag
      Src: /src/nss/lib/util/secoid.c:2368,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secoid.c:2372,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - tagnum
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2374
      start: 2364
    functionDepth: 1
    functionLinenumber: 2364
    functionLinenumberEnd: 2374
    functionName: secoid_FindXOidByTag
    functionSourceFile: /src/nss/lib/util/secoid.c
    functionUses: 0
    functionsReached:
    - secoid_FindDynamicByTag
    - PORT_Assert
    linkageType: ''
    returnType: privXOid
    signature: 'privXOid *

      secoid_FindXOidByTag(SECOidTag tagnum)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: secoid_FindXOidByTag
      Src: /src/nss/lib/util/secoid.c:2384,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secoid.c:2388,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - tag
    - pValue
    argTypes:
    - SECOidTag
    - PRUint32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2393
      start: 2381
    functionDepth: 2
    functionLinenumber: 2381
    functionLinenumberEnd: 2393
    functionName: NSS_GetAlgorithmPolicy
    functionSourceFile: /src/nss/lib/util/secoid.c
    functionUses: 27
    functionsReached:
    - PORT_SetError
    - secoid_FindXOidByTag
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_GetAlgorithmPolicy(SECOidTag tag, PRUint32 *pValue)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: secoid_FindXOidByTag
      Src: /src/nss/lib/util/secoid.c:2404,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secoid.c:2410,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - tag
    - setBits
    - clearBits
    argTypes:
    - SECOidTag
    - PRUint32
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2421
      start: 2401
    functionDepth: 2
    functionLinenumber: 2401
    functionLinenumberEnd: 2421
    functionName: NSS_SetAlgorithmPolicy
    functionSourceFile: /src/nss/lib/util/secoid.c
    functionUses: 7
    functionsReached:
    - PORT_SetError
    - secoid_FindXOidByTag
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_SetAlgorithmPolicy(SECOidTag tag, PRUint32 setBits, PRUint32
      clearBits)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_GetTotalTags
      Src: /src/nss/lib/util/secoid.c:2429,1
    - Dst: NSS_SetAlgorithmPolicy
      Src: /src/nss/lib/util/secoid.c:2432,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - setBits
    - clearBits
    argTypes:
    - PRUint32
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2443
      start: 2424
    functionDepth: 3
    functionLinenumber: 2424
    functionLinenumberEnd: 2443
    functionName: NSS_SetAlgorithmPolicyAll
    functionSourceFile: /src/nss/lib/util/secoid.c
    functionUses: 1
    functionsReached:
    - NSS_SetAlgorithmPolicy
    - SECOID_GetTotalTags
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_SetAlgorithmPolicyAll(PRUint32 setBits, PRUint32 clearBits)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_GetTotalTags
      Src: /src/nss/lib/util/secoid.c:2453,1
    - Dst: NSS_GetAlgorithmPolicy
      Src: /src/nss/lib/util/secoid.c:2461,1
    - Dst: PORT_Realloc
      Src: /src/nss/lib/util/secoid.c:2470,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/secoid.c:2487,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 4
    argNames:
    - maskBits
    - valueBits
    - outTags
    - outTagCount
    argTypes:
    - PRUint32
    - PRUint32
    - SECOidTag**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2491
      start: 2446
    functionDepth: 3
    functionLinenumber: 2446
    functionLinenumberEnd: 2491
    functionName: NSS_GetAlgorithmPolicyAll
    functionSourceFile: /src/nss/lib/util/secoid.c
    functionUses: 1
    functionsReached:
    - PORT_Free
    - NSS_GetAlgorithmPolicy
    - PORT_Realloc
    - SECOID_GetTotalTags
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus NSS_GetAlgorithmPolicyAll(PRUint32 maskBits, PRUint32 valueBits,\n
      \                         SECOidTag **outTags, int *outTagCount)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2498
      start: 2494
    functionDepth: 0
    functionLinenumber: 2494
    functionLinenumberEnd: 2498
    functionName: NSS_IsPolicyLocked
    functionSourceFile: /src/nss/lib/util/secoid.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool NSS_IsPolicyLocked(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2505
      start: 2501
    functionDepth: 0
    functionLinenumber: 2501
    functionLinenumberEnd: 2505
    functionName: NSS_LockPolicy
    functionSourceFile: /src/nss/lib/util/secoid.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NSS_LockPolicy(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2515
      start: 2512
    functionDepth: 0
    functionLinenumber: 2512
    functionLinenumberEnd: 2515
    functionName: SKIP_AFTER_FORK
    functionSourceFile: /src/nss/lib/util/secoid.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SKIP_AFTER_FORK(x)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PL_HashTableDestroy
      Src: /src/nss/lib/util/secoid.c:2523,1
    - Dst: PL_HashTableDestroy
      Src: /src/nss/lib/util/secoid.c:2527,1
    - Dst: SKIP_AFTER_FORK
      Src: /src/nss/lib/util/secoid.c:2536,1
    - Dst: NSSRWLock_LockWrite
      Src: /src/nss/lib/util/secoid.c:2536,1
    - Dst: PL_HashTableDestroy
      Src: /src/nss/lib/util/secoid.c:2538,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/util/secoid.c:2542,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/secoid.c:2546,1
    - Dst: SKIP_AFTER_FORK
      Src: /src/nss/lib/util/secoid.c:2552,1
    - Dst: NSSRWLock_UnlockWrite
      Src: /src/nss/lib/util/secoid.c:2552,1
    - Dst: SKIP_AFTER_FORK
      Src: /src/nss/lib/util/secoid.c:2553,1
    - Dst: NSSRWLock_Destroy
      Src: /src/nss/lib/util/secoid.c:2553,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secoid.c:2560,1
    - Dst: memset
      Src: /src/nss/lib/util/secoid.c:2571,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2573
      start: 2519
    functionDepth: 1
    functionLinenumber: 2519
    functionLinenumberEnd: 2573
    functionName: SECOID_Shutdown
    functionSourceFile: /src/nss/lib/util/secoid.c
    functionUses: 4
    functionsReached:
    - PORT_Assert
    - SKIP_AFTER_FORK
    - PL_HashTableDestroy
    - PORT_FreeArena
    - PORT_Free
    - NSSRWLock_UnlockWrite
    - memset
    - NSSRWLock_Destroy
    - NSSRWLock_LockWrite
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SECOID_Shutdown(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - forked
    argTypes:
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2579
      start: 2575
    functionDepth: 0
    functionLinenumber: 2575
    functionLinenumberEnd: 2579
    functionName: UTIL_SetForkState
    functionSourceFile: /src/nss/lib/util/secoid.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void UTIL_SetForkState(PRBool forked)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2585
      start: 2581
    functionDepth: 0
    functionLinenumber: 2581
    functionLinenumberEnd: 2585
    functionName: NSSUTIL_GetVersion
    functionSourceFile: /src/nss/lib/util/secoid.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      NSSUTIL_GetVersion(void)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PR_SetError
      Src: /src/nss/lib/util/secload.c:27,1
    - Dst: PR_MAX
      Src: /src/nss/lib/util/secload.c:30,1
    - Dst: strlen
      Src: /src/nss/lib/util/secload.c:30,1
    - Dst: PR_Malloc
      Src: /src/nss/lib/util/secload.c:31,1
    - Dst: PR_Malloc
      Src: /src/nss/lib/util/secload.c:32,1
    - Dst: PR_Free
      Src: /src/nss/lib/util/secload.c:35,1
    - Dst: PR_Free
      Src: /src/nss/lib/util/secload.c:38,1
    - Dst: strcpy
      Src: /src/nss/lib/util/secload.c:42,1
    - Dst: readlink
      Src: /src/nss/lib/util/secload.c:44,1
    - Dst: PR_Free
      Src: /src/nss/lib/util/secload.c:50,1
    - Dst: PR_Free
      Src: /src/nss/lib/util/secload.c:52,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 1
    argNames:
    - link
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 56
    functionName: loader_GetOriginalPathname
    functionSourceFile: /src/nss/lib/util/secload.c
    functionUses: 1
    functionsReached:
    - PR_Malloc
    - strcpy
    - PR_Free
    - PR_SetError
    - readlink
    - PR_MAX
    - strlen
    linkageType: ''
    returnType: char
    signature: 'char *

      loader_GetOriginalPathname(const char* link)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/nss/lib/util/secload.c:72,1
    - Dst: PR_GetDirectorySeparator
      Src: /src/nss/lib/util/secload.c:72,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/util/secload.c:75,1
    - Dst: strlen
      Src: /src/nss/lib/util/secload.c:75,1
    - Dst: memcpy
      Src: /src/nss/lib/util/secload.c:77,1
    - Dst: strcpy
      Src: /src/nss/lib/util/secload.c:78,1
    - Dst: PR_fprintf
      Src: /src/nss/lib/util/secload.c:80,1
    - Dst: PR_LoadLibraryWithFlags
      Src: /src/nss/lib/util/secload.c:85,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/secload.c:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - referencePath
    - name
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 96
    functionName: loader_LoadLibInReferenceDir
    functionSourceFile: /src/nss/lib/util/secload.c
    functionUses: 1
    functionsReached:
    - PORT_Alloc
    - memcpy
    - PORT_Free
    - PR_fprintf
    - strcpy
    - PR_GetDirectorySeparator
    - PR_LoadLibraryWithFlags
    - strrchr
    - strlen
    linkageType: ''
    returnType: PRLibrary
    signature: 'PRLibrary *

      loader_LoadLibInReferenceDir(const char* referencePath, const char* name)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetLibraryFilePathname
      Src: /src/nss/lib/util/secload.c:147,1
    - Dst: loader_LoadLibInReferenceDir
      Src: /src/nss/lib/util/secload.c:151,1
    - Dst: loader_GetOriginalPathname
      Src: /src/nss/lib/util/secload.c:158,1
    - Dst: PR_Free
      Src: /src/nss/lib/util/secload.c:160,1
    - Dst: loader_LoadLibInReferenceDir
      Src: /src/nss/lib/util/secload.c:162,1
    - Dst: PR_Free
      Src: /src/nss/lib/util/secload.c:166,1
    - Dst: PR_fprintf
      Src: /src/nss/lib/util/secload.c:170,1
    - Dst: PR_LoadLibraryWithFlags
      Src: /src/nss/lib/util/secload.c:174,1
    - Dst: PR_fprintf
      Src: /src/nss/lib/util/secload.c:178,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - existingShLibName
    - staticShLibFunc
    - newShLibName
    argTypes:
    - char*
    - PRFuncPtr
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 182
    functionName: PORT_LoadLibraryFromOrigin
    functionSourceFile: /src/nss/lib/util/secload.c
    functionUses: 1
    functionsReached:
    - loader_LoadLibInReferenceDir
    - PR_GetLibraryFilePathname
    - PR_fprintf
    - PR_Free
    - PR_LoadLibraryWithFlags
    - loader_GetOriginalPathname
    linkageType: ''
    returnType: PRLibrary
    signature: "PRLibrary *\nPORT_LoadLibraryFromOrigin(const char* existingShLibName,\n
      \                          PRFuncPtr staticShLibFunc,\n                           const
      char* newShLibName)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/util/secitem.c:21,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/util/secitem.c:26,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/util/secitem.c:28,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secitem.c:34,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/util/secitem.c:41,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/util/secitem.c:43,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/util/secitem.c:53,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/util/secitem.c:60,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/util/secitem.c:68,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 52
    argCount: 3
    argNames:
    - arena
    - item
    - len
    argTypes:
    - PLArenaPool*
    - SECItem*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 76
    functionName: SECITEM_AllocItem
    functionSourceFile: /src/nss/lib/util/secitem.c
    functionUses: 96
    functionsReached:
    - PORT_Alloc
    - PORT_Assert
    - PORT_ArenaZAlloc
    - PORT_ArenaAlloc
    - PORT_ZAlloc
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - PORT_ArenaUnmark
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      SECITEM_AllocItem(PLArenaPool *arena, SECItem *item, unsigned int len)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/util/secitem.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - arena
    - dest
    - data
    - len
    argTypes:
    - PLArenaPool*
    - SECItem*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 85
    functionName: SECITEM_MakeItem
    functionSourceFile: /src/nss/lib/util/secitem.c
    functionUses: 10
    functionsReached:
    - SECITEM_CopyItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SECITEM_MakeItem(PLArenaPool *arena, SECItem *dest, const
      unsigned char *data,\n                 unsigned int len)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secitem.c:91,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secitem.c:101,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/util/secitem.c:108,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/util/secitem.c:110,1
    - Dst: PORT_ArenaGrow
      Src: /src/nss/lib/util/secitem.c:114,1
    - Dst: PORT_Realloc
      Src: /src/nss/lib/util/secitem.c:116,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 4
    argNames:
    - arena
    - item
    - oldlen
    - newlen
    argTypes:
    - PLArenaPool*
    - SECItem*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 125
    functionName: SECITEM_ReallocItem
    functionSourceFile: /src/nss/lib/util/secitem.c
    functionUses: 1
    functionsReached:
    - PORT_Alloc
    - PORT_Assert
    - PORT_ArenaGrow
    - PORT_ArenaAlloc
    - PORT_Realloc
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SECITEM_ReallocItem(PLArenaPool *arena, SECItem *item, unsigned
      int oldlen,\n                    unsigned int newlen)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secitem.c:132,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secitem.c:134,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/secitem.c:144,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secitem.c:153,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/util/secitem.c:155,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/util/secitem.c:157,1
    - Dst: PORT_ArenaGrow
      Src: /src/nss/lib/util/secitem.c:171,1
    - Dst: PORT_Realloc
      Src: /src/nss/lib/util/secitem.c:173,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secitem.c:178,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 3
    argNames:
    - arena
    - item
    - newlen
    argTypes:
    - PLArenaPool*
    - SECItem*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 185
    functionName: SECITEM_ReallocItemV2
    functionSourceFile: /src/nss/lib/util/secitem.c
    functionUses: 3
    functionsReached:
    - PORT_Alloc
    - PORT_Assert
    - PORT_ArenaGrow
    - PORT_Free
    - PORT_ArenaAlloc
    - PORT_SetError
    - PORT_Realloc
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SECITEM_ReallocItemV2(PLArenaPool *arena, SECItem *item,
      unsigned int newlen)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/util/secitem.c:202,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 19
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 213
    functionName: SECITEM_CompareItem
    functionSourceFile: /src/nss/lib/util/secitem.c
    functionUses: 48
    functionsReached:
    - PORT_Memcmp
    linkageType: ''
    returnType: SECComparison
    signature: SECComparison SECITEM_CompareItem(const SECItem *a, const SECItem *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/util/secitem.c:226,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 227
    functionName: SECITEM_ItemsAreEqual
    functionSourceFile: /src/nss/lib/util/secitem.c
    functionUses: 20
    functionsReached:
    - PORT_Memcmp
    linkageType: ''
    returnType: PRBool
    signature: PRBool SECITEM_ItemsAreEqual(const SECItem *a, const SECItem *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_ArenaDupItem
      Src: /src/nss/lib/util/secitem.c:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - from
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 233
    functionName: SECITEM_DupItem
    functionSourceFile: /src/nss/lib/util/secitem.c
    functionUses: 39
    functionsReached:
    - SECITEM_ArenaDupItem
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      SECITEM_DupItem(const SECItem *from)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/util/secitem.c:244,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/util/secitem.c:251,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - arena
    - from
    argTypes:
    - PLArenaPool*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 255
    functionName: SECITEM_ArenaDupItem
    functionSourceFile: /src/nss/lib/util/secitem.c
    functionUses: 19
    functionsReached:
    - PORT_Memcpy
    - SECITEM_AllocItem
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      SECITEM_ArenaDupItem(PLArenaPool *arena, const SECItem *from)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/util/secitem.c:263,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/util/secitem.c:265,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/util/secitem.c:271,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - arena
    - to
    - from
    argTypes:
    - PLArenaPool*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 282
    functionName: SECITEM_CopyItem
    functionSourceFile: /src/nss/lib/util/secitem.c
    functionUses: 188
    functionsReached:
    - PORT_Alloc
    - PORT_ArenaAlloc
    - PORT_Memcpy
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SECITEM_CopyItem(PLArenaPool *arena, SECItem *to, const SECItem
      *from)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Free
      Src: /src/nss/lib/util/secitem.c:288,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/secitem.c:292,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - zap
    - freeit
    argTypes:
    - SECItem*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 295
    functionName: SECITEM_FreeItem
    functionSourceFile: /src/nss/lib/util/secitem.c
    functionUses: 274
    functionsReached:
    - PORT_Free
    linkageType: ''
    returnType: void
    signature: void SECITEM_FreeItem(SECItem *zap, PRBool freeit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZFree
      Src: /src/nss/lib/util/secitem.c:301,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/util/secitem.c:305,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - zap
    - freeit
    argTypes:
    - SECItem*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 308
    functionName: SECITEM_ZfreeItem
    functionSourceFile: /src/nss/lib/util/secitem.c
    functionUses: 83
    functionsReached:
    - PORT_ZFree
    linkageType: ''
    returnType: void
    signature: void SECITEM_ZfreeItem(SECItem *zap, PRBool freeit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - key
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 333
    functionName: PR_CALLBACK::SECITEM_Hash
    functionSourceFile: /src/nss/lib/util/secitem.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PLHashNumber
    signature: 'PLHashNumber PR_CALLBACK

      SECITEM_Hash(const void *key)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_ItemsAreEqual
      Src: /src/nss/lib/util/secitem.c:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - k1
    - k2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 348
    functionName: PR_CALLBACK::SECITEM_HashCompare
    functionSourceFile: /src/nss/lib/util/secitem.c
    functionUses: 0
    functionsReached:
    - SECITEM_ItemsAreEqual
    linkageType: ''
    returnType: PRIntn
    signature: 'PRIntn PR_CALLBACK

      SECITEM_HashCompare(const void *k1, const void *k2)'
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secitem.c:357,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secitem.c:358,1
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/util/secitem.c:363,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/util/secitem.c:368,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/util/secitem.c:370,1
    - Dst: PORT_ArenaZNewArray
      Src: /src/nss/lib/util/secitem.c:382,1
    - Dst: PORT_ZNewArray
      Src: /src/nss/lib/util/secitem.c:384,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/util/secitem.c:394,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/util/secitem.c:401,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/secitem.c:405,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 56
    argCount: 3
    argNames:
    - arena
    - array
    - len
    argTypes:
    - PLArenaPool*
    - SECItemArray*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 413
    functionName: SECITEM_AllocArray
    functionSourceFile: /src/nss/lib/util/secitem.c
    functionUses: 6
    functionsReached:
    - PORT_Assert
    - PORT_ArenaZNewArray
    - PORT_ArenaZAlloc
    - PORT_ZNewArray
    - PORT_Free
    - PORT_ZAlloc
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - PORT_SetError
    - PORT_ArenaUnmark
    linkageType: ''
    returnType: SECItemArray
    signature: 'SECItemArray *

      SECITEM_AllocArray(PLArenaPool *arena, SECItemArray *array, unsigned int len)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/util/secitem.c:428,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/util/secitem.c:430,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/secitem.c:434,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/secitem.c:439,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 3
    argNames:
    - array
    - zero_items
    - freeit
    argTypes:
    - SECItemArray*
    - PRBool
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 440
    functionName: secitem_FreeArray
    functionSourceFile: /src/nss/lib/util/secitem.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - SECITEM_ZfreeItem
    - SECITEM_FreeItem
    linkageType: ''
    returnType: void
    signature: void secitem_FreeArray(SECItemArray *array, PRBool zero_items, PRBool
      freeit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: secitem_FreeArray
      Src: /src/nss/lib/util/secitem.c:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - array
    - freeit
    argTypes:
    - SECItemArray*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 446
    functionName: SECITEM_FreeArray
    functionSourceFile: /src/nss/lib/util/secitem.c
    functionUses: 5
    functionsReached:
    - secitem_FreeArray
    linkageType: ''
    returnType: void
    signature: void SECITEM_FreeArray(SECItemArray *array, PRBool freeit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: secitem_FreeArray
      Src: /src/nss/lib/util/secitem.c:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - array
    - freeit
    argTypes:
    - SECItemArray*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 452
    functionName: SECITEM_ZfreeArray
    functionSourceFile: /src/nss/lib/util/secitem.c
    functionUses: 0
    functionsReached:
    - secitem_FreeArray
    linkageType: ''
    returnType: void
    signature: void SECITEM_ZfreeArray(SECItemArray *array, PRBool freeit)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_AllocArray
      Src: /src/nss/lib/util/secitem.c:467,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/util/secitem.c:472,1
    - Dst: SECITEM_ZfreeArray
      Src: /src/nss/lib/util/secitem.c:475,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - arena
    - from
    argTypes:
    - PLArenaPool*
    - SECItemArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 454
    functionDepth: 2
    functionLinenumber: 454
    functionLinenumberEnd: 481
    functionName: SECITEM_DupArray
    functionSourceFile: /src/nss/lib/util/secitem.c
    functionUses: 2
    functionsReached:
    - SECITEM_ZfreeArray
    - SECITEM_CopyItem
    - SECITEM_AllocArray
    linkageType: ''
    returnType: SECItemArray
    signature: 'SECItemArray *

      SECITEM_DupArray(PLArenaPool *arena, const SECItemArray *from)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 117
    functionName: PZ_NewLock
    functionSourceFile: /src/nss/lib/util/nssilock.h
    functionUses: 29
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PZ_NewLock(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - k
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 124
    functionName: PZ_Lock
    functionSourceFile: /src/nss/lib/util/nssilock.h
    functionUses: 98
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PZ_Lock(k)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - k
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    functionName: PZ_Unlock
    functionSourceFile: /src/nss/lib/util/nssilock.h
    functionUses: 98
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PZ_Unlock(k)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - k
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 138
    functionName: PZ_DestroyLock
    functionSourceFile: /src/nss/lib/util/nssilock.h
    functionUses: 34
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PZ_DestroyLock(k)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 145
    functionName: PZ_NewCondVar
    functionSourceFile: /src/nss/lib/util/nssilock.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PZ_NewCondVar(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 152
    functionName: PZ_DestroyCondVar
    functionSourceFile: /src/nss/lib/util/nssilock.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PZ_DestroyCondVar(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 159
    functionName: PZ_WaitCondVar
    functionSourceFile: /src/nss/lib/util/nssilock.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PZ_WaitCondVar(v, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 167
    functionName: PZ_NotifyCondVar
    functionSourceFile: /src/nss/lib/util/nssilock.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PZ_NotifyCondVar(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 174
    functionName: PZ_NotifyAllCondVar
    functionSourceFile: /src/nss/lib/util/nssilock.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PZ_NotifyAllCondVar(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 181
    functionName: PZ_NewMonitor
    functionSourceFile: /src/nss/lib/util/nssilock.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PZ_NewMonitor(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 188
    functionName: PZ_DestroyMonitor
    functionSourceFile: /src/nss/lib/util/nssilock.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PZ_DestroyMonitor(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 195
    functionName: PZ_EnterMonitor
    functionSourceFile: /src/nss/lib/util/nssilock.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PZ_EnterMonitor(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 202
    functionName: PZ_ExitMonitor
    functionSourceFile: /src/nss/lib/util/nssilock.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PZ_ExitMonitor(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 209
    functionName: PZ_InMonitor
    functionSourceFile: /src/nss/lib/util/nssilock.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PZ_InMonitor(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 210
    functionName: PZ_GetMonitorEntryCount
    functionSourceFile: /src/nss/lib/util/nssilock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PZ_GetMonitorEntryCount(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - m
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 217
    functionName: PZ_Wait
    functionSourceFile: /src/nss/lib/util/nssilock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PZ_Wait(m, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 225
    functionName: PZ_Notify
    functionSourceFile: /src/nss/lib/util/nssilock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PZ_Notify(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 232
    functionName: PZ_NotifyAll
    functionSourceFile: /src/nss/lib/util/nssilock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PZ_NotifyAll(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 239
    functionName: PZ_TraceFlush
    functionSourceFile: /src/nss/lib/util/nssilock.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PZ_TraceFlush()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 244
    functionName: PZ_NewLock
    functionSourceFile: /src/nss/lib/util/nssilock.h
    functionUses: 29
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PZ_NewLock(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - k
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 245
    functionName: PZ_DestroyLock
    functionSourceFile: /src/nss/lib/util/nssilock.h
    functionUses: 34
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PZ_DestroyLock(k)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - k
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 246
    functionName: PZ_Lock
    functionSourceFile: /src/nss/lib/util/nssilock.h
    functionUses: 98
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PZ_Lock(k)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - k
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 247
    functionName: PZ_Unlock
    functionSourceFile: /src/nss/lib/util/nssilock.h
    functionUses: 98
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PZ_Unlock(k)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 249
    functionName: PZ_NewCondVar
    functionSourceFile: /src/nss/lib/util/nssilock.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PZ_NewCondVar(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 250
    functionName: PZ_DestroyCondVar
    functionSourceFile: /src/nss/lib/util/nssilock.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PZ_DestroyCondVar(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 251
    functionName: PZ_WaitCondVar
    functionSourceFile: /src/nss/lib/util/nssilock.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PZ_WaitCondVar(v, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 252
    functionName: PZ_NotifyCondVar
    functionSourceFile: /src/nss/lib/util/nssilock.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PZ_NotifyCondVar(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 253
    functionName: PZ_NotifyAllCondVar
    functionSourceFile: /src/nss/lib/util/nssilock.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PZ_NotifyAllCondVar(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 255
    functionName: PZ_NewMonitor
    functionSourceFile: /src/nss/lib/util/nssilock.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PZ_NewMonitor(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 256
    functionName: PZ_DestroyMonitor
    functionSourceFile: /src/nss/lib/util/nssilock.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PZ_DestroyMonitor(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 257
    functionName: PZ_EnterMonitor
    functionSourceFile: /src/nss/lib/util/nssilock.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PZ_EnterMonitor(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 258
    functionName: PZ_ExitMonitor
    functionSourceFile: /src/nss/lib/util/nssilock.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PZ_ExitMonitor(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 259
    functionName: PZ_InMonitor
    functionSourceFile: /src/nss/lib/util/nssilock.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PZ_InMonitor(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - m
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 260
    functionName: PZ_Wait
    functionSourceFile: /src/nss/lib/util/nssilock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PZ_Wait(m, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 261
    functionName: PZ_Notify
    functionSourceFile: /src/nss/lib/util/nssilock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PZ_Notify(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - m
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 262
    functionName: PZ_NotifyAll
    functionSourceFile: /src/nss/lib/util/nssilock.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PZ_NotifyAll(m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 26
    functionName: nssRWLockStr
    functionSourceFile: /src/nss/lib/util/nssrwlk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PR_BEGIN_EXTERN_C
    signature: PR_BEGIN_EXTERN_C nssRWLockStr
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: UNTIL
    functionSourceFile: /src/nss/lib/util/nssrwlk.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNTIL(x)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PR_NEWZAP
      Src: /src/nss/lib/util/nssrwlk.c:77,1
    - Dst: PZ_NewLock
      Src: /src/nss/lib/util/nssrwlk.c:81,1
    - Dst: PZ_NewCondVar
      Src: /src/nss/lib/util/nssrwlk.c:85,1
    - Dst: PZ_NewCondVar
      Src: /src/nss/lib/util/nssrwlk.c:89,1
    - Dst: PR_Malloc
      Src: /src/nss/lib/util/nssrwlk.c:94,1
    - Dst: strlen
      Src: /src/nss/lib/util/nssrwlk.c:94,1
    - Dst: strcpy
      Src: /src/nss/lib/util/nssrwlk.c:98,1
    - Dst: NSSRWLock_Destroy
      Src: /src/nss/lib/util/nssrwlk.c:111,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 2
    argNames:
    - lock_rank
    - lock_name
    argTypes:
    - PRUint32
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 113
    functionName: NSSRWLock_New
    functionSourceFile: /src/nss/lib/util/nssrwlk.c
    functionUses: 7
    functionsReached:
    - PR_Malloc
    - strcpy
    - PZ_NewCondVar
    - NSSRWLock_Destroy
    - PR_NEWZAP
    - PZ_NewLock
    - strlen
    linkageType: ''
    returnType: NSSRWLock
    signature: 'NSSRWLock *

      NSSRWLock_New(PRUint32 lock_rank, const char *lock_name)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PR_ASSERT
      Src: /src/nss/lib/util/nssrwlk.c:121,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/util/nssrwlk.c:122,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/util/nssrwlk.c:123,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/util/nssrwlk.c:124,1
    - Dst: PR_Free
      Src: /src/nss/lib/util/nssrwlk.c:129,1
    - Dst: PZ_DestroyCondVar
      Src: /src/nss/lib/util/nssrwlk.c:131,1
    - Dst: PZ_DestroyCondVar
      Src: /src/nss/lib/util/nssrwlk.c:133,1
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/util/nssrwlk.c:135,1
    - Dst: PR_DELETE
      Src: /src/nss/lib/util/nssrwlk.c:136,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - rwlock
    argTypes:
    - NSSRWLock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 137
    functionName: NSSRWLock_Destroy
    functionSourceFile: /src/nss/lib/util/nssrwlk.c
    functionUses: 10
    functionsReached:
    - PR_Free
    - PR_ASSERT
    - PR_DELETE
    - PZ_DestroyLock
    - PZ_DestroyCondVar
    linkageType: ''
    returnType: void
    signature: void NSSRWLock_Destroy(NSSRWLock *rwlock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetCurrentThread
      Src: /src/nss/lib/util/nssrwlk.c:145,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/util/nssrwlk.c:147,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/util/nssrwlk.c:155,1
    - Dst: nssRWLock_GetThreadRank
      Src: /src/nss/lib/util/nssrwlk.c:156,1
    - Dst: UNTIL
      Src: /src/nss/lib/util/nssrwlk.c:161,1
    - Dst: PZ_WaitCondVar
      Src: /src/nss/lib/util/nssrwlk.c:167,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/util/nssrwlk.c:172,1
    - Dst: nssRWLock_SetThreadRank
      Src: /src/nss/lib/util/nssrwlk.c:175,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - rwlock
    argTypes:
    - NSSRWLock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 177
    functionName: NSSRWLock_LockRead
    functionSourceFile: /src/nss/lib/util/nssrwlk.c
    functionUses: 12
    functionsReached:
    - nssRWLock_SetThreadRank
    - PZ_Unlock
    - PR_ASSERT
    - nssRWLock_GetThreadRank
    - UNTIL
    - PZ_Lock
    - PR_GetCurrentThread
    - PZ_WaitCondVar
    linkageType: ''
    returnType: void
    signature: void NSSRWLock_LockRead(NSSRWLock *rwlock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/util/nssrwlk.c:184,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/util/nssrwlk.c:186,1
    - Dst: PZ_NotifyCondVar
      Src: /src/nss/lib/util/nssrwlk.c:193,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/util/nssrwlk.c:196,1
    - Dst: nssRWLock_UnsetThreadRank
      Src: /src/nss/lib/util/nssrwlk.c:202,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - rwlock
    argTypes:
    - NSSRWLock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 205
    functionName: NSSRWLock_UnlockRead
    functionSourceFile: /src/nss/lib/util/nssrwlk.c
    functionUses: 13
    functionsReached:
    - nssRWLock_UnsetThreadRank
    - PZ_Unlock
    - PZ_NotifyCondVar
    - PR_ASSERT
    - PZ_Lock
    linkageType: ''
    returnType: void
    signature: void NSSRWLock_UnlockRead(NSSRWLock *rwlock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetCurrentThread
      Src: /src/nss/lib/util/nssrwlk.c:213,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/util/nssrwlk.c:215,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/util/nssrwlk.c:222,1
    - Dst: nssRWLock_GetThreadRank
      Src: /src/nss/lib/util/nssrwlk.c:223,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/util/nssrwlk.c:228,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/util/nssrwlk.c:229,1
    - Dst: UNTIL
      Src: /src/nss/lib/util/nssrwlk.c:231,1
    - Dst: PZ_WaitCondVar
      Src: /src/nss/lib/util/nssrwlk.c:237,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/util/nssrwlk.c:239,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/util/nssrwlk.c:242,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/util/nssrwlk.c:249,1
    - Dst: nssRWLock_SetThreadRank
      Src: /src/nss/lib/util/nssrwlk.c:255,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - rwlock
    argTypes:
    - NSSRWLock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 257
    functionName: NSSRWLock_LockWrite
    functionSourceFile: /src/nss/lib/util/nssrwlk.c
    functionUses: 9
    functionsReached:
    - nssRWLock_SetThreadRank
    - PZ_Unlock
    - PR_ASSERT
    - nssRWLock_GetThreadRank
    - UNTIL
    - PZ_Lock
    - PR_GetCurrentThread
    - PZ_WaitCondVar
    linkageType: ''
    returnType: void
    signature: void NSSRWLock_LockWrite(NSSRWLock *rwlock)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetCurrentThread
      Src: /src/nss/lib/util/nssrwlk.c:264,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/util/nssrwlk.c:266,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/util/nssrwlk.c:267,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/util/nssrwlk.c:268,1
    - Dst: PZ_NotifyCondVar
      Src: /src/nss/lib/util/nssrwlk.c:279,1
    - Dst: PZ_NotifyAllCondVar
      Src: /src/nss/lib/util/nssrwlk.c:281,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/util/nssrwlk.c:284,1
    - Dst: nssRWLock_UnsetThreadRank
      Src: /src/nss/lib/util/nssrwlk.c:290,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - rwlock
    argTypes:
    - NSSRWLock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 293
    functionName: NSSRWLock_UnlockWrite
    functionSourceFile: /src/nss/lib/util/nssrwlk.c
    functionUses: 10
    functionsReached:
    - nssRWLock_UnsetThreadRank
    - PZ_Unlock
    - PZ_NotifyCondVar
    - PR_ASSERT
    - PZ_Lock
    - PZ_NotifyAllCondVar
    - PR_GetCurrentThread
    linkageType: ''
    returnType: void
    signature: void NSSRWLock_UnlockWrite(NSSRWLock *rwlock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetCurrentThread
      Src: /src/nss/lib/util/nssrwlk.c:300,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/util/nssrwlk.c:309,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/util/nssrwlk.c:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - rwlock
    argTypes:
    - NSSRWLock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 316
    functionName: NSSRWLock_HaveWriteLock
    functionSourceFile: /src/nss/lib/util/nssrwlk.c
    functionUses: 1
    functionsReached:
    - PZ_Unlock
    - PZ_Lock
    - PR_GetCurrentThread
    linkageType: ''
    returnType: PRBool
    signature: PRBool NSSRWLock_HaveWriteLock(NSSRWLock *rwlock)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PR_NewThreadPrivateIndex
      Src: /src/nss/lib/util/nssrwlk.c:341,1
    - Dst: PR_GetThreadPrivate
      Src: /src/nss/lib/util/nssrwlk.c:352,1
    - Dst: PR_CALLOC
      Src: /src/nss/lib/util/nssrwlk.c:354,1
    - Dst: PR_SetThreadPrivate
      Src: /src/nss/lib/util/nssrwlk.c:356,1
    - Dst: PR_DELETE
      Src: /src/nss/lib/util/nssrwlk.c:358,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - me
    - rwlock
    argTypes:
    - PRThread*
    - NSSRWLock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 375
    functionName: nssRWLock_SetThreadRank
    functionSourceFile: /src/nss/lib/util/nssrwlk.c
    functionUses: 2
    functionsReached:
    - PR_NewThreadPrivateIndex
    - PR_SetThreadPrivate
    - PR_CALLOC
    - PR_DELETE
    - PR_GetThreadPrivate
    linkageType: ''
    returnType: void
    signature: void nssRWLock_SetThreadRank(PRThread *me, NSSRWLock *rwlock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_ASSERT
      Src: /src/nss/lib/util/nssrwlk.c:380,1
    - Dst: PR_DELETE
      Src: /src/nss/lib/util/nssrwlk.c:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - lock_stack
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 382
    functionName: nssRWLock_ReleaseLockStack
    functionSourceFile: /src/nss/lib/util/nssrwlk.c
    functionUses: 0
    functionsReached:
    - PR_DELETE
    - PR_ASSERT
    linkageType: ''
    returnType: void
    signature: void nssRWLock_ReleaseLockStack(void *lock_stack)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetThreadPrivate
      Src: /src/nss/lib/util/nssrwlk.c:397,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - me
    argTypes:
    - PRThread*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 404
    functionName: nssRWLock_GetThreadRank
    functionSourceFile: /src/nss/lib/util/nssrwlk.c
    functionUses: 2
    functionsReached:
    - PR_GetThreadPrivate
    linkageType: ''
    returnType: PRUint32
    signature: PRUint32 nssRWLock_GetThreadRank(PRThread *me)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetThreadPrivate
      Src: /src/nss/lib/util/nssrwlk.c:422,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/util/nssrwlk.c:424,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 2
    argNames:
    - me
    - rwlock
    argTypes:
    - PRThread*
    - NSSRWLock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 448
    functionName: nssRWLock_UnsetThreadRank
    functionSourceFile: /src/nss/lib/util/nssrwlk.c
    functionUses: 2
    functionsReached:
    - PR_GetThreadPrivate
    - PR_ASSERT
    linkageType: ''
    returnType: void
    signature: void nssRWLock_UnsetThreadRank(PRThread *me, NSSRWLock *rwlock)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/oidstring.c:36,1
    - Dst: PL_strlen
      Src: /src/nss/lib/util/oidstring.c:40,1
    - Dst: PL_strncasecmp
      Src: /src/nss/lib/util/oidstring.c:42,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/oidstring.c:48,1
    - Dst: isdigit
      Src: /src/nss/lib/util/oidstring.c:53,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/util/oidstring.c:105,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/util/oidstring.c:111,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 80
    argCount: 4
    argNames:
    - pool
    - to
    - from
    - len
    argTypes:
    - PLArenaPool*
    - SECItem*
    - char*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 114
    functionName: SEC_StringToOID
    functionSourceFile: /src/nss/lib/util/oidstring.c
    functionUses: 5
    functionsReached:
    - PL_strlen
    - PORT_Memcpy
    - isdigit
    - PL_strncasecmp
    - SECITEM_CopyItem
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SEC_StringToOID(PLArenaPool *pool, SECItem *to, const char
      *from, PRUint32 len)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 38
    functionName: NSSUTIL_ArgGetPair
    functionSourceFile: /src/nss/lib/util/utilpars.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool NSSUTIL_ArgGetPair(char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/nss/lib/util/utilpars.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: NSSUTIL_ArgIsBlank
    functionSourceFile: /src/nss/lib/util/utilpars.c
    functionUses: 1
    functionsReached:
    - isspace
    linkageType: ''
    returnType: PRBool
    signature: PRBool NSSUTIL_ArgIsBlank(char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: NSSUTIL_ArgIsEscape
    functionSourceFile: /src/nss/lib/util/utilpars.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool NSSUTIL_ArgIsEscape(char c)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 67
    functionName: NSSUTIL_ArgIsQuote
    functionSourceFile: /src/nss/lib/util/utilpars.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool NSSUTIL_ArgIsQuote(char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSSUTIL_ArgIsBlank
      Src: /src/nss/lib/util/utilpars.c:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 75
    functionName: NSSUTIL_ArgStrip
    functionSourceFile: /src/nss/lib/util/utilpars.c
    functionUses: 2
    functionsReached:
    - NSSUTIL_ArgIsBlank
    linkageType: ''
    returnType: char
    signature: 'char *

      NSSUTIL_ArgStrip(const char *c)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NSSUTIL_ArgIsQuote
      Src: /src/nss/lib/util/utilpars.c:87,1
    - Dst: NSSUTIL_ArgGetPair
      Src: /src/nss/lib/util/utilpars.c:88,1
    - Dst: NSSUTIL_ArgIsEscape
      Src: /src/nss/lib/util/utilpars.c:97,1
    - Dst: NSSUTIL_ArgIsBlank
      Src: /src/nss/lib/util/utilpars.c:101,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 109
    functionName: NSSUTIL_ArgFindEnd
    functionSourceFile: /src/nss/lib/util/utilpars.c
    functionUses: 0
    functionsReached:
    - NSSUTIL_ArgIsBlank
    - NSSUTIL_ArgGetPair
    - NSSUTIL_ArgIsQuote
    - NSSUTIL_ArgIsEscape
    linkageType: ''
    returnType: char
    signature: 'char *

      NSSUTIL_ArgFindEnd(const char *string)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NSSUTIL_ArgFindEnd
      Src: /src/nss/lib/util/utilpars.c:118,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/util/utilpars.c:129,1
    - Dst: NSSUTIL_ArgIsQuote
      Src: /src/nss/lib/util/utilpars.c:137,1
    - Dst: NSSUTIL_ArgIsEscape
      Src: /src/nss/lib/util/utilpars.c:140,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - string
    - pcount
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 115
    functionDepth: 3
    functionLinenumber: 115
    functionLinenumberEnd: 149
    functionName: NSSUTIL_ArgFetchValue
    functionSourceFile: /src/nss/lib/util/utilpars.c
    functionUses: 1
    functionsReached:
    - PORT_Alloc
    - NSSUTIL_ArgIsQuote
    - NSSUTIL_ArgFindEnd
    - NSSUTIL_ArgIsEscape
    linkageType: ''
    returnType: char
    signature: 'char *

      NSSUTIL_ArgFetchValue(const char *string, int *pcount)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NSSUTIL_ArgIsBlank
      Src: /src/nss/lib/util/utilpars.c:164,1
    - Dst: NSSUTIL_ArgFindEnd
      Src: /src/nss/lib/util/utilpars.c:168,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 154
    functionDepth: 3
    functionLinenumber: 154
    functionLinenumberEnd: 172
    functionName: NSSUTIL_ArgSkipParameter
    functionSourceFile: /src/nss/lib/util/utilpars.c
    functionUses: 1
    functionsReached:
    - NSSUTIL_ArgIsBlank
    - NSSUTIL_ArgFindEnd
    linkageType: ''
    returnType: char
    signature: 'char *

      NSSUTIL_ArgSkipParameter(const char *string)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nss/lib/util/utilpars.c:181,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/utilpars.c:188,1
    - Dst: PORT_Strcpy
      Src: /src/nss/lib/util/utilpars.c:190,1
    - Dst: PORT_Strcat
      Src: /src/nss/lib/util/utilpars.c:191,1
    - Dst: PORT_Strncasecmp
      Src: /src/nss/lib/util/utilpars.c:193,1
    - Dst: NSSUTIL_ArgFetchValue
      Src: /src/nss/lib/util/utilpars.c:195,1
    - Dst: NSSUTIL_ArgSkipParameter
      Src: /src/nss/lib/util/utilpars.c:198,1
    - Dst: NSSUTIL_ArgStrip
      Src: /src/nss/lib/util/utilpars.c:200,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - paramName
    - parameters
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 177
    functionDepth: 4
    functionLinenumber: 177
    functionLinenumberEnd: 203
    functionName: NSSUTIL_ArgGetParamValue
    functionSourceFile: /src/nss/lib/util/utilpars.c
    functionUses: 2
    functionsReached:
    - PORT_Assert
    - PORT_Strncasecmp
    - NSSUTIL_ArgStrip
    - NSSUTIL_ArgSkipParameter
    - NSSUTIL_ArgFetchValue
    - PORT_Strcpy
    - PORT_Strcat
    - strlen
    linkageType: ''
    returnType: char
    signature: 'char *

      NSSUTIL_ArgGetParamValue(const char *paramName, const char *parameters)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - flags
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 218
    functionName: NSSUTIL_ArgNextFlag
    functionSourceFile: /src/nss/lib/util/utilpars.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      NSSUTIL_ArgNextFlag(const char *flags)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nss/lib/util/utilpars.c:228,1
    - Dst: NSSUTIL_ArgGetParamValue
      Src: /src/nss/lib/util/utilpars.c:231,1
    - Dst: NSSUTIL_ArgNextFlag
      Src: /src/nss/lib/util/utilpars.c:235,1
    - Dst: PORT_Strncasecmp
      Src: /src/nss/lib/util/utilpars.c:236,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/utilpars.c:241,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - label
    - flag
    - parameters
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 223
    functionDepth: 5
    functionLinenumber: 223
    functionLinenumberEnd: 243
    functionName: NSSUTIL_ArgHasFlag
    functionSourceFile: /src/nss/lib/util/utilpars.c
    functionUses: 4
    functionsReached:
    - NSSUTIL_ArgGetParamValue
    - PORT_Strncasecmp
    - PORT_Free
    - NSSUTIL_ArgNextFlag
    - strlen
    linkageType: ''
    returnType: PRBool
    signature: PRBool NSSUTIL_ArgHasFlag(const char *label, const char *flag, const
      char *parameters)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: NSSUTIL_ArgStrip
      Src: /src/nss/lib/util/utilpars.c:260,1
    - Dst: isdigit
      Src: /src/nss/lib/util/utilpars.c:277,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 1
    argNames:
    - num
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 248
    functionDepth: 3
    functionLinenumber: 248
    functionLinenumberEnd: 293
    functionName: NSSUTIL_ArgDecodeNumber
    functionSourceFile: /src/nss/lib/util/utilpars.c
    functionUses: 1
    functionsReached:
    - NSSUTIL_ArgStrip
    - isdigit
    linkageType: ''
    returnType: long
    signature: long NSSUTIL_ArgDecodeNumber(const char *num)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NSSUTIL_ArgIsBlank
      Src: /src/nss/lib/util/utilpars.c:311,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/util/utilpars.c:321,1
    - Dst: PORT_Strncpy
      Src: /src/nss/lib/util/utilpars.c:322,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - inString
    - next
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 299
    functionDepth: 2
    functionLinenumber: 299
    functionLinenumberEnd: 326
    functionName: NSSUTIL_ArgGetLabel
    functionSourceFile: /src/nss/lib/util/utilpars.c
    functionUses: 1
    functionsReached:
    - PORT_Alloc
    - PORT_Strncpy
    - NSSUTIL_ArgIsBlank
    linkageType: ''
    returnType: char
    signature: 'char *

      NSSUTIL_ArgGetLabel(const char *inString, int *next)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NSSUTIL_ArgGetParamValue
      Src: /src/nss/lib/util/utilpars.c:340,1
    - Dst: NSSUTIL_ArgDecodeNumber
      Src: /src/nss/lib/util/utilpars.c:346,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/utilpars.c:348,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - label
    - params
    - defValue
    - isdefault
    argTypes:
    - char*
    - char*
    - long
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 331
    functionDepth: 5
    functionLinenumber: 331
    functionLinenumberEnd: 351
    functionName: NSSUTIL_ArgReadLong
    functionSourceFile: /src/nss/lib/util/utilpars.c
    functionUses: 1
    functionsReached:
    - NSSUTIL_ArgGetParamValue
    - NSSUTIL_ArgDecodeNumber
    - PORT_Free
    linkageType: ''
    returnType: long
    signature: "long NSSUTIL_ArgReadLong(const char *label, const char *params,\n
      \                   long defValue, PRBool *isdefault)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - string
    - quote
    - addquotes
    argTypes:
    - char*
    - char
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 370
    functionName: nssutil_escapeQuotesSize
    functionSourceFile: /src/nss/lib/util/utilpars.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int nssutil_escapeQuotesSize(const char *string, char quote, PRBool
      addquotes)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nssutil_escapeQuotesSize
      Src: /src/nss/lib/util/utilpars.c:380,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/util/utilpars.c:382,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - string
    - quote
    - addquotes
    argTypes:
    - char*
    - char
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 399
    functionName: nssutil_escapeQuotes
    functionSourceFile: /src/nss/lib/util/utilpars.c
    functionUses: 0
    functionsReached:
    - nssutil_escapeQuotesSize
    - PORT_ZAlloc
    linkageType: ''
    returnType: char
    signature: 'char *

      nssutil_escapeQuotes(const char *string, char quote, PRBool addquotes)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssutil_escapeQuotesSize
      Src: /src/nss/lib/util/utilpars.c:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - string
    - quote
    argTypes:
    - char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 405
    functionName: NSSUTIL_EscapeSize
    functionSourceFile: /src/nss/lib/util/utilpars.c
    functionUses: 1
    functionsReached:
    - nssutil_escapeQuotesSize
    linkageType: ''
    returnType: int
    signature: int NSSUTIL_EscapeSize(const char *string, char quote)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssutil_escapeQuotes
      Src: /src/nss/lib/util/utilpars.c:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - string
    - quote
    argTypes:
    - char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 407
    functionDepth: 2
    functionLinenumber: 407
    functionLinenumberEnd: 411
    functionName: NSSUTIL_Escape
    functionSourceFile: /src/nss/lib/util/utilpars.c
    functionUses: 1
    functionsReached:
    - nssutil_escapeQuotes
    linkageType: ''
    returnType: char
    signature: 'char *

      NSSUTIL_Escape(const char *string, char quote)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssutil_escapeQuotesSize
      Src: /src/nss/lib/util/utilpars.c:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - string
    - quote
    argTypes:
    - char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 417
    functionName: NSSUTIL_QuoteSize
    functionSourceFile: /src/nss/lib/util/utilpars.c
    functionUses: 0
    functionsReached:
    - nssutil_escapeQuotesSize
    linkageType: ''
    returnType: int
    signature: int NSSUTIL_QuoteSize(const char *string, char quote)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssutil_escapeQuotes
      Src: /src/nss/lib/util/utilpars.c:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - string
    - quote
    argTypes:
    - char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 419
    functionDepth: 2
    functionLinenumber: 419
    functionLinenumberEnd: 423
    functionName: NSSUTIL_Quote
    functionSourceFile: /src/nss/lib/util/utilpars.c
    functionUses: 0
    functionsReached:
    - nssutil_escapeQuotes
    linkageType: ''
    returnType: char
    signature: 'char *

      NSSUTIL_Quote(const char *string, char quote)'
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - string
    - quote1
    - quote2
    argTypes:
    - char*
    - char
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 441
    functionName: NSSUTIL_DoubleEscapeSize
    functionSourceFile: /src/nss/lib/util/utilpars.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int NSSUTIL_DoubleEscapeSize(const char *string, char quote1, char
      quote2)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nssutil_escapeQuotes
      Src: /src/nss/lib/util/utilpars.c:451,1
    - Dst: nssutil_escapeQuotes
      Src: /src/nss/lib/util/utilpars.c:453,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/utilpars.c:454,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/util/utilpars.c:459,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - string
    - quote1
    - quote2
    argTypes:
    - char*
    - char
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 443
    functionDepth: 2
    functionLinenumber: 443
    functionLinenumberEnd: 462
    functionName: NSSUTIL_DoubleEscape
    functionSourceFile: /src/nss/lib/util/utilpars.c
    functionUses: 2
    functionsReached:
    - PORT_Free
    - nssutil_escapeQuotes
    - PORT_Strdup
    linkageType: ''
    returnType: char
    signature: 'char *

      NSSUTIL_DoubleEscape(const char *string, char quote1, char quote2)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/util/utilpars.c:485,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/util/utilpars.c:487,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 3
    argNames:
    - arena
    - value
    - quote
    argTypes:
    - PLArenaPool*
    - char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 498
    functionName: nssutil_formatValue
    functionSourceFile: /src/nss/lib/util/utilpars.c
    functionUses: 0
    functionsReached:
    - PORT_ZAlloc
    - PORT_ArenaZAlloc
    linkageType: ''
    returnType: char
    signature: 'char *

      nssutil_formatValue(PLArenaPool *arena, char *value, char quote)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - v
    - c
    argTypes:
    - char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 508
    functionName: nssutil_argHasChar
    functionSourceFile: /src/nss/lib/util/utilpars.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool nssutil_argHasChar(char *v, char c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSSUTIL_ArgIsBlank
      Src: /src/nss/lib/util/utilpars.c:514,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 510
    functionDepth: 2
    functionLinenumber: 510
    functionLinenumberEnd: 518
    functionName: nssutil_argHasBlanks
    functionSourceFile: /src/nss/lib/util/utilpars.c
    functionUses: 0
    functionsReached:
    - NSSUTIL_ArgIsBlank
    linkageType: ''
    returnType: PRBool
    signature: PRBool nssutil_argHasBlanks(char *v)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: NSSUTIL_ArgGetPair
      Src: /src/nss/lib/util/utilpars.c:524,1
    - Dst: nssutil_argHasBlanks
      Src: /src/nss/lib/util/utilpars.c:532,1
    - Dst: NSSUTIL_ArgIsQuote
      Src: /src/nss/lib/util/utilpars.c:532,1
    - Dst: nssutil_argHasChar
      Src: /src/nss/lib/util/utilpars.c:535,1
    - Dst: nssutil_argHasChar
      Src: /src/nss/lib/util/utilpars.c:535,1
    - Dst: nssutil_formatValue
      Src: /src/nss/lib/util/utilpars.c:536,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/util/utilpars.c:541,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/util/utilpars.c:543,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/utilpars.c:549,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 3
    argNames:
    - name
    - value
    - quote
    argTypes:
    - char*
    - char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 520
    functionDepth: 3
    functionLinenumber: 520
    functionLinenumberEnd: 552
    functionName: nssutil_formatPair
    functionSourceFile: /src/nss/lib/util/utilpars.c
    functionUses: 0
    functionsReached:
    - nssutil_argHasChar
    - NSSUTIL_ArgIsQuote
    - PORT_Free
    - nssutil_argHasBlanks
    - PR_smprintf
    - nssutil_formatValue
    - NSSUTIL_ArgGetPair
    linkageType: ''
    returnType: char
    signature: 'char *

      nssutil_formatPair(char *name, char *value, char quote)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_smprintf
      Src: /src/nss/lib/util/utilpars.c:563,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - name
    - value
    - def
    argTypes:
    - char*
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 554
    functionDepth: 1
    functionLinenumber: 554
    functionLinenumberEnd: 566
    functionName: nssutil_formatIntPair
    functionSourceFile: /src/nss/lib/util/utilpars.c
    functionUses: 0
    functionsReached:
    - PR_smprintf
    linkageType: ''
    returnType: char
    signature: "char *\nnssutil_formatIntPair(char *name, unsigned long value,\n                      unsigned
      long def)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/util/utilpars.c:572,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - pair
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 574
    functionName: nssutil_freePair
    functionSourceFile: /src/nss/lib/util/utilpars.c
    functionUses: 0
    functionsReached:
    - PR_smprintf_free
    linkageType: ''
    returnType: void
    signature: void nssutil_freePair(char *pair)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - arg
    - ','
    - flag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 590
    functionName: NSSUTIL_ARG_ENTRY
    functionSourceFile: /src/nss/lib/util/utilpars.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NSSUTIL_ARG_ENTRY(arg, flag)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NSSUTIL_ArgGetParamValue
      Src: /src/nss/lib/util/utilpars.c:628,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/lib/util/utilpars.c:632,1
    - Dst: NSSUTIL_ArgNextFlag
      Src: /src/nss/lib/util/utilpars.c:635,1
    - Dst: PORT_Strncasecmp
      Src: /src/nss/lib/util/utilpars.c:638,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/utilpars.c:644,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - label
    - params
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 619
    functionDepth: 5
    functionLinenumber: 619
    functionLinenumberEnd: 646
    functionName: NSSUTIL_ArgParseSlotFlags
    functionSourceFile: /src/nss/lib/util/utilpars.c
    functionUses: 0
    functionsReached:
    - NSSUTIL_ArgGetParamValue
    - PORT_Strcasecmp
    - PORT_Strncasecmp
    - PORT_Free
    - NSSUTIL_ArgNextFlag
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long NSSUTIL_ArgParseSlotFlags(const char *label, const char
      *params)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NSSUTIL_ArgDecodeNumber
      Src: /src/nss/lib/util/utilpars.c:655,1
    - Dst: NSSUTIL_ArgParseSlotFlags
      Src: /src/nss/lib/util/utilpars.c:656,1
    - Dst: NSSUTIL_ArgReadLong
      Src: /src/nss/lib/util/utilpars.c:657,1
    - Dst: NSSUTIL_ArgGetParamValue
      Src: /src/nss/lib/util/utilpars.c:659,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/lib/util/utilpars.c:663,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/lib/util/utilpars.c:665,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/utilpars.c:668,1
    - Dst: NSSUTIL_ArgHasFlag
      Src: /src/nss/lib/util/utilpars.c:671,1
    - Dst: NSSUTIL_ArgHasFlag
      Src: /src/nss/lib/util/utilpars.c:673,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - name
    - params
    - slotInfo
    argTypes:
    - char*
    - char*
    - struct NSSUTILPreSlotInfoStr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 649
    functionDepth: 6
    functionLinenumber: 649
    functionLinenumberEnd: 675
    functionName: nssutil_argDecodeSingleSlotInfo
    functionSourceFile: /src/nss/lib/util/utilpars.c
    functionUses: 0
    functionsReached:
    - NSSUTIL_ArgGetParamValue
    - PORT_Strcasecmp
    - PORT_Free
    - NSSUTIL_ArgHasFlag
    - NSSUTIL_ArgReadLong
    - NSSUTIL_ArgDecodeNumber
    - NSSUTIL_ArgParseSlotFlags
    linkageType: ''
    returnType: void
    signature: "void nssutil_argDecodeSingleSlotInfo(char *name, char *params,\n                                struct
      NSSUTILPreSlotInfoStr *slotInfo)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: NSSUTIL_ArgStrip
      Src: /src/nss/lib/util/utilpars.c:691,1
    - Dst: NSSUTIL_ArgStrip
      Src: /src/nss/lib/util/utilpars.c:692,1
    - Dst: NSSUTIL_ArgSkipParameter
      Src: /src/nss/lib/util/utilpars.c:692,1
    - Dst: PORT_ArenaZNewArray
      Src: /src/nss/lib/util/utilpars.c:698,1
    - Dst: PORT_ZNewArray
      Src: /src/nss/lib/util/utilpars.c:701,1
    - Dst: NSSUTIL_ArgStrip
      Src: /src/nss/lib/util/utilpars.c:706,1
    - Dst: NSSUTIL_ArgGetLabel
      Src: /src/nss/lib/util/utilpars.c:709,1
    - Dst: NSSUTIL_ArgIsBlank
      Src: /src/nss/lib/util/utilpars.c:712,1
    - Dst: NSSUTIL_ArgFetchValue
      Src: /src/nss/lib/util/utilpars.c:713,1
    - Dst: nssutil_argDecodeSingleSlotInfo
      Src: /src/nss/lib/util/utilpars.c:716,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/utilpars.c:718,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/utilpars.c:722,1
    - Dst: NSSUTIL_ArgStrip
      Src: /src/nss/lib/util/utilpars.c:723,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 3
    argNames:
    - arena
    - slotParams
    - retCount
    argTypes:
    - PLArenaPool*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 678
    functionDepth: 7
    functionLinenumber: 678
    functionLinenumberEnd: 727
    functionName: NSSUTIL_ArgParseSlotInfo
    functionSourceFile: /src/nss/lib/util/utilpars.c
    functionUses: 1
    functionsReached:
    - PORT_ArenaZNewArray
    - PORT_ZNewArray
    - NSSUTIL_ArgStrip
    - PORT_Free
    - NSSUTIL_ArgSkipParameter
    - nssutil_argDecodeSingleSlotInfo
    - NSSUTIL_ArgFetchValue
    - NSSUTIL_ArgGetLabel
    - NSSUTIL_ArgIsBlank
    linkageType: ''
    returnType: struct NSSUTILPreSlotInfoStr
    signature: "struct NSSUTILPreSlotInfoStr *\nNSSUTIL_ArgParseSlotInfo(PLArenaPool
      *arena, const char *slotParams,\n                         int *retCount)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PR_smprintf
      Src: /src/nss/lib/util/utilpars.c:753,1
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/util/utilpars.c:754,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/util/utilpars.c:757,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - defaultFlags
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 733
    functionDepth: 1
    functionLinenumber: 733
    functionLinenumberEnd: 764
    functionName: nssutil_mkSlotFlags
    functionSourceFile: /src/nss/lib/util/utilpars.c
    functionUses: 0
    functionsReached:
    - PR_smprintf_free
    - PR_smprintf
    linkageType: ''
    returnType: char
    signature: 'char *

      nssutil_mkSlotFlags(unsigned long defaultFlags)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/util/utilpars.c:771,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/util/utilpars.c:774,1
    - Dst: PORT_Strcat
      Src: /src/nss/lib/util/utilpars.c:776,1
    - Dst: PORT_Strcat
      Src: /src/nss/lib/util/utilpars.c:781,1
    - Dst: PORT_Strcat
      Src: /src/nss/lib/util/utilpars.c:782,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - hasRootCerts
    - hasRootTrust
    argTypes:
    - PRBool
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 768
    functionDepth: 0
    functionLinenumber: 768
    functionLinenumberEnd: 785
    functionName: nssutil_mkRootFlags
    functionSourceFile: /src/nss/lib/util/utilpars.c
    functionUses: 0
    functionsReached:
    - PORT_Strcat
    - PORT_Memset
    - PORT_ZAlloc
    linkageType: ''
    returnType: char
    signature: 'char *

      nssutil_mkRootFlags(PRBool hasRootCerts, PRBool hasRootTrust)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: nssutil_mkSlotFlags
      Src: /src/nss/lib/util/utilpars.c:807,1
    - Dst: nssutil_mkRootFlags
      Src: /src/nss/lib/util/utilpars.c:808,1
    - Dst: nssutil_formatPair
      Src: /src/nss/lib/util/utilpars.c:809,1
    - Dst: nssutil_formatPair
      Src: /src/nss/lib/util/utilpars.c:810,1
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/util/utilpars.c:812,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/utilpars.c:814,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/util/utilpars.c:816,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/util/utilpars.c:820,1
    - Dst: nssutil_freePair
      Src: /src/nss/lib/util/utilpars.c:823,1
    - Dst: nssutil_freePair
      Src: /src/nss/lib/util/utilpars.c:824,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 6
    argNames:
    - slotID
    - defaultFlags
    - timeout
    - askpw_in
    - hasRootCerts
    - hasRootTrust
    argTypes:
    - unsigned long
    - unsigned long
    - unsigned long
    - unsigned char
    - PRBool
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 788
    functionDepth: 4
    functionLinenumber: 788
    functionLinenumberEnd: 826
    functionName: NSSUTIL_MkSlotString
    functionSourceFile: /src/nss/lib/util/utilpars.c
    functionUses: 1
    functionsReached:
    - nssutil_freePair
    - PORT_Free
    - nssutil_mkRootFlags
    - nssutil_formatPair
    - PR_smprintf_free
    - PR_smprintf
    - nssutil_mkSlotFlags
    linkageType: ''
    returnType: char
    signature: "char *\nNSSUTIL_MkSlotString(unsigned long slotID, unsigned long defaultFlags,\n
      \                    unsigned long timeout, unsigned char askpw_in,\n                     PRBool
      hasRootCerts, PRBool hasRootTrust)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NSSUTIL_ArgNextFlag
      Src: /src/nss/lib/util/utilpars.c:1013,1
    - Dst: PORT_Strncasecmp
      Src: /src/nss/lib/util/utilpars.c:1014,1
    - Dst: atoi
      Src: /src/nss/lib/util/utilpars.c:1023,1
    - Dst: atoi
      Src: /src/nss/lib/util/utilpars.c:1025,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - newCiphers
    - cipherList
    argTypes:
    - unsigned long*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 1006
    functionDepth: 1
    functionLinenumber: 1006
    functionLinenumberEnd: 1029
    functionName: NSSUTIL_ArgParseCipherFlags
    functionSourceFile: /src/nss/lib/util/utilpars.c
    functionUses: 1
    functionsReached:
    - PORT_Strncasecmp
    - atoi
    - NSSUTIL_ArgNextFlag
    linkageType: ''
    returnType: void
    signature: void NSSUTIL_ArgParseCipherFlags(unsigned long *newCiphers, const char
      *cipherList)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/util/utilpars.c:1041,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/util/utilpars.c:1044,1
    - Dst: PORT_Strcat
      Src: /src/nss/lib/util/utilpars.c:1046,1
    - Dst: PORT_Strcat
      Src: /src/nss/lib/util/utilpars.c:1051,1
    - Dst: PORT_Strcat
      Src: /src/nss/lib/util/utilpars.c:1052,1
    - Dst: PORT_Strcat
      Src: /src/nss/lib/util/utilpars.c:1057,1
    - Dst: PORT_Strcat
      Src: /src/nss/lib/util/utilpars.c:1058,1
    - Dst: PORT_Strcat
      Src: /src/nss/lib/util/utilpars.c:1063,1
    - Dst: PORT_Strcat
      Src: /src/nss/lib/util/utilpars.c:1064,1
    - Dst: PORT_Strcat
      Src: /src/nss/lib/util/utilpars.c:1069,1
    - Dst: PORT_Strcat
      Src: /src/nss/lib/util/utilpars.c:1070,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 5
    argNames:
    - internal
    - isFIPS
    - isModuleDB
    - isModuleDBOnly
    - isCritical
    argTypes:
    - PRBool
    - PRBool
    - PRBool
    - PRBool
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 1037
    functionDepth: 0
    functionLinenumber: 1037
    functionLinenumberEnd: 1073
    functionName: nssutil_mkNSSFlags
    functionSourceFile: /src/nss/lib/util/utilpars.c
    functionUses: 0
    functionsReached:
    - PORT_Strcat
    - PORT_Memset
    - PORT_ZAlloc
    linkageType: ''
    returnType: char
    signature: "char *\nnssutil_mkNSSFlags(PRBool internal, PRBool isFIPS,\n                   PRBool
      isModuleDB, PRBool isModuleDBOnly, PRBool isCritical)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PR_smprintf
      Src: /src/nss/lib/util/utilpars.c:1086,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/util/utilpars.c:1088,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/util/utilpars.c:1092,1
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/util/utilpars.c:1093,1
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/util/utilpars.c:1094,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/util/utilpars.c:1105,1
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/util/utilpars.c:1106,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/util/utilpars.c:1109,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - ssl0
    - ssl1
    argTypes:
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1115
      start: 1076
    functionDepth: 1
    functionLinenumber: 1076
    functionLinenumberEnd: 1115
    functionName: nssutil_mkCipherFlags
    functionSourceFile: /src/nss/lib/util/utilpars.c
    functionUses: 0
    functionsReached:
    - PR_smprintf_free
    - PR_smprintf
    linkageType: ''
    returnType: char
    signature: 'char *

      nssutil_mkCipherFlags(unsigned long ssl0, unsigned long ssl1)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strlen
      Src: /src/nss/lib/util/utilpars.c:1134,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/util/utilpars.c:1138,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/util/utilpars.c:1139,1
    - Dst: PORT_Strcat
      Src: /src/nss/lib/util/utilpars.c:1141,1
    - Dst: PORT_Strcat
      Src: /src/nss/lib/util/utilpars.c:1142,1
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/util/utilpars.c:1143,1
    - Dst: nssutil_mkNSSFlags
      Src: /src/nss/lib/util/utilpars.c:1150,1
    - Dst: nssutil_mkCipherFlags
      Src: /src/nss/lib/util/utilpars.c:1153,1
    - Dst: nssutil_formatIntPair
      Src: /src/nss/lib/util/utilpars.c:1155,1
    - Dst: nssutil_formatIntPair
      Src: /src/nss/lib/util/utilpars.c:1157,1
    - Dst: nssutil_formatPair
      Src: /src/nss/lib/util/utilpars.c:1159,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/utilpars.c:1161,1
    - Dst: nssutil_formatPair
      Src: /src/nss/lib/util/utilpars.c:1162,1
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/util/utilpars.c:1164,1
    - Dst: nssutil_formatPair
      Src: /src/nss/lib/util/utilpars.c:1165,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/utilpars.c:1167,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/util/utilpars.c:1168,1
    - Dst: nssutil_freePair
      Src: /src/nss/lib/util/utilpars.c:1170,1
    - Dst: nssutil_freePair
      Src: /src/nss/lib/util/utilpars.c:1171,1
    - Dst: nssutil_freePair
      Src: /src/nss/lib/util/utilpars.c:1172,1
    - Dst: nssutil_freePair
      Src: /src/nss/lib/util/utilpars.c:1173,1
    - Dst: nssutil_freePair
      Src: /src/nss/lib/util/utilpars.c:1174,1
    - Dst: NSSUTIL_ArgStrip
      Src: /src/nss/lib/util/utilpars.c:1175,1
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/util/utilpars.c:1177,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 39
    argCount: 11
    argNames:
    - slotStrings
    - slotCount
    - internal
    - isFIPS
    - isModuleDB
    - isModuleDBOnly
    - isCritical
    - trustOrder
    - cipherOrder
    - ssl0
    - ssl1
    argTypes:
    - char**
    - int
    - PRBool
    - PRBool
    - PRBool
    - PRBool
    - PRBool
    - unsigned long
    - unsigned long
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1181
      start: 1118
    functionDepth: 4
    functionLinenumber: 1118
    functionLinenumberEnd: 1181
    functionName: NSSUTIL_MkNSSString
    functionSourceFile: /src/nss/lib/util/utilpars.c
    functionUses: 1
    functionsReached:
    - nssutil_mkNSSFlags
    - nssutil_freePair
    - PORT_Free
    - NSSUTIL_ArgStrip
    - PORT_ZAlloc
    - PORT_Strlen
    - nssutil_formatPair
    - PR_smprintf_free
    - nssutil_formatIntPair
    - nssutil_mkCipherFlags
    - PORT_Memset
    - PR_smprintf
    - PORT_Strcat
    linkageType: ''
    returnType: char
    signature: "char *\nNSSUTIL_MkNSSString(char **slotStrings, int slotCount, PRBool
      internal,\n                    PRBool isFIPS, PRBool isModuleDB, PRBool isModuleDBOnly,\n
      \                   PRBool isCritical, unsigned long trustOrder,\n                    unsigned
      long cipherOrder, unsigned long ssl0, unsigned long ssl1)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strncmp
      Src: /src/nss/lib/util/utilpars.c:1204,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/util/utilpars.c:1208,1
    - Dst: PORT_Strncmp
      Src: /src/nss/lib/util/utilpars.c:1221,1
    - Dst: PORT_Strncmp
      Src: /src/nss/lib/util/utilpars.c:1224,1
    - Dst: PORT_Strncmp
      Src: /src/nss/lib/util/utilpars.c:1227,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/util/utilpars.c:1236,1
    - Dst: PORT_Strncmp
      Src: /src/nss/lib/util/utilpars.c:1238,1
    - Dst: PORT_Strncmp
      Src: /src/nss/lib/util/utilpars.c:1240,1
    - Dst: PORT_Strncmp
      Src: /src/nss/lib/util/utilpars.c:1242,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 53
    argCount: 3
    argNames:
    - configdir
    - pdbType
    - appName
    argTypes:
    - char*
    - NSSDBType*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1252
      start: 1193
    functionDepth: 1
    functionLinenumber: 1193
    functionLinenumberEnd: 1252
    functionName: _NSSUTIL_EvaluateConfigDir
    functionSourceFile: /src/nss/lib/util/utilpars.c
    functionUses: 1
    functionsReached:
    - PORT_Strdup
    - PR_GetEnvSecure
    - PORT_Strncmp
    linkageType: ''
    returnType: char
    signature: "char *\n_NSSUTIL_EvaluateConfigDir(const char *configdir,\n                           NSSDBType
      *pdbType, char **appName)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NSSUTIL_ArgStrip
      Src: /src/nss/lib/util/utilpars.c:1265,1
    - Dst: NSSUTIL_HANDLE_STRING_ARG
      Src: /src/nss/lib/util/utilpars.c:1268,1
    - Dst: NSSUTIL_HANDLE_STRING_ARG
      Src: /src/nss/lib/util/utilpars.c:1269,1
    - Dst: param
      Src: /src/nss/lib/util/utilpars.c:1269,1
    - Dst: NSSUTIL_HANDLE_FINAL_ARG
      Src: /src/nss/lib/util/utilpars.c:1270,1
    - Dst: NSSUTIL_ArgHasFlag
      Src: /src/nss/lib/util/utilpars.c:1274,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/util/utilpars.c:1281,1
    - Dst: _NSSUTIL_EvaluateConfigDir
      Src: /src/nss/lib/util/utilpars.c:1285,1
    - Dst: NSSUTIL_ArgHasFlag
      Src: /src/nss/lib/util/utilpars.c:1287,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/utilpars.c:1291,1
    - Dst: NSSUTIL_ArgHasFlag
      Src: /src/nss/lib/util/utilpars.c:1299,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/util/utilpars.c:1306,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/util/utilpars.c:1309,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/utilpars.c:1312,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 5
    argNames:
    - param
    - dbType
    - appName
    - filename
    - rw
    argTypes:
    - char*
    - NSSDBType*
    - char**
    - char**
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1314
      start: 1254
    functionDepth: 6
    functionLinenumber: 1254
    functionLinenumberEnd: 1314
    functionName: _NSSUTIL_GetSecmodName
    functionSourceFile: /src/nss/lib/util/utilpars.c
    functionUses: 0
    functionsReached:
    - param
    - NSSUTIL_ArgStrip
    - PORT_Free
    - NSSUTIL_HANDLE_FINAL_ARG
    - PR_smprintf
    - NSSUTIL_ArgHasFlag
    - NSSUTIL_HANDLE_STRING_ARG
    - _NSSUTIL_EvaluateConfigDir
    - PORT_Strdup
    linkageType: ''
    returnType: char
    signature: "char *\n_NSSUTIL_GetSecmodName(const char *param, NSSDBType *dbType,
      char **appName,\n                       char **filename, PRBool *rw)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: MultiByteToWideChar
      Src: /src/nss/lib/util/utilmod.c:58,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/util/utilmod.c:62,1
    - Dst: MultiByteToWideChar
      Src: /src/nss/lib/util/utilmod.c:66,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/utilmod.c:68,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - buf
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 72
    functionName: _NSSUTIL_UTF8ToWide
    functionSourceFile: /src/nss/lib/util/utilmod.c
    functionUses: 1
    functionsReached:
    - PORT_Alloc
    - PORT_Free
    - MultiByteToWideChar
    linkageType: ''
    returnType: LPWSTR
    signature: LPWSTR _NSSUTIL_UTF8ToWide(const char *buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _NSSUTIL_UTF8ToWide
      Src: /src/nss/lib/util/utilmod.c:83,1
    - Dst: _wopen
      Src: /src/nss/lib/util/utilmod.c:87,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/utilmod.c:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - filename
    - oflag
    - pmode
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 91
    functionName: os_open
    functionSourceFile: /src/nss/lib/util/utilmod.c
    functionUses: 0
    functionsReached:
    - _NSSUTIL_UTF8ToWide
    - PORT_Free
    - _wopen
    linkageType: ''
    returnType: int
    signature: int os_open(const char *filename, int oflag, int pmode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _NSSUTIL_UTF8ToWide
      Src: /src/nss/lib/util/utilmod.c:102,1
    - Dst: _wstat
      Src: /src/nss/lib/util/utilmod.c:106,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/utilmod.c:107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - path
    - buffer
    argTypes:
    - char*
    - os_stat_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 110
    functionName: os_stat
    functionSourceFile: /src/nss/lib/util/utilmod.c
    functionUses: 0
    functionsReached:
    - _NSSUTIL_UTF8ToWide
    - PORT_Free
    - _wstat
    linkageType: ''
    returnType: int
    signature: int os_stat(const char *path, os_stat_type *buffer)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _NSSUTIL_UTF8ToWide
      Src: /src/nss/lib/util/utilmod.c:121,1
    - Dst: _NSSUTIL_UTF8ToWide
      Src: /src/nss/lib/util/utilmod.c:125,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/utilmod.c:127,1
    - Dst: _wfopen
      Src: /src/nss/lib/util/utilmod.c:130,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/utilmod.c:131,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/utilmod.c:132,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - filename
    - mode
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 135
    functionName: os_fopen
    functionSourceFile: /src/nss/lib/util/utilmod.c
    functionUses: 0
    functionsReached:
    - _NSSUTIL_UTF8ToWide
    - PORT_Free
    - _wfopen
    linkageType: ''
    returnType: FILE
    signature: 'FILE *

      os_fopen(const char *filename, const char *mode)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _NSSUTIL_UTF8ToWide
      Src: /src/nss/lib/util/utilmod.c:161,1
    - Dst: _waccess
      Src: /src/nss/lib/util/utilmod.c:165,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/utilmod.c:166,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - path
    - how
    argTypes:
    - char*
    - PRAccessHow
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 169
    functionName: _NSSUTIL_Access
    functionSourceFile: /src/nss/lib/util/utilmod.c
    functionUses: 0
    functionsReached:
    - _NSSUTIL_UTF8ToWide
    - PORT_Free
    - _waccess
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus _NSSUTIL_Access(const char *path, PRAccessHow how)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _NSSUTIL_UTF8ToWide
      Src: /src/nss/lib/util/utilmod.c:180,1
    - Dst: DeleteFileW
      Src: /src/nss/lib/util/utilmod.c:184,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/utilmod.c:185,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 188
    functionName: nssutil_Delete
    functionSourceFile: /src/nss/lib/util/utilmod.c
    functionUses: 0
    functionsReached:
    - _NSSUTIL_UTF8ToWide
    - DeleteFileW
    - PORT_Free
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus nssutil_Delete(const char *name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _NSSUTIL_UTF8ToWide
      Src: /src/nss/lib/util/utilmod.c:199,1
    - Dst: _NSSUTIL_UTF8ToWide
      Src: /src/nss/lib/util/utilmod.c:203,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/utilmod.c:205,1
    - Dst: MoveFileW
      Src: /src/nss/lib/util/utilmod.c:208,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/utilmod.c:209,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/utilmod.c:210,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - from
    - to
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 213
    functionName: nssutil_Rename
    functionSourceFile: /src/nss/lib/util/utilmod.c
    functionUses: 0
    functionsReached:
    - _NSSUTIL_UTF8ToWide
    - PORT_Free
    - MoveFileW
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus nssutil_Rename(const char *from, const char *to)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strlen
      Src: /src/nss/lib/util/utilmod.c:256,1
    - Dst: PORT_Realloc
      Src: /src/nss/lib/util/utilmod.c:261,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/utilmod.c:263,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/util/utilmod.c:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - baseString
    - str
    - str_len
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 269
    functionName: nssutil_DupnCat
    functionSourceFile: /src/nss/lib/util/utilmod.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - PORT_Memcpy
    - PORT_Strlen
    - PORT_Realloc
    linkageType: ''
    returnType: char
    signature: 'char *

      nssutil_DupnCat(char *baseString, const char *str, int str_len)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nssutil_DupnCat
      Src: /src/nss/lib/util/utilmod.c:276,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/util/utilmod.c:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - baseString
    - str
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 273
    functionDepth: 2
    functionLinenumber: 273
    functionLinenumberEnd: 277
    functionName: nssutil_DupCat
    functionSourceFile: /src/nss/lib/util/utilmod.c
    functionUses: 0
    functionsReached:
    - PORT_Strlen
    - nssutil_DupnCat
    linkageType: ''
    returnType: char
    signature: 'char *

      nssutil_DupCat(char *baseString, const char *str)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Free
      Src: /src/nss/lib/util/utilmod.c:287,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/utilmod.c:289,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - moduleSpecList
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 292
    functionName: nssutil_releaseSpecList
    functionSourceFile: /src/nss/lib/util/utilmod.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus nssutil_releaseSpecList(char **moduleSpecList)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Realloc
      Src: /src/nss/lib/util/utilmod.c:301,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/util/utilmod.c:306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - pModuleList
    - useCount
    - last
    argTypes:
    - char***
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 309
    functionName: nssutil_growList
    functionSourceFile: /src/nss/lib/util/utilmod.c
    functionUses: 0
    functionsReached:
    - PORT_Memset
    - PORT_Realloc
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus nssutil_growList(char ***pModuleList, int *useCount, int
      last)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strdup
      Src: /src/nss/lib/util/utilmod.c:316,1
    - Dst: PORT_Strrchr
      Src: /src/nss/lib/util/utilmod.c:319,1
    - Dst: PORT_Strrchr
      Src: /src/nss/lib/util/utilmod.c:324,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/util/utilmod.c:329,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/util/utilmod.c:331,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/utilmod.c:333,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - dbname
    - filename
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 335
    functionName: _NSSUTIL_GetOldSecmodName
    functionSourceFile: /src/nss/lib/util/utilmod.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - PORT_Strrchr
    - PORT_Strdup
    - PR_smprintf
    linkageType: ''
    returnType: char
    signature: 'char *

      _NSSUTIL_GetOldSecmodName(const char *dbname, const char *filename)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: os_open
      Src: /src/nss/lib/util/utilmod.c:352,1
    - Dst: os_fdopen
      Src: /src/nss/lib/util/utilmod.c:358,1
    - Dst: close
      Src: /src/nss/lib/util/utilmod.c:360,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - name
    - om
    - open_perms
    argTypes:
    - char*
    - enum lfopen_mode
    - os_open_permissions_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 346
    functionDepth: 2
    functionLinenumber: 346
    functionLinenumberEnd: 364
    functionName: lfopen
    functionSourceFile: /src/nss/lib/util/utilmod.c
    functionUses: 0
    functionsReached:
    - close
    - os_open
    - os_fdopen
    linkageType: ''
    returnType: FILE
    signature: 'FILE *

      lfopen(const char *name, enum lfopen_mode om, os_open_permissions_type open_perms)'
  - BBCount: 53
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/util/utilmod.c:387,1
    - Dst: os_fopen
      Src: /src/nss/lib/util/utilmod.c:396,1
    - Dst: fgets
      Src: /src/nss/lib/util/utilmod.c:412,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/util/utilmod.c:417,1
    - Dst: PORT_Strchr
      Src: /src/nss/lib/util/utilmod.c:435,1
    - Dst: nssutil_DupnCat
      Src: /src/nss/lib/util/utilmod.c:440,1
    - Dst: nssutil_DupCat
      Src: /src/nss/lib/util/utilmod.c:444,1
    - Dst: nssutil_DupnCat
      Src: /src/nss/lib/util/utilmod.c:450,1
    - Dst: nssutil_DupCat
      Src: /src/nss/lib/util/utilmod.c:454,1
    - Dst: PORT_Strncasecmp
      Src: /src/nss/lib/util/utilmod.c:460,1
    - Dst: PORT_Strncasecmp
      Src: /src/nss/lib/util/utilmod.c:481,1
    - Dst: NSSUTIL_Quote
      Src: /src/nss/lib/util/utilmod.c:486,1
    - Dst: nssutil_DupnCat
      Src: /src/nss/lib/util/utilmod.c:494,1
    - Dst: nssutil_DupnCat
      Src: /src/nss/lib/util/utilmod.c:498,1
    - Dst: NSSUTIL_Quote
      Src: /src/nss/lib/util/utilmod.c:501,1
    - Dst: nssutil_DupCat
      Src: /src/nss/lib/util/utilmod.c:504,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/utilmod.c:505,1
    - Dst: PORT_Strncasecmp
      Src: /src/nss/lib/util/utilmod.c:511,1
    - Dst: PORT_Strstr
      Src: /src/nss/lib/util/utilmod.c:514,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/utilmod.c:518,1
    - Dst: NSSUTIL_Quote
      Src: /src/nss/lib/util/utilmod.c:520,1
    - Dst: nssutil_DupnCat
      Src: /src/nss/lib/util/utilmod.c:537,1
    - Dst: nssutil_DupCat
      Src: /src/nss/lib/util/utilmod.c:540,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/utilmod.c:544,1
    - Dst: nssutil_growList
      Src: /src/nss/lib/util/utilmod.c:550,1
    - Dst: feof
      Src: /src/nss/lib/util/utilmod.c:565,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/utilmod.c:568,1
    - Dst: _NSSUTIL_GetOldSecmodName
      Src: /src/nss/lib/util/utilmod.c:575,1
    - Dst: _NSSUTIL_Access
      Src: /src/nss/lib/util/utilmod.c:584,1
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/util/utilmod.c:586,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/util/utilmod.c:587,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/utilmod.c:588,1
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/util/utilmod.c:594,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/util/utilmod.c:603,1
    - Dst: NSSUTIL_Quote
      Src: /src/nss/lib/util/utilmod.c:604,1
    - Dst: nssutil_DupCat
      Src: /src/nss/lib/util/utilmod.c:607,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/utilmod.c:608,1
    - Dst: nssutil_DupCat
      Src: /src/nss/lib/util/utilmod.c:611,1
    - Dst: nssutil_DupCat
      Src: /src/nss/lib/util/utilmod.c:615,1
    - Dst: nssutil_DupCat
      Src: /src/nss/lib/util/utilmod.c:619,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/utilmod.c:634,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/utilmod.c:638,1
    - Dst: nssutil_releaseSpecList
      Src: /src/nss/lib/util/utilmod.c:643,1
    - Dst: fclose
      Src: /src/nss/lib/util/utilmod.c:648,1
    - Dst: nssutil_AddSecmodDBEntry
      Src: /src/nss/lib/util/utilmod.c:651,1
    CyclomaticComplexity: 87
    EdgeCount: 87
    ICount: 214
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 371
    functionDepth: 3
    functionLinenumber: 371
    functionLinenumberEnd: 654
    functionName: nssutil_ReadSecmodDB
    functionSourceFile: /src/nss/lib/util/utilmod.c
    functionUses: 0
    functionsReached:
    - nssutil_releaseSpecList
    - os_fopen
    - NSSUTIL_Quote
    - PORT_Strstr
    - _NSSUTIL_Access
    - PORT_SetError
    - PR_smprintf_free
    - nssutil_growList
    - nssutil_DupCat
    - PORT_Strchr
    - PORT_ZFree
    - fclose
    - nssutil_AddSecmodDBEntry
    - PORT_ZAlloc
    - PORT_Strlen
    - feof
    - nssutil_DupnCat
    - PORT_Strncasecmp
    - PORT_Free
    - fgets
    - _NSSUTIL_GetOldSecmodName
    - PORT_Strdup
    linkageType: ''
    returnType: char
    signature: "char **\nnssutil_ReadSecmodDB(const char *appName,\n                     const
      char *filename, const char *dbname,\n                     char *params, PRBool
      rw)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nssutil_releaseSpecList
      Src: /src/nss/lib/util/utilmod.c:662,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - appName
    - filename
    - dbname
    - moduleSpecList
    - rw
    argTypes:
    - char*
    - char*
    - char*
    - char**
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 656
    functionDepth: 1
    functionLinenumber: 656
    functionLinenumberEnd: 665
    functionName: nssutil_ReleaseSecmodDBData
    functionSourceFile: /src/nss/lib/util/utilmod.c
    functionUses: 0
    functionsReached:
    - nssutil_releaseSpecList
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus nssutil_ReleaseSecmodDBData(const char *appName,\n                            const
      char *filename, const char *dbname,\n                            char **moduleSpecList,
      PRBool rw)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/utilmod.c:692,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/utilmod.c:697,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/util/utilmod.c:701,1
    - Dst: strlen
      Src: /src/nss/lib/util/utilmod.c:704,1
    - Dst: os_stat
      Src: /src/nss/lib/util/utilmod.c:707,1
    - Dst: os_fopen
      Src: /src/nss/lib/util/utilmod.c:714,1
    - Dst: lfopen
      Src: /src/nss/lib/util/utilmod.c:718,1
    - Dst: NSSUTIL_ArgGetParamValue
      Src: /src/nss/lib/util/utilmod.c:723,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/util/utilmod.c:725,1
    - Dst: NSSUTIL_ArgGetParamValue
      Src: /src/nss/lib/util/utilmod.c:727,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/util/utilmod.c:729,1
    - Dst: fgets
      Src: /src/nss/lib/util/utilmod.c:739,1
    - Dst: PORT_Strncasecmp
      Src: /src/nss/lib/util/utilmod.c:748,1
    - Dst: PORT_Strncmp
      Src: /src/nss/lib/util/utilmod.c:749,1
    - Dst: PORT_Strncasecmp
      Src: /src/nss/lib/util/utilmod.c:750,1
    - Dst: PORT_Strncmp
      Src: /src/nss/lib/util/utilmod.c:751,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/utilmod.c:754,1
    - Dst: nssutil_DupCat
      Src: /src/nss/lib/util/utilmod.c:763,1
    - Dst: fwrite
      Src: /src/nss/lib/util/utilmod.c:769,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/util/utilmod.c:769,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/utilmod.c:770,1
    - Dst: fputs
      Src: /src/nss/lib/util/utilmod.c:775,1
    - Dst: fclose
      Src: /src/nss/lib/util/utilmod.c:780,1
    - Dst: fclose
      Src: /src/nss/lib/util/utilmod.c:781,1
    - Dst: nssutil_Delete
      Src: /src/nss/lib/util/utilmod.c:784,1
    - Dst: nssutil_Rename
      Src: /src/nss/lib/util/utilmod.c:785,1
    - Dst: nssutil_Delete
      Src: /src/nss/lib/util/utilmod.c:787,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/utilmod.c:789,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/utilmod.c:790,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/utilmod.c:791,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/utilmod.c:792,1
    - Dst: fclose
      Src: /src/nss/lib/util/utilmod.c:797,1
    - Dst: fclose
      Src: /src/nss/lib/util/utilmod.c:800,1
    - Dst: nssutil_Delete
      Src: /src/nss/lib/util/utilmod.c:803,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/utilmod.c:804,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/utilmod.c:806,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/utilmod.c:807,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 90
    argCount: 5
    argNames:
    - appName
    - filename
    - dbname
    - args
    - rw
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 670
    functionDepth: 5
    functionLinenumber: 670
    functionLinenumberEnd: 809
    functionName: nssutil_DeleteSecmodDBEntry
    functionSourceFile: /src/nss/lib/util/utilmod.c
    functionUses: 0
    functionsReached:
    - NSSUTIL_ArgGetParamValue
    - fclose
    - lfopen
    - PORT_Strncasecmp
    - fputs
    - PORT_Strncmp
    - PORT_Free
    - fgets
    - os_fopen
    - nssutil_Rename
    - os_stat
    - PORT_Strlen
    - PORT_SetError
    - nssutil_Delete
    - fwrite
    - nssutil_DupCat
    - PORT_Strdup
    - strlen
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus nssutil_DeleteSecmodDBEntry(const char *appName,\n                            const
      char *filename,\n                            const char *dbname,\n                            const
      char *args,\n                            PRBool rw)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/utilmod.c:826,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/utilmod.c:832,1
    - Dst: nssutil_DeleteSecmodDBEntry
      Src: /src/nss/lib/util/utilmod.c:837,1
    - Dst: os_stat
      Src: /src/nss/lib/util/utilmod.c:840,1
    - Dst: lfopen
      Src: /src/nss/lib/util/utilmod.c:846,1
    - Dst: NSSUTIL_ArgStrip
      Src: /src/nss/lib/util/utilmod.c:850,1
    - Dst: PORT_Strchr
      Src: /src/nss/lib/util/utilmod.c:853,1
    - Dst: PORT_Strncmp
      Src: /src/nss/lib/util/utilmod.c:856,1
    - Dst: nssutil_DupCat
      Src: /src/nss/lib/util/utilmod.c:860,1
    - Dst: nssutil_DupnCat
      Src: /src/nss/lib/util/utilmod.c:863,1
    - Dst: NSSUTIL_ArgFetchValue
      Src: /src/nss/lib/util/utilmod.c:867,1
    - Dst: nssutil_DupCat
      Src: /src/nss/lib/util/utilmod.c:869,1
    - Dst: NSSUTIL_ArgStrip
      Src: /src/nss/lib/util/utilmod.c:869,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/utilmod.c:870,1
    - Dst: nssutil_DupnCat
      Src: /src/nss/lib/util/utilmod.c:875,1
    - Dst: NSSUTIL_ArgStrip
      Src: /src/nss/lib/util/utilmod.c:877,1
    - Dst: fprintf
      Src: /src/nss/lib/util/utilmod.c:881,1
    - Dst: fwrite
      Src: /src/nss/lib/util/utilmod.c:883,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/util/utilmod.c:883,1
    - Dst: fprintf
      Src: /src/nss/lib/util/utilmod.c:884,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/utilmod.c:885,1
    - Dst: fclose
      Src: /src/nss/lib/util/utilmod.c:888,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/utilmod.c:892,1
    - Dst: fclose
      Src: /src/nss/lib/util/utilmod.c:893,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 62
    argCount: 5
    argNames:
    - appName
    - filename
    - dbname
    - module
    - rw
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 814
    functionDepth: 6
    functionLinenumber: 814
    functionLinenumberEnd: 895
    functionName: nssutil_AddSecmodDBEntry
    functionSourceFile: /src/nss/lib/util/utilmod.c
    functionUses: 1
    functionsReached:
    - PORT_Strchr
    - fclose
    - lfopen
    - fwrite
    - PORT_Strncmp
    - NSSUTIL_ArgStrip
    - PORT_Free
    - os_stat
    - NSSUTIL_ArgFetchValue
    - nssutil_DeleteSecmodDBEntry
    - PORT_SetError
    - fprintf
    - PORT_Strlen
    - nssutil_DupnCat
    - nssutil_DupCat
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus nssutil_AddSecmodDBEntry(const char *appName,\n                         const
      char *filename, const char *dbname,\n                         const char *module,
      PRBool rw)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: _NSSUTIL_GetSecmodName
      Src: /src/nss/lib/util/utilmod.c:908,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/utilmod.c:913,1
    - Dst: nssutil_ReadSecmodDB
      Src: /src/nss/lib/util/utilmod.c:920,1
    - Dst: nssutil_AddSecmodDBEntry
      Src: /src/nss/lib/util/utilmod.c:924,1
    - Dst: nssutil_DeleteSecmodDBEntry
      Src: /src/nss/lib/util/utilmod.c:930,1
    - Dst: nssutil_ReleaseSecmodDBData
      Src: /src/nss/lib/util/utilmod.c:936,1
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/util/utilmod.c:944,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/utilmod.c:946,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/utilmod.c:948,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 950
      start: 897
    functionDepth: 7
    functionLinenumber: 897
    functionLinenumberEnd: 950
    functionName: NSSUTIL_DoModuleDBFunction
    functionSourceFile: /src/nss/lib/util/utilmod.c
    functionUses: 0
    functionsReached:
    - nssutil_AddSecmodDBEntry
    - nssutil_ReleaseSecmodDBData
    - nssutil_ReadSecmodDB
    - PORT_Free
    - nssutil_DeleteSecmodDBEntry
    - PORT_SetError
    - PR_smprintf_free
    - _NSSUTIL_GetSecmodName
    linkageType: ''
    returnType: char
    signature: 'char **

      NSSUTIL_DoModuleDBFunction(unsigned long function, char *parameters, void *args)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - poolp
    - ','
    - oldptr
    - ','
    - type
    - ','
    - oldnum
    - ','
    - newnum
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: PORT_ArenaGrowArray
    functionSourceFile: /src/nss/lib/util/pkcs11uri.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PORT_ArenaGrowArray(poolp, oldptr, type, oldnum, newnum)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - oldptr
    - ','
    - type
    - ','
    - newnum
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: PORT_ReallocArray
    functionSourceFile: /src/nss/lib/util/pkcs11uri.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PORT_ReallocArray(oldptr, type, newnum)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaGrow
      Src: /src/nss/lib/util/pkcs11uri.c:104,1
    - Dst: PORT_Realloc
      Src: /src/nss/lib/util/pkcs11uri.c:107,1
    - Dst: memcpy
      Src: /src/nss/lib/util/pkcs11uri.c:113,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - buffer
    - data
    - size
    argTypes:
    - PK11URIBuffer*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 117
    functionName: pk11uri_AppendBuffer
    functionSourceFile: /src/nss/lib/util/pkcs11uri.c
    functionUses: 0
    functionsReached:
    - memcpy
    - PORT_Realloc
    - PORT_ArenaGrow
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus pk11uri_AppendBuffer(PK11URIBuffer *buffer, const unsigned
      char *data,\n                     size_t size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/util/pkcs11uri.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buffer
    - arena
    argTypes:
    - PK11URIBuffer*
    - PLArenaPool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 124
    functionName: pk11uri_InitBuffer
    functionSourceFile: /src/nss/lib/util/pkcs11uri.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void pk11uri_InitBuffer(PK11URIBuffer *buffer, PLArenaPool *arena)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Free
      Src: /src/nss/lib/util/pkcs11uri.c:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - PK11URIBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 132
    functionName: pk11uri_DestroyBuffer
    functionSourceFile: /src/nss/lib/util/pkcs11uri.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    linkageType: ''
    returnType: void
    signature: void pk11uri_DestroyBuffer(PK11URIBuffer *buffer)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pk11uri_InitBuffer
      Src: /src/nss/lib/util/pkcs11uri.c:145,1
    - Dst: strchr
      Src: /src/nss/lib/util/pkcs11uri.c:148,1
    - Dst: PR_snprintf
      Src: /src/nss/lib/util/pkcs11uri.c:149,1
    - Dst: pk11uri_AppendBuffer
      Src: /src/nss/lib/util/pkcs11uri.c:152,1
    - Dst: pk11uri_AppendBuffer
      Src: /src/nss/lib/util/pkcs11uri.c:157,1
    - Dst: pk11uri_AppendBuffer
      Src: /src/nss/lib/util/pkcs11uri.c:164,1
    - Dst: pk11uri_DestroyBuffer
      Src: /src/nss/lib/util/pkcs11uri.c:174,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 4
    argNames:
    - arena
    - value
    - length
    - available
    argTypes:
    - PLArenaPool*
    - unsigned char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 177
    functionName: pk11uri_Escape
    functionSourceFile: /src/nss/lib/util/pkcs11uri.c
    functionUses: 0
    functionsReached:
    - PR_snprintf
    - pk11uri_AppendBuffer
    - strchr
    - pk11uri_InitBuffer
    - pk11uri_DestroyBuffer
    linkageType: ''
    returnType: char
    signature: "char *\npk11uri_Escape(PLArenaPool *arena, const unsigned char *value,
      size_t length,\n               const char *available)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pk11uri_InitBuffer
      Src: /src/nss/lib/util/pkcs11uri.c:188,1
    - Dst: pk11uri_AppendBuffer
      Src: /src/nss/lib/util/pkcs11uri.c:216,1
    - Dst: pk11uri_AppendBuffer
      Src: /src/nss/lib/util/pkcs11uri.c:223,1
    - Dst: pk11uri_DestroyBuffer
      Src: /src/nss/lib/util/pkcs11uri.c:232,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 3
    argNames:
    - arena
    - value
    - length
    argTypes:
    - PLArenaPool*
    - char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 235
    functionName: pk11uri_Unescape
    functionSourceFile: /src/nss/lib/util/pkcs11uri.c
    functionUses: 0
    functionsReached:
    - pk11uri_DestroyBuffer
    - pk11uri_AppendBuffer
    - pk11uri_InitBuffer
    linkageType: ''
    returnType: unsigned char
    signature: 'unsigned char *

      pk11uri_Unescape(PLArenaPool *arena, const char *value, size_t *length)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nss/lib/util/pkcs11uri.c:249,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/util/pkcs11uri.c:253,1
    - Dst: strcmp
      Src: /src/nss/lib/util/pkcs11uri.c:256,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/util/pkcs11uri.c:260,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 4
    argNames:
    - a
    - b
    - attr_names
    - num_attr_names
    argTypes:
    - char*
    - char*
    - char**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 263
    functionName: pk11uri_CompareByPosition
    functionSourceFile: /src/nss/lib/util/pkcs11uri.c
    functionUses: 0
    functionsReached:
    - strcmp
    - PR_ASSERT
    linkageType: ''
    returnType: int
    signature: "int pk11uri_CompareByPosition(const char *a, const char *b,\n                          const
      char **attr_names, size_t num_attr_names)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pk11uri_CompareByPosition
      Src: /src/nss/lib/util/pkcs11uri.c:270,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/util/pkcs11uri.c:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 267
    functionDepth: 2
    functionLinenumber: 267
    functionLinenumberEnd: 271
    functionName: pk11uri_ComparePathAttributeName
    functionSourceFile: /src/nss/lib/util/pkcs11uri.c
    functionUses: 0
    functionsReached:
    - PR_ARRAY_SIZE
    - pk11uri_CompareByPosition
    linkageType: ''
    returnType: int
    signature: int pk11uri_ComparePathAttributeName(const char *a, const char *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pk11uri_CompareByPosition
      Src: /src/nss/lib/util/pkcs11uri.c:276,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/util/pkcs11uri.c:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 273
    functionDepth: 2
    functionLinenumber: 273
    functionLinenumberEnd: 277
    functionName: pk11uri_CompareQueryAttributeName
    functionSourceFile: /src/nss/lib/util/pkcs11uri.c
    functionUses: 0
    functionsReached:
    - PR_ARRAY_SIZE
    - pk11uri_CompareByPosition
    linkageType: ''
    returnType: int
    signature: int pk11uri_CompareQueryAttributeName(const char *a, const char *b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaGrowArray
      Src: /src/nss/lib/util/pkcs11uri.c:288,1
    - Dst: PORT_ReallocArray
      Src: /src/nss/lib/util/pkcs11uri.c:293,1
    - Dst: strcmp
      Src: /src/nss/lib/util/pkcs11uri.c:302,1
    - Dst: compare_name
      Src: /src/nss/lib/util/pkcs11uri.c:305,1
    - Dst: memmove
      Src: /src/nss/lib/util/pkcs11uri.c:306,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 6
    argNames:
    - attrs
    - name
    - value
    - size
    - compare_name
    - allow_duplicate
    argTypes:
    - PK11URIAttributeList*
    - char*
    - unsigned char*
    - size_t
    - PK11URIAttributeCompareNameFunc
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 320
    functionName: pk11uri_InsertToAttributeList
    functionSourceFile: /src/nss/lib/util/pkcs11uri.c
    functionUses: 0
    functionsReached:
    - strcmp
    - PORT_ArenaGrowArray
    - compare_name
    - memmove
    - PORT_ReallocArray
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus pk11uri_InsertToAttributeList(PK11URIAttributeList *attrs,\n
      \                             char *name, unsigned char *value, size_t size,\n
      \                             PK11URIAttributeCompareNameFunc compare_name,\n
      \                             PRBool allow_duplicate)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaNewArray
      Src: /src/nss/lib/util/pkcs11uri.c:334,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/util/pkcs11uri.c:336,1
    - Dst: memcpy
      Src: /src/nss/lib/util/pkcs11uri.c:341,1
    - Dst: pk11uri_Unescape
      Src: /src/nss/lib/util/pkcs11uri.c:344,1
    - Dst: pk11uri_InsertToAttributeList
      Src: /src/nss/lib/util/pkcs11uri.c:349,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/pkcs11uri.c:359,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/pkcs11uri.c:360,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 7
    argNames:
    - attrs
    - name
    - name_size
    - value
    - value_size
    - compare_name
    - allow_duplicate
    argTypes:
    - PK11URIAttributeList*
    - char*
    - size_t
    - char*
    - size_t
    - PK11URIAttributeCompareNameFunc
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 322
    functionDepth: 3
    functionLinenumber: 322
    functionLinenumberEnd: 364
    functionName: pk11uri_InsertToAttributeListEscaped
    functionSourceFile: /src/nss/lib/util/pkcs11uri.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - memcpy
    - pk11uri_Unescape
    - PORT_Free
    - pk11uri_InsertToAttributeList
    - PORT_ArenaNewArray
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus pk11uri_InsertToAttributeListEscaped(PK11URIAttributeList
      *attrs,\n                                     const char *name, size_t name_size,\n
      \                                    const char *value, size_t value_size,\n
      \                                    PK11URIAttributeCompareNameFunc compare_name,\n
      \                                    PRBool allow_duplicate)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/util/pkcs11uri.c:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - attrs
    - arena
    argTypes:
    - PK11URIAttributeList*
    - PLArenaPool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 371
    functionName: pk11uri_InitAttributeList
    functionSourceFile: /src/nss/lib/util/pkcs11uri.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void pk11uri_InitAttributeList(PK11URIAttributeList *attrs, PLArenaPool
      *arena)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Free
      Src: /src/nss/lib/util/pkcs11uri.c:380,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/pkcs11uri.c:381,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/pkcs11uri.c:383,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - attrs
    argTypes:
    - PK11URIAttributeList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 385
    functionName: pk11uri_DestroyAttributeList
    functionSourceFile: /src/nss/lib/util/pkcs11uri.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    linkageType: ''
    returnType: void
    signature: void pk11uri_DestroyAttributeList(PK11URIAttributeList *attrs)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pk11uri_AppendBuffer
      Src: /src/nss/lib/util/pkcs11uri.c:403,1
    - Dst: pk11uri_AppendBuffer
      Src: /src/nss/lib/util/pkcs11uri.c:409,1
    - Dst: strlen
      Src: /src/nss/lib/util/pkcs11uri.c:410,1
    - Dst: pk11uri_AppendBuffer
      Src: /src/nss/lib/util/pkcs11uri.c:416,1
    - Dst: pk11uri_Escape
      Src: /src/nss/lib/util/pkcs11uri.c:421,1
    - Dst: pk11uri_AppendBuffer
      Src: /src/nss/lib/util/pkcs11uri.c:426,1
    - Dst: strlen
      Src: /src/nss/lib/util/pkcs11uri.c:427,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/pkcs11uri.c:429,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 4
    argNames:
    - buffer
    - attrs
    - separator
    - unescaped
    argTypes:
    - PK11URIBuffer*
    - PK11URIAttributeList*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 387
    functionDepth: 3
    functionLinenumber: 387
    functionLinenumberEnd: 437
    functionName: pk11uri_AppendAttributeListToBuffer
    functionSourceFile: /src/nss/lib/util/pkcs11uri.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - pk11uri_Escape
    - pk11uri_AppendBuffer
    - strlen
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus pk11uri_AppendAttributeListToBuffer(PK11URIBuffer *buffer,\n
      \                                   PK11URIAttributeList *attrs,\n                                    int
      separator,\n                                    const char *unescaped)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/util/pkcs11uri.c:446,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/util/pkcs11uri.c:451,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/util/pkcs11uri.c:453,1
    - Dst: pk11uri_InitAttributeList
      Src: /src/nss/lib/util/pkcs11uri.c:458,1
    - Dst: pk11uri_InitAttributeList
      Src: /src/nss/lib/util/pkcs11uri.c:459,1
    - Dst: pk11uri_InitAttributeList
      Src: /src/nss/lib/util/pkcs11uri.c:460,1
    - Dst: pk11uri_InitAttributeList
      Src: /src/nss/lib/util/pkcs11uri.c:461,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 464
    functionName: pk11uri_AllocURI
    functionSourceFile: /src/nss/lib/util/pkcs11uri.c
    functionUses: 0
    functionsReached:
    - PORT_FreeArena
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - pk11uri_InitAttributeList
    linkageType: ''
    returnType: PK11URI
    signature: 'PK11URI *

      pk11uri_AllocURI(void)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/nss/lib/util/pkcs11uri.c:494,1
    - Dst: PORT_ArenaStrdup
      Src: /src/nss/lib/util/pkcs11uri.c:499,1
    - Dst: PORT_ArenaStrdup
      Src: /src/nss/lib/util/pkcs11uri.c:504,1
    - Dst: strcmp
      Src: /src/nss/lib/util/pkcs11uri.c:510,1
    - Dst: pk11uri_InsertToAttributeList
      Src: /src/nss/lib/util/pkcs11uri.c:516,1
    - Dst: strlen
      Src: /src/nss/lib/util/pkcs11uri.c:519,1
    - Dst: pk11uri_InsertToAttributeList
      Src: /src/nss/lib/util/pkcs11uri.c:527,1
    - Dst: strlen
      Src: /src/nss/lib/util/pkcs11uri.c:530,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 9
    argNames:
    - dest_attrs
    - dest_vattrs
    - attrs
    - num_attrs
    - attr_names
    - num_attr_names
    - compare_name
    - allow_duplicate
    - vendor_allow_duplicate
    argTypes:
    - PK11URIAttributeList*
    - PK11URIAttributeList*
    - PK11URIAttribute*
    - size_t
    - char**
    - size_t
    - PK11URIAttributeCompareNameFunc
    - PRBool
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 466
    functionDepth: 2
    functionLinenumber: 466
    functionLinenumberEnd: 540
    functionName: pk11uri_InsertAttributes
    functionSourceFile: /src/nss/lib/util/pkcs11uri.c
    functionUses: 0
    functionsReached:
    - strcmp
    - strchr
    - PORT_ArenaStrdup
    - pk11uri_InsertToAttributeList
    - strlen
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus pk11uri_InsertAttributes(PK11URIAttributeList *dest_attrs,\n
      \                        PK11URIAttributeList *dest_vattrs,\n                         const
      PK11URIAttribute *attrs,\n                         size_t num_attrs,\n                         const
      char **attr_names,\n                         size_t num_attr_names,\n                         PK11URIAttributeCompareNameFunc
      compare_name,\n                         PRBool allow_duplicate,\n                         PRBool
      vendor_allow_duplicate)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pk11uri_AllocURI
      Src: /src/nss/lib/util/pkcs11uri.c:551,1
    - Dst: pk11uri_InsertAttributes
      Src: /src/nss/lib/util/pkcs11uri.c:553,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/util/pkcs11uri.c:555,1
    - Dst: pk11uri_InsertAttributes
      Src: /src/nss/lib/util/pkcs11uri.c:562,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/util/pkcs11uri.c:564,1
    - Dst: PK11URI_DestroyURI
      Src: /src/nss/lib/util/pkcs11uri.c:574,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - pattrs
    - num_pattrs
    - qattrs
    - num_qattrs
    argTypes:
    - PK11URIAttribute*
    - size_t
    - PK11URIAttribute*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 542
    functionDepth: 3
    functionLinenumber: 542
    functionLinenumberEnd: 577
    functionName: PK11URI_CreateURI
    functionSourceFile: /src/nss/lib/util/pkcs11uri.c
    functionUses: 2
    functionsReached:
    - pk11uri_InsertAttributes
    - PK11URI_DestroyURI
    - PR_ARRAY_SIZE
    - pk11uri_AllocURI
    linkageType: ''
    returnType: PK11URI
    signature: "PK11URI *\nPK11URI_CreateURI(const PK11URIAttribute *pattrs,\n                  size_t
      num_pattrs,\n                  const PK11URIAttribute *qattrs,\n                  size_t
      num_qattrs)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/nss/lib/util/pkcs11uri.c:599,1
    - Dst: strchr
      Src: /src/nss/lib/util/pkcs11uri.c:603,1
    - Dst: strchr
      Src: /src/nss/lib/util/pkcs11uri.c:619,1
    - Dst: strchr
      Src: /src/nss/lib/util/pkcs11uri.c:622,1
    - Dst: strchr
      Src: /src/nss/lib/util/pkcs11uri.c:627,1
    - Dst: strchr
      Src: /src/nss/lib/util/pkcs11uri.c:629,1
    - Dst: strlen
      Src: /src/nss/lib/util/pkcs11uri.c:642,1
    - Dst: memcmp
      Src: /src/nss/lib/util/pkcs11uri.c:643,1
    - Dst: pk11uri_InsertToAttributeListEscaped
      Src: /src/nss/lib/util/pkcs11uri.c:649,1
    - Dst: pk11uri_InsertToAttributeListEscaped
      Src: /src/nss/lib/util/pkcs11uri.c:659,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 57
    argCount: 11
    argNames:
    - string
    - stop_chars
    - separator
    - accept_chars
    - attr_names
    - num_attr_names
    - attrs
    - vattrs
    - compare_name
    - allow_duplicate
    - vendor_allow_duplicate
    argTypes:
    - char**
    - char*
    - int
    - char*
    - char**
    - size_t
    - PK11URIAttributeList*
    - PK11URIAttributeList*
    - PK11URIAttributeCompareNameFunc
    - PRBool
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 580
    functionDepth: 4
    functionLinenumber: 580
    functionLinenumberEnd: 676
    functionName: pk11uri_ParseAttributes
    functionSourceFile: /src/nss/lib/util/pkcs11uri.c
    functionUses: 0
    functionsReached:
    - pk11uri_InsertToAttributeListEscaped
    - memcmp
    - strchr
    - strlen
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus pk11uri_ParseAttributes(const char **string,\n                        const
      char *stop_chars,\n                        int separator,\n                        const
      char *accept_chars,\n                        const char **attr_names, size_t
      num_attr_names,\n                        PK11URIAttributeList *attrs,\n                        PK11URIAttributeList
      *vattrs,\n                        PK11URIAttributeCompareNameFunc compare_name,\n
      \                       PRBool allow_duplicate,\n                        PRBool
      vendor_allow_duplicate)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strncasecmp
      Src: /src/nss/lib/util/pkcs11uri.c:685,1
    - Dst: pk11uri_AllocURI
      Src: /src/nss/lib/util/pkcs11uri.c:690,1
    - Dst: pk11uri_ParseAttributes
      Src: /src/nss/lib/util/pkcs11uri.c:696,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/util/pkcs11uri.c:697,1
    - Dst: pk11uri_ParseAttributes
      Src: /src/nss/lib/util/pkcs11uri.c:708,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/util/pkcs11uri.c:709,1
    - Dst: PK11URI_DestroyURI
      Src: /src/nss/lib/util/pkcs11uri.c:721,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 678
    functionDepth: 5
    functionLinenumber: 678
    functionLinenumberEnd: 724
    functionName: PK11URI_ParseURI
    functionSourceFile: /src/nss/lib/util/pkcs11uri.c
    functionUses: 2
    functionsReached:
    - PK11URI_DestroyURI
    - PORT_Strncasecmp
    - PR_ARRAY_SIZE
    - pk11uri_ParseAttributes
    - pk11uri_AllocURI
    linkageType: ''
    returnType: PK11URI
    signature: 'PK11URI *

      PK11URI_ParseURI(const char *string)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: pk11uri_InitBuffer
      Src: /src/nss/lib/util/pkcs11uri.c:734,1
    - Dst: pk11uri_AppendBuffer
      Src: /src/nss/lib/util/pkcs11uri.c:736,1
    - Dst: pk11uri_AppendAttributeListToBuffer
      Src: /src/nss/lib/util/pkcs11uri.c:740,1
    - Dst: pk11uri_AppendBuffer
      Src: /src/nss/lib/util/pkcs11uri.c:746,1
    - Dst: pk11uri_AppendAttributeListToBuffer
      Src: /src/nss/lib/util/pkcs11uri.c:752,1
    - Dst: pk11uri_AppendBuffer
      Src: /src/nss/lib/util/pkcs11uri.c:759,1
    - Dst: pk11uri_AppendAttributeListToBuffer
      Src: /src/nss/lib/util/pkcs11uri.c:765,1
    - Dst: pk11uri_AppendBuffer
      Src: /src/nss/lib/util/pkcs11uri.c:771,1
    - Dst: pk11uri_AppendAttributeListToBuffer
      Src: /src/nss/lib/util/pkcs11uri.c:777,1
    - Dst: pk11uri_AppendBuffer
      Src: /src/nss/lib/util/pkcs11uri.c:783,1
    - Dst: pk11uri_DestroyBuffer
      Src: /src/nss/lib/util/pkcs11uri.c:792,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 58
    argCount: 2
    argNames:
    - arena
    - uri
    argTypes:
    - PLArenaPool*
    - PK11URI*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 727
    functionDepth: 4
    functionLinenumber: 727
    functionLinenumberEnd: 795
    functionName: PK11URI_FormatURI
    functionSourceFile: /src/nss/lib/util/pkcs11uri.c
    functionUses: 2
    functionsReached:
    - pk11uri_DestroyBuffer
    - pk11uri_AppendBuffer
    - pk11uri_InitBuffer
    - pk11uri_AppendAttributeListToBuffer
    linkageType: ''
    returnType: char
    signature: 'char *

      PK11URI_FormatURI(PLArenaPool *arena, PK11URI *uri)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pk11uri_DestroyAttributeList
      Src: /src/nss/lib/util/pkcs11uri.c:801,1
    - Dst: pk11uri_DestroyAttributeList
      Src: /src/nss/lib/util/pkcs11uri.c:802,1
    - Dst: pk11uri_DestroyAttributeList
      Src: /src/nss/lib/util/pkcs11uri.c:803,1
    - Dst: pk11uri_DestroyAttributeList
      Src: /src/nss/lib/util/pkcs11uri.c:804,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/util/pkcs11uri.c:805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - uri
    argTypes:
    - PK11URI*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 798
    functionDepth: 1
    functionLinenumber: 798
    functionLinenumberEnd: 806
    functionName: PK11URI_DestroyURI
    functionSourceFile: /src/nss/lib/util/pkcs11uri.c
    functionUses: 8
    functionsReached:
    - PORT_FreeArena
    - pk11uri_DestroyAttributeList
    linkageType: ''
    returnType: void
    signature: void PK11URI_DestroyURI(PK11URI *uri)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nss/lib/util/pkcs11uri.c:817,1
    - Dst: strcmp
      Src: /src/nss/lib/util/pkcs11uri.c:823,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - attrs
    - vattrs
    - name
    argTypes:
    - PK11URIAttributeList*
    - PK11URIAttributeList*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 809
    functionDepth: 0
    functionLinenumber: 809
    functionLinenumberEnd: 829
    functionName: pk11uri_GetAttribute
    functionSourceFile: /src/nss/lib/util/pkcs11uri.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: SECItem
    signature: "SECItem *\npk11uri_GetAttribute(PK11URIAttributeList *attrs,\n                     PK11URIAttributeList
      *vattrs,\n                     const char *name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pk11uri_GetAttribute
      Src: /src/nss/lib/util/pkcs11uri.c:834,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - uri
    - name
    argTypes:
    - PK11URI*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 831
    functionDepth: 1
    functionLinenumber: 831
    functionLinenumberEnd: 835
    functionName: PK11URI_GetPathAttributeItem
    functionSourceFile: /src/nss/lib/util/pkcs11uri.c
    functionUses: 2
    functionsReached:
    - pk11uri_GetAttribute
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      PK11URI_GetPathAttributeItem(PK11URI *uri, const char *name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11URI_GetPathAttributeItem
      Src: /src/nss/lib/util/pkcs11uri.c:842,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - uri
    - name
    argTypes:
    - PK11URI*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 837
    functionDepth: 2
    functionLinenumber: 837
    functionLinenumberEnd: 848
    functionName: PK11URI_GetPathAttribute
    functionSourceFile: /src/nss/lib/util/pkcs11uri.c
    functionUses: 3
    functionsReached:
    - PK11URI_GetPathAttributeItem
    linkageType: ''
    returnType: char
    signature: 'char *

      PK11URI_GetPathAttribute(PK11URI *uri, const char *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pk11uri_GetAttribute
      Src: /src/nss/lib/util/pkcs11uri.c:853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - uri
    - name
    argTypes:
    - PK11URI*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 850
    functionDepth: 1
    functionLinenumber: 850
    functionLinenumberEnd: 854
    functionName: PK11URI_GetQueryAttributeItem
    functionSourceFile: /src/nss/lib/util/pkcs11uri.c
    functionUses: 0
    functionsReached:
    - pk11uri_GetAttribute
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      PK11URI_GetQueryAttributeItem(PK11URI *uri, const char *name)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11URI_GetQueryAttributeItem
      Src: /src/nss/lib/util/pkcs11uri.c:861,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - uri
    - name
    argTypes:
    - PK11URI*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 856
    functionDepth: 2
    functionLinenumber: 856
    functionLinenumberEnd: 867
    functionName: PK11URI_GetQueryAttribute
    functionSourceFile: /src/nss/lib/util/pkcs11uri.c
    functionUses: 0
    functionsReached:
    - PK11URI_GetQueryAttributeItem
    linkageType: ''
    returnType: char
    signature: 'char *

      PK11URI_GetQueryAttribute(PK11URI *uri, const char *name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/util/secdig.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - poolp
    - dest
    - diginfo
    argTypes:
    - PLArenaPool*
    - SECItem*
    - SGNDigestInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 31
    functionName: SGN_EncodeDigestInfo
    functionSourceFile: /src/nss/lib/util/secdig.c
    functionUses: 0
    functionsReached:
    - SEC_ASN1EncodeItem
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      SGN_EncodeDigestInfo(PLArenaPool *poolp, SECItem *dest, SGNDigestInfo *diginfo)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: HASH_GetHashTypeByOidTag
      Src: /src/nss/lib/util/secdig.c:44,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/util/secdig.c:47,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/util/secdig.c:52,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/util/secdig.c:54,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/util/secdig.c:66,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/lib/util/secdig.c:71,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/util/secdig.c:74,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/util/secdig.c:80,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/util/secdig.c:86,1
    - Dst: SGN_DestroyDigestInfo
      Src: /src/nss/lib/util/secdig.c:90,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 3
    argNames:
    - algorithm
    - sig
    - len
    argTypes:
    - SECOidTag
    - unsigned char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 92
    functionName: SGN_CreateDigestInfo
    functionSourceFile: /src/nss/lib/util/secdig.c
    functionUses: 4
    functionsReached:
    - SEC_ASN1EncodeItem
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - HASH_GetHashTypeByOidTag
    - PORT_FreeArena
    - PORT_ArenaAlloc
    - PORT_Memcpy
    - SGN_DestroyDigestInfo
    - SECOID_SetAlgorithmID
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SGNDigestInfo
    signature: "SGNDigestInfo *\nSGN_CreateDigestInfo(SECOidTag algorithm, const unsigned
      char *sig,\n                     unsigned len)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/util/secdig.c:102,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/util/secdig.c:106,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/util/secdig.c:108,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/util/secdig.c:112,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/util/secdig.c:115,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/util/secdig.c:119,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - didata
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 124
    functionName: SGN_DecodeDigestInfo
    functionSourceFile: /src/nss/lib/util/secdig.c
    functionUses: 1
    functionsReached:
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - PORT_FreeArena
    - SECITEM_CopyItem
    - SEC_QuickDERDecodeItem
    linkageType: ''
    returnType: SGNDigestInfo
    signature: 'SGNDigestInfo *

      SGN_DecodeDigestInfo(SECItem *didata)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/util/secdig.c:130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - di
    argTypes:
    - SGNDigestInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 134
    functionName: SGN_DestroyDigestInfo
    functionSourceFile: /src/nss/lib/util/secdig.c
    functionUses: 10
    functionsReached:
    - PORT_FreeArena
    linkageType: ''
    returnType: void
    signature: void SGN_DestroyDigestInfo(SGNDigestInfo *di)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/util/secdig.c:145,1
    - Dst: SECOID_CopyAlgorithmID
      Src: /src/nss/lib/util/secdig.c:147,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/util/secdig.c:150,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/util/secdig.c:153,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/util/secdig.c:155,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - poolp
    - a
    - b
    argTypes:
    - PLArenaPool*
    - SGNDigestInfo*
    - SGNDigestInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 159
    functionName: SGN_CopyDigestInfo
    functionSourceFile: /src/nss/lib/util/secdig.c
    functionUses: 4
    functionsReached:
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - SECITEM_CopyItem
    - SECOID_CopyAlgorithmID
    - PORT_ArenaUnmark
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SGN_CopyDigestInfo(PLArenaPool *poolp, SGNDigestInfo *a,
      SGNDigestInfo *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_CompareAlgorithmID
      Src: /src/nss/lib/util/secdig.c:167,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/util/secdig.c:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - SGNDigestInfo*
    - SGNDigestInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 174
    functionName: SGN_CompareDigestInfo
    functionSourceFile: /src/nss/lib/util/secdig.c
    functionUses: 2
    functionsReached:
    - SECOID_CompareAlgorithmID
    - SECITEM_CompareItem
    linkageType: ''
    returnType: SECComparison
    signature: SECComparison SGN_CompareDigestInfo(SGNDigestInfo *a, SGNDigestInfo
      *b)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/utf8.c:87,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 3
    argNames:
    - index
    - inBuf
    - inBufLen
    argTypes:
    - unsigned int*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 122
    functionName: sec_port_read_utf8
    functionSourceFile: /src/nss/lib/util/utf8.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: PRUint32
    signature: PRUint32 sec_port_read_utf8(unsigned int *index, unsigned char *inBuf,
      unsigned int inBufLen)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/utf8.c:133,1
    - Dst: sec_port_read_utf8
      Src: /src/nss/lib/util/utf8.c:161,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/utf8.c:178,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 81
    argCount: 6
    argNames:
    - toUnicode
    - inBuf
    - inBufLen
    - outBuf
    - maxOutBufLen
    - outBufLen
    argTypes:
    - PRBool
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 250
    functionName: sec_port_ucs4_utf8_conversion_function
    functionSourceFile: /src/nss/lib/util/utf8.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - sec_port_read_utf8
    linkageType: ''
    returnType: PRBool
    signature: "PRBool sec_port_ucs4_utf8_conversion_function(\n    PRBool toUnicode,\n
      \   unsigned char *inBuf,\n    unsigned int inBufLen,\n    unsigned char *outBuf,\n
      \   unsigned int maxOutBufLen,\n    unsigned int *outBufLen)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/utf8.c:261,1
    - Dst: sec_port_read_utf8
      Src: /src/nss/lib/util/utf8.c:291,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/utf8.c:314,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/utf8.c:365,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 105
    argCount: 6
    argNames:
    - toUnicode
    - inBuf
    - inBufLen
    - outBuf
    - maxOutBufLen
    - outBufLen
    argTypes:
    - PRBool
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 397
    functionName: sec_port_ucs2_utf8_conversion_function
    functionSourceFile: /src/nss/lib/util/utf8.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - sec_port_read_utf8
    linkageType: ''
    returnType: PRBool
    signature: "PRBool sec_port_ucs2_utf8_conversion_function(\n    PRBool toUnicode,\n
      \   unsigned char *inBuf,\n    unsigned int inBufLen,\n    unsigned char *outBuf,\n
      \   unsigned int maxOutBufLen,\n    unsigned int *outBufLen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/utf8.c:409,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 5
    argNames:
    - inBuf
    - inBufLen
    - outBuf
    - maxOutBufLen
    - outBufLen
    argTypes:
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 445
    functionName: sec_port_iso88591_utf8_conversion_function
    functionSourceFile: /src/nss/lib/util/utf8.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: PRBool
    signature: "PRBool sec_port_iso88591_utf8_conversion_function(\n    const unsigned
      char *inBuf,\n    unsigned int inBufLen,\n    unsigned char *outBuf,\n    unsigned
      int maxOutBufLen,\n    unsigned int *outBufLen)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/nss/lib/util/secasn1d.c:161,1
    - Dst: strlen
      Src: /src/nss/lib/util/secasn1d.c:162,1
    - Dst: snprintf
      Src: /src/nss/lib/util/secasn1d.c:165,1
    - Dst: strlen
      Src: /src/nss/lib/util/secasn1d.c:166,1
    - Dst: snprintf
      Src: /src/nss/lib/util/secasn1d.c:170,1
    - Dst: strlen
      Src: /src/nss/lib/util/secasn1d.c:173,1
    - Dst: snprintf
      Src: /src/nss/lib/util/secasn1d.c:174,1
    - Dst: snprintf
      Src: /src/nss/lib/util/secasn1d.c:178,1
    - Dst: strlen
      Src: /src/nss/lib/util/secasn1d.c:180,1
    - Dst: snprintf
      Src: /src/nss/lib/util/secasn1d.c:184,1
    - Dst: strlen
      Src: /src/nss/lib/util/secasn1d.c:185,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 3
    argNames:
    - kind
    - buf
    - space_in_buffer
    argTypes:
    - unsigned long
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 189
    functionName: formatKind
    functionSourceFile: /src/nss/lib/util/secasn1d.c
    functionUses: 0
    functionsReached:
    - snprintf
    - strlen
    linkageType: ''
    returnType: int
    signature: int formatKind(unsigned long kind, char *buf, int space_in_buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 261
    functionName: IS_HIGH_TAG_NUMBER
    functionSourceFile: /src/nss/lib/util/secasn1d.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_HIGH_TAG_NUMBER(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 262
    functionName: LAST_TAG_NUMBER_BYTE
    functionSourceFile: /src/nss/lib/util/secasn1d.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LAST_TAG_NUMBER_BYTE(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 266
    functionName: LENGTH_IS_SHORT_FORM
    functionSourceFile: /src/nss/lib/util/secasn1d.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LENGTH_IS_SHORT_FORM(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 267
    functionName: LONG_FORM_LENGTH
    functionSourceFile: /src/nss/lib/util/secasn1d.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LONG_FORM_LENGTH(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - field
    - ','
    - cnt
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 269
    functionName: HIGH_BITS
    functionSourceFile: /src/nss/lib/util/secasn1d.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HIGH_BITS(field, cnt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/util/secasn1d.c:327,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/util/secasn1d.c:332,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - poolp
    - len
    argTypes:
    - PLArenaPool*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 336
    functionName: sec_asn1d_alloc
    functionSourceFile: /src/nss/lib/util/secasn1d.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_ArenaAlloc
    linkageType: ''
    returnType: void
    signature: 'void *

      sec_asn1d_alloc(PLArenaPool *poolp, unsigned long len)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sec_asn1d_alloc
      Src: /src/nss/lib/util/secasn1d.c:346,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/util/secasn1d.c:348,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - poolp
    - len
    argTypes:
    - PLArenaPool*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 350
    functionName: sec_asn1d_zalloc
    functionSourceFile: /src/nss/lib/util/secasn1d.c
    functionUses: 0
    functionsReached:
    - sec_asn1d_alloc
    - PORT_Memset
    linkageType: ''
    returnType: void
    signature: 'void *

      sec_asn1d_zalloc(PLArenaPool *poolp, unsigned long len)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:361,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:364,1
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/util/secasn1d.c:365,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secasn1d.c:369,1
    - Dst: sec_asn1d_zalloc
      Src: /src/nss/lib/util/secasn1d.c:373,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secasn1d.c:390,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/util/secasn1d.c:403,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 4
    argNames:
    - cx
    - theTemplate
    - dest
    - new_depth
    argTypes:
    - SEC_ASN1DecoderContext*
    - SEC_ASN1Template*
    - void*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 352
    functionDepth: 2
    functionLinenumber: 352
    functionLinenumberEnd: 407
    functionName: sec_asn1d_push_state
    functionSourceFile: /src/nss/lib/util/secasn1d.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - sec_asn1d_zalloc
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - PORT_SetError
    linkageType: ''
    returnType: sec_asn1d_state
    signature: "sec_asn1d_state *\nsec_asn1d_push_state(SEC_ASN1DecoderContext *cx,\n
      \                    const SEC_ASN1Template *theTemplate,\n                     void
      *dest, PRBool new_depth)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - state
    argTypes:
    - sec_asn1d_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 421
    functionName: sec_asn1d_scrub_state
    functionSourceFile: /src/nss/lib/util/secasn1d.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: void
    signature: void sec_asn1d_scrub_state(sec_asn1d_state *state)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - cx
    - dest
    - depth
    argTypes:
    - SEC_ASN1DecoderContext*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 432
    functionName: sec_asn1d_notify_before
    functionSourceFile: /src/nss/lib/util/secasn1d.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sec_asn1d_notify_before(SEC_ASN1DecoderContext *cx, void *dest,
      int depth)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - cx
    - dest
    - depth
    argTypes:
    - SEC_ASN1DecoderContext*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 443
    functionName: sec_asn1d_notify_after
    functionSourceFile: /src/nss/lib/util/secasn1d.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sec_asn1d_notify_after(SEC_ASN1DecoderContext *cx, void *dest,
      int depth)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:466,1
    - Dst: sec_asn1d_notify_after
      Src: /src/nss/lib/util/secasn1d.c:473,1
    - Dst: sec_asn1d_notify_before
      Src: /src/nss/lib/util/secasn1d.c:487,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:489,1
    - Dst: sec_asn1d_scrub_state
      Src: /src/nss/lib/util/secasn1d.c:491,1
    - Dst: sec_asn1d_push_state
      Src: /src/nss/lib/util/secasn1d.c:493,1
    - Dst: sec_asn1d_init_state_based_on_template
      Src: /src/nss/lib/util/secasn1d.c:496,1
    - Dst: sec_asn1d_push_state
      Src: /src/nss/lib/util/secasn1d.c:518,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:537,1
    - Dst: sec_asn1d_scrub_state
      Src: /src/nss/lib/util/secasn1d.c:539,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:563,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:574,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:584,1
    - Dst: SEC_ASN1GetSubtemplate
      Src: /src/nss/lib/util/secasn1d.c:592,1
    - Dst: sec_asn1d_push_state
      Src: /src/nss/lib/util/secasn1d.c:593,1
    - Dst: sec_asn1d_init_state_based_on_template
      Src: /src/nss/lib/util/secasn1d.c:600,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:610,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:637,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:640,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:642,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:643,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:666,1
    - Dst: sec_asn1d_scrub_state
      Src: /src/nss/lib/util/secasn1d.c:694,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 125
    argCount: 1
    argNames:
    - state
    argTypes:
    - sec_asn1d_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 445
    functionDepth: 3
    functionLinenumber: 445
    functionLinenumberEnd: 697
    functionName: sec_asn1d_init_state_based_on_template
    functionSourceFile: /src/nss/lib/util/secasn1d.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - sec_asn1d_init_state_based_on_template
    - sec_asn1d_scrub_state
    - sec_asn1d_push_state
    - SEC_ASN1GetSubtemplate
    - sec_asn1d_notify_after
    - sec_asn1d_notify_before
    linkageType: ''
    returnType: sec_asn1d_state
    signature: 'sec_asn1d_state *

      sec_asn1d_init_state_based_on_template(sec_asn1d_state *state)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sec_asn1d_push_state
      Src: /src/nss/lib/util/secasn1d.c:518,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ' SEC_ASN1_CHOICE'
    argTypes:
    - encode_kind
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 505
    functionDepth: 3
    functionLinenumber: 505
    functionLinenumberEnd: 530
    functionName: "~SEC_ASN1_MAY_STREAM;\n\n    if (encode_kind & SEC_ASN1_CHOICE)"
    functionSourceFile: /src/nss/lib/util/secasn1d.c
    functionUses: 0
    functionsReached:
    - sec_asn1d_push_state
    linkageType: ''
    returnType: void
    signature: "void ~SEC_ASN1_MAY_STREAM;\n\n    if (encode_kind & SEC_ASN1_CHOICE)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - sec_asn1d_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 699
    functionDepth: 0
    functionLinenumber: 699
    functionLinenumberEnd: 718
    functionName: sec_asn1d_get_enclosing_construct
    functionSourceFile: /src/nss/lib/util/secasn1d.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sec_asn1d_state
    signature: 'sec_asn1d_state *

      sec_asn1d_get_enclosing_construct(sec_asn1d_state *state)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sec_asn1d_get_enclosing_construct
      Src: /src/nss/lib/util/secasn1d.c:724,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - state
    argTypes:
    - sec_asn1d_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 720
    functionDepth: 1
    functionLinenumber: 720
    functionLinenumberEnd: 735
    functionName: sec_asn1d_parent_allows_EOC
    functionSourceFile: /src/nss/lib/util/secasn1d.c
    functionUses: 0
    functionsReached:
    - sec_asn1d_get_enclosing_construct
    linkageType: ''
    returnType: PRBool
    signature: PRBool sec_asn1d_parent_allows_EOC(sec_asn1d_state *state)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:744,1
    - Dst: formatKind
      Src: /src/nss/lib/util/secasn1d.c:756,1
    - Dst: printf
      Src: /src/nss/lib/util/secasn1d.c:757,1
    - Dst: IS_HIGH_TAG_NUMBER
      Src: /src/nss/lib/util/secasn1d.c:762,1
    - Dst: sec_asn1d_parent_allows_EOC
      Src: /src/nss/lib/util/secasn1d.c:772,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 3
    argNames:
    - state
    - buf
    - len
    argTypes:
    - sec_asn1d_state*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 737
    functionDepth: 2
    functionLinenumber: 737
    functionLinenumberEnd: 800
    functionName: sec_asn1d_parse_identifier
    functionSourceFile: /src/nss/lib/util/secasn1d.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - formatKind
    - printf
    - sec_asn1d_parent_allows_EOC
    - IS_HIGH_TAG_NUMBER
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long sec_asn1d_parse_identifier(sec_asn1d_state *state,\n
      \                          const char *buf, unsigned long len)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:809,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:810,1
    - Dst: HIGH_BITS
      Src: /src/nss/lib/util/secasn1d.c:820,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secasn1d.c:825,1
    - Dst: LAST_TAG_NUMBER_BYTE
      Src: /src/nss/lib/util/secasn1d.c:836,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - state
    - buf
    - len
    argTypes:
    - sec_asn1d_state*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 802
    functionDepth: 1
    functionLinenumber: 802
    functionLinenumberEnd: 844
    functionName: sec_asn1d_parse_more_identifier
    functionSourceFile: /src/nss/lib/util/secasn1d.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - HIGH_BITS
    - LAST_TAG_NUMBER_BYTE
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long sec_asn1d_parse_more_identifier(sec_asn1d_state *state,\n
      \                               const char *buf, unsigned long len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:851,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secasn1d.c:861,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - state
    argTypes:
    - sec_asn1d_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 846
    functionDepth: 0
    functionLinenumber: 846
    functionLinenumberEnd: 865
    functionName: sec_asn1d_confirm_identifier
    functionSourceFile: /src/nss/lib/util/secasn1d.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    linkageType: ''
    returnType: void
    signature: void sec_asn1d_confirm_identifier(sec_asn1d_state *state)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:873,1
    - Dst: LENGTH_IS_SHORT_FORM
      Src: /src/nss/lib/util/secasn1d.c:887,1
    - Dst: LONG_FORM_LENGTH
      Src: /src/nss/lib/util/secasn1d.c:891,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - state
    - buf
    - len
    argTypes:
    - sec_asn1d_state*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 867
    functionDepth: 1
    functionLinenumber: 867
    functionLinenumberEnd: 911
    functionName: sec_asn1d_parse_length
    functionSourceFile: /src/nss/lib/util/secasn1d.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - LENGTH_IS_SHORT_FORM
    - LONG_FORM_LENGTH
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long sec_asn1d_parse_length(sec_asn1d_state *state,\n                       const
      char *buf, unsigned long len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:919,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:920,1
    - Dst: HIGH_BITS
      Src: /src/nss/lib/util/secasn1d.c:930,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secasn1d.c:935,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - state
    - buf
    - len
    argTypes:
    - sec_asn1d_state*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 913
    functionDepth: 1
    functionLinenumber: 913
    functionLinenumberEnd: 951
    functionName: sec_asn1d_parse_more_length
    functionSourceFile: /src/nss/lib/util/secasn1d.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - HIGH_BITS
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long sec_asn1d_parse_more_length(sec_asn1d_state *state,\n
      \                           const char *buf, unsigned long len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:965,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:966,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secasn1d.c:968,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secasn1d.c:973,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - remaining
    - consumed
    - cx
    argTypes:
    - unsigned long*
    - unsigned long
    - SEC_ASN1DecoderContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 960
    functionDepth: 0
    functionLinenumber: 960
    functionLinenumberEnd: 979
    functionName: sec_asn1d_check_and_subtract_length
    functionSourceFile: /src/nss/lib/util/secasn1d.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    linkageType: ''
    returnType: PRBool
    signature: "PRBool sec_asn1d_check_and_subtract_length(unsigned long *remaining,\n
      \                                   unsigned long consumed,\n                                    SEC_ASN1DecoderContext
      *cx)"
  - BBCount: 68
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/lib/util/secasn1d.c:991,1
    - Dst: sec_asn1d_get_enclosing_construct
      Src: /src/nss/lib/util/secasn1d.c:1023,1
    - Dst: sec_asn1d_get_enclosing_construct
      Src: /src/nss/lib/util/secasn1d.c:1025,1
    - Dst: sec_asn1d_check_and_subtract_length
      Src: /src/nss/lib/util/secasn1d.c:1035,1
    - Dst: sec_asn1d_check_and_subtract_length
      Src: /src/nss/lib/util/secasn1d.c:1039,1
    - Dst: sec_asn1d_check_and_subtract_length
      Src: /src/nss/lib/util/secasn1d.c:1043,1
    - Dst: sec_asn1d_get_enclosing_construct
      Src: /src/nss/lib/util/secasn1d.c:1048,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:1059,1
    - Dst: sec_asn1d_zalloc
      Src: /src/nss/lib/util/secasn1d.c:1064,1
    - Dst: sec_asn1d_push_state
      Src: /src/nss/lib/util/secasn1d.c:1100,1
    - Dst: SEC_ASN1GetSubtemplate
      Src: /src/nss/lib/util/secasn1d.c:1101,1
    - Dst: sec_asn1d_init_state_based_on_template
      Src: /src/nss/lib/util/secasn1d.c:1106,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:1123,1
    - Dst: SEC_ASN1GetSubtemplate
      Src: /src/nss/lib/util/secasn1d.c:1128,1
    - Dst: sec_asn1d_push_state
      Src: /src/nss/lib/util/secasn1d.c:1130,1
    - Dst: sec_asn1d_notify_before
      Src: /src/nss/lib/util/secasn1d.c:1137,1
    - Dst: sec_asn1d_init_state_based_on_template
      Src: /src/nss/lib/util/secasn1d.c:1138,1
    - Dst: sec_asn1d_push_state
      Src: /src/nss/lib/util/secasn1d.c:1156,1
    - Dst: sec_asn1d_notify_before
      Src: /src/nss/lib/util/secasn1d.c:1162,1
    - Dst: sec_asn1d_init_state_based_on_template
      Src: /src/nss/lib/util/secasn1d.c:1163,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:1175,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secasn1d.c:1176,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secasn1d.c:1186,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secasn1d.c:1201,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secasn1d.c:1211,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:1274,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:1289,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secasn1d.c:1291,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:1295,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:1302,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secasn1d.c:1310,1
    - Dst: sec_asn1d_zalloc
      Src: /src/nss/lib/util/secasn1d.c:1315,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/util/secasn1d.c:1324,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:1387,1
    - Dst: sec_asn1d_push_state
      Src: /src/nss/lib/util/secasn1d.c:1393,1
    - Dst: sec_asn1d_init_state_based_on_template
      Src: /src/nss/lib/util/secasn1d.c:1396,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secasn1d.c:1402,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secasn1d.c:1425,1
    - Dst: sec_asn1d_zalloc
      Src: /src/nss/lib/util/secasn1d.c:1434,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secasn1d.c:1448,1
    CyclomaticComplexity: 82
    EdgeCount: 82
    ICount: 255
    argCount: 1
    argNames:
    - state
    argTypes:
    - sec_asn1d_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1452
      start: 981
    functionDepth: 4
    functionLinenumber: 981
    functionLinenumberEnd: 1452
    functionName: sec_asn1d_prepare_for_contents
    functionSourceFile: /src/nss/lib/util/secasn1d.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - sec_asn1d_init_state_based_on_template
    - sec_asn1d_zalloc
    - PORT_Memcpy
    - sec_asn1d_check_and_subtract_length
    - sec_asn1d_get_enclosing_construct
    - printf
    - PORT_SetError
    - sec_asn1d_push_state
    - SEC_ASN1GetSubtemplate
    - sec_asn1d_notify_before
    linkageType: ''
    returnType: void
    signature: void sec_asn1d_prepare_for_contents(sec_asn1d_state *state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:1458,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:1459,1
    - Dst: PORT_ArenaZRelease
      Src: /src/nss/lib/util/secasn1d.c:1460,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:1481,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - state
    - error
    argTypes:
    - sec_asn1d_state*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1484
      start: 1454
    functionDepth: 4
    functionLinenumber: 1454
    functionLinenumberEnd: 1484
    functionName: sec_asn1d_free_child
    functionSourceFile: /src/nss/lib/util/secasn1d.c
    functionUses: 0
    functionsReached:
    - PORT_ArenaZRelease
    - PORT_Assert
    linkageType: ''
    returnType: void
    signature: void sec_asn1d_free_child(sec_asn1d_state *state, PRBool error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:1506,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:1512,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:1514,1
    - Dst: sec_asn1d_free_child
      Src: /src/nss/lib/util/secasn1d.c:1519,1
    - Dst: sec_asn1d_notify_after
      Src: /src/nss/lib/util/secasn1d.c:1524,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:1537,1
    - Dst: sec_asn1d_notify_before
      Src: /src/nss/lib/util/secasn1d.c:1538,1
    - Dst: sec_asn1d_init_state_based_on_template
      Src: /src/nss/lib/util/secasn1d.c:1553,1
    - Dst: SEC_ASN1DecoderUpdate
      Src: /src/nss/lib/util/secasn1d.c:1558,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:1565,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:1566,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:1571,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 31
    argCount: 1
    argNames:
    - state
    argTypes:
    - sec_asn1d_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1580
      start: 1497
    functionDepth: 5
    functionLinenumber: 1497
    functionLinenumberEnd: 1580
    functionName: sec_asn1d_reuse_encoding
    functionSourceFile: /src/nss/lib/util/secasn1d.c
    functionUses: 0
    functionsReached:
    - sec_asn1d_free_child
    - PORT_Assert
    - sec_asn1d_init_state_based_on_template
    - SEC_ASN1DecoderUpdate
    - sec_asn1d_notify_after
    - sec_asn1d_notify_before
    linkageType: ''
    returnType: void
    signature: void sec_asn1d_reuse_encoding(sec_asn1d_state *state)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secasn1d.c:1616,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secasn1d.c:1627,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secasn1d.c:1634,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secasn1d.c:1641,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/util/secasn1d.c:1647,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 52
    argCount: 3
    argNames:
    - state
    - buf
    - len
    argTypes:
    - sec_asn1d_state*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1654
      start: 1582
    functionDepth: 0
    functionLinenumber: 1582
    functionLinenumberEnd: 1654
    functionName: sec_asn1d_parse_leaf
    functionSourceFile: /src/nss/lib/util/secasn1d.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PORT_Memcpy
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long sec_asn1d_parse_leaf(sec_asn1d_state *state,\n                     const
      char *buf, unsigned long len)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:1663,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secasn1d.c:1682,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 3
    argNames:
    - state
    - buf
    - len
    argTypes:
    - sec_asn1d_state*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1692
      start: 1656
    functionDepth: 0
    functionLinenumber: 1656
    functionLinenumberEnd: 1692
    functionName: sec_asn1d_parse_bit_string
    functionSourceFile: /src/nss/lib/util/secasn1d.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long sec_asn1d_parse_bit_string(sec_asn1d_state *state,\n
      \                          const char *buf, unsigned long len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:1698,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secasn1d.c:1702,1
    - Dst: sec_asn1d_parse_leaf
      Src: /src/nss/lib/util/secasn1d.c:1711,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - state
    - buf
    - len
    argTypes:
    - sec_asn1d_state*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1713
      start: 1694
    functionDepth: 1
    functionLinenumber: 1694
    functionLinenumberEnd: 1713
    functionName: sec_asn1d_parse_more_bit_string
    functionSourceFile: /src/nss/lib/util/secasn1d.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - sec_asn1d_parse_leaf
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long sec_asn1d_parse_more_bit_string(sec_asn1d_state *state,\n
      \                               const char *buf, unsigned long len)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sec_asn1d_zalloc
      Src: /src/nss/lib/util/secasn1d.c:1726,1
    - Dst: sec_asn1d_alloc
      Src: /src/nss/lib/util/secasn1d.c:1735,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/secasn1d.c:1739,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/util/secasn1d.c:1742,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:1751,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 4
    argNames:
    - state
    - data
    - len
    - copy_data
    argTypes:
    - sec_asn1d_state*
    - void*
    - unsigned long
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1759
      start: 1719
    functionDepth: 2
    functionLinenumber: 1719
    functionLinenumberEnd: 1759
    functionName: sec_asn1d_add_to_subitems
    functionSourceFile: /src/nss/lib/util/secasn1d.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - sec_asn1d_zalloc
    - PORT_Memcpy
    - PORT_Free
    - sec_asn1d_alloc
    linkageType: ''
    returnType: struct subitem
    signature: "struct subitem *\nsec_asn1d_add_to_subitems(sec_asn1d_state *state,\n
      \                         const void *data, unsigned long len,\n                          PRBool
      copy_data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:1770,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/util/secasn1d.c:1771,1
    - Dst: sec_asn1d_add_to_subitems
      Src: /src/nss/lib/util/secasn1d.c:1774,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - state
    - buf
    - len
    argTypes:
    - sec_asn1d_state*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1776
      start: 1761
    functionDepth: 3
    functionLinenumber: 1761
    functionLinenumberEnd: 1776
    functionName: sec_asn1d_record_any_header
    functionSourceFile: /src/nss/lib/util/secasn1d.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_Memcpy
    - sec_asn1d_add_to_subitems
    linkageType: ''
    returnType: void
    signature: "void sec_asn1d_record_any_header(sec_asn1d_state *state,\n                            const
      char *buf,\n                            unsigned long len)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:1797,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:1798,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:1809,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secasn1d.c:1811,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:1822,1
    - Dst: sec_asn1d_get_enclosing_construct
      Src: /src/nss/lib/util/secasn1d.c:1897,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:1924,1
    - Dst: sec_asn1d_add_to_subitems
      Src: /src/nss/lib/util/secasn1d.c:1925,1
    - Dst: sec_asn1d_scrub_state
      Src: /src/nss/lib/util/secasn1d.c:1947,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 52
    argCount: 1
    argNames:
    - state
    argTypes:
    - sec_asn1d_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1950
      start: 1789
    functionDepth: 3
    functionLinenumber: 1789
    functionLinenumberEnd: 1950
    functionName: sec_asn1d_next_substring
    functionSourceFile: /src/nss/lib/util/secasn1d.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - sec_asn1d_get_enclosing_construct
    - PORT_SetError
    - sec_asn1d_scrub_state
    - sec_asn1d_add_to_subitems
    linkageType: ''
    returnType: void
    signature: void sec_asn1d_next_substring(sec_asn1d_state *state)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:1961,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:1962,1
    - Dst: sec_asn1d_add_to_subitems
      Src: /src/nss/lib/util/secasn1d.c:2001,1
    - Dst: sec_asn1d_notify_after
      Src: /src/nss/lib/util/secasn1d.c:2013,1
    - Dst: sec_asn1d_add_to_subitems
      Src: /src/nss/lib/util/secasn1d.c:2023,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:2031,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secasn1d.c:2033,1
    - Dst: sec_asn1d_notify_before
      Src: /src/nss/lib/util/secasn1d.c:2049,1
    - Dst: sec_asn1d_scrub_state
      Src: /src/nss/lib/util/secasn1d.c:2054,1
    - Dst: sec_asn1d_init_state_based_on_template
      Src: /src/nss/lib/util/secasn1d.c:2057,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 41
    argCount: 1
    argNames:
    - state
    argTypes:
    - sec_asn1d_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2060
      start: 1955
    functionDepth: 4
    functionLinenumber: 1955
    functionLinenumberEnd: 2060
    functionName: sec_asn1d_next_in_group
    functionSourceFile: /src/nss/lib/util/secasn1d.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - sec_asn1d_init_state_based_on_template
    - PORT_SetError
    - sec_asn1d_scrub_state
    - sec_asn1d_notify_after
    - sec_asn1d_add_to_subitems
    - sec_asn1d_notify_before
    linkageType: ''
    returnType: void
    signature: void sec_asn1d_next_in_group(sec_asn1d_state *state)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:2074,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:2075,1
    - Dst: sec_asn1d_notify_after
      Src: /src/nss/lib/util/secasn1d.c:2082,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:2092,1
    - Dst: sec_asn1d_free_child
      Src: /src/nss/lib/util/secasn1d.c:2098,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:2100,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secasn1d.c:2102,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secasn1d.c:2111,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secasn1d.c:2134,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:2149,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secasn1d.c:2151,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secasn1d.c:2158,1
    - Dst: sec_asn1d_notify_before
      Src: /src/nss/lib/util/secasn1d.c:2181,1
    - Dst: sec_asn1d_init_state_based_on_template
      Src: /src/nss/lib/util/secasn1d.c:2188,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secasn1d.c:2212,1
    - Dst: sec_asn1d_record_any_header
      Src: /src/nss/lib/util/secasn1d.c:2216,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 87
    argCount: 1
    argNames:
    - state
    argTypes:
    - sec_asn1d_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2221
      start: 2067
    functionDepth: 5
    functionLinenumber: 2067
    functionLinenumberEnd: 2221
    functionName: sec_asn1d_next_in_sequence
    functionSourceFile: /src/nss/lib/util/secasn1d.c
    functionUses: 0
    functionsReached:
    - sec_asn1d_free_child
    - PORT_Assert
    - sec_asn1d_init_state_based_on_template
    - PORT_SetError
    - sec_asn1d_record_any_header
    - sec_asn1d_notify_after
    - sec_asn1d_notify_before
    linkageType: ''
    returnType: void
    signature: void sec_asn1d_next_in_sequence(sec_asn1d_state *state)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:2226,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secasn1d.c:2247,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secasn1d.c:2270,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:2276,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:2277,1
    - Dst: sec_asn1d_zalloc
      Src: /src/nss/lib/util/secasn1d.c:2278,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/util/secasn1d.c:2293,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 49
    argCount: 1
    argNames:
    - state
    argTypes:
    - sec_asn1d_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2307
      start: 2223
    functionDepth: 2
    functionLinenumber: 2223
    functionLinenumberEnd: 2307
    functionName: sec_asn1d_concat_substrings
    functionSourceFile: /src/nss/lib/util/secasn1d.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - PORT_Memcpy
    - sec_asn1d_zalloc
    linkageType: ''
    returnType: void
    signature: void sec_asn1d_concat_substrings(sec_asn1d_state *state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:2314,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:2317,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:2326,1
    - Dst: sec_asn1d_zalloc
      Src: /src/nss/lib/util/secasn1d.c:2331,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - state
    argTypes:
    - sec_asn1d_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2356
      start: 2309
    functionDepth: 2
    functionLinenumber: 2309
    functionLinenumberEnd: 2356
    functionName: sec_asn1d_concat_group
    functionSourceFile: /src/nss/lib/util/secasn1d.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - sec_asn1d_zalloc
    linkageType: ''
    returnType: void
    signature: void sec_asn1d_concat_group(sec_asn1d_state *state)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:2368,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:2385,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:2393,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:2394,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secasn1d.c:2402,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:2434,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - state
    argTypes:
    - sec_asn1d_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2436
      start: 2362
    functionDepth: 0
    functionLinenumber: 2362
    functionLinenumberEnd: 2436
    functionName: sec_asn1d_absorb_child
    functionSourceFile: /src/nss/lib/util/secasn1d.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    linkageType: ''
    returnType: void
    signature: void sec_asn1d_absorb_child(sec_asn1d_state *state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:2441,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - state
    argTypes:
    - sec_asn1d_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2449
      start: 2438
    functionDepth: 0
    functionLinenumber: 2438
    functionLinenumberEnd: 2449
    functionName: sec_asn1d_prepare_for_end_of_contents
    functionSourceFile: /src/nss/lib/util/secasn1d.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: void
    signature: void sec_asn1d_prepare_for_end_of_contents(sec_asn1d_state *state)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:2457,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:2458,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secasn1d.c:2473,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - state
    - buf
    - len
    argTypes:
    - sec_asn1d_state*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2498
      start: 2451
    functionDepth: 0
    functionLinenumber: 2451
    functionLinenumberEnd: 2498
    functionName: sec_asn1d_parse_end_of_contents
    functionSourceFile: /src/nss/lib/util/secasn1d.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    linkageType: ''
    returnType: unsigned long
    signature: "unsigned long sec_asn1d_parse_end_of_contents(sec_asn1d_state *state,\n
      \                               const char *buf, unsigned long len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:2510,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secasn1d.c:2512,1
    - Dst: sec_asn1d_free_child
      Src: /src/nss/lib/util/secasn1d.c:2525,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - state
    argTypes:
    - sec_asn1d_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2532
      start: 2500
    functionDepth: 5
    functionLinenumber: 2500
    functionLinenumberEnd: 2532
    functionName: sec_asn1d_pop_state
    functionSourceFile: /src/nss/lib/util/secasn1d.c
    functionUses: 0
    functionsReached:
    - sec_asn1d_free_child
    - PORT_Assert
    - PORT_SetError
    linkageType: ''
    returnType: void
    signature: void sec_asn1d_pop_state(sec_asn1d_state *state)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sec_asn1d_zalloc
      Src: /src/nss/lib/util/secasn1d.c:2542,1
    - Dst: sec_asn1d_push_state
      Src: /src/nss/lib/util/secasn1d.c:2551,1
    - Dst: sec_asn1d_scrub_state
      Src: /src/nss/lib/util/secasn1d.c:2558,1
    - Dst: sec_asn1d_init_state_based_on_template
      Src: /src/nss/lib/util/secasn1d.c:2559,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - state
    argTypes:
    - sec_asn1d_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2569
      start: 2534
    functionDepth: 4
    functionLinenumber: 2534
    functionLinenumberEnd: 2569
    functionName: sec_asn1d_before_choice
    functionSourceFile: /src/nss/lib/util/secasn1d.c
    functionUses: 0
    functionsReached:
    - sec_asn1d_init_state_based_on_template
    - sec_asn1d_zalloc
    - sec_asn1d_scrub_state
    - sec_asn1d_push_state
    linkageType: ''
    returnType: sec_asn1d_state
    signature: 'sec_asn1d_state *

      sec_asn1d_before_choice(sec_asn1d_state *state)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:2576,1
    - Dst: sec_asn1d_parent_allows_EOC
      Src: /src/nss/lib/util/secasn1d.c:2596,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secasn1d.c:2598,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secasn1d.c:2608,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:2616,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secasn1d.c:2618,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:2626,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secasn1d.c:2627,1
    - Dst: sec_asn1d_scrub_state
      Src: /src/nss/lib/util/secasn1d.c:2634,1
    - Dst: sec_asn1d_init_state_based_on_template
      Src: /src/nss/lib/util/secasn1d.c:2642,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 58
    argCount: 1
    argNames:
    - state
    argTypes:
    - sec_asn1d_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2666
      start: 2571
    functionDepth: 4
    functionLinenumber: 2571
    functionLinenumberEnd: 2666
    functionName: sec_asn1d_during_choice
    functionSourceFile: /src/nss/lib/util/secasn1d.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - sec_asn1d_init_state_based_on_template
    - PORT_SetError
    - sec_asn1d_parent_allows_EOC
    - sec_asn1d_scrub_state
    linkageType: ''
    returnType: sec_asn1d_state
    signature: 'sec_asn1d_state *

      sec_asn1d_during_choice(sec_asn1d_state *state)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sec_asn1d_pop_state
      Src: /src/nss/lib/util/secasn1d.c:2674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - state
    argTypes:
    - sec_asn1d_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2675
      start: 2668
    functionDepth: 6
    functionLinenumber: 2668
    functionLinenumberEnd: 2675
    functionName: sec_asn1d_after_choice
    functionSourceFile: /src/nss/lib/util/secasn1d.c
    functionUses: 0
    functionsReached:
    - sec_asn1d_pop_state
    linkageType: ''
    returnType: void
    signature: void sec_asn1d_after_choice(sec_asn1d_state *state)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - src
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2693
      start: 2677
    functionDepth: 0
    functionLinenumber: 2677
    functionLinenumberEnd: 2693
    functionName: sec_asn1d_uinteger
    functionSourceFile: /src/nss/lib/util/secasn1d.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long sec_asn1d_uinteger(SECItem *src)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secasn1d.c:2702,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secasn1d.c:2707,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secasn1d.c:2712,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - src
    - value
    argTypes:
    - SECItem*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2728
      start: 2695
    functionDepth: 0
    functionLinenumber: 2695
    functionLinenumberEnd: 2728
    functionName: SEC_ASN1DecodeInteger
    functionSourceFile: /src/nss/lib/util/secasn1d.c
    functionUses: 5
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SEC_ASN1DecodeInteger(SECItem *src, unsigned long *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/lib/util/secasn1d.c:2745,1
    - Dst: formatKind
      Src: /src/nss/lib/util/secasn1d.c:2748,1
    - Dst: printf
      Src: /src/nss/lib/util/secasn1d.c:2749,1
    - Dst: printf
      Src: /src/nss/lib/util/secasn1d.c:2752,1
    - Dst: printf
      Src: /src/nss/lib/util/secasn1d.c:2754,1
    - Dst: printf
      Src: /src/nss/lib/util/secasn1d.c:2757,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - cx
    argTypes:
    - SEC_ASN1DecoderContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2765
      start: 2731
    functionDepth: 2
    functionLinenumber: 2731
    functionLinenumberEnd: 2765
    functionName: dump_states
    functionSourceFile: /src/nss/lib/util/secasn1d.c
    functionUses: 0
    functionsReached:
    - printf
    - formatKind
    linkageType: ''
    returnType: void
    signature: void dump_states(SEC_ASN1DecoderContext *cx)
  - BBCount: 43
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/lib/util/secasn1d.c:2784,1
    - Dst: dump_states
      Src: /src/nss/lib/util/secasn1d.c:2788,1
    - Dst: sec_asn1d_parse_identifier
      Src: /src/nss/lib/util/secasn1d.c:2792,1
    - Dst: sec_asn1d_parse_more_identifier
      Src: /src/nss/lib/util/secasn1d.c:2796,1
    - Dst: sec_asn1d_confirm_identifier
      Src: /src/nss/lib/util/secasn1d.c:2800,1
    - Dst: sec_asn1d_parse_length
      Src: /src/nss/lib/util/secasn1d.c:2803,1
    - Dst: sec_asn1d_parse_more_length
      Src: /src/nss/lib/util/secasn1d.c:2807,1
    - Dst: sec_asn1d_prepare_for_contents
      Src: /src/nss/lib/util/secasn1d.c:2811,1
    - Dst: sec_asn1d_parse_bit_string
      Src: /src/nss/lib/util/secasn1d.c:2814,1
    - Dst: sec_asn1d_parse_more_bit_string
      Src: /src/nss/lib/util/secasn1d.c:2817,1
    - Dst: sec_asn1d_next_substring
      Src: /src/nss/lib/util/secasn1d.c:2820,1
    - Dst: sec_asn1d_next_in_group
      Src: /src/nss/lib/util/secasn1d.c:2823,1
    - Dst: sec_asn1d_parse_leaf
      Src: /src/nss/lib/util/secasn1d.c:2826,1
    - Dst: sec_asn1d_reuse_encoding
      Src: /src/nss/lib/util/secasn1d.c:2829,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secasn1d.c:2838,1
    - Dst: sec_asn1d_next_in_sequence
      Src: /src/nss/lib/util/secasn1d.c:2843,1
    - Dst: sec_asn1d_concat_substrings
      Src: /src/nss/lib/util/secasn1d.c:2846,1
    - Dst: sec_asn1d_absorb_child
      Src: /src/nss/lib/util/secasn1d.c:2852,1
    - Dst: sec_asn1d_concat_group
      Src: /src/nss/lib/util/secasn1d.c:2855,1
    - Dst: sec_asn1d_prepare_for_end_of_contents
      Src: /src/nss/lib/util/secasn1d.c:2864,1
    - Dst: sec_asn1d_parse_end_of_contents
      Src: /src/nss/lib/util/secasn1d.c:2867,1
    - Dst: sec_asn1d_pop_state
      Src: /src/nss/lib/util/secasn1d.c:2871,1
    - Dst: sec_asn1d_before_choice
      Src: /src/nss/lib/util/secasn1d.c:2874,1
    - Dst: sec_asn1d_during_choice
      Src: /src/nss/lib/util/secasn1d.c:2877,1
    - Dst: sec_asn1d_after_choice
      Src: /src/nss/lib/util/secasn1d.c:2880,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:2885,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secasn1d.c:2886,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:2895,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secasn1d.c:2897,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:2907,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secasn1d.c:2914,1
    - Dst: sec_asn1d_record_any_header
      Src: /src/nss/lib/util/secasn1d.c:2937,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:2950,1
    - Dst: sec_asn1d_get_enclosing_construct
      Src: /src/nss/lib/util/secasn1d.c:2950,1
    - Dst: sec_asn1d_free_child
      Src: /src/nss/lib/util/secasn1d.c:2963,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:2977,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/util/secasn1d.c:2978,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:2993,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:2996,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 154
    argCount: 3
    argNames:
    - cx
    - buf
    - len
    argTypes:
    - SEC_ASN1DecoderContext*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2999
      start: 2768
    functionDepth: 7
    functionLinenumber: 2768
    functionLinenumberEnd: 2999
    functionName: SEC_ASN1DecoderUpdate
    functionSourceFile: /src/nss/lib/util/secasn1d.c
    functionUses: 7
    functionsReached:
    - sec_asn1d_parse_length
    - sec_asn1d_free_child
    - printf
    - sec_asn1d_during_choice
    - sec_asn1d_confirm_identifier
    - sec_asn1d_next_substring
    - sec_asn1d_pop_state
    - sec_asn1d_absorb_child
    - PORT_ArenaRelease
    - sec_asn1d_parse_more_bit_string
    - sec_asn1d_parse_identifier
    - PORT_SetError
    - sec_asn1d_parse_bit_string
    - sec_asn1d_after_choice
    - sec_asn1d_parse_end_of_contents
    - sec_asn1d_before_choice
    - sec_asn1d_parse_leaf
    - sec_asn1d_next_in_sequence
    - sec_asn1d_parse_more_identifier
    - PORT_Assert
    - sec_asn1d_concat_substrings
    - sec_asn1d_get_enclosing_construct
    - sec_asn1d_record_any_header
    - sec_asn1d_concat_group
    - dump_states
    - sec_asn1d_prepare_for_end_of_contents
    - sec_asn1d_prepare_for_contents
    - sec_asn1d_next_in_group
    - sec_asn1d_parse_more_length
    - sec_asn1d_reuse_encoding
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SEC_ASN1DecoderUpdate(SEC_ASN1DecoderContext *cx,\n                      const
      char *buf, unsigned long len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_GetError
      Src: /src/nss/lib/util/secasn1d.c:3007,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secasn1d.c:3010,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/util/secasn1d.c:3022,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - cx
    argTypes:
    - SEC_ASN1DecoderContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3026
      start: 3001
    functionDepth: 0
    functionLinenumber: 3001
    functionLinenumberEnd: 3026
    functionName: SEC_ASN1DecoderFinish
    functionSourceFile: /src/nss/lib/util/secasn1d.c
    functionUses: 12
    functionsReached:
    - PORT_FreeArena
    - PORT_SetError
    - PORT_GetError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SEC_ASN1DecoderFinish(SEC_ASN1DecoderContext *cx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/util/secasn1d.c:3035,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/util/secasn1d.c:3039,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/util/secasn1d.c:3041,1
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/util/secasn1d.c:3049,1
    - Dst: sec_asn1d_push_state
      Src: /src/nss/lib/util/secasn1d.c:3055,1
    - Dst: sec_asn1d_init_state_based_on_template
      Src: /src/nss/lib/util/secasn1d.c:3055,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/util/secasn1d.c:3060,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - their_pool
    - dest
    - theTemplate
    argTypes:
    - PLArenaPool*
    - void*
    - SEC_ASN1Template*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3065
      start: 3028
    functionDepth: 4
    functionLinenumber: 3028
    functionLinenumberEnd: 3065
    functionName: SEC_ASN1DecoderStart
    functionSourceFile: /src/nss/lib/util/secasn1d.c
    functionUses: 6
    functionsReached:
    - sec_asn1d_init_state_based_on_template
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - PORT_FreeArena
    - PORT_ArenaMark
    - sec_asn1d_push_state
    linkageType: ''
    returnType: SEC_ASN1DecoderContext
    signature: "SEC_ASN1DecoderContext *\nSEC_ASN1DecoderStart(PLArenaPool *their_pool,
      void *dest,\n                     const SEC_ASN1Template *theTemplate)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:3073,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - cx
    - fn
    - arg
    - only
    argTypes:
    - SEC_ASN1DecoderContext*
    - SEC_ASN1WriteProc
    - void*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3078
      start: 3067
    functionDepth: 0
    functionLinenumber: 3067
    functionLinenumberEnd: 3078
    functionName: SEC_ASN1DecoderSetFilterProc
    functionSourceFile: /src/nss/lib/util/secasn1d.c
    functionUses: 5
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: void
    signature: "void SEC_ASN1DecoderSetFilterProc(SEC_ASN1DecoderContext *cx,\n                             SEC_ASN1WriteProc
      fn, void *arg,\n                             PRBool only)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:3084,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - cx
    argTypes:
    - SEC_ASN1DecoderContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3089
      start: 3080
    functionDepth: 0
    functionLinenumber: 3080
    functionLinenumberEnd: 3089
    functionName: SEC_ASN1DecoderClearFilterProc
    functionSourceFile: /src/nss/lib/util/secasn1d.c
    functionUses: 5
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: void
    signature: void SEC_ASN1DecoderClearFilterProc(SEC_ASN1DecoderContext *cx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - cx
    - fn
    - arg
    argTypes:
    - SEC_ASN1DecoderContext*
    - SEC_ASN1NotifyProc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3097
      start: 3091
    functionDepth: 0
    functionLinenumber: 3091
    functionLinenumberEnd: 3097
    functionName: SEC_ASN1DecoderSetNotifyProc
    functionSourceFile: /src/nss/lib/util/secasn1d.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void SEC_ASN1DecoderSetNotifyProc(SEC_ASN1DecoderContext *cx,\n                             SEC_ASN1NotifyProc
      fn, void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cx
    argTypes:
    - SEC_ASN1DecoderContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3104
      start: 3099
    functionDepth: 0
    functionLinenumber: 3099
    functionLinenumberEnd: 3104
    functionName: SEC_ASN1DecoderClearNotifyProc
    functionSourceFile: /src/nss/lib/util/secasn1d.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SEC_ASN1DecoderClearNotifyProc(SEC_ASN1DecoderContext *cx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cx
    - max_size
    argTypes:
    - SEC_ASN1DecoderContext*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3111
      start: 3106
    functionDepth: 0
    functionLinenumber: 3106
    functionLinenumberEnd: 3111
    functionName: SEC_ASN1DecoderSetMaximumElementSize
    functionSourceFile: /src/nss/lib/util/secasn1d.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void SEC_ASN1DecoderSetMaximumElementSize(SEC_ASN1DecoderContext *cx,\n
      \                                    unsigned long max_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/secasn1d.c:3116,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/secasn1d.c:3117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - cx
    - error
    argTypes:
    - SEC_ASN1DecoderContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3119
      start: 3113
    functionDepth: 0
    functionLinenumber: 3113
    functionLinenumberEnd: 3119
    functionName: SEC_ASN1DecoderAbort
    functionSourceFile: /src/nss/lib/util/secasn1d.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    linkageType: ''
    returnType: void
    signature: void SEC_ASN1DecoderAbort(SEC_ASN1DecoderContext *cx, int error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1DecoderStart
      Src: /src/nss/lib/util/secasn1d.c:3129,1
    - Dst: SEC_ASN1DecoderSetMaximumElementSize
      Src: /src/nss/lib/util/secasn1d.c:3135,1
    - Dst: SEC_ASN1DecoderUpdate
      Src: /src/nss/lib/util/secasn1d.c:3137,1
    - Dst: SEC_ASN1DecoderFinish
      Src: /src/nss/lib/util/secasn1d.c:3138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - poolp
    - dest
    - theTemplate
    - buf
    - len
    argTypes:
    - PLArenaPool*
    - void*
    - SEC_ASN1Template*
    - char*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3144
      start: 3121
    functionDepth: 1
    functionLinenumber: 3121
    functionLinenumberEnd: 3144
    functionName: SEC_ASN1Decode
    functionSourceFile: /src/nss/lib/util/secasn1d.c
    functionUses: 10
    functionsReached:
    - SEC_ASN1DecoderUpdate
    - SEC_ASN1DecoderStart
    - SEC_ASN1DecoderFinish
    - SEC_ASN1DecoderSetMaximumElementSize
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SEC_ASN1Decode(PLArenaPool *poolp, void *dest,\n               const
      SEC_ASN1Template *theTemplate,\n               const char *buf, long len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1Decode
      Src: /src/nss/lib/util/secasn1d.c:3151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - poolp
    - dest
    - theTemplate
    - src
    argTypes:
    - PLArenaPool*
    - void*
    - SEC_ASN1Template*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3153
      start: 3146
    functionDepth: 0
    functionLinenumber: 3146
    functionLinenumberEnd: 3153
    functionName: SEC_ASN1DecodeItem
    functionSourceFile: /src/nss/lib/util/secasn1d.c
    functionUses: 32
    functionsReached:
    - SEC_ASN1Decode
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SEC_ASN1DecodeItem(PLArenaPool *poolp, void *dest,\n                   const
      SEC_ASN1Template *theTemplate,\n                   const SECItem *src)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/lib/util/secasn1d.c:3159,1
    - Dst: fflush
      Src: /src/nss/lib/util/secasn1d.c:3160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - s
    - file
    - ln
    argTypes:
    - char*
    - char*
    - PRIntn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3161
      start: 3156
    functionDepth: 0
    functionLinenumber: 3156
    functionLinenumberEnd: 3161
    functionName: sec_asn1d_Assert
    functionSourceFile: /src/nss/lib/util/secasn1d.c
    functionUses: 0
    functionsReached:
    - printf
    - fflush
    linkageType: ''
    returnType: void
    signature: void sec_asn1d_Assert(const char *s, const char *file, PRIntn ln)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 90
    functionName: PLBase64DecoderStr
    functionSourceFile: /src/nss/lib/util/nssb64d.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PR_BEGIN_EXTERN_C
    signature: PR_BEGIN_EXTERN_C PLBase64DecoderStr
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - a
    - b
    argTypes:
    - unsigned char
    - unsigned char
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 114
    functionName: ct_u8_in_range
    functionSourceFile: /src/nss/lib/util/nssb64d.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PR_END_EXTERN_C
    signature: PR_END_EXTERN_C ct_u8_in_range(unsigned char x, unsigned char a, unsigned
      char b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ct_u8_in_range
      Src: /src/nss/lib/util/nssb64d.c:129,1
    - Dst: ct_u8_in_range
      Src: /src/nss/lib/util/nssb64d.c:133,1
    - Dst: ct_u8_in_range
      Src: /src/nss/lib/util/nssb64d.c:137,1
    - Dst: ct_u8_in_range
      Src: /src/nss/lib/util/nssb64d.c:141,1
    - Dst: ct_u8_in_range
      Src: /src/nss/lib/util/nssb64d.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - code
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 150
    functionName: pl_base64_codetovaluep1
    functionSourceFile: /src/nss/lib/util/nssb64d.c
    functionUses: 0
    functionsReached:
    - ct_u8_in_range
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char pl_base64_codetovaluep1(unsigned char code)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pl_base64_codetovaluep1
      Src: /src/nss/lib/util/nssb64d.c:166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 177
    functionName: pl_base64_decode_4to3
    functionSourceFile: /src/nss/lib/util/nssb64d.c
    functionUses: 0
    functionsReached:
    - pl_base64_codetovaluep1
    linkageType: ''
    returnType: int
    signature: int pl_base64_decode_4to3(const unsigned char *in, unsigned char *out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pl_base64_codetovaluep1
      Src: /src/nss/lib/util/nssb64d.c:189,1
    - Dst: pl_base64_codetovaluep1
      Src: /src/nss/lib/util/nssb64d.c:190,1
    - Dst: pl_base64_codetovaluep1
      Src: /src/nss/lib/util/nssb64d.c:191,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 204
    functionName: pl_base64_decode_3to2
    functionSourceFile: /src/nss/lib/util/nssb64d.c
    functionUses: 0
    functionsReached:
    - pl_base64_codetovaluep1
    linkageType: ''
    returnType: int
    signature: int pl_base64_decode_3to2(const unsigned char *in, unsigned char *out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pl_base64_codetovaluep1
      Src: /src/nss/lib/util/nssb64d.c:216,1
    - Dst: pl_base64_codetovaluep1
      Src: /src/nss/lib/util/nssb64d.c:217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 210
    functionDepth: 2
    functionLinenumber: 210
    functionLinenumberEnd: 228
    functionName: pl_base64_decode_2to1
    functionSourceFile: /src/nss/lib/util/nssb64d.c
    functionUses: 0
    functionsReached:
    - pl_base64_codetovaluep1
    linkageType: ''
    returnType: int
    signature: int pl_base64_decode_2to1(const unsigned char *in, unsigned char *out)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pl_base64_decode_4to3
      Src: /src/nss/lib/util/nssb64d.c:238,1
    - Dst: pl_base64_decode_2to1
      Src: /src/nss/lib/util/nssb64d.c:241,1
    - Dst: pl_base64_decode_3to2
      Src: /src/nss/lib/util/nssb64d.c:243,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - in
    - out
    argTypes:
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 234
    functionDepth: 3
    functionLinenumber: 234
    functionLinenumberEnd: 244
    functionName: pl_base64_decode_token
    functionSourceFile: /src/nss/lib/util/nssb64d.c
    functionUses: 0
    functionsReached:
    - pl_base64_decode_3to2
    - pl_base64_decode_2to1
    - pl_base64_decode_4to3
    linkageType: ''
    returnType: int
    signature: int pl_base64_decode_token(const unsigned char *in, unsigned char *out)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pl_base64_codetovaluep1
      Src: /src/nss/lib/util/nssb64d.c:268,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/util/nssb64d.c:281,1
    - Dst: pl_base64_decode_4to3
      Src: /src/nss/lib/util/nssb64d.c:297,1
    - Dst: pl_base64_decode_token
      Src: /src/nss/lib/util/nssb64d.c:314,1
    - Dst: pl_base64_codetovaluep1
      Src: /src/nss/lib/util/nssb64d.c:330,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 3
    argNames:
    - data
    - in
    - length
    argTypes:
    - PLBase64Decoder*
    - unsigned char*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 246
    functionDepth: 4
    functionLinenumber: 246
    functionLinenumberEnd: 339
    functionName: pl_base64_decode_buffer
    functionSourceFile: /src/nss/lib/util/nssb64d.c
    functionUses: 0
    functionsReached:
    - pl_base64_decode_token
    - pl_base64_decode_4to3
    - pl_base64_codetovaluep1
    - PR_ASSERT
    linkageType: ''
    returnType: PRStatus
    signature: "PRStatus pl_base64_decode_buffer(PLBase64Decoder *data, const unsigned
      char *in,\n                        PRUint32 length)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pl_base64_decode_token
      Src: /src/nss/lib/util/nssb64d.c:369,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/util/nssb64d.c:382,1
    - Dst: PLBase64Decoder*::output_fn
      Src: /src/nss/lib/util/nssb64d.c:383,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - data
    argTypes:
    - PLBase64Decoder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 347
    functionDepth: 4
    functionLinenumber: 347
    functionLinenumberEnd: 393
    functionName: pl_base64_decode_flush
    functionSourceFile: /src/nss/lib/util/nssb64d.c
    functionUses: 0
    functionsReached:
    - pl_base64_decode_token
    - PLBase64Decoder*::output_fn
    - PR_ASSERT
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus pl_base64_decode_flush(PLBase64Decoder *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 403
    functionName: PL_Base64MaxDecodedLength
    functionSourceFile: /src/nss/lib/util/nssb64d.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRUint32
    signature: PRUint32 PL_Base64MaxDecodedLength(PRUint32 size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_NEWZAP
      Src: /src/nss/lib/util/nssb64d.c:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 415
    functionName: pl_base64_create_decoder
    functionSourceFile: /src/nss/lib/util/nssb64d.c
    functionUses: 0
    functionsReached:
    - PR_NEWZAP
    linkageType: ''
    returnType: PLBase64Decoder
    signature: 'PLBase64Decoder *

      pl_base64_create_decoder(void)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_SetError
      Src: /src/nss/lib/util/nssb64d.c:429,1
    - Dst: pl_base64_create_decoder
      Src: /src/nss/lib/util/nssb64d.c:433,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - output_arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 421
    functionDepth: 2
    functionLinenumber: 421
    functionLinenumberEnd: 439
    functionName: PL_CreateBase64Decoder
    functionSourceFile: /src/nss/lib/util/nssb64d.c
    functionUses: 0
    functionsReached:
    - PR_SetError
    - pl_base64_create_decoder
    linkageType: ''
    returnType: PLBase64Decoder
    signature: "PLBase64Decoder *\nPL_CreateBase64Decoder(PRInt32 (*output_fn)(void
      *, const unsigned char *,\n                                            PRInt32),\n
      \                      void *output_arg)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PR_SetError
      Src: /src/nss/lib/util/nssb64d.c:454,1
    - Dst: PL_Base64MaxDecodedLength
      Src: /src/nss/lib/util/nssb64d.c:461,1
    - Dst: PR_Realloc
      Src: /src/nss/lib/util/nssb64d.c:470,1
    - Dst: PR_Malloc
      Src: /src/nss/lib/util/nssb64d.c:473,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/util/nssb64d.c:483,1
    - Dst: pl_base64_decode_buffer
      Src: /src/nss/lib/util/nssb64d.c:486,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/util/nssb64d.c:493,1
    - Dst: PLBase64Decoder*::output_fn
      Src: /src/nss/lib/util/nssb64d.c:494,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 3
    argNames:
    - data
    - buffer
    - size
    argTypes:
    - PLBase64Decoder*
    - char*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 445
    functionDepth: 5
    functionLinenumber: 445
    functionLinenumberEnd: 503
    functionName: PL_UpdateBase64Decoder
    functionSourceFile: /src/nss/lib/util/nssb64d.c
    functionUses: 0
    functionsReached:
    - PR_Malloc
    - PLBase64Decoder*::output_fn
    - PL_Base64MaxDecodedLength
    - pl_base64_decode_buffer
    - PR_ASSERT
    - PR_SetError
    - PR_Realloc
    linkageType: ''
    returnType: PRStatus
    signature: "PRStatus PL_UpdateBase64Decoder(PLBase64Decoder *data, const char
      *buffer,\n                       PRUint32 size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PR_SetError
      Src: /src/nss/lib/util/nssb64d.c:517,1
    - Dst: pl_base64_decode_flush
      Src: /src/nss/lib/util/nssb64d.c:523,1
    - Dst: PR_Free
      Src: /src/nss/lib/util/nssb64d.c:526,1
    - Dst: PR_Free
      Src: /src/nss/lib/util/nssb64d.c:527,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - data
    - abort_p
    argTypes:
    - PLBase64Decoder*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 510
    functionDepth: 5
    functionLinenumber: 510
    functionLinenumberEnd: 530
    functionName: PL_DestroyBase64Decoder
    functionSourceFile: /src/nss/lib/util/nssb64d.c
    functionUses: 0
    functionsReached:
    - PR_SetError
    - pl_base64_decode_flush
    - PR_Free
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus PL_DestroyBase64Decoder(PLBase64Decoder *data, PRBool abort_p)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PR_ASSERT
      Src: /src/nss/lib/util/nssb64d.c:553,1
    - Dst: PR_SetError
      Src: /src/nss/lib/util/nssb64d.c:555,1
    - Dst: PL_Base64MaxDecodedLength
      Src: /src/nss/lib/util/nssb64d.c:562,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/util/nssb64d.c:569,1
    - Dst: PR_SetError
      Src: /src/nss/lib/util/nssb64d.c:571,1
    - Dst: PR_Malloc
      Src: /src/nss/lib/util/nssb64d.c:576,1
    - Dst: pl_base64_create_decoder
      Src: /src/nss/lib/util/nssb64d.c:582,1
    - Dst: pl_base64_decode_buffer
      Src: /src/nss/lib/util/nssb64d.c:589,1
    - Dst: pl_base64_decode_flush
      Src: /src/nss/lib/util/nssb64d.c:597,1
    - Dst: PL_DestroyBase64Decoder
      Src: /src/nss/lib/util/nssb64d.c:604,1
    - Dst: PR_Free
      Src: /src/nss/lib/util/nssb64d.c:613,1
    - Dst: PL_DestroyBase64Decoder
      Src: /src/nss/lib/util/nssb64d.c:615,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 48
    argCount: 5
    argNames:
    - src
    - srclen
    - dest
    - maxdestlen
    - output_destlen
    argTypes:
    - char*
    - PRUint32
    - unsigned char*
    - PRUint32
    - PRUint32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 544
    functionDepth: 6
    functionLinenumber: 544
    functionLinenumberEnd: 617
    functionName: PL_Base64DecodeBuffer
    functionSourceFile: /src/nss/lib/util/nssb64d.c
    functionUses: 0
    functionsReached:
    - PR_Malloc
    - pl_base64_decode_flush
    - PL_Base64MaxDecodedLength
    - pl_base64_decode_buffer
    - PR_Free
    - PR_ASSERT
    - PL_DestroyBase64Decoder
    - PR_SetError
    - pl_base64_create_decoder
    linkageType: ''
    returnType: unsigned char
    signature: "unsigned char *\nPL_Base64DecodeBuffer(const char *src, PRUint32 srclen,
      unsigned char *dest,\n                      PRUint32 maxdestlen, PRUint32 *output_destlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 631
    functionDepth: 0
    functionLinenumber: 631
    functionLinenumberEnd: 639
    functionName: NSSBase64DecoderStr
    functionSourceFile: /src/nss/lib/util/nssb64d.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PR_BEGIN_EXTERN_C
    signature: PR_BEGIN_EXTERN_C NSSBase64DecoderStr
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZNew
      Src: /src/nss/lib/util/nssb64d.c:654,1
    - Dst: PL_CreateBase64Decoder
      Src: /src/nss/lib/util/nssb64d.c:658,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/nssb64d.c:660,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 641
    functionDepth: 3
    functionLinenumber: 641
    functionLinenumberEnd: 666
    functionName: "NSSBase64Decoder *\nNSSBase64Decoder_Create(PRInt32 (*output_fn)(void
      *, const unsigned char *,\n                                             PRInt32),\n
      \                       void *output_arg)"
    functionSourceFile: /src/nss/lib/util/nssb64d.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - PL_CreateBase64Decoder
    - PORT_ZNew
    linkageType: ''
    returnType: PR_END_EXTERN_C
    signature: "PR_END_EXTERN_C NSSBase64Decoder *\nNSSBase64Decoder_Create(PRInt32
      (*output_fn)(void *, const unsigned char *,\n                                             PRInt32),\n
      \                       void *output_arg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/nssb64d.c:680,1
    - Dst: PL_UpdateBase64Decoder
      Src: /src/nss/lib/util/nssb64d.c:684,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - data
    - buffer
    - size
    argTypes:
    - NSSBase64Decoder*
    - char*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 672
    functionDepth: 6
    functionLinenumber: 672
    functionLinenumberEnd: 689
    functionName: NSSBase64Decoder_Update
    functionSourceFile: /src/nss/lib/util/nssb64d.c
    functionUses: 2
    functionsReached:
    - PORT_SetError
    - PL_UpdateBase64Decoder
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus NSSBase64Decoder_Update(NSSBase64Decoder *data, const char
      *buffer,\n                        PRUint32 size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/nssb64d.c:703,1
    - Dst: PL_DestroyBase64Decoder
      Src: /src/nss/lib/util/nssb64d.c:707,1
    - Dst: PORT_Free
      Src: /src/nss/lib/util/nssb64d.c:709,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - data
    - abort_p
    argTypes:
    - NSSBase64Decoder*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 696
    functionDepth: 6
    functionLinenumber: 696
    functionLinenumberEnd: 715
    functionName: NSSBase64Decoder_Destroy
    functionSourceFile: /src/nss/lib/util/nssb64d.c
    functionUses: 2
    functionsReached:
    - PL_DestroyBase64Decoder
    - PORT_SetError
    - PORT_Free
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSSBase64Decoder_Destroy(NSSBase64Decoder *data, PRBool abort_p)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/nssb64d.c:740,1
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/util/nssb64d.c:745,1
    - Dst: PL_Base64MaxDecodedLength
      Src: /src/nss/lib/util/nssb64d.c:747,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/util/nssb64d.c:751,1
    - Dst: PL_Base64DecodeBuffer
      Src: /src/nss/lib/util/nssb64d.c:756,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/util/nssb64d.c:762,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/util/nssb64d.c:768,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/util/nssb64d.c:774,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 4
    argNames:
    - arenaOpt
    - outItemOpt
    - inStr
    - inLen
    argTypes:
    - PLArenaPool*
    - SECItem*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 730
    functionDepth: 7
    functionLinenumber: 730
    functionLinenumberEnd: 777
    functionName: NSSBase64_DecodeBuffer
    functionSourceFile: /src/nss/lib/util/nssb64d.c
    functionUses: 6
    functionsReached:
    - PL_Base64MaxDecodedLength
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - SECITEM_AllocItem
    - PORT_SetError
    - PL_Base64DecodeBuffer
    - PORT_ArenaUnmark
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECItem
    signature: "SECItem *\nNSSBase64_DecodeBuffer(PLArenaPool *arenaOpt, SECItem *outItemOpt,\n
      \                      const char *inStr, unsigned int inLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSSBase64_DecodeBuffer
      Src: /src/nss/lib/util/nssb64d.c:811,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/util/nssb64d.c:812,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/nssb64d.c:816,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - string
    - lenp
    argTypes:
    - char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 803
    functionDepth: 1
    functionLinenumber: 803
    functionLinenumberEnd: 820
    functionName: ATOB_AsciiToData
    functionSourceFile: /src/nss/lib/util/nssb64d.c
    functionUses: 4
    functionsReached:
    - PORT_Assert
    - NSSBase64_DecodeBuffer
    - PORT_Strlen
    linkageType: ''
    returnType: unsigned char
    signature: 'unsigned char *

      ATOB_AsciiToData(const char *string, unsigned int *lenp)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/nssb64d.c:831,1
    - Dst: NSSBase64_DecodeBuffer
      Src: /src/nss/lib/util/nssb64d.c:845,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/util/nssb64d.c:846,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - binary_item
    - ascii
    argTypes:
    - SECItem*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 825
    functionDepth: 1
    functionLinenumber: 825
    functionLinenumberEnd: 852
    functionName: ATOB_ConvertAsciiToItem
    functionSourceFile: /src/nss/lib/util/nssb64d.c
    functionUses: 6
    functionsReached:
    - PORT_SetError
    - NSSBase64_DecodeBuffer
    - PORT_Strlen
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ATOB_ConvertAsciiToItem(SECItem *binary_item, const char
      *ascii)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 12
    functionName: HIDIGIT
    functionSourceFile: /src/nss/lib/util/dertime.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HIDIGIT(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 13
    functionName: LODIGIT
    functionSourceFile: /src/nss/lib/util/dertime.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LODIGIT(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - dig
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: ISDIGIT
    functionSourceFile: /src/nss/lib/util/dertime.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISDIGIT(dig)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - var
    - ','
    - p
    - ','
    - label
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 22
    functionName: CAPTURE
    functionSourceFile: /src/nss/lib/util/dertime.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CAPTURE(var, p, label)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/dertime.c:36,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/util/dertime.c:42,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/util/dertime.c:44,1
    - Dst: PR_ExplodeTime
      Src: /src/nss/lib/util/dertime.c:52,1
    - Dst: HIDIGIT
      Src: /src/nss/lib/util/dertime.c:61,1
    - Dst: LODIGIT
      Src: /src/nss/lib/util/dertime.c:62,1
    - Dst: HIDIGIT
      Src: /src/nss/lib/util/dertime.c:63,1
    - Dst: LODIGIT
      Src: /src/nss/lib/util/dertime.c:64,1
    - Dst: HIDIGIT
      Src: /src/nss/lib/util/dertime.c:65,1
    - Dst: LODIGIT
      Src: /src/nss/lib/util/dertime.c:66,1
    - Dst: HIDIGIT
      Src: /src/nss/lib/util/dertime.c:67,1
    - Dst: LODIGIT
      Src: /src/nss/lib/util/dertime.c:68,1
    - Dst: HIDIGIT
      Src: /src/nss/lib/util/dertime.c:69,1
    - Dst: LODIGIT
      Src: /src/nss/lib/util/dertime.c:70,1
    - Dst: HIDIGIT
      Src: /src/nss/lib/util/dertime.c:71,1
    - Dst: LODIGIT
      Src: /src/nss/lib/util/dertime.c:72,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 3
    argNames:
    - arenaOpt
    - dst
    - gmttime
    argTypes:
    - PLArenaPool*
    - SECItem*
    - PRTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 75
    functionName: DER_TimeToUTCTimeArena
    functionSourceFile: /src/nss/lib/util/dertime.c
    functionUses: 1
    functionsReached:
    - PORT_Alloc
    - PORT_ArenaAlloc
    - LODIGIT
    - PR_ExplodeTime
    - PORT_SetError
    - HIDIGIT
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus DER_TimeToUTCTimeArena(PLArenaPool *arenaOpt, SECItem *dst,
      PRTime gmttime)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_TimeToUTCTimeArena
      Src: /src/nss/lib/util/dertime.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dst
    - gmttime
    argTypes:
    - SECItem*
    - PRTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: DER_TimeToUTCTime
    functionSourceFile: /src/nss/lib/util/dertime.c
    functionUses: 0
    functionsReached:
    - DER_TimeToUTCTimeArena
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus DER_TimeToUTCTime(SECItem *dst, PRTime gmttime)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: der_TimeStringToTime
      Src: /src/nss/lib/util/dertime.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dst
    - string
    argTypes:
    - PRTime*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: DER_AsciiToTime
    functionSourceFile: /src/nss/lib/util/dertime.c
    functionUses: 4
    functionsReached:
    - der_TimeStringToTime
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus DER_AsciiToTime(PRTime *dst, const char *string)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/dertime.c:117,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/dertime.c:123,1
    - Dst: der_TimeStringToTime
      Src: /src/nss/lib/util/dertime.c:130,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/dertime.c:132,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - dst
    - time
    argTypes:
    - PRTime*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 136
    functionName: DER_UTCTimeToTime
    functionSourceFile: /src/nss/lib/util/dertime.c
    functionUses: 6
    functionsReached:
    - PORT_SetError
    - der_TimeStringToTime
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus DER_UTCTimeToTime(PRTime *dst, const SECItem *time)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/dertime.c:153,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/util/dertime.c:158,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/util/dertime.c:160,1
    - Dst: PR_ExplodeTime
      Src: /src/nss/lib/util/dertime.c:168,1
    - Dst: HIDIGIT
      Src: /src/nss/lib/util/dertime.c:177,1
    - Dst: LODIGIT
      Src: /src/nss/lib/util/dertime.c:178,1
    - Dst: HIDIGIT
      Src: /src/nss/lib/util/dertime.c:179,1
    - Dst: LODIGIT
      Src: /src/nss/lib/util/dertime.c:180,1
    - Dst: HIDIGIT
      Src: /src/nss/lib/util/dertime.c:181,1
    - Dst: LODIGIT
      Src: /src/nss/lib/util/dertime.c:182,1
    - Dst: HIDIGIT
      Src: /src/nss/lib/util/dertime.c:183,1
    - Dst: LODIGIT
      Src: /src/nss/lib/util/dertime.c:184,1
    - Dst: HIDIGIT
      Src: /src/nss/lib/util/dertime.c:185,1
    - Dst: LODIGIT
      Src: /src/nss/lib/util/dertime.c:186,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 3
    argNames:
    - arenaOpt
    - dst
    - gmttime
    argTypes:
    - PLArenaPool*
    - SECItem*
    - PRTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 189
    functionName: DER_TimeToGeneralizedTimeArena
    functionSourceFile: /src/nss/lib/util/dertime.c
    functionUses: 4
    functionsReached:
    - PORT_Alloc
    - PORT_ArenaAlloc
    - LODIGIT
    - PR_ExplodeTime
    - PORT_SetError
    - HIDIGIT
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus DER_TimeToGeneralizedTimeArena(PLArenaPool *arenaOpt, SECItem
      *dst, PRTime gmttime)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_TimeToGeneralizedTimeArena
      Src: /src/nss/lib/util/dertime.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dst
    - gmttime
    argTypes:
    - SECItem*
    - PRTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 195
    functionName: DER_TimeToGeneralizedTime
    functionSourceFile: /src/nss/lib/util/dertime.c
    functionUses: 0
    functionsReached:
    - DER_TimeToGeneralizedTimeArena
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus DER_TimeToGeneralizedTime(SECItem *dst, PRTime gmttime)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/dertime.c:210,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/dertime.c:216,1
    - Dst: der_TimeStringToTime
      Src: /src/nss/lib/util/dertime.c:223,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/dertime.c:225,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - dst
    - time
    argTypes:
    - PRTime*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 229
    functionName: DER_GeneralizedTimeToTime
    functionSourceFile: /src/nss/lib/util/dertime.c
    functionUses: 14
    functionsReached:
    - PORT_SetError
    - der_TimeStringToTime
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus DER_GeneralizedTimeToTime(PRTime *dst, const SECItem *time)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/dertime.c:241,1
    - Dst: memset
      Src: /src/nss/lib/util/dertime.c:246,1
    - Dst: CAPTURE
      Src: /src/nss/lib/util/dertime.c:249,1
    - Dst: CAPTURE
      Src: /src/nss/lib/util/dertime.c:252,1
    - Dst: CAPTURE
      Src: /src/nss/lib/util/dertime.c:253,1
    - Dst: CAPTURE
      Src: /src/nss/lib/util/dertime.c:257,1
    - Dst: CAPTURE
      Src: /src/nss/lib/util/dertime.c:264,1
    - Dst: CAPTURE
      Src: /src/nss/lib/util/dertime.c:268,1
    - Dst: CAPTURE
      Src: /src/nss/lib/util/dertime.c:272,1
    - Dst: ISDIGIT
      Src: /src/nss/lib/util/dertime.c:276,1
    - Dst: CAPTURE
      Src: /src/nss/lib/util/dertime.c:277,1
    - Dst: CAPTURE
      Src: /src/nss/lib/util/dertime.c:283,1
    - Dst: CAPTURE
      Src: /src/nss/lib/util/dertime.c:286,1
    - Dst: PR_ImplodeTime
      Src: /src/nss/lib/util/dertime.c:304,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/dertime.c:308,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 65
    argCount: 4
    argNames:
    - dst
    - string
    - generalized
    - endptr
    argTypes:
    - PRTime*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 310
    functionName: der_TimeStringToTime
    functionSourceFile: /src/nss/lib/util/dertime.c
    functionUses: 3
    functionsReached:
    - PR_ImplodeTime
    - CAPTURE
    - ISDIGIT
    - memset
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus der_TimeStringToTime(PRTime *dst, const char *string, int
      generalized,\n                     const char **endptr)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - len
    argTypes:
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 29
    functionName: DER_LengthLength
    functionSourceFile: /src/nss/lib/util/dersubr.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int DER_LengthLength(PRUint32 len)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 3
    argNames:
    - buf
    - code
    - len
    argTypes:
    - unsigned char*
    - unsigned int
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 71
    functionName: DER_StoreHeader
    functionSourceFile: /src/nss/lib/util/dersubr.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: 'unsigned char *

      DER_StoreHeader(unsigned char *buf, unsigned int code, PRUint32 len)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/util/dersubr.c:115,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/util/dersubr.c:120,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 3
    argNames:
    - arena
    - it
    - i
    argTypes:
    - PLArenaPool*
    - SECItem*
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 122
    functionName: DER_SetInteger
    functionSourceFile: /src/nss/lib/util/dersubr.c
    functionUses: 0
    functionsReached:
    - PORT_ArenaAlloc
    - PORT_Memcpy
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus DER_SetInteger(PLArenaPool *arena, SECItem *it, PRInt32 i)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/util/dersubr.c:162,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/util/dersubr.c:168,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 3
    argNames:
    - arena
    - it
    - ui
    argTypes:
    - PLArenaPool*
    - SECItem*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 171
    functionName: DER_SetUInteger
    functionSourceFile: /src/nss/lib/util/dersubr.c
    functionUses: 5
    functionsReached:
    - PORT_ArenaAlloc
    - PORT_Memcpy
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus DER_SetUInteger(PLArenaPool *arena, SECItem *it, PRUint32
      ui)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/dersubr.c:186,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/dersubr.c:188,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/dersubr.c:203,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - it
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 213
    functionName: DER_GetInteger
    functionSourceFile: /src/nss/lib/util/dersubr.c
    functionUses: 24
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    linkageType: ''
    returnType: long
    signature: long DER_GetInteger(const SECItem *it)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/util/dersubr.c:227,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/dersubr.c:229,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/dersubr.c:235,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/util/dersubr.c:241,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - it
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 249
    functionName: DER_GetUInteger
    functionSourceFile: /src/nss/lib/util/dersubr.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long DER_GetUInteger(SECItem *it)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 181
    functionName: __PASTE
    functionSourceFile: /src/nss/lib/util/pkcs11.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __PASTE(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 199
    functionName: CK_PKCS11_FUNCTION_INFO
    functionSourceFile: /src/nss/lib/util/pkcs11.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CK_PKCS11_FUNCTION_INFO(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 217
    functionName: CK_PKCS11_FUNCTION_INFO
    functionSourceFile: /src/nss/lib/util/pkcs11.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CK_PKCS11_FUNCTION_INFO(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 237
    functionName: CK_PKCS11_FUNCTION_INFO
    functionSourceFile: /src/nss/lib/util/pkcs11.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CK_PKCS11_FUNCTION_INFO(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Alloc_Util
      Src: /src/nss/lib/nss/utilwrap.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 140
    functionName: PORT_Alloc
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 171
    functionsReached:
    - PORT_Alloc_Util
    linkageType: ''
    returnType: void
    signature: 'void *

      PORT_Alloc(size_t bytes)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Realloc_Util
      Src: /src/nss/lib/nss/utilwrap.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - oldptr
    - bytes
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 146
    functionName: PORT_Realloc
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 27
    functionsReached:
    - PORT_Realloc_Util
    linkageType: ''
    returnType: void
    signature: 'void *

      PORT_Realloc(void *oldptr, size_t bytes)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZAlloc_Util
      Src: /src/nss/lib/nss/utilwrap.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 152
    functionName: PORT_ZAlloc
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 87
    functionsReached:
    - PORT_ZAlloc_Util
    linkageType: ''
    returnType: void
    signature: 'void *

      PORT_ZAlloc(size_t bytes)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZAllocAligned_Util
      Src: /src/nss/lib/nss/utilwrap.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bytes
    - alignment
    - mem
    argTypes:
    - size_t
    - size_t
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 158
    functionName: PORT_ZAllocAligned
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 1
    functionsReached:
    - PORT_ZAllocAligned_Util
    linkageType: ''
    returnType: void
    signature: 'void *

      PORT_ZAllocAligned(size_t bytes, size_t alignment, void **mem)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZAllocAlignedOffset_Util
      Src: /src/nss/lib/nss/utilwrap.c:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bytes
    - alignment
    - offset
    argTypes:
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 164
    functionName: PORT_ZAllocAlignedOffset
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 0
    functionsReached:
    - PORT_ZAllocAlignedOffset_Util
    linkageType: ''
    returnType: void
    signature: 'void *

      PORT_ZAllocAlignedOffset(size_t bytes, size_t alignment, size_t offset)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Free_Util
      Src: /src/nss/lib/nss/utilwrap.c:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 170
    functionName: PORT_Free
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 563
    functionsReached:
    - PORT_Free_Util
    linkageType: ''
    returnType: void
    signature: void PORT_Free(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZFree_Util
      Src: /src/nss/lib/nss/utilwrap.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 176
    functionName: PORT_ZFree
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 67
    functionsReached:
    - PORT_ZFree_Util
    linkageType: ''
    returnType: void
    signature: void PORT_ZFree(void *ptr, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strdup_Util
      Src: /src/nss/lib/nss/utilwrap.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 182
    functionName: PORT_Strdup
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 88
    functionsReached:
    - PORT_Strdup_Util
    linkageType: ''
    returnType: char
    signature: 'char *

      PORT_Strdup(const char *str)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError_Util
      Src: /src/nss/lib/nss/utilwrap.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 188
    functionName: PORT_SetError
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 1378
    functionsReached:
    - PORT_SetError_Util
    linkageType: ''
    returnType: void
    signature: void PORT_SetError(int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_GetError_Util
      Src: /src/nss/lib/nss/utilwrap.c:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 194
    functionName: PORT_GetError
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 186
    functionsReached:
    - PORT_GetError_Util
    linkageType: ''
    returnType: int
    signature: int PORT_GetError(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena_Util
      Src: /src/nss/lib/nss/utilwrap.c:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - chunksize
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 200
    functionName: PORT_NewArena
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 258
    functionsReached:
    - PORT_NewArena_Util
    linkageType: ''
    returnType: PLArenaPool
    signature: 'PLArenaPool *

      PORT_NewArena(unsigned long chunksize)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaAlloc_Util
      Src: /src/nss/lib/nss/utilwrap.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - arena
    - size
    argTypes:
    - PLArenaPool*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 206
    functionName: PORT_ArenaAlloc
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 92
    functionsReached:
    - PORT_ArenaAlloc_Util
    linkageType: ''
    returnType: void
    signature: 'void *

      PORT_ArenaAlloc(PLArenaPool *arena, size_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaZAlloc_Util
      Src: /src/nss/lib/nss/utilwrap.c:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - arena
    - size
    argTypes:
    - PLArenaPool*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 212
    functionName: PORT_ArenaZAlloc
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 131
    functionsReached:
    - PORT_ArenaZAlloc_Util
    linkageType: ''
    returnType: void
    signature: 'void *

      PORT_ArenaZAlloc(PLArenaPool *arena, size_t size)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_FreeArena_Util
      Src: /src/nss/lib/nss/utilwrap.c:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - arena
    - zero
    argTypes:
    - PLArenaPool*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 218
    functionName: PORT_FreeArena
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 333
    functionsReached:
    - PORT_FreeArena_Util
    linkageType: ''
    returnType: void
    signature: void PORT_FreeArena(PLArenaPool *arena, PRBool zero)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaGrow_Util
      Src: /src/nss/lib/nss/utilwrap.c:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - arena
    - ptr
    - oldsize
    - newsize
    argTypes:
    - PLArenaPool*
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 224
    functionName: PORT_ArenaGrow
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 21
    functionsReached:
    - PORT_ArenaGrow_Util
    linkageType: ''
    returnType: void
    signature: 'void *

      PORT_ArenaGrow(PLArenaPool *arena, void *ptr, size_t oldsize, size_t newsize)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark_Util
      Src: /src/nss/lib/nss/utilwrap.c:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arena
    argTypes:
    - PLArenaPool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 230
    functionName: PORT_ArenaMark
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 109
    functionsReached:
    - PORT_ArenaMark_Util
    linkageType: ''
    returnType: void
    signature: 'void *

      PORT_ArenaMark(PLArenaPool *arena)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaRelease_Util
      Src: /src/nss/lib/nss/utilwrap.c:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - arena
    - mark
    argTypes:
    - PLArenaPool*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 236
    functionName: PORT_ArenaRelease
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 109
    functionsReached:
    - PORT_ArenaRelease_Util
    linkageType: ''
    returnType: void
    signature: void PORT_ArenaRelease(PLArenaPool *arena, void *mark)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaUnmark_Util
      Src: /src/nss/lib/nss/utilwrap.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - arena
    - mark
    argTypes:
    - PLArenaPool*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 242
    functionName: PORT_ArenaUnmark
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 98
    functionsReached:
    - PORT_ArenaUnmark_Util
    linkageType: ''
    returnType: void
    signature: void PORT_ArenaUnmark(PLArenaPool *arena, void *mark)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaStrdup_Util
      Src: /src/nss/lib/nss/utilwrap.c:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - arena
    - str
    argTypes:
    - PLArenaPool*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 248
    functionName: PORT_ArenaStrdup
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 15
    functionsReached:
    - PORT_ArenaStrdup_Util
    linkageType: ''
    returnType: char
    signature: 'char *

      PORT_ArenaStrdup(PLArenaPool *arena, const char *str)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetUCS4_UTF8ConversionFunction_Util
      Src: /src/nss/lib/nss/utilwrap.c:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - convFunc
    argTypes:
    - PORTCharConversionFunc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 254
    functionName: PORT_SetUCS4_UTF8ConversionFunction
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 0
    functionsReached:
    - PORT_SetUCS4_UTF8ConversionFunction_Util
    linkageType: ''
    returnType: void
    signature: void PORT_SetUCS4_UTF8ConversionFunction(PORTCharConversionFunc convFunc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetUCS2_ASCIIConversionFunction_Util
      Src: /src/nss/lib/nss/utilwrap.c:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - convFunc
    argTypes:
    - PORTCharConversionWSwapFunc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 260
    functionName: PORT_SetUCS2_ASCIIConversionFunction
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 1
    functionsReached:
    - PORT_SetUCS2_ASCIIConversionFunction_Util
    linkageType: ''
    returnType: void
    signature: void PORT_SetUCS2_ASCIIConversionFunction(PORTCharConversionWSwapFunc
      convFunc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetUCS2_UTF8ConversionFunction_Util
      Src: /src/nss/lib/nss/utilwrap.c:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - convFunc
    argTypes:
    - PORTCharConversionFunc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 266
    functionName: PORT_SetUCS2_UTF8ConversionFunction
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 0
    functionsReached:
    - PORT_SetUCS2_UTF8ConversionFunction_Util
    linkageType: ''
    returnType: void
    signature: void PORT_SetUCS2_UTF8ConversionFunction(PORTCharConversionFunc convFunc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_UCS2_UTF8Conversion_Util
      Src: /src/nss/lib/nss/utilwrap.c:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - toUnicode
    - inBuf
    - inBufLen
    - outBuf
    - maxOutBufLen
    - outBufLen
    argTypes:
    - PRBool
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 275
    functionName: PORT_UCS2_UTF8Conversion
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 5
    functionsReached:
    - PORT_UCS2_UTF8Conversion_Util
    linkageType: ''
    returnType: PRBool
    signature: "PRBool PORT_UCS2_UTF8Conversion(PRBool toUnicode, unsigned char *inBuf,\n
      \                        unsigned int inBufLen, unsigned char *outBuf,\n                         unsigned
      int maxOutBufLen, unsigned int *outBufLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_UCS2_ASCIIConversion_Util
      Src: /src/nss/lib/nss/utilwrap.c:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - toUnicode
    - inBuf
    - inBufLen
    - outBuf
    - maxOutBufLen
    - outBufLen
    - swapBytes
    argTypes:
    - PRBool
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned int*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 285
    functionName: PORT_UCS2_ASCIIConversion
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 3
    functionsReached:
    - PORT_UCS2_ASCIIConversion_Util
    linkageType: ''
    returnType: PRBool
    signature: "PRBool PORT_UCS2_ASCIIConversion(PRBool toUnicode, unsigned char *inBuf,\n
      \                         unsigned int inBufLen, unsigned char *outBuf,\n                          unsigned
      int maxOutBufLen, unsigned int *outBufLen,\n                          PRBool
      swapBytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSS_PutEnv_Util
      Src: /src/nss/lib/nss/utilwrap.c:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - envVarName
    - envValue
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 291
    functionName: NSS_PutEnv
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 1
    functionsReached:
    - NSS_PutEnv_Util
    linkageType: ''
    returnType: int
    signature: int NSS_PutEnv(const char *envVarName, const char *envValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOID_Util
      Src: /src/nss/lib/nss/utilwrap.c:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - oid
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 297
    functionName: SECOID_FindOID
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 30
    functionsReached:
    - SECOID_FindOID_Util
    linkageType: ''
    returnType: SECOidData
    signature: 'SECOidData *

      SECOID_FindOID(const SECItem *oid)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOIDTag_Util
      Src: /src/nss/lib/nss/utilwrap.c:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - oid
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 303
    functionName: SECOID_FindOIDTag
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 49
    functionsReached:
    - SECOID_FindOIDTag_Util
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag SECOID_FindOIDTag(const SECItem *oid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOIDByTag_Util
      Src: /src/nss/lib/nss/utilwrap.c:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tagnum
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 309
    functionName: SECOID_FindOIDByTag
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 56
    functionsReached:
    - SECOID_FindOIDByTag_Util
    linkageType: ''
    returnType: SECOidData
    signature: 'SECOidData *

      SECOID_FindOIDByTag(SECOidTag tagnum)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_SetAlgorithmID_Util
      Src: /src/nss/lib/nss/utilwrap.c:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - arena
    - aid
    - tag
    - params
    argTypes:
    - PLArenaPool*
    - SECAlgorithmID*
    - SECOidTag
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 316
    functionName: SECOID_SetAlgorithmID
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 28
    functionsReached:
    - SECOID_SetAlgorithmID_Util
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SECOID_SetAlgorithmID(PLArenaPool *arena, SECAlgorithmID
      *aid,\n                      SECOidTag tag, SECItem *params)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_CopyAlgorithmID_Util
      Src: /src/nss/lib/nss/utilwrap.c:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - arena
    - dest
    - src
    argTypes:
    - PLArenaPool*
    - SECAlgorithmID*
    - SECAlgorithmID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 323
    functionName: SECOID_CopyAlgorithmID
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 18
    functionsReached:
    - SECOID_CopyAlgorithmID_Util
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SECOID_CopyAlgorithmID(PLArenaPool *arena, SECAlgorithmID
      *dest,\n                       const SECAlgorithmID *src)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_GetAlgorithmTag_Util
      Src: /src/nss/lib/nss/utilwrap.c:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aid
    argTypes:
    - SECAlgorithmID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 329
    functionName: SECOID_GetAlgorithmTag
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 63
    functionsReached:
    - SECOID_GetAlgorithmTag_Util
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag SECOID_GetAlgorithmTag(const SECAlgorithmID *aid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_DestroyAlgorithmID_Util
      Src: /src/nss/lib/nss/utilwrap.c:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - aid
    - freeit
    argTypes:
    - SECAlgorithmID*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 335
    functionName: SECOID_DestroyAlgorithmID
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 20
    functionsReached:
    - SECOID_DestroyAlgorithmID_Util
    linkageType: ''
    returnType: void
    signature: void SECOID_DestroyAlgorithmID(SECAlgorithmID *aid, PRBool freeit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_CompareAlgorithmID_Util
      Src: /src/nss/lib/nss/utilwrap.c:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - SECAlgorithmID*
    - SECAlgorithmID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 342
    functionName: SECOID_CompareAlgorithmID
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 4
    functionsReached:
    - SECOID_CompareAlgorithmID_Util
    linkageType: ''
    returnType: SECComparison
    signature: "SECComparison SECOID_CompareAlgorithmID(SECAlgorithmID *a,\n                          SECAlgorithmID
      *b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOIDTagDescription_Util
      Src: /src/nss/lib/nss/utilwrap.c:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tagnum
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 348
    functionName: SECOID_FindOIDTagDescription
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 5
    functionsReached:
    - SECOID_FindOIDTagDescription_Util
    linkageType: ''
    returnType: char
    signature: 'char *

      SECOID_FindOIDTagDescription(SECOidTag tagnum)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_AddEntry_Util
      Src: /src/nss/lib/nss/utilwrap.c:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - SECOidData*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 354
    functionName: SECOID_AddEntry
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 3
    functionsReached:
    - SECOID_AddEntry_Util
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag SECOID_AddEntry(const SECOidData *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_AllocItem_Util
      Src: /src/nss/lib/nss/utilwrap.c:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - arena
    - item
    - len
    argTypes:
    - PLArenaPool*
    - SECItem*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 361
    functionName: SECITEM_AllocItem
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 98
    functionsReached:
    - SECITEM_AllocItem_Util
    linkageType: ''
    returnType: SECItem
    signature: "SECItem *\nSECITEM_AllocItem(PLArenaPool *arena, SECItem *item,\n
      \                 unsigned int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_CompareItem_Util
      Src: /src/nss/lib/nss/utilwrap.c:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 367
    functionName: SECITEM_CompareItem
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 49
    functionsReached:
    - SECITEM_CompareItem_Util
    linkageType: ''
    returnType: SECComparison
    signature: SECComparison SECITEM_CompareItem(const SECItem *a, const SECItem *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_ItemsAreEqual_Util
      Src: /src/nss/lib/nss/utilwrap.c:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 373
    functionName: SECITEM_ItemsAreEqual
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 21
    functionsReached:
    - SECITEM_ItemsAreEqual_Util
    linkageType: ''
    returnType: PRBool
    signature: PRBool SECITEM_ItemsAreEqual(const SECItem *a, const SECItem *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_CopyItem_Util
      Src: /src/nss/lib/nss/utilwrap.c:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - arena
    - to
    - from
    argTypes:
    - PLArenaPool*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 380
    functionName: SECITEM_CopyItem
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 192
    functionsReached:
    - SECITEM_CopyItem_Util
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SECITEM_CopyItem(PLArenaPool *arena, SECItem *to,\n                 const
      SECItem *from)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_DupItem_Util
      Src: /src/nss/lib/nss/utilwrap.c:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - from
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 386
    functionName: SECITEM_DupItem
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 39
    functionsReached:
    - SECITEM_DupItem_Util
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      SECITEM_DupItem(const SECItem *from)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_ArenaDupItem_Util
      Src: /src/nss/lib/nss/utilwrap.c:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - arena
    - from
    argTypes:
    - PLArenaPool*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 392
    functionName: SECITEM_ArenaDupItem
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 19
    functionsReached:
    - SECITEM_ArenaDupItem_Util
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      SECITEM_ArenaDupItem(PLArenaPool *arena, const SECItem *from)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_FreeItem_Util
      Src: /src/nss/lib/nss/utilwrap.c:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - zap
    - freeit
    argTypes:
    - SECItem*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 398
    functionName: SECITEM_FreeItem
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 277
    functionsReached:
    - SECITEM_FreeItem_Util
    linkageType: ''
    returnType: void
    signature: void SECITEM_FreeItem(SECItem *zap, PRBool freeit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_ZfreeItem_Util
      Src: /src/nss/lib/nss/utilwrap.c:403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - zap
    - freeit
    argTypes:
    - SECItem*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 404
    functionName: SECITEM_ZfreeItem
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 84
    functionsReached:
    - SECITEM_ZfreeItem_Util
    linkageType: ''
    returnType: void
    signature: void SECITEM_ZfreeItem(SECItem *zap, PRBool freeit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SGN_CreateDigestInfo_Util
      Src: /src/nss/lib/nss/utilwrap.c:411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - algorithm
    - sig
    - sigLen
    argTypes:
    - SECOidTag
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 412
    functionName: SGN_CreateDigestInfo
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 4
    functionsReached:
    - SGN_CreateDigestInfo_Util
    linkageType: ''
    returnType: SGNDigestInfo
    signature: "SGNDigestInfo *\nSGN_CreateDigestInfo(SECOidTag algorithm,\n                     unsigned
      char *sig,\n                     unsigned int sigLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SGN_DestroyDigestInfo_Util
      Src: /src/nss/lib/nss/utilwrap.c:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - info
    argTypes:
    - SGNDigestInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 418
    functionName: SGN_DestroyDigestInfo
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 10
    functionsReached:
    - SGN_DestroyDigestInfo_Util
    linkageType: ''
    returnType: void
    signature: void SGN_DestroyDigestInfo(SGNDigestInfo *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SGN_CopyDigestInfo_Util
      Src: /src/nss/lib/nss/utilwrap.c:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - poolp
    - a
    - b
    argTypes:
    - PLArenaPool*
    - SGNDigestInfo*
    - SGNDigestInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 426
    functionName: SGN_CopyDigestInfo
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 4
    functionsReached:
    - SGN_CopyDigestInfo_Util
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SGN_CopyDigestInfo(PLArenaPool *poolp,\n                   SGNDigestInfo
      *a,\n                   SGNDigestInfo *b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SGN_CompareDigestInfo_Util
      Src: /src/nss/lib/nss/utilwrap.c:431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - SGNDigestInfo*
    - SGNDigestInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 432
    functionName: SGN_CompareDigestInfo
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 2
    functionsReached:
    - SGN_CompareDigestInfo_Util
    linkageType: ''
    returnType: SECComparison
    signature: SECComparison SGN_CompareDigestInfo(SGNDigestInfo *a, SGNDigestInfo
      *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_Encode_Util
      Src: /src/nss/lib/nss/utilwrap.c:438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - arena
    - dest
    - t
    - src
    argTypes:
    - PLArenaPool*
    - SECItem*
    - DERTemplate*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 439
    functionName: DER_Encode
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 3
    functionsReached:
    - DER_Encode_Util
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus DER_Encode(PLArenaPool *arena, SECItem *dest, DERTemplate
      *t,\n           void *src)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_Lengths_Util
      Src: /src/nss/lib/nss/utilwrap.c:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - item
    - header_len_p
    - contents_len_p
    argTypes:
    - SECItem*
    - int*
    - PRUint32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 446
    functionName: DER_Lengths
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 0
    functionsReached:
    - DER_Lengths_Util
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus DER_Lengths(SECItem *item, int *header_len_p,\n            PRUint32
      *contents_len_p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_GetInteger_Util
      Src: /src/nss/lib/nss/utilwrap.c:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 452
    functionName: DER_GetInteger
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 24
    functionsReached:
    - DER_GetInteger_Util
    linkageType: ''
    returnType: long
    signature: long DER_GetInteger(const SECItem *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_TimeToUTCTime_Util
      Src: /src/nss/lib/nss/utilwrap.c:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - result
    - time
    argTypes:
    - SECItem*
    - PRTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 458
    functionName: DER_TimeToUTCTime
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 0
    functionsReached:
    - DER_TimeToUTCTime_Util
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus DER_TimeToUTCTime(SECItem *result, PRTime time)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_AsciiToTime_Util
      Src: /src/nss/lib/nss/utilwrap.c:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - result
    - string
    argTypes:
    - PRTime*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 464
    functionName: DER_AsciiToTime
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 4
    functionsReached:
    - DER_AsciiToTime_Util
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus DER_AsciiToTime(PRTime *result, const char *string)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_UTCTimeToTime_Util
      Src: /src/nss/lib/nss/utilwrap.c:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - result
    - time
    argTypes:
    - PRTime*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 470
    functionName: DER_UTCTimeToTime
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 6
    functionsReached:
    - DER_UTCTimeToTime_Util
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus DER_UTCTimeToTime(PRTime *result, const SECItem *time)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_UTCTimeToAscii_Util
      Src: /src/nss/lib/nss/utilwrap.c:475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - utcTime
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 476
    functionName: DER_UTCTimeToAscii
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 0
    functionsReached:
    - DER_UTCTimeToAscii_Util
    linkageType: ''
    returnType: char
    signature: 'char *

      DER_UTCTimeToAscii(SECItem *utcTime)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_UTCDayToAscii_Util
      Src: /src/nss/lib/nss/utilwrap.c:481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - utctime
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 482
    functionName: DER_UTCDayToAscii
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 1
    functionsReached:
    - DER_UTCDayToAscii_Util
    linkageType: ''
    returnType: char
    signature: 'char *

      DER_UTCDayToAscii(SECItem *utctime)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_GeneralizedDayToAscii_Util
      Src: /src/nss/lib/nss/utilwrap.c:487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gentime
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 488
    functionName: DER_GeneralizedDayToAscii
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 1
    functionsReached:
    - DER_GeneralizedDayToAscii_Util
    linkageType: ''
    returnType: char
    signature: 'char *

      DER_GeneralizedDayToAscii(SECItem *gentime)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_TimeChoiceDayToAscii_Util
      Src: /src/nss/lib/nss/utilwrap.c:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - timechoice
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 494
    functionName: DER_TimeChoiceDayToAscii
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 1
    functionsReached:
    - DER_TimeChoiceDayToAscii_Util
    linkageType: ''
    returnType: char
    signature: 'char *

      DER_TimeChoiceDayToAscii(SECItem *timechoice)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_TimeToGeneralizedTime_Util
      Src: /src/nss/lib/nss/utilwrap.c:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dst
    - gmttime
    argTypes:
    - SECItem*
    - PRTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 496
    functionDepth: 0
    functionLinenumber: 496
    functionLinenumberEnd: 500
    functionName: DER_TimeToGeneralizedTime
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 0
    functionsReached:
    - DER_TimeToGeneralizedTime_Util
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus DER_TimeToGeneralizedTime(SECItem *dst, PRTime gmttime)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_TimeToGeneralizedTimeArena_Util
      Src: /src/nss/lib/nss/utilwrap.c:506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - arenaOpt
    - dst
    - gmttime
    argTypes:
    - PLArenaPool*
    - SECItem*
    - PRTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 507
    functionName: DER_TimeToGeneralizedTimeArena
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 5
    functionsReached:
    - DER_TimeToGeneralizedTimeArena_Util
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus DER_TimeToGeneralizedTimeArena(PLArenaPool *arenaOpt,\n
      \                              SECItem *dst, PRTime gmttime)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_GeneralizedTimeToTime_Util
      Src: /src/nss/lib/nss/utilwrap.c:512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dst
    - time
    argTypes:
    - PRTime*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 513
    functionName: DER_GeneralizedTimeToTime
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 14
    functionsReached:
    - DER_GeneralizedTimeToTime_Util
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus DER_GeneralizedTimeToTime(PRTime *dst, const SECItem *time)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CERT_GenTime2FormattedAscii_Util
      Src: /src/nss/lib/nss/utilwrap.c:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - genTime
    - format
    argTypes:
    - PRTime
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 519
    functionName: CERT_GenTime2FormattedAscii
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 2
    functionsReached:
    - CERT_GenTime2FormattedAscii_Util
    linkageType: ''
    returnType: char
    signature: 'char *

      CERT_GenTime2FormattedAscii(PRTime genTime, char *format)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_DecodeTimeChoice_Util
      Src: /src/nss/lib/nss/utilwrap.c:524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - output
    - input
    argTypes:
    - PRTime*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 525
    functionName: DER_DecodeTimeChoice
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 16
    functionsReached:
    - DER_DecodeTimeChoice_Util
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus DER_DecodeTimeChoice(PRTime *output, const SECItem *input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_EncodeTimeChoice_Util
      Src: /src/nss/lib/nss/utilwrap.c:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - arena
    - output
    - input
    argTypes:
    - PLArenaPool*
    - SECItem*
    - PRTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 527
    functionDepth: 0
    functionLinenumber: 527
    functionLinenumberEnd: 532
    functionName: DER_EncodeTimeChoice
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 7
    functionsReached:
    - DER_EncodeTimeChoice_Util
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus DER_EncodeTimeChoice(PLArenaPool *arena, SECItem *output,\n
      \                    PRTime input)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1DecoderStart_Util
      Src: /src/nss/lib/nss/utilwrap.c:539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pool
    - dest
    - t
    argTypes:
    - PLArenaPool*
    - void*
    - SEC_ASN1Template*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 540
    functionName: SEC_ASN1DecoderStart
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 7
    functionsReached:
    - SEC_ASN1DecoderStart_Util
    linkageType: ''
    returnType: SEC_ASN1DecoderContext
    signature: "SEC_ASN1DecoderContext *\nSEC_ASN1DecoderStart(PLArenaPool *pool,\n
      \                    void *dest,\n                     const SEC_ASN1Template
      *t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1DecoderUpdate_Util
      Src: /src/nss/lib/nss/utilwrap.c:547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cx
    - buf
    - len
    argTypes:
    - SEC_ASN1DecoderContext*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 548
    functionName: SEC_ASN1DecoderUpdate
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 8
    functionsReached:
    - SEC_ASN1DecoderUpdate_Util
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SEC_ASN1DecoderUpdate(SEC_ASN1DecoderContext *cx,\n                      const
      char *buf,\n                      unsigned long len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1DecoderFinish_Util
      Src: /src/nss/lib/nss/utilwrap.c:553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cx
    argTypes:
    - SEC_ASN1DecoderContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 550
    functionDepth: 0
    functionLinenumber: 550
    functionLinenumberEnd: 554
    functionName: SEC_ASN1DecoderFinish
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 13
    functionsReached:
    - SEC_ASN1DecoderFinish_Util
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SEC_ASN1DecoderFinish(SEC_ASN1DecoderContext *cx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1DecoderAbort_Util
      Src: /src/nss/lib/nss/utilwrap.c:559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cx
    - error
    argTypes:
    - SEC_ASN1DecoderContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 560
    functionName: SEC_ASN1DecoderAbort
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 0
    functionsReached:
    - SEC_ASN1DecoderAbort_Util
    linkageType: ''
    returnType: void
    signature: void SEC_ASN1DecoderAbort(SEC_ASN1DecoderContext *cx, int error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1DecoderSetFilterProc_Util
      Src: /src/nss/lib/nss/utilwrap.c:567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - cx
    - fn
    - arg
    - no_store
    argTypes:
    - SEC_ASN1DecoderContext*
    - SEC_ASN1WriteProc
    - void*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 568
    functionName: SEC_ASN1DecoderSetFilterProc
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 5
    functionsReached:
    - SEC_ASN1DecoderSetFilterProc_Util
    linkageType: ''
    returnType: void
    signature: "void SEC_ASN1DecoderSetFilterProc(SEC_ASN1DecoderContext *cx,\n                             SEC_ASN1WriteProc
      fn,\n                             void *arg, PRBool no_store)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1DecoderClearFilterProc_Util
      Src: /src/nss/lib/nss/utilwrap.c:573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cx
    argTypes:
    - SEC_ASN1DecoderContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 574
    functionName: SEC_ASN1DecoderClearFilterProc
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 5
    functionsReached:
    - SEC_ASN1DecoderClearFilterProc_Util
    linkageType: ''
    returnType: void
    signature: void SEC_ASN1DecoderClearFilterProc(SEC_ASN1DecoderContext *cx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1DecoderSetNotifyProc_Util
      Src: /src/nss/lib/nss/utilwrap.c:581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cx
    - fn
    - arg
    argTypes:
    - SEC_ASN1DecoderContext*
    - SEC_ASN1NotifyProc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 576
    functionDepth: 0
    functionLinenumber: 576
    functionLinenumberEnd: 582
    functionName: SEC_ASN1DecoderSetNotifyProc
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 7
    functionsReached:
    - SEC_ASN1DecoderSetNotifyProc_Util
    linkageType: ''
    returnType: void
    signature: "void SEC_ASN1DecoderSetNotifyProc(SEC_ASN1DecoderContext *cx,\n                             SEC_ASN1NotifyProc
      fn,\n                             void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1DecoderClearNotifyProc_Util
      Src: /src/nss/lib/nss/utilwrap.c:587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cx
    argTypes:
    - SEC_ASN1DecoderContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 588
    functionName: SEC_ASN1DecoderClearNotifyProc
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 3
    functionsReached:
    - SEC_ASN1DecoderClearNotifyProc_Util
    linkageType: ''
    returnType: void
    signature: void SEC_ASN1DecoderClearNotifyProc(SEC_ASN1DecoderContext *cx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1Decode_Util
      Src: /src/nss/lib/nss/utilwrap.c:595,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - pool
    - dest
    - t
    - buf
    - len
    argTypes:
    - PLArenaPool*
    - void*
    - SEC_ASN1Template*
    - char*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 596
    functionName: SEC_ASN1Decode
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 11
    functionsReached:
    - SEC_ASN1Decode_Util
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SEC_ASN1Decode(PLArenaPool *pool, void *dest,\n               const
      SEC_ASN1Template *t,\n               const char *buf, long len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1DecodeItem_Util
      Src: /src/nss/lib/nss/utilwrap.c:603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pool
    - dest
    - t
    - src
    argTypes:
    - PLArenaPool*
    - void*
    - SEC_ASN1Template*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 604
    functionName: SEC_ASN1DecodeItem
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 32
    functionsReached:
    - SEC_ASN1DecodeItem_Util
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SEC_ASN1DecodeItem(PLArenaPool *pool, void *dest,\n                   const
      SEC_ASN1Template *t,\n                   const SECItem *src)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SEC_QuickDERDecodeItem_Util
      Src: /src/nss/lib/nss/utilwrap.c:611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - arena
    - dest
    - templateEntry
    - src
    argTypes:
    - PLArenaPool*
    - void*
    - SEC_ASN1Template*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 606
    functionDepth: 0
    functionLinenumber: 606
    functionLinenumberEnd: 612
    functionName: SEC_QuickDERDecodeItem
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 70
    functionsReached:
    - SEC_QuickDERDecodeItem_Util
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SEC_QuickDERDecodeItem(PLArenaPool *arena, void *dest,\n
      \                      const SEC_ASN1Template *templateEntry,\n                       const
      SECItem *src)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1EncoderStart_Util
      Src: /src/nss/lib/nss/utilwrap.c:620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - src
    - t
    - fn
    - output_arg
    argTypes:
    - void*
    - SEC_ASN1Template*
    - SEC_ASN1WriteProc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 614
    functionDepth: 0
    functionLinenumber: 614
    functionLinenumberEnd: 621
    functionName: SEC_ASN1EncoderStart
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 5
    functionsReached:
    - SEC_ASN1EncoderStart_Util
    linkageType: ''
    returnType: SEC_ASN1EncoderContext
    signature: "SEC_ASN1EncoderContext *\nSEC_ASN1EncoderStart(const void *src,\n
      \                    const SEC_ASN1Template *t,\n                     SEC_ASN1WriteProc
      fn,\n                     void *output_arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1EncoderUpdate_Util
      Src: /src/nss/lib/nss/utilwrap.c:628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cx
    - buf
    - len
    argTypes:
    - SEC_ASN1EncoderContext*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 623
    functionDepth: 0
    functionLinenumber: 623
    functionLinenumberEnd: 629
    functionName: SEC_ASN1EncoderUpdate
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 9
    functionsReached:
    - SEC_ASN1EncoderUpdate_Util
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SEC_ASN1EncoderUpdate(SEC_ASN1EncoderContext *cx,\n                      const
      char *buf,\n                      unsigned long len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1EncoderFinish_Util
      Src: /src/nss/lib/nss/utilwrap.c:634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cx
    argTypes:
    - SEC_ASN1EncoderContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 631
    functionDepth: 0
    functionLinenumber: 631
    functionLinenumberEnd: 635
    functionName: SEC_ASN1EncoderFinish
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 7
    functionsReached:
    - SEC_ASN1EncoderFinish_Util
    linkageType: ''
    returnType: void
    signature: void SEC_ASN1EncoderFinish(SEC_ASN1EncoderContext *cx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1EncoderAbort_Util
      Src: /src/nss/lib/nss/utilwrap.c:640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cx
    - error
    argTypes:
    - SEC_ASN1EncoderContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 637
    functionDepth: 0
    functionLinenumber: 637
    functionLinenumberEnd: 641
    functionName: SEC_ASN1EncoderAbort
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 0
    functionsReached:
    - SEC_ASN1EncoderAbort_Util
    linkageType: ''
    returnType: void
    signature: void SEC_ASN1EncoderAbort(SEC_ASN1EncoderContext *cx, int error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1EncoderSetNotifyProc_Util
      Src: /src/nss/lib/nss/utilwrap.c:648,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cx
    - fn
    - arg
    argTypes:
    - SEC_ASN1EncoderContext*
    - SEC_ASN1NotifyProc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 643
    functionDepth: 0
    functionLinenumber: 643
    functionLinenumberEnd: 649
    functionName: SEC_ASN1EncoderSetNotifyProc
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 3
    functionsReached:
    - SEC_ASN1EncoderSetNotifyProc_Util
    linkageType: ''
    returnType: void
    signature: "void SEC_ASN1EncoderSetNotifyProc(SEC_ASN1EncoderContext *cx,\n                             SEC_ASN1NotifyProc
      fn,\n                             void *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1EncoderClearNotifyProc_Util
      Src: /src/nss/lib/nss/utilwrap.c:654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cx
    argTypes:
    - SEC_ASN1EncoderContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 651
    functionDepth: 0
    functionLinenumber: 651
    functionLinenumberEnd: 655
    functionName: SEC_ASN1EncoderClearNotifyProc
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 2
    functionsReached:
    - SEC_ASN1EncoderClearNotifyProc_Util
    linkageType: ''
    returnType: void
    signature: void SEC_ASN1EncoderClearNotifyProc(SEC_ASN1EncoderContext *cx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1EncoderSetStreaming_Util
      Src: /src/nss/lib/nss/utilwrap.c:660,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cx
    argTypes:
    - SEC_ASN1EncoderContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 657
    functionDepth: 0
    functionLinenumber: 657
    functionLinenumberEnd: 661
    functionName: SEC_ASN1EncoderSetStreaming
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 4
    functionsReached:
    - SEC_ASN1EncoderSetStreaming_Util
    linkageType: ''
    returnType: void
    signature: void SEC_ASN1EncoderSetStreaming(SEC_ASN1EncoderContext *cx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1EncoderClearStreaming_Util
      Src: /src/nss/lib/nss/utilwrap.c:666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cx
    argTypes:
    - SEC_ASN1EncoderContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 663
    functionDepth: 0
    functionLinenumber: 663
    functionLinenumberEnd: 667
    functionName: SEC_ASN1EncoderClearStreaming
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 3
    functionsReached:
    - SEC_ASN1EncoderClearStreaming_Util
    linkageType: ''
    returnType: void
    signature: void SEC_ASN1EncoderClearStreaming(SEC_ASN1EncoderContext *cx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1EncoderSetTakeFromBuf_Util
      Src: /src/nss/lib/nss/utilwrap.c:672,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cx
    argTypes:
    - SEC_ASN1EncoderContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 673
    functionName: SEC_ASN1EncoderSetTakeFromBuf
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 3
    functionsReached:
    - SEC_ASN1EncoderSetTakeFromBuf_Util
    linkageType: ''
    returnType: void
    signature: void SEC_ASN1EncoderSetTakeFromBuf(SEC_ASN1EncoderContext *cx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1EncoderClearTakeFromBuf_Util
      Src: /src/nss/lib/nss/utilwrap.c:678,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cx
    argTypes:
    - SEC_ASN1EncoderContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 675
    functionDepth: 0
    functionLinenumber: 675
    functionLinenumberEnd: 679
    functionName: SEC_ASN1EncoderClearTakeFromBuf
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 3
    functionsReached:
    - SEC_ASN1EncoderClearTakeFromBuf_Util
    linkageType: ''
    returnType: void
    signature: void SEC_ASN1EncoderClearTakeFromBuf(SEC_ASN1EncoderContext *cx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1Encode_Util
      Src: /src/nss/lib/nss/utilwrap.c:686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - src
    - t
    - output_proc
    - output_arg
    argTypes:
    - void*
    - SEC_ASN1Template*
    - SEC_ASN1WriteProc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 681
    functionDepth: 0
    functionLinenumber: 681
    functionLinenumberEnd: 687
    functionName: SEC_ASN1Encode
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 8
    functionsReached:
    - SEC_ASN1Encode_Util
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SEC_ASN1Encode(const void *src, const SEC_ASN1Template *t,\n
      \              SEC_ASN1WriteProc output_proc,\n               void *output_arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1EncodeItem_Util
      Src: /src/nss/lib/nss/utilwrap.c:693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pool
    - dest
    - src
    - t
    argTypes:
    - PLArenaPool*
    - SECItem*
    - void*
    - SEC_ASN1Template*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 689
    functionDepth: 0
    functionLinenumber: 689
    functionLinenumberEnd: 694
    functionName: SEC_ASN1EncodeItem
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 80
    functionsReached:
    - SEC_ASN1EncodeItem_Util
    linkageType: ''
    returnType: SECItem
    signature: "SECItem *\nSEC_ASN1EncodeItem(PLArenaPool *pool, SECItem *dest,\n
      \                  const void *src, const SEC_ASN1Template *t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1EncodeInteger_Util
      Src: /src/nss/lib/nss/utilwrap.c:700,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pool
    - dest
    - value
    argTypes:
    - PLArenaPool*
    - SECItem*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 696
    functionDepth: 0
    functionLinenumber: 696
    functionLinenumberEnd: 701
    functionName: SEC_ASN1EncodeInteger
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 31
    functionsReached:
    - SEC_ASN1EncodeInteger_Util
    linkageType: ''
    returnType: SECItem
    signature: "SECItem *\nSEC_ASN1EncodeInteger(PLArenaPool *pool,\n                      SECItem
      *dest, long value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1EncodeUnsignedInteger_Util
      Src: /src/nss/lib/nss/utilwrap.c:708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pool
    - dest
    - value
    argTypes:
    - PLArenaPool*
    - SECItem*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 709
    functionName: SEC_ASN1EncodeUnsignedInteger
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 3
    functionsReached:
    - SEC_ASN1EncodeUnsignedInteger_Util
    linkageType: ''
    returnType: SECItem
    signature: "SECItem *\nSEC_ASN1EncodeUnsignedInteger(PLArenaPool *pool,\n                              SECItem
      *dest,\n                              unsigned long value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1DecodeInteger_Util
      Src: /src/nss/lib/nss/utilwrap.c:715,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - src
    - value
    argTypes:
    - SECItem*
    - unsigned long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 711
    functionDepth: 0
    functionLinenumber: 711
    functionLinenumberEnd: 716
    functionName: SEC_ASN1DecodeInteger
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 5
    functionsReached:
    - SEC_ASN1DecodeInteger_Util
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SEC_ASN1DecodeInteger(SECItem *src,\n                      unsigned
      long *value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1LengthLength_Util
      Src: /src/nss/lib/nss/utilwrap.c:721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - len
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 718
    functionDepth: 0
    functionLinenumber: 718
    functionLinenumberEnd: 722
    functionName: SEC_ASN1LengthLength
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 3
    functionsReached:
    - SEC_ASN1LengthLength_Util
    linkageType: ''
    returnType: int
    signature: int SEC_ASN1LengthLength(unsigned long len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BTOA_DataToAscii_Util
      Src: /src/nss/lib/nss/utilwrap.c:727,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 724
    functionDepth: 0
    functionLinenumber: 724
    functionLinenumberEnd: 728
    functionName: BTOA_DataToAscii
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 11
    functionsReached:
    - BTOA_DataToAscii_Util
    linkageType: ''
    returnType: char
    signature: 'char *

      BTOA_DataToAscii(const unsigned char *data, unsigned int len)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ATOB_AsciiToData_Util
      Src: /src/nss/lib/nss/utilwrap.c:733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - string
    - lenp
    argTypes:
    - char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 730
    functionDepth: 0
    functionLinenumber: 730
    functionLinenumberEnd: 734
    functionName: ATOB_AsciiToData
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 4
    functionsReached:
    - ATOB_AsciiToData_Util
    linkageType: ''
    returnType: unsigned char
    signature: 'unsigned char *

      ATOB_AsciiToData(const char *string, unsigned int *lenp)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ATOB_ConvertAsciiToItem_Util
      Src: /src/nss/lib/nss/utilwrap.c:739,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - binary_item
    - ascii
    argTypes:
    - SECItem*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 736
    functionDepth: 0
    functionLinenumber: 736
    functionLinenumberEnd: 740
    functionName: ATOB_ConvertAsciiToItem
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 6
    functionsReached:
    - ATOB_ConvertAsciiToItem_Util
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ATOB_ConvertAsciiToItem(SECItem *binary_item, const char
      *ascii)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BTOA_ConvertItemToAscii_Util
      Src: /src/nss/lib/nss/utilwrap.c:745,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - binary_item
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 742
    functionDepth: 0
    functionLinenumber: 742
    functionLinenumberEnd: 746
    functionName: BTOA_ConvertItemToAscii
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 2
    functionsReached:
    - BTOA_ConvertItemToAscii_Util
    linkageType: ''
    returnType: char
    signature: 'char *

      BTOA_ConvertItemToAscii(SECItem *binary_item)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSSBase64Decoder_Create_Util
      Src: /src/nss/lib/nss/utilwrap.c:753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output_arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 748
    functionDepth: 0
    functionLinenumber: 748
    functionLinenumberEnd: 754
    functionName: NSSBase64Decoder_Create
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 2
    functionsReached:
    - NSSBase64Decoder_Create_Util
    linkageType: ''
    returnType: NSSBase64Decoder
    signature: "NSSBase64Decoder *\nNSSBase64Decoder_Create(PRInt32 (*output_fn)(void
      *, const unsigned char *,\n                                             PRInt32),\n
      \                       void *output_arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSSBase64Encoder_Create_Util
      Src: /src/nss/lib/nss/utilwrap.c:760,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output_arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 756
    functionDepth: 0
    functionLinenumber: 756
    functionLinenumberEnd: 761
    functionName: NSSBase64Encoder_Create
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 3
    functionsReached:
    - NSSBase64Encoder_Create_Util
    linkageType: ''
    returnType: NSSBase64Encoder
    signature: "NSSBase64Encoder *\nNSSBase64Encoder_Create(PRInt32 (*output_fn)(void
      *, const char *, PRInt32),\n                        void *output_arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSSBase64Decoder_Update_Util
      Src: /src/nss/lib/nss/utilwrap.c:767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - data
    - buffer
    - size
    argTypes:
    - NSSBase64Decoder*
    - char*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 763
    functionDepth: 0
    functionLinenumber: 763
    functionLinenumberEnd: 768
    functionName: NSSBase64Decoder_Update
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 2
    functionsReached:
    - NSSBase64Decoder_Update_Util
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus NSSBase64Decoder_Update(NSSBase64Decoder *data, const char
      *buffer,\n                        PRUint32 size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSSBase64Encoder_Update_Util
      Src: /src/nss/lib/nss/utilwrap.c:774,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - data
    - buffer
    - size
    argTypes:
    - NSSBase64Encoder*
    - unsigned char*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 775
    functionName: NSSBase64Encoder_Update
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 3
    functionsReached:
    - NSSBase64Encoder_Update_Util
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus NSSBase64Encoder_Update(NSSBase64Encoder *data, const unsigned
      char *buffer,\n                        PRUint32 size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSSBase64Decoder_Destroy_Util
      Src: /src/nss/lib/nss/utilwrap.c:780,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - abort_p
    argTypes:
    - NSSBase64Decoder*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 777
    functionDepth: 0
    functionLinenumber: 777
    functionLinenumberEnd: 781
    functionName: NSSBase64Decoder_Destroy
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 2
    functionsReached:
    - NSSBase64Decoder_Destroy_Util
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSSBase64Decoder_Destroy(NSSBase64Decoder *data, PRBool abort_p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSSBase64Encoder_Destroy_Util
      Src: /src/nss/lib/nss/utilwrap.c:786,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - abort_p
    argTypes:
    - NSSBase64Encoder*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 783
    functionDepth: 0
    functionLinenumber: 783
    functionLinenumberEnd: 787
    functionName: NSSBase64Encoder_Destroy
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 3
    functionsReached:
    - NSSBase64Encoder_Destroy_Util
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSSBase64Encoder_Destroy(NSSBase64Encoder *data, PRBool abort_p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSSBase64_DecodeBuffer_Util
      Src: /src/nss/lib/nss/utilwrap.c:793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - arenaOpt
    - outItemOpt
    - inStr
    - inLen
    argTypes:
    - PLArenaPool*
    - SECItem*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 789
    functionDepth: 0
    functionLinenumber: 789
    functionLinenumberEnd: 794
    functionName: NSSBase64_DecodeBuffer
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 8
    functionsReached:
    - NSSBase64_DecodeBuffer_Util
    linkageType: ''
    returnType: SECItem
    signature: "SECItem *\nNSSBase64_DecodeBuffer(PLArenaPool *arenaOpt, SECItem *outItemOpt,\n
      \                      const char *inStr, unsigned int inLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSSBase64_EncodeItem_Util
      Src: /src/nss/lib/nss/utilwrap.c:800,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - arenaOpt
    - outStrOpt
    - maxOutLen
    - inItem
    argTypes:
    - PLArenaPool*
    - char*
    - unsigned int
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 796
    functionDepth: 0
    functionLinenumber: 796
    functionLinenumberEnd: 801
    functionName: NSSBase64_EncodeItem
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 5
    functionsReached:
    - NSSBase64_EncodeItem_Util
    linkageType: ''
    returnType: char
    signature: "char *\nNSSBase64_EncodeItem(PLArenaPool *arenaOpt, char *outStrOpt,\n
      \                    unsigned int maxOutLen, SECItem *inItem)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSSRWLock_New_Util
      Src: /src/nss/lib/nss/utilwrap.c:806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lock_rank
    - lock_name
    argTypes:
    - PRUint32
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 803
    functionDepth: 0
    functionLinenumber: 803
    functionLinenumberEnd: 807
    functionName: NSSRWLock_New
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 7
    functionsReached:
    - NSSRWLock_New_Util
    linkageType: ''
    returnType: NSSRWLock
    signature: 'NSSRWLock *

      NSSRWLock_New(PRUint32 lock_rank, const char *lock_name)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSSRWLock_Destroy_Util
      Src: /src/nss/lib/nss/utilwrap.c:812,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lock
    argTypes:
    - NSSRWLock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 809
    functionDepth: 0
    functionLinenumber: 809
    functionLinenumberEnd: 813
    functionName: NSSRWLock_Destroy
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 10
    functionsReached:
    - NSSRWLock_Destroy_Util
    linkageType: ''
    returnType: void
    signature: void NSSRWLock_Destroy(NSSRWLock *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSSRWLock_LockRead_Util
      Src: /src/nss/lib/nss/utilwrap.c:818,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lock
    argTypes:
    - NSSRWLock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 815
    functionDepth: 0
    functionLinenumber: 815
    functionLinenumberEnd: 819
    functionName: NSSRWLock_LockRead
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 12
    functionsReached:
    - NSSRWLock_LockRead_Util
    linkageType: ''
    returnType: void
    signature: void NSSRWLock_LockRead(NSSRWLock *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSSRWLock_LockWrite_Util
      Src: /src/nss/lib/nss/utilwrap.c:824,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lock
    argTypes:
    - NSSRWLock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 821
    functionDepth: 0
    functionLinenumber: 821
    functionLinenumberEnd: 825
    functionName: NSSRWLock_LockWrite
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 9
    functionsReached:
    - NSSRWLock_LockWrite_Util
    linkageType: ''
    returnType: void
    signature: void NSSRWLock_LockWrite(NSSRWLock *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSSRWLock_UnlockRead_Util
      Src: /src/nss/lib/nss/utilwrap.c:830,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lock
    argTypes:
    - NSSRWLock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 827
    functionDepth: 0
    functionLinenumber: 827
    functionLinenumberEnd: 831
    functionName: NSSRWLock_UnlockRead
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 13
    functionsReached:
    - NSSRWLock_UnlockRead_Util
    linkageType: ''
    returnType: void
    signature: void NSSRWLock_UnlockRead(NSSRWLock *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSSRWLock_UnlockWrite_Util
      Src: /src/nss/lib/nss/utilwrap.c:836,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lock
    argTypes:
    - NSSRWLock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 833
    functionDepth: 0
    functionLinenumber: 833
    functionLinenumberEnd: 837
    functionName: NSSRWLock_UnlockWrite
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 10
    functionsReached:
    - NSSRWLock_UnlockWrite_Util
    linkageType: ''
    returnType: void
    signature: void NSSRWLock_UnlockWrite(NSSRWLock *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSSRWLock_HaveWriteLock_Util
      Src: /src/nss/lib/nss/utilwrap.c:842,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rwlock
    argTypes:
    - NSSRWLock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 839
    functionDepth: 0
    functionLinenumber: 839
    functionLinenumberEnd: 843
    functionName: NSSRWLock_HaveWriteLock
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 1
    functionsReached:
    - NSSRWLock_HaveWriteLock_Util
    linkageType: ''
    returnType: PRBool
    signature: PRBool NSSRWLock_HaveWriteLock(NSSRWLock *rwlock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/nss/utilwrap.c:848,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ppLock
    - ltype
    argTypes:
    - PZLock**
    - nssILockType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 845
    functionDepth: 0
    functionLinenumber: 845
    functionLinenumberEnd: 850
    functionName: __nss_InitLock
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus __nss_InitLock(PZLock **ppLock, nssILockType ltype)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HASH_GetHashTypeByOidTag_Util
      Src: /src/nss/lib/nss/utilwrap.c:855,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hashOid
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 852
    functionDepth: 0
    functionLinenumber: 852
    functionLinenumberEnd: 856
    functionName: HASH_GetHashTypeByOidTag
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 11
    functionsReached:
    - HASH_GetHashTypeByOidTag_Util
    linkageType: ''
    returnType: HASH_HashType
    signature: HASH_HashType HASH_GetHashTypeByOidTag(SECOidTag hashOid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HASH_GetHashOidTagByHashType_Util
      Src: /src/nss/lib/nss/utilwrap.c:861,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - HASH_HashType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 858
    functionDepth: 0
    functionLinenumber: 858
    functionLinenumberEnd: 862
    functionName: HASH_GetHashOidTagByHashType
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 6
    functionsReached:
    - HASH_GetHashOidTagByHashType_Util
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag HASH_GetHashOidTagByHashType(HASH_HashType type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HASH_GetHashOidTagByHMACOidTag_Util
      Src: /src/nss/lib/nss/utilwrap.c:867,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hmacOid
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 864
    functionDepth: 0
    functionLinenumber: 864
    functionLinenumberEnd: 868
    functionName: HASH_GetHashOidTagByHMACOidTag
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 9
    functionsReached:
    - HASH_GetHashOidTagByHMACOidTag_Util
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag HASH_GetHashOidTagByHMACOidTag(SECOidTag hmacOid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HASH_GetHMACOidTagByHashOidTag_Util
      Src: /src/nss/lib/nss/utilwrap.c:873,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hashOid
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 870
    functionDepth: 0
    functionLinenumber: 870
    functionLinenumberEnd: 874
    functionName: HASH_GetHMACOidTagByHashOidTag
    functionSourceFile: /src/nss/lib/nss/utilwrap.c
    functionUses: 3
    functionsReached:
    - HASH_GetHMACOidTagByHashOidTag_Util
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag HASH_GetHMACOidTagByHashOidTag(SECOidTag hashOid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mktemp
      Src: /src/nss/lib/nss/nssinit.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: nss_mktemp
    functionSourceFile: /src/nss/lib/nss/nssinit.c
    functionUses: 0
    functionsReached:
    - _mktemp
    linkageType: ''
    returnType: char
    signature: 'char *

      nss_mktemp(char *path)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Alloc
      Src: /src/nss/lib/nss/nssinit.c:65,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/nss/nssinit.c:68,1
    - Dst: PORT_Strcat
      Src: /src/nss/lib/nss/nssinit.c:70,1
    - Dst: PORT_Strcat
      Src: /src/nss/lib/nss/nssinit.c:75,1
    - Dst: PORT_Strcat
      Src: /src/nss/lib/nss/nssinit.c:76,1
    - Dst: PORT_Strcat
      Src: /src/nss/lib/nss/nssinit.c:81,1
    - Dst: PORT_Strcat
      Src: /src/nss/lib/nss/nssinit.c:82,1
    - Dst: PORT_Strcat
      Src: /src/nss/lib/nss/nssinit.c:87,1
    - Dst: PORT_Strcat
      Src: /src/nss/lib/nss/nssinit.c:88,1
    - Dst: PORT_Strcat
      Src: /src/nss/lib/nss/nssinit.c:93,1
    - Dst: PORT_Strcat
      Src: /src/nss/lib/nss/nssinit.c:94,1
    - Dst: PORT_Strcat
      Src: /src/nss/lib/nss/nssinit.c:99,1
    - Dst: PORT_Strcat
      Src: /src/nss/lib/nss/nssinit.c:100,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 6
    argNames:
    - readOnly
    - noCertDB
    - noModDB
    - forceOpen
    - passwordRequired
    - optimizeSpace
    argTypes:
    - PRBool
    - PRBool
    - PRBool
    - PRBool
    - PRBool
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 103
    functionName: nss_makeFlags
    functionSourceFile: /src/nss/lib/nss/nssinit.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_Memset
    - PORT_Strcat
    linkageType: ''
    returnType: char
    signature: "char *\nnss_makeFlags(PRBool readOnly, PRBool noCertDB,\n              PRBool
      noModDB, PRBool forceOpen,\n              PRBool passwordRequired, PRBool optimizeSpace)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: PR_smprintf
      Src: /src/nss/lib/nss/nssinit.c:117,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/nss/nssinit.c:122,1
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/nss/nssinit.c:123,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/nss/nssinit.c:130,1
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/nss/nssinit.c:131,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/nss/nssinit.c:138,1
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/nss/nssinit.c:140,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/nss/nssinit.c:147,1
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/nss/nssinit.c:148,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/nss/nssinit.c:155,1
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/nss/nssinit.c:157,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/nss/nssinit.c:164,1
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/nss/nssinit.c:165,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/nss/nssinit.c:172,1
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/nss/nssinit.c:174,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/nss/nssinit.c:181,1
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/nss/nssinit.c:183,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/nss/nssinit.c:189,1
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/nss/nssinit.c:190,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 64
    argCount: 9
    argNames:
    - man
    - libdesc
    - tokdesc
    - ptokdesc
    - slotdesc
    - pslotdesc
    - fslotdesc
    - fpslotdesc
    - minPwd
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 194
    functionName: nss_MkConfigString
    functionSourceFile: /src/nss/lib/nss/nssinit.c
    functionUses: 0
    functionsReached:
    - PR_smprintf_free
    - PR_smprintf
    linkageType: ''
    returnType: char
    signature: "char *\nnss_MkConfigString(const char *man, const char *libdesc, const
      char *tokdesc,\n                   const char *ptokdesc, const char *slotdesc,
      const char *pslotdesc,\n                   const char *fslotdesc, const char
      *fpslotdesc, int minPwd)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nss_MkConfigString
      Src: /src/nss/lib/nss/nssinit.c:216,1
    - Dst: PORT_Free
      Src: /src/nss/lib/nss/nssinit.c:224,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/nss/nssinit.c:226,1
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/nss/nssinit.c:230,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 10
    argNames:
    - man
    - libdesc
    - tokdesc
    - ptokdesc
    - slotdesc
    - pslotdesc
    - fslotdesc
    - fpslotdesc
    - minPwd
    - pwRequired
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 208
    functionDepth: 2
    functionLinenumber: 208
    functionLinenumberEnd: 236
    functionName: PK11_ConfigurePKCS11
    functionSourceFile: /src/nss/lib/nss/nssinit.c
    functionUses: 1
    functionsReached:
    - PORT_Free
    - PR_smprintf_free
    - PORT_Strdup
    - nss_MkConfigString
    linkageType: ''
    returnType: void
    signature: "void PK11_ConfigurePKCS11(const char *man, const char *libdesc, const
      char *tokdesc,\n                     const char *ptokdesc, const char *slotdesc,
      const char *pslotdesc,\n                     const char *fslotdesc, const char
      *fpslotdesc, int minPwd,\n                     int pwRequired)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/nss/nssinit.c:242,1
    - Dst: PORT_Free
      Src: /src/nss/lib/nss/nssinit.c:246,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 249
    functionName: PK11_UnconfigurePKCS11
    functionSourceFile: /src/nss/lib/nss/nssinit.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - PR_smprintf_free
    linkageType: ''
    returnType: void
    signature: void PK11_UnconfigurePKCS11(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strlen
      Src: /src/nss/lib/nss/nssinit.c:281,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/nss/nssinit.c:282,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/nss/nssinit.c:283,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/nss/nssinit.c:286,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/nss/nssinit.c:291,1
    - Dst: PORT_Strcpy
      Src: /src/nss/lib/nss/nssinit.c:295,1
    - Dst: PORT_Strrchr
      Src: /src/nss/lib/nss/nssinit.c:297,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/nss/nssinit.c:300,1
    - Dst: PORT_Free
      Src: /src/nss/lib/nss/nssinit.c:302,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/nss/nssinit.c:305,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/nss/nssinit.c:306,1
    - Dst: PORT_Strcpy
      Src: /src/nss/lib/nss/nssinit.c:307,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 4
    argNames:
    - dbpath
    - secmodprefix
    - retoldpath
    - retnewpath
    argTypes:
    - char*
    - char*
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 313
    functionName: nss_FindExternalRootPaths
    functionSourceFile: /src/nss/lib/nss/nssinit.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_Strrchr
    - PORT_Memcpy
    - PORT_Free
    - PORT_Strlen
    - PORT_Strcpy
    linkageType: ''
    returnType: void
    signature: "void nss_FindExternalRootPaths(const char *dbpath,\n                          const
      char *secmodprefix,\n                          char **retoldpath, char **retnewpath)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Free
      Src: /src/nss/lib/nss/nssinit.c:319,1
    - Dst: PORT_Free
      Src: /src/nss/lib/nss/nssinit.c:322,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - oldpath
    - path
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 324
    functionName: nss_FreeExternalRootPaths
    functionSourceFile: /src/nss/lib/nss/nssinit.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    linkageType: ''
    returnType: void
    signature: void nss_FreeExternalRootPaths(char *oldpath, char *path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nss_FindExternalRootPaths
      Src: /src/nss/lib/nss/nssinit.c:338,1
    - Dst: SECMOD_AddNewModule
      Src: /src/nss/lib/nss/nssinit.c:340,1
    - Dst: SECMOD_HasRootCerts
      Src: /src/nss/lib/nss/nssinit.c:341,1
    - Dst: SECMOD_AddNewModule
      Src: /src/nss/lib/nss/nssinit.c:344,1
    - Dst: nss_FreeExternalRootPaths
      Src: /src/nss/lib/nss/nssinit.c:346,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - dbpath
    - secmodprefix
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 326
    functionDepth: 11
    functionLinenumber: 326
    functionLinenumberEnd: 348
    functionName: nss_FindExternalRoot
    functionSourceFile: /src/nss/lib/nss/nssinit.c
    functionUses: 0
    functionsReached:
    - SECMOD_AddNewModule
    - nss_FreeExternalRootPaths
    - SECMOD_HasRootCerts
    - nss_FindExternalRootPaths
    linkageType: ''
    returnType: void
    signature: void nss_FindExternalRoot(const char *dbpath, const char *secmodprefix)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: NSS_InitializePRErrorTable
      Src: /src/nss/lib/nss/nssinit.c:380,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/nss/nssinit.c:381,1
    - Dst: nss_makeFlags
      Src: /src/nss/lib/nss/nssinit.c:385,1
    - Dst: NSSUTIL_DoubleEscape
      Src: /src/nss/lib/nss/nssinit.c:394,1
    - Dst: NSSUTIL_DoubleEscape
      Src: /src/nss/lib/nss/nssinit.c:398,1
    - Dst: NSSUTIL_DoubleEscape
      Src: /src/nss/lib/nss/nssinit.c:402,1
    - Dst: NSSUTIL_DoubleEscape
      Src: /src/nss/lib/nss/nssinit.c:406,1
    - Dst: NSSUTIL_DoubleEscape
      Src: /src/nss/lib/nss/nssinit.c:410,1
    - Dst: NSSUTIL_DoubleEscape
      Src: /src/nss/lib/nss/nssinit.c:414,1
    - Dst: NSSUTIL_DoubleEscape
      Src: /src/nss/lib/nss/nssinit.c:418,1
    - Dst: NSSUTIL_DoubleEscape
      Src: /src/nss/lib/nss/nssinit.c:422,1
    - Dst: NSSUTIL_DoubleEscape
      Src: /src/nss/lib/nss/nssinit.c:426,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/nss/nssinit.c:431,1
    - Dst: PORT_Free
      Src: /src/nss/lib/nss/nssinit.c:443,1
    - Dst: PORT_Free
      Src: /src/nss/lib/nss/nssinit.c:445,1
    - Dst: PORT_Free
      Src: /src/nss/lib/nss/nssinit.c:447,1
    - Dst: PORT_Free
      Src: /src/nss/lib/nss/nssinit.c:449,1
    - Dst: PORT_Free
      Src: /src/nss/lib/nss/nssinit.c:451,1
    - Dst: PORT_Free
      Src: /src/nss/lib/nss/nssinit.c:453,1
    - Dst: PORT_Free
      Src: /src/nss/lib/nss/nssinit.c:455,1
    - Dst: PORT_Free
      Src: /src/nss/lib/nss/nssinit.c:457,1
    - Dst: PORT_Free
      Src: /src/nss/lib/nss/nssinit.c:459,1
    - Dst: PORT_Free
      Src: /src/nss/lib/nss/nssinit.c:461,1
    - Dst: SECMOD_LoadModule
      Src: /src/nss/lib/nss/nssinit.c:464,1
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/nss/nssinit.c:465,1
    - Dst: SECMOD_DestroyModule
      Src: /src/nss/lib/nss/nssinit.c:467,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 84
    argCount: 18
    argNames:
    - configdir
    - certPrefix
    - keyPrefix
    - secmodName
    - updateDir
    - updCertPrefix
    - updKeyPrefix
    - updateID
    - updateName
    - configName
    - configStrings
    - pwRequired
    - readOnly
    - noCertDB
    - noModDB
    - forceOpen
    - optimizeSpace
    - isContextInit
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - PRBool
    - PRBool
    - PRBool
    - PRBool
    - PRBool
    - PRBool
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 357
    functionDepth: 7
    functionLinenumber: 357
    functionLinenumberEnd: 472
    functionName: nss_InitModules
    functionSourceFile: /src/nss/lib/nss/nssinit.c
    functionUses: 0
    functionsReached:
    - NSSUTIL_DoubleEscape
    - SECMOD_LoadModule
    - nss_makeFlags
    - PORT_Free
    - NSS_InitializePRErrorTable
    - SECMOD_DestroyModule
    - PORT_SetError
    - PR_smprintf_free
    - PR_smprintf
    linkageType: ''
    returnType: SECMODModule
    signature: "SECMODModule *\nnss_InitModules(const char *configdir, const char
      *certPrefix,\n                const char *keyPrefix, const char *secmodName,\n
      \               const char *updateDir, const char *updCertPrefix,\n                const
      char *updKeyPrefix, const char *updateID,\n                const char *updateName,
      char *configName, char *configStrings,\n                PRBool pwRequired, PRBool
      readOnly, PRBool noCertDB,\n                PRBool noModDB, PRBool forceOpen,
      PRBool optimizeSpace,\n                PRBool isContextInit)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PZ_NewLock
      Src: /src/nss/lib/nss/nssinit.c:535,1
    - Dst: PZ_NewCondVar
      Src: /src/nss/lib/nss/nssinit.c:539,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 532
    functionDepth: 1
    functionLinenumber: 532
    functionLinenumberEnd: 544
    functionName: nss_doLockInit
    functionSourceFile: /src/nss/lib/nss/nssinit.c
    functionUses: 0
    functionsReached:
    - PZ_NewLock
    - PZ_NewCondVar
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus nss_doLockInit(void)
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: PR_CallOnce
      Src: /src/nss/lib/nss/nssinit.c:580,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/nss/nssinit.c:588,1
    - Dst: NSS_IsInitialized
      Src: /src/nss/lib/nss/nssinit.c:589,1
    - Dst: PZ_WaitCondVar
      Src: /src/nss/lib/nss/nssinit.c:592,1
    - Dst: NSS_IsInitialized
      Src: /src/nss/lib/nss/nssinit.c:593,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/nss/nssinit.c:599,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/nss/nssinit.c:609,1
    - Dst: cert_InitLocks
      Src: /src/nss/lib/nss/nssinit.c:612,1
    - Dst: InitCRLCache
      Src: /src/nss/lib/nss/nssinit.c:616,1
    - Dst: OCSP_InitGlobal
      Src: /src/nss/lib/nss/nssinit.c:620,1
    - Dst: pk11_setGlobalOptions
      Src: /src/nss/lib/nss/nssinit.c:627,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/nss/nssinit.c:633,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/nss/nssinit.c:646,1
    - Dst: nss_MkConfigString
      Src: /src/nss/lib/nss/nssinit.c:649,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/nss/nssinit.c:659,1
    - Dst: SECMOD_RestartModules
      Src: /src/nss/lib/nss/nssinit.c:679,1
    - Dst: nss_InitModules
      Src: /src/nss/lib/nss/nssinit.c:689,1
    - Dst: SECOID_Init
      Src: /src/nss/lib/nss/nssinit.c:702,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/nss/nssinit.c:709,1
    - Dst: strncmp
      Src: /src/nss/lib/nss/nssinit.c:710,1
    - Dst: PR_Access
      Src: /src/nss/lib/nss/nssinit.c:711,1
    - Dst: SECMOD_LoadModule
      Src: /src/nss/lib/nss/nssinit.c:712,1
    - Dst: SECMOD_DestroyModule
      Src: /src/nss/lib/nss/nssinit.c:721,1
    - Dst: STAN_LoadDefaultNSS3TrustDomain
      Src: /src/nss/lib/nss/nssinit.c:729,1
    - Dst: nss_InitShutdownList
      Src: /src/nss/lib/nss/nssinit.c:732,1
    - Dst: CERT_SetDefaultCertDB
      Src: /src/nss/lib/nss/nssinit.c:735,1
    - Dst: STAN_GetDefaultTrustDomain
      Src: /src/nss/lib/nss/nssinit.c:736,1
    - Dst: SECMOD_HasRootCerts
      Src: /src/nss/lib/nss/nssinit.c:738,1
    - Dst: strncmp
      Src: /src/nss/lib/nss/nssinit.c:741,1
    - Dst: strncmp
      Src: /src/nss/lib/nss/nssinit.c:743,1
    - Dst: strncmp
      Src: /src/nss/lib/nss/nssinit.c:745,1
    - Dst: strncmp
      Src: /src/nss/lib/nss/nssinit.c:747,1
    - Dst: nss_FindExternalRoot
      Src: /src/nss/lib/nss/nssinit.c:753,1
    - Dst: pk11sdr_Init
      Src: /src/nss/lib/nss/nssinit.c:757,1
    - Dst: cert_CreateSubjectKeyIDHashTable
      Src: /src/nss/lib/nss/nssinit.c:758,1
    - Dst: PKIX_Initialize
      Src: /src/nss/lib/nss/nssinit.c:761,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/nss/nssinit.c:767,1
    - Dst: CERT_SetUsePKIXForValidation
      Src: /src/nss/lib/nss/nssinit.c:769,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/nss/nssinit.c:780,1
    - Dst: PZ_NotifyAllCondVar
      Src: /src/nss/lib/nss/nssinit.c:790,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/nss/nssinit.c:791,1
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/nss/nssinit.c:794,1
    - Dst: SECMOD_DestroyModule
      Src: /src/nss/lib/nss/nssinit.c:797,1
    - Dst: PORT_Free
      Src: /src/nss/lib/nss/nssinit.c:804,1
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/nss/nssinit.c:807,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/nss/nssinit.c:810,1
    - Dst: PZ_NotifyCondVar
      Src: /src/nss/lib/nss/nssinit.c:813,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/nss/nssinit.c:814,1
    - Dst: SECMOD_DestroyModule
      Src: /src/nss/lib/nss/nssinit.c:816,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 161
    argCount: 20
    argNames:
    - configdir
    - certPrefix
    - keyPrefix
    - secmodName
    - updateDir
    - updCertPrefix
    - updKeyPrefix
    - updateID
    - updateName
    - initContextPtr
    - initParams
    - readOnly
    - noCertDB
    - noModDB
    - forceOpen
    - noRootInit
    - optimizeSpace
    - noSingleThreadedModules
    - allowAlreadyInitializedModules
    - dontFinalizeModules
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - NSSInitContext**
    - NSSInitParameters*
    - PRBool
    - PRBool
    - PRBool
    - PRBool
    - PRBool
    - PRBool
    - PRBool
    - PRBool
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 546
    functionDepth: 12
    functionLinenumber: 546
    functionLinenumberEnd: 819
    functionName: nss_Init
    functionSourceFile: /src/nss/lib/nss/nssinit.c
    functionUses: 0
    functionsReached:
    - nss_MkConfigString
    - PORT_ZNew
    - STAN_GetDefaultTrustDomain
    - nss_FindExternalRoot
    - PZ_Unlock
    - PR_GetEnvSecure
    - SECMOD_RestartModules
    - PZ_WaitCondVar
    - pk11sdr_Init
    - cert_CreateSubjectKeyIDHashTable
    - PKIX_Initialize
    - cert_InitLocks
    - PORT_SetError
    - PR_smprintf_free
    - nss_InitModules
    - PZ_NotifyAllCondVar
    - NSS_IsInitialized
    - nss_InitShutdownList
    - PORT_Assert
    - STAN_LoadDefaultNSS3TrustDomain
    - PR_Access
    - PZ_NotifyCondVar
    - SECMOD_DestroyModule
    - CERT_SetDefaultCertDB
    - SECOID_Init
    - SECMOD_HasRootCerts
    - PR_CallOnce
    - strncmp
    - SECMOD_LoadModule
    - pk11_setGlobalOptions
    - PORT_Free
    - InitCRLCache
    - OCSP_InitGlobal
    - PZ_Lock
    - CERT_SetUsePKIXForValidation
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus nss_Init(const char *configdir, const char *certPrefix,
      const char *keyPrefix,\n         const char *secmodName, const char *updateDir,\n
      \        const char *updCertPrefix, const char *updKeyPrefix,\n         const
      char *updateID, const char *updateName,\n         NSSInitContext **initContextPtr,\n
      \        NSSInitParameters *initParams,\n         PRBool readOnly, PRBool noCertDB,\n
      \        PRBool noModDB, PRBool forceOpen, PRBool noRootInit,\n         PRBool
      optimizeSpace, PRBool noSingleThreadedModules,\n         PRBool allowAlreadyInitializedModules,\n
      \        PRBool dontFinalizeModules)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_Init
      Src: /src/nss/lib/nss/nssinit.c:824,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - configdir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 821
    functionDepth: 13
    functionLinenumber: 821
    functionLinenumberEnd: 827
    functionName: NSS_Init
    functionSourceFile: /src/nss/lib/nss/nssinit.c
    functionUses: 21
    functionsReached:
    - nss_Init
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_Init(const char *configdir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_Init
      Src: /src/nss/lib/nss/nssinit.c:832,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - configdir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 829
    functionDepth: 13
    functionLinenumber: 829
    functionLinenumberEnd: 835
    functionName: NSS_InitReadWrite
    functionSourceFile: /src/nss/lib/nss/nssinit.c
    functionUses: 6
    functionsReached:
    - nss_Init
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_InitReadWrite(const char *configdir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_Init
      Src: /src/nss/lib/nss/nssinit.c:889,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - configdir
    - certPrefix
    - keyPrefix
    - secmodName
    - flags
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 885
    functionDepth: 13
    functionLinenumber: 885
    functionLinenumberEnd: 900
    functionName: NSS_Initialize
    functionSourceFile: /src/nss/lib/nss/nssinit.c
    functionUses: 12
    functionsReached:
    - nss_Init
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus NSS_Initialize(const char *configdir, const char *certPrefix,\n
      \              const char *keyPrefix, const char *secmodName, PRUint32 flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_Init
      Src: /src/nss/lib/nss/nssinit.c:910,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - configdir
    - certPrefix
    - keyPrefix
    - secmodName
    - initParams
    - flags
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - NSSInitParameters*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 902
    functionDepth: 13
    functionLinenumber: 902
    functionLinenumberEnd: 921
    functionName: NSS_InitContext
    functionSourceFile: /src/nss/lib/nss/nssinit.c
    functionUses: 1
    functionsReached:
    - nss_Init
    linkageType: ''
    returnType: NSSInitContext
    signature: "NSSInitContext *\nNSS_InitContext(const char *configdir, const char
      *certPrefix,\n                const char *keyPrefix, const char *secmodName,\n
      \               NSSInitParameters *initParams, PRUint32 flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_Init
      Src: /src/nss/lib/nss/nssinit.c:930,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 10
    argNames:
    - configdir
    - certPrefix
    - keyPrefix
    - secmodName
    - updateDir
    - updCertPrefix
    - updKeyPrefix
    - updateID
    - updateName
    - flags
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - PRUint32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 923
    functionDepth: 13
    functionLinenumber: 923
    functionLinenumberEnd: 942
    functionName: NSS_InitWithMerge
    functionSourceFile: /src/nss/lib/nss/nssinit.c
    functionUses: 1
    functionsReached:
    - nss_Init
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus NSS_InitWithMerge(const char *configdir, const char *certPrefix,\n
      \                 const char *keyPrefix, const char *secmodName,\n                  const
      char *updateDir, const char *updCertPrefix,\n                  const char *updKeyPrefix,
      const char *updateID,\n                  const char *updateName, PRUint32 flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_Init
      Src: /src/nss/lib/nss/nssinit.c:950,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - configdir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 947
    functionDepth: 13
    functionLinenumber: 947
    functionLinenumberEnd: 953
    functionName: NSS_NoDB_Init
    functionSourceFile: /src/nss/lib/nss/nssinit.c
    functionUses: 38
    functionsReached:
    - nss_Init
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_NoDB_Init(const char *configdir)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - sFunc
    - appData
    argTypes:
    - NSS_ShutdownFunc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 985
      start: 972
    functionDepth: 0
    functionLinenumber: 972
    functionLinenumberEnd: 985
    functionName: nss_GetShutdownEntry
    functionSourceFile: /src/nss/lib/nss/nssinit.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int nss_GetShutdownEntry(NSS_ShutdownFunc sFunc, void *appData)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PR_CallOnce
      Src: /src/nss/lib/nss/nssinit.c:997,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/nss/nssinit.c:1001,1
    - Dst: NSS_IsInitialized
      Src: /src/nss/lib/nss/nssinit.c:1002,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/nss/nssinit.c:1003,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/nss/nssinit.c:1004,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/nss/nssinit.c:1007,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/nss/nssinit.c:1009,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/nss/nssinit.c:1013,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/nss/nssinit.c:1014,1
    - Dst: nss_GetShutdownEntry
      Src: /src/nss/lib/nss/nssinit.c:1017,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/nss/nssinit.c:1019,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/nss/nssinit.c:1020,1
    - Dst: nss_GetShutdownEntry
      Src: /src/nss/lib/nss/nssinit.c:1024,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/nss/nssinit.c:1028,1
    - Dst: PORT_Realloc
      Src: /src/nss/lib/nss/nssinit.c:1033,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/nss/nssinit.c:1036,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/nss/nssinit.c:1045,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 43
    argCount: 2
    argNames:
    - sFunc
    - appData
    argTypes:
    - NSS_ShutdownFunc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 990
    functionDepth: 1
    functionLinenumber: 990
    functionLinenumberEnd: 1047
    functionName: NSS_RegisterShutdown
    functionSourceFile: /src/nss/lib/nss/nssinit.c
    functionUses: 8
    functionsReached:
    - PORT_Assert
    - nss_GetShutdownEntry
    - PZ_Unlock
    - PORT_SetError
    - PZ_Lock
    - PORT_Realloc
    - PR_CallOnce
    - NSS_IsInitialized
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_RegisterShutdown(NSS_ShutdownFunc sFunc, void *appData)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PR_CallOnce
      Src: /src/nss/lib/nss/nssinit.c:1059,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/nss/nssinit.c:1062,1
    - Dst: NSS_IsInitialized
      Src: /src/nss/lib/nss/nssinit.c:1063,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/nss/nssinit.c:1064,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/nss/nssinit.c:1065,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/nss/nssinit.c:1068,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/nss/nssinit.c:1070,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/nss/nssinit.c:1071,1
    - Dst: nss_GetShutdownEntry
      Src: /src/nss/lib/nss/nssinit.c:1072,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/nss/nssinit.c:1077,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/nss/nssinit.c:1080,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - sFunc
    - appData
    argTypes:
    - NSS_ShutdownFunc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1084
      start: 1052
    functionDepth: 1
    functionLinenumber: 1052
    functionLinenumberEnd: 1084
    functionName: NSS_UnregisterShutdown
    functionSourceFile: /src/nss/lib/nss/nssinit.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - nss_GetShutdownEntry
    - PZ_Unlock
    - PORT_SetError
    - PZ_Lock
    - PR_CallOnce
    - NSS_IsInitialized
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_UnregisterShutdown(NSS_ShutdownFunc sFunc, void *appData)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PZ_NewLock
      Src: /src/nss/lib/nss/nssinit.c:1095,1
    - Dst: PORT_ZNewArray
      Src: /src/nss/lib/nss/nssinit.c:1099,1
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/nss/nssinit.c:1102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1089
    functionDepth: 1
    functionLinenumber: 1089
    functionLinenumberEnd: 1110
    functionName: nss_InitShutdownList
    functionSourceFile: /src/nss/lib/nss/nssinit.c
    functionUses: 1
    functionsReached:
    - PZ_DestroyLock
    - PZ_NewLock
    - PORT_ZNewArray
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus nss_InitShutdownList(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Free
      Src: /src/nss/lib/nss/nssinit.c:1130,1
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/nss/nssinit.c:1133,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1137
      start: 1112
    functionDepth: 1
    functionLinenumber: 1112
    functionLinenumberEnd: 1137
    functionName: nss_ShutdownShutdownList
    functionSourceFile: /src/nss/lib/nss/nssinit.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - PZ_DestroyLock
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus nss_ShutdownShutdownList(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nss_ShutdownShutdownList
      Src: /src/nss/lib/nss/nssinit.c:1149,1
    - Dst: cert_DestroyLocks
      Src: /src/nss/lib/nss/nssinit.c:1153,1
    - Dst: ShutdownCRLCache
      Src: /src/nss/lib/nss/nssinit.c:1154,1
    - Dst: OCSP_ShutdownGlobal
      Src: /src/nss/lib/nss/nssinit.c:1155,1
    - Dst: PKIX_Shutdown
      Src: /src/nss/lib/nss/nssinit.c:1157,1
    - Dst: SECOID_Shutdown
      Src: /src/nss/lib/nss/nssinit.c:1159,1
    - Dst: STAN_Shutdown
      Src: /src/nss/lib/nss/nssinit.c:1160,1
    - Dst: cert_DestroySubjectKeyIDHashTable
      Src: /src/nss/lib/nss/nssinit.c:1161,1
    - Dst: pk11_SetInternalKeySlot
      Src: /src/nss/lib/nss/nssinit.c:1162,1
    - Dst: SECMOD_Shutdown
      Src: /src/nss/lib/nss/nssinit.c:1163,1
    - Dst: pk11sdr_Shutdown
      Src: /src/nss/lib/nss/nssinit.c:1167,1
    - Dst: nssArena_Shutdown
      Src: /src/nss/lib/nss/nssinit.c:1168,1
    - Dst: NSS_GetError
      Src: /src/nss/lib/nss/nssinit.c:1170,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/nss/nssinit.c:1171,1
    - Dst: nss_DestroyErrorStack
      Src: /src/nss/lib/nss/nssinit.c:1184,1
    - Dst: PORT_Free
      Src: /src/nss/lib/nss/nssinit.c:1193,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1197
      start: 1141
    functionDepth: 5
    functionLinenumber: 1141
    functionLinenumberEnd: 1197
    functionName: nss_Shutdown
    functionSourceFile: /src/nss/lib/nss/nssinit.c
    functionUses: 0
    functionsReached:
    - pk11sdr_Shutdown
    - NSS_GetError
    - SECOID_Shutdown
    - PORT_Free
    - OCSP_ShutdownGlobal
    - STAN_Shutdown
    - cert_DestroySubjectKeyIDHashTable
    - cert_DestroyLocks
    - SECMOD_Shutdown
    - nssArena_Shutdown
    - PORT_SetError
    - nss_ShutdownShutdownList
    - pk11_SetInternalKeySlot
    - PKIX_Shutdown
    - nss_DestroyErrorStack
    - ShutdownCRLCache
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus nss_Shutdown(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_CallOnce
      Src: /src/nss/lib/nss/nssinit.c:1205,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/nss/nssinit.c:1208,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/nss/nssinit.c:1211,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/nss/nssinit.c:1212,1
    - Dst: PZ_WaitCondVar
      Src: /src/nss/lib/nss/nssinit.c:1219,1
    - Dst: nss_Shutdown
      Src: /src/nss/lib/nss/nssinit.c:1221,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/nss/nssinit.c:1222,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1224
      start: 1199
    functionDepth: 6
    functionLinenumber: 1199
    functionLinenumberEnd: 1224
    functionName: NSS_Shutdown
    functionSourceFile: /src/nss/lib/nss/nssinit.c
    functionUses: 48
    functionsReached:
    - PZ_Unlock
    - nss_Shutdown
    - PORT_SetError
    - PZ_Lock
    - PR_CallOnce
    - PZ_WaitCondVar
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_Shutdown(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Free
      Src: /src/nss/lib/nss/nssinit.c:1239,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - context
    argTypes:
    - NSSInitContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1246
      start: 1229
    functionDepth: 0
    functionLinenumber: 1229
    functionLinenumberEnd: 1246
    functionName: nss_RemoveList
    functionSourceFile: /src/nss/lib/nss/nssinit.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    linkageType: ''
    returnType: PRBool
    signature: PRBool nss_RemoveList(NSSInitContext *context)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PR_CallOnce
      Src: /src/nss/lib/nss/nssinit.c:1263,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/nss/nssinit.c:1266,1
    - Dst: PZ_WaitCondVar
      Src: /src/nss/lib/nss/nssinit.c:1270,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/nss/nssinit.c:1277,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/nss/nssinit.c:1278,1
    - Dst: nss_RemoveList
      Src: /src/nss/lib/nss/nssinit.c:1282,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/nss/nssinit.c:1283,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/nss/nssinit.c:1285,1
    - Dst: nss_Shutdown
      Src: /src/nss/lib/nss/nssinit.c:1289,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/nss/nssinit.c:1296,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 1
    argNames:
    - context
    argTypes:
    - NSSInitContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1299
      start: 1256
    functionDepth: 6
    functionLinenumber: 1256
    functionLinenumberEnd: 1299
    functionName: NSS_ShutdownContext
    functionSourceFile: /src/nss/lib/nss/nssinit.c
    functionUses: 3
    functionsReached:
    - PZ_Unlock
    - nss_Shutdown
    - PORT_SetError
    - PZ_Lock
    - PR_CallOnce
    - PZ_WaitCondVar
    - nss_RemoveList
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_ShutdownContext(NSSInitContext *context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1305
      start: 1301
    functionDepth: 0
    functionLinenumber: 1301
    functionLinenumberEnd: 1305
    functionName: NSS_IsInitialized
    functionSourceFile: /src/nss/lib/nss/nssinit.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool NSS_IsInitialized(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/nss/lib/nss/nssinit.c:1326,1
    - Dst: isdigit
      Src: /src/nss/lib/nss/nssinit.c:1332,1
    - Dst: isdigit
      Src: /src/nss/lib/nss/nssinit.c:1338,1
    - Dst: isdigit
      Src: /src/nss/lib/nss/nssinit.c:1344,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 39
    argCount: 1
    argNames:
    - importedVersion
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1366
      start: 1309
    functionDepth: 0
    functionLinenumber: 1309
    functionLinenumberEnd: 1366
    functionName: NSS_VersionCheck
    functionSourceFile: /src/nss/lib/nss/nssinit.c
    functionUses: 2
    functionsReached:
    - isdigit
    linkageType: ''
    returnType: PRBool
    signature: PRBool NSS_VersionCheck(const char *importedVersion)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1372
      start: 1368
    functionDepth: 0
    functionLinenumber: 1368
    functionLinenumberEnd: 1372
    functionName: NSS_GetVersion
    functionSourceFile: /src/nss/lib/nss/nssinit.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      NSS_GetVersion(void)'
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: NSS_IsPolicyLocked
      Src: /src/nss/lib/nss/nssoptions.c:52,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/nss/nssoptions.c:53,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/nss/nssoptions.c:98,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 50
    argCount: 2
    argNames:
    - which
    - value
    argTypes:
    - PRInt32
    - PRInt32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 103
    functionName: NSS_OptionSet
    functionSourceFile: /src/nss/lib/nss/nssoptions.c
    functionUses: 4
    functionsReached:
    - PORT_SetError
    - NSS_IsPolicyLocked
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_OptionSet(PRInt32 which, PRInt32 value)
  - BBCount: 15
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 2
    argNames:
    - which
    - value
    argTypes:
    - PRInt32
    - PRInt32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 153
    functionName: NSS_OptionGet
    functionSourceFile: /src/nss/lib/nss/nssoptions.c
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus NSS_OptionGet(PRInt32 which, PRInt32 *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - templ
    - ','
    - count
    - ','
    - itemPtr
    - ','
    - attr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 467
    functionName: SFTK_SET_ITEM_TEMPLATE
    functionSourceFile: /src/nss/lib/softoken/pkcs11i.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SFTK_SET_ITEM_TEMPLATE(templ, count, itemPtr, attr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 504
    functionName: sftk_SlotFromSession
    functionSourceFile: /src/nss/lib/softoken/pkcs11i.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sftk_SlotFromSession(sp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - id
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 505
    functionName: sftk_isToken
    functionSourceFile: /src/nss/lib/softoken/pkcs11i.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sftk_isToken(id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - id
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 507
    functionName: sftk_isFIPS
    functionSourceFile: /src/nss/lib/softoken/pkcs11i.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sftk_isFIPS(id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - value
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 514
    functionName: sftk_hash
    functionSourceFile: /src/nss/lib/softoken/pkcs11i.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sftk_hash(value, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - element
    - ','
    - id
    - ','
    - head
    - ','
    - hash_size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 523
    functionName: sftkqueue_add
    functionSourceFile: /src/nss/lib/softoken/pkcs11i.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sftkqueue_add(element, id, head, hash_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - element
    - ','
    - id
    - ','
    - head
    - ','
    - hash_size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 530
    functionName: sftkqueue_find
    functionSourceFile: /src/nss/lib/softoken/pkcs11i.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sftkqueue_find(element, id, head, hash_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - element
    - ','
    - id
    - ','
    - head
    - ','
    - hash_size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 533
    functionName: sftkqueue_is_queued
    functionSourceFile: /src/nss/lib/softoken/pkcs11i.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sftkqueue_is_queued(element, id, head, hash_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - element
    - ','
    - id
    - ','
    - head
    - ','
    - hash_size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 542
    functionName: sftkqueue_delete
    functionSourceFile: /src/nss/lib/softoken/pkcs11i.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sftkqueue_delete(element, id, head, hash_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - element
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 545
    functionName: sftkqueue_init_element
    functionSourceFile: /src/nss/lib/softoken/pkcs11i.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sftkqueue_init_element(element)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - element
    - ','
    - id
    - ','
    - index
    - ','
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 553
    functionName: sftkqueue_add2
    functionSourceFile: /src/nss/lib/softoken/pkcs11i.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sftkqueue_add2(element, id, index, head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - element
    - ','
    - id
    - ','
    - index
    - ','
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 554
    functionDepth: 0
    functionLinenumber: 554
    functionLinenumberEnd: 562
    functionName: sftkqueue_find2
    functionSourceFile: /src/nss/lib/softoken/pkcs11i.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sftkqueue_find2(element, id, index, head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - element
    - ','
    - id
    - ','
    - index
    - ','
    - head
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 570
    functionName: sftkqueue_delete2
    functionSourceFile: /src/nss/lib/softoken/pkcs11i.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sftkqueue_delete2(element, id, index, head)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - element
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 574
    functionName: sftkqueue_clear_deleted_element
    functionSourceFile: /src/nss/lib/softoken/pkcs11i.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sftkqueue_clear_deleted_element(element)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - slot
    - ','
    - handle
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 580
    functionName: SFTK_SESSION_LOCK
    functionSourceFile: /src/nss/lib/softoken/pkcs11i.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SFTK_SESSION_LOCK(slot, handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - slot
    - ','
    - handle
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 582
    functionDepth: 0
    functionLinenumber: 582
    functionLinenumberEnd: 584
    functionName: SFTK_SESSION_LOCK
    functionSourceFile: /src/nss/lib/softoken/pkcs11i.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SFTK_SESSION_LOCK(slot, handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ap
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 587
    functionDepth: 0
    functionLinenumber: 587
    functionLinenumberEnd: 588
    functionName: sftk_attr_expand
    functionSourceFile: /src/nss/lib/softoken/pkcs11i.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sftk_attr_expand(ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ip
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 589
    functionName: sftk_item_expand
    functionSourceFile: /src/nss/lib/softoken/pkcs11i.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sftk_item_expand(ip)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sftk_startup_tests
      Src: /src/nss/lib/softoken/fipstest.c:54,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - hinstDLL
    - fdwReason
    - lpReserved
    argTypes:
    - HINSTANCE
    - DWORD
    - LPVOID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 70
    functionName: DllMain
    functionSourceFile: /src/nss/lib/softoken/fipstest.c
    functionUses: 0
    functionsReached:
    - sftk_startup_tests
    linkageType: ''
    returnType: BOOL
    signature: "BOOL DllMain(\n    HINSTANCE hinstDLL, // handle to DLL module\n    DWORD
      fdwReason,    // reason for calling function\n    LPVOID lpReserved)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: SHA1_HashBuf
      Src: /src/nss/lib/softoken/fipstest.c:108,1
    - Dst: SHA256_HashBuf
      Src: /src/nss/lib/softoken/fipstest.c:114,1
    - Dst: SHA384_HashBuf
      Src: /src/nss/lib/softoken/fipstest.c:120,1
    - Dst: SHA512_HashBuf
      Src: /src/nss/lib/softoken/fipstest.c:126,1
    - Dst: RSA_HashSign
      Src: /src/nss/lib/softoken/fipstest.c:140,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/softoken/fipstest.c:150,1
    - Dst: RSA_HashCheckSign
      Src: /src/nss/lib/softoken/fipstest.c:160,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 50
    argCount: 6
    argNames:
    - shaAlg
    - rsa_public_key
    - rsa_private_key
    - rsa_known_msg
    - rsa_kmsg_length
    - rsa_known_signature
    argTypes:
    - HASH_HashType
    - NSSLOWKEYPublicKey*
    - NSSLOWKEYPrivateKey*
    - unsigned char*
    - unsigned int
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 175
    functionName: sftk_fips_RSA_PowerUpSigSelfTest
    functionSourceFile: /src/nss/lib/softoken/fipstest.c
    functionUses: 0
    functionsReached:
    - SHA384_HashBuf
    - PORT_Memcmp
    - RSA_HashCheckSign
    - SHA512_HashBuf
    - SHA256_HashBuf
    - SHA1_HashBuf
    - RSA_HashSign
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sftk_fips_RSA_PowerUpSigSelfTest(HASH_HashType shaAlg,\n
      \                                NSSLOWKEYPublicKey *rsa_public_key,\n                                 NSSLOWKEYPrivateKey
      *rsa_private_key,\n                                 const unsigned char *rsa_known_msg,\n
      \                                const unsigned int rsa_kmsg_length,\n                                 const
      unsigned char *rsa_known_signature)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/fipstest.c:526,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/fipstest.c:529,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/fipstest.c:534,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/fipstest.c:537,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/fipstest.c:538,1
    - Dst: sftk_fips_RSA_PowerUpSigSelfTest
      Src: /src/nss/lib/softoken/fipstest.c:550,1
    - Dst: sftk_fips_RSA_PowerUpSigSelfTest
      Src: /src/nss/lib/softoken/fipstest.c:557,1
    - Dst: sftk_fips_RSA_PowerUpSigSelfTest
      Src: /src/nss/lib/softoken/fipstest.c:564,1
    - Dst: nsslowkey_DestroyPublicKey
      Src: /src/nss/lib/softoken/fipstest.c:572,1
    - Dst: nsslowkey_DestroyPrivateKey
      Src: /src/nss/lib/softoken/fipstest.c:573,1
    - Dst: nsslowkey_DestroyPublicKey
      Src: /src/nss/lib/softoken/fipstest.c:579,1
    - Dst: nsslowkey_DestroyPrivateKey
      Src: /src/nss/lib/softoken/fipstest.c:580,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/fipstest.c:582,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 584
    functionName: sftk_fips_RSA_PowerUpSelfTest
    functionSourceFile: /src/nss/lib/softoken/fipstest.c
    functionUses: 0
    functionsReached:
    - PORT_NewArena
    - nsslowkey_DestroyPublicKey
    - PORT_FreeArena
    - sftk_fips_RSA_PowerUpSigSelfTest
    - PORT_SetError
    - nsslowkey_DestroyPrivateKey
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sftk_fips_RSA_PowerUpSelfTest(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sftk_HKDF
      Src: /src/nss/lib/softoken/fipstest.c:652,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/softoken/fipstest.c:656,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/fipstest.c:657,1
    - Dst: sftk_HKDF
      Src: /src/nss/lib/softoken/fipstest.c:663,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/softoken/fipstest.c:667,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/fipstest.c:668,1
    - Dst: sftk_HKDF
      Src: /src/nss/lib/softoken/fipstest.c:673,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/softoken/fipstest.c:677,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/fipstest.c:678,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 586
    functionDepth: 1
    functionLinenumber: 586
    functionLinenumberEnd: 684
    functionName: sftk_fips_HKDF_PowerUpSelfTest
    functionSourceFile: /src/nss/lib/softoken/fipstest.c
    functionUses: 0
    functionsReached:
    - PORT_Memcmp
    - PORT_SetError
    - sftk_HKDF
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sftk_fips_HKDF_PowerUpSelfTest(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/fipstest.c:699,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/fipstest.c:700,1
    - Dst: SECOID_Init
      Src: /src/nss/lib/softoken/fipstest.c:705,1
    - Dst: BL_Init
      Src: /src/nss/lib/softoken/fipstest.c:712,1
    - Dst: RNG_RNGInit
      Src: /src/nss/lib/softoken/fipstest.c:717,1
    - Dst: sftk_fips_RSA_PowerUpSelfTest
      Src: /src/nss/lib/softoken/fipstest.c:722,1
    - Dst: BLAPI_SHVerify
      Src: /src/nss/lib/softoken/fipstest.c:726,1
    - Dst: sftk_fips_IKE_PowerUpSelfTests
      Src: /src/nss/lib/softoken/fipstest.c:732,1
    - Dst: sftk_fips_SP800_108_PowerUpSelfTests
      Src: /src/nss/lib/softoken/fipstest.c:737,1
    - Dst: sftk_fips_HKDF_PowerUpSelfTest
      Src: /src/nss/lib/softoken/fipstest.c:742,1
    - Dst: sftk_fips_pbkdf_PowerUpSelfTests
      Src: /src/nss/lib/softoken/fipstest.c:747,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 1
    argNames:
    - rerun
    argTypes:
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 693
    functionDepth: 3
    functionLinenumber: 693
    functionLinenumberEnd: 753
    functionName: sftk_startup_tests_with_rerun
    functionSourceFile: /src/nss/lib/softoken/fipstest.c
    functionUses: 0
    functionsReached:
    - RNG_RNGInit
    - PORT_Assert
    - BL_Init
    - sftk_fips_pbkdf_PowerUpSelfTests
    - BLAPI_SHVerify
    - sftk_fips_HKDF_PowerUpSelfTest
    - SECOID_Init
    - sftk_fips_RSA_PowerUpSelfTest
    - sftk_fips_IKE_PowerUpSelfTests
    - sftk_fips_SP800_108_PowerUpSelfTests
    linkageType: ''
    returnType: void
    signature: void sftk_startup_tests_with_rerun(PRBool rerun)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sftk_startup_tests_with_rerun
      Src: /src/nss/lib/softoken/fipstest.c:758,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 755
    functionDepth: 4
    functionLinenumber: 755
    functionLinenumberEnd: 759
    functionName: sftk_startup_tests
    functionSourceFile: /src/nss/lib/softoken/fipstest.c
    functionUses: 1
    functionsReached:
    - sftk_startup_tests_with_rerun
    linkageType: ''
    returnType: void
    signature: void sftk_startup_tests(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sftk_startup_tests
      Src: /src/nss/lib/softoken/fipstest.c:777,1
    - Dst: sftk_startup_tests_with_rerun
      Src: /src/nss/lib/softoken/fipstest.c:783,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - rerun
    argTypes:
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 766
    functionDepth: 5
    functionLinenumber: 766
    functionLinenumberEnd: 789
    functionName: sftk_FIPSEntryOK
    functionSourceFile: /src/nss/lib/softoken/fipstest.c
    functionUses: 1
    functionsReached:
    - sftk_startup_tests_with_rerun
    - sftk_startup_tests
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV sftk_FIPSEntryOK(PRBool rerun)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 792
    functionDepth: 0
    functionLinenumber: 792
    functionLinenumberEnd: 796
    functionName: sftk_FIPSEntryOK
    functionSourceFile: /src/nss/lib/softoken/fipstest.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV sftk_FIPSEntryOK()
  - BBCount: 37
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 42
    argCount: 1
    argNames:
    - type
    argTypes:
    - CK_ATTRIBUTE_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 93
    functionName: sftkdb_isULONGAttribute
    functionSourceFile: /src/nss/lib/softoken/sftkdb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool sftkdb_isULONGAttribute(CK_ATTRIBUTE_TYPE type)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - type
    argTypes:
    - CK_ATTRIBUTE_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 112
    functionName: sftkdb_isPrivateAttribute
    functionSourceFile: /src/nss/lib/softoken/sftkdb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool sftkdb_isPrivateAttribute(CK_ATTRIBUTE_TYPE type)
  - BBCount: 18
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 1
    argNames:
    - type
    argTypes:
    - CK_ATTRIBUTE_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 140
    functionName: sftkdb_isAuthenticatedAttribute
    functionSourceFile: /src/nss/lib/softoken/sftkdb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool sftkdb_isAuthenticatedAttribute(CK_ATTRIBUTE_TYPE type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - data
    - value
    argTypes:
    - unsigned char*
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 153
    functionName: sftk_ULong2SDBULong
    functionSourceFile: /src/nss/lib/softoken/sftkdb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sftk_ULong2SDBULong(unsigned char *data, CK_ULONG value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 169
    functionName: sftk_SDBULong2ULong
    functionSourceFile: /src/nss/lib/softoken/sftkdb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_ULONG
    signature: CK_ULONG sftk_SDBULong2ULong(unsigned char *data)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 212
    functionName: sftkdb_isNullTrust
    functionSourceFile: /src/nss/lib/softoken/sftkdb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool sftkdb_isNullTrust(const CK_ATTRIBUTE *template)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sftkdb_isULONGAttribute
      Src: /src/nss/lib/softoken/sftkdb.c:240,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/sftkdb.c:251,1
    - Dst: PORT_NewArray
      Src: /src/nss/lib/softoken/sftkdb.c:257,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/sftkdb.c:259,1
    - Dst: sftkdb_isULONGAttribute
      Src: /src/nss/lib/softoken/sftkdb.c:272,1
    - Dst: sftk_ULong2SDBULong
      Src: /src/nss/lib/softoken/sftkdb.c:274,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 3
    argNames:
    - count
    - dataOut
    - dataOutSize
    argTypes:
    - int
    - unsigned char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 282
    functionName: sftkdb_fixupTemplateIn
    functionSourceFile: /src/nss/lib/softoken/sftkdb.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_Free
    - sftk_ULong2SDBULong
    - PORT_NewArray
    - sftkdb_isULONGAttribute
    linkageType: ''
    returnType: CK_ATTRIBUTE
    signature: "CK_ATTRIBUTE *\nsftkdb_fixupTemplateIn(const CK_ATTRIBUTE *template,
      int count,\n                       unsigned char **dataOut, int *dataOutSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - SFTKDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 293
    functionName: sftkdb_TypeString
    functionSourceFile: /src/nss/lib/softoken/sftkdb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      sftkdb_TypeString(SFTKDBHandle *handle)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/nss/lib/softoken/sftkdb.c:316,1
    - Dst: sftkdb_TypeString
      Src: /src/nss/lib/softoken/sftkdb.c:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - handle
    - db
    - objectID
    - type
    - signText
    argTypes:
    - SFTKDBHandle*
    - SDB*
    - CK_OBJECT_HANDLE
    - CK_ATTRIBUTE_TYPE
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 322
    functionName: sftkdb_getRawAttributeSignature
    functionSourceFile: /src/nss/lib/softoken/sftkdb.c
    functionUses: 0
    functionsReached:
    - sftkdb_TypeString
    - snprintf
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftkdb_getRawAttributeSignature(SFTKDBHandle *handle, SDB *db,\n
      \                               CK_OBJECT_HANDLE objectID,\n                                CK_ATTRIBUTE_TYPE
      type,\n                                SECItem *signText)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_GET_SDB
      Src: /src/nss/lib/softoken/sftkdb.c:329,1
    - Dst: sftkdb_getRawAttributeSignature
      Src: /src/nss/lib/softoken/sftkdb.c:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - handle
    - keyHandle
    - objectID
    - type
    - signText
    argTypes:
    - SFTKDBHandle*
    - SFTKDBHandle*
    - CK_OBJECT_HANDLE
    - CK_ATTRIBUTE_TYPE
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 324
    functionDepth: 2
    functionLinenumber: 324
    functionLinenumberEnd: 331
    functionName: sftkdb_GetAttributeSignature
    functionSourceFile: /src/nss/lib/softoken/sftkdb.c
    functionUses: 0
    functionsReached:
    - sftkdb_getRawAttributeSignature
    - SFTK_GET_SDB
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftkdb_GetAttributeSignature(SFTKDBHandle *handle, SFTKDBHandle
      *keyHandle,\n                             CK_OBJECT_HANDLE objectID, CK_ATTRIBUTE_TYPE
      type,\n                             SECItem *signText)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/nss/lib/softoken/sftkdb.c:341,1
    - Dst: sftkdb_TypeString
      Src: /src/nss/lib/softoken/sftkdb.c:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - handle
    - db
    - objectID
    - type
    argTypes:
    - SFTKDBHandle*
    - SDB*
    - CK_OBJECT_HANDLE
    - CK_ATTRIBUTE_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 347
    functionName: sftkdb_DestroyAttributeSignature
    functionSourceFile: /src/nss/lib/softoken/sftkdb.c
    functionUses: 0
    functionsReached:
    - sftkdb_TypeString
    - snprintf
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftkdb_DestroyAttributeSignature(SFTKDBHandle *handle, SDB *db,\n
      \                                CK_OBJECT_HANDLE objectID,\n                                 CK_ATTRIBUTE_TYPE
      type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/nss/lib/softoken/sftkdb.c:367,1
    - Dst: sftkdb_TypeString
      Src: /src/nss/lib/softoken/sftkdb.c:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - handle
    - keyTarget
    - objectID
    - type
    - signText
    argTypes:
    - SFTKDBHandle*
    - SDB*
    - CK_OBJECT_HANDLE
    - CK_ATTRIBUTE_TYPE
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 373
    functionName: sftkdb_PutAttributeSignature
    functionSourceFile: /src/nss/lib/softoken/sftkdb.c
    functionUses: 0
    functionsReached:
    - sftkdb_TypeString
    - snprintf
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftkdb_PutAttributeSignature(SFTKDBHandle *handle, SDB *keyTarget,\n
      \                            CK_OBJECT_HANDLE objectID, CK_ATTRIBUTE_TYPE type,\n
      \                            SECItem *signText)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/sftkdb.c:389,1
    - Dst: SFTK_GET_SDB
      Src: /src/nss/lib/softoken/sftkdb.c:399,1
    - Dst: sftkdb_PWCached
      Src: /src/nss/lib/softoken/sftkdb.c:400,1
    - Dst: sftkdb_isULONGAttribute
      Src: /src/nss/lib/softoken/sftkdb.c:409,1
    - Dst: sftk_SDBULong2ULong
      Src: /src/nss/lib/softoken/sftkdb.c:413,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/sftkdb.c:419,1
    - Dst: sftkdb_isPrivateAttribute
      Src: /src/nss/lib/softoken/sftkdb.c:432,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/sftkdb.c:442,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/sftkdb.c:444,1
    - Dst: sftkdb_DecryptAttribute
      Src: /src/nss/lib/softoken/sftkdb.c:449,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/sftkdb.c:454,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/sftkdb.c:456,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/sftkdb.c:461,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/sftkdb.c:463,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/sftkdb.c:464,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/sftkdb.c:471,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/sftkdb.c:473,1
    - Dst: sftkdb_isAuthenticatedAttribute
      Src: /src/nss/lib/softoken/sftkdb.c:476,1
    - Dst: sftkdb_isNullTrust
      Src: /src/nss/lib/softoken/sftkdb.c:476,1
    - Dst: sftkdb_GetAttributeSignature
      Src: /src/nss/lib/softoken/sftkdb.c:489,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/sftkdb.c:494,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/sftkdb.c:507,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/sftkdb.c:512,1
    - Dst: sftkdb_VerifyAttribute
      Src: /src/nss/lib/softoken/sftkdb.c:516,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/sftkdb.c:520,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/sftkdb.c:522,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 79
    argCount: 4
    argNames:
    - objectID
    - ntemplate
    - count
    - handle
    argTypes:
    - CK_OBJECT_HANDLE
    - CK_ATTRIBUTE*
    - int
    - SFTKDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 379
    functionDepth: 3
    functionLinenumber: 379
    functionLinenumberEnd: 530
    functionName: sftkdb_fixupTemplateOut
    functionSourceFile: /src/nss/lib/softoken/sftkdb.c
    functionUses: 0
    functionsReached:
    - sftk_SDBULong2ULong
    - PORT_Assert
    - sftkdb_PWCached
    - sftkdb_isNullTrust
    - PORT_Memcpy
    - sftkdb_isAuthenticatedAttribute
    - sftkdb_DecryptAttribute
    - sftkdb_isPrivateAttribute
    - sftkdb_VerifyAttribute
    - PZ_Unlock
    - SFTK_GET_SDB
    - PZ_Lock
    - PORT_Memset
    - SECITEM_ZfreeItem
    - sftkdb_isULONGAttribute
    - sftkdb_GetAttributeSignature
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftkdb_fixupTemplateOut(CK_ATTRIBUTE *template, CK_OBJECT_HANDLE
      objectID,\n                        CK_ATTRIBUTE *ntemplate, int count, SFTKDBHandle
      *handle)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/sftkdb.c:577,1
    - Dst: sftkdb_isAuthenticatedAttribute
      Src: /src/nss/lib/softoken/sftkdb.c:612,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/sftkdb.c:619,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/sftkdb.c:621,1
    - Dst: sftkdb_SignAttribute
      Src: /src/nss/lib/softoken/sftkdb.c:625,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/sftkdb.c:630,1
    - Dst: sftkdb_PutAttributeSignature
      Src: /src/nss/lib/softoken/sftkdb.c:635,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/sftkdb.c:657,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 68
    argCount: 5
    argNames:
    - arena
    - handle
    - mayBeUpdateDB
    - objectID
    - count
    argTypes:
    - PLArenaPool*
    - SFTKDBHandle*
    - PRBool
    - CK_OBJECT_HANDLE
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 564
    functionDepth: 2
    functionLinenumber: 564
    functionLinenumberEnd: 662
    functionName: sftk_signTemplate
    functionSourceFile: /src/nss/lib/softoken/sftkdb.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - sftkdb_isAuthenticatedAttribute
    - sftkdb_SignAttribute
    - PZ_Unlock
    - sftkdb_PutAttributeSignature
    - PZ_Lock
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftk_signTemplate(PLArenaPool *arena, SFTKDBHandle *handle,\n
      \                 PRBool mayBeUpdateDB,\n                  CK_OBJECT_HANDLE
      objectID, const CK_ATTRIBUTE *template,\n                  CK_ULONG count)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sftk_signTemplate
      Src: /src/nss/lib/softoken/sftkdb.c:675,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - arena
    - handle
    - db
    - objectID
    - count
    argTypes:
    - PLArenaPool*
    - SFTKDBHandle*
    - SDB*
    - CK_OBJECT_HANDLE*
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 664
    functionDepth: 3
    functionLinenumber: 664
    functionLinenumberEnd: 680
    functionName: sftkdb_CreateObject
    functionSourceFile: /src/nss/lib/softoken/sftkdb.c
    functionUses: 0
    functionsReached:
    - sftk_signTemplate
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftkdb_CreateObject(PLArenaPool *arena, SFTKDBHandle *handle,\n
      \                   SDB *db, CK_OBJECT_HANDLE *objectID,\n                    CK_ATTRIBUTE
      *template, CK_ULONG count)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sftkdb_isPrivateAttribute
      Src: /src/nss/lib/softoken/sftkdb.c:697,1
    - Dst: sftkdb_getRawAttributeSignature
      Src: /src/nss/lib/softoken/sftkdb.c:705,1
    - Dst: sftkdb_PutAttributeSignature
      Src: /src/nss/lib/softoken/sftkdb.c:713,1
    - Dst: sftkdb_DestroyAttributeSignature
      Src: /src/nss/lib/softoken/sftkdb.c:719,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 6
    argNames:
    - handle
    - db
    - oldID
    - newID
    - ptemplate
    - max_attributes
    argTypes:
    - SFTKDBHandle*
    - SDB*
    - CK_OBJECT_HANDLE
    - CK_OBJECT_HANDLE
    - CK_ATTRIBUTE*
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 682
    functionDepth: 2
    functionLinenumber: 682
    functionLinenumberEnd: 726
    functionName: sftkdb_fixupSignatures
    functionSourceFile: /src/nss/lib/softoken/sftkdb.c
    functionUses: 0
    functionsReached:
    - sftkdb_getRawAttributeSignature
    - sftkdb_isPrivateAttribute
    - sftkdb_PutAttributeSignature
    - sftkdb_DestroyAttributeSignature
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftkdb_fixupSignatures(SFTKDBHandle *handle,\n                       SDB
      *db, CK_OBJECT_HANDLE oldID, CK_OBJECT_HANDLE newID,\n                       CK_ATTRIBUTE
      *ptemplate, CK_ULONG max_attributes)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: sftk_narrowToSessionObject
      Src: /src/nss/lib/softoken/sftkdb.c:736,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/sftkdb.c:746,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/sftkdb.c:752,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/sftkdb.c:762,1
    - Dst: sftkdb_isULONGAttribute
      Src: /src/nss/lib/softoken/sftkdb.c:776,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/sftkdb.c:780,1
    - Dst: sftk_ULong2SDBULong
      Src: /src/nss/lib/softoken/sftkdb.c:786,1
    - Dst: sftkdb_isPrivateAttribute
      Src: /src/nss/lib/softoken/sftkdb.c:791,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/sftkdb.c:799,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/sftkdb.c:801,1
    - Dst: sftkdb_EncryptAttribute
      Src: /src/nss/lib/softoken/sftkdb.c:805,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/sftkdb.c:811,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/sftkdb.c:819,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/sftkdb.c:823,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/sftkdb.c:824,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 67
    argCount: 7
    argNames:
    - arena
    - object
    - handle
    - objectID
    - db
    - pcount
    - crv
    argTypes:
    - PLArenaPool*
    - SFTKObject*
    - SFTKDBHandle*
    - CK_OBJECT_HANDLE
    - SDB*
    - CK_ULONG*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 728
    functionDepth: 1
    functionLinenumber: 728
    functionLinenumberEnd: 833
    functionName: sftk_ExtractTemplate
    functionSourceFile: /src/nss/lib/softoken/sftkdb.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - sftkdb_EncryptAttribute
    - PORT_ArenaAlloc
    - sftkdb_isPrivateAttribute
    - PZ_Unlock
    - sftk_ULong2SDBULong
    - sftk_narrowToSessionObject
    - PZ_Lock
    - PORT_Memset
    - sftkdb_isULONGAttribute
    linkageType: ''
    returnType: CK_ATTRIBUTE
    signature: "CK_ATTRIBUTE *\nsftk_ExtractTemplate(PLArenaPool *arena, SFTKObject
      *object,\n                     SFTKDBHandle *handle, CK_OBJECT_HANDLE objectID,\n
      \                    SDB *db, CK_ULONG *pcount, CK_RV *crv)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - attribute
    - ptemplate
    - len
    argTypes:
    - CK_ATTRIBUTE_TYPE
    - CK_ATTRIBUTE*
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 841
    functionDepth: 0
    functionLinenumber: 841
    functionLinenumberEnd: 853
    functionName: sftkdb_getAttributeFromTemplate
    functionSourceFile: /src/nss/lib/softoken/sftkdb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_ATTRIBUTE
    signature: "CK_ATTRIBUTE *\nsftkdb_getAttributeFromTemplate(CK_ATTRIBUTE_TYPE
      attribute,\n                                CK_ATTRIBUTE *ptemplate, CK_ULONG
      len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - attribute
    - ptemplate
    - len
    argTypes:
    - CK_ATTRIBUTE_TYPE
    - CK_ATTRIBUTE*
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 855
    functionDepth: 0
    functionLinenumber: 855
    functionLinenumberEnd: 867
    functionName: sftkdb_getAttributeFromConstTemplate
    functionSourceFile: /src/nss/lib/softoken/sftkdb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_ATTRIBUTE
    signature: "CK_ATTRIBUTE *\nsftkdb_getAttributeFromConstTemplate(CK_ATTRIBUTE_TYPE
      attribute,\n                                     const CK_ATTRIBUTE *ptemplate,
      CK_ULONG len)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: sftk_ULong2SDBULong
      Src: /src/nss/lib/softoken/sftkdb.c:880,1
    - Dst: sftkdb_getAttributeFromTemplate
      Src: /src/nss/lib/softoken/sftkdb.c:889,1
    - Dst: sftkdb_getAttributeFromTemplate
      Src: /src/nss/lib/softoken/sftkdb.c:894,1
    - Dst: sftkdb_getAttributeFromTemplate
      Src: /src/nss/lib/softoken/sftkdb.c:906,1
    - Dst: sftkdb_getAttributeFromTemplate
      Src: /src/nss/lib/softoken/sftkdb.c:921,1
    - Dst: sftkdb_getAttributeFromTemplate
      Src: /src/nss/lib/softoken/sftkdb.c:930,1
    - Dst: sftkdb_getAttributeFromTemplate
      Src: /src/nss/lib/softoken/sftkdb.c:935,1
    - Dst: sftkdb_getAttributeFromTemplate
      Src: /src/nss/lib/softoken/sftkdb.c:943,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 66
    argCount: 6
    argNames:
    - objectType
    - objTypeData
    - findTemplate
    - findCount
    - ptemplate
    - len
    argTypes:
    - CK_OBJECT_CLASS
    - unsigned char*
    - CK_ATTRIBUTE*
    - CK_ULONG*
    - CK_ATTRIBUTE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 872
    functionDepth: 1
    functionLinenumber: 872
    functionLinenumberEnd: 954
    functionName: sftkdb_getFindTemplate
    functionSourceFile: /src/nss/lib/softoken/sftkdb.c
    functionUses: 0
    functionsReached:
    - sftkdb_getAttributeFromTemplate
    - sftk_ULong2SDBULong
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftkdb_getFindTemplate(CK_OBJECT_CLASS objectType, unsigned
      char *objTypeData,\n                       CK_ATTRIBUTE *findTemplate, CK_ULONG
      *findCount,\n                       CK_ATTRIBUTE *ptemplate, int len)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sftkdb_getFindTemplate
      Src: /src/nss/lib/softoken/sftkdb.c:975,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 5
    argNames:
    - db
    - objectType
    - id
    - ptemplate
    - len
    argTypes:
    - SDB*
    - CK_OBJECT_CLASS
    - CK_OBJECT_HANDLE*
    - CK_ATTRIBUTE*
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 960
    functionDepth: 2
    functionLinenumber: 960
    functionLinenumberEnd: 1000
    functionName: sftkdb_lookupObject
    functionSourceFile: /src/nss/lib/softoken/sftkdb.c
    functionUses: 0
    functionsReached:
    - sftkdb_getFindTemplate
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftkdb_lookupObject(SDB *db, CK_OBJECT_CLASS objectType,\n                    CK_OBJECT_HANDLE
      *id, CK_ATTRIBUTE *ptemplate, CK_ULONG len)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: sftkdb_getAttributeFromConstTemplate
      Src: /src/nss/lib/softoken/sftkdb.c:1030,1
    - Dst: sftkdb_getAttributeFromConstTemplate
      Src: /src/nss/lib/softoken/sftkdb.c:1036,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/sftkdb.c:1057,1
    - Dst: sftk_ULong2SDBULong
      Src: /src/nss/lib/softoken/sftkdb.c:1070,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/sftkdb.c:1098,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/softoken/sftkdb.c:1119,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/sftkdb.c:1137,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/sftkdb.c:1138,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 93
    argCount: 5
    argNames:
    - db
    - objectType
    - ptemplate
    - len
    - sourceID
    argTypes:
    - SDB*
    - CK_OBJECT_CLASS
    - CK_ATTRIBUTE*
    - CK_ULONG
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1140
      start: 1005
    functionDepth: 1
    functionLinenumber: 1005
    functionLinenumberEnd: 1140
    functionName: sftkdb_checkConflicts
    functionSourceFile: /src/nss/lib/softoken/sftkdb.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_Memcmp
    - PORT_Free
    - sftk_ULong2SDBULong
    - sftkdb_getAttributeFromConstTemplate
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftkdb_checkConflicts(SDB *db, CK_OBJECT_CLASS objectType,\n
      \                     const CK_ATTRIBUTE *ptemplate, CK_ULONG len,\n                      CK_OBJECT_HANDLE
      sourceID)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sftkdb_getAttributeFromTemplate
      Src: /src/nss/lib/softoken/sftkdb.c:1166,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/sftkdb.c:1189,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/sftkdb.c:1193,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/sftkdb.c:1194,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/sftkdb.c:1213,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/sftkdb.c:1218,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/sftkdb.c:1220,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 44
    argCount: 4
    argNames:
    - arena
    - objectType
    - ptemplate
    - plen
    argTypes:
    - PLArenaPool*
    - CK_OBJECT_CLASS
    - CK_ATTRIBUTE*
    - CK_ULONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1224
      start: 1154
    functionDepth: 1
    functionLinenumber: 1154
    functionLinenumberEnd: 1224
    functionName: sftkdb_resolveConflicts
    functionSourceFile: /src/nss/lib/softoken/sftkdb.c
    functionUses: 0
    functionsReached:
    - PORT_Memset
    - PORT_ArenaAlloc
    - PORT_Memcpy
    - sftkdb_getAttributeFromTemplate
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftkdb_resolveConflicts(PLArenaPool *arena, CK_OBJECT_CLASS
      objectType,\n                        CK_ATTRIBUTE *ptemplate, CK_ULONG *plen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sftk_signTemplate
      Src: /src/nss/lib/softoken/sftkdb.c:1239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - arena
    - handle
    - db
    - objectID
    - count
    argTypes:
    - PLArenaPool*
    - SFTKDBHandle*
    - SDB*
    - CK_OBJECT_HANDLE
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1242
      start: 1229
    functionDepth: 3
    functionLinenumber: 1229
    functionLinenumberEnd: 1242
    functionName: sftkdb_setAttributeValue
    functionSourceFile: /src/nss/lib/softoken/sftkdb.c
    functionUses: 0
    functionsReached:
    - sftk_signTemplate
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftkdb_setAttributeValue(PLArenaPool *arena, SFTKDBHandle *handle,\n
      \                        SDB *db, CK_OBJECT_HANDLE objectID, const CK_ATTRIBUTE
      *template,\n                         CK_ULONG count)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_GET_SDB
      Src: /src/nss/lib/softoken/sftkdb.c:1264,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/sftkdb.c:1277,1
    - Dst: sftkdb_checkConflicts
      Src: /src/nss/lib/softoken/sftkdb.c:1314,1
    - Dst: sftkdb_lookupObject
      Src: /src/nss/lib/softoken/sftkdb.c:1320,1
    - Dst: sftkdb_CreateObject
      Src: /src/nss/lib/softoken/sftkdb.c:1326,1
    - Dst: sftkdb_fixupSignatures
      Src: /src/nss/lib/softoken/sftkdb.c:1332,1
    - Dst: sftkdb_setAttributeValue
      Src: /src/nss/lib/softoken/sftkdb.c:1337,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/sftkdb.c:1351,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/sftkdb.c:1357,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 71
    argCount: 3
    argNames:
    - handle
    - object
    - objectID
    argTypes:
    - SFTKDBHandle*
    - SFTKObject*
    - CK_OBJECT_HANDLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1363
      start: 1247
    functionDepth: 4
    functionLinenumber: 1247
    functionLinenumberEnd: 1363
    functionName: sftkdb_write
    functionSourceFile: /src/nss/lib/softoken/sftkdb.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - sftkdb_lookupObject
    - sftkdb_checkConflicts
    - PORT_NewArena
    - sftkdb_fixupSignatures
    - PORT_FreeArena
    - SFTK_GET_SDB
    - sftkdb_setAttributeValue
    - sftkdb_CreateObject
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftkdb_write(SFTKDBHandle *handle, SFTKObject *object,\n             CK_OBJECT_HANDLE
      *objectID)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_GET_SDB
      Src: /src/nss/lib/softoken/sftkdb.c:1378,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/sftkdb.c:1390,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/softoken/sftkdb.c:1391,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - handle
    - count
    - find
    argTypes:
    - SFTKDBHandle*
    - CK_ULONG
    - SDBFind**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1394
      start: 1365
    functionDepth: 1
    functionLinenumber: 1365
    functionLinenumberEnd: 1394
    functionName: sftkdb_FindObjectsInit
    functionSourceFile: /src/nss/lib/softoken/sftkdb.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - PORT_ZFree
    - SFTK_GET_SDB
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftkdb_FindObjectsInit(SFTKDBHandle *handle, const CK_ATTRIBUTE
      *template,\n                       CK_ULONG count, SDBFind **find)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_GET_SDB
      Src: /src/nss/lib/softoken/sftkdb.c:1407,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - handle
    - find
    - ids
    - arraySize
    - count
    argTypes:
    - SFTKDBHandle*
    - SDBFind*
    - CK_OBJECT_HANDLE*
    - int
    - CK_ULONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1418
      start: 1396
    functionDepth: 1
    functionLinenumber: 1396
    functionLinenumberEnd: 1418
    functionName: sftkdb_FindObjects
    functionSourceFile: /src/nss/lib/softoken/sftkdb.c
    functionUses: 0
    functionsReached:
    - SFTK_GET_SDB
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftkdb_FindObjects(SFTKDBHandle *handle, SDBFind *find,\n                   CK_OBJECT_HANDLE
      *ids, int arraySize, CK_ULONG *count)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_GET_SDB
      Src: /src/nss/lib/softoken/sftkdb.c:1427,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - handle
    - find
    argTypes:
    - SFTKDBHandle*
    - SDBFind*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1429
      start: 1420
    functionDepth: 1
    functionLinenumber: 1420
    functionLinenumberEnd: 1429
    functionName: sftkdb_FindObjectsFinal
    functionSourceFile: /src/nss/lib/softoken/sftkdb.c
    functionUses: 0
    functionsReached:
    - SFTK_GET_SDB
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV sftkdb_FindObjectsFinal(SFTKDBHandle *handle, SDBFind *find)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/nss/lib/softoken/sftkpwd.c:44,1
    - Dst: atoi
      Src: /src/nss/lib/softoken/sftkpwd.c:46,1
    - Dst: getenv
      Src: /src/nss/lib/softoken/sftkpwd.c:52,1
    - Dst: atoi
      Src: /src/nss/lib/softoken/sftkpwd.c:54,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 61
    functionName: getPBEIterationCount
    functionSourceFile: /src/nss/lib/softoken/sftkpwd.c
    functionUses: 0
    functionsReached:
    - getenv
    - atoi
    linkageType: ''
    returnType: int
    signature: int getPBEIterationCount(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/nss/lib/softoken/sftkpwd.c:68,1
    - Dst: strcmp
      Src: /src/nss/lib/softoken/sftkpwd.c:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 70
    functionName: sftk_isLegacyIterationCountAllowed
    functionSourceFile: /src/nss/lib/softoken/sftkpwd.c
    functionUses: 0
    functionsReached:
    - strcmp
    - getenv
    linkageType: ''
    returnType: PRBool
    signature: PRBool sftk_isLegacyIterationCountAllowed(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/sftkpwd.c:96,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/sftkpwd.c:100,1
    - Dst: SHA1_NewContext
      Src: /src/nss/lib/softoken/sftkpwd.c:106,1
    - Dst: SHA1_Begin
      Src: /src/nss/lib/softoken/sftkpwd.c:110,1
    - Dst: SHA1_Update
      Src: /src/nss/lib/softoken/sftkpwd.c:112,1
    - Dst: SHA1_Update
      Src: /src/nss/lib/softoken/sftkpwd.c:114,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/softoken/sftkpwd.c:114,1
    - Dst: SHA1_End
      Src: /src/nss/lib/softoken/sftkpwd.c:115,1
    - Dst: SHA1_DestroyContext
      Src: /src/nss/lib/softoken/sftkpwd.c:120,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/softoken/sftkpwd.c:124,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 4
    argNames:
    - keydb
    - salt
    - pw
    - key
    argTypes:
    - SFTKDBHandle*
    - SECItem*
    - char*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 129
    functionName: sftkdb_passwordToKey
    functionSourceFile: /src/nss/lib/softoken/sftkpwd.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - SHA1_End
    - PORT_ZFree
    - PORT_Strlen
    - SHA1_NewContext
    - PORT_SetError
    - SHA1_DestroyContext
    - SHA1_Begin
    - SHA1_Update
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sftkdb_passwordToKey(SFTKDBHandle *keydb, SECItem *salt,\n
      \                    const char *pw, SECItem *key)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/sftkpwd.c:181,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/sftkpwd.c:185,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/softoken/sftkpwd.c:190,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/softoken/sftkpwd.c:195,1
    - Dst: nsspkcs5_AlgidToParam
      Src: /src/nss/lib/softoken/sftkpwd.c:196,1
    - Dst: nsspkcs5_DestroyPBEParameter
      Src: /src/nss/lib/softoken/sftkpwd.c:206,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/sftkpwd.c:210,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 2
    argNames:
    - cipherText
    - cipherValue
    argTypes:
    - SECItem*
    - sftkCipherValue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 213
    functionName: sftkdb_decodeCipherText
    functionSourceFile: /src/nss/lib/softoken/sftkpwd.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SECOID_GetAlgorithmTag
    - PORT_NewArena
    - PORT_FreeArena
    - nsspkcs5_DestroyPBEParameter
    - SEC_QuickDERDecodeItem
    - nsspkcs5_AlgidToParam
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sftkdb_decodeCipherText(const SECItem *cipherText, sftkCipherValue
      *cipherValue)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/sftkpwd.c:229,1
    - Dst: nsspkcs5_CreateAlgorithmID
      Src: /src/nss/lib/softoken/sftkpwd.c:234,1
    - Dst: SECOID_CopyAlgorithmID
      Src: /src/nss/lib/softoken/sftkpwd.c:240,1
    - Dst: SECOID_DestroyAlgorithmID
      Src: /src/nss/lib/softoken/sftkpwd.c:241,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/softoken/sftkpwd.c:247,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/sftkpwd.c:255,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - arena
    - cipherValue
    - cipherText
    argTypes:
    - PLArenaPool*
    - sftkCipherValue*
    - SECItem**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 259
    functionName: sftkdb_encodeCipherText
    functionSourceFile: /src/nss/lib/softoken/sftkpwd.c
    functionUses: 0
    functionsReached:
    - SEC_ASN1EncodeItem
    - PORT_NewArena
    - PORT_FreeArena
    - SECOID_CopyAlgorithmID
    - SECOID_DestroyAlgorithmID
    - nsspkcs5_CreateAlgorithmID
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sftkdb_encodeCipherText(PLArenaPool *arena, sftkCipherValue
      *cipherValue,\n                        SECItem **cipherText)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: sftkdb_decodeCipherText
      Src: /src/nss/lib/softoken/sftkpwd.c:277,1
    - Dst: nsspkcs5_CipherData
      Src: /src/nss/lib/softoken/sftkpwd.c:282,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/sftkpwd.c:301,1
    - Dst: sftkdb_GetAttributeSignature
      Src: /src/nss/lib/softoken/sftkpwd.c:309,1
    - Dst: sftkdb_VerifyAttribute
      Src: /src/nss/lib/softoken/sftkpwd.c:312,1
    - Dst: sftkdb_GetAttributeSignature
      Src: /src/nss/lib/softoken/sftkpwd.c:320,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/sftkpwd.c:324,1
    - Dst: sftkdb_VerifyAttribute
      Src: /src/nss/lib/softoken/sftkpwd.c:327,1
    - Dst: nsspkcs5_DestroyPBEParameter
      Src: /src/nss/lib/softoken/sftkpwd.c:334,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/sftkpwd.c:337,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/sftkpwd.c:341,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 53
    argCount: 6
    argNames:
    - handle
    - passKey
    - id
    - type
    - cipherText
    - plain
    argTypes:
    - SFTKDBHandle*
    - SECItem*
    - CK_OBJECT_HANDLE
    - CK_ATTRIBUTE_TYPE
    - SECItem*
    - SECItem**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 267
    functionDepth: 3
    functionLinenumber: 267
    functionLinenumberEnd: 345
    functionName: sftkdb_DecryptAttribute
    functionSourceFile: /src/nss/lib/softoken/sftkpwd.c
    functionUses: 1
    functionsReached:
    - PORT_FreeArena
    - nsspkcs5_DestroyPBEParameter
    - sftkdb_VerifyAttribute
    - PORT_SetError
    - sftkdb_decodeCipherText
    - SECITEM_ZfreeItem
    - nsspkcs5_CipherData
    - sftkdb_GetAttributeSignature
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sftkdb_DecryptAttribute(SFTKDBHandle *handle, SECItem *passKey,\n
      \                       CK_OBJECT_HANDLE id, CK_ATTRIBUTE_TYPE type,\n                        SECItem
      *cipherText, SECItem **plain)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - handle
    - db
    argTypes:
    - SFTKDBHandle*
    - SDB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 367
    functionName: sftkdb_useLegacyEncryption
    functionSourceFile: /src/nss/lib/softoken/sftkpwd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool sftkdb_useLegacyEncryption(SFTKDBHandle *handle, SDB *db)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: sftkdb_useLegacyEncryption
      Src: /src/nss/lib/softoken/sftkpwd.c:389,1
    - Dst: RNG_GenerateGlobalRandomBytes
      Src: /src/nss/lib/softoken/sftkpwd.c:399,1
    - Dst: nsspkcs5_NewParam
      Src: /src/nss/lib/softoken/sftkpwd.c:401,1
    - Dst: nsspkcs5_CipherData
      Src: /src/nss/lib/softoken/sftkpwd.c:407,1
    - Dst: sftkdb_encodeCipherText
      Src: /src/nss/lib/softoken/sftkpwd.c:415,1
    - Dst: sftkdb_SignAttribute
      Src: /src/nss/lib/softoken/sftkpwd.c:423,1
    - Dst: sftkdb_PutAttributeSignature
      Src: /src/nss/lib/softoken/sftkpwd.c:429,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/sftkpwd.c:438,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/softoken/sftkpwd.c:441,1
    - Dst: nsspkcs5_DestroyPBEParameter
      Src: /src/nss/lib/softoken/sftkpwd.c:444,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 55
    argCount: 9
    argNames:
    - arena
    - handle
    - db
    - passKey
    - iterationCount
    - id
    - type
    - plainText
    - cipherText
    argTypes:
    - PLArenaPool*
    - SFTKDBHandle*
    - SDB*
    - SECItem*
    - int
    - CK_OBJECT_HANDLE
    - CK_ATTRIBUTE_TYPE
    - SECItem*
    - SECItem**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 375
    functionDepth: 2
    functionLinenumber: 375
    functionLinenumberEnd: 447
    functionName: sftkdb_EncryptAttribute
    functionSourceFile: /src/nss/lib/softoken/sftkpwd.c
    functionUses: 1
    functionsReached:
    - sftkdb_useLegacyEncryption
    - sftkdb_SignAttribute
    - nsspkcs5_DestroyPBEParameter
    - nsspkcs5_NewParam
    - sftkdb_PutAttributeSignature
    - RNG_GenerateGlobalRandomBytes
    - sftkdb_encodeCipherText
    - nsspkcs5_CipherData
    - SECITEM_FreeItem
    - SECITEM_ZfreeItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sftkdb_EncryptAttribute(PLArenaPool *arena, SFTKDBHandle
      *handle, SDB *db,\n                        SECItem *passKey, int iterationCount,\n
      \                       CK_OBJECT_HANDLE id, CK_ATTRIBUTE_TYPE type,\n                        SECItem
      *plainText, SECItem **cipherText)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: HASH_FromHMACOid
      Src: /src/nss/lib/softoken/sftkpwd.c:468,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/sftkpwd.c:470,1
    - Dst: HASH_GetRawHashObject
      Src: /src/nss/lib/softoken/sftkpwd.c:474,1
    - Dst: nsspkcs5_ComputeKeyAndIV
      Src: /src/nss/lib/softoken/sftkpwd.c:479,1
    - Dst: HMAC_Create
      Src: /src/nss/lib/softoken/sftkpwd.c:484,1
    - Dst: HMAC_Begin
      Src: /src/nss/lib/softoken/sftkpwd.c:488,1
    - Dst: sftk_ULong2SDBULong
      Src: /src/nss/lib/softoken/sftkpwd.c:492,1
    - Dst: HMAC_Update
      Src: /src/nss/lib/softoken/sftkpwd.c:493,1
    - Dst: sftk_ULong2SDBULong
      Src: /src/nss/lib/softoken/sftkpwd.c:494,1
    - Dst: HMAC_Update
      Src: /src/nss/lib/softoken/sftkpwd.c:495,1
    - Dst: HMAC_Update
      Src: /src/nss/lib/softoken/sftkpwd.c:497,1
    - Dst: HMAC_Finish
      Src: /src/nss/lib/softoken/sftkpwd.c:498,1
    - Dst: HMAC_Destroy
      Src: /src/nss/lib/softoken/sftkpwd.c:502,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/sftkpwd.c:505,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 7
    argNames:
    - sigOid
    - passKey
    - param
    - objectID
    - attrType
    - plainText
    - signData
    argTypes:
    - SECOidTag
    - SECItem*
    - NSSPKCS5PBEParameter*
    - CK_OBJECT_HANDLE
    - CK_ATTRIBUTE_TYPE
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 455
    functionDepth: 1
    functionLinenumber: 455
    functionLinenumberEnd: 508
    functionName: sftkdb_pbehash
    functionSourceFile: /src/nss/lib/softoken/sftkpwd.c
    functionUses: 0
    functionsReached:
    - HASH_FromHMACOid
    - HMAC_Finish
    - nsspkcs5_ComputeKeyAndIV
    - sftk_ULong2SDBULong
    - HMAC_Destroy
    - PORT_SetError
    - HMAC_Begin
    - HASH_GetRawHashObject
    - SECITEM_ZfreeItem
    - HMAC_Update
    - HMAC_Create
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sftkdb_pbehash(SECOidTag sigOid, SECItem *passKey,\n               NSSPKCS5PBEParameter
      *param,\n               CK_OBJECT_HANDLE objectID, CK_ATTRIBUTE_TYPE attrType,\n
      \              SECItem *plainText, SECItem *signData)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sftkdb_decodeCipherText
      Src: /src/nss/lib/softoken/sftkpwd.c:527,1
    - Dst: sftkdb_pbehash
      Src: /src/nss/lib/softoken/sftkpwd.c:534,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/softoken/sftkpwd.c:539,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/sftkpwd.c:540,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/sftkpwd.c:545,1
    - Dst: nsspkcs5_DestroyPBEParameter
      Src: /src/nss/lib/softoken/sftkpwd.c:547,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/sftkpwd.c:550,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 6
    argNames:
    - handle
    - passKey
    - objectID
    - attrType
    - plainText
    - signText
    argTypes:
    - SFTKDBHandle*
    - SECItem*
    - CK_OBJECT_HANDLE
    - CK_ATTRIBUTE_TYPE
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 515
    functionDepth: 2
    functionLinenumber: 515
    functionLinenumberEnd: 553
    functionName: sftkdb_VerifyAttribute
    functionSourceFile: /src/nss/lib/softoken/sftkpwd.c
    functionUses: 2
    functionsReached:
    - SECITEM_CompareItem
    - PORT_FreeArena
    - nsspkcs5_DestroyPBEParameter
    - sftkdb_pbehash
    - PORT_SetError
    - PORT_Memset
    - sftkdb_decodeCipherText
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sftkdb_VerifyAttribute(SFTKDBHandle *handle,\n                       SECItem
      *passKey, CK_OBJECT_HANDLE objectID,\n                       CK_ATTRIBUTE_TYPE
      attrType,\n                       SECItem *plainText, SECItem *signText)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: HASH_FromHMACOid
      Src: /src/nss/lib/softoken/sftkpwd.c:579,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/sftkpwd.c:580,1
    - Dst: HASH_GetRawHashObject
      Src: /src/nss/lib/softoken/sftkpwd.c:581,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/sftkpwd.c:582,1
    - Dst: HASH_GetRawHashObject
      Src: /src/nss/lib/softoken/sftkpwd.c:584,1
    - Dst: HASH_FromHMACOid
      Src: /src/nss/lib/softoken/sftkpwd.c:584,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/sftkpwd.c:585,1
    - Dst: RNG_GenerateGlobalRandomBytes
      Src: /src/nss/lib/softoken/sftkpwd.c:593,1
    - Dst: nsspkcs5_NewParam
      Src: /src/nss/lib/softoken/sftkpwd.c:596,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/lib/softoken/sftkpwd.c:608,1
    - Dst: sftkdb_pbehash
      Src: /src/nss/lib/softoken/sftkpwd.c:614,1
    - Dst: sftkdb_encodeCipherText
      Src: /src/nss/lib/softoken/sftkpwd.c:622,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/sftkpwd.c:628,1
    - Dst: nsspkcs5_DestroyPBEParameter
      Src: /src/nss/lib/softoken/sftkpwd.c:630,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 46
    argCount: 9
    argNames:
    - arena
    - keyDB
    - db
    - passKey
    - iterationCount
    - objectID
    - attrType
    - plainText
    - signature
    argTypes:
    - PLArenaPool*
    - SFTKDBHandle*
    - SDB*
    - SECItem*
    - int
    - CK_OBJECT_HANDLE
    - CK_ATTRIBUTE_TYPE
    - SECItem*
    - SECItem**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 559
    functionDepth: 2
    functionLinenumber: 559
    functionLinenumberEnd: 633
    functionName: sftkdb_SignAttribute
    functionSourceFile: /src/nss/lib/softoken/sftkpwd.c
    functionUses: 2
    functionsReached:
    - PORT_Assert
    - HASH_FromHMACOid
    - nsspkcs5_DestroyPBEParameter
    - sftkdb_pbehash
    - SECOID_SetAlgorithmID
    - nsspkcs5_NewParam
    - RNG_GenerateGlobalRandomBytes
    - HASH_GetRawHashObject
    - PORT_Memset
    - sftkdb_encodeCipherText
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sftkdb_SignAttribute(PLArenaPool *arena, SFTKDBHandle *keyDB,
      SDB *db,\n                     SECItem *passKey, int iterationCount,\n                     CK_OBJECT_HANDLE
      objectID,\n                     CK_ATTRIBUTE_TYPE attrType,\n                     SECItem
      *plainText, SECItem **signature)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/sftkpwd.c:649,1
    - Dst: SKIP_AFTER_FORK
      Src: /src/nss/lib/softoken/sftkpwd.c:654,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/sftkpwd.c:654,1
    - Dst: SKIP_AFTER_FORK
      Src: /src/nss/lib/softoken/sftkpwd.c:662,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/sftkpwd.c:662,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - keydb
    - passKey
    - iterationCount
    argTypes:
    - SFTKDBHandle*
    - SECItem*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 642
    functionDepth: 1
    functionLinenumber: 642
    functionLinenumberEnd: 663
    functionName: sftkdb_switchKeys
    functionSourceFile: /src/nss/lib/softoken/sftkpwd.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SKIP_AFTER_FORK
    - PZ_Lock
    - PZ_Unlock
    linkageType: ''
    returnType: void
    signature: void sftkdb_switchKeys(SFTKDBHandle *keydb, SECItem *passKey, int iterationCount)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - keydb
    argTypes:
    - SFTKDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 668
    functionDepth: 0
    functionLinenumber: 668
    functionLinenumberEnd: 672
    functionName: sftkdb_InUpdateMerge
    functionSourceFile: /src/nss/lib/softoken/sftkpwd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool sftkdb_InUpdateMerge(SFTKDBHandle *keydb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sftkdb_InUpdateMerge
      Src: /src/nss/lib/softoken/sftkpwd.c:681,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - keydb
    argTypes:
    - SFTKDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 678
    functionDepth: 1
    functionLinenumber: 678
    functionLinenumberEnd: 688
    functionName: sftkdb_NeedUpdateDBPassword
    functionSourceFile: /src/nss/lib/softoken/sftkpwd.c
    functionUses: 0
    functionsReached:
    - sftkdb_InUpdateMerge
    linkageType: ''
    returnType: PRBool
    signature: PRBool sftkdb_NeedUpdateDBPassword(SFTKDBHandle *keydb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/sftkpwd.c:708,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/softoken/sftkpwd.c:710,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/sftkpwd.c:712,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - handle
    argTypes:
    - SFTKDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 693
    functionDepth: 1
    functionLinenumber: 693
    functionLinenumberEnd: 715
    functionName: sftkdb_GetUpdatePasswordKey
    functionSourceFile: /src/nss/lib/softoken/sftkpwd.c
    functionUses: 0
    functionsReached:
    - SECITEM_DupItem
    - PZ_Lock
    - PZ_Unlock
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      sftkdb_GetUpdatePasswordKey(SFTKDBHandle *handle)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/sftkpwd.c:735,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/sftkpwd.c:740,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/sftkpwd.c:743,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - handle
    argTypes:
    - SFTKDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 720
    functionDepth: 1
    functionLinenumber: 720
    functionLinenumberEnd: 747
    functionName: sftkdb_FreeUpdatePasswordKey
    functionSourceFile: /src/nss/lib/softoken/sftkpwd.c
    functionUses: 0
    functionsReached:
    - SECITEM_ZfreeItem
    - PZ_Lock
    - PZ_Unlock
    linkageType: ''
    returnType: void
    signature: void sftkdb_FreeUpdatePasswordKey(SFTKDBHandle *handle)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sftkdb_InUpdateMerge
      Src: /src/nss/lib/softoken/sftkpwd.c:764,1
    - Dst: sftkdb_NeedUpdateDBPassword
      Src: /src/nss/lib/softoken/sftkpwd.c:767,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - keydb
    argTypes:
    - SFTKDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 758
    functionDepth: 2
    functionLinenumber: 758
    functionLinenumberEnd: 771
    functionName: sftk_getPWSDB
    functionSourceFile: /src/nss/lib/softoken/sftkpwd.c
    functionUses: 0
    functionsReached:
    - sftkdb_InUpdateMerge
    - sftkdb_NeedUpdateDBPassword
    linkageType: ''
    returnType: SDB
    signature: 'SDB *

      sftk_getPWSDB(SFTKDBHandle *keydb)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sftk_getPWSDB
      Src: /src/nss/lib/softoken/sftkpwd.c:791,1
    - Dst: sftkdb_Update
      Src: /src/nss/lib/softoken/sftkpwd.c:806,1
    - Dst: sftkdb_Update
      Src: /src/nss/lib/softoken/sftkpwd.c:808,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - keydb
    argTypes:
    - SFTKDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 778
    functionDepth: 3
    functionLinenumber: 778
    functionLinenumberEnd: 811
    functionName: sftkdb_HasPasswordSet
    functionSourceFile: /src/nss/lib/softoken/sftkpwd.c
    functionUses: 0
    functionsReached:
    - sftk_getPWSDB
    - sftkdb_Update
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sftkdb_HasPasswordSet(SFTKDBHandle *keydb)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sftk_getPWSDB
      Src: /src/nss/lib/softoken/sftkpwd.c:846,1
    - Dst: sftkdb_passwordToKey
      Src: /src/nss/lib/softoken/sftkpwd.c:866,1
    - Dst: sftkdb_decodeCipherText
      Src: /src/nss/lib/softoken/sftkpwd.c:872,1
    - Dst: sftkdb_finishPasswordCheck
      Src: /src/nss/lib/softoken/sftkpwd.c:882,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/softoken/sftkpwd.c:886,1
    - Dst: nsspkcs5_DestroyPBEParameter
      Src: /src/nss/lib/softoken/sftkpwd.c:889,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/sftkpwd.c:892,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 50
    argCount: 2
    argNames:
    - keydb
    - tokenRemoved
    argTypes:
    - SFTKDBHandle*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 825
    functionDepth: 3
    functionLinenumber: 825
    functionLinenumberEnd: 895
    functionName: sftkdb_CheckPasswordNull
    functionSourceFile: /src/nss/lib/softoken/sftkpwd.c
    functionUses: 0
    functionsReached:
    - PORT_ZFree
    - PORT_FreeArena
    - nsspkcs5_DestroyPBEParameter
    - sftkdb_passwordToKey
    - sftkdb_finishPasswordCheck
    - sftkdb_decodeCipherText
    - sftk_getPWSDB
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sftkdb_CheckPasswordNull(SFTKDBHandle *keydb, PRBool *tokenRemoved)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sftk_getPWSDB
      Src: /src/nss/lib/softoken/sftkpwd.c:918,1
    - Dst: sftkdb_passwordToKey
      Src: /src/nss/lib/softoken/sftkpwd.c:941,1
    - Dst: sftkdb_finishPasswordCheck
      Src: /src/nss/lib/softoken/sftkpwd.c:946,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/softoken/sftkpwd.c:950,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 3
    argNames:
    - keydb
    - pw
    - tokenRemoved
    argTypes:
    - SFTKDBHandle*
    - char*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 903
    functionDepth: 3
    functionLinenumber: 903
    functionLinenumberEnd: 953
    functionName: sftkdb_CheckPassword
    functionSourceFile: /src/nss/lib/softoken/sftkpwd.c
    functionUses: 0
    functionsReached:
    - sftkdb_finishPasswordCheck
    - sftkdb_passwordToKey
    - sftk_getPWSDB
    - PORT_ZFree
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sftkdb_CheckPassword(SFTKDBHandle *keydb, const char *pw,
      PRBool *tokenRemoved)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: getPBEIterationCount
      Src: /src/nss/lib/softoken/sftkpwd.c:963,1
    - Dst: sftk_isLegacyIterationCountAllowed
      Src: /src/nss/lib/softoken/sftkpwd.c:967,1
    - Dst: sftkdb_DecryptAttribute
      Src: /src/nss/lib/softoken/sftkpwd.c:972,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/softoken/sftkpwd.c:981,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/sftkpwd.c:1007,1
    - Dst: sftkdb_NeedUpdateDBPassword
      Src: /src/nss/lib/softoken/sftkpwd.c:1008,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/softoken/sftkpwd.c:1014,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/sftkpwd.c:1015,1
    - Dst: sftkdb_HasPasswordSet
      Src: /src/nss/lib/softoken/sftkpwd.c:1030,1
    - Dst: sftkdb_CheckPassword
      Src: /src/nss/lib/softoken/sftkpwd.c:1043,1
    - Dst: sftkdb_CheckPasswordNull
      Src: /src/nss/lib/softoken/sftkpwd.c:1049,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/sftkpwd.c:1080,1
    - Dst: sftkdb_switchKeys
      Src: /src/nss/lib/softoken/sftkpwd.c:1083,1
    - Dst: sftkdb_Update
      Src: /src/nss/lib/softoken/sftkpwd.c:1089,1
    - Dst: sftkdb_Update
      Src: /src/nss/lib/softoken/sftkpwd.c:1091,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/sftkpwd.c:1100,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 54
    argCount: 5
    argNames:
    - keydb
    - key
    - pw
    - value
    - tokenRemoved
    argTypes:
    - SFTKDBHandle*
    - SECItem*
    - char*
    - SECItem*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 957
    functionDepth: 4
    functionLinenumber: 957
    functionLinenumberEnd: 1103
    functionName: sftkdb_finishPasswordCheck
    functionSourceFile: /src/nss/lib/softoken/sftkpwd.c
    functionUses: 2
    functionsReached:
    - SECITEM_ZfreeItem
    - sftk_isLegacyIterationCountAllowed
    - SECITEM_DupItem
    - sftkdb_Update
    - PORT_Memcmp
    - sftkdb_DecryptAttribute
    - sftkdb_CheckPassword
    - PZ_Unlock
    - sftkdb_switchKeys
    - PZ_Lock
    - sftkdb_CheckPasswordNull
    - getPBEIterationCount
    - sftkdb_NeedUpdateDBPassword
    - sftkdb_HasPasswordSet
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sftkdb_finishPasswordCheck(SFTKDBHandle *keydb, SECItem
      *key, const char *pw,\n                           SECItem *value, PRBool *tokenRemoved)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/sftkpwd.c:1112,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/sftkpwd.c:1114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - keydb
    argTypes:
    - SFTKDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1108
    functionDepth: 1
    functionLinenumber: 1108
    functionLinenumberEnd: 1116
    functionName: sftkdb_PWCached
    functionSourceFile: /src/nss/lib/softoken/sftkpwd.c
    functionUses: 1
    functionsReached:
    - PZ_Lock
    - PZ_Unlock
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sftkdb_PWCached(SFTKDBHandle *keydb)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_GET_SDB
      Src: /src/nss/lib/softoken/sftkpwd.c:1131,1
    - Dst: sftkdb_GetAttributeValue
      Src: /src/nss/lib/softoken/sftkpwd.c:1163,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/sftkpwd.c:1170,1
    - Dst: sftkdb_GetAttributeValue
      Src: /src/nss/lib/softoken/sftkpwd.c:1174,1
    - Dst: sftkdb_isULONGAttribute
      Src: /src/nss/lib/softoken/sftkpwd.c:1184,1
    - Dst: sftk_ULong2SDBULong
      Src: /src/nss/lib/softoken/sftkpwd.c:1186,1
    - Dst: sftkdb_SignAttribute
      Src: /src/nss/lib/softoken/sftkpwd.c:1193,1
    - Dst: sftkdb_PutAttributeSignature
      Src: /src/nss/lib/softoken/sftkpwd.c:1198,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 44
    argCount: 5
    argNames:
    - arena
    - handle
    - id
    - newKey
    - iterationCount
    argTypes:
    - PLArenaPool*
    - SFTKDBHandle*
    - CK_OBJECT_HANDLE
    - SECItem*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1205
      start: 1118
    functionDepth: 3
    functionLinenumber: 1118
    functionLinenumberEnd: 1205
    functionName: sftk_updateMacs
    functionSourceFile: /src/nss/lib/softoken/sftkpwd.c
    functionUses: 0
    functionsReached:
    - sftkdb_SignAttribute
    - PORT_ArenaAlloc
    - sftk_ULong2SDBULong
    - SFTK_GET_SDB
    - sftkdb_PutAttributeSignature
    - sftkdb_isULONGAttribute
    - sftkdb_GetAttributeValue
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftk_updateMacs(PLArenaPool *arena, SFTKDBHandle *handle,\n
      \               CK_OBJECT_HANDLE id, SECItem *newKey, int iterationCount)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sftkdb_GetAttributeValue
      Src: /src/nss/lib/softoken/sftkpwd.c:1229,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/sftkpwd.c:1236,1
    - Dst: sftkdb_GetAttributeValue
      Src: /src/nss/lib/softoken/sftkpwd.c:1240,1
    - Dst: sftkdb_EncryptAttribute
      Src: /src/nss/lib/softoken/sftkpwd.c:1251,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/sftkpwd.c:1259,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 5
    argNames:
    - arena
    - keydb
    - id
    - newKey
    - iterationCount
    argTypes:
    - PLArenaPool*
    - SFTKDBHandle*
    - CK_OBJECT_HANDLE
    - SECItem*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1272
      start: 1207
    functionDepth: 3
    functionLinenumber: 1207
    functionLinenumberEnd: 1272
    functionName: sftk_updateEncrypted
    functionSourceFile: /src/nss/lib/softoken/sftkpwd.c
    functionUses: 0
    functionsReached:
    - sftkdb_EncryptAttribute
    - PORT_ArenaAlloc
    - PORT_Memset
    - sftkdb_GetAttributeValue
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftk_updateEncrypted(PLArenaPool *arena, SFTKDBHandle *keydb,\n
      \                    CK_OBJECT_HANDLE id, SECItem *newKey, int iterationCount)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/sftkpwd.c:1282,1
    - Dst: sftk_updateMacs
      Src: /src/nss/lib/softoken/sftkpwd.c:1290,1
    - Dst: sftk_updateEncrypted
      Src: /src/nss/lib/softoken/sftkpwd.c:1296,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/sftkpwd.c:1304,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/sftkpwd.c:1309,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - handle
    - id
    - newKey
    - iterationCount
    argTypes:
    - SFTKDBHandle*
    - CK_OBJECT_HANDLE
    - SECItem*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1274
    functionDepth: 4
    functionLinenumber: 1274
    functionLinenumberEnd: 1311
    functionName: sftk_convertAttributes
    functionSourceFile: /src/nss/lib/softoken/sftkpwd.c
    functionUses: 0
    functionsReached:
    - PORT_FreeArena
    - PORT_NewArena
    - sftk_updateMacs
    - sftk_updateEncrypted
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftk_convertAttributes(SFTKDBHandle *handle, CK_OBJECT_HANDLE
      id,\n                       SECItem *newKey, int iterationCount)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sftkdb_FindObjectsInit
      Src: /src/nss/lib/softoken/sftkpwd.c:1326,1
    - Dst: sftkdb_FindObjects
      Src: /src/nss/lib/softoken/sftkpwd.c:1332,1
    - Dst: sftk_convertAttributes
      Src: /src/nss/lib/softoken/sftkpwd.c:1334,1
    - Dst: sftkdb_FindObjectsFinal
      Src: /src/nss/lib/softoken/sftkpwd.c:1338,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 4
    argNames:
    - handle
    - count
    - newKey
    - iterationCount
    argTypes:
    - SFTKDBHandle*
    - CK_ULONG
    - SECItem*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1343
      start: 1316
    functionDepth: 5
    functionLinenumber: 1316
    functionLinenumberEnd: 1343
    functionName: sftkdb_convertObjects
    functionSourceFile: /src/nss/lib/softoken/sftkpwd.c
    functionUses: 0
    functionsReached:
    - sftkdb_FindObjects
    - sftk_convertAttributes
    - sftkdb_FindObjectsFinal
    - sftkdb_FindObjectsInit
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftkdb_convertObjects(SFTKDBHandle *handle, CK_ATTRIBUTE *template,\n
      \                     CK_ULONG count, SECItem *newKey, int iterationCount)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: getPBEIterationCount
      Src: /src/nss/lib/softoken/sftkpwd.c:1360,1
    - Dst: SFTK_GET_SDB
      Src: /src/nss/lib/softoken/sftkpwd.c:1368,1
    - Dst: sftkdb_CheckPassword
      Src: /src/nss/lib/softoken/sftkpwd.c:1387,1
    - Dst: RNG_GenerateGlobalRandomBytes
      Src: /src/nss/lib/softoken/sftkpwd.c:1393,1
    - Dst: sftk_isLegacyIterationCountAllowed
      Src: /src/nss/lib/softoken/sftkpwd.c:1398,1
    - Dst: sftkdb_passwordToKey
      Src: /src/nss/lib/softoken/sftkpwd.c:1402,1
    - Dst: sftkdb_convertObjects
      Src: /src/nss/lib/softoken/sftkpwd.c:1410,1
    - Dst: sftkdb_convertObjects
      Src: /src/nss/lib/softoken/sftkpwd.c:1422,1
    - Dst: sftkdb_convertObjects
      Src: /src/nss/lib/softoken/sftkpwd.c:1429,1
    - Dst: sftkdb_EncryptAttribute
      Src: /src/nss/lib/softoken/sftkpwd.c:1440,1
    - Dst: sftkdb_switchKeys
      Src: /src/nss/lib/softoken/sftkpwd.c:1461,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/softoken/sftkpwd.c:1465,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/softoken/sftkpwd.c:1468,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 99
    argCount: 4
    argNames:
    - keydb
    - oldPin
    - newPin
    - tokenRemoved
    argTypes:
    - SFTKDBHandle*
    - char*
    - char*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1475
      start: 1348
    functionDepth: 6
    functionLinenumber: 1348
    functionLinenumberEnd: 1475
    functionName: sftkdb_ChangePassword
    functionSourceFile: /src/nss/lib/softoken/sftkpwd.c
    functionUses: 0
    functionsReached:
    - sftk_isLegacyIterationCountAllowed
    - sftkdb_convertObjects
    - PORT_ZFree
    - sftkdb_EncryptAttribute
    - sftkdb_CheckPassword
    - SFTK_GET_SDB
    - sftkdb_switchKeys
    - sftkdb_passwordToKey
    - RNG_GenerateGlobalRandomBytes
    - getPBEIterationCount
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sftkdb_ChangePassword(SFTKDBHandle *keydb,\n                      char
      *oldPin, char *newPin, PRBool *tokenRemoved)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sftkdb_switchKeys
      Src: /src/nss/lib/softoken/sftkpwd.c:1486,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/softoken/sftkpwd.c:1488,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - keydb
    argTypes:
    - SFTKDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1491
      start: 1480
    functionDepth: 2
    functionLinenumber: 1480
    functionLinenumberEnd: 1491
    functionName: sftkdb_ClearPassword
    functionSourceFile: /src/nss/lib/softoken/sftkpwd.c
    functionUses: 0
    functionsReached:
    - sftkdb_switchKeys
    - PORT_ZFree
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sftkdb_ClearPassword(SFTKDBHandle *keydb)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/softoken/sftkdhverify.c:6749,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/softoken/sftkdhverify.c:6757,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/softoken/sftkdhverify.c:6763,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/softoken/sftkdhverify.c:6771,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/softoken/sftkdhverify.c:6777,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/softoken/sftkdhverify.c:6785,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/softoken/sftkdhverify.c:6791,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/softoken/sftkdhverify.c:6799,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/softoken/sftkdhverify.c:6805,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/softoken/sftkdhverify.c:6813,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/softoken/sftkdhverify.c:6819,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/sftkdhverify.c:6828,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 75
    argCount: 3
    argNames:
    - dhPrime
    - g
    - isFIPS
    argTypes:
    - SECItem*
    - SECItem*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6830
      start: 6739
    functionDepth: 0
    functionLinenumber: 6739
    functionLinenumberEnd: 6830
    functionName: sftk_VerifyDH_Prime
    functionSourceFile: /src/nss/lib/softoken/sftkdhverify.c
    functionUses: 0
    functionsReached:
    - PORT_Memcmp
    - PORT_SetError
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      sftk_VerifyDH_Prime(SECItem *dhPrime, SECItem *g, PRBool isFIPS)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/sftkdhverify.c:6844,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - dhPrime
    - dhSubPrime
    - isSafe
    argTypes:
    - SECItem*
    - SECItem*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6874
      start: 6834
    functionDepth: 0
    functionLinenumber: 6834
    functionLinenumberEnd: 6874
    functionName: sftk_IsSafePrime
    functionSourceFile: /src/nss/lib/softoken/sftkdhverify.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sftk_IsSafePrime(const SECItem *dhPrime, const SECItem *dhSubPrime,
      PRBool *isSafe)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - freeit
    argTypes:
    - void*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 15
    functionName: sftk_TLSPRFNull
    functionSourceFile: /src/nss/lib/softoken/tlsprf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sftk_TLSPRFNull(void *data, PRBool freeit)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/tlsprf.c:45,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/tlsprf.c:50,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/softoken/tlsprf.c:52,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/tlsprf.c:57,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - ctx
    - data
    - data_len
    argTypes:
    - void*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 59
    functionName: sftk_TLSPRFHashUpdate
    functionSourceFile: /src/nss/lib/softoken/tlsprf.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_ZFree
    - PORT_Memcpy
    linkageType: ''
    returnType: void
    signature: "void sftk_TLSPRFHashUpdate(void *ctx, const unsigned char *data,\n
      \                     unsigned int data_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - hashout
    - pDigestLen
    - maxDigestLen
    argTypes:
    - void*
    - unsigned char*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 66
    functionName: sftk_TLSPRFEnd
    functionSourceFile: /src/nss/lib/softoken/tlsprf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void sftk_TLSPRFEnd(void *ctx, unsigned char *hashout,\n               unsigned
      int *pDigestLen, unsigned int maxDigestLen)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/tlsprf.c:98,1
    - Dst: TLS_P_hash
      Src: /src/nss/lib/softoken/tlsprf.c:103,1
    - Dst: TLS_PRF
      Src: /src/nss/lib/softoken/tlsprf.c:106,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 6
    argNames:
    - ctx
    - sig
    - sigLen
    - maxLen
    - hash
    - hashLen
    argTypes:
    - void*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 111
    functionName: sftk_TLSPRFUpdate
    functionSourceFile: /src/nss/lib/softoken/tlsprf.c
    functionUses: 0
    functionsReached:
    - TLS_PRF
    - PORT_SetError
    - TLS_P_hash
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sftk_TLSPRFUpdate(void *ctx,\n                  unsigned
      char *sig,        /* output goes here. */\n                  unsigned int *sigLen,
      \     /* how much output.  */\n                  unsigned int maxLen,       /*
      output buffer size */\n                  const unsigned char *hash, /* unused.
      */\n                  unsigned int hashLen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/tlsprf.c:121,1
    - Dst: sftk_TLSPRFHashUpdate
      Src: /src/nss/lib/softoken/tlsprf.c:131,1
    - Dst: sftk_TLSPRFUpdate
      Src: /src/nss/lib/softoken/tlsprf.c:133,1
    - Dst: NSS_SecureMemcmp
      Src: /src/nss/lib/softoken/tlsprf.c:135,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/softoken/tlsprf.c:137,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - ctx
    - sig
    - sigLen
    - hash
    - hashLen
    argTypes:
    - void*
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 139
    functionName: sftk_TLSPRFVerify
    functionSourceFile: /src/nss/lib/softoken/tlsprf.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_ZFree
    - sftk_TLSPRFHashUpdate
    - NSS_SecureMemcmp
    - sftk_TLSPRFUpdate
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sftk_TLSPRFVerify(void *ctx,\n                  const unsigned
      char *sig,  /* input, for comparison. */\n                  unsigned int sigLen,
      \      /* length of sig.         */\n                  const unsigned char *hash,
      /* data to be verified.   */\n                  unsigned int hashLen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZFree
      Src: /src/nss/lib/softoken/tlsprf.c:147,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/softoken/tlsprf.c:148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - freeit
    argTypes:
    - void*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 150
    functionName: sftk_TLSPRFHashDestroy
    functionSourceFile: /src/nss/lib/softoken/tlsprf.c
    functionUses: 0
    functionsReached:
    - PORT_ZFree
    linkageType: ''
    returnType: void
    signature: void sftk_TLSPRFHashDestroy(void *ctx, PRBool freeit)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/tlsprf.c:170,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/tlsprf.c:173,1
    - Dst: sftk_isFIPS
      Src: /src/nss/lib/softoken/tlsprf.c:181,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/tlsprf.c:186,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/tlsprf.c:200,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 5
    argNames:
    - context
    - key
    - key_type
    - hash_alg
    - out_len
    argTypes:
    - SFTKSessionContext*
    - SFTKObject*
    - CK_KEY_TYPE
    - HASH_HashType
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 202
    functionName: sftk_TLSPRFInit
    functionSourceFile: /src/nss/lib/softoken/tlsprf.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - sftk_FindAttribute
    - PORT_Memcpy
    - sftk_FreeAttribute
    - sftk_isFIPS
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftk_TLSPRFInit(SFTKSessionContext *context,\n                SFTKObject
      *key,\n                CK_KEY_TYPE key_type,\n                HASH_HashType
      hash_alg,\n                unsigned int out_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CMAC_Destroy
      Src: /src/nss/lib/softoken/sftkhmac.c:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - freeit
    argTypes:
    - void*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 18
    functionName: SFTKMAC_CMAC_Destroy
    functionSourceFile: /src/nss/lib/softoken/sftkhmac.c
    functionUses: 0
    functionsReached:
    - CMAC_Destroy
    linkageType: ''
    returnType: void
    signature: void SFTKMAC_CMAC_Destroy(void *ctx, PRBool freeit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HMAC_Destroy
      Src: /src/nss/lib/softoken/sftkhmac.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - freeit
    argTypes:
    - void*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 25
    functionName: SFTKMAC_HMAC_Destroy
    functionSourceFile: /src/nss/lib/softoken/sftkhmac.c
    functionUses: 0
    functionsReached:
    - HMAC_Destroy
    linkageType: ''
    returnType: void
    signature: void SFTKMAC_HMAC_Destroy(void *ctx, PRBool freeit)
  - BBCount: 14
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 1
    argNames:
    - mech
    argTypes:
    - CK_MECHANISM_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 59
    functionName: sftk_HMACMechanismToHash
    functionSourceFile: /src/nss/lib/softoken/sftkhmac.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: HASH_HashType
    signature: HASH_HashType sftk_HMACMechanismToHash(CK_MECHANISM_TYPE mech)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sftk_HMACMechanismToHash
      Src: /src/nss/lib/softoken/sftkhmac.c:76,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/sftkhmac.c:81,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/sftkhmac.c:87,1
    - Dst: memcpy
      Src: /src/nss/lib/softoken/sftkhmac.c:90,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/sftkhmac.c:91,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/sftkhmac.c:93,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/sftkhmac.c:95,1
    - Dst: memcpy
      Src: /src/nss/lib/softoken/sftkhmac.c:99,1
    - Dst: HASH_GetRawHashObject
      Src: /src/nss/lib/softoken/sftkhmac.c:101,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/sftkhmac.c:103,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 2
    argNames:
    - mech
    - key
    argTypes:
    - CK_MECHANISM_PTR
    - SFTKObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 106
    functionName: SetupMAC
    functionSourceFile: /src/nss/lib/softoken/sftkhmac.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - memcpy
    - sftk_FindAttribute
    - sftk_HMACMechanismToHash
    - sftk_FreeAttribute
    - HASH_GetRawHashObject
    - PORT_Memset
    linkageType: ''
    returnType: sftk_MACConstantTimeCtx
    signature: 'sftk_MACConstantTimeCtx *

      SetupMAC(CK_MECHANISM_PTR mech, SFTKObject *key)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SetupMAC
      Src: /src/nss/lib/softoken/sftkhmac.c:118,1
    - Dst: memcpy
      Src: /src/nss/lib/softoken/sftkhmac.c:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - mech
    - key
    argTypes:
    - CK_MECHANISM_PTR
    - SFTKObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 126
    functionName: sftk_HMACConstantTime_New
    functionSourceFile: /src/nss/lib/softoken/sftkhmac.c
    functionUses: 0
    functionsReached:
    - memcpy
    - SetupMAC
    linkageType: ''
    returnType: sftk_MACConstantTimeCtx
    signature: 'sftk_MACConstantTimeCtx *

      sftk_HMACConstantTime_New(CK_MECHANISM_PTR mech, SFTKObject *key)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SetupMAC
      Src: /src/nss/lib/softoken/sftkhmac.c:140,1
    - Dst: memcpy
      Src: /src/nss/lib/softoken/sftkhmac.c:159,1
    - Dst: memset
      Src: /src/nss/lib/softoken/sftkhmac.c:161,1
    - Dst: memcpy
      Src: /src/nss/lib/softoken/sftkhmac.c:163,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/sftkhmac.c:168,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - mech
    - key
    argTypes:
    - CK_MECHANISM_PTR
    - SFTKObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 170
    functionName: sftk_SSLv3MACConstantTime_New
    functionSourceFile: /src/nss/lib/softoken/sftkhmac.c
    functionUses: 0
    functionsReached:
    - memset
    - PORT_Free
    - memcpy
    - SetupMAC
    linkageType: ''
    returnType: sftk_MACConstantTimeCtx
    signature: 'sftk_MACConstantTimeCtx *

      sftk_SSLv3MACConstantTime_New(CK_MECHANISM_PTR mech, SFTKObject *key)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_CheckSuccess
      Src: /src/nss/lib/softoken/sftkhmac.c:176,1
    - Dst: HMAC_ConstantTime
      Src: /src/nss/lib/softoken/sftkhmac.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pctx
    - data
    - len
    argTypes:
    - void*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 183
    functionName: sftk_HMACConstantTime_Update
    functionSourceFile: /src/nss/lib/softoken/sftkhmac.c
    functionUses: 0
    functionsReached:
    - HMAC_ConstantTime
    - PORT_CheckSuccess
    linkageType: ''
    returnType: void
    signature: void sftk_HMACConstantTime_Update(void *pctx, const unsigned char *data,
      unsigned int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_CheckSuccess
      Src: /src/nss/lib/softoken/sftkhmac.c:189,1
    - Dst: SSLv3_MAC_ConstantTime
      Src: /src/nss/lib/softoken/sftkhmac.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pctx
    - data
    - len
    argTypes:
    - void*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 196
    functionName: sftk_SSLv3MACConstantTime_Update
    functionSourceFile: /src/nss/lib/softoken/sftkhmac.c
    functionUses: 0
    functionsReached:
    - SSLv3_MAC_ConstantTime
    - PORT_CheckSuccess
    linkageType: ''
    returnType: void
    signature: void sftk_SSLv3MACConstantTime_Update(void *pctx, const unsigned char
      *data, unsigned int len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/softoken/sftkhmac.c:207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - pctx
    - out
    - outLength
    - maxLength
    argTypes:
    - void*
    - unsigned char*
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 211
    functionName: sftk_MACConstantTime_EndHash
    functionSourceFile: /src/nss/lib/softoken/sftkhmac.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void sftk_MACConstantTime_EndHash(void *pctx, unsigned char *out,
      unsigned int *outLength,\n                             unsigned int maxLength)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZFree
      Src: /src/nss/lib/softoken/sftkhmac.c:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pctx
    - free
    argTypes:
    - void*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 217
    functionName: sftk_MACConstantTime_DestroyContext
    functionSourceFile: /src/nss/lib/softoken/sftkhmac.c
    functionUses: 0
    functionsReached:
    - PORT_ZFree
    linkageType: ''
    returnType: void
    signature: void sftk_MACConstantTime_DestroyContext(void *pctx, PRBool free)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_New
      Src: /src/nss/lib/softoken/sftkhmac.c:228,1
    - Dst: sftk_MAC_Init
      Src: /src/nss/lib/softoken/sftkhmac.c:233,1
    - Dst: sftk_MAC_DestroyContext
      Src: /src/nss/lib/softoken/sftkhmac.c:235,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - mech
    - key
    - ret_ctx
    argTypes:
    - CK_MECHANISM_TYPE
    - SFTKObject*
    - sftk_MACCtx**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 239
    functionName: sftk_MAC_Create
    functionSourceFile: /src/nss/lib/softoken/sftkhmac.c
    functionUses: 0
    functionsReached:
    - sftk_MAC_DestroyContext
    - sftk_MAC_Init
    - PORT_New
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV sftk_MAC_Create(CK_MECHANISM_TYPE mech, SFTKObject *key, sftk_MACCtx
      **ret_ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sftk_isFIPS
      Src: /src/nss/lib/softoken/sftkhmac.c:245,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/sftkhmac.c:249,1
    - Dst: sftk_MAC_InitRaw
      Src: /src/nss/lib/softoken/sftkhmac.c:255,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/sftkhmac.c:261,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - ctx
    - mech
    - key
    argTypes:
    - sftk_MACCtx*
    - CK_MECHANISM_TYPE
    - SFTKObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 264
    functionName: sftk_MAC_Init
    functionSourceFile: /src/nss/lib/softoken/sftkhmac.c
    functionUses: 1
    functionsReached:
    - sftk_MAC_InitRaw
    - sftk_FreeAttribute
    - sftk_isFIPS
    - sftk_FindAttribute
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV sftk_MAC_Init(sftk_MACCtx *ctx, CK_MECHANISM_TYPE mech, SFTKObject
      *key)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/sftkhmac.c:277,1
    - Dst: HASH_GetRawHashObject
      Src: /src/nss/lib/softoken/sftkhmac.c:295,1
    - Dst: sftk_HMACMechanismToHash
      Src: /src/nss/lib/softoken/sftkhmac.c:295,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/softoken/sftkhmac.c:302,1
    - Dst: CMAC_Create
      Src: /src/nss/lib/softoken/sftkhmac.c:307,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/sftkhmac.c:312,1
    - Dst: HMAC_Create
      Src: /src/nss/lib/softoken/sftkhmac.c:330,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/sftkhmac.c:335,1
    - Dst: HMAC_Begin
      Src: /src/nss/lib/softoken/sftkhmac.c:344,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 65
    argCount: 5
    argNames:
    - ctx
    - mech
    - key
    - key_len
    - isFIPS
    argTypes:
    - sftk_MACCtx*
    - CK_MECHANISM_TYPE
    - unsigned char*
    - unsigned int
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 354
    functionName: sftk_MAC_InitRaw
    functionSourceFile: /src/nss/lib/softoken/sftkhmac.c
    functionUses: 1
    functionsReached:
    - CMAC_Create
    - sftk_HMACMechanismToHash
    - PORT_GetError
    - PR_ASSERT
    - HMAC_Begin
    - HASH_GetRawHashObject
    - PORT_Memset
    - HMAC_Create
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV sftk_MAC_InitRaw(sftk_MACCtx *ctx, CK_MECHANISM_TYPE mech, const
      unsigned char *key, unsigned int key_len, PRBool isFIPS)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: HMAC_Begin
      Src: /src/nss/lib/softoken/sftkhmac.c:375,1
    - Dst: CMAC_Begin
      Src: /src/nss/lib/softoken/sftkhmac.c:378,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/softoken/sftkhmac.c:385,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - sftk_MACCtx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 390
    functionName: sftk_MAC_Reset
    functionSourceFile: /src/nss/lib/softoken/sftkhmac.c
    functionUses: 0
    functionsReached:
    - CMAC_Begin
    - HMAC_Begin
    - PR_ASSERT
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV sftk_MAC_Reset(sftk_MACCtx *ctx)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: HMAC_Update
      Src: /src/nss/lib/softoken/sftkhmac.c:408,1
    - Dst: CMAC_Update
      Src: /src/nss/lib/softoken/sftkhmac.c:413,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/softoken/sftkhmac.c:420,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 3
    argNames:
    - ctx
    - data
    - data_len
    argTypes:
    - sftk_MACCtx*
    - CK_BYTE*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 424
    functionName: sftk_MAC_Update
    functionSourceFile: /src/nss/lib/softoken/sftkhmac.c
    functionUses: 0
    functionsReached:
    - HMAC_Update
    - CMAC_Update
    - PR_ASSERT
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV sftk_MAC_Update(sftk_MACCtx *ctx, const CK_BYTE *data, unsigned
      int data_len)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: HMAC_Finish
      Src: /src/nss/lib/softoken/sftkhmac.c:449,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/softoken/sftkhmac.c:455,1
    - Dst: HMAC_Finish
      Src: /src/nss/lib/softoken/sftkhmac.c:457,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/sftkhmac.c:469,1
    - Dst: CMAC_Finish
      Src: /src/nss/lib/softoken/sftkhmac.c:475,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/softoken/sftkhmac.c:482,1
    - Dst: PR_ASSERT
      Src: /src/nss/lib/softoken/sftkhmac.c:493,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    argCount: 4
    argNames:
    - ctx
    - result
    - result_len
    - max_result_len
    argTypes:
    - sftk_MACCtx*
    - CK_BYTE_PTR
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 426
    functionDepth: 1
    functionLinenumber: 426
    functionLinenumberEnd: 497
    functionName: sftk_MAC_End
    functionSourceFile: /src/nss/lib/softoken/sftkhmac.c
    functionUses: 0
    functionsReached:
    - CMAC_Finish
    - PR_ASSERT
    - PORT_Memcpy
    - HMAC_Finish
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV sftk_MAC_End(sftk_MACCtx *ctx, CK_BYTE_PTR result, unsigned int
      *result_len, unsigned int max_result_len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sftk_MACCtx*::destroy_func
      Src: /src/nss/lib/softoken/sftkhmac.c:507,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/sftkhmac.c:511,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/sftkhmac.c:514,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - ctx
    - free_it
    argTypes:
    - sftk_MACCtx*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 516
    functionName: sftk_MAC_DestroyContext
    functionSourceFile: /src/nss/lib/softoken/sftkhmac.c
    functionUses: 1
    functionsReached:
    - PORT_Free
    - PORT_Memset
    - sftk_MACCtx*::destroy_func
    linkageType: ''
    returnType: void
    signature: void sftk_MAC_DestroyContext(sftk_MACCtx *ctx, PRBool free_it)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/sftkike.c:117,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/sftkike.c:118,1
    - Dst: AES_CreateContext
      Src: /src/nss/lib/softoken/sftkike.c:129,1
    - Dst: AES_Encrypt
      Src: /src/nss/lib/softoken/sftkike.c:133,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/sftkike.c:141,1
    - Dst: sftk_xcbc_mac_pad
      Src: /src/nss/lib/softoken/sftkike.c:142,1
    - Dst: AES_Encrypt
      Src: /src/nss/lib/softoken/sftkike.c:143,1
    - Dst: AES_DestroyContext
      Src: /src/nss/lib/softoken/sftkike.c:149,1
    - Dst: AES_CreateContext
      Src: /src/nss/lib/softoken/sftkike.c:155,1
    - Dst: AES_Encrypt
      Src: /src/nss/lib/softoken/sftkike.c:160,1
    - Dst: AES_Encrypt
      Src: /src/nss/lib/softoken/sftkike.c:165,1
    - Dst: AES_Encrypt
      Src: /src/nss/lib/softoken/sftkike.c:170,1
    - Dst: AES_DestroyContext
      Src: /src/nss/lib/softoken/sftkike.c:175,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/sftkike.c:176,1
    - Dst: sftk_MapCryptError
      Src: /src/nss/lib/softoken/sftkike.c:179,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/sftkike.c:179,1
    - Dst: AES_DestroyContext
      Src: /src/nss/lib/softoken/sftkike.c:181,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/sftkike.c:183,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/sftkike.c:184,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/sftkike.c:185,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/sftkike.c:186,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 61
    argCount: 5
    argNames:
    - keyValue
    - keyLen
    - k1
    - k2
    - k3
    argTypes:
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 188
    functionName: sftk_aes_xcbc_get_keys
    functionSourceFile: /src/nss/lib/softoken/sftkike.c
    functionUses: 0
    functionsReached:
    - PORT_Memcpy
    - sftk_xcbc_mac_pad
    - PORT_GetError
    - AES_DestroyContext
    - sftk_MapCryptError
    - PORT_Memset
    - AES_Encrypt
    - AES_CreateContext
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftk_aes_xcbc_get_keys(const unsigned char *keyValue, unsigned
      int keyLen,\n                       unsigned char *k1, unsigned char *k2, unsigned
      char *k3)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 5
    argNames:
    - padBuf
    - bufLen
    - blockSize
    - k2
    - k3
    argTypes:
    - unsigned char*
    - unsigned int
    - unsigned int
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 211
    functionName: sftk_xcbc_mac_pad
    functionSourceFile: /src/nss/lib/softoken/sftkike.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftk_xcbc_mac_pad(unsigned char *padBuf, unsigned int bufLen,\n
      \                 unsigned int blockSize, const unsigned char *k2,\n                  const
      unsigned char *k3)"
  - BBCount: 15
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 1
    argNames:
    - type
    argTypes:
    - CK_MECHANISM_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 243
    functionName: sftk_map_hmac_to_hash
    functionSourceFile: /src/nss/lib/softoken/sftkike.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: HASH_HashType
    signature: HASH_HashType sftk_map_hmac_to_hash(CK_MECHANISM_TYPE type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sftk_map_hmac_to_hash
      Src: /src/nss/lib/softoken/sftkike.c:257,1
    - Dst: HASH_GetRawHashObject
      Src: /src/nss/lib/softoken/sftkike.c:262,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - context
    - mech
    argTypes:
    - prfContext*
    - CK_MECHANISM_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 271
    functionName: prf_setup
    functionSourceFile: /src/nss/lib/softoken/sftkike.c
    functionUses: 0
    functionsReached:
    - sftk_map_hmac_to_hash
    - HASH_GetRawHashObject
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV prf_setup(prfContext *context, CK_MECHANISM_TYPE mech)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - context
    argTypes:
    - prfContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 282
    functionName: prf_length
    functionSourceFile: /src/nss/lib/softoken/sftkike.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV prf_length(prfContext *context)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: HMAC_Create
      Src: /src/nss/lib/softoken/sftkike.c:296,1
    - Dst: sftk_MapCryptError
      Src: /src/nss/lib/softoken/sftkike.c:299,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/sftkike.c:299,1
    - Dst: HMAC_Begin
      Src: /src/nss/lib/softoken/sftkike.c:301,1
    - Dst: sftk_aes_xcbc_get_keys
      Src: /src/nss/lib/softoken/sftkike.c:303,1
    - Dst: AES_CreateContext
      Src: /src/nss/lib/softoken/sftkike.c:308,1
    - Dst: sftk_MapCryptError
      Src: /src/nss/lib/softoken/sftkike.c:311,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/sftkike.c:311,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/sftkike.c:312,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/sftkike.c:313,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/sftkike.c:314,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - context
    - keyValue
    - keyLen
    argTypes:
    - prfContext*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 288
    functionDepth: 2
    functionLinenumber: 288
    functionLinenumberEnd: 319
    functionName: prf_init
    functionSourceFile: /src/nss/lib/softoken/sftkike.c
    functionUses: 0
    functionsReached:
    - AES_CreateContext
    - PORT_GetError
    - sftk_MapCryptError
    - HMAC_Begin
    - sftk_aes_xcbc_get_keys
    - PORT_Memset
    - HMAC_Create
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV prf_init(prfContext *context, const unsigned char *keyValue,\n
      \        unsigned int keyLen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: HMAC_Update
      Src: /src/nss/lib/softoken/sftkike.c:331,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/sftkike.c:342,1
    - Dst: AES_Encrypt
      Src: /src/nss/lib/softoken/sftkike.c:346,1
    - Dst: sftk_MapCryptError
      Src: /src/nss/lib/softoken/sftkike.c:350,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/sftkike.c:350,1
    - Dst: AES_Encrypt
      Src: /src/nss/lib/softoken/sftkike.c:360,1
    - Dst: sftk_MapCryptError
      Src: /src/nss/lib/softoken/sftkike.c:363,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/sftkike.c:363,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/sftkike.c:369,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 3
    argNames:
    - context
    - buf
    - len
    argTypes:
    - prfContext*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 373
    functionName: prf_update
    functionSourceFile: /src/nss/lib/softoken/sftkike.c
    functionUses: 0
    functionsReached:
    - PORT_Memcpy
    - PORT_GetError
    - sftk_MapCryptError
    - AES_Encrypt
    - HMAC_Update
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV prf_update(prfContext *context, const unsigned char *buf, unsigned
      int len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HMAC_Destroy
      Src: /src/nss/lib/softoken/sftkike.c:386,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/sftkike.c:390,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/sftkike.c:391,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/sftkike.c:392,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/sftkike.c:393,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/sftkike.c:394,1
    - Dst: AES_DestroyContext
      Src: /src/nss/lib/softoken/sftkike.c:395,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - context
    argTypes:
    - prfContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 398
    functionName: prf_free
    functionSourceFile: /src/nss/lib/softoken/sftkike.c
    functionUses: 0
    functionsReached:
    - HMAC_Destroy
    - PORT_Memset
    - AES_DestroyContext
    linkageType: ''
    returnType: void
    signature: void prf_free(prfContext *context)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: HMAC_Finish
      Src: /src/nss/lib/softoken/sftkike.c:412,1
    - Dst: sftk_xcbc_mac_pad
      Src: /src/nss/lib/softoken/sftkike.c:420,1
    - Dst: AES_Encrypt
      Src: /src/nss/lib/softoken/sftkike.c:425,1
    - Dst: sftk_MapCryptError
      Src: /src/nss/lib/softoken/sftkike.c:428,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/sftkike.c:428,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/sftkike.c:430,1
    - Dst: prf_free
      Src: /src/nss/lib/softoken/sftkike.c:432,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - context
    - buf
    - len
    argTypes:
    - prfContext*
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 434
    functionName: prf_final
    functionSourceFile: /src/nss/lib/softoken/sftkike.c
    functionUses: 0
    functionsReached:
    - PORT_Memcpy
    - HMAC_Finish
    - sftk_xcbc_mac_pad
    - PORT_GetError
    - sftk_MapCryptError
    - AES_Encrypt
    - prf_free
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV prf_final(prfContext *context, unsigned char *buf, unsigned int
      len)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: prf_setup
      Src: /src/nss/lib/softoken/sftkike.c:473,1
    - Dst: prf_length
      Src: /src/nss/lib/softoken/sftkike.c:477,1
    - Dst: sftk_SessionFromHandle
      Src: /src/nss/lib/softoken/sftkike.c:483,1
    - Dst: sftk_ObjectFromHandle
      Src: /src/nss/lib/softoken/sftkike.c:487,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/sftkike.c:488,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/sftkike.c:492,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/sftkike.c:501,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/sftkike.c:506,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/sftkike.c:507,1
    - Dst: prf_init
      Src: /src/nss/lib/softoken/sftkike.c:508,1
    - Dst: prf_update
      Src: /src/nss/lib/softoken/sftkike.c:513,1
    - Dst: prf_init
      Src: /src/nss/lib/softoken/sftkike.c:519,1
    - Dst: prf_update
      Src: /src/nss/lib/softoken/sftkike.c:525,1
    - Dst: prf_update
      Src: /src/nss/lib/softoken/sftkike.c:531,1
    - Dst: prf_update
      Src: /src/nss/lib/softoken/sftkike.c:535,1
    - Dst: prf_final
      Src: /src/nss/lib/softoken/sftkike.c:540,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/sftkike.c:545,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/softoken/sftkike.c:548,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/sftkike.c:551,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/sftkike.c:554,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/sftkike.c:556,1
    - Dst: prf_free
      Src: /src/nss/lib/softoken/sftkike.c:557,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 89
    argCount: 4
    argNames:
    - hSession
    - inKey
    - params
    - outKey
    argTypes:
    - CK_SESSION_HANDLE
    - SFTKAttribute*
    - CK_IKE_PRF_DERIVE_PARAMS*
    - SFTKObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 460
    functionDepth: 3
    functionLinenumber: 460
    functionLinenumberEnd: 559
    functionName: sftk_ike_prf
    functionSourceFile: /src/nss/lib/softoken/sftkike.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - sftk_ObjectFromHandle
    - sftk_FreeSession
    - sftk_FindAttribute
    - sftk_SessionFromHandle
    - PORT_Memcpy
    - PORT_ZFree
    - sftk_FreeAttribute
    - sftk_FreeObject
    - prf_setup
    - prf_update
    - prf_final
    - sftk_forceAttribute
    - PORT_Memset
    - prf_length
    - prf_free
    - prf_init
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftk_ike_prf(CK_SESSION_HANDLE hSession, const SFTKAttribute
      *inKey,\n             const CK_IKE_PRF_DERIVE_PARAMS *params, SFTKObject *outKey)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: prf_setup
      Src: /src/nss/lib/softoken/sftkike.c:598,1
    - Dst: prf_length
      Src: /src/nss/lib/softoken/sftkike.c:602,1
    - Dst: sftk_SessionFromHandle
      Src: /src/nss/lib/softoken/sftkike.c:611,1
    - Dst: sftk_ObjectFromHandle
      Src: /src/nss/lib/softoken/sftkike.c:615,1
    - Dst: sftk_ObjectFromHandle
      Src: /src/nss/lib/softoken/sftkike.c:617,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/sftkike.c:619,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/sftkike.c:625,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/sftkike.c:631,1
    - Dst: prf_init
      Src: /src/nss/lib/softoken/sftkike.c:639,1
    - Dst: prf_update
      Src: /src/nss/lib/softoken/sftkike.c:644,1
    - Dst: prf_update
      Src: /src/nss/lib/softoken/sftkike.c:650,1
    - Dst: prf_update
      Src: /src/nss/lib/softoken/sftkike.c:655,1
    - Dst: prf_update
      Src: /src/nss/lib/softoken/sftkike.c:659,1
    - Dst: prf_update
      Src: /src/nss/lib/softoken/sftkike.c:663,1
    - Dst: prf_final
      Src: /src/nss/lib/softoken/sftkike.c:667,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/sftkike.c:672,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/sftkike.c:675,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/sftkike.c:678,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/sftkike.c:681,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/sftkike.c:684,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/sftkike.c:686,1
    - Dst: prf_free
      Src: /src/nss/lib/softoken/sftkike.c:687,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 95
    argCount: 5
    argNames:
    - hSession
    - inKey
    - params
    - outKey
    - keySize
    argTypes:
    - CK_SESSION_HANDLE
    - SFTKAttribute*
    - CK_IKE1_PRF_DERIVE_PARAMS*
    - SFTKObject*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 583
    functionDepth: 3
    functionLinenumber: 583
    functionLinenumberEnd: 689
    functionName: sftk_ike1_prf
    functionSourceFile: /src/nss/lib/softoken/sftkike.c
    functionUses: 0
    functionsReached:
    - sftk_ObjectFromHandle
    - sftk_FreeSession
    - sftk_FindAttribute
    - sftk_SessionFromHandle
    - sftk_FreeObject
    - sftk_FreeAttribute
    - prf_setup
    - prf_update
    - prf_final
    - sftk_forceAttribute
    - PORT_Memset
    - prf_length
    - prf_free
    - prf_init
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftk_ike1_prf(CK_SESSION_HANDLE hSession, const SFTKAttribute
      *inKey,\n              const CK_IKE1_PRF_DERIVE_PARAMS *params, SFTKObject *outKey,\n
      \             unsigned int keySize)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: prf_setup
      Src: /src/nss/lib/softoken/sftkike.c:730,1
    - Dst: sftk_SessionFromHandle
      Src: /src/nss/lib/softoken/sftkike.c:737,1
    - Dst: sftk_ObjectFromHandle
      Src: /src/nss/lib/softoken/sftkike.c:741,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/sftkike.c:742,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/sftkike.c:747,1
    - Dst: prf_length
      Src: /src/nss/lib/softoken/sftkike.c:759,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/sftkike.c:771,1
    - Dst: PR_ROUNDUP
      Src: /src/nss/lib/softoken/sftkike.c:775,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/sftkike.c:776,1
    - Dst: prf_init
      Src: /src/nss/lib/softoken/sftkike.c:791,1
    - Dst: prf_update
      Src: /src/nss/lib/softoken/sftkike.c:796,1
    - Dst: prf_update
      Src: /src/nss/lib/softoken/sftkike.c:803,1
    - Dst: prf_update
      Src: /src/nss/lib/softoken/sftkike.c:811,1
    - Dst: prf_update
      Src: /src/nss/lib/softoken/sftkike.c:820,1
    - Dst: prf_final
      Src: /src/nss/lib/softoken/sftkike.c:825,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/sftkike.c:832,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/sftkike.c:835,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/sftkike.c:838,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/softoken/sftkike.c:841,1
    - Dst: prf_free
      Src: /src/nss/lib/softoken/sftkike.c:843,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 105
    argCount: 5
    argNames:
    - hSession
    - inKey
    - params
    - outKey
    - keySize
    argTypes:
    - CK_SESSION_HANDLE
    - SFTKAttribute*
    - CK_IKE1_EXTENDED_DERIVE_PARAMS*
    - SFTKObject*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 710
    functionDepth: 3
    functionLinenumber: 710
    functionLinenumberEnd: 845
    functionName: sftk_ike1_appendix_b_prf
    functionSourceFile: /src/nss/lib/softoken/sftkike.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - sftk_ObjectFromHandle
    - sftk_FreeSession
    - sftk_FindAttribute
    - sftk_SessionFromHandle
    - sftk_FreeObject
    - PORT_ZFree
    - sftk_FreeAttribute
    - prf_init
    - prf_setup
    - prf_update
    - prf_final
    - sftk_forceAttribute
    - prf_length
    - prf_free
    - PR_ROUNDUP
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftk_ike1_appendix_b_prf(CK_SESSION_HANDLE hSession, const SFTKAttribute
      *inKey,\n                         const CK_IKE1_EXTENDED_DERIVE_PARAMS *params,\n
      \                        SFTKObject *outKey, unsigned int keySize)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: prf_setup
      Src: /src/nss/lib/softoken/sftkike.c:893,1
    - Dst: sftk_SessionFromHandle
      Src: /src/nss/lib/softoken/sftkike.c:899,1
    - Dst: sftk_ObjectFromHandle
      Src: /src/nss/lib/softoken/sftkike.c:903,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/sftkike.c:904,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/sftkike.c:908,1
    - Dst: prf_length
      Src: /src/nss/lib/softoken/sftkike.c:917,1
    - Dst: PR_ROUNDUP
      Src: /src/nss/lib/softoken/sftkike.c:918,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/sftkike.c:919,1
    - Dst: prf_init
      Src: /src/nss/lib/softoken/sftkike.c:941,1
    - Dst: prf_update
      Src: /src/nss/lib/softoken/sftkike.c:947,1
    - Dst: prf_update
      Src: /src/nss/lib/softoken/sftkike.c:954,1
    - Dst: prf_update
      Src: /src/nss/lib/softoken/sftkike.c:962,1
    - Dst: prf_update
      Src: /src/nss/lib/softoken/sftkike.c:969,1
    - Dst: prf_final
      Src: /src/nss/lib/softoken/sftkike.c:973,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/softoken/sftkike.c:985,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/sftkike.c:988,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/sftkike.c:991,1
    - Dst: prf_free
      Src: /src/nss/lib/softoken/sftkike.c:993,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 100
    argCount: 7
    argNames:
    - hSession
    - inKeyData
    - inKeyLen
    - params
    - outKeyDataPtr
    - outKeySizePtr
    - keySize
    argTypes:
    - CK_SESSION_HANDLE
    - unsigned char*
    - CK_ULONG
    - CK_IKE2_PRF_PLUS_DERIVE_PARAMS*
    - unsigned char**
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 995
      start: 870
    functionDepth: 3
    functionLinenumber: 870
    functionLinenumberEnd: 995
    functionName: sftk_ike_prf_plus_raw
    functionSourceFile: /src/nss/lib/softoken/sftkike.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - sftk_ObjectFromHandle
    - sftk_FreeSession
    - sftk_FindAttribute
    - sftk_SessionFromHandle
    - PORT_ZFree
    - sftk_FreeObject
    - sftk_FreeAttribute
    - prf_init
    - prf_setup
    - prf_update
    - prf_final
    - prf_length
    - prf_free
    - PR_ROUNDUP
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftk_ike_prf_plus_raw(CK_SESSION_HANDLE hSession,\n                      const
      unsigned char *inKeyData, CK_ULONG inKeyLen,\n                      const CK_IKE2_PRF_PLUS_DERIVE_PARAMS
      *params,\n                      unsigned char **outKeyDataPtr, unsigned int
      *outKeySizePtr,\n                      unsigned int keySize)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sftk_ike_prf_plus_raw
      Src: /src/nss/lib/softoken/sftkike.c:1009,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/sftkike.c:1016,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/softoken/sftkike.c:1017,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - hSession
    - inKey
    - params
    - outKey
    - keySize
    argTypes:
    - CK_SESSION_HANDLE
    - SFTKAttribute*
    - CK_IKE2_PRF_PLUS_DERIVE_PARAMS*
    - SFTKObject*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 1000
    functionDepth: 4
    functionLinenumber: 1000
    functionLinenumberEnd: 1019
    functionName: sftk_ike_prf_plus
    functionSourceFile: /src/nss/lib/softoken/sftkike.c
    functionUses: 0
    functionsReached:
    - sftk_forceAttribute
    - PORT_ZFree
    - sftk_ike_prf_plus_raw
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftk_ike_prf_plus(CK_SESSION_HANDLE hSession, const SFTKAttribute
      *inKey,\n                  const CK_IKE2_PRF_PLUS_DERIVE_PARAMS *params, SFTKObject
      *outKey,\n                  unsigned int keySize)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: sftk_SlotFromSessionHandle
      Src: /src/nss/lib/softoken/sftkike.c:1044,1
    - Dst: sftk_SessionFromHandle
      Src: /src/nss/lib/softoken/sftkike.c:1052,1
    - Dst: sftk_ObjectFromHandle
      Src: /src/nss/lib/softoken/sftkike.c:1058,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/sftkike.c:1064,1
    - Dst: sftk_aes_xcbc_get_keys
      Src: /src/nss/lib/softoken/sftkike.c:1070,1
    - Dst: sftk_NewObject
      Src: /src/nss/lib/softoken/sftkike.c:1080,1
    - Dst: sftk_DeleteAttributeType
      Src: /src/nss/lib/softoken/sftkike.c:1087,1
    - Dst: sftk_DeleteAttributeType
      Src: /src/nss/lib/softoken/sftkike.c:1088,1
    - Dst: sftk_DeleteAttributeType
      Src: /src/nss/lib/softoken/sftkike.c:1089,1
    - Dst: sftk_DeleteAttributeType
      Src: /src/nss/lib/softoken/sftkike.c:1090,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/sftkike.c:1093,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/sftkike.c:1097,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/sftkike.c:1101,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/sftkike.c:1105,1
    - Dst: sftk_handleObject
      Src: /src/nss/lib/softoken/sftkike.c:1113,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/sftkike.c:1120,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/sftkike.c:1124,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/sftkike.c:1127,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/sftkike.c:1130,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/sftkike.c:1133,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/sftkike.c:1135,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/sftkike.c:1136,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 83
    argCount: 5
    argNames:
    - hSession
    - hKey
    - phKey
    - k2
    - k3
    argTypes:
    - CK_SESSION_HANDLE
    - CK_OBJECT_HANDLE
    - CK_OBJECT_HANDLE_PTR
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1139
      start: 1031
    functionDepth: 2
    functionLinenumber: 1031
    functionLinenumberEnd: 1139
    functionName: sftk_aes_xcbc_new_keys
    functionSourceFile: /src/nss/lib/softoken/sftkike.c
    functionUses: 0
    functionsReached:
    - sftk_ObjectFromHandle
    - sftk_FreeSession
    - sftk_FindAttribute
    - sftk_SessionFromHandle
    - sftk_AddAttributeType
    - sftk_FreeAttribute
    - sftk_SlotFromSessionHandle
    - sftk_aes_xcbc_get_keys
    - sftk_handleObject
    - PORT_Memset
    - sftk_FreeObject
    - sftk_NewObject
    - sftk_DeleteAttributeType
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftk_aes_xcbc_new_keys(CK_SESSION_HANDLE hSession,\n                       CK_OBJECT_HANDLE
      hKey, CK_OBJECT_HANDLE_PTR phKey,\n                       unsigned char *k2,
      unsigned char *k3)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: prf_setup
      Src: /src/nss/lib/softoken/sftkike.c:1155,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/sftkike.c:1157,1
    - Dst: prf_length
      Src: /src/nss/lib/softoken/sftkike.c:1160,1
    - Dst: prf_init
      Src: /src/nss/lib/softoken/sftkike.c:1161,1
    - Dst: prf_update
      Src: /src/nss/lib/softoken/sftkike.c:1165,1
    - Dst: prf_final
      Src: /src/nss/lib/softoken/sftkike.c:1169,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/softoken/sftkike.c:1177,1
    - Dst: prf_free
      Src: /src/nss/lib/softoken/sftkike.c:1185,1
    - Dst: prf_init
      Src: /src/nss/lib/softoken/sftkike.c:1187,1
    - Dst: prf_update
      Src: /src/nss/lib/softoken/sftkike.c:1191,1
    - Dst: prf_update
      Src: /src/nss/lib/softoken/sftkike.c:1195,1
    - Dst: prf_update
      Src: /src/nss/lib/softoken/sftkike.c:1199,1
    - Dst: prf_final
      Src: /src/nss/lib/softoken/sftkike.c:1203,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/softoken/sftkike.c:1207,1
    - Dst: prf_free
      Src: /src/nss/lib/softoken/sftkike.c:1210,1
    - Dst: prf_free
      Src: /src/nss/lib/softoken/sftkike.c:1213,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/sftkike.c:1214,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 70
    argCount: 7
    argNames:
    - mech
    - inKey
    - inKeyLen
    - plainText
    - plainTextLen
    - expectedResult
    - expectedResultLen
    argTypes:
    - CK_MECHANISM_TYPE
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1216
      start: 1144
    functionDepth: 3
    functionLinenumber: 1144
    functionLinenumberEnd: 1216
    functionName: prf_test
    functionSourceFile: /src/nss/lib/softoken/sftkike.c
    functionUses: 0
    functionsReached:
    - PORT_Memcmp
    - prf_setup
    - prf_update
    - PORT_SetError
    - prf_final
    - prf_length
    - prf_free
    - prf_init
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus prf_test(CK_MECHANISM_TYPE mech,\n         const unsigned
      char *inKey, unsigned int inKeyLen,\n         const unsigned char *plainText,
      unsigned int plainTextLen,\n         const unsigned char *expectedResult, unsigned
      int expectedResultLen)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: prf_test
      Src: /src/nss/lib/softoken/sftkike.c:1352,1
    - Dst: prf_test
      Src: /src/nss/lib/softoken/sftkike.c:1358,1
    - Dst: prf_test
      Src: /src/nss/lib/softoken/sftkike.c:1364,1
    - Dst: prf_test
      Src: /src/nss/lib/softoken/sftkike.c:1370,1
    - Dst: prf_test
      Src: /src/nss/lib/softoken/sftkike.c:1376,1
    - Dst: prf_test
      Src: /src/nss/lib/softoken/sftkike.c:1382,1
    - Dst: prf_test
      Src: /src/nss/lib/softoken/sftkike.c:1389,1
    - Dst: prf_test
      Src: /src/nss/lib/softoken/sftkike.c:1396,1
    - Dst: sftk_ike_prf_plus_raw
      Src: /src/nss/lib/softoken/sftkike.c:1407,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/softoken/sftkike.c:1412,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/sftkike.c:1414,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/softoken/sftkike.c:1417,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1419
      start: 1222
    functionDepth: 4
    functionLinenumber: 1222
    functionLinenumberEnd: 1419
    functionName: sftk_fips_IKE_PowerUpSelfTests
    functionSourceFile: /src/nss/lib/softoken/sftkike.c
    functionUses: 1
    functionsReached:
    - PORT_ZFree
    - PORT_Memcmp
    - sftk_ike_prf_plus_raw
    - PORT_SetError
    - prf_test
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sftk_fips_IKE_PowerUpSelfTests(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/jpakesftk.c:17,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - rv
    - invalidArgsMapping
    argTypes:
    - SECStatus
    - CK_RV
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 29
    functionName: jpake_mapStatus
    functionSourceFile: /src/nss/lib/softoken/jpakesftk.c
    functionUses: 0
    functionsReached:
    - PORT_GetError
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV jpake_mapStatus(SECStatus rv, CK_RV invalidArgsMapping)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/jpakesftk.c:41,1
    - Dst: jpake_mapStatus
      Src: /src/nss/lib/softoken/jpakesftk.c:46,1
    - Dst: JPAKE_Sign
      Src: /src/nss/lib/softoken/jpakesftk.c:46,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/jpakesftk.c:53,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/jpakesftk.c:54,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/jpakesftk.c:55,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 6
    argNames:
    - arena
    - pqg
    - hashType
    - signerID
    - x
    - out
    argTypes:
    - PLArenaPool*
    - PQGParams*
    - HASH_HashType
    - SECItem*
    - SECItem*
    - CK_NSS_JPAKEPublicValue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 64
    functionName: jpake_Sign
    functionSourceFile: /src/nss/lib/softoken/jpakesftk.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - JPAKE_Sign
    - PORT_Memcpy
    - jpake_mapStatus
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV jpake_Sign(PLArenaPool *arena, const PQGParams *pqg, HASH_HashType
      hashType,\n           const SECItem *signerID, const SECItem *x,\n           CK_NSS_JPAKEPublicValue
      *out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: jpake_mapStatus
      Src: /src/nss/lib/softoken/jpakesftk.c:81,1
    - Dst: JPAKE_Verify
      Src: /src/nss/lib/softoken/jpakesftk.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 7
    argNames:
    - arena
    - pqg
    - hashType
    - signerID
    - peerIDData
    - peerIDLen
    - publicValueIn
    argTypes:
    - PLArenaPool*
    - PQGParams*
    - HASH_HashType
    - SECItem*
    - CK_BYTE*
    - CK_ULONG
    - CK_NSS_JPAKEPublicValue*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 84
    functionName: jpake_Verify
    functionSourceFile: /src/nss/lib/softoken/jpakesftk.c
    functionUses: 0
    functionsReached:
    - JPAKE_Verify
    - jpake_mapStatus
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV jpake_Verify(PLArenaPool *arena, const PQGParams *pqg,\n             HASH_HashType
      hashType, const SECItem *signerID,\n             const CK_BYTE *peerIDData,
      CK_ULONG peerIDLen,\n             const CK_NSS_JPAKEPublicValue *publicValueIn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: NUM_ELEM
    functionSourceFile: /src/nss/lib/softoken/jpakesftk.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NUM_ELEM(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/jpakesftk.c:96,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/jpakesftk.c:101,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/jpakesftk.c:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - key
    - keyType
    argTypes:
    - SFTKObject*
    - CK_KEY_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 106
    functionName: jpake_enforceKeyType
    functionSourceFile: /src/nss/lib/softoken/jpakesftk.c
    functionUses: 0
    functionsReached:
    - sftk_forceAttribute
    - sftk_FindAttribute
    - sftk_FreeAttribute
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV jpake_enforceKeyType(SFTKObject *key, CK_KEY_TYPE keyType)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/jpakesftk.c:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - key
    - attrs
    - attrsCount
    argTypes:
    - SFTKObject*
    - SFTKItemTemplate*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 121
    functionName: jpake_MultipleSecItem2Attribute
    functionSourceFile: /src/nss/lib/softoken/jpakesftk.c
    functionUses: 0
    functionsReached:
    - sftk_forceAttribute
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV jpake_MultipleSecItem2Attribute(SFTKObject *key, const SFTKItemTemplate
      *attrs,\n                                size_t attrsCount)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/jpakesftk.c:145,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/jpakesftk.c:146,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/jpakesftk.c:148,1
    - Dst: sftk_MultipleAttribute2SecItem
      Src: /src/nss/lib/softoken/jpakesftk.c:152,1
    - Dst: NUM_ELEM
      Src: /src/nss/lib/softoken/jpakesftk.c:153,1
    - Dst: jpake_mapStatus
      Src: /src/nss/lib/softoken/jpakesftk.c:161,1
    - Dst: DSA_NewRandom
      Src: /src/nss/lib/softoken/jpakesftk.c:161,1
    - Dst: jpake_Sign
      Src: /src/nss/lib/softoken/jpakesftk.c:165,1
    - Dst: jpake_mapStatus
      Src: /src/nss/lib/softoken/jpakesftk.c:170,1
    - Dst: DSA_NewRandom
      Src: /src/nss/lib/softoken/jpakesftk.c:170,1
    - Dst: jpake_Sign
      Src: /src/nss/lib/softoken/jpakesftk.c:174,1
    - Dst: jpake_MultipleSecItem2Attribute
      Src: /src/nss/lib/softoken/jpakesftk.c:182,1
    - Dst: NUM_ELEM
      Src: /src/nss/lib/softoken/jpakesftk.c:183,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/jpakesftk.c:186,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - hashType
    - params
    - key
    argTypes:
    - HASH_HashType
    - CK_NSS_JPAKERound1Params*
    - SFTKObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 188
    functionName: jpake_Round1
    functionSourceFile: /src/nss/lib/softoken/jpakesftk.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - jpake_MultipleSecItem2Attribute
    - PORT_NewArena
    - PORT_FreeArena
    - DSA_NewRandom
    - sftk_MultipleAttribute2SecItem
    - NUM_ELEM
    - jpake_mapStatus
    - jpake_Sign
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV jpake_Round1(HASH_HashType hashType, CK_NSS_JPAKERound1Params
      *params,\n             SFTKObject *key)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/jpakesftk.c:221,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/jpakesftk.c:222,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/jpakesftk.c:223,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/jpakesftk.c:225,1
    - Dst: sftk_MultipleAttribute2SecItem
      Src: /src/nss/lib/softoken/jpakesftk.c:231,1
    - Dst: NUM_ELEM
      Src: /src/nss/lib/softoken/jpakesftk.c:232,1
    - Dst: sftk_Attribute2SecItem
      Src: /src/nss/lib/softoken/jpakesftk.c:236,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/softoken/jpakesftk.c:240,1
    - Dst: jpake_Verify
      Src: /src/nss/lib/softoken/jpakesftk.c:245,1
    - Dst: jpake_Verify
      Src: /src/nss/lib/softoken/jpakesftk.c:248,1
    - Dst: jpake_mapStatus
      Src: /src/nss/lib/softoken/jpakesftk.c:262,1
    - Dst: JPAKE_Round2
      Src: /src/nss/lib/softoken/jpakesftk.c:262,1
    - Dst: jpake_Sign
      Src: /src/nss/lib/softoken/jpakesftk.c:270,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/jpakesftk.c:275,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/jpakesftk.c:278,1
    - Dst: jpake_MultipleSecItem2Attribute
      Src: /src/nss/lib/softoken/jpakesftk.c:281,1
    - Dst: NUM_ELEM
      Src: /src/nss/lib/softoken/jpakesftk.c:282,1
    - Dst: jpake_enforceKeyType
      Src: /src/nss/lib/softoken/jpakesftk.c:286,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/jpakesftk.c:288,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 4
    argNames:
    - hashType
    - params
    - sourceKey
    - key
    argTypes:
    - HASH_HashType
    - CK_NSS_JPAKERound2Params*
    - SFTKObject*
    - SFTKObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 290
    functionName: jpake_Round2
    functionSourceFile: /src/nss/lib/softoken/jpakesftk.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SECITEM_CompareItem
    - jpake_enforceKeyType
    - jpake_MultipleSecItem2Attribute
    - PORT_NewArena
    - sftk_Attribute2SecItem
    - JPAKE_Round2
    - PORT_FreeArena
    - jpake_Verify
    - sftk_MultipleAttribute2SecItem
    - sftk_forceAttribute
    - NUM_ELEM
    - jpake_mapStatus
    - jpake_Sign
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV jpake_Round2(HASH_HashType hashType, CK_NSS_JPAKERound2Params
      *params,\n             SFTKObject *sourceKey, SFTKObject *key)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/jpakesftk.c:314,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/jpakesftk.c:315,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/jpakesftk.c:316,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/jpakesftk.c:318,1
    - Dst: sftk_MultipleAttribute2SecItem
      Src: /src/nss/lib/softoken/jpakesftk.c:324,1
    - Dst: NUM_ELEM
      Src: /src/nss/lib/softoken/jpakesftk.c:325,1
    - Dst: jpake_mapStatus
      Src: /src/nss/lib/softoken/jpakesftk.c:330,1
    - Dst: JPAKE_Round2
      Src: /src/nss/lib/softoken/jpakesftk.c:330,1
    - Dst: jpake_Verify
      Src: /src/nss/lib/softoken/jpakesftk.c:338,1
    - Dst: jpake_mapStatus
      Src: /src/nss/lib/softoken/jpakesftk.c:345,1
    - Dst: JPAKE_Final
      Src: /src/nss/lib/softoken/jpakesftk.c:345,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/jpakesftk.c:352,1
    - Dst: jpake_enforceKeyType
      Src: /src/nss/lib/softoken/jpakesftk.c:355,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/jpakesftk.c:357,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 4
    argNames:
    - hashType
    - param
    - sourceKey
    - key
    argTypes:
    - HASH_HashType
    - CK_NSS_JPAKEFinalParams*
    - SFTKObject*
    - SFTKObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 292
    functionDepth: 2
    functionLinenumber: 292
    functionLinenumberEnd: 359
    functionName: jpake_Final
    functionSourceFile: /src/nss/lib/softoken/jpakesftk.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - jpake_enforceKeyType
    - PORT_NewArena
    - JPAKE_Round2
    - PORT_FreeArena
    - jpake_Verify
    - JPAKE_Final
    - sftk_MultipleAttribute2SecItem
    - sftk_forceAttribute
    - NUM_ELEM
    - jpake_mapStatus
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV jpake_Final(HASH_HashType hashType, const CK_NSS_JPAKEFinalParams
      *param,\n            SFTKObject *sourceKey, SFTKObject *key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 20
    functionName: FREE_CLEAR
    functionSourceFile: /src/nss/lib/softoken/sftkpars.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FREE_CLEAR(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSSUTIL_ArgHasFlag
      Src: /src/nss/lib/softoken/sftkpars.c:24,1
    - Dst: NSSUTIL_ArgHasFlag
      Src: /src/nss/lib/softoken/sftkpars.c:25,1
    - Dst: NSSUTIL_ArgHasFlag
      Src: /src/nss/lib/softoken/sftkpars.c:26,1
    - Dst: NSSUTIL_ArgHasFlag
      Src: /src/nss/lib/softoken/sftkpars.c:27,1
    - Dst: NSSUTIL_ArgHasFlag
      Src: /src/nss/lib/softoken/sftkpars.c:28,1
    - Dst: NSSUTIL_ArgHasFlag
      Src: /src/nss/lib/softoken/sftkpars.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - tmp
    - parsed
    argTypes:
    - char*
    - sftk_token_parameters*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 21
    functionDepth: 6
    functionLinenumber: 21
    functionLinenumberEnd: 31
    functionName: sftk_parseTokenFlags
    functionSourceFile: /src/nss/lib/softoken/sftkpars.c
    functionUses: 0
    functionsReached:
    - NSSUTIL_ArgHasFlag
    linkageType: ''
    returnType: void
    signature: void sftk_parseTokenFlags(char *tmp, sftk_token_parameters *parsed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSSUTIL_ArgHasFlag
      Src: /src/nss/lib/softoken/sftkpars.c:36,1
    - Dst: NSSUTIL_ArgHasFlag
      Src: /src/nss/lib/softoken/sftkpars.c:37,1
    - Dst: NSSUTIL_ArgHasFlag
      Src: /src/nss/lib/softoken/sftkpars.c:39,1
    - Dst: NSSUTIL_ArgHasFlag
      Src: /src/nss/lib/softoken/sftkpars.c:40,1
    - Dst: NSSUTIL_ArgHasFlag
      Src: /src/nss/lib/softoken/sftkpars.c:41,1
    - Dst: NSSUTIL_ArgHasFlag
      Src: /src/nss/lib/softoken/sftkpars.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - tmp
    - parsed
    argTypes:
    - char*
    - sftk_parameters*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 33
    functionDepth: 6
    functionLinenumber: 33
    functionLinenumberEnd: 44
    functionName: sftk_parseFlags
    functionSourceFile: /src/nss/lib/softoken/sftkpars.c
    functionUses: 0
    functionsReached:
    - NSSUTIL_ArgHasFlag
    linkageType: ''
    returnType: void
    signature: void sftk_parseFlags(char *tmp, sftk_parameters *parsed)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: NSSUTIL_ArgStrip
      Src: /src/nss/lib/softoken/sftkpars.c:52,1
    - Dst: NSSUTIL_HANDLE_STRING_ARG
      Src: /src/nss/lib/softoken/sftkpars.c:55,1
    - Dst: NSSUTIL_HANDLE_STRING_ARG
      Src: /src/nss/lib/softoken/sftkpars.c:56,1
    - Dst: NSSUTIL_HANDLE_STRING_ARG
      Src: /src/nss/lib/softoken/sftkpars.c:57,1
    - Dst: NSSUTIL_HANDLE_STRING_ARG
      Src: /src/nss/lib/softoken/sftkpars.c:58,1
    - Dst: NSSUTIL_HANDLE_STRING_ARG
      Src: /src/nss/lib/softoken/sftkpars.c:59,1
    - Dst: NSSUTIL_HANDLE_STRING_ARG
      Src: /src/nss/lib/softoken/sftkpars.c:60,1
    - Dst: NSSUTIL_HANDLE_STRING_ARG
      Src: /src/nss/lib/softoken/sftkpars.c:61,1
    - Dst: NSSUTIL_HANDLE_STRING_ARG
      Src: /src/nss/lib/softoken/sftkpars.c:62,1
    - Dst: NSSUTIL_HANDLE_STRING_ARG
      Src: /src/nss/lib/softoken/sftkpars.c:63,1
    - Dst: NSSUTIL_HANDLE_STRING_ARG
      Src: /src/nss/lib/softoken/sftkpars.c:64,1
    - Dst: NSSUTIL_HANDLE_STRING_ARG
      Src: /src/nss/lib/softoken/sftkpars.c:65,1
    - Dst: if
      Src: /src/nss/lib/softoken/sftkpars.c:67,1
    - Dst: atoi
      Src: /src/nss/lib/softoken/sftkpars.c:67,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/sftkpars.c:67,1
    - Dst: NSSUTIL_HANDLE_STRING_ARG
      Src: /src/nss/lib/softoken/sftkpars.c:68,1
    - Dst: if
      Src: /src/nss/lib/softoken/sftkpars.c:70,1
    - Dst: sftk_parseTokenFlags
      Src: /src/nss/lib/softoken/sftkpars.c:70,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/sftkpars.c:70,1
    - Dst: NSSUTIL_HANDLE_FINAL_ARG
      Src: /src/nss/lib/softoken/sftkpars.c:71,1
    - Dst: sftk_parseTokens
      Src: /src/nss/lib/softoken/sftkpars.c:77,1
    - Dst: NSSUTIL_ArgStrip
      Src: /src/nss/lib/softoken/sftkpars.c:87,1
    - Dst: NSSUTIL_ArgStrip
      Src: /src/nss/lib/softoken/sftkpars.c:88,1
    - Dst: NSSUTIL_ArgSkipParameter
      Src: /src/nss/lib/softoken/sftkpars.c:88,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/softoken/sftkpars.c:94,1
    - Dst: NSSUTIL_ArgStrip
      Src: /src/nss/lib/softoken/sftkpars.c:98,1
    - Dst: NSSUTIL_ArgGetLabel
      Src: /src/nss/lib/softoken/sftkpars.c:101,1
    - Dst: NSSUTIL_ArgDecodeNumber
      Src: /src/nss/lib/softoken/sftkpars.c:104,1
    - Dst: NSSUTIL_ArgIsBlank
      Src: /src/nss/lib/softoken/sftkpars.c:108,1
    - Dst: NSSUTIL_ArgFetchValue
      Src: /src/nss/lib/softoken/sftkpars.c:109,1
    - Dst: sftk_parseTokenParameters
      Src: /src/nss/lib/softoken/sftkpars.c:112,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/sftkpars.c:113,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/sftkpars.c:117,1
    - Dst: NSSUTIL_ArgStrip
      Src: /src/nss/lib/softoken/sftkpars.c:118,1
    - Dst: NSSUTIL_ArgStrip
      Src: /src/nss/lib/softoken/sftkpars.c:136,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/sftkpars.c:138,1
    - Dst: NSSUTIL_HANDLE_STRING_ARG
      Src: /src/nss/lib/softoken/sftkpars.c:141,1
    - Dst: NSSUTIL_HANDLE_STRING_ARG
      Src: /src/nss/lib/softoken/sftkpars.c:142,1
    - Dst: NSSUTIL_HANDLE_STRING_ARG
      Src: /src/nss/lib/softoken/sftkpars.c:143,1
    - Dst: NSSUTIL_HANDLE_STRING_ARG
      Src: /src/nss/lib/softoken/sftkpars.c:144,1
    - Dst: NSSUTIL_HANDLE_STRING_ARG
      Src: /src/nss/lib/softoken/sftkpars.c:145,1
    - Dst: NSSUTIL_HANDLE_STRING_ARG
      Src: /src/nss/lib/softoken/sftkpars.c:146,1
    - Dst: NSSUTIL_HANDLE_STRING_ARG
      Src: /src/nss/lib/softoken/sftkpars.c:148,1
    - Dst: NSSUTIL_HANDLE_STRING_ARG
      Src: /src/nss/lib/softoken/sftkpars.c:149,1
    - Dst: NSSUTIL_HANDLE_STRING_ARG
      Src: /src/nss/lib/softoken/sftkpars.c:150,1
    - Dst: NSSUTIL_HANDLE_STRING_ARG
      Src: /src/nss/lib/softoken/sftkpars.c:151,1
    - Dst: NSSUTIL_HANDLE_STRING_ARG
      Src: /src/nss/lib/softoken/sftkpars.c:152,1
    - Dst: NSSUTIL_HANDLE_STRING_ARG
      Src: /src/nss/lib/softoken/sftkpars.c:153,1
    - Dst: NSSUTIL_HANDLE_STRING_ARG
      Src: /src/nss/lib/softoken/sftkpars.c:154,1
    - Dst: NSSUTIL_HANDLE_STRING_ARG
      Src: /src/nss/lib/softoken/sftkpars.c:155,1
    - Dst: NSSUTIL_HANDLE_STRING_ARG
      Src: /src/nss/lib/softoken/sftkpars.c:156,1
    - Dst: NSSUTIL_HANDLE_STRING_ARG
      Src: /src/nss/lib/softoken/sftkpars.c:157,1
    - Dst: NSSUTIL_HANDLE_STRING_ARG
      Src: /src/nss/lib/softoken/sftkpars.c:159,1
    - Dst: if
      Src: /src/nss/lib/softoken/sftkpars.c:161,1
    - Dst: sftk_parseFlags
      Src: /src/nss/lib/softoken/sftkpars.c:161,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/sftkpars.c:161,1
    - Dst: NSSUTIL_HANDLE_STRING_ARG
      Src: /src/nss/lib/softoken/sftkpars.c:162,1
    - Dst: if
      Src: /src/nss/lib/softoken/sftkpars.c:164,1
    - Dst: sftk_parseTokens
      Src: /src/nss/lib/softoken/sftkpars.c:164,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/sftkpars.c:164,1
    - Dst: NSSUTIL_HANDLE_FINAL_ARG
      Src: /src/nss/lib/softoken/sftkpars.c:165,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/softoken/sftkpars.c:173,1
    - Dst: atoi
      Src: /src/nss/lib/softoken/sftkpars.c:182,1
    - Dst: FREE_CLEAR
      Src: /src/nss/lib/softoken/sftkpars.c:239,1
    - Dst: FREE_CLEAR
      Src: /src/nss/lib/softoken/sftkpars.c:240,1
    - Dst: FREE_CLEAR
      Src: /src/nss/lib/softoken/sftkpars.c:241,1
    - Dst: FREE_CLEAR
      Src: /src/nss/lib/softoken/sftkpars.c:242,1
    - Dst: FREE_CLEAR
      Src: /src/nss/lib/softoken/sftkpars.c:243,1
    - Dst: FREE_CLEAR
      Src: /src/nss/lib/softoken/sftkpars.c:244,1
    - Dst: FREE_CLEAR
      Src: /src/nss/lib/softoken/sftkpars.c:245,1
    - Dst: NSSUTIL_ArgHasFlag
      Src: /src/nss/lib/softoken/sftkpars.c:267,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 107
    argCount: 2
    argNames:
    - param
    - parsed
    argTypes:
    - char*
    - sftk_token_parameters*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 46
    functionDepth: 7
    functionLinenumber: 46
    functionLinenumberEnd: 268
    functionName: sftk_parseTokenParameters
    functionSourceFile: /src/nss/lib/softoken/sftkpars.c
    functionUses: 1
    functionsReached:
    - sftk_parseTokenFlags
    - NSSUTIL_ArgStrip
    - sftk_parseTokenParameters
    - NSSUTIL_HANDLE_FINAL_ARG
    - NSSUTIL_ArgIsBlank
    - sftk_parseTokens
    - PORT_ZAlloc
    - NSSUTIL_ArgFetchValue
    - NSSUTIL_ArgGetLabel
    - sftk_parseFlags
    - NSSUTIL_HANDLE_STRING_ARG
    - NSSUTIL_ArgDecodeNumber
    - if
    - FREE_CLEAR
    - PORT_Free
    - NSSUTIL_ArgSkipParameter
    - atoi
    - NSSUTIL_ArgHasFlag
    - PORT_Memset
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV sftk_parseTokenParameters(char *param, sftk_token_parameters
      *parsed)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - handle
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: SFTK_GET_SDB
    functionSourceFile: /src/nss/lib/softoken/sftkdbti.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SFTK_GET_SDB(handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: __PASTE
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __PASTE(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: CK_PKCS11_FUNCTION_INFO
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CK_PKCS11_FUNCTION_INFO(func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: CK_PKCS11_FUNCTION_INFO
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CK_PKCS11_FUNCTION_INFO(name)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 671
    functionDepth: 0
    functionLinenumber: 671
    functionLinenumberEnd: 677
    functionName: ForkedChild
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ForkedChild(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctxtype
    - ','
    - mmm
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 681
    functionDepth: 0
    functionLinenumber: 681
    functionLinenumberEnd: 687
    functionName: SFTKFreeWrap
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SFTKFreeWrap(ctxtype, mmm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strlen
      Src: /src/nss/lib/softoken/pkcs11.c:697,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/pkcs11.c:735,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11.c:739,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - inString
    - buffer
    - buffer_length
    - nullTerminate
    argTypes:
    - char*
    - char*
    - int
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 691
    functionDepth: 1
    functionLinenumber: 691
    functionLinenumberEnd: 741
    functionName: sftk_setStringName
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - PORT_Memset
    - PORT_Memcpy
    - PORT_Strlen
    linkageType: ''
    returnType: char
    signature: 'char *

      sftk_setStringName(const char *inString, char *buffer, int buffer_length, PRBool
      nullTerminate)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sftk_setStringName
      Src: /src/nss/lib/softoken/pkcs11.c:751,1
    - Dst: sftk_setStringName
      Src: /src/nss/lib/softoken/pkcs11.c:755,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - man
    - libdes
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 745
    functionDepth: 2
    functionLinenumber: 745
    functionLinenumberEnd: 761
    functionName: sftk_configure
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - sftk_setStringName
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV sftk_configure(const char *man, const char *libdes)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sftkdb_HasPasswordSet
      Src: /src/nss/lib/softoken/pkcs11.c:776,1
    - Dst: sftkdb_CheckPasswordNull
      Src: /src/nss/lib/softoken/pkcs11.c:778,1
    - Dst: sftk_CloseAllSessions
      Src: /src/nss/lib/softoken/pkcs11.c:780,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - slot
    - keydb
    argTypes:
    - SFTKSlot*
    - SFTKDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 770
    functionDepth: 4
    functionLinenumber: 770
    functionLinenumberEnd: 786
    functionName: sftk_hasNullPassword
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - sftk_CloseAllSessions
    - sftkdb_CheckPasswordNull
    - sftkdb_HasPasswordSet
    linkageType: ''
    returnType: PRBool
    signature: PRBool sftk_hasNullPassword(SFTKSlot *slot, SFTKDBHandle *keydb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sftk_hasAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:799,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11.c:800,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - object
    - type
    - value
    - len
    argTypes:
    - SFTKObject*
    - CK_ATTRIBUTE_TYPE
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 795
    functionDepth: 1
    functionLinenumber: 795
    functionLinenumberEnd: 803
    functionName: sftk_defaultAttribute
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - sftk_hasAttribute
    - sftk_AddAttributeType
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftk_defaultAttribute(SFTKObject *object, CK_ATTRIBUTE_TYPE
      type,\n                      const void *value, unsigned int len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sftk_isTrue
      Src: /src/nss/lib/softoken/pkcs11.c:814,1
    - Dst: sftk_isTrue
      Src: /src/nss/lib/softoken/pkcs11.c:814,1
    - Dst: sftk_defaultAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:819,1
    - Dst: sftk_defaultAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:822,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - session
    - object
    argTypes:
    - SFTKSession*
    - SFTKObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 808
    functionDepth: 2
    functionLinenumber: 808
    functionLinenumberEnd: 827
    functionName: sftk_handleDataObject
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - sftk_isTrue
    - sftk_defaultAttribute
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV sftk_handleDataObject(SFTKSession *session, SFTKObject *object)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: sftk_hasAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:840,1
    - Dst: sftk_isTrue
      Src: /src/nss/lib/softoken/pkcs11.c:845,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:850,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:854,1
    - Dst: sftk_hasAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:863,1
    - Dst: sftk_hasAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:868,1
    - Dst: sftk_hasAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:873,1
    - Dst: sftk_hasAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:878,1
    - Dst: sftk_defaultAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:887,1
    - Dst: sftk_isTrue
      Src: /src/nss/lib/softoken/pkcs11.c:892,1
    - Dst: sftk_getCertDB
      Src: /src/nss/lib/softoken/pkcs11.c:894,1
    - Dst: sftkdb_write
      Src: /src/nss/lib/softoken/pkcs11.c:900,1
    - Dst: sftk_freeDB
      Src: /src/nss/lib/softoken/pkcs11.c:901,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 2
    argNames:
    - session
    - object
    argTypes:
    - SFTKSession*
    - SFTKObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 832
    functionDepth: 5
    functionLinenumber: 832
    functionLinenumberEnd: 906
    functionName: sftk_handleCertObject
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - sftk_hasAttribute
    - sftk_FindAttribute
    - sftk_FreeAttribute
    - sftk_isTrue
    - sftk_freeDB
    - sftk_defaultAttribute
    - sftk_getCertDB
    - sftkdb_write
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV sftk_handleCertObject(SFTKSession *session, SFTKObject *object)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sftk_isTrue
      Src: /src/nss/lib/softoken/pkcs11.c:915,1
    - Dst: sftk_hasAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:920,1
    - Dst: sftk_hasAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:923,1
    - Dst: sftk_hasAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:926,1
    - Dst: sftk_hasAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:929,1
    - Dst: sftk_isTrue
      Src: /src/nss/lib/softoken/pkcs11.c:933,1
    - Dst: sftk_getCertDB
      Src: /src/nss/lib/softoken/pkcs11.c:935,1
    - Dst: sftkdb_write
      Src: /src/nss/lib/softoken/pkcs11.c:942,1
    - Dst: sftk_freeDB
      Src: /src/nss/lib/softoken/pkcs11.c:943,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - session
    - object
    argTypes:
    - SFTKSession*
    - SFTKObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 911
    functionDepth: 5
    functionLinenumber: 911
    functionLinenumberEnd: 948
    functionName: sftk_handleNSSTrustObject
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - sftk_hasAttribute
    - sftk_isTrue
    - sftk_freeDB
    - sftkdb_write
    - sftk_getCertDB
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV sftk_handleNSSTrustObject(SFTKSession *session, SFTKObject *object)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sftk_isTrue
      Src: /src/nss/lib/softoken/pkcs11.c:957,1
    - Dst: sftk_hasAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:962,1
    - Dst: sftk_hasAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:965,1
    - Dst: sftk_hasAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:968,1
    - Dst: sftk_hasAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:971,1
    - Dst: sftk_isTrue
      Src: /src/nss/lib/softoken/pkcs11.c:975,1
    - Dst: sftk_getCertDB
      Src: /src/nss/lib/softoken/pkcs11.c:977,1
    - Dst: sftkdb_write
      Src: /src/nss/lib/softoken/pkcs11.c:984,1
    - Dst: sftk_freeDB
      Src: /src/nss/lib/softoken/pkcs11.c:985,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - session
    - object
    argTypes:
    - SFTKSession*
    - SFTKObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 953
    functionDepth: 5
    functionLinenumber: 953
    functionLinenumberEnd: 990
    functionName: sftk_handleTrustObject
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - sftk_hasAttribute
    - sftk_isTrue
    - sftk_freeDB
    - sftkdb_write
    - sftk_getCertDB
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV sftk_handleTrustObject(SFTKSession *session, SFTKObject *object)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sftk_isTrue
      Src: /src/nss/lib/softoken/pkcs11.c:1000,1
    - Dst: sftk_hasAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1005,1
    - Dst: sftk_hasAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1008,1
    - Dst: sftk_isTrue
      Src: /src/nss/lib/softoken/pkcs11.c:1012,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/pkcs11.c:1017,1
    - Dst: sftk_getCertDB
      Src: /src/nss/lib/softoken/pkcs11.c:1022,1
    - Dst: sftkdb_write
      Src: /src/nss/lib/softoken/pkcs11.c:1027,1
    - Dst: sftk_freeDB
      Src: /src/nss/lib/softoken/pkcs11.c:1028,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - session
    - object
    argTypes:
    - SFTKSession*
    - SFTKObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1033
      start: 995
    functionDepth: 5
    functionLinenumber: 995
    functionLinenumberEnd: 1033
    functionName: sftk_handleSMimeObject
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - sftk_hasAttribute
    - sftk_isTrue
    - sftk_freeDB
    - sftkdb_write
    - sftk_getCertDB
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV sftk_handleSMimeObject(SFTKSession *session, SFTKObject *object)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sftk_isTrue
      Src: /src/nss/lib/softoken/pkcs11.c:1043,1
    - Dst: sftk_hasAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1048,1
    - Dst: sftk_hasAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1051,1
    - Dst: sftk_isTrue
      Src: /src/nss/lib/softoken/pkcs11.c:1055,1
    - Dst: sftk_getCertDB
      Src: /src/nss/lib/softoken/pkcs11.c:1057,1
    - Dst: sftkdb_write
      Src: /src/nss/lib/softoken/pkcs11.c:1064,1
    - Dst: sftk_freeDB
      Src: /src/nss/lib/softoken/pkcs11.c:1065,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - session
    - object
    argTypes:
    - SFTKSession*
    - SFTKObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1070
      start: 1038
    functionDepth: 5
    functionLinenumber: 1038
    functionLinenumberEnd: 1070
    functionName: sftk_handleCrlObject
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - sftk_hasAttribute
    - sftk_isTrue
    - sftk_freeDB
    - sftkdb_write
    - sftk_getCertDB
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV sftk_handleCrlObject(SFTKSession *session, SFTKObject *object)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: sftk_ConstrainAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1088,1
    - Dst: sftk_ConstrainAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1093,1
    - Dst: sftk_ConstrainAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1099,1
    - Dst: sftk_ConstrainAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1104,1
    - Dst: sftk_ConstrainAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1109,1
    - Dst: sftk_ConstrainAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1113,1
    - Dst: sftk_ConstrainAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1122,1
    - Dst: sftk_ConstrainAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1127,1
    - Dst: sftk_ConstrainAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1131,1
    - Dst: sftk_hasAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1144,1
    - Dst: sftk_hasAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1147,1
    - Dst: sftk_hasAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1159,1
    - Dst: sftk_defaultAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1173,1
    - Dst: sftk_defaultAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1176,1
    - Dst: sftk_defaultAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1179,1
    - Dst: sftk_defaultAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1182,1
    - Dst: sftk_defaultAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1186,1
    - Dst: sftk_defaultAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1189,1
    - Dst: sftk_GetPubKey
      Src: /src/nss/lib/softoken/pkcs11.c:1193,1
    - Dst: EC_ValidatePublicKey
      Src: /src/nss/lib/softoken/pkcs11.c:1202,1
    - Dst: sftk_isTrue
      Src: /src/nss/lib/softoken/pkcs11.c:1210,1
    - Dst: sftk_getCertDB
      Src: /src/nss/lib/softoken/pkcs11.c:1212,1
    - Dst: sftkdb_write
      Src: /src/nss/lib/softoken/pkcs11.c:1218,1
    - Dst: sftk_freeDB
      Src: /src/nss/lib/softoken/pkcs11.c:1219,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 118
    argCount: 3
    argNames:
    - session
    - object
    - key_type
    argTypes:
    - SFTKSession*
    - SFTKObject*
    - CK_KEY_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1224
      start: 1075
    functionDepth: 5
    functionLinenumber: 1075
    functionLinenumberEnd: 1224
    functionName: sftk_handlePublicKeyObject
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - EC_ValidatePublicKey
    - sftk_hasAttribute
    - sftk_GetPubKey
    - sftk_isTrue
    - sftk_freeDB
    - sftk_defaultAttribute
    - sftk_getCertDB
    - sftkdb_write
    - sftk_ConstrainAttribute
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftk_handlePublicKeyObject(SFTKSession *session, SFTKObject
      *object,\n                           CK_KEY_TYPE key_type)"
  - BBCount: 50
    BranchProfiles: []
    Callsites:
    - Dst: sftk_hasAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1257,1
    - Dst: sftk_hasAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1260,1
    - Dst: sftk_hasAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1263,1
    - Dst: sftk_hasAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1266,1
    - Dst: sftk_hasAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1269,1
    - Dst: sftk_hasAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1272,1
    - Dst: sftk_hasAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1275,1
    - Dst: sftk_hasAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1278,1
    - Dst: sftk_verifyRSAPrivateKey
      Src: /src/nss/lib/softoken/pkcs11.c:1296,1
    - Dst: sftk_Attribute2SSecItem
      Src: /src/nss/lib/softoken/pkcs11.c:1302,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1305,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11.c:1306,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11.c:1308,1
    - Dst: sftk_hasAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1316,1
    - Dst: sftk_hasAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1323,1
    - Dst: sftk_hasAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1326,1
    - Dst: sftk_hasAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1329,1
    - Dst: sftk_defaultAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1333,1
    - Dst: sftk_hasAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1344,1
    - Dst: sftk_hasAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1347,1
    - Dst: sftk_hasAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1358,1
    - Dst: sftk_hasAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1359,1
    - Dst: sftk_hasAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1360,1
    - Dst: sftk_hasAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1373,1
    - Dst: sftk_hasAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1376,1
    - Dst: sftk_defaultAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1384,1
    - Dst: sftk_defaultAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1387,1
    - Dst: sftk_defaultAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1390,1
    - Dst: sftk_defaultAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1393,1
    - Dst: sftk_defaultAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1396,1
    - Dst: sftk_defaultAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1399,1
    - Dst: sftk_defaultAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1403,1
    - Dst: sftk_defaultAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1406,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1410,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1414,1
    - Dst: sftk_isTrue
      Src: /src/nss/lib/softoken/pkcs11.c:1421,1
    - Dst: sftk_getKeyDB
      Src: /src/nss/lib/softoken/pkcs11.c:1423,1
    - Dst: sftkdb_write
      Src: /src/nss/lib/softoken/pkcs11.c:1429,1
    - Dst: sftk_freeDB
      Src: /src/nss/lib/softoken/pkcs11.c:1430,1
    - Dst: sftk_mkPrivKey
      Src: /src/nss/lib/softoken/pkcs11.c:1433,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 154
    argCount: 3
    argNames:
    - session
    - object
    - key_type
    argTypes:
    - SFTKSession*
    - SFTKObject*
    - CK_KEY_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1439
      start: 1235
    functionDepth: 5
    functionLinenumber: 1235
    functionLinenumberEnd: 1439
    functionName: sftk_handlePrivateKeyObject
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - sftk_hasAttribute
    - sftk_Attribute2SSecItem
    - sftk_verifyRSAPrivateKey
    - sftk_isTrue
    - sftk_getKeyDB
    - sftk_freeDB
    - sftk_item_expand
    - sftk_defaultAttribute
    - sftkdb_write
    - sftk_forceAttribute
    - SECITEM_ZfreeItem
    - sftk_mkPrivKey
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV sftk_handlePrivateKeyObject(SFTKSession *session, SFTKObject
      *object, CK_KEY_TYPE key_type)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: sftk_defaultAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1455,1
    - Dst: sftk_defaultAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1459,1
    - Dst: sftk_defaultAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1463,1
    - Dst: sftk_defaultAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1466,1
    - Dst: sftk_defaultAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1469,1
    - Dst: sftk_defaultAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1472,1
    - Dst: sftk_defaultAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1475,1
    - Dst: sftk_defaultAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1478,1
    - Dst: sftk_hasAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1482,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1486,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1490,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1513,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1517,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1519,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1526,1
    - Dst: sftk_MapKeySize
      Src: /src/nss/lib/softoken/pkcs11.c:1530,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1532,1
    - Dst: sftk_FormatDESKey
      Src: /src/nss/lib/softoken/pkcs11.c:1535,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1537,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1540,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1547,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1550,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1552,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 80
    argCount: 4
    argNames:
    - session
    - object
    - key_type
    - isFIPS
    argTypes:
    - SFTKSession*
    - SFTKObject*
    - CK_KEY_TYPE
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1559
      start: 1445
    functionDepth: 2
    functionLinenumber: 1445
    functionLinenumberEnd: 1559
    functionName: validateSecretKey
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - sftk_hasAttribute
    - sftk_FindAttribute
    - sftk_FreeAttribute
    - sftk_MapKeySize
    - sftk_defaultAttribute
    - sftk_FormatDESKey
    - sftk_forceAttribute
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV validateSecretKey(SFTKSession *session, SFTKObject *object,\n
      \                 CK_KEY_TYPE key_type, PRBool isFIPS)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: validateSecretKey
      Src: /src/nss/lib/softoken/pkcs11.c:1571,1
    - Dst: sftk_isTrue
      Src: /src/nss/lib/softoken/pkcs11.c:1576,1
    - Dst: sftk_getKeyDB
      Src: /src/nss/lib/softoken/pkcs11.c:1578,1
    - Dst: sftkdb_write
      Src: /src/nss/lib/softoken/pkcs11.c:1584,1
    - Dst: sftk_freeDB
      Src: /src/nss/lib/softoken/pkcs11.c:1585,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - session
    - object
    - key_type
    - isFIPS
    argTypes:
    - SFTKSession*
    - SFTKObject*
    - CK_KEY_TYPE
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1592
      start: 1564
    functionDepth: 5
    functionLinenumber: 1564
    functionLinenumberEnd: 1592
    functionName: sftk_handleSecretKeyObject
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - sftk_isTrue
    - sftk_getKeyDB
    - sftk_freeDB
    - validateSecretKey
    - sftkdb_write
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftk_handleSecretKeyObject(SFTKSession *session, SFTKObject
      *object,\n                           CK_KEY_TYPE key_type, PRBool isFIPS)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: sftk_hasAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1606,1
    - Dst: sftk_defaultAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1611,1
    - Dst: sftk_defaultAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1614,1
    - Dst: sftk_defaultAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1617,1
    - Dst: sftk_defaultAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1622,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1627,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1632,1
    - Dst: sftk_handlePublicKeyObject
      Src: /src/nss/lib/softoken/pkcs11.c:1636,1
    - Dst: sftk_handlePrivateKeyObject
      Src: /src/nss/lib/softoken/pkcs11.c:1638,1
    - Dst: sftk_handleSecretKeyObject
      Src: /src/nss/lib/softoken/pkcs11.c:1641,1
    - Dst: sftk_isFIPS
      Src: /src/nss/lib/softoken/pkcs11.c:1642,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 2
    argNames:
    - session
    - object
    argTypes:
    - SFTKSession*
    - SFTKObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1647
      start: 1597
    functionDepth: 6
    functionLinenumber: 1597
    functionLinenumberEnd: 1647
    functionName: sftk_handleKeyObject
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - sftk_hasAttribute
    - sftk_FindAttribute
    - sftk_FreeAttribute
    - sftk_handlePrivateKeyObject
    - sftk_defaultAttribute
    - sftk_isFIPS
    - sftk_handleSecretKeyObject
    - sftk_handlePublicKeyObject
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV sftk_handleKeyObject(SFTKSession *session, SFTKObject *object)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1683,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1689,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1695,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1706,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1709,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1715,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1724,1
    - Dst: PQG_VerifyParams
      Src: /src/nss/lib/softoken/pkcs11.c:1736,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1743,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1745,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1747,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1749,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1751,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 67
    argCount: 2
    argNames:
    - session
    - object
    argTypes:
    - SFTKSession*
    - SFTKObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1754
      start: 1652
    functionDepth: 1
    functionLinenumber: 1652
    functionLinenumberEnd: 1754
    functionName: sftk_handleDSAParameterObject
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - PQG_VerifyParams
    - sftk_FindAttribute
    - sftk_FreeAttribute
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV sftk_handleDSAParameterObject(SFTKSession *session, SFTKObject
      *object)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sftk_hasAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1768,1
    - Dst: sftk_defaultAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1773,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1778,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1783,1
    - Dst: sftk_handleDSAParameterObject
      Src: /src/nss/lib/softoken/pkcs11.c:1787,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - session
    - object
    argTypes:
    - SFTKSession*
    - SFTKObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1793
      start: 1759
    functionDepth: 2
    functionLinenumber: 1759
    functionLinenumberEnd: 1793
    functionName: sftk_handleKeyParameterObject
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - sftk_hasAttribute
    - sftk_FindAttribute
    - sftk_FreeAttribute
    - sftk_defaultAttribute
    - sftk_handleDSAParameterObject
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV sftk_handleKeyParameterObject(SFTKSession *session, SFTKObject
      *object)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: sftk_defaultAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1813,1
    - Dst: sftk_defaultAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1816,1
    - Dst: sftk_defaultAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1819,1
    - Dst: sftk_defaultAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1822,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/pkcs11.c:1826,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/pkcs11.c:1829,1
    - Dst: sftk_isTrue
      Src: /src/nss/lib/softoken/pkcs11.c:1832,1
    - Dst: sftk_isTrue
      Src: /src/nss/lib/softoken/pkcs11.c:1837,1
    - Dst: sftk_getNextHandle
      Src: /src/nss/lib/softoken/pkcs11.c:1854,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1857,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:1862,1
    - Dst: sftk_handleDataObject
      Src: /src/nss/lib/softoken/pkcs11.c:1870,1
    - Dst: sftk_handleCertObject
      Src: /src/nss/lib/softoken/pkcs11.c:1873,1
    - Dst: sftk_handleNSSTrustObject
      Src: /src/nss/lib/softoken/pkcs11.c:1876,1
    - Dst: sftk_handleTrustObject
      Src: /src/nss/lib/softoken/pkcs11.c:1879,1
    - Dst: sftk_handleCrlObject
      Src: /src/nss/lib/softoken/pkcs11.c:1882,1
    - Dst: sftk_handleSMimeObject
      Src: /src/nss/lib/softoken/pkcs11.c:1885,1
    - Dst: sftk_handleKeyObject
      Src: /src/nss/lib/softoken/pkcs11.c:1890,1
    - Dst: sftk_handleKeyParameterObject
      Src: /src/nss/lib/softoken/pkcs11.c:1893,1
    - Dst: sftk_isToken
      Src: /src/nss/lib/softoken/pkcs11.c:1911,1
    - Dst: sftk_convertSessionToToken
      Src: /src/nss/lib/softoken/pkcs11.c:1912,1
    - Dst: sftk_AddObject
      Src: /src/nss/lib/softoken/pkcs11.c:1915,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 71
    argCount: 2
    argNames:
    - object
    - session
    argTypes:
    - SFTKObject*
    - SFTKSession*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1919
      start: 1801
    functionDepth: 7
    functionLinenumber: 1801
    functionLinenumberEnd: 1919
    functionName: sftk_handleObject
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 1
    functionsReached:
    - sftk_AddObject
    - sftk_FindAttribute
    - sftk_handleCrlObject
    - sftk_FreeAttribute
    - sftk_handleKeyObject
    - sftk_isTrue
    - sftk_handleTrustObject
    - sftk_handleDataObject
    - sftk_handleCertObject
    - PZ_Unlock
    - sftk_handleNSSTrustObject
    - sftk_getNextHandle
    - sftk_defaultAttribute
    - sftk_isToken
    - sftk_convertSessionToToken
    - PZ_Lock
    - sftk_handleSMimeObject
    - sftk_handleKeyParameterObject
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV sftk_handleObject(SFTKObject *object, SFTKSession *session)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: sftk_isToken
      Src: /src/nss/lib/softoken/pkcs11.c:1938,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/pkcs11.c:1949,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/pkcs11.c:1956,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/pkcs11.c:1958,1
    - Dst: sftk_Attribute2SSecItem
      Src: /src/nss/lib/softoken/pkcs11.c:1968,1
    - Dst: sftk_Attribute2SSecItem
      Src: /src/nss/lib/softoken/pkcs11.c:1972,1
    - Dst: sftk_Attribute2SSecItem
      Src: /src/nss/lib/softoken/pkcs11.c:1977,1
    - Dst: sftk_Attribute2SSecItem
      Src: /src/nss/lib/softoken/pkcs11.c:1981,1
    - Dst: sftk_Attribute2SSecItem
      Src: /src/nss/lib/softoken/pkcs11.c:1985,1
    - Dst: sftk_Attribute2SSecItem
      Src: /src/nss/lib/softoken/pkcs11.c:1989,1
    - Dst: sftk_Attribute2SSecItem
      Src: /src/nss/lib/softoken/pkcs11.c:1994,1
    - Dst: sftk_Attribute2SSecItem
      Src: /src/nss/lib/softoken/pkcs11.c:1998,1
    - Dst: sftk_Attribute2SSecItem
      Src: /src/nss/lib/softoken/pkcs11.c:2002,1
    - Dst: sftk_Attribute2SSecItem
      Src: /src/nss/lib/softoken/pkcs11.c:2009,1
    - Dst: EC_FillParams
      Src: /src/nss/lib/softoken/pkcs11.c:2018,1
    - Dst: sftk_Attribute2SSecItem
      Src: /src/nss/lib/softoken/pkcs11.c:2024,1
    - Dst: EC_GetPointSize
      Src: /src/nss/lib/softoken/pkcs11.c:2027,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/softoken/pkcs11.c:2048,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/softoken/pkcs11.c:2049,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/pkcs11.c:2078,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 102
    argCount: 3
    argNames:
    - object
    - key_type
    - crvp
    argTypes:
    - SFTKObject*
    - CK_KEY_TYPE
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2085
      start: 1925
    functionDepth: 1
    functionLinenumber: 1925
    functionLinenumberEnd: 2085
    functionName: sftk_GetPubKey
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 1
    functionsReached:
    - sftk_Attribute2SSecItem
    - PORT_NewArena
    - PORT_FreeArena
    - PORT_ArenaAlloc
    - sftk_isToken
    - SEC_ASN1_GET
    - SEC_QuickDERDecodeItem
    - EC_GetPointSize
    - EC_FillParams
    linkageType: ''
    returnType: NSSLOWKEYPublicKey
    signature: "NSSLOWKEYPublicKey *\nsftk_GetPubKey(SFTKObject *object, CK_KEY_TYPE
      key_type,\n               CK_RV *crvp)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/pkcs11.c:2098,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/softoken/pkcs11.c:2105,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/pkcs11.c:2107,1
    - Dst: SFTK_SET_ITEM_TEMPLATE
      Src: /src/nss/lib/softoken/pkcs11.c:2118,1
    - Dst: SFTK_SET_ITEM_TEMPLATE
      Src: /src/nss/lib/softoken/pkcs11.c:2121,1
    - Dst: SFTK_SET_ITEM_TEMPLATE
      Src: /src/nss/lib/softoken/pkcs11.c:2124,1
    - Dst: SFTK_SET_ITEM_TEMPLATE
      Src: /src/nss/lib/softoken/pkcs11.c:2127,1
    - Dst: SFTK_SET_ITEM_TEMPLATE
      Src: /src/nss/lib/softoken/pkcs11.c:2130,1
    - Dst: SFTK_SET_ITEM_TEMPLATE
      Src: /src/nss/lib/softoken/pkcs11.c:2133,1
    - Dst: SFTK_SET_ITEM_TEMPLATE
      Src: /src/nss/lib/softoken/pkcs11.c:2136,1
    - Dst: SFTK_SET_ITEM_TEMPLATE
      Src: /src/nss/lib/softoken/pkcs11.c:2139,1
    - Dst: DER_SetUInteger
      Src: /src/nss/lib/softoken/pkcs11.c:2142,1
    - Dst: SFTK_SET_ITEM_TEMPLATE
      Src: /src/nss/lib/softoken/pkcs11.c:2150,1
    - Dst: SFTK_SET_ITEM_TEMPLATE
      Src: /src/nss/lib/softoken/pkcs11.c:2153,1
    - Dst: SFTK_SET_ITEM_TEMPLATE
      Src: /src/nss/lib/softoken/pkcs11.c:2156,1
    - Dst: SFTK_SET_ITEM_TEMPLATE
      Src: /src/nss/lib/softoken/pkcs11.c:2159,1
    - Dst: SFTK_SET_ITEM_TEMPLATE
      Src: /src/nss/lib/softoken/pkcs11.c:2168,1
    - Dst: SFTK_SET_ITEM_TEMPLATE
      Src: /src/nss/lib/softoken/pkcs11.c:2171,1
    - Dst: SFTK_SET_ITEM_TEMPLATE
      Src: /src/nss/lib/softoken/pkcs11.c:2174,1
    - Dst: sftk_Attribute2SSecItem
      Src: /src/nss/lib/softoken/pkcs11.c:2184,1
    - Dst: EC_FillParams
      Src: /src/nss/lib/softoken/pkcs11.c:2193,1
    - Dst: sftk_Attribute2SSecItem
      Src: /src/nss/lib/softoken/pkcs11.c:2198,1
    - Dst: sftk_hasAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:2203,1
    - Dst: sftk_Attribute2SSecItem
      Src: /src/nss/lib/softoken/pkcs11.c:2204,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/softoken/pkcs11.c:2214,1
    - Dst: EC_GetPointSize
      Src: /src/nss/lib/softoken/pkcs11.c:2214,1
    - Dst: EC_DerivePublicKey
      Src: /src/nss/lib/softoken/pkcs11.c:2215,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:2219,1
    - Dst: DER_SetUInteger
      Src: /src/nss/lib/softoken/pkcs11.c:2222,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/pkcs11.c:2247,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/pkcs11.c:2248,1
    - Dst: sftk_MultipleAttribute2SecItem
      Src: /src/nss/lib/softoken/pkcs11.c:2249,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/pkcs11.c:2254,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 109
    argCount: 3
    argNames:
    - object
    - key_type
    - crvp
    argTypes:
    - SFTKObject*
    - CK_KEY_TYPE
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2258
      start: 2088
    functionDepth: 1
    functionLinenumber: 2088
    functionLinenumberEnd: 2258
    functionName: sftk_mkPrivKey
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 1
    functionsReached:
    - sftk_hasAttribute
    - PORT_Assert
    - sftk_Attribute2SSecItem
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - PORT_FreeArena
    - SECITEM_AllocItem
    - EC_DerivePublicKey
    - sftk_forceAttribute
    - sftk_MultipleAttribute2SecItem
    - EC_GetPointSize
    - SFTK_SET_ITEM_TEMPLATE
    - EC_FillParams
    - DER_SetUInteger
    linkageType: ''
    returnType: NSSLOWKEYPrivateKey
    signature: 'NSSLOWKEYPrivateKey *

      sftk_mkPrivKey(SFTKObject *object, CK_KEY_TYPE key_type, CK_RV *crvp)'
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:2282,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:2287,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:2292,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:2297,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:2302,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:2307,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:2312,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:2317,1
    - Dst: RSA_PopulatePrivateKey
      Src: /src/nss/lib/softoken/pkcs11.c:2329,1
    - Dst: RSA_PrivateKeyCheck
      Src: /src/nss/lib/softoken/pkcs11.c:2334,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:2341,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11.c:2342,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:2348,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11.c:2349,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:2355,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11.c:2356,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:2361,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11.c:2362,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:2367,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11.c:2368,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:2373,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11.c:2374,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:2379,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11.c:2380,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:2385,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11.c:2386,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/pkcs11.c:2395,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:2398,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:2401,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:2404,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:2407,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:2410,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:2413,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:2416,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:2419,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 134
    argCount: 2
    argNames:
    - object
    - fillIfNeeded
    argTypes:
    - SFTKObject*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2422
      start: 2264
    functionDepth: 1
    functionLinenumber: 2264
    functionLinenumberEnd: 2422
    functionName: sftk_verifyRSAPrivateKey
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 1
    functionsReached:
    - sftk_FindAttribute
    - sftk_FreeAttribute
    - PORT_FreeArena
    - sftk_item_expand
    - sftk_forceAttribute
    - RSA_PrivateKeyCheck
    - RSA_PopulatePrivateKey
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sftk_verifyRSAPrivateKey(SFTKObject *object, PRBool fillIfNeeded)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sftk_mkPrivKey
      Src: /src/nss/lib/softoken/pkcs11.c:2439,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - object
    - key_type
    - crvp
    argTypes:
    - SFTKObject*
    - CK_KEY_TYPE
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2443
      start: 2425
    functionDepth: 2
    functionLinenumber: 2425
    functionLinenumberEnd: 2443
    functionName: sftk_GetPrivKey
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - sftk_mkPrivKey
    linkageType: ''
    returnType: NSSLOWKEYPrivateKey
    signature: 'NSSLOWKEYPrivateKey *

      sftk_GetPrivKey(SFTKObject *object, CK_KEY_TYPE key_type, CK_RV *crvp)'
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: sftk_DeleteAttributeType
      Src: /src/nss/lib/softoken/pkcs11.c:2452,1
    - Dst: sftk_DeleteAttributeType
      Src: /src/nss/lib/softoken/pkcs11.c:2453,1
    - Dst: sftk_DeleteAttributeType
      Src: /src/nss/lib/softoken/pkcs11.c:2454,1
    - Dst: sftk_DeleteAttributeType
      Src: /src/nss/lib/softoken/pkcs11.c:2458,1
    - Dst: sftk_DeleteAttributeType
      Src: /src/nss/lib/softoken/pkcs11.c:2459,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11.c:2462,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11.c:2463,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11.c:2467,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11.c:2468,1
    - Dst: sftk_DeleteAttributeType
      Src: /src/nss/lib/softoken/pkcs11.c:2471,1
    - Dst: sftk_DeleteAttributeType
      Src: /src/nss/lib/softoken/pkcs11.c:2472,1
    - Dst: sftk_DeleteAttributeType
      Src: /src/nss/lib/softoken/pkcs11.c:2473,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11.c:2474,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11.c:2475,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11.c:2479,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11.c:2480,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11.c:2484,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11.c:2485,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11.c:2489,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11.c:2490,1
    - Dst: sftk_DeleteAttributeType
      Src: /src/nss/lib/softoken/pkcs11.c:2493,1
    - Dst: sftk_DeleteAttributeType
      Src: /src/nss/lib/softoken/pkcs11.c:2494,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11.c:2495,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11.c:2496,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11.c:2500,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11.c:2501,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11.c:2505,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11.c:2506,1
    - Dst: sftk_DeleteAttributeType
      Src: /src/nss/lib/softoken/pkcs11.c:2511,1
    - Dst: sftk_DeleteAttributeType
      Src: /src/nss/lib/softoken/pkcs11.c:2512,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11.c:2513,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11.c:2514,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11.c:2518,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11.c:2519,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11.c:2527,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11.c:2532,1
    - Dst: sftk_isTrue
      Src: /src/nss/lib/softoken/pkcs11.c:2538,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:2539,1
    - Dst: sftk_isTrue
      Src: /src/nss/lib/softoken/pkcs11.c:2544,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:2545,1
    - Dst: sftk_isTrue
      Src: /src/nss/lib/softoken/pkcs11.c:2550,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:2551,1
    - Dst: sftk_isTrue
      Src: /src/nss/lib/softoken/pkcs11.c:2556,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:2557,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 95
    argCount: 4
    argNames:
    - publicKey
    - privateKey
    - keyType
    - pubKey
    argTypes:
    - SFTKObject*
    - SFTKObject*
    - CK_KEY_TYPE
    - NSSLOWKEYPublicKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2563
      start: 2446
    functionDepth: 1
    functionLinenumber: 2446
    functionLinenumberEnd: 2563
    functionName: sftk_PutPubKey
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - sftk_AddAttributeType
    - sftk_isTrue
    - sftk_item_expand
    - sftk_forceAttribute
    - sftk_DeleteAttributeType
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV sftk_PutPubKey(SFTKObject *publicKey, SFTKObject *privateKey,
      CK_KEY_TYPE keyType, NSSLOWKEYPublicKey *pubKey)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - key
    - length
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2580
      start: 2571
    functionDepth: 0
    functionLinenumber: 2571
    functionLinenumberEnd: 2580
    functionName: sftk_FormatDESKey
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sftk_FormatDESKey(unsigned char *key, int length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sftk_FormatDESKey
      Src: /src/nss/lib/softoken/pkcs11.c:2591,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/softoken/pkcs11.c:2594,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - key
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2599
      start: 2585
    functionDepth: 1
    functionLinenumber: 2585
    functionLinenumberEnd: 2599
    functionName: sftk_CheckDESKey
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - PORT_Memcmp
    - sftk_FormatDESKey
    linkageType: ''
    returnType: PRBool
    signature: PRBool sftk_CheckDESKey(unsigned char *key)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sftk_CheckDESKey
      Src: /src/nss/lib/softoken/pkcs11.c:2610,1
    - Dst: sftk_CheckDESKey
      Src: /src/nss/lib/softoken/pkcs11.c:2612,1
    - Dst: sftk_CheckDESKey
      Src: /src/nss/lib/softoken/pkcs11.c:2614,1
    - Dst: sftk_CheckDESKey
      Src: /src/nss/lib/softoken/pkcs11.c:2616,1
    - Dst: sftk_CheckDESKey
      Src: /src/nss/lib/softoken/pkcs11.c:2618,1
    - Dst: sftk_CheckDESKey
      Src: /src/nss/lib/softoken/pkcs11.c:2620,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - key
    - key_type
    argTypes:
    - unsigned char*
    - CK_KEY_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2625
      start: 2604
    functionDepth: 2
    functionLinenumber: 2604
    functionLinenumberEnd: 2625
    functionName: sftk_IsWeakKey
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - sftk_CheckDESKey
    linkageType: ''
    returnType: PRBool
    signature: PRBool sftk_IsWeakKey(unsigned char *key, CK_KEY_TYPE key_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pFunctionList
    argTypes:
    - CK_FUNCTION_LIST_PTR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2639
      start: 2634
    functionDepth: 0
    functionLinenumber: 2634
    functionLinenumberEnd: 2639
    functionName: NSC_GetFunctionList
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV NSC_GetFunctionList(CK_FUNCTION_LIST_PTR *pFunctionList)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSC_GetFunctionList
      Src: /src/nss/lib/softoken/pkcs11.c:2646,1
    - Dst: NSS_GetSystemFIPSEnabled
      Src: /src/nss/lib/softoken/pkcs11.c:2648,1
    - Dst: FC_GetFunctionList
      Src: /src/nss/lib/softoken/pkcs11.c:2649,1
    - Dst: NSC_GetFunctionList
      Src: /src/nss/lib/softoken/pkcs11.c:2651,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pFunctionList
    argTypes:
    - CK_FUNCTION_LIST_PTR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2654
      start: 2642
    functionDepth: 2
    functionLinenumber: 2642
    functionLinenumberEnd: 2654
    functionName: C_GetFunctionList
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 3
    functionsReached:
    - NSS_GetSystemFIPSEnabled
    - FC_GetFunctionList
    - NSC_GetFunctionList
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV C_GetFunctionList(CK_FUNCTION_LIST_PTR *pFunctionList)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11.c:2667,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - interfaces
    - pulCount
    argTypes:
    - CK_INTERFACE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2669
      start: 2656
    functionDepth: 0
    functionLinenumber: 2656
    functionLinenumberEnd: 2669
    functionName: NSC_GetInterfaceList
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - PORT_Memcpy
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV NSC_GetInterfaceList(CK_INTERFACE_PTR interfaces, CK_ULONG_PTR
      pulCount)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSC_GetInterfaceList
      Src: /src/nss/lib/softoken/pkcs11.c:2675,1
    - Dst: NSS_GetSystemFIPSEnabled
      Src: /src/nss/lib/softoken/pkcs11.c:2677,1
    - Dst: FC_GetInterfaceList
      Src: /src/nss/lib/softoken/pkcs11.c:2678,1
    - Dst: NSC_GetInterfaceList
      Src: /src/nss/lib/softoken/pkcs11.c:2680,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - interfaces
    - pulCount
    argTypes:
    - CK_INTERFACE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2683
      start: 2671
    functionDepth: 2
    functionLinenumber: 2671
    functionLinenumberEnd: 2683
    functionName: C_GetInterfaceList
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 2
    functionsReached:
    - NSS_GetSystemFIPSEnabled
    - FC_GetInterfaceList
    - NSC_GetInterfaceList
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV C_GetInterfaceList(CK_INTERFACE_PTR interfaces, CK_ULONG_PTR
      pulCount)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strcmp
      Src: /src/nss/lib/softoken/pkcs11.c:2696,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/softoken/pkcs11.c:2699,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 4
    argNames:
    - pInterfaceName
    - pVersion
    - ppInterface
    - flags
    argTypes:
    - CK_UTF8CHAR_PTR
    - CK_VERSION_PTR
    - CK_INTERFACE_PTR_PTR
    - CK_FLAGS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2709
      start: 2689
    functionDepth: 0
    functionLinenumber: 2689
    functionLinenumberEnd: 2709
    functionName: NSC_GetInterface
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - PORT_Memcmp
    - PORT_Strcmp
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_GetInterface(CK_UTF8CHAR_PTR pInterfaceName, CK_VERSION_PTR
      pVersion,\n                 CK_INTERFACE_PTR_PTR ppInterface, CK_FLAGS flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSC_GetInterface
      Src: /src/nss/lib/softoken/pkcs11.c:2716,1
    - Dst: NSS_GetSystemFIPSEnabled
      Src: /src/nss/lib/softoken/pkcs11.c:2718,1
    - Dst: FC_GetInterface
      Src: /src/nss/lib/softoken/pkcs11.c:2719,1
    - Dst: NSC_GetInterface
      Src: /src/nss/lib/softoken/pkcs11.c:2721,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - pInterfaceName
    - pVersion
    - ppInterface
    - flags
    argTypes:
    - CK_UTF8CHAR_PTR
    - CK_VERSION_PTR
    - CK_INTERFACE_PTR_PTR
    - CK_FLAGS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2724
      start: 2711
    functionDepth: 2
    functionLinenumber: 2711
    functionLinenumberEnd: 2724
    functionName: C_GetInterface
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 2
    functionsReached:
    - NSS_GetSystemFIPSEnabled
    - NSC_GetInterface
    - FC_GetInterface
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV C_GetInterface(CK_UTF8CHAR_PTR pInterfaceName, CK_VERSION_PTR
      pVersion,\n               CK_INTERFACE_PTR_PTR ppInterface, CK_FLAGS flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2730
      start: 2726
    functionDepth: 0
    functionLinenumber: 2726
    functionLinenumberEnd: 2730
    functionName: sftk_HashNumber
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PLHashNumber
    signature: PLHashNumber sftk_HashNumber(const void *key)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/nss/lib/softoken/pkcs11.c:2752,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - slotID
    argTypes:
    - CK_SLOT_ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2754
      start: 2737
    functionDepth: 1
    functionLinenumber: 2737
    functionLinenumberEnd: 2754
    functionName: sftk_getDefTokName
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: char
    signature: 'char *

      sftk_getDefTokName(CK_SLOT_ID slotID)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/nss/lib/softoken/pkcs11.c:2771,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - slotID
    argTypes:
    - CK_SLOT_ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2775
      start: 2756
    functionDepth: 1
    functionLinenumber: 2756
    functionLinenumberEnd: 2775
    functionName: sftk_getDefSlotName
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: char
    signature: 'char *

      sftk_getDefSlotName(CK_SLOT_ID slotID)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sftk_isFIPS
      Src: /src/nss/lib/softoken/pkcs11.c:2785,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - slotID
    argTypes:
    - CK_SLOT_ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2789
      start: 2782
    functionDepth: 1
    functionLinenumber: 2782
    functionLinenumberEnd: 2789
    functionName: sftk_GetModuleIndex
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - sftk_isFIPS
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int sftk_GetModuleIndex(CK_SLOT_ID slotID)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sftk_GetModuleIndex
      Src: /src/nss/lib/softoken/pkcs11.c:2799,1
    - Dst: PL_HashTableLookupConst
      Src: /src/nss/lib/softoken/pkcs11.c:2803,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - slotID
    - all
    argTypes:
    - CK_SLOT_ID
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2809
      start: 2795
    functionDepth: 2
    functionLinenumber: 2795
    functionLinenumberEnd: 2809
    functionName: sftk_SlotFromID
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - PL_HashTableLookupConst
    - sftk_GetModuleIndex
    linkageType: ''
    returnType: SFTKSlot
    signature: 'SFTKSlot *

      sftk_SlotFromID(CK_SLOT_ID slotID, PRBool all)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - handle
    argTypes:
    - CK_SESSION_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2821
      start: 2811
    functionDepth: 0
    functionLinenumber: 2811
    functionLinenumberEnd: 2821
    functionName: sftk_SlotIDFromSessionHandle
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_SLOT_ID
    signature: CK_SLOT_ID sftk_SlotIDFromSessionHandle(CK_SESSION_HANDLE handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sftk_SlotFromID
      Src: /src/nss/lib/softoken/pkcs11.c:2826,1
    - Dst: sftk_SlotIDFromSessionHandle
      Src: /src/nss/lib/softoken/pkcs11.c:2826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - CK_SESSION_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2827
      start: 2823
    functionDepth: 3
    functionLinenumber: 2823
    functionLinenumberEnd: 2827
    functionName: sftk_SlotFromSessionHandle
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 1
    functionsReached:
    - sftk_SlotFromID
    - sftk_SlotIDFromSessionHandle
    linkageType: ''
    returnType: SFTKSlot
    signature: 'SFTKSlot *

      sftk_SlotFromSessionHandle(CK_SESSION_HANDLE handle)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sftk_GetModuleIndex
      Src: /src/nss/lib/softoken/pkcs11.c:2835,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/softoken/pkcs11.c:2845,1
    - Dst: PORT_Realloc
      Src: /src/nss/lib/softoken/pkcs11.c:2854,1
    - Dst: PL_NewHashTable
      Src: /src/nss/lib/softoken/pkcs11.c:2867,1
    - Dst: PL_HashTableAdd
      Src: /src/nss/lib/softoken/pkcs11.c:2874,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 2
    argNames:
    - slot
    - moduleIndex
    argTypes:
    - SFTKSlot*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2882
      start: 2829
    functionDepth: 2
    functionLinenumber: 2829
    functionLinenumberEnd: 2882
    functionName: sftk_RegisterSlot
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - PL_HashTableAdd
    - PORT_ZAlloc
    - sftk_GetModuleIndex
    - PORT_Realloc
    - PL_NewHashTable
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV sftk_RegisterSlot(SFTKSlot *slot, unsigned int moduleIndex)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sftk_setStringName
      Src: /src/nss/lib/softoken/pkcs11.c:2927,1
    - Dst: sftk_getDefTokName
      Src: /src/nss/lib/softoken/pkcs11.c:2927,1
    - Dst: sftk_setStringName
      Src: /src/nss/lib/softoken/pkcs11.c:2929,1
    - Dst: sftk_DBInit
      Src: /src/nss/lib/softoken/pkcs11.c:2936,1
    - Dst: sftk_hasNullPassword
      Src: /src/nss/lib/softoken/pkcs11.c:2955,1
    - Dst: sftkdb_HasPasswordSet
      Src: /src/nss/lib/softoken/pkcs11.c:2966,1
    - Dst: SFTK_ShutdownSlot
      Src: /src/nss/lib/softoken/pkcs11.c:2977,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 6
    argNames:
    - slot
    - configdir
    - updatedir
    - updateID
    - params
    - moduleIndex
    argTypes:
    - SFTKSlot*
    - char*
    - char*
    - char*
    - sftk_token_parameters*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2979
      start: 2907
    functionDepth: 5
    functionLinenumber: 2907
    functionLinenumberEnd: 2979
    functionName: SFTK_SlotReInit
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - sftk_setStringName
    - sftk_hasNullPassword
    - SFTK_ShutdownSlot
    - sftk_DBInit
    - sftk_getDefTokName
    - sftkdb_HasPasswordSet
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV SFTK_SlotReInit(SFTKSlot *slot, char *configdir, char *updatedir,\n
      \               char *updateID, sftk_token_parameters *params,\n                unsigned
      int moduleIndex)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZNew
      Src: /src/nss/lib/softoken/pkcs11.c:2998,1
    - Dst: PZ_NewLock
      Src: /src/nss/lib/softoken/pkcs11.c:3016,1
    - Dst: PORT_ZNewArray
      Src: /src/nss/lib/softoken/pkcs11.c:3019,1
    - Dst: PZ_NewLock
      Src: /src/nss/lib/softoken/pkcs11.c:3023,1
    - Dst: PZ_NewLock
      Src: /src/nss/lib/softoken/pkcs11.c:3027,1
    - Dst: PR_NewLock
      Src: /src/nss/lib/softoken/pkcs11.c:3030,1
    - Dst: PORT_ZNewArray
      Src: /src/nss/lib/softoken/pkcs11.c:3033,1
    - Dst: PORT_ZNewArray
      Src: /src/nss/lib/softoken/pkcs11.c:3036,1
    - Dst: PL_NewHashTable
      Src: /src/nss/lib/softoken/pkcs11.c:3039,1
    - Dst: sftk_setStringName
      Src: /src/nss/lib/softoken/pkcs11.c:3047,1
    - Dst: sftk_getDefSlotName
      Src: /src/nss/lib/softoken/pkcs11.c:3047,1
    - Dst: sftk_InitSession
      Src: /src/nss/lib/softoken/pkcs11.c:3049,1
    - Dst: SFTK_SlotReInit
      Src: /src/nss/lib/softoken/pkcs11.c:3057,1
    - Dst: sftk_isFIPS
      Src: /src/nss/lib/softoken/pkcs11.c:3062,1
    - Dst: sftk_CreateValidationObjects
      Src: /src/nss/lib/softoken/pkcs11.c:3063,1
    - Dst: sftk_RegisterSlot
      Src: /src/nss/lib/softoken/pkcs11.c:3068,1
    - Dst: SFTK_DestroySlotData
      Src: /src/nss/lib/softoken/pkcs11.c:3077,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 84
    argCount: 5
    argNames:
    - configdir
    - updatedir
    - updateID
    - params
    - moduleIndex
    argTypes:
    - char*
    - char*
    - char*
    - sftk_token_parameters*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3079
      start: 2984
    functionDepth: 6
    functionLinenumber: 2984
    functionLinenumberEnd: 3079
    functionName: SFTK_SlotInit
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - sftk_RegisterSlot
    - SFTK_DestroySlotData
    - sftk_setStringName
    - sftk_InitSession
    - PORT_ZNewArray
    - PORT_ZNew
    - sftk_getDefSlotName
    - sftk_CreateValidationObjects
    - SFTK_SlotReInit
    - sftk_isFIPS
    - PR_NewLock
    - PZ_NewLock
    - PL_NewHashTable
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV SFTK_SlotInit(char *configdir, char *updatedir, char *updateID,\n
      \             sftk_token_parameters *params, unsigned int moduleIndex)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sftk_getKeyDB
      Src: /src/nss/lib/softoken/pkcs11.c:3096,1
    - Dst: SKIP_AFTER_FORK
      Src: /src/nss/lib/softoken/pkcs11.c:3097,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/pkcs11.c:3097,1
    - Dst: sftkdb_ClearPassword
      Src: /src/nss/lib/softoken/pkcs11.c:3100,1
    - Dst: SKIP_AFTER_FORK
      Src: /src/nss/lib/softoken/pkcs11.c:3102,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/pkcs11.c:3102,1
    - Dst: sftk_freeDB
      Src: /src/nss/lib/softoken/pkcs11.c:3104,1
    - Dst: SFTK_SESSION_LOCK
      Src: /src/nss/lib/softoken/pkcs11.c:3114,1
    - Dst: SKIP_AFTER_FORK
      Src: /src/nss/lib/softoken/pkcs11.c:3116,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/pkcs11.c:3116,1
    - Dst: SKIP_AFTER_FORK
      Src: /src/nss/lib/softoken/pkcs11.c:3127,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/pkcs11.c:3127,1
    - Dst: SKIP_AFTER_FORK
      Src: /src/nss/lib/softoken/pkcs11.c:3128,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/pkcs11.c:3128,1
    - Dst: SKIP_AFTER_FORK
      Src: /src/nss/lib/softoken/pkcs11.c:3130,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/pkcs11.c:3130,1
    - Dst: PR_ATOMIC_DECREMENT
      Src: /src/nss/lib/softoken/pkcs11.c:3132,1
    - Dst: SKIP_AFTER_FORK
      Src: /src/nss/lib/softoken/pkcs11.c:3135,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/pkcs11.c:3135,1
    - Dst: sftk_DestroySession
      Src: /src/nss/lib/softoken/pkcs11.c:3138,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 2
    argNames:
    - slot
    - logout
    argTypes:
    - SFTKSlot*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3143
      start: 3081
    functionDepth: 3
    functionLinenumber: 3081
    functionLinenumberEnd: 3143
    functionName: sftk_CloseAllSessions
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 1
    functionsReached:
    - sftkdb_ClearPassword
    - SKIP_AFTER_FORK
    - sftk_DestroySession
    - sftk_getKeyDB
    - PR_ATOMIC_DECREMENT
    - PZ_Unlock
    - sftk_freeDB
    - PZ_Lock
    - SFTK_SESSION_LOCK
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV sftk_CloseAllSessions(SFTKSlot *slot, PRBool logout)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SKIP_AFTER_FORK
      Src: /src/nss/lib/softoken/pkcs11.c:3160,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/pkcs11.c:3160,1
    - Dst: SKIP_AFTER_FORK
      Src: /src/nss/lib/softoken/pkcs11.c:3165,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/pkcs11.c:3165,1
    - Dst: sftk_freeDB
      Src: /src/nss/lib/softoken/pkcs11.c:3167,1
    - Dst: sftk_freeDB
      Src: /src/nss/lib/softoken/pkcs11.c:3170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - slot
    argTypes:
    - SFTKSlot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3172
      start: 3155
    functionDepth: 1
    functionLinenumber: 3155
    functionLinenumberEnd: 3172
    functionName: sftk_DBShutdown
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - SKIP_AFTER_FORK
    - PZ_Lock
    - PZ_Unlock
    - sftk_freeDB
    linkageType: ''
    returnType: void
    signature: void sftk_DBShutdown(SFTKSlot *slot)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sftk_CloseAllSessions
      Src: /src/nss/lib/softoken/pkcs11.c:3184,1
    - Dst: SFTK_ClearTokenKeyHashTable
      Src: /src/nss/lib/softoken/pkcs11.c:3192,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/pkcs11.c:3196,1
    - Dst: sftk_DBShutdown
      Src: /src/nss/lib/softoken/pkcs11.c:3199,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - slot
    argTypes:
    - SFTKSlot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3201
      start: 3174
    functionDepth: 4
    functionLinenumber: 3174
    functionLinenumberEnd: 3201
    functionName: SFTK_ShutdownSlot
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 1
    functionsReached:
    - PORT_Memset
    - sftk_CloseAllSessions
    - sftk_DBShutdown
    - SFTK_ClearTokenKeyHashTable
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV SFTK_ShutdownSlot(SFTKSlot *slot)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_ShutdownSlot
      Src: /src/nss/lib/softoken/pkcs11.c:3211,1
    - Dst: sftk_ClearSession
      Src: /src/nss/lib/softoken/pkcs11.c:3213,1
    - Dst: PL_HashTableDestroy
      Src: /src/nss/lib/softoken/pkcs11.c:3216,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/pkcs11.c:3221,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/pkcs11.c:3227,1
    - Dst: SKIP_AFTER_FORK
      Src: /src/nss/lib/softoken/pkcs11.c:3234,1
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/softoken/pkcs11.c:3234,1
    - Dst: SKIP_AFTER_FORK
      Src: /src/nss/lib/softoken/pkcs11.c:3239,1
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/softoken/pkcs11.c:3239,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/pkcs11.c:3243,1
    - Dst: SKIP_AFTER_FORK
      Src: /src/nss/lib/softoken/pkcs11.c:3247,1
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/softoken/pkcs11.c:3247,1
    - Dst: SKIP_AFTER_FORK
      Src: /src/nss/lib/softoken/pkcs11.c:3251,1
    - Dst: PR_DestroyLock
      Src: /src/nss/lib/softoken/pkcs11.c:3251,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/pkcs11.c:3254,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 1
    argNames:
    - slot
    argTypes:
    - SFTKSlot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3256
      start: 3206
    functionDepth: 5
    functionLinenumber: 3206
    functionLinenumberEnd: 3256
    functionName: SFTK_DestroySlotData
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 1
    functionsReached:
    - sftk_ClearSession
    - SKIP_AFTER_FORK
    - PL_HashTableDestroy
    - PORT_Free
    - SFTK_ShutdownSlot
    - PZ_DestroyLock
    - PR_DestroyLock
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV SFTK_DestroySlotData(SFTKSlot *slot)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: NSSUTIL_DoModuleDBFunction
      Src: /src/nss/lib/softoken/pkcs11.c:3265,1
    - Dst: NSSUTIL_DoModuleDBFunction
      Src: /src/nss/lib/softoken/pkcs11.c:3275,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/pkcs11.c:3280,1
    - Dst: _NSSUTIL_GetSecmodName
      Src: /src/nss/lib/softoken/pkcs11.c:3287,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/pkcs11.c:3293,1
    - Dst: _NSSUTIL_GetSecmodName
      Src: /src/nss/lib/softoken/pkcs11.c:3308,1
    - Dst: sftkdbCall_ReadSecmodDB
      Src: /src/nss/lib/softoken/pkcs11.c:3310,1
    - Dst: NSSUTIL_DoModuleDBFunction
      Src: /src/nss/lib/softoken/pkcs11.c:3315,1
    - Dst: sftkdbCall_ReleaseSecmodDBData
      Src: /src/nss/lib/softoken/pkcs11.c:3318,1
    - Dst: NSSUTIL_DoModuleDBFunction
      Src: /src/nss/lib/softoken/pkcs11.c:3322,1
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/softoken/pkcs11.c:3326,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/pkcs11.c:3329,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/pkcs11.c:3332,1
    - Dst: NSSUTIL_DoModuleDBFunction
      Src: /src/nss/lib/softoken/pkcs11.c:3334,1
    - Dst: sftkdbCall_ReadSecmodDB
      Src: /src/nss/lib/softoken/pkcs11.c:3337,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/pkcs11.c:3342,1
    - Dst: sftkdbCall_AddSecmodDB
      Src: /src/nss/lib/softoken/pkcs11.c:3345,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/pkcs11.c:3352,1
    - Dst: sftkdbCall_DeleteSecmodDB
      Src: /src/nss/lib/softoken/pkcs11.c:3355,1
    - Dst: sftkdbCall_ReleaseSecmodDBData
      Src: /src/nss/lib/softoken/pkcs11.c:3361,1
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/softoken/pkcs11.c:3370,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/pkcs11.c:3372,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/pkcs11.c:3374,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 72
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3377
      start: 3261
    functionDepth: 8
    functionLinenumber: 3261
    functionLinenumberEnd: 3377
    functionName: NSC_ModuleDBFunc
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - sftkdbCall_ReleaseSecmodDBData
    - PORT_Free
    - PORT_GetError
    - NSSUTIL_DoModuleDBFunction
    - sftkdbCall_ReadSecmodDB
    - PORT_SetError
    - PR_smprintf_free
    - sftkdbCall_DeleteSecmodDB
    - _NSSUTIL_GetSecmodName
    - sftkdbCall_AddSecmodDB
    linkageType: ''
    returnType: char
    signature: 'char **

      NSC_ModuleDBFunc(unsigned long function, char *parameters, void *args)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NSC_CloseAllSessions
      Src: /src/nss/lib/softoken/pkcs11.c:3395,1
    - Dst: PL_HashTableLookup
      Src: /src/nss/lib/softoken/pkcs11.c:3407,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/pkcs11.c:3408,1
    - Dst: SFTK_DestroySlotData
      Src: /src/nss/lib/softoken/pkcs11.c:3411,1
    - Dst: PL_HashTableRemove
      Src: /src/nss/lib/softoken/pkcs11.c:3412,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/pkcs11.c:3414,1
    - Dst: PL_HashTableDestroy
      Src: /src/nss/lib/softoken/pkcs11.c:3415,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - moduleIndex
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3417
      start: 3379
    functionDepth: 6
    functionLinenumber: 3379
    functionLinenumberEnd: 3417
    functionName: nscFreeAllSlots
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PL_HashTableLookup
    - SFTK_DestroySlotData
    - PL_HashTableDestroy
    - NSC_CloseAllSessions
    - PORT_Free
    - PL_HashTableRemove
    linkageType: ''
    returnType: void
    signature: void nscFreeAllSlots(unsigned int moduleIndex)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PL_HashTableLookup
      Src: /src/nss/lib/softoken/pkcs11.c:3427,1
    - Dst: sftk_DBShutdown
      Src: /src/nss/lib/softoken/pkcs11.c:3431,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - isFIPS
    argTypes:
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3433
      start: 3419
    functionDepth: 2
    functionLinenumber: 3419
    functionLinenumberEnd: 3433
    functionName: sftk_closePeer
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - PL_HashTableLookup
    - sftk_DBShutdown
    linkageType: ''
    returnType: void
    signature: void sftk_closePeer(PRBool isFIPS)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/softoken/pkcs11.c:3460,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/softoken/pkcs11.c:3464,1
    - Dst: PR_OpenFile
      Src: /src/nss/lib/softoken/pkcs11.c:3471,1
    - Dst: PR_Available
      Src: /src/nss/lib/softoken/pkcs11.c:3474,1
    - Dst: PORT_NewArray
      Src: /src/nss/lib/softoken/pkcs11.c:3475,1
    - Dst: PR_Read
      Src: /src/nss/lib/softoken/pkcs11.c:3478,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/pkcs11.c:3479,1
    - Dst: PR_Close
      Src: /src/nss/lib/softoken/pkcs11.c:3487,1
    - Dst: sftk_parseParameters
      Src: /src/nss/lib/softoken/pkcs11.c:3500,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/pkcs11.c:3509,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 3
    argNames:
    - init_args
    - isFIPS
    - paramStrings
    argTypes:
    - CK_C_INITIALIZE_ARGS*
    - PRBool
    - sftk_parameters*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3512
      start: 3446
    functionDepth: 1
    functionLinenumber: 3446
    functionLinenumberEnd: 3512
    functionName: sftk_getParameters
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - sftk_parseParameters
    - PR_GetEnvSecure
    - PR_Read
    - PORT_NewArray
    - PR_Available
    - PR_Close
    - PR_OpenFile
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftk_getParameters(CK_C_INITIALIZE_ARGS *init_args, PRBool isFIPS,\n
      \                  sftk_parameters *paramStrings)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: PR_SecondsToInterval
      Src: /src/nss/lib/softoken/pkcs11.c:3526,1
    - Dst: ENABLE_FORK_CHECK
      Src: /src/nss/lib/softoken/pkcs11.c:3529,1
    - Dst: sftk_PBELockInit
      Src: /src/nss/lib/softoken/pkcs11.c:3531,1
    - Dst: SECOID_Init
      Src: /src/nss/lib/softoken/pkcs11.c:3533,1
    - Dst: BL_Init
      Src: /src/nss/lib/softoken/pkcs11.c:3539,1
    - Dst: RNG_RNGInit
      Src: /src/nss/lib/softoken/pkcs11.c:3545,1
    - Dst: sftk_getParameters
      Src: /src/nss/lib/softoken/pkcs11.c:3580,1
    - Dst: sftk_configure
      Src: /src/nss/lib/softoken/pkcs11.c:3585,1
    - Dst: sftk_closePeer
      Src: /src/nss/lib/softoken/pkcs11.c:3593,1
    - Dst: sftk_LogAuditMessage
      Src: /src/nss/lib/softoken/pkcs11.c:3596,1
    - Dst: sftk_LogAuditMessage
      Src: /src/nss/lib/softoken/pkcs11.c:3599,1
    - Dst: sftk_InitFreeLists
      Src: /src/nss/lib/softoken/pkcs11.c:3610,1
    - Dst: SFTK_SlotInit
      Src: /src/nss/lib/softoken/pkcs11.c:3613,1
    - Dst: nscFreeAllSlots
      Src: /src/nss/lib/softoken/pkcs11.c:3617,1
    - Dst: sftk_freeParams
      Src: /src/nss/lib/softoken/pkcs11.c:3624,1
    - Dst: sftk_CleanupFreeLists
      Src: /src/nss/lib/softoken/pkcs11.c:3628,1
    - Dst: sysinfo
      Src: /src/nss/lib/softoken/pkcs11.c:3641,1
    - Dst: sscanf
      Src: /src/nss/lib/softoken/pkcs11.c:3643,1
    - Dst: pthread_atfork
      Src: /src/nss/lib/softoken/pkcs11.c:3652,1
    - Dst: getpid
      Src: /src/nss/lib/softoken/pkcs11.c:3654,1
    - Dst: pthread_atfork
      Src: /src/nss/lib/softoken/pkcs11.c:3658,1
    - Dst: getpid
      Src: /src/nss/lib/softoken/pkcs11.c:3660,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 83
    argCount: 2
    argNames:
    - pReserved
    - isFIPS
    argTypes:
    - CK_VOID_PTR
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3667
      start: 3515
    functionDepth: 7
    functionLinenumber: 3515
    functionLinenumberEnd: 3667
    functionName: nsc_CommonInitialize
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - RNG_RNGInit
    - sftk_LogAuditMessage
    - sftk_freeParams
    - getpid
    - sftk_InitFreeLists
    - sftk_getParameters
    - nscFreeAllSlots
    - sftk_PBELockInit
    - PR_SecondsToInterval
    - sysinfo
    - ENABLE_FORK_CHECK
    - SECOID_Init
    - BL_Init
    - sftk_configure
    - sftk_closePeer
    - sftk_CleanupFreeLists
    - sscanf
    - SFTK_SlotInit
    - pthread_atfork
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV nsc_CommonInitialize(CK_VOID_PTR pReserved, PRBool isFIPS)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sftk_ForkReset
      Src: /src/nss/lib/softoken/pkcs11.c:3674,1
    - Dst: nsc_CommonInitialize
      Src: /src/nss/lib/softoken/pkcs11.c:3679,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - pReserved
    argTypes:
    - CK_VOID_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3682
      start: 3669
    functionDepth: 8
    functionLinenumber: 3669
    functionLinenumberEnd: 3682
    functionName: NSC_Initialize
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 6
    functionsReached:
    - nsc_CommonInitialize
    - sftk_ForkReset
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV NSC_Initialize(CK_VOID_PTR pReserved)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BL_SetForkState
      Src: /src/nss/lib/softoken/pkcs11.c:3690,1
    - Dst: UTIL_SetForkState
      Src: /src/nss/lib/softoken/pkcs11.c:3691,1
    - Dst: nscFreeAllSlots
      Src: /src/nss/lib/softoken/pkcs11.c:3693,1
    - Dst: sftk_CleanupFreeLists
      Src: /src/nss/lib/softoken/pkcs11.c:3703,1
    - Dst: sftkdb_Shutdown
      Src: /src/nss/lib/softoken/pkcs11.c:3704,1
    - Dst: RNG_RNGShutdown
      Src: /src/nss/lib/softoken/pkcs11.c:3707,1
    - Dst: BL_Cleanup
      Src: /src/nss/lib/softoken/pkcs11.c:3710,1
    - Dst: BL_SetForkState
      Src: /src/nss/lib/softoken/pkcs11.c:3714,1
    - Dst: BL_Unload
      Src: /src/nss/lib/softoken/pkcs11.c:3719,1
    - Dst: SECOID_Shutdown
      Src: /src/nss/lib/softoken/pkcs11.c:3723,1
    - Dst: sftk_PBELockShutdown
      Src: /src/nss/lib/softoken/pkcs11.c:3725,1
    - Dst: UTIL_SetForkState
      Src: /src/nss/lib/softoken/pkcs11.c:3728,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 2
    argNames:
    - pReserved
    - isFIPS
    argTypes:
    - CK_VOID_PTR
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3747
      start: 3686
    functionDepth: 7
    functionLinenumber: 3686
    functionLinenumberEnd: 3747
    functionName: nsc_CommonFinalize
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - sftkdb_Shutdown
    - RNG_RNGShutdown
    - UTIL_SetForkState
    - sftk_PBELockShutdown
    - sftk_CleanupFreeLists
    - SECOID_Shutdown
    - BL_Unload
    - nscFreeAllSlots
    - BL_SetForkState
    - BL_Cleanup
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV nsc_CommonFinalize(CK_VOID_PTR pReserved, PRBool isFIPS)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PARENT_FORKED
      Src: /src/nss/lib/softoken/pkcs11.c:3755,1
    - Dst: nsc_CommonFinalize
      Src: /src/nss/lib/softoken/pkcs11.c:3759,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/pkcs11.c:3760,1
    - Dst: nsc_CommonFinalize
      Src: /src/nss/lib/softoken/pkcs11.c:3765,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/pkcs11.c:3766,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - pReserved
    - crv
    argTypes:
    - CK_VOID_PTR
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3774
      start: 3751
    functionDepth: 8
    functionLinenumber: 3751
    functionLinenumberEnd: 3774
    functionName: sftk_ForkReset
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 1
    functionsReached:
    - PARENT_FORKED
    - PORT_Assert
    - nsc_CommonFinalize
    linkageType: ''
    returnType: PRBool
    signature: PRBool sftk_ForkReset(CK_VOID_PTR pReserved, CK_RV *crv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sftk_ForkReset
      Src: /src/nss/lib/softoken/pkcs11.c:3784,1
    - Dst: nsc_CommonFinalize
      Src: /src/nss/lib/softoken/pkcs11.c:3792,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pReserved
    argTypes:
    - CK_VOID_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3797
      start: 3778
    functionDepth: 9
    functionLinenumber: 3778
    functionLinenumberEnd: 3797
    functionName: NSC_Finalize
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 4
    functionsReached:
    - nsc_CommonFinalize
    - sftk_ForkReset
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV NSC_Finalize(CK_VOID_PTR pReserved)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11.c:3808,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11.c:3812,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11.c:3815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - pInfo
    argTypes:
    - CK_INFO_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3818
      start: 3802
    functionDepth: 1
    functionLinenumber: 3802
    functionLinenumberEnd: 3818
    functionName: NSC_GetInfo
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - CHECK_FORK
    - PORT_Memcpy
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV NSC_GetInfo(CK_INFO_PTR pInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11.c:3824,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11.c:3828,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11.c:3831,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - pInfo
    argTypes:
    - CK_INFO_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3834
      start: 3821
    functionDepth: 1
    functionLinenumber: 3821
    functionLinenumberEnd: 3834
    functionName: NSC_GetInfoV2
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - CHECK_FORK
    - PORT_Memcpy
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV NSC_GetInfoV2(CK_INFO_PTR pInfo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11.c:3844,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - tokenPresent
    - pSlotList
    - pulCount
    - moduleIndex
    argTypes:
    - CK_BBOOL
    - CK_SLOT_ID_PTR
    - CK_ULONG_PTR
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3848
      start: 3837
    functionDepth: 0
    functionLinenumber: 3837
    functionLinenumberEnd: 3848
    functionName: nsc_CommonGetSlotList
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - PORT_Memcpy
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV nsc_CommonGetSlotList(CK_BBOOL tokenPresent,\n                      CK_SLOT_ID_PTR
      pSlotList, CK_ULONG_PTR pulCount,\n                      unsigned int moduleIndex)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11.c:3855,1
    - Dst: nsc_CommonGetSlotList
      Src: /src/nss/lib/softoken/pkcs11.c:3856,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - tokenPresent
    - pSlotList
    - pulCount
    argTypes:
    - CK_BBOOL
    - CK_SLOT_ID_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3858
      start: 3851
    functionDepth: 1
    functionLinenumber: 3851
    functionLinenumberEnd: 3858
    functionName: NSC_GetSlotList
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 5
    functionsReached:
    - nsc_CommonGetSlotList
    - CHECK_FORK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_GetSlotList(CK_BBOOL tokenPresent,\n                CK_SLOT_ID_PTR
      pSlotList, CK_ULONG_PTR pulCount)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sftk_SlotFromID
      Src: /src/nss/lib/softoken/pkcs11.c:3864,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11.c:3866,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11.c:3871,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11.c:3873,1
    - Dst: sftk_getKeyDB
      Src: /src/nss/lib/softoken/pkcs11.c:3884,1
    - Dst: sftkdb_InUpdateMerge
      Src: /src/nss/lib/softoken/pkcs11.c:3886,1
    - Dst: sftk_freeDB
      Src: /src/nss/lib/softoken/pkcs11.c:3889,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - slotID
    - pInfo
    argTypes:
    - CK_SLOT_ID
    - CK_SLOT_INFO_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3909
      start: 3861
    functionDepth: 3
    functionLinenumber: 3861
    functionLinenumberEnd: 3909
    functionName: NSC_GetSlotInfo
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - PORT_Memcpy
    - sftk_SlotFromID
    - sftk_getKeyDB
    - sftk_freeDB
    - sftkdb_InUpdateMerge
    - CHECK_FORK
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV NSC_GetSlotInfo(CK_SLOT_ID slotID, CK_SLOT_INFO_PTR pInfo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sftkdb_PWCached
      Src: /src/nss/lib/softoken/pkcs11.c:3919,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/pkcs11.c:3920,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/pkcs11.c:3922,1
    - Dst: sftk_hasNullPassword
      Src: /src/nss/lib/softoken/pkcs11.c:3924,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/pkcs11.c:3925,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/pkcs11.c:3927,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - slot
    - keyHandle
    argTypes:
    - SFTKSlot*
    - SFTKDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3930
      start: 3915
    functionDepth: 5
    functionLinenumber: 3915
    functionLinenumberEnd: 3930
    functionName: sftk_checkNeedLogin
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - sftkdb_PWCached
    - sftk_hasNullPassword
    - PZ_Lock
    - PZ_Unlock
    linkageType: ''
    returnType: PRBool
    signature: PRBool sftk_checkNeedLogin(SFTKSlot *slot, SFTKDBHandle *keyHandle)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - s
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3942
      start: 3932
    functionDepth: 0
    functionLinenumber: 3932
    functionLinenumberEnd: 3942
    functionName: sftk_isBlank
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool sftk_isBlank(const char *s, int len)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11.c:3952,1
    - Dst: sftk_SlotFromID
      Src: /src/nss/lib/softoken/pkcs11.c:3956,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11.c:3960,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11.c:3961,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11.c:3962,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11.c:3963,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/pkcs11.c:3966,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/pkcs11.c:3969,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11.c:3972,1
    - Dst: sftk_getKeyDB
      Src: /src/nss/lib/softoken/pkcs11.c:3973,1
    - Dst: sftkdb_HasPasswordSet
      Src: /src/nss/lib/softoken/pkcs11.c:3995,1
    - Dst: sftk_checkNeedLogin
      Src: /src/nss/lib/softoken/pkcs11.c:3997,1
    - Dst: sftkdb_NeedUpdateDBPassword
      Src: /src/nss/lib/softoken/pkcs11.c:4006,1
    - Dst: sftk_isBlank
      Src: /src/nss/lib/softoken/pkcs11.c:4009,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11.c:4011,1
    - Dst: sftkdb_GetUpdateID
      Src: /src/nss/lib/softoken/pkcs11.c:4015,1
    - Dst: sftk_setStringName
      Src: /src/nss/lib/softoken/pkcs11.c:4017,1
    - Dst: sftk_freeDB
      Src: /src/nss/lib/softoken/pkcs11.c:4036,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 66
    argCount: 2
    argNames:
    - slotID
    - pInfo
    argTypes:
    - CK_SLOT_ID
    - CK_TOKEN_INFO_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4051
      start: 3946
    functionDepth: 6
    functionLinenumber: 3946
    functionLinenumberEnd: 4051
    functionName: NSC_GetTokenInfo
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - sftkdb_GetUpdateID
    - PORT_Memcpy
    - sftk_setStringName
    - sftkdb_NeedUpdateDBPassword
    - sftk_SlotFromID
    - sftk_getKeyDB
    - PZ_Unlock
    - sftk_freeDB
    - CHECK_FORK
    - PZ_Lock
    - sftk_isBlank
    - sftk_checkNeedLogin
    - sftkdb_HasPasswordSet
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV NSC_GetTokenInfo(CK_SLOT_ID slotID, CK_TOKEN_INFO_PTR pInfo)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11.c:4061,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - slotID
    - pMechanismList
    - pulCount
    argTypes:
    - CK_SLOT_ID
    - CK_MECHANISM_TYPE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4086
      start: 4055
    functionDepth: 1
    functionLinenumber: 4055
    functionLinenumberEnd: 4086
    functionName: NSC_GetMechanismList
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - CHECK_FORK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_GetMechanismList(CK_SLOT_ID slotID,\n                     CK_MECHANISM_TYPE_PTR
      pMechanismList, CK_ULONG_PTR pulCount)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11.c:4097,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11.c:4112,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - slotID
    - type
    - pInfo
    argTypes:
    - CK_SLOT_ID
    - CK_MECHANISM_TYPE
    - CK_MECHANISM_INFO_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4117
      start: 4090
    functionDepth: 1
    functionLinenumber: 4090
    functionLinenumberEnd: 4117
    functionName: NSC_GetMechanismInfo
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - CHECK_FORK
    - PORT_Memcpy
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_GetMechanismInfo(CK_SLOT_ID slotID, CK_MECHANISM_TYPE type,\n
      \                    CK_MECHANISM_INFO_PTR pInfo)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSC_GetMechanismInfo
      Src: /src/nss/lib/softoken/pkcs11.c:4128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - slotID
    - type
    - pInfo
    argTypes:
    - CK_SLOT_ID
    - CK_MECHANISM_TYPE
    - CK_MECHANISM_INFO_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4133
      start: 4123
    functionDepth: 2
    functionLinenumber: 4123
    functionLinenumberEnd: 4133
    functionName: NSC_GetMechanismInfoV2
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - NSC_GetMechanismInfo
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_GetMechanismInfoV2(CK_SLOT_ID slotID, CK_MECHANISM_TYPE
      type,\n                       CK_MECHANISM_INFO_PTR pInfo)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sftk_AttributeToFlags
      Src: /src/nss/lib/softoken/pkcs11.c:4139,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - type
    - op
    argTypes:
    - CK_MECHANISM_TYPE
    - CK_ATTRIBUTE_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4151
      start: 4135
    functionDepth: 1
    functionLinenumber: 4135
    functionLinenumberEnd: 4151
    functionName: sftk_MechAllowsOperation
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - sftk_AttributeToFlags
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV sftk_MechAllowsOperation(CK_MECHANISM_TYPE type, CK_ATTRIBUTE_TYPE
      op)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sftk_SlotFromID
      Src: /src/nss/lib/softoken/pkcs11.c:4158,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11.c:4164,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/pkcs11.c:4178,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11.c:4194,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/pkcs11.c:4198,1
    - Dst: sftk_getKeyDB
      Src: /src/nss/lib/softoken/pkcs11.c:4201,1
    - Dst: sftkdb_ResetKeyDB
      Src: /src/nss/lib/softoken/pkcs11.c:4206,1
    - Dst: sftkdb_ClearPassword
      Src: /src/nss/lib/softoken/pkcs11.c:4208,1
    - Dst: sftk_checkNeedLogin
      Src: /src/nss/lib/softoken/pkcs11.c:4210,1
    - Dst: sftk_freeDB
      Src: /src/nss/lib/softoken/pkcs11.c:4211,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 4
    argNames:
    - slotID
    - pPin
    - ulPinLen
    - pLabel
    argTypes:
    - CK_SLOT_ID
    - CK_CHAR_PTR
    - CK_ULONG
    - CK_CHAR_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4217
      start: 4154
    functionDepth: 6
    functionLinenumber: 4154
    functionLinenumberEnd: 4217
    functionName: NSC_InitToken
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - sftkdb_ClearPassword
    - sftk_SlotFromID
    - sftk_getKeyDB
    - PZ_Unlock
    - sftk_freeDB
    - sftkdb_ResetKeyDB
    - CHECK_FORK
    - PZ_Lock
    - sftk_checkNeedLogin
    - sftk_FreeObject
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_InitToken(CK_SLOT_ID slotID, CK_CHAR_PTR pPin,\n              CK_ULONG
      ulPinLen, CK_CHAR_PTR pLabel)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11.c:4232,1
    - Dst: sftk_SessionFromHandle
      Src: /src/nss/lib/softoken/pkcs11.c:4234,1
    - Dst: sftk_SlotFromSession
      Src: /src/nss/lib/softoken/pkcs11.c:4239,1
    - Dst: sftk_getKeyDB
      Src: /src/nss/lib/softoken/pkcs11.c:4244,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11.c:4255,1
    - Dst: sftkdb_HasPasswordSet
      Src: /src/nss/lib/softoken/pkcs11.c:4268,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11.c:4274,1
    - Dst: sftkdb_ChangePassword
      Src: /src/nss/lib/softoken/pkcs11.c:4280,1
    - Dst: sftk_CloseAllSessions
      Src: /src/nss/lib/softoken/pkcs11.c:4282,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/pkcs11.c:4284,1
    - Dst: sftk_freeDB
      Src: /src/nss/lib/softoken/pkcs11.c:4285,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/pkcs11.c:4291,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/pkcs11.c:4293,1
    - Dst: sftk_GetModuleIndex
      Src: /src/nss/lib/softoken/pkcs11.c:4299,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11.c:4309,1
    - Dst: sftk_freeDB
      Src: /src/nss/lib/softoken/pkcs11.c:4312,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 70
    argCount: 3
    argNames:
    - hSession
    - pPin
    - ulPinLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_CHAR_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4315
      start: 4220
    functionDepth: 7
    functionLinenumber: 4220
    functionLinenumberEnd: 4315
    functionName: NSC_InitPIN
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - sftk_FreeSession
    - sftk_SessionFromHandle
    - PORT_Memcpy
    - sftk_getKeyDB
    - sftk_CloseAllSessions
    - PZ_Unlock
    - sftk_freeDB
    - CHECK_FORK
    - PZ_Lock
    - sftkdb_ChangePassword
    - sftk_GetModuleIndex
    - PORT_Memset
    - sftk_SlotFromSession
    - sftkdb_HasPasswordSet
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_InitPIN(CK_SESSION_HANDLE hSession,\n            CK_CHAR_PTR
      pPin, CK_ULONG ulPinLen)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11.c:4332,1
    - Dst: sftk_SessionFromHandle
      Src: /src/nss/lib/softoken/pkcs11.c:4334,1
    - Dst: sftk_SlotFromSession
      Src: /src/nss/lib/softoken/pkcs11.c:4339,1
    - Dst: sftk_getKeyDB
      Src: /src/nss/lib/softoken/pkcs11.c:4344,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11.c:4346,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/pkcs11.c:4350,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/pkcs11.c:4352,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11.c:4358,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11.c:4375,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11.c:4377,1
    - Dst: PR_Lock
      Src: /src/nss/lib/softoken/pkcs11.c:4381,1
    - Dst: sftkdb_ChangePassword
      Src: /src/nss/lib/softoken/pkcs11.c:4382,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/pkcs11.c:4383,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/pkcs11.c:4384,1
    - Dst: sftk_CloseAllSessions
      Src: /src/nss/lib/softoken/pkcs11.c:4386,1
    - Dst: sftk_isFIPS
      Src: /src/nss/lib/softoken/pkcs11.c:4388,1
    - Dst: PR_Sleep
      Src: /src/nss/lib/softoken/pkcs11.c:4389,1
    - Dst: PR_Unlock
      Src: /src/nss/lib/softoken/pkcs11.c:4391,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/pkcs11.c:4395,1
    - Dst: sftkdb_PWCached
      Src: /src/nss/lib/softoken/pkcs11.c:4397,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/pkcs11.c:4398,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/pkcs11.c:4401,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/pkcs11.c:4404,1
    - Dst: sftkdb_CheckPasswordNull
      Src: /src/nss/lib/softoken/pkcs11.c:4407,1
    - Dst: sftk_CloseAllSessions
      Src: /src/nss/lib/softoken/pkcs11.c:4409,1
    - Dst: sftk_update_all_states
      Src: /src/nss/lib/softoken/pkcs11.c:4412,1
    - Dst: sftk_freeDB
      Src: /src/nss/lib/softoken/pkcs11.c:4413,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11.c:4419,1
    - Dst: sftk_freeDB
      Src: /src/nss/lib/softoken/pkcs11.c:4422,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 82
    argCount: 5
    argNames:
    - hSession
    - pOldPin
    - ulOldLen
    - pNewPin
    - ulNewLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_CHAR_PTR
    - CK_ULONG
    - CK_CHAR_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4425
      start: 4319
    functionDepth: 7
    functionLinenumber: 4319
    functionLinenumberEnd: 4425
    functionName: NSC_SetPIN
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - sftk_SessionFromHandle
    - PZ_Unlock
    - sftk_CloseAllSessions
    - sftk_SlotFromSession
    - sftkdb_CheckPasswordNull
    - PORT_Memcpy
    - sftk_getKeyDB
    - PR_Lock
    - sftk_isFIPS
    - PR_Unlock
    - sftk_freeDB
    - sftk_FreeSession
    - sftkdb_PWCached
    - CHECK_FORK
    - PZ_Lock
    - sftkdb_ChangePassword
    - sftk_update_all_states
    - PR_Sleep
    - PORT_Memset
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_SetPIN(CK_SESSION_HANDLE hSession, CK_CHAR_PTR pOldPin,\n
      \          CK_ULONG ulOldLen, CK_CHAR_PTR pNewPin, CK_ULONG ulNewLen)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11.c:4437,1
    - Dst: sftk_SlotFromID
      Src: /src/nss/lib/softoken/pkcs11.c:4439,1
    - Dst: sftk_NewSession
      Src: /src/nss/lib/softoken/pkcs11.c:4444,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/pkcs11.c:4453,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/pkcs11.c:4455,1
    - Dst: PR_ATOMIC_INCREMENT
      Src: /src/nss/lib/softoken/pkcs11.c:4457,1
    - Dst: PR_ATOMIC_INCREMENT
      Src: /src/nss/lib/softoken/pkcs11.c:4463,1
    - Dst: SFTK_SESSION_LOCK
      Src: /src/nss/lib/softoken/pkcs11.c:4465,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/pkcs11.c:4466,1
    - Dst: sftkqueue_find
      Src: /src/nss/lib/softoken/pkcs11.c:4467,1
    - Dst: sftk_update_state
      Src: /src/nss/lib/softoken/pkcs11.c:4470,1
    - Dst: sftkqueue_add
      Src: /src/nss/lib/softoken/pkcs11.c:4471,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/pkcs11.c:4475,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 5
    argNames:
    - slotID
    - flags
    - pApplication
    - Notify
    - phSession
    argTypes:
    - CK_SLOT_ID
    - CK_FLAGS
    - CK_VOID_PTR
    - CK_NOTIFY
    - CK_SESSION_HANDLE_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4480
      start: 4428
    functionDepth: 3
    functionLinenumber: 4428
    functionLinenumberEnd: 4480
    functionName: NSC_OpenSession
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 7
    functionsReached:
    - SFTK_SESSION_LOCK
    - PR_ATOMIC_INCREMENT
    - sftk_SlotFromID
    - PZ_Unlock
    - sftkqueue_find
    - sftkqueue_add
    - CHECK_FORK
    - PZ_Lock
    - sftk_update_state
    - sftk_NewSession
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_OpenSession(CK_SLOT_ID slotID, CK_FLAGS flags,\n                CK_VOID_PTR
      pApplication, CK_NOTIFY Notify, CK_SESSION_HANDLE_PTR phSession)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11.c:4491,1
    - Dst: sftk_SessionFromHandle
      Src: /src/nss/lib/softoken/pkcs11.c:4493,1
    - Dst: sftk_SlotFromSession
      Src: /src/nss/lib/softoken/pkcs11.c:4496,1
    - Dst: SFTK_SESSION_LOCK
      Src: /src/nss/lib/softoken/pkcs11.c:4500,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/pkcs11.c:4501,1
    - Dst: sftkqueue_is_queued
      Src: /src/nss/lib/softoken/pkcs11.c:4502,1
    - Dst: sftkqueue_delete
      Src: /src/nss/lib/softoken/pkcs11.c:4504,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/pkcs11.c:4506,1
    - Dst: sftk_getKeyDB
      Src: /src/nss/lib/softoken/pkcs11.c:4510,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/pkcs11.c:4511,1
    - Dst: sftkdb_ClearPassword
      Src: /src/nss/lib/softoken/pkcs11.c:4515,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/pkcs11.c:4518,1
    - Dst: sftk_freeDB
      Src: /src/nss/lib/softoken/pkcs11.c:4520,1
    - Dst: PR_ATOMIC_DECREMENT
      Src: /src/nss/lib/softoken/pkcs11.c:4523,1
    - Dst: sftk_DestroySession
      Src: /src/nss/lib/softoken/pkcs11.c:4525,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 1
    argNames:
    - hSession
    argTypes:
    - CK_SESSION_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4530
      start: 4483
    functionDepth: 3
    functionLinenumber: 4483
    functionLinenumberEnd: 4530
    functionName: NSC_CloseSession
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 4
    functionsReached:
    - sftkdb_ClearPassword
    - sftk_SessionFromHandle
    - sftkqueue_is_queued
    - sftk_DestroySession
    - sftk_getKeyDB
    - PR_ATOMIC_DECREMENT
    - PZ_Unlock
    - sftk_freeDB
    - CHECK_FORK
    - PZ_Lock
    - sftkqueue_delete
    - sftk_SlotFromSession
    - SFTK_SESSION_LOCK
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV NSC_CloseSession(CK_SESSION_HANDLE hSession)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11.c:4541,1
    - Dst: sftk_SlotFromID
      Src: /src/nss/lib/softoken/pkcs11.c:4545,1
    - Dst: sftk_CloseAllSessions
      Src: /src/nss/lib/softoken/pkcs11.c:4549,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - slotID
    argTypes:
    - CK_SLOT_ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4550
      start: 4533
    functionDepth: 4
    functionLinenumber: 4533
    functionLinenumberEnd: 4550
    functionName: NSC_CloseAllSessions
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 1
    functionsReached:
    - sftk_SlotFromID
    - sftk_CloseAllSessions
    - CHECK_FORK
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV NSC_CloseAllSessions(CK_SLOT_ID slotID)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11.c:4559,1
    - Dst: sftk_SessionFromHandle
      Src: /src/nss/lib/softoken/pkcs11.c:4561,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11.c:4565,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11.c:4566,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - hSession
    - pInfo
    argTypes:
    - CK_SESSION_HANDLE
    - CK_SESSION_INFO_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4568
      start: 4553
    functionDepth: 1
    functionLinenumber: 4553
    functionLinenumberEnd: 4568
    functionName: NSC_GetSessionInfo
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - sftk_FreeSession
    - CHECK_FORK
    - sftk_SessionFromHandle
    - PORT_Memcpy
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_GetSessionInfo(CK_SESSION_HANDLE hSession,\n                   CK_SESSION_INFO_PTR
      pInfo)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11.c:4586,1
    - Dst: sftk_SlotFromSessionHandle
      Src: /src/nss/lib/softoken/pkcs11.c:4589,1
    - Dst: sftk_SessionFromHandle
      Src: /src/nss/lib/softoken/pkcs11.c:4595,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11.c:4600,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/pkcs11.c:4608,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/pkcs11.c:4611,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11.c:4625,1
    - Dst: sftk_getKeyDB
      Src: /src/nss/lib/softoken/pkcs11.c:4629,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/pkcs11.c:4631,1
    - Dst: sftkdb_HasPasswordSet
      Src: /src/nss/lib/softoken/pkcs11.c:4640,1
    - Dst: sftk_isFIPS
      Src: /src/nss/lib/softoken/pkcs11.c:4646,1
    - Dst: sftkdb_ClearPassword
      Src: /src/nss/lib/softoken/pkcs11.c:4649,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/pkcs11.c:4650,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/pkcs11.c:4653,1
    - Dst: sftk_update_all_states
      Src: /src/nss/lib/softoken/pkcs11.c:4654,1
    - Dst: PR_Lock
      Src: /src/nss/lib/softoken/pkcs11.c:4672,1
    - Dst: sftkdb_CheckPassword
      Src: /src/nss/lib/softoken/pkcs11.c:4673,1
    - Dst: sftk_CloseAllSessions
      Src: /src/nss/lib/softoken/pkcs11.c:4675,1
    - Dst: sftk_isFIPS
      Src: /src/nss/lib/softoken/pkcs11.c:4677,1
    - Dst: PR_Sleep
      Src: /src/nss/lib/softoken/pkcs11.c:4678,1
    - Dst: PR_Unlock
      Src: /src/nss/lib/softoken/pkcs11.c:4680,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/pkcs11.c:4682,1
    - Dst: sftkdb_PWCached
      Src: /src/nss/lib/softoken/pkcs11.c:4685,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/pkcs11.c:4686,1
    - Dst: sftk_freeDB
      Src: /src/nss/lib/softoken/pkcs11.c:4688,1
    - Dst: sftk_update_all_states
      Src: /src/nss/lib/softoken/pkcs11.c:4692,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/pkcs11.c:4698,1
    - Dst: sftk_freeDB
      Src: /src/nss/lib/softoken/pkcs11.c:4700,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 90
    argCount: 4
    argNames:
    - hSession
    - userType
    - pPin
    - ulPinLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_USER_TYPE
    - CK_CHAR_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4703
      start: 4571
    functionDepth: 4
    functionLinenumber: 4571
    functionLinenumberEnd: 4703
    functionName: NSC_Login
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - sftkdb_ClearPassword
    - sftk_SessionFromHandle
    - sftkdb_CheckPassword
    - PZ_Unlock
    - sftk_CloseAllSessions
    - PORT_Memcpy
    - sftk_getKeyDB
    - PR_Lock
    - sftk_isFIPS
    - PR_Unlock
    - sftk_freeDB
    - sftk_FreeSession
    - sftkdb_PWCached
    - sftk_SlotFromSessionHandle
    - CHECK_FORK
    - PZ_Lock
    - PR_Sleep
    - sftk_update_all_states
    - PORT_Memset
    - sftkdb_HasPasswordSet
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_Login(CK_SESSION_HANDLE hSession, CK_USER_TYPE userType,\n
      \         CK_CHAR_PTR pPin, CK_ULONG ulPinLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - hSession
    - userType
    - pPin
    - ulPinLen
    - pUsername
    - ulUsernameLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_USER_TYPE
    - CK_CHAR_PTR
    - CK_ULONG
    - CK_UTF8CHAR_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4712
      start: 4705
    functionDepth: 0
    functionLinenumber: 4705
    functionLinenumberEnd: 4712
    functionName: NSC_LoginUser
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_LoginUser(CK_SESSION_HANDLE hSession, CK_USER_TYPE userType,\n
      \             CK_CHAR_PTR pPin, CK_ULONG ulPinLen, CK_UTF8CHAR_PTR pUsername,\n
      \             CK_ULONG ulUsernameLen)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sftk_SlotFromSessionHandle
      Src: /src/nss/lib/softoken/pkcs11.c:4718,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11.c:4722,1
    - Dst: sftk_SessionFromHandle
      Src: /src/nss/lib/softoken/pkcs11.c:4727,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11.c:4730,1
    - Dst: sftk_getKeyDB
      Src: /src/nss/lib/softoken/pkcs11.c:4736,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/pkcs11.c:4737,1
    - Dst: sftkdb_ClearPassword
      Src: /src/nss/lib/softoken/pkcs11.c:4741,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/pkcs11.c:4743,1
    - Dst: sftk_freeDB
      Src: /src/nss/lib/softoken/pkcs11.c:4745,1
    - Dst: sftk_update_all_states
      Src: /src/nss/lib/softoken/pkcs11.c:4748,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - hSession
    argTypes:
    - CK_SESSION_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4750
      start: 4715
    functionDepth: 4
    functionLinenumber: 4715
    functionLinenumberEnd: 4750
    functionName: NSC_Logout
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - sftk_FreeSession
    - sftkdb_ClearPassword
    - sftk_SessionFromHandle
    - sftk_getKeyDB
    - PZ_Unlock
    - sftk_freeDB
    - sftk_SlotFromSessionHandle
    - CHECK_FORK
    - PZ_Lock
    - sftk_update_all_states
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV NSC_Logout(CK_SESSION_HANDLE hSession)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: if
      Src: /src/nss/lib/softoken/pkcs11.c:4779,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:4782,1
    - Dst: if
      Src: /src/nss/lib/softoken/pkcs11.c:4783,1
    - Dst: sftk_parseParameters
      Src: /src/nss/lib/softoken/pkcs11.c:4787,1
    - Dst: if
      Src: /src/nss/lib/softoken/pkcs11.c:4812,1
    - Dst: sftk_SlotFromID
      Src: /src/nss/lib/softoken/pkcs11.c:4827,1
    - Dst: SFTK_ShutdownSlot
      Src: /src/nss/lib/softoken/pkcs11.c:4829,1
    - Dst: SFTK_SlotReInit
      Src: /src/nss/lib/softoken/pkcs11.c:4844,1
    - Dst: SFTK_SlotInit
      Src: /src/nss/lib/softoken/pkcs11.c:4848,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 40
    argCount: 3
    argNames:
    - slot
    - class
    - object
    argTypes:
    - SFTKSlot*
    - CK_OBJECT_CLASS
    - SFTKObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4851
      start: 4760
    functionDepth: 7
    functionLinenumber: 4760
    functionLinenumberEnd: 4851
    functionName: sftk_CreateNewSlot
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - sftk_FindAttribute
    - sftk_parseParameters
    - sftk_SlotFromID
    - SFTK_ShutdownSlot
    - SFTK_SlotInit
    - SFTK_SlotReInit
    - if
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftk_CreateNewSlot(SFTKSlot *slot, CK_OBJECT_CLASS class,\n
      \                  SFTKObject *object)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4809
      start: 4807
    functionDepth: 0
    functionLinenumber: 4807
    functionLinenumberEnd: 4809
    functionName: (slot->slotID == slotID)
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: if
    signature: if (slot->slotID == slotID)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sftk_SlotFromSessionHandle
      Src: /src/nss/lib/softoken/pkcs11.c:4866,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11.c:4875,1
    - Dst: sftk_NewObject
      Src: /src/nss/lib/softoken/pkcs11.c:4885,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11.c:4902,1
    - Dst: sftk_attr_expand
      Src: /src/nss/lib/softoken/pkcs11.c:4902,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11.c:4904,1
    - Dst: sftk_SessionFromHandle
      Src: /src/nss/lib/softoken/pkcs11.c:4913,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11.c:4915,1
    - Dst: sftk_CreateNewSlot
      Src: /src/nss/lib/softoken/pkcs11.c:4923,1
    - Dst: sftk_handleObject
      Src: /src/nss/lib/softoken/pkcs11.c:4930,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11.c:4933,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11.c:4934,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 4
    argNames:
    - hSession
    - pTemplate
    - ulCount
    - phObject
    argTypes:
    - CK_SESSION_HANDLE
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    - CK_OBJECT_HANDLE_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4937
      start: 4861
    functionDepth: 8
    functionLinenumber: 4861
    functionLinenumberEnd: 4937
    functionName: NSC_CreateObject
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 5
    functionsReached:
    - sftk_FreeSession
    - sftk_AddAttributeType
    - sftk_SessionFromHandle
    - sftk_SlotFromSessionHandle
    - sftk_handleObject
    - sftk_attr_expand
    - CHECK_FORK
    - sftk_CreateNewSlot
    - sftk_NewObject
    - sftk_FreeObject
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_CreateObject(CK_SESSION_HANDLE hSession,\n                 CK_ATTRIBUTE_PTR
      pTemplate, CK_ULONG ulCount,\n                 CK_OBJECT_HANDLE_PTR phObject)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: sftk_SlotFromSessionHandle
      Src: /src/nss/lib/softoken/pkcs11.c:4948,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11.c:4951,1
    - Dst: sftk_SessionFromHandle
      Src: /src/nss/lib/softoken/pkcs11.c:4957,1
    - Dst: sftk_ObjectFromHandle
      Src: /src/nss/lib/softoken/pkcs11.c:4961,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11.c:4963,1
    - Dst: sftk_NewObject
      Src: /src/nss/lib/softoken/pkcs11.c:4969,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11.c:4971,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11.c:4972,1
    - Dst: sftk_modifyType
      Src: /src/nss/lib/softoken/pkcs11.c:4980,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11.c:4984,1
    - Dst: sftk_attr_expand
      Src: /src/nss/lib/softoken/pkcs11.c:4984,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11.c:4990,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11.c:4991,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11.c:4992,1
    - Dst: sftk_hasAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:4997,1
    - Dst: sftk_isTrue
      Src: /src/nss/lib/softoken/pkcs11.c:4998,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11.c:4999,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11.c:5000,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11.c:5001,1
    - Dst: sftk_CopyObject
      Src: /src/nss/lib/softoken/pkcs11.c:5012,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11.c:5015,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11.c:5017,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11.c:5018,1
    - Dst: sftk_handleObject
      Src: /src/nss/lib/softoken/pkcs11.c:5022,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11.c:5024,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11.c:5025,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 57
    argCount: 5
    argNames:
    - hSession
    - hObject
    - pTemplate
    - ulCount
    - phNewObject
    argTypes:
    - CK_SESSION_HANDLE
    - CK_OBJECT_HANDLE
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    - CK_OBJECT_HANDLE_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5028
      start: 4940
    functionDepth: 8
    functionLinenumber: 4940
    functionLinenumberEnd: 5028
    functionName: NSC_CopyObject
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - sftk_ObjectFromHandle
    - sftk_FreeSession
    - sftk_modifyType
    - sftk_SessionFromHandle
    - sftk_AddAttributeType
    - sftk_hasAttribute
    - sftk_isTrue
    - sftk_CopyObject
    - sftk_SlotFromSessionHandle
    - sftk_handleObject
    - CHECK_FORK
    - sftk_attr_expand
    - sftk_NewObject
    - sftk_FreeObject
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_CopyObject(CK_SESSION_HANDLE hSession,\n               CK_OBJECT_HANDLE
      hObject, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount,\n               CK_OBJECT_HANDLE_PTR
      phNewObject)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11.c:5035,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - hSession
    - hObject
    - pulSize
    argTypes:
    - CK_SESSION_HANDLE
    - CK_OBJECT_HANDLE
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5039
      start: 5031
    functionDepth: 1
    functionLinenumber: 5031
    functionLinenumberEnd: 5039
    functionName: NSC_GetObjectSize
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - CHECK_FORK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_GetObjectSize(CK_SESSION_HANDLE hSession,\n                  CK_OBJECT_HANDLE
      hObject, CK_ULONG_PTR pulSize)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sftk_SlotFromSession
      Src: /src/nss/lib/softoken/pkcs11.c:5045,1
    - Dst: sftk_getDBForTokenObject
      Src: /src/nss/lib/softoken/pkcs11.c:5046,1
    - Dst: sftkdb_GetAttributeValue
      Src: /src/nss/lib/softoken/pkcs11.c:5054,1
    - Dst: sftk_getKeyDB
      Src: /src/nss/lib/softoken/pkcs11.c:5057,1
    - Dst: sftk_isSensitive
      Src: /src/nss/lib/softoken/pkcs11.c:5061,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/pkcs11.c:5064,1
    - Dst: sftk_freeDB
      Src: /src/nss/lib/softoken/pkcs11.c:5072,1
    - Dst: sftk_freeDB
      Src: /src/nss/lib/softoken/pkcs11.c:5074,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - session
    - hObject
    - pTemplate
    - ulCount
    argTypes:
    - SFTKSession*
    - CK_OBJECT_HANDLE
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5077
      start: 5041
    functionDepth: 1
    functionLinenumber: 5041
    functionLinenumberEnd: 5077
    functionName: nsc_GetTokenAttributeValue
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - sftk_getDBForTokenObject
    - sftk_getKeyDB
    - sftk_SlotFromSession
    - sftk_freeDB
    - PORT_Memset
    - sftk_isSensitive
    - sftkdb_GetAttributeValue
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV nsc_GetTokenAttributeValue(SFTKSession *session, CK_OBJECT_HANDLE
      hObject,\n                           CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sftk_SlotFromSessionHandle
      Src: /src/nss/lib/softoken/pkcs11.c:5084,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11.c:5092,1
    - Dst: sftk_SessionFromHandle
      Src: /src/nss/lib/softoken/pkcs11.c:5100,1
    - Dst: sftk_isToken
      Src: /src/nss/lib/softoken/pkcs11.c:5106,1
    - Dst: nsc_GetTokenAttributeValue
      Src: /src/nss/lib/softoken/pkcs11.c:5107,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11.c:5108,1
    - Dst: sftk_ObjectFromHandle
      Src: /src/nss/lib/softoken/pkcs11.c:5113,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11.c:5114,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/pkcs11.c:5119,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/pkcs11.c:5122,1
    - Dst: sftk_isTrue
      Src: /src/nss/lib/softoken/pkcs11.c:5125,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11.c:5126,1
    - Dst: sftk_isTrue
      Src: /src/nss/lib/softoken/pkcs11.c:5131,1
    - Dst: sftk_isSensitive
      Src: /src/nss/lib/softoken/pkcs11.c:5134,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:5139,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11.c:5146,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:5150,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11.c:5153,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 49
    argCount: 4
    argNames:
    - hSession
    - hObject
    - pTemplate
    - ulCount
    argTypes:
    - CK_SESSION_HANDLE
    - CK_OBJECT_HANDLE
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5155
      start: 5080
    functionDepth: 4
    functionLinenumber: 5080
    functionLinenumberEnd: 5155
    functionName: NSC_GetAttributeValue
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 6
    functionsReached:
    - sftk_ObjectFromHandle
    - sftk_FreeSession
    - sftk_FindAttribute
    - nsc_GetTokenAttributeValue
    - sftk_SessionFromHandle
    - PORT_Memcpy
    - sftk_FreeAttribute
    - sftk_isTrue
    - sftk_isToken
    - PZ_Unlock
    - sftk_SlotFromSessionHandle
    - CHECK_FORK
    - PZ_Lock
    - sftk_isSensitive
    - sftk_FreeObject
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_GetAttributeValue(CK_SESSION_HANDLE hSession,\n                      CK_OBJECT_HANDLE
      hObject, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: sftk_SlotFromSessionHandle
      Src: /src/nss/lib/softoken/pkcs11.c:5162,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11.c:5171,1
    - Dst: sftk_SessionFromHandle
      Src: /src/nss/lib/softoken/pkcs11.c:5179,1
    - Dst: sftk_ObjectFromHandle
      Src: /src/nss/lib/softoken/pkcs11.c:5184,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11.c:5186,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/pkcs11.c:5190,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/pkcs11.c:5193,1
    - Dst: sftk_isTrue
      Src: /src/nss/lib/softoken/pkcs11.c:5196,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11.c:5197,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11.c:5198,1
    - Dst: sftk_isTrue
      Src: /src/nss/lib/softoken/pkcs11.c:5203,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11.c:5205,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11.c:5206,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11.c:5209,1
    - Dst: sftk_isTrue
      Src: /src/nss/lib/softoken/pkcs11.c:5212,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11.c:5213,1
    - Dst: sftk_modifyType
      Src: /src/nss/lib/softoken/pkcs11.c:5219,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:5239,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:5244,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:5245,1
    - Dst: sftk_attr_expand
      Src: /src/nss/lib/softoken/pkcs11.c:5245,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11.c:5250,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 64
    argCount: 4
    argNames:
    - hSession
    - hObject
    - pTemplate
    - ulCount
    argTypes:
    - CK_SESSION_HANDLE
    - CK_OBJECT_HANDLE
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5252
      start: 5158
    functionDepth: 4
    functionLinenumber: 5158
    functionLinenumberEnd: 5252
    functionName: NSC_SetAttributeValue
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - sftk_ObjectFromHandle
    - sftk_FreeSession
    - sftk_modifyType
    - sftk_SessionFromHandle
    - sftk_FindAttribute
    - sftk_FreeAttribute
    - sftk_isTrue
    - PZ_Unlock
    - sftk_SlotFromSessionHandle
    - CHECK_FORK
    - PZ_Lock
    - sftk_attr_expand
    - sftk_forceAttribute
    - sftk_FreeObject
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_SetAttributeValue(CK_SESSION_HANDLE hSession,\n                      CK_OBJECT_HANDLE
      hObject, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Realloc
      Src: /src/nss/lib/softoken/pkcs11.c:5258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - search
    - count
    argTypes:
    - SFTKSearchResults*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5261
      start: 5254
    functionDepth: 0
    functionLinenumber: 5254
    functionLinenumberEnd: 5261
    functionName: sftk_expandSearchList
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - PORT_Realloc
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV sftk_expandSearchList(SFTKSearchResults *search, int count)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sftkdb_FindObjectsInit
      Src: /src/nss/lib/softoken/pkcs11.c:5273,1
    - Dst: sftkdb_FindObjects
      Src: /src/nss/lib/softoken/pkcs11.c:5277,1
    - Dst: sftk_expandSearchList
      Src: /src/nss/lib/softoken/pkcs11.c:5284,1
    - Dst: sftkdb_FindObjectsFinal
      Src: /src/nss/lib/softoken/pkcs11.c:5288,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 4
    argNames:
    - handle
    - search
    - pTemplate
    - ulCount
    argTypes:
    - SFTKDBHandle*
    - SFTKSearchResults*
    - CK_ATTRIBUTE*
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5291
      start: 5263
    functionDepth: 2
    functionLinenumber: 5263
    functionLinenumberEnd: 5291
    functionName: sftk_searchDatabase
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - sftkdb_FindObjects
    - sftk_expandSearchList
    - sftkdb_FindObjectsFinal
    - sftkdb_FindObjectsInit
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftk_searchDatabase(SFTKDBHandle *handle, SFTKSearchResults
      *search,\n                    const CK_ATTRIBUTE *pTemplate, CK_ULONG ulCount)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/pkcs11.c:5341,1
    - Dst: sftk_searchDatabase
      Src: /src/nss/lib/softoken/pkcs11.c:5350,1
    - Dst: sftk_NewTokenObject
      Src: /src/nss/lib/softoken/pkcs11.c:5356,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:5361,1
    - Dst: sftk_searchDatabase
      Src: /src/nss/lib/softoken/pkcs11.c:5370,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11.c:5375,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11.c:5378,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/pkcs11.c:5381,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 63
    argCount: 5
    argNames:
    - slot
    - handle
    - search
    - pTemplate
    - ulCount
    argTypes:
    - SFTKSlot*
    - SFTKDBHandle*
    - SFTKSearchResults*
    - CK_ATTRIBUTE*
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5385
      start: 5297
    functionDepth: 3
    functionLinenumber: 5297
    functionLinenumberEnd: 5385
    functionName: sftk_emailhack
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - sftk_FindAttribute
    - sftk_FreeAttribute
    - PORT_Free
    - sftk_NewTokenObject
    - sftk_searchDatabase
    - sftk_FreeObject
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftk_emailhack(SFTKSlot *slot, SFTKDBHandle *handle,\n               SFTKSearchResults
      *search, CK_ATTRIBUTE *pTemplate, CK_ULONG ulCount)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 4
    argNames:
    - pTemplate
    - ulCount
    - searchCertDB
    - searchKeyDB
    argTypes:
    - CK_ATTRIBUTE*
    - CK_ULONG
    - PRBool*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5405
      start: 5387
    functionDepth: 0
    functionLinenumber: 5387
    functionLinenumberEnd: 5405
    functionName: sftk_pruneSearch
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void sftk_pruneSearch(CK_ATTRIBUTE *pTemplate, CK_ULONG ulCount,\n
      \                PRBool *searchCertDB, PRBool *searchKeyDB)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sftk_pruneSearch
      Src: /src/nss/lib/softoken/pkcs11.c:5418,1
    - Dst: sftk_getCertDB
      Src: /src/nss/lib/softoken/pkcs11.c:5421,1
    - Dst: sftk_searchDatabase
      Src: /src/nss/lib/softoken/pkcs11.c:5422,1
    - Dst: sftk_emailhack
      Src: /src/nss/lib/softoken/pkcs11.c:5423,1
    - Dst: sftk_freeDB
      Src: /src/nss/lib/softoken/pkcs11.c:5426,1
    - Dst: sftk_getKeyDB
      Src: /src/nss/lib/softoken/pkcs11.c:5430,1
    - Dst: sftk_searchDatabase
      Src: /src/nss/lib/softoken/pkcs11.c:5431,1
    - Dst: sftk_freeDB
      Src: /src/nss/lib/softoken/pkcs11.c:5432,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 5
    argNames:
    - slot
    - search
    - pTemplate
    - ulCount
    - isLoggedIn
    argTypes:
    - SFTKSlot*
    - SFTKSearchResults*
    - CK_ATTRIBUTE*
    - CK_ULONG
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5435
      start: 5408
    functionDepth: 4
    functionLinenumber: 5408
    functionLinenumberEnd: 5435
    functionName: sftk_searchTokenList
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - sftk_getKeyDB
    - sftk_emailhack
    - sftk_freeDB
    - sftk_pruneSearch
    - sftk_getCertDB
    - sftk_searchDatabase
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftk_searchTokenList(SFTKSlot *slot, SFTKSearchResults *search,\n
      \                    CK_ATTRIBUTE *pTemplate, CK_ULONG ulCount,\n                     PRBool
      isLoggedIn)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: sftk_SlotFromSessionHandle
      Src: /src/nss/lib/softoken/pkcs11.c:5445,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11.c:5449,1
    - Dst: sftk_SessionFromHandle
      Src: /src/nss/lib/softoken/pkcs11.c:5454,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/pkcs11.c:5460,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/pkcs11.c:5466,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/pkcs11.c:5475,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/pkcs11.c:5477,1
    - Dst: sftk_searchTokenList
      Src: /src/nss/lib/softoken/pkcs11.c:5498,1
    - Dst: sftk_searchObjectList
      Src: /src/nss/lib/softoken/pkcs11.c:5507,1
    - Dst: sftk_FreeSearch
      Src: /src/nss/lib/softoken/pkcs11.c:5517,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11.c:5520,1
    - Dst: sftk_FreeSearch
      Src: /src/nss/lib/softoken/pkcs11.c:5525,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11.c:5528,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 72
    argCount: 3
    argNames:
    - hSession
    - pTemplate
    - ulCount
    argTypes:
    - CK_SESSION_HANDLE
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5531
      start: 5439
    functionDepth: 5
    functionLinenumber: 5439
    functionLinenumberEnd: 5531
    functionName: NSC_FindObjectsInit
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - sftk_FreeSession
    - sftk_SessionFromHandle
    - sftk_searchObjectList
    - PZ_Unlock
    - sftk_SlotFromSessionHandle
    - CHECK_FORK
    - PZ_Lock
    - sftk_searchTokenList
    - sftk_FreeSearch
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_FindObjectsInit(CK_SESSION_HANDLE hSession,\n                    CK_ATTRIBUTE_PTR
      pTemplate, CK_ULONG ulCount)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11.c:5545,1
    - Dst: sftk_SessionFromHandle
      Src: /src/nss/lib/softoken/pkcs11.c:5548,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11.c:5552,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11.c:5559,1
    - Dst: sftk_FreeSearch
      Src: /src/nss/lib/softoken/pkcs11.c:5568,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11.c:5571,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 4
    argNames:
    - hSession
    - phObject
    - ulMaxObjectCount
    - pulObjectCount
    argTypes:
    - CK_SESSION_HANDLE
    - CK_OBJECT_HANDLE_PTR
    - CK_ULONG
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5573
      start: 5535
    functionDepth: 1
    functionLinenumber: 5535
    functionLinenumberEnd: 5573
    functionName: NSC_FindObjects
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - sftk_FreeSession
    - sftk_SessionFromHandle
    - PORT_Memcpy
    - CHECK_FORK
    - sftk_FreeSearch
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_FindObjects(CK_SESSION_HANDLE hSession,\n                CK_OBJECT_HANDLE_PTR
      phObject, CK_ULONG ulMaxObjectCount,\n                CK_ULONG_PTR pulObjectCount)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11.c:5582,1
    - Dst: sftk_SessionFromHandle
      Src: /src/nss/lib/softoken/pkcs11.c:5584,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11.c:5589,1
    - Dst: sftk_FreeSearch
      Src: /src/nss/lib/softoken/pkcs11.c:5591,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - hSession
    argTypes:
    - CK_SESSION_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5594
      start: 5576
    functionDepth: 1
    functionLinenumber: 5576
    functionLinenumberEnd: 5594
    functionName: NSC_FindObjectsFinal
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - sftk_FreeSession
    - sftk_FreeSearch
    - CHECK_FORK
    - sftk_SessionFromHandle
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV NSC_FindObjectsFinal(CK_SESSION_HANDLE hSession)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11.c:5600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - flags
    - pSlot
    - pReserved
    argTypes:
    - CK_FLAGS
    - CK_SLOT_ID_PTR
    - CK_VOID_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5603
      start: 5596
    functionDepth: 1
    functionLinenumber: 5596
    functionLinenumberEnd: 5603
    functionName: NSC_WaitForSlotEvent
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - CHECK_FORK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_WaitForSlotEvent(CK_FLAGS flags, CK_SLOT_ID_PTR pSlot,\n
      \                    CK_VOID_PTR pReserved)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: sftk_SessionFromHandle
      Src: /src/nss/lib/softoken/pkcs11.c:5641,1
    - Dst: sftk_ObjectFromHandle
      Src: /src/nss/lib/softoken/pkcs11.c:5661,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11.c:5663,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11.c:5667,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11.c:5670,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 61
    argCount: 4
    argNames:
    - hSession
    - hObject
    - ulOperationType
    - pulFIPSStatus
    argTypes:
    - CK_SESSION_HANDLE
    - CK_OBJECT_HANDLE
    - CK_ULONG
    - CK_ULONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5706
      start: 5605
    functionDepth: 1
    functionLinenumber: 5605
    functionLinenumberEnd: 5706
    functionName: nsc_NSSGetFIPSStatus
    functionSourceFile: /src/nss/lib/softoken/pkcs11.c
    functionUses: 0
    functionsReached:
    - sftk_ObjectFromHandle
    - sftk_FreeSession
    - sftk_SessionFromHandle
    - sftk_FreeObject
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV nsc_NSSGetFIPSStatus(CK_SESSION_HANDLE hSession,\n                     CK_OBJECT_HANDLE
      hObject,\n                     CK_ULONG ulOperationType,\n                     CK_ULONG
      *pulFIPSStatus)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: __PASTE
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __PASTE(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pMech
    - ','
    - typeSize
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: BAD_PARAM_CAST
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BAD_PARAM_CAST(pMech, typeSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: CK_PKCS11_FUNCTION_INFO
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CK_PKCS11_FUNCTION_INFO(func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - freeit
    argTypes:
    - void*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: sftk_Null
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sftk_Null(void *data, PRBool freeit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - str1
    - ','
    - str2
    - ','
    - num
    - ','
    - sitem
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 93
    functionName: SEC_PRINT
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SEC_PRINT(str1, str2, num, sitem)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctxtype
    - ','
    - mmm
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 119
    functionName: SFTKHashWrap
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SFTKHashWrap(ctxtype, mmm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA1_Begin
      Src: /src/nss/lib/softoken/pkcs11c.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 138
    functionName: SFTKHash_SHA1_Begin
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - SHA1_Begin
    linkageType: ''
    returnType: void
    signature: void SFTKHash_SHA1_Begin(void *vctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MD5_Begin
      Src: /src/nss/lib/softoken/pkcs11c.c:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 145
    functionName: SFTKHash_MD5_Begin
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - MD5_Begin
    linkageType: ''
    returnType: void
    signature: void SFTKHash_MD5_Begin(void *vctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctxtype
    - ','
    - mmm
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 157
    functionName: SFTKCipherWrap
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SFTKCipherWrap(ctxtype, mmm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctxtype
    - ','
    - mmm
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 169
    functionName: SFTKCipherWrap2
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SFTKCipherWrap2(ctxtype, mmm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nsslowkey_DestroyPrivateKey
      Src: /src/nss/lib/softoken/pkcs11c.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - vkey
    - freeit
    argTypes:
    - void*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 191
    functionName: sftk_FreePrivKey
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - nsslowkey_DestroyPrivateKey
    linkageType: ''
    returnType: void
    signature: void sftk_FreePrivKey(void *vkey, PRBool freeit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/pkcs11c.c:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - freeit
    argTypes:
    - void*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 197
    functionName: sftk_Space
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    linkageType: ''
    returnType: void
    signature: void sftk_Space(void *data, PRBool freeit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZFree
      Src: /src/nss/lib/softoken/pkcs11c.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - freeit
    argTypes:
    - void*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 204
    functionName: sftk_ZSpace
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - PORT_ZFree
    linkageType: ''
    returnType: void
    signature: void sftk_ZSpace(void *data, PRBool freeit)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DES_CreateContext
      Src: /src/nss/lib/softoken/pkcs11c.c:228,1
    - Dst: DES_Encrypt
      Src: /src/nss/lib/softoken/pkcs11c.c:233,1
    - Dst: DES_DestroyContext
      Src: /src/nss/lib/softoken/pkcs11c.c:234,1
    - Dst: sftk_MapCryptError
      Src: /src/nss/lib/softoken/pkcs11c.c:236,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/pkcs11c.c:236,1
    - Dst: DES_CreateContext
      Src: /src/nss/lib/softoken/pkcs11c.c:250,1
    - Dst: DES_Encrypt
      Src: /src/nss/lib/softoken/pkcs11c.c:255,1
    - Dst: DES_DestroyContext
      Src: /src/nss/lib/softoken/pkcs11c.c:256,1
    - Dst: sftk_MapCryptError
      Src: /src/nss/lib/softoken/pkcs11c.c:258,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/pkcs11c.c:258,1
    - Dst: sftk_FormatDESKey
      Src: /src/nss/lib/softoken/pkcs11c.c:263,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/pkcs11c.c:265,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/pkcs11c.c:266,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 2
    argNames:
    - cdmfkey
    - deskey
    argTypes:
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 268
    functionName: sftk_cdmf2des
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - DES_DestroyContext
    - PORT_GetError
    - sftk_MapCryptError
    - sftk_FormatDESKey
    - DES_CreateContext
    - PORT_Memset
    - DES_Encrypt
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV sftk_cdmf2des(unsigned char *cdmfkey, unsigned char *deskey)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sftk_SlotFromSessionHandle
      Src: /src/nss/lib/softoken/pkcs11c.c:274,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11c.c:279,1
    - Dst: sftk_SessionFromHandle
      Src: /src/nss/lib/softoken/pkcs11c.c:288,1
    - Dst: sftk_ObjectFromHandle
      Src: /src/nss/lib/softoken/pkcs11c.c:293,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11c.c:295,1
    - Dst: sftk_isTrue
      Src: /src/nss/lib/softoken/pkcs11c.c:301,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11c.c:302,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11c.c:303,1
    - Dst: sftk_isTrue
      Src: /src/nss/lib/softoken/pkcs11c.c:310,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11c.c:311,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11c.c:312,1
    - Dst: sftk_DeleteObject
      Src: /src/nss/lib/softoken/pkcs11c.c:316,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11c.c:318,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11c.c:327,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - hSession
    - hObject
    argTypes:
    - CK_SESSION_HANDLE
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 271
    functionDepth: 4
    functionLinenumber: 271
    functionLinenumberEnd: 330
    functionName: NSC_DestroyObject
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - sftk_ObjectFromHandle
    - sftk_FreeSession
    - sftk_DeleteObject
    - sftk_SessionFromHandle
    - sftk_isTrue
    - sftk_SlotFromSessionHandle
    - CHECK_FORK
    - sftk_FreeObject
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV NSC_DestroyObject(CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE
      hObject)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sftk_GetHashTypeFromMechanism
      Src: /src/nss/lib/softoken/pkcs11c.c:341,1
    - Dst: sftk_GetHashTypeFromMechanism
      Src: /src/nss/lib/softoken/pkcs11c.c:342,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - params
    argTypes:
    - CK_RSA_PKCS_PSS_PARAMS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 346
    functionName: sftk_ValidatePssParams
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - sftk_GetHashTypeFromMechanism
    linkageType: ''
    returnType: PRBool
    signature: PRBool sftk_ValidatePssParams(const CK_RSA_PKCS_PSS_PARAMS *params)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sftk_GetHashTypeFromMechanism
      Src: /src/nss/lib/softoken/pkcs11c.c:363,1
    - Dst: sftk_GetHashTypeFromMechanism
      Src: /src/nss/lib/softoken/pkcs11c.c:364,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 8
    argCount: 1
    argNames:
    - params
    argTypes:
    - CK_RSA_PKCS_OAEP_PARAMS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 370
    functionName: sftk_ValidateOaepParams
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - sftk_GetHashTypeFromMechanism
    linkageType: ''
    returnType: PRBool
    signature: PRBool sftk_ValidateOaepParams(const CK_RSA_PKCS_OAEP_PARAMS *params)
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 2
    argNames:
    - session
    - type
    argTypes:
    - SFTKSession*
    - SFTKContextType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 395
    functionName: sftk_ReturnContextByType
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SFTKSessionContext
    signature: 'SFTKSessionContext *

      sftk_ReturnContextByType(SFTKSession *session, SFTKContextType type)'
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - session
    - type
    - context
    argTypes:
    - SFTKSession*
    - SFTKContextType
    - SFTKSessionContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 424
    functionName: sftk_SetContextByType
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void sftk_SetContextByType(SFTKSession *session, SFTKContextType type,\n
      \                     SFTKSessionContext *context)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sftk_SessionFromHandle
      Src: /src/nss/lib/softoken/pkcs11c.c:440,1
    - Dst: sftk_ReturnContextByType
      Src: /src/nss/lib/softoken/pkcs11c.c:443,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11c.c:446,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11c.c:453,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 5
    argNames:
    - handle
    - contextPtr
    - type
    - needMulti
    - sessionPtr
    argTypes:
    - CK_SESSION_HANDLE
    - SFTKSessionContext**
    - SFTKContextType
    - PRBool
    - SFTKSession**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 456
    functionName: sftk_GetContext
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - sftk_FreeSession
    - sftk_SessionFromHandle
    - sftk_ReturnContextByType
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftk_GetContext(CK_SESSION_HANDLE handle, SFTKSessionContext
      **contextPtr,\n                SFTKContextType type, PRBool needMulti, SFTKSession
      **sessionPtr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sftk_FreeContext
      Src: /src/nss/lib/softoken/pkcs11c.c:466,1
    - Dst: sftk_SetContextByType
      Src: /src/nss/lib/softoken/pkcs11c.c:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - session
    - ctype
    - context
    argTypes:
    - SFTKSession*
    - SFTKContextType
    - SFTKSessionContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 468
    functionName: sftk_TerminateOp
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - sftk_SetContextByType
    - sftk_FreeContext
    linkageType: ''
    returnType: void
    signature: "void sftk_TerminateOp(SFTKSession *session, SFTKContextType ctype,\n
      \                SFTKSessionContext *context)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sftk_ReturnContextByType
      Src: /src/nss/lib/softoken/pkcs11c.c:490,1
    - Dst: sftk_ObjectFromHandle
      Src: /src/nss/lib/softoken/pkcs11c.c:496,1
    - Dst: sftk_isTrue
      Src: /src/nss/lib/softoken/pkcs11c.c:504,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11c.c:505,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:509,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11c.c:511,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/pkcs11c.c:514,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:516,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11c.c:517,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11c.c:520,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:521,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/pkcs11c.c:526,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11c.c:529,1
    - Dst: sftk_operationIsFIPS
      Src: /src/nss/lib/softoken/pkcs11c.c:542,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 47
    argCount: 9
    argNames:
    - session
    - pMechanism
    - contextPtr
    - ctype
    - keyPtr
    - hKey
    - keyTypePtr
    - pubKeyType
    - operation
    argTypes:
    - SFTKSession*
    - CK_MECHANISM*
    - SFTKSessionContext**
    - SFTKContextType
    - SFTKObject**
    - CK_OBJECT_HANDLE
    - CK_KEY_TYPE*
    - CK_OBJECT_CLASS
    - CK_ATTRIBUTE_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 478
    functionDepth: 1
    functionLinenumber: 478
    functionLinenumberEnd: 546
    functionName: sftk_InitGeneric
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - sftk_ObjectFromHandle
    - PORT_Assert
    - sftk_FindAttribute
    - PORT_Memcpy
    - sftk_ReturnContextByType
    - sftk_FreeAttribute
    - sftk_isTrue
    - sftk_operationIsFIPS
    - sftk_FreeObject
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftk_InitGeneric(SFTKSession *session, CK_MECHANISM *pMechanism,\n
      \                SFTKSessionContext **contextPtr,\n                 SFTKContextType
      ctype, SFTKObject **keyPtr,\n                 CK_OBJECT_HANDLE hKey, CK_KEY_TYPE
      *keyTypePtr,\n                 CK_OBJECT_CLASS pubKeyType, CK_ATTRIBUTE_TYPE
      operation)"
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - mechanism
    argTypes:
    - CK_MECHANISM_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 565
    functionName: sftk_aes_mode
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sftk_aes_mode(CK_MECHANISM_TYPE mechanism)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/pkcs11c.c:575,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/pkcs11c.c:577,1
    - Dst: RSA_EncryptRaw
      Src: /src/nss/lib/softoken/pkcs11c.c:581,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/pkcs11c.c:583,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 6
    argNames:
    - ctx
    - output
    - outputLen
    - maxLen
    - input
    - inputLen
    argTypes:
    - void*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 588
    functionName: sftk_RSAEncryptRaw
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - PORT_GetError
    - RSA_EncryptRaw
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sftk_RSAEncryptRaw(void *ctx, unsigned char *output,\n                   unsigned
      int *outputLen, unsigned int maxLen,\n                   const unsigned char
      *input, unsigned int inputLen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/pkcs11c.c:598,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/pkcs11c.c:600,1
    - Dst: RSA_DecryptRaw
      Src: /src/nss/lib/softoken/pkcs11c.c:604,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/pkcs11c.c:606,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 6
    argNames:
    - ctx
    - output
    - outputLen
    - maxLen
    - input
    - inputLen
    argTypes:
    - void*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 611
    functionName: sftk_RSADecryptRaw
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - PORT_GetError
    - RSA_DecryptRaw
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sftk_RSADecryptRaw(void *ctx, unsigned char *output,\n                   unsigned
      int *outputLen, unsigned int maxLen,\n                   const unsigned char
      *input, unsigned int inputLen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/pkcs11c.c:621,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/pkcs11c.c:623,1
    - Dst: RSA_EncryptBlock
      Src: /src/nss/lib/softoken/pkcs11c.c:627,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/pkcs11c.c:629,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 6
    argNames:
    - ctx
    - output
    - outputLen
    - maxLen
    - input
    - inputLen
    argTypes:
    - void*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 613
    functionDepth: 0
    functionLinenumber: 613
    functionLinenumberEnd: 634
    functionName: sftk_RSAEncrypt
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - RSA_EncryptBlock
    - PORT_GetError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sftk_RSAEncrypt(void *ctx, unsigned char *output,\n                unsigned
      int *outputLen, unsigned int maxLen,\n                const unsigned char *input,
      unsigned int inputLen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/pkcs11c.c:644,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/pkcs11c.c:646,1
    - Dst: RSA_DecryptBlock
      Src: /src/nss/lib/softoken/pkcs11c.c:650,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/pkcs11c.c:652,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 6
    argNames:
    - ctx
    - output
    - outputLen
    - maxLen
    - input
    - inputLen
    argTypes:
    - void*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 636
    functionDepth: 0
    functionLinenumber: 636
    functionLinenumberEnd: 657
    functionName: sftk_RSADecrypt
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - PORT_GetError
    - RSA_DecryptBlock
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sftk_RSADecrypt(void *ctx, unsigned char *output,\n                unsigned
      int *outputLen, unsigned int maxLen,\n                const unsigned char *input,
      unsigned int inputLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZFree
      Src: /src/nss/lib/softoken/pkcs11c.c:663,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/softoken/pkcs11c.c:664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - freeit
    argTypes:
    - void*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 659
    functionDepth: 0
    functionLinenumber: 659
    functionLinenumberEnd: 665
    functionName: sftk_freeRSAOAEPInfo
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - PORT_ZFree
    linkageType: ''
    returnType: void
    signature: void sftk_freeRSAOAEPInfo(void *ctx, PRBool freeit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/pkcs11c.c:676,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/pkcs11c.c:678,1
    - Dst: sftk_GetHashTypeFromMechanism
      Src: /src/nss/lib/softoken/pkcs11c.c:682,1
    - Dst: sftk_GetHashTypeFromMechanism
      Src: /src/nss/lib/softoken/pkcs11c.c:683,1
    - Dst: RSA_EncryptOAEP
      Src: /src/nss/lib/softoken/pkcs11c.c:685,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 6
    argNames:
    - ctx
    - output
    - outputLen
    - maxLen
    - input
    - inputLen
    argTypes:
    - void*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 667
    functionDepth: 1
    functionLinenumber: 667
    functionLinenumberEnd: 689
    functionName: sftk_RSAEncryptOAEP
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - RSA_EncryptOAEP
    - sftk_GetHashTypeFromMechanism
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sftk_RSAEncryptOAEP(void *ctx, unsigned char *output,\n
      \                   unsigned int *outputLen, unsigned int maxLen,\n                    const
      unsigned char *input, unsigned int inputLen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/pkcs11c.c:701,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/pkcs11c.c:703,1
    - Dst: sftk_GetHashTypeFromMechanism
      Src: /src/nss/lib/softoken/pkcs11c.c:707,1
    - Dst: sftk_GetHashTypeFromMechanism
      Src: /src/nss/lib/softoken/pkcs11c.c:708,1
    - Dst: RSA_DecryptOAEP
      Src: /src/nss/lib/softoken/pkcs11c.c:710,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/pkcs11c.c:714,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 6
    argNames:
    - ctx
    - output
    - outputLen
    - maxLen
    - input
    - inputLen
    argTypes:
    - void*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 691
    functionDepth: 1
    functionLinenumber: 691
    functionLinenumberEnd: 718
    functionName: sftk_RSADecryptOAEP
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - RSA_DecryptOAEP
    - PORT_GetError
    - sftk_GetHashTypeFromMechanism
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sftk_RSADecryptOAEP(void *ctx, unsigned char *output,\n
      \                   unsigned int *outputLen, unsigned int maxLen,\n                    const
      unsigned char *input, unsigned int inputLen)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/pkcs11c.c:728,1
    - Dst: PORT_New
      Src: /src/nss/lib/softoken/pkcs11c.c:732,1
    - Dst: ChaCha20Poly1305_InitContext
      Src: /src/nss/lib/softoken/pkcs11c.c:737,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/pkcs11c.c:739,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11c.c:743,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/pkcs11c.c:746,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/pkcs11c.c:750,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/pkcs11c.c:752,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11c.c:755,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11c.c:759,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 3
    argNames:
    - key
    - keyLen
    - params
    argTypes:
    - unsigned char*
    - unsigned int
    - CK_NSS_AEAD_PARAMS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 720
    functionDepth: 1
    functionLinenumber: 720
    functionLinenumberEnd: 765
    functionName: sftk_ChaCha20Poly1305_CreateContext
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_Assert
    - PORT_Memcpy
    - PORT_Free
    - PORT_SetError
    - PORT_New
    - ChaCha20Poly1305_InitContext
    linkageType: ''
    returnType: SFTKChaCha20Poly1305Info
    signature: "SFTKChaCha20Poly1305Info *\nsftk_ChaCha20Poly1305_CreateContext(const
      unsigned char *key,\n                                    unsigned int keyLen,\n
      \                                   const CK_NSS_AEAD_PARAMS *params)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ChaCha20Poly1305_DestroyContext
      Src: /src/nss/lib/softoken/pkcs11c.c:772,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/softoken/pkcs11c.c:774,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/pkcs11c.c:777,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/pkcs11c.c:781,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - vctx
    - freeit
    argTypes:
    - void*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 767
    functionDepth: 0
    functionLinenumber: 767
    functionLinenumberEnd: 783
    functionName: sftk_ChaCha20Poly1305_DestroyContext
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - PORT_Memset
    - PORT_ZFree
    - ChaCha20Poly1305_DestroyContext
    linkageType: ''
    returnType: void
    signature: "void sftk_ChaCha20Poly1305_DestroyContext(void *vctx,\n                                     PRBool
      freeit)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ChaCha20Poly1305_Seal
      Src: /src/nss/lib/softoken/pkcs11c.c:798,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - vctx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - void*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 785
    functionDepth: 0
    functionLinenumber: 785
    functionLinenumberEnd: 801
    functionName: sftk_ChaCha20Poly1305_Encrypt
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - ChaCha20Poly1305_Seal
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sftk_ChaCha20Poly1305_Encrypt(void *vctx,\n                              unsigned
      char *output, unsigned int *outputLen,\n                              unsigned
      int maxOutputLen,\n                              const unsigned char *input,
      unsigned int inputLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ChaCha20Poly1305_Open
      Src: /src/nss/lib/softoken/pkcs11c.c:816,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - vctx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - void*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 803
    functionDepth: 0
    functionLinenumber: 803
    functionLinenumberEnd: 819
    functionName: sftk_ChaCha20Poly1305_Decrypt
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - ChaCha20Poly1305_Open
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sftk_ChaCha20Poly1305_Decrypt(void *vctx,\n                              unsigned
      char *output, unsigned int *outputLen,\n                              unsigned
      int maxOutputLen,\n                              const unsigned char *input,
      unsigned int inputLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/pkcs11c.c:828,1
    - Dst: ChaCha20_Xor
      Src: /src/nss/lib/softoken/pkcs11c.c:832,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 6
    argNames:
    - vctx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - void*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 821
    functionDepth: 0
    functionLinenumber: 821
    functionLinenumberEnd: 836
    functionName: sftk_ChaCha20Ctr
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - ChaCha20_Xor
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sftk_ChaCha20Ctr(void *vctx,\n                 unsigned
      char *output, unsigned int *outputLen,\n                 unsigned int maxOutputLen,\n
      \                const unsigned char *input, unsigned int inputLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/softoken/pkcs11c.c:843,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/pkcs11c.c:845,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - vctx
    - freeit
    argTypes:
    - void*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 838
    functionDepth: 0
    functionLinenumber: 838
    functionLinenumberEnd: 847
    functionName: sftk_ChaCha20Ctr_DestroyContext
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - memset
    - PORT_Free
    linkageType: ''
    returnType: void
    signature: "void sftk_ChaCha20Ctr_DestroyContext(void *vctx,\n                                PRBool
      freeit)"
  - BBCount: 121
    BranchProfiles: []
    Callsites:
    - Dst: sftk_MechAllowsOperation
      Src: /src/nss/lib/softoken/pkcs11c.c:887,1
    - Dst: sftk_SessionFromHandle
      Src: /src/nss/lib/softoken/pkcs11c.c:891,1
    - Dst: sftk_InitGeneric
      Src: /src/nss/lib/softoken/pkcs11c.c:895,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11c.c:901,1
    - Dst: sftk_GetPubKey
      Src: /src/nss/lib/softoken/pkcs11c.c:916,1
    - Dst: nsslowkey_PublicModulusLen
      Src: /src/nss/lib/softoken/pkcs11c.c:921,1
    - Dst: sftk_GetPrivKey
      Src: /src/nss/lib/softoken/pkcs11c.c:927,1
    - Dst: nsslowkey_PrivateModulusLen
      Src: /src/nss/lib/softoken/pkcs11c.c:932,1
    - Dst: sftk_ValidateOaepParams
      Src: /src/nss/lib/softoken/pkcs11c.c:946,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/pkcs11c.c:960,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11c.c:965,1
    - Dst: PORT_New
      Src: /src/nss/lib/softoken/pkcs11c.c:967,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/softoken/pkcs11c.c:969,1
    - Dst: sftk_GetPubKey
      Src: /src/nss/lib/softoken/pkcs11c.c:979,1
    - Dst: sftk_freeRSAOAEPInfo
      Src: /src/nss/lib/softoken/pkcs11c.c:981,1
    - Dst: nsslowkey_PublicModulusLen
      Src: /src/nss/lib/softoken/pkcs11c.c:986,1
    - Dst: sftk_GetPrivKey
      Src: /src/nss/lib/softoken/pkcs11c.c:988,1
    - Dst: sftk_freeRSAOAEPInfo
      Src: /src/nss/lib/softoken/pkcs11c.c:990,1
    - Dst: nsslowkey_PrivateModulusLen
      Src: /src/nss/lib/softoken/pkcs11c.c:995,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:1012,1
    - Dst: BAD_PARAM_CAST
      Src: /src/nss/lib/softoken/pkcs11c.c:1018,1
    - Dst: RC2_CreateContext
      Src: /src/nss/lib/softoken/pkcs11c.c:1025,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:1028,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:1048,1
    - Dst: BAD_PARAM_CAST
      Src: /src/nss/lib/softoken/pkcs11c.c:1054,1
    - Dst: RC5_CreateContext
      Src: /src/nss/lib/softoken/pkcs11c.c:1062,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:1065,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:1079,1
    - Dst: RC4_CreateContext
      Src: /src/nss/lib/softoken/pkcs11c.c:1085,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:1087,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:1146,1
    - Dst: memcpy
      Src: /src/nss/lib/softoken/pkcs11c.c:1154,1
    - Dst: memcpy
      Src: /src/nss/lib/softoken/pkcs11c.c:1155,1
    - Dst: sftk_cdmf2des
      Src: /src/nss/lib/softoken/pkcs11c.c:1158,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:1160,1
    - Dst: DES_CreateContext
      Src: /src/nss/lib/softoken/pkcs11c.c:1165,1
    - Dst: memset
      Src: /src/nss/lib/softoken/pkcs11c.c:1169,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:1170,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:1195,1
    - Dst: SEED_CreateContext
      Src: /src/nss/lib/softoken/pkcs11c.c:1200,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:1205,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:1230,1
    - Dst: Camellia_CreateContext
      Src: /src/nss/lib/softoken/pkcs11c.c:1235,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:1243,1
    - Dst: BAD_PARAM_CAST
      Src: /src/nss/lib/softoken/pkcs11c.c:1305,1
    - Dst: BAD_PARAM_CAST
      Src: /src/nss/lib/softoken/pkcs11c.c:1306,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:1318,1
    - Dst: AES_CreateContext
      Src: /src/nss/lib/softoken/pkcs11c.c:1323,1
    - Dst: sftk_aes_mode
      Src: /src/nss/lib/softoken/pkcs11c.c:1326,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:1328,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:1373,1
    - Dst: sftk_ChaCha20Poly1305_CreateContext
      Src: /src/nss/lib/softoken/pkcs11c.c:1378,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:1381,1
    - Dst: sftk_MapCryptError
      Src: /src/nss/lib/softoken/pkcs11c.c:1383,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/pkcs11c.c:1383,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:1433,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/softoken/pkcs11c.c:1438,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:1440,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:1445,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/pkcs11c.c:1446,1
    - Dst: memcpy
      Src: /src/nss/lib/softoken/pkcs11c.c:1450,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:1451,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/pkcs11c.c:1456,1
    - Dst: memcpy
      Src: /src/nss/lib/softoken/pkcs11c.c:1466,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:1486,1
    - Dst: AESKeyWrap_CreateContext
      Src: /src/nss/lib/softoken/pkcs11c.c:1491,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:1495,1
    - Dst: sftk_FreeContext
      Src: /src/nss/lib/softoken/pkcs11c.c:1516,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11c.c:1517,1
    - Dst: sftk_SetContextByType
      Src: /src/nss/lib/softoken/pkcs11c.c:1520,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11c.c:1521,1
    CyclomaticComplexity: 180
    EdgeCount: 180
    ICount: 517
    argCount: 7
    argNames:
    - hSession
    - pMechanism
    - hKey
    - mechUsage
    - keyUsage
    - contextType
    - isEncrypt
    argTypes:
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_OBJECT_HANDLE
    - CK_ATTRIBUTE_TYPE
    - CK_ATTRIBUTE_TYPE
    - SFTKContextType
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1523
      start: 855
    functionDepth: 3
    functionLinenumber: 855
    functionLinenumberEnd: 1523
    functionName: sftk_CryptInit
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - sftk_MechAllowsOperation
    - sftk_SessionFromHandle
    - sftk_aes_mode
    - SEED_CreateContext
    - PORT_ZNew
    - sftk_FreeContext
    - RC4_CreateContext
    - sftk_InitGeneric
    - Camellia_CreateContext
    - memcpy
    - PORT_Memcpy
    - AESKeyWrap_CreateContext
    - sftk_ValidateOaepParams
    - sftk_MapCryptError
    - memset
    - nsslowkey_PublicModulusLen
    - DES_CreateContext
    - sftk_SetContextByType
    - AES_CreateContext
    - PORT_ZFree
    - sftk_FreeAttribute
    - BAD_PARAM_CAST
    - nsslowkey_PrivateModulusLen
    - RC2_CreateContext
    - sftk_cdmf2des
    - PORT_Alloc
    - sftk_freeRSAOAEPInfo
    - sftk_FreeSession
    - sftk_FindAttribute
    - sftk_GetPubKey
    - sftk_ChaCha20Poly1305_CreateContext
    - PORT_Free
    - PORT_GetError
    - sftk_GetPrivKey
    - RC5_CreateContext
    - PORT_New
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftk_CryptInit(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR
      pMechanism,\n               CK_OBJECT_HANDLE hKey,\n               CK_ATTRIBUTE_TYPE
      mechUsage, CK_ATTRIBUTE_TYPE keyUsage,\n               SFTKContextType contextType,
      PRBool isEncrypt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11c.c:1530,1
    - Dst: sftk_CryptInit
      Src: /src/nss/lib/softoken/pkcs11c.c:1531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hSession
    - pMechanism
    - hKey
    argTypes:
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1533
      start: 1526
    functionDepth: 4
    functionLinenumber: 1526
    functionLinenumberEnd: 1533
    functionName: NSC_EncryptInit
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - CHECK_FORK
    - sftk_CryptInit
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_EncryptInit(CK_SESSION_HANDLE hSession,\n                CK_MECHANISM_PTR
      pMechanism, CK_OBJECT_HANDLE hKey)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11c.c:1548,1
    - Dst: sftk_GetContext
      Src: /src/nss/lib/softoken/pkcs11c.c:1551,1
    - Dst: sftk_MapCryptError
      Src: /src/nss/lib/softoken/pkcs11c.c:1589,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/pkcs11c.c:1589,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11c.c:1597,1
    - Dst: sftk_MapCryptError
      Src: /src/nss/lib/softoken/pkcs11c.c:1613,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/pkcs11c.c:1613,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 47
    argCount: 5
    argNames:
    - hSession
    - pPart
    - ulPartLen
    - pEncryptedPart
    - pulEncryptedPartLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1617
      start: 1536
    functionDepth: 2
    functionLinenumber: 1536
    functionLinenumberEnd: 1617
    functionName: NSC_EncryptUpdate
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - PORT_Memcpy
    - PORT_GetError
    - sftk_MapCryptError
    - sftk_GetContext
    - CHECK_FORK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_EncryptUpdate(CK_SESSION_HANDLE hSession,\n                  CK_BYTE_PTR
      pPart, CK_ULONG ulPartLen, CK_BYTE_PTR pEncryptedPart,\n                  CK_ULONG_PTR
      pulEncryptedPartLen)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11c.c:1632,1
    - Dst: sftk_GetContext
      Src: /src/nss/lib/softoken/pkcs11c.c:1635,1
    - Dst: sftk_TerminateOp
      Src: /src/nss/lib/softoken/pkcs11c.c:1664,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11c.c:1665,1
    - Dst: sftk_MapCryptError
      Src: /src/nss/lib/softoken/pkcs11c.c:1666,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/pkcs11c.c:1666,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - hSession
    - pLastEncryptedPart
    - pulLastEncryptedPartLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1667
      start: 1620
    functionDepth: 2
    functionLinenumber: 1620
    functionLinenumberEnd: 1667
    functionName: NSC_EncryptFinal
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - sftk_FreeSession
    - sftk_TerminateOp
    - PORT_GetError
    - sftk_MapCryptError
    - sftk_GetContext
    - CHECK_FORK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_EncryptFinal(CK_SESSION_HANDLE hSession,\n                 CK_BYTE_PTR
      pLastEncryptedPart, CK_ULONG_PTR pulLastEncryptedPartLen)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11c.c:1688,1
    - Dst: sftk_GetContext
      Src: /src/nss/lib/softoken/pkcs11c.c:1691,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11c.c:1706,1
    - Dst: NSC_EncryptUpdate
      Src: /src/nss/lib/softoken/pkcs11c.c:1707,1
    - Dst: NSC_EncryptFinal
      Src: /src/nss/lib/softoken/pkcs11c.c:1715,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/pkcs11c.c:1724,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/softoken/pkcs11c.c:1729,1
    - Dst: memcpy
      Src: /src/nss/lib/softoken/pkcs11c.c:1731,1
    - Dst: memset
      Src: /src/nss/lib/softoken/pkcs11c.c:1732,1
    - Dst: sftk_MapCryptError
      Src: /src/nss/lib/softoken/pkcs11c.c:1743,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/pkcs11c.c:1743,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/softoken/pkcs11c.c:1745,1
    - Dst: sftk_TerminateOp
      Src: /src/nss/lib/softoken/pkcs11c.c:1747,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11c.c:1749,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 57
    argCount: 5
    argNames:
    - hSession
    - pData
    - ulDataLen
    - pEncryptedData
    - pulEncryptedDataLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1754
      start: 1670
    functionDepth: 3
    functionLinenumber: 1670
    functionLinenumberEnd: 1754
    functionName: NSC_Encrypt
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - sftk_FreeSession
    - memcpy
    - PORT_ZFree
    - sftk_TerminateOp
    - NSC_EncryptUpdate
    - PORT_ZAlloc
    - PORT_GetError
    - sftk_MapCryptError
    - memset
    - sftk_GetContext
    - CHECK_FORK
    - NSC_EncryptFinal
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_Encrypt(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData,\n
      \           CK_ULONG ulDataLen, CK_BYTE_PTR pEncryptedData,\n            CK_ULONG_PTR
      pulEncryptedDataLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11c.c:1765,1
    - Dst: sftk_CryptInit
      Src: /src/nss/lib/softoken/pkcs11c.c:1766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hSession
    - pMechanism
    - hKey
    argTypes:
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1768
      start: 1761
    functionDepth: 4
    functionLinenumber: 1761
    functionLinenumberEnd: 1768
    functionName: NSC_DecryptInit
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - CHECK_FORK
    - sftk_CryptInit
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_DecryptInit(CK_SESSION_HANDLE hSession,\n                CK_MECHANISM_PTR
      pMechanism, CK_OBJECT_HANDLE hKey)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11c.c:1783,1
    - Dst: sftk_GetContext
      Src: /src/nss/lib/softoken/pkcs11c.c:1786,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/pkcs11c.c:1791,1
    - Dst: sftk_MapDecryptError
      Src: /src/nss/lib/softoken/pkcs11c.c:1827,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/pkcs11c.c:1827,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11c.c:1832,1
    - Dst: sftk_MapDecryptError
      Src: /src/nss/lib/softoken/pkcs11c.c:1842,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/pkcs11c.c:1842,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 5
    argNames:
    - hSession
    - pEncryptedPart
    - ulEncryptedPartLen
    - pPart
    - pulPartLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1846
      start: 1771
    functionDepth: 2
    functionLinenumber: 1771
    functionLinenumberEnd: 1846
    functionName: NSC_DecryptUpdate
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_Memcpy
    - sftk_MapDecryptError
    - PORT_GetError
    - sftk_GetContext
    - CHECK_FORK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_DecryptUpdate(CK_SESSION_HANDLE hSession,\n                  CK_BYTE_PTR
      pEncryptedPart, CK_ULONG ulEncryptedPartLen,\n                  CK_BYTE_PTR
      pPart, CK_ULONG_PTR pulPartLen)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11c.c:1860,1
    - Dst: sftk_GetContext
      Src: /src/nss/lib/softoken/pkcs11c.c:1863,1
    - Dst: sftk_MapDecryptError
      Src: /src/nss/lib/softoken/pkcs11c.c:1884,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/pkcs11c.c:1884,1
    - Dst: sftk_CheckCBCPadding
      Src: /src/nss/lib/softoken/pkcs11c.c:1887,1
    - Dst: PORT_CT_SEL
      Src: /src/nss/lib/softoken/pkcs11c.c:1890,1
    - Dst: sftk_CKRVToMask
      Src: /src/nss/lib/softoken/pkcs11c.c:1890,1
    - Dst: sftk_TerminateOp
      Src: /src/nss/lib/softoken/pkcs11c.c:1895,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11c.c:1897,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 3
    argNames:
    - hSession
    - pLastPart
    - pulLastPartLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1899
      start: 1849
    functionDepth: 2
    functionLinenumber: 1849
    functionLinenumberEnd: 1899
    functionName: NSC_DecryptFinal
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - sftk_FreeSession
    - PORT_CT_SEL
    - sftk_TerminateOp
    - sftk_MapDecryptError
    - PORT_GetError
    - sftk_GetContext
    - CHECK_FORK
    - sftk_CKRVToMask
    - sftk_CheckCBCPadding
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_DecryptFinal(CK_SESSION_HANDLE hSession,\n                 CK_BYTE_PTR
      pLastPart, CK_ULONG_PTR pulLastPartLen)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11c.c:1915,1
    - Dst: sftk_GetContext
      Src: /src/nss/lib/softoken/pkcs11c.c:1918,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11c.c:1932,1
    - Dst: NSC_DecryptUpdate
      Src: /src/nss/lib/softoken/pkcs11c.c:1933,1
    - Dst: NSC_DecryptFinal
      Src: /src/nss/lib/softoken/pkcs11c.c:1940,1
    - Dst: PORT_CT_SEL
      Src: /src/nss/lib/softoken/pkcs11c.c:1942,1
    - Dst: sftk_CKRVToMask
      Src: /src/nss/lib/softoken/pkcs11c.c:1942,1
    - Dst: sftk_MapDecryptError
      Src: /src/nss/lib/softoken/pkcs11c.c:1952,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/pkcs11c.c:1952,1
    - Dst: sftk_CheckCBCPadding
      Src: /src/nss/lib/softoken/pkcs11c.c:1956,1
    - Dst: PORT_CT_SEL
      Src: /src/nss/lib/softoken/pkcs11c.c:1959,1
    - Dst: sftk_CKRVToMask
      Src: /src/nss/lib/softoken/pkcs11c.c:1959,1
    - Dst: sftk_TerminateOp
      Src: /src/nss/lib/softoken/pkcs11c.c:1964,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11c.c:1966,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 5
    argNames:
    - hSession
    - pEncryptedData
    - ulEncryptedDataLen
    - pData
    - pulDataLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1968
      start: 1902
    functionDepth: 3
    functionLinenumber: 1902
    functionLinenumberEnd: 1968
    functionName: NSC_Decrypt
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - sftk_FreeSession
    - NSC_DecryptUpdate
    - PORT_CT_SEL
    - sftk_TerminateOp
    - sftk_MapDecryptError
    - PORT_GetError
    - NSC_DecryptFinal
    - sftk_GetContext
    - CHECK_FORK
    - sftk_CKRVToMask
    - sftk_CheckCBCPadding
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_Decrypt(CK_SESSION_HANDLE hSession,\n            CK_BYTE_PTR
      pEncryptedData, CK_ULONG ulEncryptedDataLen, CK_BYTE_PTR pData,\n            CK_ULONG_PTR
      pulDataLen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11c.c:1983,1
    - Dst: sftk_SessionFromHandle
      Src: /src/nss/lib/softoken/pkcs11c.c:1985,1
    - Dst: sftk_InitGeneric
      Src: /src/nss/lib/softoken/pkcs11c.c:1988,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11c.c:1991,1
    - Dst: INIT_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:2013,1
    - Dst: INIT_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:2014,1
    - Dst: INIT_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:2015,1
    - Dst: INIT_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:2016,1
    - Dst: INIT_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:2017,1
    - Dst: INIT_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:2018,1
    - Dst: INIT_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:2019,1
    - Dst: INIT_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:2020,1
    - Dst: INIT_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:2021,1
    - Dst: INIT_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:2022,1
    - Dst: INIT_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:2023,1
    - Dst: sftk_FreeContext
      Src: /src/nss/lib/softoken/pkcs11c.c:2031,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11c.c:2032,1
    - Dst: sftk_SetContextByType
      Src: /src/nss/lib/softoken/pkcs11c.c:2035,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11c.c:2036,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 2
    argNames:
    - hSession
    - pMechanism
    argTypes:
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2038
      start: 1975
    functionDepth: 2
    functionLinenumber: 1975
    functionLinenumberEnd: 2038
    functionName: NSC_DigestInit
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - sftk_FreeSession
    - sftk_SessionFromHandle
    - sftk_FreeContext
    - sftk_InitGeneric
    - CHECK_FORK
    - INIT_MECH
    - sftk_SetContextByType
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_DigestInit(CK_SESSION_HANDLE hSession,\n               CK_MECHANISM_PTR
      pMechanism)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mmm
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2011
      start: 1995
    functionDepth: 0
    functionLinenumber: 1995
    functionLinenumberEnd: 2011
    functionName: INIT_MECH
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INIT_MECH(mmm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11c.c:2052,1
    - Dst: sftk_GetContext
      Src: /src/nss/lib/softoken/pkcs11c.c:2055,1
    - Dst: sftk_TerminateOp
      Src: /src/nss/lib/softoken/pkcs11c.c:2079,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11c.c:2081,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 5
    argNames:
    - hSession
    - pData
    - ulDataLen
    - pDigest
    - pulDigestLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2083
      start: 2041
    functionDepth: 2
    functionLinenumber: 2041
    functionLinenumberEnd: 2083
    functionName: NSC_Digest
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - sftk_GetContext
    - sftk_FreeSession
    - CHECK_FORK
    - sftk_TerminateOp
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_Digest(CK_SESSION_HANDLE hSession,\n           CK_BYTE_PTR
      pData, CK_ULONG ulDataLen, CK_BYTE_PTR pDigest,\n           CK_ULONG_PTR pulDigestLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11c.c:2093,1
    - Dst: sftk_GetContext
      Src: /src/nss/lib/softoken/pkcs11c.c:2096,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - hSession
    - pPart
    - ulPartLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2112
      start: 2086
    functionDepth: 2
    functionLinenumber: 2086
    functionLinenumberEnd: 2112
    functionName: NSC_DigestUpdate
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - sftk_GetContext
    - CHECK_FORK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_DigestUpdate(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart,\n
      \                CK_ULONG ulPartLen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11c.c:2125,1
    - Dst: sftk_GetContext
      Src: /src/nss/lib/softoken/pkcs11c.c:2128,1
    - Dst: sftk_TerminateOp
      Src: /src/nss/lib/softoken/pkcs11c.c:2135,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11c.c:2140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - hSession
    - pDigest
    - pulDigestLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2142
      start: 2115
    functionDepth: 2
    functionLinenumber: 2115
    functionLinenumberEnd: 2142
    functionName: NSC_DigestFinal
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - sftk_GetContext
    - sftk_FreeSession
    - CHECK_FORK
    - sftk_TerminateOp
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_DigestFinal(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pDigest,\n
      \               CK_ULONG_PTR pulDigestLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mmm
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2163
      start: 2148
    functionDepth: 0
    functionLinenumber: 2148
    functionLinenumberEnd: 2163
    functionName: DOSUB
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DOSUB(mmm)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/softoken/pkcs11c.c:2187,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 6
    argNames:
    - copyLen
    - out
    - outLength
    - maxLength
    - hashResult
    - hashResultLength
    argTypes:
    - void*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2192
      start: 2172
    functionDepth: 1
    functionLinenumber: 2172
    functionLinenumberEnd: 2192
    functionName: sftk_SignCopy
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sftk_SignCopy(\n    void *copyLen,\n    unsigned char *out,
      unsigned int *outLength,\n    unsigned int maxLength,\n    const unsigned char
      *hashResult,\n    unsigned int hashResultLength)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSS_SecureMemcmp
      Src: /src/nss/lib/softoken/pkcs11c.c:2199,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/pkcs11c.c:2203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - copyLen
    - sig
    - sigLen
    - hash
    - hashLen
    argTypes:
    - void*
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2205
      start: 2195
    functionDepth: 1
    functionLinenumber: 2195
    functionLinenumberEnd: 2205
    functionName: sftk_HMACCmp
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - NSS_SecureMemcmp
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sftk_HMACCmp(void *copyLen, const unsigned char *sig, unsigned
      int sigLen,\n             const unsigned char *hash, unsigned int hashLen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sftk_isFIPS
      Src: /src/nss/lib/softoken/pkcs11c.c:2217,1
    - Dst: sftk_MAC_Create
      Src: /src/nss/lib/softoken/pkcs11c.c:2220,1
    - Dst: sftk_MAC_DestroyContext
      Src: /src/nss/lib/softoken/pkcs11c.c:2231,1
    - Dst: PORT_New
      Src: /src/nss/lib/softoken/pkcs11c.c:2241,1
    - Dst: sftk_MAC_DestroyContext
      Src: /src/nss/lib/softoken/pkcs11c.c:2243,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 4
    argNames:
    - mech
    - session
    - key
    - mac_size
    argTypes:
    - CK_MECHANISM_TYPE
    - SFTKSessionContext*
    - SFTKObject*
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2258
      start: 2210
    functionDepth: 2
    functionLinenumber: 2210
    functionLinenumberEnd: 2258
    functionName: sftk_doMACInit
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - sftk_isFIPS
    - sftk_MAC_DestroyContext
    - sftk_MAC_Create
    - PORT_New
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftk_doMACInit(CK_MECHANISM_TYPE mech, SFTKSessionContext *session,\n
      \              SFTKObject *key, CK_ULONG mac_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SFTKSSLMACInfo*::begin
      Src: /src/nss/lib/softoken/pkcs11c.c:2300,1
    - Dst: SFTKSSLMACInfo*::update
      Src: /src/nss/lib/softoken/pkcs11c.c:2301,1
    - Dst: SFTKSSLMACInfo*::update
      Src: /src/nss/lib/softoken/pkcs11c.c:2302,1
    - Dst: SFTKSSLMACInfo*::update
      Src: /src/nss/lib/softoken/pkcs11c.c:2303,1
    - Dst: SFTKSSLMACInfo*::end
      Src: /src/nss/lib/softoken/pkcs11c.c:2304,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11c.c:2305,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/pkcs11c.c:2306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 6
    argNames:
    - ctx
    - sig
    - sigLen
    - maxLen
    - hash
    - hashLen
    argTypes:
    - void*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2309
      start: 2292
    functionDepth: 0
    functionLinenumber: 2292
    functionLinenumberEnd: 2309
    functionName: sftk_SSLMACSign
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - PORT_Memcpy
    - SFTKSSLMACInfo*::end
    - SFTKSSLMACInfo*::update
    - PORT_Memset
    - SFTKSSLMACInfo*::begin
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sftk_SSLMACSign(void *ctx, unsigned char *sig, unsigned
      int *sigLen,\n                unsigned int maxLen, const unsigned char *hash,
      unsigned int hashLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SFTKSSLMACInfo*::begin
      Src: /src/nss/lib/softoken/pkcs11c.c:2320,1
    - Dst: SFTKSSLMACInfo*::update
      Src: /src/nss/lib/softoken/pkcs11c.c:2321,1
    - Dst: SFTKSSLMACInfo*::update
      Src: /src/nss/lib/softoken/pkcs11c.c:2322,1
    - Dst: SFTKSSLMACInfo*::update
      Src: /src/nss/lib/softoken/pkcs11c.c:2323,1
    - Dst: SFTKSSLMACInfo*::end
      Src: /src/nss/lib/softoken/pkcs11c.c:2324,1
    - Dst: NSS_SecureMemcmp
      Src: /src/nss/lib/softoken/pkcs11c.c:2325,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/pkcs11c.c:2326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 5
    argNames:
    - ctx
    - sig
    - sigLen
    - hash
    - hashLen
    argTypes:
    - void*
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2328
      start: 2311
    functionDepth: 1
    functionLinenumber: 2311
    functionLinenumberEnd: 2328
    functionName: sftk_SSLMACVerify
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - SFTKSSLMACInfo*::end
    - NSS_SecureMemcmp
    - SFTKSSLMACInfo*::update
    - PORT_Memset
    - SFTKSSLMACInfo*::begin
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sftk_SSLMACVerify(void *ctx, const unsigned char *sig, unsigned
      int sigLen,\n                  const unsigned char *hash, unsigned int hashLen)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sftk_doSubSHA1
      Src: /src/nss/lib/softoken/pkcs11c.c:2344,1
    - Dst: sftk_doSubMD5
      Src: /src/nss/lib/softoken/pkcs11c.c:2350,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:2358,1
    - Dst: SFTKSessionContext*::hashUpdate
      Src: /src/nss/lib/softoken/pkcs11c.c:2362,1
    - Dst: SFTKSessionContext*::hashUpdate
      Src: /src/nss/lib/softoken/pkcs11c.c:2364,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/pkcs11c.c:2365,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:2367,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11c.c:2373,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:2380,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 41
    argCount: 4
    argNames:
    - context
    - oid
    - key
    - mac_size
    argTypes:
    - SFTKSessionContext*
    - SECOidTag
    - SFTKObject*
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2387
      start: 2333
    functionDepth: 1
    functionLinenumber: 2333
    functionLinenumberEnd: 2387
    functionName: sftk_doSSLMACInit
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - SFTKSessionContext*::hashUpdate
    - sftk_FindAttribute
    - PORT_Memcpy
    - sftk_FreeAttribute
    - sftk_doSubMD5
    - sftk_doSubSHA1
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftk_doSSLMACInit(SFTKSessionContext *context, SECOidTag oid,\n
      \                 SFTKObject *key, CK_ULONG mac_size)"
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: BAD_PARAM_CAST
      Src: /src/nss/lib/softoken/pkcs11c.c:2428,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/pkcs11c.c:2440,1
    - Dst: BAD_PARAM_CAST
      Src: /src/nss/lib/softoken/pkcs11c.c:2450,1
    - Dst: BAD_PARAM_CAST
      Src: /src/nss/lib/softoken/pkcs11c.c:2459,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/pkcs11c.c:2469,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/pkcs11c.c:2481,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/pkcs11c.c:2491,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/pkcs11c.c:2501,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/pkcs11c.c:2512,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/pkcs11c.c:2523,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/pkcs11c.c:2533,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/pkcs11c.c:2544,1
    - Dst: sftk_aes_xcbc_new_keys
      Src: /src/nss/lib/softoken/pkcs11c.c:2553,1
    - Dst: sftk_CryptInit
      Src: /src/nss/lib/softoken/pkcs11c.c:2573,1
    - Dst: sftk_GetContext
      Src: /src/nss/lib/softoken/pkcs11c.c:2578,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/pkcs11c.c:2581,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11c.c:2589,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11c.c:2590,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/pkcs11c.c:2591,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/pkcs11c.c:2592,1
    - Dst: NSC_DestroyObject
      Src: /src/nss/lib/softoken/pkcs11c.c:2594,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/pkcs11c.c:2599,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/pkcs11c.c:2600,1
    - Dst: NSC_DestroyObject
      Src: /src/nss/lib/softoken/pkcs11c.c:2601,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 146
    argCount: 5
    argNames:
    - hSession
    - pMechanism
    - hKey
    - keyUsage
    - contextType
    argTypes:
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_OBJECT_HANDLE
    - CK_ATTRIBUTE_TYPE
    - SFTKContextType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2604
      start: 2398
    functionDepth: 5
    functionLinenumber: 2398
    functionLinenumberEnd: 2604
    functionName: sftk_InitCBCMac
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_Memcpy
    - sftk_aes_xcbc_new_keys
    - sftk_GetContext
    - NSC_DestroyObject
    - PORT_Memset
    - BAD_PARAM_CAST
    - sftk_CryptInit
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftk_InitCBCMac(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR
      pMechanism,\n                CK_OBJECT_HANDLE hKey, CK_ATTRIBUTE_TYPE keyUsage,\n
      \               SFTKContextType contextType)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/pkcs11c.c:2615,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/pkcs11c.c:2617,1
    - Dst: RSA_HashSign
      Src: /src/nss/lib/softoken/pkcs11c.c:2621,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - ctx
    - sig
    - sigLen
    - maxLen
    - hash
    - hashLen
    argTypes:
    - void*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2623
      start: 2609
    functionDepth: 1
    functionLinenumber: 2609
    functionLinenumberEnd: 2623
    functionName: sftk_RSAHashSign
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - RSA_HashSign
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sftk_RSAHashSign(void *ctx, unsigned char *sig,\n                 unsigned
      int *sigLen, unsigned int maxLen,\n                 const unsigned char *hash,
      unsigned int hashLen)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/pkcs11c.c:2666,1
    - Dst: SGN_CreateDigestInfo
      Src: /src/nss/lib/softoken/pkcs11c.c:2672,1
    - Dst: DER_Encode
      Src: /src/nss/lib/softoken/pkcs11c.c:2678,1
    - Dst: RSA_Sign
      Src: /src/nss/lib/softoken/pkcs11c.c:2687,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/pkcs11c.c:2689,1
    - Dst: SGN_DestroyDigestInfo
      Src: /src/nss/lib/softoken/pkcs11c.c:2694,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/pkcs11c.c:2696,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 7
    argNames:
    - hashOid
    - key
    - sig
    - sigLen
    - maxLen
    - hash
    - hashLen
    argTypes:
    - SECOidTag
    - NSSLOWKEYPrivateKey*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2699
      start: 2654
    functionDepth: 0
    functionLinenumber: 2654
    functionLinenumberEnd: 2699
    functionName: RSA_HashSign
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 3
    functionsReached:
    - RSA_Sign
    - PORT_NewArena
    - DER_Encode
    - PORT_FreeArena
    - SGN_DestroyDigestInfo
    - PORT_GetError
    - SGN_CreateDigestInfo
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus RSA_HashSign(SECOidTag hashOid, NSSLOWKEYPrivateKey *key,\n
      \            unsigned char *sig, unsigned int *sigLen, unsigned int maxLen,\n
      \            const unsigned char *hash, unsigned int hashLen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/pkcs11c.c:2709,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/pkcs11c.c:2711,1
    - Dst: RSA_Sign
      Src: /src/nss/lib/softoken/pkcs11c.c:2715,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/pkcs11c.c:2717,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 6
    argNames:
    - ctx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - void*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2721
      start: 2701
    functionDepth: 0
    functionLinenumber: 2701
    functionLinenumberEnd: 2721
    functionName: sftk_RSASign
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - PORT_GetError
    - RSA_Sign
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sftk_RSASign(void *ctx, unsigned char *output,\n             unsigned
      int *outputLen, unsigned int maxOutputLen,\n             const unsigned char
      *input, unsigned int inputLen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/pkcs11c.c:2731,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/pkcs11c.c:2733,1
    - Dst: RSA_SignRaw
      Src: /src/nss/lib/softoken/pkcs11c.c:2737,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/pkcs11c.c:2739,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 6
    argNames:
    - ctx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - void*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2743
      start: 2723
    functionDepth: 0
    functionLinenumber: 2723
    functionLinenumberEnd: 2743
    functionName: sftk_RSASignRaw
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - PORT_GetError
    - RSA_SignRaw
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sftk_RSASignRaw(void *ctx, unsigned char *output,\n                unsigned
      int *outputLen, unsigned int maxOutputLen,\n                const unsigned char
      *input, unsigned int inputLen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/pkcs11c.c:2756,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/pkcs11c.c:2758,1
    - Dst: sftk_GetHashTypeFromMechanism
      Src: /src/nss/lib/softoken/pkcs11c.c:2762,1
    - Dst: sftk_GetHashTypeFromMechanism
      Src: /src/nss/lib/softoken/pkcs11c.c:2763,1
    - Dst: RSA_SignPSS
      Src: /src/nss/lib/softoken/pkcs11c.c:2765,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/pkcs11c.c:2767,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 6
    argNames:
    - ctx
    - sig
    - sigLen
    - maxLen
    - hash
    - hashLen
    argTypes:
    - void*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2771
      start: 2745
    functionDepth: 1
    functionLinenumber: 2745
    functionLinenumberEnd: 2771
    functionName: sftk_RSASignPSS
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - RSA_SignPSS
    - sftk_GetHashTypeFromMechanism
    - PORT_GetError
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sftk_RSASignPSS(void *ctx, unsigned char *sig,\n                unsigned
      int *sigLen, unsigned int maxLen,\n                const unsigned char *hash,
      unsigned int hashLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DSA_VerifyDigest
      Src: /src/nss/lib/softoken/pkcs11c.c:2780,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - sigBuf
    - sigLen
    - dataBuf
    - dataLen
    argTypes:
    - void*
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2781
      start: 2773
    functionDepth: 0
    functionLinenumber: 2773
    functionLinenumberEnd: 2781
    functionName: nsc_DSA_Verify_Stub
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - DSA_VerifyDigest
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus nsc_DSA_Verify_Stub(void *ctx, const unsigned char *sigBuf,
      unsigned int sigLen,\n                    const unsigned char *dataBuf, unsigned
      int dataLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DSA_SignDigest
      Src: /src/nss/lib/softoken/pkcs11c.c:2791,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/pkcs11c.c:2792,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 6
    argNames:
    - ctx
    - sigBuf
    - sigLen
    - maxSigLen
    - dataBuf
    - dataLen
    argTypes:
    - void*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2797
      start: 2783
    functionDepth: 0
    functionLinenumber: 2783
    functionLinenumberEnd: 2797
    functionName: nsc_DSA_Sign_Stub
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - PORT_GetError
    - DSA_SignDigest
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus nsc_DSA_Sign_Stub(void *ctx, unsigned char *sigBuf,\n                  unsigned
      int *sigLen, unsigned int maxSigLen,\n                  const unsigned char
      *dataBuf, unsigned int dataLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ECDSA_VerifyDigest
      Src: /src/nss/lib/softoken/pkcs11c.c:2806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - sigBuf
    - sigLen
    - dataBuf
    - dataLen
    argTypes:
    - void*
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2807
      start: 2799
    functionDepth: 0
    functionLinenumber: 2799
    functionLinenumberEnd: 2807
    functionName: nsc_ECDSAVerifyStub
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - ECDSA_VerifyDigest
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus nsc_ECDSAVerifyStub(void *ctx, const unsigned char *sigBuf,
      unsigned int sigLen,\n                    const unsigned char *dataBuf, unsigned
      int dataLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ECDSA_SignDigest
      Src: /src/nss/lib/softoken/pkcs11c.c:2818,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/pkcs11c.c:2819,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 6
    argNames:
    - ctx
    - sigBuf
    - sigLen
    - maxSigLen
    - dataBuf
    - dataLen
    argTypes:
    - void*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2824
      start: 2809
    functionDepth: 0
    functionLinenumber: 2809
    functionLinenumberEnd: 2824
    functionName: nsc_ECDSASignStub
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - PORT_GetError
    - ECDSA_SignDigest
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus nsc_ECDSASignStub(void *ctx, unsigned char *sigBuf,\n                  unsigned
      int *sigLen, unsigned int maxSigLen,\n                  const unsigned char
      *dataBuf, unsigned int dataLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ED_VerifyMessage
      Src: /src/nss/lib/softoken/pkcs11c.c:2833,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ctx
    - sigBuf
    - sigLen
    - dataBuf
    - dataLen
    argTypes:
    - void*
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2834
      start: 2826
    functionDepth: 0
    functionLinenumber: 2826
    functionLinenumberEnd: 2834
    functionName: nsc_EDDSAVerifyStub
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - ED_VerifyMessage
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus nsc_EDDSAVerifyStub(void *ctx, const unsigned char *sigBuf,
      unsigned int sigLen,\n                    const unsigned char *dataBuf, unsigned
      int dataLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ED_SignMessage
      Src: /src/nss/lib/softoken/pkcs11c.c:2845,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/pkcs11c.c:2846,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 6
    argNames:
    - ctx
    - sigBuf
    - sigLen
    - maxSigLen
    - dataBuf
    - dataLen
    argTypes:
    - void*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2851
      start: 2836
    functionDepth: 0
    functionLinenumber: 2836
    functionLinenumberEnd: 2851
    functionName: nsc_EDDSASignStub
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - PORT_GetError
    - ED_SignMessage
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus nsc_EDDSASignStub(void *ctx, unsigned char *sigBuf,\n                  unsigned
      int *sigLen, unsigned int maxSigLen,\n                  const unsigned char
      *dataBuf, unsigned int dataLen)"
  - BBCount: 51
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11c.c:2888,1
    - Dst: sftk_InitCBCMac
      Src: /src/nss/lib/softoken/pkcs11c.c:2891,1
    - Dst: sftk_SessionFromHandle
      Src: /src/nss/lib/softoken/pkcs11c.c:2896,1
    - Dst: sftk_InitGeneric
      Src: /src/nss/lib/softoken/pkcs11c.c:2899,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11c.c:2902,1
    - Dst: INIT_RSA_SIGN_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:2924,1
    - Dst: INIT_RSA_SIGN_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:2925,1
    - Dst: INIT_RSA_SIGN_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:2926,1
    - Dst: INIT_RSA_SIGN_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:2927,1
    - Dst: INIT_RSA_SIGN_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:2928,1
    - Dst: INIT_RSA_SIGN_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:2929,1
    - Dst: INIT_RSA_SIGN_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:2930,1
    - Dst: sftk_GetPrivKey
      Src: /src/nss/lib/softoken/pkcs11c.c:2943,1
    - Dst: nsslowkey_PrivateModulusLen
      Src: /src/nss/lib/softoken/pkcs11c.c:2960,1
    - Dst: INIT_RSA_PSS_SIG_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:2978,1
    - Dst: INIT_RSA_PSS_SIG_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:2979,1
    - Dst: INIT_RSA_PSS_SIG_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:2980,1
    - Dst: INIT_RSA_PSS_SIG_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:2981,1
    - Dst: INIT_RSA_PSS_SIG_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:2982,1
    - Dst: sftk_ValidatePssParams
      Src: /src/nss/lib/softoken/pkcs11c.c:2991,1
    - Dst: PORT_New
      Src: /src/nss/lib/softoken/pkcs11c.c:2995,1
    - Dst: sftk_GetPrivKey
      Src: /src/nss/lib/softoken/pkcs11c.c:3002,1
    - Dst: nsslowkey_PrivateModulusLen
      Src: /src/nss/lib/softoken/pkcs11c.c:3010,1
    - Dst: INIT_DSA_SIG_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:3020,1
    - Dst: INIT_DSA_SIG_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:3021,1
    - Dst: INIT_DSA_SIG_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:3022,1
    - Dst: INIT_DSA_SIG_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:3023,1
    - Dst: INIT_DSA_SIG_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:3024,1
    - Dst: sftk_GetPrivKey
      Src: /src/nss/lib/softoken/pkcs11c.c:3031,1
    - Dst: INIT_ECDSA_SIG_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:3049,1
    - Dst: INIT_ECDSA_SIG_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:3050,1
    - Dst: INIT_ECDSA_SIG_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:3051,1
    - Dst: INIT_ECDSA_SIG_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:3052,1
    - Dst: INIT_ECDSA_SIG_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:3053,1
    - Dst: sftk_GetPrivKey
      Src: /src/nss/lib/softoken/pkcs11c.c:3060,1
    - Dst: sftk_GetPrivKey
      Src: /src/nss/lib/softoken/pkcs11c.c:3083,1
    - Dst: INIT_HMAC_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:3110,1
    - Dst: INIT_HMAC_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:3111,1
    - Dst: INIT_HMAC_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:3112,1
    - Dst: INIT_HMAC_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:3113,1
    - Dst: INIT_HMAC_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:3114,1
    - Dst: INIT_HMAC_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:3115,1
    - Dst: INIT_HMAC_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:3116,1
    - Dst: INIT_HMAC_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:3117,1
    - Dst: INIT_HMAC_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:3118,1
    - Dst: INIT_HMAC_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:3119,1
    - Dst: INIT_HMAC_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:3120,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/pkcs11c.c:3123,1
    - Dst: sftk_doMACInit
      Src: /src/nss/lib/softoken/pkcs11c.c:3128,1
    - Dst: sftk_doMACInit
      Src: /src/nss/lib/softoken/pkcs11c.c:3131,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/pkcs11c.c:3134,1
    - Dst: sftk_doSSLMACInit
      Src: /src/nss/lib/softoken/pkcs11c.c:3139,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/pkcs11c.c:3143,1
    - Dst: sftk_doSSLMACInit
      Src: /src/nss/lib/softoken/pkcs11c.c:3148,1
    - Dst: sftk_TLSPRFInit
      Src: /src/nss/lib/softoken/pkcs11c.c:3152,1
    - Dst: sftk_GetHashTypeFromMechanism
      Src: /src/nss/lib/softoken/pkcs11c.c:3174,1
    - Dst: sftk_TLSPRFInit
      Src: /src/nss/lib/softoken/pkcs11c.c:3189,1
    - Dst: SFTKSessionContext*::hashUpdate
      Src: /src/nss/lib/softoken/pkcs11c.c:3192,1
    - Dst: sftk_TLSPRFInit
      Src: /src/nss/lib/softoken/pkcs11c.c:3197,1
    - Dst: sftk_HMACConstantTime_New
      Src: /src/nss/lib/softoken/pkcs11c.c:3202,1
    - Dst: PORT_New
      Src: /src/nss/lib/softoken/pkcs11c.c:3209,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/pkcs11c.c:3211,1
    - Dst: sftk_SSLv3MACConstantTime_New
      Src: /src/nss/lib/softoken/pkcs11c.c:3232,1
    - Dst: PORT_New
      Src: /src/nss/lib/softoken/pkcs11c.c:3239,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/pkcs11c.c:3241,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/pkcs11c.c:3267,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/softoken/pkcs11c.c:3269,1
    - Dst: sftk_FreeContext
      Src: /src/nss/lib/softoken/pkcs11c.c:3270,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11c.c:3271,1
    - Dst: sftk_SetContextByType
      Src: /src/nss/lib/softoken/pkcs11c.c:3274,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11c.c:3275,1
    CyclomaticComplexity: 78
    EdgeCount: 78
    ICount: 288
    argCount: 3
    argNames:
    - hSession
    - pMechanism
    - hKey
    argTypes:
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3277
      start: 2875
    functionDepth: 6
    functionLinenumber: 2875
    functionLinenumberEnd: 3277
    functionName: NSC_SignInit
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 1
    functionsReached:
    - sftk_SessionFromHandle
    - sftk_FreeContext
    - sftk_InitGeneric
    - INIT_HMAC_MECH
    - sftk_doMACInit
    - sftk_ValidatePssParams
    - INIT_RSA_PSS_SIG_MECH
    - sftk_HMACConstantTime_New
    - sftk_SetContextByType
    - PORT_Assert
    - PORT_ZFree
    - sftk_GetHashTypeFromMechanism
    - sftk_doSSLMACInit
    - nsslowkey_PrivateModulusLen
    - INIT_DSA_SIG_MECH
    - INIT_ECDSA_SIG_MECH
    - sftk_FreeSession
    - SFTKSessionContext*::hashUpdate
    - sftk_TLSPRFInit
    - INIT_RSA_SIGN_MECH
    - PORT_Free
    - sftk_GetPrivKey
    - sftk_InitCBCMac
    - CHECK_FORK
    - PORT_New
    - sftk_SSLv3MACConstantTime_New
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_SignInit(CK_SESSION_HANDLE hSession,\n             CK_MECHANISM_PTR
      pMechanism, CK_OBJECT_HANDLE hKey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mmm
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2922
      start: 2908
    functionDepth: 0
    functionLinenumber: 2908
    functionLinenumberEnd: 2922
    functionName: INIT_RSA_SIGN_MECH
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INIT_RSA_SIGN_MECH(mmm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mmm
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2978
      start: 2963
    functionDepth: 0
    functionLinenumber: 2963
    functionLinenumberEnd: 2978
    functionName: INIT_RSA_PSS_SIG_MECH
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INIT_RSA_PSS_SIG_MECH(mmm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mmm
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3020
      start: 3013
    functionDepth: 0
    functionLinenumber: 3013
    functionLinenumberEnd: 3020
    functionName: INIT_DSA_SIG_MECH
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INIT_DSA_SIG_MECH(mmm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mmm
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3049
      start: 3042
    functionDepth: 0
    functionLinenumber: 3042
    functionLinenumberEnd: 3049
    functionName: INIT_ECDSA_SIG_MECH
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INIT_ECDSA_SIG_MECH(mmm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mmm
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3109
      start: 3095
    functionDepth: 0
    functionLinenumber: 3095
    functionLinenumberEnd: 3109
    functionName: INIT_HMAC_MECH
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INIT_HMAC_MECH(mmm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sftk_MapCryptError
      Src: /src/nss/lib/softoken/pkcs11c.c:3288,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/pkcs11c.c:3288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - blk
    argTypes:
    - SFTKSessionContext*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3289
      start: 3281
    functionDepth: 1
    functionLinenumber: 3281
    functionLinenumberEnd: 3289
    functionName: sftk_MACBlock
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - PORT_GetError
    - sftk_MapCryptError
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV sftk_MACBlock(SFTKSessionContext *ctx, void *blk)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sftk_xcbc_mac_pad
      Src: /src/nss/lib/softoken/pkcs11c.c:3301,1
    - Dst: sftk_MACBlock
      Src: /src/nss/lib/softoken/pkcs11c.c:3305,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/pkcs11c.c:3309,1
    - Dst: sftk_MACBlock
      Src: /src/nss/lib/softoken/pkcs11c.c:3310,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SFTKSessionContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3313
      start: 3295
    functionDepth: 2
    functionLinenumber: 3295
    functionLinenumberEnd: 3313
    functionName: sftk_MACFinal
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - sftk_xcbc_mac_pad
    - PORT_Memset
    - sftk_MACBlock
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV sftk_MACFinal(SFTKSessionContext *ctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sftk_GetContext
      Src: /src/nss/lib/softoken/pkcs11c.c:3329,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11c.c:3353,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11c.c:3359,1
    - Dst: sftk_MACBlock
      Src: /src/nss/lib/softoken/pkcs11c.c:3362,1
    - Dst: sftk_MACBlock
      Src: /src/nss/lib/softoken/pkcs11c.c:3367,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11c.c:3374,1
    - Dst: sftk_TerminateOp
      Src: /src/nss/lib/softoken/pkcs11c.c:3380,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11c.c:3382,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 4
    argNames:
    - hSession
    - pPart
    - ulPartLen
    - type
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - SFTKContextType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3384
      start: 3320
    functionDepth: 2
    functionLinenumber: 3320
    functionLinenumberEnd: 3384
    functionName: sftk_MACUpdate
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - sftk_FreeSession
    - PORT_Memcpy
    - sftk_TerminateOp
    - sftk_GetContext
    - sftk_MACBlock
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftk_MACUpdate(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart,\n
      \              CK_ULONG ulPartLen, SFTKContextType type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11c.c:3396,1
    - Dst: sftk_MACUpdate
      Src: /src/nss/lib/softoken/pkcs11c.c:3397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hSession
    - pPart
    - ulPartLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3398
      start: 3392
    functionDepth: 3
    functionLinenumber: 3392
    functionLinenumberEnd: 3398
    functionName: NSC_SignUpdate
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - CHECK_FORK
    - sftk_MACUpdate
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_SignUpdate(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart,\n
      \              CK_ULONG ulPartLen)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sftk_GetContext
      Src: /src/nss/lib/softoken/pkcs11c.c:3435,1
    - Dst: sftk_TerminateOp
      Src: /src/nss/lib/softoken/pkcs11c.c:3440,1
    - Dst: NSC_FindObjectsFinal
      Src: /src/nss/lib/softoken/pkcs11c.c:3445,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - hSession
    - flags
    argTypes:
    - CK_SESSION_HANDLE
    - CK_FLAGS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3454
      start: 3423
    functionDepth: 2
    functionLinenumber: 3423
    functionLinenumberEnd: 3454
    functionName: NSC_SessionCancel
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - NSC_FindObjectsFinal
    - sftk_GetContext
    - sftk_TerminateOp
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV NSC_SessionCancel(CK_SESSION_HANDLE hSession, CK_FLAGS flags)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11c.c:3468,1
    - Dst: sftk_GetContext
      Src: /src/nss/lib/softoken/pkcs11c.c:3471,1
    - Dst: sftk_MapCryptError
      Src: /src/nss/lib/softoken/pkcs11c.c:3486,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/pkcs11c.c:3486,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/pkcs11c.c:3490,1
    - Dst: sftk_MACFinal
      Src: /src/nss/lib/softoken/pkcs11c.c:3500,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11c.c:3501,1
    - Dst: sftk_TerminateOp
      Src: /src/nss/lib/softoken/pkcs11c.c:3504,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11c.c:3507,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 3
    argNames:
    - hSession
    - pSignature
    - pulSignatureLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3509
      start: 3458
    functionDepth: 3
    functionLinenumber: 3458
    functionLinenumberEnd: 3509
    functionName: NSC_SignFinal
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - sftk_FreeSession
    - PORT_Memcpy
    - sftk_TerminateOp
    - PORT_GetError
    - sftk_MapCryptError
    - sftk_GetContext
    - CHECK_FORK
    - sftk_MACFinal
    - PORT_Memset
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_SignFinal(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pSignature,\n
      \             CK_ULONG_PTR pulSignatureLen)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11c.c:3523,1
    - Dst: sftk_GetContext
      Src: /src/nss/lib/softoken/pkcs11c.c:3526,1
    - Dst: NSC_SignUpdate
      Src: /src/nss/lib/softoken/pkcs11c.c:3542,1
    - Dst: NSC_SignFinal
      Src: /src/nss/lib/softoken/pkcs11c.c:3543,1
    - Dst: sftk_MapCryptError
      Src: /src/nss/lib/softoken/pkcs11c.c:3550,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/pkcs11c.c:3550,1
    - Dst: sftk_TerminateOp
      Src: /src/nss/lib/softoken/pkcs11c.c:3554,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11c.c:3558,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 5
    argNames:
    - hSession
    - pData
    - ulDataLen
    - pSignature
    - pulSignatureLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3560
      start: 3514
    functionDepth: 4
    functionLinenumber: 3514
    functionLinenumberEnd: 3560
    functionName: NSC_Sign
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 1
    functionsReached:
    - sftk_FreeSession
    - sftk_TerminateOp
    - PORT_GetError
    - sftk_MapCryptError
    - sftk_GetContext
    - CHECK_FORK
    - NSC_SignUpdate
    - NSC_SignFinal
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_Sign(CK_SESSION_HANDLE hSession,\n         CK_BYTE_PTR pData,
      CK_ULONG ulDataLen, CK_BYTE_PTR pSignature,\n         CK_ULONG_PTR pulSignatureLen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11c.c:3572,1
    - Dst: NSC_SignInit
      Src: /src/nss/lib/softoken/pkcs11c.c:3577,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - hSession
    - pMechanism
    - hKey
    argTypes:
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3582
      start: 3568
    functionDepth: 7
    functionLinenumber: 3568
    functionLinenumberEnd: 3582
    functionName: NSC_SignRecoverInit
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - NSC_SignInit
    - CHECK_FORK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_SignRecoverInit(CK_SESSION_HANDLE hSession,\n                    CK_MECHANISM_PTR
      pMechanism, CK_OBJECT_HANDLE hKey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11c.c:3591,1
    - Dst: NSC_Sign
      Src: /src/nss/lib/softoken/pkcs11c.c:3593,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - hSession
    - pData
    - ulDataLen
    - pSignature
    - pulSignatureLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3594
      start: 3587
    functionDepth: 5
    functionLinenumber: 3587
    functionLinenumberEnd: 3594
    functionName: NSC_SignRecover
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - CHECK_FORK
    - NSC_Sign
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_SignRecover(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData,\n
      \               CK_ULONG ulDataLen, CK_BYTE_PTR pSignature, CK_ULONG_PTR pulSignatureLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/pkcs11c.c:3607,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/pkcs11c.c:3609,1
    - Dst: RSA_HashCheckSign
      Src: /src/nss/lib/softoken/pkcs11c.c:3613,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - ctx
    - sig
    - sigLen
    - digest
    - digestLen
    argTypes:
    - void*
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3615
      start: 3601
    functionDepth: 1
    functionLinenumber: 3601
    functionLinenumberEnd: 3615
    functionName: sftk_hashCheckSign
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - RSA_HashCheckSign
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sftk_hashCheckSign(void *ctx, const unsigned char *sig,\n
      \                  unsigned int sigLen, const unsigned char *digest,\n                   unsigned
      int digestLen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/softoken/pkcs11c.c:3630,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/pkcs11c.c:3632,1
    - Dst: RSA_CheckSignRecover
      Src: /src/nss/lib/softoken/pkcs11c.c:3640,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/pkcs11c.c:3644,1
    - Dst: _SGN_VerifyPKCS1DigestInfo
      Src: /src/nss/lib/softoken/pkcs11c.c:3648,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/softoken/pkcs11c.c:3653,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 6
    argNames:
    - digestOid
    - key
    - sig
    - sigLen
    - digestData
    - digestLen
    argTypes:
    - SECOidTag
    - NSSLOWKEYPublicKey*
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3655
      start: 3617
    functionDepth: 2
    functionLinenumber: 3617
    functionLinenumberEnd: 3655
    functionName: RSA_HashCheckSign
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 4
    functionsReached:
    - RSA_CheckSignRecover
    - PORT_ZFree
    - _SGN_VerifyPKCS1DigestInfo
    - PORT_ZAlloc
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus RSA_HashCheckSign(SECOidTag digestOid, NSSLOWKEYPublicKey
      *key,\n                  const unsigned char *sig, unsigned int sigLen,\n                  const
      unsigned char *digestData, unsigned int digestLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/pkcs11c.c:3663,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/pkcs11c.c:3665,1
    - Dst: RSA_CheckSign
      Src: /src/nss/lib/softoken/pkcs11c.c:3669,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - ctx
    - sig
    - sigLen
    - digest
    - digestLen
    argTypes:
    - void*
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3670
      start: 3657
    functionDepth: 0
    functionLinenumber: 3657
    functionLinenumberEnd: 3670
    functionName: sftk_RSACheckSign
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - RSA_CheckSign
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sftk_RSACheckSign(void *ctx, const unsigned char *sig,\n
      \                 unsigned int sigLen, const unsigned char *digest,\n                  unsigned
      int digestLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/pkcs11c.c:3678,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/pkcs11c.c:3680,1
    - Dst: RSA_CheckSignRaw
      Src: /src/nss/lib/softoken/pkcs11c.c:3684,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - ctx
    - sig
    - sigLen
    - digest
    - digestLen
    argTypes:
    - void*
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3685
      start: 3672
    functionDepth: 0
    functionLinenumber: 3672
    functionLinenumberEnd: 3685
    functionName: sftk_RSACheckSignRaw
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - RSA_CheckSignRaw
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sftk_RSACheckSignRaw(void *ctx, const unsigned char *sig,\n
      \                    unsigned int sigLen, const unsigned char *digest,\n                     unsigned
      int digestLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/pkcs11c.c:3697,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/pkcs11c.c:3699,1
    - Dst: sftk_GetHashTypeFromMechanism
      Src: /src/nss/lib/softoken/pkcs11c.c:3703,1
    - Dst: sftk_GetHashTypeFromMechanism
      Src: /src/nss/lib/softoken/pkcs11c.c:3704,1
    - Dst: RSA_CheckSignPSS
      Src: /src/nss/lib/softoken/pkcs11c.c:3706,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - ctx
    - sig
    - sigLen
    - digest
    - digestLen
    argTypes:
    - void*
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3708
      start: 3687
    functionDepth: 1
    functionLinenumber: 3687
    functionLinenumberEnd: 3708
    functionName: sftk_RSACheckSignPSS
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - RSA_CheckSignPSS
    - sftk_GetHashTypeFromMechanism
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sftk_RSACheckSignPSS(void *ctx, const unsigned char *sig,\n
      \                    unsigned int sigLen, const unsigned char *digest,\n                     unsigned
      int digestLen)"
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11c.c:3726,1
    - Dst: sftk_InitCBCMac
      Src: /src/nss/lib/softoken/pkcs11c.c:3729,1
    - Dst: sftk_SessionFromHandle
      Src: /src/nss/lib/softoken/pkcs11c.c:3733,1
    - Dst: sftk_InitGeneric
      Src: /src/nss/lib/softoken/pkcs11c.c:3736,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11c.c:3739,1
    - Dst: INIT_RSA_VFY_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:3761,1
    - Dst: INIT_RSA_VFY_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:3762,1
    - Dst: INIT_RSA_VFY_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:3763,1
    - Dst: INIT_RSA_VFY_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:3764,1
    - Dst: INIT_RSA_VFY_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:3765,1
    - Dst: INIT_RSA_VFY_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:3766,1
    - Dst: INIT_RSA_VFY_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:3767,1
    - Dst: sftk_GetPubKey
      Src: /src/nss/lib/softoken/pkcs11c.c:3780,1
    - Dst: INIT_RSA_PSS_SIG_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:3795,1
    - Dst: INIT_RSA_PSS_SIG_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:3796,1
    - Dst: INIT_RSA_PSS_SIG_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:3797,1
    - Dst: INIT_RSA_PSS_SIG_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:3798,1
    - Dst: INIT_RSA_PSS_SIG_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:3799,1
    - Dst: sftk_ValidatePssParams
      Src: /src/nss/lib/softoken/pkcs11c.c:3808,1
    - Dst: PORT_New
      Src: /src/nss/lib/softoken/pkcs11c.c:3812,1
    - Dst: sftk_GetPubKey
      Src: /src/nss/lib/softoken/pkcs11c.c:3819,1
    - Dst: INIT_DSA_SIG_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:3829,1
    - Dst: INIT_DSA_SIG_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:3830,1
    - Dst: INIT_DSA_SIG_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:3831,1
    - Dst: INIT_DSA_SIG_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:3832,1
    - Dst: INIT_DSA_SIG_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:3833,1
    - Dst: sftk_GetPubKey
      Src: /src/nss/lib/softoken/pkcs11c.c:3840,1
    - Dst: INIT_ECDSA_SIG_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:3849,1
    - Dst: INIT_ECDSA_SIG_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:3850,1
    - Dst: INIT_ECDSA_SIG_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:3851,1
    - Dst: INIT_ECDSA_SIG_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:3852,1
    - Dst: INIT_ECDSA_SIG_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:3853,1
    - Dst: sftk_GetPubKey
      Src: /src/nss/lib/softoken/pkcs11c.c:3860,1
    - Dst: INIT_HMAC_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:3870,1
    - Dst: INIT_HMAC_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:3871,1
    - Dst: INIT_HMAC_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:3872,1
    - Dst: INIT_HMAC_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:3873,1
    - Dst: INIT_HMAC_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:3874,1
    - Dst: INIT_HMAC_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:3875,1
    - Dst: INIT_HMAC_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:3876,1
    - Dst: INIT_HMAC_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:3877,1
    - Dst: INIT_HMAC_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:3878,1
    - Dst: INIT_HMAC_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:3879,1
    - Dst: INIT_HMAC_MECH
      Src: /src/nss/lib/softoken/pkcs11c.c:3880,1
    - Dst: sftk_GetPubKey
      Src: /src/nss/lib/softoken/pkcs11c.c:3887,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/pkcs11c.c:3904,1
    - Dst: sftk_doSSLMACInit
      Src: /src/nss/lib/softoken/pkcs11c.c:3909,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/pkcs11c.c:3913,1
    - Dst: sftk_doSSLMACInit
      Src: /src/nss/lib/softoken/pkcs11c.c:3918,1
    - Dst: sftk_TLSPRFInit
      Src: /src/nss/lib/softoken/pkcs11c.c:3922,1
    - Dst: sftk_TLSPRFInit
      Src: /src/nss/lib/softoken/pkcs11c.c:3925,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/pkcs11c.c:3935,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/softoken/pkcs11c.c:3937,1
    - Dst: sftk_FreeContext
      Src: /src/nss/lib/softoken/pkcs11c.c:3938,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11c.c:3939,1
    - Dst: sftk_SetContextByType
      Src: /src/nss/lib/softoken/pkcs11c.c:3942,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11c.c:3943,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 190
    argCount: 3
    argNames:
    - hSession
    - pMechanism
    - hKey
    argTypes:
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3945
      start: 3713
    functionDepth: 6
    functionLinenumber: 3713
    functionLinenumberEnd: 3945
    functionName: NSC_VerifyInit
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 1
    functionsReached:
    - sftk_SessionFromHandle
    - sftk_FreeContext
    - sftk_InitGeneric
    - INIT_HMAC_MECH
    - sftk_ValidatePssParams
    - INIT_RSA_PSS_SIG_MECH
    - sftk_SetContextByType
    - PORT_Assert
    - PORT_ZFree
    - sftk_doSSLMACInit
    - INIT_DSA_SIG_MECH
    - INIT_ECDSA_SIG_MECH
    - sftk_FreeSession
    - sftk_TLSPRFInit
    - sftk_GetPubKey
    - PORT_Free
    - sftk_InitCBCMac
    - CHECK_FORK
    - INIT_RSA_VFY_MECH
    - PORT_New
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_VerifyInit(CK_SESSION_HANDLE hSession,\n               CK_MECHANISM_PTR
      pMechanism, CK_OBJECT_HANDLE hKey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - mmm
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3759
      start: 3745
    functionDepth: 0
    functionLinenumber: 3745
    functionLinenumberEnd: 3759
    functionName: INIT_RSA_VFY_MECH
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INIT_RSA_VFY_MECH(mmm)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11c.c:3958,1
    - Dst: sftk_GetContext
      Src: /src/nss/lib/softoken/pkcs11c.c:3961,1
    - Dst: NSC_VerifyUpdate
      Src: /src/nss/lib/softoken/pkcs11c.c:3969,1
    - Dst: NSC_VerifyFinal
      Src: /src/nss/lib/softoken/pkcs11c.c:3970,1
    - Dst: sftk_MapCryptError
      Src: /src/nss/lib/softoken/pkcs11c.c:3974,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/pkcs11c.c:3974,1
    - Dst: sftk_TerminateOp
      Src: /src/nss/lib/softoken/pkcs11c.c:3976,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11c.c:3978,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 5
    argNames:
    - hSession
    - pData
    - ulDataLen
    - pSignature
    - ulSignatureLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3980
      start: 3950
    functionDepth: 2
    functionLinenumber: 3950
    functionLinenumberEnd: 3980
    functionName: NSC_Verify
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 1
    functionsReached:
    - sftk_FreeSession
    - sftk_TerminateOp
    - PORT_GetError
    - sftk_MapCryptError
    - NSC_VerifyUpdate
    - NSC_VerifyFinal
    - sftk_GetContext
    - CHECK_FORK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_Verify(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData,\n
      \          CK_ULONG ulDataLen, CK_BYTE_PTR pSignature, CK_ULONG ulSignatureLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11c.c:3992,1
    - Dst: sftk_MACUpdate
      Src: /src/nss/lib/softoken/pkcs11c.c:3993,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hSession
    - pPart
    - ulPartLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3994
      start: 3988
    functionDepth: 3
    functionLinenumber: 3988
    functionLinenumberEnd: 3994
    functionName: NSC_VerifyUpdate
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 1
    functionsReached:
    - CHECK_FORK
    - sftk_MACUpdate
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_VerifyUpdate(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart,\n
      \                CK_ULONG ulPartLen)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11c.c:4006,1
    - Dst: sftk_GetContext
      Src: /src/nss/lib/softoken/pkcs11c.c:4012,1
    - Dst: sftk_MapCryptError
      Src: /src/nss/lib/softoken/pkcs11c.c:4023,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/pkcs11c.c:4023,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/pkcs11c.c:4024,1
    - Dst: sftk_MACFinal
      Src: /src/nss/lib/softoken/pkcs11c.c:4028,1
    - Dst: NSS_SecureMemcmp
      Src: /src/nss/lib/softoken/pkcs11c.c:4029,1
    - Dst: sftk_TerminateOp
      Src: /src/nss/lib/softoken/pkcs11c.c:4033,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11c.c:4034,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - hSession
    - pSignature
    - ulSignatureLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4036
      start: 3998
    functionDepth: 3
    functionLinenumber: 3998
    functionLinenumberEnd: 4036
    functionName: NSC_VerifyFinal
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 1
    functionsReached:
    - sftk_FreeSession
    - sftk_TerminateOp
    - PORT_GetError
    - sftk_MapCryptError
    - NSS_SecureMemcmp
    - sftk_GetContext
    - CHECK_FORK
    - sftk_MACFinal
    - PORT_Memset
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_VerifyFinal(CK_SESSION_HANDLE hSession,\n                CK_BYTE_PTR
      pSignature, CK_ULONG ulSignatureLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/pkcs11c.c:4047,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/pkcs11c.c:4049,1
    - Dst: RSA_CheckSignRecover
      Src: /src/nss/lib/softoken/pkcs11c.c:4053,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - ctx
    - data
    - dataLen
    - maxDataLen
    - sig
    - sigLen
    argTypes:
    - void*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4055
      start: 4041
    functionDepth: 0
    functionLinenumber: 4041
    functionLinenumberEnd: 4055
    functionName: sftk_RSACheckSignRecover
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - RSA_CheckSignRecover
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sftk_RSACheckSignRecover(void *ctx, unsigned char *data,\n
      \                        unsigned int *dataLen, unsigned int maxDataLen,\n                         const
      unsigned char *sig, unsigned int sigLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/pkcs11c.c:4063,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/pkcs11c.c:4065,1
    - Dst: RSA_CheckSignRecoverRaw
      Src: /src/nss/lib/softoken/pkcs11c.c:4069,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - ctx
    - data
    - dataLen
    - maxDataLen
    - sig
    - sigLen
    argTypes:
    - void*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4071
      start: 4057
    functionDepth: 0
    functionLinenumber: 4057
    functionLinenumberEnd: 4071
    functionName: sftk_RSACheckSignRecoverRaw
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    - RSA_CheckSignRecoverRaw
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sftk_RSACheckSignRecoverRaw(void *ctx, unsigned char *data,\n
      \                           unsigned int *dataLen, unsigned int maxDataLen,\n
      \                           const unsigned char *sig, unsigned int sigLen)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11c.c:4087,1
    - Dst: sftk_SessionFromHandle
      Src: /src/nss/lib/softoken/pkcs11c.c:4089,1
    - Dst: sftk_InitGeneric
      Src: /src/nss/lib/softoken/pkcs11c.c:4092,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11c.c:4095,1
    - Dst: sftk_GetPubKey
      Src: /src/nss/lib/softoken/pkcs11c.c:4110,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/pkcs11c.c:4126,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11c.c:4127,1
    - Dst: sftk_SetContextByType
      Src: /src/nss/lib/softoken/pkcs11c.c:4130,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11c.c:4131,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 3
    argNames:
    - hSession
    - pMechanism
    - hKey
    argTypes:
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4133
      start: 4076
    functionDepth: 2
    functionLinenumber: 4076
    functionLinenumberEnd: 4133
    functionName: NSC_VerifyRecoverInit
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - sftk_FreeSession
    - sftk_SessionFromHandle
    - sftk_GetPubKey
    - PORT_Free
    - sftk_InitGeneric
    - CHECK_FORK
    - sftk_SetContextByType
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_VerifyRecoverInit(CK_SESSION_HANDLE hSession,\n                      CK_MECHANISM_PTR
      pMechanism, CK_OBJECT_HANDLE hKey)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11c.c:4150,1
    - Dst: sftk_GetContext
      Src: /src/nss/lib/softoken/pkcs11c.c:4153,1
    - Dst: sftk_TerminateOp
      Src: /src/nss/lib/softoken/pkcs11c.c:4169,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11c.c:4171,1
    - Dst: sftk_MapVerifyError
      Src: /src/nss/lib/softoken/pkcs11c.c:4172,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/pkcs11c.c:4172,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 5
    argNames:
    - hSession
    - pSignature
    - ulSignatureLen
    - pData
    - pulDataLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4173
      start: 4138
    functionDepth: 2
    functionLinenumber: 4138
    functionLinenumberEnd: 4173
    functionName: NSC_VerifyRecover
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - sftk_MapVerifyError
    - sftk_FreeSession
    - sftk_TerminateOp
    - PORT_GetError
    - sftk_GetContext
    - CHECK_FORK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_VerifyRecover(CK_SESSION_HANDLE hSession,\n                  CK_BYTE_PTR
      pSignature, CK_ULONG ulSignatureLen,\n                  CK_BYTE_PTR pData, CK_ULONG_PTR
      pulDataLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11c.c:4187,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/lib/softoken/pkcs11c.c:4189,1
    - Dst: sftk_MapCryptError
      Src: /src/nss/lib/softoken/pkcs11c.c:4190,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/pkcs11c.c:4190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - hSession
    - pSeed
    - ulSeedLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4191
      start: 4181
    functionDepth: 1
    functionLinenumber: 4181
    functionLinenumberEnd: 4191
    functionName: NSC_SeedRandom
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - sftk_MapCryptError
    - CHECK_FORK
    - PORT_GetError
    - RNG_RandomUpdate
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_SeedRandom(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pSeed,\n
      \              CK_ULONG ulSeedLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11c.c:4200,1
    - Dst: RNG_GenerateGlobalRandomBytes
      Src: /src/nss/lib/softoken/pkcs11c.c:4202,1
    - Dst: sftk_MapCryptError
      Src: /src/nss/lib/softoken/pkcs11c.c:4207,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/pkcs11c.c:4207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - hSession
    - pRandomData
    - ulRandomLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4208
      start: 4194
    functionDepth: 1
    functionLinenumber: 4194
    functionLinenumberEnd: 4208
    functionName: NSC_GenerateRandom
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - RNG_GenerateGlobalRandomBytes
    - CHECK_FORK
    - PORT_GetError
    - sftk_MapCryptError
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_GenerateRandom(CK_SESSION_HANDLE hSession,\n                   CK_BYTE_PTR
      pRandomData, CK_ULONG ulRandomLen)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PR_MIN
      Src: /src/nss/lib/softoken/pkcs11c.c:4243,1
    - Dst: BAD_PARAM_CAST
      Src: /src/nss/lib/softoken/pkcs11c.c:4265,1
    - Dst: nsspkcs5_ComputeKeyAndIV
      Src: /src/nss/lib/softoken/pkcs11c.c:4272,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11c.c:4277,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:4279,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11c.c:4284,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/pkcs11c.c:4286,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 53
    argCount: 5
    argNames:
    - pkcs5_pbe
    - pMechanism
    - buf
    - key_length
    - faulty3DES
    argTypes:
    - NSSPKCS5PBEParameter*
    - CK_MECHANISM_PTR
    - void*
    - CK_ULONG*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4290
      start: 4218
    functionDepth: 1
    functionLinenumber: 4218
    functionLinenumberEnd: 4290
    functionName: nsc_pbe_key_gen
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - PORT_Memcpy
    - PR_MIN
    - nsspkcs5_ComputeKeyAndIV
    - PORT_Free
    - BAD_PARAM_CAST
    - SECITEM_ZfreeItem
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV nsc_pbe_key_gen(NSSPKCS5PBEParameter *pkcs5_pbe, CK_MECHANISM_PTR
      pMechanism,\n                void *buf, CK_ULONG *key_length, PRBool faulty3DES)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - primeBits
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4310
      start: 4296
    functionDepth: 0
    functionLinenumber: 4296
    functionLinenumberEnd: 4310
    functionName: sftk_GetSubPrimeFromPrime
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int sftk_GetSubPrimeFromPrime(unsigned int primeBits)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:4326,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:4328,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:4333,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:4337,1
    - Dst: PQG_PBITS_TO_INDEX
      Src: /src/nss/lib/softoken/pkcs11c.c:4340,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:4346,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:4349,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:4352,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:4355,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:4359,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:4363,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/pkcs11c.c:4364,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/pkcs11c.c:4369,1
    - Dst: sftk_Attribute2SSecItem
      Src: /src/nss/lib/softoken/pkcs11c.c:4375,1
    - Dst: sftk_Attribute2SSecItem
      Src: /src/nss/lib/softoken/pkcs11c.c:4379,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/pkcs11c.c:4385,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/pkcs11c.c:4390,1
    - Dst: sftk_Attribute2SSecItem
      Src: /src/nss/lib/softoken/pkcs11c.c:4396,1
    - Dst: sftk_Attribute2SSecItem
      Src: /src/nss/lib/softoken/pkcs11c.c:4400,1
    - Dst: sftk_DeleteAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:4404,1
    - Dst: sftk_DeleteAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:4405,1
    - Dst: sftk_DeleteAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:4406,1
    - Dst: sftk_DeleteAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:4407,1
    - Dst: sftk_DeleteAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:4410,1
    - Dst: sftk_DeleteAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:4411,1
    - Dst: sftk_DeleteAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:4412,1
    - Dst: PQG_ParamGen
      Src: /src/nss/lib/softoken/pkcs11c.c:4417,1
    - Dst: PQG_ParamGenSeedLen
      Src: /src/nss/lib/softoken/pkcs11c.c:4419,1
    - Dst: sftk_GetSubPrimeFromPrime
      Src: /src/nss/lib/softoken/pkcs11c.c:4423,1
    - Dst: PQG_ParamGenV2
      Src: /src/nss/lib/softoken/pkcs11c.c:4428,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/pkcs11c.c:4432,1
    - Dst: sftk_MapCryptError
      Src: /src/nss/lib/softoken/pkcs11c.c:4435,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/pkcs11c.c:4435,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:4437,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:4441,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:4445,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:4450,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:4454,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:4458,1
    - Dst: PQG_DestroyParams
      Src: /src/nss/lib/softoken/pkcs11c.c:4465,1
    - Dst: PQG_DestroyVerify
      Src: /src/nss/lib/softoken/pkcs11c.c:4469,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 142
    argCount: 2
    argNames:
    - key_type
    - key
    argTypes:
    - CK_KEY_TYPE
    - SFTKObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4472
      start: 4312
    functionDepth: 1
    functionLinenumber: 4312
    functionLinenumberEnd: 4472
    functionName: nsc_parameter_gen
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - sftk_FindAttribute
    - sftk_Attribute2SSecItem
    - PORT_NewArena
    - sftk_AddAttributeType
    - sftk_FreeAttribute
    - sftk_GetSubPrimeFromPrime
    - PORT_ArenaAlloc
    - PQG_DestroyVerify
    - PQG_ParamGenV2
    - PQG_ParamGenSeedLen
    - PORT_GetError
    - sftk_MapCryptError
    - PQG_DestroyParams
    - PQG_PBITS_TO_INDEX
    - PQG_ParamGen
    - sftk_DeleteAttributeType
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV nsc_parameter_gen(CK_KEY_TYPE key_type, SFTKObject *key)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/pkcs11c.c:4551,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 71
    argCount: 3
    argNames:
    - mechanism
    - key_type
    - key_length
    argTypes:
    - CK_MECHANISM_TYPE
    - CK_KEY_TYPE*
    - CK_ULONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4557
      start: 4474
    functionDepth: 0
    functionLinenumber: 4474
    functionLinenumberEnd: 4557
    functionName: nsc_SetupBulkKeyGen
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV nsc_SetupBulkKeyGen(CK_MECHANISM_TYPE mechanism, CK_KEY_TYPE
      *key_type,\n                    CK_ULONG *key_length)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/pkcs11c.c:4570,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/softoken/pkcs11c.c:4575,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/pkcs11c.c:4578,1
    - Dst: BAD_PARAM_CAST
      Src: /src/nss/lib/softoken/pkcs11c.c:4581,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/pkcs11c.c:4582,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/pkcs11c.c:4599,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/pkcs11c.c:4601,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/pkcs11c.c:4635,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 68
    argCount: 2
    argNames:
    - pMechanism
    - pbe
    argTypes:
    - CK_MECHANISM_PTR
    - NSSPKCS5PBEParameter**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4640
      start: 4559
    functionDepth: 1
    functionLinenumber: 4559
    functionLinenumberEnd: 4640
    functionName: nsc_SetupHMACKeyGen
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - PORT_FreeArena
    - SECITEM_CopyItem
    - BAD_PARAM_CAST
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV nsc_SetupHMACKeyGen(CK_MECHANISM_PTR pMechanism, NSSPKCS5PBEParameter
      **pbe)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOIDByMechanism
      Src: /src/nss/lib/softoken/pkcs11c.c:4658,1
    - Dst: PR_MIN
      Src: /src/nss/lib/softoken/pkcs11c.c:4664,1
    - Dst: BAD_PARAM_CAST
      Src: /src/nss/lib/softoken/pkcs11c.c:4695,1
    - Dst: nsspkcs5_NewParam
      Src: /src/nss/lib/softoken/pkcs11c.c:4703,1
    - Dst: sftk_MapKeySize
      Src: /src/nss/lib/softoken/pkcs11c.c:4736,1
    - Dst: nsspkcs5_DestroyPBEParameter
      Src: /src/nss/lib/softoken/pkcs11c.c:4751,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 90
    argCount: 4
    argNames:
    - pMechanism
    - pbe
    - key_type
    - key_length
    argTypes:
    - CK_MECHANISM_PTR
    - NSSPKCS5PBEParameter**
    - CK_KEY_TYPE*
    - CK_ULONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4754
      start: 4643
    functionDepth: 4
    functionLinenumber: 4643
    functionLinenumberEnd: 4754
    functionName: nsc_SetupPBEKeyGen
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - PR_MIN
    - nsspkcs5_DestroyPBEParameter
    - sftk_MapKeySize
    - nsspkcs5_NewParam
    - SECOID_FindOIDByMechanism
    - BAD_PARAM_CAST
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV nsc_SetupPBEKeyGen(CK_MECHANISM_PTR pMechanism, NSSPKCS5PBEParameter
      **pbe,\n                   CK_KEY_TYPE *key_type, CK_ULONG *key_length)"
  - BBCount: 72
    BranchProfiles: []
    Callsites:
    - Dst: sftk_SlotFromSessionHandle
      Src: /src/nss/lib/softoken/pkcs11c.c:4772,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11c.c:4788,1
    - Dst: sftk_NewObject
      Src: /src/nss/lib/softoken/pkcs11c.c:4796,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:4815,1
    - Dst: sftk_attr_expand
      Src: /src/nss/lib/softoken/pkcs11c.c:4815,1
    - Dst: sftk_DeleteAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:4825,1
    - Dst: sftk_DeleteAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:4826,1
    - Dst: sftk_DeleteAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:4827,1
    - Dst: nsc_SetupBulkKeyGen
      Src: /src/nss/lib/softoken/pkcs11c.c:4853,1
    - Dst: nsc_SetupHMACKeyGen
      Src: /src/nss/lib/softoken/pkcs11c.c:4870,1
    - Dst: nsc_SetupPBEKeyGen
      Src: /src/nss/lib/softoken/pkcs11c.c:4893,1
    - Dst: sftk_isTrue
      Src: /src/nss/lib/softoken/pkcs11c.c:4922,1
    - Dst: nsspkcs5_DestroyPBEParameter
      Src: /src/nss/lib/softoken/pkcs11c.c:4942,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/pkcs11c.c:4949,1
    - Dst: nsc_pbe_key_gen
      Src: /src/nss/lib/softoken/pkcs11c.c:4956,1
    - Dst: nsspkcs5_DestroyPBEParameter
      Src: /src/nss/lib/softoken/pkcs11c.c:4958,1
    - Dst: BAD_PARAM_CAST
      Src: /src/nss/lib/softoken/pkcs11c.c:4962,1
    - Dst: NSC_GenerateRandom
      Src: /src/nss/lib/softoken/pkcs11c.c:4970,1
    - Dst: NSC_GenerateRandom
      Src: /src/nss/lib/softoken/pkcs11c.c:4975,1
    - Dst: sftk_IsWeakKey
      Src: /src/nss/lib/softoken/pkcs11c.c:4976,1
    - Dst: nsc_parameter_gen
      Src: /src/nss/lib/softoken/pkcs11c.c:4981,1
    - Dst: BAD_PARAM_CAST
      Src: /src/nss/lib/softoken/pkcs11c.c:4984,1
    - Dst: jpake_Round1
      Src: /src/nss/lib/softoken/pkcs11c.c:4988,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:4999,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5003,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5008,1
    - Dst: sftk_SessionFromHandle
      Src: /src/nss/lib/softoken/pkcs11c.c:5015,1
    - Dst: sftk_handleObject
      Src: /src/nss/lib/softoken/pkcs11c.c:5024,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11c.c:5025,1
    - Dst: sftk_isTrue
      Src: /src/nss/lib/softoken/pkcs11c.c:5026,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:5027,1
    - Dst: sftk_isTrue
      Src: /src/nss/lib/softoken/pkcs11c.c:5029,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:5030,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/pkcs11c.c:5036,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11c.c:5037,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 215
    argCount: 5
    argNames:
    - hSession
    - pMechanism
    - pTemplate
    - ulCount
    - phKey
    argTypes:
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    - CK_OBJECT_HANDLE_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5039
      start: 4757
    functionDepth: 8
    functionLinenumber: 4757
    functionLinenumberEnd: 5039
    functionName: NSC_GenerateKey
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - sftk_SessionFromHandle
    - jpake_Round1
    - sftk_attr_expand
    - nsc_pbe_key_gen
    - sftk_AddAttributeType
    - sftk_handleObject
    - NSC_GenerateRandom
    - nsc_parameter_gen
    - sftk_DeleteAttributeType
    - PORT_Assert
    - nsc_SetupHMACKeyGen
    - BAD_PARAM_CAST
    - sftk_IsWeakKey
    - nsc_SetupPBEKeyGen
    - sftk_FreeSession
    - sftk_isTrue
    - nsspkcs5_DestroyPBEParameter
    - sftk_SlotFromSessionHandle
    - CHECK_FORK
    - sftk_forceAttribute
    - PORT_Memset
    - nsc_SetupBulkKeyGen
    - sftk_NewObject
    - sftk_FreeObject
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_GenerateKey(CK_SESSION_HANDLE hSession,\n                CK_MECHANISM_PTR
      pMechanism, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount,\n                CK_OBJECT_HANDLE_PTR
      phKey)"
  - BBCount: 57
    BranchProfiles: []
    Callsites:
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:5102,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:5110,1
    - Dst: sftk_isFIPS
      Src: /src/nss/lib/softoken/pkcs11c.c:5115,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:5123,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:5131,1
    - Dst: sftk_isTrue
      Src: /src/nss/lib/softoken/pkcs11c.c:5138,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/softoken/pkcs11c.c:5160,1
    - Dst: NSC_EncryptInit
      Src: /src/nss/lib/softoken/pkcs11c.c:5166,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/pkcs11c.c:5168,1
    - Dst: NSC_Encrypt
      Src: /src/nss/lib/softoken/pkcs11c.c:5173,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/pkcs11c.c:5179,1
    - Dst: PR_MIN
      Src: /src/nss/lib/softoken/pkcs11c.c:5184,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/softoken/pkcs11c.c:5197,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/pkcs11c.c:5200,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/pkcs11c.c:5201,1
    - Dst: NSC_DecryptInit
      Src: /src/nss/lib/softoken/pkcs11c.c:5206,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/pkcs11c.c:5208,1
    - Dst: memset
      Src: /src/nss/lib/softoken/pkcs11c.c:5212,1
    - Dst: NSC_Decrypt
      Src: /src/nss/lib/softoken/pkcs11c.c:5225,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/pkcs11c.c:5232,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/softoken/pkcs11c.c:5243,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/pkcs11c.c:5246,1
    - Dst: sftk_isTrue
      Src: /src/nss/lib/softoken/pkcs11c.c:5255,1
    - Dst: sftk_GetPrivKey
      Src: /src/nss/lib/softoken/pkcs11c.c:5259,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/softoken/pkcs11c.c:5295,1
    - Dst: NSC_SignInit
      Src: /src/nss/lib/softoken/pkcs11c.c:5301,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/pkcs11c.c:5303,1
    - Dst: NSC_Sign
      Src: /src/nss/lib/softoken/pkcs11c.c:5307,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/pkcs11c.c:5313,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/softoken/pkcs11c.c:5319,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/pkcs11c.c:5320,1
    - Dst: NSC_VerifyInit
      Src: /src/nss/lib/softoken/pkcs11c.c:5325,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/pkcs11c.c:5327,1
    - Dst: NSC_Verify
      Src: /src/nss/lib/softoken/pkcs11c.c:5331,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/pkcs11c.c:5338,1
    - Dst: sftk_isTrue
      Src: /src/nss/lib/softoken/pkcs11c.c:5353,1
    - Dst: sftk_isFIPS
      Src: /src/nss/lib/softoken/pkcs11c.c:5357,1
    - Dst: sftk_GetPrivKey
      Src: /src/nss/lib/softoken/pkcs11c.c:5369,1
    - Dst: sftk_MapCryptError
      Src: /src/nss/lib/softoken/pkcs11c.c:5371,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/pkcs11c.c:5371,1
    - Dst: DH_Derive
      Src: /src/nss/lib/softoken/pkcs11c.c:5376,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5381,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5382,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:5383,1
    - Dst: EC_NewKeyFromSeed
      Src: /src/nss/lib/softoken/pkcs11c.c:5387,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/softoken/pkcs11c.c:5394,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5396,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5398,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/softoken/pkcs11c.c:5399,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:5401,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/pkcs11c.c:5403,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/softoken/pkcs11c.c:5412,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:5415,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5417,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/pkcs11c.c:5418,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5421,1
    - Dst: sftk_Attribute2SecItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5435,1
    - Dst: sftk_Attribute2SecItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5439,1
    - Dst: sftk_VerifyDH_Prime
      Src: /src/nss/lib/softoken/pkcs11c.c:5445,1
    - Dst: KEA_PrimeCheck
      Src: /src/nss/lib/softoken/pkcs11c.c:5454,1
    - Dst: KEA_PrimeCheck
      Src: /src/nss/lib/softoken/pkcs11c.c:5458,1
    - Dst: KEA_Verify
      Src: /src/nss/lib/softoken/pkcs11c.c:5465,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5472,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5480,1
    - Dst: KEA_Verify
      Src: /src/nss/lib/softoken/pkcs11c.c:5486,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5490,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5491,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5492,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:5495,1
    CyclomaticComplexity: 74
    EdgeCount: 74
    ICount: 247
    argCount: 5
    argNames:
    - hSession
    - slot
    - publicKey
    - privateKey
    - keyType
    argTypes:
    - CK_SESSION_HANDLE
    - SFTKSlot*
    - SFTKObject*
    - SFTKObject*
    - CK_KEY_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5502
      start: 5052
    functionDepth: 7
    functionLinenumber: 5052
    functionLinenumberEnd: 5502
    functionName: sftk_PairwiseConsistencyCheck
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - SECITEM_CompareItem
    - NSC_VerifyInit
    - NSC_Sign
    - PR_GetEnvSecure
    - NSC_Verify
    - NSC_DecryptInit
    - DH_Derive
    - SEC_ASN1EncodeItem
    - sftk_Attribute2SecItem
    - NSC_Decrypt
    - sftk_MapCryptError
    - memset
    - PORT_SetError
    - sftk_isFIPS
    - KEA_Verify
    - KEA_PrimeCheck
    - PR_MIN
    - sftk_FreeAttribute
    - PORT_FreeArena
    - PORT_ZAlloc
    - EC_NewKeyFromSeed
    - NSC_SignInit
    - SECITEM_ZfreeItem
    - SECITEM_DupItem
    - sftk_FindAttribute
    - PORT_Memcmp
    - sftk_isTrue
    - PORT_Free
    - PORT_GetError
    - NSC_Encrypt
    - sftk_VerifyDH_Prime
    - NSC_EncryptInit
    - sftk_GetPrivKey
    - SEC_ASN1_GET
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftk_PairwiseConsistencyCheck(CK_SESSION_HANDLE hSession, SFTKSlot
      *slot,\n                              SFTKObject *publicKey, SFTKObject *privateKey,
      CK_KEY_TYPE keyType)"
  - BBCount: 100
    BranchProfiles: []
    Callsites:
    - Dst: sftk_SlotFromSessionHandle
      Src: /src/nss/lib/softoken/pkcs11c.c:5522,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11c.c:5546,1
    - Dst: sftk_NewObject
      Src: /src/nss/lib/softoken/pkcs11c.c:5554,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5573,1
    - Dst: sftk_attr_expand
      Src: /src/nss/lib/softoken/pkcs11c.c:5574,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11c.c:5580,1
    - Dst: sftk_NewObject
      Src: /src/nss/lib/softoken/pkcs11c.c:5584,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11c.c:5586,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5597,1
    - Dst: sftk_attr_expand
      Src: /src/nss/lib/softoken/pkcs11c.c:5598,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11c.c:5604,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11c.c:5605,1
    - Dst: sftk_DeleteAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5608,1
    - Dst: sftk_DeleteAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5609,1
    - Dst: sftk_DeleteAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5610,1
    - Dst: sftk_DeleteAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5611,1
    - Dst: sftk_DeleteAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5612,1
    - Dst: sftk_DeleteAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5613,1
    - Dst: sftk_DeleteAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5619,1
    - Dst: sftk_DeleteAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5620,1
    - Dst: sftk_DeleteAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5621,1
    - Dst: sftk_DeleteAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5622,1
    - Dst: sftk_DeleteAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5623,1
    - Dst: sftk_DeleteAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5624,1
    - Dst: sftk_DeleteAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5625,1
    - Dst: sftk_DeleteAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5626,1
    - Dst: sftk_DeleteAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5627,1
    - Dst: sftk_DeleteAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5628,1
    - Dst: sftk_Attribute2SSecItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5644,1
    - Dst: sftk_GetLengthInBits
      Src: /src/nss/lib/softoken/pkcs11c.c:5647,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5650,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5653,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11c.c:5654,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5656,1
    - Dst: RSA_NewKey
      Src: /src/nss/lib/softoken/pkcs11c.c:5660,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5661,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/pkcs11c.c:5663,1
    - Dst: sftk_MapCryptError
      Src: /src/nss/lib/softoken/pkcs11c.c:5666,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/pkcs11c.c:5666,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5670,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11c.c:5671,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5675,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11c.c:5676,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5679,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11c.c:5680,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5683,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11c.c:5684,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5687,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11c.c:5688,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5691,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11c.c:5692,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5695,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11c.c:5696,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5699,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11c.c:5700,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5703,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11c.c:5704,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/pkcs11c.c:5707,1
    - Dst: sftk_DeleteAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5710,1
    - Dst: sftk_DeleteAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5711,1
    - Dst: sftk_DeleteAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5712,1
    - Dst: sftk_DeleteAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5713,1
    - Dst: sftk_DeleteAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5714,1
    - Dst: sftk_Attribute2SSecItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5718,1
    - Dst: sftk_Attribute2SSecItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5721,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5724,1
    - Dst: sftk_Attribute2SSecItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5727,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5729,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5730,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5733,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11c.c:5734,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5736,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5737,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5738,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5741,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11c.c:5742,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5744,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5745,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5746,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5749,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11c.c:5750,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5752,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5753,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5754,1
    - Dst: sftk_GetLengthInBits
      Src: /src/nss/lib/softoken/pkcs11c.c:5761,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5765,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5766,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5767,1
    - Dst: sftk_GetLengthInBits
      Src: /src/nss/lib/softoken/pkcs11c.c:5770,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5773,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5774,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5775,1
    - Dst: sftk_GetLengthInBits
      Src: /src/nss/lib/softoken/pkcs11c.c:5778,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5781,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5782,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5783,1
    - Dst: DSA_NewKey
      Src: /src/nss/lib/softoken/pkcs11c.c:5788,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5790,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5791,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5792,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/pkcs11c.c:5795,1
    - Dst: sftk_MapCryptError
      Src: /src/nss/lib/softoken/pkcs11c.c:5798,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/pkcs11c.c:5798,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5803,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11c.c:5804,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5809,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11c.c:5810,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5813,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11c.c:5814,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/pkcs11c.c:5818,1
    - Dst: sftk_DeleteAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5822,1
    - Dst: sftk_DeleteAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5823,1
    - Dst: sftk_DeleteAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5824,1
    - Dst: sftk_DeleteAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5825,1
    - Dst: sftk_Attribute2SSecItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5829,1
    - Dst: sftk_Attribute2SSecItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5833,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5835,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5838,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11c.c:5839,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5841,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5842,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5845,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11c.c:5846,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5848,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5849,1
    - Dst: sftk_GetLengthInBits
      Src: /src/nss/lib/softoken/pkcs11c.c:5852,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5855,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5856,1
    - Dst: sftk_GetLengthInBits
      Src: /src/nss/lib/softoken/pkcs11c.c:5859,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5862,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5863,1
    - Dst: DH_NewKey
      Src: /src/nss/lib/softoken/pkcs11c.c:5867,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5868,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5869,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/pkcs11c.c:5871,1
    - Dst: sftk_MapCryptError
      Src: /src/nss/lib/softoken/pkcs11c.c:5874,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/pkcs11c.c:5874,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5878,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11c.c:5879,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5883,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11c.c:5884,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5888,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11c.c:5889,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/pkcs11c.c:5893,1
    - Dst: sftk_DeleteAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5898,1
    - Dst: sftk_DeleteAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5899,1
    - Dst: sftk_DeleteAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5900,1
    - Dst: sftk_Attribute2SSecItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5904,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5909,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11c.c:5910,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5912,1
    - Dst: EC_DecodeParams
      Src: /src/nss/lib/softoken/pkcs11c.c:5917,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5918,1
    - Dst: sftk_MapCryptError
      Src: /src/nss/lib/softoken/pkcs11c.c:5920,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/pkcs11c.c:5920,1
    - Dst: EC_NewKey
      Src: /src/nss/lib/softoken/pkcs11c.c:5923,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/pkcs11c.c:5925,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/pkcs11c.c:5928,1
    - Dst: sftk_MapCryptError
      Src: /src/nss/lib/softoken/pkcs11c.c:5929,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/pkcs11c.c:5929,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/softoken/pkcs11c.c:5933,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/pkcs11c.c:5935,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5936,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11c.c:5937,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/pkcs11c.c:5939,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5940,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/softoken/pkcs11c.c:5942,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5947,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11c.c:5948,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5949,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5954,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11c.c:5955,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5959,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11c.c:5960,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/pkcs11c.c:5963,1
    - Dst: sftk_DeleteAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5968,1
    - Dst: sftk_kyber_PK11ParamToInternal
      Src: /src/nss/lib/softoken/pkcs11c.c:5973,1
    - Dst: sftk_kyber_AllocPrivKeyItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5974,1
    - Dst: sftk_kyber_AllocPubKeyItem
      Src: /src/nss/lib/softoken/pkcs11c.c:5978,1
    - Dst: Kyber_NewKey
      Src: /src/nss/lib/softoken/pkcs11c.c:5982,1
    - Dst: sftk_MapCryptError
      Src: /src/nss/lib/softoken/pkcs11c.c:5984,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/pkcs11c.c:5984,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5988,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11c.c:5988,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5992,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:5997,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11c.c:5998,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:6002,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:6007,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11c.c:6008,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:6010,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:6011,1
    - Dst: sftk_DeleteAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:6016,1
    - Dst: sftk_DeleteAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:6017,1
    - Dst: sftk_DeleteAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:6018,1
    - Dst: sftk_Attribute2SSecItem
      Src: /src/nss/lib/softoken/pkcs11c.c:6022,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:6028,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11c.c:6029,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:6031,1
    - Dst: EC_DecodeParams
      Src: /src/nss/lib/softoken/pkcs11c.c:6036,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:6037,1
    - Dst: sftk_MapCryptError
      Src: /src/nss/lib/softoken/pkcs11c.c:6039,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/pkcs11c.c:6039,1
    - Dst: EC_NewKey
      Src: /src/nss/lib/softoken/pkcs11c.c:6043,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/pkcs11c.c:6045,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/pkcs11c.c:6048,1
    - Dst: sftk_MapCryptError
      Src: /src/nss/lib/softoken/pkcs11c.c:6049,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/pkcs11c.c:6049,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/pkcs11c.c:6052,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:6053,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11c.c:6054,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:6058,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11c.c:6059,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:6063,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11c.c:6064,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/pkcs11c.c:6067,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11c.c:6075,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11c.c:6076,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:6085,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:6089,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:6093,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:6097,1
    - Dst: sftk_SessionFromHandle
      Src: /src/nss/lib/softoken/pkcs11c.c:6101,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11c.c:6107,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11c.c:6108,1
    - Dst: sftk_handleObject
      Src: /src/nss/lib/softoken/pkcs11c.c:6115,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11c.c:6117,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11c.c:6118,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11c.c:6119,1
    - Dst: sftk_handleObject
      Src: /src/nss/lib/softoken/pkcs11c.c:6128,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11c.c:6129,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11c.c:6131,1
    - Dst: NSC_DestroyObject
      Src: /src/nss/lib/softoken/pkcs11c.c:6132,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11c.c:6133,1
    - Dst: sftk_isTrue
      Src: /src/nss/lib/softoken/pkcs11c.c:6136,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:6137,1
    - Dst: sftk_isTrue
      Src: /src/nss/lib/softoken/pkcs11c.c:6140,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:6141,1
    - Dst: sftk_isTrue
      Src: /src/nss/lib/softoken/pkcs11c.c:6144,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:6145,1
    - Dst: sftk_isTrue
      Src: /src/nss/lib/softoken/pkcs11c.c:6148,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:6149,1
    - Dst: sftk_PairwiseConsistencyCheck
      Src: /src/nss/lib/softoken/pkcs11c.c:6155,1
    - Dst: PR_snprintf
      Src: /src/nss/lib/softoken/pkcs11c.c:6160,1
    - Dst: sftk_LogAuditMessage
      Src: /src/nss/lib/softoken/pkcs11c.c:6166,1
    - Dst: NSC_DestroyObject
      Src: /src/nss/lib/softoken/pkcs11c.c:6172,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11c.c:6173,1
    - Dst: NSC_DestroyObject
      Src: /src/nss/lib/softoken/pkcs11c.c:6174,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11c.c:6175,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11c.c:6180,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11c.c:6181,1
    CyclomaticComplexity: 175
    EdgeCount: 175
    ICount: 511
    argCount: 8
    argNames:
    - hSession
    - pMechanism
    - pPublicKeyTemplate
    - ulPublicKeyAttributeCount
    - pPrivateKeyTemplate
    - ulPrivateKeyAttributeCount
    - phPublicKey
    - phPrivateKey
    argTypes:
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    - CK_OBJECT_HANDLE_PTR
    - CK_OBJECT_HANDLE_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6184
      start: 5506
    functionDepth: 8
    functionLinenumber: 5506
    functionLinenumberEnd: 6184
    functionName: NSC_GenerateKeyPair
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 1
    functionsReached:
    - sftk_LogAuditMessage
    - sftk_SessionFromHandle
    - EC_DecodeParams
    - sftk_item_expand
    - PR_GetEnvSecure
    - sftk_kyber_AllocPubKeyItem
    - sftk_attr_expand
    - EC_NewKey
    - PR_snprintf
    - sftk_AddAttributeType
    - SEC_ASN1EncodeItem
    - sftk_GetLengthInBits
    - sftk_MapCryptError
    - sftk_kyber_PK11ParamToInternal
    - sftk_handleObject
    - SECITEM_FreeItem
    - sftk_DeleteAttributeType
    - sftk_PairwiseConsistencyCheck
    - DSA_NewKey
    - PORT_FreeArena
    - RSA_NewKey
    - SECITEM_ZfreeItem
    - sftk_FreeSession
    - sftk_Attribute2SSecItem
    - Kyber_NewKey
    - sftk_isTrue
    - PORT_GetError
    - sftk_SlotFromSessionHandle
    - sftk_kyber_AllocPrivKeyItem
    - CHECK_FORK
    - DH_NewKey
    - NSC_DestroyObject
    - sftk_forceAttribute
    - SEC_ASN1_GET
    - sftk_NewObject
    - sftk_FreeObject
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_GenerateKeyPair(CK_SESSION_HANDLE hSession,\n                    CK_MECHANISM_PTR
      pMechanism, CK_ATTRIBUTE_PTR pPublicKeyTemplate,\n                    CK_ULONG
      ulPublicKeyAttributeCount, CK_ATTRIBUTE_PTR pPrivateKeyTemplate,\n                    CK_ULONG
      ulPrivateKeyAttributeCount, CK_OBJECT_HANDLE_PTR phPublicKey,\n                    CK_OBJECT_HANDLE_PTR
      phPrivateKey)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:6207,1
    - Dst: sftk_GetPrivKey
      Src: /src/nss/lib/softoken/pkcs11c.c:6213,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:6214,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/pkcs11c.c:6219,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/softoken/pkcs11c.c:6226,1
    - Dst: prepare_low_rsa_priv_key_for_asn1
      Src: /src/nss/lib/softoken/pkcs11c.c:6238,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:6239,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:6243,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/softoken/pkcs11c.c:6251,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:6254,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:6259,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:6263,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/softoken/pkcs11c.c:6267,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:6270,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/softoken/pkcs11c.c:6275,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:6277,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:6282,1
    - Dst: prepare_low_dsa_priv_key_export_for_asn1
      Src: /src/nss/lib/softoken/pkcs11c.c:6289,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:6290,1
    - Dst: prepare_low_pqg_params_for_asn1
      Src: /src/nss/lib/softoken/pkcs11c.c:6292,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:6293,1
    - Dst: prepare_low_ec_priv_key_for_asn1
      Src: /src/nss/lib/softoken/pkcs11c.c:6298,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:6310,1
    - Dst: SEC_PRINT
      Src: /src/nss/lib/softoken/pkcs11c.c:6317,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/softoken/pkcs11c.c:6321,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/lib/softoken/pkcs11c.c:6337,1
    - Dst: SEC_ASN1EncodeInteger
      Src: /src/nss/lib/softoken/pkcs11c.c:6345,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:6353,1
    - Dst: SEC_PRINT
      Src: /src/nss/lib/softoken/pkcs11c.c:6359,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/pkcs11c.c:6364,1
    - Dst: nsslowkey_DestroyPrivateKey
      Src: /src/nss/lib/softoken/pkcs11c.c:6368,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:6372,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 139
    argCount: 2
    argNames:
    - key
    - crvp
    argTypes:
    - SFTKObject*
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6380
      start: 6186
    functionDepth: 3
    functionLinenumber: 6186
    functionLinenumberEnd: 6380
    functionName: sftk_PackagePrivateKey
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - prepare_low_pqg_params_for_asn1
    - SEC_ASN1EncodeItem
    - PORT_NewArena
    - prepare_low_dsa_priv_key_export_for_asn1
    - SECOID_SetAlgorithmID
    - SEC_ASN1EncodeInteger
    - prepare_low_ec_priv_key_for_asn1
    - SECOID_GetAlgorithmTag
    - PORT_ArenaZAlloc
    - sftk_FreeAttribute
    - PORT_FreeArena
    - SEC_QuickDERDecodeItem
    - SECITEM_ZfreeItem
    - SECITEM_DupItem
    - sftk_FindAttribute
    - sftk_GetPrivKey
    - prepare_low_rsa_priv_key_for_asn1
    - nsslowkey_DestroyPrivateKey
    - SEC_PRINT
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      sftk_PackagePrivateKey(SFTKObject *key, CK_RV *crvp)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - crv
    argTypes:
    - CK_RV
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6393
      start: 6384
    functionDepth: 0
    functionLinenumber: 6384
    functionLinenumberEnd: 6393
    functionName: sftk_mapWrap
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV sftk_mapWrap(CK_RV crv)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11c.c:6407,1
    - Dst: sftk_SessionFromHandle
      Src: /src/nss/lib/softoken/pkcs11c.c:6409,1
    - Dst: sftk_ObjectFromHandle
      Src: /src/nss/lib/softoken/pkcs11c.c:6414,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11c.c:6416,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:6425,1
    - Dst: sftk_CryptInit
      Src: /src/nss/lib/softoken/pkcs11c.c:6431,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:6434,1
    - Dst: sftk_GetContext
      Src: /src/nss/lib/softoken/pkcs11c.c:6443,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/softoken/pkcs11c.c:6454,1
    - Dst: memcpy
      Src: /src/nss/lib/softoken/pkcs11c.c:6456,1
    - Dst: NSC_Encrypt
      Src: /src/nss/lib/softoken/pkcs11c.c:6465,1
    - Dst: sftk_GetContext
      Src: /src/nss/lib/softoken/pkcs11c.c:6471,1
    - Dst: sftk_SetContextByType
      Src: /src/nss/lib/softoken/pkcs11c.c:6473,1
    - Dst: sftk_FreeContext
      Src: /src/nss/lib/softoken/pkcs11c.c:6475,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/softoken/pkcs11c.c:6480,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:6481,1
    - Dst: sftk_PackagePrivateKey
      Src: /src/nss/lib/softoken/pkcs11c.c:6486,1
    - Dst: sftk_CryptInit
      Src: /src/nss/lib/softoken/pkcs11c.c:6493,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:6496,1
    - Dst: NSC_Encrypt
      Src: /src/nss/lib/softoken/pkcs11c.c:6501,1
    - Dst: sftk_GetContext
      Src: /src/nss/lib/softoken/pkcs11c.c:6506,1
    - Dst: sftk_SetContextByType
      Src: /src/nss/lib/softoken/pkcs11c.c:6508,1
    - Dst: sftk_FreeContext
      Src: /src/nss/lib/softoken/pkcs11c.c:6510,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:6513,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11c.c:6521,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11c.c:6522,1
    - Dst: sftk_mapWrap
      Src: /src/nss/lib/softoken/pkcs11c.c:6523,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 81
    argCount: 6
    argNames:
    - hSession
    - pMechanism
    - hWrappingKey
    - hKey
    - pWrappedKey
    - pulWrappedKeyLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_OBJECT_HANDLE
    - CK_OBJECT_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6524
      start: 6396
    functionDepth: 4
    functionLinenumber: 6396
    functionLinenumberEnd: 6524
    functionName: NSC_WrapKey
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - sftk_ObjectFromHandle
    - sftk_FreeSession
    - sftk_FindAttribute
    - sftk_SessionFromHandle
    - memcpy
    - PORT_ZFree
    - sftk_FreeAttribute
    - sftk_FreeContext
    - SECITEM_ZfreeItem
    - PORT_ZAlloc
    - NSC_Encrypt
    - sftk_PackagePrivateKey
    - sftk_mapWrap
    - CHECK_FORK
    - sftk_GetContext
    - sftk_FreeObject
    - sftk_SetContextByType
    - sftk_CryptInit
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_WrapKey(CK_SESSION_HANDLE hSession,\n            CK_MECHANISM_PTR
      pMechanism, CK_OBJECT_HANDLE hWrappingKey,\n            CK_OBJECT_HANDLE hKey,
      CK_BYTE_PTR pWrappedKey,\n            CK_ULONG_PTR pulWrappedKeyLen)"
  - BBCount: 58
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/pkcs11c.c:6542,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/softoken/pkcs11c.c:6547,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/pkcs11c.c:6550,1
    - Dst: SEC_ASN1DecodeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:6554,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/pkcs11c.c:6555,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/softoken/pkcs11c.c:6559,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/softoken/pkcs11c.c:6566,1
    - Dst: prepare_low_rsa_priv_key_for_asn1
      Src: /src/nss/lib/softoken/pkcs11c.c:6573,1
    - Dst: prepare_low_dsa_priv_key_export_for_asn1
      Src: /src/nss/lib/softoken/pkcs11c.c:6580,1
    - Dst: prepare_low_pqg_params_for_asn1
      Src: /src/nss/lib/softoken/pkcs11c.c:6581,1
    - Dst: prepare_low_ec_priv_key_for_asn1
      Src: /src/nss/lib/softoken/pkcs11c.c:6589,1
    - Dst: prepare_low_ecparams_for_asn1
      Src: /src/nss/lib/softoken/pkcs11c.c:6590,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:6604,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/pkcs11c.c:6609,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:6621,1
    - Dst: sftk_hasAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:6633,1
    - Dst: sftk_DeleteAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:6634,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:6636,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:6640,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:6644,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:6648,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:6652,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:6656,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11c.c:6657,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:6660,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11c.c:6661,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:6664,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11c.c:6665,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:6668,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11c.c:6669,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:6672,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11c.c:6673,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:6676,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11c.c:6677,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:6680,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11c.c:6681,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:6684,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11c.c:6685,1
    - Dst: sftk_hasAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:6689,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:6692,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:6696,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:6700,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:6704,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11c.c:6705,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:6708,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11c.c:6709,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:6712,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11c.c:6713,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:6716,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11c.c:6717,1
    - Dst: sftk_hasAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:6731,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:6734,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:6738,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:6742,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:6746,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:6750,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11c.c:6751,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:6754,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11c.c:6755,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/softoken/pkcs11c.c:6771,1
    - Dst: memset
      Src: /src/nss/lib/softoken/pkcs11c.c:6776,1
    - Dst: SECOID_CopyAlgorithmID
      Src: /src/nss/lib/softoken/pkcs11c.c:6777,1
    - Dst: prepare_low_rsa_pub_key_for_asn1
      Src: /src/nss/lib/softoken/pkcs11c.c:6783,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/pkcs11c.c:6785,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/pkcs11c.c:6790,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:6796,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:6802,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:6808,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/pkcs11c.c:6809,1
    - Dst: nsslowkey_DestroyPrivateKey
      Src: /src/nss/lib/softoken/pkcs11c.c:6814,1
    CyclomaticComplexity: 97
    EdgeCount: 97
    ICount: 227
    argCount: 2
    argNames:
    - key
    - bpki
    argTypes:
    - SFTKObject*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6822
      start: 6529
    functionDepth: 1
    functionLinenumber: 6529
    functionLinenumberEnd: 6822
    functionName: sftk_unwrapPrivateKey
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - prepare_low_pqg_params_for_asn1
    - sftk_item_expand
    - SECOID_CopyAlgorithmID
    - sftk_hasAttribute
    - sftk_AddAttributeType
    - SEC_ASN1EncodeItem
    - PORT_NewArena
    - prepare_low_dsa_priv_key_export_for_asn1
    - memset
    - sftk_DeleteAttributeType
    - prepare_low_ec_priv_key_for_asn1
    - SECOID_GetAlgorithmTag
    - PORT_ArenaZAlloc
    - prepare_low_rsa_pub_key_for_asn1
    - PORT_FreeArena
    - SEC_ASN1DecodeItem
    - SEC_QuickDERDecodeItem
    - nsslowkey_DestroyPrivateKey
    - SECITEM_CopyItem
    - prepare_low_rsa_priv_key_for_asn1
    - prepare_low_ecparams_for_asn1
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sftk_unwrapPrivateKey(SFTKObject *key, SECItem *bpki)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: sftk_SlotFromSessionHandle
      Src: /src/nss/lib/softoken/pkcs11c.c:6839,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11c.c:6843,1
    - Dst: sftk_NewObject
      Src: /src/nss/lib/softoken/pkcs11c.c:6851,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:6867,1
    - Dst: sftk_attr_expand
      Src: /src/nss/lib/softoken/pkcs11c.c:6867,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11c.c:6872,1
    - Dst: sftk_CryptInit
      Src: /src/nss/lib/softoken/pkcs11c.c:6876,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11c.c:6879,1
    - Dst: sftk_mapWrap
      Src: /src/nss/lib/softoken/pkcs11c.c:6880,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/pkcs11c.c:6886,1
    - Dst: NSC_Decrypt
      Src: /src/nss/lib/softoken/pkcs11c.c:6889,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11c.c:6891,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/pkcs11c.c:6892,1
    - Dst: sftk_mapWrap
      Src: /src/nss/lib/softoken/pkcs11c.c:6893,1
    - Dst: sftk_hasAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:6898,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:6912,1
    - Dst: sftk_unwrapPrivateKey
      Src: /src/nss/lib/softoken/pkcs11c.c:6918,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/softoken/pkcs11c.c:6927,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11c.c:6929,1
    - Dst: sftk_SessionFromHandle
      Src: /src/nss/lib/softoken/pkcs11c.c:6934,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11c.c:6936,1
    - Dst: sftk_handleObject
      Src: /src/nss/lib/softoken/pkcs11c.c:6946,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11c.c:6948,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11c.c:6949,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 81
    argCount: 8
    argNames:
    - hSession
    - pMechanism
    - hUnwrappingKey
    - pWrappedKey
    - ulWrappedKeyLen
    - pTemplate
    - ulAttributeCount
    - phKey
    argTypes:
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_OBJECT_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    - CK_OBJECT_HANDLE_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6952
      start: 6825
    functionDepth: 8
    functionLinenumber: 6825
    functionLinenumberEnd: 6952
    functionName: NSC_UnwrapKey
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - sftk_hasAttribute
    - sftk_FreeSession
    - sftk_AddAttributeType
    - sftk_CryptInit
    - sftk_unwrapPrivateKey
    - PORT_ZFree
    - sftk_SessionFromHandle
    - PORT_Free
    - sftk_mapWrap
    - NSC_Decrypt
    - sftk_SlotFromSessionHandle
    - sftk_handleObject
    - sftk_attr_expand
    - CHECK_FORK
    - sftk_NewObject
    - sftk_FreeObject
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_UnwrapKey(CK_SESSION_HANDLE hSession,\n              CK_MECHANISM_PTR
      pMechanism, CK_OBJECT_HANDLE hUnwrappingKey,\n              CK_BYTE_PTR pWrappedKey,
      CK_ULONG ulWrappedKeyLen,\n              CK_ATTRIBUTE_PTR pTemplate, CK_ULONG
      ulAttributeCount,\n              CK_OBJECT_HANDLE_PTR phKey)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: sftk_NewObject
      Src: /src/nss/lib/softoken/pkcs11c.c:6974,1
    - Dst: sftk_narrowToSessionObject
      Src: /src/nss/lib/softoken/pkcs11c.c:6977,1
    - Dst: sftk_CopyObject
      Src: /src/nss/lib/softoken/pkcs11c.c:6979,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:6983,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:6986,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:6989,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:6992,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:6995,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:6998,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:7001,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:7004,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:7008,1
    - Dst: sftk_SessionFromHandle
      Src: /src/nss/lib/softoken/pkcs11c.c:7014,1
    - Dst: sftk_handleObject
      Src: /src/nss/lib/softoken/pkcs11c.c:7019,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11c.c:7020,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11c.c:7024,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 62
    argCount: 6
    argNames:
    - hSession
    - baseKey
    - isMacKey
    - keyBlock
    - keySize
    - keyHandle
    argTypes:
    - CK_SESSION_HANDLE
    - SFTKObject*
    - PRBool
    - unsigned char*
    - unsigned int
    - CK_OBJECT_HANDLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7026
      start: 6958
    functionDepth: 8
    functionLinenumber: 6958
    functionLinenumberEnd: 7026
    functionName: sftk_buildSSLKey
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - sftk_FreeSession
    - sftk_SessionFromHandle
    - sftk_CopyObject
    - sftk_narrowToSessionObject
    - sftk_handleObject
    - sftk_forceAttribute
    - sftk_NewObject
    - sftk_FreeObject
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftk_buildSSLKey(CK_SESSION_HANDLE hSession, SFTKObject *baseKey,\n
      \                PRBool isMacKey, unsigned char *keyBlock, unsigned int keySize,\n
      \                CK_OBJECT_HANDLE *keyHandle)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NSC_DestroyObject
      Src: /src/nss/lib/softoken/pkcs11c.c:7037,1
    - Dst: NSC_DestroyObject
      Src: /src/nss/lib/softoken/pkcs11c.c:7040,1
    - Dst: NSC_DestroyObject
      Src: /src/nss/lib/softoken/pkcs11c.c:7043,1
    - Dst: NSC_DestroyObject
      Src: /src/nss/lib/softoken/pkcs11c.c:7046,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - session
    - returnedMaterial
    argTypes:
    - CK_SESSION_HANDLE
    - CK_SSL3_KEY_MAT_OUT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7048
      start: 7032
    functionDepth: 5
    functionLinenumber: 7032
    functionLinenumberEnd: 7048
    functionName: sftk_freeSSLKeys
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - NSC_DestroyObject
    linkageType: ''
    returnType: void
    signature: "void sftk_freeSSLKeys(CK_SESSION_HANDLE session,\n                 CK_SSL3_KEY_MAT_OUT
      *returnedMaterial)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: sftk_GetULongAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:7074,1
    - Dst: sftk_GetULongAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:7084,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:7094,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:7098,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:7102,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:7106,1
    - Dst: sftk_isTrue
      Src: /src/nss/lib/softoken/pkcs11c.c:7110,1
    - Dst: sftk_isTrue
      Src: /src/nss/lib/softoken/pkcs11c.c:7114,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:7121,1
    - Dst: sftk_defaultAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:7123,1
    - Dst: sftk_attr_expand
      Src: /src/nss/lib/softoken/pkcs11c.c:7124,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:7125,1
    - Dst: sftk_defaultAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:7127,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:7136,1
    - Dst: sftk_defaultAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:7138,1
    - Dst: sftk_attr_expand
      Src: /src/nss/lib/softoken/pkcs11c.c:7139,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:7140,1
    - Dst: sftk_defaultAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:7142,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 66
    argCount: 3
    argNames:
    - baseKey
    - destKey
    - canBeData
    argTypes:
    - SFTKObject*
    - SFTKObject*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7155
      start: 7055
    functionDepth: 2
    functionLinenumber: 7055
    functionLinenumberEnd: 7155
    functionName: sftk_DeriveSensitiveCheck
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - sftk_FindAttribute
    - sftk_FreeAttribute
    - sftk_GetULongAttribute
    - sftk_isTrue
    - sftk_defaultAttribute
    - sftk_attr_expand
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftk_DeriveSensitiveCheck(SFTKObject *baseKey, SFTKObject *destKey,\n
      \                         PRBool canBeData)"
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - keyType
    argTypes:
    - CK_KEY_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7177
      start: 7160
    functionDepth: 0
    functionLinenumber: 7160
    functionLinenumberEnd: 7177
    functionName: sftk_MapKeySize
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: unsigned long
    signature: unsigned long sftk_MapKeySize(CK_KEY_TYPE keyType)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/pkcs11c.c:7210,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/pkcs11c.c:7220,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11c.c:7228,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11c.c:7234,1
    - Dst: Hash
      Src: /src/nss/lib/softoken/pkcs11c.c:7238,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/softoken/pkcs11c.c:7249,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/pkcs11c.c:7251,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/softoken/pkcs11c.c:7259,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/softoken/pkcs11c.c:7262,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 53
    argCount: 7
    argNames:
    - key
    - key_len
    - SharedSecret
    - SharedInfo
    - SharedInfoLen
    - Hash
    - HashLen
    argTypes:
    - CK_BYTE**
    - CK_ULONG
    - SECItem*
    - CK_BYTE_PTR
    - CK_ULONG
    - SECStatus
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7265
      start: 7189
    functionDepth: 0
    functionLinenumber: 7189
    functionLinenumberEnd: 7265
    functionName: sftk_compute_ANSI_X9_63_kdf
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_ZFree
    - PORT_Memcpy
    - Hash
    - PORT_Memset
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftk_compute_ANSI_X9_63_kdf(CK_BYTE **key, CK_ULONG key_len,
      SECItem *SharedSecret,\n                            CK_BYTE_PTR SharedInfo,
      CK_ULONG SharedInfoLen,\n                            SECStatus Hash(unsigned
      char *, const unsigned char *, PRUint32),\n                            CK_ULONG
      HashLen)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sftk_compute_ANSI_X9_63_kdf
      Src: /src/nss/lib/softoken/pkcs11c.c:7274,1
    - Dst: sftk_compute_ANSI_X9_63_kdf
      Src: /src/nss/lib/softoken/pkcs11c.c:7277,1
    - Dst: sftk_compute_ANSI_X9_63_kdf
      Src: /src/nss/lib/softoken/pkcs11c.c:7280,1
    - Dst: sftk_compute_ANSI_X9_63_kdf
      Src: /src/nss/lib/softoken/pkcs11c.c:7283,1
    - Dst: sftk_compute_ANSI_X9_63_kdf
      Src: /src/nss/lib/softoken/pkcs11c.c:7286,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 6
    argNames:
    - key
    - key_len
    - SharedSecret
    - SharedInfo
    - SharedInfoLen
    - kdf
    argTypes:
    - CK_BYTE**
    - CK_ULONG
    - SECItem*
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_EC_KDF_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7290
      start: 7267
    functionDepth: 1
    functionLinenumber: 7267
    functionLinenumberEnd: 7290
    functionName: sftk_ANSI_X9_63_kdf
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - sftk_compute_ANSI_X9_63_kdf
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftk_ANSI_X9_63_kdf(CK_BYTE **key, CK_ULONG key_len,\n                    SECItem
      *SharedSecret,\n                    CK_BYTE_PTR SharedInfo, CK_ULONG SharedInfoLen,\n
      \                   CK_EC_KDF_TYPE kdf)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sftk_MapCryptError
      Src: /src/nss/lib/softoken/pkcs11c.c:7321,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/pkcs11c.c:7321,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:7325,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/pkcs11c.c:7326,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 7
    argNames:
    - encrypt
    - cipherInfo
    - blockSize
    - key
    - keySize
    - data
    - len
    argTypes:
    - SFTKCipher
    - void*
    - int
    - SFTKObject*
    - CK_ULONG
    - unsigned char*
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7328
      start: 7295
    functionDepth: 1
    functionLinenumber: 7295
    functionLinenumberEnd: 7328
    functionName: sftk_DeriveEncrypt
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - sftk_forceAttribute
    - PORT_Memset
    - PORT_GetError
    - sftk_MapCryptError
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftk_DeriveEncrypt(SFTKCipher encrypt, void *cipherInfo,\n                   int
      blockSize, SFTKObject *key, CK_ULONG keySize,\n                   unsigned char
      *data, CK_ULONG len)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: sftk_GetHashTypeFromMechanism
      Src: /src/nss/lib/softoken/pkcs11c.c:7348,1
    - Dst: sftk_HMACMechanismToHash
      Src: /src/nss/lib/softoken/pkcs11c.c:7354,1
    - Dst: HASH_GetRawHashObject
      Src: /src/nss/lib/softoken/pkcs11c.c:7356,1
    - Dst: sftk_DeriveSensitiveCheck
      Src: /src/nss/lib/softoken/pkcs11c.c:7376,1
    - Dst: memset
      Src: /src/nss/lib/softoken/pkcs11c.c:7392,1
    - Dst: sftk_SessionFromHandle
      Src: /src/nss/lib/softoken/pkcs11c.c:7403,1
    - Dst: sftk_ObjectFromHandle
      Src: /src/nss/lib/softoken/pkcs11c.c:7408,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11c.c:7409,1
    - Dst: sftk_operationIsFIPS
      Src: /src/nss/lib/softoken/pkcs11c.c:7420,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:7423,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11c.c:7425,1
    - Dst: HMAC_Create
      Src: /src/nss/lib/softoken/pkcs11c.c:7437,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:7439,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11c.c:7442,1
    - Dst: HMAC_Begin
      Src: /src/nss/lib/softoken/pkcs11c.c:7447,1
    - Dst: HMAC_Update
      Src: /src/nss/lib/softoken/pkcs11c.c:7448,1
    - Dst: HMAC_Finish
      Src: /src/nss/lib/softoken/pkcs11c.c:7449,1
    - Dst: HMAC_Destroy
      Src: /src/nss/lib/softoken/pkcs11c.c:7450,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/pkcs11c.c:7451,1
    - Dst: PR_ROUNDUP
      Src: /src/nss/lib/softoken/pkcs11c.c:7473,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/pkcs11c.c:7477,1
    - Dst: HMAC_Create
      Src: /src/nss/lib/softoken/pkcs11c.c:7483,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/pkcs11c.c:7485,1
    - Dst: HMAC_Begin
      Src: /src/nss/lib/softoken/pkcs11c.c:7490,1
    - Dst: HMAC_Update
      Src: /src/nss/lib/softoken/pkcs11c.c:7492,1
    - Dst: HMAC_Update
      Src: /src/nss/lib/softoken/pkcs11c.c:7495,1
    - Dst: HMAC_Update
      Src: /src/nss/lib/softoken/pkcs11c.c:7497,1
    - Dst: HMAC_Finish
      Src: /src/nss/lib/softoken/pkcs11c.c:7498,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/pkcs11c.c:7500,1
    - Dst: HMAC_Destroy
      Src: /src/nss/lib/softoken/pkcs11c.c:7502,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:7508,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/pkcs11c.c:7510,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11c.c:7511,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/pkcs11c.c:7513,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/pkcs11c.c:7514,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/pkcs11c.c:7515,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 127
    argCount: 10
    argNames:
    - params
    - hSession
    - sourceKey
    - sourceKeyBytes
    - sourceKeyLen
    - key
    - outKeyBytes
    - keySize
    - canBeData
    - isFIPS
    argTypes:
    - CK_HKDF_PARAMS_PTR
    - CK_SESSION_HANDLE
    - SFTKObject*
    - unsigned char*
    - int
    - SFTKObject*
    - unsigned char*
    - int
    - PRBool
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7517
      start: 7330
    functionDepth: 3
    functionLinenumber: 7330
    functionLinenumberEnd: 7517
    functionName: sftk_HKDF
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 1
    functionsReached:
    - sftk_SessionFromHandle
    - HMAC_Begin
    - HMAC_Update
    - sftk_DeriveSensitiveCheck
    - PORT_Memcpy
    - HMAC_Finish
    - memset
    - PORT_Assert
    - sftk_HMACMechanismToHash
    - sftk_FreeAttribute
    - sftk_GetHashTypeFromMechanism
    - HMAC_Create
    - PR_ROUNDUP
    - PORT_Alloc
    - sftk_ObjectFromHandle
    - sftk_FreeSession
    - sftk_FindAttribute
    - PORT_Free
    - HMAC_Destroy
    - HASH_GetRawHashObject
    - sftk_forceAttribute
    - PORT_Memset
    - sftk_operationIsFIPS
    - sftk_FreeObject
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftk_HKDF(CK_HKDF_PARAMS_PTR params, CK_SESSION_HANDLE hSession,\n
      \         SFTKObject *sourceKey, const unsigned char *sourceKeyBytes,\n          int
      sourceKeyLen, SFTKObject *key, unsigned char *outKeyBytes,\n          int keySize,
      PRBool canBeData, PRBool isFIPS)"
  - BBCount: 258
    BranchProfiles: []
    Callsites:
    - Dst: sftk_SlotFromSessionHandle
      Src: /src/nss/lib/softoken/pkcs11c.c:7546,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11c.c:7580,1
    - Dst: sftk_NewObject
      Src: /src/nss/lib/softoken/pkcs11c.c:7597,1
    - Dst: sftk_isFIPS
      Src: /src/nss/lib/softoken/pkcs11c.c:7601,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11c.c:7607,1
    - Dst: sftk_attr_expand
      Src: /src/nss/lib/softoken/pkcs11c.c:7607,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11c.c:7619,1
    - Dst: sftk_MapKeySize
      Src: /src/nss/lib/softoken/pkcs11c.c:7624,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:7655,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11c.c:7657,1
    - Dst: sftk_SessionFromHandle
      Src: /src/nss/lib/softoken/pkcs11c.c:7662,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11c.c:7664,1
    - Dst: sftk_ObjectFromHandle
      Src: /src/nss/lib/softoken/pkcs11c.c:7668,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11c.c:7669,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11c.c:7674,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:7680,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11c.c:7682,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11c.c:7683,1
    - Dst: sftk_operationIsFIPS
      Src: /src/nss/lib/softoken/pkcs11c.c:7687,1
    - Dst: sftk_GetULongAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:7697,1
    - Dst: sftk_GetPrivKey
      Src: /src/nss/lib/softoken/pkcs11c.c:7704,1
    - Dst: nsslowkey_ConvertToPublicKey
      Src: /src/nss/lib/softoken/pkcs11c.c:7708,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/pkcs11c.c:7710,1
    - Dst: sftk_MapCryptError
      Src: /src/nss/lib/softoken/pkcs11c.c:7711,1
    - Dst: sftk_PutPubKey
      Src: /src/nss/lib/softoken/pkcs11c.c:7714,1
    - Dst: nsslowkey_DestroyPublicKey
      Src: /src/nss/lib/softoken/pkcs11c.c:7715,1
    - Dst: sftk_ike_prf
      Src: /src/nss/lib/softoken/pkcs11c.c:7725,1
    - Dst: sftk_ike1_prf
      Src: /src/nss/lib/softoken/pkcs11c.c:7735,1
    - Dst: sftk_ike1_appendix_b_prf
      Src: /src/nss/lib/softoken/pkcs11c.c:7755,1
    - Dst: sftk_ike_prf_plus
      Src: /src/nss/lib/softoken/pkcs11c.c:7765,1
    - Dst: BAD_PARAM_CAST
      Src: /src/nss/lib/softoken/pkcs11c.c:7786,1
    - Dst: sftk_GetHashTypeFromMechanism
      Src: /src/nss/lib/softoken/pkcs11c.c:7792,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:7818,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:7822,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:7826,1
    - Dst: sftk_narrowToSessionObject
      Src: /src/nss/lib/softoken/pkcs11c.c:7841,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11c.c:7860,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11c.c:7862,1
    - Dst: TLS_P_hash
      Src: /src/nss/lib/softoken/pkcs11c.c:7879,1
    - Dst: TLS_PRF
      Src: /src/nss/lib/softoken/pkcs11c.c:7882,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/pkcs11c.c:7885,1
    - Dst: MD5_NewContext
      Src: /src/nss/lib/softoken/pkcs11c.c:7891,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/pkcs11c.c:7893,1
    - Dst: SHA1_NewContext
      Src: /src/nss/lib/softoken/pkcs11c.c:7897,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/pkcs11c.c:7899,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/pkcs11c.c:7900,1
    - Dst: SHA1_Begin
      Src: /src/nss/lib/softoken/pkcs11c.c:7905,1
    - Dst: SHA1_Update
      Src: /src/nss/lib/softoken/pkcs11c.c:7906,1
    - Dst: strlen
      Src: /src/nss/lib/softoken/pkcs11c.c:7906,1
    - Dst: SHA1_Update
      Src: /src/nss/lib/softoken/pkcs11c.c:7907,1
    - Dst: SHA1_Update
      Src: /src/nss/lib/softoken/pkcs11c.c:7909,1
    - Dst: SHA1_End
      Src: /src/nss/lib/softoken/pkcs11c.c:7910,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/pkcs11c.c:7911,1
    - Dst: MD5_Begin
      Src: /src/nss/lib/softoken/pkcs11c.c:7913,1
    - Dst: MD5_Update
      Src: /src/nss/lib/softoken/pkcs11c.c:7914,1
    - Dst: MD5_Update
      Src: /src/nss/lib/softoken/pkcs11c.c:7916,1
    - Dst: MD5_End
      Src: /src/nss/lib/softoken/pkcs11c.c:7917,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/pkcs11c.c:7918,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/pkcs11c.c:7920,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/pkcs11c.c:7921,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/pkcs11c.c:7922,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/pkcs11c.c:7923,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:7927,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/pkcs11c.c:7928,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:7932,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:7937,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:7940,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:7944,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:7970,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:7974,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:7978,1
    - Dst: TLS_PRF
      Src: /src/nss/lib/softoken/pkcs11c.c:8005,1
    - Dst: sftk_GetHashTypeFromMechanism
      Src: /src/nss/lib/softoken/pkcs11c.c:8010,1
    - Dst: HASH_GetRawHashObject
      Src: /src/nss/lib/softoken/pkcs11c.c:8016,1
    - Dst: TLS_P_hash
      Src: /src/nss/lib/softoken/pkcs11c.c:8022,1
    - Dst: sftk_narrowToSessionObject
      Src: /src/nss/lib/softoken/pkcs11c.c:8032,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:8045,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/pkcs11c.c:8047,1
    - Dst: BAD_PARAM_CAST
      Src: /src/nss/lib/softoken/pkcs11c.c:8062,1
    - Dst: sftk_GetHashTypeFromMechanism
      Src: /src/nss/lib/softoken/pkcs11c.c:8068,1
    - Dst: sftk_DeriveSensitiveCheck
      Src: /src/nss/lib/softoken/pkcs11c.c:8081,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:8089,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:8093,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:8097,1
    - Dst: MD5_NewContext
      Src: /src/nss/lib/softoken/pkcs11c.c:8098,1
    - Dst: SHA1_NewContext
      Src: /src/nss/lib/softoken/pkcs11c.c:8103,1
    - Dst: MD5_DestroyContext
      Src: /src/nss/lib/softoken/pkcs11c.c:8105,1
    - Dst: BAD_PARAM_CAST
      Src: /src/nss/lib/softoken/pkcs11c.c:8110,1
    - Dst: MD5_DestroyContext
      Src: /src/nss/lib/softoken/pkcs11c.c:8111,1
    - Dst: SHA1_DestroyContext
      Src: /src/nss/lib/softoken/pkcs11c.c:8112,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11c.c:8118,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11c.c:8120,1
    - Dst: MD5_DestroyContext
      Src: /src/nss/lib/softoken/pkcs11c.c:8144,1
    - Dst: SHA1_DestroyContext
      Src: /src/nss/lib/softoken/pkcs11c.c:8145,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/pkcs11c.c:8146,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/pkcs11c.c:8152,1
    - Dst: TLS_P_hash
      Src: /src/nss/lib/softoken/pkcs11c.c:8174,1
    - Dst: TLS_PRF
      Src: /src/nss/lib/softoken/pkcs11c.c:8177,1
    - Dst: SHA1_Begin
      Src: /src/nss/lib/softoken/pkcs11c.c:8195,1
    - Dst: SHA1_Update
      Src: /src/nss/lib/softoken/pkcs11c.c:8196,1
    - Dst: strlen
      Src: /src/nss/lib/softoken/pkcs11c.c:8196,1
    - Dst: SHA1_Update
      Src: /src/nss/lib/softoken/pkcs11c.c:8197,1
    - Dst: SHA1_Update
      Src: /src/nss/lib/softoken/pkcs11c.c:8199,1
    - Dst: SHA1_End
      Src: /src/nss/lib/softoken/pkcs11c.c:8200,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/pkcs11c.c:8201,1
    - Dst: MD5_Begin
      Src: /src/nss/lib/softoken/pkcs11c.c:8202,1
    - Dst: MD5_Update
      Src: /src/nss/lib/softoken/pkcs11c.c:8203,1
    - Dst: MD5_Update
      Src: /src/nss/lib/softoken/pkcs11c.c:8205,1
    - Dst: MD5_End
      Src: /src/nss/lib/softoken/pkcs11c.c:8206,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/pkcs11c.c:8207,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/pkcs11c.c:8210,1
    - Dst: sftk_buildSSLKey
      Src: /src/nss/lib/softoken/pkcs11c.c:8222,1
    - Dst: sftk_buildSSLKey
      Src: /src/nss/lib/softoken/pkcs11c.c:8232,1
    - Dst: sftk_buildSSLKey
      Src: /src/nss/lib/softoken/pkcs11c.c:8244,1
    - Dst: sftk_buildSSLKey
      Src: /src/nss/lib/softoken/pkcs11c.c:8254,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11c.c:8265,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11c.c:8274,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/pkcs11c.c:8278,1
    - Dst: sftk_freeSSLKeys
      Src: /src/nss/lib/softoken/pkcs11c.c:8287,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/pkcs11c.c:8289,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/pkcs11c.c:8290,1
    - Dst: MD5_DestroyContext
      Src: /src/nss/lib/softoken/pkcs11c.c:8291,1
    - Dst: SHA1_DestroyContext
      Src: /src/nss/lib/softoken/pkcs11c.c:8292,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11c.c:8293,1
    - Dst: BAD_PARAM_CAST
      Src: /src/nss/lib/softoken/pkcs11c.c:8309,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11c.c:8329,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11c.c:8330,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11c.c:8332,1
    - Dst: DES_CreateContext
      Src: /src/nss/lib/softoken/pkcs11c.c:8337,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/pkcs11c.c:8338,1
    - Dst: sftk_DeriveEncrypt
      Src: /src/nss/lib/softoken/pkcs11c.c:8343,1
    - Dst: DES_DestroyContext
      Src: /src/nss/lib/softoken/pkcs11c.c:8346,1
    - Dst: BAD_PARAM_CAST
      Src: /src/nss/lib/softoken/pkcs11c.c:8362,1
    - Dst: BAD_PARAM_CAST
      Src: /src/nss/lib/softoken/pkcs11c.c:8370,1
    - Dst: AES_CreateContext
      Src: /src/nss/lib/softoken/pkcs11c.c:8382,1
    - Dst: sftk_DeriveEncrypt
      Src: /src/nss/lib/softoken/pkcs11c.c:8389,1
    - Dst: AES_DestroyContext
      Src: /src/nss/lib/softoken/pkcs11c.c:8392,1
    - Dst: BAD_PARAM_CAST
      Src: /src/nss/lib/softoken/pkcs11c.c:8406,1
    - Dst: BAD_PARAM_CAST
      Src: /src/nss/lib/softoken/pkcs11c.c:8418,1
    - Dst: Camellia_CreateContext
      Src: /src/nss/lib/softoken/pkcs11c.c:8431,1
    - Dst: sftk_DeriveEncrypt
      Src: /src/nss/lib/softoken/pkcs11c.c:8438,1
    - Dst: Camellia_DestroyContext
      Src: /src/nss/lib/softoken/pkcs11c.c:8441,1
    - Dst: BAD_PARAM_CAST
      Src: /src/nss/lib/softoken/pkcs11c.c:8456,1
    - Dst: BAD_PARAM_CAST
      Src: /src/nss/lib/softoken/pkcs11c.c:8468,1
    - Dst: SEED_CreateContext
      Src: /src/nss/lib/softoken/pkcs11c.c:8480,1
    - Dst: sftk_DeriveEncrypt
      Src: /src/nss/lib/softoken/pkcs11c.c:8486,1
    - Dst: SEED_DestroyContext
      Src: /src/nss/lib/softoken/pkcs11c.c:8489,1
    - Dst: sftk_DeriveSensitiveCheck
      Src: /src/nss/lib/softoken/pkcs11c.c:8497,1
    - Dst: sftk_SessionFromHandle
      Src: /src/nss/lib/softoken/pkcs11c.c:8501,1
    - Dst: sftk_ObjectFromHandle
      Src: /src/nss/lib/softoken/pkcs11c.c:8507,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11c.c:8510,1
    - Dst: sftk_isTrue
      Src: /src/nss/lib/softoken/pkcs11c.c:8516,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:8517,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11c.c:8520,1
    - Dst: sftk_hasAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:8525,1
    - Dst: sftk_isTrue
      Src: /src/nss/lib/softoken/pkcs11c.c:8525,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:8526,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11c.c:8528,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:8533,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11c.c:8535,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11c.c:8543,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:8544,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/pkcs11c.c:8548,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:8550,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11c.c:8551,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11c.c:8556,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11c.c:8557,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:8560,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/softoken/pkcs11c.c:8561,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:8562,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11c.c:8563,1
    - Dst: sftk_DeriveSensitiveCheck
      Src: /src/nss/lib/softoken/pkcs11c.c:8568,1
    - Dst: BAD_PARAM_CAST
      Src: /src/nss/lib/softoken/pkcs11c.c:8572,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/pkcs11c.c:8584,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11c.c:8590,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11c.c:8591,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:8594,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/softoken/pkcs11c.c:8595,1
    - Dst: sftk_DeriveSensitiveCheck
      Src: /src/nss/lib/softoken/pkcs11c.c:8598,1
    - Dst: BAD_PARAM_CAST
      Src: /src/nss/lib/softoken/pkcs11c.c:8602,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/pkcs11c.c:8614,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11c.c:8620,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11c.c:8621,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:8624,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/softoken/pkcs11c.c:8625,1
    - Dst: sftk_DeriveSensitiveCheck
      Src: /src/nss/lib/softoken/pkcs11c.c:8628,1
    - Dst: BAD_PARAM_CAST
      Src: /src/nss/lib/softoken/pkcs11c.c:8632,1
    - Dst: PR_MIN
      Src: /src/nss/lib/softoken/pkcs11c.c:8637,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/pkcs11c.c:8644,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11c.c:8650,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:8655,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/softoken/pkcs11c.c:8656,1
    - Dst: BAD_PARAM_CAST
      Src: /src/nss/lib/softoken/pkcs11c.c:8660,1
    - Dst: sftk_DeriveSensitiveCheck
      Src: /src/nss/lib/softoken/pkcs11c.c:8669,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/pkcs11c.c:8683,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:8700,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/softoken/pkcs11c.c:8701,1
    - Dst: MD2_NewContext
      Src: /src/nss/lib/softoken/pkcs11c.c:8712,1
    - Dst: MD2_Begin
      Src: /src/nss/lib/softoken/pkcs11c.c:8717,1
    - Dst: MD2_Update
      Src: /src/nss/lib/softoken/pkcs11c.c:8718,1
    - Dst: MD2_End
      Src: /src/nss/lib/softoken/pkcs11c.c:8720,1
    - Dst: MD2_DestroyContext
      Src: /src/nss/lib/softoken/pkcs11c.c:8721,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:8723,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/pkcs11c.c:8724,1
    - Dst: DERIVE_KEY_HASH
      Src: /src/nss/lib/softoken/pkcs11c.c:8739,1
    - Dst: DERIVE_KEY_HASH
      Src: /src/nss/lib/softoken/pkcs11c.c:8740,1
    - Dst: DERIVE_KEY_HASH
      Src: /src/nss/lib/softoken/pkcs11c.c:8741,1
    - Dst: DERIVE_KEY_HASH
      Src: /src/nss/lib/softoken/pkcs11c.c:8742,1
    - Dst: DERIVE_KEY_HASH
      Src: /src/nss/lib/softoken/pkcs11c.c:8743,1
    - Dst: DERIVE_KEY_HASH
      Src: /src/nss/lib/softoken/pkcs11c.c:8744,1
    - Dst: DERIVE_KEY_HASH
      Src: /src/nss/lib/softoken/pkcs11c.c:8745,1
    - Dst: DERIVE_KEY_HASH
      Src: /src/nss/lib/softoken/pkcs11c.c:8746,1
    - Dst: DERIVE_KEY_HASH
      Src: /src/nss/lib/softoken/pkcs11c.c:8747,1
    - Dst: DERIVE_KEY_HASH
      Src: /src/nss/lib/softoken/pkcs11c.c:8748,1
    - Dst: sftk_Attribute2SecItem
      Src: /src/nss/lib/softoken/pkcs11c.c:8756,1
    - Dst: sftk_VerifyDH_Prime
      Src: /src/nss/lib/softoken/pkcs11c.c:8765,1
    - Dst: sftk_Attribute2SecItem
      Src: /src/nss/lib/softoken/pkcs11c.c:8775,1
    - Dst: sftk_IsSafePrime
      Src: /src/nss/lib/softoken/pkcs11c.c:8787,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:8792,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:8793,1
    - Dst: KEA_PrimeCheck
      Src: /src/nss/lib/softoken/pkcs11c.c:8798,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:8800,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:8801,1
    - Dst: KEA_PrimeCheck
      Src: /src/nss/lib/softoken/pkcs11c.c:8804,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:8806,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:8807,1
    - Dst: KEA_Verify
      Src: /src/nss/lib/softoken/pkcs11c.c:8817,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:8819,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:8820,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:8828,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:8832,1
    - Dst: sftk_Attribute2SecItem
      Src: /src/nss/lib/softoken/pkcs11c.c:8836,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:8838,1
    - Dst: DH_Derive
      Src: /src/nss/lib/softoken/pkcs11c.c:8843,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:8845,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:8846,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:8849,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:8850,1
    - Dst: sftk_GetPrivKey
      Src: /src/nss/lib/softoken/pkcs11c.c:8880,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/pkcs11c.c:8886,1
    - Dst: EC_GetPointSize
      Src: /src/nss/lib/softoken/pkcs11c.c:8891,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/pkcs11c.c:8897,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:8902,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/softoken/pkcs11c.c:8903,1
    - Dst: ECDH_Derive
      Src: /src/nss/lib/softoken/pkcs11c.c:8915,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:8917,1
    - Dst: nsslowkey_DestroyPrivateKey
      Src: /src/nss/lib/softoken/pkcs11c.c:8920,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/pkcs11c.c:8924,1
    - Dst: sftk_MapCryptError
      Src: /src/nss/lib/softoken/pkcs11c.c:8929,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/pkcs11c.c:8929,1
    - Dst: sftk_ANSI_X9_63_kdf
      Src: /src/nss/lib/softoken/pkcs11c.c:8946,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/softoken/pkcs11c.c:8949,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/softoken/pkcs11c.c:8966,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/softoken/pkcs11c.c:8968,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11c.c:8972,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:8980,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/softoken/pkcs11c.c:8981,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/softoken/pkcs11c.c:8983,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11c.c:8989,1
    - Dst: nsslowkey_DestroyPrivateKey
      Src: /src/nss/lib/softoken/pkcs11c.c:8991,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/pkcs11c.c:8993,1
    - Dst: sftk_HKDF
      Src: /src/nss/lib/softoken/pkcs11c.c:9033,1
    - Dst: sftk_HKDF
      Src: /src/nss/lib/softoken/pkcs11c.c:9044,1
    - Dst: sftk_isTrue
      Src: /src/nss/lib/softoken/pkcs11c.c:9065,1
    - Dst: sftk_DeriveSensitiveCheck
      Src: /src/nss/lib/softoken/pkcs11c.c:9068,1
    - Dst: jpake_Round2
      Src: /src/nss/lib/softoken/pkcs11c.c:9070,1
    - Dst: jpake_Final
      Src: /src/nss/lib/softoken/pkcs11c.c:9099,1
    - Dst: sftk_DeriveSensitiveCheck
      Src: /src/nss/lib/softoken/pkcs11c.c:9110,1
    - Dst: kbkdf_Dispatch
      Src: /src/nss/lib/softoken/pkcs11c.c:9115,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:9121,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11c.c:9123,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11c.c:9126,1
    - Dst: sftk_narrowToSessionObject
      Src: /src/nss/lib/softoken/pkcs11c.c:9132,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/pkcs11c.c:9133,1
    - Dst: sftk_SessionFromHandle
      Src: /src/nss/lib/softoken/pkcs11c.c:9136,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11c.c:9138,1
    - Dst: sftk_handleObject
      Src: /src/nss/lib/softoken/pkcs11c.c:9142,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11c.c:9144,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11c.c:9148,1
    CyclomaticComplexity: 356
    EdgeCount: 356
    ICount: 1141
    argCount: 6
    argNames:
    - hSession
    - pMechanism
    - hBaseKey
    - pTemplate
    - ulAttributeCount
    - phKey
    argTypes:
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_OBJECT_HANDLE
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    - CK_OBJECT_HANDLE_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9151
      start: 7539
    functionDepth: 9
    functionLinenumber: 7539
    functionLinenumberEnd: 9151
    functionName: NSC_DeriveKey
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 6
    functionsReached:
    - sftk_SessionFromHandle
    - SEED_CreateContext
    - kbkdf_Dispatch
    - sftk_attr_expand
    - sftk_hasAttribute
    - sftk_AddAttributeType
    - PORT_Memcpy
    - sftk_Attribute2SecItem
    - sftk_freeSSLKeys
    - SHA1_Begin
    - PORT_ZFree
    - PORT_FreeArena
    - jpake_Final
    - PORT_ZAlloc
    - BAD_PARAM_CAST
    - SECITEM_ZfreeItem
    - MD5_Update
    - PORT_Alloc
    - sftk_VerifyDH_Prime
    - sftk_SlotFromSessionHandle
    - CHECK_FORK
    - DH_Derive
    - EC_GetPointSize
    - MD5_End
    - DES_DestroyContext
    - nsslowkey_ConvertToPublicKey
    - sftk_MapCryptError
    - KEA_PrimeCheck
    - sftk_ike_prf_plus
    - sftk_GetHashTypeFromMechanism
    - SHA1_NewContext
    - sftk_ObjectFromHandle
    - SHA1_End
    - sftk_GetULongAttribute
    - sftk_forceAttribute
    - PORT_Memset
    - sftk_DeriveEncrypt
    - SEC_ASN1_GET
    - nsslowkey_DestroyPrivateKey
    - sftk_buildSSLKey
    - TLS_PRF
    - sftk_DeriveSensitiveCheck
    - strlen
    - MD2_NewContext
    - PORT_NewArena
    - MD2_End
    - sftk_isFIPS
    - SHA1_DestroyContext
    - sftk_handleObject
    - jpake_Round2
    - MD5_Begin
    - PORT_Assert
    - MD2_Update
    - sftk_narrowToSessionObject
    - sftk_IsSafePrime
    - sftk_ike1_prf
    - DERIVE_KEY_HASH
    - ECDH_Derive
    - PORT_Free
    - SECITEM_CopyItem
    - sftk_GetPrivKey
    - sftk_PutPubKey
    - sftk_operationIsFIPS
    - sftk_NewObject
    - MD5_NewContext
    - MD5_DestroyContext
    - Camellia_CreateContext
    - nsslowkey_DestroyPublicKey
    - sftk_HKDF
    - SEED_DestroyContext
    - DES_CreateContext
    - sftk_ike1_appendix_b_prf
    - MD2_DestroyContext
    - AES_CreateContext
    - KEA_Verify
    - PR_MIN
    - sftk_FreeAttribute
    - sftk_MapKeySize
    - SEC_QuickDERDecodeItem
    - TLS_P_hash
    - Camellia_DestroyContext
    - sftk_FreeSession
    - sftk_FindAttribute
    - sftk_isTrue
    - MD2_Begin
    - PORT_GetError
    - sftk_ANSI_X9_63_kdf
    - sftk_ike_prf
    - HASH_GetRawHashObject
    - AES_DestroyContext
    - SHA1_Update
    - sftk_FreeObject
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_DeriveKey(CK_SESSION_HANDLE hSession,\n              CK_MECHANISM_PTR
      pMechanism, CK_OBJECT_HANDLE hBaseKey,\n              CK_ATTRIBUTE_PTR pTemplate,
      CK_ULONG ulAttributeCount,\n              CK_OBJECT_HANDLE_PTR phKey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - hash
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8739
      start: 8726
    functionDepth: 0
    functionLinenumber: 8726
    functionLinenumberEnd: 8739
    functionName: DERIVE_KEY_HASH
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DERIVE_KEY_HASH(hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11c.c:9158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hSession
    argTypes:
    - CK_SESSION_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9161
      start: 9155
    functionDepth: 1
    functionLinenumber: 9155
    functionLinenumberEnd: 9161
    functionName: NSC_GetFunctionStatus
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - CHECK_FORK
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV NSC_GetFunctionStatus(CK_SESSION_HANDLE hSession)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11c.c:9167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hSession
    argTypes:
    - CK_SESSION_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9170
      start: 9164
    functionDepth: 1
    functionLinenumber: 9164
    functionLinenumberEnd: 9170
    functionName: NSC_CancelFunction
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - CHECK_FORK
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV NSC_CancelFunction(CK_SESSION_HANDLE hSession)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11c.c:9186,1
    - Dst: sftk_GetContext
      Src: /src/nss/lib/softoken/pkcs11c.c:9189,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11c.c:9200,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11c.c:9207,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11c.c:9209,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11c.c:9212,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11c.c:9213,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 3
    argNames:
    - hSession
    - pOperationState
    - pulOperationStateLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9215
      start: 9177
    functionDepth: 2
    functionLinenumber: 9177
    functionLinenumberEnd: 9215
    functionName: NSC_GetOperationState
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - sftk_GetContext
    - sftk_FreeSession
    - CHECK_FORK
    - PORT_Memcpy
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_GetOperationState(CK_SESSION_HANDLE hSession,\n                      CK_BYTE_PTR
      pOperationState, CK_ULONG_PTR pulOperationStateLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - stateSize
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9219
      start: 9217
    functionDepth: 0
    functionLinenumber: 9217
    functionLinenumberEnd: 9219
    functionName: sftk_Decrement
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sftk_Decrement(stateSize, len)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11c.c:9234,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11c.c:9238,1
    - Dst: sftk_SessionFromHandle
      Src: /src/nss/lib/softoken/pkcs11c.c:9241,1
    - Dst: sftk_ReturnContextByType
      Src: /src/nss/lib/softoken/pkcs11c.c:9244,1
    - Dst: sftk_SetContextByType
      Src: /src/nss/lib/softoken/pkcs11c.c:9245,1
    - Dst: sftk_FreeContext
      Src: /src/nss/lib/softoken/pkcs11c.c:9247,1
    - Dst: sftk_Decrement
      Src: /src/nss/lib/softoken/pkcs11c.c:9250,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11c.c:9253,1
    - Dst: sftk_Decrement
      Src: /src/nss/lib/softoken/pkcs11c.c:9255,1
    - Dst: NSC_DigestInit
      Src: /src/nss/lib/softoken/pkcs11c.c:9261,1
    - Dst: sftk_GetContext
      Src: /src/nss/lib/softoken/pkcs11c.c:9264,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11c.c:9272,1
    - Dst: sftk_Decrement
      Src: /src/nss/lib/softoken/pkcs11c.c:9275,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11c.c:9281,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 5
    argNames:
    - hSession
    - pOperationState
    - ulOperationStateLen
    - hEncryptionKey
    - hAuthenticationKey
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_OBJECT_HANDLE
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9286
      start: 9223
    functionDepth: 3
    functionLinenumber: 9223
    functionLinenumberEnd: 9286
    functionName: NSC_SetOperationState
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - sftk_FreeSession
    - sftk_SessionFromHandle
    - sftk_ReturnContextByType
    - PORT_Memcpy
    - sftk_FreeContext
    - sftk_Decrement
    - CHECK_FORK
    - sftk_GetContext
    - sftk_SetContextByType
    - NSC_DigestInit
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_SetOperationState(CK_SESSION_HANDLE hSession,\n                      CK_BYTE_PTR
      pOperationState, CK_ULONG ulOperationStateLen,\n                      CK_OBJECT_HANDLE
      hEncryptionKey, CK_OBJECT_HANDLE hAuthenticationKey)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11c.c:9299,1
    - Dst: NSC_EncryptUpdate
      Src: /src/nss/lib/softoken/pkcs11c.c:9301,1
    - Dst: NSC_DigestUpdate
      Src: /src/nss/lib/softoken/pkcs11c.c:9305,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - hSession
    - pPart
    - ulPartLen
    - pEncryptedPart
    - pulEncryptedPartLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9308
      start: 9292
    functionDepth: 3
    functionLinenumber: 9292
    functionLinenumberEnd: 9308
    functionName: NSC_DigestEncryptUpdate
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - NSC_EncryptUpdate
    - CHECK_FORK
    - NSC_DigestUpdate
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_DigestEncryptUpdate(CK_SESSION_HANDLE hSession, CK_BYTE_PTR
      pPart,\n                        CK_ULONG ulPartLen, CK_BYTE_PTR pEncryptedPart,\n
      \                       CK_ULONG_PTR pulEncryptedPartLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11c.c:9319,1
    - Dst: NSC_DecryptUpdate
      Src: /src/nss/lib/softoken/pkcs11c.c:9321,1
    - Dst: NSC_DigestUpdate
      Src: /src/nss/lib/softoken/pkcs11c.c:9325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - hSession
    - pEncryptedPart
    - ulEncryptedPartLen
    - pPart
    - pulPartLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9328
      start: 9312
    functionDepth: 3
    functionLinenumber: 9312
    functionLinenumberEnd: 9328
    functionName: NSC_DecryptDigestUpdate
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - NSC_DecryptUpdate
    - CHECK_FORK
    - NSC_DigestUpdate
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_DecryptDigestUpdate(CK_SESSION_HANDLE hSession,\n                        CK_BYTE_PTR
      pEncryptedPart, CK_ULONG ulEncryptedPartLen,\n                        CK_BYTE_PTR
      pPart, CK_ULONG_PTR pulPartLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11c.c:9339,1
    - Dst: NSC_EncryptUpdate
      Src: /src/nss/lib/softoken/pkcs11c.c:9341,1
    - Dst: NSC_SignUpdate
      Src: /src/nss/lib/softoken/pkcs11c.c:9345,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - hSession
    - pPart
    - ulPartLen
    - pEncryptedPart
    - pulEncryptedPartLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9348
      start: 9332
    functionDepth: 4
    functionLinenumber: 9332
    functionLinenumberEnd: 9348
    functionName: NSC_SignEncryptUpdate
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - NSC_EncryptUpdate
    - CHECK_FORK
    - NSC_SignUpdate
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_SignEncryptUpdate(CK_SESSION_HANDLE hSession, CK_BYTE_PTR
      pPart,\n                      CK_ULONG ulPartLen, CK_BYTE_PTR pEncryptedPart,\n
      \                     CK_ULONG_PTR pulEncryptedPartLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11c.c:9359,1
    - Dst: NSC_DecryptUpdate
      Src: /src/nss/lib/softoken/pkcs11c.c:9361,1
    - Dst: NSC_VerifyUpdate
      Src: /src/nss/lib/softoken/pkcs11c.c:9365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - hSession
    - pEncryptedData
    - ulEncryptedDataLen
    - pData
    - pulDataLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9368
      start: 9352
    functionDepth: 4
    functionLinenumber: 9352
    functionLinenumberEnd: 9368
    functionName: NSC_DecryptVerifyUpdate
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - NSC_DecryptUpdate
    - CHECK_FORK
    - NSC_VerifyUpdate
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_DecryptVerifyUpdate(CK_SESSION_HANDLE hSession,\n                        CK_BYTE_PTR
      pEncryptedData, CK_ULONG ulEncryptedDataLen,\n                        CK_BYTE_PTR
      pData, CK_ULONG_PTR pulDataLen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/pkcs11c.c:9381,1
    - Dst: sftk_SessionFromHandle
      Src: /src/nss/lib/softoken/pkcs11c.c:9383,1
    - Dst: sftk_ObjectFromHandle
      Src: /src/nss/lib/softoken/pkcs11c.c:9387,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/pkcs11c.c:9388,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11c.c:9396,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:9400,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11c.c:9401,1
    - Dst: NSC_DigestUpdate
      Src: /src/nss/lib/softoken/pkcs11c.c:9405,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11c.c:9407,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - hSession
    - hKey
    argTypes:
    - CK_SESSION_HANDLE
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9409
      start: 9373
    functionDepth: 3
    functionLinenumber: 9373
    functionLinenumberEnd: 9409
    functionName: NSC_DigestKey
    functionSourceFile: /src/nss/lib/softoken/pkcs11c.c
    functionUses: 0
    functionsReached:
    - sftk_ObjectFromHandle
    - sftk_FreeSession
    - sftk_FindAttribute
    - sftk_SessionFromHandle
    - NSC_DigestUpdate
    - sftk_FreeAttribute
    - CHECK_FORK
    - sftk_FreeObject
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV NSC_DigestKey(CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hKey)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: VALID_CK_BOOL
    functionSourceFile: /src/nss/lib/softoken/kbkdf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VALID_CK_BOOL(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _mech
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: IS_COUNTER
    functionSourceFile: /src/nss/lib/softoken/kbkdf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_COUNTER(_mech)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _mech
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: DOES_DERIVE_DATA
    functionSourceFile: /src/nss/lib/softoken/kbkdf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DOES_DERIVE_DATA(_mech)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PR_ASSERT
      Src: /src/nss/lib/softoken/kbkdf.c:55,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 5
    argNames:
    - mech
    - pMechanism
    - kdf_params
    - initial_value
    - initial_value_length
    argTypes:
    - CK_MECHANISM_TYPE
    - CK_MECHANISM_PTR
    - CK_SP800_108_KDF_PARAMS_PTR
    - CK_BYTE_PTR*
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 90
    functionName: kbkdf_LoadParameters
    functionSourceFile: /src/nss/lib/softoken/kbkdf.c
    functionUses: 0
    functionsReached:
    - PR_ASSERT
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV kbkdf_LoadParameters(CK_MECHANISM_TYPE mech, CK_MECHANISM_PTR
      pMechanism, CK_SP800_108_KDF_PARAMS_PTR kdf_params, CK_BYTE_PTR *initial_value,
      CK_ULONG_PTR initial_value_length)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: IS_COUNTER
      Src: /src/nss/lib/softoken/kbkdf.c:110,1
    - Dst: VALID_CK_BOOL
      Src: /src/nss/lib/softoken/kbkdf.c:135,1
    - Dst: VALID_CK_BOOL
      Src: /src/nss/lib/softoken/kbkdf.c:169,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 51
    argCount: 2
    argNames:
    - mech
    - data
    argTypes:
    - CK_MECHANISM_TYPE
    - CK_PRF_DATA_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 199
    functionName: kbkdf_ValidateParameter
    functionSourceFile: /src/nss/lib/softoken/kbkdf.c
    functionUses: 0
    functionsReached:
    - IS_COUNTER
    - VALID_CK_BOOL
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV kbkdf_ValidateParameter(CK_MECHANISM_TYPE mech, const CK_PRF_DATA_PARAM
      *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dlopen
      Src: /src/nss/lib/softoken/fipstokn.c:62,1
    - Dst: dlsym
      Src: /src/nss/lib/softoken/fipstokn.c:66,1
    - Dst: dlsym
      Src: /src/nss/lib/softoken/fipstokn.c:67,1
    - Dst: dlsym
      Src: /src/nss/lib/softoken/fipstokn.c:72,1
    - Dst: dlsym
      Src: /src/nss/lib/softoken/fipstokn.c:75,1
    - Dst: dlclose
      Src: /src/nss/lib/softoken/fipstokn.c:80,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 87
    functionName: libaudit_init
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - dlopen
    - dlclose
    - dlsym
    linkageType: ''
    returnType: void
    signature: void libaudit_init(void)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/nss/lib/softoken/fipstokn.c:149,1
    - Dst: islower
      Src: /src/nss/lib/softoken/fipstokn.c:153,1
    - Dst: isupper
      Src: /src/nss/lib/softoken/fipstokn.c:155,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 55
    argCount: 2
    argNames:
    - pPin
    - ulPinLen
    argTypes:
    - CK_CHAR_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 190
    functionName: sftk_newPinCheck
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - isdigit
    - isupper
    - islower
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV sftk_newPinCheck(CK_CHAR_PTR pPin, CK_ULONG ulPinLen)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 201
    functionName: sftk_fipsCheck
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV sftk_fipsCheck(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 207
    functionName: SFTK_FIPSCHECK
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SFTK_FIPSCHECK()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 211
    functionName: SFTK_FIPSFATALCHECK
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SFTK_FIPSFATALCHECK()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - pTemplate
    - ulCount
    - type
    argTypes:
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    - CK_ATTRIBUTE_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 225
    functionName: fc_getAttribute
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void *\nfc_getAttribute(CK_ATTRIBUTE_PTR pTemplate,\n                CK_ULONG
      ulCount, CK_ATTRIBUTE_TYPE type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 228
    functionName: __PASTE
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __PASTE(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 236
    functionName: CK_PKCS11_FUNCTION_INFO
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CK_PKCS11_FUNCTION_INFO(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 245
    functionName: CK_PKCS11_FUNCTION_INFO
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CK_PKCS11_FUNCTION_INFO(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - objClass
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 317
    functionName: SFTK_IS_KEY_OBJECT
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SFTK_IS_KEY_OBJECT(objClass)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - objClass
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 320
    functionName: SFTK_IS_NONPUBLIC_KEY_OBJECT
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SFTK_IS_NONPUBLIC_KEY_OBJECT(objClass)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSC_GetAttributeValue
      Src: /src/nss/lib/softoken/fipstokn.c:330,1
    - Dst: SFTK_IS_NONPUBLIC_KEY_OBJECT
      Src: /src/nss/lib/softoken/fipstokn.c:331,1
    - Dst: sftk_fipsCheck
      Src: /src/nss/lib/softoken/fipstokn.c:332,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - hSession
    - hObject
    - pObjClass
    argTypes:
    - CK_SESSION_HANDLE
    - CK_OBJECT_HANDLE
    - CK_OBJECT_CLASS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 321
    functionDepth: 5
    functionLinenumber: 321
    functionLinenumberEnd: 335
    functionName: sftk_get_object_class_and_fipsCheck
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - NSC_GetAttributeValue
    - sftk_fipsCheck
    - SFTK_IS_NONPUBLIC_KEY_OBJECT
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftk_get_object_class_and_fipsCheck(CK_SESSION_HANDLE hSession,\n
      \                                   CK_OBJECT_HANDLE hObject, CK_OBJECT_CLASS
      *pObjClass)"
  - BBCount: 19
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 2
    argNames:
    - severity
    - auditType
    argTypes:
    - NSSAuditSeverity
    - NSSAuditType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 373
    functionName: sftk_mapLinuxAuditType
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sftk_mapLinuxAuditType(NSSAuditSeverity severity, NSSAuditType
      auditType)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: syslog
      Src: /src/nss/lib/softoken/fipstokn.c:417,1
    - Dst: getpid
      Src: /src/nss/lib/softoken/fipstokn.c:419,1
    - Dst: getuid
      Src: /src/nss/lib/softoken/fipstokn.c:419,1
    - Dst: pthread_once
      Src: /src/nss/lib/softoken/fipstokn.c:421,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/softoken/fipstokn.c:428,1
    - Dst: audit_open_func
      Src: /src/nss/lib/softoken/fipstokn.c:432,1
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/softoken/fipstokn.c:434,1
    - Dst: sftk_mapLinuxAuditType
      Src: /src/nss/lib/softoken/fipstokn.c:437,1
    - Dst: audit_log_user_message_func
      Src: /src/nss/lib/softoken/fipstokn.c:439,1
    - Dst: audit_send_user_message_func
      Src: /src/nss/lib/softoken/fipstokn.c:442,1
    - Dst: audit_close_func
      Src: /src/nss/lib/softoken/fipstokn.c:444,1
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/softoken/fipstokn.c:445,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 3
    argNames:
    - severity
    - auditType
    - msg
    argTypes:
    - NSSAuditSeverity
    - NSSAuditType
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 451
    functionName: sftk_LogAuditMessage
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 2
    functionsReached:
    - syslog
    - audit_close_func
    - audit_log_user_message_func
    - audit_send_user_message_func
    - sftk_mapLinuxAuditType
    - getpid
    - PR_smprintf_free
    - PR_smprintf
    - audit_open_func
    - pthread_once
    - getuid
    linkageType: ''
    returnType: void
    signature: "void sftk_LogAuditMessage(NSSAuditSeverity severity, NSSAuditType
      auditType,\n                     const char *msg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pFunctionList
    argTypes:
    - CK_FUNCTION_LIST_PTR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 459
    functionDepth: 1
    functionLinenumber: 459
    functionLinenumberEnd: 467
    functionName: FC_GetFunctionList
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 1
    functionsReached:
    - CHECK_FORK
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV FC_GetFunctionList(CK_FUNCTION_LIST_PTR *pFunctionList)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/fipstokn.c:480,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - interfaces
    - pulCount
    argTypes:
    - CK_INTERFACE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 482
    functionName: FC_GetInterfaceList
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 1
    functionsReached:
    - PORT_Memcpy
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV FC_GetInterfaceList(CK_INTERFACE_PTR interfaces, CK_ULONG_PTR
      pulCount)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strcmp
      Src: /src/nss/lib/softoken/fipstokn.c:495,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/softoken/fipstokn.c:498,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 4
    argNames:
    - pInterfaceName
    - pVersion
    - ppInterface
    - flags
    argTypes:
    - CK_UTF8CHAR_PTR
    - CK_VERSION_PTR
    - CK_INTERFACE_PTR_PTR
    - CK_FLAGS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 508
    functionName: FC_GetInterface
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 1
    functionsReached:
    - PORT_Memcmp
    - PORT_Strcmp
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_GetInterface(CK_UTF8CHAR_PTR pInterfaceName, CK_VERSION_PTR
      pVersion,\n                CK_INTERFACE_PTR_PTR ppInterface, CK_FLAGS flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_snprintf
      Src: /src/nss/lib/softoken/fipstokn.c:518,1
    - Dst: sftk_LogAuditMessage
      Src: /src/nss/lib/softoken/fipstokn.c:522,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - crv
    argTypes:
    - CK_RV
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 513
    functionDepth: 2
    functionLinenumber: 513
    functionLinenumberEnd: 524
    functionName: fc_log_init_error
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - PR_snprintf
    - sftk_LogAuditMessage
    linkageType: ''
    returnType: void
    signature: void fc_log_init_error(CK_RV crv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetEnv
      Src: /src/nss/lib/softoken/fipstokn.c:534,1
    - Dst: atoi
      Src: /src/nss/lib/softoken/fipstokn.c:535,1
    - Dst: sftk_RawArgHasFlag
      Src: /src/nss/lib/softoken/fipstokn.c:541,1
    - Dst: sftk_FIPSEntryOK
      Src: /src/nss/lib/softoken/fipstokn.c:547,1
    - Dst: fc_log_init_error
      Src: /src/nss/lib/softoken/fipstokn.c:550,1
    - Dst: sftk_ForkReset
      Src: /src/nss/lib/softoken/fipstokn.c:554,1
    - Dst: nsc_CommonInitialize
      Src: /src/nss/lib/softoken/fipstokn.c:560,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - pReserved
    argTypes:
    - CK_VOID_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 527
    functionDepth: 9
    functionLinenumber: 527
    functionLinenumberEnd: 573
    functionName: FC_Initialize
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - sftk_FIPSEntryOK
    - sftk_RawArgHasFlag
    - nsc_CommonInitialize
    - atoi
    - fc_log_init_error
    - sftk_ForkReset
    - PR_GetEnv
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV FC_Initialize(CK_VOID_PTR pReserved)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sftk_ForkReset
      Src: /src/nss/lib/softoken/fipstokn.c:581,1
    - Dst: nsc_CommonFinalize
      Src: /src/nss/lib/softoken/fipstokn.c:589,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pReserved
    argTypes:
    - CK_VOID_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 576
    functionDepth: 9
    functionLinenumber: 576
    functionLinenumberEnd: 593
    functionName: FC_Finalize
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - nsc_CommonFinalize
    - sftk_ForkReset
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV FC_Finalize(CK_VOID_PTR pReserved)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:599,1
    - Dst: NSC_GetInfo
      Src: /src/nss/lib/softoken/fipstokn.c:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pInfo
    argTypes:
    - CK_INFO_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 596
    functionDepth: 2
    functionLinenumber: 596
    functionLinenumberEnd: 602
    functionName: FC_GetInfo
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - NSC_GetInfo
    - CHECK_FORK
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV FC_GetInfo(CK_INFO_PTR pInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:608,1
    - Dst: NSC_GetInfoV2
      Src: /src/nss/lib/softoken/fipstokn.c:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pInfo
    argTypes:
    - CK_INFO_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 605
    functionDepth: 2
    functionLinenumber: 605
    functionLinenumberEnd: 611
    functionName: FC_GetInfoV2
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - NSC_GetInfoV2
    - CHECK_FORK
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV FC_GetInfoV2(CK_INFO_PTR pInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:618,1
    - Dst: nsc_CommonGetSlotList
      Src: /src/nss/lib/softoken/fipstokn.c:620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - tokenPresent
    - pSlotList
    - pulCount
    argTypes:
    - CK_BBOOL
    - CK_SLOT_ID_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 614
    functionDepth: 1
    functionLinenumber: 614
    functionLinenumberEnd: 622
    functionName: FC_GetSlotList
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - nsc_CommonGetSlotList
    - CHECK_FORK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_GetSlotList(CK_BBOOL tokenPresent,\n               CK_SLOT_ID_PTR
      pSlotList, CK_ULONG_PTR pulCount)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:628,1
    - Dst: NSC_GetSlotInfo
      Src: /src/nss/lib/softoken/fipstokn.c:630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - slotID
    - pInfo
    argTypes:
    - CK_SLOT_ID
    - CK_SLOT_INFO_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 625
    functionDepth: 4
    functionLinenumber: 625
    functionLinenumberEnd: 631
    functionName: FC_GetSlotInfo
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - CHECK_FORK
    - NSC_GetSlotInfo
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV FC_GetSlotInfo(CK_SLOT_ID slotID, CK_SLOT_INFO_PTR pInfo)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:639,1
    - Dst: NSC_GetTokenInfo
      Src: /src/nss/lib/softoken/fipstokn.c:641,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - slotID
    - pInfo
    argTypes:
    - CK_SLOT_ID
    - CK_TOKEN_INFO_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 634
    functionDepth: 7
    functionLinenumber: 634
    functionLinenumberEnd: 651
    functionName: FC_GetTokenInfo
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - CHECK_FORK
    - NSC_GetTokenInfo
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV FC_GetTokenInfo(CK_SLOT_ID slotID, CK_TOKEN_INFO_PTR pInfo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:658,1
    - Dst: SFTK_FIPSFATALCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:660,1
    - Dst: sftk_isFIPS
      Src: /src/nss/lib/softoken/fipstokn.c:661,1
    - Dst: NSC_GetMechanismList
      Src: /src/nss/lib/softoken/fipstokn.c:665,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - slotID
    - pMechanismList
    - pusCount
    argTypes:
    - CK_SLOT_ID
    - CK_MECHANISM_TYPE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 654
    functionDepth: 2
    functionLinenumber: 654
    functionLinenumberEnd: 666
    functionName: FC_GetMechanismList
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - sftk_isFIPS
    - CHECK_FORK
    - NSC_GetMechanismList
    - SFTK_FIPSFATALCHECK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_GetMechanismList(CK_SLOT_ID slotID,\n                    CK_MECHANISM_TYPE_PTR
      pMechanismList, CK_ULONG_PTR pusCount)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:674,1
    - Dst: SFTK_FIPSFATALCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:676,1
    - Dst: sftk_isFIPS
      Src: /src/nss/lib/softoken/fipstokn.c:677,1
    - Dst: NSC_GetMechanismInfo
      Src: /src/nss/lib/softoken/fipstokn.c:681,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - slotID
    - type
    - pInfo
    argTypes:
    - CK_SLOT_ID
    - CK_MECHANISM_TYPE
    - CK_MECHANISM_INFO_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 670
    functionDepth: 2
    functionLinenumber: 670
    functionLinenumberEnd: 682
    functionName: FC_GetMechanismInfo
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - sftk_isFIPS
    - CHECK_FORK
    - NSC_GetMechanismInfo
    - SFTK_FIPSFATALCHECK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_GetMechanismInfo(CK_SLOT_ID slotID, CK_MECHANISM_TYPE type,\n
      \                   CK_MECHANISM_INFO_PTR pInfo)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:690,1
    - Dst: SFTK_FIPSFATALCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:692,1
    - Dst: sftk_isFIPS
      Src: /src/nss/lib/softoken/fipstokn.c:693,1
    - Dst: NSC_GetMechanismInfoV2
      Src: /src/nss/lib/softoken/fipstokn.c:697,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - slotID
    - type
    - pInfo
    argTypes:
    - CK_SLOT_ID
    - CK_MECHANISM_TYPE
    - CK_MECHANISM_INFO_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 686
    functionDepth: 3
    functionLinenumber: 686
    functionLinenumberEnd: 698
    functionName: FC_GetMechanismInfoV2
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - NSC_GetMechanismInfoV2
    - sftk_isFIPS
    - CHECK_FORK
    - SFTK_FIPSFATALCHECK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_GetMechanismInfoV2(CK_SLOT_ID slotID, CK_MECHANISM_TYPE type,\n
      \                     CK_MECHANISM_INFO_PTR pInfo)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:707,1
    - Dst: NSC_InitToken
      Src: /src/nss/lib/softoken/fipstokn.c:709,1
    - Dst: PR_snprintf
      Src: /src/nss/lib/softoken/fipstokn.c:714,1
    - Dst: sftk_LogAuditMessage
      Src: /src/nss/lib/softoken/fipstokn.c:717,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - slotID
    - pPin
    - usPinLen
    - pLabel
    argTypes:
    - CK_SLOT_ID
    - CK_CHAR_PTR
    - CK_ULONG
    - CK_CHAR_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 701
    functionDepth: 7
    functionLinenumber: 701
    functionLinenumberEnd: 720
    functionName: FC_InitToken
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - NSC_InitToken
    - PR_snprintf
    - sftk_LogAuditMessage
    - CHECK_FORK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_InitToken(CK_SLOT_ID slotID, CK_CHAR_PTR pPin,\n             CK_ULONG
      usPinLen, CK_CHAR_PTR pLabel)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:729,1
    - Dst: sftk_newPinCheck
      Src: /src/nss/lib/softoken/fipstokn.c:736,1
    - Dst: NSC_InitPIN
      Src: /src/nss/lib/softoken/fipstokn.c:737,1
    - Dst: sftk_SlotIDFromSessionHandle
      Src: /src/nss/lib/softoken/fipstokn.c:739,1
    - Dst: PR_snprintf
      Src: /src/nss/lib/softoken/fipstokn.c:746,1
    - Dst: sftk_LogAuditMessage
      Src: /src/nss/lib/softoken/fipstokn.c:749,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - hSession
    - pPin
    - ulPinLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_CHAR_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 723
    functionDepth: 8
    functionLinenumber: 723
    functionLinenumberEnd: 752
    functionName: FC_InitPIN
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - PR_snprintf
    - sftk_LogAuditMessage
    - NSC_InitPIN
    - sftk_SlotIDFromSessionHandle
    - CHECK_FORK
    - sftk_newPinCheck
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_InitPIN(CK_SESSION_HANDLE hSession,\n           CK_CHAR_PTR
      pPin, CK_ULONG ulPinLen)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:762,1
    - Dst: sftk_fipsCheck
      Src: /src/nss/lib/softoken/fipstokn.c:764,1
    - Dst: sftk_newPinCheck
      Src: /src/nss/lib/softoken/fipstokn.c:770,1
    - Dst: NSC_SetPIN
      Src: /src/nss/lib/softoken/fipstokn.c:774,1
    - Dst: sftk_SlotIDFromSessionHandle
      Src: /src/nss/lib/softoken/fipstokn.c:778,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/fipstokn.c:787,1
    - Dst: NSC_SetPIN
      Src: /src/nss/lib/softoken/fipstokn.c:788,1
    - Dst: PR_snprintf
      Src: /src/nss/lib/softoken/fipstokn.c:798,1
    - Dst: sftk_LogAuditMessage
      Src: /src/nss/lib/softoken/fipstokn.c:801,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 5
    argNames:
    - hSession
    - pOldPin
    - usOldLen
    - pNewPin
    - usNewLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_CHAR_PTR
    - CK_ULONG
    - CK_CHAR_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 756
    functionDepth: 8
    functionLinenumber: 756
    functionLinenumberEnd: 804
    functionName: FC_SetPIN
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PR_snprintf
    - sftk_LogAuditMessage
    - sftk_SlotIDFromSessionHandle
    - CHECK_FORK
    - sftk_fipsCheck
    - sftk_newPinCheck
    - NSC_SetPIN
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_SetPIN(CK_SESSION_HANDLE hSession, CK_CHAR_PTR pOldPin,\n
      \         CK_ULONG usOldLen, CK_CHAR_PTR pNewPin, CK_ULONG usNewLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSFATALCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:811,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:813,1
    - Dst: NSC_OpenSession
      Src: /src/nss/lib/softoken/fipstokn.c:815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - slotID
    - flags
    - pApplication
    - Notify
    - phSession
    argTypes:
    - CK_SLOT_ID
    - CK_FLAGS
    - CK_VOID_PTR
    - CK_NOTIFY
    - CK_SESSION_HANDLE_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 807
    functionDepth: 4
    functionLinenumber: 807
    functionLinenumberEnd: 816
    functionName: FC_OpenSession
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - NSC_OpenSession
    - CHECK_FORK
    - SFTK_FIPSFATALCHECK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_OpenSession(CK_SLOT_ID slotID, CK_FLAGS flags,\n               CK_VOID_PTR
      pApplication, CK_NOTIFY Notify, CK_SESSION_HANDLE_PTR phSession)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:822,1
    - Dst: NSC_CloseSession
      Src: /src/nss/lib/softoken/fipstokn.c:824,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hSession
    argTypes:
    - CK_SESSION_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 819
    functionDepth: 4
    functionLinenumber: 819
    functionLinenumberEnd: 825
    functionName: FC_CloseSession
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - CHECK_FORK
    - NSC_CloseSession
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV FC_CloseSession(CK_SESSION_HANDLE hSession)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:832,1
    - Dst: NSC_CloseAllSessions
      Src: /src/nss/lib/softoken/fipstokn.c:834,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - slotID
    argTypes:
    - CK_SLOT_ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 828
    functionDepth: 5
    functionLinenumber: 828
    functionLinenumberEnd: 835
    functionName: FC_CloseAllSessions
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - NSC_CloseAllSessions
    - CHECK_FORK
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV FC_CloseAllSessions(CK_SLOT_ID slotID)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSFATALCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:840,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:842,1
    - Dst: NSC_SessionCancel
      Src: /src/nss/lib/softoken/fipstokn.c:844,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - hSession
    - flags
    argTypes:
    - CK_SESSION_HANDLE
    - CK_FLAGS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 837
    functionDepth: 3
    functionLinenumber: 837
    functionLinenumberEnd: 845
    functionName: FC_SessionCancel
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - CHECK_FORK
    - NSC_SessionCancel
    - SFTK_FIPSFATALCHECK
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV FC_SessionCancel(CK_SESSION_HANDLE hSession, CK_FLAGS flags)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSFATALCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:853,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:855,1
    - Dst: NSC_GetSessionInfo
      Src: /src/nss/lib/softoken/fipstokn.c:857,1
    - Dst: NSC_GetTokenInfo
      Src: /src/nss/lib/softoken/fipstokn.c:866,1
    - Dst: sftk_SlotIDFromSessionHandle
      Src: /src/nss/lib/softoken/fipstokn.c:866,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - hSession
    - pInfo
    argTypes:
    - CK_SESSION_HANDLE
    - CK_SESSION_INFO_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 848
    functionDepth: 7
    functionLinenumber: 848
    functionLinenumberEnd: 879
    functionName: FC_GetSessionInfo
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - NSC_GetSessionInfo
    - NSC_GetTokenInfo
    - sftk_SlotIDFromSessionHandle
    - CHECK_FORK
    - SFTK_FIPSFATALCHECK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_GetSessionInfo(CK_SESSION_HANDLE hSession,\n                  CK_SESSION_INFO_PTR
      pInfo)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NSC_Login
      Src: /src/nss/lib/softoken/fipstokn.c:890,1
    - Dst: PR_snprintf
      Src: /src/nss/lib/softoken/fipstokn.c:898,1
    - Dst: sftk_LogAuditMessage
      Src: /src/nss/lib/softoken/fipstokn.c:901,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - hSession
    - userType
    - pPin
    - usPinLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_USER_TYPE
    - CK_CHAR_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 882
    functionDepth: 5
    functionLinenumber: 882
    functionLinenumberEnd: 904
    functionName: FC_Login
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - PR_snprintf
    - sftk_LogAuditMessage
    - NSC_Login
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_Login(CK_SESSION_HANDLE hSession, CK_USER_TYPE userType,\n
      \        CK_CHAR_PTR pPin, CK_ULONG usPinLen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NSC_LoginUser
      Src: /src/nss/lib/softoken/fipstokn.c:915,1
    - Dst: PR_MIN
      Src: /src/nss/lib/softoken/fipstokn.c:923,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/fipstokn.c:924,1
    - Dst: PR_snprintf
      Src: /src/nss/lib/softoken/fipstokn.c:928,1
    - Dst: sftk_LogAuditMessage
      Src: /src/nss/lib/softoken/fipstokn.c:931,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 6
    argNames:
    - hSession
    - userType
    - pPin
    - ulPinLen
    - pUsername
    - ulUsernameLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_USER_TYPE
    - CK_CHAR_PTR
    - CK_ULONG
    - CK_UTF8CHAR_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 906
    functionDepth: 2
    functionLinenumber: 906
    functionLinenumberEnd: 934
    functionName: FC_LoginUser
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - PR_snprintf
    - sftk_LogAuditMessage
    - PORT_Memcpy
    - PR_MIN
    - NSC_LoginUser
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_LoginUser(CK_SESSION_HANDLE hSession, CK_USER_TYPE userType,\n
      \            CK_CHAR_PTR pPin, CK_ULONG ulPinLen, CK_UTF8CHAR_PTR pUsername,\n
      \            CK_ULONG ulUsernameLen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:942,1
    - Dst: sftk_fipsCheck
      Src: /src/nss/lib/softoken/fipstokn.c:944,1
    - Dst: NSC_Logout
      Src: /src/nss/lib/softoken/fipstokn.c:945,1
    - Dst: PR_snprintf
      Src: /src/nss/lib/softoken/fipstokn.c:951,1
    - Dst: sftk_LogAuditMessage
      Src: /src/nss/lib/softoken/fipstokn.c:954,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - hSession
    argTypes:
    - CK_SESSION_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 957
      start: 937
    functionDepth: 5
    functionLinenumber: 937
    functionLinenumberEnd: 957
    functionName: FC_Logout
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - PR_snprintf
    - sftk_LogAuditMessage
    - NSC_Logout
    - CHECK_FORK
    - sftk_fipsCheck
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV FC_Logout(CK_SESSION_HANDLE hSession)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:968,1
    - Dst: fc_getAttribute
      Src: /src/nss/lib/softoken/fipstokn.c:970,1
    - Dst: sftk_fipsCheck
      Src: /src/nss/lib/softoken/fipstokn.c:978,1
    - Dst: SFTK_IS_NONPUBLIC_KEY_OBJECT
      Src: /src/nss/lib/softoken/fipstokn.c:984,1
    - Dst: NSC_CreateObject
      Src: /src/nss/lib/softoken/fipstokn.c:987,1
    - Dst: SFTK_IS_KEY_OBJECT
      Src: /src/nss/lib/softoken/fipstokn.c:989,1
    - Dst: sftk_AuditCreateObject
      Src: /src/nss/lib/softoken/fipstokn.c:990,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 4
    argNames:
    - hSession
    - pTemplate
    - ulCount
    - phObject
    argTypes:
    - CK_SESSION_HANDLE
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    - CK_OBJECT_HANDLE_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 993
      start: 960
    functionDepth: 9
    functionLinenumber: 960
    functionLinenumberEnd: 993
    functionName: FC_CreateObject
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - SFTK_IS_NONPUBLIC_KEY_OBJECT
    - sftk_AuditCreateObject
    - SFTK_IS_KEY_OBJECT
    - NSC_CreateObject
    - CHECK_FORK
    - sftk_fipsCheck
    - fc_getAttribute
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_CreateObject(CK_SESSION_HANDLE hSession,\n                CK_ATTRIBUTE_PTR
      pTemplate, CK_ULONG ulCount,\n                CK_OBJECT_HANDLE_PTR phObject)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1004,1
    - Dst: SFTK_FIPSFATALCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1006,1
    - Dst: sftk_get_object_class_and_fipsCheck
      Src: /src/nss/lib/softoken/fipstokn.c:1007,1
    - Dst: NSC_CopyObject
      Src: /src/nss/lib/softoken/fipstokn.c:1009,1
    - Dst: SFTK_IS_KEY_OBJECT
      Src: /src/nss/lib/softoken/fipstokn.c:1011,1
    - Dst: sftk_AuditCopyObject
      Src: /src/nss/lib/softoken/fipstokn.c:1012,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - hSession
    - hObject
    - pTemplate
    - ulCount
    - phNewObject
    argTypes:
    - CK_SESSION_HANDLE
    - CK_OBJECT_HANDLE
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    - CK_OBJECT_HANDLE_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 996
    functionDepth: 9
    functionLinenumber: 996
    functionLinenumberEnd: 1016
    functionName: FC_CopyObject
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - sftk_get_object_class_and_fipsCheck
    - SFTK_IS_KEY_OBJECT
    - sftk_AuditCopyObject
    - CHECK_FORK
    - SFTK_FIPSFATALCHECK
    - NSC_CopyObject
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_CopyObject(CK_SESSION_HANDLE hSession,\n              CK_OBJECT_HANDLE
      hObject, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount,\n              CK_OBJECT_HANDLE_PTR
      phNewObject)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1026,1
    - Dst: SFTK_FIPSFATALCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1028,1
    - Dst: sftk_get_object_class_and_fipsCheck
      Src: /src/nss/lib/softoken/fipstokn.c:1029,1
    - Dst: NSC_DestroyObject
      Src: /src/nss/lib/softoken/fipstokn.c:1031,1
    - Dst: SFTK_IS_KEY_OBJECT
      Src: /src/nss/lib/softoken/fipstokn.c:1033,1
    - Dst: sftk_AuditDestroyObject
      Src: /src/nss/lib/softoken/fipstokn.c:1034,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - hSession
    - hObject
    argTypes:
    - CK_SESSION_HANDLE
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1037
      start: 1019
    functionDepth: 6
    functionLinenumber: 1019
    functionLinenumberEnd: 1037
    functionName: FC_DestroyObject
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - sftk_get_object_class_and_fipsCheck
    - SFTK_IS_KEY_OBJECT
    - SFTK_FIPSFATALCHECK
    - sftk_AuditDestroyObject
    - CHECK_FORK
    - NSC_DestroyObject
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_DestroyObject(CK_SESSION_HANDLE hSession,\n                 CK_OBJECT_HANDLE
      hObject)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1047,1
    - Dst: SFTK_FIPSFATALCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1049,1
    - Dst: sftk_get_object_class_and_fipsCheck
      Src: /src/nss/lib/softoken/fipstokn.c:1050,1
    - Dst: NSC_GetObjectSize
      Src: /src/nss/lib/softoken/fipstokn.c:1052,1
    - Dst: SFTK_IS_KEY_OBJECT
      Src: /src/nss/lib/softoken/fipstokn.c:1054,1
    - Dst: sftk_AuditGetObjectSize
      Src: /src/nss/lib/softoken/fipstokn.c:1055,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - hSession
    - hObject
    - pulSize
    argTypes:
    - CK_SESSION_HANDLE
    - CK_OBJECT_HANDLE
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 1040
    functionDepth: 6
    functionLinenumber: 1040
    functionLinenumberEnd: 1058
    functionName: FC_GetObjectSize
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - sftk_get_object_class_and_fipsCheck
    - SFTK_IS_KEY_OBJECT
    - sftk_AuditGetObjectSize
    - CHECK_FORK
    - SFTK_FIPSFATALCHECK
    - NSC_GetObjectSize
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_GetObjectSize(CK_SESSION_HANDLE hSession,\n                 CK_OBJECT_HANDLE
      hObject, CK_ULONG_PTR pulSize)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1068,1
    - Dst: SFTK_FIPSFATALCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1070,1
    - Dst: sftk_get_object_class_and_fipsCheck
      Src: /src/nss/lib/softoken/fipstokn.c:1071,1
    - Dst: NSC_GetAttributeValue
      Src: /src/nss/lib/softoken/fipstokn.c:1073,1
    - Dst: SFTK_IS_KEY_OBJECT
      Src: /src/nss/lib/softoken/fipstokn.c:1075,1
    - Dst: sftk_AuditGetAttributeValue
      Src: /src/nss/lib/softoken/fipstokn.c:1076,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - hSession
    - hObject
    - pTemplate
    - ulCount
    argTypes:
    - CK_SESSION_HANDLE
    - CK_OBJECT_HANDLE
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 1061
    functionDepth: 6
    functionLinenumber: 1061
    functionLinenumberEnd: 1079
    functionName: FC_GetAttributeValue
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - sftk_get_object_class_and_fipsCheck
    - NSC_GetAttributeValue
    - SFTK_IS_KEY_OBJECT
    - CHECK_FORK
    - SFTK_FIPSFATALCHECK
    - sftk_AuditGetAttributeValue
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_GetAttributeValue(CK_SESSION_HANDLE hSession,\n                     CK_OBJECT_HANDLE
      hObject, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1089,1
    - Dst: SFTK_FIPSFATALCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1091,1
    - Dst: sftk_get_object_class_and_fipsCheck
      Src: /src/nss/lib/softoken/fipstokn.c:1092,1
    - Dst: NSC_SetAttributeValue
      Src: /src/nss/lib/softoken/fipstokn.c:1094,1
    - Dst: SFTK_IS_KEY_OBJECT
      Src: /src/nss/lib/softoken/fipstokn.c:1096,1
    - Dst: sftk_AuditSetAttributeValue
      Src: /src/nss/lib/softoken/fipstokn.c:1097,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - hSession
    - hObject
    - pTemplate
    - ulCount
    argTypes:
    - CK_SESSION_HANDLE
    - CK_OBJECT_HANDLE
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 1082
    functionDepth: 6
    functionLinenumber: 1082
    functionLinenumberEnd: 1100
    functionName: FC_SetAttributeValue
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - sftk_get_object_class_and_fipsCheck
    - NSC_SetAttributeValue
    - SFTK_IS_KEY_OBJECT
    - sftk_AuditSetAttributeValue
    - CHECK_FORK
    - SFTK_FIPSFATALCHECK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_SetAttributeValue(CK_SESSION_HANDLE hSession,\n                     CK_OBJECT_HANDLE
      hObject, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1113,1
    - Dst: SFTK_FIPSFATALCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1115,1
    - Dst: sftk_fipsCheck
      Src: /src/nss/lib/softoken/fipstokn.c:1135,1
    - Dst: NSC_FindObjectsInit
      Src: /src/nss/lib/softoken/fipstokn.c:1138,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 24
    argCount: 3
    argNames:
    - hSession
    - pTemplate
    - usCount
    argTypes:
    - CK_SESSION_HANDLE
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1139
      start: 1104
    functionDepth: 6
    functionLinenumber: 1104
    functionLinenumberEnd: 1139
    functionName: FC_FindObjectsInit
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - sftk_fipsCheck
    - NSC_FindObjectsInit
    - CHECK_FORK
    - SFTK_FIPSFATALCHECK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_FindObjectsInit(CK_SESSION_HANDLE hSession,\n                   CK_ATTRIBUTE_PTR
      pTemplate, CK_ULONG usCount)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1148,1
    - Dst: SFTK_FIPSFATALCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1151,1
    - Dst: NSC_FindObjects
      Src: /src/nss/lib/softoken/fipstokn.c:1152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - hSession
    - phObject
    - usMaxObjectCount
    - pusObjectCount
    argTypes:
    - CK_SESSION_HANDLE
    - CK_OBJECT_HANDLE_PTR
    - CK_ULONG
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1154
      start: 1143
    functionDepth: 2
    functionLinenumber: 1143
    functionLinenumberEnd: 1154
    functionName: FC_FindObjects
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - NSC_FindObjects
    - CHECK_FORK
    - SFTK_FIPSFATALCHECK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_FindObjects(CK_SESSION_HANDLE hSession,\n               CK_OBJECT_HANDLE_PTR
      phObject, CK_ULONG usMaxObjectCount,\n               CK_ULONG_PTR pusObjectCount)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1165,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1166,1
    - Dst: NSC_EncryptInit
      Src: /src/nss/lib/softoken/fipstokn.c:1168,1
    - Dst: sftk_AuditCryptInit
      Src: /src/nss/lib/softoken/fipstokn.c:1170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - hSession
    - pMechanism
    - hKey
    argTypes:
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1173
      start: 1161
    functionDepth: 5
    functionLinenumber: 1161
    functionLinenumberEnd: 1173
    functionName: FC_EncryptInit
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - NSC_EncryptInit
    - CHECK_FORK
    - sftk_AuditCryptInit
    - SFTK_FIPSCHECK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_EncryptInit(CK_SESSION_HANDLE hSession,\n               CK_MECHANISM_PTR
      pMechanism, CK_OBJECT_HANDLE hKey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1181,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1182,1
    - Dst: NSC_Encrypt
      Src: /src/nss/lib/softoken/fipstokn.c:1184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - hSession
    - pData
    - usDataLen
    - pEncryptedData
    - pusEncryptedDataLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1186
      start: 1176
    functionDepth: 4
    functionLinenumber: 1176
    functionLinenumberEnd: 1186
    functionName: FC_Encrypt
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - CHECK_FORK
    - NSC_Encrypt
    - SFTK_FIPSCHECK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_Encrypt(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData,\n
      \          CK_ULONG usDataLen, CK_BYTE_PTR pEncryptedData,\n           CK_ULONG_PTR
      pusEncryptedDataLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1194,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1195,1
    - Dst: NSC_EncryptUpdate
      Src: /src/nss/lib/softoken/fipstokn.c:1197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - hSession
    - pPart
    - usPartLen
    - pEncryptedPart
    - pusEncryptedPartLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1199
      start: 1189
    functionDepth: 3
    functionLinenumber: 1189
    functionLinenumberEnd: 1199
    functionName: FC_EncryptUpdate
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - NSC_EncryptUpdate
    - CHECK_FORK
    - SFTK_FIPSCHECK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_EncryptUpdate(CK_SESSION_HANDLE hSession,\n                 CK_BYTE_PTR
      pPart, CK_ULONG usPartLen, CK_BYTE_PTR pEncryptedPart,\n                 CK_ULONG_PTR
      pusEncryptedPartLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1206,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1207,1
    - Dst: NSC_EncryptFinal
      Src: /src/nss/lib/softoken/fipstokn.c:1209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - hSession
    - pLastEncryptedPart
    - pusLastEncryptedPartLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1211
      start: 1202
    functionDepth: 3
    functionLinenumber: 1202
    functionLinenumberEnd: 1211
    functionName: FC_EncryptFinal
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - NSC_EncryptFinal
    - CHECK_FORK
    - SFTK_FIPSCHECK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_EncryptFinal(CK_SESSION_HANDLE hSession,\n                CK_BYTE_PTR
      pLastEncryptedPart, CK_ULONG_PTR pusLastEncryptedPartLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1222,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1223,1
    - Dst: NSC_DecryptInit
      Src: /src/nss/lib/softoken/fipstokn.c:1225,1
    - Dst: sftk_AuditCryptInit
      Src: /src/nss/lib/softoken/fipstokn.c:1227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - hSession
    - pMechanism
    - hKey
    argTypes:
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1230
      start: 1218
    functionDepth: 5
    functionLinenumber: 1218
    functionLinenumberEnd: 1230
    functionName: FC_DecryptInit
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - NSC_DecryptInit
    - CHECK_FORK
    - sftk_AuditCryptInit
    - SFTK_FIPSCHECK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_DecryptInit(CK_SESSION_HANDLE hSession,\n               CK_MECHANISM_PTR
      pMechanism, CK_OBJECT_HANDLE hKey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1238,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1239,1
    - Dst: NSC_Decrypt
      Src: /src/nss/lib/softoken/fipstokn.c:1241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - hSession
    - pEncryptedData
    - usEncryptedDataLen
    - pData
    - pusDataLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1243
      start: 1233
    functionDepth: 4
    functionLinenumber: 1233
    functionLinenumberEnd: 1243
    functionName: FC_Decrypt
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - NSC_Decrypt
    - CHECK_FORK
    - SFTK_FIPSCHECK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_Decrypt(CK_SESSION_HANDLE hSession,\n           CK_BYTE_PTR
      pEncryptedData, CK_ULONG usEncryptedDataLen, CK_BYTE_PTR pData,\n           CK_ULONG_PTR
      pusDataLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1251,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1252,1
    - Dst: NSC_DecryptUpdate
      Src: /src/nss/lib/softoken/fipstokn.c:1254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - hSession
    - pEncryptedPart
    - usEncryptedPartLen
    - pPart
    - pusPartLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1256
      start: 1246
    functionDepth: 3
    functionLinenumber: 1246
    functionLinenumberEnd: 1256
    functionName: FC_DecryptUpdate
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - NSC_DecryptUpdate
    - CHECK_FORK
    - SFTK_FIPSCHECK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_DecryptUpdate(CK_SESSION_HANDLE hSession,\n                 CK_BYTE_PTR
      pEncryptedPart, CK_ULONG usEncryptedPartLen,\n                 CK_BYTE_PTR pPart,
      CK_ULONG_PTR pusPartLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1263,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1264,1
    - Dst: NSC_DecryptFinal
      Src: /src/nss/lib/softoken/fipstokn.c:1266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - hSession
    - pLastPart
    - pusLastPartLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1267
      start: 1259
    functionDepth: 3
    functionLinenumber: 1259
    functionLinenumberEnd: 1267
    functionName: FC_DecryptFinal
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - NSC_DecryptFinal
    - CHECK_FORK
    - SFTK_FIPSCHECK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_DecryptFinal(CK_SESSION_HANDLE hSession,\n                CK_BYTE_PTR
      pLastPart, CK_ULONG_PTR pusLastPartLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSFATALCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1278,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1279,1
    - Dst: NSC_DigestInit
      Src: /src/nss/lib/softoken/fipstokn.c:1281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - hSession
    - pMechanism
    argTypes:
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1282
      start: 1274
    functionDepth: 3
    functionLinenumber: 1274
    functionLinenumberEnd: 1282
    functionName: FC_DigestInit
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - CHECK_FORK
    - NSC_DigestInit
    - SFTK_FIPSFATALCHECK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_DigestInit(CK_SESSION_HANDLE hSession,\n              CK_MECHANISM_PTR
      pMechanism)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSFATALCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1290,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1291,1
    - Dst: NSC_Digest
      Src: /src/nss/lib/softoken/fipstokn.c:1293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - hSession
    - pData
    - usDataLen
    - pDigest
    - pusDigestLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1294
      start: 1285
    functionDepth: 3
    functionLinenumber: 1285
    functionLinenumberEnd: 1294
    functionName: FC_Digest
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - NSC_Digest
    - CHECK_FORK
    - SFTK_FIPSFATALCHECK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_Digest(CK_SESSION_HANDLE hSession,\n          CK_BYTE_PTR
      pData, CK_ULONG usDataLen, CK_BYTE_PTR pDigest,\n          CK_ULONG_PTR pusDigestLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSFATALCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1301,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1302,1
    - Dst: NSC_DigestUpdate
      Src: /src/nss/lib/softoken/fipstokn.c:1304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - hSession
    - pPart
    - usPartLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1305
      start: 1297
    functionDepth: 3
    functionLinenumber: 1297
    functionLinenumberEnd: 1305
    functionName: FC_DigestUpdate
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - CHECK_FORK
    - NSC_DigestUpdate
    - SFTK_FIPSFATALCHECK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_DigestUpdate(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart,\n
      \               CK_ULONG usPartLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSFATALCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1312,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1313,1
    - Dst: NSC_DigestFinal
      Src: /src/nss/lib/softoken/fipstokn.c:1315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - hSession
    - pDigest
    - pusDigestLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1316
      start: 1308
    functionDepth: 3
    functionLinenumber: 1308
    functionLinenumberEnd: 1316
    functionName: FC_DigestFinal
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - NSC_DigestFinal
    - CHECK_FORK
    - SFTK_FIPSFATALCHECK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_DigestFinal(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pDigest,\n
      \              CK_ULONG_PTR pusDigestLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1329,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1330,1
    - Dst: NSC_SignInit
      Src: /src/nss/lib/softoken/fipstokn.c:1332,1
    - Dst: sftk_AuditCryptInit
      Src: /src/nss/lib/softoken/fipstokn.c:1334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - hSession
    - pMechanism
    - hKey
    argTypes:
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1337
      start: 1325
    functionDepth: 7
    functionLinenumber: 1325
    functionLinenumberEnd: 1337
    functionName: FC_SignInit
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - NSC_SignInit
    - CHECK_FORK
    - sftk_AuditCryptInit
    - SFTK_FIPSCHECK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_SignInit(CK_SESSION_HANDLE hSession,\n            CK_MECHANISM_PTR
      pMechanism, CK_OBJECT_HANDLE hKey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1347,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1348,1
    - Dst: NSC_Sign
      Src: /src/nss/lib/softoken/fipstokn.c:1350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - hSession
    - pData
    - usDataLen
    - pSignature
    - pusSignatureLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1351
      start: 1342
    functionDepth: 5
    functionLinenumber: 1342
    functionLinenumberEnd: 1351
    functionName: FC_Sign
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - CHECK_FORK
    - NSC_Sign
    - SFTK_FIPSCHECK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_Sign(CK_SESSION_HANDLE hSession,\n        CK_BYTE_PTR pData,
      CK_ULONG usDataLen, CK_BYTE_PTR pSignature,\n        CK_ULONG_PTR pusSignatureLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1360,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1361,1
    - Dst: NSC_SignUpdate
      Src: /src/nss/lib/softoken/fipstokn.c:1363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - hSession
    - pPart
    - usPartLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1364
      start: 1356
    functionDepth: 4
    functionLinenumber: 1356
    functionLinenumberEnd: 1364
    functionName: FC_SignUpdate
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - CHECK_FORK
    - SFTK_FIPSCHECK
    - NSC_SignUpdate
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_SignUpdate(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart,\n
      \             CK_ULONG usPartLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1372,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1373,1
    - Dst: NSC_SignFinal
      Src: /src/nss/lib/softoken/fipstokn.c:1375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - hSession
    - pSignature
    - pusSignatureLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1376
      start: 1368
    functionDepth: 4
    functionLinenumber: 1368
    functionLinenumberEnd: 1376
    functionName: FC_SignFinal
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - CHECK_FORK
    - SFTK_FIPSCHECK
    - NSC_SignFinal
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_SignFinal(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pSignature,\n
      \            CK_ULONG_PTR pusSignatureLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1388,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1389,1
    - Dst: NSC_SignRecoverInit
      Src: /src/nss/lib/softoken/fipstokn.c:1391,1
    - Dst: sftk_AuditCryptInit
      Src: /src/nss/lib/softoken/fipstokn.c:1393,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - hSession
    - pMechanism
    - hKey
    argTypes:
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1396
      start: 1384
    functionDepth: 8
    functionLinenumber: 1384
    functionLinenumberEnd: 1396
    functionName: FC_SignRecoverInit
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - CHECK_FORK
    - sftk_AuditCryptInit
    - SFTK_FIPSCHECK
    - NSC_SignRecoverInit
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_SignRecoverInit(CK_SESSION_HANDLE hSession,\n                   CK_MECHANISM_PTR
      pMechanism, CK_OBJECT_HANDLE hKey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1405,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1406,1
    - Dst: NSC_SignRecover
      Src: /src/nss/lib/softoken/fipstokn.c:1408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - hSession
    - pData
    - usDataLen
    - pSignature
    - pusSignatureLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1409
      start: 1401
    functionDepth: 6
    functionLinenumber: 1401
    functionLinenumberEnd: 1409
    functionName: FC_SignRecover
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - CHECK_FORK
    - NSC_SignRecover
    - SFTK_FIPSCHECK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_SignRecover(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData,\n
      \              CK_ULONG usDataLen, CK_BYTE_PTR pSignature, CK_ULONG_PTR pusSignatureLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1422,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1423,1
    - Dst: NSC_VerifyInit
      Src: /src/nss/lib/softoken/fipstokn.c:1425,1
    - Dst: sftk_AuditCryptInit
      Src: /src/nss/lib/softoken/fipstokn.c:1427,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - hSession
    - pMechanism
    - hKey
    argTypes:
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1430
      start: 1418
    functionDepth: 7
    functionLinenumber: 1418
    functionLinenumberEnd: 1430
    functionName: FC_VerifyInit
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - NSC_VerifyInit
    - CHECK_FORK
    - sftk_AuditCryptInit
    - SFTK_FIPSCHECK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_VerifyInit(CK_SESSION_HANDLE hSession,\n              CK_MECHANISM_PTR
      pMechanism, CK_OBJECT_HANDLE hKey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1440,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1441,1
    - Dst: NSC_Verify
      Src: /src/nss/lib/softoken/fipstokn.c:1443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - hSession
    - pData
    - usDataLen
    - pSignature
    - usSignatureLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1444
      start: 1435
    functionDepth: 3
    functionLinenumber: 1435
    functionLinenumberEnd: 1444
    functionName: FC_Verify
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - CHECK_FORK
    - SFTK_FIPSCHECK
    - NSC_Verify
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_Verify(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData,\n          CK_ULONG
      usDataLen, CK_BYTE_PTR pSignature, CK_ULONG usSignatureLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1453,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1454,1
    - Dst: NSC_VerifyUpdate
      Src: /src/nss/lib/softoken/fipstokn.c:1456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - hSession
    - pPart
    - usPartLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1457
      start: 1449
    functionDepth: 4
    functionLinenumber: 1449
    functionLinenumberEnd: 1457
    functionName: FC_VerifyUpdate
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - CHECK_FORK
    - NSC_VerifyUpdate
    - SFTK_FIPSCHECK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_VerifyUpdate(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart,\n
      \               CK_ULONG usPartLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1465,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1466,1
    - Dst: NSC_VerifyFinal
      Src: /src/nss/lib/softoken/fipstokn.c:1468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - hSession
    - pSignature
    - usSignatureLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1469
      start: 1461
    functionDepth: 4
    functionLinenumber: 1461
    functionLinenumberEnd: 1469
    functionName: FC_VerifyFinal
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - NSC_VerifyFinal
    - CHECK_FORK
    - SFTK_FIPSCHECK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_VerifyFinal(CK_SESSION_HANDLE hSession,\n               CK_BYTE_PTR
      pSignature, CK_ULONG usSignatureLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1482,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1483,1
    - Dst: NSC_VerifyRecoverInit
      Src: /src/nss/lib/softoken/fipstokn.c:1485,1
    - Dst: sftk_AuditCryptInit
      Src: /src/nss/lib/softoken/fipstokn.c:1487,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - hSession
    - pMechanism
    - hKey
    argTypes:
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1490
      start: 1478
    functionDepth: 3
    functionLinenumber: 1478
    functionLinenumberEnd: 1490
    functionName: FC_VerifyRecoverInit
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - NSC_VerifyRecoverInit
    - CHECK_FORK
    - sftk_AuditCryptInit
    - SFTK_FIPSCHECK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_VerifyRecoverInit(CK_SESSION_HANDLE hSession,\n                     CK_MECHANISM_PTR
      pMechanism, CK_OBJECT_HANDLE hKey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1500,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1501,1
    - Dst: NSC_VerifyRecover
      Src: /src/nss/lib/softoken/fipstokn.c:1503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - hSession
    - pSignature
    - usSignatureLen
    - pData
    - pusDataLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1505
      start: 1495
    functionDepth: 3
    functionLinenumber: 1495
    functionLinenumberEnd: 1505
    functionName: FC_VerifyRecover
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - NSC_VerifyRecover
    - CHECK_FORK
    - SFTK_FIPSCHECK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_VerifyRecover(CK_SESSION_HANDLE hSession,\n                 CK_BYTE_PTR
      pSignature, CK_ULONG usSignatureLen,\n                 CK_BYTE_PTR pData, CK_ULONG_PTR
      pusDataLen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1519,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1520,1
    - Dst: fc_getAttribute
      Src: /src/nss/lib/softoken/fipstokn.c:1524,1
    - Dst: NSC_GenerateKey
      Src: /src/nss/lib/softoken/fipstokn.c:1531,1
    - Dst: sftk_AuditGenerateKey
      Src: /src/nss/lib/softoken/fipstokn.c:1533,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 5
    argNames:
    - hSession
    - pMechanism
    - pTemplate
    - ulCount
    - phKey
    argTypes:
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    - CK_OBJECT_HANDLE_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1536
      start: 1512
    functionDepth: 9
    functionLinenumber: 1512
    functionLinenumberEnd: 1536
    functionName: FC_GenerateKey
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - NSC_GenerateKey
    - CHECK_FORK
    - sftk_AuditGenerateKey
    - fc_getAttribute
    - SFTK_FIPSCHECK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_GenerateKey(CK_SESSION_HANDLE hSession,\n               CK_MECHANISM_PTR
      pMechanism, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount,\n               CK_OBJECT_HANDLE_PTR
      phKey)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1550,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1551,1
    - Dst: fc_getAttribute
      Src: /src/nss/lib/softoken/fipstokn.c:1555,1
    - Dst: NSC_GenerateKeyPair
      Src: /src/nss/lib/softoken/fipstokn.c:1562,1
    - Dst: sftk_AuditGenerateKeyPair
      Src: /src/nss/lib/softoken/fipstokn.c:1570,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 8
    argNames:
    - hSession
    - pMechanism
    - pPublicKeyTemplate
    - usPublicKeyAttributeCount
    - pPrivateKeyTemplate
    - usPrivateKeyAttributeCount
    - phPublicKey
    - phPrivateKey
    argTypes:
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    - CK_OBJECT_HANDLE_PTR
    - CK_OBJECT_HANDLE_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1575
      start: 1540
    functionDepth: 9
    functionLinenumber: 1540
    functionLinenumberEnd: 1575
    functionName: FC_GenerateKeyPair
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - NSC_GenerateKeyPair
    - sftk_AuditGenerateKeyPair
    - CHECK_FORK
    - fc_getAttribute
    - SFTK_FIPSCHECK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_GenerateKeyPair(CK_SESSION_HANDLE hSession,\n                   CK_MECHANISM_PTR
      pMechanism, CK_ATTRIBUTE_PTR pPublicKeyTemplate,\n                   CK_ULONG
      usPublicKeyAttributeCount, CK_ATTRIBUTE_PTR pPrivateKeyTemplate,\n                   CK_ULONG
      usPrivateKeyAttributeCount, CK_OBJECT_HANDLE_PTR phPublicKey,\n                   CK_OBJECT_HANDLE_PTR
      phPrivateKey)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1584,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1585,1
    - Dst: NSC_WrapKey
      Src: /src/nss/lib/softoken/fipstokn.c:1587,1
    - Dst: sftk_AuditWrapKey
      Src: /src/nss/lib/softoken/fipstokn.c:1590,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 6
    argNames:
    - hSession
    - pMechanism
    - hWrappingKey
    - hKey
    - pWrappedKey
    - pulWrappedKeyLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_OBJECT_HANDLE
    - CK_OBJECT_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1594
      start: 1578
    functionDepth: 5
    functionLinenumber: 1578
    functionLinenumberEnd: 1594
    functionName: FC_WrapKey
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - NSC_WrapKey
    - CHECK_FORK
    - SFTK_FIPSCHECK
    - sftk_AuditWrapKey
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_WrapKey(CK_SESSION_HANDLE hSession,\n           CK_MECHANISM_PTR
      pMechanism, CK_OBJECT_HANDLE hWrappingKey,\n           CK_OBJECT_HANDLE hKey,
      CK_BYTE_PTR pWrappedKey,\n           CK_ULONG_PTR pulWrappedKeyLen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1606,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1607,1
    - Dst: fc_getAttribute
      Src: /src/nss/lib/softoken/fipstokn.c:1611,1
    - Dst: NSC_UnwrapKey
      Src: /src/nss/lib/softoken/fipstokn.c:1618,1
    - Dst: sftk_AuditUnwrapKey
      Src: /src/nss/lib/softoken/fipstokn.c:1621,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 8
    argNames:
    - hSession
    - pMechanism
    - hUnwrappingKey
    - pWrappedKey
    - ulWrappedKeyLen
    - pTemplate
    - ulAttributeCount
    - phKey
    argTypes:
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_OBJECT_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    - CK_OBJECT_HANDLE_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1625
      start: 1597
    functionDepth: 9
    functionLinenumber: 1597
    functionLinenumberEnd: 1625
    functionName: FC_UnwrapKey
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - CHECK_FORK
    - NSC_UnwrapKey
    - fc_getAttribute
    - SFTK_FIPSCHECK
    - sftk_AuditUnwrapKey
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_UnwrapKey(CK_SESSION_HANDLE hSession,\n             CK_MECHANISM_PTR
      pMechanism, CK_OBJECT_HANDLE hUnwrappingKey,\n             CK_BYTE_PTR pWrappedKey,
      CK_ULONG ulWrappedKeyLen,\n             CK_ATTRIBUTE_PTR pTemplate, CK_ULONG
      ulAttributeCount,\n             CK_OBJECT_HANDLE_PTR phKey)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1636,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1637,1
    - Dst: fc_getAttribute
      Src: /src/nss/lib/softoken/fipstokn.c:1641,1
    - Dst: NSC_DeriveKey
      Src: /src/nss/lib/softoken/fipstokn.c:1648,1
    - Dst: sftk_AuditDeriveKey
      Src: /src/nss/lib/softoken/fipstokn.c:1651,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 6
    argNames:
    - hSession
    - pMechanism
    - hBaseKey
    - pTemplate
    - ulAttributeCount
    - phKey
    argTypes:
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_OBJECT_HANDLE
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    - CK_OBJECT_HANDLE_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1655
      start: 1628
    functionDepth: 10
    functionLinenumber: 1628
    functionLinenumberEnd: 1655
    functionName: FC_DeriveKey
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - NSC_DeriveKey
    - CHECK_FORK
    - fc_getAttribute
    - SFTK_FIPSCHECK
    - sftk_AuditDeriveKey
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_DeriveKey(CK_SESSION_HANDLE hSession,\n             CK_MECHANISM_PTR
      pMechanism, CK_OBJECT_HANDLE hBaseKey,\n             CK_ATTRIBUTE_PTR pTemplate,
      CK_ULONG ulAttributeCount,\n             CK_OBJECT_HANDLE_PTR phKey)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSFATALCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1669,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1670,1
    - Dst: NSC_SeedRandom
      Src: /src/nss/lib/softoken/fipstokn.c:1672,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - hSession
    - pSeed
    - usSeedLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1677
      start: 1663
    functionDepth: 2
    functionLinenumber: 1663
    functionLinenumberEnd: 1677
    functionName: FC_SeedRandom
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - CHECK_FORK
    - NSC_SeedRandom
    - SFTK_FIPSFATALCHECK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_SeedRandom(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pSeed,\n
      \             CK_ULONG usSeedLen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1686,1
    - Dst: SFTK_FIPSFATALCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1688,1
    - Dst: NSC_GenerateRandom
      Src: /src/nss/lib/softoken/fipstokn.c:1689,1
    - Dst: PR_snprintf
      Src: /src/nss/lib/softoken/fipstokn.c:1694,1
    - Dst: sftk_LogAuditMessage
      Src: /src/nss/lib/softoken/fipstokn.c:1700,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - hSession
    - pRandomData
    - ulRandomLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1704
      start: 1680
    functionDepth: 2
    functionLinenumber: 1680
    functionLinenumberEnd: 1704
    functionName: FC_GenerateRandom
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - PR_snprintf
    - sftk_LogAuditMessage
    - SFTK_FIPSFATALCHECK
    - CHECK_FORK
    - NSC_GenerateRandom
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_GenerateRandom(CK_SESSION_HANDLE hSession,\n                  CK_BYTE_PTR
      pRandomData, CK_ULONG ulRandomLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1711,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1712,1
    - Dst: NSC_GetFunctionStatus
      Src: /src/nss/lib/softoken/fipstokn.c:1714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - hSession
    argTypes:
    - CK_SESSION_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1715
      start: 1708
    functionDepth: 2
    functionLinenumber: 1708
    functionLinenumberEnd: 1715
    functionName: FC_GetFunctionStatus
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - NSC_GetFunctionStatus
    - CHECK_FORK
    - SFTK_FIPSCHECK
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV FC_GetFunctionStatus(CK_SESSION_HANDLE hSession)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1721,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1722,1
    - Dst: NSC_CancelFunction
      Src: /src/nss/lib/softoken/fipstokn.c:1724,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - hSession
    argTypes:
    - CK_SESSION_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1725
      start: 1718
    functionDepth: 2
    functionLinenumber: 1718
    functionLinenumberEnd: 1725
    functionName: FC_CancelFunction
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - NSC_CancelFunction
    - CHECK_FORK
    - SFTK_FIPSCHECK
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV FC_CancelFunction(CK_SESSION_HANDLE hSession)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSFATALCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1737,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1738,1
    - Dst: NSC_GetOperationState
      Src: /src/nss/lib/softoken/fipstokn.c:1740,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - hSession
    - pOperationState
    - pulOperationStateLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1741
      start: 1733
    functionDepth: 3
    functionLinenumber: 1733
    functionLinenumberEnd: 1741
    functionName: FC_GetOperationState
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - CHECK_FORK
    - NSC_GetOperationState
    - SFTK_FIPSFATALCHECK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_GetOperationState(CK_SESSION_HANDLE hSession,\n                     CK_BYTE_PTR
      pOperationState, CK_ULONG_PTR pulOperationStateLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSFATALCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1750,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1751,1
    - Dst: NSC_SetOperationState
      Src: /src/nss/lib/softoken/fipstokn.c:1753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - hSession
    - pOperationState
    - ulOperationStateLen
    - hEncryptionKey
    - hAuthenticationKey
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_OBJECT_HANDLE
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1755
      start: 1745
    functionDepth: 4
    functionLinenumber: 1745
    functionLinenumberEnd: 1755
    functionName: FC_SetOperationState
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - NSC_SetOperationState
    - CHECK_FORK
    - SFTK_FIPSFATALCHECK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_SetOperationState(CK_SESSION_HANDLE hSession,\n                     CK_BYTE_PTR
      pOperationState, CK_ULONG ulOperationStateLen,\n                     CK_OBJECT_HANDLE
      hEncryptionKey, CK_OBJECT_HANDLE hAuthenticationKey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSFATALCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1762,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1763,1
    - Dst: NSC_FindObjectsFinal
      Src: /src/nss/lib/softoken/fipstokn.c:1765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - hSession
    argTypes:
    - CK_SESSION_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1766
      start: 1758
    functionDepth: 2
    functionLinenumber: 1758
    functionLinenumberEnd: 1766
    functionName: FC_FindObjectsFinal
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - NSC_FindObjectsFinal
    - CHECK_FORK
    - SFTK_FIPSFATALCHECK
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV FC_FindObjectsFinal(CK_SESSION_HANDLE hSession)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1777,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1778,1
    - Dst: NSC_DigestEncryptUpdate
      Src: /src/nss/lib/softoken/fipstokn.c:1780,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - hSession
    - pPart
    - ulPartLen
    - pEncryptedPart
    - pulEncryptedPartLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1782
      start: 1772
    functionDepth: 4
    functionLinenumber: 1772
    functionLinenumberEnd: 1782
    functionName: FC_DigestEncryptUpdate
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - NSC_DigestEncryptUpdate
    - CHECK_FORK
    - SFTK_FIPSCHECK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_DigestEncryptUpdate(CK_SESSION_HANDLE hSession, CK_BYTE_PTR
      pPart,\n                       CK_ULONG ulPartLen, CK_BYTE_PTR pEncryptedPart,\n
      \                      CK_ULONG_PTR pulEncryptedPartLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1791,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1792,1
    - Dst: NSC_DecryptDigestUpdate
      Src: /src/nss/lib/softoken/fipstokn.c:1794,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - hSession
    - pEncryptedPart
    - ulEncryptedPartLen
    - pPart
    - pulPartLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1796
      start: 1786
    functionDepth: 4
    functionLinenumber: 1786
    functionLinenumberEnd: 1796
    functionName: FC_DecryptDigestUpdate
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - NSC_DecryptDigestUpdate
    - CHECK_FORK
    - SFTK_FIPSCHECK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_DecryptDigestUpdate(CK_SESSION_HANDLE hSession,\n                       CK_BYTE_PTR
      pEncryptedPart, CK_ULONG ulEncryptedPartLen,\n                       CK_BYTE_PTR
      pPart, CK_ULONG_PTR pulPartLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1805,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1806,1
    - Dst: NSC_SignEncryptUpdate
      Src: /src/nss/lib/softoken/fipstokn.c:1808,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - hSession
    - pPart
    - ulPartLen
    - pEncryptedPart
    - pulEncryptedPartLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1810
      start: 1800
    functionDepth: 5
    functionLinenumber: 1800
    functionLinenumberEnd: 1810
    functionName: FC_SignEncryptUpdate
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - CHECK_FORK
    - SFTK_FIPSCHECK
    - NSC_SignEncryptUpdate
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_SignEncryptUpdate(CK_SESSION_HANDLE hSession, CK_BYTE_PTR
      pPart,\n                     CK_ULONG ulPartLen, CK_BYTE_PTR pEncryptedPart,\n
      \                    CK_ULONG_PTR pulEncryptedPartLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1819,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1820,1
    - Dst: NSC_DecryptVerifyUpdate
      Src: /src/nss/lib/softoken/fipstokn.c:1822,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - hSession
    - pEncryptedData
    - ulEncryptedDataLen
    - pData
    - pulDataLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1824
      start: 1814
    functionDepth: 5
    functionLinenumber: 1814
    functionLinenumberEnd: 1824
    functionName: FC_DecryptVerifyUpdate
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - CHECK_FORK
    - NSC_DecryptVerifyUpdate
    - SFTK_FIPSCHECK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_DecryptVerifyUpdate(CK_SESSION_HANDLE hSession,\n                       CK_BYTE_PTR
      pEncryptedData, CK_ULONG ulEncryptedDataLen,\n                       CK_BYTE_PTR
      pData, CK_ULONG_PTR pulDataLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1832,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1833,1
    - Dst: NSC_DigestKey
      Src: /src/nss/lib/softoken/fipstokn.c:1835,1
    - Dst: sftk_AuditDigestKey
      Src: /src/nss/lib/softoken/fipstokn.c:1837,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - hSession
    - hKey
    argTypes:
    - CK_SESSION_HANDLE
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1840
      start: 1829
    functionDepth: 4
    functionLinenumber: 1829
    functionLinenumberEnd: 1840
    functionName: FC_DigestKey
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - sftk_AuditDigestKey
    - CHECK_FORK
    - NSC_DigestKey
    - SFTK_FIPSCHECK
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV FC_DigestKey(CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hKey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1846,1
    - Dst: NSC_WaitForSlotEvent
      Src: /src/nss/lib/softoken/fipstokn.c:1848,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - flags
    - pSlot
    - pReserved
    argTypes:
    - CK_FLAGS
    - CK_SLOT_ID_PTR
    - CK_VOID_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1849
      start: 1842
    functionDepth: 2
    functionLinenumber: 1842
    functionLinenumberEnd: 1849
    functionName: FC_WaitForSlotEvent
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - NSC_WaitForSlotEvent
    - CHECK_FORK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_WaitForSlotEvent(CK_FLAGS flags, CK_SLOT_ID_PTR pSlot,\n
      \                   CK_VOID_PTR pReserved)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1855,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1856,1
    - Dst: NSC_MessageEncryptInit
      Src: /src/nss/lib/softoken/fipstokn.c:1858,1
    - Dst: sftk_AuditCryptInit
      Src: /src/nss/lib/softoken/fipstokn.c:1860,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - hSession
    - pMechanism
    - hKey
    argTypes:
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1863
      start: 1851
    functionDepth: 1
    functionLinenumber: 1851
    functionLinenumberEnd: 1863
    functionName: FC_MessageEncryptInit
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - NSC_MessageEncryptInit
    - CHECK_FORK
    - sftk_AuditCryptInit
    - SFTK_FIPSCHECK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_MessageEncryptInit(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR
      pMechanism,\n                      CK_OBJECT_HANDLE hKey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1872,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1873,1
    - Dst: NSC_EncryptMessage
      Src: /src/nss/lib/softoken/fipstokn.c:1874,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 9
    argNames:
    - hSession
    - pParameter
    - ulParameterLen
    - pAssociatedData
    - ulAssociatedDataLen
    - pPlaintext
    - ulPlaintextLen
    - pCiphertext
    - pulCiphertextLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_VOID_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1878
      start: 1865
    functionDepth: 1
    functionLinenumber: 1865
    functionLinenumberEnd: 1878
    functionName: FC_EncryptMessage
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - CHECK_FORK
    - NSC_EncryptMessage
    - SFTK_FIPSCHECK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_EncryptMessage(CK_SESSION_HANDLE hSession, CK_VOID_PTR pParameter,\n
      \                 CK_ULONG ulParameterLen, CK_BYTE_PTR pAssociatedData,\n                  CK_ULONG
      ulAssociatedDataLen, CK_BYTE_PTR pPlaintext,\n                  CK_ULONG ulPlaintextLen,
      CK_BYTE_PTR pCiphertext,\n                  CK_ULONG_PTR pulCiphertextLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1885,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1886,1
    - Dst: NSC_EncryptMessageBegin
      Src: /src/nss/lib/softoken/fipstokn.c:1887,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - hSession
    - pParameter
    - ulParameterLen
    - pAssociatedData
    - ulAssociatedDataLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_VOID_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1889
      start: 1880
    functionDepth: 1
    functionLinenumber: 1880
    functionLinenumberEnd: 1889
    functionName: FC_EncryptMessageBegin
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - NSC_EncryptMessageBegin
    - CHECK_FORK
    - SFTK_FIPSCHECK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_EncryptMessageBegin(CK_SESSION_HANDLE hSession, CK_VOID_PTR
      pParameter,\n                       CK_ULONG ulParameterLen, CK_BYTE_PTR pAssociatedData,\n
      \                      CK_ULONG ulAssociatedDataLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1897,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1898,1
    - Dst: NSC_EncryptMessageNext
      Src: /src/nss/lib/softoken/fipstokn.c:1899,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 8
    argNames:
    - hSession
    - pParameter
    - ulParameterLen
    - pPlaintextPart
    - ulPlaintextPartLen
    - pCiphertextPart
    - pulCiphertextPartLen
    - flags
    argTypes:
    - CK_SESSION_HANDLE
    - CK_VOID_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    - CK_FLAGS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1902
      start: 1891
    functionDepth: 1
    functionLinenumber: 1891
    functionLinenumberEnd: 1902
    functionName: FC_EncryptMessageNext
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - NSC_EncryptMessageNext
    - CHECK_FORK
    - SFTK_FIPSCHECK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_EncryptMessageNext(CK_SESSION_HANDLE hSession, CK_VOID_PTR
      pParameter,\n                      CK_ULONG ulParameterLen, CK_BYTE_PTR pPlaintextPart,\n
      \                     CK_ULONG ulPlaintextPartLen, CK_BYTE_PTR pCiphertextPart,\n
      \                     CK_ULONG_PTR pulCiphertextPartLen, CK_FLAGS flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1907,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1908,1
    - Dst: NSC_MessageEncryptFinal
      Src: /src/nss/lib/softoken/fipstokn.c:1909,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - hSession
    argTypes:
    - CK_SESSION_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1910
      start: 1904
    functionDepth: 1
    functionLinenumber: 1904
    functionLinenumberEnd: 1910
    functionName: FC_MessageEncryptFinal
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - NSC_MessageEncryptFinal
    - CHECK_FORK
    - SFTK_FIPSCHECK
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV FC_MessageEncryptFinal(CK_SESSION_HANDLE hSession)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1916,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1917,1
    - Dst: NSC_MessageDecryptInit
      Src: /src/nss/lib/softoken/fipstokn.c:1919,1
    - Dst: sftk_AuditCryptInit
      Src: /src/nss/lib/softoken/fipstokn.c:1921,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - hSession
    - pMechanism
    - hKey
    argTypes:
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1924
      start: 1912
    functionDepth: 1
    functionLinenumber: 1912
    functionLinenumberEnd: 1924
    functionName: FC_MessageDecryptInit
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - NSC_MessageDecryptInit
    - CHECK_FORK
    - sftk_AuditCryptInit
    - SFTK_FIPSCHECK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_MessageDecryptInit(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR
      pMechanism,\n                      CK_OBJECT_HANDLE hKey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1933,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1934,1
    - Dst: NSC_DecryptMessage
      Src: /src/nss/lib/softoken/fipstokn.c:1935,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 9
    argNames:
    - hSession
    - pParameter
    - ulParameterLen
    - pAssociatedData
    - ulAssociatedDataLen
    - pCiphertext
    - ulCiphertextLen
    - pPlaintext
    - pulPlaintextLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_VOID_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1939
      start: 1926
    functionDepth: 1
    functionLinenumber: 1926
    functionLinenumberEnd: 1939
    functionName: FC_DecryptMessage
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - CHECK_FORK
    - NSC_DecryptMessage
    - SFTK_FIPSCHECK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_DecryptMessage(CK_SESSION_HANDLE hSession, CK_VOID_PTR pParameter,\n
      \                 CK_ULONG ulParameterLen, CK_BYTE_PTR pAssociatedData,\n                  CK_ULONG
      ulAssociatedDataLen, CK_BYTE_PTR pCiphertext,\n                  CK_ULONG ulCiphertextLen,
      CK_BYTE_PTR pPlaintext,\n                  CK_ULONG_PTR pulPlaintextLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1946,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1947,1
    - Dst: NSC_DecryptMessageBegin
      Src: /src/nss/lib/softoken/fipstokn.c:1948,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - hSession
    - pParameter
    - ulParameterLen
    - pAssociatedData
    - ulAssociatedDataLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_VOID_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1950
      start: 1941
    functionDepth: 1
    functionLinenumber: 1941
    functionLinenumberEnd: 1950
    functionName: FC_DecryptMessageBegin
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - CHECK_FORK
    - SFTK_FIPSCHECK
    - NSC_DecryptMessageBegin
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_DecryptMessageBegin(CK_SESSION_HANDLE hSession, CK_VOID_PTR
      pParameter,\n                       CK_ULONG ulParameterLen, CK_BYTE_PTR pAssociatedData,\n
      \                      CK_ULONG ulAssociatedDataLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1958,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1959,1
    - Dst: NSC_DecryptMessageNext
      Src: /src/nss/lib/softoken/fipstokn.c:1960,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 8
    argNames:
    - hSession
    - pParameter
    - ulParameterLen
    - pCiphertextPart
    - ulCiphertextPartLen
    - pPlaintextPart
    - pulPlaintextPartLen
    - flags
    argTypes:
    - CK_SESSION_HANDLE
    - CK_VOID_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    - CK_FLAGS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1963
      start: 1952
    functionDepth: 1
    functionLinenumber: 1952
    functionLinenumberEnd: 1963
    functionName: FC_DecryptMessageNext
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - NSC_DecryptMessageNext
    - CHECK_FORK
    - SFTK_FIPSCHECK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_DecryptMessageNext(CK_SESSION_HANDLE hSession, CK_VOID_PTR
      pParameter,\n                      CK_ULONG ulParameterLen, CK_BYTE_PTR pCiphertextPart,\n
      \                     CK_ULONG ulCiphertextPartLen, CK_BYTE_PTR pPlaintextPart,\n
      \                     CK_ULONG_PTR pulPlaintextPartLen, CK_FLAGS flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1968,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1969,1
    - Dst: NSC_MessageDecryptFinal
      Src: /src/nss/lib/softoken/fipstokn.c:1970,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - hSession
    argTypes:
    - CK_SESSION_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1971
      start: 1965
    functionDepth: 1
    functionLinenumber: 1965
    functionLinenumberEnd: 1971
    functionName: FC_MessageDecryptFinal
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - NSC_MessageDecryptFinal
    - CHECK_FORK
    - SFTK_FIPSCHECK
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV FC_MessageDecryptFinal(CK_SESSION_HANDLE hSession)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1977,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1978,1
    - Dst: NSC_MessageSignInit
      Src: /src/nss/lib/softoken/fipstokn.c:1980,1
    - Dst: sftk_AuditCryptInit
      Src: /src/nss/lib/softoken/fipstokn.c:1982,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - hSession
    - pMechanism
    - hKey
    argTypes:
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1985
      start: 1973
    functionDepth: 1
    functionLinenumber: 1973
    functionLinenumberEnd: 1985
    functionName: FC_MessageSignInit
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - NSC_MessageSignInit
    - CHECK_FORK
    - sftk_AuditCryptInit
    - SFTK_FIPSCHECK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_MessageSignInit(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR
      pMechanism,\n                   CK_OBJECT_HANDLE hKey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:1992,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:1993,1
    - Dst: NSC_SignMessage
      Src: /src/nss/lib/softoken/fipstokn.c:1994,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 7
    argNames:
    - hSession
    - pParameter
    - ulParameterLen
    - pData
    - ulDataLen
    - pSignature
    - pulSignatureLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_VOID_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1996
      start: 1987
    functionDepth: 1
    functionLinenumber: 1987
    functionLinenumberEnd: 1996
    functionName: FC_SignMessage
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - CHECK_FORK
    - NSC_SignMessage
    - SFTK_FIPSCHECK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_SignMessage(CK_SESSION_HANDLE hSession, CK_VOID_PTR pParameter,\n
      \              CK_ULONG ulParameterLen, CK_BYTE_PTR pData, CK_ULONG ulDataLen,\n
      \              CK_BYTE_PTR pSignature, CK_ULONG_PTR pulSignatureLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:2002,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:2003,1
    - Dst: NSC_SignMessageBegin
      Src: /src/nss/lib/softoken/fipstokn.c:2004,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - hSession
    - pParameter
    - ulParameterLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_VOID_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2005
      start: 1998
    functionDepth: 1
    functionLinenumber: 1998
    functionLinenumberEnd: 2005
    functionName: FC_SignMessageBegin
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - NSC_SignMessageBegin
    - CHECK_FORK
    - SFTK_FIPSCHECK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_SignMessageBegin(CK_SESSION_HANDLE hSession, CK_VOID_PTR
      pParameter,\n                    CK_ULONG ulParameterLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:2013,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:2014,1
    - Dst: NSC_SignMessageNext
      Src: /src/nss/lib/softoken/fipstokn.c:2015,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 7
    argNames:
    - hSession
    - pParameter
    - ulParameterLen
    - pData
    - ulDataLen
    - pSignature
    - pulSignatureLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_VOID_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2017
      start: 2007
    functionDepth: 1
    functionLinenumber: 2007
    functionLinenumberEnd: 2017
    functionName: FC_SignMessageNext
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - NSC_SignMessageNext
    - CHECK_FORK
    - SFTK_FIPSCHECK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_SignMessageNext(CK_SESSION_HANDLE hSession, CK_VOID_PTR pParameter,\n
      \                  CK_ULONG ulParameterLen, CK_BYTE_PTR pData,\n                   CK_ULONG
      ulDataLen, CK_BYTE_PTR pSignature,\n                   CK_ULONG_PTR pulSignatureLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:2022,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:2023,1
    - Dst: NSC_MessageSignFinal
      Src: /src/nss/lib/softoken/fipstokn.c:2024,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - hSession
    argTypes:
    - CK_SESSION_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2025
      start: 2019
    functionDepth: 1
    functionLinenumber: 2019
    functionLinenumberEnd: 2025
    functionName: FC_MessageSignFinal
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - CHECK_FORK
    - SFTK_FIPSCHECK
    - NSC_MessageSignFinal
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV FC_MessageSignFinal(CK_SESSION_HANDLE hSession)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:2031,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:2032,1
    - Dst: NSC_MessageVerifyInit
      Src: /src/nss/lib/softoken/fipstokn.c:2034,1
    - Dst: sftk_AuditCryptInit
      Src: /src/nss/lib/softoken/fipstokn.c:2036,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - hSession
    - pMechanism
    - hKey
    argTypes:
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2039
      start: 2027
    functionDepth: 1
    functionLinenumber: 2027
    functionLinenumberEnd: 2039
    functionName: FC_MessageVerifyInit
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - NSC_MessageVerifyInit
    - CHECK_FORK
    - sftk_AuditCryptInit
    - SFTK_FIPSCHECK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_MessageVerifyInit(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR
      pMechanism,\n                     CK_OBJECT_HANDLE hKey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:2047,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:2048,1
    - Dst: NSC_VerifyMessage
      Src: /src/nss/lib/softoken/fipstokn.c:2049,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 7
    argNames:
    - hSession
    - pParameter
    - ulParameterLen
    - pData
    - ulDataLen
    - pSignature
    - ulSignatureLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_VOID_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2051
      start: 2041
    functionDepth: 1
    functionLinenumber: 2041
    functionLinenumberEnd: 2051
    functionName: FC_VerifyMessage
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - NSC_VerifyMessage
    - CHECK_FORK
    - SFTK_FIPSCHECK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_VerifyMessage(CK_SESSION_HANDLE hSession, CK_VOID_PTR pParameter,\n
      \                CK_ULONG ulParameterLen, CK_BYTE_PTR pData,\n                 CK_ULONG
      ulDataLen, CK_BYTE_PTR pSignature,\n                 CK_ULONG ulSignatureLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:2057,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:2058,1
    - Dst: NSC_VerifyMessageBegin
      Src: /src/nss/lib/softoken/fipstokn.c:2059,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - hSession
    - pParameter
    - ulParameterLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_VOID_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2060
      start: 2053
    functionDepth: 1
    functionLinenumber: 2053
    functionLinenumberEnd: 2060
    functionName: FC_VerifyMessageBegin
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - CHECK_FORK
    - SFTK_FIPSCHECK
    - NSC_VerifyMessageBegin
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_VerifyMessageBegin(CK_SESSION_HANDLE hSession, CK_VOID_PTR
      pParameter,\n                      CK_ULONG ulParameterLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:2068,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:2069,1
    - Dst: NSC_VerifyMessageNext
      Src: /src/nss/lib/softoken/fipstokn.c:2070,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 7
    argNames:
    - hSession
    - pParameter
    - ulParameterLen
    - pData
    - ulDataLen
    - pSignature
    - ulSignatureLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_VOID_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2072
      start: 2062
    functionDepth: 1
    functionLinenumber: 2062
    functionLinenumberEnd: 2072
    functionName: FC_VerifyMessageNext
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - CHECK_FORK
    - NSC_VerifyMessageNext
    - SFTK_FIPSCHECK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV FC_VerifyMessageNext(CK_SESSION_HANDLE hSession, CK_VOID_PTR
      pParameter,\n                     CK_ULONG ulParameterLen, CK_BYTE_PTR pData,\n
      \                    CK_ULONG ulDataLen, CK_BYTE_PTR pSignature,\n                     CK_ULONG
      ulSignatureLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_FIPSCHECK
      Src: /src/nss/lib/softoken/fipstokn.c:2077,1
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/fipstokn.c:2078,1
    - Dst: NSC_MessageVerifyFinal
      Src: /src/nss/lib/softoken/fipstokn.c:2079,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - hSession
    argTypes:
    - CK_SESSION_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2080
      start: 2074
    functionDepth: 1
    functionLinenumber: 2074
    functionLinenumberEnd: 2080
    functionName: FC_MessageVerifyFinal
    functionSourceFile: /src/nss/lib/softoken/fipstokn.c
    functionUses: 0
    functionsReached:
    - NSC_MessageVerifyFinal
    - CHECK_FORK
    - SFTK_FIPSCHECK
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV FC_MessageVerifyFinal(CK_SESSION_HANDLE hSession)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 161
    functionName: FORK_ASSERT
    functionSourceFile: /src/nss/lib/softoken/softoken.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FORK_ASSERT()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 212
    functionName: PARENT_FORKED
    functionSourceFile: /src/nss/lib/softoken/softoken.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PARENT_FORKED()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 218
    functionName: PARENT_FORKED
    functionSourceFile: /src/nss/lib/softoken/softoken.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PARENT_FORKED()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 225
    functionName: PARENT_FORKED
    functionSourceFile: /src/nss/lib/softoken/softoken.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PARENT_FORKED()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 238
    functionName: CHECK_FORK
    functionSourceFile: /src/nss/lib/softoken/softoken.h
    functionUses: 154
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_FORK()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 242
    functionName: SKIP_AFTER_FORK
    functionSourceFile: /src/nss/lib/softoken/softoken.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SKIP_AFTER_FORK(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 250
    functionName: ENABLE_FORK_CHECK
    functionSourceFile: /src/nss/lib/softoken/softoken.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENABLE_FORK_CHECK()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 257
    functionName: SKIP_AFTER_FORK
    functionSourceFile: /src/nss/lib/softoken/softoken.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SKIP_AFTER_FORK(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ChaCha20Poly1305_Encrypt
      Src: /src/nss/lib/softoken/sftkmessage.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 10
    argNames:
    - vctx
    - cipherText
    - cipherTextLen
    - maxOutLen
    - plainText
    - plainTextLen
    - vparams
    - paramsLen
    - aad
    - aadLen
    argTypes:
    - void*
    - void*
    - unsigned int*
    - unsigned int
    - void*
    - unsigned int
    - void*
    - unsigned int
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 30
    functionName: sftk_ChaCha20_Poly1305_Message_Encrypt
    functionSourceFile: /src/nss/lib/softoken/sftkmessage.c
    functionUses: 0
    functionsReached:
    - ChaCha20Poly1305_Encrypt
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sftk_ChaCha20_Poly1305_Message_Encrypt(void *vctx,\n                                       void
      *cipherText, unsigned int *cipherTextLen,\n                                       unsigned
      int maxOutLen, void *plainText,\n                                       unsigned
      int plainTextLen,\n                                       void *vparams,\n                                       unsigned
      int paramsLen, void *aad,\n                                       unsigned int
      aadLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ChaCha20Poly1305_Decrypt
      Src: /src/nss/lib/softoken/sftkmessage.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 10
    argNames:
    - vctx
    - plainText
    - plainTextLen
    - maxOutLen
    - cipherText
    - cipherTextLen
    - vparams
    - paramsLen
    - aad
    - aadLen
    argTypes:
    - void*
    - void*
    - unsigned int*
    - unsigned int
    - void*
    - unsigned int
    - void*
    - unsigned int
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 46
    functionName: sftk_ChaCha20_Poly1305_Message_Decrypt
    functionSourceFile: /src/nss/lib/softoken/sftkmessage.c
    functionUses: 0
    functionsReached:
    - ChaCha20Poly1305_Decrypt
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sftk_ChaCha20_Poly1305_Message_Decrypt(void *vctx,\n                                       void
      *plainText, unsigned int *plainTextLen,\n                                       unsigned
      int maxOutLen, void *cipherText,\n                                       unsigned
      int cipherTextLen,\n                                       void *vparams,\n
      \                                      unsigned int paramsLen, void *aad,\n
      \                                      unsigned int aadLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ChaCha20Poly1305_DestroyContext
      Src: /src/nss/lib/softoken/sftkmessage.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - vctx
    - freeit
    argTypes:
    - void*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 53
    functionName: sftk_ChaCha20Poly1305_DestroyContext
    functionSourceFile: /src/nss/lib/softoken/sftkmessage.c
    functionUses: 0
    functionsReached:
    - ChaCha20Poly1305_DestroyContext
    linkageType: ''
    returnType: void
    signature: void sftk_ChaCha20Poly1305_DestroyContext(void *vctx, PRBool freeit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AES_AEAD
      Src: /src/nss/lib/softoken/sftkmessage.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 10
    argNames:
    - vctx
    - plainText
    - plainTextLen
    - maxOutLen
    - cipherText
    - cipherTextLen
    - params
    - paramsLen
    - aad
    - aadLen
    argTypes:
    - void*
    - void*
    - unsigned int*
    - unsigned int
    - void*
    - unsigned int
    - void*
    - unsigned int
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 66
    functionName: sftk_AES_AEAD
    functionSourceFile: /src/nss/lib/softoken/sftkmessage.c
    functionUses: 0
    functionsReached:
    - AES_AEAD
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sftk_AES_AEAD(void *vctx,\n              void *plainText,
      unsigned int *plainTextLen,\n              unsigned int maxOutLen, void *cipherText,\n
      \             unsigned int cipherTextLen,\n              void *params,\n              unsigned
      int paramsLen, void *aad,\n              unsigned int aadLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AES_DestroyContext
      Src: /src/nss/lib/softoken/sftkmessage.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - freeit
    argTypes:
    - void*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 73
    functionName: sftk_AES_DestroyContext
    functionSourceFile: /src/nss/lib/softoken/sftkmessage.c
    functionUses: 0
    functionsReached:
    - AES_DestroyContext
    linkageType: ''
    returnType: void
    signature: void sftk_AES_DestroyContext(void *ctx, PRBool freeit)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: sftk_MechAllowsOperation
      Src: /src/nss/lib/softoken/sftkmessage.c:98,1
    - Dst: sftk_SessionFromHandle
      Src: /src/nss/lib/softoken/sftkmessage.c:103,1
    - Dst: sftk_InitGeneric
      Src: /src/nss/lib/softoken/sftkmessage.c:107,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/sftkmessage.c:110,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/sftkmessage.c:114,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/sftkmessage.c:116,1
    - Dst: sftk_FreeContext
      Src: /src/nss/lib/softoken/sftkmessage.c:117,1
    - Dst: AES_CreateContext
      Src: /src/nss/lib/softoken/sftkmessage.c:126,1
    - Dst: ChaCha20Poly1305_CreateContext
      Src: /src/nss/lib/softoken/sftkmessage.c:134,1
    - Dst: sftk_MapCryptError
      Src: /src/nss/lib/softoken/sftkmessage.c:145,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/sftkmessage.c:145,1
    - Dst: sftk_FreeContext
      Src: /src/nss/lib/softoken/sftkmessage.c:151,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/sftkmessage.c:152,1
    - Dst: sftk_SetContextByType
      Src: /src/nss/lib/softoken/sftkmessage.c:155,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/sftkmessage.c:156,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 52
    argCount: 6
    argNames:
    - hSession
    - pMechanism
    - hKey
    - contextType
    - operation
    - encrypt
    argTypes:
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_OBJECT_HANDLE
    - SFTKContextType
    - CK_ATTRIBUTE_TYPE
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 158
    functionName: sftk_MessageCryptInit
    functionSourceFile: /src/nss/lib/softoken/sftkmessage.c
    functionUses: 0
    functionsReached:
    - sftk_FreeSession
    - sftk_MechAllowsOperation
    - sftk_SessionFromHandle
    - sftk_FindAttribute
    - sftk_FreeContext
    - sftk_InitGeneric
    - PORT_GetError
    - sftk_MapCryptError
    - ChaCha20Poly1305_CreateContext
    - sftk_SetContextByType
    - AES_CreateContext
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftk_MessageCryptInit(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR
      pMechanism,\n                      CK_OBJECT_HANDLE hKey, SFTKContextType contextType,\n
      \                     CK_ATTRIBUTE_TYPE operation, PRBool encrypt)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/sftkmessage.c:179,1
    - Dst: sftk_GetContext
      Src: /src/nss/lib/softoken/sftkmessage.c:182,1
    - Dst: sftk_MapCryptError
      Src: /src/nss/lib/softoken/sftkmessage.c:197,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/sftkmessage.c:197,1
    - Dst: sftk_MapDecryptError
      Src: /src/nss/lib/softoken/sftkmessage.c:199,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/sftkmessage.c:199,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 10
    argNames:
    - hSession
    - pParameter
    - ulParameterLen
    - pAssociatedData
    - ulAssociatedDataLen
    - pIntext
    - ulIntextLen
    - pOuttext
    - pulOuttextLen
    - contextType
    argTypes:
    - CK_SESSION_HANDLE
    - CK_VOID_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    - SFTKContextType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 166
    functionDepth: 2
    functionLinenumber: 166
    functionLinenumberEnd: 204
    functionName: sftk_CryptMessage
    functionSourceFile: /src/nss/lib/softoken/sftkmessage.c
    functionUses: 0
    functionsReached:
    - sftk_MapDecryptError
    - PORT_GetError
    - sftk_MapCryptError
    - sftk_GetContext
    - CHECK_FORK
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftk_CryptMessage(CK_SESSION_HANDLE hSession, CK_VOID_PTR pParameter,\n
      \                 CK_ULONG ulParameterLen, CK_BYTE_PTR pAssociatedData,\n                  CK_ULONG
      ulAssociatedDataLen, CK_BYTE_PTR pIntext,\n                  CK_ULONG ulIntextLen,
      CK_BYTE_PTR pOuttext,\n                  CK_ULONG_PTR pulOuttextLen, SFTKContextType
      contextType)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/sftkmessage.c:217,1
    - Dst: sftk_GetContext
      Src: /src/nss/lib/softoken/sftkmessage.c:220,1
    - Dst: sftk_TerminateOp
      Src: /src/nss/lib/softoken/sftkmessage.c:223,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/sftkmessage.c:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - hSession
    - contextType
    argTypes:
    - CK_SESSION_HANDLE
    - SFTKContextType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 226
    functionName: sftk_MessageCryptFinal
    functionSourceFile: /src/nss/lib/softoken/sftkmessage.c
    functionUses: 0
    functionsReached:
    - sftk_GetContext
    - sftk_FreeSession
    - CHECK_FORK
    - sftk_TerminateOp
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftk_MessageCryptFinal(CK_SESSION_HANDLE hSession,\n                       SFTKContextType
      contextType)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sftk_MessageCryptInit
      Src: /src/nss/lib/softoken/sftkmessage.c:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - hSession
    - pMechanism
    - hKey
    argTypes:
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 230
    functionDepth: 3
    functionLinenumber: 230
    functionLinenumberEnd: 236
    functionName: NSC_MessageEncryptInit
    functionSourceFile: /src/nss/lib/softoken/sftkmessage.c
    functionUses: 1
    functionsReached:
    - sftk_MessageCryptInit
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_MessageEncryptInit(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR
      pMechanism,\n                       CK_OBJECT_HANDLE hKey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sftk_CryptMessage
      Src: /src/nss/lib/softoken/sftkmessage.c:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 9
    argNames:
    - hSession
    - pParameter
    - ulParameterLen
    - pAssociatedData
    - ulAssociatedDataLen
    - pPlaintext
    - ulPlaintextLen
    - pCiphertext
    - pulCiphertextLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_VOID_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 238
    functionDepth: 3
    functionLinenumber: 238
    functionLinenumberEnd: 249
    functionName: NSC_EncryptMessage
    functionSourceFile: /src/nss/lib/softoken/sftkmessage.c
    functionUses: 1
    functionsReached:
    - sftk_CryptMessage
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_EncryptMessage(CK_SESSION_HANDLE hSession, CK_VOID_PTR pParameter,\n
      \                  CK_ULONG ulParameterLen, CK_BYTE_PTR pAssociatedData,\n                   CK_ULONG
      ulAssociatedDataLen, CK_BYTE_PTR pPlaintext,\n                   CK_ULONG ulPlaintextLen,
      CK_BYTE_PTR pCiphertext,\n                   CK_ULONG_PTR pulCiphertextLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - hSession
    - pParameter
    - ulParameterLen
    - pAssociatedData
    - ulAssociatedDataLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_VOID_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 262
    functionName: NSC_EncryptMessageBegin
    functionSourceFile: /src/nss/lib/softoken/sftkmessage.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_EncryptMessageBegin(CK_SESSION_HANDLE hSession, CK_VOID_PTR
      pParameter,\n                        CK_ULONG ulParameterLen, CK_BYTE_PTR pAssociatedData,\n
      \                       CK_ULONG ulAssociatedDataLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - hSession
    - pParameter
    - ulParameterLen
    - pPlaintextPart
    - ulPlaintextPartLen
    - pCiphertextPart
    - pulCiphertextPartLen
    - flags
    argTypes:
    - CK_SESSION_HANDLE
    - CK_VOID_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    - CK_FLAGS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 271
    functionName: NSC_EncryptMessageNext
    functionSourceFile: /src/nss/lib/softoken/sftkmessage.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_EncryptMessageNext(CK_SESSION_HANDLE hSession, CK_VOID_PTR
      pParameter,\n                       CK_ULONG ulParameterLen, CK_BYTE_PTR pPlaintextPart,\n
      \                      CK_ULONG ulPlaintextPartLen, CK_BYTE_PTR pCiphertextPart,\n
      \                      CK_ULONG_PTR pulCiphertextPartLen, CK_FLAGS flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sftk_MessageCryptFinal
      Src: /src/nss/lib/softoken/sftkmessage.c:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hSession
    argTypes:
    - CK_SESSION_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 273
    functionDepth: 3
    functionLinenumber: 273
    functionLinenumberEnd: 277
    functionName: NSC_MessageEncryptFinal
    functionSourceFile: /src/nss/lib/softoken/sftkmessage.c
    functionUses: 1
    functionsReached:
    - sftk_MessageCryptFinal
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV NSC_MessageEncryptFinal(CK_SESSION_HANDLE hSession)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sftk_MessageCryptInit
      Src: /src/nss/lib/softoken/sftkmessage.c:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - hSession
    - pMechanism
    - hKey
    argTypes:
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 281
    functionDepth: 3
    functionLinenumber: 281
    functionLinenumberEnd: 287
    functionName: NSC_MessageDecryptInit
    functionSourceFile: /src/nss/lib/softoken/sftkmessage.c
    functionUses: 1
    functionsReached:
    - sftk_MessageCryptInit
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_MessageDecryptInit(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR
      pMechanism,\n                       CK_OBJECT_HANDLE hKey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sftk_CryptMessage
      Src: /src/nss/lib/softoken/sftkmessage.c:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 9
    argNames:
    - hSession
    - pParameter
    - ulParameterLen
    - pAssociatedData
    - ulAssociatedDataLen
    - pCiphertext
    - ulCiphertextLen
    - pPlaintext
    - pulPlaintextLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_VOID_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 289
    functionDepth: 3
    functionLinenumber: 289
    functionLinenumberEnd: 300
    functionName: NSC_DecryptMessage
    functionSourceFile: /src/nss/lib/softoken/sftkmessage.c
    functionUses: 1
    functionsReached:
    - sftk_CryptMessage
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_DecryptMessage(CK_SESSION_HANDLE hSession, CK_VOID_PTR pParameter,\n
      \                  CK_ULONG ulParameterLen, CK_BYTE_PTR pAssociatedData,\n                   CK_ULONG
      ulAssociatedDataLen, CK_BYTE_PTR pCiphertext,\n                   CK_ULONG ulCiphertextLen,
      CK_BYTE_PTR pPlaintext,\n                   CK_ULONG_PTR pulPlaintextLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - hSession
    - pParameter
    - ulParameterLen
    - pAssociatedData
    - ulAssociatedDataLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_VOID_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 315
    functionName: NSC_DecryptMessageBegin
    functionSourceFile: /src/nss/lib/softoken/sftkmessage.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_DecryptMessageBegin(CK_SESSION_HANDLE hSession, CK_VOID_PTR
      pParameter,\n                        CK_ULONG ulParameterLen, CK_BYTE_PTR pAssociatedData,\n
      \                       CK_ULONG ulAssociatedDataLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - hSession
    - pParameter
    - ulParameterLen
    - pCiphertextPart
    - ulCiphertextPartLen
    - pPlaintextPart
    - pulPlaintextPartLen
    - flags
    argTypes:
    - CK_SESSION_HANDLE
    - CK_VOID_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    - CK_FLAGS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 324
    functionName: NSC_DecryptMessageNext
    functionSourceFile: /src/nss/lib/softoken/sftkmessage.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_DecryptMessageNext(CK_SESSION_HANDLE hSession, CK_VOID_PTR
      pParameter,\n                       CK_ULONG ulParameterLen, CK_BYTE_PTR pCiphertextPart,\n
      \                      CK_ULONG ulCiphertextPartLen, CK_BYTE_PTR pPlaintextPart,\n
      \                      CK_ULONG_PTR pulPlaintextPartLen, CK_FLAGS flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sftk_MessageCryptFinal
      Src: /src/nss/lib/softoken/sftkmessage.c:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hSession
    argTypes:
    - CK_SESSION_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 326
    functionDepth: 3
    functionLinenumber: 326
    functionLinenumberEnd: 330
    functionName: NSC_MessageDecryptFinal
    functionSourceFile: /src/nss/lib/softoken/sftkmessage.c
    functionUses: 1
    functionsReached:
    - sftk_MessageCryptFinal
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV NSC_MessageDecryptFinal(CK_SESSION_HANDLE hSession)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - hSession
    - pMechanism
    - hKey
    argTypes:
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 341
    functionName: NSC_MessageSignInit
    functionSourceFile: /src/nss/lib/softoken/sftkmessage.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_MessageSignInit(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR
      pMechanism,\n                    CK_OBJECT_HANDLE hKey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - hSession
    - pParameter
    - ulParameterLen
    - pData
    - ulDataLen
    - pSignature
    - pulSignatureLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_VOID_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 349
    functionName: NSC_SignMessage
    functionSourceFile: /src/nss/lib/softoken/sftkmessage.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_SignMessage(CK_SESSION_HANDLE hSession, CK_VOID_PTR pParameter,\n
      \               CK_ULONG ulParameterLen, CK_BYTE_PTR pData, CK_ULONG ulDataLen,\n
      \               CK_BYTE_PTR pSignature, CK_ULONG_PTR pulSignatureLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - hSession
    - pParameter
    - ulParameterLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_VOID_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 356
    functionName: NSC_SignMessageBegin
    functionSourceFile: /src/nss/lib/softoken/sftkmessage.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_SignMessageBegin(CK_SESSION_HANDLE hSession, CK_VOID_PTR
      pParameter,\n                     CK_ULONG ulParameterLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - hSession
    - pParameter
    - ulParameterLen
    - pData
    - ulDataLen
    - pSignature
    - pulSignatureLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_VOID_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 365
    functionName: NSC_SignMessageNext
    functionSourceFile: /src/nss/lib/softoken/sftkmessage.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_SignMessageNext(CK_SESSION_HANDLE hSession, CK_VOID_PTR
      pParameter,\n                    CK_ULONG ulParameterLen, CK_BYTE_PTR pData,\n
      \                   CK_ULONG ulDataLen, CK_BYTE_PTR pSignature,\n                    CK_ULONG_PTR
      pulSignatureLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hSession
    argTypes:
    - CK_SESSION_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 371
    functionName: NSC_MessageSignFinal
    functionSourceFile: /src/nss/lib/softoken/sftkmessage.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV NSC_MessageSignFinal(CK_SESSION_HANDLE hSession)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - hSession
    - pMechanism
    - hKey
    argTypes:
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 378
    functionName: NSC_MessageVerifyInit
    functionSourceFile: /src/nss/lib/softoken/sftkmessage.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_MessageVerifyInit(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR
      pMechanism,\n                      CK_OBJECT_HANDLE hKey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - hSession
    - pParameter
    - ulParameterLen
    - pData
    - ulDataLen
    - pSignature
    - ulSignatureLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_VOID_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 387
    functionName: NSC_VerifyMessage
    functionSourceFile: /src/nss/lib/softoken/sftkmessage.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_VerifyMessage(CK_SESSION_HANDLE hSession, CK_VOID_PTR pParameter,\n
      \                 CK_ULONG ulParameterLen, CK_BYTE_PTR pData,\n                  CK_ULONG
      ulDataLen, CK_BYTE_PTR pSignature,\n                  CK_ULONG ulSignatureLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - hSession
    - pParameter
    - ulParameterLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_VOID_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 394
    functionName: NSC_VerifyMessageBegin
    functionSourceFile: /src/nss/lib/softoken/sftkmessage.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_VerifyMessageBegin(CK_SESSION_HANDLE hSession, CK_VOID_PTR
      pParameter,\n                       CK_ULONG ulParameterLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - hSession
    - pParameter
    - ulParameterLen
    - pData
    - ulDataLen
    - pSignature
    - ulSignatureLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_VOID_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_BYTE_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 403
    functionName: NSC_VerifyMessageNext
    functionSourceFile: /src/nss/lib/softoken/sftkmessage.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_VerifyMessageNext(CK_SESSION_HANDLE hSession, CK_VOID_PTR
      pParameter,\n                      CK_ULONG ulParameterLen, CK_BYTE_PTR pData,\n
      \                     CK_ULONG ulDataLen, CK_BYTE_PTR pSignature,\n                      CK_ULONG
      ulSignatureLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hSession
    argTypes:
    - CK_SESSION_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 409
    functionName: NSC_MessageVerifyFinal
    functionSourceFile: /src/nss/lib/softoken/sftkmessage.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV NSC_MessageVerifyFinal(CK_SESSION_HANDLE hSession)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nss/lib/softoken/lgglue.c:44,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/lgglue.c:48,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/lgglue.c:52,1
    - Dst: PORT_Strcpy
      Src: /src/nss/lib/softoken/lgglue.c:56,1
    - Dst: readlink
      Src: /src/nss/lib/softoken/lgglue.c:62,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/lgglue.c:76,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/lgglue.c:80,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 1
    argNames:
    - orig
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 85
    functionName: sftkdb_resolvePath
    functionSourceFile: /src/nss/lib/softoken/lgglue.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_Free
    - PORT_Strcpy
    - readlink
    - strlen
    linkageType: ''
    returnType: char
    signature: 'char *

      sftkdb_resolvePath(const char *orig)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/nss/lib/softoken/lgglue.c:99,1
    - Dst: PR_GetDirectorySeparator
      Src: /src/nss/lib/softoken/lgglue.c:99,1
    - Dst: strlen
      Src: /src/nss/lib/softoken/lgglue.c:104,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/lgglue.c:106,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/lgglue.c:110,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/lgglue.c:111,1
    - Dst: PR_LoadLibraryWithFlags
      Src: /src/nss/lib/softoken/lgglue.c:116,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/lgglue.c:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 2
    argNames:
    - path
    - libname
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 119
    functionName: sftkdb_LoadFromPath
    functionSourceFile: /src/nss/lib/softoken/lgglue.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_Memcpy
    - PORT_Free
    - PR_GetDirectorySeparator
    - PR_LoadLibraryWithFlags
    - strrchr
    - strlen
    linkageType: ''
    returnType: PRLibrary
    signature: 'PRLibrary *

      sftkdb_LoadFromPath(const char *path, const char *libname)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetLibraryFilePathname
      Src: /src/nss/lib/softoken/lgglue.c:129,1
    - Dst: sftkdb_LoadFromPath
      Src: /src/nss/lib/softoken/lgglue.c:135,1
    - Dst: sftkdb_resolvePath
      Src: /src/nss/lib/softoken/lgglue.c:139,1
    - Dst: sftkdb_LoadFromPath
      Src: /src/nss/lib/softoken/lgglue.c:143,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/lgglue.c:144,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/lgglue.c:150,1
    - Dst: PR_LoadLibraryWithFlags
      Src: /src/nss/lib/softoken/lgglue.c:158,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - libname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 162
    functionName: sftkdb_LoadLibrary
    functionSourceFile: /src/nss/lib/softoken/lgglue.c
    functionUses: 0
    functionsReached:
    - sftkdb_LoadFromPath
    - sftkdb_resolvePath
    - PORT_Free
    - PR_GetLibraryFilePathname
    - PR_LoadLibraryWithFlags
    linkageType: ''
    returnType: PRLibrary
    signature: 'PRLibrary *

      sftkdb_LoadLibrary(const char *libname)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/lgglue.c:191,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/lgglue.c:193,1
    - Dst: sftk_isLegacyIterationCountAllowed
      Src: /src/nss/lib/softoken/lgglue.c:198,1
    - Dst: sftkdb_EncryptAttribute
      Src: /src/nss/lib/softoken/lgglue.c:208,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/lgglue.c:211,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 4
    argNames:
    - arena
    - sdb
    - plainText
    - cipherText
    argTypes:
    - PLArenaPool*
    - SDB*
    - SECItem*
    - SECItem**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 168
    functionDepth: 3
    functionLinenumber: 168
    functionLinenumberEnd: 214
    functionName: sftkdb_encrypt_stub
    functionSourceFile: /src/nss/lib/softoken/lgglue.c
    functionUses: 0
    functionsReached:
    - sftkdb_EncryptAttribute
    - sftk_isLegacyIterationCountAllowed
    - PZ_Lock
    - PZ_Unlock
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sftkdb_encrypt_stub(PLArenaPool *arena, SDB *sdb, SECItem
      *plainText,\n                    SECItem **cipherText)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/lgglue.c:242,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/lgglue.c:244,1
    - Dst: sftkdb_DecryptAttribute
      Src: /src/nss/lib/softoken/lgglue.c:248,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/lgglue.c:252,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - sdb
    - cipherText
    - plainText
    argTypes:
    - SDB*
    - SECItem*
    - SECItem**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 220
    functionDepth: 4
    functionLinenumber: 220
    functionLinenumberEnd: 255
    functionName: sftkdb_decrypt_stub
    functionSourceFile: /src/nss/lib/softoken/lgglue.c
    functionUses: 0
    functionsReached:
    - sftkdb_DecryptAttribute
    - PZ_Lock
    - PZ_Unlock
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sftkdb_decrypt_stub(SDB *sdb, SECItem *cipherText, SECItem
      **plainText)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sftkdb_LoadLibrary
      Src: /src/nss/lib/softoken/lgglue.c:274,1
    - Dst: PR_FindFunctionSymbol
      Src: /src/nss/lib/softoken/lgglue.c:279,1
    - Dst: PR_FindFunctionSymbol
      Src: /src/nss/lib/softoken/lgglue.c:281,1
    - Dst: PR_FindFunctionSymbol
      Src: /src/nss/lib/softoken/lgglue.c:283,1
    - Dst: PR_FindFunctionSymbol
      Src: /src/nss/lib/softoken/lgglue.c:285,1
    - Dst: PR_FindFunctionSymbol
      Src: /src/nss/lib/softoken/lgglue.c:287,1
    - Dst: PR_FindFunctionSymbol
      Src: /src/nss/lib/softoken/lgglue.c:289,1
    - Dst: PR_FindFunctionSymbol
      Src: /src/nss/lib/softoken/lgglue.c:291,1
    - Dst: PR_UnloadLibrary
      Src: /src/nss/lib/softoken/lgglue.c:296,1
    - Dst: setCryptFunction
      Src: /src/nss/lib/softoken/lgglue.c:300,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 264
    functionDepth: 3
    functionLinenumber: 264
    functionLinenumberEnd: 303
    functionName: sftkdbLoad_Legacy
    functionSourceFile: /src/nss/lib/softoken/lgglue.c
    functionUses: 0
    functionsReached:
    - setCryptFunction
    - sftkdb_LoadLibrary
    - PR_FindFunctionSymbol
    - PR_UnloadLibrary
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sftkdbLoad_Legacy()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sftkdbLoad_Legacy
      Src: /src/nss/lib/softoken/lgglue.c:312,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/lgglue.c:317,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 8
    argNames:
    - dir
    - certPrefix
    - keyPrefix
    - certVersion
    - keyVersion
    - flags
    - certDB
    - keyDB
    argTypes:
    - char*
    - char*
    - char*
    - int
    - int
    - int
    - SDB**
    - SDB**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 305
    functionDepth: 4
    functionLinenumber: 305
    functionLinenumberEnd: 323
    functionName: sftkdbCall_open
    functionSourceFile: /src/nss/lib/softoken/lgglue.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - sftkdbLoad_Legacy
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftkdbCall_open(const char *dir, const char *certPrefix, const
      char *keyPrefix,\n                int certVersion, int keyVersion, int flags,\n
      \               SDB **certDB, SDB **keyDB)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sftkdbLoad_Legacy
      Src: /src/nss/lib/softoken/lgglue.c:331,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/lgglue.c:336,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 325
    functionDepth: 4
    functionLinenumber: 325
    functionLinenumberEnd: 340
    functionName: sftkdbCall_ReadSecmodDB
    functionSourceFile: /src/nss/lib/softoken/lgglue.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    - sftkdbLoad_Legacy
    linkageType: ''
    returnType: char
    signature: "char **\nsftkdbCall_ReadSecmodDB(const char *appName, const char *filename,\n
      \                       const char *dbname, char *params, PRBool rw)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sftkdbLoad_Legacy
      Src: /src/nss/lib/softoken/lgglue.c:349,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/lgglue.c:354,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - appName
    - filename
    - dbname
    - moduleSpecList
    - rw
    argTypes:
    - char*
    - char*
    - char*
    - char**
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 342
    functionDepth: 4
    functionLinenumber: 342
    functionLinenumberEnd: 359
    functionName: sftkdbCall_ReleaseSecmodDBData
    functionSourceFile: /src/nss/lib/softoken/lgglue.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    - sftkdbLoad_Legacy
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sftkdbCall_ReleaseSecmodDBData(const char *appName,\n                               const
      char *filename, const char *dbname,\n                               char **moduleSpecList,
      PRBool rw)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sftkdbLoad_Legacy
      Src: /src/nss/lib/softoken/lgglue.c:368,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/lgglue.c:373,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - appName
    - filename
    - dbname
    - args
    - rw
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 361
    functionDepth: 4
    functionLinenumber: 361
    functionLinenumberEnd: 377
    functionName: sftkdbCall_DeleteSecmodDB
    functionSourceFile: /src/nss/lib/softoken/lgglue.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    - sftkdbLoad_Legacy
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sftkdbCall_DeleteSecmodDB(const char *appName,\n                          const
      char *filename, const char *dbname,\n                          char *args, PRBool
      rw)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sftkdbLoad_Legacy
      Src: /src/nss/lib/softoken/lgglue.c:386,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/lgglue.c:391,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - appName
    - filename
    - dbname
    - module
    - rw
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 379
    functionDepth: 4
    functionLinenumber: 379
    functionLinenumberEnd: 395
    functionName: sftkdbCall_AddSecmodDB
    functionSourceFile: /src/nss/lib/softoken/lgglue.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    - sftkdbLoad_Legacy
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sftkdbCall_AddSecmodDB(const char *appName,\n                       const
      char *filename, const char *dbname,\n                       char *module, PRBool
      rw)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/softoken/lgglue.c:411,1
    - Dst: PR_UnloadLibrary
      Src: /src/nss/lib/softoken/lgglue.c:413,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 422
    functionName: sftkdbCall_Shutdown
    functionSourceFile: /src/nss/lib/softoken/lgglue.c
    functionUses: 0
    functionsReached:
    - PR_UnloadLibrary
    - PR_GetEnvSecure
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV sftkdbCall_Shutdown(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECHashObject*::create
      Src: /src/nss/lib/softoken/lowpbe.c:89,1
    - Dst: SECHashObject*::begin
      Src: /src/nss/lib/softoken/lowpbe.c:93,1
    - Dst: SECHashObject*::update
      Src: /src/nss/lib/softoken/lowpbe.c:94,1
    - Dst: SECHashObject*::end
      Src: /src/nss/lib/softoken/lowpbe.c:95,1
    - Dst: SECHashObject*::destroy
      Src: /src/nss/lib/softoken/lowpbe.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - hashObj
    - dest
    - src
    - len
    argTypes:
    - SECHashObject*
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 98
    functionName: nsspkcs5_HashBuf
    functionSourceFile: /src/nss/lib/softoken/lowpbe.c
    functionUses: 0
    functionsReached:
    - SECHashObject*::end
    - SECHashObject*::create
    - SECHashObject*::destroy
    - SECHashObject*::begin
    - SECHashObject*::update
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus nsspkcs5_HashBuf(const SECHashObject *hashObj, unsigned
      char *dest,\n                 unsigned char *src, int len)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/softoken/lowpbe.c:113,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/softoken/lowpbe.c:114,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/softoken/lowpbe.c:128,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/softoken/lowpbe.c:129,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/lowpbe.c:146,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/lowpbe.c:149,1
    - Dst: nsspkcs5_HashBuf
      Src: /src/nss/lib/softoken/lowpbe.c:152,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/lowpbe.c:156,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/lowpbe.c:163,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/lowpbe.c:167,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 45
    argCount: 5
    argNames:
    - hashObj
    - salt
    - pwd
    - iter
    - faulty3DES
    argTypes:
    - SECHashObject*
    - SECItem*
    - SECItem*
    - int
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 172
    functionName: nsspkcs5_PBKDF1
    functionSourceFile: /src/nss/lib/softoken/lowpbe.c
    functionUses: 0
    functionsReached:
    - nsspkcs5_HashBuf
    - PORT_ZAlloc
    - PORT_Memcpy
    - SECITEM_ZfreeItem
    linkageType: ''
    returnType: SECItem
    signature: "SECItem *\nnsspkcs5_PBKDF1(const SECHashObject *hashObj, SECItem *salt,
      SECItem *pwd,\n                int iter, PRBool faulty3DES)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/softoken/lowpbe.c:199,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/softoken/lowpbe.c:202,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/lowpbe.c:205,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/softoken/lowpbe.c:218,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/lowpbe.c:224,1
    - Dst: HMAC_Create
      Src: /src/nss/lib/softoken/lowpbe.c:227,1
    - Dst: HMAC_Begin
      Src: /src/nss/lib/softoken/lowpbe.c:236,1
    - Dst: HMAC_Update
      Src: /src/nss/lib/softoken/lowpbe.c:237,1
    - Dst: HMAC_Update
      Src: /src/nss/lib/softoken/lowpbe.c:238,1
    - Dst: HMAC_Finish
      Src: /src/nss/lib/softoken/lowpbe.c:239,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/lowpbe.c:243,1
    - Dst: HMAC_Begin
      Src: /src/nss/lib/softoken/lowpbe.c:246,1
    - Dst: HMAC_Update
      Src: /src/nss/lib/softoken/lowpbe.c:247,1
    - Dst: HMAC_Finish
      Src: /src/nss/lib/softoken/lowpbe.c:248,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/lowpbe.c:251,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/softoken/lowpbe.c:256,1
    - Dst: HMAC_Destroy
      Src: /src/nss/lib/softoken/lowpbe.c:257,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/lowpbe.c:260,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 59
    argCount: 4
    argNames:
    - hashObj
    - pbe_param
    - init_hash
    - bytes_needed
    argTypes:
    - SECHashObject*
    - NSSPKCS5PBEParameter*
    - SECItem*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 265
    functionName: nsspkcs5_PFXPBE
    functionSourceFile: /src/nss/lib/softoken/lowpbe.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_ZFree
    - PORT_Memcpy
    - HMAC_Finish
    - PORT_Free
    - PORT_ZAlloc
    - HMAC_Destroy
    - HMAC_Begin
    - SECITEM_ZfreeItem
    - HMAC_Update
    - HMAC_Create
    linkageType: ''
    returnType: SECItem
    signature: "SECItem *\nnsspkcs5_PFXPBE(const SECHashObject *hashObj, NSSPKCS5PBEParameter
      *pbe_param,\n                SECItem *init_hash, unsigned int bytes_needed)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nsspkcs5_PBKDF1
      Src: /src/nss/lib/softoken/lowpbe.c:283,1
    - Dst: nsspkcs5_PFXPBE
      Src: /src/nss/lib/softoken/lowpbe.c:294,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/lowpbe.c:296,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - hashObj
    - pbe_param
    - pwitem
    - faulty3DES
    argTypes:
    - SECHashObject*
    - NSSPKCS5PBEParameter*
    - SECItem*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 271
    functionDepth: 2
    functionLinenumber: 271
    functionLinenumberEnd: 298
    functionName: nsspkcs5_PBKDF1Extended
    functionSourceFile: /src/nss/lib/softoken/lowpbe.c
    functionUses: 0
    functionsReached:
    - nsspkcs5_PFXPBE
    - SECITEM_ZfreeItem
    - nsspkcs5_PBKDF1
    linkageType: ''
    returnType: SECItem
    signature: "SECItem *\nnsspkcs5_PBKDF1Extended(const SECHashObject *hashObj,\n
      \                       NSSPKCS5PBEParameter *pbe_param, SECItem *pwitem, PRBool
      faulty3DES)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - dest
    - src
    - len
    argTypes:
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 313
    functionName: do_xor
    functionSourceFile: /src/nss/lib/softoken/lowpbe.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void do_xor(unsigned char *dest, unsigned char *src, int len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: HMAC_Create
      Src: /src/nss/lib/softoken/lowpbe.c:327,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/lowpbe.c:331,1
    - Dst: PR_MAX
      Src: /src/nss/lib/softoken/lowpbe.c:332,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/lowpbe.c:333,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/lowpbe.c:337,1
    - Dst: HMAC_Begin
      Src: /src/nss/lib/softoken/lowpbe.c:345,1
    - Dst: HMAC_Update
      Src: /src/nss/lib/softoken/lowpbe.c:346,1
    - Dst: HMAC_Finish
      Src: /src/nss/lib/softoken/lowpbe.c:347,1
    - Dst: do_xor
      Src: /src/nss/lib/softoken/lowpbe.c:351,1
    - Dst: HMAC_Destroy
      Src: /src/nss/lib/softoken/lowpbe.c:355,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/softoken/lowpbe.c:358,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 6
    argNames:
    - hashobj
    - pwitem
    - salt
    - iterations
    - i
    - T
    argTypes:
    - SECHashObject*
    - SECItem*
    - SECItem*
    - int
    - unsigned int
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 361
    functionName: nsspkcs5_PBKDF2_F
    functionSourceFile: /src/nss/lib/softoken/lowpbe.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_ZFree
    - PORT_Memcpy
    - HMAC_Finish
    - HMAC_Destroy
    - HMAC_Begin
    - do_xor
    - HMAC_Create
    - PORT_Memset
    - HMAC_Update
    - PR_MAX
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus nsspkcs5_PBKDF2_F(const SECHashObject *hashobj, SECItem
      *pwitem, SECItem *salt,\n                  int iterations, unsigned int i, unsigned
      char *T)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/softoken/lowpbe.c:379,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/lowpbe.c:384,1
    - Dst: nsspkcs5_PBKDF2_F
      Src: /src/nss/lib/softoken/lowpbe.c:390,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/lowpbe.c:394,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/softoken/lowpbe.c:399,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/lowpbe.c:402,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - hashobj
    - pbe_param
    - pwitem
    argTypes:
    - SECHashObject*
    - NSSPKCS5PBEParameter*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 363
    functionDepth: 2
    functionLinenumber: 363
    functionLinenumberEnd: 409
    functionName: nsspkcs5_PBKDF2
    functionSourceFile: /src/nss/lib/softoken/lowpbe.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_ZFree
    - PORT_Memcpy
    - SECITEM_AllocItem
    - SECITEM_ZfreeItem
    - nsspkcs5_PBKDF2_F
    linkageType: ''
    returnType: SECItem
    signature: "SECItem *\nnsspkcs5_PBKDF2(const SECHashObject *hashobj, NSSPKCS5PBEParameter
      *pbe_param,\n                SECItem *pwitem)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 412
    functionName: NSSPBE_ROUNDUP
    functionSourceFile: /src/nss/lib/softoken/lowpbe.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NSSPBE_ROUNDUP(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 413
    functionName: NSSPBE_MIN
    functionSourceFile: /src/nss/lib/softoken/lowpbe.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NSSPBE_MIN(x, y)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/lowpbe.c:434,1
    - Dst: NSSPBE_ROUNDUP
      Src: /src/nss/lib/softoken/lowpbe.c:443,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/softoken/lowpbe.c:448,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/softoken/lowpbe.c:453,1
    - Dst: NSSPBE_ROUNDUP
      Src: /src/nss/lib/softoken/lowpbe.c:458,1
    - Dst: NSSPBE_ROUNDUP
      Src: /src/nss/lib/softoken/lowpbe.c:459,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/softoken/lowpbe.c:461,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/lowpbe.c:470,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/lowpbe.c:473,1
    - Dst: NSSPBE_MIN
      Src: /src/nss/lib/softoken/lowpbe.c:473,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/lowpbe.c:478,1
    - Dst: NSSPBE_MIN
      Src: /src/nss/lib/softoken/lowpbe.c:478,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/softoken/lowpbe.c:482,1
    - Dst: SECHashObject*::create
      Src: /src/nss/lib/softoken/lowpbe.c:487,1
    - Dst: SECHashObject*::begin
      Src: /src/nss/lib/softoken/lowpbe.c:498,1
    - Dst: SECHashObject*::update
      Src: /src/nss/lib/softoken/lowpbe.c:501,1
    - Dst: SECHashObject*::update
      Src: /src/nss/lib/softoken/lowpbe.c:503,1
    - Dst: SECHashObject*::update
      Src: /src/nss/lib/softoken/lowpbe.c:504,1
    - Dst: SECHashObject*::end
      Src: /src/nss/lib/softoken/lowpbe.c:507,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/lowpbe.c:513,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/lowpbe.c:515,1
    - Dst: NSSPBE_MIN
      Src: /src/nss/lib/softoken/lowpbe.c:515,1
    - Dst: SECHashObject*::destroy
      Src: /src/nss/lib/softoken/lowpbe.c:536,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/lowpbe.c:539,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/lowpbe.c:546,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 93
    argCount: 5
    argNames:
    - hashObject
    - pbe_param
    - pwitem
    - bitGenPurpose
    - bytesNeeded
    argTypes:
    - SECHashObject*
    - NSSPKCS5PBEParameter*
    - SECItem*
    - PBEBitGenID
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 554
    functionName: nsspkcs5_PKCS12PBE
    functionSourceFile: /src/nss/lib/softoken/lowpbe.c
    functionUses: 0
    functionsReached:
    - PORT_Memcpy
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - PORT_FreeArena
    - NSSPBE_MIN
    - SECITEM_AllocItem
    - SECHashObject*::create
    - SECHashObject*::end
    - NSSPBE_ROUNDUP
    - PORT_Memset
    - SECHashObject*::destroy
    - SECITEM_ZfreeItem
    - SECHashObject*::begin
    - SECHashObject*::update
    linkageType: ''
    returnType: SECItem
    signature: "SECItem *\nnsspkcs5_PKCS12PBE(const SECHashObject *hashObject,\n                   NSSPKCS5PBEParameter
      *pbe_param, SECItem *pwitem,\n                   PBEBitGenID bitGenPurpose,
      unsigned int bytesNeeded)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PZ_NewLock
      Src: /src/nss/lib/softoken/lowpbe.c:587,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 583
    functionDepth: 1
    functionLinenumber: 583
    functionLinenumberEnd: 589
    functionName: sftk_PBELockInit
    functionSourceFile: /src/nss/lib/softoken/lowpbe.c
    functionUses: 1
    functionsReached:
    - PZ_NewLock
    linkageType: ''
    returnType: void
    signature: void sftk_PBELockInit(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/lowpbe.c:595,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/lowpbe.c:599,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/lowpbe.c:603,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - item
    argTypes:
    - KDFCacheItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 606
    functionName: sftk_clearPBECommonCacheItemsLocked
    functionSourceFile: /src/nss/lib/softoken/lowpbe.c
    functionUses: 0
    functionsReached:
    - SECITEM_ZfreeItem
    linkageType: ''
    returnType: void
    signature: void sftk_clearPBECommonCacheItemsLocked(KDFCacheItem *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/softoken/lowpbe.c:614,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/softoken/lowpbe.c:618,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/softoken/lowpbe.c:619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - cacheItem
    - hash
    - pbe_param
    - pwItem
    argTypes:
    - KDFCacheItem*
    - SECItem*
    - NSSPKCS5PBEParameter*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 620
    functionName: sftk_setPBECommonCacheItemsKDFLocked
    functionSourceFile: /src/nss/lib/softoken/lowpbe.c
    functionUses: 0
    functionsReached:
    - SECITEM_DupItem
    linkageType: ''
    returnType: void
    signature: "void sftk_setPBECommonCacheItemsKDFLocked(KDFCacheItem *cacheItem,\n
      \                                    const SECItem *hash,\n                                     const
      NSSPKCS5PBEParameter *pbe_param,\n                                     const
      SECItem *pwItem)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/lowpbe.c:627,1
    - Dst: sftk_clearPBECommonCacheItemsLocked
      Src: /src/nss/lib/softoken/lowpbe.c:630,1
    - Dst: sftk_setPBECommonCacheItemsKDFLocked
      Src: /src/nss/lib/softoken/lowpbe.c:632,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/lowpbe.c:638,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - hash
    - pbe_param
    - pwItem
    argTypes:
    - SECItem*
    - NSSPKCS5PBEParameter*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 622
    functionDepth: 1
    functionLinenumber: 622
    functionLinenumberEnd: 639
    functionName: sftk_setPBECacheKDF2
    functionSourceFile: /src/nss/lib/softoken/lowpbe.c
    functionUses: 0
    functionsReached:
    - sftk_setPBECommonCacheItemsKDFLocked
    - PZ_Unlock
    - PZ_Lock
    - sftk_clearPBECommonCacheItemsLocked
    linkageType: ''
    returnType: void
    signature: "void sftk_setPBECacheKDF2(const SECItem *hash,\n                     const
      NSSPKCS5PBEParameter *pbe_param,\n                     const SECItem *pwItem)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/lowpbe.c:647,1
    - Dst: sftk_clearPBECommonCacheItemsLocked
      Src: /src/nss/lib/softoken/lowpbe.c:649,1
    - Dst: sftk_setPBECommonCacheItemsKDFLocked
      Src: /src/nss/lib/softoken/lowpbe.c:651,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/lowpbe.c:656,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - hash
    - pbe_param
    - pwItem
    - faulty3DES
    argTypes:
    - SECItem*
    - NSSPKCS5PBEParameter*
    - SECItem*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 641
    functionDepth: 1
    functionLinenumber: 641
    functionLinenumberEnd: 657
    functionName: sftk_setPBECacheKDF1
    functionSourceFile: /src/nss/lib/softoken/lowpbe.c
    functionUses: 0
    functionsReached:
    - sftk_setPBECommonCacheItemsKDFLocked
    - PZ_Unlock
    - PZ_Lock
    - sftk_clearPBECommonCacheItemsLocked
    linkageType: ''
    returnType: void
    signature: "void sftk_setPBECacheKDF1(const SECItem *hash,\n                     const
      NSSPKCS5PBEParameter *pbe_param,\n                     const SECItem *pwItem,\n
      \                    PRBool faulty3DES)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_ItemsAreEqual
      Src: /src/nss/lib/softoken/lowpbe.c:670,1
    - Dst: SECITEM_ItemsAreEqual
      Src: /src/nss/lib/softoken/lowpbe.c:671,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 2
    argCount: 3
    argNames:
    - cacheItem
    - pbe_param
    - pwItem
    argTypes:
    - KDFCacheItem*
    - NSSPKCS5PBEParameter*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 659
    functionDepth: 0
    functionLinenumber: 659
    functionLinenumberEnd: 672
    functionName: sftk_comparePBECommonCacheItemLocked
    functionSourceFile: /src/nss/lib/softoken/lowpbe.c
    functionUses: 0
    functionsReached:
    - SECITEM_ItemsAreEqual
    linkageType: ''
    returnType: PRBool
    signature: "PRBool sftk_comparePBECommonCacheItemLocked(const KDFCacheItem *cacheItem,\n
      \                                    const NSSPKCS5PBEParameter *pbe_param,\n
      \                                    const SECItem *pwItem)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/lowpbe.c:681,1
    - Dst: sftk_comparePBECommonCacheItemLocked
      Src: /src/nss/lib/softoken/lowpbe.c:684,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/softoken/lowpbe.c:686,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/lowpbe.c:690,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - pbe_param
    - pwItem
    argTypes:
    - NSSPKCS5PBEParameter*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 674
    functionDepth: 1
    functionLinenumber: 674
    functionLinenumberEnd: 693
    functionName: sftk_getPBECacheKDF2
    functionSourceFile: /src/nss/lib/softoken/lowpbe.c
    functionUses: 0
    functionsReached:
    - SECITEM_DupItem
    - sftk_comparePBECommonCacheItemLocked
    - PZ_Lock
    - PZ_Unlock
    linkageType: ''
    returnType: SECItem
    signature: "SECItem *\nsftk_getPBECacheKDF2(const NSSPKCS5PBEParameter *pbe_param,\n
      \                    const SECItem *pwItem)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/lowpbe.c:703,1
    - Dst: sftk_comparePBECommonCacheItemLocked
      Src: /src/nss/lib/softoken/lowpbe.c:704,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/softoken/lowpbe.c:707,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/lowpbe.c:709,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - pbe_param
    - pwItem
    - faulty3DES
    argTypes:
    - NSSPKCS5PBEParameter*
    - SECItem*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 695
    functionDepth: 1
    functionLinenumber: 695
    functionLinenumberEnd: 712
    functionName: sftk_getPBECacheKDF1
    functionSourceFile: /src/nss/lib/softoken/lowpbe.c
    functionUses: 0
    functionsReached:
    - SECITEM_DupItem
    - sftk_comparePBECommonCacheItemLocked
    - PZ_Lock
    - PZ_Unlock
    linkageType: ''
    returnType: SECItem
    signature: "SECItem *\nsftk_getPBECacheKDF1(const NSSPKCS5PBEParameter *pbe_param,\n
      \                    const SECItem *pwItem,\n                     PRBool faulty3DES)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/softoken/lowpbe.c:719,1
    - Dst: sftk_clearPBECommonCacheItemsLocked
      Src: /src/nss/lib/softoken/lowpbe.c:722,1
    - Dst: sftk_clearPBECommonCacheItemsLocked
      Src: /src/nss/lib/softoken/lowpbe.c:724,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 714
    functionDepth: 1
    functionLinenumber: 714
    functionLinenumberEnd: 727
    functionName: sftk_PBELockShutdown
    functionSourceFile: /src/nss/lib/softoken/lowpbe.c
    functionUses: 1
    functionsReached:
    - PZ_DestroyLock
    - sftk_clearPBECommonCacheItemsLocked
    linkageType: ''
    returnType: void
    signature: void sftk_PBELockShutdown(void)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/softoken/lowpbe.c:744,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/lowpbe.c:751,1
    - Dst: HASH_GetRawHashObject
      Src: /src/nss/lib/softoken/lowpbe.c:758,1
    - Dst: sftk_getPBECacheKDF1
      Src: /src/nss/lib/softoken/lowpbe.c:761,1
    - Dst: nsspkcs5_PBKDF1Extended
      Src: /src/nss/lib/softoken/lowpbe.c:763,1
    - Dst: sftk_setPBECacheKDF1
      Src: /src/nss/lib/softoken/lowpbe.c:764,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/lowpbe.c:769,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/lowpbe.c:771,1
    - Dst: sftk_getPBECacheKDF2
      Src: /src/nss/lib/softoken/lowpbe.c:776,1
    - Dst: nsspkcs5_PBKDF2
      Src: /src/nss/lib/softoken/lowpbe.c:778,1
    - Dst: sftk_setPBECacheKDF2
      Src: /src/nss/lib/softoken/lowpbe.c:779,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/lowpbe.c:782,1
    - Dst: nsspkcs5_PKCS12PBE
      Src: /src/nss/lib/softoken/lowpbe.c:787,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/lowpbe.c:792,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/lowpbe.c:793,1
    - Dst: nsspkcs5_PKCS12PBE
      Src: /src/nss/lib/softoken/lowpbe.c:796,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/lowpbe.c:806,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/lowpbe.c:808,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/softoken/lowpbe.c:813,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/lowpbe.c:817,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 74
    argCount: 4
    argNames:
    - pbe_param
    - pwitem
    - iv
    - faulty3DES
    argTypes:
    - NSSPKCS5PBEParameter*
    - SECItem*
    - SECItem*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 732
    functionDepth: 3
    functionLinenumber: 732
    functionLinenumberEnd: 819
    functionName: nsspkcs5_ComputeKeyAndIV
    functionSourceFile: /src/nss/lib/softoken/lowpbe.c
    functionUses: 2
    functionsReached:
    - PORT_Alloc
    - PORT_Assert
    - PORT_ZFree
    - PORT_Memcpy
    - sftk_setPBECacheKDF2
    - sftk_getPBECacheKDF1
    - SECITEM_AllocItem
    - nsspkcs5_PBKDF2
    - sftk_setPBECacheKDF1
    - sftk_getPBECacheKDF2
    - HASH_GetRawHashObject
    - nsspkcs5_PBKDF1Extended
    - SECITEM_ZfreeItem
    - nsspkcs5_PKCS12PBE
    linkageType: ''
    returnType: SECItem
    signature: "SECItem *\nnsspkcs5_ComputeKeyAndIV(NSSPKCS5PBEParameter *pbe_param,
      SECItem *pwitem,\n                         SECItem *iv, PRBool faulty3DES)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/lowpbe.c:832,1
    - Dst: RNG_GenerateGlobalRandomBytes
      Src: /src/nss/lib/softoken/lowpbe.c:839,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/softoken/lowpbe.c:847,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/softoken/lowpbe.c:848,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/lowpbe.c:854,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - pbe_param
    - ivLen
    argTypes:
    - NSSPKCS5PBEParameter*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 823
    functionDepth: 1
    functionLinenumber: 823
    functionLinenumberEnd: 856
    functionName: nsspkcs5_SetIVParam
    functionSourceFile: /src/nss/lib/softoken/lowpbe.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SEC_ASN1_GET
    - RNG_GenerateGlobalRandomBytes
    - SEC_ASN1EncodeItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus nsspkcs5_SetIVParam(NSSPKCS5PBEParameter *pbe_param, int
      ivLen)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: nsspkcs5_SetIVParam
      Src: /src/nss/lib/softoken/lowpbe.c:945,1
    - Dst: nsspkcs5_SetIVParam
      Src: /src/nss/lib/softoken/lowpbe.c:955,1
    - Dst: nsspkcs5_SetIVParam
      Src: /src/nss/lib/softoken/lowpbe.c:964,1
    - Dst: HASH_HMACOidFromHash
      Src: /src/nss/lib/softoken/lowpbe.c:995,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/lib/softoken/lowpbe.c:999,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 123
    argCount: 3
    argNames:
    - algorithm
    - hashType
    - pbe_param
    argTypes:
    - SECOidTag
    - HASH_HashType
    - NSSPKCS5PBEParameter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 858
    functionDepth: 2
    functionLinenumber: 858
    functionLinenumberEnd: 1006
    functionName: nsspkcs5_FillInParam
    functionSourceFile: /src/nss/lib/softoken/lowpbe.c
    functionUses: 0
    functionsReached:
    - SECOID_SetAlgorithmID
    - HASH_HMACOidFromHash
    - nsspkcs5_SetIVParam
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus nsspkcs5_FillInParam(SECOidTag algorithm, HASH_HashType
      hashType,\n                     NSSPKCS5PBEParameter *pbe_param)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/lowpbe.c:1018,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/softoken/lowpbe.c:1023,1
    - Dst: nsspkcs5_FillInParam
      Src: /src/nss/lib/softoken/lowpbe.c:1032,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/lowpbe.c:1039,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/lowpbe.c:1047,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 4
    argNames:
    - alg
    - hashType
    - salt
    - iterationCount
    argTypes:
    - SECOidTag
    - HASH_HashType
    - SECItem*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1010
    functionDepth: 3
    functionLinenumber: 1010
    functionLinenumberEnd: 1052
    functionName: nsspkcs5_NewParam
    functionSourceFile: /src/nss/lib/softoken/lowpbe.c
    functionUses: 3
    functionsReached:
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - PORT_FreeArena
    - nsspkcs5_FillInParam
    - SECITEM_CopyItem
    linkageType: ''
    returnType: NSSPKCS5PBEParameter
    signature: "NSSPKCS5PBEParameter *\nnsspkcs5_NewParam(SECOidTag alg, HASH_HashType
      hashType, SECItem *salt,\n                  int iterationCount)"
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - hmac
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 1058
    functionDepth: 0
    functionLinenumber: 1058
    functionLinenumberEnd: 1075
    functionName: HASH_FromHMACOid
    functionSourceFile: /src/nss/lib/softoken/lowpbe.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: HASH_HashType
    signature: HASH_HashType HASH_FromHMACOid(SECOidTag hmac)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - hashType
    argTypes:
    - HASH_HashType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1098
      start: 1077
    functionDepth: 0
    functionLinenumber: 1077
    functionLinenumberEnd: 1098
    functionName: HASH_HMACOidFromHash
    functionSourceFile: /src/nss/lib/softoken/lowpbe.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag HASH_HMACOidFromHash(HASH_HashType hashType)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/softoken/lowpbe.c:1114,1
    - Dst: nsspkcs5_NewParam
      Src: /src/nss/lib/softoken/lowpbe.c:1119,1
    - Dst: SEC_ASN1DecodeItem
      Src: /src/nss/lib/softoken/lowpbe.c:1128,1
    - Dst: SEC_ASN1DecodeItem
      Src: /src/nss/lib/softoken/lowpbe.c:1132,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/lowpbe.c:1136,1
    - Dst: SEC_ASN1DecodeItem
      Src: /src/nss/lib/softoken/lowpbe.c:1139,1
    - Dst: SEC_ASN1DecodeItem
      Src: /src/nss/lib/softoken/lowpbe.c:1143,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/softoken/lowpbe.c:1148,1
    - Dst: SEC_ASN1DecodeItem
      Src: /src/nss/lib/softoken/lowpbe.c:1149,1
    - Dst: DER_GetInteger
      Src: /src/nss/lib/softoken/lowpbe.c:1155,1
    - Dst: HASH_FromHMACOid
      Src: /src/nss/lib/softoken/lowpbe.c:1163,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/softoken/lowpbe.c:1163,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/lowpbe.c:1165,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/lowpbe.c:1172,1
    - Dst: DER_GetInteger
      Src: /src/nss/lib/softoken/lowpbe.c:1174,1
    - Dst: nsspkcs5_DestroyPBEParameter
      Src: /src/nss/lib/softoken/lowpbe.c:1176,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 59
    argCount: 1
    argNames:
    - algid
    argTypes:
    - SECAlgorithmID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1181
      start: 1102
    functionDepth: 4
    functionLinenumber: 1102
    functionLinenumberEnd: 1181
    functionName: nsspkcs5_AlgidToParam
    functionSourceFile: /src/nss/lib/softoken/lowpbe.c
    functionUses: 1
    functionsReached:
    - SECOID_GetAlgorithmTag
    - HASH_FromHMACOid
    - nsspkcs5_DestroyPBEParameter
    - SEC_ASN1DecodeItem
    - nsspkcs5_NewParam
    - PORT_SetError
    - PORT_Memset
    - DER_GetInteger
    linkageType: ''
    returnType: NSSPKCS5PBEParameter
    signature: 'NSSPKCS5PBEParameter *

      nsspkcs5_AlgidToParam(SECAlgorithmID *algid)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/lowpbe.c:1191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pbe_param
    argTypes:
    - NSSPKCS5PBEParameter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1193
      start: 1187
    functionDepth: 0
    functionLinenumber: 1187
    functionLinenumberEnd: 1193
    functionName: nsspkcs5_DestroyPBEParameter
    functionSourceFile: /src/nss/lib/softoken/lowpbe.c
    functionUses: 9
    functionsReached:
    - PORT_FreeArena
    linkageType: ''
    returnType: void
    signature: void nsspkcs5_DestroyPBEParameter(NSSPKCS5PBEParameter *pbe_param)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/lowpbe.c:1212,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/softoken/lowpbe.c:1216,1
    - Dst: CBC_PadBuffer
      Src: /src/nss/lib/softoken/lowpbe.c:1224,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/lowpbe.c:1227,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/softoken/lowpbe.c:1233,1
    - Dst: DES_CreateContext
      Src: /src/nss/lib/softoken/lowpbe.c:1237,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/lowpbe.c:1248,1
    - Dst: sftk_CheckCBCPadding
      Src: /src/nss/lib/softoken/lowpbe.c:1252,1
    - Dst: PORT_CT_SEL
      Src: /src/nss/lib/softoken/lowpbe.c:1253,1
    - Dst: sftk_CKRVToMask
      Src: /src/nss/lib/softoken/lowpbe.c:1253,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/lowpbe.c:1254,1
    - Dst: PORT_CT_SEL
      Src: /src/nss/lib/softoken/lowpbe.c:1254,1
    - Dst: sftk_CKRVToMask
      Src: /src/nss/lib/softoken/lowpbe.c:1254,1
    - Dst: DES_DestroyContext
      Src: /src/nss/lib/softoken/lowpbe.c:1256,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/lowpbe.c:1261,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/lowpbe.c:1267,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 48
    argCount: 5
    argNames:
    - key
    - iv
    - src
    - triple_des
    - encrypt
    argTypes:
    - SECItem*
    - SECItem*
    - SECItem*
    - PRBool
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1271
      start: 1199
    functionDepth: 1
    functionLinenumber: 1199
    functionLinenumberEnd: 1271
    functionName: sec_pkcs5_des
    functionSourceFile: /src/nss/lib/softoken/lowpbe.c
    functionUses: 0
    functionsReached:
    - SECITEM_DupItem
    - PORT_CT_SEL
    - DES_DestroyContext
    - CBC_PadBuffer
    - PORT_GetError
    - SECITEM_AllocItem
    - PORT_SetError
    - DES_CreateContext
    - sftk_CKRVToMask
    - SECITEM_ZfreeItem
    - sftk_CheckCBCPadding
    linkageType: ''
    returnType: SECItem
    signature: "SECItem *\nsec_pkcs5_des(SECItem *key, SECItem *iv, SECItem *src,
      PRBool triple_des,\n              PRBool encrypt)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/lowpbe.c:1288,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/softoken/lowpbe.c:1292,1
    - Dst: CBC_PadBuffer
      Src: /src/nss/lib/softoken/lowpbe.c:1300,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/lowpbe.c:1303,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/softoken/lowpbe.c:1309,1
    - Dst: AES_CreateContext
      Src: /src/nss/lib/softoken/lowpbe.c:1313,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/lowpbe.c:1323,1
    - Dst: sftk_CheckCBCPadding
      Src: /src/nss/lib/softoken/lowpbe.c:1327,1
    - Dst: PORT_CT_SEL
      Src: /src/nss/lib/softoken/lowpbe.c:1328,1
    - Dst: sftk_CKRVToMask
      Src: /src/nss/lib/softoken/lowpbe.c:1328,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/lowpbe.c:1329,1
    - Dst: PORT_CT_SEL
      Src: /src/nss/lib/softoken/lowpbe.c:1329,1
    - Dst: sftk_CKRVToMask
      Src: /src/nss/lib/softoken/lowpbe.c:1329,1
    - Dst: AES_DestroyContext
      Src: /src/nss/lib/softoken/lowpbe.c:1331,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/lowpbe.c:1336,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/lowpbe.c:1342,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 48
    argCount: 5
    argNames:
    - key
    - iv
    - src
    - triple_des
    - encrypt
    argTypes:
    - SECItem*
    - SECItem*
    - SECItem*
    - PRBool
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1346
      start: 1275
    functionDepth: 1
    functionLinenumber: 1275
    functionLinenumberEnd: 1346
    functionName: sec_pkcs5_aes
    functionSourceFile: /src/nss/lib/softoken/lowpbe.c
    functionUses: 0
    functionsReached:
    - SECITEM_DupItem
    - PORT_CT_SEL
    - CBC_PadBuffer
    - PORT_GetError
    - SECITEM_AllocItem
    - PORT_SetError
    - sftk_CKRVToMask
    - AES_DestroyContext
    - SECITEM_ZfreeItem
    - sftk_CheckCBCPadding
    - AES_CreateContext
    linkageType: ''
    returnType: SECItem
    signature: "SECItem *\nsec_pkcs5_aes(SECItem *key, SECItem *iv, SECItem *src,
      PRBool triple_des,\n              PRBool encrypt)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/lowpbe.c:1363,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/softoken/lowpbe.c:1367,1
    - Dst: CBC_PadBuffer
      Src: /src/nss/lib/softoken/lowpbe.c:1375,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/lowpbe.c:1378,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/softoken/lowpbe.c:1384,1
    - Dst: AESKeyWrap_CreateContext
      Src: /src/nss/lib/softoken/lowpbe.c:1388,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/lowpbe.c:1399,1
    - Dst: sftk_CheckCBCPadding
      Src: /src/nss/lib/softoken/lowpbe.c:1403,1
    - Dst: PORT_CT_SEL
      Src: /src/nss/lib/softoken/lowpbe.c:1404,1
    - Dst: sftk_CKRVToMask
      Src: /src/nss/lib/softoken/lowpbe.c:1404,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/lowpbe.c:1405,1
    - Dst: PORT_CT_SEL
      Src: /src/nss/lib/softoken/lowpbe.c:1405,1
    - Dst: sftk_CKRVToMask
      Src: /src/nss/lib/softoken/lowpbe.c:1405,1
    - Dst: AESKeyWrap_DestroyContext
      Src: /src/nss/lib/softoken/lowpbe.c:1407,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/lowpbe.c:1412,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/lowpbe.c:1418,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 48
    argCount: 5
    argNames:
    - key
    - iv
    - src
    - triple_des
    - encrypt
    argTypes:
    - SECItem*
    - SECItem*
    - SECItem*
    - PRBool
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1422
      start: 1350
    functionDepth: 1
    functionLinenumber: 1350
    functionLinenumberEnd: 1422
    functionName: sec_pkcs5_aes_key_wrap
    functionSourceFile: /src/nss/lib/softoken/lowpbe.c
    functionUses: 0
    functionsReached:
    - SECITEM_DupItem
    - PORT_CT_SEL
    - AESKeyWrap_DestroyContext
    - AESKeyWrap_CreateContext
    - CBC_PadBuffer
    - PORT_GetError
    - SECITEM_AllocItem
    - PORT_SetError
    - sftk_CKRVToMask
    - SECITEM_ZfreeItem
    - sftk_CheckCBCPadding
    linkageType: ''
    returnType: SECItem
    signature: "SECItem *\nsec_pkcs5_aes_key_wrap(SECItem *key, SECItem *iv, SECItem
      *src, PRBool triple_des,\n                       PRBool encrypt)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/lowpbe.c:1437,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/softoken/lowpbe.c:1441,1
    - Dst: CBC_PadBuffer
      Src: /src/nss/lib/softoken/lowpbe.c:1449,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/lowpbe.c:1452,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/softoken/lowpbe.c:1458,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/softoken/lowpbe.c:1460,1
    - Dst: RC2_CreateContext
      Src: /src/nss/lib/softoken/lowpbe.c:1464,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/lowpbe.c:1477,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/lowpbe.c:1483,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/lowpbe.c:1492,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/lowpbe.c:1497,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 49
    argCount: 5
    argNames:
    - key
    - iv
    - src
    - dummy
    - encrypt
    argTypes:
    - SECItem*
    - SECItem*
    - SECItem*
    - PRBool
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1501
      start: 1427
    functionDepth: 1
    functionLinenumber: 1427
    functionLinenumberEnd: 1501
    functionName: sec_pkcs5_rc2
    functionSourceFile: /src/nss/lib/softoken/lowpbe.c
    functionUses: 0
    functionsReached:
    - SECITEM_DupItem
    - CBC_PadBuffer
    - PORT_ZAlloc
    - PORT_SetError
    - SECITEM_ZfreeItem
    - RC2_CreateContext
    linkageType: ''
    returnType: SECItem
    signature: "SECItem *\nsec_pkcs5_rc2(SECItem *key, SECItem *iv, SECItem *src,
      PRBool dummy,\n              PRBool encrypt)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/lowpbe.c:1513,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/softoken/lowpbe.c:1517,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/softoken/lowpbe.c:1519,1
    - Dst: RC4_CreateContext
      Src: /src/nss/lib/softoken/lowpbe.c:1524,1
    - Dst: RC4_DestroyContext
      Src: /src/nss/lib/softoken/lowpbe.c:1529,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/lowpbe.c:1535,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 5
    argNames:
    - key
    - iv
    - src
    - dummy_op
    - encrypt
    argTypes:
    - SECItem*
    - SECItem*
    - SECItem*
    - PRBool
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1540
      start: 1505
    functionDepth: 0
    functionLinenumber: 1505
    functionLinenumberEnd: 1540
    functionName: sec_pkcs5_rc4
    functionSourceFile: /src/nss/lib/softoken/lowpbe.c
    functionUses: 0
    functionsReached:
    - RC4_DestroyContext
    - RC4_CreateContext
    - PORT_ZAlloc
    - PORT_SetError
    - SECITEM_ZfreeItem
    linkageType: ''
    returnType: SECItem
    signature: "SECItem *\nsec_pkcs5_rc4(SECItem *key, SECItem *iv, SECItem *src,
      PRBool dummy_op,\n              PRBool encrypt)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/lowpbe.c:1568,1
    - Dst: nsspkcs5_ComputeKeyAndIV
      Src: /src/nss/lib/softoken/lowpbe.c:1573,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/lowpbe.c:1633,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/lowpbe.c:1636,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 61
    argCount: 5
    argNames:
    - pbe_param
    - pwitem
    - src
    - encrypt
    - update
    argTypes:
    - NSSPKCS5PBEParameter*
    - SECItem*
    - SECItem*
    - PRBool
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1640
      start: 1552
    functionDepth: 4
    functionLinenumber: 1552
    functionLinenumberEnd: 1640
    functionName: nsspkcs5_CipherData
    functionSourceFile: /src/nss/lib/softoken/lowpbe.c
    functionUses: 2
    functionsReached:
    - PORT_SetError
    - SECITEM_ZfreeItem
    - nsspkcs5_ComputeKeyAndIV
    linkageType: ''
    returnType: SECItem
    signature: "SECItem *\nnsspkcs5_CipherData(NSSPKCS5PBEParameter *pbe_param, SECItem
      *pwitem,\n                    SECItem *src, PRBool encrypt, PRBool *update)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/softoken/lowpbe.c:1669,1
    - Dst: SEC_ASN1EncodeInteger
      Src: /src/nss/lib/softoken/lowpbe.c:1675,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/softoken/lowpbe.c:1683,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/softoken/lowpbe.c:1687,1
    - Dst: SEC_ASN1EncodeInteger
      Src: /src/nss/lib/softoken/lowpbe.c:1692,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/lowpbe.c:1698,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/softoken/lowpbe.c:1699,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/lib/softoken/lowpbe.c:1705,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/lib/softoken/lowpbe.c:1712,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/softoken/lowpbe.c:1720,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/lib/softoken/lowpbe.c:1737,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/softoken/lowpbe.c:1742,1
    - Dst: SECOID_CopyAlgorithmID
      Src: /src/nss/lib/softoken/lowpbe.c:1747,1
    - Dst: SECOID_DestroyAlgorithmID
      Src: /src/nss/lib/softoken/lowpbe.c:1749,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 82
    argCount: 3
    argNames:
    - arena
    - algorithm
    - pbe_param
    argTypes:
    - PLArenaPool*
    - SECOidTag
    - NSSPKCS5PBEParameter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1756
      start: 1650
    functionDepth: 0
    functionLinenumber: 1650
    functionLinenumberEnd: 1756
    functionName: nsspkcs5_CreateAlgorithmID
    functionSourceFile: /src/nss/lib/softoken/lowpbe.c
    functionUses: 1
    functionsReached:
    - SEC_ASN1EncodeItem
    - PORT_ArenaZAlloc
    - PORT_ZAlloc
    - SECOID_CopyAlgorithmID
    - SECOID_SetAlgorithmID
    - SEC_ASN1EncodeInteger
    - PORT_Memset
    - SECOID_DestroyAlgorithmID
    linkageType: ''
    returnType: SECAlgorithmID
    signature: "SECAlgorithmID *\nnsspkcs5_CreateAlgorithmID(PLArenaPool *arena, SECOidTag
      algorithm,\n                           NSSPKCS5PBEParameter *pbe_param)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sftk_PBELockInit
      Src: /src/nss/lib/softoken/lowpbe.c:1784,1
    - Dst: nsspkcs5_ComputeKeyAndIV
      Src: /src/nss/lib/softoken/lowpbe.c:1814,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/softoken/lowpbe.c:1816,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/softoken/lowpbe.c:1817,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/lowpbe.c:1818,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/softoken/lowpbe.c:1821,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1823
      start: 1759
    functionDepth: 4
    functionLinenumber: 1759
    functionLinenumberEnd: 1823
    functionName: sftk_fips_pbkdf_PowerUpSelfTests
    functionSourceFile: /src/nss/lib/softoken/lowpbe.c
    functionUses: 1
    functionsReached:
    - sftk_PBELockInit
    - PORT_Memcmp
    - nsspkcs5_ComputeKeyAndIV
    - PORT_SetError
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sftk_fips_pbkdf_PowerUpSelfTests(void)
  - BBCount: 14
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 1
    argNames:
    - error
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 70
    functionName: sftk_MapCryptError
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV sftk_MapCryptError(int error)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sftk_MapCryptError
      Src: /src/nss/lib/softoken/pkcs11u.c:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - error
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 88
    functionName: sftk_MapDecryptError
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 4
    functionsReached:
    - sftk_MapCryptError
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV sftk_MapDecryptError(int error)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sftk_MapCryptError
      Src: /src/nss/lib/softoken/pkcs11u.c:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - error
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 101
    functionName: sftk_MapVerifyError
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 1
    functionsReached:
    - sftk_MapCryptError
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV sftk_MapVerifyError(int error)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sftk_narrowToSessionObject
      Src: /src/nss/lib/softoken/pkcs11u.c:117,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/pkcs11u.c:122,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/pkcs11u.c:131,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/pkcs11u.c:133,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/pkcs11u.c:134,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/pkcs11u.c:146,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11u.c:152,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 4
    argNames:
    - object
    - type
    - value
    - len
    argTypes:
    - SFTKObject*
    - CK_ATTRIBUTE_TYPE
    - void*
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 162
    functionName: sftk_NewAttribute
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_Assert
    - PORT_Memcpy
    - PZ_Unlock
    - sftk_narrowToSessionObject
    - PZ_Lock
    linkageType: ''
    returnType: SFTKAttribute
    signature: "SFTKAttribute *\nsftk_NewAttribute(SFTKObject *object,\n                  CK_ATTRIBUTE_TYPE
      type, const void *value, CK_ULONG len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/pkcs11u.c:174,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/pkcs11u.c:176,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/pkcs11u.c:182,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - attribute
    argTypes:
    - SFTKAttribute*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 184
    functionName: sftk_DestroyAttribute
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - PORT_Memset
    linkageType: ''
    returnType: void
    signature: void sftk_DestroyAttribute(SFTKAttribute *attribute)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sftk_DestroyAttribute
      Src: /src/nss/lib/softoken/pkcs11u.c:193,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - attribute
    argTypes:
    - SFTKAttribute*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 196
    functionName: sftk_FreeAttribute
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 30
    functionsReached:
    - sftk_DestroyAttribute
    linkageType: ''
    returnType: void
    signature: void sftk_FreeAttribute(SFTKAttribute *attribute)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/pkcs11u.c:205,1
    - Dst: sftk_getDBForTokenObject
      Src: /src/nss/lib/softoken/pkcs11u.c:210,1
    - Dst: sftkdb_GetAttributeValue
      Src: /src/nss/lib/softoken/pkcs11u.c:220,1
    - Dst: sftkdb_GetAttributeValue
      Src: /src/nss/lib/softoken/pkcs11u.c:226,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/pkcs11u.c:231,1
    - Dst: sftkdb_GetAttributeValue
      Src: /src/nss/lib/softoken/pkcs11u.c:237,1
    - Dst: sftk_freeDB
      Src: /src/nss/lib/softoken/pkcs11u.c:242,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11u.c:247,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 2
    argNames:
    - object
    - type
    argTypes:
    - SFTKTokenObject*
    - CK_ATTRIBUTE_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 198
    functionDepth: 2
    functionLinenumber: 198
    functionLinenumberEnd: 252
    functionName: sftk_FindTokenAttribute
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - sftk_getDBForTokenObject
    - sftk_FreeAttribute
    - sftk_freeDB
    - sftkdb_GetAttributeValue
    linkageType: ''
    returnType: SFTKAttribute
    signature: 'SFTKAttribute *

      sftk_FindTokenAttribute(SFTKTokenObject *object, CK_ATTRIBUTE_TYPE type)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sftk_narrowToSessionObject
      Src: /src/nss/lib/softoken/pkcs11u.c:263,1
    - Dst: sftk_FindTokenAttribute
      Src: /src/nss/lib/softoken/pkcs11u.c:266,1
    - Dst: sftk_narrowToTokenObject
      Src: /src/nss/lib/softoken/pkcs11u.c:266,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/pkcs11u.c:269,1
    - Dst: sftkqueue_find
      Src: /src/nss/lib/softoken/pkcs11u.c:270,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/pkcs11u.c:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - object
    - type
    argTypes:
    - SFTKObject*
    - CK_ATTRIBUTE_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 259
    functionDepth: 3
    functionLinenumber: 259
    functionLinenumberEnd: 274
    functionName: sftk_FindAttribute
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 32
    functionsReached:
    - sftk_FindTokenAttribute
    - sftk_narrowToTokenObject
    - PZ_Unlock
    - sftkqueue_find
    - sftk_narrowToSessionObject
    - PZ_Lock
    linkageType: ''
    returnType: SFTKAttribute
    signature: 'SFTKAttribute *

      sftk_FindAttribute(SFTKObject *object, CK_ATTRIBUTE_TYPE type)'
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - buf
    - bufLen
    argTypes:
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 301
    functionName: sftk_GetLengthInBits
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int sftk_GetLengthInBits(unsigned char *buf, unsigned int
      bufLen)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11u.c:319,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11u.c:325,1
    - Dst: sftk_GetLengthInBits
      Src: /src/nss/lib/softoken/pkcs11u.c:328,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11u.c:329,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 5
    argNames:
    - object
    - type
    - minLength
    - maxLength
    - minMultiple
    argTypes:
    - SFTKObject*
    - CK_ATTRIBUTE_TYPE
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 311
    functionDepth: 4
    functionLinenumber: 311
    functionLinenumberEnd: 341
    functionName: sftk_ConstrainAttribute
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 1
    functionsReached:
    - sftk_FindAttribute
    - sftk_GetLengthInBits
    - sftk_FreeAttribute
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftk_ConstrainAttribute(SFTKObject *object, CK_ATTRIBUTE_TYPE
      type,\n                        int minLength, int maxLength, int minMultiple)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sftk_getDBForTokenObject
      Src: /src/nss/lib/softoken/pkcs11u.c:350,1
    - Dst: sftkdb_GetAttributeValue
      Src: /src/nss/lib/softoken/pkcs11u.c:355,1
    - Dst: sftk_freeDB
      Src: /src/nss/lib/softoken/pkcs11u.c:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - object
    - type
    argTypes:
    - SFTKTokenObject*
    - CK_ATTRIBUTE_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 360
    functionName: sftk_hasAttributeToken
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 0
    functionsReached:
    - sftk_freeDB
    - sftk_getDBForTokenObject
    - sftkdb_GetAttributeValue
    linkageType: ''
    returnType: PRBool
    signature: PRBool sftk_hasAttributeToken(SFTKTokenObject *object, CK_ATTRIBUTE_TYPE
      type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sftk_narrowToSessionObject
      Src: /src/nss/lib/softoken/pkcs11u.c:369,1
    - Dst: sftk_hasAttributeToken
      Src: /src/nss/lib/softoken/pkcs11u.c:372,1
    - Dst: sftk_narrowToTokenObject
      Src: /src/nss/lib/softoken/pkcs11u.c:372,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/pkcs11u.c:375,1
    - Dst: sftkqueue_find
      Src: /src/nss/lib/softoken/pkcs11u.c:376,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/pkcs11u.c:377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - object
    - type
    argTypes:
    - SFTKObject*
    - CK_ATTRIBUTE_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 380
    functionName: sftk_hasAttribute
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 16
    functionsReached:
    - sftk_hasAttributeToken
    - sftk_narrowToTokenObject
    - PZ_Unlock
    - sftkqueue_find
    - sftk_narrowToSessionObject
    - PZ_Lock
    linkageType: ''
    returnType: PRBool
    signature: PRBool sftk_hasAttribute(SFTKObject *object, CK_ATTRIBUTE_TYPE type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sftk_narrowToSessionObject
      Src: /src/nss/lib/softoken/pkcs11u.c:388,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/pkcs11u.c:392,1
    - Dst: sftkqueue_add
      Src: /src/nss/lib/softoken/pkcs11u.c:393,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/pkcs11u.c:395,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - object
    - attribute
    argTypes:
    - SFTKObject*
    - SFTKAttribute*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 396
    functionName: sftk_AddAttribute
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 0
    functionsReached:
    - sftk_narrowToSessionObject
    - PZ_Unlock
    - PZ_Lock
    - sftkqueue_add
    linkageType: ''
    returnType: void
    signature: void sftk_AddAttribute(SFTKObject *object, SFTKAttribute *attribute)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11u.c:410,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/softoken/pkcs11u.c:414,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11u.c:416,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11u.c:419,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11u.c:420,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - arena
    - item
    - object
    - type
    argTypes:
    - PLArenaPool*
    - SECItem*
    - SFTKObject*
    - CK_ATTRIBUTE_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 402
    functionDepth: 4
    functionLinenumber: 402
    functionLinenumberEnd: 422
    functionName: sftk_Attribute2SSecItem
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 5
    functionsReached:
    - sftk_FreeAttribute
    - sftk_FindAttribute
    - PORT_Memcpy
    - SECITEM_AllocItem
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftk_Attribute2SSecItem(PLArenaPool *arena, SECItem *item, SFTKObject
      *object,\n                        CK_ATTRIBUTE_TYPE type)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: sftk_narrowToTokenObject
      Src: /src/nss/lib/softoken/pkcs11u.c:440,1
    - Dst: sftk_Attribute2SecItem
      Src: /src/nss/lib/softoken/pkcs11u.c:445,1
    - Dst: sftk_getDBForTokenObject
      Src: /src/nss/lib/softoken/pkcs11u.c:471,1
    - Dst: sftkdb_GetAttributeValue
      Src: /src/nss/lib/softoken/pkcs11u.c:485,1
    - Dst: sftkdb_GetAttributeValue
      Src: /src/nss/lib/softoken/pkcs11u.c:501,1
    - Dst: sftk_narrowToSessionObject
      Src: /src/nss/lib/softoken/pkcs11u.c:530,1
    - Dst: if
      Src: /src/nss/lib/softoken/pkcs11u.c:532,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/pkcs11u.c:535,1
    - Dst: sftkqueue_is_queued
      Src: /src/nss/lib/softoken/pkcs11u.c:536,1
    - Dst: sftkqueue_delete
      Src: /src/nss/lib/softoken/pkcs11u.c:538,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/pkcs11u.c:541,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 63
    argCount: 4
    argNames:
    - arena
    - object
    - itemTemplate
    - itemTemplateCount
    argTypes:
    - PLArenaPool*
    - SFTKObject*
    - SFTKItemTemplate*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 542
    functionName: sftk_MultipleAttribute2SecItem
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 4
    functionsReached:
    - sftkqueue_is_queued
    - sftk_Attribute2SecItem
    - sftk_getDBForTokenObject
    - sftk_narrowToTokenObject
    - PZ_Unlock
    - sftk_narrowToSessionObject
    - PZ_Lock
    - if
    - sftkqueue_delete
    - sftkdb_GetAttributeValue
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftk_MultipleAttribute2SecItem(PLArenaPool *arena, SFTKObject
      *object,\n                               SFTKItemTemplate *itemTemplate, int
      itemTemplateCount)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11u.c:554,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11u.c:559,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - object
    - type
    argTypes:
    - SFTKObject*
    - CK_ATTRIBUTE_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 548
    functionDepth: 4
    functionLinenumber: 548
    functionLinenumberEnd: 562
    functionName: sftk_isTrue
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 21
    functionsReached:
    - sftk_FindAttribute
    - sftk_FreeAttribute
    linkageType: ''
    returnType: PRBool
    signature: PRBool sftk_isTrue(SFTKObject *object, CK_ATTRIBUTE_TYPE type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11u.c:574,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/pkcs11u.c:579,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/pkcs11u.c:581,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11u.c:587,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - object
    - type
    argTypes:
    - SFTKObject*
    - CK_ATTRIBUTE_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 569
    functionDepth: 4
    functionLinenumber: 569
    functionLinenumberEnd: 588
    functionName: sftk_nullAttribute
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - PORT_Memset
    - sftk_FindAttribute
    - sftk_FreeAttribute
    linkageType: ''
    returnType: void
    signature: void sftk_nullAttribute(SFTKObject *object, CK_ATTRIBUTE_TYPE type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sftk_narrowToTokenObject
      Src: /src/nss/lib/softoken/pkcs11u.c:596,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/pkcs11u.c:599,1
    - Dst: sftk_getDBForTokenObject
      Src: /src/nss/lib/softoken/pkcs11u.c:604,1
    - Dst: sftkdb_SetAttributeValue
      Src: /src/nss/lib/softoken/pkcs11u.c:610,1
    - Dst: sftk_freeDB
      Src: /src/nss/lib/softoken/pkcs11u.c:611,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - object
    - type
    - value
    - len
    argTypes:
    - SFTKObject*
    - CK_ATTRIBUTE_TYPE
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 590
    functionDepth: 1
    functionLinenumber: 590
    functionLinenumberEnd: 613
    functionName: sftk_forceTokenAttribute
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - sftk_getDBForTokenObject
    - sftkdb_SetAttributeValue
    - sftk_narrowToTokenObject
    - sftk_freeDB
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftk_forceTokenAttribute(SFTKObject *object, CK_ATTRIBUTE_TYPE
      type,\n                         const void *value, unsigned int len)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/pkcs11u.c:626,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/pkcs11u.c:627,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/pkcs11u.c:628,1
    - Dst: sftk_isToken
      Src: /src/nss/lib/softoken/pkcs11u.c:634,1
    - Dst: sftk_forceTokenAttribute
      Src: /src/nss/lib/softoken/pkcs11u.c:635,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11u.c:637,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11u.c:639,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/pkcs11u.c:645,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/pkcs11u.c:652,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11u.c:655,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/pkcs11u.c:659,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/pkcs11u.c:663,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11u.c:674,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 4
    argNames:
    - object
    - type
    - value
    - len
    argTypes:
    - SFTKObject*
    - CK_ATTRIBUTE_TYPE
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 618
    functionDepth: 4
    functionLinenumber: 618
    functionLinenumberEnd: 676
    functionName: sftk_forceAttribute
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 20
    functionsReached:
    - PORT_Alloc
    - PORT_Assert
    - sftk_FindAttribute
    - sftk_AddAttributeType
    - PORT_Memcpy
    - sftk_FreeAttribute
    - PORT_Free
    - sftk_forceTokenAttribute
    - sftk_isToken
    - PORT_Memset
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftk_forceAttribute(SFTKObject *object, CK_ATTRIBUTE_TYPE type,\n
      \                   const void *value, unsigned int len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11u.c:688,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/pkcs11u.c:693,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11u.c:695,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11u.c:699,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11u.c:703,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - object
    - type
    argTypes:
    - SFTKObject*
    - CK_ATTRIBUTE_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 682
    functionDepth: 4
    functionLinenumber: 682
    functionLinenumberEnd: 705
    functionName: sftk_getString
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - sftk_FindAttribute
    - PORT_Memcpy
    - sftk_FreeAttribute
    linkageType: ''
    returnType: char
    signature: 'char *

      sftk_getString(SFTKObject *object, CK_ATTRIBUTE_TYPE type)'
  - BBCount: 43
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 61
    argCount: 2
    argNames:
    - type
    - inClass
    argTypes:
    - CK_ATTRIBUTE_TYPE
    - CK_OBJECT_CLASS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 719
    functionDepth: 0
    functionLinenumber: 719
    functionLinenumberEnd: 797
    functionName: sftk_modifyType
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: SFTKModifyType
    signature: SFTKModifyType sftk_modifyType(CK_ATTRIBUTE_TYPE type, CK_OBJECT_CLASS
      inClass)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - type
    - inClass
    argTypes:
    - CK_ATTRIBUTE_TYPE
    - CK_OBJECT_CLASS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 801
    functionDepth: 0
    functionLinenumber: 801
    functionLinenumberEnd: 823
    functionName: sftk_isSensitive
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool sftk_isSensitive(CK_ATTRIBUTE_TYPE type, CK_OBJECT_CLASS inClass)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11u.c:836,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/pkcs11u.c:842,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/pkcs11u.c:844,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11u.c:847,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/pkcs11u.c:851,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11u.c:852,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - arena
    - item
    - object
    - type
    argTypes:
    - PLArenaPool*
    - SECItem*
    - SFTKObject*
    - CK_ATTRIBUTE_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 829
    functionDepth: 4
    functionLinenumber: 829
    functionLinenumberEnd: 854
    functionName: sftk_Attribute2SecItem
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 4
    functionsReached:
    - PORT_Alloc
    - sftk_FindAttribute
    - PORT_Memcpy
    - sftk_FreeAttribute
    - PORT_ArenaAlloc
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftk_Attribute2SecItem(PLArenaPool *arena, SECItem *item, SFTKObject
      *object,\n                       CK_ATTRIBUTE_TYPE type)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11u.c:862,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11u.c:871,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - object
    - type
    - longData
    argTypes:
    - SFTKObject*
    - CK_ATTRIBUTE_TYPE
    - CK_ULONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 856
    functionDepth: 4
    functionLinenumber: 856
    functionLinenumberEnd: 873
    functionName: sftk_GetULongAttribute
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 2
    functionsReached:
    - sftk_FindAttribute
    - sftk_FreeAttribute
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftk_GetULongAttribute(SFTKObject *object, CK_ATTRIBUTE_TYPE
      type,\n                       CK_ULONG *longData)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11u.c:879,1
    - Dst: sftk_DeleteAttribute
      Src: /src/nss/lib/softoken/pkcs11u.c:882,1
    - Dst: sftk_DestroyAttribute
      Src: /src/nss/lib/softoken/pkcs11u.c:883,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - object
    - type
    argTypes:
    - SFTKObject*
    - CK_ATTRIBUTE_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 875
    functionDepth: 4
    functionLinenumber: 875
    functionLinenumberEnd: 884
    functionName: sftk_DeleteAttributeType
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 6
    functionsReached:
    - sftk_DeleteAttribute
    - sftk_FindAttribute
    - sftk_DestroyAttribute
    linkageType: ''
    returnType: void
    signature: void sftk_DeleteAttributeType(SFTKObject *object, CK_ATTRIBUTE_TYPE
      type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sftk_NewAttribute
      Src: /src/nss/lib/softoken/pkcs11u.c:891,1
    - Dst: sftk_AddAttribute
      Src: /src/nss/lib/softoken/pkcs11u.c:895,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - object
    - type
    - valPtr
    - length
    argTypes:
    - SFTKObject*
    - CK_ATTRIBUTE_TYPE
    - void*
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 897
      start: 886
    functionDepth: 2
    functionLinenumber: 886
    functionLinenumberEnd: 897
    functionName: sftk_AddAttributeType
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 12
    functionsReached:
    - sftk_NewAttribute
    - sftk_AddAttribute
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftk_AddAttributeType(SFTKObject *object, CK_ATTRIBUTE_TYPE
      type,\n                      const void *valPtr, CK_ULONG length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PL_HashTableLookup
      Src: /src/nss/lib/softoken/pkcs11u.c:907,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - slot
    - handle
    argTypes:
    - SFTKSlot*
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 904
    functionDepth: 1
    functionLinenumber: 904
    functionLinenumberEnd: 908
    functionName: sftk_lookupTokenKeyByHandle
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 0
    functionsReached:
    - PL_HashTableLookup
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      sftk_lookupTokenKeyByHandle(SFTKSlot *slot, CK_OBJECT_HANDLE handle)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SKIP_AFTER_FORK
      Src: /src/nss/lib/softoken/pkcs11u.c:918,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/pkcs11u.c:918,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - slot
    argTypes:
    - SFTKSlot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 915
    functionDepth: 1
    functionLinenumber: 915
    functionLinenumberEnd: 919
    functionName: sftk_tokenKeyLock
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 0
    functionsReached:
    - SKIP_AFTER_FORK
    - PZ_Lock
    linkageType: ''
    returnType: void
    signature: void sftk_tokenKeyLock(SFTKSlot *slot)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SKIP_AFTER_FORK
      Src: /src/nss/lib/softoken/pkcs11u.c:924,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/pkcs11u.c:924,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - slot
    argTypes:
    - SFTKSlot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 921
    functionDepth: 1
    functionLinenumber: 921
    functionLinenumberEnd: 925
    functionName: sftk_tokenKeyUnlock
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 0
    functionsReached:
    - SKIP_AFTER_FORK
    - PZ_Unlock
    linkageType: ''
    returnType: void
    signature: void sftk_tokenKeyUnlock(SFTKSlot *slot)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/softoken/pkcs11u.c:932,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - entry
    - index
    - arg
    argTypes:
    - PLHashEntry*
    - PRIntn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 927
    functionDepth: 0
    functionLinenumber: 927
    functionLinenumberEnd: 934
    functionName: sftk_freeHashItem
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 0
    functionsReached:
    - SECITEM_FreeItem
    linkageType: ''
    returnType: PRIntn
    signature: PRIntn sftk_freeHashItem(PLHashEntry *entry, PRIntn index, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sftk_tokenKeyLock
      Src: /src/nss/lib/softoken/pkcs11u.c:939,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/pkcs11u.c:940,1
    - Dst: PL_HashTableEnumerateEntries
      Src: /src/nss/lib/softoken/pkcs11u.c:941,1
    - Dst: sftk_tokenKeyUnlock
      Src: /src/nss/lib/softoken/pkcs11u.c:942,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - slot
    argTypes:
    - SFTKSlot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 936
    functionDepth: 2
    functionLinenumber: 936
    functionLinenumberEnd: 944
    functionName: SFTK_ClearTokenKeyHashTable
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - PL_HashTableEnumerateEntries
    - sftk_tokenKeyLock
    - sftk_tokenKeyUnlock
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV SFTK_ClearTokenKeyHashTable(SFTKSlot *slot)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/pkcs11u.c:958,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/pkcs11u.c:964,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/pkcs11u.c:968,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/softoken/pkcs11u.c:978,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 5
    argNames:
    - hasLocks
    - optimizeSpace
    - list
    - hashSize
    - isSessionObject
    argTypes:
    - PRBool*
    - PRBool
    - SFTKObjectFreeList*
    - unsigned int
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 984
      start: 950
    functionDepth: 1
    functionLinenumber: 950
    functionLinenumberEnd: 984
    functionName: sftk_GetObjectFromList
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_ZAlloc
    - PZ_Lock
    - PZ_Unlock
    linkageType: ''
    returnType: SFTKObject
    signature: "SFTKObject *\nsftk_GetObjectFromList(PRBool *hasLocks, PRBool optimizeSpace,\n
      \                      SFTKObjectFreeList *list, unsigned int hashSize, PRBool
      isSessionObject)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/pkcs11u.c:998,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/pkcs11u.c:1003,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/pkcs11u.c:1006,1
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/softoken/pkcs11u.c:1010,1
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/softoken/pkcs11u.c:1014,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/pkcs11u.c:1017,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - object
    - list
    - isSessionObject
    argTypes:
    - SFTKObject*
    - SFTKObjectFreeList*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 986
    functionDepth: 1
    functionLinenumber: 986
    functionLinenumberEnd: 1018
    functionName: sftk_PutObjectToList
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - PZ_DestroyLock
    - PZ_Lock
    - PZ_Unlock
    linkageType: ''
    returnType: void
    signature: "void sftk_PutObjectToList(SFTKObject *object, SFTKObjectFreeList *list,\n
      \                    PRBool isSessionObject)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/pkcs11u.c:1025,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - object
    argTypes:
    - SFTKObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1027
      start: 1020
    functionDepth: 0
    functionLinenumber: 1020
    functionLinenumberEnd: 1027
    functionName: sftk_freeObjectData
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    linkageType: ''
    returnType: SFTKObject
    signature: 'SFTKObject *

      sftk_freeObjectData(SFTKObject *object)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PZ_NewLock
      Src: /src/nss/lib/softoken/pkcs11u.c:1033,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - list
    argTypes:
    - SFTKObjectFreeList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1029
    functionDepth: 1
    functionLinenumber: 1029
    functionLinenumberEnd: 1035
    functionName: sftk_InitFreeList
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 0
    functionsReached:
    - PZ_NewLock
    linkageType: ''
    returnType: void
    signature: void sftk_InitFreeList(SFTKObjectFreeList *list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sftk_InitFreeList
      Src: /src/nss/lib/softoken/pkcs11u.c:1040,1
    - Dst: sftk_InitFreeList
      Src: /src/nss/lib/softoken/pkcs11u.c:1041,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1037
    functionDepth: 2
    functionLinenumber: 1037
    functionLinenumberEnd: 1042
    functionName: sftk_InitFreeLists
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 1
    functionsReached:
    - sftk_InitFreeList
    linkageType: ''
    returnType: void
    signature: void sftk_InitFreeLists(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SKIP_AFTER_FORK
      Src: /src/nss/lib/softoken/pkcs11u.c:1052,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/pkcs11u.c:1052,1
    - Dst: sftk_freeObjectData
      Src: /src/nss/lib/softoken/pkcs11u.c:1054,1
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/softoken/pkcs11u.c:1055,1
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/softoken/pkcs11u.c:1057,1
    - Dst: SKIP_AFTER_FORK
      Src: /src/nss/lib/softoken/pkcs11u.c:1062,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/pkcs11u.c:1062,1
    - Dst: SKIP_AFTER_FORK
      Src: /src/nss/lib/softoken/pkcs11u.c:1063,1
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/softoken/pkcs11u.c:1063,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - list
    - isSessionList
    argTypes:
    - SFTKObjectFreeList*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1065
      start: 1044
    functionDepth: 1
    functionLinenumber: 1044
    functionLinenumberEnd: 1065
    functionName: sftk_CleanupFreeList
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 0
    functionsReached:
    - SKIP_AFTER_FORK
    - PZ_Unlock
    - sftk_freeObjectData
    - PZ_Lock
    - PZ_DestroyLock
    linkageType: ''
    returnType: void
    signature: void sftk_CleanupFreeList(SFTKObjectFreeList *list, PRBool isSessionList)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sftk_CleanupFreeList
      Src: /src/nss/lib/softoken/pkcs11u.c:1070,1
    - Dst: sftk_CleanupFreeList
      Src: /src/nss/lib/softoken/pkcs11u.c:1071,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1067
    functionDepth: 2
    functionLinenumber: 1067
    functionLinenumberEnd: 1072
    functionName: sftk_CleanupFreeLists
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 2
    functionsReached:
    - sftk_CleanupFreeList
    linkageType: ''
    returnType: void
    signature: void sftk_CleanupFreeLists(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sftk_GetObjectFromList
      Src: /src/nss/lib/softoken/pkcs11u.c:1088,1
    - Dst: sftk_isFIPS
      Src: /src/nss/lib/softoken/pkcs11u.c:1105,1
    - Dst: PZ_NewLock
      Src: /src/nss/lib/softoken/pkcs11u.c:1114,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/pkcs11u.c:1116,1
    - Dst: PZ_NewLock
      Src: /src/nss/lib/softoken/pkcs11u.c:1120,1
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/softoken/pkcs11u.c:1122,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/pkcs11u.c:1123,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 42
    argCount: 1
    argNames:
    - slot
    argTypes:
    - SFTKSlot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1132
      start: 1077
    functionDepth: 2
    functionLinenumber: 1077
    functionLinenumberEnd: 1132
    functionName: sftk_NewObject
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 8
    functionsReached:
    - sftk_GetObjectFromList
    - PORT_Free
    - sftk_isFIPS
    - PZ_DestroyLock
    - PZ_NewLock
    linkageType: ''
    returnType: SFTKObject
    signature: 'SFTKObject *

      sftk_NewObject(SFTKSlot *slot)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/pkcs11u.c:1142,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/pkcs11u.c:1144,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - so
    argTypes:
    - SFTKSessionObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1152
      start: 1134
    functionDepth: 0
    functionLinenumber: 1134
    functionLinenumberEnd: 1152
    functionName: sftk_DestroySessionObjectData
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - PORT_Memset
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV sftk_DestroySessionObjectData(SFTKSessionObject *so)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sftk_narrowToSessionObject
      Src: /src/nss/lib/softoken/pkcs11u.c:1162,1
    - Dst: sftk_narrowToTokenObject
      Src: /src/nss/lib/softoken/pkcs11u.c:1163,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/pkcs11u.c:1165,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/pkcs11u.c:1170,1
    - Dst: sftk_DestroySessionObjectData
      Src: /src/nss/lib/softoken/pkcs11u.c:1175,1
    - Dst: sftk_PutObjectToList
      Src: /src/nss/lib/softoken/pkcs11u.c:1183,1
    - Dst: sftk_PutObjectToList
      Src: /src/nss/lib/softoken/pkcs11u.c:1185,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - object
    argTypes:
    - SFTKObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1188
      start: 1158
    functionDepth: 2
    functionLinenumber: 1158
    functionLinenumberEnd: 1188
    functionName: sftk_DestroyObject
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - sftk_PutObjectToList
    - PORT_Free
    - sftk_narrowToTokenObject
    - sftk_narrowToSessionObject
    - sftk_DestroySessionObjectData
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV sftk_DestroyObject(SFTKObject *object)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/pkcs11u.c:1193,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/pkcs11u.c:1194,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/pkcs11u.c:1196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - object
    argTypes:
    - SFTKObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1197
      start: 1190
    functionDepth: 1
    functionLinenumber: 1190
    functionLinenumberEnd: 1197
    functionName: sftk_ReferenceObject
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PZ_Lock
    - PZ_Unlock
    linkageType: ''
    returnType: void
    signature: void sftk_ReferenceObject(SFTKObject *object)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sftk_hash
      Src: /src/nss/lib/softoken/pkcs11u.c:1203,1
    - Dst: sftk_isToken
      Src: /src/nss/lib/softoken/pkcs11u.c:1205,1
    - Dst: sftk_NewTokenObject
      Src: /src/nss/lib/softoken/pkcs11u.c:1206,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/pkcs11u.c:1209,1
    - Dst: sftkqueue_find2
      Src: /src/nss/lib/softoken/pkcs11u.c:1210,1
    - Dst: sftk_ReferenceObject
      Src: /src/nss/lib/softoken/pkcs11u.c:1212,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/pkcs11u.c:1214,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - handle
    - slot
    argTypes:
    - CK_OBJECT_HANDLE
    - SFTKSlot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1217
      start: 1199
    functionDepth: 2
    functionLinenumber: 1199
    functionLinenumberEnd: 1217
    functionName: sftk_ObjectFromHandleOnSlot
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 0
    functionsReached:
    - sftkqueue_find2
    - sftk_ReferenceObject
    - sftk_isToken
    - PZ_Unlock
    - sftk_hash
    - PZ_Lock
    - sftk_NewTokenObject
    linkageType: ''
    returnType: SFTKObject
    signature: 'SFTKObject *

      sftk_ObjectFromHandleOnSlot(CK_OBJECT_HANDLE handle, SFTKSlot *slot)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sftk_SlotFromSession
      Src: /src/nss/lib/softoken/pkcs11u.c:1226,1
    - Dst: sftk_ObjectFromHandleOnSlot
      Src: /src/nss/lib/softoken/pkcs11u.c:1228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - session
    argTypes:
    - CK_OBJECT_HANDLE
    - SFTKSession*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1229
      start: 1223
    functionDepth: 3
    functionLinenumber: 1223
    functionLinenumberEnd: 1229
    functionName: sftk_ObjectFromHandle
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 15
    functionsReached:
    - sftk_ObjectFromHandleOnSlot
    - sftk_SlotFromSession
    linkageType: ''
    returnType: SFTKObject
    signature: 'SFTKObject *

      sftk_ObjectFromHandle(CK_OBJECT_HANDLE handle, SFTKSession *session)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/pkcs11u.c:1240,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/pkcs11u.c:1244,1
    - Dst: sftk_DestroyObject
      Src: /src/nss/lib/softoken/pkcs11u.c:1247,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - object
    argTypes:
    - SFTKObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1254
      start: 1234
    functionDepth: 3
    functionLinenumber: 1234
    functionLinenumberEnd: 1254
    functionName: sftk_FreeObject
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 22
    functionsReached:
    - PZ_Lock
    - PZ_Unlock
    - sftk_DestroyObject
    linkageType: ''
    returnType: SFTKFreeStatus
    signature: SFTKFreeStatus sftk_FreeObject(SFTKObject *object)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/pkcs11u.c:1270,1
    - Dst: sftkqueue_find
      Src: /src/nss/lib/softoken/pkcs11u.c:1278,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/pkcs11u.c:1281,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - slot
    argTypes:
    - SFTKSlot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1284
      start: 1261
    functionDepth: 1
    functionLinenumber: 1261
    functionLinenumberEnd: 1284
    functionName: sftk_getNextHandle
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 1
    functionsReached:
    - PZ_Unlock
    - PZ_Lock
    - sftkqueue_find
    linkageType: ''
    returnType: CK_OBJECT_HANDLE
    signature: CK_OBJECT_HANDLE sftk_getNextHandle(SFTKSlot *slot)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sftk_hash
      Src: /src/nss/lib/softoken/pkcs11u.c:1293,1
    - Dst: sftkqueue_init_element
      Src: /src/nss/lib/softoken/pkcs11u.c:1294,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/pkcs11u.c:1295,1
    - Dst: sftkqueue_add2
      Src: /src/nss/lib/softoken/pkcs11u.c:1296,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/pkcs11u.c:1297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - slot
    - object
    argTypes:
    - SFTKSlot*
    - SFTKObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1298
      start: 1290
    functionDepth: 1
    functionLinenumber: 1290
    functionLinenumberEnd: 1298
    functionName: sftk_AddSlotObject
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 0
    functionsReached:
    - sftkqueue_add2
    - PZ_Unlock
    - sftk_hash
    - PZ_Lock
    - sftkqueue_init_element
    linkageType: ''
    returnType: void
    signature: void sftk_AddSlotObject(SFTKSlot *slot, SFTKObject *object)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sftk_SlotFromSession
      Src: /src/nss/lib/softoken/pkcs11u.c:1303,1
    - Dst: sftk_narrowToSessionObject
      Src: /src/nss/lib/softoken/pkcs11u.c:1304,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/pkcs11u.c:1307,1
    - Dst: sftkqueue_add
      Src: /src/nss/lib/softoken/pkcs11u.c:1308,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/pkcs11u.c:1310,1
    - Dst: sftk_AddSlotObject
      Src: /src/nss/lib/softoken/pkcs11u.c:1312,1
    - Dst: sftk_ReferenceObject
      Src: /src/nss/lib/softoken/pkcs11u.c:1313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - session
    - object
    argTypes:
    - SFTKSession*
    - SFTKObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1314
      start: 1300
    functionDepth: 2
    functionLinenumber: 1300
    functionLinenumberEnd: 1314
    functionName: sftk_AddObject
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 1
    functionsReached:
    - sftk_ReferenceObject
    - PZ_Unlock
    - sftk_narrowToSessionObject
    - sftk_AddSlotObject
    - PZ_Lock
    - sftk_SlotFromSession
    - sftkqueue_add
    linkageType: ''
    returnType: void
    signature: void sftk_AddObject(SFTKSession *session, SFTKObject *object)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sftk_SlotFromSession
      Src: /src/nss/lib/softoken/pkcs11u.c:1322,1
    - Dst: sftk_narrowToSessionObject
      Src: /src/nss/lib/softoken/pkcs11u.c:1323,1
    - Dst: sftk_hash
      Src: /src/nss/lib/softoken/pkcs11u.c:1325,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/pkcs11u.c:1330,1
    - Dst: sftkqueue_delete
      Src: /src/nss/lib/softoken/pkcs11u.c:1331,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/pkcs11u.c:1332,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/pkcs11u.c:1333,1
    - Dst: sftkqueue_delete2
      Src: /src/nss/lib/softoken/pkcs11u.c:1334,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/pkcs11u.c:1335,1
    - Dst: sftkqueue_clear_deleted_element
      Src: /src/nss/lib/softoken/pkcs11u.c:1336,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11u.c:1337,1
    - Dst: sftk_getDBForTokenObject
      Src: /src/nss/lib/softoken/pkcs11u.c:1339,1
    - Dst: sftk_narrowToTokenObject
      Src: /src/nss/lib/softoken/pkcs11u.c:1341,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/pkcs11u.c:1342,1
    - Dst: sftkdb_DestroyObject
      Src: /src/nss/lib/softoken/pkcs11u.c:1344,1
    - Dst: sftk_freeDB
      Src: /src/nss/lib/softoken/pkcs11u.c:1345,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - session
    - object
    argTypes:
    - SFTKSession*
    - SFTKObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1348
      start: 1319
    functionDepth: 4
    functionLinenumber: 1319
    functionLinenumberEnd: 1348
    functionName: sftk_DeleteObject
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - sftkdb_DestroyObject
    - sftk_getDBForTokenObject
    - sftk_narrowToTokenObject
    - PZ_Unlock
    - sftk_freeDB
    - sftk_narrowToSessionObject
    - sftk_hash
    - sftkqueue_delete2
    - PZ_Lock
    - sftkqueue_delete
    - sftk_SlotFromSession
    - sftkqueue_clear_deleted_element
    - sftk_FreeObject
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV sftk_DeleteObject(SFTKSession *session, SFTKObject *object)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sftk_hasAttribute
      Src: /src/nss/lib/softoken/pkcs11u.c:1481,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11u.c:1482,1
    - Dst: sftk_NewAttribute
      Src: /src/nss/lib/softoken/pkcs11u.c:1488,1
    - Dst: sftk_attr_expand
      Src: /src/nss/lib/softoken/pkcs11u.c:1489,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11u.c:1490,1
    - Dst: sftk_AddAttribute
      Src: /src/nss/lib/softoken/pkcs11u.c:1494,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - destObject
    - src_to
    - attrArray
    - attrCount
    argTypes:
    - SFTKObject*
    - SFTKTokenObject*
    - CK_ATTRIBUTE_TYPE*
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1498
      start: 1471
    functionDepth: 4
    functionLinenumber: 1471
    functionLinenumberEnd: 1498
    functionName: stfk_CopyTokenAttributes
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 0
    functionsReached:
    - sftk_hasAttribute
    - sftk_FindAttribute
    - sftk_FreeAttribute
    - sftk_NewAttribute
    - sftk_attr_expand
    - sftk_AddAttribute
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV stfk_CopyTokenAttributes(SFTKObject *destObject, SFTKTokenObject
      *src_to,\n                         const CK_ATTRIBUTE_TYPE *attrArray, CK_ULONG
      attrCount)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: stfk_CopyTokenAttributes
      Src: /src/nss/lib/softoken/pkcs11u.c:1508,1
    - Dst: stfk_CopyTokenAttributes
      Src: /src/nss/lib/softoken/pkcs11u.c:1514,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11u.c:1519,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/pkcs11u.c:1520,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11u.c:1531,1
    - Dst: stfk_CopyTokenAttributes
      Src: /src/nss/lib/softoken/pkcs11u.c:1536,1
    - Dst: stfk_CopyTokenAttributes
      Src: /src/nss/lib/softoken/pkcs11u.c:1540,1
    - Dst: stfk_CopyTokenAttributes
      Src: /src/nss/lib/softoken/pkcs11u.c:1544,1
    - Dst: stfk_CopyTokenAttributes
      Src: /src/nss/lib/softoken/pkcs11u.c:1548,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 2
    argNames:
    - destObject
    - src_to
    argTypes:
    - SFTKObject*
    - SFTKTokenObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1557
      start: 1500
    functionDepth: 5
    functionLinenumber: 1500
    functionLinenumberEnd: 1557
    functionName: stfk_CopyTokenPrivateKey
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - sftk_FreeAttribute
    - sftk_FindAttribute
    - stfk_CopyTokenAttributes
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV stfk_CopyTokenPrivateKey(SFTKObject *destObject, SFTKTokenObject
      *src_to)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: stfk_CopyTokenAttributes
      Src: /src/nss/lib/softoken/pkcs11u.c:1567,1
    - Dst: stfk_CopyTokenAttributes
      Src: /src/nss/lib/softoken/pkcs11u.c:1574,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11u.c:1579,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/pkcs11u.c:1580,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11u.c:1591,1
    - Dst: stfk_CopyTokenAttributes
      Src: /src/nss/lib/softoken/pkcs11u.c:1596,1
    - Dst: stfk_CopyTokenAttributes
      Src: /src/nss/lib/softoken/pkcs11u.c:1600,1
    - Dst: stfk_CopyTokenAttributes
      Src: /src/nss/lib/softoken/pkcs11u.c:1604,1
    - Dst: stfk_CopyTokenAttributes
      Src: /src/nss/lib/softoken/pkcs11u.c:1608,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 2
    argNames:
    - destObject
    - src_to
    argTypes:
    - SFTKObject*
    - SFTKTokenObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1617
      start: 1559
    functionDepth: 5
    functionLinenumber: 1559
    functionLinenumberEnd: 1617
    functionName: stfk_CopyTokenPublicKey
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - sftk_FreeAttribute
    - sftk_FindAttribute
    - stfk_CopyTokenAttributes
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV stfk_CopyTokenPublicKey(SFTKObject *destObject, SFTKTokenObject
      *src_to)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stfk_CopyTokenAttributes
      Src: /src/nss/lib/softoken/pkcs11u.c:1622,1
    - Dst: stfk_CopyTokenAttributes
      Src: /src/nss/lib/softoken/pkcs11u.c:1627,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - destObject
    - src_to
    argTypes:
    - SFTKObject*
    - SFTKTokenObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1631
      start: 1618
    functionDepth: 5
    functionLinenumber: 1618
    functionLinenumberEnd: 1631
    functionName: stfk_CopyTokenSecretKey
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 0
    functionsReached:
    - stfk_CopyTokenAttributes
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV stfk_CopyTokenSecretKey(SFTKObject *destObject, SFTKTokenObject
      *src_to)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: sftk_narrowToTokenObject
      Src: /src/nss/lib/softoken/pkcs11u.c:1641,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/pkcs11u.c:1644,1
    - Dst: stfk_CopyTokenAttributes
      Src: /src/nss/lib/softoken/pkcs11u.c:1649,1
    - Dst: stfk_CopyTokenAttributes
      Src: /src/nss/lib/softoken/pkcs11u.c:1656,1
    - Dst: stfk_CopyTokenAttributes
      Src: /src/nss/lib/softoken/pkcs11u.c:1660,1
    - Dst: stfk_CopyTokenAttributes
      Src: /src/nss/lib/softoken/pkcs11u.c:1664,1
    - Dst: stfk_CopyTokenAttributes
      Src: /src/nss/lib/softoken/pkcs11u.c:1668,1
    - Dst: stfk_CopyTokenAttributes
      Src: /src/nss/lib/softoken/pkcs11u.c:1672,1
    - Dst: stfk_CopyTokenPrivateKey
      Src: /src/nss/lib/softoken/pkcs11u.c:1676,1
    - Dst: stfk_CopyTokenPublicKey
      Src: /src/nss/lib/softoken/pkcs11u.c:1679,1
    - Dst: stfk_CopyTokenSecretKey
      Src: /src/nss/lib/softoken/pkcs11u.c:1682,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 2
    argNames:
    - destObject
    - srcObject
    argTypes:
    - SFTKObject*
    - SFTKObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1690
      start: 1638
    functionDepth: 6
    functionLinenumber: 1638
    functionLinenumberEnd: 1690
    functionName: sftk_CopyTokenObject
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 0
    functionsReached:
    - stfk_CopyTokenPrivateKey
    - PORT_Assert
    - sftk_narrowToTokenObject
    - stfk_CopyTokenPublicKey
    - stfk_CopyTokenAttributes
    - stfk_CopyTokenSecretKey
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV sftk_CopyTokenObject(SFTKObject *destObject, SFTKObject *srcObject)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sftk_narrowToSessionObject
      Src: /src/nss/lib/softoken/pkcs11u.c:1701,1
    - Dst: sftk_CopyTokenObject
      Src: /src/nss/lib/softoken/pkcs11u.c:1706,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/pkcs11u.c:1709,1
    - Dst: sftk_hasAttribute
      Src: /src/nss/lib/softoken/pkcs11u.c:1714,1
    - Dst: sftk_NewAttribute
      Src: /src/nss/lib/softoken/pkcs11u.c:1717,1
    - Dst: sftk_attr_expand
      Src: /src/nss/lib/softoken/pkcs11u.c:1718,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/pkcs11u.c:1720,1
    - Dst: sftk_AddAttribute
      Src: /src/nss/lib/softoken/pkcs11u.c:1723,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/pkcs11u.c:1729,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - destObject
    - srcObject
    argTypes:
    - SFTKObject*
    - SFTKObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1732
      start: 1697
    functionDepth: 7
    functionLinenumber: 1697
    functionLinenumberEnd: 1732
    functionName: sftk_CopyObject
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 2
    functionsReached:
    - sftk_hasAttribute
    - PZ_Unlock
    - sftk_narrowToSessionObject
    - sftk_NewAttribute
    - sftk_attr_expand
    - PZ_Lock
    - sftk_CopyTokenObject
    - sftk_AddAttribute
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV sftk_CopyObject(SFTKObject *destObject, SFTKObject *srcObject)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/pkcs11u.c:1743,1
    - Dst: sftk_ReferenceObject
      Src: /src/nss/lib/softoken/pkcs11u.c:1750,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - list
    - object
    argTypes:
    - SFTKObjectListElement**
    - SFTKObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1754
      start: 1739
    functionDepth: 2
    functionLinenumber: 1739
    functionLinenumberEnd: 1754
    functionName: AddToList
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - sftk_ReferenceObject
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV AddToList(SFTKObjectListElement **list, SFTKObject *object)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11u.c:1763,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/softoken/pkcs11u.c:1768,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11u.c:1770,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11u.c:1774,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - object
    - theTemplate
    - count
    argTypes:
    - SFTKObject*
    - CK_ATTRIBUTE_PTR
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1778
      start: 1757
    functionDepth: 4
    functionLinenumber: 1757
    functionLinenumberEnd: 1778
    functionName: sftk_objectMatch
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 0
    functionsReached:
    - PORT_Memcmp
    - sftk_FindAttribute
    - sftk_FreeAttribute
    linkageType: ''
    returnType: PRBool
    signature: PRBool sftk_objectMatch(SFTKObject *object, CK_ATTRIBUTE_PTR theTemplate,
      int count)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/pkcs11u.c:1792,1
    - Dst: sftk_objectMatch
      Src: /src/nss/lib/softoken/pkcs11u.c:1795,1
    - Dst: sftk_isTrue
      Src: /src/nss/lib/softoken/pkcs11u.c:1797,1
    - Dst: sftk_addHandle
      Src: /src/nss/lib/softoken/pkcs11u.c:1799,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/pkcs11u.c:1803,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 7
    argNames:
    - search
    - head
    - size
    - lock
    - theTemplate
    - count
    - isLoggedIn
    argTypes:
    - SFTKSearchResults*
    - SFTKObject**
    - unsigned int
    - PZLock*
    - CK_ATTRIBUTE_PTR
    - int
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1805
      start: 1783
    functionDepth: 5
    functionLinenumber: 1783
    functionLinenumberEnd: 1805
    functionName: sftk_searchObjectList
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 1
    functionsReached:
    - sftk_isTrue
    - PZ_Unlock
    - PZ_Lock
    - sftk_addHandle
    - sftk_objectMatch
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftk_searchObjectList(SFTKSearchResults *search, SFTKObject
      **head,\n                      unsigned int size, PZLock *lock, CK_ATTRIBUTE_PTR
      theTemplate,\n                      int count, PRBool isLoggedIn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11u.c:1815,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/pkcs11u.c:1816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - objectList
    argTypes:
    - SFTKObjectListElement*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1818
      start: 1810
    functionDepth: 4
    functionLinenumber: 1810
    functionLinenumberEnd: 1818
    functionName: sftk_FreeObjectListElement
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - sftk_FreeObject
    linkageType: ''
    returnType: SFTKObjectListElement
    signature: 'SFTKObjectListElement *

      sftk_FreeObjectListElement(SFTKObjectListElement *objectList)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sftk_FreeObjectListElement
      Src: /src/nss/lib/softoken/pkcs11u.c:1826,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - objectList
    argTypes:
    - SFTKObjectListElement*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1828
      start: 1821
    functionDepth: 5
    functionLinenumber: 1821
    functionLinenumberEnd: 1828
    functionName: sftk_FreeObjectList
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 0
    functionsReached:
    - sftk_FreeObjectListElement
    linkageType: ''
    returnType: void
    signature: void sftk_FreeObjectList(SFTKObjectListElement *objectList)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/pkcs11u.c:1837,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/pkcs11u.c:1839,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - search
    argTypes:
    - SFTKSearchResults*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1840
      start: 1833
    functionDepth: 0
    functionLinenumber: 1833
    functionLinenumberEnd: 1840
    functionName: sftk_FreeSearch
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 3
    functionsReached:
    - PORT_Free
    linkageType: ''
    returnType: void
    signature: void sftk_FreeSearch(SFTKSearchResults *search)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - slot
    - session
    argTypes:
    - SFTKSlot*
    - SFTKSession*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1866
      start: 1848
    functionDepth: 0
    functionLinenumber: 1848
    functionLinenumberEnd: 1866
    functionName: sftk_update_state
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sftk_update_state(SFTKSlot *slot, SFTKSession *session)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SFTK_SESSION_LOCK
      Src: /src/nss/lib/softoken/pkcs11u.c:1876,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/pkcs11u.c:1877,1
    - Dst: sftk_update_state
      Src: /src/nss/lib/softoken/pkcs11u.c:1879,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/pkcs11u.c:1881,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - slot
    argTypes:
    - SFTKSlot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1883
      start: 1869
    functionDepth: 1
    functionLinenumber: 1869
    functionLinenumberEnd: 1883
    functionName: sftk_update_all_states
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 3
    functionsReached:
    - sftk_update_state
    - PZ_Unlock
    - PZ_Lock
    - SFTK_SESSION_LOCK
    linkageType: ''
    returnType: void
    signature: void sftk_update_all_states(SFTKSlot *slot)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11u.c:1898,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/pkcs11u.c:1901,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - context
    argTypes:
    - SFTKSessionContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1902
      start: 1888
    functionDepth: 4
    functionLinenumber: 1888
    functionLinenumberEnd: 1902
    functionName: sftk_FreeContext
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 8
    functionsReached:
    - PORT_Free
    - sftk_FreeObject
    linkageType: ''
    returnType: void
    signature: void sftk_FreeContext(SFTKSessionContext *context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PZ_NewLock
      Src: /src/nss/lib/softoken/pkcs11u.c:1918,1
    - Dst: sftk_update_state
      Src: /src/nss/lib/softoken/pkcs11u.c:1930,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 6
    argNames:
    - session
    - slot
    - slotID
    - notify
    - pApplication
    - flags
    argTypes:
    - SFTKSession*
    - SFTKSlot*
    - CK_SLOT_ID
    - CK_NOTIFY
    - CK_VOID_PTR
    - CK_FLAGS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1934
      start: 1908
    functionDepth: 1
    functionLinenumber: 1908
    functionLinenumberEnd: 1934
    functionName: sftk_InitSession
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 1
    functionsReached:
    - PZ_NewLock
    - sftk_update_state
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftk_InitSession(SFTKSession *session, SFTKSlot *slot, CK_SLOT_ID
      slotID,\n                 CK_NOTIFY notify, CK_VOID_PTR pApplication, CK_FLAGS
      flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sftk_SlotFromID
      Src: /src/nss/lib/softoken/pkcs11u.c:1944,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/pkcs11u.c:1950,1
    - Dst: sftk_InitSession
      Src: /src/nss/lib/softoken/pkcs11u.c:1954,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/pkcs11u.c:1956,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - slotID
    - notify
    - pApplication
    - flags
    argTypes:
    - CK_SLOT_ID
    - CK_NOTIFY
    - CK_VOID_PTR
    - CK_FLAGS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1960
      start: 1939
    functionDepth: 3
    functionLinenumber: 1939
    functionLinenumberEnd: 1960
    functionName: sftk_NewSession
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 1
    functionsReached:
    - PORT_Alloc
    - sftk_SlotFromID
    - sftk_InitSession
    - PORT_Free
    linkageType: ''
    returnType: SFTKSession
    signature: "SFTKSession *\nsftk_NewSession(CK_SLOT_ID slotID, CK_NOTIFY notify,
      CK_VOID_PTR pApplication,\n                CK_FLAGS flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sftk_DeleteObject
      Src: /src/nss/lib/softoken/pkcs11u.c:1975,1
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/softoken/pkcs11u.c:1977,1
    - Dst: sftk_FreeContext
      Src: /src/nss/lib/softoken/pkcs11u.c:1979,1
    - Dst: sftk_FreeContext
      Src: /src/nss/lib/softoken/pkcs11u.c:1982,1
    - Dst: sftk_FreeContext
      Src: /src/nss/lib/softoken/pkcs11u.c:1985,1
    - Dst: sftk_FreeSearch
      Src: /src/nss/lib/softoken/pkcs11u.c:1988,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - session
    argTypes:
    - SFTKSession*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1990
      start: 1963
    functionDepth: 5
    functionLinenumber: 1963
    functionLinenumberEnd: 1990
    functionName: sftk_ClearSession
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 1
    functionsReached:
    - sftk_FreeSearch
    - PZ_DestroyLock
    - sftk_DeleteObject
    - sftk_FreeContext
    linkageType: ''
    returnType: void
    signature: void sftk_ClearSession(SFTKSession *session)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sftk_ClearSession
      Src: /src/nss/lib/softoken/pkcs11u.c:1996,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/pkcs11u.c:1997,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - session
    argTypes:
    - SFTKSession*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1998
      start: 1993
    functionDepth: 6
    functionLinenumber: 1993
    functionLinenumberEnd: 1998
    functionName: sftk_DestroySession
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 2
    functionsReached:
    - sftk_ClearSession
    - PORT_Free
    linkageType: ''
    returnType: void
    signature: void sftk_DestroySession(SFTKSession *session)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sftk_SlotFromSessionHandle
      Src: /src/nss/lib/softoken/pkcs11u.c:2007,1
    - Dst: SFTK_SESSION_LOCK
      Src: /src/nss/lib/softoken/pkcs11u.c:2013,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/pkcs11u.c:2015,1
    - Dst: sftkqueue_find
      Src: /src/nss/lib/softoken/pkcs11u.c:2016,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/pkcs11u.c:2017,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - handle
    argTypes:
    - CK_SESSION_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2020
      start: 2004
    functionDepth: 4
    functionLinenumber: 2004
    functionLinenumberEnd: 2020
    functionName: sftk_SessionFromHandle
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 36
    functionsReached:
    - PZ_Unlock
    - sftkqueue_find
    - sftk_SlotFromSessionHandle
    - PZ_Lock
    - SFTK_SESSION_LOCK
    linkageType: ''
    returnType: SFTKSession
    signature: 'SFTKSession *

      sftk_SessionFromHandle(CK_SESSION_HANDLE handle)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - session
    argTypes:
    - SFTKSession*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2031
      start: 2027
    functionDepth: 0
    functionLinenumber: 2027
    functionLinenumberEnd: 2031
    functionName: sftk_FreeSession
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 49
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sftk_FreeSession(SFTKSession *session)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Realloc
      Src: /src/nss/lib/softoken/pkcs11u.c:2041,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - search
    - handle
    argTypes:
    - SFTKSearchResults*
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2049
      start: 2033
    functionDepth: 0
    functionLinenumber: 2033
    functionLinenumberEnd: 2049
    functionName: sftk_addHandle
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 1
    functionsReached:
    - PORT_Realloc
    linkageType: ''
    returnType: void
    signature: void sftk_addHandle(SFTKSearchResults *search, CK_OBJECT_HANDLE handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sftk_getDBForTokenObject
      Src: /src/nss/lib/softoken/pkcs11u.c:2055,1
    - Dst: sftkdb_GetAttributeValue
      Src: /src/nss/lib/softoken/pkcs11u.c:2063,1
    - Dst: sftk_freeDB
      Src: /src/nss/lib/softoken/pkcs11u.c:2064,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - slot
    - handle
    - objClass
    argTypes:
    - SFTKSlot*
    - CK_OBJECT_HANDLE
    - CK_OBJECT_CLASS*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2066
      start: 2051
    functionDepth: 0
    functionLinenumber: 2051
    functionLinenumberEnd: 2066
    functionName: handleToClass
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 0
    functionsReached:
    - sftk_freeDB
    - sftk_getDBForTokenObject
    - sftkdb_GetAttributeValue
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV handleToClass(SFTKSlot *slot, CK_OBJECT_HANDLE handle,\n              CK_OBJECT_CLASS
      *objClass)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sftk_GetObjectFromList
      Src: /src/nss/lib/softoken/pkcs11u.c:2075,1
    - Dst: handleToClass
      Src: /src/nss/lib/softoken/pkcs11u.c:2084,1
    - Dst: sftk_isFIPS
      Src: /src/nss/lib/softoken/pkcs11u.c:2089,1
    - Dst: PZ_NewLock
      Src: /src/nss/lib/softoken/pkcs11u.c:2093,1
    - Dst: sftk_DestroyObject
      Src: /src/nss/lib/softoken/pkcs11u.c:2102,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 3
    argNames:
    - slot
    - dbKey
    - handle
    argTypes:
    - SFTKSlot*
    - SECItem*
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2104
      start: 2068
    functionDepth: 3
    functionLinenumber: 2068
    functionLinenumberEnd: 2104
    functionName: sftk_NewTokenObject
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 2
    functionsReached:
    - sftk_GetObjectFromList
    - sftk_DestroyObject
    - sftk_isFIPS
    - PZ_NewLock
    - handleToClass
    linkageType: ''
    returnType: SFTKObject
    signature: 'SFTKObject *

      sftk_NewTokenObject(SFTKSlot *slot, SECItem *dbKey, CK_OBJECT_HANDLE handle)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sftk_narrowToTokenObject
      Src: /src/nss/lib/softoken/pkcs11u.c:2111,1
    - Dst: sftk_DestroySessionObjectData
      Src: /src/nss/lib/softoken/pkcs11u.c:2114,1
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/softoken/pkcs11u.c:2115,1
    - Dst: sftk_tokenKeyLock
      Src: /src/nss/lib/softoken/pkcs11u.c:2119,1
    - Dst: sftk_lookupTokenKeyByHandle
      Src: /src/nss/lib/softoken/pkcs11u.c:2120,1
    - Dst: sftk_tokenKeyUnlock
      Src: /src/nss/lib/softoken/pkcs11u.c:2122,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/pkcs11u.c:2125,1
    - Dst: sftk_tokenKeyUnlock
      Src: /src/nss/lib/softoken/pkcs11u.c:2126,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - obj
    argTypes:
    - SFTKObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2132
      start: 2106
    functionDepth: 2
    functionLinenumber: 2106
    functionLinenumberEnd: 2132
    functionName: sftk_convertSessionToToken
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 1
    functionsReached:
    - sftk_tokenKeyLock
    - sftk_narrowToTokenObject
    - SECITEM_CopyItem
    - sftk_DestroySessionObjectData
    - sftk_tokenKeyUnlock
    - PZ_DestroyLock
    - sftk_lookupTokenKeyByHandle
    linkageType: ''
    returnType: SFTKTokenObject
    signature: 'SFTKTokenObject *

      sftk_convertSessionToToken(SFTKObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sftk_isToken
      Src: /src/nss/lib/softoken/pkcs11u.c:2137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - SFTKObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2138
      start: 2134
    functionDepth: 1
    functionLinenumber: 2134
    functionLinenumberEnd: 2138
    functionName: sftk_narrowToSessionObject
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 12
    functionsReached:
    - sftk_isToken
    linkageType: ''
    returnType: SFTKSessionObject
    signature: 'SFTKSessionObject *

      sftk_narrowToSessionObject(SFTKObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sftk_isToken
      Src: /src/nss/lib/softoken/pkcs11u.c:2143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - obj
    argTypes:
    - SFTKObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2144
      start: 2140
    functionDepth: 1
    functionLinenumber: 2140
    functionLinenumberEnd: 2144
    functionName: sftk_narrowToTokenObject
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 8
    functionsReached:
    - sftk_isToken
    linkageType: ''
    returnType: SFTKTokenObject
    signature: 'SFTKTokenObject *

      sftk_narrowToTokenObject(SFTKObject *obj)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_STATIC_ASSERT
      Src: /src/nss/lib/softoken/pkcs11u.c:2153,1
    - Dst: PORT_CT_NOT_ZERO
      Src: /src/nss/lib/softoken/pkcs11u.c:2154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - rv
    argTypes:
    - CK_RV
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2155
      start: 2150
    functionDepth: 1
    functionLinenumber: 2150
    functionLinenumberEnd: 2155
    functionName: sftk_CKRVToMask
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 5
    functionsReached:
    - PORT_CT_NOT_ZERO
    - PR_STATIC_ASSERT
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int sftk_CKRVToMask(CK_RV rv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/pkcs11u.c:2163,1
    - Dst: PORT_CT_DUPLICATE_MSB_TO_ALL
      Src: /src/nss/lib/softoken/pkcs11u.c:2168,1
    - Dst: PORT_CT_NOT_ZERO
      Src: /src/nss/lib/softoken/pkcs11u.c:2170,1
    - Dst: PORT_CT_DUPLICATE_MSB_TO_ALL
      Src: /src/nss/lib/softoken/pkcs11u.c:2175,1
    - Dst: PORT_CT_SEL
      Src: /src/nss/lib/softoken/pkcs11u.c:2179,1
    - Dst: PORT_CT_DUPLICATE_MSB_TO_ALL
      Src: /src/nss/lib/softoken/pkcs11u.c:2189,1
    - Dst: PORT_CT_SEL
      Src: /src/nss/lib/softoken/pkcs11u.c:2192,1
    - Dst: PORT_CT_SEL
      Src: /src/nss/lib/softoken/pkcs11u.c:2194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - pBuf
    - bufLen
    - blockSize
    - outPadSize
    argTypes:
    - CK_BYTE_PTR
    - unsigned int
    - unsigned int
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2195
      start: 2159
    functionDepth: 1
    functionLinenumber: 2159
    functionLinenumberEnd: 2195
    functionName: sftk_CheckCBCPadding
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 5
    functionsReached:
    - PORT_Assert
    - PORT_CT_NOT_ZERO
    - PORT_CT_SEL
    - PORT_CT_DUPLICATE_MSB_TO_ALL
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sftk_CheckCBCPadding(CK_BYTE_PTR pBuf, unsigned int bufLen,\n
      \                    unsigned int blockSize, unsigned int *outPadSize)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_ASSERT
      Src: /src/nss/lib/softoken/pkcs11u.c:2205,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 5
    argNames:
    - integer
    - num_bits
    - littleEndian
    - output
    - output_len
    argTypes:
    - PRUint64
    - CK_ULONG
    - CK_BBOOL
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2217
      start: 2197
    functionDepth: 1
    functionLinenumber: 2197
    functionLinenumberEnd: 2217
    functionName: sftk_EncodeInteger
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 0
    functionsReached:
    - PR_ASSERT
    linkageType: ''
    returnType: void
    signature: "void sftk_EncodeInteger(PRUint64 integer, CK_ULONG num_bits, CK_BBOOL
      littleEndian,\n                   CK_BYTE_PTR output, CK_ULONG_PTR output_len)"
  - BBCount: 16
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 48
    argCount: 1
    argNames:
    - op
    argTypes:
    - CK_ATTRIBUTE_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2272
      start: 2219
    functionDepth: 0
    functionLinenumber: 2219
    functionLinenumberEnd: 2272
    functionName: sftk_AttributeToFlags
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: CK_FLAGS
    signature: CK_FLAGS sftk_AttributeToFlags(CK_ATTRIBUTE_TYPE op)
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - mech
    argTypes:
    - CK_MECHANISM_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2303
      start: 2281
    functionDepth: 0
    functionLinenumber: 2281
    functionLinenumberEnd: 2303
    functionName: sftk_GetHashTypeFromMechanism
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: HASH_HashType
    signature: HASH_HashType sftk_GetHashTypeFromMechanism(CK_MECHANISM_TYPE mech)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11u.c:2312,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11u.c:2325,1
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/softoken/pkcs11u.c:2330,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11u.c:2331,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - source
    argTypes:
    - SFTKObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2333
      start: 2309
    functionDepth: 4
    functionLinenumber: 2309
    functionLinenumberEnd: 2333
    functionName: sftk_quickGetECCCurveOid
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 0
    functionsReached:
    - SECOID_FindOIDTag
    - sftk_FindAttribute
    - sftk_FreeAttribute
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag sftk_quickGetECCCurveOid(SFTKObject *source)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: sftk_GetULongAttribute
      Src: /src/nss/lib/softoken/pkcs11u.c:2358,1
    - Dst: sftk_quickGetECCCurveOid
      Src: /src/nss/lib/softoken/pkcs11u.c:2365,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/pkcs11u.c:2398,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/pkcs11u.c:2401,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 1
    argNames:
    - source
    argTypes:
    - SFTKObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2404
      start: 2341
    functionDepth: 5
    functionLinenumber: 2341
    functionLinenumberEnd: 2404
    functionName: sftk_getKeyLength
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 0
    functionsReached:
    - sftk_quickGetECCCurveOid
    - sftk_FreeAttribute
    - sftk_FindAttribute
    - sftk_GetULongAttribute
    linkageType: ''
    returnType: int
    signature: int sftk_getKeyLength(SFTKObject *source)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: sftk_Attribute2SecItem
      Src: /src/nss/lib/softoken/pkcs11u.c:2421,1
    - Dst: sftk_Attribute2SecItem
      Src: /src/nss/lib/softoken/pkcs11u.c:2426,1
    - Dst: sftk_VerifyDH_Prime
      Src: /src/nss/lib/softoken/pkcs11u.c:2430,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/softoken/pkcs11u.c:2432,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11u.c:2436,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/pkcs11u.c:2437,1
    - Dst: HASH_GetRawHashObject
      Src: /src/nss/lib/softoken/pkcs11u.c:2468,1
    - Dst: sftk_GetHashTypeFromMechanism
      Src: /src/nss/lib/softoken/pkcs11u.c:2468,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 46
    argCount: 4
    argNames:
    - slot
    - mech
    - mechInfo
    - source
    argTypes:
    - SFTKSlot*
    - CK_MECHANISM*
    - SFTKFIPSAlgorithmList*
    - SFTKObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2483
      start: 2410
    functionDepth: 5
    functionLinenumber: 2410
    functionLinenumberEnd: 2483
    functionName: sftk_handleSpecial
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 0
    functionsReached:
    - SECITEM_CompareItem
    - sftk_Attribute2SecItem
    - sftk_GetHashTypeFromMechanism
    - sftk_VerifyDH_Prime
    - HASH_GetRawHashObject
    - SECITEM_ZfreeItem
    linkageType: ''
    returnType: PRBool
    signature: "PRBool sftk_handleSpecial(SFTKSlot *slot, CK_MECHANISM *mech,\n                   SFTKFIPSAlgorithmList
      *mechInfo, SFTKObject *source)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sftk_isFIPS
      Src: /src/nss/lib/softoken/pkcs11u.c:2498,1
    - Dst: sftk_AttributeToFlags
      Src: /src/nss/lib/softoken/pkcs11u.c:2509,1
    - Dst: sftk_getKeyLength
      Src: /src/nss/lib/softoken/pkcs11u.c:2513,1
    - Dst: sftk_handleSpecial
      Src: /src/nss/lib/softoken/pkcs11u.c:2526,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 22
    argCount: 4
    argNames:
    - slot
    - mech
    - op
    - source
    argTypes:
    - SFTKSlot*
    - CK_MECHANISM*
    - CK_ATTRIBUTE_TYPE
    - SFTKObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2532
      start: 2486
    functionDepth: 6
    functionLinenumber: 2486
    functionLinenumberEnd: 2532
    functionName: sftk_operationIsFIPS
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 3
    functionsReached:
    - sftk_isFIPS
    - sftk_AttributeToFlags
    - sftk_getKeyLength
    - sftk_handleSpecial
    linkageType: ''
    returnType: PRBool
    signature: "PRBool sftk_operationIsFIPS(SFTKSlot *slot, CK_MECHANISM *mech, CK_ATTRIBUTE_TYPE
      op,\n                     SFTKObject *source)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sftk_NewObject
      Src: /src/nss/lib/softoken/pkcs11u.c:2559,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11u.c:2565,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11u.c:2570,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11u.c:2575,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11u.c:2580,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/pkcs11u.c:2585,1
    - Dst: sftk_getNextHandle
      Src: /src/nss/lib/softoken/pkcs11u.c:2593,1
    - Dst: sftk_AddObject
      Src: /src/nss/lib/softoken/pkcs11u.c:2595,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/pkcs11u.c:2597,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 1
    argNames:
    - slot
    argTypes:
    - SFTKSlot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2599
      start: 2539
    functionDepth: 4
    functionLinenumber: 2539
    functionLinenumberEnd: 2599
    functionName: sftk_CreateValidationObjects
    functionSourceFile: /src/nss/lib/softoken/pkcs11u.c
    functionUses: 1
    functionsReached:
    - sftk_AddObject
    - sftk_AddAttributeType
    - sftk_getNextHandle
    - sftk_NewObject
    - sftk_FreeObject
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV sftk_CreateValidationObjects(SFTKSlot *slot)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: LOCK_SQLITE
    functionSourceFile: /src/nss/lib/softoken/sdb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOCK_SQLITE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: UNLOCK_SQLITE
    functionSourceFile: /src/nss/lib/softoken/sdb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNLOCK_SQLITE()
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - err
    - count
    argTypes:
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 226
    functionName: sdb_done
    functionSourceFile: /src/nss/lib/softoken/sdb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sdb_done(int err, int *count)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _NSSUTIL_UTF8ToWide
      Src: /src/nss/lib/softoken/sdb.c:243,1
    - Dst: _wchmod
      Src: /src/nss/lib/softoken/sdb.c:247,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/sdb.c:248,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - filename
    - pmode
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 251
    functionName: sdb_chmod
    functionSourceFile: /src/nss/lib/softoken/sdb.c
    functionUses: 0
    functionsReached:
    - _NSSUTIL_UTF8ToWide
    - PORT_Free
    - _wchmod
    linkageType: ''
    returnType: int
    signature: int sdb_chmod(const char *filename, int pmode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - filename
    - ','
    - pmode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 254
    functionName: sdb_chmod
    functionSourceFile: /src/nss/lib/softoken/sdb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sdb_chmod(filename, pmode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetTempPathA
      Src: /src/nss/lib/softoken/sdb.c:273,1
    - Dst: strlen
      Src: /src/nss/lib/softoken/sdb.c:276,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/softoken/sdb.c:282,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 283
    functionName: sdb_getFallbackTempDir
    functionSourceFile: /src/nss/lib/softoken/sdb.c
    functionUses: 0
    functionsReached:
    - GetTempPathA
    - PORT_Strdup
    - strlen
    linkageType: ''
    returnType: char
    signature: 'char *

      sdb_getFallbackTempDir(void)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/softoken/sdb.c:301,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/lib/softoken/sdb.c:303,1
    - Dst: stat
      Src: /src/nss/lib/softoken/sdb.c:307,1
    - Dst: S_ISDIR
      Src: /src/nss/lib/softoken/sdb.c:309,1
    - Dst: access
      Src: /src/nss/lib/softoken/sdb.c:311,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/softoken/sdb.c:318,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 319
    functionName: sdb_getFallbackTempDir
    functionSourceFile: /src/nss/lib/softoken/sdb.c
    functionUses: 0
    functionsReached:
    - PR_ARRAY_SIZE
    - access
    - PR_GetEnvSecure
    - stat
    - PORT_Strdup
    - S_ISDIR
    linkageType: ''
    returnType: char
    signature: 'char *

      sdb_getFallbackTempDir(void)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_file_control
      Src: /src/nss/lib/softoken/sdb.c:338,1
    - Dst: sdb_getFallbackTempDir
      Src: /src/nss/lib/softoken/sdb.c:343,1
    - Dst: PORT_Strrchr
      Src: /src/nss/lib/softoken/sdb.c:350,1
    - Dst: PR_GetDirectorySeparator
      Src: /src/nss/lib/softoken/sdb.c:350,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/softoken/sdb.c:365,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:368,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - sqlDB
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 370
    functionName: sdb_getTempDir
    functionSourceFile: /src/nss/lib/softoken/sdb.c
    functionUses: 0
    functionsReached:
    - sqlite3_file_control
    - PORT_Strrchr
    - PR_GetDirectorySeparator
    - sdb_getFallbackTempDir
    - PORT_Strdup
    - sqlite3_free
    linkageType: ''
    returnType: char
    signature: 'char *

      sdb_getTempDir(sqlite3 *sqlDB)'
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 2
    argNames:
    - type
    - sqlerr
    argTypes:
    - sdbDataType
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 401
    functionName: sdb_mapSQLError
    functionSourceFile: /src/nss/lib/softoken/sdb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV sdb_mapSQLError(sdbDataType type, int sqlerr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/softoken/sdb.c:413,1
    - Dst: PR_GetDirectorySeparator
      Src: /src/nss/lib/softoken/sdb.c:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - directory
    - prefix
    - type
    - version
    argTypes:
    - char*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 417
    functionName: sdb_BuildFileName
    functionSourceFile: /src/nss/lib/softoken/sdb.c
    functionUses: 0
    functionsReached:
    - sqlite3_mprintf
    - PR_GetDirectorySeparator
    linkageType: ''
    returnType: char
    signature: "char *\nsdb_BuildFileName(const char *directory,\n                  const
      char *prefix, const char *type,\n                  int version)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PR_MillisecondsToInterval
      Src: /src/nss/lib/softoken/sdb.c:429,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/sdb.c:452,1
    - Dst: strlen
      Src: /src/nss/lib/softoken/sdb.c:454,1
    - Dst: strlen
      Src: /src/nss/lib/softoken/sdb.c:458,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/softoken/sdb.c:462,1
    - Dst: strcpy
      Src: /src/nss/lib/softoken/sdb.c:470,1
    - Dst: PR_GetDirectorySeparator
      Src: /src/nss/lib/softoken/sdb.c:471,1
    - Dst: PR_GetDirectorySeparator
      Src: /src/nss/lib/softoken/sdb.c:472,1
    - Dst: strcat
      Src: /src/nss/lib/softoken/sdb.c:477,1
    - Dst: mkdtemp
      Src: /src/nss/lib/softoken/sdb.c:478,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/sdb.c:479,1
    - Dst: strcat
      Src: /src/nss/lib/softoken/sdb.c:483,1
    - Dst: PR_IntervalNow
      Src: /src/nss/lib/softoken/sdb.c:494,1
    - Dst: PR_snprintf
      Src: /src/nss/lib/softoken/sdb.c:503,1
    - Dst: PR_Access
      Src: /src/nss/lib/softoken/sdb.c:505,1
    - Dst: PR_IntervalNow
      Src: /src/nss/lib/softoken/sdb.c:506,1
    - Dst: rmdir
      Src: /src/nss/lib/softoken/sdb.c:516,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/sdb.c:518,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 1
    argNames:
    - directory
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 522
    functionName: sdb_measureAccess
    functionSourceFile: /src/nss/lib/softoken/sdb.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PR_snprintf
    - rmdir
    - PR_MillisecondsToInterval
    - PORT_Free
    - PORT_ZAlloc
    - strcpy
    - PR_Access
    - PR_GetDirectorySeparator
    - mkdtemp
    - PR_IntervalNow
    - strcat
    - strlen
    linkageType: ''
    returnType: PRUint32
    signature: PRUint32 sdb_measureAccess(const char *directory)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/softoken/sdb.c:549,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/softoken/sdb.c:553,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:554,1
    - Dst: sdb_mapSQLError
      Src: /src/nss/lib/softoken/sdb.c:556,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/softoken/sdb.c:559,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/softoken/sdb.c:563,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:564,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/softoken/sdb.c:565,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/softoken/sdb.c:569,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:570,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/softoken/sdb.c:571,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/softoken/sdb.c:575,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:576,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/softoken/sdb.c:577,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/softoken/sdb.c:581,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:582,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 4
    argNames:
    - sqlDB
    - type
    - cacheTable
    - table
    argTypes:
    - sqlite3*
    - sdbDataType
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 542
    functionDepth: 1
    functionLinenumber: 542
    functionLinenumberEnd: 584
    functionName: sdb_buildCache
    functionSourceFile: /src/nss/lib/softoken/sdb.c
    functionUses: 0
    functionsReached:
    - sqlite3_mprintf
    - sqlite3_exec
    - sqlite3_free
    - sdb_mapSQLError
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sdb_buildCache(sqlite3 *sqlDB, sdbDataType type,\n               const
      char *cacheTable, const char *table)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/softoken/sdb.c:598,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/softoken/sdb.c:602,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:603,1
    - Dst: sdb_mapSQLError
      Src: /src/nss/lib/softoken/sdb.c:608,1
    - Dst: sdb_buildCache
      Src: /src/nss/lib/softoken/sdb.c:612,1
    - Dst: PR_IntervalNow
      Src: /src/nss/lib/softoken/sdb.c:616,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - sdb_p
    argTypes:
    - SDBPrivate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 590
    functionDepth: 2
    functionLinenumber: 590
    functionLinenumberEnd: 619
    functionName: sdb_updateCache
    functionSourceFile: /src/nss/lib/softoken/sdb.c
    functionUses: 0
    functionsReached:
    - sdb_mapSQLError
    - sqlite3_mprintf
    - PR_IntervalNow
    - sdb_buildCache
    - sqlite3_exec
    - sqlite3_free
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV sdb_updateCache(SDBPrivate *sdb_p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PR_EnterMonitor
      Src: /src/nss/lib/softoken/sdb.c:659,1
    - Dst: PR_GetCurrentThread
      Src: /src/nss/lib/softoken/sdb.c:666,1
    - Dst: PR_ExitMonitor
      Src: /src/nss/lib/softoken/sdb.c:669,1
    - Dst: PR_IntervalNow
      Src: /src/nss/lib/softoken/sdb.c:680,1
    - Dst: sdb_updateCache
      Src: /src/nss/lib/softoken/sdb.c:682,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - sdb_p
    - sqlDB
    - table
    argTypes:
    - SDBPrivate*
    - sqlite3**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 654
    functionDepth: 3
    functionLinenumber: 654
    functionLinenumberEnd: 693
    functionName: sdb_openDBLocal
    functionSourceFile: /src/nss/lib/softoken/sdb.c
    functionUses: 0
    functionsReached:
    - PR_EnterMonitor
    - sdb_updateCache
    - PR_ExitMonitor
    - PR_IntervalNow
    - PR_GetCurrentThread
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV sdb_openDBLocal(SDBPrivate *sdb_p, sqlite3 **sqlDB, const char
      **table)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_ExitMonitor
      Src: /src/nss/lib/softoken/sdb.c:701,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - sdb_p
    - sqlDB
    argTypes:
    - SDBPrivate*
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 696
    functionDepth: 0
    functionLinenumber: 696
    functionLinenumberEnd: 704
    functionName: sdb_closeDBLocal
    functionSourceFile: /src/nss/lib/softoken/sdb.c
    functionUses: 0
    functionsReached:
    - PR_ExitMonitor
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV sdb_closeDBLocal(SDBPrivate *sdb_p, sqlite3 *sqlDB)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _NSSUTIL_Access
      Src: /src/nss/lib/softoken/sdb.c:723,1
    - Dst: _NSSUTIL_Access
      Src: /src/nss/lib/softoken/sdb.c:723,1
    - Dst: sqlite3_open_v2
      Src: /src/nss/lib/softoken/sdb.c:729,1
    - Dst: sqlite3_busy_timeout
      Src: /src/nss/lib/softoken/sdb.c:734,1
    - Dst: sqlite3_close
      Src: /src/nss/lib/softoken/sdb.c:736,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - name
    - sqlDB
    - flags
    argTypes:
    - char*
    - sqlite3**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 709
    functionDepth: 1
    functionLinenumber: 709
    functionLinenumberEnd: 741
    functionName: sdb_openDB
    functionSourceFile: /src/nss/lib/softoken/sdb.c
    functionUses: 0
    functionsReached:
    - sqlite3_busy_timeout
    - _NSSUTIL_Access
    - sqlite3_open_v2
    - sqlite3_close
    linkageType: ''
    returnType: int
    signature: int sdb_openDB(const char *name, sqlite3 **sqlDB, int flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sdb_openDB
      Src: /src/nss/lib/softoken/sdb.c:754,1
    - Dst: PR_EnterMonitor
      Src: /src/nss/lib/softoken/sdb.c:762,1
    - Dst: PR_ExitMonitor
      Src: /src/nss/lib/softoken/sdb.c:769,1
    - Dst: sqlite3_close
      Src: /src/nss/lib/softoken/sdb.c:772,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - sdb_p
    - sqlDB
    argTypes:
    - SDBPrivate*
    - sqlite3**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 747
    functionDepth: 2
    functionLinenumber: 747
    functionLinenumberEnd: 776
    functionName: sdb_reopenDBLocal
    functionSourceFile: /src/nss/lib/softoken/sdb.c
    functionUses: 0
    functionsReached:
    - sqlite3_close
    - PR_ExitMonitor
    - PR_EnterMonitor
    - sdb_openDB
    linkageType: ''
    returnType: int
    signature: int sdb_reopenDBLocal(SDBPrivate *sdb_p, sqlite3 **sqlDB)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: LOCK_SQLITE
      Src: /src/nss/lib/softoken/sdb.c:799,1
    - Dst: sdb_openDBLocal
      Src: /src/nss/lib/softoken/sdb.c:801,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/softoken/sdb.c:806,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/softoken/sdb.c:808,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:811,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/softoken/sdb.c:821,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/softoken/sdb.c:823,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:825,1
    - Dst: sqlite3_prepare_v2
      Src: /src/nss/lib/softoken/sdb.c:830,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:831,1
    - Dst: sqlite3_bind_blob
      Src: /src/nss/lib/softoken/sdb.c:839,1
    - Dst: PORT_New
      Src: /src/nss/lib/softoken/sdb.c:843,1
    - Dst: UNLOCK_SQLITE
      Src: /src/nss/lib/softoken/sdb.c:850,1
    - Dst: sdb_mapSQLError
      Src: /src/nss/lib/softoken/sdb.c:853,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/softoken/sdb.c:857,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/softoken/sdb.c:858,1
    - Dst: sdb_closeDBLocal
      Src: /src/nss/lib/softoken/sdb.c:861,1
    - Dst: UNLOCK_SQLITE
      Src: /src/nss/lib/softoken/sdb.c:863,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 63
    argCount: 3
    argNames:
    - sdb
    - count
    - find
    argTypes:
    - SDB*
    - CK_ULONG
    - SDBFind**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 785
    functionDepth: 4
    functionLinenumber: 785
    functionLinenumberEnd: 865
    functionName: sdb_FindObjectsInit
    functionSourceFile: /src/nss/lib/softoken/sdb.c
    functionUses: 0
    functionsReached:
    - sqlite3_reset
    - sdb_openDBLocal
    - sqlite3_bind_blob
    - LOCK_SQLITE
    - sdb_closeDBLocal
    - sdb_mapSQLError
    - sqlite3_mprintf
    - sqlite3_prepare_v2
    - UNLOCK_SQLITE
    - PORT_New
    - sqlite3_finalize
    - sqlite3_free
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sdb_FindObjectsInit(SDB *sdb, const CK_ATTRIBUTE *template,
      CK_ULONG count,\n                    SDBFind **find)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: LOCK_SQLITE
      Src: /src/nss/lib/softoken/sdb.c:881,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/softoken/sdb.c:884,1
    - Dst: PR_Sleep
      Src: /src/nss/lib/softoken/sdb.c:886,1
    - Dst: sqlite3_column_int
      Src: /src/nss/lib/softoken/sdb.c:890,1
    - Dst: sdb_done
      Src: /src/nss/lib/softoken/sdb.c:894,1
    - Dst: UNLOCK_SQLITE
      Src: /src/nss/lib/softoken/sdb.c:901,1
    - Dst: sdb_mapSQLError
      Src: /src/nss/lib/softoken/sdb.c:903,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 5
    argNames:
    - sdb
    - sdbFind
    - object
    - arraySize
    - count
    argTypes:
    - SDB*
    - SDBFind*
    - CK_OBJECT_HANDLE*
    - CK_ULONG
    - CK_ULONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 867
    functionDepth: 1
    functionLinenumber: 867
    functionLinenumberEnd: 904
    functionName: sdb_FindObjects
    functionSourceFile: /src/nss/lib/softoken/sdb.c
    functionUses: 0
    functionsReached:
    - sqlite3_step
    - sdb_done
    - LOCK_SQLITE
    - sdb_mapSQLError
    - PR_Sleep
    - UNLOCK_SQLITE
    - sqlite3_column_int
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sdb_FindObjects(SDB *sdb, SDBFind *sdbFind, CK_OBJECT_HANDLE
      *object,\n                CK_ULONG arraySize, CK_ULONG *count)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LOCK_SQLITE
      Src: /src/nss/lib/softoken/sdb.c:914,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/softoken/sdb.c:916,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/softoken/sdb.c:917,1
    - Dst: sdb_closeDBLocal
      Src: /src/nss/lib/softoken/sdb.c:920,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/sdb.c:922,1
    - Dst: UNLOCK_SQLITE
      Src: /src/nss/lib/softoken/sdb.c:924,1
    - Dst: sdb_mapSQLError
      Src: /src/nss/lib/softoken/sdb.c:925,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - sdb
    - sdbFind
    argTypes:
    - SDB*
    - SDBFind*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 906
    functionDepth: 1
    functionLinenumber: 906
    functionLinenumberEnd: 926
    functionName: sdb_FindObjectsFinal
    functionSourceFile: /src/nss/lib/softoken/sdb.c
    functionUses: 0
    functionsReached:
    - sqlite3_reset
    - PORT_Free
    - sdb_closeDBLocal
    - LOCK_SQLITE
    - sdb_mapSQLError
    - UNLOCK_SQLITE
    - sqlite3_finalize
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV sdb_FindObjectsFinal(SDB *sdb, SDBFind *sdbFind)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: sdb_openDBLocal
      Src: /src/nss/lib/softoken/sdb.c:948,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/softoken/sdb.c:957,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:958,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/softoken/sdb.c:961,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/sdb.c:970,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/softoken/sdb.c:972,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:974,1
    - Dst: sqlite3_prepare_v2
      Src: /src/nss/lib/softoken/sdb.c:981,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:982,1
    - Dst: sqlite3_bind_int
      Src: /src/nss/lib/softoken/sdb.c:989,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/softoken/sdb.c:995,1
    - Dst: PR_Sleep
      Src: /src/nss/lib/softoken/sdb.c:997,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/sdb.c:1000,1
    - Dst: sqlite3_column_bytes
      Src: /src/nss/lib/softoken/sdb.c:1006,1
    - Dst: sqlite3_column_blob
      Src: /src/nss/lib/softoken/sdb.c:1007,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/softoken/sdb.c:1019,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/sdb.c:1030,1
    - Dst: sdb_done
      Src: /src/nss/lib/softoken/sdb.c:1036,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/softoken/sdb.c:1038,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/softoken/sdb.c:1039,1
    - Dst: sdb_mapSQLError
      Src: /src/nss/lib/softoken/sdb.c:1045,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/softoken/sdb.c:1052,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/softoken/sdb.c:1053,1
    - Dst: sdb_closeDBLocal
      Src: /src/nss/lib/softoken/sdb.c:1058,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 93
    argCount: 3
    argNames:
    - sdb
    - object_id
    - count
    argTypes:
    - SDB*
    - CK_OBJECT_HANDLE
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 928
    functionDepth: 4
    functionLinenumber: 928
    functionLinenumberEnd: 1061
    functionName: sdb_GetValidAttributeValueNoLock
    functionSourceFile: /src/nss/lib/softoken/sdb.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - sqlite3_bind_int
    - sqlite3_step
    - PORT_Memcpy
    - sqlite3_reset
    - sqlite3_column_blob
    - sdb_openDBLocal
    - PORT_Memcmp
    - sdb_done
    - sdb_closeDBLocal
    - sdb_mapSQLError
    - sqlite3_column_bytes
    - sqlite3_mprintf
    - sqlite3_prepare_v2
    - PR_Sleep
    - sqlite3_finalize
    - sqlite3_free
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sdb_GetValidAttributeValueNoLock(SDB *sdb, CK_OBJECT_HANDLE
      object_id,\n                                 CK_ATTRIBUTE *template, CK_ULONG
      count)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - sdb
    - attr
    argTypes:
    - SDB*
    - CK_ATTRIBUTE_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1083
      start: 1064
    functionDepth: 0
    functionLinenumber: 1064
    functionLinenumberEnd: 1083
    functionName: sdb_attributeExists
    functionSourceFile: /src/nss/lib/softoken/sdb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool sdb_attributeExists(SDB *sdb, CK_ATTRIBUTE_TYPE attr)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sdb_attributeExists
      Src: /src/nss/lib/softoken/sdb.c:1102,1
    - Dst: malloc
      Src: /src/nss/lib/softoken/sdb.c:1117,1
    - Dst: sdb_attributeExists
      Src: /src/nss/lib/softoken/sdb.c:1131,1
    - Dst: LOCK_SQLITE
      Src: /src/nss/lib/softoken/sdb.c:1140,1
    - Dst: sdb_GetValidAttributeValueNoLock
      Src: /src/nss/lib/softoken/sdb.c:1141,1
    - Dst: UNLOCK_SQLITE
      Src: /src/nss/lib/softoken/sdb.c:1142,1
    - Dst: free
      Src: /src/nss/lib/softoken/sdb.c:1163,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 48
    argCount: 3
    argNames:
    - sdb
    - object_id
    - count
    argTypes:
    - SDB*
    - CK_OBJECT_HANDLE
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1167
      start: 1085
    functionDepth: 5
    functionLinenumber: 1085
    functionLinenumberEnd: 1167
    functionName: sdb_GetAttributeValue
    functionSourceFile: /src/nss/lib/softoken/sdb.c
    functionUses: 0
    functionsReached:
    - malloc
    - free
    - LOCK_SQLITE
    - sdb_GetValidAttributeValueNoLock
    - sdb_attributeExists
    - UNLOCK_SQLITE
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sdb_GetAttributeValue(SDB *sdb, CK_OBJECT_HANDLE object_id,\n
      \                     CK_ATTRIBUTE *template, CK_ULONG count)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: LOCK_SQLITE
      Src: /src/nss/lib/softoken/sdb.c:1192,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/softoken/sdb.c:1193,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:1196,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/softoken/sdb.c:1197,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/softoken/sdb.c:1201,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:1203,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/softoken/sdb.c:1211,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:1212,1
    - Dst: UNLOCK_SQLITE
      Src: /src/nss/lib/softoken/sdb.c:1214,1
    - Dst: sdb_openDBLocal
      Src: /src/nss/lib/softoken/sdb.c:1217,1
    - Dst: sqlite3_prepare_v2
      Src: /src/nss/lib/softoken/sdb.c:1221,1
    - Dst: sqlite3_bind_blob
      Src: /src/nss/lib/softoken/sdb.c:1226,1
    - Dst: sqlite3_bind_blob
      Src: /src/nss/lib/softoken/sdb.c:1229,1
    - Dst: sqlite3_bind_int
      Src: /src/nss/lib/softoken/sdb.c:1235,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/softoken/sdb.c:1240,1
    - Dst: PR_Sleep
      Src: /src/nss/lib/softoken/sdb.c:1242,1
    - Dst: sdb_done
      Src: /src/nss/lib/softoken/sdb.c:1244,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:1248,1
    - Dst: sdb_mapSQLError
      Src: /src/nss/lib/softoken/sdb.c:1251,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/softoken/sdb.c:1255,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/softoken/sdb.c:1256,1
    - Dst: sdb_closeDBLocal
      Src: /src/nss/lib/softoken/sdb.c:1260,1
    - Dst: UNLOCK_SQLITE
      Src: /src/nss/lib/softoken/sdb.c:1263,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 74
    argCount: 3
    argNames:
    - sdb
    - object_id
    - count
    argTypes:
    - SDB*
    - CK_OBJECT_HANDLE
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1265
      start: 1170
    functionDepth: 4
    functionLinenumber: 1170
    functionLinenumberEnd: 1265
    functionName: sdb_SetAttributeValue
    functionSourceFile: /src/nss/lib/softoken/sdb.c
    functionUses: 0
    functionsReached:
    - sqlite3_bind_int
    - sqlite3_step
    - sqlite3_reset
    - sdb_done
    - sdb_openDBLocal
    - sqlite3_bind_blob
    - LOCK_SQLITE
    - sdb_closeDBLocal
    - sdb_mapSQLError
    - sqlite3_mprintf
    - sqlite3_prepare_v2
    - PR_Sleep
    - UNLOCK_SQLITE
    - sqlite3_finalize
    - sqlite3_free
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sdb_SetAttributeValue(SDB *sdb, CK_OBJECT_HANDLE object_id,\n
      \                     const CK_ATTRIBUTE *template, CK_ULONG count)"
  - BBCount: 166
    BranchProfiles: []
    Callsites:
    - Dst: sdb_GetValidAttributeValueNoLock
      Src: /src/nss/lib/softoken/sdb.c:1276,1
    - Dst: PR_Now
      Src: /src/nss/lib/softoken/sdb.c:1298,1
    - Dst: sdb_objectExists
      Src: /src/nss/lib/softoken/sdb.c:1312,1
    - Dst: sdb_getObjectId
      Src: /src/nss/lib/softoken/sdb.c:1327,1
    - Dst: LOCK_SQLITE
      Src: /src/nss/lib/softoken/sdb.c:1356,1
    - Dst: sdb_objectExists
      Src: /src/nss/lib/softoken/sdb.c:1358,1
    - Dst: sdb_getObjectId
      Src: /src/nss/lib/softoken/sdb.c:1361,1
    - Dst: UNLOCK_SQLITE
      Src: /src/nss/lib/softoken/sdb.c:1364,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/softoken/sdb.c:1367,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/softoken/sdb.c:1368,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/softoken/sdb.c:1371,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:1372,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/softoken/sdb.c:1374,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:1375,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:1381,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:1384,1
    - Dst: UNLOCK_SQLITE
      Src: /src/nss/lib/softoken/sdb.c:1386,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/softoken/sdb.c:1389,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:1390,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:1391,1
    - Dst: sdb_openDBLocal
      Src: /src/nss/lib/softoken/sdb.c:1392,1
    - Dst: sqlite3_prepare_v2
      Src: /src/nss/lib/softoken/sdb.c:1396,1
    - Dst: sqlite3_bind_int
      Src: /src/nss/lib/softoken/sdb.c:1399,1
    - Dst: sqlite3_bind_blob
      Src: /src/nss/lib/softoken/sdb.c:1404,1
    - Dst: sqlite3_bind_blob
      Src: /src/nss/lib/softoken/sdb.c:1407,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/softoken/sdb.c:1415,1
    - Dst: PR_Sleep
      Src: /src/nss/lib/softoken/sdb.c:1417,1
    - Dst: sdb_done
      Src: /src/nss/lib/softoken/sdb.c:1419,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:1423,1
    - Dst: sdb_mapSQLError
      Src: /src/nss/lib/softoken/sdb.c:1426,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/softoken/sdb.c:1430,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/softoken/sdb.c:1431,1
    - Dst: sdb_closeDBLocal
      Src: /src/nss/lib/softoken/sdb.c:1435,1
    - Dst: UNLOCK_SQLITE
      Src: /src/nss/lib/softoken/sdb.c:1437,1
    - Dst: LOCK_SQLITE
      Src: /src/nss/lib/softoken/sdb.c:1462,1
    - Dst: sdb_openDBLocal
      Src: /src/nss/lib/softoken/sdb.c:1463,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/softoken/sdb.c:1467,1
    - Dst: sqlite3_prepare_v2
      Src: /src/nss/lib/softoken/sdb.c:1472,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:1473,1
    - Dst: sqlite3_bind_int
      Src: /src/nss/lib/softoken/sdb.c:1477,1
    - Dst: sqlite3_bind_text
      Src: /src/nss/lib/softoken/sdb.c:1479,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/softoken/sdb.c:1480,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/softoken/sdb.c:1486,1
    - Dst: PR_Sleep
      Src: /src/nss/lib/softoken/sdb.c:1488,1
    - Dst: sdb_done
      Src: /src/nss/lib/softoken/sdb.c:1490,1
    - Dst: sdb_mapSQLError
      Src: /src/nss/lib/softoken/sdb.c:1494,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/softoken/sdb.c:1498,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/softoken/sdb.c:1499,1
    - Dst: sdb_closeDBLocal
      Src: /src/nss/lib/softoken/sdb.c:1503,1
    - Dst: UNLOCK_SQLITE
      Src: /src/nss/lib/softoken/sdb.c:1506,1
    - Dst: sdb_destroyAnyObject
      Src: /src/nss/lib/softoken/sdb.c:1514,1
    - Dst: sdb_destroyAnyObject
      Src: /src/nss/lib/softoken/sdb.c:1520,1
    - Dst: LOCK_SQLITE
      Src: /src/nss/lib/softoken/sdb.c:1546,1
    - Dst: sdb_openDB
      Src: /src/nss/lib/softoken/sdb.c:1549,1
    - Dst: sqlite3_prepare_v2
      Src: /src/nss/lib/softoken/sdb.c:1554,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/softoken/sdb.c:1557,1
    - Dst: PR_Sleep
      Src: /src/nss/lib/softoken/sdb.c:1559,1
    - Dst: sdb_done
      Src: /src/nss/lib/softoken/sdb.c:1563,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/softoken/sdb.c:1566,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/softoken/sdb.c:1567,1
    - Dst: sdb_mapSQLError
      Src: /src/nss/lib/softoken/sdb.c:1571,1
    - Dst: PR_EnterMonitor
      Src: /src/nss/lib/softoken/sdb.c:1579,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/sdb.c:1580,1
    - Dst: PR_GetCurrentThread
      Src: /src/nss/lib/softoken/sdb.c:1582,1
    - Dst: PR_ExitMonitor
      Src: /src/nss/lib/softoken/sdb.c:1583,1
    - Dst: sqlite3_close
      Src: /src/nss/lib/softoken/sdb.c:1588,1
    - Dst: UNLOCK_SQLITE
      Src: /src/nss/lib/softoken/sdb.c:1592,1
    - Dst: PR_EnterMonitor
      Src: /src/nss/lib/softoken/sdb.c:1617,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/sdb.c:1618,1
    - Dst: PR_ExitMonitor
      Src: /src/nss/lib/softoken/sdb.c:1620,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/sdb.c:1623,1
    - Dst: PR_GetCurrentThread
      Src: /src/nss/lib/softoken/sdb.c:1623,1
    - Dst: PR_GetCurrentThread
      Src: /src/nss/lib/softoken/sdb.c:1624,1
    - Dst: PR_ExitMonitor
      Src: /src/nss/lib/softoken/sdb.c:1625,1
    - Dst: PR_ExitMonitor
      Src: /src/nss/lib/softoken/sdb.c:1632,1
    - Dst: sqlite3_prepare_v2
      Src: /src/nss/lib/softoken/sdb.c:1634,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/softoken/sdb.c:1637,1
    - Dst: PR_Sleep
      Src: /src/nss/lib/softoken/sdb.c:1639,1
    - Dst: sdb_done
      Src: /src/nss/lib/softoken/sdb.c:1641,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/softoken/sdb.c:1646,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/softoken/sdb.c:1647,1
    - Dst: PR_EnterMonitor
      Src: /src/nss/lib/softoken/sdb.c:1652,1
    - Dst: sdb_updateCache
      Src: /src/nss/lib/softoken/sdb.c:1653,1
    - Dst: PR_ExitMonitor
      Src: /src/nss/lib/softoken/sdb.c:1654,1
    - Dst: sdb_mapSQLError
      Src: /src/nss/lib/softoken/sdb.c:1657,1
    - Dst: sqlite3_close
      Src: /src/nss/lib/softoken/sdb.c:1661,1
    - Dst: LOCK_SQLITE
      Src: /src/nss/lib/softoken/sdb.c:1671,1
    - Dst: sdb_complete
      Src: /src/nss/lib/softoken/sdb.c:1672,1
    - Dst: UNLOCK_SQLITE
      Src: /src/nss/lib/softoken/sdb.c:1673,1
    - Dst: LOCK_SQLITE
      Src: /src/nss/lib/softoken/sdb.c:1682,1
    - Dst: sdb_complete
      Src: /src/nss/lib/softoken/sdb.c:1683,1
    - Dst: UNLOCK_SQLITE
      Src: /src/nss/lib/softoken/sdb.c:1684,1
    - Dst: LOCK_SQLITE
      Src: /src/nss/lib/softoken/sdb.c:1702,1
    - Dst: sdb_openDBLocal
      Src: /src/nss/lib/softoken/sdb.c:1703,1
    - Dst: sqlite3_prepare_v2
      Src: /src/nss/lib/softoken/sdb.c:1709,1
    - Dst: sdb_reopenDBLocal
      Src: /src/nss/lib/softoken/sdb.c:1715,1
    - Dst: sqlite3_prepare_v2
      Src: /src/nss/lib/softoken/sdb.c:1719,1
    - Dst: sqlite3_bind_text
      Src: /src/nss/lib/softoken/sdb.c:1723,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/softoken/sdb.c:1723,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/softoken/sdb.c:1725,1
    - Dst: PR_Sleep
      Src: /src/nss/lib/softoken/sdb.c:1727,1
    - Dst: sqlite3_column_bytes
      Src: /src/nss/lib/softoken/sdb.c:1732,1
    - Dst: sqlite3_column_blob
      Src: /src/nss/lib/softoken/sdb.c:1737,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/sdb.c:1738,1
    - Dst: sqlite3_column_bytes
      Src: /src/nss/lib/softoken/sdb.c:1741,1
    - Dst: sqlite3_column_blob
      Src: /src/nss/lib/softoken/sdb.c:1746,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/sdb.c:1747,1
    - Dst: sdb_done
      Src: /src/nss/lib/softoken/sdb.c:1751,1
    - Dst: sdb_mapSQLError
      Src: /src/nss/lib/softoken/sdb.c:1756,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/softoken/sdb.c:1763,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/softoken/sdb.c:1764,1
    - Dst: sdb_closeDBLocal
      Src: /src/nss/lib/softoken/sdb.c:1768,1
    - Dst: UNLOCK_SQLITE
      Src: /src/nss/lib/softoken/sdb.c:1770,1
    - Dst: LOCK_SQLITE
      Src: /src/nss/lib/softoken/sdb.c:1798,1
    - Dst: sdb_openDBLocal
      Src: /src/nss/lib/softoken/sdb.c:1799,1
    - Dst: tableExists
      Src: /src/nss/lib/softoken/sdb.c:1804,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/softoken/sdb.c:1805,1
    - Dst: sqlite3_prepare_v2
      Src: /src/nss/lib/softoken/sdb.c:1812,1
    - Dst: sqlite3_bind_text
      Src: /src/nss/lib/softoken/sdb.c:1815,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/softoken/sdb.c:1815,1
    - Dst: sqlite3_bind_blob
      Src: /src/nss/lib/softoken/sdb.c:1818,1
    - Dst: sqlite3_bind_blob
      Src: /src/nss/lib/softoken/sdb.c:1822,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/softoken/sdb.c:1829,1
    - Dst: PR_Sleep
      Src: /src/nss/lib/softoken/sdb.c:1831,1
    - Dst: sdb_done
      Src: /src/nss/lib/softoken/sdb.c:1833,1
    - Dst: sdb_mapSQLError
      Src: /src/nss/lib/softoken/sdb.c:1838,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/softoken/sdb.c:1842,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/softoken/sdb.c:1843,1
    - Dst: sdb_closeDBLocal
      Src: /src/nss/lib/softoken/sdb.c:1847,1
    - Dst: UNLOCK_SQLITE
      Src: /src/nss/lib/softoken/sdb.c:1849,1
    - Dst: LOCK_SQLITE
      Src: /src/nss/lib/softoken/sdb.c:1869,1
    - Dst: sdb_openDBLocal
      Src: /src/nss/lib/softoken/sdb.c:1870,1
    - Dst: tableExists
      Src: /src/nss/lib/softoken/sdb.c:1875,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/softoken/sdb.c:1877,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/softoken/sdb.c:1882,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:1883,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/softoken/sdb.c:1890,1
    - Dst: sdb_mapSQLError
      Src: /src/nss/lib/softoken/sdb.c:1896,1
    - Dst: sdb_closeDBLocal
      Src: /src/nss/lib/softoken/sdb.c:1900,1
    - Dst: UNLOCK_SQLITE
      Src: /src/nss/lib/softoken/sdb.c:1903,1
    - Dst: sqlite3_close
      Src: /src/nss/lib/softoken/sdb.c:1914,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/sdb.c:1915,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:1917,1
    - Dst: PR_DestroyMonitor
      Src: /src/nss/lib/softoken/sdb.c:1920,1
    - Dst: free
      Src: /src/nss/lib/softoken/sdb.c:1922,1
    - Dst: free
      Src: /src/nss/lib/softoken/sdb.c:1923,1
    - Dst: free
      Src: /src/nss/lib/softoken/sdb.c:1924,1
    - Dst: sdb_mapSQLError
      Src: /src/nss/lib/softoken/sdb.c:1925,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/softoken/sdb.c:1938,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/softoken/sdb.c:1945,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:1946,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/softoken/sdb.c:1977,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/softoken/sdb.c:1980,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:1981,1
    - Dst: sdb_mapSQLError
      Src: /src/nss/lib/softoken/sdb.c:1983,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/softoken/sdb.c:1999,1
    - Dst: sqlite3_prepare_v2
      Src: /src/nss/lib/softoken/sdb.c:2009,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:2010,1
    - Dst: sdb_mapSQLError
      Src: /src/nss/lib/softoken/sdb.c:2012,1
    - Dst: sqlite3_column_count
      Src: /src/nss/lib/softoken/sdb.c:2015,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/softoken/sdb.c:2022,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/softoken/sdb.c:2028,1
    - Dst: sqlite3_column_name
      Src: /src/nss/lib/softoken/sdb.c:2034,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:2036,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/softoken/sdb.c:2037,1
    - Dst: PORT_Strcmp
      Src: /src/nss/lib/softoken/sdb.c:2042,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:2049,1
    - Dst: sdb_add_column
      Src: /src/nss/lib/softoken/sdb.c:2053,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:2055,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/softoken/sdb.c:2056,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:2059,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/softoken/sdb.c:2061,1
    - Dst: LOCK_SQLITE
      Src: /src/nss/lib/softoken/sdb.c:2101,1
    - Dst: _NSSUTIL_Access
      Src: /src/nss/lib/softoken/sdb.c:2102,1
    - Dst: sdb_mapSQLError
      Src: /src/nss/lib/softoken/sdb.c:2104,1
    - Dst: sdb_openDB
      Src: /src/nss/lib/softoken/sdb.c:2107,1
    - Dst: sdb_mapSQLError
      Src: /src/nss/lib/softoken/sdb.c:2109,1
    - Dst: sdb_chmod
      Src: /src/nss/lib/softoken/sdb.c:2119,1
    - Dst: sdb_mapSQLError
      Src: /src/nss/lib/softoken/sdb.c:2120,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/softoken/sdb.c:2125,1
    - Dst: sdb_mapSQLError
      Src: /src/nss/lib/softoken/sdb.c:2127,1
    - Dst: tableExists
      Src: /src/nss/lib/softoken/sdb.c:2132,1
    - Dst: sdb_mapSQLError
      Src: /src/nss/lib/softoken/sdb.c:2135,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/softoken/sdb.c:2138,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/softoken/sdb.c:2140,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:2141,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/softoken/sdb.c:2149,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:2150,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/softoken/sdb.c:2155,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:2156,1
    - Dst: sdb_mapSQLError
      Src: /src/nss/lib/softoken/sdb.c:2158,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/softoken/sdb.c:2162,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/softoken/sdb.c:2167,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:2168,1
    - Dst: sdb_mapSQLError
      Src: /src/nss/lib/softoken/sdb.c:2170,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/softoken/sdb.c:2174,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/softoken/sdb.c:2179,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:2180,1
    - Dst: sdb_mapSQLError
      Src: /src/nss/lib/softoken/sdb.c:2182,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/softoken/sdb.c:2186,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/softoken/sdb.c:2191,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:2192,1
    - Dst: sdb_mapSQLError
      Src: /src/nss/lib/softoken/sdb.c:2194,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/softoken/sdb.c:2198,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/softoken/sdb.c:2203,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:2204,1
    - Dst: sdb_mapSQLError
      Src: /src/nss/lib/softoken/sdb.c:2206,1
    - Dst: sdb_update_column
      Src: /src/nss/lib/softoken/sdb.c:2213,1
    - Dst: tableExists
      Src: /src/nss/lib/softoken/sdb.c:2229,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/softoken/sdb.c:2258,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/lib/softoken/sdb.c:2268,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/lib/softoken/sdb.c:2270,1
    - Dst: statfs
      Src: /src/nss/lib/softoken/sdb.c:2277,1
    - Dst: sdb_getTempDir
      Src: /src/nss/lib/softoken/sdb.c:2309,1
    - Dst: sdb_measureAccess
      Src: /src/nss/lib/softoken/sdb.c:2311,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/sdb.c:2312,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/softoken/sdb.c:2322,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/softoken/sdb.c:2326,1
    - Dst: sdb_buildCache
      Src: /src/nss/lib/softoken/sdb.c:2332,1
    - Dst: PR_IntervalNow
      Src: /src/nss/lib/softoken/sdb.c:2337,1
    - Dst: malloc
      Src: /src/nss/lib/softoken/sdb.c:2340,1
    - Dst: malloc
      Src: /src/nss/lib/softoken/sdb.c:2345,1
    - Dst: PORT_Strcmp
      Src: /src/nss/lib/softoken/sdb.c:2355,1
    - Dst: PORT_Strcmp
      Src: /src/nss/lib/softoken/sdb.c:2356,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/softoken/sdb.c:2362,1
    - Dst: sqlite3_prepare_v2
      Src: /src/nss/lib/softoken/sdb.c:2367,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:2368,1
    - Dst: malloc
      Src: /src/nss/lib/softoken/sdb.c:2374,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/softoken/sdb.c:2380,1
    - Dst: PR_Sleep
      Src: /src/nss/lib/softoken/sdb.c:2382,1
    - Dst: realloc
      Src: /src/nss/lib/softoken/sdb.c:2387,1
    - Dst: sqlite3_column_text
      Src: /src/nss/lib/softoken/sdb.c:2395,1
    - Dst: strtoul
      Src: /src/nss/lib/softoken/sdb.c:2397,1
    - Dst: sdb_done
      Src: /src/nss/lib/softoken/sdb.c:2401,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/softoken/sdb.c:2406,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/softoken/sdb.c:2410,1
    - Dst: qsort
      Src: /src/nss/lib/softoken/sdb.c:2418,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/softoken/sdb.c:2423,1
    - Dst: PR_SecondsToInterval
      Src: /src/nss/lib/softoken/sdb.c:2430,1
    - Dst: PR_NewMonitor
      Src: /src/nss/lib/softoken/sdb.c:2431,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/softoken/sdb.c:2458,1
    - Dst: sdb_mapSQLError
      Src: /src/nss/lib/softoken/sdb.c:2460,1
    - Dst: UNLOCK_SQLITE
      Src: /src/nss/lib/softoken/sdb.c:2469,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/softoken/sdb.c:2475,1
    - Dst: free
      Src: /src/nss/lib/softoken/sdb.c:2478,1
    - Dst: free
      Src: /src/nss/lib/softoken/sdb.c:2482,1
    - Dst: free
      Src: /src/nss/lib/softoken/sdb.c:2484,1
    - Dst: sqlite3_close
      Src: /src/nss/lib/softoken/sdb.c:2487,1
    - Dst: UNLOCK_SQLITE
      Src: /src/nss/lib/softoken/sdb.c:2489,1
    - Dst: sdb_BuildFileName
      Src: /src/nss/lib/softoken/sdb.c:2499,1
    - Dst: sdb_BuildFileName
      Src: /src/nss/lib/softoken/sdb.c:2501,1
    - Dst: PR_NewLock
      Src: /src/nss/lib/softoken/sdb.c:2515,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/softoken/sdb.c:2528,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/lib/softoken/sdb.c:2532,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/lib/softoken/sdb.c:2533,1
    - Dst: sdb_measureAccess
      Src: /src/nss/lib/softoken/sdb.c:2534,1
    - Dst: sdb_init
      Src: /src/nss/lib/softoken/sdb.c:2543,1
    - Dst: sdb_init
      Src: /src/nss/lib/softoken/sdb.c:2560,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:2569,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:2572,1
    - Dst: sdb_Close
      Src: /src/nss/lib/softoken/sdb.c:2579,1
    - Dst: sdb_Close
      Src: /src/nss/lib/softoken/sdb.c:2582,1
    - Dst: PR_DestroyLock
      Src: /src/nss/lib/softoken/sdb.c:2594,1
    CyclomaticComplexity: 248
    EdgeCount: 248
    ICount: 844
    argCount: 2
    argNames:
    - sdb
    - candidate
    argTypes:
    - SDB*
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2599
      start: 1270
    functionDepth: 5
    functionLinenumber: 1270
    functionLinenumberEnd: 2599
    functionName: sdb_objectExists
    functionSourceFile: /src/nss/lib/softoken/sdb.c
    functionUses: 1
    functionsReached:
    - sdb_chmod
    - sqlite3_reset
    - PR_DestroyMonitor
    - sdb_openDBLocal
    - sdb_mapSQLError
    - sqlite3_close
    - PR_Now
    - sqlite3_column_bytes
    - PR_GetEnvSecure
    - sqlite3_prepare_v2
    - PR_NewMonitor
    - sqlite3_bind_text
    - statfs
    - sdb_getObjectId
    - sdb_getTempDir
    - qsort
    - sqlite3_bind_int
    - PORT_Strcasecmp
    - PORT_Memcpy
    - strtoul
    - sqlite3_column_blob
    - sqlite3_bind_blob
    - sdb_closeDBLocal
    - _NSSUTIL_Access
    - PR_EnterMonitor
    - sqlite3_column_count
    - sdb_reopenDBLocal
    - sdb_GetValidAttributeValueNoLock
    - PR_IntervalNow
    - sqlite3_column_text
    - PR_NewLock
    - sqlite3_column_name
    - tableExists
    - sqlite3_finalize
    - sqlite3_exec
    - PORT_Assert
    - sdb_add_column
    - sqlite3_step
    - PR_SecondsToInterval
    - sdb_updateCache
    - sdb_update_column
    - PORT_Strlen
    - sqlite3_mprintf
    - PR_ExitMonitor
    - sdb_measureAccess
    - UNLOCK_SQLITE
    - sdb_Close
    - sdb_buildCache
    - sdb_BuildFileName
    - PORT_Strdup
    - sdb_openDB
    - PR_DestroyLock
    - sdb_complete
    - malloc
    - free
    - sdb_done
    - PORT_Free
    - LOCK_SQLITE
    - sdb_objectExists
    - realloc
    - PR_Sleep
    - sdb_init
    - PR_GetCurrentThread
    - sdb_destroyAnyObject
    - PORT_Strcmp
    - sqlite3_free
    linkageType: ''
    returnType: PRBool
    signature: PRBool sdb_objectExists(SDB *sdb, CK_OBJECT_HANDLE candidate)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PR_Now
      Src: /src/nss/lib/softoken/sdb.c:1298,1
    - Dst: sdb_objectExists
      Src: /src/nss/lib/softoken/sdb.c:1312,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - sdb
    argTypes:
    - SDB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1320
      start: 1287
    functionDepth: 6
    functionLinenumber: 1287
    functionLinenumberEnd: 1320
    functionName: sdb_getObjectId
    functionSourceFile: /src/nss/lib/softoken/sdb.c
    functionUses: 1
    functionsReached:
    - sdb_objectExists
    - PR_Now
    linkageType: ''
    returnType: CK_OBJECT_HANDLE
    signature: CK_OBJECT_HANDLE sdb_getObjectId(SDB *sdb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sdb_getObjectId
      Src: /src/nss/lib/softoken/sdb.c:1327,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - sdb
    - object
    argTypes:
    - SDB*
    - CK_OBJECT_HANDLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1333
      start: 1322
    functionDepth: 7
    functionLinenumber: 1322
    functionLinenumberEnd: 1333
    functionName: sdb_GetNewObjectID
    functionSourceFile: /src/nss/lib/softoken/sdb.c
    functionUses: 0
    functionsReached:
    - sdb_getObjectId
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV sdb_GetNewObjectID(SDB *sdb, CK_OBJECT_HANDLE *object)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: LOCK_SQLITE
      Src: /src/nss/lib/softoken/sdb.c:1356,1
    - Dst: sdb_objectExists
      Src: /src/nss/lib/softoken/sdb.c:1358,1
    - Dst: sdb_getObjectId
      Src: /src/nss/lib/softoken/sdb.c:1361,1
    - Dst: UNLOCK_SQLITE
      Src: /src/nss/lib/softoken/sdb.c:1364,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/softoken/sdb.c:1367,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/softoken/sdb.c:1368,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/softoken/sdb.c:1371,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:1372,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/softoken/sdb.c:1374,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:1375,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:1381,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:1384,1
    - Dst: UNLOCK_SQLITE
      Src: /src/nss/lib/softoken/sdb.c:1386,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/softoken/sdb.c:1389,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:1390,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:1391,1
    - Dst: sdb_openDBLocal
      Src: /src/nss/lib/softoken/sdb.c:1392,1
    - Dst: sqlite3_prepare_v2
      Src: /src/nss/lib/softoken/sdb.c:1396,1
    - Dst: sqlite3_bind_int
      Src: /src/nss/lib/softoken/sdb.c:1399,1
    - Dst: sqlite3_bind_blob
      Src: /src/nss/lib/softoken/sdb.c:1404,1
    - Dst: sqlite3_bind_blob
      Src: /src/nss/lib/softoken/sdb.c:1407,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/softoken/sdb.c:1415,1
    - Dst: PR_Sleep
      Src: /src/nss/lib/softoken/sdb.c:1417,1
    - Dst: sdb_done
      Src: /src/nss/lib/softoken/sdb.c:1419,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:1423,1
    - Dst: sdb_mapSQLError
      Src: /src/nss/lib/softoken/sdb.c:1426,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/softoken/sdb.c:1430,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/softoken/sdb.c:1431,1
    - Dst: sdb_closeDBLocal
      Src: /src/nss/lib/softoken/sdb.c:1435,1
    - Dst: UNLOCK_SQLITE
      Src: /src/nss/lib/softoken/sdb.c:1437,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 85
    argCount: 3
    argNames:
    - sdb
    - object_id
    - count
    argTypes:
    - SDB*
    - CK_OBJECT_HANDLE*
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1440
      start: 1336
    functionDepth: 7
    functionLinenumber: 1336
    functionLinenumberEnd: 1440
    functionName: sdb_CreateObject
    functionSourceFile: /src/nss/lib/softoken/sdb.c
    functionUses: 0
    functionsReached:
    - sqlite3_bind_int
    - sqlite3_step
    - sqlite3_reset
    - sdb_done
    - sdb_openDBLocal
    - sqlite3_bind_blob
    - LOCK_SQLITE
    - sdb_closeDBLocal
    - sdb_mapSQLError
    - sqlite3_finalize
    - sdb_objectExists
    - sqlite3_mprintf
    - sqlite3_prepare_v2
    - PR_Sleep
    - UNLOCK_SQLITE
    - sdb_getObjectId
    - sqlite3_free
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sdb_CreateObject(SDB *sdb, CK_OBJECT_HANDLE *object_id,\n                 const
      CK_ATTRIBUTE *template, CK_ULONG count)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: LOCK_SQLITE
      Src: /src/nss/lib/softoken/sdb.c:1462,1
    - Dst: sdb_openDBLocal
      Src: /src/nss/lib/softoken/sdb.c:1463,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/softoken/sdb.c:1467,1
    - Dst: sqlite3_prepare_v2
      Src: /src/nss/lib/softoken/sdb.c:1472,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:1473,1
    - Dst: sqlite3_bind_int
      Src: /src/nss/lib/softoken/sdb.c:1477,1
    - Dst: sqlite3_bind_text
      Src: /src/nss/lib/softoken/sdb.c:1479,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/softoken/sdb.c:1480,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/softoken/sdb.c:1486,1
    - Dst: PR_Sleep
      Src: /src/nss/lib/softoken/sdb.c:1488,1
    - Dst: sdb_done
      Src: /src/nss/lib/softoken/sdb.c:1490,1
    - Dst: sdb_mapSQLError
      Src: /src/nss/lib/softoken/sdb.c:1494,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/softoken/sdb.c:1498,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/softoken/sdb.c:1499,1
    - Dst: sdb_closeDBLocal
      Src: /src/nss/lib/softoken/sdb.c:1503,1
    - Dst: UNLOCK_SQLITE
      Src: /src/nss/lib/softoken/sdb.c:1506,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 48
    argCount: 4
    argNames:
    - sdb
    - table
    - object_id
    - string_id
    argTypes:
    - SDB*
    - char*
    - CK_OBJECT_HANDLE
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1508
      start: 1446
    functionDepth: 4
    functionLinenumber: 1446
    functionLinenumberEnd: 1508
    functionName: sdb_destroyAnyObject
    functionSourceFile: /src/nss/lib/softoken/sdb.c
    functionUses: 1
    functionsReached:
    - sqlite3_bind_int
    - sqlite3_step
    - sqlite3_reset
    - sdb_done
    - sdb_openDBLocal
    - sdb_closeDBLocal
    - LOCK_SQLITE
    - sdb_mapSQLError
    - PORT_Strlen
    - sqlite3_mprintf
    - sqlite3_prepare_v2
    - PR_Sleep
    - UNLOCK_SQLITE
    - sqlite3_bind_text
    - sqlite3_finalize
    - sqlite3_free
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sdb_destroyAnyObject(SDB *sdb, const char *table,\n                     CK_OBJECT_HANDLE
      object_id, const char *string_id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sdb_destroyAnyObject
      Src: /src/nss/lib/softoken/sdb.c:1514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sdb
    - object_id
    argTypes:
    - SDB*
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1515
      start: 1510
    functionDepth: 5
    functionLinenumber: 1510
    functionLinenumberEnd: 1515
    functionName: sdb_DestroyObject
    functionSourceFile: /src/nss/lib/softoken/sdb.c
    functionUses: 0
    functionsReached:
    - sdb_destroyAnyObject
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV sdb_DestroyObject(SDB *sdb, CK_OBJECT_HANDLE object_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sdb_destroyAnyObject
      Src: /src/nss/lib/softoken/sdb.c:1520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sdb
    - id
    argTypes:
    - SDB*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1521
      start: 1517
    functionDepth: 5
    functionLinenumber: 1517
    functionLinenumberEnd: 1521
    functionName: sdb_DestroyMetaData
    functionSourceFile: /src/nss/lib/softoken/sdb.c
    functionUses: 0
    functionsReached:
    - sdb_destroyAnyObject
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV sdb_DestroyMetaData(SDB *sdb, const char *id)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: LOCK_SQLITE
      Src: /src/nss/lib/softoken/sdb.c:1546,1
    - Dst: sdb_openDB
      Src: /src/nss/lib/softoken/sdb.c:1549,1
    - Dst: sqlite3_prepare_v2
      Src: /src/nss/lib/softoken/sdb.c:1554,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/softoken/sdb.c:1557,1
    - Dst: PR_Sleep
      Src: /src/nss/lib/softoken/sdb.c:1559,1
    - Dst: sdb_done
      Src: /src/nss/lib/softoken/sdb.c:1563,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/softoken/sdb.c:1566,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/softoken/sdb.c:1567,1
    - Dst: sdb_mapSQLError
      Src: /src/nss/lib/softoken/sdb.c:1571,1
    - Dst: PR_EnterMonitor
      Src: /src/nss/lib/softoken/sdb.c:1579,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/sdb.c:1580,1
    - Dst: PR_GetCurrentThread
      Src: /src/nss/lib/softoken/sdb.c:1582,1
    - Dst: PR_ExitMonitor
      Src: /src/nss/lib/softoken/sdb.c:1583,1
    - Dst: sqlite3_close
      Src: /src/nss/lib/softoken/sdb.c:1588,1
    - Dst: UNLOCK_SQLITE
      Src: /src/nss/lib/softoken/sdb.c:1592,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 1
    argNames:
    - sdb
    argTypes:
    - SDB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1594
      start: 1532
    functionDepth: 2
    functionLinenumber: 1532
    functionLinenumberEnd: 1594
    functionName: sdb_Begin
    functionSourceFile: /src/nss/lib/softoken/sdb.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - sqlite3_step
    - sqlite3_reset
    - sdb_done
    - LOCK_SQLITE
    - PR_EnterMonitor
    - sdb_mapSQLError
    - sqlite3_close
    - sqlite3_prepare_v2
    - PR_ExitMonitor
    - PR_Sleep
    - PR_GetCurrentThread
    - UNLOCK_SQLITE
    - sqlite3_finalize
    - sdb_openDB
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV sdb_Begin(SDB *sdb)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PR_EnterMonitor
      Src: /src/nss/lib/softoken/sdb.c:1617,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/sdb.c:1618,1
    - Dst: PR_ExitMonitor
      Src: /src/nss/lib/softoken/sdb.c:1620,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/sdb.c:1623,1
    - Dst: PR_GetCurrentThread
      Src: /src/nss/lib/softoken/sdb.c:1623,1
    - Dst: PR_GetCurrentThread
      Src: /src/nss/lib/softoken/sdb.c:1624,1
    - Dst: PR_ExitMonitor
      Src: /src/nss/lib/softoken/sdb.c:1625,1
    - Dst: PR_ExitMonitor
      Src: /src/nss/lib/softoken/sdb.c:1632,1
    - Dst: sqlite3_prepare_v2
      Src: /src/nss/lib/softoken/sdb.c:1634,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/softoken/sdb.c:1637,1
    - Dst: PR_Sleep
      Src: /src/nss/lib/softoken/sdb.c:1639,1
    - Dst: sdb_done
      Src: /src/nss/lib/softoken/sdb.c:1641,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/softoken/sdb.c:1646,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/softoken/sdb.c:1647,1
    - Dst: PR_EnterMonitor
      Src: /src/nss/lib/softoken/sdb.c:1652,1
    - Dst: sdb_updateCache
      Src: /src/nss/lib/softoken/sdb.c:1653,1
    - Dst: PR_ExitMonitor
      Src: /src/nss/lib/softoken/sdb.c:1654,1
    - Dst: sdb_mapSQLError
      Src: /src/nss/lib/softoken/sdb.c:1657,1
    - Dst: sqlite3_close
      Src: /src/nss/lib/softoken/sdb.c:1661,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 2
    argNames:
    - sdb
    - cmd
    argTypes:
    - SDB*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1664
      start: 1602
    functionDepth: 3
    functionLinenumber: 1602
    functionLinenumberEnd: 1664
    functionName: sdb_complete
    functionSourceFile: /src/nss/lib/softoken/sdb.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - sqlite3_step
    - sqlite3_reset
    - sdb_done
    - PR_EnterMonitor
    - sdb_updateCache
    - sdb_mapSQLError
    - sqlite3_close
    - PR_ExitMonitor
    - sqlite3_prepare_v2
    - PR_Sleep
    - PR_GetCurrentThread
    - sqlite3_finalize
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV sdb_complete(SDB *sdb, const char *cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOCK_SQLITE
      Src: /src/nss/lib/softoken/sdb.c:1671,1
    - Dst: sdb_complete
      Src: /src/nss/lib/softoken/sdb.c:1672,1
    - Dst: UNLOCK_SQLITE
      Src: /src/nss/lib/softoken/sdb.c:1673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sdb
    argTypes:
    - SDB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1675
      start: 1667
    functionDepth: 4
    functionLinenumber: 1667
    functionLinenumberEnd: 1675
    functionName: sdb_Commit
    functionSourceFile: /src/nss/lib/softoken/sdb.c
    functionUses: 0
    functionsReached:
    - sdb_complete
    - LOCK_SQLITE
    - UNLOCK_SQLITE
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV sdb_Commit(SDB *sdb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOCK_SQLITE
      Src: /src/nss/lib/softoken/sdb.c:1682,1
    - Dst: sdb_complete
      Src: /src/nss/lib/softoken/sdb.c:1683,1
    - Dst: UNLOCK_SQLITE
      Src: /src/nss/lib/softoken/sdb.c:1684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sdb
    argTypes:
    - SDB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1686
      start: 1678
    functionDepth: 4
    functionLinenumber: 1678
    functionLinenumberEnd: 1686
    functionName: sdb_Abort
    functionSourceFile: /src/nss/lib/softoken/sdb.c
    functionUses: 0
    functionsReached:
    - sdb_complete
    - LOCK_SQLITE
    - UNLOCK_SQLITE
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV sdb_Abort(SDB *sdb)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: LOCK_SQLITE
      Src: /src/nss/lib/softoken/sdb.c:1702,1
    - Dst: sdb_openDBLocal
      Src: /src/nss/lib/softoken/sdb.c:1703,1
    - Dst: sqlite3_prepare_v2
      Src: /src/nss/lib/softoken/sdb.c:1709,1
    - Dst: sdb_reopenDBLocal
      Src: /src/nss/lib/softoken/sdb.c:1715,1
    - Dst: sqlite3_prepare_v2
      Src: /src/nss/lib/softoken/sdb.c:1719,1
    - Dst: sqlite3_bind_text
      Src: /src/nss/lib/softoken/sdb.c:1723,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/softoken/sdb.c:1723,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/softoken/sdb.c:1725,1
    - Dst: PR_Sleep
      Src: /src/nss/lib/softoken/sdb.c:1727,1
    - Dst: sqlite3_column_bytes
      Src: /src/nss/lib/softoken/sdb.c:1732,1
    - Dst: sqlite3_column_blob
      Src: /src/nss/lib/softoken/sdb.c:1737,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/sdb.c:1738,1
    - Dst: sqlite3_column_bytes
      Src: /src/nss/lib/softoken/sdb.c:1741,1
    - Dst: sqlite3_column_blob
      Src: /src/nss/lib/softoken/sdb.c:1746,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/sdb.c:1747,1
    - Dst: sdb_done
      Src: /src/nss/lib/softoken/sdb.c:1751,1
    - Dst: sdb_mapSQLError
      Src: /src/nss/lib/softoken/sdb.c:1756,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/softoken/sdb.c:1763,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/softoken/sdb.c:1764,1
    - Dst: sdb_closeDBLocal
      Src: /src/nss/lib/softoken/sdb.c:1768,1
    - Dst: UNLOCK_SQLITE
      Src: /src/nss/lib/softoken/sdb.c:1770,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 62
    argCount: 4
    argNames:
    - sdb
    - id
    - item1
    - item2
    argTypes:
    - SDB*
    - char*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1773
      start: 1691
    functionDepth: 4
    functionLinenumber: 1691
    functionLinenumberEnd: 1773
    functionName: sdb_GetMetaData
    functionSourceFile: /src/nss/lib/softoken/sdb.c
    functionUses: 0
    functionsReached:
    - sqlite3_step
    - PORT_Memcpy
    - sqlite3_reset
    - sqlite3_column_blob
    - sdb_openDBLocal
    - sdb_done
    - LOCK_SQLITE
    - sdb_closeDBLocal
    - sdb_mapSQLError
    - sdb_reopenDBLocal
    - PORT_Strlen
    - sqlite3_column_bytes
    - sqlite3_prepare_v2
    - PR_Sleep
    - UNLOCK_SQLITE
    - sqlite3_bind_text
    - sqlite3_finalize
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV sdb_GetMetaData(SDB *sdb, const char *id, SECItem *item1, SECItem
      *item2)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: LOCK_SQLITE
      Src: /src/nss/lib/softoken/sdb.c:1798,1
    - Dst: sdb_openDBLocal
      Src: /src/nss/lib/softoken/sdb.c:1799,1
    - Dst: tableExists
      Src: /src/nss/lib/softoken/sdb.c:1804,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/softoken/sdb.c:1805,1
    - Dst: sqlite3_prepare_v2
      Src: /src/nss/lib/softoken/sdb.c:1812,1
    - Dst: sqlite3_bind_text
      Src: /src/nss/lib/softoken/sdb.c:1815,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/softoken/sdb.c:1815,1
    - Dst: sqlite3_bind_blob
      Src: /src/nss/lib/softoken/sdb.c:1818,1
    - Dst: sqlite3_bind_blob
      Src: /src/nss/lib/softoken/sdb.c:1822,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/softoken/sdb.c:1829,1
    - Dst: PR_Sleep
      Src: /src/nss/lib/softoken/sdb.c:1831,1
    - Dst: sdb_done
      Src: /src/nss/lib/softoken/sdb.c:1833,1
    - Dst: sdb_mapSQLError
      Src: /src/nss/lib/softoken/sdb.c:1838,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/softoken/sdb.c:1842,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/softoken/sdb.c:1843,1
    - Dst: sdb_closeDBLocal
      Src: /src/nss/lib/softoken/sdb.c:1847,1
    - Dst: UNLOCK_SQLITE
      Src: /src/nss/lib/softoken/sdb.c:1849,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 56
    argCount: 4
    argNames:
    - sdb
    - id
    - item1
    - item2
    argTypes:
    - SDB*
    - char*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1852
      start: 1782
    functionDepth: 4
    functionLinenumber: 1782
    functionLinenumberEnd: 1852
    functionName: sdb_PutMetaData
    functionSourceFile: /src/nss/lib/softoken/sdb.c
    functionUses: 0
    functionsReached:
    - sqlite3_step
    - sqlite3_reset
    - sdb_done
    - sdb_openDBLocal
    - sqlite3_bind_blob
    - LOCK_SQLITE
    - sdb_closeDBLocal
    - sdb_mapSQLError
    - PORT_Strlen
    - sqlite3_finalize
    - sqlite3_prepare_v2
    - PR_Sleep
    - UNLOCK_SQLITE
    - sqlite3_bind_text
    - tableExists
    - sqlite3_exec
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sdb_PutMetaData(SDB *sdb, const char *id, const SECItem *item1,\n
      \               const SECItem *item2)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: LOCK_SQLITE
      Src: /src/nss/lib/softoken/sdb.c:1869,1
    - Dst: sdb_openDBLocal
      Src: /src/nss/lib/softoken/sdb.c:1870,1
    - Dst: tableExists
      Src: /src/nss/lib/softoken/sdb.c:1875,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/softoken/sdb.c:1877,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/softoken/sdb.c:1882,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:1883,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/softoken/sdb.c:1890,1
    - Dst: sdb_mapSQLError
      Src: /src/nss/lib/softoken/sdb.c:1896,1
    - Dst: sdb_closeDBLocal
      Src: /src/nss/lib/softoken/sdb.c:1900,1
    - Dst: UNLOCK_SQLITE
      Src: /src/nss/lib/softoken/sdb.c:1903,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 1
    argNames:
    - sdb
    argTypes:
    - SDB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1905
      start: 1855
    functionDepth: 4
    functionLinenumber: 1855
    functionLinenumberEnd: 1905
    functionName: sdb_Reset
    functionSourceFile: /src/nss/lib/softoken/sdb.c
    functionUses: 0
    functionsReached:
    - sdb_openDBLocal
    - sdb_closeDBLocal
    - LOCK_SQLITE
    - sdb_mapSQLError
    - sqlite3_mprintf
    - UNLOCK_SQLITE
    - tableExists
    - sqlite3_exec
    - sqlite3_free
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV sdb_Reset(SDB *sdb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_close
      Src: /src/nss/lib/softoken/sdb.c:1914,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/sdb.c:1915,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:1917,1
    - Dst: PR_DestroyMonitor
      Src: /src/nss/lib/softoken/sdb.c:1920,1
    - Dst: free
      Src: /src/nss/lib/softoken/sdb.c:1922,1
    - Dst: free
      Src: /src/nss/lib/softoken/sdb.c:1923,1
    - Dst: free
      Src: /src/nss/lib/softoken/sdb.c:1924,1
    - Dst: sdb_mapSQLError
      Src: /src/nss/lib/softoken/sdb.c:1925,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - sdb
    argTypes:
    - SDB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1926
      start: 1907
    functionDepth: 1
    functionLinenumber: 1907
    functionLinenumberEnd: 1926
    functionName: sdb_Close
    functionSourceFile: /src/nss/lib/softoken/sdb.c
    functionUses: 1
    functionsReached:
    - free
    - PR_DestroyMonitor
    - PORT_Free
    - sqlite3_close
    - sdb_mapSQLError
    - sqlite3_free
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV sdb_Close(SDB *sdb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/softoken/sdb.c:1938,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/softoken/sdb.c:1945,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:1946,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - sqlDB
    - tableName
    argTypes:
    - sqlite3*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1949
      start: 1935
    functionDepth: 1
    functionLinenumber: 1935
    functionLinenumberEnd: 1949
    functionName: tableExists
    functionSourceFile: /src/nss/lib/softoken/sdb.c
    functionUses: 3
    functionsReached:
    - sqlite3_mprintf
    - sqlite3_exec
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int tableExists(sqlite3 *sqlDB, const char *tableName)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - forked
    argTypes:
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1958
      start: 1951
    functionDepth: 0
    functionLinenumber: 1951
    functionLinenumberEnd: 1958
    functionName: sdb_SetForkState
    functionSourceFile: /src/nss/lib/softoken/sdb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sdb_SetForkState(PRBool forked)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1970
      start: 1960
    functionDepth: 0
    functionLinenumber: 1960
    functionLinenumberEnd: 1970
    functionName: sdb_attributeComparator
    functionSourceFile: /src/nss/lib/softoken/sdb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sdb_attributeComparator(const void *a, const void *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/softoken/sdb.c:1977,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/softoken/sdb.c:1980,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:1981,1
    - Dst: sdb_mapSQLError
      Src: /src/nss/lib/softoken/sdb.c:1983,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - sqlDB
    - table
    - type
    - typeString
    argTypes:
    - sqlite3*
    - char*
    - sdbDataType
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1986
      start: 1973
    functionDepth: 1
    functionLinenumber: 1973
    functionLinenumberEnd: 1986
    functionName: sdb_add_column
    functionSourceFile: /src/nss/lib/softoken/sdb.c
    functionUses: 1
    functionsReached:
    - sqlite3_mprintf
    - sqlite3_exec
    - sqlite3_free
    - sdb_mapSQLError
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sdb_add_column(sqlite3 *sqlDB, const char *table, sdbDataType
      type,\n               const char *typeString)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/softoken/sdb.c:1999,1
    - Dst: sqlite3_prepare_v2
      Src: /src/nss/lib/softoken/sdb.c:2009,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:2010,1
    - Dst: sdb_mapSQLError
      Src: /src/nss/lib/softoken/sdb.c:2012,1
    - Dst: sqlite3_column_count
      Src: /src/nss/lib/softoken/sdb.c:2015,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/softoken/sdb.c:2022,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/softoken/sdb.c:2028,1
    - Dst: sqlite3_column_name
      Src: /src/nss/lib/softoken/sdb.c:2034,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:2036,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/softoken/sdb.c:2037,1
    - Dst: PORT_Strcmp
      Src: /src/nss/lib/softoken/sdb.c:2042,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:2049,1
    - Dst: sdb_add_column
      Src: /src/nss/lib/softoken/sdb.c:2053,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:2055,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/softoken/sdb.c:2056,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:2059,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/softoken/sdb.c:2061,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 3
    argNames:
    - sqlDB
    - table
    - type
    argTypes:
    - sqlite3*
    - char*
    - sdbDataType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2063
      start: 1996
    functionDepth: 2
    functionLinenumber: 1996
    functionLinenumberEnd: 2063
    functionName: sdb_update_column
    functionSourceFile: /src/nss/lib/softoken/sdb.c
    functionUses: 1
    functionsReached:
    - sdb_add_column
    - sqlite3_column_count
    - sdb_mapSQLError
    - PORT_Strcmp
    - sqlite3_mprintf
    - sqlite3_prepare_v2
    - sqlite3_column_name
    - sqlite3_finalize
    - sqlite3_free
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV sdb_update_column(sqlite3 *sqlDB, const char *table, sdbDataType
      type)
  - BBCount: 61
    BranchProfiles: []
    Callsites:
    - Dst: LOCK_SQLITE
      Src: /src/nss/lib/softoken/sdb.c:2101,1
    - Dst: _NSSUTIL_Access
      Src: /src/nss/lib/softoken/sdb.c:2102,1
    - Dst: sdb_mapSQLError
      Src: /src/nss/lib/softoken/sdb.c:2104,1
    - Dst: sdb_openDB
      Src: /src/nss/lib/softoken/sdb.c:2107,1
    - Dst: sdb_mapSQLError
      Src: /src/nss/lib/softoken/sdb.c:2109,1
    - Dst: sdb_chmod
      Src: /src/nss/lib/softoken/sdb.c:2119,1
    - Dst: sdb_mapSQLError
      Src: /src/nss/lib/softoken/sdb.c:2120,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/softoken/sdb.c:2125,1
    - Dst: sdb_mapSQLError
      Src: /src/nss/lib/softoken/sdb.c:2127,1
    - Dst: tableExists
      Src: /src/nss/lib/softoken/sdb.c:2132,1
    - Dst: sdb_mapSQLError
      Src: /src/nss/lib/softoken/sdb.c:2135,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/softoken/sdb.c:2138,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/softoken/sdb.c:2140,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:2141,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/softoken/sdb.c:2149,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:2150,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/softoken/sdb.c:2155,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:2156,1
    - Dst: sdb_mapSQLError
      Src: /src/nss/lib/softoken/sdb.c:2158,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/softoken/sdb.c:2162,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/softoken/sdb.c:2167,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:2168,1
    - Dst: sdb_mapSQLError
      Src: /src/nss/lib/softoken/sdb.c:2170,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/softoken/sdb.c:2174,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/softoken/sdb.c:2179,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:2180,1
    - Dst: sdb_mapSQLError
      Src: /src/nss/lib/softoken/sdb.c:2182,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/softoken/sdb.c:2186,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/softoken/sdb.c:2191,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:2192,1
    - Dst: sdb_mapSQLError
      Src: /src/nss/lib/softoken/sdb.c:2194,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/softoken/sdb.c:2198,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/softoken/sdb.c:2203,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:2204,1
    - Dst: sdb_mapSQLError
      Src: /src/nss/lib/softoken/sdb.c:2206,1
    - Dst: sdb_update_column
      Src: /src/nss/lib/softoken/sdb.c:2213,1
    - Dst: tableExists
      Src: /src/nss/lib/softoken/sdb.c:2229,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/softoken/sdb.c:2258,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/lib/softoken/sdb.c:2268,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/lib/softoken/sdb.c:2270,1
    - Dst: statfs
      Src: /src/nss/lib/softoken/sdb.c:2277,1
    - Dst: sdb_getTempDir
      Src: /src/nss/lib/softoken/sdb.c:2309,1
    - Dst: sdb_measureAccess
      Src: /src/nss/lib/softoken/sdb.c:2311,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/sdb.c:2312,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/softoken/sdb.c:2322,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/softoken/sdb.c:2326,1
    - Dst: sdb_buildCache
      Src: /src/nss/lib/softoken/sdb.c:2332,1
    - Dst: PR_IntervalNow
      Src: /src/nss/lib/softoken/sdb.c:2337,1
    - Dst: malloc
      Src: /src/nss/lib/softoken/sdb.c:2340,1
    - Dst: malloc
      Src: /src/nss/lib/softoken/sdb.c:2345,1
    - Dst: PORT_Strcmp
      Src: /src/nss/lib/softoken/sdb.c:2355,1
    - Dst: PORT_Strcmp
      Src: /src/nss/lib/softoken/sdb.c:2356,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/softoken/sdb.c:2362,1
    - Dst: sqlite3_prepare_v2
      Src: /src/nss/lib/softoken/sdb.c:2367,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:2368,1
    - Dst: malloc
      Src: /src/nss/lib/softoken/sdb.c:2374,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/softoken/sdb.c:2380,1
    - Dst: PR_Sleep
      Src: /src/nss/lib/softoken/sdb.c:2382,1
    - Dst: realloc
      Src: /src/nss/lib/softoken/sdb.c:2387,1
    - Dst: sqlite3_column_text
      Src: /src/nss/lib/softoken/sdb.c:2395,1
    - Dst: strtoul
      Src: /src/nss/lib/softoken/sdb.c:2397,1
    - Dst: sdb_done
      Src: /src/nss/lib/softoken/sdb.c:2401,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/softoken/sdb.c:2406,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/softoken/sdb.c:2410,1
    - Dst: qsort
      Src: /src/nss/lib/softoken/sdb.c:2418,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/softoken/sdb.c:2423,1
    - Dst: PR_SecondsToInterval
      Src: /src/nss/lib/softoken/sdb.c:2430,1
    - Dst: PR_NewMonitor
      Src: /src/nss/lib/softoken/sdb.c:2431,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/softoken/sdb.c:2458,1
    - Dst: sdb_mapSQLError
      Src: /src/nss/lib/softoken/sdb.c:2460,1
    - Dst: UNLOCK_SQLITE
      Src: /src/nss/lib/softoken/sdb.c:2469,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/softoken/sdb.c:2475,1
    - Dst: free
      Src: /src/nss/lib/softoken/sdb.c:2478,1
    - Dst: free
      Src: /src/nss/lib/softoken/sdb.c:2482,1
    - Dst: free
      Src: /src/nss/lib/softoken/sdb.c:2484,1
    - Dst: sqlite3_close
      Src: /src/nss/lib/softoken/sdb.c:2487,1
    - Dst: UNLOCK_SQLITE
      Src: /src/nss/lib/softoken/sdb.c:2489,1
    CyclomaticComplexity: 94
    EdgeCount: 94
    ICount: 309
    argCount: 8
    argNames:
    - dbname
    - table
    - type
    - inUpdate
    - newInit
    - inFlags
    - accessOps
    - pSdb
    argTypes:
    - char*
    - char*
    - sdbDataType
    - int*
    - int*
    - int
    - PRUint32
    - SDB**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2491
      start: 2071
    functionDepth: 3
    functionLinenumber: 2071
    functionLinenumberEnd: 2491
    functionName: sdb_init
    functionSourceFile: /src/nss/lib/softoken/sdb.c
    functionUses: 1
    functionsReached:
    - sdb_chmod
    - sqlite3_reset
    - sdb_mapSQLError
    - PR_GetEnvSecure
    - sqlite3_close
    - sqlite3_prepare_v2
    - PR_NewMonitor
    - statfs
    - sdb_getTempDir
    - qsort
    - PORT_Strcasecmp
    - strtoul
    - _NSSUTIL_Access
    - PR_IntervalNow
    - sqlite3_column_text
    - tableExists
    - sqlite3_exec
    - sqlite3_finalize
    - sqlite3_step
    - PR_SecondsToInterval
    - sdb_update_column
    - sqlite3_mprintf
    - sdb_measureAccess
    - UNLOCK_SQLITE
    - sdb_buildCache
    - PORT_Strdup
    - sdb_openDB
    - malloc
    - free
    - sdb_done
    - PORT_Free
    - LOCK_SQLITE
    - realloc
    - PR_Sleep
    - PORT_Strcmp
    - sqlite3_free
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV sdb_init(char *dbname, char *table, sdbDataType type, int *inUpdate,\n
      \        int *newInit, int inFlags, PRUint32 accessOps, SDB **pSdb)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: sdb_BuildFileName
      Src: /src/nss/lib/softoken/sdb.c:2499,1
    - Dst: sdb_BuildFileName
      Src: /src/nss/lib/softoken/sdb.c:2501,1
    - Dst: PR_NewLock
      Src: /src/nss/lib/softoken/sdb.c:2515,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/softoken/sdb.c:2528,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/lib/softoken/sdb.c:2532,1
    - Dst: PORT_Strcasecmp
      Src: /src/nss/lib/softoken/sdb.c:2533,1
    - Dst: sdb_measureAccess
      Src: /src/nss/lib/softoken/sdb.c:2534,1
    - Dst: sdb_init
      Src: /src/nss/lib/softoken/sdb.c:2543,1
    - Dst: sdb_init
      Src: /src/nss/lib/softoken/sdb.c:2560,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:2569,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/softoken/sdb.c:2572,1
    - Dst: sdb_Close
      Src: /src/nss/lib/softoken/sdb.c:2579,1
    - Dst: sdb_Close
      Src: /src/nss/lib/softoken/sdb.c:2582,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 51
    argCount: 9
    argNames:
    - directory
    - certPrefix
    - keyPrefix
    - cert_version
    - key_version
    - flags
    - certdb
    - keydb
    - newInit
    argTypes:
    - char*
    - char*
    - char*
    - int
    - int
    - int
    - SDB**
    - SDB**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2587
      start: 2494
    functionDepth: 4
    functionLinenumber: 2494
    functionLinenumberEnd: 2587
    functionName: s_open
    functionSourceFile: /src/nss/lib/softoken/sdb.c
    functionUses: 1
    functionsReached:
    - PORT_Strcasecmp
    - PR_GetEnvSecure
    - sdb_measureAccess
    - sdb_init
    - PR_NewLock
    - sdb_Close
    - sdb_BuildFileName
    - sqlite3_free
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV s_open(const char *directory, const char *certPrefix, const
      char *keyPrefix,\n       int cert_version, int key_version, int flags,\n       SDB
      **certdb, SDB **keydb, int *newInit)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_DestroyLock
      Src: /src/nss/lib/softoken/sdb.c:2594,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2599
      start: 2589
    functionDepth: 0
    functionLinenumber: 2589
    functionLinenumberEnd: 2599
    functionName: s_shutdown
    functionSourceFile: /src/nss/lib/softoken/sdb.c
    functionUses: 0
    functionsReached:
    - PR_DestroyLock
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV s_shutdown()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - key
    argTypes:
    - NSSLOWKEYPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 153
    functionName: prepare_low_rsa_priv_key_for_asn1
    functionSourceFile: /src/nss/lib/softoken/lowkey.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void prepare_low_rsa_priv_key_for_asn1(NSSLOWKEYPrivateKey *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key
    argTypes:
    - NSSLOWKEYPublicKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 160
    functionName: prepare_low_rsa_pub_key_for_asn1
    functionSourceFile: /src/nss/lib/softoken/lowkey.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void prepare_low_rsa_pub_key_for_asn1(NSSLOWKEYPublicKey *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - params
    argTypes:
    - PQGParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 168
    functionName: prepare_low_pqg_params_for_asn1
    functionSourceFile: /src/nss/lib/softoken/lowkey.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void prepare_low_pqg_params_for_asn1(PQGParams *params)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - key
    argTypes:
    - NSSLOWKEYPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 178
    functionName: prepare_low_dsa_priv_key_for_asn1
    functionSourceFile: /src/nss/lib/softoken/lowkey.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void prepare_low_dsa_priv_key_for_asn1(NSSLOWKEYPrivateKey *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - NSSLOWKEYPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 184
    functionName: prepare_low_dsa_priv_key_export_for_asn1
    functionSourceFile: /src/nss/lib/softoken/lowkey.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void prepare_low_dsa_priv_key_export_for_asn1(NSSLOWKEYPrivateKey *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - key
    argTypes:
    - NSSLOWKEYPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 193
    functionName: prepare_low_dh_priv_key_for_asn1
    functionSourceFile: /src/nss/lib/softoken/lowkey.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void prepare_low_dh_priv_key_for_asn1(NSSLOWKEYPrivateKey *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - params
    argTypes:
    - ECParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 200
    functionName: prepare_low_ecparams_for_asn1
    functionSourceFile: /src/nss/lib/softoken/lowkey.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void prepare_low_ecparams_for_asn1(ECParams *params)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - key
    argTypes:
    - NSSLOWKEYPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 210
    functionName: prepare_low_ec_priv_key_for_asn1
    functionSourceFile: /src/nss/lib/softoken/lowkey.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void prepare_low_ec_priv_key_for_asn1(NSSLOWKEYPrivateKey *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/lowkey.c:216,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - privk
    argTypes:
    - NSSLOWKEYPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 218
    functionName: nsslowkey_DestroyPrivateKey
    functionSourceFile: /src/nss/lib/softoken/lowkey.c
    functionUses: 5
    functionsReached:
    - PORT_FreeArena
    linkageType: ''
    returnType: void
    signature: void nsslowkey_DestroyPrivateKey(NSSLOWKEYPrivateKey *privk)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/lowkey.c:224,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - pubk
    argTypes:
    - NSSLOWKEYPublicKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 226
    functionName: nsslowkey_DestroyPublicKey
    functionSourceFile: /src/nss/lib/softoken/lowkey.c
    functionUses: 2
    functionsReached:
    - PORT_FreeArena
    linkageType: ''
    returnType: void
    signature: void nsslowkey_DestroyPublicKey(NSSLOWKEYPublicKey *pubk)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - pubk
    argTypes:
    - NSSLOWKEYPublicKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 246
    functionName: nsslowkey_PublicModulusLen
    functionSourceFile: /src/nss/lib/softoken/lowkey.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned nsslowkey_PublicModulusLen(NSSLOWKEYPublicKey *pubk)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - privk
    argTypes:
    - NSSLOWKEYPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 264
    functionName: nsslowkey_PrivateModulusLen
    functionSourceFile: /src/nss/lib/softoken/lowkey.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned nsslowkey_PrivateModulusLen(NSSLOWKEYPrivateKey *privk)
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/lowkey.c:273,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/lowkey.c:275,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/softoken/lowkey.c:282,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/lowkey.c:291,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/lowkey.c:294,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/lowkey.c:300,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/softoken/lowkey.c:304,1
    - Dst: DH_Derive
      Src: /src/nss/lib/softoken/lowkey.c:313,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/lowkey.c:318,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/lowkey.c:319,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/lowkey.c:324,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/lowkey.c:328,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/lowkey.c:332,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/lowkey.c:336,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/softoken/lowkey.c:343,1
    - Dst: DH_Derive
      Src: /src/nss/lib/softoken/lowkey.c:352,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/lowkey.c:357,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/lowkey.c:358,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/lowkey.c:363,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/lowkey.c:367,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/lowkey.c:371,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/softoken/lowkey.c:378,1
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/softoken/lowkey.c:390,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/lowkey.c:392,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/softoken/lowkey.c:393,1
    - Dst: ED_DerivePublicKey
      Src: /src/nss/lib/softoken/lowkey.c:397,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/lowkey.c:402,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/softoken/lowkey.c:403,1
    - Dst: X25519_DerivePublicKey
      Src: /src/nss/lib/softoken/lowkey.c:407,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/lowkey.c:414,1
    - Dst: EC_CopyParams
      Src: /src/nss/lib/softoken/lowkey.c:420,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/lowkey.c:432,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 123
    argCount: 1
    argNames:
    - privk
    argTypes:
    - NSSLOWKEYPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 434
    functionName: nsslowkey_ConvertToPublicKey
    functionSourceFile: /src/nss/lib/softoken/lowkey.c
    functionUses: 1
    functionsReached:
    - X25519_DerivePublicKey
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - PORT_FreeArena
    - ED_DerivePublicKey
    - SECITEM_CopyItem
    - SECOID_FindOIDTag
    - PORT_SetError
    - SECITEM_AllocItem
    - DH_Derive
    - PORT_Memset
    - EC_CopyParams
    - SECITEM_ZfreeItem
    linkageType: ''
    returnType: NSSLOWKEYPublicKey
    signature: 'NSSLOWKEYPublicKey *

      nsslowkey_ConvertToPublicKey(NSSLOWKEYPrivateKey *privk)'
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/lowkey.c:447,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/softoken/lowkey.c:452,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/lowkey.c:463,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/lowkey.c:467,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/lowkey.c:471,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/lowkey.c:475,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/lowkey.c:479,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/lowkey.c:483,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/lowkey.c:487,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/lowkey.c:491,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/lowkey.c:495,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/lowkey.c:501,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/lowkey.c:505,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/lowkey.c:510,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/lowkey.c:514,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/lowkey.c:518,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/lowkey.c:524,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/lowkey.c:528,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/lowkey.c:533,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/lowkey.c:537,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/lowkey.c:543,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/lowkey.c:547,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/lowkey.c:551,1
    - Dst: EC_CopyParams
      Src: /src/nss/lib/softoken/lowkey.c:557,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/lowkey.c:569,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 104
    argCount: 1
    argNames:
    - privKey
    argTypes:
    - NSSLOWKEYPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 574
    functionName: nsslowkey_CopyPrivateKey
    functionSourceFile: /src/nss/lib/softoken/lowkey.c
    functionUses: 0
    functionsReached:
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - PORT_FreeArena
    - SECITEM_CopyItem
    - EC_CopyParams
    linkageType: ''
    returnType: NSSLOWKEYPrivateKey
    signature: 'NSSLOWKEYPrivateKey *

      nsslowkey_CopyPrivateKey(NSSLOWKEYPrivateKey *privKey)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_snprintf
      Src: /src/nss/lib/softoken/fipsaudt.c:31,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/fipsaudt.c:34,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 5
    argNames:
    - out
    - outlen
    - argName
    - phObject
    - rv
    argTypes:
    - char*
    - PRUint32
    - char*
    - CK_OBJECT_HANDLE_PTR
    - CK_RV
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 37
    functionName: sftk_PrintReturnedObjectHandle
    functionSourceFile: /src/nss/lib/softoken/fipsaudt.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PR_snprintf
    linkageType: ''
    returnType: void
    signature: "void sftk_PrintReturnedObjectHandle(char *out, PRUint32 outlen,\n
      \                              const char *argName, CK_OBJECT_HANDLE_PTR phObject,
      CK_RV rv)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_snprintf
      Src: /src/nss/lib/softoken/fipsaudt.c:55,1
    - Dst: PR_snprintf
      Src: /src/nss/lib/softoken/fipsaudt.c:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - out
    - outlen
    - pMechanism
    argTypes:
    - char*
    - PRUint32
    - CK_MECHANISM_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 60
    functionName: sftk_PrintMechanism
    functionSourceFile: /src/nss/lib/softoken/fipsaudt.c
    functionUses: 0
    functionsReached:
    - PR_snprintf
    linkageType: ''
    returnType: void
    signature: "void sftk_PrintMechanism(char *out, PRUint32 outlen,\n                    CK_MECHANISM_PTR
      pMechanism)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sftk_PrintReturnedObjectHandle
      Src: /src/nss/lib/softoken/fipsaudt.c:71,1
    - Dst: PR_snprintf
      Src: /src/nss/lib/softoken/fipsaudt.c:73,1
    - Dst: sftk_LogAuditMessage
      Src: /src/nss/lib/softoken/fipsaudt.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - hSession
    - pTemplate
    - ulCount
    - phObject
    - rv
    argTypes:
    - CK_SESSION_HANDLE
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    - CK_OBJECT_HANDLE_PTR
    - CK_RV
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 79
    functionName: sftk_AuditCreateObject
    functionSourceFile: /src/nss/lib/softoken/fipsaudt.c
    functionUses: 1
    functionsReached:
    - sftk_PrintReturnedObjectHandle
    - PR_snprintf
    - sftk_LogAuditMessage
    linkageType: ''
    returnType: void
    signature: "void sftk_AuditCreateObject(CK_SESSION_HANDLE hSession,\n                       CK_ATTRIBUTE_PTR
      pTemplate, CK_ULONG ulCount,\n                       CK_OBJECT_HANDLE_PTR phObject,
      CK_RV rv)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sftk_PrintReturnedObjectHandle
      Src: /src/nss/lib/softoken/fipsaudt.c:90,1
    - Dst: PR_snprintf
      Src: /src/nss/lib/softoken/fipsaudt.c:92,1
    - Dst: sftk_LogAuditMessage
      Src: /src/nss/lib/softoken/fipsaudt.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - hSession
    - hObject
    - pTemplate
    - ulCount
    - phNewObject
    - rv
    argTypes:
    - CK_SESSION_HANDLE
    - CK_OBJECT_HANDLE
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    - CK_OBJECT_HANDLE_PTR
    - CK_RV
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 98
    functionName: sftk_AuditCopyObject
    functionSourceFile: /src/nss/lib/softoken/fipsaudt.c
    functionUses: 1
    functionsReached:
    - sftk_PrintReturnedObjectHandle
    - PR_snprintf
    - sftk_LogAuditMessage
    linkageType: ''
    returnType: void
    signature: "void sftk_AuditCopyObject(CK_SESSION_HANDLE hSession,\n                     CK_OBJECT_HANDLE
      hObject, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount,\n                     CK_OBJECT_HANDLE_PTR
      phNewObject, CK_RV rv)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_snprintf
      Src: /src/nss/lib/softoken/fipsaudt.c:108,1
    - Dst: sftk_LogAuditMessage
      Src: /src/nss/lib/softoken/fipsaudt.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hSession
    - hObject
    - rv
    argTypes:
    - CK_SESSION_HANDLE
    - CK_OBJECT_HANDLE
    - CK_RV
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 112
    functionName: sftk_AuditDestroyObject
    functionSourceFile: /src/nss/lib/softoken/fipsaudt.c
    functionUses: 1
    functionsReached:
    - PR_snprintf
    - sftk_LogAuditMessage
    linkageType: ''
    returnType: void
    signature: "void sftk_AuditDestroyObject(CK_SESSION_HANDLE hSession,\n                        CK_OBJECT_HANDLE
      hObject, CK_RV rv)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_snprintf
      Src: /src/nss/lib/softoken/fipsaudt.c:121,1
    - Dst: sftk_LogAuditMessage
      Src: /src/nss/lib/softoken/fipsaudt.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - hSession
    - hObject
    - pulSize
    - rv
    argTypes:
    - CK_SESSION_HANDLE
    - CK_OBJECT_HANDLE
    - CK_ULONG_PTR
    - CK_RV
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 127
    functionName: sftk_AuditGetObjectSize
    functionSourceFile: /src/nss/lib/softoken/fipsaudt.c
    functionUses: 1
    functionsReached:
    - PR_snprintf
    - sftk_LogAuditMessage
    linkageType: ''
    returnType: void
    signature: "void sftk_AuditGetObjectSize(CK_SESSION_HANDLE hSession,\n                        CK_OBJECT_HANDLE
      hObject, CK_ULONG_PTR pulSize, CK_RV rv)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_snprintf
      Src: /src/nss/lib/softoken/fipsaudt.c:137,1
    - Dst: sftk_LogAuditMessage
      Src: /src/nss/lib/softoken/fipsaudt.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - hSession
    - hObject
    - pTemplate
    - ulCount
    - rv
    argTypes:
    - CK_SESSION_HANDLE
    - CK_OBJECT_HANDLE
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    - CK_RV
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 143
    functionName: sftk_AuditGetAttributeValue
    functionSourceFile: /src/nss/lib/softoken/fipsaudt.c
    functionUses: 1
    functionsReached:
    - PR_snprintf
    - sftk_LogAuditMessage
    linkageType: ''
    returnType: void
    signature: "void sftk_AuditGetAttributeValue(CK_SESSION_HANDLE hSession,\n                            CK_OBJECT_HANDLE
      hObject, CK_ATTRIBUTE_PTR pTemplate,\n                            CK_ULONG ulCount,
      CK_RV rv)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_snprintf
      Src: /src/nss/lib/softoken/fipsaudt.c:153,1
    - Dst: sftk_LogAuditMessage
      Src: /src/nss/lib/softoken/fipsaudt.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - hSession
    - hObject
    - pTemplate
    - ulCount
    - rv
    argTypes:
    - CK_SESSION_HANDLE
    - CK_OBJECT_HANDLE
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    - CK_RV
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 159
    functionName: sftk_AuditSetAttributeValue
    functionSourceFile: /src/nss/lib/softoken/fipsaudt.c
    functionUses: 1
    functionsReached:
    - PR_snprintf
    - sftk_LogAuditMessage
    linkageType: ''
    returnType: void
    signature: "void sftk_AuditSetAttributeValue(CK_SESSION_HANDLE hSession,\n                            CK_OBJECT_HANDLE
      hObject, CK_ATTRIBUTE_PTR pTemplate,\n                            CK_ULONG ulCount,
      CK_RV rv)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sftk_PrintMechanism
      Src: /src/nss/lib/softoken/fipsaudt.c:169,1
    - Dst: PR_snprintf
      Src: /src/nss/lib/softoken/fipsaudt.c:170,1
    - Dst: sftk_LogAuditMessage
      Src: /src/nss/lib/softoken/fipsaudt.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - opName
    - hSession
    - pMechanism
    - hKey
    - rv
    argTypes:
    - char*
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_OBJECT_HANDLE
    - CK_RV
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 176
    functionName: sftk_AuditCryptInit
    functionSourceFile: /src/nss/lib/softoken/fipsaudt.c
    functionUses: 10
    functionsReached:
    - PR_snprintf
    - sftk_LogAuditMessage
    - sftk_PrintMechanism
    linkageType: ''
    returnType: void
    signature: "void sftk_AuditCryptInit(const char *opName, CK_SESSION_HANDLE hSession,\n
      \                   CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hKey, CK_RV
      rv)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sftk_PrintMechanism
      Src: /src/nss/lib/softoken/fipsaudt.c:188,1
    - Dst: sftk_PrintReturnedObjectHandle
      Src: /src/nss/lib/softoken/fipsaudt.c:189,1
    - Dst: PR_snprintf
      Src: /src/nss/lib/softoken/fipsaudt.c:190,1
    - Dst: sftk_LogAuditMessage
      Src: /src/nss/lib/softoken/fipsaudt.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - hSession
    - pMechanism
    - pTemplate
    - ulCount
    - phKey
    - rv
    argTypes:
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    - CK_OBJECT_HANDLE_PTR
    - CK_RV
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 196
    functionName: sftk_AuditGenerateKey
    functionSourceFile: /src/nss/lib/softoken/fipsaudt.c
    functionUses: 1
    functionsReached:
    - sftk_PrintReturnedObjectHandle
    - PR_snprintf
    - sftk_LogAuditMessage
    - sftk_PrintMechanism
    linkageType: ''
    returnType: void
    signature: "void sftk_AuditGenerateKey(CK_SESSION_HANDLE hSession,\n                      CK_MECHANISM_PTR
      pMechanism, CK_ATTRIBUTE_PTR pTemplate,\n                      CK_ULONG ulCount,
      CK_OBJECT_HANDLE_PTR phKey, CK_RV rv)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sftk_PrintMechanism
      Src: /src/nss/lib/softoken/fipsaudt.c:211,1
    - Dst: sftk_PrintReturnedObjectHandle
      Src: /src/nss/lib/softoken/fipsaudt.c:212,1
    - Dst: sftk_PrintReturnedObjectHandle
      Src: /src/nss/lib/softoken/fipsaudt.c:214,1
    - Dst: PR_snprintf
      Src: /src/nss/lib/softoken/fipsaudt.c:216,1
    - Dst: sftk_LogAuditMessage
      Src: /src/nss/lib/softoken/fipsaudt.c:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 9
    argNames:
    - hSession
    - pMechanism
    - pPublicKeyTemplate
    - ulPublicKeyAttributeCount
    - pPrivateKeyTemplate
    - ulPrivateKeyAttributeCount
    - phPublicKey
    - phPrivateKey
    - rv
    argTypes:
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    - CK_OBJECT_HANDLE_PTR
    - CK_OBJECT_HANDLE_PTR
    - CK_RV
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 198
    functionDepth: 2
    functionLinenumber: 198
    functionLinenumberEnd: 226
    functionName: sftk_AuditGenerateKeyPair
    functionSourceFile: /src/nss/lib/softoken/fipsaudt.c
    functionUses: 1
    functionsReached:
    - sftk_PrintReturnedObjectHandle
    - PR_snprintf
    - sftk_LogAuditMessage
    - sftk_PrintMechanism
    linkageType: ''
    returnType: void
    signature: "void sftk_AuditGenerateKeyPair(CK_SESSION_HANDLE hSession,\n                          CK_MECHANISM_PTR
      pMechanism, CK_ATTRIBUTE_PTR pPublicKeyTemplate,\n                          CK_ULONG
      ulPublicKeyAttributeCount, CK_ATTRIBUTE_PTR pPrivateKeyTemplate,\n                          CK_ULONG
      ulPrivateKeyAttributeCount, CK_OBJECT_HANDLE_PTR phPublicKey,\n                          CK_OBJECT_HANDLE_PTR
      phPrivateKey, CK_RV rv)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sftk_PrintMechanism
      Src: /src/nss/lib/softoken/fipsaudt.c:238,1
    - Dst: PR_snprintf
      Src: /src/nss/lib/softoken/fipsaudt.c:239,1
    - Dst: sftk_LogAuditMessage
      Src: /src/nss/lib/softoken/fipsaudt.c:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 7
    argNames:
    - hSession
    - pMechanism
    - hWrappingKey
    - hKey
    - pWrappedKey
    - pulWrappedKeyLen
    - rv
    argTypes:
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_OBJECT_HANDLE
    - CK_OBJECT_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    - CK_RV
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 228
    functionDepth: 2
    functionLinenumber: 228
    functionLinenumberEnd: 245
    functionName: sftk_AuditWrapKey
    functionSourceFile: /src/nss/lib/softoken/fipsaudt.c
    functionUses: 1
    functionsReached:
    - PR_snprintf
    - sftk_LogAuditMessage
    - sftk_PrintMechanism
    linkageType: ''
    returnType: void
    signature: "void sftk_AuditWrapKey(CK_SESSION_HANDLE hSession,\n                  CK_MECHANISM_PTR
      pMechanism, CK_OBJECT_HANDLE hWrappingKey,\n                  CK_OBJECT_HANDLE
      hKey, CK_BYTE_PTR pWrappedKey,\n                  CK_ULONG_PTR pulWrappedKeyLen,
      CK_RV rv)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sftk_PrintMechanism
      Src: /src/nss/lib/softoken/fipsaudt.c:259,1
    - Dst: sftk_PrintReturnedObjectHandle
      Src: /src/nss/lib/softoken/fipsaudt.c:260,1
    - Dst: PR_snprintf
      Src: /src/nss/lib/softoken/fipsaudt.c:261,1
    - Dst: sftk_LogAuditMessage
      Src: /src/nss/lib/softoken/fipsaudt.c:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 9
    argNames:
    - hSession
    - pMechanism
    - hUnwrappingKey
    - pWrappedKey
    - ulWrappedKeyLen
    - pTemplate
    - ulAttributeCount
    - phKey
    - rv
    argTypes:
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_OBJECT_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    - CK_OBJECT_HANDLE_PTR
    - CK_RV
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 247
    functionDepth: 2
    functionLinenumber: 247
    functionLinenumberEnd: 269
    functionName: sftk_AuditUnwrapKey
    functionSourceFile: /src/nss/lib/softoken/fipsaudt.c
    functionUses: 1
    functionsReached:
    - sftk_PrintReturnedObjectHandle
    - PR_snprintf
    - sftk_LogAuditMessage
    - sftk_PrintMechanism
    linkageType: ''
    returnType: void
    signature: "void sftk_AuditUnwrapKey(CK_SESSION_HANDLE hSession,\n                    CK_MECHANISM_PTR
      pMechanism, CK_OBJECT_HANDLE hUnwrappingKey,\n                    CK_BYTE_PTR
      pWrappedKey, CK_ULONG ulWrappedKeyLen,\n                    CK_ATTRIBUTE_PTR
      pTemplate, CK_ULONG ulAttributeCount,\n                    CK_OBJECT_HANDLE_PTR
      phKey, CK_RV rv)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sftk_PrintMechanism
      Src: /src/nss/lib/softoken/fipsaudt.c:283,1
    - Dst: sftk_PrintReturnedObjectHandle
      Src: /src/nss/lib/softoken/fipsaudt.c:284,1
    - Dst: PR_snprintf
      Src: /src/nss/lib/softoken/fipsaudt.c:290,1
    - Dst: PR_snprintf
      Src: /src/nss/lib/softoken/fipsaudt.c:300,1
    - Dst: sftk_LogAuditMessage
      Src: /src/nss/lib/softoken/fipsaudt.c:307,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 7
    argNames:
    - hSession
    - pMechanism
    - hBaseKey
    - pTemplate
    - ulAttributeCount
    - phKey
    - rv
    argTypes:
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_OBJECT_HANDLE
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    - CK_OBJECT_HANDLE_PTR
    - CK_RV
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 271
    functionDepth: 2
    functionLinenumber: 271
    functionLinenumberEnd: 308
    functionName: sftk_AuditDeriveKey
    functionSourceFile: /src/nss/lib/softoken/fipsaudt.c
    functionUses: 1
    functionsReached:
    - sftk_PrintReturnedObjectHandle
    - PR_snprintf
    - sftk_LogAuditMessage
    - sftk_PrintMechanism
    linkageType: ''
    returnType: void
    signature: "void sftk_AuditDeriveKey(CK_SESSION_HANDLE hSession,\n                    CK_MECHANISM_PTR
      pMechanism, CK_OBJECT_HANDLE hBaseKey,\n                    CK_ATTRIBUTE_PTR
      pTemplate, CK_ULONG ulAttributeCount,\n                    CK_OBJECT_HANDLE_PTR
      phKey, CK_RV rv)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_snprintf
      Src: /src/nss/lib/softoken/fipsaudt.c:317,1
    - Dst: sftk_LogAuditMessage
      Src: /src/nss/lib/softoken/fipsaudt.c:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hSession
    - hKey
    - rv
    argTypes:
    - CK_SESSION_HANDLE
    - CK_OBJECT_HANDLE
    - CK_RV
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 310
    functionDepth: 2
    functionLinenumber: 310
    functionLinenumberEnd: 321
    functionName: sftk_AuditDigestKey
    functionSourceFile: /src/nss/lib/softoken/fipsaudt.c
    functionUses: 1
    functionsReached:
    - PR_snprintf
    - sftk_LogAuditMessage
    linkageType: ''
    returnType: void
    signature: "void sftk_AuditDigestKey(CK_SESSION_HANDLE hSession,\n                    CK_OBJECT_HANDLE
      hKey, CK_RV rv)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - pk11ParamSet
    argTypes:
    - CK_NSS_KEM_PARAMETER_SET_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 25
    functionName: sftk_kyber_PK11ParamToInternal
    functionSourceFile: /src/nss/lib/softoken/kem.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: KyberParams
    signature: KyberParams sftk_kyber_PK11ParamToInternal(CK_NSS_KEM_PARAMETER_SET_TYPE
      pk11ParamSet)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/softoken/kem.c:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - params
    - pubkey
    argTypes:
    - KyberParams
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 39
    functionName: sftk_kyber_AllocPubKeyItem
    functionSourceFile: /src/nss/lib/softoken/kem.c
    functionUses: 1
    functionsReached:
    - SECITEM_AllocItem
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      sftk_kyber_AllocPubKeyItem(KyberParams params, SECItem *pubkey)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/softoken/kem.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - params
    - privkey
    argTypes:
    - KyberParams
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 53
    functionName: sftk_kyber_AllocPrivKeyItem
    functionSourceFile: /src/nss/lib/softoken/kem.c
    functionUses: 1
    functionsReached:
    - SECITEM_AllocItem
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      sftk_kyber_AllocPrivKeyItem(KyberParams params, SECItem *privkey)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/softoken/kem.c:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - params
    - ciphertext
    argTypes:
    - KyberParams
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 67
    functionName: sftk_kyber_AllocCiphertextItem
    functionSourceFile: /src/nss/lib/softoken/kem.c
    functionUses: 0
    functionsReached:
    - SECITEM_AllocItem
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      sftk_kyber_AllocCiphertextItem(KyberParams params, SECItem *ciphertext)'
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - params
    argTypes:
    - CK_NSS_KEM_PARAMETER_SET_TYPE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 82
    functionName: sftk_kyber_ValidateParams
    functionSourceFile: /src/nss/lib/softoken/kem.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool sftk_kyber_ValidateParams(const CK_NSS_KEM_PARAMETER_SET_TYPE
      *params)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sftk_kyber_ValidateParams
      Src: /src/nss/lib/softoken/kem.c:93,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - pMechanism
    argTypes:
    - CK_MECHANISM_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 97
    functionName: sftk_kem_ValidateMechanism
    functionSourceFile: /src/nss/lib/softoken/kem.c
    functionUses: 0
    functionsReached:
    - sftk_kyber_ValidateParams
    linkageType: ''
    returnType: PRBool
    signature: PRBool sftk_kem_ValidateMechanism(CK_MECHANISM_PTR pMechanism)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sftk_kem_ValidateMechanism
      Src: /src/nss/lib/softoken/kem.c:103,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/kem.c:104,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/kem.c:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - pMechanism
    argTypes:
    - CK_MECHANISM_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 99
    functionDepth: 2
    functionLinenumber: 99
    functionLinenumberEnd: 120
    functionName: sftk_kem_CiphertextLen
    functionSourceFile: /src/nss/lib/softoken/kem.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - sftk_kem_ValidateMechanism
    linkageType: ''
    returnType: CK_ULONG
    signature: CK_ULONG sftk_kem_CiphertextLen(CK_MECHANISM_PTR pMechanism)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/kem.c:146,1
    - Dst: sftk_kem_ValidateMechanism
      Src: /src/nss/lib/softoken/kem.c:152,1
    - Dst: sftk_kem_CiphertextLen
      Src: /src/nss/lib/softoken/kem.c:156,1
    - Dst: sftk_SessionFromHandle
      Src: /src/nss/lib/softoken/kem.c:163,1
    - Dst: sftk_SlotFromSessionHandle
      Src: /src/nss/lib/softoken/kem.c:167,1
    - Dst: sftk_NewObject
      Src: /src/nss/lib/softoken/kem.c:173,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/kem.c:179,1
    - Dst: sftk_attr_expand
      Src: /src/nss/lib/softoken/kem.c:179,1
    - Dst: sftk_ObjectFromHandle
      Src: /src/nss/lib/softoken/kem.c:185,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/kem.c:190,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/kem.c:206,1
    - Dst: sftk_kyber_PK11ParamToInternal
      Src: /src/nss/lib/softoken/kem.c:208,1
    - Dst: Kyber_Encapsulate
      Src: /src/nss/lib/softoken/kem.c:209,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/kem.c:211,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/kem.c:215,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/kem.c:215,1
    - Dst: sftk_handleObject
      Src: /src/nss/lib/softoken/kem.c:220,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/kem.c:236,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/kem.c:239,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/kem.c:245,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/kem.c:251,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 96
    argCount: 8
    argNames:
    - hSession
    - pMechanism
    - hPublicKey
    - pTemplate
    - ulAttributeCount
    - phKey
    - pCiphertext
    - pulCiphertextLen
    argTypes:
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_OBJECT_HANDLE
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    - CK_OBJECT_HANDLE_PTR
    - CK_BYTE_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 125
    functionDepth: 8
    functionLinenumber: 125
    functionLinenumberEnd: 254
    functionName: NSC_Encapsulate
    functionSourceFile: /src/nss/lib/softoken/kem.c
    functionUses: 0
    functionsReached:
    - sftk_SessionFromHandle
    - sftk_kem_ValidateMechanism
    - sftk_NewObject
    - sftk_item_expand
    - sftk_attr_expand
    - sftk_AddAttributeType
    - sftk_kyber_PK11ParamToInternal
    - sftk_handleObject
    - PORT_Assert
    - sftk_FreeAttribute
    - sftk_kem_CiphertextLen
    - sftk_ObjectFromHandle
    - sftk_FreeSession
    - sftk_FindAttribute
    - PORT_GetError
    - sftk_SlotFromSessionHandle
    - CHECK_FORK
    - sftk_forceAttribute
    - Kyber_Encapsulate
    - sftk_FreeObject
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_Encapsulate(CK_SESSION_HANDLE hSession,\n                CK_MECHANISM_PTR
      pMechanism,\n                CK_OBJECT_HANDLE hPublicKey,\n                CK_ATTRIBUTE_PTR
      pTemplate,\n                CK_ULONG ulAttributeCount,\n                /* out
      */ CK_OBJECT_HANDLE_PTR phKey,\n                /* out */ CK_BYTE_PTR pCiphertext,\n
      \               /* out */ CK_ULONG_PTR pulCiphertextLen)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_FORK
      Src: /src/nss/lib/softoken/kem.c:277,1
    - Dst: sftk_kem_ValidateMechanism
      Src: /src/nss/lib/softoken/kem.c:283,1
    - Dst: sftk_kem_CiphertextLen
      Src: /src/nss/lib/softoken/kem.c:287,1
    - Dst: sftk_SessionFromHandle
      Src: /src/nss/lib/softoken/kem.c:293,1
    - Dst: sftk_SlotFromSessionHandle
      Src: /src/nss/lib/softoken/kem.c:297,1
    - Dst: sftk_NewObject
      Src: /src/nss/lib/softoken/kem.c:303,1
    - Dst: sftk_AddAttributeType
      Src: /src/nss/lib/softoken/kem.c:309,1
    - Dst: sftk_attr_expand
      Src: /src/nss/lib/softoken/kem.c:309,1
    - Dst: sftk_ObjectFromHandle
      Src: /src/nss/lib/softoken/kem.c:315,1
    - Dst: sftk_FindAttribute
      Src: /src/nss/lib/softoken/kem.c:320,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/kem.c:336,1
    - Dst: sftk_kyber_PK11ParamToInternal
      Src: /src/nss/lib/softoken/kem.c:338,1
    - Dst: Kyber_Decapsulate
      Src: /src/nss/lib/softoken/kem.c:339,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/kem.c:341,1
    - Dst: sftk_forceAttribute
      Src: /src/nss/lib/softoken/kem.c:345,1
    - Dst: sftk_item_expand
      Src: /src/nss/lib/softoken/kem.c:345,1
    - Dst: sftk_handleObject
      Src: /src/nss/lib/softoken/kem.c:350,1
    - Dst: sftk_FreeSession
      Src: /src/nss/lib/softoken/kem.c:363,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/kem.c:366,1
    - Dst: sftk_FreeObject
      Src: /src/nss/lib/softoken/kem.c:372,1
    - Dst: sftk_FreeAttribute
      Src: /src/nss/lib/softoken/kem.c:378,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 94
    argCount: 8
    argNames:
    - hSession
    - pMechanism
    - hPrivateKey
    - pCiphertext
    - ulCiphertextLen
    - pTemplate
    - ulAttributeCount
    - phKey
    argTypes:
    - CK_SESSION_HANDLE
    - CK_MECHANISM_PTR
    - CK_OBJECT_HANDLE
    - CK_BYTE_PTR
    - CK_ULONG
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    - CK_OBJECT_HANDLE_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 256
    functionDepth: 8
    functionLinenumber: 256
    functionLinenumberEnd: 381
    functionName: NSC_Decapsulate
    functionSourceFile: /src/nss/lib/softoken/kem.c
    functionUses: 0
    functionsReached:
    - sftk_SessionFromHandle
    - sftk_kem_ValidateMechanism
    - sftk_item_expand
    - sftk_attr_expand
    - sftk_AddAttributeType
    - sftk_kyber_PK11ParamToInternal
    - sftk_handleObject
    - PORT_Assert
    - Kyber_Decapsulate
    - sftk_FreeAttribute
    - sftk_kem_CiphertextLen
    - sftk_ObjectFromHandle
    - sftk_FreeSession
    - sftk_FindAttribute
    - PORT_GetError
    - sftk_SlotFromSessionHandle
    - CHECK_FORK
    - sftk_forceAttribute
    - sftk_NewObject
    - sftk_FreeObject
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV NSC_Decapsulate(CK_SESSION_HANDLE hSession,\n                CK_MECHANISM_PTR
      pMechanism,\n                CK_OBJECT_HANDLE hPrivateKey,\n                CK_BYTE_PTR
      pCiphertext,\n                CK_ULONG ulCiphertextLen,\n                CK_ATTRIBUTE_PTR
      pTemplate,\n                CK_ULONG ulAttributeCount,\n                /* out
      */ CK_OBJECT_HANDLE_PTR phKey)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaGrow
      Src: /src/nss/lib/softoken/padbuf.c:33,1
    - Dst: PORT_Realloc
      Src: /src/nss/lib/softoken/padbuf.c:35,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/padbuf.c:39,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 5
    argNames:
    - arena
    - inbuf
    - inlen
    - outlen
    - blockSize
    argTypes:
    - PLArenaPool*
    - unsigned char*
    - unsigned int
    - unsigned int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 49
    functionName: CBC_PadBuffer
    functionSourceFile: /src/nss/lib/softoken/padbuf.c
    functionUses: 4
    functionsReached:
    - PORT_SetError
    - PORT_Realloc
    - PORT_ArenaGrow
    linkageType: ''
    returnType: unsigned char
    signature: "unsigned char *\nCBC_PadBuffer(PLArenaPool *arena, unsigned char *inbuf,
      unsigned int inlen,\n              unsigned int *outlen, int blockSize)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: lg_getCertDB
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:37,1
    - Dst: lg_isTrue
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:43,1
    - Dst: lg_GetULongAttribute
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:48,1
    - Dst: lg_FindAttribute
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:64,1
    - Dst: lg_getString
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:73,1
    - Dst: nsslowcert_FindCertByDERCert
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:75,1
    - Dst: nsslowcert_DecodeDERCertificate
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:77,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:82,1
    - Dst: lg_getKeyDB
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:86,1
    - Dst: nsslowkey_KeyForCertExists
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:88,1
    - Dst: nsslowcert_AddPermCert
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:96,1
    - Dst: nsslowcert_ChangeCertTrust
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:98,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:102,1
    - Dst: nsslowcert_DestroyCertificate
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:105,1
    - Dst: lg_getString
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:112,1
    - Dst: nsslowcert_ReadDBSMimeEntry
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:116,1
    - Dst: nsslowcert_SaveSMimeProfile
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:118,1
    - Dst: nsslowcert_DestroyDBEntry
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:121,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:123,1
    - Dst: lg_mkHandle
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:125,1
    - Dst: nsslowcert_DestroyCertificate
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:126,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 64
    argCount: 4
    argNames:
    - sdb
    - handle
    - templ
    - count
    argTypes:
    - SDB*
    - CK_OBJECT_HANDLE*
    - CK_ATTRIBUTE*
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 129
    functionName: lg_createCertObject
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgcreate.c
    functionUses: 0
    functionsReached:
    - lg_isTrue
    - nsslowcert_DecodeDERCertificate
    - lg_GetULongAttribute
    - lg_getString
    - PORT_Free
    - nsslowcert_AddPermCert
    - lg_FindAttribute
    - nsslowcert_FindCertByDERCert
    - nsslowcert_DestroyDBEntry
    - nsslowcert_ChangeCertTrust
    - nsslowcert_ReadDBSMimeEntry
    - nsslowcert_DestroyCertificate
    - lg_getKeyDB
    - lg_mkHandle
    - lg_getCertDB
    - nsslowkey_KeyForCertExists
    - nsslowcert_SaveSMimeProfile
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV lg_createCertObject(SDB *sdb, CK_OBJECT_HANDLE *handle,\n                    const
      CK_ATTRIBUTE *templ, CK_ULONG count)"
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 2
    argNames:
    - trust
    - clientAuth
    argTypes:
    - CK_TRUST
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 154
    functionName: lg_MapTrust
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgcreate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int lg_MapTrust(CK_TRUST trust, PRBool clientAuth)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: lg_getCertDB
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:175,1
    - Dst: lg_isTrue
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:179,1
    - Dst: lg_FindAttribute
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:187,1
    - Dst: lg_FindAttribute
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:188,1
    - Dst: nsslowcert_FindCertByIssuerAndSN
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:197,1
    - Dst: lg_GetULongAttribute
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:204,1
    - Dst: lg_GetULongAttribute
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:205,1
    - Dst: lg_GetULongAttribute
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:206,1
    - Dst: lg_GetULongAttribute
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:207,1
    - Dst: lg_GetULongAttribute
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:208,1
    - Dst: lg_GetULongAttribute
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:209,1
    - Dst: lg_GetULongAttribute
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:210,1
    - Dst: lg_GetULongAttribute
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:211,1
    - Dst: lg_FindAttribute
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:213,1
    - Dst: lg_MapTrust
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:229,1
    - Dst: lg_MapTrust
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:230,1
    - Dst: lg_MapTrust
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:231,1
    - Dst: lg_MapTrust
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:232,1
    - Dst: nsslowcert_ChangeCertTrust
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:237,1
    - Dst: lg_mkHandle
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:238,1
    - Dst: nsslowcert_DestroyCertificate
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:239,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 53
    argCount: 5
    argNames:
    - sdb
    - handle
    - templ
    - count
    - lgClass
    argTypes:
    - SDB*
    - CK_OBJECT_HANDLE*
    - CK_ATTRIBUTE*
    - CK_ULONG
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 245
    functionName: lg_createTrustObject
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgcreate.c
    functionUses: 0
    functionsReached:
    - lg_isTrue
    - lg_GetULongAttribute
    - lg_FindAttribute
    - nsslowcert_ChangeCertTrust
    - nsslowcert_DestroyCertificate
    - nsslowcert_FindCertByIssuerAndSN
    - lg_mkHandle
    - lg_getCertDB
    - lg_MapTrust
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV lg_createTrustObject(SDB *sdb, CK_OBJECT_HANDLE *handle,\n                     const
      CK_ATTRIBUTE *templ, CK_ULONG count,\n                     CK_OBJECT_HANDLE
      lgClass)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: lg_isTrue
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:266,1
    - Dst: lg_getCertDB
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:270,1
    - Dst: lg_FindAttribute
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:276,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:277,1
    - Dst: lg_FindAttribute
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:288,1
    - Dst: lg_FindAttribute
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:297,1
    - Dst: lg_getString
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:305,1
    - Dst: nsslowcert_SaveSMimeProfile
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:312,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:319,1
    - Dst: lg_mkHandle
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:321,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:325,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 52
    argCount: 4
    argNames:
    - sdb
    - handle
    - templ
    - count
    argTypes:
    - SDB*
    - CK_OBJECT_HANDLE*
    - CK_ATTRIBUTE*
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 328
    functionName: lg_createSMimeObject
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgcreate.c
    functionUses: 0
    functionsReached:
    - lg_isTrue
    - PORT_Assert
    - lg_getString
    - PORT_Free
    - lg_FindAttribute
    - PORT_Strlen
    - lg_mkHandle
    - lg_getCertDB
    - nsslowcert_SaveSMimeProfile
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV lg_createSMimeObject(SDB *sdb, CK_OBJECT_HANDLE *handle,\n                     const
      CK_ATTRIBUTE *templ, CK_ULONG count)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: lg_getCertDB
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:344,1
    - Dst: lg_isTrue
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:347,1
    - Dst: lg_FindAttribute
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:356,1
    - Dst: lg_FindAttribute
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:365,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:366,1
    - Dst: lg_getString
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:373,1
    - Dst: lg_isTrue
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:374,1
    - Dst: nsslowcert_AddCrl
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:377,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:380,1
    - Dst: lg_poisonHandle
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:388,1
    - Dst: lg_mkHandle
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:390,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 4
    argNames:
    - sdb
    - handle
    - templ
    - count
    argTypes:
    - SDB*
    - CK_OBJECT_HANDLE*
    - CK_ATTRIBUTE*
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 394
    functionName: lg_createCrlObject
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgcreate.c
    functionUses: 0
    functionsReached:
    - lg_isTrue
    - PORT_Assert
    - nsslowcert_AddCrl
    - lg_getString
    - PORT_Free
    - lg_poisonHandle
    - lg_FindAttribute
    - lg_mkHandle
    - lg_getCertDB
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV lg_createCrlObject(SDB *sdb, CK_OBJECT_HANDLE *handle,\n                   const
      CK_ATTRIBUTE *templ, CK_ULONG count)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: lg_Attribute2SSecItem
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:427,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:436,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:441,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:442,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:446,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:454,1
    - Dst: lg_getKeyDB
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:459,1
    - Dst: SHA1_HashBuf
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:466,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:467,1
    - Dst: nsslowkey_FindKeyByPublicKey
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:472,1
    - Dst: nsslowkey_FindKeyByPublicKey
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:476,1
    - Dst: lg_nsslowkey_DestroyPrivateKey
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:485,1
    - Dst: lg_mkHandle
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:488,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:491,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:493,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 70
    argCount: 5
    argNames:
    - sdb
    - key_type
    - handle
    - templ
    - count
    argTypes:
    - SDB*
    - CK_KEY_TYPE
    - CK_OBJECT_HANDLE*
    - CK_ATTRIBUTE*
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 497
    functionName: lg_createPublicKeyObject
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgcreate.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - lg_Attribute2SSecItem
    - PORT_Memcpy
    - PORT_NewArena
    - nsslowkey_FindKeyByPublicKey
    - PORT_FreeArena
    - PORT_Free
    - SEC_QuickDERDecodeItem
    - lg_getKeyDB
    - SHA1_HashBuf
    - lg_mkHandle
    - SEC_ASN1_GET
    - lg_nsslowkey_DestroyPrivateKey
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV lg_createPublicKeyObject(SDB *sdb, CK_KEY_TYPE key_type,\n                         CK_OBJECT_HANDLE
      *handle, const CK_ATTRIBUTE *templ, CK_ULONG count)"
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:509,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:516,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:518,1
    - Dst: lg_Attribute2SSecItem
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:528,1
    - Dst: lg_Attribute2SSecItem
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:532,1
    - Dst: lg_PrivAttr2SSecItem
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:536,1
    - Dst: lg_PrivAttr2SSecItem
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:540,1
    - Dst: lg_PrivAttr2SSecItem
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:544,1
    - Dst: lg_PrivAttr2SSecItem
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:548,1
    - Dst: lg_PrivAttr2SSecItem
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:552,1
    - Dst: lg_PrivAttr2SSecItem
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:556,1
    - Dst: DER_SetUInteger
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:560,1
    - Dst: lg_Attribute2SSecItem
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:568,1
    - Dst: lg_Attribute2SSecItem
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:572,1
    - Dst: lg_Attribute2SSecItem
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:576,1
    - Dst: lg_PrivAttr2SSecItem
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:580,1
    - Dst: lg_hasAttribute
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:584,1
    - Dst: lg_Attribute2SSecItem
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:585,1
    - Dst: lg_Attribute2SSecItem
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:594,1
    - Dst: lg_Attribute2SSecItem
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:598,1
    - Dst: lg_PrivAttr2SSecItem
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:602,1
    - Dst: lg_hasAttribute
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:606,1
    - Dst: lg_Attribute2SSecItem
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:607,1
    - Dst: lg_Attribute2SSecItem
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:616,1
    - Dst: LGEC_FillParams
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:624,1
    - Dst: lg_PrivAttr2SSecItem
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:629,1
    - Dst: lg_hasAttribute
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:633,1
    - Dst: lg_Attribute2SSecItem
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:634,1
    - Dst: DER_SetUInteger
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:641,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:653,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 108
    argCount: 5
    argNames:
    - sdb
    - templ
    - count
    - key_type
    - crvp
    argTypes:
    - SDB*
    - CK_ATTRIBUTE*
    - CK_ULONG
    - CK_KEY_TYPE
    - CK_RV*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 500
    functionDepth: 1
    functionLinenumber: 500
    functionLinenumberEnd: 657
    functionName: lg_mkPrivKey
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgcreate.c
    functionUses: 0
    functionsReached:
    - lg_Attribute2SSecItem
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - PORT_FreeArena
    - lg_hasAttribute
    - LGEC_FillParams
    - lg_PrivAttr2SSecItem
    - DER_SetUInteger
    linkageType: ''
    returnType: NSSLOWKEYPrivateKey
    signature: "NSSLOWKEYPrivateKey *\nlg_mkPrivKey(SDB *sdb, const CK_ATTRIBUTE *templ,
      CK_ULONG count,\n             CK_KEY_TYPE key_type, CK_RV *crvp)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: lg_getKeyDB
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:671,1
    - Dst: lg_mkPrivKey
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:677,1
    - Dst: lg_getString
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:680,1
    - Dst: lg_Attribute2SSecItem
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:682,1
    - Dst: SHA1_HashBuf
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:691,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:692,1
    - Dst: RSA_PrivateKeyCheck
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:698,1
    - Dst: nsslowkey_StoreKeyByPublicKey
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:703,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:708,1
    - Dst: lg_mkHandle
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:709,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:711,1
    - Dst: lg_nsslowkey_DestroyPrivateKey
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:712,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 5
    argNames:
    - sdb
    - key_type
    - handle
    - templ
    - count
    argTypes:
    - SDB*
    - CK_KEY_TYPE
    - CK_OBJECT_HANDLE*
    - CK_ATTRIBUTE*
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 662
    functionDepth: 2
    functionLinenumber: 662
    functionLinenumberEnd: 717
    functionName: lg_createPrivateKeyObject
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgcreate.c
    functionUses: 0
    functionsReached:
    - nsslowkey_StoreKeyByPublicKey
    - lg_Attribute2SSecItem
    - PORT_Memcpy
    - lg_getString
    - PORT_Free
    - RSA_PrivateKeyCheck
    - SHA1_HashBuf
    - lg_getKeyDB
    - lg_mkHandle
    - lg_mkPrivKey
    - lg_nsslowkey_DestroyPrivateKey
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV lg_createPrivateKeyObject(SDB *sdb, CK_KEY_TYPE key_type,\n
      \                         CK_OBJECT_HANDLE *handle, const CK_ATTRIBUTE *templ,
      CK_ULONG count)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strdup
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:734,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:738,1
    - Dst: nsslowkey_KeyForIDExists
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:739,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:742,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:746,1
    - Dst: RNG_GenerateGlobalRandomBytes
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:754,1
    - Dst: nsslowkey_KeyForIDExists
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:755,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:760,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 3
    argNames:
    - handle
    - id
    - label
    argTypes:
    - NSSLOWKEYDBHandle*
    - SECItem*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 725
    functionDepth: 1
    functionLinenumber: 725
    functionLinenumberEnd: 765
    functionName: lg_GenerateSecretCKA_ID
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgcreate.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_Free
    - PORT_Strlen
    - RNG_GenerateGlobalRandomBytes
    - nsslowkey_KeyForIDExists
    - PORT_Strdup
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV lg_GenerateSecretCKA_ID(NSSLOWKEYDBHandle *handle, SECItem *id,
      char *label)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:781,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:788,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:810,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:816,1
    - Dst: lg_PrivAttr2SecItem
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:823,1
    - Dst: lg_GetULongAttribute
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:842,1
    - Dst: PR_htonl
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:848,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:851,1
    - Dst: DER_SetUInteger
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:858,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:867,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 64
    argCount: 5
    argNames:
    - templ
    - count
    - key_type
    - pubkey
    - sdbpw
    argTypes:
    - CK_ATTRIBUTE*
    - CK_ULONG
    - CK_KEY_TYPE
    - SECItem*
    - SDB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 767
    functionDepth: 1
    functionLinenumber: 767
    functionLinenumberEnd: 872
    functionName: lg_mkSecretKeyRep
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgcreate.c
    functionUses: 0
    functionsReached:
    - PORT_Memcpy
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - lg_GetULongAttribute
    - PORT_FreeArena
    - PORT_ArenaAlloc
    - SECITEM_CopyItem
    - lg_PrivAttr2SecItem
    - PR_htonl
    - DER_SetUInteger
    linkageType: ''
    returnType: NSSLOWKEYPrivateKey
    signature: "NSSLOWKEYPrivateKey *\nlg_mkSecretKeyRep(const CK_ATTRIBUTE *templ,\n
      \                 CK_ULONG count, CK_KEY_TYPE key_type,\n                  SECItem
      *pubkey, SDB *sdbpw)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: lg_getKeyDB
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:891,1
    - Dst: lg_getString
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:897,1
    - Dst: lg_Attribute2SecItem
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:899,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:907,1
    - Dst: lg_GenerateSecretCKA_ID
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:910,1
    - Dst: lg_mkSecretKeyRep
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:915,1
    - Dst: nsslowkey_StoreKeyByPublicKey
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:921,1
    - Dst: lg_mkHandle
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:928,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:932,1
    - Dst: lg_nsslowkey_DestroyPrivateKey
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:934,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:936,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 5
    argNames:
    - sdb
    - key_type
    - handle
    - templ
    - count
    argTypes:
    - SDB*
    - CK_KEY_TYPE
    - CK_OBJECT_HANDLE*
    - CK_ATTRIBUTE*
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 877
    functionDepth: 2
    functionLinenumber: 877
    functionLinenumberEnd: 939
    functionName: lg_createSecretKeyObject
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgcreate.c
    functionUses: 0
    functionsReached:
    - nsslowkey_StoreKeyByPublicKey
    - lg_getString
    - PORT_Free
    - lg_getKeyDB
    - lg_GenerateSecretCKA_ID
    - lg_mkHandle
    - lg_mkSecretKeyRep
    - lg_nsslowkey_DestroyPrivateKey
    - lg_Attribute2SecItem
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV lg_createSecretKeyObject(SDB *sdb, CK_KEY_TYPE key_type,\n                         CK_OBJECT_HANDLE
      *handle, const CK_ATTRIBUTE *templ, CK_ULONG count)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lg_GetULongAttribute
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:952,1
    - Dst: lg_createPublicKeyObject
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:959,1
    - Dst: lg_createPrivateKeyObject
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:961,1
    - Dst: lg_createSecretKeyObject
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:963,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 5
    argNames:
    - sdb
    - objclass
    - handle
    - templ
    - count
    argTypes:
    - SDB*
    - CK_OBJECT_CLASS
    - CK_OBJECT_HANDLE*
    - CK_ATTRIBUTE*
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 968
      start: 944
    functionDepth: 3
    functionLinenumber: 944
    functionLinenumberEnd: 968
    functionName: lg_createKeyObject
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgcreate.c
    functionUses: 0
    functionsReached:
    - lg_createSecretKeyObject
    - lg_createPublicKeyObject
    - lg_createPrivateKeyObject
    - lg_GetULongAttribute
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV lg_createKeyObject(SDB *sdb, CK_OBJECT_CLASS objclass,\n                   CK_OBJECT_HANDLE
      *handle, const CK_ATTRIBUTE *templ, CK_ULONG count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - sdb
    - handle
    argTypes:
    - SDB*
    - CK_OBJECT_HANDLE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 984
      start: 973
    functionDepth: 0
    functionLinenumber: 973
    functionLinenumberEnd: 984
    functionName: lg_GetNewObjectID
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgcreate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV lg_GetNewObjectID(SDB *sdb, CK_OBJECT_HANDLE *handle)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: lg_GetULongAttribute
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:998,1
    - Dst: lg_createCertObject
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:1007,1
    - Dst: lg_createTrustObject
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:1010,1
    - Dst: lg_createTrustObject
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:1014,1
    - Dst: lg_createCrlObject
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:1018,1
    - Dst: lg_createSMimeObject
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:1021,1
    - Dst: lg_createKeyObject
      Src: /src/nss/lib/softoken/legacydb/lgcreate.c:1026,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 4
    argNames:
    - sdb
    - handle
    - templ
    - count
    argTypes:
    - SDB*
    - CK_OBJECT_HANDLE*
    - CK_ATTRIBUTE*
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1034
      start: 990
    functionDepth: 4
    functionLinenumber: 990
    functionLinenumberEnd: 1034
    functionName: lg_CreateObject
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgcreate.c
    functionUses: 0
    functionsReached:
    - lg_createCertObject
    - lg_GetULongAttribute
    - lg_createSMimeObject
    - lg_createTrustObject
    - lg_createKeyObject
    - lg_createCrlObject
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV lg_CreateObject(SDB *sdb, CK_OBJECT_HANDLE *handle,\n                const
      CK_ATTRIBUTE *templ, CK_ULONG count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 171
    functionName: SKIP_AFTER_FORK
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgdb.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SKIP_AFTER_FORK(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 175
    functionName: SKIP_AFTER_FORK
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgdb.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SKIP_AFTER_FORK(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: ROUNDDIV
    functionSourceFile: /src/nss/lib/softoken/legacydb/dbmshim.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROUNDDIV(x, y)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - blobData
    argTypes:
    - DBT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 64
    functionName: dbs_IsBlob
    functionSourceFile: /src/nss/lib/softoken/legacydb/dbmshim.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool dbs_IsBlob(DBT *blobData)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - blobData
    argTypes:
    - DBT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: dbs_getBlobFileName
    functionSourceFile: /src/nss/lib/softoken/legacydb/dbmshim.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      dbs_getBlobFileName(DBT *blobData)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - blobData
    argTypes:
    - DBT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 90
    functionName: dbs_getBlobSize
    functionSourceFile: /src/nss/lib/softoken/legacydb/dbmshim.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRUint32
    signature: PRUint32 dbs_getBlobSize(DBT *blobData)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - cp
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 106
    functionName: dbs_replaceSlash
    functionSourceFile: /src/nss/lib/softoken/legacydb/dbmshim.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dbs_replaceSlash(char *cp, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA1_HashBuf
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:130,1
    - Dst: NSSBase64_EncodeItem
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:132,1
    - Dst: dbs_replaceSlash
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 4
    argNames:
    - dbsp
    - key
    - data
    - blobData
    argTypes:
    - DBS*
    - DBT*
    - DBT*
    - DBT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 138
    functionName: dbs_mkBlob
    functionSourceFile: /src/nss/lib/softoken/legacydb/dbmshim.c
    functionUses: 0
    functionsReached:
    - dbs_replaceSlash
    - NSSBase64_EncodeItem
    - SHA1_HashBuf
    linkageType: ''
    returnType: void
    signature: void dbs_mkBlob(DBS *dbsp, const DBT *key, const DBT *data, DBT *blobData)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PR_SetError
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:154,1
    - Dst: dbs_IsBlob
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:157,1
    - Dst: PR_SetError
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:158,1
    - Dst: dbs_getBlobFileName
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:161,1
    - Dst: PR_SetError
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:163,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:166,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - blobdir
    - blobData
    argTypes:
    - char*
    - DBT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 167
    functionName: dbs_getBlobFilePath
    functionSourceFile: /src/nss/lib/softoken/legacydb/dbmshim.c
    functionUses: 0
    functionsReached:
    - dbs_getBlobFileName
    - PR_SetError
    - PR_smprintf
    - dbs_IsBlob
    linkageType: ''
    returnType: char
    signature: 'char *

      dbs_getBlobFilePath(char *blobdir, DBT *blobData)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dbs_getBlobFilePath
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:177,1
    - Dst: PR_Delete
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:181,1
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - dbsp
    - blobData
    argTypes:
    - DBS*
    - DBT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 183
    functionName: dbs_removeBlob
    functionSourceFile: /src/nss/lib/softoken/legacydb/dbmshim.c
    functionUses: 0
    functionsReached:
    - PR_smprintf_free
    - dbs_getBlobFilePath
    - PR_Delete
    linkageType: ''
    returnType: void
    signature: void dbs_removeBlob(DBS *dbsp, DBT *blobData)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 194
    functionName: dbs_DirMode
    functionSourceFile: /src/nss/lib/softoken/legacydb/dbmshim.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dbs_DirMode(int mode)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: dbs_getBlobFilePath
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:209,1
    - Dst: PR_Access
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:213,1
    - Dst: PR_MkDir
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:214,1
    - Dst: dbs_DirMode
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:214,1
    - Dst: PR_OpenFile
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:219,1
    - Dst: PR_GetError
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:221,1
    - Dst: PR_Write
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:224,1
    - Dst: PR_GetError
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:225,1
    - Dst: PR_Close
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:226,1
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:230,1
    - Dst: PR_Delete
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:235,1
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:236,1
    - Dst: PR_SetError
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:239,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 4
    argNames:
    - dbsp
    - mode
    - blobData
    - data
    argTypes:
    - DBS*
    - int
    - DBT*
    - DBT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 200
    functionDepth: 2
    functionLinenumber: 200
    functionLinenumberEnd: 241
    functionName: dbs_writeBlob
    functionSourceFile: /src/nss/lib/softoken/legacydb/dbmshim.c
    functionUses: 0
    functionsReached:
    - dbs_getBlobFilePath
    - PR_Access
    - dbs_DirMode
    - PR_Write
    - PR_smprintf_free
    - PR_Delete
    - PR_SetError
    - PR_GetError
    - PR_Close
    - PR_OpenFile
    - PR_MkDir
    linkageType: ''
    returnType: int
    signature: int dbs_writeBlob(DBS *dbsp, int mode, DBT *blobData, const DBT *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:252,1
    - Dst: PR_Read
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:257,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:259,1
    - Dst: PR_SetError
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:262,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - filed
    - len
    argTypes:
    - PRFileDesc*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 268
    functionName: dbs_EmulateMap
    functionSourceFile: /src/nss/lib/softoken/legacydb/dbmshim.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PR_Read
    - PR_SetError
    - PORT_Free
    linkageType: ''
    returnType: unsigned char
    signature: 'unsigned char *

      dbs_EmulateMap(PRFileDesc *filed, int len)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dbs_getBlobFilePath
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:284,1
    - Dst: PR_OpenFile
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:288,1
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:289,1
    - Dst: dbs_getBlobSize
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:295,1
    - Dst: dbs_EmulateMap
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:301,1
    - Dst: PR_Close
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:305,1
    - Dst: PR_GetError
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:313,1
    - Dst: PR_Close
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:315,1
    - Dst: PR_SetError
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:317,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 2
    argNames:
    - dbsp
    - data
    argTypes:
    - DBS*
    - DBT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 275
    functionDepth: 2
    functionLinenumber: 275
    functionLinenumberEnd: 319
    functionName: dbs_readBlob
    functionSourceFile: /src/nss/lib/softoken/legacydb/dbmshim.c
    functionUses: 0
    functionsReached:
    - dbs_getBlobFilePath
    - dbs_getBlobSize
    - dbs_EmulateMap
    - PR_smprintf_free
    - PR_SetError
    - PR_GetError
    - PR_Close
    - PR_OpenFile
    linkageType: ''
    returnType: int
    signature: int dbs_readBlob(DBS *dbsp, DBT *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dbs_IsBlob
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:332,1
    - Dst: dbs_readBlob
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:333,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - dbs
    - key
    - data
    - flags
    argTypes:
    - DB*
    - DBT*
    - DBT*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 324
    functionDepth: 3
    functionLinenumber: 324
    functionLinenumberEnd: 337
    functionName: dbs_get
    functionSourceFile: /src/nss/lib/softoken/legacydb/dbmshim.c
    functionUses: 0
    functionsReached:
    - dbs_readBlob
    - dbs_IsBlob
    linkageType: ''
    returnType: int
    signature: int dbs_get(const DB *dbs, const DBT *key, DBT *data, unsigned int
      flags)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: dbs_IsBlob
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:358,1
    - Dst: dbs_removeBlob
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:359,1
    - Dst: dbs_mkBlob
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:363,1
    - Dst: dbs_writeBlob
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:364,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 4
    argNames:
    - dbs
    - key
    - data
    - flags
    argTypes:
    - DB*
    - DBT*
    - DBT*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 339
    functionDepth: 3
    functionLinenumber: 339
    functionLinenumberEnd: 373
    functionName: dbs_put
    functionSourceFile: /src/nss/lib/softoken/legacydb/dbmshim.c
    functionUses: 0
    functionsReached:
    - dbs_mkBlob
    - dbs_writeBlob
    - dbs_removeBlob
    - dbs_IsBlob
    linkageType: ''
    returnType: int
    signature: int dbs_put(const DB *dbs, DBT *key, const DBT *data, unsigned int
      flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dbs
    - flags
    argTypes:
    - DB*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 380
    functionName: dbs_sync
    functionSourceFile: /src/nss/lib/softoken/legacydb/dbmshim.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dbs_sync(const DB *dbs, unsigned int flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dbs_IsBlob
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:392,1
    - Dst: dbs_removeBlob
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:393,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - dbs
    - key
    - flags
    argTypes:
    - DB*
    - DBT*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 382
    functionDepth: 3
    functionLinenumber: 382
    functionLinenumberEnd: 398
    functionName: dbs_del
    functionSourceFile: /src/nss/lib/softoken/legacydb/dbmshim.c
    functionUses: 0
    functionsReached:
    - dbs_removeBlob
    - dbs_IsBlob
    linkageType: ''
    returnType: int
    signature: int dbs_del(const DB *dbs, const DBT *key, unsigned int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dbs_IsBlob
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:408,1
    - Dst: dbs_readBlob
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:410,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - dbs
    - key
    - data
    - flags
    argTypes:
    - DB*
    - DBT*
    - DBT*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 400
    functionDepth: 3
    functionLinenumber: 400
    functionLinenumberEnd: 414
    functionName: dbs_seq
    functionSourceFile: /src/nss/lib/softoken/legacydb/dbmshim.c
    functionUses: 0
    functionsReached:
    - dbs_readBlob
    - dbs_IsBlob
    linkageType: ''
    returnType: int
    signature: int dbs_seq(const DB *dbs, DBT *key, DBT *data, unsigned int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:424,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - dbs
    argTypes:
    - DB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 427
    functionName: dbs_close
    functionSourceFile: /src/nss/lib/softoken/legacydb/dbmshim.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    linkageType: ''
    returnType: int
    signature: int dbs_close(DB *dbs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dbs
    argTypes:
    - DB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 435
    functionName: dbs_fd
    functionSourceFile: /src/nss/lib/softoken/legacydb/dbmshim.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dbs_fd(const DB *dbs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strlen
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:447,1
    - Dst: PORT_Strcmp
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:462,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:466,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:470,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:471,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - dbname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 473
    functionName: dbs_mkBlobDirName
    functionSourceFile: /src/nss/lib/softoken/legacydb/dbmshim.c
    functionUses: 0
    functionsReached:
    - PORT_ZAlloc
    - PORT_Strcmp
    - PORT_Strlen
    - PORT_Memcpy
    linkageType: ''
    returnType: char
    signature: 'char *

      dbs_mkBlobDirName(const char *dbname)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:501,1
    - Dst: dbs_mkBlobDirName
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:507,1
    - Dst: dbopen
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:515,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:535,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/dbmshim.c:537,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 5
    argNames:
    - dbname
    - flags
    - mode
    - type
    - userData
    argTypes:
    - char*
    - int
    - int
    - DBTYPE
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 491
    functionDepth: 2
    functionLinenumber: 491
    functionLinenumberEnd: 539
    functionName: dbsopen
    functionSourceFile: /src/nss/lib/softoken/legacydb/dbmshim.c
    functionUses: 0
    functionsReached:
    - dbs_mkBlobDirName
    - PORT_Free
    - PORT_ZAlloc
    - dbopen
    linkageType: ''
    returnType: DB
    signature: "DB *\ndbsopen(const char *dbname, int flags, int mode, DBTYPE type,\n
      \       const void *userData)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - handle
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: handleToClass
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgattr.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: handleToClass(handle)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_New
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:46,1
    - Dst: handleToClass
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:51,1
    - Dst: lg_DBLock
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:58,1
    - Dst: lg_lookupTokenKeyByHandle
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:60,1
    - Dst: lg_DBUnlock
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:63,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:66,1
    - Dst: lg_DBUnlock
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:67,1
    - Dst: lg_DestroyObjectCache
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:74,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 3
    argNames:
    - sdb
    - dbKey
    - handle
    argTypes:
    - SDB*
    - SECItem*
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 76
    functionName: lg_NewObjectCache
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgattr.c
    functionUses: 0
    functionsReached:
    - lg_DBLock
    - lg_DBUnlock
    - SECITEM_CopyItem
    - lg_lookupTokenKeyByHandle
    - PORT_New
    - handleToClass
    - lg_DestroyObjectCache
    linkageType: ''
    returnType: LGObjectCache
    signature: 'LGObjectCache *

      lg_NewObjectCache(SDB *sdb, const SECItem *dbKey, CK_OBJECT_HANDLE handle)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:86,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - obj
    argTypes:
    - LGObjectCache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 95
    functionName: lg_DestroyObjectCache
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgattr.c
    functionUses: 1
    functionsReached:
    - PORT_Free
    linkageType: ''
    returnType: void
    signature: void lg_DestroyObjectCache(LGObjectCache *obj)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - attr
    - type
    - value
    argTypes:
    - CK_ATTRIBUTE*
    - CK_ATTRIBUTE_TYPE
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 121
    functionName: lg_ULongAttribute
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgattr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV lg_ULongAttribute(CK_ATTRIBUTE *attr, CK_ATTRIBUTE_TYPE type,
      CK_ULONG value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:137,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - attr
    - type
    - value
    - len
    argTypes:
    - CK_ATTRIBUTE*
    - CK_ATTRIBUTE_TYPE
    - CK_VOID_PTR
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 141
    functionName: lg_CopyAttribute
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgattr.c
    functionUses: 0
    functionsReached:
    - PORT_Memcpy
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV lg_CopyAttribute(CK_ATTRIBUTE *attr, CK_ATTRIBUTE_TYPE type,\n
      \                CK_VOID_PTR value, CK_ULONG len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lg_CopyAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - attribute
    - type
    - value
    - len
    argTypes:
    - CK_ATTRIBUTE*
    - CK_ATTRIBUTE_TYPE
    - void*
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 153
    functionName: lg_CopyAttributeSigned
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgattr.c
    functionUses: 0
    functionsReached:
    - lg_CopyAttribute
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV lg_CopyAttributeSigned(CK_ATTRIBUTE *attribute, CK_ATTRIBUTE_TYPE
      type,\n                       void *value, CK_ULONG len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lg_util_encrypt
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:165,1
    - Dst: lg_CopyAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:169,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:172,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - attribute
    - type
    - value
    - len
    - sdbpw
    argTypes:
    - CK_ATTRIBUTE*
    - CK_ATTRIBUTE_TYPE
    - void*
    - CK_ULONG
    - SDB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 175
    functionName: lg_CopyPrivAttribute
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgattr.c
    functionUses: 0
    functionsReached:
    - lg_CopyAttribute
    - lg_util_encrypt
    - SECITEM_FreeItem
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV lg_CopyPrivAttribute(CK_ATTRIBUTE *attribute, CK_ATTRIBUTE_TYPE
      type,\n                     void *value, CK_ULONG len, SDB *sdbpw)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lg_CopyPrivAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - attribute
    - type
    - value
    - len
    - sdbpw
    argTypes:
    - CK_ATTRIBUTE*
    - CK_ATTRIBUTE_TYPE
    - void*
    - CK_ULONG
    - SDB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 188
    functionName: lg_CopyPrivAttrSigned
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgattr.c
    functionUses: 0
    functionsReached:
    - lg_CopyPrivAttribute
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV lg_CopyPrivAttrSigned(CK_ATTRIBUTE *attribute, CK_ATTRIBUTE_TYPE
      type,\n                      void *value, CK_ULONG len, SDB *sdbpw)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - attr
    argTypes:
    - CK_ATTRIBUTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 195
    functionName: lg_invalidAttribute
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgattr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV lg_invalidAttribute(CK_ATTRIBUTE *attr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - value
    - ','
    - len
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 201
    functionName: LG_DEF_ATTRIBUTE
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgattr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LG_DEF_ATTRIBUTE(value, len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - attribute
    - ','
    - type
    - ','
    - staticAttr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 204
    functionName: LG_CLONE_ATTR
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgattr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LG_CLONE_ATTR(attribute, type, staticAttr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lg_getKeyDB
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:224,1
    - Dst: nsslowkey_FindKeyNicknameByPublicKey
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - sdb
    - dbKey
    argTypes:
    - SDB*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 232
    functionName: lg_FindKeyNicknameByPublicKey
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgattr.c
    functionUses: 0
    functionsReached:
    - nsslowkey_FindKeyNicknameByPublicKey
    - lg_getKeyDB
    linkageType: ''
    returnType: char
    signature: 'char *

      lg_FindKeyNicknameByPublicKey(SDB *sdb, SECItem *dbKey)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lg_getKeyDB
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:240,1
    - Dst: nsslowkey_FindKeyByPublicKey
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:244,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - sdb
    - dbKey
    argTypes:
    - SDB*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 249
    functionName: lg_FindKeyByPublicKey
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgattr.c
    functionUses: 0
    functionsReached:
    - lg_getKeyDB
    - nsslowkey_FindKeyByPublicKey
    linkageType: ''
    returnType: NSSLOWKEYPrivateKey
    signature: 'NSSLOWKEYPrivateKey *

      lg_FindKeyByPublicKey(SDB *sdb, SECItem *dbKey)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lg_getCertDB
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:264,1
    - Dst: nsslowcert_ReadDBSMimeEntry
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:268,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - obj
    argTypes:
    - LGObjectCache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 272
    functionName: lg_getSMime
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgattr.c
    functionUses: 0
    functionsReached:
    - lg_getCertDB
    - nsslowcert_ReadDBSMimeEntry
    linkageType: ''
    returnType: certDBEntrySMime
    signature: 'certDBEntrySMime *

      lg_getSMime(LGObjectCache *obj)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lg_getCertDB
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:289,1
    - Dst: nsslowcert_FindCrlByKey
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:294,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - obj
    argTypes:
    - LGObjectCache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 298
    functionName: lg_getCrl
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgattr.c
    functionUses: 0
    functionsReached:
    - lg_getCertDB
    - nsslowcert_FindCrlByKey
    linkageType: ''
    returnType: certDBEntryRevocation
    signature: 'certDBEntryRevocation *

      lg_getCrl(LGObjectCache *obj)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nsslowcert_FindCertByKey
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:313,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - obj
    - certHandle
    argTypes:
    - LGObjectCache*
    - NSSLOWCERTCertDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 319
    functionName: lg_getCert
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgattr.c
    functionUses: 0
    functionsReached:
    - nsslowcert_FindCertByKey
    linkageType: ''
    returnType: NSSLOWCERTCertificate
    signature: 'NSSLOWCERTCertificate *

      lg_getCert(LGObjectCache *obj, NSSLOWCERTCertDBHandle *certHandle)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nsslowcert_FindTrustByKey
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:332,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - obj
    - certHandle
    argTypes:
    - LGObjectCache*
    - NSSLOWCERTCertDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 336
    functionName: lg_getTrust
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgattr.c
    functionUses: 0
    functionsReached:
    - nsslowcert_FindTrustByKey
    linkageType: ''
    returnType: NSSLOWCERTTrust
    signature: 'NSSLOWCERTTrust *

      lg_getTrust(LGObjectCache *obj, NSSLOWCERTCertDBHandle *certHandle)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lg_FindKeyByPublicKey
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:350,1
    - Dst: lg_nsslowkey_ConvertToPublicKey
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:354,1
    - Dst: lg_nsslowkey_DestroyPrivateKey
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:355,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - obj
    argTypes:
    - LGObjectCache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 338
    functionDepth: 2
    functionLinenumber: 338
    functionLinenumberEnd: 359
    functionName: lg_GetPublicKey
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgattr.c
    functionUses: 0
    functionsReached:
    - lg_nsslowkey_ConvertToPublicKey
    - lg_FindKeyByPublicKey
    - lg_nsslowkey_DestroyPrivateKey
    linkageType: ''
    returnType: NSSLOWKEYPublicKey
    signature: 'NSSLOWKEYPublicKey *

      lg_GetPublicKey(LGObjectCache *obj)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nsslowkey_FindKeyByPublicKey
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:381,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - obj
    - keyHandle
    argTypes:
    - LGObjectCache*
    - NSSLOWKEYDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 388
    functionName: lg_GetPrivateKeyWithDB
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgattr.c
    functionUses: 0
    functionsReached:
    - nsslowkey_FindKeyByPublicKey
    linkageType: ''
    returnType: NSSLOWKEYPrivateKey
    signature: 'NSSLOWKEYPrivateKey *

      lg_GetPrivateKeyWithDB(LGObjectCache *obj, NSSLOWKEYDBHandle *keyHandle)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lg_getKeyDB
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:397,1
    - Dst: lg_GetPrivateKeyWithDB
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - obj
    argTypes:
    - LGObjectCache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 391
    functionDepth: 2
    functionLinenumber: 391
    functionLinenumberEnd: 403
    functionName: lg_GetPrivateKey
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgattr.c
    functionUses: 0
    functionsReached:
    - lg_GetPrivateKeyWithDB
    - lg_getKeyDB
    linkageType: ''
    returnType: NSSLOWKEYPrivateKey
    signature: 'NSSLOWKEYPrivateKey *

      lg_GetPrivateKey(LGObjectCache *obj)'
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - pubKey
    argTypes:
    - NSSLOWKEYPublicKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 432
    functionName: lg_GetPubItem
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgattr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      lg_GetPubItem(NSSLOWKEYPublicKey *pubKey)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: lg_ULongAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:443,1
    - Dst: SHA1_HashBuf
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:445,1
    - Dst: lg_CopyAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:446,1
    - Dst: LG_CLONE_ATTR
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:448,1
    - Dst: LG_CLONE_ATTR
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:453,1
    - Dst: lg_CopyAttributeSigned
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:455,1
    - Dst: lg_CopyAttributeSigned
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:458,1
    - Dst: lg_invalidAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:464,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 3
    argNames:
    - key
    - type
    - attribute
    argTypes:
    - NSSLOWKEYPublicKey*
    - CK_ATTRIBUTE_TYPE
    - CK_ATTRIBUTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 434
    functionDepth: 2
    functionLinenumber: 434
    functionLinenumberEnd: 465
    functionName: lg_FindRSAPublicKeyAttribute
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgattr.c
    functionUses: 0
    functionsReached:
    - lg_ULongAttribute
    - LG_CLONE_ATTR
    - lg_invalidAttribute
    - lg_CopyAttributeSigned
    - SHA1_HashBuf
    - lg_CopyAttribute
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV lg_FindRSAPublicKeyAttribute(NSSLOWKEYPublicKey *key, CK_ATTRIBUTE_TYPE
      type,\n                             CK_ATTRIBUTE *attribute)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: lg_ULongAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:476,1
    - Dst: SHA1_HashBuf
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:478,1
    - Dst: lg_CopyAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:480,1
    - Dst: LG_CLONE_ATTR
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:485,1
    - Dst: LG_CLONE_ATTR
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:487,1
    - Dst: lg_CopyAttributeSigned
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:489,1
    - Dst: lg_CopyAttributeSigned
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:493,1
    - Dst: lg_CopyAttributeSigned
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:497,1
    - Dst: lg_CopyAttributeSigned
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:501,1
    - Dst: lg_invalidAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:507,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 3
    argNames:
    - key
    - type
    - attribute
    argTypes:
    - NSSLOWKEYPublicKey*
    - CK_ATTRIBUTE_TYPE
    - CK_ATTRIBUTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 467
    functionDepth: 2
    functionLinenumber: 467
    functionLinenumberEnd: 508
    functionName: lg_FindDSAPublicKeyAttribute
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgattr.c
    functionUses: 0
    functionsReached:
    - lg_ULongAttribute
    - LG_CLONE_ATTR
    - lg_invalidAttribute
    - lg_CopyAttributeSigned
    - SHA1_HashBuf
    - lg_CopyAttribute
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV lg_FindDSAPublicKeyAttribute(NSSLOWKEYPublicKey *key, CK_ATTRIBUTE_TYPE
      type,\n                             CK_ATTRIBUTE *attribute)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: lg_ULongAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:519,1
    - Dst: SHA1_HashBuf
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:521,1
    - Dst: lg_CopyAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:522,1
    - Dst: LG_CLONE_ATTR
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:524,1
    - Dst: LG_CLONE_ATTR
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:529,1
    - Dst: lg_CopyAttributeSigned
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:531,1
    - Dst: lg_CopyAttributeSigned
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:535,1
    - Dst: lg_CopyAttributeSigned
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:538,1
    - Dst: lg_invalidAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:543,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 3
    argNames:
    - key
    - type
    - attribute
    argTypes:
    - NSSLOWKEYPublicKey*
    - CK_ATTRIBUTE_TYPE
    - CK_ATTRIBUTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 510
    functionDepth: 2
    functionLinenumber: 510
    functionLinenumberEnd: 544
    functionName: lg_FindDHPublicKeyAttribute
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgattr.c
    functionUses: 0
    functionsReached:
    - lg_ULongAttribute
    - LG_CLONE_ATTR
    - lg_invalidAttribute
    - lg_CopyAttributeSigned
    - SHA1_HashBuf
    - lg_CopyAttribute
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV lg_FindDHPublicKeyAttribute(NSSLOWKEYPublicKey *key, CK_ATTRIBUTE_TYPE
      type,\n                            CK_ATTRIBUTE *attribute)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: lg_ULongAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:555,1
    - Dst: SHA1_HashBuf
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:557,1
    - Dst: lg_CopyAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:559,1
    - Dst: LG_CLONE_ATTR
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:562,1
    - Dst: LG_CLONE_ATTR
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:566,1
    - Dst: lg_CopyAttributeSigned
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:568,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:572,1
    - Dst: lg_CopyAttributeSigned
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:573,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:577,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:579,1
    - Dst: lg_CopyAttributeSigned
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:584,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:587,1
    - Dst: lg_invalidAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:593,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 3
    argNames:
    - key
    - type
    - attribute
    argTypes:
    - NSSLOWKEYPublicKey*
    - CK_ATTRIBUTE_TYPE
    - CK_ATTRIBUTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 546
    functionDepth: 2
    functionLinenumber: 546
    functionLinenumberEnd: 594
    functionName: lg_FindECPublicKeyAttribute
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgattr.c
    functionUses: 0
    functionsReached:
    - lg_ULongAttribute
    - LG_CLONE_ATTR
    - SEC_ASN1EncodeItem
    - lg_invalidAttribute
    - lg_CopyAttributeSigned
    - PR_GetEnvSecure
    - SHA1_HashBuf
    - lg_CopyAttribute
    - SEC_ASN1_GET
    - SECITEM_FreeItem
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV lg_FindECPublicKeyAttribute(NSSLOWKEYPublicKey *key, CK_ATTRIBUTE_TYPE
      type,\n                            CK_ATTRIBUTE *attribute)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: LG_CLONE_ATTR
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:609,1
    - Dst: LG_CLONE_ATTR
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:612,1
    - Dst: LG_CLONE_ATTR
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:614,1
    - Dst: LG_CLONE_ATTR
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:617,1
    - Dst: lg_FindKeyNicknameByPublicKey
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:619,1
    - Dst: LG_CLONE_ATTR
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:621,1
    - Dst: lg_CopyAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:623,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:623,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:624,1
    - Dst: lg_GetPublicKey
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:630,1
    - Dst: LG_CLONE_ATTR
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:633,1
    - Dst: lg_FindRSAPublicKeyAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:640,1
    - Dst: lg_FindDSAPublicKeyAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:642,1
    - Dst: lg_FindDHPublicKeyAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:644,1
    - Dst: lg_FindECPublicKeyAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:646,1
    - Dst: lg_invalidAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:651,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 46
    argCount: 3
    argNames:
    - obj
    - type
    - attribute
    argTypes:
    - LGObjectCache*
    - CK_ATTRIBUTE_TYPE
    - CK_ATTRIBUTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 596
    functionDepth: 3
    functionLinenumber: 596
    functionLinenumberEnd: 652
    functionName: lg_FindPublicKeyAttribute
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgattr.c
    functionUses: 0
    functionsReached:
    - LG_CLONE_ATTR
    - lg_FindKeyNicknameByPublicKey
    - lg_FindDSAPublicKeyAttribute
    - PORT_Free
    - lg_FindDHPublicKeyAttribute
    - lg_invalidAttribute
    - PORT_Strlen
    - lg_GetPublicKey
    - lg_FindECPublicKeyAttribute
    - lg_CopyAttribute
    - lg_FindRSAPublicKeyAttribute
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV lg_FindPublicKeyAttribute(LGObjectCache *obj, CK_ATTRIBUTE_TYPE
      type,\n                          CK_ATTRIBUTE *attribute)"
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: LG_CLONE_ATTR
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:681,1
    - Dst: LG_CLONE_ATTR
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:683,1
    - Dst: LG_CLONE_ATTR
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:686,1
    - Dst: lg_FindKeyNicknameByPublicKey
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:688,1
    - Dst: LG_CLONE_ATTR
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:690,1
    - Dst: lg_CopyAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:692,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:692,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:693,1
    - Dst: lg_CopyAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:696,1
    - Dst: lg_invalidAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:703,1
    - Dst: lg_GetPrivateKey
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:706,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:768,1
    - Dst: PR_ntohl
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:769,1
    - Dst: lg_ULongAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:780,1
    - Dst: lg_CopyPrivAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:782,1
    - Dst: lg_ULongAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:786,1
    - Dst: lg_invalidAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:788,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 68
    argCount: 3
    argNames:
    - obj
    - type
    - attribute
    argTypes:
    - LGObjectCache*
    - CK_ATTRIBUTE_TYPE
    - CK_ATTRIBUTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 654
    functionDepth: 3
    functionLinenumber: 654
    functionLinenumberEnd: 789
    functionName: lg_FindSecretKeyAttribute
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgattr.c
    functionUses: 0
    functionsReached:
    - PR_ntohl
    - LG_CLONE_ATTR
    - lg_FindKeyNicknameByPublicKey
    - lg_ULongAttribute
    - PORT_Memcpy
    - lg_CopyPrivAttribute
    - lg_GetPrivateKey
    - PORT_Free
    - lg_invalidAttribute
    - PORT_Strlen
    - lg_CopyAttribute
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV lg_FindSecretKeyAttribute(LGObjectCache *obj, CK_ATTRIBUTE_TYPE
      type,\n                          CK_ATTRIBUTE *attribute)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: lg_ULongAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:800,1
    - Dst: SHA1_HashBuf
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:802,1
    - Dst: lg_CopyAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:803,1
    - Dst: LG_CLONE_ATTR
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:805,1
    - Dst: LG_CLONE_ATTR
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:810,1
    - Dst: lg_CopyAttributeSigned
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:812,1
    - Dst: lg_CopyAttributeSigned
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:815,1
    - Dst: lg_CopyPrivAttrSigned
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:819,1
    - Dst: lg_CopyPrivAttrSigned
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:823,1
    - Dst: lg_CopyPrivAttrSigned
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:826,1
    - Dst: lg_CopyPrivAttrSigned
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:829,1
    - Dst: lg_CopyPrivAttrSigned
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:833,1
    - Dst: lg_CopyPrivAttrSigned
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:837,1
    - Dst: lg_invalidAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:843,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 34
    argCount: 4
    argNames:
    - key
    - type
    - attribute
    - sdbpw
    argTypes:
    - NSSLOWKEYPrivateKey*
    - CK_ATTRIBUTE_TYPE
    - CK_ATTRIBUTE*
    - SDB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 791
    functionDepth: 3
    functionLinenumber: 791
    functionLinenumberEnd: 844
    functionName: lg_FindRSAPrivateKeyAttribute
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgattr.c
    functionUses: 0
    functionsReached:
    - lg_ULongAttribute
    - LG_CLONE_ATTR
    - lg_invalidAttribute
    - lg_CopyAttributeSigned
    - SHA1_HashBuf
    - lg_CopyAttribute
    - lg_CopyPrivAttrSigned
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV lg_FindRSAPrivateKeyAttribute(NSSLOWKEYPrivateKey *key, CK_ATTRIBUTE_TYPE
      type,\n                              CK_ATTRIBUTE *attribute, SDB *sdbpw)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: lg_ULongAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:855,1
    - Dst: SHA1_HashBuf
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:857,1
    - Dst: lg_CopyAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:859,1
    - Dst: LG_CLONE_ATTR
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:864,1
    - Dst: LG_CLONE_ATTR
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:866,1
    - Dst: lg_CopyPrivAttrSigned
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:868,1
    - Dst: lg_CopyAttributeSigned
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:872,1
    - Dst: lg_CopyAttributeSigned
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:876,1
    - Dst: lg_CopyAttributeSigned
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:880,1
    - Dst: lg_CopyAttributeSigned
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:884,1
    - Dst: lg_invalidAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:890,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 28
    argCount: 4
    argNames:
    - key
    - type
    - attribute
    - sdbpw
    argTypes:
    - NSSLOWKEYPrivateKey*
    - CK_ATTRIBUTE_TYPE
    - CK_ATTRIBUTE*
    - SDB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 846
    functionDepth: 3
    functionLinenumber: 846
    functionLinenumberEnd: 891
    functionName: lg_FindDSAPrivateKeyAttribute
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgattr.c
    functionUses: 0
    functionsReached:
    - lg_ULongAttribute
    - LG_CLONE_ATTR
    - lg_invalidAttribute
    - lg_CopyAttributeSigned
    - SHA1_HashBuf
    - lg_CopyAttribute
    - lg_CopyPrivAttrSigned
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV lg_FindDSAPrivateKeyAttribute(NSSLOWKEYPrivateKey *key, CK_ATTRIBUTE_TYPE
      type,\n                              CK_ATTRIBUTE *attribute, SDB *sdbpw)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: lg_ULongAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:902,1
    - Dst: SHA1_HashBuf
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:904,1
    - Dst: lg_CopyAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:905,1
    - Dst: LG_CLONE_ATTR
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:907,1
    - Dst: LG_CLONE_ATTR
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:912,1
    - Dst: lg_CopyPrivAttrSigned
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:914,1
    - Dst: lg_CopyAttributeSigned
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:918,1
    - Dst: lg_CopyAttributeSigned
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:921,1
    - Dst: lg_CopyAttributeSigned
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:924,1
    - Dst: lg_invalidAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:930,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 4
    argNames:
    - key
    - type
    - attribute
    - sdbpw
    argTypes:
    - NSSLOWKEYPrivateKey*
    - CK_ATTRIBUTE_TYPE
    - CK_ATTRIBUTE*
    - SDB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 893
    functionDepth: 3
    functionLinenumber: 893
    functionLinenumberEnd: 931
    functionName: lg_FindDHPrivateKeyAttribute
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgattr.c
    functionUses: 0
    functionsReached:
    - lg_ULongAttribute
    - LG_CLONE_ATTR
    - lg_invalidAttribute
    - lg_CopyAttributeSigned
    - SHA1_HashBuf
    - lg_CopyAttribute
    - lg_CopyPrivAttrSigned
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV lg_FindDHPrivateKeyAttribute(NSSLOWKEYPrivateKey *key, CK_ATTRIBUTE_TYPE
      type,\n                             CK_ATTRIBUTE *attribute, SDB *sdbpw)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: lg_ULongAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:942,1
    - Dst: SHA1_HashBuf
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:944,1
    - Dst: lg_CopyAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:945,1
    - Dst: LG_CLONE_ATTR
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:948,1
    - Dst: LG_CLONE_ATTR
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:952,1
    - Dst: lg_CopyPrivAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:954,1
    - Dst: lg_CopyAttributeSigned
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:958,1
    - Dst: lg_CopyAttributeSigned
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:962,1
    - Dst: lg_invalidAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:968,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 4
    argNames:
    - key
    - type
    - attribute
    - sdbpw
    argTypes:
    - NSSLOWKEYPrivateKey*
    - CK_ATTRIBUTE_TYPE
    - CK_ATTRIBUTE*
    - SDB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 933
    functionDepth: 2
    functionLinenumber: 933
    functionLinenumberEnd: 969
    functionName: lg_FindECPrivateKeyAttribute
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgattr.c
    functionUses: 0
    functionsReached:
    - lg_CopyPrivAttribute
    - lg_ULongAttribute
    - LG_CLONE_ATTR
    - lg_invalidAttribute
    - lg_CopyAttributeSigned
    - SHA1_HashBuf
    - lg_CopyAttribute
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV lg_FindECPrivateKeyAttribute(NSSLOWKEYPrivateKey *key, CK_ATTRIBUTE_TYPE
      type,\n                             CK_ATTRIBUTE *attribute, SDB *sdbpw)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: LG_CLONE_ATTR
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:986,1
    - Dst: LG_CLONE_ATTR
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:988,1
    - Dst: LG_CLONE_ATTR
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:990,1
    - Dst: LG_CLONE_ATTR
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:993,1
    - Dst: lg_FindKeyNicknameByPublicKey
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:995,1
    - Dst: LG_CLONE_ATTR
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:997,1
    - Dst: lg_CopyAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:999,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:999,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1000,1
    - Dst: lg_GetPrivateKey
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1005,1
    - Dst: lg_FindRSAPrivateKeyAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1011,1
    - Dst: lg_FindDSAPrivateKeyAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1013,1
    - Dst: lg_FindDHPrivateKeyAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1015,1
    - Dst: lg_FindECPrivateKeyAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1017,1
    - Dst: lg_invalidAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1022,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 44
    argCount: 3
    argNames:
    - obj
    - type
    - attribute
    argTypes:
    - LGObjectCache*
    - CK_ATTRIBUTE_TYPE
    - CK_ATTRIBUTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 971
    functionDepth: 4
    functionLinenumber: 971
    functionLinenumberEnd: 1023
    functionName: lg_FindPrivateKeyAttribute
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgattr.c
    functionUses: 0
    functionsReached:
    - LG_CLONE_ATTR
    - lg_FindKeyNicknameByPublicKey
    - lg_FindECPrivateKeyAttribute
    - lg_GetPrivateKey
    - PORT_Free
    - lg_FindDHPrivateKeyAttribute
    - lg_invalidAttribute
    - PORT_Strlen
    - lg_FindRSAPrivateKeyAttribute
    - lg_CopyAttribute
    - lg_FindDSAPrivateKeyAttribute
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV lg_FindPrivateKeyAttribute(LGObjectCache *obj, CK_ATTRIBUTE_TYPE
      type,\n                           CK_ATTRIBUTE *attribute)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: LG_CLONE_ATTR
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1033,1
    - Dst: lg_CopyAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1035,1
    - Dst: lg_invalidAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1042,1
    - Dst: lg_getSMime
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1044,1
    - Dst: lg_CopyAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1050,1
    - Dst: lg_CopyAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1053,1
    - Dst: lg_CopyAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1056,1
    - Dst: lg_invalidAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1061,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 3
    argNames:
    - obj
    - type
    - attribute
    argTypes:
    - LGObjectCache*
    - CK_ATTRIBUTE_TYPE
    - CK_ATTRIBUTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1025
    functionDepth: 2
    functionLinenumber: 1025
    functionLinenumberEnd: 1062
    functionName: lg_FindSMIMEAttribute
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgattr.c
    functionUses: 0
    functionsReached:
    - lg_CopyAttribute
    - LG_CLONE_ATTR
    - lg_invalidAttribute
    - lg_getSMime
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV lg_FindSMIMEAttribute(LGObjectCache *obj, CK_ATTRIBUTE_TYPE
      type,\n                      CK_ATTRIBUTE *attribute)"
  - BBCount: 48
    BranchProfiles: []
    Callsites:
    - Dst: LG_CLONE_ATTR
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1078,1
    - Dst: LG_CLONE_ATTR
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1080,1
    - Dst: lg_invalidAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1098,1
    - Dst: lg_getCertDB
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1100,1
    - Dst: lg_getTrust
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1104,1
    - Dst: lg_ULongAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1111,1
    - Dst: SHA1_HashBuf
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1114,1
    - Dst: lg_CopyAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1115,1
    - Dst: MD5_HashBuf
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1117,1
    - Dst: lg_CopyAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1118,1
    - Dst: lg_ULongAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1143,1
    - Dst: lg_ULongAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1147,1
    - Dst: lg_ULongAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1150,1
    - Dst: lg_ULongAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1154,1
    - Dst: lg_ULongAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1158,1
    - Dst: lg_ULongAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1162,1
    - Dst: lg_ULongAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1165,1
    - Dst: LG_CLONE_ATTR
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1168,1
    - Dst: LG_CLONE_ATTR
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1170,1
    - Dst: lg_getCert
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1178,1
    - Dst: lg_CopyAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1181,1
    - Dst: lg_getCert
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1185,1
    - Dst: lg_CopyAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1188,1
    - Dst: nsslowcert_DestroyCertificate
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1196,1
    - Dst: lg_invalidAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1199,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 118
    argCount: 3
    argNames:
    - obj
    - type
    - attribute
    argTypes:
    - LGObjectCache*
    - CK_ATTRIBUTE_TYPE
    - CK_ATTRIBUTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1200
      start: 1064
    functionDepth: 2
    functionLinenumber: 1064
    functionLinenumberEnd: 1200
    functionName: lg_FindTrustAttribute
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgattr.c
    functionUses: 0
    functionsReached:
    - LG_CLONE_ATTR
    - lg_ULongAttribute
    - lg_getTrust
    - lg_getCert
    - lg_invalidAttribute
    - MD5_HashBuf
    - nsslowcert_DestroyCertificate
    - SHA1_HashBuf
    - lg_getCertDB
    - lg_CopyAttribute
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV lg_FindTrustAttribute(LGObjectCache *obj, CK_ATTRIBUTE_TYPE
      type,\n                      CK_ATTRIBUTE *attribute)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: LG_CLONE_ATTR
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1211,1
    - Dst: LG_CLONE_ATTR
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1214,1
    - Dst: LG_CLONE_ATTR
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1215,1
    - Dst: lg_CopyAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1217,1
    - Dst: lg_invalidAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1223,1
    - Dst: lg_getCrl
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1225,1
    - Dst: LG_CLONE_ATTR
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1232,1
    - Dst: lg_CopyAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1234,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1235,1
    - Dst: lg_CopyAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1237,1
    - Dst: lg_invalidAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1242,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 3
    argNames:
    - obj
    - type
    - attribute
    argTypes:
    - LGObjectCache*
    - CK_ATTRIBUTE_TYPE
    - CK_ATTRIBUTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1243
      start: 1202
    functionDepth: 2
    functionLinenumber: 1202
    functionLinenumberEnd: 1243
    functionName: lg_FindCrlAttribute
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgattr.c
    functionUses: 0
    functionsReached:
    - LG_CLONE_ATTR
    - lg_invalidAttribute
    - PORT_Strlen
    - lg_CopyAttribute
    - lg_getCrl
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV lg_FindCrlAttribute(LGObjectCache *obj, CK_ATTRIBUTE_TYPE type,\n
      \                   CK_ATTRIBUTE *attribute)"
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: LG_CLONE_ATTR
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1257,1
    - Dst: LG_CLONE_ATTR
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1259,1
    - Dst: lg_ULongAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1262,1
    - Dst: lg_invalidAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1272,1
    - Dst: lg_getCertDB
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1275,1
    - Dst: lg_getCert
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1280,1
    - Dst: lg_CopyAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1286,1
    - Dst: LG_CLONE_ATTR
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1292,1
    - Dst: nsslowcert_ExtractPublicKey
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1294,1
    - Dst: lg_GetPubItem
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1297,1
    - Dst: lg_nsslowkey_DestroyPublicKey
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1299,1
    - Dst: SHA1_HashBuf
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1302,1
    - Dst: lg_nsslowkey_DestroyPublicKey
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1304,1
    - Dst: lg_CopyAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1305,1
    - Dst: lg_CopyAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1308,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1309,1
    - Dst: LG_CLONE_ATTR
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1310,1
    - Dst: lg_CopyAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1312,1
    - Dst: lg_CopyAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1315,1
    - Dst: lg_CopyAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1318,1
    - Dst: lg_CopyAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1322,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1323,1
    - Dst: LG_CLONE_ATTR
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1324,1
    - Dst: lg_invalidAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1328,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 59
    argCount: 3
    argNames:
    - obj
    - type
    - attribute
    argTypes:
    - LGObjectCache*
    - CK_ATTRIBUTE_TYPE
    - CK_ATTRIBUTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1329
      start: 1245
    functionDepth: 2
    functionLinenumber: 1245
    functionLinenumberEnd: 1329
    functionName: lg_FindCertAttribute
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgattr.c
    functionUses: 0
    functionsReached:
    - LG_CLONE_ATTR
    - lg_ULongAttribute
    - nsslowcert_ExtractPublicKey
    - lg_getCert
    - lg_GetPubItem
    - lg_invalidAttribute
    - PORT_Strlen
    - SHA1_HashBuf
    - lg_getCertDB
    - lg_CopyAttribute
    - lg_nsslowkey_DestroyPublicKey
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV lg_FindCertAttribute(LGObjectCache *obj, CK_ATTRIBUTE_TYPE type,\n
      \                    CK_ATTRIBUTE *attribute)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: lg_ULongAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1338,1
    - Dst: LG_CLONE_ATTR
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1340,1
    - Dst: LG_CLONE_ATTR
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1348,1
    - Dst: lg_FindCertAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1354,1
    - Dst: lg_FindCrlAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1356,1
    - Dst: lg_FindTrustAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1359,1
    - Dst: lg_FindSMIMEAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1361,1
    - Dst: lg_FindPublicKeyAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1363,1
    - Dst: lg_FindPrivateKeyAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1365,1
    - Dst: lg_FindSecretKeyAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1367,1
    - Dst: lg_invalidAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1371,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 2
    argNames:
    - obj
    - attribute
    argTypes:
    - LGObjectCache*
    - CK_ATTRIBUTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1372
      start: 1331
    functionDepth: 5
    functionLinenumber: 1331
    functionLinenumberEnd: 1372
    functionName: lg_GetSingleAttribute
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgattr.c
    functionUses: 0
    functionsReached:
    - lg_ULongAttribute
    - LG_CLONE_ATTR
    - lg_FindPublicKeyAttribute
    - lg_FindPrivateKeyAttribute
    - lg_invalidAttribute
    - lg_FindCrlAttribute
    - lg_FindSecretKeyAttribute
    - lg_FindCertAttribute
    - lg_FindTrustAttribute
    - lg_FindSMIMEAttribute
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV lg_GetSingleAttribute(LGObjectCache *obj, CK_ATTRIBUTE *attribute)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lg_NewObjectCache
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1381,1
    - Dst: lg_GetSingleAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1390,1
    - Dst: lg_DestroyObjectCache
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1395,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - sdb
    - handle
    - templ
    - count
    argTypes:
    - SDB*
    - CK_OBJECT_HANDLE
    - CK_ATTRIBUTE*
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1397
      start: 1377
    functionDepth: 6
    functionLinenumber: 1377
    functionLinenumberEnd: 1397
    functionName: lg_GetAttributeValue
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgattr.c
    functionUses: 0
    functionsReached:
    - lg_GetSingleAttribute
    - lg_NewObjectCache
    - lg_DestroyObjectCache
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV lg_GetAttributeValue(SDB *sdb, CK_OBJECT_HANDLE handle, CK_ATTRIBUTE
      *templ,\n                     CK_ULONG count)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1418,1
    - Dst: lg_GetSingleAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1426,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1431,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1437,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - obj
    - attribute
    argTypes:
    - LGObjectCache*
    - CK_ATTRIBUTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1440
      start: 1399
    functionDepth: 6
    functionLinenumber: 1399
    functionLinenumberEnd: 1440
    functionName: lg_cmpAttribute
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgattr.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_Free
    - lg_GetSingleAttribute
    - PORT_Memcmp
    linkageType: ''
    returnType: PRBool
    signature: PRBool lg_cmpAttribute(LGObjectCache *obj, const CK_ATTRIBUTE *attribute)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lg_NewObjectCache
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1447,1
    - Dst: lg_cmpAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1455,1
    - Dst: lg_DestroyObjectCache
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1462,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 5
    argNames:
    - sdb
    - dbKey
    - class
    - templ
    - count
    argTypes:
    - SDB*
    - SECItem*
    - CK_OBJECT_HANDLE
    - CK_ATTRIBUTE*
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1467
      start: 1442
    functionDepth: 7
    functionLinenumber: 1442
    functionLinenumberEnd: 1467
    functionName: lg_tokenMatch
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgattr.c
    functionUses: 0
    functionsReached:
    - lg_NewObjectCache
    - lg_cmpAttribute
    - lg_DestroyObjectCache
    linkageType: ''
    returnType: PRBool
    signature: "PRBool lg_tokenMatch(SDB *sdb, const SECItem *dbKey, CK_OBJECT_HANDLE
      class,\n              const CK_ATTRIBUTE *templ, CK_ULONG count)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: lg_getCertDB
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1485,1
    - Dst: lg_getCert
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1496,1
    - Dst: lg_getKeyDB
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1511,1
    - Dst: nsslowkey_KeyForCertExists
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1513,1
    - Dst: nsslowcert_ChangeCertTrust
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1518,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1528,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1533,1
    - Dst: nsslowcert_AddPermNickname
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1536,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1541,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 55
    argCount: 4
    argNames:
    - obj
    - type
    - value
    - len
    argTypes:
    - LGObjectCache*
    - CK_ATTRIBUTE_TYPE
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1544
      start: 1469
    functionDepth: 2
    functionLinenumber: 1469
    functionLinenumberEnd: 1544
    functionName: lg_SetCertAttribute
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgattr.c
    functionUses: 0
    functionsReached:
    - PORT_Memcpy
    - lg_getCert
    - PORT_Free
    - PORT_ZAlloc
    - nsslowcert_ChangeCertTrust
    - nsslowcert_AddPermNickname
    - lg_getKeyDB
    - lg_getCertDB
    - nsslowkey_KeyForCertExists
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV lg_SetCertAttribute(LGObjectCache *obj, CK_ATTRIBUTE_TYPE type,\n
      \                   const void *value, unsigned int len)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: lg_getKeyDB
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1565,1
    - Dst: lg_GetPrivateKeyWithDB
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1571,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1581,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1586,1
    - Dst: nsslowkey_UpdateNickname
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1589,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1625,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 61
    argCount: 5
    argNames:
    - obj
    - type
    - value
    - len
    - writePrivate
    argTypes:
    - LGObjectCache*
    - CK_ATTRIBUTE_TYPE
    - void*
    - unsigned int
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1628
      start: 1546
    functionDepth: 2
    functionLinenumber: 1546
    functionLinenumberEnd: 1628
    functionName: lg_SetPrivateKeyAttribute
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgattr.c
    functionUses: 0
    functionsReached:
    - PORT_Memcpy
    - nsslowkey_UpdateNickname
    - PORT_Free
    - PORT_ZAlloc
    - lg_getKeyDB
    - lg_GetPrivateKeyWithDB
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV lg_SetPrivateKeyAttribute(LGObjectCache *obj, CK_ATTRIBUTE_TYPE
      type,\n                          const void *value, unsigned int len,\n                          PRBool
      *writePrivate)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 5
    argNames:
    - obj
    - type
    - value
    - len
    - writePrivate
    argTypes:
    - LGObjectCache*
    - CK_ATTRIBUTE_TYPE
    - void*
    - unsigned int
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1641
      start: 1630
    functionDepth: 0
    functionLinenumber: 1630
    functionLinenumberEnd: 1641
    functionName: lg_SetPublicKeyAttribute
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgattr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV lg_SetPublicKeyAttribute(LGObjectCache *obj, CK_ATTRIBUTE_TYPE
      type,\n                         const void *value, unsigned int len,\n                         PRBool
      *writePrivate)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: lg_GetULongAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1658,1
    - Dst: lg_MapTrust
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1662,1
    - Dst: lg_getCertDB
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1665,1
    - Dst: lg_getCert
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1672,1
    - Dst: nsslowcert_ChangeCertTrust
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1701,1
    - Dst: nsslowcert_DestroyCertificate
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1705,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 2
    argNames:
    - obj
    - attr
    argTypes:
    - LGObjectCache*
    - CK_ATTRIBUTE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1708
      start: 1643
    functionDepth: 2
    functionLinenumber: 1643
    functionLinenumberEnd: 1708
    functionName: lg_SetTrustAttribute
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgattr.c
    functionUses: 0
    functionsReached:
    - lg_getCert
    - lg_GetULongAttribute
    - nsslowcert_ChangeCertTrust
    - nsslowcert_DestroyCertificate
    - lg_getCertDB
    - lg_MapTrust
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV lg_SetTrustAttribute(LGObjectCache *obj, const CK_ATTRIBUTE *attr)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: lg_GetSingleAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1726,1
    - Dst: lg_cmpAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1735,1
    - Dst: lg_SetCertAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1744,1
    - Dst: lg_SetTrustAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1752,1
    - Dst: lg_SetPrivateKeyAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1756,1
    - Dst: lg_SetPublicKeyAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1760,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 3
    argNames:
    - obj
    - attr
    - writePrivate
    argTypes:
    - LGObjectCache*
    - CK_ATTRIBUTE*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1765
      start: 1710
    functionDepth: 7
    functionLinenumber: 1710
    functionLinenumberEnd: 1765
    functionName: lg_SetSingleAttribute
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgattr.c
    functionUses: 0
    functionsReached:
    - lg_cmpAttribute
    - lg_SetPublicKeyAttribute
    - lg_SetTrustAttribute
    - lg_SetCertAttribute
    - lg_GetSingleAttribute
    - lg_SetPrivateKeyAttribute
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV lg_SetSingleAttribute(LGObjectCache *obj, const CK_ATTRIBUTE
      *attr,\n                      PRBool *writePrivate)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lg_NewObjectCache
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1774,1
    - Dst: lg_SetSingleAttribute
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1784,1
    - Dst: lg_GetPrivateKey
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1792,1
    - Dst: lg_FindKeyNicknameByPublicKey
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1794,1
    - Dst: nsslowkey_StoreKeyByPublicKeyAlg
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1797,1
    - Dst: lg_getKeyDB
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1797,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1803,1
    - Dst: lg_DestroyObjectCache
      Src: /src/nss/lib/softoken/legacydb/lgattr.c:1806,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - sdb
    - handle
    - templ
    - count
    argTypes:
    - SDB*
    - CK_OBJECT_HANDLE
    - CK_ATTRIBUTE*
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1808
      start: 1770
    functionDepth: 8
    functionLinenumber: 1770
    functionLinenumberEnd: 1808
    functionName: lg_SetAttributeValue
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgattr.c
    functionUses: 0
    functionsReached:
    - lg_FindKeyNicknameByPublicKey
    - lg_GetPrivateKey
    - PORT_Free
    - lg_NewObjectCache
    - nsslowkey_StoreKeyByPublicKeyAlg
    - lg_SetSingleAttribute
    - lg_getKeyDB
    - lg_DestroyObjectCache
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV lg_SetAttributeValue(SDB *sdb, CK_OBJECT_HANDLE handle,\n                     const
      CK_ATTRIBUTE *templ, CK_ULONG count)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: lg_lookupTokenKeyByHandle
      Src: /src/nss/lib/softoken/legacydb/lgdestroy.c:28,1
    - Dst: lg_getKeyDB
      Src: /src/nss/lib/softoken/legacydb/lgdestroy.c:39,1
    - Dst: nsslowkey_DeleteKey
      Src: /src/nss/lib/softoken/legacydb/lgdestroy.c:44,1
    - Dst: lg_getCertDB
      Src: /src/nss/lib/softoken/legacydb/lgdestroy.c:52,1
    - Dst: nsslowcert_FindCertByKey
      Src: /src/nss/lib/softoken/legacydb/lgdestroy.c:57,1
    - Dst: nsslowcert_DeletePermCertificate
      Src: /src/nss/lib/softoken/legacydb/lgdestroy.c:62,1
    - Dst: nsslowcert_DestroyCertificate
      Src: /src/nss/lib/softoken/legacydb/lgdestroy.c:66,1
    - Dst: lg_getCertDB
      Src: /src/nss/lib/softoken/legacydb/lgdestroy.c:69,1
    - Dst: nsslowcert_DeletePermCRL
      Src: /src/nss/lib/softoken/legacydb/lgdestroy.c:75,1
    - Dst: lg_getCertDB
      Src: /src/nss/lib/softoken/legacydb/lgdestroy.c:81,1
    - Dst: nsslowcert_FindCertByKey
      Src: /src/nss/lib/softoken/legacydb/lgdestroy.c:86,1
    - Dst: nsslowcert_ChangeCertTrust
      Src: /src/nss/lib/softoken/legacydb/lgdestroy.c:98,1
    - Dst: nsslowcert_DestroyCertificate
      Src: /src/nss/lib/softoken/legacydb/lgdestroy.c:101,1
    - Dst: lg_DBLock
      Src: /src/nss/lib/softoken/legacydb/lgdestroy.c:106,1
    - Dst: lg_deleteTokenKeyByHandle
      Src: /src/nss/lib/softoken/legacydb/lgdestroy.c:107,1
    - Dst: lg_DBUnlock
      Src: /src/nss/lib/softoken/legacydb/lgdestroy.c:108,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 80
    argCount: 2
    argNames:
    - sdb
    - object_id
    argTypes:
    - SDB*
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 111
    functionName: lg_DestroyObject
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgdestroy.c
    functionUses: 0
    functionsReached:
    - lg_deleteTokenKeyByHandle
    - nsslowcert_DeletePermCRL
    - lg_DBLock
    - lg_DBUnlock
    - nsslowkey_DeleteKey
    - lg_lookupTokenKeyByHandle
    - nsslowcert_FindCertByKey
    - nsslowcert_DeletePermCertificate
    - nsslowcert_DestroyCertificate
    - nsslowcert_ChangeCertTrust
    - lg_getKeyDB
    - lg_getCertDB
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV lg_DestroyObject(SDB *sdb, CK_OBJECT_HANDLE object_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - type
    - templ
    - count
    argTypes:
    - CK_ATTRIBUTE_TYPE
    - CK_ATTRIBUTE*
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 29
    functionName: lg_FindAttribute
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgutil.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: CK_ATTRIBUTE
    signature: "CK_ATTRIBUTE *\nlg_FindAttribute(CK_ATTRIBUTE_TYPE type, const CK_ATTRIBUTE
      *templ,\n                 CK_ULONG count)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lg_FindAttribute
      Src: /src/nss/lib/softoken/legacydb/lgutil.c:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - type
    - templ
    - count
    argTypes:
    - CK_ATTRIBUTE_TYPE
    - CK_ATTRIBUTE*
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 42
    functionName: lg_hasAttribute
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgutil.c
    functionUses: 1
    functionsReached:
    - lg_FindAttribute
    linkageType: ''
    returnType: PRBool
    signature: "PRBool lg_hasAttribute(CK_ATTRIBUTE_TYPE type, const CK_ATTRIBUTE
      *templ,\n                CK_ULONG count)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lg_FindAttribute
      Src: /src/nss/lib/softoken/legacydb/lgutil.c:56,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/lgutil.c:62,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/legacydb/lgutil.c:64,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/lgutil.c:71,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 5
    argNames:
    - arena
    - type
    - templ
    - count
    - item
    argTypes:
    - PLArenaPool*
    - CK_ATTRIBUTE_TYPE
    - CK_ATTRIBUTE*
    - CK_ULONG
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 74
    functionName: lg_Attribute2SecItem
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgutil.c
    functionUses: 1
    functionsReached:
    - PORT_Alloc
    - PORT_ArenaAlloc
    - lg_FindAttribute
    - PORT_Memcpy
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV lg_Attribute2SecItem(PLArenaPool *arena, CK_ATTRIBUTE_TYPE type,\n
      \                    const CK_ATTRIBUTE *templ, CK_ULONG count,\n                     SECItem
      *item)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lg_FindAttribute
      Src: /src/nss/lib/softoken/legacydb/lgutil.c:88,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/softoken/legacydb/lgutil.c:92,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/lgutil.c:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - arena
    - type
    - templ
    - count
    - item
    argTypes:
    - PLArenaPool*
    - CK_ATTRIBUTE_TYPE
    - CK_ATTRIBUTE*
    - CK_ULONG
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 98
    functionName: lg_Attribute2SSecItem
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgutil.c
    functionUses: 3
    functionsReached:
    - lg_FindAttribute
    - PORT_Memcpy
    - SECITEM_AllocItem
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV lg_Attribute2SSecItem(PLArenaPool *arena, CK_ATTRIBUTE_TYPE
      type,\n                      const CK_ATTRIBUTE *templ, CK_ULONG count,\n                      SECItem
      *item)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lg_FindAttribute
      Src: /src/nss/lib/softoken/legacydb/lgutil.c:115,1
    - Dst: lg_util_decrypt
      Src: /src/nss/lib/softoken/legacydb/lgutil.c:122,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/softoken/legacydb/lgutil.c:126,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/softoken/legacydb/lgutil.c:128,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/lgutil.c:132,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/softoken/legacydb/lgutil.c:133,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 6
    argNames:
    - arena
    - type
    - templ
    - count
    - item
    - sdbpw
    argTypes:
    - PLArenaPool*
    - CK_ATTRIBUTE_TYPE
    - CK_ATTRIBUTE*
    - CK_ULONG
    - SECItem*
    - SDB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 135
    functionName: lg_PrivAttr2SSecItem
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgutil.c
    functionUses: 1
    functionsReached:
    - PORT_Memcpy
    - lg_FindAttribute
    - SECITEM_AllocItem
    - lg_util_decrypt
    - SECITEM_FreeItem
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV lg_PrivAttr2SSecItem(PLArenaPool *arena, CK_ATTRIBUTE_TYPE type,\n
      \                    const CK_ATTRIBUTE *templ, CK_ULONG count,\n                     SECItem
      *item, SDB *sdbpw)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lg_PrivAttr2SSecItem
      Src: /src/nss/lib/softoken/legacydb/lgutil.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - arena
    - type
    - templ
    - count
    - item
    - sdbpw
    argTypes:
    - PLArenaPool*
    - CK_ATTRIBUTE_TYPE
    - CK_ATTRIBUTE*
    - CK_ULONG
    - SECItem*
    - SDB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 143
    functionName: lg_PrivAttr2SecItem
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgutil.c
    functionUses: 1
    functionsReached:
    - lg_PrivAttr2SSecItem
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV lg_PrivAttr2SecItem(PLArenaPool *arena, CK_ATTRIBUTE_TYPE type,\n
      \                   const CK_ATTRIBUTE *templ, CK_ULONG count,\n                    SECItem
      *item, SDB *sdbpw)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lg_FindAttribute
      Src: /src/nss/lib/softoken/legacydb/lgutil.c:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - type
    - templ
    - count
    argTypes:
    - CK_ATTRIBUTE_TYPE
    - CK_ATTRIBUTE*
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 162
    functionName: lg_isTrue
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgutil.c
    functionUses: 4
    functionsReached:
    - lg_FindAttribute
    linkageType: ''
    returnType: PRBool
    signature: PRBool lg_isTrue(CK_ATTRIBUTE_TYPE type, const CK_ATTRIBUTE *templ,
      CK_ULONG count)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lg_FindAttribute
      Src: /src/nss/lib/softoken/legacydb/lgutil.c:174,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/legacydb/lgutil.c:179,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/lgutil.c:184,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - type
    - templ
    - count
    argTypes:
    - CK_ATTRIBUTE_TYPE
    - CK_ATTRIBUTE*
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 188
    functionName: lg_getString
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgutil.c
    functionUses: 5
    functionsReached:
    - PORT_Alloc
    - lg_FindAttribute
    - PORT_Memcpy
    linkageType: ''
    returnType: char
    signature: 'char *

      lg_getString(CK_ATTRIBUTE_TYPE type, const CK_ATTRIBUTE *templ, CK_ULONG count)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lg_FindAttribute
      Src: /src/nss/lib/softoken/legacydb/lgutil.c:199,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - type
    - templ
    - count
    - longData
    argTypes:
    - CK_ATTRIBUTE_TYPE
    - CK_ATTRIBUTE*
    - CK_ULONG
    - CK_ULONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 213
    functionName: lg_GetULongAttribute
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgutil.c
    functionUses: 6
    functionsReached:
    - lg_FindAttribute
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV lg_GetULongAttribute(CK_ATTRIBUTE_TYPE type, const CK_ATTRIBUTE
      *templ,\n                     CK_ULONG count, CK_ULONG *longData)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lg_GetHashTable
      Src: /src/nss/lib/softoken/legacydb/lgutil.c:224,1
    - Dst: PL_HashTableLookup
      Src: /src/nss/lib/softoken/legacydb/lgutil.c:226,1
    - Dst: PL_HashTableRemove
      Src: /src/nss/lib/softoken/legacydb/lgutil.c:227,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/softoken/legacydb/lgutil.c:229,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - sdb
    - handle
    argTypes:
    - SDB*
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 232
    functionName: lg_deleteTokenKeyByHandle
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgutil.c
    functionUses: 1
    functionsReached:
    - PL_HashTableLookup
    - PL_HashTableRemove
    - SECITEM_FreeItem
    - lg_GetHashTable
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus lg_deleteTokenKeyByHandle(SDB *sdb, CK_OBJECT_HANDLE handle)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lg_GetHashTable
      Src: /src/nss/lib/softoken/legacydb/lgutil.c:240,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/softoken/legacydb/lgutil.c:242,1
    - Dst: PL_HashTableAdd
      Src: /src/nss/lib/softoken/legacydb/lgutil.c:246,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/softoken/legacydb/lgutil.c:248,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - sdb
    - handle
    - key
    argTypes:
    - SDB*
    - CK_OBJECT_HANDLE
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 252
    functionName: lg_addTokenKeyByHandle
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgutil.c
    functionUses: 0
    functionsReached:
    - SECITEM_DupItem
    - PL_HashTableAdd
    - SECITEM_FreeItem
    - lg_GetHashTable
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus lg_addTokenKeyByHandle(SDB *sdb, CK_OBJECT_HANDLE handle,
      SECItem *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lg_GetHashTable
      Src: /src/nss/lib/softoken/legacydb/lgutil.c:258,1
    - Dst: PL_HashTableLookup
      Src: /src/nss/lib/softoken/legacydb/lgutil.c:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sdb
    - handle
    argTypes:
    - SDB*
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 260
    functionName: lg_lookupTokenKeyByHandle
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgutil.c
    functionUses: 2
    functionsReached:
    - PL_HashTableLookup
    - lg_GetHashTable
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      lg_lookupTokenKeyByHandle(SDB *sdb, CK_OBJECT_HANDLE handle)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/softoken/legacydb/lgutil.c:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - entry
    - index
    - arg
    argTypes:
    - PLHashEntry*
    - PRIntn
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 269
    functionName: lg_freeHashItem
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgutil.c
    functionUses: 0
    functionsReached:
    - SECITEM_FreeItem
    linkageType: ''
    returnType: PRIntn
    signature: PRIntn lg_freeHashItem(PLHashEntry *entry, PRIntn index, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lg_DBLock
      Src: /src/nss/lib/softoken/legacydb/lgutil.c:275,1
    - Dst: lg_GetHashTable
      Src: /src/nss/lib/softoken/legacydb/lgutil.c:276,1
    - Dst: PL_HashTableEnumerateEntries
      Src: /src/nss/lib/softoken/legacydb/lgutil.c:277,1
    - Dst: lg_DBUnlock
      Src: /src/nss/lib/softoken/legacydb/lgutil.c:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - sdb
    argTypes:
    - SDB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 280
    functionName: lg_ClearTokenKeyHashTable
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgutil.c
    functionUses: 0
    functionsReached:
    - lg_DBUnlock
    - PL_HashTableEnumerateEntries
    - lg_DBLock
    - lg_GetHashTable
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV lg_ClearTokenKeyHashTable(SDB *sdb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/legacydb/lgutil.c:290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - key
    - dbkey
    - len
    argTypes:
    - unsigned char*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 298
    functionName: lg_XORHash
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgutil.c
    functionUses: 0
    functionsReached:
    - PORT_Memset
    linkageType: ''
    returnType: void
    signature: void lg_XORHash(unsigned char *key, unsigned char *dbkey, int len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lg_XORHash
      Src: /src/nss/lib/softoken/legacydb/lgutil.c:311,1
    - Dst: lg_DBLock
      Src: /src/nss/lib/softoken/legacydb/lgutil.c:324,1
    - Dst: lg_lookupTokenKeyByHandle
      Src: /src/nss/lib/softoken/legacydb/lgutil.c:325,1
    - Dst: SECITEM_ItemsAreEqual
      Src: /src/nss/lib/softoken/legacydb/lgutil.c:326,1
    - Dst: lg_DBUnlock
      Src: /src/nss/lib/softoken/legacydb/lgutil.c:327,1
    - Dst: lg_addTokenKeyByHandle
      Src: /src/nss/lib/softoken/legacydb/lgutil.c:332,1
    - Dst: lg_DBUnlock
      Src: /src/nss/lib/softoken/legacydb/lgutil.c:333,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - sdb
    - dbKey
    - class
    argTypes:
    - SDB*
    - SECItem*
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 301
    functionDepth: 2
    functionLinenumber: 301
    functionLinenumberEnd: 335
    functionName: lg_mkHandle
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgutil.c
    functionUses: 7
    functionsReached:
    - lg_XORHash
    - SECITEM_ItemsAreEqual
    - lg_addTokenKeyByHandle
    - lg_DBLock
    - lg_DBUnlock
    - lg_lookupTokenKeyByHandle
    linkageType: ''
    returnType: CK_OBJECT_HANDLE
    signature: CK_OBJECT_HANDLE lg_mkHandle(SDB *sdb, SECItem *dbKey, CK_OBJECT_HANDLE
      class)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lg_XORHash
      Src: /src/nss/lib/softoken/legacydb/lgutil.c:347,1
    - Dst: lg_DBLock
      Src: /src/nss/lib/softoken/legacydb/lgutil.c:357,1
    - Dst: lg_lookupTokenKeyByHandle
      Src: /src/nss/lib/softoken/legacydb/lgutil.c:358,1
    - Dst: SECITEM_ItemsAreEqual
      Src: /src/nss/lib/softoken/legacydb/lgutil.c:359,1
    - Dst: lg_DBUnlock
      Src: /src/nss/lib/softoken/legacydb/lgutil.c:361,1
    - Dst: lg_DBUnlock
      Src: /src/nss/lib/softoken/legacydb/lgutil.c:366,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - sdb
    - dbKey
    - class
    argTypes:
    - SDB*
    - SECItem*
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 337
    functionDepth: 2
    functionLinenumber: 337
    functionLinenumberEnd: 368
    functionName: lg_poisonHandle
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgutil.c
    functionUses: 1
    functionsReached:
    - lg_XORHash
    - SECITEM_ItemsAreEqual
    - lg_DBLock
    - lg_DBUnlock
    - lg_lookupTokenKeyByHandle
    linkageType: ''
    returnType: PRBool
    signature: PRBool lg_poisonHandle(SDB *sdb, SECItem *dbKey, CK_OBJECT_HANDLE class)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - enc
    - dec
    argTypes:
    - LGEncryptFunc
    - LGDecryptFunc
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 378
    functionName: legacy_SetCryptFunctions
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgutil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void legacy_SetCryptFunctions(LGEncryptFunc enc, LGDecryptFunc dec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/lgutil.c:385,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - arena
    - sdb
    - plainText
    - cipherText
    argTypes:
    - PLArenaPool*
    - SDB*
    - SECItem*
    - SECItem**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 389
    functionName: lg_util_encrypt
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgutil.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus lg_util_encrypt(PLArenaPool *arena, SDB *sdb,\n                SECItem
      *plainText, SECItem **cipherText)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/lgutil.c:395,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - sdb
    - cipherText
    - plainText
    argTypes:
    - SDB*
    - SECItem*
    - SECItem**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 399
    functionName: lg_util_decrypt
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgutil.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus lg_util_decrypt(SDB *sdb, SECItem *cipherText, SECItem **plainText)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:32,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - search
    argTypes:
    - SDBFind*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 35
    functionName: lg_FreeSearch
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgfind.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    linkageType: ''
    returnType: void
    signature: void lg_FreeSearch(SDBFind *search)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Realloc
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:45,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - search
    - handle
    argTypes:
    - SDBFind*
    - CK_OBJECT_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 53
    functionName: lg_addHandle
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgfind.c
    functionUses: 0
    functionsReached:
    - PORT_Realloc
    linkageType: ''
    returnType: void
    signature: void lg_addHandle(SDBFind *search, CK_OBJECT_HANDLE handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lg_tokenMatch
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:88,1
    - Dst: lg_addHandle
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:90,1
    - Dst: lg_mkHandle
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - data
    - key
    - type
    - arg
    argTypes:
    - SECItem*
    - SECItem*
    - certDBEntryType
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 77
    functionDepth: 8
    functionLinenumber: 77
    functionLinenumberEnd: 94
    functionName: lg_crl_collect
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgfind.c
    functionUses: 0
    functionsReached:
    - lg_mkHandle
    - lg_addHandle
    - lg_tokenMatch
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus lg_crl_collect(SECItem *data, SECItem *key, certDBEntryType
      type, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lg_getCertDB
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:103,1
    - Dst: nsslowcert_FindCrlByKey
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:109,1
    - Dst: lg_addHandle
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:112,1
    - Dst: lg_mkHandle
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:112,1
    - Dst: nsslowcert_DestroyDBEntry
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:114,1
    - Dst: nsslowcert_TraverseDBEntries
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:126,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 7
    argNames:
    - sdb
    - derSubject
    - isKrl
    - classFlags
    - search
    - pTemplate
    - ulCount
    argTypes:
    - SDB*
    - SECItem*
    - PRBool
    - unsigned long
    - SDBFind*
    - CK_ATTRIBUTE*
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 96
    functionDepth: 3
    functionLinenumber: 96
    functionLinenumberEnd: 129
    functionName: lg_searchCrls
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgfind.c
    functionUses: 0
    functionsReached:
    - lg_addHandle
    - nsslowcert_FindCrlByKey
    - nsslowcert_DestroyDBEntry
    - lg_mkHandle
    - lg_getCertDB
    - nsslowcert_TraverseDBEntries
    linkageType: ''
    returnType: void
    signature: "void lg_searchCrls(SDB *sdb, SECItem *derSubject, PRBool isKrl,\n
      \             unsigned long classFlags, SDBFind *search,\n              const
      CK_ATTRIBUTE *pTemplate, CK_ULONG ulCount)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - privKey
    argTypes:
    - NSSLOWKEYPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 154
    functionName: isSecretKey
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgfind.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool isSecretKey(NSSLOWKEYPrivateKey *privKey)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:173,1
    - Dst: nsslowkey_FindKeyByPublicKey
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:183,1
    - Dst: isSecretKey
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:187,1
    - Dst: lg_nsslowkey_DestroyPrivateKey
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:189,1
    - Dst: SHA1_HashBuf
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:192,1
    - Dst: SECITEM_ItemsAreEqual
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:193,1
    - Dst: SHA1_HashBuf
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:203,1
    - Dst: SECITEM_ItemsAreEqual
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:205,1
    - Dst: lg_addHandle
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:210,1
    - Dst: lg_mkHandle
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:211,1
    - Dst: lg_addHandle
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:214,1
    - Dst: lg_mkHandle
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:215,1
    - Dst: lg_addHandle
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:218,1
    - Dst: lg_mkHandle
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:219,1
    - Dst: nsslowkey_FindKeyByPublicKey
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:225,1
    - Dst: isSecretKey
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:231,1
    - Dst: lg_tokenMatch
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:233,1
    - Dst: lg_addHandle
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:235,1
    - Dst: lg_mkHandle
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:236,1
    - Dst: lg_tokenMatch
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:240,1
    - Dst: lg_addHandle
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:242,1
    - Dst: lg_mkHandle
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:243,1
    - Dst: lg_tokenMatch
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:246,1
    - Dst: lg_addHandle
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:248,1
    - Dst: lg_mkHandle
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:249,1
    - Dst: lg_nsslowkey_DestroyPrivateKey
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:255,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 62
    argCount: 3
    argNames:
    - key
    - data
    - arg
    argTypes:
    - DBT*
    - DBT*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 156
    functionDepth: 8
    functionLinenumber: 156
    functionLinenumberEnd: 258
    functionName: lg_key_collect
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgfind.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - lg_addHandle
    - SECITEM_ItemsAreEqual
    - isSecretKey
    - nsslowkey_FindKeyByPublicKey
    - lg_tokenMatch
    - SHA1_HashBuf
    - lg_mkHandle
    - lg_nsslowkey_DestroyPrivateKey
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus lg_key_collect(DBT *key, DBT *data, void *arg)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: lg_getKeyDB
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:270,1
    - Dst: nsslowkey_FindKeyByPublicKey
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:276,1
    - Dst: isSecretKey
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:278,1
    - Dst: lg_addHandle
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:279,1
    - Dst: lg_mkHandle
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:280,1
    - Dst: isSecretKey
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:283,1
    - Dst: lg_addHandle
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:284,1
    - Dst: lg_mkHandle
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:285,1
    - Dst: isSecretKey
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:288,1
    - Dst: lg_addHandle
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:289,1
    - Dst: lg_mkHandle
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:290,1
    - Dst: lg_nsslowkey_DestroyPrivateKey
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:293,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 7
    argNames:
    - sdb
    - key_id
    - classFlags
    - search
    - mustStrict
    - pTemplate
    - ulCount
    argTypes:
    - SDB*
    - SECItem*
    - unsigned long
    - SDBFind*
    - PRBool
    - CK_ATTRIBUTE*
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 260
    functionDepth: 3
    functionLinenumber: 260
    functionLinenumberEnd: 322
    functionName: lg_searchKeys
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgfind.c
    functionUses: 0
    functionsReached:
    - lg_addHandle
    - isSecretKey
    - nsslowkey_FindKeyByPublicKey
    - lg_getKeyDB
    - lg_mkHandle
    - lg_nsslowkey_DestroyPrivateKey
    linkageType: ''
    returnType: void
    signature: "void lg_searchKeys(SDB *sdb, SECItem *key_id,\n              unsigned
      long classFlags, SDBFind *search, PRBool mustStrict,\n              const CK_ATTRIBUTE
      *pTemplate, CK_ULONG ulCount)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: lg_tokenMatch
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:356,1
    - Dst: lg_tokenMatch
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:360,1
    - Dst: lg_tokenMatch
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:364,1
    - Dst: PORT_Realloc
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:375,1
    - Dst: nsslowcert_DupCertificate
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:381,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 2
    argNames:
    - cert
    - arg
    argTypes:
    - NSSLOWCERTCertificate*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 341
    functionDepth: 8
    functionLinenumber: 341
    functionLinenumberEnd: 383
    functionName: lg_cert_collect
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgfind.c
    functionUses: 0
    functionsReached:
    - nsslowcert_DupCertificate
    - lg_tokenMatch
    - PORT_Realloc
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus lg_cert_collect(NSSLOWCERTCertificate *cert, void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lg_cert_collect
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cert
    - dymmy
    - arg
    argTypes:
    - NSSLOWCERTCertificate*
    - SECItem*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 386
    functionDepth: 9
    functionLinenumber: 386
    functionLinenumberEnd: 390
    functionName: lg_cert_collect2
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgfind.c
    functionUses: 0
    functionsReached:
    - lg_cert_collect
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus lg_cert_collect2(NSSLOWCERTCertificate *cert, SECItem *dymmy,
      void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lg_tokenMatch
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:399,1
    - Dst: nsslowcert_DestroyCertificate
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:401,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:405,1
    - Dst: nsslowcert_DestroyCertificate
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:407,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - certData
    - cert
    argTypes:
    - lgCertData*
    - NSSLOWCERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 392
    functionDepth: 8
    functionLinenumber: 392
    functionLinenumberEnd: 412
    functionName: lg_searchSingleCert
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgfind.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - nsslowcert_DestroyCertificate
    - lg_tokenMatch
    linkageType: ''
    returnType: void
    signature: void lg_searchSingleCert(lgCertData *certData, NSSLOWCERTCertificate
      *cert)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:423,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - certData
    - count
    argTypes:
    - lgCertData*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 425
    functionName: lg_CertSetupData
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgfind.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    linkageType: ''
    returnType: void
    signature: void lg_CertSetupData(lgCertData *certData, int count)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: lg_getCertDB
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:438,1
    - Dst: nsslowcert_FindCertByDERCert
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:456,1
    - Dst: lg_searchSingleCert
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:457,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:459,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:465,1
    - Dst: nsslowcert_NumPermCertsForNickname
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:468,1
    - Dst: lg_CertSetupData
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:469,1
    - Dst: nsslowcert_TraversePermCertsForNickname
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:470,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:472,1
    - Dst: nsslowcert_NumPermCertsForSubject
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:476,1
    - Dst: lg_CertSetupData
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:477,1
    - Dst: nsslowcert_TraversePermCertsForSubject
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:478,1
    - Dst: nsslowcert_FindCertByIssuerAndSN
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:484,1
    - Dst: lg_searchSingleCert
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:486,1
    - Dst: nsslowcert_FindTrustByIssuerAndSN
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:490,1
    - Dst: lg_addHandle
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:493,1
    - Dst: lg_mkHandle
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:494,1
    - Dst: nsslowcert_DestroyTrust
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:495,1
    - Dst: nsslowcert_FindTrustByIssuerAndSN
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:500,1
    - Dst: lg_addHandle
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:503,1
    - Dst: lg_mkHandle
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:504,1
    - Dst: nsslowcert_DestroyTrust
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:505,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:509,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:515,1
    - Dst: nsslowcert_ReadDBSMimeEntry
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:518,1
    - Dst: nsslowcert_NumPermCertsForSubject
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:523,1
    - Dst: lg_CertSetupData
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:524,1
    - Dst: nsslowcert_TraversePermCertsForSubject
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:525,1
    - Dst: nsslowcert_DestroyDBEntry
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:528,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:530,1
    - Dst: lg_CertSetupData
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:535,1
    - Dst: nsslowcert_TraversePermCerts
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:536,1
    - Dst: lg_addHandle
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:547,1
    - Dst: lg_mkHandle
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:548,1
    - Dst: nsslowcert_hasTrust
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:550,1
    - Dst: lg_addHandle
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:551,1
    - Dst: lg_mkHandle
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:552,1
    - Dst: nsslowcert_hasTrust
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:554,1
    - Dst: lg_addHandle
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:555,1
    - Dst: lg_mkHandle
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:556,1
    - Dst: nsslowcert_DestroyCertificate
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:558,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:562,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 79
    argCount: 10
    argNames:
    - sdb
    - derCert
    - name
    - derSubject
    - issuerSN
    - email
    - classFlags
    - handles
    - pTemplate
    - ulCount
    argTypes:
    - SDB*
    - SECItem*
    - SECItem*
    - SECItem*
    - NSSLOWCERTIssuerAndSN*
    - SECItem*
    - unsigned long
    - SDBFind*
    - CK_ATTRIBUTE*
    - CK_LONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 427
    functionDepth: 9
    functionLinenumber: 427
    functionLinenumberEnd: 564
    functionName: lg_searchCertsAndTrust
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgfind.c
    functionUses: 0
    functionsReached:
    - nsslowcert_TraversePermCertsForNickname
    - lg_searchSingleCert
    - nsslowcert_FindTrustByIssuerAndSN
    - nsslowcert_TraversePermCerts
    - nsslowcert_NumPermCertsForSubject
    - lg_CertSetupData
    - PORT_Memcpy
    - lg_getCertDB
    - nsslowcert_TraversePermCertsForSubject
    - nsslowcert_FindCertByDERCert
    - nsslowcert_ReadDBSMimeEntry
    - nsslowcert_FindCertByIssuerAndSN
    - lg_mkHandle
    - PORT_Alloc
    - lg_addHandle
    - PORT_Free
    - nsslowcert_hasTrust
    - nsslowcert_DestroyDBEntry
    - nsslowcert_NumPermCertsForNickname
    - nsslowcert_DestroyTrust
    - nsslowcert_DestroyCertificate
    linkageType: ''
    returnType: void
    signature: "void lg_searchCertsAndTrust(SDB *sdb, SECItem *derCert, SECItem *name,\n
      \                      SECItem *derSubject, NSSLOWCERTIssuerAndSN *issuerSN,\n
      \                      SECItem *email,\n                       unsigned long
      classFlags, SDBFind *handles,\n                       const CK_ATTRIBUTE *pTemplate,
      CK_LONG ulCount)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lg_tokenMatch
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:575,1
    - Dst: lg_addHandle
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:577,1
    - Dst: lg_mkHandle
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:578,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - data
    - key
    - type
    - arg
    argTypes:
    - SECItem*
    - SECItem*
    - certDBEntryType
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 566
    functionDepth: 8
    functionLinenumber: 566
    functionLinenumberEnd: 581
    functionName: lg_smime_collect
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgfind.c
    functionUses: 0
    functionsReached:
    - lg_mkHandle
    - lg_addHandle
    - lg_tokenMatch
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus lg_smime_collect(SECItem *data, SECItem *key, certDBEntryType
      type, void *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lg_getCertDB
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:590,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:595,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:600,1
    - Dst: nsslowcert_ReadDBSMimeEntry
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:603,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:608,1
    - Dst: lg_addHandle
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:610,1
    - Dst: lg_mkHandle
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:611,1
    - Dst: nsslowcert_DestroyDBEntry
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:612,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:614,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 5
    argNames:
    - sdb
    - email
    - handles
    - pTemplate
    - ulCount
    argTypes:
    - SDB*
    - SECItem*
    - SDBFind*
    - CK_ATTRIBUTE*
    - CK_LONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 583
    functionDepth: 3
    functionLinenumber: 583
    functionLinenumberEnd: 628
    functionName: lg_searchSMime
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgfind.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - lg_addHandle
    - PORT_Memcpy
    - PORT_Free
    - PORT_Strlen
    - nsslowcert_DestroyDBEntry
    - nsslowcert_ReadDBSMimeEntry
    - lg_mkHandle
    - lg_getCertDB
    linkageType: ''
    returnType: void
    signature: "void lg_searchSMime(SDB *sdb, SECItem *email, SDBFind *handles,\n
      \              const CK_ATTRIBUTE *pTemplate, CK_LONG ulCount)"
  - BBCount: 58
    BranchProfiles: []
    Callsites:
    - Dst: lg_getCertDB
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:653,1
    - Dst: lg_GetULongAttribute
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:696,1
    - Dst: lg_GetULongAttribute
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:775,1
    - Dst: lg_searchCertsAndTrust
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:838,1
    - Dst: lg_searchKeys
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:846,1
    - Dst: lg_searchCrls
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:852,1
    - Dst: lg_searchSMime
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:857,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 184
    argCount: 4
    argNames:
    - sdb
    - search
    - pTemplate
    - ulCount
    argTypes:
    - SDB*
    - SDBFind*
    - CK_ATTRIBUTE*
    - CK_LONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 630
    functionDepth: 10
    functionLinenumber: 630
    functionLinenumberEnd: 860
    functionName: lg_searchTokenList
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgfind.c
    functionUses: 0
    functionsReached:
    - lg_searchCrls
    - lg_GetULongAttribute
    - lg_searchCertsAndTrust
    - lg_searchSMime
    - lg_searchKeys
    - lg_getCertDB
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV lg_searchTokenList(SDB *sdb, SDBFind *search,\n                   const
      CK_ATTRIBUTE *pTemplate, CK_LONG ulCount)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:873,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:879,1
    - Dst: lg_searchTokenList
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:889,1
    - Dst: lg_FreeSearch
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:899,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 4
    argNames:
    - sdb
    - pTemplate
    - ulCount
    - retSearch
    argTypes:
    - SDB*
    - CK_ATTRIBUTE*
    - CK_ULONG
    - SDBFind**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 864
    functionDepth: 11
    functionLinenumber: 864
    functionLinenumberEnd: 902
    functionName: lg_FindObjectsInit
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgfind.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - lg_searchTokenList
    - lg_FreeSearch
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV lg_FindObjectsInit(SDB *sdb, const CK_ATTRIBUTE *pTemplate,\n
      \                  CK_ULONG ulCount, SDBFind **retSearch)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:918,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - sdb
    - search
    - phObject
    - ulMaxObjectCount
    - pulObjectCount
    argTypes:
    - SDB*
    - SDBFind*
    - CK_OBJECT_HANDLE*
    - CK_ULONG
    - CK_ULONG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 927
      start: 906
    functionDepth: 0
    functionLinenumber: 906
    functionLinenumberEnd: 927
    functionName: lg_FindObjects
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgfind.c
    functionUses: 0
    functionsReached:
    - PORT_Memcpy
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV lg_FindObjects(SDB *sdb, SDBFind *search,\n               CK_OBJECT_HANDLE
      *phObject, CK_ULONG ulMaxObjectCount,\n               CK_ULONG *pulObjectCount)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lg_FreeSearch
      Src: /src/nss/lib/softoken/legacydb/lgfind.c:935,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - lgdb
    - search
    argTypes:
    - SDB*
    - SDBFind*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 930
    functionDepth: 1
    functionLinenumber: 930
    functionLinenumberEnd: 938
    functionName: lg_FindObjectsFinal
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgfind.c
    functionUses: 0
    functionsReached:
    - lg_FreeSearch
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV lg_FindObjectsFinal(SDB *lgdb, SDBFind *search)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 20
    functionName: FREE_CLEAR
    functionSourceFile: /src/nss/lib/softoken/legacydb/pk11db.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FREE_CLEAR(p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NSSUTIL_ArgGetParamValue
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:28,1
    - Dst: NSSUTIL_ArgGetParamValue
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:30,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:34,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - key
    - module
    argTypes:
    - DBT*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 22
    functionDepth: 5
    functionLinenumber: 22
    functionLinenumberEnd: 38
    functionName: lgdb_MakeKey
    functionSourceFile: /src/nss/lib/softoken/legacydb/pk11db.c
    functionUses: 0
    functionsReached:
    - NSSUTIL_ArgGetParamValue
    - PORT_Strlen
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus lgdb_MakeKey(DBT *key, char *module)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - key
    argTypes:
    - DBT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 49
    functionName: lgdb_FreeKey
    functionSourceFile: /src/nss/lib/softoken/legacydb/pk11db.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    linkageType: ''
    returnType: void
    signature: void lgdb_FreeKey(DBT *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dest
    - ','
    - src
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: LGDB_PUTSHORT
    functionSourceFile: /src/nss/lib/softoken/legacydb/pk11db.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LGDB_PUTSHORT(dest, src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - dest
    - ','
    - src
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 95
    functionName: LGDB_PUTLONG
    functionSourceFile: /src/nss/lib/softoken/legacydb/pk11db.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LGDB_PUTLONG(dest, src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - src
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 97
    functionName: LGDB_GETSHORT
    functionSourceFile: /src/nss/lib/softoken/legacydb/pk11db.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LGDB_GETSHORT(src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - src
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 102
    functionName: LGDB_GETLONG
    functionSourceFile: /src/nss/lib/softoken/legacydb/pk11db.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LGDB_GETLONG(src)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: NSSUTIL_ArgParseModuleSpec
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:123,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:133,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:135,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:138,1
    - Dst: NSSUTIL_ArgGetParamValue
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:141,1
    - Dst: NSSUTIL_ArgParseSlotInfo
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:142,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:144,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:154,1
    - Dst: NSSUTIL_ArgHasFlag
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:166,1
    - Dst: NSSUTIL_ArgHasFlag
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:167,1
    - Dst: NSSUTIL_ArgHasFlag
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:168,1
    - Dst: NSSUTIL_ArgHasFlag
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:169,1
    - Dst: NSSUTIL_ArgHasFlag
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:170,1
    - Dst: NSSUTIL_ArgReadLong
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:172,1
    - Dst: LGDB_PUTLONG
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:174,1
    - Dst: NSSUTIL_ArgReadLong
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:175,1
    - Dst: LGDB_PUTLONG
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:177,1
    - Dst: NSSUTIL_ArgGetParamValue
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:179,1
    - Dst: NSSUTIL_ArgParseCipherFlags
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:180,1
    - Dst: LGDB_PUTLONG
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:181,1
    - Dst: LGDB_PUTLONG
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:182,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:184,1
    - Dst: LGDB_PUTSHORT
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:187,1
    - Dst: LGDB_PUTSHORT
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:189,1
    - Dst: LGDB_PUTSHORT
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:191,1
    - Dst: LGDB_PUTSHORT
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:195,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:197,1
    - Dst: LGDB_PUTSHORT
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:200,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:203,1
    - Dst: LGDB_PUTSHORT
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:207,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:210,1
    - Dst: LGDB_PUTLONG
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:216,1
    - Dst: LGDB_PUTLONG
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:217,1
    - Dst: LGDB_PUTLONG
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:219,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:222,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:229,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:231,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:233,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:235,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:237,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 97
    argCount: 2
    argNames:
    - data
    - module
    argTypes:
    - DBT*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 106
    functionDepth: 8
    functionLinenumber: 106
    functionLinenumberEnd: 239
    functionName: lgdb_EncodeData
    functionSourceFile: /src/nss/lib/softoken/legacydb/pk11db.c
    functionUses: 0
    functionsReached:
    - NSSUTIL_ArgGetParamValue
    - PORT_Memcpy
    - LGDB_PUTLONG
    - PORT_Free
    - PORT_ZAlloc
    - PORT_Strlen
    - NSSUTIL_ArgParseModuleSpec
    - NSSUTIL_ArgParseCipherFlags
    - NSSUTIL_ArgParseSlotInfo
    - LGDB_PUTSHORT
    - NSSUTIL_ArgHasFlag
    - NSSUTIL_ArgReadLong
    - PORT_Memset
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus lgdb_EncodeData(DBT *data, char *module)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - DBT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 247
    functionName: lgdb_FreeData
    functionSourceFile: /src/nss/lib/softoken/legacydb/pk11db.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    linkageType: ''
    returnType: void
    signature: void lgdb_FreeData(DBT *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:256,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - slotStrings
    - count
    argTypes:
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 260
    functionName: lgdb_FreeSlotStrings
    functionSourceFile: /src/nss/lib/softoken/legacydb/pk11db.c
    functionUses: 0
    functionsReached:
    - PR_smprintf_free
    linkageType: ''
    returnType: void
    signature: void lgdb_FreeSlotStrings(char **slotStrings, int count)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:299,1
    - Dst: PORT_ArenaStrdup
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:322,1
    - Dst: CHECK_SIZE
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:332,1
    - Dst: LGDB_GETLONG
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:333,1
    - Dst: LGDB_GETLONG
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:334,1
    - Dst: LGDB_GETLONG
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:344,1
    - Dst: LGDB_GETLONG
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:345,1
    - Dst: LGDB_GETSHORT
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:347,1
    - Dst: LGDB_GETSHORT
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:348,1
    - Dst: CHECK_SIZE
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:366,1
    - Dst: LGDB_GETSHORT
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:368,1
    - Dst: CHECK_SIZE
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:370,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:371,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:374,1
    - Dst: CHECK_SIZE
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:379,1
    - Dst: LGDB_GETSHORT
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:380,1
    - Dst: CHECK_SIZE
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:382,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:383,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:386,1
    - Dst: CHECK_SIZE
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:393,1
    - Dst: LGDB_GETSHORT
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:394,1
    - Dst: CHECK_SIZE
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:396,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:397,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:400,1
    - Dst: CHECK_SIZE
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:431,1
    - Dst: LGDB_GETSHORT
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:432,1
    - Dst: CHECK_SIZE
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:444,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:448,1
    - Dst: LGDB_GETLONG
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:454,1
    - Dst: LGDB_GETLONG
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:455,1
    - Dst: LGDB_GETLONG
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:456,1
    - Dst: NSSUTIL_ArgParseSlotFlags
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:460,1
    - Dst: NSSUTIL_MkSlotString
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:468,1
    - Dst: lgdb_FreeSlotStrings
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:472,1
    - Dst: NSSUTIL_MkNSSString
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:477,1
    - Dst: lgdb_FreeSlotStrings
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:480,1
    - Dst: NSSUTIL_MkModuleSpec
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:483,1
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:484,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:485,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:489,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:491,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 123
    argCount: 3
    argNames:
    - defParams
    - data
    - retInternal
    argTypes:
    - char*
    - DBT*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 265
    functionDepth: 6
    functionLinenumber: 265
    functionLinenumberEnd: 493
    functionName: lgdb_DecodeData
    functionSourceFile: /src/nss/lib/softoken/legacydb/pk11db.c
    functionUses: 0
    functionsReached:
    - CHECK_SIZE
    - PORT_Memcpy
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - PORT_FreeArena
    - PORT_ArenaStrdup
    - PORT_ArenaAlloc
    - lgdb_FreeSlotStrings
    - LGDB_GETSHORT
    - PORT_SetError
    - PR_smprintf_free
    - NSSUTIL_MkNSSString
    - NSSUTIL_MkModuleSpec
    - NSSUTIL_MkSlotString
    - LGDB_GETLONG
    - NSSUTIL_ArgParseSlotFlags
    linkageType: ''
    returnType: char
    signature: 'char *

      lgdb_DecodeData(char *defParams, DBT *data, PRBool *retInternal)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 306
    functionName: CHECK_SIZE
    functionSourceFile: /src/nss/lib/softoken/legacydb/pk11db.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_SIZE(x)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strdup
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:502,1
    - Dst: strlen
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:503,1
    - Dst: PORT_Strcmp
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:506,1
    - Dst: rdbopen
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:510,1
    - Dst: rdbopen
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:514,1
    - Dst: rdbopen
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:517,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:520,1
    - Dst: dbopen
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:523,1
    - Dst: db_Copy
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:525,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:529,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:533,1
    - Dst: dbopen
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:538,1
    - Dst: dbopen
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:545,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 5
    argNames:
    - appName
    - filename
    - dbName
    - readOnly
    - update
    argTypes:
    - char*
    - char*
    - char*
    - PRBool
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 495
    functionDepth: 2
    functionLinenumber: 495
    functionLinenumberEnd: 550
    functionName: lgdb_OpenDB
    functionSourceFile: /src/nss/lib/softoken/legacydb/pk11db.c
    functionUses: 0
    functionsReached:
    - dbopen
    - db_Copy
    - PORT_Free
    - rdbopen
    - PORT_Strcmp
    - PORT_Strdup
    - strlen
    linkageType: ''
    returnType: DB
    signature: "DB *\nlgdb_OpenDB(const char *appName, const char *filename, const
      char *dbName,\n            PRBool readOnly, PRBool update)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkcs11db
    argTypes:
    - DB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 556
    functionName: lgdb_CloseDB
    functionSourceFile: /src/nss/lib/softoken/legacydb/pk11db.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lgdb_CloseDB(DB *pkcs11db)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:576,1
    - Dst: lgdb_OpenDB
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:580,1
    - Dst: PORT_Realloc
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:595,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:599,1
    - Dst: lgdb_DecodeData
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:602,1
    - Dst: NSSUTIL_Quote
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:613,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:615,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:618,1
    - Dst: lgdb_CloseDB
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:624,1
    - Dst: legacy_AddSecmodDB
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:626,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:629,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 565
    functionDepth: 7
    functionLinenumber: 565
    functionLinenumberEnd: 633
    functionName: legacy_ReadSecmodDB
    functionSourceFile: /src/nss/lib/softoken/legacydb/pk11db.c
    functionUses: 0
    functionsReached:
    - lgdb_OpenDB
    - PORT_Free
    - legacy_AddSecmodDB
    - PORT_ZAlloc
    - lgdb_DecodeData
    - lgdb_CloseDB
    - PR_smprintf
    - NSSUTIL_Quote
    - PORT_Realloc
    - PORT_Memset
    linkageType: ''
    returnType: char
    signature: "char **\nlegacy_ReadSecmodDB(const char *appName, const char *filename,\n
      \                   const char *dbname, char *params, PRBool rw)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:642,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:644,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - appName
    - filename
    - dbname
    - moduleSpecList
    - rw
    argTypes:
    - char*
    - char*
    - char*
    - char**
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 635
    functionDepth: 1
    functionLinenumber: 635
    functionLinenumberEnd: 647
    functionName: legacy_ReleaseSecmodDBData
    functionSourceFile: /src/nss/lib/softoken/legacydb/pk11db.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - PR_smprintf_free
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus legacy_ReleaseSecmodDBData(const char *appName, const char
      *filename,\n                           const char *dbname, char **moduleSpecList,
      PRBool rw)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lgdb_OpenDB
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:665,1
    - Dst: lgdb_MakeKey
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:670,1
    - Dst: lgdb_FreeKey
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:675,1
    - Dst: lgdb_CloseDB
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:684,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 5
    argNames:
    - appName
    - filename
    - dbname
    - args
    - rw
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 652
    functionDepth: 6
    functionLinenumber: 652
    functionLinenumberEnd: 686
    functionName: legacy_DeleteSecmodDB
    functionSourceFile: /src/nss/lib/softoken/legacydb/pk11db.c
    functionUses: 0
    functionsReached:
    - lgdb_CloseDB
    - lgdb_OpenDB
    - lgdb_FreeKey
    - lgdb_MakeKey
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus legacy_DeleteSecmodDB(const char *appName, const char *filename,\n
      \                     const char *dbname, char *args, PRBool rw)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: lgdb_OpenDB
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:704,1
    - Dst: lgdb_MakeKey
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:709,1
    - Dst: lgdb_EncodeData
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:712,1
    - Dst: lgdb_FreeKey
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:714,1
    - Dst: lgdb_FreeKey
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:719,1
    - Dst: lgdb_FreeData
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:720,1
    - Dst: lgdb_CloseDB
      Src: /src/nss/lib/softoken/legacydb/pk11db.c:729,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 5
    argNames:
    - appName
    - filename
    - dbname
    - module
    - rw
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 691
    functionDepth: 9
    functionLinenumber: 691
    functionLinenumberEnd: 731
    functionName: legacy_AddSecmodDB
    functionSourceFile: /src/nss/lib/softoken/legacydb/pk11db.c
    functionUses: 1
    functionsReached:
    - lgdb_OpenDB
    - lgdb_CloseDB
    - lgdb_EncodeData
    - lgdb_MakeKey
    - lgdb_FreeData
    - lgdb_FreeKey
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus legacy_AddSecmodDB(const char *appName, const char *filename,\n
      \                  const char *dbname, char *module, PRBool rw)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lg_startup_tests
      Src: /src/nss/lib/softoken/legacydb/lgfips.c:51,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - hinstDLL
    - fdwReason
    - lpReserved
    argTypes:
    - HINSTANCE
    - DWORD
    - LPVOID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 67
    functionName: DllMain
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgfips.c
    functionUses: 0
    functionsReached:
    - lg_startup_tests
    linkageType: ''
    returnType: BOOL
    signature: "BOOL DllMain(\n    HINSTANCE hinstDLL, // handle to DLL module\n    DWORD
      fdwReason,    // reason for calling function\n    LPVOID lpReserved)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: lg_local_function
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgfips.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lg_local_function(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/legacydb/lgfips.c:87,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/legacydb/lgfips.c:88,1
    - Dst: BLAPI_SHVerify
      Src: /src/nss/lib/softoken/legacydb/lgfips.c:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 102
    functionName: lg_startup_tests
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgfips.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - BLAPI_SHVerify
    linkageType: ''
    returnType: void
    signature: void lg_startup_tests(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lg_startup_tests
      Src: /src/nss/lib/softoken/legacydb/lgfips.c:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 118
    functionName: lg_FIPSEntryOK
    functionSourceFile: /src/nss/lib/softoken/legacydb/lgfips.c
    functionUses: 0
    functionsReached:
    - lg_startup_tests
    linkageType: ''
    returnType: PRBool
    signature: PRBool lg_FIPSEntryOK()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PZ_NewLock
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:55,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - handle
    argTypes:
    - NSSLOWCERTCertDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 58
    functionName: certdb_InitDBLock
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PZ_NewLock
    linkageType: ''
    returnType: void
    signature: void certdb_InitDBLock(NSSLOWCERTCertDBHandle *handle)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PZ_NewLock
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:64,1
    - Dst: PZ_NewLock
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:70,1
    - Dst: PZ_NewLock
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:76,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 83
    functionName: nsslowcert_InitLocks
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PZ_NewLock
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus nsslowcert_InitLocks(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PZ_EnterMonitor
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - handle
    argTypes:
    - NSSLOWCERTCertDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: nsslowcert_LockDB
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PZ_EnterMonitor
    linkageType: ''
    returnType: void
    signature: void nsslowcert_LockDB(NSSLOWCERTCertDBHandle *handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PZ_ExitMonitor
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:107,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:108,1
    - Dst: PZ_ExitMonitor
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - handle
    argTypes:
    - NSSLOWCERTCertDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 112
    functionName: nsslowcert_UnlockDB
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PZ_ExitMonitor
    linkageType: ''
    returnType: void
    signature: void nsslowcert_UnlockDB(NSSLOWCERTCertDBHandle *handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:123,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cert
    argTypes:
    - NSSLOWCERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 127
    functionName: nsslowcert_LockCertRefCount
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PZ_Lock
    linkageType: ''
    returnType: void
    signature: void nsslowcert_LockCertRefCount(NSSLOWCERTCertificate *cert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:135,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:139,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:140,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - cert
    argTypes:
    - NSSLOWCERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 145
    functionName: nsslowcert_UnlockCertRefCount
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PZ_Unlock
    linkageType: ''
    returnType: void
    signature: void nsslowcert_UnlockCertRefCount(NSSLOWCERTCertificate *cert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:156,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cert
    argTypes:
    - NSSLOWCERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 160
    functionName: nsslowcert_LockCertTrust
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PZ_Lock
    linkageType: ''
    returnType: void
    signature: void nsslowcert_LockCertTrust(NSSLOWCERTCertificate *cert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:168,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:172,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:173,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - cert
    argTypes:
    - NSSLOWCERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 178
    functionName: nsslowcert_UnlockCertTrust
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PZ_Unlock
    linkageType: ''
    returnType: void
    signature: void nsslowcert_UnlockCertTrust(NSSLOWCERTCertificate *cert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:189,1
    - Dst: SKIP_AFTER_FORK
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:191,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 193
    functionName: nsslowcert_LockFreeList
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SKIP_AFTER_FORK
    - PZ_Lock
    linkageType: ''
    returnType: void
    signature: void nsslowcert_LockFreeList(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:201,1
    - Dst: SKIP_AFTER_FORK
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:206,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:206,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:207,1
    - Dst: SKIP_AFTER_FORK
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:210,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 212
    functionName: nsslowcert_UnlockFreeList
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SKIP_AFTER_FORK
    - PZ_Unlock
    linkageType: ''
    returnType: void
    signature: void nsslowcert_UnlockFreeList(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nsslowcert_LockCertRefCount
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:218,1
    - Dst: nsslowcert_UnlockCertRefCount
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - c
    argTypes:
    - NSSLOWCERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 223
    functionName: nsslowcert_DupCertificate
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 1
    functionsReached:
    - nsslowcert_UnlockCertRefCount
    - nsslowcert_LockCertRefCount
    linkageType: ''
    returnType: NSSLOWCERTCertificate
    signature: 'NSSLOWCERTCertificate *

      nsslowcert_DupCertificate(NSSLOWCERTCertificate *c)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:230,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:231,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - db
    - key
    - data
    - flags
    argTypes:
    - DB*
    - DBT*
    - DBT*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 238
    functionName: certdb_Get
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PZ_Lock
    - PZ_Unlock
    linkageType: ''
    returnType: int
    signature: int certdb_Get(DB *db, DBT *key, DBT *data, unsigned int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:245,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:246,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - db
    - key
    - data
    - flags
    argTypes:
    - DB*
    - DBT*
    - DBT*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 253
    functionName: certdb_Put
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PZ_Lock
    - PZ_Unlock
    linkageType: ''
    returnType: int
    signature: int certdb_Put(DB *db, DBT *key, DBT *data, unsigned int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:260,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:261,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - db
    - flags
    argTypes:
    - DB*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 268
    functionName: certdb_Sync
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PZ_Lock
    - PZ_Unlock
    linkageType: ''
    returnType: int
    signature: int certdb_Sync(DB *db, unsigned int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:276,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:277,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - db
    - key
    - flags
    argTypes:
    - DB*
    - DBT*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 289
    functionName: certdb_Del
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PZ_Lock
    - PZ_Unlock
    linkageType: ''
    returnType: int
    signature: int certdb_Del(DB *db, DBT *key, unsigned int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:296,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:297,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - db
    - key
    - data
    - flags
    argTypes:
    - DB*
    - DBT*
    - DBT*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 304
    functionName: certdb_Seq
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PZ_Lock
    - PZ_Unlock
    linkageType: ''
    returnType: int
    signature: int certdb_Seq(DB *db, DBT *key, DBT *data, unsigned int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:309,1
    - Dst: SKIP_AFTER_FORK
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:310,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:310,1
    - Dst: SKIP_AFTER_FORK
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:314,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - db
    argTypes:
    - DB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 317
    functionName: certdb_Close
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SKIP_AFTER_FORK
    - PZ_Lock
    - PZ_Unlock
    linkageType: ''
    returnType: void
    signature: void certdb_Close(DB *db)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:323,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - nickname
    - space
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 325
    functionName: pkcs11_freeNickname
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    linkageType: ''
    returnType: void
    signature: void pkcs11_freeNickname(char *nickname, char *space)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strlen
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:333,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:336,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:338,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - nickname
    - space
    - spaceLen
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 342
    functionName: pkcs11_copyNickname
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_Strdup
    - PORT_Memcpy
    - PORT_Strlen
    linkageType: ''
    returnType: char
    signature: 'char *

      pkcs11_copyNickname(char *nickname, char *space, int spaceLen)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:348,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - data
    - space
    argTypes:
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 350
    functionName: pkcs11_freeStaticData
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    linkageType: ''
    returnType: void
    signature: void pkcs11_freeStaticData(unsigned char *data, unsigned char *space)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - len
    - space
    - spaceLen
    argTypes:
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 364
    functionName: pkcs11_allocStaticData
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    linkageType: ''
    returnType: unsigned char
    signature: 'unsigned char *

      pkcs11_allocStaticData(int len, unsigned char *space, int spaceLen)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pkcs11_allocStaticData
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:370,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:372,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - data
    - len
    - space
    - spaceLen
    argTypes:
    - unsigned char*
    - int
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 376
    functionName: pkcs11_copyStaticData
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_Memcpy
    - pkcs11_allocStaticData
    linkageType: ''
    returnType: unsigned char
    signature: "unsigned char *\npkcs11_copyStaticData(unsigned char *data, int len,\n
      \                     unsigned char *space, int spaceLen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pkcs11_freeStaticData
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:394,1
    - Dst: pkcs11_freeNickname
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:395,1
    - Dst: nsslowcert_LockFreeList
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:397,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:399,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:402,1
    - Dst: nsslowcert_UnlockFreeList
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:406,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:412,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:413,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 1
    argNames:
    - entry
    argTypes:
    - certDBEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 381
    functionDepth: 2
    functionLinenumber: 381
    functionLinenumberEnd: 416
    functionName: DestroyDBEntry
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 7
    functionsReached:
    - PORT_FreeArena
    - PORT_Free
    - nsslowcert_UnlockFreeList
    - PORT_Memset
    - pkcs11_freeNickname
    - pkcs11_freeStaticData
    - nsslowcert_LockFreeList
    linkageType: ''
    returnType: void
    signature: void DestroyDBEntry(certDBEntry *entry)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: certdb_Del
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:434,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:436,1
    - Dst: certdb_Sync
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:440,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:442,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - handle
    - type
    - dbkey
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - certDBEntryType
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 421
    functionDepth: 2
    functionLinenumber: 421
    functionLinenumberEnd: 450
    functionName: DeleteDBEntry
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - certdb_Del
    - certdb_Sync
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus DeleteDBEntry(NSSLOWCERTCertDBHandle *handle, certDBEntryType
      type, SECItem *dbkey)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: certdb_Get
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:467,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:469,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:475,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:483,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:487,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:501,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:503,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:507,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 49
    argCount: 5
    argNames:
    - handle
    - entry
    - dbkey
    - dbentry
    - arena
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - certDBEntryCommon*
    - SECItem*
    - SECItem*
    - PLArenaPool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 452
    functionDepth: 2
    functionLinenumber: 452
    functionLinenumberEnd: 520
    functionName: ReadDBEntry
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - certdb_Get
    - PORT_SetError
    - PORT_Memcpy
    - PORT_ArenaAlloc
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus ReadDBEntry(NSSLOWCERTCertDBHandle *handle, certDBEntryCommon
      *entry,\n            SECItem *dbkey, SECItem *dbentry, PLArenaPool *arena)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: certdb_Put
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:548,1
    - Dst: certdb_Sync
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:554,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 4
    argNames:
    - handle
    - entry
    - dbkey
    - dbentry
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - certDBEntryCommon*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 525
    functionDepth: 2
    functionLinenumber: 525
    functionLinenumberEnd: 564
    functionName: WriteDBEntry
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 1
    functionsReached:
    - certdb_Put
    - certdb_Sync
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus WriteDBEntry(NSSLOWCERTCertDBHandle *handle, certDBEntryCommon
      *entry,\n             SECItem *dbkey, SECItem *dbentry)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strlen
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:582,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:590,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:592,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:610,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:613,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 31
    argCount: 3
    argNames:
    - entry
    - arena
    - dbitem
    argTypes:
    - certDBEntryCert*
    - PLArenaPool*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 569
    functionDepth: 1
    functionLinenumber: 569
    functionLinenumberEnd: 620
    functionName: EncodeDBCertEntry
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_ArenaAlloc
    - PORT_SetError
    - PORT_Memcpy
    - PORT_Strlen
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus EncodeDBCertEntry(certDBEntryCert *entry, PLArenaPool *arena,
      SECItem *dbitem)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:632,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:635,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:642,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - certKey
    - arena
    - dbkey
    argTypes:
    - SECItem*
    - PLArenaPool*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 625
    functionDepth: 0
    functionLinenumber: 625
    functionLinenumberEnd: 649
    functionName: EncodeDBCertKey
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_ArenaAlloc
    - PORT_Memcpy
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus EncodeDBCertKey(const SECItem *certKey, PLArenaPool *arena,
      SECItem *dbkey)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:660,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:671,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:675,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 4
    argNames:
    - certKey
    - arena
    - dbkey
    - entryType
    argTypes:
    - SECItem*
    - PLArenaPool*
    - SECItem*
    - certDBEntryType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 651
    functionDepth: 0
    functionLinenumber: 651
    functionLinenumberEnd: 682
    functionName: EncodeDBGenericKey
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_ArenaAlloc
    - PORT_Memcpy
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus EncodeDBGenericKey(const SECItem *certKey, PLArenaPool *arena,
      SECItem *dbkey,\n                   certDBEntryType entryType)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:699,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:710,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:718,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:729,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:738,1
    - Dst: pkcs11_copyStaticData
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:743,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:746,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:754,1
    - Dst: pkcs11_copyStaticData
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:757,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:762,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 77
    argCount: 2
    argNames:
    - entry
    - dbentry
    argTypes:
    - certDBEntryCert*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 684
    functionDepth: 2
    functionLinenumber: 684
    functionLinenumberEnd: 784
    functionName: DecodeDBCertEntry
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - pkcs11_copyStaticData
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus DecodeDBCertEntry(certDBEntryCert *entry, SECItem *dbentry)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:797,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:803,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:818,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:823,1
    - Dst: strlen
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:825,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:828,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:832,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:844,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:847,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 4
    argNames:
    - derCert
    - nickname
    - trust
    - flags
    argTypes:
    - SECItem*
    - char*
    - NSSLOWCERTCertTrust*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 789
    functionDepth: 1
    functionLinenumber: 789
    functionLinenumberEnd: 849
    functionName: NewDBCertEntry
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_Memcpy
    - PORT_NewArena
    - PORT_FreeArena
    - PORT_ArenaAlloc
    - PORT_ArenaZNew
    - PORT_SetError
    - strlen
    linkageType: ''
    returnType: certDBEntryCert
    signature: "certDBEntryCert *\nNewDBCertEntry(SECItem *derCert, char *nickname,\n
      \              NSSLOWCERTCertTrust *trust, int flags)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:865,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:875,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:880,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:883,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:888,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:902,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:907,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:910,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:914,1
    - Dst: PORT_Strcmp
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:916,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:926,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:927,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 54
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 855
    functionDepth: 0
    functionLinenumber: 855
    functionLinenumberEnd: 929
    functionName: DecodeV4DBCertEntry
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_Memcpy
    - PORT_NewArena
    - PORT_FreeArena
    - PORT_ArenaAlloc
    - PORT_SetError
    - PORT_Strcmp
    linkageType: ''
    returnType: certDBEntryCert
    signature: 'certDBEntryCert *

      DecodeV4DBCertEntry(unsigned char *buf, int len)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:943,1
    - Dst: EncodeDBCertEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:948,1
    - Dst: nsslowcert_KeyFromDERCert
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:954,1
    - Dst: EncodeDBCertKey
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:959,1
    - Dst: WriteDBEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:965,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:970,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:975,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 2
    argNames:
    - handle
    - entry
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - certDBEntryCert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 978
      start: 935
    functionDepth: 3
    functionLinenumber: 935
    functionLinenumberEnd: 978
    functionName: WriteDBCertEntry
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_NewArena
    - PORT_FreeArena
    - EncodeDBCertEntry
    - EncodeDBCertKey
    - WriteDBEntry
    - nsslowcert_KeyFromDERCert
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus WriteDBCertEntry(NSSLOWCERTCertDBHandle *handle, certDBEntryCert
      *entry)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EncodeDBCertKey
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:992,1
    - Dst: DeleteDBEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:997,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1002,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1008,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - handle
    - certKey
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 983
    functionDepth: 3
    functionLinenumber: 983
    functionLinenumberEnd: 1011
    functionName: DeleteDBCertEntry
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 1
    functionsReached:
    - PORT_Free
    - DeleteDBEntry
    - EncodeDBCertKey
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus DeleteDBCertEntry(NSSLOWCERTCertDBHandle *handle, SECItem
      *certKey)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nsslowcert_LockFreeList
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1018,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1024,1
    - Dst: nsslowcert_UnlockFreeList
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1025,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1030,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 1013
    functionDepth: 2
    functionLinenumber: 1013
    functionLinenumberEnd: 1031
    functionName: CreateCertEntry
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - nsslowcert_LockFreeList
    - nsslowcert_UnlockFreeList
    - PORT_ZNew
    linkageType: ''
    returnType: certDBEntryCert
    signature: 'certDBEntryCert *

      CreateCertEntry(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nsslowcert_LockFreeList
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1038,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1042,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1044,1
    - Dst: nsslowcert_UnlockFreeList
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1046,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 1033
    functionDepth: 2
    functionLinenumber: 1033
    functionLinenumberEnd: 1047
    functionName: DestroyCertEntryFreeList
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_Free
    - nsslowcert_LockFreeList
    - nsslowcert_UnlockFreeList
    linkageType: ''
    returnType: void
    signature: void DestroyCertEntryFreeList(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CreateCertEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1064,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1066,1
    - Dst: EncodeDBCertKey
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1072,1
    - Dst: ReadDBEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1077,1
    - Dst: DecodeDBCertEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1082,1
    - Dst: pkcs11_freeStaticData
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1087,1
    - Dst: pkcs11_freeStaticData
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1092,1
    - Dst: DestroyDBEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1095,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 2
    argNames:
    - handle
    - certKey
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1052
    functionDepth: 3
    functionLinenumber: 1052
    functionLinenumberEnd: 1099
    functionName: ReadDBCertEntry
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - ReadDBEntry
    - CreateCertEntry
    - DecodeDBCertEntry
    - DestroyDBEntry
    - PORT_SetError
    - EncodeDBCertKey
    - pkcs11_freeStaticData
    linkageType: ''
    returnType: certDBEntryCert
    signature: 'certDBEntryCert *

      ReadDBCertEntry(NSSLOWCERTCertDBHandle *handle, const SECItem *certKey)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strlen
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1111,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1119,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1121,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1133,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1137,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 3
    argNames:
    - entry
    - arena
    - dbitem
    argTypes:
    - certDBEntryRevocation*
    - PLArenaPool*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1145
      start: 1104
    functionDepth: 1
    functionLinenumber: 1104
    functionLinenumberEnd: 1145
    functionName: EncodeDBCrlEntry
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_ArenaAlloc
    - PORT_SetError
    - PORT_Memcpy
    - PORT_Strlen
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus EncodeDBCrlEntry(certDBEntryRevocation *entry, PLArenaPool
      *arena, SECItem *dbitem)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1155,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1166,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1174,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1177,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1180,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1186,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1188,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1191,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 2
    argNames:
    - entry
    - dbentry
    argTypes:
    - certDBEntryRevocation*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1199
      start: 1147
    functionDepth: 0
    functionLinenumber: 1147
    functionLinenumberEnd: 1199
    functionName: DecodeDBCrlEntry
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PORT_Memcpy
    - PORT_ArenaAlloc
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus DecodeDBCrlEntry(certDBEntryRevocation *entry, SECItem *dbentry)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1211,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1217,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1228,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1234,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1235,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1239,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1245,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1253,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1256,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 4
    argNames:
    - derCrl
    - url
    - crlType
    - flags
    argTypes:
    - SECItem*
    - char*
    - certDBEntryType
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1258
      start: 1204
    functionDepth: 1
    functionLinenumber: 1204
    functionLinenumberEnd: 1258
    functionName: NewDBCrlEntry
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_Memcpy
    - PORT_NewArena
    - PORT_FreeArena
    - PORT_ArenaAlloc
    - PORT_Strlen
    - PORT_ArenaZNew
    - PORT_SetError
    linkageType: ''
    returnType: certDBEntryRevocation
    signature: 'certDBEntryRevocation *

      NewDBCrlEntry(SECItem *derCrl, char *url, certDBEntryType crlType, int flags)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1269,1
    - Dst: EncodeDBCrlEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1274,1
    - Dst: EncodeDBGenericKey
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1279,1
    - Dst: WriteDBEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1285,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1290,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1295,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 3
    argNames:
    - handle
    - entry
    - crlKey
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - certDBEntryRevocation*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1298
      start: 1260
    functionDepth: 3
    functionLinenumber: 1260
    functionLinenumberEnd: 1298
    functionName: WriteDBCrlEntry
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - EncodeDBGenericKey
    - PORT_NewArena
    - PORT_FreeArena
    - EncodeDBCrlEntry
    - WriteDBEntry
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus WriteDBCrlEntry(NSSLOWCERTCertDBHandle *handle, certDBEntryRevocation
      *entry,\n                SECItem *crlKey)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1310,1
    - Dst: EncodeDBGenericKey
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1315,1
    - Dst: DeleteDBEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1320,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1325,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1330,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - handle
    - crlKey
    - crlType
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - SECItem*
    - certDBEntryType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1334
      start: 1302
    functionDepth: 3
    functionLinenumber: 1302
    functionLinenumberEnd: 1334
    functionName: DeleteDBCrlEntry
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - EncodeDBGenericKey
    - DeleteDBEntry
    - PORT_FreeArena
    - PORT_NewArena
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus DeleteDBCrlEntry(NSSLOWCERTCertDBHandle *handle, const SECItem
      *crlKey,\n                 certDBEntryType crlType)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1350,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1352,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1356,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1358,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1363,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1365,1
    - Dst: EncodeDBGenericKey
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1371,1
    - Dst: ReadDBEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1376,1
    - Dst: DecodeDBCrlEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1381,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1386,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1391,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1394,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 3
    argNames:
    - handle
    - certKey
    - crlType
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - SECItem*
    - certDBEntryType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1398
      start: 1339
    functionDepth: 3
    functionLinenumber: 1339
    functionLinenumberEnd: 1398
    functionName: ReadDBCrlEntry
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - EncodeDBGenericKey
    - PORT_NewArena
    - PORT_FreeArena
    - PORT_ArenaAlloc
    - ReadDBEntry
    - PORT_SetError
    - DecodeDBCrlEntry
    linkageType: ''
    returnType: certDBEntryRevocation
    signature: "certDBEntryRevocation *\nReadDBCrlEntry(NSSLOWCERTCertDBHandle *handle,
      SECItem *certKey,\n               certDBEntryType crlType)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DestroyDBEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - entry
    argTypes:
    - certDBEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1405
      start: 1400
    functionDepth: 3
    functionLinenumber: 1400
    functionLinenumberEnd: 1405
    functionName: nsslowcert_DestroyDBEntry
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 4
    functionsReached:
    - DestroyDBEntry
    linkageType: ''
    returnType: void
    signature: void nsslowcert_DestroyDBEntry(certDBEntry *entry)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1421,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1430,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - entry
    - arena
    - dbitem
    argTypes:
    - certDBEntryNickname*
    - PLArenaPool*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1437
      start: 1410
    functionDepth: 0
    functionLinenumber: 1410
    functionLinenumberEnd: 1437
    functionName: EncodeDBNicknameEntry
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_ArenaAlloc
    - PORT_Memcpy
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus EncodeDBNicknameEntry(certDBEntryNickname *entry, PLArenaPool
      *arena,\n                      SECItem *dbitem)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strlen
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1448,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1454,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1458,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - nickname
    - arena
    - dbkey
    argTypes:
    - char*
    - PLArenaPool*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1465
      start: 1442
    functionDepth: 1
    functionLinenumber: 1442
    functionLinenumberEnd: 1465
    functionName: EncodeDBNicknameKey
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_ArenaAlloc
    - PORT_Memcpy
    - PORT_Strlen
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus EncodeDBNicknameKey(char *nickname, PLArenaPool *arena,\n
      \                   SECItem *dbkey)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1475,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1485,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1494,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1497,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1500,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1505,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1506,1
    - Dst: PORT_Strcpy
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1508,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 3
    argNames:
    - entry
    - dbentry
    - nickname
    argTypes:
    - certDBEntryNickname*
    - SECItem*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1515
      start: 1467
    functionDepth: 1
    functionLinenumber: 1467
    functionLinenumberEnd: 1515
    functionName: DecodeDBNicknameEntry
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_Memcpy
    - PORT_ArenaAlloc
    - PORT_Strlen
    - PORT_SetError
    - PORT_Strcpy
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus DecodeDBNicknameEntry(certDBEntryNickname *entry, SECItem
      *dbentry,\n                      char *nickname)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1528,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1530,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1534,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1537,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1548,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1550,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1555,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1557,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1565,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 3
    argNames:
    - nickname
    - subjectName
    - flags
    argTypes:
    - char*
    - SECItem*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1569
      start: 1520
    functionDepth: 1
    functionLinenumber: 1520
    functionLinenumberEnd: 1569
    functionName: NewDBNicknameEntry
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_Memcpy
    - PORT_NewArena
    - PORT_FreeArena
    - PORT_ArenaAlloc
    - PORT_Strlen
    - SECITEM_CopyItem
    - PORT_SetError
    linkageType: ''
    returnType: certDBEntryNickname
    signature: 'certDBEntryNickname *

      NewDBNicknameEntry(char *nickname, SECItem *subjectName, unsigned int flags)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1585,1
    - Dst: EncodeDBNicknameKey
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1590,1
    - Dst: DeleteDBEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1595,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1600,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1605,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - handle
    - nickname
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1609
      start: 1574
    functionDepth: 3
    functionLinenumber: 1574
    functionLinenumberEnd: 1609
    functionName: DeleteDBNicknameEntry
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 1
    functionsReached:
    - PORT_FreeArena
    - DeleteDBEntry
    - PORT_NewArena
    - EncodeDBNicknameKey
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus DeleteDBNicknameEntry(NSSLOWCERTCertDBHandle *handle, char
      *nickname)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1624,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1626,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1630,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1632,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1636,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1639,1
    - Dst: EncodeDBNicknameKey
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1645,1
    - Dst: ReadDBEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1650,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1657,1
    - Dst: DecodeDBNicknameEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1661,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1666,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1671,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1674,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 52
    argCount: 2
    argNames:
    - handle
    - nickname
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1678
      start: 1614
    functionDepth: 3
    functionLinenumber: 1614
    functionLinenumberEnd: 1678
    functionName: ReadDBNicknameEntry
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 1
    functionsReached:
    - PORT_NewArena
    - EncodeDBNicknameKey
    - PORT_FreeArena
    - PORT_ArenaAlloc
    - ReadDBEntry
    - PORT_SetError
    - DecodeDBNicknameEntry
    linkageType: ''
    returnType: certDBEntryNickname
    signature: 'certDBEntryNickname *

      ReadDBNicknameEntry(NSSLOWCERTCertDBHandle *handle, char *nickname)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1691,1
    - Dst: EncodeDBNicknameEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1696,1
    - Dst: EncodeDBNicknameKey
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1701,1
    - Dst: WriteDBEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1707,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1712,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1717,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - handle
    - entry
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - certDBEntryNickname*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1720
      start: 1684
    functionDepth: 3
    functionLinenumber: 1684
    functionLinenumberEnd: 1720
    functionName: WriteDBNicknameEntry
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_NewArena
    - EncodeDBNicknameKey
    - PORT_FreeArena
    - EncodeDBNicknameEntry
    - WriteDBEntry
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus WriteDBNicknameEntry(NSSLOWCERTCertDBHandle *handle, certDBEntryNickname
      *entry)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1735,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1737,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1752,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1755,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1758,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1761,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 3
    argNames:
    - entry
    - arena
    - dbitem
    argTypes:
    - certDBEntrySMime*
    - PLArenaPool*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1771
      start: 1722
    functionDepth: 0
    functionLinenumber: 1722
    functionLinenumberEnd: 1771
    functionName: EncodeDBSMimeEntry
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_ArenaAlloc
    - PORT_SetError
    - PORT_Memcpy
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus EncodeDBSMimeEntry(certDBEntrySMime *entry, PLArenaPool
      *arena,\n                   SECItem *dbitem)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strlen
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1782,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1788,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1792,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - emailAddr
    - arena
    - dbkey
    argTypes:
    - char*
    - PLArenaPool*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1799
      start: 1776
    functionDepth: 1
    functionLinenumber: 1776
    functionLinenumberEnd: 1799
    functionName: EncodeDBSMimeKey
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_ArenaAlloc
    - PORT_Memcpy
    - PORT_Strlen
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus EncodeDBSMimeKey(char *emailAddr, PLArenaPool *arena,\n
      \                SECItem *dbkey)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1811,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1825,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1834,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1837,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1840,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1847,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1850,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1853,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1862,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1865,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1868,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1881,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1885,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1886,1
    - Dst: PORT_Strcpy
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1888,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 60
    argCount: 3
    argNames:
    - entry
    - dbentry
    - emailAddr
    argTypes:
    - certDBEntrySMime*
    - SECItem*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1895
      start: 1804
    functionDepth: 1
    functionLinenumber: 1804
    functionLinenumberEnd: 1895
    functionName: DecodeDBSMimeEntry
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_Memcpy
    - PORT_ArenaAlloc
    - PORT_Strlen
    - PORT_SetError
    - PORT_Strcpy
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus DecodeDBSMimeEntry(certDBEntrySMime *entry, SECItem *dbentry,
      char *emailAddr)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1909,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1911,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1915,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1918,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1929,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1931,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1936,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1939,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1946,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1951,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1958,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1963,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1971,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 58
    argCount: 5
    argNames:
    - emailAddr
    - subjectName
    - smimeOptions
    - optionsDate
    - flags
    argTypes:
    - char*
    - SECItem*
    - SECItem*
    - SECItem*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1975
      start: 1900
    functionDepth: 1
    functionLinenumber: 1900
    functionLinenumberEnd: 1975
    functionName: NewDBSMimeEntry
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_Memcpy
    - PORT_NewArena
    - PORT_FreeArena
    - PORT_ArenaAlloc
    - PORT_Strlen
    - SECITEM_CopyItem
    - PORT_SetError
    linkageType: ''
    returnType: certDBEntrySMime
    signature: "certDBEntrySMime *\nNewDBSMimeEntry(char *emailAddr, SECItem *subjectName,
      SECItem *smimeOptions,\n                SECItem *optionsDate, unsigned int flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1987,1
    - Dst: EncodeDBSMimeKey
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1992,1
    - Dst: DeleteDBEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:1997,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2002,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2007,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - handle
    - emailAddr
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2011
      start: 1980
    functionDepth: 3
    functionLinenumber: 1980
    functionLinenumberEnd: 2011
    functionName: DeleteDBSMimeEntry
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 1
    functionsReached:
    - EncodeDBSMimeKey
    - DeleteDBEntry
    - PORT_FreeArena
    - PORT_NewArena
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus DeleteDBSMimeEntry(NSSLOWCERTCertDBHandle *handle, char *emailAddr)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2026,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2028,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2032,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2034,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2038,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2041,1
    - Dst: EncodeDBSMimeKey
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2047,1
    - Dst: ReadDBEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2052,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2059,1
    - Dst: DecodeDBSMimeEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2063,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2068,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2073,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2076,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 52
    argCount: 2
    argNames:
    - handle
    - emailAddr
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2080
      start: 2016
    functionDepth: 3
    functionLinenumber: 2016
    functionLinenumberEnd: 2080
    functionName: nsslowcert_ReadDBSMimeEntry
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 4
    functionsReached:
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - EncodeDBSMimeKey
    - PORT_FreeArena
    - ReadDBEntry
    - PORT_SetError
    - DecodeDBSMimeEntry
    linkageType: ''
    returnType: certDBEntrySMime
    signature: 'certDBEntrySMime *

      nsslowcert_ReadDBSMimeEntry(NSSLOWCERTCertDBHandle *handle, char *emailAddr)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2093,1
    - Dst: EncodeDBSMimeEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2098,1
    - Dst: EncodeDBSMimeKey
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2103,1
    - Dst: WriteDBEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2109,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2114,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2119,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - handle
    - entry
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - certDBEntrySMime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2122
      start: 2086
    functionDepth: 3
    functionLinenumber: 2086
    functionLinenumberEnd: 2122
    functionName: WriteDBSMimeEntry
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - EncodeDBSMimeEntry
    - PORT_NewArena
    - EncodeDBSMimeKey
    - PORT_FreeArena
    - WriteDBEntry
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus WriteDBSMimeEntry(NSSLOWCERTCertDBHandle *handle, certDBEntrySMime
      *entry)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strlen
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2144,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2149,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2161,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2173,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2175,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2190,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2193,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2208,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2213,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2223,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2227,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2232,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 79
    argCount: 3
    argNames:
    - entry
    - arena
    - dbitem
    argTypes:
    - certDBEntrySubject*
    - PLArenaPool*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2238
      start: 2127
    functionDepth: 1
    functionLinenumber: 2127
    functionLinenumberEnd: 2238
    functionName: EncodeDBSubjectEntry
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_Memcpy
    - PORT_ArenaAlloc
    - PORT_Strlen
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus EncodeDBSubjectEntry(certDBEntrySubject *entry, PLArenaPool
      *arena,\n                     SECItem *dbitem)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2250,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2254,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - derSubject
    - arena
    - dbkey
    argTypes:
    - SECItem*
    - PLArenaPool*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2262
      start: 2243
    functionDepth: 0
    functionLinenumber: 2243
    functionLinenumberEnd: 2262
    functionName: EncodeDBSubjectKey
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_ArenaAlloc
    - PORT_Memcpy
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus EncodeDBSubjectKey(SECItem *derSubject, PLArenaPool *arena,\n
      \                  SECItem *dbkey)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2271,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2280,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2287,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2297,1
    - Dst: PORT_ArenaNewArray
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2301,1
    - Dst: PORT_ArenaNewArray
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2302,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2304,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2309,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2311,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2314,1
    - Dst: PORT_ArenaNewArray
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2324,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2326,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2329,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2331,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2334,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2361,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2367,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2369,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2372,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2377,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2379,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2382,1
    - Dst: PORT_ArenaNewArray
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2393,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2395,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2408,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2410,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2413,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2419,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2423,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 137
    argCount: 3
    argNames:
    - entry
    - dbentry
    - derSubject
    argTypes:
    - certDBEntrySubject*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2425
      start: 2264
    functionDepth: 1
    functionLinenumber: 2264
    functionLinenumberEnd: 2425
    functionName: DecodeDBSubjectEntry
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_Memcpy
    - PORT_ArenaAlloc
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - SECITEM_CopyItem
    - PORT_SetError
    - PORT_ArenaUnmark
    - PORT_ArenaNewArray
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus DecodeDBSubjectEntry(certDBEntrySubject *entry, SECItem
      *dbentry,\n                     const SECItem *derSubject)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2440,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2442,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2446,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2449,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2460,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2469,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2470,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2475,1
    - Dst: nsslowcert_FixupEmailAddr
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2482,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2488,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2490,1
    - Dst: PORT_ArenaStrdup
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2493,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2498,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2504,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2505,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2511,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2515,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2523,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 79
    argCount: 6
    argNames:
    - derSubject
    - certKey
    - keyID
    - nickname
    - emailAddr
    - flags
    argTypes:
    - SECItem*
    - SECItem*
    - SECItem*
    - char*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2527
      start: 2430
    functionDepth: 1
    functionLinenumber: 2430
    functionLinenumberEnd: 2527
    functionName: NewDBSubjectEntry
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_Memcpy
    - PORT_NewArena
    - PORT_FreeArena
    - PORT_ArenaAlloc
    - PORT_Free
    - PORT_ArenaStrdup
    - nsslowcert_FixupEmailAddr
    - PORT_Strlen
    - SECITEM_CopyItem
    - PORT_SetError
    linkageType: ''
    returnType: certDBEntrySubject
    signature: "certDBEntrySubject *\nNewDBSubjectEntry(SECItem *derSubject, SECItem
      *certKey,\n                  SECItem *keyID, char *nickname, char *emailAddr,\n
      \                 unsigned int flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2539,1
    - Dst: EncodeDBSubjectKey
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2544,1
    - Dst: DeleteDBEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2549,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2554,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2559,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - handle
    - derSubject
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2563
      start: 2532
    functionDepth: 3
    functionLinenumber: 2532
    functionLinenumberEnd: 2563
    functionName: DeleteDBSubjectEntry
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 1
    functionsReached:
    - PORT_FreeArena
    - EncodeDBSubjectKey
    - DeleteDBEntry
    - PORT_NewArena
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus DeleteDBSubjectEntry(NSSLOWCERTCertDBHandle *handle, SECItem
      *derSubject)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_InitCheapArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2580,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2581,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2583,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2587,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2590,1
    - Dst: EncodeDBSubjectKey
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2596,1
    - Dst: ReadDBEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2601,1
    - Dst: DecodeDBSubjectEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2606,1
    - Dst: PORT_DestroyCheapArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2611,1
    - Dst: PORT_DestroyCheapArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2615,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2617,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 2
    argNames:
    - handle
    - derSubject
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2621
      start: 2568
    functionDepth: 3
    functionLinenumber: 2568
    functionLinenumberEnd: 2621
    functionName: ReadDBSubjectEntry
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 1
    functionsReached:
    - PORT_NewArena
    - PORT_FreeArena
    - PORT_ArenaAlloc
    - ReadDBEntry
    - PORT_SetError
    - PORT_InitCheapArena
    - EncodeDBSubjectKey
    - DecodeDBSubjectEntry
    - PORT_DestroyCheapArena
    linkageType: ''
    returnType: certDBEntrySubject
    signature: 'certDBEntrySubject *

      ReadDBSubjectEntry(NSSLOWCERTCertDBHandle *handle, SECItem *derSubject)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2634,1
    - Dst: EncodeDBSubjectEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2639,1
    - Dst: EncodeDBSubjectKey
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2644,1
    - Dst: WriteDBEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2650,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2655,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2660,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - handle
    - entry
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - certDBEntrySubject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2663
      start: 2627
    functionDepth: 3
    functionLinenumber: 2627
    functionLinenumberEnd: 2663
    functionName: WriteDBSubjectEntry
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_NewArena
    - PORT_FreeArena
    - WriteDBEntry
    - EncodeDBSubjectKey
    - EncodeDBSubjectEntry
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus WriteDBSubjectEntry(NSSLOWCERTCertDBHandle *handle, certDBEntrySubject
      *entry)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: nsslowcert_FixupEmailAddr
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2677,1
    - Dst: ReadDBSubjectEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2685,1
    - Dst: PORT_Strcmp
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2692,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2713,1
    - Dst: PORT_ArenaStrdup
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2723,1
    - Dst: DeleteDBSubjectEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2733,1
    - Dst: WriteDBSubjectEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2736,1
    - Dst: DestroyDBEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2740,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2742,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 63
    argCount: 4
    argNames:
    - dbhandle
    - derSubject
    - emailAddr
    - updateType
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - SECItem*
    - char*
    - nsslowcertUpdateType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2744
      start: 2668
    functionDepth: 4
    functionLinenumber: 2668
    functionLinenumberEnd: 2744
    functionName: nsslowcert_UpdateSubjectEmailAddr
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - ReadDBSubjectEntry
    - PORT_ArenaAlloc
    - PORT_ArenaStrdup
    - PORT_Free
    - nsslowcert_FixupEmailAddr
    - WriteDBSubjectEntry
    - DestroyDBEntry
    - DeleteDBSubjectEntry
    - PORT_Strcmp
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus nsslowcert_UpdateSubjectEmailAddr(NSSLOWCERTCertDBHandle
      *dbhandle,\n                                  SECItem *derSubject, char *emailAddr,
      nsslowcertUpdateType updateType)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ReadDBSubjectEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2761,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2762,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2767,1
    - Dst: PORT_ArenaStrdup
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2772,1
    - Dst: DeleteDBSubjectEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2779,1
    - Dst: WriteDBSubjectEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2782,1
    - Dst: DestroyDBEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2787,1
    - Dst: DestroyDBEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2791,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 3
    argNames:
    - dbhandle
    - cert
    - nickname
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - NSSLOWCERTCertificate*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2793
      start: 2750
    functionDepth: 4
    functionLinenumber: 2750
    functionLinenumberEnd: 2793
    functionName: AddNicknameToSubject
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - ReadDBSubjectEntry
    - PORT_ArenaStrdup
    - WriteDBSubjectEntry
    - DestroyDBEntry
    - DeleteDBSubjectEntry
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus AddNicknameToSubject(NSSLOWCERTCertDBHandle *dbhandle,\n
      \                    NSSLOWCERTCertificate *cert, char *nickname)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2804,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2806,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2810,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2813,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2824,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - flags
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2828
      start: 2798
    functionDepth: 0
    functionLinenumber: 2798
    functionLinenumberEnd: 2828
    functionName: NewDBVersionEntry
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_FreeArena
    - PORT_SetError
    - PORT_NewArena
    - PORT_ArenaAlloc
    linkageType: ''
    returnType: certDBEntryVersion
    signature: 'certDBEntryVersion *

      NewDBVersionEntry(unsigned int flags)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2843,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2845,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2849,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2851,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2855,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2857,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2865,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2869,1
    - Dst: ReadDBEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2872,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2877,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2882,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2885,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 1
    argNames:
    - handle
    argTypes:
    - NSSLOWCERTCertDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2889
      start: 2833
    functionDepth: 3
    functionLinenumber: 2833
    functionLinenumberEnd: 2889
    functionName: ReadDBVersionEntry
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_Memcpy
    - PORT_NewArena
    - PORT_FreeArena
    - PORT_ArenaAlloc
    - ReadDBEntry
    - PORT_SetError
    - PORT_ArenaZNew
    linkageType: ''
    returnType: certDBEntryVersion
    signature: 'certDBEntryVersion *

      ReadDBVersionEntry(NSSLOWCERTCertDBHandle *handle)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2902,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2912,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2914,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2920,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2924,1
    - Dst: WriteDBEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2928,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2933,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2938,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 2
    argNames:
    - handle
    - entry
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - certDBEntryVersion*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2941
      start: 2895
    functionDepth: 3
    functionLinenumber: 2895
    functionLinenumberEnd: 2941
    functionName: WriteDBVersionEntry
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_Memcpy
    - PORT_NewArena
    - PORT_FreeArena
    - PORT_ArenaAlloc
    - PORT_SetError
    - WriteDBEntry
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus WriteDBVersionEntry(NSSLOWCERTCertDBHandle *handle, certDBEntryVersion
      *entry)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ReadDBSubjectEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2953,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2958,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2963,1
    - Dst: DeleteDBSubjectEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2971,1
    - Dst: WriteDBSubjectEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2972,1
    - Dst: DeleteDBSMimeEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2981,1
    - Dst: DeleteDBNicknameEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2985,1
    - Dst: DeleteDBSubjectEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2988,1
    - Dst: DestroyDBEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:2990,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 1
    argNames:
    - cert
    argTypes:
    - NSSLOWCERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2993
      start: 2946
    functionDepth: 4
    functionLinenumber: 2946
    functionLinenumberEnd: 2993
    functionName: RemovePermSubjectNode
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SECITEM_CompareItem
    - DeleteDBNicknameEntry
    - ReadDBSubjectEntry
    - WriteDBSubjectEntry
    - DestroyDBEntry
    - DeleteDBSubjectEntry
    - DeleteDBSMimeEntry
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus RemovePermSubjectNode(NSSLOWCERTCertificate *cert)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3007,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3012,1
    - Dst: PORT_Strcmp
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3012,1
    - Dst: PORT_ArenaStrdup
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3017,1
    - Dst: PORT_ArenaZNewArray
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3024,1
    - Dst: PORT_ArenaZNewArray
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3025,1
    - Dst: nsslowcert_FindCertByKey
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3035,1
    - Dst: nsslowcert_IsNewer
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3042,1
    - Dst: nsslowcert_DestroyCertificate
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3043,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3053,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3058,1
    - Dst: DeleteDBSubjectEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3078,1
    - Dst: WriteDBSubjectEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3079,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 49
    argCount: 3
    argNames:
    - entry
    - cert
    - nickname
    argTypes:
    - certDBEntrySubject*
    - NSSLOWCERTCertificate*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3081
      start: 2998
    functionDepth: 4
    functionLinenumber: 2998
    functionLinenumberEnd: 3081
    functionName: AddPermSubjectNode
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_ArenaZNewArray
    - PORT_ArenaStrdup
    - WriteDBSubjectEntry
    - SECITEM_CopyItem
    - nsslowcert_IsNewer
    - nsslowcert_FindCertByKey
    - nsslowcert_DestroyCertificate
    - DeleteDBSubjectEntry
    - PORT_Strcmp
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus AddPermSubjectNode(certDBEntrySubject *entry, NSSLOWCERTCertificate
      *cert,\n                   char *nickname)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ReadDBSubjectEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3093,1
    - Dst: nsslowcert_FindCertByKey
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3100,1
    - Dst: nsslowcert_DestroyCertificate
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3105,1
    - Dst: DestroyDBEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3111,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - handle
    - derSubject
    - cb
    - cbarg
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - SECItem*
    - NSSLOWCERTCertCallback
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3114
      start: 3083
    functionDepth: 4
    functionLinenumber: 3083
    functionLinenumberEnd: 3114
    functionName: nsslowcert_TraversePermCertsForSubject
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 1
    functionsReached:
    - nsslowcert_FindCertByKey
    - nsslowcert_DestroyCertificate
    - DestroyDBEntry
    - ReadDBSubjectEntry
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus nsslowcert_TraversePermCertsForSubject(NSSLOWCERTCertDBHandle
      *handle,\n                                       SECItem *derSubject,\n                                       NSSLOWCERTCertCallback
      cb, void *cbarg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ReadDBSubjectEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3123,1
    - Dst: DestroyDBEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - handle
    - derSubject
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3134
      start: 3116
    functionDepth: 4
    functionLinenumber: 3116
    functionLinenumberEnd: 3134
    functionName: nsslowcert_NumPermCertsForSubject
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 1
    functionsReached:
    - DestroyDBEntry
    - ReadDBSubjectEntry
    linkageType: ''
    returnType: int
    signature: "int nsslowcert_NumPermCertsForSubject(NSSLOWCERTCertDBHandle *handle,\n
      \                                 SECItem *derSubject)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ReadDBNicknameEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3145,1
    - Dst: nsslowcert_ReadDBSMimeEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3149,1
    - Dst: nsslowcert_TraversePermCertsForSubject
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3156,1
    - Dst: DestroyDBEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3163,1
    - Dst: DestroyDBEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3166,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - handle
    - nickname
    - cb
    - cbarg
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - char*
    - NSSLOWCERTCertCallback
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3170
      start: 3136
    functionDepth: 5
    functionLinenumber: 3136
    functionLinenumberEnd: 3170
    functionName: nsslowcert_TraversePermCertsForNickname
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 1
    functionsReached:
    - nsslowcert_ReadDBSMimeEntry
    - DestroyDBEntry
    - nsslowcert_TraversePermCertsForSubject
    - ReadDBNicknameEntry
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus nsslowcert_TraversePermCertsForNickname(NSSLOWCERTCertDBHandle
      *handle,\n                                        char *nickname, NSSLOWCERTCertCallback
      cb, void *cbarg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ReadDBNicknameEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3179,1
    - Dst: nsslowcert_NumPermCertsForSubject
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3182,1
    - Dst: DestroyDBEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - handle
    - nickname
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3188
      start: 3172
    functionDepth: 5
    functionLinenumber: 3172
    functionLinenumberEnd: 3188
    functionName: nsslowcert_NumPermCertsForNickname
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 1
    functionsReached:
    - nsslowcert_NumPermCertsForSubject
    - DestroyDBEntry
    - ReadDBNicknameEntry
    linkageType: ''
    returnType: int
    signature: "int nsslowcert_NumPermCertsForNickname(NSSLOWCERTCertDBHandle *handle,\n
      \                                  char *nickname)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3201,1
    - Dst: pkcs11_freeNickname
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3206,1
    - Dst: pkcs11_copyNickname
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3208,1
    - Dst: WriteDBCertEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3211,1
    - Dst: pkcs11_freeNickname
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3216,1
    - Dst: pkcs11_copyNickname
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3218,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - dbhandle
    - cert
    - nickname
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - NSSLOWCERTCertificate*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3225
      start: 3193
    functionDepth: 4
    functionLinenumber: 3193
    functionLinenumberEnd: 3225
    functionName: AddNicknameToPermCert
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - pkcs11_freeNickname
    - WriteDBCertEntry
    - pkcs11_copyNickname
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus AddNicknameToPermCert(NSSLOWCERTCertDBHandle *dbhandle,\n
      \                     NSSLOWCERTCertificate *cert, char *nickname)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: nsslowcert_LockDB
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3239,1
    - Dst: ReadDBSubjectEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3241,1
    - Dst: AddNicknameToSubject
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3248,1
    - Dst: AddNicknameToPermCert
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3252,1
    - Dst: NewDBNicknameEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3256,1
    - Dst: WriteDBNicknameEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3261,1
    - Dst: AddNicknameToPermCert
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3267,1
    - Dst: ReadDBNicknameEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3273,1
    - Dst: NewDBNicknameEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3275,1
    - Dst: WriteDBNicknameEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3281,1
    - Dst: DestroyDBEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3291,1
    - Dst: DestroyDBEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3294,1
    - Dst: nsslowcert_UnlockDB
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3296,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 58
    argCount: 3
    argNames:
    - dbhandle
    - cert
    - nickname
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - NSSLOWCERTCertificate*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3298
      start: 3231
    functionDepth: 5
    functionLinenumber: 3231
    functionLinenumberEnd: 3298
    functionName: nsslowcert_AddPermNickname
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 1
    functionsReached:
    - WriteDBNicknameEntry
    - ReadDBSubjectEntry
    - nsslowcert_LockDB
    - DestroyDBEntry
    - nsslowcert_UnlockDB
    - AddNicknameToSubject
    - NewDBNicknameEntry
    - AddNicknameToPermCert
    - ReadDBNicknameEntry
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus nsslowcert_AddPermNickname(NSSLOWCERTCertDBHandle *dbhandle,\n
      \                          NSSLOWCERTCertificate *cert, char *nickname)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: ReadDBSubjectEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3315,1
    - Dst: NewDBCertEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3322,1
    - Dst: NewDBNicknameEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3328,1
    - Dst: WriteDBCertEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3334,1
    - Dst: WriteDBNicknameEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3341,1
    - Dst: AddPermSubjectNode
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3355,1
    - Dst: NewDBSubjectEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3365,1
    - Dst: WriteDBSubjectEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3371,1
    - Dst: DestroyDBEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3380,1
    - Dst: DestroyDBEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3384,1
    - Dst: DeleteDBCertEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3392,1
    - Dst: DeleteDBNicknameEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3395,1
    - Dst: DestroyDBEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3398,1
    - Dst: DestroyDBEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3401,1
    - Dst: DestroyDBEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3404,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 80
    argCount: 4
    argNames:
    - handle
    - cert
    - nickname
    - trust
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - NSSLOWCERTCertificate*
    - char*
    - NSSLOWCERTCertTrust*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3408
      start: 3300
    functionDepth: 5
    functionLinenumber: 3300
    functionLinenumberEnd: 3408
    functionName: AddCertToPermDB
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - WriteDBNicknameEntry
    - DeleteDBNicknameEntry
    - ReadDBSubjectEntry
    - NewDBSubjectEntry
    - NewDBCertEntry
    - WriteDBSubjectEntry
    - DestroyDBEntry
    - DeleteDBCertEntry
    - NewDBNicknameEntry
    - WriteDBCertEntry
    - AddPermSubjectNode
    linkageType: ''
    returnType: certDBEntryCert
    signature: "certDBEntryCert *\nAddCertToPermDB(NSSLOWCERTCertDBHandle *handle,
      NSSLOWCERTCertificate *cert,\n                char *nickname, NSSLOWCERTCertTrust
      *trust)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UpdateV7DB
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - updatedb
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - DB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3425
      start: 3421
    functionDepth: 1
    functionLinenumber: 3421
    functionLinenumberEnd: 3425
    functionName: UpdateV8DB
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - UpdateV7DB
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus UpdateV8DB(NSSLOWCERTCertDBHandle *handle, DB *updatedb)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: DecodeDBCertEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3482,1
    - Dst: nsslowcert_DecodeDERCertificate
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3487,1
    - Dst: nsslowcert_UpdatePermCert
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3490,1
    - Dst: nsslowcert_DestroyCertificate
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3492,1
    - Dst: pkcs11_freeStaticData
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3495,1
    - Dst: pkcs11_freeNickname
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3497,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3507,1
    - Dst: DecodeDBCrlEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3511,1
    - Dst: nsslowcert_UpdateCrl
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3515,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3518,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3551,1
    - Dst: DecodeDBSMimeEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3553,1
    - Dst: nsslowcert_UpdateSMimeProfile
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3555,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3559,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 89
    argCount: 2
    argNames:
    - handle
    - updatedb
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - DB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3569
      start: 3433
    functionDepth: 3
    functionLinenumber: 3433
    functionLinenumberEnd: 3569
    functionName: UpdateV7DB
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 1
    functionsReached:
    - nsslowcert_DecodeDERCertificate
    - PORT_NewArena
    - nsslowcert_UpdatePermCert
    - PORT_FreeArena
    - DecodeDBCertEntry
    - nsslowcert_DestroyCertificate
    - nsslowcert_UpdateSMimeProfile
    - DecodeDBSMimeEntry
    - pkcs11_freeNickname
    - DecodeDBCrlEntry
    - pkcs11_freeStaticData
    - nsslowcert_UpdateCrl
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus UpdateV7DB(NSSLOWCERTCertDBHandle *handle, DB *updatedb)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3606,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3609,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3611,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3614,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3624,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3627,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3641,1
    - Dst: certdb_Put
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3655,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3657,1
    - Dst: certdb_Sync
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3667,1
    - Dst: ReadDBNicknameEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3687,1
    - Dst: ReadDBSubjectEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3693,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3700,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3703,1
    - Dst: WriteDBSubjectEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3705,1
    - Dst: nsslowcert_ReadDBSMimeEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3711,1
    - Dst: ReadDBSubjectEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3717,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3724,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3728,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3731,1
    - Dst: WriteDBSubjectEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3734,1
    - Dst: DestroyDBEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3741,1
    - Dst: DestroyDBEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3745,1
    - Dst: DestroyDBEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3749,1
    - Dst: certdb_Sync
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3756,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 125
    argCount: 2
    argNames:
    - handle
    - updatedb
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - DB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3763
      start: 3575
    functionDepth: 4
    functionLinenumber: 3575
    functionLinenumberEnd: 3763
    functionName: UpdateV6DB
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_Memcpy
    - ReadDBSubjectEntry
    - PORT_Free
    - PORT_ArenaAlloc
    - WriteDBSubjectEntry
    - certdb_Sync
    - DestroyDBEntry
    - nsslowcert_ReadDBSMimeEntry
    - PORT_Memset
    - certdb_Put
    - ReadDBNicknameEntry
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus UpdateV6DB(NSSLOWCERTCertDBHandle *handle, DB *updatedb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strcmp
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3781,1
    - Dst: AddCertToPermDB
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3785,1
    - Dst: DestroyDBEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3788,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - cert
    - k
    - pdata
    argTypes:
    - NSSLOWCERTCertificate*
    - SECItem*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3792
      start: 3765
    functionDepth: 6
    functionLinenumber: 3765
    functionLinenumberEnd: 3792
    functionName: updateV5Callback
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - AddCertToPermDB
    - PORT_Strcmp
    - DestroyDBEntry
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus updateV5Callback(NSSLOWCERTCertificate *cert, SECItem *k,
      void *pdata)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PZ_NewMonitor
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3800,1
    - Dst: nsslowcert_TraversePermCerts
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3804,1
    - Dst: PZ_DestroyMonitor
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3807,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - handle
    - updatedb
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - DB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3811
      start: 3794
    functionDepth: 1
    functionLinenumber: 3794
    functionLinenumberEnd: 3811
    functionName: UpdateV5DB
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PZ_NewMonitor
    - PZ_DestroyMonitor
    - nsslowcert_TraversePermCerts
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus UpdateV5DB(NSSLOWCERTCertDBHandle *handle, DB *updatedb)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - db
    argTypes:
    - DB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3832
      start: 3813
    functionDepth: 0
    functionLinenumber: 3813
    functionLinenumberEnd: 3832
    functionName: isV4DB
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool isV4DB(DB *db)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DecodeV4DBCertEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3853,1
    - Dst: nsslowcert_DecodeDERCertificate
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3856,1
    - Dst: AddCertToPermDB
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3861,1
    - Dst: nsslowcert_DestroyCertificate
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3864,1
    - Dst: DestroyDBEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3866,1
    - Dst: DestroyDBEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3869,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - handle
    - updatedb
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - DB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3876
      start: 3834
    functionDepth: 6
    functionLinenumber: 3834
    functionLinenumberEnd: 3876
    functionName: UpdateV4DB
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - nsslowcert_DecodeDERCertificate
    - DestroyDBEntry
    - DecodeV4DBCertEntry
    - AddCertToPermDB
    - nsslowcert_DestroyCertificate
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus UpdateV4DB(NSSLOWCERTCertDBHandle *handle, DB *updatedb)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3892,1
    - Dst: nsslowcert_KeyFromDERCert
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3898,1
    - Dst: EncodeDBCertKey
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3903,1
    - Dst: certdb_Get
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3911,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3916,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3921,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 2
    argNames:
    - derCert
    - handle
    argTypes:
    - SECItem*
    - NSSLOWCERTCertDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3925
      start: 3881
    functionDepth: 2
    functionLinenumber: 3881
    functionLinenumberEnd: 3925
    functionName: nsslowcert_CertDBKeyConflict
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_NewArena
    - PORT_FreeArena
    - EncodeDBCertKey
    - certdb_Get
    - nsslowcert_KeyFromDERCert
    linkageType: ''
    returnType: PRBool
    signature: PRBool nsslowcert_CertDBKeyConflict(SECItem *derCert, NSSLOWCERTCertDBHandle
      *handle)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ReadDBNicknameEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3943,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3951,1
    - Dst: DestroyDBEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3956,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - nickname
    - derSubject
    - handle
    argTypes:
    - char*
    - SECItem*
    - NSSLOWCERTCertDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3958
      start: 3932
    functionDepth: 4
    functionLinenumber: 3932
    functionLinenumberEnd: 3958
    functionName: nsslowcert_CertNicknameConflict
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - SECITEM_CompareItem
    - DestroyDBEntry
    - ReadDBNicknameEntry
    linkageType: ''
    returnType: PRBool
    signature: "PRBool nsslowcert_CertNicknameConflict(char *nickname, SECItem *derSubject,\n
      \                               NSSLOWCERTCertDBHandle *handle)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dbopen
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3981,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3982,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - namecb
    - cbarg
    - version
    argTypes:
    - NSSLOWCERTDBNameFunc
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3985
      start: 3973
    functionDepth: 2
    functionLinenumber: 3973
    functionLinenumberEnd: 3985
    functionName: nsslowcert_openolddb
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - dbopen
    linkageType: ''
    returnType: DB
    signature: 'DB *

      nsslowcert_openolddb(NSSLOWCERTDBNameFunc namecb, void *cbarg, int version)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: rdbopen
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3997,1
    - Dst: dbsopen
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:3999,1
    - Dst: NewDBVersionEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4008,1
    - Dst: WriteDBVersionEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4014,1
    - Dst: DestroyDBEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4016,1
    - Dst: dbsopen
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4025,1
    - Dst: UpdateV8DB
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4026,1
    - Dst: nsslowcert_openolddb
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4027,1
    - Dst: UpdateV7DB
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4028,1
    - Dst: nsslowcert_openolddb
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4029,1
    - Dst: UpdateV6DB
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4030,1
    - Dst: nsslowcert_openolddb
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4031,1
    - Dst: UpdateV5DB
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4032,1
    - Dst: nsslowcert_openolddb
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4033,1
    - Dst: isV4DB
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4035,1
    - Dst: UpdateV4DB
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4036,1
    - Dst: UpdateV5DB
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4038,1
    - Dst: db_InitComplete
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4043,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 6
    argNames:
    - appName
    - prefix
    - certdbname
    - handle
    - namecb
    - cbarg
    argTypes:
    - char*
    - char*
    - char*
    - NSSLOWCERTCertDBHandle*
    - NSSLOWCERTDBNameFunc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4045
      start: 3987
    functionDepth: 7
    functionLinenumber: 3987
    functionLinenumberEnd: 4045
    functionName: openNewCertDB
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - UpdateV8DB
    - isV4DB
    - UpdateV7DB
    - dbsopen
    - rdbopen
    - UpdateV6DB
    - DestroyDBEntry
    - UpdateV5DB
    - nsslowcert_openolddb
    - WriteDBVersionEntry
    - db_InitComplete
    - NewDBVersionEntry
    - UpdateV4DB
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus openNewCertDB(const char *appName, const char *prefix, const
      char *certdbname,\n              NSSLOWCERTCertDBHandle *handle, NSSLOWCERTDBNameFunc
      namecb, void *cbarg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ReadDBVersionEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4053,1
    - Dst: DestroyDBEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4058,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - handle
    argTypes:
    - NSSLOWCERTCertDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4060
      start: 4047
    functionDepth: 4
    functionLinenumber: 4047
    functionLinenumberEnd: 4060
    functionName: nsslowcert_GetVersionNumber
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - DestroyDBEntry
    - ReadDBVersionEntry
    linkageType: ''
    returnType: int
    signature: int nsslowcert_GetVersionNumber(NSSLOWCERTCertDBHandle *handle)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: rdbopen
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4087,1
    - Dst: dbsopen
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4089,1
    - Dst: nsslowcert_GetVersionNumber
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4094,1
    - Dst: nsslowcert_openolddb
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4102,1
    - Dst: nsslowcert_GetVersionNumber
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4106,1
    - Dst: openNewCertDB
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4111,1
    - Dst: rdbopen
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4115,1
    - Dst: nsslowcert_GetVersionNumber
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4121,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4131,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4137,1
    - Dst: certdb_Close
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4140,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4144,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 58
    argCount: 6
    argNames:
    - handle
    - readOnly
    - appName
    - prefix
    - namecb
    - cbarg
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - PRBool
    - char*
    - char*
    - NSSLOWCERTDBNameFunc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4147
      start: 4066
    functionDepth: 8
    functionLinenumber: 4066
    functionLinenumberEnd: 4147
    functionName: nsslowcert_OpenPermCertDB
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - openNewCertDB
    - certdb_Close
    - nsslowcert_GetVersionNumber
    - dbsopen
    - rdbopen
    - PORT_Free
    - PORT_SetError
    - nsslowcert_openolddb
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus nsslowcert_OpenPermCertDB(NSSLOWCERTCertDBHandle *handle,
      PRBool readOnly,\n                          const char *appName, const char
      *prefix,\n                          NSSLOWCERTDBNameFunc namecb, void *cbarg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DeleteDBCertEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4160,1
    - Dst: RemovePermSubjectNode
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - cert
    argTypes:
    - NSSLOWCERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4168
      start: 4152
    functionDepth: 5
    functionLinenumber: 4152
    functionLinenumberEnd: 4168
    functionName: DeletePermCert
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - RemovePermSubjectNode
    - DeleteDBCertEntry
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus DeletePermCert(NSSLOWCERTCertificate *cert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nsslowcert_LockDB
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4178,1
    - Dst: DeletePermCert
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4181,1
    - Dst: DestroyDBEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4184,1
    - Dst: nsslowcert_UnlockDB
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - cert
    argTypes:
    - NSSLOWCERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4190
      start: 4173
    functionDepth: 6
    functionLinenumber: 4173
    functionLinenumberEnd: 4190
    functionName: nsslowcert_DeletePermCertificate
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 1
    functionsReached:
    - DestroyDBEntry
    - nsslowcert_LockDB
    - DeletePermCert
    - nsslowcert_UnlockDB
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus nsslowcert_DeletePermCertificate(NSSLOWCERTCertificate *cert)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: certdb_Seq
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4212,1
    - Dst: certdb_Seq
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4237,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - handle
    - type
    - udata
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - certDBEntryType
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4242
      start: 4196
    functionDepth: 2
    functionLinenumber: 4196
    functionLinenumberEnd: 4242
    functionName: nsslowcert_TraverseDBEntries
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 3
    functionsReached:
    - certdb_Seq
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus nsslowcert_TraverseDBEntries(NSSLOWCERTCertDBHandle *handle,\n
      \                            certDBEntryType type,\n                             SECStatus
      (*callback)(SECItem *data, SECItem *key,\n                                                   certDBEntryType
      type, void *pdata),\n                             void *udata)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nsslowcert_DecodeDERCertificate
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4254,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - handle
    - entry
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - certDBEntryCert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4268
      start: 4249
    functionDepth: 1
    functionLinenumber: 4249
    functionLinenumberEnd: 4268
    functionName: DecodeACert
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - nsslowcert_DecodeDERCertificate
    linkageType: ''
    returnType: NSSLOWCERTCertificate
    signature: 'NSSLOWCERTCertificate *

      DecodeACert(NSSLOWCERTCertDBHandle *handle, certDBEntryCert *entry)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nsslowcert_LockFreeList
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4275,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4282,1
    - Dst: nsslowcert_UnlockFreeList
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4283,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4288,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4289
      start: 4270
    functionDepth: 2
    functionLinenumber: 4270
    functionLinenumberEnd: 4289
    functionName: CreateTrust
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - nsslowcert_LockFreeList
    - nsslowcert_UnlockFreeList
    - PORT_ZNew
    linkageType: ''
    returnType: NSSLOWCERTTrust
    signature: 'NSSLOWCERTTrust *

      CreateTrust(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nsslowcert_LockFreeList
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4296,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4300,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4302,1
    - Dst: nsslowcert_UnlockFreeList
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4304,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4305
      start: 4291
    functionDepth: 2
    functionLinenumber: 4291
    functionLinenumberEnd: 4305
    functionName: DestroyTrustFreeList
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_Free
    - nsslowcert_LockFreeList
    - nsslowcert_UnlockFreeList
    linkageType: ''
    returnType: void
    signature: void DestroyTrustFreeList(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CreateTrust
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4311,1
    - Dst: pkcs11_copyStaticData
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4317,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4320,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - handle
    - entry
    - dbKey
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - certDBEntryCert*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4329
      start: 4307
    functionDepth: 3
    functionLinenumber: 4307
    functionLinenumberEnd: 4329
    functionName: DecodeTrustEntry
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - pkcs11_copyStaticData
    - CreateTrust
    linkageType: ''
    returnType: NSSLOWCERTTrust
    signature: "NSSLOWCERTTrust *\nDecodeTrustEntry(NSSLOWCERTCertDBHandle *handle,
      certDBEntryCert *entry,\n                 const SECItem *dbKey)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4350,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4355,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4357,1
    - Dst: DecodeDBCertEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4369,1
    - Dst: DecodeACert
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4376,1
    - Dst: nsslowcert_DestroyCertificateNoLocking
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4381,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4387,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 4
    argNames:
    - dbdata
    - dbkey
    - type
    - data
    argTypes:
    - SECItem*
    - SECItem*
    - certDBEntryType
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4390
      start: 4340
    functionDepth: 3
    functionLinenumber: 4340
    functionLinenumberEnd: 4390
    functionName: certcallback
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - DecodeACert
    - PORT_NewArena
    - PORT_FreeArena
    - PORT_ArenaAlloc
    - DecodeDBCertEntry
    - PORT_SetError
    - nsslowcert_DestroyCertificateNoLocking
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus certcallback(SECItem *dbdata, SECItem *dbkey, certDBEntryType
      type, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nsslowcert_TraverseDBEntries
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - handle
    - udata
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4413
      start: 4396
    functionDepth: 3
    functionLinenumber: 4396
    functionLinenumberEnd: 4413
    functionName: TraversePermCertsNoLocking
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - nsslowcert_TraverseDBEntries
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus TraversePermCertsNoLocking(NSSLOWCERTCertDBHandle *handle,\n
      \                          SECStatus (*certfunc)(NSSLOWCERTCertificate *cert,\n
      \                                                SECItem *k,\n                                                 void
      *pdata),\n                           void *udata)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nsslowcert_LockDB
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4427,1
    - Dst: TraversePermCertsNoLocking
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4428,1
    - Dst: nsslowcert_UnlockDB
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - handle
    - udata
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4432
      start: 4419
    functionDepth: 4
    functionLinenumber: 4419
    functionLinenumberEnd: 4432
    functionName: nsslowcert_TraversePermCerts
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 2
    functionsReached:
    - TraversePermCertsNoLocking
    - nsslowcert_LockDB
    - nsslowcert_UnlockDB
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus nsslowcert_TraversePermCerts(NSSLOWCERTCertDBHandle *handle,\n
      \                            SECStatus (*certfunc)(NSSLOWCERTCertificate *cert,
      SECItem *k,\n                                                   void *pdata),\n
      \                            void *udata)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: certdb_Close
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4442,1
    - Dst: PZ_DestroyMonitor
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4446,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4449,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - handle
    argTypes:
    - NSSLOWCERTCertDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4452
      start: 4437
    functionDepth: 2
    functionLinenumber: 4437
    functionLinenumberEnd: 4452
    functionName: nsslowcert_ClosePermCertDB
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 1
    functionsReached:
    - certdb_Close
    - PORT_Free
    - PZ_DestroyMonitor
    linkageType: ''
    returnType: void
    signature: void nsslowcert_ClosePermCertDB(NSSLOWCERTCertDBHandle *handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nsslowcert_LockCertTrust
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4462,1
    - Dst: nsslowcert_UnlockCertTrust
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4471,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - cert
    - trust
    argTypes:
    - NSSLOWCERTCertificate*
    - NSSLOWCERTCertTrust*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4473
      start: 4457
    functionDepth: 2
    functionLinenumber: 4457
    functionLinenumberEnd: 4473
    functionName: nsslowcert_GetCertTrust
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - nsslowcert_UnlockCertTrust
    - nsslowcert_LockCertTrust
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus nsslowcert_GetCertTrust(NSSLOWCERTCertificate *cert, NSSLOWCERTCertTrust
      *trust)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nsslowcert_LockDB
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4487,1
    - Dst: nsslowcert_LockCertTrust
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4488,1
    - Dst: WriteDBCertEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4504,1
    - Dst: nsslowcert_UnlockCertTrust
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4513,1
    - Dst: nsslowcert_UnlockDB
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4514,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 3
    argNames:
    - handle
    - cert
    - trust
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - NSSLOWCERTCertificate*
    - NSSLOWCERTCertTrust*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4516
      start: 4479
    functionDepth: 4
    functionLinenumber: 4479
    functionLinenumberEnd: 4516
    functionName: nsslowcert_ChangeCertTrust
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 5
    functionsReached:
    - nsslowcert_LockCertTrust
    - nsslowcert_LockDB
    - nsslowcert_UnlockCertTrust
    - WriteDBCertEntry
    - nsslowcert_UnlockDB
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus nsslowcert_ChangeCertTrust(NSSLOWCERTCertDBHandle *handle,\n
      \                          NSSLOWCERTCertificate *cert, NSSLOWCERTCertTrust
      *trust)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4527,1
    - Dst: nsslowcert_CertNicknameConflict
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4530,1
    - Dst: AddCertToPermDB
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4540,1
    - Dst: pkcs11_freeNickname
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4547,1
    - Dst: pkcs11_copyNickname
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4549,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 4
    argNames:
    - dbhandle
    - cert
    - nickname
    - trust
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - NSSLOWCERTCertificate*
    - char*
    - NSSLOWCERTCertTrust*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4558
      start: 4518
    functionDepth: 6
    functionLinenumber: 4518
    functionLinenumberEnd: 4558
    functionName: nsslowcert_UpdatePermCert
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - pkcs11_copyNickname
    - nsslowcert_CertNicknameConflict
    - AddCertToPermDB
    - pkcs11_freeNickname
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus nsslowcert_UpdatePermCert(NSSLOWCERTCertDBHandle *dbhandle,\n
      \                         NSSLOWCERTCertificate *cert, char *nickname, NSSLOWCERTCertTrust
      *trust)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nsslowcert_LockDB
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4566,1
    - Dst: nsslowcert_UpdatePermCert
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4568,1
    - Dst: nsslowcert_UnlockDB
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - dbhandle
    - cert
    - nickname
    - trust
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - NSSLOWCERTCertificate*
    - char*
    - NSSLOWCERTCertTrust*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4572
      start: 4560
    functionDepth: 7
    functionLinenumber: 4560
    functionLinenumberEnd: 4572
    functionName: nsslowcert_AddPermCert
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 1
    functionsReached:
    - nsslowcert_LockDB
    - nsslowcert_UpdatePermCert
    - nsslowcert_UnlockDB
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus nsslowcert_AddPermCert(NSSLOWCERTCertDBHandle *dbhandle,\n
      \                      NSSLOWCERTCertificate *cert, char *nickname, NSSLOWCERTCertTrust
      *trust)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: certdb_InitDBLock
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4585,1
    - Dst: PZ_NewMonitor
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4587,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4588,1
    - Dst: nsslowcert_OpenPermCertDB
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4591,1
    - Dst: PZ_DestroyMonitor
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4601,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4604,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 7
    argNames:
    - handle
    - readOnly
    - appName
    - prefix
    - namecb
    - cbarg
    - openVolatile
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - PRBool
    - char*
    - char*
    - NSSLOWCERTDBNameFunc
    - void*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4606
      start: 4578
    functionDepth: 9
    functionLinenumber: 4578
    functionLinenumberEnd: 4606
    functionName: nsslowcert_OpenCertDB
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - certdb_InitDBLock
    - PORT_SetError
    - PZ_DestroyMonitor
    - nsslowcert_OpenPermCertDB
    - PZ_NewMonitor
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus nsslowcert_OpenCertDB(NSSLOWCERTCertDBHandle *handle, PRBool
      readOnly,\n                      const char *appName, const char *prefix,\n
      \                     NSSLOWCERTDBNameFunc namecb, void *cbarg, PRBool openVolatile)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - handle
    argTypes:
    - NSSLOWCERTCertDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4614
      start: 4608
    functionDepth: 0
    functionLinenumber: 4608
    functionLinenumberEnd: 4614
    functionName: nsslowcert_needDBVerify
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool nsslowcert_needDBVerify(NSSLOWCERTCertDBHandle *handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - value
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4620
      start: 4616
    functionDepth: 0
    functionLinenumber: 4616
    functionLinenumberEnd: 4620
    functionName: nsslowcert_setDBVerify
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void nsslowcert_setDBVerify(NSSLOWCERTCertDBHandle *handle, PRBool
      value)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: nsslowcert_LockDB
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4634,1
    - Dst: ReadDBCertEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4638,1
    - Dst: DecodeACert
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4645,1
    - Dst: DestroyDBEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4650,1
    - Dst: nsslowcert_UnlockDB
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4655,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - handle
    - certKey
    - lockdb
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - SECItem*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4659
      start: 4625
    functionDepth: 4
    functionLinenumber: 4625
    functionLinenumberEnd: 4659
    functionName: FindCertByKey
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 5
    functionsReached:
    - DecodeACert
    - nsslowcert_LockDB
    - DestroyDBEntry
    - ReadDBCertEntry
    - nsslowcert_UnlockDB
    linkageType: ''
    returnType: NSSLOWCERTCertificate
    signature: 'NSSLOWCERTCertificate *

      FindCertByKey(NSSLOWCERTCertDBHandle *handle, const SECItem *certKey, PRBool
      lockdb)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: nsslowcert_LockDB
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4673,1
    - Dst: ReadDBCertEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4677,1
    - Dst: nsslowcert_hasTrust
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4683,1
    - Dst: DecodeTrustEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4688,1
    - Dst: DestroyDBEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4693,1
    - Dst: nsslowcert_UnlockDB
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4698,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - handle
    - certKey
    - lockdb
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - SECItem*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4702
      start: 4664
    functionDepth: 4
    functionLinenumber: 4664
    functionLinenumberEnd: 4702
    functionName: FindTrustByKey
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 1
    functionsReached:
    - nsslowcert_hasTrust
    - DecodeTrustEntry
    - nsslowcert_LockDB
    - DestroyDBEntry
    - ReadDBCertEntry
    - nsslowcert_UnlockDB
    linkageType: ''
    returnType: NSSLOWCERTTrust
    signature: 'NSSLOWCERTTrust *

      FindTrustByKey(NSSLOWCERTCertDBHandle *handle, const SECItem *certKey, PRBool
      lockdb)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindCertByKey
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4710,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - certKey
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4711
      start: 4707
    functionDepth: 5
    functionLinenumber: 4707
    functionLinenumberEnd: 4711
    functionName: nsslowcert_FindCertByKey
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 4
    functionsReached:
    - FindCertByKey
    linkageType: ''
    returnType: NSSLOWCERTCertificate
    signature: 'NSSLOWCERTCertificate *

      nsslowcert_FindCertByKey(NSSLOWCERTCertDBHandle *handle, const SECItem *certKey)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FindTrustByKey
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4719,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - certKey
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4720
      start: 4716
    functionDepth: 5
    functionLinenumber: 4716
    functionLinenumberEnd: 4720
    functionName: nsslowcert_FindTrustByKey
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 1
    functionsReached:
    - FindTrustByKey
    linkageType: ''
    returnType: NSSLOWCERTTrust
    signature: 'NSSLOWCERTTrust *

      nsslowcert_FindTrustByKey(NSSLOWCERTCertDBHandle *handle, const SECItem *certKey)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4769,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4778,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4781,1
    - Dst: nsslowcert_FindCertByKey
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4783,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4785,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4791,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4794,1
    - Dst: nsslowcert_FindCertByKey
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4797,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4799,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 2
    argNames:
    - handle
    - issuerAndSN
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - NSSLOWCERTIssuerAndSN*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4802
      start: 4726
    functionDepth: 6
    functionLinenumber: 4726
    functionLinenumberEnd: 4802
    functionName: nsslowcert_FindCertByIssuerAndSN
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 2
    functionsReached:
    - PORT_Alloc
    - PORT_Free
    - nsslowcert_FindCertByKey
    - PORT_Memcpy
    linkageType: ''
    returnType: NSSLOWCERTCertificate
    signature: 'NSSLOWCERTCertificate *

      nsslowcert_FindCertByIssuerAndSN(NSSLOWCERTCertDBHandle *handle, NSSLOWCERTIssuerAndSN
      *issuerAndSN)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4857,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4868,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4871,1
    - Dst: nsslowcert_FindTrustByKey
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4873,1
    - Dst: pkcs11_freeStaticData
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4875,1
    - Dst: pkcs11_freeStaticData
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4880,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4886,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4889,1
    - Dst: nsslowcert_FindTrustByKey
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4892,1
    - Dst: pkcs11_freeStaticData
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4894,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 46
    argCount: 2
    argNames:
    - handle
    - issuerAndSN
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - NSSLOWCERTIssuerAndSN*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4897
      start: 4808
    functionDepth: 6
    functionLinenumber: 4808
    functionLinenumberEnd: 4897
    functionName: nsslowcert_FindTrustByIssuerAndSN
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 1
    functionsReached:
    - PORT_Alloc
    - PORT_Memcpy
    - pkcs11_freeStaticData
    - nsslowcert_FindTrustByKey
    linkageType: ''
    returnType: NSSLOWCERTTrust
    signature: "NSSLOWCERTTrust *\nnsslowcert_FindTrustByIssuerAndSN(NSSLOWCERTCertDBHandle
      *handle,\n                                  NSSLOWCERTIssuerAndSN *issuerAndSN)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4911,1
    - Dst: nsslowcert_KeyFromDERCert
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4917,1
    - Dst: nsslowcert_FindCertByKey
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4923,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4926,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - handle
    - derCert
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4928
      start: 4902
    functionDepth: 6
    functionLinenumber: 4902
    functionLinenumberEnd: 4928
    functionName: nsslowcert_FindCertByDERCert
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 2
    functionsReached:
    - PORT_FreeArena
    - nsslowcert_FindCertByKey
    - nsslowcert_KeyFromDERCert
    - PORT_NewArena
    linkageType: ''
    returnType: NSSLOWCERTCertificate
    signature: 'NSSLOWCERTCertificate *

      nsslowcert_FindCertByDERCert(NSSLOWCERTCertDBHandle *handle, SECItem *derCert)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: nsslowcert_LockDB
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4945,1
    - Dst: nsslowcert_LockCertRefCount
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4948,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4949,1
    - Dst: nsslowcert_UnlockCertRefCount
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4951,1
    - Dst: DestroyDBEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4957,1
    - Dst: pkcs11_freeNickname
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4960,1
    - Dst: pkcs11_freeNickname
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4961,1
    - Dst: pkcs11_freeStaticData
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4962,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4968,1
    - Dst: nsslowcert_LockFreeList
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4971,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4973,1
    - Dst: nsslowcert_UnlockFreeList
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4979,1
    - Dst: nsslowcert_UnlockDB
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4983,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 2
    argNames:
    - cert
    - lockdb
    argTypes:
    - NSSLOWCERTCertificate*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4988
      start: 4930
    functionDepth: 3
    functionLinenumber: 4930
    functionLinenumberEnd: 4988
    functionName: DestroyCertificate
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 177
    functionsReached:
    - PORT_Assert
    - PORT_Free
    - nsslowcert_LockDB
    - DestroyDBEntry
    - nsslowcert_UnlockFreeList
    - PORT_Memset
    - nsslowcert_LockCertRefCount
    - nsslowcert_UnlockCertRefCount
    - pkcs11_freeNickname
    - pkcs11_freeStaticData
    - nsslowcert_LockFreeList
    - nsslowcert_UnlockDB
    linkageType: ''
    returnType: void
    signature: void DestroyCertificate(NSSLOWCERTCertificate *cert, PRBool lockdb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nsslowcert_LockFreeList
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:4994,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5000,1
    - Dst: nsslowcert_UnlockFreeList
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5001,1
    - Dst: PORT_ZNew
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5005,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5006
      start: 4990
    functionDepth: 2
    functionLinenumber: 4990
    functionLinenumberEnd: 5006
    functionName: nsslowcert_CreateCert
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - nsslowcert_LockFreeList
    - nsslowcert_UnlockFreeList
    - PORT_ZNew
    linkageType: ''
    returnType: NSSLOWCERTCertificate
    signature: 'NSSLOWCERTCertificate *

      nsslowcert_CreateCert(void)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nsslowcert_LockFreeList
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5013,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5017,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5019,1
    - Dst: nsslowcert_UnlockFreeList
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5021,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5022
      start: 5008
    functionDepth: 2
    functionLinenumber: 5008
    functionLinenumberEnd: 5022
    functionName: DestroyCertFreeList
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_Free
    - nsslowcert_LockFreeList
    - nsslowcert_UnlockFreeList
    linkageType: ''
    returnType: void
    signature: void DestroyCertFreeList(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DestroyDBEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5030,1
    - Dst: pkcs11_freeStaticData
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5032,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5033,1
    - Dst: nsslowcert_LockFreeList
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5035,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5037,1
    - Dst: nsslowcert_UnlockFreeList
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5043,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - trust
    argTypes:
    - NSSLOWCERTTrust*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5046
      start: 5024
    functionDepth: 3
    functionLinenumber: 5024
    functionLinenumberEnd: 5046
    functionName: nsslowcert_DestroyTrust
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 1
    functionsReached:
    - PORT_Free
    - DestroyDBEntry
    - nsslowcert_UnlockFreeList
    - PORT_Memset
    - pkcs11_freeStaticData
    - nsslowcert_LockFreeList
    linkageType: ''
    returnType: void
    signature: void nsslowcert_DestroyTrust(NSSLOWCERTTrust *trust)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DestroyCertificate
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5051,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cert
    argTypes:
    - NSSLOWCERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5053
      start: 5048
    functionDepth: 4
    functionLinenumber: 5048
    functionLinenumberEnd: 5053
    functionName: nsslowcert_DestroyCertificate
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 11
    functionsReached:
    - DestroyCertificate
    linkageType: ''
    returnType: void
    signature: void nsslowcert_DestroyCertificate(NSSLOWCERTCertificate *cert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DestroyCertificate
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5058,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cert
    argTypes:
    - NSSLOWCERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5060
      start: 5055
    functionDepth: 4
    functionLinenumber: 5055
    functionLinenumberEnd: 5060
    functionName: nsslowcert_DestroyCertificateNoLocking
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 1
    functionsReached:
    - DestroyCertificate
    linkageType: ''
    returnType: void
    signature: void nsslowcert_DestroyCertificateNoLocking(NSSLOWCERTCertificate *cert)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5077,1
    - Dst: EncodeDBGenericKey
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5082,1
    - Dst: ReadDBCrlEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5088,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5096,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - handle
    - crlKey
    - isKRL
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - SECItem*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5100
      start: 5066
    functionDepth: 4
    functionLinenumber: 5066
    functionLinenumberEnd: 5100
    functionName: nsslowcert_FindCrlByKey
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 2
    functionsReached:
    - EncodeDBGenericKey
    - ReadDBCrlEntry
    - PORT_FreeArena
    - PORT_NewArena
    linkageType: ''
    returnType: certDBEntryRevocation
    signature: "certDBEntryRevocation *\nnsslowcert_FindCrlByKey(NSSLOWCERTCertDBHandle
      *handle,\n                        SECItem *crlKey, PRBool isKRL)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DeleteDBCrlEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5113,1
    - Dst: NewDBCrlEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5116,1
    - Dst: WriteDBCrlEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5120,1
    - Dst: DestroyDBEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5126,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 5
    argNames:
    - handle
    - derCrl
    - crlKey
    - url
    - isKRL
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - SECItem*
    - SECItem*
    - char*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5129
      start: 5105
    functionDepth: 4
    functionLinenumber: 5105
    functionLinenumberEnd: 5129
    functionName: nsslowcert_UpdateCrl
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 1
    functionsReached:
    - DestroyDBEntry
    - NewDBCrlEntry
    - WriteDBCrlEntry
    - DeleteDBCrlEntry
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus nsslowcert_UpdateCrl(NSSLOWCERTCertDBHandle *handle, SECItem
      *derCrl,\n                     SECItem *crlKey, char *url, PRBool isKRL)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nsslowcert_UpdateCrl
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - handle
    - derCrl
    - crlKey
    - url
    - isKRL
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - SECItem*
    - SECItem*
    - char*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5140
      start: 5131
    functionDepth: 5
    functionLinenumber: 5131
    functionLinenumberEnd: 5140
    functionName: nsslowcert_AddCrl
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 1
    functionsReached:
    - nsslowcert_UpdateCrl
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus nsslowcert_AddCrl(NSSLOWCERTCertDBHandle *handle, SECItem
      *derCrl,\n                  SECItem *crlKey, char *url, PRBool isKRL)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DeleteDBCrlEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - handle
    - derName
    - isKRL
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - SECItem*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5156
      start: 5142
    functionDepth: 4
    functionLinenumber: 5142
    functionLinenumberEnd: 5156
    functionName: nsslowcert_DeletePermCRL
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 1
    functionsReached:
    - DeleteDBCrlEntry
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus nsslowcert_DeletePermCRL(NSSLOWCERTCertDBHandle *handle,
      const SECItem *derName,\n                         PRBool isKRL)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - trust
    argTypes:
    - NSSLOWCERTCertTrust*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5169
      start: 5158
    functionDepth: 0
    functionLinenumber: 5158
    functionLinenumberEnd: 5169
    functionName: nsslowcert_hasTrust
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool nsslowcert_hasTrust(NSSLOWCERTCertTrust *trust)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: nsslowcert_ReadDBSMimeEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5186,1
    - Dst: SECITEM_ItemsAreEqual
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5190,1
    - Dst: nsslowcert_UpdateSubjectEmailAddr
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5191,1
    - Dst: DestroyDBEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5194,1
    - Dst: NewDBSMimeEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5199,1
    - Dst: nsslowcert_LockDB
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5206,1
    - Dst: DeleteDBSMimeEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5208,1
    - Dst: nsslowcert_UpdateSubjectEmailAddr
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5212,1
    - Dst: nsslowcert_UnlockDB
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5215,1
    - Dst: WriteDBSMimeEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5219,1
    - Dst: nsslowcert_UnlockDB
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5221,1
    - Dst: nsslowcert_UnlockDB
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5225,1
    - Dst: DestroyDBEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5231,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 5
    argNames:
    - dbhandle
    - emailAddr
    - derSubject
    - emailProfile
    - profileTime
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - char*
    - SECItem*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5234
      start: 5176
    functionDepth: 5
    functionLinenumber: 5176
    functionLinenumberEnd: 5234
    functionName: nsslowcert_UpdateSMimeProfile
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 1
    functionsReached:
    - NewDBSMimeEntry
    - SECITEM_ItemsAreEqual
    - WriteDBSMimeEntry
    - nsslowcert_LockDB
    - DestroyDBEntry
    - nsslowcert_ReadDBSMimeEntry
    - DeleteDBSMimeEntry
    - nsslowcert_UpdateSubjectEmailAddr
    - nsslowcert_UnlockDB
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus nsslowcert_UpdateSMimeProfile(NSSLOWCERTCertDBHandle *dbhandle,\n
      \                             char *emailAddr, SECItem *derSubject, SECItem
      *emailProfile,\n                              SECItem *profileTime)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nsslowcert_UpdateSMimeProfile
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - dbhandle
    - emailAddr
    - derSubject
    - emailProfile
    - profileTime
    argTypes:
    - NSSLOWCERTCertDBHandle*
    - char*
    - SECItem*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5247
      start: 5236
    functionDepth: 6
    functionLinenumber: 5236
    functionLinenumberEnd: 5247
    functionName: nsslowcert_SaveSMimeProfile
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 2
    functionsReached:
    - nsslowcert_UpdateSMimeProfile
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus nsslowcert_SaveSMimeProfile(NSSLOWCERTCertDBHandle *dbhandle,
      char *emailAddr,\n                            SECItem *derSubject, SECItem *emailProfile,
      SECItem *profileTime)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DestroyCertEntryFreeList
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5255,1
    - Dst: DestroyTrustFreeList
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5256,1
    - Dst: DestroyCertFreeList
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5257,1
    - Dst: SKIP_AFTER_FORK
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5258,1
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5260
      start: 5249
    functionDepth: 3
    functionLinenumber: 5249
    functionLinenumberEnd: 5260
    functionName: nsslowcert_DestroyFreeLists
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - DestroyCertEntryFreeList
    - SKIP_AFTER_FORK
    - DestroyTrustFreeList
    - DestroyCertFreeList
    - PZ_DestroyLock
    linkageType: ''
    returnType: void
    signature: void nsslowcert_DestroyFreeLists(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SKIP_AFTER_FORK
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5266,1
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5266,1
    - Dst: SKIP_AFTER_FORK
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5270,1
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5270,1
    - Dst: SKIP_AFTER_FORK
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5274,1
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5274,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5277
      start: 5262
    functionDepth: 1
    functionLinenumber: 5262
    functionLinenumberEnd: 5277
    functionName: nsslowcert_DestroyGlobalLocks
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 0
    functionsReached:
    - PZ_DestroyLock
    - SKIP_AFTER_FORK
    linkageType: ''
    returnType: void
    signature: void nsslowcert_DestroyGlobalLocks(void)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5289,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5295,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5299,1
    - Dst: DecodeDBSubjectEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5315,1
    - Dst: DecodeDBNicknameEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5319,1
    - Dst: DecodeDBSMimeEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5326,1
    - Dst: DecodeDBCertEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5330,1
    - Dst: DecodeDBCrlEntry
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5335,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5339,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/pcertdb.c:5348,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 53
    argCount: 4
    argNames:
    - dbData
    - dbKey
    - entryType
    - pdata
    argTypes:
    - SECItem*
    - SECItem*
    - certDBEntryType
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5350
      start: 5279
    functionDepth: 3
    functionLinenumber: 5279
    functionLinenumberEnd: 5350
    functionName: nsslowcert_DecodeAnyDBEntry
    functionSourceFile: /src/nss/lib/softoken/legacydb/pcertdb.c
    functionUses: 1
    functionsReached:
    - PORT_NewArena
    - PORT_FreeArena
    - DecodeDBCertEntry
    - PORT_SetError
    - PORT_ArenaZNew
    - DecodeDBSMimeEntry
    - DecodeDBNicknameEntry
    - DecodeDBSubjectEntry
    - DecodeDBCrlEntry
    linkageType: ''
    returnType: certDBEntry
    signature: "certDBEntry *\nnsslowcert_DecodeAnyDBEntry(SECItem *dbData, const
      SECItem *dbKey,\n                            certDBEntryType entryType, void
      *pdata)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/lib/softoken/legacydb/lowkey.c:141,1
    - Dst: printf
      Src: /src/nss/lib/softoken/legacydb/lowkey.c:143,1
    - Dst: printf
      Src: /src/nss/lib/softoken/legacydb/lowkey.c:145,1
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/softoken/legacydb/lowkey.c:151,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/lowkey.c:152,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/lowkey.c:160,1
    - Dst: memcpy
      Src: /src/nss/lib/softoken/legacydb/lowkey.c:164,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - arena
    - encodedParams
    - params
    argTypes:
    - PLArenaPool*
    - SECItem*
    - ECParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 167
    functionName: LGEC_FillParams
    functionSourceFile: /src/nss/lib/softoken/legacydb/lowkey.c
    functionUses: 1
    functionsReached:
    - memcpy
    - PORT_ArenaAlloc
    - printf
    - SECOID_FindOIDTag
    - PORT_SetError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus LGEC_FillParams(PLArenaPool *arena, const SECItem *encodedParams,\n
      \               ECParams *params)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/legacydb/lowkey.c:178,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/legacydb/lowkey.c:183,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - arena
    - dstParams
    - srcParams
    argTypes:
    - PLArenaPool*
    - ECParams*
    - ECParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 193
    functionName: LGEC_CopyParams
    functionSourceFile: /src/nss/lib/softoken/legacydb/lowkey.c
    functionUses: 0
    functionsReached:
    - SECITEM_CopyItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus LGEC_CopyParams(PLArenaPool *arena, ECParams *dstParams,\n
      \               const ECParams *srcParams)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - key
    argTypes:
    - NSSLOWKEYPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 214
    functionName: lg_prepare_low_rsa_priv_key_for_asn1
    functionSourceFile: /src/nss/lib/softoken/legacydb/lowkey.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lg_prepare_low_rsa_priv_key_for_asn1(NSSLOWKEYPrivateKey *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - params
    argTypes:
    - PQGParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 222
    functionName: lg_prepare_low_pqg_params_for_asn1
    functionSourceFile: /src/nss/lib/softoken/legacydb/lowkey.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lg_prepare_low_pqg_params_for_asn1(PQGParams *params)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - key
    argTypes:
    - NSSLOWKEYPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 232
    functionName: lg_prepare_low_dsa_priv_key_for_asn1
    functionSourceFile: /src/nss/lib/softoken/legacydb/lowkey.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lg_prepare_low_dsa_priv_key_for_asn1(NSSLOWKEYPrivateKey *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - key
    argTypes:
    - NSSLOWKEYPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 241
    functionName: lg_prepare_low_dh_priv_key_for_asn1
    functionSourceFile: /src/nss/lib/softoken/legacydb/lowkey.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lg_prepare_low_dh_priv_key_for_asn1(NSSLOWKEYPrivateKey *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - params
    argTypes:
    - ECParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 248
    functionName: lg_prepare_low_ecparams_for_asn1
    functionSourceFile: /src/nss/lib/softoken/legacydb/lowkey.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lg_prepare_low_ecparams_for_asn1(ECParams *params)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - key
    argTypes:
    - NSSLOWKEYPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 258
    functionName: lg_prepare_low_ec_priv_key_for_asn1
    functionSourceFile: /src/nss/lib/softoken/legacydb/lowkey.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lg_prepare_low_ec_priv_key_for_asn1(NSSLOWKEYPrivateKey *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/lowkey.c:264,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - privk
    argTypes:
    - NSSLOWKEYPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 266
    functionName: lg_nsslowkey_DestroyPrivateKey
    functionSourceFile: /src/nss/lib/softoken/legacydb/lowkey.c
    functionUses: 6
    functionsReached:
    - PORT_FreeArena
    linkageType: ''
    returnType: void
    signature: void lg_nsslowkey_DestroyPrivateKey(NSSLOWKEYPrivateKey *privk)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/lowkey.c:272,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - pubk
    argTypes:
    - NSSLOWKEYPublicKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 274
    functionName: lg_nsslowkey_DestroyPublicKey
    functionSourceFile: /src/nss/lib/softoken/legacydb/lowkey.c
    functionUses: 1
    functionsReached:
    - PORT_FreeArena
    linkageType: ''
    returnType: void
    signature: void lg_nsslowkey_DestroyPublicKey(NSSLOWKEYPublicKey *pubk)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/legacydb/lowkey.c:282,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/lowkey.c:284,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/softoken/legacydb/lowkey.c:291,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/legacydb/lowkey.c:300,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/legacydb/lowkey.c:303,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/lowkey.c:309,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/softoken/legacydb/lowkey.c:313,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/legacydb/lowkey.c:320,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/legacydb/lowkey.c:324,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/legacydb/lowkey.c:328,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/legacydb/lowkey.c:332,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/softoken/legacydb/lowkey.c:339,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/legacydb/lowkey.c:346,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/legacydb/lowkey.c:350,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/legacydb/lowkey.c:354,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/softoken/legacydb/lowkey.c:361,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/legacydb/lowkey.c:368,1
    - Dst: LGEC_CopyParams
      Src: /src/nss/lib/softoken/legacydb/lowkey.c:374,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/lowkey.c:386,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 79
    argCount: 1
    argNames:
    - privk
    argTypes:
    - NSSLOWKEYPrivateKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 388
    functionName: lg_nsslowkey_ConvertToPublicKey
    functionSourceFile: /src/nss/lib/softoken/legacydb/lowkey.c
    functionUses: 1
    functionsReached:
    - PORT_NewArena
    - LGEC_CopyParams
    - PORT_ArenaZAlloc
    - PORT_FreeArena
    - SECITEM_CopyItem
    - PORT_SetError
    linkageType: ''
    returnType: NSSLOWKEYPublicKey
    signature: 'NSSLOWKEYPublicKey *

      lg_nsslowkey_ConvertToPublicKey(NSSLOWKEYPrivateKey *privk)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PR_smprintf
      Src: /src/nss/lib/softoken/legacydb/lginit.c:65,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/softoken/legacydb/lginit.c:67,1
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/softoken/legacydb/lginit.c:68,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - arg
    - dbVersion
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 71
    functionName: lg_certdb_name_cb
    functionSourceFile: /src/nss/lib/softoken/legacydb/lginit.c
    functionUses: 0
    functionsReached:
    - PORT_Strdup
    - PR_smprintf_free
    - PR_smprintf
    linkageType: ''
    returnType: char
    signature: 'char *

      lg_certdb_name_cb(void *arg, int dbVersion)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PR_smprintf
      Src: /src/nss/lib/softoken/legacydb/lginit.c:97,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/softoken/legacydb/lginit.c:99,1
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/softoken/legacydb/lginit.c:100,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - arg
    - dbVersion
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 103
    functionName: lg_keydb_name_cb
    functionSourceFile: /src/nss/lib/softoken/legacydb/lginit.c
    functionUses: 0
    functionsReached:
    - PORT_Strdup
    - PR_smprintf_free
    - PR_smprintf
    linkageType: ''
    returnType: char
    signature: 'char *

      lg_keydb_name_cb(void *arg, int dbVersion)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strncmp
      Src: /src/nss/lib/softoken/legacydb/lginit.c:108,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/softoken/legacydb/lginit.c:111,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - configdir
    - appName
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 126
    functionName: lg_EvaluateConfigDir
    functionSourceFile: /src/nss/lib/softoken/legacydb/lginit.c
    functionUses: 0
    functionsReached:
    - PORT_Strdup
    - PORT_Strncmp
    linkageType: ''
    returnType: char
    signature: 'char *

      lg_EvaluateConfigDir(const char *configdir, char **appName)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rdbmapflags
      Src: /src/nss/lib/softoken/legacydb/lginit.c:144,1
    - Dst: PR_LoadLibrary
      Src: /src/nss/lib/softoken/legacydb/lginit.c:154,1
    - Dst: PR_FindSymbol
      Src: /src/nss/lib/softoken/legacydb/lginit.c:161,1
    - Dst: PR_FindSymbol
      Src: /src/nss/lib/softoken/legacydb/lginit.c:162,1
    - Dst: rdbmapflags
      Src: /src/nss/lib/softoken/legacydb/lginit.c:164,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/lib/softoken/legacydb/lginit.c:172,1
    - Dst: PR_UnloadLibrary
      Src: /src/nss/lib/softoken/legacydb/lginit.c:174,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 5
    argNames:
    - appName
    - prefix
    - type
    - flags
    - status
    argTypes:
    - char*
    - char*
    - char*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 177
    functionName: rdbopen
    functionSourceFile: /src/nss/lib/softoken/legacydb/lginit.c
    functionUses: 3
    functionsReached:
    - rdbmapflags
    - PR_LoadLibrary
    - PR_UnloadLibrary
    - PR_GetEnvSecure
    - PR_FindSymbol
    linkageType: ''
    returnType: DB
    signature: "DB *\nrdbopen(const char *appName, const char *prefix,\n        const
      char *type, int flags, int *status)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - flags
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 209
    functionName: rdbmapflags
    functionSourceFile: /src/nss/lib/softoken/legacydb/lginit.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int rdbmapflags(int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - db
    argTypes:
    - DB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 215
    functionName: db_IsRDB
    functionSourceFile: /src/nss/lib/softoken/legacydb/lginit.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool db_IsRDB(DB *db)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct RDBStr*::xactstart
      Src: /src/nss/lib/softoken/legacydb/lginit.c:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - db
    argTypes:
    - DB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 226
    functionName: db_BeginTransaction
    functionSourceFile: /src/nss/lib/softoken/legacydb/lginit.c
    functionUses: 0
    functionsReached:
    - struct RDBStr*::xactstart
    linkageType: ''
    returnType: int
    signature: int db_BeginTransaction(DB *db)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct RDBStr*::xactdone
      Src: /src/nss/lib/softoken/legacydb/lginit.c:236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - db
    - abort
    argTypes:
    - DB*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 237
    functionName: db_FinishTransaction
    functionSourceFile: /src/nss/lib/softoken/legacydb/lginit.c
    functionUses: 0
    functionsReached:
    - struct RDBStr*::xactdone
    linkageType: ''
    returnType: int
    signature: int db_FinishTransaction(DB *db, PRBool abort)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lg_getCertDB
      Src: /src/nss/lib/softoken/legacydb/lginit.c:245,1
    - Dst: lg_getKeyDB
      Src: /src/nss/lib/softoken/legacydb/lginit.c:249,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - sdb
    argTypes:
    - SDB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 254
    functionName: lg_getRawDB
    functionSourceFile: /src/nss/lib/softoken/legacydb/lginit.c
    functionUses: 0
    functionsReached:
    - lg_getCertDB
    - lg_getKeyDB
    linkageType: ''
    returnType: DB
    signature: 'DB *

      lg_getRawDB(SDB *sdb)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lg_getRawDB
      Src: /src/nss/lib/softoken/legacydb/lginit.c:259,1
    - Dst: db_BeginTransaction
      Src: /src/nss/lib/softoken/legacydb/lginit.c:265,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - sdb
    argTypes:
    - SDB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 256
    functionDepth: 2
    functionLinenumber: 256
    functionLinenumberEnd: 270
    functionName: lg_Begin
    functionSourceFile: /src/nss/lib/softoken/legacydb/lginit.c
    functionUses: 0
    functionsReached:
    - db_BeginTransaction
    - lg_getRawDB
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV lg_Begin(SDB *sdb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lg_getRawDB
      Src: /src/nss/lib/softoken/legacydb/lginit.c:275,1
    - Dst: db_FinishTransaction
      Src: /src/nss/lib/softoken/legacydb/lginit.c:281,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - sdb
    argTypes:
    - SDB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 272
    functionDepth: 2
    functionLinenumber: 272
    functionLinenumberEnd: 286
    functionName: lg_Commit
    functionSourceFile: /src/nss/lib/softoken/legacydb/lginit.c
    functionUses: 0
    functionsReached:
    - db_FinishTransaction
    - lg_getRawDB
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV lg_Commit(SDB *sdb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lg_getRawDB
      Src: /src/nss/lib/softoken/legacydb/lginit.c:291,1
    - Dst: db_FinishTransaction
      Src: /src/nss/lib/softoken/legacydb/lginit.c:297,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - sdb
    argTypes:
    - SDB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 288
    functionDepth: 2
    functionLinenumber: 288
    functionLinenumberEnd: 302
    functionName: lg_Abort
    functionSourceFile: /src/nss/lib/softoken/legacydb/lginit.c
    functionUses: 0
    functionsReached:
    - db_FinishTransaction
    - lg_getRawDB
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV lg_Abort(SDB *sdb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: struct RDBStr*::dbinitcomplete
      Src: /src/nss/lib/softoken/legacydb/lginit.c:318,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - db
    argTypes:
    - DB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 319
    functionName: db_InitComplete
    functionSourceFile: /src/nss/lib/softoken/legacydb/lginit.c
    functionUses: 1
    functionsReached:
    - struct RDBStr*::dbinitcomplete
    linkageType: ''
    returnType: int
    signature: int db_InitComplete(DB *db)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - DB*
    - DB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 337
    functionName: db_Copy
    functionSourceFile: /src/nss/lib/softoken/legacydb/lginit.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus db_Copy(DB *dest, DB *src)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: lg_EvaluateConfigDir
      Src: /src/nss/lib/softoken/legacydb/lginit.c:353,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/softoken/legacydb/lginit.c:355,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/softoken/legacydb/lginit.c:359,1
    - Dst: nsslowcert_OpenCertDB
      Src: /src/nss/lib/softoken/legacydb/lginit.c:365,1
    - Dst: PR_Free
      Src: /src/nss/lib/softoken/legacydb/lginit.c:374,1
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/softoken/legacydb/lginit.c:376,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/lginit.c:378,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 4
    argNames:
    - configdir
    - prefix
    - readOnly
    - certdbPtr
    argTypes:
    - char*
    - char*
    - PRBool
    - NSSLOWCERTCertDBHandle**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 339
    functionDepth: 10
    functionLinenumber: 339
    functionLinenumberEnd: 380
    functionName: lg_OpenCertDB
    functionSourceFile: /src/nss/lib/softoken/legacydb/lginit.c
    functionUses: 0
    functionsReached:
    - nsslowcert_OpenCertDB
    - PORT_Free
    - PORT_ZAlloc
    - PR_Free
    - PR_smprintf_free
    - PR_smprintf
    - lg_EvaluateConfigDir
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV lg_OpenCertDB(const char *configdir, const char *prefix, PRBool
      readOnly,\n              NSSLOWCERTCertDBHandle **certdbPtr)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lg_EvaluateConfigDir
      Src: /src/nss/lib/softoken/legacydb/lginit.c:393,1
    - Dst: PR_smprintf
      Src: /src/nss/lib/softoken/legacydb/lginit.c:395,1
    - Dst: nsslowkey_OpenKeyDB
      Src: /src/nss/lib/softoken/legacydb/lginit.c:398,1
    - Dst: PR_smprintf_free
      Src: /src/nss/lib/softoken/legacydb/lginit.c:400,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/lginit.c:402,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - configdir
    - prefix
    - readOnly
    - keydbPtr
    argTypes:
    - char*
    - char*
    - PRBool
    - NSSLOWKEYDBHandle**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 408
    functionName: lg_OpenKeyDB
    functionSourceFile: /src/nss/lib/softoken/legacydb/lginit.c
    functionUses: 0
    functionsReached:
    - nsslowkey_OpenKeyDB
    - PORT_Free
    - PR_smprintf_free
    - PR_smprintf
    - lg_EvaluateConfigDir
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV lg_OpenKeyDB(const char *configdir, const char *prefix, PRBool
      readOnly,\n             NSSLOWKEYDBHandle **keydbPtr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SKIP_AFTER_FORK
      Src: /src/nss/lib/softoken/legacydb/lginit.c:417,1
    - Dst: PR_Lock
      Src: /src/nss/lib/softoken/legacydb/lginit.c:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sdb
    argTypes:
    - SDB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 418
    functionName: lg_DBLock
    functionSourceFile: /src/nss/lib/softoken/legacydb/lginit.c
    functionUses: 5
    functionsReached:
    - PR_Lock
    - SKIP_AFTER_FORK
    linkageType: ''
    returnType: void
    signature: void lg_DBLock(SDB *sdb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SKIP_AFTER_FORK
      Src: /src/nss/lib/softoken/legacydb/lginit.c:424,1
    - Dst: PR_Unlock
      Src: /src/nss/lib/softoken/legacydb/lginit.c:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sdb
    argTypes:
    - SDB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 425
    functionName: lg_DBUnlock
    functionSourceFile: /src/nss/lib/softoken/legacydb/lginit.c
    functionUses: 5
    functionsReached:
    - SKIP_AFTER_FORK
    - PR_Unlock
    linkageType: ''
    returnType: void
    signature: void lg_DBUnlock(SDB *sdb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sdb
    argTypes:
    - SDB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 432
    functionName: lg_GetHashTable
    functionSourceFile: /src/nss/lib/softoken/legacydb/lginit.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: PLHashTable
    signature: 'PLHashTable *

      lg_GetHashTable(SDB *sdb)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sdb
    argTypes:
    - SDB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 440
    functionName: lg_getCertDB
    functionSourceFile: /src/nss/lib/softoken/legacydb/lginit.c
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: NSSLOWCERTCertDBHandle
    signature: 'NSSLOWCERTCertDBHandle *

      lg_getCertDB(SDB *sdb)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sdb
    argTypes:
    - SDB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 448
    functionName: lg_getKeyDB
    functionSourceFile: /src/nss/lib/softoken/legacydb/lginit.c
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: NSSLOWKEYDBHandle
    signature: 'NSSLOWKEYDBHandle *

      lg_getKeyDB(SDB *sdb)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - forked
    argTypes:
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 456
    functionName: lg_SetForkState
    functionSourceFile: /src/nss/lib/softoken/legacydb/lginit.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lg_SetForkState(PRBool forked)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lg_ClearTokenKeyHashTable
      Src: /src/nss/lib/softoken/legacydb/lginit.c:462,1
    - Dst: nsslowcert_ClosePermCertDB
      Src: /src/nss/lib/softoken/legacydb/lginit.c:465,1
    - Dst: nsslowkey_CloseKeyDB
      Src: /src/nss/lib/softoken/legacydb/lginit.c:467,1
    - Dst: SKIP_AFTER_FORK
      Src: /src/nss/lib/softoken/legacydb/lginit.c:470,1
    - Dst: PR_DestroyLock
      Src: /src/nss/lib/softoken/legacydb/lginit.c:470,1
    - Dst: PL_HashTableDestroy
      Src: /src/nss/lib/softoken/legacydb/lginit.c:473,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/lginit.c:475,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/lginit.c:477,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - sdb
    argTypes:
    - SDB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 458
    functionDepth: 3
    functionLinenumber: 458
    functionLinenumberEnd: 479
    functionName: lg_Close
    functionSourceFile: /src/nss/lib/softoken/legacydb/lginit.c
    functionUses: 0
    functionsReached:
    - SKIP_AFTER_FORK
    - nsslowkey_CloseKeyDB
    - PL_HashTableDestroy
    - lg_ClearTokenKeyHashTable
    - PORT_Free
    - PR_DestroyLock
    - nsslowcert_ClosePermCertDB
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV lg_Close(SDB *sdb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 485
    functionName: lg_HashNumber
    functionSourceFile: /src/nss/lib/softoken/legacydb/lginit.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PLHashNumber
    signature: PLHashNumber lg_HashNumber(const void *key)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/legacydb/lginit.c:500,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/legacydb/lginit.c:504,1
    - Dst: PR_NewLock
      Src: /src/nss/lib/softoken/legacydb/lginit.c:511,1
    - Dst: PL_NewHashTable
      Src: /src/nss/lib/softoken/legacydb/lginit.c:515,1
    - Dst: PR_DestroyLock
      Src: /src/nss/lib/softoken/legacydb/lginit.c:518,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/lginit.c:549,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/lginit.c:552,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 57
    argCount: 4
    argNames:
    - pSdb
    - flags
    - certdbPtr
    - keydbPtr
    argTypes:
    - SDB**
    - int
    - NSSLOWCERTCertDBHandle*
    - NSSLOWKEYDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 555
    functionName: lg_init
    functionSourceFile: /src/nss/lib/softoken/legacydb/lginit.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_Free
    - PR_NewLock
    - PR_DestroyLock
    - PL_NewHashTable
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV lg_init(SDB **pSdb, int flags, NSSLOWCERTCertDBHandle *certdbPtr,\n
      \       NSSLOWKEYDBHandle *keydbPtr)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: lg_FIPSEntryOK
      Src: /src/nss/lib/softoken/legacydb/lginit.c:590,1
    - Dst: SECOID_Init
      Src: /src/nss/lib/softoken/legacydb/lginit.c:596,1
    - Dst: nsslowcert_InitLocks
      Src: /src/nss/lib/softoken/legacydb/lginit.c:600,1
    - Dst: lg_OpenCertDB
      Src: /src/nss/lib/softoken/legacydb/lginit.c:610,1
    - Dst: lg_init
      Src: /src/nss/lib/softoken/legacydb/lginit.c:614,1
    - Dst: nsslowcert_ClosePermCertDB
      Src: /src/nss/lib/softoken/legacydb/lginit.c:616,1
    - Dst: lg_OpenKeyDB
      Src: /src/nss/lib/softoken/legacydb/lginit.c:623,1
    - Dst: lg_init
      Src: /src/nss/lib/softoken/legacydb/lginit.c:627,1
    - Dst: nsslowkey_CloseKeyDB
      Src: /src/nss/lib/softoken/legacydb/lginit.c:629,1
    - Dst: lg_Close
      Src: /src/nss/lib/softoken/legacydb/lginit.c:641,1
    - Dst: lg_Close
      Src: /src/nss/lib/softoken/legacydb/lginit.c:645,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 57
    argCount: 8
    argNames:
    - configdir
    - certPrefix
    - keyPrefix
    - certVersion
    - keyVersion
    - flags
    - certDB
    - keyDB
    argTypes:
    - char*
    - char*
    - char*
    - int
    - int
    - int
    - SDB**
    - SDB**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 574
    functionDepth: 11
    functionLinenumber: 574
    functionLinenumberEnd: 650
    functionName: legacy_Open
    functionSourceFile: /src/nss/lib/softoken/legacydb/lginit.c
    functionUses: 0
    functionsReached:
    - nsslowcert_InitLocks
    - lg_FIPSEntryOK
    - nsslowkey_CloseKeyDB
    - lg_OpenCertDB
    - lg_OpenKeyDB
    - lg_init
    - lg_Close
    - SECOID_Init
    - nsslowcert_ClosePermCertDB
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV legacy_Open(const char *configdir, const char *certPrefix,\n
      \           const char *keyPrefix, int certVersion, int keyVersion,\n            int
      flags, SDB **certDB, SDB **keyDB)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lg_SetForkState
      Src: /src/nss/lib/softoken/legacydb/lginit.c:655,1
    - Dst: nsslowcert_DestroyFreeLists
      Src: /src/nss/lib/softoken/legacydb/lginit.c:656,1
    - Dst: nsslowcert_DestroyGlobalLocks
      Src: /src/nss/lib/softoken/legacydb/lginit.c:657,1
    - Dst: SECOID_Shutdown
      Src: /src/nss/lib/softoken/legacydb/lginit.c:658,1
    - Dst: lg_SetForkState
      Src: /src/nss/lib/softoken/legacydb/lginit.c:659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - forked
    argTypes:
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 652
    functionDepth: 4
    functionLinenumber: 652
    functionLinenumberEnd: 661
    functionName: legacy_Shutdown
    functionSourceFile: /src/nss/lib/softoken/legacydb/lginit.c
    functionUses: 0
    functionsReached:
    - SECOID_Shutdown
    - lg_SetForkState
    - nsslowcert_DestroyGlobalLocks
    - nsslowcert_DestroyFreeLists
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV legacy_Shutdown(PRBool forked)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/keydb.c:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - dbkey
    argTypes:
    - NSSLOWKEYDBKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: sec_destroy_dbkey
    functionSourceFile: /src/nss/lib/softoken/legacydb/keydb.c
    functionUses: 0
    functionsReached:
    - PORT_FreeArena
    linkageType: ''
    returnType: void
    signature: void sec_destroy_dbkey(NSSLOWKEYDBKey *dbkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/keydb.c:61,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/keydb.c:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - dbt
    argTypes:
    - DBT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 66
    functionName: free_dbt
    functionSourceFile: /src/nss/lib/softoken/legacydb/keydb.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    linkageType: ''
    returnType: void
    signature: void free_dbt(DBT *dbt)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/softoken/legacydb/keydb.c:97,1
    - Dst: PORT_Strlen
      Src: /src/nss/lib/softoken/legacydb/keydb.c:104,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/softoken/legacydb/keydb.c:114,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/legacydb/keydb.c:125,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/legacydb/keydb.c:129,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/keydb.c:134,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/keydb.c:138,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/keydb.c:141,1
    - Dst: free_dbt
      Src: /src/nss/lib/softoken/legacydb/keydb.c:148,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 2
    argNames:
    - dbkey
    - version
    argTypes:
    - NSSLOWKEYDBKey*
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 152
    functionName: encode_dbkey
    functionSourceFile: /src/nss/lib/softoken/legacydb/keydb.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PORT_Memcpy
    - PORT_ZAlloc
    - PORT_Strlen
    - free_dbt
    linkageType: ''
    returnType: DBT
    signature: 'DBT *

      encode_dbkey(NSSLOWKEYDBKey *dbkey, unsigned char version)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/legacydb/keydb.c:173,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/softoken/legacydb/keydb.c:178,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/softoken/legacydb/keydb.c:188,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/softoken/legacydb/keydb.c:199,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/keydb.c:201,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/keydb.c:208,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/softoken/legacydb/keydb.c:211,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/keydb.c:216,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/keydb.c:223,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 54
    argCount: 2
    argNames:
    - bufitem
    - expectedVersion
    argTypes:
    - DBT*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 227
    functionName: decode_dbkey
    functionSourceFile: /src/nss/lib/softoken/legacydb/keydb.c
    functionUses: 0
    functionsReached:
    - PORT_FreeArena
    - PORT_Memcpy
    - PORT_NewArena
    - PORT_ArenaZAlloc
    linkageType: ''
    returnType: NSSLOWKEYDBKey
    signature: 'NSSLOWKEYDBKey *

      decode_dbkey(DBT *bufitem, int expectedVersion)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: keydb_Get
      Src: /src/nss/lib/softoken/legacydb/keydb.c:237,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/keydb.c:239,1
    - Dst: decode_dbkey
      Src: /src/nss/lib/softoken/legacydb/keydb.c:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - handle
    - index
    argTypes:
    - NSSLOWKEYDBHandle*
    - DBT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 248
    functionName: get_dbkey
    functionSourceFile: /src/nss/lib/softoken/legacydb/keydb.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - decode_dbkey
    - keydb_Get
    linkageType: ''
    returnType: NSSLOWKEYDBKey
    signature: 'NSSLOWKEYDBKey *

      get_dbkey(NSSLOWKEYDBHandle *handle, DBT *index)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: encode_dbkey
      Src: /src/nss/lib/softoken/legacydb/keydb.c:256,1
    - Dst: keydb_Put
      Src: /src/nss/lib/softoken/legacydb/keydb.c:263,1
    - Dst: keydb_Put
      Src: /src/nss/lib/softoken/legacydb/keydb.c:265,1
    - Dst: keydb_Sync
      Src: /src/nss/lib/softoken/legacydb/keydb.c:273,1
    - Dst: free_dbt
      Src: /src/nss/lib/softoken/legacydb/keydb.c:278,1
    - Dst: free_dbt
      Src: /src/nss/lib/softoken/legacydb/keydb.c:283,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 4
    argNames:
    - handle
    - index
    - dbkey
    - update
    argTypes:
    - NSSLOWKEYDBHandle*
    - DBT*
    - NSSLOWKEYDBKey*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 250
    functionDepth: 2
    functionLinenumber: 250
    functionLinenumberEnd: 287
    functionName: put_dbkey
    functionSourceFile: /src/nss/lib/softoken/legacydb/keydb.c
    functionUses: 0
    functionsReached:
    - keydb_Put
    - free_dbt
    - keydb_Sync
    - encode_dbkey
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus put_dbkey(NSSLOWKEYDBHandle *handle, DBT *index, NSSLOWKEYDBKey
      *dbkey, PRBool update)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: keydb_Seq
      Src: /src/nss/lib/softoken/legacydb/keydb.c:303,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/softoken/legacydb/keydb.c:312,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/softoken/legacydb/keydb.c:319,1
    - Dst: keydb_Seq
      Src: /src/nss/lib/softoken/legacydb/keydb.c:330,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 2
    argNames:
    - handle
    - udata
    argTypes:
    - NSSLOWKEYDBHandle*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 333
    functionName: nsslowkey_TraverseKeys
    functionSourceFile: /src/nss/lib/softoken/legacydb/keydb.c
    functionUses: 0
    functionsReached:
    - PORT_Memcmp
    - keydb_Seq
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus nsslowkey_TraverseKeys(NSSLOWKEYDBHandle *handle,\n                       SECStatus
      (*keyfunc)(DBT *k, DBT *d, void *pdata),\n                       void *udata)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/softoken/legacydb/keydb.c:356,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/softoken/legacydb/keydb.c:362,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/keydb.c:372,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - key
    - data
    - arg
    argTypes:
    - DBT*
    - DBT*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 377
    functionName: sec_add_key_to_list
    functionSourceFile: /src/nss/lib/softoken/legacydb/keydb.c
    functionUses: 0
    functionsReached:
    - PORT_Memcpy
    - PORT_ArenaZAlloc
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sec_add_key_to_list(DBT *key, DBT *data, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/softoken/legacydb/keydb.c:385,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/softoken/legacydb/keydb.c:390,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/keydb.c:392,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/keydb.c:397,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - saltData
    argTypes:
    - DBT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 400
    functionName: decodeKeyDBGlobalSalt
    functionSourceFile: /src/nss/lib/softoken/legacydb/keydb.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - PORT_ZAlloc
    - PORT_Memcpy
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      decodeKeyDBGlobalSalt(DBT *saltData)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: keydb_Get
      Src: /src/nss/lib/softoken/legacydb/keydb.c:412,1
    - Dst: decodeKeyDBGlobalSalt
      Src: /src/nss/lib/softoken/legacydb/keydb.c:417,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - handle
    argTypes:
    - NSSLOWKEYDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 418
    functionName: GetKeyDBGlobalSalt
    functionSourceFile: /src/nss/lib/softoken/legacydb/keydb.c
    functionUses: 0
    functionsReached:
    - decodeKeyDBGlobalSalt
    - keydb_Get
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      GetKeyDBGlobalSalt(NSSLOWKEYDBHandle *handle)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: keydb_Put
      Src: /src/nss/lib/softoken/legacydb/keydb.c:434,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - handle
    - salt
    argTypes:
    - NSSLOWKEYDBHandle*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 440
    functionName: StoreKeyDBGlobalSalt
    functionSourceFile: /src/nss/lib/softoken/legacydb/keydb.c
    functionUses: 0
    functionsReached:
    - keydb_Put
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus StoreKeyDBGlobalSalt(NSSLOWKEYDBHandle *handle, SECItem *salt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: keydb_Put
      Src: /src/nss/lib/softoken/legacydb/keydb.c:457,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - handle
    argTypes:
    - NSSLOWKEYDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 464
    functionName: makeGlobalVersion
    functionSourceFile: /src/nss/lib/softoken/legacydb/keydb.c
    functionUses: 0
    functionsReached:
    - keydb_Put
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus makeGlobalVersion(NSSLOWKEYDBHandle *handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RNG_GenerateGlobalRandomBytes
      Src: /src/nss/lib/softoken/legacydb/keydb.c:479,1
    - Dst: keydb_Put
      Src: /src/nss/lib/softoken/legacydb/keydb.c:482,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - handle
    argTypes:
    - NSSLOWKEYDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 466
    functionDepth: 1
    functionLinenumber: 466
    functionLinenumberEnd: 488
    functionName: makeGlobalSalt
    functionSourceFile: /src/nss/lib/softoken/legacydb/keydb.c
    functionUses: 0
    functionsReached:
    - keydb_Put
    - RNG_GenerateGlobalRandomBytes
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus makeGlobalSalt(NSSLOWKEYDBHandle *handle)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: keydb_Get
      Src: /src/nss/lib/softoken/legacydb/keydb.c:508,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - handle
    argTypes:
    - NSSLOWKEYDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 494
    functionDepth: 1
    functionLinenumber: 494
    functionLinenumberEnd: 519
    functionName: nsslowkey_version
    functionSourceFile: /src/nss/lib/softoken/legacydb/keydb.c
    functionUses: 0
    functionsReached:
    - keydb_Get
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char nsslowkey_version(NSSLOWKEYDBHandle *handle)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: keydb_Seq
      Src: /src/nss/lib/softoken/legacydb/keydb.c:529,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/softoken/legacydb/keydb.c:539,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/softoken/legacydb/keydb.c:545,1
    - Dst: PORT_Strcmp
      Src: /src/nss/lib/softoken/legacydb/keydb.c:560,1
    - Dst: keydb_Seq
      Src: /src/nss/lib/softoken/legacydb/keydb.c:565,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 27
    argCount: 1
    argNames:
    - handle
    argTypes:
    - NSSLOWKEYDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 521
    functionDepth: 1
    functionLinenumber: 521
    functionLinenumberEnd: 568
    functionName: seckey_HasAServerKey
    functionSourceFile: /src/nss/lib/softoken/legacydb/keydb.c
    functionUses: 0
    functionsReached:
    - PORT_Memcmp
    - keydb_Seq
    - PORT_Strcmp
    linkageType: ''
    returnType: PRBool
    signature: PRBool seckey_HasAServerKey(NSSLOWKEYDBHandle *handle)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: nsslowkey_NewHandle
      Src: /src/nss/lib/softoken/legacydb/keydb.c:599,1
    - Dst: nsslowkey_version
      Src: /src/nss/lib/softoken/legacydb/keydb.c:610,1
    - Dst: keydb_Get
      Src: /src/nss/lib/softoken/legacydb/keydb.c:618,1
    - Dst: decodeKeyDBGlobalSalt
      Src: /src/nss/lib/softoken/legacydb/keydb.c:624,1
    - Dst: keydb_Get
      Src: /src/nss/lib/softoken/legacydb/keydb.c:636,1
    - Dst: seckey_HasAServerKey
      Src: /src/nss/lib/softoken/legacydb/keydb.c:644,1
    - Dst: keydb_Put
      Src: /src/nss/lib/softoken/legacydb/keydb.c:656,1
    - Dst: keydb_Put
      Src: /src/nss/lib/softoken/legacydb/keydb.c:660,1
    - Dst: keydb_Put
      Src: /src/nss/lib/softoken/legacydb/keydb.c:669,1
    - Dst: decode_dbkey
      Src: /src/nss/lib/softoken/legacydb/keydb.c:674,1
    - Dst: encodePWCheckEntry
      Src: /src/nss/lib/softoken/legacydb/keydb.c:682,1
    - Dst: put_dbkey
      Src: /src/nss/lib/softoken/legacydb/keydb.c:687,1
    - Dst: sec_destroy_dbkey
      Src: /src/nss/lib/softoken/legacydb/keydb.c:693,1
    - Dst: keydb_Seq
      Src: /src/nss/lib/softoken/legacydb/keydb.c:698,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/softoken/legacydb/keydb.c:708,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/softoken/legacydb/keydb.c:714,1
    - Dst: decode_dbkey
      Src: /src/nss/lib/softoken/legacydb/keydb.c:728,1
    - Dst: put_dbkey
      Src: /src/nss/lib/softoken/legacydb/keydb.c:739,1
    - Dst: sec_destroy_dbkey
      Src: /src/nss/lib/softoken/legacydb/keydb.c:742,1
    - Dst: keydb_Seq
      Src: /src/nss/lib/softoken/legacydb/keydb.c:744,1
    - Dst: keydb_Sync
      Src: /src/nss/lib/softoken/legacydb/keydb.c:750,1
    - Dst: nsslowkey_CloseKeyDB
      Src: /src/nss/lib/softoken/legacydb/keydb.c:752,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/softoken/legacydb/keydb.c:755,1
    - Dst: sec_destroy_dbkey
      Src: /src/nss/lib/softoken/legacydb/keydb.c:759,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 117
    argCount: 1
    argNames:
    - handle
    argTypes:
    - NSSLOWKEYDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 576
    functionDepth: 3
    functionLinenumber: 576
    functionLinenumberEnd: 763
    functionName: nsslowkey_UpdateKeyDBPass1
    functionSourceFile: /src/nss/lib/softoken/legacydb/keydb.c
    functionUses: 0
    functionsReached:
    - decode_dbkey
    - nsslowkey_CloseKeyDB
    - PORT_Memcmp
    - keydb_Put
    - nsslowkey_version
    - put_dbkey
    - keydb_Sync
    - decodeKeyDBGlobalSalt
    - sec_destroy_dbkey
    - keydb_Get
    - SECITEM_FreeItem
    - keydb_Seq
    - encodePWCheckEntry
    - nsslowkey_NewHandle
    - seckey_HasAServerKey
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus nsslowkey_UpdateKeyDBPass1(NSSLOWKEYDBHandle *handle)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: rdbopen
      Src: /src/nss/lib/softoken/legacydb/keydb.c:777,1
    - Dst: dbopen
      Src: /src/nss/lib/softoken/legacydb/keydb.c:779,1
    - Dst: nsslowkey_version
      Src: /src/nss/lib/softoken/legacydb/keydb.c:788,1
    - Dst: db_InitComplete
      Src: /src/nss/lib/softoken/legacydb/keydb.c:790,1
    - Dst: dbopen
      Src: /src/nss/lib/softoken/legacydb/keydb.c:800,1
    - Dst: nsslowkey_NewHandle
      Src: /src/nss/lib/softoken/legacydb/keydb.c:808,1
    - Dst: DB*::close
      Src: /src/nss/lib/softoken/legacydb/keydb.c:810,1
    - Dst: nsslowkey_version
      Src: /src/nss/lib/softoken/legacydb/keydb.c:814,1
    - Dst: nsslowkey_CloseKeyDB
      Src: /src/nss/lib/softoken/legacydb/keydb.c:816,1
    - Dst: db_Copy
      Src: /src/nss/lib/softoken/legacydb/keydb.c:821,1
    - Dst: nsslowkey_CloseKeyDB
      Src: /src/nss/lib/softoken/legacydb/keydb.c:822,1
    - Dst: db_InitComplete
      Src: /src/nss/lib/softoken/legacydb/keydb.c:823,1
    - Dst: makeGlobalVersion
      Src: /src/nss/lib/softoken/legacydb/keydb.c:829,1
    - Dst: dbopen
      Src: /src/nss/lib/softoken/legacydb/keydb.c:839,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/keydb.c:840,1
    - Dst: nsslowkey_UpdateKeyDBPass1
      Src: /src/nss/lib/softoken/legacydb/keydb.c:849,1
    - Dst: makeGlobalSalt
      Src: /src/nss/lib/softoken/legacydb/keydb.c:858,1
    - Dst: keydb_Sync
      Src: /src/nss/lib/softoken/legacydb/keydb.c:865,1
    - Dst: db_InitComplete
      Src: /src/nss/lib/softoken/legacydb/keydb.c:873,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 72
    argCount: 6
    argNames:
    - appName
    - prefix
    - dbname
    - handle
    - namecb
    - cbarg
    argTypes:
    - char*
    - char*
    - char*
    - NSSLOWKEYDBHandle*
    - NSSLOWKEYDBNameFunc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 765
    functionDepth: 4
    functionLinenumber: 765
    functionLinenumberEnd: 875
    functionName: openNewDB
    functionSourceFile: /src/nss/lib/softoken/legacydb/keydb.c
    functionUses: 0
    functionsReached:
    - nsslowkey_CloseKeyDB
    - makeGlobalVersion
    - dbopen
    - makeGlobalSalt
    - db_Copy
    - PORT_Free
    - nsslowkey_version
    - rdbopen
    - keydb_Sync
    - DB*::close
    - nsslowkey_UpdateKeyDBPass1
    - db_InitComplete
    - nsslowkey_NewHandle
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus openNewDB(const char *appName, const char *prefix, const
      char *dbname,\n          NSSLOWKEYDBHandle *handle, NSSLOWKEYDBNameFunc namecb,
      void *cbarg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rdbopen
      Src: /src/nss/lib/softoken/legacydb/keydb.c:884,1
    - Dst: dbopen
      Src: /src/nss/lib/softoken/legacydb/keydb.c:886,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - appName
    - prefix
    - dbname
    - openflags
    argTypes:
    - char*
    - char*
    - char*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 877
    functionDepth: 2
    functionLinenumber: 877
    functionLinenumberEnd: 890
    functionName: openOldDB
    functionSourceFile: /src/nss/lib/softoken/legacydb/keydb.c
    functionUses: 0
    functionsReached:
    - rdbopen
    - dbopen
    linkageType: ''
    returnType: DB
    signature: "DB *\nopenOldDB(const char *appName, const char *prefix, const char
      *dbname,\n          PRBool openflags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nsslowkey_version
      Src: /src/nss/lib/softoken/legacydb/keydb.c:896,1
    - Dst: keydb_Close
      Src: /src/nss/lib/softoken/legacydb/keydb.c:901,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - handle
    argTypes:
    - NSSLOWKEYDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 893
    functionDepth: 2
    functionLinenumber: 893
    functionLinenumberEnd: 906
    functionName: verifyVersion
    functionSourceFile: /src/nss/lib/softoken/legacydb/keydb.c
    functionUses: 0
    functionsReached:
    - nsslowkey_version
    - keydb_Close
    linkageType: ''
    returnType: PRBool
    signature: PRBool verifyVersion(NSSLOWKEYDBHandle *handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/softoken/legacydb/keydb.c:912,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/keydb.c:914,1
    - Dst: PZ_NewLock
      Src: /src/nss/lib/softoken/legacydb/keydb.c:924,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - dbHandle
    argTypes:
    - DB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 927
      start: 908
    functionDepth: 1
    functionLinenumber: 908
    functionLinenumberEnd: 927
    functionName: nsslowkey_NewHandle
    functionSourceFile: /src/nss/lib/softoken/legacydb/keydb.c
    functionUses: 2
    functionsReached:
    - PORT_SetError
    - PORT_ZAlloc
    - PZ_NewLock
    linkageType: ''
    returnType: NSSLOWKEYDBHandle
    signature: 'NSSLOWKEYDBHandle *

      nsslowkey_NewHandle(DB *dbHandle)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: nsslowkey_NewHandle
      Src: /src/nss/lib/softoken/legacydb/keydb.c:938,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/softoken/legacydb/keydb.c:946,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/softoken/legacydb/keydb.c:947,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/softoken/legacydb/keydb.c:947,1
    - Dst: openOldDB
      Src: /src/nss/lib/softoken/legacydb/keydb.c:950,1
    - Dst: verifyVersion
      Src: /src/nss/lib/softoken/legacydb/keydb.c:952,1
    - Dst: openNewDB
      Src: /src/nss/lib/softoken/legacydb/keydb.c:964,1
    - Dst: openOldDB
      Src: /src/nss/lib/softoken/legacydb/keydb.c:969,1
    - Dst: verifyVersion
      Src: /src/nss/lib/softoken/legacydb/keydb.c:970,1
    - Dst: GetKeyDBGlobalSalt
      Src: /src/nss/lib/softoken/legacydb/keydb.c:979,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/keydb.c:981,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/keydb.c:987,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/keydb.c:988,1
    - Dst: nsslowkey_CloseKeyDB
      Src: /src/nss/lib/softoken/legacydb/keydb.c:989,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 49
    argCount: 5
    argNames:
    - readOnly
    - appName
    - prefix
    - namecb
    - cbarg
    argTypes:
    - PRBool
    - char*
    - char*
    - NSSLOWKEYDBNameFunc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 929
    functionDepth: 5
    functionLinenumber: 929
    functionLinenumberEnd: 991
    functionName: nsslowkey_OpenKeyDB
    functionSourceFile: /src/nss/lib/softoken/legacydb/keydb.c
    functionUses: 1
    functionsReached:
    - nsslowkey_CloseKeyDB
    - PORT_Free
    - openOldDB
    - verifyVersion
    - GetKeyDBGlobalSalt
    - PORT_SetError
    - nsslowkey_NewHandle
    - openNewDB
    - PORT_Strdup
    linkageType: ''
    returnType: NSSLOWKEYDBHandle
    signature: "NSSLOWKEYDBHandle *\nnsslowkey_OpenKeyDB(PRBool readOnly, const char
      *appName, const char *prefix,\n                    NSSLOWKEYDBNameFunc namecb,
      void *cbarg)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: keydb_Close
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1001,1
    - Dst: NSSLOWKEYDBHandle*::updatedb::close
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1004,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1007,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1009,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1011,1
    - Dst: SKIP_AFTER_FORK
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1014,1
    - Dst: PZ_DestroyLock
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1014,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1017,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - handle
    argTypes:
    - NSSLOWKEYDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 996
    functionDepth: 1
    functionLinenumber: 996
    functionLinenumberEnd: 1019
    functionName: nsslowkey_CloseKeyDB
    functionSourceFile: /src/nss/lib/softoken/legacydb/keydb.c
    functionUses: 5
    functionsReached:
    - SKIP_AFTER_FORK
    - PORT_Free
    - NSSLOWKEYDBHandle*::updatedb::close
    - PZ_DestroyLock
    - keydb_Close
    - SECITEM_FreeItem
    linkageType: ''
    returnType: void
    signature: void nsslowkey_CloseKeyDB(NSSLOWKEYDBHandle *handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1025,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - handle
    argTypes:
    - NSSLOWKEYDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 1022
    functionDepth: 0
    functionLinenumber: 1022
    functionLinenumberEnd: 1028
    functionName: nsslowkey_GetKeyDBVersion
    functionSourceFile: /src/nss/lib/softoken/legacydb/keydb.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: int
    signature: int nsslowkey_GetKeyDBVersion(NSSLOWKEYDBHandle *handle)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1040,1
    - Dst: keydb_Del
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1049,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1051,1
    - Dst: keydb_Sync
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1056,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1058,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - handle
    - pubkey
    argTypes:
    - NSSLOWKEYDBHandle*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1063
      start: 1033
    functionDepth: 1
    functionLinenumber: 1033
    functionLinenumberEnd: 1063
    functionName: nsslowkey_DeleteKey
    functionSourceFile: /src/nss/lib/softoken/legacydb/keydb.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    - keydb_Sync
    - keydb_Del
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus nsslowkey_DeleteKey(NSSLOWKEYDBHandle *handle, const SECItem
      *pubkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nsslowkey_StoreKeyByPublicKeyAlg
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1075,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - handle
    - privkey
    - pubKeyData
    - nickname
    - sdb
    argTypes:
    - NSSLOWKEYDBHandle*
    - NSSLOWKEYPrivateKey*
    - SECItem*
    - char*
    - SDB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 1068
    functionDepth: 1
    functionLinenumber: 1068
    functionLinenumberEnd: 1077
    functionName: nsslowkey_StoreKeyByPublicKey
    functionSourceFile: /src/nss/lib/softoken/legacydb/keydb.c
    functionUses: 2
    functionsReached:
    - nsslowkey_StoreKeyByPublicKeyAlg
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus nsslowkey_StoreKeyByPublicKey(NSSLOWKEYDBHandle *handle,\n
      \                             NSSLOWKEYPrivateKey *privkey,\n                              SECItem
      *pubKeyData,\n                              char *nickname,\n                              SDB
      *sdb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nsslowkey_StoreKeyByPublicKeyAlg
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1086,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - handle
    - privkey
    - pubKeyData
    - nickname
    - sdb
    argTypes:
    - NSSLOWKEYDBHandle*
    - NSSLOWKEYPrivateKey*
    - SECItem*
    - char*
    - SDB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1088
      start: 1079
    functionDepth: 1
    functionLinenumber: 1079
    functionLinenumberEnd: 1088
    functionName: nsslowkey_UpdateNickname
    functionSourceFile: /src/nss/lib/softoken/legacydb/keydb.c
    functionUses: 1
    functionsReached:
    - nsslowkey_StoreKeyByPublicKeyAlg
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus nsslowkey_UpdateNickname(NSSLOWKEYDBHandle *handle,\n                         NSSLOWKEYPrivateKey
      *privkey,\n                         SECItem *pubKeyData,\n                         char
      *nickname,\n                         SDB *sdb)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: keydb_Get
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - handle
    - id
    argTypes:
    - NSSLOWKEYDBHandle*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1107
      start: 1092
    functionDepth: 1
    functionLinenumber: 1092
    functionLinenumberEnd: 1107
    functionName: nsslowkey_KeyForIDExists
    functionSourceFile: /src/nss/lib/softoken/legacydb/keydb.c
    functionUses: 1
    functionsReached:
    - keydb_Get
    linkageType: ''
    returnType: PRBool
    signature: PRBool nsslowkey_KeyForIDExists(NSSLOWKEYDBHandle *handle, SECItem
      *id)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: nsslowcert_ExtractPublicKey
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1121,1
    - Dst: SHA1_HashBuf
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1151,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1153,1
    - Dst: keydb_Get
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1157,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1160,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1162,1
    - Dst: keydb_Get
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1166,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1167,1
    - Dst: lg_nsslowkey_DestroyPublicKey
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1170,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 46
    argCount: 2
    argNames:
    - handle
    - cert
    argTypes:
    - NSSLOWKEYDBHandle*
    - NSSLOWCERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1176
      start: 1112
    functionDepth: 1
    functionLinenumber: 1112
    functionLinenumberEnd: 1176
    functionName: nsslowkey_KeyForCertExists
    functionSourceFile: /src/nss/lib/softoken/legacydb/keydb.c
    functionUses: 2
    functionsReached:
    - PORT_Alloc
    - nsslowcert_ExtractPublicKey
    - PORT_Memcpy
    - PORT_Free
    - SHA1_HashBuf
    - keydb_Get
    - lg_nsslowkey_DestroyPublicKey
    linkageType: ''
    returnType: PRBool
    signature: PRBool nsslowkey_KeyForCertExists(NSSLOWKEYDBHandle *handle, NSSLOWCERTCertificate
      *cert)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1236,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1241,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1246,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1250,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1253,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 3
    argNames:
    - alg
    - salt
    - data
    argTypes:
    - SECOidTag
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 1206
    functionDepth: 0
    functionLinenumber: 1206
    functionLinenumberEnd: 1255
    functionName: nsslowkey_EncodePW
    functionSourceFile: /src/nss/lib/softoken/legacydb/keydb.c
    functionUses: 0
    functionsReached:
    - SECOID_SetAlgorithmID
    - PORT_FreeArena
    - SEC_ASN1EncodeItem
    - PORT_NewArena
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      nsslowkey_EncodePW(SECOidTag alg, const SECItem *salt, SECItem *data)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1269,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1274,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1279,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1280,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1288,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1292,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1293,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1298,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1303,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1307,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1310,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 3
    argNames:
    - derData
    - alg
    - salt
    argTypes:
    - SECItem*
    - SECOidTag*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1312
      start: 1257
    functionDepth: 0
    functionLinenumber: 1257
    functionLinenumberEnd: 1312
    functionName: nsslowkey_DecodePW
    functionSourceFile: /src/nss/lib/softoken/legacydb/keydb.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - SECITEM_DupItem
    - PORT_Memcpy
    - SECOID_GetAlgorithmTag
    - PORT_NewArena
    - PORT_FreeArena
    - PORT_Free
    - SECITEM_CopyItem
    - SEC_QuickDERDecodeItem
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      nsslowkey_DecodePW(const SECItem *derData, SECOidTag *alg, SECItem *salt)'
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: GetKeyDBGlobalSalt
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1334,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1343,1
    - Dst: get_dbkey
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1350,1
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1362,1
    - Dst: nsslowkey_EncodePW
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1367,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1371,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1377,1
    - Dst: sec_destroy_dbkey
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1380,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1383,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 53
    argCount: 2
    argNames:
    - handle
    - entry
    argTypes:
    - NSSLOWKEYDBHandle*
    - NSSLOWKEYPasswordEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1386
      start: 1317
    functionDepth: 2
    functionLinenumber: 1317
    functionLinenumberEnd: 1386
    functionName: nsslowkey_GetPWCheckEntry
    functionSourceFile: /src/nss/lib/softoken/legacydb/keydb.c
    functionUses: 0
    functionsReached:
    - PORT_Memcpy
    - get_dbkey
    - nsslowkey_EncodePW
    - GetKeyDBGlobalSalt
    - SECOID_FindOIDTag
    - sec_destroy_dbkey
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus nsslowkey_GetPWCheckEntry(NSSLOWKEYDBHandle *handle, NSSLOWKEYPasswordEntry
      *entry)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1412,1
    - Dst: nsslowkey_DecodePW
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1417,1
    - Dst: PORT_ArenaZNew
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1422,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1429,1
    - Dst: encodePWCheckEntry
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1434,1
    - Dst: put_dbkey
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1439,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1445,1
    - Dst: StoreKeyDBGlobalSalt
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1448,1
    - Dst: keydb_Sync
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1452,1
    - Dst: GetKeyDBGlobalSalt
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1457,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1461,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1464,1
    - Dst: PORT_Free
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1467,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 65
    argCount: 2
    argNames:
    - handle
    - entry
    argTypes:
    - NSSLOWKEYDBHandle*
    - NSSLOWKEYPasswordEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1470
      start: 1391
    functionDepth: 3
    functionLinenumber: 1391
    functionLinenumberEnd: 1470
    functionName: nsslowkey_PutPWCheckEntry
    functionSourceFile: /src/nss/lib/softoken/legacydb/keydb.c
    functionUses: 0
    functionsReached:
    - PORT_NewArena
    - nsslowkey_DecodePW
    - PORT_FreeArena
    - put_dbkey
    - keydb_Sync
    - PORT_Free
    - SECITEM_CopyItem
    - GetKeyDBGlobalSalt
    - PORT_ArenaZNew
    - encodePWCheckEntry
    - StoreKeyDBGlobalSalt
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus nsslowkey_PutPWCheckEntry(NSSLOWKEYDBHandle *handle, NSSLOWKEYPasswordEntry
      *entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - str1
    - ','
    - str2
    - ','
    - num
    - ','
    - sitem
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1480
      start: 1473
    functionDepth: 0
    functionLinenumber: 1473
    functionLinenumberEnd: 1480
    functionName: SEC_PRINT
    functionSourceFile: /src/nss/lib/softoken/legacydb/keydb.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SEC_PRINT(str1, str2, num, sitem)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1499,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1504,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1506,1
    - Dst: SEC_ASN1EncodeInteger
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1511,1
    - Dst: lg_prepare_low_rsa_priv_key_for_asn1
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1519,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1520,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1527,1
    - Dst: lg_prepare_low_dsa_priv_key_for_asn1
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1535,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1536,1
    - Dst: lg_prepare_low_pqg_params_for_asn1
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1543,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1544,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1551,1
    - Dst: lg_prepare_low_dh_priv_key_for_asn1
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1559,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1560,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1567,1
    - Dst: lg_prepare_low_ec_priv_key_for_asn1
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1574,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1586,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1599,1
    - Dst: SEC_PRINT
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1608,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1615,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1620,1
    - Dst: SEC_PRINT
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1623,1
    - Dst: lg_util_encrypt
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1631,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1636,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1641,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 108
    argCount: 4
    argNames:
    - permarena
    - pk
    - sdbpw
    - result
    argTypes:
    - PLArenaPool*
    - NSSLOWKEYPrivateKey*
    - SDB*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1644
      start: 1484
    functionDepth: 1
    functionLinenumber: 1484
    functionLinenumberEnd: 1644
    functionName: seckey_encrypt_private_key
    functionSourceFile: /src/nss/lib/softoken/legacydb/keydb.c
    functionUses: 0
    functionsReached:
    - lg_prepare_low_dsa_priv_key_for_asn1
    - PORT_Assert
    - SEC_ASN1EncodeItem
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - PORT_FreeArena
    - lg_util_encrypt
    - lg_prepare_low_ec_priv_key_for_asn1
    - lg_prepare_low_dh_priv_key_for_asn1
    - SECITEM_CopyItem
    - SECOID_SetAlgorithmID
    - SEC_ASN1EncodeInteger
    - lg_prepare_low_rsa_priv_key_for_asn1
    - lg_prepare_low_pqg_params_for_asn1
    - SEC_PRINT
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus seckey_encrypt_private_key(PLArenaPool *permarena, NSSLOWKEYPrivateKey
      *pk,\n                           SDB *sdbpw, SECItem *result)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1658,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1662,1
    - Dst: seckey_encrypt_private_key
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1668,1
    - Dst: put_dbkey
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1672,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1677,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 6
    argNames:
    - keydb
    - index
    - sdbpw
    - pk
    - nickname
    - update
    argTypes:
    - NSSLOWKEYDBHandle*
    - DBT*
    - SDB*
    - NSSLOWKEYPrivateKey*
    - char*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1680
      start: 1646
    functionDepth: 3
    functionLinenumber: 1646
    functionLinenumberEnd: 1680
    functionName: seckey_put_private_key
    functionSourceFile: /src/nss/lib/softoken/legacydb/keydb.c
    functionUses: 0
    functionsReached:
    - seckey_encrypt_private_key
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - PORT_FreeArena
    - put_dbkey
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus seckey_put_private_key(NSSLOWKEYDBHandle *keydb, DBT *index,
      SDB *sdbpw,\n                       NSSLOWKEYPrivateKey *pk, char *nickname,
      PRBool update)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1698,1
    - Dst: seckey_put_private_key
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1707,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 6
    argNames:
    - handle
    - privkey
    - pubKeyData
    - nickname
    - sdbpw
    - update
    argTypes:
    - NSSLOWKEYDBHandle*
    - NSSLOWKEYPrivateKey*
    - SECItem*
    - char*
    - SDB*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1711
      start: 1686
    functionDepth: 4
    functionLinenumber: 1686
    functionLinenumberEnd: 1711
    functionName: nsslowkey_StoreKeyByPublicKeyAlg
    functionSourceFile: /src/nss/lib/softoken/legacydb/keydb.c
    functionUses: 3
    functionsReached:
    - PORT_SetError
    - seckey_put_private_key
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus nsslowkey_StoreKeyByPublicKeyAlg(NSSLOWKEYDBHandle *handle,\n
      \                                NSSLOWKEYPrivateKey *privkey,\n                                 SECItem
      *pubKeyData,\n                                 char *nickname,\n                                 SDB
      *sdbpw,\n                                 PRBool update)"
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1729,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1730,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1735,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1739,1
    - Dst: lg_util_decrypt
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1747,1
    - Dst: SEC_PRINT
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1756,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1759,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1762,1
    - Dst: lg_prepare_low_rsa_priv_key_for_asn1
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1766,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1767,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1770,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1780,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1798,1
    - Dst: lg_prepare_low_dsa_priv_key_for_asn1
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1805,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1806,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1809,1
    - Dst: lg_prepare_low_pqg_params_for_asn1
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1814,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1815,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1818,1
    - Dst: lg_prepare_low_dh_priv_key_for_asn1
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1824,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1825,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1828,1
    - Dst: lg_prepare_low_ec_priv_key_for_asn1
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1834,1
    - Dst: SEC_PRINT
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1838,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1841,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1844,1
    - Dst: lg_prepare_low_ecparams_for_asn1
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1850,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1852,1
    - Dst: LGEC_FillParams
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1860,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1875,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1876,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1884,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1886,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1890,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 114
    argCount: 2
    argNames:
    - epki
    - sdbpw
    argTypes:
    - SECItem*
    - SDB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1895
      start: 1713
    functionDepth: 2
    functionLinenumber: 1713
    functionLinenumberEnd: 1895
    functionName: seckey_decrypt_private_key
    functionSourceFile: /src/nss/lib/softoken/legacydb/keydb.c
    functionUses: 0
    functionsReached:
    - lg_prepare_low_dsa_priv_key_for_asn1
    - lg_prepare_low_ecparams_for_asn1
    - SEC_PRINT
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - SECOID_GetAlgorithmTag
    - PORT_FreeArena
    - PORT_GetError
    - lg_prepare_low_ec_priv_key_for_asn1
    - lg_prepare_low_dh_priv_key_for_asn1
    - SECITEM_CopyItem
    - SEC_QuickDERDecodeItem
    - PORT_SetError
    - LGEC_FillParams
    - lg_prepare_low_rsa_priv_key_for_asn1
    - lg_prepare_low_pqg_params_for_asn1
    - lg_util_decrypt
    - SECITEM_ZfreeItem
    linkageType: ''
    returnType: NSSLOWKEYPrivateKey
    signature: "NSSLOWKEYPrivateKey *\nseckey_decrypt_private_key(SECItem *epki,\n
      \                          SDB *sdbpw)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: seckey_decrypt_private_key
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1904,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - dbkey
    - sdbpw
    argTypes:
    - NSSLOWKEYDBKey*
    - SDB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1905
      start: 1897
    functionDepth: 3
    functionLinenumber: 1897
    functionLinenumberEnd: 1905
    functionName: seckey_decode_encrypted_private_key
    functionSourceFile: /src/nss/lib/softoken/legacydb/keydb.c
    functionUses: 0
    functionsReached:
    - seckey_decrypt_private_key
    linkageType: ''
    returnType: NSSLOWKEYPrivateKey
    signature: 'NSSLOWKEYPrivateKey *

      seckey_decode_encrypted_private_key(NSSLOWKEYDBKey *dbkey, SDB *sdbpw)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_dbkey
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1918,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1925,1
    - Dst: seckey_decode_encrypted_private_key
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1931,1
    - Dst: sec_destroy_dbkey
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1937,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 4
    argNames:
    - keydb
    - index
    - nickname
    - sdbpw
    argTypes:
    - NSSLOWKEYDBHandle*
    - DBT*
    - char**
    - SDB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1941
      start: 1907
    functionDepth: 4
    functionLinenumber: 1907
    functionLinenumberEnd: 1941
    functionName: seckey_get_private_key
    functionSourceFile: /src/nss/lib/softoken/legacydb/keydb.c
    functionUses: 0
    functionsReached:
    - get_dbkey
    - seckey_decode_encrypted_private_key
    - sec_destroy_dbkey
    - PORT_Strdup
    linkageType: ''
    returnType: NSSLOWKEYPrivateKey
    signature: "NSSLOWKEYPrivateKey *\nseckey_get_private_key(NSSLOWKEYDBHandle *keydb,
      DBT *index, char **nickname,\n                       SDB *sdbpw)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1958,1
    - Dst: seckey_get_private_key
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1966,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - handle
    - modulus
    - sdbpw
    argTypes:
    - NSSLOWKEYDBHandle*
    - SECItem*
    - SDB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1972
      start: 1950
    functionDepth: 5
    functionLinenumber: 1950
    functionLinenumberEnd: 1972
    functionName: nsslowkey_FindKeyByPublicKey
    functionSourceFile: /src/nss/lib/softoken/legacydb/keydb.c
    functionUses: 5
    functionsReached:
    - PORT_SetError
    - seckey_get_private_key
    linkageType: ''
    returnType: NSSLOWKEYPrivateKey
    signature: "NSSLOWKEYPrivateKey *\nnsslowkey_FindKeyByPublicKey(NSSLOWKEYDBHandle
      *handle, SECItem *modulus,\n                             SDB *sdbpw)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1983,1
    - Dst: seckey_get_private_key
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1991,1
    - Dst: lg_nsslowkey_DestroyPrivateKey
      Src: /src/nss/lib/softoken/legacydb/keydb.c:1993,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - handle
    - modulus
    - sdbpw
    argTypes:
    - NSSLOWKEYDBHandle*
    - SECItem*
    - SDB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2000
      start: 1974
    functionDepth: 5
    functionLinenumber: 1974
    functionLinenumberEnd: 2000
    functionName: nsslowkey_FindKeyNicknameByPublicKey
    functionSourceFile: /src/nss/lib/softoken/legacydb/keydb.c
    functionUses: 1
    functionsReached:
    - PORT_SetError
    - lg_nsslowkey_DestroyPrivateKey
    - seckey_get_private_key
    linkageType: ''
    returnType: char
    signature: "char *\nnsslowkey_FindKeyNicknameByPublicKey(NSSLOWKEYDBHandle *handle,\n
      \                                    SECItem *modulus, SDB *sdbpw)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/lib/softoken/legacydb/keydb.c:2009,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/keydb.c:2016,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/softoken/legacydb/keydb.c:2018,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/keydb.c:2028,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/keydb.c:2030,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - arena
    - entry
    - alg
    - encCheck
    argTypes:
    - PLArenaPool*
    - SECItem*
    - SECOidTag
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2034
      start: 2003
    functionDepth: 0
    functionLinenumber: 2003
    functionLinenumberEnd: 2034
    functionName: encodePWCheckEntry
    functionSourceFile: /src/nss/lib/softoken/legacydb/keydb.c
    functionUses: 2
    functionsReached:
    - PORT_Alloc
    - PORT_ArenaAlloc
    - PORT_Memcpy
    - SECOID_FindOIDByTag
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus encodePWCheckEntry(PLArenaPool *arena, SECItem *entry, SECOidTag
      alg,\n                   SECItem *encCheck)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: keydb_Close
      Src: /src/nss/lib/softoken/legacydb/keydb.c:2059,1
    - Dst: rdbopen
      Src: /src/nss/lib/softoken/legacydb/keydb.c:2062,1
    - Dst: dbopen
      Src: /src/nss/lib/softoken/legacydb/keydb.c:2064,1
    - Dst: makeGlobalVersion
      Src: /src/nss/lib/softoken/legacydb/keydb.c:2071,1
    - Dst: StoreKeyDBGlobalSalt
      Src: /src/nss/lib/softoken/legacydb/keydb.c:2078,1
    - Dst: makeGlobalSalt
      Src: /src/nss/lib/softoken/legacydb/keydb.c:2080,1
    - Dst: GetKeyDBGlobalSalt
      Src: /src/nss/lib/softoken/legacydb/keydb.c:2082,1
    - Dst: keydb_Sync
      Src: /src/nss/lib/softoken/legacydb/keydb.c:2091,1
    - Dst: db_InitComplete
      Src: /src/nss/lib/softoken/legacydb/keydb.c:2092,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 1
    argNames:
    - handle
    argTypes:
    - NSSLOWKEYDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2095
      start: 2040
    functionDepth: 2
    functionLinenumber: 2040
    functionLinenumberEnd: 2095
    functionName: nsslowkey_ResetKeyDB
    functionSourceFile: /src/nss/lib/softoken/legacydb/keydb.c
    functionUses: 0
    functionsReached:
    - makeGlobalVersion
    - makeGlobalSalt
    - dbopen
    - keydb_Sync
    - rdbopen
    - db_InitComplete
    - GetKeyDBGlobalSalt
    - keydb_Close
    - StoreKeyDBGlobalSalt
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus nsslowkey_ResetKeyDB(NSSLOWKEYDBHandle *handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/legacydb/keydb.c:2104,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/legacydb/keydb.c:2105,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/legacydb/keydb.c:2109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - kdb
    - key
    - data
    - flags
    argTypes:
    - NSSLOWKEYDBHandle*
    - DBT*
    - DBT*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2112
      start: 2097
    functionDepth: 1
    functionLinenumber: 2097
    functionLinenumberEnd: 2112
    functionName: keydb_Get
    functionSourceFile: /src/nss/lib/softoken/legacydb/keydb.c
    functionUses: 6
    functionsReached:
    - PORT_Assert
    - PZ_Lock
    - PZ_Unlock
    linkageType: ''
    returnType: int
    signature: int keydb_Get(NSSLOWKEYDBHandle *kdb, DBT *key, DBT *data, unsigned
      int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/legacydb/keydb.c:2121,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/legacydb/keydb.c:2122,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/legacydb/keydb.c:2126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - kdb
    - key
    - data
    - flags
    argTypes:
    - NSSLOWKEYDBHandle*
    - DBT*
    - DBT*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2129
      start: 2114
    functionDepth: 1
    functionLinenumber: 2114
    functionLinenumberEnd: 2129
    functionName: keydb_Put
    functionSourceFile: /src/nss/lib/softoken/legacydb/keydb.c
    functionUses: 5
    functionsReached:
    - PORT_Assert
    - PZ_Lock
    - PZ_Unlock
    linkageType: ''
    returnType: int
    signature: int keydb_Put(NSSLOWKEYDBHandle *kdb, DBT *key, DBT *data, unsigned
      int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/legacydb/keydb.c:2138,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/legacydb/keydb.c:2139,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/legacydb/keydb.c:2143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - kdb
    - flags
    argTypes:
    - NSSLOWKEYDBHandle*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2146
      start: 2131
    functionDepth: 1
    functionLinenumber: 2131
    functionLinenumberEnd: 2146
    functionName: keydb_Sync
    functionSourceFile: /src/nss/lib/softoken/legacydb/keydb.c
    functionUses: 6
    functionsReached:
    - PORT_Assert
    - PZ_Lock
    - PZ_Unlock
    linkageType: ''
    returnType: int
    signature: int keydb_Sync(NSSLOWKEYDBHandle *kdb, unsigned int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/legacydb/keydb.c:2155,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/legacydb/keydb.c:2156,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/legacydb/keydb.c:2160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - kdb
    - key
    - flags
    argTypes:
    - NSSLOWKEYDBHandle*
    - DBT*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2163
      start: 2148
    functionDepth: 1
    functionLinenumber: 2148
    functionLinenumberEnd: 2163
    functionName: keydb_Del
    functionSourceFile: /src/nss/lib/softoken/legacydb/keydb.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - PZ_Lock
    - PZ_Unlock
    linkageType: ''
    returnType: int
    signature: int keydb_Del(NSSLOWKEYDBHandle *kdb, DBT *key, unsigned int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/legacydb/keydb.c:2172,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/legacydb/keydb.c:2173,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/legacydb/keydb.c:2177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - kdb
    - key
    - data
    - flags
    argTypes:
    - NSSLOWKEYDBHandle*
    - DBT*
    - DBT*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2180
      start: 2165
    functionDepth: 1
    functionLinenumber: 2165
    functionLinenumberEnd: 2180
    functionName: keydb_Seq
    functionSourceFile: /src/nss/lib/softoken/legacydb/keydb.c
    functionUses: 3
    functionsReached:
    - PORT_Assert
    - PZ_Lock
    - PZ_Unlock
    linkageType: ''
    returnType: int
    signature: int keydb_Seq(NSSLOWKEYDBHandle *kdb, DBT *key, DBT *data, unsigned
      int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/legacydb/keydb.c:2188,1
    - Dst: SKIP_AFTER_FORK
      Src: /src/nss/lib/softoken/legacydb/keydb.c:2189,1
    - Dst: PZ_Lock
      Src: /src/nss/lib/softoken/legacydb/keydb.c:2189,1
    - Dst: SKIP_AFTER_FORK
      Src: /src/nss/lib/softoken/legacydb/keydb.c:2193,1
    - Dst: PZ_Unlock
      Src: /src/nss/lib/softoken/legacydb/keydb.c:2193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - kdb
    argTypes:
    - NSSLOWKEYDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2196
      start: 2182
    functionDepth: 1
    functionLinenumber: 2182
    functionLinenumberEnd: 2196
    functionName: keydb_Close
    functionSourceFile: /src/nss/lib/softoken/legacydb/keydb.c
    functionUses: 3
    functionsReached:
    - PORT_Assert
    - SKIP_AFTER_FORK
    - PZ_Lock
    - PZ_Unlock
    linkageType: ''
    returnType: void
    signature: void keydb_Close(NSSLOWKEYDBHandle *kdb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lg_getKeyDB
      Src: /src/nss/lib/softoken/legacydb/keydb.c:2209,1
    - Dst: PORT_Strcmp
      Src: /src/nss/lib/softoken/legacydb/keydb.c:2213,1
    - Dst: nsslowkey_GetPWCheckEntry
      Src: /src/nss/lib/softoken/legacydb/keydb.c:2217,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/keydb.c:2222,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/keydb.c:2224,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - sdb
    - id
    - item1
    - item2
    argTypes:
    - SDB*
    - char*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2226
      start: 2202
    functionDepth: 3
    functionLinenumber: 2202
    functionLinenumberEnd: 2226
    functionName: lg_GetMetaData
    functionSourceFile: /src/nss/lib/softoken/legacydb/keydb.c
    functionUses: 0
    functionsReached:
    - nsslowkey_GetPWCheckEntry
    - PORT_Strcmp
    - lg_getKeyDB
    - PORT_Memcpy
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV lg_GetMetaData(SDB *sdb, const char *id, SECItem *item1, SECItem
      *item2)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lg_getKeyDB
      Src: /src/nss/lib/softoken/legacydb/keydb.c:2236,1
    - Dst: PORT_Strcmp
      Src: /src/nss/lib/softoken/legacydb/keydb.c:2240,1
    - Dst: nsslowkey_PutPWCheckEntry
      Src: /src/nss/lib/softoken/legacydb/keydb.c:2246,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - sdb
    - id
    - item1
    - item2
    argTypes:
    - SDB*
    - char*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2251
      start: 2228
    functionDepth: 4
    functionLinenumber: 2228
    functionLinenumberEnd: 2251
    functionName: lg_PutMetaData
    functionSourceFile: /src/nss/lib/softoken/legacydb/keydb.c
    functionUses: 0
    functionsReached:
    - nsslowkey_PutPWCheckEntry
    - PORT_Strcmp
    - lg_getKeyDB
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV lg_PutMetaData(SDB *sdb, const char *id,\n               const
      SECItem *item1, const SECItem *item2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - db
    - id
    argTypes:
    - SDB*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2257
      start: 2253
    functionDepth: 0
    functionLinenumber: 2253
    functionLinenumberEnd: 2257
    functionName: lg_DestroyMetaData
    functionSourceFile: /src/nss/lib/softoken/legacydb/keydb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV lg_DestroyMetaData(SDB *db, const char *id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lg_getKeyDB
      Src: /src/nss/lib/softoken/legacydb/keydb.c:2265,1
    - Dst: nsslowkey_ResetKeyDB
      Src: /src/nss/lib/softoken/legacydb/keydb.c:2269,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - sdb
    argTypes:
    - SDB*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2274
      start: 2259
    functionDepth: 3
    functionLinenumber: 2259
    functionLinenumberEnd: 2274
    functionName: lg_Reset
    functionSourceFile: /src/nss/lib/softoken/legacydb/keydb.c
    functionUses: 0
    functionsReached:
    - lg_getKeyDB
    - nsslowkey_ResetKeyDB
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV lg_Reset(SDB *sdb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pubk
    argTypes:
    - NSSLOWKEYPublicKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 59
    functionName: prepare_low_rsa_pub_key_for_asn1
    functionSourceFile: /src/nss/lib/softoken/legacydb/lowcert.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void prepare_low_rsa_pub_key_for_asn1(NSSLOWKEYPublicKey *pubk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pubk
    argTypes:
    - NSSLOWKEYPublicKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 68
    functionName: prepare_low_dsa_pub_key_for_asn1
    functionSourceFile: /src/nss/lib/softoken/legacydb/lowcert.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void prepare_low_dsa_pub_key_for_asn1(NSSLOWKEYPublicKey *pubk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pubk
    argTypes:
    - NSSLOWKEYPublicKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: prepare_low_dh_pub_key_for_asn1
    functionSourceFile: /src/nss/lib/softoken/legacydb/lowcert.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void prepare_low_dh_pub_key_for_asn1(NSSLOWKEYPublicKey *pubk)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 5
    argNames:
    - buf
    - length
    - data_length
    - includeTag
    - rettag
    argTypes:
    - unsigned char*
    - unsigned int
    - unsigned int*
    - PRBool
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 129
    functionName: nsslowcert_dataStart
    functionSourceFile: /src/nss/lib/softoken/legacydb/lowcert.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: "unsigned char *\nnsslowcert_dataStart(unsigned char *buf, unsigned
      int length,\n                     unsigned int *data_length, PRBool includeTag,\n
      \                    unsigned char *rettag)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:144,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - item
    - tagtype
    argTypes:
    - SECItem*
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 147
    functionName: SetTimeType
    functionSourceFile: /src/nss/lib/softoken/legacydb/lowcert.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: void
    signature: void SetTimeType(SECItem *item, unsigned char tagtype)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nsslowcert_dataStart
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:154,1
    - Dst: SetTimeType
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:158,1
    - Dst: nsslowcert_dataStart
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:161,1
    - Dst: SetTimeType
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - buf
    - buf_length
    - notBefore
    - notAfter
    argTypes:
    - unsigned char*
    - int
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 167
    functionName: nsslowcert_GetValidityFields
    functionSourceFile: /src/nss/lib/softoken/legacydb/lowcert.c
    functionUses: 0
    functionsReached:
    - SetTimeType
    - nsslowcert_dataStart
    linkageType: ''
    returnType: int
    signature: "int nsslowcert_GetValidityFields(unsigned char *buf, int buf_length,\n
      \                            SECItem *notBefore, SECItem *notAfter)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: nsslowcert_dataStart
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:180,1
    - Dst: nsslowcert_dataStart
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:184,1
    - Dst: nsslowcert_dataStart
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:189,1
    - Dst: nsslowcert_dataStart
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:197,1
    - Dst: nsslowcert_dataStart
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:202,1
    - Dst: nsslowcert_dataStart
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:208,1
    - Dst: nsslowcert_dataStart
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:214,1
    - Dst: nsslowcert_dataStart
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:225,1
    - Dst: nsslowcert_dataStart
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:231,1
    - Dst: nsslowcert_dataStart
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:237,1
    - Dst: nsslowcert_dataStart
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:248,1
    - Dst: nsslowcert_dataStart
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:258,1
    - Dst: nsslowcert_dataStart
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:266,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 72
    argCount: 9
    argNames:
    - cert
    - cert_length
    - issuer
    - serial
    - derSN
    - subject
    - valid
    - subjkey
    - extensions
    argTypes:
    - unsigned char*
    - int
    - SECItem*
    - SECItem*
    - SECItem*
    - SECItem*
    - SECItem*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 273
    functionName: nsslowcert_GetCertFields
    functionSourceFile: /src/nss/lib/softoken/legacydb/lowcert.c
    functionUses: 0
    functionsReached:
    - nsslowcert_dataStart
    linkageType: ''
    returnType: int
    signature: "int nsslowcert_GetCertFields(unsigned char *cert, int cert_length,\n
      \                        SECItem *issuer, SECItem *serial, SECItem *derSN, SECItem
      *subject,\n                         SECItem *valid, SECItem *subjkey, SECItem
      *extensions)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nsslowcert_GetValidityFields
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:281,1
    - Dst: DER_DecodeTimeChoice
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:288,1
    - Dst: DER_DecodeTimeChoice
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:294,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - c
    - notBefore
    - notAfter
    argTypes:
    - NSSLOWCERTCertificate*
    - PRTime*
    - PRTime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 275
    functionDepth: 2
    functionLinenumber: 275
    functionLinenumberEnd: 300
    functionName: nsslowcert_GetCertTimes
    functionSourceFile: /src/nss/lib/softoken/legacydb/lowcert.c
    functionUses: 0
    functionsReached:
    - DER_DecodeTimeChoice
    - nsslowcert_GetValidityFields
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus nsslowcert_GetCertTimes(NSSLOWCERTCertificate *c, PRTime
      *notBefore, PRTime *notAfter)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: nsslowcert_GetCertTimes
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:312,1
    - Dst: nsslowcert_GetCertTimes
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:317,1
    - Dst: LL_CMP
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:323,1
    - Dst: LL_CMP
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:328,1
    - Dst: PR_Now
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:341,1
    - Dst: LL_CMP
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:346,1
    - Dst: LL_CMP
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:353,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 2
    argNames:
    - certa
    - certb
    argTypes:
    - NSSLOWCERTCertificate*
    - NSSLOWCERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 305
    functionDepth: 3
    functionLinenumber: 305
    functionLinenumberEnd: 358
    functionName: nsslowcert_IsNewer
    functionSourceFile: /src/nss/lib/softoken/legacydb/lowcert.c
    functionUses: 1
    functionsReached:
    - LL_CMP
    - nsslowcert_GetCertTimes
    - PR_Now
    linkageType: ''
    returnType: PRBool
    signature: PRBool nsslowcert_IsNewer(NSSLOWCERTCertificate *certa, NSSLOWCERTCertificate
      *certb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:369,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:373,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:376,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:383,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:386,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - arena
    - issuer
    - sn
    - key
    argTypes:
    - PLArenaPool*
    - SECItem*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 392
    functionName: nsslowcert_KeyFromIssuerAndSN
    functionSourceFile: /src/nss/lib/softoken/legacydb/lowcert.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PORT_Memcpy
    - PORT_ArenaAlloc
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus nsslowcert_KeyFromIssuerAndSN(PLArenaPool *arena,\n                              SECItem
      *issuer, SECItem *sn, SECItem *key)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pkcs11_allocStaticData
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:400,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:407,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:410,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - space
    - spaceLen
    - issuer
    - sn
    - key
    argTypes:
    - unsigned char*
    - int
    - SECItem*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 416
    functionName: nsslowcert_KeyFromIssuerAndSNStatic
    functionSourceFile: /src/nss/lib/softoken/legacydb/lowcert.c
    functionUses: 0
    functionsReached:
    - PORT_Memcpy
    - pkcs11_allocStaticData
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus nsslowcert_KeyFromIssuerAndSNStatic(unsigned char *space,\n
      \                                   int spaceLen, SECItem *issuer, SECItem *sn,
      SECItem *key)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: nsslowcert_dataStart
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:425,1
    - Dst: nsslowcert_dataStart
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:435,1
    - Dst: nsslowcert_dataStart
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:453,1
    - Dst: nsslowcert_dataStart
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:460,1
    - Dst: nsslowcert_dataStart
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:468,1
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:478,1
    - Dst: pkcs11_copyStaticData
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:484,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 3
    argNames:
    - derDN
    - space
    - len
    argTypes:
    - SECItem*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 418
    functionDepth: 2
    functionLinenumber: 418
    functionLinenumberEnd: 494
    functionName: nsslowcert_EmailName
    functionSourceFile: /src/nss/lib/softoken/legacydb/lowcert.c
    functionUses: 0
    functionsReached:
    - SECOID_FindOIDTag
    - pkcs11_copyStaticData
    - nsslowcert_dataStart
    linkageType: ''
    returnType: char
    signature: 'char *

      nsslowcert_EmailName(SECItem *derDN, char *space, unsigned int len)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: nsslowcert_dataStart
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:504,1
    - Dst: nsslowcert_dataStart
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:517,1
    - Dst: nsslowcert_dataStart
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:525,1
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:533,1
    - Dst: nsslowcert_dataStart
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:544,1
    - Dst: nsslowcert_dataStart
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:554,1
    - Dst: nsslowcert_dataStart
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:561,1
    - Dst: nsslowcert_dataStart
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:568,1
    - Dst: nsslowcert_EmailName
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:579,1
    - Dst: pkcs11_copyStaticData
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:586,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 62
    argCount: 3
    argNames:
    - cert
    - space
    - len
    argTypes:
    - NSSLOWCERTCertificate*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 496
    functionDepth: 3
    functionLinenumber: 496
    functionLinenumberEnd: 599
    functionName: nsslowcert_EmailAltName
    functionSourceFile: /src/nss/lib/softoken/legacydb/lowcert.c
    functionUses: 0
    functionsReached:
    - SECOID_FindOIDTag
    - pkcs11_copyStaticData
    - nsslowcert_EmailName
    - nsslowcert_dataStart
    linkageType: ''
    returnType: char
    signature: "char *\nnsslowcert_EmailAltName(NSSLOWCERTCertificate *cert, char
      *space,\n                        unsigned int len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nsslowcert_EmailName
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:607,1
    - Dst: nsslowcert_EmailAltName
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:611,1
    - Dst: tolower
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:618,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - cert
    argTypes:
    - NSSLOWCERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 601
    functionDepth: 4
    functionLinenumber: 601
    functionLinenumberEnd: 622
    functionName: nsslowcert_GetCertificateEmailAddress
    functionSourceFile: /src/nss/lib/softoken/legacydb/lowcert.c
    functionUses: 0
    functionsReached:
    - tolower
    - nsslowcert_EmailAltName
    - nsslowcert_EmailName
    linkageType: ''
    returnType: char
    signature: 'char *

      nsslowcert_GetCertificateEmailAddress(NSSLOWCERTCertificate *cert)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: nsslowcert_CreateCert
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:634,1
    - Dst: nsslowcert_GetCertFields
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:647,1
    - Dst: nsslowcert_KeyFromIssuerAndSNStatic
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:663,1
    - Dst: pkcs11_copyNickname
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:675,1
    - Dst: cert_GetKeyID
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:681,1
    - Dst: nsslowcert_GetCertificateEmailAddress
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:688,1
    - Dst: nsslowcert_DestroyCertificate
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:696,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 2
    argNames:
    - derSignedCert
    - nickname
    argTypes:
    - SECItem*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 627
    functionDepth: 11
    functionLinenumber: 627
    functionLinenumberEnd: 700
    functionName: nsslowcert_DecodeDERCertificate
    functionSourceFile: /src/nss/lib/softoken/legacydb/lowcert.c
    functionUses: 5
    functionsReached:
    - pkcs11_copyNickname
    - nsslowcert_KeyFromIssuerAndSNStatic
    - nsslowcert_GetCertFields
    - nsslowcert_CreateCert
    - nsslowcert_DestroyCertificate
    - nsslowcert_GetCertificateEmailAddress
    - cert_GetKeyID
    linkageType: ''
    returnType: NSSLOWCERTCertificate
    signature: 'NSSLOWCERTCertificate *

      nsslowcert_DecodeDERCertificate(SECItem *derSignedCert, char *nickname)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Strdup
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:713,1
    - Dst: tolower
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:720,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - emailAddr
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 702
    functionDepth: 0
    functionLinenumber: 702
    functionLinenumberEnd: 725
    functionName: nsslowcert_FixupEmailAddr
    functionSourceFile: /src/nss/lib/softoken/legacydb/lowcert.c
    functionUses: 2
    functionsReached:
    - PORT_Strdup
    - tolower
    linkageType: ''
    returnType: char
    signature: 'char *

      nsslowcert_FixupEmailAddr(char *emailAddr)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:737,1
    - Dst: nsslowcert_GetCertFields
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:739,1
    - Dst: nsslowcert_KeyFromIssuerAndSN
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:747,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - arena
    - derCert
    - key
    argTypes:
    - PLArenaPool*
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 731
    functionDepth: 2
    functionLinenumber: 731
    functionLinenumberEnd: 751
    functionName: nsslowcert_KeyFromDERCert
    functionSourceFile: /src/nss/lib/softoken/legacydb/lowcert.c
    functionUses: 3
    functionsReached:
    - PORT_Memset
    - nsslowcert_GetCertFields
    - nsslowcert_KeyFromIssuerAndSN
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus nsslowcert_KeyFromDERCert(PLArenaPool *arena, SECItem *derCert,
      SECItem *key)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:764,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:769,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:771,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:776,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:780,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:782,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:787,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:790,1
    - Dst: DER_ConvertBitString
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:796,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:798,1
    - Dst: prepare_low_rsa_pub_key_for_asn1
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:804,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:805,1
    - Dst: prepare_low_dsa_pub_key_for_asn1
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:812,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:813,1
    - Dst: prepare_low_dh_pub_key_for_asn1
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:820,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:821,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:831,1
    - Dst: LGEC_FillParams
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:839,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:843,1
    - Dst: lg_nsslowkey_DestroyPublicKey
      Src: /src/nss/lib/softoken/legacydb/lowcert.c:852,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 65
    argCount: 1
    argNames:
    - cert
    argTypes:
    - NSSLOWCERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 753
    functionDepth: 2
    functionLinenumber: 753
    functionLinenumberEnd: 854
    functionName: nsslowcert_ExtractPublicKey
    functionSourceFile: /src/nss/lib/softoken/legacydb/lowcert.c
    functionUses: 2
    functionsReached:
    - DER_ConvertBitString
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - SECOID_GetAlgorithmTag
    - PORT_FreeArena
    - prepare_low_rsa_pub_key_for_asn1
    - prepare_low_dh_pub_key_for_asn1
    - SECITEM_CopyItem
    - SEC_QuickDERDecodeItem
    - prepare_low_dsa_pub_key_for_asn1
    - LGEC_FillParams
    - PORT_Memset
    - lg_nsslowkey_DestroyPublicKey
    linkageType: ''
    returnType: NSSLOWKEYPublicKey
    signature: 'NSSLOWKEYPublicKey *

      nsslowcert_ExtractPublicKey(NSSLOWCERTCertificate *cert)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOID
      Src: /src/nss/lib/pkcs7/p7common.c:25,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - cinfo
    argTypes:
    - SEC_PKCS7ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 31
    functionName: SEC_PKCS7ContentType
    functionSourceFile: /src/nss/lib/pkcs7/p7common.c
    functionUses: 3
    functionsReached:
    - SECOID_FindOID
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag SEC_PKCS7ContentType(SEC_PKCS7ContentInfo *cinfo)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7common.c:45,1
    - Dst: SEC_PKCS7ContentType
      Src: /src/nss/lib/pkcs7/p7common.c:58,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pkcs7/p7common.c:88,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/pkcs7/p7common.c:100,1
    - Dst: CERT_DestroyCertificateList
      Src: /src/nss/lib/pkcs7/p7common.c:108,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/pkcs7/p7common.c:117,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/pkcs7/p7common.c:126,1
    - Dst: CERT_DestroyCertificateList
      Src: /src/nss/lib/pkcs7/p7common.c:128,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pkcs7/p7common.c:133,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 71
    argCount: 1
    argNames:
    - cinfo
    argTypes:
    - SEC_PKCS7ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 36
    functionDepth: 8
    functionLinenumber: 36
    functionLinenumberEnd: 135
    functionName: SEC_PKCS7DestroyContentInfo
    functionSourceFile: /src/nss/lib/pkcs7/p7common.c
    functionUses: 24
    functionsReached:
    - PORT_Assert
    - SEC_PKCS7ContentType
    - PORT_FreeArena
    - CERT_DestroyCertificateList
    - CERT_DestroyCertificate
    - PK11_FreeSymKey
    linkageType: ''
    returnType: void
    signature: void SEC_PKCS7DestroyContentInfo(SEC_PKCS7ContentInfo *cinfo)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7common.c:148,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7common.c:157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - cinfo
    argTypes:
    - SEC_PKCS7ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 167
    functionName: SEC_PKCS7CopyContentInfo
    functionSourceFile: /src/nss/lib/pkcs7/p7common.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: SEC_PKCS7ContentInfo
    signature: 'SEC_PKCS7ContentInfo *

      SEC_PKCS7CopyContentInfo(SEC_PKCS7ContentInfo *cinfo)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: SEC_PKCS7ContentType
      Src: /src/nss/lib/pkcs7/p7common.c:179,1
    - Dst: SEC_PKCS7GetContent
      Src: /src/nss/lib/pkcs7/p7common.c:189,1
    - Dst: SEC_PKCS7GetContent
      Src: /src/nss/lib/pkcs7/p7common.c:213,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7common.c:224,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 1
    argNames:
    - cinfo
    argTypes:
    - SEC_PKCS7ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 229
    functionName: SEC_PKCS7GetContent
    functionSourceFile: /src/nss/lib/pkcs7/p7common.c
    functionUses: 5
    functionsReached:
    - PORT_Assert
    - SEC_PKCS7ContentType
    - SEC_PKCS7GetContent
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      SEC_PKCS7GetContent(SEC_PKCS7ContentInfo *cinfo)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SEC_PKCS7ContentType
      Src: /src/nss/lib/pkcs7/p7common.c:252,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - cinfo
    argTypes:
    - SEC_PKCS7ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 269
    functionName: SEC_PKCS7GetEncryptionAlgorithm
    functionSourceFile: /src/nss/lib/pkcs7/p7common.c
    functionUses: 2
    functionsReached:
    - SEC_PKCS7ContentType
    linkageType: ''
    returnType: SECAlgorithmID
    signature: 'SECAlgorithmID *

      SEC_PKCS7GetEncryptionAlgorithm(SEC_PKCS7ContentInfo *cinfo)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: SEC_PKCS7ContentType
      Src: /src/nss/lib/pkcs7/p7common.c:298,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/lib/pkcs7/p7common.c:309,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/pkcs7/p7common.c:310,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/lib/pkcs7/p7common.c:325,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/pkcs7/p7common.c:328,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/pkcs7/p7common.c:334,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs7/p7common.c:348,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/pkcs7/p7common.c:353,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 64
    argCount: 3
    argNames:
    - cinfo
    - buf
    - len
    argTypes:
    - SEC_PKCS7ContentInfo*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 371
    functionName: SEC_PKCS7SetContent
    functionSourceFile: /src/nss/lib/pkcs7/p7common.c
    functionUses: 2
    functionsReached:
    - SEC_PKCS7ContentType
    - SECOID_FindOIDByTag
    - PORT_ArenaZAlloc
    - SECITEM_CopyItem
    - SECITEM_AllocItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SEC_PKCS7SetContent(SEC_PKCS7ContentInfo *cinfo,\n                    const
      char *buf,\n                    unsigned long len)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: SEC_PKCS7ContentType
      Src: /src/nss/lib/pkcs7/p7common.c:410,1
    - Dst: SEC_PKCS7GetEncryptionAlgorithm
      Src: /src/nss/lib/pkcs7/p7common.c:413,1
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/pkcs7/p7common.c:420,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs7/p7common.c:424,1
    - Dst: PK11_GetInternalKeySlot
      Src: /src/nss/lib/pkcs7/p7common.c:431,1
    - Dst: PK11_PBEKeyGen
      Src: /src/nss/lib/pkcs7/p7common.c:437,1
    - Dst: PK11_GetPBECryptoMechanism
      Src: /src/nss/lib/pkcs7/p7common.c:443,1
    - Dst: PK11_GetBlockSize
      Src: /src/nss/lib/pkcs7/p7common.c:450,1
    - Dst: PK11_BlockData
      Src: /src/nss/lib/pkcs7/p7common.c:457,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/pkcs7/p7common.c:459,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/pkcs7/p7common.c:466,1
    - Dst: PORT_Realloc
      Src: /src/nss/lib/pkcs7/p7common.c:468,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/pkcs7/p7common.c:473,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/lib/pkcs7/p7common.c:484,1
    - Dst: PK11_CreateContextBySymKey
      Src: /src/nss/lib/pkcs7/p7common.c:491,1
    - Dst: PK11_CipherOp
      Src: /src/nss/lib/pkcs7/p7common.c:498,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/pkcs7/p7common.c:501,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pkcs7/p7common.c:506,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs7/p7common.c:509,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/pkcs7/p7common.c:511,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pkcs7/p7common.c:514,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pkcs7/p7common.c:517,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pkcs7/p7common.c:520,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 100
    argCount: 4
    argNames:
    - poolp
    - cinfo
    - key
    - wincx
    argTypes:
    - PLArenaPool*
    - SEC_PKCS7ContentInfo*
    - SECItem*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 387
    functionDepth: 12
    functionLinenumber: 387
    functionLinenumberEnd: 523
    functionName: SEC_PKCS7EncryptContents
    functionSourceFile: /src/nss/lib/pkcs7/p7common.c
    functionUses: 1
    functionsReached:
    - SEC_PKCS7ContentType
    - PK11_GetInternalKeySlot
    - PORT_ArenaMark
    - PORT_Realloc
    - PORT_ArenaUnmark
    - PK11_CreateContextBySymKey
    - PK11_DestroyContext
    - PK11_PBEKeyGen
    - PORT_ArenaRelease
    - PORT_ArenaZAlloc
    - SEC_PKCS7GetEncryptionAlgorithm
    - PK11_BlockData
    - PK11_CipherOp
    - SECITEM_ZfreeItem
    - PK11_FreeSlot
    - PK11_GetBlockSize
    - PK11_GetPBECryptoMechanism
    - SECITEM_DupItem
    - PORT_Memset
    - PK11_FreeSymKey
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SEC_PKCS7EncryptContents(PLArenaPool *poolp,\n                         SEC_PKCS7ContentInfo
      *cinfo,\n                         SECItem *key,\n                         void
      *wincx)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: SEC_PKCS7ContentType
      Src: /src/nss/lib/pkcs7/p7common.c:560,1
    - Dst: SEC_PKCS7GetEncryptionAlgorithm
      Src: /src/nss/lib/pkcs7/p7common.c:563,1
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/pkcs7/p7common.c:570,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs7/p7common.c:574,1
    - Dst: PK11_GetInternalKeySlot
      Src: /src/nss/lib/pkcs7/p7common.c:581,1
    - Dst: PK11_PBEKeyGen
      Src: /src/nss/lib/pkcs7/p7common.c:587,1
    - Dst: PK11_GetPBECryptoMechanism
      Src: /src/nss/lib/pkcs7/p7common.c:593,1
    - Dst: PK11_CreateContextBySymKey
      Src: /src/nss/lib/pkcs7/p7common.c:599,1
    - Dst: PK11_CipherOp
      Src: /src/nss/lib/pkcs7/p7common.c:606,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/pkcs7/p7common.c:608,1
    - Dst: PK11_GetBlockSize
      Src: /src/nss/lib/pkcs7/p7common.c:610,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs7/p7common.c:627,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/pkcs7/p7common.c:629,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pkcs7/p7common.c:632,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pkcs7/p7common.c:635,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/lib/pkcs7/p7common.c:638,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 66
    argCount: 4
    argNames:
    - poolp
    - cinfo
    - key
    - wincx
    argTypes:
    - PLArenaPool*
    - SEC_PKCS7ContentInfo*
    - SECItem*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 539
    functionDepth: 12
    functionLinenumber: 539
    functionLinenumberEnd: 641
    functionName: SEC_PKCS7DecryptContents
    functionSourceFile: /src/nss/lib/pkcs7/p7common.c
    functionUses: 1
    functionsReached:
    - PK11_GetPBECryptoMechanism
    - SEC_PKCS7ContentType
    - PK11_GetInternalKeySlot
    - PK11_PBEKeyGen
    - PK11_DestroyContext
    - PORT_ArenaZAlloc
    - SEC_PKCS7GetEncryptionAlgorithm
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - PK11_CipherOp
    - PORT_ArenaUnmark
    - PK11_CreateContextBySymKey
    - SECITEM_ZfreeItem
    - PK11_FreeSlot
    - PK11_GetBlockSize
    - PK11_FreeSymKey
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SEC_PKCS7DecryptContents(PLArenaPool *poolp,\n                         SEC_PKCS7ContentInfo
      *cinfo,\n                         SECItem *key,\n                         void
      *wincx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SEC_PKCS7ContentType
      Src: /src/nss/lib/pkcs7/p7common.c:646,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 643
    functionDepth: 1
    functionLinenumber: 643
    functionLinenumberEnd: 654
    functionName: SEC_PKCS7GetCertificateList
    functionSourceFile: /src/nss/lib/pkcs7/p7common.c
    functionUses: 2
    functionsReached:
    - SEC_PKCS7ContentType
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem **

      SEC_PKCS7GetCertificateList(SEC_PKCS7ContentInfo *cinfo)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cinfo
    argTypes:
    - SEC_PKCS7ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 656
    functionDepth: 0
    functionLinenumber: 656
    functionLinenumberEnd: 663
    functionName: SEC_PKCS7GetKeyLength
    functionSourceFile: /src/nss/lib/pkcs7/p7common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SEC_PKCS7GetKeyLength(SEC_PKCS7ContentInfo *cinfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct sec_pkcs7_encoder_output*::outputfn
      Src: /src/nss/lib/pkcs7/p7encode.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - arg
    - buf
    - len
    - depth
    - data_kind
    argTypes:
    - void*
    - char*
    - unsigned long
    - int
    - SEC_ASN1EncodingPart
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 48
    functionName: sec_pkcs7_encoder_out
    functionSourceFile: /src/nss/lib/pkcs7/p7encode.c
    functionUses: 0
    functionsReached:
    - struct sec_pkcs7_encoder_output*::outputfn
    linkageType: ''
    returnType: void
    signature: "void sec_pkcs7_encoder_out(void *arg, const char *buf, unsigned long
      len,\n                      int depth, SEC_ASN1EncodingPart data_kind)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: SEC_PKCS7ContentType
      Src: /src/nss/lib/pkcs7/p7encode.c:65,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7encode.c:78,1
    - Dst: PK11_AlgtagToMechanism
      Src: /src/nss/lib/pkcs7/p7encode.c:109,1
    - Dst: PK11_GetBestSlot
      Src: /src/nss/lib/pkcs7/p7encode.c:112,1
    - Dst: PK11_KeyGen
      Src: /src/nss/lib/pkcs7/p7encode.c:116,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pkcs7/p7encode.c:118,1
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/pkcs7/p7encode.c:125,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7encode.c:138,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/pkcs7/p7encode.c:153,1
    - Dst: CERT_ExtractPublicKey
      Src: /src/nss/lib/pkcs7/p7encode.c:158,1
    - Dst: SECKEY_PublicKeyStrength
      Src: /src/nss/lib/pkcs7/p7encode.c:162,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/pkcs7/p7encode.c:164,1
    - Dst: PK11_PubWrapSymKey
      Src: /src/nss/lib/pkcs7/p7encode.c:169,1
    - Dst: PK11_AlgtagToMechanism
      Src: /src/nss/lib/pkcs7/p7encode.c:169,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/pkcs7/p7encode.c:172,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs7/p7encode.c:179,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/lib/pkcs7/p7encode.c:183,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pkcs7/p7encode.c:188,1
    - Dst: sec_PKCS7CreateEncryptObject
      Src: /src/nss/lib/pkcs7/p7encode.c:192,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/pkcs7/p7encode.c:196,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pkcs7/p7encode.c:203,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/pkcs7/p7encode.c:206,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/lib/pkcs7/p7encode.c:209,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs7/p7encode.c:212,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pkcs7/p7encode.c:216,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 113
    argCount: 2
    argNames:
    - cinfo
    - orig_bulkkey
    argTypes:
    - SEC_PKCS7ContentInfo*
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 50
    functionDepth: 8
    functionLinenumber: 50
    functionLinenumberEnd: 220
    functionName: sec_pkcs7_encoder_start_encrypt
    functionSourceFile: /src/nss/lib/pkcs7/p7encode.c
    functionUses: 0
    functionsReached:
    - SEC_PKCS7ContentType
    - PK11_GetBestSlot
    - PORT_ArenaMark
    - PK11_AlgtagToMechanism
    - PORT_ArenaUnmark
    - SECKEY_DestroyPublicKey
    - PORT_ArenaAlloc
    - PORT_ArenaRelease
    - SECOID_SetAlgorithmID
    - PORT_SetError
    - PK11_KeyGen
    - SECKEY_PublicKeyStrength
    - PORT_Assert
    - sec_PKCS7CreateEncryptObject
    - SECOID_GetAlgorithmTag
    - PORT_FreeArena
    - PK11_FreeSlot
    - PK11_PubWrapSymKey
    - SECKEY_DestroyPrivateKey
    - CERT_ExtractPublicKey
    - PK11_FreeSymKey
    linkageType: ''
    returnType: sec_PKCS7CipherObject
    signature: "sec_PKCS7CipherObject *\nsec_pkcs7_encoder_start_encrypt(SEC_PKCS7ContentInfo
      *cinfo,\n                                PK11SymKey *orig_bulkkey)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: SEC_PKCS7ContentType
      Src: /src/nss/lib/pkcs7/p7encode.c:250,1
    - Dst: SEC_ASN1EncoderSetTakeFromBuf
      Src: /src/nss/lib/pkcs7/p7encode.c:319,1
    - Dst: SEC_ASN1EncoderClearNotifyProc
      Src: /src/nss/lib/pkcs7/p7encode.c:323,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 58
    argCount: 4
    argNames:
    - arg
    - before
    - dest
    - depth
    argTypes:
    - void*
    - PRBool
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 325
    functionName: sec_pkcs7_encoder_notify
    functionSourceFile: /src/nss/lib/pkcs7/p7encode.c
    functionUses: 0
    functionsReached:
    - SEC_ASN1EncoderClearNotifyProc
    - SEC_PKCS7ContentType
    - SEC_ASN1EncoderSetTakeFromBuf
    linkageType: ''
    returnType: void
    signature: void sec_pkcs7_encoder_notify(void *arg, PRBool before, void *dest,
      int depth)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/pkcs7/p7encode.c:338,1
    - Dst: SEC_PKCS7ContentType
      Src: /src/nss/lib/pkcs7/p7encode.c:347,1
    - Dst: sec_pkcs7_encoder_start_encrypt
      Src: /src/nss/lib/pkcs7/p7encode.c:371,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pkcs7/p7encode.c:373,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7encode.c:387,1
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/pkcs7/p7encode.c:393,1
    - Dst: HASH_GetHashObjectByOidTag
      Src: /src/nss/lib/pkcs7/p7encode.c:395,1
    - Dst: sec_PKCS7DestroyEncryptObject
      Src: /src/nss/lib/pkcs7/p7encode.c:405,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pkcs7/p7encode.c:406,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 62
    argCount: 2
    argNames:
    - cinfo
    - bulkkey
    argTypes:
    - SEC_PKCS7ContentInfo*
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 327
    functionDepth: 9
    functionLinenumber: 327
    functionLinenumberEnd: 413
    functionName: sec_pkcs7_encoder_start_contexts
    functionSourceFile: /src/nss/lib/pkcs7/p7encode.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SEC_PKCS7ContentType
    - PORT_Free
    - sec_pkcs7_encoder_start_encrypt
    - PORT_ZAlloc
    - SECOID_FindOIDTag
    - HASH_GetHashObjectByOidTag
    - sec_PKCS7DestroyEncryptObject
    linkageType: ''
    returnType: SEC_PKCS7EncoderContext
    signature: "SEC_PKCS7EncoderContext *\nsec_pkcs7_encoder_start_contexts(SEC_PKCS7ContentInfo
      *cinfo,\n                                 PK11SymKey *bulkkey)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sec_pkcs7_encoder_start_contexts
      Src: /src/nss/lib/pkcs7/p7encode.c:424,1
    - Dst: SEC_ASN1EncoderStart
      Src: /src/nss/lib/pkcs7/p7encode.c:434,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pkcs7/p7encode.c:437,1
    - Dst: SEC_ASN1EncoderSetStreaming
      Src: /src/nss/lib/pkcs7/p7encode.c:445,1
    - Dst: SEC_ASN1EncoderSetNotifyProc
      Src: /src/nss/lib/pkcs7/p7encode.c:450,1
    - Dst: SEC_ASN1EncoderUpdate
      Src: /src/nss/lib/pkcs7/p7encode.c:458,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pkcs7/p7encode.c:460,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 4
    argNames:
    - cinfo
    - outputfn
    - outputarg
    - bulkkey
    argTypes:
    - SEC_PKCS7ContentInfo*
    - SEC_PKCS7EncoderOutputCallback
    - void*
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 415
    functionDepth: 10
    functionLinenumber: 415
    functionLinenumberEnd: 465
    functionName: SEC_PKCS7EncoderStart
    functionSourceFile: /src/nss/lib/pkcs7/p7encode.c
    functionUses: 3
    functionsReached:
    - SEC_ASN1EncoderUpdate
    - PORT_Free
    - sec_pkcs7_encoder_start_contexts
    - SEC_ASN1EncoderStart
    - SEC_ASN1EncoderSetNotifyProc
    - SEC_ASN1EncoderSetStreaming
    linkageType: ''
    returnType: SEC_PKCS7EncoderContext
    signature: "SEC_PKCS7EncoderContext *\nSEC_PKCS7EncoderStart(SEC_PKCS7ContentInfo
      *cinfo,\n                      SEC_PKCS7EncoderOutputCallback outputfn,\n                      void
      *outputarg,\n                      PK11SymKey *bulkkey)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7encode.c:487,1
    - Dst: sec_PKCS7EncryptLength
      Src: /src/nss/lib/pkcs7/p7encode.c:507,1
    - Dst: sec_PKCS7Encrypt
      Src: /src/nss/lib/pkcs7/p7encode.c:513,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/pkcs7/p7encode.c:523,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/pkcs7/p7encode.c:525,1
    - Dst: sec_PKCS7Encrypt
      Src: /src/nss/lib/pkcs7/p7encode.c:530,1
    - Dst: SEC_ASN1EncoderUpdate
      Src: /src/nss/lib/pkcs7/p7encode.c:547,1
    - Dst: sec_PKCS7DestroyEncryptObject
      Src: /src/nss/lib/pkcs7/p7encode.c:554,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pkcs7/p7encode.c:559,1
    - Dst: SEC_PKCS7ContentType
      Src: /src/nss/lib/pkcs7/p7encode.c:568,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7encode.c:571,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/pkcs7/p7encode.c:587,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7encode.c:593,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/pkcs7/p7encode.c:595,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/pkcs7/p7encode.c:597,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7encode.c:608,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 92
    argCount: 5
    argNames:
    - p7ecx
    - dest
    - data
    - len
    - final
    argTypes:
    - SEC_PKCS7EncoderContext*
    - SECItem*
    - unsigned char*
    - unsigned long
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 619
    functionName: sec_pkcs7_encoder_work_data
    functionSourceFile: /src/nss/lib/pkcs7/p7encode.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_Assert
    - SEC_ASN1EncoderUpdate
    - SEC_PKCS7ContentType
    - PORT_ArenaAlloc
    - PORT_Free
    - sec_PKCS7DestroyEncryptObject
    - sec_PKCS7Encrypt
    - sec_PKCS7EncryptLength
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sec_pkcs7_encoder_work_data(SEC_PKCS7EncoderContext *p7ecx,
      SECItem *dest,\n                            const unsigned char *data, unsigned
      long len,\n                            PRBool final)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sec_pkcs7_encoder_work_data
      Src: /src/nss/lib/pkcs7/p7encode.c:626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p7ecx
    - data
    - len
    argTypes:
    - SEC_PKCS7EncoderContext*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 621
    functionDepth: 2
    functionLinenumber: 621
    functionLinenumberEnd: 629
    functionName: SEC_PKCS7EncoderUpdate
    functionSourceFile: /src/nss/lib/pkcs7/p7encode.c
    functionUses: 3
    functionsReached:
    - sec_pkcs7_encoder_work_data
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SEC_PKCS7EncoderUpdate(SEC_PKCS7EncoderContext *p7ecx,\n
      \                      const char *data, unsigned long len)"
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: SEC_PKCS7ContentType
      Src: /src/nss/lib/pkcs7/p7encode.c:646,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7encode.c:699,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/pkcs7/p7encode.c:711,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/pkcs7/p7encode.c:714,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7encode.c:721,1
    - Dst: PK11_FindKeyByAnyCert
      Src: /src/nss/lib/pkcs7/p7encode.c:724,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/pkcs7/p7encode.c:732,1
    - Dst: sec_PKCS7FindAttribute
      Src: /src/nss/lib/pkcs7/p7encode.c:743,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7encode.c:746,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/lib/pkcs7/p7encode.c:748,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7encode.c:759,1
    - Dst: sec_PKCS7ReorderAttributes
      Src: /src/nss/lib/pkcs7/p7encode.c:774,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/lib/pkcs7/p7encode.c:776,1
    - Dst: sec_PKCS7EncodeAttributes
      Src: /src/nss/lib/pkcs7/p7encode.c:782,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/lib/pkcs7/p7encode.c:785,1
    - Dst: SEC_GetSignatureAlgorithmOidTag
      Src: /src/nss/lib/pkcs7/p7encode.c:789,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs7/p7encode.c:792,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/lib/pkcs7/p7encode.c:793,1
    - Dst: SEC_SignData
      Src: /src/nss/lib/pkcs7/p7encode.c:796,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pkcs7/p7encode.c:800,1
    - Dst: SGN_Digest
      Src: /src/nss/lib/pkcs7/p7encode.c:802,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/lib/pkcs7/p7encode.c:806,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/pkcs7/p7encode.c:811,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pkcs7/p7encode.c:815,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/lib/pkcs7/p7encode.c:817,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/pkcs7/p7encode.c:849,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 138
    argCount: 3
    argNames:
    - cinfo
    - pwfn
    - pwfnarg
    argTypes:
    - SEC_PKCS7ContentInfo*
    - SECKEYGetPasswordKey
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 631
    functionDepth: 9
    functionLinenumber: 631
    functionLinenumberEnd: 885
    functionName: sec_pkcs7_encoder_sig_and_certs
    functionSourceFile: /src/nss/lib/pkcs7/p7encode.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SEC_PKCS7ContentType
    - sec_PKCS7ReorderAttributes
    - SECOID_GetAlgorithmTag
    - SEC_GetSignatureAlgorithmOidTag
    - PORT_ArenaAlloc
    - SECITEM_CopyItem
    - SECOID_SetAlgorithmID
    - PORT_SetError
    - SGN_Digest
    - sec_PKCS7FindAttribute
    - sec_PKCS7EncodeAttributes
    - SECKEY_DestroyPrivateKey
    - SEC_SignData
    - SECITEM_FreeItem
    - PK11_FindKeyByAnyCert
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sec_pkcs7_encoder_sig_and_certs(SEC_PKCS7ContentInfo *cinfo,\n
      \                               SECKEYGetPasswordKey pwfn, void *pwfnarg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sec_pkcs7_encoder_work_data
      Src: /src/nss/lib/pkcs7/p7encode.c:896,1
    - Dst: SEC_ASN1EncoderClearTakeFromBuf
      Src: /src/nss/lib/pkcs7/p7encode.c:901,1
    - Dst: SEC_ASN1EncoderClearStreaming
      Src: /src/nss/lib/pkcs7/p7encode.c:902,1
    - Dst: sec_pkcs7_encoder_sig_and_certs
      Src: /src/nss/lib/pkcs7/p7encode.c:907,1
    - Dst: SEC_ASN1EncoderUpdate
      Src: /src/nss/lib/pkcs7/p7encode.c:911,1
    - Dst: SEC_ASN1EncoderFinish
      Src: /src/nss/lib/pkcs7/p7encode.c:914,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pkcs7/p7encode.c:915,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - p7ecx
    - pwfn
    - pwfnarg
    argTypes:
    - SEC_PKCS7EncoderContext*
    - SECKEYGetPasswordKey
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 887
    functionDepth: 10
    functionLinenumber: 887
    functionLinenumberEnd: 917
    functionName: SEC_PKCS7EncoderFinish
    functionSourceFile: /src/nss/lib/pkcs7/p7encode.c
    functionUses: 4
    functionsReached:
    - SEC_ASN1EncoderUpdate
    - sec_pkcs7_encoder_sig_and_certs
    - SEC_ASN1EncoderClearStreaming
    - PORT_Free
    - SEC_ASN1EncoderClearTakeFromBuf
    - SEC_ASN1EncoderFinish
    - sec_pkcs7_encoder_work_data
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SEC_PKCS7EncoderFinish(SEC_PKCS7EncoderContext *p7ecx,\n
      \                      SECKEYGetPasswordKey pwfn, void *pwfnarg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7encode.c:925,1
    - Dst: SEC_ASN1EncoderAbort
      Src: /src/nss/lib/pkcs7/p7encode.c:926,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p7ecx
    - error
    argTypes:
    - SEC_PKCS7EncoderContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 927
      start: 922
    functionDepth: 0
    functionLinenumber: 922
    functionLinenumberEnd: 927
    functionName: SEC_PKCS7EncoderAbort
    functionSourceFile: /src/nss/lib/pkcs7/p7encode.c
    functionUses: 0
    functionsReached:
    - SEC_ASN1EncoderAbort
    - PORT_Assert
    linkageType: ''
    returnType: void
    signature: void SEC_PKCS7EncoderAbort(SEC_PKCS7EncoderContext *p7ecx, int error)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sec_pkcs7_encoder_start_contexts
      Src: /src/nss/lib/pkcs7/p7encode.c:945,1
    - Dst: SEC_PKCS7GetContent
      Src: /src/nss/lib/pkcs7/p7encode.c:949,1
    - Dst: SEC_PKCS7ContentType
      Src: /src/nss/lib/pkcs7/p7encode.c:955,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7encode.c:958,1
    - Dst: sec_pkcs7_encoder_work_data
      Src: /src/nss/lib/pkcs7/p7encode.c:977,1
    - Dst: sec_pkcs7_encoder_sig_and_certs
      Src: /src/nss/lib/pkcs7/p7encode.c:983,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pkcs7/p7encode.c:986,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 4
    argNames:
    - cinfo
    - bulkkey
    - pwfn
    - pwfnarg
    argTypes:
    - SEC_PKCS7ContentInfo*
    - PK11SymKey*
    - SECKEYGetPasswordKey
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 935
    functionDepth: 10
    functionLinenumber: 935
    functionLinenumberEnd: 988
    functionName: SEC_PKCS7PrepareForEncode
    functionSourceFile: /src/nss/lib/pkcs7/p7encode.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - SEC_PKCS7ContentType
    - sec_pkcs7_encoder_sig_and_certs
    - sec_pkcs7_encoder_start_contexts
    - PORT_Free
    - sec_pkcs7_encoder_work_data
    - SEC_PKCS7GetContent
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SEC_PKCS7PrepareForEncode(SEC_PKCS7ContentInfo *cinfo,\n
      \                         PK11SymKey *bulkkey,\n                          SECKEYGetPasswordKey
      pwfn,\n                          void *pwfnarg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SEC_PKCS7PrepareForEncode
      Src: /src/nss/lib/pkcs7/p7encode.c:1023,1
    - Dst: SEC_ASN1Encode
      Src: /src/nss/lib/pkcs7/p7encode.c:1030,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 6
    argNames:
    - cinfo
    - outputfn
    - outputarg
    - bulkkey
    - pwfn
    - pwfnarg
    argTypes:
    - SEC_PKCS7ContentInfo*
    - SEC_PKCS7EncoderOutputCallback
    - void*
    - PK11SymKey*
    - SECKEYGetPasswordKey
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1013
    functionDepth: 11
    functionLinenumber: 1013
    functionLinenumberEnd: 1035
    functionName: SEC_PKCS7Encode
    functionSourceFile: /src/nss/lib/pkcs7/p7encode.c
    functionUses: 3
    functionsReached:
    - SEC_ASN1Encode
    - SEC_PKCS7PrepareForEncode
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SEC_PKCS7Encode(SEC_PKCS7ContentInfo *cinfo,\n                SEC_PKCS7EncoderOutputCallback
      outputfn,\n                void *outputarg,\n                PK11SymKey *bulkkey,\n
      \               SECKEYGetPasswordKey pwfn,\n                void *pwfnarg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SEC_PKCS7PrepareForEncode
      Src: /src/nss/lib/pkcs7/p7encode.c:1074,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/pkcs7/p7encode.c:1078,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - pool
    - dest
    - cinfo
    - bulkkey
    - pwfn
    - pwfnarg
    argTypes:
    - PLArenaPool*
    - SECItem*
    - SEC_PKCS7ContentInfo*
    - PK11SymKey*
    - SECKEYGetPasswordKey
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 1064
    functionDepth: 11
    functionLinenumber: 1064
    functionLinenumberEnd: 1079
    functionName: SEC_PKCS7EncodeItem
    functionSourceFile: /src/nss/lib/pkcs7/p7encode.c
    functionUses: 1
    functionsReached:
    - SEC_PKCS7PrepareForEncode
    - SEC_ASN1EncodeItem
    linkageType: ''
    returnType: SECItem
    signature: "SECItem *\nSEC_PKCS7EncodeItem(PLArenaPool *pool,\n                    SECItem
      *dest,\n                    SEC_PKCS7ContentInfo *cinfo,\n                    PK11SymKey
      *bulkkey,\n                    SECKEYGetPasswordKey pwfn,\n                    void
      *pwfnarg)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7create.c:38,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/lib/pkcs7/p7create.c:42,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7create.c:43,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/pkcs7/p7create.c:45,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs7/p7create.c:56,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs7/p7create.c:62,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs7/p7create.c:68,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs7/p7create.c:74,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs7/p7create.c:81,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs7/p7create.c:88,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7create.c:102,1
    - Dst: SEC_ASN1EncodeInteger
      Src: /src/nss/lib/pkcs7/p7create.c:103,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7create.c:106,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 60
    argCount: 4
    argNames:
    - cinfo
    - poolp
    - kind
    - detached
    argTypes:
    - SEC_PKCS7ContentInfo*
    - PLArenaPool*
    - SECOidTag
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 110
    functionName: sec_pkcs7_init_content_info
    functionSourceFile: /src/nss/lib/pkcs7/p7create.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SECOID_FindOIDByTag
    - PORT_ArenaZAlloc
    - SECITEM_CopyItem
    - SEC_ASN1EncodeInteger
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sec_pkcs7_init_content_info(SEC_PKCS7ContentInfo *cinfo,
      PLArenaPool *poolp,\n                            SECOidTag kind, PRBool detached)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/pkcs7/p7create.c:120,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs7/p7create.c:124,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pkcs7/p7create.c:126,1
    - Dst: sec_pkcs7_init_content_info
      Src: /src/nss/lib/pkcs7/p7create.c:136,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pkcs7/p7create.c:138,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 4
    argNames:
    - kind
    - detached
    - pwfn
    - pwfn_arg
    argTypes:
    - SECOidTag
    - PRBool
    - SECKEYGetPasswordKey
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 143
    functionName: sec_pkcs7_create_content_info
    functionSourceFile: /src/nss/lib/pkcs7/p7create.c
    functionUses: 0
    functionsReached:
    - PORT_FreeArena
    - sec_pkcs7_init_content_info
    - PORT_NewArena
    - PORT_ArenaZAlloc
    linkageType: ''
    returnType: SEC_PKCS7ContentInfo
    signature: "SEC_PKCS7ContentInfo *\nsec_pkcs7_create_content_info(SECOidTag kind,
      PRBool detached,\n                              SECKEYGetPasswordKey pwfn, void
      *pwfn_arg)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: SEC_PKCS7ContentType
      Src: /src/nss/lib/pkcs7/p7create.c:168,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/lib/pkcs7/p7create.c:195,1
    - Dst: CERT_VerifyCert
      Src: /src/nss/lib/pkcs7/p7create.c:200,1
    - Dst: PR_Now
      Src: /src/nss/lib/pkcs7/p7create.c:200,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7create.c:211,1
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/pkcs7/p7create.c:215,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs7/p7create.c:217,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs7/p7create.c:220,1
    - Dst: SEC_ASN1EncodeInteger
      Src: /src/nss/lib/pkcs7/p7create.c:224,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs7/p7create.c:227,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7create.c:230,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/pkcs7/p7create.c:232,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs7/p7create.c:234,1
    - Dst: CERT_GetCertIssuerAndSN
      Src: /src/nss/lib/pkcs7/p7create.c:238,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs7/p7create.c:240,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/lib/pkcs7/p7create.c:244,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs7/p7create.c:247,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/pkcs7/p7create.c:265,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs7/p7create.c:268,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs7/p7create.c:274,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/pkcs7/p7create.c:275,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs7/p7create.c:277,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/lib/pkcs7/p7create.c:280,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs7/p7create.c:282,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/pkcs7/p7create.c:289,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/pkcs7/p7create.c:290,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs7/p7create.c:293,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/pkcs7/p7create.c:296,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs7/p7create.c:298,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/pkcs7/p7create.c:311,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 100
    argCount: 6
    argNames:
    - cinfo
    - cert
    - certusage
    - certdb
    - digestalgtag
    - digestdata
    argTypes:
    - SEC_PKCS7ContentInfo*
    - CERTCertificate*
    - SECCertUsage
    - CERTCertDBHandle*
    - SECOidTag
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 152
    functionDepth: 5
    functionLinenumber: 152
    functionLinenumberEnd: 313
    functionName: sec_pkcs7_add_signer
    functionSourceFile: /src/nss/lib/pkcs7/p7create.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SEC_PKCS7ContentType
    - PORT_ArenaZAlloc
    - PORT_ArenaAlloc
    - CERT_VerifyCert
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - PR_Now
    - SECOID_SetAlgorithmID
    - SECITEM_CopyItem
    - CERT_GetDefaultCertDB
    - SEC_ASN1EncodeInteger
    - CERT_DupCertificate
    - CERT_GetCertIssuerAndSN
    - PORT_ArenaUnmark
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sec_pkcs7_add_signer(SEC_PKCS7ContentInfo *cinfo,\n                     CERTCertificate
      *cert,\n                     SECCertUsage certusage,\n                     CERTCertDBHandle
      *certdb,\n                     SECOidTag digestalgtag,\n                     SECItem
      *digestdata)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sec_pkcs7_create_content_info
      Src: /src/nss/lib/pkcs7/p7create.c:325,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7create.c:331,1
    - Dst: sec_pkcs7_init_content_info
      Src: /src/nss/lib/pkcs7/p7create.c:337,1
    - Dst: SEC_PKCS7DestroyContentInfo
      Src: /src/nss/lib/pkcs7/p7create.c:340,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - pwfn
    - pwfn_arg
    argTypes:
    - SECKEYGetPasswordKey
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 318
    functionDepth: 9
    functionLinenumber: 318
    functionLinenumberEnd: 345
    functionName: sec_pkcs7_create_signed_data
    functionSourceFile: /src/nss/lib/pkcs7/p7create.c
    functionUses: 0
    functionsReached:
    - sec_pkcs7_init_content_info
    - PORT_Assert
    - SEC_PKCS7DestroyContentInfo
    - sec_pkcs7_create_content_info
    linkageType: ''
    returnType: SEC_PKCS7ContentInfo
    signature: 'SEC_PKCS7ContentInfo *

      sec_pkcs7_create_signed_data(SECKEYGetPasswordKey pwfn, void *pwfn_arg)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sec_pkcs7_create_signed_data
      Src: /src/nss/lib/pkcs7/p7create.c:386,1
    - Dst: sec_pkcs7_add_signer
      Src: /src/nss/lib/pkcs7/p7create.c:390,1
    - Dst: SEC_PKCS7DestroyContentInfo
      Src: /src/nss/lib/pkcs7/p7create.c:393,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 7
    argNames:
    - cert
    - certusage
    - certdb
    - digestalg
    - digest
    - pwfn
    - pwfn_arg
    argTypes:
    - CERTCertificate*
    - SECCertUsage
    - CERTCertDBHandle*
    - SECOidTag
    - SECItem*
    - SECKEYGetPasswordKey
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 375
    functionDepth: 10
    functionLinenumber: 375
    functionLinenumberEnd: 398
    functionName: SEC_PKCS7CreateSignedData
    functionSourceFile: /src/nss/lib/pkcs7/p7create.c
    functionUses: 4
    functionsReached:
    - sec_pkcs7_create_signed_data
    - SEC_PKCS7DestroyContentInfo
    - sec_pkcs7_add_signer
    linkageType: ''
    returnType: SEC_PKCS7ContentInfo
    signature: "SEC_PKCS7ContentInfo *\nSEC_PKCS7CreateSignedData(CERTCertificate
      *cert,\n                          SECCertUsage certusage,\n                          CERTCertDBHandle
      *certdb,\n                          SECOidTag digestalg,\n                          SECItem
      *digest,\n                          SECKEYGetPasswordKey pwfn, void *pwfn_arg)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7create.c:408,1
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/pkcs7/p7create.c:409,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/pkcs7/p7create.c:411,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/lib/pkcs7/p7create.c:416,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/pkcs7/p7create.c:420,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/pkcs7/p7create.c:424,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/pkcs7/p7create.c:431,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/pkcs7/p7create.c:435,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/pkcs7/p7create.c:446,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7create.c:450,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs7/p7create.c:451,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 4
    argNames:
    - poolp
    - oidtag
    - value
    - encoded
    argTypes:
    - PLArenaPool*
    - SECOidTag
    - SECItem*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 453
    functionName: sec_pkcs7_create_attribute
    functionSourceFile: /src/nss/lib/pkcs7/p7create.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SECOID_FindOIDByTag
    - PORT_ArenaAlloc
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - SECITEM_CopyItem
    - PORT_ArenaUnmark
    linkageType: ''
    returnType: SEC_PKCS7Attribute
    signature: "SEC_PKCS7Attribute *\nsec_pkcs7_create_attribute(PLArenaPool *poolp,
      SECOidTag oidtag,\n                           SECItem *value, PRBool encoded)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7create.c:464,1
    - Dst: SEC_PKCS7ContentType
      Src: /src/nss/lib/pkcs7/p7create.c:464,1
    - Dst: SEC_PKCS7ContentType
      Src: /src/nss/lib/pkcs7/p7create.c:465,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7create.c:481,1
    - Dst: sec_PKCS7FindAttribute
      Src: /src/nss/lib/pkcs7/p7create.c:481,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7create.c:484,1
    - Dst: sec_PKCS7FindAttribute
      Src: /src/nss/lib/pkcs7/p7create.c:484,1
    - Dst: PORT_ArenaGrow
      Src: /src/nss/lib/pkcs7/p7create.c:490,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/pkcs7/p7create.c:513,1
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/pkcs7/p7create.c:518,1
    - Dst: sec_pkcs7_create_attribute
      Src: /src/nss/lib/pkcs7/p7create.c:525,1
    - Dst: sec_pkcs7_create_attribute
      Src: /src/nss/lib/pkcs7/p7create.c:533,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs7/p7create.c:537,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/pkcs7/p7create.c:545,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 3
    argNames:
    - cinfo
    - attrsp
    - attr
    argTypes:
    - SEC_PKCS7ContentInfo*
    - SEC_PKCS7Attribute***
    - SEC_PKCS7Attribute*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 455
    functionDepth: 1
    functionLinenumber: 455
    functionLinenumberEnd: 547
    functionName: sec_pkcs7_add_attribute
    functionSourceFile: /src/nss/lib/pkcs7/p7create.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SEC_PKCS7ContentType
    - PORT_ArenaGrow
    - sec_pkcs7_create_attribute
    - PORT_ArenaAlloc
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - sec_PKCS7FindAttribute
    - PORT_ArenaUnmark
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sec_pkcs7_add_attribute(SEC_PKCS7ContentInfo *cinfo,\n                        SEC_PKCS7Attribute
      ***attrsp,\n                        SEC_PKCS7Attribute *attr)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7create.c:574,1
    - Dst: SEC_PKCS7ContentType
      Src: /src/nss/lib/pkcs7/p7create.c:574,1
    - Dst: SEC_PKCS7ContentType
      Src: /src/nss/lib/pkcs7/p7create.c:575,1
    - Dst: DER_EncodeTimeChoice
      Src: /src/nss/lib/pkcs7/p7create.c:584,1
    - Dst: PR_Now
      Src: /src/nss/lib/pkcs7/p7create.c:584,1
    - Dst: sec_pkcs7_create_attribute
      Src: /src/nss/lib/pkcs7/p7create.c:588,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pkcs7/p7create.c:591,1
    - Dst: sec_PKCS7FindAttribute
      Src: /src/nss/lib/pkcs7/p7create.c:600,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7create.c:602,1
    - Dst: sec_pkcs7_add_attribute
      Src: /src/nss/lib/pkcs7/p7create.c:606,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 1
    argNames:
    - cinfo
    argTypes:
    - SEC_PKCS7ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 565
    functionDepth: 2
    functionLinenumber: 565
    functionLinenumberEnd: 613
    functionName: SEC_PKCS7AddSigningTime
    functionSourceFile: /src/nss/lib/pkcs7/p7create.c
    functionUses: 3
    functionsReached:
    - PORT_Assert
    - SEC_PKCS7ContentType
    - sec_pkcs7_add_attribute
    - sec_pkcs7_create_attribute
    - PR_Now
    - sec_PKCS7FindAttribute
    - DER_EncodeTimeChoice
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SEC_PKCS7AddSigningTime(SEC_PKCS7ContentInfo *cinfo)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7create.c:641,1
    - Dst: SEC_PKCS7ContentType
      Src: /src/nss/lib/pkcs7/p7create.c:641,1
    - Dst: SEC_PKCS7ContentType
      Src: /src/nss/lib/pkcs7/p7create.c:642,1
    - Dst: sec_pkcs7_create_attribute
      Src: /src/nss/lib/pkcs7/p7create.c:653,1
    - Dst: sec_pkcs7_add_attribute
      Src: /src/nss/lib/pkcs7/p7create.c:657,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - cinfo
    - oidtag
    - value
    argTypes:
    - SEC_PKCS7ContentInfo*
    - SECOidTag
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 633
    functionDepth: 2
    functionLinenumber: 633
    functionLinenumberEnd: 658
    functionName: SEC_PKCS7AddSignedAttribute
    functionSourceFile: /src/nss/lib/pkcs7/p7create.c
    functionUses: 0
    functionsReached:
    - sec_pkcs7_create_attribute
    - PORT_Assert
    - SEC_PKCS7ContentType
    - sec_pkcs7_add_attribute
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SEC_PKCS7AddSignedAttribute(SEC_PKCS7ContentInfo *cinfo,\n
      \                           SECOidTag oidtag,\n                            SECItem
      *value)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SEC_PKCS7ContentType
      Src: /src/nss/lib/pkcs7/p7create.c:678,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/lib/pkcs7/p7create.c:694,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs7/p7create.c:696,1
    - Dst: CERT_CertChainFromCert
      Src: /src/nss/lib/pkcs7/p7create.c:707,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - cinfo
    - certdb
    argTypes:
    - SEC_PKCS7ContentInfo*
    - CERTCertDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 671
    functionDepth: 2
    functionLinenumber: 671
    functionLinenumberEnd: 713
    functionName: SEC_PKCS7IncludeCertChain
    functionSourceFile: /src/nss/lib/pkcs7/p7create.c
    functionUses: 4
    functionsReached:
    - PORT_SetError
    - SEC_PKCS7ContentType
    - CERT_GetDefaultCertDB
    - CERT_CertChainFromCert
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SEC_PKCS7IncludeCertChain(SEC_PKCS7ContentInfo *cinfo,\n
      \                         CERTCertDBHandle *certdb)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SEC_PKCS7ContentType
      Src: /src/nss/lib/pkcs7/p7create.c:728,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/lib/pkcs7/p7create.c:747,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs7/p7create.c:749,1
    - Dst: CERT_CertChainFromCert
      Src: /src/nss/lib/pkcs7/p7create.c:754,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/pkcs7/p7create.c:761,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7create.c:766,1
    - Dst: PORT_ArenaGrow
      Src: /src/nss/lib/pkcs7/p7create.c:767,1
    - Dst: CERT_DestroyCertificateList
      Src: /src/nss/lib/pkcs7/p7create.c:774,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 44
    argCount: 3
    argNames:
    - cinfo
    - cert
    - certdb
    argTypes:
    - SEC_PKCS7ContentInfo*
    - CERTCertificate*
    - CERTCertDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 719
    functionDepth: 2
    functionLinenumber: 719
    functionLinenumberEnd: 784
    functionName: sec_pkcs7_add_cert_chain
    functionSourceFile: /src/nss/lib/pkcs7/p7create.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SEC_PKCS7ContentType
    - PORT_ArenaGrow
    - PORT_ArenaAlloc
    - PORT_SetError
    - CERT_DestroyCertificateList
    - CERT_GetDefaultCertDB
    - CERT_CertChainFromCert
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sec_pkcs7_add_cert_chain(SEC_PKCS7ContentInfo *cinfo,\n
      \                        CERTCertificate *cert,\n                         CERTCertDBHandle
      *certdb)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SEC_PKCS7ContentType
      Src: /src/nss/lib/pkcs7/p7create.c:798,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/pkcs7/p7create.c:816,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/pkcs7/p7create.c:823,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7create.c:828,1
    - Dst: PORT_ArenaGrow
      Src: /src/nss/lib/pkcs7/p7create.c:829,1
    - Dst: CERT_DestroyCertificate
      Src: /src/nss/lib/pkcs7/p7create.c:835,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 2
    argNames:
    - cinfo
    - cert
    argTypes:
    - SEC_PKCS7ContentInfo*
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 790
    functionDepth: 8
    functionLinenumber: 790
    functionLinenumberEnd: 845
    functionName: sec_pkcs7_add_certificate
    functionSourceFile: /src/nss/lib/pkcs7/p7create.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SEC_PKCS7ContentType
    - PORT_ArenaGrow
    - PORT_ArenaAlloc
    - CERT_DupCertificate
    - CERT_DestroyCertificate
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sec_pkcs7_add_certificate(SEC_PKCS7ContentInfo *cinfo,\n
      \                         CERTCertificate *cert)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sec_pkcs7_create_signed_data
      Src: /src/nss/lib/pkcs7/p7create.c:872,1
    - Dst: sec_pkcs7_add_cert_chain
      Src: /src/nss/lib/pkcs7/p7create.c:877,1
    - Dst: sec_pkcs7_add_certificate
      Src: /src/nss/lib/pkcs7/p7create.c:879,1
    - Dst: SEC_PKCS7DestroyContentInfo
      Src: /src/nss/lib/pkcs7/p7create.c:882,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - cert
    - include_chain
    - certdb
    argTypes:
    - CERTCertificate*
    - PRBool
    - CERTCertDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 864
    functionDepth: 10
    functionLinenumber: 864
    functionLinenumberEnd: 887
    functionName: SEC_PKCS7CreateCertsOnly
    functionSourceFile: /src/nss/lib/pkcs7/p7create.c
    functionUses: 2
    functionsReached:
    - sec_pkcs7_add_certificate
    - sec_pkcs7_create_signed_data
    - SEC_PKCS7DestroyContentInfo
    - sec_pkcs7_add_cert_chain
    linkageType: ''
    returnType: SEC_PKCS7ContentInfo
    signature: "SEC_PKCS7ContentInfo *\nSEC_PKCS7CreateCertsOnly(CERTCertificate *cert,\n
      \                        PRBool include_chain,\n                         CERTCertDBHandle
      *certdb)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SEC_PKCS7ContentType
      Src: /src/nss/lib/pkcs7/p7create.c:905,1
    - Dst: sec_pkcs7_add_cert_chain
      Src: /src/nss/lib/pkcs7/p7create.c:909,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - cinfo
    - cert
    - certdb
    argTypes:
    - SEC_PKCS7ContentInfo*
    - CERTCertificate*
    - CERTCertDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 898
    functionDepth: 3
    functionLinenumber: 898
    functionLinenumberEnd: 910
    functionName: SEC_PKCS7AddCertChain
    functionSourceFile: /src/nss/lib/pkcs7/p7create.c
    functionUses: 0
    functionsReached:
    - SEC_PKCS7ContentType
    - sec_pkcs7_add_cert_chain
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SEC_PKCS7AddCertChain(SEC_PKCS7ContentInfo *cinfo,\n                      CERTCertificate
      *cert,\n                      CERTCertDBHandle *certdb)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SEC_PKCS7ContentType
      Src: /src/nss/lib/pkcs7/p7create.c:923,1
    - Dst: sec_pkcs7_add_certificate
      Src: /src/nss/lib/pkcs7/p7create.c:927,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - cinfo
    - cert
    argTypes:
    - SEC_PKCS7ContentInfo*
    - CERTCertificate*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 918
    functionDepth: 9
    functionLinenumber: 918
    functionLinenumberEnd: 928
    functionName: SEC_PKCS7AddCertificate
    functionSourceFile: /src/nss/lib/pkcs7/p7create.c
    functionUses: 0
    functionsReached:
    - SEC_PKCS7ContentType
    - sec_pkcs7_add_certificate
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SEC_PKCS7AddCertificate(SEC_PKCS7ContentInfo *cinfo, CERTCertificate
      *cert)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7create.c:938,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7create.c:949,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/lib/pkcs7/p7create.c:951,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7create.c:952,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/pkcs7/p7create.c:954,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 6
    argNames:
    - enccinfo
    - poolp
    - kind
    - detached
    - encalg
    - keysize
    argTypes:
    - SEC_PKCS7EncryptedContentInfo*
    - PLArenaPool*
    - SECOidTag
    - PRBool
    - SECOidTag
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 964
      start: 930
    functionDepth: 0
    functionLinenumber: 930
    functionLinenumberEnd: 964
    functionName: sec_pkcs7_init_encrypted_content_info
    functionSourceFile: /src/nss/lib/pkcs7/p7create.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SECOID_FindOIDByTag
    - SECITEM_CopyItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sec_pkcs7_init_encrypted_content_info(SEC_PKCS7EncryptedContentInfo
      *enccinfo,\n                                      PLArenaPool *poolp,\n                                      SECOidTag
      kind, PRBool detached,\n                                      SECOidTag encalg,
      int keysize)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: SEC_PKCS7ContentType
      Src: /src/nss/lib/pkcs7/p7create.c:982,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/lib/pkcs7/p7create.c:1005,1
    - Dst: CERT_VerifyCert
      Src: /src/nss/lib/pkcs7/p7create.c:1010,1
    - Dst: PR_Now
      Src: /src/nss/lib/pkcs7/p7create.c:1010,1
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/pkcs7/p7create.c:1016,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs7/p7create.c:1018,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs7/p7create.c:1021,1
    - Dst: SEC_ASN1EncodeInteger
      Src: /src/nss/lib/pkcs7/p7create.c:1025,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs7/p7create.c:1028,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7create.c:1031,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/lib/pkcs7/p7create.c:1033,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs7/p7create.c:1035,1
    - Dst: CERT_GetCertIssuerAndSN
      Src: /src/nss/lib/pkcs7/p7create.c:1039,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs7/p7create.c:1041,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/pkcs7/p7create.c:1055,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7create.c:1061,1
    - Dst: PORT_ArenaGrow
      Src: /src/nss/lib/pkcs7/p7create.c:1062,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs7/p7create.c:1069,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/pkcs7/p7create.c:1078,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 65
    argCount: 4
    argNames:
    - cinfo
    - cert
    - certusage
    - certdb
    argTypes:
    - SEC_PKCS7ContentInfo*
    - CERTCertificate*
    - SECCertUsage
    - CERTCertDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 970
    functionDepth: 5
    functionLinenumber: 970
    functionLinenumberEnd: 1080
    functionName: sec_pkcs7_add_recipient
    functionSourceFile: /src/nss/lib/pkcs7/p7create.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SEC_PKCS7ContentType
    - PORT_ArenaZAlloc
    - PORT_ArenaGrow
    - PORT_ArenaAlloc
    - CERT_VerifyCert
    - PORT_ArenaRelease
    - PORT_ArenaMark
    - PR_Now
    - CERT_GetDefaultCertDB
    - SEC_ASN1EncodeInteger
    - CERT_DupCertificate
    - CERT_GetCertIssuerAndSN
    - PORT_ArenaUnmark
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sec_pkcs7_add_recipient(SEC_PKCS7ContentInfo *cinfo,\n                        CERTCertificate
      *cert,\n                        SECCertUsage certusage,\n                        CERTCertDBHandle
      *certdb)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sec_pkcs7_create_content_info
      Src: /src/nss/lib/pkcs7/p7create.c:1120,1
    - Dst: sec_pkcs7_add_recipient
      Src: /src/nss/lib/pkcs7/p7create.c:1125,1
    - Dst: SEC_PKCS7DestroyContentInfo
      Src: /src/nss/lib/pkcs7/p7create.c:1127,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7create.c:1132,1
    - Dst: sec_pkcs7_init_encrypted_content_info
      Src: /src/nss/lib/pkcs7/p7create.c:1138,1
    - Dst: SEC_PKCS7DestroyContentInfo
      Src: /src/nss/lib/pkcs7/p7create.c:1143,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 7
    argNames:
    - cert
    - certusage
    - certdb
    - encalg
    - keysize
    - pwfn
    - pwfn_arg
    argTypes:
    - CERTCertificate*
    - SECCertUsage
    - CERTCertDBHandle*
    - SECOidTag
    - int
    - SECKEYGetPasswordKey
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1108
    functionDepth: 9
    functionLinenumber: 1108
    functionLinenumberEnd: 1150
    functionName: SEC_PKCS7CreateEnvelopedData
    functionSourceFile: /src/nss/lib/pkcs7/p7create.c
    functionUses: 3
    functionsReached:
    - PORT_Assert
    - SEC_PKCS7DestroyContentInfo
    - sec_pkcs7_init_encrypted_content_info
    - sec_pkcs7_create_content_info
    - sec_pkcs7_add_recipient
    linkageType: ''
    returnType: SEC_PKCS7ContentInfo
    signature: "SEC_PKCS7ContentInfo *\nSEC_PKCS7CreateEnvelopedData(CERTCertificate
      *cert,\n                             SECCertUsage certusage,\n                             CERTCertDBHandle
      *certdb,\n                             SECOidTag encalg,\n                             int
      keysize,\n                             SECKEYGetPasswordKey pwfn, void *pwfn_arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sec_pkcs7_add_recipient
      Src: /src/nss/lib/pkcs7/p7create.c:1175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - cinfo
    - cert
    - certusage
    - certdb
    argTypes:
    - SEC_PKCS7ContentInfo*
    - CERTCertificate*
    - SECCertUsage
    - CERTCertDBHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1176
      start: 1169
    functionDepth: 6
    functionLinenumber: 1169
    functionLinenumberEnd: 1176
    functionName: SEC_PKCS7AddRecipient
    functionSourceFile: /src/nss/lib/pkcs7/p7create.c
    functionUses: 3
    functionsReached:
    - sec_pkcs7_add_recipient
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SEC_PKCS7AddRecipient(SEC_PKCS7ContentInfo *cinfo,\n                      CERTCertificate
      *cert,\n                      SECCertUsage certusage,\n                      CERTCertDBHandle
      *certdb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sec_pkcs7_create_content_info
      Src: /src/nss/lib/pkcs7/p7create.c:1187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1189
      start: 1184
    functionDepth: 2
    functionLinenumber: 1184
    functionLinenumberEnd: 1189
    functionName: SEC_PKCS7CreateData
    functionSourceFile: /src/nss/lib/pkcs7/p7create.c
    functionUses: 3
    functionsReached:
    - sec_pkcs7_create_content_info
    linkageType: ''
    returnType: SEC_PKCS7ContentInfo
    signature: 'SEC_PKCS7ContentInfo *

      SEC_PKCS7CreateData(void)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sec_pkcs7_create_content_info
      Src: /src/nss/lib/pkcs7/p7create.c:1208,1
    - Dst: SEC_PKCS5IsAlgorithmPBEAlgTag
      Src: /src/nss/lib/pkcs7/p7create.c:1216,1
    - Dst: SECOID_SetAlgorithmID
      Src: /src/nss/lib/pkcs7/p7create.c:1217,1
    - Dst: PK11_CreatePBEAlgorithmID
      Src: /src/nss/lib/pkcs7/p7create.c:1227,1
    - Dst: SECOID_CopyAlgorithmID
      Src: /src/nss/lib/pkcs7/p7create.c:1233,1
    - Dst: SECOID_DestroyAlgorithmID
      Src: /src/nss/lib/pkcs7/p7create.c:1234,1
    - Dst: SEC_PKCS7DestroyContentInfo
      Src: /src/nss/lib/pkcs7/p7create.c:1239,1
    - Dst: sec_pkcs7_init_encrypted_content_info
      Src: /src/nss/lib/pkcs7/p7create.c:1243,1
    - Dst: SEC_PKCS7DestroyContentInfo
      Src: /src/nss/lib/pkcs7/p7create.c:1248,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 4
    argNames:
    - algorithm
    - keysize
    - pwfn
    - pwfn_arg
    argTypes:
    - SECOidTag
    - int
    - SECKEYGetPasswordKey
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1253
      start: 1199
    functionDepth: 13
    functionLinenumber: 1199
    functionLinenumberEnd: 1253
    functionName: SEC_PKCS7CreateEncryptedData
    functionSourceFile: /src/nss/lib/pkcs7/p7create.c
    functionUses: 2
    functionsReached:
    - SEC_PKCS7DestroyContentInfo
    - PK11_CreatePBEAlgorithmID
    - sec_pkcs7_init_encrypted_content_info
    - sec_pkcs7_create_content_info
    - SECOID_CopyAlgorithmID
    - SECOID_SetAlgorithmID
    - SEC_PKCS5IsAlgorithmPBEAlgTag
    - SECOID_DestroyAlgorithmID
    linkageType: ''
    returnType: SEC_PKCS7ContentInfo
    signature: "SEC_PKCS7ContentInfo *\nSEC_PKCS7CreateEncryptedData(SECOidTag algorithm,
      int keysize,\n                             SECKEYGetPasswordKey pwfn, void *pwfn_arg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7create.c:1267,1
    - Dst: SEC_PKCS5IsAlgorithmPBEAlgTag
      Src: /src/nss/lib/pkcs7/p7create.c:1267,1
    - Dst: sec_pkcs7_create_content_info
      Src: /src/nss/lib/pkcs7/p7create.c:1269,1
    - Dst: PK11_CreatePBEV2AlgorithmID
      Src: /src/nss/lib/pkcs7/p7create.c:1278,1
    - Dst: SECOID_CopyAlgorithmID
      Src: /src/nss/lib/pkcs7/p7create.c:1287,1
    - Dst: SECOID_DestroyAlgorithmID
      Src: /src/nss/lib/pkcs7/p7create.c:1288,1
    - Dst: SEC_PKCS7DestroyContentInfo
      Src: /src/nss/lib/pkcs7/p7create.c:1292,1
    - Dst: sec_pkcs7_init_encrypted_content_info
      Src: /src/nss/lib/pkcs7/p7create.c:1296,1
    - Dst: SEC_PKCS7DestroyContentInfo
      Src: /src/nss/lib/pkcs7/p7create.c:1301,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 6
    argNames:
    - pbe_algorithm
    - cipher_algorithm
    - prf_algorithm
    - keysize
    - pwfn
    - pwfn_arg
    argTypes:
    - SECOidTag
    - SECOidTag
    - SECOidTag
    - int
    - SECKEYGetPasswordKey
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1306
      start: 1255
    functionDepth: 13
    functionLinenumber: 1255
    functionLinenumberEnd: 1306
    functionName: SEC_PKCS7CreateEncryptedDataWithPBEV2
    functionSourceFile: /src/nss/lib/pkcs7/p7create.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - SEC_PKCS7DestroyContentInfo
    - sec_pkcs7_init_encrypted_content_info
    - sec_pkcs7_create_content_info
    - SECOID_CopyAlgorithmID
    - SEC_PKCS5IsAlgorithmPBEAlgTag
    - SECOID_DestroyAlgorithmID
    - PK11_CreatePBEV2AlgorithmID
    linkageType: ''
    returnType: SEC_PKCS7ContentInfo
    signature: "SEC_PKCS7ContentInfo *\nSEC_PKCS7CreateEncryptedDataWithPBEV2(SECOidTag
      pbe_algorithm,\n                                      SECOidTag cipher_algorithm,\n
      \                                     SECOidTag prf_algorithm,\n                                      int
      keysize,\n                                      SECKEYGetPasswordKey pwfn, void
      *pwfn_arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/pkcs7/certread.c:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cinfo
    argTypes:
    - ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 89
    functionName: GetContentTypeTag
    functionSourceFile: /src/nss/lib/pkcs7/certread.c
    functionUses: 18
    functionsReached:
    - SECOID_FindOIDTag
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag GetContentTypeTag(ContentInfo *cinfo)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/certread.c:98,1
    - Dst: GetContentTypeTag
      Src: /src/nss/lib/pkcs7/certread.c:103,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/pkcs7/certread.c:106,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/pkcs7/certread.c:109,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - src_or_dest
    - encoding
    argTypes:
    - void*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 116
    functionName: choose_content_template
    functionSourceFile: /src/nss/lib/pkcs7/certread.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SEC_ASN1_GET
    - GetContentTypeTag
    linkageType: ''
    returnType: SEC_ASN1Template
    signature: 'SEC_ASN1Template *

      choose_content_template(void *src_or_dest, PRBool encoding)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/pkcs7/certread.c:127,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/pkcs7/certread.c:132,1
    - Dst: SEC_ASN1DecodeItem
      Src: /src/nss/lib/pkcs7/certread.c:133,1
    - Dst: GetContentTypeTag
      Src: /src/nss/lib/pkcs7/certread.c:138,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs7/certread.c:143,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pkcs7/certread.c:162,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 3
    argNames:
    - pkcs7Item
    - f
    - arg
    argTypes:
    - SECItem*
    - CERTImportCertificateFunc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 166
    functionName: SEC_ReadPKCS7Certs
    functionSourceFile: /src/nss/lib/pkcs7/certread.c
    functionUses: 0
    functionsReached:
    - PORT_NewArena
    - GetContentTypeTag
    - PORT_FreeArena
    - SEC_ASN1DecodeItem
    - PORT_SetError
    - PORT_Memset
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SEC_ReadPKCS7Certs(SECItem *pkcs7Item, CERTImportCertificateFunc
      f, void *arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/pkcs7/certread.c:182,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/pkcs7/certread.c:187,1
    - Dst: SEC_ASN1DecodeItem
      Src: /src/nss/lib/pkcs7/certread.c:188,1
    - Dst: GetContentTypeTag
      Src: /src/nss/lib/pkcs7/certread.c:193,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/pkcs7/certread.c:197,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pkcs7/certread.c:217,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 3
    argNames:
    - certsItem
    - f
    - arg
    argTypes:
    - SECItem*
    - CERTImportCertificateFunc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 221
    functionName: SEC_ReadCertSequence
    functionSourceFile: /src/nss/lib/pkcs7/certread.c
    functionUses: 0
    functionsReached:
    - PORT_NewArena
    - GetContentTypeTag
    - PORT_FreeArena
    - SEC_ASN1DecodeItem
    - SEC_QuickDERDecodeItem
    - PORT_Memset
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SEC_ReadCertSequence(SECItem *certsItem, CERTImportCertificateFunc
      f, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ATOB_ConvertAsciiToItem
      Src: /src/nss/lib/pkcs7/certread.c:230,1
    - Dst: CERT_NewTempCertificate
      Src: /src/nss/lib/pkcs7/certread.c:234,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/lib/pkcs7/certread.c:234,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pkcs7/certread.c:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - certstr
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 223
    functionDepth: 8
    functionLinenumber: 223
    functionLinenumberEnd: 239
    functionName: CERT_ConvertAndDecodeCertificate
    functionSourceFile: /src/nss/lib/pkcs7/certread.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    - CERT_GetDefaultCertDB
    - ATOB_ConvertAsciiToItem
    - CERT_NewTempCertificate
    linkageType: ''
    returnType: CERTCertificate
    signature: 'CERTCertificate *

      CERT_ConvertAndDecodeCertificate(char *certstr)'
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs7/certread.c:261,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs7/certread.c:277,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs7/certread.c:328,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs7/certread.c:330,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs7/certread.c:347,1
    - Dst: SECOID_FindOID
      Src: /src/nss/lib/pkcs7/certread.c:351,1
    - Dst: SEC_ReadPKCS7Certs
      Src: /src/nss/lib/pkcs7/certread.c:362,1
    - Dst: SEC_ReadCertSequence
      Src: /src/nss/lib/pkcs7/certread.c:366,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/pkcs7/certread.c:390,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pkcs7/certread.c:396,1
    - Dst: PORT_Strchr
      Src: /src/nss/lib/pkcs7/certread.c:399,1
    - Dst: PORT_Strchr
      Src: /src/nss/lib/pkcs7/certread.c:402,1
    - Dst: PORT_Strncasecmp
      Src: /src/nss/lib/pkcs7/certread.c:413,1
    - Dst: PORT_Strncasecmp
      Src: /src/nss/lib/pkcs7/certread.c:440,1
    - Dst: ATOB_AsciiToData
      Src: /src/nss/lib/pkcs7/certread.c:465,1
    - Dst: CERT_DecodeCertPackage
      Src: /src/nss/lib/pkcs7/certread.c:472,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs7/certread.c:475,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pkcs7/certread.c:483,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pkcs7/certread.c:487,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 158
    argCount: 4
    argNames:
    - certbuf
    - certlen
    - f
    - arg
    argTypes:
    - char*
    - int
    - CERTImportCertificateFunc
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 491
    functionName: CERT_DecodeCertPackage
    functionSourceFile: /src/nss/lib/pkcs7/certread.c
    functionUses: 1
    functionsReached:
    - PORT_Alloc
    - PORT_Strchr
    - PORT_Memcpy
    - PORT_Strncasecmp
    - CERT_DecodeCertPackage
    - PORT_Free
    - SECOID_FindOID
    - SEC_ReadCertSequence
    - PORT_SetError
    - SEC_ReadPKCS7Certs
    - ATOB_AsciiToData
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CERT_DecodeCertPackage(char *certbuf,\n                       int
      certlen,\n                       CERTImportCertificateFunc f,\n                       void
      *arg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs7/certread.c:503,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs7/certread.c:507,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/pkcs7/certread.c:510,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - arg
    - certs
    - numcerts
    argTypes:
    - void*
    - SECItem**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 511
    functionName: collect_certs
    functionSourceFile: /src/nss/lib/pkcs7/certread.c
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - SECITEM_CopyItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus collect_certs(void *arg, SECItem **certs, int numcerts)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/pkcs7/certread.c:523,1
    - Dst: CERT_DecodeCertPackage
      Src: /src/nss/lib/pkcs7/certread.c:527,1
    - Dst: CERT_NewTempCertificate
      Src: /src/nss/lib/pkcs7/certread.c:530,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/lib/pkcs7/certread.c:530,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pkcs7/certread.c:535,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - certbuf
    - certlen
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 516
    functionDepth: 8
    functionLinenumber: 516
    functionLinenumberEnd: 538
    functionName: CERT_DecodeCertFromPackage
    functionSourceFile: /src/nss/lib/pkcs7/certread.c
    functionUses: 2
    functionsReached:
    - PORT_NewArena
    - CERT_DecodeCertPackage
    - PORT_FreeArena
    - CERT_GetDefaultCertDB
    - CERT_NewTempCertificate
    linkageType: ''
    returnType: CERTCertificate
    signature: 'CERTCertificate *

      CERT_DecodeCertFromPackage(char *certbuf, int certlen)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7local.c:43,1
    - Dst: PK11_CipherOp
      Src: /src/nss/lib/pkcs7/p7local.c:45,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7local.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - vctx
    - output
    - outputLen
    - maxOutputLen
    - input
    - inputLen
    argTypes:
    - void*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 37
    functionDepth: 10
    functionLinenumber: 37
    functionLinenumberEnd: 49
    functionName: SECPKCS7Cipher_PK11_CipherOp
    functionSourceFile: /src/nss/lib/pkcs7/p7local.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - PK11_CipherOp
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SECPKCS7Cipher_PK11_CipherOp(void *vctx, unsigned char *output,\n
      \                            unsigned int *outputLen, unsigned int maxOutputLen,\n
      \                            const unsigned char *input, unsigned int inputLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/pkcs7/p7local.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - vctx
    - freeit
    argTypes:
    - void*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 50
    functionDepth: 5
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: SECPKCS7Cipher_PK11_DestroyContext
    functionSourceFile: /src/nss/lib/pkcs7/p7local.c
    functionUses: 0
    functionsReached:
    - PK11_DestroyContext
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SECPKCS7Cipher_PK11_DestroyContext(void *vctx, PRBool freeit)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/pkcs7/p7local.c:100,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/pkcs7/p7local.c:105,1
    - Dst: SEC_PKCS5IsAlgorithmPBEAlg
      Src: /src/nss/lib/pkcs7/p7local.c:107,1
    - Dst: PK11_GetSymKeyUserData
      Src: /src/nss/lib/pkcs7/p7local.c:110,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pkcs7/p7local.c:112,1
    - Dst: PK11_GetPBECryptoMechanism
      Src: /src/nss/lib/pkcs7/p7local.c:116,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pkcs7/p7local.c:118,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pkcs7/p7local.c:119,1
    - Dst: PK11_AlgtagToMechanism
      Src: /src/nss/lib/pkcs7/p7local.c:123,1
    - Dst: PK11_ParamFromAlgid
      Src: /src/nss/lib/pkcs7/p7local.c:124,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pkcs7/p7local.c:126,1
    - Dst: PK11_GetBlockSize
      Src: /src/nss/lib/pkcs7/p7local.c:131,1
    - Dst: PK11_GetSlotFromKey
      Src: /src/nss/lib/pkcs7/p7local.c:132,1
    - Dst: PK11_IsHW
      Src: /src/nss/lib/pkcs7/p7local.c:133,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pkcs7/p7local.c:134,1
    - Dst: PK11_CreateContextBySymKey
      Src: /src/nss/lib/pkcs7/p7local.c:135,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pkcs7/p7local.c:137,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pkcs7/p7local.c:139,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 42
    argCount: 2
    argNames:
    - key
    - algid
    argTypes:
    - PK11SymKey*
    - SECAlgorithmID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 89
    functionDepth: 12
    functionLinenumber: 89
    functionLinenumberEnd: 150
    functionName: sec_PKCS7CreateDecryptObject
    functionSourceFile: /src/nss/lib/pkcs7/p7local.c
    functionUses: 0
    functionsReached:
    - PK11_GetPBECryptoMechanism
    - PK11_FreeSlot
    - SECOID_GetAlgorithmTag
    - PK11_GetBlockSize
    - PK11_GetSlotFromKey
    - PORT_Free
    - PK11_ParamFromAlgid
    - PORT_ZAlloc
    - PK11_AlgtagToMechanism
    - PK11_GetSymKeyUserData
    - SEC_PKCS5IsAlgorithmPBEAlg
    - PK11_CreateContextBySymKey
    - PK11_IsHW
    - SECITEM_FreeItem
    linkageType: ''
    returnType: sec_PKCS7CipherObject
    signature: 'sec_PKCS7CipherObject *

      sec_PKCS7CreateDecryptObject(PK11SymKey *key, SECAlgorithmID *algid)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/pkcs7/p7local.c:178,1
    - Dst: SEC_PKCS5IsAlgorithmPBEAlg
      Src: /src/nss/lib/pkcs7/p7local.c:183,1
    - Dst: PK11_GetSymKeyUserData
      Src: /src/nss/lib/pkcs7/p7local.c:186,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pkcs7/p7local.c:188,1
    - Dst: PK11_GetPBECryptoMechanism
      Src: /src/nss/lib/pkcs7/p7local.c:192,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pkcs7/p7local.c:194,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pkcs7/p7local.c:195,1
    - Dst: PK11_AlgtagToMechanism
      Src: /src/nss/lib/pkcs7/p7local.c:199,1
    - Dst: PK11_GenerateNewParam
      Src: /src/nss/lib/pkcs7/p7local.c:200,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pkcs7/p7local.c:202,1
    - Dst: PK11_GetBlockSize
      Src: /src/nss/lib/pkcs7/p7local.c:208,1
    - Dst: PK11_GetSlotFromKey
      Src: /src/nss/lib/pkcs7/p7local.c:209,1
    - Dst: PK11_IsHW
      Src: /src/nss/lib/pkcs7/p7local.c:210,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pkcs7/p7local.c:211,1
    - Dst: PK11_CreateContextBySymKey
      Src: /src/nss/lib/pkcs7/p7local.c:212,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pkcs7/p7local.c:215,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pkcs7/p7local.c:216,1
    - Dst: PK11_ParamToAlgid
      Src: /src/nss/lib/pkcs7/p7local.c:226,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pkcs7/p7local.c:228,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pkcs7/p7local.c:229,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/lib/pkcs7/p7local.c:230,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pkcs7/p7local.c:234,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 52
    argCount: 4
    argNames:
    - poolp
    - key
    - algtag
    - algid
    argTypes:
    - PLArenaPool*
    - PK11SymKey*
    - SECOidTag
    - SECAlgorithmID*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 165
    functionDepth: 12
    functionLinenumber: 165
    functionLinenumberEnd: 243
    functionName: sec_PKCS7CreateEncryptObject
    functionSourceFile: /src/nss/lib/pkcs7/p7local.c
    functionUses: 1
    functionsReached:
    - PK11_GetPBECryptoMechanism
    - PK11_FreeSlot
    - PK11_ParamToAlgid
    - PK11_DestroyContext
    - PK11_GetBlockSize
    - PK11_GetSlotFromKey
    - PORT_Free
    - PORT_ZAlloc
    - PK11_AlgtagToMechanism
    - PK11_GenerateNewParam
    - PK11_GetSymKeyUserData
    - SEC_PKCS5IsAlgorithmPBEAlg
    - PK11_CreateContextBySymKey
    - PK11_IsHW
    - SECITEM_FreeItem
    linkageType: ''
    returnType: sec_PKCS7CipherObject
    signature: "sec_PKCS7CipherObject *\nsec_PKCS7CreateEncryptObject(PLArenaPool
      *poolp, PK11SymKey *key,\n                             SECOidTag algtag, SECAlgorithmID
      *algid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Free
      Src: /src/nss/lib/pkcs7/p7local.c:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - obj
    argTypes:
    - sec_PKCS7CipherObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 253
    functionName: sec_pkcs7_destroy_cipher
    functionSourceFile: /src/nss/lib/pkcs7/p7local.c
    functionUses: 0
    functionsReached:
    - PORT_Free
    linkageType: ''
    returnType: void
    signature: void sec_pkcs7_destroy_cipher(sec_PKCS7CipherObject *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7local.c:258,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7local.c:261,1
    - Dst: sec_pkcs7_destroy_cipher
      Src: /src/nss/lib/pkcs7/p7local.c:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - sec_PKCS7CipherObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 263
    functionName: sec_PKCS7DestroyDecryptObject
    functionSourceFile: /src/nss/lib/pkcs7/p7local.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - sec_pkcs7_destroy_cipher
    linkageType: ''
    returnType: void
    signature: void sec_PKCS7DestroyDecryptObject(sec_PKCS7CipherObject *obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7local.c:268,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7local.c:271,1
    - Dst: sec_pkcs7_destroy_cipher
      Src: /src/nss/lib/pkcs7/p7local.c:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - obj
    argTypes:
    - sec_PKCS7CipherObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 273
    functionName: sec_PKCS7DestroyEncryptObject
    functionSourceFile: /src/nss/lib/pkcs7/p7local.c
    functionUses: 2
    functionsReached:
    - PORT_Assert
    - sec_pkcs7_destroy_cipher
    linkageType: ''
    returnType: void
    signature: void sec_PKCS7DestroyEncryptObject(sec_PKCS7CipherObject *obj)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7local.c:302,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - obj
    - input_len
    - final
    argTypes:
    - sec_PKCS7CipherObject*
    - unsigned int
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 336
    functionName: sec_PKCS7DecryptLength
    functionSourceFile: /src/nss/lib/pkcs7/p7local.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int sec_PKCS7DecryptLength(sec_PKCS7CipherObject *obj, unsigned
      int input_len,\n                       PRBool final)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7local.c:357,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - obj
    - input_len
    - final
    argTypes:
    - sec_PKCS7CipherObject*
    - unsigned int
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 391
    functionName: sec_PKCS7EncryptLength
    functionSourceFile: /src/nss/lib/pkcs7/p7local.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int sec_PKCS7EncryptLength(sec_PKCS7CipherObject *obj, unsigned
      int input_len,\n                       PRBool final)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7local.c:424,1
    - Dst: sec_PKCS7DecryptLength
      Src: /src/nss/lib/pkcs7/p7local.c:430,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7local.c:431,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7local.c:485,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs7/p7local.c:486,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7local.c:502,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7local.c:531,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs7/p7local.c:534,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7local.c:540,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pkcs7/p7local.c:543,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7local.c:558,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs7/p7local.c:560,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs7/p7local.c:576,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7local.c:582,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 82
    argCount: 7
    argNames:
    - obj
    - output
    - output_len_p
    - max_output_len
    - input
    - input_len
    - final
    argTypes:
    - sec_PKCS7CipherObject*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 587
    functionName: sec_PKCS7Decrypt
    functionSourceFile: /src/nss/lib/pkcs7/p7local.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - sec_PKCS7DecryptLength
    - PORT_SetError
    - PORT_Memcpy
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sec_PKCS7Decrypt(sec_PKCS7CipherObject *obj, unsigned char
      *output,\n                 unsigned int *output_len_p, unsigned int max_output_len,\n
      \                const unsigned char *input, unsigned int input_len,\n                 PRBool
      final)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7local.c:625,1
    - Dst: sec_PKCS7EncryptLength
      Src: /src/nss/lib/pkcs7/p7local.c:631,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7local.c:632,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7local.c:688,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7local.c:702,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7local.c:718,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7local.c:726,1
    - Dst: PORT_Memcpy
      Src: /src/nss/lib/pkcs7/p7local.c:728,1
    - Dst: PORT_Memset
      Src: /src/nss/lib/pkcs7/p7local.c:734,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7local.c:748,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7local.c:754,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 74
    argCount: 7
    argNames:
    - obj
    - output
    - output_len_p
    - max_output_len
    - input
    - input_len
    - final
    argTypes:
    - sec_PKCS7CipherObject*
    - unsigned char*
    - unsigned int*
    - unsigned int
    - unsigned char*
    - unsigned int
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 614
    functionDepth: 1
    functionLinenumber: 614
    functionLinenumberEnd: 759
    functionName: sec_PKCS7Encrypt
    functionSourceFile: /src/nss/lib/pkcs7/p7local.c
    functionUses: 1
    functionsReached:
    - PORT_Memset
    - PORT_Assert
    - PORT_Memcpy
    - sec_PKCS7EncryptLength
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sec_PKCS7Encrypt(sec_PKCS7CipherObject *obj, unsigned char
      *output,\n                 unsigned int *output_len_p, unsigned int max_output_len,\n
      \                const unsigned char *input, unsigned int input_len,\n                 PRBool
      final)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/lib/pkcs7/p7local.c:793,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/pkcs7/p7local.c:798,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/pkcs7/p7local.c:809,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 21
    argCount: 3
    argNames:
    - attrs
    - oidtag
    - only
    argTypes:
    - SEC_PKCS7Attribute**
    - SECOidTag
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 783
    functionDepth: 0
    functionLinenumber: 783
    functionLinenumberEnd: 817
    functionName: sec_PKCS7FindAttribute
    functionSourceFile: /src/nss/lib/pkcs7/p7local.c
    functionUses: 3
    functionsReached:
    - PORT_Memcmp
    - SECOID_FindOIDByTag
    linkageType: ''
    returnType: SEC_PKCS7Attribute
    signature: "SEC_PKCS7Attribute *\nsec_PKCS7FindAttribute(SEC_PKCS7Attribute **attrs,
      SECOidTag oidtag,\n                       PRBool only)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - attr
    argTypes:
    - SEC_PKCS7Attribute*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 824
    functionDepth: 0
    functionLinenumber: 824
    functionLinenumberEnd: 841
    functionName: sec_PKCS7AttributeValue
    functionSourceFile: /src/nss/lib/pkcs7/p7local.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      sec_PKCS7AttributeValue(SEC_PKCS7Attribute *attr)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7local.c:852,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/pkcs7/p7local.c:859,1
    - Dst: SECOID_FindOID
      Src: /src/nss/lib/pkcs7/p7local.c:863,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/pkcs7/p7local.c:869,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/pkcs7/p7local.c:874,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/pkcs7/p7local.c:880,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/pkcs7/p7local.c:884,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/pkcs7/p7local.c:888,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/pkcs7/p7local.c:892,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7local.c:906,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 47
    argCount: 2
    argNames:
    - src_or_dest
    - encoding
    argTypes:
    - void*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 843
    functionDepth: 1
    functionLinenumber: 843
    functionLinenumberEnd: 915
    functionName: sec_attr_choose_attr_value_template
    functionSourceFile: /src/nss/lib/pkcs7/p7local.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SEC_ASN1_GET
    - SECOID_FindOID
    linkageType: ''
    returnType: SEC_ASN1Template
    signature: 'SEC_ASN1Template *

      sec_attr_choose_attr_value_template(void *src_or_dest, PRBool encoding)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/pkcs7/p7local.c:944,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - poolp
    - dest
    - src
    argTypes:
    - PLArenaPool*
    - SECItem*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 941
    functionDepth: 0
    functionLinenumber: 941
    functionLinenumberEnd: 946
    functionName: sec_PKCS7EncodeAttributes
    functionSourceFile: /src/nss/lib/pkcs7/p7local.c
    functionUses: 1
    functionsReached:
    - SEC_ASN1EncodeItem
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      sec_PKCS7EncodeAttributes(PLArenaPool *poolp, SECItem *dest, void *src)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7local.c:966,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7local.c:982,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/pkcs7/p7local.c:990,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs7/p7local.c:998,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs7/p7local.c:999,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pkcs7/p7local.c:1002,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/pkcs7/p7local.c:1010,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pkcs7/p7local.c:1013,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7local.c:1032,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7local.c:1069,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pkcs7/p7local.c:1087,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 56
    argCount: 1
    argNames:
    - attrs
    argTypes:
    - SEC_PKCS7Attribute**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 953
    functionDepth: 0
    functionLinenumber: 953
    functionLinenumberEnd: 1089
    functionName: sec_PKCS7ReorderAttributes
    functionSourceFile: /src/nss/lib/pkcs7/p7local.c
    functionUses: 1
    functionsReached:
    - PORT_Assert
    - SEC_ASN1EncodeItem
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - PORT_FreeArena
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus sec_PKCS7ReorderAttributes(SEC_PKCS7Attribute **attrs)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7local.c:1297,1
    - Dst: SEC_PKCS7ContentType
      Src: /src/nss/lib/pkcs7/p7local.c:1302,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/pkcs7/p7local.c:1305,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/lib/pkcs7/p7local.c:1308,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 2
    argNames:
    - src_or_dest
    - encoding
    argTypes:
    - void*
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1327
      start: 1290
    functionDepth: 1
    functionLinenumber: 1290
    functionLinenumberEnd: 1327
    functionName: sec_pkcs7_choose_content_template
    functionSourceFile: /src/nss/lib/pkcs7/p7local.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SEC_PKCS7ContentType
    - SEC_ASN1_GET
    linkageType: ''
    returnType: SEC_ASN1Template
    signature: 'SEC_ASN1Template *

      sec_pkcs7_choose_content_template(void *src_or_dest, PRBool encoding)'
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7decode.c:79,1
    - Dst: sec_PKCS7DecryptLength
      Src: /src/nss/lib/pkcs7/p7decode.c:97,1
    - Dst: sec_PKCS7Decrypt
      Src: /src/nss/lib/pkcs7/p7decode.c:105,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/pkcs7/p7decode.c:108,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/pkcs7/p7decode.c:115,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/pkcs7/p7decode.c:129,1
    - Dst: PORT_ArenaGrow
      Src: /src/nss/lib/pkcs7/p7decode.c:132,1
    - Dst: sec_PKCS7Decrypt
      Src: /src/nss/lib/pkcs7/p7decode.c:144,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/pkcs7/p7decode.c:147,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7decode.c:151,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7decode.c:174,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pkcs7/p7decode.c:175,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 59
    argCount: 5
    argNames:
    - p7dcx
    - worker
    - data
    - len
    - final
    argTypes:
    - SEC_PKCS7DecoderContext*
    - struct sec_pkcs7_decoder_worker*
    - unsigned char*
    - unsigned long
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 178
    functionName: sec_pkcs7_decoder_work_data
    functionSourceFile: /src/nss/lib/pkcs7/p7decode.c
    functionUses: 0
    functionsReached:
    - PORT_Alloc
    - PORT_Assert
    - sec_PKCS7Decrypt
    - PORT_ArenaGrow
    - PORT_ArenaAlloc
    - sec_PKCS7DecryptLength
    - PORT_Free
    - PORT_GetError
    linkageType: ''
    returnType: void
    signature: "void sec_pkcs7_decoder_work_data(SEC_PKCS7DecoderContext *p7dcx,\n
      \                           struct sec_pkcs7_decoder_worker *worker,\n                            const
      unsigned char *data, unsigned long len,\n                            PRBool
      final)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7decode.c:201,1
    - Dst: sec_pkcs7_decoder_work_data
      Src: /src/nss/lib/pkcs7/p7decode.c:216,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - arg
    - data
    - len
    - depth
    - data_kind
    argTypes:
    - void*
    - char*
    - unsigned long
    - int
    - SEC_ASN1EncodingPart
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 180
    functionDepth: 3
    functionLinenumber: 180
    functionLinenumberEnd: 218
    functionName: sec_pkcs7_decoder_filter
    functionSourceFile: /src/nss/lib/pkcs7/p7decode.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - sec_pkcs7_decoder_work_data
    linkageType: ''
    returnType: void
    signature: "void sec_pkcs7_decoder_filter(void *arg, const char *data, unsigned
      long len,\n                         int depth, SEC_ASN1EncodingPart data_kind)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/pkcs7/p7decode.c:250,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/pkcs7/p7decode.c:252,1
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/pkcs7/p7decode.c:267,1
    - Dst: HASH_GetHashObjectByOidTag
      Src: /src/nss/lib/pkcs7/p7decode.c:268,1
    - Dst: SEC_ASN1DecoderSetFilterProc
      Src: /src/nss/lib/pkcs7/p7decode.c:294,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 3
    argNames:
    - p7dcx
    - depth
    - digestalgs
    argTypes:
    - SEC_PKCS7DecoderContext*
    - int
    - SECAlgorithmID**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 299
    functionName: sec_pkcs7_decoder_start_digests
    functionSourceFile: /src/nss/lib/pkcs7/p7decode.c
    functionUses: 0
    functionsReached:
    - SECOID_FindOIDTag
    - PORT_ArenaAlloc
    - SEC_ASN1DecoderSetFilterProc
    - HASH_GetHashObjectByOidTag
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sec_pkcs7_decoder_start_digests(SEC_PKCS7DecoderContext
      *p7dcx, int depth,\n                                SECAlgorithmID **digestalgs)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1DecoderClearFilterProc
      Src: /src/nss/lib/pkcs7/p7decode.c:334,1
    - Dst: PORT_ArenaMark
      Src: /src/nss/lib/pkcs7/p7decode.c:351,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/pkcs7/p7decode.c:357,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/pkcs7/p7decode.c:358,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/pkcs7/p7decode.c:360,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs7/p7decode.c:361,1
    - Dst: PORT_ArenaAlloc
      Src: /src/nss/lib/pkcs7/p7decode.c:369,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/pkcs7/p7decode.c:371,1
    - Dst: PORT_ArenaRelease
      Src: /src/nss/lib/pkcs7/p7decode.c:372,1
    - Dst: PORT_ArenaUnmark
      Src: /src/nss/lib/pkcs7/p7decode.c:385,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 3
    argNames:
    - p7dcx
    - poolp
    - digestsp
    argTypes:
    - SEC_PKCS7DecoderContext*
    - PLArenaPool*
    - SECItem***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 387
    functionName: sec_pkcs7_decoder_finish_digests
    functionSourceFile: /src/nss/lib/pkcs7/p7decode.c
    functionUses: 0
    functionsReached:
    - SEC_ASN1DecoderClearFilterProc
    - PORT_ArenaAlloc
    - PORT_ArenaRelease
    - PORT_GetError
    - PORT_ArenaMark
    - PORT_ArenaUnmark
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sec_pkcs7_decoder_finish_digests(SEC_PKCS7DecoderContext
      *p7dcx,\n                                 PLArenaPool *poolp,\n                                 SECItem
      ***digestsp)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PK11_FindCertAndKeyByRecipientList
      Src: /src/nss/lib/pkcs7/p7decode.c:411,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7decode.c:419,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/pkcs7/p7decode.c:421,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/pkcs7/p7decode.c:422,1
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/pkcs7/p7decode.c:427,1
    - Dst: PK11_PubUnwrapSymKey
      Src: /src/nss/lib/pkcs7/p7decode.c:431,1
    - Dst: PK11_AlgtagToMechanism
      Src: /src/nss/lib/pkcs7/p7decode.c:432,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/pkcs7/p7decode.c:435,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs7/p7decode.c:436,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/lib/pkcs7/p7decode.c:447,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/lib/pkcs7/p7decode.c:449,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 3
    argNames:
    - p7dcx
    - recipientinfos
    - enccinfo
    argTypes:
    - SEC_PKCS7DecoderContext*
    - SEC_PKCS7RecipientInfo**
    - SEC_PKCS7EncryptedContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 394
    functionDepth: 10
    functionLinenumber: 394
    functionLinenumberEnd: 452
    functionName: sec_pkcs7_decoder_get_recipient_key
    functionSourceFile: /src/nss/lib/pkcs7/p7decode.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SECOID_GetAlgorithmTag
    - PK11_PubUnwrapSymKey
    - PK11_FindCertAndKeyByRecipientList
    - PORT_GetError
    - PK11_AlgtagToMechanism
    - PORT_SetError
    - SECKEY_DestroyPrivateKey
    - PK11_FreeSlot
    linkageType: ''
    returnType: PK11SymKey
    signature: "PK11SymKey *\nsec_pkcs7_decoder_get_recipient_key(SEC_PKCS7DecoderContext
      *p7dcx,\n                                    SEC_PKCS7RecipientInfo **recipientinfos,\n
      \                                   SEC_PKCS7EncryptedContentInfo *enccinfo)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: SEC_PKCS7ContentType
      Src: /src/nss/lib/pkcs7/p7decode.c:486,1
    - Dst: sec_pkcs7_decoder_get_recipient_key
      Src: /src/nss/lib/pkcs7/p7decode.c:493,1
    - Dst: PK11_GetKeyStrength
      Src: /src/nss/lib/pkcs7/p7decode.c:497,1
    - Dst: PK11_ReferenceSymKey
      Src: /src/nss/lib/pkcs7/p7decode.c:531,1
    - Dst: sec_PKCS7CreateDecryptObject
      Src: /src/nss/lib/pkcs7/p7decode.c:538,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pkcs7/p7decode.c:544,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/pkcs7/p7decode.c:548,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs7/p7decode.c:549,1
    - Dst: SEC_ASN1DecoderSetFilterProc
      Src: /src/nss/lib/pkcs7/p7decode.c:553,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/lib/pkcs7/p7decode.c:564,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 49
    argCount: 5
    argNames:
    - p7dcx
    - depth
    - recipientinfos
    - enccinfo
    - copy_key_for_signature
    argTypes:
    - SEC_PKCS7DecoderContext*
    - int
    - SEC_PKCS7RecipientInfo**
    - SEC_PKCS7EncryptedContentInfo*
    - PK11SymKey**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 468
    functionDepth: 13
    functionLinenumber: 468
    functionLinenumberEnd: 580
    functionName: sec_pkcs7_decoder_start_decrypt
    functionSourceFile: /src/nss/lib/pkcs7/p7decode.c
    functionUses: 0
    functionsReached:
    - sec_pkcs7_decoder_get_recipient_key
    - SEC_PKCS7ContentType
    - PK11_GetKeyStrength
    - SEC_ASN1DecoderSetFilterProc
    - PORT_GetError
    - PORT_SetError
    - sec_PKCS7CreateDecryptObject
    - PK11_ReferenceSymKey
    - PK11_FreeSymKey
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sec_pkcs7_decoder_start_decrypt(SEC_PKCS7DecoderContext
      *p7dcx, int depth,\n                                SEC_PKCS7RecipientInfo **recipientinfos,\n
      \                               SEC_PKCS7EncryptedContentInfo *enccinfo,\n                                PK11SymKey
      **copy_key_for_signature)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1DecoderClearFilterProc
      Src: /src/nss/lib/pkcs7/p7decode.c:607,1
    - Dst: sec_pkcs7_decoder_work_data
      Src: /src/nss/lib/pkcs7/p7decode.c:612,1
    - Dst: sec_PKCS7DestroyDecryptObject
      Src: /src/nss/lib/pkcs7/p7decode.c:617,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - p7dcx
    - poolp
    - enccinfo
    argTypes:
    - SEC_PKCS7DecoderContext*
    - PLArenaPool*
    - SEC_PKCS7EncryptedContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 582
    functionDepth: 3
    functionLinenumber: 582
    functionLinenumberEnd: 621
    functionName: sec_pkcs7_decoder_finish_decrypt
    functionSourceFile: /src/nss/lib/pkcs7/p7decode.c
    functionUses: 0
    functionsReached:
    - SEC_ASN1DecoderClearFilterProc
    - sec_pkcs7_decoder_work_data
    - sec_PKCS7DestroyDecryptObject
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus sec_pkcs7_decoder_finish_decrypt(SEC_PKCS7DecoderContext
      *p7dcx,\n                                 PLArenaPool *poolp,\n                                 SEC_PKCS7EncryptedContentInfo
      *enccinfo)"
  - BBCount: 43
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOID
      Src: /src/nss/lib/pkcs7/p7decode.c:660,1
    - Dst: SECOID_FindOID
      Src: /src/nss/lib/pkcs7/p7decode.c:673,1
    - Dst: SEC_ASN1DecoderClearNotifyProc
      Src: /src/nss/lib/pkcs7/p7decode.c:690,1
    - Dst: sec_pkcs7_decoder_start_digests
      Src: /src/nss/lib/pkcs7/p7decode.c:700,1
    - Dst: SEC_ASN1DecoderClearNotifyProc
      Src: /src/nss/lib/pkcs7/p7decode.c:703,1
    - Dst: sec_pkcs7_decoder_finish_digests
      Src: /src/nss/lib/pkcs7/p7decode.c:722,1
    - Dst: SEC_ASN1DecoderClearNotifyProc
      Src: /src/nss/lib/pkcs7/p7decode.c:733,1
    - Dst: SECOID_FindOID
      Src: /src/nss/lib/pkcs7/p7decode.c:745,1
    - Dst: sec_pkcs7_decoder_start_decrypt
      Src: /src/nss/lib/pkcs7/p7decode.c:755,1
    - Dst: SEC_ASN1DecoderClearNotifyProc
      Src: /src/nss/lib/pkcs7/p7decode.c:760,1
    - Dst: sec_pkcs7_decoder_finish_decrypt
      Src: /src/nss/lib/pkcs7/p7decode.c:774,1
    - Dst: SEC_ASN1DecoderClearNotifyProc
      Src: /src/nss/lib/pkcs7/p7decode.c:785,1
    - Dst: SECOID_FindOID
      Src: /src/nss/lib/pkcs7/p7decode.c:797,1
    - Dst: sec_pkcs7_decoder_start_decrypt
      Src: /src/nss/lib/pkcs7/p7decode.c:807,1
    - Dst: sec_pkcs7_decoder_start_digests
      Src: /src/nss/lib/pkcs7/p7decode.c:812,1
    - Dst: SEC_ASN1DecoderClearNotifyProc
      Src: /src/nss/lib/pkcs7/p7decode.c:815,1
    - Dst: sec_pkcs7_decoder_finish_decrypt
      Src: /src/nss/lib/pkcs7/p7decode.c:834,1
    - Dst: sec_pkcs7_decoder_finish_digests
      Src: /src/nss/lib/pkcs7/p7decode.c:836,1
    - Dst: SEC_ASN1DecoderClearNotifyProc
      Src: /src/nss/lib/pkcs7/p7decode.c:847,1
    - Dst: SEC_ASN1DecoderSetFilterProc
      Src: /src/nss/lib/pkcs7/p7decode.c:860,1
    - Dst: SEC_ASN1DecoderClearFilterProc
      Src: /src/nss/lib/pkcs7/p7decode.c:870,1
    - Dst: sec_pkcs7_decoder_start_decrypt
      Src: /src/nss/lib/pkcs7/p7decode.c:895,1
    - Dst: SEC_ASN1DecoderClearNotifyProc
      Src: /src/nss/lib/pkcs7/p7decode.c:901,1
    - Dst: sec_pkcs7_decoder_finish_decrypt
      Src: /src/nss/lib/pkcs7/p7decode.c:915,1
    - Dst: SEC_ASN1DecoderClearNotifyProc
      Src: /src/nss/lib/pkcs7/p7decode.c:921,1
    - Dst: SEC_ASN1DecoderSetFilterProc
      Src: /src/nss/lib/pkcs7/p7decode.c:938,1
    - Dst: SEC_ASN1DecoderClearNotifyProc
      Src: /src/nss/lib/pkcs7/p7decode.c:950,1
    - Dst: SEC_ASN1DecoderClearFilterProc
      Src: /src/nss/lib/pkcs7/p7decode.c:951,1
    - Dst: SEC_ASN1DecoderClearNotifyProc
      Src: /src/nss/lib/pkcs7/p7decode.c:956,1
    CyclomaticComplexity: 74
    EdgeCount: 74
    ICount: 130
    argCount: 4
    argNames:
    - arg
    - before
    - dest
    - depth
    argTypes:
    - void*
    - PRBool
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 623
    functionDepth: 14
    functionLinenumber: 623
    functionLinenumberEnd: 959
    functionName: sec_pkcs7_decoder_notify
    functionSourceFile: /src/nss/lib/pkcs7/p7decode.c
    functionUses: 0
    functionsReached:
    - SEC_ASN1DecoderClearFilterProc
    - sec_pkcs7_decoder_start_digests
    - SEC_ASN1DecoderSetFilterProc
    - SECOID_FindOID
    - sec_pkcs7_decoder_start_decrypt
    - sec_pkcs7_decoder_finish_decrypt
    - sec_pkcs7_decoder_finish_digests
    - SEC_ASN1DecoderClearNotifyProc
    linkageType: ''
    returnType: void
    signature: void sec_pkcs7_decoder_notify(void *arg, PRBool before, void *dest,
      int depth)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/lib/pkcs7/p7decode.c:973,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs7/p7decode.c:977,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pkcs7/p7decode.c:979,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/pkcs7/p7decode.c:990,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pkcs7/p7decode.c:992,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/pkcs7/p7decode.c:996,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pkcs7/p7decode.c:998,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pkcs7/p7decode.c:999,1
    - Dst: SEC_ASN1DecoderStart
      Src: /src/nss/lib/pkcs7/p7decode.c:1003,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pkcs7/p7decode.c:1005,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pkcs7/p7decode.c:1006,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pkcs7/p7decode.c:1007,1
    - Dst: SEC_ASN1DecoderSetNotifyProc
      Src: /src/nss/lib/pkcs7/p7decode.c:1011,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 43
    argCount: 7
    argNames:
    - cb
    - cb_arg
    - pwfn
    - pwfn_arg
    - decrypt_key_cb
    - decrypt_key_cb_arg
    - decrypt_allowed_cb
    argTypes:
    - SEC_PKCS7DecoderContentCallback
    - void*
    - SECKEYGetPasswordKey
    - void*
    - SEC_PKCS7GetDecryptKeyCallback
    - void*
    - SEC_PKCS7DecryptionAllowedCallback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 961
    functionDepth: 0
    functionLinenumber: 961
    functionLinenumberEnd: 1024
    functionName: SEC_PKCS7DecoderStart
    functionSourceFile: /src/nss/lib/pkcs7/p7decode.c
    functionUses: 4
    functionsReached:
    - SEC_ASN1DecoderStart
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - PORT_FreeArena
    - PORT_Free
    - SEC_ASN1DecoderSetNotifyProc
    - PORT_ZAlloc
    linkageType: ''
    returnType: SEC_PKCS7DecoderContext
    signature: "SEC_PKCS7DecoderContext *\nSEC_PKCS7DecoderStart(SEC_PKCS7DecoderContentCallback
      cb, void *cb_arg,\n                      SECKEYGetPasswordKey pwfn, void *pwfn_arg,\n
      \                     SEC_PKCS7GetDecryptKeyCallback decrypt_key_cb,\n                      void
      *decrypt_key_cb_arg,\n                      SEC_PKCS7DecryptionAllowedCallback
      decrypt_allowed_cb)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs7/p7decode.c:1039,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7decode.c:1044,1
    - Dst: SEC_ASN1DecoderUpdate
      Src: /src/nss/lib/pkcs7/p7decode.c:1046,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/pkcs7/p7decode.c:1047,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7decode.c:1048,1
    - Dst: SEC_ASN1DecoderFinish
      Src: /src/nss/lib/pkcs7/p7decode.c:1057,1
    - Dst: SEC_PKCS7DestroyContentInfo
      Src: /src/nss/lib/pkcs7/p7decode.c:1061,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs7/p7decode.c:1064,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 3
    argNames:
    - p7dcx
    - buf
    - len
    argTypes:
    - SEC_PKCS7DecoderContext*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1034
    functionDepth: 9
    functionLinenumber: 1034
    functionLinenumberEnd: 1069
    functionName: SEC_PKCS7DecoderUpdate
    functionSourceFile: /src/nss/lib/pkcs7/p7decode.c
    functionUses: 4
    functionsReached:
    - PORT_Assert
    - SEC_ASN1DecoderFinish
    - SEC_PKCS7DestroyContentInfo
    - PORT_GetError
    - PORT_SetError
    - SEC_ASN1DecoderUpdate
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus SEC_PKCS7DecoderUpdate(SEC_PKCS7DecoderContext *p7dcx,\n
      \                      const char *buf, unsigned long len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SEC_ASN1DecoderFinish
      Src: /src/nss/lib/pkcs7/p7decode.c:1078,1
    - Dst: SEC_PKCS7DestroyContentInfo
      Src: /src/nss/lib/pkcs7/p7decode.c:1079,1
    - Dst: sec_PKCS7DestroyDecryptObject
      Src: /src/nss/lib/pkcs7/p7decode.c:1085,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pkcs7/p7decode.c:1087,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pkcs7/p7decode.c:1088,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - p7dcx
    argTypes:
    - SEC_PKCS7DecoderContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1090
      start: 1071
    functionDepth: 9
    functionLinenumber: 1071
    functionLinenumberEnd: 1090
    functionName: SEC_PKCS7DecoderFinish
    functionSourceFile: /src/nss/lib/pkcs7/p7decode.c
    functionUses: 7
    functionsReached:
    - SEC_PKCS7DestroyContentInfo
    - SEC_ASN1DecoderFinish
    - sec_PKCS7DestroyDecryptObject
    - PORT_FreeArena
    - PORT_Free
    linkageType: ''
    returnType: SEC_PKCS7ContentInfo
    signature: 'SEC_PKCS7ContentInfo *

      SEC_PKCS7DecoderFinish(SEC_PKCS7DecoderContext *p7dcx)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SEC_PKCS7DecoderStart
      Src: /src/nss/lib/pkcs7/p7decode.c:1102,1
    - Dst: SEC_PKCS7DecoderUpdate
      Src: /src/nss/lib/pkcs7/p7decode.c:1108,1
    - Dst: SEC_PKCS7DecoderFinish
      Src: /src/nss/lib/pkcs7/p7decode.c:1109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 8
    argNames:
    - p7item
    - cb
    - cb_arg
    - pwfn
    - pwfn_arg
    - decrypt_key_cb
    - decrypt_key_cb_arg
    - decrypt_allowed_cb
    argTypes:
    - SECItem*
    - SEC_PKCS7DecoderContentCallback
    - void*
    - SECKEYGetPasswordKey
    - void*
    - SEC_PKCS7GetDecryptKeyCallback
    - void*
    - SEC_PKCS7DecryptionAllowedCallback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1092
    functionDepth: 10
    functionLinenumber: 1092
    functionLinenumberEnd: 1110
    functionName: SEC_PKCS7DecodeItem
    functionSourceFile: /src/nss/lib/pkcs7/p7decode.c
    functionUses: 5
    functionsReached:
    - SEC_PKCS7DecoderUpdate
    - SEC_PKCS7DecoderFinish
    - SEC_PKCS7DecoderStart
    linkageType: ''
    returnType: SEC_PKCS7ContentInfo
    signature: "SEC_PKCS7ContentInfo *\nSEC_PKCS7DecodeItem(SECItem *p7item,\n                    SEC_PKCS7DecoderContentCallback
      cb, void *cb_arg,\n                    SECKEYGetPasswordKey pwfn, void *pwfn_arg,\n
      \                   SEC_PKCS7GetDecryptKeyCallback decrypt_key_cb,\n                    void
      *decrypt_key_cb_arg,\n                    SEC_PKCS7DecryptionAllowedCallback
      decrypt_allowed_cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7decode.c:1118,1
    - Dst: SEC_ASN1DecoderAbort
      Src: /src/nss/lib/pkcs7/p7decode.c:1119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p7dcx
    - error
    argTypes:
    - SEC_PKCS7DecoderContext*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1120
      start: 1115
    functionDepth: 0
    functionLinenumber: 1115
    functionLinenumberEnd: 1120
    functionName: SEC_PKCS7DecoderAbort
    functionSourceFile: /src/nss/lib/pkcs7/p7decode.c
    functionUses: 1
    functionsReached:
    - SEC_ASN1DecoderAbort
    - PORT_Assert
    linkageType: ''
    returnType: void
    signature: void SEC_PKCS7DecoderAbort(SEC_PKCS7DecoderContext *p7dcx, int error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: SEC_PKCS7ContentType
      Src: /src/nss/lib/pkcs7/p7decode.c:1132,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - cinfo
    argTypes:
    - SEC_PKCS7ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1159
      start: 1125
    functionDepth: 1
    functionLinenumber: 1125
    functionLinenumberEnd: 1159
    functionName: SEC_PKCS7ContainsCertsOrCrls
    functionSourceFile: /src/nss/lib/pkcs7/p7decode.c
    functionUses: 1
    functionsReached:
    - SEC_PKCS7ContentType
    linkageType: ''
    returnType: PRBool
    signature: PRBool SEC_PKCS7ContainsCertsOrCrls(SEC_PKCS7ContentInfo *cinfo)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SEC_PKCS7ContentType
      Src: /src/nss/lib/pkcs7/p7decode.c:1173,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - cinfo
    - minLen
    argTypes:
    - SEC_PKCS7ContentInfo*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1164
    functionDepth: 1
    functionLinenumber: 1164
    functionLinenumberEnd: 1192
    functionName: SEC_PKCS7IsContentEmpty
    functionSourceFile: /src/nss/lib/pkcs7/p7decode.c
    functionUses: 1
    functionsReached:
    - SEC_PKCS7ContentType
    linkageType: ''
    returnType: PRBool
    signature: PRBool SEC_PKCS7IsContentEmpty(SEC_PKCS7ContentInfo *cinfo, unsigned
      int minLen)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SEC_PKCS7ContentType
      Src: /src/nss/lib/pkcs7/p7decode.c:1199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - cinfo
    argTypes:
    - SEC_PKCS7ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1211
      start: 1194
    functionDepth: 1
    functionLinenumber: 1194
    functionLinenumberEnd: 1211
    functionName: SEC_PKCS7ContentIsEncrypted
    functionSourceFile: /src/nss/lib/pkcs7/p7decode.c
    functionUses: 3
    functionsReached:
    - SEC_PKCS7ContentType
    linkageType: ''
    returnType: PRBool
    signature: PRBool SEC_PKCS7ContentIsEncrypted(SEC_PKCS7ContentInfo *cinfo)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SEC_PKCS7ContentType
      Src: /src/nss/lib/pkcs7/p7decode.c:1227,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - cinfo
    argTypes:
    - SEC_PKCS7ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1251
      start: 1221
    functionDepth: 1
    functionLinenumber: 1221
    functionLinenumberEnd: 1251
    functionName: SEC_PKCS7ContentIsSigned
    functionSourceFile: /src/nss/lib/pkcs7/p7decode.c
    functionUses: 4
    functionsReached:
    - SEC_PKCS7ContentType
    linkageType: ''
    returnType: PRBool
    signature: PRBool SEC_PKCS7ContentIsSigned(SEC_PKCS7ContentInfo *cinfo)
  - BBCount: 50
    BranchProfiles: []
    Callsites:
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/lib/pkcs7/p7decode.c:1323,1
    - Dst: SEC_PKCS7ContentIsSigned
      Src: /src/nss/lib/pkcs7/p7decode.c:1326,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs7/p7decode.c:1327,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7decode.c:1331,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7decode.c:1340,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs7/p7decode.c:1368,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs7/p7decode.c:1377,1
    - Dst: CERT_ImportCerts
      Src: /src/nss/lib/pkcs7/p7decode.c:1405,1
    - Dst: CERT_FindCertByIssuerAndSN
      Src: /src/nss/lib/pkcs7/p7decode.c:1417,1
    - Dst: SEC_PKCS7GetSigningTime
      Src: /src/nss/lib/pkcs7/p7decode.c:1429,1
    - Dst: DER_DecodeTimeChoice
      Src: /src/nss/lib/pkcs7/p7decode.c:1431,1
    - Dst: PR_Now
      Src: /src/nss/lib/pkcs7/p7decode.c:1448,1
    - Dst: CERT_VerifyCert
      Src: /src/nss/lib/pkcs7/p7decode.c:1450,1
    - Dst: CERT_ExtractPublicKey
      Src: /src/nss/lib/pkcs7/p7decode.c:1463,1
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/pkcs7/p7decode.c:1483,1
    - Dst: HASH_GetHashTypeByOidTag
      Src: /src/nss/lib/pkcs7/p7decode.c:1486,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs7/p7decode.c:1488,1
    - Dst: HASH_ResultLen
      Src: /src/nss/lib/pkcs7/p7decode.c:1493,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs7/p7decode.c:1497,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7decode.c:1502,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs7/p7decode.c:1504,1
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/pkcs7/p7decode.c:1512,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs7/p7decode.c:1516,1
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/pkcs7/p7decode.c:1523,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs7/p7decode.c:1525,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs7/p7decode.c:1539,1
    - Dst: sec_PKCS7FindAttribute
      Src: /src/nss/lib/pkcs7/p7decode.c:1552,1
    - Dst: sec_PKCS7AttributeValue
      Src: /src/nss/lib/pkcs7/p7decode.c:1554,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs7/p7decode.c:1556,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/pkcs7/p7decode.c:1559,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs7/p7decode.c:1560,1
    - Dst: sec_PKCS7FindAttribute
      Src: /src/nss/lib/pkcs7/p7decode.c:1564,1
    - Dst: sec_PKCS7AttributeValue
      Src: /src/nss/lib/pkcs7/p7decode.c:1566,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs7/p7decode.c:1568,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/pkcs7/p7decode.c:1571,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs7/p7decode.c:1572,1
    - Dst: sec_PKCS7EncodeAttributes
      Src: /src/nss/lib/pkcs7/p7decode.c:1584,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs7/p7decode.c:1589,1
    - Dst: VFY_VerifyDataDirect
      Src: /src/nss/lib/pkcs7/p7decode.c:1593,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pkcs7/p7decode.c:1598,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs7/p7decode.c:1610,1
    - Dst: sec_PKCS7CreateDecryptObject
      Src: /src/nss/lib/pkcs7/p7decode.c:1623,1
    - Dst: sec_PKCS7DecryptLength
      Src: /src/nss/lib/pkcs7/p7decode.c:1627,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7decode.c:1628,1
    - Dst: sec_PKCS7DestroyDecryptObject
      Src: /src/nss/lib/pkcs7/p7decode.c:1630,1
    - Dst: PORT_Alloc
      Src: /src/nss/lib/pkcs7/p7decode.c:1634,1
    - Dst: sec_PKCS7DestroyDecryptObject
      Src: /src/nss/lib/pkcs7/p7decode.c:1636,1
    - Dst: sec_PKCS7Decrypt
      Src: /src/nss/lib/pkcs7/p7decode.c:1640,1
    - Dst: sec_PKCS7DestroyDecryptObject
      Src: /src/nss/lib/pkcs7/p7decode.c:1642,1
    - Dst: VFY_VerifyDigestDirect
      Src: /src/nss/lib/pkcs7/p7decode.c:1650,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7decode.c:1654,1
    - Dst: PORT_ZFree
      Src: /src/nss/lib/pkcs7/p7decode.c:1655,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/pkcs7/p7decode.c:1676,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs7/p7decode.c:1677,1
    - Dst: PORT_GetError
      Src: /src/nss/lib/pkcs7/p7decode.c:1695,1
    - Dst: sec_PKCS7FindAttribute
      Src: /src/nss/lib/pkcs7/p7decode.c:1704,1
    - Dst: sec_PKCS7AttributeValue
      Src: /src/nss/lib/pkcs7/p7decode.c:1707,1
    - Dst: CERT_SaveSMimeProfile
      Src: /src/nss/lib/pkcs7/p7decode.c:1710,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs7/p7decode.c:1716,1
    - Dst: CERT_DestroyCertArray
      Src: /src/nss/lib/pkcs7/p7decode.c:1733,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/pkcs7/p7decode.c:1736,1
    CyclomaticComplexity: 89
    EdgeCount: 89
    ICount: 241
    argCount: 6
    argNames:
    - cinfo
    - certusage
    - detached_digest
    - digest_type
    - keepcerts
    - atTime
    argTypes:
    - SEC_PKCS7ContentInfo*
    - SECCertUsage
    - SECItem*
    - HASH_HashType
    - PRBool
    - PRTime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1739
      start: 1288
    functionDepth: 13
    functionLinenumber: 1288
    functionLinenumberEnd: 1739
    functionName: sec_pkcs7_verify_signature
    functionSourceFile: /src/nss/lib/pkcs7/p7decode.c
    functionUses: 0
    functionsReached:
    - CERT_DestroyCertArray
    - PR_Now
    - sec_PKCS7FindAttribute
    - sec_PKCS7EncodeAttributes
    - CERT_ImportCerts
    - CERT_FindCertByIssuerAndSN
    - SECKEY_DestroyPublicKey
    - sec_PKCS7Decrypt
    - HASH_GetHashTypeByOidTag
    - PORT_SetError
    - CERT_GetDefaultCertDB
    - VFY_VerifyDataDirect
    - HASH_ResultLen
    - PORT_Assert
    - PORT_ZFree
    - sec_PKCS7DestroyDecryptObject
    - SEC_PKCS7ContentIsSigned
    - CERT_VerifyCert
    - VFY_VerifyDigestDirect
    - CERT_SaveSMimeProfile
    - SEC_PKCS7GetSigningTime
    - sec_PKCS7AttributeValue
    - PORT_Alloc
    - PORT_Memcmp
    - PORT_Free
    - DER_DecodeTimeChoice
    - sec_PKCS7DecryptLength
    - PORT_GetError
    - SECOID_FindOIDTag
    - sec_PKCS7CreateDecryptObject
    - CERT_ExtractPublicKey
    linkageType: ''
    returnType: PRBool
    signature: "PRBool sec_pkcs7_verify_signature(SEC_PKCS7ContentInfo *cinfo,\n                           SECCertUsage
      certusage,\n                           const SECItem *detached_digest,\n                           HASH_HashType
      digest_type,\n                           PRBool keepcerts,\n                           const
      PRTime *atTime)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sec_pkcs7_verify_signature
      Src: /src/nss/lib/pkcs7/p7decode.c:1755,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - cinfo
    - certusage
    - keepcerts
    argTypes:
    - SEC_PKCS7ContentInfo*
    - SECCertUsage
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1757
      start: 1750
    functionDepth: 14
    functionLinenumber: 1750
    functionLinenumberEnd: 1757
    functionName: SEC_PKCS7VerifySignature
    functionSourceFile: /src/nss/lib/pkcs7/p7decode.c
    functionUses: 2
    functionsReached:
    - sec_pkcs7_verify_signature
    linkageType: ''
    returnType: PRBool
    signature: "PRBool SEC_PKCS7VerifySignature(SEC_PKCS7ContentInfo *cinfo,\n                         SECCertUsage
      certusage,\n                         PRBool keepcerts)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sec_pkcs7_verify_signature
      Src: /src/nss/lib/pkcs7/p7decode.c:1776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - cinfo
    - certusage
    - detached_digest
    - digest_type
    - keepcerts
    argTypes:
    - SEC_PKCS7ContentInfo*
    - SECCertUsage
    - SECItem*
    - HASH_HashType
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1779
      start: 1769
    functionDepth: 14
    functionLinenumber: 1769
    functionLinenumberEnd: 1779
    functionName: SEC_PKCS7VerifyDetachedSignature
    functionSourceFile: /src/nss/lib/pkcs7/p7decode.c
    functionUses: 3
    functionsReached:
    - sec_pkcs7_verify_signature
    linkageType: ''
    returnType: PRBool
    signature: "PRBool SEC_PKCS7VerifyDetachedSignature(SEC_PKCS7ContentInfo *cinfo,\n
      \                                SECCertUsage certusage,\n                                 const
      SECItem *detached_digest,\n                                 HASH_HashType digest_type,\n
      \                                PRBool keepcerts)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sec_pkcs7_verify_signature
      Src: /src/nss/lib/pkcs7/p7decode.c:1799,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - cinfo
    - certusage
    - detached_digest
    - digest_type
    - keepcerts
    - atTime
    argTypes:
    - SEC_PKCS7ContentInfo*
    - SECCertUsage
    - SECItem*
    - HASH_HashType
    - PRBool
    - PRTime
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1802
      start: 1791
    functionDepth: 14
    functionLinenumber: 1791
    functionLinenumberEnd: 1802
    functionName: SEC_PKCS7VerifyDetachedSignatureAtTime
    functionSourceFile: /src/nss/lib/pkcs7/p7decode.c
    functionUses: 0
    functionsReached:
    - sec_pkcs7_verify_signature
    linkageType: ''
    returnType: PRBool
    signature: "PRBool SEC_PKCS7VerifyDetachedSignatureAtTime(SEC_PKCS7ContentInfo
      *cinfo,\n                                       SECCertUsage certusage,\n                                       const
      SECItem *detached_digest,\n                                       HASH_HashType
      digest_type,\n                                       PRBool keepcerts,\n                                       PRTime
      atTime)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: SEC_PKCS7ContentType
      Src: /src/nss/lib/pkcs7/p7decode.c:1823,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7decode.c:1830,1
    - Dst: sec_pkcs7_verify_signature
      Src: /src/nss/lib/pkcs7/p7decode.c:1860,1
    - Dst: CERT_GetCommonName
      Src: /src/nss/lib/pkcs7/p7decode.c:1869,1
    - Dst: PORT_Strdup
      Src: /src/nss/lib/pkcs7/p7decode.c:1873,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/p7decode.c:1879,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 2
    argNames:
    - cinfo
    - selector
    argTypes:
    - SEC_PKCS7ContentInfo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1885
      start: 1815
    functionDepth: 14
    functionLinenumber: 1815
    functionLinenumberEnd: 1885
    functionName: sec_pkcs7_get_signer_cert_info
    functionSourceFile: /src/nss/lib/pkcs7/p7decode.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SEC_PKCS7ContentType
    - CERT_GetCommonName
    - PORT_Strdup
    - sec_pkcs7_verify_signature
    linkageType: ''
    returnType: char
    signature: 'char *

      sec_pkcs7_get_signer_cert_info(SEC_PKCS7ContentInfo *cinfo, int selector)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sec_pkcs7_get_signer_cert_info
      Src: /src/nss/lib/pkcs7/p7decode.c:1890,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cinfo
    argTypes:
    - SEC_PKCS7ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1891
      start: 1887
    functionDepth: 15
    functionLinenumber: 1887
    functionLinenumberEnd: 1891
    functionName: SEC_PKCS7GetSignerCommonName
    functionSourceFile: /src/nss/lib/pkcs7/p7decode.c
    functionUses: 1
    functionsReached:
    - sec_pkcs7_get_signer_cert_info
    linkageType: ''
    returnType: char
    signature: 'char *

      SEC_PKCS7GetSignerCommonName(SEC_PKCS7ContentInfo *cinfo)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sec_pkcs7_get_signer_cert_info
      Src: /src/nss/lib/pkcs7/p7decode.c:1896,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cinfo
    argTypes:
    - SEC_PKCS7ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1897
      start: 1893
    functionDepth: 15
    functionLinenumber: 1893
    functionLinenumberEnd: 1897
    functionName: SEC_PKCS7GetSignerEmailAddress
    functionSourceFile: /src/nss/lib/pkcs7/p7decode.c
    functionUses: 1
    functionsReached:
    - sec_pkcs7_get_signer_cert_info
    linkageType: ''
    returnType: char
    signature: 'char *

      SEC_PKCS7GetSignerEmailAddress(SEC_PKCS7ContentInfo *cinfo)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SEC_PKCS7ContentType
      Src: /src/nss/lib/pkcs7/p7decode.c:1908,1
    - Dst: sec_PKCS7FindAttribute
      Src: /src/nss/lib/pkcs7/p7decode.c:1919,1
    - Dst: sec_PKCS7AttributeValue
      Src: /src/nss/lib/pkcs7/p7decode.c:1921,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - cinfo
    argTypes:
    - SEC_PKCS7ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1922
      start: 1902
    functionDepth: 1
    functionLinenumber: 1902
    functionLinenumberEnd: 1922
    functionName: SEC_PKCS7GetSigningTime
    functionSourceFile: /src/nss/lib/pkcs7/p7decode.c
    functionUses: 2
    functionsReached:
    - sec_PKCS7AttributeValue
    - SEC_PKCS7ContentType
    - sec_PKCS7FindAttribute
    linkageType: ''
    returnType: SECItem
    signature: 'SECItem *

      SEC_PKCS7GetSigningTime(SEC_PKCS7ContentInfo *cinfo)'
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 86
    functionName: smime_mapi_by_cipher
    functionSourceFile: /src/nss/lib/pkcs7/secmime.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smime_mapi_by_cipher(unsigned long cipher)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/pkcs7/secmime.c:100,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/pkcs7/secmime.c:115,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pkcs7/secmime.c:120,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/secmime.c:128,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/secmime.c:135,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - which
    - 'on'
    argTypes:
    - long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 145
    functionName: SECMIME_EnableCipher
    functionSourceFile: /src/nss/lib/pkcs7/secmime.c
    functionUses: 0
    functionsReached:
    - PORT_Memcmp
    - PORT_Free
    - PORT_ZAlloc
    - PORT_Assert
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SECMIME_EnableCipher(long which, int on)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/secmime.c:155,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/secmime.c:163,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - which
    - 'on'
    argTypes:
    - long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 178
    functionName: SECMIME_SetPolicy
    functionSourceFile: /src/nss/lib/pkcs7/secmime.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus SECMIME_SetPolicy(long which, int on)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_GetAlgorithmTag
      Src: /src/nss/lib/pkcs7/secmime.c:191,1
    - Dst: PK11_GetKeyStrength
      Src: /src/nss/lib/pkcs7/secmime.c:196,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/secmime.c:214,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - algid
    - key
    argTypes:
    - SECAlgorithmID*
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 186
    functionDepth: 4
    functionLinenumber: 186
    functionLinenumberEnd: 222
    functionName: smime_policy_algorithm
    functionSourceFile: /src/nss/lib/pkcs7/secmime.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SECOID_GetAlgorithmTag
    - PK11_GetKeyStrength
    linkageType: ''
    returnType: long
    signature: long smime_policy_algorithm(SECAlgorithmID *algid, PK11SymKey *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/secmime.c:230,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - which
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 239
    functionName: smime_cipher_allowed
    functionSourceFile: /src/nss/lib/pkcs7/secmime.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    linkageType: ''
    returnType: PRBool
    signature: PRBool smime_cipher_allowed(unsigned long which)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: smime_policy_algorithm
      Src: /src/nss/lib/pkcs7/secmime.c:246,1
    - Dst: smime_cipher_allowed
      Src: /src/nss/lib/pkcs7/secmime.c:250,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - algid
    - key
    argTypes:
    - SECAlgorithmID*
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 241
    functionDepth: 5
    functionLinenumber: 241
    functionLinenumberEnd: 251
    functionName: SECMIME_DecryptionAllowed
    functionSourceFile: /src/nss/lib/pkcs7/secmime.c
    functionUses: 0
    functionsReached:
    - smime_cipher_allowed
    - smime_policy_algorithm
    linkageType: ''
    returnType: PRBool
    signature: PRBool SECMIME_DecryptionAllowed(SECAlgorithmID *algid, PK11SymKey
      *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 278
    functionName: SECMIME_EncryptionPossible
    functionSourceFile: /src/nss/lib/pkcs7/secmime.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRBool
    signature: PRBool SECMIME_EncryptionPossible(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/lib/pkcs7/secmime.c:313,1
    - Dst: PORT_Memcmp
      Src: /src/nss/lib/pkcs7/secmime.c:328,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 22
    argCount: 1
    argNames:
    - cap
    argTypes:
    - smime_capability*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 344
    functionName: smime_fill_capability
    functionSourceFile: /src/nss/lib/pkcs7/secmime.c
    functionUses: 0
    functionsReached:
    - SECOID_FindOIDTag
    - PORT_Memcmp
    linkageType: ''
    returnType: void
    signature: void smime_fill_capability(smime_capability *cap)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs7/secmime.c:357,1
    - Dst: PORT_NewArena
      Src: /src/nss/lib/pkcs7/secmime.c:363,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs7/secmime.c:367,1
    - Dst: PORT_ArenaZAlloc
      Src: /src/nss/lib/pkcs7/secmime.c:372,1
    - Dst: smime_mapi_by_cipher
      Src: /src/nss/lib/pkcs7/secmime.c:383,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/secmime.c:385,1
    - Dst: CERT_FindSMimeProfile
      Src: /src/nss/lib/pkcs7/secmime.c:394,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/lib/pkcs7/secmime.c:397,1
    - Dst: smime_fill_capability
      Src: /src/nss/lib/pkcs7/secmime.c:402,1
    - Dst: smime_mapi_by_cipher
      Src: /src/nss/lib/pkcs7/secmime.c:403,1
    - Dst: CERT_ExtractPublicKey
      Src: /src/nss/lib/pkcs7/secmime.c:422,1
    - Dst: SECKEY_PublicKeyStrength
      Src: /src/nss/lib/pkcs7/secmime.c:424,1
    - Dst: SECKEY_DestroyPublicKey
      Src: /src/nss/lib/pkcs7/secmime.c:425,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pkcs7/secmime.c:434,1
    - Dst: smime_cipher_allowed
      Src: /src/nss/lib/pkcs7/secmime.c:441,1
    - Dst: PORT_FreeArena
      Src: /src/nss/lib/pkcs7/secmime.c:451,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 67
    argCount: 2
    argNames:
    - scert
    - rcerts
    argTypes:
    - CERTCertificate*
    - CERTCertificate**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 346
    functionDepth: 8
    functionLinenumber: 346
    functionLinenumberEnd: 454
    functionName: smime_choose_cipher
    functionSourceFile: /src/nss/lib/pkcs7/secmime.c
    functionUses: 2
    functionsReached:
    - smime_fill_capability
    - PORT_Assert
    - SECKEY_PublicKeyStrength
    - SECKEY_DestroyPublicKey
    - PORT_NewArena
    - PORT_ArenaZAlloc
    - PORT_FreeArena
    - smime_mapi_by_cipher
    - PORT_SetError
    - CERT_FindSMimeProfile
    - SEC_QuickDERDecodeItem
    - smime_cipher_allowed
    - CERT_ExtractPublicKey
    - SECITEM_FreeItem
    linkageType: ''
    returnType: long
    signature: long smime_choose_cipher(CERTCertificate *scert, CERTCertificate **rcerts)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/secmime.c:481,1
    - Dst: PORT_SetError
      Src: /src/nss/lib/pkcs7/secmime.c:482,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - which
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 500
    functionName: smime_keysize_by_cipher
    functionSourceFile: /src/nss/lib/pkcs7/secmime.c
    functionUses: 3
    functionsReached:
    - PORT_Assert
    - PORT_SetError
    linkageType: ''
    returnType: int
    signature: int smime_keysize_by_cipher(unsigned long which)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: smime_choose_cipher
      Src: /src/nss/lib/pkcs7/secmime.c:532,1
    - Dst: smime_mapi_by_cipher
      Src: /src/nss/lib/pkcs7/secmime.c:536,1
    - Dst: smime_keysize_by_cipher
      Src: /src/nss/lib/pkcs7/secmime.c:549,1
    - Dst: SEC_PKCS7CreateEnvelopedData
      Src: /src/nss/lib/pkcs7/secmime.c:553,1
    - Dst: SEC_PKCS7AddRecipient
      Src: /src/nss/lib/pkcs7/secmime.c:562,1
    - Dst: SEC_PKCS7DestroyContentInfo
      Src: /src/nss/lib/pkcs7/secmime.c:564,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 5
    argNames:
    - scert
    - rcerts
    - certdb
    - pwfn
    - pwfn_arg
    argTypes:
    - CERTCertificate*
    - CERTCertificate**
    - CERTCertDBHandle*
    - SECKEYGetPasswordKey
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 519
    functionDepth: 10
    functionLinenumber: 519
    functionLinenumberEnd: 570
    functionName: SECMIME_CreateEncrypted
    functionSourceFile: /src/nss/lib/pkcs7/secmime.c
    functionUses: 0
    functionsReached:
    - smime_keysize_by_cipher
    - SEC_PKCS7DestroyContentInfo
    - smime_mapi_by_cipher
    - SEC_PKCS7AddRecipient
    - smime_choose_cipher
    - SEC_PKCS7CreateEnvelopedData
    linkageType: ''
    returnType: SEC_PKCS7ContentInfo
    signature: "SEC_PKCS7ContentInfo *\nSECMIME_CreateEncrypted(CERTCertificate *scert,\n
      \                       CERTCertificate **rcerts,\n                        CERTCertDBHandle
      *certdb,\n                        SECKEYGetPasswordKey pwfn,\n                        void
      *pwfn_arg)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pkcs7/secmime.c:588,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/pkcs7/secmime.c:593,1
    - Dst: smime_mapi_by_cipher
      Src: /src/nss/lib/pkcs7/secmime.c:622,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/secmime.c:627,1
    - Dst: PORT_ZAlloc
      Src: /src/nss/lib/pkcs7/secmime.c:637,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/lib/pkcs7/secmime.c:646,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pkcs7/secmime.c:651,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/lib/pkcs7/secmime.c:656,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/lib/pkcs7/secmime.c:677,1
    - Dst: PORT_Free
      Src: /src/nss/lib/pkcs7/secmime.c:678,1
    - Dst: SEC_ASN1EncodeItem
      Src: /src/nss/lib/pkcs7/secmime.c:685,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 66
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 575
    functionDepth: 1
    functionLinenumber: 575
    functionLinenumberEnd: 691
    functionName: smime_init_caps
    functionSourceFile: /src/nss/lib/pkcs7/secmime.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SEC_ASN1EncodeItem
    - SECOID_FindOIDByTag
    - PORT_Free
    - PORT_ZAlloc
    - smime_mapi_by_cipher
    - SECITEM_CopyItem
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus smime_init_caps(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/secmime.c:696,1
    - Dst: smime_init_caps
      Src: /src/nss/lib/pkcs7/secmime.c:705,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/secmime.c:709,1
    - Dst: SEC_PKCS7AddSignedAttribute
      Src: /src/nss/lib/pkcs7/secmime.c:712,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - cert
    - cinfo
    argTypes:
    - CERTCertificate*
    - SEC_PKCS7ContentInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 693
    functionDepth: 3
    functionLinenumber: 693
    functionLinenumberEnd: 714
    functionName: smime_add_profile
    functionSourceFile: /src/nss/lib/pkcs7/secmime.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - smime_init_caps
    - SEC_PKCS7AddSignedAttribute
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus smime_add_profile(CERTCertificate *cert, SEC_PKCS7ContentInfo
      *cinfo)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SEC_PKCS7CreateSignedData
      Src: /src/nss/lib/pkcs7/secmime.c:761,1
    - Dst: SEC_PKCS7IncludeCertChain
      Src: /src/nss/lib/pkcs7/secmime.c:767,1
    - Dst: SEC_PKCS7DestroyContentInfo
      Src: /src/nss/lib/pkcs7/secmime.c:768,1
    - Dst: SEC_PKCS7AddCertificate
      Src: /src/nss/lib/pkcs7/secmime.c:779,1
    - Dst: SEC_PKCS7DestroyContentInfo
      Src: /src/nss/lib/pkcs7/secmime.c:781,1
    - Dst: SEC_PKCS7AddSigningTime
      Src: /src/nss/lib/pkcs7/secmime.c:789,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/secmime.c:790,1
    - Dst: smime_add_profile
      Src: /src/nss/lib/pkcs7/secmime.c:796,1
    - Dst: PORT_Assert
      Src: /src/nss/lib/pkcs7/secmime.c:797,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 7
    argNames:
    - scert
    - ecert
    - certdb
    - digestalg
    - digest
    - pwfn
    - pwfn_arg
    argTypes:
    - CERTCertificate*
    - CERTCertificate*
    - CERTCertDBHandle*
    - SECOidTag
    - SECItem*
    - SECKEYGetPasswordKey
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 746
    functionDepth: 11
    functionLinenumber: 746
    functionLinenumberEnd: 800
    functionName: SECMIME_CreateSigned
    functionSourceFile: /src/nss/lib/pkcs7/secmime.c
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - SEC_PKCS7DestroyContentInfo
    - SEC_PKCS7CreateSignedData
    - smime_add_profile
    - SEC_PKCS7AddSigningTime
    - SEC_PKCS7IncludeCertChain
    - SEC_PKCS7AddCertificate
    linkageType: ''
    returnType: SEC_PKCS7ContentInfo
    signature: "SEC_PKCS7ContentInfo *\nSECMIME_CreateSigned(CERTCertificate *scert,\n
      \                    CERTCertificate *ecert,\n                     CERTCertDBHandle
      *certdb,\n                     SECOidTag digestalg,\n                     SECItem
      *digest,\n                     SECKEYGetPasswordKey pwfn,\n                     void
      *pwfn_arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - opt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: CTIMEOPT_VAL_
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CTIMEOPT_VAL_(opt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - opt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: CTIMEOPT_VAL
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CTIMEOPT_VAL(opt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - opt1
    - ','
    - opt2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: CTIMEOPT_VAL2_
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CTIMEOPT_VAL2_(opt1,opt2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - opt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: CTIMEOPT_VAL2
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CTIMEOPT_VAL2(opt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 787
    functionDepth: 0
    functionLinenumber: 787
    functionLinenumberEnd: 790
    functionName: sqlite3CompileOptions
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE **sqlite3CompileOptions(int *pnOpt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1238
      start: 1237
    functionDepth: 0
    functionLinenumber: 1237
    functionLinenumberEnd: 1238
    functionName: sqlite3_compileoption_used
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3_compileoption_used(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1239
      start: 1238
    functionDepth: 0
    functionLinenumber: 1238
    functionLinenumberEnd: 1239
    functionName: sqlite3_compileoption_get
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3_compileoption_get(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13104
      start: 13103
    functionDepth: 0
    functionLinenumber: 13103
    functionLinenumberEnd: 13104
    functionName: SQLITE_INT_TO_PTR
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQLITE_INT_TO_PTR(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13105
      start: 13104
    functionDepth: 0
    functionLinenumber: 13104
    functionLinenumberEnd: 13105
    functionName: SQLITE_PTR_TO_INT
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQLITE_PTR_TO_INT(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13107
      start: 13106
    functionDepth: 0
    functionLinenumber: 13106
    functionLinenumberEnd: 13107
    functionName: SQLITE_INT_TO_PTR
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQLITE_INT_TO_PTR(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13108
      start: 13107
    functionDepth: 0
    functionLinenumber: 13107
    functionLinenumberEnd: 13108
    functionName: SQLITE_PTR_TO_INT
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQLITE_PTR_TO_INT(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13110
      start: 13109
    functionDepth: 0
    functionLinenumber: 13109
    functionLinenumberEnd: 13110
    functionName: SQLITE_INT_TO_PTR
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQLITE_INT_TO_PTR(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13111
      start: 13110
    functionDepth: 0
    functionLinenumber: 13110
    functionLinenumberEnd: 13111
    functionName: SQLITE_PTR_TO_INT
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQLITE_PTR_TO_INT(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13113
      start: 13112
    functionDepth: 0
    functionLinenumber: 13112
    functionLinenumberEnd: 13113
    functionName: SQLITE_INT_TO_PTR
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQLITE_INT_TO_PTR(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13114
      start: 13113
    functionDepth: 0
    functionLinenumber: 13113
    functionLinenumberEnd: 13114
    functionName: SQLITE_PTR_TO_INT
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQLITE_PTR_TO_INT(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13281
      start: 13280
    functionDepth: 0
    functionLinenumber: 13280
    functionLinenumberEnd: 13281
    functionName: testcase
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: testcase(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13292
      start: 13291
    functionDepth: 0
    functionLinenumber: 13291
    functionLinenumberEnd: 13292
    functionName: TESTONLY
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TESTONLY(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13306
      start: 13305
    functionDepth: 0
    functionLinenumber: 13305
    functionLinenumberEnd: 13306
    functionName: VVA_ONLY
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VVA_ONLY(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13327
      start: 13326
    functionDepth: 0
    functionLinenumber: 13326
    functionLinenumberEnd: 13327
    functionName: ALWAYS
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALWAYS(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13328
      start: 13327
    functionDepth: 0
    functionLinenumber: 13327
    functionLinenumberEnd: 13328
    functionName: NEVER
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEVER(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13330
      start: 13329
    functionDepth: 0
    functionLinenumber: 13329
    functionLinenumberEnd: 13330
    functionName: ALWAYS
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALWAYS(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13331
      start: 13330
    functionDepth: 0
    functionLinenumber: 13330
    functionLinenumberEnd: 13331
    functionName: NEVER
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEVER(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13333
      start: 13332
    functionDepth: 0
    functionLinenumber: 13332
    functionLinenumberEnd: 13333
    functionName: ALWAYS
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALWAYS(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13334
      start: 13333
    functionDepth: 0
    functionLinenumber: 13333
    functionLinenumberEnd: 13334
    functionName: NEVER
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEVER(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13345
      start: 13344
    functionDepth: 0
    functionLinenumber: 13344
    functionLinenumberEnd: 13345
    functionName: OK_IF_ALWAYS_TRUE
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OK_IF_ALWAYS_TRUE(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13346
      start: 13345
    functionDepth: 0
    functionLinenumber: 13345
    functionLinenumberEnd: 13346
    functionName: OK_IF_ALWAYS_FALSE
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OK_IF_ALWAYS_FALSE(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13348
      start: 13347
    functionDepth: 0
    functionLinenumber: 13347
    functionLinenumberEnd: 13348
    functionName: OK_IF_ALWAYS_TRUE
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OK_IF_ALWAYS_TRUE(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13349
      start: 13348
    functionDepth: 0
    functionLinenumber: 13348
    functionLinenumberEnd: 13349
    functionName: OK_IF_ALWAYS_FALSE
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OK_IF_ALWAYS_FALSE(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13360
      start: 13359
    functionDepth: 0
    functionLinenumber: 13359
    functionLinenumberEnd: 13360
    functionName: ONLY_IF_REALLOC_STRESS
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ONLY_IF_REALLOC_STRESS(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13362
      start: 13361
    functionDepth: 0
    functionLinenumber: 13361
    functionLinenumberEnd: 13362
    functionName: ONLY_IF_REALLOC_STRESS
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ONLY_IF_REALLOC_STRESS(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13364
      start: 13363
    functionDepth: 0
    functionLinenumber: 13363
    functionLinenumberEnd: 13364
    functionName: ONLY_IF_REALLOC_STRESS
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ONLY_IF_REALLOC_STRESS(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13373
      start: 13372
    functionDepth: 0
    functionLinenumber: 13372
    functionLinenumberEnd: 13373
    functionName: OSTRACE
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OSTRACE(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13405
      start: 13404
    functionDepth: 0
    functionLinenumber: 13404
    functionLinenumberEnd: 13405
    functionName: IS_BIG_INT
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_BIG_INT(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13414
      start: 13413
    functionDepth: 0
    functionLinenumber: 13413
    functionLinenumberEnd: 13414
    functionName: likely
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: likely(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13415
      start: 13414
    functionDepth: 0
    functionLinenumber: 13414
    functionLinenumberEnd: 13415
    functionName: unlikely
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unlikely(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - H
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13503
      start: 13502
    functionDepth: 0
    functionLinenumber: 13502
    functionLinenumberEnd: 13503
    functionName: sqliteHashFirst
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqliteHashFirst(H)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - E
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13504
      start: 13503
    functionDepth: 0
    functionLinenumber: 13503
    functionLinenumberEnd: 13504
    functionName: sqliteHashNext
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqliteHashNext(E)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - E
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13505
      start: 13504
    functionDepth: 0
    functionLinenumber: 13504
    functionLinenumberEnd: 13505
    functionName: sqliteHashData
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqliteHashData(E)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - D
    - ','
    - S
    - ','
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13713
      start: 13711
    functionDepth: 0
    functionLinenumber: 13711
    functionLinenumberEnd: 13713
    functionName: memcpy
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 413
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: memcpy(D,S,N)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - STRUCTURE
    - ','
    - FIELD
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13828
      start: 13827
    functionDepth: 0
    functionLinenumber: 13827
    functionLinenumberEnd: 13828
    functionName: offsetof
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: offsetof(STRUCTURE,FIELD)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - A
    - ','
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13835
      start: 13834
    functionDepth: 0
    functionLinenumber: 13834
    functionLinenumberEnd: 13835
    functionName: MIN
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 92
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIN(A,B)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - A
    - ','
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13838
      start: 13837
    functionDepth: 0
    functionLinenumber: 13837
    functionLinenumberEnd: 13838
    functionName: MAX
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 24
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAX(A,B)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TYPE
    - ','
    - A
    - ','
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13844
      start: 13843
    functionDepth: 0
    functionLinenumber: 13843
    functionLinenumberEnd: 13844
    functionName: SWAP
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWAP(TYPE,A,B)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - P
    - ','
    - S
    - ','
    - E
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13987
      start: 13986
    functionDepth: 0
    functionLinenumber: 13986
    functionLinenumberEnd: 13987
    functionName: SQLITE_WITHIN
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQLITE_WITHIN(P,S,E)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14043
      start: 14042
    functionDepth: 0
    functionLinenumber: 14042
    functionLinenumberEnd: 14043
    functionName: ROUND8
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROUND8(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14048
      start: 14047
    functionDepth: 0
    functionLinenumber: 14047
    functionLinenumberEnd: 14048
    functionName: ROUNDDOWN8
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROUNDDOWN8(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14060
      start: 14059
    functionDepth: 0
    functionLinenumber: 14059
    functionLinenumberEnd: 14060
    functionName: EIGHT_BYTE_ALIGNMENT
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EIGHT_BYTE_ALIGNMENT(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14062
      start: 14061
    functionDepth: 0
    functionLinenumber: 14061
    functionLinenumberEnd: 14062
    functionName: EIGHT_BYTE_ALIGNMENT
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EIGHT_BYTE_ALIGNMENT(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14162
      start: 14161
    functionDepth: 0
    functionLinenumber: 14161
    functionLinenumberEnd: 14162
    functionName: SCHEMA_TABLE
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SCHEMA_TABLE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14168
      start: 14167
    functionDepth: 0
    functionLinenumber: 14167
    functionLinenumberEnd: 14168
    functionName: ArraySize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ArraySize(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14173
      start: 14172
    functionDepth: 0
    functionLinenumber: 14172
    functionLinenumberEnd: 14173
    functionName: IsPowerOfTwo
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IsPowerOfTwo(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - t
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14201
      start: 14200
    functionDepth: 0
    functionLinenumber: 14200
    functionLinenumberEnd: 14201
    functionName: GLOBAL
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GLOBAL(t,v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - t
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14207
      start: 14206
    functionDepth: 0
    functionLinenumber: 14206
    functionLinenumberEnd: 14207
    functionName: GLOBAL
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GLOBAL(t,v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14227
      start: 14226
    functionDepth: 0
    functionLinenumber: 14226
    functionLinenumberEnd: 14227
    functionName: UNUSED_PARAMETER
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNUSED_PARAMETER(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14228
      start: 14227
    functionDepth: 0
    functionLinenumber: 14227
    functionLinenumberEnd: 14228
    functionName: UNUSED_PARAMETER2
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNUSED_PARAMETER2(x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14305
      start: 14304
    functionDepth: 0
    functionLinenumber: 14304
    functionLinenumberEnd: 14305
    functionName: MASKBIT
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MASKBIT(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14306
      start: 14305
    functionDepth: 0
    functionLinenumber: 14305
    functionLinenumberEnd: 14306
    functionName: MASKBIT32
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MASKBIT32(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14686
      start: 14684
    functionDepth: 0
    functionLinenumber: 14684
    functionLinenumberEnd: 14686
    functionName: sqlite3BtreeEnter
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3BtreeEnter(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14687
      start: 14686
    functionDepth: 0
    functionLinenumber: 14686
    functionLinenumberEnd: 14687
    functionName: sqlite3BtreeSharable
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3BtreeSharable(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14689
      start: 14688
    functionDepth: 0
    functionLinenumber: 14688
    functionLinenumberEnd: 14689
    functionName: sqlite3BtreeConnectionCount
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3BtreeConnectionCount(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14708
      start: 14707
    functionDepth: 0
    functionLinenumber: 14707
    functionLinenumberEnd: 14708
    functionName: sqlite3BtreeHoldsMutex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3BtreeHoldsMutex(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14709
      start: 14708
    functionDepth: 0
    functionLinenumber: 14708
    functionLinenumberEnd: 14709
    functionName: sqlite3BtreeHoldsAllMutexes
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3BtreeHoldsAllMutexes(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - X
    - ','
    - Y
    - ','
    - Z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14710
      start: 14709
    functionDepth: 0
    functionLinenumber: 14709
    functionLinenumberEnd: 14710
    functionName: sqlite3SchemaMutexHeld
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3SchemaMutexHeld(X,Y,Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14882
      start: 14881
    functionDepth: 0
    functionLinenumber: 14881
    functionLinenumberEnd: 14882
    functionName: ADDR
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADDR(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - P
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15150
      start: 15149
    functionDepth: 0
    functionLinenumber: 15149
    functionLinenumberEnd: 15150
    functionName: ExplainQueryPlan
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ExplainQueryPlan(P)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - P
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15151
      start: 15150
    functionDepth: 0
    functionLinenumber: 15150
    functionLinenumberEnd: 15151
    functionName: ExplainQueryPlanPop
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ExplainQueryPlanPop(P)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - P
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15152
      start: 15151
    functionDepth: 0
    functionLinenumber: 15151
    functionLinenumberEnd: 15152
    functionName: ExplainQueryPlanParent
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ExplainQueryPlanParent(P)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - P
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15156
      start: 15155
    functionDepth: 0
    functionLinenumber: 15155
    functionLinenumberEnd: 15156
    functionName: ExplainQueryPlanParent
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ExplainQueryPlanParent(P)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15236
      start: 15235
    functionDepth: 0
    functionLinenumber: 15235
    functionLinenumberEnd: 15236
    functionName: VdbeComment
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VdbeComment(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15238
      start: 15237
    functionDepth: 0
    functionLinenumber: 15237
    functionLinenumberEnd: 15238
    functionName: VdbeNoopComment
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VdbeNoopComment(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15240
      start: 15239
    functionDepth: 0
    functionLinenumber: 15239
    functionLinenumberEnd: 15240
    functionName: VdbeModuleComment
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VdbeModuleComment(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15292
      start: 15291
    functionDepth: 0
    functionLinenumber: 15291
    functionLinenumberEnd: 15292
    functionName: VdbeCoverage
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VdbeCoverage(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15293
      start: 15292
    functionDepth: 0
    functionLinenumber: 15292
    functionLinenumberEnd: 15293
    functionName: VdbeCoverageIf
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VdbeCoverageIf(v,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15295
      start: 15293
    functionDepth: 0
    functionLinenumber: 15293
    functionLinenumberEnd: 15295
    functionName: VdbeCoverageAlwaysTaken
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VdbeCoverageAlwaysTaken(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15297
      start: 15295
    functionDepth: 0
    functionLinenumber: 15295
    functionLinenumberEnd: 15297
    functionName: VdbeCoverageNeverTaken
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VdbeCoverageNeverTaken(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15299
      start: 15297
    functionDepth: 0
    functionLinenumber: 15297
    functionLinenumberEnd: 15299
    functionName: VdbeCoverageNeverNull
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VdbeCoverageNeverNull(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - v
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15301
      start: 15299
    functionDepth: 0
    functionLinenumber: 15299
    functionLinenumberEnd: 15301
    functionName: VdbeCoverageNeverNullIf
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VdbeCoverageNeverNullIf(v,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15303
      start: 15301
    functionDepth: 0
    functionLinenumber: 15301
    functionLinenumberEnd: 15303
    functionName: VdbeCoverageEqNe
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VdbeCoverageEqNe(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15304
      start: 15303
    functionDepth: 0
    functionLinenumber: 15303
    functionLinenumberEnd: 15304
    functionName: VDBE_OFFSET_LINENO
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VDBE_OFFSET_LINENO(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15313
      start: 15312
    functionDepth: 0
    functionLinenumber: 15312
    functionLinenumberEnd: 15313
    functionName: VDBE_OFFSET_LINENO
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VDBE_OFFSET_LINENO(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15384
      start: 15383
    functionDepth: 0
    functionLinenumber: 15383
    functionLinenumberEnd: 15384
    functionName: PAGER_MJ_PGNO
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAGER_MJ_PGNO(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16112
      start: 16111
    functionDepth: 0
    functionLinenumber: 16111
    functionLinenumberEnd: 16112
    functionName: sqlite3_mutex_alloc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3_mutex_alloc(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16115
      start: 16113
    functionDepth: 0
    functionLinenumber: 16113
    functionLinenumberEnd: 16115
    functionName: sqlite3_mutex_enter
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3_mutex_enter(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16117
      start: 16115
    functionDepth: 0
    functionLinenumber: 16115
    functionLinenumberEnd: 16117
    functionName: sqlite3_mutex_leave
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3_mutex_leave(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16118
      start: 16117
    functionDepth: 0
    functionLinenumber: 16117
    functionLinenumberEnd: 16118
    functionName: sqlite3_mutex_notheld
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3_mutex_notheld(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16119
      start: 16118
    functionDepth: 0
    functionLinenumber: 16118
    functionLinenumberEnd: 16119
    functionName: sqlite3MutexAlloc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3MutexAlloc(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16120
      start: 16119
    functionDepth: 0
    functionLinenumber: 16119
    functionLinenumberEnd: 16120
    functionName: sqlite3MutexInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3MutexInit()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16124
      start: 16123
    functionDepth: 0
    functionLinenumber: 16123
    functionLinenumberEnd: 16124
    functionName: MUTEX_LOGIC
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MUTEX_LOGIC(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - D
    - ','
    - I
    - ','
    - P
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16211
      start: 16210
    functionDepth: 0
    functionLinenumber: 16210
    functionLinenumberEnd: 16211
    functionName: DbHasProperty
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DbHasProperty(D,I,P)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - D
    - ','
    - I
    - ','
    - P
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16212
      start: 16211
    functionDepth: 0
    functionLinenumber: 16211
    functionLinenumberEnd: 16212
    functionName: DbHasAnyProperty
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DbHasAnyProperty(D,I,P)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - D
    - ','
    - I
    - ','
    - P
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16213
      start: 16212
    functionDepth: 0
    functionLinenumber: 16212
    functionLinenumberEnd: 16213
    functionName: DbSetProperty
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DbSetProperty(D,I,P)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - D
    - ','
    - I
    - ','
    - P
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16214
      start: 16213
    functionDepth: 0
    functionLinenumber: 16213
    functionLinenumberEnd: 16214
    functionName: DbClearProperty
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DbClearProperty(D,I,P)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - C
    - ','
    - L
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16284
      start: 16283
    functionDepth: 0
    functionLinenumber: 16283
    functionLinenumberEnd: 16284
    functionName: SQLITE_FUNC_HASH
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQLITE_FUNC_HASH(C,L)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - db
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16476
      start: 16475
    functionDepth: 0
    functionLinenumber: 16475
    functionLinenumberEnd: 16476
    functionName: SCHEMA_ENC
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SCHEMA_ENC(db)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - db
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16477
      start: 16476
    functionDepth: 0
    functionLinenumber: 16476
    functionLinenumberEnd: 16477
    functionName: ENC
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ENC(db)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16523
      start: 16522
    functionDepth: 0
    functionLinenumber: 16522
    functionLinenumberEnd: 16523
    functionName: HI
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HI(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - db
    - ','
    - mask
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16569
      start: 16568
    functionDepth: 0
    functionLinenumber: 16568
    functionLinenumberEnd: 16569
    functionName: OptimizationDisabled
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OptimizationDisabled(db, mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - db
    - ','
    - mask
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16570
      start: 16569
    functionDepth: 0
    functionLinenumber: 16569
    functionLinenumberEnd: 16570
    functionName: OptimizationEnabled
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OptimizationEnabled(db, mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - P
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16576
      start: 16575
    functionDepth: 0
    functionLinenumber: 16575
    functionLinenumberEnd: 16576
    functionName: ConstFactorOk
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ConstFactorOk(P)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - zName
    - ','
    - nArg
    - ','
    - iArg
    - ','
    - bNC
    - ','
    - xFunc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16717
      start: 16714
    functionDepth: 0
    functionLinenumber: 16714
    functionLinenumberEnd: 16717
    functionName: FUNCTION
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FUNCTION(zName, nArg, iArg, bNC, xFunc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - zName
    - ','
    - nArg
    - ','
    - iArg
    - ','
    - bNC
    - ','
    - xFunc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16720
      start: 16717
    functionDepth: 0
    functionLinenumber: 16717
    functionLinenumberEnd: 16720
    functionName: VFUNCTION
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VFUNCTION(zName, nArg, iArg, bNC, xFunc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - zName
    - ','
    - nArg
    - ','
    - iArg
    - ','
    - bNC
    - ','
    - xFunc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16723
      start: 16720
    functionDepth: 0
    functionLinenumber: 16720
    functionLinenumberEnd: 16723
    functionName: DFUNCTION
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DFUNCTION(zName, nArg, iArg, bNC, xFunc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - zName
    - ','
    - nArg
    - ','
    - iArg
    - ','
    - bNC
    - ','
    - xFunc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16726
      start: 16723
    functionDepth: 0
    functionLinenumber: 16723
    functionLinenumberEnd: 16726
    functionName: PURE_DATE
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PURE_DATE(zName, nArg, iArg, bNC, xFunc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - zName
    - ','
    - nArg
    - ','
    - iArg
    - ','
    - bNC
    - ','
    - xFunc
    - ','
    - extraFlags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16729
      start: 16726
    functionDepth: 0
    functionLinenumber: 16726
    functionLinenumberEnd: 16729
    functionName: FUNCTION2
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FUNCTION2(zName, nArg, iArg, bNC, xFunc, extraFlags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - zName
    - ','
    - nArg
    - ','
    - pArg
    - ','
    - bNC
    - ','
    - xFunc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16732
      start: 16729
    functionDepth: 0
    functionLinenumber: 16729
    functionLinenumberEnd: 16732
    functionName: STR_FUNCTION
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STR_FUNCTION(zName, nArg, pArg, bNC, xFunc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - zName
    - ','
    - nArg
    - ','
    - arg
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16735
      start: 16732
    functionDepth: 0
    functionLinenumber: 16732
    functionLinenumberEnd: 16735
    functionName: LIKEFUNC
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LIKEFUNC(zName, nArg, arg, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - zName
    - ','
    - nArg
    - ','
    - arg
    - ','
    - nc
    - ','
    - xStep
    - ','
    - xFinal
    - ','
    - xValue
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16738
      start: 16735
    functionDepth: 0
    functionLinenumber: 16735
    functionLinenumberEnd: 16738
    functionName: AGGREGATE
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AGGREGATE(zName, nArg, arg, nc, xStep, xFinal, xValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - zName
    - ','
    - nArg
    - ','
    - arg
    - ','
    - nc
    - ','
    - xStep
    - ','
    - xFinal
    - ','
    - extraFlags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16741
      start: 16738
    functionDepth: 0
    functionLinenumber: 16738
    functionLinenumberEnd: 16741
    functionName: AGGREGATE2
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AGGREGATE2(zName, nArg, arg, nc, xStep, xFinal, extraFlags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - zName
    - ','
    - nArg
    - ','
    - arg
    - ','
    - nc
    - ','
    - xStep
    - ','
    - xFinal
    - ','
    - xValue
    - ','
    - xInverse
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16744
      start: 16741
    functionDepth: 0
    functionLinenumber: 16741
    functionLinenumberEnd: 16744
    functionName: WAGGREGATE
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WAGGREGATE(zName, nArg, arg, nc, xStep, xFinal, xValue, xInverse, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - zName
    - ','
    - nArg
    - ','
    - xFunc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16747
      start: 16744
    functionDepth: 0
    functionLinenumber: 16744
    functionLinenumberEnd: 16747
    functionName: INTERNAL_FUNCTION
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTERNAL_FUNCTION(zName, nArg, xFunc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16851
      start: 16850
    functionDepth: 0
    functionLinenumber: 16850
    functionLinenumberEnd: 16851
    functionName: sqlite3IsNumericAffinity
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3IsNumericAffinity(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16991
      start: 16990
    functionDepth: 0
    functionLinenumber: 16990
    functionLinenumberEnd: 16991
    functionName: IsVirtual
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IsVirtual(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16993
      start: 16992
    functionDepth: 0
    functionLinenumber: 16992
    functionLinenumberEnd: 16993
    functionName: IsVirtual
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IsVirtual(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17003
      start: 17002
    functionDepth: 0
    functionLinenumber: 17002
    functionLinenumberEnd: 17003
    functionName: IsHiddenColumn
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IsHiddenColumn(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17004
      start: 17003
    functionDepth: 0
    functionLinenumber: 17003
    functionLinenumberEnd: 17004
    functionName: IsOrdinaryHiddenColumn
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IsOrdinaryHiddenColumn(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17006
      start: 17005
    functionDepth: 0
    functionLinenumber: 17005
    functionLinenumberEnd: 17006
    functionName: IsHiddenColumn
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IsHiddenColumn(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17007
      start: 17006
    functionDepth: 0
    functionLinenumber: 17006
    functionLinenumberEnd: 17007
    functionName: IsOrdinaryHiddenColumn
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IsOrdinaryHiddenColumn(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17009
      start: 17008
    functionDepth: 0
    functionLinenumber: 17008
    functionLinenumberEnd: 17009
    functionName: IsHiddenColumn
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IsHiddenColumn(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17010
      start: 17009
    functionDepth: 0
    functionLinenumber: 17009
    functionLinenumberEnd: 17010
    functionName: IsOrdinaryHiddenColumn
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IsOrdinaryHiddenColumn(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17015
      start: 17014
    functionDepth: 0
    functionLinenumber: 17014
    functionLinenumberEnd: 17015
    functionName: HasRowid
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HasRowid(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17016
      start: 17015
    functionDepth: 0
    functionLinenumber: 17015
    functionLinenumberEnd: 17016
    functionName: VisibleRowid
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VisibleRowid(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17248
      start: 17247
    functionDepth: 0
    functionLinenumber: 17247
    functionLinenumberEnd: 17248
    functionName: IsPrimaryKeyIndex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IsPrimaryKeyIndex(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17251
      start: 17250
    functionDepth: 0
    functionLinenumber: 17250
    functionLinenumberEnd: 17251
    functionName: IsUniqueIndex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IsUniqueIndex(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - E
    - ','
    - P
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17518
      start: 17517
    functionDepth: 0
    functionLinenumber: 17517
    functionLinenumberEnd: 17518
    functionName: ExprHasProperty
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ExprHasProperty(E,P)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - E
    - ','
    - P
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17519
      start: 17518
    functionDepth: 0
    functionLinenumber: 17518
    functionLinenumberEnd: 17519
    functionName: ExprHasAllProperty
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ExprHasAllProperty(E,P)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - E
    - ','
    - P
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17520
      start: 17519
    functionDepth: 0
    functionLinenumber: 17519
    functionLinenumberEnd: 17520
    functionName: ExprSetProperty
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ExprSetProperty(E,P)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - E
    - ','
    - P
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17521
      start: 17520
    functionDepth: 0
    functionLinenumber: 17520
    functionLinenumberEnd: 17521
    functionName: ExprClearProperty
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ExprClearProperty(E,P)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - E
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17522
      start: 17521
    functionDepth: 0
    functionLinenumber: 17521
    functionLinenumberEnd: 17522
    functionName: ExprAlwaysTrue
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ExprAlwaysTrue(E)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - E
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17523
      start: 17522
    functionDepth: 0
    functionLinenumber: 17522
    functionLinenumberEnd: 17523
    functionName: ExprAlwaysFalse
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ExprAlwaysFalse(E)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - E
    - ','
    - P
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17530
      start: 17529
    functionDepth: 0
    functionLinenumber: 17529
    functionLinenumberEnd: 17530
    functionName: ExprSetVVAProperty
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ExprSetVVAProperty(E,P)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17942
      start: 17941
    functionDepth: 0
    functionLinenumber: 17941
    functionLinenumberEnd: 17942
    functionName: IgnorableOrderby
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IgnorableOrderby(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - M
    - ','
    - I
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18011
      start: 18010
    functionDepth: 0
    functionLinenumber: 18010
    functionLinenumberEnd: 18011
    functionName: DbMaskTest
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DbMaskTest(M,I)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - M
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18012
      start: 18011
    functionDepth: 0
    functionLinenumber: 18011
    functionLinenumberEnd: 18012
    functionName: DbMaskZero
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DbMaskZero(M)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - M
    - ','
    - I
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18013
      start: 18012
    functionDepth: 0
    functionLinenumber: 18012
    functionLinenumberEnd: 18013
    functionName: DbMaskSet
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DbMaskSet(M,I)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - M
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18014
      start: 18013
    functionDepth: 0
    functionLinenumber: 18013
    functionLinenumberEnd: 18014
    functionName: DbMaskAllZero
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DbMaskAllZero(M)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - M
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18015
      start: 18014
    functionDepth: 0
    functionLinenumber: 18014
    functionLinenumberEnd: 18015
    functionName: DbMaskNonZero
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DbMaskNonZero(M)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - M
    - ','
    - I
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18018
      start: 18017
    functionDepth: 0
    functionLinenumber: 18017
    functionLinenumberEnd: 18018
    functionName: DbMaskTest
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DbMaskTest(M,I)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - M
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18019
      start: 18018
    functionDepth: 0
    functionLinenumber: 18018
    functionLinenumberEnd: 18019
    functionName: DbMaskZero
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DbMaskZero(M)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - M
    - ','
    - I
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18020
      start: 18019
    functionDepth: 0
    functionLinenumber: 18019
    functionLinenumberEnd: 18020
    functionName: DbMaskSet
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DbMaskSet(M,I)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - M
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18021
      start: 18020
    functionDepth: 0
    functionLinenumber: 18020
    functionLinenumberEnd: 18021
    functionName: DbMaskAllZero
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DbMaskAllZero(M)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - M
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18022
      start: 18021
    functionDepth: 0
    functionLinenumber: 18021
    functionLinenumberEnd: 18022
    functionName: DbMaskNonZero
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DbMaskNonZero(M)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18155
      start: 18154
    functionDepth: 0
    functionLinenumber: 18154
    functionLinenumberEnd: 18155
    functionName: PARSE_TAIL
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PARSE_TAIL(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18343
      start: 18342
    functionDepth: 0
    functionLinenumber: 18342
    functionLinenumberEnd: 18343
    functionName: isMalloced
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: isMalloced(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - zIn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18599
      start: 18594
    functionDepth: 0
    functionLinenumber: 18594
    functionLinenumberEnd: 18599
    functionName: SQLITE_SKIP_UTF8
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQLITE_SKIP_UTF8(zIn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - P
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18621
      start: 18620
    functionDepth: 0
    functionLinenumber: 18620
    functionLinenumberEnd: 18621
    functionName: SQLITE_CORRUPT_PGNO
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQLITE_CORRUPT_PGNO(P)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - P
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18625
      start: 18624
    functionDepth: 0
    functionLinenumber: 18624
    functionLinenumberEnd: 18625
    functionName: SQLITE_CORRUPT_PGNO
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQLITE_CORRUPT_PGNO(P)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18660
      start: 18659
    functionDepth: 0
    functionLinenumber: 18659
    functionLinenumberEnd: 18660
    functionName: sqlite3Toupper
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3Toupper(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18661
      start: 18660
    functionDepth: 0
    functionLinenumber: 18660
    functionLinenumberEnd: 18661
    functionName: sqlite3Isspace
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3Isspace(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18662
      start: 18661
    functionDepth: 0
    functionLinenumber: 18661
    functionLinenumberEnd: 18662
    functionName: sqlite3Isalnum
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3Isalnum(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18663
      start: 18662
    functionDepth: 0
    functionLinenumber: 18662
    functionLinenumberEnd: 18663
    functionName: sqlite3Isalpha
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3Isalpha(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18664
      start: 18663
    functionDepth: 0
    functionLinenumber: 18663
    functionLinenumberEnd: 18664
    functionName: sqlite3Isdigit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3Isdigit(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18665
      start: 18664
    functionDepth: 0
    functionLinenumber: 18664
    functionLinenumberEnd: 18665
    functionName: sqlite3Isxdigit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3Isxdigit(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18666
      start: 18665
    functionDepth: 0
    functionLinenumber: 18665
    functionLinenumberEnd: 18666
    functionName: sqlite3Tolower
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3Tolower(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18667
      start: 18666
    functionDepth: 0
    functionLinenumber: 18666
    functionLinenumberEnd: 18667
    functionName: sqlite3Isquote
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3Isquote(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18669
      start: 18668
    functionDepth: 0
    functionLinenumber: 18668
    functionLinenumberEnd: 18669
    functionName: sqlite3Toupper
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3Toupper(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18670
      start: 18669
    functionDepth: 0
    functionLinenumber: 18669
    functionLinenumberEnd: 18670
    functionName: sqlite3Isspace
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3Isspace(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18671
      start: 18670
    functionDepth: 0
    functionLinenumber: 18670
    functionLinenumberEnd: 18671
    functionName: sqlite3Isalnum
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3Isalnum(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18672
      start: 18671
    functionDepth: 0
    functionLinenumber: 18671
    functionLinenumberEnd: 18672
    functionName: sqlite3Isalpha
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3Isalpha(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18673
      start: 18672
    functionDepth: 0
    functionLinenumber: 18672
    functionLinenumberEnd: 18673
    functionName: sqlite3Isdigit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3Isdigit(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18674
      start: 18673
    functionDepth: 0
    functionLinenumber: 18673
    functionLinenumberEnd: 18674
    functionName: sqlite3Isxdigit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3Isxdigit(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18675
      start: 18674
    functionDepth: 0
    functionLinenumber: 18674
    functionLinenumberEnd: 18675
    functionName: sqlite3Tolower
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3Tolower(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18676
      start: 18675
    functionDepth: 0
    functionLinenumber: 18675
    functionLinenumberEnd: 18676
    functionName: sqlite3Isquote
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3Isquote(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18685
      start: 18684
    functionDepth: 0
    functionLinenumber: 18684
    functionLinenumberEnd: 18685
    functionName: sqlite3Strlen30NN
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3Strlen30NN(C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - D
    - ','
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18723
      start: 18722
    functionDepth: 0
    functionLinenumber: 18722
    functionLinenumberEnd: 18723
    functionName: sqlite3StackAllocRaw
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3StackAllocRaw(D,N)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - D
    - ','
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18724
      start: 18723
    functionDepth: 0
    functionLinenumber: 18723
    functionLinenumberEnd: 18724
    functionName: sqlite3StackAllocZero
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3StackAllocZero(D,N)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - D
    - ','
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18727
      start: 18726
    functionDepth: 0
    functionLinenumber: 18726
    functionLinenumberEnd: 18727
    functionName: sqlite3StackAllocRaw
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3StackAllocRaw(D,N)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - D
    - ','
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18728
      start: 18727
    functionDepth: 0
    functionLinenumber: 18727
    functionLinenumberEnd: 18728
    functionName: sqlite3StackAllocZero
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3StackAllocZero(D,N)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - D
    - ','
    - P
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18729
      start: 18728
    functionDepth: 0
    functionLinenumber: 18728
    functionLinenumberEnd: 18729
    functionName: sqlite3StackFree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3StackFree(D,P)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18776
      start: 18775
    functionDepth: 0
    functionLinenumber: 18775
    functionLinenumberEnd: 18776
    functionName: IsNaN
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IsNaN(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18779
      start: 18778
    functionDepth: 0
    functionLinenumber: 18778
    functionLinenumberEnd: 18779
    functionName: IsNaN
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IsNaN(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18780
      start: 18779
    functionDepth: 0
    functionLinenumber: 18779
    functionLinenumberEnd: 18780
    functionName: sqlite3IsNaN
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3IsNaN(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18888
      start: 18887
    functionDepth: 0
    functionLinenumber: 18887
    functionLinenumberEnd: 18888
    functionName: sqlite3CodecQueryParameters
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3CodecQueryParameters(A,B,C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18893
      start: 18892
    functionDepth: 0
    functionLinenumber: 18892
    functionLinenumberEnd: 18893
    functionName: sqlite3FaultSim
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3FaultSim(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - A
    - ','
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18921
      start: 18920
    functionDepth: 0
    functionLinenumber: 18920
    functionLinenumberEnd: 18921
    functionName: sqlite3ViewGetColumnNames
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3ViewGetColumnNames(A,B)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19114
      start: 19113
    functionDepth: 0
    functionLinenumber: 19113
    functionLinenumberEnd: 19114
    functionName: sqlite3ParseToplevel
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3ParseToplevel(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19115
      start: 19114
    functionDepth: 0
    functionLinenumber: 19114
    functionLinenumberEnd: 19115
    functionName: sqlite3IsToplevel
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3IsToplevel(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - B
    - ','
    - C
    - ','
    - D
    - ','
    - E
    - ','
    - F
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19117
      start: 19116
    functionDepth: 0
    functionLinenumber: 19116
    functionLinenumberEnd: 19117
    functionName: sqlite3TriggersExist
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3TriggersExist(B,C,D,E,F)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - Y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19123
      start: 19122
    functionDepth: 0
    functionLinenumber: 19122
    functionLinenumberEnd: 19123
    functionName: sqlite3TriggerList
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3TriggerList(X, Y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19124
      start: 19123
    functionDepth: 0
    functionLinenumber: 19123
    functionLinenumberEnd: 19124
    functionName: sqlite3ParseToplevel
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3ParseToplevel(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19125
      start: 19124
    functionDepth: 0
    functionLinenumber: 19124
    functionLinenumberEnd: 19125
    functionName: sqlite3IsToplevel
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3IsToplevel(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - C
    - ','
    - D
    - ','
    - E
    - ','
    - F
    - ','
    - G
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19126
      start: 19125
    functionDepth: 0
    functionLinenumber: 19125
    functionLinenumberEnd: 19126
    functionName: sqlite3TriggerColmask
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3TriggerColmask(A,B,C,D,E,F,G)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19140
      start: 19139
    functionDepth: 0
    functionLinenumber: 19139
    functionLinenumberEnd: 19140
    functionName: sqlite3AuthCheck
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3AuthCheck(a,b,c,d,e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19142
      start: 19141
    functionDepth: 0
    functionLinenumber: 19141
    functionLinenumberEnd: 19142
    functionName: sqlite3AuthContextPop
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3AuthContextPop(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - A
    - ','
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19191
      start: 19189
    functionDepth: 0
    functionLinenumber: 19189
    functionLinenumberEnd: 19191
    functionName: getVarint32
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: getVarint32(A,B)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - A
    - ','
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19194
      start: 19191
    functionDepth: 0
    functionLinenumber: 19191
    functionLinenumberEnd: 19194
    functionName: putVarint32
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: putVarint32(A,B)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19351
      start: 19350
    functionDepth: 0
    functionLinenumber: 19350
    functionLinenumberEnd: 19351
    functionName: sqlite3ExprCheckIN
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3ExprCheckIN(x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - Y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19396
      start: 19395
    functionDepth: 0
    functionLinenumber: 19395
    functionLinenumberEnd: 19396
    functionName: sqlite3VtabSync
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3VtabSync(X,Y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - db
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19399
      start: 19398
    functionDepth: 0
    functionLinenumber: 19398
    functionLinenumberEnd: 19399
    functionName: sqlite3VtabInSync
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3VtabInSync(db)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - X
    - ','
    - Y
    - ','
    - Z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19403
      start: 19402
    functionDepth: 0
    functionLinenumber: 19402
    functionLinenumberEnd: 19403
    functionName: sqlite3VtabSavepoint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3VtabSavepoint(X, Y, Z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - Y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19404
      start: 19403
    functionDepth: 0
    functionLinenumber: 19403
    functionLinenumberEnd: 19404
    functionName: sqlite3GetVTable
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3GetVTable(X,Y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - db
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19424
      start: 19423
    functionDepth: 0
    functionLinenumber: 19423
    functionLinenumberEnd: 19424
    functionName: sqlite3VtabInSync
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3VtabInSync(db)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - v
    - ','
    - w
    - ','
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19469
      start: 19468
    functionDepth: 0
    functionLinenumber: 19468
    functionLinenumberEnd: 19469
    functionName: sqlite3UpsertNew
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3UpsertNew(v,w,x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19471
      start: 19470
    functionDepth: 0
    functionLinenumber: 19470
    functionLinenumberEnd: 19471
    functionName: sqlite3UpsertDup
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3UpsertDup(x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19493
      start: 19492
    functionDepth: 0
    functionLinenumber: 19492
    functionLinenumberEnd: 19493
    functionName: sqlite3FkOldmask
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3FkOldmask(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19494
      start: 19493
    functionDepth: 0
    functionLinenumber: 19493
    functionLinenumberEnd: 19494
    functionName: sqlite3FkRequired
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3FkRequired(a,b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19495
      start: 19494
    functionDepth: 0
    functionLinenumber: 19494
    functionLinenumberEnd: 19495
    functionName: sqlite3FkReferences
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3FkReferences(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19556
      start: 19555
    functionDepth: 0
    functionLinenumber: 19555
    functionLinenumberEnd: 19556
    functionName: sqlite3SelectExprHeight
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3SelectExprHeight(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - A
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19586
      start: 19585
    functionDepth: 0
    functionLinenumber: 19585
    functionLinenumberEnd: 19586
    functionName: IOTRACE
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IOTRACE(A)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - Y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19628
      start: 19627
    functionDepth: 0
    functionLinenumber: 19627
    functionLinenumberEnd: 19628
    functionName: sqlite3MemdebugHasType
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3MemdebugHasType(X,Y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - Y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19629
      start: 19628
    functionDepth: 0
    functionLinenumber: 19628
    functionLinenumberEnd: 19629
    functionName: sqlite3MemdebugNoType
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3MemdebugNoType(X,Y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20198
      start: 20197
    functionDepth: 0
    functionLinenumber: 20197
    functionLinenumberEnd: 20198
    functionName: VdbeFrameMem
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VdbeFrameMem(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20283
      start: 20281
    functionDepth: 0
    functionLinenumber: 20281
    functionLinenumberEnd: 20283
    functionName: VdbeMemDynamic
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VdbeMemDynamic(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20289
      start: 20287
    functionDepth: 0
    functionLinenumber: 20287
    functionLinenumberEnd: 20289
    functionName: MemSetTypeFlag
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MemSetTypeFlag(p, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20295
      start: 20293
    functionDepth: 0
    functionLinenumber: 20293
    functionLinenumberEnd: 20295
    functionName: MemNullNochng
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MemNullNochng(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - M
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20302
      start: 20301
    functionDepth: 0
    functionLinenumber: 20301
    functionLinenumberEnd: 20302
    functionName: memIsValid
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: memIsValid(M)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20599
      start: 20598
    functionDepth: 0
    functionLinenumber: 20598
    functionLinenumberEnd: 20599
    functionName: sqlite3VdbeCheckFk
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3VdbeCheckFk(p,i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - P
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20613
      start: 20612
    functionDepth: 0
    functionLinenumber: 20612
    functionLinenumberEnd: 20613
    functionName: ExpandBlob
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ExpandBlob(P)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20615
      start: 20614
    functionDepth: 0
    functionLinenumber: 20614
    functionLinenumberEnd: 20615
    functionName: sqlite3VdbeMemExpandBlob
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3VdbeMemExpandBlob(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - P
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20616
      start: 20615
    functionDepth: 0
    functionLinenumber: 20615
    functionLinenumberEnd: 20616
    functionName: ExpandBlob
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ExpandBlob(P)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20635
      start: 20632
    functionDepth: 0
    functionLinenumber: 20632
    functionLinenumberEnd: 20635
    functionName: sqlite3StatType
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_WSD
    signature: SQLITE_WSD sqlite3StatType
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:20675,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:20675,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:20676,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:20676,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:20677,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:20677,1
    - Dst: sqlite3Pcache1Mutex
      Src: /src/nss/lib/sqlite/sqlite3.c:20677,1
    - Dst: sqlite3MallocMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:20678,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - int
    assertStmts:
    - condition: ( op>=0 && op<ArraySize(wsdStat.nowValue) )
      pos:
        line_end: 20674
        line_start: 20674
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( op>=0 && op<ArraySize(statMutex) )
      pos:
        line_end: 20675
        line_start: 20675
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( sqlite3_mutex_held(statMutex[op] ? sqlite3Pcache1Mutex()\n                                           :
        sqlite3MallocMutex()) )"
      pos:
        line_end: 20677
        line_start: 20676
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 20680
      start: 20673
    functionDepth: 1
    functionLinenumber: 20673
    functionLinenumberEnd: 20680
    functionName: sqlite3_int64::sqlite3StatusValue
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Pcache1Mutex
    - ArraySize
    - sqlite3MallocMutex
    - assert
    - sqlite3_mutex_held
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3_int64 sqlite3StatusValue(int op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:20695,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:20695,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:20696,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:20696,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:20697,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:20697,1
    - Dst: sqlite3Pcache1Mutex
      Src: /src/nss/lib/sqlite/sqlite3.c:20697,1
    - Dst: sqlite3MallocMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:20698,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - op
    - N
    argTypes:
    - int
    - int
    assertStmts:
    - condition: ( op>=0 && op<ArraySize(wsdStat.nowValue) )
      pos:
        line_end: 20694
        line_start: 20694
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( op>=0 && op<ArraySize(statMutex) )
      pos:
        line_end: 20695
        line_start: 20695
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( sqlite3_mutex_held(statMutex[op] ? sqlite3Pcache1Mutex()\n                                           :
        sqlite3MallocMutex()) )"
      pos:
        line_end: 20697
        line_start: 20696
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 20703
      start: 20693
    functionDepth: 1
    functionLinenumber: 20693
    functionLinenumberEnd: 20703
    functionName: sqlite3StatusUp
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Pcache1Mutex
    - ArraySize
    - sqlite3MallocMutex
    - assert
    - sqlite3_mutex_held
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3StatusUp(int op, int N)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:20706,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:20707,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:20707,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:20708,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:20708,1
    - Dst: sqlite3Pcache1Mutex
      Src: /src/nss/lib/sqlite/sqlite3.c:20708,1
    - Dst: sqlite3MallocMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:20709,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:20710,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:20710,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - op
    - N
    argTypes:
    - int
    - int
    assertStmts:
    - condition: ( N>=0 )
      pos:
        line_end: 20705
        line_start: 20705
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( sqlite3_mutex_held(statMutex[op] ? sqlite3Pcache1Mutex()\n                                           :
        sqlite3MallocMutex()) )"
      pos:
        line_end: 20708
        line_start: 20707
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( op>=0 && op<ArraySize(statMutex) )
      pos:
        line_end: 20706
        line_start: 20706
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( op>=0 && op<ArraySize(wsdStat.nowValue) )
      pos:
        line_end: 20709
        line_start: 20709
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 20712
      start: 20704
    functionDepth: 1
    functionLinenumber: 20704
    functionLinenumberEnd: 20712
    functionName: sqlite3StatusDown
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Pcache1Mutex
    - ArraySize
    - sqlite3MallocMutex
    - assert
    - sqlite3_mutex_held
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3StatusDown(int op, int N)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:20721,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:20723,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:20723,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:20724,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:20724,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:20725,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:20725,1
    - Dst: sqlite3Pcache1Mutex
      Src: /src/nss/lib/sqlite/sqlite3.c:20725,1
    - Dst: sqlite3MallocMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:20726,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:20727,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - op
    - X
    argTypes:
    - int
    - int
    assertStmts:
    - condition: ( X>=0 )
      pos:
        line_end: 20720
        line_start: 20720
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( op>=0 && op<ArraySize(statMutex) )
      pos:
        line_end: 20723
        line_start: 20723
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( op>=0 && op<ArraySize(wsdStat.nowValue) )
      pos:
        line_end: 20722
        line_start: 20722
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( sqlite3_mutex_held(statMutex[op] ? sqlite3Pcache1Mutex()\n                                           :
        sqlite3MallocMutex()) )"
      pos:
        line_end: 20725
        line_start: 20724
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( op==SQLITE_STATUS_MALLOC_SIZE\n          || op==SQLITE_STATUS_PAGECACHE_SIZE\n
        \         || op==SQLITE_STATUS_PARSER_STACK )"
      pos:
        line_end: 20728
        line_start: 20726
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 20733
      start: 20718
    functionDepth: 1
    functionLinenumber: 20718
    functionLinenumberEnd: 20733
    functionName: sqlite3StatusHighwater
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Pcache1Mutex
    - ArraySize
    - sqlite3MallocMutex
    - assert
    - sqlite3_mutex_held
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3StatusHighwater(int op, int X)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:20746,1
    - Dst: sqlite3Pcache1Mutex
      Src: /src/nss/lib/sqlite/sqlite3.c:20752,1
    - Dst: sqlite3MallocMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:20752,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:20753,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:20759,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - op
    - pCurrent
    - pHighwater
    - resetFlag
    argTypes:
    - int
    - sqlite3_int64*
    - sqlite3_int64*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20762
      start: 20738
    functionDepth: 1
    functionLinenumber: 20738
    functionLinenumberEnd: 20762
    functionName: sqlite3_status64
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Pcache1Mutex
    - sqlite3_mutex_enter
    - sqlite3_mutex_leave
    - ArraySize
    - sqlite3MallocMutex
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_status64(\n  int op,\n  sqlite3_int64 *pCurrent,\n
      \ sqlite3_int64 *pHighwater,\n  int resetFlag\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_status64
      Src: /src/nss/lib/sqlite/sqlite3.c:20769,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - op
    - pCurrent
    - pHighwater
    - resetFlag
    argTypes:
    - int
    - int*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20775
      start: 20763
    functionDepth: 2
    functionLinenumber: 20763
    functionLinenumberEnd: 20775
    functionName: sqlite3_status
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_status64
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_status(int op, int *pCurrent, int *pHighwater, int
      resetFlag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - LookasideSlot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20787
      start: 20780
    functionDepth: 0
    functionLinenumber: 20780
    functionLinenumberEnd: 20787
    functionName: countLookasideSlots
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: u32 countLookasideSlots(LookasideSlot *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: countLookasideSlots
      Src: /src/nss/lib/sqlite/sqlite3.c:20793,1
    - Dst: countLookasideSlots
      Src: /src/nss/lib/sqlite/sqlite3.c:20794,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - db
    - pHighwater
    argTypes:
    - sqlite3*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20797
      start: 20792
    functionDepth: 1
    functionLinenumber: 20792
    functionLinenumberEnd: 20797
    functionName: sqlite3LookasideUsed
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - countLookasideSlots
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3LookasideUsed(sqlite3 *db, int *pHighwater)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/nss/lib/sqlite/sqlite3.c:20811,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:20815,1
    - Dst: sqlite3LookasideUsed
      Src: /src/nss/lib/sqlite/sqlite3.c:20818,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:20834,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:20835,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:20836,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:20837,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:20838,1
    - Dst: sqlite3BtreeEnterAll
      Src: /src/nss/lib/sqlite/sqlite3.c:20856,1
    - Dst: sqlite3BtreePager
      Src: /src/nss/lib/sqlite/sqlite3.c:20860,1
    - Dst: sqlite3PagerMemUsed
      Src: /src/nss/lib/sqlite/sqlite3.c:20861,1
    - Dst: sqlite3BtreeConnectionCount
      Src: /src/nss/lib/sqlite/sqlite3.c:20863,1
    - Dst: sqlite3BtreeLeaveAll
      Src: /src/nss/lib/sqlite/sqlite3.c:20868,1
    - Dst: sqlite3BtreeEnterAll
      Src: /src/nss/lib/sqlite/sqlite3.c:20883,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:20887,1
    - Dst: m::xRoundup
      Src: /src/nss/lib/sqlite/sqlite3.c:20890,1
    - Dst: sqlite3_msize
      Src: /src/nss/lib/sqlite/sqlite3.c:20896,1
    - Dst: sqlite3_msize
      Src: /src/nss/lib/sqlite/sqlite3.c:20897,1
    - Dst: sqlite3_msize
      Src: /src/nss/lib/sqlite/sqlite3.c:20898,1
    - Dst: sqlite3_msize
      Src: /src/nss/lib/sqlite/sqlite3.c:20899,1
    - Dst: sqliteHashFirst
      Src: /src/nss/lib/sqlite/sqlite3.c:20901,1
    - Dst: sqliteHashNext
      Src: /src/nss/lib/sqlite/sqlite3.c:20901,1
    - Dst: sqlite3DeleteTrigger
      Src: /src/nss/lib/sqlite/sqlite3.c:20902,1
    - Dst: sqliteHashData
      Src: /src/nss/lib/sqlite/sqlite3.c:20902,1
    - Dst: sqliteHashFirst
      Src: /src/nss/lib/sqlite/sqlite3.c:20904,1
    - Dst: sqliteHashNext
      Src: /src/nss/lib/sqlite/sqlite3.c:20904,1
    - Dst: sqlite3DeleteTable
      Src: /src/nss/lib/sqlite/sqlite3.c:20905,1
    - Dst: sqliteHashData
      Src: /src/nss/lib/sqlite/sqlite3.c:20905,1
    - Dst: sqlite3BtreeLeaveAll
      Src: /src/nss/lib/sqlite/sqlite3.c:20910,1
    - Dst: sqlite3VdbeClearObject
      Src: /src/nss/lib/sqlite/sqlite3.c:20928,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:20929,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:20952,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:20953,1
    - Dst: sqlite3BtreePager
      Src: /src/nss/lib/sqlite/sqlite3.c:20957,1
    - Dst: sqlite3PagerCacheStat
      Src: /src/nss/lib/sqlite/sqlite3.c:20958,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:20982,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 112
    argCount: 5
    argNames:
    - db
    - op
    - pCurrent
    - pHighwater
    - resetFlag
    argTypes:
    - sqlite3*
    - int
    - int*
    - int*
    - int
    assertStmts:
    - condition: ( (op-SQLITE_DBSTATUS_LOOKASIDE_HIT)>=0 )
      pos:
        line_end: 20836
        line_start: 20836
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (op-SQLITE_DBSTATUS_LOOKASIDE_HIT)<3 )
      pos:
        line_end: 20837
        line_start: 20837
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( SQLITE_DBSTATUS_CACHE_WRITE==SQLITE_DBSTATUS_CACHE_HIT+2 )
      pos:
        line_end: 20952
        line_start: 20952
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( SQLITE_DBSTATUS_CACHE_MISS==SQLITE_DBSTATUS_CACHE_HIT+1 )
      pos:
        line_end: 20951
        line_start: 20951
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 20984
      start: 20802
    functionDepth: 2
    functionLinenumber: 20802
    functionLinenumberEnd: 20984
    functionName: sqlite3_db_status
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - ALWAYS
    - sqlite3DeleteTrigger
    - sqlite3SafetyCheckOk
    - sqliteHashNext
    - sqlite3BtreeConnectionCount
    - sqlite3BtreeLeaveAll
    - sqliteHashData
    - testcase
    - sqliteHashFirst
    - sqlite3LookasideUsed
    - sqlite3_mutex_leave
    - assert
    - sqlite3DeleteTable
    - sqlite3PagerCacheStat
    - sqlite3VdbeClearObject
    - sqlite3BtreePager
    - sqlite3_msize
    - m::xRoundup
    - sqlite3DbFree
    - sqlite3BtreeEnterAll
    - sqlite3PagerMemUsed
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_db_status(\n  sqlite3 *db,          /* The database
      connection whose status is desired */\n  int op,               /* Status verb
      */\n  int *pCurrent,        /* Write current value here */\n  int *pHighwater,
      \     /* Write high-water mark here */\n  int resetFlag         /* Reset high-water
      mark if true */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/nss/lib/sqlite/sqlite3.c:21104,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:21111,1
    - Dst: sqlite3Isdigit
      Src: /src/nss/lib/sqlite/sqlite3.c:21116,1
    - Dst: va_end
      Src: /src/nss/lib/sqlite/sqlite3.c:21131,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 2
    argNames:
    - zDate
    - zFormat
    argTypes:
    - char*
    - char*
    assertStmts:
    - condition: ( zFormat[2]>='a' && zFormat[2]<='f' )
      pos:
        line_end: 21110
        line_start: 21110
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 21133
      start: 21097
    functionDepth: 1
    functionLinenumber: 21097
    functionLinenumberEnd: 21133
    functionName: getDigits
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3Isdigit
    - va_end
    - va_start
    linkageType: ''
    returnType: int
    signature: int getDigits(const char *zDate, const char *zFormat, ...)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Isspace
      Src: /src/nss/lib/sqlite/sqlite3.c:21155,1
    - Dst: getDigits
      Src: /src/nss/lib/sqlite/sqlite3.c:21169,1
    - Dst: sqlite3Isspace
      Src: /src/nss/lib/sqlite/sqlite3.c:21175,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - zDate
    - p
    argTypes:
    - char*
    - DateTime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21178
      start: 21151
    functionDepth: 2
    functionLinenumber: 21151
    functionLinenumberEnd: 21178
    functionName: parseTimezone
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Isspace
    - getDigits
    linkageType: ''
    returnType: int
    signature: int parseTimezone(const char *zDate, DateTime *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getDigits
      Src: /src/nss/lib/sqlite/sqlite3.c:21190,1
    - Dst: getDigits
      Src: /src/nss/lib/sqlite/sqlite3.c:21196,1
    - Dst: sqlite3Isdigit
      Src: /src/nss/lib/sqlite/sqlite3.c:21200,1
    - Dst: sqlite3Isdigit
      Src: /src/nss/lib/sqlite/sqlite3.c:21203,1
    - Dst: parseTimezone
      Src: /src/nss/lib/sqlite/sqlite3.c:21219,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 2
    argNames:
    - zDate
    - p
    argTypes:
    - char*
    - DateTime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21222
      start: 21187
    functionDepth: 3
    functionLinenumber: 21187
    functionLinenumberEnd: 21222
    functionName: parseHhMmSs
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Isdigit
    - getDigits
    - parseTimezone
    linkageType: ''
    returnType: int
    signature: int parseHhMmSs(const char *zDate, DateTime *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:21228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - DateTime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21230
      start: 21227
    functionDepth: 0
    functionLinenumber: 21227
    functionLinenumberEnd: 21230
    functionName: datetimeError
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void datetimeError(DateTime *p)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: datetimeError
      Src: /src/nss/lib/sqlite/sqlite3.c:21252,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 1
    argNames:
    - p
    argTypes:
    - DateTime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21274
      start: 21238
    functionDepth: 1
    functionLinenumber: 21238
    functionLinenumberEnd: 21274
    functionName: computeJD
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - datetimeError
    linkageType: ''
    returnType: void
    signature: void computeJD(DateTime *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getDigits
      Src: /src/nss/lib/sqlite/sqlite3.c:21297,1
    - Dst: sqlite3Isspace
      Src: /src/nss/lib/sqlite/sqlite3.c:21301,1
    - Dst: parseHhMmSs
      Src: /src/nss/lib/sqlite/sqlite3.c:21302,1
    - Dst: computeJD
      Src: /src/nss/lib/sqlite/sqlite3.c:21315,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - zDate
    - p
    argTypes:
    - char*
    - DateTime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21318
      start: 21288
    functionDepth: 4
    functionLinenumber: 21288
    functionLinenumberEnd: 21318
    functionName: parseYyyyMmDd
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - computeJD
    - parseHhMmSs
    - sqlite3Isspace
    - getDigits
    linkageType: ''
    returnType: int
    signature: int parseYyyyMmDd(const char *zDate, DateTime *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3StmtCurrentTime
      Src: /src/nss/lib/sqlite/sqlite3.c:21326,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - context
    - p
    argTypes:
    - sqlite3_context*
    - DateTime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21333
      start: 21325
    functionDepth: 0
    functionLinenumber: 21325
    functionLinenumberEnd: 21333
    functionName: setDateTimeToCurrent
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3StmtCurrentTime
    linkageType: ''
    returnType: int
    signature: int setDateTimeToCurrent(sqlite3_context *context, DateTime *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - p
    - r
    argTypes:
    - DateTime*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21348
      start: 21341
    functionDepth: 0
    functionLinenumber: 21341
    functionLinenumberEnd: 21348
    functionName: setRawDateNumber
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setRawDateNumber(DateTime *p, double r)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: parseYyyyMmDd
      Src: /src/nss/lib/sqlite/sqlite3.c:21372,1
    - Dst: parseHhMmSs
      Src: /src/nss/lib/sqlite/sqlite3.c:21374,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:21376,1
    - Dst: sqlite3NotPureFunc
      Src: /src/nss/lib/sqlite/sqlite3.c:21376,1
    - Dst: setDateTimeToCurrent
      Src: /src/nss/lib/sqlite/sqlite3.c:21377,1
    - Dst: sqlite3AtoF
      Src: /src/nss/lib/sqlite/sqlite3.c:21378,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:21378,1
    - Dst: setRawDateNumber
      Src: /src/nss/lib/sqlite/sqlite3.c:21379,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - context
    - zDate
    - p
    argTypes:
    - sqlite3_context*
    - char*
    - DateTime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21383
      start: 21366
    functionDepth: 5
    functionLinenumber: 21366
    functionLinenumberEnd: 21383
    functionName: parseDateOrTime
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - setDateTimeToCurrent
    - setRawDateNumber
    - parseYyyyMmDd
    - sqlite3StrICmp
    - sqlite3NotPureFunc
    - sqlite3AtoF
    - sqlite3Strlen30
    - parseHhMmSs
    linkageType: ''
    returnType: int
    signature: "int parseDateOrTime(\n  sqlite3_context *context, \n  const char *zDate,
      \n  DateTime *p\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - iJD
    argTypes:
    - sqlite3_int64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21401
      start: 21399
    functionDepth: 0
    functionLinenumber: 21399
    functionLinenumberEnd: 21401
    functionName: validJulianDay
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int validJulianDay(sqlite3_int64 iJD)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: validJulianDay
      Src: /src/nss/lib/sqlite/sqlite3.c:21413,1
    - Dst: datetimeError
      Src: /src/nss/lib/sqlite/sqlite3.c:21414,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 1
    argNames:
    - p
    argTypes:
    - DateTime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21430
      start: 21406
    functionDepth: 1
    functionLinenumber: 21406
    functionLinenumberEnd: 21430
    functionName: computeYMD
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - validJulianDay
    - datetimeError
    linkageType: ''
    returnType: void
    signature: void computeYMD(DateTime *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: computeJD
      Src: /src/nss/lib/sqlite/sqlite3.c:21438,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - p
    argTypes:
    - DateTime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21449
      start: 21435
    functionDepth: 2
    functionLinenumber: 21435
    functionLinenumberEnd: 21449
    functionName: computeHMS
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - computeJD
    linkageType: ''
    returnType: void
    signature: void computeHMS(DateTime *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: computeYMD
      Src: /src/nss/lib/sqlite/sqlite3.c:21455,1
    - Dst: computeHMS
      Src: /src/nss/lib/sqlite/sqlite3.c:21456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - DateTime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21457
      start: 21454
    functionDepth: 3
    functionLinenumber: 21454
    functionLinenumberEnd: 21457
    functionName: computeYMD_HMS
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - computeHMS
    - computeYMD
    linkageType: ''
    returnType: void
    signature: void computeYMD_HMS(DateTime *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - DateTime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21466
      start: 21462
    functionDepth: 0
    functionLinenumber: 21462
    functionLinenumberEnd: 21466
    functionName: clearYMD_HMS_TZ
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clearYMD_HMS_TZ(DateTime *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3MutexAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:21505,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:21507,1
    - Dst: localtime
      Src: /src/nss/lib/sqlite/sqlite3.c:21508,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:21513,1
    - Dst: localtime_r
      Src: /src/nss/lib/sqlite/sqlite3.c:21520,1
    - Dst: localtime_s
      Src: /src/nss/lib/sqlite/sqlite3.c:21522,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - t
    - pTm
    argTypes:
    - time_t*
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21526
      start: 21500
    functionDepth: 1
    functionLinenumber: 21500
    functionLinenumberEnd: 21526
    functionName: osLocaltime
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - localtime
    - sqlite3_mutex_leave
    - localtime_s
    - sqlite3MutexAlloc
    - localtime_r
    linkageType: ''
    returnType: int
    signature: int osLocaltime(time_t *t, struct tm *pTm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:21549,1
    - Dst: computeYMD_HMS
      Src: /src/nss/lib/sqlite/sqlite3.c:21552,1
    - Dst: computeJD
      Src: /src/nss/lib/sqlite/sqlite3.c:21571,1
    - Dst: osLocaltime
      Src: /src/nss/lib/sqlite/sqlite3.c:21573,1
    - Dst: sqlite3_result_error
      Src: /src/nss/lib/sqlite/sqlite3.c:21574,1
    - Dst: computeJD
      Src: /src/nss/lib/sqlite/sqlite3.c:21590,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 38
    argCount: 3
    argNames:
    - p
    - pCtx
    - pRc
    argTypes:
    - DateTime*
    - sqlite3_context*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21593
      start: 21539
    functionDepth: 4
    functionLinenumber: 21539
    functionLinenumberEnd: 21593
    functionName: localtimeOffset
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - computeYMD_HMS
    - computeJD
    - memset
    - osLocaltime
    - sqlite3_result_error
    linkageType: ''
    returnType: sqlite3_int64
    signature: "sqlite3_int64 localtimeOffset(\n  DateTime *p,                    /*
      Date at which to calculate offset */\n  sqlite3_context *pCtx,          /* Write
      error here if one occurs */\n  int *pRc                        /* OUT: Error
      code. SQLITE_OK or ERROR */\n)"
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:21659,1
    - Dst: sqlite3NotPureFunc
      Src: /src/nss/lib/sqlite/sqlite3.c:21659,1
    - Dst: computeJD
      Src: /src/nss/lib/sqlite/sqlite3.c:21660,1
    - Dst: localtimeOffset
      Src: /src/nss/lib/sqlite/sqlite3.c:21661,1
    - Dst: clearYMD_HMS_TZ
      Src: /src/nss/lib/sqlite/sqlite3.c:21662,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:21674,1
    - Dst: clearYMD_HMS_TZ
      Src: /src/nss/lib/sqlite/sqlite3.c:21677,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:21685,1
    - Dst: sqlite3NotPureFunc
      Src: /src/nss/lib/sqlite/sqlite3.c:21685,1
    - Dst: computeJD
      Src: /src/nss/lib/sqlite/sqlite3.c:21688,1
    - Dst: localtimeOffset
      Src: /src/nss/lib/sqlite/sqlite3.c:21689,1
    - Dst: clearYMD_HMS_TZ
      Src: /src/nss/lib/sqlite/sqlite3.c:21692,1
    - Dst: localtimeOffset
      Src: /src/nss/lib/sqlite/sqlite3.c:21693,1
    - Dst: sqlite3_strnicmp
      Src: /src/nss/lib/sqlite/sqlite3.c:21711,1
    - Dst: sqlite3AtoF
      Src: /src/nss/lib/sqlite/sqlite3.c:21712,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:21712,1
    - Dst: computeYMD_HMS
      Src: /src/nss/lib/sqlite/sqlite3.c:21715,1
    - Dst: computeJD
      Src: /src/nss/lib/sqlite/sqlite3.c:21718,1
    - Dst: clearYMD_HMS_TZ
      Src: /src/nss/lib/sqlite/sqlite3.c:21722,1
    - Dst: sqlite3_strnicmp
      Src: /src/nss/lib/sqlite/sqlite3.c:21734,1
    - Dst: computeYMD
      Src: /src/nss/lib/sqlite/sqlite3.c:21737,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:21744,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:21747,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:21751,1
    - Dst: sqlite3Isspace
      Src: /src/nss/lib/sqlite/sqlite3.c:21770,1
    - Dst: sqlite3AtoF
      Src: /src/nss/lib/sqlite/sqlite3.c:21771,1
    - Dst: sqlite3Isdigit
      Src: /src/nss/lib/sqlite/sqlite3.c:21784,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:21785,1
    - Dst: parseHhMmSs
      Src: /src/nss/lib/sqlite/sqlite3.c:21786,1
    - Dst: computeJD
      Src: /src/nss/lib/sqlite/sqlite3.c:21787,1
    - Dst: computeJD
      Src: /src/nss/lib/sqlite/sqlite3.c:21792,1
    - Dst: clearYMD_HMS_TZ
      Src: /src/nss/lib/sqlite/sqlite3.c:21793,1
    - Dst: sqlite3Isspace
      Src: /src/nss/lib/sqlite/sqlite3.c:21802,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:21803,1
    - Dst: computeJD
      Src: /src/nss/lib/sqlite/sqlite3.c:21806,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:21809,1
    - Dst: sqlite3_strnicmp
      Src: /src/nss/lib/sqlite/sqlite3.c:21811,1
    - Dst: computeYMD_HMS
      Src: /src/nss/lib/sqlite/sqlite3.c:21817,1
    - Dst: computeYMD_HMS
      Src: /src/nss/lib/sqlite/sqlite3.c:21828,1
    - Dst: computeJD
      Src: /src/nss/lib/sqlite/sqlite3.c:21835,1
    - Dst: clearYMD_HMS_TZ
      Src: /src/nss/lib/sqlite/sqlite3.c:21841,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 160
    argCount: 4
    argNames:
    - pCtx
    - z
    - n
    - p
    argTypes:
    - sqlite3_context*
    - char*
    - int
    - DateTime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21849
      start: 21643
    functionDepth: 5
    functionLinenumber: 21643
    functionLinenumberEnd: 21849
    functionName: parseModifier
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - computeYMD
    - computeYMD_HMS
    - sqlite3Isdigit
    - computeJD
    - parseHhMmSs
    - ArraySize
    - sqlite3AtoF
    - memset
    - localtimeOffset
    - sqlite3Strlen30
    - clearYMD_HMS_TZ
    - sqlite3NotPureFunc
    - sqlite3_stricmp
    - sqlite3Isspace
    - sqlite3_strnicmp
    linkageType: ''
    returnType: int
    signature: "int parseModifier(\n  sqlite3_context *pCtx,      /* Function context
      */\n  const char *z,              /* The text of the modifier */\n  int n,                      /*
      Length of zMod in bytes */\n  DateTime *p                 /* The date/time value
      to be modified */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:21869,1
    - Dst: setDateTimeToCurrent
      Src: /src/nss/lib/sqlite/sqlite3.c:21871,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:21873,1
    - Dst: setRawDateNumber
      Src: /src/nss/lib/sqlite/sqlite3.c:21875,1
    - Dst: sqlite3_value_double
      Src: /src/nss/lib/sqlite/sqlite3.c:21875,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:21877,1
    - Dst: parseDateOrTime
      Src: /src/nss/lib/sqlite/sqlite3.c:21878,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:21883,1
    - Dst: sqlite3_value_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:21884,1
    - Dst: parseModifier
      Src: /src/nss/lib/sqlite/sqlite3.c:21885,1
    - Dst: computeJD
      Src: /src/nss/lib/sqlite/sqlite3.c:21887,1
    - Dst: validJulianDay
      Src: /src/nss/lib/sqlite/sqlite3.c:21888,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 4
    argNames:
    - context
    - argc
    - argv
    - p
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    - DateTime*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21890
      start: 21860
    functionDepth: 6
    functionLinenumber: 21860
    functionLinenumberEnd: 21890
    functionName: isDate
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - setDateTimeToCurrent
    - setRawDateNumber
    - computeJD
    - parseDateOrTime
    - memset
    - validJulianDay
    - parseModifier
    - sqlite3_value_type
    - sqlite3_value_text
    - sqlite3_value_double
    - sqlite3_value_bytes
    linkageType: ''
    returnType: int
    signature: "int isDate(\n  sqlite3_context *context, \n  int argc, \n  sqlite3_value
      **argv, \n  DateTime *p\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isDate
      Src: /src/nss/lib/sqlite/sqlite3.c:21909,1
    - Dst: computeJD
      Src: /src/nss/lib/sqlite/sqlite3.c:21910,1
    - Dst: sqlite3_result_double
      Src: /src/nss/lib/sqlite/sqlite3.c:21911,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21913
      start: 21903
    functionDepth: 7
    functionLinenumber: 21903
    functionLinenumberEnd: 21913
    functionName: juliandayFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - isDate
    - computeJD
    - sqlite3_result_double
    linkageType: ''
    returnType: void
    signature: "void juliandayFunc(\n  sqlite3_context *context,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isDate
      Src: /src/nss/lib/sqlite/sqlite3.c:21926,1
    - Dst: computeYMD_HMS
      Src: /src/nss/lib/sqlite/sqlite3.c:21928,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:21929,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:21931,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21933
      start: 21920
    functionDepth: 7
    functionLinenumber: 21920
    functionLinenumberEnd: 21933
    functionName: datetimeFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - isDate
    - sqlite3_result_text
    - sqlite3_snprintf
    - computeYMD_HMS
    linkageType: ''
    returnType: void
    signature: "void datetimeFunc(\n  sqlite3_context *context,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isDate
      Src: /src/nss/lib/sqlite/sqlite3.c:21946,1
    - Dst: computeHMS
      Src: /src/nss/lib/sqlite/sqlite3.c:21948,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:21949,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:21950,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21952
      start: 21940
    functionDepth: 7
    functionLinenumber: 21940
    functionLinenumberEnd: 21952
    functionName: timeFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - isDate
    - sqlite3_result_text
    - computeHMS
    - sqlite3_snprintf
    linkageType: ''
    returnType: void
    signature: "void timeFunc(\n  sqlite3_context *context,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isDate
      Src: /src/nss/lib/sqlite/sqlite3.c:21965,1
    - Dst: computeYMD
      Src: /src/nss/lib/sqlite/sqlite3.c:21967,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:21968,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:21969,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21971
      start: 21959
    functionDepth: 7
    functionLinenumber: 21959
    functionLinenumberEnd: 21971
    functionName: dateFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - isDate
    - sqlite3_result_text
    - computeYMD
    - sqlite3_snprintf
    linkageType: ''
    returnType: void
    signature: "void dateFunc(\n  sqlite3_context *context,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:22005,1
    - Dst: isDate
      Src: /src/nss/lib/sqlite/sqlite3.c:22006,1
    - Dst: sqlite3_context_db_handle
      Src: /src/nss/lib/sqlite/sqlite3.c:22007,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:22041,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:22042,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:22043,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:22044,1
    - Dst: sqlite3_result_error_toobig
      Src: /src/nss/lib/sqlite/sqlite3.c:22048,1
    - Dst: sqlite3DbMallocRawNN
      Src: /src/nss/lib/sqlite/sqlite3.c:22051,1
    - Dst: sqlite3_result_error_nomem
      Src: /src/nss/lib/sqlite/sqlite3.c:22053,1
    - Dst: computeJD
      Src: /src/nss/lib/sqlite/sqlite3.c:22057,1
    - Dst: computeYMD_HMS
      Src: /src/nss/lib/sqlite/sqlite3.c:22058,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:22065,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:22069,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:22070,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:22073,1
    - Dst: computeJD
      Src: /src/nss/lib/sqlite/sqlite3.c:22081,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:22086,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:22089,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:22095,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:22096,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:22099,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:22100,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:22102,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:22104,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:22107,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:22113,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:22113,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:22121,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 135
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22123
      start: 21992
    functionDepth: 7
    functionLinenumber: 21992
    functionLinenumberEnd: 22123
    functionName: strftimeFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - computeYMD_HMS
    - sqlite3_context_db_handle
    - sqlite3DbMallocRawNN
    - computeJD
    - sqlite3_result_error_toobig
    - sqlite3Strlen30
    - sqlite3_result_error_nomem
    - isDate
    - sqlite3_result_text
    - sqlite3_value_text
    - testcase
    - sqlite3_snprintf
    linkageType: ''
    returnType: void
    signature: "void strftimeFunc(\n  sqlite3_context *context,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER2
      Src: /src/nss/lib/sqlite/sqlite3.c:22135,1
    - Dst: timeFunc
      Src: /src/nss/lib/sqlite/sqlite3.c:22136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - context
    - NotUsed
    - NotUsed2
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22137
      start: 22130
    functionDepth: 8
    functionLinenumber: 22130
    functionLinenumberEnd: 22137
    functionName: ctimeFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - timeFunc
    - UNUSED_PARAMETER2
    linkageType: ''
    returnType: void
    signature: "void ctimeFunc(\n  sqlite3_context *context,\n  int NotUsed,\n  sqlite3_value
      **NotUsed2\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER2
      Src: /src/nss/lib/sqlite/sqlite3.c:22149,1
    - Dst: dateFunc
      Src: /src/nss/lib/sqlite/sqlite3.c:22150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - context
    - NotUsed
    - NotUsed2
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22151
      start: 22144
    functionDepth: 8
    functionLinenumber: 22144
    functionLinenumberEnd: 22151
    functionName: cdateFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER2
    - dateFunc
    linkageType: ''
    returnType: void
    signature: "void cdateFunc(\n  sqlite3_context *context,\n  int NotUsed,\n  sqlite3_value
      **NotUsed2\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER2
      Src: /src/nss/lib/sqlite/sqlite3.c:22163,1
    - Dst: datetimeFunc
      Src: /src/nss/lib/sqlite/sqlite3.c:22164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - context
    - NotUsed
    - NotUsed2
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22165
      start: 22158
    functionDepth: 8
    functionLinenumber: 22158
    functionLinenumberEnd: 22165
    functionName: ctimestampFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - datetimeFunc
    - UNUSED_PARAMETER2
    linkageType: ''
    returnType: void
    signature: "void ctimestampFunc(\n  sqlite3_context *context,\n  int NotUsed,\n
      \ sqlite3_value **NotUsed2\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_user_data
      Src: /src/nss/lib/sqlite/sqlite3.c:22186,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:22192,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:22193,1
    - Dst: sqlite3StmtCurrentTime
      Src: /src/nss/lib/sqlite/sqlite3.c:22195,1
    - Dst: gmtime_r
      Src: /src/nss/lib/sqlite/sqlite3.c:22199,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:22201,1
    - Dst: sqlite3MutexAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:22201,1
    - Dst: gmtime
      Src: /src/nss/lib/sqlite/sqlite3.c:22202,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:22203,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:22204,1
    - Dst: sqlite3MutexAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:22204,1
    - Dst: strftime
      Src: /src/nss/lib/sqlite/sqlite3.c:22207,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:22208,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22210
      start: 22180
    functionDepth: 1
    functionLinenumber: 22180
    functionLinenumberEnd: 22210
    functionName: currentTimeFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - memcpy
    - gmtime_r
    - gmtime
    - sqlite3_mutex_leave
    - UNUSED_PARAMETER
    - sqlite3StmtCurrentTime
    - sqlite3_user_data
    - sqlite3MutexAlloc
    - strftime
    - sqlite3_result_text
    linkageType: ''
    returnType: void
    signature: "void currentTimeFunc(\n  sqlite3_context *context,\n  int argc,\n
      \ sqlite3_value **argv\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PURE_DATE
      Src: /src/nss/lib/sqlite/sqlite3.c:22221,1
    - Dst: PURE_DATE
      Src: /src/nss/lib/sqlite/sqlite3.c:22222,1
    - Dst: PURE_DATE
      Src: /src/nss/lib/sqlite/sqlite3.c:22223,1
    - Dst: PURE_DATE
      Src: /src/nss/lib/sqlite/sqlite3.c:22224,1
    - Dst: PURE_DATE
      Src: /src/nss/lib/sqlite/sqlite3.c:22225,1
    - Dst: DFUNCTION
      Src: /src/nss/lib/sqlite/sqlite3.c:22226,1
    - Dst: DFUNCTION
      Src: /src/nss/lib/sqlite/sqlite3.c:22227,1
    - Dst: DFUNCTION
      Src: /src/nss/lib/sqlite/sqlite3.c:22228,1
    - Dst: STR_FUNCTION
      Src: /src/nss/lib/sqlite/sqlite3.c:22230,1
    - Dst: STR_FUNCTION
      Src: /src/nss/lib/sqlite/sqlite3.c:22231,1
    - Dst: STR_FUNCTION
      Src: /src/nss/lib/sqlite/sqlite3.c:22232,1
    - Dst: sqlite3InsertBuiltinFuncs
      Src: /src/nss/lib/sqlite/sqlite3.c:22235,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:22235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22236
      start: 22218
    functionDepth: 1
    functionLinenumber: 22218
    functionLinenumberEnd: 22236
    functionName: sqlite3RegisterDateTimeFunctions
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3InsertBuiltinFuncs
    - ArraySize
    - STR_FUNCTION
    - DFUNCTION
    - PURE_DATE
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3RegisterDateTimeFunctions(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22311
      start: 22305
    functionDepth: 0
    functionLinenumber: 22305
    functionLinenumberEnd: 22311
    functionName: DO_OS_MALLOC_TEST
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DO_OS_MALLOC_TEST(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_file*::pMethods::xClose
      Src: /src/nss/lib/sqlite/sqlite3.c:22323,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pId
    argTypes:
    - sqlite3_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22326
      start: 22321
    functionDepth: 0
    functionLinenumber: 22321
    functionLinenumberEnd: 22326
    functionName: sqlite3OsClose
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_file*::pMethods::xClose
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OsClose(sqlite3_file *pId)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DO_OS_MALLOC_TEST
      Src: /src/nss/lib/sqlite/sqlite3.c:22328,1
    - Dst: sqlite3_file*::pMethods::xRead
      Src: /src/nss/lib/sqlite/sqlite3.c:22329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - id
    - pBuf
    - amt
    - offset
    argTypes:
    - sqlite3_file*
    - void*
    - int
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22330
      start: 22327
    functionDepth: 1
    functionLinenumber: 22327
    functionLinenumberEnd: 22330
    functionName: sqlite3OsRead
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_file*::pMethods::xRead
    - DO_OS_MALLOC_TEST
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OsRead(sqlite3_file *id, void *pBuf, int amt,
      i64 offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DO_OS_MALLOC_TEST
      Src: /src/nss/lib/sqlite/sqlite3.c:22332,1
    - Dst: sqlite3_file*::pMethods::xWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:22333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - id
    - pBuf
    - amt
    - offset
    argTypes:
    - sqlite3_file*
    - void*
    - int
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22334
      start: 22331
    functionDepth: 1
    functionLinenumber: 22331
    functionLinenumberEnd: 22334
    functionName: sqlite3OsWrite
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_file*::pMethods::xWrite
    - DO_OS_MALLOC_TEST
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OsWrite(sqlite3_file *id, const void *pBuf, int
      amt, i64 offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_file*::pMethods::xTruncate
      Src: /src/nss/lib/sqlite/sqlite3.c:22336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - id
    - size
    argTypes:
    - sqlite3_file*
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22337
      start: 22335
    functionDepth: 0
    functionLinenumber: 22335
    functionLinenumberEnd: 22337
    functionName: sqlite3OsTruncate
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_file*::pMethods::xTruncate
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OsTruncate(sqlite3_file *id, i64 size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DO_OS_MALLOC_TEST
      Src: /src/nss/lib/sqlite/sqlite3.c:22339,1
    - Dst: sqlite3_file*::pMethods::xSync
      Src: /src/nss/lib/sqlite/sqlite3.c:22340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - id
    - flags
    argTypes:
    - sqlite3_file*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22341
      start: 22338
    functionDepth: 1
    functionLinenumber: 22338
    functionLinenumberEnd: 22341
    functionName: sqlite3OsSync
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_file*::pMethods::xSync
    - DO_OS_MALLOC_TEST
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OsSync(sqlite3_file *id, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DO_OS_MALLOC_TEST
      Src: /src/nss/lib/sqlite/sqlite3.c:22343,1
    - Dst: sqlite3_file*::pMethods::xFileSize
      Src: /src/nss/lib/sqlite/sqlite3.c:22344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - id
    - pSize
    argTypes:
    - sqlite3_file*
    - i64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22345
      start: 22342
    functionDepth: 1
    functionLinenumber: 22342
    functionLinenumberEnd: 22345
    functionName: sqlite3OsFileSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_file*::pMethods::xFileSize
    - DO_OS_MALLOC_TEST
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OsFileSize(sqlite3_file *id, i64 *pSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DO_OS_MALLOC_TEST
      Src: /src/nss/lib/sqlite/sqlite3.c:22347,1
    - Dst: sqlite3_file*::pMethods::xLock
      Src: /src/nss/lib/sqlite/sqlite3.c:22348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - id
    - lockType
    argTypes:
    - sqlite3_file*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22349
      start: 22346
    functionDepth: 1
    functionLinenumber: 22346
    functionLinenumberEnd: 22349
    functionName: sqlite3OsLock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_file*::pMethods::xLock
    - DO_OS_MALLOC_TEST
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OsLock(sqlite3_file *id, int lockType)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_file*::pMethods::xUnlock
      Src: /src/nss/lib/sqlite/sqlite3.c:22351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - id
    - lockType
    argTypes:
    - sqlite3_file*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22352
      start: 22350
    functionDepth: 0
    functionLinenumber: 22350
    functionLinenumberEnd: 22352
    functionName: sqlite3OsUnlock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_file*::pMethods::xUnlock
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OsUnlock(sqlite3_file *id, int lockType)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DO_OS_MALLOC_TEST
      Src: /src/nss/lib/sqlite/sqlite3.c:22354,1
    - Dst: sqlite3_file*::pMethods::xCheckReservedLock
      Src: /src/nss/lib/sqlite/sqlite3.c:22355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - id
    - pResOut
    argTypes:
    - sqlite3_file*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22356
      start: 22353
    functionDepth: 1
    functionLinenumber: 22353
    functionLinenumberEnd: 22356
    functionName: sqlite3OsCheckReservedLock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_file*::pMethods::xCheckReservedLock
    - DO_OS_MALLOC_TEST
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OsCheckReservedLock(sqlite3_file *id, int *pResOut)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DO_OS_MALLOC_TEST
      Src: /src/nss/lib/sqlite/sqlite3.c:22382,1
    - Dst: sqlite3_file*::pMethods::xFileControl
      Src: /src/nss/lib/sqlite/sqlite3.c:22385,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - id
    - op
    - pArg
    argTypes:
    - sqlite3_file*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22386
      start: 22366
    functionDepth: 1
    functionLinenumber: 22366
    functionLinenumberEnd: 22386
    functionName: sqlite3OsFileControl
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_file*::pMethods::xFileControl
    - DO_OS_MALLOC_TEST
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OsFileControl(sqlite3_file *id, int op, void
      *pArg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_file*::pMethods::xFileControl
      Src: /src/nss/lib/sqlite/sqlite3.c:22388,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - id
    - op
    - pArg
    argTypes:
    - sqlite3_file*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22389
      start: 22387
    functionDepth: 0
    functionLinenumber: 22387
    functionLinenumberEnd: 22389
    functionName: sqlite3OsFileControlHint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_file*::pMethods::xFileControl
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OsFileControlHint(sqlite3_file *id, int op, void
      *pArg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xSectorSize
      Src: /src/nss/lib/sqlite/sqlite3.c:22393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - sqlite3_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22394
      start: 22391
    functionDepth: 0
    functionLinenumber: 22391
    functionLinenumberEnd: 22394
    functionName: sqlite3OsSectorSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - xSectorSize
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OsSectorSize(sqlite3_file *id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_file*::pMethods::xDeviceCharacteristics
      Src: /src/nss/lib/sqlite/sqlite3.c:22396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - sqlite3_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22397
      start: 22395
    functionDepth: 0
    functionLinenumber: 22395
    functionLinenumberEnd: 22397
    functionName: sqlite3OsDeviceCharacteristics
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_file*::pMethods::xDeviceCharacteristics
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OsDeviceCharacteristics(sqlite3_file *id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_file*::pMethods::xShmLock
      Src: /src/nss/lib/sqlite/sqlite3.c:22400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - id
    - offset
    - n
    - flags
    argTypes:
    - sqlite3_file*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22401
      start: 22399
    functionDepth: 0
    functionLinenumber: 22399
    functionLinenumberEnd: 22401
    functionName: sqlite3OsShmLock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_file*::pMethods::xShmLock
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OsShmLock(sqlite3_file *id, int offset, int n,
      int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_file*::pMethods::xShmBarrier
      Src: /src/nss/lib/sqlite/sqlite3.c:22403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - sqlite3_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22404
      start: 22402
    functionDepth: 0
    functionLinenumber: 22402
    functionLinenumberEnd: 22404
    functionName: sqlite3OsShmBarrier
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_file*::pMethods::xShmBarrier
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OsShmBarrier(sqlite3_file *id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_file*::pMethods::xShmUnmap
      Src: /src/nss/lib/sqlite/sqlite3.c:22406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - id
    - deleteFlag
    argTypes:
    - sqlite3_file*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22407
      start: 22405
    functionDepth: 0
    functionLinenumber: 22405
    functionLinenumberEnd: 22407
    functionName: sqlite3OsShmUnmap
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_file*::pMethods::xShmUnmap
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OsShmUnmap(sqlite3_file *id, int deleteFlag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DO_OS_MALLOC_TEST
      Src: /src/nss/lib/sqlite/sqlite3.c:22415,1
    - Dst: sqlite3_file*::pMethods::xShmMap
      Src: /src/nss/lib/sqlite/sqlite3.c:22416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - id
    - iPage
    - pgsz
    - bExtend
    - pp
    argTypes:
    - sqlite3_file*
    - int
    - int
    - int
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22417
      start: 22408
    functionDepth: 1
    functionLinenumber: 22408
    functionLinenumberEnd: 22417
    functionName: sqlite3OsShmMap
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_file*::pMethods::xShmMap
    - DO_OS_MALLOC_TEST
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3OsShmMap(\n  sqlite3_file *id,               /*
      Database file handle */\n  int iPage,\n  int pgsz,\n  int bExtend,                    /*
      True to extend file if necessary */\n  void volatile **pp              /* OUT:
      Pointer to mapping */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DO_OS_MALLOC_TEST
      Src: /src/nss/lib/sqlite/sqlite3.c:22423,1
    - Dst: sqlite3_file*::pMethods::xFetch
      Src: /src/nss/lib/sqlite/sqlite3.c:22424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - id
    - iOff
    - iAmt
    - pp
    argTypes:
    - sqlite3_file*
    - i64
    - int
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22425
      start: 22422
    functionDepth: 1
    functionLinenumber: 22422
    functionLinenumberEnd: 22425
    functionName: sqlite3OsFetch
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_file*::pMethods::xFetch
    - DO_OS_MALLOC_TEST
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OsFetch(sqlite3_file *id, i64 iOff, int iAmt,
      void **pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_file*::pMethods::xUnfetch
      Src: /src/nss/lib/sqlite/sqlite3.c:22427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - id
    - iOff
    - p
    argTypes:
    - sqlite3_file*
    - i64
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22428
      start: 22426
    functionDepth: 0
    functionLinenumber: 22426
    functionLinenumberEnd: 22428
    functionName: sqlite3OsUnfetch
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_file*::pMethods::xUnfetch
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OsUnfetch(sqlite3_file *id, i64 iOff, void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - id
    - iOff
    - iAmt
    - pp
    argTypes:
    - sqlite3_file*
    - i64
    - int
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22434
      start: 22431
    functionDepth: 0
    functionLinenumber: 22431
    functionLinenumberEnd: 22434
    functionName: sqlite3OsFetch
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OsFetch(sqlite3_file *id, i64 iOff, int iAmt,
      void **pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - id
    - iOff
    - p
    argTypes:
    - sqlite3_file*
    - i64
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22437
      start: 22435
    functionDepth: 0
    functionLinenumber: 22435
    functionLinenumberEnd: 22437
    functionName: sqlite3OsUnfetch
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OsUnfetch(sqlite3_file *id, i64 iOff, void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DO_OS_MALLOC_TEST
      Src: /src/nss/lib/sqlite/sqlite3.c:22452,1
    - Dst: sqlite3_vfs*::xOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:22457,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:22458,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - pVfs
    - zPath
    - pFile
    - flags
    - pFlagsOut
    argTypes:
    - sqlite3_vfs*
    - char*
    - sqlite3_file*
    - int
    - int*
    assertStmts:
    - condition: ( rc==SQLITE_OK || pFile->pMethods==0 )
      pos:
        line_end: 22457
        line_start: 22457
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 22460
      start: 22444
    functionDepth: 1
    functionLinenumber: 22444
    functionLinenumberEnd: 22460
    functionName: sqlite3OsOpen
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_vfs*::xOpen
    - DO_OS_MALLOC_TEST
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3OsOpen(\n  sqlite3_vfs *pVfs,\n  const char
      *zPath,\n  sqlite3_file *pFile,\n  int flags,\n  int *pFlagsOut\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DO_OS_MALLOC_TEST
      Src: /src/nss/lib/sqlite/sqlite3.c:22462,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:22463,1
    - Dst: sqlite3_vfs*::xDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:22464,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - pVfs
    - zPath
    - dirSync
    argTypes:
    - sqlite3_vfs*
    - char*
    - int
    assertStmts:
    - condition: ( dirSync==0 || dirSync==1 )
      pos:
        line_end: 22462
        line_start: 22462
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 22465
      start: 22461
    functionDepth: 1
    functionLinenumber: 22461
    functionLinenumberEnd: 22465
    functionName: sqlite3OsDelete
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_vfs*::xDelete
    - DO_OS_MALLOC_TEST
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OsDelete(sqlite3_vfs *pVfs, const char *zPath,
      int dirSync)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DO_OS_MALLOC_TEST
      Src: /src/nss/lib/sqlite/sqlite3.c:22472,1
    - Dst: sqlite3_vfs*::xAccess
      Src: /src/nss/lib/sqlite/sqlite3.c:22473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - pVfs
    - zPath
    - flags
    - pResOut
    argTypes:
    - sqlite3_vfs*
    - char*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22474
      start: 22466
    functionDepth: 1
    functionLinenumber: 22466
    functionLinenumberEnd: 22474
    functionName: sqlite3OsAccess
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_vfs*::xAccess
    - DO_OS_MALLOC_TEST
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3OsAccess(\n  sqlite3_vfs *pVfs,\n  const char
      *zPath,\n  int flags,\n  int *pResOut\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DO_OS_MALLOC_TEST
      Src: /src/nss/lib/sqlite/sqlite3.c:22481,1
    - Dst: sqlite3_vfs*::xFullPathname
      Src: /src/nss/lib/sqlite/sqlite3.c:22483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - pVfs
    - zPath
    - nPathOut
    - zPathOut
    argTypes:
    - sqlite3_vfs*
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22484
      start: 22475
    functionDepth: 1
    functionLinenumber: 22475
    functionLinenumberEnd: 22484
    functionName: sqlite3OsFullPathname
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_vfs*::xFullPathname
    - DO_OS_MALLOC_TEST
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3OsFullPathname(\n  sqlite3_vfs *pVfs,\n  const
      char *zPath,\n  int nPathOut,\n  char *zPathOut\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_vfs*::xDlOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:22487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pVfs
    - zPath
    argTypes:
    - sqlite3_vfs*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22488
      start: 22486
    functionDepth: 0
    functionLinenumber: 22486
    functionLinenumberEnd: 22488
    functionName: sqlite3OsDlOpen
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_vfs*::xDlOpen
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3OsDlOpen(sqlite3_vfs *pVfs, const char *zPath)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_vfs*::xDlError
      Src: /src/nss/lib/sqlite/sqlite3.c:22490,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pVfs
    - nByte
    - zBufOut
    argTypes:
    - sqlite3_vfs*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22491
      start: 22489
    functionDepth: 0
    functionLinenumber: 22489
    functionLinenumberEnd: 22491
    functionName: sqlite3OsDlError
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_vfs*::xDlError
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OsDlError(sqlite3_vfs *pVfs, int nByte, char
      *zBufOut)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3OsDlSym
      Src: /src/nss/lib/sqlite/sqlite3.c:22492,1
    - Dst: xDlSym
      Src: /src/nss/lib/sqlite/sqlite3.c:22493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22494
      start: 22492
    functionDepth: 0
    functionLinenumber: 22492
    functionLinenumberEnd: 22494
    functionName: (void)
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsDlSym
    - xDlSym
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE (void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_vfs*::xDlClose
      Src: /src/nss/lib/sqlite/sqlite3.c:22496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pVfs
    - pHandle
    argTypes:
    - sqlite3_vfs*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22497
      start: 22495
    functionDepth: 0
    functionLinenumber: 22495
    functionLinenumberEnd: 22497
    functionName: sqlite3OsDlClose
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_vfs*::xDlClose
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OsDlClose(sqlite3_vfs *pVfs, void *pHandle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_vfs*::xRandomness
      Src: /src/nss/lib/sqlite/sqlite3.c:22500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pVfs
    - nByte
    - zBufOut
    argTypes:
    - sqlite3_vfs*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22501
      start: 22499
    functionDepth: 0
    functionLinenumber: 22499
    functionLinenumberEnd: 22501
    functionName: sqlite3OsRandomness
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_vfs*::xRandomness
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OsRandomness(sqlite3_vfs *pVfs, int nByte, char
      *zBufOut)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_vfs*::xSleep
      Src: /src/nss/lib/sqlite/sqlite3.c:22503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pVfs
    - nMicro
    argTypes:
    - sqlite3_vfs*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22504
      start: 22502
    functionDepth: 0
    functionLinenumber: 22502
    functionLinenumberEnd: 22504
    functionName: sqlite3OsSleep
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_vfs*::xSleep
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OsSleep(sqlite3_vfs *pVfs, int nMicro)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_vfs*::xGetLastError
      Src: /src/nss/lib/sqlite/sqlite3.c:22506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pVfs
    argTypes:
    - sqlite3_vfs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22507
      start: 22505
    functionDepth: 0
    functionLinenumber: 22505
    functionLinenumberEnd: 22507
    functionName: sqlite3OsGetLastError
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_vfs*::xGetLastError
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OsGetLastError(sqlite3_vfs *pVfs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_vfs*::xCurrentTimeInt64
      Src: /src/nss/lib/sqlite/sqlite3.c:22517,1
    - Dst: sqlite3_vfs*::xCurrentTime
      Src: /src/nss/lib/sqlite/sqlite3.c:22520,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - pVfs
    - pTimeOut
    argTypes:
    - sqlite3_vfs*
    - sqlite3_int64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22524
      start: 22508
    functionDepth: 0
    functionLinenumber: 22508
    functionLinenumberEnd: 22524
    functionName: sqlite3OsCurrentTimeInt64
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_vfs*::xCurrentTimeInt64
    - sqlite3_vfs*::xCurrentTime
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OsCurrentTimeInt64(sqlite3_vfs *pVfs, sqlite3_int64
      *pTimeOut)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:22535,1
    - Dst: sqlite3OsOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:22537,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:22539,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - pVfs
    - zFile
    - ppFile
    - flags
    - pOutFlags
    argTypes:
    - sqlite3_vfs*
    - char*
    - sqlite3_file**
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22547
      start: 22526
    functionDepth: 2
    functionLinenumber: 22526
    functionLinenumberEnd: 22547
    functionName: sqlite3OsOpenMalloc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3MallocZero
    - sqlite3OsOpen
    - sqlite3_free
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3OsOpenMalloc(\n  sqlite3_vfs *pVfs,\n  const
      char *zFile,\n  sqlite3_file **ppFile,\n  int flags,\n  int *pOutFlags\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:22549,1
    - Dst: sqlite3OsClose
      Src: /src/nss/lib/sqlite/sqlite3.c:22550,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:22551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pFile
    argTypes:
    - sqlite3_file*
    assertStmts:
    - condition: ( pFile )
      pos:
        line_end: 22548
        line_start: 22548
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 22552
      start: 22548
    functionDepth: 1
    functionLinenumber: 22548
    functionLinenumberEnd: 22552
    functionName: sqlite3OsCloseFree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3OsClose
    - sqlite3_free
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OsCloseFree(sqlite3_file *pFile)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:22561,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:22563,1
    - Dst: sqlite3_os_init
      Src: /src/nss/lib/sqlite/sqlite3.c:22564,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22565
      start: 22560
    functionDepth: 1
    functionLinenumber: 22560
    functionLinenumberEnd: 22565
    functionName: sqlite3OsInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_malloc
    - sqlite3_os_init
    - sqlite3_free
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OsInit(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_initialize
      Src: /src/nss/lib/sqlite/sqlite3.c:22583,1
    - Dst: sqlite3MutexAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:22587,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:22589,1
    - Dst: strcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:22592,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:22594,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22596
      start: 22577
    functionDepth: 1
    functionLinenumber: 22577
    functionLinenumberEnd: 22596
    functionName: sqlite3_vfs *sqlite3_vfs_find(const char *zVfs)
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - strcmp
    - sqlite3_initialize
    - sqlite3_mutex_leave
    - sqlite3MutexAlloc
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_vfs *sqlite3_vfs_find(const char *zVfs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:22602,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:22602,1
    - Dst: sqlite3MutexAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:22602,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - pVfs
    argTypes:
    - sqlite3_vfs*
    assertStmts:
    - condition: ( sqlite3_mutex_held(sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_MASTER))
        )
      pos:
        line_end: 22601
        line_start: 22601
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 22616
      start: 22601
    functionDepth: 1
    functionLinenumber: 22601
    functionLinenumberEnd: 22616
    functionName: vfsUnlink
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_mutex_held
    - sqlite3MutexAlloc
    linkageType: ''
    returnType: void
    signature: void vfsUnlink(sqlite3_vfs *pVfs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MUTEX_LOGIC
      Src: /src/nss/lib/sqlite/sqlite3.c:22624,1
    - Dst: sqlite3_initialize
      Src: /src/nss/lib/sqlite/sqlite3.c:22626,1
    - Dst: MUTEX_LOGIC
      Src: /src/nss/lib/sqlite/sqlite3.c:22633,1
    - Dst: sqlite3MutexAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:22633,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:22634,1
    - Dst: vfsUnlink
      Src: /src/nss/lib/sqlite/sqlite3.c:22635,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:22643,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:22644,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - pVfs
    - makeDflt
    argTypes:
    - sqlite3_vfs*
    - int
    assertStmts:
    - condition: (vfsList)
      pos:
        line_end: 22642
        line_start: 22642
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 22646
      start: 22623
    functionDepth: 2
    functionLinenumber: 22623
    functionLinenumberEnd: 22646
    functionName: sqlite3_vfs_register
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3_initialize
    - MUTEX_LOGIC
    - sqlite3_mutex_leave
    - assert
    - vfsUnlink
    - sqlite3MutexAlloc
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_vfs_register(sqlite3_vfs *pVfs, int makeDflt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MUTEX_LOGIC
      Src: /src/nss/lib/sqlite/sqlite3.c:22652,1
    - Dst: sqlite3_initialize
      Src: /src/nss/lib/sqlite/sqlite3.c:22654,1
    - Dst: MUTEX_LOGIC
      Src: /src/nss/lib/sqlite/sqlite3.c:22657,1
    - Dst: sqlite3MutexAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:22657,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:22658,1
    - Dst: vfsUnlink
      Src: /src/nss/lib/sqlite/sqlite3.c:22659,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:22660,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - pVfs
    argTypes:
    - sqlite3_vfs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22662
      start: 22651
    functionDepth: 2
    functionLinenumber: 22651
    functionLinenumberEnd: 22662
    functionName: sqlite3_vfs_unregister
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3_initialize
    - MUTEX_LOGIC
    - sqlite3_mutex_leave
    - vfsUnlink
    - sqlite3MutexAlloc
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_vfs_unregister(sqlite3_vfs *pVfs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22703
      start: 22700
    functionDepth: 0
    functionLinenumber: 22700
    functionLinenumberEnd: 22703
    functionName: BenignMallocHooks
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_WSD
    signature: SQLITE_WSD BenignMallocHooks
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22732
      start: 22725
    functionDepth: 0
    functionLinenumber: 22725
    functionLinenumberEnd: 22732
    functionName: sqlite3BenignMallocHooks
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3BenignMallocHooks(\n  void (*xBenignBegin)(void),\n
      \ void (*xBenignEnd)(void)\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xBenignBegin
      Src: /src/nss/lib/sqlite/sqlite3.c:22742,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22744
      start: 22739
    functionDepth: 0
    functionLinenumber: 22739
    functionLinenumberEnd: 22744
    functionName: sqlite3BeginBenignMalloc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - xBenignBegin
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BeginBenignMalloc(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xBenignEnd
      Src: /src/nss/lib/sqlite/sqlite3.c:22748,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22750
      start: 22745
    functionDepth: 0
    functionLinenumber: 22745
    functionLinenumberEnd: 22750
    functionName: sqlite3EndBenignMalloc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - xBenignEnd
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3EndBenignMalloc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nByte
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22786
      start: 22786
    functionDepth: 0
    functionLinenumber: 22786
    functionLinenumberEnd: 22786
    functionName: sqlite3MemMalloc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *sqlite3MemMalloc(int nByte)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pPrior
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22787
      start: 22787
    functionDepth: 0
    functionLinenumber: 22787
    functionLinenumberEnd: 22787
    functionName: sqlite3MemFree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sqlite3MemFree(void *pPrior)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pPrior
    - nByte
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22788
      start: 22788
    functionDepth: 0
    functionLinenumber: 22788
    functionLinenumberEnd: 22788
    functionName: sqlite3MemRealloc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *sqlite3MemRealloc(void *pPrior, int nByte)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pPrior
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22789
      start: 22789
    functionDepth: 0
    functionLinenumber: 22789
    functionLinenumberEnd: 22789
    functionName: sqlite3MemSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sqlite3MemSize(void *pPrior)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22790
      start: 22790
    functionDepth: 0
    functionLinenumber: 22790
    functionLinenumberEnd: 22790
    functionName: sqlite3MemRoundup
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sqlite3MemRoundup(int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - NotUsed
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22791
      start: 22791
    functionDepth: 0
    functionLinenumber: 22791
    functionLinenumberEnd: 22791
    functionName: sqlite3MemInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sqlite3MemInit(void *NotUsed)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - NotUsed
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22792
      start: 22792
    functionDepth: 0
    functionLinenumber: 22792
    functionLinenumberEnd: 22792
    functionName: sqlite3MemShutdown
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sqlite3MemShutdown(void *NotUsed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_config
      Src: /src/nss/lib/sqlite/sqlite3.c:22811,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22812
      start: 22800
    functionDepth: 1
    functionLinenumber: 22800
    functionLinenumberEnd: 22812
    functionName: sqlite3MemSetDefault
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_config
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3MemSetDefault(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22882
      start: 22881
    functionDepth: 0
    functionLinenumber: 22881
    functionLinenumberEnd: 22882
    functionName: SQLITE_MALLOC
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQLITE_MALLOC(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22883
      start: 22882
    functionDepth: 0
    functionLinenumber: 22882
    functionLinenumberEnd: 22883
    functionName: SQLITE_FREE
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQLITE_FREE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22884
      start: 22883
    functionDepth: 0
    functionLinenumber: 22883
    functionLinenumberEnd: 22884
    functionName: SQLITE_REALLOC
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQLITE_REALLOC(x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22886
      start: 22884
    functionDepth: 0
    functionLinenumber: 22884
    functionLinenumberEnd: 22886
    functionName: SQLITE_MALLOCSIZE
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQLITE_MALLOCSIZE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22894
      start: 22893
    functionDepth: 0
    functionLinenumber: 22893
    functionLinenumberEnd: 22894
    functionName: SQLITE_MALLOC
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQLITE_MALLOC(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22895
      start: 22894
    functionDepth: 0
    functionLinenumber: 22894
    functionLinenumberEnd: 22895
    functionName: SQLITE_FREE
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQLITE_FREE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22896
      start: 22895
    functionDepth: 0
    functionLinenumber: 22895
    functionLinenumberEnd: 22896
    functionName: SQLITE_REALLOC
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQLITE_REALLOC(x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22927
      start: 22926
    functionDepth: 0
    functionLinenumber: 22926
    functionLinenumberEnd: 22927
    functionName: SQLITE_MALLOCSIZE
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQLITE_MALLOCSIZE(x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:22948,1
    - Dst: ROUND8
      Src: /src/nss/lib/sqlite/sqlite3.c:22948,1
    - Dst: SQLITE_MALLOC
      Src: /src/nss/lib/sqlite/sqlite3.c:22949,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:22951,1
    - Dst: sqlite3_log
      Src: /src/nss/lib/sqlite/sqlite3.c:22952,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:22957,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:22958,1
    - Dst: ROUND8
      Src: /src/nss/lib/sqlite/sqlite3.c:22958,1
    - Dst: SQLITE_MALLOC
      Src: /src/nss/lib/sqlite/sqlite3.c:22959,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:22964,1
    - Dst: sqlite3_log
      Src: /src/nss/lib/sqlite/sqlite3.c:22965,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - nByte
    argTypes:
    - int
    assertStmts:
    - condition: ( nByte>0 )
      pos:
        line_end: 22956
        line_start: 22956
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 22969
      start: 22945
    functionDepth: 1
    functionLinenumber: 22945
    functionLinenumberEnd: 22969
    functionName: sqlite3MemMalloc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ROUND8
    - sqlite3_log
    - assert
    - SQLITE_MALLOC
    - testcase
    linkageType: ''
    returnType: void
    signature: void *sqlite3MemMalloc(int nByte)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SQLITE_FREE
      Src: /src/nss/lib/sqlite/sqlite3.c:22981,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:22984,1
    - Dst: SQLITE_FREE
      Src: /src/nss/lib/sqlite/sqlite3.c:22986,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pPrior
    argTypes:
    - void*
    assertStmts:
    - condition: ( pPrior!=0 )
      pos:
        line_end: 22983
        line_start: 22983
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 22988
      start: 22979
    functionDepth: 1
    functionLinenumber: 22979
    functionLinenumberEnd: 22988
    functionName: sqlite3MemFree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - SQLITE_FREE
    linkageType: ''
    returnType: void
    signature: void sqlite3MemFree(void *pPrior)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:22996,1
    - Dst: SQLITE_MALLOCSIZE
      Src: /src/nss/lib/sqlite/sqlite3.c:22997,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:23000,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - pPrior
    argTypes:
    - void*
    assertStmts:
    - condition: ( pPrior!=0 )
      pos:
        line_end: 22995
        line_start: 22995
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPrior!=0 )
      pos:
        line_end: 22999
        line_start: 22999
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 23005
      start: 22994
    functionDepth: 1
    functionLinenumber: 22994
    functionLinenumberEnd: 23005
    functionName: sqlite3MemSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - SQLITE_MALLOCSIZE
    linkageType: ''
    returnType: int
    signature: int sqlite3MemSize(void *pPrior)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SQLITE_REALLOC
      Src: /src/nss/lib/sqlite/sqlite3.c:23019,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:23021,1
    - Dst: sqlite3_log
      Src: /src/nss/lib/sqlite/sqlite3.c:23022,1
    - Dst: SQLITE_MALLOCSIZE
      Src: /src/nss/lib/sqlite/sqlite3.c:23024,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:23029,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:23030,1
    - Dst: ROUND8
      Src: /src/nss/lib/sqlite/sqlite3.c:23030,1
    - Dst: SQLITE_REALLOC
      Src: /src/nss/lib/sqlite/sqlite3.c:23032,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:23037,1
    - Dst: sqlite3_log
      Src: /src/nss/lib/sqlite/sqlite3.c:23038,1
    - Dst: sqlite3MemSize
      Src: /src/nss/lib/sqlite/sqlite3.c:23040,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - pPrior
    - nByte
    argTypes:
    - void*
    - int
    assertStmts:
    - condition: ( pPrior!=0 && nByte>0 )
      pos:
        line_end: 23028
        line_start: 23028
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nByte==ROUND8(nByte) )
      pos:
        line_end: 23029
        line_start: 23029
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 23044
      start: 23017
    functionDepth: 1
    functionLinenumber: 23017
    functionLinenumberEnd: 23044
    functionName: sqlite3MemRealloc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ROUND8
    - sqlite3_log
    - sqlite3MemSize
    - SQLITE_REALLOC
    - assert
    - SQLITE_MALLOCSIZE
    - testcase
    linkageType: ''
    returnType: void
    signature: void *sqlite3MemRealloc(void *pPrior, int nByte)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ROUND8
      Src: /src/nss/lib/sqlite/sqlite3.c:23050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23051
      start: 23049
    functionDepth: 1
    functionLinenumber: 23049
    functionLinenumberEnd: 23051
    functionName: sqlite3MemRoundup
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ROUND8
    linkageType: ''
    returnType: int
    signature: int sqlite3MemRoundup(int n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sysctlbyname
      Src: /src/nss/lib/sqlite/sqlite3.c:23065,1
    - Dst: malloc_default_zone
      Src: /src/nss/lib/sqlite/sqlite3.c:23068,1
    - Dst: malloc_create_zone
      Src: /src/nss/lib/sqlite/sqlite3.c:23072,1
    - Dst: malloc_set_zone_name
      Src: /src/nss/lib/sqlite/sqlite3.c:23073,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:23076,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - NotUsed
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23078
      start: 23056
    functionDepth: 1
    functionLinenumber: 23056
    functionLinenumberEnd: 23078
    functionName: sqlite3MemInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - malloc_default_zone
    - malloc_create_zone
    - UNUSED_PARAMETER
    - sysctlbyname
    - malloc_set_zone_name
    linkageType: ''
    returnType: int
    signature: int sqlite3MemInit(void *NotUsed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:23084,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - NotUsed
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23086
      start: 23083
    functionDepth: 1
    functionLinenumber: 23083
    functionLinenumberEnd: 23086
    functionName: sqlite3MemShutdown
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: void
    signature: void sqlite3MemShutdown(void *NotUsed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_config
      Src: /src/nss/lib/sqlite/sqlite3.c:23105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23106
      start: 23094
    functionDepth: 1
    functionLinenumber: 23094
    functionLinenumberEnd: 23106
    functionName: sqlite3MemSetDefault
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_config
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3MemSetDefault(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - A
    - ','
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23149
      start: 23148
    functionDepth: 0
    functionLinenumber: 23148
    functionLinenumberEnd: 23149
    functionName: backtrace
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: backtrace(A,B)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ROUND8
      Src: /src/nss/lib/sqlite/sqlite3.c:23241,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:23253,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - iSize
    - increment
    argTypes:
    - int
    - int
    assertStmts:
    - condition: ( mem.nCurrent[i]>=0 )
      pos:
        line_end: 23252
        line_start: 23252
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 23255
      start: 23240
    functionDepth: 1
    functionLinenumber: 23240
    functionLinenumberEnd: 23255
    functionName: adjustStats
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - ROUND8
    linkageType: ''
    returnType: void
    signature: void adjustStats(int iSize, int increment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:23271,1
    - Dst: ROUND8
      Src: /src/nss/lib/sqlite/sqlite3.c:23272,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:23275,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:23280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - pAllocation
    argTypes:
    - void*
    assertStmts:
    - condition: ( p->iForeGuard==(int)FOREGUARD )
      pos:
        line_end: 23270
        line_start: 23270
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pInt[nReserve/sizeof(int)]==(int)REARGUARD )
      pos:
        line_end: 23274
        line_start: 23274
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pU8[nReserve]==0x65 )
      pos:
        line_end: 23279
        line_start: 23279
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 23282
      start: 23263
    functionDepth: 1
    functionLinenumber: 23263
    functionLinenumberEnd: 23282
    functionName: sqlite3MemsysGetHeader
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - ROUND8
    linkageType: ''
    returnType: struct MemBlockHdr
    signature: struct MemBlockHdr *sqlite3MemsysGetHeader(void *pAllocation)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3MemsysGetHeader
      Src: /src/nss/lib/sqlite/sqlite3.c:23292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23294
      start: 23287
    functionDepth: 2
    functionLinenumber: 23287
    functionLinenumberEnd: 23294
    functionName: sqlite3MemSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3MemsysGetHeader
    linkageType: ''
    returnType: int
    signature: int sqlite3MemSize(void *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:23300,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:23301,1
    - Dst: sqlite3MutexAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:23305,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - NotUsed
    argTypes:
    - void*
    assertStmts:
    - condition: ( (sizeof(struct MemBlockHdr)&7) == 0 )
      pos:
        line_end: 23300
        line_start: 23300
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 23308
      start: 23299
    functionDepth: 1
    functionLinenumber: 23299
    functionLinenumberEnd: 23308
    functionName: sqlite3MemInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3MutexAlloc
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: int
    signature: int sqlite3MemInit(void *NotUsed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:23314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - NotUsed
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23316
      start: 23313
    functionDepth: 1
    functionLinenumber: 23313
    functionLinenumberEnd: 23316
    functionName: sqlite3MemShutdown
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: void
    signature: void sqlite3MemShutdown(void *NotUsed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ROUND8
      Src: /src/nss/lib/sqlite/sqlite3.c:23322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23323
      start: 23321
    functionDepth: 1
    functionLinenumber: 23321
    functionLinenumberEnd: 23323
    functionName: sqlite3MemRoundup
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ROUND8
    linkageType: ''
    returnType: int
    signature: int sqlite3MemRoundup(int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SQLITE_PTR_TO_INT
      Src: /src/nss/lib/sqlite/sqlite3.c:23332,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - pBuf
    - nByte
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23348
      start: 23330
    functionDepth: 1
    functionLinenumber: 23330
    functionLinenumberEnd: 23348
    functionName: randomFill
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - SQLITE_PTR_TO_INT
    linkageType: ''
    returnType: void
    signature: void randomFill(char *pBuf, int nByte)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:23361,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:23362,1
    - Dst: ROUND8
      Src: /src/nss/lib/sqlite/sqlite3.c:23363,1
    - Dst: malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:23366,1
    - Dst: backtrace
      Src: /src/nss/lib/sqlite/sqlite3.c:23385,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:23386,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:23387,1
    - Dst: xBacktrace
      Src: /src/nss/lib/sqlite/sqlite3.c:23389,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:23395,1
    - Dst: adjustStats
      Src: /src/nss/lib/sqlite/sqlite3.c:23398,1
    - Dst: randomFill
      Src: /src/nss/lib/sqlite/sqlite3.c:23401,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:23402,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:23405,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 45
    argCount: 1
    argNames:
    - nByte
    argTypes:
    - int
    assertStmts:
    - condition: ( mem.disallow==0 )
      pos:
        line_end: 23361
        line_start: 23361
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (pBt[0])
      pos:
        line_end: 23386
        line_start: 23386
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 23407
      start: 23353
    functionDepth: 2
    functionLinenumber: 23353
    functionLinenumberEnd: 23407
    functionName: sqlite3MemMalloc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - malloc
    - memcpy
    - randomFill
    - ROUND8
    - xBacktrace
    - sqlite3_mutex_leave
    - assert
    - backtrace
    - memset
    - adjustStats
    linkageType: ''
    returnType: void
    signature: void *sqlite3MemMalloc(int nByte)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:23416,1
    - Dst: sqlite3MemsysGetHeader
      Src: /src/nss/lib/sqlite/sqlite3.c:23418,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:23421,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:23423,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:23426,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:23430,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:23433,1
    - Dst: adjustStats
      Src: /src/nss/lib/sqlite/sqlite3.c:23438,1
    - Dst: randomFill
      Src: /src/nss/lib/sqlite/sqlite3.c:23439,1
    - Dst: free
      Src: /src/nss/lib/sqlite/sqlite3.c:23441,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:23442,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 1
    argNames:
    - pPrior
    argTypes:
    - void*
    assertStmts:
    - condition: "( sqlite3GlobalConfig.bMemstat || sqlite3GlobalConfig.bCoreMutex==0
        \n       || mem.mutex!=0 )"
      pos:
        line_end: 23416
        line_start: 23415
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( mem.pFirst==pHdr )
      pos:
        line_end: 23425
        line_start: 23425
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pHdr->pPrev->pNext==pHdr )
      pos:
        line_end: 23422
        line_start: 23422
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pHdr->pNext->pPrev==pHdr )
      pos:
        line_end: 23429
        line_start: 23429
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( mem.pLast==pHdr )
      pos:
        line_end: 23432
        line_start: 23432
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 23443
      start: 23412
    functionDepth: 2
    functionLinenumber: 23412
    functionLinenumberEnd: 23443
    functionName: sqlite3MemFree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - free
    - randomFill
    - sqlite3_mutex_leave
    - assert
    - sqlite3MemsysGetHeader
    - adjustStats
    linkageType: ''
    returnType: void
    signature: void sqlite3MemFree(void *pPrior)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:23457,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:23458,1
    - Dst: sqlite3MemsysGetHeader
      Src: /src/nss/lib/sqlite/sqlite3.c:23459,1
    - Dst: sqlite3MemMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:23460,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:23462,1
    - Dst: randomFill
      Src: /src/nss/lib/sqlite/sqlite3.c:23464,1
    - Dst: sqlite3MemFree
      Src: /src/nss/lib/sqlite/sqlite3.c:23466,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - pPrior
    - nByte
    argTypes:
    - void*
    - int
    assertStmts:
    - condition: ( mem.disallow==0 )
      pos:
        line_end: 23456
        line_start: 23456
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (nByte & 7)==0 )
      pos:
        line_end: 23457
        line_start: 23457
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 23469
      start: 23454
    functionDepth: 2
    functionLinenumber: 23454
    functionLinenumberEnd: 23469
    functionName: sqlite3MemRealloc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - randomFill
    - sqlite3MemMalloc
    - assert
    - sqlite3MemsysGetHeader
    - sqlite3MemFree
    linkageType: ''
    returnType: void
    signature: void *sqlite3MemRealloc(void *pPrior, int nByte)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_config
      Src: /src/nss/lib/sqlite/sqlite3.c:23486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23487
      start: 23475
    functionDepth: 1
    functionLinenumber: 23475
    functionLinenumberEnd: 23487
    functionName: sqlite3MemSetDefault
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_config
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3MemSetDefault(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3MemsysGetHeader
      Src: /src/nss/lib/sqlite/sqlite3.c:23495,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:23496,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - p
    - eType
    argTypes:
    - void*
    - u8
    assertStmts:
    - condition: ( pHdr->iForeGuard==FOREGUARD )
      pos:
        line_end: 23495
        line_start: 23495
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 23499
      start: 23492
    functionDepth: 2
    functionLinenumber: 23492
    functionLinenumberEnd: 23499
    functionName: sqlite3MemdebugSetType
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3MemsysGetHeader
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3MemdebugSetType(void *p, u8 eType)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3MemsysGetHeader
      Src: /src/nss/lib/sqlite/sqlite3.c:23514,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:23515,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - p
    - eType
    argTypes:
    - void*
    - u8
    assertStmts:
    - condition: ( pHdr->iForeGuard==FOREGUARD )
      pos:
        line_end: 23514
        line_start: 23514
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 23521
      start: 23510
    functionDepth: 2
    functionLinenumber: 23510
    functionLinenumberEnd: 23521
    functionName: sqlite3MemdebugHasType
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3MemsysGetHeader
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3MemdebugHasType(void *p, u8 eType)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3MemsysGetHeader
      Src: /src/nss/lib/sqlite/sqlite3.c:23536,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:23537,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - p
    - eType
    argTypes:
    - void*
    - u8
    assertStmts:
    - condition: ( pHdr->iForeGuard==FOREGUARD )
      pos:
        line_end: 23536
        line_start: 23536
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 23543
      start: 23532
    functionDepth: 2
    functionLinenumber: 23532
    functionLinenumberEnd: 23543
    functionName: sqlite3MemdebugNoType
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3MemsysGetHeader
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3MemdebugNoType(void *p, u8 eType)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - depth
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23555
      start: 23550
    functionDepth: 0
    functionLinenumber: 23550
    functionLinenumberEnd: 23555
    functionName: sqlite3MemdebugBacktrace
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3MemdebugBacktrace(int depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23559
      start: 23557
    functionDepth: 0
    functionLinenumber: 23557
    functionLinenumberEnd: 23559
    functionName: sqlite3MemdebugBacktraceCallback
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3MemdebugBacktraceCallback(void (*xBacktrace)(int,
      int, void **))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:23565,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:23566,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:23568,1
    - Dst: ROUND8
      Src: /src/nss/lib/sqlite/sqlite3.c:23570,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:23571,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - zTitle
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23572
      start: 23564
    functionDepth: 1
    functionLinenumber: 23564
    functionLinenumberEnd: 23572
    functionName: sqlite3MemdebugSettitle
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - memcpy
    - ROUND8
    - sqlite3_mutex_leave
    - sqlite3Strlen30
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3MemdebugSettitle(const char *zTitle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xBacktrace
      Src: /src/nss/lib/sqlite/sqlite3.c:23579,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23581
      start: 23574
    functionDepth: 0
    functionLinenumber: 23574
    functionLinenumberEnd: 23581
    functionName: sqlite3MemdebugSync
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - xBacktrace
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3MemdebugSync()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/nss/lib/sqlite/sqlite3.c:23592,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:23594,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:23601,1
    - Dst: fflush
      Src: /src/nss/lib/sqlite/sqlite3.c:23604,1
    - Dst: backtrace_symbols_fd
      Src: /src/nss/lib/sqlite/sqlite3.c:23607,1
    - Dst: fileno
      Src: /src/nss/lib/sqlite/sqlite3.c:23607,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:23608,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:23611,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:23614,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:23619,1
    - Dst: fclose
      Src: /src/nss/lib/sqlite/sqlite3.c:23623,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - zFilename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23624
      start: 23587
    functionDepth: 0
    functionLinenumber: 23587
    functionLinenumberEnd: 23624
    functionName: sqlite3MemdebugDump
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fileno
    - fclose
    - fprintf
    - fopen
    - backtrace_symbols_fd
    - fflush
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3MemdebugDump(const char *zFilename)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23636
      start: 23629
    functionDepth: 0
    functionLinenumber: 23629
    functionLinenumberEnd: 23636
    functionName: sqlite3MemdebugMallocCount
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3MemdebugMallocCount()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23781
      start: 23742
    functionDepth: 0
    functionLinenumber: 23742
    functionLinenumberEnd: 23781
    functionName: Mem3Global
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_WSD
    signature: SQLITE_WSD Mem3Global
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:23792,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:23792,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - i
    - pRoot
    argTypes:
    - u32
    - u32*
    assertStmts:
    - condition: ( sqlite3_mutex_held(mem3.mutex) )
      pos:
        line_end: 23791
        line_start: 23791
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 23803
      start: 23789
    functionDepth: 1
    functionLinenumber: 23789
    functionLinenumberEnd: 23803
    functionName: memsys3UnlinkFromList
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_mutex_held
    linkageType: ''
    returnType: void
    signature: void memsys3UnlinkFromList(u32 i, u32 *pRoot)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:23811,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:23811,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:23812,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:23813,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:23815,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:23816,1
    - Dst: memsys3UnlinkFromList
      Src: /src/nss/lib/sqlite/sqlite3.c:23818,1
    - Dst: memsys3UnlinkFromList
      Src: /src/nss/lib/sqlite/sqlite3.c:23821,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - i
    argTypes:
    - u32
    assertStmts:
    - condition: ( sqlite3_mutex_held(mem3.mutex) )
      pos:
        line_end: 23810
        line_start: 23810
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( i>=1 )
      pos:
        line_end: 23812
        line_start: 23812
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (mem3.aPool[i-1].u.hdr.size4x & 1)==0 )
      pos:
        line_end: 23811
        line_start: 23811
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( size==mem3.aPool[i+size-1].u.hdr.prevSize )
      pos:
        line_end: 23814
        line_start: 23814
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( size>=2 )
      pos:
        line_end: 23815
        line_start: 23815
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 23823
      start: 23809
    functionDepth: 2
    functionLinenumber: 23809
    functionLinenumberEnd: 23823
    functionName: memsys3Unlink
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_mutex_held
    - memsys3UnlinkFromList
    linkageType: ''
    returnType: void
    signature: void memsys3Unlink(u32 i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:23830,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:23830,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - i
    - pRoot
    argTypes:
    - u32
    - u32*
    assertStmts:
    - condition: ( sqlite3_mutex_held(mem3.mutex) )
      pos:
        line_end: 23829
        line_start: 23829
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 23837
      start: 23829
    functionDepth: 1
    functionLinenumber: 23829
    functionLinenumberEnd: 23837
    functionName: memsys3LinkIntoList
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_mutex_held
    linkageType: ''
    returnType: void
    signature: void memsys3LinkIntoList(u32 i, u32 *pRoot)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:23845,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:23845,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:23846,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:23847,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:23849,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:23850,1
    - Dst: memsys3LinkIntoList
      Src: /src/nss/lib/sqlite/sqlite3.c:23852,1
    - Dst: memsys3LinkIntoList
      Src: /src/nss/lib/sqlite/sqlite3.c:23855,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - i
    argTypes:
    - u32
    assertStmts:
    - condition: ( sqlite3_mutex_held(mem3.mutex) )
      pos:
        line_end: 23844
        line_start: 23844
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (mem3.aPool[i-1].u.hdr.size4x & 1)==0 )
      pos:
        line_end: 23846
        line_start: 23846
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( i>=1 )
      pos:
        line_end: 23845
        line_start: 23845
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( size==mem3.aPool[i+size-1].u.hdr.prevSize )
      pos:
        line_end: 23848
        line_start: 23848
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( size>=2 )
      pos:
        line_end: 23849
        line_start: 23849
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 23857
      start: 23843
    functionDepth: 2
    functionLinenumber: 23843
    functionLinenumberEnd: 23857
    functionName: memsys3Link
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_mutex_held
    - memsys3LinkIntoList
    linkageType: ''
    returnType: void
    signature: void memsys3Link(u32 i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3MutexAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:23866,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:23868,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23869
      start: 23864
    functionDepth: 1
    functionLinenumber: 23864
    functionLinenumberEnd: 23869
    functionName: memsys3Enter
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3MutexAlloc
    linkageType: ''
    returnType: void
    signature: void memsys3Enter(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:23871,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23872
      start: 23870
    functionDepth: 1
    functionLinenumber: 23870
    functionLinenumberEnd: 23872
    functionName: memsys3Leave
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_leave
    linkageType: ''
    returnType: void
    signature: void memsys3Leave(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:23880,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:23880,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:23881,1
    - Dst: sqlite3_release_memory
      Src: /src/nss/lib/sqlite/sqlite3.c:23882,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:23883,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - nByte
    argTypes:
    - int
    assertStmts:
    - condition: ( sqlite3_mutex_held(mem3.mutex) )
      pos:
        line_end: 23879
        line_start: 23879
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 23886
      start: 23877
    functionDepth: 1
    functionLinenumber: 23877
    functionLinenumberEnd: 23886
    functionName: memsys3OutOfMemory
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3_mutex_leave
    - assert
    - sqlite3_mutex_held
    - sqlite3_release_memory
    linkageType: ''
    returnType: void
    signature: void memsys3OutOfMemory(int nByte)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:23896,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:23896,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:23897,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:23898,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:23899,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - i
    - nBlock
    argTypes:
    - u32
    - u32
    assertStmts:
    - condition: ( sqlite3_mutex_held(mem3.mutex) )
      pos:
        line_end: 23895
        line_start: 23895
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( i>=1 )
      pos:
        line_end: 23896
        line_start: 23896
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( mem3.aPool[i+nBlock-1].u.hdr.prevSize==nBlock )
      pos:
        line_end: 23898
        line_start: 23898
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( mem3.aPool[i-1].u.hdr.size4x/4==nBlock )
      pos:
        line_end: 23897
        line_start: 23897
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 23905
      start: 23894
    functionDepth: 1
    functionLinenumber: 23894
    functionLinenumberEnd: 23905
    functionName: memsys3Checkout
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_mutex_held
    linkageType: ''
    returnType: void
    signature: void *memsys3Checkout(u32 i, u32 nBlock)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:23913,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:23913,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:23914,1
    - Dst: memsys3Checkout
      Src: /src/nss/lib/sqlite/sqlite3.c:23917,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:23926,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 1
    argNames:
    - nBlock
    argTypes:
    - u32
    assertStmts:
    - condition: ( sqlite3_mutex_held(mem3.mutex) )
      pos:
        line_end: 23912
        line_start: 23912
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( mem3.szMaster>=nBlock )
      pos:
        line_end: 23913
        line_start: 23913
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( newi > mem3.iMaster+1 )
      pos:
        line_end: 23925
        line_start: 23925
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 23939
      start: 23912
    functionDepth: 2
    functionLinenumber: 23912
    functionLinenumberEnd: 23939
    functionName: memsys3FromMaster
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_mutex_held
    - memsys3Checkout
    linkageType: ''
    returnType: void
    signature: void *memsys3FromMaster(u32 nBlock)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:23960,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:23960,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:23964,1
    - Dst: memsys3UnlinkFromList
      Src: /src/nss/lib/sqlite/sqlite3.c:23966,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:23967,1
    - Dst: memsys3Unlink
      Src: /src/nss/lib/sqlite/sqlite3.c:23972,1
    - Dst: memsys3Link
      Src: /src/nss/lib/sqlite/sqlite3.c:23977,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 1
    argNames:
    - pRoot
    argTypes:
    - u32*
    assertStmts:
    - condition: ( sqlite3_mutex_held(mem3.mutex) )
      pos:
        line_end: 23959
        line_start: 23959
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (size&1)==0 )
      pos:
        line_end: 23963
        line_start: 23963
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( i > mem3.aPool[i-1].u.hdr.prevSize )
      pos:
        line_end: 23966
        line_start: 23966
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 23987
      start: 23957
    functionDepth: 3
    functionLinenumber: 23957
    functionLinenumberEnd: 23987
    functionName: memsys3Merge
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memsys3Unlink
    - memsys3Link
    - assert
    - sqlite3_mutex_held
    - memsys3UnlinkFromList
    linkageType: ''
    returnType: void
    signature: void memsys3Merge(u32 *pRoot)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:24001,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:24001,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:24002,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:24008,1
    - Dst: memsys3UnlinkFromList
      Src: /src/nss/lib/sqlite/sqlite3.c:24018,1
    - Dst: memsys3Checkout
      Src: /src/nss/lib/sqlite/sqlite3.c:24019,1
    - Dst: memsys3UnlinkFromList
      Src: /src/nss/lib/sqlite/sqlite3.c:24025,1
    - Dst: memsys3Checkout
      Src: /src/nss/lib/sqlite/sqlite3.c:24026,1
    - Dst: memsys3FromMaster
      Src: /src/nss/lib/sqlite/sqlite3.c:24036,1
    - Dst: memsys3OutOfMemory
      Src: /src/nss/lib/sqlite/sqlite3.c:24048,1
    - Dst: memsys3Link
      Src: /src/nss/lib/sqlite/sqlite3.c:24050,1
    - Dst: memsys3Merge
      Src: /src/nss/lib/sqlite/sqlite3.c:24055,1
    - Dst: memsys3Merge
      Src: /src/nss/lib/sqlite/sqlite3.c:24058,1
    - Dst: memsys3Unlink
      Src: /src/nss/lib/sqlite/sqlite3.c:24061,1
    - Dst: memsys3FromMaster
      Src: /src/nss/lib/sqlite/sqlite3.c:24063,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 47
    argCount: 1
    argNames:
    - nByte
    argTypes:
    - int
    assertStmts:
    - condition: ( sqlite3_mutex_held(mem3.mutex) )
      pos:
        line_end: 24000
        line_start: 24000
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sizeof(Mem3Block)==8 )
      pos:
        line_end: 24001
        line_start: 24001
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nBlock>=2 )
      pos:
        line_end: 24007
        line_start: 24007
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 24070
      start: 23996
    functionDepth: 4
    functionLinenumber: 23996
    functionLinenumberEnd: 24070
    functionName: memsys3MallocUnsafe
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memsys3Unlink
    - memsys3Checkout
    - memsys3Merge
    - memsys3Link
    - assert
    - sqlite3_mutex_held
    - memsys3OutOfMemory
    - memsys3FromMaster
    - memsys3UnlinkFromList
    linkageType: ''
    returnType: void
    signature: void *memsys3MallocUnsafe(int nByte)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:24082,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:24082,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:24083,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:24085,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:24087,1
    - Dst: memsys3Link
      Src: /src/nss/lib/sqlite/sqlite3.c:24091,1
    - Dst: memsys3Unlink
      Src: /src/nss/lib/sqlite/sqlite3.c:24099,1
    - Dst: memsys3Unlink
      Src: /src/nss/lib/sqlite/sqlite3.c:24106,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 1
    argNames:
    - pOld
    argTypes:
    - void*
    assertStmts:
    - condition: ( sqlite3_mutex_held(mem3.mutex) )
      pos:
        line_end: 24081
        line_start: 24081
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( i+size<=mem3.nPool+1 )
      pos:
        line_end: 24086
        line_start: 24086
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p>mem3.aPool && p<&mem3.aPool[mem3.nPool] )
      pos:
        line_end: 24082
        line_start: 24082
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (mem3.aPool[i-1].u.hdr.size4x&1)==1 )
      pos:
        line_end: 24084
        line_start: 24084
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 24112
      start: 24078
    functionDepth: 3
    functionLinenumber: 24078
    functionLinenumberEnd: 24112
    functionName: memsys3FreeUnsafe
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_mutex_held
    - memsys3Link
    - memsys3Unlink
    linkageType: ''
    returnType: void
    signature: void memsys3FreeUnsafe(void *pOld)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:24121,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:24123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts:
    - condition: ( p!=0 )
      pos:
        line_end: 24120
        line_start: 24120
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pBlock[-1].u.hdr.size4x&1)!=0 )
      pos:
        line_end: 24122
        line_start: 24122
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 24125
      start: 24119
    functionDepth: 0
    functionLinenumber: 24119
    functionLinenumberEnd: 24125
    functionName: memsys3Size
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int memsys3Size(void *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24136
      start: 24130
    functionDepth: 0
    functionLinenumber: 24130
    functionLinenumberEnd: 24136
    functionName: memsys3Roundup
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int memsys3Roundup(int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:24143,1
    - Dst: memsys3Enter
      Src: /src/nss/lib/sqlite/sqlite3.c:24144,1
    - Dst: memsys3MallocUnsafe
      Src: /src/nss/lib/sqlite/sqlite3.c:24145,1
    - Dst: memsys3Leave
      Src: /src/nss/lib/sqlite/sqlite3.c:24146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - nBytes
    argTypes:
    - int
    assertStmts:
    - condition: ( nBytes>0 )
      pos:
        line_end: 24142
        line_start: 24142
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 24148
      start: 24141
    functionDepth: 5
    functionLinenumber: 24141
    functionLinenumberEnd: 24148
    functionName: memsys3Malloc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - memsys3MallocUnsafe
    - memsys3Leave
    - memsys3Enter
    linkageType: ''
    returnType: void
    signature: void *memsys3Malloc(int nBytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:24154,1
    - Dst: memsys3Enter
      Src: /src/nss/lib/sqlite/sqlite3.c:24155,1
    - Dst: memsys3FreeUnsafe
      Src: /src/nss/lib/sqlite/sqlite3.c:24156,1
    - Dst: memsys3Leave
      Src: /src/nss/lib/sqlite/sqlite3.c:24157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pPrior
    argTypes:
    - void*
    assertStmts:
    - condition: ( pPrior )
      pos:
        line_end: 24153
        line_start: 24153
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 24158
      start: 24153
    functionDepth: 4
    functionLinenumber: 24153
    functionLinenumberEnd: 24158
    functionName: memsys3Free
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - memsys3FreeUnsafe
    - memsys3Leave
    - memsys3Enter
    linkageType: ''
    returnType: void
    signature: void memsys3Free(void *pPrior)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:24167,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:24170,1
    - Dst: memsys3Size
      Src: /src/nss/lib/sqlite/sqlite3.c:24173,1
    - Dst: memsys3Enter
      Src: /src/nss/lib/sqlite/sqlite3.c:24177,1
    - Dst: memsys3MallocUnsafe
      Src: /src/nss/lib/sqlite/sqlite3.c:24178,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:24181,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:24183,1
    - Dst: memsys3FreeUnsafe
      Src: /src/nss/lib/sqlite/sqlite3.c:24185,1
    - Dst: memsys3Leave
      Src: /src/nss/lib/sqlite/sqlite3.c:24187,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - pPrior
    - nBytes
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24189
      start: 24163
    functionDepth: 5
    functionLinenumber: 24163
    functionLinenumberEnd: 24189
    functionName: memsys3Realloc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memsys3MallocUnsafe
    - memsys3FreeUnsafe
    - sqlite3_malloc
    - memcpy
    - memsys3Leave
    - memsys3Enter
    - memsys3Size
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void *memsys3Realloc(void *pPrior, int nBytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:24195,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:24201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - NotUsed
    argTypes:
    - void*
    assertStmts:
    - condition: ( sizeof(Mem3Block)==8 )
      pos:
        line_end: 24200
        line_start: 24200
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 24214
      start: 24194
    functionDepth: 1
    functionLinenumber: 24194
    functionLinenumberEnd: 24214
    functionName: memsys3Init
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: int
    signature: int memsys3Init(void *NotUsed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:24220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - NotUsed
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24223
      start: 24219
    functionDepth: 1
    functionLinenumber: 24219
    functionLinenumberEnd: 24223
    functionName: memsys3Shutdown
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: void
    signature: void memsys3Shutdown(void *NotUsed)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/nss/lib/sqlite/sqlite3.c:24239,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:24241,1
    - Dst: memsys3Enter
      Src: /src/nss/lib/sqlite/sqlite3.c:24246,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:24247,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:24251,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:24252,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:24256,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:24257,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:24261,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:24262,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:24266,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:24268,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:24274,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:24276,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:24279,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:24283,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:24285,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:24288,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:24290,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:24291,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:24292,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:24293,1
    - Dst: fflush
      Src: /src/nss/lib/sqlite/sqlite3.c:24295,1
    - Dst: fclose
      Src: /src/nss/lib/sqlite/sqlite3.c:24297,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:24300,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 63
    argCount: 1
    argNames:
    - zFilename
    argTypes:
    - char*
    assertStmts:
    - condition: ( 0 )
      pos:
        line_end: 24251
        line_start: 24251
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( 0 )
      pos:
        line_end: 24256
        line_start: 24256
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( 0 )
      pos:
        line_end: 24261
        line_start: 24261
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 24302
      start: 24231
    functionDepth: 2
    functionLinenumber: 24231
    functionLinenumberEnd: 24302
    functionName: sqlite3Memsys3Dump
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fclose
    - sqlite3_mutex_leave
    - UNUSED_PARAMETER
    - fprintf
    - assert
    - fopen
    - memsys3Enter
    - fflush
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Memsys3Dump(const char *zFilename)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24327
      start: 24315
    functionDepth: 0
    functionLinenumber: 24315
    functionLinenumberEnd: 24327
    functionName: sqlite3_mem_methods *sqlite3MemGetMemsys3(void)
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3_mem_methods *sqlite3MemGetMemsys3(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24464
      start: 24424
    functionDepth: 0
    functionLinenumber: 24424
    functionLinenumberEnd: 24464
    functionName: Mem5Global
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_WSD
    signature: SQLITE_WSD Mem5Global
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24476
      start: 24475
    functionDepth: 0
    functionLinenumber: 24475
    functionLinenumberEnd: 24476
    functionName: MEM5LINK
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MEM5LINK(idx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:24483,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:24484,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:24485,1
    - Dst: MEM5LINK
      Src: /src/nss/lib/sqlite/sqlite3.c:24487,1
    - Dst: MEM5LINK
      Src: /src/nss/lib/sqlite/sqlite3.c:24488,1
    - Dst: MEM5LINK
      Src: /src/nss/lib/sqlite/sqlite3.c:24492,1
    - Dst: MEM5LINK
      Src: /src/nss/lib/sqlite/sqlite3.c:24495,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - i
    - iLogsize
    argTypes:
    - int
    - int
    assertStmts:
    - condition: ( i>=0 && i<mem5.nBlock )
      pos:
        line_end: 24482
        line_start: 24482
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iLogsize>=0 && iLogsize<=LOGMAX )
      pos:
        line_end: 24483
        line_start: 24483
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (mem5.aCtrl[i] & CTRL_LOGSIZE)==iLogsize )
      pos:
        line_end: 24484
        line_start: 24484
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 24497
      start: 24481
    functionDepth: 1
    functionLinenumber: 24481
    functionLinenumberEnd: 24497
    functionName: memsys5Unlink
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - MEM5LINK
    linkageType: ''
    returnType: void
    signature: void memsys5Unlink(int i, int iLogsize)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:24505,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:24505,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:24506,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:24507,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:24508,1
    - Dst: MEM5LINK
      Src: /src/nss/lib/sqlite/sqlite3.c:24510,1
    - Dst: MEM5LINK
      Src: /src/nss/lib/sqlite/sqlite3.c:24511,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:24513,1
    - Dst: MEM5LINK
      Src: /src/nss/lib/sqlite/sqlite3.c:24514,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - i
    - iLogsize
    argTypes:
    - int
    - int
    assertStmts:
    - condition: ( sqlite3_mutex_held(mem5.mutex) )
      pos:
        line_end: 24504
        line_start: 24504
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( i>=0 && i<mem5.nBlock )
      pos:
        line_end: 24505
        line_start: 24505
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iLogsize>=0 && iLogsize<=LOGMAX )
      pos:
        line_end: 24506
        line_start: 24506
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (mem5.aCtrl[i] & CTRL_LOGSIZE)==iLogsize )
      pos:
        line_end: 24507
        line_start: 24507
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( x<mem5.nBlock )
      pos:
        line_end: 24512
        line_start: 24512
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 24517
      start: 24503
    functionDepth: 1
    functionLinenumber: 24503
    functionLinenumberEnd: 24517
    functionName: memsys5Link
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - MEM5LINK
    - sqlite3_mutex_held
    linkageType: ''
    returnType: void
    signature: void memsys5Link(int i, int iLogsize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:24523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24524
      start: 24522
    functionDepth: 1
    functionLinenumber: 24522
    functionLinenumberEnd: 24524
    functionName: memsys5Enter
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    linkageType: ''
    returnType: void
    signature: void memsys5Enter(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:24526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24527
      start: 24525
    functionDepth: 1
    functionLinenumber: 24525
    functionLinenumberEnd: 24527
    functionName: memsys5Leave
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_leave
    linkageType: ''
    returnType: void
    signature: void memsys5Leave(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:24535,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:24537,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts:
    - condition: ( p!=0 )
      pos:
        line_end: 24534
        line_start: 24534
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( i>=0 && i<mem5.nBlock )
      pos:
        line_end: 24536
        line_start: 24536
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 24540
      start: 24533
    functionDepth: 0
    functionLinenumber: 24533
    functionLinenumberEnd: 24540
    functionName: memsys5Size
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int memsys5Size(void *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:24559,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:24582,1
    - Dst: sqlite3_log
      Src: /src/nss/lib/sqlite/sqlite3.c:24583,1
    - Dst: memsys5Unlink
      Src: /src/nss/lib/sqlite/sqlite3.c:24587,1
    - Dst: memsys5Link
      Src: /src/nss/lib/sqlite/sqlite3.c:24594,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:24612,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 1
    argNames:
    - nByte
    argTypes:
    - int
    assertStmts:
    - condition: ( nByte>0 )
      pos:
        line_end: 24558
        line_start: 24558
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 24617
      start: 24552
    functionDepth: 2
    functionLinenumber: 24552
    functionLinenumberEnd: 24617
    functionName: memsys5MallocUnsafe
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_log
    - assert
    - memset
    - memsys5Unlink
    - memsys5Link
    - testcase
    linkageType: ''
    returnType: void
    signature: void *memsys5MallocUnsafe(int nByte)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:24632,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:24633,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:24634,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:24638,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:24644,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:24645,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:24648,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:24649,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:24653,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:24657,1
    - Dst: memsys5Unlink
      Src: /src/nss/lib/sqlite/sqlite3.c:24663,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:24679,1
    - Dst: memsys5Link
      Src: /src/nss/lib/sqlite/sqlite3.c:24682,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 1
    argNames:
    - pOld
    argTypes:
    - void*
    assertStmts:
    - condition: ( iBlock>=0 && iBlock<mem5.nBlock )
      pos:
        line_end: 24631
        line_start: 24631
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( ((u8 *)pOld-mem5.zPool)%mem5.szAtom==0 )
      pos:
        line_end: 24632
        line_start: 24632
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iBlock+size-1<(u32)mem5.nBlock )
      pos:
        line_end: 24637
        line_start: 24637
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( mem5.currentCount>0 )
      pos:
        line_end: 24643
        line_start: 24643
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (mem5.aCtrl[iBlock] & CTRL_FREE)==0 )
      pos:
        line_end: 24633
        line_start: 24633
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( mem5.currentOut>=(size*mem5.szAtom) )
      pos:
        line_end: 24644
        line_start: 24644
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( mem5.currentOut>0 || mem5.currentCount==0 )
      pos:
        line_end: 24647
        line_start: 24647
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( mem5.currentCount>0 || mem5.currentOut==0 )
      pos:
        line_end: 24648
        line_start: 24648
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iBuddy>=0 )
      pos:
        line_end: 24656
        line_start: 24656
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 24683
      start: 24622
    functionDepth: 2
    functionLinenumber: 24622
    functionLinenumberEnd: 24683
    functionName: memsys5FreeUnsafe
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ALWAYS
    - assert
    - memset
    - memsys5Unlink
    - memsys5Link
    linkageType: ''
    returnType: void
    signature: void memsys5FreeUnsafe(void *pOld)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memsys5Enter
      Src: /src/nss/lib/sqlite/sqlite3.c:24691,1
    - Dst: memsys5MallocUnsafe
      Src: /src/nss/lib/sqlite/sqlite3.c:24692,1
    - Dst: memsys5Leave
      Src: /src/nss/lib/sqlite/sqlite3.c:24693,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - nBytes
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24696
      start: 24688
    functionDepth: 3
    functionLinenumber: 24688
    functionLinenumberEnd: 24696
    functionName: memsys5Malloc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memsys5Leave
    - memsys5Enter
    - memsys5MallocUnsafe
    linkageType: ''
    returnType: void
    signature: void *memsys5Malloc(int nBytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:24705,1
    - Dst: memsys5Enter
      Src: /src/nss/lib/sqlite/sqlite3.c:24706,1
    - Dst: memsys5FreeUnsafe
      Src: /src/nss/lib/sqlite/sqlite3.c:24707,1
    - Dst: memsys5Leave
      Src: /src/nss/lib/sqlite/sqlite3.c:24708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pPrior
    argTypes:
    - void*
    assertStmts:
    - condition: ( pPrior!=0 )
      pos:
        line_end: 24704
        line_start: 24704
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 24709
      start: 24704
    functionDepth: 3
    functionLinenumber: 24704
    functionLinenumberEnd: 24709
    functionName: memsys5Free
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - memsys5Leave
    - memsys5Enter
    - memsys5FreeUnsafe
    linkageType: ''
    returnType: void
    signature: void memsys5Free(void *pPrior)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:24726,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:24727,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:24728,1
    - Dst: memsys5Size
      Src: /src/nss/lib/sqlite/sqlite3.c:24732,1
    - Dst: memsys5Malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:24736,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:24738,1
    - Dst: memsys5Free
      Src: /src/nss/lib/sqlite/sqlite3.c:24739,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - pPrior
    - nBytes
    argTypes:
    - void*
    - int
    assertStmts:
    - condition: ( pPrior!=0 )
      pos:
        line_end: 24725
        line_start: 24725
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (nBytes&(nBytes-1))==0 )
      pos:
        line_end: 24726
        line_start: 24726
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nBytes>=0 )
      pos:
        line_end: 24727
        line_start: 24727
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 24742
      start: 24723
    functionDepth: 4
    functionLinenumber: 24723
    functionLinenumberEnd: 24742
    functionName: memsys5Realloc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memsys5Free
    - memcpy
    - assert
    - memsys5Malloc
    - memsys5Size
    linkageType: ''
    returnType: void
    signature: void *memsys5Realloc(void *pPrior, int nBytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24758
      start: 24753
    functionDepth: 0
    functionLinenumber: 24753
    functionLinenumberEnd: 24758
    functionName: memsys5Roundup
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int memsys5Roundup(int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - iValue
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24774
      start: 24770
    functionDepth: 0
    functionLinenumber: 24770
    functionLinenumberEnd: 24774
    functionName: memsys5Log
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int memsys5Log(int iValue)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:24789,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:24797,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:24801,1
    - Dst: memsys5Log
      Src: /src/nss/lib/sqlite/sqlite3.c:24804,1
    - Dst: memsys5Link
      Src: /src/nss/lib/sqlite/sqlite3.c:24823,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:24826,1
    - Dst: sqlite3MutexAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:24831,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 1
    argNames:
    - NotUsed
    argTypes:
    - void*
    assertStmts:
    - condition: ( zByte!=0 )
      pos:
        line_end: 24800
        line_start: 24800
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (sizeof(Mem5Link)&(sizeof(Mem5Link)-1))==0 )
      pos:
        line_end: 24796
        line_start: 24796
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ((iOffset+nAlloc)>mem5.nBlock)
      pos:
        line_end: 24825
        line_start: 24825
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 24835
      start: 24782
    functionDepth: 2
    functionLinenumber: 24782
    functionLinenumberEnd: 24835
    functionName: memsys5Init
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    - assert
    - memsys5Log
    - sqlite3MutexAlloc
    - memsys5Link
    linkageType: ''
    returnType: int
    signature: int memsys5Init(void *NotUsed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:24841,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - NotUsed
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24844
      start: 24840
    functionDepth: 1
    functionLinenumber: 24840
    functionLinenumberEnd: 24844
    functionName: memsys5Shutdown
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: void
    signature: void memsys5Shutdown(void *NotUsed)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/nss/lib/sqlite/sqlite3.c:24859,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:24861,1
    - Dst: memsys5Enter
      Src: /src/nss/lib/sqlite/sqlite3.c:24866,1
    - Dst: memsys5Log
      Src: /src/nss/lib/sqlite/sqlite3.c:24867,1
    - Dst: MEM5LINK
      Src: /src/nss/lib/sqlite/sqlite3.c:24869,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:24870,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:24872,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:24873,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:24874,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:24875,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:24876,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:24877,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:24878,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:24879,1
    - Dst: memsys5Leave
      Src: /src/nss/lib/sqlite/sqlite3.c:24880,1
    - Dst: fflush
      Src: /src/nss/lib/sqlite/sqlite3.c:24882,1
    - Dst: fclose
      Src: /src/nss/lib/sqlite/sqlite3.c:24884,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 1
    argNames:
    - zFilename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24886
      start: 24851
    functionDepth: 2
    functionLinenumber: 24851
    functionLinenumberEnd: 24886
    functionName: sqlite3Memsys5Dump
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fclose
    - fprintf
    - MEM5LINK
    - fopen
    - memsys5Log
    - memsys5Leave
    - memsys5Enter
    - fflush
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Memsys5Dump(const char *zFilename)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24906
      start: 24894
    functionDepth: 0
    functionLinenumber: 24894
    functionLinenumberEnd: 24906
    functionName: sqlite3_mem_methods *sqlite3MemGetMemsys5(void)
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3_mem_methods *sqlite3MemGetMemsys5(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xMutexHeld
      Src: /src/nss/lib/sqlite/sqlite3.c:24981,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_mutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24982
      start: 24980
    functionDepth: 0
    functionLinenumber: 24980
    functionLinenumberEnd: 24982
    functionName: checkMutexHeld
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - xMutexHeld
    linkageType: ''
    returnType: int
    signature: int checkMutexHeld(sqlite3_mutex *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xMutexNotheld
      Src: /src/nss/lib/sqlite/sqlite3.c:24984,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_mutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24985
      start: 24983
    functionDepth: 0
    functionLinenumber: 24983
    functionLinenumberEnd: 24985
    functionName: checkMutexNotheld
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - xMutexNotheld
    linkageType: ''
    returnType: int
    signature: int checkMutexNotheld(sqlite3_mutex *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DefaultMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:24992,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24994
      start: 24991
    functionDepth: 1
    functionLinenumber: 24991
    functionLinenumberEnd: 24994
    functionName: checkMutexInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DefaultMutex
    linkageType: ''
    returnType: int
    signature: int checkMutexInit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24998
      start: 24995
    functionDepth: 0
    functionLinenumber: 24995
    functionLinenumberEnd: 24998
    functionName: checkMutexEnd
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int checkMutexEnd(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:25011,1
    - Dst: sqlite3MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:25013,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:25018,1
    - Dst: xMutexAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:25027,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:25030,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - iType
    argTypes:
    - int
    assertStmts:
    - condition: ( SQLITE_MUTEX_RECURSIVE==1 && SQLITE_MUTEX_FAST==0 )
      pos:
        line_end: 25010
        line_start: 25010
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 25037
      start: 25003
    functionDepth: 1
    functionLinenumber: 25003
    functionLinenumberEnd: 25037
    functionName: checkMutexAlloc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ArraySize
    - assert
    - xMutexAlloc
    - sqlite3MallocZero
    - sqlite3_free
    linkageType: ''
    returnType: sqlite3_mutex
    signature: sqlite3_mutex *checkMutexAlloc(int iType)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xMutexTry
      Src: /src/nss/lib/sqlite/sqlite3.c:25068,1
    - Dst: sqlite3_log
      Src: /src/nss/lib/sqlite/sqlite3.c:25071,1
    - Dst: xMutexEnter
      Src: /src/nss/lib/sqlite/sqlite3.c:25075,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_mutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25076
      start: 25065
    functionDepth: 1
    functionLinenumber: 25065
    functionLinenumberEnd: 25076
    functionName: checkMutexEnter
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - xMutexEnter
    - sqlite3_log
    - xMutexTry
    linkageType: ''
    returnType: void
    signature: void checkMutexEnter(sqlite3_mutex *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xMutexTry
      Src: /src/nss/lib/sqlite/sqlite3.c:25083,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_mutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25084
      start: 25081
    functionDepth: 0
    functionLinenumber: 25081
    functionLinenumberEnd: 25084
    functionName: checkMutexTry
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - xMutexTry
    linkageType: ''
    returnType: int
    signature: int checkMutexTry(sqlite3_mutex *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xMutexLeave
      Src: /src/nss/lib/sqlite/sqlite3.c:25091,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_mutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25092
      start: 25089
    functionDepth: 0
    functionLinenumber: 25089
    functionLinenumberEnd: 25092
    functionName: checkMutexLeave
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - xMutexLeave
    linkageType: ''
    returnType: void
    signature: void checkMutexLeave(sqlite3_mutex *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25112
      start: 25094
    functionDepth: 0
    functionLinenumber: 25094
    functionLinenumberEnd: 25112
    functionName: multiThreadedCheckMutex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sqlite3_mutex_methods
    signature: sqlite3_mutex_methods *multiThreadedCheckMutex(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:25121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_mutex*
    assertStmts:
    - condition: ( pCheck->iType==SQLITE_MUTEX_RECURSIVE )
      pos:
        line_end: 25120
        line_start: 25120
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 25124
      start: 25118
    functionDepth: 0
    functionLinenumber: 25118
    functionLinenumberEnd: 25124
    functionName: sqlite3MutexWarnOnContention
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3MutexWarnOnContention(sqlite3_mutex *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: multiThreadedCheckMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:25143,1
    - Dst: sqlite3DefaultMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:25145,1
    - Dst: sqlite3NoopMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:25148,1
    - Dst: sqlite3MemoryBarrier
      Src: /src/nss/lib/sqlite/sqlite3.c:25158,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:25161,1
    - Dst: mutex::xMutexInit
      Src: /src/nss/lib/sqlite/sqlite3.c:25162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( sqlite3GlobalConfig.mutex.xMutexInit )
      pos:
        line_end: 25160
        line_start: 25160
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 25169
      start: 25130
    functionDepth: 1
    functionLinenumber: 25130
    functionLinenumberEnd: 25169
    functionName: sqlite3MutexInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3NoopMutex
    - sqlite3DefaultMutex
    - mutex::xMutexInit
    - multiThreadedCheckMutex
    - assert
    - sqlite3MemoryBarrier
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3MutexInit(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mutex::xMutexEnd
      Src: /src/nss/lib/sqlite/sqlite3.c:25178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25186
      start: 25175
    functionDepth: 0
    functionLinenumber: 25175
    functionLinenumberEnd: 25186
    functionName: sqlite3MutexEnd
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - mutex::xMutexEnd
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3MutexEnd(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25182
      start: 25182
    functionDepth: 0
    functionLinenumber: 25182
    functionLinenumberEnd: 25182
    functionName: GLOBAL
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GLOBAL(int, mutexIsInit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_initialize
      Src: /src/nss/lib/sqlite/sqlite3.c:25193,1
    - Dst: sqlite3MutexInit
      Src: /src/nss/lib/sqlite/sqlite3.c:25194,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:25196,1
    - Dst: mutex::xMutexAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:25197,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( sqlite3GlobalConfig.mutex.xMutexAlloc )
      pos:
        line_end: 25195
        line_start: 25195
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 25198
      start: 25191
    functionDepth: 1
    functionLinenumber: 25191
    functionLinenumberEnd: 25198
    functionName: sqlite3_mutex *sqlite3_mutex_alloc(int id)
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - mutex::xMutexAlloc
    - sqlite3MutexInit
    - sqlite3_initialize
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_mutex *sqlite3_mutex_alloc(int id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:25205,1
    - Dst: mutex::xMutexAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:25206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( sqlite3GlobalConfig.mutex.xMutexAlloc )
      pos:
        line_end: 25204
        line_start: 25204
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 25207
      start: 25200
    functionDepth: 0
    functionLinenumber: 25200
    functionLinenumberEnd: 25207
    functionName: sqlite3_mutex *sqlite3MutexAlloc(int id)
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - mutex::xMutexAlloc
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3_mutex *sqlite3MutexAlloc(int id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:25214,1
    - Dst: mutex::xMutexFree
      Src: /src/nss/lib/sqlite/sqlite3.c:25215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_mutex*
    assertStmts:
    - condition: ( sqlite3GlobalConfig.mutex.xMutexFree )
      pos:
        line_end: 25213
        line_start: 25213
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 25217
      start: 25212
    functionDepth: 0
    functionLinenumber: 25212
    functionLinenumberEnd: 25217
    functionName: sqlite3_mutex_free
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - mutex::xMutexFree
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_mutex_free(sqlite3_mutex *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:25225,1
    - Dst: mutex::xMutexEnter
      Src: /src/nss/lib/sqlite/sqlite3.c:25226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_mutex*
    assertStmts:
    - condition: ( sqlite3GlobalConfig.mutex.xMutexEnter )
      pos:
        line_end: 25224
        line_start: 25224
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 25228
      start: 25223
    functionDepth: 0
    functionLinenumber: 25223
    functionLinenumberEnd: 25228
    functionName: sqlite3_mutex_enter
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 13
    functionsReached:
    - assert
    - mutex::xMutexEnter
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_mutex_enter(sqlite3_mutex *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:25237,1
    - Dst: mutex::xMutexTry
      Src: /src/nss/lib/sqlite/sqlite3.c:25238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_mutex*
    assertStmts:
    - condition: ( sqlite3GlobalConfig.mutex.xMutexTry )
      pos:
        line_end: 25236
        line_start: 25236
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 25241
      start: 25234
    functionDepth: 0
    functionLinenumber: 25234
    functionLinenumberEnd: 25241
    functionName: sqlite3_mutex_try
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - mutex::xMutexTry
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_mutex_try(sqlite3_mutex *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:25251,1
    - Dst: mutex::xMutexLeave
      Src: /src/nss/lib/sqlite/sqlite3.c:25252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_mutex*
    assertStmts:
    - condition: ( sqlite3GlobalConfig.mutex.xMutexLeave )
      pos:
        line_end: 25250
        line_start: 25250
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 25254
      start: 25249
    functionDepth: 0
    functionLinenumber: 25249
    functionLinenumberEnd: 25254
    functionName: sqlite3_mutex_leave
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 14
    functionsReached:
    - assert
    - mutex::xMutexLeave
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_mutex_leave(sqlite3_mutex *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:25262,1
    - Dst: mutex::xMutexHeld
      Src: /src/nss/lib/sqlite/sqlite3.c:25263,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_mutex*
    assertStmts:
    - condition: ( p==0 || sqlite3GlobalConfig.mutex.xMutexHeld )
      pos:
        line_end: 25261
        line_start: 25261
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 25264
      start: 25261
    functionDepth: 0
    functionLinenumber: 25261
    functionLinenumberEnd: 25264
    functionName: sqlite3_mutex_held
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 16
    functionsReached:
    - assert
    - mutex::xMutexHeld
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_mutex_held(sqlite3_mutex *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:25266,1
    - Dst: mutex::xMutexNotheld
      Src: /src/nss/lib/sqlite/sqlite3.c:25267,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_mutex*
    assertStmts:
    - condition: ( p==0 || sqlite3GlobalConfig.mutex.xMutexNotheld )
      pos:
        line_end: 25265
        line_start: 25265
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 25268
      start: 25265
    functionDepth: 0
    functionLinenumber: 25265
    functionLinenumberEnd: 25268
    functionName: sqlite3_mutex_notheld
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - mutex::xMutexNotheld
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_mutex_notheld(sqlite3_mutex *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25312
      start: 25312
    functionDepth: 0
    functionLinenumber: 25312
    functionLinenumberEnd: 25312
    functionName: noopMutexInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int noopMutexInit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25313
      start: 25313
    functionDepth: 0
    functionLinenumber: 25313
    functionLinenumberEnd: 25313
    functionName: noopMutexEnd
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int noopMutexEnd(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:25315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25317
      start: 25314
    functionDepth: 1
    functionLinenumber: 25314
    functionLinenumberEnd: 25317
    functionName: noopMutexAlloc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: sqlite3_mutex
    signature: sqlite3_mutex *noopMutexAlloc(int id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:25318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_mutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25318
      start: 25318
    functionDepth: 1
    functionLinenumber: 25318
    functionLinenumberEnd: 25318
    functionName: noopMutexFree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: void
    signature: void noopMutexFree(sqlite3_mutex *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:25319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_mutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25319
      start: 25319
    functionDepth: 1
    functionLinenumber: 25319
    functionLinenumberEnd: 25319
    functionName: noopMutexEnter
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: void
    signature: void noopMutexEnter(sqlite3_mutex *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:25321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_mutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25323
      start: 25320
    functionDepth: 1
    functionLinenumber: 25320
    functionLinenumberEnd: 25323
    functionName: noopMutexTry
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: int
    signature: int noopMutexTry(sqlite3_mutex *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:25324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_mutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25324
      start: 25324
    functionDepth: 1
    functionLinenumber: 25324
    functionLinenumberEnd: 25324
    functionName: noopMutexLeave
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: void
    signature: void noopMutexLeave(sqlite3_mutex *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25341
      start: 25326
    functionDepth: 0
    functionLinenumber: 25326
    functionLinenumberEnd: 25341
    functionName: sqlite3NoopMutex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3NoopMutex(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - pX
    argTypes:
    - sqlite3_mutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25366
      start: 25363
    functionDepth: 0
    functionLinenumber: 25363
    functionLinenumberEnd: 25366
    functionName: debugMutexHeld
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int debugMutexHeld(sqlite3_mutex *pX)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - pX
    argTypes:
    - sqlite3_mutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25370
      start: 25367
    functionDepth: 0
    functionLinenumber: 25367
    functionLinenumberEnd: 25370
    functionName: debugMutexNotheld
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int debugMutexNotheld(sqlite3_mutex *pX)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25375
      start: 25375
    functionDepth: 0
    functionLinenumber: 25375
    functionLinenumberEnd: 25375
    functionName: debugMutexInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int debugMutexInit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25376
      start: 25376
    functionDepth: 0
    functionLinenumber: 25376
    functionLinenumberEnd: 25376
    functionName: debugMutexEnd
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int debugMutexEnd(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:25389,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:25398,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25409
      start: 25383
    functionDepth: 1
    functionLinenumber: 25383
    functionLinenumberEnd: 25409
    functionName: debugMutexAlloc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ArraySize
    - sqlite3Malloc
    linkageType: ''
    returnType: sqlite3_mutex
    signature: sqlite3_mutex *debugMutexAlloc(int id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:25416,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:25418,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - pX
    argTypes:
    - sqlite3_mutex*
    assertStmts:
    - condition: ( p->cnt==0 )
      pos:
        line_end: 25415
        line_start: 25415
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 25424
      start: 25414
    functionDepth: 1
    functionLinenumber: 25414
    functionLinenumberEnd: 25424
    functionName: debugMutexFree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void debugMutexFree(sqlite3_mutex *pX)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:25439,1
    - Dst: debugMutexNotheld
      Src: /src/nss/lib/sqlite/sqlite3.c:25439,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - pX
    argTypes:
    - sqlite3_mutex*
    assertStmts:
    - condition: ( p->id==SQLITE_MUTEX_RECURSIVE || debugMutexNotheld(pX) )
      pos:
        line_end: 25438
        line_start: 25438
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 25441
      start: 25437
    functionDepth: 1
    functionLinenumber: 25437
    functionLinenumberEnd: 25441
    functionName: debugMutexEnter
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - debugMutexNotheld
    linkageType: ''
    returnType: void
    signature: void debugMutexEnter(sqlite3_mutex *pX)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:25444,1
    - Dst: debugMutexNotheld
      Src: /src/nss/lib/sqlite/sqlite3.c:25444,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pX
    argTypes:
    - sqlite3_mutex*
    assertStmts:
    - condition: ( p->id==SQLITE_MUTEX_RECURSIVE || debugMutexNotheld(pX) )
      pos:
        line_end: 25443
        line_start: 25443
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 25447
      start: 25442
    functionDepth: 1
    functionLinenumber: 25442
    functionLinenumberEnd: 25447
    functionName: debugMutexTry
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - debugMutexNotheld
    linkageType: ''
    returnType: int
    signature: int debugMutexTry(sqlite3_mutex *pX)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:25457,1
    - Dst: debugMutexHeld
      Src: /src/nss/lib/sqlite/sqlite3.c:25457,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:25459,1
    - Dst: debugMutexNotheld
      Src: /src/nss/lib/sqlite/sqlite3.c:25459,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pX
    argTypes:
    - sqlite3_mutex*
    assertStmts:
    - condition: ( debugMutexHeld(pX) )
      pos:
        line_end: 25456
        line_start: 25456
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->id==SQLITE_MUTEX_RECURSIVE || debugMutexNotheld(pX) )
      pos:
        line_end: 25458
        line_start: 25458
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 25460
      start: 25455
    functionDepth: 1
    functionLinenumber: 25455
    functionLinenumberEnd: 25460
    functionName: debugMutexLeave
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - debugMutexHeld
    - debugMutexNotheld
    linkageType: ''
    returnType: void
    signature: void debugMutexLeave(sqlite3_mutex *pX)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25477
      start: 25462
    functionDepth: 0
    functionLinenumber: 25462
    functionLinenumberEnd: 25477
    functionName: sqlite3NoopMutex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3NoopMutex(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3NoopMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:25486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25487
      start: 25485
    functionDepth: 1
    functionLinenumber: 25485
    functionLinenumberEnd: 25487
    functionName: sqlite3DefaultMutex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3NoopMutex
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3DefaultMutex(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - id
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25547
      start: 25545
    functionDepth: 0
    functionLinenumber: 25545
    functionLinenumberEnd: 25547
    functionName: SQLITE3_MUTEX_INITIALIZER
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQLITE3_MUTEX_INITIALIZER(id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - id
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25549
      start: 25548
    functionDepth: 0
    functionLinenumber: 25548
    functionLinenumberEnd: 25549
    functionName: SQLITE3_MUTEX_INITIALIZER
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQLITE3_MUTEX_INITIALIZER(id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - id
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25551
      start: 25550
    functionDepth: 0
    functionLinenumber: 25550
    functionLinenumberEnd: 25551
    functionName: SQLITE3_MUTEX_INITIALIZER
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQLITE3_MUTEX_INITIALIZER(id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_equal
      Src: /src/nss/lib/sqlite/sqlite3.c:25571,1
    - Dst: pthread_self
      Src: /src/nss/lib/sqlite/sqlite3.c:25571,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_mutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25572
      start: 25570
    functionDepth: 0
    functionLinenumber: 25570
    functionLinenumberEnd: 25572
    functionName: pthreadMutexHeld
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - pthread_self
    - pthread_equal
    linkageType: ''
    returnType: int
    signature: int pthreadMutexHeld(sqlite3_mutex *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_equal
      Src: /src/nss/lib/sqlite/sqlite3.c:25574,1
    - Dst: pthread_self
      Src: /src/nss/lib/sqlite/sqlite3.c:25574,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_mutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25575
      start: 25573
    functionDepth: 0
    functionLinenumber: 25573
    functionLinenumberEnd: 25575
    functionName: pthreadMutexNotheld
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - pthread_self
    - pthread_equal
    linkageType: ''
    returnType: int
    signature: int pthreadMutexNotheld(sqlite3_mutex *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __sync_synchronize
      Src: /src/nss/lib/sqlite/sqlite3.c:25587,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25589
      start: 25583
    functionDepth: 0
    functionLinenumber: 25583
    functionLinenumberEnd: 25589
    functionName: sqlite3MemoryBarrier
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - __sync_synchronize
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3MemoryBarrier(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25594
      start: 25594
    functionDepth: 0
    functionLinenumber: 25594
    functionLinenumberEnd: 25594
    functionName: pthreadMutexInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pthreadMutexInit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25595
      start: 25595
    functionDepth: 0
    functionLinenumber: 25595
    functionLinenumberEnd: 25595
    functionName: pthreadMutexEnd
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pthreadMutexEnd(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SQLITE3_MUTEX_INITIALIZER
      Src: /src/nss/lib/sqlite/sqlite3.c:25647,1
    - Dst: SQLITE3_MUTEX_INITIALIZER
      Src: /src/nss/lib/sqlite/sqlite3.c:25648,1
    - Dst: SQLITE3_MUTEX_INITIALIZER
      Src: /src/nss/lib/sqlite/sqlite3.c:25649,1
    - Dst: SQLITE3_MUTEX_INITIALIZER
      Src: /src/nss/lib/sqlite/sqlite3.c:25650,1
    - Dst: SQLITE3_MUTEX_INITIALIZER
      Src: /src/nss/lib/sqlite/sqlite3.c:25651,1
    - Dst: SQLITE3_MUTEX_INITIALIZER
      Src: /src/nss/lib/sqlite/sqlite3.c:25652,1
    - Dst: SQLITE3_MUTEX_INITIALIZER
      Src: /src/nss/lib/sqlite/sqlite3.c:25653,1
    - Dst: SQLITE3_MUTEX_INITIALIZER
      Src: /src/nss/lib/sqlite/sqlite3.c:25654,1
    - Dst: SQLITE3_MUTEX_INITIALIZER
      Src: /src/nss/lib/sqlite/sqlite3.c:25655,1
    - Dst: SQLITE3_MUTEX_INITIALIZER
      Src: /src/nss/lib/sqlite/sqlite3.c:25656,1
    - Dst: SQLITE3_MUTEX_INITIALIZER
      Src: /src/nss/lib/sqlite/sqlite3.c:25657,1
    - Dst: SQLITE3_MUTEX_INITIALIZER
      Src: /src/nss/lib/sqlite/sqlite3.c:25658,1
    - Dst: sqlite3MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:25663,1
    - Dst: pthread_mutex_init
      Src: /src/nss/lib/sqlite/sqlite3.c:25668,1
    - Dst: pthread_mutexattr_init
      Src: /src/nss/lib/sqlite/sqlite3.c:25672,1
    - Dst: pthread_mutexattr_settype
      Src: /src/nss/lib/sqlite/sqlite3.c:25673,1
    - Dst: pthread_mutex_init
      Src: /src/nss/lib/sqlite/sqlite3.c:25674,1
    - Dst: pthread_mutexattr_destroy
      Src: /src/nss/lib/sqlite/sqlite3.c:25675,1
    - Dst: sqlite3MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:25684,1
    - Dst: pthread_mutex_init
      Src: /src/nss/lib/sqlite/sqlite3.c:25686,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:25695,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:25705,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 1
    argNames:
    - iType
    argTypes:
    - int
    assertStmts:
    - condition: ( p==0 || p->id==iType )
      pos:
        line_end: 25704
        line_start: 25704
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 25708
      start: 25645
    functionDepth: 1
    functionLinenumber: 25645
    functionLinenumberEnd: 25708
    functionName: pthreadMutexAlloc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_init
    - pthread_mutexattr_settype
    - ArraySize
    - pthread_mutexattr_init
    - assert
    - SQLITE3_MUTEX_INITIALIZER
    - sqlite3MallocZero
    - pthread_mutexattr_destroy
    linkageType: ''
    returnType: sqlite3_mutex
    signature: sqlite3_mutex *pthreadMutexAlloc(int iType)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:25717,1
    - Dst: pthread_mutex_destroy
      Src: /src/nss/lib/sqlite/sqlite3.c:25722,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:25723,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_mutex*
    assertStmts:
    - condition: ( p->nRef==0 )
      pos:
        line_end: 25716
        line_start: 25716
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 25730
      start: 25716
    functionDepth: 1
    functionLinenumber: 25716
    functionLinenumberEnd: 25730
    functionName: pthreadMutexFree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_free
    - pthread_mutex_destroy
    linkageType: ''
    returnType: void
    signature: void pthreadMutexFree(sqlite3_mutex *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:25744,1
    - Dst: pthreadMutexNotheld
      Src: /src/nss/lib/sqlite/sqlite3.c:25744,1
    - Dst: pthread_self
      Src: /src/nss/lib/sqlite/sqlite3.c:25758,1
    - Dst: pthread_equal
      Src: /src/nss/lib/sqlite/sqlite3.c:25759,1
    - Dst: pthread_mutex_lock
      Src: /src/nss/lib/sqlite/sqlite3.c:25762,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:25763,1
    - Dst: pthread_mutex_lock
      Src: /src/nss/lib/sqlite/sqlite3.c:25771,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:25773,1
    - Dst: pthread_self
      Src: /src/nss/lib/sqlite/sqlite3.c:25774,1
    - Dst: printf
      Src: /src/nss/lib/sqlite/sqlite3.c:25781,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_mutex*
    assertStmts:
    - condition: ( p->id==SQLITE_MUTEX_RECURSIVE || pthreadMutexNotheld(p) )
      pos:
        line_end: 25743
        line_start: 25743
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->nRef==0 )
      pos:
        line_end: 25762
        line_start: 25762
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->nRef>0 || p->owner==0 )
      pos:
        line_end: 25772
        line_start: 25772
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 25784
      start: 25743
    functionDepth: 1
    functionLinenumber: 25743
    functionLinenumberEnd: 25784
    functionName: pthreadMutexEnter
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - pthread_self
    - pthreadMutexNotheld
    - pthread_equal
    - printf
    - assert
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void pthreadMutexEnter(sqlite3_mutex *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:25787,1
    - Dst: pthreadMutexNotheld
      Src: /src/nss/lib/sqlite/sqlite3.c:25787,1
    - Dst: pthread_self
      Src: /src/nss/lib/sqlite/sqlite3.c:25801,1
    - Dst: pthread_equal
      Src: /src/nss/lib/sqlite/sqlite3.c:25802,1
    - Dst: pthread_mutex_trylock
      Src: /src/nss/lib/sqlite/sqlite3.c:25805,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:25806,1
    - Dst: pthread_mutex_trylock
      Src: /src/nss/lib/sqlite/sqlite3.c:25817,1
    - Dst: pthread_self
      Src: /src/nss/lib/sqlite/sqlite3.c:25819,1
    - Dst: printf
      Src: /src/nss/lib/sqlite/sqlite3.c:25830,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_mutex*
    assertStmts:
    - condition: ( p->id==SQLITE_MUTEX_RECURSIVE || pthreadMutexNotheld(p) )
      pos:
        line_end: 25786
        line_start: 25786
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->nRef==0 )
      pos:
        line_end: 25805
        line_start: 25805
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 25834
      start: 25785
    functionDepth: 1
    functionLinenumber: 25785
    functionLinenumberEnd: 25834
    functionName: pthreadMutexTry
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - pthread_self
    - pthreadMutexNotheld
    - pthread_equal
    - printf
    - assert
    - pthread_mutex_trylock
    linkageType: ''
    returnType: int
    signature: int pthreadMutexTry(sqlite3_mutex *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:25843,1
    - Dst: pthreadMutexHeld
      Src: /src/nss/lib/sqlite/sqlite3.c:25843,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:25848,1
    - Dst: pthread_mutex_unlock
      Src: /src/nss/lib/sqlite/sqlite3.c:25852,1
    - Dst: pthread_mutex_unlock
      Src: /src/nss/lib/sqlite/sqlite3.c:25855,1
    - Dst: printf
      Src: /src/nss/lib/sqlite/sqlite3.c:25860,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_mutex*
    assertStmts:
    - condition: ( pthreadMutexHeld(p) )
      pos:
        line_end: 25842
        line_start: 25842
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->nRef==0 || p->id==SQLITE_MUTEX_RECURSIVE )
      pos:
        line_end: 25847
        line_start: 25847
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 25863
      start: 25842
    functionDepth: 1
    functionLinenumber: 25842
    functionLinenumberEnd: 25863
    functionName: pthreadMutexLeave
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - pthreadMutexHeld
    - pthread_mutex_unlock
    - printf
    linkageType: ''
    returnType: void
    signature: void pthreadMutexLeave(sqlite3_mutex *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25884
      start: 25865
    functionDepth: 0
    functionLinenumber: 25865
    functionLinenumberEnd: 25884
    functionName: sqlite3DefaultMutex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3DefaultMutex(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25987
      start: 25983
    functionDepth: 0
    functionLinenumber: 25983
    functionLinenumberEnd: 25987
    functionName: sqlite3Hwtime
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sqlite_uint64
    signature: sqlite_uint64 sqlite3Hwtime(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26006
      start: 26002
    functionDepth: 0
    functionLinenumber: 26002
    functionLinenumberEnd: 26006
    functionName: sqlite3Hwtime
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sqlite_uint64
    signature: sqlite_uint64 sqlite3Hwtime(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26021
      start: 26010
    functionDepth: 0
    functionLinenumber: 26010
    functionLinenumberEnd: 26021
    functionName: sqlite3Hwtime
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sqlite_uint64
    signature: sqlite_uint64 sqlite3Hwtime(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26034
      start: 26034
    functionDepth: 0
    functionLinenumber: 26034
    functionLinenumberEnd: 26034
    functionName: sqlite_uint64::sqlite3Hwtime
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite_uint64 sqlite3Hwtime(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26068
      start: 26067
    functionDepth: 0
    functionLinenumber: 26067
    functionLinenumberEnd: 26068
    functionName: SimulateIOErrorBenign
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SimulateIOErrorBenign(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - CODE
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26072
      start: 26068
    functionDepth: 0
    functionLinenumber: 26068
    functionLinenumberEnd: 26072
    functionName: SimulateIOError
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SimulateIOError(CODE)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IOTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:26073,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26076
      start: 26072
    functionDepth: 1
    functionLinenumber: 26072
    functionLinenumberEnd: 26076
    functionName: local_ioerr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - IOTRACE
    linkageType: ''
    returnType: void
    signature: void local_ioerr()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - CODE
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26088
      start: 26077
    functionDepth: 0
    functionLinenumber: 26077
    functionLinenumberEnd: 26088
    functionName: SimulateDiskfullError
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SimulateDiskfullError(CODE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26100
      start: 26099
    functionDepth: 0
    functionLinenumber: 26099
    functionLinenumberEnd: 26100
    functionName: OpenCounter
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OpenCounter(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - id
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26236
      start: 26234
    functionDepth: 0
    functionLinenumber: 26234
    functionLinenumberEnd: 26236
    functionName: SQLITE3_MUTEX_INITIALIZER
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQLITE3_MUTEX_INITIALIZER(id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - id
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26238
      start: 26237
    functionDepth: 0
    functionLinenumber: 26237
    functionLinenumberEnd: 26238
    functionName: SQLITE3_MUTEX_INITIALIZER
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQLITE3_MUTEX_INITIALIZER(id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentThreadId
      Src: /src/nss/lib/sqlite/sqlite3.c:26246,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_mutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26247
      start: 26245
    functionDepth: 0
    functionLinenumber: 26245
    functionLinenumberEnd: 26247
    functionName: winMutexHeld
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - GetCurrentThreadId
    linkageType: ''
    returnType: int
    signature: int winMutexHeld(sqlite3_mutex *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - p
    - tid
    argTypes:
    - sqlite3_mutex*
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26251
      start: 26249
    functionDepth: 0
    functionLinenumber: 26249
    functionLinenumberEnd: 26251
    functionName: winMutexNotheld2
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int winMutexNotheld2(sqlite3_mutex *p, DWORD tid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentThreadId
      Src: /src/nss/lib/sqlite/sqlite3.c:26254,1
    - Dst: winMutexNotheld2
      Src: /src/nss/lib/sqlite/sqlite3.c:26255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_mutex*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26256
      start: 26253
    functionDepth: 1
    functionLinenumber: 26253
    functionLinenumberEnd: 26256
    functionName: winMutexNotheld
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - winMutexNotheld2
    - GetCurrentThreadId
    linkageType: ''
    returnType: int
    signature: int winMutexNotheld(sqlite3_mutex *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __sync_synchronize
      Src: /src/nss/lib/sqlite/sqlite3.c:26268,1
    - Dst: _ReadWriteBarrier
      Src: /src/nss/lib/sqlite/sqlite3.c:26270,1
    - Dst: MemoryBarrier
      Src: /src/nss/lib/sqlite/sqlite3.c:26272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26274
      start: 26264
    functionDepth: 0
    functionLinenumber: 26264
    functionLinenumberEnd: 26274
    functionName: sqlite3MemoryBarrier
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - MemoryBarrier
    - _ReadWriteBarrier
    - __sync_synchronize
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3MemoryBarrier(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: InterlockedCompareExchange
      Src: /src/nss/lib/sqlite/sqlite3.c:26308,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:26310,1
    - Dst: InitializeCriticalSectionEx
      Src: /src/nss/lib/sqlite/sqlite3.c:26312,1
    - Dst: InitializeCriticalSection
      Src: /src/nss/lib/sqlite/sqlite3.c:26314,1
    - Dst: sqlite3_win32_sleep
      Src: /src/nss/lib/sqlite/sqlite3.c:26322,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26326
      start: 26306
    functionDepth: 1
    functionLinenumber: 26306
    functionLinenumberEnd: 26326
    functionName: winMutexInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - InterlockedCompareExchange
    - InitializeCriticalSectionEx
    - ArraySize
    - InitializeCriticalSection
    - sqlite3_win32_sleep
    linkageType: ''
    returnType: int
    signature: int winMutexInit(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: InterlockedCompareExchange
      Src: /src/nss/lib/sqlite/sqlite3.c:26331,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:26334,1
    - Dst: DeleteCriticalSection
      Src: /src/nss/lib/sqlite/sqlite3.c:26335,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26341
      start: 26328
    functionDepth: 1
    functionLinenumber: 26328
    functionLinenumberEnd: 26341
    functionName: winMutexEnd
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - DeleteCriticalSection
    - ArraySize
    - InterlockedCompareExchange
    linkageType: ''
    returnType: int
    signature: int winMutexEnd(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:26397,1
    - Dst: InitializeCriticalSectionEx
      Src: /src/nss/lib/sqlite/sqlite3.c:26406,1
    - Dst: InitializeCriticalSection
      Src: /src/nss/lib/sqlite/sqlite3.c:26408,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:26415,1
    - Dst: InterlockedCompareExchange
      Src: /src/nss/lib/sqlite/sqlite3.c:26423,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:26429,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - iType
    argTypes:
    - int
    assertStmts:
    - condition: ( p==0 || p->id==iType )
      pos:
        line_end: 26428
        line_start: 26428
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 26431
      start: 26391
    functionDepth: 1
    functionLinenumber: 26391
    functionLinenumberEnd: 26431
    functionName: winMutexAlloc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - InterlockedCompareExchange
    - InitializeCriticalSectionEx
    - ArraySize
    - assert
    - InitializeCriticalSection
    - sqlite3MallocZero
    linkageType: ''
    returnType: sqlite3_mutex
    signature: sqlite3_mutex *winMutexAlloc(int iType)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:26440,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:26441,1
    - Dst: DeleteCriticalSection
      Src: /src/nss/lib/sqlite/sqlite3.c:26443,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:26444,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_mutex*
    assertStmts:
    - condition: ( p )
      pos:
        line_end: 26439
        line_start: 26439
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->nRef==0 && p->owner==0 )
      pos:
        line_end: 26440
        line_start: 26440
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 26450
      start: 26439
    functionDepth: 1
    functionLinenumber: 26439
    functionLinenumberEnd: 26450
    functionName: winMutexFree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - DeleteCriticalSection
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void winMutexFree(sqlite3_mutex *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentThreadId
      Src: /src/nss/lib/sqlite/sqlite3.c:26465,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:26468,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:26469,1
    - Dst: winMutexNotheld2
      Src: /src/nss/lib/sqlite/sqlite3.c:26469,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:26471,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:26473,1
    - Dst: EnterCriticalSection
      Src: /src/nss/lib/sqlite/sqlite3.c:26474,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:26476,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:26480,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_mutex*
    assertStmts:
    - condition: ( p )
      pos:
        line_end: 26470
        line_start: 26470
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->id==SQLITE_MUTEX_RECURSIVE || winMutexNotheld2(p, tid) )
      pos:
        line_end: 26468
        line_start: 26468
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p )
      pos:
        line_end: 26467
        line_start: 26467
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( winMutex_isInit==1 )
      pos:
        line_end: 26472
        line_start: 26472
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->nRef>0 || p->owner==0 )
      pos:
        line_end: 26475
        line_start: 26475
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 26484
      start: 26463
    functionDepth: 1
    functionLinenumber: 26463
    functionLinenumberEnd: 26484
    functionName: winMutexEnter
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - EnterCriticalSection
    - OSTRACE
    - assert
    - winMutexNotheld2
    - GetCurrentThreadId
    linkageType: ''
    returnType: void
    signature: void winMutexEnter(sqlite3_mutex *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentThreadId
      Src: /src/nss/lib/sqlite/sqlite3.c:26488,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:26491,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:26492,1
    - Dst: winMutexNotheld2
      Src: /src/nss/lib/sqlite/sqlite3.c:26492,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:26505,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:26506,1
    - Dst: sqlite3_win32_is_nt
      Src: /src/nss/lib/sqlite/sqlite3.c:26508,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:26510,1
    - Dst: TryEnterCriticalSection
      Src: /src/nss/lib/sqlite/sqlite3.c:26511,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:26519,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:26523,1
    - Dst: sqlite3ErrName
      Src: /src/nss/lib/sqlite/sqlite3.c:26524,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_mutex*
    assertStmts:
    - condition: ( p )
      pos:
        line_end: 26490
        line_start: 26490
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( winMutex_isInit==1 )
      pos:
        line_end: 26504
        line_start: 26504
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->id==SQLITE_MUTEX_RECURSIVE || winMutexNotheld2(p, tid) )
      pos:
        line_end: 26491
        line_start: 26491
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( winMutex_isNt>=-1 && winMutex_isNt<=1 )
      pos:
        line_end: 26505
        line_start: 26505
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( winMutex_isNt==0 || winMutex_isNt==1 )
      pos:
        line_end: 26509
        line_start: 26509
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 26528
      start: 26486
    functionDepth: 1
    functionLinenumber: 26486
    functionLinenumberEnd: 26528
    functionName: winMutexTry
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_win32_is_nt
    - UNUSED_PARAMETER
    - OSTRACE
    - assert
    - winMutexNotheld2
    - GetCurrentThreadId
    - TryEnterCriticalSection
    - sqlite3ErrName
    linkageType: ''
    returnType: int
    signature: int winMutexTry(sqlite3_mutex *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetCurrentThreadId
      Src: /src/nss/lib/sqlite/sqlite3.c:26538,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:26540,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:26542,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:26543,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:26546,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:26548,1
    - Dst: LeaveCriticalSection
      Src: /src/nss/lib/sqlite/sqlite3.c:26549,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:26552,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_mutex*
    assertStmts:
    - condition: ( p->owner==tid )
      pos:
        line_end: 26542
        line_start: 26542
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->nRef>0 )
      pos:
        line_end: 26541
        line_start: 26541
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->nRef==0 || p->id==SQLITE_MUTEX_RECURSIVE )
      pos:
        line_end: 26545
        line_start: 26545
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p )
      pos:
        line_end: 26539
        line_start: 26539
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( winMutex_isInit==1 )
      pos:
        line_end: 26547
        line_start: 26547
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 26556
      start: 26536
    functionDepth: 1
    functionLinenumber: 26536
    functionLinenumberEnd: 26556
    functionName: winMutexLeave
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - LeaveCriticalSection
    - GetCurrentThreadId
    - OSTRACE
    linkageType: ''
    returnType: void
    signature: void winMutexLeave(sqlite3_mutex *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26576
      start: 26558
    functionDepth: 0
    functionLinenumber: 26558
    functionLinenumberEnd: 26576
    functionName: sqlite3DefaultMutex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3DefaultMutex(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PcacheReleaseMemory
      Src: /src/nss/lib/sqlite/sqlite3.c:26606,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:26611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26614
      start: 26604
    functionDepth: 1
    functionLinenumber: 26604
    functionLinenumberEnd: 26614
    functionName: sqlite3_release_memory
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3PcacheReleaseMemory
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_release_memory(int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26628
      start: 26619
    functionDepth: 0
    functionLinenumber: 26619
    functionLinenumberEnd: 26628
    functionName: Mem0Global
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_WSD
    signature: SQLITE_WSD Mem0Global
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26637
      start: 26635
    functionDepth: 0
    functionLinenumber: 26635
    functionLinenumberEnd: 26637
    functionName: sqlite3_mutex *sqlite3MallocMutex(void)
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3_mutex *sqlite3MallocMutex(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - pArg
    - iThreshold
    argTypes:
    - void*
    - sqlite3_int64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26654
      start: 26645
    functionDepth: 0
    functionLinenumber: 26645
    functionLinenumberEnd: 26654
    functionName: sqlite3_memory_alarm
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_memory_alarm(\n  void(*xCallback)(void *pArg, sqlite3_int64
      used,int N),\n  void *pArg,\n  sqlite3_int64 iThreshold\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_initialize
      Src: /src/nss/lib/sqlite/sqlite3.c:26666,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:26669,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:26672,1
    - Dst: sqlite3_int64::sqlite3StatusValue
      Src: /src/nss/lib/sqlite/sqlite3.c:26676,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:26678,1
    - Dst: sqlite3_int64::sqlite3_memory_used
      Src: /src/nss/lib/sqlite/sqlite3.c:26679,1
    - Dst: sqlite3_release_memory
      Src: /src/nss/lib/sqlite/sqlite3.c:26680,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - n
    argTypes:
    - sqlite3_int64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26682
      start: 26661
    functionDepth: 2
    functionLinenumber: 26661
    functionLinenumberEnd: 26682
    functionName: sqlite3_int64::sqlite3_soft_heap_limit64
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3_initialize
    - sqlite3_int64::sqlite3StatusValue
    - sqlite3_int64::sqlite3_memory_used
    - sqlite3_mutex_leave
    - sqlite3_release_memory
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_int64 sqlite3_soft_heap_limit64(sqlite3_int64 n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_soft_heap_limit64
      Src: /src/nss/lib/sqlite/sqlite3.c:26685,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26686
      start: 26683
    functionDepth: 0
    functionLinenumber: 26683
    functionLinenumberEnd: 26686
    functionName: sqlite3_soft_heap_limit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_soft_heap_limit64
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_soft_heap_limit(int n)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3MemSetDefault
      Src: /src/nss/lib/sqlite/sqlite3.c:26694,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:26696,1
    - Dst: sqlite3MutexAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:26697,1
    - Dst: m::xInit
      Src: /src/nss/lib/sqlite/sqlite3.c:26703,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:26704,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26706
      start: 26691
    functionDepth: 2
    functionLinenumber: 26691
    functionLinenumberEnd: 26706
    functionName: sqlite3MallocInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3MemSetDefault
    - sqlite3MutexAlloc
    - m::xInit
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3MallocInit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26715
      start: 26713
    functionDepth: 0
    functionLinenumber: 26713
    functionLinenumberEnd: 26715
    functionName: sqlite3HeapNearlyFull
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3HeapNearlyFull(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m::xShutdown
      Src: /src/nss/lib/sqlite/sqlite3.c:26722,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:26724,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26725
      start: 26720
    functionDepth: 0
    functionLinenumber: 26720
    functionLinenumberEnd: 26725
    functionName: sqlite3MallocEnd
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - m::xShutdown
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3MallocEnd(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_status64
      Src: /src/nss/lib/sqlite/sqlite3.c:26732,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26734
      start: 26730
    functionDepth: 2
    functionLinenumber: 26730
    functionLinenumberEnd: 26734
    functionName: sqlite3_int64::sqlite3_memory_used
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_status64
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_int64 sqlite3_memory_used(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_status64
      Src: /src/nss/lib/sqlite/sqlite3.c:26743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - resetFlag
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26745
      start: 26741
    functionDepth: 2
    functionLinenumber: 26741
    functionLinenumberEnd: 26745
    functionName: sqlite3_int64::sqlite3_memory_highwater
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_status64
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_int64 sqlite3_memory_highwater(int resetFlag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:26752,1
    - Dst: sqlite3_release_memory
      Src: /src/nss/lib/sqlite/sqlite3.c:26753,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:26754,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - nByte
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26755
      start: 26750
    functionDepth: 2
    functionLinenumber: 26750
    functionLinenumberEnd: 26755
    functionName: sqlite3MallocAlarm
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3_mutex_leave
    - sqlite3_release_memory
    linkageType: ''
    returnType: void
    signature: void sqlite3MallocAlarm(int nByte)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:26764,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:26764,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:26765,1
    - Dst: m::xRoundup
      Src: /src/nss/lib/sqlite/sqlite3.c:26772,1
    - Dst: sqlite3StatusValue
      Src: /src/nss/lib/sqlite/sqlite3.c:26775,1
    - Dst: sqlite3StatusHighwater
      Src: /src/nss/lib/sqlite/sqlite3.c:26781,1
    - Dst: sqlite3StatusValue
      Src: /src/nss/lib/sqlite/sqlite3.c:26783,1
    - Dst: sqlite3MallocAlarm
      Src: /src/nss/lib/sqlite/sqlite3.c:26786,1
    - Dst: m::xMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:26791,1
    - Dst: sqlite3MallocAlarm
      Src: /src/nss/lib/sqlite/sqlite3.c:26794,1
    - Dst: m::xMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:26795,1
    - Dst: sqlite3MallocSize
      Src: /src/nss/lib/sqlite/sqlite3.c:26799,1
    - Dst: sqlite3StatusUp
      Src: /src/nss/lib/sqlite/sqlite3.c:26800,1
    - Dst: sqlite3StatusUp
      Src: /src/nss/lib/sqlite/sqlite3.c:26801,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - n
    - pp
    argTypes:
    - int
    - void**
    assertStmts:
    - condition: ( sqlite3_mutex_held(mem0.mutex) )
      pos:
        line_end: 26763
        line_start: 26763
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( n>0 )
      pos:
        line_end: 26764
        line_start: 26764
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 26804
      start: 26761
    functionDepth: 3
    functionLinenumber: 26761
    functionLinenumberEnd: 26804
    functionName: mallocWithAlarm
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3StatusValue
    - m::xRoundup
    - sqlite3MallocAlarm
    - m::xMalloc
    - sqlite3MallocSize
    - sqlite3StatusUp
    - assert
    - sqlite3StatusHighwater
    - sqlite3_mutex_held
    linkageType: ''
    returnType: void
    signature: void mallocWithAlarm(int n, void **pp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:26820,1
    - Dst: mallocWithAlarm
      Src: /src/nss/lib/sqlite/sqlite3.c:26821,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:26822,1
    - Dst: m::xMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:26824,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:26826,1
    - Dst: EIGHT_BYTE_ALIGNMENT
      Src: /src/nss/lib/sqlite/sqlite3.c:26826,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - n
    argTypes:
    - u64
    assertStmts:
    - condition: ( EIGHT_BYTE_ALIGNMENT(p) )
      pos:
        line_end: 26825
        line_start: 26825
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 26828
      start: 26810
    functionDepth: 4
    functionLinenumber: 26810
    functionLinenumberEnd: 26828
    functionName: sqlite3Malloc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_mutex_enter
    - m::xMalloc
    - sqlite3_mutex_leave
    - assert
    - EIGHT_BYTE_ALIGNMENT
    - mallocWithAlarm
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3Malloc(u64 n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_initialize
      Src: /src/nss/lib/sqlite/sqlite3.c:26837,1
    - Dst: sqlite3Malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:26839,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26840
      start: 26835
    functionDepth: 5
    functionLinenumber: 26835
    functionLinenumberEnd: 26840
    functionName: sqlite3_malloc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3_initialize
    - sqlite3Malloc
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *sqlite3_malloc(int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_initialize
      Src: /src/nss/lib/sqlite/sqlite3.c:26843,1
    - Dst: sqlite3Malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:26845,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - sqlite3_uint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26846
      start: 26841
    functionDepth: 5
    functionLinenumber: 26841
    functionLinenumberEnd: 26846
    functionName: sqlite3_malloc64
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_initialize
    - sqlite3Malloc
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *sqlite3_malloc64(sqlite3_uint64 n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SQLITE_WITHIN
      Src: /src/nss/lib/sqlite/sqlite3.c:26853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26854
      start: 26852
    functionDepth: 1
    functionLinenumber: 26852
    functionLinenumberEnd: 26854
    functionName: isLookaside
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - SQLITE_WITHIN
    linkageType: ''
    returnType: int
    signature: int isLookaside(sqlite3 *db, void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - A
    - ','
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26857
      start: 26856
    functionDepth: 0
    functionLinenumber: 26856
    functionLinenumberEnd: 26857
    functionName: isLookaside
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: isLookaside(A,B)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:26864,1
    - Dst: sqlite3MemdebugHasType
      Src: /src/nss/lib/sqlite/sqlite3.c:26864,1
    - Dst: m::xSize
      Src: /src/nss/lib/sqlite/sqlite3.c:26865,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts:
    - condition: ( sqlite3MemdebugHasType(p, MEMTYPE_HEAP) )
      pos:
        line_end: 26863
        line_start: 26863
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 26866
      start: 26863
    functionDepth: 1
    functionLinenumber: 26863
    functionLinenumberEnd: 26866
    functionName: sqlite3MallocSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - sqlite3MemdebugHasType
    - m::xSize
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3MallocSize(void *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:26868,1
    - Dst: isLookaside
      Src: /src/nss/lib/sqlite/sqlite3.c:26869,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:26872,1
    - Dst: sqlite3MemdebugNoType
      Src: /src/nss/lib/sqlite/sqlite3.c:26872,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:26873,1
    - Dst: sqlite3MemdebugHasType
      Src: /src/nss/lib/sqlite/sqlite3.c:26873,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:26875,1
    - Dst: sqlite3MemdebugHasType
      Src: /src/nss/lib/sqlite/sqlite3.c:26875,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:26876,1
    - Dst: sqlite3MemdebugNoType
      Src: /src/nss/lib/sqlite/sqlite3.c:26876,1
    - Dst: m::xSize
      Src: /src/nss/lib/sqlite/sqlite3.c:26879,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:26881,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:26881,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - void*
    assertStmts:
    - condition: ( p!=0 )
      pos:
        line_end: 26867
        line_start: 26867
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3MemdebugHasType(p, MEMTYPE_HEAP) )
      pos:
        line_end: 26872
        line_start: 26872
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3MemdebugNoType(p, (u8)~MEMTYPE_HEAP) )
      pos:
        line_end: 26871
        line_start: 26871
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3MemdebugHasType(p, (MEMTYPE_LOOKASIDE|MEMTYPE_HEAP)) )
      pos:
        line_end: 26874
        line_start: 26874
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3MemdebugNoType(p, (u8)~(MEMTYPE_LOOKASIDE|MEMTYPE_HEAP))
        )
      pos:
        line_end: 26875
        line_start: 26875
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3_mutex_held(db->mutex) )
      pos:
        line_end: 26880
        line_start: 26880
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 26884
      start: 26867
    functionDepth: 2
    functionLinenumber: 26867
    functionLinenumberEnd: 26884
    functionName: sqlite3DbMallocSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3MemdebugNoType
    - sqlite3_mutex_held
    - sqlite3MemdebugHasType
    - assert
    - m::xSize
    - isLookaside
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3DbMallocSize(sqlite3 *db, void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:26886,1
    - Dst: sqlite3MemdebugNoType
      Src: /src/nss/lib/sqlite/sqlite3.c:26886,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:26887,1
    - Dst: sqlite3MemdebugHasType
      Src: /src/nss/lib/sqlite/sqlite3.c:26887,1
    - Dst: m::xSize
      Src: /src/nss/lib/sqlite/sqlite3.c:26888,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts:
    - condition: ( sqlite3MemdebugNoType(p, (u8)~MEMTYPE_HEAP) )
      pos:
        line_end: 26885
        line_start: 26885
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3MemdebugHasType(p, MEMTYPE_HEAP) )
      pos:
        line_end: 26886
        line_start: 26886
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 26889
      start: 26885
    functionDepth: 1
    functionLinenumber: 26885
    functionLinenumberEnd: 26889
    functionName: sqlite3_uint64::sqlite3_msize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3MemdebugHasType
    - sqlite3MemdebugNoType
    - m::xSize
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_uint64 sqlite3_msize(void *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:26896,1
    - Dst: sqlite3MemdebugHasType
      Src: /src/nss/lib/sqlite/sqlite3.c:26896,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:26897,1
    - Dst: sqlite3MemdebugNoType
      Src: /src/nss/lib/sqlite/sqlite3.c:26897,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:26899,1
    - Dst: sqlite3StatusDown
      Src: /src/nss/lib/sqlite/sqlite3.c:26900,1
    - Dst: sqlite3MallocSize
      Src: /src/nss/lib/sqlite/sqlite3.c:26900,1
    - Dst: sqlite3StatusDown
      Src: /src/nss/lib/sqlite/sqlite3.c:26901,1
    - Dst: m::xFree
      Src: /src/nss/lib/sqlite/sqlite3.c:26902,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:26903,1
    - Dst: m::xFree
      Src: /src/nss/lib/sqlite/sqlite3.c:26905,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts:
    - condition: ( sqlite3MemdebugHasType(p, MEMTYPE_HEAP) )
      pos:
        line_end: 26895
        line_start: 26895
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3MemdebugNoType(p, (u8)~MEMTYPE_HEAP) )
      pos:
        line_end: 26896
        line_start: 26896
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 26907
      start: 26894
    functionDepth: 2
    functionLinenumber: 26894
    functionLinenumberEnd: 26907
    functionName: sqlite3_free
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 24
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3StatusDown
    - m::xFree
    - sqlite3MemdebugHasType
    - sqlite3MallocSize
    - sqlite3_mutex_leave
    - assert
    - sqlite3MemdebugNoType
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_free(void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbMallocSize
      Src: /src/nss/lib/sqlite/sqlite3.c:26914,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26915
      start: 26913
    functionDepth: 3
    functionLinenumber: 26913
    functionLinenumberEnd: 26915
    functionName: measureAllocationSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbMallocSize
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: SQLITE_NOINLINE measureAllocationSize(sqlite3 *db, void *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:26923,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:26923,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:26924,1
    - Dst: measureAllocationSize
      Src: /src/nss/lib/sqlite/sqlite3.c:26927,1
    - Dst: isLookaside
      Src: /src/nss/lib/sqlite/sqlite3.c:26930,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:26934,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:26941,1
    - Dst: sqlite3MemdebugHasType
      Src: /src/nss/lib/sqlite/sqlite3.c:26941,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:26942,1
    - Dst: sqlite3MemdebugNoType
      Src: /src/nss/lib/sqlite/sqlite3.c:26942,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:26943,1
    - Dst: sqlite3MemdebugNoType
      Src: /src/nss/lib/sqlite/sqlite3.c:26943,1
    - Dst: sqlite3MemdebugSetType
      Src: /src/nss/lib/sqlite/sqlite3.c:26944,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:26945,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - void*
    assertStmts:
    - condition: ( db==0 || sqlite3_mutex_held(db->mutex) )
      pos:
        line_end: 26922
        line_start: 26922
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p!=0 )
      pos:
        line_end: 26923
        line_start: 26923
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3MemdebugHasType(p, (MEMTYPE_LOOKASIDE|MEMTYPE_HEAP)) )
      pos:
        line_end: 26940
        line_start: 26940
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3MemdebugNoType(p, (u8)~(MEMTYPE_LOOKASIDE|MEMTYPE_HEAP))
        )
      pos:
        line_end: 26941
        line_start: 26941
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( db!=0 || sqlite3MemdebugNoType(p, MEMTYPE_LOOKASIDE) )
      pos:
        line_end: 26942
        line_start: 26942
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 26946
      start: 26922
    functionDepth: 4
    functionLinenumber: 26922
    functionLinenumberEnd: 26946
    functionName: sqlite3DbFreeNN
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - isLookaside
    - sqlite3MemdebugNoType
    - sqlite3MemdebugSetType
    - measureAllocationSize
    - sqlite3MemdebugHasType
    - assert
    - memset
    - sqlite3_mutex_held
    - sqlite3_free
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3DbFreeNN(sqlite3 *db, void *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:26948,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:26948,1
    - Dst: sqlite3DbFreeNN
      Src: /src/nss/lib/sqlite/sqlite3.c:26949,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - void*
    assertStmts:
    - condition: ( db==0 || sqlite3_mutex_held(db->mutex) )
      pos:
        line_end: 26947
        line_start: 26947
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 26950
      start: 26947
    functionDepth: 5
    functionLinenumber: 26947
    functionLinenumberEnd: 26950
    functionName: sqlite3DbFree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - sqlite3_mutex_held
    - sqlite3DbFreeNN
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3DbFree(sqlite3 *db, void *p)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:26958,1
    - Dst: sqlite3MemdebugHasType
      Src: /src/nss/lib/sqlite/sqlite3.c:26958,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:26959,1
    - Dst: sqlite3MemdebugNoType
      Src: /src/nss/lib/sqlite/sqlite3.c:26959,1
    - Dst: sqlite3Malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:26961,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:26964,1
    - Dst: sqlite3MallocSize
      Src: /src/nss/lib/sqlite/sqlite3.c:26971,1
    - Dst: m::xRoundup
      Src: /src/nss/lib/sqlite/sqlite3.c:26975,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:26979,1
    - Dst: sqlite3StatusHighwater
      Src: /src/nss/lib/sqlite/sqlite3.c:26980,1
    - Dst: sqlite3StatusValue
      Src: /src/nss/lib/sqlite/sqlite3.c:26982,1
    - Dst: sqlite3MallocAlarm
      Src: /src/nss/lib/sqlite/sqlite3.c:26984,1
    - Dst: m::xRealloc
      Src: /src/nss/lib/sqlite/sqlite3.c:26986,1
    - Dst: sqlite3MallocAlarm
      Src: /src/nss/lib/sqlite/sqlite3.c:26988,1
    - Dst: m::xRealloc
      Src: /src/nss/lib/sqlite/sqlite3.c:26989,1
    - Dst: sqlite3MallocSize
      Src: /src/nss/lib/sqlite/sqlite3.c:26992,1
    - Dst: sqlite3StatusUp
      Src: /src/nss/lib/sqlite/sqlite3.c:26993,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:26995,1
    - Dst: m::xRealloc
      Src: /src/nss/lib/sqlite/sqlite3.c:26997,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:26999,1
    - Dst: EIGHT_BYTE_ALIGNMENT
      Src: /src/nss/lib/sqlite/sqlite3.c:26999,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 2
    argNames:
    - pOld
    - nBytes
    argTypes:
    - void*
    - u64
    assertStmts:
    - condition: ( sqlite3MemdebugHasType(pOld, MEMTYPE_HEAP) )
      pos:
        line_end: 26957
        line_start: 26957
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3MemdebugNoType(pOld, (u8)~MEMTYPE_HEAP) )
      pos:
        line_end: 26958
        line_start: 26958
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( EIGHT_BYTE_ALIGNMENT(pNew) )
      pos:
        line_end: 26998
        line_start: 26998
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 27001
      start: 26955
    functionDepth: 5
    functionLinenumber: 26955
    functionLinenumberEnd: 27001
    functionName: sqlite3Realloc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3StatusValue
    - m::xRoundup
    - sqlite3MallocAlarm
    - sqlite3MemdebugHasType
    - sqlite3MallocSize
    - m::xRealloc
    - sqlite3Malloc
    - sqlite3StatusUp
    - assert
    - sqlite3_mutex_leave
    - sqlite3StatusHighwater
    - sqlite3MemdebugNoType
    - EIGHT_BYTE_ALIGNMENT
    - sqlite3_free
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3Realloc(void *pOld, u64 nBytes)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_initialize
      Src: /src/nss/lib/sqlite/sqlite3.c:27009,1
    - Dst: sqlite3Realloc
      Src: /src/nss/lib/sqlite/sqlite3.c:27012,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - pOld
    - n
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27013
      start: 27007
    functionDepth: 6
    functionLinenumber: 27007
    functionLinenumberEnd: 27013
    functionName: sqlite3_realloc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Realloc
    - sqlite3_initialize
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *sqlite3_realloc(void *pOld, int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_initialize
      Src: /src/nss/lib/sqlite/sqlite3.c:27016,1
    - Dst: sqlite3Realloc
      Src: /src/nss/lib/sqlite/sqlite3.c:27018,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pOld
    - n
    argTypes:
    - void*
    - sqlite3_uint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27019
      start: 27014
    functionDepth: 6
    functionLinenumber: 27014
    functionLinenumberEnd: 27019
    functionName: sqlite3_realloc64
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Realloc
    - sqlite3_initialize
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *sqlite3_realloc64(void *pOld, sqlite3_uint64 n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:27026,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:27028,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - n
    argTypes:
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27031
      start: 27025
    functionDepth: 5
    functionLinenumber: 27025
    functionLinenumberEnd: 27031
    functionName: sqlite3MallocZero
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 4
    functionsReached:
    - memset
    - sqlite3Malloc
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3MallocZero(u64 n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:27039,1
    - Dst: sqlite3DbMallocRaw
      Src: /src/nss/lib/sqlite/sqlite3.c:27040,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:27041,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - db
    - n
    argTypes:
    - sqlite3*
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27043
      start: 27037
    functionDepth: 1
    functionLinenumber: 27037
    functionLinenumberEnd: 27043
    functionName: sqlite3DbMallocZero
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbMallocRaw
    - testcase
    - memset
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3DbMallocZero(sqlite3 *db, u64 n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:27051,1
    - Dst: sqlite3Malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:27052,1
    - Dst: sqlite3OomFault
      Src: /src/nss/lib/sqlite/sqlite3.c:27053,1
    - Dst: sqlite3MemdebugSetType
      Src: /src/nss/lib/sqlite/sqlite3.c:27054,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - db
    - n
    argTypes:
    - sqlite3*
    - u64
    assertStmts:
    - condition: ( db!=0 )
      pos:
        line_end: 27050
        line_start: 27050
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 27057
      start: 27049
    functionDepth: 5
    functionLinenumber: 27049
    functionLinenumberEnd: 27057
    functionName: dbMallocRawFinish
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3OomFault
    - sqlite3MemdebugSetType
    - sqlite3Malloc
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: SQLITE_NOINLINE *dbMallocRawFinish(sqlite3 *db, u64 n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbMallocRawNN
      Src: /src/nss/lib/sqlite/sqlite3.c:27083,1
    - Dst: sqlite3Malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:27084,1
    - Dst: sqlite3MemdebugSetType
      Src: /src/nss/lib/sqlite/sqlite3.c:27085,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - db
    - n
    argTypes:
    - sqlite3*
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27087
      start: 27081
    functionDepth: 5
    functionLinenumber: 27081
    functionLinenumberEnd: 27087
    functionName: sqlite3DbMallocRaw
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3DbMallocRawNN
    - sqlite3MemdebugSetType
    - sqlite3Malloc
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3DbMallocRaw(sqlite3 *db, u64 n)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:27091,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:27092,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:27092,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:27093,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:27095,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:27113,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:27114,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:27114,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:27115,1
    - Dst: dbMallocRawFinish
      Src: /src/nss/lib/sqlite/sqlite3.c:27120,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 2
    argNames:
    - db
    - n
    argTypes:
    - sqlite3*
    - u64
    assertStmts:
    - condition: ( db!=0 )
      pos:
        line_end: 27090
        line_start: 27090
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( db->mallocFailed==0 )
      pos:
        line_end: 27094
        line_start: 27094
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( db->pnBytesFreed==0 )
      pos:
        line_end: 27092
        line_start: 27092
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3_mutex_held(db->mutex) )
      pos:
        line_end: 27091
        line_start: 27091
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( db!=0 )
      pos:
        line_end: 27112
        line_start: 27112
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3_mutex_held(db->mutex) )
      pos:
        line_end: 27113
        line_start: 27113
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( db->pnBytesFreed==0 )
      pos:
        line_end: 27114
        line_start: 27114
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 27121
      start: 27088
    functionDepth: 6
    functionLinenumber: 27088
    functionLinenumberEnd: 27121
    functionName: sqlite3DbMallocRawNN
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - assert
    - sqlite3_mutex_held
    - dbMallocRawFinish
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3DbMallocRawNN(sqlite3 *db, u64 n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:27131,1
    - Dst: sqlite3DbMallocRawNN
      Src: /src/nss/lib/sqlite/sqlite3.c:27132,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:27133,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:27133,1
    - Dst: isLookaside
      Src: /src/nss/lib/sqlite/sqlite3.c:27134,1
    - Dst: dbReallocFinish
      Src: /src/nss/lib/sqlite/sqlite3.c:27135,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - db
    - p
    - n
    argTypes:
    - sqlite3*
    - void*
    - u64
    assertStmts:
    - condition: ( db!=0 )
      pos:
        line_end: 27130
        line_start: 27130
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3_mutex_held(db->mutex) )
      pos:
        line_end: 27132
        line_start: 27132
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 27136
      start: 27130
    functionDepth: 7
    functionLinenumber: 27130
    functionLinenumberEnd: 27136
    functionName: sqlite3DbRealloc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - isLookaside
    - sqlite3DbMallocRawNN
    - assert
    - sqlite3_mutex_held
    - dbReallocFinish
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3DbRealloc(sqlite3 *db, void *p, u64 n)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:27139,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:27140,1
    - Dst: isLookaside
      Src: /src/nss/lib/sqlite/sqlite3.c:27142,1
    - Dst: sqlite3DbMallocRawNN
      Src: /src/nss/lib/sqlite/sqlite3.c:27143,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:27145,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:27146,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:27149,1
    - Dst: sqlite3MemdebugHasType
      Src: /src/nss/lib/sqlite/sqlite3.c:27149,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:27150,1
    - Dst: sqlite3MemdebugNoType
      Src: /src/nss/lib/sqlite/sqlite3.c:27150,1
    - Dst: sqlite3MemdebugSetType
      Src: /src/nss/lib/sqlite/sqlite3.c:27151,1
    - Dst: sqlite3_realloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:27152,1
    - Dst: sqlite3OomFault
      Src: /src/nss/lib/sqlite/sqlite3.c:27154,1
    - Dst: sqlite3MemdebugSetType
      Src: /src/nss/lib/sqlite/sqlite3.c:27156,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - db
    - p
    - n
    argTypes:
    - sqlite3*
    - void*
    - u64
    assertStmts:
    - condition: ( db!=0 )
      pos:
        line_end: 27138
        line_start: 27138
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p!=0 )
      pos:
        line_end: 27139
        line_start: 27139
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3MemdebugHasType(p, (MEMTYPE_LOOKASIDE|MEMTYPE_HEAP)) )
      pos:
        line_end: 27148
        line_start: 27148
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3MemdebugNoType(p, (u8)~(MEMTYPE_LOOKASIDE|MEMTYPE_HEAP))
        )
      pos:
        line_end: 27149
        line_start: 27149
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 27161
      start: 27137
    functionDepth: 7
    functionLinenumber: 27137
    functionLinenumberEnd: 27161
    functionName: dbReallocFinish
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - memcpy
    - sqlite3MemdebugNoType
    - sqlite3MemdebugSetType
    - sqlite3DbMallocRawNN
    - sqlite3DbFree
    - sqlite3MemdebugHasType
    - assert
    - sqlite3OomFault
    - isLookaside
    - sqlite3_realloc64
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: SQLITE_NOINLINE *dbReallocFinish(sqlite3 *db, void *p, u64 n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbRealloc
      Src: /src/nss/lib/sqlite/sqlite3.c:27169,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:27171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - db
    - p
    - n
    argTypes:
    - sqlite3*
    - void*
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27174
      start: 27167
    functionDepth: 8
    functionLinenumber: 27167
    functionLinenumberEnd: 27174
    functionName: sqlite3DbReallocOrFree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbFree
    - sqlite3DbRealloc
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3DbReallocOrFree(sqlite3 *db, void *p, u64 n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:27189,1
    - Dst: sqlite3DbMallocRaw
      Src: /src/nss/lib/sqlite/sqlite3.c:27190,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:27192,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - db
    - z
    argTypes:
    - sqlite3*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27195
      start: 27183
    functionDepth: 6
    functionLinenumber: 27183
    functionLinenumberEnd: 27195
    functionName: sqlite3DbStrDup
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbMallocRaw
    - memcpy
    - strlen
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3DbStrDup(sqlite3 *db, const char *z)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:27198,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:27202,1
    - Dst: sqlite3DbMallocRawNN
      Src: /src/nss/lib/sqlite/sqlite3.c:27203,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:27205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - db
    - z
    - n
    argTypes:
    - sqlite3*
    - char*
    - u64
    assertStmts:
    - condition: ( db!=0 )
      pos:
        line_end: 27197
        line_start: 27197
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (n&0x7fffffff)==n )
      pos:
        line_end: 27201
        line_start: 27201
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 27209
      start: 27196
    functionDepth: 7
    functionLinenumber: 27196
    functionLinenumberEnd: 27209
    functionName: sqlite3DbStrNDup
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3DbMallocRawNN
    - memcpy
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3DbStrNDup(sqlite3 *db, const char *z, u64 n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Isspace
      Src: /src/nss/lib/sqlite/sqlite3.c:27218,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:27220,1
    - Dst: sqlite3Isspace
      Src: /src/nss/lib/sqlite/sqlite3.c:27220,1
    - Dst: sqlite3DbStrNDup
      Src: /src/nss/lib/sqlite/sqlite3.c:27221,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - db
    - zStart
    - zEnd
    argTypes:
    - sqlite3*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27222
      start: 27216
    functionDepth: 8
    functionLinenumber: 27216
    functionLinenumberEnd: 27222
    functionName: sqlite3DbSpanDup
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbStrNDup
    - ALWAYS
    - sqlite3Isspace
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3DbSpanDup(sqlite3 *db, const char *zStart, const
      char *zEnd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:27228,1
    - Dst: sqlite3DbStrDup
      Src: /src/nss/lib/sqlite/sqlite3.c:27229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - pz
    - db
    - zNew
    argTypes:
    - char**
    - sqlite3*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27230
      start: 27227
    functionDepth: 7
    functionLinenumber: 27227
    functionLinenumberEnd: 27230
    functionName: sqlite3SetString
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbStrDup
    - sqlite3DbFree
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3SetString(char **pz, sqlite3 *db, const char
      *zNew)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27249
      start: 27238
    functionDepth: 0
    functionLinenumber: 27238
    functionLinenumberEnd: 27249
    functionName: sqlite3OomFault
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OomFault(sqlite3 *db)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:27262,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts:
    - condition: ( db->lookaside.bDisable>0 )
      pos:
        line_end: 27261
        line_start: 27261
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 27265
      start: 27258
    functionDepth: 0
    functionLinenumber: 27258
    functionLinenumberEnd: 27265
    functionName: sqlite3OomClear
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OomClear(sqlite3 *db)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3OomClear
      Src: /src/nss/lib/sqlite/sqlite3.c:27271,1
    - Dst: sqlite3Error
      Src: /src/nss/lib/sqlite/sqlite3.c:27272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27274
      start: 27270
    functionDepth: 1
    functionLinenumber: 27270
    functionLinenumberEnd: 27274
    functionName: apiOomError
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Error
    - sqlite3OomClear
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: SQLITE_NOINLINE apiOomError(sqlite3 *db)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:27293,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:27294,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:27294,1
    - Dst: apiOomError
      Src: /src/nss/lib/sqlite/sqlite3.c:27296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - db
    - rc
    argTypes:
    - sqlite3*
    - int
    assertStmts:
    - condition: ( db!=0 )
      pos:
        line_end: 27292
        line_start: 27292
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3_mutex_held(db->mutex) )
      pos:
        line_end: 27293
        line_start: 27293
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 27299
      start: 27288
    functionDepth: 2
    functionLinenumber: 27288
    functionLinenumberEnd: 27299
    functionName: sqlite3ApiExit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_mutex_held
    - apiOomError
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ApiExit(sqlite3* db, int rc)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - val
    - cnt
    argTypes:
    - LONGDOUBLE_TYPE*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27438
      start: 27428
    functionDepth: 0
    functionLinenumber: 27428
    functionLinenumberEnd: 27438
    functionName: et_getdigit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char et_getdigit(LONGDOUBLE_TYPE *val, int *cnt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:27445,1
    - Dst: sqlite3_str_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:27447,1
    - Dst: sqlite3ErrorToParser
      Src: /src/nss/lib/sqlite/sqlite3.c:27448,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - p
    - eError
    argTypes:
    - StrAccum*
    - u8
    assertStmts:
    - condition: ( eError==SQLITE_NOMEM || eError==SQLITE_TOOBIG )
      pos:
        line_end: 27444
        line_start: 27444
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 27449
      start: 27444
    functionDepth: 1
    functionLinenumber: 27444
    functionLinenumberEnd: 27449
    functionName: setStrAccumError
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3ErrorToParser
    - sqlite3_str_reset
    linkageType: ''
    returnType: void
    signature: void setStrAccumError(StrAccum *p, u8 eError)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:27456,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - PrintfArguments*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27457
      start: 27454
    functionDepth: 0
    functionLinenumber: 27454
    functionLinenumberEnd: 27457
    functionName: getIntArg
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_value_int64
    linkageType: ''
    returnType: sqlite3_int64
    signature: sqlite3_int64 getIntArg(PrintfArguments *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_double
      Src: /src/nss/lib/sqlite/sqlite3.c:27460,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - PrintfArguments*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27461
      start: 27458
    functionDepth: 1
    functionLinenumber: 27458
    functionLinenumberEnd: 27461
    functionName: getDoubleArg
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_value_double
    linkageType: ''
    returnType: double
    signature: double getDoubleArg(PrintfArguments *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:27464,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - PrintfArguments*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27465
      start: 27462
    functionDepth: 1
    functionLinenumber: 27462
    functionLinenumberEnd: 27465
    functionName: getTextArg
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_value_text
    linkageType: ''
    returnType: char
    signature: char *getTextArg(PrintfArguments *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setStrAccumError
      Src: /src/nss/lib/sqlite/sqlite3.c:27480,1
    - Dst: sqlite3DbMallocRaw
      Src: /src/nss/lib/sqlite/sqlite3.c:27483,1
    - Dst: setStrAccumError
      Src: /src/nss/lib/sqlite/sqlite3.c:27485,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - pAccum
    - n
    argTypes:
    - sqlite3_str*
    - sqlite3_int64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27488
      start: 27476
    functionDepth: 6
    functionLinenumber: 27476
    functionLinenumberEnd: 27488
    functionName: printfTempBuf
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbMallocRaw
    - setStrAccumError
    linkageType: ''
    returnType: char
    signature: char *printfTempBuf(sqlite3_str *pAccum, sqlite3_int64 n)
  - BBCount: 136
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:27543,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:27547,1
    - Dst: strchrnul
      Src: /src/nss/lib/sqlite/sqlite3.c:27556,1
    - Dst: sqlite3_str_append
      Src: /src/nss/lib/sqlite/sqlite3.c:27560,1
    - Dst: sqlite3_str_append
      Src: /src/nss/lib/sqlite/sqlite3.c:27564,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:27600,1
    - Dst: getIntArg
      Src: /src/nss/lib/sqlite/sqlite3.c:27616,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:27618,1
    - Dst: getIntArg
      Src: /src/nss/lib/sqlite/sqlite3.c:27639,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:27641,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:27653,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:27674,1
    - Dst: getIntArg
      Src: /src/nss/lib/sqlite/sqlite3.c:27712,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:27715,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:27717,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:27720,1
    - Dst: getIntArg
      Src: /src/nss/lib/sqlite/sqlite3.c:27735,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:27738,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:27740,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:27743,1
    - Dst: printfTempBuf
      Src: /src/nss/lib/sqlite/sqlite3.c:27758,1
    - Dst: getDoubleArg
      Src: /src/nss/lib/sqlite/sqlite3.c:27812,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:27814,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:27827,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:27835,1
    - Dst: sqlite3IsNaN
      Src: /src/nss/lib/sqlite/sqlite3.c:27842,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:27858,1
    - Dst: MAX
      Src: /src/nss/lib/sqlite/sqlite3.c:27890,1
    - Dst: printfTempBuf
      Src: /src/nss/lib/sqlite/sqlite3.c:27892,1
    - Dst: et_getdigit
      Src: /src/nss/lib/sqlite/sqlite3.c:27908,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:27918,1
    - Dst: et_getdigit
      Src: /src/nss/lib/sqlite/sqlite3.c:27923,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:27928,1
    - Dst: getTextArg
      Src: /src/nss/lib/sqlite/sqlite3.c:27987,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:28000,1
    - Dst: sqlite3_str_appendchar
      Src: /src/nss/lib/sqlite/sqlite3.c:28024,1
    - Dst: sqlite3_str_append
      Src: /src/nss/lib/sqlite/sqlite3.c:28028,1
    - Dst: getTextArg
      Src: /src/nss/lib/sqlite/sqlite3.c:28037,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:28040,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:28054,1
    - Dst: sqlite3DbMallocSize
      Src: /src/nss/lib/sqlite/sqlite3.c:28056,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:28057,1
    - Dst: SQLITE_SKIP_UTF8
      Src: /src/nss/lib/sqlite/sqlite3.c:28070,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:28077,1
    - Dst: getTextArg
      Src: /src/nss/lib/sqlite/sqlite3.c:28096,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:28098,1
    - Dst: printfTempBuf
      Src: /src/nss/lib/sqlite/sqlite3.c:28117,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:28137,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:28138,1
    - Dst: sqlite3_str_append
      Src: /src/nss/lib/sqlite/sqlite3.c:28140,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:28150,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:28151,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:28153,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:28154,1
    - Dst: sqlite3_str_appendall
      Src: /src/nss/lib/sqlite/sqlite3.c:28156,1
    - Dst: sqlite3_str_append
      Src: /src/nss/lib/sqlite/sqlite3.c:28157,1
    - Dst: sqlite3_str_appendall
      Src: /src/nss/lib/sqlite/sqlite3.c:28159,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:28164,1
    - Dst: sqlite3_str_appendchar
      Src: /src/nss/lib/sqlite/sqlite3.c:28178,1
    - Dst: sqlite3_str_append
      Src: /src/nss/lib/sqlite/sqlite3.c:28179,1
    - Dst: sqlite3_str_appendchar
      Src: /src/nss/lib/sqlite/sqlite3.c:28180,1
    - Dst: sqlite3_str_append
      Src: /src/nss/lib/sqlite/sqlite3.c:28182,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:28186,1
    CyclomaticComplexity: 188
    EdgeCount: 188
    ICount: 613
    argCount: 3
    argNames:
    - pAccum
    - fmt
    - ap
    argTypes:
    - sqlite3_str*
    - char*
    - va_list
    assertStmts:
    - condition: ( k>=0 && k<pSrc->nSrc )
      pos:
        line_end: 28153
        line_start: 28153
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pAccum->printfFlags&SQLITE_PRINTF_MALLOCED)==0 )
      pos:
        line_end: 28053
        line_start: 28053
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pAccum->nChar>0 || (pAccum->printfFlags&SQLITE_PRINTF_MALLOCED)==0
        )
      pos:
        line_end: 27542
        line_start: 27542
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( bArgList==0 )
      pos:
        line_end: 28152
        line_start: 28152
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( precision>0 )
      pos:
        line_end: 27917
        line_start: 27917
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( bArgList==0 )
      pos:
        line_end: 28137
        line_start: 28137
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( bufpt>zOut )
      pos:
        line_end: 27927
        line_start: 27927
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( xtype==etINVALID )
      pos:
        line_end: 28163
        line_start: 28163
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 28190
      start: 27502
    functionDepth: 7
    functionLinenumber: 27502
    functionLinenumberEnd: 28190
    functionName: sqlite3_str_vappendf
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_str_append
    - sqlite3_str_appendchar
    - SQLITE_SKIP_UTF8
    - testcase
    - strlen
    - memcpy
    - strchrnul
    - assert
    - sqlite3IsNaN
    - va_arg
    - sqlite3_str_appendall
    - getTextArg
    - getDoubleArg
    - sqlite3DbFree
    - ArraySize
    - MAX
    - getIntArg
    - sqlite3DbMallocSize
    - printfTempBuf
    - et_getdigit
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_str_vappendf(\n  sqlite3_str *pAccum,       /*
      Accumulate results here */\n  const char *fmt,           /* Format string */\n
      \ va_list ap                 /* arguments */\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:28201,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:28203,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:28204,1
    - Dst: setStrAccumError
      Src: /src/nss/lib/sqlite/sqlite3.c:28208,1
    - Dst: isMalloced
      Src: /src/nss/lib/sqlite/sqlite3.c:28211,1
    - Dst: sqlite3_str_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:28220,1
    - Dst: setStrAccumError
      Src: /src/nss/lib/sqlite/sqlite3.c:28221,1
    - Dst: sqlite3DbRealloc
      Src: /src/nss/lib/sqlite/sqlite3.c:28227,1
    - Dst: sqlite3_realloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:28229,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:28232,1
    - Dst: isMalloced
      Src: /src/nss/lib/sqlite/sqlite3.c:28233,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:28233,1
    - Dst: sqlite3DbMallocSize
      Src: /src/nss/lib/sqlite/sqlite3.c:28235,1
    - Dst: sqlite3_str_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:28238,1
    - Dst: setStrAccumError
      Src: /src/nss/lib/sqlite/sqlite3.c:28239,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 2
    argNames:
    - p
    - N
    argTypes:
    - StrAccum*
    - int
    assertStmts:
    - condition: ( p->nChar+(i64)N >= p->nAlloc )
      pos:
        line_end: 28200
        line_start: 28200
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->zText!=0 || p->nChar==0 )
      pos:
        line_end: 28231
        line_start: 28231
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 28244
      start: 28199
    functionDepth: 8
    functionLinenumber: 28199
    functionLinenumberEnd: 28244
    functionName: sqlite3StrAccumEnlarge
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - sqlite3_str_reset
    - sqlite3DbMallocSize
    - assert
    - isMalloced
    - sqlite3DbRealloc
    - testcase
    - sqlite3_realloc64
    - setStrAccumError
    linkageType: ''
    returnType: int
    signature: int sqlite3StrAccumEnlarge(StrAccum *p, int N)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:28250,1
    - Dst: sqlite3StrAccumEnlarge
      Src: /src/nss/lib/sqlite/sqlite3.c:28251,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - p
    - N
    - c
    argTypes:
    - sqlite3_str*
    - int
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28255
      start: 28249
    functionDepth: 9
    functionLinenumber: 28249
    functionLinenumberEnd: 28255
    functionName: sqlite3_str_appendchar
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - testcase
    - sqlite3StrAccumEnlarge
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_str_appendchar(sqlite3_str *p, int N, char c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3StrAccumEnlarge
      Src: /src/nss/lib/sqlite/sqlite3.c:28266,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:28268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - p
    - z
    - N
    argTypes:
    - StrAccum*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28271
      start: 28265
    functionDepth: 9
    functionLinenumber: 28265
    functionLinenumberEnd: 28271
    functionName: SQLITE_NOINLINE::enlargeAndAppend
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - sqlite3StrAccumEnlarge
    linkageType: ''
    returnType: void
    signature: void SQLITE_NOINLINE enlargeAndAppend(StrAccum *p, const char *z, int
      N)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:28278,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:28279,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:28280,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:28281,1
    - Dst: enlargeAndAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:28283,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:28285,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:28287,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 3
    argNames:
    - p
    - z
    - N
    argTypes:
    - sqlite3_str*
    - char*
    - int
    assertStmts:
    - condition: ( z!=0 || N==0 )
      pos:
        line_end: 28277
        line_start: 28277
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( N>=0 )
      pos:
        line_end: 28279
        line_start: 28279
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->zText!=0 || p->nChar==0 || p->accError )
      pos:
        line_end: 28278
        line_start: 28278
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->accError==0 || p->nAlloc==0 || p->mxAlloc==0 )
      pos:
        line_end: 28280
        line_start: 28280
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->zText )
      pos:
        line_end: 28284
        line_start: 28284
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 28289
      start: 28277
    functionDepth: 1
    functionLinenumber: 28277
    functionLinenumberEnd: 28289
    functionName: sqlite3_str_append
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - memcpy
    - enlargeAndAppend
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_str_append(sqlite3_str *p, const char *z, int N)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_str_append
      Src: /src/nss/lib/sqlite/sqlite3.c:28295,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:28295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - z
    argTypes:
    - sqlite3_str*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28296
      start: 28294
    functionDepth: 2
    functionLinenumber: 28294
    functionLinenumberEnd: 28296
    functionName: sqlite3_str_appendall
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_str_append
    - sqlite3Strlen30
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_str_appendall(sqlite3_str *p, const char *z)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:28306,1
    - Dst: isMalloced
      Src: /src/nss/lib/sqlite/sqlite3.c:28306,1
    - Dst: sqlite3DbMallocRaw
      Src: /src/nss/lib/sqlite/sqlite3.c:28307,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:28309,1
    - Dst: setStrAccumError
      Src: /src/nss/lib/sqlite/sqlite3.c:28312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - p
    argTypes:
    - StrAccum*
    assertStmts:
    - condition: ( p->mxAlloc>0 && !isMalloced(p) )
      pos:
        line_end: 28305
        line_start: 28305
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 28316
      start: 28304
    functionDepth: 6
    functionLinenumber: 28304
    functionLinenumberEnd: 28316
    functionName: strAccumFinishRealloc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - assert
    - isMalloced
    - sqlite3DbMallocRaw
    - setStrAccumError
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: SQLITE_NOINLINE *strAccumFinishRealloc(StrAccum *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isMalloced
      Src: /src/nss/lib/sqlite/sqlite3.c:28320,1
    - Dst: strAccumFinishRealloc
      Src: /src/nss/lib/sqlite/sqlite3.c:28321,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - StrAccum*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28325
      start: 28317
    functionDepth: 7
    functionLinenumber: 28317
    functionLinenumberEnd: 28325
    functionName: sqlite3StrAccumFinish
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - strAccumFinishRealloc
    - isMalloced
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3StrAccumFinish(StrAccum *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3StrAccumFinish
      Src: /src/nss/lib/sqlite/sqlite3.c:28342,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:28343,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_str*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28348
      start: 28339
    functionDepth: 8
    functionLinenumber: 28339
    functionLinenumberEnd: 28348
    functionName: sqlite3_str_finish
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3StrAccumFinish
    - sqlite3_free
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *sqlite3_str_finish(sqlite3_str *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_str*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28353
      start: 28351
    functionDepth: 0
    functionLinenumber: 28351
    functionLinenumberEnd: 28353
    functionName: sqlite3_str_errcode
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_str_errcode(sqlite3_str *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_str*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28358
      start: 28356
    functionDepth: 0
    functionLinenumber: 28356
    functionLinenumberEnd: 28358
    functionName: sqlite3_str_length
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_str_length(sqlite3_str *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_str*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28365
      start: 28361
    functionDepth: 0
    functionLinenumber: 28361
    functionLinenumberEnd: 28365
    functionName: sqlite3_str_value
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *sqlite3_str_value(sqlite3_str *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isMalloced
      Src: /src/nss/lib/sqlite/sqlite3.c:28371,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:28372,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - StrAccum*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28378
      start: 28370
    functionDepth: 6
    functionLinenumber: 28370
    functionLinenumberEnd: 28378
    functionName: sqlite3_str_reset
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3DbFree
    - isMalloced
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_str_reset(StrAccum *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - p
    - db
    - zBase
    - n
    - mx
    argTypes:
    - StrAccum*
    - sqlite3*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28402
      start: 28394
    functionDepth: 0
    functionLinenumber: 28394
    functionLinenumberEnd: 28402
    functionName: sqlite3StrAccumInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3StrAccumInit(StrAccum *p, sqlite3 *db, char *zBase,
      int n, int mx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:28406,1
    - Dst: sqlite3StrAccumInit
      Src: /src/nss/lib/sqlite/sqlite3.c:28408,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28414
      start: 28405
    functionDepth: 6
    functionLinenumber: 28405
    functionLinenumberEnd: 28414
    functionName: sqlite3_str *sqlite3_str_new(sqlite3 *db)
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3StrAccumInit
    - sqlite3_malloc64
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_str *sqlite3_str_new(sqlite3 *db)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:28424,1
    - Dst: sqlite3StrAccumInit
      Src: /src/nss/lib/sqlite/sqlite3.c:28425,1
    - Dst: sqlite3_str_vappendf
      Src: /src/nss/lib/sqlite/sqlite3.c:28428,1
    - Dst: sqlite3StrAccumFinish
      Src: /src/nss/lib/sqlite/sqlite3.c:28429,1
    - Dst: sqlite3OomFault
      Src: /src/nss/lib/sqlite/sqlite3.c:28431,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - db
    - zFormat
    - ap
    argTypes:
    - sqlite3*
    - char*
    - va_list
    assertStmts:
    - condition: ( db!=0 )
      pos:
        line_end: 28423
        line_start: 28423
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 28434
      start: 28420
    functionDepth: 8
    functionLinenumber: 28420
    functionLinenumberEnd: 28434
    functionName: sqlite3VMPrintf
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_str_vappendf
    - sqlite3StrAccumInit
    - sqlite3StrAccumFinish
    - assert
    - sqlite3OomFault
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3VMPrintf(sqlite3 *db, const char *zFormat, va_list
      ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/nss/lib/sqlite/sqlite3.c:28443,1
    - Dst: sqlite3VMPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:28444,1
    - Dst: va_end
      Src: /src/nss/lib/sqlite/sqlite3.c:28445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - db
    - zFormat
    argTypes:
    - sqlite3*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28447
      start: 28440
    functionDepth: 9
    functionLinenumber: 28440
    functionLinenumberEnd: 28447
    functionName: sqlite3MPrintf
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - va_end
    - va_start
    - sqlite3VMPrintf
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3MPrintf(sqlite3 *db, const char *zFormat, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_initialize
      Src: /src/nss/lib/sqlite/sqlite3.c:28465,1
    - Dst: sqlite3StrAccumInit
      Src: /src/nss/lib/sqlite/sqlite3.c:28467,1
    - Dst: sqlite3_str_vappendf
      Src: /src/nss/lib/sqlite/sqlite3.c:28468,1
    - Dst: sqlite3StrAccumFinish
      Src: /src/nss/lib/sqlite/sqlite3.c:28469,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - zFormat
    - ap
    argTypes:
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28471
      start: 28453
    functionDepth: 8
    functionLinenumber: 28453
    functionLinenumberEnd: 28471
    functionName: sqlite3_vmprintf
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3StrAccumFinish
    - sqlite3_str_vappendf
    - sqlite3StrAccumInit
    - sqlite3_initialize
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *sqlite3_vmprintf(const char *zFormat, va_list ap)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_initialize
      Src: /src/nss/lib/sqlite/sqlite3.c:28481,1
    - Dst: va_start
      Src: /src/nss/lib/sqlite/sqlite3.c:28483,1
    - Dst: sqlite3_vmprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:28484,1
    - Dst: va_end
      Src: /src/nss/lib/sqlite/sqlite3.c:28485,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - zFormat
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28487
      start: 28477
    functionDepth: 9
    functionLinenumber: 28477
    functionLinenumberEnd: 28487
    functionName: sqlite3_mprintf
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 14
    functionsReached:
    - va_start
    - sqlite3_vmprintf
    - sqlite3_initialize
    - va_end
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *sqlite3_mprintf(const char *zFormat, ...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3StrAccumInit
      Src: /src/nss/lib/sqlite/sqlite3.c:28512,1
    - Dst: sqlite3_str_vappendf
      Src: /src/nss/lib/sqlite/sqlite3.c:28513,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - n
    - zBuf
    - zFormat
    - ap
    argTypes:
    - int
    - char*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28516
      start: 28502
    functionDepth: 8
    functionLinenumber: 28502
    functionLinenumberEnd: 28516
    functionName: sqlite3_vsnprintf
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_str_vappendf
    - sqlite3StrAccumInit
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *sqlite3_vsnprintf(int n, char *zBuf, const char *zFormat,
      va_list ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/nss/lib/sqlite/sqlite3.c:28520,1
    - Dst: sqlite3_vsnprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:28521,1
    - Dst: va_end
      Src: /src/nss/lib/sqlite/sqlite3.c:28522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - n
    - zBuf
    - zFormat
    argTypes:
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28524
      start: 28517
    functionDepth: 9
    functionLinenumber: 28517
    functionLinenumberEnd: 28524
    functionName: sqlite3_snprintf
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 4
    functionsReached:
    - va_end
    - sqlite3_vsnprintf
    - va_start
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *sqlite3_snprintf(int n, char *zBuf, const char *zFormat,
      ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3StrAccumInit
      Src: /src/nss/lib/sqlite/sqlite3.c:28544,1
    - Dst: sqlite3_str_vappendf
      Src: /src/nss/lib/sqlite/sqlite3.c:28545,1
    - Dst: xLog
      Src: /src/nss/lib/sqlite/sqlite3.c:28546,1
    - Dst: sqlite3StrAccumFinish
      Src: /src/nss/lib/sqlite/sqlite3.c:28547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - iErrCode
    - zFormat
    - ap
    argTypes:
    - int
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28548
      start: 28540
    functionDepth: 8
    functionLinenumber: 28540
    functionLinenumberEnd: 28548
    functionName: renderLogMsg
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3StrAccumFinish
    - sqlite3_str_vappendf
    - sqlite3StrAccumInit
    - xLog
    linkageType: ''
    returnType: void
    signature: void renderLogMsg(int iErrCode, const char *zFormat, va_list ap)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/nss/lib/sqlite/sqlite3.c:28556,1
    - Dst: renderLogMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:28557,1
    - Dst: va_end
      Src: /src/nss/lib/sqlite/sqlite3.c:28558,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - iErrCode
    - zFormat
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28560
      start: 28553
    functionDepth: 9
    functionLinenumber: 28553
    functionLinenumberEnd: 28560
    functionName: sqlite3_log
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 4
    functionsReached:
    - va_end
    - va_start
    - renderLogMsg
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_log(int iErrCode, const char *zFormat, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3StrAccumInit
      Src: /src/nss/lib/sqlite/sqlite3.c:28572,1
    - Dst: va_start
      Src: /src/nss/lib/sqlite/sqlite3.c:28573,1
    - Dst: sqlite3_str_vappendf
      Src: /src/nss/lib/sqlite/sqlite3.c:28574,1
    - Dst: va_end
      Src: /src/nss/lib/sqlite/sqlite3.c:28575,1
    - Dst: sqlite3StrAccumFinish
      Src: /src/nss/lib/sqlite/sqlite3.c:28576,1
    - Dst: SQLITE_OS_TRACE_PROC
      Src: /src/nss/lib/sqlite/sqlite3.c:28580,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:28583,1
    - Dst: fflush
      Src: /src/nss/lib/sqlite/sqlite3.c:28584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - zFormat
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28586
      start: 28568
    functionDepth: 8
    functionLinenumber: 28568
    functionLinenumberEnd: 28586
    functionName: sqlite3DebugPrintf
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_str_vappendf
    - va_end
    - SQLITE_OS_TRACE_PROC
    - sqlite3StrAccumFinish
    - sqlite3StrAccumInit
    - fprintf
    - va_start
    - fflush
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3DebugPrintf(const char *zFormat, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/nss/lib/sqlite/sqlite3.c:28596,1
    - Dst: sqlite3_str_vappendf
      Src: /src/nss/lib/sqlite/sqlite3.c:28597,1
    - Dst: va_end
      Src: /src/nss/lib/sqlite/sqlite3.c:28598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - p
    - zFormat
    argTypes:
    - StrAccum*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28599
      start: 28594
    functionDepth: 8
    functionLinenumber: 28594
    functionLinenumberEnd: 28599
    functionName: sqlite3_str_appendf
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_str_vappendf
    - va_end
    - va_start
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_str_appendf(StrAccum *p, const char *zFormat, ...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:28631,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:28633,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:28637,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - p
    - moreToFollow
    argTypes:
    - TreeView*
    - u8
    assertStmts:
    - condition: ( moreToFollow==0 || moreToFollow==1 )
      pos:
        line_end: 28636
        line_start: 28636
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 28640
      start: 28629
    functionDepth: 6
    functionLinenumber: 28629
    functionLinenumberEnd: 28640
    functionName: sqlite3TreeViewPush
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - assert
    - sqlite3_malloc64
    linkageType: ''
    returnType: TreeView
    signature: TreeView *sqlite3TreeViewPush(TreeView *p, u8 moreToFollow)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:28648,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - TreeView*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28649
      start: 28645
    functionDepth: 3
    functionLinenumber: 28645
    functionLinenumberEnd: 28649
    functionName: sqlite3TreeViewPop
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void sqlite3TreeViewPop(TreeView *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3StrAccumInit
      Src: /src/nss/lib/sqlite/sqlite3.c:28660,1
    - Dst: sqlite3_str_append
      Src: /src/nss/lib/sqlite/sqlite3.c:28663,1
    - Dst: sqlite3_str_append
      Src: /src/nss/lib/sqlite/sqlite3.c:28665,1
    - Dst: va_start
      Src: /src/nss/lib/sqlite/sqlite3.c:28668,1
    - Dst: sqlite3_str_vappendf
      Src: /src/nss/lib/sqlite/sqlite3.c:28669,1
    - Dst: va_end
      Src: /src/nss/lib/sqlite/sqlite3.c:28670,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:28671,1
    - Dst: sqlite3_str_append
      Src: /src/nss/lib/sqlite/sqlite3.c:28672,1
    - Dst: sqlite3StrAccumFinish
      Src: /src/nss/lib/sqlite/sqlite3.c:28674,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:28675,1
    - Dst: fflush
      Src: /src/nss/lib/sqlite/sqlite3.c:28676,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - p
    - zFormat
    argTypes:
    - TreeView*
    - char*
    assertStmts:
    - condition: ( acc.nChar>0 )
      pos:
        line_end: 28670
        line_start: 28670
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 28677
      start: 28655
    functionDepth: 8
    functionLinenumber: 28655
    functionLinenumberEnd: 28677
    functionName: sqlite3TreeViewLine
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_str_append
    - sqlite3_str_vappendf
    - va_end
    - sqlite3StrAccumInit
    - sqlite3StrAccumFinish
    - assert
    - fprintf
    - va_start
    - fflush
    linkageType: ''
    returnType: void
    signature: void sqlite3TreeViewLine(TreeView *p, const char *zFormat, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3TreeViewPush
      Src: /src/nss/lib/sqlite/sqlite3.c:28683,1
    - Dst: sqlite3TreeViewLine
      Src: /src/nss/lib/sqlite/sqlite3.c:28684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - p
    - zLabel
    - moreFollows
    argTypes:
    - TreeView*
    - char*
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28685
      start: 28682
    functionDepth: 9
    functionLinenumber: 28682
    functionLinenumberEnd: 28685
    functionName: sqlite3TreeViewItem
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3TreeViewPush
    - sqlite3TreeViewLine
    linkageType: ''
    returnType: void
    signature: void sqlite3TreeViewItem(TreeView *p, const char *zLabel,u8 moreFollows)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3TreeViewLine
      Src: /src/nss/lib/sqlite/sqlite3.c:28695,1
    - Dst: sqlite3TreeViewLine
      Src: /src/nss/lib/sqlite/sqlite3.c:28697,1
    - Dst: sqlite3TreeViewPush
      Src: /src/nss/lib/sqlite/sqlite3.c:28700,1
    - Dst: sqlite3StrAccumInit
      Src: /src/nss/lib/sqlite/sqlite3.c:28705,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:28706,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:28711,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:28714,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:28716,1
    - Dst: sqlite3StrAccumFinish
      Src: /src/nss/lib/sqlite/sqlite3.c:28717,1
    - Dst: sqlite3TreeViewItem
      Src: /src/nss/lib/sqlite/sqlite3.c:28718,1
    - Dst: sqlite3TreeViewSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:28719,1
    - Dst: sqlite3TreeViewPop
      Src: /src/nss/lib/sqlite/sqlite3.c:28720,1
    - Dst: sqlite3TreeViewPop
      Src: /src/nss/lib/sqlite/sqlite3.c:28722,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 3
    argNames:
    - pView
    - pWith
    - moreToFollow
    argTypes:
    - TreeView*
    - With*
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28724
      start: 28690
    functionDepth: 10
    functionLinenumber: 28690
    functionLinenumberEnd: 28724
    functionName: sqlite3TreeViewWith
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3TreeViewPush
    - sqlite3TreeViewSelect
    - sqlite3StrAccumFinish
    - sqlite3StrAccumInit
    - sqlite3TreeViewLine
    - sqlite3TreeViewPop
    - sqlite3_str_appendf
    - sqlite3TreeViewItem
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3TreeViewWith(TreeView *pView, const With *pWith,
      u8 moreToFollow)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3StrAccumInit
      Src: /src/nss/lib/sqlite/sqlite3.c:28735,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:28736,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:28738,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:28740,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:28743,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:28747,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:28750,1
    - Dst: sqlite3StrAccumFinish
      Src: /src/nss/lib/sqlite/sqlite3.c:28752,1
    - Dst: sqlite3TreeViewItem
      Src: /src/nss/lib/sqlite/sqlite3.c:28753,1
    - Dst: sqlite3TreeViewSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:28755,1
    - Dst: sqlite3TreeViewExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:28758,1
    - Dst: sqlite3TreeViewPop
      Src: /src/nss/lib/sqlite/sqlite3.c:28760,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - pView
    - pSrc
    argTypes:
    - TreeView*
    - SrcList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28762
      start: 28729
    functionDepth: 10
    functionLinenumber: 28729
    functionLinenumberEnd: 28762
    functionName: sqlite3TreeViewSrcList
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3TreeViewSelect
    - sqlite3StrAccumFinish
    - sqlite3StrAccumInit
    - sqlite3TreeViewExprList
    - sqlite3TreeViewPop
    - sqlite3_str_appendf
    - sqlite3TreeViewItem
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3TreeViewSrcList(TreeView *pView, const SrcList
      *pSrc)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3TreeViewLine
      Src: /src/nss/lib/sqlite/sqlite3.c:28771,1
    - Dst: sqlite3TreeViewPush
      Src: /src/nss/lib/sqlite/sqlite3.c:28774,1
    - Dst: sqlite3TreeViewWith
      Src: /src/nss/lib/sqlite/sqlite3.c:28776,1
    - Dst: sqlite3TreeViewPush
      Src: /src/nss/lib/sqlite/sqlite3.c:28778,1
    - Dst: sqlite3TreeViewLine
      Src: /src/nss/lib/sqlite/sqlite3.c:28781,1
    - Dst: sqlite3TreeViewPop
      Src: /src/nss/lib/sqlite/sqlite3.c:28788,1
    - Dst: sqlite3TreeViewExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:28804,1
    - Dst: sqlite3TreeViewPush
      Src: /src/nss/lib/sqlite/sqlite3.c:28808,1
    - Dst: sqlite3TreeViewLine
      Src: /src/nss/lib/sqlite/sqlite3.c:28809,1
    - Dst: sqlite3TreeViewWinFunc
      Src: /src/nss/lib/sqlite/sqlite3.c:28811,1
    - Dst: sqlite3TreeViewPop
      Src: /src/nss/lib/sqlite/sqlite3.c:28813,1
    - Dst: sqlite3TreeViewPush
      Src: /src/nss/lib/sqlite/sqlite3.c:28817,1
    - Dst: sqlite3TreeViewLine
      Src: /src/nss/lib/sqlite/sqlite3.c:28818,1
    - Dst: sqlite3TreeViewSrcList
      Src: /src/nss/lib/sqlite/sqlite3.c:28819,1
    - Dst: sqlite3TreeViewPop
      Src: /src/nss/lib/sqlite/sqlite3.c:28820,1
    - Dst: sqlite3TreeViewItem
      Src: /src/nss/lib/sqlite/sqlite3.c:28823,1
    - Dst: sqlite3TreeViewExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:28824,1
    - Dst: sqlite3TreeViewPop
      Src: /src/nss/lib/sqlite/sqlite3.c:28825,1
    - Dst: sqlite3TreeViewExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:28828,1
    - Dst: sqlite3TreeViewItem
      Src: /src/nss/lib/sqlite/sqlite3.c:28831,1
    - Dst: sqlite3TreeViewExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:28832,1
    - Dst: sqlite3TreeViewPop
      Src: /src/nss/lib/sqlite/sqlite3.c:28833,1
    - Dst: sqlite3TreeViewItem
      Src: /src/nss/lib/sqlite/sqlite3.c:28838,1
    - Dst: sqlite3TreeViewWindow
      Src: /src/nss/lib/sqlite/sqlite3.c:28840,1
    - Dst: sqlite3TreeViewPop
      Src: /src/nss/lib/sqlite/sqlite3.c:28842,1
    - Dst: sqlite3TreeViewExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:28846,1
    - Dst: sqlite3TreeViewItem
      Src: /src/nss/lib/sqlite/sqlite3.c:28849,1
    - Dst: sqlite3TreeViewExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:28850,1
    - Dst: sqlite3TreeViewItem
      Src: /src/nss/lib/sqlite/sqlite3.c:28852,1
    - Dst: sqlite3TreeViewExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:28853,1
    - Dst: sqlite3TreeViewPop
      Src: /src/nss/lib/sqlite/sqlite3.c:28854,1
    - Dst: sqlite3TreeViewPop
      Src: /src/nss/lib/sqlite/sqlite3.c:28856,1
    - Dst: sqlite3TreeViewItem
      Src: /src/nss/lib/sqlite/sqlite3.c:28865,1
    - Dst: sqlite3TreeViewPop
      Src: /src/nss/lib/sqlite/sqlite3.c:28869,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 101
    argCount: 3
    argNames:
    - pView
    - p
    - moreToFollow
    argTypes:
    - TreeView*
    - Select*
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28870
      start: 28767
    functionDepth: 11
    functionLinenumber: 28767
    functionLinenumberEnd: 28870
    functionName: sqlite3TreeViewSelect
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3TreeViewPush
    - sqlite3TreeViewWinFunc
    - sqlite3TreeViewSrcList
    - sqlite3TreeViewLine
    - sqlite3TreeViewExprList
    - sqlite3TreeViewPop
    - sqlite3TreeViewExpr
    - sqlite3TreeViewWith
    - sqlite3TreeViewItem
    - sqlite3TreeViewWindow
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3TreeViewSelect(TreeView *pView, const Select
      *p, u8 moreToFollow)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3TreeViewItem
      Src: /src/nss/lib/sqlite/sqlite3.c:28884,1
    - Dst: sqlite3TreeViewPop
      Src: /src/nss/lib/sqlite/sqlite3.c:28885,1
    - Dst: sqlite3TreeViewItem
      Src: /src/nss/lib/sqlite/sqlite3.c:28889,1
    - Dst: sqlite3TreeViewPop
      Src: /src/nss/lib/sqlite/sqlite3.c:28890,1
    - Dst: sqlite3TreeViewItem
      Src: /src/nss/lib/sqlite/sqlite3.c:28894,1
    - Dst: sqlite3TreeViewExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:28895,1
    - Dst: sqlite3TreeViewPop
      Src: /src/nss/lib/sqlite/sqlite3.c:28896,1
    - Dst: sqlite3TreeViewItem
      Src: /src/nss/lib/sqlite/sqlite3.c:28900,1
    - Dst: sqlite3TreeViewExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:28901,1
    - Dst: sqlite3TreeViewPop
      Src: /src/nss/lib/sqlite/sqlite3.c:28902,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 4
    argNames:
    - pView
    - eBound
    - pExpr
    - moreToFollow
    argTypes:
    - TreeView*
    - u8
    - Expr*
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28906
      start: 28876
    functionDepth: 10
    functionLinenumber: 28876
    functionLinenumberEnd: 28906
    functionName: sqlite3TreeViewBound
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3TreeViewExpr
    - sqlite3TreeViewItem
    - sqlite3TreeViewPop
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3TreeViewBound(\n  TreeView *pView,        /*
      View context */\n  u8 eBound,              /* UNBOUNDED, CURRENT, PRECEDING,
      FOLLOWING */\n  Expr *pExpr,            /* Value for PRECEDING or FOLLOWING
      */\n  u8 moreToFollow         /* True if more to follow */\n)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3TreeViewItem
      Src: /src/nss/lib/sqlite/sqlite3.c:28916,1
    - Dst: sqlite3TreeViewExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:28917,1
    - Dst: sqlite3TreeViewPop
      Src: /src/nss/lib/sqlite/sqlite3.c:28918,1
    - Dst: sqlite3TreeViewPush
      Src: /src/nss/lib/sqlite/sqlite3.c:28920,1
    - Dst: sqlite3TreeViewLine
      Src: /src/nss/lib/sqlite/sqlite3.c:28922,1
    - Dst: sqlite3TreeViewLine
      Src: /src/nss/lib/sqlite/sqlite3.c:28924,1
    - Dst: sqlite3TreeViewPush
      Src: /src/nss/lib/sqlite/sqlite3.c:28931,1
    - Dst: sqlite3TreeViewLine
      Src: /src/nss/lib/sqlite/sqlite3.c:28932,1
    - Dst: sqlite3TreeViewPop
      Src: /src/nss/lib/sqlite/sqlite3.c:28933,1
    - Dst: sqlite3TreeViewExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:28936,1
    - Dst: sqlite3TreeViewExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:28939,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:28946,1
    - Dst: sqlite3TreeViewItem
      Src: /src/nss/lib/sqlite/sqlite3.c:28948,1
    - Dst: sqlite3TreeViewBound
      Src: /src/nss/lib/sqlite/sqlite3.c:28949,1
    - Dst: sqlite3TreeViewBound
      Src: /src/nss/lib/sqlite/sqlite3.c:28950,1
    - Dst: sqlite3TreeViewPop
      Src: /src/nss/lib/sqlite/sqlite3.c:28951,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:28962,1
    - Dst: sqlite3TreeViewPush
      Src: /src/nss/lib/sqlite/sqlite3.c:28966,1
    - Dst: sqlite3TreeViewLine
      Src: /src/nss/lib/sqlite/sqlite3.c:28967,1
    - Dst: sqlite3TreeViewPop
      Src: /src/nss/lib/sqlite/sqlite3.c:28968,1
    - Dst: sqlite3TreeViewPop
      Src: /src/nss/lib/sqlite/sqlite3.c:28970,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 66
    argCount: 3
    argNames:
    - pView
    - pWin
    - more
    argTypes:
    - TreeView*
    - Window*
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28971
      start: 28913
    functionDepth: 11
    functionLinenumber: 28913
    functionLinenumberEnd: 28971
    functionName: sqlite3TreeViewWindow
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3TreeViewPush
    - sqlite3TreeViewBound
    - sqlite3TreeViewLine
    - sqlite3TreeViewExprList
    - sqlite3TreeViewPop
    - sqlite3TreeViewExpr
    - sqlite3TreeViewItem
    - sqlite3_snprintf
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3TreeViewWindow(TreeView *pView, const Window
      *pWin, u8 more)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3TreeViewPush
      Src: /src/nss/lib/sqlite/sqlite3.c:28979,1
    - Dst: sqlite3TreeViewLine
      Src: /src/nss/lib/sqlite/sqlite3.c:28980,1
    - Dst: sqlite3TreeViewWindow
      Src: /src/nss/lib/sqlite/sqlite3.c:28982,1
    - Dst: sqlite3TreeViewPop
      Src: /src/nss/lib/sqlite/sqlite3.c:28983,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - pView
    - pWin
    - more
    argTypes:
    - TreeView*
    - Window*
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28984
      start: 28978
    functionDepth: 12
    functionLinenumber: 28978
    functionLinenumberEnd: 28984
    functionName: sqlite3TreeViewWinFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3TreeViewWindow
    - sqlite3TreeViewPush
    - sqlite3TreeViewLine
    - sqlite3TreeViewPop
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3TreeViewWinFunc(TreeView *pView, const Window
      *pWin, u8 more)
  - BBCount: 74
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3TreeViewPush
      Src: /src/nss/lib/sqlite/sqlite3.c:28994,1
    - Dst: sqlite3TreeViewLine
      Src: /src/nss/lib/sqlite/sqlite3.c:28996,1
    - Dst: sqlite3TreeViewPop
      Src: /src/nss/lib/sqlite/sqlite3.c:28997,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:29001,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:29002,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:29005,1
    - Dst: sqlite3TreeViewLine
      Src: /src/nss/lib/sqlite/sqlite3.c:29012,1
    - Dst: sqlite3TreeViewLine
      Src: /src/nss/lib/sqlite/sqlite3.c:29019,1
    - Dst: sqlite3TreeViewLine
      Src: /src/nss/lib/sqlite/sqlite3.c:29021,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:29024,1
    - Dst: sqlite3TreeViewExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:29025,1
    - Dst: sqlite3TreeViewLine
      Src: /src/nss/lib/sqlite/sqlite3.c:29031,1
    - Dst: sqlite3TreeViewLine
      Src: /src/nss/lib/sqlite/sqlite3.c:29033,1
    - Dst: sqlite3TreeViewLine
      Src: /src/nss/lib/sqlite/sqlite3.c:29039,1
    - Dst: sqlite3TreeViewLine
      Src: /src/nss/lib/sqlite/sqlite3.c:29044,1
    - Dst: sqlite3TreeViewLine
      Src: /src/nss/lib/sqlite/sqlite3.c:29048,1
    - Dst: sqlite3TreeViewLine
      Src: /src/nss/lib/sqlite/sqlite3.c:29052,1
    - Dst: sqlite3ExprTruthValue
      Src: /src/nss/lib/sqlite/sqlite3.c:29053,1
    - Dst: sqlite3TreeViewLine
      Src: /src/nss/lib/sqlite/sqlite3.c:29058,1
    - Dst: sqlite3TreeViewLine
      Src: /src/nss/lib/sqlite/sqlite3.c:29063,1
    - Dst: sqlite3TreeViewLine
      Src: /src/nss/lib/sqlite/sqlite3.c:29068,1
    - Dst: sqlite3TreeViewLine
      Src: /src/nss/lib/sqlite/sqlite3.c:29072,1
    - Dst: sqlite3TreeViewLine
      Src: /src/nss/lib/sqlite/sqlite3.c:29078,1
    - Dst: sqlite3TreeViewExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:29079,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:29117,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:29118,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:29119,1
    - Dst: sqlite3ExprSkipCollate
      Src: /src/nss/lib/sqlite/sqlite3.c:29119,1
    - Dst: sqlite3ExprTruthValue
      Src: /src/nss/lib/sqlite/sqlite3.c:29120,1
    - Dst: sqlite3TreeViewLine
      Src: /src/nss/lib/sqlite/sqlite3.c:29126,1
    - Dst: sqlite3TreeViewExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:29127,1
    - Dst: sqlite3TreeViewLine
      Src: /src/nss/lib/sqlite/sqlite3.c:29132,1
    - Dst: sqlite3TreeViewExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:29133,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:29141,1
    - Dst: sqlite3TreeViewLine
      Src: /src/nss/lib/sqlite/sqlite3.c:29153,1
    - Dst: sqlite3TreeViewLine
      Src: /src/nss/lib/sqlite/sqlite3.c:29156,1
    - Dst: sqlite3TreeViewExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:29159,1
    - Dst: sqlite3TreeViewWindow
      Src: /src/nss/lib/sqlite/sqlite3.c:29163,1
    - Dst: sqlite3TreeViewLine
      Src: /src/nss/lib/sqlite/sqlite3.c:29170,1
    - Dst: sqlite3TreeViewSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:29171,1
    - Dst: sqlite3TreeViewLine
      Src: /src/nss/lib/sqlite/sqlite3.c:29175,1
    - Dst: sqlite3TreeViewSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:29176,1
    - Dst: sqlite3TreeViewLine
      Src: /src/nss/lib/sqlite/sqlite3.c:29180,1
    - Dst: sqlite3TreeViewExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:29181,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:29182,1
    - Dst: sqlite3TreeViewSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:29183,1
    - Dst: sqlite3TreeViewExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:29185,1
    - Dst: sqlite3TreeViewLine
      Src: /src/nss/lib/sqlite/sqlite3.c:29206,1
    - Dst: sqlite3TreeViewExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:29207,1
    - Dst: sqlite3TreeViewExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:29208,1
    - Dst: sqlite3TreeViewExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:29209,1
    - Dst: sqlite3TreeViewLine
      Src: /src/nss/lib/sqlite/sqlite3.c:29220,1
    - Dst: sqlite3TreeViewLine
      Src: /src/nss/lib/sqlite/sqlite3.c:29225,1
    - Dst: sqlite3TreeViewExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:29226,1
    - Dst: sqlite3TreeViewExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:29227,1
    - Dst: sqlite3TreeViewLine
      Src: /src/nss/lib/sqlite/sqlite3.c:29239,1
    - Dst: sqlite3TreeViewLine
      Src: /src/nss/lib/sqlite/sqlite3.c:29244,1
    - Dst: sqlite3TreeViewExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:29246,1
    - Dst: sqlite3TreeViewBareExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:29250,1
    - Dst: sqlite3TreeViewLine
      Src: /src/nss/lib/sqlite/sqlite3.c:29254,1
    - Dst: sqlite3TreeViewSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:29255,1
    - Dst: sqlite3TreeViewLine
      Src: /src/nss/lib/sqlite/sqlite3.c:29259,1
    - Dst: sqlite3TreeViewExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:29260,1
    - Dst: sqlite3TreeViewLine
      Src: /src/nss/lib/sqlite/sqlite3.c:29264,1
    - Dst: sqlite3TreeViewLine
      Src: /src/nss/lib/sqlite/sqlite3.c:29269,1
    - Dst: sqlite3TreeViewExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:29270,1
    - Dst: sqlite3TreeViewExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:29271,1
    - Dst: sqlite3TreeViewLine
      Src: /src/nss/lib/sqlite/sqlite3.c:29273,1
    - Dst: sqlite3TreeViewExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:29274,1
    - Dst: sqlite3TreeViewPop
      Src: /src/nss/lib/sqlite/sqlite3.c:29276,1
    CyclomaticComplexity: 75
    EdgeCount: 75
    ICount: 288
    argCount: 3
    argNames:
    - pView
    - pExpr
    - moreToFollow
    argTypes:
    - TreeView*
    - Expr*
    - u8
    assertStmts:
    - condition: ( pExpr->pRight )
      pos:
        line_end: 29117
        line_start: 29117
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pExpr->op2==TK_IS || pExpr->op2==TK_ISNOT )
      pos:
        line_end: 29116
        line_start: 29116
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3ExprSkipCollate(pExpr->pRight)->op==TK_TRUEFALSE )
      pos:
        line_end: 29118
        line_start: 29118
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 29277
      start: 28990
    functionDepth: 12
    functionLinenumber: 28990
    functionLinenumberEnd: 29277
    functionName: sqlite3TreeViewExpr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 4
    functionsReached:
    - sqlite3TreeViewPush
    - sqlite3TreeViewSelect
    - sqlite3ExprSkipCollate
    - sqlite3TreeViewLine
    - sqlite3TreeViewExprList
    - sqlite3TreeViewPop
    - sqlite3TreeViewExpr
    - assert
    - sqlite3ExprTruthValue
    - sqlite3TreeViewBareExprList
    - sqlite3TreeViewWindow
    - ExprHasProperty
    - sqlite3_snprintf
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3TreeViewExpr(TreeView *pView, const Expr *pExpr,
      u8 moreToFollow)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3TreeViewLine
      Src: /src/nss/lib/sqlite/sqlite3.c:29290,1
    - Dst: sqlite3TreeViewLine
      Src: /src/nss/lib/sqlite/sqlite3.c:29293,1
    - Dst: sqlite3TreeViewPush
      Src: /src/nss/lib/sqlite/sqlite3.c:29299,1
    - Dst: sqlite3TreeViewLine
      Src: /src/nss/lib/sqlite/sqlite3.c:29301,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:29303,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:29306,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:29308,1
    - Dst: fflush
      Src: /src/nss/lib/sqlite/sqlite3.c:29309,1
    - Dst: sqlite3TreeViewExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:29311,1
    - Dst: sqlite3TreeViewPop
      Src: /src/nss/lib/sqlite/sqlite3.c:29313,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 3
    argNames:
    - pView
    - pList
    - zLabel
    argTypes:
    - TreeView*
    - ExprList*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29317
      start: 29283
    functionDepth: 13
    functionLinenumber: 29283
    functionLinenumberEnd: 29317
    functionName: sqlite3TreeViewBareExprList
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3TreeViewPush
    - sqlite3TreeViewLine
    - sqlite3TreeViewPop
    - fprintf
    - sqlite3TreeViewExpr
    - fflush
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3TreeViewBareExprList(\n  TreeView *pView,\n
      \ const ExprList *pList,\n  const char *zLabel\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3TreeViewPush
      Src: /src/nss/lib/sqlite/sqlite3.c:29324,1
    - Dst: sqlite3TreeViewBareExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:29325,1
    - Dst: sqlite3TreeViewPop
      Src: /src/nss/lib/sqlite/sqlite3.c:29326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - pView
    - pList
    - moreToFollow
    - zLabel
    argTypes:
    - TreeView*
    - ExprList*
    - u8
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29327
      start: 29318
    functionDepth: 14
    functionLinenumber: 29318
    functionLinenumberEnd: 29327
    functionName: sqlite3TreeViewExprList
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 4
    functionsReached:
    - sqlite3TreeViewPush
    - sqlite3TreeViewBareExprList
    - sqlite3TreeViewPop
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3TreeViewExprList(\n  TreeView *pView,\n  const
      ExprList *pList,\n  u8 moreToFollow,\n  const char *zLabel\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29360
      start: 29356
    functionDepth: 0
    functionLinenumber: 29356
    functionLinenumberEnd: 29360
    functionName: sqlite3PrngType
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_WSD
    signature: SQLITE_WSD sqlite3PrngType
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GLOBAL
      Src: /src/nss/lib/sqlite/sqlite3.c:29376,1
    - Dst: sqlite3_initialize
      Src: /src/nss/lib/sqlite/sqlite3.c:29387,1
    - Dst: sqlite3MutexAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:29391,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:29394,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:29397,1
    - Dst: sqlite3OsRandomness
      Src: /src/nss/lib/sqlite/sqlite3.c:29415,1
    - Dst: sqlite3_vfs_find
      Src: /src/nss/lib/sqlite/sqlite3.c:29415,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:29428,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:29438,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 2
    argNames:
    - N
    - pBuf
    argTypes:
    - int
    - void*
    assertStmts:
    - condition: ( N>0 )
      pos:
        line_end: 29427
        line_start: 29427
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 29439
      start: 29365
    functionDepth: 1
    functionLinenumber: 29365
    functionLinenumberEnd: 29439
    functionName: sqlite3_randomness
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3_vfs_find
    - sqlite3_initialize
    - sqlite3_mutex_leave
    - assert
    - sqlite3OsRandomness
    - sqlite3MutexAlloc
    - GLOBAL
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_randomness(int N, void *pBuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29458
      start: 29452
    functionDepth: 0
    functionLinenumber: 29452
    functionLinenumberEnd: 29458
    functionName: sqlite3PrngSaveState
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PrngSaveState(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29465
      start: 29459
    functionDepth: 0
    functionLinenumber: 29459
    functionLinenumberEnd: 29465
    functionName: sqlite3PrngRestoreState
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PrngRestoreState(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:29528,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:29529,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:29531,1
    - Dst: sqlite3Malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:29534,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:29536,1
    - Dst: sqlite3FaultSim
      Src: /src/nss/lib/sqlite/sqlite3.c:29543,1
    - Dst: pthread_create
      Src: /src/nss/lib/sqlite/sqlite3.c:29546,1
    - Dst: xTask
      Src: /src/nss/lib/sqlite/sqlite3.c:29550,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - ppThread
    - (*xTask)(void*)
    - pIn
    argTypes:
    - SQLiteThread**
    - void*
    - void*
    assertStmts:
    - condition: ( ppThread!=0 )
      pos:
        line_end: 29527
        line_start: 29527
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3GlobalConfig.bCoreMutex!=0 )
      pos:
        line_end: 29530
        line_start: 29530
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( xTask!=0 )
      pos:
        line_end: 29528
        line_start: 29528
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 29554
      start: 29520
    functionDepth: 5
    functionLinenumber: 29520
    functionLinenumberEnd: 29554
    functionName: sqlite3ThreadCreate
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - pthread_create
    - sqlite3FaultSim
    - sqlite3Malloc
    - assert
    - memset
    - xTask
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3ThreadCreate(\n  SQLiteThread **ppThread,  /*
      OUT: Write the thread object here */\n  void *(*xTask)(void*),    /* Routine
      to run in a separate thread */\n  void *pIn                 /* Argument passed
      into xTask() */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:29560,1
    - Dst: NEVER
      Src: /src/nss/lib/sqlite/sqlite3.c:29561,1
    - Dst: pthread_join
      Src: /src/nss/lib/sqlite/sqlite3.c:29566,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:29568,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - p
    - ppOut
    argTypes:
    - SQLiteThread*
    - void**
    assertStmts:
    - condition: ( ppOut!=0 )
      pos:
        line_end: 29559
        line_start: 29559
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 29570
      start: 29557
    functionDepth: 3
    functionLinenumber: 29557
    functionLinenumberEnd: 29570
    functionName: sqlite3ThreadJoin
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_free
    - pthread_join
    - NEVER
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ThreadJoin(SQLiteThread *p, void **ppOut)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:29597,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:29605,1
    - Dst: GetCurrentThreadId
      Src: /src/nss/lib/sqlite/sqlite3.c:29605,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:29607,1
    - Dst: SQLiteThread*::xTask
      Src: /src/nss/lib/sqlite/sqlite3.c:29608,1
    - Dst: _endthreadex
      Src: /src/nss/lib/sqlite/sqlite3.c:29610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - pArg
    argTypes:
    - void*
    assertStmts:
    - condition: ( p!=0 )
      pos:
        line_end: 29596
        line_start: 29596
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->id==GetCurrentThreadId() )
      pos:
        line_end: 29604
        line_start: 29604
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->xTask!=0 )
      pos:
        line_end: 29606
        line_start: 29606
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 29612
      start: 29592
    functionDepth: 0
    functionLinenumber: 29592
    functionLinenumberEnd: 29612
    functionName: sqlite3ThreadProc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - _endthreadex
    - GetCurrentThreadId
    - SQLiteThread*::xTask
    linkageType: ''
    returnType: unsigned
    signature: "unsigned sqlite3ThreadProc(\n  void *pArg  /* IN: Pointer to the SQLiteThread
      structure */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:29622,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:29623,1
    - Dst: sqlite3Malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:29625,1
    - Dst: sqlite3FaultSim
      Src: /src/nss/lib/sqlite/sqlite3.c:29632,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:29633,1
    - Dst: _beginthreadex
      Src: /src/nss/lib/sqlite/sqlite3.c:29637,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:29639,1
    - Dst: GetCurrentThreadId
      Src: /src/nss/lib/sqlite/sqlite3.c:29643,1
    - Dst: xTask
      Src: /src/nss/lib/sqlite/sqlite3.c:29644,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - ppThread
    - (*xTask)(void*)
    - pIn
    argTypes:
    - SQLiteThread**
    - void*
    - void*
    assertStmts:
    - condition: ( ppThread!=0 )
      pos:
        line_end: 29621
        line_start: 29621
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( xTask!=0 )
      pos:
        line_end: 29622
        line_start: 29622
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 29648
      start: 29615
    functionDepth: 5
    functionLinenumber: 29615
    functionLinenumberEnd: 29648
    functionName: sqlite3ThreadCreate
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - _beginthreadex
    - sqlite3FaultSim
    - sqlite3Malloc
    - assert
    - memset
    - GetCurrentThreadId
    - xTask
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3ThreadCreate(\n  SQLiteThread **ppThread,  /*
      OUT: Write the thread object here */\n  void *(*xTask)(void*),    /* Routine
      to run in a separate thread */\n  void *pIn                 /* Argument passed
      into xTask() */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:29657,1
    - Dst: NEVER
      Src: /src/nss/lib/sqlite/sqlite3.c:29658,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:29662,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:29664,1
    - Dst: GetCurrentThreadId
      Src: /src/nss/lib/sqlite/sqlite3.c:29664,1
    - Dst: sqlite3Win32Wait
      Src: /src/nss/lib/sqlite/sqlite3.c:29665,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:29666,1
    - Dst: CloseHandle
      Src: /src/nss/lib/sqlite/sqlite3.c:29667,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:29668,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:29671,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - p
    - ppOut
    argTypes:
    - SQLiteThread*
    - void**
    assertStmts:
    - condition: ( ppOut!=0 )
      pos:
        line_end: 29656
        line_start: 29656
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->id!=0 && p->id!=GetCurrentThreadId() )
      pos:
        line_end: 29663
        line_start: 29663
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->tid==0 )
      pos:
        line_end: 29661
        line_start: 29661
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc!=WAIT_IO_COMPLETION )
      pos:
        line_end: 29665
        line_start: 29665
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( bRc )
      pos:
        line_end: 29667
        line_start: 29667
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 29673
      start: 29653
    functionDepth: 3
    functionLinenumber: 29653
    functionLinenumberEnd: 29673
    functionName: sqlite3ThreadJoin
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - NEVER
    - assert
    - CloseHandle
    - GetCurrentThreadId
    - sqlite3Win32Wait
    - sqlite3_free
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ThreadJoin(SQLiteThread *p, void **ppOut)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:29702,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:29703,1
    - Dst: sqlite3Malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:29705,1
    - Dst: SQLITE_PTR_TO_INT
      Src: /src/nss/lib/sqlite/sqlite3.c:29707,1
    - Dst: xTask
      Src: /src/nss/lib/sqlite/sqlite3.c:29712,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - ppThread
    - (*xTask)(void*)
    - pIn
    argTypes:
    - SQLiteThread**
    - void*
    - void*
    assertStmts:
    - condition: ( ppThread!=0 )
      pos:
        line_end: 29701
        line_start: 29701
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( xTask!=0 )
      pos:
        line_end: 29702
        line_start: 29702
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 29716
      start: 29695
    functionDepth: 5
    functionLinenumber: 29695
    functionLinenumberEnd: 29716
    functionName: sqlite3ThreadCreate
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - SQLITE_PTR_TO_INT
    - xTask
    - sqlite3Malloc
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3ThreadCreate(\n  SQLiteThread **ppThread,  /*
      OUT: Write the thread object here */\n  void *(*xTask)(void*),    /* Routine
      to run in a separate thread */\n  void *pIn                 /* Argument passed
      into xTask() */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:29721,1
    - Dst: NEVER
      Src: /src/nss/lib/sqlite/sqlite3.c:29722,1
    - Dst: SQLiteThread*::xTask
      Src: /src/nss/lib/sqlite/sqlite3.c:29724,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:29728,1
    - Dst: sqlite3Malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:29732,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:29734,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - p
    - ppOut
    argTypes:
    - SQLiteThread*
    - void**
    assertStmts:
    - condition: ( ppOut!=0 )
      pos:
        line_end: 29720
        line_start: 29720
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 29739
      start: 29719
    functionDepth: 5
    functionLinenumber: 29719
    functionLinenumberEnd: 29739
    functionName: sqlite3ThreadJoin
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - SQLiteThread*::xTask
    - NEVER
    - sqlite3Malloc
    - assert
    - sqlite3_free
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ThreadJoin(SQLiteThread *p, void **ppOut)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - zOut
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29829
      start: 29810
    functionDepth: 0
    functionLinenumber: 29810
    functionLinenumberEnd: 29829
    functionName: WRITE_UTF8
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRITE_UTF8(zOut, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - zOut
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29841
      start: 29830
    functionDepth: 0
    functionLinenumber: 29830
    functionLinenumberEnd: 29841
    functionName: WRITE_UTF16LE
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRITE_UTF16LE(zOut, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - zOut
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29853
      start: 29842
    functionDepth: 0
    functionLinenumber: 29842
    functionLinenumberEnd: 29853
    functionName: WRITE_UTF16BE
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRITE_UTF16BE(zOut, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - zIn
    - ','
    - TERM
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29863
      start: 29854
    functionDepth: 0
    functionLinenumber: 29854
    functionLinenumberEnd: 29863
    functionName: READ_UTF16LE
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: READ_UTF16LE(zIn, TERM, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - zIn
    - ','
    - TERM
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29873
      start: 29864
    functionDepth: 0
    functionLinenumber: 29864
    functionLinenumberEnd: 29873
    functionName: READ_UTF16BE
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: READ_UTF16BE(zIn, TERM, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - zIn
    - ','
    - zTerm
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29912
      start: 29901
    functionDepth: 0
    functionLinenumber: 29901
    functionLinenumberEnd: 29912
    functionName: READ_UTF8
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: READ_UTF8(zIn, zTerm, c)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - pz
    argTypes:
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29931
      start: 29912
    functionDepth: 0
    functionLinenumber: 29912
    functionLinenumberEnd: 29931
    functionName: sqlite3Utf8Read
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Utf8Read(\n  const unsigned char **pz    /*
      Pointer to string from which to read char */\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:29956,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:29956,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:29957,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:29958,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:29959,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:29960,1
    - Dst: sqlite3VdbeMemPrettyPrint
      Src: /src/nss/lib/sqlite/sqlite3.c:29965,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:29966,1
    - Dst: sqlite3VdbeMemMakeWriteable
      Src: /src/nss/lib/sqlite/sqlite3.c:29977,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:29979,1
    - Dst: sqlite3DbMallocRaw
      Src: /src/nss/lib/sqlite/sqlite3.c:30020,1
    - Dst: READ_UTF8
      Src: /src/nss/lib/sqlite/sqlite3.c:30030,1
    - Dst: WRITE_UTF16LE
      Src: /src/nss/lib/sqlite/sqlite3.c:30031,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:30034,1
    - Dst: READ_UTF8
      Src: /src/nss/lib/sqlite/sqlite3.c:30037,1
    - Dst: WRITE_UTF16BE
      Src: /src/nss/lib/sqlite/sqlite3.c:30038,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:30044,1
    - Dst: READ_UTF16LE
      Src: /src/nss/lib/sqlite/sqlite3.c:30048,1
    - Dst: WRITE_UTF8
      Src: /src/nss/lib/sqlite/sqlite3.c:30049,1
    - Dst: READ_UTF16BE
      Src: /src/nss/lib/sqlite/sqlite3.c:30054,1
    - Dst: WRITE_UTF8
      Src: /src/nss/lib/sqlite/sqlite3.c:30055,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:30061,1
    - Dst: sqlite3VdbeMemRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:30064,1
    - Dst: sqlite3DbMallocSize
      Src: /src/nss/lib/sqlite/sqlite3.c:30069,1
    - Dst: sqlite3VdbeMemPrettyPrint
      Src: /src/nss/lib/sqlite/sqlite3.c:30075,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:30076,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 86
    argCount: 2
    argNames:
    - pMem
    - desiredEnc
    argTypes:
    - Mem*
    - u8
    assertStmts:
    - condition: ( rc==SQLITE_NOMEM )
      pos:
        line_end: 29978
        line_start: 29978
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( desiredEnc==SQLITE_UTF16BE )
      pos:
        line_end: 30033
        line_start: 30033
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pMem->n+(desiredEnc==SQLITE_UTF8?1:2))<=len )
      pos:
        line_end: 30060
        line_start: 30060
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pMem->enc!=desiredEnc )
      pos:
        line_end: 29957
        line_start: 29957
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pMem->flags&MEM_Str )
      pos:
        line_end: 29956
        line_start: 29956
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( desiredEnc==SQLITE_UTF8 )
      pos:
        line_end: 30043
        line_start: 30043
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pMem->db==0 || sqlite3_mutex_held(pMem->db->mutex) )
      pos:
        line_end: 29955
        line_start: 29955
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pMem->enc!=0 )
      pos:
        line_end: 29958
        line_start: 29958
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pMem->n>=0 )
      pos:
        line_end: 29959
        line_start: 29959
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 30080
      start: 29948
    functionDepth: 6
    functionLinenumber: 29948
    functionLinenumberEnd: 30080
    functionName: sqlite3VdbeMemTranslate
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeMemPrettyPrint
    - WRITE_UTF16LE
    - sqlite3VdbeMemMakeWriteable
    - READ_UTF16BE
    - sqlite3VdbeMemRelease
    - WRITE_UTF16BE
    - sqlite3DbMallocSize
    - assert
    - fprintf
    - sqlite3DbMallocRaw
    - WRITE_UTF8
    - sqlite3_mutex_held
    - READ_UTF8
    - READ_UTF16LE
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeMemTranslate(Mem *pMem, u8 desiredEnc)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:30097,1
    - Dst: sqlite3VdbeMemMakeWriteable
      Src: /src/nss/lib/sqlite/sqlite3.c:30110,1
    - Dst: memmove
      Src: /src/nss/lib/sqlite/sqlite3.c:30113,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - pMem
    argTypes:
    - Mem*
    assertStmts:
    - condition: ( pMem->n>=0 )
      pos:
        line_end: 30096
        line_start: 30096
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 30121
      start: 30093
    functionDepth: 1
    functionLinenumber: 30093
    functionLinenumberEnd: 30121
    functionName: sqlite3VdbeMemHandleBom
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - memmove
    - sqlite3VdbeMemMakeWriteable
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeMemHandleBom(Mem *pMem)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:30140,1
    - Dst: SQLITE_SKIP_UTF8
      Src: /src/nss/lib/sqlite/sqlite3.c:30142,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - zIn
    - nByte
    argTypes:
    - char*
    - int
    assertStmts:
    - condition: ( z<=zTerm )
      pos:
        line_end: 30139
        line_start: 30139
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 30146
      start: 30131
    functionDepth: 1
    functionLinenumber: 30131
    functionLinenumberEnd: 30146
    functionName: sqlite3Utf8CharLen
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - SQLITE_SKIP_UTF8
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Utf8CharLen(const char *zIn, int nByte)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Utf8Read
      Src: /src/nss/lib/sqlite/sqlite3.c:30167,1
    - Dst: WRITE_UTF8
      Src: /src/nss/lib/sqlite/sqlite3.c:30169,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - zIn
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30174
      start: 30161
    functionDepth: 1
    functionLinenumber: 30161
    functionLinenumberEnd: 30174
    functionName: sqlite3Utf8To8
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - WRITE_UTF8
    - sqlite3Utf8Read
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Utf8To8(unsigned char *zIn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:30187,1
    - Dst: sqlite3VdbeMemSetStr
      Src: /src/nss/lib/sqlite/sqlite3.c:30189,1
    - Dst: sqlite3VdbeChangeEncoding
      Src: /src/nss/lib/sqlite/sqlite3.c:30190,1
    - Dst: sqlite3VdbeMemRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:30192,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:30195,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:30196,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:30197,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - db
    - z
    - nByte
    - enc
    argTypes:
    - sqlite3*
    - void*
    - int
    - u8
    assertStmts:
    - condition: ( (m.flags & MEM_Term)!=0 || db->mallocFailed )
      pos:
        line_end: 30194
        line_start: 30194
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (m.flags & MEM_Str)!=0 || db->mallocFailed )
      pos:
        line_end: 30195
        line_start: 30195
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( m.z || db->mallocFailed )
      pos:
        line_end: 30196
        line_start: 30196
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 30199
      start: 30185
    functionDepth: 1
    functionLinenumber: 30185
    functionLinenumberEnd: 30199
    functionName: sqlite3Utf16to8
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeMemSetStr
    - sqlite3VdbeMemRelease
    - memset
    - assert
    - sqlite3VdbeChangeEncoding
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3Utf16to8(sqlite3 *db, const void *z, int nByte,
      u8 enc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: READ_UTF16BE
      Src: /src/nss/lib/sqlite/sqlite3.c:30213,1
    - Dst: READ_UTF16LE
      Src: /src/nss/lib/sqlite/sqlite3.c:30218,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - zIn
    - nChar
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30223
      start: 30206
    functionDepth: 1
    functionLinenumber: 30206
    functionLinenumberEnd: 30223
    functionName: sqlite3Utf16ByteLen
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - READ_UTF16BE
    - READ_UTF16LE
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Utf16ByteLen(const void *zIn, int nChar)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: WRITE_UTF8
      Src: /src/nss/lib/sqlite/sqlite3.c:30240,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:30242,1
    - Dst: sqlite3Utf8Read
      Src: /src/nss/lib/sqlite/sqlite3.c:30245,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:30249,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:30250,1
    - Dst: WRITE_UTF16LE
      Src: /src/nss/lib/sqlite/sqlite3.c:30255,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:30257,1
    - Dst: READ_UTF16LE
      Src: /src/nss/lib/sqlite/sqlite3.c:30260,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:30261,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:30262,1
    - Dst: WRITE_UTF16BE
      Src: /src/nss/lib/sqlite/sqlite3.c:30267,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:30269,1
    - Dst: READ_UTF16BE
      Src: /src/nss/lib/sqlite/sqlite3.c:30272,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:30273,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:30274,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( c==t )
      pos:
        line_end: 30248
        line_start: 30248
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( n>0 && n<=4 )
      pos:
        line_end: 30241
        line_start: 30241
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (z-zBuf)==n )
      pos:
        line_end: 30249
        line_start: 30249
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( n>0 && n<=4 )
      pos:
        line_end: 30256
        line_start: 30256
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( c==i )
      pos:
        line_end: 30260
        line_start: 30260
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (z-zBuf)==n )
      pos:
        line_end: 30261
        line_start: 30261
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (z-zBuf)==n )
      pos:
        line_end: 30273
        line_start: 30273
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( n>0 && n<=4 )
      pos:
        line_end: 30268
        line_start: 30268
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( c==i )
      pos:
        line_end: 30272
        line_start: 30272
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 30276
      start: 30231
    functionDepth: 1
    functionLinenumber: 30231
    functionLinenumberEnd: 30276
    functionName: sqlite3UtfSelfTest
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - WRITE_UTF16LE
    - READ_UTF16BE
    - WRITE_UTF16BE
    - assert
    - WRITE_UTF8
    - READ_UTF16LE
    - sqlite3Utf8Read
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3UtfSelfTest(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30310
      start: 30307
    functionDepth: 0
    functionLinenumber: 30307
    functionLinenumberEnd: 30310
    functionName: sqlite3Coverage
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Coverage(int x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xCallback
      Src: /src/nss/lib/sqlite/sqlite3.c:30335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iTest
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30336
      start: 30333
    functionDepth: 0
    functionLinenumber: 30333
    functionLinenumberEnd: 30336
    functionName: sqlite3FaultSim
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - xCallback
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3FaultSim(int iTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:30345,1
    - Dst: IsNaN
      Src: /src/nss/lib/sqlite/sqlite3.c:30346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30347
      start: 30343
    functionDepth: 1
    functionLinenumber: 30343
    functionLinenumberEnd: 30347
    functionName: sqlite3IsNaN
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - IsNaN
    - memcpy
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3IsNaN(double x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:30360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - z
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30361
      start: 30358
    functionDepth: 0
    functionLinenumber: 30358
    functionLinenumberEnd: 30361
    functionName: sqlite3Strlen30
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 5
    functionsReached:
    - strlen
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Strlen30(const char *z)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:30372,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pCol
    - zDflt
    argTypes:
    - Column*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30373
      start: 30370
    functionDepth: 0
    functionLinenumber: 30370
    functionLinenumberEnd: 30373
    functionName: sqlite3ColumnType
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3ColumnType(Column *pCol, char *zDflt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ValueSetNull
      Src: /src/nss/lib/sqlite/sqlite3.c:30381,1
    - Dst: sqlite3SystemError
      Src: /src/nss/lib/sqlite/sqlite3.c:30382,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - db
    - err_code
    argTypes:
    - sqlite3*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30383
      start: 30380
    functionDepth: 1
    functionLinenumber: 30380
    functionLinenumberEnd: 30383
    functionName: sqlite3ErrorFinish
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ValueSetNull
    - sqlite3SystemError
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: SQLITE_NOINLINE sqlite3ErrorFinish(sqlite3 *db, int err_code)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:30391,1
    - Dst: sqlite3ErrorFinish
      Src: /src/nss/lib/sqlite/sqlite3.c:30393,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - db
    - err_code
    argTypes:
    - sqlite3*
    - int
    assertStmts:
    - condition: ( db!=0 )
      pos:
        line_end: 30390
        line_start: 30390
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 30394
      start: 30390
    functionDepth: 2
    functionLinenumber: 30390
    functionLinenumberEnd: 30394
    functionName: sqlite3Error
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - sqlite3ErrorFinish
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Error(sqlite3 *db, int err_code)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3OsGetLastError
      Src: /src/nss/lib/sqlite/sqlite3.c:30404,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - db
    - rc
    argTypes:
    - sqlite3*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30406
      start: 30400
    functionDepth: 1
    functionLinenumber: 30400
    functionLinenumberEnd: 30406
    functionName: sqlite3SystemError
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3OsGetLastError
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3SystemError(sqlite3 *db, int rc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:30430,1
    - Dst: sqlite3SystemError
      Src: /src/nss/lib/sqlite/sqlite3.c:30432,1
    - Dst: sqlite3Error
      Src: /src/nss/lib/sqlite/sqlite3.c:30434,1
    - Dst: sqlite3ValueNew
      Src: /src/nss/lib/sqlite/sqlite3.c:30435,1
    - Dst: va_start
      Src: /src/nss/lib/sqlite/sqlite3.c:30438,1
    - Dst: sqlite3VMPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:30439,1
    - Dst: va_end
      Src: /src/nss/lib/sqlite/sqlite3.c:30440,1
    - Dst: sqlite3ValueSetStr
      Src: /src/nss/lib/sqlite/sqlite3.c:30441,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - db
    - err_code
    - zFormat
    argTypes:
    - sqlite3*
    - int
    - char*
    assertStmts:
    - condition: ( db!=0 )
      pos:
        line_end: 30429
        line_start: 30429
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 30443
      start: 30429
    functionDepth: 9
    functionLinenumber: 30429
    functionLinenumberEnd: 30443
    functionName: sqlite3ErrorWithMsg
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - va_end
    - sqlite3SystemError
    - assert
    - sqlite3Error
    - va_start
    - sqlite3ValueSetStr
    - sqlite3ValueNew
    - sqlite3VMPrintf
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ErrorWithMsg(sqlite3 *db, int err_code, const
      char *zFormat, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/nss/lib/sqlite/sqlite3.c:30466,1
    - Dst: sqlite3VMPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:30467,1
    - Dst: va_end
      Src: /src/nss/lib/sqlite/sqlite3.c:30468,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:30470,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:30473,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - pParse
    - zFormat
    argTypes:
    - Parse*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30477
      start: 30462
    functionDepth: 9
    functionLinenumber: 30462
    functionLinenumberEnd: 30477
    functionName: sqlite3ErrorMsg
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbFree
    - va_end
    - va_start
    - sqlite3VMPrintf
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ErrorMsg(Parse *pParse, const char *zFormat,
      ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - db
    - errCode
    argTypes:
    - sqlite3*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30490
      start: 30484
    functionDepth: 0
    functionLinenumber: 30484
    functionLinenumberEnd: 30490
    functionName: sqlite3ErrorToParser
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ErrorToParser(sqlite3 *db, int errCode)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Isquote
      Src: /src/nss/lib/sqlite/sqlite3.c:30514,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:30517,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - z
    argTypes:
    - char*
    assertStmts:
    - condition: ( z[i] )
      pos:
        line_end: 30516
        line_start: 30516
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 30530
      start: 30509
    functionDepth: 1
    functionLinenumber: 30509
    functionLinenumberEnd: 30530
    functionName: sqlite3Dequote
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3Isquote
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Dequote(char *z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:30532,1
    - Dst: sqlite3Isquote
      Src: /src/nss/lib/sqlite/sqlite3.c:30532,1
    - Dst: sqlite3Dequote
      Src: /src/nss/lib/sqlite/sqlite3.c:30534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - Expr*
    assertStmts:
    - condition: ( sqlite3Isquote(p->u.zToken[0]) )
      pos:
        line_end: 30531
        line_start: 30531
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 30535
      start: 30531
    functionDepth: 2
    functionLinenumber: 30531
    functionLinenumberEnd: 30535
    functionName: sqlite3DequoteExpr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3Dequote
    - sqlite3Isquote
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3DequoteExpr(Expr *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:30542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p
    - z
    argTypes:
    - Token*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30543
      start: 30540
    functionDepth: 1
    functionLinenumber: 30540
    functionLinenumberEnd: 30543
    functionName: sqlite3TokenInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Strlen30
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3TokenInit(Token *p, char *z)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:30564,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - zLeft
    - zRight
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30565
      start: 30558
    functionDepth: 1
    functionLinenumber: 30558
    functionLinenumberEnd: 30565
    functionName: sqlite3_stricmp
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3StrICmp
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_stricmp(const char *zLeft, const char *zRight)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - zLeft
    - zRight
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30584
      start: 30566
    functionDepth: 0
    functionLinenumber: 30566
    functionLinenumberEnd: 30584
    functionName: sqlite3StrICmp
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3StrICmp(const char *zLeft, const char *zRight)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - zLeft
    - zRight
    - N
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30596
      start: 30585
    functionDepth: 0
    functionLinenumber: 30585
    functionLinenumberEnd: 30596
    functionName: sqlite3_strnicmp
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_strnicmp(const char *zLeft, const char *zRight,
      int N)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:30619,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - E
    argTypes:
    - int
    assertStmts:
    - condition: ( E>=0 && E<=307 )
      pos:
        line_end: 30618
        line_start: 30618
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 30635
      start: 30604
    functionDepth: 0
    functionLinenumber: 30604
    functionLinenumberEnd: 30635
    functionName: sqlite3Pow10
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: LONGDOUBLE_TYPE
    signature: LONGDOUBLE_TYPE sqlite3Pow10(int E)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:30681,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:30689,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:30690,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:30691,1
    - Dst: sqlite3Isspace
      Src: /src/nss/lib/sqlite/sqlite3.c:30699,1
    - Dst: sqlite3Isdigit
      Src: /src/nss/lib/sqlite/sqlite3.c:30711,1
    - Dst: sqlite3Isdigit
      Src: /src/nss/lib/sqlite/sqlite3.c:30717,1
    - Dst: sqlite3Isdigit
      Src: /src/nss/lib/sqlite/sqlite3.c:30728,1
    - Dst: sqlite3Isdigit
      Src: /src/nss/lib/sqlite/sqlite3.c:30758,1
    - Dst: sqlite3Isspace
      Src: /src/nss/lib/sqlite/sqlite3.c:30766,1
    - Dst: sqlite3Pow10
      Src: /src/nss/lib/sqlite/sqlite3.c:30808,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:30816,1
    - Dst: sqlite3Pow10
      Src: /src/nss/lib/sqlite/sqlite3.c:30828,1
    - Dst: sqlite3Atoi64
      Src: /src/nss/lib/sqlite/sqlite3.c:30850,1
    CyclomaticComplexity: 57
    EdgeCount: 57
    ICount: 144
    argCount: 4
    argNames:
    - z
    - pResult
    - length
    - enc
    argTypes:
    - char*
    - double*
    - int
    - u8
    assertStmts:
    - condition: ( enc==SQLITE_UTF8 || enc==SQLITE_UTF16LE || enc==SQLITE_UTF16BE
        )
      pos:
        line_end: 30680
        line_start: 30680
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( SQLITE_UTF16LE==2 && SQLITE_UTF16BE==3 )
      pos:
        line_end: 30688
        line_start: 30688
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( e>=342 )
      pos:
        line_end: 30815
        line_start: 30815
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 30852
      start: 30666
    functionDepth: 1
    functionLinenumber: 30666
    functionLinenumberEnd: 30852
    functionName: sqlite3AtoF
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3Isdigit
    - sqlite3Atoi64
    - assert
    - sqlite3Isspace
    - testcase
    - sqlite3Pow10
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3AtoF(const char *z, double *pResult, int length,
      u8 enc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:30878,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:30879,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:30880,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - zNum
    - incr
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30883
      start: 30868
    functionDepth: 1
    functionLinenumber: 30868
    functionLinenumberEnd: 30883
    functionName: compare2pow63
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - testcase
    linkageType: ''
    returnType: int
    signature: int compare2pow63(const char *zNum, int incr)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:30911,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:30916,1
    - Dst: sqlite3Isspace
      Src: /src/nss/lib/sqlite/sqlite3.c:30922,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:30936,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:30937,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:30938,1
    - Dst: sqlite3Isspace
      Src: /src/nss/lib/sqlite/sqlite3.c:30958,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:30967,1
    - Dst: compare2pow63
      Src: /src/nss/lib/sqlite/sqlite3.c:30971,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:30974,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:30984,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 76
    argCount: 4
    argNames:
    - zNum
    - pNum
    - length
    - enc
    argTypes:
    - char*
    - i64*
    - int
    - u8
    assertStmts:
    - condition: ( enc==SQLITE_UTF8 || enc==SQLITE_UTF16LE || enc==SQLITE_UTF16BE
        )
      pos:
        line_end: 30910
        line_start: 30910
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( SQLITE_UTF16LE==2 && SQLITE_UTF16BE==3 )
      pos:
        line_end: 30915
        line_start: 30915
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( u<=LARGEST_INT64 )
      pos:
        line_end: 30966
        line_start: 30966
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( u<=LARGEST_INT64 )
      pos:
        line_end: 30973
        line_start: 30973
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( u-1==LARGEST_INT64 )
      pos:
        line_end: 30983
        line_start: 30983
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 30989
      start: 30901
    functionDepth: 2
    functionLinenumber: 30901
    functionLinenumberEnd: 30989
    functionName: sqlite3Atoi64
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - compare2pow63
    - sqlite3Isspace
    - testcase
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Atoi64(const char *zNum, i64 *pNum, int length,
      u8 enc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Isxdigit
      Src: /src/nss/lib/sqlite/sqlite3.c:31011,1
    - Dst: sqlite3HexToInt
      Src: /src/nss/lib/sqlite/sqlite3.c:31012,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:31014,1
    - Dst: sqlite3Atoi64
      Src: /src/nss/lib/sqlite/sqlite3.c:31019,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:31019,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - z
    - pOut
    argTypes:
    - char*
    - i64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31021
      start: 31003
    functionDepth: 3
    functionLinenumber: 31003
    functionLinenumberEnd: 31021
    functionName: sqlite3DecOrHexToI64
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - sqlite3Atoi64
    - sqlite3Isxdigit
    - sqlite3HexToInt
    - sqlite3Strlen30
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3DecOrHexToI64(const char *z, i64 *pOut)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Isxdigit
      Src: /src/nss/lib/sqlite/sqlite3.c:31046,1
    - Dst: sqlite3Isxdigit
      Src: /src/nss/lib/sqlite/sqlite3.c:31051,1
    - Dst: sqlite3HexToInt
      Src: /src/nss/lib/sqlite/sqlite3.c:31052,1
    - Dst: sqlite3Isxdigit
      Src: /src/nss/lib/sqlite/sqlite3.c:31054,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:31055,1
    - Dst: sqlite3Isdigit
      Src: /src/nss/lib/sqlite/sqlite3.c:31062,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:31073,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:31077,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 41
    argCount: 2
    argNames:
    - zNum
    - pValue
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31086
      start: 31033
    functionDepth: 1
    functionLinenumber: 31033
    functionLinenumberEnd: 31086
    functionName: sqlite3GetInt32
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - sqlite3Isdigit
    - sqlite3Isxdigit
    - sqlite3HexToInt
    - testcase
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3GetInt32(const char *zNum, int *pValue)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetInt32
      Src: /src/nss/lib/sqlite/sqlite3.c:31094,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - z
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31096
      start: 31092
    functionDepth: 2
    functionLinenumber: 31092
    functionLinenumberEnd: 31096
    functionName: sqlite3Atoi
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3GetInt32
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Atoi(const char *z)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:31145,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - p
    - v
    argTypes:
    - unsigned char*
    - u64
    assertStmts:
    - condition: ( n<=9 )
      pos:
        line_end: 31144
        line_start: 31144
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 31150
      start: 31127
    functionDepth: 0
    functionLinenumber: 31127
    functionLinenumberEnd: 31150
    functionName: SQLITE_NOINLINE::putVarint64
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int SQLITE_NOINLINE putVarint64(unsigned char *p, u64 v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: putVarint64
      Src: /src/nss/lib/sqlite/sqlite3.c:31161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - p
    - v
    argTypes:
    - unsigned char*
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31162
      start: 31151
    functionDepth: 0
    functionLinenumber: 31151
    functionLinenumberEnd: 31162
    functionName: sqlite3PutVarint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - putVarint64
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PutVarint(unsigned char *p, u64 v)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:31194,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:31195,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 96
    argCount: 2
    argNames:
    - p
    - v
    argTypes:
    - unsigned char*
    - u64*
    assertStmts:
    - condition: ( SLOT_2_0 == ((0x7f<<14) | (0x7f)) )
      pos:
        line_end: 31193
        line_start: 31193
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( SLOT_4_2_0 == ((0xfU<<28) | (0x7f<<14) | (0x7f)) )
      pos:
        line_end: 31194
        line_start: 31194
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 31329
      start: 31181
    functionDepth: 0
    functionLinenumber: 31181
    functionLinenumberEnd: 31329
    functionName: sqlite3GetVarint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3GetVarint(const unsigned char *p, u64 *v)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:31401,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:31402,1
    - Dst: sqlite3GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:31453,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:31454,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 60
    argCount: 2
    argNames:
    - p
    - v
    argTypes:
    - unsigned char*
    - u32*
    assertStmts:
    - condition: ( n>5 && n<=9 )
      pos:
        line_end: 31453
        line_start: 31453
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( n>3 && n<=9 )
      pos:
        line_end: 31401
        line_start: 31401
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 31459
      start: 31342
    functionDepth: 1
    functionLinenumber: 31342
    functionLinenumberEnd: 31459
    functionName: sqlite3GetVarint32
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3GetVarint
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3GetVarint32(const unsigned char *p, u32 *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:31467,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - u64
    assertStmts:
    - condition: ( i<10 )
      pos:
        line_end: 31466
        line_start: 31466
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 31469
      start: 31465
    functionDepth: 0
    functionLinenumber: 31465
    functionLinenumberEnd: 31469
    functionName: sqlite3VarintLen
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VarintLen(u64 v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:31478,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:31482,1
    - Dst: __builtin_bswap32
      Src: /src/nss/lib/sqlite/sqlite3.c:31483,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:31486,1
    - Dst: _byteswap_ulong
      Src: /src/nss/lib/sqlite/sqlite3.c:31487,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:31489,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - u8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31492
      start: 31475
    functionDepth: 1
    functionLinenumber: 31475
    functionLinenumberEnd: 31492
    functionName: sqlite3Get4byte
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - __builtin_bswap32
    - memcpy
    - testcase
    - _byteswap_ulong
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Get4byte(const u8 *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:31495,1
    - Dst: __builtin_bswap32
      Src: /src/nss/lib/sqlite/sqlite3.c:31497,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:31498,1
    - Dst: _byteswap_ulong
      Src: /src/nss/lib/sqlite/sqlite3.c:31500,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:31501,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - p
    - v
    argTypes:
    - unsigned char*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31508
      start: 31493
    functionDepth: 1
    functionLinenumber: 31493
    functionLinenumberEnd: 31508
    functionName: sqlite3Put4byte
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - __builtin_bswap32
    - memcpy
    - _byteswap_ulong
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Put4byte(unsigned char *p, u32 v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:31518,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 1
    argNames:
    - h
    argTypes:
    - int
    assertStmts:
    - condition: ( (h>='0' && h<='9') ||  (h>='a' && h<='f') ||  (h>='A' && h<='F')
        )
      pos:
        line_end: 31517
        line_start: 31517
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 31526
      start: 31517
    functionDepth: 0
    functionLinenumber: 31517
    functionLinenumberEnd: 31526
    functionName: sqlite3HexToInt
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3HexToInt(int h)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbMallocRawNN
      Src: /src/nss/lib/sqlite/sqlite3.c:31539,1
    - Dst: sqlite3HexToInt
      Src: /src/nss/lib/sqlite/sqlite3.c:31543,1
    - Dst: sqlite3HexToInt
      Src: /src/nss/lib/sqlite/sqlite3.c:31543,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - db
    - z
    - n
    argTypes:
    - sqlite3*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31548
      start: 31535
    functionDepth: 7
    functionLinenumber: 31535
    functionLinenumberEnd: 31548
    functionName: sqlite3HexToBlob
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbMallocRawNN
    - sqlite3HexToInt
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3HexToBlob(sqlite3 *db, const char *z, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_log
      Src: /src/nss/lib/sqlite/sqlite3.c:31557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - zType
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31561
      start: 31556
    functionDepth: 10
    functionLinenumber: 31556
    functionLinenumberEnd: 31561
    functionName: logBadConnection
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_log
    linkageType: ''
    returnType: void
    signature: void logBadConnection(const char *zType)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: logBadConnection
      Src: /src/nss/lib/sqlite/sqlite3.c:31580,1
    - Dst: sqlite3SafetyCheckSickOrOk
      Src: /src/nss/lib/sqlite/sqlite3.c:31585,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:31586,1
    - Dst: logBadConnection
      Src: /src/nss/lib/sqlite/sqlite3.c:31587,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31593
      start: 31577
    functionDepth: 11
    functionLinenumber: 31577
    functionLinenumberEnd: 31593
    functionName: sqlite3SafetyCheckOk
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - logBadConnection
    - testcase
    - sqlite3SafetyCheckSickOrOk
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3SafetyCheckOk(sqlite3 *db)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:31600,1
    - Dst: logBadConnection
      Src: /src/nss/lib/sqlite/sqlite3.c:31601,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31606
      start: 31594
    functionDepth: 11
    functionLinenumber: 31594
    functionLinenumberEnd: 31606
    functionName: sqlite3SafetyCheckSickOrOk
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - logBadConnection
    - testcase
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3SafetyCheckSickOrOk(sqlite3 *db)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_add_overflow
      Src: /src/nss/lib/sqlite/sqlite3.c:31616,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:31619,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:31619,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:31620,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:31620,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:31622,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:31623,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:31626,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:31627,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 2
    argNames:
    - pA
    - iB
    argTypes:
    - i64*
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31633
      start: 31614
    functionDepth: 1
    functionLinenumber: 31614
    functionLinenumberEnd: 31633
    functionName: sqlite3AddInt64
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - testcase
    - __builtin_add_overflow
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3AddInt64(i64 *pA, i64 iB)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_sub_overflow
      Src: /src/nss/lib/sqlite/sqlite3.c:31636,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:31638,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:31640,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:31640,1
    - Dst: sqlite3AddInt64
      Src: /src/nss/lib/sqlite/sqlite3.c:31645,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - pA
    - iB
    argTypes:
    - i64*
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31648
      start: 31634
    functionDepth: 2
    functionLinenumber: 31634
    functionLinenumberEnd: 31648
    functionName: sqlite3SubInt64
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - testcase
    - sqlite3AddInt64
    - __builtin_sub_overflow
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3SubInt64(i64 *pA, i64 iB)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_mul_overflow
      Src: /src/nss/lib/sqlite/sqlite3.c:31651,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 2
    argNames:
    - pA
    - iB
    argTypes:
    - i64*
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31669
      start: 31649
    functionDepth: 0
    functionLinenumber: 31649
    functionLinenumberEnd: 31669
    functionName: sqlite3MulInt64
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - __builtin_mul_overflow
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3MulInt64(i64 *pA, i64 iB)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - x
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31679
      start: 31675
    functionDepth: 0
    functionLinenumber: 31675
    functionLinenumberEnd: 31679
    functionName: sqlite3AbsInt32
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3AbsInt32(int x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_uri_boolean
      Src: /src/nss/lib/sqlite/sqlite3.c:31701,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:31705,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:31707,1
    - Dst: memmove
      Src: /src/nss/lib/sqlite/sqlite3.c:31707,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - zBaseFilename
    - z
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31709
      start: 31699
    functionDepth: 1
    functionLinenumber: 31699
    functionLinenumberEnd: 31709
    functionName: sqlite3FileSuffix3
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ALWAYS
    - memmove
    - sqlite3_uri_boolean
    - sqlite3Strlen30
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3FileSuffix3(const char *zBaseFilename, char *z)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - LogEst
    - LogEst
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31739
      start: 31718
    functionDepth: 0
    functionLinenumber: 31718
    functionLinenumberEnd: 31739
    functionName: sqlite3LogEstAdd
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3LogEstAdd(LogEst a, LogEst b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_clzll
      Src: /src/nss/lib/sqlite/sqlite3.c:31753,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - x
    argTypes:
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31762
      start: 31745
    functionDepth: 0
    functionLinenumber: 31745
    functionLinenumberEnd: 31762
    functionName: sqlite3LogEst
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - __builtin_clzll
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3LogEst(u64 x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:31772,1
    - Dst: sqlite3LogEst
      Src: /src/nss/lib/sqlite/sqlite3.c:31774,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:31775,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts:
    - condition: ( sizeof(x)==8 && sizeof(a)==8 )
      pos:
        line_end: 31771
        line_start: 31771
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 31778
      start: 31769
    functionDepth: 1
    functionLinenumber: 31769
    functionLinenumberEnd: 31778
    functionName: sqlite3LogEstFromDouble
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - memcpy
    - sqlite3LogEst
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3LogEstFromDouble(double x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:31802,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - x
    argTypes:
    - LogEst
    assertStmts:
    - condition: ( x<=60 )
      pos:
        line_end: 31801
        line_start: 31801
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 31805
      start: 31790
    functionDepth: 0
    functionLinenumber: 31790
    functionLinenumberEnd: 31805
    functionName: sqlite3LogEstToInt
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3LogEstToInt(LogEst x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:31856,1
    - Dst: sqlite3DbRealloc
      Src: /src/nss/lib/sqlite/sqlite3.c:31860,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:31871,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:31872,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 5
    argNames:
    - db
    - pIn
    - zName
    - nName
    - iVal
    argTypes:
    - sqlite3*
    - VList*
    - char*
    - int
    - int
    assertStmts:
    - condition: ( pIn==0 || pIn[0]>=3 )
      pos:
        line_end: 31855
        line_start: 31855
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIn[1]<=pIn[0] )
      pos:
        line_end: 31870
        line_start: 31870
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 31875
      start: 31844
    functionDepth: 8
    functionLinenumber: 31844
    functionLinenumberEnd: 31875
    functionName: sqlite3VListAdd
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3DbRealloc
    - memcpy
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3VListAdd(\n  sqlite3 *db,           /* The
      database connection used for malloc() */\n  VList *pIn,            /* The input
      VList.  Might be NULL */\n  const char *zName,     /* Name of symbol to add
      */\n  int nName,             /* Bytes of text in zName */\n  int iVal               /*
      Value to associate with zName */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - pIn
    - iVal
    argTypes:
    - VList*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31892
      start: 31882
    functionDepth: 0
    functionLinenumber: 31882
    functionLinenumberEnd: 31892
    functionName: sqlite3VListNumToName
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3VListNumToName(VList *pIn, int iVal)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/nss/lib/sqlite/sqlite3.c:31905,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - pIn
    - zName
    - nName
    argTypes:
    - VList*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31909
      start: 31898
    functionDepth: 0
    functionLinenumber: 31898
    functionLinenumberEnd: 31909
    functionName: sqlite3VListNameToNum
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VListNameToNum(VList *pIn, const char *zName,
      int nName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:31936,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - pNew
    argTypes:
    - Hash*
    assertStmts:
    - condition: ( pNew!=0 )
      pos:
        line_end: 31935
        line_start: 31935
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 31941
      start: 31935
    functionDepth: 0
    functionLinenumber: 31935
    functionLinenumberEnd: 31941
    functionName: sqlite3HashInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3HashInit(Hash *pNew)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:31950,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:31953,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:31958,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - pH
    argTypes:
    - Hash*
    assertStmts:
    - condition: ( pH!=0 )
      pos:
        line_end: 31949
        line_start: 31949
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 31962
      start: 31947
    functionDepth: 3
    functionLinenumber: 31947
    functionLinenumberEnd: 31962
    functionName: sqlite3HashClear
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_free
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3HashClear(Hash *pH)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - z
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31978
      start: 31967
    functionDepth: 0
    functionLinenumber: 31967
    functionLinenumberEnd: 31978
    functionName: strHash
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int strHash(const char *z)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 3
    argNames:
    - pH
    - pEntry
    - pNew
    argTypes:
    - Hash*
    - struct _ht*
    - HashElem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32009
      start: 31984
    functionDepth: 0
    functionLinenumber: 31984
    functionLinenumberEnd: 32009
    functionName: insertElement
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void insertElement(\n  Hash *pH,              /* The complete hash
      table */\n  struct _ht *pEntry,    /* The entry into which pNew is inserted
      */\n  HashElem *pNew         /* The element to be inserted */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BeginBenignMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:32037,1
    - Dst: sqlite3Malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:32038,1
    - Dst: sqlite3EndBenignMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:32039,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:32042,1
    - Dst: sqlite3MallocSize
      Src: /src/nss/lib/sqlite/sqlite3.c:32044,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:32045,1
    - Dst: strHash
      Src: /src/nss/lib/sqlite/sqlite3.c:32047,1
    - Dst: insertElement
      Src: /src/nss/lib/sqlite/sqlite3.c:32049,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - pH
    - new_size
    argTypes:
    - Hash*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32052
      start: 32018
    functionDepth: 5
    functionLinenumber: 32018
    functionLinenumberEnd: 32052
    functionName: rehash
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3EndBenignMalloc
    - sqlite3BeginBenignMalloc
    - sqlite3MallocSize
    - sqlite3Malloc
    - insertElement
    - memset
    - strHash
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int rehash(Hash *pH, unsigned int new_size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strHash
      Src: /src/nss/lib/sqlite/sqlite3.c:32071,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:32082,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:32083,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - pH
    - pKey
    - pHash
    argTypes:
    - Hash*
    - char*
    - unsigned int*
    assertStmts:
    - condition: ( elem!=0 )
      pos:
        line_end: 32081
        line_start: 32081
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 32089
      start: 32059
    functionDepth: 1
    functionLinenumber: 32059
    functionLinenumberEnd: 32089
    functionName: findElementWithHash
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - strHash
    - sqlite3StrICmp
    linkageType: ''
    returnType: HashElem
    signature: "HashElem *findElementWithHash(\n  const Hash *pH,     /* The pH to
      be searched */\n  const char *pKey,   /* The key we are searching for */\n  unsigned
      int *pHash /* Write the hash value here */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:32113,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:32116,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:32119,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:32120,1
    - Dst: sqlite3HashClear
      Src: /src/nss/lib/sqlite/sqlite3.c:32121,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - pH
    - elem
    - h
    argTypes:
    - Hash*
    - HashElem*
    - unsigned int
    assertStmts:
    - condition: ( pEntry->count>0 )
      pos:
        line_end: 32112
        line_start: 32112
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pH->count==0 )
      pos:
        line_end: 32119
        line_start: 32119
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pH->first==0 )
      pos:
        line_end: 32118
        line_start: 32118
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 32123
      start: 32094
    functionDepth: 4
    functionLinenumber: 32094
    functionLinenumberEnd: 32123
    functionName: removeElementGivenHash
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3HashClear
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: "void removeElementGivenHash(\n  Hash *pH,         /* The pH containing
      \"elem\" */\n  HashElem* elem,   /* The element to be removed from the pH */\n
      \ unsigned int h    /* Hash value for the element */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:32130,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:32131,1
    - Dst: findElementWithHash
      Src: /src/nss/lib/sqlite/sqlite3.c:32132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pH
    - pKey
    argTypes:
    - Hash*
    - char*
    assertStmts:
    - condition: ( pH!=0 )
      pos:
        line_end: 32129
        line_start: 32129
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pKey!=0 )
      pos:
        line_end: 32130
        line_start: 32130
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 32133
      start: 32129
    functionDepth: 2
    functionLinenumber: 32129
    functionLinenumberEnd: 32133
    functionName: sqlite3HashFind
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - findElementWithHash
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3HashFind(const Hash *pH, const char *pKey)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:32154,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:32155,1
    - Dst: findElementWithHash
      Src: /src/nss/lib/sqlite/sqlite3.c:32156,1
    - Dst: removeElementGivenHash
      Src: /src/nss/lib/sqlite/sqlite3.c:32160,1
    - Dst: sqlite3Malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:32168,1
    - Dst: rehash
      Src: /src/nss/lib/sqlite/sqlite3.c:32174,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:32175,1
    - Dst: strHash
      Src: /src/nss/lib/sqlite/sqlite3.c:32176,1
    - Dst: insertElement
      Src: /src/nss/lib/sqlite/sqlite3.c:32179,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 3
    argNames:
    - pH
    - pKey
    - data
    argTypes:
    - Hash*
    - char*
    - void*
    assertStmts:
    - condition: ( pH!=0 )
      pos:
        line_end: 32153
        line_start: 32153
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pKey!=0 )
      pos:
        line_end: 32154
        line_start: 32154
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pH->htsize>0 )
      pos:
        line_end: 32174
        line_start: 32174
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 32181
      start: 32149
    functionDepth: 6
    functionLinenumber: 32149
    functionLinenumberEnd: 32181
    functionName: sqlite3HashInsert
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - removeElementGivenHash
    - sqlite3Malloc
    - insertElement
    - assert
    - rehash
    - findElementWithHash
    - strHash
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3HashInsert(Hash *pH, const char *pKey, void
      *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32192
      start: 32191
    functionDepth: 0
    functionLinenumber: 32191
    functionLinenumberEnd: 32192
    functionName: OpHelp
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OpHelp(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32197,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32198,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32199,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32200,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32201,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32202,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32203,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32204,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32205,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32206,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32207,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32208,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32209,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32210,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32211,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32212,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32213,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32214,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32215,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32216,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32217,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32218,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32219,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32220,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32221,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32222,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32223,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32224,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32225,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32226,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32227,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32228,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32229,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32230,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32231,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32232,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32233,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32234,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32235,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32236,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32237,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32238,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32239,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32240,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32241,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32242,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32243,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32244,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32245,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32246,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32247,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32248,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32249,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32250,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32251,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32252,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32253,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32254,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32255,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32256,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32257,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32258,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32259,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32260,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32261,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32262,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32263,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32264,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32265,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32266,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32267,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32268,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32269,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32270,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32271,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32272,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32273,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32274,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32275,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32276,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32277,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32278,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32279,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32280,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32281,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32282,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32283,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32284,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32285,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32286,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32287,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32288,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32289,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32290,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32291,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32292,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32293,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32294,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32295,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32296,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32297,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32298,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32299,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32300,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32301,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32302,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32303,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32304,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32305,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32306,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32307,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32308,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32309,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32310,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32311,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32312,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32313,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32314,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32315,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32316,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32317,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32318,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32319,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32320,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32321,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32322,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32323,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32324,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32325,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32326,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32327,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32328,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32329,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32330,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32331,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32332,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32333,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32334,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32335,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32336,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32337,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32338,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32339,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32340,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32341,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32342,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32343,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32344,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32345,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32346,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32347,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32348,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32349,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32350,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32351,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32352,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32353,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32354,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32355,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32356,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32357,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32358,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32359,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32360,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32361,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32362,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32363,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32364,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32365,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32366,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32367,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32368,1
    - Dst: OpHelp
      Src: /src/nss/lib/sqlite/sqlite3.c:32369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32372
      start: 32195
    functionDepth: 1
    functionLinenumber: 32195
    functionLinenumberEnd: 32372
    functionName: sqlite3OpcodeName
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - OpHelp
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3OpcodeName(int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32548
      start: 32547
    functionDepth: 0
    functionLinenumber: 32547
    functionLinenumberEnd: 32548
    functionName: osGetpid
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: osGetpid(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32554
      start: 32553
    functionDepth: 0
    functionLinenumber: 32553
    functionLinenumberEnd: 32554
    functionName: IS_LOCK_ERROR
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_LOCK_ERROR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32737
      start: 32733
    functionDepth: 0
    functionLinenumber: 32733
    functionLinenumberEnd: 32737
    functionName: sqlite3Hwtime
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sqlite_uint64
    signature: sqlite_uint64 sqlite3Hwtime(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32756
      start: 32752
    functionDepth: 0
    functionLinenumber: 32752
    functionLinenumberEnd: 32756
    functionName: sqlite3Hwtime
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sqlite_uint64
    signature: sqlite_uint64 sqlite3Hwtime(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32771
      start: 32760
    functionDepth: 0
    functionLinenumber: 32760
    functionLinenumberEnd: 32771
    functionName: sqlite3Hwtime
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sqlite_uint64
    signature: sqlite_uint64 sqlite3Hwtime(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32784
      start: 32784
    functionDepth: 0
    functionLinenumber: 32784
    functionLinenumberEnd: 32784
    functionName: sqlite_uint64::sqlite3Hwtime
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite_uint64 sqlite3Hwtime(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32818
      start: 32817
    functionDepth: 0
    functionLinenumber: 32817
    functionLinenumberEnd: 32818
    functionName: SimulateIOErrorBenign
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SimulateIOErrorBenign(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - CODE
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32822
      start: 32818
    functionDepth: 0
    functionLinenumber: 32818
    functionLinenumberEnd: 32822
    functionName: SimulateIOError
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SimulateIOError(CODE)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IOTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:32823,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32826
      start: 32822
    functionDepth: 1
    functionLinenumber: 32822
    functionLinenumberEnd: 32826
    functionName: local_ioerr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - IOTRACE
    linkageType: ''
    returnType: void
    signature: void local_ioerr()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - CODE
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32838
      start: 32827
    functionDepth: 0
    functionLinenumber: 32827
    functionLinenumberEnd: 32838
    functionName: SimulateDiskfullError
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SimulateDiskfullError(CODE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32850
      start: 32849
    functionDepth: 0
    functionLinenumber: 32849
    functionLinenumberEnd: 32850
    functionName: OpenCounter
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OpenCounter(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/nss/lib/sqlite/sqlite3.c:32928,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - zFile
    - flags
    - mode
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32929
      start: 32927
    functionDepth: 0
    functionLinenumber: 32927
    functionLinenumberEnd: 32929
    functionName: posixOpen
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - open
    linkageType: ''
    returnType: int
    signature: int posixOpen(const char *zFile, int flags, int mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: osGeteuid
      Src: /src/nss/lib/sqlite/sqlite3.c:33116,1
    - Dst: osFchown
      Src: /src/nss/lib/sqlite/sqlite3.c:33116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fd
    - uid
    - gid
    argTypes:
    - int
    - uid_t
    - gid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33120
      start: 33114
    functionDepth: 0
    functionLinenumber: 33114
    functionLinenumberEnd: 33120
    functionName: robustFchown
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - osFchown
    - osGeteuid
    linkageType: ''
    returnType: int
    signature: int robustFchown(int fd, uid_t uid, gid_t gid)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:33136,1
    - Dst: strcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:33152,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - pNotUsed
    - zName
    - pNewFunc
    argTypes:
    - sqlite3_vfs*
    - char*
    - sqlite3_syscall_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33164
      start: 33128
    functionDepth: 1
    functionLinenumber: 33128
    functionLinenumberEnd: 33164
    functionName: unixSetSystemCall
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - strcmp
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: int
    signature: "int unixSetSystemCall(\n  sqlite3_vfs *pNotUsed,        /* The VFS
      pointer.  Not used */\n  const char *zName,            /* Name of system call
      to override */\n  sqlite3_syscall_ptr pNewFunc  /* Pointer to new system call
      value */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:33177,1
    - Dst: strcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:33179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - pNotUsed
    - zName
    argTypes:
    - sqlite3_vfs*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33182
      start: 33171
    functionDepth: 1
    functionLinenumber: 33171
    functionLinenumberEnd: 33182
    functionName: unixGetSystemCall
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - strcmp
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: sqlite3_syscall_ptr
    signature: "sqlite3_syscall_ptr unixGetSystemCall(\n  sqlite3_vfs *pNotUsed,\n
      \ const char *zName\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:33193,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:33195,1
    - Dst: strcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:33196,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:33199,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - p
    - zName
    argTypes:
    - sqlite3_vfs*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33203
      start: 33190
    functionDepth: 1
    functionLinenumber: 33190
    functionLinenumberEnd: 33203
    functionName: unixNextSystemCall
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - strcmp
    - ArraySize
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: char
    signature: char *unixNextSystemCall(sqlite3_vfs *p, const char *zName)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: osOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:33236,1
    - Dst: osOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:33238,1
    - Dst: osClose
      Src: /src/nss/lib/sqlite/sqlite3.c:33245,1
    - Dst: sqlite3_log
      Src: /src/nss/lib/sqlite/sqlite3.c:33246,1
    - Dst: osOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:33249,1
    - Dst: osFstat
      Src: /src/nss/lib/sqlite/sqlite3.c:33254,1
    - Dst: osFchmod
      Src: /src/nss/lib/sqlite/sqlite3.c:33258,1
    - Dst: osFcntl
      Src: /src/nss/lib/sqlite/sqlite3.c:33262,1
    - Dst: osFcntl
      Src: /src/nss/lib/sqlite/sqlite3.c:33262,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 26
    argCount: 3
    argNames:
    - z
    - f
    - m
    argTypes:
    - char*
    - int
    - mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33266
      start: 33231
    functionDepth: 10
    functionLinenumber: 33231
    functionLinenumberEnd: 33266
    functionName: robust_open
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - osFcntl
    - sqlite3_log
    - osFstat
    - osOpen
    - osClose
    - osFchmod
    linkageType: ''
    returnType: int
    signature: int robust_open(const char *z, int f, mode_t m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:33295,1
    - Dst: sqlite3_mutex_notheld
      Src: /src/nss/lib/sqlite/sqlite3.c:33295,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:33296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( sqlite3_mutex_notheld(unixBigLock) )
      pos:
        line_end: 33294
        line_start: 33294
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 33297
      start: 33294
    functionDepth: 1
    functionLinenumber: 33294
    functionLinenumberEnd: 33297
    functionName: unixEnterMutex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_mutex_notheld
    - sqlite3_mutex_enter
    linkageType: ''
    returnType: void
    signature: void unixEnterMutex(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:33299,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:33299,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:33300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( sqlite3_mutex_held(unixBigLock) )
      pos:
        line_end: 33298
        line_start: 33298
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 33301
      start: 33298
    functionDepth: 1
    functionLinenumber: 33298
    functionLinenumberEnd: 33301
    functionName: unixLeaveMutex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_mutex_held
    - sqlite3_mutex_leave
    linkageType: ''
    returnType: void
    signature: void unixLeaveMutex(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:33304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33305
      start: 33303
    functionDepth: 1
    functionLinenumber: 33303
    functionLinenumberEnd: 33305
    functionName: unixMutexHeld
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    linkageType: ''
    returnType: int
    signature: int unixMutexHeld(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - eFileLock
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33324
      start: 33315
    functionDepth: 0
    functionLinenumber: 33315
    functionLinenumberEnd: 33324
    functionName: azFileLock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *azFileLock(int eFileLock)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: osFcntl
      Src: /src/nss/lib/sqlite/sqlite3.c:33345,1
    - Dst: sqlite3DebugPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:33346,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:33356,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:33358,1
    - Dst: osFcntl
      Src: /src/nss/lib/sqlite/sqlite3.c:33359,1
    - Dst: sqlite3DebugPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:33361,1
    - Dst: osFcntl
      Src: /src/nss/lib/sqlite/sqlite3.c:33367,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:33375,1
    - Dst: sqlite3DebugPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:33377,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 3
    argNames:
    - fd
    - op
    - p
    argTypes:
    - int
    - int
    - struct flock*
    assertStmts:
    - condition: ( 0 )
      pos:
        line_end: 33355
        line_start: 33355
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->l_whence==SEEK_SET )
      pos:
        line_end: 33357
        line_start: 33357
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( 0 )
      pos:
        line_end: 33374
        line_start: 33374
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 33382
      start: 33336
    functionDepth: 9
    functionLinenumber: 33336
    functionLinenumberEnd: 33382
    functionName: lockTrace
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - osFcntl
    - sqlite3DebugPrintf
    linkageType: ''
    returnType: int
    signature: int lockTrace(int fd, int op, struct flock *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: osFtruncate
      Src: /src/nss/lib/sqlite/sqlite3.c:33405,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - h
    - sz
    argTypes:
    - int
    - sqlite3_int64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33407
      start: 33394
    functionDepth: 0
    functionLinenumber: 33394
    functionLinenumberEnd: 33407
    functionName: robust_ftruncate
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - osFtruncate
    linkageType: ''
    returnType: int
    signature: int robust_ftruncate(int h, sqlite3_int64 sz)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:33420,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - posixError
    - sqliteIOErr
    argTypes:
    - int
    - int
    assertStmts:
    - condition: "( (sqliteIOErr == SQLITE_IOERR_LOCK) || \n          (sqliteIOErr
        == SQLITE_IOERR_UNLOCK) || \n          (sqliteIOErr == SQLITE_IOERR_RDLOCK)
        ||\n          (sqliteIOErr == SQLITE_IOERR_CHECKRESERVEDLOCK) )"
      pos:
        line_end: 33422
        line_start: 33419
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 33441
      start: 33419
    functionDepth: 0
    functionLinenumber: 33419
    functionLinenumberEnd: 33441
    functionName: sqliteErrorFromPosixError
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int sqliteErrorFromPosixError(int posixError, int sqliteIOErr)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 27
    argCount: 2
    argNames:
    - z
    - n
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33509
      start: 33488
    functionDepth: 0
    functionLinenumber: 33488
    functionLinenumberEnd: 33509
    functionName: vxworksSimplifyName
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int vxworksSimplifyName(char *z, int n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:33527,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:33528,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:33529,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:33532,1
    - Dst: vxworksSimplifyName
      Src: /src/nss/lib/sqlite/sqlite3.c:33533,1
    - Dst: unixEnterMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:33539,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:33542,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:33544,1
    - Dst: unixLeaveMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:33546,1
    - Dst: unixLeaveMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:33556,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - zAbsoluteName
    argTypes:
    - char*
    assertStmts:
    - condition: ( zAbsoluteName[0]=='/' )
      pos:
        line_end: 33526
        line_start: 33526
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 33558
      start: 33522
    functionDepth: 6
    functionLinenumber: 33522
    functionLinenumberEnd: 33558
    functionName: vxworksFindFileId
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - sqlite3_malloc64
    - vxworksSimplifyName
    - unixEnterMutex
    - unixLeaveMutex
    - assert
    - memcmp
    - sqlite3_free
    - strlen
    linkageType: ''
    returnType: struct vxworksFileId
    signature: struct vxworksFileId *vxworksFindFileId(const char *zAbsoluteName)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unixEnterMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:33565,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:33566,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:33571,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:33573,1
    - Dst: unixLeaveMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:33575,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - pId
    argTypes:
    - struct vxworksFileId*
    assertStmts:
    - condition: ( *pp==pId )
      pos:
        line_end: 33570
        line_start: 33570
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pId->nRef>0 )
      pos:
        line_end: 33565
        line_start: 33565
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 33576
      start: 33564
    functionDepth: 3
    functionLinenumber: 33564
    functionLinenumberEnd: 33576
    functionName: vxworksReleaseFileId
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - unixEnterMutex
    - sqlite3_free
    - unixLeaveMutex
    linkageType: ''
    returnType: void
    signature: void vxworksReleaseFileId(struct vxworksFileId *pId)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:33752,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:33753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pFile
    argTypes:
    - unixFile*
    assertStmts:
    - condition: ( pFile->pInode )
      pos:
        line_end: 33751
        line_start: 33751
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 33754
      start: 33751
    functionDepth: 1
    functionLinenumber: 33751
    functionLinenumberEnd: 33754
    functionName: unixFileMutexHeld
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_mutex_held
    linkageType: ''
    returnType: int
    signature: int unixFileMutexHeld(unixFile *pFile)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:33756,1
    - Dst: sqlite3_mutex_notheld
      Src: /src/nss/lib/sqlite/sqlite3.c:33757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pFile
    argTypes:
    - unixFile*
    assertStmts:
    - condition: ( pFile->pInode )
      pos:
        line_end: 33755
        line_start: 33755
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 33758
      start: 33755
    functionDepth: 1
    functionLinenumber: 33755
    functionLinenumberEnd: 33758
    functionName: unixFileMutexNotheld
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_mutex_notheld
    linkageType: ''
    returnType: int
    signature: int unixFileMutexNotheld(unixFile *pFile)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33778
      start: 33777
    functionDepth: 0
    functionLinenumber: 33777
    functionLinenumberEnd: 33778
    functionName: unixLogError
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unixLogError(a,b,c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:33793,1
    - Dst: strerror_r
      Src: /src/nss/lib/sqlite/sqlite3.c:33811,1
    - Dst: strerror
      Src: /src/nss/lib/sqlite/sqlite3.c:33818,1
    - Dst: sqlite3_log
      Src: /src/nss/lib/sqlite/sqlite3.c:33822,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - errcode
    - zFunc
    - zPath
    - iLine
    argTypes:
    - int
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33828
      start: 33778
    functionDepth: 10
    functionLinenumber: 33778
    functionLinenumberEnd: 33828
    functionName: unixLogErrorAtLine
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3_log
    - strerror
    - strerror_r
    linkageType: ''
    returnType: int
    signature: "int unixLogErrorAtLine(\n  int errcode,                    /* SQLite
      error code */\n  const char *zFunc,              /* Name of OS function that
      failed */\n  const char *zPath,              /* File path associated with error
      */\n  int iLine                       /* Source line number where error occurred
      */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: osClose
      Src: /src/nss/lib/sqlite/sqlite3.c:33844,1
    - Dst: unixLogErrorAtLine
      Src: /src/nss/lib/sqlite/sqlite3.c:33845,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - pFile
    - h
    - lineno
    argTypes:
    - unixFile*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33848
      start: 33843
    functionDepth: 11
    functionLinenumber: 33843
    functionLinenumberEnd: 33848
    functionName: robust_close
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - osClose
    - unixLogErrorAtLine
    linkageType: ''
    returnType: void
    signature: void robust_close(unixFile *pFile, int h, int lineno)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pFile
    - error
    argTypes:
    - unixFile*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33856
      start: 33854
    functionDepth: 0
    functionLinenumber: 33854
    functionLinenumberEnd: 33856
    functionName: storeLastErrno
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void storeLastErrno(unixFile *pFile, int error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:33865,1
    - Dst: unixFileMutexHeld
      Src: /src/nss/lib/sqlite/sqlite3.c:33865,1
    - Dst: robust_close
      Src: /src/nss/lib/sqlite/sqlite3.c:33868,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:33869,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - pFile
    argTypes:
    - unixFile*
    assertStmts:
    - condition: ( unixFileMutexHeld(pFile) )
      pos:
        line_end: 33864
        line_start: 33864
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 33872
      start: 33861
    functionDepth: 12
    functionLinenumber: 33861
    functionLinenumberEnd: 33872
    functionName: closePendingFds
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_free
    - robust_close
    - unixFileMutexHeld
    linkageType: ''
    returnType: void
    signature: void closePendingFds(unixFile *pFile)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:33882,1
    - Dst: unixMutexHeld
      Src: /src/nss/lib/sqlite/sqlite3.c:33882,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:33883,1
    - Dst: unixFileMutexNotheld
      Src: /src/nss/lib/sqlite/sqlite3.c:33883,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:33884,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:33887,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:33888,1
    - Dst: closePendingFds
      Src: /src/nss/lib/sqlite/sqlite3.c:33889,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:33890,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:33892,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:33895,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:33899,1
    - Dst: sqlite3_mutex_free
      Src: /src/nss/lib/sqlite/sqlite3.c:33902,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:33903,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 1
    argNames:
    - pFile
    argTypes:
    - unixFile*
    assertStmts:
    - condition: ( unixMutexHeld() )
      pos:
        line_end: 33881
        line_start: 33881
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( unixFileMutexNotheld(pFile) )
      pos:
        line_end: 33882
        line_start: 33882
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pInode->pShmNode==0 )
      pos:
        line_end: 33886
        line_start: 33886
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pInode->pPrev->pNext==pInode )
      pos:
        line_end: 33891
        line_start: 33891
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( inodeList==pInode )
      pos:
        line_end: 33894
        line_start: 33894
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pInode->pNext->pPrev==pInode )
      pos:
        line_end: 33898
        line_start: 33898
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 33906
      start: 33880
    functionDepth: 13
    functionLinenumber: 33880
    functionLinenumberEnd: 33906
    functionName: releaseInodeInfo
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - ALWAYS
    - sqlite3_free
    - sqlite3_mutex_leave
    - unixMutexHeld
    - assert
    - closePendingFds
    - sqlite3_mutex_free
    - unixFileMutexNotheld
    linkageType: ''
    returnType: void
    signature: void releaseInodeInfo(unixFile *pFile)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:33927,1
    - Dst: unixMutexHeld
      Src: /src/nss/lib/sqlite/sqlite3.c:33927,1
    - Dst: osFstat
      Src: /src/nss/lib/sqlite/sqlite3.c:33933,1
    - Dst: storeLastErrno
      Src: /src/nss/lib/sqlite/sqlite3.c:33935,1
    - Dst: osWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:33954,1
    - Dst: storeLastErrno
      Src: /src/nss/lib/sqlite/sqlite3.c:33956,1
    - Dst: osFstat
      Src: /src/nss/lib/sqlite/sqlite3.c:33959,1
    - Dst: storeLastErrno
      Src: /src/nss/lib/sqlite/sqlite3.c:33961,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:33967,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:33974,1
    - Dst: unixMutexHeld
      Src: /src/nss/lib/sqlite/sqlite3.c:33974,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:33976,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:33980,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:33984,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:33985,1
    - Dst: sqlite3_mutex_alloc
      Src: /src/nss/lib/sqlite/sqlite3.c:33987,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:33989,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:33994,1
    - Dst: unixMutexHeld
      Src: /src/nss/lib/sqlite/sqlite3.c:33994,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 59
    argCount: 2
    argNames:
    - pFile
    - ppInode
    argTypes:
    - unixFile*
    - unixInodeInfo**
    assertStmts:
    - condition: ( unixMutexHeld() )
      pos:
        line_end: 33926
        line_start: 33926
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( unixMutexHeld() )
      pos:
        line_end: 33973
        line_start: 33973
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( unixMutexHeld() )
      pos:
        line_end: 33993
        line_start: 33993
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 34004
      start: 33917
    functionDepth: 6
    functionLinenumber: 33917
    functionLinenumberEnd: 34004
    functionName: findInodeInfo
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - sqlite3_malloc64
    - storeLastErrno
    - osWrite
    - osFstat
    - unixMutexHeld
    - assert
    - memset
    - sqlite3_mutex_alloc
    - memcmp
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int findInodeInfo(\n  unixFile *pFile,               /* Unix file
      with file desc used in the key */\n  unixInodeInfo **ppInode        /* Return
      the unixInodeInfo object here */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: osStat
      Src: /src/nss/lib/sqlite/sqlite3.c:34015,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - pFile
    argTypes:
    - unixFile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34018
      start: 34009
    functionDepth: 0
    functionLinenumber: 34009
    functionLinenumberEnd: 34018
    functionName: fileHasMoved
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - osStat
    linkageType: ''
    returnType: int
    signature: int fileHasMoved(unixFile *pFile)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: osFstat
      Src: /src/nss/lib/sqlite/sqlite3.c:34037,1
    - Dst: sqlite3_log
      Src: /src/nss/lib/sqlite/sqlite3.c:34039,1
    - Dst: sqlite3_log
      Src: /src/nss/lib/sqlite/sqlite3.c:34043,1
    - Dst: sqlite3_log
      Src: /src/nss/lib/sqlite/sqlite3.c:34047,1
    - Dst: fileHasMoved
      Src: /src/nss/lib/sqlite/sqlite3.c:34050,1
    - Dst: sqlite3_log
      Src: /src/nss/lib/sqlite/sqlite3.c:34051,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - pFile
    argTypes:
    - unixFile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34054
      start: 34030
    functionDepth: 10
    functionLinenumber: 34030
    functionLinenumberEnd: 34054
    functionName: verifyDbFile
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_log
    - osFstat
    - fileHasMoved
    linkageType: ''
    returnType: void
    signature: void verifyDbFile(unixFile *pFile)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:34070,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:34071,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:34072,1
    - Dst: osFcntl
      Src: /src/nss/lib/sqlite/sqlite3.c:34088,1
    - Dst: storeLastErrno
      Src: /src/nss/lib/sqlite/sqlite3.c:34090,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:34097,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:34098,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - id
    - pResOut
    argTypes:
    - sqlite3_file*
    - int*
    assertStmts:
    - condition: ( pFile )
      pos:
        line_end: 34069
        line_start: 34069
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pFile->eFileLock<=SHARED_LOCK )
      pos:
        line_end: 34070
        line_start: 34070
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 34102
      start: 34063
    functionDepth: 1
    functionLinenumber: 34063
    functionLinenumberEnd: 34102
    functionName: unixCheckReservedLock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - storeLastErrno
    - sqlite3_mutex_leave
    - OSTRACE
    - assert
    - osFcntl
    linkageType: ''
    returnType: int
    signature: int unixCheckReservedLock(sqlite3_file *id, int *pResOut)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - h
    - ','
    - x
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34119
      start: 34118
    functionDepth: 0
    functionLinenumber: 34118
    functionLinenumberEnd: 34119
    functionName: osSetPosixAdvisoryLock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: osSetPosixAdvisoryLock(h,x,t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: osFcntl
      Src: /src/nss/lib/sqlite/sqlite3.c:34125,1
    - Dst: usleep
      Src: /src/nss/lib/sqlite/sqlite3.c:34132,1
    - Dst: osFcntl
      Src: /src/nss/lib/sqlite/sqlite3.c:34133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - h
    - pLock
    - pFile
    argTypes:
    - int
    - struct flock*
    - unixFile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34137
      start: 34120
    functionDepth: 0
    functionLinenumber: 34120
    functionLinenumberEnd: 34137
    functionName: osSetPosixAdvisoryLock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - osFcntl
    - usleep
    linkageType: ''
    returnType: int
    signature: "int osSetPosixAdvisoryLock(\n  int h,                /* The file descriptor
      on which to take the lock */\n  struct flock *pLock,  /* The description of
      the lock */\n  unixFile *pFile       /* Structure holding timeout value */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:34163,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:34164,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:34164,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:34168,1
    - Dst: osSetPosixAdvisoryLock
      Src: /src/nss/lib/sqlite/sqlite3.c:34173,1
    - Dst: osSetPosixAdvisoryLock
      Src: /src/nss/lib/sqlite/sqlite3.c:34181,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - pFile
    - pLock
    argTypes:
    - unixFile*
    - struct flock*
    assertStmts:
    - condition: ( pInode!=0 )
      pos:
        line_end: 34162
        line_start: 34162
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pInode->nLock==0 )
      pos:
        line_end: 34167
        line_start: 34167
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3_mutex_held(pInode->pLockMutex) )
      pos:
        line_end: 34163
        line_start: 34163
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 34184
      start: 34160
    functionDepth: 1
    functionLinenumber: 34160
    functionLinenumberEnd: 34184
    functionName: unixFileLock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_mutex_held
    - osSetPosixAdvisoryLock
    linkageType: ''
    returnType: int
    signature: int unixFileLock(unixFile *pFile, struct flock *pLock)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:34256,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:34257,1
    - Dst: azFileLock
      Src: /src/nss/lib/sqlite/sqlite3.c:34258,1
    - Dst: azFileLock
      Src: /src/nss/lib/sqlite/sqlite3.c:34258,1
    - Dst: azFileLock
      Src: /src/nss/lib/sqlite/sqlite3.c:34259,1
    - Dst: osGetpid
      Src: /src/nss/lib/sqlite/sqlite3.c:34260,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:34267,1
    - Dst: azFileLock
      Src: /src/nss/lib/sqlite/sqlite3.c:34268,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:34277,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:34278,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:34279,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:34284,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:34302,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:34303,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:34304,1
    - Dst: unixFileLock
      Src: /src/nss/lib/sqlite/sqlite3.c:34323,1
    - Dst: sqliteErrorFromPosixError
      Src: /src/nss/lib/sqlite/sqlite3.c:34325,1
    - Dst: storeLastErrno
      Src: /src/nss/lib/sqlite/sqlite3.c:34327,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:34338,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:34339,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:34340,1
    - Dst: unixFileLock
      Src: /src/nss/lib/sqlite/sqlite3.c:34345,1
    - Dst: sqliteErrorFromPosixError
      Src: /src/nss/lib/sqlite/sqlite3.c:34347,1
    - Dst: unixFileLock
      Src: /src/nss/lib/sqlite/sqlite3.c:34354,1
    - Dst: storeLastErrno
      Src: /src/nss/lib/sqlite/sqlite3.c:34362,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:34379,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:34382,1
    - Dst: unixFileLock
      Src: /src/nss/lib/sqlite/sqlite3.c:34391,1
    - Dst: sqliteErrorFromPosixError
      Src: /src/nss/lib/sqlite/sqlite3.c:34393,1
    - Dst: storeLastErrno
      Src: /src/nss/lib/sqlite/sqlite3.c:34395,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:34427,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:34428,1
    - Dst: azFileLock
      Src: /src/nss/lib/sqlite/sqlite3.c:34428,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 110
    argCount: 2
    argNames:
    - id
    - eFileLock
    argTypes:
    - sqlite3_file*
    - int
    assertStmts:
    - condition: ( eFileLock!=RESERVED_LOCK || pFile->eFileLock==SHARED_LOCK )
      pos:
        line_end: 34278
        line_start: 34278
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( eFileLock==SHARED_LOCK )
      pos:
        line_end: 34301
        line_start: 34301
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pInode->eFileLock==0 )
      pos:
        line_end: 34338
        line_start: 34338
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pFile )
      pos:
        line_end: 34255
        line_start: 34255
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pInode->nShared==0 )
      pos:
        line_end: 34337
        line_start: 34337
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pInode->nShared>0 )
      pos:
        line_end: 34303
        line_start: 34303
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( 0!=pFile->eFileLock )
      pos:
        line_end: 34378
        line_start: 34378
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pFile->eFileLock!=NO_LOCK || eFileLock==SHARED_LOCK )
      pos:
        line_end: 34276
        line_start: 34276
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( eFileLock!=PENDING_LOCK )
      pos:
        line_end: 34277
        line_start: 34277
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pFile->eFileLock==0 )
      pos:
        line_end: 34302
        line_start: 34302
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc==SQLITE_OK )
      pos:
        line_end: 34339
        line_start: 34339
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( eFileLock==RESERVED_LOCK || eFileLock==EXCLUSIVE_LOCK )
      pos:
        line_end: 34381
        line_start: 34381
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 34431
      start: 34210
    functionDepth: 2
    functionLinenumber: 34210
    functionLinenumberEnd: 34431
    functionName: unixLock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - storeLastErrno
    - sqlite3_mutex_leave
    - OSTRACE
    - assert
    - azFileLock
    - osGetpid
    - unixFileLock
    - sqliteErrorFromPosixError
    linkageType: ''
    returnType: int
    signature: int unixLock(sqlite3_file *id, int eFileLock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:34440,1
    - Dst: unixFileMutexHeld
      Src: /src/nss/lib/sqlite/sqlite3.c:34440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - pFile
    argTypes:
    - unixFile*
    assertStmts:
    - condition: ( unixFileMutexHeld(pFile) )
      pos:
        line_end: 34439
        line_start: 34439
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 34445
      start: 34437
    functionDepth: 2
    functionLinenumber: 34437
    functionLinenumberEnd: 34445
    functionName: setPendingFd
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - unixFileMutexHeld
    linkageType: ''
    returnType: void
    signature: void setPendingFd(unixFile *pFile)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:34466,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:34467,1
    - Dst: osGetpid
      Src: /src/nss/lib/sqlite/sqlite3.c:34469,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:34471,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:34476,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:34477,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:34479,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:34505,1
    - Dst: unixFileLock
      Src: /src/nss/lib/sqlite/sqlite3.c:34516,1
    - Dst: storeLastErrno
      Src: /src/nss/lib/sqlite/sqlite3.c:34519,1
    - Dst: unixFileLock
      Src: /src/nss/lib/sqlite/sqlite3.c:34526,1
    - Dst: sqliteErrorFromPosixError
      Src: /src/nss/lib/sqlite/sqlite3.c:34528,1
    - Dst: IS_LOCK_ERROR
      Src: /src/nss/lib/sqlite/sqlite3.c:34529,1
    - Dst: storeLastErrno
      Src: /src/nss/lib/sqlite/sqlite3.c:34530,1
    - Dst: unixFileLock
      Src: /src/nss/lib/sqlite/sqlite3.c:34538,1
    - Dst: storeLastErrno
      Src: /src/nss/lib/sqlite/sqlite3.c:34541,1
    - Dst: unixFileLock
      Src: /src/nss/lib/sqlite/sqlite3.c:34551,1
    - Dst: storeLastErrno
      Src: /src/nss/lib/sqlite/sqlite3.c:34559,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:34567,1
    - Dst: unixFileLock
      Src: /src/nss/lib/sqlite/sqlite3.c:34568,1
    - Dst: storeLastErrno
      Src: /src/nss/lib/sqlite/sqlite3.c:34572,1
    - Dst: unixFileLock
      Src: /src/nss/lib/sqlite/sqlite3.c:34586,1
    - Dst: storeLastErrno
      Src: /src/nss/lib/sqlite/sqlite3.c:34590,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:34601,1
    - Dst: closePendingFds
      Src: /src/nss/lib/sqlite/sqlite3.c:34602,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:34606,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 106
    argCount: 3
    argNames:
    - id
    - eFileLock
    - handleNFSUnlock
    argTypes:
    - sqlite3_file*
    - int
    - int
    assertStmts:
    - condition: ( handleNFSUnlock==0 )
      pos:
        line_end: 34504
        line_start: 34504
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( PENDING_BYTE+1==RESERVED_BYTE )
      pos:
        line_end: 34566
        line_start: 34566
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pInode->nLock>=0 )
      pos:
        line_end: 34600
        line_start: 34600
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pFile )
      pos:
        line_end: 34465
        line_start: 34465
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pInode->nShared!=0 )
      pos:
        line_end: 34476
        line_start: 34476
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( eFileLock<=SHARED_LOCK )
      pos:
        line_end: 34470
        line_start: 34470
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pInode->eFileLock==pFile->eFileLock )
      pos:
        line_end: 34478
        line_start: 34478
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 34611
      start: 34460
    functionDepth: 13
    functionLinenumber: 34460
    functionLinenumberEnd: 34611
    functionName: posixUnlock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - storeLastErrno
    - sqlite3_mutex_leave
    - OSTRACE
    - assert
    - IS_LOCK_ERROR
    - osGetpid
    - unixFileLock
    - closePendingFds
    - sqliteErrorFromPosixError
    linkageType: ''
    returnType: int
    signature: int posixUnlock(sqlite3_file *id, int eFileLock, int handleNFSUnlock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:34622,1
    - Dst: posixUnlock
      Src: /src/nss/lib/sqlite/sqlite3.c:34624,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - id
    - eFileLock
    argTypes:
    - sqlite3_file*
    - int
    assertStmts:
    - condition: ( eFileLock==SHARED_LOCK || ((unixFile *)id)->nFetchOut==0 )
      pos:
        line_end: 34621
        line_start: 34621
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 34625
      start: 34620
    functionDepth: 14
    functionLinenumber: 34620
    functionLinenumberEnd: 34625
    functionName: unixUnlock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - posixUnlock
    linkageType: ''
    returnType: int
    signature: int unixUnlock(sqlite3_file *id, int eFileLock)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: unixUnmapfile
      Src: /src/nss/lib/sqlite/sqlite3.c:34645,1
    - Dst: robust_close
      Src: /src/nss/lib/sqlite/sqlite3.c:34648,1
    - Dst: osUnlink
      Src: /src/nss/lib/sqlite/sqlite3.c:34654,1
    - Dst: vxworksReleaseFileId
      Src: /src/nss/lib/sqlite/sqlite3.c:34656,1
    - Dst: osUnlink
      Src: /src/nss/lib/sqlite/sqlite3.c:34662,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:34663,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:34667,1
    - Dst: OpenCounter
      Src: /src/nss/lib/sqlite/sqlite3.c:34668,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:34669,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:34670,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - id
    argTypes:
    - sqlite3_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34672
      start: 34642
    functionDepth: 12
    functionLinenumber: 34642
    functionLinenumberEnd: 34672
    functionName: closeUnixFile
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - osUnlink
    - vxworksReleaseFileId
    - OpenCounter
    - OSTRACE
    - memset
    - robust_close
    - unixUnmapfile
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int closeUnixFile(sqlite3_file *id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:34682,1
    - Dst: verifyDbFile
      Src: /src/nss/lib/sqlite/sqlite3.c:34683,1
    - Dst: unixUnlock
      Src: /src/nss/lib/sqlite/sqlite3.c:34684,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:34685,1
    - Dst: unixFileMutexNotheld
      Src: /src/nss/lib/sqlite/sqlite3.c:34685,1
    - Dst: unixEnterMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:34686,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:34691,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:34692,1
    - Dst: setPendingFd
      Src: /src/nss/lib/sqlite/sqlite3.c:34699,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:34701,1
    - Dst: releaseInodeInfo
      Src: /src/nss/lib/sqlite/sqlite3.c:34702,1
    - Dst: closeUnixFile
      Src: /src/nss/lib/sqlite/sqlite3.c:34703,1
    - Dst: unixLeaveMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:34704,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - id
    argTypes:
    - sqlite3_file*
    assertStmts:
    - condition: ( pInode!=0 )
      pos:
        line_end: 34681
        line_start: 34681
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( unixFileMutexNotheld(pFile) )
      pos:
        line_end: 34684
        line_start: 34684
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pFile->pInode->nLock>0 || pFile->pInode->bProcessLock==0 )
      pos:
        line_end: 34690
        line_start: 34690
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 34706
      start: 34677
    functionDepth: 15
    functionLinenumber: 34677
    functionLinenumberEnd: 34706
    functionName: unixClose
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - setPendingFd
    - releaseInodeInfo
    - unixEnterMutex
    - sqlite3_mutex_leave
    - assert
    - closeUnixFile
    - unixUnlock
    - unixLeaveMutex
    - verifyDbFile
    - unixFileMutexNotheld
    linkageType: ''
    returnType: int
    signature: int unixClose(sqlite3_file *id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:34729,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - NotUsed
    - pResOut
    argTypes:
    - sqlite3_file*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34732
      start: 34728
    functionDepth: 1
    functionLinenumber: 34728
    functionLinenumberEnd: 34732
    functionName: nolockCheckReservedLock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: int
    signature: int nolockCheckReservedLock(sqlite3_file *NotUsed, int *pResOut)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER2
      Src: /src/nss/lib/sqlite/sqlite3.c:34734,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - NotUsed
    - NotUsed2
    argTypes:
    - sqlite3_file*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34736
      start: 34733
    functionDepth: 1
    functionLinenumber: 34733
    functionLinenumberEnd: 34736
    functionName: nolockLock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER2
    linkageType: ''
    returnType: int
    signature: int nolockLock(sqlite3_file *NotUsed, int NotUsed2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER2
      Src: /src/nss/lib/sqlite/sqlite3.c:34738,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - NotUsed
    - NotUsed2
    argTypes:
    - sqlite3_file*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34740
      start: 34737
    functionDepth: 1
    functionLinenumber: 34737
    functionLinenumberEnd: 34740
    functionName: nolockUnlock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER2
    linkageType: ''
    returnType: int
    signature: int nolockUnlock(sqlite3_file *NotUsed, int NotUsed2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: closeUnixFile
      Src: /src/nss/lib/sqlite/sqlite3.c:34746,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - sqlite3_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34747
      start: 34745
    functionDepth: 13
    functionLinenumber: 34745
    functionLinenumberEnd: 34747
    functionName: nolockClose
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - closeUnixFile
    linkageType: ''
    returnType: int
    signature: int nolockClose(sqlite3_file *id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:34797,1
    - Dst: osAccess
      Src: /src/nss/lib/sqlite/sqlite3.c:34798,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:34799,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - id
    - pResOut
    argTypes:
    - sqlite3_file*
    - int*
    assertStmts:
    - condition: ( pFile )
      pos:
        line_end: 34796
        line_start: 34796
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 34802
      start: 34790
    functionDepth: 1
    functionLinenumber: 34790
    functionLinenumberEnd: 34802
    functionName: dotlockCheckReservedLock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - OSTRACE
    - osAccess
    linkageType: ''
    returnType: int
    signature: int dotlockCheckReservedLock(sqlite3_file *id, int *pResOut)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: utime
      Src: /src/nss/lib/sqlite/sqlite3.c:34844,1
    - Dst: utimes
      Src: /src/nss/lib/sqlite/sqlite3.c:34846,1
    - Dst: osMkdir
      Src: /src/nss/lib/sqlite/sqlite3.c:34852,1
    - Dst: sqliteErrorFromPosixError
      Src: /src/nss/lib/sqlite/sqlite3.c:34859,1
    - Dst: storeLastErrno
      Src: /src/nss/lib/sqlite/sqlite3.c:34861,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - id
    - eFileLock
    argTypes:
    - sqlite3_file*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34870
      start: 34831
    functionDepth: 1
    functionLinenumber: 34831
    functionLinenumberEnd: 34870
    functionName: dotlockLock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - storeLastErrno
    - sqliteErrorFromPosixError
    - osMkdir
    - utime
    - utimes
    linkageType: ''
    returnType: int
    signature: int dotlockLock(sqlite3_file *id, int eFileLock)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:34886,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:34887,1
    - Dst: osGetpid
      Src: /src/nss/lib/sqlite/sqlite3.c:34888,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:34889,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:34905,1
    - Dst: osRmdir
      Src: /src/nss/lib/sqlite/sqlite3.c:34906,1
    - Dst: storeLastErrno
      Src: /src/nss/lib/sqlite/sqlite3.c:34913,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - id
    - eFileLock
    argTypes:
    - sqlite3_file*
    - int
    assertStmts:
    - condition: ( pFile )
      pos:
        line_end: 34885
        line_start: 34885
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( eFileLock==NO_LOCK )
      pos:
        line_end: 34904
        line_start: 34904
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( eFileLock<=SHARED_LOCK )
      pos:
        line_end: 34888
        line_start: 34888
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 34919
      start: 34881
    functionDepth: 1
    functionLinenumber: 34881
    functionLinenumberEnd: 34919
    functionName: dotlockUnlock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - storeLastErrno
    - OSTRACE
    - assert
    - osRmdir
    - osGetpid
    linkageType: ''
    returnType: int
    signature: int dotlockUnlock(sqlite3_file *id, int eFileLock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:34926,1
    - Dst: dotlockUnlock
      Src: /src/nss/lib/sqlite/sqlite3.c:34927,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:34928,1
    - Dst: closeUnixFile
      Src: /src/nss/lib/sqlite/sqlite3.c:34929,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - id
    argTypes:
    - sqlite3_file*
    assertStmts:
    - condition: ( id!=0 )
      pos:
        line_end: 34925
        line_start: 34925
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 34930
      start: 34924
    functionDepth: 13
    functionLinenumber: 34924
    functionLinenumberEnd: 34930
    functionName: dotlockClose
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - closeUnixFile
    - sqlite3_free
    - dotlockUnlock
    linkageType: ''
    returnType: int
    signature: int dotlockClose(sqlite3_file *id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flock
      Src: /src/nss/lib/sqlite/sqlite3.c:34956,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - fd
    - op
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34958
      start: 34954
    functionDepth: 0
    functionLinenumber: 34954
    functionLinenumberEnd: 34958
    functionName: robust_flock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - flock
    linkageType: ''
    returnType: int
    signature: int robust_flock(int fd, int op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34961
      start: 34960
    functionDepth: 0
    functionLinenumber: 34960
    functionLinenumberEnd: 34961
    functionName: robust_flock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: robust_flock(a,b)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:34977,1
    - Dst: robust_flock
      Src: /src/nss/lib/sqlite/sqlite3.c:34987,1
    - Dst: robust_flock
      Src: /src/nss/lib/sqlite/sqlite3.c:34990,1
    - Dst: storeLastErrno
      Src: /src/nss/lib/sqlite/sqlite3.c:34995,1
    - Dst: sqliteErrorFromPosixError
      Src: /src/nss/lib/sqlite/sqlite3.c:35002,1
    - Dst: IS_LOCK_ERROR
      Src: /src/nss/lib/sqlite/sqlite3.c:35003,1
    - Dst: storeLastErrno
      Src: /src/nss/lib/sqlite/sqlite3.c:35004,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:35009,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 2
    argNames:
    - id
    - pResOut
    argTypes:
    - sqlite3_file*
    - int*
    assertStmts:
    - condition: ( pFile )
      pos:
        line_end: 34976
        line_start: 34976
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 35019
      start: 34970
    functionDepth: 1
    functionLinenumber: 34970
    functionLinenumberEnd: 35019
    functionName: flockCheckReservedLock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - storeLastErrno
    - OSTRACE
    - assert
    - IS_LOCK_ERROR
    - sqliteErrorFromPosixError
    - robust_flock
    linkageType: ''
    returnType: int
    signature: int flockCheckReservedLock(sqlite3_file *id, int *pResOut)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:35054,1
    - Dst: robust_flock
      Src: /src/nss/lib/sqlite/sqlite3.c:35065,1
    - Dst: sqliteErrorFromPosixError
      Src: /src/nss/lib/sqlite/sqlite3.c:35068,1
    - Dst: IS_LOCK_ERROR
      Src: /src/nss/lib/sqlite/sqlite3.c:35069,1
    - Dst: storeLastErrno
      Src: /src/nss/lib/sqlite/sqlite3.c:35070,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:35076,1
    - Dst: azFileLock
      Src: /src/nss/lib/sqlite/sqlite3.c:35076,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - id
    - eFileLock
    argTypes:
    - sqlite3_file*
    - int
    assertStmts:
    - condition: ( pFile )
      pos:
        line_end: 35053
        line_start: 35053
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 35084
      start: 35050
    functionDepth: 1
    functionLinenumber: 35050
    functionLinenumberEnd: 35084
    functionName: flockLock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - storeLastErrno
    - OSTRACE
    - assert
    - IS_LOCK_ERROR
    - azFileLock
    - sqliteErrorFromPosixError
    - robust_flock
    linkageType: ''
    returnType: int
    signature: int flockLock(sqlite3_file *id, int eFileLock)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:35097,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:35098,1
    - Dst: osGetpid
      Src: /src/nss/lib/sqlite/sqlite3.c:35099,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:35100,1
    - Dst: robust_flock
      Src: /src/nss/lib/sqlite/sqlite3.c:35114,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - id
    - eFileLock
    argTypes:
    - sqlite3_file*
    - int
    assertStmts:
    - condition: ( pFile )
      pos:
        line_end: 35096
        line_start: 35096
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( eFileLock<=SHARED_LOCK )
      pos:
        line_end: 35099
        line_start: 35099
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 35123
      start: 35094
    functionDepth: 1
    functionLinenumber: 35094
    functionLinenumberEnd: 35123
    functionName: flockUnlock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - osGetpid
    - robust_flock
    - OSTRACE
    linkageType: ''
    returnType: int
    signature: int flockUnlock(sqlite3_file *id, int eFileLock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:35129,1
    - Dst: flockUnlock
      Src: /src/nss/lib/sqlite/sqlite3.c:35130,1
    - Dst: closeUnixFile
      Src: /src/nss/lib/sqlite/sqlite3.c:35131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - id
    argTypes:
    - sqlite3_file*
    assertStmts:
    - condition: ( id!=0 )
      pos:
        line_end: 35128
        line_start: 35128
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 35132
      start: 35128
    functionDepth: 13
    functionLinenumber: 35128
    functionLinenumberEnd: 35132
    functionName: flockClose
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - closeUnixFile
    - flockUnlock
    linkageType: ''
    returnType: int
    signature: int flockClose(sqlite3_file *id)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:35164,1
    - Dst: sem_trywait
      Src: /src/nss/lib/sqlite/sqlite3.c:35175,1
    - Dst: sqliteErrorFromPosixError
      Src: /src/nss/lib/sqlite/sqlite3.c:35178,1
    - Dst: storeLastErrno
      Src: /src/nss/lib/sqlite/sqlite3.c:35179,1
    - Dst: sem_post
      Src: /src/nss/lib/sqlite/sqlite3.c:35186,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:35189,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - id
    - pResOut
    argTypes:
    - sqlite3_file*
    - int*
    assertStmts:
    - condition: ( pFile )
      pos:
        line_end: 35163
        line_start: 35163
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 35193
      start: 35157
    functionDepth: 1
    functionLinenumber: 35157
    functionLinenumberEnd: 35193
    functionName: semXCheckReservedLock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sem_post
    - storeLastErrno
    - OSTRACE
    - assert
    - sqliteErrorFromPosixError
    - sem_trywait
    linkageType: ''
    returnType: int
    signature: int semXCheckReservedLock(sqlite3_file *id, int *pResOut)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sem_trywait
      Src: /src/nss/lib/sqlite/sqlite3.c:35238,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - id
    - eFileLock
    argTypes:
    - sqlite3_file*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35248
      start: 35224
    functionDepth: 0
    functionLinenumber: 35224
    functionLinenumberEnd: 35248
    functionName: semXLock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sem_trywait
    linkageType: ''
    returnType: int
    signature: int semXLock(sqlite3_file *id, int eFileLock)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:35261,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:35262,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:35263,1
    - Dst: osGetpid
      Src: /src/nss/lib/sqlite/sqlite3.c:35264,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:35265,1
    - Dst: sem_post
      Src: /src/nss/lib/sqlite/sqlite3.c:35279,1
    - Dst: sqliteErrorFromPosixError
      Src: /src/nss/lib/sqlite/sqlite3.c:35281,1
    - Dst: IS_LOCK_ERROR
      Src: /src/nss/lib/sqlite/sqlite3.c:35282,1
    - Dst: storeLastErrno
      Src: /src/nss/lib/sqlite/sqlite3.c:35283,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - id
    - eFileLock
    argTypes:
    - sqlite3_file*
    - int
    assertStmts:
    - condition: ( pFile )
      pos:
        line_end: 35260
        line_start: 35260
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( eFileLock<=SHARED_LOCK )
      pos:
        line_end: 35264
        line_start: 35264
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pSem )
      pos:
        line_end: 35261
        line_start: 35261
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 35289
      start: 35257
    functionDepth: 1
    functionLinenumber: 35257
    functionLinenumberEnd: 35289
    functionName: semXUnlock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sem_post
    - storeLastErrno
    - OSTRACE
    - assert
    - IS_LOCK_ERROR
    - osGetpid
    - sqliteErrorFromPosixError
    linkageType: ''
    returnType: int
    signature: int semXUnlock(sqlite3_file *id, int eFileLock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: semXUnlock
      Src: /src/nss/lib/sqlite/sqlite3.c:35297,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:35298,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:35299,1
    - Dst: unixFileMutexNotheld
      Src: /src/nss/lib/sqlite/sqlite3.c:35299,1
    - Dst: unixEnterMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:35300,1
    - Dst: releaseInodeInfo
      Src: /src/nss/lib/sqlite/sqlite3.c:35301,1
    - Dst: unixLeaveMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:35302,1
    - Dst: closeUnixFile
      Src: /src/nss/lib/sqlite/sqlite3.c:35303,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - id
    argTypes:
    - sqlite3_file*
    assertStmts:
    - condition: ( pFile )
      pos:
        line_end: 35297
        line_start: 35297
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( unixFileMutexNotheld(pFile) )
      pos:
        line_end: 35298
        line_start: 35298
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 35306
      start: 35294
    functionDepth: 14
    functionLinenumber: 35294
    functionLinenumberEnd: 35306
    functionName: semXClose
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - releaseInodeInfo
    - unixEnterMutex
    - assert
    - closeUnixFile
    - unixLeaveMutex
    - unixFileMutexNotheld
    - semXUnlock
    linkageType: ''
    returnType: int
    signature: int semXClose(sqlite3_file *id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:35370,1
    - Dst: fsctl
      Src: /src/nss/lib/sqlite/sqlite3.c:35373,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:35377,1
    - Dst: strerror
      Src: /src/nss/lib/sqlite/sqlite3.c:35378,1
    - Dst: sqliteErrorFromPosixError
      Src: /src/nss/lib/sqlite/sqlite3.c:35382,1
    - Dst: IS_LOCK_ERROR
      Src: /src/nss/lib/sqlite/sqlite3.c:35385,1
    - Dst: storeLastErrno
      Src: /src/nss/lib/sqlite/sqlite3.c:35386,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 5
    argNames:
    - path
    - pFile
    - offset
    - length
    - setLockFlag
    argTypes:
    - char*
    - unixFile*
    - unsigned long long
    - unsigned long long
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35392
      start: 35354
    functionDepth: 1
    functionLinenumber: 35354
    functionLinenumberEnd: 35392
    functionName: afpSetLock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - storeLastErrno
    - OSTRACE
    - IS_LOCK_ERROR
    - sqliteErrorFromPosixError
    - strerror
    - fsctl
    linkageType: ''
    returnType: int
    signature: "int afpSetLock(\n  const char *path,              /* Name of the file
      to be locked or unlocked */\n  unixFile *pFile,               /* Open file descriptor
      on path */\n  unsigned long long offset,     /* First byte to be locked */\n
      \ unsigned long long length,     /* Number of bytes to lock */\n  int setLockFlag
      \               /* True to set lock.  False to clear lock */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:35408,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:35414,1
    - Dst: afpSetLock
      Src: /src/nss/lib/sqlite/sqlite3.c:35424,1
    - Dst: afpSetLock
      Src: /src/nss/lib/sqlite/sqlite3.c:35428,1
    - Dst: IS_LOCK_ERROR
      Src: /src/nss/lib/sqlite/sqlite3.c:35433,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:35438,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:35439,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - id
    - pResOut
    argTypes:
    - sqlite3_file*
    - int*
    assertStmts:
    - condition: ( pFile )
      pos:
        line_end: 35407
        line_start: 35407
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 35443
      start: 35400
    functionDepth: 2
    functionLinenumber: 35400
    functionLinenumberEnd: 35443
    functionName: afpCheckReservedLock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3_mutex_leave
    - OSTRACE
    - assert
    - IS_LOCK_ERROR
    - afpSetLock
    linkageType: ''
    returnType: int
    signature: int afpCheckReservedLock(sqlite3_file *id, int *pResOut)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:35475,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:35476,1
    - Dst: azFileLock
      Src: /src/nss/lib/sqlite/sqlite3.c:35477,1
    - Dst: azFileLock
      Src: /src/nss/lib/sqlite/sqlite3.c:35477,1
    - Dst: azFileLock
      Src: /src/nss/lib/sqlite/sqlite3.c:35478,1
    - Dst: osGetpid
      Src: /src/nss/lib/sqlite/sqlite3.c:35478,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:35485,1
    - Dst: azFileLock
      Src: /src/nss/lib/sqlite/sqlite3.c:35486,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:35495,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:35496,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:35497,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:35502,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:35520,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:35521,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:35522,1
    - Dst: afpSetLock
      Src: /src/nss/lib/sqlite/sqlite3.c:35537,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:35551,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:35552,1
    - Dst: random
      Src: /src/nss/lib/sqlite/sqlite3.c:35557,1
    - Dst: afpSetLock
      Src: /src/nss/lib/sqlite/sqlite3.c:35559,1
    - Dst: IS_LOCK_ERROR
      Src: /src/nss/lib/sqlite/sqlite3.c:35561,1
    - Dst: afpSetLock
      Src: /src/nss/lib/sqlite/sqlite3.c:35565,1
    - Dst: IS_LOCK_ERROR
      Src: /src/nss/lib/sqlite/sqlite3.c:35567,1
    - Dst: storeLastErrno
      Src: /src/nss/lib/sqlite/sqlite3.c:35568,1
    - Dst: IS_LOCK_ERROR
      Src: /src/nss/lib/sqlite/sqlite3.c:35571,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:35591,1
    - Dst: afpSetLock
      Src: /src/nss/lib/sqlite/sqlite3.c:35594,1
    - Dst: afpSetLock
      Src: /src/nss/lib/sqlite/sqlite3.c:35605,1
    - Dst: afpSetLock
      Src: /src/nss/lib/sqlite/sqlite3.c:35609,1
    - Dst: afpSetLock
      Src: /src/nss/lib/sqlite/sqlite3.c:35611,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:35638,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:35639,1
    - Dst: azFileLock
      Src: /src/nss/lib/sqlite/sqlite3.c:35639,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 104
    argCount: 2
    argNames:
    - id
    - eFileLock
    argTypes:
    - sqlite3_file*
    - int
    assertStmts:
    - condition: ( pFile->eFileLock!=NO_LOCK || eFileLock==SHARED_LOCK )
      pos:
        line_end: 35494
        line_start: 35494
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( eFileLock!=PENDING_LOCK )
      pos:
        line_end: 35495
        line_start: 35495
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pInode->nShared==0 )
      pos:
        line_end: 35550
        line_start: 35550
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pFile )
      pos:
        line_end: 35474
        line_start: 35474
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pFile->eFileLock==0 )
      pos:
        line_end: 35520
        line_start: 35520
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( eFileLock==SHARED_LOCK )
      pos:
        line_end: 35519
        line_start: 35519
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pInode->eFileLock==0 )
      pos:
        line_end: 35551
        line_start: 35551
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( eFileLock!=RESERVED_LOCK || pFile->eFileLock==SHARED_LOCK )
      pos:
        line_end: 35496
        line_start: 35496
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( 0!=pFile->eFileLock )
      pos:
        line_end: 35590
        line_start: 35590
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pInode->nShared>0 )
      pos:
        line_end: 35521
        line_start: 35521
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 35642
      start: 35469
    functionDepth: 2
    functionLinenumber: 35469
    functionLinenumberEnd: 35642
    functionName: afpLock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - storeLastErrno
    - sqlite3_mutex_leave
    - OSTRACE
    - assert
    - random
    - IS_LOCK_ERROR
    - azFileLock
    - osGetpid
    - afpSetLock
    linkageType: ''
    returnType: int
    signature: int afpLock(sqlite3_file *id, int eFileLock)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:35661,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:35662,1
    - Dst: osGetpid
      Src: /src/nss/lib/sqlite/sqlite3.c:35664,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:35666,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:35671,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:35672,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:35674,1
    - Dst: SimulateIOErrorBenign
      Src: /src/nss/lib/sqlite/sqlite3.c:35675,1
    - Dst: SimulateIOError
      Src: /src/nss/lib/sqlite/sqlite3.c:35676,1
    - Dst: SimulateIOErrorBenign
      Src: /src/nss/lib/sqlite/sqlite3.c:35677,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:35688,1
    - Dst: afpSetLock
      Src: /src/nss/lib/sqlite/sqlite3.c:35695,1
    - Dst: afpSetLock
      Src: /src/nss/lib/sqlite/sqlite3.c:35699,1
    - Dst: afpSetLock
      Src: /src/nss/lib/sqlite/sqlite3.c:35705,1
    - Dst: afpSetLock
      Src: /src/nss/lib/sqlite/sqlite3.c:35708,1
    - Dst: SimulateIOErrorBenign
      Src: /src/nss/lib/sqlite/sqlite3.c:35726,1
    - Dst: SimulateIOError
      Src: /src/nss/lib/sqlite/sqlite3.c:35727,1
    - Dst: SimulateIOErrorBenign
      Src: /src/nss/lib/sqlite/sqlite3.c:35728,1
    - Dst: afpSetLock
      Src: /src/nss/lib/sqlite/sqlite3.c:35730,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:35739,1
    - Dst: closePendingFds
      Src: /src/nss/lib/sqlite/sqlite3.c:35740,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:35744,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 64
    argCount: 2
    argNames:
    - id
    - eFileLock
    argTypes:
    - sqlite3_file*
    - int
    assertStmts:
    - condition: ( pInode->nLock>=0 )
      pos:
        line_end: 35738
        line_start: 35738
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( pFile->inNormalWrite==0\n           || pFile->dbUpdate==0\n           ||
        pFile->transCntrChng==1 )"
      pos:
        line_end: 35689
        line_start: 35687
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pFile )
      pos:
        line_end: 35660
        line_start: 35660
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pInode->nShared!=0 )
      pos:
        line_end: 35671
        line_start: 35671
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( eFileLock<=SHARED_LOCK )
      pos:
        line_end: 35665
        line_start: 35665
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pInode->eFileLock==pFile->eFileLock )
      pos:
        line_end: 35673
        line_start: 35673
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 35749
      start: 35651
    functionDepth: 13
    functionLinenumber: 35651
    functionLinenumberEnd: 35749
    functionName: afpUnlock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - SimulateIOErrorBenign
    - sqlite3_mutex_leave
    - OSTRACE
    - assert
    - osGetpid
    - SimulateIOError
    - closePendingFds
    - afpSetLock
    linkageType: ''
    returnType: int
    signature: int afpUnlock(sqlite3_file *id, int eFileLock)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:35757,1
    - Dst: afpUnlock
      Src: /src/nss/lib/sqlite/sqlite3.c:35758,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:35759,1
    - Dst: unixFileMutexNotheld
      Src: /src/nss/lib/sqlite/sqlite3.c:35759,1
    - Dst: unixEnterMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:35760,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:35763,1
    - Dst: setPendingFd
      Src: /src/nss/lib/sqlite/sqlite3.c:35770,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:35772,1
    - Dst: releaseInodeInfo
      Src: /src/nss/lib/sqlite/sqlite3.c:35774,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:35775,1
    - Dst: closeUnixFile
      Src: /src/nss/lib/sqlite/sqlite3.c:35776,1
    - Dst: unixLeaveMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:35777,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - id
    argTypes:
    - sqlite3_file*
    assertStmts:
    - condition: ( id!=0 )
      pos:
        line_end: 35756
        line_start: 35756
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( unixFileMutexNotheld(pFile) )
      pos:
        line_end: 35758
        line_start: 35758
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 35779
      start: 35754
    functionDepth: 14
    functionLinenumber: 35754
    functionLinenumberEnd: 35779
    functionName: afpClose
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3_free
    - setPendingFd
    - afpUnlock
    - releaseInodeInfo
    - unixEnterMutex
    - sqlite3_mutex_leave
    - assert
    - closeUnixFile
    - unixLeaveMutex
    - unixFileMutexNotheld
    linkageType: ''
    returnType: int
    signature: int afpClose(sqlite3_file *id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: posixUnlock
      Src: /src/nss/lib/sqlite/sqlite3.c:35803,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - id
    - eFileLock
    argTypes:
    - sqlite3_file*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35804
      start: 35802
    functionDepth: 14
    functionLinenumber: 35802
    functionLinenumberEnd: 35804
    functionName: nfsUnlock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - posixUnlock
    linkageType: ''
    returnType: int
    signature: int nfsUnlock(sqlite3_file *id, int eFileLock)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:35845,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:35846,1
    - Dst: osPread
      Src: /src/nss/lib/sqlite/sqlite3.c:35849,1
    - Dst: SimulateIOError
      Src: /src/nss/lib/sqlite/sqlite3.c:35850,1
    - Dst: osPread64
      Src: /src/nss/lib/sqlite/sqlite3.c:35852,1
    - Dst: SimulateIOError
      Src: /src/nss/lib/sqlite/sqlite3.c:35853,1
    - Dst: lseek
      Src: /src/nss/lib/sqlite/sqlite3.c:35855,1
    - Dst: SimulateIOError
      Src: /src/nss/lib/sqlite/sqlite3.c:35856,1
    - Dst: storeLastErrno
      Src: /src/nss/lib/sqlite/sqlite3.c:35858,1
    - Dst: osRead
      Src: /src/nss/lib/sqlite/sqlite3.c:35861,1
    - Dst: storeLastErrno
      Src: /src/nss/lib/sqlite/sqlite3.c:35867,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:35877,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 4
    argNames:
    - id
    - offset
    - pBuf
    - cnt
    argTypes:
    - unixFile*
    - sqlite3_int64
    - void*
    - int
    assertStmts:
    - condition: ( cnt==(cnt&0x1ffff) )
      pos:
        line_end: 35844
        line_start: 35844
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( id->h>2 )
      pos:
        line_end: 35845
        line_start: 35845
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 35880
      start: 35838
    functionDepth: 1
    functionLinenumber: 35838
    functionLinenumberEnd: 35880
    functionName: seekAndRead
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - storeLastErrno
    - OSTRACE
    - osPread
    - assert
    - osRead
    - SimulateIOError
    - lseek
    - osPread64
    linkageType: ''
    returnType: int
    signature: int seekAndRead(unixFile *id, sqlite3_int64 offset, void *pBuf, int
      cnt)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:35895,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:35896,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:35897,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:35902,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:35913,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:35917,1
    - Dst: seekAndRead
      Src: /src/nss/lib/sqlite/sqlite3.c:35925,1
    - Dst: storeLastErrno
      Src: /src/nss/lib/sqlite/sqlite3.c:35932,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:35934,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 4
    argNames:
    - id
    - pBuf
    - amt
    - offset
    argTypes:
    - sqlite3_file*
    - void*
    - int
    - sqlite3_int64
    assertStmts:
    - condition: ( id )
      pos:
        line_end: 35894
        line_start: 35894
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( offset>=0 )
      pos:
        line_end: 35895
        line_start: 35895
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( pFile->pPreallocatedUnused==0\n       || offset>=PENDING_BYTE+512\n
        \      || offset+amt<=PENDING_BYTE \n  )"
      pos:
        line_end: 35904
        line_start: 35901
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( amt>0 )
      pos:
        line_end: 35896
        line_start: 35896
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 35937
      start: 35887
    functionDepth: 2
    functionLinenumber: 35887
    functionLinenumberEnd: 35937
    functionName: unixRead
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - seekAndRead
    - storeLastErrno
    - assert
    - memset
    linkageType: ''
    returnType: int
    signature: "int unixRead(\n  sqlite3_file *id, \n  void *pBuf, \n  int amt,\n
      \ sqlite3_int64 offset\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:35955,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:35956,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:35957,1
    - Dst: osPwrite
      Src: /src/nss/lib/sqlite/sqlite3.c:35962,1
    - Dst: osPwrite64
      Src: /src/nss/lib/sqlite/sqlite3.c:35964,1
    - Dst: lseek
      Src: /src/nss/lib/sqlite/sqlite3.c:35967,1
    - Dst: SimulateIOError
      Src: /src/nss/lib/sqlite/sqlite3.c:35968,1
    - Dst: osWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:35973,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:35978,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 5
    argNames:
    - fd
    - iOff
    - pBuf
    - nBuf
    - piErrno
    argTypes:
    - int
    - i64
    - void*
    - int
    - int*
    assertStmts:
    - condition: ( nBuf==(nBuf&0x1ffff) )
      pos:
        line_end: 35954
        line_start: 35954
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( fd>2 )
      pos:
        line_end: 35955
        line_start: 35955
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( piErrno!=0 )
      pos:
        line_end: 35956
        line_start: 35956
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 35982
      start: 35946
    functionDepth: 1
    functionLinenumber: 35946
    functionLinenumberEnd: 35982
    functionName: seekAndWriteFd
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - osWrite
    - OSTRACE
    - assert
    - osPwrite
    - SimulateIOError
    - lseek
    - osPwrite64
    linkageType: ''
    returnType: int
    signature: "int seekAndWriteFd(\n  int fd,                         /* File descriptor
      to write to */\n  i64 iOff,                       /* File offset to begin writing
      at */\n  const void *pBuf,               /* Copy data from this buffer to the
      file */\n  int nBuf,                       /* Size of buffer pBuf in bytes */\n
      \ int *piErrno                    /* OUT: Error number if error occurs */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: seekAndWriteFd
      Src: /src/nss/lib/sqlite/sqlite3.c:35993,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - id
    - offset
    - pBuf
    - cnt
    argTypes:
    - unixFile*
    - i64
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35994
      start: 35992
    functionDepth: 2
    functionLinenumber: 35992
    functionLinenumberEnd: 35994
    functionName: seekAndWrite
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - seekAndWriteFd
    linkageType: ''
    returnType: int
    signature: int seekAndWrite(unixFile *id, i64 offset, const void *pBuf, int cnt)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:36009,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:36010,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:36015,1
    - Dst: SimulateIOErrorBenign
      Src: /src/nss/lib/sqlite/sqlite3.c:36033,1
    - Dst: seekAndRead
      Src: /src/nss/lib/sqlite/sqlite3.c:36034,1
    - Dst: SimulateIOErrorBenign
      Src: /src/nss/lib/sqlite/sqlite3.c:36035,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:36036,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:36048,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:36052,1
    - Dst: seekAndWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:36060,1
    - Dst: SimulateIOError
      Src: /src/nss/lib/sqlite/sqlite3.c:36065,1
    - Dst: SimulateDiskfullError
      Src: /src/nss/lib/sqlite/sqlite3.c:36066,1
    - Dst: storeLastErrno
      Src: /src/nss/lib/sqlite/sqlite3.c:36073,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 4
    argNames:
    - id
    - pBuf
    - amt
    - offset
    argTypes:
    - sqlite3_file*
    - void*
    - int
    - sqlite3_int64
    assertStmts:
    - condition: ( id )
      pos:
        line_end: 36008
        line_start: 36008
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( pFile->pPreallocatedUnused==0\n       || offset>=PENDING_BYTE+512\n
        \      || offset+amt<=PENDING_BYTE \n  )"
      pos:
        line_end: 36017
        line_start: 36014
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( amt>0 )
      pos:
        line_end: 36009
        line_start: 36009
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 36079
      start: 36001
    functionDepth: 3
    functionLinenumber: 36001
    functionLinenumberEnd: 36079
    functionName: unixWrite
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - SimulateIOErrorBenign
    - SimulateDiskfullError
    - seekAndRead
    - seekAndWrite
    - storeLastErrno
    - assert
    - SimulateIOError
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int unixWrite(\n  sqlite3_file *id, \n  const void *pBuf, \n  int
      amt,\n  sqlite3_int64 offset \n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:36144,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:36145,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:36146,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:36148,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:36150,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:36151,1
    - Dst: osFstat
      Src: /src/nss/lib/sqlite/sqlite3.c:36171,1
    - Dst: osFcntl
      Src: /src/nss/lib/sqlite/sqlite3.c:36175,1
    - Dst: fsync
      Src: /src/nss/lib/sqlite/sqlite3.c:36187,1
    - Dst: fsync
      Src: /src/nss/lib/sqlite/sqlite3.c:36193,1
    - Dst: fdatasync
      Src: /src/nss/lib/sqlite/sqlite3.c:36195,1
    - Dst: fsync
      Src: /src/nss/lib/sqlite/sqlite3.c:36198,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - fd
    - fullSync
    - dataOnly
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36207
      start: 36136
    functionDepth: 1
    functionLinenumber: 36136
    functionLinenumberEnd: 36207
    functionName: full_fsync
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fsync
    - UNUSED_PARAMETER
    - osFstat
    - fdatasync
    - osFcntl
    linkageType: ''
    returnType: int
    signature: int full_fsync(int fd, int fullSync, int dataOnly)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:36237,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:36238,1
    - Dst: robust_open
      Src: /src/nss/lib/sqlite/sqlite3.c:36245,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:36247,1
    - Dst: unixLogError
      Src: /src/nss/lib/sqlite/sqlite3.c:36251,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - zFilename
    - pFd
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36252
      start: 36232
    functionDepth: 11
    functionLinenumber: 36232
    functionLinenumberEnd: 36252
    functionName: openDirectory
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - OSTRACE
    - sqlite3_snprintf
    - unixLogError
    - robust_open
    - strlen
    linkageType: ''
    returnType: int
    signature: int openDirectory(const char *zFilename, int *pFd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:36277,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:36286,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:36287,1
    - Dst: full_fsync
      Src: /src/nss/lib/sqlite/sqlite3.c:36288,1
    - Dst: SimulateIOError
      Src: /src/nss/lib/sqlite/sqlite3.c:36289,1
    - Dst: storeLastErrno
      Src: /src/nss/lib/sqlite/sqlite3.c:36291,1
    - Dst: unixLogError
      Src: /src/nss/lib/sqlite/sqlite3.c:36292,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:36301,1
    - Dst: osOpenDirectory
      Src: /src/nss/lib/sqlite/sqlite3.c:36303,1
    - Dst: full_fsync
      Src: /src/nss/lib/sqlite/sqlite3.c:36305,1
    - Dst: robust_close
      Src: /src/nss/lib/sqlite/sqlite3.c:36306,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:36308,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - id
    - flags
    argTypes:
    - sqlite3_file*
    - int
    assertStmts:
    - condition: "((flags&0x0F)==SQLITE_SYNC_NORMAL\n      || (flags&0x0F)==SQLITE_SYNC_FULL\n
        \ )"
      pos:
        line_end: 36278
        line_start: 36276
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pFile )
      pos:
        line_end: 36285
        line_start: 36285
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc==SQLITE_CANTOPEN )
      pos:
        line_end: 36307
        line_start: 36307
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 36314
      start: 36269
    functionDepth: 12
    functionLinenumber: 36269
    functionLinenumberEnd: 36314
    functionName: unixSync
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - storeLastErrno
    - OSTRACE
    - osOpenDirectory
    - full_fsync
    - assert
    - robust_close
    - SimulateIOError
    - unixLogError
    linkageType: ''
    returnType: int
    signature: int unixSync(sqlite3_file *id, int flags)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:36322,1
    - Dst: robust_ftruncate
      Src: /src/nss/lib/sqlite/sqlite3.c:36334,1
    - Dst: storeLastErrno
      Src: /src/nss/lib/sqlite/sqlite3.c:36336,1
    - Dst: unixLogError
      Src: /src/nss/lib/sqlite/sqlite3.c:36337,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - id
    - nByte
    argTypes:
    - sqlite3_file*
    - i64
    assertStmts:
    - condition: ( pFile )
      pos:
        line_end: 36321
        line_start: 36321
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 36364
      start: 36319
    functionDepth: 1
    functionLinenumber: 36319
    functionLinenumberEnd: 36364
    functionName: unixTruncate
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - storeLastErrno
    - robust_ftruncate
    - unixLogError
    linkageType: ''
    returnType: int
    signature: int unixTruncate(sqlite3_file *id, i64 nByte)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:36372,1
    - Dst: osFstat
      Src: /src/nss/lib/sqlite/sqlite3.c:36373,1
    - Dst: SimulateIOError
      Src: /src/nss/lib/sqlite/sqlite3.c:36374,1
    - Dst: storeLastErrno
      Src: /src/nss/lib/sqlite/sqlite3.c:36376,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - id
    - pSize
    argTypes:
    - sqlite3_file*
    - i64*
    assertStmts:
    - condition: ( id )
      pos:
        line_end: 36371
        line_start: 36371
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 36391
      start: 36369
    functionDepth: 1
    functionLinenumber: 36369
    functionLinenumberEnd: 36391
    functionName: unixFileSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - storeLastErrno
    - SimulateIOError
    - osFstat
    linkageType: ''
    returnType: int
    signature: int unixFileSize(sqlite3_file *id, i64 *pSize)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: osFstat
      Src: /src/nss/lib/sqlite/sqlite3.c:36412,1
    - Dst: osFallocate
      Src: /src/nss/lib/sqlite/sqlite3.c:36425,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:36441,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:36442,1
    - Dst: seekAndWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:36445,1
    - Dst: robust_ftruncate
      Src: /src/nss/lib/sqlite/sqlite3.c:36456,1
    - Dst: storeLastErrno
      Src: /src/nss/lib/sqlite/sqlite3.c:36457,1
    - Dst: unixLogError
      Src: /src/nss/lib/sqlite/sqlite3.c:36458,1
    - Dst: unixMapfile
      Src: /src/nss/lib/sqlite/sqlite3.c:36462,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 2
    argNames:
    - pFile
    - nByte
    argTypes:
    - unixFile*
    - i64
    assertStmts:
    - condition: ( iWrite>=buf.st_size )
      pos:
        line_end: 36440
        line_start: 36440
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( ((iWrite+1)%nBlk)==0 )
      pos:
        line_end: 36441
        line_start: 36441
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 36468
      start: 36407
    functionDepth: 3
    functionLinenumber: 36407
    functionLinenumberEnd: 36468
    functionName: fcntlSizeHint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - robust_ftruncate
    - unixMapfile
    - seekAndWrite
    - storeLastErrno
    - osFstat
    - assert
    - unixLogError
    - osFallocate
    linkageType: ''
    returnType: int
    signature: int fcntlSizeHint(unixFile *pFile, i64 nByte)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - pFile
    - mask
    - pArg
    argTypes:
    - unixFile*
    - unsigned char
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36484
      start: 36476
    functionDepth: 0
    functionLinenumber: 36476
    functionLinenumberEnd: 36484
    functionName: unixModeBit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void unixModeBit(unixFile *pFile, unsigned char mask, int *pArg)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: osIoctl
      Src: /src/nss/lib/sqlite/sqlite3.c:36497,1
    - Dst: osIoctl
      Src: /src/nss/lib/sqlite/sqlite3.c:36501,1
    - Dst: osIoctl
      Src: /src/nss/lib/sqlite/sqlite3.c:36505,1
    - Dst: SimulateIOErrorBenign
      Src: /src/nss/lib/sqlite/sqlite3.c:36524,1
    - Dst: fcntlSizeHint
      Src: /src/nss/lib/sqlite/sqlite3.c:36525,1
    - Dst: SimulateIOErrorBenign
      Src: /src/nss/lib/sqlite/sqlite3.c:36526,1
    - Dst: unixModeBit
      Src: /src/nss/lib/sqlite/sqlite3.c:36530,1
    - Dst: unixModeBit
      Src: /src/nss/lib/sqlite/sqlite3.c:36534,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:36538,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:36542,1
    - Dst: unixGetTempname
      Src: /src/nss/lib/sqlite/sqlite3.c:36544,1
    - Dst: fileHasMoved
      Src: /src/nss/lib/sqlite/sqlite3.c:36550,1
    - Dst: unixUnmapfile
      Src: /src/nss/lib/sqlite/sqlite3.c:36578,1
    - Dst: unixMapfile
      Src: /src/nss/lib/sqlite/sqlite3.c:36579,1
    - Dst: proxyFileControl
      Src: /src/nss/lib/sqlite/sqlite3.c:36599,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 83
    argCount: 3
    argNames:
    - id
    - op
    - pArg
    argTypes:
    - sqlite3_file*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36604
      start: 36492
    functionDepth: 10
    functionLinenumber: 36492
    functionLinenumberEnd: 36604
    functionName: unixFileControl
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - unixModeBit
    - sqlite3_malloc64
    - SimulateIOErrorBenign
    - unixGetTempname
    - unixMapfile
    - proxyFileControl
    - osIoctl
    - fcntlSizeHint
    - sqlite3_mprintf
    - fileHasMoved
    - unixUnmapfile
    linkageType: ''
    returnType: int
    signature: int unixFileControl(sqlite3_file *id, int op, void *pArg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:36617,1
    - Dst: osIoctl
      Src: /src/nss/lib/sqlite/sqlite3.c:36624,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - pFd
    argTypes:
    - unixFile*
    assertStmts:
    - condition: ( pFd->deviceCharacteristics==0 || pFd->sectorSize!=0 )
      pos:
        line_end: 36616
        line_start: 36616
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 36637
      start: 36616
    functionDepth: 0
    functionLinenumber: 36616
    functionLinenumberEnd: 36637
    functionName: setDeviceCharacteristics
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - osIoctl
    linkageType: ''
    returnType: void
    signature: void setDeviceCharacteristics(unixFile *pFd)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fstatvfs
      Src: /src/nss/lib/sqlite/sqlite3.c:36648,1
    - Dst: strcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:36652,1
    - Dst: strstr
      Src: /src/nss/lib/sqlite/sqlite3.c:36661,1
    - Dst: strcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:36671,1
    - Dst: strcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:36680,1
    - Dst: strstr
      Src: /src/nss/lib/sqlite/sqlite3.c:36688,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 1
    argNames:
    - pFile
    argTypes:
    - unixFile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36710
      start: 36641
    functionDepth: 0
    functionLinenumber: 36641
    functionLinenumberEnd: 36710
    functionName: setDeviceCharacteristics
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - strcmp
    - strstr
    - fstatvfs
    linkageType: ''
    returnType: void
    signature: void setDeviceCharacteristics(unixFile *pFile)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setDeviceCharacteristics
      Src: /src/nss/lib/sqlite/sqlite3.c:36725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - id
    argTypes:
    - sqlite3_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36727
      start: 36723
    functionDepth: 1
    functionLinenumber: 36723
    functionLinenumberEnd: 36727
    functionName: unixSectorSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - setDeviceCharacteristics
    linkageType: ''
    returnType: int
    signature: int unixSectorSize(sqlite3_file *id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setDeviceCharacteristics
      Src: /src/nss/lib/sqlite/sqlite3.c:36744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - id
    argTypes:
    - sqlite3_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36746
      start: 36742
    functionDepth: 1
    functionLinenumber: 36742
    functionLinenumberEnd: 36746
    functionName: unixDeviceCharacteristics
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - setDeviceCharacteristics
    linkageType: ''
    returnType: int
    signature: int unixDeviceCharacteristics(sqlite3_file *id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getpagesize
      Src: /src/nss/lib/sqlite/sqlite3.c:36760,1
    - Dst: sysconf
      Src: /src/nss/lib/sqlite/sqlite3.c:36762,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36764
      start: 36756
    functionDepth: 0
    functionLinenumber: 36756
    functionLinenumberEnd: 36764
    functionName: unixGetpagesize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - getpagesize
    - sysconf
    linkageType: ''
    returnType: int
    signature: int unixGetpagesize(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:36864,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:36864,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:36865,1
    - Dst: unixMutexHeld
      Src: /src/nss/lib/sqlite/sqlite3.c:36865,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:36868,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:36871,1
    - Dst: osSetPosixAdvisoryLock
      Src: /src/nss/lib/sqlite/sqlite3.c:36879,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:36886,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:36890,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:36894,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:36898,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:36899,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:36905,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:36907,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:36909,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:36910,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:36913,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 46
    argCount: 4
    argNames:
    - pFile
    - lockType
    - ofst
    - n
    argTypes:
    - unixFile*
    - int
    - int
    - int
    assertStmts:
    - condition: ( pShmNode->nRef==0 || sqlite3_mutex_held(pShmNode->pShmMutex) )
      pos:
        line_end: 36863
        line_start: 36863
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pShmNode->nRef>0 || unixMutexHeld() )
      pos:
        line_end: 36864
        line_start: 36864
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( n==1 || lockType!=F_RDLCK )
      pos:
        line_end: 36867
        line_start: 36867
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( n>=1 && n<=SQLITE_SHM_NLOCK )
      pos:
        line_end: 36870
        line_start: 36870
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( lockType==F_WRLCK )
      pos:
        line_end: 36908
        line_start: 36908
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( lockType==F_WRLCK )
      pos:
        line_end: 36897
        line_start: 36897
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 36919
      start: 36852
    functionDepth: 2
    functionLinenumber: 36852
    functionLinenumberEnd: 36919
    functionName: unixShmSystemLock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - osSetPosixAdvisoryLock
    - OSTRACE
    - unixMutexHeld
    - assert
    - sqlite3_mutex_held
    linkageType: ''
    returnType: int
    signature: "int unixShmSystemLock(\n  unixFile *pFile,       /* Open connection
      to the WAL file */\n  int lockType,          /* F_UNLCK, F_RDLCK, or F_WRLCK
      */\n  int ofst,              /* First byte of the locking range */\n  int n
      \                 /* Number of bytes to lock */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: osGetpagesize
      Src: /src/nss/lib/sqlite/sqlite3.c:36932,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:36933,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( ((pgsz-1)&pgsz)==0 )
      pos:
        line_end: 36932
        line_start: 36932
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 36936
      start: 36930
    functionDepth: 0
    functionLinenumber: 36930
    functionLinenumberEnd: 36936
    functionName: unixShmRegionPerMap
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - osGetpagesize
    linkageType: ''
    returnType: int
    signature: int unixShmRegionPerMap(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:36946,1
    - Dst: unixMutexHeld
      Src: /src/nss/lib/sqlite/sqlite3.c:36946,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:36947,1
    - Dst: unixShmRegionPerMap
      Src: /src/nss/lib/sqlite/sqlite3.c:36948,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:36950,1
    - Dst: sqlite3_mutex_free
      Src: /src/nss/lib/sqlite/sqlite3.c:36951,1
    - Dst: osMunmap
      Src: /src/nss/lib/sqlite/sqlite3.c:36954,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:36956,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:36959,1
    - Dst: robust_close
      Src: /src/nss/lib/sqlite/sqlite3.c:36961,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:36965,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - pFd
    argTypes:
    - unixFile*
    assertStmts:
    - condition: ( unixMutexHeld() )
      pos:
        line_end: 36945
        line_start: 36945
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->pInode==pFd->pInode )
      pos:
        line_end: 36949
        line_start: 36949
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 36967
      start: 36944
    functionDepth: 12
    functionLinenumber: 36944
    functionLinenumberEnd: 36967
    functionName: unixShmPurge
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - osMunmap
    - ALWAYS
    - unixMutexHeld
    - assert
    - unixShmRegionPerMap
    - robust_close
    - sqlite3_mutex_free
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void unixShmPurge(unixFile *pFd)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: osFcntl
      Src: /src/nss/lib/sqlite/sqlite3.c:37004,1
    - Dst: unixShmSystemLock
      Src: /src/nss/lib/sqlite/sqlite3.c:37011,1
    - Dst: robust_ftruncate
      Src: /src/nss/lib/sqlite/sqlite3.c:37017,1
    - Dst: unixLogError
      Src: /src/nss/lib/sqlite/sqlite3.c:37018,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:37026,1
    - Dst: unixShmSystemLock
      Src: /src/nss/lib/sqlite/sqlite3.c:37027,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - pDbFd
    - pShmNode
    argTypes:
    - unixFile*
    - unixShmNode*
    assertStmts:
    - condition: ( lock.l_type==F_UNLCK || lock.l_type==F_RDLCK )
      pos:
        line_end: 37025
        line_start: 37025
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 37030
      start: 36978
    functionDepth: 3
    functionLinenumber: 36978
    functionLinenumberEnd: 37030
    functionName: unixLockSharedMemory
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - robust_ftruncate
    - unixShmSystemLock
    - assert
    - unixLogError
    - osFcntl
    linkageType: ''
    returnType: int
    signature: int unixLockSharedMemory(unixFile *pDbFd, unixShmNode *pShmNode)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:37076,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:37078,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:37079,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:37084,1
    - Dst: unixFileMutexNotheld
      Src: /src/nss/lib/sqlite/sqlite3.c:37084,1
    - Dst: unixEnterMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:37085,1
    - Dst: osFstat
      Src: /src/nss/lib/sqlite/sqlite3.c:37098,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:37106,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:37108,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:37113,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:37116,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:37120,1
    - Dst: sqlite3FileSuffix3
      Src: /src/nss/lib/sqlite/sqlite3.c:37121,1
    - Dst: sqlite3_mutex_alloc
      Src: /src/nss/lib/sqlite/sqlite3.c:37127,1
    - Dst: sqlite3_uri_boolean
      Src: /src/nss/lib/sqlite/sqlite3.c:37135,1
    - Dst: robust_open
      Src: /src/nss/lib/sqlite/sqlite3.c:37136,1
    - Dst: robust_open
      Src: /src/nss/lib/sqlite/sqlite3.c:37139,1
    - Dst: unixLogError
      Src: /src/nss/lib/sqlite/sqlite3.c:37141,1
    - Dst: robustFchown
      Src: /src/nss/lib/sqlite/sqlite3.c:37151,1
    - Dst: unixLockSharedMemory
      Src: /src/nss/lib/sqlite/sqlite3.c:37153,1
    - Dst: unixLeaveMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:37165,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:37174,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:37177,1
    - Dst: unixShmPurge
      Src: /src/nss/lib/sqlite/sqlite3.c:37182,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:37183,1
    - Dst: unixLeaveMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:37184,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 76
    argCount: 1
    argNames:
    - pDbFd
    argTypes:
    - unixFile*
    assertStmts:
    - condition: ( pDbFd->pShm==0 )
      pos:
        line_end: 37078
        line_start: 37078
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( unixFileMutexNotheld(pDbFd) )
      pos:
        line_end: 37083
        line_start: 37083
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 37186
      start: 37067
    functionDepth: 13
    functionLinenumber: 37067
    functionLinenumberEnd: 37186
    functionName: unixOpenSharedMemory
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - unixLogError
    - strlen
    - sqlite3_mutex_leave
    - memset
    - assert
    - sqlite3_mutex_alloc
    - sqlite3_snprintf
    - sqlite3_malloc64
    - unixEnterMutex
    - osFstat
    - unixFileMutexNotheld
    - unixShmPurge
    - sqlite3_uri_boolean
    - robustFchown
    - sqlite3FileSuffix3
    - unixLeaveMutex
    - unixLockSharedMemory
    - sqlite3_free
    - robust_open
    linkageType: ''
    returnType: int
    signature: int unixOpenSharedMemory(unixFile *pDbFd)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: unixShmRegionPerMap
      Src: /src/nss/lib/sqlite/sqlite3.c:37218,1
    - Dst: unixOpenSharedMemory
      Src: /src/nss/lib/sqlite/sqlite3.c:37223,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:37229,1
    - Dst: unixLockSharedMemory
      Src: /src/nss/lib/sqlite/sqlite3.c:37231,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:37235,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:37236,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:37237,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:37238,1
    - Dst: osFstat
      Src: /src/nss/lib/sqlite/sqlite3.c:37255,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:37280,1
    - Dst: seekAndWriteFd
      Src: /src/nss/lib/sqlite/sqlite3.c:37283,1
    - Dst: unixLogError
      Src: /src/nss/lib/sqlite/sqlite3.c:37285,1
    - Dst: sqlite3_realloc
      Src: /src/nss/lib/sqlite/sqlite3.c:37294,1
    - Dst: osMmap
      Src: /src/nss/lib/sqlite/sqlite3.c:37307,1
    - Dst: unixLogError
      Src: /src/nss/lib/sqlite/sqlite3.c:37312,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:37316,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:37321,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:37338,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 86
    argCount: 5
    argNames:
    - fd
    - iRegion
    - szRegion
    - bExtend
    - pp
    argTypes:
    - sqlite3_file*
    - int
    - int
    - int
    - void**
    assertStmts:
    - condition: ( szRegion==pShmNode->szRegion || pShmNode->nRegion==0 )
      pos:
        line_end: 37234
        line_start: 37234
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pShmNode->pInode==pDbFd->pInode )
      pos:
        line_end: 37235
        line_start: 37235
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pShmNode->hShm>=0 || pDbFd->pInode->bProcessLock==1 )
      pos:
        line_end: 37236
        line_start: 37236
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pShmNode->hShm<0 || pDbFd->pInode->bProcessLock==0 )
      pos:
        line_end: 37237
        line_start: 37237
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (nByte % pgsz)==0 )
      pos:
        line_end: 37279
        line_start: 37279
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 37340
      start: 37207
    functionDepth: 14
    functionLinenumber: 37207
    functionLinenumberEnd: 37340
    functionName: unixShmMap
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3_malloc64
    - sqlite3_realloc
    - unixOpenSharedMemory
    - sqlite3_mutex_leave
    - seekAndWriteFd
    - osFstat
    - unixShmRegionPerMap
    - assert
    - memset
    - osMmap
    - unixLogError
    - unixLockSharedMemory
    linkageType: ''
    returnType: int
    signature: "int unixShmMap(\n  sqlite3_file *fd,               /* Handle open
      on database file */\n  int iRegion,                    /* Region to retrieve
      */\n  int szRegion,                   /* Size of regions */\n  int bExtend,
      \                   /* True to extend file if necessary */\n  void volatile
      **pp              /* OUT: Mapped memory */\n)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:37363,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:37364,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:37365,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:37366,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:37367,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:37371,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:37372,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:37373,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:37376,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:37377,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:37384,1
    - Dst: unixShmSystemLock
      Src: /src/nss/lib/sqlite/sqlite3.c:37390,1
    - Dst: unixShmSystemLock
      Src: /src/nss/lib/sqlite/sqlite3.c:37418,1
    - Dst: unixShmSystemLock
      Src: /src/nss/lib/sqlite/sqlite3.c:37443,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:37445,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:37450,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:37451,1
    - Dst: osGetpid
      Src: /src/nss/lib/sqlite/sqlite3.c:37452,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 65
    argCount: 4
    argNames:
    - fd
    - ofst
    - n
    - flags
    argTypes:
    - sqlite3_file*
    - int
    - int
    - int
    assertStmts:
    - condition: ( pShmNode==pDbFd->pInode->pShmNode )
      pos:
        line_end: 37362
        line_start: 37362
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( flags==(SQLITE_SHM_LOCK | SQLITE_SHM_SHARED)\n       || flags==(SQLITE_SHM_LOCK
        | SQLITE_SHM_EXCLUSIVE)\n       || flags==(SQLITE_SHM_UNLOCK | SQLITE_SHM_SHARED)\n
        \      || flags==(SQLITE_SHM_UNLOCK | SQLITE_SHM_EXCLUSIVE) )"
      pos:
        line_end: 37369
        line_start: 37366
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( ofst>=0 && ofst+n<=SQLITE_SHM_NLOCK )
      pos:
        line_end: 37364
        line_start: 37364
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( n>=1 )
      pos:
        line_end: 37365
        line_start: 37365
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pShmNode->pInode==pDbFd->pInode )
      pos:
        line_end: 37363
        line_start: 37363
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( n==1 || (flags & SQLITE_SHM_EXCLUSIVE)!=0 )
      pos:
        line_end: 37370
        line_start: 37370
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pShmNode->hShm>=0 || pDbFd->pInode->bProcessLock==1 )
      pos:
        line_end: 37371
        line_start: 37371
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pShmNode->hShm<0 || pDbFd->pInode->bProcessLock==0 )
      pos:
        line_end: 37372
        line_start: 37372
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( n>1 || mask==(1<<ofst) )
      pos:
        line_end: 37375
        line_start: 37375
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pX->exclMask & (p->exclMask|p->sharedMask))==0 )
      pos:
        line_end: 37383
        line_start: 37383
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (p->sharedMask & mask)==0 )
      pos:
        line_end: 37444
        line_start: 37444
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 37454
      start: 37350
    functionDepth: 3
    functionLinenumber: 37350
    functionLinenumberEnd: 37454
    functionName: unixShmLock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3_mutex_leave
    - OSTRACE
    - unixShmSystemLock
    - assert
    - osGetpid
    linkageType: ''
    returnType: int
    signature: "int unixShmLock(\n  sqlite3_file *fd,          /* Database file holding
      the shared memory */\n  int ofst,                  /* First lock to acquire
      or release */\n  int n,                     /* Number of locks to acquire or
      release */\n  int flags                  /* What to do with the lock */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:37465,1
    - Dst: sqlite3MemoryBarrier
      Src: /src/nss/lib/sqlite/sqlite3.c:37466,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:37467,1
    - Dst: unixFileMutexNotheld
      Src: /src/nss/lib/sqlite/sqlite3.c:37468,1
    - Dst: unixEnterMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:37470,1
    - Dst: unixLeaveMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:37471,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - fd
    argTypes:
    - sqlite3_file*
    assertStmts:
    - condition: "( fd->pMethods->xLock==nolockLock \n       || unixFileMutexNotheld((unixFile*)fd)
        \n  )"
      pos:
        line_end: 37468
        line_start: 37466
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 37472
      start: 37462
    functionDepth: 2
    functionLinenumber: 37462
    functionLinenumberEnd: 37472
    functionName: unixShmBarrier
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - unixEnterMutex
    - UNUSED_PARAMETER
    - assert
    - sqlite3MemoryBarrier
    - unixLeaveMutex
    - unixFileMutexNotheld
    linkageType: ''
    returnType: void
    signature: "void unixShmBarrier(\n  sqlite3_file *fd                /* Database
      file holding the shared memory */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:37495,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:37496,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:37500,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:37505,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:37507,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:37511,1
    - Dst: unixFileMutexNotheld
      Src: /src/nss/lib/sqlite/sqlite3.c:37511,1
    - Dst: unixEnterMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:37512,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:37513,1
    - Dst: osUnlink
      Src: /src/nss/lib/sqlite/sqlite3.c:37517,1
    - Dst: unixShmPurge
      Src: /src/nss/lib/sqlite/sqlite3.c:37519,1
    - Dst: unixLeaveMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:37521,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 2
    argNames:
    - fd
    - deleteFlag
    argTypes:
    - sqlite3_file*
    - int
    assertStmts:
    - condition: ( pShmNode==pDbFd->pInode->pShmNode )
      pos:
        line_end: 37494
        line_start: 37494
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pShmNode->pInode==pDbFd->pInode )
      pos:
        line_end: 37495
        line_start: 37495
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( unixFileMutexNotheld(pDbFd) )
      pos:
        line_end: 37510
        line_start: 37510
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pShmNode->nRef>0 )
      pos:
        line_end: 37512
        line_start: 37512
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 37524
      start: 37481
    functionDepth: 13
    functionLinenumber: 37481
    functionLinenumberEnd: 37524
    functionName: unixShmUnmap
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - unixShmPurge
    - osUnlink
    - sqlite3_mutex_leave
    - unixEnterMutex
    - assert
    - unixFileMutexNotheld
    - unixLeaveMutex
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int unixShmUnmap(\n  sqlite3_file *fd,               /* The underlying
      database file */\n  int deleteFlag                  /* Delete shared-memory
      if true */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:37539,1
    - Dst: osMunmap
      Src: /src/nss/lib/sqlite/sqlite3.c:37541,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - pFd
    argTypes:
    - unixFile*
    assertStmts:
    - condition: ( pFd->nFetchOut==0 )
      pos:
        line_end: 37538
        line_start: 37538
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 37546
      start: 37538
    functionDepth: 0
    functionLinenumber: 37538
    functionLinenumberEnd: 37546
    functionName: unixUnmapfile
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - assert
    - osMunmap
    linkageType: ''
    returnType: void
    signature: void unixUnmapfile(unixFile *pFd)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:37574,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:37575,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:37576,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:37577,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:37578,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:37579,1
    - Dst: osGetpagesize
      Src: /src/nss/lib/sqlite/sqlite3.c:37589,1
    - Dst: osMunmap
      Src: /src/nss/lib/sqlite/sqlite3.c:37596,1
    - Dst: osMremap
      Src: /src/nss/lib/sqlite/sqlite3.c:37600,1
    - Dst: osMmap
      Src: /src/nss/lib/sqlite/sqlite3.c:37603,1
    - Dst: osMunmap
      Src: /src/nss/lib/sqlite/sqlite3.c:37606,1
    - Dst: osMunmap
      Src: /src/nss/lib/sqlite/sqlite3.c:37616,1
    - Dst: osMmap
      Src: /src/nss/lib/sqlite/sqlite3.c:37622,1
    - Dst: unixLogError
      Src: /src/nss/lib/sqlite/sqlite3.c:37628,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 2
    argNames:
    - pFd
    - nNew
    argTypes:
    - unixFile*
    - i64
    assertStmts:
    - condition: ( pFd->nFetchOut==0 )
      pos:
        line_end: 37573
        line_start: 37573
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nNew>0 )
      pos:
        line_end: 37576
        line_start: 37576
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pFd->mmapSizeActual>=pFd->mmapSize )
      pos:
        line_end: 37577
        line_start: 37577
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nNew<=pFd->mmapSizeMax )
      pos:
        line_end: 37575
        line_start: 37575
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nNew>pFd->mmapSize )
      pos:
        line_end: 37574
        line_start: 37574
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( MAP_FAILED!=0 )
      pos:
        line_end: 37578
        line_start: 37578
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 37637
      start: 37563
    functionDepth: 1
    functionLinenumber: 37563
    functionLinenumberEnd: 37637
    functionName: unixRemapfile
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - osMunmap
    - osMremap
    - assert
    - osMmap
    - osGetpagesize
    - unixLogError
    linkageType: ''
    returnType: void
    signature: "void unixRemapfile(\n  unixFile *pFd,                  /* File descriptor
      object */\n  i64 nNew                        /* Required mapping size */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:37656,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:37657,1
    - Dst: osFstat
      Src: /src/nss/lib/sqlite/sqlite3.c:37662,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:37671,1
    - Dst: unixRemapfile
      Src: /src/nss/lib/sqlite/sqlite3.c:37673,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 2
    argNames:
    - pFd
    - nMap
    argTypes:
    - unixFile*
    - i64
    assertStmts:
    - condition: ( nMap>=0 || pFd->nFetchOut==0 )
      pos:
        line_end: 37655
        line_start: 37655
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nMap>0 || (pFd->mmapSize==0 && pFd->pMapRegion==0) )
      pos:
        line_end: 37670
        line_start: 37670
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nMap>0 || (pFd->mmapSize==0 && pFd->pMapRegion==0) )
      pos:
        line_end: 37656
        line_start: 37656
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 37677
      start: 37655
    functionDepth: 2
    functionLinenumber: 37655
    functionLinenumberEnd: 37677
    functionName: unixMapfile
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - assert
    - osFstat
    - unixRemapfile
    linkageType: ''
    returnType: int
    signature: int unixMapfile(unixFile *pFd, i64 nMap)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: unixMapfile
      Src: /src/nss/lib/sqlite/sqlite3.c:37701,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - fd
    - iOff
    - nAmt
    - pp
    argTypes:
    - sqlite3_file*
    - i64
    - int
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37711
      start: 37692
    functionDepth: 3
    functionLinenumber: 37692
    functionLinenumberEnd: 37711
    functionName: unixFetch
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - unixMapfile
    linkageType: ''
    returnType: int
    signature: int unixFetch(sqlite3_file *fd, i64 iOff, int nAmt, void **pp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:37726,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:37731,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:37734,1
    - Dst: unixUnmapfile
      Src: /src/nss/lib/sqlite/sqlite3.c:37739,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:37742,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:37744,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:37745,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:37746,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - fd
    - iOff
    - p
    argTypes:
    - sqlite3_file*
    - i64
    - void*
    assertStmts:
    - condition: ( p==0 || p==&((u8 *)pFd->pMapRegion)[iOff] )
      pos:
        line_end: 37733
        line_start: 37733
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pFd->nFetchOut>=0 )
      pos:
        line_end: 37741
        line_start: 37741
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (p==0)==(pFd->nFetchOut==0) )
      pos:
        line_end: 37730
        line_start: 37730
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 37749
      start: 37723
    functionDepth: 1
    functionLinenumber: 37723
    functionLinenumberEnd: 37749
    functionName: unixUnfetch
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - UNUSED_PARAMETER
    - unixUnmapfile
    linkageType: ''
    returnType: int
    signature: int unixUnfetch(sqlite3_file *fd, i64 iOff, void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - FINDER
    - ','
    - METHOD
    - ','
    - VERSION
    - ','
    - CLOSE
    - ','
    - LOCK
    - ','
    - UNLOCK
    - ','
    - CKLOCK
    - ','
    - SHMMAP
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37793
      start: 37791
    functionDepth: 0
    functionLinenumber: 37791
    functionLinenumberEnd: 37793
    functionName: IOMETHODS
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IOMETHODS(FINDER,METHOD,VERSION,CLOSE,LOCK,UNLOCK,CKLOCK,SHMMAP)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: statfs
      Src: /src/nss/lib/sqlite/sqlite3.c:37967,1
    - Dst: strcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:37972,1
    - Dst: osFcntl
      Src: /src/nss/lib/sqlite/sqlite3.c:37986,1
    - Dst: strcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:37987,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - filePath
    - pNew
    argTypes:
    - char*
    - unixFile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37995
      start: 37943
    functionDepth: 0
    functionLinenumber: 37943
    functionLinenumberEnd: 37995
    functionName: autolockIoFinderImpl
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - strcmp
    - osFcntl
    - statfs
    linkageType: ''
    returnType: sqlite3_io_methods
    signature: "sqlite3_io_methods *autolockIoFinderImpl(\n  const char *filePath,
      \   /* name of the database file */\n  unixFile *pNew           /* open file
      object for the database file */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: osFcntl
      Src: /src/nss/lib/sqlite/sqlite3.c:38026,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - filePath
    - pNew
    argTypes:
    - char*
    - unixFile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38031
      start: 38007
    functionDepth: 0
    functionLinenumber: 38007
    functionLinenumberEnd: 38031
    functionName: vxworksIoFinderImpl
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - osFcntl
    linkageType: ''
    returnType: sqlite3_io_methods
    signature: "sqlite3_io_methods *vxworksIoFinderImpl(\n  const char *filePath,
      \   /* name of the database file */\n  unixFile *pNew           /* the open
      file object */\n)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:38064,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:38067,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:38069,1
    - Dst: sqlite3_uri_boolean
      Src: /src/nss/lib/sqlite/sqlite3.c:38077,1
    - Dst: strcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:38081,1
    - Dst: vxworksFindFileId
      Src: /src/nss/lib/sqlite/sqlite3.c:38086,1
    - Dst: unixEnterMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:38110,1
    - Dst: findInodeInfo
      Src: /src/nss/lib/sqlite/sqlite3.c:38111,1
    - Dst: robust_close
      Src: /src/nss/lib/sqlite/sqlite3.c:38131,1
    - Dst: unixLeaveMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:38134,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:38143,1
    - Dst: srandomdev
      Src: /src/nss/lib/sqlite/sqlite3.c:38152,1
    - Dst: unixEnterMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:38153,1
    - Dst: findInodeInfo
      Src: /src/nss/lib/sqlite/sqlite3.c:38154,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:38156,1
    - Dst: robust_close
      Src: /src/nss/lib/sqlite/sqlite3.c:38157,1
    - Dst: unixLeaveMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:38160,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:38171,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:38172,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:38173,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:38177,1
    - Dst: unixEnterMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:38187,1
    - Dst: findInodeInfo
      Src: /src/nss/lib/sqlite/sqlite3.c:38188,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:38192,1
    - Dst: sem_open
      Src: /src/nss/lib/sqlite/sqlite3.c:38196,1
    - Dst: unixLeaveMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:38202,1
    - Dst: storeLastErrno
      Src: /src/nss/lib/sqlite/sqlite3.c:38206,1
    - Dst: robust_close
      Src: /src/nss/lib/sqlite/sqlite3.c:38209,1
    - Dst: osUnlink
      Src: /src/nss/lib/sqlite/sqlite3.c:38211,1
    - Dst: robust_close
      Src: /src/nss/lib/sqlite/sqlite3.c:38216,1
    - Dst: OpenCounter
      Src: /src/nss/lib/sqlite/sqlite3.c:38219,1
    - Dst: verifyDbFile
      Src: /src/nss/lib/sqlite/sqlite3.c:38220,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 93
    argCount: 5
    argNames:
    - pVfs
    - h
    - pId
    - zFilename
    - ctrlFlags
    argTypes:
    - sqlite3_vfs*
    - int
    - sqlite3_file*
    - char*
    - int
    assertStmts:
    - condition: ( pNew->pInode==NULL )
      pos:
        line_end: 38063
        line_start: 38063
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( zFilename!=0 || (ctrlFlags & UNIXFILE_NOLOCK)!=0 )
      pos:
        line_end: 38066
        line_start: 38066
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( zFilename!=0 )
      pos:
        line_end: 38170
        line_start: 38170
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 38223
      start: 38053
    functionDepth: 12
    functionLinenumber: 38053
    functionLinenumberEnd: 38223
    functionName: fillInUnixFile
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - storeLastErrno
    - robust_close
    - strlen
    - vxworksFindFileId
    - assert
    - sqlite3_snprintf
    - findInodeInfo
    - sqlite3_malloc64
    - osUnlink
    - unixEnterMutex
    - OSTRACE
    - srandomdev
    - verifyDbFile
    - strcmp
    - sem_open
    - OpenCounter
    - sqlite3_uri_boolean
    - unixLeaveMutex
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int fillInUnixFile(\n  sqlite3_vfs *pVfs,      /* Pointer to vfs object
      */\n  int h,                  /* Open file descriptor of file being opened */\n
      \ sqlite3_file *pId,      /* Write to the unixFile structure here */\n  const
      char *zFilename,  /* Name of the file being opened */\n  int ctrlFlags           /*
      Zero or more UNIXFILE_* values */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/nss/lib/sqlite/sqlite3.c:38242,1
    - Dst: getenv
      Src: /src/nss/lib/sqlite/sqlite3.c:38243,1
    - Dst: osStat
      Src: /src/nss/lib/sqlite/sqlite3.c:38246,1
    - Dst: S_ISDIR
      Src: /src/nss/lib/sqlite/sqlite3.c:38247,1
    - Dst: osAccess
      Src: /src/nss/lib/sqlite/sqlite3.c:38248,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38256
      start: 38229
    functionDepth: 0
    functionLinenumber: 38229
    functionLinenumberEnd: 38256
    functionName: unixTempFileDir
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - getenv
    - osStat
    - S_ISDIR
    - osAccess
    linkageType: ''
    returnType: char
    signature: char *unixTempFileDir(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unixTempFileDir
      Src: /src/nss/lib/sqlite/sqlite3.c:38274,1
    - Dst: sqlite3_randomness
      Src: /src/nss/lib/sqlite/sqlite3.c:38278,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:38279,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:38281,1
    - Dst: osAccess
      Src: /src/nss/lib/sqlite/sqlite3.c:38284,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - nBuf
    - zBuf
    argTypes:
    - int
    - char*
    assertStmts:
    - condition: ( nBuf>2 )
      pos:
        line_end: 38278
        line_start: 38278
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 38286
      start: 38263
    functionDepth: 10
    functionLinenumber: 38263
    functionLinenumberEnd: 38286
    functionName: unixGetTempname
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_randomness
    - unixTempFileDir
    - osAccess
    - assert
    - sqlite3_snprintf
    linkageType: ''
    returnType: int
    signature: int unixGetTempname(int nBuf, char *zBuf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unixEnterMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:38324,1
    - Dst: osStat
      Src: /src/nss/lib/sqlite/sqlite3.c:38334,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:38344,1
    - Dst: sqlite3_mutex_notheld
      Src: /src/nss/lib/sqlite/sqlite3.c:38344,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:38345,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:38351,1
    - Dst: unixLeaveMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:38354,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 2
    argNames:
    - zPath
    - flags
    argTypes:
    - char*
    - int
    assertStmts:
    - condition: ( sqlite3_mutex_notheld(pInode->pLockMutex) )
      pos:
        line_end: 38343
        line_start: 38343
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 38357
      start: 38313
    functionDepth: 2
    functionLinenumber: 38313
    functionLinenumberEnd: 38357
    functionName: findReusableFd
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - unixEnterMutex
    - sqlite3_mutex_leave
    - assert
    - osStat
    - unixLeaveMutex
    - sqlite3_mutex_notheld
    linkageType: ''
    returnType: UnixUnusedFd
    signature: UnixUnusedFd *findReusableFd(const char *zPath, int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: osStat
      Src: /src/nss/lib/sqlite/sqlite3.c:38370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - zFile
    - pMode
    - pUid
    - pGid
    argTypes:
    - char*
    - mode_t*
    - uid_t*
    - gid_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38378
      start: 38362
    functionDepth: 0
    functionLinenumber: 38362
    functionLinenumberEnd: 38378
    functionName: getFileMode
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - osStat
    linkageType: ''
    returnType: int
    signature: "int getFileMode(\n  const char *zFile,              /* File name */\n
      \ mode_t *pMode,                  /* OUT: Permissions of zFile */\n  uid_t *pUid,
      \                   /* OUT: uid of zFile. */\n  gid_t *pGid                     /*
      OUT: gid of zFile. */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:38428,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:38437,1
    - Dst: getFileMode
      Src: /src/nss/lib/sqlite/sqlite3.c:38440,1
    - Dst: sqlite3_uri_parameter
      Src: /src/nss/lib/sqlite/sqlite3.c:38448,1
    - Dst: getFileMode
      Src: /src/nss/lib/sqlite/sqlite3.c:38450,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 5
    argNames:
    - zPath
    - flags
    - pMode
    - pUid
    - pGid
    argTypes:
    - char*
    - int
    - mode_t*
    - uid_t*
    - gid_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38454
      start: 38401
    functionDepth: 1
    functionLinenumber: 38401
    functionLinenumberEnd: 38454
    functionName: findCreateFileMode
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - sqlite3Strlen30
    - getFileMode
    - sqlite3_uri_parameter
    linkageType: ''
    returnType: int
    signature: "int findCreateFileMode(\n  const char *zPath,              /* Path
      of file (possibly) being created */\n  int flags,                      /* Flags
      passed as 4th argument to xOpen() */\n  mode_t *pMode,                  /* OUT:
      Permissions to open file with */\n  uid_t *pUid,                    /* OUT:
      uid to set on the file */\n  gid_t *pGid                     /* OUT: gid to
      set on the file */\n)"
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:38528,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:38529,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:38530,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:38531,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:38535,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:38536,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:38537,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:38538,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:38541,1
    - Dst: osGetpid
      Src: /src/nss/lib/sqlite/sqlite3.c:38552,1
    - Dst: osGetpid
      Src: /src/nss/lib/sqlite/sqlite3.c:38553,1
    - Dst: sqlite3_randomness
      Src: /src/nss/lib/sqlite/sqlite3.c:38554,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:38556,1
    - Dst: findReusableFd
      Src: /src/nss/lib/sqlite/sqlite3.c:38560,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:38564,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:38574,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:38574,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:38578,1
    - Dst: unixGetTempname
      Src: /src/nss/lib/sqlite/sqlite3.c:38579,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:38587,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:38587,1
    - Dst: findCreateFileMode
      Src: /src/nss/lib/sqlite/sqlite3.c:38604,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:38606,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:38607,1
    - Dst: robust_open
      Src: /src/nss/lib/sqlite/sqlite3.c:38610,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:38611,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:38612,1
    - Dst: osAccess
      Src: /src/nss/lib/sqlite/sqlite3.c:38614,1
    - Dst: robust_open
      Src: /src/nss/lib/sqlite/sqlite3.c:38625,1
    - Dst: unixLogError
      Src: /src/nss/lib/sqlite/sqlite3.c:38629,1
    - Dst: robustFchown
      Src: /src/nss/lib/sqlite/sqlite3.c:38639,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:38642,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:38656,1
    - Dst: robust_close
      Src: /src/nss/lib/sqlite/sqlite3.c:38658,1
    - Dst: osUnlink
      Src: /src/nss/lib/sqlite/sqlite3.c:38662,1
    - Dst: fstatfs
      Src: /src/nss/lib/sqlite/sqlite3.c:38672,1
    - Dst: storeLastErrno
      Src: /src/nss/lib/sqlite/sqlite3.c:38673,1
    - Dst: robust_close
      Src: /src/nss/lib/sqlite/sqlite3.c:38674,1
    - Dst: strncmp
      Src: /src/nss/lib/sqlite/sqlite3.c:38677,1
    - Dst: strncmp
      Src: /src/nss/lib/sqlite/sqlite3.c:38680,1
    - Dst: getenv
      Src: /src/nss/lib/sqlite/sqlite3.c:38698,1
    - Dst: atoi
      Src: /src/nss/lib/sqlite/sqlite3.c:38704,1
    - Dst: fillInUnixFile
      Src: /src/nss/lib/sqlite/sqlite3.c:38709,1
    - Dst: proxyTransformUnixFile
      Src: /src/nss/lib/sqlite/sqlite3.c:38711,1
    - Dst: unixClose
      Src: /src/nss/lib/sqlite/sqlite3.c:38717,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:38726,1
    - Dst: fillInUnixFile
      Src: /src/nss/lib/sqlite/sqlite3.c:38729,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:38733,1
    CyclomaticComplexity: 77
    EdgeCount: 77
    ICount: 147
    argCount: 5
    argNames:
    - pVfs
    - zPath
    - pFile
    - flags
    - pOutFlags
    argTypes:
    - sqlite3_vfs*
    - char*
    - sqlite3_file*
    - int
    - int*
    assertStmts:
    - condition: (isExclusive==0 || isCreate)
      pos:
        line_end: 38529
        line_start: 38529
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (flags & SQLITE_OPEN_URI) || zName[strlen(zName)+1]==0 )
      pos:
        line_end: 38573
        line_start: 38573
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( zName[strlen(zName)+1]==0 )
      pos:
        line_end: 38586
        line_start: 38586
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( zPath==0 || zPath[0]=='/' \n      || eType==SQLITE_OPEN_MASTER_JOURNAL
        || eType==SQLITE_OPEN_MAIN_JOURNAL \n  )"
      pos:
        line_end: 38727
        line_start: 38725
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ((isReadonly==0 || isReadWrite==0) && (isReadWrite || isReadonly))
      pos:
        line_end: 38527
        line_start: 38527
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (!isDelete && zName) || eType!=SQLITE_OPEN_MAIN_DB )
      pos:
        line_end: 38534
        line_start: 38534
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (isDelete==0 || isCreate)
      pos:
        line_end: 38530
        line_start: 38530
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !p->pPreallocatedUnused )
      pos:
        line_end: 38605
        line_start: 38605
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( eType==SQLITE_OPEN_WAL || eType==SQLITE_OPEN_MAIN_JOURNAL )
      pos:
        line_end: 38606
        line_start: 38606
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( fd>=0 )
      pos:
        line_end: 38641
        line_start: 38641
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (!isDelete && zName) || eType!=SQLITE_OPEN_MAIN_JOURNAL )
      pos:
        line_end: 38535
        line_start: 38535
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (!isDelete && zName) || eType!=SQLITE_OPEN_MASTER_JOURNAL )
      pos:
        line_end: 38536
        line_start: 38536
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (!isDelete && zName) || eType!=SQLITE_OPEN_WAL )
      pos:
        line_end: 38537
        line_start: 38537
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (isDelete && !isNewJrnl)
      pos:
        line_end: 38577
        line_start: 38577
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (isCreate==0 || isReadWrite)
      pos:
        line_end: 38528
        line_start: 38528
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( eType==SQLITE_OPEN_MAIN_DB      || eType==SQLITE_OPEN_TEMP_DB
        \n       || eType==SQLITE_OPEN_MAIN_JOURNAL || eType==SQLITE_OPEN_TEMP_JOURNAL
        \n       || eType==SQLITE_OPEN_SUBJOURNAL   || eType==SQLITE_OPEN_MASTER_JOURNAL
        \n       || eType==SQLITE_OPEN_TRANSIENT_DB || eType==SQLITE_OPEN_WAL\n  )"
      pos:
        line_end: 38544
        line_start: 38540
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !isExclusive || (openFlags & O_CREAT)!=0 )
      pos:
        line_end: 38611
        line_start: 38611
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 38736
      start: 38478
    functionDepth: 16
    functionLinenumber: 38478
    functionLinenumberEnd: 38736
    functionName: unixOpen
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - findReusableFd
    - storeLastErrno
    - unixClose
    - robust_close
    - osGetpid
    - unixLogError
    - findCreateFileMode
    - strlen
    - assert
    - memset
    - fstatfs
    - sqlite3_malloc64
    - unixGetTempname
    - osUnlink
    - sqlite3_randomness
    - OSTRACE
    - osAccess
    - sqlite3_mprintf
    - getenv
    - strncmp
    - fillInUnixFile
    - proxyTransformUnixFile
    - robustFchown
    - atoi
    - sqlite3_free
    - robust_open
    linkageType: ''
    returnType: int
    signature: "int unixOpen(\n  sqlite3_vfs *pVfs,           /* The VFS for which
      this is the xOpen method */\n  const char *zPath,           /* Pathname of file
      to be opened */\n  sqlite3_file *pFile,         /* The file descriptor to be
      filled in */\n  int flags,                   /* Input flags to control the opening
      */\n  int *pOutFlags               /* Output flags returned to SQLite core */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:38749,1
    - Dst: osUnlink
      Src: /src/nss/lib/sqlite/sqlite3.c:38751,1
    - Dst: osAccess
      Src: /src/nss/lib/sqlite/sqlite3.c:38754,1
    - Dst: unixLogError
      Src: /src/nss/lib/sqlite/sqlite3.c:38759,1
    - Dst: osOpenDirectory
      Src: /src/nss/lib/sqlite/sqlite3.c:38766,1
    - Dst: full_fsync
      Src: /src/nss/lib/sqlite/sqlite3.c:38768,1
    - Dst: unixLogError
      Src: /src/nss/lib/sqlite/sqlite3.c:38769,1
    - Dst: robust_close
      Src: /src/nss/lib/sqlite/sqlite3.c:38771,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:38773,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - NotUsed
    - zPath
    - dirSync
    argTypes:
    - sqlite3_vfs*
    - char*
    - int
    assertStmts:
    - condition: ( rc==SQLITE_CANTOPEN )
      pos:
        line_end: 38772
        line_start: 38772
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 38779
      start: 38743
    functionDepth: 12
    functionLinenumber: 38743
    functionLinenumberEnd: 38779
    functionName: unixDelete
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - osUnlink
    - UNUSED_PARAMETER
    - osOpenDirectory
    - osAccess
    - full_fsync
    - assert
    - robust_close
    - unixLogError
    linkageType: ''
    returnType: int
    signature: "int unixDelete(\n  sqlite3_vfs *NotUsed,     /* VFS containing this
      as the xDelete method */\n  const char *zPath,        /* Name of file to be
      deleted */\n  int dirSync               /* If true, fsync() directory after
      deleting file */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:38797,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:38799,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:38803,1
    - Dst: osStat
      Src: /src/nss/lib/sqlite/sqlite3.c:38807,1
    - Dst: osAccess
      Src: /src/nss/lib/sqlite/sqlite3.c:38809,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - NotUsed
    - zPath
    - flags
    - pResOut
    argTypes:
    - sqlite3_vfs*
    - char*
    - int
    - int*
    assertStmts:
    - condition: ( pResOut!=0 )
      pos:
        line_end: 38798
        line_start: 38798
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( flags==SQLITE_ACCESS_EXISTS || flags==SQLITE_ACCESS_READWRITE )
      pos:
        line_end: 38802
        line_start: 38802
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 38812
      start: 38791
    functionDepth: 1
    functionLinenumber: 38791
    functionLinenumberEnd: 38812
    functionName: unixAccess
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - osStat
    - UNUSED_PARAMETER
    - osAccess
    linkageType: ''
    returnType: int
    signature: "int unixAccess(\n  sqlite3_vfs *NotUsed,   /* The VFS containing this
      xAccess method */\n  const char *zPath,      /* Path of the file to examine
      */\n  int flags,              /* What do we want to learn about the zPath file?
      */\n  int *pResOut            /* Write result boolean here */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:38822,1
    - Dst: osGetcwd
      Src: /src/nss/lib/sqlite/sqlite3.c:38825,1
    - Dst: unixLogError
      Src: /src/nss/lib/sqlite/sqlite3.c:38826,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:38828,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:38837,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - zPath
    - zOut
    - nOut
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38839
      start: 38817
    functionDepth: 10
    functionLinenumber: 38817
    functionLinenumberEnd: 38839
    functionName: mkFullPathname
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_snprintf
    - unixLogError
    - sqlite3Strlen30
    - osGetcwd
    linkageType: ''
    returnType: int
    signature: "int mkFullPathname(\n  const char *zPath,              /* Input path
      */\n  char *zOut,                     /* Output buffer */\n  int nOut                        /*
      Allocated size of buffer zOut */\n)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: mkFullPathname
      Src: /src/nss/lib/sqlite/sqlite3.c:38857,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:38865,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:38866,1
    - Dst: osLstat
      Src: /src/nss/lib/sqlite/sqlite3.c:38881,1
    - Dst: unixLogError
      Src: /src/nss/lib/sqlite/sqlite3.c:38883,1
    - Dst: S_ISLNK
      Src: /src/nss/lib/sqlite/sqlite3.c:38886,1
    - Dst: sqlite3_malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:38891,1
    - Dst: osReadlink
      Src: /src/nss/lib/sqlite/sqlite3.c:38898,1
    - Dst: unixLogError
      Src: /src/nss/lib/sqlite/sqlite3.c:38900,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:38904,1
    - Dst: memmove
      Src: /src/nss/lib/sqlite/sqlite3.c:38908,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:38909,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:38920,1
    - Dst: mkFullPathname
      Src: /src/nss/lib/sqlite/sqlite3.c:38922,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:38928,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 53
    argCount: 4
    argNames:
    - pVfs
    - zPath
    - nOut
    - zOut
    argTypes:
    - sqlite3_vfs*
    - char*
    - int
    - char*
    assertStmts:
    - condition: ( pVfs->mxPathname==MAX_PATHNAME )
      pos:
        line_end: 38864
        line_start: 38864
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc!=SQLITE_OK || zIn!=zOut || zIn[0]=='/' )
      pos:
        line_end: 38919
        line_start: 38919
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 38931
      start: 38850
    functionDepth: 11
    functionLinenumber: 38850
    functionLinenumberEnd: 38931
    functionName: unixFullPathname
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_malloc
    - memcpy
    - mkFullPathname
    - osLstat
    - S_ISLNK
    - osReadlink
    - UNUSED_PARAMETER
    - assert
    - sqlite3Strlen30
    - unixLogError
    - memmove
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int unixFullPathname(\n  sqlite3_vfs *pVfs,            /* Pointer
      to vfs object */\n  const char *zPath,            /* Possibly relative input
      path */\n  int nOut,                     /* Size of output buffer in bytes */\n
      \ char *zOut                    /* Output buffer */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:38941,1
    - Dst: dlopen
      Src: /src/nss/lib/sqlite/sqlite3.c:38942,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - NotUsed
    - zFilename
    argTypes:
    - sqlite3_vfs*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38943
      start: 38940
    functionDepth: 1
    functionLinenumber: 38940
    functionLinenumberEnd: 38943
    functionName: unixDlOpen
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - dlopen
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: void
    signature: void *unixDlOpen(sqlite3_vfs *NotUsed, const char *zFilename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:38954,1
    - Dst: unixEnterMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:38955,1
    - Dst: dlerror
      Src: /src/nss/lib/sqlite/sqlite3.c:38956,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:38958,1
    - Dst: unixLeaveMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:38960,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - NotUsed
    - nBuf
    - zBufOut
    argTypes:
    - sqlite3_vfs*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38961
      start: 38952
    functionDepth: 10
    functionLinenumber: 38952
    functionLinenumberEnd: 38961
    functionName: unixDlError
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - unixEnterMutex
    - UNUSED_PARAMETER
    - dlerror
    - unixLeaveMutex
    - sqlite3_snprintf
    linkageType: ''
    returnType: void
    signature: void unixDlError(sqlite3_vfs *NotUsed, int nBuf, char *zBufOut)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:38981,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38984
      start: 38962
    functionDepth: 1
    functionLinenumber: 38962
    functionLinenumberEnd: 38984
    functionName: (*unixDlSym(sqlite3_vfs *NotUsed, void *p, const char*zSym))(void)
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: void
    signature: void (*unixDlSym(sqlite3_vfs *NotUsed, void *p, const char*zSym))(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:38986,1
    - Dst: dlclose
      Src: /src/nss/lib/sqlite/sqlite3.c:38987,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - NotUsed
    - pHandle
    argTypes:
    - sqlite3_vfs*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38988
      start: 38985
    functionDepth: 1
    functionLinenumber: 38985
    functionLinenumberEnd: 38988
    functionName: unixDlClose
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - dlclose
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: void
    signature: void unixDlClose(sqlite3_vfs *NotUsed, void *pHandle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:39000,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:39001,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:39015,1
    - Dst: osGetpid
      Src: /src/nss/lib/sqlite/sqlite3.c:39016,1
    - Dst: robust_open
      Src: /src/nss/lib/sqlite/sqlite3.c:39020,1
    - Dst: time
      Src: /src/nss/lib/sqlite/sqlite3.c:39023,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:39024,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:39025,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:39026,1
    - Dst: osRead
      Src: /src/nss/lib/sqlite/sqlite3.c:39029,1
    - Dst: robust_close
      Src: /src/nss/lib/sqlite/sqlite3.c:39030,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - NotUsed
    - nBuf
    - zBuf
    argTypes:
    - sqlite3_vfs*
    - int
    - char*
    assertStmts:
    - condition: ((size_t)nBuf>=(sizeof(time_t)+sizeof(int)))
      pos:
        line_end: 39000
        line_start: 39000
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sizeof(t)+sizeof(randomnessPid)<=(size_t)nBuf )
      pos:
        line_end: 39025
        line_start: 39025
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 39035
      start: 38999
    functionDepth: 12
    functionLinenumber: 38999
    functionLinenumberEnd: 39035
    functionName: unixRandomness
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - UNUSED_PARAMETER
    - assert
    - memset
    - osRead
    - robust_close
    - osGetpid
    - time
    - robust_open
    linkageType: ''
    returnType: int
    signature: int unixRandomness(sqlite3_vfs *NotUsed, int nBuf, char *zBuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nanosleep
      Src: /src/nss/lib/sqlite/sqlite3.c:39052,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:39053,1
    - Dst: usleep
      Src: /src/nss/lib/sqlite/sqlite3.c:39056,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:39057,1
    - Dst: sleep
      Src: /src/nss/lib/sqlite/sqlite3.c:39061,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:39062,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - NotUsed
    - microseconds
    argTypes:
    - sqlite3_vfs*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39065
      start: 39046
    functionDepth: 1
    functionLinenumber: 39046
    functionLinenumberEnd: 39065
    functionName: unixSleep
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sleep
    - UNUSED_PARAMETER
    - usleep
    - nanosleep
    linkageType: ''
    returnType: int
    signature: int unixSleep(sqlite3_vfs *NotUsed, int microseconds)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/nss/lib/sqlite/sqlite3.c:39091,1
    - Dst: clock_gettime
      Src: /src/nss/lib/sqlite/sqlite3.c:39095,1
    - Dst: gettimeofday
      Src: /src/nss/lib/sqlite/sqlite3.c:39099,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:39108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - NotUsed
    - piNow
    argTypes:
    - sqlite3_vfs*
    - sqlite3_int64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39110
      start: 39086
    functionDepth: 1
    functionLinenumber: 39086
    functionLinenumberEnd: 39110
    functionName: unixCurrentTimeInt64
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - clock_gettime
    - gettimeofday
    - time
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: int
    signature: int unixCurrentTimeInt64(sqlite3_vfs *NotUsed, sqlite3_int64 *piNow)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:39121,1
    - Dst: unixCurrentTimeInt64
      Src: /src/nss/lib/sqlite/sqlite3.c:39122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - NotUsed
    - prNow
    argTypes:
    - sqlite3_vfs*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39125
      start: 39118
    functionDepth: 2
    functionLinenumber: 39118
    functionLinenumberEnd: 39125
    functionName: unixCurrentTime
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    - unixCurrentTimeInt64
    linkageType: ''
    returnType: int
    signature: int unixCurrentTime(sqlite3_vfs *NotUsed, double *prNow)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:39137,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:39138,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:39139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - NotUsed
    - NotUsed2
    - NotUsed3
    argTypes:
    - sqlite3_vfs*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39141
      start: 39136
    functionDepth: 1
    functionLinenumber: 39136
    functionLinenumberEnd: 39141
    functionName: unixGetLastError
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: int
    signature: int unixGetLastError(sqlite3_vfs *NotUsed, int NotUsed2, char *NotUsed3)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:39331,1
    - Dst: confstr
      Src: /src/nss/lib/sqlite/sqlite3.c:39335,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:39336,1
    - Dst: osGetpid
      Src: /src/nss/lib/sqlite/sqlite3.c:39337,1
    - Dst: strlcat
      Src: /src/nss/lib/sqlite/sqlite3.c:39340,1
    - Dst: strlcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:39343,1
    - Dst: strlcat
      Src: /src/nss/lib/sqlite/sqlite3.c:39348,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:39352,1
    - Dst: strlcat
      Src: /src/nss/lib/sqlite/sqlite3.c:39358,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:39359,1
    - Dst: osGetpid
      Src: /src/nss/lib/sqlite/sqlite3.c:39359,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - dbPath
    - lPath
    - maxLen
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39361
      start: 39325
    functionDepth: 1
    functionLinenumber: 39325
    functionLinenumberEnd: 39361
    functionName: proxyGetLockPath
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - confstr
    - OSTRACE
    - osGetpid
    - strlcpy
    - strlcat
    - strlen
    linkageType: ''
    returnType: int
    signature: int proxyGetLockPath(const char *dbPath, char *lPath, size_t maxLen)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:39371,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:39373,1
    - Dst: osMkdir
      Src: /src/nss/lib/sqlite/sqlite3.c:39381,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:39384,1
    - Dst: strerror
      Src: /src/nss/lib/sqlite/sqlite3.c:39386,1
    - Dst: osGetpid
      Src: /src/nss/lib/sqlite/sqlite3.c:39386,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:39395,1
    - Dst: osGetpid
      Src: /src/nss/lib/sqlite/sqlite3.c:39395,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 1
    argNames:
    - lockPath
    argTypes:
    - char*
    assertStmts:
    - condition: (lockPath!=NULL)
      pos:
        line_end: 39370
        line_start: 39370
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 39397
      start: 39366
    functionDepth: 1
    functionLinenumber: 39366
    functionLinenumberEnd: 39397
    functionName: proxyCreateLockPath
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - OSTRACE
    - assert
    - osGetpid
    - osMkdir
    - strerror
    - strlen
    linkageType: ''
    returnType: int
    signature: int proxyCreateLockPath(const char *lockPath)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: findReusableFd
      Src: /src/nss/lib/sqlite/sqlite3.c:39425,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:39429,1
    - Dst: robust_open
      Src: /src/nss/lib/sqlite/sqlite3.c:39435,1
    - Dst: proxyCreateLockPath
      Src: /src/nss/lib/sqlite/sqlite3.c:39438,1
    - Dst: robust_open
      Src: /src/nss/lib/sqlite/sqlite3.c:39439,1
    - Dst: robust_open
      Src: /src/nss/lib/sqlite/sqlite3.c:39445,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:39462,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:39467,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:39469,1
    - Dst: fillInUnixFile
      Src: /src/nss/lib/sqlite/sqlite3.c:39476,1
    - Dst: robust_close
      Src: /src/nss/lib/sqlite/sqlite3.c:39482,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:39483,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:39484,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 62
    argCount: 3
    argNames:
    - path
    - ppFile
    - islockfile
    argTypes:
    - char*
    - unixFile**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39486
      start: 39406
    functionDepth: 13
    functionLinenumber: 39406
    functionLinenumberEnd: 39486
    functionName: proxyCreateUnixFile
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - findReusableFd
    - fillInUnixFile
    - sqlite3_malloc64
    - memset
    - robust_close
    - proxyCreateLockPath
    - sqlite3_free
    - robust_open
    linkageType: ''
    returnType: int
    signature: "int proxyCreateUnixFile(\n    const char *path,        /* path for
      the new unixFile */\n    unixFile **ppFile,       /* unixFile created and returned
      by ref */\n    int islockfile           /* if non zero missing dirs will be
      created */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:39504,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:39505,1
    - Dst: gethostuuid
      Src: /src/nss/lib/sqlite/sqlite3.c:39509,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:39518,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - pHostID
    - pError
    argTypes:
    - unsigned char*
    - int*
    assertStmts:
    - condition: (PROXY_HOSTIDLEN == sizeof(uuid_t))
      pos:
        line_end: 39503
        line_start: 39503
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 39528
      start: 39503
    functionDepth: 1
    functionLinenumber: 39503
    functionLinenumberEnd: 39528
    functionName: proxyGetHostID
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - gethostuuid
    - UNUSED_PARAMETER
    - memset
    linkageType: ''
    returnType: int
    signature: int proxyGetHostID(unsigned char *pHostID, int *pError)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:39554,1
    - Dst: strlcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:39557,1
    - Dst: strlcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:39559,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:39560,1
    - Dst: osPread
      Src: /src/nss/lib/sqlite/sqlite3.c:39564,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:39566,1
    - Dst: robust_open
      Src: /src/nss/lib/sqlite/sqlite3.c:39570,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:39572,1
    - Dst: osPwrite
      Src: /src/nss/lib/sqlite/sqlite3.c:39575,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:39576,1
    - Dst: rename
      Src: /src/nss/lib/sqlite/sqlite3.c:39579,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:39580,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:39584,1
    - Dst: robust_close
      Src: /src/nss/lib/sqlite/sqlite3.c:39585,1
    - Dst: osUnlink
      Src: /src/nss/lib/sqlite/sqlite3.c:39592,1
    - Dst: robust_close
      Src: /src/nss/lib/sqlite/sqlite3.c:39593,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:39595,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 2
    argNames:
    - pFile
    - myHostID
    argTypes:
    - unixFile*
    - uuid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39598
      start: 39543
    functionDepth: 12
    functionLinenumber: 39543
    functionLinenumberEnd: 39598
    functionName: proxyBreakConchLock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - osUnlink
    - rename
    - UNUSED_PARAMETER
    - osPread
    - fprintf
    - robust_close
    - osPwrite
    - sqlite3_snprintf
    - strlcpy
    - robust_open
    linkageType: ''
    returnType: int
    signature: int proxyBreakConchLock(unixFile *pFile, uuid_t myHostID)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:39610,1
    - Dst: unixFile*::pMethod::xLock
      Src: /src/nss/lib/sqlite/sqlite3.c:39612,1
    - Dst: osFstat
      Src: /src/nss/lib/sqlite/sqlite3.c:39622,1
    - Dst: storeLastErrno
      Src: /src/nss/lib/sqlite/sqlite3.c:39623,1
    - Dst: usleep
      Src: /src/nss/lib/sqlite/sqlite3.c:39629,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:39633,1
    - Dst: osPread
      Src: /src/nss/lib/sqlite/sqlite3.c:39641,1
    - Dst: storeLastErrno
      Src: /src/nss/lib/sqlite/sqlite3.c:39643,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:39648,1
    - Dst: usleep
      Src: /src/nss/lib/sqlite/sqlite3.c:39655,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:39659,1
    - Dst: proxyBreakConchLock
      Src: /src/nss/lib/sqlite/sqlite3.c:39660,1
    - Dst: unixFile*::pMethod::xLock
      Src: /src/nss/lib/sqlite/sqlite3.c:39663,1
    - Dst: unixFile*::pMethod::xLock
      Src: /src/nss/lib/sqlite/sqlite3.c:39666,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 47
    argCount: 3
    argNames:
    - pFile
    - myHostID
    - lockType
    argTypes:
    - unixFile*
    - uuid_t
    - int
    assertStmts:
    - condition: ( nTries>1 )
      pos:
        line_end: 39632
        line_start: 39632
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nTries==3 )
      pos:
        line_end: 39658
        line_start: 39658
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 39673
      start: 39603
    functionDepth: 13
    functionLinenumber: 39603
    functionLinenumberEnd: 39673
    functionName: proxyConchLock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - proxyBreakConchLock
    - storeLastErrno
    - unixFile*::pMethod::xLock
    - osFstat
    - osPread
    - memset
    - assert
    - usleep
    - memcmp
    linkageType: ''
    returnType: int
    signature: int proxyConchLock(unixFile *pFile, uuid_t myHostID, int lockType)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:39700,1
    - Dst: osGetpid
      Src: /src/nss/lib/sqlite/sqlite3.c:39702,1
    - Dst: proxyGetHostID
      Src: /src/nss/lib/sqlite/sqlite3.c:39704,1
    - Dst: storeLastErrno
      Src: /src/nss/lib/sqlite/sqlite3.c:39706,1
    - Dst: proxyConchLock
      Src: /src/nss/lib/sqlite/sqlite3.c:39709,1
    - Dst: seekAndRead
      Src: /src/nss/lib/sqlite/sqlite3.c:39714,1
    - Dst: storeLastErrno
      Src: /src/nss/lib/sqlite/sqlite3.c:39717,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:39734,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:39747,1
    - Dst: strncmp
      Src: /src/nss/lib/sqlite/sqlite3.c:39755,1
    - Dst: proxyGetLockPath
      Src: /src/nss/lib/sqlite/sqlite3.c:39771,1
    - Dst: futimes
      Src: /src/nss/lib/sqlite/sqlite3.c:39780,1
    - Dst: proxyConchLock
      Src: /src/nss/lib/sqlite/sqlite3.c:39787,1
    - Dst: proxyConchLock
      Src: /src/nss/lib/sqlite/sqlite3.c:39790,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:39797,1
    - Dst: strlcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:39799,1
    - Dst: strlcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:39802,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:39804,1
    - Dst: robust_ftruncate
      Src: /src/nss/lib/sqlite/sqlite3.c:39805,1
    - Dst: unixWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:39806,1
    - Dst: full_fsync
      Src: /src/nss/lib/sqlite/sqlite3.c:39807,1
    - Dst: osFstat
      Src: /src/nss/lib/sqlite/sqlite3.c:39813,1
    - Dst: osFchmod
      Src: /src/nss/lib/sqlite/sqlite3.c:39819,1
    - Dst: osFchmod
      Src: /src/nss/lib/sqlite/sqlite3.c:39822,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:39826,1
    - Dst: strerror
      Src: /src/nss/lib/sqlite/sqlite3.c:39827,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:39829,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:39833,1
    - Dst: strerror
      Src: /src/nss/lib/sqlite/sqlite3.c:39834,1
    - Dst: unixFile*::pMethod::xUnlock
      Src: /src/nss/lib/sqlite/sqlite3.c:39839,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:39842,1
    - Dst: robust_close
      Src: /src/nss/lib/sqlite/sqlite3.c:39846,1
    - Dst: robust_open
      Src: /src/nss/lib/sqlite/sqlite3.c:39849,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:39850,1
    - Dst: proxyCreateUnixFile
      Src: /src/nss/lib/sqlite/sqlite3.c:39860,1
    - Dst: sqlite3DbStrDup
      Src: /src/nss/lib/sqlite/sqlite3.c:39875,1
    - Dst: unixFile*::pMethod::xUnlock
      Src: /src/nss/lib/sqlite/sqlite3.c:39890,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:39892,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 140
    argCount: 1
    argNames:
    - pFile
    argTypes:
    - unixFile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39898
      start: 39681
    functionDepth: 14
    functionLinenumber: 39681
    functionLinenumberEnd: 39898
    functionName: proxyTakeConch
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - futimes
    - unixFile*::pMethod::xUnlock
    - seekAndRead
    - storeLastErrno
    - fprintf
    - robust_close
    - osGetpid
    - proxyCreateUnixFile
    - strlen
    - memcpy
    - proxyConchLock
    - sqlite3DbStrDup
    - memcmp
    - strerror
    - OSTRACE
    - osFstat
    - proxyGetHostID
    - strncmp
    - robust_ftruncate
    - proxyGetLockPath
    - full_fsync
    - unixWrite
    - strlcpy
    - osFchmod
    - robust_open
    linkageType: ''
    returnType: int
    signature: int proxyTakeConch(unixFile *pFile)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:39910,1
    - Dst: osGetpid
      Src: /src/nss/lib/sqlite/sqlite3.c:39912,1
    - Dst: unixFile*::pMethod::xUnlock
      Src: /src/nss/lib/sqlite/sqlite3.c:39914,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:39917,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - pFile
    argTypes:
    - unixFile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39920
      start: 39903
    functionDepth: 1
    functionLinenumber: 39903
    functionLinenumberEnd: 39920
    functionName: proxyReleaseConch
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - osGetpid
    - OSTRACE
    - unixFile*::pMethod::xUnlock
    linkageType: ''
    returnType: int
    signature: int proxyReleaseConch(unixFile *pFile)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:39935,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:39940,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:39944,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:39960,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:39961,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:39961,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - dbPath
    - pConchPath
    argTypes:
    - char*
    - char**
    assertStmts:
    - condition: ( (int)strlen(conchPath) == len+7 )
      pos:
        line_end: 39960
        line_start: 39960
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 39964
      start: 39933
    functionDepth: 6
    functionLinenumber: 39933
    functionLinenumberEnd: 39964
    functionName: proxyCreateConchPathname
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - memcpy
    - sqlite3_malloc64
    - strlen
    linkageType: ''
    returnType: int
    signature: int proxyCreateConchPathname(char *dbPath, char **pConchPath)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:39980,1
    - Dst: strncmp
      Src: /src/nss/lib/sqlite/sqlite3.c:39981,1
    - Dst: unixFile*::pMethod::xClose
      Src: /src/nss/lib/sqlite/sqlite3.c:39988,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:39990,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:39992,1
    - Dst: sqlite3DbStrDup
      Src: /src/nss/lib/sqlite/sqlite3.c:39993,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - pFile
    - path
    argTypes:
    - unixFile*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39997
      start: 39970
    functionDepth: 7
    functionLinenumber: 39970
    functionLinenumberEnd: 39997
    functionName: switchLockProxyPath
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - strcmp
    - strncmp
    - unixFile*::pMethod::xClose
    - sqlite3DbStrDup
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int switchLockProxyPath(unixFile *pFile, const char *path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:40011,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:40011,1
    - Dst: strlcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:40012,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:40019,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:40019,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:40020,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:40023,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:40023,1
    - Dst: strlcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:40024,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - pFile
    - dbPath
    argTypes:
    - unixFile*
    - char*
    assertStmts:
    - condition: ( (int)strlen((char*)pFile->lockingContext)<=MAXPATHLEN )
      pos:
        line_end: 40010
        line_start: 40010
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( strlen((char*)pFile->lockingContext)<=MAXPATHLEN )
      pos:
        line_end: 40022
        line_start: 40022
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 40027
      start: 40006
    functionDepth: 1
    functionLinenumber: 40006
    functionLinenumberEnd: 40027
    functionName: proxyGetDbPathForUnixFile
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - strlcpy
    - memcpy
    - strlen
    linkageType: ''
    returnType: int
    signature: int proxyGetDbPathForUnixFile(unixFile *pFile, char *dbPath)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: proxyGetDbPathForUnixFile
      Src: /src/nss/lib/sqlite/sqlite3.c:40046,1
    - Dst: strcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:40047,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:40053,1
    - Dst: osGetpid
      Src: /src/nss/lib/sqlite/sqlite3.c:40054,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:40056,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:40060,1
    - Dst: proxyCreateConchPathname
      Src: /src/nss/lib/sqlite/sqlite3.c:40062,1
    - Dst: proxyCreateUnixFile
      Src: /src/nss/lib/sqlite/sqlite3.c:40064,1
    - Dst: osStat
      Src: /src/nss/lib/sqlite/sqlite3.c:40075,1
    - Dst: statfs
      Src: /src/nss/lib/sqlite/sqlite3.c:40077,1
    - Dst: sqlite3DbStrDup
      Src: /src/nss/lib/sqlite/sqlite3.c:40088,1
    - Dst: sqlite3DbStrDup
      Src: /src/nss/lib/sqlite/sqlite3.c:40092,1
    - Dst: proxyLockingContext*::conchFile::pMethod::xClose
      Src: /src/nss/lib/sqlite/sqlite3.c:40107,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:40108,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:40110,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:40111,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:40112,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:40114,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 56
    argCount: 2
    argNames:
    - pFile
    - path
    argTypes:
    - unixFile*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40117
      start: 40037
    functionDepth: 14
    functionLinenumber: 40037
    functionLinenumberEnd: 40117
    functionName: proxyTransformUnixFile
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - strcmp
    - sqlite3_malloc64
    - proxyGetDbPathForUnixFile
    - proxyCreateConchPathname
    - sqlite3DbStrDup
    - sqlite3DbFree
    - OSTRACE
    - memset
    - osStat
    - osGetpid
    - proxyCreateUnixFile
    - statfs
    - sqlite3_free
    - proxyLockingContext*::conchFile::pMethod::xClose
    linkageType: ''
    returnType: int
    signature: int proxyTransformUnixFile(unixFile *pFile, const char *path)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: proxyTakeConch
      Src: /src/nss/lib/sqlite/sqlite3.c:40130,1
    - Dst: strcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:40161,1
    - Dst: strncmp
      Src: /src/nss/lib/sqlite/sqlite3.c:40163,1
    - Dst: switchLockProxyPath
      Src: /src/nss/lib/sqlite/sqlite3.c:40167,1
    - Dst: proxyTransformUnixFile
      Src: /src/nss/lib/sqlite/sqlite3.c:40171,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:40177,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 3
    argNames:
    - id
    - op
    - pArg
    argTypes:
    - sqlite3_file*
    - int
    - void*
    assertStmts:
    - condition: ( 0 )
      pos:
        line_end: 40176
        line_start: 40176
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 40182
      start: 40124
    functionDepth: 15
    functionLinenumber: 40124
    functionLinenumberEnd: 40182
    functionName: proxyFileControl
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - strcmp
    - strncmp
    - proxyTransformUnixFile
    - proxyTakeConch
    - switchLockProxyPath
    - assert
    linkageType: ''
    returnType: int
    signature: int proxyFileControl(sqlite3_file *id, int op, void *pArg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: proxyTakeConch
      Src: /src/nss/lib/sqlite/sqlite3.c:40199,1
    - Dst: unixFile*::pMethod::xCheckReservedLock
      Src: /src/nss/lib/sqlite/sqlite3.c:40204,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - id
    - pResOut
    argTypes:
    - sqlite3_file*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40210
      start: 40197
    functionDepth: 15
    functionLinenumber: 40197
    functionLinenumberEnd: 40210
    functionName: proxyCheckReservedLock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - proxyTakeConch
    - unixFile*::pMethod::xCheckReservedLock
    linkageType: ''
    returnType: int
    signature: int proxyCheckReservedLock(sqlite3_file *id, int *pResOut)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: proxyTakeConch
      Src: /src/nss/lib/sqlite/sqlite3.c:40238,1
    - Dst: unixFile*::pMethod::xLock
      Src: /src/nss/lib/sqlite/sqlite3.c:40243,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - id
    - eFileLock
    argTypes:
    - sqlite3_file*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40250
      start: 40236
    functionDepth: 15
    functionLinenumber: 40236
    functionLinenumberEnd: 40250
    functionName: proxyLock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - proxyTakeConch
    - unixFile*::pMethod::xLock
    linkageType: ''
    returnType: int
    signature: int proxyLock(sqlite3_file *id, int eFileLock)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: proxyTakeConch
      Src: /src/nss/lib/sqlite/sqlite3.c:40262,1
    - Dst: unixFile*::pMethod::xUnlock
      Src: /src/nss/lib/sqlite/sqlite3.c:40267,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - id
    - eFileLock
    argTypes:
    - sqlite3_file*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40274
      start: 40260
    functionDepth: 15
    functionLinenumber: 40260
    functionLinenumberEnd: 40274
    functionName: proxyUnlock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - unixFile*::pMethod::xUnlock
    - proxyTakeConch
    linkageType: ''
    returnType: int
    signature: int proxyUnlock(sqlite3_file *id, int eFileLock)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:40280,1
    - Dst: unixFile*::pMethod::xUnlock
      Src: /src/nss/lib/sqlite/sqlite3.c:40288,1
    - Dst: unixFile*::pMethod::xClose
      Src: /src/nss/lib/sqlite/sqlite3.c:40290,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:40292,1
    - Dst: proxyReleaseConch
      Src: /src/nss/lib/sqlite/sqlite3.c:40297,1
    - Dst: unixFile*::pMethod::xClose
      Src: /src/nss/lib/sqlite/sqlite3.c:40300,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:40302,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:40304,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:40305,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:40306,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:40310,1
    - Dst: unixFile*::pMethod::xClose
      Src: /src/nss/lib/sqlite/sqlite3.c:40311,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 1
    argNames:
    - id
    argTypes:
    - sqlite3_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40314
      start: 40279
    functionDepth: 6
    functionLinenumber: 40279
    functionLinenumberEnd: 40314
    functionName: proxyClose
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ALWAYS
    - unixFile*::pMethod::xClose
    - unixFile*::pMethod::xUnlock
    - sqlite3DbFree
    - proxyReleaseConch
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int proxyClose(sqlite3_file *id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: defined
      Src: /src/nss/lib/sqlite/sqlite3.c:40395,1
    - Dst: UNIXVFS
      Src: /src/nss/lib/sqlite/sqlite3.c:40396,1
    - Dst: UNIXVFS
      Src: /src/nss/lib/sqlite/sqlite3.c:40398,1
    - Dst: UNIXVFS
      Src: /src/nss/lib/sqlite/sqlite3.c:40400,1
    - Dst: UNIXVFS
      Src: /src/nss/lib/sqlite/sqlite3.c:40402,1
    - Dst: UNIXVFS
      Src: /src/nss/lib/sqlite/sqlite3.c:40403,1
    - Dst: UNIXVFS
      Src: /src/nss/lib/sqlite/sqlite3.c:40404,1
    - Dst: UNIXVFS
      Src: /src/nss/lib/sqlite/sqlite3.c:40406,1
    - Dst: UNIXVFS
      Src: /src/nss/lib/sqlite/sqlite3.c:40409,1
    - Dst: UNIXVFS
      Src: /src/nss/lib/sqlite/sqlite3.c:40412,1
    - Dst: defined
      Src: /src/nss/lib/sqlite/sqlite3.c:40414,1
    - Dst: UNIXVFS
      Src: /src/nss/lib/sqlite/sqlite3.c:40415,1
    - Dst: UNIXVFS
      Src: /src/nss/lib/sqlite/sqlite3.c:40416,1
    - Dst: UNIXVFS
      Src: /src/nss/lib/sqlite/sqlite3.c:40417,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:40424,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:40424,1
    - Dst: sqlite3_vfs_register
      Src: /src/nss/lib/sqlite/sqlite3.c:40428,1
    - Dst: sqlite3MutexAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:40430,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( ArraySize(aSyscall)==29 )
      pos:
        line_end: 40423
        line_start: 40423
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 40432
      start: 40341
    functionDepth: 3
    functionLinenumber: 40341
    functionLinenumberEnd: 40432
    functionName: sqlite3_os_init
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - ArraySize
    - sqlite3_vfs_register
    - assert
    - UNIXVFS
    - defined
    - sqlite3MutexAlloc
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_os_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - VFSNAME
    - ','
    - FINDER
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40363
      start: 40362
    functionDepth: 0
    functionLinenumber: 40362
    functionLinenumberEnd: 40363
    functionName: UNIXVFS
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNIXVFS(VFSNAME, FINDER)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40444
      start: 40441
    functionDepth: 0
    functionLinenumber: 40441
    functionLinenumberEnd: 40444
    functionName: sqlite3_os_end
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_os_end(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40548
      start: 40544
    functionDepth: 0
    functionLinenumber: 40544
    functionLinenumberEnd: 40548
    functionName: sqlite3Hwtime
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sqlite_uint64
    signature: sqlite_uint64 sqlite3Hwtime(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40567
      start: 40563
    functionDepth: 0
    functionLinenumber: 40563
    functionLinenumberEnd: 40567
    functionName: sqlite3Hwtime
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sqlite_uint64
    signature: sqlite_uint64 sqlite3Hwtime(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40582
      start: 40571
    functionDepth: 0
    functionLinenumber: 40571
    functionLinenumberEnd: 40582
    functionName: sqlite3Hwtime
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sqlite_uint64
    signature: sqlite_uint64 sqlite3Hwtime(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40595
      start: 40595
    functionDepth: 0
    functionLinenumber: 40595
    functionLinenumberEnd: 40595
    functionName: sqlite_uint64::sqlite3Hwtime
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite_uint64 sqlite3Hwtime(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40629
      start: 40628
    functionDepth: 0
    functionLinenumber: 40628
    functionLinenumberEnd: 40629
    functionName: SimulateIOErrorBenign
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SimulateIOErrorBenign(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - CODE
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40633
      start: 40629
    functionDepth: 0
    functionLinenumber: 40629
    functionLinenumberEnd: 40633
    functionName: SimulateIOError
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SimulateIOError(CODE)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IOTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:40634,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40637
      start: 40633
    functionDepth: 1
    functionLinenumber: 40633
    functionLinenumberEnd: 40637
    functionName: local_ioerr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - IOTRACE
    linkageType: ''
    returnType: void
    signature: void local_ioerr()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - CODE
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40649
      start: 40638
    functionDepth: 0
    functionLinenumber: 40638
    functionLinenumberEnd: 40649
    functionName: SimulateDiskfullError
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SimulateDiskfullError(CODE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40661
      start: 40660
    functionDepth: 0
    functionLinenumber: 40660
    functionLinenumberEnd: 40661
    functionName: OpenCounter
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OpenCounter(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40816
      start: 40815
    functionDepth: 0
    functionLinenumber: 40815
    functionLinenumberEnd: 40816
    functionName: winIsDirSep
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: winIsDirSep(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40824
      start: 40823
    functionDepth: 0
    functionLinenumber: 40823
    functionLinenumberEnd: 40824
    functionName: UNUSED_VARIABLE_VALUE
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNUSED_VARIABLE_VALUE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40831
      start: 40830
    functionDepth: 0
    functionLinenumber: 40830
    functionLinenumberEnd: 40831
    functionName: winGetDirSep
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: winGetDirSep()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41095
      start: 41094
    functionDepth: 0
    functionLinenumber: 41094
    functionLinenumberEnd: 41095
    functionName: winMemAssertMagic1
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: winMemAssertMagic1()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41096
      start: 41095
    functionDepth: 0
    functionLinenumber: 41095
    functionLinenumberEnd: 41096
    functionName: winMemAssertMagic2
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: winMemAssertMagic2()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41097
      start: 41096
    functionDepth: 0
    functionLinenumber: 41096
    functionLinenumberEnd: 41097
    functionName: winMemAssertMagic
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: winMemAssertMagic()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41102
      start: 41101
    functionDepth: 0
    functionLinenumber: 41101
    functionLinenumberEnd: 41102
    functionName: winMemGetDataPtr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: winMemGetDataPtr()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41103
      start: 41102
    functionDepth: 0
    functionLinenumber: 41102
    functionLinenumberEnd: 41103
    functionName: winMemGetHeap
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: winMemGetHeap()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41104
      start: 41103
    functionDepth: 0
    functionLinenumber: 41103
    functionLinenumberEnd: 41104
    functionName: winMemGetOwned
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: winMemGetOwned()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41144
      start: 41143
    functionDepth: 0
    functionLinenumber: 41143
    functionLinenumberEnd: 41144
    functionName: osAreFileApisANSI
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: osAreFileApisANSI()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:41821,1
    - Dst: strcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:41837,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - pNotUsed
    - zName
    - pNewFunc
    argTypes:
    - sqlite3_vfs*
    - char*
    - sqlite3_syscall_ptr
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41849
      start: 41813
    functionDepth: 1
    functionLinenumber: 41813
    functionLinenumberEnd: 41849
    functionName: winSetSystemCall
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - strcmp
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: int
    signature: "int winSetSystemCall(\n  sqlite3_vfs *pNotUsed,        /* The VFS
      pointer.  Not used */\n  const char *zName,            /* Name of system call
      to override */\n  sqlite3_syscall_ptr pNewFunc  /* Pointer to new system call
      value */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:41862,1
    - Dst: strcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:41864,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - pNotUsed
    - zName
    argTypes:
    - sqlite3_vfs*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41867
      start: 41856
    functionDepth: 1
    functionLinenumber: 41856
    functionLinenumberEnd: 41867
    functionName: winGetSystemCall
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - strcmp
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: sqlite3_syscall_ptr
    signature: "sqlite3_syscall_ptr winGetSystemCall(\n  sqlite3_vfs *pNotUsed,\n
      \ const char *zName\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:41878,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:41880,1
    - Dst: strcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:41881,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:41884,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - p
    - zName
    argTypes:
    - sqlite3_vfs*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41888
      start: 41875
    functionDepth: 1
    functionLinenumber: 41875
    functionLinenumberEnd: 41888
    functionName: winNextSystemCall
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - strcmp
    - ArraySize
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: char
    signature: char *winNextSystemCall(sqlite3_vfs *p, const char *zName)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: winMemAssertMagic
      Src: /src/nss/lib/sqlite/sqlite3.c:41903,1
    - Dst: winMemGetHeap
      Src: /src/nss/lib/sqlite/sqlite3.c:41904,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:41905,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:41906,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:41908,1
    - Dst: osHeapValidate
      Src: /src/nss/lib/sqlite/sqlite3.c:41908,1
    - Dst: osHeapCompact
      Src: /src/nss/lib/sqlite/sqlite3.c:41911,1
    - Dst: osGetLastError
      Src: /src/nss/lib/sqlite/sqlite3.c:41912,1
    - Dst: sqlite3_log
      Src: /src/nss/lib/sqlite/sqlite3.c:41914,1
    - Dst: sqlite3_log
      Src: /src/nss/lib/sqlite/sqlite3.c:41918,1
    - Dst: osGetLastError
      Src: /src/nss/lib/sqlite/sqlite3.c:41919,1
    - Dst: sqlite3_log
      Src: /src/nss/lib/sqlite/sqlite3.c:41924,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - pnLargest
    argTypes:
    - LPUINT
    assertStmts:
    - condition: ( hHeap!=INVALID_HANDLE_VALUE )
      pos:
        line_end: 41905
        line_start: 41905
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( osHeapValidate(hHeap, SQLITE_WIN32_HEAP_FLAGS, NULL) )
      pos:
        line_end: 41907
        line_start: 41907
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( hHeap!=0 )
      pos:
        line_end: 41904
        line_start: 41904
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 41930
      start: 41898
    functionDepth: 10
    functionLinenumber: 41898
    functionLinenumberEnd: 41930
    functionName: sqlite3_win32_compact_heap
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - winMemAssertMagic
    - osGetLastError
    - sqlite3_log
    - assert
    - osHeapValidate
    - osHeapCompact
    - winMemGetHeap
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_win32_compact_heap(LPUINT pnLargest)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MUTEX_LOGIC
      Src: /src/nss/lib/sqlite/sqlite3.c:41940,1
    - Dst: MUTEX_LOGIC
      Src: /src/nss/lib/sqlite/sqlite3.c:41941,1
    - Dst: MUTEX_LOGIC
      Src: /src/nss/lib/sqlite/sqlite3.c:41942,1
    - Dst: sqlite3MutexAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:41942,1
    - Dst: MUTEX_LOGIC
      Src: /src/nss/lib/sqlite/sqlite3.c:41943,1
    - Dst: sqlite3MutexAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:41943,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:41944,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:41945,1
    - Dst: winMemAssertMagic
      Src: /src/nss/lib/sqlite/sqlite3.c:41946,1
    - Dst: winMemGetHeap
      Src: /src/nss/lib/sqlite/sqlite3.c:41947,1
    - Dst: winMemGetOwned
      Src: /src/nss/lib/sqlite/sqlite3.c:41947,1
    - Dst: sqlite3_memory_used
      Src: /src/nss/lib/sqlite/sqlite3.c:41947,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:41955,1
    - Dst: winMemGetHeap
      Src: /src/nss/lib/sqlite/sqlite3.c:41955,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:41956,1
    - Dst: winMemGetOwned
      Src: /src/nss/lib/sqlite/sqlite3.c:41956,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:41957,1
    - Dst: sqlite3_memory_used
      Src: /src/nss/lib/sqlite/sqlite3.c:41957,1
    - Dst: winMemShutdown
      Src: /src/nss/lib/sqlite/sqlite3.c:41958,1
    - Dst: winMemGetDataPtr
      Src: /src/nss/lib/sqlite/sqlite3.c:41958,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:41959,1
    - Dst: winMemGetHeap
      Src: /src/nss/lib/sqlite/sqlite3.c:41959,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:41960,1
    - Dst: winMemGetOwned
      Src: /src/nss/lib/sqlite/sqlite3.c:41960,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:41961,1
    - Dst: sqlite3_memory_used
      Src: /src/nss/lib/sqlite/sqlite3.c:41961,1
    - Dst: winMemInit
      Src: /src/nss/lib/sqlite/sqlite3.c:41962,1
    - Dst: winMemGetDataPtr
      Src: /src/nss/lib/sqlite/sqlite3.c:41962,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:41963,1
    - Dst: winMemGetHeap
      Src: /src/nss/lib/sqlite/sqlite3.c:41963,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:41964,1
    - Dst: winMemGetOwned
      Src: /src/nss/lib/sqlite/sqlite3.c:41964,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:41965,1
    - Dst: sqlite3_memory_used
      Src: /src/nss/lib/sqlite/sqlite3.c:41965,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:41972,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:41973,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( !winMemGetOwned() )
      pos:
        line_end: 41959
        line_start: 41959
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3_memory_used()==0 )
      pos:
        line_end: 41960
        line_start: 41960
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc!=SQLITE_OK || winMemGetHeap()!=NULL )
      pos:
        line_end: 41962
        line_start: 41962
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc!=SQLITE_OK || sqlite3_memory_used()==0 )
      pos:
        line_end: 41964
        line_start: 41964
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( winMemGetOwned() )
      pos:
        line_end: 41955
        line_start: 41955
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3_memory_used()==0 )
      pos:
        line_end: 41956
        line_start: 41956
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( winMemGetHeap()!=NULL )
      pos:
        line_end: 41954
        line_start: 41954
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc!=SQLITE_OK || winMemGetOwned() )
      pos:
        line_end: 41963
        line_start: 41963
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( winMemGetHeap()==NULL )
      pos:
        line_end: 41958
        line_start: 41958
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 41975
      start: 41938
    functionDepth: 1
    functionLinenumber: 41938
    functionLinenumberEnd: 41975
    functionName: sqlite3_win32_reset_heap
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - winMemAssertMagic
    - winMemGetOwned
    - winMemInit
    - sqlite3_memory_used
    - MUTEX_LOGIC
    - sqlite3_mutex_leave
    - winMemShutdown
    - assert
    - winMemGetDataPtr
    - winMemGetHeap
    - sqlite3MutexAlloc
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_win32_reset_heap()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/nss/lib/sqlite/sqlite3.c:41985,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:41987,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:41996,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:41997,1
    - Dst: osOutputDebugStringA
      Src: /src/nss/lib/sqlite/sqlite3.c:41998,1
    - Dst: osOutputDebugStringA
      Src: /src/nss/lib/sqlite/sqlite3.c:42000,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:42003,1
    - Dst: osMultiByteToWideChar
      Src: /src/nss/lib/sqlite/sqlite3.c:42004,1
    - Dst: osAreFileApisANSI
      Src: /src/nss/lib/sqlite/sqlite3.c:42005,1
    - Dst: osOutputDebugStringW
      Src: /src/nss/lib/sqlite/sqlite3.c:42009,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:42012,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:42013,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:42014,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:42016,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - zBuf
    - nBuf
    argTypes:
    - char*
    - int
    assertStmts:
    - condition: ( nMin==-1 || nMin==0 || nMin<SQLITE_WIN32_DBG_BUF_SIZE )
      pos:
        line_end: 41986
        line_start: 41986
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 42019
      start: 41983
    functionDepth: 1
    functionLinenumber: 41983
    functionLinenumberEnd: 42019
    functionName: sqlite3_win32_write_debug
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - osOutputDebugStringW
    - osOutputDebugStringA
    - assert
    - memset
    - fprintf
    - osMultiByteToWideChar
    - osAreFileApisANSI
    - MIN
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_win32_write_debug(const char *zBuf, int nBuf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: osCreateEventExW
      Src: /src/nss/lib/sqlite/sqlite3.c:42032,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:42035,1
    - Dst: osWaitForSingleObjectEx
      Src: /src/nss/lib/sqlite/sqlite3.c:42036,1
    - Dst: osSleep
      Src: /src/nss/lib/sqlite/sqlite3.c:42038,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - milliseconds
    argTypes:
    - DWORD
    assertStmts:
    - condition: ( sleepObj!=NULL )
      pos:
        line_end: 42034
        line_start: 42034
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 42040
      start: 42029
    functionDepth: 0
    functionLinenumber: 42029
    functionLinenumberEnd: 42040
    functionName: sqlite3_win32_sleep
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - osCreateEventExW
    - osSleep
    - assert
    - osWaitForSingleObjectEx
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_win32_sleep(DWORD milliseconds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: osWaitForSingleObjectEx
      Src: /src/nss/lib/sqlite/sqlite3.c:42046,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - hObject
    argTypes:
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42049
      start: 42044
    functionDepth: 0
    functionLinenumber: 42044
    functionLinenumberEnd: 42049
    functionName: sqlite3Win32Wait
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - osWaitForSingleObjectEx
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Win32Wait(HANDLE hObject)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42066
      start: 42065
    functionDepth: 0
    functionLinenumber: 42065
    functionLinenumberEnd: 42066
    functionName: osIsNT
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: osIsNT()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42068
      start: 42067
    functionDepth: 0
    functionLinenumber: 42067
    functionLinenumberEnd: 42068
    functionName: osIsNT
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: osIsNT()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42070
      start: 42069
    functionDepth: 0
    functionLinenumber: 42069
    functionLinenumberEnd: 42070
    functionName: osIsNT
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: osIsNT()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42072
      start: 42071
    functionDepth: 0
    functionLinenumber: 42071
    functionLinenumberEnd: 42072
    functionName: osIsNT
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: osIsNT()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: osInterlockedCompareExchange
      Src: /src/nss/lib/sqlite/sqlite3.c:42086,1
    - Dst: osGetVersionExA
      Src: /src/nss/lib/sqlite/sqlite3.c:42090,1
    - Dst: osInterlockedCompareExchange
      Src: /src/nss/lib/sqlite/sqlite3.c:42091,1
    - Dst: osGetVersionExW
      Src: /src/nss/lib/sqlite/sqlite3.c:42096,1
    - Dst: osInterlockedCompareExchange
      Src: /src/nss/lib/sqlite/sqlite3.c:42097,1
    - Dst: osInterlockedCompareExchange
      Src: /src/nss/lib/sqlite/sqlite3.c:42101,1
    - Dst: osInterlockedCompareExchange
      Src: /src/nss/lib/sqlite/sqlite3.c:42103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42111
      start: 42078
    functionDepth: 0
    functionLinenumber: 42078
    functionLinenumberEnd: 42111
    functionName: sqlite3_win32_is_nt
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - osInterlockedCompareExchange
    - osGetVersionExW
    - osGetVersionExA
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_win32_is_nt(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: winMemAssertMagic
      Src: /src/nss/lib/sqlite/sqlite3.c:42121,1
    - Dst: winMemGetHeap
      Src: /src/nss/lib/sqlite/sqlite3.c:42122,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:42123,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:42124,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:42126,1
    - Dst: osHeapValidate
      Src: /src/nss/lib/sqlite/sqlite3.c:42126,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:42128,1
    - Dst: osHeapAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:42129,1
    - Dst: sqlite3_log
      Src: /src/nss/lib/sqlite/sqlite3.c:42131,1
    - Dst: osGetLastError
      Src: /src/nss/lib/sqlite/sqlite3.c:42132,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - nBytes
    argTypes:
    - int
    assertStmts:
    - condition: ( hHeap!=INVALID_HANDLE_VALUE )
      pos:
        line_end: 42123
        line_start: 42123
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( osHeapValidate(hHeap, SQLITE_WIN32_HEAP_FLAGS, NULL) )
      pos:
        line_end: 42125
        line_start: 42125
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( hHeap!=0 )
      pos:
        line_end: 42122
        line_start: 42122
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nBytes>=0 )
      pos:
        line_end: 42127
        line_start: 42127
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 42135
      start: 42117
    functionDepth: 10
    functionLinenumber: 42117
    functionLinenumberEnd: 42135
    functionName: winMemMalloc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - winMemAssertMagic
    - osHeapAlloc
    - sqlite3_log
    - osGetLastError
    - assert
    - osHeapValidate
    - winMemGetHeap
    linkageType: ''
    returnType: void
    signature: void *winMemMalloc(int nBytes)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: winMemAssertMagic
      Src: /src/nss/lib/sqlite/sqlite3.c:42143,1
    - Dst: winMemGetHeap
      Src: /src/nss/lib/sqlite/sqlite3.c:42144,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:42145,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:42146,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:42148,1
    - Dst: osHeapValidate
      Src: /src/nss/lib/sqlite/sqlite3.c:42148,1
    - Dst: osHeapFree
      Src: /src/nss/lib/sqlite/sqlite3.c:42151,1
    - Dst: sqlite3_log
      Src: /src/nss/lib/sqlite/sqlite3.c:42152,1
    - Dst: osGetLastError
      Src: /src/nss/lib/sqlite/sqlite3.c:42153,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - pPrior
    argTypes:
    - void*
    assertStmts:
    - condition: ( hHeap!=INVALID_HANDLE_VALUE )
      pos:
        line_end: 42145
        line_start: 42145
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( osHeapValidate(hHeap, SQLITE_WIN32_HEAP_FLAGS, pPrior) )
      pos:
        line_end: 42147
        line_start: 42147
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( hHeap!=0 )
      pos:
        line_end: 42144
        line_start: 42144
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 42155
      start: 42140
    functionDepth: 10
    functionLinenumber: 42140
    functionLinenumberEnd: 42155
    functionName: winMemFree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - winMemAssertMagic
    - sqlite3_log
    - osGetLastError
    - assert
    - osHeapValidate
    - osHeapFree
    - winMemGetHeap
    linkageType: ''
    returnType: void
    signature: void winMemFree(void *pPrior)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: winMemAssertMagic
      Src: /src/nss/lib/sqlite/sqlite3.c:42164,1
    - Dst: winMemGetHeap
      Src: /src/nss/lib/sqlite/sqlite3.c:42165,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:42166,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:42167,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:42169,1
    - Dst: osHeapValidate
      Src: /src/nss/lib/sqlite/sqlite3.c:42169,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:42171,1
    - Dst: osHeapAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:42173,1
    - Dst: osHeapReAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:42175,1
    - Dst: sqlite3_log
      Src: /src/nss/lib/sqlite/sqlite3.c:42178,1
    - Dst: osGetLastError
      Src: /src/nss/lib/sqlite/sqlite3.c:42179,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - pPrior
    - nBytes
    argTypes:
    - void*
    - int
    assertStmts:
    - condition: ( hHeap!=0 )
      pos:
        line_end: 42165
        line_start: 42165
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( osHeapValidate(hHeap, SQLITE_WIN32_HEAP_FLAGS, pPrior) )
      pos:
        line_end: 42168
        line_start: 42168
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( hHeap!=INVALID_HANDLE_VALUE )
      pos:
        line_end: 42166
        line_start: 42166
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nBytes>=0 )
      pos:
        line_end: 42170
        line_start: 42170
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 42183
      start: 42160
    functionDepth: 10
    functionLinenumber: 42160
    functionLinenumberEnd: 42183
    functionName: winMemRealloc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - winMemAssertMagic
    - osHeapReAlloc
    - osHeapAlloc
    - sqlite3_log
    - osGetLastError
    - assert
    - osHeapValidate
    - winMemGetHeap
    linkageType: ''
    returnType: void
    signature: void *winMemRealloc(void *pPrior, int nBytes)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: winMemAssertMagic
      Src: /src/nss/lib/sqlite/sqlite3.c:42192,1
    - Dst: winMemGetHeap
      Src: /src/nss/lib/sqlite/sqlite3.c:42193,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:42194,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:42195,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:42197,1
    - Dst: osHeapValidate
      Src: /src/nss/lib/sqlite/sqlite3.c:42197,1
    - Dst: osHeapSize
      Src: /src/nss/lib/sqlite/sqlite3.c:42200,1
    - Dst: sqlite3_log
      Src: /src/nss/lib/sqlite/sqlite3.c:42202,1
    - Dst: osGetLastError
      Src: /src/nss/lib/sqlite/sqlite3.c:42203,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts:
    - condition: ( hHeap!=0 )
      pos:
        line_end: 42193
        line_start: 42193
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( hHeap!=INVALID_HANDLE_VALUE )
      pos:
        line_end: 42194
        line_start: 42194
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( osHeapValidate(hHeap, SQLITE_WIN32_HEAP_FLAGS, p) )
      pos:
        line_end: 42196
        line_start: 42196
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 42207
      start: 42188
    functionDepth: 10
    functionLinenumber: 42188
    functionLinenumberEnd: 42207
    functionName: winMemSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - winMemAssertMagic
    - sqlite3_log
    - osGetLastError
    - osHeapSize
    - assert
    - osHeapValidate
    - winMemGetHeap
    linkageType: ''
    returnType: int
    signature: int winMemSize(void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42214
      start: 42212
    functionDepth: 0
    functionLinenumber: 42212
    functionLinenumberEnd: 42214
    functionName: winMemRoundup
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int winMemRoundup(int n)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:42223,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:42224,1
    - Dst: osHeapCreate
      Src: /src/nss/lib/sqlite/sqlite3.c:42235,1
    - Dst: sqlite3_log
      Src: /src/nss/lib/sqlite/sqlite3.c:42238,1
    - Dst: osGetLastError
      Src: /src/nss/lib/sqlite/sqlite3.c:42240,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:42245,1
    - Dst: osGetProcessHeap
      Src: /src/nss/lib/sqlite/sqlite3.c:42248,1
    - Dst: sqlite3_log
      Src: /src/nss/lib/sqlite/sqlite3.c:42250,1
    - Dst: osGetLastError
      Src: /src/nss/lib/sqlite/sqlite3.c:42251,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:42255,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:42257,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:42258,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:42260,1
    - Dst: osHeapValidate
      Src: /src/nss/lib/sqlite/sqlite3.c:42260,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 1
    argNames:
    - pAppData
    argTypes:
    - void*
    assertStmts:
    - condition: ( pWinMemData->magic1==WINMEM_MAGIC1 )
      pos:
        line_end: 42222
        line_start: 42222
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pWinMemData->magic2==WINMEM_MAGIC2 )
      pos:
        line_end: 42223
        line_start: 42223
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pWinMemData->bOwned )
      pos:
        line_end: 42244
        line_start: 42244
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !pWinMemData->bOwned )
      pos:
        line_end: 42254
        line_start: 42254
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pWinMemData->hHeap!=0 )
      pos:
        line_end: 42256
        line_start: 42256
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( osHeapValidate(pWinMemData->hHeap, SQLITE_WIN32_HEAP_FLAGS, NULL)
        )
      pos:
        line_end: 42259
        line_start: 42259
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pWinMemData->hHeap!=INVALID_HANDLE_VALUE )
      pos:
        line_end: 42257
        line_start: 42257
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 42263
      start: 42219
    functionDepth: 10
    functionLinenumber: 42219
    functionLinenumberEnd: 42263
    functionName: winMemInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - osGetProcessHeap
    - osHeapCreate
    - sqlite3_log
    - osGetLastError
    - assert
    - osHeapValidate
    linkageType: ''
    returnType: int
    signature: int winMemInit(void *pAppData)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:42272,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:42273,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:42276,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:42278,1
    - Dst: osHeapValidate
      Src: /src/nss/lib/sqlite/sqlite3.c:42278,1
    - Dst: osHeapDestroy
      Src: /src/nss/lib/sqlite/sqlite3.c:42281,1
    - Dst: sqlite3_log
      Src: /src/nss/lib/sqlite/sqlite3.c:42282,1
    - Dst: osGetLastError
      Src: /src/nss/lib/sqlite/sqlite3.c:42283,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - pAppData
    argTypes:
    - void*
    assertStmts:
    - condition: ( pWinMemData->magic1==WINMEM_MAGIC1 )
      pos:
        line_end: 42271
        line_start: 42271
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pWinMemData->hHeap!=INVALID_HANDLE_VALUE )
      pos:
        line_end: 42275
        line_start: 42275
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pWinMemData->magic2==WINMEM_MAGIC2 )
      pos:
        line_end: 42272
        line_start: 42272
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( osHeapValidate(pWinMemData->hHeap, SQLITE_WIN32_HEAP_FLAGS, NULL)
        )
      pos:
        line_end: 42277
        line_start: 42277
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 42289
      start: 42268
    functionDepth: 10
    functionLinenumber: 42268
    functionLinenumberEnd: 42289
    functionName: winMemShutdown
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - osHeapDestroy
    - osGetLastError
    - sqlite3_log
    - assert
    - osHeapValidate
    linkageType: ''
    returnType: void
    signature: void winMemShutdown(void *pAppData)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42311
      start: 42299
    functionDepth: 0
    functionLinenumber: 42299
    functionLinenumberEnd: 42311
    functionName: sqlite3_mem_methods *sqlite3MemGetWin32(void)
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3_mem_methods *sqlite3MemGetWin32(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_config
      Src: /src/nss/lib/sqlite/sqlite3.c:42314,1
    - Dst: sqlite3MemGetWin32
      Src: /src/nss/lib/sqlite/sqlite3.c:42314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42315
      start: 42313
    functionDepth: 1
    functionLinenumber: 42313
    functionLinenumberEnd: 42315
    functionName: sqlite3MemSetDefault
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3MemGetWin32
    - sqlite3_config
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3MemSetDefault(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: osMultiByteToWideChar
      Src: /src/nss/lib/sqlite/sqlite3.c:42327,1
    - Dst: sqlite3MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:42331,1
    - Dst: osMultiByteToWideChar
      Src: /src/nss/lib/sqlite/sqlite3.c:42335,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:42338,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - zText
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42342
      start: 42323
    functionDepth: 6
    functionLinenumber: 42323
    functionLinenumberEnd: 42342
    functionName: winUtf8ToUnicode
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3MallocZero
    - osMultiByteToWideChar
    - sqlite3_free
    linkageType: ''
    returnType: LPWSTR
    signature: LPWSTR winUtf8ToUnicode(const char *zText)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: osWideCharToMultiByte
      Src: /src/nss/lib/sqlite/sqlite3.c:42353,1
    - Dst: sqlite3MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:42357,1
    - Dst: osWideCharToMultiByte
      Src: /src/nss/lib/sqlite/sqlite3.c:42361,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:42364,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - zWideText
    argTypes:
    - LPCWSTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42368
      start: 42349
    functionDepth: 6
    functionLinenumber: 42349
    functionLinenumberEnd: 42368
    functionName: winUnicodeToUtf8
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3MallocZero
    - osWideCharToMultiByte
    - sqlite3_free
    linkageType: ''
    returnType: char
    signature: char *winUnicodeToUtf8(LPCWSTR zWideText)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: osMultiByteToWideChar
      Src: /src/nss/lib/sqlite/sqlite3.c:42381,1
    - Dst: sqlite3MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:42386,1
    - Dst: osMultiByteToWideChar
      Src: /src/nss/lib/sqlite/sqlite3.c:42390,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:42393,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - zText
    - useAnsi
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42397
      start: 42376
    functionDepth: 6
    functionLinenumber: 42376
    functionLinenumberEnd: 42397
    functionName: winMbcsToUnicode
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3MallocZero
    - osMultiByteToWideChar
    - sqlite3_free
    linkageType: ''
    returnType: LPWSTR
    signature: LPWSTR winMbcsToUnicode(const char *zText, int useAnsi)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: osWideCharToMultiByte
      Src: /src/nss/lib/sqlite/sqlite3.c:42410,1
    - Dst: sqlite3MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:42414,1
    - Dst: osWideCharToMultiByte
      Src: /src/nss/lib/sqlite/sqlite3.c:42418,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:42421,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - zWideText
    - useAnsi
    argTypes:
    - LPCWSTR
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42425
      start: 42405
    functionDepth: 6
    functionLinenumber: 42405
    functionLinenumberEnd: 42425
    functionName: winUnicodeToMbcs
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3MallocZero
    - osWideCharToMultiByte
    - sqlite3_free
    linkageType: ''
    returnType: char
    signature: char *winUnicodeToMbcs(LPCWSTR zWideText, int useAnsi)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: winMbcsToUnicode
      Src: /src/nss/lib/sqlite/sqlite3.c:42436,1
    - Dst: winUnicodeToUtf8
      Src: /src/nss/lib/sqlite/sqlite3.c:42440,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:42441,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - zText
    - useAnsi
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42443
      start: 42432
    functionDepth: 7
    functionLinenumber: 42432
    functionLinenumberEnd: 42443
    functionName: winMbcsToUtf8
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - winUnicodeToUtf8
    - winMbcsToUnicode
    - sqlite3_free
    linkageType: ''
    returnType: char
    signature: char *winMbcsToUtf8(const char *zText, int useAnsi)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: winUtf8ToUnicode
      Src: /src/nss/lib/sqlite/sqlite3.c:42454,1
    - Dst: winUnicodeToMbcs
      Src: /src/nss/lib/sqlite/sqlite3.c:42458,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:42459,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - zText
    - useAnsi
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42461
      start: 42450
    functionDepth: 7
    functionLinenumber: 42450
    functionLinenumberEnd: 42461
    functionName: winUtf8ToMbcs
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - winUnicodeToMbcs
    - winUtf8ToUnicode
    - sqlite3_free
    linkageType: ''
    returnType: char
    signature: char *winUtf8ToMbcs(const char *zText, int useAnsi)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_initialize
      Src: /src/nss/lib/sqlite/sqlite3.c:42474,1
    - Dst: winUtf8ToUnicode
      Src: /src/nss/lib/sqlite/sqlite3.c:42476,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - zText
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42477
      start: 42466
    functionDepth: 7
    functionLinenumber: 42466
    functionLinenumberEnd: 42477
    functionName: sqlite3_win32_utf8_to_unicode
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - winUtf8ToUnicode
    - sqlite3_initialize
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_win32_utf8_to_unicode(const char *zText)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_initialize
      Src: /src/nss/lib/sqlite/sqlite3.c:42490,1
    - Dst: winUnicodeToUtf8
      Src: /src/nss/lib/sqlite/sqlite3.c:42492,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - zWideText
    argTypes:
    - LPCWSTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42493
      start: 42482
    functionDepth: 7
    functionLinenumber: 42482
    functionLinenumberEnd: 42493
    functionName: sqlite3_win32_unicode_to_utf8
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - winUnicodeToUtf8
    - sqlite3_initialize
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *sqlite3_win32_unicode_to_utf8(LPCWSTR zWideText)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_initialize
      Src: /src/nss/lib/sqlite/sqlite3.c:42506,1
    - Dst: winMbcsToUtf8
      Src: /src/nss/lib/sqlite/sqlite3.c:42508,1
    - Dst: osAreFileApisANSI
      Src: /src/nss/lib/sqlite/sqlite3.c:42508,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - zText
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42509
      start: 42498
    functionDepth: 8
    functionLinenumber: 42498
    functionLinenumberEnd: 42509
    functionName: sqlite3_win32_mbcs_to_utf8
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - osAreFileApisANSI
    - sqlite3_initialize
    - winMbcsToUtf8
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *sqlite3_win32_mbcs_to_utf8(const char *zText)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_initialize
      Src: /src/nss/lib/sqlite/sqlite3.c:42522,1
    - Dst: winMbcsToUtf8
      Src: /src/nss/lib/sqlite/sqlite3.c:42524,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - zText
    - useAnsi
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42525
      start: 42514
    functionDepth: 8
    functionLinenumber: 42514
    functionLinenumberEnd: 42525
    functionName: sqlite3_win32_mbcs_to_utf8_v2
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_initialize
    - winMbcsToUtf8
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *sqlite3_win32_mbcs_to_utf8_v2(const char *zText, int useAnsi)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_initialize
      Src: /src/nss/lib/sqlite/sqlite3.c:42538,1
    - Dst: winUtf8ToMbcs
      Src: /src/nss/lib/sqlite/sqlite3.c:42540,1
    - Dst: osAreFileApisANSI
      Src: /src/nss/lib/sqlite/sqlite3.c:42540,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - zText
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42541
      start: 42530
    functionDepth: 8
    functionLinenumber: 42530
    functionLinenumberEnd: 42541
    functionName: sqlite3_win32_utf8_to_mbcs
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_initialize
    - osAreFileApisANSI
    - winUtf8ToMbcs
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *sqlite3_win32_utf8_to_mbcs(const char *zText)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_initialize
      Src: /src/nss/lib/sqlite/sqlite3.c:42554,1
    - Dst: winUtf8ToMbcs
      Src: /src/nss/lib/sqlite/sqlite3.c:42556,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - zText
    - useAnsi
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42557
      start: 42546
    functionDepth: 8
    functionLinenumber: 42546
    functionLinenumberEnd: 42557
    functionName: sqlite3_win32_utf8_to_mbcs_v2
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_initialize
    - winUtf8ToMbcs
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *sqlite3_win32_utf8_to_mbcs_v2(const char *zText, int useAnsi)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_initialize
      Src: /src/nss/lib/sqlite/sqlite3.c:42569,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:42577,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:42580,1
    - Dst: sqlite3MemdebugHasType
      Src: /src/nss/lib/sqlite/sqlite3.c:42580,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:42584,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:42589,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 2
    argNames:
    - type
    - zValue
    argTypes:
    - unsigned long
    - char*
    assertStmts:
    - condition: "( !ppDirectory || type==SQLITE_WIN32_DATA_DIRECTORY_TYPE\n          ||
        type==SQLITE_WIN32_TEMP_DIRECTORY_TYPE\n  )"
      pos:
        line_end: 42578
        line_start: 42576
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !ppDirectory || sqlite3MemdebugHasType(*ppDirectory, MEMTYPE_HEAP)
        )
      pos:
        line_end: 42579
        line_start: 42579
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 42594
      start: 42563
    functionDepth: 10
    functionLinenumber: 42563
    functionLinenumberEnd: 42594
    functionName: sqlite3_win32_set_directory8
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_initialize
    - sqlite3MemdebugHasType
    - assert
    - sqlite3_mprintf
    - sqlite3_free
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_win32_set_directory8(\n  unsigned long type, /*
      Identifier for directory being set or reset */\n  const char *zValue  /* New
      value for directory being set or reset */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_win32_unicode_to_utf8
      Src: /src/nss/lib/sqlite/sqlite3.c:42607,1
    - Dst: sqlite3_win32_set_directory8
      Src: /src/nss/lib/sqlite/sqlite3.c:42610,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:42611,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - type
    - zValue
    argTypes:
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42613
      start: 42600
    functionDepth: 11
    functionLinenumber: 42600
    functionLinenumberEnd: 42613
    functionName: sqlite3_win32_set_directory16
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    - sqlite3_win32_unicode_to_utf8
    - sqlite3_win32_set_directory8
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_win32_set_directory16(\n  unsigned long type, /*
      Identifier for directory being set or reset */\n  const void *zValue  /* New
      value for directory being set or reset */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_win32_set_directory16
      Src: /src/nss/lib/sqlite/sqlite3.c:42626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - zValue
    argTypes:
    - unsigned long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42627
      start: 42622
    functionDepth: 12
    functionLinenumber: 42622
    functionLinenumberEnd: 42627
    functionName: sqlite3_win32_set_directory
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_win32_set_directory16
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_win32_set_directory(\n  unsigned long type, /*
      Identifier for directory being set or reset */\n  void *zValue        /* New
      value for directory being set or reset */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: osIsNT
      Src: /src/nss/lib/sqlite/sqlite3.c:42642,1
    - Dst: osFormatMessageW
      Src: /src/nss/lib/sqlite/sqlite3.c:42645,1
    - Dst: osFormatMessageW
      Src: /src/nss/lib/sqlite/sqlite3.c:42655,1
    - Dst: sqlite3BeginBenignMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:42667,1
    - Dst: winUnicodeToUtf8
      Src: /src/nss/lib/sqlite/sqlite3.c:42668,1
    - Dst: sqlite3EndBenignMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:42669,1
    - Dst: osLocalFree
      Src: /src/nss/lib/sqlite/sqlite3.c:42672,1
    - Dst: osFormatMessageA
      Src: /src/nss/lib/sqlite/sqlite3.c:42679,1
    - Dst: sqlite3BeginBenignMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:42690,1
    - Dst: winMbcsToUtf8
      Src: /src/nss/lib/sqlite/sqlite3.c:42691,1
    - Dst: osAreFileApisANSI
      Src: /src/nss/lib/sqlite/sqlite3.c:42691,1
    - Dst: sqlite3EndBenignMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:42692,1
    - Dst: osLocalFree
      Src: /src/nss/lib/sqlite/sqlite3.c:42694,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:42699,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:42702,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:42704,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 3
    argNames:
    - lastErrno
    - nBuf
    - zBuf
    argTypes:
    - DWORD
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42707
      start: 42634
    functionDepth: 10
    functionLinenumber: 42634
    functionLinenumberEnd: 42707
    functionName: winGetLastErrorMsg
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - osIsNT
    - osFormatMessageW
    - sqlite3EndBenignMalloc
    - sqlite3BeginBenignMalloc
    - osFormatMessageA
    - osLocalFree
    - winUnicodeToUtf8
    - osAreFileApisANSI
    - sqlite3_snprintf
    - sqlite3_free
    - winMbcsToUtf8
    linkageType: ''
    returnType: int
    signature: int winGetLastErrorMsg(DWORD lastErrno, int nBuf, char *zBuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42725
      start: 42724
    functionDepth: 0
    functionLinenumber: 42724
    functionLinenumberEnd: 42725
    functionName: winLogError
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: winLogError(a,b,c,d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: winGetLastErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:42736,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:42737,1
    - Dst: sqlite3_log
      Src: /src/nss/lib/sqlite/sqlite3.c:42741,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 5
    argNames:
    - errcode
    - lastErrno
    - zFunc
    - zPath
    - iLine
    argTypes:
    - int
    - DWORD
    - char*
    - char*
    - int
    assertStmts:
    - condition: ( errcode!=SQLITE_OK )
      pos:
        line_end: 42736
        line_start: 42736
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 42747
      start: 42725
    functionDepth: 11
    functionLinenumber: 42725
    functionLinenumberEnd: 42747
    functionName: winLogErrorAtLine
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - winGetLastErrorMsg
    - sqlite3_log
    - assert
    linkageType: ''
    returnType: int
    signature: "int winLogErrorAtLine(\n  int errcode,                    /* SQLite
      error code */\n  DWORD lastErrno,                /* Win32 last error */\n  const
      char *zFunc,              /* Name of OS function that failed */\n  const char
      *zPath,              /* File path associated with error */\n  int iLine                       /*
      Source line number where error occurred */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42788
      start: 42781
    functionDepth: 0
    functionLinenumber: 42781
    functionLinenumberEnd: 42788
    functionName: winIoerrCanRetry1
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: winIoerrCanRetry1(a)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: osGetLastError
      Src: /src/nss/lib/sqlite/sqlite3.c:42796,1
    - Dst: winIoerrCanRetry1
      Src: /src/nss/lib/sqlite/sqlite3.c:42803,1
    - Dst: sqlite3_win32_sleep
      Src: /src/nss/lib/sqlite/sqlite3.c:42804,1
    - Dst: sqlite3_win32_sleep
      Src: /src/nss/lib/sqlite/sqlite3.c:42810,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - pnRetry
    - pError
    argTypes:
    - int*
    - DWORD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42819
      start: 42795
    functionDepth: 1
    functionLinenumber: 42795
    functionLinenumberEnd: 42819
    functionName: winRetryIoerr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - winIoerrCanRetry1
    - osGetLastError
    - sqlite3_win32_sleep
    linkageType: ''
    returnType: int
    signature: int winRetryIoerr(int *pnRetry, DWORD *pError)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_win32_sleep
      Src: /src/nss/lib/sqlite/sqlite3.c:42810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42813
      start: 42809
    functionDepth: 1
    functionLinenumber: 42809
    functionLinenumberEnd: 42813
    functionName: if
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 5
    functionsReached:
    - sqlite3_win32_sleep
    linkageType: ''
    returnType: else
    signature: else if( winIoerrCanRetry2(e) )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_log
      Src: /src/nss/lib/sqlite/sqlite3.c:42826,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - nRetry
    - lineno
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42831
      start: 42824
    functionDepth: 10
    functionLinenumber: 42824
    functionLinenumberEnd: 42831
    functionName: winLogIoerr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_log
    linkageType: ''
    returnType: void
    signature: void winLogIoerr(int nRetry, int lineno)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: osFileTimeToLocalFileTime
      Src: /src/nss/lib/sqlite/sqlite3.c:42854,1
    - Dst: osFileTimeToSystemTime
      Src: /src/nss/lib/sqlite/sqlite3.c:42855,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - t
    argTypes:
    - time_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42864
      start: 42844
    functionDepth: 0
    functionLinenumber: 42844
    functionLinenumberEnd: 42864
    functionName: localtime
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - osFileTimeToLocalFileTime
    - osFileTimeToSystemTime
    linkageType: ''
    returnType: struct tm
    signature: struct tm *__cdecl localtime(const time_t *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42872
      start: 42871
    functionDepth: 0
    functionLinenumber: 42871
    functionLinenumberEnd: 42872
    functionName: HANDLE_TO_WINFILE
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HANDLE_TO_WINFILE(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: osWaitForSingleObject
      Src: /src/nss/lib/sqlite/sqlite3.c:42879,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - h
    argTypes:
    - HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42881
      start: 42876
    functionDepth: 0
    functionLinenumber: 42876
    functionLinenumberEnd: 42881
    functionName: winceMutexAcquire
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - osWaitForSingleObject
    linkageType: ''
    returnType: void
    signature: void winceMutexAcquire(HANDLE h)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - h
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42886
      start: 42885
    functionDepth: 0
    functionLinenumber: 42885
    functionLinenumberEnd: 42886
    functionName: winceMutexRelease
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: winceMutexRelease(h)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: winUtf8ToUnicode
      Src: /src/nss/lib/sqlite/sqlite3.c:42898,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:42905,1
    - Dst: osCharLowerW
      Src: /src/nss/lib/sqlite/sqlite3.c:42909,1
    - Dst: osCreateMutexW
      Src: /src/nss/lib/sqlite/sqlite3.c:42915,1
    - Dst: osGetLastError
      Src: /src/nss/lib/sqlite/sqlite3.c:42917,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:42918,1
    - Dst: winLogError
      Src: /src/nss/lib/sqlite/sqlite3.c:42919,1
    - Dst: winceMutexAcquire
      Src: /src/nss/lib/sqlite/sqlite3.c:42924,1
    - Dst: osCharUpperW
      Src: /src/nss/lib/sqlite/sqlite3.c:42930,1
    - Dst: osCreateFileMappingW
      Src: /src/nss/lib/sqlite/sqlite3.c:42931,1
    - Dst: osGetLastError
      Src: /src/nss/lib/sqlite/sqlite3.c:42937,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:42942,1
    - Dst: osMapViewOfFile
      Src: /src/nss/lib/sqlite/sqlite3.c:42946,1
    - Dst: osGetLastError
      Src: /src/nss/lib/sqlite/sqlite3.c:42950,1
    - Dst: winLogError
      Src: /src/nss/lib/sqlite/sqlite3.c:42951,1
    - Dst: osCloseHandle
      Src: /src/nss/lib/sqlite/sqlite3.c:42954,1
    - Dst: winLogError
      Src: /src/nss/lib/sqlite/sqlite3.c:42963,1
    - Dst: winceMutexRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:42967,1
    - Dst: osCloseHandle
      Src: /src/nss/lib/sqlite/sqlite3.c:42968,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:42975,1
    - Dst: winceMutexRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:42978,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 51
    argCount: 2
    argNames:
    - zFilename
    - pFile
    argTypes:
    - char*
    - winFile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42980
      start: 42891
    functionDepth: 7
    functionLinenumber: 42891
    functionLinenumberEnd: 42980
    functionName: winceCreateLock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - osCreateMutexW
    - winUtf8ToUnicode
    - osCharLowerW
    - winLogError
    - osGetLastError
    - osCharUpperW
    - memset
    - osMapViewOfFile
    - osCreateFileMappingW
    - osCloseHandle
    - winceMutexAcquire
    - winceMutexRelease
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int winceCreateLock(const char *zFilename, winFile *pFile)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: winceMutexAcquire
      Src: /src/nss/lib/sqlite/sqlite3.c:42988,1
    - Dst: osUnmapViewOfFile
      Src: /src/nss/lib/sqlite/sqlite3.c:43006,1
    - Dst: osCloseHandle
      Src: /src/nss/lib/sqlite/sqlite3.c:43007,1
    - Dst: winceMutexRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:43010,1
    - Dst: osCloseHandle
      Src: /src/nss/lib/sqlite/sqlite3.c:43011,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - pFile
    argTypes:
    - winFile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43014
      start: 42985
    functionDepth: 1
    functionLinenumber: 42985
    functionLinenumberEnd: 43014
    functionName: winceDestroyLock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - osUnmapViewOfFile
    - osCloseHandle
    - winceMutexRelease
    - winceMutexAcquire
    linkageType: ''
    returnType: void
    signature: void winceDestroyLock(winFile *pFile)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: HANDLE_TO_WINFILE
      Src: /src/nss/lib/sqlite/sqlite3.c:43026,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:43029,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:43030,1
    - Dst: winceMutexAcquire
      Src: /src/nss/lib/sqlite/sqlite3.c:43033,1
    - Dst: winceMutexRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:43078,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 5
    argNames:
    - phFile
    - dwFileOffsetLow
    - dwFileOffsetHigh
    - nNumberOfBytesToLockLow
    - nNumberOfBytesToLockHigh
    argTypes:
    - LPHANDLE
    - DWORD
    - DWORD
    - DWORD
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43080
      start: 43019
    functionDepth: 1
    functionLinenumber: 43019
    functionLinenumberEnd: 43080
    functionName: winceLockFile
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - winceMutexRelease
    - UNUSED_PARAMETER
    - HANDLE_TO_WINFILE
    - winceMutexAcquire
    linkageType: ''
    returnType: BOOL
    signature: "BOOL winceLockFile(\n  LPHANDLE phFile,\n  DWORD dwFileOffsetLow,\n
      \ DWORD dwFileOffsetHigh,\n  DWORD nNumberOfBytesToLockLow,\n  DWORD nNumberOfBytesToLockHigh\n)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: HANDLE_TO_WINFILE
      Src: /src/nss/lib/sqlite/sqlite3.c:43092,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:43095,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:43096,1
    - Dst: winceMutexAcquire
      Src: /src/nss/lib/sqlite/sqlite3.c:43099,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:43105,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:43113,1
    - Dst: winceMutexRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:43143,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 5
    argNames:
    - phFile
    - dwFileOffsetLow
    - dwFileOffsetHigh
    - nNumberOfBytesToUnlockLow
    - nNumberOfBytesToUnlockHigh
    argTypes:
    - LPHANDLE
    - DWORD
    - DWORD
    - DWORD
    - DWORD
    assertStmts:
    - condition: (nNumberOfBytesToUnlockLow == (DWORD)SHARED_SIZE)
      pos:
        line_end: 43104
        line_start: 43104
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "(nNumberOfBytesToUnlockLow == (DWORD)SHARED_SIZE\n             ||
        nNumberOfBytesToUnlockLow == 1)"
      pos:
        line_end: 43113
        line_start: 43112
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 43145
      start: 43085
    functionDepth: 1
    functionLinenumber: 43085
    functionLinenumberEnd: 43145
    functionName: winceUnlockFile
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    - HANDLE_TO_WINFILE
    - assert
    - winceMutexAcquire
    - winceMutexRelease
    linkageType: ''
    returnType: BOOL
    signature: "BOOL winceUnlockFile(\n  LPHANDLE phFile,\n  DWORD dwFileOffsetLow,\n
      \ DWORD dwFileOffsetHigh,\n  DWORD nNumberOfBytesToUnlockLow,\n  DWORD nNumberOfBytesToUnlockHigh\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: winceLockFile
      Src: /src/nss/lib/sqlite/sqlite3.c:43167,1
    - Dst: osIsNT
      Src: /src/nss/lib/sqlite/sqlite3.c:43170,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:43172,1
    - Dst: osLockFileEx
      Src: /src/nss/lib/sqlite/sqlite3.c:43175,1
    - Dst: osLockFile
      Src: /src/nss/lib/sqlite/sqlite3.c:43177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 6
    argNames:
    - phFile
    - flags
    - offsetLow
    - offsetHigh
    - numBytesLow
    - numBytesHigh
    argTypes:
    - LPHANDLE
    - DWORD
    - DWORD
    - DWORD
    - DWORD
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43181
      start: 43154
    functionDepth: 2
    functionLinenumber: 43154
    functionLinenumberEnd: 43181
    functionName: winLockFile
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - osIsNT
    - memset
    - osLockFile
    - winceLockFile
    - osLockFileEx
    linkageType: ''
    returnType: BOOL
    signature: "BOOL winLockFile(\n  LPHANDLE phFile,\n  DWORD flags,\n  DWORD offsetLow,\n
      \ DWORD offsetHigh,\n  DWORD numBytesLow,\n  DWORD numBytesHigh\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: winceUnlockFile
      Src: /src/nss/lib/sqlite/sqlite3.c:43198,1
    - Dst: osIsNT
      Src: /src/nss/lib/sqlite/sqlite3.c:43201,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:43203,1
    - Dst: osUnlockFileEx
      Src: /src/nss/lib/sqlite/sqlite3.c:43206,1
    - Dst: osUnlockFile
      Src: /src/nss/lib/sqlite/sqlite3.c:43208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - phFile
    - offsetLow
    - offsetHigh
    - numBytesLow
    - numBytesHigh
    argTypes:
    - LPHANDLE
    - DWORD
    - DWORD
    - DWORD
    - DWORD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43212
      start: 43186
    functionDepth: 2
    functionLinenumber: 43186
    functionLinenumberEnd: 43212
    functionName: winUnlockFile
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - osIsNT
    - osUnlockFileEx
    - memset
    - osUnlockFile
    - winceUnlockFile
    linkageType: ''
    returnType: BOOL
    signature: "BOOL winUnlockFile(\n  LPHANDLE phFile,\n  DWORD offsetLow,\n  DWORD
      offsetHigh,\n  DWORD numBytesLow,\n  DWORD numBytesHigh\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:43238,1
    - Dst: osSetFilePointer
      Src: /src/nss/lib/sqlite/sqlite3.c:43250,1
    - Dst: osGetLastError
      Src: /src/nss/lib/sqlite/sqlite3.c:43253,1
    - Dst: winLogError
      Src: /src/nss/lib/sqlite/sqlite3.c:43255,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:43257,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:43261,1
    - Dst: osSetFilePointerEx
      Src: /src/nss/lib/sqlite/sqlite3.c:43272,1
    - Dst: osGetLastError
      Src: /src/nss/lib/sqlite/sqlite3.c:43275,1
    - Dst: winLogError
      Src: /src/nss/lib/sqlite/sqlite3.c:43276,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:43278,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:43282,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 2
    argNames:
    - pFile
    - iOffset
    argTypes:
    - winFile*
    - sqlite3_int64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43285
      start: 43231
    functionDepth: 1
    functionLinenumber: 43231
    functionLinenumberEnd: 43285
    functionName: winSeekFile
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - winLogError
    - osGetLastError
    - OSTRACE
    - osSetFilePointerEx
    - osSetFilePointer
    linkageType: ''
    returnType: int
    signature: int winSeekFile(winFile *pFile, sqlite3_int64 iOffset)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:43308,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:43310,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:43312,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:43313,1
    - Dst: osGetCurrentProcessId
      Src: /src/nss/lib/sqlite/sqlite3.c:43314,1
    - Dst: winUnmapfile
      Src: /src/nss/lib/sqlite/sqlite3.c:43317,1
    - Dst: osCloseHandle
      Src: /src/nss/lib/sqlite/sqlite3.c:43321,1
    - Dst: sqlite3_win32_sleep
      Src: /src/nss/lib/sqlite/sqlite3.c:43323,1
    - Dst: winceDestroyLock
      Src: /src/nss/lib/sqlite/sqlite3.c:43329,1
    - Dst: osDeleteFileW
      Src: /src/nss/lib/sqlite/sqlite3.c:43335,1
    - Dst: osGetFileAttributesW
      Src: /src/nss/lib/sqlite/sqlite3.c:43336,1
    - Dst: sqlite3_win32_sleep
      Src: /src/nss/lib/sqlite/sqlite3.c:43339,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:43341,1
    - Dst: OpenCounter
      Src: /src/nss/lib/sqlite/sqlite3.c:43347,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:43348,1
    - Dst: osGetCurrentProcessId
      Src: /src/nss/lib/sqlite/sqlite3.c:43349,1
    - Dst: winLogError
      Src: /src/nss/lib/sqlite/sqlite3.c:43351,1
    - Dst: osGetLastError
      Src: /src/nss/lib/sqlite/sqlite3.c:43351,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 1
    argNames:
    - id
    argTypes:
    - sqlite3_file*
    assertStmts:
    - condition: ( id!=0 )
      pos:
        line_end: 43307
        line_start: 43307
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pFile->pShm==0 )
      pos:
        line_end: 43309
        line_start: 43309
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pFile->h!=NULL && pFile->h!=INVALID_HANDLE_VALUE )
      pos:
        line_end: 43311
        line_start: 43311
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 43353
      start: 43304
    functionDepth: 3
    functionLinenumber: 43304
    functionLinenumberEnd: 43353
    functionName: winClose
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - osGetFileAttributesW
    - winLogError
    - osDeleteFileW
    - osGetLastError
    - osGetCurrentProcessId
    - OpenCounter
    - OSTRACE
    - assert
    - winceDestroyLock
    - osCloseHandle
    - sqlite3_win32_sleep
    - sqlite3_free
    - winUnmapfile
    linkageType: ''
    returnType: int
    signature: int winClose(sqlite3_file *id)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:43577,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:43579,1
    - Dst: osGetCurrentProcessId
      Src: /src/nss/lib/sqlite/sqlite3.c:43580,1
    - Dst: winUnmapfile
      Src: /src/nss/lib/sqlite/sqlite3.c:43597,1
    - Dst: winSeekFile
      Src: /src/nss/lib/sqlite/sqlite3.c:43601,1
    - Dst: winLogError
      Src: /src/nss/lib/sqlite/sqlite3.c:43602,1
    - Dst: osSetEndOfFile
      Src: /src/nss/lib/sqlite/sqlite3.c:43604,1
    - Dst: osGetLastError
      Src: /src/nss/lib/sqlite/sqlite3.c:43605,1
    - Dst: winLogError
      Src: /src/nss/lib/sqlite/sqlite3.c:43607,1
    - Dst: winMapfile
      Src: /src/nss/lib/sqlite/sqlite3.c:43614,1
    - Dst: winMapfile
      Src: /src/nss/lib/sqlite/sqlite3.c:43616,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:43621,1
    - Dst: osGetCurrentProcessId
      Src: /src/nss/lib/sqlite/sqlite3.c:43622,1
    - Dst: sqlite3ErrName
      Src: /src/nss/lib/sqlite/sqlite3.c:43622,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - id
    - nByte
    argTypes:
    - sqlite3_file*
    - sqlite3_int64
    assertStmts:
    - condition: ( pFile )
      pos:
        line_end: 43576
        line_start: 43576
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 43624
      start: 43549
    functionDepth: 2
    functionLinenumber: 43549
    functionLinenumberEnd: 43624
    functionName: winTruncate
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - winLogError
    - osGetLastError
    - osGetCurrentProcessId
    - OSTRACE
    - assert
    - osSetEndOfFile
    - winSeekFile
    - winMapfile
    - winUnmapfile
    - sqlite3ErrName
    linkageType: ''
    returnType: int
    signature: int winTruncate(sqlite3_file *id, sqlite3_int64 nByte)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:43653,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:43656,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:43658,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:43667,1
    - Dst: osGetCurrentProcessId
      Src: /src/nss/lib/sqlite/sqlite3.c:43668,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:43672,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:43684,1
    - Dst: osGetCurrentProcessId
      Src: /src/nss/lib/sqlite/sqlite3.c:43685,1
    - Dst: osFlushViewOfFile
      Src: /src/nss/lib/sqlite/sqlite3.c:43690,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:43691,1
    - Dst: osGetCurrentProcessId
      Src: /src/nss/lib/sqlite/sqlite3.c:43692,1
    - Dst: osGetLastError
      Src: /src/nss/lib/sqlite/sqlite3.c:43695,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:43696,1
    - Dst: osGetCurrentProcessId
      Src: /src/nss/lib/sqlite/sqlite3.c:43697,1
    - Dst: winLogError
      Src: /src/nss/lib/sqlite/sqlite3.c:43699,1
    - Dst: osFlushFileBuffers
      Src: /src/nss/lib/sqlite/sqlite3.c:43704,1
    - Dst: SimulateIOError
      Src: /src/nss/lib/sqlite/sqlite3.c:43705,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:43707,1
    - Dst: osGetCurrentProcessId
      Src: /src/nss/lib/sqlite/sqlite3.c:43708,1
    - Dst: osGetLastError
      Src: /src/nss/lib/sqlite/sqlite3.c:43711,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:43712,1
    - Dst: osGetCurrentProcessId
      Src: /src/nss/lib/sqlite/sqlite3.c:43713,1
    - Dst: winLogError
      Src: /src/nss/lib/sqlite/sqlite3.c:43714,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 2
    argNames:
    - id
    - flags
    argTypes:
    - sqlite3_file*
    - int
    assertStmts:
    - condition: "((flags&0x0F)==SQLITE_SYNC_NORMAL\n      || (flags&0x0F)==SQLITE_SYNC_FULL\n
        \ )"
      pos:
        line_end: 43659
        line_start: 43657
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pFile )
      pos:
        line_end: 43655
        line_start: 43655
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 43718
      start: 43638
    functionDepth: 1
    functionLinenumber: 43638
    functionLinenumberEnd: 43718
    functionName: winSync
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - winLogError
    - osGetLastError
    - osGetCurrentProcessId
    - UNUSED_PARAMETER
    - OSTRACE
    - assert
    - osFlushFileBuffers
    - SimulateIOError
    - osFlushViewOfFile
    linkageType: ''
    returnType: int
    signature: int winSync(sqlite3_file *id, int flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:43727,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:43728,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:43730,1
    - Dst: osGetFileInformationByHandleEx
      Src: /src/nss/lib/sqlite/sqlite3.c:43735,1
    - Dst: osGetLastError
      Src: /src/nss/lib/sqlite/sqlite3.c:43739,1
    - Dst: winLogError
      Src: /src/nss/lib/sqlite/sqlite3.c:43740,1
    - Dst: osGetFileSize
      Src: /src/nss/lib/sqlite/sqlite3.c:43750,1
    - Dst: osGetLastError
      Src: /src/nss/lib/sqlite/sqlite3.c:43753,1
    - Dst: winLogError
      Src: /src/nss/lib/sqlite/sqlite3.c:43755,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:43760,1
    - Dst: sqlite3ErrName
      Src: /src/nss/lib/sqlite/sqlite3.c:43761,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - id
    - pSize
    argTypes:
    - sqlite3_file*
    - sqlite3_int64*
    assertStmts:
    - condition: ( id!=0 )
      pos:
        line_end: 43726
        line_start: 43726
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pSize!=0 )
      pos:
        line_end: 43727
        line_start: 43727
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 43763
      start: 43723
    functionDepth: 1
    functionLinenumber: 43723
    functionLinenumberEnd: 43763
    functionName: winFileSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - winLogError
    - osGetFileSize
    - osGetLastError
    - OSTRACE
    - assert
    - osGetFileInformationByHandleEx
    - sqlite3ErrName
    linkageType: ''
    returnType: int
    signature: int winFileSize(sqlite3_file *id, sqlite3_int64 *pSize)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:43803,1
    - Dst: osIsNT
      Src: /src/nss/lib/sqlite/sqlite3.c:43804,1
    - Dst: winceLockFile
      Src: /src/nss/lib/sqlite/sqlite3.c:43810,1
    - Dst: winLockFile
      Src: /src/nss/lib/sqlite/sqlite3.c:43812,1
    - Dst: sqlite3_randomness
      Src: /src/nss/lib/sqlite/sqlite3.c:43819,1
    - Dst: winLockFile
      Src: /src/nss/lib/sqlite/sqlite3.c:43821,1
    - Dst: osGetLastError
      Src: /src/nss/lib/sqlite/sqlite3.c:43826,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:43829,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - pFile
    argTypes:
    - winFile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43831
      start: 43801
    functionDepth: 3
    functionLinenumber: 43801
    functionLinenumberEnd: 43831
    functionName: winGetReadLock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - osIsNT
    - osGetLastError
    - sqlite3_randomness
    - OSTRACE
    - winceLockFile
    - winLockFile
    linkageType: ''
    returnType: int
    signature: int winGetReadLock(winFile *pFile)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:43839,1
    - Dst: osIsNT
      Src: /src/nss/lib/sqlite/sqlite3.c:43840,1
    - Dst: winUnlockFile
      Src: /src/nss/lib/sqlite/sqlite3.c:43841,1
    - Dst: winUnlockFile
      Src: /src/nss/lib/sqlite/sqlite3.c:43845,1
    - Dst: osGetLastError
      Src: /src/nss/lib/sqlite/sqlite3.c:43848,1
    - Dst: winLogError
      Src: /src/nss/lib/sqlite/sqlite3.c:43850,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:43853,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - pFile
    argTypes:
    - winFile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43855
      start: 43836
    functionDepth: 3
    functionLinenumber: 43836
    functionLinenumberEnd: 43855
    functionName: winUnlockReadLock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - osIsNT
    - winLogError
    - osGetLastError
    - OSTRACE
    - winUnlockFile
    linkageType: ''
    returnType: int
    signature: int winUnlockReadLock(winFile *pFile)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:43891,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:43892,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:43900,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:43912,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:43913,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:43914,1
    - Dst: winLockFile
      Src: /src/nss/lib/sqlite/sqlite3.c:43925,1
    - Dst: osGetLastError
      Src: /src/nss/lib/sqlite/sqlite3.c:43933,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:43934,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:43939,1
    - Dst: sqlite3ErrName
      Src: /src/nss/lib/sqlite/sqlite3.c:43940,1
    - Dst: sqlite3_win32_sleep
      Src: /src/nss/lib/sqlite/sqlite3.c:43943,1
    - Dst: osGetLastError
      Src: /src/nss/lib/sqlite/sqlite3.c:43947,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:43954,1
    - Dst: winGetReadLock
      Src: /src/nss/lib/sqlite/sqlite3.c:43955,1
    - Dst: osGetLastError
      Src: /src/nss/lib/sqlite/sqlite3.c:43959,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:43966,1
    - Dst: winLockFile
      Src: /src/nss/lib/sqlite/sqlite3.c:43967,1
    - Dst: osGetLastError
      Src: /src/nss/lib/sqlite/sqlite3.c:43971,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:43985,1
    - Dst: winUnlockReadLock
      Src: /src/nss/lib/sqlite/sqlite3.c:43986,1
    - Dst: winLockFile
      Src: /src/nss/lib/sqlite/sqlite3.c:43987,1
    - Dst: osGetLastError
      Src: /src/nss/lib/sqlite/sqlite3.c:43992,1
    - Dst: winGetReadLock
      Src: /src/nss/lib/sqlite/sqlite3.c:43993,1
    - Dst: winUnlockFile
      Src: /src/nss/lib/sqlite/sqlite3.c:44001,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:44012,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:44016,1
    - Dst: sqlite3ErrName
      Src: /src/nss/lib/sqlite/sqlite3.c:44017,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 78
    argCount: 2
    argNames:
    - id
    - locktype
    argTypes:
    - sqlite3_file*
    - int
    assertStmts:
    - condition: ( locktype!=PENDING_LOCK )
      pos:
        line_end: 43912
        line_start: 43912
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pFile->locktype!=NO_LOCK || locktype==SHARED_LOCK )
      pos:
        line_end: 43911
        line_start: 43911
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pFile->locktype==SHARED_LOCK )
      pos:
        line_end: 43965
        line_start: 43965
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pFile->locktype>=SHARED_LOCK )
      pos:
        line_end: 43984
        line_start: 43984
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pFile->locktype==NO_LOCK )
      pos:
        line_end: 43953
        line_start: 43953
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( id!=0 )
      pos:
        line_end: 43890
        line_start: 43890
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( locktype!=RESERVED_LOCK || pFile->locktype==SHARED_LOCK )
      pos:
        line_end: 43913
        line_start: 43913
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 44019
      start: 43883
    functionDepth: 4
    functionLinenumber: 43883
    functionLinenumberEnd: 44019
    functionName: winLock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - osGetLastError
    - OSTRACE
    - winGetReadLock
    - winUnlockReadLock
    - assert
    - winUnlockFile
    - winLockFile
    - sqlite3_win32_sleep
    - sqlite3ErrName
    linkageType: ''
    returnType: int
    signature: int winLock(sqlite3_file *id, int locktype)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:44031,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:44033,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:44036,1
    - Dst: winLockFile
      Src: /src/nss/lib/sqlite/sqlite3.c:44038,1
    - Dst: winUnlockFile
      Src: /src/nss/lib/sqlite/sqlite3.c:44040,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:44043,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:44046,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - id
    - pResOut
    argTypes:
    - sqlite3_file*
    - int*
    assertStmts:
    - condition: ( id!=0 )
      pos:
        line_end: 44032
        line_start: 44032
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 44049
      start: 44026
    functionDepth: 3
    functionLinenumber: 44026
    functionLinenumberEnd: 44049
    functionName: winCheckReservedLock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - winUnlockFile
    - OSTRACE
    - winLockFile
    linkageType: ''
    returnType: int
    signature: int winCheckReservedLock(sqlite3_file *id, int *pResOut)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:44066,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:44067,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:44068,1
    - Dst: winUnlockFile
      Src: /src/nss/lib/sqlite/sqlite3.c:44072,1
    - Dst: winGetReadLock
      Src: /src/nss/lib/sqlite/sqlite3.c:44073,1
    - Dst: winLogError
      Src: /src/nss/lib/sqlite/sqlite3.c:44076,1
    - Dst: osGetLastError
      Src: /src/nss/lib/sqlite/sqlite3.c:44076,1
    - Dst: winUnlockFile
      Src: /src/nss/lib/sqlite/sqlite3.c:44081,1
    - Dst: winUnlockReadLock
      Src: /src/nss/lib/sqlite/sqlite3.c:44084,1
    - Dst: winUnlockFile
      Src: /src/nss/lib/sqlite/sqlite3.c:44087,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:44090,1
    - Dst: sqlite3ErrName
      Src: /src/nss/lib/sqlite/sqlite3.c:44091,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - id
    - locktype
    argTypes:
    - sqlite3_file*
    - int
    assertStmts:
    - condition: ( pFile!=0 )
      pos:
        line_end: 44065
        line_start: 44065
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( locktype<=SHARED_LOCK )
      pos:
        line_end: 44066
        line_start: 44066
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 44093
      start: 44062
    functionDepth: 4
    functionLinenumber: 44062
    functionLinenumberEnd: 44093
    functionName: winUnlock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - winLogError
    - osGetLastError
    - OSTRACE
    - winGetReadLock
    - assert
    - winUnlockFile
    - winUnlockReadLock
    - sqlite3ErrName
    linkageType: ''
    returnType: int
    signature: int winUnlock(sqlite3_file *id, int locktype)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:44113,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:44114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - id
    - locktype
    argTypes:
    - sqlite3_file*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44116
      start: 44112
    functionDepth: 1
    functionLinenumber: 44112
    functionLinenumberEnd: 44116
    functionName: winNolockLock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: int
    signature: int winNolockLock(sqlite3_file *id, int locktype)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:44119,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:44120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - id
    - pResOut
    argTypes:
    - sqlite3_file*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44122
      start: 44118
    functionDepth: 1
    functionLinenumber: 44118
    functionLinenumberEnd: 44122
    functionName: winNolockCheckReservedLock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: int
    signature: int winNolockCheckReservedLock(sqlite3_file *id, int *pResOut)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:44125,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:44126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - id
    - locktype
    argTypes:
    - sqlite3_file*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44128
      start: 44124
    functionDepth: 1
    functionLinenumber: 44124
    functionLinenumberEnd: 44128
    functionName: winNolockUnlock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: int
    signature: int winNolockUnlock(sqlite3_file *id, int locktype)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - pFile
    - mask
    - pArg
    argTypes:
    - winFile*
    - unsigned char
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44147
      start: 44139
    functionDepth: 0
    functionLinenumber: 44139
    functionLinenumberEnd: 44147
    functionName: winModeBit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void winModeBit(winFile *pFile, unsigned char mask, int *pArg)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:44159,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:44163,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:44168,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:44173,1
    - Dst: winFileSize
      Src: /src/nss/lib/sqlite/sqlite3.c:44179,1
    - Dst: SimulateIOErrorBenign
      Src: /src/nss/lib/sqlite/sqlite3.c:44183,1
    - Dst: winTruncate
      Src: /src/nss/lib/sqlite/sqlite3.c:44184,1
    - Dst: SimulateIOErrorBenign
      Src: /src/nss/lib/sqlite/sqlite3.c:44185,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:44188,1
    - Dst: sqlite3ErrName
      Src: /src/nss/lib/sqlite/sqlite3.c:44188,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:44191,1
    - Dst: winModeBit
      Src: /src/nss/lib/sqlite/sqlite3.c:44195,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:44196,1
    - Dst: winModeBit
      Src: /src/nss/lib/sqlite/sqlite3.c:44200,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:44201,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:44205,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:44206,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:44221,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:44227,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:44236,1
    - Dst: winGetTempname
      Src: /src/nss/lib/sqlite/sqlite3.c:44243,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:44247,1
    - Dst: sqlite3ErrName
      Src: /src/nss/lib/sqlite/sqlite3.c:44247,1
    - Dst: winUnmapfile
      Src: /src/nss/lib/sqlite/sqlite3.c:44269,1
    - Dst: winMapfile
      Src: /src/nss/lib/sqlite/sqlite3.c:44270,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:44273,1
    - Dst: sqlite3ErrName
      Src: /src/nss/lib/sqlite/sqlite3.c:44273,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:44278,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 101
    argCount: 3
    argNames:
    - id
    - op
    - pArg
    argTypes:
    - sqlite3_file*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44280
      start: 44157
    functionDepth: 10
    functionLinenumber: 44157
    functionLinenumberEnd: 44280
    functionName: winFileControl
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - SimulateIOErrorBenign
    - winGetTempname
    - winFileSize
    - OSTRACE
    - sqlite3_mprintf
    - winModeBit
    - winTruncate
    - winMapfile
    - winUnmapfile
    - sqlite3ErrName
    linkageType: ''
    returnType: int
    signature: int winFileControl(sqlite3_file *id, int op, void *pArg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - id
    argTypes:
    - sqlite3_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44295
      start: 44292
    functionDepth: 0
    functionLinenumber: 44292
    functionLinenumberEnd: 44295
    functionName: winSectorSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int winSectorSize(sqlite3_file *id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - sqlite3_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44304
      start: 44300
    functionDepth: 0
    functionLinenumber: 44300
    functionLinenumberEnd: 44304
    functionName: winDeviceCharacteristics
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int winDeviceCharacteristics(sqlite3_file *id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:44331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44332
      start: 44330
    functionDepth: 1
    functionLinenumber: 44330
    functionLinenumberEnd: 44332
    functionName: winShmEnterMutex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    linkageType: ''
    returnType: void
    signature: void winShmEnterMutex(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:44334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44335
      start: 44333
    functionDepth: 1
    functionLinenumber: 44333
    functionLinenumberEnd: 44335
    functionName: winShmLeaveMutex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_leave
    linkageType: ''
    returnType: void
    signature: void winShmLeaveMutex(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:44338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44339
      start: 44337
    functionDepth: 1
    functionLinenumber: 44337
    functionLinenumberEnd: 44339
    functionName: winShmMutexHeld
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    linkageType: ''
    returnType: int
    signature: int winShmMutexHeld(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:44441,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:44441,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:44443,1
    - Dst: winUnlockFile
      Src: /src/nss/lib/sqlite/sqlite3.c:44448,1
    - Dst: winLockFile
      Src: /src/nss/lib/sqlite/sqlite3.c:44453,1
    - Dst: osGetLastError
      Src: /src/nss/lib/sqlite/sqlite3.c:44459,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:44463,1
    - Dst: sqlite3ErrName
      Src: /src/nss/lib/sqlite/sqlite3.c:44465,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - pFile
    - lockType
    - ofst
    - nByte
    argTypes:
    - winShmNode*
    - int
    - int
    - int
    assertStmts:
    - condition: ( pFile->nRef==0 || sqlite3_mutex_held(pFile->mutex) )
      pos:
        line_end: 44440
        line_start: 44440
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 44468
      start: 44432
    functionDepth: 3
    functionLinenumber: 44432
    functionLinenumberEnd: 44468
    functionName: winShmSystemLock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - osGetLastError
    - OSTRACE
    - assert
    - winUnlockFile
    - sqlite3ErrName
    - sqlite3_mutex_held
    - winLockFile
    linkageType: ''
    returnType: int
    signature: "int winShmSystemLock(\n  winShmNode *pFile,    /* Apply locks to this
      open shared-memory segment */\n  int lockType,         /* WINSHM_UNLCK, WINSHM_RDLCK,
      or WINSHM_WRLCK */\n  int ofst,             /* Offset to first byte to be locked/unlocked
      */\n  int nByte             /* Number of bytes to lock or unlock */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:44483,1
    - Dst: winShmMutexHeld
      Src: /src/nss/lib/sqlite/sqlite3.c:44483,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:44484,1
    - Dst: osGetCurrentProcessId
      Src: /src/nss/lib/sqlite/sqlite3.c:44485,1
    - Dst: sqlite3_mutex_free
      Src: /src/nss/lib/sqlite/sqlite3.c:44490,1
    - Dst: osUnmapViewOfFile
      Src: /src/nss/lib/sqlite/sqlite3.c:44492,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:44493,1
    - Dst: osGetCurrentProcessId
      Src: /src/nss/lib/sqlite/sqlite3.c:44494,1
    - Dst: UNUSED_VARIABLE_VALUE
      Src: /src/nss/lib/sqlite/sqlite3.c:44495,1
    - Dst: osCloseHandle
      Src: /src/nss/lib/sqlite/sqlite3.c:44496,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:44497,1
    - Dst: osGetCurrentProcessId
      Src: /src/nss/lib/sqlite/sqlite3.c:44498,1
    - Dst: UNUSED_VARIABLE_VALUE
      Src: /src/nss/lib/sqlite/sqlite3.c:44499,1
    - Dst: SimulateIOErrorBenign
      Src: /src/nss/lib/sqlite/sqlite3.c:44502,1
    - Dst: winClose
      Src: /src/nss/lib/sqlite/sqlite3.c:44503,1
    - Dst: SimulateIOErrorBenign
      Src: /src/nss/lib/sqlite/sqlite3.c:44504,1
    - Dst: SimulateIOErrorBenign
      Src: /src/nss/lib/sqlite/sqlite3.c:44507,1
    - Dst: sqlite3BeginBenignMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:44508,1
    - Dst: winDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:44509,1
    - Dst: sqlite3EndBenignMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:44510,1
    - Dst: SimulateIOErrorBenign
      Src: /src/nss/lib/sqlite/sqlite3.c:44511,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:44514,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:44515,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 2
    argNames:
    - pVfs
    - deleteFlag
    argTypes:
    - sqlite3_vfs*
    - int
    assertStmts:
    - condition: ( winShmMutexHeld() )
      pos:
        line_end: 44482
        line_start: 44482
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 44520
      start: 44480
    functionDepth: 4
    functionLinenumber: 44480
    functionLinenumberEnd: 44520
    functionName: winShmPurge
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - osUnmapViewOfFile
    - winClose
    - SimulateIOErrorBenign
    - sqlite3EndBenignMalloc
    - sqlite3BeginBenignMalloc
    - osGetCurrentProcessId
    - OSTRACE
    - UNUSED_VARIABLE_VALUE
    - assert
    - winDelete
    - osCloseHandle
    - winShmMutexHeld
    - sqlite3_mutex_free
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void winShmPurge(sqlite3_vfs *pVfs, int deleteFlag)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: winShmSystemLock
      Src: /src/nss/lib/sqlite/sqlite3.c:44532,1
    - Dst: winShmSystemLock
      Src: /src/nss/lib/sqlite/sqlite3.c:44537,1
    - Dst: winTruncate
      Src: /src/nss/lib/sqlite/sqlite3.c:44539,1
    - Dst: winShmSystemLock
      Src: /src/nss/lib/sqlite/sqlite3.c:44540,1
    - Dst: winLogError
      Src: /src/nss/lib/sqlite/sqlite3.c:44541,1
    - Dst: osGetLastError
      Src: /src/nss/lib/sqlite/sqlite3.c:44541,1
    - Dst: winShmSystemLock
      Src: /src/nss/lib/sqlite/sqlite3.c:44547,1
    - Dst: winShmSystemLock
      Src: /src/nss/lib/sqlite/sqlite3.c:44550,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - pShmNode
    argTypes:
    - winShmNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44551
      start: 44531
    functionDepth: 4
    functionLinenumber: 44531
    functionLinenumberEnd: 44551
    functionName: winLockSharedMemory
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - osGetLastError
    - winLogError
    - winShmSystemLock
    - winTruncate
    linkageType: ''
    returnType: int
    signature: int winLockSharedMemory(winShmNode *pShmNode)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:44567,1
    - Dst: sqlite3MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:44572,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:44574,1
    - Dst: sqlite3MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:44575,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:44577,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:44581,1
    - Dst: sqlite3FileSuffix3
      Src: /src/nss/lib/sqlite/sqlite3.c:44582,1
    - Dst: winShmEnterMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:44587,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:44592,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:44595,1
    - Dst: sqlite3_mutex_alloc
      Src: /src/nss/lib/sqlite/sqlite3.c:44607,1
    - Dst: sqlite3_uri_boolean
      Src: /src/nss/lib/sqlite/sqlite3.c:44614,1
    - Dst: winOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:44619,1
    - Dst: winLogError
      Src: /src/nss/lib/sqlite/sqlite3.c:44623,1
    - Dst: osGetLastError
      Src: /src/nss/lib/sqlite/sqlite3.c:44623,1
    - Dst: winLockSharedMemory
      Src: /src/nss/lib/sqlite/sqlite3.c:44629,1
    - Dst: winShmLeaveMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:44640,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:44649,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:44652,1
    - Dst: winShmSystemLock
      Src: /src/nss/lib/sqlite/sqlite3.c:44657,1
    - Dst: winShmPurge
      Src: /src/nss/lib/sqlite/sqlite3.c:44658,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:44659,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:44660,1
    - Dst: winShmLeaveMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:44661,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 71
    argCount: 1
    argNames:
    - pDbFd
    argTypes:
    - winFile*
    assertStmts:
    - condition: ( pDbFd->pShm==0 )
      pos:
        line_end: 44566
        line_start: 44566
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 44663
      start: 44560
    functionDepth: 10
    functionLinenumber: 44560
    functionLinenumberEnd: 44663
    functionName: winOpenSharedMemory
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - winShmPurge
    - osGetLastError
    - sqlite3MallocZero
    - winShmSystemLock
    - sqlite3StrICmp
    - sqlite3_mutex_leave
    - assert
    - sqlite3_mutex_alloc
    - sqlite3_snprintf
    - winShmEnterMutex
    - sqlite3Strlen30
    - winShmLeaveMutex
    - winLogError
    - sqlite3_uri_boolean
    - winLockSharedMemory
    - sqlite3FileSuffix3
    - sqlite3_free
    - winOpen
    linkageType: ''
    returnType: int
    signature: int winOpenSharedMemory(winFile *pDbFd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:44685,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:44690,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:44692,1
    - Dst: winShmEnterMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:44696,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:44697,1
    - Dst: winShmPurge
      Src: /src/nss/lib/sqlite/sqlite3.c:44700,1
    - Dst: winShmLeaveMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:44702,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - fd
    - deleteFlag
    argTypes:
    - sqlite3_file*
    - int
    assertStmts:
    - condition: ( pShmNode->nRef>0 )
      pos:
        line_end: 44696
        line_start: 44696
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 44705
      start: 44669
    functionDepth: 5
    functionLinenumber: 44669
    functionLinenumberEnd: 44705
    functionName: winShmUnmap
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - winShmLeaveMutex
    - winShmPurge
    - sqlite3_mutex_leave
    - assert
    - winShmEnterMutex
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int winShmUnmap(\n  sqlite3_file *fd,          /* Database holding
      shared memory */\n  int deleteFlag             /* Delete after closing if true
      */\n)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:44723,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:44724,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:44725,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:44729,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:44732,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:44733,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:44740,1
    - Dst: winShmSystemLock
      Src: /src/nss/lib/sqlite/sqlite3.c:44746,1
    - Dst: winShmSystemLock
      Src: /src/nss/lib/sqlite/sqlite3.c:44774,1
    - Dst: winShmSystemLock
      Src: /src/nss/lib/sqlite/sqlite3.c:44799,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:44801,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:44806,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:44807,1
    - Dst: osGetCurrentProcessId
      Src: /src/nss/lib/sqlite/sqlite3.c:44808,1
    - Dst: sqlite3ErrName
      Src: /src/nss/lib/sqlite/sqlite3.c:44809,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 61
    argCount: 4
    argNames:
    - fd
    - ofst
    - n
    - flags
    argTypes:
    - sqlite3_file*
    - int
    - int
    - int
    assertStmts:
    - condition: ( ofst>=0 && ofst+n<=SQLITE_SHM_NLOCK )
      pos:
        line_end: 44722
        line_start: 44722
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( n==1 || (flags & SQLITE_SHM_EXCLUSIVE)!=0 )
      pos:
        line_end: 44728
        line_start: 44728
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( flags==(SQLITE_SHM_LOCK | SQLITE_SHM_SHARED)\n       || flags==(SQLITE_SHM_LOCK
        | SQLITE_SHM_EXCLUSIVE)\n       || flags==(SQLITE_SHM_UNLOCK | SQLITE_SHM_SHARED)\n
        \      || flags==(SQLITE_SHM_UNLOCK | SQLITE_SHM_EXCLUSIVE) )"
      pos:
        line_end: 44727
        line_start: 44724
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( n>=1 )
      pos:
        line_end: 44723
        line_start: 44723
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( n>1 || mask==(1<<ofst) )
      pos:
        line_end: 44731
        line_start: 44731
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pX->exclMask & (p->exclMask|p->sharedMask))==0 )
      pos:
        line_end: 44739
        line_start: 44739
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (p->sharedMask & mask)==0 )
      pos:
        line_end: 44800
        line_start: 44800
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 44811
      start: 44710
    functionDepth: 4
    functionLinenumber: 44710
    functionLinenumberEnd: 44811
    functionName: winShmLock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - winShmSystemLock
    - osGetCurrentProcessId
    - sqlite3_mutex_leave
    - OSTRACE
    - assert
    - sqlite3ErrName
    linkageType: ''
    returnType: int
    signature: "int winShmLock(\n  sqlite3_file *fd,          /* Database file holding
      the shared memory */\n  int ofst,                  /* First lock to acquire
      or release */\n  int n,                     /* Number of locks to acquire or
      release */\n  int flags                  /* What to do with the lock */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:44822,1
    - Dst: sqlite3MemoryBarrier
      Src: /src/nss/lib/sqlite/sqlite3.c:44823,1
    - Dst: winShmEnterMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:44824,1
    - Dst: winShmLeaveMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:44825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - fd
    argTypes:
    - sqlite3_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44826
      start: 44819
    functionDepth: 2
    functionLinenumber: 44819
    functionLinenumberEnd: 44826
    functionName: winShmBarrier
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - winShmLeaveMutex
    - winShmEnterMutex
    - UNUSED_PARAMETER
    - sqlite3MemoryBarrier
    linkageType: ''
    returnType: void
    signature: "void winShmBarrier(\n  sqlite3_file *fd          /* Database holding
      the shared memory */\n)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: winOpenSharedMemory
      Src: /src/nss/lib/sqlite/sqlite3.c:44862,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:44868,1
    - Dst: winLockSharedMemory
      Src: /src/nss/lib/sqlite/sqlite3.c:44870,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:44874,1
    - Dst: winFileSize
      Src: /src/nss/lib/sqlite/sqlite3.c:44887,1
    - Dst: winLogError
      Src: /src/nss/lib/sqlite/sqlite3.c:44889,1
    - Dst: osGetLastError
      Src: /src/nss/lib/sqlite/sqlite3.c:44889,1
    - Dst: winTruncate
      Src: /src/nss/lib/sqlite/sqlite3.c:44902,1
    - Dst: winLogError
      Src: /src/nss/lib/sqlite/sqlite3.c:44904,1
    - Dst: osGetLastError
      Src: /src/nss/lib/sqlite/sqlite3.c:44904,1
    - Dst: sqlite3_realloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:44911,1
    - Dst: osCreateFileMappingFromApp
      Src: /src/nss/lib/sqlite/sqlite3.c:44930,1
    - Dst: osCreateFileMappingW
      Src: /src/nss/lib/sqlite/sqlite3.c:44934,1
    - Dst: osCreateFileMappingA
      Src: /src/nss/lib/sqlite/sqlite3.c:44938,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:44942,1
    - Dst: osGetCurrentProcessId
      Src: /src/nss/lib/sqlite/sqlite3.c:44943,1
    - Dst: osMapViewOfFileFromApp
      Src: /src/nss/lib/sqlite/sqlite3.c:44949,1
    - Dst: osMapViewOfFile
      Src: /src/nss/lib/sqlite/sqlite3.c:44953,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:44957,1
    - Dst: osGetCurrentProcessId
      Src: /src/nss/lib/sqlite/sqlite3.c:44958,1
    - Dst: osGetLastError
      Src: /src/nss/lib/sqlite/sqlite3.c:44962,1
    - Dst: winLogError
      Src: /src/nss/lib/sqlite/sqlite3.c:44963,1
    - Dst: osCloseHandle
      Src: /src/nss/lib/sqlite/sqlite3.c:44965,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:44985,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 81
    argCount: 5
    argNames:
    - fd
    - iRegion
    - szRegion
    - isWrite
    - pp
    argTypes:
    - sqlite3_file*
    - int
    - int
    - int
    - void**
    assertStmts:
    - condition: ( szRegion==pShmNode->szRegion || pShmNode->nRegion==0 )
      pos:
        line_end: 44873
        line_start: 44873
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 44987
      start: 44847
    functionDepth: 11
    functionLinenumber: 44847
    functionLinenumberEnd: 44987
    functionName: winShmMap
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - osCreateFileMappingA
    - winLogError
    - osGetLastError
    - winOpenSharedMemory
    - osGetCurrentProcessId
    - winFileSize
    - OSTRACE
    - sqlite3_mutex_leave
    - assert
    - osMapViewOfFile
    - osCreateFileMappingW
    - osCloseHandle
    - winLockSharedMemory
    - winTruncate
    - osCreateFileMappingFromApp
    - osMapViewOfFileFromApp
    - sqlite3_realloc64
    linkageType: ''
    returnType: int
    signature: "int winShmMap(\n  sqlite3_file *fd,               /* Handle open on
      database file */\n  int iRegion,                    /* Region to retrieve */\n
      \ int szRegion,                   /* Size of regions */\n  int isWrite,                    /*
      True to extend file if necessary */\n  void volatile **pp              /* OUT:
      Mapped memory */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:45001,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:45002,1
    - Dst: osGetCurrentProcessId
      Src: /src/nss/lib/sqlite/sqlite3.c:45004,1
    - Dst: osUnmapViewOfFile
      Src: /src/nss/lib/sqlite/sqlite3.c:45007,1
    - Dst: osGetLastError
      Src: /src/nss/lib/sqlite/sqlite3.c:45008,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:45009,1
    - Dst: osGetCurrentProcessId
      Src: /src/nss/lib/sqlite/sqlite3.c:45010,1
    - Dst: winLogError
      Src: /src/nss/lib/sqlite/sqlite3.c:45012,1
    - Dst: osCloseHandle
      Src: /src/nss/lib/sqlite/sqlite3.c:45019,1
    - Dst: osGetLastError
      Src: /src/nss/lib/sqlite/sqlite3.c:45020,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:45021,1
    - Dst: osGetCurrentProcessId
      Src: /src/nss/lib/sqlite/sqlite3.c:45022,1
    - Dst: winLogError
      Src: /src/nss/lib/sqlite/sqlite3.c:45023,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:45028,1
    - Dst: osGetCurrentProcessId
      Src: /src/nss/lib/sqlite/sqlite3.c:45029,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - pFile
    argTypes:
    - winFile*
    assertStmts:
    - condition: ( pFile!=0 )
      pos:
        line_end: 45000
        line_start: 45000
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 45031
      start: 45000
    functionDepth: 1
    functionLinenumber: 45000
    functionLinenumberEnd: 45031
    functionName: winUnmapfile
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 3
    functionsReached:
    - osUnmapViewOfFile
    - winLogError
    - osGetLastError
    - osGetCurrentProcessId
    - OSTRACE
    - assert
    - osCloseHandle
    linkageType: ''
    returnType: int
    signature: int winUnmapfile(winFile *pFile)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:45053,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:45054,1
    - Dst: osGetCurrentProcessId
      Src: /src/nss/lib/sqlite/sqlite3.c:45055,1
    - Dst: winFileSize
      Src: /src/nss/lib/sqlite/sqlite3.c:45060,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:45062,1
    - Dst: osGetCurrentProcessId
      Src: /src/nss/lib/sqlite/sqlite3.c:45063,1
    - Dst: winUnmapfile
      Src: /src/nss/lib/sqlite/sqlite3.c:45073,1
    - Dst: winUnmapfile
      Src: /src/nss/lib/sqlite/sqlite3.c:45080,1
    - Dst: osCreateFileMappingFromApp
      Src: /src/nss/lib/sqlite/sqlite3.c:45088,1
    - Dst: osCreateFileMappingW
      Src: /src/nss/lib/sqlite/sqlite3.c:45090,1
    - Dst: osCreateFileMappingA
      Src: /src/nss/lib/sqlite/sqlite3.c:45094,1
    - Dst: osGetLastError
      Src: /src/nss/lib/sqlite/sqlite3.c:45099,1
    - Dst: winLogError
      Src: /src/nss/lib/sqlite/sqlite3.c:45100,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:45103,1
    - Dst: osGetCurrentProcessId
      Src: /src/nss/lib/sqlite/sqlite3.c:45104,1
    - Dst: sqlite3ErrName
      Src: /src/nss/lib/sqlite/sqlite3.c:45104,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:45107,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:45108,1
    - Dst: osMapViewOfFileFromApp
      Src: /src/nss/lib/sqlite/sqlite3.c:45110,1
    - Dst: osMapViewOfFile
      Src: /src/nss/lib/sqlite/sqlite3.c:45112,1
    - Dst: osCloseHandle
      Src: /src/nss/lib/sqlite/sqlite3.c:45115,1
    - Dst: osGetLastError
      Src: /src/nss/lib/sqlite/sqlite3.c:45117,1
    - Dst: winLogError
      Src: /src/nss/lib/sqlite/sqlite3.c:45118,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:45121,1
    - Dst: osGetCurrentProcessId
      Src: /src/nss/lib/sqlite/sqlite3.c:45122,1
    - Dst: sqlite3ErrName
      Src: /src/nss/lib/sqlite/sqlite3.c:45122,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:45129,1
    - Dst: osGetCurrentProcessId
      Src: /src/nss/lib/sqlite/sqlite3.c:45130,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 51
    argCount: 2
    argNames:
    - pFd
    - nByte
    argTypes:
    - winFile*
    - sqlite3_int64
    assertStmts:
    - condition: ( sizeof(SIZE_T)==sizeof(sqlite3_int64) || nMap<=0xffffffff )
      pos:
        line_end: 45107
        line_start: 45107
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (nMap % winSysInfo.dwPageSize)==0 )
      pos:
        line_end: 45106
        line_start: 45106
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nMap>=0 || pFd->nFetchOut==0 )
      pos:
        line_end: 45052
        line_start: 45052
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 45132
      start: 45049
    functionDepth: 2
    functionLinenumber: 45049
    functionLinenumberEnd: 45132
    functionName: winMapfile
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - winLogError
    - osGetLastError
    - osGetCurrentProcessId
    - winFileSize
    - OSTRACE
    - assert
    - osMapViewOfFile
    - osCreateFileMappingW
    - osCreateFileMappingFromApp
    - osCloseHandle
    - osMapViewOfFileFromApp
    - osCreateFileMappingA
    - winUnmapfile
    - sqlite3ErrName
    linkageType: ''
    returnType: int
    signature: int winMapfile(winFile *pFd, sqlite3_int64 nByte)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:45153,1
    - Dst: osGetCurrentProcessId
      Src: /src/nss/lib/sqlite/sqlite3.c:45154,1
    - Dst: winMapfile
      Src: /src/nss/lib/sqlite/sqlite3.c:45159,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:45161,1
    - Dst: osGetCurrentProcessId
      Src: /src/nss/lib/sqlite/sqlite3.c:45162,1
    - Dst: sqlite3ErrName
      Src: /src/nss/lib/sqlite/sqlite3.c:45162,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:45173,1
    - Dst: osGetCurrentProcessId
      Src: /src/nss/lib/sqlite/sqlite3.c:45174,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - fd
    - iOff
    - nAmt
    - pp
    argTypes:
    - sqlite3_file*
    - i64
    - int
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45176
      start: 45147
    functionDepth: 3
    functionLinenumber: 45147
    functionLinenumberEnd: 45176
    functionName: winFetch
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - osGetCurrentProcessId
    - winMapfile
    - OSTRACE
    - sqlite3ErrName
    linkageType: ''
    returnType: int
    signature: int winFetch(sqlite3_file *fd, i64 iOff, int nAmt, void **pp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:45195,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:45198,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:45200,1
    - Dst: osGetCurrentProcessId
      Src: /src/nss/lib/sqlite/sqlite3.c:45201,1
    - Dst: winUnmapfile
      Src: /src/nss/lib/sqlite/sqlite3.c:45210,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:45213,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:45216,1
    - Dst: osGetCurrentProcessId
      Src: /src/nss/lib/sqlite/sqlite3.c:45217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - fd
    - iOff
    - p
    argTypes:
    - sqlite3_file*
    - i64
    - void*
    assertStmts:
    - condition: ( (p==0)==(pFd->nFetchOut==0) )
      pos:
        line_end: 45194
        line_start: 45194
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p==0 || p==&((u8 *)pFd->pMapRegion)[iOff] )
      pos:
        line_end: 45197
        line_start: 45197
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pFd->nFetchOut>=0 )
      pos:
        line_end: 45212
        line_start: 45212
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 45219
      start: 45188
    functionDepth: 2
    functionLinenumber: 45188
    functionLinenumberEnd: 45219
    functionName: winUnfetch
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - osGetCurrentProcessId
    - OSTRACE
    - winUnmapfile
    linkageType: ''
    returnType: int
    signature: int winUnfetch(sqlite3_file *fd, i64 iOff, void *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: osIsNT
      Src: /src/nss/lib/sqlite/sqlite3.c:45306,1
    - Dst: winUnicodeToUtf8
      Src: /src/nss/lib/sqlite/sqlite3.c:45307,1
    - Dst: winMbcsToUtf8
      Src: /src/nss/lib/sqlite/sqlite3.c:45311,1
    - Dst: osAreFileApisANSI
      Src: /src/nss/lib/sqlite/sqlite3.c:45311,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - zFilename
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45316
      start: 45304
    functionDepth: 8
    functionLinenumber: 45304
    functionLinenumberEnd: 45316
    functionName: winConvertToUtf8Filename
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - winUnicodeToUtf8
    - osIsNT
    - osAreFileApisANSI
    - winMbcsToUtf8
    linkageType: ''
    returnType: char
    signature: char *winConvertToUtf8Filename(const void *zFilename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: osIsNT
      Src: /src/nss/lib/sqlite/sqlite3.c:45327,1
    - Dst: winUtf8ToUnicode
      Src: /src/nss/lib/sqlite/sqlite3.c:45328,1
    - Dst: winUtf8ToMbcs
      Src: /src/nss/lib/sqlite/sqlite3.c:45332,1
    - Dst: osAreFileApisANSI
      Src: /src/nss/lib/sqlite/sqlite3.c:45332,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - zFilename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45337
      start: 45325
    functionDepth: 8
    functionLinenumber: 45325
    functionLinenumberEnd: 45337
    functionName: winConvertFromUtf8Filename
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - osIsNT
    - winUtf8ToUnicode
    - osAreFileApisANSI
    - winUtf8ToMbcs
    linkageType: ''
    returnType: void
    signature: void *winConvertFromUtf8Filename(const char *zFilename)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:45346,1
    - Dst: winIsDirSep
      Src: /src/nss/lib/sqlite/sqlite3.c:45348,1
    - Dst: winGetDirSep
      Src: /src/nss/lib/sqlite/sqlite3.c:45351,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - nBuf
    - zBuf
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45358
      start: 45344
    functionDepth: 1
    functionLinenumber: 45344
    functionLinenumberEnd: 45358
    functionName: winMakeEndInDirSep
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - winGetDirSep
    - sqlite3Strlen30
    - winIsDirSep
    linkageType: ''
    returnType: int
    signature: int winMakeEndInDirSep(int nBuf, char *zBuf)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:45370,1
    - Dst: sqlite3MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:45384,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:45386,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:45395,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:45397,1
    - Dst: winIsDirSep
      Src: /src/nss/lib/sqlite/sqlite3.c:45399,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:45403,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:45404,1
    - Dst: winLogError
      Src: /src/nss/lib/sqlite/sqlite3.c:45405,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:45407,1
    - Dst: getenv
      Src: /src/nss/lib/sqlite/sqlite3.c:45427,1
    - Dst: getenv
      Src: /src/nss/lib/sqlite/sqlite3.c:45428,1
    - Dst: getenv
      Src: /src/nss/lib/sqlite/sqlite3.c:45429,1
    - Dst: getenv
      Src: /src/nss/lib/sqlite/sqlite3.c:45430,1
    - Dst: getenv
      Src: /src/nss/lib/sqlite/sqlite3.c:45431,1
    - Dst: winIsDriveLetterAndColon
      Src: /src/nss/lib/sqlite/sqlite3.c:45440,1
    - Dst: winConvertFromUtf8Filename
      Src: /src/nss/lib/sqlite/sqlite3.c:45441,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:45443,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:45444,1
    - Dst: winIsDir
      Src: /src/nss/lib/sqlite/sqlite3.c:45447,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:45448,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:45449,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:45452,1
    - Dst: sqlite3MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:45454,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:45456,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:45457,1
    - Dst: cygwin_conv_path
      Src: /src/nss/lib/sqlite/sqlite3.c:45460,1
    - Dst: osIsNT
      Src: /src/nss/lib/sqlite/sqlite3.c:45461,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:45463,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:45464,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:45465,1
    - Dst: winLogError
      Src: /src/nss/lib/sqlite/sqlite3.c:45466,1
    - Dst: winIsDir
      Src: /src/nss/lib/sqlite/sqlite3.c:45469,1
    - Dst: winConvertToUtf8Filename
      Src: /src/nss/lib/sqlite/sqlite3.c:45474,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:45476,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:45477,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:45478,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:45481,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:45482,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:45483,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:45486,1
    - Dst: sqlite3MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:45493,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:45495,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:45496,1
    - Dst: osGetTempPathW
      Src: /src/nss/lib/sqlite/sqlite3.c:45499,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:45500,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:45501,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:45502,1
    - Dst: winLogError
      Src: /src/nss/lib/sqlite/sqlite3.c:45503,1
    - Dst: osGetLastError
      Src: /src/nss/lib/sqlite/sqlite3.c:45503,1
    - Dst: winUnicodeToUtf8
      Src: /src/nss/lib/sqlite/sqlite3.c:45506,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:45508,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:45509,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:45510,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:45512,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:45513,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:45514,1
    - Dst: sqlite3MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:45521,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:45523,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:45524,1
    - Dst: osGetTempPathA
      Src: /src/nss/lib/sqlite/sqlite3.c:45527,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:45528,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:45529,1
    - Dst: winLogError
      Src: /src/nss/lib/sqlite/sqlite3.c:45530,1
    - Dst: osGetLastError
      Src: /src/nss/lib/sqlite/sqlite3.c:45530,1
    - Dst: winMbcsToUtf8
      Src: /src/nss/lib/sqlite/sqlite3.c:45533,1
    - Dst: osAreFileApisANSI
      Src: /src/nss/lib/sqlite/sqlite3.c:45533,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:45535,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:45536,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:45538,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:45539,1
    - Dst: winMakeEndInDirSep
      Src: /src/nss/lib/sqlite/sqlite3.c:45551,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:45552,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:45553,1
    - Dst: winLogError
      Src: /src/nss/lib/sqlite/sqlite3.c:45554,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:45568,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:45570,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:45571,1
    - Dst: winLogError
      Src: /src/nss/lib/sqlite/sqlite3.c:45572,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:45575,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:45577,1
    - Dst: sqlite3_randomness
      Src: /src/nss/lib/sqlite/sqlite3.c:45578,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:45586,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 144
    argCount: 2
    argNames:
    - pVfs
    - pzBuf
    argTypes:
    - sqlite3_vfs*
    - char**
    assertStmts:
    - condition: ( nDir>0 )
      pos:
        line_end: 45394
        line_start: 45394
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 45588
      start: 45364
    functionDepth: 10
    functionLinenumber: 45364
    functionLinenumberEnd: 45588
    functionName: winGetTempname
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - osIsNT
    - osGetLastError
    - sqlite3MallocZero
    - winConvertToUtf8Filename
    - osGetTempPathW
    - winMakeEndInDirSep
    - assert
    - winUnicodeToUtf8
    - sqlite3_snprintf
    - cygwin_conv_path
    - sqlite3_randomness
    - OSTRACE
    - winConvertFromUtf8Filename
    - sqlite3Strlen30
    - winIsDirSep
    - winMbcsToUtf8
    - getenv
    - winLogError
    - winIsDir
    - osAreFileApisANSI
    - osGetTempPathA
    - winIsDriveLetterAndColon
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int winGetTempname(sqlite3_vfs *pVfs, char **pzBuf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:45493,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:45495,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:45496,1
    - Dst: osGetTempPathW
      Src: /src/nss/lib/sqlite/sqlite3.c:45499,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:45500,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:45501,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:45502,1
    - Dst: winLogError
      Src: /src/nss/lib/sqlite/sqlite3.c:45503,1
    - Dst: osGetLastError
      Src: /src/nss/lib/sqlite/sqlite3.c:45503,1
    - Dst: winUnicodeToUtf8
      Src: /src/nss/lib/sqlite/sqlite3.c:45506,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:45508,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:45509,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:45510,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:45512,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:45513,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:45514,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45517
      start: 45491
    functionDepth: 10
    functionLinenumber: 45491
    functionLinenumberEnd: 45517
    functionName: if
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 5
    functionsReached:
    - winLogError
    - osGetTempPathW
    - osGetLastError
    - OSTRACE
    - winUnicodeToUtf8
    - sqlite3MallocZero
    - sqlite3_free
    - sqlite3_snprintf
    linkageType: ''
    returnType: else
    signature: else if( osIsNT() )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: osIsNT
      Src: /src/nss/lib/sqlite/sqlite3.c:45600,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:45603,1
    - Dst: osGetFileAttributesExW
      Src: /src/nss/lib/sqlite/sqlite3.c:45604,1
    - Dst: winRetryIoerr
      Src: /src/nss/lib/sqlite/sqlite3.c:45606,1
    - Dst: osGetFileAttributesA
      Src: /src/nss/lib/sqlite/sqlite3.c:45613,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - zConverted
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45617
      start: 45595
    functionDepth: 2
    functionLinenumber: 45595
    functionLinenumberEnd: 45617
    functionName: winIsDir
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - osIsNT
    - osGetFileAttributesA
    - osGetFileAttributesExW
    - memset
    - winRetryIoerr
    linkageType: ''
    returnType: int
    signature: int winIsDir(const void *zConverted)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:45676,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:45686,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:45687,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:45688,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:45689,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:45693,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:45694,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:45695,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:45696,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:45699,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:45705,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:45706,1
    - Dst: sqlite3_log
      Src: /src/nss/lib/sqlite/sqlite3.c:45711,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:45720,1
    - Dst: winGetTempname
      Src: /src/nss/lib/sqlite/sqlite3.c:45721,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:45723,1
    - Dst: sqlite3ErrName
      Src: /src/nss/lib/sqlite/sqlite3.c:45723,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:45733,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:45734,1
    - Dst: winConvertFromUtf8Filename
      Src: /src/nss/lib/sqlite/sqlite3.c:45737,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:45739,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:45740,1
    - Dst: winIsDir
      Src: /src/nss/lib/sqlite/sqlite3.c:45744,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:45745,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:45746,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:45747,1
    - Dst: osIsNT
      Src: /src/nss/lib/sqlite/sqlite3.c:45793,1
    - Dst: osCreateFile2
      Src: /src/nss/lib/sqlite/sqlite3.c:45804,1
    - Dst: sqlite3BeginBenignMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:45812,1
    - Dst: winAccess
      Src: /src/nss/lib/sqlite/sqlite3.c:45813,1
    - Dst: sqlite3EndBenignMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:45814,1
    - Dst: winRetryIoerr
      Src: /src/nss/lib/sqlite/sqlite3.c:45817,1
    - Dst: osCreateFileW
      Src: /src/nss/lib/sqlite/sqlite3.c:45820,1
    - Dst: sqlite3BeginBenignMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:45829,1
    - Dst: winAccess
      Src: /src/nss/lib/sqlite/sqlite3.c:45830,1
    - Dst: sqlite3EndBenignMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:45831,1
    - Dst: winRetryIoerr
      Src: /src/nss/lib/sqlite/sqlite3.c:45834,1
    - Dst: osCreateFileA
      Src: /src/nss/lib/sqlite/sqlite3.c:45840,1
    - Dst: sqlite3BeginBenignMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:45849,1
    - Dst: winAccess
      Src: /src/nss/lib/sqlite/sqlite3.c:45850,1
    - Dst: sqlite3EndBenignMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:45851,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 101
    argCount: 5
    argNames:
    - pVfs
    - zName
    - id
    - flags
    - pOutFlags
    argTypes:
    - sqlite3_vfs*
    - char*
    - sqlite3_file*
    - int
    - int*
    assertStmts:
    - condition: (isExclusive==0 || isCreate)
      pos:
        line_end: 45687
        line_start: 45687
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (!isDelete && zName) || eType!=SQLITE_OPEN_MASTER_JOURNAL )
      pos:
        line_end: 45694
        line_start: 45694
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (!isDelete && zName) || eType!=SQLITE_OPEN_WAL )
      pos:
        line_end: 45695
        line_start: 45695
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( isDelete && !isOpenJournal )
      pos:
        line_end: 45719
        line_start: 45719
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (isDelete==0 || isCreate)
      pos:
        line_end: 45688
        line_start: 45688
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ((isReadonly==0 || isReadWrite==0) && (isReadWrite || isReadonly))
      pos:
        line_end: 45685
        line_start: 45685
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (!isDelete && zName) || eType!=SQLITE_OPEN_MAIN_DB )
      pos:
        line_end: 45692
        line_start: 45692
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (!isDelete && zName) || eType!=SQLITE_OPEN_MAIN_JOURNAL )
      pos:
        line_end: 45693
        line_start: 45693
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (isCreate==0 || isReadWrite)
      pos:
        line_end: 45686
        line_start: 45686
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( eType==SQLITE_OPEN_MAIN_DB      || eType==SQLITE_OPEN_TEMP_DB\n
        \      || eType==SQLITE_OPEN_MAIN_JOURNAL || eType==SQLITE_OPEN_TEMP_JOURNAL\n
        \      || eType==SQLITE_OPEN_SUBJOURNAL   || eType==SQLITE_OPEN_MASTER_JOURNAL\n
        \      || eType==SQLITE_OPEN_TRANSIENT_DB || eType==SQLITE_OPEN_WAL\n  )"
      pos:
        line_end: 45702
        line_start: 45698
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( (eType!=SQLITE_OPEN_MAIN_DB) || (flags & SQLITE_OPEN_URI) ||\n
        \      zUtf8Name[sqlite3Strlen30(zUtf8Name)+1]==0 )"
      pos:
        line_end: 45733
        line_start: 45732
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pFile!=0 )
      pos:
        line_end: 45704
        line_start: 45704
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 45854
      start: 45630
    functionDepth: 11
    functionLinenumber: 45630
    functionLinenumberEnd: 45854
    functionName: winOpen
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - osCreateFile2
    - osIsNT
    - winIsDir
    - winGetTempname
    - sqlite3EndBenignMalloc
    - sqlite3_log
    - sqlite3BeginBenignMalloc
    - winAccess
    - osCreateFileW
    - OSTRACE
    - winConvertFromUtf8Filename
    - assert
    - memset
    - osCreateFileA
    - sqlite3Strlen30
    - winRetryIoerr
    - sqlite3_free
    - sqlite3ErrName
    linkageType: ''
    returnType: int
    signature: "int winOpen(\n  sqlite3_vfs *pVfs,        /* Used to get maximum path
      length and AppData */\n  const char *zName,        /* Name of the file (UTF-8)
      */\n  sqlite3_file *id,         /* Write the SQLite file handle here */\n  int
      flags,                /* Open mode flags */\n  int *pOutFlags            /*
      Status return flags */\n)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:45957,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:45958,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:45961,1
    - Dst: winConvertFromUtf8Filename
      Src: /src/nss/lib/sqlite/sqlite3.c:45963,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:45965,1
    - Dst: osIsNT
      Src: /src/nss/lib/sqlite/sqlite3.c:45968,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:45972,1
    - Dst: osGetFileAttributesExW
      Src: /src/nss/lib/sqlite/sqlite3.c:45973,1
    - Dst: osGetLastError
      Src: /src/nss/lib/sqlite/sqlite3.c:45977,1
    - Dst: osGetFileAttributesW
      Src: /src/nss/lib/sqlite/sqlite3.c:45987,1
    - Dst: osGetLastError
      Src: /src/nss/lib/sqlite/sqlite3.c:45990,1
    - Dst: osDeleteFileW
      Src: /src/nss/lib/sqlite/sqlite3.c:46003,1
    - Dst: winRetryIoerr
      Src: /src/nss/lib/sqlite/sqlite3.c:46007,1
    - Dst: osGetFileAttributesA
      Src: /src/nss/lib/sqlite/sqlite3.c:46016,1
    - Dst: osGetLastError
      Src: /src/nss/lib/sqlite/sqlite3.c:46018,1
    - Dst: if
      Src: /src/nss/lib/sqlite/sqlite3.c:46027,1
    - Dst: if
      Src: /src/nss/lib/sqlite/sqlite3.c:46035,1
    - Dst: winRetryIoerr
      Src: /src/nss/lib/sqlite/sqlite3.c:46035,1
    - Dst: winLogError
      Src: /src/nss/lib/sqlite/sqlite3.c:46043,1
    - Dst: winLogIoerr
      Src: /src/nss/lib/sqlite/sqlite3.c:46045,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:46047,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:46048,1
    - Dst: sqlite3ErrName
      Src: /src/nss/lib/sqlite/sqlite3.c:46048,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 57
    argCount: 3
    argNames:
    - pVfs
    - zFilename
    - syncDir
    argTypes:
    - sqlite3_vfs*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46050
      start: 45947
    functionDepth: 11
    functionLinenumber: 45947
    functionLinenumberEnd: 46050
    functionName: winDelete
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - osIsNT
    - osGetFileAttributesW
    - osGetFileAttributesA
    - winLogError
    - osGetLastError
    - UNUSED_PARAMETER
    - OSTRACE
    - osGetFileAttributesExW
    - winConvertFromUtf8Filename
    - memset
    - if
    - winRetryIoerr
    - osDeleteFileW
    - winLogIoerr
    - sqlite3_free
    - sqlite3ErrName
    linkageType: ''
    returnType: int
    signature: "int winDelete(\n  sqlite3_vfs *pVfs,          /* Not used on win32
      */\n  const char *zFilename,      /* Name of file to delete */\n  int syncDir
      \                /* Not used on win32 */\n)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:46065,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:46068,1
    - Dst: winConvertFromUtf8Filename
      Src: /src/nss/lib/sqlite/sqlite3.c:46071,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:46073,1
    - Dst: osIsNT
      Src: /src/nss/lib/sqlite/sqlite3.c:46076,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:46079,1
    - Dst: osGetFileAttributesExW
      Src: /src/nss/lib/sqlite/sqlite3.c:46080,1
    - Dst: winRetryIoerr
      Src: /src/nss/lib/sqlite/sqlite3.c:46082,1
    - Dst: winLogIoerr
      Src: /src/nss/lib/sqlite/sqlite3.c:46095,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:46097,1
    - Dst: winLogError
      Src: /src/nss/lib/sqlite/sqlite3.c:46098,1
    - Dst: osGetFileAttributesA
      Src: /src/nss/lib/sqlite/sqlite3.c:46107,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:46110,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:46121,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:46124,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 4
    argNames:
    - pVfs
    - zFilename
    - flags
    - pResOut
    argTypes:
    - sqlite3_vfs*
    - char*
    - int
    - int*
    assertStmts:
    - condition: (!"Invalid flags argument")
      pos:
        line_end: 46120
        line_start: 46120
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 46127
      start: 46055
    functionDepth: 11
    functionLinenumber: 46055
    functionLinenumberEnd: 46127
    functionName: winAccess
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - osIsNT
    - osGetFileAttributesA
    - winLogError
    - UNUSED_PARAMETER
    - OSTRACE
    - osGetFileAttributesExW
    - winConvertFromUtf8Filename
    - memset
    - assert
    - winRetryIoerr
    - winLogIoerr
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int winAccess(\n  sqlite3_vfs *pVfs,         /* Not used on win32
      */\n  const char *zFilename,     /* Name of file to check */\n  int flags,                 /*
      Type of test to make on this file */\n  int *pResOut               /* OUT: Result
      */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Isalpha
      Src: /src/nss/lib/sqlite/sqlite3.c:46136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - zPathname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46137
      start: 46133
    functionDepth: 1
    functionLinenumber: 46133
    functionLinenumberEnd: 46137
    functionName: winIsDriveLetterAndColon
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3Isalpha
    linkageType: ''
    returnType: BOOL
    signature: "BOOL winIsDriveLetterAndColon(\n  const char *zPathname\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: winIsDirSep
      Src: /src/nss/lib/sqlite/sqlite3.c:46155,1
    - Dst: winIsDriveLetterAndColon
      Src: /src/nss/lib/sqlite/sqlite3.c:46165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - zPathname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46174
      start: 46145
    functionDepth: 2
    functionLinenumber: 46145
    functionLinenumberEnd: 46174
    functionName: winIsVerbatimPathname
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - winIsDriveLetterAndColon
    - winIsDirSep
    linkageType: ''
    returnType: BOOL
    signature: "BOOL winIsVerbatimPathname(\n  const char *zPathname\n)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: winIsDriveLetterAndColon
      Src: /src/nss/lib/sqlite/sqlite3.c:46196,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:46202,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:46203,1
    - Dst: winIsVerbatimPathname
      Src: /src/nss/lib/sqlite/sqlite3.c:46204,1
    - Dst: sqlite3MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:46211,1
    - Dst: cygwin_conv_path
      Src: /src/nss/lib/sqlite/sqlite3.c:46215,1
    - Dst: osIsNT
      Src: /src/nss/lib/sqlite/sqlite3.c:46216,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:46218,1
    - Dst: winLogError
      Src: /src/nss/lib/sqlite/sqlite3.c:46219,1
    - Dst: winConvertToUtf8Filename
      Src: /src/nss/lib/sqlite/sqlite3.c:46222,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:46224,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:46227,1
    - Dst: MIN
      Src: /src/nss/lib/sqlite/sqlite3.c:46227,1
    - Dst: winGetDirSep
      Src: /src/nss/lib/sqlite/sqlite3.c:46228,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:46229,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:46230,1
    - Dst: sqlite3MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:46233,1
    - Dst: cygwin_conv_path
      Src: /src/nss/lib/sqlite/sqlite3.c:46237,1
    - Dst: osIsNT
      Src: /src/nss/lib/sqlite/sqlite3.c:46238,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:46240,1
    - Dst: winLogError
      Src: /src/nss/lib/sqlite/sqlite3.c:46241,1
    - Dst: winConvertToUtf8Filename
      Src: /src/nss/lib/sqlite/sqlite3.c:46244,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:46246,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:46249,1
    - Dst: MIN
      Src: /src/nss/lib/sqlite/sqlite3.c:46249,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:46250,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:46251,1
    - Dst: winIsVerbatimPathname
      Src: /src/nss/lib/sqlite/sqlite3.c:46261,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:46268,1
    - Dst: MIN
      Src: /src/nss/lib/sqlite/sqlite3.c:46268,1
    - Dst: winGetDirSep
      Src: /src/nss/lib/sqlite/sqlite3.c:46269,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:46271,1
    - Dst: MIN
      Src: /src/nss/lib/sqlite/sqlite3.c:46271,1
    - Dst: winIsVerbatimPathname
      Src: /src/nss/lib/sqlite/sqlite3.c:46283,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:46290,1
    - Dst: MIN
      Src: /src/nss/lib/sqlite/sqlite3.c:46290,1
    - Dst: winGetDirSep
      Src: /src/nss/lib/sqlite/sqlite3.c:46291,1
    - Dst: winConvertFromUtf8Filename
      Src: /src/nss/lib/sqlite/sqlite3.c:46294,1
    - Dst: osIsNT
      Src: /src/nss/lib/sqlite/sqlite3.c:46298,1
    - Dst: osGetFullPathNameW
      Src: /src/nss/lib/sqlite/sqlite3.c:46300,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:46302,1
    - Dst: winLogError
      Src: /src/nss/lib/sqlite/sqlite3.c:46303,1
    - Dst: osGetLastError
      Src: /src/nss/lib/sqlite/sqlite3.c:46303,1
    - Dst: sqlite3MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:46307,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:46309,1
    - Dst: osGetFullPathNameW
      Src: /src/nss/lib/sqlite/sqlite3.c:46312,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:46314,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:46315,1
    - Dst: winLogError
      Src: /src/nss/lib/sqlite/sqlite3.c:46316,1
    - Dst: osGetLastError
      Src: /src/nss/lib/sqlite/sqlite3.c:46316,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:46319,1
    - Dst: winUnicodeToUtf8
      Src: /src/nss/lib/sqlite/sqlite3.c:46320,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:46321,1
    - Dst: osGetFullPathNameA
      Src: /src/nss/lib/sqlite/sqlite3.c:46326,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:46328,1
    - Dst: winLogError
      Src: /src/nss/lib/sqlite/sqlite3.c:46329,1
    - Dst: osGetLastError
      Src: /src/nss/lib/sqlite/sqlite3.c:46329,1
    - Dst: sqlite3MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:46333,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:46335,1
    - Dst: osGetFullPathNameA
      Src: /src/nss/lib/sqlite/sqlite3.c:46338,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:46340,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:46341,1
    - Dst: winLogError
      Src: /src/nss/lib/sqlite/sqlite3.c:46342,1
    - Dst: osGetLastError
      Src: /src/nss/lib/sqlite/sqlite3.c:46342,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:46345,1
    - Dst: winMbcsToUtf8
      Src: /src/nss/lib/sqlite/sqlite3.c:46346,1
    - Dst: osAreFileApisANSI
      Src: /src/nss/lib/sqlite/sqlite3.c:46346,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:46347,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:46351,1
    - Dst: MIN
      Src: /src/nss/lib/sqlite/sqlite3.c:46351,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:46352,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 106
    argCount: 4
    argNames:
    - pVfs
    - zRelative
    - nFull
    - zFull
    argTypes:
    - sqlite3_vfs*
    - char*
    - int
    - char*
    assertStmts:
    - condition: ( nFull>=pVfs->mxPathname )
      pos:
        line_end: 46202
        line_start: 46202
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 46358
      start: 46181
    functionDepth: 10
    functionLinenumber: 46181
    functionLinenumberEnd: 46358
    functionName: winFullPathname
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - osIsNT
    - osGetLastError
    - UNUSED_PARAMETER
    - sqlite3MallocZero
    - winConvertToUtf8Filename
    - winIsVerbatimPathname
    - assert
    - winUnicodeToUtf8
    - sqlite3_snprintf
    - cygwin_conv_path
    - winConvertFromUtf8Filename
    - osGetFullPathNameW
    - winMbcsToUtf8
    - sqlite3_free
    - winLogError
    - osGetFullPathNameA
    - osAreFileApisANSI
    - winIsDriveLetterAndColon
    - winGetDirSep
    - MIN
    linkageType: ''
    returnType: int
    signature: "int winFullPathname(\n  sqlite3_vfs *pVfs,            /* Pointer to
      vfs object */\n  const char *zRelative,        /* Possibly relative input path
      */\n  int nFull,                    /* Size of output buffer in bytes */\n  char
      *zFull                   /* Output buffer */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:46369,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:46372,1
    - Dst: winFullPathname
      Src: /src/nss/lib/sqlite/sqlite3.c:46375,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:46376,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:46377,1
    - Dst: winConvertFromUtf8Filename
      Src: /src/nss/lib/sqlite/sqlite3.c:46380,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:46381,1
    - Dst: winConvertFromUtf8Filename
      Src: /src/nss/lib/sqlite/sqlite3.c:46383,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:46384,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:46387,1
    - Dst: osIsNT
      Src: /src/nss/lib/sqlite/sqlite3.c:46390,1
    - Dst: osLoadPackagedLibrary
      Src: /src/nss/lib/sqlite/sqlite3.c:46392,1
    - Dst: osLoadLibraryW
      Src: /src/nss/lib/sqlite/sqlite3.c:46394,1
    - Dst: osLoadLibraryA
      Src: /src/nss/lib/sqlite/sqlite3.c:46399,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:46402,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:46403,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - pVfs
    - zFilename
    argTypes:
    - sqlite3_vfs*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46405
      start: 46365
    functionDepth: 11
    functionLinenumber: 46365
    functionLinenumberEnd: 46405
    functionName: winDlOpen
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - osIsNT
    - osLoadLibraryA
    - osLoadPackagedLibrary
    - UNUSED_PARAMETER
    - OSTRACE
    - winConvertFromUtf8Filename
    - winFullPathname
    - osLoadLibraryW
    - sqlite3MallocZero
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void *winDlOpen(sqlite3_vfs *pVfs, const char *zFilename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:46407,1
    - Dst: winGetLastErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:46408,1
    - Dst: osGetLastError
      Src: /src/nss/lib/sqlite/sqlite3.c:46408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - pVfs
    - nBuf
    - zBufOut
    argTypes:
    - sqlite3_vfs*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46409
      start: 46406
    functionDepth: 11
    functionLinenumber: 46406
    functionLinenumberEnd: 46409
    functionName: winDlError
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - winGetLastErrorMsg
    - osGetLastError
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: void
    signature: void winDlError(sqlite3_vfs *pVfs, int nBuf, char *zBufOut)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:46412,1
    - Dst: osGetProcAddressA
      Src: /src/nss/lib/sqlite/sqlite3.c:46413,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:46414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46417
      start: 46410
    functionDepth: 1
    functionLinenumber: 46410
    functionLinenumberEnd: 46417
    functionName: (*winDlSym(sqlite3_vfs *pVfs,void *pH,const char *zSym))(void)
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    - OSTRACE
    - osGetProcAddressA
    linkageType: ''
    returnType: void
    signature: void (*winDlSym(sqlite3_vfs *pVfs,void *pH,const char *zSym))(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:46419,1
    - Dst: osFreeLibrary
      Src: /src/nss/lib/sqlite/sqlite3.c:46420,1
    - Dst: OSTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:46421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pVfs
    - pHandle
    argTypes:
    - sqlite3_vfs*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46422
      start: 46418
    functionDepth: 1
    functionLinenumber: 46418
    functionLinenumberEnd: 46422
    functionName: winDlClose
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - OSTRACE
    - UNUSED_PARAMETER
    - osFreeLibrary
    linkageType: ''
    returnType: void
    signature: void winDlClose(sqlite3_vfs *pVfs, void *pHandle)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - p
    - x
    - sz
    argTypes:
    - EntropyGatherer*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46449
      start: 46441
    functionDepth: 0
    functionLinenumber: 46441
    functionLinenumberEnd: 46449
    functionName: xorMemory
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void xorMemory(EntropyGatherer *p, unsigned char *x, int sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:46457,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:46458,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:46462,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:46463,1
    - Dst: osGetSystemTime
      Src: /src/nss/lib/sqlite/sqlite3.c:46470,1
    - Dst: xorMemory
      Src: /src/nss/lib/sqlite/sqlite3.c:46471,1
    - Dst: osGetCurrentProcessId
      Src: /src/nss/lib/sqlite/sqlite3.c:46474,1
    - Dst: xorMemory
      Src: /src/nss/lib/sqlite/sqlite3.c:46475,1
    - Dst: osGetTickCount64
      Src: /src/nss/lib/sqlite/sqlite3.c:46479,1
    - Dst: xorMemory
      Src: /src/nss/lib/sqlite/sqlite3.c:46480,1
    - Dst: osGetTickCount
      Src: /src/nss/lib/sqlite/sqlite3.c:46484,1
    - Dst: xorMemory
      Src: /src/nss/lib/sqlite/sqlite3.c:46485,1
    - Dst: osQueryPerformanceCounter
      Src: /src/nss/lib/sqlite/sqlite3.c:46490,1
    - Dst: xorMemory
      Src: /src/nss/lib/sqlite/sqlite3.c:46491,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:46496,1
    - Dst: osUuidCreate
      Src: /src/nss/lib/sqlite/sqlite3.c:46497,1
    - Dst: xorMemory
      Src: /src/nss/lib/sqlite/sqlite3.c:46498,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:46499,1
    - Dst: osUuidCreateSequential
      Src: /src/nss/lib/sqlite/sqlite3.c:46500,1
    - Dst: xorMemory
      Src: /src/nss/lib/sqlite/sqlite3.c:46501,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 3
    argNames:
    - pVfs
    - nBuf
    - zBuf
    argTypes:
    - sqlite3_vfs*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46506
      start: 46455
    functionDepth: 1
    functionLinenumber: 46455
    functionLinenumberEnd: 46506
    functionName: winRandomness
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - osUuidCreate
    - xorMemory
    - osGetTickCount64
    - osUuidCreateSequential
    - osGetCurrentProcessId
    - osGetTickCount
    - UNUSED_PARAMETER
    - osQueryPerformanceCounter
    - memset
    - osGetSystemTime
    linkageType: ''
    returnType: int
    signature: int winRandomness(sqlite3_vfs *pVfs, int nBuf, char *zBuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_win32_sleep
      Src: /src/nss/lib/sqlite/sqlite3.c:46513,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:46514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pVfs
    - microsec
    argTypes:
    - sqlite3_vfs*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46516
      start: 46512
    functionDepth: 1
    functionLinenumber: 46512
    functionLinenumberEnd: 46516
    functionName: winSleep
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_win32_sleep
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: int
    signature: int winSleep(sqlite3_vfs *pVfs, int microsec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: osGetSystemTime
      Src: /src/nss/lib/sqlite/sqlite3.c:46553,1
    - Dst: osSystemTimeToFileTime
      Src: /src/nss/lib/sqlite/sqlite3.c:46555,1
    - Dst: osGetSystemTimeAsFileTime
      Src: /src/nss/lib/sqlite/sqlite3.c:46559,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:46571,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - pVfs
    - piNow
    argTypes:
    - sqlite3_vfs*
    - sqlite3_int64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46573
      start: 46537
    functionDepth: 1
    functionLinenumber: 46537
    functionLinenumberEnd: 46573
    functionName: winCurrentTimeInt64
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - osGetSystemTime
    - osGetSystemTimeAsFileTime
    - UNUSED_PARAMETER
    - osSystemTimeToFileTime
    linkageType: ''
    returnType: int
    signature: int winCurrentTimeInt64(sqlite3_vfs *pVfs, sqlite3_int64 *piNow)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: winCurrentTimeInt64
      Src: /src/nss/lib/sqlite/sqlite3.c:46583,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pVfs
    - prNow
    argTypes:
    - sqlite3_vfs*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46588
      start: 46580
    functionDepth: 2
    functionLinenumber: 46580
    functionLinenumberEnd: 46588
    functionName: winCurrentTime
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - winCurrentTimeInt64
    linkageType: ''
    returnType: int
    signature: int winCurrentTime(sqlite3_vfs *pVfs, double *prNow)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: osGetLastError
      Src: /src/nss/lib/sqlite/sqlite3.c:46621,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:46622,1
    - Dst: winGetLastErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:46623,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - pVfs
    - nBuf
    - zBuf
    argTypes:
    - sqlite3_vfs*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46625
      start: 46620
    functionDepth: 11
    functionLinenumber: 46620
    functionLinenumberEnd: 46625
    functionName: winGetLastError
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - winGetLastErrorMsg
    - osGetLastError
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: int
    signature: int winGetLastError(sqlite3_vfs *pVfs, int nBuf, char *zBuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:46734,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:46734,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:46737,1
    - Dst: osGetNativeSystemInfo
      Src: /src/nss/lib/sqlite/sqlite3.c:46739,1
    - Dst: osGetSystemInfo
      Src: /src/nss/lib/sqlite/sqlite3.c:46741,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:46743,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:46744,1
    - Dst: sqlite3_vfs_register
      Src: /src/nss/lib/sqlite/sqlite3.c:46746,1
    - Dst: sqlite3_vfs_register
      Src: /src/nss/lib/sqlite/sqlite3.c:46749,1
    - Dst: sqlite3_vfs_register
      Src: /src/nss/lib/sqlite/sqlite3.c:46752,1
    - Dst: sqlite3_vfs_register
      Src: /src/nss/lib/sqlite/sqlite3.c:46755,1
    - Dst: sqlite3MutexAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:46759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( ArraySize(aSyscall)==80 )
      pos:
        line_end: 46733
        line_start: 46733
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( winSysInfo.dwAllocationGranularity>0 )
      pos:
        line_end: 46742
        line_start: 46742
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( winSysInfo.dwPageSize>0 )
      pos:
        line_end: 46743
        line_start: 46743
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 46763
      start: 46630
    functionDepth: 3
    functionLinenumber: 46630
    functionLinenumberEnd: 46763
    functionName: sqlite3_os_init
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - osGetSystemInfo
    - ArraySize
    - osGetNativeSystemInfo
    - sqlite3_vfs_register
    - assert
    - memset
    - sqlite3MutexAlloc
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_os_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: osCloseHandle
      Src: /src/nss/lib/sqlite/sqlite3.c:46768,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46778
      start: 46765
    functionDepth: 0
    functionLinenumber: 46765
    functionLinenumberEnd: 46778
    functionName: sqlite3_os_end
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - osCloseHandle
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_os_end(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46815
      start: 46814
    functionDepth: 0
    functionLinenumber: 46814
    functionLinenumberEnd: 46815
    functionName: ORIGVFS
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ORIGVFS(p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:46916,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pFile
    argTypes:
    - sqlite3_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46918
      start: 46914
    functionDepth: 3
    functionLinenumber: 46914
    functionLinenumberEnd: 46918
    functionName: memdbClose
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int memdbClose(sqlite3_file *pFile)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:46931,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:46932,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:46935,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - pFile
    - zBuf
    - iAmt
    - iOfst
    argTypes:
    - sqlite3_file*
    - void*
    - int
    - sqlite_int64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46937
      start: 46923
    functionDepth: 1
    functionLinenumber: 46923
    functionLinenumberEnd: 46937
    functionName: memdbRead
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int memdbRead(\n  sqlite3_file *pFile, \n  void *zBuf, \n  int iAmt,
      \n  sqlite_int64 iOfst\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_realloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:46952,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - p
    - newSz
    argTypes:
    - MemFile*
    - sqlite3_int64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46957
      start: 46942
    functionDepth: 7
    functionLinenumber: 46942
    functionLinenumberEnd: 46957
    functionName: memdbEnlarge
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_realloc64
    linkageType: ''
    returnType: int
    signature: int memdbEnlarge(MemFile *p, sqlite3_int64 newSz)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NEVER
      Src: /src/nss/lib/sqlite/sqlite3.c:46969,1
    - Dst: memdbEnlarge
      Src: /src/nss/lib/sqlite/sqlite3.c:46973,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:46977,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:46980,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - pFile
    - z
    - iAmt
    - iOfst
    argTypes:
    - sqlite3_file*
    - void*
    - int
    - sqlite_int64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46982
      start: 46962
    functionDepth: 8
    functionLinenumber: 46962
    functionLinenumberEnd: 46982
    functionName: memdbWrite
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - NEVER
    - memcpy
    - memdbEnlarge
    - memset
    linkageType: ''
    returnType: int
    signature: "int memdbWrite(\n  sqlite3_file *pFile,\n  const void *z,\n  int iAmt,\n
      \ sqlite_int64 iOfst\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NEVER
      Src: /src/nss/lib/sqlite/sqlite3.c:46993,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pFile
    - size
    argTypes:
    - sqlite3_file*
    - sqlite_int64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46996
      start: 46991
    functionDepth: 1
    functionLinenumber: 46991
    functionLinenumberEnd: 46996
    functionName: memdbTruncate
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - NEVER
    linkageType: ''
    returnType: int
    signature: int memdbTruncate(sqlite3_file *pFile, sqlite_int64 size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pFile
    - flags
    argTypes:
    - sqlite3_file*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47003
      start: 47001
    functionDepth: 0
    functionLinenumber: 47001
    functionLinenumberEnd: 47003
    functionName: memdbSync
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int memdbSync(sqlite3_file *pFile, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pFile
    - pSize
    argTypes:
    - sqlite3_file*
    - sqlite_int64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47012
      start: 47008
    functionDepth: 0
    functionLinenumber: 47008
    functionLinenumberEnd: 47012
    functionName: memdbFileSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int memdbFileSize(sqlite3_file *pFile, sqlite_int64 *pSize)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - pFile
    - eLock
    argTypes:
    - sqlite3_file*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47026
      start: 47017
    functionDepth: 0
    functionLinenumber: 47017
    functionLinenumberEnd: 47026
    functionName: memdbLock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int memdbLock(sqlite3_file *pFile, int eLock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pFile
    - pResOut
    argTypes:
    - sqlite3_file*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47035
      start: 47032
    functionDepth: 0
    functionLinenumber: 47032
    functionLinenumberEnd: 47035
    functionName: memdbCheckReservedLock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int memdbCheckReservedLock(sqlite3_file *pFile, int *pResOut)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:47045,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - pFile
    - op
    - pArg
    argTypes:
    - sqlite3_file*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47062
      start: 47041
    functionDepth: 10
    functionLinenumber: 47041
    functionLinenumberEnd: 47062
    functionName: memdbFileControl
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mprintf
    linkageType: ''
    returnType: int
    signature: int memdbFileControl(sqlite3_file *pFile, int op, void *pArg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pFile
    argTypes:
    - sqlite3_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47070
      start: 47068
    functionDepth: 0
    functionLinenumber: 47068
    functionLinenumberEnd: 47070
    functionName: memdbSectorSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int memdbSectorSize(sqlite3_file *pFile)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pFile
    argTypes:
    - sqlite3_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47081
      start: 47076
    functionDepth: 0
    functionLinenumber: 47076
    functionLinenumberEnd: 47081
    functionName: memdbDeviceCharacteristics
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int memdbDeviceCharacteristics(sqlite3_file *pFile)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - pFile
    - iOfst
    - iAmt
    - pp
    argTypes:
    - sqlite3_file*
    - sqlite3_int64
    - int
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47098
      start: 47084
    functionDepth: 0
    functionLinenumber: 47084
    functionLinenumberEnd: 47098
    functionName: memdbFetch
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int memdbFetch(\n  sqlite3_file *pFile,\n  sqlite3_int64 iOfst,\n
      \ int iAmt,\n  void **pp\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - pFile
    - iOfst
    - pPage
    argTypes:
    - sqlite3_file*
    - sqlite3_int64
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47105
      start: 47101
    functionDepth: 0
    functionLinenumber: 47101
    functionLinenumberEnd: 47105
    functionName: memdbUnfetch
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int memdbUnfetch(sqlite3_file *pFile, sqlite3_int64 iOfst, void *pPage)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ORIGVFS
      Src: /src/nss/lib/sqlite/sqlite3.c:47119,1
    - Dst: ORIGVFS
      Src: /src/nss/lib/sqlite/sqlite3.c:47119,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:47121,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:47123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - pVfs
    - zName
    - pFile
    - flags
    - pOutFlags
    argTypes:
    - sqlite3_vfs*
    - char*
    - sqlite3_file*
    - int
    - int*
    assertStmts:
    - condition: ( pOutFlags!=0 )
      pos:
        line_end: 47122
        line_start: 47122
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 47128
      start: 47110
    functionDepth: 1
    functionLinenumber: 47110
    functionLinenumberEnd: 47128
    functionName: memdbOpen
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - ORIGVFS
    - assert
    linkageType: ''
    returnType: int
    signature: "int memdbOpen(\n  sqlite3_vfs *pVfs,\n  const char *zName,\n  sqlite3_file
      *pFile,\n  int flags,\n  int *pOutFlags\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pVfs
    - zPath
    - dirSync
    argTypes:
    - sqlite3_vfs*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47139
      start: 47137
    functionDepth: 0
    functionLinenumber: 47137
    functionLinenumberEnd: 47139
    functionName: memdbDelete
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int memdbDelete(sqlite3_vfs *pVfs, const char *zPath, int dirSync)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - pVfs
    - zPath
    - flags
    - pResOut
    argTypes:
    - sqlite3_vfs*
    - char*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47156
      start: 47148
    functionDepth: 0
    functionLinenumber: 47148
    functionLinenumberEnd: 47156
    functionName: memdbAccess
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int memdbAccess(\n  sqlite3_vfs *pVfs, \n  const char *zPath, \n  int
      flags, \n  int *pResOut\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:47169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - pVfs
    - zPath
    - nOut
    - zOut
    argTypes:
    - sqlite3_vfs*
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47171
      start: 47163
    functionDepth: 10
    functionLinenumber: 47163
    functionLinenumberEnd: 47171
    functionName: memdbFullPathname
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_snprintf
    linkageType: ''
    returnType: int
    signature: "int memdbFullPathname(\n  sqlite3_vfs *pVfs, \n  const char *zPath,
      \n  int nOut, \n  char *zOut\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ORIGVFS
      Src: /src/nss/lib/sqlite/sqlite3.c:47177,1
    - Dst: ORIGVFS
      Src: /src/nss/lib/sqlite/sqlite3.c:47177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pVfs
    - zPath
    argTypes:
    - sqlite3_vfs*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47178
      start: 47176
    functionDepth: 1
    functionLinenumber: 47176
    functionLinenumberEnd: 47178
    functionName: memdbDlOpen
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ORIGVFS
    linkageType: ''
    returnType: void
    signature: void *memdbDlOpen(sqlite3_vfs *pVfs, const char *zPath)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ORIGVFS
      Src: /src/nss/lib/sqlite/sqlite3.c:47186,1
    - Dst: ORIGVFS
      Src: /src/nss/lib/sqlite/sqlite3.c:47186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pVfs
    - nByte
    - zErrMsg
    argTypes:
    - sqlite3_vfs*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47187
      start: 47185
    functionDepth: 1
    functionLinenumber: 47185
    functionLinenumberEnd: 47187
    functionName: memdbDlError
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ORIGVFS
    linkageType: ''
    returnType: void
    signature: void memdbDlError(sqlite3_vfs *pVfs, int nByte, char *zErrMsg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ORIGVFS
      Src: /src/nss/lib/sqlite/sqlite3.c:47193,1
    - Dst: ORIGVFS
      Src: /src/nss/lib/sqlite/sqlite3.c:47193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47194
      start: 47192
    functionDepth: 1
    functionLinenumber: 47192
    functionLinenumberEnd: 47194
    functionName: (*memdbDlSym(sqlite3_vfs *pVfs, void *p, const char *zSym))(void)
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ORIGVFS
    linkageType: ''
    returnType: void
    signature: void (*memdbDlSym(sqlite3_vfs *pVfs, void *p, const char *zSym))(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ORIGVFS
      Src: /src/nss/lib/sqlite/sqlite3.c:47200,1
    - Dst: ORIGVFS
      Src: /src/nss/lib/sqlite/sqlite3.c:47200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pVfs
    - pHandle
    argTypes:
    - sqlite3_vfs*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47201
      start: 47199
    functionDepth: 1
    functionLinenumber: 47199
    functionLinenumberEnd: 47201
    functionName: memdbDlClose
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ORIGVFS
    linkageType: ''
    returnType: void
    signature: void memdbDlClose(sqlite3_vfs *pVfs, void *pHandle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ORIGVFS
      Src: /src/nss/lib/sqlite/sqlite3.c:47208,1
    - Dst: ORIGVFS
      Src: /src/nss/lib/sqlite/sqlite3.c:47208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pVfs
    - nByte
    - zBufOut
    argTypes:
    - sqlite3_vfs*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47209
      start: 47207
    functionDepth: 1
    functionLinenumber: 47207
    functionLinenumberEnd: 47209
    functionName: memdbRandomness
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ORIGVFS
    linkageType: ''
    returnType: int
    signature: int memdbRandomness(sqlite3_vfs *pVfs, int nByte, char *zBufOut)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ORIGVFS
      Src: /src/nss/lib/sqlite/sqlite3.c:47216,1
    - Dst: ORIGVFS
      Src: /src/nss/lib/sqlite/sqlite3.c:47216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pVfs
    - nMicro
    argTypes:
    - sqlite3_vfs*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47217
      start: 47215
    functionDepth: 1
    functionLinenumber: 47215
    functionLinenumberEnd: 47217
    functionName: memdbSleep
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ORIGVFS
    linkageType: ''
    returnType: int
    signature: int memdbSleep(sqlite3_vfs *pVfs, int nMicro)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ORIGVFS
      Src: /src/nss/lib/sqlite/sqlite3.c:47224,1
    - Dst: ORIGVFS
      Src: /src/nss/lib/sqlite/sqlite3.c:47224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pVfs
    - pTimeOut
    argTypes:
    - sqlite3_vfs*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47225
      start: 47223
    functionDepth: 1
    functionLinenumber: 47223
    functionLinenumberEnd: 47225
    functionName: memdbCurrentTime
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ORIGVFS
    linkageType: ''
    returnType: int
    signature: int memdbCurrentTime(sqlite3_vfs *pVfs, double *pTimeOut)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ORIGVFS
      Src: /src/nss/lib/sqlite/sqlite3.c:47229,1
    - Dst: ORIGVFS
      Src: /src/nss/lib/sqlite/sqlite3.c:47229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pVfs
    - a
    - b
    argTypes:
    - sqlite3_vfs*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47230
      start: 47228
    functionDepth: 1
    functionLinenumber: 47228
    functionLinenumberEnd: 47230
    functionName: memdbGetLastError
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ORIGVFS
    linkageType: ''
    returnType: int
    signature: int memdbGetLastError(sqlite3_vfs *pVfs, int a, char *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ORIGVFS
      Src: /src/nss/lib/sqlite/sqlite3.c:47232,1
    - Dst: ORIGVFS
      Src: /src/nss/lib/sqlite/sqlite3.c:47232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pVfs
    - p
    argTypes:
    - sqlite3_vfs*
    - sqlite3_int64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47233
      start: 47231
    functionDepth: 1
    functionLinenumber: 47231
    functionLinenumberEnd: 47233
    functionName: memdbCurrentTimeInt64
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ORIGVFS
    linkageType: ''
    returnType: int
    signature: int memdbCurrentTimeInt64(sqlite3_vfs *pVfs, sqlite3_int64 *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_file_control
      Src: /src/nss/lib/sqlite/sqlite3.c:47241,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - db
    - zSchema
    argTypes:
    - sqlite3*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47245
      start: 47239
    functionDepth: 1
    functionLinenumber: 47239
    functionLinenumberEnd: 47245
    functionName: memdbFromDbSchema
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_file_control
    linkageType: ''
    returnType: MemFile
    signature: MemFile *memdbFromDbSchema(sqlite3 *db, const char *zSchema)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/nss/lib/sqlite/sqlite3.c:47267,1
    - Dst: memdbFromDbSchema
      Src: /src/nss/lib/sqlite/sqlite3.c:47274,1
    - Dst: sqlite3FindDbName
      Src: /src/nss/lib/sqlite/sqlite3.c:47275,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:47283,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:47284,1
    - Dst: sqlite3BtreeGetPageSize
      Src: /src/nss/lib/sqlite/sqlite3.c:47290,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:47291,1
    - Dst: sqlite3_prepare_v2
      Src: /src/nss/lib/sqlite/sqlite3.c:47292,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:47293,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:47295,1
    - Dst: sqlite3_column_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:47299,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:47304,1
    - Dst: sqlite3_column_int
      Src: /src/nss/lib/sqlite/sqlite3.c:47306,1
    - Dst: sqlite3BtreePager
      Src: /src/nss/lib/sqlite/sqlite3.c:47307,1
    - Dst: sqlite3PagerGet
      Src: /src/nss/lib/sqlite/sqlite3.c:47312,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:47314,1
    - Dst: sqlite3PagerGetData
      Src: /src/nss/lib/sqlite/sqlite3.c:47314,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:47316,1
    - Dst: sqlite3PagerUnref
      Src: /src/nss/lib/sqlite/sqlite3.c:47318,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:47323,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 60
    argCount: 4
    argNames:
    - db
    - zSchema
    - piSize
    - mFlags
    argTypes:
    - sqlite3*
    - char*
    - sqlite3_int64*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47325
      start: 47250
    functionDepth: 12
    functionLinenumber: 47250
    functionLinenumberEnd: 47325
    functionName: sqlite3_serialize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PagerUnref
    - memdbFromDbSchema
    - memcpy
    - sqlite3FindDbName
    - sqlite3_malloc64
    - sqlite3_step
    - sqlite3SafetyCheckOk
    - sqlite3PagerGetData
    - sqlite3BtreeGetPageSize
    - sqlite3_column_int64
    - sqlite3_mprintf
    - sqlite3_prepare_v2
    - sqlite3BtreePager
    - sqlite3PagerGet
    - memset
    - sqlite3_finalize
    - sqlite3_free
    - sqlite3_column_int
    linkageType: ''
    returnType: SQLITE_API unsigned
    signature: "SQLITE_API unsigned *sqlite3_serialize(\n  sqlite3 *db,              /*
      The database connection */\n  const char *zSchema,      /* Which database within
      the connection */\n  sqlite3_int64 *piSize,    /* Write size here, if not NULL
      */\n  unsigned int mFlags       /* Maybe SQLITE_SERIALIZE_NOCOPY */\n)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/nss/lib/sqlite/sqlite3.c:47344,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:47351,1
    - Dst: sqlite3FindDbName
      Src: /src/nss/lib/sqlite/sqlite3.c:47353,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:47358,1
    - Dst: sqlite3_prepare_v2
      Src: /src/nss/lib/sqlite/sqlite3.c:47359,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:47360,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:47364,1
    - Dst: memdbFromDbSchema
      Src: /src/nss/lib/sqlite/sqlite3.c:47370,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:47386,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:47387,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 51
    argCount: 6
    argNames:
    - db
    - zSchema
    - pData
    - szDb
    - szBuf
    - mFlags
    argTypes:
    - sqlite3*
    - char*
    - unsigned char*
    - sqlite3_int64
    - sqlite3_int64
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47389
      start: 47329
    functionDepth: 12
    functionLinenumber: 47329
    functionLinenumberEnd: 47389
    functionName: sqlite3_deserialize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - memdbFromDbSchema
    - sqlite3FindDbName
    - sqlite3_step
    - sqlite3SafetyCheckOk
    - sqlite3_mutex_leave
    - sqlite3_mprintf
    - sqlite3_prepare_v2
    - sqlite3_finalize
    - sqlite3_free
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_deserialize(\n  sqlite3 *db,            /* The
      database connection */\n  const char *zSchema,    /* Which DB to reopen with
      the deserialization */\n  unsigned char *pData,   /* The serialized database
      content */\n  sqlite3_int64 szDb,     /* Number bytes in the deserialization
      */\n  sqlite3_int64 szBuf,    /* Total size of buffer pData[] */\n  unsigned
      mFlags         /* Zero or more SQLITE_DESERIALIZE_* flags */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_vfs_find
      Src: /src/nss/lib/sqlite/sqlite3.c:47396,1
    - Dst: NEVER
      Src: /src/nss/lib/sqlite/sqlite3.c:47402,1
    - Dst: sqlite3_vfs_register
      Src: /src/nss/lib/sqlite/sqlite3.c:47404,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47405
      start: 47395
    functionDepth: 3
    functionLinenumber: 47395
    functionLinenumberEnd: 47405
    functionName: sqlite3MemdbInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - NEVER
    - sqlite3_vfs_find
    - sqlite3_vfs_register
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3MemdbInit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47478
      start: 47477
    functionDepth: 0
    functionLinenumber: 47477
    functionLinenumberEnd: 47478
    functionName: BITVEC_HASH
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BITVEC_HASH(X)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:47526,1
    - Dst: sqlite3MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:47527,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - iSize
    argTypes:
    - u32
    assertStmts:
    - condition: ( sizeof(*p)==BITVEC_SZ )
      pos:
        line_end: 47525
        line_start: 47525
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 47532
      start: 47524
    functionDepth: 6
    functionLinenumber: 47524
    functionLinenumberEnd: 47532
    functionName: sqlite3BitvecCreate
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3MallocZero
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3BitvecCreate(u32 iSize)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:47540,1
    - Dst: BITVEC_HASH
      Src: /src/nss/lib/sqlite/sqlite3.c:47554,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - p
    - i
    argTypes:
    - Bitvec*
    - u32
    assertStmts:
    - condition: ( p!=0 )
      pos:
        line_end: 47539
        line_start: 47539
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 47561
      start: 47539
    functionDepth: 1
    functionLinenumber: 47539
    functionLinenumberEnd: 47561
    functionName: sqlite3BitvecTestNotNull
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - BITVEC_HASH
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BitvecTestNotNull(Bitvec *p, u32 i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BitvecTestNotNull
      Src: /src/nss/lib/sqlite/sqlite3.c:47563,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - p
    - i
    argTypes:
    - Bitvec*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47564
      start: 47562
    functionDepth: 2
    functionLinenumber: 47562
    functionLinenumberEnd: 47564
    functionName: sqlite3BitvecTest
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BitvecTestNotNull
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BitvecTest(Bitvec *p, u32 i)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:47581,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:47582,1
    - Dst: sqlite3BitvecCreate
      Src: /src/nss/lib/sqlite/sqlite3.c:47588,1
    - Dst: BITVEC_HASH
      Src: /src/nss/lib/sqlite/sqlite3.c:47597,1
    - Dst: sqlite3StackAllocRaw
      Src: /src/nss/lib/sqlite/sqlite3.c:47622,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:47626,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:47627,1
    - Dst: sqlite3BitvecSet
      Src: /src/nss/lib/sqlite/sqlite3.c:47629,1
    - Dst: sqlite3BitvecSet
      Src: /src/nss/lib/sqlite/sqlite3.c:47631,1
    - Dst: sqlite3StackFree
      Src: /src/nss/lib/sqlite/sqlite3.c:47633,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 59
    argCount: 2
    argNames:
    - p
    - i
    argTypes:
    - Bitvec*
    - u32
    assertStmts:
    - condition: ( i>0 )
      pos:
        line_end: 47580
        line_start: 47580
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( i<=p->iSize )
      pos:
        line_end: 47581
        line_start: 47581
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 47641
      start: 47578
    functionDepth: 7
    functionLinenumber: 47578
    functionLinenumberEnd: 47641
    functionName: sqlite3BitvecSet
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - memcpy
    - BITVEC_HASH
    - sqlite3BitvecCreate
    - sqlite3StackAllocRaw
    - sqlite3BitvecSet
    - sqlite3StackFree
    - assert
    - memset
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BitvecSet(Bitvec *p, u32 i)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:47651,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:47666,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:47667,1
    - Dst: BITVEC_HASH
      Src: /src/nss/lib/sqlite/sqlite3.c:47671,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - p
    - i
    - pBuf
    argTypes:
    - Bitvec*
    - u32
    - void*
    assertStmts:
    - condition: ( i>0 )
      pos:
        line_end: 47650
        line_start: 47650
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 47681
      start: 47649
    functionDepth: 1
    functionLinenumber: 47649
    functionLinenumberEnd: 47681
    functionName: sqlite3BitvecClear
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - memcpy
    - BITVEC_HASH
    - memset
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BitvecClear(Bitvec *p, u32 i, void *pBuf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BitvecDestroy
      Src: /src/nss/lib/sqlite/sqlite3.c:47691,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:47694,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - Bitvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47695
      start: 47686
    functionDepth: 3
    functionLinenumber: 47686
    functionLinenumberEnd: 47695
    functionName: sqlite3BitvecDestroy
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3BitvecDestroy
    - sqlite3_free
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BitvecDestroy(Bitvec *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - Bitvec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47703
      start: 47701
    functionDepth: 0
    functionLinenumber: 47701
    functionLinenumberEnd: 47703
    functionName: sqlite3BitvecSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BitvecSize(Bitvec *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - V
    - ','
    - I
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47713
      start: 47712
    functionDepth: 0
    functionLinenumber: 47712
    functionLinenumberEnd: 47713
    functionName: SETBIT
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SETBIT(V,I)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - V
    - ','
    - I
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47714
      start: 47713
    functionDepth: 0
    functionLinenumber: 47713
    functionLinenumberEnd: 47714
    functionName: CLEARBIT
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CLEARBIT(V,I)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - V
    - ','
    - I
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47715
      start: 47714
    functionDepth: 0
    functionLinenumber: 47714
    functionLinenumberEnd: 47715
    functionName: TESTBIT
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TESTBIT(V,I)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BitvecCreate
      Src: /src/nss/lib/sqlite/sqlite3.c:47755,1
    - Dst: sqlite3MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:47756,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:47757,1
    - Dst: sqlite3BitvecSet
      Src: /src/nss/lib/sqlite/sqlite3.c:47761,1
    - Dst: sqlite3BitvecClear
      Src: /src/nss/lib/sqlite/sqlite3.c:47762,1
    - Dst: sqlite3_randomness
      Src: /src/nss/lib/sqlite/sqlite3.c:47780,1
    - Dst: SETBIT
      Src: /src/nss/lib/sqlite/sqlite3.c:47788,1
    - Dst: sqlite3BitvecSet
      Src: /src/nss/lib/sqlite/sqlite3.c:47790,1
    - Dst: CLEARBIT
      Src: /src/nss/lib/sqlite/sqlite3.c:47793,1
    - Dst: sqlite3BitvecClear
      Src: /src/nss/lib/sqlite/sqlite3.c:47794,1
    - Dst: sqlite3BitvecTest
      Src: /src/nss/lib/sqlite/sqlite3.c:47803,1
    - Dst: sqlite3BitvecTest
      Src: /src/nss/lib/sqlite/sqlite3.c:47803,1
    - Dst: sqlite3BitvecTest
      Src: /src/nss/lib/sqlite/sqlite3.c:47804,1
    - Dst: sqlite3BitvecSize
      Src: /src/nss/lib/sqlite/sqlite3.c:47805,1
    - Dst: TESTBIT
      Src: /src/nss/lib/sqlite/sqlite3.c:47807,1
    - Dst: sqlite3BitvecTest
      Src: /src/nss/lib/sqlite/sqlite3.c:47807,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:47815,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:47816,1
    - Dst: sqlite3BitvecDestroy
      Src: /src/nss/lib/sqlite/sqlite3.c:47817,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 57
    argCount: 2
    argNames:
    - sz
    - aOp
    argTypes:
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47819
      start: 47746
    functionDepth: 8
    functionLinenumber: 47746
    functionLinenumberEnd: 47819
    functionName: sqlite3BitvecBuiltinTest
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BitvecClear
    - TESTBIT
    - sqlite3_malloc64
    - sqlite3BitvecCreate
    - sqlite3BitvecDestroy
    - sqlite3BitvecSet
    - sqlite3_randomness
    - CLEARBIT
    - sqlite3BitvecTest
    - sqlite3MallocZero
    - SETBIT
    - sqlite3_free
    - sqlite3BitvecSize
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BitvecBuiltinTest(int sz, int *aOp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47892
      start: 47891
    functionDepth: 0
    functionLinenumber: 47891
    functionLinenumberEnd: 47892
    functionName: pcacheTrace
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pcacheTrace(X)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PcachePagecount
      Src: /src/nss/lib/sqlite/sqlite3.c:47901,1
    - Dst: pcache2::xFetch
      Src: /src/nss/lib/sqlite/sqlite3.c:47904,1
    - Dst: printf
      Src: /src/nss/lib/sqlite/sqlite3.c:47907,1
    - Dst: printf
      Src: /src/nss/lib/sqlite/sqlite3.c:47909,1
    - Dst: printf
      Src: /src/nss/lib/sqlite/sqlite3.c:47910,1
    - Dst: pcache2::xUnpin
      Src: /src/nss/lib/sqlite/sqlite3.c:47912,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - pCache
    argTypes:
    - PCache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47915
      start: 47892
    functionDepth: 1
    functionLinenumber: 47892
    functionLinenumberEnd: 47915
    functionName: pcacheDump
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - pcache2::xFetch
    - printf
    - sqlite3PcachePagecount
    - pcache2::xUnpin
    linkageType: ''
    returnType: void
    signature: void pcacheDump(PCache *pCache)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:47933,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:47934,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:47936,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:47938,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:47939,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:47940,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:47944,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - pPg
    argTypes:
    - PgHdr*
    assertStmts:
    - condition: ( pPg!=0 )
      pos:
        line_end: 47932
        line_start: 47932
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCache->pDirty!=pPg )
      pos:
        line_end: 47938
        line_start: 47938
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCache!=0 )
      pos:
        line_end: 47935
        line_start: 47935
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pPg->flags & PGHDR_DIRTY)==0 )
      pos:
        line_end: 47937
        line_start: 47937
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPg->pgno>0 || pPg->pPager==0 )
      pos:
        line_end: 47933
        line_start: 47933
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCache->pDirtyTail!=pPg )
      pos:
        line_end: 47939
        line_start: 47939
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPg->flags & PGHDR_DIRTY )
      pos:
        line_end: 47943
        line_start: 47943
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 47964
      start: 47931
    functionDepth: 0
    functionLinenumber: 47931
    functionLinenumberEnd: 47964
    functionName: sqlite3PcachePageSanity
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PcachePageSanity(PgHdr *pPg)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: pcacheTrace
      Src: /src/nss/lib/sqlite/sqlite3.c:47984,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:47988,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:47989,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:47999,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:48009,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:48011,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:48013,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:48022,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:48027,1
    - Dst: pcacheDump
      Src: /src/nss/lib/sqlite/sqlite3.c:48044,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 2
    argNames:
    - pPage
    - addRemove
    argTypes:
    - PgHdr*
    - u8
    assertStmts:
    - condition: ( pPage==p->pDirtyTail )
      pos:
        line_end: 47998
        line_start: 47998
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->pDirtyPrev || pPage==p->pDirty )
      pos:
        line_end: 47988
        line_start: 47988
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->pDirtyNext || pPage==p->pDirtyTail )
      pos:
        line_end: 47987
        line_start: 47987
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage==p->pDirty )
      pos:
        line_end: 48008
        line_start: 48008
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->bPurgeable || p->eCreate==2 )
      pos:
        line_end: 48010
        line_start: 48010
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->bPurgeable==0 || p->eCreate==1 )
      pos:
        line_end: 48012
        line_start: 48012
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->pDirtyNext->pDirtyPrev==0 )
      pos:
        line_end: 48021
        line_start: 48021
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->eCreate==2 )
      pos:
        line_end: 48026
        line_start: 48026
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 48045
      start: 47981
    functionDepth: 2
    functionLinenumber: 47981
    functionLinenumberEnd: 48045
    functionName: pcacheManageDirtyList
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - pcacheDump
    - pcacheTrace
    linkageType: ''
    returnType: void
    signature: void pcacheManageDirtyList(PgHdr *pPage, u8 addRemove)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcacheTrace
      Src: /src/nss/lib/sqlite/sqlite3.c:48053,1
    - Dst: pcache2::xUnpin
      Src: /src/nss/lib/sqlite/sqlite3.c:48054,1
    - Dst: pcacheDump
      Src: /src/nss/lib/sqlite/sqlite3.c:48055,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - PgHdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48057
      start: 48051
    functionDepth: 2
    functionLinenumber: 48051
    functionLinenumberEnd: 48057
    functionName: pcacheUnpin
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - pcacheDump
    - pcacheTrace
    - pcache2::xUnpin
    linkageType: ''
    returnType: void
    signature: void pcacheUnpin(PgHdr *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - PCache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48075
      start: 48063
    functionDepth: 0
    functionLinenumber: 48063
    functionLinenumberEnd: 48075
    functionName: numberOfCachePages
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int numberOfCachePages(PCache *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PCacheSetDefault
      Src: /src/nss/lib/sqlite/sqlite3.c:48087,1
    - Dst: pcache2::xInit
      Src: /src/nss/lib/sqlite/sqlite3.c:48089,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48090
      start: 48082
    functionDepth: 1
    functionLinenumber: 48082
    functionLinenumberEnd: 48090
    functionName: sqlite3PcacheInitialize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - pcache2::xInit
    - sqlite3PCacheSetDefault
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PcacheInitialize(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcache2::xShutdown
      Src: /src/nss/lib/sqlite/sqlite3.c:48094,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48096
      start: 48091
    functionDepth: 0
    functionLinenumber: 48091
    functionLinenumberEnd: 48096
    functionName: sqlite3PcacheShutdown
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - pcache2::xShutdown
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PcacheShutdown(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48101
      start: 48101
    functionDepth: 0
    functionLinenumber: 48101
    functionLinenumberEnd: 48101
    functionName: sqlite3PcacheSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PcacheSize(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:48123,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:48126,1
    - Dst: pcacheTrace
      Src: /src/nss/lib/sqlite/sqlite3.c:48133,1
    - Dst: sqlite3PcacheSetPageSize
      Src: /src/nss/lib/sqlite/sqlite3.c:48134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 5
    argNames:
    - szPage
    - szExtra
    - bPurgeable
    - pStress
    - p
    argTypes:
    - int
    - int
    - int
    - void*
    - PCache*
    assertStmts:
    - condition: ( szExtra>=8 )
      pos:
        line_end: 48125
        line_start: 48125
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 48135
      start: 48115
    functionDepth: 1
    functionLinenumber: 48115
    functionLinenumberEnd: 48135
    functionName: sqlite3PcacheOpen
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - assert
    - pcacheTrace
    - sqlite3PcacheSetPageSize
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3PcacheOpen(\n  int szPage,                  /*
      Size of every page */\n  int szExtra,                 /* Extra space associated
      with each page */\n  int bPurgeable,              /* True if pages are on backing
      store */\n  int (*xStress)(void*,PgHdr*),/* Call to try to make pages clean
      */\n  void *pStress,               /* Argument to xStress */\n  PCache *p                    /*
      Preallocated space for the PCache */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:48142,1
    - Dst: pcache2::xCreate
      Src: /src/nss/lib/sqlite/sqlite3.c:48145,1
    - Dst: ROUND8
      Src: /src/nss/lib/sqlite/sqlite3.c:48146,1
    - Dst: pcache2::xCachesize
      Src: /src/nss/lib/sqlite/sqlite3.c:48150,1
    - Dst: numberOfCachePages
      Src: /src/nss/lib/sqlite/sqlite3.c:48150,1
    - Dst: pcache2::xDestroy
      Src: /src/nss/lib/sqlite/sqlite3.c:48152,1
    - Dst: pcacheTrace
      Src: /src/nss/lib/sqlite/sqlite3.c:48156,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - pCache
    - szPage
    argTypes:
    - PCache*
    - int
    assertStmts:
    - condition: ( pCache->nRefSum==0 && pCache->pDirty==0 )
      pos:
        line_end: 48141
        line_start: 48141
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 48159
      start: 48141
    functionDepth: 1
    functionLinenumber: 48141
    functionLinenumberEnd: 48159
    functionName: sqlite3PcacheSetPageSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - numberOfCachePages
    - pcache2::xCachesize
    - pcacheTrace
    - ROUND8
    - pcache2::xCreate
    - assert
    - pcache2::xDestroy
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PcacheSetPageSize(PCache *pCache, int szPage)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:48193,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:48194,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:48195,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:48196,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:48206,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:48207,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:48208,1
    - Dst: pcache2::xFetch
      Src: /src/nss/lib/sqlite/sqlite3.c:48209,1
    - Dst: pcacheTrace
      Src: /src/nss/lib/sqlite/sqlite3.c:48210,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( pCache!=0 )
      pos:
        line_end: 48192
        line_start: 48192
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCache->pCache!=0 )
      pos:
        line_end: 48193
        line_start: 48193
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: '( pCache->eCreate==((pCache->bPurgeable && pCache->pDirty) ? 1 :
        2) )'
      pos:
        line_end: 48195
        line_start: 48195
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( eCreate==0 || eCreate==1 || eCreate==2 )
      pos:
        line_end: 48205
        line_start: 48205
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( createFlag==3 || createFlag==0 )
      pos:
        line_end: 48194
        line_start: 48194
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( createFlag==0 || pCache->eCreate==eCreate )
      pos:
        line_end: 48206
        line_start: 48206
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( createFlag==0 || eCreate==1+(!pCache->bPurgeable||!pCache->pDirty)
        )
      pos:
        line_end: 48207
        line_start: 48207
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 48213
      start: 48185
    functionDepth: 1
    functionLinenumber: 48185
    functionLinenumberEnd: 48213
    functionName: "sqlite3_pcache_page *sqlite3PcacheFetch(\n  PCache *pCache,       /*
      Obtain the page from this cache */\n  Pgno pgno,            /* Page number to
      obtain */\n  int createFlag        /* If true, create page if it does not exist
      already */\n)"
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - pcache2::xFetch
    - pcacheTrace
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3_pcache_page *sqlite3PcacheFetch(\n  PCache
      *pCache,       /* Obtain the page from this cache */\n  Pgno pgno,            /*
      Page number to obtain */\n  int createFlag        /* If true, create page if
      it does not exist already */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PcachePagecount
      Src: /src/nss/lib/sqlite/sqlite3.c:48234,1
    - Dst: sqlite3_log
      Src: /src/nss/lib/sqlite/sqlite3.c:48255,1
    - Dst: pcache2::xPagecount
      Src: /src/nss/lib/sqlite/sqlite3.c:48258,1
    - Dst: numberOfCachePages
      Src: /src/nss/lib/sqlite/sqlite3.c:48259,1
    - Dst: pcacheTrace
      Src: /src/nss/lib/sqlite/sqlite3.c:48261,1
    - Dst: PCache*::xStress
      Src: /src/nss/lib/sqlite/sqlite3.c:48262,1
    - Dst: pcacheDump
      Src: /src/nss/lib/sqlite/sqlite3.c:48263,1
    - Dst: pcache2::xFetch
      Src: /src/nss/lib/sqlite/sqlite3.c:48269,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 3
    argNames:
    - pCache
    - pgno
    - ppPage
    argTypes:
    - PCache*
    - Pgno
    - sqlite3_pcache_page**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48271
      start: 48226
    functionDepth: 10
    functionLinenumber: 48226
    functionLinenumberEnd: 48271
    functionName: sqlite3PcacheFetchStress
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - pcacheDump
    - numberOfCachePages
    - pcacheTrace
    - PCache*::xStress
    - sqlite3_log
    - pcache2::xFetch
    - pcache2::xPagecount
    - sqlite3PcachePagecount
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3PcacheFetchStress(\n  PCache *pCache,                 /*
      Obtain the page from this cache */\n  Pgno pgno,                      /* Page
      number to obtain */\n  sqlite3_pcache_page **ppPage    /* Write result here
      */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:48288,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:48290,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:48291,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:48295,1
    - Dst: sqlite3PcacheFetchFinish
      Src: /src/nss/lib/sqlite/sqlite3.c:48299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - pCache
    - pgno
    - pPage
    argTypes:
    - PCache*
    - Pgno
    - sqlite3_pcache_page*
    assertStmts:
    - condition: ( pPage!=0 )
      pos:
        line_end: 48287
        line_start: 48287
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPgHdr->pPage==0 )
      pos:
        line_end: 48289
        line_start: 48289
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 48300
      start: 48282
    functionDepth: 1
    functionLinenumber: 48282
    functionLinenumberEnd: 48300
    functionName: pcacheFetchFinishWithInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3PcacheFetchFinish
    - memset
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: "SQLITE_NOINLINE *pcacheFetchFinishWithInit(\n  PCache *pCache,             /*
      Obtain the page from this cache */\n  Pgno pgno,                  /* Page number
      obtained */\n  sqlite3_pcache_page *pPage  /* Page obtained by prior PcacheFetch()
      call */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:48315,1
    - Dst: pcacheFetchFinishWithInit
      Src: /src/nss/lib/sqlite/sqlite3.c:48319,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:48323,1
    - Dst: sqlite3PcachePageSanity
      Src: /src/nss/lib/sqlite/sqlite3.c:48323,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - pCache
    - pgno
    - pPage
    argTypes:
    - PCache*
    - Pgno
    - sqlite3_pcache_page*
    assertStmts:
    - condition: ( pPage!=0 )
      pos:
        line_end: 48314
        line_start: 48314
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3PcachePageSanity(pPgHdr) )
      pos:
        line_end: 48322
        line_start: 48322
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 48325
      start: 48308
    functionDepth: 2
    functionLinenumber: 48308
    functionLinenumberEnd: 48325
    functionName: sqlite3PcacheFetchFinish
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - pcacheFetchFinishWithInit
    - sqlite3PcachePageSanity
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3PcacheFetchFinish(\n  PCache *pCache,             /*
      Obtain the page from this cache */\n  Pgno pgno,                  /* Page number
      obtained */\n  sqlite3_pcache_page *pPage  /* Page obtained by prior PcacheFetch()
      call */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:48332,1
    - Dst: pcacheUnpin
      Src: /src/nss/lib/sqlite/sqlite3.c:48336,1
    - Dst: pcacheManageDirtyList
      Src: /src/nss/lib/sqlite/sqlite3.c:48338,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - p
    argTypes:
    - PgHdr*
    assertStmts:
    - condition: ( p->nRef>0 )
      pos:
        line_end: 48331
        line_start: 48331
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 48341
      start: 48331
    functionDepth: 3
    functionLinenumber: 48331
    functionLinenumberEnd: 48341
    functionName: sqlite3PcacheRelease
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - pcacheManageDirtyList
    - pcacheUnpin
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PcacheRelease(PgHdr *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:48347,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:48348,1
    - Dst: sqlite3PcachePageSanity
      Src: /src/nss/lib/sqlite/sqlite3.c:48348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - PgHdr*
    assertStmts:
    - condition: (p->nRef>0)
      pos:
        line_end: 48346
        line_start: 48346
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3PcachePageSanity(p) )
      pos:
        line_end: 48347
        line_start: 48347
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 48351
      start: 48346
    functionDepth: 1
    functionLinenumber: 48346
    functionLinenumberEnd: 48351
    functionName: sqlite3PcacheRef
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3PcachePageSanity
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PcacheRef(PgHdr *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:48359,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:48360,1
    - Dst: sqlite3PcachePageSanity
      Src: /src/nss/lib/sqlite/sqlite3.c:48360,1
    - Dst: pcacheManageDirtyList
      Src: /src/nss/lib/sqlite/sqlite3.c:48362,1
    - Dst: pcache2::xUnpin
      Src: /src/nss/lib/sqlite/sqlite3.c:48365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - PgHdr*
    assertStmts:
    - condition: ( p->nRef==1 )
      pos:
        line_end: 48358
        line_start: 48358
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3PcachePageSanity(p) )
      pos:
        line_end: 48359
        line_start: 48359
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 48366
      start: 48358
    functionDepth: 3
    functionLinenumber: 48358
    functionLinenumberEnd: 48366
    functionName: sqlite3PcacheDrop
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - pcacheManageDirtyList
    - pcache2::xUnpin
    - sqlite3PcachePageSanity
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PcacheDrop(PgHdr *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:48373,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:48374,1
    - Dst: sqlite3PcachePageSanity
      Src: /src/nss/lib/sqlite/sqlite3.c:48374,1
    - Dst: pcacheTrace
      Src: /src/nss/lib/sqlite/sqlite3.c:48379,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:48380,1
    - Dst: pcacheManageDirtyList
      Src: /src/nss/lib/sqlite/sqlite3.c:48381,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:48383,1
    - Dst: sqlite3PcachePageSanity
      Src: /src/nss/lib/sqlite/sqlite3.c:48383,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - p
    argTypes:
    - PgHdr*
    assertStmts:
    - condition: ( p->nRef>0 )
      pos:
        line_end: 48372
        line_start: 48372
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3PcachePageSanity(p) )
      pos:
        line_end: 48373
        line_start: 48373
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (p->flags & (PGHDR_DIRTY|PGHDR_CLEAN))==PGHDR_DIRTY )
      pos:
        line_end: 48379
        line_start: 48379
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3PcachePageSanity(p) )
      pos:
        line_end: 48382
        line_start: 48382
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 48385
      start: 48372
    functionDepth: 3
    functionLinenumber: 48372
    functionLinenumberEnd: 48385
    functionName: sqlite3PcacheMakeDirty
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - pcacheManageDirtyList
    - pcacheTrace
    - sqlite3PcachePageSanity
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PcacheMakeDirty(PgHdr *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:48392,1
    - Dst: sqlite3PcachePageSanity
      Src: /src/nss/lib/sqlite/sqlite3.c:48392,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:48393,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:48394,1
    - Dst: pcacheManageDirtyList
      Src: /src/nss/lib/sqlite/sqlite3.c:48395,1
    - Dst: pcacheTrace
      Src: /src/nss/lib/sqlite/sqlite3.c:48398,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:48399,1
    - Dst: sqlite3PcachePageSanity
      Src: /src/nss/lib/sqlite/sqlite3.c:48399,1
    - Dst: pcacheUnpin
      Src: /src/nss/lib/sqlite/sqlite3.c:48401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - p
    argTypes:
    - PgHdr*
    assertStmts:
    - condition: ( sqlite3PcachePageSanity(p) )
      pos:
        line_end: 48391
        line_start: 48391
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (p->flags & PGHDR_DIRTY)!=0 )
      pos:
        line_end: 48392
        line_start: 48392
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (p->flags & PGHDR_CLEAN)==0 )
      pos:
        line_end: 48393
        line_start: 48393
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3PcachePageSanity(p) )
      pos:
        line_end: 48398
        line_start: 48398
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 48403
      start: 48391
    functionDepth: 3
    functionLinenumber: 48391
    functionLinenumberEnd: 48403
    functionName: sqlite3PcacheMakeClean
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - pcacheManageDirtyList
    - pcacheTrace
    - pcacheUnpin
    - assert
    - sqlite3PcachePageSanity
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PcacheMakeClean(PgHdr *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcacheTrace
      Src: /src/nss/lib/sqlite/sqlite3.c:48410,1
    - Dst: sqlite3PcacheMakeClean
      Src: /src/nss/lib/sqlite/sqlite3.c:48412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pCache
    argTypes:
    - PCache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48414
      start: 48408
    functionDepth: 4
    functionLinenumber: 48408
    functionLinenumberEnd: 48414
    functionName: sqlite3PcacheCleanAll
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PcacheMakeClean
    - pcacheTrace
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PcacheCleanAll(PCache *pCache)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcacheTrace
      Src: /src/nss/lib/sqlite/sqlite3.c:48421,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pCache
    argTypes:
    - PCache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48426
      start: 48419
    functionDepth: 1
    functionLinenumber: 48419
    functionLinenumberEnd: 48426
    functionName: sqlite3PcacheClearWritable
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - pcacheTrace
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PcacheClearWritable(PCache *pCache)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pCache
    argTypes:
    - PCache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48437
      start: 48431
    functionDepth: 0
    functionLinenumber: 48431
    functionLinenumberEnd: 48437
    functionName: sqlite3PcacheClearSyncFlags
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PcacheClearSyncFlags(PCache *pCache)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:48444,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:48445,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:48446,1
    - Dst: sqlite3PcachePageSanity
      Src: /src/nss/lib/sqlite/sqlite3.c:48446,1
    - Dst: pcacheTrace
      Src: /src/nss/lib/sqlite/sqlite3.c:48447,1
    - Dst: pcache2::xRekey
      Src: /src/nss/lib/sqlite/sqlite3.c:48448,1
    - Dst: pcacheManageDirtyList
      Src: /src/nss/lib/sqlite/sqlite3.c:48451,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - p
    - newPgno
    argTypes:
    - PgHdr*
    - Pgno
    assertStmts:
    - condition: ( p->nRef>0 )
      pos:
        line_end: 48443
        line_start: 48443
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3PcachePageSanity(p) )
      pos:
        line_end: 48445
        line_start: 48445
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( newPgno>0 )
      pos:
        line_end: 48444
        line_start: 48444
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 48453
      start: 48442
    functionDepth: 3
    functionLinenumber: 48442
    functionLinenumberEnd: 48453
    functionName: sqlite3PcacheMove
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - pcacheManageDirtyList
    - pcacheTrace
    - assert
    - sqlite3PcachePageSanity
    - pcache2::xRekey
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PcacheMove(PgHdr *p, Pgno newPgno)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcacheTrace
      Src: /src/nss/lib/sqlite/sqlite3.c:48468,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:48475,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:48477,1
    - Dst: sqlite3PcacheMakeClean
      Src: /src/nss/lib/sqlite/sqlite3.c:48478,1
    - Dst: pcache2::xFetch
      Src: /src/nss/lib/sqlite/sqlite3.c:48483,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:48484,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:48486,1
    - Dst: pcache2::xTruncate
      Src: /src/nss/lib/sqlite/sqlite3.c:48490,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - pCache
    - pgno
    argTypes:
    - PCache*
    - Pgno
    assertStmts:
    - condition: ( p->flags&PGHDR_DIRTY )
      pos:
        line_end: 48476
        line_start: 48476
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->pgno>0 )
      pos:
        line_end: 48474
        line_start: 48474
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 48492
      start: 48464
    functionDepth: 4
    functionLinenumber: 48464
    functionLinenumberEnd: 48492
    functionName: sqlite3PcacheTruncate
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ALWAYS
    - pcacheTrace
    - pcache2::xTruncate
    - assert
    - pcache2::xFetch
    - sqlite3PcacheMakeClean
    - memset
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PcacheTruncate(PCache *pCache, Pgno pgno)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:48498,1
    - Dst: pcacheTrace
      Src: /src/nss/lib/sqlite/sqlite3.c:48499,1
    - Dst: pcache2::xDestroy
      Src: /src/nss/lib/sqlite/sqlite3.c:48500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pCache
    argTypes:
    - PCache*
    assertStmts:
    - condition: ( pCache->pCache!=0 )
      pos:
        line_end: 48497
        line_start: 48497
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 48501
      start: 48497
    functionDepth: 1
    functionLinenumber: 48497
    functionLinenumberEnd: 48501
    functionName: sqlite3PcacheClose
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - pcache2::xDestroy
    - pcacheTrace
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PcacheClose(PCache *pCache)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PcacheTruncate
      Src: /src/nss/lib/sqlite/sqlite3.c:48507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pCache
    argTypes:
    - PCache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48508
      start: 48506
    functionDepth: 5
    functionLinenumber: 48506
    functionLinenumberEnd: 48508
    functionName: sqlite3PcacheClear
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PcacheTruncate
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PcacheClear(PCache *pCache)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:48517,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - pA
    - pB
    argTypes:
    - PgHdr*
    - PgHdr*
    assertStmts:
    - condition: ( pA!=0 && pB!=0 )
      pos:
        line_end: 48516
        line_start: 48516
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 48538
      start: 48514
    functionDepth: 0
    functionLinenumber: 48514
    functionLinenumberEnd: 48538
    functionName: pcacheMergeDirtyList
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: PgHdr
    signature: PgHdr *pcacheMergeDirtyList(PgHdr *pA, PgHdr *pB)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:48554,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:48559,1
    - Dst: pcacheMergeDirtyList
      Src: /src/nss/lib/sqlite/sqlite3.c:48564,1
    - Dst: NEVER
      Src: /src/nss/lib/sqlite/sqlite3.c:48568,1
    - Dst: pcacheMergeDirtyList
      Src: /src/nss/lib/sqlite/sqlite3.c:48572,1
    - Dst: pcacheMergeDirtyList
      Src: /src/nss/lib/sqlite/sqlite3.c:48578,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - pIn
    argTypes:
    - PgHdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48581
      start: 48551
    functionDepth: 1
    functionLinenumber: 48551
    functionLinenumberEnd: 48581
    functionName: pcacheSortDirtyList
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - ALWAYS
    - pcacheMergeDirtyList
    - NEVER
    linkageType: ''
    returnType: PgHdr
    signature: PgHdr *pcacheSortDirtyList(PgHdr *pIn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcacheSortDirtyList
      Src: /src/nss/lib/sqlite/sqlite3.c:48591,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pCache
    argTypes:
    - PCache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48592
      start: 48586
    functionDepth: 2
    functionLinenumber: 48586
    functionLinenumberEnd: 48592
    functionName: sqlite3PcacheDirtyList
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - pcacheSortDirtyList
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3PcacheDirtyList(PCache *pCache)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pCache
    argTypes:
    - PCache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48602
      start: 48600
    functionDepth: 0
    functionLinenumber: 48600
    functionLinenumberEnd: 48602
    functionName: sqlite3PcacheRefCount
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PcacheRefCount(PCache *pCache)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - PgHdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48609
      start: 48607
    functionDepth: 0
    functionLinenumber: 48607
    functionLinenumberEnd: 48609
    functionName: sqlite3PcachePageRefcount
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PcachePageRefcount(PgHdr *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:48615,1
    - Dst: pcache2::xPagecount
      Src: /src/nss/lib/sqlite/sqlite3.c:48616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pCache
    argTypes:
    - PCache*
    assertStmts:
    - condition: ( pCache->pCache!=0 )
      pos:
        line_end: 48614
        line_start: 48614
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 48617
      start: 48614
    functionDepth: 0
    functionLinenumber: 48614
    functionLinenumberEnd: 48617
    functionName: sqlite3PcachePagecount
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - assert
    - pcache2::xPagecount
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PcachePagecount(PCache *pCache)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: numberOfCachePages
      Src: /src/nss/lib/sqlite/sqlite3.c:48624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pCache
    argTypes:
    - PCache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48625
      start: 48623
    functionDepth: 1
    functionLinenumber: 48623
    functionLinenumberEnd: 48625
    functionName: sqlite3PcacheGetCachesize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - numberOfCachePages
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PcacheGetCachesize(PCache *pCache)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:48632,1
    - Dst: pcache2::xCachesize
      Src: /src/nss/lib/sqlite/sqlite3.c:48634,1
    - Dst: numberOfCachePages
      Src: /src/nss/lib/sqlite/sqlite3.c:48635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pCache
    - mxPage
    argTypes:
    - PCache*
    - int
    assertStmts:
    - condition: ( pCache->pCache!=0 )
      pos:
        line_end: 48631
        line_start: 48631
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 48636
      start: 48631
    functionDepth: 1
    functionLinenumber: 48631
    functionLinenumberEnd: 48636
    functionName: sqlite3PcacheSetCachesize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - numberOfCachePages
    - pcache2::xCachesize
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PcacheSetCachesize(PCache *pCache, int mxPage)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:48645,1
    - Dst: numberOfCachePages
      Src: /src/nss/lib/sqlite/sqlite3.c:48652,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - p
    - mxPage
    argTypes:
    - PCache*
    - int
    assertStmts:
    - condition: ( p->pCache!=0 )
      pos:
        line_end: 48644
        line_start: 48644
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 48655
      start: 48643
    functionDepth: 1
    functionLinenumber: 48643
    functionLinenumberEnd: 48655
    functionName: sqlite3PcacheSetSpillsize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - numberOfCachePages
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PcacheSetSpillsize(PCache *p, int mxPage)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:48661,1
    - Dst: pcache2::xShrink
      Src: /src/nss/lib/sqlite/sqlite3.c:48662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pCache
    argTypes:
    - PCache*
    assertStmts:
    - condition: ( pCache->pCache!=0 )
      pos:
        line_end: 48660
        line_start: 48660
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 48663
      start: 48660
    functionDepth: 0
    functionLinenumber: 48660
    functionLinenumberEnd: 48663
    functionName: sqlite3PcacheShrink
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - pcache2::xShrink
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PcacheShrink(PCache *pCache)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ROUND8
      Src: /src/nss/lib/sqlite/sqlite3.c:48669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48669
      start: 48669
    functionDepth: 1
    functionLinenumber: 48669
    functionLinenumberEnd: 48669
    functionName: sqlite3HeaderSizePcache
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ROUND8
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3HeaderSizePcache(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: numberOfCachePages
      Src: /src/nss/lib/sqlite/sqlite3.c:48678,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pCache
    argTypes:
    - PCache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48681
      start: 48675
    functionDepth: 1
    functionLinenumber: 48675
    functionLinenumberEnd: 48681
    functionName: sqlite3PCachePercentDirty
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - numberOfCachePages
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PCachePercentDirty(PCache *pCache)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pCache
    argTypes:
    - PCache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48689
      start: 48687
    functionDepth: 0
    functionLinenumber: 48687
    functionLinenumberEnd: 48689
    functionName: sqlite3PCacheIsDirty
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PCacheIsDirty(PCache *pCache)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xIter
      Src: /src/nss/lib/sqlite/sqlite3.c:48701,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pCache
    argTypes:
    - PCache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48703
      start: 48698
    functionDepth: 0
    functionLinenumber: 48698
    functionLinenumberEnd: 48703
    functionName: sqlite3PcacheIterateDirty
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - xIter
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PcacheIterateDirty(PCache *pCache, void (*xIter)(PgHdr
      *))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48830
      start: 48829
    functionDepth: 0
    functionLinenumber: 48829
    functionLinenumberEnd: 48830
    functionName: PAGE_IS_PINNED
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAGE_IS_PINNED(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48831
      start: 48830
    functionDepth: 0
    functionLinenumber: 48830
    functionLinenumberEnd: 48831
    functionName: PAGE_IS_UNPINNED
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAGE_IS_UNPINNED(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48936
      start: 48912
    functionDepth: 0
    functionLinenumber: 48912
    functionLinenumberEnd: 48936
    functionName: PCacheGlobal
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_WSD
    signature: SQLITE_WSD PCacheGlobal
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48950
      start: 48949
    functionDepth: 0
    functionLinenumber: 48949
    functionLinenumberEnd: 48950
    functionName: pcache1EnterMutex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pcache1EnterMutex(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48951
      start: 48950
    functionDepth: 0
    functionLinenumber: 48950
    functionLinenumberEnd: 48951
    functionName: pcache1LeaveMutex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pcache1LeaveMutex(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48954
      start: 48953
    functionDepth: 0
    functionLinenumber: 48953
    functionLinenumberEnd: 48954
    functionName: pcache1EnterMutex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pcache1EnterMutex(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48955
      start: 48954
    functionDepth: 0
    functionLinenumber: 48954
    functionLinenumberEnd: 48955
    functionName: pcache1LeaveMutex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pcache1LeaveMutex(X)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ROUNDDOWN8
      Src: /src/nss/lib/sqlite/sqlite3.c:48976,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - pBuf
    - sz
    - n
    argTypes:
    - void*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48991
      start: 48971
    functionDepth: 1
    functionLinenumber: 48971
    functionLinenumberEnd: 48991
    functionName: sqlite3PCacheBufferSetup
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ROUNDDOWN8
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PCacheBufferSetup(void *pBuf, int sz, int n)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BeginBenignMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:49003,1
    - Dst: sqlite3Malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:49012,1
    - Dst: sqlite3EndBenignMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:49013,1
    - Dst: sqlite3MallocSize
      Src: /src/nss/lib/sqlite/sqlite3.c:49015,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 1
    argNames:
    - pCache
    argTypes:
    - PCache1*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49029
      start: 48997
    functionDepth: 5
    functionLinenumber: 48997
    functionLinenumberEnd: 49029
    functionName: pcache1InitBulk
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BeginBenignMalloc
    - sqlite3MallocSize
    - sqlite3Malloc
    - sqlite3EndBenignMalloc
    linkageType: ''
    returnType: int
    signature: int pcache1InitBulk(PCache1 *pCache)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:49042,1
    - Dst: sqlite3_mutex_notheld
      Src: /src/nss/lib/sqlite/sqlite3.c:49042,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:49044,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:49050,1
    - Dst: sqlite3StatusHighwater
      Src: /src/nss/lib/sqlite/sqlite3.c:49051,1
    - Dst: sqlite3StatusUp
      Src: /src/nss/lib/sqlite/sqlite3.c:49052,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:49054,1
    - Dst: sqlite3Malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:49060,1
    - Dst: sqlite3MallocSize
      Src: /src/nss/lib/sqlite/sqlite3.c:49063,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:49064,1
    - Dst: sqlite3StatusHighwater
      Src: /src/nss/lib/sqlite/sqlite3.c:49065,1
    - Dst: sqlite3StatusUp
      Src: /src/nss/lib/sqlite/sqlite3.c:49066,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:49067,1
    - Dst: sqlite3MemdebugSetType
      Src: /src/nss/lib/sqlite/sqlite3.c:49070,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 1
    argNames:
    - nByte
    argTypes:
    - int
    assertStmts:
    - condition: ( sqlite3_mutex_notheld(pcache1.grp.mutex) )
      pos:
        line_end: 49041
        line_start: 49041
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pcache1.nFreeSlot>=0 )
      pos:
        line_end: 49049
        line_start: 49049
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 49073
      start: 49040
    functionDepth: 5
    functionLinenumber: 49040
    functionLinenumberEnd: 49073
    functionName: pcache1Alloc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3MemdebugSetType
    - sqlite3_mutex_leave
    - sqlite3StatusUp
    - sqlite3MallocSize
    - sqlite3Malloc
    - assert
    - sqlite3StatusHighwater
    - sqlite3_mutex_notheld
    linkageType: ''
    returnType: void
    signature: void *pcache1Alloc(int nByte)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SQLITE_WITHIN
      Src: /src/nss/lib/sqlite/sqlite3.c:49080,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:49082,1
    - Dst: sqlite3StatusDown
      Src: /src/nss/lib/sqlite/sqlite3.c:49083,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:49089,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:49090,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:49092,1
    - Dst: sqlite3MemdebugHasType
      Src: /src/nss/lib/sqlite/sqlite3.c:49092,1
    - Dst: sqlite3MemdebugSetType
      Src: /src/nss/lib/sqlite/sqlite3.c:49093,1
    - Dst: sqlite3MallocSize
      Src: /src/nss/lib/sqlite/sqlite3.c:49097,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:49098,1
    - Dst: sqlite3StatusDown
      Src: /src/nss/lib/sqlite/sqlite3.c:49099,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:49100,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:49103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts:
    - condition: ( pcache1.nFreeSlot<=pcache1.nSlot )
      pos:
        line_end: 49088
        line_start: 49088
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3MemdebugHasType(p, MEMTYPE_PCACHE) )
      pos:
        line_end: 49091
        line_start: 49091
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 49105
      start: 49078
    functionDepth: 3
    functionLinenumber: 49078
    functionLinenumberEnd: 49105
    functionName: pcache1Free
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - SQLITE_WITHIN
    - sqlite3StatusDown
    - sqlite3MemdebugSetType
    - sqlite3_mutex_leave
    - sqlite3MemdebugHasType
    - sqlite3MallocSize
    - assert
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void pcache1Free(void *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:49116,1
    - Dst: sqlite3MemdebugHasType
      Src: /src/nss/lib/sqlite/sqlite3.c:49116,1
    - Dst: sqlite3MemdebugSetType
      Src: /src/nss/lib/sqlite/sqlite3.c:49117,1
    - Dst: sqlite3MallocSize
      Src: /src/nss/lib/sqlite/sqlite3.c:49118,1
    - Dst: sqlite3MemdebugSetType
      Src: /src/nss/lib/sqlite/sqlite3.c:49119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts:
    - condition: ( sqlite3MemdebugHasType(p, MEMTYPE_PCACHE) )
      pos:
        line_end: 49115
        line_start: 49115
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 49122
      start: 49111
    functionDepth: 3
    functionLinenumber: 49111
    functionLinenumberEnd: 49122
    functionName: pcache1MemSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3MallocSize
    - sqlite3MemdebugHasType
    - sqlite3MemdebugSetType
    linkageType: ''
    returnType: int
    signature: int pcache1MemSize(void *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:49132,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:49132,1
    - Dst: pcache1InitBulk
      Src: /src/nss/lib/sqlite/sqlite3.c:49133,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:49142,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:49143,1
    - Dst: pcache1LeaveMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:49144,1
    - Dst: sqlite3BeginBenignMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:49146,1
    - Dst: pcache1Alloc
      Src: /src/nss/lib/sqlite/sqlite3.c:49148,1
    - Dst: sqlite3Malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:49149,1
    - Dst: pcache1Free
      Src: /src/nss/lib/sqlite/sqlite3.c:49151,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:49152,1
    - Dst: pcache1Alloc
      Src: /src/nss/lib/sqlite/sqlite3.c:49156,1
    - Dst: sqlite3EndBenignMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:49159,1
    - Dst: pcache1EnterMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:49161,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 2
    argNames:
    - pCache
    - benignMalloc
    argTypes:
    - PCache1*
    - int
    assertStmts:
    - condition: ( sqlite3_mutex_held(pCache->pGroup->mutex) )
      pos:
        line_end: 49131
        line_start: 49131
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCache->pGroup==&pcache1.grp )
      pos:
        line_end: 49142
        line_start: 49142
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pcache1.separateCache==0 )
      pos:
        line_end: 49141
        line_start: 49141
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 49171
      start: 49128
    functionDepth: 6
    functionLinenumber: 49128
    functionLinenumberEnd: 49171
    functionName: pcache1AllocPage
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - pcache1EnterMutex
    - sqlite3EndBenignMalloc
    - pcache1LeaveMutex
    - sqlite3BeginBenignMalloc
    - pcache1InitBulk
    - sqlite3Malloc
    - assert
    - pcache1Free
    - sqlite3_mutex_held
    - pcache1Alloc
    - sqlite3_free
    linkageType: ''
    returnType: PgHdr1
    signature: PgHdr1 *pcache1AllocPage(PCache1 *pCache, int benignMalloc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:49178,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:49180,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:49180,1
    - Dst: pcache1Free
      Src: /src/nss/lib/sqlite/sqlite3.c:49185,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:49187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - p
    argTypes:
    - PgHdr1*
    assertStmts:
    - condition: ( p!=0 )
      pos:
        line_end: 49177
        line_start: 49177
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3_mutex_held(p->pCache->pGroup->mutex) )
      pos:
        line_end: 49179
        line_start: 49179
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 49191
      start: 49176
    functionDepth: 4
    functionLinenumber: 49176
    functionLinenumberEnd: 49191
    functionName: pcache1FreePage
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_mutex_held
    - sqlite3_free
    - pcache1Free
    linkageType: ''
    returnType: void
    signature: void pcache1FreePage(PgHdr1 *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:49199,1
    - Dst: pcache1Alloc
      Src: /src/nss/lib/sqlite/sqlite3.c:49200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sz
    argTypes:
    - int
    assertStmts:
    - condition: ( sz<=65536+8 )
      pos:
        line_end: 49198
        line_start: 49198
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 49201
      start: 49198
    functionDepth: 6
    functionLinenumber: 49198
    functionLinenumberEnd: 49201
    functionName: sqlite3PageMalloc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - pcache1Alloc
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3PageMalloc(int sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcache1Free
      Src: /src/nss/lib/sqlite/sqlite3.c:49207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49208
      start: 49206
    functionDepth: 4
    functionLinenumber: 49206
    functionLinenumberEnd: 49208
    functionName: sqlite3PageFree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - pcache1Free
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PageFree(void *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3HeapNearlyFull
      Src: /src/nss/lib/sqlite/sqlite3.c:49231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pCache
    argTypes:
    - PCache1*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49233
      start: 49227
    functionDepth: 1
    functionLinenumber: 49227
    functionLinenumberEnd: 49233
    functionName: pcache1UnderMemoryPressure
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3HeapNearlyFull
    linkageType: ''
    returnType: int
    signature: int pcache1UnderMemoryPressure(PCache1 *pCache)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:49249,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:49249,1
    - Dst: pcache1LeaveMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:49256,1
    - Dst: sqlite3BeginBenignMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:49257,1
    - Dst: sqlite3MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:49258,1
    - Dst: sqlite3EndBenignMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:49259,1
    - Dst: pcache1EnterMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:49260,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:49272,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - PCache1*
    assertStmts:
    - condition: ( sqlite3_mutex_held(p->pGroup->mutex) )
      pos:
        line_end: 49248
        line_start: 49248
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 49276
      start: 49244
    functionDepth: 6
    functionLinenumber: 49244
    functionLinenumberEnd: 49276
    functionName: pcache1ResizeHash
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - pcache1EnterMutex
    - sqlite3EndBenignMalloc
    - pcache1LeaveMutex
    - sqlite3BeginBenignMalloc
    - assert
    - sqlite3_mutex_held
    - sqlite3MallocZero
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void pcache1ResizeHash(PCache1 *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:49286,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:49287,1
    - Dst: PAGE_IS_UNPINNED
      Src: /src/nss/lib/sqlite/sqlite3.c:49287,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:49288,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:49289,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:49290,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:49290,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:49296,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:49297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - pPage
    argTypes:
    - PgHdr1*
    assertStmts:
    - condition: ( pPage!=0 )
      pos:
        line_end: 49285
        line_start: 49285
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->pLruNext )
      pos:
        line_end: 49287
        line_start: 49287
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->pLruPrev )
      pos:
        line_end: 49288
        line_start: 49288
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( PAGE_IS_UNPINNED(pPage) )
      pos:
        line_end: 49286
        line_start: 49286
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3_mutex_held(pPage->pCache->pGroup->mutex) )
      pos:
        line_end: 49289
        line_start: 49289
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->isAnchor==0 )
      pos:
        line_end: 49295
        line_start: 49295
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->pCache->pGroup->lru.isAnchor==1 )
      pos:
        line_end: 49296
        line_start: 49296
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 49300
      start: 49285
    functionDepth: 1
    functionLinenumber: 49285
    functionLinenumberEnd: 49300
    functionName: pcache1PinPage
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_mutex_held
    - PAGE_IS_UNPINNED
    linkageType: ''
    returnType: PgHdr1
    signature: PgHdr1 *pcache1PinPage(PgHdr1 *pPage)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:49315,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:49315,1
    - Dst: pcache1FreePage
      Src: /src/nss/lib/sqlite/sqlite3.c:49321,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - pPage
    - freeFlag
    argTypes:
    - PgHdr1*
    - int
    assertStmts:
    - condition: ( sqlite3_mutex_held(pCache->pGroup->mutex) )
      pos:
        line_end: 49314
        line_start: 49314
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 49322
      start: 49310
    functionDepth: 5
    functionLinenumber: 49310
    functionLinenumberEnd: 49322
    functionName: pcache1RemoveFromHash
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_mutex_held
    - pcache1FreePage
    linkageType: ''
    returnType: void
    signature: void pcache1RemoveFromHash(PgHdr1 *pPage, int freeFlag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:49331,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:49331,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:49335,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:49336,1
    - Dst: PAGE_IS_UNPINNED
      Src: /src/nss/lib/sqlite/sqlite3.c:49336,1
    - Dst: pcache1PinPage
      Src: /src/nss/lib/sqlite/sqlite3.c:49337,1
    - Dst: pcache1RemoveFromHash
      Src: /src/nss/lib/sqlite/sqlite3.c:49338,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:49341,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - pCache
    argTypes:
    - PCache1*
    assertStmts:
    - condition: ( sqlite3_mutex_held(pGroup->mutex) )
      pos:
        line_end: 49330
        line_start: 49330
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->pCache->pGroup==pGroup )
      pos:
        line_end: 49334
        line_start: 49334
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( PAGE_IS_UNPINNED(p) )
      pos:
        line_end: 49335
        line_start: 49335
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 49344
      start: 49328
    functionDepth: 6
    functionLinenumber: 49328
    functionLinenumberEnd: 49344
    functionName: pcache1EnforceMaxPage
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - pcache1PinPage
    - pcache1RemoveFromHash
    - assert
    - PAGE_IS_UNPINNED
    - sqlite3_mutex_held
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void pcache1EnforceMaxPage(PCache1 *pCache)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:49359,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:49359,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:49360,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:49361,1
    - Dst: TESTONLY
      Src: /src/nss/lib/sqlite/sqlite3.c:49369,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:49379,1
    - Dst: PAGE_IS_UNPINNED
      Src: /src/nss/lib/sqlite/sqlite3.c:49385,1
    - Dst: pcache1PinPage
      Src: /src/nss/lib/sqlite/sqlite3.c:49385,1
    - Dst: pcache1FreePage
      Src: /src/nss/lib/sqlite/sqlite3.c:49386,1
    - Dst: TESTONLY
      Src: /src/nss/lib/sqlite/sqlite3.c:49389,1
    - Dst: if
      Src: /src/nss/lib/sqlite/sqlite3.c:49389,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:49395,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - pCache
    - iLimit
    argTypes:
    - PCache1*
    - unsigned int
    assertStmts:
    - condition: ( sqlite3_mutex_held(pCache->pGroup->mutex) )
      pos:
        line_end: 49358
        line_start: 49358
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCache->nHash > 0 )
      pos:
        line_end: 49360
        line_start: 49360
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCache->iMaxKey >= iLimit )
      pos:
        line_end: 49359
        line_start: 49359
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( h<pCache->nHash )
      pos:
        line_end: 49378
        line_start: 49378
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nPage<0 || pCache->nPage==(unsigned)nPage )
      pos:
        line_end: 49394
        line_start: 49394
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 49396
      start: 49353
    functionDepth: 5
    functionLinenumber: 49353
    functionLinenumberEnd: 49396
    functionName: pcache1TruncateUnsafe
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - pcache1PinPage
    - TESTONLY
    - assert
    - pcache1FreePage
    - PAGE_IS_UNPINNED
    - sqlite3_mutex_held
    - if
    linkageType: ''
    returnType: void
    signature: "void pcache1TruncateUnsafe(\n  PCache1 *pCache,             /* The
      cache to truncate */\n  unsigned int iLimit          /* Drop pages with this
      pgno or larger */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:49405,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:49406,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:49407,1
    - Dst: sqlite3MutexAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:49435,1
    - Dst: sqlite3MutexAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:49436,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - NotUsed
    argTypes:
    - void*
    assertStmts:
    - condition: ( pcache1.isInit==0 )
      pos:
        line_end: 49405
        line_start: 49405
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 49450
      start: 49404
    functionDepth: 1
    functionLinenumber: 49404
    functionLinenumberEnd: 49450
    functionName: pcache1Init
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3MutexAlloc
    - UNUSED_PARAMETER
    - memset
    linkageType: ''
    returnType: int
    signature: int pcache1Init(void *NotUsed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:49458,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:49459,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:49460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - NotUsed
    argTypes:
    - void*
    assertStmts:
    - condition: ( pcache1.isInit!=0 )
      pos:
        line_end: 49458
        line_start: 49458
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 49461
      start: 49457
    functionDepth: 1
    functionLinenumber: 49457
    functionLinenumberEnd: 49461
    functionName: pcache1Shutdown
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - UNUSED_PARAMETER
    - memset
    linkageType: ''
    returnType: void
    signature: void pcache1Shutdown(void *NotUsed)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:49476,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:49477,1
    - Dst: sqlite3MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:49480,1
    - Dst: pcache1EnterMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:49488,1
    - Dst: ROUND8
      Src: /src/nss/lib/sqlite/sqlite3.c:49496,1
    - Dst: pcache1ResizeHash
      Src: /src/nss/lib/sqlite/sqlite3.c:49498,1
    - Dst: pcache1LeaveMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:49507,1
    - Dst: pcache1Destroy
      Src: /src/nss/lib/sqlite/sqlite3.c:49509,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 3
    argNames:
    - szPage
    - szExtra
    - bPurgeable
    argTypes:
    - int
    - int
    - int
    assertStmts:
    - condition: ( (szPage & (szPage-1))==0 && szPage>=512 && szPage<=65536 )
      pos:
        line_end: 49475
        line_start: 49475
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( szExtra < 300 )
      pos:
        line_end: 49476
        line_start: 49476
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 49514
      start: 49471
    functionDepth: 7
    functionLinenumber: 49471
    functionLinenumberEnd: 49514
    functionName: pcache1Create
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - pcache1EnterMutex
    - pcache1Destroy
    - ROUND8
    - pcache1LeaveMutex
    - assert
    - sqlite3MallocZero
    - pcache1ResizeHash
    linkageType: ''
    returnType: sqlite3_pcache
    signature: sqlite3_pcache *pcache1Create(int szPage, int szExtra, int bPurgeable)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcache1EnterMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:49525,1
    - Dst: pcache1EnforceMaxPage
      Src: /src/nss/lib/sqlite/sqlite3.c:49530,1
    - Dst: pcache1LeaveMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:49531,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - p
    - nMax
    argTypes:
    - sqlite3_pcache*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49533
      start: 49521
    functionDepth: 7
    functionLinenumber: 49521
    functionLinenumberEnd: 49533
    functionName: pcache1Cachesize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - pcache1LeaveMutex
    - pcache1EnterMutex
    - pcache1EnforceMaxPage
    linkageType: ''
    returnType: void
    signature: void pcache1Cachesize(sqlite3_pcache *p, int nMax)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcache1EnterMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:49545,1
    - Dst: pcache1EnforceMaxPage
      Src: /src/nss/lib/sqlite/sqlite3.c:49548,1
    - Dst: pcache1LeaveMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:49550,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_pcache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49552
      start: 49540
    functionDepth: 7
    functionLinenumber: 49540
    functionLinenumberEnd: 49552
    functionName: pcache1Shrink
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - pcache1LeaveMutex
    - pcache1EnterMutex
    - pcache1EnforceMaxPage
    linkageType: ''
    returnType: void
    signature: void pcache1Shrink(sqlite3_pcache *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcache1EnterMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:49560,1
    - Dst: pcache1LeaveMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:49562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_pcache*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49564
      start: 49557
    functionDepth: 1
    functionLinenumber: 49557
    functionLinenumberEnd: 49564
    functionName: pcache1Pagecount
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - pcache1LeaveMutex
    - pcache1EnterMutex
    linkageType: ''
    returnType: int
    signature: int pcache1Pagecount(sqlite3_pcache *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:49585,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:49587,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:49588,1
    - Dst: pcache1UnderMemoryPressure
      Src: /src/nss/lib/sqlite/sqlite3.c:49592,1
    - Dst: pcache1ResizeHash
      Src: /src/nss/lib/sqlite/sqlite3.c:49597,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:49598,1
    - Dst: pcache1UnderMemoryPressure
      Src: /src/nss/lib/sqlite/sqlite3.c:49603,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:49607,1
    - Dst: PAGE_IS_UNPINNED
      Src: /src/nss/lib/sqlite/sqlite3.c:49607,1
    - Dst: pcache1RemoveFromHash
      Src: /src/nss/lib/sqlite/sqlite3.c:49608,1
    - Dst: pcache1PinPage
      Src: /src/nss/lib/sqlite/sqlite3.c:49609,1
    - Dst: pcache1FreePage
      Src: /src/nss/lib/sqlite/sqlite3.c:49612,1
    - Dst: pcache1AllocPage
      Src: /src/nss/lib/sqlite/sqlite3.c:49623,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 3
    argNames:
    - pCache
    - iKey
    - createFlag
    argTypes:
    - PCache1*
    - unsigned int
    - int
    assertStmts:
    - condition: ( pCache->nPage >= pCache->nRecyclable )
      pos:
        line_end: 49584
        line_start: 49584
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pGroup->mxPinned == pGroup->nMaxPage + 10 - pGroup->nMinPage )
      pos:
        line_end: 49586
        line_start: 49586
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCache->n90pct == pCache->nMax*9/10 )
      pos:
        line_end: 49587
        line_start: 49587
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCache->nHash>0 && pCache->apHash )
      pos:
        line_end: 49597
        line_start: 49597
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( PAGE_IS_UNPINNED(pPage) )
      pos:
        line_end: 49606
        line_start: 49606
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 49642
      start: 49575
    functionDepth: 7
    functionLinenumber: 49575
    functionLinenumberEnd: 49642
    functionName: pcache1FetchStage2
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - pcache1PinPage
    - pcache1AllocPage
    - pcache1RemoveFromHash
    - assert
    - pcache1FreePage
    - PAGE_IS_UNPINNED
    - pcache1ResizeHash
    - pcache1UnderMemoryPressure
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: "SQLITE_NOINLINE *pcache1FetchStage2(\n  PCache1 *pCache, \n  unsigned
      int iKey, \n  int createFlag\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PAGE_IS_UNPINNED
      Src: /src/nss/lib/sqlite/sqlite3.c:49720,1
    - Dst: pcache1PinPage
      Src: /src/nss/lib/sqlite/sqlite3.c:49721,1
    - Dst: pcache1FetchStage2
      Src: /src/nss/lib/sqlite/sqlite3.c:49727,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - p
    - iKey
    - createFlag
    argTypes:
    - sqlite3_pcache*
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49731
      start: 49703
    functionDepth: 8
    functionLinenumber: 49703
    functionLinenumberEnd: 49731
    functionName: pcache1FetchNoMutex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - pcache1FetchStage2
    - pcache1PinPage
    - PAGE_IS_UNPINNED
    linkageType: ''
    returnType: PgHdr1
    signature: "PgHdr1 *pcache1FetchNoMutex(\n  sqlite3_pcache *p, \n  unsigned int
      iKey, \n  int createFlag\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcache1EnterMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:49741,1
    - Dst: pcache1FetchNoMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:49742,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:49743,1
    - Dst: pcache1LeaveMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:49744,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - p
    - iKey
    - createFlag
    argTypes:
    - sqlite3_pcache*
    - unsigned int
    - int
    assertStmts:
    - condition: ( pPage==0 || pCache->iMaxKey>=iKey )
      pos:
        line_end: 49742
        line_start: 49742
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 49746
      start: 49733
    functionDepth: 9
    functionLinenumber: 49733
    functionLinenumberEnd: 49746
    functionName: pcache1FetchWithMutex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - pcache1LeaveMutex
    - pcache1FetchNoMutex
    - pcache1EnterMutex
    linkageType: ''
    returnType: PgHdr1
    signature: "PgHdr1 *pcache1FetchWithMutex(\n  sqlite3_pcache *p, \n  unsigned
      int iKey, \n  int createFlag\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:49757,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:49758,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:49759,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:49760,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:49761,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:49762,1
    - Dst: pcache1FetchWithMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:49765,1
    - Dst: pcache1FetchNoMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:49769,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - p
    - iKey
    - createFlag
    argTypes:
    - sqlite3_pcache*
    - unsigned int
    - int
    assertStmts:
    - condition: ( offsetof(PgHdr1,page)==0 )
      pos:
        line_end: 49756
        line_start: 49756
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCache->nMin==0 || pCache->bPurgeable )
      pos:
        line_end: 49760
        line_start: 49760
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCache->bPurgeable==0 || pCache->nMin==10 )
      pos:
        line_end: 49759
        line_start: 49759
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCache->bPurgeable || createFlag!=1 )
      pos:
        line_end: 49757
        line_start: 49757
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCache->bPurgeable || pCache->nMin==0 )
      pos:
        line_end: 49758
        line_start: 49758
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCache->nHash>0 )
      pos:
        line_end: 49761
        line_start: 49761
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 49771
      start: 49748
    functionDepth: 10
    functionLinenumber: 49748
    functionLinenumberEnd: 49771
    functionName: pcache1Fetch
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - pcache1FetchNoMutex
    - pcache1FetchWithMutex
    linkageType: ''
    returnType: sqlite3_pcache_page
    signature: "sqlite3_pcache_page *pcache1Fetch(\n  sqlite3_pcache *p, \n  unsigned
      int iKey, \n  int createFlag\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:49788,1
    - Dst: pcache1EnterMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:49789,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:49794,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:49795,1
    - Dst: PAGE_IS_PINNED
      Src: /src/nss/lib/sqlite/sqlite3.c:49795,1
    - Dst: pcache1RemoveFromHash
      Src: /src/nss/lib/sqlite/sqlite3.c:49798,1
    - Dst: pcache1LeaveMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:49808,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - p
    - pPg
    - reuseUnlikely
    argTypes:
    - sqlite3_pcache*
    - sqlite3_pcache_page*
    - int
    assertStmts:
    - condition: ( pPage->pCache==pCache )
      pos:
        line_end: 49787
        line_start: 49787
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( PAGE_IS_PINNED(pPage) )
      pos:
        line_end: 49794
        line_start: 49794
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->pLruNext==0 )
      pos:
        line_end: 49793
        line_start: 49793
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 49809
      start: 49779
    functionDepth: 6
    functionLinenumber: 49779
    functionLinenumberEnd: 49809
    functionName: pcache1Unpin
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - pcache1EnterMutex
    - pcache1LeaveMutex
    - PAGE_IS_PINNED
    - pcache1RemoveFromHash
    - assert
    linkageType: ''
    returnType: void
    signature: "void pcache1Unpin(\n  sqlite3_pcache *p, \n  sqlite3_pcache_page *pPg,
      \n  int reuseUnlikely\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:49824,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:49825,1
    - Dst: pcache1EnterMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:49827,1
    - Dst: pcache1LeaveMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:49844,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 4
    argNames:
    - p
    - pPg
    - iOld
    - iNew
    argTypes:
    - sqlite3_pcache*
    - sqlite3_pcache_page*
    - unsigned int
    - unsigned int
    assertStmts:
    - condition: ( pPage->iKey==iOld )
      pos:
        line_end: 49823
        line_start: 49823
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->pCache==pCache )
      pos:
        line_end: 49824
        line_start: 49824
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 49845
      start: 49814
    functionDepth: 1
    functionLinenumber: 49814
    functionLinenumberEnd: 49845
    functionName: pcache1Rekey
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - pcache1LeaveMutex
    - pcache1EnterMutex
    linkageType: ''
    returnType: void
    signature: "void pcache1Rekey(\n  sqlite3_pcache *p,\n  sqlite3_pcache_page *pPg,\n
      \ unsigned int iOld,\n  unsigned int iNew\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcache1EnterMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:49856,1
    - Dst: pcache1TruncateUnsafe
      Src: /src/nss/lib/sqlite/sqlite3.c:49858,1
    - Dst: pcache1LeaveMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:49861,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - p
    - iLimit
    argTypes:
    - sqlite3_pcache*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49862
      start: 49854
    functionDepth: 6
    functionLinenumber: 49854
    functionLinenumberEnd: 49862
    functionName: pcache1Truncate
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - pcache1LeaveMutex
    - pcache1EnterMutex
    - pcache1TruncateUnsafe
    linkageType: ''
    returnType: void
    signature: void pcache1Truncate(sqlite3_pcache *p, unsigned int iLimit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:49872,1
    - Dst: pcache1EnterMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:49873,1
    - Dst: pcache1TruncateUnsafe
      Src: /src/nss/lib/sqlite/sqlite3.c:49874,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:49875,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:49877,1
    - Dst: pcache1EnforceMaxPage
      Src: /src/nss/lib/sqlite/sqlite3.c:49880,1
    - Dst: pcache1LeaveMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:49881,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:49882,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:49883,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:49884,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_pcache*
    assertStmts:
    - condition: ( pCache->bPurgeable || (pCache->nMax==0 && pCache->nMin==0) )
      pos:
        line_end: 49871
        line_start: 49871
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pGroup->nMinPage >= pCache->nMin )
      pos:
        line_end: 49876
        line_start: 49876
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pGroup->nMaxPage >= pCache->nMax )
      pos:
        line_end: 49874
        line_start: 49874
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 49885
      start: 49869
    functionDepth: 7
    functionLinenumber: 49869
    functionLinenumberEnd: 49885
    functionName: pcache1Destroy
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - pcache1EnterMutex
    - pcache1EnforceMaxPage
    - pcache1TruncateUnsafe
    - pcache1LeaveMutex
    - assert
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void pcache1Destroy(sqlite3_pcache *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_config
      Src: /src/nss/lib/sqlite/sqlite3.c:49908,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49909
      start: 49892
    functionDepth: 1
    functionLinenumber: 49892
    functionLinenumberEnd: 49909
    functionName: sqlite3PCacheSetDefault
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_config
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PCacheSetDefault(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ROUND8
      Src: /src/nss/lib/sqlite/sqlite3.c:49914,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49914
      start: 49914
    functionDepth: 1
    functionLinenumber: 49914
    functionLinenumberEnd: 49914
    functionName: sqlite3HeaderSizePcache1
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ROUND8
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3HeaderSizePcache1(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49922
      start: 49920
    functionDepth: 0
    functionLinenumber: 49920
    functionLinenumberEnd: 49922
    functionName: sqlite3_mutex *sqlite3Pcache1Mutex(void)
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3_mutex *sqlite3Pcache1Mutex(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:49936,1
    - Dst: sqlite3_mutex_notheld
      Src: /src/nss/lib/sqlite/sqlite3.c:49936,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:49937,1
    - Dst: sqlite3_mutex_notheld
      Src: /src/nss/lib/sqlite/sqlite3.c:49937,1
    - Dst: pcache1EnterMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:49940,1
    - Dst: pcache1MemSize
      Src: /src/nss/lib/sqlite/sqlite3.c:49945,1
    - Dst: sqlite3MemSize
      Src: /src/nss/lib/sqlite/sqlite3.c:49947,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:49949,1
    - Dst: PAGE_IS_UNPINNED
      Src: /src/nss/lib/sqlite/sqlite3.c:49949,1
    - Dst: pcache1PinPage
      Src: /src/nss/lib/sqlite/sqlite3.c:49950,1
    - Dst: pcache1RemoveFromHash
      Src: /src/nss/lib/sqlite/sqlite3.c:49951,1
    - Dst: pcache1LeaveMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:49953,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - nReq
    argTypes:
    - int
    assertStmts:
    - condition: ( sqlite3_mutex_notheld(pcache1.grp.mutex) )
      pos:
        line_end: 49935
        line_start: 49935
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3_mutex_notheld(pcache1.mutex) )
      pos:
        line_end: 49936
        line_start: 49936
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( PAGE_IS_UNPINNED(p) )
      pos:
        line_end: 49948
        line_start: 49948
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 49956
      start: 49934
    functionDepth: 6
    functionLinenumber: 49934
    functionLinenumberEnd: 49956
    functionName: sqlite3PcacheReleaseMemory
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - pcache1EnterMutex
    - pcache1PinPage
    - pcache1LeaveMutex
    - sqlite3MemSize
    - pcache1RemoveFromHash
    - assert
    - PAGE_IS_UNPINNED
    - pcache1MemSize
    - sqlite3_mutex_notheld
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PcacheReleaseMemory(int nReq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:49973,1
    - Dst: PAGE_IS_UNPINNED
      Src: /src/nss/lib/sqlite/sqlite3.c:49973,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - pnCurrent
    - pnMax
    - pnMin
    - pnRecyclable
    argTypes:
    - int*
    - int*
    - int*
    - int*
    assertStmts:
    - condition: ( PAGE_IS_UNPINNED(p) )
      pos:
        line_end: 49972
        line_start: 49972
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 49980
      start: 49964
    functionDepth: 1
    functionLinenumber: 49964
    functionLinenumberEnd: 49980
    functionName: sqlite3PcacheStats
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - PAGE_IS_UNPINNED
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3PcacheStats(\n  int *pnCurrent,      /* OUT:
      Total number of pages cached */\n  int *pnMax,          /* OUT: Global maximum
      cache size */\n  int *pnMin,          /* OUT: Sum of PCache1.nMin for purgeable
      caches */\n  int *pnRecyclable    /* OUT: Total number of pages available for
      recycling */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbMallocRawNN
      Src: /src/nss/lib/sqlite/sqlite3.c:50115,1
    - Dst: sqlite3DbMallocSize
      Src: /src/nss/lib/sqlite/sqlite3.c:50117,1
    - Dst: ROUND8
      Src: /src/nss/lib/sqlite/sqlite3.c:50123,1
    - Dst: ROUND8
      Src: /src/nss/lib/sqlite/sqlite3.c:50124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50129
      start: 50114
    functionDepth: 7
    functionLinenumber: 50114
    functionLinenumberEnd: 50129
    functionName: sqlite3RowSetInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbMallocRawNN
    - ROUND8
    - sqlite3DbMallocSize
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3RowSetInit(sqlite3 *db)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:50141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - pArg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50149
      start: 50136
    functionDepth: 6
    functionLinenumber: 50136
    functionLinenumberEnd: 50149
    functionName: sqlite3RowSetClear
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbFree
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3RowSetClear(void *pArg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3RowSetClear
      Src: /src/nss/lib/sqlite/sqlite3.c:50157,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:50158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pArg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50159
      start: 50156
    functionDepth: 7
    functionLinenumber: 50156
    functionLinenumberEnd: 50159
    functionName: sqlite3RowSetDelete
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbFree
    - sqlite3RowSetClear
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3RowSetDelete(void *pArg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:50170,1
    - Dst: sqlite3DbMallocRawNN
      Src: /src/nss/lib/sqlite/sqlite3.c:50175,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - p
    argTypes:
    - RowSet*
    assertStmts:
    - condition: ( p!=0 )
      pos:
        line_end: 50169
        line_start: 50169
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 50186
      start: 50169
    functionDepth: 7
    functionLinenumber: 50169
    functionLinenumberEnd: 50186
    functionName: rowSetEntryAlloc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3DbMallocRawNN
    linkageType: ''
    returnType: struct RowSetEntry
    signature: struct RowSetEntry *rowSetEntryAlloc(RowSet *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:50199,1
    - Dst: rowSetEntryAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:50201,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - p
    - rowid
    argTypes:
    - RowSet*
    - i64
    assertStmts:
    - condition: ( p!=0 && (p->rsFlags & ROWSET_NEXT)==0 )
      pos:
        line_end: 50198
        line_start: 50198
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 50217
      start: 50194
    functionDepth: 8
    functionLinenumber: 50194
    functionLinenumberEnd: 50217
    functionName: sqlite3RowSetInsert
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - rowSetEntryAlloc
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3RowSetInsert(RowSet *p, i64 rowid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:50233,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:50235,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:50236,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 2
    argNames:
    - pA
    - pB
    argTypes:
    - struct RowSetEntry*
    - struct RowSetEntry*
    assertStmts:
    - condition: ( pA!=0 && pB!=0 )
      pos:
        line_end: 50232
        line_start: 50232
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pA->pRight==0 || pA->v<=pA->pRight->v )
      pos:
        line_end: 50234
        line_start: 50234
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pB->pRight==0 || pB->v<=pB->pRight->v )
      pos:
        line_end: 50235
        line_start: 50235
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 50254
      start: 50225
    functionDepth: 0
    functionLinenumber: 50225
    functionLinenumberEnd: 50254
    functionName: rowSetEntryMerge
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: struct RowSetEntry
    signature: "struct RowSetEntry *rowSetEntryMerge(\n  struct RowSetEntry *pA,    /*
      First sorted list to be merged */\n  struct RowSetEntry *pB     /* Second sorted
      list to be merged */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:50264,1
    - Dst: rowSetEntryMerge
      Src: /src/nss/lib/sqlite/sqlite3.c:50269,1
    - Dst: rowSetEntryMerge
      Src: /src/nss/lib/sqlite/sqlite3.c:50278,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - pIn
    argTypes:
    - struct RowSetEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50281
      start: 50260
    functionDepth: 1
    functionLinenumber: 50260
    functionLinenumberEnd: 50281
    functionName: rowSetEntrySort
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - rowSetEntryMerge
    linkageType: ''
    returnType: struct RowSetEntry
    signature: struct RowSetEntry *rowSetEntrySort(struct RowSetEntry *pIn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:50294,1
    - Dst: rowSetTreeToList
      Src: /src/nss/lib/sqlite/sqlite3.c:50297,1
    - Dst: rowSetTreeToList
      Src: /src/nss/lib/sqlite/sqlite3.c:50303,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:50307,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - pIn
    - ppFirst
    - ppLast
    argTypes:
    - struct RowSetEntry*
    - struct RowSetEntry**
    - struct RowSetEntry**
    assertStmts:
    - condition: ( pIn!=0 )
      pos:
        line_end: 50293
        line_start: 50293
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (*ppLast)->pRight==0 )
      pos:
        line_end: 50306
        line_start: 50306
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 50308
      start: 50289
    functionDepth: 1
    functionLinenumber: 50289
    functionLinenumberEnd: 50308
    functionName: rowSetTreeToList
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - rowSetTreeToList
    linkageType: ''
    returnType: void
    signature: "void rowSetTreeToList(\n  struct RowSetEntry *pIn,         /* Root
      of the input tree */\n  struct RowSetEntry **ppFirst,    /* Write head of the
      output list here */\n  struct RowSetEntry **ppLast      /* Write tail of the
      output list here */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rowSetNDeepTree
      Src: /src/nss/lib/sqlite/sqlite3.c:50338,1
    - Dst: rowSetNDeepTree
      Src: /src/nss/lib/sqlite/sqlite3.c:50347,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - ppList
    - iDepth
    argTypes:
    - struct RowSetEntry**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50354
      start: 50324
    functionDepth: 1
    functionLinenumber: 50324
    functionLinenumberEnd: 50354
    functionName: rowSetNDeepTree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - rowSetNDeepTree
    linkageType: ''
    returnType: struct RowSetEntry
    signature: "struct RowSetEntry *rowSetNDeepTree(\n  struct RowSetEntry **ppList,\n
      \ int iDepth\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:50365,1
    - Dst: rowSetNDeepTree
      Src: /src/nss/lib/sqlite/sqlite3.c:50374,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - pList
    argTypes:
    - struct RowSetEntry*
    assertStmts:
    - condition: ( pList!=0 )
      pos:
        line_end: 50364
        line_start: 50364
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 50377
      start: 50360
    functionDepth: 2
    functionLinenumber: 50360
    functionLinenumberEnd: 50377
    functionName: rowSetListToTree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - rowSetNDeepTree
    linkageType: ''
    returnType: struct RowSetEntry
    signature: struct RowSetEntry *rowSetListToTree(struct RowSetEntry *pList)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:50393,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:50394,1
    - Dst: rowSetEntrySort
      Src: /src/nss/lib/sqlite/sqlite3.c:50399,1
    - Dst: sqlite3RowSetClear
      Src: /src/nss/lib/sqlite/sqlite3.c:50410,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - p
    - pRowid
    argTypes:
    - RowSet*
    - i64*
    assertStmts:
    - condition: ( p!=0 )
      pos:
        line_end: 50392
        line_start: 50392
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->pForest==0 )
      pos:
        line_end: 50393
        line_start: 50393
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 50416
      start: 50392
    functionDepth: 7
    functionLinenumber: 50392
    functionLinenumberEnd: 50416
    functionName: sqlite3RowSetNext
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3RowSetClear
    - rowSetEntrySort
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3RowSetNext(RowSet *p, i64 *pRowid)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:50430,1
    - Dst: rowSetEntrySort
      Src: /src/nss/lib/sqlite/sqlite3.c:50441,1
    - Dst: rowSetListToTree
      Src: /src/nss/lib/sqlite/sqlite3.c:50446,1
    - Dst: rowSetTreeToList
      Src: /src/nss/lib/sqlite/sqlite3.c:50450,1
    - Dst: rowSetEntryMerge
      Src: /src/nss/lib/sqlite/sqlite3.c:50452,1
    - Dst: rowSetEntryAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:50456,1
    - Dst: rowSetListToTree
      Src: /src/nss/lib/sqlite/sqlite3.c:50460,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 3
    argNames:
    - pRowSet
    - iBatch
    - iRowid
    argTypes:
    - RowSet*
    - int
    - sqlite3_int64
    assertStmts:
    - condition: ( pRowSet!=0 && (pRowSet->rsFlags & ROWSET_NEXT)==0 )
      pos:
        line_end: 50429
        line_start: 50429
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 50486
      start: 50426
    functionDepth: 8
    functionLinenumber: 50426
    functionLinenumberEnd: 50486
    functionName: sqlite3RowSetTest
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - rowSetTreeToList
    - rowSetListToTree
    - rowSetEntryAlloc
    - rowSetEntrySort
    - assert
    - rowSetEntryMerge
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3RowSetTest(RowSet *pRowSet, int iBatch, sqlite3_int64
      iRowid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50539
      start: 50538
    functionDepth: 0
    functionLinenumber: 50538
    functionLinenumberEnd: 50539
    functionName: WAL_SYNC_FLAGS
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WAL_SYNC_FLAGS(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50540
      start: 50539
    functionDepth: 0
    functionLinenumber: 50539
    functionLinenumberEnd: 50540
    functionName: CKPT_SYNC_FLAGS
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CKPT_SYNC_FLAGS(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50543
      start: 50542
    functionDepth: 0
    functionLinenumber: 50542
    functionLinenumberEnd: 50543
    functionName: sqlite3WalOpen
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3WalOpen(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - v
    - ','
    - w
    - ','
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50545
      start: 50544
    functionDepth: 0
    functionLinenumber: 50544
    functionLinenumberEnd: 50545
    functionName: sqlite3WalClose
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3WalClose(v,w,x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50546
      start: 50545
    functionDepth: 0
    functionLinenumber: 50545
    functionLinenumberEnd: 50546
    functionName: sqlite3WalBeginReadTransaction
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3WalBeginReadTransaction(y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50548
      start: 50547
    functionDepth: 0
    functionLinenumber: 50547
    functionLinenumberEnd: 50548
    functionName: sqlite3WalDbsize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3WalDbsize(y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50549
      start: 50548
    functionDepth: 0
    functionLinenumber: 50548
    functionLinenumberEnd: 50549
    functionName: sqlite3WalBeginWriteTransaction
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3WalBeginWriteTransaction(y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50550
      start: 50549
    functionDepth: 0
    functionLinenumber: 50549
    functionLinenumberEnd: 50550
    functionName: sqlite3WalEndWriteTransaction
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3WalEndWriteTransaction(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50551
      start: 50550
    functionDepth: 0
    functionLinenumber: 50550
    functionLinenumberEnd: 50551
    functionName: sqlite3WalUndo
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3WalUndo(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50553
      start: 50552
    functionDepth: 0
    functionLinenumber: 50552
    functionLinenumberEnd: 50553
    functionName: sqlite3WalSavepointUndo
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3WalSavepointUndo(y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - u
    - ','
    - v
    - ','
    - w
    - ','
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50554
      start: 50553
    functionDepth: 0
    functionLinenumber: 50553
    functionLinenumberEnd: 50554
    functionName: sqlite3WalFrames
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3WalFrames(u,v,w,x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 21
    argNames:
    - (
    - q
    - ','
    - r
    - ','
    - s
    - ','
    - t
    - ','
    - u
    - ','
    - v
    - ','
    - w
    - ','
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50555
      start: 50554
    functionDepth: 0
    functionLinenumber: 50554
    functionLinenumberEnd: 50555
    functionName: sqlite3WalCheckpoint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3WalCheckpoint(q,r,s,t,u,v,w,x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50556
      start: 50555
    functionDepth: 0
    functionLinenumber: 50555
    functionLinenumberEnd: 50556
    functionName: sqlite3WalCallback
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3WalCallback(z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50557
      start: 50556
    functionDepth: 0
    functionLinenumber: 50556
    functionLinenumberEnd: 50557
    functionName: sqlite3WalExclusiveMode
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3WalExclusiveMode(y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50558
      start: 50557
    functionDepth: 0
    functionLinenumber: 50557
    functionLinenumberEnd: 50558
    functionName: sqlite3WalHeapMemory
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3WalHeapMemory(z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50559
      start: 50558
    functionDepth: 0
    functionLinenumber: 50558
    functionLinenumberEnd: 50559
    functionName: sqlite3WalFramesize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3WalFramesize(z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50560
      start: 50559
    functionDepth: 0
    functionLinenumber: 50559
    functionLinenumberEnd: 50560
    functionName: sqlite3WalFindFrame
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3WalFindFrame(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50561
      start: 50560
    functionDepth: 0
    functionLinenumber: 50560
    functionLinenumberEnd: 50561
    functionName: sqlite3WalFile
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3WalFile(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50762
      start: 50761
    functionDepth: 0
    functionLinenumber: 50761
    functionLinenumberEnd: 50762
    functionName: PAGERTRACE
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAGERTRACE(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50775
      start: 50774
    functionDepth: 0
    functionLinenumber: 50774
    functionLinenumberEnd: 50775
    functionName: PAGERID
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAGERID(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50776
      start: 50775
    functionDepth: 0
    functionLinenumber: 50775
    functionLinenumberEnd: 50776
    functionName: FILEHANDLEID
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FILEHANDLEID(fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - P
    - ','
    - D
    - ','
    - N
    - ','
    - X
    - ','
    - E
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51058
      start: 51056
    functionDepth: 0
    functionLinenumber: 51056
    functionLinenumberEnd: 51058
    functionName: CODEC1
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CODEC1(P,D,N,X,E)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - P
    - ','
    - D
    - ','
    - N
    - ','
    - X
    - ','
    - E
    - ','
    - O
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51061
      start: 51058
    functionDepth: 0
    functionLinenumber: 51058
    functionLinenumberEnd: 51061
    functionName: CODEC2
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CODEC2(P,D,N,X,E,O)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - P
    - ','
    - D
    - ','
    - N
    - ','
    - X
    - ','
    - E
    - ','
    - O
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51064
      start: 51063
    functionDepth: 0
    functionLinenumber: 51063
    functionLinenumberEnd: 51064
    functionName: CODEC2
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CODEC2(P,D,N,X,E,O)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51385
      start: 51384
    functionDepth: 0
    functionLinenumber: 51384
    functionLinenumberEnd: 51385
    functionName: PAGER_INCR
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PAGER_INCR(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pPager
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51423
      start: 51422
    functionDepth: 0
    functionLinenumber: 51422
    functionLinenumberEnd: 51423
    functionName: JOURNAL_PG_SZ
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JOURNAL_PG_SZ(pPager)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pPager
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51429
      start: 51428
    functionDepth: 0
    functionLinenumber: 51428
    functionLinenumberEnd: 51429
    functionName: JOURNAL_HDR_SZ
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JOURNAL_HDR_SZ(pPager)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51448
      start: 51447
    functionDepth: 0
    functionLinenumber: 51447
    functionLinenumberEnd: 51448
    functionName: USEFETCH
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: USEFETCH(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51450
      start: 51449
    functionDepth: 0
    functionLinenumber: 51449
    functionLinenumberEnd: 51450
    functionName: USEFETCH
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: USEFETCH(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pFd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51470
      start: 51469
    functionDepth: 0
    functionLinenumber: 51469
    functionLinenumberEnd: 51470
    functionName: isOpen
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: isOpen(pFd)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PCacheIsDirty
      Src: /src/nss/lib/sqlite/sqlite3.c:51482,1
    - Dst: sqlite3WalFindFrame
      Src: /src/nss/lib/sqlite/sqlite3.c:51490,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - pPager
    - pgno
    argTypes:
    - Pager*
    - Pgno
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51495
      start: 51480
    functionDepth: 1
    functionLinenumber: 51480
    functionLinenumberEnd: 51495
    functionName: sqlite3PagerDirectReadOk
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3WalFindFrame
    - sqlite3PCacheIsDirty
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerDirectReadOk(Pager *pPager, Pgno pgno)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51500
      start: 51499
    functionDepth: 0
    functionLinenumber: 51499
    functionLinenumberEnd: 51500
    functionName: pagerUseWal
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pagerUseWal(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51502
      start: 51501
    functionDepth: 0
    functionLinenumber: 51501
    functionLinenumberEnd: 51502
    functionName: pagerUseWal
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pagerUseWal(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51503
      start: 51502
    functionDepth: 0
    functionLinenumber: 51502
    functionLinenumberEnd: 51503
    functionName: pagerRollbackWal
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pagerRollbackWal(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - v
    - ','
    - w
    - ','
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51504
      start: 51503
    functionDepth: 0
    functionLinenumber: 51503
    functionLinenumberEnd: 51504
    functionName: pagerWalFrames
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pagerWalFrames(v,w,x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51505
      start: 51504
    functionDepth: 0
    functionLinenumber: 51504
    functionLinenumberEnd: 51505
    functionName: pagerOpenWalIfPresent
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pagerOpenWalIfPresent(z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51506
      start: 51505
    functionDepth: 0
    functionLinenumber: 51505
    functionLinenumberEnd: 51506
    functionName: pagerBeginReadTransaction
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pagerBeginReadTransaction(z)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:51521,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:51534,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:51535,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:51540,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:51541,1
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:51541,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:51552,1
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:51552,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:51553,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:51554,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:51557,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:51558,1
    - Dst: pagerUseWal
      Src: /src/nss/lib/sqlite/sqlite3.c:51558,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:51564,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:51565,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:51569,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:51570,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:51571,1
    - Dst: sqlite3PcacheRefCount
      Src: /src/nss/lib/sqlite/sqlite3.c:51571,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:51575,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:51576,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:51577,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:51581,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:51582,1
    - Dst: pagerUseWal
      Src: /src/nss/lib/sqlite/sqlite3.c:51583,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:51584,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:51586,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:51587,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:51588,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:51589,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:51593,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:51594,1
    - Dst: pagerUseWal
      Src: /src/nss/lib/sqlite/sqlite3.c:51595,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:51601,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:51602,1
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:51602,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:51607,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:51608,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:51612,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:51613,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:51614,1
    - Dst: pagerUseWal
      Src: /src/nss/lib/sqlite/sqlite3.c:51614,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:51615,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:51616,1
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:51616,1
    - Dst: sqlite3OsDeviceCharacteristics
      Src: /src/nss/lib/sqlite/sqlite3.c:51619,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:51621,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:51625,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:51626,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:51627,1
    - Dst: pagerUseWal
      Src: /src/nss/lib/sqlite/sqlite3.c:51627,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:51628,1
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:51628,1
    - Dst: sqlite3OsDeviceCharacteristics
      Src: /src/nss/lib/sqlite/sqlite3.c:51631,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:51640,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:51641,1
    - Dst: sqlite3PcacheRefCount
      Src: /src/nss/lib/sqlite/sqlite3.c:51641,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 67
    argCount: 1
    argNames:
    - p
    argTypes:
    - Pager*
    assertStmts:
    - condition: ( p->journalMode==PAGER_JOURNALMODE_OFF || p->useJournal )
      pos:
        line_end: 51539
        line_start: 51539
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->tempFile==0 || pPager->changeCountDone )
      pos:
        line_end: 51534
        line_start: 51534
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->journalMode!=PAGER_JOURNALMODE_OFF || !isOpen(p->jfd) )
      pos:
        line_end: 51540
        line_start: 51540
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !isOpen(p->fd) )
      pos:
        line_end: 51551
        line_start: 51551
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->noSync )
      pos:
        line_end: 51552
        line_start: 51552
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->eState!=PAGER_ERROR && p->eState!=PAGER_OPEN )
      pos:
        line_end: 51556
        line_start: 51556
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->eLock!=PENDING_LOCK )
      pos:
        line_end: 51564
        line_start: 51564
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->errCode==SQLITE_OK )
      pos:
        line_end: 51612
        line_start: 51612
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !pagerUseWal(pPager) )
      pos:
        line_end: 51613
        line_start: 51613
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->tempFile==0 || p->eLock==EXCLUSIVE_LOCK )
      pos:
        line_end: 51533
        line_start: 51533
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->errCode==SQLITE_OK )
      pos:
        line_end: 51569
        line_start: 51569
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->errCode==SQLITE_OK )
      pos:
        line_end: 51581
        line_start: 51581
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->eLock>=RESERVED_LOCK )
      pos:
        line_end: 51583
        line_start: 51583
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->setMaster==0 )
      pos:
        line_end: 51588
        line_start: 51588
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->eLock!=UNKNOWN_LOCK )
      pos:
        line_end: 51592
        line_start: 51592
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->errCode==SQLITE_OK )
      pos:
        line_end: 51593
        line_start: 51593
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->dbOrigSize==pPager->dbFileSize )
      pos:
        line_end: 51606
        line_start: 51606
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->eLock==EXCLUSIVE_LOCK )
      pos:
        line_end: 51611
        line_start: 51611
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->eLock==EXCLUSIVE_LOCK )
      pos:
        line_end: 51624
        line_start: 51624
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( isOpen(p->jfd) \n           || p->journalMode==PAGER_JOURNALMODE_OFF
        \n           || p->journalMode==PAGER_JOURNALMODE_WAL \n           || (sqlite3OsDeviceCharacteristics(p->fd)&SQLITE_IOCAP_BATCH_ATOMIC)\n
        \     )"
      pos:
        line_end: 51631
        line_start: 51627
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->errCode==SQLITE_OK )
      pos:
        line_end: 51625
        line_start: 51625
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->eLock>=SHARED_LOCK )
      pos:
        line_end: 51576
        line_start: 51576
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( p->journalMode==PAGER_JOURNALMODE_OFF \n         || p->journalMode==PAGER_JOURNALMODE_MEMORY
        \n    )"
      pos:
        line_end: 51555
        line_start: 51553
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !MEMDB )
      pos:
        line_end: 51568
        line_start: 51568
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->changeCountDone==0 || pPager->eLock>=RESERVED_LOCK )
      pos:
        line_end: 51563
        line_start: 51563
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3PcacheRefCount(pPager->pPCache)==0 || pPager->tempFile )
      pos:
        line_end: 51570
        line_start: 51570
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->errCode==SQLITE_OK )
      pos:
        line_end: 51574
        line_start: 51574
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->eLock!=UNKNOWN_LOCK )
      pos:
        line_end: 51575
        line_start: 51575
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->dbSize==pPager->dbOrigSize )
      pos:
        line_end: 51585
        line_start: 51585
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->dbOrigSize==pPager->dbHintSize )
      pos:
        line_end: 51587
        line_start: 51587
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->eLock>=RESERVED_LOCK )
      pos:
        line_end: 51600
        line_start: 51600
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( isOpen(p->jfd) \n             || p->journalMode==PAGER_JOURNALMODE_OFF
        \n             || p->journalMode==PAGER_JOURNALMODE_WAL \n        )"
      pos:
        line_end: 51604
        line_start: 51601
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->eLock>=EXCLUSIVE_LOCK )
      pos:
        line_end: 51614
        line_start: 51614
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->eLock!=UNKNOWN_LOCK )
      pos:
        line_end: 51580
        line_start: 51580
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->dbOrigSize==pPager->dbFileSize )
      pos:
        line_end: 51586
        line_start: 51586
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( isOpen(p->jfd) \n           || p->journalMode==PAGER_JOURNALMODE_OFF
        \n           || p->journalMode==PAGER_JOURNALMODE_WAL \n           || (sqlite3OsDeviceCharacteristics(p->fd)&SQLITE_IOCAP_BATCH_ATOMIC)\n
        \     )"
      pos:
        line_end: 51619
        line_start: 51615
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->errCode!=SQLITE_OK )
      pos:
        line_end: 51639
        line_start: 51639
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( p->eState==PAGER_OPEN\n       || p->eState==PAGER_READER\n       ||
        p->eState==PAGER_WRITER_LOCKED\n       || p->eState==PAGER_WRITER_CACHEMOD\n
        \      || p->eState==PAGER_WRITER_DBMOD\n       || p->eState==PAGER_WRITER_FINISHED\n
        \      || p->eState==PAGER_ERROR\n  )"
      pos:
        line_end: 51527
        line_start: 51520
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pagerUseWal(p)==0 )
      pos:
        line_end: 51557
        line_start: 51557
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->dbOrigSize==pPager->dbHintSize )
      pos:
        line_end: 51607
        line_start: 51607
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !pagerUseWal(pPager) )
      pos:
        line_end: 51626
        line_start: 51626
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3PcacheRefCount(pPager->pPCache)>0 || pPager->tempFile )
      pos:
        line_end: 51640
        line_start: 51640
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->dbOrigSize<=pPager->dbHintSize )
      pos:
        line_end: 51620
        line_start: 51620
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 51646
      start: 51517
    functionDepth: 1
    functionLinenumber: 51517
    functionLinenumberEnd: 51646
    functionName: assert_pager_state
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsDeviceCharacteristics
    - isOpen
    - pagerUseWal
    - sqlite3PcacheRefCount
    - assert
    linkageType: ''
    returnType: int
    signature: int assert_pager_state(Pager *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:51665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - Pager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51701
      start: 51662
    functionDepth: 10
    functionLinenumber: 51662
    functionLinenumberEnd: 51701
    functionName: print_pager_state
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_snprintf
    linkageType: ''
    returnType: char
    signature: char *print_pager_state(Pager *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: USEFETCH
      Src: /src/nss/lib/sqlite/sqlite3.c:51719,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51729
      start: 51715
    functionDepth: 1
    functionLinenumber: 51715
    functionLinenumberEnd: 51729
    functionName: setGetterMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - USEFETCH
    linkageType: ''
    returnType: void
    signature: void setGetterMethod(Pager *pPager)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BitvecTestNotNull
      Src: /src/nss/lib/sqlite/sqlite3.c:51747,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - pPg
    argTypes:
    - PgHdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51752
      start: 51740
    functionDepth: 2
    functionLinenumber: 51740
    functionLinenumberEnd: 51752
    functionName: subjRequiresPage
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BitvecTestNotNull
    linkageType: ''
    returnType: int
    signature: int subjRequiresPage(PgHdr *pPg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BitvecTest
      Src: /src/nss/lib/sqlite/sqlite3.c:51759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pPager
    - pPg
    argTypes:
    - Pager*
    - PgHdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51760
      start: 51758
    functionDepth: 3
    functionLinenumber: 51758
    functionLinenumberEnd: 51760
    functionName: pageInJournal
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BitvecTest
    linkageType: ''
    returnType: int
    signature: int pageInJournal(Pager *pPager, PgHdr *pPg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3OsRead
      Src: /src/nss/lib/sqlite/sqlite3.c:51772,1
    - Dst: sqlite3Get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:51774,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - fd
    - offset
    - pRes
    argTypes:
    - sqlite3_file*
    - i64
    - u32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51777
      start: 51770
    functionDepth: 2
    functionLinenumber: 51770
    functionLinenumberEnd: 51777
    functionName: read32bits
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsRead
    - sqlite3Get4byte
    linkageType: ''
    returnType: int
    signature: int read32bits(sqlite3_file *fd, i64 offset, u32 *pRes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - A
    - ','
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51783
      start: 51782
    functionDepth: 0
    functionLinenumber: 51782
    functionLinenumberEnd: 51783
    functionName: put32bits
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: put32bits(A,B)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: put32bits
      Src: /src/nss/lib/sqlite/sqlite3.c:51791,1
    - Dst: sqlite3OsWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:51792,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fd
    - offset
    - val
    argTypes:
    - sqlite3_file*
    - i64
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51793
      start: 51789
    functionDepth: 2
    functionLinenumber: 51789
    functionLinenumberEnd: 51793
    functionName: write32bits
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - put32bits
    - sqlite3OsWrite
    linkageType: ''
    returnType: int
    signature: int write32bits(sqlite3_file *fd, i64 offset, u32 val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:51807,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:51808,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:51809,1
    - Dst: pagerUseWal
      Src: /src/nss/lib/sqlite/sqlite3.c:51809,1
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:51810,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:51811,1
    - Dst: sqlite3OsUnlock
      Src: /src/nss/lib/sqlite/sqlite3.c:51812,1
    - Dst: IOTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:51816,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - pPager
    - eLock
    argTypes:
    - Pager*
    - int
    assertStmts:
    - condition: ( !pPager->exclusiveMode || pPager->eLock==eLock )
      pos:
        line_end: 51806
        line_start: 51806
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( eLock==NO_LOCK || eLock==SHARED_LOCK )
      pos:
        line_end: 51807
        line_start: 51807
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( eLock!=NO_LOCK || pagerUseWal(pPager)==0 )
      pos:
        line_end: 51808
        line_start: 51808
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->eLock>=eLock )
      pos:
        line_end: 51810
        line_start: 51810
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 51819
      start: 51804
    functionDepth: 1
    functionLinenumber: 51804
    functionLinenumberEnd: 51819
    functionName: pagerUnlockDb
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsUnlock
    - isOpen
    - pagerUseWal
    - assert
    - IOTRACE
    linkageType: ''
    returnType: int
    signature: int pagerUnlockDb(Pager *pPager, int eLock)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:51834,1
    - Dst: sqlite3OsLock
      Src: /src/nss/lib/sqlite/sqlite3.c:51836,1
    - Dst: IOTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:51839,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 2
    argNames:
    - pPager
    - eLock
    argTypes:
    - Pager*
    - int
    assertStmts:
    - condition: ( eLock==SHARED_LOCK || eLock==RESERVED_LOCK || eLock==EXCLUSIVE_LOCK
        )
      pos:
        line_end: 51833
        line_start: 51833
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 51843
      start: 51831
    functionDepth: 2
    functionLinenumber: 51831
    functionLinenumberEnd: 51843
    functionName: pagerLockDb
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3OsLock
    - IOTRACE
    linkageType: ''
    returnType: int
    signature: int pagerLockDb(Pager *pPager, int eLock)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:51865,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:51871,1
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:51871,1
    - Dst: sqlite3OsDeviceCharacteristics
      Src: /src/nss/lib/sqlite/sqlite3.c:51872,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:51874,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:51888,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:51889,1
    - Dst: JOURNAL_HDR_SZ
      Src: /src/nss/lib/sqlite/sqlite3.c:51895,1
    - Dst: JOURNAL_PG_SZ
      Src: /src/nss/lib/sqlite/sqlite3.c:51895,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts:
    - condition: ( !MEMDB )
      pos:
        line_end: 51864
        line_start: 51864
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( isOpen(pPager->fd) )
      pos:
        line_end: 51870
        line_start: 51870
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (SQLITE_IOCAP_ATOMIC512==(512>>8))
      pos:
        line_end: 51887
        line_start: 51887
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (SQLITE_IOCAP_ATOMIC64K==(65536>>8))
      pos:
        line_end: 51888
        line_start: 51888
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 51899
      start: 51864
    functionDepth: 1
    functionLinenumber: 51864
    functionLinenumberEnd: 51899
    functionName: jrnlBufferSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsDeviceCharacteristics
    - isOpen
    - JOURNAL_HDR_SZ
    - UNUSED_PARAMETER
    - assert
    - JOURNAL_PG_SZ
    linkageType: ''
    returnType: int
    signature: int jrnlBufferSize(Pager *pPager)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - nByte
    - pData
    argTypes:
    - int
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51917
      start: 51910
    functionDepth: 0
    functionLinenumber: 51910
    functionLinenumberEnd: 51917
    functionName: pager_datahash
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: u32 pager_datahash(int nByte, unsigned char *pData)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pager_datahash
      Src: /src/nss/lib/sqlite/sqlite3.c:51919,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pPage
    argTypes:
    - PgHdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51920
      start: 51918
    functionDepth: 1
    functionLinenumber: 51918
    functionLinenumberEnd: 51920
    functionName: pager_pagehash
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - pager_datahash
    linkageType: ''
    returnType: u32
    signature: u32 pager_pagehash(PgHdr *pPage)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pager_pagehash
      Src: /src/nss/lib/sqlite/sqlite3.c:51922,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pPage
    argTypes:
    - PgHdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51923
      start: 51921
    functionDepth: 2
    functionLinenumber: 51921
    functionLinenumberEnd: 51923
    functionName: pager_set_pagehash
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - pager_pagehash
    linkageType: ''
    returnType: void
    signature: void pager_set_pagehash(PgHdr *pPage)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51931
      start: 51930
    functionDepth: 0
    functionLinenumber: 51930
    functionLinenumberEnd: 51931
    functionName: CHECK_PAGE
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_PAGE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:51933,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:51934,1
    - Dst: pager_pagehash
      Src: /src/nss/lib/sqlite/sqlite3.c:51934,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - pPg
    argTypes:
    - PgHdr*
    assertStmts:
    - condition: ( pPager->eState!=PAGER_ERROR )
      pos:
        line_end: 51932
        line_start: 51932
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pPg->flags&PGHDR_DIRTY) || pPg->pageHash==pager_pagehash(pPg)
        )
      pos:
        line_end: 51933
        line_start: 51933
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 51935
      start: 51931
    functionDepth: 2
    functionLinenumber: 51931
    functionLinenumberEnd: 51935
    functionName: checkPage
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - pager_pagehash
    linkageType: ''
    returnType: void
    signature: void checkPage(PgHdr *pPg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - Y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51939
      start: 51938
    functionDepth: 0
    functionLinenumber: 51938
    functionLinenumberEnd: 51939
    functionName: pager_datahash
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pager_datahash(X,Y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51940
      start: 51939
    functionDepth: 0
    functionLinenumber: 51939
    functionLinenumberEnd: 51940
    functionName: pager_pagehash
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pager_pagehash(X)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3OsFileSize
      Src: /src/nss/lib/sqlite/sqlite3.c:51978,1
    - Dst: read32bits
      Src: /src/nss/lib/sqlite/sqlite3.c:51980,1
    - Dst: read32bits
      Src: /src/nss/lib/sqlite/sqlite3.c:51984,1
    - Dst: sqlite3OsRead
      Src: /src/nss/lib/sqlite/sqlite3.c:51985,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:51986,1
    - Dst: sqlite3OsRead
      Src: /src/nss/lib/sqlite/sqlite3.c:51987,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 13
    argCount: 3
    argNames:
    - pJrnl
    - zMaster
    - nMaster
    argTypes:
    - sqlite3_file*
    - char*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52007
      start: 51969
    functionDepth: 3
    functionLinenumber: 51969
    functionLinenumberEnd: 52007
    functionName: readMasterJournal
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - read32bits
    - sqlite3OsRead
    - memcmp
    - sqlite3OsFileSize
    linkageType: ''
    returnType: int
    signature: int readMasterJournal(sqlite3_file *pJrnl, char *zMaster, u32 nMaster)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JOURNAL_HDR_SZ
      Src: /src/nss/lib/sqlite/sqlite3.c:52028,1
    - Dst: JOURNAL_HDR_SZ
      Src: /src/nss/lib/sqlite/sqlite3.c:52028,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:52030,1
    - Dst: JOURNAL_HDR_SZ
      Src: /src/nss/lib/sqlite/sqlite3.c:52030,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:52031,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:52032,1
    - Dst: JOURNAL_HDR_SZ
      Src: /src/nss/lib/sqlite/sqlite3.c:52032,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts:
    - condition: ( offset>=c )
      pos:
        line_end: 52030
        line_start: 52030
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( offset%JOURNAL_HDR_SZ(pPager)==0 )
      pos:
        line_end: 52029
        line_start: 52029
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (offset-c)<JOURNAL_HDR_SZ(pPager) )
      pos:
        line_end: 52031
        line_start: 52031
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 52034
      start: 52024
    functionDepth: 1
    functionLinenumber: 52024
    functionLinenumberEnd: 52034
    functionName: journalHdrOffset
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - JOURNAL_HDR_SZ
    linkageType: ''
    returnType: i64
    signature: i64 journalHdrOffset(Pager *pPager)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:52059,1
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:52059,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:52060,1
    - Dst: sqlite3JournalIsInMemory
      Src: /src/nss/lib/sqlite/sqlite3.c:52060,1
    - Dst: IOTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:52064,1
    - Dst: sqlite3OsTruncate
      Src: /src/nss/lib/sqlite/sqlite3.c:52066,1
    - Dst: sqlite3OsWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:52069,1
    - Dst: sqlite3OsSync
      Src: /src/nss/lib/sqlite/sqlite3.c:52072,1
    - Dst: sqlite3OsFileSize
      Src: /src/nss/lib/sqlite/sqlite3.c:52083,1
    - Dst: sqlite3OsTruncate
      Src: /src/nss/lib/sqlite/sqlite3.c:52085,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 2
    argNames:
    - pPager
    - doTruncate
    argTypes:
    - Pager*
    - int
    assertStmts:
    - condition: ( isOpen(pPager->jfd) )
      pos:
        line_end: 52058
        line_start: 52058
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !sqlite3JournalIsInMemory(pPager->jfd) )
      pos:
        line_end: 52059
        line_start: 52059
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 52090
      start: 52057
    functionDepth: 2
    functionLinenumber: 52057
    functionLinenumberEnd: 52090
    functionName: zeroJournalHdr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsWrite
    - sqlite3OsSync
    - isOpen
    - sqlite3OsTruncate
    - assert
    - sqlite3JournalIsInMemory
    - sqlite3OsFileSize
    - IOTRACE
    linkageType: ''
    returnType: int
    signature: int zeroJournalHdr(Pager *pPager, int doTruncate)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:52114,1
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:52114,1
    - Dst: JOURNAL_HDR_SZ
      Src: /src/nss/lib/sqlite/sqlite3.c:52116,1
    - Dst: JOURNAL_HDR_SZ
      Src: /src/nss/lib/sqlite/sqlite3.c:52117,1
    - Dst: journalHdrOffset
      Src: /src/nss/lib/sqlite/sqlite3.c:52130,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:52152,1
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:52152,1
    - Dst: sqlite3OsDeviceCharacteristics
      Src: /src/nss/lib/sqlite/sqlite3.c:52154,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:52156,1
    - Dst: put32bits
      Src: /src/nss/lib/sqlite/sqlite3.c:52157,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:52159,1
    - Dst: sqlite3_randomness
      Src: /src/nss/lib/sqlite/sqlite3.c:52163,1
    - Dst: put32bits
      Src: /src/nss/lib/sqlite/sqlite3.c:52164,1
    - Dst: put32bits
      Src: /src/nss/lib/sqlite/sqlite3.c:52166,1
    - Dst: put32bits
      Src: /src/nss/lib/sqlite/sqlite3.c:52168,1
    - Dst: put32bits
      Src: /src/nss/lib/sqlite/sqlite3.c:52171,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:52178,1
    - Dst: JOURNAL_HDR_SZ
      Src: /src/nss/lib/sqlite/sqlite3.c:52198,1
    - Dst: IOTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:52199,1
    - Dst: sqlite3OsWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:52200,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:52201,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts:
    - condition: ( pPager->journalHdr <= pPager->journalOff )
      pos:
        line_end: 52200
        line_start: 52200
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( isOpen(pPager->jfd) )
      pos:
        line_end: 52113
        line_start: 52113
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( isOpen(pPager->fd) || pPager->noSync )
      pos:
        line_end: 52151
        line_start: 52151
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 52206
      start: 52107
    functionDepth: 2
    functionLinenumber: 52107
    functionLinenumberEnd: 52206
    functionName: writeJournalHdr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsDeviceCharacteristics
    - sqlite3OsWrite
    - memcpy
    - isOpen
    - put32bits
    - JOURNAL_HDR_SZ
    - sqlite3_randomness
    - journalHdrOffset
    - assert
    - memset
    - IOTRACE
    linkageType: ''
    returnType: int
    signature: int writeJournalHdr(Pager *pPager)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:52236,1
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:52236,1
    - Dst: journalHdrOffset
      Src: /src/nss/lib/sqlite/sqlite3.c:52242,1
    - Dst: JOURNAL_HDR_SZ
      Src: /src/nss/lib/sqlite/sqlite3.c:52243,1
    - Dst: sqlite3OsRead
      Src: /src/nss/lib/sqlite/sqlite3.c:52254,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:52258,1
    - Dst: read32bits
      Src: /src/nss/lib/sqlite/sqlite3.c:52267,1
    - Dst: read32bits
      Src: /src/nss/lib/sqlite/sqlite3.c:52268,1
    - Dst: read32bits
      Src: /src/nss/lib/sqlite/sqlite3.c:52269,1
    - Dst: read32bits
      Src: /src/nss/lib/sqlite/sqlite3.c:52279,1
    - Dst: read32bits
      Src: /src/nss/lib/sqlite/sqlite3.c:52280,1
    - Dst: sqlite3PagerSetPagesize
      Src: /src/nss/lib/sqlite/sqlite3.c:52314,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:52315,1
    - Dst: JOURNAL_HDR_SZ
      Src: /src/nss/lib/sqlite/sqlite3.c:52326,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 35
    argCount: 5
    argNames:
    - pPager
    - isHot
    - journalSize
    - pNRec
    - pDbSize
    argTypes:
    - Pager*
    - int
    - i64
    - u32*
    - u32*
    assertStmts:
    - condition: ( isOpen(pPager->jfd) )
      pos:
        line_end: 52235
        line_start: 52235
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 52328
      start: 52225
    functionDepth: 3
    functionLinenumber: 52225
    functionLinenumberEnd: 52328
    functionName: readJournalHdr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsRead
    - read32bits
    - isOpen
    - JOURNAL_HDR_SZ
    - journalHdrOffset
    - assert
    - sqlite3PagerSetPagesize
    - memcmp
    - testcase
    linkageType: ''
    returnType: int
    signature: "int readJournalHdr(\n  Pager *pPager,               /* Pager object
      */\n  int isHot,\n  i64 journalSize,             /* Size of the open journal
      file in bytes */\n  u32 *pNRec,                  /* OUT: Value read from the
      nRec field */\n  u32 *pDbSize                 /* OUT: Value of original database
      size field */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:52357,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:52358,1
    - Dst: pagerUseWal
      Src: /src/nss/lib/sqlite/sqlite3.c:52358,1
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:52362,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:52367,1
    - Dst: journalHdrOffset
      Src: /src/nss/lib/sqlite/sqlite3.c:52379,1
    - Dst: write32bits
      Src: /src/nss/lib/sqlite/sqlite3.c:52386,1
    - Dst: PAGER_MJ_PGNO
      Src: /src/nss/lib/sqlite/sqlite3.c:52386,1
    - Dst: sqlite3OsWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:52387,1
    - Dst: write32bits
      Src: /src/nss/lib/sqlite/sqlite3.c:52388,1
    - Dst: write32bits
      Src: /src/nss/lib/sqlite/sqlite3.c:52389,1
    - Dst: sqlite3OsWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:52390,1
    - Dst: sqlite3OsFileSize
      Src: /src/nss/lib/sqlite/sqlite3.c:52407,1
    - Dst: sqlite3OsTruncate
      Src: /src/nss/lib/sqlite/sqlite3.c:52410,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 2
    argNames:
    - pPager
    - zMaster
    argTypes:
    - Pager*
    - char*
    assertStmts:
    - condition: ( pPager->setMaster==0 )
      pos:
        line_end: 52356
        line_start: 52356
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->journalHdr <= pPager->journalOff )
      pos:
        line_end: 52366
        line_start: 52366
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !pagerUseWal(pPager) )
      pos:
        line_end: 52357
        line_start: 52357
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 52413
      start: 52350
    functionDepth: 3
    functionLinenumber: 52350
    functionLinenumberEnd: 52413
    functionName: writeMasterJournal
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsWrite
    - PAGER_MJ_PGNO
    - isOpen
    - pagerUseWal
    - journalHdrOffset
    - write32bits
    - sqlite3OsTruncate
    - assert
    - sqlite3OsFileSize
    linkageType: ''
    returnType: int
    signature: int writeMasterJournal(Pager *pPager, const char *zMaster)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BackupRestart
      Src: /src/nss/lib/sqlite/sqlite3.c:52420,1
    - Dst: sqlite3PcacheClear
      Src: /src/nss/lib/sqlite/sqlite3.c:52421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52422
      start: 52418
    functionDepth: 6
    functionLinenumber: 52418
    functionLinenumberEnd: 52422
    functionName: pager_reset
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PcacheClear
    - sqlite3BackupRestart
    linkageType: ''
    returnType: void
    signature: void pager_reset(Pager *pPager)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52429
      start: 52427
    functionDepth: 0
    functionLinenumber: 52427
    functionLinenumberEnd: 52429
    functionName: sqlite3PagerDataVersion
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerDataVersion(Pager *pPager)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BitvecDestroy
      Src: /src/nss/lib/sqlite/sqlite3.c:52439,1
    - Dst: sqlite3JournalIsInMemory
      Src: /src/nss/lib/sqlite/sqlite3.c:52441,1
    - Dst: sqlite3OsClose
      Src: /src/nss/lib/sqlite/sqlite3.c:52442,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:52444,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52448
      start: 52436
    functionDepth: 4
    functionLinenumber: 52436
    functionLinenumberEnd: 52448
    functionName: releaseAllSavepoints
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsClose
    - sqlite3JournalIsInMemory
    - sqlite3BitvecDestroy
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void releaseAllSavepoints(Pager *pPager)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BitvecSet
      Src: /src/nss/lib/sqlite/sqlite3.c:52462,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:52463,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:52464,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - pPager
    - pgno
    argTypes:
    - Pager*
    - Pgno
    assertStmts:
    - condition: ( rc==SQLITE_OK || rc==SQLITE_NOMEM )
      pos:
        line_end: 52463
        line_start: 52463
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 52468
      start: 52455
    functionDepth: 8
    functionLinenumber: 52455
    functionLinenumberEnd: 52468
    functionName: addToSavepointBitvecs
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3BitvecSet
    - testcase
    linkageType: ''
    returnType: int
    signature: int addToSavepointBitvecs(Pager *pPager, Pgno pgno)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:52489,1
    - Dst: sqlite3BitvecDestroy
      Src: /src/nss/lib/sqlite/sqlite3.c:52494,1
    - Dst: releaseAllSavepoints
      Src: /src/nss/lib/sqlite/sqlite3.c:52496,1
    - Dst: pagerUseWal
      Src: /src/nss/lib/sqlite/sqlite3.c:52498,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:52499,1
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:52499,1
    - Dst: sqlite3WalEndReadTransaction
      Src: /src/nss/lib/sqlite/sqlite3.c:52500,1
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:52504,1
    - Dst: sqlite3OsDeviceCharacteristics
      Src: /src/nss/lib/sqlite/sqlite3.c:52504,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:52511,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:52512,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:52513,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:52514,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:52515,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:52516,1
    - Dst: sqlite3OsClose
      Src: /src/nss/lib/sqlite/sqlite3.c:52520,1
    - Dst: pagerUnlockDb
      Src: /src/nss/lib/sqlite/sqlite3.c:52528,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:52537,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:52547,1
    - Dst: pager_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:52550,1
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:52554,1
    - Dst: USEFETCH
      Src: /src/nss/lib/sqlite/sqlite3.c:52556,1
    - Dst: sqlite3OsUnfetch
      Src: /src/nss/lib/sqlite/sqlite3.c:52556,1
    - Dst: setGetterMethod
      Src: /src/nss/lib/sqlite/sqlite3.c:52558,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts:
    - condition: ( pPager->errCode==SQLITE_OK || !MEMDB )
      pos:
        line_end: 52546
        line_start: 52546
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->errCode || pPager->eState!=PAGER_ERROR )
      pos:
        line_end: 52536
        line_start: 52536
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (PAGER_JOURNALMODE_MEMORY   & 5)!=1 )
      pos:
        line_end: 52510
        line_start: 52510
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( pPager->eState==PAGER_READER \n       || pPager->eState==PAGER_OPEN
        \n       || pPager->eState==PAGER_ERROR \n  )"
      pos:
        line_end: 52491
        line_start: 52488
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !isOpen(pPager->jfd) )
      pos:
        line_end: 52498
        line_start: 52498
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (PAGER_JOURNALMODE_OFF      & 5)!=1 )
      pos:
        line_end: 52511
        line_start: 52511
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (PAGER_JOURNALMODE_WAL      & 5)!=1 )
      pos:
        line_end: 52512
        line_start: 52512
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (PAGER_JOURNALMODE_DELETE   & 5)!=1 )
      pos:
        line_end: 52513
        line_start: 52513
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (PAGER_JOURNALMODE_TRUNCATE & 5)==1 )
      pos:
        line_end: 52514
        line_start: 52514
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (PAGER_JOURNALMODE_PERSIST  & 5)==1 )
      pos:
        line_end: 52515
        line_start: 52515
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 52564
      start: 52487
    functionDepth: 7
    functionLinenumber: 52487
    functionLinenumberEnd: 52564
    functionName: pager_unlock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsDeviceCharacteristics
    - sqlite3WalEndReadTransaction
    - pager_reset
    - setGetterMethod
    - isOpen
    - pagerUseWal
    - sqlite3OsClose
    - releaseAllSavepoints
    - assert
    - pagerUnlockDb
    - sqlite3OsUnfetch
    - sqlite3BitvecDestroy
    - USEFETCH
    linkageType: ''
    returnType: void
    signature: void pager_unlock(Pager *pPager)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:52587,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:52588,1
    - Dst: setGetterMethod
      Src: /src/nss/lib/sqlite/sqlite3.c:52596,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - pPager
    - rc
    argTypes:
    - Pager*
    - int
    assertStmts:
    - condition: ( rc==SQLITE_OK || !MEMDB )
      pos:
        line_end: 52586
        line_start: 52586
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "(\n       pPager->errCode==SQLITE_FULL ||\n       pPager->errCode==SQLITE_OK
        ||\n       (pPager->errCode & 0xff)==SQLITE_IOERR\n  )"
      pos:
        line_end: 52591
        line_start: 52587
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 52599
      start: 52585
    functionDepth: 2
    functionLinenumber: 52585
    functionLinenumberEnd: 52599
    functionName: pager_error
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - setGetterMethod
    linkageType: ''
    returnType: int
    signature: int pager_error(Pager *pPager, int rc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:52622,1
    - Dst: sqlite3PCachePercentDirty
      Src: /src/nss/lib/sqlite/sqlite3.c:52623,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - pPager
    - bCommit
    argTypes:
    - Pager*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52624
      start: 52619
    functionDepth: 2
    functionLinenumber: 52619
    functionLinenumberEnd: 52624
    functionName: pagerFlushOnCommit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - isOpen
    - sqlite3PCachePercentDirty
    linkageType: ''
    returnType: int
    signature: int pagerFlushOnCommit(Pager *pPager, int bCommit)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:52696,1
    - Dst: assert_pager_state
      Src: /src/nss/lib/sqlite/sqlite3.c:52696,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:52697,1
    - Dst: releaseAllSavepoints
      Src: /src/nss/lib/sqlite/sqlite3.c:52702,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:52703,1
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:52703,1
    - Dst: sqlite3OsDeviceCharacteristics
      Src: /src/nss/lib/sqlite/sqlite3.c:52704,1
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:52706,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:52707,1
    - Dst: pagerUseWal
      Src: /src/nss/lib/sqlite/sqlite3.c:52707,1
    - Dst: sqlite3JournalIsInMemory
      Src: /src/nss/lib/sqlite/sqlite3.c:52710,1
    - Dst: sqlite3OsClose
      Src: /src/nss/lib/sqlite/sqlite3.c:52712,1
    - Dst: sqlite3OsTruncate
      Src: /src/nss/lib/sqlite/sqlite3.c:52717,1
    - Dst: sqlite3OsSync
      Src: /src/nss/lib/sqlite/sqlite3.c:52724,1
    - Dst: zeroJournalHdr
      Src: /src/nss/lib/sqlite/sqlite3.c:52731,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:52740,1
    - Dst: sqlite3JournalIsInMemory
      Src: /src/nss/lib/sqlite/sqlite3.c:52740,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:52741,1
    - Dst: sqlite3OsClose
      Src: /src/nss/lib/sqlite/sqlite3.c:52745,1
    - Dst: sqlite3OsDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:52747,1
    - Dst: sqlite3PcacheIterateDirty
      Src: /src/nss/lib/sqlite/sqlite3.c:52753,1
    - Dst: sqlite3PcacheRefCount
      Src: /src/nss/lib/sqlite/sqlite3.c:52754,1
    - Dst: sqlite3PagerLookup
      Src: /src/nss/lib/sqlite/sqlite3.c:52755,1
    - Dst: sqlite3PagerUnrefNotNull
      Src: /src/nss/lib/sqlite/sqlite3.c:52758,1
    - Dst: sqlite3BitvecDestroy
      Src: /src/nss/lib/sqlite/sqlite3.c:52763,1
    - Dst: pagerFlushOnCommit
      Src: /src/nss/lib/sqlite/sqlite3.c:52767,1
    - Dst: sqlite3PcacheCleanAll
      Src: /src/nss/lib/sqlite/sqlite3.c:52768,1
    - Dst: sqlite3PcacheClearWritable
      Src: /src/nss/lib/sqlite/sqlite3.c:52770,1
    - Dst: sqlite3PcacheTruncate
      Src: /src/nss/lib/sqlite/sqlite3.c:52772,1
    - Dst: pagerUseWal
      Src: /src/nss/lib/sqlite/sqlite3.c:52775,1
    - Dst: sqlite3WalEndWriteTransaction
      Src: /src/nss/lib/sqlite/sqlite3.c:52780,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:52781,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:52789,1
    - Dst: pager_truncate
      Src: /src/nss/lib/sqlite/sqlite3.c:52790,1
    - Dst: sqlite3OsFileControl
      Src: /src/nss/lib/sqlite/sqlite3.c:52794,1
    - Dst: pagerUseWal
      Src: /src/nss/lib/sqlite/sqlite3.c:52799,1
    - Dst: sqlite3WalExclusiveMode
      Src: /src/nss/lib/sqlite/sqlite3.c:52799,1
    - Dst: pagerUnlockDb
      Src: /src/nss/lib/sqlite/sqlite3.c:52801,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 74
    argCount: 3
    argNames:
    - pPager
    - hasMaster
    - bCommit
    argTypes:
    - Pager*
    - int
    - int
    assertStmts:
    - condition: ( pPager->eState!=PAGER_ERROR )
      pos:
        line_end: 52696
        line_start: 52696
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !pagerUseWal(pPager) )
      pos:
        line_end: 52706
        line_start: 52706
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->eLock==EXCLUSIVE_LOCK )
      pos:
        line_end: 52788
        line_start: 52788
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( assert_pager_state(pPager) )
      pos:
        line_end: 52695
        line_start: 52695
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( isOpen(pPager->jfd) || pPager->pInJournal==0 \n      || (sqlite3OsDeviceCharacteristics(pPager->fd)&SQLITE_IOCAP_BATCH_ATOMIC)\n
        \ )"
      pos:
        line_end: 52704
        line_start: 52702
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( pPager->journalMode==PAGER_JOURNALMODE_DELETE \n           ||
        pPager->journalMode==PAGER_JOURNALMODE_MEMORY \n           || pPager->journalMode==PAGER_JOURNALMODE_WAL
        \n      )"
      pos:
        line_end: 52743
        line_start: 52740
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3JournalIsInMemory(pPager->jfd)==0 )
      pos:
        line_end: 52739
        line_start: 52739
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc2==SQLITE_OK )
      pos:
        line_end: 52780
        line_start: 52780
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 52808
      start: 52679
    functionDepth: 5
    functionLinenumber: 52679
    functionLinenumberEnd: 52808
    functionName: pager_end_transaction
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsDeviceCharacteristics
    - pager_truncate
    - sqlite3OsFileControl
    - sqlite3PcacheClearWritable
    - pagerFlushOnCommit
    - sqlite3OsSync
    - sqlite3OsClose
    - sqlite3OsTruncate
    - sqlite3PcacheRefCount
    - assert
    - sqlite3JournalIsInMemory
    - sqlite3PagerLookup
    - sqlite3WalExclusiveMode
    - sqlite3PcacheCleanAll
    - isOpen
    - pagerUseWal
    - sqlite3WalEndWriteTransaction
    - sqlite3PcacheIterateDirty
    - sqlite3BitvecDestroy
    - sqlite3PcacheTruncate
    - sqlite3PagerUnrefNotNull
    - releaseAllSavepoints
    - assert_pager_state
    - pagerUnlockDb
    - sqlite3OsDelete
    - zeroJournalHdr
    linkageType: ''
    returnType: int
    signature: int pager_end_transaction(Pager *pPager, int hasMaster, int bCommit)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:52829,1
    - Dst: assert_pager_state
      Src: /src/nss/lib/sqlite/sqlite3.c:52829,1
    - Dst: sqlite3BeginBenignMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:52831,1
    - Dst: sqlite3PagerRollback
      Src: /src/nss/lib/sqlite/sqlite3.c:52832,1
    - Dst: sqlite3EndBenignMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:52833,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:52835,1
    - Dst: pager_end_transaction
      Src: /src/nss/lib/sqlite/sqlite3.c:52836,1
    - Dst: pager_unlock
      Src: /src/nss/lib/sqlite/sqlite3.c:52839,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts:
    - condition: ( assert_pager_state(pPager) )
      pos:
        line_end: 52828
        line_start: 52828
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->eState==PAGER_READER )
      pos:
        line_end: 52834
        line_start: 52834
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 52840
      start: 52827
    functionDepth: 8
    functionLinenumber: 52827
    functionLinenumberEnd: 52840
    functionName: pagerUnlockAndRollback
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3EndBenignMalloc
    - sqlite3BeginBenignMalloc
    - sqlite3PagerRollback
    - assert
    - assert_pager_state
    - pager_end_transaction
    - pager_unlock
    linkageType: ''
    returnType: void
    signature: void pagerUnlockAndRollback(Pager *pPager)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pPager
    - aData
    argTypes:
    - Pager*
    - u8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52869
      start: 52861
    functionDepth: 0
    functionLinenumber: 52861
    functionLinenumberEnd: 52869
    functionName: pager_cksum
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: u32 pager_cksum(Pager *pPager, const u8 *aData)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Pager*::xCodecSizeChng
      Src: /src/nss/lib/sqlite/sqlite3.c:52878,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52881
      start: 52876
    functionDepth: 0
    functionLinenumber: 52876
    functionLinenumberEnd: 52881
    functionName: pagerReportSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - Pager*::xCodecSizeChng
    linkageType: ''
    returnType: void
    signature: void pagerReportSize(Pager *pPager)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pagerReportSize
      Src: /src/nss/lib/sqlite/sqlite3.c:52895,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pDest
    - pSrc
    argTypes:
    - Pager*
    - Pager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52897
      start: 52892
    functionDepth: 1
    functionLinenumber: 52892
    functionLinenumberEnd: 52897
    functionName: sqlite3PagerAlignReserve
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - pagerReportSize
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerAlignReserve(Pager *pDest, Pager *pSrc)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:52957,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:52958,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:52959,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:52960,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:52963,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:52964,1
    - Dst: pagerUseWal
      Src: /src/nss/lib/sqlite/sqlite3.c:52964,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:52972,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:52975,1
    - Dst: read32bits
      Src: /src/nss/lib/sqlite/sqlite3.c:52981,1
    - Dst: sqlite3OsRead
      Src: /src/nss/lib/sqlite/sqlite3.c:52983,1
    - Dst: PAGER_MJ_PGNO
      Src: /src/nss/lib/sqlite/sqlite3.c:52992,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:52993,1
    - Dst: sqlite3BitvecTest
      Src: /src/nss/lib/sqlite/sqlite3.c:52996,1
    - Dst: read32bits
      Src: /src/nss/lib/sqlite/sqlite3.c:53000,1
    - Dst: pager_cksum
      Src: /src/nss/lib/sqlite/sqlite3.c:53002,1
    - Dst: sqlite3BitvecSet
      Src: /src/nss/lib/sqlite/sqlite3.c:53010,1
    - Dst: pagerReportSize
      Src: /src/nss/lib/sqlite/sqlite3.c:53018,1
    - Dst: pagerUseWal
      Src: /src/nss/lib/sqlite/sqlite3.c:53056,1
    - Dst: sqlite3PagerLookup
      Src: /src/nss/lib/sqlite/sqlite3.c:53059,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:53061,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:53062,1
    - Dst: PAGERTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:53063,1
    - Dst: PAGERID
      Src: /src/nss/lib/sqlite/sqlite3.c:53064,1
    - Dst: pager_datahash
      Src: /src/nss/lib/sqlite/sqlite3.c:53064,1
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:53072,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:53077,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:53078,1
    - Dst: pagerUseWal
      Src: /src/nss/lib/sqlite/sqlite3.c:53078,1
    - Dst: CODEC2
      Src: /src/nss/lib/sqlite/sqlite3.c:53088,1
    - Dst: sqlite3OsWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:53089,1
    - Dst: CODEC1
      Src: /src/nss/lib/sqlite/sqlite3.c:53090,1
    - Dst: sqlite3OsWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:53093,1
    - Dst: CODEC1
      Src: /src/nss/lib/sqlite/sqlite3.c:53101,1
    - Dst: sqlite3BackupUpdate
      Src: /src/nss/lib/sqlite/sqlite3.c:53102,1
    - Dst: CODEC2
      Src: /src/nss/lib/sqlite/sqlite3.c:53103,1
    - Dst: sqlite3BackupUpdate
      Src: /src/nss/lib/sqlite/sqlite3.c:53106,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:53125,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:53126,1
    - Dst: sqlite3PagerGet
      Src: /src/nss/lib/sqlite/sqlite3.c:53128,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:53129,1
    - Dst: sqlite3PcacheMakeDirty
      Src: /src/nss/lib/sqlite/sqlite3.c:53132,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:53143,1
    - Dst: Pager*::xReiniter
      Src: /src/nss/lib/sqlite/sqlite3.c:53144,1
    - Dst: pager_set_pagehash
      Src: /src/nss/lib/sqlite/sqlite3.c:53149,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:53154,1
    - Dst: CODEC1
      Src: /src/nss/lib/sqlite/sqlite3.c:53159,1
    - Dst: sqlite3PcacheRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:53161,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 99
    argCount: 5
    argNames:
    - pPager
    - pOffset
    - pDone
    - isMainJrnl
    - isSavepnt
    argTypes:
    - Pager*
    - i64*
    - Bitvec*
    - int
    - int
    assertStmts:
    - condition: ( !pagerUseWal(pPager) )
      pos:
        line_end: 53077
        line_start: 53077
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (isMainJrnl&~1)==0 )
      pos:
        line_end: 52956
        line_start: 52956
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (isSavepnt&~1)==0 )
      pos:
        line_end: 52957
        line_start: 52957
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( isSavepnt || pDone==0 )
      pos:
        line_end: 52959
        line_start: 52959
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pagerUseWal(pPager)==0 || (!isMainJrnl && isSavepnt) )
      pos:
        line_end: 52963
        line_start: 52963
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( isSavepnt )
      pos:
        line_end: 53124
        line_start: 53124
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( isMainJrnl || pDone )
      pos:
        line_end: 52958
        line_start: 52958
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( pPager->eState>=PAGER_WRITER_CACHEMOD\n       || (pPager->eState==PAGER_OPEN
        && pPager->eLock==EXCLUSIVE_LOCK)\n  )"
      pos:
        line_end: 52973
        line_start: 52971
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->eState!=PAGER_OPEN || pPg==0 || pPager->tempFile )
      pos:
        line_end: 53061
        line_start: 53061
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( aData )
      pos:
        line_end: 52962
        line_start: 52962
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->eState>=PAGER_WRITER_CACHEMOD || isMainJrnl )
      pos:
        line_end: 52974
        line_start: 52974
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !isSavepnt )
      pos:
        line_end: 52992
        line_start: 52992
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPg || !MEMDB )
      pos:
        line_end: 53060
        line_start: 53060
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pPager->doNotSpill & SPILLFLAG_ROLLBACK)!=0 )
      pos:
        line_end: 53128
        line_start: 53128
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pPager->doNotSpill & SPILLFLAG_ROLLBACK)==0 )
      pos:
        line_end: 53125
        line_start: 53125
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 53164
      start: 52937
    functionDepth: 8
    functionLinenumber: 52937
    functionLinenumberEnd: 53164
    functionName: pager_playback_one_page
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - PAGER_MJ_PGNO
    - PAGERID
    - testcase
    - CODEC2
    - memcpy
    - Pager*::xReiniter
    - assert
    - sqlite3PagerLookup
    - PAGERTRACE
    - pagerReportSize
    - pager_datahash
    - sqlite3PcacheMakeDirty
    - sqlite3BackupUpdate
    - sqlite3OsRead
    - sqlite3OsWrite
    - sqlite3PcacheRelease
    - isOpen
    - pagerUseWal
    - pager_cksum
    - read32bits
    - CODEC1
    - sqlite3BitvecSet
    - sqlite3BitvecTest
    - sqlite3PagerGet
    - pager_set_pagehash
    linkageType: ''
    returnType: int
    signature: "int pager_playback_one_page(\n  Pager *pPager,                /* The
      pager being played back */\n  i64 *pOffset,                 /* Offset of record
      to playback */\n  Bitvec *pDone,                /* Bitvec of pages already played
      back */\n  int isMainJrnl,               /* 1 -> main journal. 0 -> sub-journal.
      */\n  int isSavepnt                 /* True for a savepoint rollback */\n)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:53223,1
    - Dst: sqlite3OsOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:53229,1
    - Dst: sqlite3OsFileSize
      Src: /src/nss/lib/sqlite/sqlite3.c:53238,1
    - Dst: sqlite3Malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:53241,1
    - Dst: sqlite3OsRead
      Src: /src/nss/lib/sqlite/sqlite3.c:53247,1
    - Dst: sqlite3OsAccess
      Src: /src/nss/lib/sqlite/sqlite3.c:53254,1
    - Dst: sqlite3OsOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:53265,1
    - Dst: readMasterJournal
      Src: /src/nss/lib/sqlite/sqlite3.c:53270,1
    - Dst: sqlite3OsClose
      Src: /src/nss/lib/sqlite/sqlite3.c:53271,1
    - Dst: strcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:53276,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:53282,1
    - Dst: sqlite3OsClose
      Src: /src/nss/lib/sqlite/sqlite3.c:53285,1
    - Dst: sqlite3OsDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:53286,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:53289,1
    - Dst: sqlite3OsClose
      Src: /src/nss/lib/sqlite/sqlite3.c:53291,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:53292,1
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:53292,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:53293,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 66
    argCount: 2
    argNames:
    - pPager
    - zMaster
    argTypes:
    - Pager*
    - char*
    assertStmts:
    - condition: ( !isOpen(pJournal) )
      pos:
        line_end: 53291
        line_start: 53291
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 53296
      start: 53209
    functionDepth: 6
    functionLinenumber: 53209
    functionLinenumberEnd: 53296
    functionName: pager_delmaster
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsRead
    - strcmp
    - readMasterJournal
    - isOpen
    - sqlite3OsClose
    - sqlite3Malloc
    - sqlite3OsDelete
    - assert
    - sqlite3OsAccess
    - sqlite3Strlen30
    - sqlite3OsFileSize
    - sqlite3MallocZero
    - sqlite3OsOpen
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int pager_delmaster(Pager *pPager, const char *zMaster)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:53321,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:53322,1
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:53324,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:53329,1
    - Dst: sqlite3OsFileSize
      Src: /src/nss/lib/sqlite/sqlite3.c:53331,1
    - Dst: sqlite3OsTruncate
      Src: /src/nss/lib/sqlite/sqlite3.c:53335,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:53338,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:53339,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:53340,1
    - Dst: sqlite3OsWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:53341,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - pPager
    - nPage
    argTypes:
    - Pager*
    - Pgno
    assertStmts:
    - condition: ( pPager->eState!=PAGER_ERROR )
      pos:
        line_end: 53320
        line_start: 53320
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->eState!=PAGER_READER )
      pos:
        line_end: 53321
        line_start: 53321
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->eLock==EXCLUSIVE_LOCK )
      pos:
        line_end: 53328
        line_start: 53328
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 53349
      start: 53319
    functionDepth: 2
    functionLinenumber: 53319
    functionLinenumberEnd: 53349
    functionName: pager_truncate
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3OsWrite
    - isOpen
    - sqlite3OsTruncate
    - assert
    - memset
    - sqlite3OsFileSize
    - testcase
    linkageType: ''
    returnType: int
    signature: int pager_truncate(Pager *pPager, Pgno nPage)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3OsSectorSize
      Src: /src/nss/lib/sqlite/sqlite3.c:53356,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:53360,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - pFile
    argTypes:
    - sqlite3_file*
    assertStmts:
    - condition: ( MAX_SECTOR_SIZE>=512 )
      pos:
        line_end: 53359
        line_start: 53359
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 53364
      start: 53355
    functionDepth: 1
    functionLinenumber: 53355
    functionLinenumberEnd: 53364
    functionName: sqlite3SectorSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsSectorSize
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3SectorSize(sqlite3_file *pFile)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:53390,1
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:53390,1
    - Dst: sqlite3OsDeviceCharacteristics
      Src: /src/nss/lib/sqlite/sqlite3.c:53393,1
    - Dst: sqlite3SectorSize
      Src: /src/nss/lib/sqlite/sqlite3.c:53401,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts:
    - condition: ( isOpen(pPager->fd) || pPager->tempFile )
      pos:
        line_end: 53389
        line_start: 53389
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 53403
      start: 53389
    functionDepth: 2
    functionLinenumber: 53389
    functionLinenumberEnd: 53403
    functionName: setSectorSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3OsDeviceCharacteristics
    - sqlite3SectorSize
    - isOpen
    linkageType: ''
    returnType: void
    signature: void setSectorSize(Pager *pPager)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:53478,1
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:53478,1
    - Dst: sqlite3OsFileSize
      Src: /src/nss/lib/sqlite/sqlite3.c:53479,1
    - Dst: readMasterJournal
      Src: /src/nss/lib/sqlite/sqlite3.c:53496,1
    - Dst: sqlite3OsAccess
      Src: /src/nss/lib/sqlite/sqlite3.c:53498,1
    - Dst: readJournalHdr
      Src: /src/nss/lib/sqlite/sqlite3.c:53517,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:53531,1
    - Dst: JOURNAL_HDR_SZ
      Src: /src/nss/lib/sqlite/sqlite3.c:53531,1
    - Dst: JOURNAL_HDR_SZ
      Src: /src/nss/lib/sqlite/sqlite3.c:53532,1
    - Dst: JOURNAL_PG_SZ
      Src: /src/nss/lib/sqlite/sqlite3.c:53532,1
    - Dst: JOURNAL_HDR_SZ
      Src: /src/nss/lib/sqlite/sqlite3.c:53550,1
    - Dst: JOURNAL_PG_SZ
      Src: /src/nss/lib/sqlite/sqlite3.c:53551,1
    - Dst: JOURNAL_HDR_SZ
      Src: /src/nss/lib/sqlite/sqlite3.c:53557,1
    - Dst: pager_truncate
      Src: /src/nss/lib/sqlite/sqlite3.c:53558,1
    - Dst: pager_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:53570,1
    - Dst: pager_playback_one_page
      Src: /src/nss/lib/sqlite/sqlite3.c:53573,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:53600,1
    - Dst: sqlite3PagerSetPagesize
      Src: /src/nss/lib/sqlite/sqlite3.c:53604,1
    - Dst: sqlite3OsFileControlHint
      Src: /src/nss/lib/sqlite/sqlite3.c:53612,1
    - Dst: readMasterJournal
      Src: /src/nss/lib/sqlite/sqlite3.c:53628,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:53629,1
    - Dst: sqlite3PagerSync
      Src: /src/nss/lib/sqlite/sqlite3.c:53634,1
    - Dst: pager_end_transaction
      Src: /src/nss/lib/sqlite/sqlite3.c:53637,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:53638,1
    - Dst: pager_delmaster
      Src: /src/nss/lib/sqlite/sqlite3.c:53644,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:53645,1
    - Dst: sqlite3_log
      Src: /src/nss/lib/sqlite/sqlite3.c:53648,1
    - Dst: setSectorSize
      Src: /src/nss/lib/sqlite/sqlite3.c:53656,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 96
    argCount: 2
    argNames:
    - pPager
    - isHot
    argTypes:
    - Pager*
    - int
    assertStmts:
    - condition: ( isOpen(pPager->jfd) )
      pos:
        line_end: 53477
        line_start: 53477
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( 0 )
      pos:
        line_end: 53599
        line_start: 53599
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->journalOff==JOURNAL_HDR_SZ(pPager) )
      pos:
        line_end: 53530
        line_start: 53530
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 53658
      start: 53462
    functionDepth: 10
    functionLinenumber: 53462
    functionLinenumberEnd: 53658
    functionName: pager_playback
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - pager_truncate
    - readMasterJournal
    - sqlite3OsFileControlHint
    - pager_delmaster
    - testcase
    - pager_reset
    - sqlite3_log
    - assert
    - sqlite3OsAccess
    - JOURNAL_PG_SZ
    - isOpen
    - pager_end_transaction
    - JOURNAL_HDR_SZ
    - pager_playback_one_page
    - sqlite3PagerSync
    - setSectorSize
    - sqlite3OsFileSize
    - sqlite3PagerSetPagesize
    - readJournalHdr
    linkageType: ''
    returnType: int
    signature: int pager_playback(Pager *pPager, int isHot)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:53680,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:53681,1
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:53681,1
    - Dst: pagerUseWal
      Src: /src/nss/lib/sqlite/sqlite3.c:53683,1
    - Dst: sqlite3WalFindFrame
      Src: /src/nss/lib/sqlite/sqlite3.c:53684,1
    - Dst: sqlite3WalReadFrame
      Src: /src/nss/lib/sqlite/sqlite3.c:53688,1
    - Dst: sqlite3OsRead
      Src: /src/nss/lib/sqlite/sqlite3.c:53693,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:53713,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:53716,1
    - Dst: CODEC1
      Src: /src/nss/lib/sqlite/sqlite3.c:53719,1
    - Dst: PAGER_INCR
      Src: /src/nss/lib/sqlite/sqlite3.c:53721,1
    - Dst: PAGER_INCR
      Src: /src/nss/lib/sqlite/sqlite3.c:53722,1
    - Dst: IOTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:53723,1
    - Dst: PAGERTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:53724,1
    - Dst: PAGERID
      Src: /src/nss/lib/sqlite/sqlite3.c:53725,1
    - Dst: pager_pagehash
      Src: /src/nss/lib/sqlite/sqlite3.c:53725,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 1
    argNames:
    - pPg
    argTypes:
    - PgHdr*
    assertStmts:
    - condition: ( pPager->eState>=PAGER_READER && !MEMDB )
      pos:
        line_end: 53679
        line_start: 53679
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( isOpen(pPager->fd) )
      pos:
        line_end: 53680
        line_start: 53680
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 53728
      start: 53673
    functionDepth: 2
    functionLinenumber: 53673
    functionLinenumberEnd: 53728
    functionName: readDbPage
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsRead
    - memcpy
    - PAGER_INCR
    - CODEC1
    - isOpen
    - pagerUseWal
    - sqlite3WalReadFrame
    - PAGERID
    - pager_pagehash
    - assert
    - memset
    - PAGERTRACE
    - sqlite3WalFindFrame
    - IOTRACE
    linkageType: ''
    returnType: int
    signature: int readDbPage(PgHdr *pPg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:53742,1
    - Dst: put32bits
      Src: /src/nss/lib/sqlite/sqlite3.c:53743,1
    - Dst: put32bits
      Src: /src/nss/lib/sqlite/sqlite3.c:53748,1
    - Dst: put32bits
      Src: /src/nss/lib/sqlite/sqlite3.c:53749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pPg
    argTypes:
    - PgHdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53750
      start: 53738
    functionDepth: 2
    functionLinenumber: 53738
    functionLinenumberEnd: 53750
    functionName: pager_write_changecounter
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - put32bits
    - sqlite3Get4byte
    linkageType: ''
    returnType: void
    signature: void pager_write_changecounter(PgHdr *pPg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:53770,1
    - Dst: pagerUseWal
      Src: /src/nss/lib/sqlite/sqlite3.c:53770,1
    - Dst: sqlite3PagerLookup
      Src: /src/nss/lib/sqlite/sqlite3.c:53771,1
    - Dst: sqlite3PcachePageRefcount
      Src: /src/nss/lib/sqlite/sqlite3.c:53773,1
    - Dst: sqlite3PcacheDrop
      Src: /src/nss/lib/sqlite/sqlite3.c:53774,1
    - Dst: readDbPage
      Src: /src/nss/lib/sqlite/sqlite3.c:53776,1
    - Dst: Pager*::xReiniter
      Src: /src/nss/lib/sqlite/sqlite3.c:53778,1
    - Dst: sqlite3PagerUnrefNotNull
      Src: /src/nss/lib/sqlite/sqlite3.c:53780,1
    - Dst: sqlite3BackupRestart
      Src: /src/nss/lib/sqlite/sqlite3.c:53792,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - pCtx
    - iPg
    argTypes:
    - void*
    - Pgno
    assertStmts:
    - condition: ( pagerUseWal(pPager) )
      pos:
        line_end: 53769
        line_start: 53769
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 53795
      start: 53765
    functionDepth: 4
    functionLinenumber: 53765
    functionLinenumberEnd: 53795
    functionName: pagerUndoCallback
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PcachePageRefcount
    - sqlite3PcacheDrop
    - sqlite3BackupRestart
    - Pager*::xReiniter
    - pagerUseWal
    - sqlite3PagerUnrefNotNull
    - assert
    - sqlite3PagerLookup
    - readDbPage
    linkageType: ''
    returnType: int
    signature: int pagerUndoCallback(void *pCtx, Pgno iPg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3WalUndo
      Src: /src/nss/lib/sqlite/sqlite3.c:53812,1
    - Dst: sqlite3PcacheDirtyList
      Src: /src/nss/lib/sqlite/sqlite3.c:53813,1
    - Dst: pagerUndoCallback
      Src: /src/nss/lib/sqlite/sqlite3.c:53816,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53821
      start: 53800
    functionDepth: 5
    functionLinenumber: 53800
    functionLinenumberEnd: 53821
    functionName: pagerRollbackWal
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PcacheDirtyList
    - pagerUndoCallback
    - sqlite3WalUndo
    linkageType: ''
    returnType: int
    signature: int pagerRollbackWal(Pager *pPager)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:53842,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:53843,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:53847,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:53851,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:53865,1
    - Dst: pager_write_changecounter
      Src: /src/nss/lib/sqlite/sqlite3.c:53871,1
    - Dst: sqlite3WalFrames
      Src: /src/nss/lib/sqlite/sqlite3.c:53872,1
    - Dst: sqlite3BackupUpdate
      Src: /src/nss/lib/sqlite/sqlite3.c:53877,1
    - Dst: sqlite3PcacheDirtyList
      Src: /src/nss/lib/sqlite/sqlite3.c:53882,1
    - Dst: pager_set_pagehash
      Src: /src/nss/lib/sqlite/sqlite3.c:53884,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 4
    argNames:
    - pPager
    - pList
    - nTruncate
    - isCommit
    argTypes:
    - Pager*
    - PgHdr*
    - Pgno
    - int
    assertStmts:
    - condition: ( pPager->pWal )
      pos:
        line_end: 53841
        line_start: 53841
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->pgno < p->pDirty->pgno )
      pos:
        line_end: 53846
        line_start: 53846
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pList )
      pos:
        line_end: 53842
        line_start: 53842
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pList->pDirty==0 || isCommit )
      pos:
        line_end: 53850
        line_start: 53850
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pList )
      pos:
        line_end: 53864
        line_start: 53864
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 53889
      start: 53832
    functionDepth: 3
    functionLinenumber: 53832
    functionLinenumberEnd: 53889
    functionName: pagerWalFrames
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3WalFrames
    - pager_write_changecounter
    - assert
    - sqlite3PcacheDirtyList
    - pager_set_pagehash
    - sqlite3BackupUpdate
    linkageType: ''
    returnType: int
    signature: "int pagerWalFrames(\n  Pager *pPager,                  /* Pager object
      */\n  PgHdr *pList,                   /* List of frames to log */\n  Pgno nTruncate,
      \                /* Database size after this commit */\n  int isCommit                    /*
      True if this is a commit */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:53903,1
    - Dst: pagerUseWal
      Src: /src/nss/lib/sqlite/sqlite3.c:53903,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:53904,1
    - Dst: sqlite3WalEndReadTransaction
      Src: /src/nss/lib/sqlite/sqlite3.c:53911,1
    - Dst: sqlite3WalBeginReadTransaction
      Src: /src/nss/lib/sqlite/sqlite3.c:53913,1
    - Dst: pager_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:53915,1
    - Dst: USEFETCH
      Src: /src/nss/lib/sqlite/sqlite3.c:53916,1
    - Dst: sqlite3OsUnfetch
      Src: /src/nss/lib/sqlite/sqlite3.c:53916,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts:
    - condition: ( pagerUseWal(pPager) )
      pos:
        line_end: 53902
        line_start: 53902
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->eState==PAGER_OPEN || pPager->eState==PAGER_READER )
      pos:
        line_end: 53903
        line_start: 53903
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 53920
      start: 53899
    functionDepth: 7
    functionLinenumber: 53899
    functionLinenumberEnd: 53920
    functionName: pagerBeginReadTransaction
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3WalEndReadTransaction
    - pager_reset
    - sqlite3WalBeginReadTransaction
    - pagerUseWal
    - assert
    - sqlite3OsUnfetch
    - USEFETCH
    linkageType: ''
    returnType: int
    signature: int pagerBeginReadTransaction(Pager *pPager)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:53941,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:53942,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:53943,1
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:53943,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:53944,1
    - Dst: sqlite3WalDbsize
      Src: /src/nss/lib/sqlite/sqlite3.c:53945,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:53952,1
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:53952,1
    - Dst: sqlite3OsFileSize
      Src: /src/nss/lib/sqlite/sqlite3.c:53954,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - pPager
    - pnPage
    argTypes:
    - Pager*
    - Pgno*
    assertStmts:
    - condition: ( pPager->eState==PAGER_OPEN )
      pos:
        line_end: 53940
        line_start: 53940
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->tempFile==0 )
      pos:
        line_end: 53943
        line_start: 53943
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->eLock>=SHARED_LOCK )
      pos:
        line_end: 53941
        line_start: 53941
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( isOpen(pPager->fd) )
      pos:
        line_end: 53942
        line_start: 53942
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 53971
      start: 53932
    functionDepth: 2
    functionLinenumber: 53932
    functionLinenumberEnd: 53971
    functionName: pagerPagecount
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ALWAYS
    - isOpen
    - assert
    - sqlite3WalDbsize
    - sqlite3OsFileSize
    linkageType: ''
    returnType: int
    signature: int pagerPagecount(Pager *pPager, Pgno *pnPage)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:53994,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:53995,1
    - Dst: sqlite3OsAccess
      Src: /src/nss/lib/sqlite/sqlite3.c:53999,1
    - Dst: pagerPagecount
      Src: /src/nss/lib/sqlite/sqlite3.c:54006,1
    - Dst: sqlite3OsDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:54009,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:54011,1
    - Dst: sqlite3PcachePagecount
      Src: /src/nss/lib/sqlite/sqlite3.c:54011,1
    - Dst: sqlite3PagerOpenWal
      Src: /src/nss/lib/sqlite/sqlite3.c:54012,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts:
    - condition: ( pPager->eState==PAGER_OPEN )
      pos:
        line_end: 53993
        line_start: 53993
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->eLock>=SHARED_LOCK )
      pos:
        line_end: 53994
        line_start: 53994
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 54020
      start: 53992
    functionDepth: 3
    functionLinenumber: 53992
    functionLinenumberEnd: 54020
    functionName: pagerOpenWalIfPresent
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PagerOpenWal
    - pagerPagecount
    - assert
    - sqlite3OsAccess
    - sqlite3PcachePagecount
    - sqlite3OsDelete
    - testcase
    linkageType: ''
    returnType: int
    signature: int pagerOpenWalIfPresent(Pager *pPager)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:54065,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:54066,1
    - Dst: sqlite3BitvecCreate
      Src: /src/nss/lib/sqlite/sqlite3.c:54070,1
    - Dst: pagerUseWal
      Src: /src/nss/lib/sqlite/sqlite3.c:54082,1
    - Dst: pagerRollbackWal
      Src: /src/nss/lib/sqlite/sqlite3.c:54083,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:54092,1
    - Dst: pagerUseWal
      Src: /src/nss/lib/sqlite/sqlite3.c:54092,1
    - Dst: pagerUseWal
      Src: /src/nss/lib/sqlite/sqlite3.c:54101,1
    - Dst: pager_playback_one_page
      Src: /src/nss/lib/sqlite/sqlite3.c:54105,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:54107,1
    - Dst: readJournalHdr
      Src: /src/nss/lib/sqlite/sqlite3.c:54121,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:54122,1
    - Dst: JOURNAL_HDR_SZ
      Src: /src/nss/lib/sqlite/sqlite3.c:54130,1
    - Dst: JOURNAL_PG_SZ
      Src: /src/nss/lib/sqlite/sqlite3.c:54132,1
    - Dst: pager_playback_one_page
      Src: /src/nss/lib/sqlite/sqlite3.c:54135,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:54137,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:54139,1
    - Dst: pagerUseWal
      Src: /src/nss/lib/sqlite/sqlite3.c:54149,1
    - Dst: sqlite3WalSavepointUndo
      Src: /src/nss/lib/sqlite/sqlite3.c:54150,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:54153,1
    - Dst: pager_playback_one_page
      Src: /src/nss/lib/sqlite/sqlite3.c:54154,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:54156,1
    - Dst: sqlite3BitvecDestroy
      Src: /src/nss/lib/sqlite/sqlite3.c:54159,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 53
    argCount: 2
    argNames:
    - pPager
    - pSavepoint
    argTypes:
    - Pager*
    - PagerSavepoint*
    assertStmts:
    - condition: ( offset==(i64)ii*(4+pPager->pageSize) )
      pos:
        line_end: 54152
        line_start: 54152
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc!=SQLITE_DONE )
      pos:
        line_end: 54155
        line_start: 54155
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc!=SQLITE_DONE )
      pos:
        line_end: 54121
        line_start: 54121
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->eState>=PAGER_WRITER_LOCKED )
      pos:
        line_end: 54065
        line_start: 54065
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pagerUseWal(pPager)==0 || szJ==0 )
      pos:
        line_end: 54091
        line_start: 54091
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc!=SQLITE_DONE )
      pos:
        line_end: 54106
        line_start: 54106
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc!=SQLITE_DONE )
      pos:
        line_end: 54136
        line_start: 54136
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc!=SQLITE_OK || pPager->journalOff>=szJ )
      pos:
        line_end: 54138
        line_start: 54138
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->eState!=PAGER_ERROR )
      pos:
        line_end: 54064
        line_start: 54064
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 54165
      start: 54059
    functionDepth: 9
    functionLinenumber: 54059
    functionLinenumberEnd: 54165
    functionName: pagerPlaybackSavepoint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BitvecCreate
    - sqlite3WalSavepointUndo
    - pagerUseWal
    - pager_playback_one_page
    - JOURNAL_HDR_SZ
    - pagerRollbackWal
    - assert
    - readJournalHdr
    - JOURNAL_PG_SZ
    - sqlite3BitvecDestroy
    linkageType: ''
    returnType: int
    signature: int pagerPlaybackSavepoint(Pager *pPager, PagerSavepoint *pSavepoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PcacheSetCachesize
      Src: /src/nss/lib/sqlite/sqlite3.c:54172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pPager
    - mxPage
    argTypes:
    - Pager*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54173
      start: 54171
    functionDepth: 2
    functionLinenumber: 54171
    functionLinenumberEnd: 54173
    functionName: sqlite3PagerSetCachesize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PcacheSetCachesize
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerSetCachesize(Pager *pPager, int mxPage)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PcacheSetSpillsize
      Src: /src/nss/lib/sqlite/sqlite3.c:54180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pPager
    - mxPage
    argTypes:
    - Pager*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54181
      start: 54179
    functionDepth: 2
    functionLinenumber: 54179
    functionLinenumberEnd: 54181
    functionName: sqlite3PagerSetSpillsize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PcacheSetSpillsize
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerSetSpillsize(Pager *pPager, int mxPage)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:54189,1
    - Dst: setGetterMethod
      Src: /src/nss/lib/sqlite/sqlite3.c:54193,1
    - Dst: sqlite3OsFileControlHint
      Src: /src/nss/lib/sqlite/sqlite3.c:54194,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54197
      start: 54186
    functionDepth: 2
    functionLinenumber: 54186
    functionLinenumberEnd: 54197
    functionName: pagerFixMaplimit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - isOpen
    - setGetterMethod
    - sqlite3OsFileControlHint
    linkageType: ''
    returnType: void
    signature: void pagerFixMaplimit(Pager *pPager)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pagerFixMaplimit
      Src: /src/nss/lib/sqlite/sqlite3.c:54204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pPager
    - szMmap
    argTypes:
    - Pager*
    - sqlite3_int64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54205
      start: 54202
    functionDepth: 3
    functionLinenumber: 54202
    functionLinenumberEnd: 54205
    functionName: sqlite3PagerSetMmapLimit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - pagerFixMaplimit
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerSetMmapLimit(Pager *pPager, sqlite3_int64
      szMmap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PcacheShrink
      Src: /src/nss/lib/sqlite/sqlite3.c:54211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54212
      start: 54210
    functionDepth: 1
    functionLinenumber: 54210
    functionLinenumberEnd: 54212
    functionName: sqlite3PagerShrink
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PcacheShrink
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerShrink(Pager *pPager)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - pPager
    - pgFlags
    argTypes:
    - Pager*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54299
      start: 54266
    functionDepth: 0
    functionLinenumber: 54266
    functionLinenumberEnd: 54299
    functionName: sqlite3PagerSetFlags
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3PagerSetFlags(\n  Pager *pPager,        /* The
      pager to set safety level for */\n  unsigned pgFlags      /* Various flags */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3OsOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:54339,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:54340,1
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:54340,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pPager
    - pFile
    - vfsFlags
    argTypes:
    - Pager*
    - sqlite3_file*
    - int
    assertStmts:
    - condition: ( rc!=SQLITE_OK || isOpen(pFile) )
      pos:
        line_end: 54339
        line_start: 54339
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 54342
      start: 54326
    functionDepth: 2
    functionLinenumber: 54326
    functionLinenumberEnd: 54342
    functionName: pagerOpentemp
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3OsOpen
    - isOpen
    linkageType: ''
    returnType: int
    signature: "int pagerOpentemp(\n  Pager *pPager,        /* The pager object */\n
      \ sqlite3_file *pFile,  /* Write the file descriptor here */\n  int vfsFlags
      \         /* Flags passed through to the VFS */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:54374,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:54375,1
    - Dst: sqlite3OsFileControlHint
      Src: /src/nss/lib/sqlite/sqlite3.c:54376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - pPager
    - pBusyHandlerArg
    argTypes:
    - Pager*
    - void*
    assertStmts:
    - condition: ( ((int(*)(void *))(ap[0]))==xBusyHandler )
      pos:
        line_end: 54373
        line_start: 54373
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( ap[1]==pBusyHandlerArg )
      pos:
        line_end: 54374
        line_start: 54374
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 54377
      start: 54365
    functionDepth: 1
    functionLinenumber: 54365
    functionLinenumberEnd: 54377
    functionName: sqlite3PagerSetBusyHandler
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3OsFileControlHint
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3PagerSetBusyHandler(\n  Pager *pPager,                       /*
      Pager object */\n  int (*xBusyHandler)(void *),         /* Pointer to busy-handler
      function */\n  void *pBusyHandlerArg                /* Argument to pass to xBusyHandler
      */\n)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:54423,1
    - Dst: sqlite3PcacheRefCount
      Src: /src/nss/lib/sqlite/sqlite3.c:54425,1
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:54431,1
    - Dst: sqlite3OsFileSize
      Src: /src/nss/lib/sqlite/sqlite3.c:54432,1
    - Dst: sqlite3PageMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:54437,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:54441,1
    - Dst: pager_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:54446,1
    - Dst: sqlite3PcacheSetPageSize
      Src: /src/nss/lib/sqlite/sqlite3.c:54447,1
    - Dst: sqlite3PageFree
      Src: /src/nss/lib/sqlite/sqlite3.c:54450,1
    - Dst: sqlite3PageFree
      Src: /src/nss/lib/sqlite/sqlite3.c:54455,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:54462,1
    - Dst: pagerReportSize
      Src: /src/nss/lib/sqlite/sqlite3.c:54464,1
    - Dst: pagerFixMaplimit
      Src: /src/nss/lib/sqlite/sqlite3.c:54465,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 37
    argCount: 3
    argNames:
    - pPager
    - pPageSize
    - nReserve
    argTypes:
    - Pager*
    - u32*
    - int
    assertStmts:
    - condition: ( pageSize==0 || (pageSize>=512 && pageSize<=SQLITE_MAX_PAGE_SIZE)
        )
      pos:
        line_end: 54422
        line_start: 54422
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nReserve>=0 && nReserve<1000 )
      pos:
        line_end: 54461
        line_start: 54461
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 54468
      start: 54409
    functionDepth: 7
    functionLinenumber: 54409
    functionLinenumberEnd: 54468
    functionName: sqlite3PagerSetPagesize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - pager_reset
    - isOpen
    - sqlite3PageMalloc
    - sqlite3PcacheRefCount
    - sqlite3PageFree
    - assert
    - memset
    - pagerReportSize
    - sqlite3OsFileSize
    - pagerFixMaplimit
    - sqlite3PcacheSetPageSize
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerSetPagesize(Pager *pPager, u32 *pPageSize,
      int nReserve)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54480
      start: 54478
    functionDepth: 0
    functionLinenumber: 54478
    functionLinenumberEnd: 54480
    functionName: sqlite3PagerTempSpace
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3PagerTempSpace(Pager *pPager)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:54493,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pPager
    - mxPage
    argTypes:
    - Pager*
    - int
    assertStmts:
    - condition: ( pPager->eState!=PAGER_OPEN )
      pos:
        line_end: 54492
        line_start: 54492
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 54499
      start: 54489
    functionDepth: 0
    functionLinenumber: 54489
    functionLinenumberEnd: 54499
    functionName: sqlite3PagerMaxPageCount
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerMaxPageCount(Pager *pPager, int mxPage)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54516
      start: 54513
    functionDepth: 0
    functionLinenumber: 54513
    functionLinenumberEnd: 54516
    functionName: disable_simulated_io_errors
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void disable_simulated_io_errors(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54519
      start: 54517
    functionDepth: 0
    functionLinenumber: 54517
    functionLinenumberEnd: 54519
    functionName: enable_simulated_io_errors
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void enable_simulated_io_errors(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:54541,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:54542,1
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:54542,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:54548,1
    - Dst: pagerUseWal
      Src: /src/nss/lib/sqlite/sqlite3.c:54548,1
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:54550,1
    - Dst: IOTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:54551,1
    - Dst: sqlite3OsRead
      Src: /src/nss/lib/sqlite/sqlite3.c:54552,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - pPager
    - N
    - pDest
    argTypes:
    - Pager*
    - int
    - unsigned char*
    assertStmts:
    - condition: ( isOpen(pPager->fd) || pPager->tempFile )
      pos:
        line_end: 54541
        line_start: 54541
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !pagerUseWal(pPager) )
      pos:
        line_end: 54547
        line_start: 54547
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 54558
      start: 54539
    functionDepth: 2
    functionLinenumber: 54539
    functionLinenumberEnd: 54558
    functionName: sqlite3PagerReadFileheader
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsRead
    - isOpen
    - pagerUseWal
    - memset
    - assert
    - IOTRACE
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerReadFileheader(Pager *pPager, int N, unsigned
      char *pDest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:54568,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:54569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pPager
    - pnPage
    argTypes:
    - Pager*
    - int*
    assertStmts:
    - condition: ( pPager->eState>=PAGER_READER )
      pos:
        line_end: 54567
        line_start: 54567
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->eState!=PAGER_WRITER_FINISHED )
      pos:
        line_end: 54568
        line_start: 54568
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 54571
      start: 54567
    functionDepth: 0
    functionLinenumber: 54567
    functionLinenumberEnd: 54571
    functionName: sqlite3PagerPagecount
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerPagecount(Pager *pPager, int *pnPage)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:54596,1
    - Dst: pagerLockDb
      Src: /src/nss/lib/sqlite/sqlite3.c:54602,1
    - Dst: Pager*::xBusyHandler
      Src: /src/nss/lib/sqlite/sqlite3.c:54603,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 2
    argNames:
    - pPager
    - locktype
    argTypes:
    - Pager*
    - int
    assertStmts:
    - condition: "( (pPager->eLock>=locktype)\n       || (pPager->eLock==NO_LOCK &&
        locktype==SHARED_LOCK)\n       || (pPager->eLock==RESERVED_LOCK && locktype==EXCLUSIVE_LOCK)\n
        \ )"
      pos:
        line_end: 54598
        line_start: 54595
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 54605
      start: 54588
    functionDepth: 3
    functionLinenumber: 54588
    functionLinenumberEnd: 54605
    functionName: pager_wait_on_lock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - pagerLockDb
    - Pager*::xBusyHandler
    linkageType: ''
    returnType: int
    signature: int pager_wait_on_lock(Pager *pPager, int locktype)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:54631,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:54632,1
    - Dst: subjRequiresPage
      Src: /src/nss/lib/sqlite/sqlite3.c:54632,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - pPg
    argTypes:
    - PgHdr*
    assertStmts:
    - condition: ( pPg->flags&PGHDR_DIRTY )
      pos:
        line_end: 54630
        line_start: 54630
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !subjRequiresPage(pPg) || pPg->pgno<=pPg->pPager->dbSize )
      pos:
        line_end: 54631
        line_start: 54631
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 54633
      start: 54630
    functionDepth: 3
    functionLinenumber: 54630
    functionLinenumberEnd: 54633
    functionName: assertTruncateConstraintCb
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - subjRequiresPage
    linkageType: ''
    returnType: void
    signature: void assertTruncateConstraintCb(PgHdr *pPg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PcacheIterateDirty
      Src: /src/nss/lib/sqlite/sqlite3.c:54635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54636
      start: 54634
    functionDepth: 1
    functionLinenumber: 54634
    functionLinenumberEnd: 54636
    functionName: assertTruncateConstraint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PcacheIterateDirty
    linkageType: ''
    returnType: void
    signature: void assertTruncateConstraint(Pager *pPager)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:54653,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:54654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pPager
    - nPage
    argTypes:
    - Pager*
    - Pgno
    assertStmts:
    - condition: ( pPager->dbSize>=nPage )
      pos:
        line_end: 54652
        line_start: 54652
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->eState>=PAGER_WRITER_CACHEMOD )
      pos:
        line_end: 54653
        line_start: 54653
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 54666
      start: 54652
    functionDepth: 0
    functionLinenumber: 54652
    functionLinenumberEnd: 54666
    functionName: sqlite3PagerTruncateImage
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerTruncateImage(Pager *pPager, Pgno nPage)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3OsSync
      Src: /src/nss/lib/sqlite/sqlite3.c:54686,1
    - Dst: sqlite3OsFileSize
      Src: /src/nss/lib/sqlite/sqlite3.c:54689,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54692
      start: 54683
    functionDepth: 2
    functionLinenumber: 54683
    functionLinenumberEnd: 54692
    functionName: pagerSyncHotJournal
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsFileSize
    - sqlite3OsSync
    linkageType: ''
    returnType: int
    signature: int pagerSyncHotJournal(Pager *pPager)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:54717,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:54718,1
    - Dst: sqlite3MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:54720,1
    - Dst: sqlite3OsUnfetch
      Src: /src/nss/lib/sqlite/sqlite3.c:54722,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:54731,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:54732,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:54733,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:54734,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:54735,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 4
    argNames:
    - pPager
    - pgno
    - pData
    - ppPage
    argTypes:
    - Pager*
    - Pgno
    - void*
    - PgHdr**
    assertStmts:
    - condition: ( pPager->nExtra>=8 )
      pos:
        line_end: 54716
        line_start: 54716
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->pExtra==(void *)&p[1] )
      pos:
        line_end: 54730
        line_start: 54730
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->pPage==0 )
      pos:
        line_end: 54731
        line_start: 54731
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->flags==PGHDR_MMAP )
      pos:
        line_end: 54732
        line_start: 54732
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->pPager==pPager )
      pos:
        line_end: 54733
        line_start: 54733
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->nRef==1 )
      pos:
        line_end: 54734
        line_start: 54734
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 54742
      start: 54705
    functionDepth: 6
    functionLinenumber: 54705
    functionLinenumberEnd: 54742
    functionName: pagerAcquireMapPage
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3MallocZero
    - memset
    - sqlite3OsUnfetch
    linkageType: ''
    returnType: int
    signature: "int pagerAcquireMapPage(\n  Pager *pPager,                  /* Pager
      object */\n  Pgno pgno,                      /* Page number */\n  void *pData,
      \                   /* xFetch()'d data for this page */\n  PgHdr **ppPage                  /*
      OUT: Acquired page object */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:54755,1
    - Dst: sqlite3OsUnfetch
      Src: /src/nss/lib/sqlite/sqlite3.c:54756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - pPg
    argTypes:
    - PgHdr*
    assertStmts:
    - condition: ( pPager->fd->pMethods->iVersion>=3 )
      pos:
        line_end: 54754
        line_start: 54754
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 54757
      start: 54749
    functionDepth: 1
    functionLinenumber: 54749
    functionLinenumberEnd: 54757
    functionName: pagerReleaseMapPage
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3OsUnfetch
    linkageType: ''
    returnType: void
    signature: void pagerReleaseMapPage(PgHdr *pPg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:54767,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54769
      start: 54762
    functionDepth: 3
    functionLinenumber: 54762
    functionLinenumberEnd: 54769
    functionName: pagerFreeMapHdrs
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void pagerFreeMapHdrs(Pager *pPager)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:54782,1
    - Dst: sqlite3OsFileControl
      Src: /src/nss/lib/sqlite/sqlite3.c:54783,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts:
    - condition: ( pPager->zFilename && pPager->zFilename[0] )
      pos:
        line_end: 54781
        line_start: 54781
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 54793
      start: 54776
    functionDepth: 2
    functionLinenumber: 54776
    functionLinenumberEnd: 54793
    functionName: databaseIsUnmoved
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3OsFileControl
    linkageType: ''
    returnType: int
    signature: int databaseIsUnmoved(Pager *pPager)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:54812,1
    - Dst: pagerUseWal
      Src: /src/nss/lib/sqlite/sqlite3.c:54812,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:54813,1
    - Dst: assert_pager_state
      Src: /src/nss/lib/sqlite/sqlite3.c:54813,1
    - Dst: disable_simulated_io_errors
      Src: /src/nss/lib/sqlite/sqlite3.c:54814,1
    - Dst: sqlite3BeginBenignMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:54815,1
    - Dst: pagerFreeMapHdrs
      Src: /src/nss/lib/sqlite/sqlite3.c:54816,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:54822,1
    - Dst: databaseIsUnmoved
      Src: /src/nss/lib/sqlite/sqlite3.c:54824,1
    - Dst: sqlite3WalClose
      Src: /src/nss/lib/sqlite/sqlite3.c:54828,1
    - Dst: pager_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:54832,1
    - Dst: pager_unlock
      Src: /src/nss/lib/sqlite/sqlite3.c:54834,1
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:54847,1
    - Dst: pager_error
      Src: /src/nss/lib/sqlite/sqlite3.c:54848,1
    - Dst: pagerSyncHotJournal
      Src: /src/nss/lib/sqlite/sqlite3.c:54848,1
    - Dst: pagerUnlockAndRollback
      Src: /src/nss/lib/sqlite/sqlite3.c:54850,1
    - Dst: sqlite3EndBenignMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:54852,1
    - Dst: enable_simulated_io_errors
      Src: /src/nss/lib/sqlite/sqlite3.c:54853,1
    - Dst: PAGERTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:54854,1
    - Dst: PAGERID
      Src: /src/nss/lib/sqlite/sqlite3.c:54854,1
    - Dst: IOTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:54855,1
    - Dst: sqlite3OsClose
      Src: /src/nss/lib/sqlite/sqlite3.c:54856,1
    - Dst: sqlite3OsClose
      Src: /src/nss/lib/sqlite/sqlite3.c:54857,1
    - Dst: sqlite3PageFree
      Src: /src/nss/lib/sqlite/sqlite3.c:54858,1
    - Dst: sqlite3PcacheClose
      Src: /src/nss/lib/sqlite/sqlite3.c:54859,1
    - Dst: Pager*::xCodecFree
      Src: /src/nss/lib/sqlite/sqlite3.c:54862,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:54865,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:54866,1
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:54866,1
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:54866,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:54868,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 2
    argNames:
    - pPager
    - db
    argTypes:
    - Pager*
    - sqlite3*
    assertStmts:
    - condition: ( assert_pager_state(pPager) )
      pos:
        line_end: 54812
        line_start: 54812
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !pPager->aSavepoint && !pPager->pInJournal )
      pos:
        line_end: 54864
        line_start: 54864
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( db || pagerUseWal(pPager)==0 )
      pos:
        line_end: 54811
        line_start: 54811
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !isOpen(pPager->jfd) && !isOpen(pPager->sjfd) )
      pos:
        line_end: 54865
        line_start: 54865
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( db || pPager->pWal==0 )
      pos:
        line_end: 54821
        line_start: 54821
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 54870
      start: 54810
    functionDepth: 9
    functionLinenumber: 54810
    functionLinenumberEnd: 54870
    functionName: sqlite3PagerClose
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3EndBenignMalloc
    - PAGERID
    - sqlite3PageFree
    - pagerUnlockAndRollback
    - databaseIsUnmoved
    - IOTRACE
    - sqlite3WalClose
    - pager_reset
    - pager_error
    - sqlite3BeginBenignMalloc
    - sqlite3OsClose
    - assert
    - PAGERTRACE
    - pagerSyncHotJournal
    - pagerFreeMapHdrs
    - isOpen
    - pagerUseWal
    - enable_simulated_io_errors
    - sqlite3PcacheClose
    - assert_pager_state
    - Pager*::xCodecFree
    - pager_unlock
    - disable_simulated_io_errors
    - sqlite3_free
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerClose(Pager *pPager, sqlite3 *db)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pPg
    argTypes:
    - DbPage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54878
      start: 54876
    functionDepth: 0
    functionLinenumber: 54876
    functionLinenumberEnd: 54878
    functionName: sqlite3PagerPagenumber
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerPagenumber(DbPage *pPg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PcacheRef
      Src: /src/nss/lib/sqlite/sqlite3.c:54885,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pPg
    argTypes:
    - DbPage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54886
      start: 54884
    functionDepth: 2
    functionLinenumber: 54884
    functionLinenumberEnd: 54886
    functionName: sqlite3PagerRef
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PcacheRef
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerRef(DbPage *pPg)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:54926,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:54929,1
    - Dst: assert_pager_state
      Src: /src/nss/lib/sqlite/sqlite3.c:54929,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:54930,1
    - Dst: pagerUseWal
      Src: /src/nss/lib/sqlite/sqlite3.c:54930,1
    - Dst: sqlite3PagerExclusiveLock
      Src: /src/nss/lib/sqlite/sqlite3.c:54932,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:54936,1
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:54937,1
    - Dst: sqlite3OsDeviceCharacteristics
      Src: /src/nss/lib/sqlite/sqlite3.c:54938,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:54939,1
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:54939,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:54968,1
    - Dst: put32bits
      Src: /src/nss/lib/sqlite/sqlite3.c:54969,1
    - Dst: journalHdrOffset
      Src: /src/nss/lib/sqlite/sqlite3.c:54971,1
    - Dst: sqlite3OsRead
      Src: /src/nss/lib/sqlite/sqlite3.c:54972,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:54973,1
    - Dst: sqlite3OsWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:54975,1
    - Dst: PAGERTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:54993,1
    - Dst: PAGERID
      Src: /src/nss/lib/sqlite/sqlite3.c:54993,1
    - Dst: IOTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:54994,1
    - Dst: sqlite3OsSync
      Src: /src/nss/lib/sqlite/sqlite3.c:54995,1
    - Dst: IOTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:54998,1
    - Dst: sqlite3OsWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:54999,1
    - Dst: PAGERTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:55005,1
    - Dst: PAGERID
      Src: /src/nss/lib/sqlite/sqlite3.c:55005,1
    - Dst: IOTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:55006,1
    - Dst: sqlite3OsSync
      Src: /src/nss/lib/sqlite/sqlite3.c:55007,1
    - Dst: writeJournalHdr
      Src: /src/nss/lib/sqlite/sqlite3.c:55016,1
    - Dst: sqlite3PcacheClearSyncFlags
      Src: /src/nss/lib/sqlite/sqlite3.c:55028,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:55030,1
    - Dst: assert_pager_state
      Src: /src/nss/lib/sqlite/sqlite3.c:55030,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 54
    argCount: 2
    argNames:
    - pPager
    - newHdr
    argTypes:
    - Pager*
    - int
    assertStmts:
    - condition: ( !pagerUseWal(pPager) )
      pos:
        line_end: 54929
        line_start: 54929
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( isOpen(pPager->jfd) )
      pos:
        line_end: 54938
        line_start: 54938
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !pPager->tempFile )
      pos:
        line_end: 54935
        line_start: 54935
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( assert_pager_state(pPager) )
      pos:
        line_end: 55029
        line_start: 55029
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( pPager->eState==PAGER_WRITER_CACHEMOD\n       || pPager->eState==PAGER_WRITER_DBMOD\n
        \ )"
      pos:
        line_end: 54927
        line_start: 54925
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( assert_pager_state(pPager) )
      pos:
        line_end: 54928
        line_start: 54928
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 55032
      start: 54923
    functionDepth: 3
    functionLinenumber: 54923
    functionLinenumberEnd: 55032
    functionName: syncJournal
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsDeviceCharacteristics
    - sqlite3OsRead
    - sqlite3OsWrite
    - memcpy
    - writeJournalHdr
    - sqlite3OsSync
    - isOpen
    - put32bits
    - pagerUseWal
    - PAGERID
    - journalHdrOffset
    - assert_pager_state
    - assert
    - PAGERTRACE
    - memcmp
    - sqlite3PagerExclusiveLock
    - sqlite3PcacheClearSyncFlags
    - IOTRACE
    linkageType: ''
    returnType: int
    signature: int syncJournal(Pager *pPager, int newHdr)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:55070,1
    - Dst: pagerUseWal
      Src: /src/nss/lib/sqlite/sqlite3.c:55070,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:55071,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:55072,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:55073,1
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:55073,1
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:55079,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:55080,1
    - Dst: pagerOpentemp
      Src: /src/nss/lib/sqlite/sqlite3.c:55081,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:55087,1
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:55087,1
    - Dst: sqlite3OsFileControlHint
      Src: /src/nss/lib/sqlite/sqlite3.c:55093,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:55112,1
    - Dst: pager_write_changecounter
      Src: /src/nss/lib/sqlite/sqlite3.c:55113,1
    - Dst: CODEC2
      Src: /src/nss/lib/sqlite/sqlite3.c:55116,1
    - Dst: sqlite3OsWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:55119,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:55126,1
    - Dst: sqlite3BackupUpdate
      Src: /src/nss/lib/sqlite/sqlite3.c:55134,1
    - Dst: PAGERTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:55136,1
    - Dst: PAGERID
      Src: /src/nss/lib/sqlite/sqlite3.c:55137,1
    - Dst: pager_pagehash
      Src: /src/nss/lib/sqlite/sqlite3.c:55137,1
    - Dst: IOTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:55138,1
    - Dst: PAGER_INCR
      Src: /src/nss/lib/sqlite/sqlite3.c:55139,1
    - Dst: PAGERTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:55141,1
    - Dst: PAGERID
      Src: /src/nss/lib/sqlite/sqlite3.c:55141,1
    - Dst: pager_set_pagehash
      Src: /src/nss/lib/sqlite/sqlite3.c:55143,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 39
    argCount: 2
    argNames:
    - pPager
    - pList
    argTypes:
    - Pager*
    - PgHdr*
    assertStmts:
    - condition: ( isOpen(pPager->fd) || pList->pDirty==0 )
      pos:
        line_end: 55072
        line_start: 55072
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !pagerUseWal(pPager) )
      pos:
        line_end: 55069
        line_start: 55069
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->tempFile || pPager->eState==PAGER_WRITER_DBMOD )
      pos:
        line_end: 55070
        line_start: 55070
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->eLock==EXCLUSIVE_LOCK )
      pos:
        line_end: 55071
        line_start: 55071
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->tempFile && rc==SQLITE_OK )
      pos:
        line_end: 55079
        line_start: 55079
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc!=SQLITE_OK || isOpen(pPager->fd) )
      pos:
        line_end: 55086
        line_start: 55086
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pList->flags&PGHDR_NEED_SYNC)==0 )
      pos:
        line_end: 55111
        line_start: 55111
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 55148
      start: 55066
    functionDepth: 3
    functionLinenumber: 55066
    functionLinenumberEnd: 55148
    functionName: pager_write_pagelist
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - CODEC2
    - sqlite3OsWrite
    - memcpy
    - PAGER_INCR
    - sqlite3OsFileControlHint
    - isOpen
    - pager_set_pagehash
    - pagerUseWal
    - PAGERID
    - pager_write_changecounter
    - pager_pagehash
    - assert
    - PAGERTRACE
    - pagerOpentemp
    - sqlite3BackupUpdate
    - IOTRACE
    linkageType: ''
    returnType: int
    signature: int pager_write_pagelist(Pager *pPager, PgHdr *pList)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:55160,1
    - Dst: sqlite3JournalOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:55168,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55171
      start: 55158
    functionDepth: 1
    functionLinenumber: 55158
    functionLinenumberEnd: 55171
    functionName: openSubJournal
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - isOpen
    - sqlite3JournalOpen
    linkageType: ''
    returnType: int
    signature: int openSubJournal(Pager *pPager)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:55190,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:55191,1
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:55191,1
    - Dst: pagerUseWal
      Src: /src/nss/lib/sqlite/sqlite3.c:55191,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:55192,1
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:55192,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:55193,1
    - Dst: pagerUseWal
      Src: /src/nss/lib/sqlite/sqlite3.c:55193,1
    - Dst: pageInJournal
      Src: /src/nss/lib/sqlite/sqlite3.c:55194,1
    - Dst: openSubJournal
      Src: /src/nss/lib/sqlite/sqlite3.c:55197,1
    - Dst: CODEC2
      Src: /src/nss/lib/sqlite/sqlite3.c:55208,1
    - Dst: PAGERTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:55212,1
    - Dst: PAGERID
      Src: /src/nss/lib/sqlite/sqlite3.c:55212,1
    - Dst: write32bits
      Src: /src/nss/lib/sqlite/sqlite3.c:55213,1
    - Dst: sqlite3OsWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:55215,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:55221,1
    - Dst: addToSavepointBitvecs
      Src: /src/nss/lib/sqlite/sqlite3.c:55222,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 1
    argNames:
    - pPg
    argTypes:
    - PgHdr*
    assertStmts:
    - condition: ( pPager->useJournal )
      pos:
        line_end: 55189
        line_start: 55189
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( isOpen(pPager->jfd) || pagerUseWal(pPager) )
      pos:
        line_end: 55190
        line_start: 55190
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( isOpen(pPager->sjfd) || pPager->nSubRec==0 )
      pos:
        line_end: 55191
        line_start: 55191
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( pagerUseWal(pPager) \n         || pageInJournal(pPager, pPg) \n
        \        || pPg->pgno>pPager->dbOrigSize \n    )"
      pos:
        line_end: 55195
        line_start: 55192
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->nSavepoint>0 )
      pos:
        line_end: 55220
        line_start: 55220
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 55225
      start: 55184
    functionDepth: 9
    functionLinenumber: 55184
    functionLinenumberEnd: 55225
    functionName: subjournalPage
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - CODEC2
    - sqlite3OsWrite
    - addToSavepointBitvecs
    - isOpen
    - pagerUseWal
    - PAGERID
    - write32bits
    - assert
    - PAGERTRACE
    - pageInJournal
    - openSubJournal
    linkageType: ''
    returnType: int
    signature: int subjournalPage(PgHdr *pPg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: subjRequiresPage
      Src: /src/nss/lib/sqlite/sqlite3.c:55227,1
    - Dst: subjournalPage
      Src: /src/nss/lib/sqlite/sqlite3.c:55228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pPg
    argTypes:
    - PgHdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55232
      start: 55226
    functionDepth: 10
    functionLinenumber: 55226
    functionLinenumberEnd: 55232
    functionName: subjournalPageIfRequired
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - subjRequiresPage
    - subjournalPage
    linkageType: ''
    returnType: int
    signature: int subjournalPageIfRequired(PgHdr *pPg)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:55257,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:55258,1
    - Dst: NEVER
      Src: /src/nss/lib/sqlite/sqlite3.c:55276,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:55277,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:55278,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:55279,1
    - Dst: pagerUseWal
      Src: /src/nss/lib/sqlite/sqlite3.c:55289,1
    - Dst: subjournalPageIfRequired
      Src: /src/nss/lib/sqlite/sqlite3.c:55291,1
    - Dst: pagerWalFrames
      Src: /src/nss/lib/sqlite/sqlite3.c:55293,1
    - Dst: sqlite3JournalCreate
      Src: /src/nss/lib/sqlite/sqlite3.c:55299,1
    - Dst: pager_error
      Src: /src/nss/lib/sqlite/sqlite3.c:55300,1
    - Dst: syncJournal
      Src: /src/nss/lib/sqlite/sqlite3.c:55308,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:55313,1
    - Dst: pager_write_pagelist
      Src: /src/nss/lib/sqlite/sqlite3.c:55314,1
    - Dst: PAGERTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:55320,1
    - Dst: PAGERID
      Src: /src/nss/lib/sqlite/sqlite3.c:55320,1
    - Dst: sqlite3PcacheMakeClean
      Src: /src/nss/lib/sqlite/sqlite3.c:55321,1
    - Dst: pager_error
      Src: /src/nss/lib/sqlite/sqlite3.c:55324,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 2
    argNames:
    - p
    - pPg
    argTypes:
    - void*
    - PgHdr*
    assertStmts:
    - condition: ( pPg->pPager==pPager )
      pos:
        line_end: 55256
        line_start: 55256
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPg->flags&PGHDR_DIRTY )
      pos:
        line_end: 55257
        line_start: 55257
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pPg->flags&PGHDR_NEED_SYNC)==0 )
      pos:
        line_end: 55312
        line_start: 55312
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 55325
      start: 55253
    functionDepth: 11
    functionLinenumber: 55253
    functionLinenumberEnd: 55325
    functionName: pagerStress
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - NEVER
    - pager_error
    - pagerUseWal
    - PAGERID
    - pagerWalFrames
    - assert
    - sqlite3PcacheMakeClean
    - syncJournal
    - pager_write_pagelist
    - PAGERTRACE
    - sqlite3JournalCreate
    - subjournalPageIfRequired
    - testcase
    linkageType: ''
    returnType: int
    signature: int pagerStress(void *p, PgHdr *pPg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PcacheDirtyList
      Src: /src/nss/lib/sqlite/sqlite3.c:55333,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:55334,1
    - Dst: assert_pager_state
      Src: /src/nss/lib/sqlite/sqlite3.c:55334,1
    - Dst: pagerStress
      Src: /src/nss/lib/sqlite/sqlite3.c:55338,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts:
    - condition: ( assert_pager_state(pPager) )
      pos:
        line_end: 55333
        line_start: 55333
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 55345
      start: 55330
    functionDepth: 12
    functionLinenumber: 55330
    functionLinenumberEnd: 55345
    functionName: sqlite3PagerFlush
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PcacheDirtyList
    - assert
    - pagerStress
    - assert_pager_state
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerFlush(Pager *pPager)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PcacheSize
      Src: /src/nss/lib/sqlite/sqlite3.c:55403,1
    - Dst: ROUND8
      Src: /src/nss/lib/sqlite/sqlite3.c:55410,1
    - Dst: sqlite3JournalSize
      Src: /src/nss/lib/sqlite/sqlite3.c:55410,1
    - Dst: sqlite3DbStrDup
      Src: /src/nss/lib/sqlite/sqlite3.c:55419,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:55421,1
    - Dst: sqlite3DbMallocRaw
      Src: /src/nss/lib/sqlite/sqlite3.c:55434,1
    - Dst: sqlite3OsFullPathname
      Src: /src/nss/lib/sqlite/sqlite3.c:55439,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:55440,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:55441,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:55443,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:55444,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:55447,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:55458,1
    - Dst: sqlite3MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:55475,1
    - Dst: ROUND8
      Src: /src/nss/lib/sqlite/sqlite3.c:55476,1
    - Dst: ROUND8
      Src: /src/nss/lib/sqlite/sqlite3.c:55477,1
    - Dst: ROUND8
      Src: /src/nss/lib/sqlite/sqlite3.c:55478,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:55486,1
    - Dst: EIGHT_BYTE_ALIGNMENT
      Src: /src/nss/lib/sqlite/sqlite3.c:55486,1
    - Dst: SQLITE_INT_TO_PTR
      Src: /src/nss/lib/sqlite/sqlite3.c:55486,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:55488,1
    - Dst: ROUND8
      Src: /src/nss/lib/sqlite/sqlite3.c:55492,1
    - Dst: ROUND8
      Src: /src/nss/lib/sqlite/sqlite3.c:55493,1
    - Dst: ROUND8
      Src: /src/nss/lib/sqlite/sqlite3.c:55494,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:55497,1
    - Dst: EIGHT_BYTE_ALIGNMENT
      Src: /src/nss/lib/sqlite/sqlite3.c:55497,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:55501,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:55503,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:55504,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:55505,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:55506,1
    - Dst: sqlite3FileSuffix3
      Src: /src/nss/lib/sqlite/sqlite3.c:55507,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:55510,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:55511,1
    - Dst: sqlite3FileSuffix3
      Src: /src/nss/lib/sqlite/sqlite3.c:55512,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:55514,1
    - Dst: sqlite3OsOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:55523,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:55524,1
    - Dst: sqlite3OsDeviceCharacteristics
      Src: /src/nss/lib/sqlite/sqlite3.c:55539,1
    - Dst: setSectorSize
      Src: /src/nss/lib/sqlite/sqlite3.c:55541,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:55542,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:55553,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:55554,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:55555,1
    - Dst: sqlite3_uri_boolean
      Src: /src/nss/lib/sqlite/sqlite3.c:55564,1
    - Dst: sqlite3_uri_boolean
      Src: /src/nss/lib/sqlite/sqlite3.c:55566,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:55594,1
    - Dst: sqlite3PagerSetPagesize
      Src: /src/nss/lib/sqlite/sqlite3.c:55595,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:55596,1
    - Dst: ROUND8
      Src: /src/nss/lib/sqlite/sqlite3.c:55601,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:55602,1
    - Dst: sqlite3PcacheOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:55603,1
    - Dst: sqlite3OsClose
      Src: /src/nss/lib/sqlite/sqlite3.c:55610,1
    - Dst: sqlite3PageFree
      Src: /src/nss/lib/sqlite/sqlite3.c:55611,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:55612,1
    - Dst: PAGERTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:55616,1
    - Dst: FILEHANDLEID
      Src: /src/nss/lib/sqlite/sqlite3.c:55616,1
    - Dst: IOTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:55617,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:55630,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:55632,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:55637,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:55640,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:55641,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:55642,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:55643,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:55655,1
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:55655,1
    - Dst: setSectorSize
      Src: /src/nss/lib/sqlite/sqlite3.c:55656,1
    - Dst: setGetterMethod
      Src: /src/nss/lib/sqlite/sqlite3.c:55665,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 162
    argCount: 6
    argNames:
    - pVfs
    - ppPager
    - zFilename
    - nExtra
    - flags
    - vfsFlags
    argTypes:
    - sqlite3_vfs*
    - Pager**
    - char*
    - int
    - int
    - int
    assertStmts:
    - condition: ( nUri>=0 )
      pos:
        line_end: 55446
        line_start: 55446
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !memDb )
      pos:
        line_end: 55523
        line_start: 55523
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (SQLITE_IOCAP_ATOMIC512==(512>>8))
      pos:
        line_end: 55552
        line_start: 55552
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->syncFlags==0 )
      pos:
        line_end: 55641
        line_start: 55641
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( EIGHT_BYTE_ALIGNMENT(SQLITE_INT_TO_PTR(journalFileSize)) )
      pos:
        line_end: 55485
        line_start: 55485
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( EIGHT_BYTE_ALIGNMENT(pPager->jfd) )
      pos:
        line_end: 55496
        line_start: 55496
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nPathname>0 )
      pos:
        line_end: 55500
        line_start: 55500
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( isOpen(pPager->fd) || tempFile )
      pos:
        line_end: 55654
        line_start: 55654
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( tempFile==PAGER_LOCKINGMODE_NORMAL \n          || tempFile==PAGER_LOCKINGMODE_EXCLUSIVE
        )"
      pos:
        line_end: 55630
        line_start: 55629
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (SQLITE_DEFAULT_PAGE_SIZE<=SQLITE_MAX_DEFAULT_PAGE_SIZE)
      pos:
        line_end: 55541
        line_start: 55541
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (SQLITE_MAX_DEFAULT_PAGE_SIZE<=65536)
      pos:
        line_end: 55554
        line_start: 55554
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->fullSync==0 )
      pos:
        line_end: 55639
        line_start: 55639
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (SQLITE_IOCAP_ATOMIC64K==(65536>>8))
      pos:
        line_end: 55553
        line_start: 55553
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( PAGER_LOCKINGMODE_EXCLUSIVE==1 )
      pos:
        line_end: 55631
        line_start: 55631
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->walSyncFlags==0 )
      pos:
        line_end: 55642
        line_start: 55642
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->extraSync==0 )
      pos:
        line_end: 55640
        line_start: 55640
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nExtra>=8 && nExtra<1000 )
      pos:
        line_end: 55601
        line_start: 55601
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( useJournal || pPager->tempFile )
      pos:
        line_end: 55636
        line_start: 55636
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->memDb==0 )
      pos:
        line_end: 55593
        line_start: 55593
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 55671
      start: 55379
    functionDepth: 8
    functionLinenumber: 55379
    functionLinenumberEnd: 55671
    functionName: sqlite3PagerOpen
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsDeviceCharacteristics
    - setGetterMethod
    - sqlite3PageFree
    - sqlite3DbMallocRaw
    - sqlite3MallocZero
    - testcase
    - sqlite3PcacheOpen
    - FILEHANDLEID
    - IOTRACE
    - memcpy
    - sqlite3DbStrDup
    - sqlite3OsClose
    - assert
    - PAGERTRACE
    - EIGHT_BYTE_ALIGNMENT
    - sqlite3OsOpen
    - sqlite3OsFullPathname
    - isOpen
    - sqlite3DbFree
    - sqlite3Strlen30
    - SQLITE_INT_TO_PTR
    - sqlite3PcacheSize
    - sqlite3_free
    - ROUND8
    - sqlite3_uri_boolean
    - setSectorSize
    - sqlite3PagerSetPagesize
    - sqlite3FileSuffix3
    - sqlite3JournalSize
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3PagerOpen(\n  sqlite3_vfs *pVfs,       /* The
      virtual file system to use */\n  Pager **ppPager,         /* OUT: Return the
      Pager structure here */\n  const char *zFilename,   /* Name of the database
      file to open */\n  int nExtra,              /* Extra bytes append to each in-memory
      page */\n  int flags,               /* flags controlling this file */\n  int
      vfsFlags,            /* flags passed through to sqlite3_vfs.xOpen() */\n  void
      (*xReinit)(DbPage*) /* Function to reinitialize pages */\n)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:55710,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:55712,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:55713,1
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:55713,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:55714,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:55716,1
    - Dst: sqlite3OsDeviceCharacteristics
      Src: /src/nss/lib/sqlite/sqlite3.c:55716,1
    - Dst: sqlite3OsAccess
      Src: /src/nss/lib/sqlite/sqlite3.c:55722,1
    - Dst: sqlite3OsCheckReservedLock
      Src: /src/nss/lib/sqlite/sqlite3.c:55735,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:55739,1
    - Dst: pagerPagecount
      Src: /src/nss/lib/sqlite/sqlite3.c:55740,1
    - Dst: sqlite3BeginBenignMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:55751,1
    - Dst: pagerLockDb
      Src: /src/nss/lib/sqlite/sqlite3.c:55752,1
    - Dst: sqlite3OsDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:55753,1
    - Dst: pagerUnlockDb
      Src: /src/nss/lib/sqlite/sqlite3.c:55754,1
    - Dst: sqlite3EndBenignMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:55756,1
    - Dst: sqlite3OsOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:55766,1
    - Dst: sqlite3OsRead
      Src: /src/nss/lib/sqlite/sqlite3.c:55770,1
    - Dst: sqlite3OsClose
      Src: /src/nss/lib/sqlite/sqlite3.c:55775,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 2
    argNames:
    - pPager
    - pExists
    argTypes:
    - Pager*
    - int*
    assertStmts:
    - condition: ( pPager->tempFile==0 )
      pos:
        line_end: 55738
        line_start: 55738
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( isOpen(pPager->fd) )
      pos:
        line_end: 55712
        line_start: 55712
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->useJournal )
      pos:
        line_end: 55711
        line_start: 55711
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->eState==PAGER_OPEN )
      pos:
        line_end: 55713
        line_start: 55713
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( jrnlOpen==0 || ( sqlite3OsDeviceCharacteristics(pPager->jfd) &\n
        \   SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN\n  ))"
      pos:
        line_end: 55717
        line_start: 55715
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 55797
      start: 55706
    functionDepth: 3
    functionLinenumber: 55706
    functionLinenumberEnd: 55797
    functionName: hasHotJournal
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsDeviceCharacteristics
    - sqlite3OsRead
    - sqlite3EndBenignMalloc
    - isOpen
    - sqlite3BeginBenignMalloc
    - sqlite3OsClose
    - pagerLockDb
    - pagerPagecount
    - assert
    - sqlite3OsCheckReservedLock
    - sqlite3OsAccess
    - pagerUnlockDb
    - sqlite3OsDelete
    - sqlite3OsOpen
    linkageType: ''
    returnType: int
    signature: int hasHotJournal(Pager *pPager, int *pExists)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:55833,1
    - Dst: sqlite3PcacheRefCount
      Src: /src/nss/lib/sqlite/sqlite3.c:55833,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:55834,1
    - Dst: assert_pager_state
      Src: /src/nss/lib/sqlite/sqlite3.c:55834,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:55835,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:55836,1
    - Dst: pagerUseWal
      Src: /src/nss/lib/sqlite/sqlite3.c:55838,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:55841,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:55842,1
    - Dst: pager_wait_on_lock
      Src: /src/nss/lib/sqlite/sqlite3.c:55844,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:55846,1
    - Dst: hasHotJournal
      Src: /src/nss/lib/sqlite/sqlite3.c:55854,1
    - Dst: pagerLockDb
      Src: /src/nss/lib/sqlite/sqlite3.c:55880,1
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:55898,1
    - Dst: sqlite3OsAccess
      Src: /src/nss/lib/sqlite/sqlite3.c:55901,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:55906,1
    - Dst: sqlite3OsOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:55907,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:55908,1
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:55908,1
    - Dst: sqlite3OsClose
      Src: /src/nss/lib/sqlite/sqlite3.c:55911,1
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:55924,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:55925,1
    - Dst: pagerSyncHotJournal
      Src: /src/nss/lib/sqlite/sqlite3.c:55926,1
    - Dst: pager_playback
      Src: /src/nss/lib/sqlite/sqlite3.c:55928,1
    - Dst: pagerUnlockDb
      Src: /src/nss/lib/sqlite/sqlite3.c:55932,1
    - Dst: pager_error
      Src: /src/nss/lib/sqlite/sqlite3.c:55952,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:55956,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:55957,1
    - Dst: IOTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:55981,1
    - Dst: sqlite3OsRead
      Src: /src/nss/lib/sqlite/sqlite3.c:55982,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:55987,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:55990,1
    - Dst: pager_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:55991,1
    - Dst: USEFETCH
      Src: /src/nss/lib/sqlite/sqlite3.c:55999,1
    - Dst: sqlite3OsUnfetch
      Src: /src/nss/lib/sqlite/sqlite3.c:56000,1
    - Dst: pagerOpenWalIfPresent
      Src: /src/nss/lib/sqlite/sqlite3.c:56008,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56010,1
    - Dst: pagerUseWal
      Src: /src/nss/lib/sqlite/sqlite3.c:56014,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56015,1
    - Dst: pagerBeginReadTransaction
      Src: /src/nss/lib/sqlite/sqlite3.c:56016,1
    - Dst: pagerPagecount
      Src: /src/nss/lib/sqlite/sqlite3.c:56020,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56025,1
    - Dst: pager_unlock
      Src: /src/nss/lib/sqlite/sqlite3.c:56026,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56027,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 101
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts:
    - condition: ( assert_pager_state(pPager) )
      pos:
        line_end: 55833
        line_start: 55833
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->eLock==NO_LOCK || pPager->eLock==UNKNOWN_LOCK )
      pos:
        line_end: 55845
        line_start: 55845
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc==SQLITE_OK )
      pos:
        line_end: 55924
        line_start: 55924
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->eState==PAGER_OPEN )
      pos:
        line_end: 55955
        line_start: 55955
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( (pPager->eLock==SHARED_LOCK)\n           || (pPager->exclusiveMode
        && pPager->eLock>SHARED_LOCK)\n      )"
      pos:
        line_end: 55958
        line_start: 55956
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3PcacheRefCount(pPager->pPCache)==0 )
      pos:
        line_end: 55832
        line_start: 55832
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->eState==PAGER_OPEN || pPager->eState==PAGER_READER )
      pos:
        line_end: 55834
        line_start: 55834
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->pWal==0 || rc==SQLITE_OK )
      pos:
        line_end: 56009
        line_start: 56009
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc==SQLITE_OK )
      pos:
        line_end: 56014
        line_start: 56014
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->errCode==SQLITE_OK )
      pos:
        line_end: 55835
        line_start: 55835
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !MEMDB )
      pos:
        line_end: 55840
        line_start: 55840
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->tempFile==0 || pPager->eLock==EXCLUSIVE_LOCK )
      pos:
        line_end: 55841
        line_start: 55841
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc!=SQLITE_OK || isOpen(pPager->jfd) )
      pos:
        line_end: 55907
        line_start: 55907
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->eState==PAGER_OPEN )
      pos:
        line_end: 56026
        line_start: 56026
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !pPager->tempFile )
      pos:
        line_end: 55905
        line_start: 55905
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !MEMDB )
      pos:
        line_end: 56024
        line_start: 56024
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 56033
      start: 55826
    functionDepth: 11
    functionLinenumber: 55826
    functionLinenumberEnd: 56033
    functionName: sqlite3PagerSharedLock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - hasHotJournal
    - pagerLockDb
    - pagerPagecount
    - IOTRACE
    - pager_reset
    - pager_error
    - sqlite3OsClose
    - sqlite3PcacheRefCount
    - assert
    - memset
    - sqlite3OsAccess
    - pagerSyncHotJournal
    - memcmp
    - sqlite3OsOpen
    - pager_playback
    - sqlite3OsRead
    - pagerOpenWalIfPresent
    - isOpen
    - pagerUseWal
    - assert_pager_state
    - pager_wait_on_lock
    - pagerUnlockDb
    - sqlite3OsUnfetch
    - pagerBeginReadTransaction
    - pager_unlock
    - USEFETCH
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerSharedLock(Pager *pPager)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PcacheRefCount
      Src: /src/nss/lib/sqlite/sqlite3.c:56044,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56045,1
    - Dst: pagerUnlockAndRollback
      Src: /src/nss/lib/sqlite/sqlite3.c:56046,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts:
    - condition: ( pPager->nMmapOut==0 )
      pos:
        line_end: 56044
        line_start: 56044
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 56048
      start: 56043
    functionDepth: 9
    functionLinenumber: 56043
    functionLinenumberEnd: 56048
    functionName: pagerUnlockIfUnused
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - pagerUnlockAndRollback
    - sqlite3PcacheRefCount
    linkageType: ''
    returnType: void
    signature: void pagerUnlockIfUnused(Pager *pPager)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56118,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56119,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56120,1
    - Dst: assert_pager_state
      Src: /src/nss/lib/sqlite/sqlite3.c:56120,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56121,1
    - Dst: sqlite3PcacheFetch
      Src: /src/nss/lib/sqlite/sqlite3.c:56124,1
    - Dst: sqlite3PcacheFetchStress
      Src: /src/nss/lib/sqlite/sqlite3.c:56127,1
    - Dst: sqlite3PcacheFetchFinish
      Src: /src/nss/lib/sqlite/sqlite3.c:56134,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56135,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56136,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56137,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56143,1
    - Dst: PAGER_MJ_PGNO
      Src: /src/nss/lib/sqlite/sqlite3.c:56143,1
    - Dst: PAGER_MJ_PGNO
      Src: /src/nss/lib/sqlite/sqlite3.c:56154,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56161,1
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:56161,1
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:56162,1
    - Dst: sqlite3BeginBenignMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:56174,1
    - Dst: TESTONLY
      Src: /src/nss/lib/sqlite/sqlite3.c:56176,1
    - Dst: sqlite3BitvecSet
      Src: /src/nss/lib/sqlite/sqlite3.c:56176,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:56177,1
    - Dst: TESTONLY
      Src: /src/nss/lib/sqlite/sqlite3.c:56179,1
    - Dst: addToSavepointBitvecs
      Src: /src/nss/lib/sqlite/sqlite3.c:56179,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:56180,1
    - Dst: sqlite3EndBenignMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:56181,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:56183,1
    - Dst: IOTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:56184,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56186,1
    - Dst: readDbPage
      Src: /src/nss/lib/sqlite/sqlite3.c:56188,1
    - Dst: pager_set_pagehash
      Src: /src/nss/lib/sqlite/sqlite3.c:56193,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56198,1
    - Dst: sqlite3PcacheDrop
      Src: /src/nss/lib/sqlite/sqlite3.c:56200,1
    - Dst: pagerUnlockIfUnused
      Src: /src/nss/lib/sqlite/sqlite3.c:56202,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 76
    argCount: 4
    argNames:
    - pPager
    - pgno
    - ppPage
    - flags
    argTypes:
    - Pager*
    - Pgno
    - DbPage**
    - int
    assertStmts:
    - condition: ( pPager->hasHeldSharedLock==1 )
      pos:
        line_end: 56120
        line_start: 56120
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->eState>=PAGER_READER )
      pos:
        line_end: 56118
        line_start: 56118
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPg==(*ppPage) )
      pos:
        line_end: 56134
        line_start: 56134
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPg->pPager==pPager )
      pos:
        line_end: 56185
        line_start: 56185
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( assert_pager_state(pPager) )
      pos:
        line_end: 56119
        line_start: 56119
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !isOpen(pPager->fd) || !MEMDB )
      pos:
        line_end: 56160
        line_start: 56160
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc!=SQLITE_OK )
      pos:
        line_end: 56197
        line_start: 56197
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->errCode==SQLITE_OK )
      pos:
        line_end: 56117
        line_start: 56117
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPg->pgno==pgno )
      pos:
        line_end: 56135
        line_start: 56135
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPg->pPager==pPager || pPg->pPager==0 )
      pos:
        line_end: 56136
        line_start: 56136
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pgno<=PAGER_MAX_PGNO && pgno!=PAGER_MJ_PGNO(pPager) )
      pos:
        line_end: 56142
        line_start: 56142
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 56205
      start: 56107
    functionDepth: 11
    functionLinenumber: 56107
    functionLinenumberEnd: 56205
    functionName: getPageNormal
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - PAGER_MJ_PGNO
    - sqlite3EndBenignMalloc
    - testcase
    - IOTRACE
    - sqlite3BeginBenignMalloc
    - assert
    - memset
    - sqlite3PcacheFetch
    - sqlite3PcacheFetchFinish
    - sqlite3PcacheDrop
    - TESTONLY
    - addToSavepointBitvecs
    - isOpen
    - readDbPage
    - sqlite3BitvecSet
    - pagerUnlockIfUnused
    - assert_pager_state
    - sqlite3PcacheFetchStress
    - pager_set_pagehash
    linkageType: ''
    returnType: int
    signature: "int getPageNormal(\n  Pager *pPager,      /* The pager open on the
      database file */\n  Pgno pgno,          /* Page number to fetch */\n  DbPage
      **ppPage,    /* Write a pointer to the page here */\n  int flags           /*
      PAGER_GET_XXX flags */\n)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56227,1
    - Dst: USEFETCH
      Src: /src/nss/lib/sqlite/sqlite3.c:56227,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56229,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56239,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56240,1
    - Dst: assert_pager_state
      Src: /src/nss/lib/sqlite/sqlite3.c:56240,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56241,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56242,1
    - Dst: pagerUseWal
      Src: /src/nss/lib/sqlite/sqlite3.c:56244,1
    - Dst: sqlite3WalFindFrame
      Src: /src/nss/lib/sqlite/sqlite3.c:56245,1
    - Dst: sqlite3OsFetch
      Src: /src/nss/lib/sqlite/sqlite3.c:56253,1
    - Dst: sqlite3PagerLookup
      Src: /src/nss/lib/sqlite/sqlite3.c:56258,1
    - Dst: pagerAcquireMapPage
      Src: /src/nss/lib/sqlite/sqlite3.c:56261,1
    - Dst: sqlite3OsUnfetch
      Src: /src/nss/lib/sqlite/sqlite3.c:56263,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56266,1
    - Dst: getPageNormal
      Src: /src/nss/lib/sqlite/sqlite3.c:56276,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 40
    argCount: 4
    argNames:
    - pPager
    - pgno
    - ppPage
    - flags
    argTypes:
    - Pager*
    - Pgno
    - DbPage**
    - int
    assertStmts:
    - condition: ( USEFETCH(pPager) )
      pos:
        line_end: 56226
        line_start: 56226
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->eState>=PAGER_READER )
      pos:
        line_end: 56238
        line_start: 56238
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->xCodec==0 )
      pos:
        line_end: 56228
        line_start: 56228
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( assert_pager_state(pPager) )
      pos:
        line_end: 56239
        line_start: 56239
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->hasHeldSharedLock==1 )
      pos:
        line_end: 56240
        line_start: 56240
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->errCode==SQLITE_OK )
      pos:
        line_end: 56241
        line_start: 56241
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc==SQLITE_OK )
      pos:
        line_end: 56265
        line_start: 56265
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 56277
      start: 56209
    functionDepth: 12
    functionLinenumber: 56209
    functionLinenumberEnd: 56277
    functionName: getPageMMap
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - getPageNormal
    - sqlite3OsFetch
    - pagerUseWal
    - assert_pager_state
    - assert
    - sqlite3PagerLookup
    - sqlite3WalFindFrame
    - sqlite3OsUnfetch
    - USEFETCH
    - pagerAcquireMapPage
    linkageType: ''
    returnType: int
    signature: "int getPageMMap(\n  Pager *pPager,      /* The pager open on the database
      file */\n  Pgno pgno,          /* Page number to fetch */\n  DbPage **ppPage,
      \   /* Write a pointer to the page here */\n  int flags           /* PAGER_GET_XXX
      flags */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:56287,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:56288,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - pPager
    - pgno
    - ppPage
    - flags
    argTypes:
    - Pager*
    - Pgno
    - DbPage**
    - int
    assertStmts:
    - condition: ( pPager->errCode!=SQLITE_OK )
      pos:
        line_end: 56288
        line_start: 56288
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 56292
      start: 56281
    functionDepth: 1
    functionLinenumber: 56281
    functionLinenumberEnd: 56292
    functionName: getPageError
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: int
    signature: "int getPageError(\n  Pager *pPager,      /* The pager open on the
      database file */\n  Pgno pgno,          /* Page number to fetch */\n  DbPage
      **ppPage,    /* Write a pointer to the page here */\n  int flags           /*
      PAGER_GET_XXX flags */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Pager*::xGet
      Src: /src/nss/lib/sqlite/sqlite3.c:56303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pPager
    - pgno
    - ppPage
    - flags
    argTypes:
    - Pager*
    - Pgno
    - DbPage**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56304
      start: 56297
    functionDepth: 0
    functionLinenumber: 56297
    functionLinenumberEnd: 56304
    functionName: sqlite3PagerGet
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - Pager*::xGet
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3PagerGet(\n  Pager *pPager,      /* The pager
      open on the database file */\n  Pgno pgno,          /* Page number to fetch
      */\n  DbPage **ppPage,    /* Write a pointer to the page here */\n  int flags
      \          /* PAGER_GET_XXX flags */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56319,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56320,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56321,1
    - Dst: sqlite3PcacheFetch
      Src: /src/nss/lib/sqlite/sqlite3.c:56322,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56323,1
    - Dst: sqlite3PcacheFetchFinish
      Src: /src/nss/lib/sqlite/sqlite3.c:56325,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - pPager
    - pgno
    argTypes:
    - Pager*
    - Pgno
    assertStmts:
    - condition: ( pPager!=0 )
      pos:
        line_end: 56318
        line_start: 56318
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->pPCache!=0 )
      pos:
        line_end: 56320
        line_start: 56320
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pgno!=0 )
      pos:
        line_end: 56319
        line_start: 56319
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage==0 || pPager->hasHeldSharedLock )
      pos:
        line_end: 56322
        line_start: 56322
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 56326
      start: 56317
    functionDepth: 3
    functionLinenumber: 56317
    functionLinenumberEnd: 56326
    functionName: sqlite3PagerLookup
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 4
    functionsReached:
    - assert
    - sqlite3PcacheFetchFinish
    - sqlite3PcacheFetch
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3PagerLookup(Pager *pPager, Pgno pgno)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56342,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56344,1
    - Dst: pagerReleaseMapPage
      Src: /src/nss/lib/sqlite/sqlite3.c:56345,1
    - Dst: sqlite3PcacheRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:56347,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56350,1
    - Dst: sqlite3PcacheRefCount
      Src: /src/nss/lib/sqlite/sqlite3.c:56350,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - pPg
    argTypes:
    - DbPage*
    assertStmts:
    - condition: ( pPg!=0 )
      pos:
        line_end: 56341
        line_start: 56341
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPg->pgno!=1 )
      pos:
        line_end: 56343
        line_start: 56343
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3PcacheRefCount(pPager->pPCache)>0 )
      pos:
        line_end: 56349
        line_start: 56349
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 56351
      start: 56340
    functionDepth: 4
    functionLinenumber: 56340
    functionLinenumberEnd: 56351
    functionName: sqlite3PagerUnrefNotNull
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - assert
    - pagerReleaseMapPage
    - sqlite3PcacheRelease
    - sqlite3PcacheRefCount
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerUnrefNotNull(DbPage *pPg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PagerUnrefNotNull
      Src: /src/nss/lib/sqlite/sqlite3.c:56353,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - pPg
    argTypes:
    - DbPage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56354
      start: 56352
    functionDepth: 5
    functionLinenumber: 56352
    functionLinenumberEnd: 56354
    functionName: sqlite3PagerUnref
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3PagerUnrefNotNull
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerUnref(DbPage *pPg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56357,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56358,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56359,1
    - Dst: sqlite3PagerResetLockTimeout
      Src: /src/nss/lib/sqlite/sqlite3.c:56361,1
    - Dst: sqlite3PcacheRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:56362,1
    - Dst: pagerUnlockIfUnused
      Src: /src/nss/lib/sqlite/sqlite3.c:56363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - pPg
    argTypes:
    - DbPage*
    assertStmts:
    - condition: ( pPg!=0 )
      pos:
        line_end: 56356
        line_start: 56356
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pPg->flags & PGHDR_MMAP)==0 )
      pos:
        line_end: 56358
        line_start: 56358
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPg->pgno==1 )
      pos:
        line_end: 56357
        line_start: 56357
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 56364
      start: 56355
    functionDepth: 10
    functionLinenumber: 56355
    functionLinenumberEnd: 56364
    functionName: sqlite3PagerUnrefPageOne
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - pagerUnlockIfUnused
    - sqlite3PcacheRelease
    - sqlite3PagerResetLockTimeout
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerUnrefPageOne(DbPage *pPg)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56392,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56393,1
    - Dst: assert_pager_state
      Src: /src/nss/lib/sqlite/sqlite3.c:56393,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56394,1
    - Dst: NEVER
      Src: /src/nss/lib/sqlite/sqlite3.c:56399,1
    - Dst: pagerUseWal
      Src: /src/nss/lib/sqlite/sqlite3.c:56401,1
    - Dst: sqlite3BitvecCreate
      Src: /src/nss/lib/sqlite/sqlite3.c:56402,1
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:56408,1
    - Dst: sqlite3MemJournalOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:56410,1
    - Dst: jrnlBufferSize
      Src: /src/nss/lib/sqlite/sqlite3.c:56420,1
    - Dst: databaseIsUnmoved
      Src: /src/nss/lib/sqlite/sqlite3.c:56425,1
    - Dst: sqlite3JournalOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:56427,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56432,1
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:56432,1
    - Dst: writeJournalHdr
      Src: /src/nss/lib/sqlite/sqlite3.c:56445,1
    - Dst: sqlite3BitvecDestroy
      Src: /src/nss/lib/sqlite/sqlite3.c:56450,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56453,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts:
    - condition: ( pPager->eState==PAGER_WRITER_LOCKED )
      pos:
        line_end: 56391
        line_start: 56391
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( assert_pager_state(pPager) )
      pos:
        line_end: 56392
        line_start: 56392
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->pInJournal==0 )
      pos:
        line_end: 56393
        line_start: 56393
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc!=SQLITE_OK || isOpen(pPager->jfd) )
      pos:
        line_end: 56431
        line_start: 56431
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->eState==PAGER_WRITER_LOCKED )
      pos:
        line_end: 56452
        line_start: 56452
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 56458
      start: 56388
    functionDepth: 7
    functionLinenumber: 56388
    functionLinenumberEnd: 56458
    functionName: pager_open_journal
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - NEVER
    - sqlite3JournalOpen
    - writeJournalHdr
    - jrnlBufferSize
    - sqlite3BitvecCreate
    - isOpen
    - sqlite3MemJournalOpen
    - pagerUseWal
    - assert_pager_state
    - assert
    - databaseIsUnmoved
    - sqlite3BitvecDestroy
    linkageType: ''
    returnType: int
    signature: int pager_open_journal(Pager *pPager)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56481,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:56484,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56485,1
    - Dst: pagerUseWal
      Src: /src/nss/lib/sqlite/sqlite3.c:56487,1
    - Dst: sqlite3WalExclusiveMode
      Src: /src/nss/lib/sqlite/sqlite3.c:56491,1
    - Dst: pagerLockDb
      Src: /src/nss/lib/sqlite/sqlite3.c:56492,1
    - Dst: sqlite3WalExclusiveMode
      Src: /src/nss/lib/sqlite/sqlite3.c:56496,1
    - Dst: sqlite3WalBeginWriteTransaction
      Src: /src/nss/lib/sqlite/sqlite3.c:56504,1
    - Dst: pagerLockDb
      Src: /src/nss/lib/sqlite/sqlite3.c:56511,1
    - Dst: pager_wait_on_lock
      Src: /src/nss/lib/sqlite/sqlite3.c:56513,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56534,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56535,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56536,1
    - Dst: assert_pager_state
      Src: /src/nss/lib/sqlite/sqlite3.c:56536,1
    - Dst: PAGERTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:56539,1
    - Dst: PAGERID
      Src: /src/nss/lib/sqlite/sqlite3.c:56539,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 3
    argNames:
    - pPager
    - exFlag
    - subjInMemory
    argTypes:
    - Pager*
    - int
    - int
    assertStmts:
    - condition: ( pPager->eState>=PAGER_READER && pPager->eState<PAGER_ERROR )
      pos:
        line_end: 56480
        line_start: 56480
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->pInJournal==0 )
      pos:
        line_end: 56484
        line_start: 56484
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( assert_pager_state(pPager) )
      pos:
        line_end: 56535
        line_start: 56535
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc==SQLITE_OK || pPager->eState==PAGER_READER )
      pos:
        line_end: 56533
        line_start: 56533
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc!=SQLITE_OK || pPager->eState==PAGER_WRITER_LOCKED )
      pos:
        line_end: 56534
        line_start: 56534
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 56541
      start: 56477
    functionDepth: 4
    functionLinenumber: 56477
    functionLinenumberEnd: 56541
    functionName: sqlite3PagerBegin
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ALWAYS
    - pagerUseWal
    - PAGERID
    - pagerLockDb
    - assert_pager_state
    - assert
    - sqlite3WalBeginWriteTransaction
    - PAGERTRACE
    - pager_wait_on_lock
    - sqlite3WalExclusiveMode
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerBegin(Pager *pPager, int exFlag, int subjInMemory)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56556,1
    - Dst: PAGER_MJ_PGNO
      Src: /src/nss/lib/sqlite/sqlite3.c:56556,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56558,1
    - Dst: CODEC2
      Src: /src/nss/lib/sqlite/sqlite3.c:56559,1
    - Dst: pager_cksum
      Src: /src/nss/lib/sqlite/sqlite3.c:56560,1
    - Dst: write32bits
      Src: /src/nss/lib/sqlite/sqlite3.c:56571,1
    - Dst: sqlite3OsWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:56573,1
    - Dst: write32bits
      Src: /src/nss/lib/sqlite/sqlite3.c:56575,1
    - Dst: IOTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:56578,1
    - Dst: PAGER_INCR
      Src: /src/nss/lib/sqlite/sqlite3.c:56580,1
    - Dst: PAGERTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:56581,1
    - Dst: PAGERID
      Src: /src/nss/lib/sqlite/sqlite3.c:56582,1
    - Dst: pager_pagehash
      Src: /src/nss/lib/sqlite/sqlite3.c:56583,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56587,1
    - Dst: sqlite3BitvecSet
      Src: /src/nss/lib/sqlite/sqlite3.c:56588,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:56589,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56590,1
    - Dst: addToSavepointBitvecs
      Src: /src/nss/lib/sqlite/sqlite3.c:56591,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56592,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 1
    argNames:
    - pPg
    argTypes:
    - PgHdr*
    assertStmts:
    - condition: ( pPg->pgno!=PAGER_MJ_PGNO(pPager) )
      pos:
        line_end: 56555
        line_start: 56555
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc==SQLITE_OK || rc==SQLITE_NOMEM )
      pos:
        line_end: 56591
        line_start: 56591
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->pInJournal!=0 )
      pos:
        line_end: 56586
        line_start: 56586
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc==SQLITE_OK || rc==SQLITE_NOMEM )
      pos:
        line_end: 56589
        line_start: 56589
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->journalHdr<=pPager->journalOff )
      pos:
        line_end: 56557
        line_start: 56557
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 56594
      start: 56546
    functionDepth: 9
    functionLinenumber: 56546
    functionLinenumberEnd: 56594
    functionName: pagerAddPageToRollbackJournal
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - CODEC2
    - sqlite3OsWrite
    - PAGER_INCR
    - PAGER_MJ_PGNO
    - addToSavepointBitvecs
    - sqlite3BitvecSet
    - PAGERID
    - write32bits
    - pager_pagehash
    - assert
    - PAGERTRACE
    - pager_cksum
    - testcase
    - IOTRACE
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: SQLITE_NOINLINE pagerAddPageToRollbackJournal(PgHdr *pPg)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56611,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56615,1
    - Dst: assert_pager_state
      Src: /src/nss/lib/sqlite/sqlite3.c:56615,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56616,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56617,1
    - Dst: CHECK_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:56618,1
    - Dst: pager_open_journal
      Src: /src/nss/lib/sqlite/sqlite3.c:56630,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56633,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56634,1
    - Dst: assert_pager_state
      Src: /src/nss/lib/sqlite/sqlite3.c:56634,1
    - Dst: sqlite3PcacheMakeDirty
      Src: /src/nss/lib/sqlite/sqlite3.c:56637,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56643,1
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:56643,1
    - Dst: sqlite3BitvecTestNotNull
      Src: /src/nss/lib/sqlite/sqlite3.c:56645,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56647,1
    - Dst: pagerUseWal
      Src: /src/nss/lib/sqlite/sqlite3.c:56647,1
    - Dst: pagerAddPageToRollbackJournal
      Src: /src/nss/lib/sqlite/sqlite3.c:56649,1
    - Dst: PAGERTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:56657,1
    - Dst: PAGERID
      Src: /src/nss/lib/sqlite/sqlite3.c:56658,1
    - Dst: subjournalPageIfRequired
      Src: /src/nss/lib/sqlite/sqlite3.c:56674,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 1
    argNames:
    - pPg
    argTypes:
    - PgHdr*
    assertStmts:
    - condition: ( assert_pager_state(pPager) )
      pos:
        line_end: 56633
        line_start: 56633
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->errCode==0 )
      pos:
        line_end: 56615
        line_start: 56615
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pagerUseWal(pPager)==0 )
      pos:
        line_end: 56646
        line_start: 56646
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( pPager->eState==PAGER_WRITER_LOCKED\n       || pPager->eState==PAGER_WRITER_CACHEMOD\n
        \      || pPager->eState==PAGER_WRITER_DBMOD\n  )"
      pos:
        line_end: 56613
        line_start: 56610
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->readOnly==0 )
      pos:
        line_end: 56616
        line_start: 56616
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( assert_pager_state(pPager) )
      pos:
        line_end: 56614
        line_start: 56614
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->eState>=PAGER_WRITER_CACHEMOD )
      pos:
        line_end: 56632
        line_start: 56632
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pPager->pInJournal!=0) == isOpen(pPager->jfd) )
      pos:
        line_end: 56642
        line_start: 56642
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 56682
      start: 56603
    functionDepth: 11
    functionLinenumber: 56603
    functionLinenumberEnd: 56682
    functionName: pager_write
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - CHECK_PAGE
    - pager_open_journal
    - isOpen
    - pagerUseWal
    - sqlite3BitvecTestNotNull
    - PAGERID
    - assert_pager_state
    - assert
    - PAGERTRACE
    - subjournalPageIfRequired
    - sqlite3PcacheMakeDirty
    - pagerAddPageToRollbackJournal
    linkageType: ''
    returnType: int
    signature: int pager_write(PgHdr *pPg)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56709,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56710,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56727,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56728,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56729,1
    - Dst: sqlite3BitvecTest
      Src: /src/nss/lib/sqlite/sqlite3.c:56734,1
    - Dst: PAGER_MJ_PGNO
      Src: /src/nss/lib/sqlite/sqlite3.c:56735,1
    - Dst: sqlite3PagerGet
      Src: /src/nss/lib/sqlite/sqlite3.c:56736,1
    - Dst: pager_write
      Src: /src/nss/lib/sqlite/sqlite3.c:56738,1
    - Dst: sqlite3PagerUnrefNotNull
      Src: /src/nss/lib/sqlite/sqlite3.c:56742,1
    - Dst: sqlite3PagerLookup
      Src: /src/nss/lib/sqlite/sqlite3.c:56745,1
    - Dst: sqlite3PagerUnrefNotNull
      Src: /src/nss/lib/sqlite/sqlite3.c:56749,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56760,1
    - Dst: sqlite3PagerLookup
      Src: /src/nss/lib/sqlite/sqlite3.c:56762,1
    - Dst: sqlite3PagerUnrefNotNull
      Src: /src/nss/lib/sqlite/sqlite3.c:56765,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56770,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 49
    argCount: 1
    argNames:
    - pPg
    argTypes:
    - PgHdr*
    assertStmts:
    - condition: ( !MEMDB )
      pos:
        line_end: 56708
        line_start: 56708
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pPager->doNotSpill & SPILLFLAG_NOSYNC)==0 )
      pos:
        line_end: 56709
        line_start: 56709
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (pg1<=pPg->pgno)
      pos:
        line_end: 56727
        line_start: 56727
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ((pg1+nPage)>pPg->pgno)
      pos:
        line_end: 56728
        line_start: 56728
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (nPage>0)
      pos:
        line_end: 56726
        line_start: 56726
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !MEMDB )
      pos:
        line_end: 56759
        line_start: 56759
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pPager->doNotSpill & SPILLFLAG_NOSYNC)!=0 )
      pos:
        line_end: 56769
        line_start: 56769
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 56773
      start: 56695
    functionDepth: 12
    functionLinenumber: 56695
    functionLinenumberEnd: 56773
    functionName: pagerWriteLargeSector
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - PAGER_MJ_PGNO
    - sqlite3PagerUnrefNotNull
    - assert
    - pager_write
    - sqlite3PagerLookup
    - sqlite3BitvecTest
    - sqlite3PagerGet
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: SQLITE_NOINLINE pagerWriteLargeSector(PgHdr *pPg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56791,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56792,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56793,1
    - Dst: assert_pager_state
      Src: /src/nss/lib/sqlite/sqlite3.c:56793,1
    - Dst: subjournalPageIfRequired
      Src: /src/nss/lib/sqlite/sqlite3.c:56795,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56800,1
    - Dst: pagerWriteLargeSector
      Src: /src/nss/lib/sqlite/sqlite3.c:56801,1
    - Dst: pager_write
      Src: /src/nss/lib/sqlite/sqlite3.c:56803,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - pPg
    argTypes:
    - PgHdr*
    assertStmts:
    - condition: ( (pPg->flags & PGHDR_MMAP)==0 )
      pos:
        line_end: 56790
        line_start: 56790
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( assert_pager_state(pPager) )
      pos:
        line_end: 56792
        line_start: 56792
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->eState>=PAGER_WRITER_LOCKED )
      pos:
        line_end: 56791
        line_start: 56791
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->tempFile==0 )
      pos:
        line_end: 56799
        line_start: 56799
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 56805
      start: 56789
    functionDepth: 13
    functionLinenumber: 56789
    functionLinenumberEnd: 56805
    functionName: sqlite3PagerWrite
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert_pager_state
    - assert
    - pager_write
    - subjournalPageIfRequired
    - pagerWriteLargeSector
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerWrite(PgHdr *pPg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pPg
    argTypes:
    - DbPage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56815
      start: 56813
    functionDepth: 0
    functionLinenumber: 56813
    functionLinenumberEnd: 56815
    functionName: sqlite3PagerIswriteable
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerIswriteable(DbPage *pPg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PAGERTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:56841,1
    - Dst: PAGERID
      Src: /src/nss/lib/sqlite/sqlite3.c:56841,1
    - Dst: IOTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:56842,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:56845,1
    - Dst: pager_set_pagehash
      Src: /src/nss/lib/sqlite/sqlite3.c:56846,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - pPg
    argTypes:
    - PgHdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56848
      start: 56838
    functionDepth: 3
    functionLinenumber: 56838
    functionLinenumberEnd: 56848
    functionName: sqlite3PagerDontWrite
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - PAGERID
    - PAGERTRACE
    - pager_set_pagehash
    - testcase
    - IOTRACE
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerDontWrite(PgHdr *pPg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56875,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56878,1
    - Dst: assert_pager_state
      Src: /src/nss/lib/sqlite/sqlite3.c:56878,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56892,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:56893,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:56898,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56901,1
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:56901,1
    - Dst: sqlite3PagerGet
      Src: /src/nss/lib/sqlite/sqlite3.c:56904,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56905,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:56912,1
    - Dst: sqlite3PagerWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:56913,1
    - Dst: pager_write_changecounter
      Src: /src/nss/lib/sqlite/sqlite3.c:56918,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56923,1
    - Dst: CODEC2
      Src: /src/nss/lib/sqlite/sqlite3.c:56924,1
    - Dst: sqlite3OsWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:56926,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:56934,1
    - Dst: sqlite3PagerUnref
      Src: /src/nss/lib/sqlite/sqlite3.c:56943,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 2
    argNames:
    - pPager
    - isDirectMode
    argTypes:
    - Pager*
    - int
    assertStmts:
    - condition: "( pPager->eState==PAGER_WRITER_CACHEMOD\n       || pPager->eState==PAGER_WRITER_DBMOD\n
        \ )"
      pos:
        line_end: 56876
        line_start: 56874
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( assert_pager_state(pPager) )
      pos:
        line_end: 56877
        line_start: 56877
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( isDirectMode==0 )
      pos:
        line_end: 56891
        line_start: 56891
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !pPager->tempFile && isOpen(pPager->fd) )
      pos:
        line_end: 56900
        line_start: 56900
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPgHdr==0 || rc==SQLITE_OK )
      pos:
        line_end: 56904
        line_start: 56904
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->dbFileSize>0 )
      pos:
        line_end: 56922
        line_start: 56922
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 56946
      start: 56872
    functionDepth: 14
    functionLinenumber: 56872
    functionLinenumberEnd: 56946
    functionName: pager_incr_changecounter
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ALWAYS
    - CODEC2
    - sqlite3OsWrite
    - memcpy
    - sqlite3PagerUnref
    - isOpen
    - UNUSED_PARAMETER
    - pager_write_changecounter
    - assert_pager_state
    - assert
    - sqlite3PagerWrite
    - sqlite3PagerGet
    linkageType: ''
    returnType: int
    signature: int pager_incr_changecounter(Pager *pPager, int isDirectMode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3OsFileControl
      Src: /src/nss/lib/sqlite/sqlite3.c:56958,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56961,1
    - Dst: sqlite3OsSync
      Src: /src/nss/lib/sqlite/sqlite3.c:56962,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - pPager
    - zMaster
    argTypes:
    - Pager*
    - char*
    assertStmts:
    - condition: ( !MEMDB )
      pos:
        line_end: 56960
        line_start: 56960
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 56965
      start: 56955
    functionDepth: 2
    functionLinenumber: 56955
    functionLinenumberEnd: 56965
    functionName: sqlite3PagerSync
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - sqlite3OsFileControl
    - sqlite3OsSync
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerSync(Pager *pPager, const char *zMaster)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56980,1
    - Dst: assert_pager_state
      Src: /src/nss/lib/sqlite/sqlite3.c:56980,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56982,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:56986,1
    - Dst: assert_pager_state
      Src: /src/nss/lib/sqlite/sqlite3.c:56986,1
    - Dst: pagerUseWal
      Src: /src/nss/lib/sqlite/sqlite3.c:56987,1
    - Dst: pager_wait_on_lock
      Src: /src/nss/lib/sqlite/sqlite3.c:56988,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts:
    - condition: ( assert_pager_state(pPager) )
      pos:
        line_end: 56979
        line_start: 56979
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( pPager->eState==PAGER_WRITER_CACHEMOD \n         || pPager->eState==PAGER_WRITER_DBMOD
        \n         || pPager->eState==PAGER_WRITER_LOCKED \n    )"
      pos:
        line_end: 56984
        line_start: 56981
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( assert_pager_state(pPager) )
      pos:
        line_end: 56985
        line_start: 56985
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 56992
      start: 56978
    functionDepth: 4
    functionLinenumber: 56978
    functionLinenumberEnd: 56992
    functionName: sqlite3PagerExclusiveLock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - pagerUseWal
    - pager_wait_on_lock
    - assert_pager_state
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerExclusiveLock(Pager *pPager)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:57027,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:57032,1
    - Dst: assert_pager_state
      Src: /src/nss/lib/sqlite/sqlite3.c:57032,1
    - Dst: NEVER
      Src: /src/nss/lib/sqlite/sqlite3.c:57035,1
    - Dst: sqlite3FaultSim
      Src: /src/nss/lib/sqlite/sqlite3.c:57038,1
    - Dst: PAGERTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:57040,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:57046,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:57047,1
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:57047,1
    - Dst: pagerFlushOnCommit
      Src: /src/nss/lib/sqlite/sqlite3.c:57048,1
    - Dst: sqlite3BackupRestart
      Src: /src/nss/lib/sqlite/sqlite3.c:57052,1
    - Dst: pagerUseWal
      Src: /src/nss/lib/sqlite/sqlite3.c:57055,1
    - Dst: sqlite3PcacheDirtyList
      Src: /src/nss/lib/sqlite/sqlite3.c:57057,1
    - Dst: sqlite3PagerGet
      Src: /src/nss/lib/sqlite/sqlite3.c:57061,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:57065,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:57066,1
    - Dst: pagerWalFrames
      Src: /src/nss/lib/sqlite/sqlite3.c:57067,1
    - Dst: sqlite3PagerUnref
      Src: /src/nss/lib/sqlite/sqlite3.c:57069,1
    - Dst: sqlite3PcacheCleanAll
      Src: /src/nss/lib/sqlite/sqlite3.c:57071,1
    - Dst: sqlite3OsDeviceCharacteristics
      Src: /src/nss/lib/sqlite/sqlite3.c:57081,1
    - Dst: sqlite3JournalIsInMemory
      Src: /src/nss/lib/sqlite/sqlite3.c:57083,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:57114,1
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:57114,1
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:57118,1
    - Dst: jrnlBufferSize
      Src: /src/nss/lib/sqlite/sqlite3.c:57119,1
    - Dst: sqlite3PcacheDirtyList
      Src: /src/nss/lib/sqlite/sqlite3.c:57121,1
    - Dst: pager_incr_changecounter
      Src: /src/nss/lib/sqlite/sqlite3.c:57129,1
    - Dst: sqlite3JournalCreate
      Src: /src/nss/lib/sqlite/sqlite3.c:57131,1
    - Dst: pager_incr_changecounter
      Src: /src/nss/lib/sqlite/sqlite3.c:57133,1
    - Dst: sqlite3JournalCreate
      Src: /src/nss/lib/sqlite/sqlite3.c:57140,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:57142,1
    - Dst: pager_incr_changecounter
      Src: /src/nss/lib/sqlite/sqlite3.c:57145,1
    - Dst: writeMasterJournal
      Src: /src/nss/lib/sqlite/sqlite3.c:57153,1
    - Dst: syncJournal
      Src: /src/nss/lib/sqlite/sqlite3.c:57167,1
    - Dst: sqlite3PcacheDirtyList
      Src: /src/nss/lib/sqlite/sqlite3.c:57170,1
    - Dst: sqlite3OsFileControl
      Src: /src/nss/lib/sqlite/sqlite3.c:57173,1
    - Dst: pager_write_pagelist
      Src: /src/nss/lib/sqlite/sqlite3.c:57175,1
    - Dst: sqlite3OsFileControl
      Src: /src/nss/lib/sqlite/sqlite3.c:57177,1
    - Dst: sqlite3OsFileControlHint
      Src: /src/nss/lib/sqlite/sqlite3.c:57180,1
    - Dst: sqlite3JournalCreate
      Src: /src/nss/lib/sqlite/sqlite3.c:57185,1
    - Dst: sqlite3OsClose
      Src: /src/nss/lib/sqlite/sqlite3.c:57187,1
    - Dst: sqlite3OsClose
      Src: /src/nss/lib/sqlite/sqlite3.c:57192,1
    - Dst: pager_write_pagelist
      Src: /src/nss/lib/sqlite/sqlite3.c:57198,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:57201,1
    - Dst: sqlite3PcacheCleanAll
      Src: /src/nss/lib/sqlite/sqlite3.c:57204,1
    - Dst: PAGER_MJ_PGNO
      Src: /src/nss/lib/sqlite/sqlite3.c:57213,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:57214,1
    - Dst: pager_truncate
      Src: /src/nss/lib/sqlite/sqlite3.c:57215,1
    - Dst: sqlite3PagerSync
      Src: /src/nss/lib/sqlite/sqlite3.c:57221,1
    - Dst: IOTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:57223,1
    - Dst: pagerUseWal
      Src: /src/nss/lib/sqlite/sqlite3.c:57228,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 113
    argCount: 3
    argNames:
    - pPager
    - zMaster
    - noSync
    argTypes:
    - Pager*
    - char*
    - int
    assertStmts:
    - condition: "( pPager->eState==PAGER_WRITER_LOCKED\n       || pPager->eState==PAGER_WRITER_CACHEMOD\n
        \      || pPager->eState==PAGER_WRITER_DBMOD\n       || pPager->eState==PAGER_ERROR\n
        \ )"
      pos:
        line_end: 57030
        line_start: 57026
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( assert_pager_state(pPager) )
      pos:
        line_end: 57031
        line_start: 57031
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( MEMDB==0 || pPager->tempFile )
      pos:
        line_end: 57045
        line_start: 57045
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( isOpen(pPager->fd) || pPager->tempFile )
      pos:
        line_end: 57046
        line_start: 57046
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc==SQLITE_OK )
      pos:
        line_end: 57064
        line_start: 57064
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( bBatch==0 )
      pos:
        line_end: 57141
        line_start: 57141
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc!=SQLITE_IOERR_BLOCKED )
      pos:
        line_end: 57200
        line_start: 57200
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( isOpen(pPager->jfd) \n            || pPager->journalMode==PAGER_JOURNALMODE_OFF
        \n            || pPager->journalMode==PAGER_JOURNALMODE_WAL \n            )"
      pos:
        line_end: 57116
        line_start: 57113
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->eState==PAGER_WRITER_DBMOD )
      pos:
        line_end: 57213
        line_start: 57213
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 57232
      start: 57020
    functionDepth: 15
    functionLinenumber: 57020
    functionLinenumberEnd: 57232
    functionName: sqlite3PagerCommitPhaseOne
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsDeviceCharacteristics
    - ALWAYS
    - sqlite3OsFileControl
    - pager_truncate
    - sqlite3OsFileControlHint
    - PAGER_MJ_PGNO
    - sqlite3FaultSim
    - IOTRACE
    - pagerFlushOnCommit
    - sqlite3PagerUnref
    - jrnlBufferSize
    - sqlite3OsClose
    - assert
    - sqlite3JournalIsInMemory
    - PAGERTRACE
    - sqlite3PcacheCleanAll
    - isOpen
    - pagerUseWal
    - sqlite3PcacheDirtyList
    - pager_write_pagelist
    - sqlite3JournalCreate
    - syncJournal
    - NEVER
    - sqlite3BackupRestart
    - pagerWalFrames
    - assert_pager_state
    - pager_incr_changecounter
    - sqlite3PagerSync
    - sqlite3PagerGet
    - writeMasterJournal
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3PagerCommitPhaseOne(\n  Pager *pPager,                  /*
      Pager object */\n  const char *zMaster,            /* If not NULL, the master
      journal name */\n  int noSync                      /* True to omit the xSync
      on the db file */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NEVER
      Src: /src/nss/lib/sqlite/sqlite3.c:57256,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:57258,1
    - Dst: pagerUseWal
      Src: /src/nss/lib/sqlite/sqlite3.c:57260,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:57262,1
    - Dst: assert_pager_state
      Src: /src/nss/lib/sqlite/sqlite3.c:57262,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:57279,1
    - Dst: JOURNAL_HDR_SZ
      Src: /src/nss/lib/sqlite/sqlite3.c:57279,1
    - Dst: PAGERTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:57284,1
    - Dst: PAGERID
      Src: /src/nss/lib/sqlite/sqlite3.c:57284,1
    - Dst: pager_end_transaction
      Src: /src/nss/lib/sqlite/sqlite3.c:57286,1
    - Dst: pager_error
      Src: /src/nss/lib/sqlite/sqlite3.c:57287,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts:
    - condition: "( pPager->eState==PAGER_WRITER_LOCKED\n       || pPager->eState==PAGER_WRITER_FINISHED\n
        \      || (pagerUseWal(pPager) && pPager->eState==PAGER_WRITER_CACHEMOD)\n
        \ )"
      pos:
        line_end: 57260
        line_start: 57257
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( assert_pager_state(pPager) )
      pos:
        line_end: 57261
        line_start: 57261
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->journalOff==JOURNAL_HDR_SZ(pPager) || !pPager->journalOff
        )
      pos:
        line_end: 57278
        line_start: 57278
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 57288
      start: 57250
    functionDepth: 6
    functionLinenumber: 57250
    functionLinenumberEnd: 57288
    functionName: sqlite3PagerCommitPhaseTwo
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - NEVER
    - pager_error
    - pagerUseWal
    - JOURNAL_HDR_SZ
    - PAGERID
    - assert_pager_state
    - assert
    - pager_end_transaction
    - PAGERTRACE
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerCommitPhaseTwo(Pager *pPager)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: PAGERTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:57318,1
    - Dst: PAGERID
      Src: /src/nss/lib/sqlite/sqlite3.c:57318,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:57324,1
    - Dst: assert_pager_state
      Src: /src/nss/lib/sqlite/sqlite3.c:57324,1
    - Dst: pagerUseWal
      Src: /src/nss/lib/sqlite/sqlite3.c:57328,1
    - Dst: sqlite3PagerSavepoint
      Src: /src/nss/lib/sqlite/sqlite3.c:57330,1
    - Dst: pager_end_transaction
      Src: /src/nss/lib/sqlite/sqlite3.c:57331,1
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:57333,1
    - Dst: pager_end_transaction
      Src: /src/nss/lib/sqlite/sqlite3.c:57335,1
    - Dst: setGetterMethod
      Src: /src/nss/lib/sqlite/sqlite3.c:57343,1
    - Dst: pager_playback
      Src: /src/nss/lib/sqlite/sqlite3.c:57347,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:57350,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:57351,1
    - Dst: pager_error
      Src: /src/nss/lib/sqlite/sqlite3.c:57359,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 27
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts:
    - condition: ( assert_pager_state(pPager) )
      pos:
        line_end: 57323
        line_start: 57323
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->eState==PAGER_READER || rc!=SQLITE_OK )
      pos:
        line_end: 57349
        line_start: 57349
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( rc==SQLITE_OK || rc==SQLITE_FULL || rc==SQLITE_CORRUPT\n          ||
        rc==SQLITE_NOMEM || (rc&0xFF)==SQLITE_IOERR \n          || rc==SQLITE_CANTOPEN\n
        \ )"
      pos:
        line_end: 57353
        line_start: 57350
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 57360
      start: 57316
    functionDepth: 11
    functionLinenumber: 57316
    functionLinenumberEnd: 57360
    functionName: sqlite3PagerRollback
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - setGetterMethod
    - pager_error
    - isOpen
    - pagerUseWal
    - PAGERID
    - assert_pager_state
    - assert
    - pager_end_transaction
    - PAGERTRACE
    - sqlite3PagerSavepoint
    - pager_playback
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerRollback(Pager *pPager)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57368
      start: 57366
    functionDepth: 0
    functionLinenumber: 57366
    functionLinenumberEnd: 57368
    functionName: sqlite3PagerIsreadonly
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerIsreadonly(Pager *pPager)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PcacheRefCount
      Src: /src/nss/lib/sqlite/sqlite3.c:57375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57376
      start: 57374
    functionDepth: 1
    functionLinenumber: 57374
    functionLinenumberEnd: 57376
    functionName: sqlite3PagerRefcount
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PcacheRefCount
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerRefcount(Pager *pPager)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PcachePagecount
      Src: /src/nss/lib/sqlite/sqlite3.c:57386,1
    - Dst: sqlite3MallocSize
      Src: /src/nss/lib/sqlite/sqlite3.c:57387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57389
      start: 57383
    functionDepth: 2
    functionLinenumber: 57383
    functionLinenumberEnd: 57389
    functionName: sqlite3PagerMemUsed
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3MallocSize
    - sqlite3PcachePagecount
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerMemUsed(Pager *pPager)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PcachePageRefcount
      Src: /src/nss/lib/sqlite/sqlite3.c:57395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pPage
    argTypes:
    - DbPage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57396
      start: 57394
    functionDepth: 1
    functionLinenumber: 57394
    functionLinenumberEnd: 57396
    functionName: sqlite3PagerPageRefcount
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PcachePageRefcount
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerPageRefcount(DbPage *pPage)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PcacheRefCount
      Src: /src/nss/lib/sqlite/sqlite3.c:57404,1
    - Dst: sqlite3PcachePagecount
      Src: /src/nss/lib/sqlite/sqlite3.c:57405,1
    - Dst: sqlite3PcacheGetCachesize
      Src: /src/nss/lib/sqlite/sqlite3.c:57406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57416
      start: 57402
    functionDepth: 2
    functionLinenumber: 57402
    functionLinenumberEnd: 57416
    functionName: sqlite3PagerStats
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PcacheGetCachesize
    - sqlite3PcacheRefCount
    - sqlite3PcachePagecount
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3PagerStats(Pager *pPager)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:57432,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:57438,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:57439,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:57440,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 4
    argNames:
    - pPager
    - eStat
    - reset
    - pnVal
    argTypes:
    - Pager*
    - int
    - int
    - int*
    assertStmts:
    - condition: "( eStat==SQLITE_DBSTATUS_CACHE_HIT\n       || eStat==SQLITE_DBSTATUS_CACHE_MISS\n
        \      || eStat==SQLITE_DBSTATUS_CACHE_WRITE\n       || eStat==SQLITE_DBSTATUS_CACHE_WRITE+1\n
        \ )"
      pos:
        line_end: 57435
        line_start: 57431
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( SQLITE_DBSTATUS_CACHE_HIT+2==SQLITE_DBSTATUS_CACHE_WRITE )
      pos:
        line_end: 57438
        line_start: 57438
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( PAGER_STAT_HIT==0 && PAGER_STAT_MISS==1\n           && PAGER_STAT_WRITE==2
        && PAGER_STAT_SPILL==3 )"
      pos:
        line_end: 57440
        line_start: 57439
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( SQLITE_DBSTATUS_CACHE_HIT+1==SQLITE_DBSTATUS_CACHE_MISS )
      pos:
        line_end: 57437
        line_start: 57437
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 57448
      start: 57430
    functionDepth: 0
    functionLinenumber: 57430
    functionLinenumberEnd: 57448
    functionName: sqlite3PagerCacheStat
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerCacheStat(Pager *pPager, int eStat, int
      reset, int *pnVal)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57455
      start: 57453
    functionDepth: 0
    functionLinenumber: 57453
    functionLinenumberEnd: 57455
    functionName: sqlite3PagerIsMemdb
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerIsMemdb(Pager *pPager)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:57473,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:57474,1
    - Dst: assert_pager_state
      Src: /src/nss/lib/sqlite/sqlite3.c:57474,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:57475,1
    - Dst: sqlite3Realloc
      Src: /src/nss/lib/sqlite/sqlite3.c:57481,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:57487,1
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:57493,1
    - Dst: JOURNAL_HDR_SZ
      Src: /src/nss/lib/sqlite/sqlite3.c:57496,1
    - Dst: sqlite3BitvecCreate
      Src: /src/nss/lib/sqlite/sqlite3.c:57499,1
    - Dst: pagerUseWal
      Src: /src/nss/lib/sqlite/sqlite3.c:57503,1
    - Dst: sqlite3WalSavepoint
      Src: /src/nss/lib/sqlite/sqlite3.c:57504,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:57508,1
    - Dst: assertTruncateConstraint
      Src: /src/nss/lib/sqlite/sqlite3.c:57509,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - pPager
    - nSavepoint
    argTypes:
    - Pager*
    - int
    assertStmts:
    - condition: ( pPager->eState>=PAGER_WRITER_LOCKED )
      pos:
        line_end: 57472
        line_start: 57472
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nSavepoint>nCurrent && pPager->useJournal )
      pos:
        line_end: 57474
        line_start: 57474
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( assert_pager_state(pPager) )
      pos:
        line_end: 57473
        line_start: 57473
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->nSavepoint==nSavepoint )
      pos:
        line_end: 57507
        line_start: 57507
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 57511
      start: 57467
    functionDepth: 7
    functionLinenumber: 57467
    functionLinenumberEnd: 57511
    functionName: pagerOpenSavepoint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assertTruncateConstraint
    - sqlite3Realloc
    - sqlite3BitvecCreate
    - isOpen
    - JOURNAL_HDR_SZ
    - pagerUseWal
    - assert_pager_state
    - assert
    - memset
    - sqlite3WalSavepoint
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: SQLITE_NOINLINE pagerOpenSavepoint(Pager *pPager, int nSavepoint)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:57513,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:57514,1
    - Dst: assert_pager_state
      Src: /src/nss/lib/sqlite/sqlite3.c:57514,1
    - Dst: pagerOpenSavepoint
      Src: /src/nss/lib/sqlite/sqlite3.c:57517,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - pPager
    - nSavepoint
    argTypes:
    - Pager*
    - int
    assertStmts:
    - condition: ( pPager->eState>=PAGER_WRITER_LOCKED )
      pos:
        line_end: 57512
        line_start: 57512
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( assert_pager_state(pPager) )
      pos:
        line_end: 57513
        line_start: 57513
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 57521
      start: 57512
    functionDepth: 8
    functionLinenumber: 57512
    functionLinenumberEnd: 57521
    functionName: sqlite3PagerOpenSavepoint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - pagerOpenSavepoint
    - assert_pager_state
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerOpenSavepoint(Pager *pPager, int nSavepoint)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:57561,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:57562,1
    - Dst: sqlite3BitvecDestroy
      Src: /src/nss/lib/sqlite/sqlite3.c:57574,1
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:57581,1
    - Dst: sqlite3JournalIsInMemory
      Src: /src/nss/lib/sqlite/sqlite3.c:57583,1
    - Dst: sqlite3OsTruncate
      Src: /src/nss/lib/sqlite/sqlite3.c:57584,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:57585,1
    - Dst: pagerUseWal
      Src: /src/nss/lib/sqlite/sqlite3.c:57595,1
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:57595,1
    - Dst: pagerPlaybackSavepoint
      Src: /src/nss/lib/sqlite/sqlite3.c:57597,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:57598,1
    - Dst: setGetterMethod
      Src: /src/nss/lib/sqlite/sqlite3.c:57612,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 3
    argNames:
    - pPager
    - op
    - iSavepoint
    argTypes:
    - Pager*
    - int
    - int
    assertStmts:
    - condition: ( op==SAVEPOINT_RELEASE || op==SAVEPOINT_ROLLBACK )
      pos:
        line_end: 57560
        line_start: 57560
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iSavepoint>=0 || op==SAVEPOINT_ROLLBACK )
      pos:
        line_end: 57561
        line_start: 57561
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc==SQLITE_OK )
      pos:
        line_end: 57584
        line_start: 57584
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (rc!=SQLITE_DONE)
      pos:
        line_end: 57597
        line_start: 57597
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 57618
      start: 57554
    functionDepth: 10
    functionLinenumber: 57554
    functionLinenumberEnd: 57618
    functionName: sqlite3PagerSavepoint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - setGetterMethod
    - pagerPlaybackSavepoint
    - isOpen
    - pagerUseWal
    - sqlite3OsTruncate
    - assert
    - sqlite3JournalIsInMemory
    - sqlite3BitvecDestroy
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerSavepoint(Pager *pPager, int op, int iSavepoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - pPager
    - nullIfMemDb
    argTypes:
    - Pager*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57632
      start: 57630
    functionDepth: 0
    functionLinenumber: 57630
    functionLinenumberEnd: 57632
    functionName: sqlite3PagerFilename
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3PagerFilename(Pager *pPager, int nullIfMemDb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57639
      start: 57637
    functionDepth: 0
    functionLinenumber: 57637
    functionLinenumberEnd: 57639
    functionName: sqlite3_vfs *sqlite3PagerVfs(Pager *pPager)
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3_vfs *sqlite3PagerVfs(Pager *pPager)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57648
      start: 57646
    functionDepth: 0
    functionLinenumber: 57646
    functionLinenumberEnd: 57648
    functionName: sqlite3_file *sqlite3PagerFile(Pager *pPager)
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3_file *sqlite3PagerFile(Pager *pPager)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3OsFileControl
      Src: /src/nss/lib/sqlite/sqlite3.c:57656,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57657
      start: 57654
    functionDepth: 2
    functionLinenumber: 57654
    functionLinenumberEnd: 57657
    functionName: sqlite3PagerResetLockTimeout
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3OsFileControl
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerResetLockTimeout(Pager *pPager)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3WalFile
      Src: /src/nss/lib/sqlite/sqlite3.c:57668,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57670
      start: 57664
    functionDepth: 1
    functionLinenumber: 57664
    functionLinenumberEnd: 57670
    functionName: sqlite3_file *sqlite3PagerJrnlFile(Pager *pPager)
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3WalFile
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3_file *sqlite3PagerJrnlFile(Pager *pPager)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57677
      start: 57675
    functionDepth: 0
    functionLinenumber: 57675
    functionLinenumberEnd: 57677
    functionName: sqlite3PagerJournalname
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3PagerJournalname(Pager *pPager)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Pager*::xCodecFree
      Src: /src/nss/lib/sqlite/sqlite3.c:57691,1
    - Dst: pager_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:57693,1
    - Dst: setGetterMethod
      Src: /src/nss/lib/sqlite/sqlite3.c:57699,1
    - Dst: pagerReportSize
      Src: /src/nss/lib/sqlite/sqlite3.c:57700,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - pPager
    - (*xCodec)(void*,void*,Pgno,int)
    - pCodec
    argTypes:
    - Pager*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57701
      start: 57683
    functionDepth: 7
    functionLinenumber: 57683
    functionLinenumberEnd: 57701
    functionName: sqlite3PagerSetCodec
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - setGetterMethod
    - pager_reset
    - Pager*::xCodecFree
    - pagerReportSize
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3PagerSetCodec(\n  Pager *pPager,\n  void *(*xCodec)(void*,void*,Pgno,int),\n
      \ void (*xCodecSizeChng)(void*,int,int),\n  void (*xCodecFree)(void*),\n  void
      *pCodec\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57704
      start: 57702
    functionDepth: 0
    functionLinenumber: 57702
    functionLinenumberEnd: 57704
    functionName: sqlite3PagerGetCodec
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3PagerGetCodec(Pager *pPager)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CODEC2
      Src: /src/nss/lib/sqlite/sqlite3.c:57715,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pPg
    argTypes:
    - PgHdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57717
      start: 57713
    functionDepth: 1
    functionLinenumber: 57713
    functionLinenumberEnd: 57717
    functionName: sqlite3PagerCodec
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - CODEC2
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3PagerCodec(PgHdr *pPg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57724
      start: 57722
    functionDepth: 0
    functionLinenumber: 57722
    functionLinenumberEnd: 57724
    functionName: sqlite3PagerState
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerState(Pager *pPager)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:57759,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:57760,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:57763,1
    - Dst: assert_pager_state
      Src: /src/nss/lib/sqlite/sqlite3.c:57763,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:57768,1
    - Dst: sqlite3PagerWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:57770,1
    - Dst: subjournalPageIfRequired
      Src: /src/nss/lib/sqlite/sqlite3.c:57793,1
    - Dst: PAGERTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:57798,1
    - Dst: PAGERID
      Src: /src/nss/lib/sqlite/sqlite3.c:57799,1
    - Dst: IOTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:57800,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:57811,1
    - Dst: pageInJournal
      Src: /src/nss/lib/sqlite/sqlite3.c:57812,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:57813,1
    - Dst: sqlite3PagerLookup
      Src: /src/nss/lib/sqlite/sqlite3.c:57822,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:57823,1
    - Dst: sqlite3PagerUnrefNotNull
      Src: /src/nss/lib/sqlite/sqlite3.c:57826,1
    - Dst: sqlite3PcacheMove
      Src: /src/nss/lib/sqlite/sqlite3.c:57833,1
    - Dst: sqlite3PcacheDrop
      Src: /src/nss/lib/sqlite/sqlite3.c:57835,1
    - Dst: sqlite3PcacheMove
      Src: /src/nss/lib/sqlite/sqlite3.c:57840,1
    - Dst: sqlite3PcacheMakeDirty
      Src: /src/nss/lib/sqlite/sqlite3.c:57841,1
    - Dst: sqlite3PcacheMove
      Src: /src/nss/lib/sqlite/sqlite3.c:57848,1
    - Dst: sqlite3PagerUnrefNotNull
      Src: /src/nss/lib/sqlite/sqlite3.c:57849,1
    - Dst: sqlite3PagerGet
      Src: /src/nss/lib/sqlite/sqlite3.c:57868,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:57871,1
    - Dst: sqlite3BitvecClear
      Src: /src/nss/lib/sqlite/sqlite3.c:57872,1
    - Dst: sqlite3PcacheMakeDirty
      Src: /src/nss/lib/sqlite/sqlite3.c:57877,1
    - Dst: sqlite3PagerUnrefNotNull
      Src: /src/nss/lib/sqlite/sqlite3.c:57878,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 56
    argCount: 4
    argNames:
    - pPager
    - pPg
    - pgno
    - isCommit
    argTypes:
    - Pager*
    - DbPage*
    - Pgno
    - int
    assertStmts:
    - condition: ( pPager->tempFile || !MEMDB )
      pos:
        line_end: 57767
        line_start: 57767
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( assert_pager_state(pPager) )
      pos:
        line_end: 57762
        line_start: 57762
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPg->flags&PGHDR_DIRTY )
      pos:
        line_end: 57812
        line_start: 57812
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPg->nRef>0 )
      pos:
        line_end: 57758
        line_start: 57758
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( pPager->eState==PAGER_WRITER_CACHEMOD\n       || pPager->eState==PAGER_WRITER_DBMOD\n
        \ )"
      pos:
        line_end: 57761
        line_start: 57759
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( pPager->journalMode==PAGER_JOURNALMODE_OFF ||\n            pageInJournal(pPager,
        pPg) || pPg->pgno>pPager->dbOrigSize )"
      pos:
        line_end: 57811
        line_start: 57810
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->pTmpSpace!=0 )
      pos:
        line_end: 57870
        line_start: 57870
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !pPgOld || pPgOld->nRef==1 || CORRUPT_DB )
      pos:
        line_end: 57822
        line_start: 57822
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 57882
      start: 57753
    functionDepth: 14
    functionLinenumber: 57753
    functionLinenumberEnd: 57882
    functionName: sqlite3PagerMovepage
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BitvecClear
    - sqlite3PcacheDrop
    - PAGERID
    - sqlite3PagerUnrefNotNull
    - assert_pager_state
    - assert
    - sqlite3PagerWrite
    - sqlite3PagerLookup
    - sqlite3PagerGet
    - PAGERTRACE
    - pageInJournal
    - subjournalPageIfRequired
    - sqlite3PcacheMakeDirty
    - sqlite3PcacheMove
    - IOTRACE
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerMovepage(Pager *pPager, DbPage *pPg, Pgno
      pgno, int isCommit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:57892,1
    - Dst: sqlite3PcacheMove
      Src: /src/nss/lib/sqlite/sqlite3.c:57894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - pPg
    - iNew
    - flags
    argTypes:
    - DbPage*
    - Pgno
    - u16
    assertStmts:
    - condition: ( pPg->pgno!=iNew )
      pos:
        line_end: 57891
        line_start: 57891
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 57895
      start: 57891
    functionDepth: 4
    functionLinenumber: 57891
    functionLinenumberEnd: 57895
    functionName: sqlite3PagerRekey
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3PcacheMove
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerRekey(DbPage *pPg, Pgno iNew, u16 flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:57901,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - pPg
    argTypes:
    - DbPage*
    assertStmts:
    - condition: ( pPg->nRef>0 || pPg->pPager->memDb )
      pos:
        line_end: 57900
        line_start: 57900
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 57903
      start: 57900
    functionDepth: 0
    functionLinenumber: 57900
    functionLinenumberEnd: 57903
    functionName: sqlite3PagerGetData
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3PagerGetData(DbPage *pPg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pPg
    argTypes:
    - DbPage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57911
      start: 57909
    functionDepth: 0
    functionLinenumber: 57909
    functionLinenumberEnd: 57911
    functionName: sqlite3PagerGetExtra
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3PagerGetExtra(DbPage *pPg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:57924,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:57927,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:57928,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:57929,1
    - Dst: sqlite3WalHeapMemory
      Src: /src/nss/lib/sqlite/sqlite3.c:57929,1
    - Dst: sqlite3WalHeapMemory
      Src: /src/nss/lib/sqlite/sqlite3.c:57930,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 2
    argNames:
    - pPager
    - eMode
    argTypes:
    - Pager*
    - int
    assertStmts:
    - condition: "( eMode==PAGER_LOCKINGMODE_QUERY\n            || eMode==PAGER_LOCKINGMODE_NORMAL\n
        \           || eMode==PAGER_LOCKINGMODE_EXCLUSIVE )"
      pos:
        line_end: 57925
        line_start: 57923
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( PAGER_LOCKINGMODE_NORMAL>=0 && PAGER_LOCKINGMODE_EXCLUSIVE>=0 )
      pos:
        line_end: 57927
        line_start: 57927
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( PAGER_LOCKINGMODE_QUERY<0 )
      pos:
        line_end: 57926
        line_start: 57926
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->exclusiveMode || 0==sqlite3WalHeapMemory(pPager->pWal)
        )
      pos:
        line_end: 57928
        line_start: 57928
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 57934
      start: 57923
    functionDepth: 1
    functionLinenumber: 57923
    functionLinenumberEnd: 57934
    functionName: sqlite3PagerLockingMode
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3WalHeapMemory
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerLockingMode(Pager *pPager, int eMode)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:57960,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:57971,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:57977,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:57986,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:57993,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:57994,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:57995,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:57996,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:57997,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:57998,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:58000,1
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:58000,1
    - Dst: sqlite3OsClose
      Src: /src/nss/lib/sqlite/sqlite3.c:58011,1
    - Dst: sqlite3OsDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:58013,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:58017,1
    - Dst: sqlite3PagerSharedLock
      Src: /src/nss/lib/sqlite/sqlite3.c:58019,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:58022,1
    - Dst: pagerLockDb
      Src: /src/nss/lib/sqlite/sqlite3.c:58023,1
    - Dst: sqlite3OsDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:58026,1
    - Dst: pagerUnlockDb
      Src: /src/nss/lib/sqlite/sqlite3.c:58029,1
    - Dst: pager_unlock
      Src: /src/nss/lib/sqlite/sqlite3.c:58031,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:58033,1
    - Dst: sqlite3OsClose
      Src: /src/nss/lib/sqlite/sqlite3.c:58036,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 49
    argCount: 2
    argNames:
    - pPager
    - eMode
    argTypes:
    - Pager*
    - int
    assertStmts:
    - condition: ( (PAGER_JOURNALMODE_MEMORY & 5)==4 )
      pos:
        line_end: 57995
        line_start: 57995
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc==SQLITE_OK )
      pos:
        line_end: 58021
        line_start: 58021
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "(      eMode==PAGER_JOURNALMODE_DELETE\n            || eMode==PAGER_JOURNALMODE_TRUNCATE\n
        \           || eMode==PAGER_JOURNALMODE_PERSIST\n            || eMode==PAGER_JOURNALMODE_OFF
        \n            || eMode==PAGER_JOURNALMODE_WAL \n            || eMode==PAGER_JOURNALMODE_MEMORY
        )"
      pos:
        line_end: 57964
        line_start: 57959
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( eOld==PAGER_JOURNALMODE_MEMORY || eOld==PAGER_JOURNALMODE_OFF )
      pos:
        line_end: 57976
        line_start: 57976
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->eState!=PAGER_ERROR )
      pos:
        line_end: 57985
        line_start: 57985
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (PAGER_JOURNALMODE_PERSIST & 5)==1 )
      pos:
        line_end: 57993
        line_start: 57993
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (PAGER_JOURNALMODE_DELETE & 5)==0 )
      pos:
        line_end: 57994
        line_start: 57994
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (PAGER_JOURNALMODE_WAL & 5)==5 )
      pos:
        line_end: 57997
        line_start: 57997
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( state==PAGER_OPEN || state==PAGER_READER )
      pos:
        line_end: 58016
        line_start: 58016
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (PAGER_JOURNALMODE_TRUNCATE & 5)==1 )
      pos:
        line_end: 57992
        line_start: 57992
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->tempFile==0 || eMode!=PAGER_JOURNALMODE_WAL )
      pos:
        line_end: 57970
        line_start: 57970
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (PAGER_JOURNALMODE_OFF & 5)==0 )
      pos:
        line_end: 57996
        line_start: 57996
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( isOpen(pPager->fd) || pPager->exclusiveMode )
      pos:
        line_end: 57999
        line_start: 57999
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( state==pPager->eState )
      pos:
        line_end: 58032
        line_start: 58032
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 58042
      start: 57956
    functionDepth: 12
    functionLinenumber: 57956
    functionLinenumberEnd: 58042
    functionName: sqlite3PagerSetJournalMode
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - isOpen
    - sqlite3OsClose
    - pagerLockDb
    - sqlite3PagerSharedLock
    - assert
    - pagerUnlockDb
    - pager_unlock
    - sqlite3OsDelete
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerSetJournalMode(Pager *pPager, int eMode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58049
      start: 58047
    functionDepth: 0
    functionLinenumber: 58047
    functionLinenumberEnd: 58049
    functionName: sqlite3PagerGetJournalMode
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerGetJournalMode(Pager *pPager)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:58057,1
    - Dst: assert_pager_state
      Src: /src/nss/lib/sqlite/sqlite3.c:58057,1
    - Dst: NEVER
      Src: /src/nss/lib/sqlite/sqlite3.c:58059,1
    - Dst: isOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:58059,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts:
    - condition: ( assert_pager_state(pPager) )
      pos:
        line_end: 58056
        line_start: 58056
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 58061
      start: 58056
    functionDepth: 2
    functionLinenumber: 58056
    functionLinenumberEnd: 58061
    functionName: sqlite3PagerOkToChangeJournalMode
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - NEVER
    - isOpen
    - assert_pager_state
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerOkToChangeJournalMode(Pager *pPager)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3WalLimit
      Src: /src/nss/lib/sqlite/sqlite3.c:58072,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pPager
    - iLimit
    argTypes:
    - Pager*
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58075
      start: 58069
    functionDepth: 1
    functionLinenumber: 58069
    functionLinenumberEnd: 58075
    functionName: sqlite3PagerJournalSizeLimit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3WalLimit
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerJournalSizeLimit(Pager *pPager, i64 iLimit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58085
      start: 58083
    functionDepth: 0
    functionLinenumber: 58083
    functionLinenumberEnd: 58085
    functionName: sqlite3_backup **sqlite3PagerBackupPtr(Pager *pPager)
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3_backup **sqlite3PagerBackupPtr(Pager *pPager)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:58092,1
    - Dst: pager_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:58093,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts:
    - condition: ( MEMDB==0 || pPager->tempFile )
      pos:
        line_end: 58091
        line_start: 58091
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 58094
      start: 58091
    functionDepth: 7
    functionLinenumber: 58091
    functionLinenumberEnd: 58094
    functionName: sqlite3PagerClearCache
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - pager_reset
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerClearCache(Pager *pPager)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3WalCheckpoint
      Src: /src/nss/lib/sqlite/sqlite3.c:58115,1
    - Dst: sqlite3PagerResetLockTimeout
      Src: /src/nss/lib/sqlite/sqlite3.c:58121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - pPager
    - db
    - eMode
    - pnLog
    - pnCkpt
    argTypes:
    - Pager*
    - sqlite3*
    - int
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58124
      start: 58106
    functionDepth: 3
    functionLinenumber: 58106
    functionLinenumberEnd: 58124
    functionName: sqlite3PagerCheckpoint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3WalCheckpoint
    - sqlite3PagerResetLockTimeout
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3PagerCheckpoint(\n  Pager *pPager,                  /*
      Checkpoint on this pager */\n  sqlite3 *db,                    /* Db handle
      used to check for interrupts */\n  int eMode,                      /* Type of
      checkpoint */\n  int *pnLog,                     /* OUT: Final number of frames
      in log */\n  int *pnCkpt                     /* OUT: Final number of checkpointed
      frames */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3WalCallback
      Src: /src/nss/lib/sqlite/sqlite3.c:58127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58128
      start: 58126
    functionDepth: 1
    functionLinenumber: 58126
    functionLinenumberEnd: 58128
    functionName: sqlite3PagerWalCallback
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3WalCallback
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerWalCallback(Pager *pPager)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58138
      start: 58134
    functionDepth: 0
    functionLinenumber: 58134
    functionLinenumberEnd: 58138
    functionName: sqlite3PagerWalSupported
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerWalSupported(Pager *pPager)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:58147,1
    - Dst: pagerLockDb
      Src: /src/nss/lib/sqlite/sqlite3.c:58148,1
    - Dst: pagerUnlockDb
      Src: /src/nss/lib/sqlite/sqlite3.c:58152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts:
    - condition: ( pPager->eLock==SHARED_LOCK || pPager->eLock==EXCLUSIVE_LOCK )
      pos:
        line_end: 58146
        line_start: 58146
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 58156
      start: 58144
    functionDepth: 3
    functionLinenumber: 58144
    functionLinenumberEnd: 58156
    functionName: pagerExclusiveLock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - pagerUnlockDb
    - pagerLockDb
    linkageType: ''
    returnType: int
    signature: int pagerExclusiveLock(Pager *pPager)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:58167,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:58168,1
    - Dst: pagerExclusiveLock
      Src: /src/nss/lib/sqlite/sqlite3.c:58176,1
    - Dst: sqlite3WalOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:58183,1
    - Dst: pagerFixMaplimit
      Src: /src/nss/lib/sqlite/sqlite3.c:58188,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts:
    - condition: ( pPager->pWal==0 && pPager->tempFile==0 )
      pos:
        line_end: 58166
        line_start: 58166
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->eLock==SHARED_LOCK || pPager->eLock==EXCLUSIVE_LOCK )
      pos:
        line_end: 58167
        line_start: 58167
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 58191
      start: 58164
    functionDepth: 4
    functionLinenumber: 58164
    functionLinenumberEnd: 58191
    functionName: pagerOpenWal
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - pagerFixMaplimit
    - sqlite3WalOpen
    - pagerExclusiveLock
    linkageType: ''
    returnType: int
    signature: int pagerOpenWal(Pager *pPager)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:58215,1
    - Dst: assert_pager_state
      Src: /src/nss/lib/sqlite/sqlite3.c:58215,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:58216,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:58217,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:58218,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:58219,1
    - Dst: sqlite3PagerWalSupported
      Src: /src/nss/lib/sqlite/sqlite3.c:58222,1
    - Dst: sqlite3OsClose
      Src: /src/nss/lib/sqlite/sqlite3.c:58225,1
    - Dst: pagerOpenWal
      Src: /src/nss/lib/sqlite/sqlite3.c:58227,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 2
    argNames:
    - pPager
    - pbOpen
    argTypes:
    - Pager*
    - int*
    assertStmts:
    - condition: ( assert_pager_state(pPager) )
      pos:
        line_end: 58214
        line_start: 58214
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->eState==PAGER_READER || !pbOpen )
      pos:
        line_end: 58216
        line_start: 58216
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPager->eState==PAGER_OPEN   || pbOpen )
      pos:
        line_end: 58215
        line_start: 58215
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pbOpen==0 || *pbOpen==0 )
      pos:
        line_end: 58217
        line_start: 58217
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pbOpen!=0 || (!pPager->tempFile && !pPager->pWal) )
      pos:
        line_end: 58218
        line_start: 58218
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 58237
      start: 58209
    functionDepth: 5
    functionLinenumber: 58209
    functionLinenumberEnd: 58237
    functionName: sqlite3PagerOpenWal
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - pagerOpenWal
    - sqlite3PagerWalSupported
    - sqlite3OsClose
    - assert_pager_state
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3PagerOpenWal(\n  Pager *pPager,                  /*
      Pager object */\n  int *pbOpen                     /* OUT: Set to true if call
      is a no-op */\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:58251,1
    - Dst: pagerLockDb
      Src: /src/nss/lib/sqlite/sqlite3.c:58259,1
    - Dst: sqlite3OsAccess
      Src: /src/nss/lib/sqlite/sqlite3.c:58261,1
    - Dst: pagerOpenWal
      Src: /src/nss/lib/sqlite/sqlite3.c:58266,1
    - Dst: pagerExclusiveLock
      Src: /src/nss/lib/sqlite/sqlite3.c:58274,1
    - Dst: sqlite3WalClose
      Src: /src/nss/lib/sqlite/sqlite3.c:58276,1
    - Dst: pagerFixMaplimit
      Src: /src/nss/lib/sqlite/sqlite3.c:58279,1
    - Dst: pagerUnlockDb
      Src: /src/nss/lib/sqlite/sqlite3.c:58280,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 2
    argNames:
    - pPager
    - db
    argTypes:
    - Pager*
    - sqlite3*
    assertStmts:
    - condition: ( pPager->journalMode==PAGER_JOURNALMODE_WAL )
      pos:
        line_end: 58250
        line_start: 58250
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 58284
      start: 58248
    functionDepth: 5
    functionLinenumber: 58248
    functionLinenumberEnd: 58284
    functionName: sqlite3PagerCloseWal
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - pagerOpenWal
    - sqlite3WalClose
    - pagerLockDb
    - assert
    - sqlite3OsAccess
    - pagerUnlockDb
    - pagerFixMaplimit
    - pagerExclusiveLock
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerCloseWal(Pager *pPager, sqlite3 *db)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3WalSnapshotGet
      Src: /src/nss/lib/sqlite/sqlite3.c:58294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pPager
    - ppSnapshot
    argTypes:
    - Pager*
    - sqlite3_snapshot**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58297
      start: 58291
    functionDepth: 1
    functionLinenumber: 58291
    functionLinenumberEnd: 58297
    functionName: sqlite3PagerSnapshotGet
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3WalSnapshotGet
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerSnapshotGet(Pager *pPager, sqlite3_snapshot
      **ppSnapshot)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3WalSnapshotOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:58307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - pPager
    - pSnapshot
    argTypes:
    - Pager*
    - sqlite3_snapshot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58312
      start: 58304
    functionDepth: 1
    functionLinenumber: 58304
    functionLinenumberEnd: 58312
    functionName: sqlite3PagerSnapshotOpen
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3WalSnapshotOpen
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerSnapshotOpen(Pager *pPager, sqlite3_snapshot
      *pSnapshot)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3WalSnapshotRecover
      Src: /src/nss/lib/sqlite/sqlite3.c:58321,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58326
      start: 58318
    functionDepth: 1
    functionLinenumber: 58318
    functionLinenumberEnd: 58326
    functionName: sqlite3PagerSnapshotRecover
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3WalSnapshotRecover
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerSnapshotRecover(Pager *pPager)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3WalSnapshotCheck
      Src: /src/nss/lib/sqlite/sqlite3.c:58343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - pPager
    - pSnapshot
    argTypes:
    - Pager*
    - sqlite3_snapshot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58348
      start: 58340
    functionDepth: 1
    functionLinenumber: 58340
    functionLinenumberEnd: 58348
    functionName: sqlite3PagerSnapshotCheck
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3WalSnapshotCheck
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerSnapshotCheck(Pager *pPager, sqlite3_snapshot
      *pSnapshot)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:58355,1
    - Dst: sqlite3WalSnapshotUnlock
      Src: /src/nss/lib/sqlite/sqlite3.c:58356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts:
    - condition: ( pPager->pWal )
      pos:
        line_end: 58354
        line_start: 58354
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 58357
      start: 58354
    functionDepth: 1
    functionLinenumber: 58354
    functionLinenumberEnd: 58357
    functionName: sqlite3PagerSnapshotUnlock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3WalSnapshotUnlock
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerSnapshotUnlock(Pager *pPager)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:58371,1
    - Dst: sqlite3WalFramesize
      Src: /src/nss/lib/sqlite/sqlite3.c:58372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pPager
    argTypes:
    - Pager*
    assertStmts:
    - condition: ( pPager->eState>=PAGER_READER )
      pos:
        line_end: 58370
        line_start: 58370
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 58373
      start: 58370
    functionDepth: 1
    functionLinenumber: 58370
    functionLinenumberEnd: 58373
    functionName: sqlite3PagerWalFramesize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3WalFramesize
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PagerWalFramesize(Pager *pPager)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58636
      start: 58635
    functionDepth: 0
    functionLinenumber: 58635
    functionLinenumberEnd: 58636
    functionName: WALTRACE
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WALTRACE(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - PTR
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58646
      start: 58645
    functionDepth: 0
    functionLinenumber: 58645
    functionLinenumberEnd: 58646
    functionName: AtomicLoad
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AtomicLoad(PTR)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - PTR
    - ','
    - VAL
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58647
      start: 58646
    functionDepth: 0
    functionLinenumber: 58646
    functionLinenumberEnd: 58647
    functionName: AtomicStore
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AtomicStore(PTR,VAL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - PTR
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58649
      start: 58648
    functionDepth: 0
    functionLinenumber: 58648
    functionLinenumberEnd: 58649
    functionName: AtomicLoad
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AtomicLoad(PTR)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - PTR
    - ','
    - VAL
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58650
      start: 58649
    functionDepth: 0
    functionLinenumber: 58649
    functionLinenumberEnd: 58650
    functionName: AtomicStore
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: AtomicStore(PTR,VAL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - I
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58687
      start: 58686
    functionDepth: 0
    functionLinenumber: 58686
    functionLinenumberEnd: 58687
    functionName: WAL_READ_LOCK
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WAL_READ_LOCK(I)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - iFrame
    - ','
    - szPage
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58825
      start: 58822
    functionDepth: 0
    functionLinenumber: 58822
    functionLinenumberEnd: 58825
    functionName: walFrameOffset
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: walFrameOffset(iFrame, szPage)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_realloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:58959,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:58964,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:58971,1
    - Dst: sqlite3MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:58973,1
    - Dst: sqlite3OsShmMap
      Src: /src/nss/lib/sqlite/sqlite3.c:58976,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:58979,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:58980,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:58990,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 3
    argNames:
    - pWal
    - iPage
    - ppPage
    argTypes:
    - Wal*
    - int
    - u32**
    assertStmts:
    - condition: ( pWal->apWiData[iPage]==0 )
      pos:
        line_end: 58970
        line_start: 58970
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pWal->apWiData[iPage]!=0 || rc!=SQLITE_OK || pWal->writeLock==0
        )
      pos:
        line_end: 58978
        line_start: 58978
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iPage==0 || *ppPage || rc!=SQLITE_OK )
      pos:
        line_end: 58989
        line_start: 58989
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 58992
      start: 58948
    functionDepth: 7
    functionLinenumber: 58948
    functionLinenumberEnd: 58992
    functionName: walIndexPageRealloc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - assert
    - sqlite3MallocZero
    - testcase
    - sqlite3_realloc64
    - sqlite3OsShmMap
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: "SQLITE_NOINLINE walIndexPageRealloc(\n  Wal *pWal,               /*
      The WAL context */\n  int iPage,               /* The page we seek */\n  volatile
      u32 **ppPage    /* Write the page pointer here */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: walIndexPageRealloc
      Src: /src/nss/lib/sqlite/sqlite3.c:58999,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - pWal
    - iPage
    - ppPage
    argTypes:
    - Wal*
    - int
    - u32**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59002
      start: 58993
    functionDepth: 8
    functionLinenumber: 58993
    functionLinenumberEnd: 59002
    functionName: walIndexPage
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - walIndexPageRealloc
    linkageType: ''
    returnType: int
    signature: "int walIndexPage(\n  Wal *pWal,               /* The WAL context */\n
      \ int iPage,               /* The page we seek */\n  volatile u32 **ppPage    /*
      Write the page pointer here */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:59008,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - pWal
    argTypes:
    - Wal*
    assertStmts:
    - condition: ( pWal->nWiData>0 && pWal->apWiData[0] )
      pos:
        line_end: 59007
        line_start: 59007
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 59010
      start: 59007
    functionDepth: 0
    functionLinenumber: 59007
    functionLinenumberEnd: 59010
    functionName: walCkptInfo
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: WalCkptInfo
    signature: WalCkptInfo *walCkptInfo(Wal *pWal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:59016,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - pWal
    argTypes:
    - Wal*
    assertStmts:
    - condition: ( pWal->nWiData>0 && pWal->apWiData[0] )
      pos:
        line_end: 59015
        line_start: 59015
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 59018
      start: 59015
    functionDepth: 0
    functionLinenumber: 59015
    functionLinenumberEnd: 59018
    functionName: walIndexHdr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: WalIndexHdr
    signature: WalIndexHdr *walIndexHdr(Wal *pWal)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59031
      start: 59027
    functionDepth: 0
    functionLinenumber: 59027
    functionLinenumberEnd: 59031
    functionName: BYTESWAP32
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTESWAP32(x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:59059,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:59060,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:59061,1
    - Dst: BYTESWAP32
      Src: /src/nss/lib/sqlite/sqlite3.c:59070,1
    - Dst: BYTESWAP32
      Src: /src/nss/lib/sqlite/sqlite3.c:59071,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 5
    argNames:
    - nativeCksum
    - a
    - nByte
    - aIn
    - aOut
    argTypes:
    - int
    - u8*
    - int
    - u32*
    - u32*
    assertStmts:
    - condition: ( nByte>=8 )
      pos:
        line_end: 59058
        line_start: 59058
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (nByte&0x00000007)==0 )
      pos:
        line_end: 59059
        line_start: 59059
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nByte<=65536 )
      pos:
        line_end: 59060
        line_start: 59060
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 59078
      start: 59041
    functionDepth: 1
    functionLinenumber: 59041
    functionLinenumberEnd: 59078
    functionName: walChecksumBytes
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - BYTESWAP32
    linkageType: ''
    returnType: void
    signature: "void walChecksumBytes(\n  int nativeCksum, /* True for native byte-order,
      false for non-native */\n  u8 *a,           /* Content to be checksummed */\n
      \ int nByte,       /* Bytes of content in a[].  Must be a multiple of 8. */\n
      \ const u32 *aIn,  /* Initial checksum value input */\n  u32 *aOut        /*
      OUT: Final checksum value output */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3OsShmBarrier
      Src: /src/nss/lib/sqlite/sqlite3.c:59082,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pWal
    argTypes:
    - Wal*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59084
      start: 59080
    functionDepth: 1
    functionLinenumber: 59080
    functionLinenumberEnd: 59084
    functionName: walShmBarrier
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsShmBarrier
    linkageType: ''
    returnType: void
    signature: void walShmBarrier(Wal *pWal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: walIndexHdr
      Src: /src/nss/lib/sqlite/sqlite3.c:59092,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:59095,1
    - Dst: walChecksumBytes
      Src: /src/nss/lib/sqlite/sqlite3.c:59098,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:59099,1
    - Dst: walShmBarrier
      Src: /src/nss/lib/sqlite/sqlite3.c:59100,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:59101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - pWal
    argTypes:
    - Wal*
    assertStmts:
    - condition: ( pWal->writeLock )
      pos:
        line_end: 59094
        line_start: 59094
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 59102
      start: 59091
    functionDepth: 2
    functionLinenumber: 59091
    functionLinenumberEnd: 59102
    functionName: walIndexWriteHdr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - walShmBarrier
    - walChecksumBytes
    - walIndexHdr
    - assert
    linkageType: ''
    returnType: void
    signature: void walIndexWriteHdr(Wal *pWal)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:59126,1
    - Dst: sqlite3Put4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:59127,1
    - Dst: sqlite3Put4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:59128,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:59130,1
    - Dst: walChecksumBytes
      Src: /src/nss/lib/sqlite/sqlite3.c:59133,1
    - Dst: walChecksumBytes
      Src: /src/nss/lib/sqlite/sqlite3.c:59134,1
    - Dst: sqlite3Put4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:59136,1
    - Dst: sqlite3Put4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:59137,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:59139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 5
    argNames:
    - pWal
    - iPage
    - nTruncate
    - aData
    - aFrame
    argTypes:
    - Wal*
    - u32
    - u32
    - u8*
    - u8*
    assertStmts:
    - condition: ( WAL_FRAME_HDRSIZE==24 )
      pos:
        line_end: 59125
        line_start: 59125
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 59141
      start: 59117
    functionDepth: 2
    functionLinenumber: 59117
    functionLinenumberEnd: 59141
    functionName: walEncodeFrame
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - walChecksumBytes
    - assert
    - memset
    - sqlite3Put4byte
    linkageType: ''
    returnType: void
    signature: "void walEncodeFrame(\n  Wal *pWal,                      /* The write-ahead
      log */\n  u32 iPage,                      /* Database page number for frame
      */\n  u32 nTruncate,                  /* New db size (or 0 for non-commit frames)
      */\n  u8 *aData,                      /* Pointer to page data */\n  u8 *aFrame
      \                     /* OUT: Write encoded frame here */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:59158,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:59163,1
    - Dst: sqlite3Get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:59169,1
    - Dst: walChecksumBytes
      Src: /src/nss/lib/sqlite/sqlite3.c:59180,1
    - Dst: walChecksumBytes
      Src: /src/nss/lib/sqlite/sqlite3.c:59181,1
    - Dst: sqlite3Get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:59182,1
    - Dst: sqlite3Get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:59183,1
    - Dst: sqlite3Get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:59193,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 5
    argNames:
    - pWal
    - piPage
    - pnTruncate
    - aData
    - aFrame
    argTypes:
    - Wal*
    - u32*
    - u32*
    - u8*
    - u8*
    assertStmts:
    - condition: ( WAL_FRAME_HDRSIZE==24 )
      pos:
        line_end: 59157
        line_start: 59157
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 59195
      start: 59148
    functionDepth: 2
    functionLinenumber: 59148
    functionLinenumberEnd: 59195
    functionName: walDecodeFrame
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - memcmp
    - walChecksumBytes
    - sqlite3Get4byte
    linkageType: ''
    returnType: int
    signature: "int walDecodeFrame(\n  Wal *pWal,                      /* The write-ahead
      log */\n  u32 *piPage,                    /* OUT: Database page number for frame
      */\n  u32 *pnTruncate,                /* OUT: New db size (or 0 if not commit)
      */\n  u8 *aData,                      /* Pointer to page data (for checksum)
      */\n  u8 *aFrame                      /* Frame data */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:59212,1
    - Dst: WAL_READ_LOCK
      Src: /src/nss/lib/sqlite/sqlite3.c:59213,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - lockIdx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59216
      start: 59203
    functionDepth: 10
    functionLinenumber: 59203
    functionLinenumberEnd: 59216
    functionName: walLockName
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - WAL_READ_LOCK
    - sqlite3_snprintf
    linkageType: ''
    returnType: char
    signature: char *walLockName(int lockIdx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3OsShmLock
      Src: /src/nss/lib/sqlite/sqlite3.c:59230,1
    - Dst: WALTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:59232,1
    - Dst: walLockName
      Src: /src/nss/lib/sqlite/sqlite3.c:59233,1
    - Dst: VVA_ONLY
      Src: /src/nss/lib/sqlite/sqlite3.c:59234,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - pWal
    - lockIdx
    argTypes:
    - Wal*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59236
      start: 59227
    functionDepth: 11
    functionLinenumber: 59227
    functionLinenumberEnd: 59236
    functionName: walLockShared
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - WALTRACE
    - walLockName
    - sqlite3OsShmLock
    - VVA_ONLY
    linkageType: ''
    returnType: int
    signature: int walLockShared(Wal *pWal, int lockIdx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3OsShmLock
      Src: /src/nss/lib/sqlite/sqlite3.c:59239,1
    - Dst: WALTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:59241,1
    - Dst: walLockName
      Src: /src/nss/lib/sqlite/sqlite3.c:59241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pWal
    - lockIdx
    argTypes:
    - Wal*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59242
      start: 59237
    functionDepth: 11
    functionLinenumber: 59237
    functionLinenumberEnd: 59242
    functionName: walUnlockShared
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - WALTRACE
    - walLockName
    - sqlite3OsShmLock
    linkageType: ''
    returnType: void
    signature: void walUnlockShared(Wal *pWal, int lockIdx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3OsShmLock
      Src: /src/nss/lib/sqlite/sqlite3.c:59246,1
    - Dst: WALTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:59248,1
    - Dst: walLockName
      Src: /src/nss/lib/sqlite/sqlite3.c:59249,1
    - Dst: VVA_ONLY
      Src: /src/nss/lib/sqlite/sqlite3.c:59250,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - pWal
    - lockIdx
    - n
    argTypes:
    - Wal*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59252
      start: 59243
    functionDepth: 11
    functionLinenumber: 59243
    functionLinenumberEnd: 59252
    functionName: walLockExclusive
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - WALTRACE
    - walLockName
    - sqlite3OsShmLock
    - VVA_ONLY
    linkageType: ''
    returnType: int
    signature: int walLockExclusive(Wal *pWal, int lockIdx, int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3OsShmLock
      Src: /src/nss/lib/sqlite/sqlite3.c:59255,1
    - Dst: WALTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:59257,1
    - Dst: walLockName
      Src: /src/nss/lib/sqlite/sqlite3.c:59258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - pWal
    - lockIdx
    - n
    argTypes:
    - Wal*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59259
      start: 59253
    functionDepth: 11
    functionLinenumber: 59253
    functionLinenumberEnd: 59259
    functionName: walUnlockExclusive
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - WALTRACE
    - walLockName
    - sqlite3OsShmLock
    linkageType: ''
    returnType: void
    signature: void walUnlockExclusive(Wal *pWal, int lockIdx, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:59267,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:59268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - iPage
    argTypes:
    - u32
    assertStmts:
    - condition: ( iPage>0 )
      pos:
        line_end: 59266
        line_start: 59266
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (HASHTABLE_NSLOT & (HASHTABLE_NSLOT-1))==0 )
      pos:
        line_end: 59267
        line_start: 59267
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 59270
      start: 59266
    functionDepth: 0
    functionLinenumber: 59266
    functionLinenumberEnd: 59270
    functionName: walHash
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int walHash(u32 iPage)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iPriorHash
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59273
      start: 59271
    functionDepth: 0
    functionLinenumber: 59271
    functionLinenumberEnd: 59273
    functionName: walNextHash
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int walNextHash(int iPriorHash)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: walIndexPage
      Src: /src/nss/lib/sqlite/sqlite3.c:59308,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:59309,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - pWal
    - iHash
    - pLoc
    argTypes:
    - Wal*
    - int
    - WalHashLoc*
    assertStmts:
    - condition: ( rc==SQLITE_OK || iHash>0 )
      pos:
        line_end: 59308
        line_start: 59308
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 59322
      start: 59301
    functionDepth: 9
    functionLinenumber: 59301
    functionLinenumberEnd: 59322
    functionName: walHashGet
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - walIndexPage
    linkageType: ''
    returnType: int
    signature: "int walHashGet(\n  Wal *pWal,                      /* WAL handle */\n
      \ int iHash,                      /* Find the iHash'th table */\n  WalHashLoc
      *pLoc                /* OUT: Hash table location */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:59332,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 3
    argCount: 1
    argNames:
    - iFrame
    argTypes:
    - u32
    assertStmts:
    - condition: "( (iHash==0 || iFrame>HASHTABLE_NPAGE_ONE)\n       && (iHash>=1
        || iFrame<=HASHTABLE_NPAGE_ONE)\n       && (iHash<=1 || iFrame>(HASHTABLE_NPAGE_ONE+HASHTABLE_NPAGE))\n
        \      && (iHash>=2 || iFrame<=HASHTABLE_NPAGE_ONE+HASHTABLE_NPAGE)\n       &&
        (iHash<=2 || iFrame>(HASHTABLE_NPAGE_ONE+2*HASHTABLE_NPAGE))\n  )"
      pos:
        line_end: 59336
        line_start: 59331
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 59339
      start: 59330
    functionDepth: 0
    functionLinenumber: 59330
    functionLinenumberEnd: 59339
    functionName: walFramePage
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int walFramePage(u32 iFrame)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: walFramePage
      Src: /src/nss/lib/sqlite/sqlite3.c:59345,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pWal
    - iFrame
    argTypes:
    - Wal*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59350
      start: 59344
    functionDepth: 1
    functionLinenumber: 59344
    functionLinenumberEnd: 59350
    functionName: walFramePgno
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - walFramePage
    linkageType: ''
    returnType: u32
    signature: u32 walFramePgno(Wal *pWal, u32 iFrame)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:59371,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:59372,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:59373,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:59374,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:59382,1
    - Dst: walFramePage
      Src: /src/nss/lib/sqlite/sqlite3.c:59382,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:59383,1
    - Dst: walFramePage
      Src: /src/nss/lib/sqlite/sqlite3.c:59383,1
    - Dst: walHashGet
      Src: /src/nss/lib/sqlite/sqlite3.c:59384,1
    - Dst: walFramePage
      Src: /src/nss/lib/sqlite/sqlite3.c:59384,1
    - Dst: NEVER
      Src: /src/nss/lib/sqlite/sqlite3.c:59385,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:59391,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:59402,1
    - Dst: walHash
      Src: /src/nss/lib/sqlite/sqlite3.c:59412,1
    - Dst: walNextHash
      Src: /src/nss/lib/sqlite/sqlite3.c:59412,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:59415,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 1
    argNames:
    - pWal
    argTypes:
    - Wal*
    assertStmts:
    - condition: ( pWal->writeLock )
      pos:
        line_end: 59370
        line_start: 59370
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pWal->nWiData>walFramePage(pWal->hdr.mxFrame) )
      pos:
        line_end: 59381
        line_start: 59381
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pWal->apWiData[walFramePage(pWal->hdr.mxFrame)] )
      pos:
        line_end: 59382
        line_start: 59382
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iLimit>0 )
      pos:
        line_end: 59390
        line_start: 59390
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sLoc.aHash[iKey]==j )
      pos:
        line_end: 59414
        line_start: 59414
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 59419
      start: 59364
    functionDepth: 10
    functionLinenumber: 59364
    functionLinenumberEnd: 59419
    functionName: walCleanupHash
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - NEVER
    - walHashGet
    - walHash
    - assert
    - memset
    - walFramePage
    - testcase
    - walNextHash
    linkageType: ''
    returnType: void
    signature: void walCleanupHash(Wal *pWal)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: walHashGet
      Src: /src/nss/lib/sqlite/sqlite3.c:59430,1
    - Dst: walFramePage
      Src: /src/nss/lib/sqlite/sqlite3.c:59430,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:59441,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:59449,1
    - Dst: walCleanupHash
      Src: /src/nss/lib/sqlite/sqlite3.c:59459,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:59460,1
    - Dst: walHash
      Src: /src/nss/lib/sqlite/sqlite3.c:59465,1
    - Dst: walNextHash
      Src: /src/nss/lib/sqlite/sqlite3.c:59465,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:59479,1
    - Dst: walHash
      Src: /src/nss/lib/sqlite/sqlite3.c:59490,1
    - Dst: walNextHash
      Src: /src/nss/lib/sqlite/sqlite3.c:59492,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:59495,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 3
    argNames:
    - pWal
    - iFrame
    - iPage
    argTypes:
    - Wal*
    - u32
    - u32
    assertStmts:
    - condition: ( idx <= HASHTABLE_NSLOT/2 + 1 )
      pos:
        line_end: 59440
        line_start: 59440
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !sLoc.aPgno[idx] )
      pos:
        line_end: 59459
        line_start: 59459
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nEntry==idx )
      pos:
        line_end: 59478
        line_start: 59478
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sLoc.aHash[iKey]==i )
      pos:
        line_end: 59494
        line_start: 59494
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 59503
      start: 59426
    functionDepth: 11
    functionLinenumber: 59426
    functionLinenumberEnd: 59503
    functionName: walIndexAppend
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - walHashGet
    - walHash
    - assert
    - memset
    - walFramePage
    - walNextHash
    - walCleanupHash
    linkageType: ''
    returnType: int
    signature: int walIndexAppend(Wal *pWal, u32 iFrame, u32 iPage)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:59528,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:59529,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:59530,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:59531,1
    - Dst: walLockExclusive
      Src: /src/nss/lib/sqlite/sqlite3.c:59533,1
    - Dst: WAL_READ_LOCK
      Src: /src/nss/lib/sqlite/sqlite3.c:59533,1
    - Dst: walLockExclusive
      Src: /src/nss/lib/sqlite/sqlite3.c:59535,1
    - Dst: WAL_READ_LOCK
      Src: /src/nss/lib/sqlite/sqlite3.c:59535,1
    - Dst: walUnlockExclusive
      Src: /src/nss/lib/sqlite/sqlite3.c:59537,1
    - Dst: WAL_READ_LOCK
      Src: /src/nss/lib/sqlite/sqlite3.c:59537,1
    - Dst: WALTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:59544,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:59546,1
    - Dst: sqlite3OsFileSize
      Src: /src/nss/lib/sqlite/sqlite3.c:59548,1
    - Dst: sqlite3OsRead
      Src: /src/nss/lib/sqlite/sqlite3.c:59566,1
    - Dst: sqlite3Get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:59576,1
    - Dst: sqlite3Get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:59577,1
    - Dst: sqlite3Get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:59587,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:59588,1
    - Dst: walChecksumBytes
      Src: /src/nss/lib/sqlite/sqlite3.c:59591,1
    - Dst: sqlite3Get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:59594,1
    - Dst: sqlite3Get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:59595,1
    - Dst: sqlite3Get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:59602,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:59610,1
    - Dst: sqlite3OsRead
      Src: /src/nss/lib/sqlite/sqlite3.c:59625,1
    - Dst: walDecodeFrame
      Src: /src/nss/lib/sqlite/sqlite3.c:59627,1
    - Dst: walIndexAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:59629,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:59637,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:59638,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:59644,1
    - Dst: walIndexWriteHdr
      Src: /src/nss/lib/sqlite/sqlite3.c:59653,1
    - Dst: walCkptInfo
      Src: /src/nss/lib/sqlite/sqlite3.c:59659,1
    - Dst: sqlite3_log
      Src: /src/nss/lib/sqlite/sqlite3.c:59672,1
    - Dst: WALTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:59680,1
    - Dst: walUnlockExclusive
      Src: /src/nss/lib/sqlite/sqlite3.c:59681,1
    - Dst: WAL_READ_LOCK
      Src: /src/nss/lib/sqlite/sqlite3.c:59681,1
    - Dst: walUnlockExclusive
      Src: /src/nss/lib/sqlite/sqlite3.c:59682,1
    - Dst: WAL_READ_LOCK
      Src: /src/nss/lib/sqlite/sqlite3.c:59682,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 106
    argCount: 1
    argNames:
    - pWal
    argTypes:
    - Wal*
    assertStmts:
    - condition: ( pWal->ckptLock==1 || pWal->ckptLock==0 )
      pos:
        line_end: 59527
        line_start: 59527
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pWal->writeLock )
      pos:
        line_end: 59530
        line_start: 59530
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( WAL_CKPT_LOCK==WAL_ALL_BUT_WRITE )
      pos:
        line_end: 59529
        line_start: 59529
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( WAL_ALL_BUT_WRITE==WAL_WRITE_LOCK+1 )
      pos:
        line_end: 59528
        line_start: 59528
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 59684
      start: 59516
    functionDepth: 12
    functionLinenumber: 59516
    functionLinenumberEnd: 59684
    functionName: walIndexRecover
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - testcase
    - WALTRACE
    - memcpy
    - walIndexWriteHdr
    - sqlite3_log
    - assert
    - memset
    - walDecodeFrame
    - sqlite3OsRead
    - walUnlockExclusive
    - sqlite3_malloc64
    - walLockExclusive
    - sqlite3Get4byte
    - WAL_READ_LOCK
    - walChecksumBytes
    - sqlite3OsFileSize
    - walCkptInfo
    - walIndexAppend
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int walIndexRecover(Wal *pWal)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:59693,1
    - Dst: sqlite3OsShmUnmap
      Src: /src/nss/lib/sqlite/sqlite3.c:59698,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - pWal
    - isDelete
    argTypes:
    - Wal*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59700
      start: 59689
    functionDepth: 3
    functionLinenumber: 59689
    functionLinenumberEnd: 59700
    functionName: walIndexClose
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    - sqlite3OsShmUnmap
    linkageType: ''
    returnType: void
    signature: void walIndexClose(Wal *pWal, int isDelete)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:59729,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:59730,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:59738,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:59739,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:59741,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:59744,1
    - Dst: sqlite3MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:59750,1
    - Dst: sqlite3OsOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:59767,1
    - Dst: walIndexClose
      Src: /src/nss/lib/sqlite/sqlite3.c:59773,1
    - Dst: sqlite3OsClose
      Src: /src/nss/lib/sqlite/sqlite3.c:59774,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:59775,1
    - Dst: sqlite3OsDeviceCharacteristics
      Src: /src/nss/lib/sqlite/sqlite3.c:59777,1
    - Dst: WALTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:59783,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 41
    argCount: 6
    argNames:
    - pVfs
    - pDbFd
    - zWalName
    - bNoShm
    - mxWalSize
    - ppWal
    argTypes:
    - sqlite3_vfs*
    - sqlite3_file*
    - char*
    - int
    - i64
    - Wal**
    assertStmts:
    - condition: ( zWalName && zWalName[0] )
      pos:
        line_end: 59728
        line_start: 59728
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( 136==WALINDEX_HDR_SIZE )
      pos:
        line_end: 59738
        line_start: 59738
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( 120==WALINDEX_LOCK_OFFSET )
      pos:
        line_end: 59737
        line_start: 59737
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pDbFd )
      pos:
        line_end: 59729
        line_start: 59729
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( WIN_SHM_BASE==WALINDEX_LOCK_OFFSET )
      pos:
        line_end: 59740
        line_start: 59740
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( UNIX_SHM_BASE==WALINDEX_LOCK_OFFSET )
      pos:
        line_end: 59743
        line_start: 59743
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 59786
      start: 59717
    functionDepth: 6
    functionLinenumber: 59717
    functionLinenumberEnd: 59786
    functionName: sqlite3WalOpen
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3OsDeviceCharacteristics
    - WALTRACE
    - sqlite3OsClose
    - walIndexClose
    - assert
    - sqlite3MallocZero
    - sqlite3OsOpen
    - sqlite3_free
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3WalOpen(\n  sqlite3_vfs *pVfs,              /*
      vfs module to open wal and wal-index */\n  sqlite3_file *pDbFd,            /*
      The open database file */\n  const char *zWalName,           /* Name of the
      WAL file */\n  int bNoShm,                     /* True to run in heap-memory
      mode */\n  i64 mxWalSize,                  /* Truncate WAL to this size on reset
      */\n  Wal **ppWal                     /* OUT: Allocated Wal handle */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - pWal
    - iLimit
    argTypes:
    - Wal*
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59793
      start: 59791
    functionDepth: 0
    functionLinenumber: 59791
    functionLinenumberEnd: 59793
    functionName: sqlite3WalLimit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WalLimit(Wal *pWal, i64 iLimit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:59815,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - p
    - piPage
    - piFrame
    argTypes:
    - WalIterator*
    - u32*
    - u32*
    assertStmts:
    - condition: ( iMin<0xffffffff )
      pos:
        line_end: 59814
        line_start: 59814
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 59833
      start: 59805
    functionDepth: 0
    functionLinenumber: 59805
    functionLinenumberEnd: 59833
    functionName: walIteratorNext
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: "int walIteratorNext(\n  WalIterator *p,               /* Iterator
      */\n  u32 *piPage,                  /* OUT: The page number of the next page
      */\n  u32 *piFrame                  /* OUT: Wal frame index of next page */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:59872,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:59889,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:59890,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:59895,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 6
    argNames:
    - aContent
    - aLeft
    - nLeft
    - paRight
    - pnRight
    - aTmp
    argTypes:
    - u32*
    - ht_slot*
    - int
    - ht_slot**
    - int*
    - ht_slot*
    assertStmts:
    - condition: ( nLeft>0 && nRight>0 )
      pos:
        line_end: 59871
        line_start: 59871
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iLeft>=nLeft || aContent[aLeft[iLeft]]>dbpage )
      pos:
        line_end: 59888
        line_start: 59888
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iRight>=nRight || aContent[aRight[iRight]]>dbpage )
      pos:
        line_end: 59889
        line_start: 59889
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 59896
      start: 59858
    functionDepth: 1
    functionLinenumber: 59858
    functionLinenumberEnd: 59896
    functionName: walMerge
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void walMerge(\n  const u32 *aContent,            /* Pages in wal
      - keys for the sort */\n  ht_slot *aLeft,                 /* IN: Left hand input
      list */\n  int nLeft,                      /* IN: Elements in array *paLeft
      */\n  ht_slot **paRight,              /* IN/OUT: Right hand input list */\n
      \ int *pnRight,                   /* IN/OUT: Elements in *paRight */\n  ht_slot
      *aTmp                   /* Temporary buffer */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:59933,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:59934,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:59935,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:59935,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:59942,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:59942,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:59944,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:59945,1
    - Dst: walMerge
      Src: /src/nss/lib/sqlite/sqlite3.c:59946,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:59952,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:59955,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:59955,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:59957,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:59958,1
    - Dst: walMerge
      Src: /src/nss/lib/sqlite/sqlite3.c:59959,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:59962,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:59969,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 4
    argNames:
    - aContent
    - aBuffer
    - aList
    - pnList
    argTypes:
    - u32*
    - ht_slot*
    - ht_slot*
    - int*
    assertStmts:
    - condition: ( nList<=HASHTABLE_NPAGE && nList>0 )
      pos:
        line_end: 59933
        line_start: 59933
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( HASHTABLE_NPAGE==(1<<(ArraySize(aSub)-1)) )
      pos:
        line_end: 59934
        line_start: 59934
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iSub<ArraySize(aSub) )
      pos:
        line_end: 59941
        line_start: 59941
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->aList && p->nList<=(1<<iSub) )
      pos:
        line_end: 59943
        line_start: 59943
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->aList==&aList[iList&~((2<<iSub)-1)] )
      pos:
        line_end: 59944
        line_start: 59944
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( aContent[aList[i]] > aContent[aList[i-1]] )
      pos:
        line_end: 59968
        line_start: 59968
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->nList<=(1<<iSub) )
      pos:
        line_end: 59956
        line_start: 59956
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iSub<ArraySize(aSub) )
      pos:
        line_end: 59954
        line_start: 59954
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( aMerge==aList )
      pos:
        line_end: 59961
        line_start: 59961
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->aList==&aList[nList&~((2<<iSub)-1)] )
      pos:
        line_end: 59957
        line_start: 59957
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 59973
      start: 59915
    functionDepth: 2
    functionLinenumber: 59915
    functionLinenumberEnd: 59973
    functionName: walMergesort
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - assert
    - ArraySize
    - walMerge
    linkageType: ''
    returnType: void
    signature: "void walMergesort(\n  const u32 *aContent,            /* Pages in
      wal */\n  ht_slot *aBuffer,               /* Buffer of at least *pnList items
      to use */\n  ht_slot *aList,                 /* IN/OUT: List to sort */\n  int
      *pnList                     /* IN/OUT: Number of elements in aList[] */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:59979,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - WalIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59980
      start: 59978
    functionDepth: 3
    functionLinenumber: 59978
    functionLinenumberEnd: 59980
    functionName: walIteratorFree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void walIteratorFree(WalIterator *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:60007,1
    - Dst: walFramePage
      Src: /src/nss/lib/sqlite/sqlite3.c:60011,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:60015,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:60019,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:60025,1
    - Dst: walFramePage
      Src: /src/nss/lib/sqlite/sqlite3.c:60032,1
    - Dst: walHashGet
      Src: /src/nss/lib/sqlite/sqlite3.c:60035,1
    - Dst: walMergesort
      Src: /src/nss/lib/sqlite/sqlite3.c:60053,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:60060,1
    - Dst: walIteratorFree
      Src: /src/nss/lib/sqlite/sqlite3.c:60063,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 43
    argCount: 3
    argNames:
    - pWal
    - nBackfill
    - pp
    argTypes:
    - Wal*
    - u32
    - WalIterator**
    assertStmts:
    - condition: ( pWal->ckptLock && pWal->hdr.mxFrame>0 )
      pos:
        line_end: 60006
        line_start: 60006
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 60068
      start: 59995
    functionDepth: 10
    functionLinenumber: 59995
    functionLinenumberEnd: 60068
    functionName: walIteratorInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_malloc64
    - walHashGet
    - walIteratorFree
    - assert
    - memset
    - walMergesort
    - walFramePage
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int walIteratorInit(Wal *pWal, u32 nBackfill, WalIterator **pp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: walLockExclusive
      Src: /src/nss/lib/sqlite/sqlite3.c:60085,1
    - Dst: xBusy
      Src: /src/nss/lib/sqlite/sqlite3.c:60086,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 4
    argNames:
    - pWal
    - pBusyArg
    - lockIdx
    - n
    argTypes:
    - Wal*
    - void*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60088
      start: 60076
    functionDepth: 12
    functionLinenumber: 60076
    functionLinenumberEnd: 60088
    functionName: walBusyLock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - walLockExclusive
    - xBusy
    linkageType: ''
    returnType: int
    signature: "int walBusyLock(\n  Wal *pWal,                      /* WAL connection
      */\n  int (*xBusy)(void*),            /* Function to call when busy */\n  void
      *pBusyArg,                 /* Context argument for xBusyHandler */\n  int lockIdx,
      \                   /* Offset of first byte to lock */\n  int n                           /*
      Number of bytes to lock */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pWal
    argTypes:
    - Wal*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60096
      start: 60094
    functionDepth: 0
    functionLinenumber: 60094
    functionLinenumberEnd: 60096
    functionName: walPagesize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int walPagesize(Wal *pWal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: walCkptInfo
      Src: /src/nss/lib/sqlite/sqlite3.c:60116,1
    - Dst: sqlite3Put4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:60121,1
    - Dst: sqlite3Get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:60121,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:60122,1
    - Dst: walIndexWriteHdr
      Src: /src/nss/lib/sqlite/sqlite3.c:60123,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:60128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - pWal
    - salt1
    argTypes:
    - Wal*
    - u32
    assertStmts:
    - condition: ( pInfo->aReadMark[0]==0 )
      pos:
        line_end: 60127
        line_start: 60127
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 60129
      start: 60115
    functionDepth: 3
    functionLinenumber: 60115
    functionLinenumberEnd: 60129
    functionName: walRestartHdr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - walIndexWriteHdr
    - assert
    - sqlite3Put4byte
    - sqlite3Get4byte
    - walCkptInfo
    linkageType: ''
    returnType: void
    signature: void walRestartHdr(Wal *pWal, u32 salt1)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: walPagesize
      Src: /src/nss/lib/sqlite/sqlite3.c:60181,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:60182,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:60183,1
    - Dst: walCkptInfo
      Src: /src/nss/lib/sqlite/sqlite3.c:60184,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:60189,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:60209,1
    - Dst: walBusyLock
      Src: /src/nss/lib/sqlite/sqlite3.c:60210,1
    - Dst: WAL_READ_LOCK
      Src: /src/nss/lib/sqlite/sqlite3.c:60210,1
    - Dst: walUnlockExclusive
      Src: /src/nss/lib/sqlite/sqlite3.c:60213,1
    - Dst: WAL_READ_LOCK
      Src: /src/nss/lib/sqlite/sqlite3.c:60213,1
    - Dst: walIteratorInit
      Src: /src/nss/lib/sqlite/sqlite3.c:60225,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:60226,1
    - Dst: walBusyLock
      Src: /src/nss/lib/sqlite/sqlite3.c:60230,1
    - Dst: WAL_READ_LOCK
      Src: /src/nss/lib/sqlite/sqlite3.c:60230,1
    - Dst: sqlite3OsSync
      Src: /src/nss/lib/sqlite/sqlite3.c:60237,1
    - Dst: CKPT_SYNC_FLAGS
      Src: /src/nss/lib/sqlite/sqlite3.c:60237,1
    - Dst: sqlite3OsFileSize
      Src: /src/nss/lib/sqlite/sqlite3.c:60245,1
    - Dst: sqlite3OsFileControlHint
      Src: /src/nss/lib/sqlite/sqlite3.c:60247,1
    - Dst: walIteratorNext
      Src: /src/nss/lib/sqlite/sqlite3.c:60253,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:60255,1
    - Dst: walFramePgno
      Src: /src/nss/lib/sqlite/sqlite3.c:60255,1
    - Dst: walFrameOffset
      Src: /src/nss/lib/sqlite/sqlite3.c:60263,1
    - Dst: sqlite3OsRead
      Src: /src/nss/lib/sqlite/sqlite3.c:60265,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:60268,1
    - Dst: IS_BIG_INT
      Src: /src/nss/lib/sqlite/sqlite3.c:60268,1
    - Dst: sqlite3OsWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:60269,1
    - Dst: walIndexHdr
      Src: /src/nss/lib/sqlite/sqlite3.c:60275,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:60277,1
    - Dst: IS_BIG_INT
      Src: /src/nss/lib/sqlite/sqlite3.c:60277,1
    - Dst: sqlite3OsTruncate
      Src: /src/nss/lib/sqlite/sqlite3.c:60278,1
    - Dst: sqlite3OsSync
      Src: /src/nss/lib/sqlite/sqlite3.c:60280,1
    - Dst: CKPT_SYNC_FLAGS
      Src: /src/nss/lib/sqlite/sqlite3.c:60280,1
    - Dst: walUnlockExclusive
      Src: /src/nss/lib/sqlite/sqlite3.c:60289,1
    - Dst: WAL_READ_LOCK
      Src: /src/nss/lib/sqlite/sqlite3.c:60289,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:60305,1
    - Dst: sqlite3_randomness
      Src: /src/nss/lib/sqlite/sqlite3.c:60310,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:60311,1
    - Dst: walBusyLock
      Src: /src/nss/lib/sqlite/sqlite3.c:60312,1
    - Dst: WAL_READ_LOCK
      Src: /src/nss/lib/sqlite/sqlite3.c:60312,1
    - Dst: walRestartHdr
      Src: /src/nss/lib/sqlite/sqlite3.c:60328,1
    - Dst: sqlite3OsTruncate
      Src: /src/nss/lib/sqlite/sqlite3.c:60329,1
    - Dst: walUnlockExclusive
      Src: /src/nss/lib/sqlite/sqlite3.c:60331,1
    - Dst: WAL_READ_LOCK
      Src: /src/nss/lib/sqlite/sqlite3.c:60331,1
    - Dst: walIteratorFree
      Src: /src/nss/lib/sqlite/sqlite3.c:60337,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 98
    argCount: 6
    argNames:
    - pWal
    - db
    - eMode
    - pBusyArg
    - sync_flags
    - zBuf
    argTypes:
    - Wal*
    - sqlite3*
    - int
    - void*
    - int
    - u8*
    assertStmts:
    - condition: ( walFramePgno(pWal, iFrame)==iDbpage )
      pos:
        line_end: 60254
        line_start: 60254
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( y<=pWal->hdr.mxFrame )
      pos:
        line_end: 60208
        line_start: 60208
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pInfo->nBackfill==pWal->hdr.mxFrame )
      pos:
        line_end: 60310
        line_start: 60310
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( eMode!=SQLITE_CHECKPOINT_PASSIVE || xBusy==0 )
      pos:
        line_end: 60188
        line_start: 60188
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc==SQLITE_OK || pIter==0 )
      pos:
        line_end: 60225
        line_start: 60225
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pWal->writeLock )
      pos:
        line_end: 60304
        line_start: 60304
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 60339
      start: 60162
    functionDepth: 13
    functionLinenumber: 60162
    functionLinenumberEnd: 60339
    functionName: walCheckpoint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsFileControlHint
    - CKPT_SYNC_FLAGS
    - walBusyLock
    - walIndexHdr
    - testcase
    - walRestartHdr
    - sqlite3OsSync
    - sqlite3OsTruncate
    - assert
    - sqlite3OsRead
    - sqlite3OsWrite
    - walIteratorInit
    - walUnlockExclusive
    - walFrameOffset
    - sqlite3_randomness
    - walPagesize
    - walIteratorFree
    - WAL_READ_LOCK
    - IS_BIG_INT
    - sqlite3OsFileSize
    - walCkptInfo
    - walFramePgno
    - walIteratorNext
    linkageType: ''
    returnType: int
    signature: "int walCheckpoint(\n  Wal *pWal,                      /* Wal connection
      */\n  sqlite3 *db,                    /* Check for interrupts on this handle
      */\n  int eMode,                      /* One of PASSIVE, FULL or RESTART */\n
      \ int (*xBusy)(void*),            /* Function to call when busy */\n  void *pBusyArg,
      \                /* Context argument for xBusyHandler */\n  int sync_flags,
      \                /* Flags for OsSync() (or 0) */\n  u8 *zBuf                        /*
      Temporary buffer to use */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BeginBenignMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:60348,1
    - Dst: sqlite3OsFileSize
      Src: /src/nss/lib/sqlite/sqlite3.c:60349,1
    - Dst: sqlite3OsTruncate
      Src: /src/nss/lib/sqlite/sqlite3.c:60351,1
    - Dst: sqlite3EndBenignMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:60353,1
    - Dst: sqlite3_log
      Src: /src/nss/lib/sqlite/sqlite3.c:60355,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - pWal
    - nMax
    argTypes:
    - Wal*
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60357
      start: 60345
    functionDepth: 10
    functionLinenumber: 60345
    functionLinenumberEnd: 60357
    functionName: walLimitSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3EndBenignMalloc
    - sqlite3_log
    - sqlite3BeginBenignMalloc
    - sqlite3OsTruncate
    - sqlite3OsFileSize
    linkageType: ''
    returnType: void
    signature: void walLimitSize(Wal *pWal, i64 nMax)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3OsLock
      Src: /src/nss/lib/sqlite/sqlite3.c:60382,1
    - Dst: sqlite3WalCheckpoint
      Src: /src/nss/lib/sqlite/sqlite3.c:60387,1
    - Dst: sqlite3OsFileControlHint
      Src: /src/nss/lib/sqlite/sqlite3.c:60392,1
    - Dst: walLimitSize
      Src: /src/nss/lib/sqlite/sqlite3.c:60407,1
    - Dst: walIndexClose
      Src: /src/nss/lib/sqlite/sqlite3.c:60412,1
    - Dst: sqlite3OsClose
      Src: /src/nss/lib/sqlite/sqlite3.c:60413,1
    - Dst: sqlite3BeginBenignMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:60415,1
    - Dst: sqlite3OsDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:60416,1
    - Dst: sqlite3EndBenignMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:60417,1
    - Dst: WALTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:60419,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:60420,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:60421,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 5
    argNames:
    - pWal
    - db
    - sync_flags
    - nBuf
    - zBuf
    argTypes:
    - Wal*
    - sqlite3*
    - int
    - int
    - u8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60424
      start: 60362
    functionDepth: 11
    functionLinenumber: 60362
    functionLinenumberEnd: 60424
    functionName: sqlite3WalClose
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - WALTRACE
    - sqlite3OsFileControlHint
    - sqlite3EndBenignMalloc
    - walLimitSize
    - sqlite3WalCheckpoint
    - sqlite3BeginBenignMalloc
    - sqlite3OsClose
    - walIndexClose
    - sqlite3OsDelete
    - sqlite3OsLock
    - sqlite3_free
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3WalClose(\n  Wal *pWal,                      /*
      Wal to close */\n  sqlite3 *db,                    /* For interrupt flag */\n
      \ int sync_flags,                 /* Flags to pass to OsSync() (or 0) */\n  int
      nBuf,\n  u8 *zBuf                        /* Buffer of at least nBuf bytes */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:60449,1
    - Dst: walIndexHdr
      Src: /src/nss/lib/sqlite/sqlite3.c:60461,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:60462,1
    - Dst: walShmBarrier
      Src: /src/nss/lib/sqlite/sqlite3.c:60463,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:60464,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:60466,1
    - Dst: walChecksumBytes
      Src: /src/nss/lib/sqlite/sqlite3.c:60472,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:60477,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:60479,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:60481,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:60482,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - pWal
    - pChanged
    argTypes:
    - Wal*
    - int*
    assertStmts:
    - condition: ( pWal->nWiData>0 && pWal->apWiData[0] )
      pos:
        line_end: 60448
        line_start: 60448
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 60487
      start: 60443
    functionDepth: 2
    functionLinenumber: 60443
    functionLinenumberEnd: 60487
    functionName: walIndexTryHdr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - walShmBarrier
    - walChecksumBytes
    - walIndexHdr
    - assert
    - memcmp
    - testcase
    linkageType: ''
    returnType: int
    signature: int walIndexTryHdr(Wal *pWal, int *pChanged)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:60515,1
    - Dst: walIndexPage
      Src: /src/nss/lib/sqlite/sqlite3.c:60516,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:60518,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:60526,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:60527,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:60528,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:60538,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:60540,1
    - Dst: walIndexTryHdr
      Src: /src/nss/lib/sqlite/sqlite3.c:60547,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:60552,1
    - Dst: walLockShared
      Src: /src/nss/lib/sqlite/sqlite3.c:60555,1
    - Dst: walUnlockShared
      Src: /src/nss/lib/sqlite/sqlite3.c:60556,1
    - Dst: walLockExclusive
      Src: /src/nss/lib/sqlite/sqlite3.c:60559,1
    - Dst: walIndexPage
      Src: /src/nss/lib/sqlite/sqlite3.c:60561,1
    - Dst: walIndexTryHdr
      Src: /src/nss/lib/sqlite/sqlite3.c:60562,1
    - Dst: walIndexRecover
      Src: /src/nss/lib/sqlite/sqlite3.c:60568,1
    - Dst: walUnlockExclusive
      Src: /src/nss/lib/sqlite/sqlite3.c:60573,1
    - Dst: walIndexClose
      Src: /src/nss/lib/sqlite/sqlite3.c:60586,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:60588,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 55
    argCount: 2
    argNames:
    - pWal
    - pChanged
    argTypes:
    - Wal*
    - int*
    assertStmts:
    - condition: ( rc!=SQLITE_READONLY )
      pos:
        line_end: 60517
        line_start: 60517
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pWal->writeLock==0 )
      pos:
        line_end: 60526
        line_start: 60526
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( page0==0 )
      pos:
        line_end: 60525
        line_start: 60525
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pWal->nWiData>0 && pWal->apWiData[0]==0 )
      pos:
        line_end: 60587
        line_start: 60587
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pWal->readOnly & WAL_SHM_RDONLY )
      pos:
        line_end: 60527
        line_start: 60527
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( page0!=0 || pWal->writeLock==0 )
      pos:
        line_end: 60539
        line_start: 60539
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pChanged )
      pos:
        line_end: 60514
        line_start: 60514
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( badHdr==0 || pWal->writeLock==0 )
      pos:
        line_end: 60551
        line_start: 60551
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 60598
      start: 60507
    functionDepth: 13
    functionLinenumber: 60507
    functionLinenumberEnd: 60598
    functionName: walIndexReadHdr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - walIndexTryHdr
    - walUnlockExclusive
    - walIndexRecover
    - walIndexClose
    - walUnlockShared
    - assert
    - walLockShared
    - walLockExclusive
    - walIndexPage
    - testcase
    linkageType: ''
    returnType: int
    signature: int walIndexReadHdr(Wal *pWal, int *pChanged)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:60638,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:60639,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:60640,1
    - Dst: walLockShared
      Src: /src/nss/lib/sqlite/sqlite3.c:60645,1
    - Dst: WAL_READ_LOCK
      Src: /src/nss/lib/sqlite/sqlite3.c:60645,1
    - Dst: sqlite3OsShmMap
      Src: /src/nss/lib/sqlite/sqlite3.c:60674,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:60675,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:60685,1
    - Dst: walIndexHdr
      Src: /src/nss/lib/sqlite/sqlite3.c:60685,1
    - Dst: sqlite3OsFileSize
      Src: /src/nss/lib/sqlite/sqlite3.c:60690,1
    - Dst: sqlite3OsRead
      Src: /src/nss/lib/sqlite/sqlite3.c:60707,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:60711,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:60721,1
    - Dst: walFrameOffset
      Src: /src/nss/lib/sqlite/sqlite3.c:60734,1
    - Dst: sqlite3OsRead
      Src: /src/nss/lib/sqlite/sqlite3.c:60742,1
    - Dst: walDecodeFrame
      Src: /src/nss/lib/sqlite/sqlite3.c:60744,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:60758,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:60762,1
    - Dst: sqlite3WalEndReadTransaction
      Src: /src/nss/lib/sqlite/sqlite3.c:60766,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 77
    argCount: 2
    argNames:
    - pWal
    - pChanged
    argTypes:
    - Wal*
    - int*
    assertStmts:
    - condition: ( pWal->bShmUnreliable )
      pos:
        line_end: 60637
        line_start: 60637
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pWal->readOnly & WAL_SHM_RDONLY )
      pos:
        line_end: 60638
        line_start: 60638
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pWal->nWiData>0 && pWal->apWiData[0] )
      pos:
        line_end: 60639
        line_start: 60639
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc!=SQLITE_OK )
      pos:
        line_end: 60674
        line_start: 60674
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 60770
      start: 60627
    functionDepth: 12
    functionLinenumber: 60627
    functionLinenumberEnd: 60770
    functionName: walBeginShmUnreliable
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsRead
    - sqlite3WalEndReadTransaction
    - memcpy
    - sqlite3_malloc64
    - walFrameOffset
    - WAL_READ_LOCK
    - walIndexHdr
    - assert
    - walLockShared
    - sqlite3OsFileSize
    - walDecodeFrame
    - memcmp
    - sqlite3_free
    - sqlite3OsShmMap
    linkageType: ''
    returnType: int
    signature: int walBeginShmUnreliable(Wal *pWal, int *pChanged)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:60830,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:60833,1
    - Dst: VVA_ONLY
      Src: /src/nss/lib/sqlite/sqlite3.c:60855,1
    - Dst: sqlite3OsSleep
      Src: /src/nss/lib/sqlite/sqlite3.c:60859,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:60863,1
    - Dst: walIndexReadHdr
      Src: /src/nss/lib/sqlite/sqlite3.c:60865,1
    - Dst: walLockShared
      Src: /src/nss/lib/sqlite/sqlite3.c:60885,1
    - Dst: walUnlockShared
      Src: /src/nss/lib/sqlite/sqlite3.c:60886,1
    - Dst: walBeginShmUnreliable
      Src: /src/nss/lib/sqlite/sqlite3.c:60896,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:60900,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:60901,1
    - Dst: walCkptInfo
      Src: /src/nss/lib/sqlite/sqlite3.c:60902,1
    - Dst: walLockShared
      Src: /src/nss/lib/sqlite/sqlite3.c:60911,1
    - Dst: WAL_READ_LOCK
      Src: /src/nss/lib/sqlite/sqlite3.c:60911,1
    - Dst: walShmBarrier
      Src: /src/nss/lib/sqlite/sqlite3.c:60912,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:60914,1
    - Dst: walIndexHdr
      Src: /src/nss/lib/sqlite/sqlite3.c:60914,1
    - Dst: walUnlockShared
      Src: /src/nss/lib/sqlite/sqlite3.c:60928,1
    - Dst: WAL_READ_LOCK
      Src: /src/nss/lib/sqlite/sqlite3.c:60928,1
    - Dst: AtomicLoad
      Src: /src/nss/lib/sqlite/sqlite3.c:60952,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:60954,1
    - Dst: walLockExclusive
      Src: /src/nss/lib/sqlite/sqlite3.c:60963,1
    - Dst: WAL_READ_LOCK
      Src: /src/nss/lib/sqlite/sqlite3.c:60963,1
    - Dst: AtomicStore
      Src: /src/nss/lib/sqlite/sqlite3.c:60965,1
    - Dst: walUnlockExclusive
      Src: /src/nss/lib/sqlite/sqlite3.c:60967,1
    - Dst: WAL_READ_LOCK
      Src: /src/nss/lib/sqlite/sqlite3.c:60967,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:60975,1
    - Dst: walLockShared
      Src: /src/nss/lib/sqlite/sqlite3.c:60979,1
    - Dst: WAL_READ_LOCK
      Src: /src/nss/lib/sqlite/sqlite3.c:60979,1
    - Dst: AtomicLoad
      Src: /src/nss/lib/sqlite/sqlite3.c:61017,1
    - Dst: walShmBarrier
      Src: /src/nss/lib/sqlite/sqlite3.c:61018,1
    - Dst: AtomicLoad
      Src: /src/nss/lib/sqlite/sqlite3.c:61019,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:61020,1
    - Dst: walIndexHdr
      Src: /src/nss/lib/sqlite/sqlite3.c:61020,1
    - Dst: walUnlockShared
      Src: /src/nss/lib/sqlite/sqlite3.c:61022,1
    - Dst: WAL_READ_LOCK
      Src: /src/nss/lib/sqlite/sqlite3.c:61022,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:61025,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 99
    argCount: 4
    argNames:
    - pWal
    - pChanged
    - useWal
    - cnt
    argTypes:
    - Wal*
    - int*
    - int
    - int
    assertStmts:
    - condition: ( pWal->readLock<0 )
      pos:
        line_end: 60829
        line_start: 60829
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pWal->readOnly & WAL_SHM_RDONLY)==0 || useWal==0 )
      pos:
        line_end: 60832
        line_start: 60832
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pWal->nWiData>0 )
      pos:
        line_end: 60899
        line_start: 60899
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc==SQLITE_BUSY || (pWal->readOnly & WAL_SHM_RDONLY)!=0 )
      pos:
        line_end: 60974
        line_start: 60974
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc==SQLITE_OK )
      pos:
        line_end: 60862
        line_start: 60862
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( thisMark!=READMARK_NOT_USED )
      pos:
        line_end: 60953
        line_start: 60953
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( mxReadMark<=pWal->hdr.mxFrame )
      pos:
        line_end: 61024
        line_start: 61024
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pWal->apWiData[0]!=0 )
      pos:
        line_end: 60900
        line_start: 60900
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 61029
      start: 60822
    functionDepth: 14
    functionLinenumber: 60822
    functionLinenumberEnd: 61029
    functionName: walTryBeginRead
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsSleep
    - walUnlockExclusive
    - walShmBarrier
    - AtomicLoad
    - AtomicStore
    - WAL_READ_LOCK
    - walBeginShmUnreliable
    - VVA_ONLY
    - walIndexHdr
    - walUnlockShared
    - assert
    - walIndexReadHdr
    - walLockShared
    - walLockExclusive
    - walCkptInfo
    - memcmp
    linkageType: ''
    returnType: int
    signature: int walTryBeginRead(Wal *pWal, int *pChanged, int useWal, int cnt)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:61054,1
    - Dst: walLockExclusive
      Src: /src/nss/lib/sqlite/sqlite3.c:61055,1
    - Dst: walCkptInfo
      Src: /src/nss/lib/sqlite/sqlite3.c:61057,1
    - Dst: sqlite3OsFileSize
      Src: /src/nss/lib/sqlite/sqlite3.c:61061,1
    - Dst: sqlite3_malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:61063,1
    - Dst: sqlite3_malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:61064,1
    - Dst: walHashGet
      Src: /src/nss/lib/sqlite/sqlite3.c:61075,1
    - Dst: walFramePage
      Src: /src/nss/lib/sqlite/sqlite3.c:61075,1
    - Dst: walFrameOffset
      Src: /src/nss/lib/sqlite/sqlite3.c:61081,1
    - Dst: sqlite3OsRead
      Src: /src/nss/lib/sqlite/sqlite3.c:61082,1
    - Dst: sqlite3OsRead
      Src: /src/nss/lib/sqlite/sqlite3.c:61085,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:61088,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:61097,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:61098,1
    - Dst: walUnlockExclusive
      Src: /src/nss/lib/sqlite/sqlite3.c:61100,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 1
    argNames:
    - pWal
    argTypes:
    - Wal*
    assertStmts:
    - condition: ( pWal->readLock>=0 )
      pos:
        line_end: 61053
        line_start: 61053
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 61104
      start: 61051
    functionDepth: 12
    functionLinenumber: 61051
    functionLinenumberEnd: 61104
    functionName: sqlite3WalSnapshotRecover
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3OsRead
    - sqlite3_malloc
    - walUnlockExclusive
    - walFrameOffset
    - walHashGet
    - memcmp
    - assert
    - walLockExclusive
    - sqlite3OsFileSize
    - walCkptInfo
    - walFramePage
    - sqlite3_free
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WalSnapshotRecover(Wal *pWal)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:61128,1
    - Dst: walTryBeginRead
      Src: /src/nss/lib/sqlite/sqlite3.c:61134,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:61136,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:61137,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:61138,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:61139,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:61143,1
    - Dst: walCkptInfo
      Src: /src/nss/lib/sqlite/sqlite3.c:61157,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:61159,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:61160,1
    - Dst: walLockShared
      Src: /src/nss/lib/sqlite/sqlite3.c:61174,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:61183,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:61186,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:61187,1
    - Dst: walUnlockShared
      Src: /src/nss/lib/sqlite/sqlite3.c:61194,1
    - Dst: sqlite3WalEndReadTransaction
      Src: /src/nss/lib/sqlite/sqlite3.c:61200,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 2
    argNames:
    - pWal
    - pChanged
    argTypes:
    - Wal*
    - int*
    assertStmts:
    - condition: ( pWal->readLock>0 || pWal->hdr.mxFrame==0 )
      pos:
        line_end: 61158
        line_start: 61158
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pInfo->aReadMark[pWal->readLock]<=pSnapshot->mxFrame )
      pos:
        line_end: 61159
        line_start: 61159
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pWal->readLock>0 )
      pos:
        line_end: 61185
        line_start: 61185
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 61206
      start: 61121
    functionDepth: 15
    functionLinenumber: 61121
    functionLinenumberEnd: 61206
    functionName: sqlite3WalBeginReadTransaction
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3WalEndReadTransaction
    - memcpy
    - walTryBeginRead
    - walUnlockShared
    - assert
    - walLockShared
    - walCkptInfo
    - memcmp
    - testcase
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WalBeginReadTransaction(Wal *pWal, int *pChanged)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3WalEndWriteTransaction
      Src: /src/nss/lib/sqlite/sqlite3.c:61213,1
    - Dst: walUnlockShared
      Src: /src/nss/lib/sqlite/sqlite3.c:61215,1
    - Dst: WAL_READ_LOCK
      Src: /src/nss/lib/sqlite/sqlite3.c:61215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pWal
    argTypes:
    - Wal*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61218
      start: 61212
    functionDepth: 12
    functionLinenumber: 61212
    functionLinenumberEnd: 61218
    functionName: sqlite3WalEndReadTransaction
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 4
    functionsReached:
    - sqlite3WalEndWriteTransaction
    - WAL_READ_LOCK
    - walUnlockShared
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WalEndReadTransaction(Wal *pWal)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:61239,1
    - Dst: walFramePage
      Src: /src/nss/lib/sqlite/sqlite3.c:61277,1
    - Dst: walFramePage
      Src: /src/nss/lib/sqlite/sqlite3.c:61278,1
    - Dst: walHashGet
      Src: /src/nss/lib/sqlite/sqlite3.c:61284,1
    - Dst: walHash
      Src: /src/nss/lib/sqlite/sqlite3.c:61289,1
    - Dst: walNextHash
      Src: /src/nss/lib/sqlite/sqlite3.c:61289,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:61293,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:61310,1
    - Dst: walFramePgno
      Src: /src/nss/lib/sqlite/sqlite3.c:61312,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:61317,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 36
    argCount: 3
    argNames:
    - pWal
    - pgno
    - piRead
    argTypes:
    - Wal*
    - Pgno
    - u32*
    assertStmts:
    - condition: ( pWal->readLock>=0 || pWal->lockError )
      pos:
        line_end: 61238
        line_start: 61238
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iFrame>iRead || CORRUPT_DB )
      pos:
        line_end: 61292
        line_start: 61292
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pWal->bShmUnreliable || pWal->minFrame>0 )
      pos:
        line_end: 61309
        line_start: 61309
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iRead==iRead2 )
      pos:
        line_end: 61316
        line_start: 61316
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 61323
      start: 61228
    functionDepth: 10
    functionLinenumber: 61228
    functionLinenumberEnd: 61323
    functionName: sqlite3WalFindFrame
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 3
    functionsReached:
    - walHashGet
    - walFramePgno
    - walHash
    - assert
    - walFramePage
    - walNextHash
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3WalFindFrame(\n  Wal *pWal,                      /*
      WAL handle */\n  Pgno pgno,                      /* Database page number to
      read data for */\n  u32 *piRead                     /* OUT: Frame number (or
      zero) */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:61340,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:61341,1
    - Dst: walFrameOffset
      Src: /src/nss/lib/sqlite/sqlite3.c:61342,1
    - Dst: sqlite3OsRead
      Src: /src/nss/lib/sqlite/sqlite3.c:61344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - pWal
    - iRead
    - nOut
    - pOut
    argTypes:
    - Wal*
    - u32
    - int
    - u8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61345
      start: 61330
    functionDepth: 2
    functionLinenumber: 61330
    functionLinenumberEnd: 61345
    functionName: sqlite3WalReadFrame
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3OsRead
    - testcase
    - walFrameOffset
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3WalReadFrame(\n  Wal *pWal,                      /*
      WAL handle */\n  u32 iRead,                      /* Frame to read */\n  int
      nOut,                       /* Size of buffer pOut in bytes */\n  u8 *pOut                        /*
      Buffer to write page data to */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:61351,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pWal
    argTypes:
    - Wal*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61355
      start: 61350
    functionDepth: 1
    functionLinenumber: 61350
    functionLinenumberEnd: 61355
    functionName: sqlite3WalDbsize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - ALWAYS
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WalDbsize(Wal *pWal)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:61376,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:61377,1
    - Dst: walLockExclusive
      Src: /src/nss/lib/sqlite/sqlite3.c:61386,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:61396,1
    - Dst: walIndexHdr
      Src: /src/nss/lib/sqlite/sqlite3.c:61396,1
    - Dst: walUnlockExclusive
      Src: /src/nss/lib/sqlite/sqlite3.c:61397,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - pWal
    argTypes:
    - Wal*
    assertStmts:
    - condition: ( pWal->readLock>=0 )
      pos:
        line_end: 61375
        line_start: 61375
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pWal->writeLock==0 && pWal->iReCksum==0 )
      pos:
        line_end: 61376
        line_start: 61376
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 61403
      start: 61371
    functionDepth: 12
    functionLinenumber: 61371
    functionLinenumberEnd: 61403
    functionName: sqlite3WalBeginWriteTransaction
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - walUnlockExclusive
    - walIndexHdr
    - assert
    - walLockExclusive
    - memcmp
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WalBeginWriteTransaction(Wal *pWal)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: walUnlockExclusive
      Src: /src/nss/lib/sqlite/sqlite3.c:61411,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - pWal
    argTypes:
    - Wal*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61417
      start: 61409
    functionDepth: 12
    functionLinenumber: 61409
    functionLinenumberEnd: 61417
    functionName: sqlite3WalEndWriteTransaction
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - walUnlockExclusive
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WalEndWriteTransaction(Wal *pWal)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:61433,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:61440,1
    - Dst: walIndexHdr
      Src: /src/nss/lib/sqlite/sqlite3.c:61440,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:61443,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:61457,1
    - Dst: walFramePgno
      Src: /src/nss/lib/sqlite/sqlite3.c:61457,1
    - Dst: xUndo
      Src: /src/nss/lib/sqlite/sqlite3.c:61458,1
    - Dst: walFramePgno
      Src: /src/nss/lib/sqlite/sqlite3.c:61458,1
    - Dst: walCleanupHash
      Src: /src/nss/lib/sqlite/sqlite3.c:61460,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - pWal
    - pUndoCtx
    argTypes:
    - Wal*
    - void*
    assertStmts:
    - condition: ( walFramePgno(pWal, iFrame)!=1 )
      pos:
        line_end: 61456
        line_start: 61456
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 61463
      start: 61431
    functionDepth: 11
    functionLinenumber: 61431
    functionLinenumberEnd: 61463
    functionName: sqlite3WalUndo
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - ALWAYS
    - memcpy
    - xUndo
    - walIndexHdr
    - assert
    - walFramePgno
    - walCleanupHash
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WalUndo(Wal *pWal, int (*xUndo)(void *, Pgno),
      void *pUndoCtx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:61472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - pWal
    - aWalData
    argTypes:
    - Wal*
    - u32*
    assertStmts:
    - condition: ( pWal->writeLock )
      pos:
        line_end: 61471
        line_start: 61471
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 61477
      start: 61471
    functionDepth: 0
    functionLinenumber: 61471
    functionLinenumberEnd: 61477
    functionName: sqlite3WalSavepoint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WalSavepoint(Wal *pWal, u32 *aWalData)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:61488,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:61489,1
    - Dst: walCleanupHash
      Src: /src/nss/lib/sqlite/sqlite3.c:61504,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - pWal
    - aWalData
    argTypes:
    - Wal*
    - u32*
    assertStmts:
    - condition: ( pWal->writeLock )
      pos:
        line_end: 61487
        line_start: 61487
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( aWalData[3]!=pWal->nCkpt || aWalData[0]<=pWal->hdr.mxFrame )
      pos:
        line_end: 61488
        line_start: 61488
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 61508
      start: 61485
    functionDepth: 11
    functionLinenumber: 61485
    functionLinenumberEnd: 61508
    functionName: sqlite3WalSavepointUndo
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - walCleanupHash
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WalSavepointUndo(Wal *pWal, u32 *aWalData)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: walCkptInfo
      Src: /src/nss/lib/sqlite/sqlite3.c:61527,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:61528,1
    - Dst: sqlite3_randomness
      Src: /src/nss/lib/sqlite/sqlite3.c:61531,1
    - Dst: walLockExclusive
      Src: /src/nss/lib/sqlite/sqlite3.c:61532,1
    - Dst: WAL_READ_LOCK
      Src: /src/nss/lib/sqlite/sqlite3.c:61532,1
    - Dst: walRestartHdr
      Src: /src/nss/lib/sqlite/sqlite3.c:61543,1
    - Dst: walUnlockExclusive
      Src: /src/nss/lib/sqlite/sqlite3.c:61544,1
    - Dst: WAL_READ_LOCK
      Src: /src/nss/lib/sqlite/sqlite3.c:61544,1
    - Dst: walUnlockShared
      Src: /src/nss/lib/sqlite/sqlite3.c:61549,1
    - Dst: WAL_READ_LOCK
      Src: /src/nss/lib/sqlite/sqlite3.c:61549,1
    - Dst: walTryBeginRead
      Src: /src/nss/lib/sqlite/sqlite3.c:61554,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:61556,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:61557,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:61558,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:61559,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 1
    argNames:
    - pWal
    argTypes:
    - Wal*
    assertStmts:
    - condition: ( pInfo->nBackfill==pWal->hdr.mxFrame )
      pos:
        line_end: 61527
        line_start: 61527
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (rc&0xff)!=SQLITE_BUSY )
      pos:
        line_end: 61555
        line_start: 61555
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 61562
      start: 61522
    functionDepth: 15
    functionLinenumber: 61522
    functionLinenumberEnd: 61562
    functionName: walRestartLog
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - walRestartHdr
    - walUnlockExclusive
    - WAL_READ_LOCK
    - walTryBeginRead
    - sqlite3_randomness
    - walUnlockShared
    - assert
    - walLockExclusive
    - walCkptInfo
    - testcase
    linkageType: ''
    returnType: int
    signature: int walRestartLog(Wal *pWal)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3OsWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:61594,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:61599,1
    - Dst: WAL_SYNC_FLAGS
      Src: /src/nss/lib/sqlite/sqlite3.c:61599,1
    - Dst: sqlite3OsSync
      Src: /src/nss/lib/sqlite/sqlite3.c:61600,1
    - Dst: WAL_SYNC_FLAGS
      Src: /src/nss/lib/sqlite/sqlite3.c:61600,1
    - Dst: sqlite3OsWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:61603,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - p
    - pContent
    - iAmt
    - iOffset
    argTypes:
    - WalWriter*
    - void*
    - int
    - sqlite3_int64
    assertStmts:
    - condition: ( WAL_SYNC_FLAGS(p->syncFlags)!=0 )
      pos:
        line_end: 61598
        line_start: 61598
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 61605
      start: 61585
    functionDepth: 2
    functionLinenumber: 61585
    functionLinenumberEnd: 61605
    functionName: walWriteToLog
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3OsWrite
    - WAL_SYNC_FLAGS
    - sqlite3OsSync
    linkageType: ''
    returnType: int
    signature: "int walWriteToLog(\n  WalWriter *p,              /* WAL to write to
      */\n  void *pContent,            /* Content to be written */\n  int iAmt,                  /*
      Number of bytes to write */\n  sqlite3_int64 iOffset      /* Start writing at
      this offset */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PagerCodec
      Src: /src/nss/lib/sqlite/sqlite3.c:61620,1
    - Dst: walEncodeFrame
      Src: /src/nss/lib/sqlite/sqlite3.c:61624,1
    - Dst: walWriteToLog
      Src: /src/nss/lib/sqlite/sqlite3.c:61625,1
    - Dst: walWriteToLog
      Src: /src/nss/lib/sqlite/sqlite3.c:61628,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - p
    - pPage
    - nTruncate
    - iOffset
    argTypes:
    - WalWriter*
    - PgHdr*
    - int
    - sqlite3_int64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61630
      start: 61610
    functionDepth: 3
    functionLinenumber: 61610
    functionLinenumberEnd: 61630
    functionName: walWriteOneFrame
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - walEncodeFrame
    - sqlite3PagerCodec
    - walWriteToLog
    linkageType: ''
    returnType: int
    signature: "int walWriteOneFrame(\n  WalWriter *p,               /* Where to write
      the frame */\n  PgHdr *pPage,               /* The page of the frame to be written
      */\n  int nTruncate,              /* The commit flag.  Usually 0.  >0 for commit
      */\n  sqlite3_int64 iOffset       /* Byte offset at which to write */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:61648,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:61656,1
    - Dst: walFrameOffset
      Src: /src/nss/lib/sqlite/sqlite3.c:61660,1
    - Dst: sqlite3OsRead
      Src: /src/nss/lib/sqlite/sqlite3.c:61662,1
    - Dst: sqlite3Get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:61663,1
    - Dst: sqlite3Get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:61664,1
    - Dst: walFrameOffset
      Src: /src/nss/lib/sqlite/sqlite3.c:61669,1
    - Dst: sqlite3OsRead
      Src: /src/nss/lib/sqlite/sqlite3.c:61670,1
    - Dst: sqlite3Get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:61673,1
    - Dst: sqlite3Get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:61674,1
    - Dst: walEncodeFrame
      Src: /src/nss/lib/sqlite/sqlite3.c:61676,1
    - Dst: sqlite3OsWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:61677,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:61681,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - pWal
    - iLast
    argTypes:
    - Wal*
    - u32
    assertStmts:
    - condition: ( pWal->iReCksum>0 )
      pos:
        line_end: 61655
        line_start: 61655
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 61683
      start: 61640
    functionDepth: 6
    functionLinenumber: 61640
    functionLinenumberEnd: 61683
    functionName: walRewriteChecksums
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsRead
    - sqlite3_malloc
    - walEncodeFrame
    - sqlite3OsWrite
    - walFrameOffset
    - assert
    - sqlite3Get4byte
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int walRewriteChecksums(Wal *pWal, u32 iLast)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:61708,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:61709,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:61713,1
    - Dst: WALTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:61717,1
    - Dst: walIndexHdr
      Src: /src/nss/lib/sqlite/sqlite3.c:61722,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:61723,1
    - Dst: walRestartLog
      Src: /src/nss/lib/sqlite/sqlite3.c:61730,1
    - Dst: sqlite3Put4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:61743,1
    - Dst: sqlite3Put4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:61744,1
    - Dst: sqlite3Put4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:61745,1
    - Dst: sqlite3Put4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:61746,1
    - Dst: sqlite3_randomness
      Src: /src/nss/lib/sqlite/sqlite3.c:61747,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:61748,1
    - Dst: walChecksumBytes
      Src: /src/nss/lib/sqlite/sqlite3.c:61749,1
    - Dst: sqlite3Put4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:61750,1
    - Dst: sqlite3Put4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:61751,1
    - Dst: sqlite3OsWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:61759,1
    - Dst: WALTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:61760,1
    - Dst: sqlite3OsSync
      Src: /src/nss/lib/sqlite/sqlite3.c:61773,1
    - Dst: CKPT_SYNC_FLAGS
      Src: /src/nss/lib/sqlite/sqlite3.c:61773,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:61777,1
    - Dst: walFrameOffset
      Src: /src/nss/lib/sqlite/sqlite3.c:61785,1
    - Dst: VVA_ONLY
      Src: /src/nss/lib/sqlite/sqlite3.c:61798,1
    - Dst: sqlite3WalFindFrame
      Src: /src/nss/lib/sqlite/sqlite3.c:61798,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:61799,1
    - Dst: walFrameOffset
      Src: /src/nss/lib/sqlite/sqlite3.c:61801,1
    - Dst: sqlite3PagerCodec
      Src: /src/nss/lib/sqlite/sqlite3.c:61807,1
    - Dst: sqlite3OsWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:61811,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:61819,1
    - Dst: walFrameOffset
      Src: /src/nss/lib/sqlite/sqlite3.c:61819,1
    - Dst: walWriteOneFrame
      Src: /src/nss/lib/sqlite/sqlite3.c:61821,1
    - Dst: walRewriteChecksums
      Src: /src/nss/lib/sqlite/sqlite3.c:61830,1
    - Dst: WAL_SYNC_FLAGS
      Src: /src/nss/lib/sqlite/sqlite3.c:61848,1
    - Dst: sqlite3SectorSize
      Src: /src/nss/lib/sqlite/sqlite3.c:61851,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:61854,1
    - Dst: walWriteOneFrame
      Src: /src/nss/lib/sqlite/sqlite3.c:61856,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:61863,1
    - Dst: sqlite3OsSync
      Src: /src/nss/lib/sqlite/sqlite3.c:61864,1
    - Dst: WAL_SYNC_FLAGS
      Src: /src/nss/lib/sqlite/sqlite3.c:61864,1
    - Dst: walFrameOffset
      Src: /src/nss/lib/sqlite/sqlite3.c:61874,1
    - Dst: walFrameOffset
      Src: /src/nss/lib/sqlite/sqlite3.c:61875,1
    - Dst: walLimitSize
      Src: /src/nss/lib/sqlite/sqlite3.c:61877,1
    - Dst: walIndexAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:61890,1
    - Dst: walIndexAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:61895,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:61901,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:61902,1
    - Dst: walIndexWriteHdr
      Src: /src/nss/lib/sqlite/sqlite3.c:61910,1
    - Dst: WALTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:61915,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 137
    argCount: 6
    argNames:
    - pWal
    - szPage
    - pList
    - nTruncate
    - isCommit
    - sync_flags
    argTypes:
    - Wal*
    - int
    - PgHdr*
    - Pgno
    - int
    - int
    assertStmts:
    - condition: ( rc==SQLITE_OK || iWrite==0 )
      pos:
        line_end: 61798
        line_start: 61798
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iOffset==walFrameOffset(iFrame, szPage) )
      pos:
        line_end: 61818
        line_start: 61818
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (isCommit!=0)==(nTruncate!=0) )
      pos:
        line_end: 61712
        line_start: 61712
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (int)pWal->szPage==szPage )
      pos:
        line_end: 61776
        line_start: 61776
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pList )
      pos:
        line_end: 61707
        line_start: 61707
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pWal->writeLock )
      pos:
        line_end: 61708
        line_start: 61708
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc==SQLITE_OK )
      pos:
        line_end: 61862
        line_start: 61862
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 61917
      start: 61689
    functionDepth: 16
    functionLinenumber: 61689
    functionLinenumberEnd: 61917
    functionName: sqlite3WalFrames
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - CKPT_SYNC_FLAGS
    - walLimitSize
    - WAL_SYNC_FLAGS
    - walIndexHdr
    - testcase
    - sqlite3PagerCodec
    - WALTRACE
    - memcpy
    - walIndexWriteHdr
    - sqlite3OsSync
    - assert
    - sqlite3SectorSize
    - sqlite3WalFindFrame
    - memcmp
    - sqlite3OsWrite
    - walFrameOffset
    - sqlite3_randomness
    - VVA_ONLY
    - walRestartLog
    - walRewriteChecksums
    - walChecksumBytes
    - sqlite3Put4byte
    - walIndexAppend
    - walWriteOneFrame
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3WalFrames(\n  Wal *pWal,                      /*
      Wal handle to write to */\n  int szPage,                     /* Database page-size
      in bytes */\n  PgHdr *pList,                   /* List of dirty pages to write
      */\n  Pgno nTruncate,                 /* Database size after this commit */\n
      \ int isCommit,                   /* True if this is a commit */\n  int sync_flags
      \                 /* Flags to pass to OsSync() (or 0) */\n)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:61946,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:61947,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:61951,1
    - Dst: WALTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:61954,1
    - Dst: walLockExclusive
      Src: /src/nss/lib/sqlite/sqlite3.c:61958,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:61966,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:61967,1
    - Dst: walBusyLock
      Src: /src/nss/lib/sqlite/sqlite3.c:61982,1
    - Dst: walIndexReadHdr
      Src: /src/nss/lib/sqlite/sqlite3.c:61994,1
    - Dst: sqlite3OsUnfetch
      Src: /src/nss/lib/sqlite/sqlite3.c:61996,1
    - Dst: walPagesize
      Src: /src/nss/lib/sqlite/sqlite3.c:62003,1
    - Dst: walCheckpoint
      Src: /src/nss/lib/sqlite/sqlite3.c:62006,1
    - Dst: walCkptInfo
      Src: /src/nss/lib/sqlite/sqlite3.c:62012,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:62023,1
    - Dst: sqlite3WalEndWriteTransaction
      Src: /src/nss/lib/sqlite/sqlite3.c:62027,1
    - Dst: walUnlockExclusive
      Src: /src/nss/lib/sqlite/sqlite3.c:62028,1
    - Dst: WALTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:62030,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 52
    argCount: 9
    argNames:
    - pWal
    - db
    - eMode
    - pBusyArg
    - sync_flags
    - nBuf
    - zBuf
    - pnLog
    - pnCkpt
    argTypes:
    - Wal*
    - sqlite3*
    - int
    - void*
    - int
    - int
    - u8*
    - int*
    - int*
    assertStmts:
    - condition: ( pWal->ckptLock==0 )
      pos:
        line_end: 61945
        line_start: 61945
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( eMode!=SQLITE_CHECKPOINT_PASSIVE || xBusy==0 )
      pos:
        line_end: 61950
        line_start: 61950
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pWal->writeLock==0 )
      pos:
        line_end: 61946
        line_start: 61946
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 62032
      start: 61929
    functionDepth: 14
    functionLinenumber: 61929
    functionLinenumberEnd: 62032
    functionName: sqlite3WalCheckpoint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - WALTRACE
    - walCheckpoint
    - walUnlockExclusive
    - walBusyLock
    - assert
    - walIndexReadHdr
    - memset
    - sqlite3WalEndWriteTransaction
    - walLockExclusive
    - sqlite3OsUnfetch
    - walCkptInfo
    - walPagesize
    - testcase
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3WalCheckpoint(\n  Wal *pWal,                      /*
      Wal connection */\n  sqlite3 *db,                    /* Check this handle's
      interrupt flag */\n  int eMode,                      /* PASSIVE, FULL, RESTART,
      or TRUNCATE */\n  int (*xBusy)(void*),            /* Function to call when busy
      */\n  void *pBusyArg,                 /* Context argument for xBusyHandler */\n
      \ int sync_flags,                 /* Flags to sync db file with (or 0) */\n
      \ int nBuf,                       /* Size of temporary buffer */\n  u8 *zBuf,
      \                      /* Temporary buffer to use */\n  int *pnLog,                     /*
      OUT: Number of frames in WAL */\n  int *pnCkpt                     /* OUT: Number
      of backfilled frames in WAL */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pWal
    argTypes:
    - Wal*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62046
      start: 62039
    functionDepth: 0
    functionLinenumber: 62039
    functionLinenumberEnd: 62046
    functionName: sqlite3WalCallback
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WalCallback(Wal *pWal)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:62074,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:62075,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:62083,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:62084,1
    - Dst: walLockShared
      Src: /src/nss/lib/sqlite/sqlite3.c:62089,1
    - Dst: WAL_READ_LOCK
      Src: /src/nss/lib/sqlite/sqlite3.c:62089,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:62098,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:62099,1
    - Dst: walUnlockShared
      Src: /src/nss/lib/sqlite/sqlite3.c:62100,1
    - Dst: WAL_READ_LOCK
      Src: /src/nss/lib/sqlite/sqlite3.c:62100,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - pWal
    - op
    argTypes:
    - Wal*
    - int
    assertStmts:
    - condition: ( pWal->writeLock==0 )
      pos:
        line_end: 62073
        line_start: 62073
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pWal->readLock>=0 || pWal->lockError )
      pos:
        line_end: 62082
        line_start: 62082
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pWal->exclusiveMode!=WAL_HEAPMEMORY_MODE || op==-1 )
      pos:
        line_end: 62074
        line_start: 62074
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pWal->readLock>=0 || (op<=0 && pWal->exclusiveMode==0) )
      pos:
        line_end: 62083
        line_start: 62083
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pWal->exclusiveMode==WAL_NORMAL_MODE )
      pos:
        line_end: 62097
        line_start: 62097
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pWal->readLock>=0 )
      pos:
        line_end: 62098
        line_start: 62098
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 62107
      start: 62072
    functionDepth: 12
    functionLinenumber: 62072
    functionLinenumberEnd: 62107
    functionName: sqlite3WalExclusiveMode
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - assert
    - WAL_READ_LOCK
    - walLockShared
    - walUnlockShared
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WalExclusiveMode(Wal *pWal, int op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - pWal
    argTypes:
    - Wal*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62116
      start: 62114
    functionDepth: 0
    functionLinenumber: 62114
    functionLinenumberEnd: 62116
    functionName: sqlite3WalHeapMemory
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WalHeapMemory(Wal *pWal)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:62128,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:62130,1
    - Dst: sqlite3_malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:62134,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:62138,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - pWal
    - ppSnapshot
    argTypes:
    - Wal*
    - sqlite3_snapshot**
    assertStmts:
    - condition: ( pWal->readLock>=0 && pWal->writeLock==0 )
      pos:
        line_end: 62127
        line_start: 62127
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 62143
      start: 62123
    functionDepth: 6
    functionLinenumber: 62123
    functionLinenumberEnd: 62143
    functionName: sqlite3WalSnapshotGet
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - memcpy
    - sqlite3_malloc
    - memcmp
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WalSnapshotGet(Wal *pWal, sqlite3_snapshot **ppSnapshot)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pWal
    - pSnapshot
    argTypes:
    - Wal*
    - sqlite3_snapshot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62149
      start: 62147
    functionDepth: 0
    functionLinenumber: 62147
    functionLinenumberEnd: 62149
    functionName: sqlite3WalSnapshotOpen
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WalSnapshotOpen(Wal *pWal, sqlite3_snapshot *pSnapshot)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - sqlite3_snapshot*
    - sqlite3_snapshot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62166
      start: 62155
    functionDepth: 0
    functionLinenumber: 62155
    functionLinenumberEnd: 62166
    functionName: sqlite3_snapshot_cmp
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_snapshot_cmp(sqlite3_snapshot *p1, sqlite3_snapshot
      *p2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: walLockShared
      Src: /src/nss/lib/sqlite/sqlite3.c:62181,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:62184,1
    - Dst: walCkptInfo
      Src: /src/nss/lib/sqlite/sqlite3.c:62185,1
    - Dst: walUnlockShared
      Src: /src/nss/lib/sqlite/sqlite3.c:62188,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - pWal
    - pSnapshot
    argTypes:
    - Wal*
    - sqlite3_snapshot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62192
      start: 62179
    functionDepth: 12
    functionLinenumber: 62179
    functionLinenumberEnd: 62192
    functionName: sqlite3WalSnapshotCheck
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - walCkptInfo
    - walLockShared
    - memcmp
    - walUnlockShared
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WalSnapshotCheck(Wal *pWal, sqlite3_snapshot
      *pSnapshot)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:62199,1
    - Dst: walUnlockShared
      Src: /src/nss/lib/sqlite/sqlite3.c:62200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pWal
    argTypes:
    - Wal*
    assertStmts:
    - condition: ( pWal )
      pos:
        line_end: 62198
        line_start: 62198
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 62201
      start: 62198
    functionDepth: 12
    functionLinenumber: 62198
    functionLinenumberEnd: 62201
    functionName: sqlite3WalSnapshotUnlock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - walUnlockShared
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WalSnapshotUnlock(Wal *pWal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:62213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - pWal
    argTypes:
    - Wal*
    assertStmts:
    - condition: ( pWal==0 || pWal->readLock>=0 )
      pos:
        line_end: 62212
        line_start: 62212
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 62215
      start: 62212
    functionDepth: 0
    functionLinenumber: 62212
    functionLinenumberEnd: 62215
    functionName: sqlite3WalFramesize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WalFramesize(Wal *pWal)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62222
      start: 62220
    functionDepth: 0
    functionLinenumber: 62220
    functionLinenumberEnd: 62222
    functionName: sqlite3_file *sqlite3WalFile(Wal *pWal)
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3_file *sqlite3WalFile(Wal *pWal)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pBt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62469
      start: 62468
    functionDepth: 0
    functionLinenumber: 62468
    functionLinenumberEnd: 62469
    functionName: MX_CELL_SIZE
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MX_CELL_SIZE(pBt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pBt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62476
      start: 62475
    functionDepth: 0
    functionLinenumber: 62475
    functionLinenumberEnd: 62476
    functionName: MX_CELL
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MX_CELL(pBt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pBt
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62832
      start: 62831
    functionDepth: 0
    functionLinenumber: 62831
    functionLinenumberEnd: 62832
    functionName: PENDING_BYTE_PAGE
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PENDING_BYTE_PAGE(pBt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pBt
    - ','
    - pgno
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62849
      start: 62848
    functionDepth: 0
    functionLinenumber: 62848
    functionLinenumberEnd: 62849
    functionName: PTRMAP_PAGENO
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTRMAP_PAGENO(pBt, pgno)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pgptrmap
    - ','
    - pgno
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62850
      start: 62849
    functionDepth: 0
    functionLinenumber: 62849
    functionLinenumberEnd: 62850
    functionName: PTRMAP_PTROFFSET
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTRMAP_PTROFFSET(pgptrmap, pgno)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pBt
    - ','
    - pgno
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62851
      start: 62850
    functionDepth: 0
    functionLinenumber: 62850
    functionLinenumberEnd: 62851
    functionName: PTRMAP_ISPAGE
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTRMAP_ISPAGE(pBt, pgno)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62895
      start: 62892
    functionDepth: 0
    functionLinenumber: 62892
    functionLinenumberEnd: 62895
    functionName: btreeIntegrity
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: btreeIntegrity(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62940
      start: 62939
    functionDepth: 0
    functionLinenumber: 62939
    functionLinenumberEnd: 62940
    functionName: get2byte
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get2byte(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62941
      start: 62940
    functionDepth: 0
    functionLinenumber: 62940
    functionLinenumberEnd: 62941
    functionName: put2byte
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: put2byte(p,v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62951
      start: 62950
    functionDepth: 0
    functionLinenumber: 62950
    functionLinenumberEnd: 62951
    functionName: get2byteAligned
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get2byteAligned(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62953
      start: 62952
    functionDepth: 0
    functionLinenumber: 62952
    functionLinenumberEnd: 62953
    functionName: get2byteAligned
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get2byteAligned(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62955
      start: 62954
    functionDepth: 0
    functionLinenumber: 62954
    functionLinenumberEnd: 62955
    functionName: get2byteAligned
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get2byteAligned(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62957
      start: 62956
    functionDepth: 0
    functionLinenumber: 62956
    functionLinenumberEnd: 62957
    functionName: get2byteAligned
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get2byteAligned(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:62970,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:62971,1
    - Dst: sqlite3_mutex_notheld
      Src: /src/nss/lib/sqlite/sqlite3.c:62971,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:62972,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:62972,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:62974,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - Btree*
    assertStmts:
    - condition: ( p->locked==0 )
      pos:
        line_end: 62969
        line_start: 62969
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3_mutex_notheld(p->pBt->mutex) )
      pos:
        line_end: 62970
        line_start: 62970
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3_mutex_held(p->db->mutex) )
      pos:
        line_end: 62971
        line_start: 62971
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 62977
      start: 62969
    functionDepth: 1
    functionLinenumber: 62969
    functionLinenumberEnd: 62977
    functionName: lockBtreeMutex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_mutex_held
    - sqlite3_mutex_notheld
    - sqlite3_mutex_enter
    linkageType: ''
    returnType: void
    signature: void lockBtreeMutex(Btree *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:62985,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:62986,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:62986,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:62987,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:62987,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:62988,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:62990,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - Btree*
    assertStmts:
    - condition: ( p->locked==1 )
      pos:
        line_end: 62984
        line_start: 62984
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3_mutex_held(pBt->mutex) )
      pos:
        line_end: 62985
        line_start: 62985
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3_mutex_held(p->db->mutex) )
      pos:
        line_end: 62986
        line_start: 62986
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->db==pBt->db )
      pos:
        line_end: 62987
        line_start: 62987
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 62992
      start: 62983
    functionDepth: 1
    functionLinenumber: 62983
    functionLinenumberEnd: 62992
    functionName: SQLITE_NOINLINE::unlockBtreeMutex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_mutex_held
    - sqlite3_mutex_leave
    linkageType: ''
    returnType: void
    signature: void SQLITE_NOINLINE unlockBtreeMutex(Btree *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63018,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63019,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63020,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63021,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63022,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63025,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63026,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63029,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:63029,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63033,1
    - Dst: btreeLockCarefully
      Src: /src/nss/lib/sqlite/sqlite3.c:63038,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 16
    argCount: 1
    argNames:
    - p
    argTypes:
    - Btree*
    assertStmts:
    - condition: ( p->pNext==0 || p->pNext->pBt>p->pBt )
      pos:
        line_end: 63017
        line_start: 63017
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->pNext==0 || p->pNext->db==p->db )
      pos:
        line_end: 63019
        line_start: 63019
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->sharable || (p->pNext==0 && p->pPrev==0) )
      pos:
        line_end: 63021
        line_start: 63021
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->pPrev==0 || p->pPrev->pBt<p->pBt )
      pos:
        line_end: 63018
        line_start: 63018
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->pPrev==0 || p->pPrev->db==p->db )
      pos:
        line_end: 63020
        line_start: 63020
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !p->locked || p->wantToLock>0 )
      pos:
        line_end: 63024
        line_start: 63024
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->sharable || p->wantToLock==0 )
      pos:
        line_end: 63025
        line_start: 63025
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3_mutex_held(p->db->mutex) )
      pos:
        line_end: 63028
        line_start: 63028
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (p->locked==0 && p->sharable) || p->pBt->db==p->db )
      pos:
        line_end: 63032
        line_start: 63032
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 63039
      start: 63013
    functionDepth: 1
    functionLinenumber: 63013
    functionLinenumberEnd: 63039
    functionName: sqlite3BtreeEnter
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_mutex_held
    - btreeLockCarefully
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeEnter(Btree *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_try
      Src: /src/nss/lib/sqlite/sqlite3.c:63054,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63066,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63067,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63068,1
    - Dst: SQLITE_NOINLINE::unlockBtreeMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:63070,1
    - Dst: lockBtreeMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:63073,1
    - Dst: lockBtreeMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:63076,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - p
    argTypes:
    - Btree*
    assertStmts:
    - condition: ( pLater->pNext==0 || pLater->pNext->pBt>pLater->pBt )
      pos:
        line_end: 63066
        line_start: 63066
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !pLater->locked || pLater->wantToLock>0 )
      pos:
        line_end: 63067
        line_start: 63067
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pLater->sharable )
      pos:
        line_end: 63065
        line_start: 63065
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 63079
      start: 63047
    functionDepth: 2
    functionLinenumber: 63047
    functionLinenumberEnd: 63079
    functionName: SQLITE_NOINLINE::btreeLockCarefully
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - SQLITE_NOINLINE::unlockBtreeMutex
    - sqlite3_mutex_try
    - lockBtreeMutex
    linkageType: ''
    returnType: void
    signature: void SQLITE_NOINLINE btreeLockCarefully(Btree *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63086,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:63086,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63088,1
    - Dst: unlockBtreeMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:63091,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - Btree*
    assertStmts:
    - condition: ( sqlite3_mutex_held(p->db->mutex) )
      pos:
        line_end: 63085
        line_start: 63085
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->wantToLock>0 )
      pos:
        line_end: 63087
        line_start: 63087
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 63094
      start: 63085
    functionDepth: 1
    functionLinenumber: 63085
    functionLinenumberEnd: 63094
    functionName: sqlite3BtreeLeave
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_mutex_held
    - unlockBtreeMutex
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeLeave(Btree *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63104,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63105,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63106,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:63106,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63107,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:63107,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - Btree*
    assertStmts:
    - condition: ( p->sharable==0 || p->locked==0 || p->wantToLock>0 )
      pos:
        line_end: 63103
        line_start: 63103
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->sharable==0 || p->locked==0 || sqlite3_mutex_held(p->pBt->mutex)
        )
      pos:
        line_end: 63105
        line_start: 63105
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->sharable==0 || p->locked==0 || p->db==p->pBt->db )
      pos:
        line_end: 63104
        line_start: 63104
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->sharable==0 || p->locked==0 || sqlite3_mutex_held(p->db->mutex)
        )
      pos:
        line_end: 63106
        line_start: 63106
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 63110
      start: 63103
    functionDepth: 1
    functionLinenumber: 63103
    functionLinenumberEnd: 63110
    functionName: sqlite3BtreeHoldsMutex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_mutex_held
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeHoldsMutex(Btree *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63132,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:63132,1
    - Dst: sqlite3BtreeEnter
      Src: /src/nss/lib/sqlite/sqlite3.c:63136,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts:
    - condition: ( sqlite3_mutex_held(db->mutex) )
      pos:
        line_end: 63131
        line_start: 63131
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 63141
      start: 63128
    functionDepth: 1
    functionLinenumber: 63128
    functionLinenumberEnd: 63141
    functionName: SQLITE_NOINLINE::btreeEnterAll
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3BtreeEnter
    - sqlite3_mutex_held
    linkageType: ''
    returnType: void
    signature: void SQLITE_NOINLINE btreeEnterAll(sqlite3 *db)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: btreeEnterAll
      Src: /src/nss/lib/sqlite/sqlite3.c:63143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63144
      start: 63142
    functionDepth: 0
    functionLinenumber: 63142
    functionLinenumberEnd: 63144
    functionName: sqlite3BtreeEnterAll
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - btreeEnterAll
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeEnterAll(sqlite3 *db)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63148,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:63148,1
    - Dst: sqlite3BtreeLeave
      Src: /src/nss/lib/sqlite/sqlite3.c:63151,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts:
    - condition: ( sqlite3_mutex_held(db->mutex) )
      pos:
        line_end: 63147
        line_start: 63147
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 63153
      start: 63145
    functionDepth: 2
    functionLinenumber: 63145
    functionLinenumberEnd: 63153
    functionName: SQLITE_NOINLINE::btreeLeaveAll
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_mutex_held
    - sqlite3BtreeLeave
    linkageType: ''
    returnType: void
    signature: void SQLITE_NOINLINE btreeLeaveAll(sqlite3 *db)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: btreeLeaveAll
      Src: /src/nss/lib/sqlite/sqlite3.c:63155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63156
      start: 63154
    functionDepth: 0
    functionLinenumber: 63154
    functionLinenumberEnd: 63156
    functionName: sqlite3BtreeLeaveAll
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - btreeLeaveAll
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeLeaveAll(sqlite3 *db)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:63167,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:63174,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63179
      start: 63165
    functionDepth: 1
    functionLinenumber: 63165
    functionLinenumberEnd: 63179
    functionName: sqlite3BtreeHoldsAllMutexes
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeHoldsAllMutexes(sqlite3 *db)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63196,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:63197,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63198,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:63199,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63202,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - db
    - iDb
    - pSchema
    argTypes:
    - sqlite3*
    - int
    - Schema*
    assertStmts:
    - condition: ( db!=0 )
      pos:
        line_end: 63195
        line_start: 63195
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iDb>=0 && iDb<db->nDb )
      pos:
        line_end: 63197
        line_start: 63197
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p!=0 )
      pos:
        line_end: 63201
        line_start: 63201
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 63204
      start: 63194
    functionDepth: 1
    functionLinenumber: 63194
    functionLinenumberEnd: 63204
    functionName: sqlite3SchemaMutexHeld
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_mutex_held
    - sqlite3SchemaToIndex
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3SchemaMutexHeld(sqlite3 *db, int iDb, Schema
      *pSchema)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - Btree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63220
      start: 63218
    functionDepth: 0
    functionLinenumber: 63218
    functionLinenumberEnd: 63220
    functionName: sqlite3BtreeEnter
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeEnter(Btree *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63229
      start: 63221
    functionDepth: 0
    functionLinenumber: 63221
    functionLinenumberEnd: 63229
    functionName: sqlite3BtreeEnterAll
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeEnterAll(sqlite3 *db)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeEnter
      Src: /src/nss/lib/sqlite/sqlite3.c:63241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pCur
    argTypes:
    - BtCursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63242
      start: 63240
    functionDepth: 1
    functionLinenumber: 63240
    functionLinenumberEnd: 63242
    functionName: sqlite3BtreeEnterCursor
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeEnter
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeEnterCursor(BtCursor *pCur)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeLeave
      Src: /src/nss/lib/sqlite/sqlite3.c:63245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pCur
    argTypes:
    - BtCursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63246
      start: 63244
    functionDepth: 2
    functionLinenumber: 63244
    functionLinenumberEnd: 63246
    functionName: sqlite3BtreeLeaveCursor
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeLeave
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeLeaveCursor(BtCursor *pCur)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63284
      start: 63283
    functionDepth: 0
    functionLinenumber: 63283
    functionLinenumberEnd: 63284
    functionName: TRACE
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 109
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRACE(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63298
      start: 63297
    functionDepth: 0
    functionLinenumber: 63297
    functionLinenumberEnd: 63298
    functionName: get2byteNotZero
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get2byteNotZero(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63314
      start: 63313
    functionDepth: 0
    functionLinenumber: 63313
    functionLinenumberEnd: 63314
    functionName: IfNotOmitAV
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IfNotOmitAV(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63316
      start: 63315
    functionDepth: 0
    functionLinenumber: 63315
    functionLinenumberEnd: 63316
    functionName: IfNotOmitAV
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IfNotOmitAV(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - enable
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63345
      start: 63342
    functionDepth: 0
    functionLinenumber: 63342
    functionLinenumberEnd: 63345
    functionName: sqlite3_enable_shared_cache
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_enable_shared_cache(int enable)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63361
      start: 63360
    functionDepth: 0
    functionLinenumber: 63360
    functionLinenumberEnd: 63361
    functionName: querySharedCacheTableLock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: querySharedCacheTableLock(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63362
      start: 63361
    functionDepth: 0
    functionLinenumber: 63361
    functionLinenumberEnd: 63362
    functionName: setSharedCacheTableLock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: setSharedCacheTableLock(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63365
      start: 63364
    functionDepth: 0
    functionLinenumber: 63364
    functionLinenumberEnd: 63365
    functionName: hasSharedCacheTableLock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hasSharedCacheTableLock(a,b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63366
      start: 63365
    functionDepth: 0
    functionLinenumber: 63365
    functionLinenumberEnd: 63366
    functionName: hasReadConflicts
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: hasReadConflicts(a, b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BeginBenignMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:63380,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:63381,1
    - Dst: sqlite3PagerFilename
      Src: /src/nss/lib/sqlite/sqlite3.c:63382,1
    - Dst: sqlite3EndBenignMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:63384,1
    - Dst: sqlite3ReportError
      Src: /src/nss/lib/sqlite/sqlite3.c:63386,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:63388,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - lineno
    - p
    argTypes:
    - int
    - MemPage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63390
      start: 63378
    functionDepth: 10
    functionLinenumber: 63378
    functionLinenumberEnd: 63390
    functionName: corruptPageError
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PagerFilename
    - sqlite3EndBenignMalloc
    - sqlite3BeginBenignMalloc
    - sqlite3_mprintf
    - sqlite3ReportError
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int corruptPageError(int lineno, MemPage *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pMemPage
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63392
      start: 63391
    functionDepth: 0
    functionLinenumber: 63391
    functionLinenumberEnd: 63392
    functionName: SQLITE_CORRUPT_PAGE
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQLITE_CORRUPT_PAGE(pMemPage)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pMemPage
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63394
      start: 63393
    functionDepth: 0
    functionLinenumber: 63393
    functionLinenumberEnd: 63394
    functionName: SQLITE_CORRUPT_PAGE
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQLITE_CORRUPT_PAGE(pMemPage)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqliteHashFirst
      Src: /src/nss/lib/sqlite/sqlite3.c:63456,1
    - Dst: sqliteHashNext
      Src: /src/nss/lib/sqlite/sqlite3.c:63456,1
    - Dst: sqliteHashData
      Src: /src/nss/lib/sqlite/sqlite3.c:63457,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 25
    argCount: 4
    argNames:
    - pBtree
    - iRoot
    - isIndex
    - eLockType
    argTypes:
    - Btree*
    - Pgno
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63486
      start: 63421
    functionDepth: 1
    functionLinenumber: 63421
    functionLinenumberEnd: 63486
    functionName: hasSharedCacheTableLock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqliteHashNext
    - sqliteHashData
    - sqliteHashFirst
    linkageType: ''
    returnType: int
    signature: "int hasSharedCacheTableLock(\n  Btree *pBtree,         /* Handle that
      must hold lock */\n  Pgno iRoot,            /* Root page of b-tree */\n  int
      isIndex,           /* True if iRoot is the root of an index b-tree */\n  int
      eLockType          /* Required lock type (READ_LOCK or WRITE_LOCK) */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - pBtree
    - iRoot
    argTypes:
    - Btree*
    - Pgno
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63519
      start: 63508
    functionDepth: 0
    functionLinenumber: 63508
    functionLinenumberEnd: 63519
    functionName: hasReadConflicts
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hasReadConflicts(Btree *pBtree, Pgno iRoot)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63532,1
    - Dst: sqlite3BtreeHoldsMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:63532,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63533,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63534,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63535,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63541,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63542,1
    - Dst: sqlite3ConnectionBlocked
      Src: /src/nss/lib/sqlite/sqlite3.c:63553,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63567,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63568,1
    - Dst: sqlite3ConnectionBlocked
      Src: /src/nss/lib/sqlite/sqlite3.c:63570,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63572,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 27
    argCount: 3
    argNames:
    - p
    - iTab
    - eLock
    argTypes:
    - Btree*
    - Pgno
    - u8
    assertStmts:
    - condition: ( sqlite3BtreeHoldsMutex(p) )
      pos:
        line_end: 63531
        line_start: 63531
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->db!=0 )
      pos:
        line_end: 63533
        line_start: 63533
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !(p->db->flags&SQLITE_ReadUncommit)||eLock==WRITE_LOCK||iTab==1
        )
      pos:
        line_end: 63534
        line_start: 63534
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( eLock==READ_LOCK || eLock==WRITE_LOCK )
      pos:
        line_end: 63532
        line_start: 63532
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( eLock==READ_LOCK || (p==pBt->pWriter && p->inTrans==TRANS_WRITE)
        )
      pos:
        line_end: 63540
        line_start: 63540
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( eLock==READ_LOCK || pBt->inTransaction==TRANS_WRITE )
      pos:
        line_end: 63541
        line_start: 63541
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIter->eLock==READ_LOCK || pIter->eLock==WRITE_LOCK )
      pos:
        line_end: 63566
        line_start: 63566
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( eLock==READ_LOCK || pIter->pBtree==p || pIter->eLock==READ_LOCK)
      pos:
        line_end: 63567
        line_start: 63567
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p==pBt->pWriter )
      pos:
        line_end: 63571
        line_start: 63571
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 63579
      start: 63528
    functionDepth: 1
    functionLinenumber: 63528
    functionLinenumberEnd: 63579
    functionName: querySharedCacheTableLock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3ConnectionBlocked
    - sqlite3BtreeHoldsMutex
    linkageType: ''
    returnType: int
    signature: int querySharedCacheTableLock(Btree *p, Pgno iTab, u8 eLock)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63605,1
    - Dst: sqlite3BtreeHoldsMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:63605,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63606,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63607,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63613,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63617,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63618,1
    - Dst: querySharedCacheTableLock
      Src: /src/nss/lib/sqlite/sqlite3.c:63618,1
    - Dst: sqlite3MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:63632,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63646,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - p
    - iTable
    - eLock
    argTypes:
    - Btree*
    - Pgno
    - u8
    assertStmts:
    - condition: ( sqlite3BtreeHoldsMutex(p) )
      pos:
        line_end: 63604
        line_start: 63604
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( 0==(p->db->flags&SQLITE_ReadUncommit) || eLock==WRITE_LOCK )
      pos:
        line_end: 63612
        line_start: 63612
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( eLock==READ_LOCK || eLock==WRITE_LOCK )
      pos:
        line_end: 63605
        line_start: 63605
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->db!=0 )
      pos:
        line_end: 63606
        line_start: 63606
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->sharable )
      pos:
        line_end: 63616
        line_start: 63616
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( SQLITE_OK==querySharedCacheTableLock(p, iTable, eLock) )
      pos:
        line_end: 63617
        line_start: 63617
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( WRITE_LOCK>READ_LOCK )
      pos:
        line_end: 63645
        line_start: 63645
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 63652
      start: 63600
    functionDepth: 6
    functionLinenumber: 63600
    functionLinenumberEnd: 63652
    functionName: setSharedCacheTableLock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3MallocZero
    - sqlite3BtreeHoldsMutex
    - querySharedCacheTableLock
    linkageType: ''
    returnType: int
    signature: int setSharedCacheTableLock(Btree *p, Pgno iTable, u8 eLock)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63668,1
    - Dst: sqlite3BtreeHoldsMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:63668,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63669,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63670,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63674,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63675,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63678,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:63680,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63687,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 1
    argNames:
    - p
    argTypes:
    - Btree*
    assertStmts:
    - condition: ( sqlite3BtreeHoldsMutex(p) )
      pos:
        line_end: 63667
        line_start: 63667
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->inTrans>0 )
      pos:
        line_end: 63669
        line_start: 63669
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->sharable || 0==*ppIter )
      pos:
        line_end: 63668
        line_start: 63668
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pBt->btsFlags & BTS_EXCLUSIVE)==0 || pBt->pWriter==pLock->pBtree
        )
      pos:
        line_end: 63673
        line_start: 63673
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pLock->pBtree->inTrans>=pLock->eLock )
      pos:
        line_end: 63674
        line_start: 63674
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pLock->iTable!=1 || pLock==&p->lock )
      pos:
        line_end: 63677
        line_start: 63677
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pBt->btsFlags & BTS_PENDING)==0 || pBt->pWriter )
      pos:
        line_end: 63686
        line_start: 63686
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 63703
      start: 63664
    functionDepth: 3
    functionLinenumber: 63664
    functionLinenumberEnd: 63703
    functionName: clearAllSharedCacheTableLocks
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_free
    - sqlite3BtreeHoldsMutex
    linkageType: ''
    returnType: void
    signature: void clearAllSharedCacheTableLocks(Btree *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63715,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - Btree*
    assertStmts:
    - condition: ( pLock->eLock==READ_LOCK || pLock->pBtree==p )
      pos:
        line_end: 63714
        line_start: 63714
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 63719
      start: 63708
    functionDepth: 0
    functionLinenumber: 63708
    functionLinenumberEnd: 63719
    functionName: downgradeAllSharedCacheTableLocks
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void downgradeAllSharedCacheTableLocks(Btree *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:63734,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - BtCursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63735
      start: 63733
    functionDepth: 1
    functionLinenumber: 63733
    functionLinenumberEnd: 63735
    functionName: cursorHoldsMutex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    linkageType: ''
    returnType: int
    signature: int cursorHoldsMutex(BtCursor *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63746,1
    - Dst: cursorHoldsMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:63746,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - BtCursor*
    assertStmts:
    - condition: ( cursorHoldsMutex(p) )
      pos:
        line_end: 63745
        line_start: 63745
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 63748
      start: 63745
    functionDepth: 2
    functionLinenumber: 63745
    functionLinenumberEnd: 63748
    functionName: cursorOwnsBtShared
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - cursorHoldsMutex
    linkageType: ''
    returnType: int
    signature: int cursorOwnsBtShared(BtCursor *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pCur
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63756
      start: 63755
    functionDepth: 0
    functionLinenumber: 63755
    functionLinenumberEnd: 63756
    functionName: invalidateOverflowCache
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: invalidateOverflowCache(pCur)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63763,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:63763,1
    - Dst: invalidateOverflowCache
      Src: /src/nss/lib/sqlite/sqlite3.c:63765,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pBt
    argTypes:
    - BtShared*
    assertStmts:
    - condition: ( sqlite3_mutex_held(pBt->mutex) )
      pos:
        line_end: 63762
        line_start: 63762
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 63767
      start: 63761
    functionDepth: 1
    functionLinenumber: 63761
    functionLinenumberEnd: 63767
    functionName: invalidateAllOverflowCache
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_mutex_held
    - invalidateOverflowCache
    linkageType: ''
    returnType: void
    signature: void invalidateAllOverflowCache(BtShared *pBt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63791,1
    - Dst: sqlite3BtreeHoldsMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:63791,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 4
    argNames:
    - pBtree
    - pgnoRoot
    - iRow
    - isClearTable
    argTypes:
    - Btree*
    - Pgno
    - i64
    - int
    assertStmts:
    - condition: ( sqlite3BtreeHoldsMutex(pBtree) )
      pos:
        line_end: 63790
        line_start: 63790
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 63801
      start: 63783
    functionDepth: 1
    functionLinenumber: 63783
    functionLinenumberEnd: 63801
    functionName: invalidateIncrblobCursors
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3BtreeHoldsMutex
    linkageType: ''
    returnType: void
    signature: "void invalidateIncrblobCursors(\n  Btree *pBtree,          /* The
      database file to check */\n  Pgno pgnoRoot,          /* The table that might
      be changing */\n  i64 iRow,               /* The rowid that might be changing
      */\n  int isClearTable        /* True if all rows are being deleted */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63846,1
    - Dst: sqlite3BitvecCreate
      Src: /src/nss/lib/sqlite/sqlite3.c:63847,1
    - Dst: sqlite3BitvecSize
      Src: /src/nss/lib/sqlite/sqlite3.c:63852,1
    - Dst: sqlite3BitvecSet
      Src: /src/nss/lib/sqlite/sqlite3.c:63853,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - pBt
    - pgno
    argTypes:
    - BtShared*
    - Pgno
    assertStmts:
    - condition: ( pgno<=pBt->nPage )
      pos:
        line_end: 63845
        line_start: 63845
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 63856
      start: 63843
    functionDepth: 8
    functionLinenumber: 63843
    functionLinenumberEnd: 63856
    functionName: btreeSetHasContent
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3BitvecSet
    - sqlite3BitvecCreate
    - sqlite3BitvecSize
    linkageType: ''
    returnType: int
    signature: int btreeSetHasContent(BtShared *pBt, Pgno pgno)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BitvecSize
      Src: /src/nss/lib/sqlite/sqlite3.c:63867,1
    - Dst: sqlite3BitvecTest
      Src: /src/nss/lib/sqlite/sqlite3.c:63867,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - pBt
    - pgno
    argTypes:
    - BtShared*
    - Pgno
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63868
      start: 63865
    functionDepth: 3
    functionLinenumber: 63865
    functionLinenumberEnd: 63868
    functionName: btreeGetHasContent
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BitvecTest
    - sqlite3BitvecSize
    linkageType: ''
    returnType: int
    signature: int btreeGetHasContent(BtShared *pBt, Pgno pgno)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BitvecDestroy
      Src: /src/nss/lib/sqlite/sqlite3.c:63875,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pBt
    argTypes:
    - BtShared*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63877
      start: 63874
    functionDepth: 4
    functionLinenumber: 63874
    functionLinenumberEnd: 63877
    functionName: btreeClearHasContent
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BitvecDestroy
    linkageType: ''
    returnType: void
    signature: void btreeClearHasContent(BtShared *pBt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: releasePageNotNull
      Src: /src/nss/lib/sqlite/sqlite3.c:63886,1
    - Dst: releasePageNotNull
      Src: /src/nss/lib/sqlite/sqlite3.c:63888,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - pCur
    argTypes:
    - BtCursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63891
      start: 63882
    functionDepth: 1
    functionLinenumber: 63882
    functionLinenumberEnd: 63891
    functionName: btreeReleaseAllCursorPages
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - releasePageNotNull
    linkageType: ''
    returnType: void
    signature: void btreeReleaseAllCursorPages(BtCursor *pCur)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63908,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63909,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63910,1
    - Dst: cursorHoldsMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:63910,1
    - Dst: sqlite3BtreeIntegerKey
      Src: /src/nss/lib/sqlite/sqlite3.c:63914,1
    - Dst: sqlite3BtreePayloadSize
      Src: /src/nss/lib/sqlite/sqlite3.c:63923,1
    - Dst: sqlite3Malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:63924,1
    - Dst: sqlite3BtreePayload
      Src: /src/nss/lib/sqlite/sqlite3.c:63926,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:63928,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:63931,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63937,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - pCur
    argTypes:
    - BtCursor*
    assertStmts:
    - condition: ( CURSOR_VALID==pCur->eState )
      pos:
        line_end: 63907
        line_start: 63907
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( 0==pCur->pKey )
      pos:
        line_end: 63908
        line_start: 63908
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( cursorHoldsMutex(pCur) )
      pos:
        line_end: 63909
        line_start: 63909
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !pCur->curIntKey || !pCur->pKey )
      pos:
        line_end: 63936
        line_start: 63936
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 63939
      start: 63906
    functionDepth: 5
    functionLinenumber: 63906
    functionLinenumberEnd: 63939
    functionName: saveCursorKey
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreePayloadSize
    - sqlite3BtreePayload
    - cursorHoldsMutex
    - sqlite3Malloc
    - assert
    - memset
    - sqlite3BtreeIntegerKey
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int saveCursorKey(BtCursor *pCur)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63951,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63952,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63953,1
    - Dst: cursorHoldsMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:63953,1
    - Dst: saveCursorKey
      Src: /src/nss/lib/sqlite/sqlite3.c:63961,1
    - Dst: btreeReleaseAllCursorPages
      Src: /src/nss/lib/sqlite/sqlite3.c:63963,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - pCur
    argTypes:
    - BtCursor*
    assertStmts:
    - condition: ( CURSOR_VALID==pCur->eState || CURSOR_SKIPNEXT==pCur->eState )
      pos:
        line_end: 63950
        line_start: 63950
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( cursorHoldsMutex(pCur) )
      pos:
        line_end: 63952
        line_start: 63952
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( 0==pCur->pKey )
      pos:
        line_end: 63951
        line_start: 63951
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 63969
      start: 63948
    functionDepth: 6
    functionLinenumber: 63948
    functionLinenumberEnd: 63969
    functionName: saveCursorPosition
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - saveCursorKey
    - btreeReleaseAllCursorPages
    - cursorHoldsMutex
    linkageType: ''
    returnType: int
    signature: int saveCursorPosition(BtCursor *pCur)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63997,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:63997,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:63998,1
    - Dst: saveCursorsOnList
      Src: /src/nss/lib/sqlite/sqlite3.c:64002,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 3
    argNames:
    - pBt
    - iRoot
    - pExcept
    argTypes:
    - BtShared*
    - Pgno
    - BtCursor*
    assertStmts:
    - condition: ( sqlite3_mutex_held(pBt->mutex) )
      pos:
        line_end: 63996
        line_start: 63996
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pExcept==0 || pExcept->pBt==pBt )
      pos:
        line_end: 63997
        line_start: 63997
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 64005
      start: 63995
    functionDepth: 1
    functionLinenumber: 63995
    functionLinenumberEnd: 64005
    functionName: saveAllCursors
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - saveCursorsOnList
    - sqlite3_mutex_held
    linkageType: ''
    returnType: int
    signature: int saveAllCursors(BtShared *pBt, Pgno iRoot, BtCursor *pExcept)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: saveCursorPosition
      Src: /src/nss/lib/sqlite/sqlite3.c:64020,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:64025,1
    - Dst: btreeReleaseAllCursorPages
      Src: /src/nss/lib/sqlite/sqlite3.c:64026,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - p
    - iRoot
    - pExcept
    argTypes:
    - BtCursor*
    - Pgno
    - BtCursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64032
      start: 64012
    functionDepth: 7
    functionLinenumber: 64012
    functionLinenumberEnd: 64032
    functionName: SQLITE_NOINLINE::saveCursorsOnList
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - btreeReleaseAllCursorPages
    - saveCursorPosition
    - testcase
    linkageType: ''
    returnType: int
    signature: "int SQLITE_NOINLINE saveCursorsOnList(\n  BtCursor *p,         /*
      The first cursor that needs saving */\n  Pgno iRoot,          /* Only save cursor
      with this iRoot. Save all if zero */\n  BtCursor *pExcept    /* Do not save
      this cursor */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64038,1
    - Dst: cursorHoldsMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:64038,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:64039,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pCur
    argTypes:
    - BtCursor*
    assertStmts:
    - condition: ( cursorHoldsMutex(pCur) )
      pos:
        line_end: 64037
        line_start: 64037
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 64042
      start: 64037
    functionDepth: 3
    functionLinenumber: 64037
    functionLinenumberEnd: 64042
    functionName: sqlite3BtreeClearCursor
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_free
    - cursorHoldsMutex
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeClearCursor(BtCursor *pCur)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64061,1
    - Dst: sqlite3VdbeAllocUnpackedRecord
      Src: /src/nss/lib/sqlite/sqlite3.c:64062,1
    - Dst: sqlite3VdbeRecordUnpack
      Src: /src/nss/lib/sqlite/sqlite3.c:64064,1
    - Dst: sqlite3BtreeMovetoUnpacked
      Src: /src/nss/lib/sqlite/sqlite3.c:64072,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:64075,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 5
    argNames:
    - pCur
    - pKey
    - nKey
    - bias
    - pRes
    argTypes:
    - BtCursor*
    - void*
    - i64
    - int
    - int*
    assertStmts:
    - condition: ( nKey==(i64)(int)nKey )
      pos:
        line_end: 64060
        line_start: 64060
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 64078
      start: 64049
    functionDepth: 6
    functionLinenumber: 64049
    functionLinenumberEnd: 64078
    functionName: btreeMoveto
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeAllocUnpackedRecord
    - sqlite3DbFree
    - sqlite3BtreeMovetoUnpacked
    - assert
    - sqlite3VdbeRecordUnpack
    linkageType: ''
    returnType: int
    signature: "int btreeMoveto(\n  BtCursor *pCur,     /* Cursor open on the btree
      to be searched */\n  const void *pKey,   /* Packed key if the btree is an index
      */\n  i64 nKey,           /* Integer key for tables.  Size of pKey for indices
      */\n  int bias,           /* Bias search to the high end */\n  int *pRes           /*
      Write search results here */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64090,1
    - Dst: cursorOwnsBtShared
      Src: /src/nss/lib/sqlite/sqlite3.c:64090,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64091,1
    - Dst: sqlite3FaultSim
      Src: /src/nss/lib/sqlite/sqlite3.c:64096,1
    - Dst: btreeMoveto
      Src: /src/nss/lib/sqlite/sqlite3.c:64099,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:64102,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64104,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - pCur
    argTypes:
    - BtCursor*
    assertStmts:
    - condition: ( cursorOwnsBtShared(pCur) )
      pos:
        line_end: 64089
        line_start: 64089
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->eState>=CURSOR_REQUIRESEEK )
      pos:
        line_end: 64090
        line_start: 64090
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->eState==CURSOR_VALID || pCur->eState==CURSOR_INVALID )
      pos:
        line_end: 64103
        line_start: 64103
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 64111
      start: 64087
    functionDepth: 7
    functionLinenumber: 64087
    functionLinenumberEnd: 64111
    functionName: btreeRestoreCursorPosition
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - btreeMoveto
    - sqlite3FaultSim
    - assert
    - cursorOwnsBtShared
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int btreeRestoreCursorPosition(BtCursor *pCur)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64117
      start: 64113
    functionDepth: 0
    functionLinenumber: 64113
    functionLinenumberEnd: 64117
    functionName: restoreCursorPosition
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: restoreCursorPosition(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64131,1
    - Dst: EIGHT_BYTE_ALIGNMENT
      Src: /src/nss/lib/sqlite/sqlite3.c:64131,1
    - Dst: sqlite3BtreeFakeValidCursor
      Src: /src/nss/lib/sqlite/sqlite3.c:64132,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64133,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pCur
    argTypes:
    - BtCursor*
    assertStmts:
    - condition: "( EIGHT_BYTE_ALIGNMENT(pCur)\n       || pCur==sqlite3BtreeFakeValidCursor()
        )"
      pos:
        line_end: 64131
        line_start: 64130
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sizeof(pCur->eState)==1 )
      pos:
        line_end: 64133
        line_start: 64133
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( offsetof(BtCursor, eState)==0 )
      pos:
        line_end: 64132
        line_start: 64132
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 64136
      start: 64130
    functionDepth: 1
    functionLinenumber: 64130
    functionLinenumberEnd: 64136
    functionName: sqlite3BtreeCursorHasMoved
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - EIGHT_BYTE_ALIGNMENT
    - sqlite3BtreeFakeValidCursor
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeCursorHasMoved(BtCursor *pCur)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( offsetof(BtCursor, eState)==0 )
      pos:
        line_end: 64144
        line_start: 64144
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 64147
      start: 64143
    functionDepth: 0
    functionLinenumber: 64143
    functionLinenumberEnd: 64147
    functionName: sqlite3BtreeFakeValidCursor
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3BtreeFakeValidCursor(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64165,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64166,1
    - Dst: restoreCursorPosition
      Src: /src/nss/lib/sqlite/sqlite3.c:64167,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - pCur
    - pDifferentRow
    argTypes:
    - BtCursor*
    - int*
    assertStmts:
    - condition: ( pCur!=0 )
      pos:
        line_end: 64164
        line_start: 64164
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->eState!=CURSOR_VALID )
      pos:
        line_end: 64165
        line_start: 64165
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 64178
      start: 64162
    functionDepth: 1
    functionLinenumber: 64162
    functionLinenumberEnd: 64178
    functionName: sqlite3BtreeCursorRestore
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - restoreCursorPosition
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeCursorRestore(BtCursor *pCur, int *pDifferentRow)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - pCur
    - eHintType
    argTypes:
    - BtCursor*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64188
      start: 64186
    functionDepth: 0
    functionLinenumber: 64186
    functionLinenumberEnd: 64188
    functionName: sqlite3BtreeCursorHint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeCursorHint(BtCursor *pCur, int eHintType,
      ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64195,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - pCur
    - x
    argTypes:
    - BtCursor*
    - unsigned
    assertStmts:
    - condition: ( x==BTREE_SEEK_EQ || x==BTREE_BULKLOAD || x==0 )
      pos:
        line_end: 64194
        line_start: 64194
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 64197
      start: 64194
    functionDepth: 0
    functionLinenumber: 64194
    functionLinenumberEnd: 64197
    functionName: sqlite3BtreeCursorHintFlags
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeCursorHintFlags(BtCursor *pCur, unsigned
      x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64213,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:64213,1
    - Dst: PENDING_BYTE_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:64218,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - pBt
    - pgno
    argTypes:
    - BtShared*
    - Pgno
    assertStmts:
    - condition: ( sqlite3_mutex_held(pBt->mutex) )
      pos:
        line_end: 64212
        line_start: 64212
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 64222
      start: 64210
    functionDepth: 1
    functionLinenumber: 64210
    functionLinenumberEnd: 64222
    functionName: ptrmapPageno
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - PENDING_BYTE_PAGE
    - sqlite3_mutex_held
    linkageType: ''
    returnType: Pgno
    signature: Pgno ptrmapPageno(BtShared *pBt, Pgno pgno)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64243,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:64243,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64245,1
    - Dst: PTRMAP_ISPAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:64245,1
    - Dst: PENDING_BYTE_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:64245,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64247,1
    - Dst: PTRMAP_PAGENO
      Src: /src/nss/lib/sqlite/sqlite3.c:64252,1
    - Dst: sqlite3PagerGet
      Src: /src/nss/lib/sqlite/sqlite3.c:64253,1
    - Dst: sqlite3PagerGetExtra
      Src: /src/nss/lib/sqlite/sqlite3.c:64258,1
    - Dst: PTRMAP_PTROFFSET
      Src: /src/nss/lib/sqlite/sqlite3.c:64265,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64270,1
    - Dst: sqlite3PagerGetData
      Src: /src/nss/lib/sqlite/sqlite3.c:64271,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:64273,1
    - Dst: TRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:64274,1
    - Dst: sqlite3PagerWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:64275,1
    - Dst: put4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:64278,1
    - Dst: sqlite3PagerUnref
      Src: /src/nss/lib/sqlite/sqlite3.c:64283,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 5
    argNames:
    - pBt
    - key
    - eType
    - parent
    - pRC
    argTypes:
    - BtShared*
    - Pgno
    - u8
    - Pgno
    - int*
    assertStmts:
    - condition: ( sqlite3_mutex_held(pBt->mutex) )
      pos:
        line_end: 64242
        line_start: 64242
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( 0==PTRMAP_ISPAGE(pBt, PENDING_BYTE_PAGE(pBt)) )
      pos:
        line_end: 64244
        line_start: 64244
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pBt->autoVacuum )
      pos:
        line_end: 64246
        line_start: 64246
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( offset <= (int)pBt->usableSize-5 )
      pos:
        line_end: 64269
        line_start: 64269
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 64284
      start: 64234
    functionDepth: 14
    functionLinenumber: 64234
    functionLinenumberEnd: 64284
    functionName: ptrmapPut
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PagerUnref
    - sqlite3PagerGetData
    - get4byte
    - put4byte
    - PTRMAP_PTROFFSET
    - assert
    - PENDING_BYTE_PAGE
    - sqlite3PagerWrite
    - sqlite3PagerGet
    - sqlite3_mutex_held
    - TRACE
    - sqlite3PagerGetExtra
    - PTRMAP_PAGENO
    - PTRMAP_ISPAGE
    linkageType: ''
    returnType: void
    signature: void ptrmapPut(BtShared *pBt, Pgno key, u8 eType, Pgno parent, int
      *pRC)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64300,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:64300,1
    - Dst: PTRMAP_PAGENO
      Src: /src/nss/lib/sqlite/sqlite3.c:64302,1
    - Dst: sqlite3PagerGet
      Src: /src/nss/lib/sqlite/sqlite3.c:64303,1
    - Dst: sqlite3PagerGetData
      Src: /src/nss/lib/sqlite/sqlite3.c:64307,1
    - Dst: PTRMAP_PTROFFSET
      Src: /src/nss/lib/sqlite/sqlite3.c:64309,1
    - Dst: sqlite3PagerUnref
      Src: /src/nss/lib/sqlite/sqlite3.c:64311,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64314,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64315,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:64317,1
    - Dst: sqlite3PagerUnref
      Src: /src/nss/lib/sqlite/sqlite3.c:64319,1
    - Dst: SQLITE_CORRUPT_PGNO
      Src: /src/nss/lib/sqlite/sqlite3.c:64320,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 4
    argNames:
    - pBt
    - key
    - pEType
    - pPgno
    argTypes:
    - BtShared*
    - Pgno
    - u8*
    - Pgno*
    assertStmts:
    - condition: ( sqlite3_mutex_held(pBt->mutex) )
      pos:
        line_end: 64299
        line_start: 64299
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( offset <= (int)pBt->usableSize-5 )
      pos:
        line_end: 64313
        line_start: 64313
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pEType!=0 )
      pos:
        line_end: 64314
        line_start: 64314
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 64322
      start: 64293
    functionDepth: 6
    functionLinenumber: 64293
    functionLinenumberEnd: 64322
    functionName: ptrmapGet
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PagerUnref
    - sqlite3PagerGetData
    - get4byte
    - PTRMAP_PTROFFSET
    - assert
    - sqlite3PagerGet
    - sqlite3_mutex_held
    - SQLITE_CORRUPT_PGNO
    - PTRMAP_PAGENO
    linkageType: ''
    returnType: int
    signature: int ptrmapGet(BtShared *pBt, Pgno key, u8 *pEType, Pgno *pPgno)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - w
    - ','
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64327
      start: 64326
    functionDepth: 0
    functionLinenumber: 64326
    functionLinenumberEnd: 64327
    functionName: ptrmapGet
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ptrmapGet(w,x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - P
    - ','
    - I
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64342
      start: 64340
    functionDepth: 0
    functionLinenumber: 64340
    functionLinenumberEnd: 64342
    functionName: findCell
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: findCell(P,I)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - P
    - ','
    - I
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64344
      start: 64342
    functionDepth: 0
    functionLinenumber: 64342
    functionLinenumberEnd: 64344
    functionName: findCellPastPtr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: findCellPastPtr(P,I)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:64373,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:64374,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - pPage
    - pCell
    - pInfo
    argTypes:
    - MemPage*
    - u8*
    - CellInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64381
      start: 64352
    functionDepth: 1
    functionLinenumber: 64352
    functionLinenumberEnd: 64381
    functionName: btreeParseCellAdjustSizeForOverflow
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - testcase
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: "SQLITE_NOINLINE btreeParseCellAdjustSizeForOverflow(\n  MemPage *pPage,
      \        /* Page containing the cell */\n  u8 *pCell,              /* Pointer
      to the cell text. */\n  CellInfo *pInfo         /* Fill in this structure */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64402,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:64402,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64403,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64404,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:64406,1
    - Dst: getVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:64408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - pPage
    - pCell
    - pInfo
    argTypes:
    - MemPage*
    - u8*
    - CellInfo*
    assertStmts:
    - condition: ( sqlite3_mutex_held(pPage->pBt->mutex) )
      pos:
        line_end: 64401
        line_start: 64401
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->leaf==0 )
      pos:
        line_end: 64402
        line_start: 64402
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->childPtrSize==4 )
      pos:
        line_end: 64403
        line_start: 64403
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 64413
      start: 64397
    functionDepth: 1
    functionLinenumber: 64397
    functionLinenumberEnd: 64413
    functionName: btreeParseCellPtrNoPayload
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_mutex_held
    - UNUSED_PARAMETER
    - getVarint
    linkageType: ''
    returnType: void
    signature: "void btreeParseCellPtrNoPayload(\n  MemPage *pPage,         /* Page
      containing the cell */\n  u8 *pCell,              /* Pointer to the cell text.
      */\n  CellInfo *pInfo         /* Fill in this structure */\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64423,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:64423,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64424,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64425,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64426,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:64469,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:64470,1
    - Dst: btreeParseCellAdjustSizeForOverflow
      Src: /src/nss/lib/sqlite/sqlite3.c:64479,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 3
    argNames:
    - pPage
    - pCell
    - pInfo
    argTypes:
    - MemPage*
    - u8*
    - CellInfo*
    assertStmts:
    - condition: ( sqlite3_mutex_held(pPage->pBt->mutex) )
      pos:
        line_end: 64422
        line_start: 64422
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->childPtrSize==0 )
      pos:
        line_end: 64425
        line_start: 64425
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->intKeyLeaf )
      pos:
        line_end: 64424
        line_start: 64424
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->leaf==0 || pPage->leaf==1 )
      pos:
        line_end: 64423
        line_start: 64423
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 64481
      start: 64414
    functionDepth: 2
    functionLinenumber: 64414
    functionLinenumberEnd: 64481
    functionName: btreeParseCellPtr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - btreeParseCellAdjustSizeForOverflow
    - sqlite3_mutex_held
    - testcase
    linkageType: ''
    returnType: void
    signature: "void btreeParseCellPtr(\n  MemPage *pPage,         /* Page containing
      the cell */\n  u8 *pCell,              /* Pointer to the cell text. */\n  CellInfo
      *pInfo         /* Fill in this structure */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64490,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:64490,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64491,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64492,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:64506,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:64507,1
    - Dst: btreeParseCellAdjustSizeForOverflow
      Src: /src/nss/lib/sqlite/sqlite3.c:64516,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - pPage
    - pCell
    - pInfo
    argTypes:
    - MemPage*
    - u8*
    - CellInfo*
    assertStmts:
    - condition: ( sqlite3_mutex_held(pPage->pBt->mutex) )
      pos:
        line_end: 64489
        line_start: 64489
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->intKeyLeaf==0 )
      pos:
        line_end: 64491
        line_start: 64491
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->leaf==0 || pPage->leaf==1 )
      pos:
        line_end: 64490
        line_start: 64490
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 64518
      start: 64482
    functionDepth: 2
    functionLinenumber: 64482
    functionLinenumberEnd: 64518
    functionName: btreeParseCellPtrIndex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - btreeParseCellAdjustSizeForOverflow
    - sqlite3_mutex_held
    - testcase
    linkageType: ''
    returnType: void
    signature: "void btreeParseCellPtrIndex(\n  MemPage *pPage,         /* Page containing
      the cell */\n  u8 *pCell,              /* Pointer to the cell text. */\n  CellInfo
      *pInfo         /* Fill in this structure */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MemPage*::xParseCell
      Src: /src/nss/lib/sqlite/sqlite3.c:64524,1
    - Dst: findCell
      Src: /src/nss/lib/sqlite/sqlite3.c:64524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pPage
    - iCell
    - pInfo
    argTypes:
    - MemPage*
    - int
    - CellInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64525
      start: 64519
    functionDepth: 1
    functionLinenumber: 64519
    functionLinenumberEnd: 64525
    functionName: btreeParseCell
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - findCell
    - MemPage*::xParseCell
    linkageType: ''
    returnType: void
    signature: "void btreeParseCell(\n  MemPage *pPage,         /* Page containing
      the cell */\n  int iCell,              /* The cell index.  First cell is 0 */\n
      \ CellInfo *pInfo         /* Fill in this structure */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: MemPage*::xParseCell
      Src: /src/nss/lib/sqlite/sqlite3.c:64550,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:64569,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:64570,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:64577,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:64578,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64584,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - pPage
    - pCell
    argTypes:
    - MemPage*
    - u8*
    assertStmts:
    - condition: ( nSize==debuginfo.nSize || CORRUPT_DB )
      pos:
        line_end: 64583
        line_start: 64583
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 64586
      start: 64539
    functionDepth: 1
    functionLinenumber: 64539
    functionLinenumberEnd: 64586
    functionName: cellSizePtr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - testcase
    - MemPage*::xParseCell
    linkageType: ''
    returnType: u16
    signature: u16 cellSizePtr(MemPage *pPage, u8 *pCell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MemPage*::xParseCell
      Src: /src/nss/lib/sqlite/sqlite3.c:64597,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:64599,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64602,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64605,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - pPage
    - pCell
    argTypes:
    - MemPage*
    - u8*
    assertStmts:
    - condition: ( pPage->childPtrSize==4 )
      pos:
        line_end: 64601
        line_start: 64601
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( debuginfo.nSize==(u16)(pIter - pCell) || CORRUPT_DB )
      pos:
        line_end: 64604
        line_start: 64604
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 64607
      start: 64587
    functionDepth: 1
    functionLinenumber: 64587
    functionLinenumberEnd: 64607
    functionName: cellSizePtrNoPayload
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - UNUSED_PARAMETER
    - MemPage*::xParseCell
    linkageType: ''
    returnType: u16
    signature: u16 cellSizePtrNoPayload(MemPage *pPage, u8 *pCell)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MemPage*::xCellSize
      Src: /src/nss/lib/sqlite/sqlite3.c:64614,1
    - Dst: findCell
      Src: /src/nss/lib/sqlite/sqlite3.c:64614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pPage
    - iCell
    argTypes:
    - MemPage*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64615
      start: 64613
    functionDepth: 1
    functionLinenumber: 64613
    functionLinenumberEnd: 64615
    functionName: cellSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - MemPage*::xCellSize
    - findCell
    linkageType: ''
    returnType: u16
    signature: u16 cellSize(MemPage *pPage, int iCell)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64628,1
    - Dst: MemPage*::xParseCell
      Src: /src/nss/lib/sqlite/sqlite3.c:64629,1
    - Dst: SQLITE_WITHIN
      Src: /src/nss/lib/sqlite/sqlite3.c:64632,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:64633,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:64637,1
    - Dst: ptrmapPut
      Src: /src/nss/lib/sqlite/sqlite3.c:64638,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - pPage
    - pSrc
    - pCell
    - pRC
    argTypes:
    - MemPage*
    - MemPage*
    - u8*
    - int*
    assertStmts:
    - condition: ( pCell!=0 )
      pos:
        line_end: 64627
        line_start: 64627
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 64640
      start: 64625
    functionDepth: 15
    functionLinenumber: 64625
    functionLinenumberEnd: 64640
    functionName: ptrmapPutOvflPtr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - SQLITE_WITHIN
    - ptrmapPut
    - get4byte
    - assert
    - MemPage*::xParseCell
    - testcase
    linkageType: ''
    returnType: void
    signature: void ptrmapPutOvflPtr(MemPage *pPage, MemPage *pSrc, u8 *pCell,int
      *pRC)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64671,1
    - Dst: sqlite3PagerIswriteable
      Src: /src/nss/lib/sqlite/sqlite3.c:64671,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64672,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64673,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64674,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64675,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:64675,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64681,1
    - Dst: get2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:64681,1
    - Dst: get2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:64691,1
    - Dst: SQLITE_CORRUPT_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:64692,1
    - Dst: get2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:64694,1
    - Dst: SQLITE_CORRUPT_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:64695,1
    - Dst: get2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:64700,1
    - Dst: get2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:64701,1
    - Dst: SQLITE_CORRUPT_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:64703,1
    - Dst: SQLITE_CORRUPT_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:64706,1
    - Dst: get2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:64707,1
    - Dst: SQLITE_CORRUPT_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:64708,1
    - Dst: memmove
      Src: /src/nss/lib/sqlite/sqlite3.c:64709,1
    - Dst: SQLITE_CORRUPT_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:64712,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64716,1
    - Dst: memmove
      Src: /src/nss/lib/sqlite/sqlite3.c:64717,1
    - Dst: get2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:64719,1
    - Dst: put2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:64720,1
    - Dst: put2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:64721,1
    - Dst: get2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:64733,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:64734,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:64735,1
    - Dst: SQLITE_CORRUPT_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:64740,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64742,1
    - Dst: MemPage*::xCellSize
      Src: /src/nss/lib/sqlite/sqlite3.c:64743,1
    - Dst: SQLITE_CORRUPT_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:64746,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64748,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:64749,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:64750,1
    - Dst: put2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:64751,1
    - Dst: sqlite3PagerTempSpace
      Src: /src/nss/lib/sqlite/sqlite3.c:64755,1
    - Dst: get2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:64756,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:64757,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:64760,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64765,1
    - Dst: SQLITE_CORRUPT_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:64767,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64769,1
    - Dst: put2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:64770,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:64773,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64774,1
    - Dst: sqlite3PagerIswriteable
      Src: /src/nss/lib/sqlite/sqlite3.c:64774,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 97
    argCount: 2
    argNames:
    - pPage
    - nMaxFrag
    argTypes:
    - MemPage*
    - int
    assertStmts:
    - condition: ( pPage->pBt!=0 )
      pos:
        line_end: 64671
        line_start: 64671
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nCell==get2byte(&data[hdr+3]) || CORRUPT_DB )
      pos:
        line_end: 64680
        line_start: 64680
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pc>=iCellFirst && pc<=iCellLast )
      pos:
        line_end: 64741
        line_start: 64741
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->pBt->usableSize <= SQLITE_MAX_PAGE_SIZE )
      pos:
        line_end: 64672
        line_start: 64672
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3_mutex_held(pPage->pBt->mutex) )
      pos:
        line_end: 64674
        line_start: 64674
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( cbrk+(iFree-top) <= usableSize )
      pos:
        line_end: 64715
        line_start: 64715
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( cbrk>=iCellFirst )
      pos:
        line_end: 64768
        line_start: 64768
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3PagerIswriteable(pPage->pDbPage) )
      pos:
        line_end: 64773
        line_start: 64773
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3PagerIswriteable(pPage->pDbPage) )
      pos:
        line_end: 64670
        line_start: 64670
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->nOverflow==0 )
      pos:
        line_end: 64673
        line_start: 64673
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( cbrk+size<=usableSize && cbrk>=iCellFirst )
      pos:
        line_end: 64747
        line_start: 64747
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->nFree>=0 )
      pos:
        line_end: 64764
        line_start: 64764
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 64776
      start: 64656
    functionDepth: 1
    functionLinenumber: 64656
    functionLinenumberEnd: 64776
    functionName: defragmentPage
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - memmove
    - MemPage*::xCellSize
    - SQLITE_CORRUPT_PAGE
    - sqlite3PagerTempSpace
    - assert
    - memset
    - put2byte
    - sqlite3PagerIswriteable
    - sqlite3_mutex_held
    - get2byte
    - testcase
    linkageType: ''
    returnType: int
    signature: int defragmentPage(MemPage *pPage, int nMaxFrag)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: get2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:64796,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64801,1
    - Dst: get2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:64806,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:64808,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:64809,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:64817,1
    - Dst: SQLITE_CORRUPT_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:64821,1
    - Dst: put2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:64826,1
    - Dst: get2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:64831,1
    - Dst: SQLITE_CORRUPT_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:64835,1
    - Dst: SQLITE_CORRUPT_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:64842,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 3
    argNames:
    - pPg
    - nByte
    - pRc
    argTypes:
    - MemPage*
    - int
    - int*
    assertStmts:
    - condition: ( pc>0 )
      pos:
        line_end: 64800
        line_start: 64800
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 64845
      start: 64792
    functionDepth: 1
    functionLinenumber: 64792
    functionLinenumberEnd: 64845
    functionName: pageFindSlot
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - SQLITE_CORRUPT_PAGE
    - assert
    - put2byte
    - get2byte
    - testcase
    linkageType: ''
    returnType: u8
    signature: u8 *pageFindSlot(MemPage *pPg, int nByte, int *pRc)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64867,1
    - Dst: sqlite3PagerIswriteable
      Src: /src/nss/lib/sqlite/sqlite3.c:64867,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64868,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64869,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:64869,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64870,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64871,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64872,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64873,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64875,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64877,1
    - Dst: get2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:64883,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64884,1
    - Dst: SQLITE_CORRUPT_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:64889,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:64897,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:64898,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:64899,1
    - Dst: pageFindSlot
      Src: /src/nss/lib/sqlite/sqlite3.c:64901,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64903,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:64914,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64916,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64917,1
    - Dst: defragmentPage
      Src: /src/nss/lib/sqlite/sqlite3.c:64918,1
    - Dst: MIN
      Src: /src/nss/lib/sqlite/sqlite3.c:64918,1
    - Dst: get2byteNotZero
      Src: /src/nss/lib/sqlite/sqlite3.c:64920,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64921,1
    - Dst: put2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:64932,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64933,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 48
    argCount: 3
    argNames:
    - pPage
    - nByte
    - pIdx
    argTypes:
    - MemPage*
    - int
    - int*
    assertStmts:
    - condition: ( sqlite3_mutex_held(pPage->pBt->mutex) )
      pos:
        line_end: 64868
        line_start: 64868
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->cellOffset == hdr + 12 - 4*pPage->leaf )
      pos:
        line_end: 64874
        line_start: 64874
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pSpace>=data && (pSpace - data)<65536 )
      pos:
        line_end: 64902
        line_start: 64902
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->nCell>0 || CORRUPT_DB )
      pos:
        line_end: 64915
        line_start: 64915
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nByte>=0 )
      pos:
        line_end: 64869
        line_start: 64869
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nByte < (int)(pPage->pBt->usableSize-8) )
      pos:
        line_end: 64872
        line_start: 64872
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( gap+2+nByte<=top )
      pos:
        line_end: 64920
        line_start: 64920
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->pBt )
      pos:
        line_end: 64867
        line_start: 64867
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->nOverflow==0 )
      pos:
        line_end: 64871
        line_start: 64871
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( top<=(int)pPage->pBt->usableSize )
      pos:
        line_end: 64883
        line_start: 64883
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( gap<=65536 )
      pos:
        line_end: 64876
        line_start: 64876
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( top+nByte <= (int)pPage->pBt->usableSize )
      pos:
        line_end: 64932
        line_start: 64932
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3PagerIswriteable(pPage->pDbPage) )
      pos:
        line_end: 64866
        line_start: 64866
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->nFree>=nByte )
      pos:
        line_end: 64870
        line_start: 64870
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->nFree>=0 )
      pos:
        line_end: 64916
        line_start: 64916
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 64936
      start: 64860
    functionDepth: 2
    functionLinenumber: 64860
    functionLinenumberEnd: 64936
    functionName: allocateSpace
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - pageFindSlot
    - SQLITE_CORRUPT_PAGE
    - defragmentPage
    - assert
    - put2byte
    - sqlite3PagerIswriteable
    - get2byteNotZero
    - sqlite3_mutex_held
    - get2byte
    - testcase
    - MIN
    linkageType: ''
    returnType: int
    signature: int allocateSpace(MemPage *pPage, int nByte, int *pIdx)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64961,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64962,1
    - Dst: sqlite3PagerIswriteable
      Src: /src/nss/lib/sqlite/sqlite3.c:64962,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64963,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64964,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64965,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:64965,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64966,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64967,1
    - Dst: get2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:64977,1
    - Dst: SQLITE_CORRUPT_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:64980,1
    - Dst: SQLITE_CORRUPT_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:64985,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:64987,1
    - Dst: SQLITE_CORRUPT_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:64997,1
    - Dst: get2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:64998,1
    - Dst: SQLITE_CORRUPT_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:65000,1
    - Dst: get2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:65003,1
    - Dst: get2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:65011,1
    - Dst: SQLITE_CORRUPT_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:65013,1
    - Dst: SQLITE_CORRUPT_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:65019,1
    - Dst: get2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:65022,1
    - Dst: SQLITE_CORRUPT_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:65027,1
    - Dst: put2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:65028,1
    - Dst: put2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:65029,1
    - Dst: put2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:65032,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:65037,1
    - Dst: put2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:65039,1
    - Dst: put2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:65040,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 65
    argCount: 3
    argNames:
    - pPage
    - iStart
    - iSize
    argTypes:
    - MemPage*
    - u16
    - u16
    assertStmts:
    - condition: ( iSize>=4 )
      pos:
        line_end: 64965
        line_start: 64965
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->pBt!=0 )
      pos:
        line_end: 64960
        line_start: 64960
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3PagerIswriteable(pPage->pDbPage) )
      pos:
        line_end: 64961
        line_start: 64961
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( CORRUPT_DB || iEnd <= pPage->pBt->usableSize )
      pos:
        line_end: 64963
        line_start: 64963
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( CORRUPT_DB || iStart>=pPage->hdrOffset+6+pPage->childPtrSize )
      pos:
        line_end: 64962
        line_start: 64962
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3_mutex_held(pPage->pBt->mutex) )
      pos:
        line_end: 64964
        line_start: 64964
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iStart<=pPage->pBt->usableSize-4 )
      pos:
        line_end: 64966
        line_start: 64966
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iFreeBlk>iPtr || iFreeBlk==0 )
      pos:
        line_end: 64986
        line_start: 64986
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 65043
      start: 64951
    functionDepth: 1
    functionLinenumber: 64951
    functionLinenumberEnd: 65043
    functionName: freeSpace
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - SQLITE_CORRUPT_PAGE
    - assert
    - memset
    - put2byte
    - sqlite3PagerIswriteable
    - sqlite3_mutex_held
    - get2byte
    linkageType: ''
    returnType: int
    signature: int freeSpace(MemPage *pPage, u16 iStart, u16 iSize)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65060,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65061,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:65061,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65062,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65070,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65073,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65088,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65091,1
    - Dst: SQLITE_CORRUPT_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:65100,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 37
    argCount: 2
    argNames:
    - pPage
    - flagByte
    argTypes:
    - MemPage*
    - int
    assertStmts:
    - condition: '( pPage->hdrOffset==(pPage->pgno==1 ? 100 : 0) )'
      pos:
        line_end: 65059
        line_start: 65059
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( PTF_LEAF == 1<<3 )
      pos:
        line_end: 65061
        line_start: 65061
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3_mutex_held(pPage->pBt->mutex) )
      pos:
        line_end: 65060
        line_start: 65060
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (PTF_LEAFDATA|PTF_INTKEY)==5 )
      pos:
        line_end: 65069
        line_start: 65069
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (PTF_LEAFDATA|PTF_INTKEY|PTF_LEAF)==13 )
      pos:
        line_end: 65072
        line_start: 65072
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (PTF_ZERODATA)==2 )
      pos:
        line_end: 65087
        line_start: 65087
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (PTF_ZERODATA|PTF_LEAF)==10 )
      pos:
        line_end: 65090
        line_start: 65090
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 65104
      start: 65057
    functionDepth: 1
    functionLinenumber: 65057
    functionLinenumberEnd: 65104
    functionName: decodeFlags
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_mutex_held
    - SQLITE_CORRUPT_PAGE
    linkageType: ''
    returnType: int
    signature: int decodeFlags(MemPage *pPage, int flagByte)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65120,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65121,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65122,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:65122,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65123,1
    - Dst: sqlite3PagerPagenumber
      Src: /src/nss/lib/sqlite/sqlite3.c:65123,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65124,1
    - Dst: sqlite3PagerGetExtra
      Src: /src/nss/lib/sqlite/sqlite3.c:65124,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65125,1
    - Dst: sqlite3PagerGetData
      Src: /src/nss/lib/sqlite/sqlite3.c:65125,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65126,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65127,1
    - Dst: get2byteNotZero
      Src: /src/nss/lib/sqlite/sqlite3.c:65135,1
    - Dst: get2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:65143,1
    - Dst: SQLITE_CORRUPT_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:65151,1
    - Dst: SQLITE_CORRUPT_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:65156,1
    - Dst: get2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:65158,1
    - Dst: get2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:65159,1
    - Dst: SQLITE_CORRUPT_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:65166,1
    - Dst: SQLITE_CORRUPT_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:65170,1
    - Dst: SQLITE_CORRUPT_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:65182,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 1
    argNames:
    - pPage
    argTypes:
    - MemPage*
    assertStmts:
    - condition: ( sqlite3_mutex_held(pPage->pBt->mutex) )
      pos:
        line_end: 65121
        line_start: 65121
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->pgno==sqlite3PagerPagenumber(pPage->pDbPage) )
      pos:
        line_end: 65122
        line_start: 65122
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->aData == sqlite3PagerGetData(pPage->pDbPage) )
      pos:
        line_end: 65124
        line_start: 65124
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->nFree<0 )
      pos:
        line_end: 65126
        line_start: 65126
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->pBt!=0 )
      pos:
        line_end: 65119
        line_start: 65119
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->pBt->db!=0 )
      pos:
        line_end: 65120
        line_start: 65120
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage == sqlite3PagerGetExtra(pPage->pDbPage) )
      pos:
        line_end: 65123
        line_start: 65123
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->isInit==1 )
      pos:
        line_end: 65125
        line_start: 65125
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 65186
      start: 65110
    functionDepth: 1
    functionLinenumber: 65110
    functionLinenumberEnd: 65186
    functionName: btreeComputeFreeSpace
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PagerPagenumber
    - sqlite3PagerGetData
    - get2byte
    - SQLITE_CORRUPT_PAGE
    - assert
    - get2byteNotZero
    - sqlite3_mutex_held
    - sqlite3PagerGetExtra
    linkageType: ''
    returnType: int
    signature: int btreeComputeFreeSpace(MemPage *pPage)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get2byteAligned
      Src: /src/nss/lib/sqlite/sqlite3.c:65209,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:65210,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:65211,1
    - Dst: SQLITE_CORRUPT_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:65213,1
    - Dst: MemPage*::xCellSize
      Src: /src/nss/lib/sqlite/sqlite3.c:65215,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:65216,1
    - Dst: SQLITE_CORRUPT_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:65218,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - pPage
    argTypes:
    - MemPage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65222
      start: 65192
    functionDepth: 1
    functionLinenumber: 65192
    functionLinenumberEnd: 65222
    functionName: btreeCellSizeCheck
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - get2byteAligned
    - SQLITE_CORRUPT_PAGE
    - testcase
    - MemPage*::xCellSize
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: SQLITE_NOINLINE btreeCellSizeCheck(MemPage *pPage)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65237,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65238,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65239,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:65239,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65240,1
    - Dst: sqlite3PagerPagenumber
      Src: /src/nss/lib/sqlite/sqlite3.c:65240,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65241,1
    - Dst: sqlite3PagerGetExtra
      Src: /src/nss/lib/sqlite/sqlite3.c:65241,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65242,1
    - Dst: sqlite3PagerGetData
      Src: /src/nss/lib/sqlite/sqlite3.c:65242,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65243,1
    - Dst: decodeFlags
      Src: /src/nss/lib/sqlite/sqlite3.c:65249,1
    - Dst: SQLITE_CORRUPT_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:65250,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65252,1
    - Dst: get2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:65261,1
    - Dst: MX_CELL
      Src: /src/nss/lib/sqlite/sqlite3.c:65262,1
    - Dst: SQLITE_CORRUPT_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:65264,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:65266,1
    - Dst: MX_CELL
      Src: /src/nss/lib/sqlite/sqlite3.c:65266,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65271,1
    - Dst: get2byteNotZero
      Src: /src/nss/lib/sqlite/sqlite3.c:65272,1
    - Dst: btreeCellSizeCheck
      Src: /src/nss/lib/sqlite/sqlite3.c:65277,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 1
    argNames:
    - pPage
    argTypes:
    - MemPage*
    assertStmts:
    - condition: ( pPage == sqlite3PagerGetExtra(pPage->pDbPage) )
      pos:
        line_end: 65240
        line_start: 65240
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->aData == sqlite3PagerGetData(pPage->pDbPage) )
      pos:
        line_end: 65241
        line_start: 65241
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->isInit==0 )
      pos:
        line_end: 65242
        line_start: 65242
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3_mutex_held(pPage->pBt->mutex) )
      pos:
        line_end: 65238
        line_start: 65238
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->pBt->db!=0 )
      pos:
        line_end: 65237
        line_start: 65237
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( pPage->nCell>0\n       || get2byteNotZero(&data[5])==(int)pBt->usableSize\n
        \      || CORRUPT_DB )"
      pos:
        line_end: 65272
        line_start: 65270
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pBt->pageSize>=512 && pBt->pageSize<=65536 )
      pos:
        line_end: 65251
        line_start: 65251
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->pBt!=0 )
      pos:
        line_end: 65236
        line_start: 65236
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->pgno==sqlite3PagerPagenumber(pPage->pDbPage) )
      pos:
        line_end: 65239
        line_start: 65239
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 65280
      start: 65233
    functionDepth: 2
    functionLinenumber: 65233
    functionLinenumberEnd: 65280
    functionName: btreeInitPage
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - decodeFlags
    - sqlite3PagerPagenumber
    - MX_CELL
    - sqlite3PagerGetData
    - SQLITE_CORRUPT_PAGE
    - get2byte
    - assert
    - get2byteNotZero
    - sqlite3_mutex_held
    - sqlite3PagerGetExtra
    - testcase
    - btreeCellSizeCheck
    linkageType: ''
    returnType: int
    signature: int btreeInitPage(MemPage *pPage)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65292,1
    - Dst: sqlite3PagerPagenumber
      Src: /src/nss/lib/sqlite/sqlite3.c:65292,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65293,1
    - Dst: sqlite3PagerGetExtra
      Src: /src/nss/lib/sqlite/sqlite3.c:65293,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65294,1
    - Dst: sqlite3PagerGetData
      Src: /src/nss/lib/sqlite/sqlite3.c:65294,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65295,1
    - Dst: sqlite3PagerIswriteable
      Src: /src/nss/lib/sqlite/sqlite3.c:65295,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65296,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:65296,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:65298,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:65302,1
    - Dst: put2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:65304,1
    - Dst: decodeFlags
      Src: /src/nss/lib/sqlite/sqlite3.c:65306,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 2
    argNames:
    - pPage
    - flags
    argTypes:
    - MemPage*
    - int
    assertStmts:
    - condition: ( sqlite3PagerPagenumber(pPage->pDbPage)==pPage->pgno )
      pos:
        line_end: 65291
        line_start: 65291
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3PagerGetData(pPage->pDbPage) == data )
      pos:
        line_end: 65293
        line_start: 65293
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3PagerGetExtra(pPage->pDbPage) == (void*)pPage )
      pos:
        line_end: 65292
        line_start: 65292
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3PagerIswriteable(pPage->pDbPage) )
      pos:
        line_end: 65294
        line_start: 65294
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3_mutex_held(pBt->mutex) )
      pos:
        line_end: 65295
        line_start: 65295
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pBt->pageSize>=512 && pBt->pageSize<=65536 )
      pos:
        line_end: 65311
        line_start: 65311
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 65316
      start: 65286
    functionDepth: 2
    functionLinenumber: 65286
    functionLinenumberEnd: 65316
    functionName: zeroPage
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - decodeFlags
    - sqlite3PagerPagenumber
    - sqlite3PagerGetData
    - assert
    - memset
    - put2byte
    - sqlite3PagerIswriteable
    - sqlite3_mutex_held
    - sqlite3PagerGetExtra
    linkageType: ''
    returnType: void
    signature: void zeroPage(MemPage *pPage, int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PagerGetExtra
      Src: /src/nss/lib/sqlite/sqlite3.c:65324,1
    - Dst: sqlite3PagerGetData
      Src: /src/nss/lib/sqlite/sqlite3.c:65326,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65332,1
    - Dst: sqlite3PagerGetData
      Src: /src/nss/lib/sqlite/sqlite3.c:65332,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - pDbPage
    - pgno
    - pBt
    argTypes:
    - DbPage*
    - Pgno
    - BtShared*
    assertStmts:
    - condition: ( pPage->aData==sqlite3PagerGetData(pDbPage) )
      pos:
        line_end: 65331
        line_start: 65331
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 65334
      start: 65323
    functionDepth: 1
    functionLinenumber: 65323
    functionLinenumberEnd: 65334
    functionName: btreePageFromDbPage
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PagerGetData
    - assert
    - sqlite3PagerGetExtra
    linkageType: ''
    returnType: MemPage
    signature: MemPage *btreePageFromDbPage(DbPage *pDbPage, Pgno pgno, BtShared *pBt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65356,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65357,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:65357,1
    - Dst: sqlite3PagerGet
      Src: /src/nss/lib/sqlite/sqlite3.c:65358,1
    - Dst: btreePageFromDbPage
      Src: /src/nss/lib/sqlite/sqlite3.c:65360,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - pBt
    - pgno
    - ppPage
    - flags
    argTypes:
    - BtShared*
    - Pgno
    - MemPage**
    - int
    assertStmts:
    - condition: ( flags==0 || flags==PAGER_GET_NOCONTENT || flags==PAGER_GET_READONLY
        )
      pos:
        line_end: 65355
        line_start: 65355
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3_mutex_held(pBt->mutex) )
      pos:
        line_end: 65356
        line_start: 65356
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 65362
      start: 65347
    functionDepth: 2
    functionLinenumber: 65347
    functionLinenumberEnd: 65362
    functionName: btreeGetPage
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - btreePageFromDbPage
    - sqlite3_mutex_held
    - sqlite3PagerGet
    linkageType: ''
    returnType: int
    signature: "int btreeGetPage(\n  BtShared *pBt,       /* The btree */\n  Pgno
      pgno,           /* Number of the page to fetch */\n  MemPage **ppPage,    /*
      Return the page in this parameter */\n  int flags            /* PAGER_GET_NOCONTENT
      or PAGER_GET_READONLY */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65371,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:65371,1
    - Dst: sqlite3PagerLookup
      Src: /src/nss/lib/sqlite/sqlite3.c:65372,1
    - Dst: btreePageFromDbPage
      Src: /src/nss/lib/sqlite/sqlite3.c:65374,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - pBt
    - pgno
    argTypes:
    - BtShared*
    - Pgno
    assertStmts:
    - condition: ( sqlite3_mutex_held(pBt->mutex) )
      pos:
        line_end: 65370
        line_start: 65370
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 65377
      start: 65369
    functionDepth: 4
    functionLinenumber: 65369
    functionLinenumberEnd: 65377
    functionName: btreePageLookup
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - btreePageFromDbPage
    - sqlite3_mutex_held
    - sqlite3PagerLookup
    linkageType: ''
    returnType: MemPage
    signature: MemPage *btreePageLookup(BtShared *pBt, Pgno pgno)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pBt
    argTypes:
    - BtShared*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65385
      start: 65383
    functionDepth: 0
    functionLinenumber: 65383
    functionLinenumberEnd: 65385
    functionName: btreePagecount
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Pgno
    signature: Pgno btreePagecount(BtShared *pBt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65387,1
    - Dst: sqlite3BtreeHoldsMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:65387,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65388,1
    - Dst: btreePagecount
      Src: /src/nss/lib/sqlite/sqlite3.c:65389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - Btree*
    assertStmts:
    - condition: ( sqlite3BtreeHoldsMutex(p) )
      pos:
        line_end: 65386
        line_start: 65386
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( ((p->pBt->nPage)&0x80000000)==0 )
      pos:
        line_end: 65387
        line_start: 65387
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 65390
      start: 65386
    functionDepth: 1
    functionLinenumber: 65386
    functionLinenumberEnd: 65390
    functionName: sqlite3BtreeLastPage
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - btreePagecount
    - sqlite3BtreeHoldsMutex
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeLastPage(Btree *p)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65414,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:65414,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65415,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65416,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65417,1
    - Dst: btreePagecount
      Src: /src/nss/lib/sqlite/sqlite3.c:65419,1
    - Dst: sqlite3PagerGet
      Src: /src/nss/lib/sqlite/sqlite3.c:65423,1
    - Dst: sqlite3PagerGetExtra
      Src: /src/nss/lib/sqlite/sqlite3.c:65427,1
    - Dst: btreePageFromDbPage
      Src: /src/nss/lib/sqlite/sqlite3.c:65429,1
    - Dst: btreeInitPage
      Src: /src/nss/lib/sqlite/sqlite3.c:65430,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65435,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65436,1
    - Dst: sqlite3PagerGetData
      Src: /src/nss/lib/sqlite/sqlite3.c:65436,1
    - Dst: SQLITE_CORRUPT_PGNO
      Src: /src/nss/lib/sqlite/sqlite3.c:65441,1
    - Dst: releasePage
      Src: /src/nss/lib/sqlite/sqlite3.c:65447,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:65453,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65454,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 44
    argCount: 5
    argNames:
    - pBt
    - pgno
    - ppPage
    - pCur
    - bReadOnly
    argTypes:
    - BtShared*
    - Pgno
    - MemPage**
    - BtCursor*
    - int
    assertStmts:
    - condition: ( sqlite3_mutex_held(pBt->mutex) )
      pos:
        line_end: 65413
        line_start: 65413
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur==0 || ppPage==&pCur->pPage )
      pos:
        line_end: 65414
        line_start: 65414
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur==0 || bReadOnly==pCur->curPagerFlags )
      pos:
        line_end: 65415
        line_start: 65415
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur==0 || pCur->iPage>0 )
      pos:
        line_end: 65416
        line_start: 65416
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pgno!=0 || rc==SQLITE_CORRUPT )
      pos:
        line_end: 65453
        line_start: 65453
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (*ppPage)->pgno==pgno )
      pos:
        line_end: 65434
        line_start: 65434
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (*ppPage)->aData==sqlite3PagerGetData(pDbPage) )
      pos:
        line_end: 65435
        line_start: 65435
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 65456
      start: 65405
    functionDepth: 3
    functionLinenumber: 65405
    functionLinenumberEnd: 65456
    functionName: getAndInitPage
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - btreePagecount
    - sqlite3PagerGetData
    - assert
    - btreePageFromDbPage
    - btreeInitPage
    - sqlite3PagerGet
    - releasePage
    - sqlite3_mutex_held
    - SQLITE_CORRUPT_PGNO
    - sqlite3PagerGetExtra
    - testcase
    linkageType: ''
    returnType: int
    signature: "int getAndInitPage(\n  BtShared *pBt,                  /* The database
      file */\n  Pgno pgno,                      /* Number of the page to get */\n
      \ MemPage **ppPage,               /* Write the page pointer here */\n  BtCursor
      *pCur,                 /* Cursor to receive the page, or NULL */\n  int bReadOnly
      \                  /* True for a read-only page */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65465,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65466,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65467,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65468,1
    - Dst: sqlite3PagerGetExtra
      Src: /src/nss/lib/sqlite/sqlite3.c:65468,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65469,1
    - Dst: sqlite3PagerGetData
      Src: /src/nss/lib/sqlite/sqlite3.c:65469,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65470,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:65470,1
    - Dst: sqlite3PagerUnrefNotNull
      Src: /src/nss/lib/sqlite/sqlite3.c:65471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - pPage
    argTypes:
    - MemPage*
    assertStmts:
    - condition: ( pPage->aData )
      pos:
        line_end: 65464
        line_start: 65464
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->pBt )
      pos:
        line_end: 65465
        line_start: 65465
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->pDbPage!=0 )
      pos:
        line_end: 65466
        line_start: 65466
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3PagerGetExtra(pPage->pDbPage) == (void*)pPage )
      pos:
        line_end: 65467
        line_start: 65467
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3PagerGetData(pPage->pDbPage)==pPage->aData )
      pos:
        line_end: 65468
        line_start: 65468
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3_mutex_held(pPage->pBt->mutex) )
      pos:
        line_end: 65469
        line_start: 65469
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 65472
      start: 65464
    functionDepth: 5
    functionLinenumber: 65464
    functionLinenumberEnd: 65472
    functionName: releasePageNotNull
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3PagerGetData
    - sqlite3PagerUnrefNotNull
    - assert
    - sqlite3_mutex_held
    - sqlite3PagerGetExtra
    linkageType: ''
    returnType: void
    signature: void releasePageNotNull(MemPage *pPage)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: releasePageNotNull
      Src: /src/nss/lib/sqlite/sqlite3.c:65474,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - pPage
    argTypes:
    - MemPage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65475
      start: 65473
    functionDepth: 6
    functionLinenumber: 65473
    functionLinenumberEnd: 65475
    functionName: releasePage
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - releasePageNotNull
    linkageType: ''
    returnType: void
    signature: void releasePage(MemPage *pPage)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65477,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65478,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65479,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65480,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65481,1
    - Dst: sqlite3PagerGetExtra
      Src: /src/nss/lib/sqlite/sqlite3.c:65481,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65482,1
    - Dst: sqlite3PagerGetData
      Src: /src/nss/lib/sqlite/sqlite3.c:65482,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65483,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:65483,1
    - Dst: sqlite3PagerUnrefPageOne
      Src: /src/nss/lib/sqlite/sqlite3.c:65484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - pPage
    argTypes:
    - MemPage*
    assertStmts:
    - condition: ( pPage!=0 )
      pos:
        line_end: 65476
        line_start: 65476
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3PagerGetExtra(pPage->pDbPage) == (void*)pPage )
      pos:
        line_end: 65480
        line_start: 65480
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->pBt )
      pos:
        line_end: 65478
        line_start: 65478
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->aData )
      pos:
        line_end: 65477
        line_start: 65477
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->pDbPage!=0 )
      pos:
        line_end: 65479
        line_start: 65479
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3PagerGetData(pPage->pDbPage)==pPage->aData )
      pos:
        line_end: 65481
        line_start: 65481
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3_mutex_held(pPage->pBt->mutex) )
      pos:
        line_end: 65482
        line_start: 65482
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 65485
      start: 65476
    functionDepth: 11
    functionLinenumber: 65476
    functionLinenumberEnd: 65485
    functionName: releasePageOne
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PagerUnrefPageOne
    - sqlite3PagerGetData
    - assert
    - sqlite3_mutex_held
    - sqlite3PagerGetExtra
    linkageType: ''
    returnType: void
    signature: void releasePageOne(MemPage *pPage)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: btreeGetPage
      Src: /src/nss/lib/sqlite/sqlite3.c:65502,1
    - Dst: sqlite3PagerPageRefcount
      Src: /src/nss/lib/sqlite/sqlite3.c:65504,1
    - Dst: releasePage
      Src: /src/nss/lib/sqlite/sqlite3.c:65505,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - pBt
    - pgno
    - ppPage
    - flags
    argTypes:
    - BtShared*
    - Pgno
    - MemPage**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65514
      start: 65496
    functionDepth: 7
    functionLinenumber: 65496
    functionLinenumberEnd: 65514
    functionName: btreeGetUnusedPage
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - releasePage
    - btreeGetPage
    - sqlite3PagerPageRefcount
    linkageType: ''
    returnType: int
    signature: "int btreeGetUnusedPage(\n  BtShared *pBt,       /* The btree */\n
      \ Pgno pgno,           /* Number of the page to fetch */\n  MemPage **ppPage,
      \   /* Return the page in this parameter */\n  int flags            /* PAGER_GET_NOCONTENT
      or PAGER_GET_READONLY */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PagerGetExtra
      Src: /src/nss/lib/sqlite/sqlite3.c:65527,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65528,1
    - Dst: sqlite3PagerPageRefcount
      Src: /src/nss/lib/sqlite/sqlite3.c:65528,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65530,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:65530,1
    - Dst: sqlite3PagerPageRefcount
      Src: /src/nss/lib/sqlite/sqlite3.c:65532,1
    - Dst: btreeInitPage
      Src: /src/nss/lib/sqlite/sqlite3.c:65539,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pData
    argTypes:
    - DbPage*
    assertStmts:
    - condition: ( sqlite3_mutex_held(pPage->pBt->mutex) )
      pos:
        line_end: 65529
        line_start: 65529
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3PagerPageRefcount(pData)>0 )
      pos:
        line_end: 65527
        line_start: 65527
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 65542
      start: 65525
    functionDepth: 3
    functionLinenumber: 65525
    functionLinenumberEnd: 65542
    functionName: pageReinit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - btreeInitPage
    - sqlite3_mutex_held
    - sqlite3PagerGetExtra
    - sqlite3PagerPageRefcount
    linkageType: ''
    returnType: void
    signature: void pageReinit(DbPage *pData)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65549,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65550,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:65550,1
    - Dst: sqlite3InvokeBusyHandler
      Src: /src/nss/lib/sqlite/sqlite3.c:65551,1
    - Dst: sqlite3PagerFile
      Src: /src/nss/lib/sqlite/sqlite3.c:65552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pArg
    argTypes:
    - void*
    assertStmts:
    - condition: ( pBt->db )
      pos:
        line_end: 65548
        line_start: 65548
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3_mutex_held(pBt->db->mutex) )
      pos:
        line_end: 65549
        line_start: 65549
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 65553
      start: 65547
    functionDepth: 1
    functionLinenumber: 65547
    functionLinenumberEnd: 65553
    functionName: btreeInvokeBusyHandler
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3PagerFile
    - sqlite3_mutex_held
    - sqlite3InvokeBusyHandler
    linkageType: ''
    returnType: int
    signature: int btreeInvokeBusyHandler(void *pArg)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:65600,1
    - Dst: sqlite3TempInMemory
      Src: /src/nss/lib/sqlite/sqlite3.c:65601,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65605,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65606,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65607,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:65607,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65608,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65611,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65614,1
    - Dst: sqlite3MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:65622,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:65640,1
    - Dst: sqlite3Malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:65642,1
    - Dst: MAX
      Src: /src/nss/lib/sqlite/sqlite3.c:65642,1
    - Dst: MUTEX_LOGIC
      Src: /src/nss/lib/sqlite/sqlite3.c:65643,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:65647,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:65651,1
    - Dst: sqlite3OsFullPathname
      Src: /src/nss/lib/sqlite/sqlite3.c:65653,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:65656,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:65657,1
    - Dst: sqlite3MutexAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:65662,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:65663,1
    - Dst: sqlite3MutexAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:65664,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:65665,1
    - Dst: GLOBAL
      Src: /src/nss/lib/sqlite/sqlite3.c:65667,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65668,1
    - Dst: strcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:65669,1
    - Dst: sqlite3PagerFilename
      Src: /src/nss/lib/sqlite/sqlite3.c:65669,1
    - Dst: sqlite3PagerVfs
      Src: /src/nss/lib/sqlite/sqlite3.c:65670,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:65675,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:65676,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:65677,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:65678,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:65687,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:65688,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65708,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65709,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65710,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65711,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65712,1
    - Dst: sqlite3MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:65714,1
    - Dst: sqlite3PagerOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:65719,1
    - Dst: sqlite3PagerSetMmapLimit
      Src: /src/nss/lib/sqlite/sqlite3.c:65722,1
    - Dst: sqlite3PagerReadFileheader
      Src: /src/nss/lib/sqlite/sqlite3.c:65723,1
    - Dst: sqlite3PagerSetBusyHandler
      Src: /src/nss/lib/sqlite/sqlite3.c:65730,1
    - Dst: sqlite3PagerIsreadonly
      Src: /src/nss/lib/sqlite/sqlite3.c:65735,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:65768,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:65769,1
    - Dst: sqlite3PagerSetPagesize
      Src: /src/nss/lib/sqlite/sqlite3.c:65772,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65775,1
    - Dst: MUTEX_LOGIC
      Src: /src/nss/lib/sqlite/sqlite3.c:65782,1
    - Dst: MUTEX_LOGIC
      Src: /src/nss/lib/sqlite/sqlite3.c:65783,1
    - Dst: sqlite3MutexAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:65783,1
    - Dst: sqlite3MutexAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:65785,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:65791,1
    - Dst: GLOBAL
      Src: /src/nss/lib/sqlite/sqlite3.c:65792,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:65794,1
    - Dst: sqlite3PagerClose
      Src: /src/nss/lib/sqlite/sqlite3.c:65835,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:65837,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:65838,1
    - Dst: sqlite3BtreeSchema
      Src: /src/nss/lib/sqlite/sqlite3.c:65847,1
    - Dst: sqlite3PagerSetCachesize
      Src: /src/nss/lib/sqlite/sqlite3.c:65848,1
    - Dst: sqlite3PagerFile
      Src: /src/nss/lib/sqlite/sqlite3.c:65851,1
    - Dst: sqlite3OsFileControlHint
      Src: /src/nss/lib/sqlite/sqlite3.c:65853,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65857,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:65857,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:65858,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65860,1
    - Dst: sqlite3BtreeConnectionCount
      Src: /src/nss/lib/sqlite/sqlite3.c:65860,1
    CyclomaticComplexity: 65
    EdgeCount: 65
    ICount: 183
    argCount: 6
    argNames:
    - pVfs
    - zFilename
    - db
    - ppBtree
    - flags
    - vfsFlags
    argTypes:
    - sqlite3_vfs*
    - char*
    - sqlite3*
    - Btree**
    - int
    - int
    assertStmts:
    - condition: ( sizeof(i64)==8 )
      pos:
        line_end: 65707
        line_start: 65707
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc!=SQLITE_OK || sqlite3BtreeConnectionCount(*ppBtree)>0 )
      pos:
        line_end: 65859
        line_start: 65859
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pVfs!=0 )
      pos:
        line_end: 65605
        line_start: 65605
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (flags & BTREE_UNORDERED)==0 || (flags & BTREE_SINGLE)!=0 )
      pos:
        line_end: 65610
        line_start: 65610
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sizeof(u64)==8 )
      pos:
        line_end: 65708
        line_start: 65708
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pBt->pageSize & 7)==0 )
      pos:
        line_end: 65774
        line_start: 65774
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sizeof(Pgno)==4 )
      pos:
        line_end: 65711
        line_start: 65711
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sizeof(u32)==4 )
      pos:
        line_end: 65709
        line_start: 65709
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sizeof(u16)==2 )
      pos:
        line_end: 65710
        line_start: 65710
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3_mutex_held(db->mutex) )
      pos:
        line_end: 65606
        line_start: 65606
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( db!=0 )
      pos:
        line_end: 65604
        line_start: 65604
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (flags&0xff)==flags )
      pos:
        line_end: 65607
        line_start: 65607
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (flags & BTREE_SINGLE)==0 || isTempDb )
      pos:
        line_end: 65613
        line_start: 65613
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pBt->nRef>0 )
      pos:
        line_end: 65667
        line_start: 65667
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3_mutex_held(mutexOpen) )
      pos:
        line_end: 65856
        line_start: 65856
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 65862
      start: 65576
    functionDepth: 10
    functionLinenumber: 65576
    functionLinenumberEnd: 65862
    functionName: sqlite3BtreeOpen
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3OsFileControlHint
    - sqlite3PagerSetMmapLimit
    - get4byte
    - sqlite3BtreeConnectionCount
    - MUTEX_LOGIC
    - sqlite3Malloc
    - sqlite3MallocZero
    - sqlite3MutexAlloc
    - sqlite3PagerClose
    - sqlite3BtreeSchema
    - memcpy
    - sqlite3PagerFilename
    - sqlite3PagerVfs
    - sqlite3_mutex_leave
    - assert
    - sqlite3PagerOpen
    - sqlite3_mutex_held
    - sqlite3PagerFile
    - sqlite3OsFullPathname
    - sqlite3TempInMemory
    - MAX
    - sqlite3Strlen30
    - sqlite3PagerSetCachesize
    - strcmp
    - sqlite3_free
    - sqlite3PagerSetBusyHandler
    - sqlite3PagerIsreadonly
    - sqlite3PagerReadFileheader
    - sqlite3PagerSetPagesize
    - GLOBAL
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3BtreeOpen(\n  sqlite3_vfs *pVfs,      /* VFS
      to use for this b-tree */\n  const char *zFilename,  /* Name of the file containing
      the BTree database */\n  sqlite3 *db,            /* Associated database handle
      */\n  Btree **ppBtree,        /* Pointer to new Btree object written here */\n
      \ int flags,              /* Options */\n  int vfsFlags            /* Flags
      passed through to sqlite3_vfs.xOpen() */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: MUTEX_LOGIC
      Src: /src/nss/lib/sqlite/sqlite3.c:65872,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65876,1
    - Dst: sqlite3_mutex_notheld
      Src: /src/nss/lib/sqlite/sqlite3.c:65876,1
    - Dst: MUTEX_LOGIC
      Src: /src/nss/lib/sqlite/sqlite3.c:65877,1
    - Dst: sqlite3MutexAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:65877,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:65878,1
    - Dst: GLOBAL
      Src: /src/nss/lib/sqlite/sqlite3.c:65881,1
    - Dst: GLOBAL
      Src: /src/nss/lib/sqlite/sqlite3.c:65884,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:65885,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:65888,1
    - Dst: sqlite3_mutex_free
      Src: /src/nss/lib/sqlite/sqlite3.c:65893,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:65897,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - pBt
    argTypes:
    - BtShared*
    assertStmts:
    - condition: ( sqlite3_mutex_notheld(pBt->mutex) )
      pos:
        line_end: 65875
        line_start: 65875
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 65902
      start: 65870
    functionDepth: 1
    functionLinenumber: 65870
    functionLinenumberEnd: 65902
    functionName: removeFromSharingList
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - ALWAYS
    - GLOBAL
    - MUTEX_LOGIC
    - sqlite3_mutex_leave
    - assert
    - sqlite3MutexAlloc
    - sqlite3_mutex_free
    - sqlite3_mutex_notheld
    linkageType: ''
    returnType: int
    signature: int removeFromSharingList(BtShared *pBt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PageMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:65911,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:65929,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - pBt
    argTypes:
    - BtShared*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65933
      start: 65909
    functionDepth: 7
    functionLinenumber: 65909
    functionLinenumberEnd: 65933
    functionName: allocateTempSpace
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3PageMalloc
    linkageType: ''
    returnType: void
    signature: void allocateTempSpace(BtShared *pBt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PageFree
      Src: /src/nss/lib/sqlite/sqlite3.c:65941,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pBt
    argTypes:
    - BtShared*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65944
      start: 65938
    functionDepth: 5
    functionLinenumber: 65938
    functionLinenumberEnd: 65944
    functionName: freeTempSpace
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PageFree
    linkageType: ''
    returnType: void
    signature: void freeTempSpace(BtShared *pBt)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65954,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:65954,1
    - Dst: sqlite3BtreeEnter
      Src: /src/nss/lib/sqlite/sqlite3.c:65955,1
    - Dst: sqlite3BtreeCloseCursor
      Src: /src/nss/lib/sqlite/sqlite3.c:65961,1
    - Dst: sqlite3BtreeRollback
      Src: /src/nss/lib/sqlite/sqlite3.c:65969,1
    - Dst: sqlite3BtreeLeave
      Src: /src/nss/lib/sqlite/sqlite3.c:65970,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65976,1
    - Dst: removeFromSharingList
      Src: /src/nss/lib/sqlite/sqlite3.c:65977,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65983,1
    - Dst: sqlite3PagerClose
      Src: /src/nss/lib/sqlite/sqlite3.c:65984,1
    - Dst: BtShared*::xFreeSchema
      Src: /src/nss/lib/sqlite/sqlite3.c:65986,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:65988,1
    - Dst: freeTempSpace
      Src: /src/nss/lib/sqlite/sqlite3.c:65989,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:65990,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65994,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:65995,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:66000,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 1
    argNames:
    - p
    argTypes:
    - Btree*
    assertStmts:
    - condition: ( sqlite3_mutex_held(p->db->mutex) )
      pos:
        line_end: 65953
        line_start: 65953
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->wantToLock==0 && p->locked==0 )
      pos:
        line_end: 65975
        line_start: 65975
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !pBt->pCursor )
      pos:
        line_end: 65982
        line_start: 65982
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->locked==0 )
      pos:
        line_end: 65994
        line_start: 65994
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->wantToLock==0 )
      pos:
        line_end: 65993
        line_start: 65993
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 66002
      start: 65949
    functionDepth: 10
    functionLinenumber: 65949
    functionLinenumberEnd: 66002
    functionName: sqlite3BtreeClose
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PagerClose
    - freeTempSpace
    - sqlite3BtreeCloseCursor
    - sqlite3DbFree
    - sqlite3BtreeLeave
    - BtShared*::xFreeSchema
    - assert
    - sqlite3BtreeEnter
    - sqlite3_mutex_held
    - removeFromSharingList
    - sqlite3BtreeRollback
    - sqlite3_free
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeClose(Btree *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:66013,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:66013,1
    - Dst: sqlite3BtreeEnter
      Src: /src/nss/lib/sqlite/sqlite3.c:66014,1
    - Dst: sqlite3PagerSetCachesize
      Src: /src/nss/lib/sqlite/sqlite3.c:66015,1
    - Dst: sqlite3BtreeLeave
      Src: /src/nss/lib/sqlite/sqlite3.c:66016,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - p
    - mxPage
    argTypes:
    - Btree*
    - int
    assertStmts:
    - condition: ( sqlite3_mutex_held(p->db->mutex) )
      pos:
        line_end: 66012
        line_start: 66012
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 66018
      start: 66011
    functionDepth: 3
    functionLinenumber: 66011
    functionLinenumberEnd: 66018
    functionName: sqlite3BtreeSetCacheSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeLeave
    - assert
    - sqlite3BtreeEnter
    - sqlite3_mutex_held
    - sqlite3PagerSetCachesize
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeSetCacheSize(Btree *p, int mxPage)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:66033,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:66033,1
    - Dst: sqlite3BtreeEnter
      Src: /src/nss/lib/sqlite/sqlite3.c:66034,1
    - Dst: sqlite3PagerSetSpillsize
      Src: /src/nss/lib/sqlite/sqlite3.c:66035,1
    - Dst: sqlite3BtreeLeave
      Src: /src/nss/lib/sqlite/sqlite3.c:66036,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - p
    - mxPage
    argTypes:
    - Btree*
    - int
    assertStmts:
    - condition: ( sqlite3_mutex_held(p->db->mutex) )
      pos:
        line_end: 66032
        line_start: 66032
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 66038
      start: 66030
    functionDepth: 3
    functionLinenumber: 66030
    functionLinenumberEnd: 66038
    functionName: sqlite3BtreeSetSpillSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeLeave
    - assert
    - sqlite3BtreeEnter
    - sqlite3PagerSetSpillsize
    - sqlite3_mutex_held
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeSetSpillSize(Btree *p, int mxPage)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:66047,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:66047,1
    - Dst: sqlite3BtreeEnter
      Src: /src/nss/lib/sqlite/sqlite3.c:66048,1
    - Dst: sqlite3PagerSetMmapLimit
      Src: /src/nss/lib/sqlite/sqlite3.c:66049,1
    - Dst: sqlite3BtreeLeave
      Src: /src/nss/lib/sqlite/sqlite3.c:66050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - p
    - szMmap
    argTypes:
    - Btree*
    - sqlite3_int64
    assertStmts:
    - condition: ( sqlite3_mutex_held(p->db->mutex) )
      pos:
        line_end: 66046
        line_start: 66046
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 66052
      start: 66045
    functionDepth: 4
    functionLinenumber: 66045
    functionLinenumberEnd: 66052
    functionName: sqlite3BtreeSetMmapLimit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PagerSetMmapLimit
    - sqlite3BtreeLeave
    - assert
    - sqlite3BtreeEnter
    - sqlite3_mutex_held
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeSetMmapLimit(Btree *p, sqlite3_int64 szMmap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:66069,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:66069,1
    - Dst: sqlite3BtreeEnter
      Src: /src/nss/lib/sqlite/sqlite3.c:66070,1
    - Dst: sqlite3PagerSetFlags
      Src: /src/nss/lib/sqlite/sqlite3.c:66071,1
    - Dst: sqlite3BtreeLeave
      Src: /src/nss/lib/sqlite/sqlite3.c:66072,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - p
    - pgFlags
    argTypes:
    - Btree*
    - unsigned
    assertStmts:
    - condition: ( sqlite3_mutex_held(p->db->mutex) )
      pos:
        line_end: 66068
        line_start: 66068
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 66074
      start: 66064
    functionDepth: 2
    functionLinenumber: 66064
    functionLinenumberEnd: 66074
    functionName: sqlite3BtreeSetPagerFlags
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeLeave
    - assert
    - sqlite3BtreeEnter
    - sqlite3_mutex_held
    - sqlite3PagerSetFlags
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3BtreeSetPagerFlags(\n  Btree *p,              /*
      The btree to set the safety level on */\n  unsigned pgFlags       /* Various
      PAGER_* flags */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:66100,1
    - Dst: sqlite3BtreeEnter
      Src: /src/nss/lib/sqlite/sqlite3.c:66101,1
    - Dst: sqlite3BtreeLeave
      Src: /src/nss/lib/sqlite/sqlite3.c:66106,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:66112,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:66115,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:66116,1
    - Dst: freeTempSpace
      Src: /src/nss/lib/sqlite/sqlite3.c:66118,1
    - Dst: sqlite3PagerSetPagesize
      Src: /src/nss/lib/sqlite/sqlite3.c:66120,1
    - Dst: sqlite3BtreeLeave
      Src: /src/nss/lib/sqlite/sqlite3.c:66123,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 4
    argNames:
    - p
    - pageSize
    - nReserve
    - iFix
    argTypes:
    - Btree*
    - int
    - int
    - int
    assertStmts:
    - condition: ( nReserve>=-1 && nReserve<=255 )
      pos:
        line_end: 66099
        line_start: 66099
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pageSize & 7)==0 )
      pos:
        line_end: 66114
        line_start: 66114
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nReserve>=0 && nReserve<=255 )
      pos:
        line_end: 66111
        line_start: 66111
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !pBt->pCursor )
      pos:
        line_end: 66115
        line_start: 66115
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 66125
      start: 66097
    functionDepth: 8
    functionLinenumber: 66097
    functionLinenumberEnd: 66125
    functionName: sqlite3BtreeSetPageSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - freeTempSpace
    - sqlite3BtreeLeave
    - assert
    - sqlite3BtreeEnter
    - sqlite3PagerSetPagesize
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeSetPageSize(Btree *p, int pageSize, int
      nReserve, int iFix)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - Btree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66132
      start: 66130
    functionDepth: 0
    functionLinenumber: 66130
    functionLinenumberEnd: 66132
    functionName: sqlite3BtreeGetPageSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeGetPageSize(Btree *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:66147,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:66147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - Btree*
    assertStmts:
    - condition: ( sqlite3_mutex_held(p->pBt->mutex) )
      pos:
        line_end: 66146
        line_start: 66146
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 66150
      start: 66145
    functionDepth: 1
    functionLinenumber: 66145
    functionLinenumberEnd: 66150
    functionName: sqlite3BtreeGetReserveNoMutex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_mutex_held
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeGetReserveNoMutex(Btree *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeEnter
      Src: /src/nss/lib/sqlite/sqlite3.c:66163,1
    - Dst: sqlite3BtreeGetReserveNoMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:66164,1
    - Dst: sqlite3BtreeLeave
      Src: /src/nss/lib/sqlite/sqlite3.c:66168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - Btree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66170
      start: 66161
    functionDepth: 2
    functionLinenumber: 66161
    functionLinenumberEnd: 66170
    functionName: sqlite3BtreeGetOptimalReserve
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeEnter
    - sqlite3BtreeLeave
    - sqlite3BtreeGetReserveNoMutex
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeGetOptimalReserve(Btree *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeEnter
      Src: /src/nss/lib/sqlite/sqlite3.c:66180,1
    - Dst: sqlite3PagerMaxPageCount
      Src: /src/nss/lib/sqlite/sqlite3.c:66181,1
    - Dst: sqlite3BtreeLeave
      Src: /src/nss/lib/sqlite/sqlite3.c:66182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - p
    - mxPage
    argTypes:
    - Btree*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66184
      start: 66178
    functionDepth: 2
    functionLinenumber: 66178
    functionLinenumberEnd: 66184
    functionName: sqlite3BtreeMaxPageCount
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeEnter
    - sqlite3PagerMaxPageCount
    - sqlite3BtreeLeave
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeMaxPageCount(Btree *p, int mxPage)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeEnter
      Src: /src/nss/lib/sqlite/sqlite3.c:66207,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:66208,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:66209,1
    - Dst: sqlite3BtreeLeave
      Src: /src/nss/lib/sqlite/sqlite3.c:66215,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - p
    - newFlag
    argTypes:
    - Btree*
    - int
    assertStmts:
    - condition: ( BTS_OVERWRITE==BTS_SECURE_DELETE*2 )
      pos:
        line_end: 66207
        line_start: 66207
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( BTS_FAST_SECURE==(BTS_OVERWRITE|BTS_SECURE_DELETE) )
      pos:
        line_end: 66208
        line_start: 66208
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 66217
      start: 66204
    functionDepth: 2
    functionLinenumber: 66204
    functionLinenumberEnd: 66217
    functionName: sqlite3BtreeSecureDelete
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3BtreeEnter
    - sqlite3BtreeLeave
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeSecureDelete(Btree *p, int newFlag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeEnter
      Src: /src/nss/lib/sqlite/sqlite3.c:66233,1
    - Dst: sqlite3BtreeLeave
      Src: /src/nss/lib/sqlite/sqlite3.c:66240,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - p
    - autoVacuum
    argTypes:
    - Btree*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66243
      start: 66225
    functionDepth: 2
    functionLinenumber: 66225
    functionLinenumberEnd: 66243
    functionName: sqlite3BtreeSetAutoVacuum
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeEnter
    - sqlite3BtreeLeave
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeSetAutoVacuum(Btree *p, int autoVacuum)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeEnter
      Src: /src/nss/lib/sqlite/sqlite3.c:66254,1
    - Dst: sqlite3BtreeLeave
      Src: /src/nss/lib/sqlite/sqlite3.c:66260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - Btree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66263
      start: 66249
    functionDepth: 2
    functionLinenumber: 66249
    functionLinenumberEnd: 66263
    functionName: sqlite3BtreeGetAutoVacuum
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeEnter
    - sqlite3BtreeLeave
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeGetAutoVacuum(Btree *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PagerSetFlags
      Src: /src/nss/lib/sqlite/sqlite3.c:66283,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 2
    argNames:
    - pBt
    - safety_level
    argTypes:
    - BtShared*
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66287
      start: 66273
    functionDepth: 1
    functionLinenumber: 66273
    functionLinenumberEnd: 66287
    functionName: setDefaultSyncFlag
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PagerSetFlags
    linkageType: ''
    returnType: void
    signature: void setDefaultSyncFlag(BtShared *pBt, u8 safety_level)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:66312,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:66312,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:66313,1
    - Dst: sqlite3PagerSharedLock
      Src: /src/nss/lib/sqlite/sqlite3.c:66314,1
    - Dst: btreeGetPage
      Src: /src/nss/lib/sqlite/sqlite3.c:66316,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:66322,1
    - Dst: sqlite3PagerPagecount
      Src: /src/nss/lib/sqlite/sqlite3.c:66323,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:66324,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:66338,1
    - Dst: sqlite3PagerOpenWal
      Src: /src/nss/lib/sqlite/sqlite3.c:66367,1
    - Dst: setDefaultSyncFlag
      Src: /src/nss/lib/sqlite/sqlite3.c:66371,1
    - Dst: releasePageOne
      Src: /src/nss/lib/sqlite/sqlite3.c:66373,1
    - Dst: setDefaultSyncFlag
      Src: /src/nss/lib/sqlite/sqlite3.c:66379,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:66389,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:66405,1
    - Dst: releasePageOne
      Src: /src/nss/lib/sqlite/sqlite3.c:66421,1
    - Dst: freeTempSpace
      Src: /src/nss/lib/sqlite/sqlite3.c:66424,1
    - Dst: sqlite3PagerSetPagesize
      Src: /src/nss/lib/sqlite/sqlite3.c:66425,1
    - Dst: sqlite3WritableSchema
      Src: /src/nss/lib/sqlite/sqlite3.c:66429,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:66442,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:66443,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:66469,1
    - Dst: MX_CELL_SIZE
      Src: /src/nss/lib/sqlite/sqlite3.c:66469,1
    - Dst: releasePageOne
      Src: /src/nss/lib/sqlite/sqlite3.c:66475,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 105
    argCount: 1
    argNames:
    - pBt
    argTypes:
    - BtShared*
    assertStmts:
    - condition: ( sqlite3_mutex_held(pBt->mutex) )
      pos:
        line_end: 66311
        line_start: 66311
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pBt->pPage1==0 )
      pos:
        line_end: 66312
        line_start: 66312
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pageSize & 7)==0 )
      pos:
        line_end: 66404
        line_start: 66404
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pBt->maxLeaf + 23 <= MX_CELL_SIZE(pBt) )
      pos:
        line_end: 66468
        line_start: 66468
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 66478
      start: 66305
    functionDepth: 12
    functionLinenumber: 66305
    functionLinenumberEnd: 66478
    functionName: lockBtree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - freeTempSpace
    - sqlite3PagerSetPagesize
    - get4byte
    - MX_CELL_SIZE
    - sqlite3PagerOpenWal
    - sqlite3WritableSchema
    - sqlite3PagerPagecount
    - sqlite3PagerSharedLock
    - assert
    - releasePageOne
    - setDefaultSyncFlag
    - sqlite3_mutex_held
    - memcmp
    - btreeGetPage
    linkageType: ''
    returnType: int
    signature: int lockBtree(BtShared *pBt)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - pBt
    - wrOnly
    argTypes:
    - BtShared*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66501
      start: 66493
    functionDepth: 0
    functionLinenumber: 66493
    functionLinenumberEnd: 66501
    functionName: countValidCursors
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int countValidCursors(BtShared *pBt, int wrOnly)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:66513,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:66513,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:66514,1
    - Dst: countValidCursors
      Src: /src/nss/lib/sqlite/sqlite3.c:66514,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:66517,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:66518,1
    - Dst: sqlite3PagerRefcount
      Src: /src/nss/lib/sqlite/sqlite3.c:66518,1
    - Dst: releasePageOne
      Src: /src/nss/lib/sqlite/sqlite3.c:66520,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - pBt
    argTypes:
    - BtShared*
    assertStmts:
    - condition: ( sqlite3_mutex_held(pBt->mutex) )
      pos:
        line_end: 66512
        line_start: 66512
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( countValidCursors(pBt,0)==0 || pBt->inTransaction>TRANS_NONE )
      pos:
        line_end: 66513
        line_start: 66513
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage1->aData )
      pos:
        line_end: 66516
        line_start: 66516
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3PagerRefcount(pBt->pPager)==1 )
      pos:
        line_end: 66517
        line_start: 66517
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 66522
      start: 66512
    functionDepth: 12
    functionLinenumber: 66512
    functionLinenumberEnd: 66522
    functionName: unlockBtreeIfUnused
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - countValidCursors
    - releasePageOne
    - assert
    - sqlite3PagerRefcount
    - sqlite3_mutex_held
    linkageType: ''
    returnType: void
    signature: void unlockBtreeIfUnused(BtShared *pBt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:66534,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:66534,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:66539,1
    - Dst: sqlite3PagerWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:66541,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:66543,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:66544,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:66549,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:66554,1
    - Dst: zeroPage
      Src: /src/nss/lib/sqlite/sqlite3.c:66555,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:66558,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:66559,1
    - Dst: put4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:66560,1
    - Dst: put4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:66561,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 1
    argNames:
    - pBt
    argTypes:
    - BtShared*
    assertStmts:
    - condition: ( sqlite3_mutex_held(pBt->mutex) )
      pos:
        line_end: 66533
        line_start: 66533
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pP1!=0 )
      pos:
        line_end: 66538
        line_start: 66538
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sizeof(zMagicHeader)==16 )
      pos:
        line_end: 66543
        line_start: 66543
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pBt->usableSize<=pBt->pageSize && pBt->usableSize+255>=pBt->pageSize)
      pos:
        line_end: 66548
        line_start: 66548
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pBt->autoVacuum==1 || pBt->autoVacuum==0 )
      pos:
        line_end: 66557
        line_start: 66557
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pBt->incrVacuum==1 || pBt->incrVacuum==0 )
      pos:
        line_end: 66558
        line_start: 66558
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 66566
      start: 66529
    functionDepth: 14
    functionLinenumber: 66529
    functionLinenumberEnd: 66566
    functionName: newDatabase
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - put4byte
    - assert
    - sqlite3PagerWrite
    - memset
    - sqlite3_mutex_held
    - zeroPage
    linkageType: ''
    returnType: int
    signature: int newDatabase(BtShared *pBt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeEnter
      Src: /src/nss/lib/sqlite/sqlite3.c:66575,1
    - Dst: newDatabase
      Src: /src/nss/lib/sqlite/sqlite3.c:66577,1
    - Dst: sqlite3BtreeLeave
      Src: /src/nss/lib/sqlite/sqlite3.c:66578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - Btree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66580
      start: 66573
    functionDepth: 15
    functionLinenumber: 66573
    functionLinenumberEnd: 66580
    functionName: sqlite3BtreeNewDb
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeEnter
    - sqlite3BtreeLeave
    - newDatabase
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeNewDb(Btree *p)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeEnter
      Src: /src/nss/lib/sqlite/sqlite3.c:66621,1
    - Dst: btreeIntegrity
      Src: /src/nss/lib/sqlite/sqlite3.c:66622,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:66631,1
    - Dst: IfNotOmitAV
      Src: /src/nss/lib/sqlite/sqlite3.c:66631,1
    - Dst: sqlite3PagerIsreadonly
      Src: /src/nss/lib/sqlite/sqlite3.c:66634,1
    - Dst: sqlite3ConnectionBlocked
      Src: /src/nss/lib/sqlite/sqlite3.c:66666,1
    - Dst: querySharedCacheTableLock
      Src: /src/nss/lib/sqlite/sqlite3.c:66676,1
    - Dst: lockBtree
      Src: /src/nss/lib/sqlite/sqlite3.c:66689,1
    - Dst: sqlite3PagerBegin
      Src: /src/nss/lib/sqlite/sqlite3.c:66695,1
    - Dst: sqlite3TempInMemory
      Src: /src/nss/lib/sqlite/sqlite3.c:66695,1
    - Dst: newDatabase
      Src: /src/nss/lib/sqlite/sqlite3.c:66697,1
    - Dst: unlockBtreeIfUnused
      Src: /src/nss/lib/sqlite/sqlite3.c:66708,1
    - Dst: btreeInvokeBusyHandler
      Src: /src/nss/lib/sqlite/sqlite3.c:66711,1
    - Dst: sqlite3PagerResetLockTimeout
      Src: /src/nss/lib/sqlite/sqlite3.c:66712,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:66719,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:66733,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:66745,1
    - Dst: sqlite3PagerWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:66746,1
    - Dst: put4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:66748,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:66757,1
    - Dst: sqlite3PagerOpenSavepoint
      Src: /src/nss/lib/sqlite/sqlite3.c:66764,1
    - Dst: btreeIntegrity
      Src: /src/nss/lib/sqlite/sqlite3.c:66768,1
    - Dst: sqlite3BtreeLeave
      Src: /src/nss/lib/sqlite/sqlite3.c:66769,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 103
    argCount: 3
    argNames:
    - p
    - wrflag
    - pSchemaVersion
    argTypes:
    - Btree*
    - int
    - int*
    assertStmts:
    - condition: ( pBt->inTransaction==TRANS_WRITE || IfNotOmitAV(pBt->bDoTruncate)==0
        )
      pos:
        line_end: 66630
        line_start: 66630
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->lock.pBtree==p && p->lock.iTable==1 )
      pos:
        line_end: 66718
        line_start: 66718
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !pBt->pWriter )
      pos:
        line_end: 66732
        line_start: 66732
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 66771
      start: 66617
    functionDepth: 15
    functionLinenumber: 66617
    functionLinenumberEnd: 66771
    functionName: sqlite3BtreeBeginTrans
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - btreeInvokeBusyHandler
    - get4byte
    - sqlite3BtreeLeave
    - newDatabase
    - unlockBtreeIfUnused
    - IfNotOmitAV
    - querySharedCacheTableLock
    - assert
    - sqlite3BtreeEnter
    - sqlite3ConnectionBlocked
    - sqlite3PagerWrite
    - sqlite3PagerBegin
    - btreeIntegrity
    - sqlite3TempInMemory
    - lockBtree
    - sqlite3PagerResetLockTimeout
    - put4byte
    - sqlite3PagerIsreadonly
    - sqlite3PagerOpenSavepoint
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeBeginTrans(Btree *p, int wrflag, int *pSchemaVersion)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:66787,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:66787,1
    - Dst: btreeInitPage
      Src: /src/nss/lib/sqlite/sqlite3.c:66788,1
    - Dst: findCell
      Src: /src/nss/lib/sqlite/sqlite3.c:66793,1
    - Dst: ptrmapPutOvflPtr
      Src: /src/nss/lib/sqlite/sqlite3.c:66795,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:66798,1
    - Dst: ptrmapPut
      Src: /src/nss/lib/sqlite/sqlite3.c:66799,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:66804,1
    - Dst: ptrmapPut
      Src: /src/nss/lib/sqlite/sqlite3.c:66805,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - pPage
    argTypes:
    - MemPage*
    assertStmts:
    - condition: ( sqlite3_mutex_held(pPage->pBt->mutex) )
      pos:
        line_end: 66786
        line_start: 66786
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 66809
      start: 66780
    functionDepth: 16
    functionLinenumber: 66780
    functionLinenumberEnd: 66809
    functionName: setChildPtrmaps
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - findCell
    - ptrmapPutOvflPtr
    - get4byte
    - ptrmapPut
    - assert
    - sqlite3_mutex_held
    - btreeInitPage
    linkageType: ''
    returnType: int
    signature: int setChildPtrmaps(MemPage *pPage)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:66826,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:66826,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:66827,1
    - Dst: sqlite3PagerIswriteable
      Src: /src/nss/lib/sqlite/sqlite3.c:66827,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:66830,1
    - Dst: SQLITE_CORRUPT_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:66831,1
    - Dst: put4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:66833,1
    - Dst: btreeInitPage
      Src: /src/nss/lib/sqlite/sqlite3.c:66839,1
    - Dst: findCell
      Src: /src/nss/lib/sqlite/sqlite3.c:66844,1
    - Dst: MemPage*::xParseCell
      Src: /src/nss/lib/sqlite/sqlite3.c:66847,1
    - Dst: SQLITE_CORRUPT_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:66850,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:66852,1
    - Dst: put4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:66853,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:66858,1
    - Dst: put4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:66859,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:66867,1
    - Dst: SQLITE_CORRUPT_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:66868,1
    - Dst: put4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:66870,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 4
    argNames:
    - pPage
    - iFrom
    - iTo
    - eType
    argTypes:
    - MemPage*
    - Pgno
    - Pgno
    - u8
    assertStmts:
    - condition: ( sqlite3_mutex_held(pPage->pBt->mutex) )
      pos:
        line_end: 66825
        line_start: 66825
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3PagerIswriteable(pPage->pDbPage) )
      pos:
        line_end: 66826
        line_start: 66826
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 66874
      start: 66825
    functionDepth: 3
    functionLinenumber: 66825
    functionLinenumberEnd: 66874
    functionName: modifyPagePointer
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - findCell
    - put4byte
    - get4byte
    - SQLITE_CORRUPT_PAGE
    - assert
    - MemPage*::xParseCell
    - sqlite3PagerIswriteable
    - sqlite3_mutex_held
    - btreeInitPage
    linkageType: ''
    returnType: int
    signature: int modifyPagePointer(MemPage *pPage, Pgno iFrom, Pgno iTo, u8 eType)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:66899,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:66901,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:66901,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:66902,1
    - Dst: TRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:66906,1
    - Dst: sqlite3PagerMovepage
      Src: /src/nss/lib/sqlite/sqlite3.c:66908,1
    - Dst: setChildPtrmaps
      Src: /src/nss/lib/sqlite/sqlite3.c:66923,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:66928,1
    - Dst: ptrmapPut
      Src: /src/nss/lib/sqlite/sqlite3.c:66930,1
    - Dst: btreeGetPage
      Src: /src/nss/lib/sqlite/sqlite3.c:66942,1
    - Dst: sqlite3PagerWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:66946,1
    - Dst: releasePage
      Src: /src/nss/lib/sqlite/sqlite3.c:66948,1
    - Dst: modifyPagePointer
      Src: /src/nss/lib/sqlite/sqlite3.c:66951,1
    - Dst: releasePage
      Src: /src/nss/lib/sqlite/sqlite3.c:66952,1
    - Dst: ptrmapPut
      Src: /src/nss/lib/sqlite/sqlite3.c:66954,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 6
    argNames:
    - pBt
    - pDbPage
    - eType
    - iPtrPage
    - iFreePage
    - isCommit
    argTypes:
    - BtShared*
    - MemPage*
    - u8
    - Pgno
    - Pgno
    - int
    assertStmts:
    - condition: "( eType==PTRMAP_OVERFLOW2 || eType==PTRMAP_OVERFLOW1 || \n      eType==PTRMAP_BTREE
        || eType==PTRMAP_ROOTPAGE )"
      pos:
        line_end: 66899
        line_start: 66898
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3_mutex_held(pBt->mutex) )
      pos:
        line_end: 66900
        line_start: 66900
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pDbPage->pBt==pBt )
      pos:
        line_end: 66901
        line_start: 66901
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 66958
      start: 66886
    functionDepth: 17
    functionLinenumber: 66886
    functionLinenumberEnd: 66958
    functionName: relocatePage
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - setChildPtrmaps
    - ptrmapPut
    - get4byte
    - sqlite3PagerMovepage
    - assert
    - sqlite3PagerWrite
    - releasePage
    - modifyPagePointer
    - sqlite3_mutex_held
    - TRACE
    - btreeGetPage
    linkageType: ''
    returnType: int
    signature: "int relocatePage(\n  BtShared *pBt,           /* Btree */\n  MemPage
      *pDbPage,        /* Open page to move */\n  u8 eType,                /* Pointer
      map 'type' entry for pDbPage */\n  Pgno iPtrPage,           /* Pointer map 'page-no'
      entry for pDbPage */\n  Pgno iFreePage,          /* The location to move pDbPage
      to */\n  int isCommit             /* isCommit flag passed to sqlite3PagerMovepage
      */\n)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:66984,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:66984,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:66985,1
    - Dst: PTRMAP_ISPAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:66987,1
    - Dst: PENDING_BYTE_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:66987,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:66991,1
    - Dst: ptrmapGet
      Src: /src/nss/lib/sqlite/sqlite3.c:66996,1
    - Dst: allocateBtreePage
      Src: /src/nss/lib/sqlite/sqlite3.c:67013,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:67017,1
    - Dst: releasePage
      Src: /src/nss/lib/sqlite/sqlite3.c:67018,1
    - Dst: btreeGetPage
      Src: /src/nss/lib/sqlite/sqlite3.c:67026,1
    - Dst: allocateBtreePage
      Src: /src/nss/lib/sqlite/sqlite3.c:67044,1
    - Dst: releasePage
      Src: /src/nss/lib/sqlite/sqlite3.c:67046,1
    - Dst: releasePage
      Src: /src/nss/lib/sqlite/sqlite3.c:67049,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:67051,1
    - Dst: relocatePage
      Src: /src/nss/lib/sqlite/sqlite3.c:67053,1
    - Dst: releasePage
      Src: /src/nss/lib/sqlite/sqlite3.c:67054,1
    - Dst: PENDING_BYTE_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:67064,1
    - Dst: PTRMAP_ISPAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:67064,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 57
    argCount: 4
    argNames:
    - pBt
    - nFin
    - iLastPg
    - bCommit
    argTypes:
    - BtShared*
    - Pgno
    - Pgno
    - int
    assertStmts:
    - condition: ( iFreePg<iLastPg )
      pos:
        line_end: 67050
        line_start: 67050
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3_mutex_held(pBt->mutex) )
      pos:
        line_end: 66983
        line_start: 66983
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iLastPg>nFin )
      pos:
        line_end: 66984
        line_start: 66984
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iFreePg==iLastPg )
      pos:
        line_end: 67016
        line_start: 67016
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 67069
      start: 66980
    functionDepth: 18
    functionLinenumber: 66980
    functionLinenumberEnd: 67069
    functionName: incrVacuumStep
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - get4byte
    - relocatePage
    - allocateBtreePage
    - assert
    - PENDING_BYTE_PAGE
    - releasePage
    - sqlite3_mutex_held
    - ptrmapGet
    - btreeGetPage
    - PTRMAP_ISPAGE
    linkageType: ''
    returnType: int
    signature: int incrVacuumStep(BtShared *pBt, Pgno nFin, Pgno iLastPg, int bCommit)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PTRMAP_PAGENO
      Src: /src/nss/lib/sqlite/sqlite3.c:67082,1
    - Dst: PENDING_BYTE_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:67084,1
    - Dst: PENDING_BYTE_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:67084,1
    - Dst: PTRMAP_ISPAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:67087,1
    - Dst: PENDING_BYTE_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:67087,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - pBt
    - nOrig
    - nFree
    argTypes:
    - BtShared*
    - Pgno
    - Pgno
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67092
      start: 67076
    functionDepth: 1
    functionLinenumber: 67076
    functionLinenumberEnd: 67092
    functionName: finalDbSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - PENDING_BYTE_PAGE
    - PTRMAP_PAGENO
    - PTRMAP_ISPAGE
    linkageType: ''
    returnType: Pgno
    signature: Pgno finalDbSize(BtShared *pBt, Pgno nOrig, Pgno nFree)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeEnter
      Src: /src/nss/lib/sqlite/sqlite3.c:67106,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:67107,1
    - Dst: btreePagecount
      Src: /src/nss/lib/sqlite/sqlite3.c:67111,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:67112,1
    - Dst: finalDbSize
      Src: /src/nss/lib/sqlite/sqlite3.c:67113,1
    - Dst: saveAllCursors
      Src: /src/nss/lib/sqlite/sqlite3.c:67118,1
    - Dst: invalidateAllOverflowCache
      Src: /src/nss/lib/sqlite/sqlite3.c:67120,1
    - Dst: incrVacuumStep
      Src: /src/nss/lib/sqlite/sqlite3.c:67121,1
    - Dst: sqlite3PagerWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:67124,1
    - Dst: put4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:67125,1
    - Dst: sqlite3BtreeLeave
      Src: /src/nss/lib/sqlite/sqlite3.c:67131,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - p
    argTypes:
    - Btree*
    assertStmts:
    - condition: ( pBt->inTransaction==TRANS_WRITE && p->inTrans==TRANS_WRITE )
      pos:
        line_end: 67106
        line_start: 67106
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 67133
      start: 67102
    functionDepth: 19
    functionLinenumber: 67102
    functionLinenumberEnd: 67133
    functionName: sqlite3BtreeIncrVacuum
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - btreePagecount
    - saveAllCursors
    - put4byte
    - get4byte
    - invalidateAllOverflowCache
    - finalDbSize
    - sqlite3BtreeLeave
    - assert
    - sqlite3BtreeEnter
    - incrVacuumStep
    - sqlite3PagerWrite
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeIncrVacuum(Btree *p)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PagerRefcount
      Src: /src/nss/lib/sqlite/sqlite3.c:67147,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:67149,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:67149,1
    - Dst: invalidateAllOverflowCache
      Src: /src/nss/lib/sqlite/sqlite3.c:67150,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:67151,1
    - Dst: btreePagecount
      Src: /src/nss/lib/sqlite/sqlite3.c:67158,1
    - Dst: PTRMAP_ISPAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:67159,1
    - Dst: PENDING_BYTE_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:67159,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:67167,1
    - Dst: finalDbSize
      Src: /src/nss/lib/sqlite/sqlite3.c:67168,1
    - Dst: saveAllCursors
      Src: /src/nss/lib/sqlite/sqlite3.c:67171,1
    - Dst: incrVacuumStep
      Src: /src/nss/lib/sqlite/sqlite3.c:67174,1
    - Dst: sqlite3PagerWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:67177,1
    - Dst: put4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:67178,1
    - Dst: put4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:67179,1
    - Dst: put4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:67180,1
    - Dst: sqlite3PagerRollback
      Src: /src/nss/lib/sqlite/sqlite3.c:67185,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:67189,1
    - Dst: sqlite3PagerRefcount
      Src: /src/nss/lib/sqlite/sqlite3.c:67189,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 1
    argNames:
    - pBt
    argTypes:
    - BtShared*
    assertStmts:
    - condition: (pBt->autoVacuum)
      pos:
        line_end: 67150
        line_start: 67150
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nRef>=sqlite3PagerRefcount(pPager) )
      pos:
        line_end: 67188
        line_start: 67188
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3_mutex_held(pBt->mutex) )
      pos:
        line_end: 67148
        line_start: 67148
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 67191
      start: 67144
    functionDepth: 19
    functionLinenumber: 67144
    functionLinenumberEnd: 67191
    functionName: autoVacuumCommit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - btreePagecount
    - saveAllCursors
    - put4byte
    - invalidateAllOverflowCache
    - get4byte
    - finalDbSize
    - sqlite3PagerRollback
    - assert
    - sqlite3PagerRefcount
    - PENDING_BYTE_PAGE
    - incrVacuumStep
    - sqlite3PagerWrite
    - sqlite3_mutex_held
    - PTRMAP_ISPAGE
    linkageType: ''
    returnType: int
    signature: int autoVacuumCommit(BtShared *pBt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67195
      start: 67194
    functionDepth: 0
    functionLinenumber: 67194
    functionLinenumberEnd: 67195
    functionName: setChildPtrmaps
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: setChildPtrmaps(x)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeEnter
      Src: /src/nss/lib/sqlite/sqlite3.c:67227,1
    - Dst: autoVacuumCommit
      Src: /src/nss/lib/sqlite/sqlite3.c:67230,1
    - Dst: sqlite3BtreeLeave
      Src: /src/nss/lib/sqlite/sqlite3.c:67232,1
    - Dst: sqlite3PagerTruncateImage
      Src: /src/nss/lib/sqlite/sqlite3.c:67237,1
    - Dst: sqlite3PagerCommitPhaseOne
      Src: /src/nss/lib/sqlite/sqlite3.c:67240,1
    - Dst: sqlite3BtreeLeave
      Src: /src/nss/lib/sqlite/sqlite3.c:67241,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - p
    - zMaster
    argTypes:
    - Btree*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67244
      start: 67223
    functionDepth: 20
    functionLinenumber: 67223
    functionLinenumberEnd: 67244
    functionName: sqlite3BtreeCommitPhaseOne
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - autoVacuumCommit
    - sqlite3PagerCommitPhaseOne
    - sqlite3BtreeLeave
    - sqlite3PagerTruncateImage
    - sqlite3BtreeEnter
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeCommitPhaseOne(Btree *p, const char *zMaster)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:67253,1
    - Dst: sqlite3BtreeHoldsMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:67253,1
    - Dst: downgradeAllSharedCacheTableLocks
      Src: /src/nss/lib/sqlite/sqlite3.c:67262,1
    - Dst: clearAllSharedCacheTableLocks
      Src: /src/nss/lib/sqlite/sqlite3.c:67270,1
    - Dst: unlockBtreeIfUnused
      Src: /src/nss/lib/sqlite/sqlite3.c:67280,1
    - Dst: btreeIntegrity
      Src: /src/nss/lib/sqlite/sqlite3.c:67283,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - p
    argTypes:
    - Btree*
    assertStmts:
    - condition: ( sqlite3BtreeHoldsMutex(p) )
      pos:
        line_end: 67252
        line_start: 67252
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 67284
      start: 67250
    functionDepth: 13
    functionLinenumber: 67250
    functionLinenumberEnd: 67284
    functionName: btreeEndTransaction
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - btreeIntegrity
    - sqlite3BtreeHoldsMutex
    - assert
    - unlockBtreeIfUnused
    - downgradeAllSharedCacheTableLocks
    - clearAllSharedCacheTableLocks
    linkageType: ''
    returnType: void
    signature: void btreeEndTransaction(Btree *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeEnter
      Src: /src/nss/lib/sqlite/sqlite3.c:67315,1
    - Dst: btreeIntegrity
      Src: /src/nss/lib/sqlite/sqlite3.c:67316,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:67324,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:67325,1
    - Dst: sqlite3PagerCommitPhaseTwo
      Src: /src/nss/lib/sqlite/sqlite3.c:67326,1
    - Dst: sqlite3BtreeLeave
      Src: /src/nss/lib/sqlite/sqlite3.c:67328,1
    - Dst: btreeClearHasContent
      Src: /src/nss/lib/sqlite/sqlite3.c:67333,1
    - Dst: btreeEndTransaction
      Src: /src/nss/lib/sqlite/sqlite3.c:67336,1
    - Dst: sqlite3BtreeLeave
      Src: /src/nss/lib/sqlite/sqlite3.c:67337,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - p
    - bCleanup
    argTypes:
    - Btree*
    - int
    assertStmts:
    - condition: ( pBt->nTransaction>0 )
      pos:
        line_end: 67324
        line_start: 67324
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pBt->inTransaction==TRANS_WRITE )
      pos:
        line_end: 67323
        line_start: 67323
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 67339
      start: 67312
    functionDepth: 14
    functionLinenumber: 67312
    functionLinenumberEnd: 67339
    functionName: sqlite3BtreeCommitPhaseTwo
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - btreeIntegrity
    - sqlite3BtreeLeave
    - assert
    - sqlite3BtreeEnter
    - btreeEndTransaction
    - btreeClearHasContent
    - sqlite3PagerCommitPhaseTwo
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeCommitPhaseTwo(Btree *p, int bCleanup)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeEnter
      Src: /src/nss/lib/sqlite/sqlite3.c:67346,1
    - Dst: sqlite3BtreeCommitPhaseOne
      Src: /src/nss/lib/sqlite/sqlite3.c:67347,1
    - Dst: sqlite3BtreeCommitPhaseTwo
      Src: /src/nss/lib/sqlite/sqlite3.c:67349,1
    - Dst: sqlite3BtreeLeave
      Src: /src/nss/lib/sqlite/sqlite3.c:67351,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - Btree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67353
      start: 67344
    functionDepth: 21
    functionLinenumber: 67344
    functionLinenumberEnd: 67353
    functionName: sqlite3BtreeCommit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeEnter
    - sqlite3BtreeCommitPhaseTwo
    - sqlite3BtreeLeave
    - sqlite3BtreeCommitPhaseOne
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeCommit(Btree *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:67385,1
    - Dst: sqlite3BtreeEnter
      Src: /src/nss/lib/sqlite/sqlite3.c:67387,1
    - Dst: saveCursorPosition
      Src: /src/nss/lib/sqlite/sqlite3.c:67391,1
    - Dst: sqlite3BtreeTripAllCursors
      Src: /src/nss/lib/sqlite/sqlite3.c:67393,1
    - Dst: sqlite3BtreeClearCursor
      Src: /src/nss/lib/sqlite/sqlite3.c:67398,1
    - Dst: btreeReleaseAllCursorPages
      Src: /src/nss/lib/sqlite/sqlite3.c:67402,1
    - Dst: sqlite3BtreeLeave
      Src: /src/nss/lib/sqlite/sqlite3.c:67404,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 3
    argNames:
    - pBtree
    - errCode
    - writeOnly
    argTypes:
    - Btree*
    - int
    - int
    assertStmts:
    - condition: ( (writeOnly==0 || writeOnly==1) && BTCF_WriteFlag==1 )
      pos:
        line_end: 67384
        line_start: 67384
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 67407
      start: 67381
    functionDepth: 7
    functionLinenumber: 67381
    functionLinenumberEnd: 67407
    functionName: sqlite3BtreeTripAllCursors
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3BtreeTripAllCursors
    - sqlite3BtreeClearCursor
    - btreeReleaseAllCursorPages
    - sqlite3BtreeLeave
    - assert
    - sqlite3BtreeEnter
    - saveCursorPosition
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeTripAllCursors(Btree *pBtree, int errCode,
      int writeOnly)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:67414,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:67415,1
    - Dst: sqlite3PagerPagecount
      Src: /src/nss/lib/sqlite/sqlite3.c:67416,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:67417,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pBt
    - pPage1
    argTypes:
    - BtShared*
    - MemPage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67419
      start: 67413
    functionDepth: 1
    functionLinenumber: 67413
    functionLinenumberEnd: 67419
    functionName: btreeSetNPage
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - get4byte
    - testcase
    - sqlite3PagerPagecount
    linkageType: ''
    returnType: void
    signature: void btreeSetNPage(BtShared *pBt, MemPage *pPage1)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:67437,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:67438,1
    - Dst: sqlite3BtreeEnter
      Src: /src/nss/lib/sqlite/sqlite3.c:67439,1
    - Dst: saveAllCursors
      Src: /src/nss/lib/sqlite/sqlite3.c:67441,1
    - Dst: sqlite3BtreeTripAllCursors
      Src: /src/nss/lib/sqlite/sqlite3.c:67447,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:67448,1
    - Dst: btreeIntegrity
      Src: /src/nss/lib/sqlite/sqlite3.c:67451,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:67456,1
    - Dst: sqlite3PagerRollback
      Src: /src/nss/lib/sqlite/sqlite3.c:67457,1
    - Dst: btreeGetPage
      Src: /src/nss/lib/sqlite/sqlite3.c:67465,1
    - Dst: btreeSetNPage
      Src: /src/nss/lib/sqlite/sqlite3.c:67466,1
    - Dst: releasePageOne
      Src: /src/nss/lib/sqlite/sqlite3.c:67467,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:67469,1
    - Dst: countValidCursors
      Src: /src/nss/lib/sqlite/sqlite3.c:67469,1
    - Dst: btreeClearHasContent
      Src: /src/nss/lib/sqlite/sqlite3.c:67471,1
    - Dst: btreeEndTransaction
      Src: /src/nss/lib/sqlite/sqlite3.c:67474,1
    - Dst: sqlite3BtreeLeave
      Src: /src/nss/lib/sqlite/sqlite3.c:67475,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 3
    argNames:
    - p
    - tripCode
    - writeOnly
    argTypes:
    - Btree*
    - int
    - int
    assertStmts:
    - condition: ( writeOnly==1 || writeOnly==0 )
      pos:
        line_end: 67436
        line_start: 67436
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( tripCode==SQLITE_ABORT_ROLLBACK || tripCode==SQLITE_OK )
      pos:
        line_end: 67437
        line_start: 67437
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc==SQLITE_OK || (writeOnly==0 && rc2==SQLITE_OK) )
      pos:
        line_end: 67447
        line_start: 67447
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( TRANS_WRITE==pBt->inTransaction )
      pos:
        line_end: 67455
        line_start: 67455
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( countValidCursors(pBt, 1)==0 )
      pos:
        line_end: 67468
        line_start: 67468
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 67477
      start: 67432
    functionDepth: 14
    functionLinenumber: 67432
    functionLinenumberEnd: 67477
    functionName: sqlite3BtreeRollback
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - countValidCursors
    - sqlite3BtreeTripAllCursors
    - saveAllCursors
    - btreeClearHasContent
    - btreeIntegrity
    - sqlite3BtreeLeave
    - sqlite3PagerRollback
    - assert
    - sqlite3BtreeEnter
    - releasePageOne
    - btreeEndTransaction
    - btreeSetNPage
    - btreeGetPage
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeRollback(Btree *p, int tripCode, int writeOnly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeEnter
      Src: /src/nss/lib/sqlite/sqlite3.c:67500,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:67501,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:67502,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:67503,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:67504,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:67505,1
    - Dst: sqlite3PagerOpenSavepoint
      Src: /src/nss/lib/sqlite/sqlite3.c:67511,1
    - Dst: sqlite3BtreeLeave
      Src: /src/nss/lib/sqlite/sqlite3.c:67512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - p
    - iStatement
    argTypes:
    - Btree*
    - int
    assertStmts:
    - condition: ( iStatement>0 )
      pos:
        line_end: 67502
        line_start: 67502
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iStatement>p->db->nSavepoint )
      pos:
        line_end: 67503
        line_start: 67503
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pBt->btsFlags & BTS_READ_ONLY)==0 )
      pos:
        line_end: 67501
        line_start: 67501
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->inTrans==TRANS_WRITE )
      pos:
        line_end: 67500
        line_start: 67500
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pBt->inTransaction==TRANS_WRITE )
      pos:
        line_end: 67504
        line_start: 67504
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 67514
      start: 67497
    functionDepth: 9
    functionLinenumber: 67497
    functionLinenumberEnd: 67514
    functionName: sqlite3BtreeBeginStmt
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3BtreeEnter
    - sqlite3BtreeLeave
    - sqlite3PagerOpenSavepoint
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeBeginStmt(Btree *p, int iStatement)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:67532,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:67533,1
    - Dst: sqlite3BtreeEnter
      Src: /src/nss/lib/sqlite/sqlite3.c:67534,1
    - Dst: saveAllCursors
      Src: /src/nss/lib/sqlite/sqlite3.c:67536,1
    - Dst: sqlite3PagerSavepoint
      Src: /src/nss/lib/sqlite/sqlite3.c:67539,1
    - Dst: newDatabase
      Src: /src/nss/lib/sqlite/sqlite3.c:67545,1
    - Dst: btreeSetNPage
      Src: /src/nss/lib/sqlite/sqlite3.c:67546,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:67550,1
    - Dst: sqlite3BtreeLeave
      Src: /src/nss/lib/sqlite/sqlite3.c:67552,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 3
    argNames:
    - p
    - op
    - iSavepoint
    argTypes:
    - Btree*
    - int
    - int
    assertStmts:
    - condition: ( op==SAVEPOINT_RELEASE || op==SAVEPOINT_ROLLBACK )
      pos:
        line_end: 67531
        line_start: 67531
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iSavepoint>=0 || (iSavepoint==-1 && op==SAVEPOINT_ROLLBACK) )
      pos:
        line_end: 67532
        line_start: 67532
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( CORRUPT_DB || pBt->nPage>0 )
      pos:
        line_end: 67549
        line_start: 67549
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 67555
      start: 67528
    functionDepth: 15
    functionLinenumber: 67528
    functionLinenumberEnd: 67555
    functionName: sqlite3BtreeSavepoint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - saveAllCursors
    - sqlite3BtreeLeave
    - newDatabase
    - assert
    - sqlite3BtreeEnter
    - sqlite3PagerSavepoint
    - btreeSetNPage
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeSavepoint(Btree *p, int op, int iSavepoint)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:67609,1
    - Dst: sqlite3BtreeHoldsMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:67609,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:67610,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:67619,1
    - Dst: hasSharedCacheTableLock
      Src: /src/nss/lib/sqlite/sqlite3.c:67619,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:67620,1
    - Dst: hasReadConflicts
      Src: /src/nss/lib/sqlite/sqlite3.c:67620,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:67623,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:67624,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:67625,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:67626,1
    - Dst: allocateTempSpace
      Src: /src/nss/lib/sqlite/sqlite3.c:67629,1
    - Dst: btreePagecount
      Src: /src/nss/lib/sqlite/sqlite3.c:67632,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:67633,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 5
    argNames:
    - p
    - iTable
    - wrFlag
    - pKeyInfo
    - pCur
    argTypes:
    - Btree*
    - int
    - int
    - struct KeyInfo*
    - BtCursor*
    assertStmts:
    - condition: ( sqlite3BtreeHoldsMutex(p) )
      pos:
        line_end: 67608
        line_start: 67608
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( hasSharedCacheTableLock(p, iTable, pKeyInfo!=0, (wrFlag?2:1)) )
      pos:
        line_end: 67618
        line_start: 67618
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( wrFlag==0 \n       || wrFlag==BTREE_WRCSR \n       || wrFlag==(BTREE_WRCSR|BTREE_FORDELETE)
        \n  )"
      pos:
        line_end: 67612
        line_start: 67609
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( wrFlag==0 || !hasReadConflicts(p, iTable) )
      pos:
        line_end: 67619
        line_start: 67619
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->inTrans>TRANS_NONE )
      pos:
        line_end: 67622
        line_start: 67622
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( wrFlag==0 || p->inTrans==TRANS_WRITE )
      pos:
        line_end: 67623
        line_start: 67623
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pBt->pPage1 && pBt->pPage1->aData )
      pos:
        line_end: 67624
        line_start: 67624
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( wrFlag==0 || (pBt->btsFlags & BTS_READ_ONLY)==0 )
      pos:
        line_end: 67625
        line_start: 67625
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( wrFlag==0 )
      pos:
        line_end: 67632
        line_start: 67632
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 67658
      start: 67599
    functionDepth: 8
    functionLinenumber: 67599
    functionLinenumberEnd: 67658
    functionName: btreeCursor
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - btreePagecount
    - hasSharedCacheTableLock
    - sqlite3BtreeHoldsMutex
    - assert
    - hasReadConflicts
    - allocateTempSpace
    linkageType: ''
    returnType: int
    signature: "int btreeCursor(\n  Btree *p,                              /* The
      btree */\n  int iTable,                            /* Root page of table to
      open */\n  int wrFlag,                            /* 1 to write. 0 read-only
      */\n  struct KeyInfo *pKeyInfo,              /* First arg to comparison function
      */\n  BtCursor *pCur                         /* Space for new cursor */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeEnter
      Src: /src/nss/lib/sqlite/sqlite3.c:67670,1
    - Dst: btreeCursor
      Src: /src/nss/lib/sqlite/sqlite3.c:67671,1
    - Dst: sqlite3BtreeLeave
      Src: /src/nss/lib/sqlite/sqlite3.c:67672,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - p
    - iTable
    - wrFlag
    - pKeyInfo
    - pCur
    argTypes:
    - Btree*
    - int
    - int
    - struct KeyInfo*
    - BtCursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67675
      start: 67659
    functionDepth: 9
    functionLinenumber: 67659
    functionLinenumberEnd: 67675
    functionName: sqlite3BtreeCursor
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeEnter
    - btreeCursor
    - sqlite3BtreeLeave
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3BtreeCursor(\n  Btree *p,                                   /*
      The btree */\n  int iTable,                                 /* Root page of
      table to open */\n  int wrFlag,                                 /* 1 to write.
      0 read-only */\n  struct KeyInfo *pKeyInfo,                   /* First arg to
      xCompare() */\n  BtCursor *pCur                              /* Write new cursor
      here */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ROUND8
      Src: /src/nss/lib/sqlite/sqlite3.c:67686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67687
      start: 67685
    functionDepth: 1
    functionLinenumber: 67685
    functionLinenumberEnd: 67687
    functionName: sqlite3BtreeCursorSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ROUND8
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeCursorSize(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:67698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - BtCursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67699
      start: 67697
    functionDepth: 0
    functionLinenumber: 67697
    functionLinenumberEnd: 67699
    functionName: sqlite3BtreeCursorZero
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeCursorZero(BtCursor *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeEnter
      Src: /src/nss/lib/sqlite/sqlite3.c:67709,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:67710,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:67721,1
    - Dst: btreeReleaseAllCursorPages
      Src: /src/nss/lib/sqlite/sqlite3.c:67723,1
    - Dst: unlockBtreeIfUnused
      Src: /src/nss/lib/sqlite/sqlite3.c:67724,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:67725,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:67726,1
    - Dst: sqlite3BtreeLeave
      Src: /src/nss/lib/sqlite/sqlite3.c:67727,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - pCur
    argTypes:
    - BtCursor*
    assertStmts:
    - condition: ( pBt->pCursor!=0 )
      pos:
        line_end: 67709
        line_start: 67709
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 67731
      start: 67705
    functionDepth: 13
    functionLinenumber: 67705
    functionLinenumberEnd: 67731
    functionName: sqlite3BtreeCloseCursor
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - ALWAYS
    - btreeReleaseAllCursorPages
    - sqlite3BtreeLeave
    - assert
    - sqlite3BtreeEnter
    - unlockBtreeIfUnused
    - sqlite3_free
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeCloseCursor(BtCursor *pCur)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - CellInfo*
    - CellInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67749
      start: 67742
    functionDepth: 0
    functionLinenumber: 67742
    functionLinenumberEnd: 67749
    functionName: cellInfoEqual
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cellInfoEqual(CellInfo *a, CellInfo *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:67752,1
    - Dst: btreeParseCell
      Src: /src/nss/lib/sqlite/sqlite3.c:67753,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:67754,1
    - Dst: cellInfoEqual
      Src: /src/nss/lib/sqlite/sqlite3.c:67754,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pCur
    argTypes:
    - BtCursor*
    assertStmts:
    - condition: ( CORRUPT_DB || cellInfoEqual(&info, &pCur->info) )
      pos:
        line_end: 67753
        line_start: 67753
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 67755
      start: 67750
    functionDepth: 2
    functionLinenumber: 67750
    functionLinenumberEnd: 67755
    functionName: assertCellInfo
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - btreeParseCell
    - cellInfoEqual
    - assert
    linkageType: ''
    returnType: void
    signature: void assertCellInfo(BtCursor *pCur)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: btreeParseCell
      Src: /src/nss/lib/sqlite/sqlite3.c:67762,1
    - Dst: assertCellInfo
      Src: /src/nss/lib/sqlite/sqlite3.c:67764,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pCur
    argTypes:
    - BtCursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67766
      start: 67759
    functionDepth: 3
    functionLinenumber: 67759
    functionLinenumberEnd: 67766
    functionName: getCellInfo
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - btreeParseCell
    - assertCellInfo
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: SQLITE_NOINLINE getCellInfo(BtCursor *pCur)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - pCur
    argTypes:
    - BtCursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67776
      start: 67774
    functionDepth: 0
    functionLinenumber: 67774
    functionLinenumberEnd: 67776
    functionName: sqlite3BtreeCursorIsValid
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeCursorIsValid(BtCursor *pCur)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:67779,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pCur
    argTypes:
    - BtCursor*
    assertStmts:
    - condition: ( pCur!=0 )
      pos:
        line_end: 67778
        line_start: 67778
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 67781
      start: 67778
    functionDepth: 0
    functionLinenumber: 67778
    functionLinenumberEnd: 67781
    functionName: sqlite3BtreeCursorIsValidNN
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeCursorIsValidNN(BtCursor *pCur)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:67790,1
    - Dst: cursorHoldsMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:67790,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:67791,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:67792,1
    - Dst: getCellInfo
      Src: /src/nss/lib/sqlite/sqlite3.c:67793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - pCur
    argTypes:
    - BtCursor*
    assertStmts:
    - condition: ( cursorHoldsMutex(pCur) )
      pos:
        line_end: 67789
        line_start: 67789
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->eState==CURSOR_VALID )
      pos:
        line_end: 67790
        line_start: 67790
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->curIntKey )
      pos:
        line_end: 67791
        line_start: 67791
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 67795
      start: 67789
    functionDepth: 4
    functionLinenumber: 67789
    functionLinenumberEnd: 67795
    functionName: sqlite3BtreeIntegerKey
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - getCellInfo
    - cursorHoldsMutex
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeIntegerKey(BtCursor *pCur)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:67803,1
    - Dst: cursorHoldsMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:67803,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:67804,1
    - Dst: getCellInfo
      Src: /src/nss/lib/sqlite/sqlite3.c:67805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pCur
    argTypes:
    - BtCursor*
    assertStmts:
    - condition: ( cursorHoldsMutex(pCur) )
      pos:
        line_end: 67802
        line_start: 67802
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->eState==CURSOR_VALID )
      pos:
        line_end: 67803
        line_start: 67803
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 67808
      start: 67802
    functionDepth: 4
    functionLinenumber: 67802
    functionLinenumberEnd: 67808
    functionName: sqlite3BtreeOffset
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - getCellInfo
    - cursorHoldsMutex
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeOffset(BtCursor *pCur)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:67821,1
    - Dst: cursorHoldsMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:67821,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:67822,1
    - Dst: getCellInfo
      Src: /src/nss/lib/sqlite/sqlite3.c:67823,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pCur
    argTypes:
    - BtCursor*
    assertStmts:
    - condition: ( cursorHoldsMutex(pCur) )
      pos:
        line_end: 67820
        line_start: 67820
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->eState==CURSOR_VALID )
      pos:
        line_end: 67821
        line_start: 67821
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 67825
      start: 67820
    functionDepth: 4
    functionLinenumber: 67820
    functionLinenumberEnd: 67825
    functionName: sqlite3BtreePayloadSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - getCellInfo
    - cursorHoldsMutex
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreePayloadSize(BtCursor *pCur)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:67841,1
    - Dst: cursorHoldsMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:67841,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:67842,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pCur
    argTypes:
    - BtCursor*
    assertStmts:
    - condition: ( cursorHoldsMutex(pCur) )
      pos:
        line_end: 67840
        line_start: 67840
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->eState==CURSOR_VALID )
      pos:
        line_end: 67841
        line_start: 67841
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 67844
      start: 67840
    functionDepth: 2
    functionLinenumber: 67840
    functionLinenumberEnd: 67844
    functionName: sqlite3_int64::sqlite3BtreeMaxRecordSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - cursorHoldsMutex
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3_int64 sqlite3BtreeMaxRecordSize(BtCursor *pCur)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:67875,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:67875,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:67876,1
    - Dst: PTRMAP_ISPAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:67890,1
    - Dst: PENDING_BYTE_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:67890,1
    - Dst: btreePagecount
      Src: /src/nss/lib/sqlite/sqlite3.c:67894,1
    - Dst: ptrmapGet
      Src: /src/nss/lib/sqlite/sqlite3.c:67895,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:67904,1
    - Dst: btreeGetPage
      Src: /src/nss/lib/sqlite/sqlite3.c:67906,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:67907,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:67909,1
    - Dst: releasePage
      Src: /src/nss/lib/sqlite/sqlite3.c:67917,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 4
    argNames:
    - pBt
    - ovfl
    - ppPage
    - pPgnoNext
    argTypes:
    - BtShared*
    - Pgno
    - MemPage**
    - Pgno*
    assertStmts:
    - condition: ( sqlite3_mutex_held(pBt->mutex) )
      pos:
        line_end: 67874
        line_start: 67874
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (pPgnoNext)
      pos:
        line_end: 67875
        line_start: 67875
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( next==0 || rc==SQLITE_DONE )
      pos:
        line_end: 67903
        line_start: 67903
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc==SQLITE_OK || pPage==0 )
      pos:
        line_end: 67906
        line_start: 67906
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 67920
      start: 67865
    functionDepth: 7
    functionLinenumber: 67865
    functionLinenumberEnd: 67920
    functionName: getOverflowPage
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - btreePagecount
    - get4byte
    - assert
    - PENDING_BYTE_PAGE
    - releasePage
    - sqlite3_mutex_held
    - ptrmapGet
    - btreeGetPage
    - PTRMAP_ISPAGE
    linkageType: ''
    returnType: int
    signature: "int getOverflowPage(\n  BtShared *pBt,               /* The database
      file */\n  Pgno ovfl,                   /* Current overflow page number */\n
      \ MemPage **ppPage,            /* OUT: MemPage handle (may be NULL) */\n  Pgno
      *pPgnoNext              /* OUT: Next overflow page number */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PagerWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:67942,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:67946,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:67949,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - pPayload
    - pBuf
    - nByte
    - eOp
    - pDbPage
    argTypes:
    - void*
    - void*
    - int
    - int
    - DbPage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67952
      start: 67933
    functionDepth: 14
    functionLinenumber: 67933
    functionLinenumberEnd: 67952
    functionName: copyPayload
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PagerWrite
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int copyPayload(\n  void *pPayload,           /* Pointer to page data
      */\n  void *pBuf,               /* Pointer to buffer */\n  int nByte,                /*
      Number of bytes to copy */\n  int eOp,                  /* 0 -> copy from page,
      1 -> copy to page */\n  DbPage *pDbPage           /* Page containing pPayload
      */\n)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:67999,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68000,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68001,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68002,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68003,1
    - Dst: cursorHoldsMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:68003,1
    - Dst: getCellInfo
      Src: /src/nss/lib/sqlite/sqlite3.c:68005,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68007,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68009,1
    - Dst: SQLITE_CORRUPT_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:68016,1
    - Dst: copyPayload
      Src: /src/nss/lib/sqlite/sqlite3.c:68025,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:68038,1
    - Dst: sqlite3MallocSize
      Src: /src/nss/lib/sqlite/sqlite3.c:68050,1
    - Dst: sqlite3Realloc
      Src: /src/nss/lib/sqlite/sqlite3.c:68052,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:68061,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68075,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68078,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68090,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68091,1
    - Dst: getOverflowPage
      Src: /src/nss/lib/sqlite/sqlite3.c:68095,1
    - Dst: sqlite3PagerDirectReadOk
      Src: /src/nss/lib/sqlite/sqlite3.c:68123,1
    - Dst: sqlite3PagerFile
      Src: /src/nss/lib/sqlite/sqlite3.c:68126,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68129,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:68130,1
    - Dst: sqlite3OsRead
      Src: /src/nss/lib/sqlite/sqlite3.c:68131,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:68132,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:68133,1
    - Dst: sqlite3PagerGet
      Src: /src/nss/lib/sqlite/sqlite3.c:68139,1
    - Dst: sqlite3PagerGetData
      Src: /src/nss/lib/sqlite/sqlite3.c:68143,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:68144,1
    - Dst: copyPayload
      Src: /src/nss/lib/sqlite/sqlite3.c:68145,1
    - Dst: sqlite3PagerUnref
      Src: /src/nss/lib/sqlite/sqlite3.c:68146,1
    - Dst: SQLITE_CORRUPT_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:68161,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 90
    argCount: 5
    argNames:
    - pCur
    - offset
    - amt
    - pBuf
    - eOp
    argTypes:
    - BtCursor*
    - u32
    - u32
    - unsigned char*
    - int
    assertStmts:
    - condition: ( eOp==0 || eOp==1 )
      pos:
        line_end: 67999
        line_start: 67999
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->eState==CURSOR_VALID )
      pos:
        line_end: 68000
        line_start: 68000
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( cursorHoldsMutex(pCur) )
      pos:
        line_end: 68002
        line_start: 68002
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( offset+amt <= pCur->info.nPayload )
      pos:
        line_end: 68006
        line_start: 68006
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( aPayload > pPage->aData )
      pos:
        line_end: 68008
        line_start: 68008
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc==SQLITE_OK && amt>0 )
      pos:
        line_end: 68074
        line_start: 68074
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( aWrite>=pBufStart )
      pos:
        line_end: 68128
        line_start: 68128
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage )
      pos:
        line_end: 67998
        line_start: 67998
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->curFlags & BTCF_ValidOvfl )
      pos:
        line_end: 68089
        line_start: 68089
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->ix<pPage->nCell )
      pos:
        line_end: 68001
        line_start: 68001
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( pCur->aOverflow[iIdx]==0\n              || pCur->aOverflow[iIdx]==nextPage\n
        \             || CORRUPT_DB )"
      pos:
        line_end: 68079
        line_start: 68077
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->pBtree->db==pBt->db )
      pos:
        line_end: 68090
        line_start: 68090
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 68164
      start: 67983
    functionDepth: 15
    functionLinenumber: 67983
    functionLinenumberEnd: 68164
    functionName: accessPayload
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PagerFile
    - sqlite3OsRead
    - getCellInfo
    - sqlite3Realloc
    - memcpy
    - sqlite3PagerUnref
    - sqlite3PagerGetData
    - get4byte
    - SQLITE_CORRUPT_PAGE
    - sqlite3MallocSize
    - cursorHoldsMutex
    - sqlite3PagerDirectReadOk
    - assert
    - copyPayload
    - memset
    - sqlite3PagerGet
    - getOverflowPage
    linkageType: ''
    returnType: int
    signature: "int accessPayload(\n  BtCursor *pCur,      /* Cursor pointing to entry
      to read from */\n  u32 offset,          /* Begin reading this far into payload
      */\n  u32 amt,             /* Read this many bytes */\n  unsigned char *pBuf,
      /* Write the bytes into this buffer */ \n  int eOp              /* zero to read.
      non-zero to write. */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68184,1
    - Dst: cursorHoldsMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:68184,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68185,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68186,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68187,1
    - Dst: accessPayload
      Src: /src/nss/lib/sqlite/sqlite3.c:68188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - pCur
    - offset
    - amt
    - pBuf
    argTypes:
    - BtCursor*
    - u32
    - u32
    - void*
    assertStmts:
    - condition: ( cursorHoldsMutex(pCur) )
      pos:
        line_end: 68183
        line_start: 68183
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->iPage>=0 && pCur->pPage )
      pos:
        line_end: 68185
        line_start: 68185
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->ix<pCur->pPage->nCell )
      pos:
        line_end: 68186
        line_start: 68186
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->eState==CURSOR_VALID )
      pos:
        line_end: 68184
        line_start: 68184
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 68189
      start: 68183
    functionDepth: 16
    functionLinenumber: 68183
    functionLinenumberEnd: 68189
    functionName: sqlite3BtreePayload
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - accessPayload
    - cursorHoldsMutex
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreePayload(BtCursor *pCur, u32 offset, u32
      amt, void *pBuf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68207,1
    - Dst: cursorOwnsBtShared
      Src: /src/nss/lib/sqlite/sqlite3.c:68207,1
    - Dst: btreeRestoreCursorPosition
      Src: /src/nss/lib/sqlite/sqlite3.c:68208,1
    - Dst: accessPayload
      Src: /src/nss/lib/sqlite/sqlite3.c:68209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - pCur
    - offset
    - amt
    - pBuf
    argTypes:
    - BtCursor*
    - u32
    - u32
    - void*
    assertStmts:
    - condition: ( cursorOwnsBtShared(pCur) )
      pos:
        line_end: 68206
        line_start: 68206
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 68210
      start: 68197
    functionDepth: 16
    functionLinenumber: 68197
    functionLinenumberEnd: 68210
    functionName: accessPayloadChecked
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - btreeRestoreCursorPosition
    - accessPayload
    - cursorOwnsBtShared
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: "SQLITE_NOINLINE accessPayloadChecked(\n  BtCursor *pCur,\n  u32 offset,\n
      \ u32 amt,\n  void *pBuf\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68213,1
    - Dst: cursorOwnsBtShared
      Src: /src/nss/lib/sqlite/sqlite3.c:68213,1
    - Dst: accessPayload
      Src: /src/nss/lib/sqlite/sqlite3.c:68214,1
    - Dst: accessPayloadChecked
      Src: /src/nss/lib/sqlite/sqlite3.c:68216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - pCur
    - offset
    - amt
    - pBuf
    argTypes:
    - BtCursor*
    - u32
    - u32
    - void*
    assertStmts:
    - condition: ( cursorOwnsBtShared(pCur) )
      pos:
        line_end: 68212
        line_start: 68212
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 68218
      start: 68211
    functionDepth: 17
    functionLinenumber: 68211
    functionLinenumberEnd: 68218
    functionName: sqlite3BtreePayloadChecked
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - accessPayloadChecked
    - accessPayload
    - cursorOwnsBtShared
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreePayloadChecked(BtCursor *pCur, u32 offset,
      u32 amt, void *pBuf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68245,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68246,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68247,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:68247,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68248,1
    - Dst: cursorOwnsBtShared
      Src: /src/nss/lib/sqlite/sqlite3.c:68248,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68249,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68250,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68251,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68252,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68257,1
    - Dst: MAX
      Src: /src/nss/lib/sqlite/sqlite3.c:68258,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - pCur
    - pAmt
    argTypes:
    - BtCursor*
    - u32*
    assertStmts:
    - condition: ( pCur!=0 && pCur->iPage>=0 && pCur->pPage)
      pos:
        line_end: 68244
        line_start: 68244
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( cursorOwnsBtShared(pCur) )
      pos:
        line_end: 68247
        line_start: 68247
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3_mutex_held(pCur->pBtree->db->mutex) )
      pos:
        line_end: 68246
        line_start: 68246
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->eState==CURSOR_VALID )
      pos:
        line_end: 68245
        line_start: 68245
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->ix<pCur->pPage->nCell )
      pos:
        line_end: 68248
        line_start: 68248
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->info.nSize>0 )
      pos:
        line_end: 68249
        line_start: 68249
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->info.pPayload>pCur->pPage->aData || CORRUPT_DB )
      pos:
        line_end: 68250
        line_start: 68250
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->info.pPayload<pCur->pPage->aDataEnd ||CORRUPT_DB)
      pos:
        line_end: 68251
        line_start: 68251
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( CORRUPT_DB )
      pos:
        line_end: 68256
        line_start: 68256
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 68262
      start: 68240
    functionDepth: 3
    functionLinenumber: 68240
    functionLinenumberEnd: 68262
    functionName: fetchPayload
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - MAX
    - sqlite3_mutex_held
    - cursorOwnsBtShared
    linkageType: ''
    returnType: void
    signature: "void *fetchPayload(\n  BtCursor *pCur,      /* Cursor pointing to
      entry to read from */\n  u32 *pAmt            /* Write the number of available
      bytes here */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fetchPayload
      Src: /src/nss/lib/sqlite/sqlite3.c:68280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pCur
    - pAmt
    argTypes:
    - BtCursor*
    - u32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68281
      start: 68279
    functionDepth: 4
    functionLinenumber: 68279
    functionLinenumberEnd: 68281
    functionName: sqlite3BtreePayloadFetch
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fetchPayload
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3BtreePayloadFetch(BtCursor *pCur, u32 *pAmt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68296,1
    - Dst: cursorOwnsBtShared
      Src: /src/nss/lib/sqlite/sqlite3.c:68296,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68297,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68298,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68299,1
    - Dst: getAndInitPage
      Src: /src/nss/lib/sqlite/sqlite3.c:68309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - pCur
    - newPgno
    argTypes:
    - BtCursor*
    - u32
    assertStmts:
    - condition: ( cursorOwnsBtShared(pCur) )
      pos:
        line_end: 68295
        line_start: 68295
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->iPage<BTCURSOR_MAX_DEPTH )
      pos:
        line_end: 68297
        line_start: 68297
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->iPage>=0 )
      pos:
        line_end: 68298
        line_start: 68298
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->eState==CURSOR_VALID )
      pos:
        line_end: 68296
        line_start: 68296
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 68310
      start: 68293
    functionDepth: 4
    functionLinenumber: 68293
    functionLinenumberEnd: 68310
    functionName: moveToChild
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - getAndInitPage
    - cursorOwnsBtShared
    linkageType: ''
    returnType: int
    signature: int moveToChild(BtCursor *pCur, u32 newPgno)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68323,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68325,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:68325,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68327,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:68327,1
    - Dst: findCell
      Src: /src/nss/lib/sqlite/sqlite3.c:68327,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - pParent
    - iIdx
    - iChild
    argTypes:
    - MemPage*
    - int
    - Pgno
    assertStmts:
    - condition: ( iIdx<=pParent->nCell )
      pos:
        line_end: 68322
        line_start: 68322
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( get4byte(findCell(pParent, iIdx))==iChild )
      pos:
        line_end: 68326
        line_start: 68326
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( get4byte(&pParent->aData[pParent->hdrOffset+8])==iChild )
      pos:
        line_end: 68324
        line_start: 68324
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 68329
      start: 68320
    functionDepth: 1
    functionLinenumber: 68320
    functionLinenumberEnd: 68329
    functionName: assertParentIndex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - get4byte
    - findCell
    linkageType: ''
    returnType: void
    signature: void assertParentIndex(MemPage *pParent, int iIdx, Pgno iChild)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68333
      start: 68331
    functionDepth: 0
    functionLinenumber: 68331
    functionLinenumberEnd: 68333
    functionName: assertParentIndex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assertParentIndex(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68344,1
    - Dst: cursorOwnsBtShared
      Src: /src/nss/lib/sqlite/sqlite3.c:68344,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68345,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68346,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68347,1
    - Dst: assertParentIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:68348,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:68353,1
    - Dst: releasePageNotNull
      Src: /src/nss/lib/sqlite/sqlite3.c:68359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - pCur
    argTypes:
    - BtCursor*
    assertStmts:
    - condition: ( cursorOwnsBtShared(pCur) )
      pos:
        line_end: 68343
        line_start: 68343
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->eState==CURSOR_VALID )
      pos:
        line_end: 68344
        line_start: 68344
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->iPage>0 )
      pos:
        line_end: 68345
        line_start: 68345
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->pPage )
      pos:
        line_end: 68346
        line_start: 68346
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 68360
      start: 68342
    functionDepth: 6
    functionLinenumber: 68342
    functionLinenumberEnd: 68360
    functionName: moveToParent
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assertParentIndex
    - releasePageNotNull
    - assert
    - cursorOwnsBtShared
    - testcase
    linkageType: ''
    returnType: void
    signature: void moveToParent(BtCursor *pCur)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68387,1
    - Dst: cursorOwnsBtShared
      Src: /src/nss/lib/sqlite/sqlite3.c:68387,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68388,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68389,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68390,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68391,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68392,1
    - Dst: releasePageNotNull
      Src: /src/nss/lib/sqlite/sqlite3.c:68396,1
    - Dst: releasePageNotNull
      Src: /src/nss/lib/sqlite/sqlite3.c:68398,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68407,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68410,1
    - Dst: sqlite3BtreeClearCursor
      Src: /src/nss/lib/sqlite/sqlite3.c:68413,1
    - Dst: getAndInitPage
      Src: /src/nss/lib/sqlite/sqlite3.c:68415,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68425,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68437,1
    - Dst: SQLITE_CORRUPT_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:68439,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:68453,1
    - Dst: moveToChild
      Src: /src/nss/lib/sqlite/sqlite3.c:68455,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 64
    argCount: 1
    argNames:
    - pCur
    argTypes:
    - BtCursor*
    assertStmts:
    - condition: ( cursorOwnsBtShared(pCur) )
      pos:
        line_end: 68386
        line_start: 68386
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( CURSOR_INVALID < CURSOR_REQUIRESEEK )
      pos:
        line_end: 68387
        line_start: 68387
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( CURSOR_FAULT   > CURSOR_REQUIRESEEK )
      pos:
        line_end: 68389
        line_start: 68389
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( CURSOR_VALID   < CURSOR_REQUIRESEEK )
      pos:
        line_end: 68388
        line_start: 68388
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->eState < CURSOR_REQUIRESEEK || pCur->iPage<0 )
      pos:
        line_end: 68390
        line_start: 68390
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->pgnoRoot>0 || pCur->iPage<0 )
      pos:
        line_end: 68391
        line_start: 68391
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->iPage==(-1) )
      pos:
        line_end: 68406
        line_start: 68406
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pRoot->pgno==pCur->pgnoRoot )
      pos:
        line_end: 68424
        line_start: 68424
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->skipNext!=SQLITE_OK )
      pos:
        line_end: 68409
        line_start: 68409
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pRoot->intKey==1 || pRoot->intKey==0 )
      pos:
        line_end: 68436
        line_start: 68436
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 68461
      start: 68383
    functionDepth: 6
    functionLinenumber: 68383
    functionLinenumberEnd: 68461
    functionName: moveToRoot
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeClearCursor
    - moveToChild
    - get4byte
    - releasePageNotNull
    - SQLITE_CORRUPT_PAGE
    - assert
    - getAndInitPage
    - cursorOwnsBtShared
    linkageType: ''
    returnType: int
    signature: int moveToRoot(BtCursor *pCur)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68475,1
    - Dst: cursorOwnsBtShared
      Src: /src/nss/lib/sqlite/sqlite3.c:68475,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68476,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68478,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:68479,1
    - Dst: findCell
      Src: /src/nss/lib/sqlite/sqlite3.c:68479,1
    - Dst: moveToChild
      Src: /src/nss/lib/sqlite/sqlite3.c:68480,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - pCur
    argTypes:
    - BtCursor*
    assertStmts:
    - condition: ( cursorOwnsBtShared(pCur) )
      pos:
        line_end: 68474
        line_start: 68474
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->ix<pPage->nCell )
      pos:
        line_end: 68477
        line_start: 68477
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->eState==CURSOR_VALID )
      pos:
        line_end: 68475
        line_start: 68475
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 68483
      start: 68470
    functionDepth: 5
    functionLinenumber: 68470
    functionLinenumberEnd: 68483
    functionName: moveToLeftmost
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - findCell
    - moveToChild
    - get4byte
    - assert
    - cursorOwnsBtShared
    linkageType: ''
    returnType: int
    signature: int moveToLeftmost(BtCursor *pCur)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68500,1
    - Dst: cursorOwnsBtShared
      Src: /src/nss/lib/sqlite/sqlite3.c:68500,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68501,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:68503,1
    - Dst: moveToChild
      Src: /src/nss/lib/sqlite/sqlite3.c:68505,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68509,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68510,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - pCur
    argTypes:
    - BtCursor*
    assertStmts:
    - condition: ( cursorOwnsBtShared(pCur) )
      pos:
        line_end: 68499
        line_start: 68499
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->eState==CURSOR_VALID )
      pos:
        line_end: 68500
        line_start: 68500
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->info.nSize==0 )
      pos:
        line_end: 68508
        line_start: 68508
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pCur->curFlags & BTCF_ValidNKey)==0 )
      pos:
        line_end: 68509
        line_start: 68509
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 68512
      start: 68495
    functionDepth: 5
    functionLinenumber: 68495
    functionLinenumberEnd: 68512
    functionName: moveToRightmost
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - get4byte
    - moveToChild
    - cursorOwnsBtShared
    linkageType: ''
    returnType: int
    signature: int moveToRightmost(BtCursor *pCur)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68521,1
    - Dst: cursorOwnsBtShared
      Src: /src/nss/lib/sqlite/sqlite3.c:68521,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68522,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:68522,1
    - Dst: moveToRoot
      Src: /src/nss/lib/sqlite/sqlite3.c:68523,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68525,1
    - Dst: moveToLeftmost
      Src: /src/nss/lib/sqlite/sqlite3.c:68527,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68529,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - pCur
    - pRes
    argTypes:
    - BtCursor*
    - int*
    assertStmts:
    - condition: ( cursorOwnsBtShared(pCur) )
      pos:
        line_end: 68520
        line_start: 68520
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3_mutex_held(pCur->pBtree->db->mutex) )
      pos:
        line_end: 68521
        line_start: 68521
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->pPage->nCell>0 )
      pos:
        line_end: 68524
        line_start: 68524
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->pgnoRoot==0 || pCur->pPage->nCell==0 )
      pos:
        line_end: 68528
        line_start: 68528
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 68534
      start: 68518
    functionDepth: 7
    functionLinenumber: 68518
    functionLinenumberEnd: 68534
    functionName: sqlite3BtreeFirst
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - cursorOwnsBtShared
    - sqlite3_mutex_held
    - moveToLeftmost
    - moveToRoot
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeFirst(BtCursor *pCur, int *pRes)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68543,1
    - Dst: cursorOwnsBtShared
      Src: /src/nss/lib/sqlite/sqlite3.c:68543,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68544,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:68544,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68553,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68555,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68556,1
    - Dst: moveToRoot
      Src: /src/nss/lib/sqlite/sqlite3.c:68562,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68564,1
    - Dst: moveToRightmost
      Src: /src/nss/lib/sqlite/sqlite3.c:68566,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68573,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - pCur
    - pRes
    argTypes:
    - BtCursor*
    - int*
    assertStmts:
    - condition: ( cursorOwnsBtShared(pCur) )
      pos:
        line_end: 68542
        line_start: 68542
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3_mutex_held(pCur->pBtree->db->mutex) )
      pos:
        line_end: 68543
        line_start: 68543
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->aiIdx[ii]==pCur->apPage[ii]->nCell )
      pos:
        line_end: 68552
        line_start: 68552
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->ix==pCur->pPage->nCell-1 )
      pos:
        line_end: 68554
        line_start: 68554
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->pPage->leaf )
      pos:
        line_end: 68555
        line_start: 68555
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->eState==CURSOR_VALID )
      pos:
        line_end: 68563
        line_start: 68563
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->pgnoRoot==0 || pCur->pPage->nCell==0 )
      pos:
        line_end: 68572
        line_start: 68572
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 68578
      start: 68540
    functionDepth: 7
    functionLinenumber: 68540
    functionLinenumberEnd: 68578
    functionName: sqlite3BtreeLast
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - moveToRightmost
    - cursorOwnsBtShared
    - sqlite3_mutex_held
    - moveToRoot
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeLast(BtCursor *pCur, int *pRes)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68620,1
    - Dst: cursorOwnsBtShared
      Src: /src/nss/lib/sqlite/sqlite3.c:68620,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68621,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:68621,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68622,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68623,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68624,1
    - Dst: sqlite3BtreeNext
      Src: /src/nss/lib/sqlite/sqlite3.c:68646,1
    - Dst: getCellInfo
      Src: /src/nss/lib/sqlite/sqlite3.c:68648,1
    - Dst: sqlite3VdbeFindCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:68662,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68664,1
    - Dst: moveToRoot
      Src: /src/nss/lib/sqlite/sqlite3.c:68672,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68675,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68681,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68682,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68683,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68684,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68685,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68686,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68699,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68700,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68703,1
    - Dst: findCellPastPtr
      Src: /src/nss/lib/sqlite/sqlite3.c:68709,1
    - Dst: SQLITE_CORRUPT_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:68713,1
    - Dst: getVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:68717,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68725,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68738,1
    - Dst: findCellPastPtr
      Src: /src/nss/lib/sqlite/sqlite3.c:68744,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:68759,1
    - Dst: xRecordCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:68760,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:68766,1
    - Dst: xRecordCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:68767,1
    - Dst: MemPage*::xParseCell
      Src: /src/nss/lib/sqlite/sqlite3.c:68781,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:68783,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:68784,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:68785,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:68786,1
    - Dst: SQLITE_CORRUPT_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:68788,1
    - Dst: sqlite3Malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:68791,1
    - Dst: accessPayload
      Src: /src/nss/lib/sqlite/sqlite3.c:68797,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:68798,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:68801,1
    - Dst: sqlite3VdbeRecordCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:68804,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:68805,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68807,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68816,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68824,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68828,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68829,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68831,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:68839,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:68841,1
    - Dst: findCell
      Src: /src/nss/lib/sqlite/sqlite3.c:68841,1
    - Dst: moveToChild
      Src: /src/nss/lib/sqlite/sqlite3.c:68844,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68849,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 195
    argCount: 5
    argNames:
    - pCur
    - pIdxKey
    - intKey
    - biasRight
    - pRes
    argTypes:
    - BtCursor*
    - UnpackedRecord*
    - i64
    - int
    - int*
    assertStmts:
    - condition: ( pCur->pPage )
      pos:
        line_end: 68680
        line_start: 68680
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->curIntKey || pIdxKey )
      pos:
        line_end: 68685
        line_start: 68685
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->nCell>0 )
      pos:
        line_end: 68698
        line_start: 68698
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->intKey==(pIdxKey==0) )
      pos:
        line_end: 68699
        line_start: 68699
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( biasRight==0 || biasRight==1 )
      pos:
        line_end: 68702
        line_start: 68702
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nCellKey==intKey )
      pos:
        line_end: 68724
        line_start: 68724
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3_mutex_held(pCur->pBtree->db->mutex) )
      pos:
        line_end: 68620
        line_start: 68620
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pIdxKey==0)==(pCur->pKeyInfo==0) )
      pos:
        line_end: 68622
        line_start: 68622
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( pIdxKey->default_rc==1 \n         || pIdxKey->default_rc==0 \n
        \        || pIdxKey->default_rc==-1\n    )"
      pos:
        line_end: 68666
        line_start: 68663
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->pgnoRoot==0 || pCur->pPage->nCell==0 )
      pos:
        line_end: 68674
        line_start: 68674
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->eState==CURSOR_VALID )
      pos:
        line_end: 68682
        line_start: 68682
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( lwr+upr>=0 )
      pos:
        line_end: 68737
        line_start: 68737
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->ix<pCur->pPage->nCell )
      pos:
        line_end: 68830
        line_start: 68830
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( c==0 )
      pos:
        line_end: 68815
        line_start: 68815
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( cursorOwnsBtShared(pCur) )
      pos:
        line_end: 68619
        line_start: 68619
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->iPage==0 || pCur->apPage[0]->intKey==pCur->curIntKey )
      pos:
        line_end: 68684
        line_start: 68684
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->pPage->nCell > 0 )
      pos:
        line_end: 68683
        line_start: 68683
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( lwr+upr>=0 )
      pos:
        line_end: 68823
        line_start: 68823
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->isInit )
      pos:
        line_end: 68828
        line_start: 68828
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pRes )
      pos:
        line_end: 68621
        line_start: 68621
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->eState!=CURSOR_VALID || (pIdxKey==0)==(pCur->curIntKey!=0)
        )
      pos:
        line_end: 68623
        line_start: 68623
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->pPage->isInit )
      pos:
        line_end: 68681
        line_start: 68681
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( \n            (pIdxKey->errCode!=SQLITE_CORRUPT || c==0)\n         &&
        (pIdxKey->errCode!=SQLITE_NOMEM || pCur->pBtree->db->mallocFailed)\n        )"
      pos:
        line_end: 68809
        line_start: 68806
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( lwr==upr+1 || (pPage->intKey && !pPage->leaf) )
      pos:
        line_end: 68827
        line_start: 68827
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pCur->curFlags & BTCF_ValidOvfl)==0 )
      pos:
        line_end: 68848
        line_start: 68848
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 68851
      start: 68610
    functionDepth: 16
    functionLinenumber: 68610
    functionLinenumberEnd: 68851
    functionName: sqlite3BtreeMovetoUnpacked
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3VdbeFindCompare
    - accessPayload
    - get4byte
    - findCellPastPtr
    - sqlite3Malloc
    - sqlite3VdbeRecordCompare
    - MemPage*::xParseCell
    - testcase
    - getCellInfo
    - assert
    - memset
    - sqlite3BtreeNext
    - cursorOwnsBtShared
    - sqlite3_mutex_held
    - moveToRoot
    - findCell
    - SQLITE_CORRUPT_PAGE
    - moveToChild
    - xRecordCompare
    - getVarint
    - sqlite3_free
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3BtreeMovetoUnpacked(\n  BtCursor *pCur,          /*
      The cursor to be moved */\n  UnpackedRecord *pIdxKey, /* Unpacked index key
      */\n  i64 intKey,              /* The table key */\n  int biasRight,           /*
      If true, bias the search to the high end */\n  int *pRes                /* Write
      search results here */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pCur
    argTypes:
    - BtCursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68867
      start: 68861
    functionDepth: 0
    functionLinenumber: 68861
    functionLinenumberEnd: 68867
    functionName: sqlite3BtreeEof
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeEof(BtCursor *pCur)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68878,1
    - Dst: cursorOwnsBtShared
      Src: /src/nss/lib/sqlite/sqlite3.c:68878,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68879,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:68879,1
    - Dst: NEVER
      Src: /src/nss/lib/sqlite/sqlite3.c:68884,1
    - Dst: NEVER
      Src: /src/nss/lib/sqlite/sqlite3.c:68885,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - pCur
    argTypes:
    - BtCursor*
    assertStmts:
    - condition: ( cursorOwnsBtShared(pCur) )
      pos:
        line_end: 68877
        line_start: 68877
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3_mutex_held(pCur->pBtree->db->mutex) )
      pos:
        line_end: 68878
        line_start: 68878
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 68892
      start: 68874
    functionDepth: 3
    functionLinenumber: 68874
    functionLinenumberEnd: 68892
    functionName: sqlite3BtreeRowCountEst
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_mutex_held
    - NEVER
    - cursorOwnsBtShared
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeRowCountEst(BtCursor *pCur)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68919,1
    - Dst: cursorOwnsBtShared
      Src: /src/nss/lib/sqlite/sqlite3.c:68919,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68921,1
    - Dst: restoreCursorPosition
      Src: /src/nss/lib/sqlite/sqlite3.c:68922,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:68953,1
    - Dst: moveToChild
      Src: /src/nss/lib/sqlite/sqlite3.c:68957,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:68957,1
    - Dst: moveToLeftmost
      Src: /src/nss/lib/sqlite/sqlite3.c:68959,1
    - Dst: moveToParent
      Src: /src/nss/lib/sqlite/sqlite3.c:68966,1
    - Dst: sqlite3BtreeNext
      Src: /src/nss/lib/sqlite/sqlite3.c:68970,1
    - Dst: moveToLeftmost
      Src: /src/nss/lib/sqlite/sqlite3.c:68978,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 49
    argCount: 1
    argNames:
    - pCur
    argTypes:
    - BtCursor*
    assertStmts:
    - condition: ( cursorOwnsBtShared(pCur) )
      pos:
        line_end: 68918
        line_start: 68918
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pCur->curFlags & BTCF_ValidOvfl)==0 )
      pos:
        line_end: 68920
        line_start: 68920
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 68980
      start: 68914
    functionDepth: 7
    functionLinenumber: 68914
    functionLinenumberEnd: 68980
    functionName: btreeNext
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - moveToChild
    - moveToParent
    - get4byte
    - restoreCursorPosition
    - assert
    - sqlite3BtreeNext
    - cursorOwnsBtShared
    - moveToLeftmost
    - testcase
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: SQLITE_NOINLINE btreeNext(BtCursor *pCur)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:68983,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68984,1
    - Dst: cursorOwnsBtShared
      Src: /src/nss/lib/sqlite/sqlite3.c:68984,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:68985,1
    - Dst: btreeNext
      Src: /src/nss/lib/sqlite/sqlite3.c:68988,1
    - Dst: btreeNext
      Src: /src/nss/lib/sqlite/sqlite3.c:68992,1
    - Dst: moveToLeftmost
      Src: /src/nss/lib/sqlite/sqlite3.c:68997,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - pCur
    - flags
    argTypes:
    - BtCursor*
    - int
    assertStmts:
    - condition: ( flags==0 || flags==1 )
      pos:
        line_end: 68984
        line_start: 68984
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( cursorOwnsBtShared(pCur) )
      pos:
        line_end: 68983
        line_start: 68983
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 68999
      start: 68981
    functionDepth: 8
    functionLinenumber: 68981
    functionLinenumberEnd: 68999
    functionName: sqlite3BtreeNext
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - btreeNext
    - UNUSED_PARAMETER
    - assert
    - cursorOwnsBtShared
    - moveToLeftmost
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeNext(BtCursor *pCur, int flags)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69025,1
    - Dst: cursorOwnsBtShared
      Src: /src/nss/lib/sqlite/sqlite3.c:69025,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69026,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69027,1
    - Dst: restoreCursorPosition
      Src: /src/nss/lib/sqlite/sqlite3.c:69029,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69043,1
    - Dst: moveToChild
      Src: /src/nss/lib/sqlite/sqlite3.c:69046,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:69046,1
    - Dst: findCell
      Src: /src/nss/lib/sqlite/sqlite3.c:69046,1
    - Dst: moveToRightmost
      Src: /src/nss/lib/sqlite/sqlite3.c:69048,1
    - Dst: moveToParent
      Src: /src/nss/lib/sqlite/sqlite3.c:69055,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69057,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69058,1
    - Dst: sqlite3BtreePrevious
      Src: /src/nss/lib/sqlite/sqlite3.c:69063,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 1
    argNames:
    - pCur
    argTypes:
    - BtCursor*
    assertStmts:
    - condition: ( cursorOwnsBtShared(pCur) )
      pos:
        line_end: 69024
        line_start: 69024
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->info.nSize==0 )
      pos:
        line_end: 69026
        line_start: 69026
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pCur->curFlags & (BTCF_AtLast|BTCF_ValidOvfl|BTCF_ValidNKey))==0
        )
      pos:
        line_end: 69025
        line_start: 69025
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->isInit )
      pos:
        line_end: 69042
        line_start: 69042
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pCur->curFlags & (BTCF_ValidOvfl))==0 )
      pos:
        line_end: 69057
        line_start: 69057
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->info.nSize==0 )
      pos:
        line_end: 69056
        line_start: 69056
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 69069
      start: 69021
    functionDepth: 7
    functionLinenumber: 69021
    functionLinenumberEnd: 69069
    functionName: btreePrevious
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreePrevious
    - findCell
    - moveToChild
    - moveToParent
    - get4byte
    - restoreCursorPosition
    - assert
    - moveToRightmost
    - cursorOwnsBtShared
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: SQLITE_NOINLINE btreePrevious(BtCursor *pCur)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69071,1
    - Dst: cursorOwnsBtShared
      Src: /src/nss/lib/sqlite/sqlite3.c:69071,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69072,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:69073,1
    - Dst: btreePrevious
      Src: /src/nss/lib/sqlite/sqlite3.c:69080,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - pCur
    - flags
    argTypes:
    - BtCursor*
    - int
    assertStmts:
    - condition: ( cursorOwnsBtShared(pCur) )
      pos:
        line_end: 69070
        line_start: 69070
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( flags==0 || flags==1 )
      pos:
        line_end: 69071
        line_start: 69071
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 69084
      start: 69070
    functionDepth: 8
    functionLinenumber: 69070
    functionLinenumberEnd: 69084
    functionName: sqlite3BtreePrevious
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - UNUSED_PARAMETER
    - btreePrevious
    - cursorOwnsBtShared
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreePrevious(BtCursor *pCur, int flags)
  - BBCount: 44
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69123,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:69123,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69124,1
    - Dst: IfNotOmitAV
      Src: /src/nss/lib/sqlite/sqlite3.c:69124,1
    - Dst: btreePagecount
      Src: /src/nss/lib/sqlite/sqlite3.c:69126,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:69129,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:69130,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69148,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69149,1
    - Dst: ptrmapGet
      Src: /src/nss/lib/sqlite/sqlite3.c:69150,1
    - Dst: sqlite3PagerWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:69164,1
    - Dst: put4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:69166,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:69179,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:69184,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:69186,1
    - Dst: SQLITE_CORRUPT_PGNO
      Src: /src/nss/lib/sqlite/sqlite3.c:69188,1
    - Dst: btreeGetUnusedPage
      Src: /src/nss/lib/sqlite/sqlite3.c:69190,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69196,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69197,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:69200,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69205,1
    - Dst: sqlite3PagerWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:69206,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:69211,1
    - Dst: TRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:69214,1
    - Dst: SQLITE_CORRUPT_PGNO
      Src: /src/nss/lib/sqlite/sqlite3.c:69217,1
    - Dst: sqlite3PagerWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:69229,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:69235,1
    - Dst: sqlite3PagerWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:69237,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:69241,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:69249,1
    - Dst: SQLITE_CORRUPT_PGNO
      Src: /src/nss/lib/sqlite/sqlite3.c:69251,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:69254,1
    - Dst: btreeGetUnusedPage
      Src: /src/nss/lib/sqlite/sqlite3.c:69255,1
    - Dst: sqlite3PagerWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:69259,1
    - Dst: releasePage
      Src: /src/nss/lib/sqlite/sqlite3.c:69261,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:69264,1
    - Dst: put4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:69265,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:69266,1
    - Dst: releasePage
      Src: /src/nss/lib/sqlite/sqlite3.c:69267,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69269,1
    - Dst: sqlite3PagerIswriteable
      Src: /src/nss/lib/sqlite/sqlite3.c:69269,1
    - Dst: put4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:69270,1
    - Dst: sqlite3PagerWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:69272,1
    - Dst: put4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:69276,1
    - Dst: TRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:69280,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:69292,1
    - Dst: sqlite3AbsInt32
      Src: /src/nss/lib/sqlite/sqlite3.c:69300,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:69300,1
    - Dst: sqlite3AbsInt32
      Src: /src/nss/lib/sqlite/sqlite3.c:69302,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:69302,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:69313,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:69314,1
    - Dst: SQLITE_CORRUPT_PGNO
      Src: /src/nss/lib/sqlite/sqlite3.c:69316,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:69319,1
    - Dst: TRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:69325,1
    - Dst: sqlite3PagerWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:69328,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:69331,1
    - Dst: put4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:69333,1
    - Dst: btreeGetHasContent
      Src: /src/nss/lib/sqlite/sqlite3.c:69334,1
    - Dst: btreeGetUnusedPage
      Src: /src/nss/lib/sqlite/sqlite3.c:69335,1
    - Dst: sqlite3PagerWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:69337,1
    - Dst: releasePage
      Src: /src/nss/lib/sqlite/sqlite3.c:69339,1
    - Dst: releasePage
      Src: /src/nss/lib/sqlite/sqlite3.c:69346,1
    - Dst: IfNotOmitAV
      Src: /src/nss/lib/sqlite/sqlite3.c:69368,1
    - Dst: sqlite3PagerWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:69370,1
    - Dst: PENDING_BYTE_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:69373,1
    - Dst: PTRMAP_ISPAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:69376,1
    - Dst: TRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:69382,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69383,1
    - Dst: PENDING_BYTE_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:69383,1
    - Dst: btreeGetUnusedPage
      Src: /src/nss/lib/sqlite/sqlite3.c:69384,1
    - Dst: sqlite3PagerWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:69386,1
    - Dst: releasePage
      Src: /src/nss/lib/sqlite/sqlite3.c:69387,1
    - Dst: PENDING_BYTE_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:69391,1
    - Dst: put4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:69394,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69397,1
    - Dst: PENDING_BYTE_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:69397,1
    - Dst: btreeGetUnusedPage
      Src: /src/nss/lib/sqlite/sqlite3.c:69398,1
    - Dst: sqlite3PagerWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:69400,1
    - Dst: releasePage
      Src: /src/nss/lib/sqlite/sqlite3.c:69402,1
    - Dst: TRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:69405,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69408,1
    - Dst: PENDING_BYTE_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:69408,1
    - Dst: releasePage
      Src: /src/nss/lib/sqlite/sqlite3.c:69411,1
    - Dst: releasePage
      Src: /src/nss/lib/sqlite/sqlite3.c:69412,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69413,1
    - Dst: sqlite3PagerPageRefcount
      Src: /src/nss/lib/sqlite/sqlite3.c:69413,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69414,1
    CyclomaticComplexity: 72
    EdgeCount: 72
    ICount: 226
    argCount: 5
    argNames:
    - pBt
    - ppPage
    - pPgno
    - nearby
    - eMode
    argTypes:
    - BtShared*
    - MemPage**
    - Pgno*
    - Pgno
    - u8
    assertStmts:
    - condition: ( CORRUPT_DB || *pPgno!=PENDING_BYTE_PAGE(pBt) )
      pos:
        line_end: 69407
        line_start: 69407
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( *pPgno!=PENDING_BYTE_PAGE(pBt) )
      pos:
        line_end: 69396
        line_start: 69396
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pBt->nPage!=PENDING_BYTE_PAGE(pBt) )
      pos:
        line_end: 69382
        line_start: 69382
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pBt->autoVacuum )
      pos:
        line_end: 69148
        line_start: 69148
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3PagerIswriteable(pPage1->pDbPage) )
      pos:
        line_end: 69268
        line_start: 69268
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTrunk->aData!=0 )
      pos:
        line_end: 69196
        line_start: 69196
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3_mutex_held(pBt->mutex) )
      pos:
        line_end: 69122
        line_start: 69122
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTrunk!=0 )
      pos:
        line_end: 69195
        line_start: 69195
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc!=SQLITE_OK || sqlite3PagerPageRefcount((*ppPage)->pDbPage)<=1
        )
      pos:
        line_end: 69412
        line_start: 69412
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( eMode==BTALLOC_ANY || (nearby>0 && IfNotOmitAV(pBt->autoVacuum))
        )
      pos:
        line_end: 69123
        line_start: 69123
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc!=SQLITE_OK || (*ppPage)->isInit==0 )
      pos:
        line_end: 69413
        line_start: 69413
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPrevTrunk==0 )
      pos:
        line_end: 69204
        line_start: 69204
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nearby>0 )
      pos:
        line_end: 69147
        line_start: 69147
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 69416
      start: 69108
    functionDepth: 14
    functionLinenumber: 69108
    functionLinenumberEnd: 69416
    functionName: allocateBtreePage
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - btreeGetHasContent
    - get4byte
    - IfNotOmitAV
    - sqlite3PagerIswriteable
    - btreeGetUnusedPage
    - TRACE
    - testcase
    - sqlite3PagerPageRefcount
    - memcpy
    - assert
    - sqlite3PagerWrite
    - releasePage
    - sqlite3AbsInt32
    - PENDING_BYTE_PAGE
    - sqlite3_mutex_held
    - SQLITE_CORRUPT_PGNO
    - btreePagecount
    - put4byte
    - ptrmapGet
    - PTRMAP_ISPAGE
    linkageType: ''
    returnType: int
    signature: "int allocateBtreePage(\n  BtShared *pBt,         /* The btree */\n
      \ MemPage **ppPage,      /* Store pointer to the allocated page here */\n  Pgno
      *pPgno,           /* Store the page number here */\n  Pgno nearby,           /*
      Search for a page near this one */\n  u8 eMode               /* BTALLOC_EXACT,
      BTALLOC_LT, or BTALLOC_ANY */\n)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69438,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:69438,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69439,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69440,1
    - Dst: sqlite3PagerRef
      Src: /src/nss/lib/sqlite/sqlite3.c:69447,1
    - Dst: btreePageLookup
      Src: /src/nss/lib/sqlite/sqlite3.c:69449,1
    - Dst: sqlite3PagerWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:69453,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:69455,1
    - Dst: put4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:69456,1
    - Dst: btreeGetPage
      Src: /src/nss/lib/sqlite/sqlite3.c:69462,1
    - Dst: sqlite3PagerWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:69463,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:69467,1
    - Dst: ptrmapPut
      Src: /src/nss/lib/sqlite/sqlite3.c:69474,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:69488,1
    - Dst: btreeGetPage
      Src: /src/nss/lib/sqlite/sqlite3.c:69489,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:69494,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69495,1
    - Dst: sqlite3PagerWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:69520,1
    - Dst: put4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:69522,1
    - Dst: put4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:69523,1
    - Dst: sqlite3PagerDontWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:69525,1
    - Dst: btreeSetHasContent
      Src: /src/nss/lib/sqlite/sqlite3.c:69527,1
    - Dst: TRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:69529,1
    - Dst: btreeGetPage
      Src: /src/nss/lib/sqlite/sqlite3.c:69540,1
    - Dst: sqlite3PagerWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:69543,1
    - Dst: put4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:69547,1
    - Dst: put4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:69548,1
    - Dst: put4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:69549,1
    - Dst: TRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:69550,1
    - Dst: releasePage
      Src: /src/nss/lib/sqlite/sqlite3.c:69556,1
    - Dst: releasePage
      Src: /src/nss/lib/sqlite/sqlite3.c:69557,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 82
    argCount: 3
    argNames:
    - pBt
    - pMemPage
    - iPage
    argTypes:
    - BtShared*
    - MemPage*
    - Pgno
    assertStmts:
    - condition: ( sqlite3_mutex_held(pBt->mutex) )
      pos:
        line_end: 69437
        line_start: 69437
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( CORRUPT_DB || iPage>1 )
      pos:
        line_end: 69438
        line_start: 69438
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !pMemPage || pMemPage->pgno==iPage )
      pos:
        line_end: 69439
        line_start: 69439
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pBt->usableSize>32 )
      pos:
        line_end: 69494
        line_start: 69494
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 69559
      start: 69430
    functionDepth: 15
    functionLinenumber: 69430
    functionLinenumberEnd: 69559
    functionName: freePage2
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PagerRef
    - btreePageLookup
    - put4byte
    - get4byte
    - ptrmapPut
    - btreeSetHasContent
    - assert
    - sqlite3PagerWrite
    - memset
    - releasePage
    - sqlite3PagerDontWrite
    - sqlite3_mutex_held
    - TRACE
    - btreeGetPage
    linkageType: ''
    returnType: int
    signature: int freePage2(BtShared *pBt, MemPage *pMemPage, Pgno iPage)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freePage2
      Src: /src/nss/lib/sqlite/sqlite3.c:69562,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pPage
    - pRC
    argTypes:
    - MemPage*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69564
      start: 69560
    functionDepth: 16
    functionLinenumber: 69560
    functionLinenumberEnd: 69564
    functionName: freePage
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - freePage2
    linkageType: ''
    returnType: void
    signature: void freePage(MemPage *pPage, int *pRC)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69581,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:69581,1
    - Dst: MemPage*::xParseCell
      Src: /src/nss/lib/sqlite/sqlite3.c:69582,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:69586,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:69587,1
    - Dst: SQLITE_CORRUPT_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:69590,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:69592,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69594,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69597,1
    - Dst: btreePagecount
      Src: /src/nss/lib/sqlite/sqlite3.c:69603,1
    - Dst: getOverflowPage
      Src: /src/nss/lib/sqlite/sqlite3.c:69610,1
    - Dst: btreePageLookup
      Src: /src/nss/lib/sqlite/sqlite3.c:69614,1
    - Dst: sqlite3PagerPageRefcount
      Src: /src/nss/lib/sqlite/sqlite3.c:69615,1
    - Dst: freePage2
      Src: /src/nss/lib/sqlite/sqlite3.c:69629,1
    - Dst: sqlite3PagerUnref
      Src: /src/nss/lib/sqlite/sqlite3.c:69633,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 3
    argNames:
    - pPage
    - pCell
    - pInfo
    argTypes:
    - MemPage*
    - unsigned char*
    - CellInfo*
    assertStmts:
    - condition: ( sqlite3_mutex_held(pPage->pBt->mutex) )
      pos:
        line_end: 69580
        line_start: 69580
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pBt->usableSize > 4 )
      pos:
        line_end: 69593
        line_start: 69593
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( nOvfl>0 || \n    (CORRUPT_DB && (pInfo->nPayload + ovflPageSize)<ovflPageSize)\n
        \ )"
      pos:
        line_end: 69598
        line_start: 69596
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 69639
      start: 69570
    functionDepth: 16
    functionLinenumber: 69570
    functionLinenumberEnd: 69639
    functionName: clearCell
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - btreePagecount
    - sqlite3PagerUnref
    - btreePageLookup
    - get4byte
    - SQLITE_CORRUPT_PAGE
    - freePage2
    - assert
    - MemPage*::xParseCell
    - getOverflowPage
    - sqlite3_mutex_held
    - testcase
    - sqlite3PagerPageRefcount
    linkageType: ''
    returnType: int
    signature: "int clearCell(\n  MemPage *pPage,          /* The page that contains
      the Cell */\n  unsigned char *pCell,    /* First byte of the Cell */\n  CellInfo
      *pInfo          /* Size information about the cell */\n)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69670,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:69670,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69674,1
    - Dst: sqlite3PagerIswriteable
      Src: /src/nss/lib/sqlite/sqlite3.c:69675,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69683,1
    - Dst: putVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:69684,1
    - Dst: putVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:69685,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69687,1
    - Dst: putVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:69690,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:69699,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:69700,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69703,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:69704,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:69705,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:69706,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:69715,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:69716,1
    - Dst: MemPage*::xParseCell
      Src: /src/nss/lib/sqlite/sqlite3.c:69740,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69741,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69742,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69743,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69744,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69755,1
    - Dst: sqlite3PagerIswriteable
      Src: /src/nss/lib/sqlite/sqlite3.c:69755,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69759,1
    - Dst: sqlite3PagerIswriteable
      Src: /src/nss/lib/sqlite/sqlite3.c:69760,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:69763,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:69766,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:69768,1
    - Dst: PTRMAP_ISPAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:69784,1
    - Dst: PENDING_BYTE_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:69784,1
    - Dst: allocateBtreePage
      Src: /src/nss/lib/sqlite/sqlite3.c:69788,1
    - Dst: ptrmapPut
      Src: /src/nss/lib/sqlite/sqlite3.c:69802,1
    - Dst: releasePage
      Src: /src/nss/lib/sqlite/sqlite3.c:69804,1
    - Dst: releasePage
      Src: /src/nss/lib/sqlite/sqlite3.c:69809,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69815,1
    - Dst: sqlite3PagerIswriteable
      Src: /src/nss/lib/sqlite/sqlite3.c:69815,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69819,1
    - Dst: sqlite3PagerIswriteable
      Src: /src/nss/lib/sqlite/sqlite3.c:69820,1
    - Dst: put4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:69822,1
    - Dst: releasePage
      Src: /src/nss/lib/sqlite/sqlite3.c:69823,1
    - Dst: put4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:69826,1
    - Dst: releasePage
      Src: /src/nss/lib/sqlite/sqlite3.c:69831,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 101
    argCount: 4
    argNames:
    - pPage
    - pCell
    - pX
    - pnSize
    argTypes:
    - MemPage*
    - unsigned char*
    - BtreePayload*
    - int*
    assertStmts:
    - condition: ( nSrc<=nPayload )
      pos:
        line_end: 69702
        line_start: 69702
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( info.nKey==pX->nKey )
      pos:
        line_end: 69741
        line_start: 69741
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( *pnSize == info.nSize )
      pos:
        line_end: 69742
        line_start: 69742
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pToRelease==0 || sqlite3PagerIswriteable(pToRelease->pDbPage) )
      pos:
        line_end: 69754
        line_start: 69754
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3_mutex_held(pPage->pBt->mutex) )
      pos:
        line_end: 69669
        line_start: 69669
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->intKeyLeaf )
      pos:
        line_end: 69682
        line_start: 69682
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( pPayload<pPage->aData || pPayload>=&pPage->aData[pBt->pageSize]\n
        \           || sqlite3PagerIswriteable(pPage->pDbPage) )"
      pos:
        line_end: 69759
        line_start: 69758
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( pCell<pPage->aData || pCell>=&pPage->aData[pPage->pBt->pageSize]\n
        \           || sqlite3PagerIswriteable(pPage->pDbPage) )"
      pos:
        line_end: 69674
        line_start: 69673
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pX->nKey<=0x7fffffff && pX->pKey!=0 )
      pos:
        line_end: 69686
        line_start: 69686
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( spaceLeft == info.nLocal )
      pos:
        line_end: 69743
        line_start: 69743
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( pPrior<pPage->aData || pPrior>=&pPage->aData[pBt->pageSize]\n
        \           || sqlite3PagerIswriteable(pPage->pDbPage) )"
      pos:
        line_end: 69819
        line_start: 69818
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nHeader==(int)(info.pPayload - pCell) )
      pos:
        line_end: 69740
        line_start: 69740
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pToRelease==0 || sqlite3PagerIswriteable(pToRelease->pDbPage) )
      pos:
        line_end: 69814
        line_start: 69814
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 69833
      start: 69653
    functionDepth: 15
    functionLinenumber: 69653
    functionLinenumberEnd: 69833
    functionName: fillInCell
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - putVarint32
    - ptrmapPut
    - put4byte
    - sqlite3_mutex_held
    - allocateBtreePage
    - assert
    - memset
    - PENDING_BYTE_PAGE
    - releasePage
    - MemPage*::xParseCell
    - sqlite3PagerIswriteable
    - putVarint
    - testcase
    - PTRMAP_ISPAGE
    linkageType: ''
    returnType: int
    signature: "int fillInCell(\n  MemPage *pPage,                /* The page that
      contains the cell */\n  unsigned char *pCell,          /* Complete text of the
      cell */\n  const BtreePayload *pX,        /* Payload with which to construct
      the cell */\n  int *pnSize                    /* Write cell size here */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69851,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69852,1
    - Dst: cellSize
      Src: /src/nss/lib/sqlite/sqlite3.c:69852,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69853,1
    - Dst: sqlite3PagerIswriteable
      Src: /src/nss/lib/sqlite/sqlite3.c:69853,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69854,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:69854,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69855,1
    - Dst: get2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:69858,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:69860,1
    - Dst: get2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:69860,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:69861,1
    - Dst: freeSpace
      Src: /src/nss/lib/sqlite/sqlite3.c:69866,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:69873,1
    - Dst: put2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:69875,1
    - Dst: memmove
      Src: /src/nss/lib/sqlite/sqlite3.c:69879,1
    - Dst: put2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:69880,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 4
    argNames:
    - pPage
    - idx
    - sz
    - pRC
    argTypes:
    - MemPage*
    - int
    - int
    - int*
    assertStmts:
    - condition: ( idx>=0 && idx<pPage->nCell )
      pos:
        line_end: 69850
        line_start: 69850
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( CORRUPT_DB || sz==cellSize(pPage, idx) )
      pos:
        line_end: 69851
        line_start: 69851
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3PagerIswriteable(pPage->pDbPage) )
      pos:
        line_end: 69852
        line_start: 69852
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3_mutex_held(pPage->pBt->mutex) )
      pos:
        line_end: 69853
        line_start: 69853
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->nFree>=0 )
      pos:
        line_end: 69854
        line_start: 69854
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 69883
      start: 69843
    functionDepth: 2
    functionLinenumber: 69843
    functionLinenumberEnd: 69883
    functionName: dropCell
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memmove
    - cellSize
    - assert
    - memset
    - put2byte
    - sqlite3PagerIswriteable
    - freeSpace
    - sqlite3_mutex_held
    - get2byte
    - testcase
    linkageType: ''
    returnType: void
    signature: void dropCell(MemPage *pPage, int idx, int sz, int *pRC)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69913,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69914,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69915,1
    - Dst: MX_CELL
      Src: /src/nss/lib/sqlite/sqlite3.c:69915,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69916,1
    - Dst: MX_CELL
      Src: /src/nss/lib/sqlite/sqlite3.c:69916,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69917,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:69917,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69918,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:69918,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:69918,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69919,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:69919,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69925,1
    - Dst: MemPage*::xCellSize
      Src: /src/nss/lib/sqlite/sqlite3.c:69925,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69926,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:69929,1
    - Dst: put4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:69933,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69939,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:69939,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69948,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69949,1
    - Dst: sqlite3PagerWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:69951,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69956,1
    - Dst: sqlite3PagerIswriteable
      Src: /src/nss/lib/sqlite/sqlite3.c:69956,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69958,1
    - Dst: allocateSpace
      Src: /src/nss/lib/sqlite/sqlite3.c:69959,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69963,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69964,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69965,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:69973,1
    - Dst: put4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:69974,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:69976,1
    - Dst: memmove
      Src: /src/nss/lib/sqlite/sqlite3.c:69979,1
    - Dst: put2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:69980,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:69984,1
    - Dst: get2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:69984,1
    - Dst: ptrmapPutOvflPtr
      Src: /src/nss/lib/sqlite/sqlite3.c:69990,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 58
    argCount: 7
    argNames:
    - pPage
    - i
    - pCell
    - sz
    - pTemp
    - iChild
    - pRC
    argTypes:
    - MemPage*
    - int
    - u8*
    - int
    - u8*
    - Pgno
    - int*
    assertStmts:
    - condition: ( sqlite3_mutex_held(pPage->pBt->mutex) )
      pos:
        line_end: 69918
        line_start: 69918
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( get2byte(&data[pPage->hdrOffset+3])==pPage->nCell || CORRUPT_DB
        )
      pos:
        line_end: 69983
        line_start: 69983
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3PagerIswriteable(pPage->pDbPage) )
      pos:
        line_end: 69955
        line_start: 69955
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( MX_CELL(pPage->pBt)<=10921 )
      pos:
        line_end: 69914
        line_start: 69914
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->nCell<=MX_CELL(pPage->pBt) || CORRUPT_DB )
      pos:
        line_end: 69915
        line_start: 69915
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->nFree>=0 )
      pos:
        line_end: 69925
        line_start: 69925
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( idx >= pPage->cellOffset+2*pPage->nCell+2 || CORRUPT_DB )
      pos:
        line_end: 69963
        line_start: 69963
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( idx+sz <= (int)pPage->pBt->usableSize )
      pos:
        line_end: 69964
        line_start: 69964
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( *pRC==SQLITE_OK )
      pos:
        line_end: 69912
        line_start: 69912
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( i>=0 && i<=pPage->nCell+pPage->nOverflow )
      pos:
        line_end: 69913
        line_start: 69913
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( ArraySize(pPage->apOvfl)==ArraySize(pPage->aiOvfl) )
      pos:
        line_end: 69917
        line_start: 69917
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sz==pPage->xCellSize(pPage, pCell) || (sz==8 && iChild>0) )
      pos:
        line_end: 69924
        line_start: 69924
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( j==0 || pPage->aiOvfl[j-1]<(u16)i )
      pos:
        line_end: 69947
        line_start: 69947
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( j==0 || i==pPage->aiOvfl[j-1]+1 )
      pos:
        line_end: 69948
        line_start: 69948
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( &data[pPage->cellOffset]==pPage->aCellIdx )
      pos:
        line_end: 69957
        line_start: 69957
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->nOverflow<=ArraySize(pPage->apOvfl) )
      pos:
        line_end: 69916
        line_start: 69916
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( j < ArraySize(pPage->apOvfl)-1 )
      pos:
        line_end: 69938
        line_start: 69938
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( idx >= 0 )
      pos:
        line_end: 69962
        line_start: 69962
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 69994
      start: 69899
    functionDepth: 16
    functionLinenumber: 69899
    functionLinenumberEnd: 69994
    functionName: insertCell
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - MX_CELL
    - put4byte
    - MemPage*::xCellSize
    - get2byte
    - ArraySize
    - ptrmapPutOvflPtr
    - allocateSpace
    - assert
    - sqlite3PagerWrite
    - put2byte
    - sqlite3PagerIswriteable
    - sqlite3_mutex_held
    - memmove
    linkageType: ''
    returnType: void
    signature: "void insertCell(\n  MemPage *pPage,   /* Page into which we are copying
      */\n  int i,            /* New cell becomes the i-th cell of the page */\n  u8
      *pCell,        /* Content of the new cell */\n  int sz,           /* Bytes of
      content in pCell */\n  u8 *pTemp,        /* Temp storage space for pCell, if
      needed */\n  Pgno iChild,      /* If non-zero, replace first 4 bytes with this
      value */\n  int *pRC          /* Read and write return code from here */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:70094,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:70096,1
    - Dst: CellArray*::pRef::xCellSize
      Src: /src/nss/lib/sqlite/sqlite3.c:70098,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:70100,1
    - Dst: CellArray*::pRef::xCellSize
      Src: /src/nss/lib/sqlite/sqlite3.c:70101,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - p
    - idx
    - N
    argTypes:
    - CellArray*
    - int
    - int
    assertStmts:
    - condition: ( idx>=0 && idx+N<=p->nCell )
      pos:
        line_end: 70093
        line_start: 70093
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( CORRUPT_DB ||\n              p->szCell[idx]==p->pRef->xCellSize(p->pRef,
        p->apCell[idx]) )"
      pos:
        line_end: 70100
        line_start: 70099
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->apCell[idx]!=0 )
      pos:
        line_end: 70095
        line_start: 70095
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 70106
      start: 70093
    functionDepth: 0
    functionLinenumber: 70093
    functionLinenumberEnd: 70106
    functionName: populateCellCache
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - CellArray*::pRef::xCellSize
    linkageType: ''
    returnType: void
    signature: void populateCellCache(CellArray *p, int idx, int N)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:70112,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:70113,1
    - Dst: CellArray*::pRef::xCellSize
      Src: /src/nss/lib/sqlite/sqlite3.c:70114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - p
    - N
    argTypes:
    - CellArray*
    - int
    assertStmts:
    - condition: ( N>=0 && N<p->nCell )
      pos:
        line_end: 70111
        line_start: 70111
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->szCell[N]==0 )
      pos:
        line_end: 70112
        line_start: 70112
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 70116
      start: 70111
    functionDepth: 0
    functionLinenumber: 70111
    functionLinenumberEnd: 70116
    functionName: computeCellSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - CellArray*::pRef::xCellSize
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: SQLITE_NOINLINE computeCellSize(CellArray *p, int N)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:70118,1
    - Dst: computeCellSize
      Src: /src/nss/lib/sqlite/sqlite3.c:70120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - p
    - N
    argTypes:
    - CellArray*
    - int
    assertStmts:
    - condition: ( N>=0 && N<p->nCell )
      pos:
        line_end: 70117
        line_start: 70117
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 70121
      start: 70117
    functionDepth: 1
    functionLinenumber: 70117
    functionLinenumberEnd: 70121
    functionName: cachedCellSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - computeCellSize
    linkageType: ''
    returnType: u16
    signature: u16 cachedCellSize(CellArray *p, int N)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PagerTempSpace
      Src: /src/nss/lib/sqlite/sqlite3.c:70150,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:70155,1
    - Dst: get2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:70156,1
    - Dst: NEVER
      Src: /src/nss/lib/sqlite/sqlite3.c:70157,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:70158,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:70160,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:70167,1
    - Dst: SQLITE_WITHIN
      Src: /src/nss/lib/sqlite/sqlite3.c:70168,1
    - Dst: put2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:70178,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:70181,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:70182,1
    - Dst: MemPage*::xCellSize
      Src: /src/nss/lib/sqlite/sqlite3.c:70182,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:70183,1
    - Dst: MemPage*::xCellSize
      Src: /src/nss/lib/sqlite/sqlite3.c:70183,1
    - Dst: put2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:70196,1
    - Dst: put2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:70197,1
    - Dst: put2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:70198,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 4
    argNames:
    - pCArray
    - iFirst
    - nCell
    - pPg
    argTypes:
    - CellArray*
    - int
    - int
    - MemPage*
    assertStmts:
    - condition: ( sz>0 )
      pos:
        line_end: 70166
        line_start: 70166
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( i<iEnd )
      pos:
        line_end: 70154
        line_start: 70154
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sz==pPg->xCellSize(pPg, pCell) || CORRUPT_DB )
      pos:
        line_end: 70181
        line_start: 70181
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 70201
      start: 70136
    functionDepth: 1
    functionLinenumber: 70136
    functionLinenumberEnd: 70201
    functionName: rebuildPage
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - NEVER
    - ALWAYS
    - SQLITE_WITHIN
    - memcpy
    - sqlite3PagerTempSpace
    - MemPage*::xCellSize
    - assert
    - put2byte
    - get2byte
    - testcase
    linkageType: ''
    returnType: int
    signature: "int rebuildPage(\n  CellArray *pCArray,             /* Content to
      be added to page pPg */\n  int iFirst,                     /* First cell in
      pCArray to use */\n  int nCell,                      /* Final number of cells
      on page */\n  MemPage *pPg                    /* The page to be reconstructed
      */\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:70242,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:70244,1
    - Dst: cachedCellSize
      Src: /src/nss/lib/sqlite/sqlite3.c:70249,1
    - Dst: pageFindSlot
      Src: /src/nss/lib/sqlite/sqlite3.c:70250,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:70258,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:70264,1
    - Dst: memmove
      Src: /src/nss/lib/sqlite/sqlite3.c:70268,1
    - Dst: put2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:70269,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 34
    argCount: 7
    argNames:
    - pPg
    - pBegin
    - ppData
    - pCellptr
    - iFirst
    - nCell
    - pCArray
    argTypes:
    - MemPage*
    - u8*
    - u8**
    - u8*
    - int
    - int
    - CellArray*
    assertStmts:
    - condition: ( CORRUPT_DB || pPg->hdrOffset==0 )
      pos:
        line_end: 70241
        line_start: 70241
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( (pSlot+sz)<=pCArray->apCell[i]\n         || pSlot>=(pCArray->apCell[i]+sz)\n
        \        || CORRUPT_DB )"
      pos:
        line_end: 70259
        line_start: 70257
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( CORRUPT_DB )
      pos:
        line_end: 70263
        line_start: 70263
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 70280
      start: 70227
    functionDepth: 2
    functionLinenumber: 70227
    functionLinenumberEnd: 70280
    functionName: pageInsertArray
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ALWAYS
    - pageFindSlot
    - cachedCellSize
    - assert
    - put2byte
    - memmove
    linkageType: ''
    returnType: int
    signature: "int pageInsertArray(\n  MemPage *pPg,                   /* Page to
      add cells to */\n  u8 *pBegin,                     /* End of cell-pointer array
      */\n  u8 **ppData,                    /* IN/OUT: Page content-area pointer */\n
      \ u8 *pCellptr,                   /* Pointer to cell-pointer area */\n  int
      iFirst,                     /* Index of first cell to add */\n  int nCell,                      /*
      Number of cells to add to pPg */\n  CellArray *pCArray              /* Array
      of cells */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SQLITE_WITHIN
      Src: /src/nss/lib/sqlite/sqlite3.c:70308,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:70313,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:70316,1
    - Dst: freeSpace
      Src: /src/nss/lib/sqlite/sqlite3.c:70317,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:70330,1
    - Dst: freeSpace
      Src: /src/nss/lib/sqlite/sqlite3.c:70331,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 4
    argNames:
    - pPg
    - iFirst
    - nCell
    - pCArray
    argTypes:
    - MemPage*
    - int
    - int
    - CellArray*
    assertStmts:
    - condition: ( pFree>aData && (pFree - aData)<65536 )
      pos:
        line_end: 70315
        line_start: 70315
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sz>0 )
      pos:
        line_end: 70312
        line_start: 70312
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pFree>aData && (pFree - aData)<65536 )
      pos:
        line_end: 70329
        line_start: 70329
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 70334
      start: 70291
    functionDepth: 2
    functionLinenumber: 70291
    functionLinenumberEnd: 70334
    functionName: pageFreeArray
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - SQLITE_WITHIN
    - freeSpace
    linkageType: ''
    returnType: int
    signature: "int pageFreeArray(\n  MemPage *pPg,                   /* Page to edit
      */\n  int iFirst,                     /* First cell to delete */\n  int nCell,
      \                     /* Cells to delete */\n  CellArray *pCArray              /*
      Array of cells */\n)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PagerTempSpace
      Src: /src/nss/lib/sqlite/sqlite3.c:70366,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:70367,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:70371,1
    - Dst: pageFreeArray
      Src: /src/nss/lib/sqlite/sqlite3.c:70373,1
    - Dst: memmove
      Src: /src/nss/lib/sqlite/sqlite3.c:70375,1
    - Dst: pageFreeArray
      Src: /src/nss/lib/sqlite/sqlite3.c:70379,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:70380,1
    - Dst: get2byteNotZero
      Src: /src/nss/lib/sqlite/sqlite3.c:70384,1
    - Dst: MIN
      Src: /src/nss/lib/sqlite/sqlite3.c:70389,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:70390,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:70391,1
    - Dst: memmove
      Src: /src/nss/lib/sqlite/sqlite3.c:70393,1
    - Dst: pageInsertArray
      Src: /src/nss/lib/sqlite/sqlite3.c:70394,1
    - Dst: memmove
      Src: /src/nss/lib/sqlite/sqlite3.c:70407,1
    - Dst: pageInsertArray
      Src: /src/nss/lib/sqlite/sqlite3.c:70410,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:70418,1
    - Dst: pageInsertArray
      Src: /src/nss/lib/sqlite/sqlite3.c:70420,1
    - Dst: put2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:70428,1
    - Dst: put2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:70429,1
    - Dst: get2byteAligned
      Src: /src/nss/lib/sqlite/sqlite3.c:70434,1
    - Dst: SQLITE_WITHIN
      Src: /src/nss/lib/sqlite/sqlite3.c:70435,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:70438,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:70438,1
    - Dst: CellArray*::pRef::xCellSize
      Src: /src/nss/lib/sqlite/sqlite3.c:70439,1
    - Dst: populateCellCache
      Src: /src/nss/lib/sqlite/sqlite3.c:70446,1
    - Dst: rebuildPage
      Src: /src/nss/lib/sqlite/sqlite3.c:70447,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 59
    argCount: 5
    argNames:
    - pPg
    - iOld
    - iNew
    - nNew
    - pCArray
    argTypes:
    - MemPage*
    - int
    - int
    - int
    - CellArray*
    assertStmts:
    - condition: ( nCell>=0 )
      pos:
        line_end: 70417
        line_start: 70417
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nCell>=nTail )
      pos:
        line_end: 70379
        line_start: 70379
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nAdd>=0 )
      pos:
        line_end: 70390
        line_start: 70390
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nCell>=0 )
      pos:
        line_end: 70370
        line_start: 70370
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (iOld-iNew)<nNew || nCell==0 || CORRUPT_DB )
      pos:
        line_end: 70389
        line_start: 70389
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( 0==memcmp(pCell, &aData[iOff],\n            pCArray->pRef->xCellSize(pCArray->pRef,
        pCArray->apCell[i+iNew])) )"
      pos:
        line_end: 70438
        line_start: 70437
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 70448
      start: 70348
    functionDepth: 3
    functionLinenumber: 70348
    functionLinenumberEnd: 70448
    functionName: editPage
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - SQLITE_WITHIN
    - memcpy
    - populateCellCache
    - CellArray*::pRef::xCellSize
    - sqlite3PagerTempSpace
    - pageInsertArray
    - memcmp
    - rebuildPage
    - assert
    - get2byteAligned
    - pageFreeArray
    - put2byte
    - get2byteNotZero
    - memmove
    - MIN
    linkageType: ''
    returnType: int
    signature: "int editPage(\n  MemPage *pPg,                   /* Edit this page
      */\n  int iOld,                       /* Index of first cell currently on page
      */\n  int iNew,                       /* Index of new first cell on page */\n
      \ int nNew,                       /* Final number of cells on page */\n  CellArray
      *pCArray              /* Array of cells and sizes */\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:70481,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:70481,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:70482,1
    - Dst: sqlite3PagerIswriteable
      Src: /src/nss/lib/sqlite/sqlite3.c:70482,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:70483,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:70486,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:70487,1
    - Dst: allocateBtreePage
      Src: /src/nss/lib/sqlite/sqlite3.c:70493,1
    - Dst: MemPage*::xCellSize
      Src: /src/nss/lib/sqlite/sqlite3.c:70499,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:70503,1
    - Dst: sqlite3PagerIswriteable
      Src: /src/nss/lib/sqlite/sqlite3.c:70503,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:70504,1
    - Dst: zeroPage
      Src: /src/nss/lib/sqlite/sqlite3.c:70505,1
    - Dst: rebuildPage
      Src: /src/nss/lib/sqlite/sqlite3.c:70512,1
    - Dst: NEVER
      Src: /src/nss/lib/sqlite/sqlite3.c:70513,1
    - Dst: releasePage
      Src: /src/nss/lib/sqlite/sqlite3.c:70514,1
    - Dst: ptrmapPut
      Src: /src/nss/lib/sqlite/sqlite3.c:70529,1
    - Dst: ptrmapPutOvflPtr
      Src: /src/nss/lib/sqlite/sqlite3.c:70531,1
    - Dst: findCell
      Src: /src/nss/lib/sqlite/sqlite3.c:70548,1
    - Dst: insertCell
      Src: /src/nss/lib/sqlite/sqlite3.c:70556,1
    - Dst: put4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:70561,1
    - Dst: releasePage
      Src: /src/nss/lib/sqlite/sqlite3.c:70564,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 3
    argNames:
    - pParent
    - pPage
    - pSpace
    argTypes:
    - MemPage*
    - MemPage*
    - u8*
    assertStmts:
    - condition: ( sqlite3PagerIswriteable(pParent->pDbPage) )
      pos:
        line_end: 70481
        line_start: 70481
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->nOverflow==1 )
      pos:
        line_end: 70482
        line_start: 70482
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( CORRUPT_DB || pPage->aData[0]==(PTF_INTKEY|PTF_LEAFDATA|PTF_LEAF)
        )
      pos:
        line_end: 70503
        line_start: 70503
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pParent->nFree>=0 )
      pos:
        line_end: 70486
        line_start: 70486
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3_mutex_held(pPage->pBt->mutex) )
      pos:
        line_end: 70480
        line_start: 70480
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->nFree>=0 )
      pos:
        line_end: 70485
        line_start: 70485
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3PagerIswriteable(pNew->pDbPage) )
      pos:
        line_end: 70502
        line_start: 70502
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 70568
      start: 70475
    functionDepth: 17
    functionLinenumber: 70475
    functionLinenumberEnd: 70568
    functionName: balance_quick
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - NEVER
    - findCell
    - ptrmapPut
    - MemPage*::xCellSize
    - ptrmapPutOvflPtr
    - put4byte
    - allocateBtreePage
    - rebuildPage
    - assert
    - releasePage
    - sqlite3PagerIswriteable
    - insertCell
    - sqlite3_mutex_held
    - zeroPage
    linkageType: ''
    returnType: int
    signature: int balance_quick(MemPage *pParent, MemPage *pPage, u8 *pSpace)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:70584,1
    - Dst: findCell
      Src: /src/nss/lib/sqlite/sqlite3.c:70590,1
    - Dst: MemPage*::xParseCell
      Src: /src/nss/lib/sqlite/sqlite3.c:70591,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:70593,1
    - Dst: ptrmapGet
      Src: /src/nss/lib/sqlite/sqlite3.c:70594,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:70595,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:70598,1
    - Dst: ptrmapGet
      Src: /src/nss/lib/sqlite/sqlite3.c:70599,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:70600,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:70604,1
    - Dst: ptrmapGet
      Src: /src/nss/lib/sqlite/sqlite3.c:70605,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:70606,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - apPage
    - nPage
    argTypes:
    - MemPage**
    - int
    assertStmts:
    - condition: ( pPage->isInit )
      pos:
        line_end: 70583
        line_start: 70583
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( n==pPage->pgno && e==PTRMAP_OVERFLOW1 )
      pos:
        line_end: 70594
        line_start: 70594
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( n==pPage->pgno && e==PTRMAP_BTREE )
      pos:
        line_end: 70599
        line_start: 70599
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( n==pPage->pgno && e==PTRMAP_BTREE )
      pos:
        line_end: 70605
        line_start: 70605
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 70610
      start: 70577
    functionDepth: 7
    functionLinenumber: 70577
    functionLinenumberEnd: 70610
    functionName: ptrmapCheckPages
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - findCell
    - get4byte
    - assert
    - MemPage*::xParseCell
    - ptrmapGet
    linkageType: ''
    returnType: int
    signature: int ptrmapCheckPages(MemPage **apPage, int nPage)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:70641,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:70642,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:70643,1
    - Dst: get2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:70643,1
    - Dst: get2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:70646,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:70647,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:70648,1
    - Dst: btreeInitPage
      Src: /src/nss/lib/sqlite/sqlite3.c:70656,1
    - Dst: btreeComputeFreeSpace
      Src: /src/nss/lib/sqlite/sqlite3.c:70657,1
    - Dst: setChildPtrmaps
      Src: /src/nss/lib/sqlite/sqlite3.c:70667,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - pFrom
    - pTo
    - pRC
    argTypes:
    - MemPage*
    - MemPage*
    - int*
    assertStmts:
    - condition: ( pFrom->isInit )
      pos:
        line_end: 70640
        line_start: 70640
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( get2byte(&aFrom[iFromHdr+5]) <= (int)pBt->usableSize )
      pos:
        line_end: 70642
        line_start: 70642
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pFrom->nFree>=iToHdr )
      pos:
        line_end: 70641
        line_start: 70641
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 70670
      start: 70630
    functionDepth: 17
    functionLinenumber: 70630
    functionLinenumberEnd: 70670
    functionName: copyNodeContent
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - setChildPtrmaps
    - btreeComputeFreeSpace
    - assert
    - btreeInitPage
    - get2byte
    linkageType: ''
    returnType: void
    signature: void copyNodeContent(MemPage *pFrom, MemPage *pTo, int *pRC)
  - BBCount: 60
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:70748,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:70752,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:70752,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:70753,1
    - Dst: sqlite3PagerIswriteable
      Src: /src/nss/lib/sqlite/sqlite3.c:70753,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:70760,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:70761,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:70766,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:70783,1
    - Dst: findCell
      Src: /src/nss/lib/sqlite/sqlite3.c:70797,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:70799,1
    - Dst: getAndInitPage
      Src: /src/nss/lib/sqlite/sqlite3.c:70801,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:70803,1
    - Dst: btreeComputeFreeSpace
      Src: /src/nss/lib/sqlite/sqlite3.c:70807,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:70809,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:70817,1
    - Dst: MemPage*::xCellSize
      Src: /src/nss/lib/sqlite/sqlite3.c:70818,1
    - Dst: findCell
      Src: /src/nss/lib/sqlite/sqlite3.c:70821,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:70822,1
    - Dst: MemPage*::xCellSize
      Src: /src/nss/lib/sqlite/sqlite3.c:70823,1
    - Dst: SQLITE_PTR_TO_INT
      Src: /src/nss/lib/sqlite/sqlite3.c:70840,1
    - Dst: SQLITE_PTR_TO_INT
      Src: /src/nss/lib/sqlite/sqlite3.c:70840,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:70843,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:70846,1
    - Dst: dropCell
      Src: /src/nss/lib/sqlite/sqlite3.c:70850,1
    - Dst: MX_CELL
      Src: /src/nss/lib/sqlite/sqlite3.c:70856,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:70856,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:70867,1
    - Dst: sqlite3StackAllocRaw
      Src: /src/nss/lib/sqlite/sqlite3.c:70868,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:70875,1
    - Dst: EIGHT_BYTE_ALIGNMENT
      Src: /src/nss/lib/sqlite/sqlite3.c:70875,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:70930,1
    - Dst: get2byteAligned
      Src: /src/nss/lib/sqlite/sqlite3.c:70938,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:70943,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:70950,1
    - Dst: get2byteAligned
      Src: /src/nss/lib/sqlite/sqlite3.c:70951,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:70955,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:70961,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:70965,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:70966,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:70967,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:70969,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:70972,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:70973,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:70976,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:70978,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:70982,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:70983,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71021,1
    - Dst: MemPage*::xCellSize
      Src: /src/nss/lib/sqlite/sqlite3.c:71024,1
    - Dst: cachedCellSize
      Src: /src/nss/lib/sqlite/sqlite3.c:71038,1
    - Dst: cachedCellSize
      Src: /src/nss/lib/sqlite/sqlite3.c:71042,1
    - Dst: cachedCellSize
      Src: /src/nss/lib/sqlite/sqlite3.c:71051,1
    - Dst: cachedCellSize
      Src: /src/nss/lib/sqlite/sqlite3.c:71057,1
    - Dst: cachedCellSize
      Src: /src/nss/lib/sqlite/sqlite3.c:71091,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71093,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71094,1
    - Dst: cachedCellSize
      Src: /src/nss/lib/sqlite/sqlite3.c:71095,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71121,1
    - Dst: TRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:71122,1
    - Dst: sqlite3PagerWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:71137,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71141,1
    - Dst: allocateBtreePage
      Src: /src/nss/lib/sqlite/sqlite3.c:71142,1
    - Dst: zeroPage
      Src: /src/nss/lib/sqlite/sqlite3.c:71144,1
    - Dst: ptrmapPut
      Src: /src/nss/lib/sqlite/sqlite3.c:71151,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71182,1
    - Dst: sqlite3PagerRekey
      Src: /src/nss/lib/sqlite/sqlite3.c:71197,1
    - Dst: sqlite3PagerRekey
      Src: /src/nss/lib/sqlite/sqlite3.c:71199,1
    - Dst: TRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:71204,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71217,1
    - Dst: sqlite3PagerIswriteable
      Src: /src/nss/lib/sqlite/sqlite3.c:71217,1
    - Dst: put4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:71218,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:71225,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71255,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71256,1
    - Dst: SQLITE_WITHIN
      Src: /src/nss/lib/sqlite/sqlite3.c:71273,1
    - Dst: ptrmapPut
      Src: /src/nss/lib/sqlite/sqlite3.c:71276,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:71276,1
    - Dst: cachedCellSize
      Src: /src/nss/lib/sqlite/sqlite3.c:71278,1
    - Dst: ptrmapPutOvflPtr
      Src: /src/nss/lib/sqlite/sqlite3.c:71279,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71294,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71295,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:71300,1
    - Dst: MemPage*::xParseCell
      Src: /src/nss/lib/sqlite/sqlite3.c:71309,1
    - Dst: putVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:71311,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71327,1
    - Dst: MemPage*::xCellSize
      Src: /src/nss/lib/sqlite/sqlite3.c:71328,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71332,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71333,1
    - Dst: insertCell
      Src: /src/nss/lib/sqlite/sqlite3.c:71334,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71336,1
    - Dst: sqlite3PagerIswriteable
      Src: /src/nss/lib/sqlite/sqlite3.c:71336,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71363,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71374,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71378,1
    - Dst: editPage
      Src: /src/nss/lib/sqlite/sqlite3.c:71389,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71393,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71394,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71399,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:71399,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71401,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71402,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71420,1
    - Dst: defragmentPage
      Src: /src/nss/lib/sqlite/sqlite3.c:71421,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:71422,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71423,1
    - Dst: get2byteNotZero
      Src: /src/nss/lib/sqlite/sqlite3.c:71424,1
    - Dst: copyNodeContent
      Src: /src/nss/lib/sqlite/sqlite3.c:71428,1
    - Dst: freePage
      Src: /src/nss/lib/sqlite/sqlite3.c:71429,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:71435,1
    - Dst: ptrmapPut
      Src: /src/nss/lib/sqlite/sqlite3.c:71436,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71440,1
    - Dst: TRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:71441,1
    - Dst: freePage
      Src: /src/nss/lib/sqlite/sqlite3.c:71447,1
    - Dst: ptrmapCheckPages
      Src: /src/nss/lib/sqlite/sqlite3.c:71456,1
    - Dst: ptrmapCheckPages
      Src: /src/nss/lib/sqlite/sqlite3.c:71457,1
    - Dst: sqlite3StackFree
      Src: /src/nss/lib/sqlite/sqlite3.c:71465,1
    - Dst: releasePage
      Src: /src/nss/lib/sqlite/sqlite3.c:71467,1
    - Dst: releasePage
      Src: /src/nss/lib/sqlite/sqlite3.c:71470,1
    CyclomaticComplexity: 138
    EdgeCount: 138
    ICount: 429
    argCount: 5
    argNames:
    - pParent
    - iParentIdx
    - aOvflSpace
    - isRoot
    - bBulk
    argTypes:
    - MemPage*
    - int
    - u8*
    - int
    - int
    assertStmts:
    - condition: ( pParent->nFree>=0 )
      pos:
        line_end: 70765
        line_start: 70765
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iSpace1 <= (int)pBt->pageSize )
      pos:
        line_end: 70965
        line_start: 70965
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( r<nMaxCells )
      pos:
        line_end: 71093
        line_start: 71093
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nOld>0 )
      pos:
        line_end: 71400
        line_start: 71400
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( b.szCell[b.nCell]==3 || CORRUPT_DB )
      pos:
        line_end: 70981
        line_start: 70981
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( cntNew[0]>0 || (pParent->pgno==1 && pParent->nCell==0) || CORRUPT_DB)
      pos:
        line_end: 71120
        line_start: 71120
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( szScratch<=7*(int)pBt->pageSize )
      pos:
        line_end: 70866
        line_start: 70866
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( leafCorrection==0 )
      pos:
        line_end: 70971
        line_start: 70971
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( cntNew[iPg]>=cntOld[iPg] || abDone[iPg+1] )
      pos:
        line_end: 71377
        line_start: 71377
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( k==0 || pOld->aiOvfl[k-1]+1==pOld->aiOvfl[k] )
      pos:
        line_end: 70942
        line_start: 70942
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3_mutex_held(pBt->mutex) )
      pos:
        line_end: 70751
        line_start: 70751
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iPg==0 || cntOld[iPg-1]>=cntNew[iPg-1] || abDone[iPg-1] )
      pos:
        line_end: 71373
        line_start: 71373
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( apNew[iPg]->nCell==nNewCell )
      pos:
        line_end: 71393
        line_start: 71393
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3PagerIswriteable(pParent->pDbPage) )
      pos:
        line_end: 70752
        line_start: 70752
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (b.nCell-nCellAtStart)==(pOld->nCell+pOld->nOverflow) )
      pos:
        line_end: 70954
        line_start: 70954
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( b.apCell[b.nCell]==&aSpace1[iSpace1-3] || CORRUPT_DB )
      pos:
        line_end: 70982
        line_start: 70982
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( i>0 )
      pos:
        line_end: 71140
        line_start: 71140
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3PagerIswriteable(pParent->pDbPage) )
      pos:
        line_end: 71216
        line_start: 71216
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (leafCorrection==4)
      pos:
        line_end: 71326
        line_start: 71326
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iOvflSpace <= (int)pBt->pageSize )
      pos:
        line_end: 71332
        line_start: 71332
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pParent->nOverflow==0 || pParent->nOverflow==1 )
      pos:
        line_end: 70759
        line_start: 70759
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sz<=pBt->maxLocal+23 )
      pos:
        line_end: 70964
        line_start: 70964
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( b.nCell<nMaxCells )
      pos:
        line_end: 70960
        line_start: 70960
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( leafCorrection==0 || leafCorrection==4 )
      pos:
        line_end: 70968
        line_start: 70968
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( bBulk==0 || bBulk==1 )
      pos:
        line_end: 70782
        line_start: 70782
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( d<nMaxCells )
      pos:
        line_end: 71092
        line_start: 71092
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->nFree>=0 )
      pos:
        line_end: 71020
        line_start: 71020
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3PagerIswriteable(pParent->pDbPage) )
      pos:
        line_end: 71335
        line_start: 71335
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( memcmp(abDone, "\01\01\01\01\01", nNew)==0 )
      pos:
        line_end: 71398
        line_start: 71398
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( apNew[0]->nFree == \n        (get2byteNotZero(&apNew[0]->aData[5])
        - apNew[0]->cellOffset\n          - apNew[0]->nCell*2)\n      || rc!=SQLITE_OK\n
        \   )"
      pos:
        line_end: 71426
        line_start: 71422
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pParent->nOverflow==0 || pParent->aiOvfl[0]==iParentIdx )
      pos:
        line_end: 70760
        line_start: 70760
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iOld<nNew || iOld<nOld )
      pos:
        line_end: 71254
        line_start: 71254
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( j<nMaxCells )
      pos:
        line_end: 71293
        line_start: 71293
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nNew==1 || CORRUPT_DB )
      pos:
        line_end: 71419
        line_start: 71419
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( EIGHT_BYTE_ALIGNMENT(aSpace1) )
      pos:
        line_end: 70874
        line_start: 70874
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iPg>=0 && iPg<nNew )
      pos:
        line_end: 71362
        line_start: 71362
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( apNew[iPg]->nOverflow==0 )
      pos:
        line_end: 71392
        line_start: 71392
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nNew>0 )
      pos:
        line_end: 71401
        line_start: 71401
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( CORRUPT_DB )
      pos:
        line_end: 71181
        line_start: 71181
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOld->hdrOffset==0 )
      pos:
        line_end: 70972
        line_start: 70972
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( leafCorrection==4 )
      pos:
        line_end: 70977
        line_start: 70977
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( b.apCell[j]!=0 )
      pos:
        line_end: 71294
        line_start: 71294
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iOld>=0 && iOld<NB )
      pos:
        line_end: 71255
        line_start: 71255
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( b.nCell<nMaxCells )
      pos:
        line_end: 70949
        line_start: 70949
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sz<=pBt->maxLocal+23 )
      pos:
        line_end: 71331
        line_start: 71331
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pParent->isInit )
      pos:
        line_end: 71439
        line_start: 71439
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 71474
      start: 70712
    functionDepth: 18
    functionLinenumber: 70712
    functionLinenumberEnd: 71474
    functionName: balance_nonroot
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - MX_CELL
    - sqlite3PagerRekey
    - ptrmapPut
    - get4byte
    - allocateBtreePage
    - sqlite3StackFree
    - MemPage*::xParseCell
    - sqlite3PagerIswriteable
    - get2byteNotZero
    - freePage
    - TRACE
    - dropCell
    - zeroPage
    - testcase
    - SQLITE_PTR_TO_INT
    - memcpy
    - sqlite3StackAllocRaw
    - btreeComputeFreeSpace
    - memset
    - assert
    - sqlite3PagerWrite
    - copyNodeContent
    - ptrmapCheckPages
    - releasePage
    - sqlite3_mutex_held
    - EIGHT_BYTE_ALIGNMENT
    - memcmp
    - SQLITE_WITHIN
    - findCell
    - defragmentPage
    - ArraySize
    - put4byte
    - MemPage*::xCellSize
    - ptrmapPutOvflPtr
    - cachedCellSize
    - getAndInitPage
    - get2byteAligned
    - insertCell
    - putVarint
    - editPage
    linkageType: ''
    returnType: int
    signature: "int balance_nonroot(\n  MemPage *pParent,               /* Parent
      page of siblings being balanced */\n  int iParentIdx,                 /* Index
      of \"the page\" in pParent */\n  u8 *aOvflSpace,                 /* page-size
      bytes of space for parent ovfl */\n  int isRoot,                     /* True
      if pParent is a root-page */\n  int bBulk                       /* True if this
      call is part of a bulk load */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71502,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71503,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:71503,1
    - Dst: sqlite3PagerWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:71509,1
    - Dst: allocateBtreePage
      Src: /src/nss/lib/sqlite/sqlite3.c:71511,1
    - Dst: copyNodeContent
      Src: /src/nss/lib/sqlite/sqlite3.c:71512,1
    - Dst: ptrmapPut
      Src: /src/nss/lib/sqlite/sqlite3.c:71514,1
    - Dst: releasePage
      Src: /src/nss/lib/sqlite/sqlite3.c:71519,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71522,1
    - Dst: sqlite3PagerIswriteable
      Src: /src/nss/lib/sqlite/sqlite3.c:71522,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71523,1
    - Dst: sqlite3PagerIswriteable
      Src: /src/nss/lib/sqlite/sqlite3.c:71523,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71524,1
    - Dst: TRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:71526,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:71529,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:71531,1
    - Dst: zeroPage
      Src: /src/nss/lib/sqlite/sqlite3.c:71536,1
    - Dst: put4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:71537,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 2
    argNames:
    - pRoot
    - ppChild
    argTypes:
    - MemPage*
    - MemPage**
    assertStmts:
    - condition: ( pRoot->nOverflow>0 )
      pos:
        line_end: 71501
        line_start: 71501
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3_mutex_held(pBt->mutex) )
      pos:
        line_end: 71502
        line_start: 71502
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3PagerIswriteable(pChild->pDbPage) )
      pos:
        line_end: 71521
        line_start: 71521
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pChild->nCell==pRoot->nCell || CORRUPT_DB )
      pos:
        line_end: 71523
        line_start: 71523
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3PagerIswriteable(pRoot->pDbPage) )
      pos:
        line_end: 71522
        line_start: 71522
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 71541
      start: 71496
    functionDepth: 18
    functionLinenumber: 71496
    functionLinenumberEnd: 71541
    functionName: balance_deeper
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ptrmapPut
    - put4byte
    - allocateBtreePage
    - assert
    - sqlite3PagerWrite
    - copyNodeContent
    - releasePage
    - sqlite3PagerIswriteable
    - sqlite3_mutex_held
    - TRACE
    - zeroPage
    linkageType: ''
    returnType: int
    signature: int balance_deeper(MemPage *pRoot, MemPage **ppChild)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: NEVER
      Src: /src/nss/lib/sqlite/sqlite3.c:71566,1
    - Dst: btreeComputeFreeSpace
      Src: /src/nss/lib/sqlite/sqlite3.c:71566,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71574,1
    - Dst: VVA_ONLY
      Src: /src/nss/lib/sqlite/sqlite3.c:71575,1
    - Dst: balance_deeper
      Src: /src/nss/lib/sqlite/sqlite3.c:71576,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71583,1
    - Dst: sqlite3PagerWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:71594,1
    - Dst: btreeComputeFreeSpace
      Src: /src/nss/lib/sqlite/sqlite3.c:71596,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71619,1
    - Dst: VVA_ONLY
      Src: /src/nss/lib/sqlite/sqlite3.c:71620,1
    - Dst: balance_quick
      Src: /src/nss/lib/sqlite/sqlite3.c:71621,1
    - Dst: sqlite3PageMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:71642,1
    - Dst: balance_nonroot
      Src: /src/nss/lib/sqlite/sqlite3.c:71643,1
    - Dst: sqlite3PageFree
      Src: /src/nss/lib/sqlite/sqlite3.c:71650,1
    - Dst: releasePage
      Src: /src/nss/lib/sqlite/sqlite3.c:71663,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71665,1
    - Dst: sqlite3PageFree
      Src: /src/nss/lib/sqlite/sqlite3.c:71671,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 54
    argCount: 1
    argNames:
    - pCur
    argTypes:
    - BtCursor*
    assertStmts:
    - condition: ( balance_deeper_called==0 )
      pos:
        line_end: 71573
        line_start: 71573
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->pPage->nOverflow )
      pos:
        line_end: 71582
        line_start: 71582
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( balance_quick_called==0 )
      pos:
        line_end: 71618
        line_start: 71618
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->iPage>=0 )
      pos:
        line_end: 71664
        line_start: 71664
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 71674
      start: 71553
    functionDepth: 19
    functionLinenumber: 71553
    functionLinenumberEnd: 71674
    functionName: balance
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - NEVER
    - balance_quick
    - balance_deeper
    - balance_nonroot
    - sqlite3PageMalloc
    - VVA_ONLY
    - sqlite3PageFree
    - btreeComputeFreeSpace
    - assert
    - sqlite3PagerWrite
    - releasePage
    linkageType: ''
    returnType: int
    signature: int balance(BtCursor *pCur)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PagerWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:71692,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:71694,1
    - Dst: btreeOverwriteContent
      Src: /src/nss/lib/sqlite/sqlite3.c:71700,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:71705,1
    - Dst: sqlite3PagerWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:71706,1
    - Dst: memmove
      Src: /src/nss/lib/sqlite/sqlite3.c:71712,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 5
    argNames:
    - pPage
    - pDest
    - pX
    - iOffset
    - iAmt
    argTypes:
    - MemPage*
    - u8*
    - BtreePayload*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71716
      start: 71679
    functionDepth: 14
    functionLinenumber: 71679
    functionLinenumberEnd: 71716
    functionName: btreeOverwriteContent
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - memmove
    - btreeOverwriteContent
    - memset
    - sqlite3PagerWrite
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int btreeOverwriteContent(\n  MemPage *pPage,           /* MemPage
      on which writing will occur */\n  u8 *pDest,                /* Pointer to the
      place to start writing */\n  const BtreePayload *pX,   /* Source of data to
      write */\n  int iOffset,              /* Offset of first byte to write */\n
      \ int iAmt                  /* Number of bytes to be written */\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: btreeOverwriteContent
      Src: /src/nss/lib/sqlite/sqlite3.c:71735,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71742,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71743,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:71744,1
    - Dst: btreeGetPage
      Src: /src/nss/lib/sqlite/sqlite3.c:71748,1
    - Dst: sqlite3PagerPageRefcount
      Src: /src/nss/lib/sqlite/sqlite3.c:71750,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:71754,1
    - Dst: btreeOverwriteContent
      Src: /src/nss/lib/sqlite/sqlite3.c:71758,1
    - Dst: sqlite3PagerUnref
      Src: /src/nss/lib/sqlite/sqlite3.c:71761,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 2
    argNames:
    - pCur
    - pX
    argTypes:
    - BtCursor*
    - BtreePayload*
    assertStmts:
    - condition: ( iOffset>=0 )
      pos:
        line_end: 71742
        line_start: 71742
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nTotal>=0 )
      pos:
        line_end: 71741
        line_start: 71741
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 71766
      start: 71722
    functionDepth: 15
    functionLinenumber: 71722
    functionLinenumberEnd: 71766
    functionName: btreeOverwriteCell
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PagerUnref
    - get4byte
    - btreeOverwriteContent
    - assert
    - btreeGetPage
    - sqlite3PagerPageRefcount
    linkageType: ''
    returnType: int
    signature: int btreeOverwriteCell(BtCursor *pCur, const BtreePayload *pX)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71815,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71818,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71822,1
    - Dst: cursorOwnsBtShared
      Src: /src/nss/lib/sqlite/sqlite3.c:71822,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71823,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71826,1
    - Dst: hasSharedCacheTableLock
      Src: /src/nss/lib/sqlite/sqlite3.c:71826,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71833,1
    - Dst: saveAllCursors
      Src: /src/nss/lib/sqlite/sqlite3.c:71847,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71852,1
    - Dst: invalidateIncrblobCursors
      Src: /src/nss/lib/sqlite/sqlite3.c:71855,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71862,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71863,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71864,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71865,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71876,1
    - Dst: btreeOverwriteCell
      Src: /src/nss/lib/sqlite/sqlite3.c:71881,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71883,1
    - Dst: sqlite3BtreeMovetoUnpacked
      Src: /src/nss/lib/sqlite/sqlite3.c:71889,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71898,1
    - Dst: sqlite3BtreeMovetoUnpacked
      Src: /src/nss/lib/sqlite/sqlite3.c:71916,1
    - Dst: btreeMoveto
      Src: /src/nss/lib/sqlite/sqlite3.c:71918,1
    - Dst: getCellInfo
      Src: /src/nss/lib/sqlite/sqlite3.c:71928,1
    - Dst: btreeOverwriteCell
      Src: /src/nss/lib/sqlite/sqlite3.c:71934,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71939,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71942,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71943,1
    - Dst: btreeComputeFreeSpace
      Src: /src/nss/lib/sqlite/sqlite3.c:71945,1
    - Dst: TRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:71949,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71952,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71954,1
    - Dst: fillInCell
      Src: /src/nss/lib/sqlite/sqlite3.c:71955,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71957,1
    - Dst: MemPage*::xCellSize
      Src: /src/nss/lib/sqlite/sqlite3.c:71957,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71958,1
    - Dst: MX_CELL_SIZE
      Src: /src/nss/lib/sqlite/sqlite3.c:71958,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71962,1
    - Dst: sqlite3PagerWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:71963,1
    - Dst: findCell
      Src: /src/nss/lib/sqlite/sqlite3.c:71967,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:71969,1
    - Dst: clearCell
      Src: /src/nss/lib/sqlite/sqlite3.c:71971,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71984,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:71986,1
    - Dst: dropCell
      Src: /src/nss/lib/sqlite/sqlite3.c:71989,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71992,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71996,1
    - Dst: insertCell
      Src: /src/nss/lib/sqlite/sqlite3.c:71998,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:71999,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:72000,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:72024,1
    - Dst: balance
      Src: /src/nss/lib/sqlite/sqlite3.c:72026,1
    - Dst: btreeReleaseAllCursorPages
      Src: /src/nss/lib/sqlite/sqlite3.c:72035,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:72037,1
    - Dst: sqlite3Malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:72038,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:72042,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:72049,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 145
    argCount: 4
    argNames:
    - pCur
    - pX
    - flags
    - seekResult
    argTypes:
    - BtCursor*
    - BtreePayload*
    - int
    - int
    assertStmts:
    - condition: ( (flags & (BTREE_SAVEPOSITION|BTREE_APPEND))==flags )
      pos:
        line_end: 71814
        line_start: 71814
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->skipNext!=SQLITE_OK )
      pos:
        line_end: 71817
        line_start: 71817
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( hasSharedCacheTableLock(p, pCur->pgnoRoot, pCur->pKeyInfo!=0, 2)
        )
      pos:
        line_end: 71825
        line_start: 71825
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pX->nData>=0 && pX->nZero>=0 )
      pos:
        line_end: 71875
        line_start: 71875
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( loc==0 )
      pos:
        line_end: 71882
        line_start: 71882
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->intKey || pX->nKey>=0 )
      pos:
        line_end: 71941
        line_start: 71941
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->pKey==0 )
      pos:
        line_end: 72036
        line_start: 72036
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pX->pKey==0)==(pCur->pKeyInfo==0) )
      pos:
        line_end: 71832
        line_start: 71832
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( loc==0 )
      pos:
        line_end: 71864
        line_start: 71864
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( idx<pPage->nCell )
      pos:
        line_end: 71961
        line_start: 71961
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->leaf )
      pos:
        line_end: 71995
        line_start: 71995
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc!=SQLITE_OK || pPage->nCell>0 || pPage->nOverflow>0 )
      pos:
        line_end: 71999
        line_start: 71999
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->leaf )
      pos:
        line_end: 71991
        line_start: 71991
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( (pCur->curFlags & BTCF_WriteFlag)!=0\n              && pBt->inTransaction==TRANS_WRITE\n
        \             && (pBt->btsFlags & BTS_READ_ONLY)==0 )"
      pos:
        line_end: 71824
        line_start: 71822
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pX->pKey==0 )
      pos:
        line_end: 71851
        line_start: 71851
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->curFlags & BTCF_ValidNKey )
      pos:
        line_end: 71861
        line_start: 71861
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->isInit )
      pos:
        line_end: 71951
        line_start: 71951
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( szNew==pPage->xCellSize(pPage, newCell) )
      pos:
        line_end: 71956
        line_start: 71956
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->nOverflow==0 || rc==SQLITE_OK )
      pos:
        line_end: 71998
        line_start: 71998
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( cursorOwnsBtShared(pCur) )
      pos:
        line_end: 71821
        line_start: 71821
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->info.nSize!=0 )
      pos:
        line_end: 71863
        line_start: 71863
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pX->nKey==pCur->info.nKey )
      pos:
        line_end: 71862
        line_start: 71862
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (flags & BTREE_SAVEPOSITION)==0 || loc==0 )
      pos:
        line_end: 71897
        line_start: 71897
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->eState==CURSOR_VALID || (pCur->eState==CURSOR_INVALID &&
        loc) )
      pos:
        line_end: 71938
        line_start: 71938
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->leaf || !pPage->intKey )
      pos:
        line_end: 71942
        line_start: 71942
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( newCell!=0 )
      pos:
        line_end: 71953
        line_start: 71953
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->iPage<0 || pCur->pPage->nOverflow==0 )
      pos:
        line_end: 72048
        line_start: 72048
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc==SQLITE_OK )
      pos:
        line_end: 72023
        line_start: 72023
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( szNew <= MX_CELL_SIZE(pBt) )
      pos:
        line_end: 71957
        line_start: 71957
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc==SQLITE_OK )
      pos:
        line_end: 71983
        line_start: 71983
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 72053
      start: 71799
    functionDepth: 20
    functionLinenumber: 71799
    functionLinenumberEnd: 72053
    functionName: sqlite3BtreeInsert
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Malloc
    - MX_CELL_SIZE
    - TRACE
    - dropCell
    - btreeOverwriteCell
    - invalidateIncrblobCursors
    - getCellInfo
    - memcpy
    - hasSharedCacheTableLock
    - sqlite3BtreeMovetoUnpacked
    - btreeMoveto
    - btreeComputeFreeSpace
    - assert
    - sqlite3PagerWrite
    - balance
    - fillInCell
    - cursorOwnsBtShared
    - clearCell
    - saveAllCursors
    - findCell
    - btreeReleaseAllCursorPages
    - MemPage*::xCellSize
    - insertCell
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3BtreeInsert(\n  BtCursor *pCur,                /*
      Insert data into the table of this cursor */\n  const BtreePayload *pX,        /*
      Content of the row to be inserted */\n  int flags,                     /* True
      if this is likely an append */\n  int seekResult                 /* Result of
      prior MovetoUnpacked() call */\n)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:72084,1
    - Dst: cursorOwnsBtShared
      Src: /src/nss/lib/sqlite/sqlite3.c:72084,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:72085,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:72086,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:72087,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:72088,1
    - Dst: hasSharedCacheTableLock
      Src: /src/nss/lib/sqlite/sqlite3.c:72088,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:72089,1
    - Dst: hasReadConflicts
      Src: /src/nss/lib/sqlite/sqlite3.c:72089,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:72090,1
    - Dst: btreeRestoreCursorPosition
      Src: /src/nss/lib/sqlite/sqlite3.c:72092,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:72095,1
    - Dst: findCell
      Src: /src/nss/lib/sqlite/sqlite3.c:72100,1
    - Dst: btreeComputeFreeSpace
      Src: /src/nss/lib/sqlite/sqlite3.c:72101,1
    - Dst: cellSizePtr
      Src: /src/nss/lib/sqlite/sqlite3.c:72114,1
    - Dst: saveCursorKey
      Src: /src/nss/lib/sqlite/sqlite3.c:72119,1
    - Dst: sqlite3BtreePrevious
      Src: /src/nss/lib/sqlite/sqlite3.c:72134,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:72135,1
    - Dst: saveAllCursors
      Src: /src/nss/lib/sqlite/sqlite3.c:72142,1
    - Dst: invalidateIncrblobCursors
      Src: /src/nss/lib/sqlite/sqlite3.c:72149,1
    - Dst: sqlite3PagerWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:72155,1
    - Dst: clearCell
      Src: /src/nss/lib/sqlite/sqlite3.c:72157,1
    - Dst: dropCell
      Src: /src/nss/lib/sqlite/sqlite3.c:72158,1
    - Dst: btreeComputeFreeSpace
      Src: /src/nss/lib/sqlite/sqlite3.c:72173,1
    - Dst: findCell
      Src: /src/nss/lib/sqlite/sqlite3.c:72181,1
    - Dst: MemPage*::xCellSize
      Src: /src/nss/lib/sqlite/sqlite3.c:72183,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:72184,1
    - Dst: MX_CELL_SIZE
      Src: /src/nss/lib/sqlite/sqlite3.c:72184,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:72186,1
    - Dst: sqlite3PagerWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:72187,1
    - Dst: insertCell
      Src: /src/nss/lib/sqlite/sqlite3.c:72189,1
    - Dst: dropCell
      Src: /src/nss/lib/sqlite/sqlite3.c:72191,1
    - Dst: balance
      Src: /src/nss/lib/sqlite/sqlite3.c:72210,1
    - Dst: releasePageNotNull
      Src: /src/nss/lib/sqlite/sqlite3.c:72212,1
    - Dst: releasePage
      Src: /src/nss/lib/sqlite/sqlite3.c:72215,1
    - Dst: balance
      Src: /src/nss/lib/sqlite/sqlite3.c:72218,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:72223,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:72224,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:72225,1
    - Dst: moveToRoot
      Src: /src/nss/lib/sqlite/sqlite3.c:72234,1
    - Dst: btreeReleaseAllCursorPages
      Src: /src/nss/lib/sqlite/sqlite3.c:72236,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 109
    argCount: 2
    argNames:
    - pCur
    - flags
    argTypes:
    - BtCursor*
    - u8
    assertStmts:
    - condition: ( cursorOwnsBtShared(pCur) )
      pos:
        line_end: 72083
        line_start: 72083
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->curFlags & BTCF_WriteFlag )
      pos:
        line_end: 72086
        line_start: 72086
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( hasSharedCacheTableLock(p, pCur->pgnoRoot, pCur->pKeyInfo!=0, 2)
        )
      pos:
        line_end: 72087
        line_start: 72087
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc!=SQLITE_DONE )
      pos:
        line_end: 72134
        line_start: 72134
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->eState==CURSOR_VALID )
      pos:
        line_end: 72094
        line_start: 72094
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( bPreserve && (pCur->iPage==iCellDepth || CORRUPT_DB) )
      pos:
        line_end: 72222
        line_start: 72222
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pPage->nCell>0 || CORRUPT_DB) && iCellIdx<=pPage->nCell )
      pos:
        line_end: 72224
        line_start: 72224
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pBt->inTransaction==TRANS_WRITE )
      pos:
        line_end: 72084
        line_start: 72084
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( MX_CELL_SIZE(pBt) >= nCell )
      pos:
        line_end: 72183
        line_start: 72183
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage==pCur->pPage || CORRUPT_DB )
      pos:
        line_end: 72223
        line_start: 72223
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pBt->btsFlags & BTS_READ_ONLY)==0 )
      pos:
        line_end: 72085
        line_start: 72085
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !hasReadConflicts(p, pCur->pgnoRoot) )
      pos:
        line_end: 72088
        line_start: 72088
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (flags & ~(BTREE_SAVEPOSITION | BTREE_AUXDELETE))==0 )
      pos:
        line_end: 72089
        line_start: 72089
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTmp!=0 )
      pos:
        line_end: 72185
        line_start: 72185
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 72243
      start: 72072
    functionDepth: 20
    functionLinenumber: 72072
    functionLinenumberEnd: 72243
    functionName: sqlite3BtreeDelete
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - MX_CELL_SIZE
    - cellSizePtr
    - dropCell
    - invalidateIncrblobCursors
    - hasSharedCacheTableLock
    - releasePageNotNull
    - btreeComputeFreeSpace
    - assert
    - sqlite3PagerWrite
    - balance
    - releasePage
    - hasReadConflicts
    - cursorOwnsBtShared
    - clearCell
    - moveToRoot
    - saveAllCursors
    - findCell
    - sqlite3BtreePrevious
    - btreeReleaseAllCursorPages
    - MemPage*::xCellSize
    - saveCursorKey
    - insertCell
    - btreeRestoreCursorPosition
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeDelete(BtCursor *pCur, u8 flags)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:72263,1
    - Dst: sqlite3BtreeHoldsMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:72263,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:72264,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:72265,1
    - Dst: allocateBtreePage
      Src: /src/nss/lib/sqlite/sqlite3.c:72268,1
    - Dst: invalidateAllOverflowCache
      Src: /src/nss/lib/sqlite/sqlite3.c:72282,1
    - Dst: sqlite3BtreeGetMeta
      Src: /src/nss/lib/sqlite/sqlite3.c:72288,1
    - Dst: PTRMAP_PAGENO
      Src: /src/nss/lib/sqlite/sqlite3.c:72294,1
    - Dst: PENDING_BYTE_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:72295,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:72298,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:72299,1
    - Dst: allocateBtreePage
      Src: /src/nss/lib/sqlite/sqlite3.c:72305,1
    - Dst: saveAllCursors
      Src: /src/nss/lib/sqlite/sqlite3.c:72323,1
    - Dst: releasePage
      Src: /src/nss/lib/sqlite/sqlite3.c:72324,1
    - Dst: btreeGetPage
      Src: /src/nss/lib/sqlite/sqlite3.c:72330,1
    - Dst: ptrmapGet
      Src: /src/nss/lib/sqlite/sqlite3.c:72334,1
    - Dst: releasePage
      Src: /src/nss/lib/sqlite/sqlite3.c:72339,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:72342,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:72343,1
    - Dst: relocatePage
      Src: /src/nss/lib/sqlite/sqlite3.c:72344,1
    - Dst: releasePage
      Src: /src/nss/lib/sqlite/sqlite3.c:72345,1
    - Dst: btreeGetPage
      Src: /src/nss/lib/sqlite/sqlite3.c:72351,1
    - Dst: sqlite3PagerWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:72355,1
    - Dst: releasePage
      Src: /src/nss/lib/sqlite/sqlite3.c:72357,1
    - Dst: ptrmapPut
      Src: /src/nss/lib/sqlite/sqlite3.c:72365,1
    - Dst: releasePage
      Src: /src/nss/lib/sqlite/sqlite3.c:72367,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:72375,1
    - Dst: sqlite3PagerIswriteable
      Src: /src/nss/lib/sqlite/sqlite3.c:72375,1
    - Dst: sqlite3BtreeUpdateMeta
      Src: /src/nss/lib/sqlite/sqlite3.c:72376,1
    - Dst: NEVER
      Src: /src/nss/lib/sqlite/sqlite3.c:72377,1
    - Dst: releasePage
      Src: /src/nss/lib/sqlite/sqlite3.c:72378,1
    - Dst: allocateBtreePage
      Src: /src/nss/lib/sqlite/sqlite3.c:72383,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:72387,1
    - Dst: sqlite3PagerIswriteable
      Src: /src/nss/lib/sqlite/sqlite3.c:72387,1
    - Dst: zeroPage
      Src: /src/nss/lib/sqlite/sqlite3.c:72393,1
    - Dst: sqlite3PagerUnref
      Src: /src/nss/lib/sqlite/sqlite3.c:72394,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:72395,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 85
    argCount: 3
    argNames:
    - p
    - piTable
    - createTabFlags
    argTypes:
    - Btree*
    - int*
    - int
    assertStmts:
    - condition: ( eType!=PTRMAP_ROOTPAGE )
      pos:
        line_end: 72341
        line_start: 72341
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3PagerIswriteable(pRoot->pDbPage) )
      pos:
        line_end: 72386
        line_start: 72386
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pBt->btsFlags & BTS_READ_ONLY)==0 )
      pos:
        line_end: 72264
        line_start: 72264
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pBt->inTransaction==TRANS_WRITE )
      pos:
        line_end: 72263
        line_start: 72263
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3BtreeHoldsMutex(p) )
      pos:
        line_end: 72262
        line_start: 72262
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3PagerIswriteable(pBt->pPage1->pDbPage) )
      pos:
        line_end: 72374
        line_start: 72374
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pBt->openFlags & BTREE_SINGLE)==0 || pgnoRoot==2 )
      pos:
        line_end: 72394
        line_start: 72394
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pgnoRoot>=3 || CORRUPT_DB )
      pos:
        line_end: 72297
        line_start: 72297
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( eType!=PTRMAP_FREEPAGE )
      pos:
        line_end: 72342
        line_start: 72342
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 72398
      start: 72256
    functionDepth: 18
    functionLinenumber: 72256
    functionLinenumberEnd: 72398
    functionName: btreeCreateTable
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ptrmapPut
    - relocatePage
    - allocateBtreePage
    - sqlite3BtreeHoldsMutex
    - sqlite3PagerIswriteable
    - zeroPage
    - testcase
    - PTRMAP_PAGENO
    - sqlite3PagerUnref
    - assert
    - PENDING_BYTE_PAGE
    - releasePage
    - sqlite3PagerWrite
    - sqlite3BtreeUpdateMeta
    - saveAllCursors
    - invalidateAllOverflowCache
    - NEVER
    - sqlite3BtreeGetMeta
    - ptrmapGet
    - btreeGetPage
    linkageType: ''
    returnType: int
    signature: int btreeCreateTable(Btree *p, int *piTable, int createTabFlags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeEnter
      Src: /src/nss/lib/sqlite/sqlite3.c:72401,1
    - Dst: btreeCreateTable
      Src: /src/nss/lib/sqlite/sqlite3.c:72402,1
    - Dst: sqlite3BtreeLeave
      Src: /src/nss/lib/sqlite/sqlite3.c:72403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - p
    - piTable
    - flags
    argTypes:
    - Btree*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72405
      start: 72399
    functionDepth: 19
    functionLinenumber: 72399
    functionLinenumberEnd: 72405
    functionName: sqlite3BtreeCreateTable
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeEnter
    - sqlite3BtreeLeave
    - btreeCreateTable
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeCreateTable(Btree *p, int *piTable, int
      flags)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:72424,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:72424,1
    - Dst: btreePagecount
      Src: /src/nss/lib/sqlite/sqlite3.c:72425,1
    - Dst: getAndInitPage
      Src: /src/nss/lib/sqlite/sqlite3.c:72428,1
    - Dst: findCell
      Src: /src/nss/lib/sqlite/sqlite3.c:72437,1
    - Dst: clearDatabasePage
      Src: /src/nss/lib/sqlite/sqlite3.c:72439,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:72439,1
    - Dst: clearCell
      Src: /src/nss/lib/sqlite/sqlite3.c:72442,1
    - Dst: clearDatabasePage
      Src: /src/nss/lib/sqlite/sqlite3.c:72446,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:72446,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:72449,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:72450,1
    - Dst: freePage
      Src: /src/nss/lib/sqlite/sqlite3.c:72454,1
    - Dst: sqlite3PagerWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:72455,1
    - Dst: zeroPage
      Src: /src/nss/lib/sqlite/sqlite3.c:72456,1
    - Dst: releasePage
      Src: /src/nss/lib/sqlite/sqlite3.c:72461,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 50
    argCount: 4
    argNames:
    - pBt
    - pgno
    - freePageFlag
    - pnChange
    argTypes:
    - BtShared*
    - Pgno
    - int
    - int*
    assertStmts:
    - condition: ( sqlite3_mutex_held(pBt->mutex) )
      pos:
        line_end: 72423
        line_start: 72423
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->intKey || CORRUPT_DB )
      pos:
        line_end: 72448
        line_start: 72448
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 72463
      start: 72411
    functionDepth: 17
    functionLinenumber: 72411
    functionLinenumberEnd: 72463
    functionName: clearDatabasePage
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - btreePagecount
    - findCell
    - clearDatabasePage
    - get4byte
    - assert
    - getAndInitPage
    - sqlite3PagerWrite
    - releasePage
    - freePage
    - sqlite3_mutex_held
    - zeroPage
    - testcase
    - clearCell
    linkageType: ''
    returnType: int
    signature: "int clearDatabasePage(\n  BtShared *pBt,           /* The BTree that
      contains the table */\n  Pgno pgno,               /* Page number to clear */\n
      \ int freePageFlag,        /* Deallocate page if true */\n  int *pnChange            /*
      Add number of Cells freed to this counter */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeEnter
      Src: /src/nss/lib/sqlite/sqlite3.c:72481,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:72482,1
    - Dst: saveAllCursors
      Src: /src/nss/lib/sqlite/sqlite3.c:72484,1
    - Dst: invalidateIncrblobCursors
      Src: /src/nss/lib/sqlite/sqlite3.c:72490,1
    - Dst: clearDatabasePage
      Src: /src/nss/lib/sqlite/sqlite3.c:72491,1
    - Dst: sqlite3BtreeLeave
      Src: /src/nss/lib/sqlite/sqlite3.c:72493,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - p
    - iTable
    - pnChange
    argTypes:
    - Btree*
    - int
    - int*
    assertStmts:
    - condition: ( p->inTrans==TRANS_WRITE )
      pos:
        line_end: 72481
        line_start: 72481
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 72495
      start: 72478
    functionDepth: 18
    functionLinenumber: 72478
    functionLinenumberEnd: 72495
    functionName: sqlite3BtreeClearTable
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - invalidateIncrblobCursors
    - saveAllCursors
    - clearDatabasePage
    - sqlite3BtreeLeave
    - assert
    - sqlite3BtreeEnter
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeClearTable(Btree *p, int iTable, int *pnChange)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeClearTable
      Src: /src/nss/lib/sqlite/sqlite3.c:72503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pCur
    argTypes:
    - BtCursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72504
      start: 72502
    functionDepth: 19
    functionLinenumber: 72502
    functionLinenumberEnd: 72504
    functionName: sqlite3BtreeClearTableOfCursor
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeClearTable
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeClearTableOfCursor(BtCursor *pCur)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:72531,1
    - Dst: sqlite3BtreeHoldsMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:72531,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:72532,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:72533,1
    - Dst: btreePagecount
      Src: /src/nss/lib/sqlite/sqlite3.c:72534,1
    - Dst: btreeGetPage
      Src: /src/nss/lib/sqlite/sqlite3.c:72538,1
    - Dst: sqlite3BtreeClearTable
      Src: /src/nss/lib/sqlite/sqlite3.c:72540,1
    - Dst: releasePage
      Src: /src/nss/lib/sqlite/sqlite3.c:72542,1
    - Dst: freePage
      Src: /src/nss/lib/sqlite/sqlite3.c:72549,1
    - Dst: releasePage
      Src: /src/nss/lib/sqlite/sqlite3.c:72550,1
    - Dst: sqlite3BtreeGetMeta
      Src: /src/nss/lib/sqlite/sqlite3.c:72554,1
    - Dst: freePage
      Src: /src/nss/lib/sqlite/sqlite3.c:72560,1
    - Dst: releasePage
      Src: /src/nss/lib/sqlite/sqlite3.c:72561,1
    - Dst: releasePage
      Src: /src/nss/lib/sqlite/sqlite3.c:72571,1
    - Dst: btreeGetPage
      Src: /src/nss/lib/sqlite/sqlite3.c:72572,1
    - Dst: relocatePage
      Src: /src/nss/lib/sqlite/sqlite3.c:72576,1
    - Dst: releasePage
      Src: /src/nss/lib/sqlite/sqlite3.c:72577,1
    - Dst: btreeGetPage
      Src: /src/nss/lib/sqlite/sqlite3.c:72582,1
    - Dst: freePage
      Src: /src/nss/lib/sqlite/sqlite3.c:72583,1
    - Dst: releasePage
      Src: /src/nss/lib/sqlite/sqlite3.c:72584,1
    - Dst: PENDING_BYTE_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:72597,1
    - Dst: PTRMAP_ISPAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:72598,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:72601,1
    - Dst: PENDING_BYTE_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:72601,1
    - Dst: sqlite3BtreeUpdateMeta
      Src: /src/nss/lib/sqlite/sqlite3.c:72603,1
    - Dst: freePage
      Src: /src/nss/lib/sqlite/sqlite3.c:72605,1
    - Dst: releasePage
      Src: /src/nss/lib/sqlite/sqlite3.c:72606,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 57
    argCount: 3
    argNames:
    - p
    - iTable
    - piMoved
    argTypes:
    - Btree*
    - Pgno
    - int*
    assertStmts:
    - condition: ( maxRootPgno!=PENDING_BYTE_PAGE(pBt) )
      pos:
        line_end: 72600
        line_start: 72600
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3BtreeHoldsMutex(p) )
      pos:
        line_end: 72530
        line_start: 72530
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->inTrans==TRANS_WRITE )
      pos:
        line_end: 72531
        line_start: 72531
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iTable>=2 )
      pos:
        line_end: 72532
        line_start: 72532
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 72610
      start: 72526
    functionDepth: 19
    functionLinenumber: 72526
    functionLinenumberEnd: 72610
    functionName: btreeDropTable
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeUpdateMeta
    - btreePagecount
    - relocatePage
    - sqlite3BtreeClearTable
    - sqlite3BtreeHoldsMutex
    - assert
    - sqlite3BtreeGetMeta
    - releasePage
    - PENDING_BYTE_PAGE
    - freePage
    - btreeGetPage
    - PTRMAP_ISPAGE
    linkageType: ''
    returnType: int
    signature: int btreeDropTable(Btree *p, Pgno iTable, int *piMoved)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeEnter
      Src: /src/nss/lib/sqlite/sqlite3.c:72613,1
    - Dst: btreeDropTable
      Src: /src/nss/lib/sqlite/sqlite3.c:72614,1
    - Dst: sqlite3BtreeLeave
      Src: /src/nss/lib/sqlite/sqlite3.c:72615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - p
    - iTable
    - piMoved
    argTypes:
    - Btree*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72617
      start: 72611
    functionDepth: 20
    functionLinenumber: 72611
    functionLinenumberEnd: 72617
    functionName: sqlite3BtreeDropTable
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - btreeDropTable
    - sqlite3BtreeEnter
    - sqlite3BtreeLeave
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeDropTable(Btree *p, int iTable, int *piMoved)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeEnter
      Src: /src/nss/lib/sqlite/sqlite3.c:72643,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:72644,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:72645,1
    - Dst: querySharedCacheTableLock
      Src: /src/nss/lib/sqlite/sqlite3.c:72645,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:72646,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:72647,1
    - Dst: sqlite3PagerDataVersion
      Src: /src/nss/lib/sqlite/sqlite3.c:72650,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:72652,1
    - Dst: sqlite3BtreeLeave
      Src: /src/nss/lib/sqlite/sqlite3.c:72663,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - p
    - idx
    - pMeta
    argTypes:
    - Btree*
    - int
    - u32*
    assertStmts:
    - condition: ( p->inTrans>TRANS_NONE )
      pos:
        line_end: 72643
        line_start: 72643
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( SQLITE_OK==querySharedCacheTableLock(p, MASTER_ROOT, READ_LOCK)
        )
      pos:
        line_end: 72644
        line_start: 72644
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pBt->pPage1 )
      pos:
        line_end: 72645
        line_start: 72645
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( idx>=0 && idx<=15 )
      pos:
        line_end: 72646
        line_start: 72646
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 72664
      start: 72640
    functionDepth: 2
    functionLinenumber: 72640
    functionLinenumberEnd: 72664
    functionName: sqlite3BtreeGetMeta
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3PagerDataVersion
    - get4byte
    - sqlite3BtreeLeave
    - querySharedCacheTableLock
    - assert
    - sqlite3BtreeEnter
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeGetMeta(Btree *p, int idx, u32 *pMeta)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:72674,1
    - Dst: sqlite3BtreeEnter
      Src: /src/nss/lib/sqlite/sqlite3.c:72675,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:72676,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:72677,1
    - Dst: sqlite3PagerWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:72679,1
    - Dst: put4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:72681,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:72684,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:72685,1
    - Dst: sqlite3BtreeLeave
      Src: /src/nss/lib/sqlite/sqlite3.c:72690,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - p
    - idx
    - iMeta
    argTypes:
    - Btree*
    - int
    - u32
    assertStmts:
    - condition: ( idx>=1 && idx<=15 )
      pos:
        line_end: 72673
        line_start: 72673
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pBt->pPage1!=0 )
      pos:
        line_end: 72676
        line_start: 72676
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->inTrans==TRANS_WRITE )
      pos:
        line_end: 72675
        line_start: 72675
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pBt->autoVacuum || iMeta==0 )
      pos:
        line_end: 72683
        line_start: 72683
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iMeta==0 || iMeta==1 )
      pos:
        line_end: 72684
        line_start: 72684
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 72692
      start: 72670
    functionDepth: 14
    functionLinenumber: 72670
    functionLinenumberEnd: 72692
    functionName: sqlite3BtreeUpdateMeta
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - put4byte
    - sqlite3BtreeLeave
    - assert
    - sqlite3BtreeEnter
    - sqlite3PagerWrite
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeUpdateMeta(Btree *p, int idx, u32 iMeta)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: moveToRoot
      Src: /src/nss/lib/sqlite/sqlite3.c:72707,1
    - Dst: moveToRoot
      Src: /src/nss/lib/sqlite/sqlite3.c:72744,1
    - Dst: moveToParent
      Src: /src/nss/lib/sqlite/sqlite3.c:72746,1
    - Dst: moveToChild
      Src: /src/nss/lib/sqlite/sqlite3.c:72758,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:72758,1
    - Dst: moveToChild
      Src: /src/nss/lib/sqlite/sqlite3.c:72760,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:72760,1
    - Dst: findCell
      Src: /src/nss/lib/sqlite/sqlite3.c:72760,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - pCur
    - pnEntry
    argTypes:
    - BtCursor*
    - i64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72766
      start: 72703
    functionDepth: 7
    functionLinenumber: 72703
    functionLinenumberEnd: 72766
    functionName: sqlite3BtreeCount
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - findCell
    - moveToChild
    - moveToParent
    - get4byte
    - moveToRoot
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeCount(BtCursor *pCur, i64 *pnEntry)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - Btree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72775
      start: 72773
    functionDepth: 0
    functionLinenumber: 72773
    functionLinenumberEnd: 72775
    functionName: sqlite3BtreePager
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3BtreePager(Btree *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/nss/lib/sqlite/sqlite3.c:72790,1
    - Dst: sqlite3_str_append
      Src: /src/nss/lib/sqlite/sqlite3.c:72792,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:72795,1
    - Dst: sqlite3_str_vappendf
      Src: /src/nss/lib/sqlite/sqlite3.c:72797,1
    - Dst: va_end
      Src: /src/nss/lib/sqlite/sqlite3.c:72798,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - pCheck
    - zFormat
    argTypes:
    - IntegrityCk*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72802
      start: 72781
    functionDepth: 9
    functionLinenumber: 72781
    functionLinenumberEnd: 72802
    functionName: checkAppendMsg
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_str_append
    - sqlite3_str_vappendf
    - va_end
    - sqlite3_str_appendf
    - va_start
    linkageType: ''
    returnType: void
    signature: "void checkAppendMsg(\n  IntegrityCk *pCheck,\n  const char *zFormat,\n
      \ ...\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:72812,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - pCheck
    - iPg
    argTypes:
    - IntegrityCk*
    - Pgno
    assertStmts:
    - condition: ( iPg<=pCheck->nPage && sizeof(pCheck->aPgRef[0])==1 )
      pos:
        line_end: 72811
        line_start: 72811
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 72814
      start: 72811
    functionDepth: 0
    functionLinenumber: 72811
    functionLinenumberEnd: 72814
    functionName: getPageReferenced
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int getPageReferenced(IntegrityCk *pCheck, Pgno iPg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:72820,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - pCheck
    - iPg
    argTypes:
    - IntegrityCk*
    - Pgno
    assertStmts:
    - condition: ( iPg<=pCheck->nPage && sizeof(pCheck->aPgRef[0])==1 )
      pos:
        line_end: 72819
        line_start: 72819
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 72822
      start: 72819
    functionDepth: 0
    functionLinenumber: 72819
    functionLinenumberEnd: 72822
    functionName: setPageReferenced
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void setPageReferenced(IntegrityCk *pCheck, Pgno iPg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: checkAppendMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:72835,1
    - Dst: getPageReferenced
      Src: /src/nss/lib/sqlite/sqlite3.c:72838,1
    - Dst: checkAppendMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:72839,1
    - Dst: setPageReferenced
      Src: /src/nss/lib/sqlite/sqlite3.c:72842,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - pCheck
    - iPage
    argTypes:
    - IntegrityCk*
    - Pgno
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72844
      start: 72833
    functionDepth: 10
    functionLinenumber: 72833
    functionLinenumberEnd: 72844
    functionName: checkRef
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - checkAppendMsg
    - getPageReferenced
    - setPageReferenced
    linkageType: ''
    returnType: int
    signature: int checkRef(IntegrityCk *pCheck, Pgno iPage)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ptrmapGet
      Src: /src/nss/lib/sqlite/sqlite3.c:72862,1
    - Dst: checkAppendMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:72865,1
    - Dst: checkAppendMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:72870,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 4
    argNames:
    - pCheck
    - iChild
    - eType
    - iParent
    argTypes:
    - IntegrityCk*
    - Pgno
    - u8
    - Pgno
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72874
      start: 72852
    functionDepth: 10
    functionLinenumber: 72852
    functionLinenumberEnd: 72874
    functionName: checkPtrmap
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - checkAppendMsg
    - ptrmapGet
    linkageType: ''
    returnType: void
    signature: "void checkPtrmap(\n  IntegrityCk *pCheck,   /* Integrity check context
      */\n  Pgno iChild,           /* Child page number */\n  u8 eType,              /*
      Expected pointer map type */\n  Pgno iParent           /* Expected pointer map
      parent page number */\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: checkRef
      Src: /src/nss/lib/sqlite/sqlite3.c:72893,1
    - Dst: sqlite3PagerGet
      Src: /src/nss/lib/sqlite/sqlite3.c:72895,1
    - Dst: checkAppendMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:72896,1
    - Dst: sqlite3PagerGetData
      Src: /src/nss/lib/sqlite/sqlite3.c:72899,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:72901,1
    - Dst: checkPtrmap
      Src: /src/nss/lib/sqlite/sqlite3.c:72904,1
    - Dst: checkAppendMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:72908,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:72913,1
    - Dst: checkPtrmap
      Src: /src/nss/lib/sqlite/sqlite3.c:72916,1
    - Dst: checkRef
      Src: /src/nss/lib/sqlite/sqlite3.c:72919,1
    - Dst: if
      Src: /src/nss/lib/sqlite/sqlite3.c:72930,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:72931,1
    - Dst: checkPtrmap
      Src: /src/nss/lib/sqlite/sqlite3.c:72932,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:72936,1
    - Dst: sqlite3PagerUnref
      Src: /src/nss/lib/sqlite/sqlite3.c:72937,1
    - Dst: checkAppendMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:72940,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 4
    argNames:
    - pCheck
    - isFreeList
    - iPage
    - N
    argTypes:
    - IntegrityCk*
    - int
    - int
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72945
      start: 72881
    functionDepth: 11
    functionLinenumber: 72881
    functionLinenumberEnd: 72945
    functionName: checkList
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PagerUnref
    - checkAppendMsg
    - sqlite3PagerGetData
    - get4byte
    - checkRef
    - sqlite3PagerGet
    - checkPtrmap
    - if
    linkageType: ''
    returnType: void
    signature: "void checkList(\n  IntegrityCk *pCheck,  /* Integrity checking context
      */\n  int isFreeList,       /* True for a freelist.  False for overflow page
      list */\n  int iPage,            /* Page number for first page in the list */\n
      \ u32 N                 /* Expected number of pages in the list */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - aHeap
    - x
    argTypes:
    - u32*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72979
      start: 72970
    functionDepth: 0
    functionLinenumber: 72970
    functionLinenumberEnd: 72979
    functionName: btreeHeapInsert
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void btreeHeapInsert(u32 *aHeap, u32 x)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - aHeap
    - pOut
    argTypes:
    - u32*
    - u32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72997
      start: 72980
    functionDepth: 0
    functionLinenumber: 72980
    functionLinenumberEnd: 72997
    functionName: btreeHeapPull
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int btreeHeapPull(u32 *aHeap, u32 *pOut)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: checkRef
      Src: /src/nss/lib/sqlite/sqlite3.c:73051,1
    - Dst: btreeGetPage
      Src: /src/nss/lib/sqlite/sqlite3.c:73054,1
    - Dst: checkAppendMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:73055,1
    - Dst: btreeInitPage
      Src: /src/nss/lib/sqlite/sqlite3.c:73064,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:73065,1
    - Dst: checkAppendMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:73066,1
    - Dst: btreeComputeFreeSpace
      Src: /src/nss/lib/sqlite/sqlite3.c:73070,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:73071,1
    - Dst: checkAppendMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:73072,1
    - Dst: get2byteNotZero
      Src: /src/nss/lib/sqlite/sqlite3.c:73080,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:73081,1
    - Dst: get2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:73085,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:73086,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:73091,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:73096,1
    - Dst: checkPtrmap
      Src: /src/nss/lib/sqlite/sqlite3.c:73100,1
    - Dst: checkTreePage
      Src: /src/nss/lib/sqlite/sqlite3.c:73103,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:73119,1
    - Dst: get2byteAligned
      Src: /src/nss/lib/sqlite/sqlite3.c:73120,1
    - Dst: checkAppendMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:73123,1
    - Dst: MemPage*::xParseCell
      Src: /src/nss/lib/sqlite/sqlite3.c:73129,1
    - Dst: checkAppendMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:73131,1
    - Dst: checkAppendMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:73139,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:73149,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:73151,1
    - Dst: checkPtrmap
      Src: /src/nss/lib/sqlite/sqlite3.c:73154,1
    - Dst: checkList
      Src: /src/nss/lib/sqlite/sqlite3.c:73157,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:73162,1
    - Dst: checkPtrmap
      Src: /src/nss/lib/sqlite/sqlite3.c:73165,1
    - Dst: checkTreePage
      Src: /src/nss/lib/sqlite/sqlite3.c:73168,1
    - Dst: checkAppendMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:73171,1
    - Dst: btreeHeapInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:73176,1
    - Dst: get2byteAligned
      Src: /src/nss/lib/sqlite/sqlite3.c:73193,1
    - Dst: MemPage*::xCellSize
      Src: /src/nss/lib/sqlite/sqlite3.c:73194,1
    - Dst: btreeHeapInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:73195,1
    - Dst: get2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:73204,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:73207,1
    - Dst: get2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:73208,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:73209,1
    - Dst: btreeHeapInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:73210,1
    - Dst: get2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:73215,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:73218,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:73219,1
    - Dst: btreeHeapPull
      Src: /src/nss/lib/sqlite/sqlite3.c:73237,1
    - Dst: checkAppendMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:73239,1
    - Dst: checkAppendMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:73254,1
    - Dst: releasePage
      Src: /src/nss/lib/sqlite/sqlite3.c:73262,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 146
    argCount: 4
    argNames:
    - pCheck
    - iPage
    - piMinKey
    - maxKey
    argTypes:
    - IntegrityCk*
    - int
    - i64*
    - i64
    assertStmts:
    - condition: ( pCellIdx==&data[cellStart + i*2] )
      pos:
        line_end: 73118
        line_start: 73118
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( j==0 || j>i+size )
      pos:
        line_end: 73217
        line_start: 73217
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (u32)j<=usableSize-4 )
      pos:
        line_end: 73218
        line_start: 73218
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( contentOffset<=usableSize )
      pos:
        line_end: 73080
        line_start: 73080
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->nCell==nCell )
      pos:
        line_end: 73085
        line_start: 73085
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (u32)i<=usableSize-4 )
      pos:
        line_end: 73206
        line_start: 73206
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc==SQLITE_CORRUPT )
      pos:
        line_end: 73070
        line_start: 73070
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (u32)(i+size)<=usableSize )
      pos:
        line_end: 73208
        line_start: 73208
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc==SQLITE_CORRUPT )
      pos:
        line_end: 73064
        line_start: 73064
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->aCellIdx==&data[cellStart] )
      pos:
        line_end: 73090
        line_start: 73090
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pc + info.nSize - 4 <= usableSize )
      pos:
        line_end: 73148
        line_start: 73148
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 73267
      start: 73014
    functionDepth: 12
    functionLinenumber: 73014
    functionLinenumberEnd: 73267
    functionName: checkTreePage
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - checkTreePage
    - checkAppendMsg
    - checkPtrmap
    - get4byte
    - btreeHeapInsert
    - MemPage*::xCellSize
    - btreeComputeFreeSpace
    - checkRef
    - assert
    - get2byteAligned
    - btreeHeapPull
    - releasePage
    - MemPage*::xParseCell
    - get2byteNotZero
    - btreeInitPage
    - checkList
    - get2byte
    - btreeGetPage
    linkageType: ''
    returnType: int
    signature: "int checkTreePage(\n  IntegrityCk *pCheck,  /* Context for the sanity
      check */\n  int iPage,            /* Page number of the page to check */\n  i64
      *piMinKey,        /* Write minimum integer primary key here */\n  i64 maxKey
      \           /* Error if integer primary key greater than this */\n)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeEnter
      Src: /src/nss/lib/sqlite/sqlite3.c:73298,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:73299,1
    - Dst: VVA_ONLY
      Src: /src/nss/lib/sqlite/sqlite3.c:73300,1
    - Dst: sqlite3PagerRefcount
      Src: /src/nss/lib/sqlite/sqlite3.c:73300,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:73301,1
    - Dst: btreePagecount
      Src: /src/nss/lib/sqlite/sqlite3.c:73304,1
    - Dst: sqlite3StrAccumInit
      Src: /src/nss/lib/sqlite/sqlite3.c:73313,1
    - Dst: sqlite3MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:73319,1
    - Dst: sqlite3PageMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:73324,1
    - Dst: PENDING_BYTE_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:73330,1
    - Dst: setPageReferenced
      Src: /src/nss/lib/sqlite/sqlite3.c:73331,1
    - Dst: checkList
      Src: /src/nss/lib/sqlite/sqlite3.c:73336,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:73336,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:73337,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:73347,1
    - Dst: checkAppendMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:73349,1
    - Dst: get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:73354,1
    - Dst: checkAppendMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:73355,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:73360,1
    - Dst: checkPtrmap
      Src: /src/nss/lib/sqlite/sqlite3.c:73367,1
    - Dst: checkTreePage
      Src: /src/nss/lib/sqlite/sqlite3.c:73370,1
    - Dst: getPageReferenced
      Src: /src/nss/lib/sqlite/sqlite3.c:73378,1
    - Dst: checkAppendMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:73379,1
    - Dst: getPageReferenced
      Src: /src/nss/lib/sqlite/sqlite3.c:73385,1
    - Dst: PTRMAP_PAGENO
      Src: /src/nss/lib/sqlite/sqlite3.c:73386,1
    - Dst: checkAppendMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:73387,1
    - Dst: getPageReferenced
      Src: /src/nss/lib/sqlite/sqlite3.c:73389,1
    - Dst: PTRMAP_PAGENO
      Src: /src/nss/lib/sqlite/sqlite3.c:73390,1
    - Dst: checkAppendMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:73391,1
    - Dst: sqlite3PageFree
      Src: /src/nss/lib/sqlite/sqlite3.c:73399,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:73400,1
    - Dst: sqlite3_str_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:73402,1
    - Dst: sqlite3_str_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:73406,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:73408,1
    - Dst: sqlite3PagerRefcount
      Src: /src/nss/lib/sqlite/sqlite3.c:73408,1
    - Dst: sqlite3BtreeLeave
      Src: /src/nss/lib/sqlite/sqlite3.c:73409,1
    - Dst: sqlite3StrAccumFinish
      Src: /src/nss/lib/sqlite/sqlite3.c:73410,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 89
    argCount: 5
    argNames:
    - p
    - aRoot
    - nRoot
    - mxErr
    - pnErr
    argTypes:
    - Btree*
    - int*
    - int
    - int
    - int*
    assertStmts:
    - condition: ( nRef>=0 )
      pos:
        line_end: 73300
        line_start: 73300
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->inTrans>TRANS_NONE && pBt->inTransaction>TRANS_NONE )
      pos:
        line_end: 73298
        line_start: 73298
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nRef==sqlite3PagerRefcount(pBt->pPager) )
      pos:
        line_end: 73407
        line_start: 73407
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 73411
      start: 73284
    functionDepth: 13
    functionLinenumber: 73284
    functionLinenumberEnd: 73411
    functionName: sqlite3BtreeIntegrityCheck
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - getPageReferenced
    - get4byte
    - sqlite3BtreeLeave
    - sqlite3PageFree
    - sqlite3MallocZero
    - testcase
    - PTRMAP_PAGENO
    - sqlite3StrAccumFinish
    - sqlite3_str_reset
    - assert
    - sqlite3BtreeEnter
    - sqlite3PagerRefcount
    - PENDING_BYTE_PAGE
    - checkList
    - btreePagecount
    - checkAppendMsg
    - sqlite3StrAccumInit
    - VVA_ONLY
    - checkTreePage
    - setPageReferenced
    - sqlite3PageMalloc
    - checkPtrmap
    - sqlite3_free
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3BtreeIntegrityCheck(\n  Btree *p,     /* The
      btree to be checked */\n  int *aRoot,   /* An array of root pages numbers for
      individual trees */\n  int nRoot,    /* Number of entries in aRoot[] */\n  int
      mxErr,    /* Stop reporting errors after this many */\n  int *pnErr    /* Write
      number of errors seen to this variable */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:73422,1
    - Dst: sqlite3PagerFilename
      Src: /src/nss/lib/sqlite/sqlite3.c:73423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - Btree*
    assertStmts:
    - condition: ( p->pBt->pPager!=0 )
      pos:
        line_end: 73421
        line_start: 73421
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 73424
      start: 73421
    functionDepth: 1
    functionLinenumber: 73421
    functionLinenumberEnd: 73424
    functionName: sqlite3BtreeGetFilename
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3PagerFilename
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3BtreeGetFilename(Btree *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:73435,1
    - Dst: sqlite3PagerJournalname
      Src: /src/nss/lib/sqlite/sqlite3.c:73436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - Btree*
    assertStmts:
    - condition: ( p->pBt->pPager!=0 )
      pos:
        line_end: 73434
        line_start: 73434
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 73437
      start: 73434
    functionDepth: 1
    functionLinenumber: 73434
    functionLinenumberEnd: 73437
    functionName: sqlite3BtreeGetJournalname
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3PagerJournalname
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3BtreeGetJournalname(Btree *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:73443,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:73443,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - Btree*
    assertStmts:
    - condition: ( p==0 || sqlite3_mutex_held(p->db->mutex) )
      pos:
        line_end: 73442
        line_start: 73442
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 73445
      start: 73442
    functionDepth: 1
    functionLinenumber: 73442
    functionLinenumberEnd: 73445
    functionName: sqlite3BtreeIsInTrans
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_mutex_held
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeIsInTrans(Btree *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeEnter
      Src: /src/nss/lib/sqlite/sqlite3.c:73460,1
    - Dst: sqlite3PagerCheckpoint
      Src: /src/nss/lib/sqlite/sqlite3.c:73464,1
    - Dst: sqlite3BtreeLeave
      Src: /src/nss/lib/sqlite/sqlite3.c:73466,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - p
    - eMode
    - pnLog
    - pnCkpt
    argTypes:
    - Btree*
    - int
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73469
      start: 73456
    functionDepth: 4
    functionLinenumber: 73456
    functionLinenumberEnd: 73469
    functionName: sqlite3BtreeCheckpoint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeEnter
    - sqlite3PagerCheckpoint
    - sqlite3BtreeLeave
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeCheckpoint(Btree *p, int eMode, int *pnLog,
      int *pnCkpt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:73476,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:73477,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:73477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - Btree*
    assertStmts:
    - condition: ( p )
      pos:
        line_end: 73475
        line_start: 73475
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3_mutex_held(p->db->mutex) )
      pos:
        line_end: 73476
        line_start: 73476
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 73479
      start: 73475
    functionDepth: 1
    functionLinenumber: 73475
    functionLinenumberEnd: 73479
    functionName: sqlite3BtreeIsInReadTrans
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_mutex_held
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeIsInReadTrans(Btree *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:73482,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:73483,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:73483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - Btree*
    assertStmts:
    - condition: ( p )
      pos:
        line_end: 73481
        line_start: 73481
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3_mutex_held(p->db->mutex) )
      pos:
        line_end: 73482
        line_start: 73482
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 73485
      start: 73481
    functionDepth: 1
    functionLinenumber: 73481
    functionLinenumberEnd: 73485
    functionName: sqlite3BtreeIsInBackup
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_mutex_held
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeIsInBackup(Btree *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeEnter
      Src: /src/nss/lib/sqlite/sqlite3.c:73509,1
    - Dst: sqlite3DbMallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:73511,1
    - Dst: sqlite3BtreeLeave
      Src: /src/nss/lib/sqlite/sqlite3.c:73514,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - p
    - nBytes
    argTypes:
    - Btree*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73516
      start: 73507
    functionDepth: 2
    functionLinenumber: 73507
    functionLinenumberEnd: 73516
    functionName: sqlite3BtreeSchema
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3BtreeEnter
    - sqlite3BtreeLeave
    - sqlite3DbMallocZero
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3BtreeSchema(Btree *p, int nBytes, void(*xFree)(void
      *))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:73525,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:73525,1
    - Dst: sqlite3BtreeEnter
      Src: /src/nss/lib/sqlite/sqlite3.c:73526,1
    - Dst: querySharedCacheTableLock
      Src: /src/nss/lib/sqlite/sqlite3.c:73527,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:73528,1
    - Dst: sqlite3BtreeLeave
      Src: /src/nss/lib/sqlite/sqlite3.c:73529,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - Btree*
    assertStmts:
    - condition: ( sqlite3_mutex_held(p->db->mutex) )
      pos:
        line_end: 73524
        line_start: 73524
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc==SQLITE_OK || rc==SQLITE_LOCKED_SHAREDCACHE )
      pos:
        line_end: 73527
        line_start: 73527
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 73531
      start: 73523
    functionDepth: 2
    functionLinenumber: 73523
    functionLinenumberEnd: 73531
    functionName: sqlite3BtreeSchemaLocked
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeLeave
    - querySharedCacheTableLock
    - assert
    - sqlite3BtreeEnter
    - sqlite3_mutex_held
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeSchemaLocked(Btree *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:73542,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:73545,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:73546,1
    - Dst: sqlite3BtreeEnter
      Src: /src/nss/lib/sqlite/sqlite3.c:73548,1
    - Dst: querySharedCacheTableLock
      Src: /src/nss/lib/sqlite/sqlite3.c:73549,1
    - Dst: setSharedCacheTableLock
      Src: /src/nss/lib/sqlite/sqlite3.c:73551,1
    - Dst: sqlite3BtreeLeave
      Src: /src/nss/lib/sqlite/sqlite3.c:73553,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - p
    - iTab
    - isWriteLock
    argTypes:
    - Btree*
    - int
    - u8
    assertStmts:
    - condition: ( p->inTrans!=TRANS_NONE )
      pos:
        line_end: 73541
        line_start: 73541
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( isWriteLock==0 || isWriteLock==1 )
      pos:
        line_end: 73545
        line_start: 73545
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( READ_LOCK+1==WRITE_LOCK )
      pos:
        line_end: 73544
        line_start: 73544
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 73556
      start: 73540
    functionDepth: 2
    functionLinenumber: 73540
    functionLinenumberEnd: 73556
    functionName: sqlite3BtreeLockTable
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeLeave
    - querySharedCacheTableLock
    - assert
    - sqlite3BtreeEnter
    - setSharedCacheTableLock
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeLockTable(Btree *p, int iTab, u8 isWriteLock)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:73572,1
    - Dst: cursorOwnsBtShared
      Src: /src/nss/lib/sqlite/sqlite3.c:73572,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:73573,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:73573,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:73574,1
    - Dst: restoreCursorPosition
      Src: /src/nss/lib/sqlite/sqlite3.c:73576,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:73580,1
    - Dst: VVA_ONLY
      Src: /src/nss/lib/sqlite/sqlite3.c:73593,1
    - Dst: saveAllCursors
      Src: /src/nss/lib/sqlite/sqlite3.c:73593,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:73594,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:73606,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:73608,1
    - Dst: hasSharedCacheTableLock
      Src: /src/nss/lib/sqlite/sqlite3.c:73608,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:73609,1
    - Dst: hasReadConflicts
      Src: /src/nss/lib/sqlite/sqlite3.c:73609,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:73610,1
    - Dst: accessPayload
      Src: /src/nss/lib/sqlite/sqlite3.c:73612,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - pCsr
    - offset
    - amt
    - z
    argTypes:
    - BtCursor*
    - u32
    - u32
    - void*
    assertStmts:
    - condition: ( cursorOwnsBtShared(pCsr) )
      pos:
        line_end: 73571
        line_start: 73571
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3_mutex_held(pCsr->pBtree->db->mutex) )
      pos:
        line_end: 73572
        line_start: 73572
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCsr->curFlags & BTCF_Incrblob )
      pos:
        line_end: 73573
        line_start: 73573
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCsr->eState!=CURSOR_REQUIRESEEK )
      pos:
        line_end: 73579
        line_start: 73579
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc==SQLITE_OK )
      pos:
        line_end: 73593
        line_start: 73593
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCsr->pPage->intKey )
      pos:
        line_end: 73609
        line_start: 73609
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !hasReadConflicts(pCsr->pBtree, pCsr->pgnoRoot) )
      pos:
        line_end: 73608
        line_start: 73608
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( hasSharedCacheTableLock(pCsr->pBtree, pCsr->pgnoRoot, 0, 2) )
      pos:
        line_end: 73607
        line_start: 73607
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( (pCsr->pBt->btsFlags & BTS_READ_ONLY)==0\n              && pCsr->pBt->inTransaction==TRANS_WRITE
        )"
      pos:
        line_end: 73606
        line_start: 73605
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 73613
      start: 73570
    functionDepth: 16
    functionLinenumber: 73570
    functionLinenumberEnd: 73613
    functionName: sqlite3BtreePutData
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - saveAllCursors
    - accessPayload
    - hasSharedCacheTableLock
    - restoreCursorPosition
    - VVA_ONLY
    - assert
    - hasReadConflicts
    - cursorOwnsBtShared
    - sqlite3_mutex_held
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreePutData(BtCursor *pCsr, u32 offset, u32
      amt, void *z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pCur
    argTypes:
    - BtCursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73621
      start: 73618
    functionDepth: 0
    functionLinenumber: 73618
    functionLinenumberEnd: 73621
    functionName: sqlite3BtreeIncrblobCursor
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeIncrblobCursor(BtCursor *pCur)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:73633,1
    - Dst: sqlite3BtreeBeginTrans
      Src: /src/nss/lib/sqlite/sqlite3.c:73641,1
    - Dst: sqlite3BtreeBeginTrans
      Src: /src/nss/lib/sqlite/sqlite3.c:73645,1
    - Dst: sqlite3PagerWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:73647,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - pBtree
    - iVersion
    argTypes:
    - Btree*
    - int
    assertStmts:
    - condition: ( iVersion==1 || iVersion==2 )
      pos:
        line_end: 73632
        line_start: 73632
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 73658
      start: 73629
    functionDepth: 16
    functionLinenumber: 73629
    functionLinenumberEnd: 73658
    functionName: sqlite3BtreeSetVersion
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3PagerWrite
    - sqlite3BtreeBeginTrans
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeSetVersion(Btree *pBtree, int iVersion)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pCsr
    - mask
    argTypes:
    - BtCursor*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73666
      start: 73664
    functionDepth: 0
    functionLinenumber: 73664
    functionLinenumberEnd: 73666
    functionName: sqlite3BtreeCursorHasHint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeCursorHasHint(BtCursor *pCsr, unsigned int
      mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - Btree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73673
      start: 73671
    functionDepth: 0
    functionLinenumber: 73671
    functionLinenumberEnd: 73673
    functionName: sqlite3BtreeIsReadonly
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeIsReadonly(Btree *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ROUND8
      Src: /src/nss/lib/sqlite/sqlite3.c:73678,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73678
      start: 73678
    functionDepth: 1
    functionLinenumber: 73678
    functionLinenumberEnd: 73678
    functionName: sqlite3HeaderSizeBtree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ROUND8
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3HeaderSizeBtree(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - Btree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73686
      start: 73684
    functionDepth: 0
    functionLinenumber: 73684
    functionLinenumberEnd: 73686
    functionName: sqlite3BtreeSharable
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeSharable(Btree *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:73694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - Btree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73696
      start: 73693
    functionDepth: 1
    functionLinenumber: 73693
    functionLinenumberEnd: 73696
    functionName: sqlite3BtreeConnectionCount
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - testcase
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeConnectionCount(Btree *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3FindDbName
      Src: /src/nss/lib/sqlite/sqlite3.c:73783,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:73788,1
    - Dst: sqlite3OpenTempDatabase
      Src: /src/nss/lib/sqlite/sqlite3.c:73790,1
    - Dst: sqlite3ErrorWithMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:73791,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:73794,1
    - Dst: sqlite3ParserReset
      Src: /src/nss/lib/sqlite/sqlite3.c:73795,1
    - Dst: sqlite3ErrorWithMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:73802,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - pErrorDb
    - pDb
    - zDb
    argTypes:
    - sqlite3*
    - sqlite3*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73807
      start: 73782
    functionDepth: 10
    functionLinenumber: 73782
    functionLinenumberEnd: 73807
    functionName: findBtree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3FindDbName
    - sqlite3DbFree
    - memset
    - sqlite3OpenTempDatabase
    - sqlite3ErrorWithMsg
    - sqlite3ParserReset
    linkageType: ''
    returnType: Btree
    signature: Btree *findBtree(sqlite3 *pErrorDb, sqlite3 *pDb, const char *zDb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeSetPageSize
      Src: /src/nss/lib/sqlite/sqlite3.c:73815,1
    - Dst: sqlite3BtreeGetPageSize
      Src: /src/nss/lib/sqlite/sqlite3.c:73815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_backup*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73817
      start: 73813
    functionDepth: 9
    functionLinenumber: 73813
    functionLinenumberEnd: 73817
    functionName: setDestPgsz
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeGetPageSize
    - sqlite3BtreeSetPageSize
    linkageType: ''
    returnType: int
    signature: int setDestPgsz(sqlite3_backup *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeIsInReadTrans
      Src: /src/nss/lib/sqlite/sqlite3.c:73826,1
    - Dst: sqlite3ErrorWithMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:73827,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - Btree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73831
      start: 73825
    functionDepth: 10
    functionLinenumber: 73825
    functionLinenumberEnd: 73831
    functionName: checkReadTransaction
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ErrorWithMsg
    - sqlite3BtreeIsInReadTrans
    linkageType: ''
    returnType: int
    signature: int checkReadTransaction(sqlite3 *db, Btree *p)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/nss/lib/sqlite/sqlite3.c:73850,1
    - Dst: sqlite3SafetyCheckOk
      Src: /src/nss/lib/sqlite/sqlite3.c:73850,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:73864,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:73865,1
    - Dst: sqlite3ErrorWithMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:73868,1
    - Dst: sqlite3MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:73877,1
    - Dst: sqlite3Error
      Src: /src/nss/lib/sqlite/sqlite3.c:73879,1
    - Dst: findBtree
      Src: /src/nss/lib/sqlite/sqlite3.c:73885,1
    - Dst: findBtree
      Src: /src/nss/lib/sqlite/sqlite3.c:73886,1
    - Dst: checkReadTransaction
      Src: /src/nss/lib/sqlite/sqlite3.c:73893,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:73900,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:73908,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:73909,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73911
      start: 73841
    functionDepth: 12
    functionLinenumber: 73841
    functionLinenumberEnd: 73911
    functionName: "sqlite3_backup *sqlite3_backup_init(\n  sqlite3* pDestDb,                     /*
      Database to write to */\n  const char *zDestDb,                  /* Name of
      database within pDestDb */\n  sqlite3* pSrcDb,                      /* Database
      connection to read from */\n  const char *zSrcDb                    /* Name
      of database within pSrcDb */\n)"
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3_free
    - sqlite3SafetyCheckOk
    - sqlite3_mutex_leave
    - sqlite3Error
    - sqlite3ErrorWithMsg
    - sqlite3MallocZero
    - findBtree
    - checkReadTransaction
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_backup *sqlite3_backup_init(\n  sqlite3* pDestDb,
      \                    /* Database to write to */\n  const char *zDestDb,                  /*
      Name of database within pDestDb */\n  sqlite3* pSrcDb,                      /*
      Database connection to read from */\n  const char *zSrcDb                    /*
      Name of database within pSrcDb */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:73919,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - rc
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73920
      start: 73918
    functionDepth: 1
    functionLinenumber: 73918
    functionLinenumberEnd: 73920
    functionName: isFatalError
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ALWAYS
    linkageType: ''
    returnType: int
    signature: int isFatalError(int rc)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreePager
      Src: /src/nss/lib/sqlite/sqlite3.c:73933,1
    - Dst: sqlite3BtreeGetPageSize
      Src: /src/nss/lib/sqlite/sqlite3.c:73934,1
    - Dst: sqlite3BtreeGetPageSize
      Src: /src/nss/lib/sqlite/sqlite3.c:73935,1
    - Dst: MIN
      Src: /src/nss/lib/sqlite/sqlite3.c:73936,1
    - Dst: sqlite3BtreeGetReserveNoMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:73942,1
    - Dst: sqlite3BtreeGetOptimalReserve
      Src: /src/nss/lib/sqlite/sqlite3.c:73943,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:73948,1
    - Dst: sqlite3BtreeGetReserveNoMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:73948,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:73949,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:73950,1
    - Dst: isFatalError
      Src: /src/nss/lib/sqlite/sqlite3.c:73950,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:73951,1
    - Dst: PENDING_BYTE_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:73951,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:73952,1
    - Dst: sqlite3PagerIsMemdb
      Src: /src/nss/lib/sqlite/sqlite3.c:73957,1
    - Dst: sqlite3PagerGetCodec
      Src: /src/nss/lib/sqlite/sqlite3.c:73965,1
    - Dst: sqlite3PagerSetPagesize
      Src: /src/nss/lib/sqlite/sqlite3.c:73976,1
    - Dst: PENDING_BYTE_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:73988,1
    - Dst: sqlite3PagerGet
      Src: /src/nss/lib/sqlite/sqlite3.c:73989,1
    - Dst: sqlite3PagerWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:73990,1
    - Dst: sqlite3PagerGetData
      Src: /src/nss/lib/sqlite/sqlite3.c:73993,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:74003,1
    - Dst: sqlite3PagerGetExtra
      Src: /src/nss/lib/sqlite/sqlite3.c:74004,1
    - Dst: sqlite3Put4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:74006,1
    - Dst: sqlite3BtreeLastPage
      Src: /src/nss/lib/sqlite/sqlite3.c:74006,1
    - Dst: sqlite3PagerUnref
      Src: /src/nss/lib/sqlite/sqlite3.c:74009,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 30
    argCount: 4
    argNames:
    - p
    - iSrcPg
    - zSrcData
    - bUpdate
    argTypes:
    - sqlite3_backup*
    - Pgno
    - u8*
    - int
    assertStmts:
    - condition: ( sqlite3BtreeGetReserveNoMutex(p->pSrc)>=0 )
      pos:
        line_end: 73947
        line_start: 73947
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !isFatalError(p->rc) )
      pos:
        line_end: 73949
        line_start: 73949
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( zSrcData )
      pos:
        line_end: 73951
        line_start: 73951
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->bDestLocked )
      pos:
        line_end: 73948
        line_start: 73948
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iSrcPg!=PENDING_BYTE_PAGE(p->pSrc->pBt) )
      pos:
        line_end: 73950
        line_start: 73950
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 74013
      start: 73927
    functionDepth: 14
    functionLinenumber: 73927
    functionLinenumberEnd: 74013
    functionName: backupOnePage
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeLastPage
    - sqlite3BtreeGetOptimalReserve
    - sqlite3PagerGetData
    - sqlite3PagerIsMemdb
    - sqlite3PagerGetCodec
    - sqlite3PagerUnref
    - memcpy
    - assert
    - PENDING_BYTE_PAGE
    - sqlite3PagerWrite
    - sqlite3PagerGetExtra
    - sqlite3BtreePager
    - sqlite3BtreeGetReserveNoMutex
    - isFatalError
    - sqlite3BtreeGetPageSize
    - sqlite3PagerGet
    - sqlite3Put4byte
    - sqlite3PagerSetPagesize
    - MIN
    linkageType: ''
    returnType: int
    signature: "int backupOnePage(\n  sqlite3_backup *p,              /* Backup handle
      */\n  Pgno iSrcPg,                    /* Source database page to backup */\n
      \ const u8 *zSrcData,             /* Source database page data */\n  int bUpdate
      \                    /* True for an update, false otherwise */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3OsFileSize
      Src: /src/nss/lib/sqlite/sqlite3.c:74025,1
    - Dst: sqlite3OsTruncate
      Src: /src/nss/lib/sqlite/sqlite3.c:74027,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - pFile
    - iSize
    argTypes:
    - sqlite3_file*
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74030
      start: 74023
    functionDepth: 2
    functionLinenumber: 74023
    functionLinenumberEnd: 74030
    functionName: backupTruncateFile
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsTruncate
    - sqlite3OsFileSize
    linkageType: ''
    returnType: int
    signature: int backupTruncateFile(sqlite3_file *pFile, i64 iSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74038,1
    - Dst: sqlite3BtreeHoldsMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:74038,1
    - Dst: sqlite3PagerBackupPtr
      Src: /src/nss/lib/sqlite/sqlite3.c:74039,1
    - Dst: sqlite3BtreePager
      Src: /src/nss/lib/sqlite/sqlite3.c:74039,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_backup*
    assertStmts:
    - condition: ( sqlite3BtreeHoldsMutex(p->pSrc) )
      pos:
        line_end: 74037
        line_start: 74037
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 74043
      start: 74036
    functionDepth: 1
    functionLinenumber: 74036
    functionLinenumberEnd: 74043
    functionName: attachBackupObject
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3PagerBackupPtr
    - sqlite3BtreePager
    - sqlite3BtreeHoldsMutex
    linkageType: ''
    returnType: void
    signature: void attachBackupObject(sqlite3_backup *p)
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:74057,1
    - Dst: sqlite3BtreeEnter
      Src: /src/nss/lib/sqlite/sqlite3.c:74058,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:74060,1
    - Dst: isFatalError
      Src: /src/nss/lib/sqlite/sqlite3.c:74064,1
    - Dst: sqlite3BtreePager
      Src: /src/nss/lib/sqlite/sqlite3.c:74065,1
    - Dst: sqlite3BtreePager
      Src: /src/nss/lib/sqlite/sqlite3.c:74066,1
    - Dst: sqlite3BtreeIsInReadTrans
      Src: /src/nss/lib/sqlite/sqlite3.c:74084,1
    - Dst: sqlite3BtreeBeginTrans
      Src: /src/nss/lib/sqlite/sqlite3.c:74085,1
    - Dst: setDestPgsz
      Src: /src/nss/lib/sqlite/sqlite3.c:74095,1
    - Dst: sqlite3BtreeBeginTrans
      Src: /src/nss/lib/sqlite/sqlite3.c:74101,1
    - Dst: sqlite3BtreeGetPageSize
      Src: /src/nss/lib/sqlite/sqlite3.c:74109,1
    - Dst: sqlite3BtreeGetPageSize
      Src: /src/nss/lib/sqlite/sqlite3.c:74110,1
    - Dst: sqlite3PagerGetJournalMode
      Src: /src/nss/lib/sqlite/sqlite3.c:74111,1
    - Dst: sqlite3BtreePager
      Src: /src/nss/lib/sqlite/sqlite3.c:74111,1
    - Dst: sqlite3BtreeLastPage
      Src: /src/nss/lib/sqlite/sqlite3.c:74119,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74120,1
    - Dst: PENDING_BYTE_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:74123,1
    - Dst: sqlite3PagerGet
      Src: /src/nss/lib/sqlite/sqlite3.c:74125,1
    - Dst: backupOnePage
      Src: /src/nss/lib/sqlite/sqlite3.c:74127,1
    - Dst: sqlite3PagerGetData
      Src: /src/nss/lib/sqlite/sqlite3.c:74127,1
    - Dst: sqlite3PagerUnref
      Src: /src/nss/lib/sqlite/sqlite3.c:74128,1
    - Dst: attachBackupObject
      Src: /src/nss/lib/sqlite/sqlite3.c:74139,1
    - Dst: sqlite3BtreeNewDb
      Src: /src/nss/lib/sqlite/sqlite3.c:74150,1
    - Dst: sqlite3BtreeUpdateMeta
      Src: /src/nss/lib/sqlite/sqlite3.c:74154,1
    - Dst: sqlite3ResetAllSchemasOfConnection
      Src: /src/nss/lib/sqlite/sqlite3.c:74158,1
    - Dst: sqlite3BtreeSetVersion
      Src: /src/nss/lib/sqlite/sqlite3.c:74161,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74178,1
    - Dst: sqlite3BtreeGetPageSize
      Src: /src/nss/lib/sqlite/sqlite3.c:74178,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74179,1
    - Dst: sqlite3BtreeGetPageSize
      Src: /src/nss/lib/sqlite/sqlite3.c:74179,1
    - Dst: PENDING_BYTE_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:74183,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74189,1
    - Dst: sqlite3PagerFile
      Src: /src/nss/lib/sqlite/sqlite3.c:74202,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74208,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74209,1
    - Dst: PENDING_BYTE_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:74211,1
    - Dst: sqlite3PagerPagecount
      Src: /src/nss/lib/sqlite/sqlite3.c:74221,1
    - Dst: PENDING_BYTE_PAGE
      Src: /src/nss/lib/sqlite/sqlite3.c:74223,1
    - Dst: sqlite3PagerGet
      Src: /src/nss/lib/sqlite/sqlite3.c:74225,1
    - Dst: sqlite3PagerWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:74227,1
    - Dst: sqlite3PagerUnref
      Src: /src/nss/lib/sqlite/sqlite3.c:74228,1
    - Dst: sqlite3PagerCommitPhaseOne
      Src: /src/nss/lib/sqlite/sqlite3.c:74233,1
    - Dst: MIN
      Src: /src/nss/lib/sqlite/sqlite3.c:74237,1
    - Dst: sqlite3PagerGet
      Src: /src/nss/lib/sqlite/sqlite3.c:74245,1
    - Dst: sqlite3PagerGetData
      Src: /src/nss/lib/sqlite/sqlite3.c:74247,1
    - Dst: sqlite3OsWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:74248,1
    - Dst: sqlite3PagerUnref
      Src: /src/nss/lib/sqlite/sqlite3.c:74250,1
    - Dst: backupTruncateFile
      Src: /src/nss/lib/sqlite/sqlite3.c:74253,1
    - Dst: sqlite3PagerSync
      Src: /src/nss/lib/sqlite/sqlite3.c:74258,1
    - Dst: sqlite3PagerTruncateImage
      Src: /src/nss/lib/sqlite/sqlite3.c:74261,1
    - Dst: sqlite3PagerCommitPhaseOne
      Src: /src/nss/lib/sqlite/sqlite3.c:74262,1
    - Dst: sqlite3BtreeCommitPhaseTwo
      Src: /src/nss/lib/sqlite/sqlite3.c:74267,1
    - Dst: TESTONLY
      Src: /src/nss/lib/sqlite/sqlite3.c:74281,1
    - Dst: sqlite3BtreeCommitPhaseOne
      Src: /src/nss/lib/sqlite/sqlite3.c:74281,1
    - Dst: TESTONLY
      Src: /src/nss/lib/sqlite/sqlite3.c:74282,1
    - Dst: sqlite3BtreeCommitPhaseTwo
      Src: /src/nss/lib/sqlite/sqlite3.c:74282,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74283,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:74292,1
    - Dst: sqlite3BtreeLeave
      Src: /src/nss/lib/sqlite/sqlite3.c:74294,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:74295,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 137
    argCount: 2
    argNames:
    - p
    - nPage
    argTypes:
    - sqlite3_backup*
    - int
    assertStmts:
    - condition: ( pFile )
      pos:
        line_end: 74207
        line_start: 74207
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( nDestTruncate==0 \n              || (i64)nDestTruncate*(i64)pgszDest
        >= iSize || (\n                nDestTruncate==(int)(PENDING_BYTE_PAGE(p->pDest->pBt)-1)\n
        \            && iSize>=PENDING_BYTE && iSize<=PENDING_BYTE+pgszDest\n          ))"
      pos:
        line_end: 74212
        line_start: 74208
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc2==SQLITE_OK )
      pos:
        line_end: 74282
        line_start: 74282
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nDestTruncate>0 )
      pos:
        line_end: 74188
        line_start: 74188
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nSrcPage>=0 )
      pos:
        line_end: 74119
        line_start: 74119
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pgszSrc==sqlite3BtreeGetPageSize(p->pSrc) )
      pos:
        line_end: 74177
        line_start: 74177
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pgszDest==sqlite3BtreeGetPageSize(p->pDest) )
      pos:
        line_end: 74178
        line_start: 74178
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 74297
      start: 74048
    functionDepth: 21
    functionLinenumber: 74048
    functionLinenumberEnd: 74297
    functionName: sqlite3_backup_step
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3BtreeLastPage
    - sqlite3BtreeCommitPhaseOne
    - sqlite3PagerGetData
    - sqlite3BtreeLeave
    - sqlite3ResetAllSchemasOfConnection
    - backupTruncateFile
    - sqlite3BtreeNewDb
    - sqlite3PagerUnref
    - sqlite3_mutex_leave
    - assert
    - sqlite3BtreeEnter
    - PENDING_BYTE_PAGE
    - sqlite3PagerWrite
    - backupOnePage
    - sqlite3BtreeBeginTrans
    - sqlite3BtreeCommitPhaseTwo
    - sqlite3BtreePager
    - sqlite3BtreeUpdateMeta
    - sqlite3PagerFile
    - sqlite3OsWrite
    - TESTONLY
    - isFatalError
    - sqlite3BtreeGetPageSize
    - sqlite3BtreeSetVersion
    - attachBackupObject
    - setDestPgsz
    - sqlite3PagerCommitPhaseOne
    - sqlite3PagerPagecount
    - sqlite3PagerTruncateImage
    - sqlite3PagerSync
    - sqlite3PagerGetJournalMode
    - sqlite3PagerGet
    - sqlite3BtreeIsInReadTrans
    - MIN
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_backup_step(sqlite3_backup *p, int nPage)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:74310,1
    - Dst: sqlite3BtreeEnter
      Src: /src/nss/lib/sqlite/sqlite3.c:74311,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:74313,1
    - Dst: sqlite3PagerBackupPtr
      Src: /src/nss/lib/sqlite/sqlite3.c:74321,1
    - Dst: sqlite3BtreePager
      Src: /src/nss/lib/sqlite/sqlite3.c:74321,1
    - Dst: sqlite3BtreeRollback
      Src: /src/nss/lib/sqlite/sqlite3.c:74329,1
    - Dst: sqlite3Error
      Src: /src/nss/lib/sqlite/sqlite3.c:74334,1
    - Dst: sqlite3LeaveMutexAndCloseZombie
      Src: /src/nss/lib/sqlite/sqlite3.c:74337,1
    - Dst: sqlite3BtreeLeave
      Src: /src/nss/lib/sqlite/sqlite3.c:74339,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:74344,1
    - Dst: sqlite3LeaveMutexAndCloseZombie
      Src: /src/nss/lib/sqlite/sqlite3.c:74346,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_backup*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74348
      start: 74302
    functionDepth: 15
    functionLinenumber: 74302
    functionLinenumberEnd: 74348
    functionName: sqlite3_backup_finish
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3PagerBackupPtr
    - sqlite3_free
    - sqlite3BtreeLeave
    - sqlite3Error
    - sqlite3BtreeEnter
    - sqlite3BtreeRollback
    - sqlite3BtreePager
    - sqlite3LeaveMutexAndCloseZombie
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_backup_finish(sqlite3_backup *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_backup*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74362
      start: 74354
    functionDepth: 0
    functionLinenumber: 74354
    functionLinenumberEnd: 74362
    functionName: sqlite3_backup_remaining
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_backup_remaining(sqlite3_backup *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_backup*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74376
      start: 74368
    functionDepth: 0
    functionLinenumber: 74368
    functionLinenumberEnd: 74376
    functionName: sqlite3_backup_pagecount
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_backup_pagecount(sqlite3_backup *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74395,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74397,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:74397,1
    - Dst: isFatalError
      Src: /src/nss/lib/sqlite/sqlite3.c:74398,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74404,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:74405,1
    - Dst: backupOnePage
      Src: /src/nss/lib/sqlite/sqlite3.c:74406,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:74407,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74408,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - p
    - iPage
    - aData
    argTypes:
    - sqlite3_backup*
    - Pgno
    - u8*
    assertStmts:
    - condition: ( p!=0 )
      pos:
        line_end: 74394
        line_start: 74394
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3_mutex_held(p->pSrc->pBt->mutex) )
      pos:
        line_end: 74396
        line_start: 74396
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->pDestDb )
      pos:
        line_end: 74403
        line_start: 74403
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc!=SQLITE_BUSY && rc!=SQLITE_LOCKED )
      pos:
        line_end: 74407
        line_start: 74407
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 74414
      start: 74390
    functionDepth: 15
    functionLinenumber: 74390
    functionLinenumberEnd: 74414
    functionName: backupUpdate
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - isFatalError
    - sqlite3_mutex_leave
    - assert
    - backupOnePage
    - sqlite3_mutex_held
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: "SQLITE_NOINLINE backupUpdate(\n  sqlite3_backup *p,\n  Pgno iPage,\n
      \ const u8 *aData\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: backupUpdate
      Src: /src/nss/lib/sqlite/sqlite3.c:74416,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - pBackup
    - iPage
    - aData
    argTypes:
    - sqlite3_backup*
    - Pgno
    - u8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74417
      start: 74415
    functionDepth: 16
    functionLinenumber: 74415
    functionLinenumberEnd: 74417
    functionName: sqlite3BackupUpdate
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 3
    functionsReached:
    - backupUpdate
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BackupUpdate(sqlite3_backup *pBackup, Pgno iPage,
      const u8 *aData)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74433,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:74433,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pBackup
    argTypes:
    - sqlite3_backup*
    assertStmts:
    - condition: ( sqlite3_mutex_held(p->pSrc->pBt->mutex) )
      pos:
        line_end: 74432
        line_start: 74432
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 74436
      start: 74430
    functionDepth: 1
    functionLinenumber: 74430
    functionLinenumberEnd: 74436
    functionName: sqlite3BackupRestart
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 3
    functionsReached:
    - assert
    - sqlite3_mutex_held
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BackupRestart(sqlite3_backup *pBackup)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeEnter
      Src: /src/nss/lib/sqlite/sqlite3.c:74451,1
    - Dst: sqlite3BtreeEnter
      Src: /src/nss/lib/sqlite/sqlite3.c:74452,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74454,1
    - Dst: sqlite3BtreeIsInTrans
      Src: /src/nss/lib/sqlite/sqlite3.c:74454,1
    - Dst: sqlite3PagerFile
      Src: /src/nss/lib/sqlite/sqlite3.c:74455,1
    - Dst: sqlite3BtreePager
      Src: /src/nss/lib/sqlite/sqlite3.c:74455,1
    - Dst: sqlite3BtreeGetPageSize
      Src: /src/nss/lib/sqlite/sqlite3.c:74457,1
    - Dst: sqlite3BtreeLastPage
      Src: /src/nss/lib/sqlite/sqlite3.c:74457,1
    - Dst: sqlite3OsFileControl
      Src: /src/nss/lib/sqlite/sqlite3.c:74458,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:74468,1
    - Dst: sqlite3PagerAlignReserve
      Src: /src/nss/lib/sqlite/sqlite3.c:74475,1
    - Dst: sqlite3BtreePager
      Src: /src/nss/lib/sqlite/sqlite3.c:74475,1
    - Dst: sqlite3BtreePager
      Src: /src/nss/lib/sqlite/sqlite3.c:74475,1
    - Dst: sqlite3_backup_step
      Src: /src/nss/lib/sqlite/sqlite3.c:74484,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74485,1
    - Dst: sqlite3_backup_finish
      Src: /src/nss/lib/sqlite/sqlite3.c:74487,1
    - Dst: sqlite3PagerClearCache
      Src: /src/nss/lib/sqlite/sqlite3.c:74491,1
    - Dst: sqlite3BtreePager
      Src: /src/nss/lib/sqlite/sqlite3.c:74491,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74494,1
    - Dst: sqlite3BtreeIsInTrans
      Src: /src/nss/lib/sqlite/sqlite3.c:74494,1
    - Dst: sqlite3BtreeLeave
      Src: /src/nss/lib/sqlite/sqlite3.c:74496,1
    - Dst: sqlite3BtreeLeave
      Src: /src/nss/lib/sqlite/sqlite3.c:74497,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 2
    argNames:
    - pTo
    - pFrom
    argTypes:
    - Btree*
    - Btree*
    assertStmts:
    - condition: ( b.rc!=SQLITE_OK )
      pos:
        line_end: 74484
        line_start: 74484
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3BtreeIsInTrans(pTo)==0 )
      pos:
        line_end: 74493
        line_start: 74493
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3BtreeIsInTrans(pTo) )
      pos:
        line_end: 74453
        line_start: 74453
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 74499
      start: 74447
    functionDepth: 22
    functionLinenumber: 74447
    functionLinenumberEnd: 74499
    functionName: sqlite3BtreeCopyFile
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PagerFile
    - sqlite3BtreeLastPage
    - sqlite3OsFileControl
    - sqlite3_backup_finish
    - sqlite3PagerClearCache
    - sqlite3BtreeIsInTrans
    - sqlite3BtreeLeave
    - sqlite3_backup_step
    - sqlite3BtreeGetPageSize
    - assert
    - sqlite3BtreeEnter
    - memset
    - sqlite3PagerAlignReserve
    - sqlite3BtreePager
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BtreeCopyFile(Btree *pTo, Btree *pFrom)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74528
      start: 74527
    functionDepth: 0
    functionLinenumber: 74527
    functionLinenumberEnd: 74528
    functionName: ISPOWEROF2
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISPOWEROF2(X)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74540,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74546,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74549,1
    - Dst: ISPOWEROF2
      Src: /src/nss/lib/sqlite/sqlite3.c:74549,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74553,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74563,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74568,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74576,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74580,1
    - Dst: sqlite3DbMallocSize
      Src: /src/nss/lib/sqlite/sqlite3.c:74581,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74592,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 1
    argNames:
    - p
    argTypes:
    - Mem*
    assertStmts:
    - condition: ( (p->flags & MEM_Dyn)==0 || p->xDel!=0 )
      pos:
        line_end: 74539
        line_start: 74539
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( ISPOWEROF2(p->flags & (MEM_Int|MEM_Real|MEM_IntReal)) )
      pos:
        line_end: 74548
        line_start: 74548
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (p->flags & (MEM_Int|MEM_Real|MEM_Str|MEM_Blob|MEM_Agg))==0 )
      pos:
        line_end: 74552
        line_start: 74552
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (p->flags & MEM_Dyn)==0 || p->szMalloc==0 )
      pos:
        line_end: 74545
        line_start: 74545
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( ((p->flags&MEM_Dyn)!=0 ? 1 : 0) +\n              ((p->flags&MEM_Ephem)!=0
        ? 1 : 0) +\n              ((p->flags&MEM_Static)!=0 ? 1 : 0) <= 1 )"
      pos:
        line_end: 74564
        line_start: 74562
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( (p->flags & ~(MEM_Null|MEM_Term|MEM_Subtype|MEM_FromBind\n                           |MEM_Dyn|MEM_Ephem|MEM_Static))==0
        )"
      pos:
        line_end: 74568
        line_start: 74567
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (p->flags & MEM_Cleared)==0 )
      pos:
        line_end: 74575
        line_start: 74575
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( p->szMalloc==0\n       || p->szMalloc==sqlite3DbMallocSize(p->db,p->zMalloc)
        )"
      pos:
        line_end: 74580
        line_start: 74579
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( \n      ((p->szMalloc>0 && p->z==p->zMalloc)? 1 : 0) +\n      ((p->flags&MEM_Dyn)!=0
        ? 1 : 0) +\n      ((p->flags&MEM_Ephem)!=0 ? 1 : 0) +\n      ((p->flags&MEM_Static)!=0
        ? 1 : 0) == 1\n    )"
      pos:
        line_end: 74596
        line_start: 74591
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 74600
      start: 74536
    functionDepth: 3
    functionLinenumber: 74536
    functionLinenumberEnd: 74600
    functionName: sqlite3VdbeCheckMemInvariants
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - ISPOWEROF2
    - sqlite3DbMallocSize
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeCheckMemInvariants(Mem *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74609,1
    - Dst: sqlite3StrAccumInit
      Src: /src/nss/lib/sqlite/sqlite3.c:74610,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:74612,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:74614,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:74616,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74618,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - sz
    - zBuf
    - p
    argTypes:
    - int
    - char*
    - Mem*
    assertStmts:
    - condition: ( p->flags & (MEM_Int|MEM_Real|MEM_IntReal) )
      pos:
        line_end: 74608
        line_start: 74608
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( acc.zText==zBuf && acc.mxAlloc<=0 )
      pos:
        line_end: 74617
        line_start: 74617
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 74620
      start: 74607
    functionDepth: 9
    functionLinenumber: 74607
    functionLinenumberEnd: 74620
    functionName: vdbeMemRenderNum
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3StrAccumInit
    - sqlite3_str_appendf
    linkageType: ''
    returnType: void
    signature: void vdbeMemRenderNum(int sz, char *zBuf, Mem *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74654,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74655,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74657,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74658,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74659,1
    - Dst: vdbeMemRenderNum
      Src: /src/nss/lib/sqlite/sqlite3.c:74662,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 1
    argNames:
    - p
    argTypes:
    - Mem*
    assertStmts:
    - condition: ( p->enc==SQLITE_UTF8 || p->szMalloc >= ((p->n+1)&~1)+2 )
      pos:
        line_end: 74653
        line_start: 74653
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->z[p->n]==0 )
      pos:
        line_end: 74656
        line_start: 74656
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->enc!=SQLITE_UTF8 || p->szMalloc >= p->n+1 )
      pos:
        line_end: 74654
        line_start: 74654
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->enc==SQLITE_UTF8 || p->z[(p->n+1)&~1]==0 )
      pos:
        line_end: 74657
        line_start: 74657
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->enc==SQLITE_UTF8 || p->z[((p->n+1)&~1)+1]==0 )
      pos:
        line_end: 74658
        line_start: 74658
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 74675
      start: 74645
    functionDepth: 10
    functionLinenumber: 74645
    functionLinenumberEnd: 74675
    functionName: sqlite3VdbeMemValidStrRep
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - vdbeMemRenderNum
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeMemValidStrRep(Mem *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74695,1
    - Dst: sqlite3VdbeMemIsRowSet
      Src: /src/nss/lib/sqlite/sqlite3.c:74695,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74696,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74701,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:74701,1
    - Dst: sqlite3VdbeMemTranslate
      Src: /src/nss/lib/sqlite/sqlite3.c:74709,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74710,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74711,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74712,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 2
    argNames:
    - pMem
    - desiredEnc
    argTypes:
    - Mem*
    - int
    assertStmts:
    - condition: ( !sqlite3VdbeMemIsRowSet(pMem) )
      pos:
        line_end: 74694
        line_start: 74694
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pMem->db==0 || sqlite3_mutex_held(pMem->db->mutex) )
      pos:
        line_end: 74700
        line_start: 74700
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( desiredEnc==SQLITE_UTF8 || desiredEnc==SQLITE_UTF16LE\n           ||
        desiredEnc==SQLITE_UTF16BE )"
      pos:
        line_end: 74696
        line_start: 74695
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (rc==SQLITE_OK    || rc==SQLITE_NOMEM)
      pos:
        line_end: 74709
        line_start: 74709
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (rc==SQLITE_OK    || pMem->enc!=desiredEnc)
      pos:
        line_end: 74710
        line_start: 74710
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (rc==SQLITE_NOMEM || pMem->enc==desiredEnc)
      pos:
        line_end: 74711
        line_start: 74711
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 74715
      start: 74691
    functionDepth: 7
    functionLinenumber: 74691
    functionLinenumberEnd: 74715
    functionName: sqlite3VdbeChangeEncoding
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - sqlite3_mutex_held
    - sqlite3VdbeMemTranslate
    - sqlite3VdbeMemIsRowSet
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeChangeEncoding(Mem *pMem, int desiredEnc)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74726,1
    - Dst: sqlite3VdbeCheckMemInvariants
      Src: /src/nss/lib/sqlite/sqlite3.c:74726,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74727,1
    - Dst: sqlite3VdbeMemIsRowSet
      Src: /src/nss/lib/sqlite/sqlite3.c:74727,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:74728,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74732,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:74733,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74735,1
    - Dst: sqlite3DbMallocSize
      Src: /src/nss/lib/sqlite/sqlite3.c:74736,1
    - Dst: sqlite3DbReallocOrFree
      Src: /src/nss/lib/sqlite/sqlite3.c:74738,1
    - Dst: sqlite3DbFreeNN
      Src: /src/nss/lib/sqlite/sqlite3.c:74741,1
    - Dst: sqlite3DbMallocRaw
      Src: /src/nss/lib/sqlite/sqlite3.c:74742,1
    - Dst: sqlite3VdbeMemSetNull
      Src: /src/nss/lib/sqlite/sqlite3.c:74745,1
    - Dst: sqlite3DbMallocSize
      Src: /src/nss/lib/sqlite/sqlite3.c:74750,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74754,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:74755,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74758,1
    - Dst: Mem*::xDel
      Src: /src/nss/lib/sqlite/sqlite3.c:74759,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 3
    argNames:
    - pMem
    - n
    - bPreserve
    argTypes:
    - Mem*
    - int
    - int
    assertStmts:
    - condition: ( sqlite3VdbeCheckMemInvariants(pMem) )
      pos:
        line_end: 74725
        line_start: 74725
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !sqlite3VdbeMemIsRowSet(pMem) )
      pos:
        line_end: 74726
        line_start: 74726
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( bPreserve==0 || pMem->flags&(MEM_Blob|MEM_Str) )
      pos:
        line_end: 74731
        line_start: 74731
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( pMem->szMalloc==0\n       || pMem->szMalloc==sqlite3DbMallocSize(pMem->db,
        pMem->zMalloc) )"
      pos:
        line_end: 74735
        line_start: 74734
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pMem->xDel!=0 && pMem->xDel!=SQLITE_DYNAMIC )
      pos:
        line_end: 74757
        line_start: 74757
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pMem->z!=pMem->zMalloc )
      pos:
        line_end: 74753
        line_start: 74753
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 74765
      start: 74725
    functionDepth: 9
    functionLinenumber: 74725
    functionLinenumberEnd: 74765
    functionName: sqlite3VdbeMemGrow
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - sqlite3VdbeCheckMemInvariants
    - sqlite3VdbeMemSetNull
    - sqlite3DbReallocOrFree
    - sqlite3DbMallocSize
    - assert
    - Mem*::xDel
    - sqlite3DbFreeNN
    - testcase
    - sqlite3DbMallocRaw
    - sqlite3VdbeMemIsRowSet
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeMemGrow(Mem *pMem, int n, int bPreserve)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74781,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74782,1
    - Dst: sqlite3VdbeMemGrow
      Src: /src/nss/lib/sqlite/sqlite3.c:74784,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74786,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - pMem
    - szNew
    argTypes:
    - Mem*
    - int
    assertStmts:
    - condition: ( CORRUPT_DB || szNew>0 )
      pos:
        line_end: 74780
        line_start: 74780
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pMem->flags & MEM_Dyn)==0 )
      pos:
        line_end: 74785
        line_start: 74785
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pMem->flags & MEM_Dyn)==0 || pMem->szMalloc==0 )
      pos:
        line_end: 74781
        line_start: 74781
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 74790
      start: 74780
    functionDepth: 10
    functionLinenumber: 74780
    functionLinenumberEnd: 74790
    functionName: sqlite3VdbeMemClearAndResize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3VdbeMemGrow
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeMemClearAndResize(Mem *pMem, int szNew)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeMemGrow
      Src: /src/nss/lib/sqlite/sqlite3.c:74802,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - pMem
    argTypes:
    - Mem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74810
      start: 74801
    functionDepth: 10
    functionLinenumber: 74801
    functionLinenumberEnd: 74810
    functionName: vdbeMemAddTerminator
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeMemGrow
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: SQLITE_NOINLINE vdbeMemAddTerminator(Mem *pMem)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74819,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:74819,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74820,1
    - Dst: sqlite3VdbeMemIsRowSet
      Src: /src/nss/lib/sqlite/sqlite3.c:74820,1
    - Dst: ExpandBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:74822,1
    - Dst: vdbeMemAddTerminator
      Src: /src/nss/lib/sqlite/sqlite3.c:74824,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - pMem
    argTypes:
    - Mem*
    assertStmts:
    - condition: ( pMem->db==0 || sqlite3_mutex_held(pMem->db->mutex) )
      pos:
        line_end: 74818
        line_start: 74818
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !sqlite3VdbeMemIsRowSet(pMem) )
      pos:
        line_end: 74819
        line_start: 74819
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 74834
      start: 74818
    functionDepth: 11
    functionLinenumber: 74818
    functionLinenumberEnd: 74834
    functionName: sqlite3VdbeMemMakeWriteable
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - vdbeMemAddTerminator
    - assert
    - ExpandBlob
    - sqlite3_mutex_held
    - sqlite3VdbeMemIsRowSet
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeMemMakeWriteable(Mem *pMem)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74843,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74844,1
    - Dst: MemNullNochng
      Src: /src/nss/lib/sqlite/sqlite3.c:74844,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:74845,1
    - Dst: sqlite3_value_nochange
      Src: /src/nss/lib/sqlite/sqlite3.c:74845,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74846,1
    - Dst: sqlite3VdbeMemIsRowSet
      Src: /src/nss/lib/sqlite/sqlite3.c:74846,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74847,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:74847,1
    - Dst: sqlite3VdbeMemGrow
      Src: /src/nss/lib/sqlite/sqlite3.c:74855,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:74859,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - pMem
    argTypes:
    - Mem*
    assertStmts:
    - condition: ( pMem->flags & MEM_Zero )
      pos:
        line_end: 74842
        line_start: 74842
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pMem->flags&MEM_Blob)!=0 || MemNullNochng(pMem) )
      pos:
        line_end: 74843
        line_start: 74843
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !sqlite3VdbeMemIsRowSet(pMem) )
      pos:
        line_end: 74845
        line_start: 74845
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pMem->db==0 || sqlite3_mutex_held(pMem->db->mutex) )
      pos:
        line_end: 74846
        line_start: 74846
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 74863
      start: 74841
    functionDepth: 10
    functionLinenumber: 74841
    functionLinenumberEnd: 74863
    functionName: sqlite3VdbeMemExpandBlob
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_held
    - sqlite3_value_nochange
    - assert
    - memset
    - sqlite3VdbeMemIsRowSet
    - testcase
    - sqlite3VdbeMemGrow
    - MemNullNochng
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeMemExpandBlob(Mem *pMem)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74870,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:74870,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:74871,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:74872,1
    - Dst: vdbeMemAddTerminator
      Src: /src/nss/lib/sqlite/sqlite3.c:74876,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - pMem
    argTypes:
    - Mem*
    assertStmts:
    - condition: ( pMem->db==0 || sqlite3_mutex_held(pMem->db->mutex) )
      pos:
        line_end: 74869
        line_start: 74869
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 74878
      start: 74869
    functionDepth: 11
    functionLinenumber: 74869
    functionLinenumberEnd: 74878
    functionName: sqlite3VdbeMemNulTerminate
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - vdbeMemAddTerminator
    - sqlite3_mutex_held
    - testcase
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeMemNulTerminate(Mem *pMem)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74897,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:74897,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74898,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74899,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74900,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74901,1
    - Dst: sqlite3VdbeMemIsRowSet
      Src: /src/nss/lib/sqlite/sqlite3.c:74901,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74902,1
    - Dst: EIGHT_BYTE_ALIGNMENT
      Src: /src/nss/lib/sqlite/sqlite3.c:74902,1
    - Dst: sqlite3VdbeMemClearAndResize
      Src: /src/nss/lib/sqlite/sqlite3.c:74905,1
    - Dst: vdbeMemRenderNum
      Src: /src/nss/lib/sqlite/sqlite3.c:74910,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74911,1
    - Dst: sqlite3Strlen30NN
      Src: /src/nss/lib/sqlite/sqlite3.c:74912,1
    - Dst: sqlite3VdbeChangeEncoding
      Src: /src/nss/lib/sqlite/sqlite3.c:74916,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - pMem
    - enc
    - bForce
    argTypes:
    - Mem*
    - u8
    - u8
    assertStmts:
    - condition: ( pMem->db==0 || sqlite3_mutex_held(pMem->db->mutex) )
      pos:
        line_end: 74896
        line_start: 74896
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !(pMem->flags&(MEM_Str|MEM_Blob)) )
      pos:
        line_end: 74898
        line_start: 74898
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pMem->flags&(MEM_Int|MEM_Real|MEM_IntReal) )
      pos:
        line_end: 74899
        line_start: 74899
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !(pMem->flags&MEM_Zero) )
      pos:
        line_end: 74897
        line_start: 74897
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !sqlite3VdbeMemIsRowSet(pMem) )
      pos:
        line_end: 74900
        line_start: 74900
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( EIGHT_BYTE_ALIGNMENT(pMem) )
      pos:
        line_end: 74901
        line_start: 74901
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pMem->z!=0 )
      pos:
        line_end: 74910
        line_start: 74910
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 74918
      start: 74894
    functionDepth: 11
    functionLinenumber: 74894
    functionLinenumberEnd: 74918
    functionName: sqlite3VdbeMemStringify
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Strlen30NN
    - assert
    - sqlite3VdbeMemClearAndResize
    - vdbeMemRenderNum
    - sqlite3_mutex_held
    - EIGHT_BYTE_ALIGNMENT
    - sqlite3VdbeMemIsRowSet
    - sqlite3VdbeChangeEncoding
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeMemStringify(Mem *pMem, u8 enc, u8 bForce)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74931,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74932,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74933,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74934,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:74934,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:74935,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:74936,1
    - Dst: FuncDef*::xFinalize
      Src: /src/nss/lib/sqlite/sqlite3.c:74942,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74943,1
    - Dst: sqlite3DbFreeNN
      Src: /src/nss/lib/sqlite/sqlite3.c:74944,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:74945,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - pMem
    - pFunc
    argTypes:
    - Mem*
    - FuncDef*
    assertStmts:
    - condition: ( pFunc!=0 )
      pos:
        line_end: 74930
        line_start: 74930
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pMem->db==0 || sqlite3_mutex_held(pMem->db->mutex) )
      pos:
        line_end: 74933
        line_start: 74933
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pFunc->xFinalize!=0 )
      pos:
        line_end: 74931
        line_start: 74931
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pMem->flags & MEM_Null)!=0 || pFunc==pMem->u.pDef )
      pos:
        line_end: 74932
        line_start: 74932
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pMem->flags & MEM_Dyn)==0 )
      pos:
        line_end: 74942
        line_start: 74942
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 74947
      start: 74928
    functionDepth: 5
    functionLinenumber: 74928
    functionLinenumberEnd: 74947
    functionName: sqlite3VdbeMemFinalize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - assert
    - memset
    - sqlite3DbFreeNN
    - sqlite3_mutex_held
    - FuncDef*::xFinalize
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeMemFinalize(Mem *pMem, FuncDef *pFunc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74961,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74962,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74963,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74964,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:74964,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:74965,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:74966,1
    - Dst: sqlite3VdbeMemSetNull
      Src: /src/nss/lib/sqlite/sqlite3.c:74969,1
    - Dst: FuncDef*::xValue
      Src: /src/nss/lib/sqlite/sqlite3.c:74973,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - pAccum
    - pOut
    - pFunc
    argTypes:
    - Mem*
    - Mem*
    - FuncDef*
    assertStmts:
    - condition: ( pFunc!=0 )
      pos:
        line_end: 74960
        line_start: 74960
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pFunc->xValue!=0 )
      pos:
        line_end: 74961
        line_start: 74961
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pAccum->db==0 || sqlite3_mutex_held(pAccum->db->mutex) )
      pos:
        line_end: 74963
        line_start: 74963
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pAccum->flags & MEM_Null)!=0 || pFunc==pAccum->u.pDef )
      pos:
        line_end: 74962
        line_start: 74962
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 74975
      start: 74958
    functionDepth: 1
    functionLinenumber: 74958
    functionLinenumberEnd: 74975
    functionName: sqlite3VdbeMemAggValue
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - FuncDef*::xValue
    - sqlite3VdbeMemSetNull
    - assert
    - memset
    - sqlite3_mutex_held
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeMemAggValue(Mem *pAccum, Mem *pOut, FuncDef
      *pFunc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74988,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:74988,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74989,1
    - Dst: VdbeMemDynamic
      Src: /src/nss/lib/sqlite/sqlite3.c:74989,1
    - Dst: sqlite3VdbeMemFinalize
      Src: /src/nss/lib/sqlite/sqlite3.c:74991,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74992,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:74993,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:74996,1
    - Dst: Mem*::xDel
      Src: /src/nss/lib/sqlite/sqlite3.c:74997,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - p
    argTypes:
    - Mem*
    assertStmts:
    - condition: ( p->db==0 || sqlite3_mutex_held(p->db->mutex) )
      pos:
        line_end: 74987
        line_start: 74987
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( VdbeMemDynamic(p) )
      pos:
        line_end: 74988
        line_start: 74988
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (p->flags & MEM_Agg)==0 )
      pos:
        line_end: 74991
        line_start: 74991
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->xDel!=SQLITE_DYNAMIC && p->xDel!=0 )
      pos:
        line_end: 74995
        line_start: 74995
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 75000
      start: 74987
    functionDepth: 6
    functionLinenumber: 74987
    functionLinenumberEnd: 75000
    functionName: vdbeMemClearExternAndSetNull
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeMemFinalize
    - assert
    - Mem*::xDel
    - VdbeMemDynamic
    - sqlite3_mutex_held
    - testcase
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: SQLITE_NOINLINE vdbeMemClearExternAndSetNull(Mem *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VdbeMemDynamic
      Src: /src/nss/lib/sqlite/sqlite3.c:75011,1
    - Dst: vdbeMemClearExternAndSetNull
      Src: /src/nss/lib/sqlite/sqlite3.c:75012,1
    - Dst: sqlite3DbFreeNN
      Src: /src/nss/lib/sqlite/sqlite3.c:75015,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - Mem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75019
      start: 75010
    functionDepth: 7
    functionLinenumber: 75010
    functionLinenumberEnd: 75019
    functionName: vdbeMemClear
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - vdbeMemClearExternAndSetNull
    - sqlite3DbFreeNN
    - VdbeMemDynamic
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: SQLITE_NOINLINE vdbeMemClear(Mem *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75032,1
    - Dst: sqlite3VdbeCheckMemInvariants
      Src: /src/nss/lib/sqlite/sqlite3.c:75032,1
    - Dst: VdbeMemDynamic
      Src: /src/nss/lib/sqlite/sqlite3.c:75033,1
    - Dst: vdbeMemClear
      Src: /src/nss/lib/sqlite/sqlite3.c:75034,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - Mem*
    assertStmts:
    - condition: ( sqlite3VdbeCheckMemInvariants(p) )
      pos:
        line_end: 75031
        line_start: 75031
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 75036
      start: 75031
    functionDepth: 8
    functionLinenumber: 75031
    functionLinenumberEnd: 75036
    functionName: sqlite3VdbeMemRelease
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - assert
    - sqlite3VdbeCheckMemInvariants
    - VdbeMemDynamic
    - vdbeMemClear
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeMemRelease(Mem *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - r
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75066
      start: 75043
    functionDepth: 0
    functionLinenumber: 75043
    functionLinenumberEnd: 75066
    functionName: doubleToInt64
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: SQLITE_NOINLINE doubleToInt64(double r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Atoi64
      Src: /src/nss/lib/sqlite/sqlite3.c:75081,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pMem
    argTypes:
    - Mem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75083
      start: 75079
    functionDepth: 3
    functionLinenumber: 75079
    functionLinenumberEnd: 75083
    functionName: memIntValue
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Atoi64
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: SQLITE_NOINLINE memIntValue(Mem *pMem)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75086,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:75086,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75087,1
    - Dst: EIGHT_BYTE_ALIGNMENT
      Src: /src/nss/lib/sqlite/sqlite3.c:75087,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:75090,1
    - Dst: doubleToInt64
      Src: /src/nss/lib/sqlite/sqlite3.c:75093,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75095,1
    - Dst: memIntValue
      Src: /src/nss/lib/sqlite/sqlite3.c:75096,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - pMem
    argTypes:
    - Mem*
    assertStmts:
    - condition: ( pMem->db==0 || sqlite3_mutex_held(pMem->db->mutex) )
      pos:
        line_end: 75085
        line_start: 75085
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( EIGHT_BYTE_ALIGNMENT(pMem) )
      pos:
        line_end: 75086
        line_start: 75086
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pMem->z || pMem->n==0 )
      pos:
        line_end: 75094
        line_start: 75094
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 75100
      start: 75084
    functionDepth: 4
    functionLinenumber: 75084
    functionLinenumberEnd: 75100
    functionName: sqlite3VdbeIntValue
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - doubleToInt64
    - assert
    - sqlite3_mutex_held
    - EIGHT_BYTE_ALIGNMENT
    - testcase
    - memIntValue
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeIntValue(Mem *pMem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3AtoF
      Src: /src/nss/lib/sqlite/sqlite3.c:75111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pMem
    argTypes:
    - Mem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75113
      start: 75108
    functionDepth: 2
    functionLinenumber: 75108
    functionLinenumberEnd: 75113
    functionName: memRealValue
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3AtoF
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: SQLITE_NOINLINE memRealValue(Mem *pMem)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75115,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:75115,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75116,1
    - Dst: EIGHT_BYTE_ALIGNMENT
      Src: /src/nss/lib/sqlite/sqlite3.c:75116,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:75120,1
    - Dst: memRealValue
      Src: /src/nss/lib/sqlite/sqlite3.c:75123,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - pMem
    argTypes:
    - Mem*
    assertStmts:
    - condition: ( pMem->db==0 || sqlite3_mutex_held(pMem->db->mutex) )
      pos:
        line_end: 75114
        line_start: 75114
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( EIGHT_BYTE_ALIGNMENT(pMem) )
      pos:
        line_end: 75115
        line_start: 75115
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 75128
      start: 75114
    functionDepth: 3
    functionLinenumber: 75114
    functionLinenumberEnd: 75128
    functionName: sqlite3VdbeRealValue
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memRealValue
    - assert
    - sqlite3_mutex_held
    - EIGHT_BYTE_ALIGNMENT
    - testcase
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeRealValue(Mem *pMem)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:75135,1
    - Dst: sqlite3VdbeRealValue
      Src: /src/nss/lib/sqlite/sqlite3.c:75138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - pMem
    - ifNull
    argTypes:
    - Mem*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75139
      start: 75134
    functionDepth: 4
    functionLinenumber: 75134
    functionLinenumberEnd: 75139
    functionName: sqlite3VdbeBooleanValue
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeRealValue
    - testcase
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeBooleanValue(Mem *pMem, int ifNull)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75147,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75148,1
    - Dst: sqlite3VdbeMemIsRowSet
      Src: /src/nss/lib/sqlite/sqlite3.c:75148,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75149,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:75149,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75150,1
    - Dst: EIGHT_BYTE_ALIGNMENT
      Src: /src/nss/lib/sqlite/sqlite3.c:75150,1
    - Dst: doubleToInt64
      Src: /src/nss/lib/sqlite/sqlite3.c:75152,1
    - Dst: MemSetTypeFlag
      Src: /src/nss/lib/sqlite/sqlite3.c:75166,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - pMem
    argTypes:
    - Mem*
    assertStmts:
    - condition: ( pMem->flags & MEM_Real )
      pos:
        line_end: 75146
        line_start: 75146
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pMem->db==0 || sqlite3_mutex_held(pMem->db->mutex) )
      pos:
        line_end: 75148
        line_start: 75148
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !sqlite3VdbeMemIsRowSet(pMem) )
      pos:
        line_end: 75147
        line_start: 75147
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( EIGHT_BYTE_ALIGNMENT(pMem) )
      pos:
        line_end: 75149
        line_start: 75149
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 75168
      start: 75145
    functionDepth: 1
    functionLinenumber: 75145
    functionLinenumberEnd: 75168
    functionName: sqlite3VdbeIntegerAffinity
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - doubleToInt64
    - assert
    - MemSetTypeFlag
    - sqlite3_mutex_held
    - EIGHT_BYTE_ALIGNMENT
    - sqlite3VdbeMemIsRowSet
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeIntegerAffinity(Mem *pMem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75174,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:75174,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75175,1
    - Dst: sqlite3VdbeMemIsRowSet
      Src: /src/nss/lib/sqlite/sqlite3.c:75175,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75176,1
    - Dst: EIGHT_BYTE_ALIGNMENT
      Src: /src/nss/lib/sqlite/sqlite3.c:75176,1
    - Dst: sqlite3VdbeIntValue
      Src: /src/nss/lib/sqlite/sqlite3.c:75178,1
    - Dst: MemSetTypeFlag
      Src: /src/nss/lib/sqlite/sqlite3.c:75179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pMem
    argTypes:
    - Mem*
    assertStmts:
    - condition: ( pMem->db==0 || sqlite3_mutex_held(pMem->db->mutex) )
      pos:
        line_end: 75173
        line_start: 75173
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( EIGHT_BYTE_ALIGNMENT(pMem) )
      pos:
        line_end: 75175
        line_start: 75175
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !sqlite3VdbeMemIsRowSet(pMem) )
      pos:
        line_end: 75174
        line_start: 75174
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 75181
      start: 75173
    functionDepth: 5
    functionLinenumber: 75173
    functionLinenumberEnd: 75181
    functionName: sqlite3VdbeMemIntegerify
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - MemSetTypeFlag
    - sqlite3_mutex_held
    - EIGHT_BYTE_ALIGNMENT
    - sqlite3VdbeMemIsRowSet
    - sqlite3VdbeIntValue
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeMemIntegerify(Mem *pMem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75188,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:75188,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75189,1
    - Dst: EIGHT_BYTE_ALIGNMENT
      Src: /src/nss/lib/sqlite/sqlite3.c:75189,1
    - Dst: sqlite3VdbeRealValue
      Src: /src/nss/lib/sqlite/sqlite3.c:75191,1
    - Dst: MemSetTypeFlag
      Src: /src/nss/lib/sqlite/sqlite3.c:75192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pMem
    argTypes:
    - Mem*
    assertStmts:
    - condition: ( pMem->db==0 || sqlite3_mutex_held(pMem->db->mutex) )
      pos:
        line_end: 75187
        line_start: 75187
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( EIGHT_BYTE_ALIGNMENT(pMem) )
      pos:
        line_end: 75188
        line_start: 75188
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 75194
      start: 75187
    functionDepth: 4
    functionLinenumber: 75187
    functionLinenumberEnd: 75194
    functionName: sqlite3VdbeMemRealify
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeRealValue
    - assert
    - MemSetTypeFlag
    - sqlite3_mutex_held
    - EIGHT_BYTE_ALIGNMENT
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeMemRealify(Mem *pMem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:75208,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - r1
    - i
    argTypes:
    - double
    - sqlite3_int64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75210
      start: 75205
    functionDepth: 0
    functionLinenumber: 75205
    functionLinenumberEnd: 75210
    functionName: sqlite3RealSameAsInt
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3RealSameAsInt(double r1, sqlite3_int64 i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:75221,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:75222,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:75223,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:75224,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75228,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75229,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:75229,1
    - Dst: sqlite3AtoF
      Src: /src/nss/lib/sqlite/sqlite3.c:75230,1
    - Dst: sqlite3Atoi64
      Src: /src/nss/lib/sqlite/sqlite3.c:75231,1
    - Dst: sqlite3RealSameAsInt
      Src: /src/nss/lib/sqlite/sqlite3.c:75232,1
    - Dst: MemSetTypeFlag
      Src: /src/nss/lib/sqlite/sqlite3.c:75235,1
    - Dst: MemSetTypeFlag
      Src: /src/nss/lib/sqlite/sqlite3.c:75237,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75240,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - pMem
    argTypes:
    - Mem*
    assertStmts:
    - condition: ( (pMem->flags & (MEM_Blob|MEM_Str))!=0 )
      pos:
        line_end: 75227
        line_start: 75227
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pMem->db==0 || sqlite3_mutex_held(pMem->db->mutex) )
      pos:
        line_end: 75228
        line_start: 75228
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pMem->flags & (MEM_Int|MEM_Real|MEM_IntReal|MEM_Null))!=0 )
      pos:
        line_end: 75239
        line_start: 75239
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 75243
      start: 75220
    functionDepth: 3
    functionLinenumber: 75220
    functionLinenumberEnd: 75243
    functionName: sqlite3VdbeMemNumerify
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Atoi64
    - sqlite3AtoF
    - assert
    - sqlite3RealSameAsInt
    - MemSetTypeFlag
    - sqlite3_mutex_held
    - testcase
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeMemNumerify(Mem *pMem)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ValueApplyAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:75257,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75258,1
    - Dst: MemSetTypeFlag
      Src: /src/nss/lib/sqlite/sqlite3.c:75259,1
    - Dst: sqlite3VdbeMemNumerify
      Src: /src/nss/lib/sqlite/sqlite3.c:75266,1
    - Dst: sqlite3VdbeMemIntegerify
      Src: /src/nss/lib/sqlite/sqlite3.c:75270,1
    - Dst: sqlite3VdbeMemRealify
      Src: /src/nss/lib/sqlite/sqlite3.c:75274,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75278,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75279,1
    - Dst: sqlite3ValueApplyAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:75281,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75282,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 3
    argNames:
    - pMem
    - aff
    - encoding
    argTypes:
    - Mem*
    - u8
    - u8
    assertStmts:
    - condition: ( pMem->flags & MEM_Str || pMem->db->mallocFailed )
      pos:
        line_end: 75257
        line_start: 75257
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( aff==SQLITE_AFF_TEXT )
      pos:
        line_end: 75277
        line_start: 75277
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( MEM_Str==(MEM_Blob>>3) )
      pos:
        line_end: 75278
        line_start: 75278
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pMem->flags & MEM_Str || pMem->db->mallocFailed )
      pos:
        line_end: 75281
        line_start: 75281
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 75287
      start: 75252
    functionDepth: 6
    functionLinenumber: 75252
    functionLinenumberEnd: 75287
    functionName: sqlite3VdbeMemCast
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ValueApplyAffinity
    - sqlite3VdbeMemNumerify
    - sqlite3VdbeMemRealify
    - assert
    - MemSetTypeFlag
    - sqlite3VdbeMemIntegerify
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeMemCast(Mem *pMem, u8 aff, u8 encoding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - pMem
    - db
    - flags
    argTypes:
    - Mem*
    - sqlite3*
    - u16
    assertStmts:
    - condition: ( (flags & ~MEM_TypeMask)==0 )
      pos:
        line_end: 75294
        line_start: 75294
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 75299
      start: 75294
    functionDepth: 0
    functionLinenumber: 75294
    functionLinenumberEnd: 75299
    functionName: sqlite3VdbeMemInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeMemInit(Mem *pMem, sqlite3 *db, u16 flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VdbeMemDynamic
      Src: /src/nss/lib/sqlite/sqlite3.c:75315,1
    - Dst: vdbeMemClearExternAndSetNull
      Src: /src/nss/lib/sqlite/sqlite3.c:75316,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pMem
    argTypes:
    - Mem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75320
      start: 75314
    functionDepth: 7
    functionLinenumber: 75314
    functionLinenumberEnd: 75320
    functionName: sqlite3VdbeMemSetNull
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - vdbeMemClearExternAndSetNull
    - VdbeMemDynamic
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeMemSetNull(Mem *pMem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeMemSetNull
      Src: /src/nss/lib/sqlite/sqlite3.c:75322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75323
      start: 75321
    functionDepth: 8
    functionLinenumber: 75321
    functionLinenumberEnd: 75323
    functionName: sqlite3ValueSetNull
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3VdbeMemSetNull
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ValueSetNull(sqlite3_value *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeMemRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:75330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - pMem
    - n
    argTypes:
    - Mem*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75337
      start: 75329
    functionDepth: 9
    functionLinenumber: 75329
    functionLinenumberEnd: 75337
    functionName: sqlite3VdbeMemSetZeroBlob
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeMemRelease
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeMemSetZeroBlob(Mem *pMem, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeMemSetNull
      Src: /src/nss/lib/sqlite/sqlite3.c:75345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pMem
    - val
    argTypes:
    - Mem*
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75348
      start: 75344
    functionDepth: 8
    functionLinenumber: 75344
    functionLinenumberEnd: 75348
    functionName: vdbeReleaseAndSetInt64
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeMemSetNull
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: SQLITE_NOINLINE vdbeReleaseAndSetInt64(Mem *pMem, i64 val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VdbeMemDynamic
      Src: /src/nss/lib/sqlite/sqlite3.c:75355,1
    - Dst: vdbeReleaseAndSetInt64
      Src: /src/nss/lib/sqlite/sqlite3.c:75356,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - pMem
    - val
    argTypes:
    - Mem*
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75361
      start: 75354
    functionDepth: 9
    functionLinenumber: 75354
    functionLinenumberEnd: 75361
    functionName: sqlite3VdbeMemSetInt64
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - vdbeReleaseAndSetInt64
    - VdbeMemDynamic
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeMemSetInt64(Mem *pMem, i64 val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:75364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75364
      start: 75364
    functionDepth: 1
    functionLinenumber: 75364
    functionLinenumberEnd: 75364
    functionName: sqlite3NoopDestructor
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3NoopDestructor(void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - pMem
    - pPtr
    - zPType
    argTypes:
    - Mem*
    - void*
    - char*
    assertStmts:
    - condition: ( pMem->flags==MEM_Null )
      pos:
        line_end: 75375
        line_start: 75375
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 75382
      start: 75370
    functionDepth: 0
    functionLinenumber: 75370
    functionLinenumberEnd: 75382
    functionName: sqlite3VdbeMemSetPointer
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3VdbeMemSetPointer(\n  Mem *pMem,\n  void *pPtr,\n
      \ const char *zPType,\n  void (*xDestructor)(void*)\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeMemSetNull
      Src: /src/nss/lib/sqlite/sqlite3.c:75390,1
    - Dst: sqlite3IsNaN
      Src: /src/nss/lib/sqlite/sqlite3.c:75391,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pMem
    - val
    argTypes:
    - Mem*
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75395
      start: 75389
    functionDepth: 8
    functionLinenumber: 75389
    functionLinenumberEnd: 75395
    functionName: sqlite3VdbeMemSetDouble
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeMemSetNull
    - sqlite3IsNaN
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeMemSetDouble(Mem *pMem, double val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - pMem
    argTypes:
    - Mem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75406
      start: 75403
    functionDepth: 0
    functionLinenumber: 75403
    functionLinenumberEnd: 75406
    functionName: sqlite3VdbeMemIsRowSet
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeMemIsRowSet(const Mem *pMem)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75419,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75420,1
    - Dst: sqlite3VdbeMemIsRowSet
      Src: /src/nss/lib/sqlite/sqlite3.c:75420,1
    - Dst: sqlite3VdbeMemRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:75421,1
    - Dst: sqlite3RowSetInit
      Src: /src/nss/lib/sqlite/sqlite3.c:75422,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - pMem
    argTypes:
    - Mem*
    assertStmts:
    - condition: ( db!=0 )
      pos:
        line_end: 75418
        line_start: 75418
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !sqlite3VdbeMemIsRowSet(pMem) )
      pos:
        line_end: 75419
        line_start: 75419
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 75428
      start: 75416
    functionDepth: 9
    functionLinenumber: 75416
    functionLinenumberEnd: 75428
    functionName: sqlite3VdbeMemSetRowSet
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3VdbeMemRelease
    - sqlite3VdbeMemIsRowSet
    - sqlite3RowSetInit
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeMemSetRowSet(Mem *pMem)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75435,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - Mem*
    assertStmts:
    - condition: ( p->db!=0 )
      pos:
        line_end: 75434
        line_start: 75434
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 75444
      start: 75434
    functionDepth: 0
    functionLinenumber: 75434
    functionLinenumberEnd: 75444
    functionName: sqlite3VdbeMemTooBig
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeMemTooBig(Mem *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75467,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75468,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75469,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75470,1
    - Dst: sqlite3BlobCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:75470,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 2
    argNames:
    - pVdbe
    - pMem
    argTypes:
    - Vdbe*
    - Mem*
    assertStmts:
    - condition: ( (mFlags&(MEM_Int|MEM_IntReal))==0 || pMem->u.i==pX->u.i )
      pos:
        line_end: 75466
        line_start: 75466
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (mFlags&MEM_Blob)==0  || sqlite3BlobCompare(pMem,pX)==0 )
      pos:
        line_end: 75469
        line_start: 75469
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (mFlags&MEM_Real)==0 || pMem->u.r==pX->u.r )
      pos:
        line_end: 75467
        line_start: 75467
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (mFlags&MEM_Str)==0  || (pMem->n==pX->n && pMem->z==pX->z) )
      pos:
        line_end: 75468
        line_start: 75468
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 75479
      start: 75455
    functionDepth: 1
    functionLinenumber: 75455
    functionLinenumberEnd: 75479
    functionName: sqlite3VdbeMemAboutToChange
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3BlobCompare
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeMemAboutToChange(Vdbe *pVdbe, Mem *pMem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vdbeMemClearExternAndSetNull
      Src: /src/nss/lib/sqlite/sqlite3.c:75490,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75491,1
    - Dst: VdbeMemDynamic
      Src: /src/nss/lib/sqlite/sqlite3.c:75491,1
    - Dst: sqlite3VdbeMemShallowCopy
      Src: /src/nss/lib/sqlite/sqlite3.c:75492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - pTo
    - pFrom
    - eType
    argTypes:
    - Mem*
    - Mem*
    - int
    assertStmts:
    - condition: ( !VdbeMemDynamic(pTo) )
      pos:
        line_end: 75490
        line_start: 75490
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 75493
      start: 75489
    functionDepth: 7
    functionLinenumber: 75489
    functionLinenumberEnd: 75493
    functionName: vdbeClrCopy
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3VdbeMemShallowCopy
    - vdbeMemClearExternAndSetNull
    - VdbeMemDynamic
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: SQLITE_NOINLINE vdbeClrCopy(Mem *pTo, const Mem *pFrom, int eType)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75495,1
    - Dst: sqlite3VdbeMemIsRowSet
      Src: /src/nss/lib/sqlite/sqlite3.c:75495,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75496,1
    - Dst: VdbeMemDynamic
      Src: /src/nss/lib/sqlite/sqlite3.c:75497,1
    - Dst: vdbeClrCopy
      Src: /src/nss/lib/sqlite/sqlite3.c:75497,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:75498,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75501,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - pTo
    - pFrom
    - srcType
    argTypes:
    - Mem*
    - Mem*
    - int
    assertStmts:
    - condition: ( !sqlite3VdbeMemIsRowSet(pFrom) )
      pos:
        line_end: 75494
        line_start: 75494
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTo->db==pFrom->db )
      pos:
        line_end: 75495
        line_start: 75495
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( srcType==MEM_Ephem || srcType==MEM_Static )
      pos:
        line_end: 75500
        line_start: 75500
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 75504
      start: 75494
    functionDepth: 8
    functionLinenumber: 75494
    functionLinenumberEnd: 75504
    functionName: sqlite3VdbeMemShallowCopy
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - memcpy
    - assert
    - vdbeClrCopy
    - VdbeMemDynamic
    - sqlite3VdbeMemIsRowSet
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeMemShallowCopy(Mem *pTo, const Mem *pFrom,
      int srcType)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75513,1
    - Dst: sqlite3VdbeMemIsRowSet
      Src: /src/nss/lib/sqlite/sqlite3.c:75513,1
    - Dst: VdbeMemDynamic
      Src: /src/nss/lib/sqlite/sqlite3.c:75514,1
    - Dst: vdbeMemClearExternAndSetNull
      Src: /src/nss/lib/sqlite/sqlite3.c:75514,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:75515,1
    - Dst: sqlite3VdbeMemMakeWriteable
      Src: /src/nss/lib/sqlite/sqlite3.c:75520,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - pTo
    - pFrom
    argTypes:
    - Mem*
    - Mem*
    assertStmts:
    - condition: ( !sqlite3VdbeMemIsRowSet(pFrom) )
      pos:
        line_end: 75512
        line_start: 75512
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 75525
      start: 75510
    functionDepth: 12
    functionLinenumber: 75510
    functionLinenumberEnd: 75525
    functionName: sqlite3VdbeMemCopy
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - vdbeMemClearExternAndSetNull
    - sqlite3VdbeMemMakeWriteable
    - assert
    - VdbeMemDynamic
    - sqlite3VdbeMemIsRowSet
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeMemCopy(Mem *pTo, const Mem *pFrom)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75534,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:75534,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75535,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:75535,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75536,1
    - Dst: sqlite3VdbeMemRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:75538,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:75539,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - pTo
    - pFrom
    argTypes:
    - Mem*
    - Mem*
    assertStmts:
    - condition: ( pFrom->db==0 || sqlite3_mutex_held(pFrom->db->mutex) )
      pos:
        line_end: 75533
        line_start: 75533
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pFrom->db==0 || pTo->db==0 || pFrom->db==pTo->db )
      pos:
        line_end: 75535
        line_start: 75535
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTo->db==0 || sqlite3_mutex_held(pTo->db->mutex) )
      pos:
        line_end: 75534
        line_start: 75534
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 75542
      start: 75533
    functionDepth: 9
    functionLinenumber: 75533
    functionLinenumberEnd: 75542
    functionName: sqlite3VdbeMemMove
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3VdbeMemRelease
    - sqlite3_mutex_held
    - memcpy
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeMemMove(Mem *pTo, Mem *pFrom)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75570,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:75570,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75571,1
    - Dst: sqlite3VdbeMemIsRowSet
      Src: /src/nss/lib/sqlite/sqlite3.c:75571,1
    - Dst: sqlite3VdbeMemSetNull
      Src: /src/nss/lib/sqlite/sqlite3.c:75575,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75586,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:75588,1
    - Dst: sqlite3ErrorToParser
      Src: /src/nss/lib/sqlite/sqlite3.c:75605,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:75607,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:75608,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:75609,1
    - Dst: sqlite3VdbeMemClearAndResize
      Src: /src/nss/lib/sqlite/sqlite3.c:75610,1
    - Dst: MAX
      Src: /src/nss/lib/sqlite/sqlite3.c:75610,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:75613,1
    - Dst: sqlite3VdbeMemRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:75615,1
    - Dst: sqlite3DbMallocSize
      Src: /src/nss/lib/sqlite/sqlite3.c:75619,1
    - Dst: sqlite3VdbeMemHandleBom
      Src: /src/nss/lib/sqlite/sqlite3.c:75631,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 58
    argCount: 4
    argNames:
    - pMem
    - z
    - n
    - enc
    argTypes:
    - Mem*
    - char*
    - int
    - u8
    assertStmts:
    - condition: ( pMem->db==0 || sqlite3_mutex_held(pMem->db->mutex) )
      pos:
        line_end: 75569
        line_start: 75569
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !sqlite3VdbeMemIsRowSet(pMem) )
      pos:
        line_end: 75570
        line_start: 75570
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( enc!=0 )
      pos:
        line_end: 75585
        line_start: 75585
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 75641
      start: 75559
    functionDepth: 11
    functionLinenumber: 75559
    functionLinenumberEnd: 75641
    functionName: sqlite3VdbeMemSetStr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - memcpy
    - sqlite3VdbeMemRelease
    - sqlite3VdbeMemSetNull
    - sqlite3ErrorToParser
    - sqlite3DbMallocSize
    - assert
    - sqlite3VdbeMemClearAndResize
    - MAX
    - sqlite3VdbeMemHandleBom
    - testcase
    - sqlite3_mutex_held
    - sqlite3VdbeMemIsRowSet
    - strlen
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3VdbeMemSetStr(\n  Mem *pMem,          /* Memory
      cell to set to string value */\n  const char *z,      /* String pointer */\n
      \ int n,              /* Bytes in string, or negative */\n  u8 enc,             /*
      Encoding of z.  0 for BLOBs */\n  void (*xDel)(void*) /* Destructor function
      */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeMaxRecordSize
      Src: /src/nss/lib/sqlite/sqlite3.c:75666,1
    - Dst: sqlite3VdbeMemClearAndResize
      Src: /src/nss/lib/sqlite/sqlite3.c:75669,1
    - Dst: sqlite3BtreePayload
      Src: /src/nss/lib/sqlite/sqlite3.c:75670,1
    - Dst: sqlite3VdbeMemRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:75676,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - pCur
    - offset
    - amt
    - pMem
    argTypes:
    - BtCursor*
    - u32
    - u32
    - Mem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75680
      start: 75658
    functionDepth: 17
    functionLinenumber: 75658
    functionLinenumberEnd: 75680
    functionName: vdbeMemFromBtreeResize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeMemClearAndResize
    - sqlite3BtreePayload
    - sqlite3VdbeMemRelease
    - sqlite3BtreeMaxRecordSize
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: "SQLITE_NOINLINE vdbeMemFromBtreeResize(\n  BtCursor *pCur,   /* Cursor
      pointing at record to retrieve. */\n  u32 offset,       /* Offset from the start
      of data to return bytes from. */\n  u32 amt,          /* Number of bytes to
      return. */\n  Mem *pMem         /* OUT: Return data in this Mem structure. */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75691,1
    - Dst: sqlite3BtreeCursorIsValid
      Src: /src/nss/lib/sqlite/sqlite3.c:75691,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75692,1
    - Dst: VdbeMemDynamic
      Src: /src/nss/lib/sqlite/sqlite3.c:75692,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75696,1
    - Dst: sqlite3VdbeMemIsRowSet
      Src: /src/nss/lib/sqlite/sqlite3.c:75696,1
    - Dst: sqlite3BtreePayloadFetch
      Src: /src/nss/lib/sqlite/sqlite3.c:75697,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75698,1
    - Dst: vdbeMemFromBtreeResize
      Src: /src/nss/lib/sqlite/sqlite3.c:75705,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 4
    argNames:
    - pCur
    - offset
    - amt
    - pMem
    argTypes:
    - BtCursor*
    - u32
    - u32
    - Mem*
    assertStmts:
    - condition: ( sqlite3BtreeCursorIsValid(pCur) )
      pos:
        line_end: 75690
        line_start: 75690
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !sqlite3VdbeMemIsRowSet(pMem) )
      pos:
        line_end: 75695
        line_start: 75695
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !VdbeMemDynamic(pMem) )
      pos:
        line_end: 75691
        line_start: 75691
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( zData!=0 )
      pos:
        line_end: 75697
        line_start: 75697
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 75709
      start: 75681
    functionDepth: 18
    functionLinenumber: 75681
    functionLinenumberEnd: 75709
    functionName: sqlite3VdbeMemFromBtree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3BtreeCursorIsValid
    - vdbeMemFromBtreeResize
    - VdbeMemDynamic
    - sqlite3VdbeMemIsRowSet
    - sqlite3BtreePayloadFetch
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3VdbeMemFromBtree(\n  BtCursor *pCur,   /* Cursor
      pointing at record to retrieve. */\n  u32 offset,       /* Offset from the start
      of data to return bytes from. */\n  u32 amt,          /* Number of bytes to
      return. */\n  Mem *pMem         /* OUT: Return data in this Mem structure. */\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75717,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75718,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:75718,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75719,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75720,1
    - Dst: sqlite3VdbeMemIsRowSet
      Src: /src/nss/lib/sqlite/sqlite3.c:75720,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75721,1
    - Dst: ExpandBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:75723,1
    - Dst: sqlite3VdbeChangeEncoding
      Src: /src/nss/lib/sqlite/sqlite3.c:75726,1
    - Dst: SQLITE_PTR_TO_INT
      Src: /src/nss/lib/sqlite/sqlite3.c:75728,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75729,1
    - Dst: sqlite3VdbeMemMakeWriteable
      Src: /src/nss/lib/sqlite/sqlite3.c:75730,1
    - Dst: sqlite3VdbeMemNulTerminate
      Src: /src/nss/lib/sqlite/sqlite3.c:75734,1
    - Dst: sqlite3VdbeMemStringify
      Src: /src/nss/lib/sqlite/sqlite3.c:75736,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75737,1
    - Dst: SQLITE_PTR_TO_INT
      Src: /src/nss/lib/sqlite/sqlite3.c:75737,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75739,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75742,1
    - Dst: sqlite3VdbeMemValidStrRep
      Src: /src/nss/lib/sqlite/sqlite3.c:75742,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 2
    argNames:
    - pVal
    - enc
    argTypes:
    - sqlite3_value*
    - u8
    assertStmts:
    - condition: ( pVal!=0 )
      pos:
        line_end: 75716
        line_start: 75716
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (enc&3)==(enc&~SQLITE_UTF16_ALIGNED) )
      pos:
        line_end: 75718
        line_start: 75718
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !sqlite3VdbeMemIsRowSet(pVal) )
      pos:
        line_end: 75719
        line_start: 75719
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pVal->db==0 || sqlite3_mutex_held(pVal->db->mutex) )
      pos:
        line_end: 75717
        line_start: 75717
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pVal->flags & (MEM_Null))==0 )
      pos:
        line_end: 75720
        line_start: 75720
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pVal->flags & (MEM_Ephem|MEM_Static))!=0 )
      pos:
        line_end: 75728
        line_start: 75728
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3VdbeMemValidStrRep(pVal) )
      pos:
        line_end: 75741
        line_start: 75741
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( 0==(1&SQLITE_PTR_TO_INT(pVal->z)) )
      pos:
        line_end: 75736
        line_start: 75736
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "(pVal->enc==(enc & ~SQLITE_UTF16_ALIGNED) || pVal->db==0\n              ||
        pVal->db->mallocFailed )"
      pos:
        line_end: 75739
        line_start: 75738
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 75747
      start: 75716
    functionDepth: 12
    functionLinenumber: 75716
    functionLinenumberEnd: 75747
    functionName: valueToText
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - SQLITE_PTR_TO_INT
    - sqlite3VdbeMemStringify
    - sqlite3VdbeMemMakeWriteable
    - sqlite3VdbeMemValidStrRep
    - sqlite3VdbeMemNulTerminate
    - assert
    - ExpandBlob
    - sqlite3_mutex_held
    - sqlite3VdbeChangeEncoding
    - sqlite3VdbeMemIsRowSet
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: SQLITE_NOINLINE *valueToText(sqlite3_value* pVal, u8 enc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75761,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:75761,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75762,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75763,1
    - Dst: sqlite3VdbeMemIsRowSet
      Src: /src/nss/lib/sqlite/sqlite3.c:75763,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75765,1
    - Dst: sqlite3VdbeMemValidStrRep
      Src: /src/nss/lib/sqlite/sqlite3.c:75765,1
    - Dst: valueToText
      Src: /src/nss/lib/sqlite/sqlite3.c:75771,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - pVal
    - enc
    argTypes:
    - sqlite3_value*
    - u8
    assertStmts:
    - condition: ( pVal->db==0 || sqlite3_mutex_held(pVal->db->mutex) )
      pos:
        line_end: 75760
        line_start: 75760
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !sqlite3VdbeMemIsRowSet(pVal) )
      pos:
        line_end: 75762
        line_start: 75762
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (enc&3)==(enc&~SQLITE_UTF16_ALIGNED) )
      pos:
        line_end: 75761
        line_start: 75761
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3VdbeMemValidStrRep(pVal) )
      pos:
        line_end: 75764
        line_start: 75764
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 75772
      start: 75759
    functionDepth: 13
    functionLinenumber: 75759
    functionLinenumberEnd: 75772
    functionName: sqlite3ValueText
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeMemValidStrRep
    - valueToText
    - assert
    - sqlite3_mutex_held
    - sqlite3VdbeMemIsRowSet
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3ValueText(sqlite3_value* pVal, u8 enc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbMallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:75778,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75784
      start: 75777
    functionDepth: 2
    functionLinenumber: 75777
    functionLinenumberEnd: 75784
    functionName: sqlite3_value *sqlite3ValueNew(sqlite3 *db)
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbMallocZero
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3_value *sqlite3ValueNew(sqlite3 *db)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ROUND8
      Src: /src/nss/lib/sqlite/sqlite3.c:75819,1
    - Dst: sqlite3DbMallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:75820,1
    - Dst: sqlite3KeyInfoOfIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:75822,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75824,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75825,1
    - Dst: ENC
      Src: /src/nss/lib/sqlite/sqlite3.c:75825,1
    - Dst: ROUND8
      Src: /src/nss/lib/sqlite/sqlite3.c:75826,1
    - Dst: sqlite3DbFreeNN
      Src: /src/nss/lib/sqlite/sqlite3.c:75832,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:75844,1
    - Dst: sqlite3ValueNew
      Src: /src/nss/lib/sqlite/sqlite3.c:75846,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - struct ValueNewStat4Ctx*
    assertStmts:
    - condition: ( pRec->pKeyInfo->enc==ENC(db) )
      pos:
        line_end: 75824
        line_start: 75824
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pRec->pKeyInfo->nAllField==nCol )
      pos:
        line_end: 75823
        line_start: 75823
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 75847
      start: 75808
    functionDepth: 5
    functionLinenumber: 75808
    functionLinenumberEnd: 75847
    functionName: valueNew
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ROUND8
    - UNUSED_PARAMETER
    - assert
    - sqlite3DbFreeNN
    - ENC
    - sqlite3ValueNew
    - sqlite3KeyInfoOfIndex
    - sqlite3DbMallocZero
    linkageType: ''
    returnType: sqlite3_value
    signature: sqlite3_value *valueNew(sqlite3 *db, struct ValueNewStat4Ctx *p)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75887,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75888,1
    - Dst: sqlite3FindFunction
      Src: /src/nss/lib/sqlite/sqlite3.c:75891,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75892,1
    - Dst: sqlite3DbMallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:75900,1
    - Dst: sqlite3ValueFromExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:75906,1
    - Dst: valueNew
      Src: /src/nss/lib/sqlite/sqlite3.c:75911,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75917,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:75918,1
    - Dst: FuncDef*::xSFunc
      Src: /src/nss/lib/sqlite/sqlite3.c:75921,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:75924,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:75924,1
    - Dst: sqlite3ValueApplyAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:75926,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75927,1
    - Dst: sqlite3VdbeChangeEncoding
      Src: /src/nss/lib/sqlite/sqlite3.c:75928,1
    - Dst: sqlite3VdbeMemTooBig
      Src: /src/nss/lib/sqlite/sqlite3.c:75929,1
    - Dst: sqlite3ValueFree
      Src: /src/nss/lib/sqlite/sqlite3.c:75942,1
    - Dst: sqlite3DbFreeNN
      Src: /src/nss/lib/sqlite/sqlite3.c:75944,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 62
    argCount: 6
    argNames:
    - db
    - p
    - enc
    - aff
    - ppVal
    - pCtx
    argTypes:
    - sqlite3*
    - Expr*
    - u8
    - u8
    - sqlite3_value**
    - struct ValueNewStat4Ctx*
    assertStmts:
    - condition: ( pCtx!=0 )
      pos:
        line_end: 75886
        line_start: 75886
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (p->flags & EP_TokenOnly)==0 )
      pos:
        line_end: 75887
        line_start: 75887
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pFunc )
      pos:
        line_end: 75891
        line_start: 75891
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCtx->pParse->rc==SQLITE_OK )
      pos:
        line_end: 75916
        line_start: 75916
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc==SQLITE_OK )
      pos:
        line_end: 75926
        line_start: 75926
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 75949
      start: 75870
    functionDepth: 10
    functionLinenumber: 75870
    functionLinenumberEnd: 75949
    functionName: valueFromFunction
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ValueFromExpr
    - sqlite3ValueApplyAffinity
    - sqlite3VdbeMemTooBig
    - sqlite3FindFunction
    - assert
    - memset
    - sqlite3DbFreeNN
    - valueNew
    - sqlite3ErrorMsg
    - sqlite3VdbeChangeEncoding
    - sqlite3ValueFree
    - sqlite3_value_text
    - FuncDef*::xSFunc
    - sqlite3DbMallocZero
    linkageType: ''
    returnType: int
    signature: "int valueFromFunction(\n  sqlite3 *db,                    /* The database
      connection */\n  Expr *p,                        /* The expression to evaluate
      */\n  u8 enc,                         /* Encoding to use */\n  u8 aff,                         /*
      Affinity to use */\n  sqlite3_value **ppVal,          /* Write the new value
      here */\n  struct ValueNewStat4Ctx *pCtx   /* Second argument for valueNew()
      */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75952
      start: 75951
    functionDepth: 0
    functionLinenumber: 75951
    functionLinenumberEnd: 75952
    functionName: valueFromFunction
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: valueFromFunction(a,b,c,d,e,f)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75979,1
    - Dst: NEVER
      Src: /src/nss/lib/sqlite/sqlite3.c:75984,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:75991,1
    - Dst: sqlite3AffinityType
      Src: /src/nss/lib/sqlite/sqlite3.c:75994,1
    - Dst: valueFromExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:75995,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:75996,1
    - Dst: sqlite3VdbeMemCast
      Src: /src/nss/lib/sqlite/sqlite3.c:75998,1
    - Dst: sqlite3ValueApplyAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:75999,1
    - Dst: valueNew
      Src: /src/nss/lib/sqlite/sqlite3.c:76016,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:76018,1
    - Dst: sqlite3VdbeMemSetInt64
      Src: /src/nss/lib/sqlite/sqlite3.c:76019,1
    - Dst: sqlite3MPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:76021,1
    - Dst: sqlite3ValueSetStr
      Src: /src/nss/lib/sqlite/sqlite3.c:76023,1
    - Dst: sqlite3ValueApplyAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:76026,1
    - Dst: sqlite3ValueApplyAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:76028,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:76030,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:76032,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:76033,1
    - Dst: sqlite3VdbeChangeEncoding
      Src: /src/nss/lib/sqlite/sqlite3.c:76037,1
    - Dst: valueFromExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:76041,1
    - Dst: sqlite3VdbeMemNumerify
      Src: /src/nss/lib/sqlite/sqlite3.c:76044,1
    - Dst: MemSetTypeFlag
      Src: /src/nss/lib/sqlite/sqlite3.c:76049,1
    - Dst: sqlite3ValueApplyAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:76053,1
    - Dst: valueNew
      Src: /src/nss/lib/sqlite/sqlite3.c:76056,1
    - Dst: sqlite3VdbeMemSetNull
      Src: /src/nss/lib/sqlite/sqlite3.c:76058,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:76063,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:76064,1
    - Dst: valueNew
      Src: /src/nss/lib/sqlite/sqlite3.c:76065,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:76068,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:76069,1
    - Dst: sqlite3VdbeMemSetStr
      Src: /src/nss/lib/sqlite/sqlite3.c:76070,1
    - Dst: sqlite3HexToBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:76070,1
    - Dst: valueFromFunction
      Src: /src/nss/lib/sqlite/sqlite3.c:76076,1
    - Dst: valueNew
      Src: /src/nss/lib/sqlite/sqlite3.c:76080,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:76095,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:76096,1
    - Dst: sqlite3ValueFree
      Src: /src/nss/lib/sqlite/sqlite3.c:76098,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:76100,1
    - Dst: sqlite3ValueFree
      Src: /src/nss/lib/sqlite/sqlite3.c:76100,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 105
    argCount: 6
    argNames:
    - db
    - pExpr
    - enc
    - affinity
    - ppVal
    - pCtx
    argTypes:
    - sqlite3*
    - Expr*
    - u8
    - u8
    - sqlite3_value**
    - struct ValueNewStat4Ctx*
    assertStmts:
    - condition: ( *ppVal==0 )
      pos:
        line_end: 76095
        line_start: 76095
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pExpr->u.zToken[0]=='x' || pExpr->u.zToken[0]=='X' )
      pos:
        line_end: 76062
        line_start: 76062
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pExpr->u.zToken[1]=='\'' )
      pos:
        line_end: 76063
        line_start: 76063
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( zVal[nVal]=='\'' )
      pos:
        line_end: 76068
        line_start: 76068
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCtx==0 )
      pos:
        line_end: 76099
        line_start: 76099
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pExpr!=0 )
      pos:
        line_end: 75978
        line_start: 75978
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pExpr->flags & EP_TokenOnly)==0 || pCtx==0 )
      pos:
        line_end: 75990
        line_start: 75990
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pVal->flags & MEM_IntReal)==0 )
      pos:
        line_end: 76029
        line_start: 76029
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 76103
      start: 75964
    functionDepth: 12
    functionLinenumber: 75964
    functionLinenumberEnd: 76103
    functionName: valueFromExpr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3VdbeMemNumerify
    - sqlite3VdbeMemSetNull
    - sqlite3AffinityType
    - sqlite3ValueSetStr
    - testcase
    - sqlite3ValueApplyAffinity
    - sqlite3VdbeMemCast
    - assert
    - MemSetTypeFlag
    - sqlite3ValueFree
    - valueFromExpr
    - ExprHasProperty
    - sqlite3HexToBlob
    - sqlite3DbFree
    - sqlite3VdbeMemSetInt64
    - sqlite3Strlen30
    - valueFromFunction
    - NEVER
    - sqlite3MPrintf
    - sqlite3VdbeMemSetStr
    - valueNew
    - sqlite3VdbeChangeEncoding
    linkageType: ''
    returnType: int
    signature: "int valueFromExpr(\n  sqlite3 *db,                    /* The database
      connection */\n  Expr *pExpr,                    /* The expression to evaluate
      */\n  u8 enc,                         /* Encoding to use */\n  u8 affinity,
      \                   /* Affinity to use */\n  sqlite3_value **ppVal,          /*
      Write the new value here */\n  struct ValueNewStat4Ctx *pCtx   /* Second argument
      for valueNew() */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: valueFromExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:76122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - db
    - pExpr
    - enc
    - affinity
    - ppVal
    argTypes:
    - sqlite3*
    - Expr*
    - u8
    - u8
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76123
      start: 76115
    functionDepth: 13
    functionLinenumber: 76115
    functionLinenumberEnd: 76123
    functionName: sqlite3ValueFromExpr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - valueFromExpr
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3ValueFromExpr(\n  sqlite3 *db,              /*
      The database connection */\n  Expr *pExpr,              /* The expression to
      evaluate */\n  u8 enc,                   /* Encoding to use */\n  u8 affinity,
      \             /* Affinity to use */\n  sqlite3_value **ppVal     /* Write the
      new value here */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:76147,1
    - Dst: sqlite3VdbeSerialType
      Src: /src/nss/lib/sqlite/sqlite3.c:76148,1
    - Dst: sqlite3VarintLen
      Src: /src/nss/lib/sqlite/sqlite3.c:76149,1
    - Dst: sqlite3_context_db_handle
      Src: /src/nss/lib/sqlite/sqlite3.c:76150,1
    - Dst: sqlite3DbMallocRawNN
      Src: /src/nss/lib/sqlite/sqlite3.c:76153,1
    - Dst: sqlite3_result_error_nomem
      Src: /src/nss/lib/sqlite/sqlite3.c:76155,1
    - Dst: putVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:76158,1
    - Dst: sqlite3VdbeSerialPut
      Src: /src/nss/lib/sqlite/sqlite3.c:76159,1
    - Dst: sqlite3_result_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:76160,1
    - Dst: sqlite3DbFreeNN
      Src: /src/nss/lib/sqlite/sqlite3.c:76161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76163
      start: 76134
    functionDepth: 7
    functionLinenumber: 76134
    functionLinenumberEnd: 76163
    functionName: recordFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_blob
    - putVarint32
    - sqlite3_context_db_handle
    - sqlite3DbMallocRawNN
    - sqlite3VdbeSerialPut
    - UNUSED_PARAMETER
    - sqlite3VdbeSerialType
    - sqlite3DbFreeNN
    - sqlite3_result_error_nomem
    - sqlite3VarintLen
    linkageType: ''
    returnType: void
    signature: "void recordFunc(\n  sqlite3_context *context,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FUNCTION
      Src: /src/nss/lib/sqlite/sqlite3.c:76170,1
    - Dst: sqlite3InsertBuiltinFuncs
      Src: /src/nss/lib/sqlite/sqlite3.c:76172,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:76172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76173
      start: 76168
    functionDepth: 1
    functionLinenumber: 76168
    functionLinenumberEnd: 76173
    functionName: sqlite3AnalyzeFunctions
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ArraySize
    - sqlite3InsertBuiltinFuncs
    - FUNCTION
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3AnalyzeFunctions(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprSkipCollate
      Src: /src/nss/lib/sqlite/sqlite3.c:76205,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:76207,1
    - Dst: valueNew
      Src: /src/nss/lib/sqlite/sqlite3.c:76209,1
    - Dst: sqlite3VdbeMemSetNull
      Src: /src/nss/lib/sqlite/sqlite3.c:76211,1
    - Dst: sqlite3VdbeSetVarmask
      Src: /src/nss/lib/sqlite/sqlite3.c:76216,1
    - Dst: valueNew
      Src: /src/nss/lib/sqlite/sqlite3.c:76218,1
    - Dst: sqlite3VdbeMemCopy
      Src: /src/nss/lib/sqlite/sqlite3.c:76220,1
    - Dst: sqlite3ValueApplyAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:76221,1
    - Dst: ENC
      Src: /src/nss/lib/sqlite/sqlite3.c:76221,1
    - Dst: valueFromExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:76226,1
    - Dst: ENC
      Src: /src/nss/lib/sqlite/sqlite3.c:76226,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:76229,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 5
    argNames:
    - pParse
    - pExpr
    - affinity
    - pAlloc
    - ppVal
    argTypes:
    - Parse*
    - Expr*
    - u8
    - struct ValueNewStat4Ctx*
    - sqlite3_value**
    assertStmts:
    - condition: ( pExpr==0 || pExpr->op!=TK_REGISTER || pExpr->op2!=TK_VARIABLE )
      pos:
        line_end: 76206
        line_start: 76206
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pVal==0 || pVal->db==db )
      pos:
        line_end: 76228
        line_start: 76228
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 76232
      start: 76193
    functionDepth: 13
    functionLinenumber: 76193
    functionLinenumberEnd: 76232
    functionName: stat4ValueFromExpr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ValueApplyAffinity
    - sqlite3VdbeMemCopy
    - sqlite3ExprSkipCollate
    - sqlite3VdbeMemSetNull
    - assert
    - sqlite3VdbeSetVarmask
    - valueNew
    - ENC
    - valueFromExpr
    linkageType: ''
    returnType: int
    signature: "int stat4ValueFromExpr(\n  Parse *pParse,                  /* Parse
      context */\n  Expr *pExpr,                    /* The expression to extract a
      value from */\n  u8 affinity,                    /* Affinity to use */\n  struct
      ValueNewStat4Ctx *pAlloc,/* How to allocate space.  Or NULL */\n  sqlite3_value
      **ppVal           /* OUT: New value object (or NULL) */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VectorFieldSubexpr
      Src: /src/nss/lib/sqlite/sqlite3.c:76290,1
    - Dst: sqlite3IndexColumnAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:76291,1
    - Dst: stat4ValueFromExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:76293,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 7
    argNames:
    - pParse
    - pIdx
    - ppRec
    - pExpr
    - nElem
    - iVal
    - pnExtract
    argTypes:
    - Parse*
    - Index*
    - UnpackedRecord**
    - Expr*
    - int
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76301
      start: 76268
    functionDepth: 14
    functionLinenumber: 76268
    functionLinenumberEnd: 76301
    functionName: sqlite3Stat4ProbeSetValue
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3IndexColumnAffinity
    - sqlite3VectorFieldSubexpr
    - stat4ValueFromExpr
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Stat4ProbeSetValue(\n  Parse *pParse,                  /*
      Parse context */\n  Index *pIdx,                    /* Index being probed */\n
      \ UnpackedRecord **ppRec,         /* IN/OUT: Probe record */\n  Expr *pExpr,
      \                   /* The expression to extract a value from */\n  int nElem,
      \                     /* Maximum number of values to append */\n  int iVal,
      \                      /* Array element to populate */\n  int *pnExtract                  /*
      OUT: Values appended to the record */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stat4ValueFromExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:76319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pParse
    - pExpr
    - affinity
    - ppVal
    argTypes:
    - Parse*
    - Expr*
    - u8
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76320
      start: 76313
    functionDepth: 14
    functionLinenumber: 76313
    functionLinenumberEnd: 76320
    functionName: sqlite3Stat4ValueFromExpr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - stat4ValueFromExpr
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Stat4ValueFromExpr(\n  Parse *pParse,                  /*
      Parse context */\n  Expr *pExpr,                    /* The expression to extract
      a value from */\n  u8 affinity,                    /* Affinity to use */\n  sqlite3_value
      **ppVal           /* OUT: New value object (or NULL) */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:76346,1
    - Dst: getVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:76347,1
    - Dst: getVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:76351,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:76352,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:76353,1
    - Dst: sqlite3VdbeSerialTypeLen
      Src: /src/nss/lib/sqlite/sqlite3.c:76355,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:76358,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:76359,1
    - Dst: sqlite3ValueNew
      Src: /src/nss/lib/sqlite/sqlite3.c:76362,1
    - Dst: sqlite3VdbeSerialGet
      Src: /src/nss/lib/sqlite/sqlite3.c:76365,1
    - Dst: ENC
      Src: /src/nss/lib/sqlite/sqlite3.c:76366,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 5
    argNames:
    - db
    - pRec
    - nRec
    - iCol
    - ppVal
    argTypes:
    - sqlite3*
    - void*
    - int
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( iCol>0 )
      pos:
        line_end: 76345
        line_start: 76345
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 76368
      start: 76330
    functionDepth: 1
    functionLinenumber: 76330
    functionLinenumberEnd: 76368
    functionName: sqlite3Stat4Column
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeSerialGet
    - getVarint32
    - assert
    - ENC
    - testcase
    - sqlite3ValueNew
    - sqlite3VdbeSerialTypeLen
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Stat4Column(\n  sqlite3 *db,                    /*
      Database handle */\n  const void *pRec,               /* Pointer to buffer containing
      record */\n  int nRec,                       /* Size of buffer pRec in bytes
      */\n  int iCol,                       /* Column to extract */\n  sqlite3_value
      **ppVal           /* OUT: Extracted value */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeMemRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:76382,1
    - Dst: sqlite3KeyInfoUnref
      Src: /src/nss/lib/sqlite/sqlite3.c:76384,1
    - Dst: sqlite3DbFreeNN
      Src: /src/nss/lib/sqlite/sqlite3.c:76385,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - pRec
    argTypes:
    - UnpackedRecord*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76387
      start: 76375
    functionDepth: 9
    functionLinenumber: 76375
    functionLinenumberEnd: 76387
    functionName: sqlite3Stat4ProbeFree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeMemRelease
    - sqlite3DbFreeNN
    - sqlite3KeyInfoUnref
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Stat4ProbeFree(UnpackedRecord *pRec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeMemSetStr
      Src: /src/nss/lib/sqlite/sqlite3.c:76400,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - v
    - n
    - z
    - enc
    argTypes:
    - sqlite3_value*
    - int
    - void*
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76401
      start: 76393
    functionDepth: 12
    functionLinenumber: 76393
    functionLinenumberEnd: 76401
    functionName: sqlite3ValueSetStr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3VdbeMemSetStr
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3ValueSetStr(\n  sqlite3_value *v,     /* Value
      to be set */\n  int n,                /* Length of string z */\n  const void
      *z,        /* Text of the new string */\n  u8 enc,               /* Encoding
      to use */\n  void (*xDel)(void*)   /* Destructor for the string */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeMemRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:76408,1
    - Dst: sqlite3DbFreeNN
      Src: /src/nss/lib/sqlite/sqlite3.c:76409,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - sqlite3_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76410
      start: 76406
    functionDepth: 9
    functionLinenumber: 76406
    functionLinenumberEnd: 76410
    functionName: sqlite3ValueFree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3VdbeMemRelease
    - sqlite3DbFreeNN
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ValueFree(sqlite3_value *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: valueToText
      Src: /src/nss/lib/sqlite/sqlite3.c:76418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pVal
    - enc
    argTypes:
    - sqlite3_value*
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76419
      start: 76417
    functionDepth: 13
    functionLinenumber: 76417
    functionLinenumberEnd: 76419
    functionName: valueBytes
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - valueToText
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: SQLITE_NOINLINE valueBytes(sqlite3_value *pVal, u8 enc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:76422,1
    - Dst: valueBytes
      Src: /src/nss/lib/sqlite/sqlite3.c:76434,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - pVal
    - enc
    argTypes:
    - sqlite3_value*
    - u8
    assertStmts:
    - condition: ( (p->flags & MEM_Null)==0 || (p->flags & (MEM_Str|MEM_Blob))==0
        )
      pos:
        line_end: 76421
        line_start: 76421
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 76435
      start: 76420
    functionDepth: 14
    functionLinenumber: 76420
    functionLinenumberEnd: 76435
    functionName: sqlite3ValueBytes
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - valueBytes
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ValueBytes(sqlite3_value *pVal, u8 enc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbMallocRawNN
      Src: /src/nss/lib/sqlite/sqlite3.c:76462,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:76464,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:76475,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:76476,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:76477,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:76478,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:76479,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - pParse
    argTypes:
    - Parse*
    assertStmts:
    - condition: ( p->nOpAlloc==0 )
      pos:
        line_end: 76476
        line_start: 76476
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pParse->aLabel==0 )
      pos:
        line_end: 76474
        line_start: 76474
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pParse->nLabel==0 )
      pos:
        line_end: 76475
        line_start: 76475
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pParse->szOpAlloc==0 )
      pos:
        line_end: 76477
        line_start: 76477
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 76481
      start: 76459
    functionDepth: 7
    functionLinenumber: 76459
    functionLinenumberEnd: 76481
    functionName: sqlite3VdbeCreate
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbMallocRawNN
    - assert
    - sqlite3VdbeAddOp2
    - memset
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3VdbeCreate(Parse *pParse)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:76488,1
    - Dst: va_start
      Src: /src/nss/lib/sqlite/sqlite3.c:76489,1
    - Dst: sqlite3VMPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:76490,1
    - Dst: va_end
      Src: /src/nss/lib/sqlite/sqlite3.c:76491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - p
    - zFormat
    argTypes:
    - Vdbe*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76492
      start: 76486
    functionDepth: 9
    functionLinenumber: 76486
    functionLinenumberEnd: 76492
    functionName: sqlite3VdbeError
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbFree
    - va_end
    - va_start
    - sqlite3VMPrintf
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeError(Vdbe *p, const char *zFormat, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:76503,1
    - Dst: sqlite3DbStrNDup
      Src: /src/nss/lib/sqlite/sqlite3.c:76504,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - p
    - z
    - n
    - prepFlags
    argTypes:
    - Vdbe*
    - char*
    - int
    - u8
    assertStmts:
    - condition: ( p->zSql==0 )
      pos:
        line_end: 76502
        line_start: 76502
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 76505
      start: 76497
    functionDepth: 8
    functionLinenumber: 76497
    functionLinenumberEnd: 76505
    functionName: sqlite3VdbeSetSql
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3DbStrNDup
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeSetSql(Vdbe *p, const char *z, int n, u8
      prepFlags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:76513,1
    - Dst: sqlite3DbMallocRawNN
      Src: /src/nss/lib/sqlite/sqlite3.c:76514,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:76519,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - db
    - p
    - z
    argTypes:
    - sqlite3*
    - Vdbe*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76522
      start: 76511
    functionDepth: 7
    functionLinenumber: 76511
    functionLinenumberEnd: 76522
    functionName: sqlite3VdbeAddDblquoteStr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbMallocRawNN
    - memcpy
    - sqlite3Strlen30
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeAddDblquoteStr(sqlite3 *db, Vdbe *p, const
      char *z)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:76535,1
    - Dst: strcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:76538,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - pVdbe
    - zId
    argTypes:
    - Vdbe*
    - char*
    assertStmts:
    - condition: ( zId!=0 )
      pos:
        line_end: 76534
        line_start: 76534
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 76541
      start: 76530
    functionDepth: 0
    functionLinenumber: 76530
    functionLinenumberEnd: 76541
    functionName: sqlite3VdbeUsesDoubleQuotedString
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - strcmp
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3VdbeUsesDoubleQuotedString(\n  Vdbe *pVdbe,
      \           /* The prepared statement */\n  const char *zId         /* The double-quoted
      identifier, already dequoted */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:76550,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:76570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 2
    argNames:
    - pA
    - pB
    argTypes:
    - Vdbe*
    - Vdbe*
    assertStmts:
    - condition: ( pA->db==pB->db )
      pos:
        line_end: 76549
        line_start: 76549
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 76572
      start: 76547
    functionDepth: 1
    functionLinenumber: 76547
    functionLinenumberEnd: 76572
    functionName: sqlite3VdbeSwap
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - memcpy
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeSwap(Vdbe *pA, Vdbe *pB)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:76601,1
    - Dst: sqlite3OomFault
      Src: /src/nss/lib/sqlite/sqlite3.c:76606,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:76610,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:76611,1
    - Dst: sqlite3DbRealloc
      Src: /src/nss/lib/sqlite/sqlite3.c:76612,1
    - Dst: sqlite3DbMallocSize
      Src: /src/nss/lib/sqlite/sqlite3.c:76614,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - v
    - nOp
    argTypes:
    - Vdbe*
    - int
    assertStmts:
    - condition: ( nOp<=(1024/sizeof(Op)) )
      pos:
        line_end: 76609
        line_start: 76609
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nNew>=(v->nOpAlloc+nOp) )
      pos:
        line_end: 76610
        line_start: 76610
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 76619
      start: 76584
    functionDepth: 8
    functionLinenumber: 76584
    functionLinenumberEnd: 76619
    functionName: growOpArray
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    - sqlite3DbMallocSize
    - sqlite3OomFault
    - assert
    - sqlite3DbRealloc
    linkageType: ''
    returnType: int
    signature: int growOpArray(Vdbe *v, int nOp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76629
      start: 76626
    functionDepth: 0
    functionLinenumber: 76626
    functionLinenumberEnd: 76629
    functionName: test_addop_breakpoint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void test_addop_breakpoint(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:76649,1
    - Dst: growOpArray
      Src: /src/nss/lib/sqlite/sqlite3.c:76650,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:76651,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:76652,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - p
    - op
    - p1
    - p2
    - p3
    argTypes:
    - Vdbe*
    - int
    - int
    - int
    - int
    assertStmts:
    - condition: ( p->nOpAlloc<=p->nOp )
      pos:
        line_end: 76648
        line_start: 76648
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->nOpAlloc>p->nOp )
      pos:
        line_end: 76650
        line_start: 76650
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 76653
      start: 76648
    functionDepth: 9
    functionLinenumber: 76648
    functionLinenumberEnd: 76653
    functionName: growOp3
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - growOpArray
    - sqlite3VdbeAddOp3
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: SQLITE_NOINLINE growOp3(Vdbe *p, int op, int p1, int p2, int p3)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:76659,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:76660,1
    - Dst: growOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:76662,1
    - Dst: sqlite3VdbePrintOp
      Src: /src/nss/lib/sqlite/sqlite3.c:76678,1
    - Dst: test_addop_breakpoint
      Src: /src/nss/lib/sqlite/sqlite3.c:76679,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 5
    argNames:
    - p
    - op
    - p1
    - p2
    - p3
    argTypes:
    - Vdbe*
    - int
    - int
    - int
    - int
    assertStmts:
    - condition: ( p->magic==VDBE_MAGIC_INIT )
      pos:
        line_end: 76658
        line_start: 76658
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( op>=0 && op<0xff )
      pos:
        line_end: 76659
        line_start: 76659
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 76690
      start: 76654
    functionDepth: 10
    functionLinenumber: 76654
    functionLinenumberEnd: 76690
    functionName: sqlite3VdbeAddOp3
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - test_addop_breakpoint
    - growOp3
    - sqlite3VdbePrintOp
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeAddOp3(Vdbe *p, int op, int p1, int p2, int
      p3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:76692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - op
    argTypes:
    - Vdbe*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76693
      start: 76691
    functionDepth: 11
    functionLinenumber: 76691
    functionLinenumberEnd: 76693
    functionName: sqlite3VdbeAddOp0
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeAddOp3
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeAddOp0(Vdbe *p, int op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:76695,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - op
    - p1
    argTypes:
    - Vdbe*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76696
      start: 76694
    functionDepth: 11
    functionLinenumber: 76694
    functionLinenumberEnd: 76696
    functionName: sqlite3VdbeAddOp1
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeAddOp3
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeAddOp1(Vdbe *p, int op, int p1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:76698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - p
    - op
    - p1
    - p2
    argTypes:
    - Vdbe*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76699
      start: 76697
    functionDepth: 11
    functionLinenumber: 76697
    functionLinenumberEnd: 76699
    functionName: sqlite3VdbeAddOp2
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3VdbeAddOp3
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeAddOp2(Vdbe *p, int op, int p1, int p2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:76704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - iDest
    argTypes:
    - Vdbe*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76705
      start: 76703
    functionDepth: 11
    functionLinenumber: 76703
    functionLinenumberEnd: 76705
    functionName: sqlite3VdbeGoto
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeAddOp3
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeGoto(Vdbe *p, int iDest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:76711,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - iDest
    - zStr
    argTypes:
    - Vdbe*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76712
      start: 76710
    functionDepth: 1
    functionLinenumber: 76710
    functionLinenumberEnd: 76712
    functionName: sqlite3VdbeLoadString
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeAddOp4
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeLoadString(Vdbe *p, int iDest, const char
      *zStr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/nss/lib/sqlite/sqlite3.c:76729,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:76732,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:76733,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:76740,1
    - Dst: va_end
      Src: /src/nss/lib/sqlite/sqlite3.c:76742,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - p
    - iDest
    - zTypes
    argTypes:
    - Vdbe*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76743
      start: 76725
    functionDepth: 12
    functionLinenumber: 76725
    functionLinenumberEnd: 76743
    functionName: sqlite3VdbeMultiLoad
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - va_end
    - sqlite3VdbeAddOp2
    - sqlite3VdbeAddOp4
    - va_start
    - va_arg
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeMultiLoad(Vdbe *p, int iDest, const char
      *zTypes, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:76757,1
    - Dst: sqlite3VdbeChangeP4
      Src: /src/nss/lib/sqlite/sqlite3.c:76758,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 7
    argNames:
    - p
    - op
    - p1
    - p2
    - p3
    - zP4
    - p4type
    argTypes:
    - Vdbe*
    - int
    - int
    - int
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76760
      start: 76748
    functionDepth: 11
    functionLinenumber: 76748
    functionLinenumberEnd: 76760
    functionName: sqlite3VdbeAddOp4
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3VdbeChangeP4
    - sqlite3VdbeAddOp3
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3VdbeAddOp4(\n  Vdbe *p,            /* Add the
      opcode to this VM */\n  int op,             /* The new opcode */\n  int p1,
      \            /* The P1 operand */\n  int p2,             /* The P2 operand */\n
      \ int p3,             /* The P3 operand */\n  const char *zP4,    /* The P4
      operand */\n  int p4type          /* P4 operand type */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbMallocRawNN
      Src: /src/nss/lib/sqlite/sqlite3.c:76775,1
    - Dst: sqlite3VdbeDb
      Src: /src/nss/lib/sqlite/sqlite3.c:76775,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:76776,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:76777,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 7
    argNames:
    - p
    - op
    - p1
    - p2
    - p3
    - zP4
    - p4type
    argTypes:
    - Vdbe*
    - int
    - int
    - int
    - int
    - u8*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76778
      start: 76766
    functionDepth: 12
    functionLinenumber: 76766
    functionLinenumberEnd: 76778
    functionName: sqlite3VdbeAddOp4Dup8
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbMallocRawNN
    - memcpy
    - sqlite3VdbeAddOp4
    - sqlite3VdbeDb
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3VdbeAddOp4Dup8(\n  Vdbe *p,            /* Add
      the opcode to this VM */\n  int op,             /* The new opcode */\n  int
      p1,             /* The P1 operand */\n  int p2,             /* The P2 operand
      */\n  int p3,             /* The P3 operand */\n  const u8 *zP4,      /* The
      P4 operand */\n  int p4type          /* P4 operand type */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeGetOp
      Src: /src/nss/lib/sqlite/sqlite3.c:76788,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pParse
    argTypes:
    - Parse*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76790
      start: 76785
    functionDepth: 1
    functionLinenumber: 76785
    functionLinenumberEnd: 76790
    functionName: sqlite3VdbeExplainParent
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeGetOp
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeExplainParent(Parse *pParse)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - z1
    - z2
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76800
      start: 76797
    functionDepth: 0
    functionLinenumber: 76797
    functionLinenumberEnd: 76800
    functionName: sqlite3ExplainBreakpoint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExplainBreakpoint(const char *z1, const char
      *z2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/nss/lib/sqlite/sqlite3.c:76820,1
    - Dst: sqlite3VMPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:76821,1
    - Dst: va_end
      Src: /src/nss/lib/sqlite/sqlite3.c:76822,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:76825,1
    - Dst: sqlite3ExplainBreakpoint
      Src: /src/nss/lib/sqlite/sqlite3.c:76827,1
    - Dst: sqlite3VdbeGetOp
      Src: /src/nss/lib/sqlite/sqlite3.c:76827,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - pParse
    - bPush
    - zFmt
    argTypes:
    - Parse*
    - u8
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76832
      start: 76809
    functionDepth: 12
    functionLinenumber: 76809
    functionLinenumberEnd: 76832
    functionName: sqlite3VdbeExplain
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ExplainBreakpoint
    - va_end
    - sqlite3VdbeAddOp4
    - va_start
    - sqlite3VMPrintf
    - sqlite3VdbeGetOp
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeExplain(Parse *pParse, u8 bPush, const char
      *zFmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExplainBreakpoint
      Src: /src/nss/lib/sqlite/sqlite3.c:76838,1
    - Dst: sqlite3VdbeExplainParent
      Src: /src/nss/lib/sqlite/sqlite3.c:76839,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pParse
    argTypes:
    - Parse*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76840
      start: 76837
    functionDepth: 2
    functionLinenumber: 76837
    functionLinenumberEnd: 76840
    functionName: sqlite3VdbeExplainPop
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeExplainParent
    - sqlite3ExplainBreakpoint
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeExplainPop(Parse *pParse)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:76853,1
    - Dst: sqlite3VdbeUsesBtree
      Src: /src/nss/lib/sqlite/sqlite3.c:76854,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - p
    - iDb
    - zWhere
    argTypes:
    - Vdbe*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76855
      start: 76851
    functionDepth: 12
    functionLinenumber: 76851
    functionLinenumberEnd: 76855
    functionName: sqlite3VdbeAddParseSchemaOp
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeAddOp4
    - sqlite3VdbeUsesBtree
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeAddParseSchemaOp(Vdbe *p, int iDb, char *zWhere)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:76868,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - p
    - op
    - p1
    - p2
    - p3
    - p4
    argTypes:
    - Vdbe*
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76875
      start: 76860
    functionDepth: 11
    functionLinenumber: 76860
    functionLinenumberEnd: 76875
    functionName: sqlite3VdbeAddOp4Int
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeAddOp3
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3VdbeAddOp4Int(\n  Vdbe *p,            /* Add
      the opcode to this VM */\n  int op,             /* The new opcode */\n  int
      p1,             /* The P1 operand */\n  int p2,             /* The P2 operand
      */\n  int p3,             /* The P3 operand */\n  int p4              /* The
      P4 operand as an integer */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:76880,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - v
    - regYield
    argTypes:
    - Vdbe*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76890
      start: 76879
    functionDepth: 12
    functionLinenumber: 76879
    functionLinenumberEnd: 76890
    functionName: sqlite3VdbeEndCoroutine
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeAddOp1
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeEndCoroutine(Vdbe *v, int regYield)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pParse
    argTypes:
    - Parse*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76919
      start: 76917
    functionDepth: 0
    functionLinenumber: 76917
    functionLinenumberEnd: 76919
    functionName: sqlite3VdbeMakeLabel
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeMakeLabel(Parse *pParse)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbReallocOrFree
      Src: /src/nss/lib/sqlite/sqlite3.c:76928,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - p
    - v
    - j
    argTypes:
    - Parse*
    - Vdbe*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76940
      start: 76926
    functionDepth: 9
    functionLinenumber: 76926
    functionLinenumberEnd: 76940
    functionName: resizeResolveLabel
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbReallocOrFree
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: SQLITE_NOINLINE resizeResolveLabel(Parse *p, Vdbe *v, int j)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ADDR
      Src: /src/nss/lib/sqlite/sqlite3.c:76943,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:76944,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:76945,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:76946,1
    - Dst: printf
      Src: /src/nss/lib/sqlite/sqlite3.c:76949,1
    - Dst: resizeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:76953,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:76955,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - v
    - x
    argTypes:
    - Vdbe*
    - int
    assertStmts:
    - condition: ( v->magic==VDBE_MAGIC_INIT )
      pos:
        line_end: 76943
        line_start: 76943
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( j<-p->nLabel )
      pos:
        line_end: 76944
        line_start: 76944
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( j>=0 )
      pos:
        line_end: 76945
        line_start: 76945
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->aLabel[j]==(-1) )
      pos:
        line_end: 76954
        line_start: 76954
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 76958
      start: 76941
    functionDepth: 10
    functionLinenumber: 76941
    functionLinenumberEnd: 76958
    functionName: sqlite3VdbeResolveLabel
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - resizeResolveLabel
    - ADDR
    - printf
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeResolveLabel(Vdbe *v, int x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - Vdbe*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76965
      start: 76963
    functionDepth: 0
    functionLinenumber: 76963
    functionLinenumberEnd: 76965
    functionName: sqlite3VdbeRunOnlyOnce
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeRunOnlyOnce(Vdbe *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - Vdbe*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76972
      start: 76970
    functionDepth: 0
    functionLinenumber: 76970
    functionLinenumberEnd: 76972
    functionName: sqlite3VdbeReusable
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeReusable(Vdbe *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:77015,1
    - Dst: sqlite3DbReallocOrFree
      Src: /src/nss/lib/sqlite/sqlite3.c:77031,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - p
    argTypes:
    - VdbeOpIter*
    assertStmts:
    - condition: ( p->iAddr<nOp )
      pos:
        line_end: 77014
        line_start: 77014
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 77042
      start: 77000
    functionDepth: 9
    functionLinenumber: 77000
    functionLinenumberEnd: 77042
    functionName: opIterNext
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3DbReallocOrFree
    linkageType: ''
    returnType: Op
    signature: Op *opIterNext(VdbeOpIter *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:77074,1
    - Dst: opIterNext
      Src: /src/nss/lib/sqlite/sqlite3.c:77077,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:77104,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 24
    argCount: 2
    argNames:
    - v
    - mayAbort
    argTypes:
    - Vdbe*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77114
      start: 77066
    functionDepth: 10
    functionLinenumber: 77066
    functionLinenumberEnd: 77114
    functionName: sqlite3VdbeAssertMayAbort
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3DbFree
    - opIterNext
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeAssertMayAbort(Vdbe *v, int mayAbort)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 2
    argNames:
    - p
    - pC
    argTypes:
    - Vdbe*
    - VdbeCursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77130
      start: 77122
    functionDepth: 0
    functionLinenumber: 77122
    functionLinenumberEnd: 77130
    functionName: sqlite3VdbeIncrWriteCounter
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeIncrWriteCounter(Vdbe *p, VdbeCursor *pC)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:77139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - Vdbe*
    assertStmts:
    - condition: ( p->nWrite==0 || p->usesStmtJournal )
      pos:
        line_end: 77138
        line_start: 77138
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 77140
      start: 77138
    functionDepth: 0
    functionLinenumber: 77138
    functionLinenumberEnd: 77140
    functionName: sqlite3VdbeAssertAbortable
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeAssertAbortable(Vdbe *p)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:77209,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:77218,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:77228,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:77229,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:77240,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:77241,1
    - Dst: ADDR
      Src: /src/nss/lib/sqlite/sqlite3.c:77241,1
    - Dst: ADDR
      Src: /src/nss/lib/sqlite/sqlite3.c:77242,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:77250,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:77255,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:77259,1
    - Dst: DbMaskAllZero
      Src: /src/nss/lib/sqlite/sqlite3.c:77259,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 68
    argCount: 2
    argNames:
    - p
    - pMaxFuncArgs
    argTypes:
    - Vdbe*
    - int*
    assertStmts:
    - condition: ( pOp->p2>=0 )
      pos:
        line_end: 77208
        line_start: 77208
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pOp - p->aOp) >= 3 )
      pos:
        line_end: 77227
        line_start: 77227
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p2>=0 )
      pos:
        line_end: 77217
        line_start: 77217
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp[-1].opcode==OP_Integer )
      pos:
        line_end: 77228
        line_start: 77228
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (sqlite3OpcodeProperty[pOp->opcode] & OPFLG_JUMP)!=0 )
      pos:
        line_end: 77239
        line_start: 77239
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( ADDR(pOp->p2)<-pParse->nLabel )
      pos:
        line_end: 77240
        line_start: 77240
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (sqlite3OpcodeProperty[pOp->opcode]&OPFLG_JUMP)==0 || pOp->p2>=0)
      pos:
        line_end: 77249
        line_start: 77249
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->bIsReader!=0 || DbMaskAllZero(p->btreeMask) )
      pos:
        line_end: 77258
        line_start: 77258
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 77260
      start: 77164
    functionDepth: 6
    functionLinenumber: 77164
    functionLinenumberEnd: 77260
    functionName: resolveP2Values
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3DbFree
    - DbMaskAllZero
    - ADDR
    linkageType: ''
    returnType: void
    signature: void resolveP2Values(Vdbe *p, int *pMaxFuncArgs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:77266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - Vdbe*
    assertStmts:
    - condition: ( p->magic==VDBE_MAGIC_INIT )
      pos:
        line_end: 77265
        line_start: 77265
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 77268
      start: 77265
    functionDepth: 0
    functionLinenumber: 77265
    functionLinenumberEnd: 77268
    functionName: sqlite3VdbeCurrentAddr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeCurrentAddr(Vdbe *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:77280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - N
    argTypes:
    - Vdbe*
    - int
    assertStmts:
    - condition: ( p->nOp + N <= p->nOpAlloc )
      pos:
        line_end: 77279
        line_start: 77279
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 77281
      start: 77279
    functionDepth: 0
    functionLinenumber: 77279
    functionLinenumberEnd: 77281
    functionName: sqlite3VdbeVerifyNoMallocRequired
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeVerifyNoMallocRequired(Vdbe *p, int N)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:77295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - Vdbe*
    assertStmts:
    - condition: ( p->aOp[i].opcode!=OP_ResultRow )
      pos:
        line_end: 77294
        line_start: 77294
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 77297
      start: 77292
    functionDepth: 0
    functionLinenumber: 77292
    functionLinenumberEnd: 77297
    functionName: sqlite3VdbeVerifyNoResultRow
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeVerifyNoResultRow(Vdbe *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeAddOp0
      Src: /src/nss/lib/sqlite/sqlite3.c:77307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - p
    - onError
    argTypes:
    - Vdbe*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77308
      start: 77306
    functionDepth: 12
    functionLinenumber: 77306
    functionLinenumberEnd: 77308
    functionName: sqlite3VdbeVerifyAbortable
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeAddOp0
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeVerifyAbortable(Vdbe *p, int onError)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:77324,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:77327,1
    - Dst: DbMaskAllZero
      Src: /src/nss/lib/sqlite/sqlite3.c:77327,1
    - Dst: resolveP2Values
      Src: /src/nss/lib/sqlite/sqlite3.c:77329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - p
    - pnOp
    - pnMaxArg
    argTypes:
    - Vdbe*
    - int*
    - int*
    assertStmts:
    - condition: ( aOp && !p->db->mallocFailed )
      pos:
        line_end: 77323
        line_start: 77323
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( DbMaskAllZero(p->btreeMask) )
      pos:
        line_end: 77326
        line_start: 77326
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 77333
      start: 77322
    functionDepth: 7
    functionLinenumber: 77322
    functionLinenumberEnd: 77333
    functionName: sqlite3VdbeTakeOpArray
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - resolveP2Values
    - DbMaskAllZero
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3VdbeTakeOpArray(Vdbe *p, int *pnOp, int *pnMaxArg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:77350,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:77351,1
    - Dst: growOpArray
      Src: /src/nss/lib/sqlite/sqlite3.c:77352,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:77360,1
    - Dst: sqlite3VdbePrintOp
      Src: /src/nss/lib/sqlite/sqlite3.c:77378,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 4
    argNames:
    - p
    - nOp
    - aOp
    - iLineno
    argTypes:
    - Vdbe*
    - int
    - VdbeOpList*
    - int
    assertStmts:
    - condition: ( nOp>0 )
      pos:
        line_end: 77349
        line_start: 77349
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->magic==VDBE_MAGIC_INIT )
      pos:
        line_end: 77350
        line_start: 77350
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( aOp->p2>=0 )
      pos:
        line_end: 77359
        line_start: 77359
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 77384
      start: 77342
    functionDepth: 9
    functionLinenumber: 77342
    functionLinenumberEnd: 77384
    functionName: sqlite3VdbeAddOpList
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - growOpArray
    - sqlite3VdbePrintOp
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3VdbeAddOpList(\n  Vdbe *p,                     /*
      Add opcodes to the prepared statement */\n  int nOp,                     /*
      Number of opcodes to add */\n  VdbeOpList const *aOp,       /* The opcodes to
      be added */\n  int iLineno                  /* Source-file line number of first
      opcode */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbRealloc
      Src: /src/nss/lib/sqlite/sqlite3.c:77400,1
    - Dst: sqlite3DbStrDup
      Src: /src/nss/lib/sqlite/sqlite3.c:77407,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 6
    argNames:
    - p
    - addrExplain
    - addrLoop
    - addrVisit
    - nEst
    - zName
    argTypes:
    - Vdbe*
    - int
    - int
    - int
    - LogEst
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77410
      start: 77390
    functionDepth: 8
    functionLinenumber: 77390
    functionLinenumberEnd: 77410
    functionName: sqlite3VdbeScanStatus
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbStrDup
    - sqlite3DbRealloc
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3VdbeScanStatus(\n  Vdbe *p,                        /*
      VM to add scanstatus() to */\n  int addrExplain,                /* Address of
      OP_Explain (or 0) */\n  int addrLoop,                   /* Address of loop counter
      */ \n  int addrVisit,                  /* Address of rows visited counter */\n
      \ LogEst nEst,                    /* Estimated number of output rows */\n  const
      char *zName               /* Name of table or index being scanned */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeGetOp
      Src: /src/nss/lib/sqlite/sqlite3.c:77419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - addr
    - iNewOpcode
    argTypes:
    - Vdbe*
    - u32
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77420
      start: 77418
    functionDepth: 1
    functionLinenumber: 77418
    functionLinenumberEnd: 77420
    functionName: sqlite3VdbeChangeOpcode
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeGetOp
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeChangeOpcode(Vdbe *p, u32 addr, u8 iNewOpcode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeGetOp
      Src: /src/nss/lib/sqlite/sqlite3.c:77422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - addr
    - val
    argTypes:
    - Vdbe*
    - u32
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77423
      start: 77421
    functionDepth: 1
    functionLinenumber: 77421
    functionLinenumberEnd: 77423
    functionName: sqlite3VdbeChangeP1
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeGetOp
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeChangeP1(Vdbe *p, u32 addr, int val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeGetOp
      Src: /src/nss/lib/sqlite/sqlite3.c:77425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - addr
    - val
    argTypes:
    - Vdbe*
    - u32
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77426
      start: 77424
    functionDepth: 1
    functionLinenumber: 77424
    functionLinenumberEnd: 77426
    functionName: sqlite3VdbeChangeP2
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeGetOp
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeChangeP2(Vdbe *p, u32 addr, int val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeGetOp
      Src: /src/nss/lib/sqlite/sqlite3.c:77428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - addr
    - val
    argTypes:
    - Vdbe*
    - u32
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77429
      start: 77427
    functionDepth: 1
    functionLinenumber: 77427
    functionLinenumberEnd: 77429
    functionName: sqlite3VdbeChangeP3
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeGetOp
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeChangeP3(Vdbe *p, u32 addr, int val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:77431,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - p
    - p5
    argTypes:
    - Vdbe*
    - u16
    assertStmts:
    - condition: ( p->nOp>0 || p->db->mallocFailed )
      pos:
        line_end: 77430
        line_start: 77430
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 77433
      start: 77430
    functionDepth: 0
    functionLinenumber: 77430
    functionLinenumberEnd: 77433
    functionName: sqlite3VdbeChangeP5
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeChangeP5(Vdbe *p, u16 p5)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeChangeP2
      Src: /src/nss/lib/sqlite/sqlite3.c:77440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - addr
    argTypes:
    - Vdbe*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77441
      start: 77439
    functionDepth: 2
    functionLinenumber: 77439
    functionLinenumberEnd: 77441
    functionName: sqlite3VdbeJumpHere
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeChangeP2
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeJumpHere(Vdbe *p, int addr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbFreeNN
      Src: /src/nss/lib/sqlite/sqlite3.c:77450,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - db
    - pDef
    argTypes:
    - sqlite3*
    - FuncDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77452
      start: 77448
    functionDepth: 5
    functionLinenumber: 77448
    functionLinenumberEnd: 77452
    functionName: freeEphemeralFunction
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbFreeNN
    linkageType: ''
    returnType: void
    signature: void freeEphemeralFunction(sqlite3 *db, FuncDef *pDef)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:77460,1
    - Dst: sqlite3DbFreeNN
      Src: /src/nss/lib/sqlite/sqlite3.c:77461,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - Mem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77462
      start: 77459
    functionDepth: 6
    functionLinenumber: 77459
    functionLinenumberEnd: 77462
    functionName: freeP4Mem
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbFree
    - sqlite3DbFreeNN
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: SQLITE_NOINLINE freeP4Mem(sqlite3 *db, Mem *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: freeEphemeralFunction
      Src: /src/nss/lib/sqlite/sqlite3.c:77464,1
    - Dst: sqlite3DbFreeNN
      Src: /src/nss/lib/sqlite/sqlite3.c:77465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - sqlite3_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77466
      start: 77463
    functionDepth: 6
    functionLinenumber: 77463
    functionLinenumberEnd: 77466
    functionName: freeP4FuncCtx
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbFreeNN
    - freeEphemeralFunction
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: SQLITE_NOINLINE freeP4FuncCtx(sqlite3 *db, sqlite3_context *p)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:77468,1
    - Dst: freeP4FuncCtx
      Src: /src/nss/lib/sqlite/sqlite3.c:77471,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:77479,1
    - Dst: sqlite3KeyInfoUnref
      Src: /src/nss/lib/sqlite/sqlite3.c:77483,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:77488,1
    - Dst: freeEphemeralFunction
      Src: /src/nss/lib/sqlite/sqlite3.c:77493,1
    - Dst: sqlite3ValueFree
      Src: /src/nss/lib/sqlite/sqlite3.c:77498,1
    - Dst: freeP4Mem
      Src: /src/nss/lib/sqlite/sqlite3.c:77500,1
    - Dst: sqlite3VtabUnlock
      Src: /src/nss/lib/sqlite/sqlite3.c:77505,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 3
    argNames:
    - db
    - p4type
    - p4
    argTypes:
    - sqlite3*
    - int
    - void*
    assertStmts:
    - condition: ( db )
      pos:
        line_end: 77467
        line_start: 77467
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 77509
      start: 77467
    functionDepth: 10
    functionLinenumber: 77467
    functionLinenumberEnd: 77509
    functionName: freeP4
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbFree
    - freeP4FuncCtx
    - sqlite3ExprDelete
    - assert
    - sqlite3KeyInfoUnref
    - sqlite3VtabUnlock
    - sqlite3ValueFree
    - freeP4Mem
    - freeEphemeralFunction
    linkageType: ''
    returnType: void
    signature: void freeP4(sqlite3 *db, int p4type, void *p4)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: freeP4
      Src: /src/nss/lib/sqlite/sqlite3.c:77520,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:77522,1
    - Dst: sqlite3DbFreeNN
      Src: /src/nss/lib/sqlite/sqlite3.c:77525,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - db
    - aOp
    - nOp
    argTypes:
    - sqlite3*
    - Op*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77527
      start: 77516
    functionDepth: 11
    functionLinenumber: 77516
    functionLinenumberEnd: 77527
    functionName: vdbeFreeOpArray
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbFree
    - freeP4
    - sqlite3DbFreeNN
    linkageType: ''
    returnType: void
    signature: void vdbeFreeOpArray(sqlite3 *db, Op *aOp, int nOp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pVdbe
    - p
    argTypes:
    - Vdbe*
    - SubProgram*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77537
      start: 77534
    functionDepth: 0
    functionLinenumber: 77534
    functionLinenumberEnd: 77537
    functionName: sqlite3VdbeLinkSubProgram
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeLinkSubProgram(Vdbe *pVdbe, SubProgram *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:77545,1
    - Dst: freeP4
      Src: /src/nss/lib/sqlite/sqlite3.c:77547,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - p
    - addr
    argTypes:
    - Vdbe*
    - int
    assertStmts:
    - condition: ( addr>=0 && addr<p->nOp )
      pos:
        line_end: 77544
        line_start: 77544
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 77552
      start: 77542
    functionDepth: 11
    functionLinenumber: 77542
    functionLinenumberEnd: 77552
    functionName: sqlite3VdbeChangeToNoop
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - freeP4
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeChangeToNoop(Vdbe *p, int addr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeChangeToNoop
      Src: /src/nss/lib/sqlite/sqlite3.c:77560,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - p
    - op
    argTypes:
    - Vdbe*
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77564
      start: 77558
    functionDepth: 12
    functionLinenumber: 77558
    functionLinenumberEnd: 77564
    functionName: sqlite3VdbeDeletePriorOpcode
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeChangeToNoop
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeDeletePriorOpcode(Vdbe *p, u8 op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: freeP4
      Src: /src/nss/lib/sqlite/sqlite3.c:77590,1
    - Dst: sqlite3VdbeChangeP4
      Src: /src/nss/lib/sqlite/sqlite3.c:77595,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:77597,1
    - Dst: sqlite3DbStrNDup
      Src: /src/nss/lib/sqlite/sqlite3.c:77598,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - p
    - pOp
    - zP4
    - n
    argTypes:
    - Vdbe*
    - Op*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77601
      start: 77583
    functionDepth: 11
    functionLinenumber: 77583
    functionLinenumberEnd: 77601
    functionName: SQLITE_NOINLINE::vdbeChangeP4Full
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbStrNDup
    - sqlite3VdbeChangeP4
    - freeP4
    - sqlite3Strlen30
    linkageType: ''
    returnType: void
    signature: "void SQLITE_NOINLINE vdbeChangeP4Full(\n  Vdbe *p,\n  Op *pOp,\n  const
      char *zP4,\n  int n\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:77605,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:77607,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:77608,1
    - Dst: freeP4
      Src: /src/nss/lib/sqlite/sqlite3.c:77610,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:77613,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:77614,1
    - Dst: vdbeChangeP4Full
      Src: /src/nss/lib/sqlite/sqlite3.c:77620,1
    - Dst: SQLITE_PTR_TO_INT
      Src: /src/nss/lib/sqlite/sqlite3.c:77626,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:77629,1
    - Dst: sqlite3VtabLock
      Src: /src/nss/lib/sqlite/sqlite3.c:77632,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 4
    argNames:
    - p
    - addr
    - zP4
    - n
    argTypes:
    - Vdbe*
    - int
    - char*
    - int
    assertStmts:
    - condition: ( p!=0 )
      pos:
        line_end: 77604
        line_start: 77604
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->magic==VDBE_MAGIC_INIT )
      pos:
        line_end: 77606
        line_start: 77606
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->nOp>0 )
      pos:
        line_end: 77612
        line_start: 77612
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->aOp!=0 || db->mallocFailed )
      pos:
        line_end: 77607
        line_start: 77607
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( addr<p->nOp )
      pos:
        line_end: 77613
        line_start: 77613
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( n<0 )
      pos:
        line_end: 77628
        line_start: 77628
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 77634
      start: 77602
    functionDepth: 11
    functionLinenumber: 77602
    functionLinenumberEnd: 77634
    functionName: sqlite3VdbeChangeP4
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - SQLITE_PTR_TO_INT
    - assert
    - freeP4
    - vdbeChangeP4Full
    - sqlite3VtabLock
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeChangeP4(Vdbe *p, int addr, const char *zP4,
      int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:77647,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:77648,1
    - Dst: freeP4
      Src: /src/nss/lib/sqlite/sqlite3.c:77650,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:77652,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:77653,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:77655,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - p
    - pP4
    - n
    argTypes:
    - Vdbe*
    - void*
    - int
    assertStmts:
    - condition: ( n!=P4_INT32 && n!=P4_VTAB )
      pos:
        line_end: 77646
        line_start: 77646
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pP4!=0 )
      pos:
        line_end: 77651
        line_start: 77651
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( n<=0 )
      pos:
        line_end: 77647
        line_start: 77647
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->nOp>0 )
      pos:
        line_end: 77652
        line_start: 77652
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p4type==P4_NOTUSED )
      pos:
        line_end: 77654
        line_start: 77654
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 77659
      start: 77645
    functionDepth: 11
    functionLinenumber: 77645
    functionLinenumberEnd: 77659
    functionName: sqlite3VdbeAppendP4
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - freeP4
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeAppendP4(Vdbe *p, void *pP4, int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:77668,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:77669,1
    - Dst: sqlite3KeyInfoOfIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:77670,1
    - Dst: sqlite3VdbeAppendP4
      Src: /src/nss/lib/sqlite/sqlite3.c:77671,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pParse
    - pIdx
    argTypes:
    - Parse*
    - Index*
    assertStmts:
    - condition: ( v!=0 )
      pos:
        line_end: 77667
        line_start: 77667
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIdx!=0 )
      pos:
        line_end: 77668
        line_start: 77668
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 77672
      start: 77665
    functionDepth: 12
    functionLinenumber: 77665
    functionLinenumberEnd: 77672
    functionName: sqlite3VdbeSetP4KeyInfo
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3VdbeAppendP4
    - sqlite3KeyInfoOfIndex
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeSetP4KeyInfo(Parse *pParse, Index *pIdx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:77682,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:77683,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:77685,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:77686,1
    - Dst: sqlite3VMPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:77687,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - p
    - zFormat
    - ap
    argTypes:
    - Vdbe*
    - char*
    - va_list
    assertStmts:
    - condition: ( p->nOp>0 || p->aOp==0 )
      pos:
        line_end: 77681
        line_start: 77681
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->aOp )
      pos:
        line_end: 77684
        line_start: 77684
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->aOp==0 || p->aOp[p->nOp-1].zComment==0 || p->db->mallocFailed
        )
      pos:
        line_end: 77682
        line_start: 77682
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 77689
      start: 77681
    functionDepth: 9
    functionLinenumber: 77681
    functionLinenumberEnd: 77689
    functionName: vdbeVComment
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3DbFree
    - sqlite3VMPrintf
    linkageType: ''
    returnType: void
    signature: void vdbeVComment(Vdbe *p, const char *zFormat, va_list ap)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/nss/lib/sqlite/sqlite3.c:77693,1
    - Dst: vdbeVComment
      Src: /src/nss/lib/sqlite/sqlite3.c:77694,1
    - Dst: va_end
      Src: /src/nss/lib/sqlite/sqlite3.c:77695,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - p
    - zFormat
    argTypes:
    - Vdbe*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77697
      start: 77690
    functionDepth: 10
    functionLinenumber: 77690
    functionLinenumberEnd: 77697
    functionName: sqlite3VdbeComment
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - va_end
    - vdbeVComment
    - va_start
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeComment(Vdbe *p, const char *zFormat, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeAddOp0
      Src: /src/nss/lib/sqlite/sqlite3.c:77701,1
    - Dst: va_start
      Src: /src/nss/lib/sqlite/sqlite3.c:77702,1
    - Dst: vdbeVComment
      Src: /src/nss/lib/sqlite/sqlite3.c:77703,1
    - Dst: va_end
      Src: /src/nss/lib/sqlite/sqlite3.c:77704,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - p
    - zFormat
    argTypes:
    - Vdbe*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77706
      start: 77698
    functionDepth: 12
    functionLinenumber: 77698
    functionLinenumberEnd: 77706
    functionName: sqlite3VdbeNoopComment
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeAddOp0
    - va_end
    - vdbeVComment
    - va_start
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeNoopComment(Vdbe *p, const char *zFormat,
      ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeGetOp
      Src: /src/nss/lib/sqlite/sqlite3.c:77714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - v
    - iLine
    argTypes:
    - Vdbe*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77715
      start: 77713
    functionDepth: 1
    functionLinenumber: 77713
    functionLinenumberEnd: 77715
    functionName: sqlite3VdbeSetLineNumber
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeGetOp
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeSetLineNumber(Vdbe *v, int iLine)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:77735,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:77739,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - p
    - addr
    argTypes:
    - Vdbe*
    - int
    assertStmts:
    - condition: ( p->magic==VDBE_MAGIC_INIT )
      pos:
        line_end: 77734
        line_start: 77734
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (addr>=0 && addr<p->nOp) || p->db->mallocFailed )
      pos:
        line_end: 77738
        line_start: 77738
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 77745
      start: 77731
    functionDepth: 0
    functionLinenumber: 77731
    functionLinenumberEnd: 77745
    functionName: sqlite3VdbeGetOp
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 7
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3VdbeGetOp(Vdbe *p, int addr)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - c
    - pOp
    argTypes:
    - char
    - Op*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77758
      start: 77752
    functionDepth: 0
    functionLinenumber: 77752
    functionLinenumberEnd: 77758
    functionName: translateP
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int translateP(char c, const Op *pOp)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3OpcodeName
      Src: /src/nss/lib/sqlite/sqlite3.c:77784,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:77785,1
    - Dst: strncmp
      Src: /src/nss/lib/sqlite/sqlite3.c:77790,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:77792,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:77794,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:77802,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:77804,1
    - Dst: translateP
      Src: /src/nss/lib/sqlite/sqlite3.c:77807,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:77809,1
    - Dst: strncmp
      Src: /src/nss/lib/sqlite/sqlite3.c:77810,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:77812,1
    - Dst: translateP
      Src: /src/nss/lib/sqlite/sqlite3.c:77813,1
    - Dst: strncmp
      Src: /src/nss/lib/sqlite/sqlite3.c:77814,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:77819,1
    - Dst: strncmp
      Src: /src/nss/lib/sqlite/sqlite3.c:77821,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:77825,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:77831,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:77832,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:77836,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:77837,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 60
    argCount: 4
    argNames:
    - pOp
    - zP4
    - zTemp
    - nTemp
    argTypes:
    - Op*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77843
      start: 77773
    functionDepth: 10
    functionLinenumber: 77773
    functionLinenumberEnd: 77843
    functionName: displayComment
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - translateP
    - strncmp
    - sqlite3OpcodeName
    - sqlite3Strlen30
    - sqlite3_snprintf
    linkageType: ''
    returnType: int
    signature: "int displayComment(\n  const Op *pOp,     /* The opcode to be commented
      */\n  const char *zP4,   /* Previously obtained value for P4 */\n  char *zTemp,
      \      /* Write result here */\n  int nTemp          /* Space available in zTemp[]
      */\n)"
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:77855,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:77858,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:77861,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:77864,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:77869,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:77871,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:77903,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:77908,1
    - Dst: displayP4Expr
      Src: /src/nss/lib/sqlite/sqlite3.c:77909,1
    - Dst: sqlite3_str_append
      Src: /src/nss/lib/sqlite/sqlite3.c:77911,1
    - Dst: displayP4Expr
      Src: /src/nss/lib/sqlite/sqlite3.c:77912,1
    - Dst: sqlite3_str_append
      Src: /src/nss/lib/sqlite/sqlite3.c:77914,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 114
    argCount: 2
    argNames:
    - p
    - pExpr
    argTypes:
    - StrAccum*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77916
      start: 77851
    functionDepth: 9
    functionLinenumber: 77851
    functionLinenumberEnd: 77916
    functionName: displayP4Expr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_str_append
    - sqlite3_str_appendf
    - displayP4Expr
    linkageType: ''
    returnType: void
    signature: void displayP4Expr(StrAccum *p, Expr *pExpr)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:77928,1
    - Dst: sqlite3StrAccumInit
      Src: /src/nss/lib/sqlite/sqlite3.c:77929,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:77934,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:77935,1
    - Dst: strcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:77939,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:77940,1
    - Dst: sqlite3_str_append
      Src: /src/nss/lib/sqlite/sqlite3.c:77943,1
    - Dst: displayP4Expr
      Src: /src/nss/lib/sqlite/sqlite3.c:77948,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:77954,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:77959,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:77965,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:77970,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:77974,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:77978,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:77986,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:77988,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:77992,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:78000,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:78010,1
    - Dst: sqlite3_str_append
      Src: /src/nss/lib/sqlite/sqlite3.c:78013,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:78017,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:78026,1
    - Dst: sqlite3StrAccumFinish
      Src: /src/nss/lib/sqlite/sqlite3.c:78037,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:78038,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 97
    argCount: 3
    argNames:
    - pOp
    - zTemp
    - nTemp
    argTypes:
    - Op*
    - char*
    - int
    assertStmts:
    - condition: ( nTemp>=20 )
      pos:
        line_end: 77927
        line_start: 77927
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( zP4!=0 )
      pos:
        line_end: 78037
        line_start: 78037
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pMem->flags & MEM_Blob )
      pos:
        line_end: 77991
        line_start: 77991
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pKeyInfo->aSortOrder!=0 )
      pos:
        line_end: 77933
        line_start: 77933
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 78040
      start: 77925
    functionDepth: 10
    functionLinenumber: 77925
    functionLinenumberEnd: 78040
    functionName: displayP4
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_str_append
    - strcmp
    - sqlite3StrAccumInit
    - sqlite3StrAccumFinish
    - displayP4Expr
    - assert
    - sqlite3_str_appendf
    linkageType: ''
    returnType: char
    signature: char *displayP4(Op *pOp, char *zTemp, int nTemp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:78052,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:78053,1
    - Dst: DbMaskSet
      Src: /src/nss/lib/sqlite/sqlite3.c:78054,1
    - Dst: sqlite3BtreeSharable
      Src: /src/nss/lib/sqlite/sqlite3.c:78055,1
    - Dst: DbMaskSet
      Src: /src/nss/lib/sqlite/sqlite3.c:78056,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - p
    - i
    argTypes:
    - Vdbe*
    - int
    assertStmts:
    - condition: ( i>=0 && i<p->db->nDb && i<(int)sizeof(yDbMask)*8 )
      pos:
        line_end: 78051
        line_start: 78051
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( i<(int)sizeof(p->btreeMask)*8 )
      pos:
        line_end: 78052
        line_start: 78052
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 78058
      start: 78051
    functionDepth: 1
    functionLinenumber: 78051
    functionLinenumberEnd: 78058
    functionName: sqlite3VdbeUsesBtree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - sqlite3BtreeSharable
    - DbMaskSet
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeUsesBtree(Vdbe *p, int i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DbMaskAllZero
      Src: /src/nss/lib/sqlite/sqlite3.c:78087,1
    - Dst: DbMaskTest
      Src: /src/nss/lib/sqlite/sqlite3.c:78092,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:78092,1
    - Dst: sqlite3BtreeEnter
      Src: /src/nss/lib/sqlite/sqlite3.c:78093,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - p
    argTypes:
    - Vdbe*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78096
      start: 78082
    functionDepth: 1
    functionLinenumber: 78082
    functionLinenumberEnd: 78096
    functionName: sqlite3VdbeEnter
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ALWAYS
    - DbMaskAllZero
    - sqlite3BtreeEnter
    - DbMaskTest
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeEnter(Vdbe *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DbMaskTest
      Src: /src/nss/lib/sqlite/sqlite3.c:78112,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:78112,1
    - Dst: sqlite3BtreeLeave
      Src: /src/nss/lib/sqlite/sqlite3.c:78113,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - Vdbe*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78116
      start: 78103
    functionDepth: 2
    functionLinenumber: 78103
    functionLinenumberEnd: 78116
    functionName: vdbeLeave
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ALWAYS
    - sqlite3BtreeLeave
    - DbMaskTest
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: SQLITE_NOINLINE vdbeLeave(Vdbe *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DbMaskAllZero
      Src: /src/nss/lib/sqlite/sqlite3.c:78118,1
    - Dst: vdbeLeave
      Src: /src/nss/lib/sqlite/sqlite3.c:78119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - Vdbe*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78120
      start: 78117
    functionDepth: 3
    functionLinenumber: 78117
    functionLinenumberEnd: 78120
    functionName: sqlite3VdbeLeave
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - DbMaskAllZero
    - vdbeLeave
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeLeave(Vdbe *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: displayP4
      Src: /src/nss/lib/sqlite/sqlite3.c:78133,1
    - Dst: displayComment
      Src: /src/nss/lib/sqlite/sqlite3.c:78135,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:78142,1
    - Dst: sqlite3OpcodeName
      Src: /src/nss/lib/sqlite/sqlite3.c:78143,1
    - Dst: fflush
      Src: /src/nss/lib/sqlite/sqlite3.c:78146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - pOut
    - pc
    - pOp
    argTypes:
    - FILE*
    - int
    - VdbeOp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78147
      start: 78127
    functionDepth: 11
    functionLinenumber: 78127
    functionLinenumberEnd: 78147
    functionName: sqlite3VdbePrintOp
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - displayComment
    - displayP4
    - fprintf
    - sqlite3OpcodeName
    - fflush
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbePrintOp(FILE *pOut, int pc, VdbeOp *pOp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - p
    - N
    - db
    - flags
    argTypes:
    - Mem*
    - int
    - sqlite3*
    - u16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78163
      start: 78153
    functionDepth: 0
    functionLinenumber: 78153
    functionLinenumberEnd: 78163
    functionName: initMemArray
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void initMemArray(Mem *p, int N, sqlite3 *db, u16 flags)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:78174,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:78179,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:78180,1
    - Dst: sqlite3VdbeCheckMemInvariants
      Src: /src/nss/lib/sqlite/sqlite3.c:78180,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:78194,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:78195,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:78196,1
    - Dst: sqlite3VdbeMemRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:78198,1
    - Dst: sqlite3DbFreeNN
      Src: /src/nss/lib/sqlite/sqlite3.c:78200,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 2
    argNames:
    - p
    - N
    argTypes:
    - Mem*
    - int
    assertStmts:
    - condition: ( sqlite3VdbeCheckMemInvariants(p) )
      pos:
        line_end: 78179
        line_start: 78179
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (&p[1])==pEnd || p[0].db==p[1].db )
      pos:
        line_end: 78178
        line_start: 78178
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 78207
      start: 78168
    functionDepth: 9
    functionLinenumber: 78168
    functionLinenumberEnd: 78207
    functionName: releaseMemArray
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbFree
    - sqlite3VdbeCheckMemInvariants
    - sqlite3VdbeMemRelease
    - assert
    - sqlite3DbFreeNN
    - testcase
    linkageType: ''
    returnType: void
    signature: void releaseMemArray(Mem *p, int N)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pFrame
    argTypes:
    - VdbeFrame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78219
      start: 78216
    functionDepth: 0
    functionLinenumber: 78216
    functionLinenumberEnd: 78219
    functionName: sqlite3VdbeFrameIsValid
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeFrameIsValid(VdbeFrame *pFrame)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:78232,1
    - Dst: sqlite3VdbeFrameIsValid
      Src: /src/nss/lib/sqlite/sqlite3.c:78232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pArg
    argTypes:
    - void*
    assertStmts:
    - condition: ( sqlite3VdbeFrameIsValid(pFrame) )
      pos:
        line_end: 78231
        line_start: 78231
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 78235
      start: 78230
    functionDepth: 1
    functionLinenumber: 78230
    functionLinenumberEnd: 78235
    functionName: sqlite3VdbeFrameMemDel
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3VdbeFrameIsValid
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeFrameMemDel(void *pArg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VdbeFrameMem
      Src: /src/nss/lib/sqlite/sqlite3.c:78244,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:78246,1
    - Dst: sqlite3VdbeFrameIsValid
      Src: /src/nss/lib/sqlite/sqlite3.c:78246,1
    - Dst: sqlite3VdbeFreeCursor
      Src: /src/nss/lib/sqlite/sqlite3.c:78248,1
    - Dst: releaseMemArray
      Src: /src/nss/lib/sqlite/sqlite3.c:78250,1
    - Dst: sqlite3VdbeDeleteAuxData
      Src: /src/nss/lib/sqlite/sqlite3.c:78251,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:78252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - VdbeFrame*
    assertStmts:
    - condition: ( sqlite3VdbeFrameIsValid(p) )
      pos:
        line_end: 78245
        line_start: 78245
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 78253
      start: 78242
    functionDepth: 10
    functionLinenumber: 78242
    functionLinenumberEnd: 78253
    functionName: sqlite3VdbeFrameDelete
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeDeleteAuxData
    - sqlite3DbFree
    - VdbeFrameMem
    - assert
    - releaseMemArray
    - sqlite3VdbeFreeCursor
    - sqlite3VdbeFrameIsValid
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeFrameDelete(VdbeFrame *p)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:78288,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:78289,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:78290,1
    - Dst: releaseMemArray
      Src: /src/nss/lib/sqlite/sqlite3.c:78296,1
    - Dst: sqlite3OomFault
      Src: /src/nss/lib/sqlite/sqlite3.c:78302,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:78319,1
    - Dst: sqlite3VdbeMemGrow
      Src: /src/nss/lib/sqlite/sqlite3.c:78366,1
    - Dst: sqlite3VdbeError
      Src: /src/nss/lib/sqlite/sqlite3.c:78387,1
    - Dst: sqlite3ErrStr
      Src: /src/nss/lib/sqlite/sqlite3.c:78387,1
    - Dst: sqlite3OpcodeName
      Src: /src/nss/lib/sqlite/sqlite3.c:78396,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:78397,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:78398,1
    - Dst: sqlite3VdbeMemClearAndResize
      Src: /src/nss/lib/sqlite/sqlite3.c:78415,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:78416,1
    - Dst: displayP4
      Src: /src/nss/lib/sqlite/sqlite3.c:78420,1
    - Dst: sqlite3VdbeMemSetStr
      Src: /src/nss/lib/sqlite/sqlite3.c:78423,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:78425,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:78426,1
    - Dst: sqlite3VdbeMemClearAndResize
      Src: /src/nss/lib/sqlite/sqlite3.c:78432,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:78433,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:78438,1
    - Dst: sqlite3VdbeMemClearAndResize
      Src: /src/nss/lib/sqlite/sqlite3.c:78443,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:78444,1
    - Dst: displayComment
      Src: /src/nss/lib/sqlite/sqlite3.c:78448,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 130
    argCount: 1
    argNames:
    - p
    argTypes:
    - Vdbe*
    assertStmts:
    - condition: ( p->explain )
      pos:
        line_end: 78287
        line_start: 78287
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->magic==VDBE_MAGIC_RUN )
      pos:
        line_end: 78288
        line_start: 78288
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->rc==SQLITE_OK || p->rc==SQLITE_BUSY || p->rc==SQLITE_NOMEM )
      pos:
        line_end: 78289
        line_start: 78289
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->db->mallocFailed )
      pos:
        line_end: 78443
        line_start: 78443
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->nMem>9 )
      pos:
        line_end: 78318
        line_start: 78318
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pMem->z!=0 )
      pos:
        line_end: 78396
        line_start: 78396
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->db->mallocFailed )
      pos:
        line_end: 78415
        line_start: 78415
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pMem->z!=0 )
      pos:
        line_end: 78424
        line_start: 78424
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->db->mallocFailed )
      pos:
        line_end: 78432
        line_start: 78432
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 78462
      start: 78274
    functionDepth: 12
    functionLinenumber: 78274
    functionLinenumberEnd: 78462
    functionName: sqlite3VdbeList
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeError
    - displayComment
    - sqlite3ErrStr
    - sqlite3VdbeMemSetStr
    - displayP4
    - assert
    - sqlite3OomFault
    - sqlite3VdbeMemClearAndResize
    - releaseMemArray
    - sqlite3OpcodeName
    - sqlite3Strlen30
    - sqlite3VdbeMemGrow
    - sqlite3_snprintf
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3VdbeList(\n  Vdbe *p                   /* The
      VDBE */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Isspace
      Src: /src/nss/lib/sqlite/sqlite3.c:78477,1
    - Dst: printf
      Src: /src/nss/lib/sqlite/sqlite3.c:78480,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - p
    argTypes:
    - Vdbe*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78481
      start: 78469
    functionDepth: 1
    functionLinenumber: 78469
    functionLinenumberEnd: 78481
    functionName: sqlite3VdbePrintSql
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Isspace
    - printf
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbePrintSql(Vdbe *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:78497,1
    - Dst: sqlite3Isspace
      Src: /src/nss/lib/sqlite/sqlite3.c:78498,1
    - Dst: sqlite3Isspace
      Src: /src/nss/lib/sqlite/sqlite3.c:78500,1
    - Dst: sqlite3IoTrace
      Src: /src/nss/lib/sqlite/sqlite3.c:78509,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - p
    argTypes:
    - Vdbe*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78511
      start: 78488
    functionDepth: 10
    functionLinenumber: 78488
    functionLinenumberEnd: 78511
    functionName: sqlite3VdbeIOTraceSql
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3IoTrace
    - sqlite3Isspace
    - sqlite3_snprintf
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeIOTraceSql(Vdbe *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:78543,1
    - Dst: EIGHT_BYTE_ALIGNMENT
      Src: /src/nss/lib/sqlite/sqlite3.c:78543,1
    - Dst: ROUND8
      Src: /src/nss/lib/sqlite/sqlite3.c:78545,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:78553,1
    - Dst: EIGHT_BYTE_ALIGNMENT
      Src: /src/nss/lib/sqlite/sqlite3.c:78553,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - p
    - pBuf
    - nByte
    argTypes:
    - struct ReusableSpace*
    - void*
    - sqlite3_int64
    assertStmts:
    - condition: ( EIGHT_BYTE_ALIGNMENT(p->pSpace) )
      pos:
        line_end: 78542
        line_start: 78542
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( EIGHT_BYTE_ALIGNMENT(pBuf) )
      pos:
        line_end: 78552
        line_start: 78552
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 78555
      start: 78538
    functionDepth: 1
    functionLinenumber: 78538
    functionLinenumberEnd: 78555
    functionName: allocSpace
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - EIGHT_BYTE_ALIGNMENT
    - ROUND8
    linkageType: ''
    returnType: void
    signature: "void *allocSpace(\n  struct ReusableSpace *p,  /* Bulk memory available
      for allocation */\n  void *pBuf,               /* Pointer to a prior allocation
      */\n  sqlite3_int64 nByte       /* Bytes of memory needed */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:78565,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:78566,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:78570,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:78577,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - p
    argTypes:
    - Vdbe*
    assertStmts:
    - condition: ( p!=0 )
      pos:
        line_end: 78564
        line_start: 78564
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->magic==VDBE_MAGIC_INIT || p->magic==VDBE_MAGIC_RESET )
      pos:
        line_end: 78565
        line_start: 78565
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->nOp>0 )
      pos:
        line_end: 78569
        line_start: 78569
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->aMem[i].db==p->db )
      pos:
        line_end: 78576
        line_start: 78576
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 78594
      start: 78561
    functionDepth: 0
    functionLinenumber: 78561
    functionLinenumberEnd: 78594
    functionName: sqlite3VdbeRewind
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeRewind(Vdbe *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:78626,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:78627,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:78628,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:78629,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:78630,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:78632,1
    - Dst: ROUND8
      Src: /src/nss/lib/sqlite/sqlite3.c:78650,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:78652,1
    - Dst: EIGHT_BYTE_ALIGNMENT
      Src: /src/nss/lib/sqlite/sqlite3.c:78652,1
    - Dst: ROUNDDOWN8
      Src: /src/nss/lib/sqlite/sqlite3.c:78653,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:78654,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:78655,1
    - Dst: EIGHT_BYTE_ALIGNMENT
      Src: /src/nss/lib/sqlite/sqlite3.c:78655,1
    - Dst: resolveP2Values
      Src: /src/nss/lib/sqlite/sqlite3.c:78657,1
    - Dst: allocSpace
      Src: /src/nss/lib/sqlite/sqlite3.c:78675,1
    - Dst: allocSpace
      Src: /src/nss/lib/sqlite/sqlite3.c:78676,1
    - Dst: allocSpace
      Src: /src/nss/lib/sqlite/sqlite3.c:78677,1
    - Dst: allocSpace
      Src: /src/nss/lib/sqlite/sqlite3.c:78678,1
    - Dst: allocSpace
      Src: /src/nss/lib/sqlite/sqlite3.c:78680,1
    - Dst: sqlite3DbMallocRawNN
      Src: /src/nss/lib/sqlite/sqlite3.c:78683,1
    - Dst: allocSpace
      Src: /src/nss/lib/sqlite/sqlite3.c:78686,1
    - Dst: allocSpace
      Src: /src/nss/lib/sqlite/sqlite3.c:78687,1
    - Dst: allocSpace
      Src: /src/nss/lib/sqlite/sqlite3.c:78688,1
    - Dst: allocSpace
      Src: /src/nss/lib/sqlite/sqlite3.c:78689,1
    - Dst: allocSpace
      Src: /src/nss/lib/sqlite/sqlite3.c:78691,1
    - Dst: initMemArray
      Src: /src/nss/lib/sqlite/sqlite3.c:78706,1
    - Dst: initMemArray
      Src: /src/nss/lib/sqlite/sqlite3.c:78708,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:78709,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:78711,1
    - Dst: sqlite3VdbeRewind
      Src: /src/nss/lib/sqlite/sqlite3.c:78714,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 61
    argCount: 2
    argNames:
    - p
    - pParse
    argTypes:
    - Vdbe*
    - Parse*
    assertStmts:
    - condition: ( p!=0 )
      pos:
        line_end: 78625
        line_start: 78625
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pParse==p->pParse )
      pos:
        line_end: 78629
        line_start: 78629
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( EIGHT_BYTE_ALIGNMENT(x.pSpace) )
      pos:
        line_end: 78651
        line_start: 78651
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( EIGHT_BYTE_ALIGNMENT(&x.pSpace[x.nFree]) )
      pos:
        line_end: 78654
        line_start: 78654
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( x.nFree>=0 )
      pos:
        line_end: 78653
        line_start: 78653
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pParse!=0 )
      pos:
        line_end: 78627
        line_start: 78627
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->magic==VDBE_MAGIC_INIT )
      pos:
        line_end: 78628
        line_start: 78628
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->nOp>0 )
      pos:
        line_end: 78626
        line_start: 78626
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( db->mallocFailed==0 )
      pos:
        line_end: 78631
        line_start: 78631
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 78715
      start: 78614
    functionDepth: 7
    functionLinenumber: 78614
    functionLinenumberEnd: 78715
    functionName: sqlite3VdbeMakeReady
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ROUND8
    - sqlite3DbMallocRawNN
    - initMemArray
    - resolveP2Values
    - allocSpace
    - sqlite3VdbeRewind
    - assert
    - ROUNDDOWN8
    - memset
    - EIGHT_BYTE_ALIGNMENT
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3VdbeMakeReady(\n  Vdbe *p,                       /*
      The VDBE */\n  Parse *pParse                  /* Parsing context */\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:78725,1
    - Dst: sqlite3VdbeSorterClose
      Src: /src/nss/lib/sqlite/sqlite3.c:78728,1
    - Dst: sqlite3BtreeClose
      Src: /src/nss/lib/sqlite/sqlite3.c:78733,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:78737,1
    - Dst: sqlite3BtreeCloseCursor
      Src: /src/nss/lib/sqlite/sqlite3.c:78738,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:78746,1
    - Dst: sqlite3_module*::xClose
      Src: /src/nss/lib/sqlite/sqlite3.c:78748,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - p
    - pCx
    argTypes:
    - Vdbe*
    - VdbeCursor*
    assertStmts:
    - condition: ( pCx->pBtx==0 || pCx->eCurType==CURTYPE_BTREE )
      pos:
        line_end: 78724
        line_start: 78724
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCx->uc.pCursor!=0 )
      pos:
        line_end: 78736
        line_start: 78736
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pVCur->pVtab->nRef>0 )
      pos:
        line_end: 78745
        line_start: 78745
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 78753
      start: 78721
    functionDepth: 14
    functionLinenumber: 78721
    functionLinenumberEnd: 78753
    functionName: sqlite3VdbeFreeCursor
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_module*::xClose
    - sqlite3BtreeCloseCursor
    - sqlite3BtreeClose
    - assert
    - sqlite3VdbeSorterClose
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeFreeCursor(Vdbe *p, VdbeCursor *pCx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeFreeCursor
      Src: /src/nss/lib/sqlite/sqlite3.c:78764,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - Vdbe*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78769
      start: 78758
    functionDepth: 15
    functionLinenumber: 78758
    functionLinenumberEnd: 78769
    functionName: closeCursorsInFrame
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeFreeCursor
    linkageType: ''
    returnType: void
    signature: void closeCursorsInFrame(Vdbe *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: closeCursorsInFrame
      Src: /src/nss/lib/sqlite/sqlite3.c:78778,1
    - Dst: sqlite3VdbeDeleteAuxData
      Src: /src/nss/lib/sqlite/sqlite3.c:78791,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - pFrame
    argTypes:
    - VdbeFrame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78795
      start: 78776
    functionDepth: 16
    functionLinenumber: 78776
    functionLinenumberEnd: 78795
    functionName: sqlite3VdbeFrameRestore
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - closeCursorsInFrame
    - sqlite3VdbeDeleteAuxData
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeFrameRestore(VdbeFrame *pFrame)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeFrameRestore
      Src: /src/nss/lib/sqlite/sqlite3.c:78809,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:78813,1
    - Dst: closeCursorsInFrame
      Src: /src/nss/lib/sqlite/sqlite3.c:78814,1
    - Dst: releaseMemArray
      Src: /src/nss/lib/sqlite/sqlite3.c:78816,1
    - Dst: sqlite3VdbeFrameDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:78821,1
    - Dst: sqlite3VdbeDeleteAuxData
      Src: /src/nss/lib/sqlite/sqlite3.c:78825,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:78826,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - p
    argTypes:
    - Vdbe*
    assertStmts:
    - condition: ( p->nFrame==0 )
      pos:
        line_end: 78812
        line_start: 78812
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->pAuxData==0 )
      pos:
        line_end: 78825
        line_start: 78825
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 78827
      start: 78805
    functionDepth: 17
    functionLinenumber: 78805
    functionLinenumberEnd: 78827
    functionName: closeAllCursors
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeDeleteAuxData
    - closeCursorsInFrame
    - assert
    - sqlite3VdbeFrameDelete
    - releaseMemArray
    - sqlite3VdbeFrameRestore
    linkageType: ''
    returnType: void
    signature: void closeAllCursors(Vdbe *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: releaseMemArray
      Src: /src/nss/lib/sqlite/sqlite3.c:78840,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:78841,1
    - Dst: sqlite3DbMallocRawNN
      Src: /src/nss/lib/sqlite/sqlite3.c:78845,1
    - Dst: initMemArray
      Src: /src/nss/lib/sqlite/sqlite3.c:78847,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - p
    - nResColumn
    argTypes:
    - Vdbe*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78848
      start: 78835
    functionDepth: 10
    functionLinenumber: 78835
    functionLinenumberEnd: 78848
    functionName: sqlite3VdbeSetNumCols
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbMallocRawNN
    - sqlite3DbFree
    - releaseMemArray
    - initMemArray
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeSetNumCols(Vdbe *p, int nResColumn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:78869,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:78870,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:78872,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:78875,1
    - Dst: sqlite3VdbeMemSetStr
      Src: /src/nss/lib/sqlite/sqlite3.c:78877,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:78878,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - p
    - idx
    - var
    - zName
    argTypes:
    - Vdbe*
    - int
    - int
    - char*
    assertStmts:
    - condition: ( idx<p->nResColumn )
      pos:
        line_end: 78868
        line_start: 78868
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !zName || xDel!=SQLITE_DYNAMIC )
      pos:
        line_end: 78871
        line_start: 78871
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( var<COLNAME_N )
      pos:
        line_end: 78869
        line_start: 78869
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->aColName!=0 )
      pos:
        line_end: 78874
        line_start: 78874
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc!=0 || !zName || (pColName->flags&MEM_Term)!=0 )
      pos:
        line_end: 78877
        line_start: 78877
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 78880
      start: 78860
    functionDepth: 12
    functionLinenumber: 78860
    functionLinenumberEnd: 78880
    functionName: sqlite3VdbeSetColName
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3VdbeMemSetStr
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3VdbeSetColName(\n  Vdbe *p,                         /*
      Vdbe being configured */\n  int idx,                         /* Index of column
      zName applies to */\n  int var,                         /* One of the COLNAME_*
      constants */\n  const char *zName,               /* Pointer to buffer containing
      name */\n  void (*xDel)(void*)              /* Memory management strategy for
      zName */\n)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:78900,1
    - Dst: sqlite3VtabSync
      Src: /src/nss/lib/sqlite/sqlite3.c:78909,1
    - Dst: sqlite3BtreeIsInTrans
      Src: /src/nss/lib/sqlite/sqlite3.c:78919,1
    - Dst: sqlite3BtreeEnter
      Src: /src/nss/lib/sqlite/sqlite3.c:78933,1
    - Dst: sqlite3BtreePager
      Src: /src/nss/lib/sqlite/sqlite3.c:78934,1
    - Dst: sqlite3PagerGetJournalMode
      Src: /src/nss/lib/sqlite/sqlite3.c:78936,1
    - Dst: sqlite3PagerIsMemdb
      Src: /src/nss/lib/sqlite/sqlite3.c:78937,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:78939,1
    - Dst: sqlite3PagerExclusiveLock
      Src: /src/nss/lib/sqlite/sqlite3.c:78942,1
    - Dst: sqlite3BtreeLeave
      Src: /src/nss/lib/sqlite/sqlite3.c:78943,1
    - Dst: sqlite3*::xCommitCallback
      Src: /src/nss/lib/sqlite/sqlite3.c:78952,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:78967,1
    - Dst: sqlite3BtreeGetFilename
      Src: /src/nss/lib/sqlite/sqlite3.c:78967,1
    - Dst: sqlite3BtreeCommitPhaseOne
      Src: /src/nss/lib/sqlite/sqlite3.c:78973,1
    - Dst: sqlite3BtreeCommitPhaseTwo
      Src: /src/nss/lib/sqlite/sqlite3.c:78985,1
    - Dst: sqlite3VtabCommit
      Src: /src/nss/lib/sqlite/sqlite3.c:78989,1
    - Dst: sqlite3BtreeGetFilename
      Src: /src/nss/lib/sqlite/sqlite3.c:79001,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:79009,1
    - Dst: sqlite3MPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:79010,1
    - Dst: sqlite3_log
      Src: /src/nss/lib/sqlite/sqlite3.c:79016,1
    - Dst: sqlite3OsDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:79017,1
    - Dst: sqlite3_log
      Src: /src/nss/lib/sqlite/sqlite3.c:79020,1
    - Dst: sqlite3_randomness
      Src: /src/nss/lib/sqlite/sqlite3.c:79024,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:79025,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:79029,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:79029,1
    - Dst: sqlite3FileSuffix3
      Src: /src/nss/lib/sqlite/sqlite3.c:79030,1
    - Dst: sqlite3OsAccess
      Src: /src/nss/lib/sqlite/sqlite3.c:79031,1
    - Dst: sqlite3OsOpenMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:79035,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:79041,1
    - Dst: sqlite3BtreeIsInTrans
      Src: /src/nss/lib/sqlite/sqlite3.c:79053,1
    - Dst: sqlite3BtreeGetJournalname
      Src: /src/nss/lib/sqlite/sqlite3.c:79054,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:79058,1
    - Dst: sqlite3OsWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:79059,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:79059,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:79060,1
    - Dst: sqlite3OsCloseFree
      Src: /src/nss/lib/sqlite/sqlite3.c:79062,1
    - Dst: sqlite3OsDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:79063,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:79064,1
    - Dst: sqlite3OsDeviceCharacteristics
      Src: /src/nss/lib/sqlite/sqlite3.c:79073,1
    - Dst: sqlite3OsSync
      Src: /src/nss/lib/sqlite/sqlite3.c:79074,1
    - Dst: sqlite3OsCloseFree
      Src: /src/nss/lib/sqlite/sqlite3.c:79076,1
    - Dst: sqlite3OsDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:79077,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:79078,1
    - Dst: sqlite3BtreeCommitPhaseOne
      Src: /src/nss/lib/sqlite/sqlite3.c:79095,1
    - Dst: sqlite3OsCloseFree
      Src: /src/nss/lib/sqlite/sqlite3.c:79098,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:79099,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:79101,1
    - Dst: sqlite3OsDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:79109,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:79110,1
    - Dst: disable_simulated_io_errors
      Src: /src/nss/lib/sqlite/sqlite3.c:79123,1
    - Dst: sqlite3BeginBenignMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:79124,1
    - Dst: sqlite3BtreeCommitPhaseTwo
      Src: /src/nss/lib/sqlite/sqlite3.c:79128,1
    - Dst: sqlite3EndBenignMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:79131,1
    - Dst: enable_simulated_io_errors
      Src: /src/nss/lib/sqlite/sqlite3.c:79132,1
    - Dst: sqlite3VtabCommit
      Src: /src/nss/lib/sqlite/sqlite3.c:79134,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 120
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - Vdbe*
    assertStmts:
    - condition: ( i!=1 )
      pos:
        line_end: 78938
        line_start: 78938
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( zMaster[sqlite3Strlen30(zMaster)-3]=='9' )
      pos:
        line_end: 79028
        line_start: 79028
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc!=SQLITE_BUSY )
      pos:
        line_end: 79098
        line_start: 79098
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( zFile[0]!=0 )
      pos:
        line_end: 79057
        line_start: 79057
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 79139
      start: 78888
    functionDepth: 21
    functionLinenumber: 78888
    functionLinenumberEnd: 79139
    functionName: vdbeCommit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsDeviceCharacteristics
    - sqlite3BtreeCommitPhaseOne
    - sqlite3EndBenignMalloc
    - sqlite3PagerIsMemdb
    - sqlite3BtreeIsInTrans
    - UNUSED_PARAMETER
    - sqlite3BtreeLeave
    - sqlite3BtreeGetFilename
    - sqlite3OsSync
    - sqlite3_log
    - sqlite3BeginBenignMalloc
    - sqlite3BtreeGetJournalname
    - sqlite3VtabSync
    - assert
    - sqlite3BtreeEnter
    - sqlite3OsAccess
    - sqlite3BtreeCommitPhaseTwo
    - sqlite3PagerExclusiveLock
    - sqlite3BtreePager
    - sqlite3_snprintf
    - sqlite3OsWrite
    - sqlite3OsCloseFree
    - sqlite3DbFree
    - sqlite3_randomness
    - sqlite3*::xCommitCallback
    - sqlite3Strlen30
    - enable_simulated_io_errors
    - sqlite3MPrintf
    - sqlite3OsOpenMalloc
    - sqlite3VtabCommit
    - sqlite3PagerGetJournalMode
    - sqlite3OsDelete
    - disable_simulated_io_errors
    - sqlite3FileSuffix3
    linkageType: ''
    returnType: int
    signature: int vdbeCommit(sqlite3 *db, Vdbe *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_stmt_busy
      Src: /src/nss/lib/sqlite/sqlite3.c:79158,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:79165,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:79166,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:79167,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts:
    - condition: ( nWrite==db->nVdbeWrite )
      pos:
        line_end: 79165
        line_start: 79165
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nRead==db->nVdbeRead )
      pos:
        line_end: 79166
        line_start: 79166
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( cnt==db->nVdbeActive )
      pos:
        line_end: 79164
        line_start: 79164
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 79168
      start: 79151
    functionDepth: 1
    functionLinenumber: 79151
    functionLinenumberEnd: 79168
    functionName: checkActiveVdbeCnt
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_stmt_busy
    linkageType: ''
    returnType: void
    signature: void checkActiveVdbeCnt(sqlite3 *db)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:79189,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:79190,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:79191,1
    - Dst: sqlite3BtreeSavepoint
      Src: /src/nss/lib/sqlite/sqlite3.c:79198,1
    - Dst: sqlite3BtreeSavepoint
      Src: /src/nss/lib/sqlite/sqlite3.c:79201,1
    - Dst: sqlite3VtabSavepoint
      Src: /src/nss/lib/sqlite/sqlite3.c:79213,1
    - Dst: sqlite3VtabSavepoint
      Src: /src/nss/lib/sqlite/sqlite3.c:79216,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 2
    argNames:
    - p
    - eOp
    argTypes:
    - Vdbe*
    - int
    assertStmts:
    - condition: ( eOp==SAVEPOINT_ROLLBACK || eOp==SAVEPOINT_RELEASE)
      pos:
        line_end: 79188
        line_start: 79188
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( db->nStatement>0 )
      pos:
        line_end: 79189
        line_start: 79189
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->iStatement==(db->nStatement+db->nSavepoint) )
      pos:
        line_end: 79190
        line_start: 79190
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 79228
      start: 79183
    functionDepth: 16
    functionLinenumber: 79183
    functionLinenumberEnd: 79228
    functionName: vdbeCloseStatement
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3VtabSavepoint
    - sqlite3BtreeSavepoint
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: SQLITE_NOINLINE vdbeCloseStatement(Vdbe *p, int eOp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vdbeCloseStatement
      Src: /src/nss/lib/sqlite/sqlite3.c:79231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - p
    - eOp
    argTypes:
    - Vdbe*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79234
      start: 79229
    functionDepth: 17
    functionLinenumber: 79229
    functionLinenumberEnd: 79234
    functionName: sqlite3VdbeCloseStatement
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - vdbeCloseStatement
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeCloseStatement(Vdbe *p, int eOp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeError
      Src: /src/nss/lib/sqlite/sqlite3.c:79255,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - p
    - deferred
    argTypes:
    - Vdbe*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79259
      start: 79248
    functionDepth: 10
    functionLinenumber: 79248
    functionLinenumberEnd: 79259
    functionName: sqlite3VdbeCheckFk
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeError
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeCheckFk(Vdbe *p, int deferred)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: closeAllCursors
      Src: /src/nss/lib/sqlite/sqlite3.c:79301,1
    - Dst: checkActiveVdbeCnt
      Src: /src/nss/lib/sqlite/sqlite3.c:79302,1
    - Dst: sqlite3VdbeEnter
      Src: /src/nss/lib/sqlite/sqlite3.c:79312,1
    - Dst: sqlite3RollbackAll
      Src: /src/nss/lib/sqlite/sqlite3.c:79338,1
    - Dst: sqlite3CloseSavepoints
      Src: /src/nss/lib/sqlite/sqlite3.c:79339,1
    - Dst: sqlite3VdbeCheckFk
      Src: /src/nss/lib/sqlite/sqlite3.c:79348,1
    - Dst: sqlite3VtabInSync
      Src: /src/nss/lib/sqlite/sqlite3.c:79357,1
    - Dst: sqlite3VdbeCheckFk
      Src: /src/nss/lib/sqlite/sqlite3.c:79362,1
    - Dst: NEVER
      Src: /src/nss/lib/sqlite/sqlite3.c:79364,1
    - Dst: sqlite3VdbeLeave
      Src: /src/nss/lib/sqlite/sqlite3.c:79365,1
    - Dst: vdbeCommit
      Src: /src/nss/lib/sqlite/sqlite3.c:79374,1
    - Dst: sqlite3VdbeLeave
      Src: /src/nss/lib/sqlite/sqlite3.c:79377,1
    - Dst: sqlite3RollbackAll
      Src: /src/nss/lib/sqlite/sqlite3.c:79381,1
    - Dst: sqlite3CommitInternalChanges
      Src: /src/nss/lib/sqlite/sqlite3.c:79387,1
    - Dst: sqlite3RollbackAll
      Src: /src/nss/lib/sqlite/sqlite3.c:79390,1
    - Dst: sqlite3RollbackAll
      Src: /src/nss/lib/sqlite/sqlite3.c:79400,1
    - Dst: sqlite3CloseSavepoints
      Src: /src/nss/lib/sqlite/sqlite3.c:79401,1
    - Dst: sqlite3VdbeCloseStatement
      Src: /src/nss/lib/sqlite/sqlite3.c:79414,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:79418,1
    - Dst: sqlite3RollbackAll
      Src: /src/nss/lib/sqlite/sqlite3.c:79421,1
    - Dst: sqlite3CloseSavepoints
      Src: /src/nss/lib/sqlite/sqlite3.c:79422,1
    - Dst: sqlite3VdbeSetChanges
      Src: /src/nss/lib/sqlite/sqlite3.c:79433,1
    - Dst: sqlite3VdbeSetChanges
      Src: /src/nss/lib/sqlite/sqlite3.c:79435,1
    - Dst: sqlite3VdbeLeave
      Src: /src/nss/lib/sqlite/sqlite3.c:79441,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:79449,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:79450,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:79451,1
    - Dst: checkActiveVdbeCnt
      Src: /src/nss/lib/sqlite/sqlite3.c:79454,1
    - Dst: sqlite3ConnectionUnlocked
      Src: /src/nss/lib/sqlite/sqlite3.c:79464,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:79467,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 117
    argCount: 1
    argNames:
    - p
    argTypes:
    - Vdbe*
    assertStmts:
    - condition: ( db->nVdbeActive>=db->nVdbeRead )
      pos:
        line_end: 79448
        line_start: 79448
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( db->nVdbeActive>0 || db->autoCommit==0 || db->nStatement==0 )
      pos:
        line_end: 79466
        line_start: 79466
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( db->nVdbeRead>=db->nVdbeWrite )
      pos:
        line_end: 79449
        line_start: 79449
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( db->nVdbeWrite>=0 )
      pos:
        line_end: 79450
        line_start: 79450
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 79469
      start: 79275
    functionDepth: 22
    functionLinenumber: 79275
    functionLinenumberEnd: 79469
    functionName: sqlite3VdbeHalt
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - NEVER
    - sqlite3CommitInternalChanges
    - sqlite3ConnectionUnlocked
    - closeAllCursors
    - sqlite3DbFree
    - sqlite3CloseSavepoints
    - vdbeCommit
    - sqlite3VdbeCloseStatement
    - sqlite3VdbeSetChanges
    - sqlite3VtabInSync
    - sqlite3VdbeEnter
    - assert
    - sqlite3VdbeCheckFk
    - sqlite3RollbackAll
    - checkActiveVdbeCnt
    - sqlite3VdbeLeave
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeHalt(Vdbe *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - Vdbe*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79478
      start: 79476
    functionDepth: 0
    functionLinenumber: 79476
    functionLinenumberEnd: 79478
    functionName: sqlite3VdbeResetStepResult
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeResetStepResult(Vdbe *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BeginBenignMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:79493,1
    - Dst: sqlite3ValueNew
      Src: /src/nss/lib/sqlite/sqlite3.c:79494,1
    - Dst: sqlite3ValueSetStr
      Src: /src/nss/lib/sqlite/sqlite3.c:79495,1
    - Dst: sqlite3EndBenignMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:79496,1
    - Dst: sqlite3ValueSetNull
      Src: /src/nss/lib/sqlite/sqlite3.c:79499,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - p
    argTypes:
    - Vdbe*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79503
      start: 79488
    functionDepth: 13
    functionLinenumber: 79488
    functionLinenumberEnd: 79503
    functionName: sqlite3VdbeTransferError
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ValueSetNull
    - sqlite3EndBenignMalloc
    - sqlite3BeginBenignMalloc
    - sqlite3ValueSetStr
    - sqlite3ValueNew
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeTransferError(Vdbe *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeExpandSql
      Src: /src/nss/lib/sqlite/sqlite3.c:79512,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:79513,1
    - Dst: xSqllog
      Src: /src/nss/lib/sqlite/sqlite3.c:79515,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:79518,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - v
    argTypes:
    - Vdbe*
    assertStmts:
    - condition: ( v->db->init.busy==0 )
      pos:
        line_end: 79512
        line_start: 79512
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 79521
      start: 79510
    functionDepth: 6
    functionLinenumber: 79510
    functionLinenumberEnd: 79521
    functionName: vdbeInvokeSqllog
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3VdbeExpandSql
    - sqlite3DbFree
    - xSqllog
    linkageType: ''
    returnType: void
    signature: void vdbeInvokeSqllog(Vdbe *v)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeHalt
      Src: /src/nss/lib/sqlite/sqlite3.c:79549,1
    - Dst: vdbeInvokeSqllog
      Src: /src/nss/lib/sqlite/sqlite3.c:79557,1
    - Dst: sqlite3VdbeTransferError
      Src: /src/nss/lib/sqlite/sqlite3.c:79558,1
    - Dst: sqlite3ErrorWithMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:79565,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:79573,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:79575,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:79578,1
    - Dst: fopen
      Src: /src/nss/lib/sqlite/sqlite3.c:79589,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:79591,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:79593,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:79595,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:79598,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:79600,1
    - Dst: putc
      Src: /src/nss/lib/sqlite/sqlite3.c:79601,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:79604,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:79608,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:79613,1
    - Dst: sqlite3VdbePrintOp
      Src: /src/nss/lib/sqlite/sqlite3.c:79614,1
    - Dst: fclose
      Src: /src/nss/lib/sqlite/sqlite3.c:79616,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 50
    argCount: 1
    argNames:
    - p
    argTypes:
    - Vdbe*
    assertStmts:
    - condition: ( p->apCsr[i]==0 )
      pos:
        line_end: 79572
        line_start: 79572
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->aMem[i].flags==MEM_Undefined )
      pos:
        line_end: 79574
        line_start: 79574
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 79622
      start: 79537
    functionDepth: 23
    functionLinenumber: 79537
    functionLinenumberEnd: 79622
    functionName: sqlite3VdbeReset
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - vdbeInvokeSqllog
    - fclose
    - putc
    - sqlite3DbFree
    - sqlite3VdbeTransferError
    - assert
    - fprintf
    - fopen
    - sqlite3VdbePrintOp
    - sqlite3ErrorWithMsg
    - sqlite3VdbeHalt
    - sqlite3_snprintf
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeReset(Vdbe *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeReset
      Src: /src/nss/lib/sqlite/sqlite3.c:79631,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:79632,1
    - Dst: sqlite3VdbeDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:79634,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - Vdbe*
    assertStmts:
    - condition: ( (rc & p->db->errMask)==rc )
      pos:
        line_end: 79631
        line_start: 79631
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 79636
      start: 79628
    functionDepth: 24
    functionLinenumber: 79628
    functionLinenumberEnd: 79636
    functionName: sqlite3VdbeFinalize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3VdbeReset
    - sqlite3VdbeDelete
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeFinalize(Vdbe *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MASKBIT32
      Src: /src/nss/lib/sqlite/sqlite3.c:79660,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:79662,1
    - Dst: AuxData*::xDeleteAux
      Src: /src/nss/lib/sqlite/sqlite3.c:79664,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:79667,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 4
    argNames:
    - db
    - pp
    - iOp
    - mask
    argTypes:
    - sqlite3*
    - AuxData**
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79672
      start: 79654
    functionDepth: 6
    functionLinenumber: 79654
    functionLinenumberEnd: 79672
    functionName: sqlite3VdbeDeleteAuxData
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 3
    functionsReached:
    - MASKBIT32
    - sqlite3DbFree
    - AuxData*::xDeleteAux
    - testcase
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeDeleteAuxData(sqlite3 *db, AuxData **pp,
      int iOp, int mask)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:79684,1
    - Dst: releaseMemArray
      Src: /src/nss/lib/sqlite/sqlite3.c:79685,1
    - Dst: vdbeFreeOpArray
      Src: /src/nss/lib/sqlite/sqlite3.c:79688,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:79689,1
    - Dst: releaseMemArray
      Src: /src/nss/lib/sqlite/sqlite3.c:79692,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:79693,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:79694,1
    - Dst: vdbeFreeOpArray
      Src: /src/nss/lib/sqlite/sqlite3.c:79696,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:79697,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:79698,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:79700,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:79705,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:79713,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:79715,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - Vdbe*
    assertStmts:
    - condition: ( p->db==0 || p->db==db )
      pos:
        line_end: 79683
        line_start: 79683
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 79718
      start: 79682
    functionDepth: 12
    functionLinenumber: 79682
    functionLinenumberEnd: 79718
    functionName: sqlite3VdbeClearObject
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - sqlite3DbFree
    - releaseMemArray
    - vdbeFreeOpArray
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeClearObject(sqlite3 *db, Vdbe *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:79726,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:79728,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:79728,1
    - Dst: sqlite3VdbeClearObject
      Src: /src/nss/lib/sqlite/sqlite3.c:79729,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:79733,1
    - Dst: sqlite3DbFreeNN
      Src: /src/nss/lib/sqlite/sqlite3.c:79741,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - p
    argTypes:
    - Vdbe*
    assertStmts:
    - condition: ( p!=0 )
      pos:
        line_end: 79725
        line_start: 79725
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3_mutex_held(db->mutex) )
      pos:
        line_end: 79727
        line_start: 79727
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( db->pVdbe==p )
      pos:
        line_end: 79732
        line_start: 79732
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 79742
      start: 79723
    functionDepth: 13
    functionLinenumber: 79723
    functionLinenumberEnd: 79742
    functionName: sqlite3VdbeDelete
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - sqlite3_mutex_held
    - sqlite3VdbeClearObject
    - sqlite3DbFreeNN
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeDelete(Vdbe *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:79754,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:79755,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:79756,1
    - Dst: sqlite3BtreeMovetoUnpacked
      Src: /src/nss/lib/sqlite/sqlite3.c:79757,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - p
    argTypes:
    - VdbeCursor*
    assertStmts:
    - condition: ( p->deferredMoveto )
      pos:
        line_end: 79753
        line_start: 79753
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->isTable )
      pos:
        line_end: 79754
        line_start: 79754
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->eCurType==CURTYPE_BTREE )
      pos:
        line_end: 79755
        line_start: 79755
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 79766
      start: 79749
    functionDepth: 17
    functionLinenumber: 79749
    functionLinenumberEnd: 79766
    functionName: SQLITE_NOINLINE::handleDeferredMoveto
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3BtreeMovetoUnpacked
    linkageType: ''
    returnType: int
    signature: int SQLITE_NOINLINE handleDeferredMoveto(VdbeCursor *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:79777,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:79778,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:79779,1
    - Dst: sqlite3BtreeCursorHasMoved
      Src: /src/nss/lib/sqlite/sqlite3.c:79779,1
    - Dst: sqlite3BtreeCursorRestore
      Src: /src/nss/lib/sqlite/sqlite3.c:79780,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - VdbeCursor*
    assertStmts:
    - condition: ( p->eCurType==CURTYPE_BTREE )
      pos:
        line_end: 79776
        line_start: 79776
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3BtreeCursorHasMoved(p->uc.pCursor) )
      pos:
        line_end: 79778
        line_start: 79778
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->uc.pCursor!=0 )
      pos:
        line_end: 79777
        line_start: 79777
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 79784
      start: 79775
    functionDepth: 2
    functionLinenumber: 79775
    functionLinenumberEnd: 79784
    functionName: SQLITE_NOINLINE::handleMovedCursor
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3BtreeCursorHasMoved
    - sqlite3BtreeCursorRestore
    linkageType: ''
    returnType: int
    signature: int SQLITE_NOINLINE handleMovedCursor(VdbeCursor *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:79791,1
    - Dst: sqlite3BtreeCursorHasMoved
      Src: /src/nss/lib/sqlite/sqlite3.c:79792,1
    - Dst: handleMovedCursor
      Src: /src/nss/lib/sqlite/sqlite3.c:79793,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - VdbeCursor*
    assertStmts:
    - condition: ( p->eCurType==CURTYPE_BTREE )
      pos:
        line_end: 79790
        line_start: 79790
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 79796
      start: 79790
    functionDepth: 2
    functionLinenumber: 79790
    functionLinenumberEnd: 79796
    functionName: sqlite3VdbeCursorRestore
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3BtreeCursorHasMoved
    - handleMovedCursor
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeCursorRestore(VdbeCursor *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:79813,1
    - Dst: handleDeferredMoveto
      Src: /src/nss/lib/sqlite/sqlite3.c:79821,1
    - Dst: sqlite3BtreeCursorHasMoved
      Src: /src/nss/lib/sqlite/sqlite3.c:79823,1
    - Dst: handleMovedCursor
      Src: /src/nss/lib/sqlite/sqlite3.c:79824,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - pp
    - piCol
    argTypes:
    - VdbeCursor**
    - int*
    assertStmts:
    - condition: ( p->eCurType==CURTYPE_BTREE || p->eCurType==CURTYPE_PSEUDO )
      pos:
        line_end: 79812
        line_start: 79812
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 79827
      start: 79811
    functionDepth: 2
    functionLinenumber: 79811
    functionLinenumberEnd: 79827
    functionName: sqlite3VdbeCursorMoveto
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3BtreeCursorHasMoved
    - handleDeferredMoveto
    - handleMovedCursor
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeCursorMoveto(VdbeCursor **pp, int *piCol)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:79880,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:79890,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:79891,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:79926,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:79927,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 60
    argCount: 3
    argNames:
    - pMem
    - file_format
    - pLen
    argTypes:
    - Mem*
    - int
    - u32*
    assertStmts:
    - condition: ( pLen!=0 )
      pos:
        line_end: 79879
        line_start: 79879
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pMem->n>=0 )
      pos:
        line_end: 79926
        line_start: 79926
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pMem->db->mallocFailed || flags&(MEM_Str|MEM_Blob) )
      pos:
        line_end: 79925
        line_start: 79925
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 79934
      start: 79876
    functionDepth: 1
    functionLinenumber: 79876
    functionLinenumberEnd: 79934
    functionName: sqlite3VdbeSerialType
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - testcase
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeSerialType(Mem *pMem, int file_format, u32
      *pLen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:79963,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - serial_type
    argTypes:
    - u32
    assertStmts:
    - condition: "( serial_type<12 \n            || sqlite3SmallTypeSizes[serial_type]==(serial_type
        - 12)/2 )"
      pos:
        line_end: 79963
        line_start: 79962
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 79967
      start: 79959
    functionDepth: 0
    functionLinenumber: 79959
    functionLinenumberEnd: 79967
    functionName: sqlite3VdbeSerialTypeLen
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeSerialTypeLen(u32 serial_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:79969,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - serial_type
    argTypes:
    - u8
    assertStmts:
    - condition: ( serial_type<128 )
      pos:
        line_end: 79968
        line_start: 79968
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 79971
      start: 79968
    functionDepth: 0
    functionLinenumber: 79968
    functionLinenumberEnd: 79971
    functionName: sqlite3VdbeOneByteSerialTypeLen
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeOneByteSerialTypeLen(u8 serial_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - in
    argTypes:
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80020
      start: 80008
    functionDepth: 0
    functionLinenumber: 80008
    functionLinenumberEnd: 80020
    functionName: floatSwap
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: u64 floatSwap(u64 in)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80022
      start: 80021
    functionDepth: 0
    functionLinenumber: 80021
    functionLinenumberEnd: 80022
    functionName: swapMixedEndianFloat
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: swapMixedEndianFloat(X)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:80047,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:80048,1
    - Dst: swapMixedEndianFloat
      Src: /src/nss/lib/sqlite/sqlite3.c:80049,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:80054,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:80064,1
    - Dst: sqlite3VdbeSerialTypeLen
      Src: /src/nss/lib/sqlite/sqlite3.c:80065,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:80067,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - buf
    - pMem
    - serial_type
    argTypes:
    - u8*
    - Mem*
    - u32
    assertStmts:
    - condition: ( sizeof(v)==sizeof(pMem->u.r) )
      pos:
        line_end: 80046
        line_start: 80046
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( i>0 )
      pos:
        line_end: 80053
        line_start: 80053
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( pMem->n + ((pMem->flags & MEM_Zero)?pMem->u.nZero:0)\n             ==
        (int)sqlite3VdbeSerialTypeLen(serial_type) )"
      pos:
        line_end: 80064
        line_start: 80063
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 80073
      start: 80039
    functionDepth: 1
    functionLinenumber: 80039
    functionLinenumberEnd: 80073
    functionName: sqlite3VdbeSerialPut
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - memcpy
    - swapMixedEndianFloat
    - sqlite3VdbeSerialTypeLen
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeSerialPut(u8 *buf, Mem *pMem, u32 serial_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80079
      start: 80078
    functionDepth: 0
    functionLinenumber: 80078
    functionLinenumberEnd: 80079
    functionName: ONE_BYTE_INT
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ONE_BYTE_INT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80080
      start: 80079
    functionDepth: 0
    functionLinenumber: 80079
    functionLinenumberEnd: 80080
    functionName: TWO_BYTE_INT
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TWO_BYTE_INT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80081
      start: 80080
    functionDepth: 0
    functionLinenumber: 80080
    functionLinenumberEnd: 80081
    functionName: THREE_BYTE_INT
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: THREE_BYTE_INT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80082
      start: 80081
    functionDepth: 0
    functionLinenumber: 80081
    functionLinenumberEnd: 80082
    functionName: FOUR_BYTE_UINT
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FOUR_BYTE_UINT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80083
      start: 80082
    functionDepth: 0
    functionLinenumber: 80082
    functionLinenumberEnd: 80083
    functionName: FOUR_BYTE_INT
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FOUR_BYTE_INT(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: FOUR_BYTE_UINT
      Src: /src/nss/lib/sqlite/sqlite3.c:80098,1
    - Dst: FOUR_BYTE_UINT
      Src: /src/nss/lib/sqlite/sqlite3.c:80099,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:80106,1
    - Dst: swapMixedEndianFloat
      Src: /src/nss/lib/sqlite/sqlite3.c:80119,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:80120,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:80120,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:80122,1
    - Dst: swapMixedEndianFloat
      Src: /src/nss/lib/sqlite/sqlite3.c:80123,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:80124,1
    - Dst: IsNaN
      Src: /src/nss/lib/sqlite/sqlite3.c:80125,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - buf
    - serial_type
    - pMem
    argTypes:
    - unsigned char*
    - u32
    - Mem*
    assertStmts:
    - condition: ( sizeof(r1)==sizeof(t2) && memcmp(&r1, &t2, sizeof(r1))==0 )
      pos:
        line_end: 80119
        line_start: 80119
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sizeof(x)==8 && sizeof(pMem->u.r)==8 )
      pos:
        line_end: 80121
        line_start: 80121
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 80128
      start: 80093
    functionDepth: 1
    functionLinenumber: 80093
    functionLinenumberEnd: 80128
    functionName: serialGet
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - swapMixedEndianFloat
    - assert
    - IsNaN
    - memcmp
    - testcase
    - FOUR_BYTE_UINT
    linkageType: ''
    returnType: u32
    signature: "u32 serialGet(\n  const unsigned char *buf,     /* Buffer to deserialize
      from */\n  u32 serial_type,              /* Serial type to deserialize */\n
      \ Mem *pMem                     /* Memory cell to write value into */\n)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: ONE_BYTE_INT
      Src: /src/nss/lib/sqlite/sqlite3.c:80151,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:80153,1
    - Dst: TWO_BYTE_INT
      Src: /src/nss/lib/sqlite/sqlite3.c:80159,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:80161,1
    - Dst: THREE_BYTE_INT
      Src: /src/nss/lib/sqlite/sqlite3.c:80167,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:80169,1
    - Dst: FOUR_BYTE_INT
      Src: /src/nss/lib/sqlite/sqlite3.c:80175,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:80181,1
    - Dst: FOUR_BYTE_UINT
      Src: /src/nss/lib/sqlite/sqlite3.c:80187,1
    - Dst: TWO_BYTE_INT
      Src: /src/nss/lib/sqlite/sqlite3.c:80187,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:80189,1
    - Dst: serialGet
      Src: /src/nss/lib/sqlite/sqlite3.c:80196,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 63
    argCount: 3
    argNames:
    - buf
    - serial_type
    - pMem
    argTypes:
    - unsigned char*
    - u32
    - Mem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80219
      start: 80129
    functionDepth: 2
    functionLinenumber: 80129
    functionLinenumberEnd: 80219
    functionName: sqlite3VdbeSerialGet
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - TWO_BYTE_INT
    - ONE_BYTE_INT
    - serialGet
    - THREE_BYTE_INT
    - FOUR_BYTE_INT
    - testcase
    - FOUR_BYTE_UINT
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3VdbeSerialGet(\n  const unsigned char *buf,
      \    /* Buffer to deserialize from */\n  u32 serial_type,              /* Serial
      type to deserialize */\n  Mem *pMem                     /* Memory cell to write
      value into */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ROUND8
      Src: /src/nss/lib/sqlite/sqlite3.c:80239,1
    - Dst: sqlite3DbMallocRaw
      Src: /src/nss/lib/sqlite/sqlite3.c:80240,1
    - Dst: ROUND8
      Src: /src/nss/lib/sqlite/sqlite3.c:80242,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:80243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( pKeyInfo->aSortOrder!=0 )
      pos:
        line_end: 80242
        line_start: 80242
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 80247
      start: 80234
    functionDepth: 6
    functionLinenumber: 80234
    functionLinenumberEnd: 80247
    functionName: "UnpackedRecord *sqlite3VdbeAllocUnpackedRecord(\n  KeyInfo *pKeyInfo
      \              /* Description of the record */\n)"
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbMallocRaw
    - assert
    - ROUND8
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE UnpackedRecord *sqlite3VdbeAllocUnpackedRecord(\n  KeyInfo
      *pKeyInfo               /* Description of the record */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:80268,1
    - Dst: EIGHT_BYTE_ALIGNMENT
      Src: /src/nss/lib/sqlite/sqlite3.c:80268,1
    - Dst: getVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:80269,1
    - Dst: getVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:80275,1
    - Dst: sqlite3VdbeSerialGet
      Src: /src/nss/lib/sqlite/sqlite3.c:80281,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:80286,1
    - Dst: sqlite3VdbeMemSetNull
      Src: /src/nss/lib/sqlite/sqlite3.c:80290,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:80292,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - pKeyInfo
    - nKey
    - pKey
    - p
    argTypes:
    - KeyInfo*
    - int
    - void*
    - UnpackedRecord*
    assertStmts:
    - condition: ( EIGHT_BYTE_ALIGNMENT(pMem) )
      pos:
        line_end: 80267
        line_start: 80267
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( CORRUPT_DB )
      pos:
        line_end: 80285
        line_start: 80285
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( u<=pKeyInfo->nKeyField + 1 )
      pos:
        line_end: 80291
        line_start: 80291
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 80294
      start: 80254
    functionDepth: 8
    functionLinenumber: 80254
    functionLinenumberEnd: 80294
    functionName: sqlite3VdbeRecordUnpack
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3VdbeSerialGet
    - sqlite3VdbeMemSetNull
    - getVarint32
    - assert
    - EIGHT_BYTE_ALIGNMENT
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3VdbeRecordUnpack(\n  KeyInfo *pKeyInfo,     /*
      Information about the record format */\n  int nKey,              /* Size of
      the binary record */\n  const void *pKey,      /* The binary record */\n  UnpackedRecord
      *p      /* Populate this structure before returning. */\n)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: VVA_ONLY
      Src: /src/nss/lib/sqlite/sqlite3.c:80327,1
    - Dst: getVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:80338,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:80341,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:80342,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:80343,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:80344,1
    - Dst: getVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:80349,1
    - Dst: sqlite3VdbeSerialTypeLen
      Src: /src/nss/lib/sqlite/sqlite3.c:80358,1
    - Dst: sqlite3VdbeSerialGet
      Src: /src/nss/lib/sqlite/sqlite3.c:80365,1
    - Dst: sqlite3MemCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:80369,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:80372,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:80385,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 46
    argCount: 4
    argNames:
    - nKey1
    - pKey1
    - pPKey2
    - desiredResult
    argTypes:
    - int
    - void*
    - UnpackedRecord*
    - int
    assertStmts:
    - condition: ( pKeyInfo->aSortOrder!=0 )
      pos:
        line_end: 80341
        line_start: 80341
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pKeyInfo->nAllField>=pPKey2->nField || CORRUPT_DB )
      pos:
        line_end: 80340
        line_start: 80340
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pKeyInfo->nKeyField>0 )
      pos:
        line_end: 80342
        line_start: 80342
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( idx1<=szHdr1 || CORRUPT_DB )
      pos:
        line_end: 80343
        line_start: 80343
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( mem1.szMalloc==0 )
      pos:
        line_end: 80384
        line_start: 80384
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( mem1.szMalloc==0 )
      pos:
        line_end: 80371
        line_start: 80371
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 80399
      start: 80308
    functionDepth: 3
    functionLinenumber: 80308
    functionLinenumberEnd: 80399
    functionName: vdbeRecordCompareDebug
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3MemCompare
    - sqlite3VdbeSerialGet
    - VVA_ONLY
    - getVarint32
    - assert
    - sqlite3VdbeSerialTypeLen
    linkageType: ''
    returnType: int
    signature: "int vdbeRecordCompareDebug(\n  int nKey1, const void *pKey1, /* Left
      key */\n  const UnpackedRecord *pPKey2, /* Right key */\n  int desiredResult
      \            /* Correct answer */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:80425,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:80426,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:80427,1
    - Dst: getVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:80429,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:80432,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - nKey
    - pKey
    - pKeyInfo
    argTypes:
    - int
    - void*
    - KeyInfo*
    assertStmts:
    - condition: ( nField <= pKeyInfo->nAllField )
      pos:
        line_end: 80431
        line_start: 80431
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nKey>=0 )
      pos:
        line_end: 80425
        line_start: 80425
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( szHdr<=(u32)nKey )
      pos:
        line_end: 80426
        line_start: 80426
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 80433
      start: 80414
    functionDepth: 1
    functionLinenumber: 80414
    functionLinenumberEnd: 80433
    functionName: vdbeAssertFieldCountWithinLimits
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - getVarint32
    linkageType: ''
    returnType: void
    signature: "void vdbeAssertFieldCountWithinLimits(\n  int nKey, const void *pKey,
      \  /* The record to verify */ \n  const KeyInfo *pKeyInfo       /* Compare size
      with this KeyInfo */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CollSeq*::xCmp
      Src: /src/nss/lib/sqlite/sqlite3.c:80453,1
    - Dst: sqlite3VdbeMemInit
      Src: /src/nss/lib/sqlite/sqlite3.c:80459,1
    - Dst: sqlite3VdbeMemInit
      Src: /src/nss/lib/sqlite/sqlite3.c:80460,1
    - Dst: sqlite3VdbeMemShallowCopy
      Src: /src/nss/lib/sqlite/sqlite3.c:80461,1
    - Dst: sqlite3VdbeMemShallowCopy
      Src: /src/nss/lib/sqlite/sqlite3.c:80462,1
    - Dst: sqlite3ValueText
      Src: /src/nss/lib/sqlite/sqlite3.c:80463,1
    - Dst: sqlite3ValueText
      Src: /src/nss/lib/sqlite/sqlite3.c:80464,1
    - Dst: CollSeq*::xCmp
      Src: /src/nss/lib/sqlite/sqlite3.c:80469,1
    - Dst: sqlite3VdbeMemRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:80471,1
    - Dst: sqlite3VdbeMemRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:80472,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 4
    argNames:
    - pMem1
    - pMem2
    - pColl
    - prcErr
    argTypes:
    - Mem*
    - Mem*
    - CollSeq*
    - u8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80475
      start: 80444
    functionDepth: 14
    functionLinenumber: 80444
    functionLinenumberEnd: 80475
    functionName: vdbeCompareMemString
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeMemShallowCopy
    - sqlite3ValueText
    - sqlite3VdbeMemRelease
    - sqlite3VdbeMemInit
    - CollSeq*::xCmp
    linkageType: ''
    returnType: int
    signature: "int vdbeCompareMemString(\n  const Mem *pMem1,\n  const Mem *pMem2,\n
      \ const CollSeq *pColl,\n  u8 *prcErr                      /* If an OOM occurs,
      set to SQLITE_NOMEM */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - z
    - n
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80487
      start: 80481
    functionDepth: 0
    functionLinenumber: 80481
    functionLinenumberEnd: 80487
    functionName: isAllZero
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int isAllZero(const char *z, int n)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:80503,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:80504,1
    - Dst: isAllZero
      Src: /src/nss/lib/sqlite/sqlite3.c:80510,1
    - Dst: isAllZero
      Src: /src/nss/lib/sqlite/sqlite3.c:80513,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:80517,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - pB1
    - pB2
    argTypes:
    - Mem*
    - Mem*
    assertStmts:
    - condition: ( (pB1->flags & MEM_Zero)==0 || n1==0 )
      pos:
        line_end: 80502
        line_start: 80502
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pB2->flags & MEM_Zero)==0 || n2==0 )
      pos:
        line_end: 80503
        line_start: 80503
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 80520
      start: 80494
    functionDepth: 1
    functionLinenumber: 80494
    functionLinenumberEnd: 80520
    functionName: sqlite3BlobCompare
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - memcmp
    - isAllZero
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BlobCompare(const Mem *pB1, const Mem *pB2)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 2
    argNames:
    - i
    - r
    argTypes:
    - i64
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80546
      start: 80527
    functionDepth: 0
    functionLinenumber: 80527
    functionLinenumberEnd: 80546
    functionName: sqlite3IntFloatCompare
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sqlite3IntFloatCompare(i64 i, double r)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:80564,1
    - Dst: sqlite3VdbeMemIsRowSet
      Src: /src/nss/lib/sqlite/sqlite3.c:80564,1
    - Dst: sqlite3VdbeMemIsRowSet
      Src: /src/nss/lib/sqlite/sqlite3.c:80564,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:80576,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:80577,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:80578,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:80580,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:80581,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:80592,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:80593,1
    - Dst: sqlite3IntFloatCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:80595,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:80606,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:80607,1
    - Dst: sqlite3IntFloatCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:80608,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:80627,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:80628,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:80635,1
    - Dst: vdbeCompareMemString
      Src: /src/nss/lib/sqlite/sqlite3.c:80638,1
    - Dst: sqlite3BlobCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:80645,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 70
    argCount: 3
    argNames:
    - pMem1
    - pMem2
    - pColl
    argTypes:
    - Mem*
    - Mem*
    - CollSeq*
    assertStmts:
    - condition: ( !sqlite3VdbeMemIsRowSet(pMem1) && !sqlite3VdbeMemIsRowSet(pMem2)
        )
      pos:
        line_end: 80563
        line_start: 80563
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !pColl || pColl->xCmp )
      pos:
        line_end: 80634
        line_start: 80634
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pMem1->enc==pMem2->enc || pMem1->db->mallocFailed )
      pos:
        line_end: 80626
        line_start: 80626
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( pMem1->enc==SQLITE_UTF8 || \n            pMem1->enc==SQLITE_UTF16LE
        || pMem1->enc==SQLITE_UTF16BE )"
      pos:
        line_end: 80628
        line_start: 80627
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 80646
      start: 80557
    functionDepth: 15
    functionLinenumber: 80557
    functionLinenumberEnd: 80646
    functionName: sqlite3MemCompare
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3BlobCompare
    - vdbeCompareMemString
    - assert
    - sqlite3IntFloatCompare
    - testcase
    - sqlite3VdbeMemIsRowSet
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3MemCompare(const Mem *pMem1, const Mem *pMem2,
      const CollSeq *pColl)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:80658,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:80662,1
    - Dst: ONE_BYTE_INT
      Src: /src/nss/lib/sqlite/sqlite3.c:80663,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:80665,1
    - Dst: TWO_BYTE_INT
      Src: /src/nss/lib/sqlite/sqlite3.c:80666,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:80668,1
    - Dst: THREE_BYTE_INT
      Src: /src/nss/lib/sqlite/sqlite3.c:80669,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:80671,1
    - Dst: FOUR_BYTE_UINT
      Src: /src/nss/lib/sqlite/sqlite3.c:80672,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:80676,1
    - Dst: FOUR_BYTE_UINT
      Src: /src/nss/lib/sqlite/sqlite3.c:80677,1
    - Dst: TWO_BYTE_INT
      Src: /src/nss/lib/sqlite/sqlite3.c:80677,1
    - Dst: FOUR_BYTE_UINT
      Src: /src/nss/lib/sqlite/sqlite3.c:80680,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:80681,1
    - Dst: FOUR_BYTE_UINT
      Src: /src/nss/lib/sqlite/sqlite3.c:80682,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 2
    argNames:
    - serial_type
    - aKey
    argTypes:
    - u32
    - u8*
    assertStmts:
    - condition: ( CORRUPT_DB || (serial_type>=1 && serial_type<=9 && serial_type!=7)
        )
      pos:
        line_end: 80657
        line_start: 80657
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 80688
      start: 80656
    functionDepth: 1
    functionLinenumber: 80656
    functionLinenumberEnd: 80688
    functionName: vdbeRecordDecodeInt
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - TWO_BYTE_INT
    - ONE_BYTE_INT
    - assert
    - THREE_BYTE_INT
    - testcase
    - FOUR_BYTE_UINT
    linkageType: ''
    returnType: i64
    signature: i64 vdbeRecordDecodeInt(u32 serial_type, const u8 *aKey)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: getVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:80731,1
    - Dst: sqlite3VdbeSerialTypeLen
      Src: /src/nss/lib/sqlite/sqlite3.c:80733,1
    - Dst: getVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:80737,1
    - Dst: VVA_ONLY
      Src: /src/nss/lib/sqlite/sqlite3.c:80746,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:80747,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:80749,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:80750,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:80751,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:80757,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:80758,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:80760,1
    - Dst: sqlite3VdbeSerialGet
      Src: /src/nss/lib/sqlite/sqlite3.c:80766,1
    - Dst: sqlite3IntFloatCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:80767,1
    - Dst: vdbeRecordDecodeInt
      Src: /src/nss/lib/sqlite/sqlite3.c:80769,1
    - Dst: sqlite3VdbeSerialGet
      Src: /src/nss/lib/sqlite/sqlite3.c:80791,1
    - Dst: sqlite3IntFloatCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:80799,1
    - Dst: getVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:80806,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:80807,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:80814,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:80815,1
    - Dst: vdbeCompareMemString
      Src: /src/nss/lib/sqlite/sqlite3.c:80826,1
    - Dst: MIN
      Src: /src/nss/lib/sqlite/sqlite3.c:80830,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:80831,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:80839,1
    - Dst: getVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:80840,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:80841,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:80846,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:80847,1
    - Dst: isAllZero
      Src: /src/nss/lib/sqlite/sqlite3.c:80852,1
    - Dst: MIN
      Src: /src/nss/lib/sqlite/sqlite3.c:80858,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:80859,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:80875,1
    - Dst: vdbeRecordCompareDebug
      Src: /src/nss/lib/sqlite/sqlite3.c:80875,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:80876,1
    - Dst: sqlite3VdbeSerialTypeLen
      Src: /src/nss/lib/sqlite/sqlite3.c:80883,1
    - Dst: sqlite3VarintLen
      Src: /src/nss/lib/sqlite/sqlite3.c:80884,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:80890,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:80895,1
    - Dst: vdbeRecordCompareDebug
      Src: /src/nss/lib/sqlite/sqlite3.c:80896,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 143
    argCount: 4
    argNames:
    - nKey1
    - pKey1
    - pPKey2
    - bSkip
    argTypes:
    - int
    - void*
    - UnpackedRecord*
    - int
    assertStmts:
    - condition: ( pPKey2->pKeyInfo->aSortOrder!=0 )
      pos:
        line_end: 80748
        line_start: 80748
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPKey2->pKeyInfo->nKeyField>0 )
      pos:
        line_end: 80749
        line_start: 80749
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( idx1<=szHdr1 || CORRUPT_DB )
      pos:
        line_end: 80750
        line_start: 80750
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( mem1.szMalloc==0 )
      pos:
        line_end: 80889
        line_start: 80889
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( mem1.szMalloc==0 )
      pos:
        line_end: 80875
        line_start: 80875
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( CORRUPT_DB \n       || vdbeRecordCompareDebug(nKey1, pKey1, pPKey2,
        pPKey2->default_rc) \n       || pPKey2->pKeyInfo->db->mallocFailed\n  )"
      pos:
        line_end: 80897
        line_start: 80894
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pRhs->flags & MEM_Zero)==0 || pRhs->n==0 )
      pos:
        line_end: 80838
        line_start: 80838
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( vdbeRecordCompareDebug(nKey1, pKey1, pPKey2, rc) )
      pos:
        line_end: 80874
        line_start: 80874
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( pPKey2->pKeyInfo->nAllField>=pPKey2->nField \n       || CORRUPT_DB
        )"
      pos:
        line_end: 80747
        line_start: 80746
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 80901
      start: 80711
    functionDepth: 15
    functionLinenumber: 80711
    functionLinenumberEnd: 80901
    functionName: sqlite3VdbeRecordCompareWithSkip
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - vdbeRecordCompareDebug
    - sqlite3VdbeSerialGet
    - VVA_ONLY
    - vdbeRecordDecodeInt
    - isAllZero
    - getVarint32
    - assert
    - vdbeCompareMemString
    - sqlite3IntFloatCompare
    - sqlite3VarintLen
    - memcmp
    - testcase
    - MIN
    - sqlite3VdbeSerialTypeLen
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3VdbeRecordCompareWithSkip(\n  int nKey1, const
      void *pKey1,   /* Left key */\n  UnpackedRecord *pPKey2,         /* Right key
      */\n  int bSkip                       /* If true, skip the first field */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeRecordCompareWithSkip
      Src: /src/nss/lib/sqlite/sqlite3.c:80906,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - nKey1
    - pKey1
    - pPKey2
    argTypes:
    - int
    - void*
    - UnpackedRecord*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80907
      start: 80902
    functionDepth: 16
    functionLinenumber: 80902
    functionLinenumberEnd: 80907
    functionName: sqlite3VdbeRecordCompare
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3VdbeRecordCompareWithSkip
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3VdbeRecordCompare(\n  int nKey1, const void
      *pKey1,   /* Left key */\n  UnpackedRecord *pPKey2          /* Right key */\n)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: vdbeAssertFieldCountWithinLimits
      Src: /src/nss/lib/sqlite/sqlite3.c:80931,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:80932,1
    - Dst: ONE_BYTE_INT
      Src: /src/nss/lib/sqlite/sqlite3.c:80935,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:80936,1
    - Dst: TWO_BYTE_INT
      Src: /src/nss/lib/sqlite/sqlite3.c:80940,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:80941,1
    - Dst: THREE_BYTE_INT
      Src: /src/nss/lib/sqlite/sqlite3.c:80945,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:80946,1
    - Dst: FOUR_BYTE_UINT
      Src: /src/nss/lib/sqlite/sqlite3.c:80950,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:80952,1
    - Dst: FOUR_BYTE_UINT
      Src: /src/nss/lib/sqlite/sqlite3.c:80956,1
    - Dst: TWO_BYTE_INT
      Src: /src/nss/lib/sqlite/sqlite3.c:80956,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:80957,1
    - Dst: FOUR_BYTE_UINT
      Src: /src/nss/lib/sqlite/sqlite3.c:80961,1
    - Dst: FOUR_BYTE_UINT
      Src: /src/nss/lib/sqlite/sqlite3.c:80962,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:80964,1
    - Dst: sqlite3VdbeRecordCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:80981,1
    - Dst: sqlite3VdbeRecordCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:80984,1
    - Dst: sqlite3VdbeRecordCompareWithSkip
      Src: /src/nss/lib/sqlite/sqlite3.c:80995,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:81003,1
    - Dst: vdbeRecordCompareDebug
      Src: /src/nss/lib/sqlite/sqlite3.c:81003,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 64
    argCount: 3
    argNames:
    - nKey1
    - pKey1
    - pPKey2
    argTypes:
    - int
    - void*
    - UnpackedRecord*
    assertStmts:
    - condition: ( (*(u8*)pKey1)<=0x3F || CORRUPT_DB )
      pos:
        line_end: 80931
        line_start: 80931
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( vdbeRecordCompareDebug(nKey1, pKey1, pPKey2, res) )
      pos:
        line_end: 81002
        line_start: 81002
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 81005
      start: 80919
    functionDepth: 17
    functionLinenumber: 80919
    functionLinenumberEnd: 81005
    functionName: vdbeRecordCompareInt
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - vdbeRecordCompareDebug
    - vdbeAssertFieldCountWithinLimits
    - TWO_BYTE_INT
    - ONE_BYTE_INT
    - sqlite3VdbeRecordCompareWithSkip
    - assert
    - sqlite3VdbeRecordCompare
    - THREE_BYTE_INT
    - testcase
    - FOUR_BYTE_UINT
    linkageType: ''
    returnType: int
    signature: "int vdbeRecordCompareInt(\n  int nKey1, const void *pKey1, /* Left
      key */\n  UnpackedRecord *pPKey2        /* Right key */\n)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:81021,1
    - Dst: vdbeAssertFieldCountWithinLimits
      Src: /src/nss/lib/sqlite/sqlite3.c:81022,1
    - Dst: getVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:81023,1
    - Dst: MIN
      Src: /src/nss/lib/sqlite/sqlite3.c:81038,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:81039,1
    - Dst: sqlite3VdbeRecordCompareWithSkip
      Src: /src/nss/lib/sqlite/sqlite3.c:81045,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:81062,1
    - Dst: vdbeRecordCompareDebug
      Src: /src/nss/lib/sqlite/sqlite3.c:81062,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 3
    argNames:
    - nKey1
    - pKey1
    - pPKey2
    argTypes:
    - int
    - void*
    - UnpackedRecord*
    assertStmts:
    - condition: ( pPKey2->aMem[0].flags & MEM_Str )
      pos:
        line_end: 81020
        line_start: 81020
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( vdbeRecordCompareDebug(nKey1, pKey1, pPKey2, res)\n       || CORRUPT_DB\n
        \      || pPKey2->pKeyInfo->db->mallocFailed\n  )"
      pos:
        line_end: 81064
        line_start: 81061
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 81067
      start: 81013
    functionDepth: 16
    functionLinenumber: 81013
    functionLinenumberEnd: 81067
    functionName: vdbeRecordCompareString
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - vdbeRecordCompareDebug
    - vdbeAssertFieldCountWithinLimits
    - sqlite3VdbeRecordCompareWithSkip
    - getVarint32
    - assert
    - memcmp
    - MIN
    linkageType: ''
    returnType: int
    signature: "int vdbeRecordCompareString(\n  int nKey1, const void *pKey1, /* Left
      key */\n  UnpackedRecord *pPKey2        /* Right key */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:81100,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:81101,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:81102,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:81106,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - p
    argTypes:
    - UnpackedRecord*
    assertStmts:
    - condition: ( flags & MEM_Str )
      pos:
        line_end: 81105
        line_start: 81105
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 81112
      start: 81074
    functionDepth: 1
    functionLinenumber: 81074
    functionLinenumberEnd: 81112
    functionName: RecordCompare::sqlite3VdbeFindCompare
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - testcase
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE RecordCompare sqlite3VdbeFindCompare(UnpackedRecord
      *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:81135,1
    - Dst: sqlite3BtreeCursorIsValid
      Src: /src/nss/lib/sqlite/sqlite3.c:81135,1
    - Dst: sqlite3BtreePayloadSize
      Src: /src/nss/lib/sqlite/sqlite3.c:81136,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:81137,1
    - Dst: sqlite3VdbeMemInit
      Src: /src/nss/lib/sqlite/sqlite3.c:81140,1
    - Dst: sqlite3VdbeMemFromBtree
      Src: /src/nss/lib/sqlite/sqlite3.c:81141,1
    - Dst: getVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:81147,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:81148,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:81149,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:81150,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:81151,1
    - Dst: unlikely
      Src: /src/nss/lib/sqlite/sqlite3.c:81152,1
    - Dst: getVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:81158,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:81159,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:81160,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:81161,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:81162,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:81163,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:81164,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:81165,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:81166,1
    - Dst: unlikely
      Src: /src/nss/lib/sqlite/sqlite3.c:81167,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:81171,1
    - Dst: unlikely
      Src: /src/nss/lib/sqlite/sqlite3.c:81172,1
    - Dst: sqlite3VdbeSerialGet
      Src: /src/nss/lib/sqlite/sqlite3.c:81177,1
    - Dst: sqlite3VdbeMemRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:81179,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:81185,1
    - Dst: sqlite3VdbeMemRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:81186,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 46
    argCount: 3
    argNames:
    - db
    - pCur
    - rowid
    argTypes:
    - sqlite3*
    - BtCursor*
    - i64*
    assertStmts:
    - condition: ( (nCellKey & SQLITE_MAX_U32)==(u64)nCellKey )
      pos:
        line_end: 81136
        line_start: 81136
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3BtreeCursorIsValid(pCur) )
      pos:
        line_end: 81134
        line_start: 81134
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( m.n>=0 )
      pos:
        line_end: 81150
        line_start: 81150
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 81188
      start: 81122
    functionDepth: 19
    functionLinenumber: 81122
    functionLinenumberEnd: 81188
    functionName: sqlite3VdbeIdxRowid
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - unlikely
    - sqlite3BtreePayloadSize
    - sqlite3VdbeSerialGet
    - sqlite3VdbeMemRelease
    - getVarint32
    - assert
    - sqlite3VdbeMemInit
    - sqlite3VdbeMemFromBtree
    - sqlite3BtreeCursorIsValid
    - testcase
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeIdxRowid(sqlite3 *db, BtCursor *pCur, i64
      *rowid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:81212,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:81214,1
    - Dst: sqlite3BtreeCursorIsValid
      Src: /src/nss/lib/sqlite/sqlite3.c:81214,1
    - Dst: sqlite3BtreePayloadSize
      Src: /src/nss/lib/sqlite/sqlite3.c:81215,1
    - Dst: sqlite3VdbeMemInit
      Src: /src/nss/lib/sqlite/sqlite3.c:81222,1
    - Dst: sqlite3VdbeMemFromBtree
      Src: /src/nss/lib/sqlite/sqlite3.c:81223,1
    - Dst: sqlite3VdbeRecordCompareWithSkip
      Src: /src/nss/lib/sqlite/sqlite3.c:81227,1
    - Dst: sqlite3VdbeMemRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:81228,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - db
    - pC
    - pUnpacked
    - res
    argTypes:
    - sqlite3*
    - VdbeCursor*
    - UnpackedRecord*
    - int*
    assertStmts:
    - condition: ( pC->eCurType==CURTYPE_BTREE )
      pos:
        line_end: 81211
        line_start: 81211
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3BtreeCursorIsValid(pCur) )
      pos:
        line_end: 81213
        line_start: 81213
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 81230
      start: 81201
    functionDepth: 19
    functionLinenumber: 81201
    functionLinenumberEnd: 81230
    functionName: sqlite3VdbeIdxKeyCompare
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreePayloadSize
    - sqlite3VdbeMemRelease
    - sqlite3VdbeRecordCompareWithSkip
    - assert
    - sqlite3VdbeMemInit
    - sqlite3VdbeMemFromBtree
    - sqlite3BtreeCursorIsValid
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3VdbeIdxKeyCompare(\n  sqlite3 *db,                     /*
      Database connection */\n  VdbeCursor *pC,                  /* The cursor to
      compare against */\n  UnpackedRecord *pUnpacked,       /* Unpacked version of
      key */\n  int *res                         /* Write the comparison result here
      */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:81237,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:81237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - db
    - nChange
    argTypes:
    - sqlite3*
    - int
    assertStmts:
    - condition: ( sqlite3_mutex_held(db->mutex) )
      pos:
        line_end: 81236
        line_start: 81236
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 81240
      start: 81236
    functionDepth: 1
    functionLinenumber: 81236
    functionLinenumberEnd: 81240
    functionName: sqlite3VdbeSetChanges
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - sqlite3_mutex_held
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeSetChanges(sqlite3 *db, int nChange)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - Vdbe*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81248
      start: 81246
    functionDepth: 0
    functionLinenumber: 81246
    functionLinenumberEnd: 81248
    functionName: sqlite3VdbeCountChanges
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeCountChanges(Vdbe *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - db
    - iCode
    argTypes:
    - sqlite3*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81273
      start: 81268
    functionDepth: 0
    functionLinenumber: 81268
    functionLinenumberEnd: 81273
    functionName: sqlite3ExpirePreparedStatements
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExpirePreparedStatements(sqlite3 *db, int iCode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - Vdbe*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81280
      start: 81278
    functionDepth: 0
    functionLinenumber: 81278
    functionLinenumberEnd: 81280
    functionName: sqlite3VdbeDb
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3VdbeDb(Vdbe *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - Vdbe*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81287
      start: 81285
    functionDepth: 0
    functionLinenumber: 81285
    functionLinenumberEnd: 81287
    functionName: sqlite3VdbePrepareFlags
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbePrepareFlags(Vdbe *v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:81298,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:81301,1
    - Dst: sqlite3ValueNew
      Src: /src/nss/lib/sqlite/sqlite3.c:81303,1
    - Dst: sqlite3VdbeMemCopy
      Src: /src/nss/lib/sqlite/sqlite3.c:81305,1
    - Dst: sqlite3ValueApplyAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:81306,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( iVar>0 )
      pos:
        line_end: 81297
        line_start: 81297
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (v->db->flags & SQLITE_EnableQPSG)==0 )
      pos:
        line_end: 81300
        line_start: 81300
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 81312
      start: 81297
    functionDepth: 13
    functionLinenumber: 81297
    functionLinenumberEnd: 81312
    functionName: sqlite3_value *sqlite3VdbeGetBoundValue(Vdbe *v, int iVar, u8 aff)
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3ValueApplyAffinity
    - sqlite3VdbeMemCopy
    - sqlite3ValueNew
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3_value *sqlite3VdbeGetBoundValue(Vdbe *v, int
      iVar, u8 aff)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:81320,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:81321,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - v
    - iVar
    argTypes:
    - Vdbe*
    - int
    assertStmts:
    - condition: ( iVar>0 )
      pos:
        line_end: 81319
        line_start: 81319
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (v->db->flags & SQLITE_EnableQPSG)==0 )
      pos:
        line_end: 81320
        line_start: 81320
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 81327
      start: 81319
    functionDepth: 0
    functionLinenumber: 81319
    functionLinenumberEnd: 81327
    functionName: sqlite3VdbeSetVarmask
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeSetVarmask(Vdbe *v, int iVar)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_result_error
      Src: /src/nss/lib/sqlite/sqlite3.c:81343,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - pCtx
    argTypes:
    - sqlite3_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81349
      start: 81338
    functionDepth: 1
    functionLinenumber: 81338
    functionLinenumberEnd: 81349
    functionName: sqlite3NotPureFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3_result_error
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3NotPureFunc(sqlite3_context *pCtx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:81360,1
    - Dst: sqlite3DbStrDup
      Src: /src/nss/lib/sqlite/sqlite3.c:81361,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:81362,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - p
    - pVtab
    argTypes:
    - Vdbe*
    - sqlite3_vtab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81365
      start: 81357
    functionDepth: 7
    functionLinenumber: 81357
    functionLinenumberEnd: 81365
    functionName: sqlite3VtabImportErrmsg
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbStrDup
    - sqlite3DbFree
    - sqlite3_free
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VtabImportErrmsg(Vdbe *p, sqlite3_vtab *pVtab)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeMemRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:81383,1
    - Dst: sqlite3DbFreeNN
      Src: /src/nss/lib/sqlite/sqlite3.c:81385,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - db
    - nField
    - p
    argTypes:
    - sqlite3*
    - int
    - UnpackedRecord*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81387
      start: 81378
    functionDepth: 9
    functionLinenumber: 81378
    functionLinenumberEnd: 81387
    functionName: vdbeFreeUnpacked
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeMemRelease
    - sqlite3DbFreeNN
    linkageType: ''
    returnType: void
    signature: void vdbeFreeUnpacked(sqlite3 *db, int nField, UnpackedRecord *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:81412,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:81413,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:81414,1
    - Dst: sqlite3PrimaryKeyIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:81416,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:81425,1
    - Dst: ENC
      Src: /src/nss/lib/sqlite/sqlite3.c:81434,1
    - Dst: sqlite3*::xPreUpdateCallback
      Src: /src/nss/lib/sqlite/sqlite3.c:81442,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:81444,1
    - Dst: vdbeFreeUnpacked
      Src: /src/nss/lib/sqlite/sqlite3.c:81445,1
    - Dst: vdbeFreeUnpacked
      Src: /src/nss/lib/sqlite/sqlite3.c:81446,1
    - Dst: sqlite3VdbeMemRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:81450,1
    - Dst: sqlite3DbFreeNN
      Src: /src/nss/lib/sqlite/sqlite3.c:81452,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 7
    argNames:
    - v
    - pCsr
    - op
    - zDb
    - pTab
    - iKey1
    - iReg
    argTypes:
    - Vdbe*
    - VdbeCursor*
    - int
    - char*
    - Table*
    - i64
    - int
    assertStmts:
    - condition: ( db->pPreUpdate==0 )
      pos:
        line_end: 81411
        line_start: 81411
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( pCsr->nField==pTab->nCol \n       || (pCsr->nField==pTab->nCol+1
        && op==SQLITE_DELETE && iReg==-1)\n  )"
      pos:
        line_end: 81426
        line_start: 81424
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 81454
      start: 81397
    functionDepth: 10
    functionLinenumber: 81397
    functionLinenumberEnd: 81454
    functionName: sqlite3VdbePreUpdateHook
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - HasRowid
    - vdbeFreeUnpacked
    - sqlite3DbFree
    - sqlite3VdbeMemRelease
    - sqlite3PrimaryKeyIndex
    - assert
    - memset
    - sqlite3DbFreeNN
    - ENC
    - sqlite3*::xPreUpdateCallback
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3VdbePreUpdateHook(\n  Vdbe *v,                        /*
      Vdbe pre-update hook is invoked by */\n  VdbeCursor *pCsr,               /*
      Cursor to grab old.* values from */\n  int op,                         /* SQLITE_INSERT,
      UPDATE or DELETE */\n  const char *zDb,                /* Database name */\n
      \ Table *pTab,                    /* Modified table */\n  i64 iKey1,                      /*
      Initial key value */\n  int iReg                        /* Register for new.*
      record */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - pStmt
    argTypes:
    - sqlite3_stmt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81489
      start: 81486
    functionDepth: 0
    functionLinenumber: 81486
    functionLinenumberEnd: 81489
    functionName: sqlite3_expired
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_expired(sqlite3_stmt *pStmt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_log
      Src: /src/nss/lib/sqlite/sqlite3.c:81499,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - Vdbe*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81504
      start: 81497
    functionDepth: 10
    functionLinenumber: 81497
    functionLinenumberEnd: 81504
    functionName: vdbeSafety
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_log
    linkageType: ''
    returnType: int
    signature: int vdbeSafety(Vdbe *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_log
      Src: /src/nss/lib/sqlite/sqlite3.c:81507,1
    - Dst: vdbeSafety
      Src: /src/nss/lib/sqlite/sqlite3.c:81510,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - Vdbe*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81512
      start: 81505
    functionDepth: 11
    functionLinenumber: 81505
    functionLinenumberEnd: 81512
    functionName: vdbeSafetyNotNull
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_log
    - vdbeSafety
    linkageType: ''
    returnType: int
    signature: int vdbeSafetyNotNull(Vdbe *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:81522,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:81523,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:81524,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:81525,1
    - Dst: sqlite3OsCurrentTimeInt64
      Src: /src/nss/lib/sqlite/sqlite3.c:81526,1
    - Dst: sqlite3*::xProfile
      Src: /src/nss/lib/sqlite/sqlite3.c:81530,1
    - Dst: sqlite3*::xTrace
      Src: /src/nss/lib/sqlite/sqlite3.c:81534,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - Vdbe*
    assertStmts:
    - condition: ( p->startTime>0 )
      pos:
        line_end: 81521
        line_start: 81521
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( db->init.busy==0 )
      pos:
        line_end: 81523
        line_start: 81523
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->zSql!=0 )
      pos:
        line_end: 81524
        line_start: 81524
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (db->mTrace & (SQLITE_TRACE_PROFILE|SQLITE_TRACE_XPROFILE))!=0
        )
      pos:
        line_end: 81522
        line_start: 81522
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 81537
      start: 81519
    functionDepth: 1
    functionLinenumber: 81519
    functionLinenumberEnd: 81537
    functionName: invokeProfileCallback
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3*::xTrace
    - sqlite3OsCurrentTimeInt64
    - sqlite3*::xProfile
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: SQLITE_NOINLINE invokeProfileCallback(sqlite3 *db, Vdbe *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - DB
    - ','
    - P
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81544
      start: 81542
    functionDepth: 0
    functionLinenumber: 81542
    functionLinenumberEnd: 81544
    functionName: checkProfileCallback
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: checkProfileCallback(DB,P)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vdbeSafety
      Src: /src/nss/lib/sqlite/sqlite3.c:81566,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:81567,1
    - Dst: checkProfileCallback
      Src: /src/nss/lib/sqlite/sqlite3.c:81568,1
    - Dst: sqlite3VdbeFinalize
      Src: /src/nss/lib/sqlite/sqlite3.c:81569,1
    - Dst: sqlite3ApiExit
      Src: /src/nss/lib/sqlite/sqlite3.c:81570,1
    - Dst: sqlite3LeaveMutexAndCloseZombie
      Src: /src/nss/lib/sqlite/sqlite3.c:81571,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - pStmt
    argTypes:
    - sqlite3_stmt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81574
      start: 81557
    functionDepth: 25
    functionLinenumber: 81557
    functionLinenumberEnd: 81574
    functionName: sqlite3_finalize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 15
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3ApiExit
    - sqlite3VdbeFinalize
    - checkProfileCallback
    - sqlite3LeaveMutexAndCloseZombie
    - vdbeSafety
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_finalize(sqlite3_stmt *pStmt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:81591,1
    - Dst: checkProfileCallback
      Src: /src/nss/lib/sqlite/sqlite3.c:81592,1
    - Dst: sqlite3VdbeReset
      Src: /src/nss/lib/sqlite/sqlite3.c:81593,1
    - Dst: sqlite3VdbeRewind
      Src: /src/nss/lib/sqlite/sqlite3.c:81594,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:81595,1
    - Dst: sqlite3ApiExit
      Src: /src/nss/lib/sqlite/sqlite3.c:81596,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:81597,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - pStmt
    argTypes:
    - sqlite3_stmt*
    assertStmts:
    - condition: ( (rc & (db->errMask))==rc )
      pos:
        line_end: 81594
        line_start: 81594
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 81600
      start: 81584
    functionDepth: 24
    functionLinenumber: 81584
    functionLinenumberEnd: 81600
    functionName: sqlite3_reset
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 12
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3VdbeRewind
    - sqlite3ApiExit
    - sqlite3_mutex_leave
    - assert
    - checkProfileCallback
    - sqlite3VdbeReset
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_reset(sqlite3_stmt *pStmt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:81612,1
    - Dst: sqlite3VdbeMemRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:81614,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:81617,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:81621,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - pStmt
    argTypes:
    - sqlite3_stmt*
    assertStmts:
    - condition: ( (p->prepFlags & SQLITE_PREPARE_SAVESQL)!=0 || p->expmask==0 )
      pos:
        line_end: 81616
        line_start: 81616
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 81623
      start: 81605
    functionDepth: 9
    functionLinenumber: 81605
    functionLinenumberEnd: 81623
    functionName: sqlite3_clear_bindings
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3VdbeMemRelease
    - assert
    - sqlite3_mutex_leave
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_clear_bindings(sqlite3_stmt *pStmt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ExpandBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:81633,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:81634,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:81640,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - pVal
    argTypes:
    - sqlite3_value*
    assertStmts:
    - condition: ( p->flags==MEM_Null && p->z==0 )
      pos:
        line_end: 81633
        line_start: 81633
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 81642
      start: 81630
    functionDepth: 1
    functionLinenumber: 81630
    functionLinenumberEnd: 81642
    functionName: sqlite3_value_blob
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_value_text
    - ExpandBlob
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *sqlite3_value_blob(sqlite3_value *pVal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ValueBytes
      Src: /src/nss/lib/sqlite/sqlite3.c:81644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pVal
    argTypes:
    - sqlite3_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81645
      start: 81643
    functionDepth: 15
    functionLinenumber: 81643
    functionLinenumberEnd: 81645
    functionName: sqlite3_value_bytes
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3ValueBytes
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_value_bytes(sqlite3_value *pVal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ValueBytes
      Src: /src/nss/lib/sqlite/sqlite3.c:81647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pVal
    argTypes:
    - sqlite3_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81648
      start: 81646
    functionDepth: 15
    functionLinenumber: 81646
    functionLinenumberEnd: 81648
    functionName: sqlite3_value_bytes16
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ValueBytes
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_value_bytes16(sqlite3_value *pVal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeRealValue
      Src: /src/nss/lib/sqlite/sqlite3.c:81650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pVal
    argTypes:
    - sqlite3_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81651
      start: 81649
    functionDepth: 4
    functionLinenumber: 81649
    functionLinenumberEnd: 81651
    functionName: sqlite3_value_double
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3VdbeRealValue
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_value_double(sqlite3_value *pVal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeIntValue
      Src: /src/nss/lib/sqlite/sqlite3.c:81653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pVal
    argTypes:
    - sqlite3_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81654
      start: 81652
    functionDepth: 5
    functionLinenumber: 81652
    functionLinenumberEnd: 81654
    functionName: sqlite3_value_int
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeIntValue
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_value_int(sqlite3_value *pVal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeIntValue
      Src: /src/nss/lib/sqlite/sqlite3.c:81656,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pVal
    argTypes:
    - sqlite3_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81657
      start: 81655
    functionDepth: 5
    functionLinenumber: 81655
    functionLinenumberEnd: 81657
    functionName: sqlite_int64::sqlite3_value_int64
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeIntValue
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite_int64 sqlite3_value_int64(sqlite3_value *pVal)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pVal
    argTypes:
    - sqlite3_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81661
      start: 81658
    functionDepth: 0
    functionLinenumber: 81658
    functionLinenumberEnd: 81661
    functionName: sqlite3_value_subtype
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API unsigned
    signature: SQLITE_API unsigned sqlite3_value_subtype(sqlite3_value *pVal)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:81668,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - pVal
    - zPType
    argTypes:
    - sqlite3_value*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81674
      start: 81662
    functionDepth: 0
    functionLinenumber: 81662
    functionLinenumberEnd: 81674
    functionName: sqlite3_value_pointer
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *sqlite3_value_pointer(sqlite3_value *pVal, const char *zPType)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ValueText
      Src: /src/nss/lib/sqlite/sqlite3.c:81676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pVal
    argTypes:
    - sqlite3_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81677
      start: 81675
    functionDepth: 14
    functionLinenumber: 81675
    functionLinenumberEnd: 81677
    functionName: sqlite3_value_text
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 5
    functionsReached:
    - sqlite3ValueText
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *sqlite3_value_text(sqlite3_value *pVal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ValueText
      Src: /src/nss/lib/sqlite/sqlite3.c:81680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pVal
    argTypes:
    - sqlite3_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81681
      start: 81679
    functionDepth: 14
    functionLinenumber: 81679
    functionLinenumberEnd: 81681
    functionName: sqlite3_value_text16
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ValueText
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *sqlite3_value_text16(sqlite3_value* pVal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ValueText
      Src: /src/nss/lib/sqlite/sqlite3.c:81683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pVal
    argTypes:
    - sqlite3_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81684
      start: 81682
    functionDepth: 14
    functionLinenumber: 81682
    functionLinenumberEnd: 81684
    functionName: sqlite3_value_text16be
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ValueText
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *sqlite3_value_text16be(sqlite3_value *pVal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ValueText
      Src: /src/nss/lib/sqlite/sqlite3.c:81686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pVal
    argTypes:
    - sqlite3_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81687
      start: 81685
    functionDepth: 14
    functionLinenumber: 81685
    functionLinenumberEnd: 81687
    functionName: sqlite3_value_text16le
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ValueText
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *sqlite3_value_text16le(sqlite3_value *pVal)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:81772,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - pVal
    argTypes:
    - sqlite3_value*
    assertStmts:
    - condition: ( eType == aType[pVal->flags&MEM_AffMask] )
      pos:
        line_end: 81771
        line_start: 81771
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 81776
      start: 81693
    functionDepth: 0
    functionLinenumber: 81693
    functionLinenumberEnd: 81776
    functionName: sqlite3_value_type
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_value_type(sqlite3_value* pVal)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pVal
    argTypes:
    - sqlite3_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81781
      start: 81779
    functionDepth: 0
    functionLinenumber: 81779
    functionLinenumberEnd: 81781
    functionName: sqlite3_value_nochange
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_value_nochange(sqlite3_value *pVal)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pVal
    argTypes:
    - sqlite3_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81786
      start: 81784
    functionDepth: 0
    functionLinenumber: 81784
    functionLinenumberEnd: 81786
    functionName: sqlite3_value_frombind
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_value_frombind(sqlite3_value *pVal)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:81793,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:81795,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:81796,1
    - Dst: sqlite3VdbeMemMakeWriteable
      Src: /src/nss/lib/sqlite/sqlite3.c:81802,1
    - Dst: sqlite3ValueFree
      Src: /src/nss/lib/sqlite/sqlite3.c:81803,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81808
      start: 81790
    functionDepth: 12
    functionLinenumber: 81790
    functionLinenumberEnd: 81808
    functionName: sqlite3_value *sqlite3_value_dup(const sqlite3_value *pOrig)
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_malloc
    - memcpy
    - sqlite3VdbeMemMakeWriteable
    - memset
    - sqlite3ValueFree
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_value *sqlite3_value_dup(const sqlite3_value *pOrig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ValueFree
      Src: /src/nss/lib/sqlite/sqlite3.c:81814,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pOld
    argTypes:
    - sqlite3_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81815
      start: 81813
    functionDepth: 10
    functionLinenumber: 81813
    functionLinenumberEnd: 81815
    functionName: sqlite3_value_free
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ValueFree
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_value_free(sqlite3_value *pOld)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeMemSetStr
      Src: /src/nss/lib/sqlite/sqlite3.c:81836,1
    - Dst: sqlite3_result_error_toobig
      Src: /src/nss/lib/sqlite/sqlite3.c:81837,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - pCtx
    - z
    - n
    - enc
    argTypes:
    - sqlite3_context*
    - char*
    - int
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81839
      start: 81829
    functionDepth: 12
    functionLinenumber: 81829
    functionLinenumberEnd: 81839
    functionName: setResultStrOrError
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_error_toobig
    - sqlite3VdbeMemSetStr
    linkageType: ''
    returnType: void
    signature: "void setResultStrOrError(\n  sqlite3_context *pCtx,  /* Function context
      */\n  const char *z,          /* String pointer */\n  int n,                  /*
      Bytes in string, or negative */\n  u8 enc,                 /* Encoding of z.
      \ 0 for BLOBs */\n  void (*xDel)(void*)     /* Destructor function */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:81845,1
    - Dst: xDel
      Src: /src/nss/lib/sqlite/sqlite3.c:81851,1
    - Dst: sqlite3_result_error_toobig
      Src: /src/nss/lib/sqlite/sqlite3.c:81853,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - p
    - pCtx
    argTypes:
    - void*
    - sqlite3_context*
    assertStmts:
    - condition: ( xDel!=SQLITE_DYNAMIC )
      pos:
        line_end: 81844
        line_start: 81844
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 81855
      start: 81840
    functionDepth: 1
    functionLinenumber: 81840
    functionLinenumberEnd: 81855
    functionName: invokeValueDestructor
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_result_error_toobig
    - xDel
    linkageType: ''
    returnType: int
    signature: "int invokeValueDestructor(\n  const void *p,             /* Value
      to destroy */\n  void (*xDel)(void*),       /* The destructor */\n  sqlite3_context
      *pCtx      /* Set a SQLITE_TOOBIG error if no NULL */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:81862,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:81863,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:81863,1
    - Dst: setResultStrOrError
      Src: /src/nss/lib/sqlite/sqlite3.c:81864,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - pCtx
    - z
    - n
    argTypes:
    - sqlite3_context*
    - void*
    - int
    assertStmts:
    - condition: ( n>=0 )
      pos:
        line_end: 81861
        line_start: 81861
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3_mutex_held(pCtx->pOut->db->mutex) )
      pos:
        line_end: 81862
        line_start: 81862
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 81865
      start: 81856
    functionDepth: 13
    functionLinenumber: 81856
    functionLinenumberEnd: 81865
    functionName: sqlite3_result_blob
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - sqlite3_mutex_held
    - setResultStrOrError
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_result_blob(\n  sqlite3_context *pCtx, \n  const
      void *z, \n  int n, \n  void (*xDel)(void *)\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:81872,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:81872,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:81873,1
    - Dst: invokeValueDestructor
      Src: /src/nss/lib/sqlite/sqlite3.c:81875,1
    - Dst: setResultStrOrError
      Src: /src/nss/lib/sqlite/sqlite3.c:81877,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - pCtx
    - z
    - n
    argTypes:
    - sqlite3_context*
    - void*
    - sqlite3_uint64
    assertStmts:
    - condition: ( sqlite3_mutex_held(pCtx->pOut->db->mutex) )
      pos:
        line_end: 81871
        line_start: 81871
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( xDel!=SQLITE_DYNAMIC )
      pos:
        line_end: 81872
        line_start: 81872
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 81879
      start: 81866
    functionDepth: 13
    functionLinenumber: 81866
    functionLinenumberEnd: 81879
    functionName: sqlite3_result_blob64
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_mutex_held
    - setResultStrOrError
    - invokeValueDestructor
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_result_blob64(\n  sqlite3_context *pCtx, \n  const
      void *z, \n  sqlite3_uint64 n,\n  void (*xDel)(void *)\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:81881,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:81881,1
    - Dst: sqlite3VdbeMemSetDouble
      Src: /src/nss/lib/sqlite/sqlite3.c:81882,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pCtx
    - rVal
    argTypes:
    - sqlite3_context*
    - double
    assertStmts:
    - condition: ( sqlite3_mutex_held(pCtx->pOut->db->mutex) )
      pos:
        line_end: 81880
        line_start: 81880
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 81883
      start: 81880
    functionDepth: 9
    functionLinenumber: 81880
    functionLinenumberEnd: 81883
    functionName: sqlite3_result_double
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - sqlite3_mutex_held
    - sqlite3VdbeMemSetDouble
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_result_double(sqlite3_context *pCtx, double rVal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:81885,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:81885,1
    - Dst: sqlite3VdbeMemSetStr
      Src: /src/nss/lib/sqlite/sqlite3.c:81887,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - pCtx
    - z
    - n
    argTypes:
    - sqlite3_context*
    - char*
    - int
    assertStmts:
    - condition: ( sqlite3_mutex_held(pCtx->pOut->db->mutex) )
      pos:
        line_end: 81884
        line_start: 81884
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 81888
      start: 81884
    functionDepth: 12
    functionLinenumber: 81884
    functionLinenumberEnd: 81888
    functionName: sqlite3_result_error
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - assert
    - sqlite3_mutex_held
    - sqlite3VdbeMemSetStr
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_result_error(sqlite3_context *pCtx, const char *z,
      int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:81891,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:81891,1
    - Dst: sqlite3VdbeMemSetStr
      Src: /src/nss/lib/sqlite/sqlite3.c:81893,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - pCtx
    - z
    - n
    argTypes:
    - sqlite3_context*
    - void*
    - int
    assertStmts:
    - condition: ( sqlite3_mutex_held(pCtx->pOut->db->mutex) )
      pos:
        line_end: 81890
        line_start: 81890
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 81894
      start: 81890
    functionDepth: 12
    functionLinenumber: 81890
    functionLinenumberEnd: 81894
    functionName: sqlite3_result_error16
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_mutex_held
    - sqlite3VdbeMemSetStr
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_result_error16(sqlite3_context *pCtx, const void
      *z, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:81897,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:81897,1
    - Dst: sqlite3VdbeMemSetInt64
      Src: /src/nss/lib/sqlite/sqlite3.c:81898,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pCtx
    - iVal
    argTypes:
    - sqlite3_context*
    - int
    assertStmts:
    - condition: ( sqlite3_mutex_held(pCtx->pOut->db->mutex) )
      pos:
        line_end: 81896
        line_start: 81896
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 81899
      start: 81896
    functionDepth: 10
    functionLinenumber: 81896
    functionLinenumberEnd: 81899
    functionName: sqlite3_result_int
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_mutex_held
    - sqlite3VdbeMemSetInt64
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_result_int(sqlite3_context *pCtx, int iVal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:81901,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:81901,1
    - Dst: sqlite3VdbeMemSetInt64
      Src: /src/nss/lib/sqlite/sqlite3.c:81902,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pCtx
    - iVal
    argTypes:
    - sqlite3_context*
    - i64
    assertStmts:
    - condition: ( sqlite3_mutex_held(pCtx->pOut->db->mutex) )
      pos:
        line_end: 81900
        line_start: 81900
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 81903
      start: 81900
    functionDepth: 10
    functionLinenumber: 81900
    functionLinenumberEnd: 81903
    functionName: sqlite3_result_int64
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_mutex_held
    - sqlite3VdbeMemSetInt64
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_result_int64(sqlite3_context *pCtx, i64 iVal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:81905,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:81905,1
    - Dst: sqlite3VdbeMemSetNull
      Src: /src/nss/lib/sqlite/sqlite3.c:81906,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pCtx
    argTypes:
    - sqlite3_context*
    assertStmts:
    - condition: ( sqlite3_mutex_held(pCtx->pOut->db->mutex) )
      pos:
        line_end: 81904
        line_start: 81904
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 81907
      start: 81904
    functionDepth: 8
    functionLinenumber: 81904
    functionLinenumberEnd: 81907
    functionName: sqlite3_result_null
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_mutex_held
    - sqlite3VdbeMemSetNull
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_result_null(sqlite3_context *pCtx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:81915,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:81915,1
    - Dst: sqlite3VdbeMemRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:81916,1
    - Dst: sqlite3VdbeMemSetPointer
      Src: /src/nss/lib/sqlite/sqlite3.c:81918,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - pCtx
    - pPtr
    - zPType
    argTypes:
    - sqlite3_context*
    - void*
    - char*
    assertStmts:
    - condition: ( sqlite3_mutex_held(pOut->db->mutex) )
      pos:
        line_end: 81914
        line_start: 81914
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 81919
      start: 81908
    functionDepth: 9
    functionLinenumber: 81908
    functionLinenumberEnd: 81919
    functionName: sqlite3_result_pointer
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3VdbeMemRelease
    - sqlite3_mutex_held
    - sqlite3VdbeMemSetPointer
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_result_pointer(\n  sqlite3_context *pCtx,\n  void
      *pPtr,\n  const char *zPType,\n  void (*xDestructor)(void*)\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:81922,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:81922,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pCtx
    - eSubtype
    argTypes:
    - sqlite3_context*
    - unsigned int
    assertStmts:
    - condition: ( sqlite3_mutex_held(pOut->db->mutex) )
      pos:
        line_end: 81921
        line_start: 81921
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 81925
      start: 81920
    functionDepth: 1
    functionLinenumber: 81920
    functionLinenumberEnd: 81925
    functionName: sqlite3_result_subtype
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_mutex_held
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_result_subtype(sqlite3_context *pCtx, unsigned int
      eSubtype)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:81932,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:81932,1
    - Dst: setResultStrOrError
      Src: /src/nss/lib/sqlite/sqlite3.c:81933,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - pCtx
    - z
    - n
    argTypes:
    - sqlite3_context*
    - char*
    - int
    assertStmts:
    - condition: ( sqlite3_mutex_held(pCtx->pOut->db->mutex) )
      pos:
        line_end: 81931
        line_start: 81931
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 81934
      start: 81926
    functionDepth: 13
    functionLinenumber: 81926
    functionLinenumberEnd: 81934
    functionName: sqlite3_result_text
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 5
    functionsReached:
    - assert
    - sqlite3_mutex_held
    - setResultStrOrError
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_result_text(\n  sqlite3_context *pCtx, \n  const
      char *z, \n  int n,\n  void (*xDel)(void *)\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:81942,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:81942,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:81943,1
    - Dst: invokeValueDestructor
      Src: /src/nss/lib/sqlite/sqlite3.c:81946,1
    - Dst: setResultStrOrError
      Src: /src/nss/lib/sqlite/sqlite3.c:81948,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - pCtx
    - z
    - n
    - enc
    argTypes:
    - sqlite3_context*
    - char*
    - sqlite3_uint64
    - unsigned char
    assertStmts:
    - condition: ( sqlite3_mutex_held(pCtx->pOut->db->mutex) )
      pos:
        line_end: 81941
        line_start: 81941
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( xDel!=SQLITE_DYNAMIC )
      pos:
        line_end: 81942
        line_start: 81942
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 81950
      start: 81935
    functionDepth: 13
    functionLinenumber: 81935
    functionLinenumberEnd: 81950
    functionName: sqlite3_result_text64
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_mutex_held
    - setResultStrOrError
    - invokeValueDestructor
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_result_text64(\n  sqlite3_context *pCtx, \n  const
      char *z, \n  sqlite3_uint64 n,\n  void (*xDel)(void *),\n  unsigned char enc\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:81958,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:81958,1
    - Dst: setResultStrOrError
      Src: /src/nss/lib/sqlite/sqlite3.c:81959,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - pCtx
    - z
    - n
    argTypes:
    - sqlite3_context*
    - void*
    - int
    assertStmts:
    - condition: ( sqlite3_mutex_held(pCtx->pOut->db->mutex) )
      pos:
        line_end: 81957
        line_start: 81957
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 81960
      start: 81952
    functionDepth: 13
    functionLinenumber: 81952
    functionLinenumberEnd: 81960
    functionName: sqlite3_result_text16
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_mutex_held
    - setResultStrOrError
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_result_text16(\n  sqlite3_context *pCtx, \n  const
      void *z, \n  int n, \n  void (*xDel)(void *)\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:81967,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:81967,1
    - Dst: setResultStrOrError
      Src: /src/nss/lib/sqlite/sqlite3.c:81968,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - pCtx
    - z
    - n
    argTypes:
    - sqlite3_context*
    - void*
    - int
    assertStmts:
    - condition: ( sqlite3_mutex_held(pCtx->pOut->db->mutex) )
      pos:
        line_end: 81966
        line_start: 81966
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 81969
      start: 81961
    functionDepth: 13
    functionLinenumber: 81961
    functionLinenumberEnd: 81969
    functionName: sqlite3_result_text16be
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_mutex_held
    - setResultStrOrError
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_result_text16be(\n  sqlite3_context *pCtx, \n  const
      void *z, \n  int n, \n  void (*xDel)(void *)\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:81976,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:81976,1
    - Dst: setResultStrOrError
      Src: /src/nss/lib/sqlite/sqlite3.c:81977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - pCtx
    - z
    - n
    argTypes:
    - sqlite3_context*
    - void*
    - int
    assertStmts:
    - condition: ( sqlite3_mutex_held(pCtx->pOut->db->mutex) )
      pos:
        line_end: 81975
        line_start: 81975
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 81978
      start: 81970
    functionDepth: 13
    functionLinenumber: 81970
    functionLinenumberEnd: 81978
    functionName: sqlite3_result_text16le
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_mutex_held
    - setResultStrOrError
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_result_text16le(\n  sqlite3_context *pCtx, \n  const
      void *z, \n  int n, \n  void (*xDel)(void *)\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:81981,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:81981,1
    - Dst: sqlite3VdbeMemCopy
      Src: /src/nss/lib/sqlite/sqlite3.c:81982,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pCtx
    - pValue
    argTypes:
    - sqlite3_context*
    - sqlite3_value*
    assertStmts:
    - condition: ( sqlite3_mutex_held(pCtx->pOut->db->mutex) )
      pos:
        line_end: 81980
        line_start: 81980
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 81983
      start: 81980
    functionDepth: 13
    functionLinenumber: 81980
    functionLinenumberEnd: 81983
    functionName: sqlite3_result_value
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_mutex_held
    - sqlite3VdbeMemCopy
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_result_value(sqlite3_context *pCtx, sqlite3_value
      *pValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:81985,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:81985,1
    - Dst: sqlite3VdbeMemSetZeroBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:81986,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pCtx
    - n
    argTypes:
    - sqlite3_context*
    - int
    assertStmts:
    - condition: ( sqlite3_mutex_held(pCtx->pOut->db->mutex) )
      pos:
        line_end: 81984
        line_start: 81984
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 81987
      start: 81984
    functionDepth: 10
    functionLinenumber: 81984
    functionLinenumberEnd: 81987
    functionName: sqlite3_result_zeroblob
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_mutex_held
    - sqlite3VdbeMemSetZeroBlob
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_result_zeroblob(sqlite3_context *pCtx, int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:81990,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:81990,1
    - Dst: sqlite3VdbeMemSetZeroBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:81994,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - pCtx
    - n
    argTypes:
    - sqlite3_context*
    - u64
    assertStmts:
    - condition: ( sqlite3_mutex_held(pOut->db->mutex) )
      pos:
        line_end: 81989
        line_start: 81989
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 81996
      start: 81988
    functionDepth: 10
    functionLinenumber: 81988
    functionLinenumberEnd: 81996
    functionName: sqlite3_result_zeroblob64
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_mutex_held
    - sqlite3VdbeMemSetZeroBlob
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_result_zeroblob64(sqlite3_context *pCtx, u64 n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeMemSetStr
      Src: /src/nss/lib/sqlite/sqlite3.c:82003,1
    - Dst: sqlite3ErrStr
      Src: /src/nss/lib/sqlite/sqlite3.c:82003,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - pCtx
    - errCode
    argTypes:
    - sqlite3_context*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82006
      start: 81997
    functionDepth: 12
    functionLinenumber: 81997
    functionLinenumberEnd: 82006
    functionName: sqlite3_result_error_code
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ErrStr
    - sqlite3VdbeMemSetStr
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_result_error_code(sqlite3_context *pCtx, int errCode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:82010,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:82010,1
    - Dst: sqlite3VdbeMemSetStr
      Src: /src/nss/lib/sqlite/sqlite3.c:82012,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pCtx
    argTypes:
    - sqlite3_context*
    assertStmts:
    - condition: ( sqlite3_mutex_held(pCtx->pOut->db->mutex) )
      pos:
        line_end: 82009
        line_start: 82009
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 82014
      start: 82009
    functionDepth: 12
    functionLinenumber: 82009
    functionLinenumberEnd: 82014
    functionName: sqlite3_result_error_toobig
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 3
    functionsReached:
    - assert
    - sqlite3_mutex_held
    - sqlite3VdbeMemSetStr
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_result_error_toobig(sqlite3_context *pCtx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:82018,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:82018,1
    - Dst: sqlite3VdbeMemSetNull
      Src: /src/nss/lib/sqlite/sqlite3.c:82019,1
    - Dst: sqlite3OomFault
      Src: /src/nss/lib/sqlite/sqlite3.c:82021,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pCtx
    argTypes:
    - sqlite3_context*
    assertStmts:
    - condition: ( sqlite3_mutex_held(pCtx->pOut->db->mutex) )
      pos:
        line_end: 82017
        line_start: 82017
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 82022
      start: 82017
    functionDepth: 8
    functionLinenumber: 82017
    functionLinenumberEnd: 82022
    functionName: sqlite3_result_error_nomem
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - assert
    - sqlite3_mutex_held
    - sqlite3OomFault
    - sqlite3VdbeMemSetNull
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_result_error_nomem(sqlite3_context *pCtx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:82030,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:82030,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pCtx
    argTypes:
    - sqlite3_context*
    assertStmts:
    - condition: ( sqlite3_mutex_held(pCtx->pOut->db->mutex) )
      pos:
        line_end: 82029
        line_start: 82029
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 82035
      start: 82029
    functionDepth: 1
    functionLinenumber: 82029
    functionLinenumberEnd: 82035
    functionName: sqlite3ResultIntReal
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_mutex_held
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ResultIntReal(sqlite3_context *pCtx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeEnter
      Src: /src/nss/lib/sqlite/sqlite3.c:82051,1
    - Dst: sqlite3PagerWalCallback
      Src: /src/nss/lib/sqlite/sqlite3.c:82052,1
    - Dst: sqlite3BtreePager
      Src: /src/nss/lib/sqlite/sqlite3.c:82052,1
    - Dst: sqlite3BtreeLeave
      Src: /src/nss/lib/sqlite/sqlite3.c:82053,1
    - Dst: sqlite3*::xWalCallback
      Src: /src/nss/lib/sqlite/sqlite3.c:82055,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82061
      start: 82043
    functionDepth: 2
    functionLinenumber: 82043
    functionLinenumberEnd: 82061
    functionName: doWalCallbacks
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3*::xWalCallback
    - sqlite3BtreeLeave
    - sqlite3BtreeEnter
    - sqlite3PagerWalCallback
    - sqlite3BtreePager
    linkageType: ''
    returnType: int
    signature: int doWalCallbacks(sqlite3 *db)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:82077,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:82097,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:82102,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:82127,1
    - Dst: sqlite3OsCurrentTimeInt64
      Src: /src/nss/lib/sqlite/sqlite3.c:82134,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:82136,1
    - Dst: sqlite3VdbeList
      Src: /src/nss/lib/sqlite/sqlite3.c:82150,1
    - Dst: sqlite3VdbeExec
      Src: /src/nss/lib/sqlite/sqlite3.c:82155,1
    - Dst: checkProfileCallback
      Src: /src/nss/lib/sqlite/sqlite3.c:82162,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:82166,1
    - Dst: doWalCallbacks
      Src: /src/nss/lib/sqlite/sqlite3.c:82167,1
    - Dst: sqlite3ApiExit
      Src: /src/nss/lib/sqlite/sqlite3.c:82175,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:82186,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:82189,1
    - Dst: sqlite3VdbeTransferError
      Src: /src/nss/lib/sqlite/sqlite3.c:82198,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 68
    argCount: 1
    argNames:
    - p
    argTypes:
    - Vdbe*
    assertStmts:
    - condition: (p)
      pos:
        line_end: 82076
        line_start: 82076
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( db->nVdbeWrite>0 || db->autoCommit==0 \n        || (db->nDeferredCons==0
        && db->nDeferredImmCons==0)\n    )"
      pos:
        line_end: 82128
        line_start: 82126
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->startTime==0 )
      pos:
        line_end: 82135
        line_start: 82135
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->rc==SQLITE_OK )
      pos:
        line_end: 82165
        line_start: 82165
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( rc==SQLITE_ROW  || rc==SQLITE_DONE   || rc==SQLITE_ERROR \n       ||
        (rc&0xff)==SQLITE_BUSY || rc==SQLITE_MISUSE\n  )"
      pos:
        line_end: 82187
        line_start: 82185
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (p->rc!=SQLITE_ROW && p->rc!=SQLITE_DONE) || p->rc==p->rcApp )
      pos:
        line_end: 82188
        line_start: 82188
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 82201
      start: 82073
    functionDepth: 25
    functionLinenumber: 82073
    functionLinenumberEnd: 82201
    functionName: sqlite3Step
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeExec
    - sqlite3_reset
    - sqlite3ApiExit
    - sqlite3VdbeTransferError
    - sqlite3OsCurrentTimeInt64
    - assert
    - sqlite3VdbeList
    - checkProfileCallback
    - doWalCallbacks
    linkageType: ''
    returnType: int
    signature: int sqlite3Step(Vdbe *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vdbeSafetyNotNull
      Src: /src/nss/lib/sqlite/sqlite3.c:82214,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:82218,1
    - Dst: sqlite3Step
      Src: /src/nss/lib/sqlite/sqlite3.c:82220,1
    - Dst: sqlite3Reprepare
      Src: /src/nss/lib/sqlite/sqlite3.c:82223,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:82233,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:82234,1
    - Dst: sqlite3DbStrDup
      Src: /src/nss/lib/sqlite/sqlite3.c:82236,1
    - Dst: sqlite3ApiExit
      Src: /src/nss/lib/sqlite/sqlite3.c:82237,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:82244,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:82246,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:82248,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - pStmt
    argTypes:
    - sqlite3_stmt*
    assertStmts:
    - condition: ( v->expired==0 )
      pos:
        line_end: 82245
        line_start: 82245
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 82250
      start: 82208
    functionDepth: 26
    functionLinenumber: 82208
    functionLinenumberEnd: 82250
    functionName: sqlite3_step
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 13
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3Step
    - sqlite3_reset
    - vdbeSafetyNotNull
    - sqlite3DbFree
    - sqlite3DbStrDup
    - sqlite3Reprepare
    - sqlite3ApiExit
    - sqlite3_mutex_leave
    - assert
    - sqlite3_value_text
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_step(sqlite3_stmt *pStmt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:82258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_context*
    assertStmts:
    - condition: ( p && p->pFunc )
      pos:
        line_end: 82257
        line_start: 82257
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 82260
      start: 82257
    functionDepth: 0
    functionLinenumber: 82257
    functionLinenumberEnd: 82260
    functionName: sqlite3_user_data
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *sqlite3_user_data(sqlite3_context *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:82273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_context*
    assertStmts:
    - condition: ( p && p->pOut )
      pos:
        line_end: 82272
        line_start: 82272
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 82275
      start: 82272
    functionDepth: 0
    functionLinenumber: 82272
    functionLinenumberEnd: 82275
    functionName: sqlite3_context_db_handle
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *sqlite3_context_db_handle(sqlite3_context *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:82292,1
    - Dst: sqlite3_value_nochange
      Src: /src/nss/lib/sqlite/sqlite3.c:82293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_context*
    assertStmts:
    - condition: ( p )
      pos:
        line_end: 82291
        line_start: 82291
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 82294
      start: 82291
    functionDepth: 1
    functionLinenumber: 82291
    functionLinenumberEnd: 82294
    functionName: sqlite3_vtab_nochange
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_value_nochange
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_vtab_nochange(sqlite3_context *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:82307,1
    - Dst: sqlite3OsCurrentTimeInt64
      Src: /src/nss/lib/sqlite/sqlite3.c:82313,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_context*
    assertStmts:
    - condition: ( p->pVdbe!=0 )
      pos:
        line_end: 82306
        line_start: 82306
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 82317
      start: 82303
    functionDepth: 1
    functionLinenumber: 82303
    functionLinenumberEnd: 82317
    functionName: sqlite3_int64::sqlite3StmtCurrentTime
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3OsCurrentTimeInt64
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3_int64 sqlite3StmtCurrentTime(sqlite3_context
      *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:82325,1
    - Dst: sqlite3VdbeMemSetNull
      Src: /src/nss/lib/sqlite/sqlite3.c:82327,1
    - Dst: sqlite3VdbeMemClearAndResize
      Src: /src/nss/lib/sqlite/sqlite3.c:82330,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:82334,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - p
    - nByte
    argTypes:
    - sqlite3_context*
    - int
    assertStmts:
    - condition: ( (pMem->flags & MEM_Agg)==0 )
      pos:
        line_end: 82324
        line_start: 82324
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 82338
      start: 82323
    functionDepth: 11
    functionLinenumber: 82323
    functionLinenumberEnd: 82338
    functionName: createAggContext
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3VdbeMemSetNull
    - sqlite3VdbeMemClearAndResize
    - memset
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: SQLITE_NOINLINE *createAggContext(sqlite3_context *p, int nByte)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:82346,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:82347,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:82347,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:82348,1
    - Dst: createAggContext
      Src: /src/nss/lib/sqlite/sqlite3.c:82350,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - p
    - nByte
    argTypes:
    - sqlite3_context*
    - int
    assertStmts:
    - condition: ( p && p->pFunc && p->pFunc->xFinalize )
      pos:
        line_end: 82345
        line_start: 82345
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3_mutex_held(p->pOut->db->mutex) )
      pos:
        line_end: 82346
        line_start: 82346
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 82354
      start: 82345
    functionDepth: 12
    functionLinenumber: 82345
    functionLinenumberEnd: 82354
    functionName: sqlite3_aggregate_context
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_mutex_held
    - testcase
    - createAggContext
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *sqlite3_aggregate_context(sqlite3_context *p, int nByte)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:82369,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:82369,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:82373,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - pCtx
    - iArg
    argTypes:
    - sqlite3_context*
    - int
    assertStmts:
    - condition: ( sqlite3_mutex_held(pCtx->pOut->db->mutex) )
      pos:
        line_end: 82368
        line_start: 82368
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCtx->pVdbe!=0 )
      pos:
        line_end: 82372
        line_start: 82372
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 82381
      start: 82366
    functionDepth: 1
    functionLinenumber: 82366
    functionLinenumberEnd: 82381
    functionName: sqlite3_get_auxdata
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_mutex_held
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *sqlite3_get_auxdata(sqlite3_context *pCtx, int iArg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:82403,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:82403,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:82407,1
    - Dst: sqlite3DbMallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:82416,1
    - Dst: AuxData*::xDeleteAux
      Src: /src/nss/lib/sqlite/sqlite3.c:82424,1
    - Dst: xDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:82433,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 3
    argNames:
    - pCtx
    - iArg
    - pAux
    argTypes:
    - sqlite3_context*
    - int
    - void*
    assertStmts:
    - condition: ( sqlite3_mutex_held(pCtx->pOut->db->mutex) )
      pos:
        line_end: 82402
        line_start: 82402
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pVdbe!=0 )
      pos:
        line_end: 82406
        line_start: 82406
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 82435
      start: 82394
    functionDepth: 2
    functionLinenumber: 82394
    functionLinenumberEnd: 82435
    functionName: sqlite3_set_auxdata
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - AuxData*::xDeleteAux
    - assert
    - sqlite3_mutex_held
    - xDelete
    - sqlite3DbMallocZero
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_set_auxdata(\n  sqlite3_context *pCtx, \n  int
      iArg, \n  void *pAux, \n  void (*xDelete)(void*)\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:82448,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_context*
    assertStmts:
    - condition: ( p && p->pMem && p->pFunc && p->pFunc->xFinalize )
      pos:
        line_end: 82447
        line_start: 82447
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 82450
      start: 82447
    functionDepth: 0
    functionLinenumber: 82447
    functionLinenumberEnd: 82450
    functionName: sqlite3_aggregate_count
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_aggregate_count(sqlite3_context *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pStmt
    argTypes:
    - sqlite3_stmt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82459
      start: 82456
    functionDepth: 0
    functionLinenumber: 82456
    functionLinenumberEnd: 82459
    functionName: sqlite3_column_count
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_column_count(sqlite3_stmt *pStmt)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - pStmt
    argTypes:
    - sqlite3_stmt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82469
      start: 82465
    functionDepth: 0
    functionLinenumber: 82465
    functionLinenumberEnd: 82469
    functionName: sqlite3_data_count
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_data_count(sqlite3_stmt *pStmt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: columnNullValue
      Src: /src/nss/lib/sqlite/sqlite3.c:82519,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:82520,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:82521,1
    - Dst: sqlite3Error
      Src: /src/nss/lib/sqlite/sqlite3.c:82525,1
    - Dst: columnNullValue
      Src: /src/nss/lib/sqlite/sqlite3.c:82526,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - pStmt
    - i
    argTypes:
    - sqlite3_stmt*
    - int
    assertStmts:
    - condition: ( pVm->db )
      pos:
        line_end: 82519
        line_start: 82519
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 82529
      start: 82514
    functionDepth: 3
    functionLinenumber: 82514
    functionLinenumberEnd: 82529
    functionName: columnMem
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - columnNullValue
    - sqlite3_mutex_enter
    - sqlite3Error
    linkageType: ''
    returnType: Mem
    signature: Mem *columnMem(sqlite3_stmt *pStmt, int i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:82558,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:82559,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:82559,1
    - Dst: sqlite3ApiExit
      Src: /src/nss/lib/sqlite/sqlite3.c:82560,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:82561,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pStmt
    argTypes:
    - sqlite3_stmt*
    assertStmts:
    - condition: ( p->db!=0 )
      pos:
        line_end: 82557
        line_start: 82557
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3_mutex_held(p->db->mutex) )
      pos:
        line_end: 82558
        line_start: 82558
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 82563
      start: 82549
    functionDepth: 3
    functionLinenumber: 82549
    functionLinenumberEnd: 82563
    functionName: columnMallocFailure
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_mutex_held
    - sqlite3_mutex_leave
    - sqlite3ApiExit
    linkageType: ''
    returnType: void
    signature: void columnMallocFailure(sqlite3_stmt *pStmt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:82571,1
    - Dst: columnMem
      Src: /src/nss/lib/sqlite/sqlite3.c:82571,1
    - Dst: columnMallocFailure
      Src: /src/nss/lib/sqlite/sqlite3.c:82576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pStmt
    - i
    argTypes:
    - sqlite3_stmt*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82578
      start: 82569
    functionDepth: 4
    functionLinenumber: 82569
    functionLinenumberEnd: 82578
    functionName: sqlite3_column_blob
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 3
    functionsReached:
    - columnMallocFailure
    - columnMem
    - sqlite3_value_blob
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *sqlite3_column_blob(sqlite3_stmt *pStmt, int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:82580,1
    - Dst: columnMem
      Src: /src/nss/lib/sqlite/sqlite3.c:82580,1
    - Dst: columnMallocFailure
      Src: /src/nss/lib/sqlite/sqlite3.c:82581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pStmt
    - i
    argTypes:
    - sqlite3_stmt*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82583
      start: 82579
    functionDepth: 16
    functionLinenumber: 82579
    functionLinenumberEnd: 82583
    functionName: sqlite3_column_bytes
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 3
    functionsReached:
    - columnMallocFailure
    - columnMem
    - sqlite3_value_bytes
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_column_bytes(sqlite3_stmt *pStmt, int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_bytes16
      Src: /src/nss/lib/sqlite/sqlite3.c:82585,1
    - Dst: columnMem
      Src: /src/nss/lib/sqlite/sqlite3.c:82585,1
    - Dst: columnMallocFailure
      Src: /src/nss/lib/sqlite/sqlite3.c:82586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pStmt
    - i
    argTypes:
    - sqlite3_stmt*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82588
      start: 82584
    functionDepth: 16
    functionLinenumber: 82584
    functionLinenumberEnd: 82588
    functionName: sqlite3_column_bytes16
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - columnMallocFailure
    - columnMem
    - sqlite3_value_bytes16
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_column_bytes16(sqlite3_stmt *pStmt, int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_double
      Src: /src/nss/lib/sqlite/sqlite3.c:82590,1
    - Dst: columnMem
      Src: /src/nss/lib/sqlite/sqlite3.c:82590,1
    - Dst: columnMallocFailure
      Src: /src/nss/lib/sqlite/sqlite3.c:82591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pStmt
    - i
    argTypes:
    - sqlite3_stmt*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82593
      start: 82589
    functionDepth: 5
    functionLinenumber: 82589
    functionLinenumberEnd: 82593
    functionName: sqlite3_column_double
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - columnMallocFailure
    - sqlite3_value_double
    - columnMem
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_column_double(sqlite3_stmt *pStmt, int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_int
      Src: /src/nss/lib/sqlite/sqlite3.c:82595,1
    - Dst: columnMem
      Src: /src/nss/lib/sqlite/sqlite3.c:82595,1
    - Dst: columnMallocFailure
      Src: /src/nss/lib/sqlite/sqlite3.c:82596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pStmt
    - i
    argTypes:
    - sqlite3_stmt*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82598
      start: 82594
    functionDepth: 6
    functionLinenumber: 82594
    functionLinenumberEnd: 82598
    functionName: sqlite3_column_int
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - columnMallocFailure
    - sqlite3_value_int
    - columnMem
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_column_int(sqlite3_stmt *pStmt, int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite_int64::sqlite3_value_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:82600,1
    - Dst: columnMem
      Src: /src/nss/lib/sqlite/sqlite3.c:82600,1
    - Dst: columnMallocFailure
      Src: /src/nss/lib/sqlite/sqlite3.c:82601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pStmt
    - i
    argTypes:
    - sqlite3_stmt*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82603
      start: 82599
    functionDepth: 6
    functionLinenumber: 82599
    functionLinenumberEnd: 82603
    functionName: sqlite_int64::sqlite3_column_int64
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - columnMem
    - columnMallocFailure
    - sqlite_int64::sqlite3_value_int64
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite_int64 sqlite3_column_int64(sqlite3_stmt *pStmt, int
      i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:82605,1
    - Dst: columnMem
      Src: /src/nss/lib/sqlite/sqlite3.c:82605,1
    - Dst: columnMallocFailure
      Src: /src/nss/lib/sqlite/sqlite3.c:82606,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pStmt
    - i
    argTypes:
    - sqlite3_stmt*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82608
      start: 82604
    functionDepth: 15
    functionLinenumber: 82604
    functionLinenumberEnd: 82608
    functionName: sqlite3_column_text
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3_value_text
    - columnMallocFailure
    - columnMem
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *sqlite3_column_text(sqlite3_stmt *pStmt, int i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: columnMem
      Src: /src/nss/lib/sqlite/sqlite3.c:82610,1
    - Dst: columnMallocFailure
      Src: /src/nss/lib/sqlite/sqlite3.c:82615,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82617
      start: 82609
    functionDepth: 4
    functionLinenumber: 82609
    functionLinenumberEnd: 82617
    functionName: sqlite3_value *sqlite3_column_value(sqlite3_stmt *pStmt, int i)
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - columnMallocFailure
    - columnMem
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_value *sqlite3_column_value(sqlite3_stmt *pStmt,
      int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_text16
      Src: /src/nss/lib/sqlite/sqlite3.c:82620,1
    - Dst: columnMem
      Src: /src/nss/lib/sqlite/sqlite3.c:82620,1
    - Dst: columnMallocFailure
      Src: /src/nss/lib/sqlite/sqlite3.c:82621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pStmt
    - i
    argTypes:
    - sqlite3_stmt*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82623
      start: 82619
    functionDepth: 15
    functionLinenumber: 82619
    functionLinenumberEnd: 82623
    functionName: sqlite3_column_text16
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - columnMallocFailure
    - sqlite3_value_text16
    - columnMem
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *sqlite3_column_text16(sqlite3_stmt *pStmt, int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:82626,1
    - Dst: columnMem
      Src: /src/nss/lib/sqlite/sqlite3.c:82626,1
    - Dst: columnMallocFailure
      Src: /src/nss/lib/sqlite/sqlite3.c:82627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pStmt
    - i
    argTypes:
    - sqlite3_stmt*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82629
      start: 82625
    functionDepth: 4
    functionLinenumber: 82625
    functionLinenumberEnd: 82629
    functionName: sqlite3_column_type
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - columnMallocFailure
    - sqlite3_value_type
    - columnMem
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_column_type(sqlite3_stmt *pStmt, int i)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:82666,1
    - Dst: sqlite3_column_count
      Src: /src/nss/lib/sqlite/sqlite3.c:82667,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:82670,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:82671,1
    - Dst: sqlite3_value_text16
      Src: /src/nss/lib/sqlite/sqlite3.c:82674,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:82678,1
    - Dst: sqlite3OomClear
      Src: /src/nss/lib/sqlite/sqlite3.c:82684,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:82687,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 4
    argNames:
    - pStmt
    - N
    - useUtf16
    - useType
    argTypes:
    - sqlite3_stmt*
    - int
    - int
    - int
    assertStmts:
    - condition: ( db!=0 )
      pos:
        line_end: 82665
        line_start: 82665
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( db->mallocFailed==0 )
      pos:
        line_end: 82670
        line_start: 82670
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 82690
      start: 82647
    functionDepth: 15
    functionLinenumber: 82647
    functionLinenumberEnd: 82690
    functionName: columnName
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3_mutex_leave
    - sqlite3_column_count
    - assert
    - sqlite3_value_text16
    - sqlite3OomClear
    - sqlite3_value_text
    linkageType: ''
    returnType: void
    signature: "void *columnName(\n  sqlite3_stmt *pStmt,     /* The statement */\n
      \ int N,                   /* Which column to get the name for */\n  int useUtf16,
      \           /* True to return the name as UTF16 */\n  int useType              /*
      What type of name */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: columnName
      Src: /src/nss/lib/sqlite/sqlite3.c:82697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pStmt
    - N
    argTypes:
    - sqlite3_stmt*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82698
      start: 82696
    functionDepth: 16
    functionLinenumber: 82696
    functionLinenumberEnd: 82698
    functionName: sqlite3_column_name
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - columnName
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *sqlite3_column_name(sqlite3_stmt *pStmt, int N)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: columnName
      Src: /src/nss/lib/sqlite/sqlite3.c:82701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pStmt
    - N
    argTypes:
    - sqlite3_stmt*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82702
      start: 82700
    functionDepth: 16
    functionLinenumber: 82700
    functionLinenumberEnd: 82702
    functionName: sqlite3_column_name16
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - columnName
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *sqlite3_column_name16(sqlite3_stmt *pStmt, int N)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: columnName
      Src: /src/nss/lib/sqlite/sqlite3.c:82720,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pStmt
    - N
    argTypes:
    - sqlite3_stmt*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82721
      start: 82719
    functionDepth: 16
    functionLinenumber: 82719
    functionLinenumberEnd: 82721
    functionName: sqlite3_column_decltype
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - columnName
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *sqlite3_column_decltype(sqlite3_stmt *pStmt, int N)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: columnName
      Src: /src/nss/lib/sqlite/sqlite3.c:82724,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pStmt
    - N
    argTypes:
    - sqlite3_stmt*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82725
      start: 82723
    functionDepth: 16
    functionLinenumber: 82723
    functionLinenumberEnd: 82725
    functionName: sqlite3_column_decltype16
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - columnName
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *sqlite3_column_decltype16(sqlite3_stmt *pStmt, int N)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: columnName
      Src: /src/nss/lib/sqlite/sqlite3.c:82736,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pStmt
    - N
    argTypes:
    - sqlite3_stmt*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82737
      start: 82735
    functionDepth: 16
    functionLinenumber: 82735
    functionLinenumberEnd: 82737
    functionName: sqlite3_column_database_name
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - columnName
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *sqlite3_column_database_name(sqlite3_stmt *pStmt, int N)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: columnName
      Src: /src/nss/lib/sqlite/sqlite3.c:82740,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pStmt
    - N
    argTypes:
    - sqlite3_stmt*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82741
      start: 82739
    functionDepth: 16
    functionLinenumber: 82739
    functionLinenumberEnd: 82741
    functionName: sqlite3_column_database_name16
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - columnName
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *sqlite3_column_database_name16(sqlite3_stmt *pStmt, int
      N)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: columnName
      Src: /src/nss/lib/sqlite/sqlite3.c:82750,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pStmt
    - N
    argTypes:
    - sqlite3_stmt*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82751
      start: 82749
    functionDepth: 16
    functionLinenumber: 82749
    functionLinenumberEnd: 82751
    functionName: sqlite3_column_table_name
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - columnName
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *sqlite3_column_table_name(sqlite3_stmt *pStmt, int N)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: columnName
      Src: /src/nss/lib/sqlite/sqlite3.c:82754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pStmt
    - N
    argTypes:
    - sqlite3_stmt*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82755
      start: 82753
    functionDepth: 16
    functionLinenumber: 82753
    functionLinenumberEnd: 82755
    functionName: sqlite3_column_table_name16
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - columnName
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *sqlite3_column_table_name16(sqlite3_stmt *pStmt, int N)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: columnName
      Src: /src/nss/lib/sqlite/sqlite3.c:82764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pStmt
    - N
    argTypes:
    - sqlite3_stmt*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82765
      start: 82763
    functionDepth: 16
    functionLinenumber: 82763
    functionLinenumberEnd: 82765
    functionName: sqlite3_column_origin_name
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - columnName
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *sqlite3_column_origin_name(sqlite3_stmt *pStmt, int N)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: columnName
      Src: /src/nss/lib/sqlite/sqlite3.c:82768,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pStmt
    - N
    argTypes:
    - sqlite3_stmt*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82769
      start: 82767
    functionDepth: 16
    functionLinenumber: 82767
    functionLinenumberEnd: 82769
    functionName: sqlite3_column_origin_name16
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - columnName
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *sqlite3_column_origin_name16(sqlite3_stmt *pStmt, int N)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vdbeSafetyNotNull
      Src: /src/nss/lib/sqlite/sqlite3.c:82791,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:82794,1
    - Dst: sqlite3Error
      Src: /src/nss/lib/sqlite/sqlite3.c:82796,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:82797,1
    - Dst: sqlite3_log
      Src: /src/nss/lib/sqlite/sqlite3.c:82798,1
    - Dst: sqlite3Error
      Src: /src/nss/lib/sqlite/sqlite3.c:82803,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:82804,1
    - Dst: sqlite3VdbeMemRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:82809,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:82822,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - p
    - i
    argTypes:
    - Vdbe*
    - int
    assertStmts:
    - condition: ( (p->prepFlags & SQLITE_PREPARE_SAVESQL)!=0 || p->expmask==0 )
      pos:
        line_end: 82821
        line_start: 82821
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 82827
      start: 82789
    functionDepth: 12
    functionLinenumber: 82789
    functionLinenumberEnd: 82827
    functionName: vdbeUnbind
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - vdbeSafetyNotNull
    - sqlite3_log
    - sqlite3VdbeMemRelease
    - sqlite3_mutex_leave
    - sqlite3Error
    - assert
    linkageType: ''
    returnType: int
    signature: int vdbeUnbind(Vdbe *p, int i)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: vdbeUnbind
      Src: /src/nss/lib/sqlite/sqlite3.c:82844,1
    - Dst: sqlite3VdbeMemSetStr
      Src: /src/nss/lib/sqlite/sqlite3.c:82848,1
    - Dst: sqlite3VdbeChangeEncoding
      Src: /src/nss/lib/sqlite/sqlite3.c:82850,1
    - Dst: ENC
      Src: /src/nss/lib/sqlite/sqlite3.c:82850,1
    - Dst: sqlite3Error
      Src: /src/nss/lib/sqlite/sqlite3.c:82853,1
    - Dst: sqlite3ApiExit
      Src: /src/nss/lib/sqlite/sqlite3.c:82854,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:82857,1
    - Dst: xDel
      Src: /src/nss/lib/sqlite/sqlite3.c:82859,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 5
    argNames:
    - pStmt
    - i
    - zData
    - nData
    - encoding
    argTypes:
    - sqlite3_stmt*
    - int
    - void*
    - int
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82862
      start: 82832
    functionDepth: 13
    functionLinenumber: 82832
    functionLinenumberEnd: 82862
    functionName: bindText
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - vdbeUnbind
    - sqlite3VdbeMemSetStr
    - sqlite3ApiExit
    - sqlite3_mutex_leave
    - sqlite3Error
    - ENC
    - sqlite3VdbeChangeEncoding
    - xDel
    linkageType: ''
    returnType: int
    signature: "int bindText(\n  sqlite3_stmt *pStmt,   /* The statement to bind against
      */\n  int i,                 /* Index of the parameter to bind */\n  const void
      *zData,     /* Pointer to the data to be bound */\n  int nData,             /*
      Number of bytes of data to be bound */\n  void (*xDel)(void*),   /* Destructor
      for the data */\n  u8 encoding            /* Encoding for the data */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bindText
      Src: /src/nss/lib/sqlite/sqlite3.c:82878,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - pStmt
    - i
    - zData
    - nData
    argTypes:
    - sqlite3_stmt*
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82879
      start: 82868
    functionDepth: 14
    functionLinenumber: 82868
    functionLinenumberEnd: 82879
    functionName: sqlite3_bind_blob
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 5
    functionsReached:
    - bindText
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_bind_blob(\n  sqlite3_stmt *pStmt, \n  int i, \n
      \ const void *zData, \n  int nData, \n  void (*xDel)(void*)\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:82887,1
    - Dst: invokeValueDestructor
      Src: /src/nss/lib/sqlite/sqlite3.c:82889,1
    - Dst: bindText
      Src: /src/nss/lib/sqlite/sqlite3.c:82891,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - pStmt
    - i
    - zData
    - nData
    argTypes:
    - sqlite3_stmt*
    - int
    - void*
    - sqlite3_uint64
    assertStmts:
    - condition: ( xDel!=SQLITE_DYNAMIC )
      pos:
        line_end: 82886
        line_start: 82886
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 82893
      start: 82880
    functionDepth: 14
    functionLinenumber: 82880
    functionLinenumberEnd: 82893
    functionName: sqlite3_bind_blob64
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - bindText
    - invokeValueDestructor
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_bind_blob64(\n  sqlite3_stmt *pStmt, \n  int i,
      \n  const void *zData, \n  sqlite3_uint64 nData, \n  void (*xDel)(void*)\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vdbeUnbind
      Src: /src/nss/lib/sqlite/sqlite3.c:82897,1
    - Dst: sqlite3VdbeMemSetDouble
      Src: /src/nss/lib/sqlite/sqlite3.c:82899,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:82900,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - pStmt
    - i
    - rValue
    argTypes:
    - sqlite3_stmt*
    - int
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82903
      start: 82894
    functionDepth: 13
    functionLinenumber: 82894
    functionLinenumberEnd: 82903
    functionName: sqlite3_bind_double
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_leave
    - vdbeUnbind
    - sqlite3VdbeMemSetDouble
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_bind_double(sqlite3_stmt *pStmt, int i, double rValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:82905,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - i
    - iValue
    argTypes:
    - sqlite3_stmt*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82906
      start: 82904
    functionDepth: 1
    functionLinenumber: 82904
    functionLinenumberEnd: 82906
    functionName: sqlite3_bind_int
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 5
    functionsReached:
    - sqlite3_bind_int64
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_bind_int(sqlite3_stmt *p, int i, int iValue)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vdbeUnbind
      Src: /src/nss/lib/sqlite/sqlite3.c:82910,1
    - Dst: sqlite3VdbeMemSetInt64
      Src: /src/nss/lib/sqlite/sqlite3.c:82912,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:82913,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - pStmt
    - i
    - iValue
    argTypes:
    - sqlite3_stmt*
    - int
    - sqlite_int64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82916
      start: 82907
    functionDepth: 13
    functionLinenumber: 82907
    functionLinenumberEnd: 82916
    functionName: sqlite3_bind_int64
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3VdbeMemSetInt64
    - vdbeUnbind
    - sqlite3_mutex_leave
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_bind_int64(sqlite3_stmt *pStmt, int i, sqlite_int64
      iValue)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vdbeUnbind
      Src: /src/nss/lib/sqlite/sqlite3.c:82920,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:82922,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pStmt
    - i
    argTypes:
    - sqlite3_stmt*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82925
      start: 82917
    functionDepth: 13
    functionLinenumber: 82917
    functionLinenumberEnd: 82925
    functionName: sqlite3_bind_null
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_leave
    - vdbeUnbind
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_bind_null(sqlite3_stmt *pStmt, int i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vdbeUnbind
      Src: /src/nss/lib/sqlite/sqlite3.c:82935,1
    - Dst: sqlite3VdbeMemSetPointer
      Src: /src/nss/lib/sqlite/sqlite3.c:82937,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:82938,1
    - Dst: xDestructor
      Src: /src/nss/lib/sqlite/sqlite3.c:82940,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - pStmt
    - i
    - pPtr
    - zPTtype
    argTypes:
    - sqlite3_stmt*
    - int
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82943
      start: 82926
    functionDepth: 13
    functionLinenumber: 82926
    functionLinenumberEnd: 82943
    functionName: sqlite3_bind_pointer
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_leave
    - vdbeUnbind
    - xDestructor
    - sqlite3VdbeMemSetPointer
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_bind_pointer(\n  sqlite3_stmt *pStmt,\n  int i,\n
      \ void *pPtr,\n  const char *zPTtype,\n  void (*xDestructor)(void*)\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bindText
      Src: /src/nss/lib/sqlite/sqlite3.c:82951,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pStmt
    - i
    - zData
    - nData
    argTypes:
    - sqlite3_stmt*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82952
      start: 82944
    functionDepth: 14
    functionLinenumber: 82944
    functionLinenumberEnd: 82952
    functionName: sqlite3_bind_text
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 4
    functionsReached:
    - bindText
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_bind_text( \n  sqlite3_stmt *pStmt, \n  int i,
      \n  const char *zData, \n  int nData, \n  void (*xDel)(void*)\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:82961,1
    - Dst: invokeValueDestructor
      Src: /src/nss/lib/sqlite/sqlite3.c:82963,1
    - Dst: bindText
      Src: /src/nss/lib/sqlite/sqlite3.c:82966,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - pStmt
    - i
    - zData
    - nData
    - enc
    argTypes:
    - sqlite3_stmt*
    - int
    - char*
    - sqlite3_uint64
    - unsigned char
    assertStmts:
    - condition: ( xDel!=SQLITE_DYNAMIC )
      pos:
        line_end: 82960
        line_start: 82960
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 82968
      start: 82953
    functionDepth: 14
    functionLinenumber: 82953
    functionLinenumberEnd: 82968
    functionName: sqlite3_bind_text64
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - bindText
    - invokeValueDestructor
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_bind_text64( \n  sqlite3_stmt *pStmt, \n  int i,
      \n  const char *zData, \n  sqlite3_uint64 nData, \n  void (*xDel)(void*),\n
      \ unsigned char enc\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bindText
      Src: /src/nss/lib/sqlite/sqlite3.c:82977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pStmt
    - i
    - zData
    - nData
    argTypes:
    - sqlite3_stmt*
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82978
      start: 82970
    functionDepth: 14
    functionLinenumber: 82970
    functionLinenumberEnd: 82978
    functionName: sqlite3_bind_text16
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - bindText
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_bind_text16(\n  sqlite3_stmt *pStmt, \n  int i,
      \n  const void *zData, \n  int nData, \n  void (*xDel)(void*)\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:82982,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:82984,1
    - Dst: sqlite3_bind_double
      Src: /src/nss/lib/sqlite/sqlite3.c:82988,1
    - Dst: sqlite3_bind_zeroblob
      Src: /src/nss/lib/sqlite/sqlite3.c:82993,1
    - Dst: sqlite3_bind_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:82995,1
    - Dst: bindText
      Src: /src/nss/lib/sqlite/sqlite3.c:83000,1
    - Dst: sqlite3_bind_null
      Src: /src/nss/lib/sqlite/sqlite3.c:83005,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - pStmt
    - i
    - pValue
    argTypes:
    - sqlite3_stmt*
    - int
    - sqlite3_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83010
      start: 82980
    functionDepth: 15
    functionLinenumber: 82980
    functionLinenumberEnd: 83010
    functionName: sqlite3_bind_value
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_bind_zeroblob
    - sqlite3_bind_null
    - bindText
    - sqlite3_bind_blob
    - sqlite3_bind_double
    - sqlite3_bind_int64
    - sqlite3_value_type
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_bind_value(sqlite3_stmt *pStmt, int i, const sqlite3_value
      *pValue)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vdbeUnbind
      Src: /src/nss/lib/sqlite/sqlite3.c:83014,1
    - Dst: sqlite3VdbeMemSetZeroBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:83016,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:83017,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - pStmt
    - i
    - n
    argTypes:
    - sqlite3_stmt*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83020
      start: 83011
    functionDepth: 13
    functionLinenumber: 83011
    functionLinenumberEnd: 83020
    functionName: sqlite3_bind_zeroblob
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3VdbeMemSetZeroBlob
    - vdbeUnbind
    - sqlite3_mutex_leave
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_bind_zeroblob(sqlite3_stmt *pStmt, int i, int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:83024,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:83028,1
    - Dst: sqlite3_bind_zeroblob
      Src: /src/nss/lib/sqlite/sqlite3.c:83029,1
    - Dst: sqlite3ApiExit
      Src: /src/nss/lib/sqlite/sqlite3.c:83031,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:83032,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - pStmt
    - i
    - n
    argTypes:
    - sqlite3_stmt*
    - int
    - sqlite3_uint64
    assertStmts:
    - condition: ( (n & 0x7FFFFFFF)==n )
      pos:
        line_end: 83027
        line_start: 83027
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 83034
      start: 83021
    functionDepth: 14
    functionLinenumber: 83021
    functionLinenumberEnd: 83034
    functionName: sqlite3_bind_zeroblob64
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3_bind_zeroblob
    - sqlite3ApiExit
    - sqlite3_mutex_leave
    - assert
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_bind_zeroblob64(sqlite3_stmt *pStmt, int i, sqlite3_uint64
      n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pStmt
    argTypes:
    - sqlite3_stmt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83043
      start: 83040
    functionDepth: 0
    functionLinenumber: 83040
    functionLinenumberEnd: 83043
    functionName: sqlite3_bind_parameter_count
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_bind_parameter_count(sqlite3_stmt *pStmt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VListNumToName
      Src: /src/nss/lib/sqlite/sqlite3.c:83054,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pStmt
    - i
    argTypes:
    - sqlite3_stmt*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83055
      start: 83051
    functionDepth: 1
    functionLinenumber: 83051
    functionLinenumberEnd: 83055
    functionName: sqlite3_bind_parameter_name
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VListNumToName
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *sqlite3_bind_parameter_name(sqlite3_stmt *pStmt, int i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VListNameToNum
      Src: /src/nss/lib/sqlite/sqlite3.c:83064,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - p
    - zName
    - nName
    argTypes:
    - Vdbe*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83065
      start: 83062
    functionDepth: 1
    functionLinenumber: 83062
    functionLinenumberEnd: 83065
    functionName: sqlite3VdbeParameterIndex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VListNameToNum
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeParameterIndex(Vdbe *p, const char *zName,
      int nName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeParameterIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:83067,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:83067,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pStmt
    - zName
    argTypes:
    - sqlite3_stmt*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83068
      start: 83066
    functionDepth: 2
    functionLinenumber: 83066
    functionLinenumberEnd: 83068
    functionName: sqlite3_bind_parameter_index
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeParameterIndex
    - sqlite3Strlen30
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_bind_parameter_index(sqlite3_stmt *pStmt, const
      char *zName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:83077,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:83078,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:83079,1
    - Dst: sqlite3VdbeMemMove
      Src: /src/nss/lib/sqlite/sqlite3.c:83081,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:83083,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - pFromStmt
    - pToStmt
    argTypes:
    - sqlite3_stmt*
    - sqlite3_stmt*
    assertStmts:
    - condition: ( pTo->db==pFrom->db )
      pos:
        line_end: 83076
        line_start: 83076
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTo->nVar==pFrom->nVar )
      pos:
        line_end: 83077
        line_start: 83077
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 83085
      start: 83073
    functionDepth: 10
    functionLinenumber: 83073
    functionLinenumberEnd: 83085
    functionName: sqlite3TransferBindings
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3VdbeMemMove
    - sqlite3_mutex_leave
    - sqlite3_mutex_enter
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3TransferBindings(sqlite3_stmt *pFromStmt, sqlite3_stmt
      *pToStmt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:83106,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:83110,1
    - Dst: sqlite3TransferBindings
      Src: /src/nss/lib/sqlite/sqlite3.c:83114,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - pFromStmt
    - pToStmt
    argTypes:
    - sqlite3_stmt*
    - sqlite3_stmt*
    assertStmts:
    - condition: ( (pTo->prepFlags & SQLITE_PREPARE_SAVESQL)!=0 || pTo->expmask==0
        )
      pos:
        line_end: 83105
        line_start: 83105
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pFrom->prepFlags & SQLITE_PREPARE_SAVESQL)!=0 || pFrom->expmask==0
        )
      pos:
        line_end: 83109
        line_start: 83109
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 83115
      start: 83100
    functionDepth: 11
    functionLinenumber: 83100
    functionLinenumberEnd: 83115
    functionName: sqlite3_transfer_bindings
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3TransferBindings
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_transfer_bindings(sqlite3_stmt *pFromStmt, sqlite3_stmt
      *pToStmt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pStmt
    argTypes:
    - sqlite3_stmt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83126
      start: 83124
    functionDepth: 0
    functionLinenumber: 83124
    functionLinenumberEnd: 83126
    functionName: sqlite3_db_handle
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *sqlite3_db_handle(sqlite3_stmt *pStmt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pStmt
    argTypes:
    - sqlite3_stmt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83134
      start: 83132
    functionDepth: 0
    functionLinenumber: 83132
    functionLinenumberEnd: 83134
    functionName: sqlite3_stmt_readonly
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_stmt_readonly(sqlite3_stmt *pStmt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pStmt
    argTypes:
    - sqlite3_stmt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83142
      start: 83140
    functionDepth: 0
    functionLinenumber: 83140
    functionLinenumberEnd: 83142
    functionName: sqlite3_stmt_isexplain
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_stmt_isexplain(sqlite3_stmt *pStmt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - pStmt
    argTypes:
    - sqlite3_stmt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83150
      start: 83147
    functionDepth: 0
    functionLinenumber: 83147
    functionLinenumberEnd: 83150
    functionName: sqlite3_stmt_busy
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_stmt_busy(sqlite3_stmt *pStmt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/nss/lib/sqlite/sqlite3.c:83161,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:83166,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:83172,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83174
      start: 83158
    functionDepth: 12
    functionLinenumber: 83158
    functionLinenumberEnd: 83174
    functionName: sqlite3_stmt *sqlite3_next_stmt(sqlite3 *pDb, sqlite3_stmt *pStmt)
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3_mutex_leave
    - sqlite3SafetyCheckOk
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_stmt *sqlite3_next_stmt(sqlite3 *pDb, sqlite3_stmt
      *pStmt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:83184,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:83192,1
    - Dst: sqlite3VdbeClearObject
      Src: /src/nss/lib/sqlite/sqlite3.c:83195,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:83196,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:83198,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - pStmt
    - op
    - resetFlag
    argTypes:
    - sqlite3_stmt*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83204
      start: 83179
    functionDepth: 13
    functionLinenumber: 83179
    functionLinenumberEnd: 83204
    functionName: sqlite3_stmt_status
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3DbFree
    - ArraySize
    - sqlite3_mutex_leave
    - sqlite3VdbeClearObject
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_stmt_status(sqlite3_stmt *pStmt, int op, int resetFlag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pStmt
    argTypes:
    - sqlite3_stmt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83212
      start: 83209
    functionDepth: 0
    functionLinenumber: 83209
    functionLinenumberEnd: 83212
    functionName: sqlite3_sql
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *sqlite3_sql(sqlite3_stmt *pStmt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_sql
      Src: /src/nss/lib/sqlite/sqlite3.c:83228,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:83231,1
    - Dst: sqlite3VdbeExpandSql
      Src: /src/nss/lib/sqlite/sqlite3.c:83232,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:83233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - pStmt
    argTypes:
    - sqlite3_stmt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83237
      start: 83223
    functionDepth: 1
    functionLinenumber: 83223
    functionLinenumberEnd: 83237
    functionName: sqlite3_expanded_sql
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3VdbeExpandSql
    - sqlite3_sql
    - sqlite3_mutex_leave
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *sqlite3_expanded_sql(sqlite3_stmt *pStmt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:83246,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:83247,1
    - Dst: sqlite3Normalize
      Src: /src/nss/lib/sqlite/sqlite3.c:83248,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:83249,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - pStmt
    argTypes:
    - sqlite3_stmt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83252
      start: 83243
    functionDepth: 1
    functionLinenumber: 83243
    functionLinenumberEnd: 83252
    functionName: sqlite3_normalized_sql
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - ALWAYS
    - sqlite3Normalize
    - sqlite3_mutex_leave
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *sqlite3_normalized_sql(sqlite3_stmt *pStmt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeAllocUnpackedRecord
      Src: /src/nss/lib/sqlite/sqlite3.c:83268,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:83270,1
    - Dst: sqlite3VdbeRecordUnpack
      Src: /src/nss/lib/sqlite/sqlite3.c:83271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - pKeyInfo
    - nKey
    - pKey
    argTypes:
    - KeyInfo*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83274
      start: 83261
    functionDepth: 9
    functionLinenumber: 83261
    functionLinenumberEnd: 83274
    functionName: vdbeUnpackRecord
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3VdbeRecordUnpack
    - sqlite3VdbeAllocUnpackedRecord
    linkageType: ''
    returnType: UnpackedRecord
    signature: "UnpackedRecord *vdbeUnpackRecord(\n  KeyInfo *pKeyInfo, \n  int nKey,
      \n  const void *pKey\n)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ColumnOfIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:83292,1
    - Dst: sqlite3BtreePayloadSize
      Src: /src/nss/lib/sqlite/sqlite3.c:83304,1
    - Dst: sqlite3DbMallocRaw
      Src: /src/nss/lib/sqlite/sqlite3.c:83305,1
    - Dst: sqlite3BtreePayload
      Src: /src/nss/lib/sqlite/sqlite3.c:83307,1
    - Dst: vdbeUnpackRecord
      Src: /src/nss/lib/sqlite/sqlite3.c:83309,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:83313,1
    - Dst: sqlite3VdbeMemSetInt64
      Src: /src/nss/lib/sqlite/sqlite3.c:83321,1
    - Dst: columnNullValue
      Src: /src/nss/lib/sqlite/sqlite3.c:83323,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:83326,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:83327,1
    - Dst: sqlite3VdbeMemRealify
      Src: /src/nss/lib/sqlite/sqlite3.c:83328,1
    - Dst: sqlite3Error
      Src: /src/nss/lib/sqlite/sqlite3.c:83333,1
    - Dst: sqlite3ApiExit
      Src: /src/nss/lib/sqlite/sqlite3.c:83334,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 51
    argCount: 3
    argNames:
    - db
    - iIdx
    - ppValue
    argTypes:
    - sqlite3*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83335
      start: 83280
    functionDepth: 17
    functionLinenumber: 83280
    functionLinenumberEnd: 83335
    functionName: sqlite3_preupdate_old
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreePayloadSize
    - sqlite3BtreePayload
    - sqlite3DbFree
    - columnNullValue
    - sqlite3VdbeMemRealify
    - sqlite3ApiExit
    - sqlite3ColumnOfIndex
    - sqlite3Error
    - vdbeUnpackRecord
    - sqlite3VdbeMemSetInt64
    - sqlite3DbMallocRaw
    - testcase
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_preupdate_old(sqlite3 *db, int iIdx, sqlite3_value
      **ppValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83346
      start: 83343
    functionDepth: 0
    functionLinenumber: 83343
    functionLinenumberEnd: 83346
    functionName: sqlite3_preupdate_count
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_preupdate_count(sqlite3 *db)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83364
      start: 83361
    functionDepth: 0
    functionLinenumber: 83361
    functionLinenumberEnd: 83364
    functionName: sqlite3_preupdate_depth
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_preupdate_depth(sqlite3 *db)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ColumnOfIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:83382,1
    - Dst: ExpandBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:83395,1
    - Dst: vdbeUnpackRecord
      Src: /src/nss/lib/sqlite/sqlite3.c:83397,1
    - Dst: sqlite3VdbeMemSetInt64
      Src: /src/nss/lib/sqlite/sqlite3.c:83406,1
    - Dst: columnNullValue
      Src: /src/nss/lib/sqlite/sqlite3.c:83408,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:83416,1
    - Dst: sqlite3DbMallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:83418,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:83424,1
    - Dst: sqlite3VdbeMemSetInt64
      Src: /src/nss/lib/sqlite/sqlite3.c:83428,1
    - Dst: sqlite3VdbeMemCopy
      Src: /src/nss/lib/sqlite/sqlite3.c:83430,1
    - Dst: sqlite3Error
      Src: /src/nss/lib/sqlite/sqlite3.c:83438,1
    - Dst: sqlite3ApiExit
      Src: /src/nss/lib/sqlite/sqlite3.c:83439,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 63
    argCount: 3
    argNames:
    - db
    - iIdx
    - ppValue
    argTypes:
    - sqlite3*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( p->op==SQLITE_UPDATE )
      pos:
        line_end: 83415
        line_start: 83415
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iIdx>=0 && iIdx<p->pCsr->nField )
      pos:
        line_end: 83423
        line_start: 83423
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 83440
      start: 83372
    functionDepth: 13
    functionLinenumber: 83372
    functionLinenumberEnd: 83440
    functionName: sqlite3_preupdate_new
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeMemCopy
    - columnNullValue
    - sqlite3ApiExit
    - sqlite3ColumnOfIndex
    - assert
    - sqlite3Error
    - vdbeUnpackRecord
    - sqlite3VdbeMemSetInt64
    - ExpandBlob
    - sqlite3DbMallocZero
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_preupdate_new(sqlite3 *db, int iIdx, sqlite3_value
      **ppValue)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3LogEstToInt
      Src: /src/nss/lib/sqlite/sqlite3.c:83473,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 4
    argNames:
    - pStmt
    - idx
    - iScanStatusOp
    - pOut
    argTypes:
    - sqlite3_stmt*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83501
      start: 83447
    functionDepth: 1
    functionLinenumber: 83447
    functionLinenumberEnd: 83501
    functionName: sqlite3_stmt_scanstatus
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3LogEstToInt
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_stmt_scanstatus(\n  sqlite3_stmt *pStmt,            /*
      Prepared statement being queried */\n  int idx,                        /* Index
      of loop to report on */\n  int iScanStatusOp,              /* Which metric to
      return */\n  void *pOut                      /* OUT: Write the answer here */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:83508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pStmt
    argTypes:
    - sqlite3_stmt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83509
      start: 83506
    functionDepth: 0
    functionLinenumber: 83506
    functionLinenumberEnd: 83509
    functionName: sqlite3_stmt_scanstatus_reset
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_stmt_scanstatus_reset(sqlite3_stmt *pStmt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetToken
      Src: /src/nss/lib/sqlite/sqlite3.c:83549,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:83550,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - zSql
    - pnToken
    argTypes:
    - char*
    - int*
    assertStmts:
    - condition: ( n>0 && tokenType!=TK_ILLEGAL )
      pos:
        line_end: 83549
        line_start: 83549
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 83559
      start: 83542
    functionDepth: 1
    functionLinenumber: 83542
    functionLinenumberEnd: 83559
    functionName: findNextHostParameter
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3GetToken
    linkageType: ''
    returnType: int
    signature: int findNextHostParameter(const char *zSql, int *pnToken)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3StrAccumInit
      Src: /src/nss/lib/sqlite/sqlite3.c:83603,1
    - Dst: sqlite3_str_append
      Src: /src/nss/lib/sqlite/sqlite3.c:83609,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:83610,1
    - Dst: sqlite3_str_append
      Src: /src/nss/lib/sqlite/sqlite3.c:83611,1
    - Dst: sqlite3_str_append
      Src: /src/nss/lib/sqlite/sqlite3.c:83614,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:83614,1
    - Dst: findNextHostParameter
      Src: /src/nss/lib/sqlite/sqlite3.c:83617,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:83618,1
    - Dst: sqlite3_str_append
      Src: /src/nss/lib/sqlite/sqlite3.c:83619,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:83621,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:83625,1
    - Dst: sqlite3Isdigit
      Src: /src/nss/lib/sqlite/sqlite3.c:83625,1
    - Dst: sqlite3GetInt32
      Src: /src/nss/lib/sqlite/sqlite3.c:83626,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:83631,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:83633,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:83634,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:83635,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:83636,1
    - Dst: sqlite3VdbeParameterIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:83637,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:83638,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:83642,1
    - Dst: sqlite3_str_append
      Src: /src/nss/lib/sqlite/sqlite3.c:83645,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:83647,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:83649,1
    - Dst: ENC
      Src: /src/nss/lib/sqlite/sqlite3.c:83653,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:83655,1
    - Dst: sqlite3VdbeMemSetStr
      Src: /src/nss/lib/sqlite/sqlite3.c:83657,1
    - Dst: sqlite3VdbeChangeEncoding
      Src: /src/nss/lib/sqlite/sqlite3.c:83658,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:83672,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:83675,1
    - Dst: sqlite3VdbeMemRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:83679,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:83682,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:83685,1
    - Dst: sqlite3_str_append
      Src: /src/nss/lib/sqlite/sqlite3.c:83686,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:83692,1
    - Dst: sqlite3_str_append
      Src: /src/nss/lib/sqlite/sqlite3.c:83694,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:83697,1
    - Dst: sqlite3_str_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:83703,1
    - Dst: sqlite3StrAccumFinish
      Src: /src/nss/lib/sqlite/sqlite3.c:83704,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 98
    argCount: 2
    argNames:
    - p
    - zRawSql
    argTypes:
    - Vdbe*
    - char*
    assertStmts:
    - condition: ( (zRawSql - zStart) > 0 )
      pos:
        line_end: 83609
        line_start: 83609
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( idx>0 && idx<=p->nVar )
      pos:
        line_end: 83641
        line_start: 83641
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( n>0 )
      pos:
        line_end: 83617
        line_start: 83617
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( zRawSql[0] || nToken==0 )
      pos:
        line_end: 83620
        line_start: 83620
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pVar->flags & MEM_Blob )
      pos:
        line_end: 83684
        line_start: 83684
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( zRawSql[0]==':' || zRawSql[0]=='$' ||\n                zRawSql[0]=='@'
        || zRawSql[0]=='#' )"
      pos:
        line_end: 83631
        line_start: 83630
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( idx>0 )
      pos:
        line_end: 83637
        line_start: 83637
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3Isdigit(zRawSql[1]) )
      pos:
        line_end: 83624
        line_start: 83624
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 83705
      start: 83585
    functionDepth: 12
    functionLinenumber: 83585
    functionLinenumberEnd: 83705
    functionName: sqlite3VdbeExpandSql
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3_str_append
    - sqlite3VdbeMemSetStr
    - sqlite3GetInt32
    - sqlite3StrAccumInit
    - sqlite3Isdigit
    - sqlite3VdbeMemRelease
    - sqlite3StrAccumFinish
    - sqlite3_str_reset
    - assert
    - sqlite3VdbeParameterIndex
    - memset
    - sqlite3Strlen30
    - sqlite3_str_appendf
    - ENC
    - findNextHostParameter
    - sqlite3VdbeChangeEncoding
    - testcase
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3VdbeExpandSql(\n  Vdbe *p,                 /*
      The prepared statement being evaluated */\n  const char *zRawSql      /* Raw
      text of the SQL statement */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - P
    - ','
    - M
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83745
      start: 83744
    functionDepth: 0
    functionLinenumber: 83744
    functionLinenumberEnd: 83745
    functionName: memAboutToChange
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: memAboutToChange(P,M)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - Mem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83796
      start: 83792
    functionDepth: 0
    functionLinenumber: 83792
    functionLinenumberEnd: 83796
    functionName: updateMaxBlobsize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void updateMaxBlobsize(Mem *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - DB
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83805
      start: 83804
    functionDepth: 0
    functionLinenumber: 83804
    functionLinenumberEnd: 83805
    functionName: HAS_UPDATE_HOOK
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HAS_UPDATE_HOOK(DB)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - DB
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83807
      start: 83806
    functionDepth: 0
    functionLinenumber: 83806
    functionLinenumberEnd: 83807
    functionName: HAS_UPDATE_HOOK
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HAS_UPDATE_HOOK(DB)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - P
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83826
      start: 83825
    functionDepth: 0
    functionLinenumber: 83825
    functionLinenumberEnd: 83826
    functionName: UPDATE_MAX_BLOBSIZE
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UPDATE_MAX_BLOBSIZE(P)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - I
    - ','
    - M
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83871
      start: 83870
    functionDepth: 0
    functionLinenumber: 83870
    functionLinenumberEnd: 83871
    functionName: VdbeBranchTaken
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VdbeBranchTaken(I,M)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:83873,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:83874,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:83875,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:83883,1
    - Dst: xVdbeBranch
      Src: /src/nss/lib/sqlite/sqlite3.c:83903,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - iSrcLine
    - I
    - M
    argTypes:
    - u32
    - u8
    - u8
    assertStmts:
    - condition: ( I<=2 )
      pos:
        line_end: 83872
        line_start: 83872
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( I<M )
      pos:
        line_end: 83874
        line_start: 83874
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( M<=4 )
      pos:
        line_end: 83873
        line_start: 83873
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (I & mNever)==0 )
      pos:
        line_end: 83882
        line_start: 83882
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 83905
      start: 83871
    functionDepth: 0
    functionLinenumber: 83871
    functionLinenumberEnd: 83905
    functionName: vdbeTakeBranch
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - xVdbeBranch
    linkageType: ''
    returnType: void
    signature: void vdbeTakeBranch(u32 iSrcLine, u8 I, u8 M)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - P
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83922
      start: 83919
    functionDepth: 0
    functionLinenumber: 83919
    functionLinenumberEnd: 83922
    functionName: Deephemeralize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Deephemeralize(P)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83925
      start: 83924
    functionDepth: 0
    functionLinenumber: 83924
    functionLinenumberEnd: 83925
    functionName: isSorter
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: isSorter(x)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ROUND8
      Src: /src/nss/lib/sqlite/sqlite3.c:83960,1
    - Dst: sqlite3BtreeCursorSize
      Src: /src/nss/lib/sqlite/sqlite3.c:83961,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:83963,1
    - Dst: sqlite3VdbeFreeCursor
      Src: /src/nss/lib/sqlite/sqlite3.c:83970,1
    - Dst: sqlite3VdbeMemClearAndResize
      Src: /src/nss/lib/sqlite/sqlite3.c:83973,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:83975,1
    - Dst: ROUND8
      Src: /src/nss/lib/sqlite/sqlite3.c:83982,1
    - Dst: sqlite3BtreeCursorZero
      Src: /src/nss/lib/sqlite/sqlite3.c:83983,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 5
    argNames:
    - p
    - iCur
    - nField
    - iDb
    - eCurType
    argTypes:
    - Vdbe*
    - int
    - int
    - int
    - u8
    assertStmts:
    - condition: ( iCur>=0 && iCur<p->nCursor )
      pos:
        line_end: 83962
        line_start: 83962
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 83987
      start: 83930
    functionDepth: 15
    functionLinenumber: 83930
    functionLinenumberEnd: 83987
    functionName: allocateCursor
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeCursorSize
    - ROUND8
    - sqlite3BtreeCursorZero
    - assert
    - sqlite3VdbeMemClearAndResize
    - memset
    - sqlite3VdbeFreeCursor
    linkageType: ''
    returnType: VdbeCursor
    signature: "VdbeCursor *allocateCursor(\n  Vdbe *p,              /* The virtual
      machine */\n  int iCur,             /* Index of the new VdbeCursor */\n  int
      nField,           /* Number of fields in the table or index */\n  int iDb,              /*
      Database the cursor belongs to, or -1 */\n  u8 eCurType           /* Type of
      the new cursor */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3RealSameAsInt
      Src: /src/nss/lib/sqlite/sqlite3.c:83997,1
    - Dst: sqlite3Atoi64
      Src: /src/nss/lib/sqlite/sqlite3.c:84001,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pRec
    - rValue
    - piValue
    argTypes:
    - Mem*
    - double
    - i64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84002
      start: 83995
    functionDepth: 3
    functionLinenumber: 83995
    functionLinenumberEnd: 84002
    functionName: alsoAnInt
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3RealSameAsInt
    - sqlite3Atoi64
    linkageType: ''
    returnType: int
    signature: int alsoAnInt(Mem *pRec, double rValue, i64 *piValue)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84023,1
    - Dst: sqlite3AtoF
      Src: /src/nss/lib/sqlite/sqlite3.c:84024,1
    - Dst: alsoAnInt
      Src: /src/nss/lib/sqlite/sqlite3.c:84026,1
    - Dst: sqlite3VdbeIntegerAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:84031,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - pRec
    - bTryForInt
    argTypes:
    - Mem*
    - int
    assertStmts:
    - condition: ( (pRec->flags & (MEM_Str|MEM_Int|MEM_Real|MEM_IntReal))==MEM_Str
        )
      pos:
        line_end: 84022
        line_start: 84022
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 84038
      start: 84019
    functionDepth: 4
    functionLinenumber: 84019
    functionLinenumberEnd: 84038
    functionName: applyNumericAffinity
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - alsoAnInt
    - sqlite3VdbeIntegerAffinity
    - sqlite3AtoF
    linkageType: ''
    returnType: void
    signature: void applyNumericAffinity(Mem *pRec, int bTryForInt)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84064,1
    - Dst: applyNumericAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:84068,1
    - Dst: sqlite3VdbeIntegerAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:84070,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:84081,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:84082,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:84083,1
    - Dst: sqlite3VdbeMemStringify
      Src: /src/nss/lib/sqlite/sqlite3.c:84084,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - pRec
    - affinity
    - enc
    argTypes:
    - Mem*
    - char
    - u8
    assertStmts:
    - condition: "( affinity==SQLITE_AFF_INTEGER || affinity==SQLITE_AFF_REAL\n             ||
        affinity==SQLITE_AFF_NUMERIC )"
      pos:
        line_end: 84064
        line_start: 84063
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 84089
      start: 84058
    functionDepth: 12
    functionLinenumber: 84058
    functionLinenumberEnd: 84089
    functionName: applyAffinity
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeIntegerAffinity
    - sqlite3VdbeMemStringify
    - assert
    - applyNumericAffinity
    - testcase
    linkageType: ''
    returnType: void
    signature: "void applyAffinity(\n  Mem *pRec,          /* The value to apply affinity
      to */\n  char affinity,      /* The affinity to be applied */\n  u8 enc              /*
      Use this text encoding */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:84098,1
    - Dst: applyNumericAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:84101,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:84102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pVal
    argTypes:
    - sqlite3_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84105
      start: 84097
    functionDepth: 5
    functionLinenumber: 84097
    functionLinenumberEnd: 84105
    functionName: sqlite3_value_numeric_type
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_value_type
    - applyNumericAffinity
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_value_numeric_type(sqlite3_value *pVal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: applyAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:84116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pVal
    - affinity
    - enc
    argTypes:
    - sqlite3_value*
    - u8
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84117
      start: 84111
    functionDepth: 13
    functionLinenumber: 84111
    functionLinenumberEnd: 84117
    functionName: sqlite3ValueApplyAffinity
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 5
    functionsReached:
    - applyAffinity
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3ValueApplyAffinity(\n  sqlite3_value *pVal,
      \n  u8 affinity, \n  u8 enc\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84128,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84129,1
    - Dst: ExpandBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:84130,1
    - Dst: sqlite3AtoF
      Src: /src/nss/lib/sqlite/sqlite3.c:84131,1
    - Dst: sqlite3Atoi64
      Src: /src/nss/lib/sqlite/sqlite3.c:84133,1
    - Dst: sqlite3Atoi64
      Src: /src/nss/lib/sqlite/sqlite3.c:84139,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - pMem
    argTypes:
    - Mem*
    assertStmts:
    - condition: ( (pMem->flags & (MEM_Int|MEM_Real|MEM_IntReal))==0 )
      pos:
        line_end: 84127
        line_start: 84127
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pMem->flags & (MEM_Str|MEM_Blob))!=0 )
      pos:
        line_end: 84128
        line_start: 84128
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 84144
      start: 84125
    functionDepth: 3
    functionLinenumber: 84125
    functionLinenumberEnd: 84144
    functionName: SQLITE_NOINLINE::computeNumericType
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3Atoi64
    - sqlite3AtoF
    - ExpandBlob
    linkageType: ''
    returnType: u16
    signature: u16 SQLITE_NOINLINE computeNumericType(Mem *pMem)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:84155,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:84156,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:84157,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:84161,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:84162,1
    - Dst: computeNumericType
      Src: /src/nss/lib/sqlite/sqlite3.c:84163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - pMem
    argTypes:
    - Mem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84166
      start: 84153
    functionDepth: 1
    functionLinenumber: 84153
    functionLinenumberEnd: 84166
    functionName: numericType
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - computeNumericType
    - testcase
    linkageType: ''
    returnType: u16
    signature: u16 numericType(Mem *pMem)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84184,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84187,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84190,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:84195,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:84196,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:84198,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:84199,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:84208,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:84209,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84217,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84220,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84223,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:84228,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:84229,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:84240,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:84241,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 67
    argCount: 2
    argNames:
    - pMem
    - zBuf
    argTypes:
    - Mem*
    - char*
    assertStmts:
    - condition: ( (f & (MEM_Static|MEM_Ephem))==0 )
      pos:
        line_end: 84183
        line_start: 84183
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (f & (MEM_Dyn|MEM_Ephem))==0 )
      pos:
        line_end: 84186
        line_start: 84186
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (f & (MEM_Static|MEM_Dyn))==0 )
      pos:
        line_end: 84189
        line_start: 84189
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (f & (MEM_Static|MEM_Ephem))==0 )
      pos:
        line_end: 84216
        line_start: 84216
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (f & (MEM_Static|MEM_Dyn))==0 )
      pos:
        line_end: 84222
        line_start: 84222
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (f & (MEM_Dyn|MEM_Ephem))==0 )
      pos:
        line_end: 84219
        line_start: 84219
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 84244
      start: 84173
    functionDepth: 10
    functionLinenumber: 84173
    functionLinenumberEnd: 84244
    functionName: sqlite3VdbeMemPrettyPrint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - sqlite3Strlen30
    - sqlite3_snprintf
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeMemPrettyPrint(Mem *pMem, char *zBuf)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/lib/sqlite/sqlite3.c:84253,1
    - Dst: printf
      Src: /src/nss/lib/sqlite/sqlite3.c:84255,1
    - Dst: printf
      Src: /src/nss/lib/sqlite/sqlite3.c:84257,1
    - Dst: printf
      Src: /src/nss/lib/sqlite/sqlite3.c:84259,1
    - Dst: printf
      Src: /src/nss/lib/sqlite/sqlite3.c:84261,1
    - Dst: printf
      Src: /src/nss/lib/sqlite/sqlite3.c:84264,1
    - Dst: sqlite3VdbeMemIsRowSet
      Src: /src/nss/lib/sqlite/sqlite3.c:84266,1
    - Dst: printf
      Src: /src/nss/lib/sqlite/sqlite3.c:84267,1
    - Dst: sqlite3VdbeMemPrettyPrint
      Src: /src/nss/lib/sqlite/sqlite3.c:84270,1
    - Dst: printf
      Src: /src/nss/lib/sqlite/sqlite3.c:84271,1
    - Dst: printf
      Src: /src/nss/lib/sqlite/sqlite3.c:84273,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - Mem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84274
      start: 84251
    functionDepth: 11
    functionLinenumber: 84251
    functionLinenumberEnd: 84274
    functionName: memTracePrint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeMemIsRowSet
    - sqlite3VdbeMemPrettyPrint
    - printf
    linkageType: ''
    returnType: void
    signature: void memTracePrint(Mem *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/lib/sqlite/sqlite3.c:84276,1
    - Dst: memTracePrint
      Src: /src/nss/lib/sqlite/sqlite3.c:84277,1
    - Dst: printf
      Src: /src/nss/lib/sqlite/sqlite3.c:84278,1
    - Dst: sqlite3VdbeCheckMemInvariants
      Src: /src/nss/lib/sqlite/sqlite3.c:84279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - iReg
    - p
    argTypes:
    - int
    - Mem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84280
      start: 84275
    functionDepth: 12
    functionLinenumber: 84275
    functionLinenumberEnd: 84280
    functionName: registerTrace
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memTracePrint
    - sqlite3VdbeCheckMemInvariants
    - printf
    linkageType: ''
    returnType: void
    signature: void registerTrace(int iReg, Mem *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - R
    - ','
    - M
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84285
      start: 84284
    functionDepth: 0
    functionLinenumber: 84284
    functionLinenumberEnd: 84285
    functionName: REGISTER_TRACE
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REGISTER_TRACE(R,M)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84331
      start: 84327
    functionDepth: 0
    functionLinenumber: 84327
    functionLinenumberEnd: 84331
    functionName: sqlite3Hwtime
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sqlite_uint64
    signature: sqlite_uint64 sqlite3Hwtime(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84350
      start: 84346
    functionDepth: 0
    functionLinenumber: 84346
    functionLinenumberEnd: 84350
    functionName: sqlite3Hwtime
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sqlite_uint64
    signature: sqlite_uint64 sqlite3Hwtime(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84365
      start: 84354
    functionDepth: 0
    functionLinenumber: 84354
    functionLinenumberEnd: 84365
    functionName: sqlite3Hwtime
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sqlite_uint64
    signature: sqlite_uint64 sqlite3Hwtime(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84378
      start: 84378
    functionDepth: 0
    functionLinenumber: 84378
    functionLinenumberEnd: 84378
    functionName: sqlite_uint64::sqlite3Hwtime
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite_uint64 sqlite3Hwtime(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84404,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts:
    - condition: ( n==(db->nSavepoint + db->isTransactionSavepoint) )
      pos:
        line_end: 84403
        line_start: 84403
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 84406
      start: 84400
    functionDepth: 0
    functionLinenumber: 84400
    functionLinenumberEnd: 84406
    functionName: checkSavepointCount
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int checkSavepointCount(sqlite3 *db)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeMemSetNull
      Src: /src/nss/lib/sqlite/sqlite3.c:84414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pOut
    argTypes:
    - Mem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84417
      start: 84413
    functionDepth: 8
    functionLinenumber: 84413
    functionLinenumberEnd: 84417
    functionName: out2PrereleaseWithClear
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeMemSetNull
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: SQLITE_NOINLINE *out2PrereleaseWithClear(Mem *pOut)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84420,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84421,1
    - Dst: memAboutToChange
      Src: /src/nss/lib/sqlite/sqlite3.c:84423,1
    - Dst: VdbeMemDynamic
      Src: /src/nss/lib/sqlite/sqlite3.c:84424,1
    - Dst: out2PrereleaseWithClear
      Src: /src/nss/lib/sqlite/sqlite3.c:84425,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - p
    - pOp
    argTypes:
    - Vdbe*
    - VdbeOp*
    assertStmts:
    - condition: ( pOp->p2>0 )
      pos:
        line_end: 84419
        line_start: 84419
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p2<=(p->nMem+1 - p->nCursor) )
      pos:
        line_end: 84420
        line_start: 84420
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 84430
      start: 84418
    functionDepth: 9
    functionLinenumber: 84418
    functionLinenumberEnd: 84430
    functionName: out2Prerelease
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - VdbeMemDynamic
    - out2PrereleaseWithClear
    - memAboutToChange
    linkageType: ''
    returnType: Mem
    signature: Mem *out2Prerelease(Vdbe *p, VdbeOp *pOp)
  - BBCount: 665
    BranchProfiles: []
    Callsites:
    - Dst: ENC
      Src: /src/nss/lib/sqlite/sqlite3.c:84451,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84467,1
    - Dst: sqlite3VdbeEnter
      Src: /src/nss/lib/sqlite/sqlite3.c:84468,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84472,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84483,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84484,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84486,1
    - Dst: sqlite3VdbeIOTraceSql
      Src: /src/nss/lib/sqlite/sqlite3.c:84490,1
    - Dst: sqlite3BeginBenignMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:84492,1
    - Dst: sqlite3VdbePrintSql
      Src: /src/nss/lib/sqlite/sqlite3.c:84498,1
    - Dst: printf
      Src: /src/nss/lib/sqlite/sqlite3.c:84500,1
    - Dst: sqlite3VdbePrintOp
      Src: /src/nss/lib/sqlite/sqlite3.c:84502,1
    - Dst: printf
      Src: /src/nss/lib/sqlite/sqlite3.c:84508,1
    - Dst: printf
      Src: /src/nss/lib/sqlite/sqlite3.c:84509,1
    - Dst: printf
      Src: /src/nss/lib/sqlite/sqlite3.c:84514,1
    - Dst: sqlite3EndBenignMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:84516,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84521,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84523,1
    - Dst: sqlite3Hwtime
      Src: /src/nss/lib/sqlite/sqlite3.c:84525,1
    - Dst: sqlite3VdbePrintOp
      Src: /src/nss/lib/sqlite/sqlite3.c:84536,1
    - Dst: sqlite3_interrupt
      Src: /src/nss/lib/sqlite/sqlite3.c:84548,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84558,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84559,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84560,1
    - Dst: memIsValid
      Src: /src/nss/lib/sqlite/sqlite3.c:84560,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84561,1
    - Dst: sqlite3VdbeCheckMemInvariants
      Src: /src/nss/lib/sqlite/sqlite3.c:84561,1
    - Dst: REGISTER_TRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:84562,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84565,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84566,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84567,1
    - Dst: memIsValid
      Src: /src/nss/lib/sqlite/sqlite3.c:84567,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84568,1
    - Dst: sqlite3VdbeCheckMemInvariants
      Src: /src/nss/lib/sqlite/sqlite3.c:84568,1
    - Dst: REGISTER_TRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:84569,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84572,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84573,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84574,1
    - Dst: memIsValid
      Src: /src/nss/lib/sqlite/sqlite3.c:84574,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84575,1
    - Dst: sqlite3VdbeCheckMemInvariants
      Src: /src/nss/lib/sqlite/sqlite3.c:84575,1
    - Dst: REGISTER_TRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:84576,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84579,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84580,1
    - Dst: memAboutToChange
      Src: /src/nss/lib/sqlite/sqlite3.c:84581,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84584,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84585,1
    - Dst: memAboutToChange
      Src: /src/nss/lib/sqlite/sqlite3.c:84586,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84667,1
    - Dst: sqlite3*::xProgress
      Src: /src/nss/lib/sqlite/sqlite3.c:84669,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84686,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84688,1
    - Dst: VdbeMemDynamic
      Src: /src/nss/lib/sqlite/sqlite3.c:84688,1
    - Dst: memAboutToChange
      Src: /src/nss/lib/sqlite/sqlite3.c:84689,1
    - Dst: REGISTER_TRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:84692,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84708,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84726,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84727,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84728,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84730,1
    - Dst: VdbeMemDynamic
      Src: /src/nss/lib/sqlite/sqlite3.c:84730,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84748,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84749,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84751,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84752,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84774,1
    - Dst: VdbeMemDynamic
      Src: /src/nss/lib/sqlite/sqlite3.c:84774,1
    - Dst: REGISTER_TRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:84778,1
    - Dst: sqlite3VdbeAssertAbortable
      Src: /src/nss/lib/sqlite/sqlite3.c:84794,1
    - Dst: sqlite3VdbeAssertAbortable
      Src: /src/nss/lib/sqlite/sqlite3.c:84836,1
    - Dst: sqlite3VdbeSetChanges
      Src: /src/nss/lib/sqlite/sqlite3.c:84843,1
    - Dst: sqlite3VdbeFrameRestore
      Src: /src/nss/lib/sqlite/sqlite3.c:84844,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84861,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:84866,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:84867,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:84868,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:84869,1
    - Dst: sqlite3VdbeError
      Src: /src/nss/lib/sqlite/sqlite3.c:84870,1
    - Dst: sqlite3MPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:84872,1
    - Dst: sqlite3VdbeError
      Src: /src/nss/lib/sqlite/sqlite3.c:84875,1
    - Dst: sqlite3_log
      Src: /src/nss/lib/sqlite/sqlite3.c:84877,1
    - Dst: sqlite3VdbeHalt
      Src: /src/nss/lib/sqlite/sqlite3.c:84879,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84880,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84884,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84885,1
    - Dst: out2Prerelease
      Src: /src/nss/lib/sqlite/sqlite3.c:84897,1
    - Dst: out2Prerelease
      Src: /src/nss/lib/sqlite/sqlite3.c:84909,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84910,1
    - Dst: out2Prerelease
      Src: /src/nss/lib/sqlite/sqlite3.c:84923,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84925,1
    - Dst: sqlite3IsNaN
      Src: /src/nss/lib/sqlite/sqlite3.c:84925,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84940,1
    - Dst: out2Prerelease
      Src: /src/nss/lib/sqlite/sqlite3.c:84941,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:84943,1
    - Dst: sqlite3VdbeMemSetStr
      Src: /src/nss/lib/sqlite/sqlite3.c:84947,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84948,1
    - Dst: sqlite3VdbeChangeEncoding
      Src: /src/nss/lib/sqlite/sqlite3.c:84950,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84951,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84952,1
    - Dst: VdbeMemDynamic
      Src: /src/nss/lib/sqlite/sqlite3.c:84952,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:84956,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84966,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84983,1
    - Dst: out2Prerelease
      Src: /src/nss/lib/sqlite/sqlite3.c:84984,1
    - Dst: UPDATE_MAX_BLOBSIZE
      Src: /src/nss/lib/sqlite/sqlite3.c:84989,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84992,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:84994,1
    - Dst: out2Prerelease
      Src: /src/nss/lib/sqlite/sqlite3.c:85016,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:85018,1
    - Dst: memAboutToChange
      Src: /src/nss/lib/sqlite/sqlite3.c:85026,1
    - Dst: sqlite3VdbeMemSetNull
      Src: /src/nss/lib/sqlite/sqlite3.c:85027,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:85044,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:85057,1
    - Dst: out2Prerelease
      Src: /src/nss/lib/sqlite/sqlite3.c:85058,1
    - Dst: sqlite3VdbeMemSetStr
      Src: /src/nss/lib/sqlite/sqlite3.c:85059,1
    - Dst: UPDATE_MAX_BLOBSIZE
      Src: /src/nss/lib/sqlite/sqlite3.c:85061,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:85076,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:85077,1
    - Dst: sqlite3VListNumToName
      Src: /src/nss/lib/sqlite/sqlite3.c:85077,1
    - Dst: sqlite3VdbeMemTooBig
      Src: /src/nss/lib/sqlite/sqlite3.c:85079,1
    - Dst: VdbeMemDynamic
      Src: /src/nss/lib/sqlite/sqlite3.c:85083,1
    - Dst: sqlite3VdbeMemSetNull
      Src: /src/nss/lib/sqlite/sqlite3.c:85083,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:85084,1
    - Dst: UPDATE_MAX_BLOBSIZE
      Src: /src/nss/lib/sqlite/sqlite3.c:85087,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:85108,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:85109,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:85114,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:85115,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:85116,1
    - Dst: memIsValid
      Src: /src/nss/lib/sqlite/sqlite3.c:85116,1
    - Dst: memAboutToChange
      Src: /src/nss/lib/sqlite/sqlite3.c:85117,1
    - Dst: sqlite3VdbeMemMove
      Src: /src/nss/lib/sqlite/sqlite3.c:85118,1
    - Dst: Deephemeralize
      Src: /src/nss/lib/sqlite/sqlite3.c:85124,1
    - Dst: REGISTER_TRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:85125,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:85146,1
    - Dst: memAboutToChange
      Src: /src/nss/lib/sqlite/sqlite3.c:85148,1
    - Dst: sqlite3VdbeMemShallowCopy
      Src: /src/nss/lib/sqlite/sqlite3.c:85149,1
    - Dst: Deephemeralize
      Src: /src/nss/lib/sqlite/sqlite3.c:85150,1
    - Dst: REGISTER_TRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:85154,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:85178,1
    - Dst: sqlite3VdbeMemShallowCopy
      Src: /src/nss/lib/sqlite/sqlite3.c:85179,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:85197,1
    - Dst: sqlite3VdbeMemSetInt64
      Src: /src/nss/lib/sqlite/sqlite3.c:85199,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:85215,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:85216,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:85217,1
    - Dst: sqlite3VdbeCheckFk
      Src: /src/nss/lib/sqlite/sqlite3.c:85222,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:85223,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:85224,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:85243,1
    - Dst: sqlite3VdbeCloseStatement
      Src: /src/nss/lib/sqlite/sqlite3.c:85244,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:85245,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:85256,1
    - Dst: memIsValid
      Src: /src/nss/lib/sqlite/sqlite3.c:85256,1
    - Dst: Deephemeralize
      Src: /src/nss/lib/sqlite/sqlite3.c:85257,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:85258,1
    - Dst: sqlite3VdbeMemNulTerminate
      Src: /src/nss/lib/sqlite/sqlite3.c:85260,1
    - Dst: REGISTER_TRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:85261,1
    - Dst: sqlite3*::xTrace
      Src: /src/nss/lib/sqlite/sqlite3.c:85266,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:85297,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:85298,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:85299,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:85301,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:85302,1
    - Dst: sqlite3VdbeMemSetNull
      Src: /src/nss/lib/sqlite/sqlite3.c:85304,1
    - Dst: sqlite3VdbeMemStringify
      Src: /src/nss/lib/sqlite/sqlite3.c:85308,1
    - Dst: sqlite3VdbeMemExpandBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:85311,1
    - Dst: sqlite3VdbeMemStringify
      Src: /src/nss/lib/sqlite/sqlite3.c:85316,1
    - Dst: sqlite3VdbeMemExpandBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:85319,1
    - Dst: sqlite3VdbeMemGrow
      Src: /src/nss/lib/sqlite/sqlite3.c:85326,1
    - Dst: MemSetTypeFlag
      Src: /src/nss/lib/sqlite/sqlite3.c:85329,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:85331,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:85332,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:85335,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:85336,1
    - Dst: UPDATE_MAX_BLOBSIZE
      Src: /src/nss/lib/sqlite/sqlite3.c:85344,1
    - Dst: numericType
      Src: /src/nss/lib/sqlite/sqlite3.c:85400,1
    - Dst: numericType
      Src: /src/nss/lib/sqlite/sqlite3.c:85402,1
    - Dst: sqlite3AddInt64
      Src: /src/nss/lib/sqlite/sqlite3.c:85409,1
    - Dst: sqlite3SubInt64
      Src: /src/nss/lib/sqlite/sqlite3.c:85410,1
    - Dst: sqlite3MulInt64
      Src: /src/nss/lib/sqlite/sqlite3.c:85411,1
    - Dst: MemSetTypeFlag
      Src: /src/nss/lib/sqlite/sqlite3.c:85426,1
    - Dst: sqlite3VdbeRealValue
      Src: /src/nss/lib/sqlite/sqlite3.c:85431,1
    - Dst: sqlite3VdbeRealValue
      Src: /src/nss/lib/sqlite/sqlite3.c:85432,1
    - Dst: sqlite3VdbeIntValue
      Src: /src/nss/lib/sqlite/sqlite3.c:85444,1
    - Dst: sqlite3VdbeIntValue
      Src: /src/nss/lib/sqlite/sqlite3.c:85445,1
    - Dst: MemSetTypeFlag
      Src: /src/nss/lib/sqlite/sqlite3.c:85454,1
    - Dst: sqlite3IsNaN
      Src: /src/nss/lib/sqlite/sqlite3.c:85456,1
    - Dst: MemSetTypeFlag
      Src: /src/nss/lib/sqlite/sqlite3.c:85460,1
    - Dst: sqlite3VdbeMemSetNull
      Src: /src/nss/lib/sqlite/sqlite3.c:85466,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:85486,1
    - Dst: sqlite3VdbeMemSetInt64
      Src: /src/nss/lib/sqlite/sqlite3.c:85488,1
    - Dst: sqlite3VdbeMemSetNull
      Src: /src/nss/lib/sqlite/sqlite3.c:85536,1
    - Dst: sqlite3VdbeIntValue
      Src: /src/nss/lib/sqlite/sqlite3.c:85539,1
    - Dst: sqlite3VdbeIntValue
      Src: /src/nss/lib/sqlite/sqlite3.c:85540,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:85547,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:85551,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:85559,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:85567,1
    - Dst: MemSetTypeFlag
      Src: /src/nss/lib/sqlite/sqlite3.c:85571,1
    - Dst: memAboutToChange
      Src: /src/nss/lib/sqlite/sqlite3.c:85585,1
    - Dst: sqlite3VdbeMemIntegerify
      Src: /src/nss/lib/sqlite/sqlite3.c:85586,1
    - Dst: applyAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:85601,1
    - Dst: VdbeBranchTaken
      Src: /src/nss/lib/sqlite/sqlite3.c:85603,1
    - Dst: VdbeBranchTaken
      Src: /src/nss/lib/sqlite/sqlite3.c:85612,1
    - Dst: MemSetTypeFlag
      Src: /src/nss/lib/sqlite/sqlite3.c:85613,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:85630,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:85631,1
    - Dst: sqlite3VdbeMemRealify
      Src: /src/nss/lib/sqlite/sqlite3.c:85632,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:85655,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:85656,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:85657,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:85658,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:85659,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:85660,1
    - Dst: memAboutToChange
      Src: /src/nss/lib/sqlite/sqlite3.c:85662,1
    - Dst: ExpandBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:85663,1
    - Dst: sqlite3VdbeMemCast
      Src: /src/nss/lib/sqlite/sqlite3.c:85664,1
    - Dst: UPDATE_MAX_BLOBSIZE
      Src: /src/nss/lib/sqlite/sqlite3.c:85665,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:85789,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:85790,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:85791,1
    - Dst: memAboutToChange
      Src: /src/nss/lib/sqlite/sqlite3.c:85807,1
    - Dst: MemSetTypeFlag
      Src: /src/nss/lib/sqlite/sqlite3.c:85808,1
    - Dst: REGISTER_TRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:85809,1
    - Dst: VdbeBranchTaken
      Src: /src/nss/lib/sqlite/sqlite3.c:85811,1
    - Dst: applyNumericAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:85824,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:85825,1
    - Dst: applyNumericAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:85834,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:85847,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:85848,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:85849,1
    - Dst: sqlite3VdbeMemStringify
      Src: /src/nss/lib/sqlite/sqlite3.c:85850,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:85851,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:85853,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:85856,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:85857,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:85858,1
    - Dst: sqlite3VdbeMemStringify
      Src: /src/nss/lib/sqlite/sqlite3.c:85859,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:85860,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:85864,1
    - Dst: sqlite3MemCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:85865,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:85874,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:85874,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:85874,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:85875,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:85875,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:85888,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:85890,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:85904,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:85905,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:85906,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:85907,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:85908,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:85909,1
    - Dst: memAboutToChange
      Src: /src/nss/lib/sqlite/sqlite3.c:85912,1
    - Dst: MemSetTypeFlag
      Src: /src/nss/lib/sqlite/sqlite3.c:85913,1
    - Dst: REGISTER_TRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:85915,1
    - Dst: VdbeBranchTaken
      Src: /src/nss/lib/sqlite/sqlite3.c:85917,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:85934,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:85935,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:85936,1
    - Dst: VdbeBranchTaken
      Src: /src/nss/lib/sqlite/sqlite3.c:85937,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:85956,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:85957,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:85958,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:85959,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:85997,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:85998,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:85999,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86001,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86005,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86006,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86013,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86014,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86016,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86017,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86022,1
    - Dst: memIsValid
      Src: /src/nss/lib/sqlite/sqlite3.c:86022,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86023,1
    - Dst: memIsValid
      Src: /src/nss/lib/sqlite/sqlite3.c:86023,1
    - Dst: REGISTER_TRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:86024,1
    - Dst: REGISTER_TRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:86025,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86026,1
    - Dst: sqlite3MemCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:86029,1
    - Dst: VdbeBranchTaken
      Src: /src/nss/lib/sqlite/sqlite3.c:86046,1
    - Dst: VdbeBranchTaken
      Src: /src/nss/lib/sqlite/sqlite3.c:86048,1
    - Dst: VdbeBranchTaken
      Src: /src/nss/lib/sqlite/sqlite3.c:86050,1
    - Dst: sqlite3VdbeBooleanValue
      Src: /src/nss/lib/sqlite/sqlite3.c:86080,1
    - Dst: sqlite3VdbeBooleanValue
      Src: /src/nss/lib/sqlite/sqlite3.c:86081,1
    - Dst: MemSetTypeFlag
      Src: /src/nss/lib/sqlite/sqlite3.c:86091,1
    - Dst: MemSetTypeFlag
      Src: /src/nss/lib/sqlite/sqlite3.c:86094,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86120,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86121,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86122,1
    - Dst: sqlite3VdbeMemSetInt64
      Src: /src/nss/lib/sqlite/sqlite3.c:86123,1
    - Dst: sqlite3VdbeBooleanValue
      Src: /src/nss/lib/sqlite/sqlite3.c:86124,1
    - Dst: sqlite3VdbeMemSetInt64
      Src: /src/nss/lib/sqlite/sqlite3.c:86139,1
    - Dst: sqlite3VdbeBooleanValue
      Src: /src/nss/lib/sqlite/sqlite3.c:86139,1
    - Dst: sqlite3VdbeMemSetNull
      Src: /src/nss/lib/sqlite/sqlite3.c:86141,1
    - Dst: sqlite3VdbeMemSetNull
      Src: /src/nss/lib/sqlite/sqlite3.c:86156,1
    - Dst: sqlite3VdbeIntValue
      Src: /src/nss/lib/sqlite/sqlite3.c:86159,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86183,1
    - Dst: VdbeBranchTaken
      Src: /src/nss/lib/sqlite/sqlite3.c:86187,1
    - Dst: VdbeBranchTaken
      Src: /src/nss/lib/sqlite/sqlite3.c:86193,1
    - Dst: VdbeBranchTaken
      Src: /src/nss/lib/sqlite/sqlite3.c:86197,1
    - Dst: sqlite3VdbeBooleanValue
      Src: /src/nss/lib/sqlite/sqlite3.c:86210,1
    - Dst: VdbeBranchTaken
      Src: /src/nss/lib/sqlite/sqlite3.c:86211,1
    - Dst: sqlite3VdbeBooleanValue
      Src: /src/nss/lib/sqlite/sqlite3.c:86224,1
    - Dst: VdbeBranchTaken
      Src: /src/nss/lib/sqlite/sqlite3.c:86225,1
    - Dst: VdbeBranchTaken
      Src: /src/nss/lib/sqlite/sqlite3.c:86237,1
    - Dst: VdbeBranchTaken
      Src: /src/nss/lib/sqlite/sqlite3.c:86251,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86267,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86268,1
    - Dst: sqlite3VdbeMemSetNull
      Src: /src/nss/lib/sqlite/sqlite3.c:86270,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86294,1
    - Dst: NEVER
      Src: /src/nss/lib/sqlite/sqlite3.c:86297,1
    - Dst: sqlite3VdbeMemSetNull
      Src: /src/nss/lib/sqlite/sqlite3.c:86298,1
    - Dst: sqlite3VdbeMemSetInt64
      Src: /src/nss/lib/sqlite/sqlite3.c:86300,1
    - Dst: sqlite3BtreeOffset
      Src: /src/nss/lib/sqlite/sqlite3.c:86300,1
    - Dst: sqlite3VdbeCursorMoveto
      Src: /src/nss/lib/sqlite/sqlite3.c:86353,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86356,1
    - Dst: memAboutToChange
      Src: /src/nss/lib/sqlite/sqlite3.c:86358,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86359,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86360,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86361,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86363,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86364,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86365,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86372,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86374,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86375,1
    - Dst: memIsValid
      Src: /src/nss/lib/sqlite/sqlite3.c:86375,1
    - Dst: sqlite3VdbeMemSetNull
      Src: /src/nss/lib/sqlite/sqlite3.c:86379,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86384,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86385,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86386,1
    - Dst: sqlite3BtreeCursorIsValid
      Src: /src/nss/lib/sqlite/sqlite3.c:86386,1
    - Dst: sqlite3BtreePayloadSize
      Src: /src/nss/lib/sqlite/sqlite3.c:86387,1
    - Dst: sqlite3BtreePayloadFetch
      Src: /src/nss/lib/sqlite/sqlite3.c:86388,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86389,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86390,1
    - Dst: getVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:86396,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86435,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:86436,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:86451,1
    - Dst: sqlite3VdbeMemFromBtree
      Src: /src/nss/lib/sqlite/sqlite3.c:86452,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:86465,1
    - Dst: sqlite3VdbeOneByteSerialTypeLen
      Src: /src/nss/lib/sqlite/sqlite3.c:86469,1
    - Dst: sqlite3GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:86471,1
    - Dst: sqlite3VdbeSerialTypeLen
      Src: /src/nss/lib/sqlite/sqlite3.c:86473,1
    - Dst: sqlite3VdbeMemRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:86490,1
    - Dst: sqlite3VdbeMemRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:86497,1
    - Dst: sqlite3VdbeMemShallowCopy
      Src: /src/nss/lib/sqlite/sqlite3.c:86508,1
    - Dst: sqlite3VdbeMemSetNull
      Src: /src/nss/lib/sqlite/sqlite3.c:86510,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86522,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86523,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86524,1
    - Dst: sqlite3VdbeCheckMemInvariants
      Src: /src/nss/lib/sqlite/sqlite3.c:86524,1
    - Dst: VdbeMemDynamic
      Src: /src/nss/lib/sqlite/sqlite3.c:86525,1
    - Dst: sqlite3VdbeMemSetNull
      Src: /src/nss/lib/sqlite/sqlite3.c:86526,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86528,1
    - Dst: sqlite3VdbeSerialGet
      Src: /src/nss/lib/sqlite/sqlite3.c:86534,1
    - Dst: sqlite3VdbeMemGrow
      Src: /src/nss/lib/sqlite/sqlite3.c:86545,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:86549,1
    - Dst: sqlite3VdbeSerialTypeLen
      Src: /src/nss/lib/sqlite/sqlite3.c:86559,1
    - Dst: sqlite3VdbeSerialGet
      Src: /src/nss/lib/sqlite/sqlite3.c:86573,1
    - Dst: sqlite3VdbeMemFromBtree
      Src: /src/nss/lib/sqlite/sqlite3.c:86575,1
    - Dst: sqlite3VdbeSerialGet
      Src: /src/nss/lib/sqlite/sqlite3.c:86577,1
    - Dst: UPDATE_MAX_BLOBSIZE
      Src: /src/nss/lib/sqlite/sqlite3.c:86583,1
    - Dst: REGISTER_TRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:86584,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86610,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86611,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86612,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86615,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86616,1
    - Dst: memIsValid
      Src: /src/nss/lib/sqlite/sqlite3.c:86616,1
    - Dst: applyAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:86617,1
    - Dst: REGISTER_TRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:86624,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86685,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86692,1
    - Dst: memAboutToChange
      Src: /src/nss/lib/sqlite/sqlite3.c:86694,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86698,1
    - Dst: applyAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:86702,1
    - Dst: REGISTER_TRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:86707,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86710,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86733,1
    - Dst: memIsValid
      Src: /src/nss/lib/sqlite/sqlite3.c:86733,1
    - Dst: sqlite3VdbeSerialType
      Src: /src/nss/lib/sqlite/sqlite3.c:86734,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86743,1
    - Dst: sqlite3VdbeMemExpandBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:86746,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:86753,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:86754,1
    - Dst: sqlite3VarintLen
      Src: /src/nss/lib/sqlite/sqlite3.c:86755,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:86765,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:86766,1
    - Dst: sqlite3VarintLen
      Src: /src/nss/lib/sqlite/sqlite3.c:86772,1
    - Dst: sqlite3VarintLen
      Src: /src/nss/lib/sqlite/sqlite3.c:86774,1
    - Dst: sqlite3VdbeMemClearAndResize
      Src: /src/nss/lib/sqlite/sqlite3.c:86793,1
    - Dst: UPDATE_MAX_BLOBSIZE
      Src: /src/nss/lib/sqlite/sqlite3.c:86803,1
    - Dst: putVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:86808,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86809,1
    - Dst: putVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:86815,1
    - Dst: sqlite3VdbeSerialPut
      Src: /src/nss/lib/sqlite/sqlite3.c:86818,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86820,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86821,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86823,1
    - Dst: REGISTER_TRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:86824,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86839,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86841,1
    - Dst: sqlite3BtreeCount
      Src: /src/nss/lib/sqlite/sqlite3.c:86843,1
    - Dst: out2Prerelease
      Src: /src/nss/lib/sqlite/sqlite3.c:86845,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86874,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86875,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86876,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86877,1
    - Dst: checkSavepointCount
      Src: /src/nss/lib/sqlite/sqlite3.c:86877,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86878,1
    - Dst: sqlite3VdbeError
      Src: /src/nss/lib/sqlite/sqlite3.c:86885,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:86888,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86895,1
    - Dst: sqlite3VtabSavepoint
      Src: /src/nss/lib/sqlite/sqlite3.c:86896,1
    - Dst: sqlite3DbMallocRawNN
      Src: /src/nss/lib/sqlite/sqlite3.c:86902,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:86905,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86924,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:86931,1
    - Dst: sqlite3VdbeError
      Src: /src/nss/lib/sqlite/sqlite3.c:86937,1
    - Dst: sqlite3VdbeError
      Src: /src/nss/lib/sqlite/sqlite3.c:86943,1
    - Dst: sqlite3VdbeCheckFk
      Src: /src/nss/lib/sqlite/sqlite3.c:86954,1
    - Dst: sqlite3VdbeHalt
      Src: /src/nss/lib/sqlite/sqlite3.c:86958,1
    - Dst: sqlite3BtreeTripAllCursors
      Src: /src/nss/lib/sqlite/sqlite3.c:86972,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:86978,1
    - Dst: sqlite3BtreeSavepoint
      Src: /src/nss/lib/sqlite/sqlite3.c:86982,1
    - Dst: sqlite3ExpirePreparedStatements
      Src: /src/nss/lib/sqlite/sqlite3.c:86988,1
    - Dst: sqlite3ResetAllSchemasOfConnection
      Src: /src/nss/lib/sqlite/sqlite3.c:86989,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:86999,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87008,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:87010,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87015,1
    - Dst: sqlite3VtabSavepoint
      Src: /src/nss/lib/sqlite/sqlite3.c:87021,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87046,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87047,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87048,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87049,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87053,1
    - Dst: sqlite3RollbackAll
      Src: /src/nss/lib/sqlite/sqlite3.c:87054,1
    - Dst: sqlite3VdbeError
      Src: /src/nss/lib/sqlite/sqlite3.c:87060,1
    - Dst: sqlite3VdbeCheckFk
      Src: /src/nss/lib/sqlite/sqlite3.c:87064,1
    - Dst: sqlite3VdbeHalt
      Src: /src/nss/lib/sqlite/sqlite3.c:87069,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87075,1
    - Dst: sqlite3CloseSavepoints
      Src: /src/nss/lib/sqlite/sqlite3.c:87076,1
    - Dst: sqlite3VdbeError
      Src: /src/nss/lib/sqlite/sqlite3.c:87084,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87133,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87134,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87135,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87136,1
    - Dst: DbMaskTest
      Src: /src/nss/lib/sqlite/sqlite3.c:87136,1
    - Dst: sqlite3BtreeBeginTrans
      Src: /src/nss/lib/sqlite/sqlite3.c:87144,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:87145,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:87146,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87159,1
    - Dst: sqlite3BtreeIsInTrans
      Src: /src/nss/lib/sqlite/sqlite3.c:87159,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87161,1
    - Dst: sqlite3VtabSavepoint
      Src: /src/nss/lib/sqlite/sqlite3.c:87166,1
    - Dst: sqlite3BtreeBeginStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:87168,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87178,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:87188,1
    - Dst: sqlite3DbStrDup
      Src: /src/nss/lib/sqlite/sqlite3.c:87189,1
    - Dst: sqlite3ResetOneSchema
      Src: /src/nss/lib/sqlite/sqlite3.c:87204,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87230,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87233,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87234,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87235,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87236,1
    - Dst: DbMaskTest
      Src: /src/nss/lib/sqlite/sqlite3.c:87236,1
    - Dst: sqlite3BtreeGetMeta
      Src: /src/nss/lib/sqlite/sqlite3.c:87238,1
    - Dst: out2Prerelease
      Src: /src/nss/lib/sqlite/sqlite3.c:87239,1
    - Dst: sqlite3VdbeIncrWriteCounter
      Src: /src/nss/lib/sqlite/sqlite3.c:87257,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87258,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87259,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87260,1
    - Dst: DbMaskTest
      Src: /src/nss/lib/sqlite/sqlite3.c:87260,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87261,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87263,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87264,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/nss/lib/sqlite/sqlite3.c:87264,1
    - Dst: sqlite3BtreeUpdateMeta
      Src: /src/nss/lib/sqlite/sqlite3.c:87266,1
    - Dst: sqlite3ExpirePreparedStatements
      Src: /src/nss/lib/sqlite/sqlite3.c:87278,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87379,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87380,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87383,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87391,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87392,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87393,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87405,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87406,1
    - Dst: DbMaskTest
      Src: /src/nss/lib/sqlite/sqlite3.c:87406,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87409,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87411,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87413,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/nss/lib/sqlite/sqlite3.c:87413,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87421,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87422,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87423,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87425,1
    - Dst: memIsValid
      Src: /src/nss/lib/sqlite/sqlite3.c:87425,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87426,1
    - Dst: sqlite3VdbeMemIntegerify
      Src: /src/nss/lib/sqlite/sqlite3.c:87427,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87433,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87437,1
    - Dst: ENC
      Src: /src/nss/lib/sqlite/sqlite3.c:87437,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87438,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87443,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87444,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:87445,1
    - Dst: allocateCursor
      Src: /src/nss/lib/sqlite/sqlite3.c:87446,1
    - Dst: sqlite3BtreeCursor
      Src: /src/nss/lib/sqlite/sqlite3.c:87454,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87463,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87464,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:87465,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:87467,1
    - Dst: sqlite3BtreeCursorHintFlags
      Src: /src/nss/lib/sqlite/sqlite3.c:87469,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87488,1
    - Dst: allocateCursor
      Src: /src/nss/lib/sqlite/sqlite3.c:87490,1
    - Dst: sqlite3BtreeCursor
      Src: /src/nss/lib/sqlite/sqlite3.c:87498,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87503,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87548,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87549,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87554,1
    - Dst: sqlite3BtreeClearTable
      Src: /src/nss/lib/sqlite/sqlite3.c:87558,1
    - Dst: allocateCursor
      Src: /src/nss/lib/sqlite/sqlite3.c:87561,1
    - Dst: sqlite3BtreeOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:87564,1
    - Dst: sqlite3BtreeBeginTrans
      Src: /src/nss/lib/sqlite/sqlite3.c:87568,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87577,1
    - Dst: sqlite3BtreeCreateTable
      Src: /src/nss/lib/sqlite/sqlite3.c:87578,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87581,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87582,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87583,1
    - Dst: ENC
      Src: /src/nss/lib/sqlite/sqlite3.c:87583,1
    - Dst: sqlite3BtreeCursor
      Src: /src/nss/lib/sqlite/sqlite3.c:87584,1
    - Dst: sqlite3BtreeCursor
      Src: /src/nss/lib/sqlite/sqlite3.c:87590,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87615,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87616,1
    - Dst: allocateCursor
      Src: /src/nss/lib/sqlite/sqlite3.c:87617,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87620,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87621,1
    - Dst: ENC
      Src: /src/nss/lib/sqlite/sqlite3.c:87621,1
    - Dst: sqlite3VdbeSorterInit
      Src: /src/nss/lib/sqlite/sqlite3.c:87622,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87636,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87638,1
    - Dst: isSorter
      Src: /src/nss/lib/sqlite/sqlite3.c:87638,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87664,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87665,1
    - Dst: allocateCursor
      Src: /src/nss/lib/sqlite/sqlite3.c:87666,1
    - Dst: sqlite3BtreeFakeValidCursor
      Src: /src/nss/lib/sqlite/sqlite3.c:87675,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87676,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87686,1
    - Dst: sqlite3VdbeFreeCursor
      Src: /src/nss/lib/sqlite/sqlite3.c:87687,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87706,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87810,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87811,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87813,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87814,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87815,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87816,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87817,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87818,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87819,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87831,1
    - Dst: sqlite3BtreeCursorHasHint
      Src: /src/nss/lib/sqlite/sqlite3.c:87831,1
    - Dst: applyNumericAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:87839,1
    - Dst: sqlite3VdbeIntValue
      Src: /src/nss/lib/sqlite/sqlite3.c:87841,1
    - Dst: VdbeBranchTaken
      Src: /src/nss/lib/sqlite/sqlite3.c:87848,1
    - Dst: sqlite3BtreeLast
      Src: /src/nss/lib/sqlite/sqlite3.c:87851,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87865,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87866,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87867,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87874,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87875,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87876,1
    - Dst: sqlite3BtreeMovetoUnpacked
      Src: /src/nss/lib/sqlite/sqlite3.c:87880,1
    - Dst: sqlite3BtreeCursorHasHint
      Src: /src/nss/lib/sqlite/sqlite3.c:87890,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87892,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87893,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87894,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87895,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87896,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87897,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87901,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87902,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87914,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87915,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87916,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87917,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87921,1
    - Dst: memIsValid
      Src: /src/nss/lib/sqlite/sqlite3.c:87921,1
    - Dst: sqlite3BtreeMovetoUnpacked
      Src: /src/nss/lib/sqlite/sqlite3.c:87924,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87929,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87936,1
    - Dst: sqlite3BtreeNext
      Src: /src/nss/lib/sqlite/sqlite3.c:87939,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87952,1
    - Dst: sqlite3BtreePrevious
      Src: /src/nss/lib/sqlite/sqlite3.c:87955,1
    - Dst: sqlite3BtreeEof
      Src: /src/nss/lib/sqlite/sqlite3.c:87968,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87972,1
    - Dst: VdbeBranchTaken
      Src: /src/nss/lib/sqlite/sqlite3.c:87973,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87977,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87994,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87996,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:87997,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88090,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88092,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88112,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88113,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88115,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88120,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88121,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88122,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88129,1
    - Dst: memIsValid
      Src: /src/nss/lib/sqlite/sqlite3.c:88129,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88130,1
    - Dst: REGISTER_TRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:88131,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88137,1
    - Dst: ExpandBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:88138,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88139,1
    - Dst: sqlite3VdbeAllocUnpackedRecord
      Src: /src/nss/lib/sqlite/sqlite3.c:88141,1
    - Dst: sqlite3VdbeRecordUnpack
      Src: /src/nss/lib/sqlite/sqlite3.c:88143,1
    - Dst: sqlite3BtreeMovetoUnpacked
      Src: /src/nss/lib/sqlite/sqlite3.c:88158,1
    - Dst: sqlite3DbFreeNN
      Src: /src/nss/lib/sqlite/sqlite3.c:88159,1
    - Dst: VdbeBranchTaken
      Src: /src/nss/lib/sqlite/sqlite3.c:88169,1
    - Dst: VdbeBranchTaken
      Src: /src/nss/lib/sqlite/sqlite3.c:88172,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:88232,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:88233,1
    - Dst: applyAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:88241,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88249,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88250,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88252,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88256,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88257,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88259,1
    - Dst: sqlite3BtreeMovetoUnpacked
      Src: /src/nss/lib/sqlite/sqlite3.c:88262,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88263,1
    - Dst: VdbeBranchTaken
      Src: /src/nss/lib/sqlite/sqlite3.c:88268,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88271,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88291,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88292,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88293,1
    - Dst: out2Prerelease
      Src: /src/nss/lib/sqlite/sqlite3.c:88294,1
    - Dst: out2Prerelease
      Src: /src/nss/lib/sqlite/sqlite3.c:88325,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88326,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88328,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88329,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88330,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88331,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88346,1
    - Dst: sqlite3BtreeLast
      Src: /src/nss/lib/sqlite/sqlite3.c:88359,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88366,1
    - Dst: sqlite3BtreeCursorIsValid
      Src: /src/nss/lib/sqlite/sqlite3.c:88366,1
    - Dst: sqlite3BtreeIntegerKey
      Src: /src/nss/lib/sqlite/sqlite3.c:88367,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88379,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88383,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88387,1
    - Dst: memAboutToChange
      Src: /src/nss/lib/sqlite/sqlite3.c:88389,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88391,1
    - Dst: memIsValid
      Src: /src/nss/lib/sqlite/sqlite3.c:88391,1
    - Dst: REGISTER_TRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:88393,1
    - Dst: sqlite3VdbeMemIntegerify
      Src: /src/nss/lib/sqlite/sqlite3.c:88394,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88395,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88411,1
    - Dst: sqlite3_randomness
      Src: /src/nss/lib/sqlite/sqlite3.c:88415,1
    - Dst: sqlite3BtreeMovetoUnpacked
      Src: /src/nss/lib/sqlite/sqlite3.c:88417,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88426,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88482,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88483,1
    - Dst: memIsValid
      Src: /src/nss/lib/sqlite/sqlite3.c:88483,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88485,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88486,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88487,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88488,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88489,1
    - Dst: REGISTER_TRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:88490,1
    - Dst: sqlite3VdbeIncrWriteCounter
      Src: /src/nss/lib/sqlite/sqlite3.c:88491,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88494,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88495,1
    - Dst: memIsValid
      Src: /src/nss/lib/sqlite/sqlite3.c:88495,1
    - Dst: REGISTER_TRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:88496,1
    - Dst: HAS_UPDATE_HOOK
      Src: /src/nss/lib/sqlite/sqlite3.c:88499,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88500,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88503,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:88503,1
    - Dst: sqlite3VdbePreUpdateHook
      Src: /src/nss/lib/sqlite/sqlite3.c:88513,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88525,1
    - Dst: sqlite3BtreeInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:88535,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88544,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88545,1
    - Dst: sqlite3*::xUpdateCallback
      Src: /src/nss/lib/sqlite/sqlite3.c:88546,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88595,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88597,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88598,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88599,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88600,1
    - Dst: sqlite3VdbeIncrWriteCounter
      Src: /src/nss/lib/sqlite/sqlite3.c:88601,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:88604,1
    - Dst: sqlite3BtreeIntegerKey
      Src: /src/nss/lib/sqlite/sqlite3.c:88608,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88609,1
    - Dst: HAS_UPDATE_HOOK
      Src: /src/nss/lib/sqlite/sqlite3.c:88618,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88619,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88620,1
    - Dst: sqlite3BtreeIntegerKey
      Src: /src/nss/lib/sqlite/sqlite3.c:88624,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88634,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:88635,1
    - Dst: sqlite3VdbePreUpdateHook
      Src: /src/nss/lib/sqlite/sqlite3.c:88638,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88648,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88649,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88650,1
    - Dst: sqlite3BtreeDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:88666,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:88674,1
    - Dst: sqlite3*::xUpdateCallback
      Src: /src/nss/lib/sqlite/sqlite3.c:88675,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88677,1
    - Dst: sqlite3VdbeSetChanges
      Src: /src/nss/lib/sqlite/sqlite3.c:88691,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88717,1
    - Dst: isSorter
      Src: /src/nss/lib/sqlite/sqlite3.c:88717,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88718,1
    - Dst: sqlite3VdbeSorterCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:88722,1
    - Dst: VdbeBranchTaken
      Src: /src/nss/lib/sqlite/sqlite3.c:88723,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88746,1
    - Dst: isSorter
      Src: /src/nss/lib/sqlite/sqlite3.c:88746,1
    - Dst: sqlite3VdbeSorterRowkey
      Src: /src/nss/lib/sqlite/sqlite3.c:88747,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88748,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88749,1
    - Dst: out2Prerelease
      Src: /src/nss/lib/sqlite/sqlite3.c:88788,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88790,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88792,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88793,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88794,1
    - Dst: isSorter
      Src: /src/nss/lib/sqlite/sqlite3.c:88794,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88795,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88796,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88807,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88808,1
    - Dst: sqlite3BtreeCursorIsValid
      Src: /src/nss/lib/sqlite/sqlite3.c:88808,1
    - Dst: sqlite3VdbeCursorMoveto
      Src: /src/nss/lib/sqlite/sqlite3.c:88810,1
    - Dst: sqlite3BtreePayloadSize
      Src: /src/nss/lib/sqlite/sqlite3.c:88814,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:88818,1
    - Dst: sqlite3VdbeMemFromBtree
      Src: /src/nss/lib/sqlite/sqlite3.c:88819,1
    - Dst: Deephemeralize
      Src: /src/nss/lib/sqlite/sqlite3.c:88821,1
    - Dst: UPDATE_MAX_BLOBSIZE
      Src: /src/nss/lib/sqlite/sqlite3.c:88822,1
    - Dst: REGISTER_TRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:88823,1
    - Dst: out2Prerelease
      Src: /src/nss/lib/sqlite/sqlite3.c:88843,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88844,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88846,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88847,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88855,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88858,1
    - Dst: sqlite3_module*::xRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:88859,1
    - Dst: sqlite3VtabImportErrmsg
      Src: /src/nss/lib/sqlite/sqlite3.c:88860,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88864,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88865,1
    - Dst: sqlite3VdbeCursorRestore
      Src: /src/nss/lib/sqlite/sqlite3.c:88866,1
    - Dst: sqlite3BtreeIntegerKey
      Src: /src/nss/lib/sqlite/sqlite3.c:88872,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88887,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88889,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88893,1
    - Dst: sqlite3BtreeClearCursor
      Src: /src/nss/lib/sqlite/sqlite3.c:88894,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88930,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88932,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88933,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88936,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88941,1
    - Dst: sqlite3BtreeCursorIsValidNN
      Src: /src/nss/lib/sqlite/sqlite3.c:88943,1
    - Dst: sqlite3BtreeLast
      Src: /src/nss/lib/sqlite/sqlite3.c:88947,1
    - Dst: VdbeBranchTaken
      Src: /src/nss/lib/sqlite/sqlite3.c:88953,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88970,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88972,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:88974,1
    - Dst: sqlite3BtreeFirst
      Src: /src/nss/lib/sqlite/sqlite3.c:88975,1
    - Dst: sqlite3BtreeRowCountEst
      Src: /src/nss/lib/sqlite/sqlite3.c:88978,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:88979,1
    - Dst: sqlite3LogEst
      Src: /src/nss/lib/sqlite/sqlite3.c:88979,1
    - Dst: VdbeBranchTaken
      Src: /src/nss/lib/sqlite/sqlite3.c:88981,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89034,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89035,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89037,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89038,1
    - Dst: isSorter
      Src: /src/nss/lib/sqlite/sqlite3.c:89038,1
    - Dst: isSorter
      Src: /src/nss/lib/sqlite/sqlite3.c:89043,1
    - Dst: sqlite3VdbeSorterRewind
      Src: /src/nss/lib/sqlite/sqlite3.c:89044,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89046,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89048,1
    - Dst: sqlite3BtreeFirst
      Src: /src/nss/lib/sqlite/sqlite3.c:89049,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89055,1
    - Dst: VdbeBranchTaken
      Src: /src/nss/lib/sqlite/sqlite3.c:89056,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89125,1
    - Dst: isSorter
      Src: /src/nss/lib/sqlite/sqlite3.c:89125,1
    - Dst: sqlite3VdbeSorterNext
      Src: /src/nss/lib/sqlite/sqlite3.c:89126,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89130,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89131,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:89131,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89133,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89134,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89135,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89136,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89137,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89141,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89145,1
    - Dst: Op*::p4::xAdvance
      Src: /src/nss/lib/sqlite/sqlite3.c:89150,1
    - Dst: VdbeBranchTaken
      Src: /src/nss/lib/sqlite/sqlite3.c:89153,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89208,1
    - Dst: sqlite3VdbeIncrWriteCounter
      Src: /src/nss/lib/sqlite/sqlite3.c:89210,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89211,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89212,1
    - Dst: isSorter
      Src: /src/nss/lib/sqlite/sqlite3.c:89212,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89214,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89216,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89217,1
    - Dst: ExpandBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:89218,1
    - Dst: sqlite3VdbeSorterWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:89221,1
    - Dst: sqlite3BtreeInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:89227,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89231,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89251,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89252,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89253,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89255,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89256,1
    - Dst: sqlite3VdbeIncrWriteCounter
      Src: /src/nss/lib/sqlite/sqlite3.c:89257,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89259,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89260,1
    - Dst: sqlite3BtreeMovetoUnpacked
      Src: /src/nss/lib/sqlite/sqlite3.c:89265,1
    - Dst: sqlite3BtreeDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:89268,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89271,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89311,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89313,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89314,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89315,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89316,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89317,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89318,1
    - Dst: sqlite3VdbeCursorRestore
      Src: /src/nss/lib/sqlite/sqlite3.c:89322,1
    - Dst: NEVER
      Src: /src/nss/lib/sqlite/sqlite3.c:89327,1
    - Dst: sqlite3VdbeIdxRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:89331,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89336,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89338,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89339,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89340,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89341,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89345,1
    - Dst: out2Prerelease
      Src: /src/nss/lib/sqlite/sqlite3.c:89349,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89353,1
    - Dst: sqlite3VdbeMemSetNull
      Src: /src/nss/lib/sqlite/sqlite3.c:89354,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89411,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89413,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89414,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89415,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89416,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89417,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89418,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89419,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89423,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89426,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89434,1
    - Dst: memIsValid
      Src: /src/nss/lib/sqlite/sqlite3.c:89434,1
    - Dst: REGISTER_TRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:89435,1
    - Dst: sqlite3VdbeIdxKeyCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:89440,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89441,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89443,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89446,1
    - Dst: VdbeBranchTaken
      Src: /src/nss/lib/sqlite/sqlite3.c:89449,1
    - Dst: sqlite3VdbeIncrWriteCounter
      Src: /src/nss/lib/sqlite/sqlite3.c:89486,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89487,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89488,1
    - Dst: out2Prerelease
      Src: /src/nss/lib/sqlite/sqlite3.c:89489,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89497,1
    - Dst: DbMaskTest
      Src: /src/nss/lib/sqlite/sqlite3.c:89497,1
    - Dst: sqlite3BtreeDropTable
      Src: /src/nss/lib/sqlite/sqlite3.c:89499,1
    - Dst: sqlite3RootPageMoved
      Src: /src/nss/lib/sqlite/sqlite3.c:89505,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89507,1
    - Dst: sqlite3VdbeIncrWriteCounter
      Src: /src/nss/lib/sqlite/sqlite3.c:89536,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89538,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89539,1
    - Dst: DbMaskTest
      Src: /src/nss/lib/sqlite/sqlite3.c:89539,1
    - Dst: sqlite3BtreeClearTable
      Src: /src/nss/lib/sqlite/sqlite3.c:89540,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89546,1
    - Dst: memIsValid
      Src: /src/nss/lib/sqlite/sqlite3.c:89546,1
    - Dst: memAboutToChange
      Src: /src/nss/lib/sqlite/sqlite3.c:89547,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89566,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89568,1
    - Dst: isSorter
      Src: /src/nss/lib/sqlite/sqlite3.c:89569,1
    - Dst: sqlite3VdbeSorterReset
      Src: /src/nss/lib/sqlite/sqlite3.c:89570,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89572,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89573,1
    - Dst: sqlite3BtreeClearTableOfCursor
      Src: /src/nss/lib/sqlite/sqlite3.c:89574,1
    - Dst: sqlite3VdbeIncrWriteCounter
      Src: /src/nss/lib/sqlite/sqlite3.c:89593,1
    - Dst: out2Prerelease
      Src: /src/nss/lib/sqlite/sqlite3.c:89594,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89596,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89597,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89598,1
    - Dst: DbMaskTest
      Src: /src/nss/lib/sqlite/sqlite3.c:89598,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89599,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89601,1
    - Dst: sqlite3BtreeCreateTable
      Src: /src/nss/lib/sqlite/sqlite3.c:89602,1
    - Dst: sqlite3VdbeIncrWriteCounter
      Src: /src/nss/lib/sqlite/sqlite3.c:89613,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/sqlite/sqlite3.c:89615,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89642,1
    - Dst: sqlite3BtreeHoldsMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:89642,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89647,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89648,1
    - Dst: DbHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:89648,1
    - Dst: sqlite3SchemaClear
      Src: /src/nss/lib/sqlite/sqlite3.c:89652,1
    - Dst: sqlite3InitOne
      Src: /src/nss/lib/sqlite/sqlite3.c:89654,1
    - Dst: sqlite3MPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:89665,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89671,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89675,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/sqlite/sqlite3.c:89676,1
    - Dst: sqlite3DbFreeNN
      Src: /src/nss/lib/sqlite/sqlite3.c:89684,1
    - Dst: sqlite3ResetAllSchemasOfConnection
      Src: /src/nss/lib/sqlite/sqlite3.c:89689,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89706,1
    - Dst: sqlite3AnalysisLoad
      Src: /src/nss/lib/sqlite/sqlite3.c:89707,1
    - Dst: sqlite3VdbeIncrWriteCounter
      Src: /src/nss/lib/sqlite/sqlite3.c:89722,1
    - Dst: sqlite3UnlinkAndDeleteTable
      Src: /src/nss/lib/sqlite/sqlite3.c:89723,1
    - Dst: sqlite3VdbeIncrWriteCounter
      Src: /src/nss/lib/sqlite/sqlite3.c:89736,1
    - Dst: sqlite3UnlinkAndDeleteIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:89737,1
    - Dst: sqlite3VdbeIncrWriteCounter
      Src: /src/nss/lib/sqlite/sqlite3.c:89750,1
    - Dst: sqlite3UnlinkAndDeleteTrigger
      Src: /src/nss/lib/sqlite/sqlite3.c:89751,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89783,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89786,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89787,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89788,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89790,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89791,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89793,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89794,1
    - Dst: DbMaskTest
      Src: /src/nss/lib/sqlite/sqlite3.c:89794,1
    - Dst: sqlite3BtreeIntegrityCheck
      Src: /src/nss/lib/sqlite/sqlite3.c:89795,1
    - Dst: sqlite3VdbeMemSetNull
      Src: /src/nss/lib/sqlite/sqlite3.c:89797,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89799,1
    - Dst: sqlite3VdbeMemSetStr
      Src: /src/nss/lib/sqlite/sqlite3.c:89804,1
    - Dst: UPDATE_MAX_BLOBSIZE
      Src: /src/nss/lib/sqlite/sqlite3.c:89806,1
    - Dst: sqlite3VdbeChangeEncoding
      Src: /src/nss/lib/sqlite/sqlite3.c:89807,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89823,1
    - Dst: sqlite3VdbeMemSetRowSet
      Src: /src/nss/lib/sqlite/sqlite3.c:89825,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89827,1
    - Dst: sqlite3VdbeMemIsRowSet
      Src: /src/nss/lib/sqlite/sqlite3.c:89827,1
    - Dst: sqlite3RowSetInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:89828,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89844,1
    - Dst: sqlite3VdbeMemIsRowSet
      Src: /src/nss/lib/sqlite/sqlite3.c:89844,1
    - Dst: sqlite3RowSetNext
      Src: /src/nss/lib/sqlite/sqlite3.c:89846,1
    - Dst: sqlite3VdbeMemSetNull
      Src: /src/nss/lib/sqlite/sqlite3.c:89849,1
    - Dst: VdbeBranchTaken
      Src: /src/nss/lib/sqlite/sqlite3.c:89850,1
    - Dst: VdbeBranchTaken
      Src: /src/nss/lib/sqlite/sqlite3.c:89854,1
    - Dst: sqlite3VdbeMemSetInt64
      Src: /src/nss/lib/sqlite/sqlite3.c:89855,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89890,1
    - Dst: sqlite3VdbeMemSetRowSet
      Src: /src/nss/lib/sqlite/sqlite3.c:89896,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89898,1
    - Dst: sqlite3VdbeMemIsRowSet
      Src: /src/nss/lib/sqlite/sqlite3.c:89898,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89899,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89900,1
    - Dst: sqlite3RowSetTest
      Src: /src/nss/lib/sqlite/sqlite3.c:89902,1
    - Dst: VdbeBranchTaken
      Src: /src/nss/lib/sqlite/sqlite3.c:89903,1
    - Dst: sqlite3RowSetInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:89907,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89942,1
    - Dst: sqlite3VdbeError
      Src: /src/nss/lib/sqlite/sqlite3.c:89963,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:89978,1
    - Dst: ROUND8
      Src: /src/nss/lib/sqlite/sqlite3.c:89980,1
    - Dst: sqlite3DbMallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:89984,1
    - Dst: sqlite3VdbeMemRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:89988,1
    - Dst: VdbeFrameMem
      Src: /src/nss/lib/sqlite/sqlite3.c:90012,1
    - Dst: VdbeFrameMem
      Src: /src/nss/lib/sqlite/sqlite3.c:90013,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90019,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90020,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90022,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90023,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90031,1
    - Dst: VdbeFrameMem
      Src: /src/nss/lib/sqlite/sqlite3.c:90036,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:90041,1
    - Dst: out2Prerelease
      Src: /src/nss/lib/sqlite/sqlite3.c:90077,1
    - Dst: sqlite3VdbeMemShallowCopy
      Src: /src/nss/lib/sqlite/sqlite3.c:90080,1
    - Dst: VdbeBranchTaken
      Src: /src/nss/lib/sqlite/sqlite3.c:90120,1
    - Dst: VdbeBranchTaken
      Src: /src/nss/lib/sqlite/sqlite3.c:90123,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90150,1
    - Dst: memIsValid
      Src: /src/nss/lib/sqlite/sqlite3.c:90150,1
    - Dst: sqlite3VdbeMemIntegerify
      Src: /src/nss/lib/sqlite/sqlite3.c:90151,1
    - Dst: sqlite3VdbeMemIntegerify
      Src: /src/nss/lib/sqlite/sqlite3.c:90153,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90173,1
    - Dst: VdbeBranchTaken
      Src: /src/nss/lib/sqlite/sqlite3.c:90174,1
    - Dst: out2Prerelease
      Src: /src/nss/lib/sqlite/sqlite3.c:90204,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90205,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90206,1
    - Dst: sqlite3AddInt64
      Src: /src/nss/lib/sqlite/sqlite3.c:90208,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90233,1
    - Dst: VdbeBranchTaken
      Src: /src/nss/lib/sqlite/sqlite3.c:90234,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90250,1
    - Dst: VdbeBranchTaken
      Src: /src/nss/lib/sqlite/sqlite3.c:90252,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90302,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90304,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90305,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90306,1
    - Dst: sqlite3DbMallocRawNN
      Src: /src/nss/lib/sqlite/sqlite3.c:90307,1
    - Dst: sqlite3VdbeMemInit
      Src: /src/nss/lib/sqlite/sqlite3.c:90312,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90323,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90333,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90341,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90359,1
    - Dst: memIsValid
      Src: /src/nss/lib/sqlite/sqlite3.c:90359,1
    - Dst: REGISTER_TRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:90360,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90365,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90366,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90367,1
    - Dst: sqlite3VdbeError
      Src: /src/nss/lib/sqlite/sqlite3.c:90377,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:90377,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90381,1
    - Dst: sqlite3VdbeMemSetInt64
      Src: /src/nss/lib/sqlite/sqlite3.c:90383,1
    - Dst: sqlite3VdbeMemRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:90386,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90391,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90392,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90425,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90426,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90428,1
    - Dst: memAboutToChange
      Src: /src/nss/lib/sqlite/sqlite3.c:90431,1
    - Dst: sqlite3VdbeMemAggValue
      Src: /src/nss/lib/sqlite/sqlite3.c:90432,1
    - Dst: sqlite3VdbeMemFinalize
      Src: /src/nss/lib/sqlite/sqlite3.c:90437,1
    - Dst: sqlite3VdbeError
      Src: /src/nss/lib/sqlite/sqlite3.c:90441,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:90441,1
    - Dst: sqlite3VdbeChangeEncoding
      Src: /src/nss/lib/sqlite/sqlite3.c:90444,1
    - Dst: UPDATE_MAX_BLOBSIZE
      Src: /src/nss/lib/sqlite/sqlite3.c:90445,1
    - Dst: sqlite3VdbeMemTooBig
      Src: /src/nss/lib/sqlite/sqlite3.c:90446,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90469,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90472,1
    - Dst: sqlite3Checkpoint
      Src: /src/nss/lib/sqlite/sqlite3.c:90477,1
    - Dst: sqlite3VdbeMemSetInt64
      Src: /src/nss/lib/sqlite/sqlite3.c:90484,1
    - Dst: out2Prerelease
      Src: /src/nss/lib/sqlite/sqlite3.c:90511,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90513,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90521,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90522,1
    - Dst: sqlite3BtreePager
      Src: /src/nss/lib/sqlite/sqlite3.c:90525,1
    - Dst: sqlite3PagerGetJournalMode
      Src: /src/nss/lib/sqlite/sqlite3.c:90526,1
    - Dst: sqlite3PagerOkToChangeJournalMode
      Src: /src/nss/lib/sqlite/sqlite3.c:90528,1
    - Dst: sqlite3PagerFilename
      Src: /src/nss/lib/sqlite/sqlite3.c:90531,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:90537,1
    - Dst: sqlite3PagerWalSupported
      Src: /src/nss/lib/sqlite/sqlite3.c:90538,1
    - Dst: sqlite3VdbeError
      Src: /src/nss/lib/sqlite/sqlite3.c:90548,1
    - Dst: sqlite3PagerCloseWal
      Src: /src/nss/lib/sqlite/sqlite3.c:90561,1
    - Dst: sqlite3PagerSetJournalMode
      Src: /src/nss/lib/sqlite/sqlite3.c:90563,1
    - Dst: sqlite3PagerSetJournalMode
      Src: /src/nss/lib/sqlite/sqlite3.c:90568,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90574,1
    - Dst: sqlite3BtreeIsInTrans
      Src: /src/nss/lib/sqlite/sqlite3.c:90574,1
    - Dst: sqlite3BtreeSetVersion
      Src: /src/nss/lib/sqlite/sqlite3.c:90576,1
    - Dst: sqlite3PagerSetJournalMode
      Src: /src/nss/lib/sqlite/sqlite3.c:90583,1
    - Dst: sqlite3JournalModename
      Src: /src/nss/lib/sqlite/sqlite3.c:90586,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:90587,1
    - Dst: sqlite3VdbeChangeEncoding
      Src: /src/nss/lib/sqlite/sqlite3.c:90589,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90606,1
    - Dst: sqlite3RunVacuum
      Src: /src/nss/lib/sqlite/sqlite3.c:90607,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90624,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90625,1
    - Dst: DbMaskTest
      Src: /src/nss/lib/sqlite/sqlite3.c:90625,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90626,1
    - Dst: sqlite3BtreeIncrVacuum
      Src: /src/nss/lib/sqlite/sqlite3.c:90628,1
    - Dst: VdbeBranchTaken
      Src: /src/nss/lib/sqlite/sqlite3.c:90629,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90656,1
    - Dst: sqlite3ExpirePreparedStatements
      Src: /src/nss/lib/sqlite/sqlite3.c:90658,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90685,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90686,1
    - Dst: DbMaskTest
      Src: /src/nss/lib/sqlite/sqlite3.c:90686,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90687,1
    - Dst: sqlite3BtreeLockTable
      Src: /src/nss/lib/sqlite/sqlite3.c:90688,1
    - Dst: sqlite3VdbeError
      Src: /src/nss/lib/sqlite/sqlite3.c:90692,1
    - Dst: sqlite3VtabBegin
      Src: /src/nss/lib/sqlite/sqlite3.c:90714,1
    - Dst: sqlite3VtabImportErrmsg
      Src: /src/nss/lib/sqlite/sqlite3.c:90715,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:90731,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90735,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90736,1
    - Dst: sqlite3VdbeMemCopy
      Src: /src/nss/lib/sqlite/sqlite3.c:90737,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90738,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:90739,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90740,1
    - Dst: sqlite3VtabCallCreate
      Src: /src/nss/lib/sqlite/sqlite3.c:90742,1
    - Dst: sqlite3VdbeMemRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:90744,1
    - Dst: sqlite3VtabCallDestroy
      Src: /src/nss/lib/sqlite/sqlite3.c:90758,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90760,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90779,1
    - Dst: NEVER
      Src: /src/nss/lib/sqlite/sqlite3.c:90783,1
    - Dst: sqlite3_module*::xOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:90788,1
    - Dst: sqlite3VtabImportErrmsg
      Src: /src/nss/lib/sqlite/sqlite3.c:90789,1
    - Dst: allocateCursor
      Src: /src/nss/lib/sqlite/sqlite3.c:90796,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90801,1
    - Dst: sqlite3_module*::xClose
      Src: /src/nss/lib/sqlite/sqlite3.c:90802,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90845,1
    - Dst: memIsValid
      Src: /src/nss/lib/sqlite/sqlite3.c:90845,1
    - Dst: REGISTER_TRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:90846,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90847,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90853,1
    - Dst: sqlite3_module*::xFilter
      Src: /src/nss/lib/sqlite/sqlite3.c:90863,1
    - Dst: sqlite3VtabImportErrmsg
      Src: /src/nss/lib/sqlite/sqlite3.c:90864,1
    - Dst: sqlite3_module*::xEof
      Src: /src/nss/lib/sqlite/sqlite3.c:90866,1
    - Dst: VdbeBranchTaken
      Src: /src/nss/lib/sqlite/sqlite3.c:90868,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90896,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90897,1
    - Dst: memAboutToChange
      Src: /src/nss/lib/sqlite/sqlite3.c:90899,1
    - Dst: sqlite3VdbeMemSetNull
      Src: /src/nss/lib/sqlite/sqlite3.c:90901,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90906,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:90907,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:90909,1
    - Dst: sqlite3VdbeMemSetNull
      Src: /src/nss/lib/sqlite/sqlite3.c:90911,1
    - Dst: MemSetTypeFlag
      Src: /src/nss/lib/sqlite/sqlite3.c:90915,1
    - Dst: sqlite3_module*::xColumn
      Src: /src/nss/lib/sqlite/sqlite3.c:90917,1
    - Dst: sqlite3VtabImportErrmsg
      Src: /src/nss/lib/sqlite/sqlite3.c:90918,1
    - Dst: sqlite3VdbeError
      Src: /src/nss/lib/sqlite/sqlite3.c:90920,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:90920,1
    - Dst: sqlite3VdbeChangeEncoding
      Src: /src/nss/lib/sqlite/sqlite3.c:90923,1
    - Dst: REGISTER_TRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:90924,1
    - Dst: UPDATE_MAX_BLOBSIZE
      Src: /src/nss/lib/sqlite/sqlite3.c:90925,1
    - Dst: sqlite3VdbeMemTooBig
      Src: /src/nss/lib/sqlite/sqlite3.c:90927,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90950,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90956,1
    - Dst: sqlite3_module*::xNext
      Src: /src/nss/lib/sqlite/sqlite3.c:90964,1
    - Dst: sqlite3VtabImportErrmsg
      Src: /src/nss/lib/sqlite/sqlite3.c:90965,1
    - Dst: sqlite3_module*::xEof
      Src: /src/nss/lib/sqlite/sqlite3.c:90967,1
    - Dst: VdbeBranchTaken
      Src: /src/nss/lib/sqlite/sqlite3.c:90968,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90993,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90994,1
    - Dst: memIsValid
      Src: /src/nss/lib/sqlite/sqlite3.c:90994,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90995,1
    - Dst: REGISTER_TRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:90996,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:90997,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:90998,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:90999,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:91000,1
    - Dst: sqlite3VdbeChangeEncoding
      Src: /src/nss/lib/sqlite/sqlite3.c:91001,1
    - Dst: sqlite3_vtab*::pModule::xRename
      Src: /src/nss/lib/sqlite/sqlite3.c:91003,1
    - Dst: sqlite3VtabImportErrmsg
      Src: /src/nss/lib/sqlite/sqlite3.c:91005,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:91049,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:91052,1
    - Dst: sqlite3VdbeIncrWriteCounter
      Src: /src/nss/lib/sqlite/sqlite3.c:91054,1
    - Dst: NEVER
      Src: /src/nss/lib/sqlite/sqlite3.c:91056,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:91062,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:91063,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:91068,1
    - Dst: memIsValid
      Src: /src/nss/lib/sqlite/sqlite3.c:91068,1
    - Dst: memAboutToChange
      Src: /src/nss/lib/sqlite/sqlite3.c:91069,1
    - Dst: sqlite3_module*::xUpdate
      Src: /src/nss/lib/sqlite/sqlite3.c:91074,1
    - Dst: sqlite3VtabImportErrmsg
      Src: /src/nss/lib/sqlite/sqlite3.c:91076,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:91078,1
    - Dst: out2Prerelease
      Src: /src/nss/lib/sqlite/sqlite3.c:91102,1
    - Dst: sqlite3BtreeLastPage
      Src: /src/nss/lib/sqlite/sqlite3.c:91103,1
    - Dst: out2Prerelease
      Src: /src/nss/lib/sqlite/sqlite3.c:91122,1
    - Dst: sqlite3BtreeLastPage
      Src: /src/nss/lib/sqlite/sqlite3.c:91126,1
    - Dst: sqlite3BtreeMaxPageCount
      Src: /src/nss/lib/sqlite/sqlite3.c:91129,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:91180,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:91182,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:91183,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:91184,1
    - Dst: sqlite3DbMallocRawNN
      Src: /src/nss/lib/sqlite/sqlite3.c:91185,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:91195,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:91196,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:91205,1
    - Dst: memAboutToChange
      Src: /src/nss/lib/sqlite/sqlite3.c:91218,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:91221,1
    - Dst: memIsValid
      Src: /src/nss/lib/sqlite/sqlite3.c:91221,1
    - Dst: REGISTER_TRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:91222,1
    - Dst: MemSetTypeFlag
      Src: /src/nss/lib/sqlite/sqlite3.c:91225,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:91226,1
    - Dst: sqlite3VdbeError
      Src: /src/nss/lib/sqlite/sqlite3.c:91232,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:91232,1
    - Dst: sqlite3VdbeDeleteAuxData
      Src: /src/nss/lib/sqlite/sqlite3.c:91235,1
    - Dst: sqlite3VdbeChangeEncoding
      Src: /src/nss/lib/sqlite/sqlite3.c:91242,1
    - Dst: sqlite3VdbeMemTooBig
      Src: /src/nss/lib/sqlite/sqlite3.c:91243,1
    - Dst: REGISTER_TRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:91246,1
    - Dst: UPDATE_MAX_BLOBSIZE
      Src: /src/nss/lib/sqlite/sqlite3.c:91247,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:91292,1
    - Dst: strncmp
      Src: /src/nss/lib/sqlite/sqlite3.c:91292,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:91295,1
    - Dst: sqlite3VdbeExpandSql
      Src: /src/nss/lib/sqlite/sqlite3.c:91305,1
    - Dst: x
      Src: /src/nss/lib/sqlite/sqlite3.c:91306,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:91307,1
    - Dst: sqlite3MPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:91311,1
    - Dst: sqlite3*::xTrace
      Src: /src/nss/lib/sqlite/sqlite3.c:91312,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:91313,1
    - Dst: sqlite3*::xTrace
      Src: /src/nss/lib/sqlite/sqlite3.c:91315,1
    - Dst: DbMaskTest
      Src: /src/nss/lib/sqlite/sqlite3.c:91323,1
    - Dst: sqlite3_file_control
      Src: /src/nss/lib/sqlite/sqlite3.c:91324,1
    - Dst: sqlite3DebugPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:91332,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:91336,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:91360,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:91361,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:91364,1
    - Dst: sqlite3BtreeCursorHint
      Src: /src/nss/lib/sqlite/sqlite3.c:91365,1
    - Dst: sqlite3VdbeAssertAbortable
      Src: /src/nss/lib/sqlite/sqlite3.c:91383,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:91400,1
    - Dst: sqlite3Hwtime
      Src: /src/nss/lib/sqlite/sqlite3.c:91415,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:91427,1
    - Dst: printf
      Src: /src/nss/lib/sqlite/sqlite3.c:91432,1
    - Dst: registerTrace
      Src: /src/nss/lib/sqlite/sqlite3.c:91434,1
    - Dst: registerTrace
      Src: /src/nss/lib/sqlite/sqlite3.c:91437,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:91449,1
    - Dst: sqlite3VdbeError
      Src: /src/nss/lib/sqlite/sqlite3.c:91451,1
    - Dst: sqlite3ErrStr
      Src: /src/nss/lib/sqlite/sqlite3.c:91451,1
    - Dst: sqlite3SystemError
      Src: /src/nss/lib/sqlite/sqlite3.c:91454,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:91455,1
    - Dst: sqlite3_log
      Src: /src/nss/lib/sqlite/sqlite3.c:91456,1
    - Dst: sqlite3VdbeHalt
      Src: /src/nss/lib/sqlite/sqlite3.c:91458,1
    - Dst: sqlite3OomFault
      Src: /src/nss/lib/sqlite/sqlite3.c:91459,1
    - Dst: sqlite3ResetOneSchema
      Src: /src/nss/lib/sqlite/sqlite3.c:91462,1
    - Dst: sqlite3*::xProgress
      Src: /src/nss/lib/sqlite/sqlite3.c:91472,1
    - Dst: sqlite3VdbeLeave
      Src: /src/nss/lib/sqlite/sqlite3.c:91480,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:91481,1
    - Dst: sqlite3_strlike
      Src: /src/nss/lib/sqlite/sqlite3.c:91482,1
    - Dst: sqlite3VdbeError
      Src: /src/nss/lib/sqlite/sqlite3.c:91490,1
    - Dst: sqlite3OomFault
      Src: /src/nss/lib/sqlite/sqlite3.c:91497,1
    - Dst: sqlite3VdbeError
      Src: /src/nss/lib/sqlite/sqlite3.c:91498,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:91506,1
    - Dst: sqlite3VdbeError
      Src: /src/nss/lib/sqlite/sqlite3.c:91509,1
    - Dst: sqlite3ErrStr
      Src: /src/nss/lib/sqlite/sqlite3.c:91509,1
    CyclomaticComplexity: 1162
    EdgeCount: 1162
    ICount: 3818
    argCount: 1
    argNames:
    - p
    argTypes:
    - Vdbe*
    assertStmts:
    - condition: ( pIn1->flags==MEM_Int )
      pos:
        line_end: 84707
        line_start: 84707
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC->eCurType!=CURTYPE_VTAB )
      pos:
        line_end: 86362
        line_start: 86362
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pReg->flags & MEM_Blob )
      pos:
        line_end: 86373
        line_start: 86373
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->bIsReader )
      pos:
        line_end: 87132
        line_start: 87132
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC->uc.pCursor!=0 )
      pos:
        line_end: 87818
        line_start: 87818
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp[1].opcode==OP_IdxLT || pOp[1].opcode==OP_IdxGT )
      pos:
        line_end: 87892
        line_start: 87892
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pModule->xRowid )
      pos:
        line_end: 88857
        line_start: 88857
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC!=0 )
      pos:
        line_end: 89210
        line_start: 89210
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( eNew==PAGER_JOURNALMODE_DELETE \n       || eNew==PAGER_JOURNALMODE_TRUNCATE
        \n       || eNew==PAGER_JOURNALMODE_PERSIST \n       || eNew==PAGER_JOURNALMODE_OFF\n
        \      || eNew==PAGER_JOURNALMODE_MEMORY\n       || eNew==PAGER_JOURNALMODE_WAL\n
        \      || eNew==PAGER_JOURNALMODE_QUERY\n  )"
      pos:
        line_end: 90519
        line_start: 90512
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p3>0 )
      pos:
        line_end: 84583
        line_start: 84583
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p2>=2 )
      pos:
        line_end: 87432
        line_start: 87432
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( OPFLAG_BULKCSR==BTREE_BULKLOAD )
      pos:
        line_end: 87462
        line_start: 87462
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( isSorter(pC) )
      pos:
        line_end: 87637
        line_start: 87637
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pIn3->flags & MEM_Int)!=0 || pOp->opcode==OP_SeekRowid )
      pos:
        line_end: 88248
        line_start: 88248
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p4type==P4_FUNCCTX )
      pos:
        line_end: 90332
        line_start: 90332
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC!=0 )
      pos:
        line_end: 88845
        line_start: 88845
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->bIsReader )
      pos:
        line_end: 87391
        line_start: 87391
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pOp->p5 & OPFLAG_ISNOOP) || HasRowid(pTab) )
      pos:
        line_end: 88502
        line_start: 88502
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( memIsValid(&aMem[pOp->p3]) )
      pos:
        line_end: 89545
        line_start: 89545
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pDb->pBt!=0 )
      pos:
        line_end: 89600
        line_start: 89600
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p4type==P4_INT32 )
      pos:
        line_end: 88717
        line_start: 88717
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIn1->flags&MEM_Int )
      pos:
        line_end: 90172
        line_start: 90172
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( rc!=SQLITE_OK || nExtraDelete==0 \n       || sqlite3_strlike(\"DELETE%\",p->zSql,0)!=0
        \n  )"
      pos:
        line_end: 91482
        line_start: 91480
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( CORRUPT_DB || pC->movetoTarget==iKey )
      pos:
        line_end: 88608
        line_start: 88608
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p2>0 && p2+n<=(p->nMem+1 - p->nCursor)+1 )
      pos:
        line_end: 86016
        line_start: 86016
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p4type==P4_KEYINFO )
      pos:
        line_end: 87379
        line_start: 87379
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( oc!=OP_SeekGE || r.default_rc==+1 )
      pos:
        line_end: 87915
        line_start: 87915
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( z==0 )
      pos:
        line_end: 89798
        line_start: 89798
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p2==0 || pOp->p2==1 )
      pos:
        line_end: 87996
        line_start: 87996
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pFrame->pAuxData==0 )
      pos:
        line_end: 90030
        line_start: 90030
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<p->nCursor )
      pos:
        line_end: 87993
        line_start: 87993
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( res2==0 || res2==1 )
      pos:
        line_end: 85904
        line_start: 85904
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp[-1].p5 & SQLITE_STOREP2 )
      pos:
        line_end: 85935
        line_start: 85935
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC->seekResult>0 )
      pos:
        line_end: 86371
        line_start: 86371
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<db->nDb )
      pos:
        line_end: 87134
        line_start: 87134
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( DbMaskTest(p->btreeMask, pOp->p1) )
      pos:
        line_end: 87259
        line_start: 87259
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( pOp->opcode!=OP_Next\n       || pC->seekOp==OP_SeekGT || pC->seekOp==OP_SeekGE\n
        \      || pC->seekOp==OP_Rewind || pC->seekOp==OP_Found \n       || pC->seekOp==OP_NullRow||
        pC->seekOp==OP_SeekRowid)"
      pos:
        line_end: 89143
        line_start: 89140
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCtx->pOut->flags==MEM_Null )
      pos:
        line_end: 90364
        line_start: 90364
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC->eCurType==CURTYPE_BTREE )
      pos:
        line_end: 88792
        line_start: 88792
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC!=0 )
      pos:
        line_end: 89312
        line_start: 89312
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p1>=0 && p1<db->nDb )
      pos:
        line_end: 90684
        line_start: 90684
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p4.z==0 || strncmp(pOp->p4.z, "-" "- ", 3)==0 )
      pos:
        line_end: 91291
        line_start: 91291
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOut!=pIn1 )
      pos:
        line_end: 85177
        line_start: 85177
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( n>0 )
      pos:
        line_end: 86004
        line_start: 86004
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC->eCurType!=CURTYPE_SORTER )
      pos:
        line_end: 86364
        line_start: 86364
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( t==pC->aType[p2] )
      pos:
        line_end: 86527
        line_start: 86527
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p2>0 )
      pos:
        line_end: 87420
        line_start: 87420
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOrig->pBtx!=0 )
      pos:
        line_end: 87487
        line_start: 87487
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( OP_SeekLE == OP_SeekLT+1 )
      pos:
        line_end: 87814
        line_start: 87814
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC->uc.pCursor!=0)
      pos:
        line_end: 89415
        line_start: 89415
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->explain==0 )
      pos:
        line_end: 84485
        line_start: 84485
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( flags3==pIn3->flags )
      pos:
        line_end: 85824
        line_start: 85824
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp[-1].opcode==OP_Permutation )
      pos:
        line_end: 85997
        line_start: 85997
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nByte==(int)(zPayload - (u8*)pOut->z) )
      pos:
        line_end: 86820
        line_start: 86820
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p1>=0 )
      pos:
        line_end: 87442
        line_start: 87442
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC!=0 )
      pos:
        line_end: 87812
        line_start: 87812
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p3<=pFrame->nMem )
      pos:
        line_end: 88382
        line_start: 88382
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<p->nCursor )
      pos:
        line_end: 88843
        line_start: 88843
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pProgram->nOp>0 )
      pos:
        line_end: 89941
        line_start: 89941
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIn1->flags & MEM_Int )
      pos:
        line_end: 90204
        line_start: 90204
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC->uc.pCursor!=0 )
      pos:
        line_end: 88598
        line_start: 88598
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( DbHasProperty(db, iDb, DB_SchemaLoaded) )
      pos:
        line_end: 89647
        line_start: 89647
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( DbMaskTest(p->btreeMask, p1) )
      pos:
        line_end: 90685
        line_start: 90685
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pSavepoint==db->pSavepoint )
      pos:
        line_end: 87007
        line_start: 87007
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIn1->flags==MEM_Int )
      pos:
        line_end: 84747
        line_start: 84747
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p1>0 &&  pOp->p1<=(p->nMem+1 - p->nCursor) )
      pos:
        line_end: 84725
        line_start: 84725
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nHdr==(int)(zHdr - (u8*)pOut->z) )
      pos:
        line_end: 86819
        line_start: 86819
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iDb>=0 && iDb<db->nDb )
      pos:
        line_end: 87233
        line_start: 87233
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3SchemaMutexHeld(db, pOp->p1, 0) )
      pos:
        line_end: 87263
        line_start: 87263
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3BtreeIsInTrans(pBt)==0 )
      pos:
        line_end: 90573
        line_start: 90573
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC->eCurType==CURTYPE_BTREE )
      pos:
        line_end: 88256
        line_start: 88256
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC->uc.pCursor!=0 )
      pos:
        line_end: 88120
        line_start: 88120
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC!=0 )
      pos:
        line_end: 88327
        line_start: 88327
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( memIsValid(&r.aMem[i]) )
      pos:
        line_end: 89433
        line_start: 89433
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p3==BTREE_INTKEY || pOp->p3==BTREE_BLOBKEY )
      pos:
        line_end: 89595
        line_start: 89595
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->bIsReader )
      pos:
        line_end: 89782
        line_start: 89782
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp>=&aOp[-1] && pOp<&aOp[p->nOp-1] )
      pos:
        line_end: 91426
        line_start: 91426
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc!=SQLITE_OK || (pOut->flags & MEM_Blob) )
      pos:
        line_end: 88747
        line_start: 88747
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p4type==P4_INT32 )
      pos:
        line_end: 89898
        line_start: 89898
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p2>0 )
      pos:
        line_end: 91335
        line_start: 91335
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCtx->skipFlag==0 )
      pos:
        line_end: 90391
        line_start: 90391
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3VdbeMemIsRowSet(pIn1) )
      pos:
        line_end: 89826
        line_start: 89826
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc==SQLITE_BUSY || rc==SQLITE_OK || rc==SQLITE_ERROR )
      pos:
        line_end: 84879
        line_start: 84879
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pOp->p5 & SQLITE_JUMPIFNULL)==0 || CORRUPT_DB )
      pos:
        line_end: 85789
        line_start: 85789
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( OPFLAG_FORDELETE==BTREE_FORDELETE )
      pos:
        line_end: 87410
        line_start: 87410
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pKeyInfo->enc==ENC(db) )
      pos:
        line_end: 87436
        line_start: 87436
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p1>=0 )
      pos:
        line_end: 87614
        line_start: 87614
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p3>=0 )
      pos:
        line_end: 87664
        line_start: 87664
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p4type==P4_INT32 )
      pos:
        line_end: 89418
        line_start: 89418
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( db->aDb[iDb].pBt!=0 )
      pos:
        line_end: 87234
        line_start: 87234
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( isSorter(pC)==(pOp->opcode==OP_SorterSort) )
      pos:
        line_end: 89037
        line_start: 89037
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( db->u1.isInterrupted )
      pos:
        line_end: 91505
        line_start: 91505
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->opcode==OP_IdxGE || pOp->opcode==OP_IdxLT )
      pos:
        line_end: 89425
        line_start: 89425
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p4type==P4_TABLE || pOp->p4type>=P4_STATIC )
      pos:
        line_end: 88488
        line_start: 88488
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp[1].p5 & OPFLAG_PERMUTE )
      pos:
        line_end: 85958
        line_start: 85958
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p3>0 && pOp->p3<=(p->nMem+1 - p->nCursor) )
      pos:
        line_end: 86822
        line_start: 86822
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( OP_SeekLT==(OP_SeekLE-1) )
      pos:
        line_end: 87865
        line_start: 87865
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC->eCurType==CURTYPE_BTREE )
      pos:
        line_end: 88863
        line_start: 88863
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p5==0 )
      pos:
        line_end: 87675
        line_start: 87675
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nRoot>0 )
      pos:
        line_end: 89785
        line_start: 89785
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p2<=(p->nMem+1 - p->nCursor) )
      pos:
        line_end: 87421
        line_start: 87421
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( memIsValid(pIn1) )
      pos:
        line_end: 90149
        line_start: 90149
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p4type==P4_FUNCDEF )
      pos:
        line_end: 90301
        line_start: 90301
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pIn2->flags & MEM_Dyn) == (flags2 & MEM_Dyn) )
      pos:
        line_end: 85331
        line_start: 85331
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc==SQLITE_OK )
      pos:
        line_end: 84520
        line_start: 84520
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( DbMaskTest(p->btreeMask, iDb) )
      pos:
        line_end: 87405
        line_start: 87405
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<p->nCursor )
      pos:
        line_end: 87685
        line_start: 87685
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p4type==P4_INT32 )
      pos:
        line_end: 87900
        line_start: 87900
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pProgram->nCsr==pFrame->nChildCsr )
      pos:
        line_end: 90021
        line_start: 90021
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( db->mallocFailed )
      pos:
        line_end: 90800
        line_start: 90800
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pRt->xDel==sqlite3VdbeFrameMemDel )
      pos:
        line_end: 90018
        line_start: 90018
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( memIsValid(&aMem[p2+idx]) )
      pos:
        line_end: 86022
        line_start: 86022
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( db->autoCommit==0 || db->nVTrans==0 )
      pos:
        line_end: 86894
        line_start: 86894
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( desiredAutoCommit==1 || desiredAutoCommit==0 )
      pos:
        line_end: 87045
        line_start: 87045
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p3>0 && pOp->p3<=(p->nMem+1 - p->nCursor) )
      pos:
        line_end: 89787
        line_start: 89787
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pModule->xNext )
      pos:
        line_end: 90955
        line_start: 90955
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p3<=(p->nMem+1 - p->nCursor) )
      pos:
        line_end: 88386
        line_start: 88386
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !sqlite3IsNaN(*pOp->p4.pReal) )
      pos:
        line_end: 84924
        line_start: 84924
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc==SQLITE_OK || db->nDeferredCons>0 || db->nDeferredImmCons>0
        )
      pos:
        line_end: 84884
        line_start: 84884
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCrsr )
      pos:
        line_end: 86840
        line_start: 86840
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->bIsReader )
      pos:
        line_end: 87229
        line_start: 87229
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p2!=0 )
      pos:
        line_end: 87810
        line_start: 87810
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (r.aMem[ii].flags & MEM_Zero)==0 || r.aMem[ii].n==0 )
      pos:
        line_end: 88129
        line_start: 88129
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCrsr )
      pos:
        line_end: 88973
        line_start: 88973
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<p->nCursor )
      pos:
        line_end: 91359
        line_start: 91359
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( zAffinity[0]==0 || pRec<=pLast )
      pos:
        line_end: 86709
        line_start: 86709
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC->eCurType==CURTYPE_BTREE )
      pos:
        line_end: 88597
        line_start: 88597
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->readOnly==0 )
      pos:
        line_end: 89598
        line_start: 89598
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p3<pOp->p2 || pOp->p3>=pOp->p2+n )
      pos:
        line_end: 90305
        line_start: 90305
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc )
      pos:
        line_end: 91448
        line_start: 91448
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC!=0 )
      pos:
        line_end: 88114
        line_start: 88114
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p2==0 )
      pos:
        line_end: 88940
        line_start: 88940
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( db->flags&SQLITE_CountRows )
      pos:
        line_end: 85222
        line_start: 85222
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC->szRow<=pC->payloadSize )
      pos:
        line_end: 86388
        line_start: 86388
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC->nHdrParsed<=p2 )
      pos:
        line_end: 86434
        line_start: 86434
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->iDb==pOp->p3 )
      pos:
        line_end: 87382
        line_start: 87382
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<p->nCursor )
      pos:
        line_end: 88325
        line_start: 88325
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC->uc.pCursor!=0 )
      pos:
        line_end: 88486
        line_start: 88486
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( pOp->opcode!=OP_Prev\n       || pC->seekOp==OP_SeekLT || pC->seekOp==OP_SeekLE\n
        \      || pC->seekOp==OP_Last \n       || pC->seekOp==OP_NullRow)"
      pos:
        line_end: 89147
        line_start: 89144
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<p->nCursor )
      pos:
        line_end: 88290
        line_start: 88290
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( memIsValid(pIn1) )
      pos:
        line_end: 86615
        line_start: 86615
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( checkSavepointCount(db) )
      pos:
        line_end: 86876
        line_start: 86876
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->opcode==OP_OpenWrite || pOp->p5==0 || pOp->p5==OPFLAG_SEEKEQ
        )
      pos:
        line_end: 87390
        line_start: 87390
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( memIsValid(pKey) )
      pos:
        line_end: 88494
        line_start: 88494
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pMem->uTemp==0x1122e0e3 )
      pos:
        line_end: 90340
        line_start: 90340
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pIn1->flags & MEM_Blob)==0 || sqlite3VdbeMemIsRowSet(pIn1) )
      pos:
        line_end: 89843
        line_start: 89843
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( pOp->p2==1        || pOp->p5==OE_Fail   || pOp->p5==OE_Rollback
        \n       || pOp->p5==OE_Abort || pOp->p5==OE_Ignore || pOp->p5==OE_Replace\n
        \ )"
      pos:
        line_end: 91050
        line_start: 91048
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC->isOrdered )
      pos:
        line_end: 89413
        line_start: 89413
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p3<=(p->nMem+1 - p->nCursor) )
      pos:
        line_end: 84584
        line_start: 84584
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p1+n<=p2 || p2+n<=p1 )
      pos:
        line_end: 85108
        line_start: 85108
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->nResColumn==pOp->p2 )
      pos:
        line_end: 85214
        line_start: 85214
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p2>0 && p2+mx<=(p->nMem+1 - p->nCursor)+1 )
      pos:
        line_end: 86013
        line_start: 86013
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC->eCurType==CURTYPE_BTREE )
      pos:
        line_end: 87813
        line_start: 87813
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<db->nDb )
      pos:
        line_end: 90623
        line_start: 90623
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->bIsReader )
      pos:
        line_end: 90778
        line_start: 90778
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<p->nCursor )
      pos:
        line_end: 88594
        line_start: 88594
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( memIsValid(pQuery) )
      pos:
        line_end: 90844
        line_start: 90844
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p3>0 )
      pos:
        line_end: 84571
        line_start: 84571
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p4type==P4_COLLSEQ )
      pos:
        line_end: 85485
        line_start: 85485
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->readOnly==0 )
      pos:
        line_end: 90468
        line_start: 90468
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<p->nCursor )
      pos:
        line_end: 89129
        line_start: 89129
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->opcode==OP_IdxLE || pOp->opcode==OP_IdxLT )
      pos:
        line_end: 89442
        line_start: 89442
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC!=0 )
      pos:
        line_end: 88888
        line_start: 88888
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( memIsValid(&aMem[pOp->p3]) )
      pos:
        line_end: 84573
        line_start: 84573
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( db->nProgressOps!=0 )
      pos:
        line_end: 84666
        line_start: 84666
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p4.z==0 || pOp->p4.z==sqlite3VListNumToName(p->pVList,pOp->p1)
        )
      pos:
        line_end: 85076
        line_start: 85076
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( desiredAutoCommit==1 || iRollback==0 )
      pos:
        line_end: 87046
        line_start: 87046
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp[1].p1==pOp[0].p1 )
      pos:
        line_end: 87893
        line_start: 87893
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc==SQLITE_OK )
      pos:
        line_end: 88270
        line_start: 88270
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC->nullRow==0 )
      pos:
        line_end: 88794
        line_start: 88794
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( isSorter(pC) )
      pos:
        line_end: 89124
        line_start: 89124
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p1>0 && pOp->p1<=(p->nMem+1 - p->nCursor) )
      pos:
        line_end: 90424
        line_start: 90424
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC->uc.pCursor!=0 )
      pos:
        line_end: 88892
        line_start: 88892
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCrsr )
      pos:
        line_end: 89047
        line_start: 89047
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p4type==P4_FUNCDEF )
      pos:
        line_end: 91179
        line_start: 91179
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( DbMaskTest(p->btreeMask, pOp->p1) )
      pos:
        line_end: 89597
        line_start: 89597
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( OP_Eq==OP_Ne+1 )
      pos:
        line_end: 85873
        line_start: 85873
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p2>=0 && pOp->p2<p->nOp )
      pos:
        line_end: 84726
        line_start: 84726
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p1>=0 )
      pos:
        line_end: 87547
        line_start: 87547
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (OP_SeekLT & 0x0001)==(OP_SeekGE & 0x0001) )
      pos:
        line_end: 87875
        line_start: 87875
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pOp->p5 & ~(OPFLAG_SAVEPOSITION|OPFLAG_AUXDELETE))==0 )
      pos:
        line_end: 88647
        line_start: 88647
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( OP_SeekGE==(OP_SeekGT-1) )
      pos:
        line_end: 87864
        line_start: 87864
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC->eCurType==CURTYPE_BTREE || pOp->opcode==OP_SorterInsert )
      pos:
        line_end: 89215
        line_start: 89215
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( n==0 || (pOp->p2>0 && pOp->p2+n<=(p->nMem+1 - p->nCursor)+1) )
      pos:
        line_end: 90304
        line_start: 90304
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC!=0 )
      pos:
        line_end: 88971
        line_start: 88971
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<p->nCursor )
      pos:
        line_end: 88789
        line_start: 88789
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( zAffinity!=0 )
      pos:
        line_end: 86609
        line_start: 86609
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( memIsValid(pRec) )
      pos:
        line_end: 86732
        line_start: 86732
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p3>0 )
      pos:
        line_end: 88378
        line_start: 88378
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC->eCurType==CURTYPE_BTREE )
      pos:
        line_end: 86383
        line_start: 86383
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<p->nCursor )
      pos:
        line_end: 88886
        line_start: 88886
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTabCur->eCurType==CURTYPE_BTREE )
      pos:
        line_end: 89338
        line_start: 89338
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->opcode==OP_IdxLE || pOp->opcode==OP_IdxGT )
      pos:
        line_end: 89422
        line_start: 89422
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC->deferredMoveto==0 )
      pos:
        line_end: 89230
        line_start: 89230
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p2>0 )
      pos:
        line_end: 84564
        line_start: 84564
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (OP_SeekLE & 0x0001)==(OP_SeekGT & 0x0001) )
      pos:
        line_end: 87866
        line_start: 87866
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<p->nCursor )
      pos:
        line_end: 88748
        line_start: 88748
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( DbMaskTest(p->btreeMask, pOp->p1) )
      pos:
        line_end: 90624
        line_start: 90624
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p3<pOp->p2 || pOp->p3>=pOp->p2+n )
      pos:
        line_end: 91183
        line_start: 91183
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC!=0 )
      pos:
        line_end: 89254
        line_start: 89254
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc==SQLITE_OK )
      pos:
        line_end: 90737
        line_start: 90737
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( memIsValid(&aMem[pOp->p2]) )
      pos:
        line_end: 84566
        line_start: 84566
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOut->szMalloc>0 && pOut->zMalloc==pOut->z )
      pos:
        line_end: 84950
        line_start: 84950
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp[-1].opcode==OP_Lt || pOp[-1].opcode==OP_Gt )
      pos:
        line_end: 85934
        line_start: 85934
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->readOnly==0 )
      pos:
        line_end: 89486
        line_start: 89486
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC->isOrdered )
      pos:
        line_end: 87817
        line_start: 87817
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->readOnly==0 )
      pos:
        line_end: 89537
        line_start: 89537
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p3>0 && pOp->p3<=(p->nMem+1 - p->nCursor) )
      pos:
        line_end: 90896
        line_start: 90896
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( op==OP_ShiftRight || op==OP_ShiftLeft )
      pos:
        line_end: 85546
        line_start: 85546
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p3<=(p->nMem+1 - p->nCursor) )
      pos:
        line_end: 85017
        line_start: 85017
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIn1!=pIn3 )
      pos:
        line_end: 85852
        line_start: 85852
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( OP_Le==OP_Ne+3 )
      pos:
        line_end: 85873
        line_start: 85873
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCx->pKeyInfo->db==db )
      pos:
        line_end: 87619
        line_start: 87619
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCtx->isError==0 )
      pos:
        line_end: 90365
        line_start: 90365
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC->eCurType==CURTYPE_BTREE )
      pos:
        line_end: 89313
        line_start: 89313
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC->eCurType==CURTYPE_BTREE )
      pos:
        line_end: 89045
        line_start: 89045
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (int)(pOp - aOp)==pFrame->pc )
      pos:
        line_end: 90022
        line_start: 90022
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( aPermute!=0 )
      pos:
        line_end: 86000
        line_start: 86000
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp>aOp )
      pos:
        line_end: 85933
        line_start: 85933
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( zAffinity[pOp->p2]==0 )
      pos:
        line_end: 86611
        line_start: 86611
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p1>=0 )
      pos:
        line_end: 87663
        line_start: 87663
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->apCsr[pOp->p1]->eCurType!=CURTYPE_VTAB )
      pos:
        line_end: 88292
        line_start: 88292
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<p->nCursor )
      pos:
        line_end: 89410
        line_start: 89410
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( resetSchemaOnFault==0 || resetSchemaOnFault==iDb+1 )
      pos:
        line_end: 89506
        line_start: 89506
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->opcode==OP_IdxGE || pOp->opcode==OP_IdxGT )
      pos:
        line_end: 89445
        line_start: 89445
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->apCsr[pOp->p1]!=0 )
      pos:
        line_end: 88291
        line_start: 88291
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC->uc.pCursor!=0 )
      pos:
        line_end: 88795
        line_start: 88795
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC->deferredMoveto==0 )
      pos:
        line_end: 89416
        line_start: 89416
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( OP_Ge==OP_Ne+5 )
      pos:
        line_end: 85874
        line_start: 85874
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( memIsValid(pIn1) )
      pos:
        line_end: 85115
        line_start: 85115
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( db->pSavepoint==0 || db->autoCommit==0 )
      pos:
        line_end: 86873
        line_start: 86873
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( db->nStatement>=0 && db->nSavepoint>=0 )
      pos:
        line_end: 87160
        line_start: 87160
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTab->aCol!=0 )
      pos:
        line_end: 88544
        line_start: 88544
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC->deferredMoveto==0 )
      pos:
        line_end: 88599
        line_start: 88599
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC->eCurType==CURTYPE_BTREE )
      pos:
        line_end: 88485
        line_start: 88485
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3BtreeCursorIsValid(pCrsr) )
      pos:
        line_end: 88807
        line_start: 88807
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOut!=pIn1 )
      pos:
        line_end: 85145
        line_start: 85145
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc==SQLITE_OK )
      pos:
        line_end: 84965
        line_start: 84965
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iDb>=0 && iDb<db->nDb )
      pos:
        line_end: 87404
        line_start: 87404
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<p->nCursor )
      pos:
        line_end: 88111
        line_start: 88111
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( memIsValid(pData) )
      pos:
        line_end: 88482
        line_start: 88482
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pData->flags & (MEM_Blob|MEM_Str) )
      pos:
        line_end: 88524
        line_start: 88524
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC->eCurType==CURTYPE_BTREE )
      pos:
        line_end: 88932
        line_start: 88932
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIn1->u.i>=0 && pIn1->u.i<p->nOp )
      pos:
        line_end: 84748
        line_start: 84748
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p1>0 && pOp->p1<=p->nVar )
      pos:
        line_end: 85075
        line_start: 85075
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCrsr!=0 )
      pos:
        line_end: 88935
        line_start: 88935
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<p->nCursor )
      pos:
        line_end: 89033
        line_start: 89033
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p2>0 && pOp->p2<p->nOp )
      pos:
        line_end: 89054
        line_start: 89054
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIn1->flags&MEM_Int )
      pos:
        line_end: 90249
        line_start: 90249
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC->isTable )
      pos:
        line_end: 88255
        line_start: 88255
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pKey->flags & MEM_Int )
      pos:
        line_end: 88493
        line_start: 88493
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<db->nDb )
      pos:
        line_end: 87258
        line_start: 87258
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pIn2->flags & MEM_Int)!=0 )
      pos:
        line_end: 89822
        line_start: 89822
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p4type==P4_INT32 )
      pos:
        line_end: 86119
        line_start: 86119
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( 0 < db->nProgressOps )
      pos:
        line_end: 84471
        line_start: 84471
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p1>0 )
      pos:
        line_end: 84557
        line_start: 84557
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p4.pI64!=0 )
      pos:
        line_end: 84909
        line_start: 84909
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( n>0 && p1>0 && p2>0 )
      pos:
        line_end: 85107
        line_start: 85107
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( memIsValid(&pMem[i]) )
      pos:
        line_end: 85255
        line_start: 85255
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p1>0 && p1+n<=(p->nMem+1 - p->nCursor)+1 )
      pos:
        line_end: 86015
        line_start: 86015
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->apCsr[pOp->p1]!=0 )
      pos:
        line_end: 86267
        line_start: 86267
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC!=0 )
      pos:
        line_end: 88251
        line_start: 88251
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p2>0 && pOp->p2+pOp->p3<=(p->nMem+1 - p->nCursor)+1 )
      pos:
        line_end: 89251
        line_start: 89251
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->eCurType==CURTYPE_VTAB )
      pos:
        line_end: 90949
        line_start: 90949
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC->iDb>=0 )
      pos:
        line_end: 88499
        line_start: 88499
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( OP_Function == OP_Function0+2 )
      pos:
        line_end: 91195
        line_start: 91195
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->opcode!=OP_Prev || pOp->p4.xAdvance==sqlite3BtreePrevious
        )
      pos:
        line_end: 89136
        line_start: 89136
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTabCur->uc.pCursor!=0 )
      pos:
        line_end: 89339
        line_start: 89339
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p4type==P4_INTARRAY )
      pos:
        line_end: 85955
        line_start: 85955
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( memIsValid(&aMem[pOp->p1]) )
      pos:
        line_end: 84559
        line_start: 84559
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCaller->opcode==OP_Yield )
      pos:
        line_end: 84750
        line_start: 84750
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->apCsr[pOp->p1]->eCurType==CURTYPE_BTREE )
      pos:
        line_end: 86838
        line_start: 86838
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( memIsValid(pIn2) )
      pos:
        line_end: 87424
        line_start: 87424
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCx->isEphemeral )
      pos:
        line_end: 87553
        line_start: 87553
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC->uc.pCursor!=0 )
      pos:
        line_end: 88864
        line_start: 88864
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( memIsValid(pMem) )
      pos:
        line_end: 88390
        line_start: 88390
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p4.pTab!=0 )
      pos:
        line_end: 88619
        line_start: 88619
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC->eCurType==CURTYPE_BTREE )
      pos:
        line_end: 89134
        line_start: 89134
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( OP_ShiftRight==OP_ShiftLeft+1 )
      pos:
        line_end: 85550
        line_start: 85550
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp[-1].p4type==P4_INTARRAY )
      pos:
        line_end: 85998
        line_start: 85998
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pKeyInfo!=0 )
      pos:
        line_end: 86005
        line_start: 86005
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->opcode==OP_Ne || pOp->opcode==OP_Eq )
      pos:
        line_end: 85903
        line_start: 85903
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCrsr )
      pos:
        line_end: 86384
        line_start: 86384
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC->isTable )
      pos:
        line_end: 88345
        line_start: 88345
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pOp->p5 & OPFLAG_ISNOOP) || pC->isTable )
      pos:
        line_end: 88487
        line_start: 88487
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC->eCurType==CURTYPE_BTREE )
      pos:
        line_end: 88329
        line_start: 88329
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p4.z!=0 )
      pos:
        line_end: 84939
        line_start: 84939
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p3<pOp->p1 || pOp->p3>=pOp->p1+pOp->p2 )
      pos:
        line_end: 86691
        line_start: 86691
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->bIsReader )
      pos:
        line_end: 86877
        line_start: 86877
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp[1].opcode==OP_IdxLT || pOp[1].opcode==OP_IdxGT )
      pos:
        line_end: 87976
        line_start: 87976
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->opcode==OP_IdxRowid )
      pos:
        line_end: 89352
        line_start: 89352
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp[-1].opcode==OP_CollSeq )
      pos:
        line_end: 90380
        line_start: 90380
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pnErr->flags & MEM_Int)!=0 )
      pos:
        line_end: 89789
        line_start: 89789
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCrsr!=0 )
      pos:
        line_end: 89258
        line_start: 89258
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIn2->flags & MEM_Blob )
      pos:
        line_end: 89213
        line_start: 89213
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC->eCurType==CURTYPE_BTREE )
      pos:
        line_end: 89414
        line_start: 89414
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->magic==VDBE_MAGIC_RUN )
      pos:
        line_end: 84466
        line_start: 84466
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p3<=(p->nMem+1 - p->nCursor) )
      pos:
        line_end: 84572
        line_start: 84572
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIn1 <= &p->aMem[(p->nMem+1 - p->nCursor)] )
      pos:
        line_end: 86614
        line_start: 86614
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( isSorter(pC)==0 )
      pos:
        line_end: 88793
        line_start: 88793
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->opcode==OP_Noop || pOp->opcode==OP_Explain )
      pos:
        line_end: 91399
        line_start: 91399
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( oc!=OP_SeekGT || r.default_rc==-1 )
      pos:
        line_end: 87913
        line_start: 87913
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->eCurType==CURTYPE_VTAB )
      pos:
        line_end: 90895
        line_start: 90895
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp[1].opcode==OP_Compare )
      pos:
        line_end: 85957
        line_start: 85957
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( i<pKeyInfo->nKeyField )
      pos:
        line_end: 86025
        line_start: 86025
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3VdbeCheckMemInvariants(&aMem[pOp->p3]) )
      pos:
        line_end: 84574
        line_start: 84574
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p4.z!=0 )
      pos:
        line_end: 84982
        line_start: 84982
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->aOp[0].opcode==OP_Init )
      pos:
        line_end: 86182
        line_start: 86182
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->readOnly==0 )
      pos:
        line_end: 87260
        line_start: 87260
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( OP_SeekGT==(OP_SeekGE+1) )
      pos:
        line_end: 87874
        line_start: 87874
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC->uc.pCursor!=0 )
      pos:
        line_end: 88330
        line_start: 88330
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC->eCurType!=CURTYPE_PSEUDO || pC->nullRow )
      pos:
        line_end: 88846
        line_start: 88846
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC!=0 )
      pos:
        line_end: 89132
        line_start: 89132
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p2==0 || pOp->p2==1 )
      pos:
        line_end: 90655
        line_start: 90655
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p4type==P4_INT32 )
      pos:
        line_end: 88112
        line_start: 88112
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p3>=0 && pOp->p3<p->nOp )
      pos:
        line_end: 84727
        line_start: 84727
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pIn1->flags & MEM_Int)!=0 )
      pos:
        line_end: 85196
        line_start: 85196
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pKeyInfo->db==db )
      pos:
        line_end: 87437
        line_start: 87437
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( oc==OP_SeekGE || oc==OP_SeekGT )
      pos:
        line_end: 87935
        line_start: 87935
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( oc==OP_SeekLT || oc==OP_SeekLE )
      pos:
        line_end: 87951
        line_start: 87951
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCx->pgnoRoot==MASTER_ROOT+1 )
      pos:
        line_end: 87580
        line_start: 87580
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp==p->aOp || pOp->opcode==OP_Trace )
      pos:
        line_end: 91294
        line_start: 91294
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p5==OPFLAG_NOCHNG_MAGIC || CORRUPT_DB )
      pos:
        line_end: 86742
        line_start: 86742
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p5==0 || pOp->p5==OPFLAG_SEEKEQ )
      pos:
        line_end: 87378
        line_start: 87378
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pX!=0 )
      pos:
        line_end: 87408
        line_start: 87408
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<p->nCursor )
      pos:
        line_end: 87635
        line_start: 87635
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->readOnly==0 )
      pos:
        line_end: 91051
        line_start: 91051
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( memIsValid(pX) )
      pos:
        line_end: 91067
        line_start: 91067
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p3>0 && pOp->p3<=(p->nMem+1 - p->nCursor) )
      pos:
        line_end: 91181
        line_start: 91181
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p3>0 && pOp->p3<=(p->nMem+1 - p->nCursor) )
      pos:
        line_end: 90303
        line_start: 90303
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTabCur!=0 )
      pos:
        line_end: 89337
        line_start: 89337
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC->eCurType==CURTYPE_BTREE )
      pos:
        line_end: 89571
        line_start: 89571
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pDb->pBt!=0 )
      pos:
        line_end: 87262
        line_start: 87262
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( OP_SeekGE == OP_SeekLT+2 )
      pos:
        line_end: 87815
        line_start: 87815
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( OP_SeekLE==(OP_SeekLT+1) )
      pos:
        line_end: 87873
        line_start: 87873
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp[1].p2==pOp[0].p2 )
      pos:
        line_end: 87894
        line_start: 87894
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nField>0 )
      pos:
        line_end: 87901
        line_start: 87901
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC->isTable==0 )
      pos:
        line_end: 88121
        line_start: 88121
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( db->xUpdateCallback!=0 )
      pos:
        line_end: 88543
        line_start: 88543
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( isSorter(pC)==(pOp->opcode==OP_SorterInsert) )
      pos:
        line_end: 89211
        line_start: 89211
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<p->nCursor )
      pos:
        line_end: 88481
        line_start: 88481
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p3==0 || pOp->opcode==OP_AggValue )
      pos:
        line_end: 90425
        line_start: 90425
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p2<=(p->nMem+1 - p->nCursor) )
      pos:
        line_end: 84565
        line_start: 84565
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC->eCurType!=CURTYPE_PSEUDO || pC->nullRow )
      pos:
        line_end: 86363
        line_start: 86363
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC->eCurType==CURTYPE_BTREE )
      pos:
        line_end: 88119
        line_start: 88119
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( OPFLAG_AUXDELETE==BTREE_AUXDELETE )
      pos:
        line_end: 88649
        line_start: 88649
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC!=0 )
      pos:
        line_end: 88931
        line_start: 88931
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<p->nCursor )
      pos:
        line_end: 89565
        line_start: 89565
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCrsr!=0 )
      pos:
        line_end: 88258
        line_start: 88258
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( pProgram->nMem+pProgram->nCsr==pFrame->nChildMem \n        ||
        (pProgram->nCsr==0 && pProgram->nMem+1==pFrame->nChildMem) )"
      pos:
        line_end: 90020
        line_start: 90019
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( pOp->opcode==OP_OpenRead || pOp->opcode==OP_ReopenIdx\n          ||
        p->readOnly==0 )"
      pos:
        line_end: 87393
        line_start: 87392
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIn1<=&aMem[(p->nMem+1 - p->nCursor)] )
      pos:
        line_end: 85114
        line_start: 85114
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3VdbeCheckMemInvariants(&aMem[pOp->p2]) )
      pos:
        line_end: 84567
        line_start: 84567
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( isWriteLock==0 || isWriteLock==1 )
      pos:
        line_end: 90686
        line_start: 90686
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC!=0 )
      pos:
        line_end: 88091
        line_start: 88091
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( DbMaskTest(p->btreeMask, pOp->p5) )
      pos:
        line_end: 89793
        line_start: 89793
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p3<SQLITE_N_BTREE_META )
      pos:
        line_end: 87232
        line_start: 87232
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p5==0 )
      pos:
        line_end: 89034
        line_start: 89034
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p1>0 && p1+mx<=(p->nMem+1 - p->nCursor)+1 )
      pos:
        line_end: 86012
        line_start: 86012
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( VdbeMemDynamic(pIn1)==0 )
      pos:
        line_end: 84687
        line_start: 84687
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !VdbeMemDynamic(pOut) )
      pos:
        line_end: 84729
        line_start: 84729
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp>=aOp && pOp<&aOp[p->nOp])
      pos:
        line_end: 84522
        line_start: 84522
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC->isTable==0 )
      pos:
        line_end: 89216
        line_start: 89216
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3BtreeCursorIsValid(pC->uc.pCursor) )
      pos:
        line_end: 88365
        line_start: 88365
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (aMem[pOp->p2].flags & MEM_Str)!=0 )
      pos:
        line_end: 90734
        line_start: 90734
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( DbMaskTest(p->btreeMask, pOp->p2) )
      pos:
        line_end: 89538
        line_start: 89538
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3VdbeCheckMemInvariants(pDest) )
      pos:
        line_end: 86523
        line_start: 86523
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p2<SQLITE_N_BTREE_META )
      pos:
        line_end: 87257
        line_start: 87257
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( sqlite3BtreeCursorHasHint(pC->uc.pCursor, BTREE_SEEK_EQ)==0\n
        \             || CORRUPT_DB )"
      pos:
        line_end: 87831
        line_start: 87830
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->opcode!=OP_Next || pOp->p4.xAdvance==sqlite3BtreeNext )
      pos:
        line_end: 89135
        line_start: 89135
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p1==(pOp->opcode==OP_AggInverse) )
      pos:
        line_end: 90322
        line_start: 90322
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCtx->pOut->flags==MEM_Null )
      pos:
        line_end: 90390
        line_start: 90390
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCx->pKeyInfo->enc==ENC(db) )
      pos:
        line_end: 87620
        line_start: 87620
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pKeyInfo->db==db )
      pos:
        line_end: 87581
        line_start: 87581
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<p->nCursor )
      pos:
        line_end: 87809
        line_start: 87809
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( OP_PureFunc == OP_PureFunc0+2 )
      pos:
        line_end: 91194
        line_start: 91194
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC->iDb>=0 )
      pos:
        line_end: 88676
        line_start: 88676
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p4type==P4_INTARRAY || pOp->p4.ai==0 )
      pos:
        line_end: 89344
        line_start: 89344
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p5<=4 )
      pos:
        line_end: 84860
        line_start: 84860
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p2>0 )
      pos:
        line_end: 84578
        line_start: 84578
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( VdbeMemDynamic(pOut)==0 )
      pos:
        line_end: 84951
        line_start: 84951
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIn3->flags & MEM_Int )
      pos:
        line_end: 84993
        line_start: 84993
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p3>0 && pOp->p3<=(p->nMem+1 - p->nCursor) )
      pos:
        line_end: 86355
        line_start: 86355
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p1==SAVEPOINT_BEGIN||p1==SAVEPOINT_RELEASE||p1==SAVEPOINT_ROLLBACK
        )
      pos:
        line_end: 86874
        line_start: 86874
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->opcode==OP_SeekGE || pOp->opcode==OP_SeekLE )
      pos:
        line_end: 87891
        line_start: 87891
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC!=0 )
      pos:
        line_end: 88484
        line_start: 88484
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p3>0 )
      pos:
        line_end: 89250
        line_start: 89250
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOut<=&aMem[(p->nMem+1 - p->nCursor)] )
      pos:
        line_end: 85113
        line_start: 85113
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->readOnly==0 )
      pos:
        line_end: 90625
        line_start: 90625
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( DbMaskTest(p->btreeMask, iDb) )
      pos:
        line_end: 89496
        line_start: 89496
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC!=0 )
      pos:
        line_end: 88596
        line_start: 88596
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC->eCurType==CURTYPE_BTREE )
      pos:
        line_end: 89255
        line_start: 89255
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iSet==-1 || iSet>=0 )
      pos:
        line_end: 89899
        line_start: 89899
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC->szRow<=65536 )
      pos:
        line_end: 86389
        line_start: 86389
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p1==SAVEPOINT_ROLLBACK )
      pos:
        line_end: 87014
        line_start: 87014
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( oc!=OP_SeekLT || r.default_rc==+1 )
      pos:
        line_end: 87916
        line_start: 87916
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p1>1 )
      pos:
        line_end: 89487
        line_start: 89487
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC->uc.pVCur!=0 )
      pos:
        line_end: 88854
        line_start: 88854
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( db->init.busy==0 )
      pos:
        line_end: 89670
        line_start: 89670
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIn3->flags&MEM_Int )
      pos:
        line_end: 89889
        line_start: 89889
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3BtreeIsInTrans(pBt) )
      pos:
        line_end: 87158
        line_start: 87158
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->rc==SQLITE_OK || (p->rc&0xff)==SQLITE_BUSY )
      pos:
        line_end: 84482
        line_start: 84482
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p1<=(p->nMem+1 - p->nCursor) )
      pos:
        line_end: 84558
        line_start: 84558
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp>aOp )
      pos:
        line_end: 85996
        line_start: 85996
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p4.i==0 || pOp->p4.i==1 )
      pos:
        line_end: 86120
        line_start: 86120
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( db->nStatement==0 )
      pos:
        line_end: 87074
        line_start: 87074
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( DbMaskTest(p->btreeMask, pOp->p1) )
      pos:
        line_end: 87135
        line_start: 87135
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc==SQLITE_OK )
      pos:
        line_end: 87502
        line_start: 87502
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCtx->skipFlag==0 )
      pos:
        line_end: 90366
        line_start: 90366
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->readOnly==0 )
      pos:
        line_end: 90605
        line_start: 90605
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( memIsValid(pName) )
      pos:
        line_end: 90993
        line_start: 90993
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3SchemaMutexHeld(db, iDb, 0) )
      pos:
        line_end: 87412
        line_start: 87412
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p2>=SQLITE_AFF_BLOB && pOp->p2<=SQLITE_AFF_REAL )
      pos:
        line_end: 85654
        line_start: 85654
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCaller->p2>=0 && pCaller->p2<p->nOp )
      pos:
        line_end: 84751
        line_start: 84751
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3VdbeCheckMemInvariants(&aMem[pOp->p1]) )
      pos:
        line_end: 84560
        line_start: 84560
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p3<=(p->nMem+1 - p->nCursor) )
      pos:
        line_end: 84991
        line_start: 84991
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p2<pC->nHdrParsed )
      pos:
        line_end: 86521
        line_start: 86521
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p1==SAVEPOINT_RELEASE || p1==SAVEPOINT_ROLLBACK )
      pos:
        line_end: 86923
        line_start: 86923
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( !(opflags & OPFLAG_ISUPDATE) \n         || HasRowid(pTab)==0 \n
        \        || (aMem[pOp->p3].flags & MEM_Int) \n    )"
      pos:
        line_end: 88636
        line_start: 88633
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pMem->flags & ~(MEM_Null|MEM_Agg))==0 )
      pos:
        line_end: 90427
        line_start: 90427
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pModule->xColumn )
      pos:
        line_end: 90905
        line_start: 90905
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC!=0 )
      pos:
        line_end: 88791
        line_start: 88791
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pData0<=pLast )
      pos:
        line_end: 86697
        line_start: 86697
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pData0<=pLast )
      pos:
        line_end: 86808
        line_start: 86808
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( desiredAutoCommit==1 )
      pos:
        line_end: 87052
        line_start: 87052
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->opcode==OP_OpenWrite )
      pos:
        line_end: 87422
        line_start: 87422
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pnErr->flags & (MEM_Str|MEM_Blob))==0 )
      pos:
        line_end: 89790
        line_start: 89790
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pName->flags & MEM_Str )
      pos:
        line_end: 90996
        line_start: 90996
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( OPFLAG_SAVEPOSITION==BTREE_SAVEPOSITION )
      pos:
        line_end: 88648
        line_start: 88648
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC!=0 )
      pos:
        line_end: 89567
        line_start: 89567
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pIn3->flags & MEM_Dyn) == (flags3 & MEM_Dyn) )
      pos:
        line_end: 85889
        line_start: 85889
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p1>0 )
      pos:
        line_end: 85215
        line_start: 85215
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( db->nVdbeActive>0 )
      pos:
        line_end: 87047
        line_start: 87047
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<p->nCursor )
      pos:
        line_end: 88249
        line_start: 88249
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC->eCurType==CURTYPE_BTREE )
      pos:
        line_end: 91363
        line_start: 91363
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !pC->nullRow || pOp->opcode==OP_IdxRowid )
      pos:
        line_end: 89317
        line_start: 89317
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !db->mallocFailed )
      pos:
        line_end: 89674
        line_start: 89674
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pIn1->flags & MEM_Dyn) == (flags1 & MEM_Dyn) )
      pos:
        line_end: 85887
        line_start: 85887
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( db->pSavepoint || db->isTransactionSavepoint==0 )
      pos:
        line_end: 86875
        line_start: 86875
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p2>=0 )
      pos:
        line_end: 87548
        line_start: 87548
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp[1].p4.i==pOp[0].p4.i )
      pos:
        line_end: 87896
        line_start: 87896
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<p->nCursor )
      pos:
        line_end: 88929
        line_start: 88929
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC->isEphemeral )
      pos:
        line_end: 89572
        line_start: 89572
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC->deferredMoveto==0 )
      pos:
        line_end: 89316
        line_start: 89316
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->bIsReader )
      pos:
        line_end: 87048
        line_start: 87048
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p1+pOp->p2<=(p->nMem+1 - p->nCursor)+1 )
      pos:
        line_end: 85216
        line_start: 85216
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc==SQLITE_OK )
      pos:
        line_end: 85244
        line_start: 85244
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( memIsValid(pReg) )
      pos:
        line_end: 86374
        line_start: 86374
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p2>0 )
      pos:
        line_end: 86610
        line_start: 86610
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( isSorter(pC) )
      pos:
        line_end: 88716
        line_start: 88716
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC->eCurType==CURTYPE_BTREE )
      pos:
        line_end: 87705
        line_start: 87705
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( n==0 || (pOp->p2>0 && pOp->p2+n<=(p->nMem+1 - p->nCursor)+1) )
      pos:
        line_end: 91182
        line_start: 91182
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->eCurType==CURTYPE_VTAB )
      pos:
        line_end: 90846
        line_start: 90846
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( VdbeMemDynamic(pIn1)==0 )
      pos:
        line_end: 84773
        line_start: 84773
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p1==SAVEPOINT_RELEASE )
      pos:
        line_end: 86977
        line_start: 86977
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->readOnly==0 || pOp->p2==0 )
      pos:
        line_end: 87133
        line_start: 87133
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC!=0 )
      pos:
        line_end: 87995
        line_start: 87995
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC->isTable )
      pos:
        line_end: 88328
        line_start: 88328
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p5==0 || pOp->p5==1 )
      pos:
        line_end: 89417
        line_start: 89417
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<db->nDb )
      pos:
        line_end: 90520
        line_start: 90520
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc==SQLITE_OK || res==0 )
      pos:
        line_end: 88262
        line_start: 88262
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pIn1->flags & MEM_Dyn) == (flags1 & MEM_Dyn) )
      pos:
        line_end: 85335
        line_start: 85335
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pIn2->flags & MEM_Int)!=0 )
      pos:
        line_end: 87425
        line_start: 87425
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p3==0 )
      pos:
        line_end: 88410
        line_start: 88410
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC!=0 )
      pos:
        line_end: 89412
        line_start: 89412
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iDb>=0 && iDb<db->nDb )
      pos:
        line_end: 89646
        line_start: 89646
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<db->nDb )
      pos:
        line_end: 89705
        line_start: 89705
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc==SQLITE_OK || rc==SQLITE_NOMEM )
      pos:
        line_end: 88138
        line_start: 88138
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( aRoot[0]==nRoot )
      pos:
        line_end: 89786
        line_start: 89786
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( memIsValid(pCtx->argv[i]) )
      pos:
        line_end: 91220
        line_start: 91220
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( v>0 )
      pos:
        line_end: 88425
        line_start: 88425
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC!=0 )
      pos:
        line_end: 89036
        line_start: 89036
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p5==0 )
      pos:
        line_end: 89259
        line_start: 89259
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p2<pC->nField )
      pos:
        line_end: 86360
        line_start: 86360
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p4.ai )
      pos:
        line_end: 85956
        line_start: 85956
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->bIsReader || p->readOnly!=0 )
      pos:
        line_end: 84483
        line_start: 84483
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc==SQLITE_OK || (p->rc&0xff)==SQLITE_CONSTRAINT )
      pos:
        line_end: 84883
        line_start: 84883
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<p->nCursor )
      pos:
        line_end: 86266
        line_start: 86266
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<p->nCursor )
      pos:
        line_end: 86358
        line_start: 86358
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nMem>0 )
      pos:
        line_end: 89977
        line_start: 89977
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( OP_Gt==OP_Ne+2 )
      pos:
        line_end: 85873
        line_start: 85873
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p1>0 && pOp->p1<=(p->nMem+1 - p->nCursor) )
      pos:
        line_end: 84685
        line_start: 84685
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->usesStmtJournal )
      pos:
        line_end: 85223
        line_start: 85223
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( DbMaskTest(p->btreeMask, iDb) )
      pos:
        line_end: 87235
        line_start: 87235
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p2>=0 )
      pos:
        line_end: 87615
        line_start: 87615
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( memIsValid(&r.aMem[i]) )
      pos:
        line_end: 87920
        line_start: 87920
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<p->nCursor )
      pos:
        line_end: 88089
        line_start: 88089
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC->deferredMoveto==0 )
      pos:
        line_end: 88806
        line_start: 88806
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p5<db->nDb )
      pos:
        line_end: 89792
        line_start: 89792
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p4type==P4_EXPR )
      pos:
        line_end: 91360
        line_start: 91360
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<db->nDb )
      pos:
        line_end: 89596
        line_start: 89596
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<p->nCursor )
      pos:
        line_end: 89310
        line_start: 89310
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (aMem[pOp->p2].flags & MEM_Static)!=0 )
      pos:
        line_end: 90735
        line_start: 90735
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( memIsValid(&aMem[p1+idx]) )
      pos:
        line_end: 86021
        line_start: 86021
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc==SQLITE_OK )
      pos:
        line_end: 86522
        line_start: 86522
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pKeyInfo->enc==ENC(db) )
      pos:
        line_end: 87582
        line_start: 87582
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp[1].p3==pOp[0].p3 )
      pos:
        line_end: 87895
        line_start: 87895
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( oc!=OP_SeekLE || r.default_rc==-1 )
      pos:
        line_end: 87914
        line_start: 87914
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( memIsValid(&r.aMem[ii]) )
      pos:
        line_end: 88128
        line_start: 88128
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC->deferredMoveto==0 )
      pos:
        line_end: 89133
        line_start: 89133
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p3>=0 && pOp->p3<p->nCursor )
      pos:
        line_end: 89335
        line_start: 89335
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p5<ArraySize(p->aCounter) )
      pos:
        line_end: 89130
        line_start: 89130
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p4type==P4_VTAB )
      pos:
        line_end: 91061
        line_start: 91061
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3VdbeMemIsRowSet(pIn1) )
      pos:
        line_end: 89897
        line_start: 89897
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nArg>1 && apArg[0] && (apArg[0]->flags&MEM_Null) )
      pos:
        line_end: 91077
        line_start: 91077
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<p->nCursor )
      pos:
        line_end: 88969
        line_start: 88969
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p4type==P4_COLLSEQ || pOp->p4.pColl==0 )
      pos:
        line_end: 85863
        line_start: 85863
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( OP_Lt==OP_Ne+4 )
      pos:
        line_end: 85874
        line_start: 85874
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nField>0 && pOp->p2>0 && pOp->p2+nField<=(p->nMem+1 - p->nCursor)+1
        )
      pos:
        line_end: 86684
        line_start: 86684
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTabCur->isTable )
      pos:
        line_end: 89340
        line_start: 89340
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC!=0 )
      pos:
        line_end: 86359
        line_start: 86359
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p2<=(p->nMem+1 - p->nCursor) )
      pos:
        line_end: 84579
        line_start: 84579
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc==SQLITE_OK || rc==SQLITE_TOOBIG )
      pos:
        line_end: 84947
        line_start: 84947
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC->iDb>=0 )
      pos:
        line_end: 88618
        line_start: 88618
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->errorAction==OE_Abort && p->usesStmtJournal )
      pos:
        line_end: 90759
        line_start: 90759
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( res!=0 )
      pos:
        line_end: 87928
        line_start: 87928
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pVtab->pModule->xRename )
      pos:
        line_end: 90992
        line_start: 90992
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<p->nCursor )
      pos:
        line_end: 86293
        line_start: 86293
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3BtreeCursorIsValid(pCrsr) )
      pos:
        line_end: 86385
        line_start: 86385
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIn3->flags & MEM_Blob )
      pos:
        line_end: 88136
        line_start: 88136
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pMem->flags & MEM_Int)!=0 )
      pos:
        line_end: 88394
        line_start: 88394
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( isSorter(pC) )
      pos:
        line_end: 88745
        line_start: 88745
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( zTab || db->mallocFailed )
      pos:
        line_end: 90739
        line_start: 90739
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( memIsValid(pCtx->argv[i]) )
      pos:
        line_end: 90358
        line_start: 90358
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC->isTable==0 )
      pos:
        line_end: 89315
        line_start: 89315
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<p->nCursor )
      pos:
        line_end: 89252
        line_start: 89252
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->iStatement==0 || db->flags&SQLITE_CountRows )
      pos:
        line_end: 85242
        line_start: 85242
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( (pMem[i].flags & MEM_Ephem)==0\n            || (pMem[i].flags
        & (MEM_Str|MEM_Blob))==0 )"
      pos:
        line_end: 85258
        line_start: 85257
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p3==0 || pOp->p3==1 )
      pos:
        line_end: 86121
        line_start: 86121
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( OP_SeekGT == OP_SeekLT+3 )
      pos:
        line_end: 87816
        line_start: 87816
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->readOnly==0 )
      pos:
        line_end: 90994
        line_start: 90994
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC->deferredMoveto==0 )
      pos:
        line_end: 89270
        line_start: 89270
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCtx->isError==0 )
      pos:
        line_end: 91225
        line_start: 91225
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pC->uc.pCursor!=0 )
      pos:
        line_end: 89314
        line_start: 89314
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIn1->flags&MEM_Int )
      pos:
        line_end: 90232
        line_start: 90232
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iDb==1 || sqlite3BtreeHoldsMutex(db->aDb[iDb].pBt) )
      pos:
        line_end: 89641
        line_start: 89641
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->readOnly==0 )
      pos:
        line_end: 90521
        line_start: 90521
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p5==0 || pOp->p4type==P4_INT32 )
      pos:
        line_end: 87177
        line_start: 87177
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nField>=0 )
      pos:
        line_end: 87443
        line_start: 87443
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (OP_IdxLE&1)==(OP_IdxLT&1) && (OP_IdxGE&1)==(OP_IdxGT&1) )
      pos:
        line_end: 89440
        line_start: 89440
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p4type==P4_FUNCCTX )
      pos:
        line_end: 91204
        line_start: 91204
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIn3->flags & MEM_Int )
      pos:
        line_end: 90205
        line_start: 90205
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p1>=0 && pOp->p1<p->nCursor )
      pos:
        line_end: 89207
        line_start: 89207
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIn1!=pOut )
      pos:
        line_end: 85298
        line_start: 85298
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (flags1 & MEM_Cleared)==0 )
      pos:
        line_end: 85788
        line_start: 85788
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p1>0 && pOp->p1<=(p->nMem+1 - p->nCursor) )
      pos:
        line_end: 85043
        line_start: 85043
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p1 <= SQLITE_MAX_LENGTH )
      pos:
        line_end: 85056
        line_start: 85056
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( OPFLAG_SEEKEQ==BTREE_SEEK_EQ )
      pos:
        line_end: 87463
        line_start: 87463
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p4type==P4_KEYINFO )
      pos:
        line_end: 87576
        line_start: 87576
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p2>0 )
      pos:
        line_end: 87971
        line_start: 87971
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( pOp->p2==SQLITE_CHECKPOINT_PASSIVE\n       || pOp->p2==SQLITE_CHECKPOINT_FULL\n
        \      || pOp->p2==SQLITE_CHECKPOINT_RESTART\n       || pOp->p2==SQLITE_CHECKPOINT_TRUNCATE\n
        \ )"
      pos:
        line_end: 90475
        line_start: 90471
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pQuery->flags&MEM_Int)!=0 && pArgc->flags==MEM_Int )
      pos:
        line_end: 90852
        line_start: 90852
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 91511
      start: 84437
    functionDepth: 23
    functionLinenumber: 84437
    functionLinenumberEnd: 91511
    functionName: sqlite3VdbeExec
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3BtreeBeginStmt
    - sqlite3VdbeMemFinalize
    - putVarint32
    - sqlite3VdbeMemTooBig
    - sqlite3VdbeCloseStatement
    - sqlite3AddInt64
    - sqlite3VdbeMemSetNull
    - sqlite3GetVarint32
    - getVarint32
    - sqlite3VdbeSerialType
    - VdbeBranchTaken
    - sqlite3VdbeSorterRowkey
    - sqlite3_file_control
    - sqlite3BtreeTripAllCursors
    - sqlite3VdbeMemShallowCopy
    - memcpy
    - sqlite3ErrStr
    - memAboutToChange
    - sqlite3StrICmp
    - sqlite3BtreeClearCursor
    - sqlite3_log
    - checkSavepointCount
    - sqlite3VtabImportErrmsg
    - sqlite3VdbeEnter
    - sqlite3Hwtime
    - UPDATE_MAX_BLOBSIZE
    - sqlite3VdbeMemFromBtree
    - VdbeMemDynamic
    - sqlite3VListNumToName
    - sqlite3VdbeIdxKeyCompare
    - sqlite3_exec
    - sqlite3BtreeSavepoint
    - sqlite3RowSetNext
    - sqlite3DbMallocZero
    - HAS_UPDATE_HOOK
    - sqlite3VtabBegin
    - sqlite3VdbeSorterReset
    - sqlite3_module*::xFilter
    - sqlite3VdbeSetChanges
    - sqlite3BtreeIncrVacuum
    - ArraySize
    - sqlite3VdbeMemNulTerminate
    - sqlite3PagerOkToChangeJournalMode
    - sqlite3UnlinkAndDeleteTrigger
    - sqlite3Strlen30
    - sqlite3RowSetInsert
    - sqlite3_module*::xOpen
    - sqlite3_module*::xColumn
    - isSorter
    - sqlite3VdbeMemMove
    - sqlite3_module*::xRowid
    - strncmp
    - sqlite3VdbeMemRelease
    - sqlite3CloseSavepoints
    - sqlite3VdbePrintSql
    - sqlite3VdbeMemExpandBlob
    - sqlite3BtreeClearTable
    - sqlite3BtreeDelete
    - sqlite3VdbeMemInit
    - sqlite3VdbeMemAggValue
    - sqlite3BtreeLast
    - sqlite3_value_text
    - sqlite3VtabCallCreate
    - sqlite3VdbeMemIntegerify
    - sqlite3BtreeLastPage
    - sqlite3VdbeOneByteSerialTypeLen
    - sqlite3VdbeSerialPut
    - sqlite3BtreeCursor
    - ExpandBlob
    - sqlite3BtreeCursorHint
    - allocateCursor
    - HasRowid
    - sqlite3VdbeDeleteAuxData
    - sqlite3BtreePayloadSize
    - sqlite3VdbeIncrWriteCounter
    - sqlite3BtreeOpen
    - sqlite3VdbeMemClearAndResize
    - sqlite3BtreeNext
    - applyNumericAffinity
    - sqlite3BtreeBeginTrans
    - registerTrace
    - sqlite3AnalysisLoad
    - sqlite3RootPageMoved
    - sqlite3BtreeCursorIsValidNN
    - sqlite3VdbeFrameRestore
    - sqlite3VdbeLeave
    - sqlite3VdbeExpandSql
    - sqlite3SystemError
    - sqlite3PagerWalSupported
    - sqlite3VdbeMemCopy
    - Op*::p4::xAdvance
    - sqlite3VdbePreUpdateHook
    - sqlite3SchemaMutexHeld
    - VdbeFrameMem
    - sqlite3VdbeMemSetInt64
    - sqlite3VdbeCursorMoveto
    - sqlite3Checkpoint
    - sqlite3RollbackAll
    - x
    - sqlite3VdbeMemGrow
    - sqlite3VdbeSorterWrite
    - sqlite3BtreePrevious
    - sqlite3MPrintf
    - sqlite3ResetOneSchema
    - ROUND8
    - sqlite3VdbeRealValue
    - sqlite3LogEst
    - sqlite3VdbeMemRealify
    - sqlite3BtreeLockTable
    - sqlite3_module*::xUpdate
    - sqlite3UnlinkAndDeleteTable
    - sqlite3DbFreeNN
    - sqlite3VdbeCursorRestore
    - sqlite3BtreeCount
    - sqlite3*::xProgress
    - sqlite3VdbeIntValue
    - sqlite3BtreePayloadFetch
    - ALWAYS
    - sqlite3_module*::xClose
    - sqlite3EndBenignMalloc
    - sqlite3DbMallocRawNN
    - printf
    - sqlite3BtreeDropTable
    - sqlite3BtreeClearTableOfCursor
    - sqlite3BtreeEof
    - sqlite3VdbeRecordUnpack
    - sqlite3VdbeFreeCursor
    - sqlite3InitOne
    - testcase
    - sqlite3VdbeSorterRewind
    - sqlite3VdbeError
    - sqlite3VdbeAllocUnpackedRecord
    - sqlite3VdbeMemCast
    - sqlite3MulInt64
    - sqlite3PagerFilename
    - sqlite3DbStrDup
    - sqlite3VdbeSorterNext
    - REGISTER_TRACE
    - assert
    - MemSetTypeFlag
    - sqlite3VdbeCheckFk
    - ENC
    - sqlite3VdbeAssertAbortable
    - sqlite3IsNaN
    - DbHasProperty
    - sqlite3UnlinkAndDeleteIndex
    - Deephemeralize
    - applyAffinity
    - sqlite3BtreeUpdateMeta
    - sqlite3*::xUpdateCallback
    - sqlite3_strlike
    - sqlite3_randomness
    - sqlite3BtreeSetVersion
    - sqlite3OomFault
    - sqlite3VdbePrintOp
    - sqlite3PagerSetJournalMode
    - sqlite3VdbeMemStringify
    - sqlite3VdbeMemSetStr
    - sqlite3SchemaClear
    - out2Prerelease
    - sqlite3ExpirePreparedStatements
    - sqlite3VdbeBooleanValue
    - sqlite3BtreeGetMeta
    - sqlite3VdbeSorterCompare
    - sqlite3BtreeFakeValidCursor
    - sqlite3VdbeChangeEncoding
    - sqlite3BtreeOffset
    - sqlite3VdbeMemIsRowSet
    - sqlite3RunVacuum
    - sqlite3BtreeFirst
    - sqlite3VtabSavepoint
    - sqlite3BtreeIsInTrans
    - sqlite3ResetAllSchemasOfConnection
    - sqlite3BtreeHoldsMutex
    - sqlite3SubInt64
    - sqlite3DebugPrintf
    - sqlite3VdbeHalt
    - sqlite3VdbeSerialTypeLen
    - sqlite3VtabCallDestroy
    - sqlite3_interrupt
    - sqlite3BeginBenignMalloc
    - sqlite3VdbeCheckMemInvariants
    - sqlite3BtreeCursorHintFlags
    - numericType
    - sqlite3BtreeMovetoUnpacked
    - sqlite3VdbeMemSetRowSet
    - sqlite3JournalModename
    - memset
    - sqlite3_module*::xNext
    - sqlite3_module*::xEof
    - sqlite3BtreeMaxPageCount
    - sqlite3BtreeRowCountEst
    - sqlite3BtreeIntegerKey
    - sqlite3BtreePager
    - sqlite3RowSetTest
    - sqlite3MemCompare
    - sqlite3DbFree
    - sqlite3VdbeSorterInit
    - DbMaskTest
    - sqlite3BtreeCreateTable
    - sqlite3BtreeCursorIsValid
    - sqlite3BtreeCursorHasHint
    - sqlite3VdbeIdxRowid
    - sqlite3BtreeIntegrityCheck
    - sqlite3VdbeIOTraceSql
    - NEVER
    - sqlite3*::xTrace
    - sqlite3VdbeSerialGet
    - sqlite3BtreeInsert
    - sqlite3PagerGetJournalMode
    - memIsValid
    - sqlite3_vtab*::pModule::xRename
    - sqlite3VarintLen
    - sqlite3PagerCloseWal
    - sqlite3_free
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3VdbeExec(\n  Vdbe *p                    /* The
      VDBE */\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:91586,1
    - Dst: sqlite3VdbeExec
      Src: /src/nss/lib/sqlite/sqlite3.c:91587,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:91589,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:91594,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:91595,1
    - Dst: sqlite3MPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:91597,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:91601,1
    - Dst: sqlite3VdbeSerialTypeLen
      Src: /src/nss/lib/sqlite/sqlite3.c:91605,1
    - Dst: sqlite3BtreeIncrblobCursor
      Src: /src/nss/lib/sqlite/sqlite3.c:91607,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:91614,1
    - Dst: sqlite3MPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:91617,1
    - Dst: sqlite3MPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:91620,1
    - Dst: sqlite3_errmsg
      Src: /src/nss/lib/sqlite/sqlite3.c:91620,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:91624,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:91625,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 42
    argCount: 3
    argNames:
    - p
    - iRow
    - pzErr
    argTypes:
    - Incrblob*
    - sqlite3_int64
    - char**
    assertStmts:
    - condition: ( v->aOp[v->pc].opcode==OP_NotExists )
      pos:
        line_end: 91585
        line_start: 91585
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc!=SQLITE_OK || zErr==0 )
      pos:
        line_end: 91623
        line_start: 91623
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc!=SQLITE_ROW && rc!=SQLITE_DONE )
      pos:
        line_end: 91624
        line_start: 91624
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 91629
      start: 91569
    functionDepth: 27
    functionLinenumber: 91569
    functionLinenumberEnd: 91629
    functionName: blobSeekToRow
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeExec
    - sqlite3MPrintf
    - sqlite3_step
    - sqlite3_finalize
    - assert
    - sqlite3BtreeIncrblobCursor
    - sqlite3_errmsg
    - testcase
    - sqlite3VdbeSerialTypeLen
    linkageType: ''
    returnType: int
    signature: int blobSeekToRow(Incrblob *p, sqlite3_int64 iRow, char **pzErr)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/nss/lib/sqlite/sqlite3.c:91658,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:91664,1
    - Dst: sqlite3DbMallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:91666,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:91668,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:91671,1
    - Dst: sqlite3BtreeEnterAll
      Src: /src/nss/lib/sqlite/sqlite3.c:91674,1
    - Dst: sqlite3LocateTable
      Src: /src/nss/lib/sqlite/sqlite3.c:91675,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:91676,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:91678,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:91680,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:91682,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:91687,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:91692,1
    - Dst: sqlite3BtreeLeaveAll
      Src: /src/nss/lib/sqlite/sqlite3.c:91697,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:91701,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:91705,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:91710,1
    - Dst: sqlite3MPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:91711,1
    - Dst: sqlite3BtreeLeaveAll
      Src: /src/nss/lib/sqlite/sqlite3.c:91713,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:91750,1
    - Dst: sqlite3MPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:91751,1
    - Dst: sqlite3BtreeLeaveAll
      Src: /src/nss/lib/sqlite/sqlite3.c:91753,1
    - Dst: sqlite3VdbeCreate
      Src: /src/nss/lib/sqlite/sqlite3.c:91758,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:91759,1
    - Dst: VDBE_OFFSET_LINENO
      Src: /src/nss/lib/sqlite/sqlite3.c:91777,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:91788,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/nss/lib/sqlite/sqlite3.c:91791,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:91794,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:91795,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:91795,1
    - Dst: sqlite3VdbeAddOpList
      Src: /src/nss/lib/sqlite/sqlite3.c:91796,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:91796,1
    - Dst: sqlite3VdbeUsesBtree
      Src: /src/nss/lib/sqlite/sqlite3.c:91799,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:91802,1
    - Dst: sqlite3VdbeChangeP4
      Src: /src/nss/lib/sqlite/sqlite3.c:91810,1
    - Dst: sqlite3VdbeMakeReady
      Src: /src/nss/lib/sqlite/sqlite3.c:91835,1
    - Dst: sqlite3BtreeLeaveAll
      Src: /src/nss/lib/sqlite/sqlite3.c:91841,1
    - Dst: blobSeekToRow
      Src: /src/nss/lib/sqlite/sqlite3.c:91845,1
    - Dst: sqlite3VdbeFinalize
      Src: /src/nss/lib/sqlite/sqlite3.c:91852,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:91853,1
    - Dst: sqlite3ErrorWithMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:91855,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:91856,1
    - Dst: sqlite3ParserReset
      Src: /src/nss/lib/sqlite/sqlite3.c:91857,1
    - Dst: sqlite3ApiExit
      Src: /src/nss/lib/sqlite/sqlite3.c:91858,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:91859,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 139
    argCount: 7
    argNames:
    - db
    - zDb
    - zTable
    - zColumn
    - iRow
    - wrFlag
    - ppBlob
    argTypes:
    - sqlite3*
    - char*
    - char*
    - char*
    - sqlite_int64
    - int
    - sqlite3_blob**
    assertStmts:
    - condition: ( pBlob->pStmt || db->mallocFailed )
      pos:
        line_end: 91758
        line_start: 91758
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3VdbeCurrentAddr(v)==2 || db->mallocFailed )
      pos:
        line_end: 91794
        line_start: 91794
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( aOp!=0 )
      pos:
        line_end: 91801
        line_start: 91801
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 91861
      start: 91634
    functionDepth: 28
    functionLinenumber: 91634
    functionLinenumberEnd: 91861
    functionName: sqlite3_blob_open
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3SafetyCheckOk
    - sqlite3BtreeLeaveAll
    - sqlite3ParserReset
    - sqlite3VdbeUsesBtree
    - HasRowid
    - sqlite3StrICmp
    - sqlite3VdbeCurrentAddr
    - sqlite3VdbeAddOp4Int
    - sqlite3_mutex_leave
    - sqlite3VdbeMakeReady
    - memset
    - assert
    - sqlite3SchemaToIndex
    - sqlite3DbMallocZero
    - sqlite3DbFree
    - VDBE_OFFSET_LINENO
    - ArraySize
    - sqlite3VdbeFinalize
    - sqlite3ErrorWithMsg
    - sqlite3VdbeChangeP4
    - blobSeekToRow
    - sqlite3VdbeCreate
    - sqlite3VdbeAddOpList
    - sqlite3BtreeEnterAll
    - sqlite3MPrintf
    - sqlite3ApiExit
    - sqlite3LocateTable
    - sqlite3VdbeChangeP5
    - sqlite3ErrorMsg
    - IsVirtual
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_blob_open(\n  sqlite3* db,            /* The database
      connection */\n  const char *zDb,        /* The attached database containing
      the blob */\n  const char *zTable,     /* The table containing the blob */\n
      \ const char *zColumn,    /* The column containing the blob */\n  sqlite_int64
      iRow,      /* The row containing the glob */\n  int wrFlag,             /* True
      -> read/write access, false -> read-only */\n  sqlite3_blob **ppBlob   /* Handle
      for accessing the blob returned here */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:91874,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:91875,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:91876,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:91877,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - pBlob
    argTypes:
    - sqlite3_blob*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91882
      start: 91867
    functionDepth: 26
    functionLinenumber: 91867
    functionLinenumberEnd: 91882
    functionName: sqlite3_blob_close
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3DbFree
    - sqlite3_mutex_leave
    - sqlite3_finalize
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_blob_close(sqlite3_blob *pBlob)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:91901,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:91916,1
    - Dst: sqlite3BtreeEnterCursor
      Src: /src/nss/lib/sqlite/sqlite3.c:91917,1
    - Dst: sqlite3BtreeIntegerKey
      Src: /src/nss/lib/sqlite/sqlite3.c:91935,1
    - Dst: sqlite3VdbePreUpdateHook
      Src: /src/nss/lib/sqlite/sqlite3.c:91936,1
    - Dst: xCall
      Src: /src/nss/lib/sqlite/sqlite3.c:91942,1
    - Dst: sqlite3BtreeLeaveCursor
      Src: /src/nss/lib/sqlite/sqlite3.c:91943,1
    - Dst: sqlite3VdbeFinalize
      Src: /src/nss/lib/sqlite/sqlite3.c:91945,1
    - Dst: sqlite3Error
      Src: /src/nss/lib/sqlite/sqlite3.c:91951,1
    - Dst: sqlite3ApiExit
      Src: /src/nss/lib/sqlite/sqlite3.c:91952,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:91953,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 4
    argNames:
    - pBlob
    - z
    - n
    - iOffset
    argTypes:
    - sqlite3_blob*
    - void*
    - int
    - int
    assertStmts:
    - condition: ( db == v->db )
      pos:
        line_end: 91915
        line_start: 91915
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 91955
      start: 91887
    functionDepth: 25
    functionLinenumber: 91887
    functionLinenumberEnd: 91955
    functionName: blobReadWrite
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3BtreeEnterCursor
    - sqlite3ApiExit
    - sqlite3VdbePreUpdateHook
    - xCall
    - sqlite3VdbeFinalize
    - sqlite3_mutex_leave
    - assert
    - sqlite3Error
    - sqlite3BtreeLeaveCursor
    - sqlite3BtreeIntegerKey
    linkageType: ''
    returnType: int
    signature: "int blobReadWrite(\n  sqlite3_blob *pBlob, \n  void *z, \n  int n,
      \n  int iOffset, \n  int (*xCall)(BtCursor*, u32, u32, void*)\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blobReadWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:91961,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pBlob
    - z
    - n
    - iOffset
    argTypes:
    - sqlite3_blob*
    - void*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91962
      start: 91960
    functionDepth: 26
    functionLinenumber: 91960
    functionLinenumberEnd: 91962
    functionName: sqlite3_blob_read
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - blobReadWrite
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_blob_read(sqlite3_blob *pBlob, void *z, int n, int
      iOffset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: blobReadWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:91968,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pBlob
    - z
    - n
    - iOffset
    argTypes:
    - sqlite3_blob*
    - void*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91969
      start: 91967
    functionDepth: 26
    functionLinenumber: 91967
    functionLinenumberEnd: 91969
    functionName: sqlite3_blob_write
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - blobReadWrite
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_blob_write(sqlite3_blob *pBlob, const void *z, int
      n, int iOffset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - pBlob
    argTypes:
    - sqlite3_blob*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91980
      start: 91977
    functionDepth: 0
    functionLinenumber: 91977
    functionLinenumberEnd: 91980
    functionName: sqlite3_blob_bytes
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_blob_bytes(sqlite3_blob *pBlob)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:91999,1
    - Dst: blobSeekToRow
      Src: /src/nss/lib/sqlite/sqlite3.c:92008,1
    - Dst: sqlite3ErrorWithMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:92010,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:92011,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:92013,1
    - Dst: sqlite3ApiExit
      Src: /src/nss/lib/sqlite/sqlite3.c:92016,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:92017,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:92018,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - pBlob
    - iRow
    argTypes:
    - sqlite3_blob*
    - sqlite3_int64
    assertStmts:
    - condition: ( rc!=SQLITE_SCHEMA )
      pos:
        line_end: 92012
        line_start: 92012
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc==SQLITE_OK || p->pStmt==0 )
      pos:
        line_end: 92016
        line_start: 92016
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 92020
      start: 91992
    functionDepth: 28
    functionLinenumber: 91992
    functionLinenumberEnd: 92020
    functionName: sqlite3_blob_reopen
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3DbFree
    - sqlite3ApiExit
    - sqlite3_mutex_leave
    - assert
    - sqlite3ErrorWithMsg
    - blobSeekToRow
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_blob_reopen(sqlite3_blob *pBlob, sqlite3_int64 iRow)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92482
      start: 92481
    functionDepth: 0
    functionLinenumber: 92481
    functionLinenumberEnd: 92482
    functionName: SRVAL
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SRVAL(p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:92495,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:92496,1
    - Dst: sqlite3OsUnfetch
      Src: /src/nss/lib/sqlite/sqlite3.c:92497,1
    - Dst: vdbeIncrFree
      Src: /src/nss/lib/sqlite/sqlite3.c:92498,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:92499,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pReadr
    argTypes:
    - PmaReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92500
      start: 92494
    functionDepth: 3
    functionLinenumber: 92494
    functionLinenumberEnd: 92500
    functionName: vdbePmaReaderClear
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - vdbeIncrFree
    - sqlite3_free
    - memset
    - sqlite3OsUnfetch
    linkageType: ''
    returnType: void
    signature: void vdbePmaReaderClear(PmaReader *pReadr)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:92525,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:92541,1
    - Dst: sqlite3OsRead
      Src: /src/nss/lib/sqlite/sqlite3.c:92544,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:92545,1
    - Dst: MAX
      Src: /src/nss/lib/sqlite/sqlite3.c:92565,1
    - Dst: sqlite3Realloc
      Src: /src/nss/lib/sqlite/sqlite3.c:92567,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:92575,1
    - Dst: vdbePmaReadBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:92588,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:92590,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:92591,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 51
    argCount: 3
    argNames:
    - p
    - nByte
    - ppOut
    argTypes:
    - PmaReader*
    - int
    - u8**
    assertStmts:
    - condition: ( p->aBuffer )
      pos:
        line_end: 92524
        line_start: 92524
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc!=SQLITE_IOERR_SHORT_READ )
      pos:
        line_end: 92544
        line_start: 92544
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nRead>0 )
      pos:
        line_end: 92540
        line_start: 92540
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( aNext!=p->aAlloc )
      pos:
        line_end: 92589
        line_start: 92589
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 92599
      start: 92511
    functionDepth: 6
    functionLinenumber: 92511
    functionLinenumberEnd: 92599
    functionName: vdbePmaReadBlob
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3OsRead
    - memcpy
    - sqlite3Realloc
    - vdbePmaReadBlob
    - assert
    - MAX
    linkageType: ''
    returnType: int
    signature: "int vdbePmaReadBlob(\n  PmaReader *p,                   /* PmaReader
      from which to take the blob */\n  int nByte,                      /* Bytes of
      data to read */\n  u8 **ppOut                      /* OUT: Pointer to buffer
      containing data */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:92609,1
    - Dst: sqlite3GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:92613,1
    - Dst: vdbePmaReadBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:92618,1
    - Dst: sqlite3GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:92622,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - p
    - pnOut
    argTypes:
    - PmaReader*
    - u64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92627
      start: 92605
    functionDepth: 7
    functionLinenumber: 92605
    functionLinenumberEnd: 92627
    functionName: vdbePmaReadVarint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - vdbePmaReadBlob
    - sqlite3GetVarint
    linkageType: ''
    returnType: int
    signature: int vdbePmaReadVarint(PmaReader *p, u64 *pnOut)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3OsFetch
      Src: /src/nss/lib/sqlite/sqlite3.c:92643,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:92644,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - pTask
    - pFile
    - pp
    argTypes:
    - SortSubtask*
    - SorterFile*
    - u8**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92648
      start: 92638
    functionDepth: 2
    functionLinenumber: 92638
    functionLinenumberEnd: 92648
    functionName: vdbeSorterMapFile
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - testcase
    - sqlite3OsFetch
    linkageType: ''
    returnType: int
    signature: int vdbeSorterMapFile(SortSubtask *pTask, SorterFile *pFile, u8 **pp)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:92663,1
    - Dst: sqlite3FaultSim
      Src: /src/nss/lib/sqlite/sqlite3.c:92665,1
    - Dst: sqlite3OsUnfetch
      Src: /src/nss/lib/sqlite/sqlite3.c:92667,1
    - Dst: vdbeSorterMapFile
      Src: /src/nss/lib/sqlite/sqlite3.c:92674,1
    - Dst: sqlite3Malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:92679,1
    - Dst: sqlite3OsRead
      Src: /src/nss/lib/sqlite/sqlite3.c:92688,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:92691,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 4
    argNames:
    - pTask
    - pReadr
    - pFile
    - iOff
    argTypes:
    - SortSubtask*
    - PmaReader*
    - SorterFile*
    - i64
    assertStmts:
    - condition: ( pReadr->pIncr==0 || pReadr->pIncr->bEof==0 )
      pos:
        line_end: 92662
        line_start: 92662
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 92696
      start: 92655
    functionDepth: 5
    functionLinenumber: 92655
    functionLinenumberEnd: 92696
    functionName: vdbePmaReaderSeek
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsRead
    - vdbeSorterMapFile
    - sqlite3Malloc
    - sqlite3FaultSim
    - assert
    - sqlite3OsUnfetch
    - testcase
    linkageType: ''
    returnType: int
    signature: "int vdbePmaReaderSeek(\n  SortSubtask *pTask,             /* Task
      context */\n  PmaReader *pReadr,              /* Reader whose cursor is to be
      moved */\n  SorterFile *pFile,              /* Sorter file to read from */\n
      \ i64 iOff                        /* Offset in pFile */\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: vdbeIncrSwap
      Src: /src/nss/lib/sqlite/sqlite3.c:92711,1
    - Dst: vdbePmaReaderSeek
      Src: /src/nss/lib/sqlite/sqlite3.c:92713,1
    - Dst: vdbePmaReaderClear
      Src: /src/nss/lib/sqlite/sqlite3.c:92722,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:92723,1
    - Dst: vdbePmaReadVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:92729,1
    - Dst: vdbePmaReadBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:92733,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:92734,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - pReadr
    argTypes:
    - PmaReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92738
      start: 92702
    functionDepth: 8
    functionLinenumber: 92702
    functionLinenumberEnd: 92738
    functionName: vdbePmaReaderNext
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - vdbePmaReadBlob
    - vdbePmaReadVarint
    - vdbeIncrSwap
    - vdbePmaReaderSeek
    - testcase
    - vdbePmaReaderClear
    linkageType: ''
    returnType: int
    signature: int vdbePmaReaderNext(PmaReader *pReadr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:92758,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:92759,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:92760,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:92761,1
    - Dst: vdbePmaReaderSeek
      Src: /src/nss/lib/sqlite/sqlite3.c:92763,1
    - Dst: vdbePmaReadVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:92766,1
    - Dst: vdbePmaReaderNext
      Src: /src/nss/lib/sqlite/sqlite3.c:92772,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - pTask
    - pFile
    - iStart
    - pReadr
    - pnByte
    argTypes:
    - SortSubtask*
    - SorterFile*
    - i64
    - PmaReader*
    - i64*
    assertStmts:
    - condition: ( pFile->iEof>iStart )
      pos:
        line_end: 92757
        line_start: 92757
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pReadr->aAlloc==0 && pReadr->nAlloc==0 )
      pos:
        line_end: 92758
        line_start: 92758
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pReadr->aMap==0 )
      pos:
        line_end: 92760
        line_start: 92760
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pReadr->aBuffer==0 )
      pos:
        line_end: 92759
        line_start: 92759
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 92775
      start: 92749
    functionDepth: 9
    functionLinenumber: 92749
    functionLinenumberEnd: 92775
    functionName: vdbePmaReaderInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - vdbePmaReaderSeek
    - vdbePmaReadVarint
    - vdbePmaReaderNext
    linkageType: ''
    returnType: int
    signature: "int vdbePmaReaderInit(\n  SortSubtask *pTask,             /* Task
      context */\n  SorterFile *pFile,              /* Sorter file to read from */\n
      \ i64 iStart,                     /* Start offset in pFile */\n  PmaReader *pReadr,
      \             /* PmaReader to populate */\n  i64 *pnByte                     /*
      IN/OUT: Increment this value by PMA size */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeRecordUnpack
      Src: /src/nss/lib/sqlite/sqlite3.c:92790,1
    - Dst: sqlite3VdbeRecordCompareWithSkip
      Src: /src/nss/lib/sqlite/sqlite3.c:92793,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - pTask
    - pbKey2Cached
    - pKey1
    - nKey1
    - pKey2
    - nKey2
    argTypes:
    - SortSubtask*
    - int*
    - void*
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92794
      start: 92782
    functionDepth: 16
    functionLinenumber: 92782
    functionLinenumberEnd: 92794
    functionName: vdbeSorterCompareTail
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeRecordUnpack
    - sqlite3VdbeRecordCompareWithSkip
    linkageType: ''
    returnType: int
    signature: "int vdbeSorterCompareTail(\n  SortSubtask *pTask,             /* Subtask
      context (for pKeyInfo) */\n  int *pbKey2Cached,              /* True if pTask->pUnpacked
      is pKey2 */\n  const void *pKey1, int nKey1,   /* Left side of comparison */\n
      \ const void *pKey2, int nKey2    /* Right side of comparison */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeRecordUnpack
      Src: /src/nss/lib/sqlite/sqlite3.c:92817,1
    - Dst: sqlite3VdbeRecordCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:92820,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - pTask
    - pbKey2Cached
    - pKey1
    - nKey1
    - pKey2
    - nKey2
    argTypes:
    - SortSubtask*
    - int*
    - void*
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92821
      start: 92809
    functionDepth: 17
    functionLinenumber: 92809
    functionLinenumberEnd: 92821
    functionName: vdbeSorterCompare
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeRecordUnpack
    - sqlite3VdbeRecordCompare
    linkageType: ''
    returnType: int
    signature: "int vdbeSorterCompare(\n  SortSubtask *pTask,             /* Subtask
      context (for pKeyInfo) */\n  int *pbKey2Cached,              /* True if pTask->pUnpacked
      is pKey2 */\n  const void *pKey1, int nKey1,   /* Left side of comparison */\n
      \ const void *pKey2, int nKey2    /* Right side of comparison */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:92843,1
    - Dst: getVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:92844,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:92845,1
    - Dst: MIN
      Src: /src/nss/lib/sqlite/sqlite3.c:92845,1
    - Dst: vdbeSorterCompareTail
      Src: /src/nss/lib/sqlite/sqlite3.c:92852,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 6
    argNames:
    - pTask
    - pbKey2Cached
    - pKey1
    - nKey1
    - pKey2
    - nKey2
    argTypes:
    - SortSubtask*
    - int*
    - void*
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92863
      start: 92828
    functionDepth: 17
    functionLinenumber: 92828
    functionLinenumberEnd: 92863
    functionName: vdbeSorterCompareText
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - vdbeSorterCompareTail
    - memcmp
    - MIN
    - getVarint32
    linkageType: ''
    returnType: int
    signature: "int vdbeSorterCompareText(\n  SortSubtask *pTask,             /* Subtask
      context (for pKeyInfo) */\n  int *pbKey2Cached,              /* True if pTask->pUnpacked
      is pKey2 */\n  const void *pKey1, int nKey1,   /* Left side of comparison */\n
      \ const void *pKey2, int nKey2    /* Right side of comparison */\n)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:92883,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:92884,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:92910,1
    - Dst: vdbeSorterCompareTail
      Src: /src/nss/lib/sqlite/sqlite3.c:92921,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 43
    argCount: 6
    argNames:
    - pTask
    - pbKey2Cached
    - pKey1
    - nKey1
    - pKey2
    - nKey2
    argTypes:
    - SortSubtask*
    - int*
    - void*
    - int
    - void*
    - int
    assertStmts:
    - condition: ( (s1>0 && s1<7) || s1==8 || s1==9 )
      pos:
        line_end: 92882
        line_start: 92882
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (s2>0 && s2<7) || s2==8 || s2==9 )
      pos:
        line_end: 92883
        line_start: 92883
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( res!=0 )
      pos:
        line_end: 92909
        line_start: 92909
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 92930
      start: 92869
    functionDepth: 17
    functionLinenumber: 92869
    functionLinenumberEnd: 92930
    functionName: vdbeSorterCompareInt
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - vdbeSorterCompareTail
    linkageType: ''
    returnType: int
    signature: "int vdbeSorterCompareInt(\n  SortSubtask *pTask,             /* Subtask
      context (for pKeyInfo) */\n  int *pbKey2Cached,              /* True if pTask->pUnpacked
      is pKey2 */\n  const void *pKey1, int nKey1,   /* Left side of comparison */\n
      \ const void *pKey2, int nKey2    /* Right side of comparison */\n)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3TempInMemory
      Src: /src/nss/lib/sqlite/sqlite3.c:92971,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:92986,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:92987,1
    - Dst: sqlite3DbMallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:92991,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:92997,1
    - Dst: sqlite3BtreeGetPageSize
      Src: /src/nss/lib/sqlite/sqlite3.c:93002,1
    - Dst: sqlite3TempInMemory
      Src: /src/nss/lib/sqlite/sqlite3.c:93012,1
    - Dst: MIN
      Src: /src/nss/lib/sqlite/sqlite3.c:93025,1
    - Dst: MAX
      Src: /src/nss/lib/sqlite/sqlite3.c:93026,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:93031,1
    - Dst: sqlite3Malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:93033,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 55
    argCount: 3
    argNames:
    - db
    - nField
    - pCsr
    argTypes:
    - sqlite3*
    - int
    - VdbeCursor*
    assertStmts:
    - condition: ( pCsr->eCurType==CURTYPE_SORTER )
      pos:
        line_end: 92986
        line_start: 92986
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCsr->pKeyInfo && pCsr->pBtx==0 )
      pos:
        line_end: 92985
        line_start: 92985
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pSorter->iMemory==0 )
      pos:
        line_end: 93030
        line_start: 93030
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 93046
      start: 92951
    functionDepth: 5
    functionLinenumber: 92951
    functionLinenumberEnd: 93046
    functionName: sqlite3VdbeSorterInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - memcpy
    - sqlite3TempInMemory
    - sqlite3BtreeGetPageSize
    - assert
    - sqlite3Malloc
    - MAX
    - MIN
    - sqlite3DbMallocZero
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3VdbeSorterInit(\n  sqlite3 *db,                    /*
      Database connection (for malloc()) */\n  int nField,                     /*
      Number of key fields in each record */\n  VdbeCursor *pCsr                /*
      Cursor that holds the new sorter */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:93057,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - db
    - pRecord
    argTypes:
    - sqlite3*
    - SorterRecord*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93059
      start: 93052
    functionDepth: 6
    functionLinenumber: 93052
    functionLinenumberEnd: 93059
    functionName: vdbeSorterRecordFree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbFree
    linkageType: ''
    returnType: void
    signature: void vdbeSorterRecordFree(sqlite3 *db, SorterRecord *pRecord)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:93066,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:93071,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:93075,1
    - Dst: vdbeSorterRecordFree
      Src: /src/nss/lib/sqlite/sqlite3.c:93076,1
    - Dst: sqlite3OsCloseFree
      Src: /src/nss/lib/sqlite/sqlite3.c:93079,1
    - Dst: sqlite3OsCloseFree
      Src: /src/nss/lib/sqlite/sqlite3.c:93082,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:93084,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - db
    - pTask
    argTypes:
    - sqlite3*
    - SortSubtask*
    assertStmts:
    - condition: ( pTask->list.aMemory==0 )
      pos:
        line_end: 93074
        line_start: 93074
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 93085
      start: 93065
    functionDepth: 7
    functionLinenumber: 93065
    functionLinenumberEnd: 93085
    functionName: vdbeSortSubtaskCleanup
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsCloseFree
    - sqlite3DbFree
    - assert
    - memset
    - vdbeSorterRecordFree
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void vdbeSortSubtaskCleanup(sqlite3 *db, SortSubtask *pTask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3OsCurrentTimeInt64
      Src: /src/nss/lib/sqlite/sqlite3.c:93091,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:93092,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pTask
    - zEvent
    argTypes:
    - SortSubtask*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93093
      start: 93088
    functionDepth: 1
    functionLinenumber: 93088
    functionLinenumberEnd: 93093
    functionName: vdbeSorterWorkDebug
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fprintf
    - sqlite3OsCurrentTimeInt64
    linkageType: ''
    returnType: void
    signature: void vdbeSorterWorkDebug(SortSubtask *pTask, const char *zEvent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3OsCurrentTimeInt64
      Src: /src/nss/lib/sqlite/sqlite3.c:93096,1
    - Dst: sqlite3_vfs_find
      Src: /src/nss/lib/sqlite/sqlite3.c:93096,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:93097,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - zEvent
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93098
      start: 93094
    functionDepth: 1
    functionLinenumber: 93094
    functionLinenumberEnd: 93098
    functionName: vdbeSorterRewindDebug
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fprintf
    - sqlite3_vfs_find
    - sqlite3OsCurrentTimeInt64
    linkageType: ''
    returnType: void
    signature: void vdbeSorterRewindDebug(const char *zEvent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3OsCurrentTimeInt64
      Src: /src/nss/lib/sqlite/sqlite3.c:93105,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:93106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pTask
    - zEvent
    argTypes:
    - SortSubtask*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93107
      start: 93099
    functionDepth: 1
    functionLinenumber: 93099
    functionLinenumberEnd: 93107
    functionName: vdbeSorterPopulateDebug
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fprintf
    - sqlite3OsCurrentTimeInt64
    linkageType: ''
    returnType: void
    signature: "void vdbeSorterPopulateDebug(\n  SortSubtask *pTask,\n  const char
      *zEvent\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3OsCurrentTimeInt64
      Src: /src/nss/lib/sqlite/sqlite3.c:93115,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:93116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - pTask
    - bBlocked
    - zEvent
    argTypes:
    - SortSubtask*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93118
      start: 93108
    functionDepth: 1
    functionLinenumber: 93108
    functionLinenumberEnd: 93118
    functionName: vdbeSorterBlockDebug
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fprintf
    - sqlite3OsCurrentTimeInt64
    linkageType: ''
    returnType: void
    signature: "void vdbeSorterBlockDebug(\n  SortSubtask *pTask,\n  int bBlocked,\n
      \ const char *zEvent\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SQLITE_INT_TO_PTR
      Src: /src/nss/lib/sqlite/sqlite3.c:93136,1
    - Dst: vdbeSorterBlockDebug
      Src: /src/nss/lib/sqlite/sqlite3.c:93137,1
    - Dst: sqlite3ThreadJoin
      Src: /src/nss/lib/sqlite/sqlite3.c:93138,1
    - Dst: vdbeSorterBlockDebug
      Src: /src/nss/lib/sqlite/sqlite3.c:93139,1
    - Dst: SQLITE_PTR_TO_INT
      Src: /src/nss/lib/sqlite/sqlite3.c:93140,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:93141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - pTask
    argTypes:
    - SortSubtask*
    assertStmts:
    - condition: ( pTask->bDone==1 )
      pos:
        line_end: 93140
        line_start: 93140
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 93146
      start: 93130
    functionDepth: 4
    functionLinenumber: 93130
    functionLinenumberEnd: 93146
    functionName: vdbeSorterJoinThread
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - SQLITE_PTR_TO_INT
    - vdbeSorterBlockDebug
    - assert
    - sqlite3ThreadJoin
    - SQLITE_INT_TO_PTR
    linkageType: ''
    returnType: int
    signature: int vdbeSorterJoinThread(SortSubtask *pTask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:93156,1
    - Dst: sqlite3ThreadCreate
      Src: /src/nss/lib/sqlite/sqlite3.c:93157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - pTask
    - (*xTask)(void*)
    - pIn
    argTypes:
    - SortSubtask*
    - void*
    - void*
    assertStmts:
    - condition: ( pTask->pThread==0 && pTask->bDone==0 )
      pos:
        line_end: 93155
        line_start: 93155
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 93158
      start: 93151
    functionDepth: 6
    functionLinenumber: 93151
    functionLinenumberEnd: 93158
    functionName: vdbeSorterCreateThread
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3ThreadCreate
    linkageType: ''
    returnType: int
    signature: "int vdbeSorterCreateThread(\n  SortSubtask *pTask,             /*
      Thread will use this task object */\n  void *(*xTask)(void*),          /* Routine
      to run in a separate thread */\n  void *pIn                       /* Argument
      passed into xTask() */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vdbeSorterJoinThread
      Src: /src/nss/lib/sqlite/sqlite3.c:93177,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - pSorter
    - rcin
    argTypes:
    - VdbeSorter*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93181
      start: 93164
    functionDepth: 5
    functionLinenumber: 93164
    functionLinenumberEnd: 93181
    functionName: vdbeSorterJoinAll
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - vdbeSorterJoinThread
    linkageType: ''
    returnType: int
    signature: int vdbeSorterJoinAll(VdbeSorter *pSorter, int rcin)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - rcin
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93184
      start: 93183
    functionDepth: 0
    functionLinenumber: 93183
    functionLinenumberEnd: 93184
    functionName: vdbeSorterJoinAll
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vdbeSorterJoinAll(x,rcin)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pTask
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93185
      start: 93184
    functionDepth: 0
    functionLinenumber: 93184
    functionLinenumberEnd: 93185
    functionName: vdbeSorterJoinThread
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vdbeSorterJoinThread(pTask)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:93199,1
    - Dst: sqlite3FaultSim
      Src: /src/nss/lib/sqlite/sqlite3.c:93204,1
    - Dst: sqlite3MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:93204,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - nReader
    argTypes:
    - int
    assertStmts:
    - condition: ( nReader<=SORTER_MAX_MERGE_COUNT )
      pos:
        line_end: 93198
        line_start: 93198
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 93212
      start: 93194
    functionDepth: 6
    functionLinenumber: 93194
    functionLinenumberEnd: 93212
    functionName: vdbeMergeEngineNew
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3MallocZero
    - sqlite3FaultSim
    linkageType: ''
    returnType: MergeEngine
    signature: MergeEngine *vdbeMergeEngineNew(int nReader)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vdbePmaReaderClear
      Src: /src/nss/lib/sqlite/sqlite3.c:93221,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:93224,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - pMerger
    argTypes:
    - MergeEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93225
      start: 93217
    functionDepth: 4
    functionLinenumber: 93217
    functionLinenumberEnd: 93225
    functionName: vdbeMergeEngineFree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    - vdbePmaReaderClear
    linkageType: ''
    returnType: void
    signature: void vdbeMergeEngineFree(MergeEngine *pMerger)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vdbeSorterJoinThread
      Src: /src/nss/lib/sqlite/sqlite3.c:93235,1
    - Dst: sqlite3OsCloseFree
      Src: /src/nss/lib/sqlite/sqlite3.c:93236,1
    - Dst: sqlite3OsCloseFree
      Src: /src/nss/lib/sqlite/sqlite3.c:93237,1
    - Dst: vdbeMergeEngineFree
      Src: /src/nss/lib/sqlite/sqlite3.c:93240,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:93241,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - pIncr
    argTypes:
    - IncrMerger*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93243
      start: 93231
    functionDepth: 5
    functionLinenumber: 93231
    functionLinenumberEnd: 93243
    functionName: vdbeIncrFree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3OsCloseFree
    - vdbeSorterJoinThread
    - sqlite3_free
    - vdbeMergeEngineFree
    linkageType: ''
    returnType: void
    signature: void vdbeIncrFree(IncrMerger *pIncr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vdbeSorterJoinAll
      Src: /src/nss/lib/sqlite/sqlite3.c:93250,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:93251,1
    - Dst: vdbePmaReaderClear
      Src: /src/nss/lib/sqlite/sqlite3.c:93254,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:93255,1
    - Dst: vdbeMergeEngineFree
      Src: /src/nss/lib/sqlite/sqlite3.c:93259,1
    - Dst: vdbeSortSubtaskCleanup
      Src: /src/nss/lib/sqlite/sqlite3.c:93263,1
    - Dst: vdbeSorterRecordFree
      Src: /src/nss/lib/sqlite/sqlite3.c:93267,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:93274,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - db
    - pSorter
    argTypes:
    - sqlite3*
    - VdbeSorter*
    assertStmts:
    - condition: ( pSorter->bUseThreads || pSorter->pReader==0 )
      pos:
        line_end: 93250
        line_start: 93250
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 93276
      start: 93248
    functionDepth: 8
    functionLinenumber: 93248
    functionLinenumberEnd: 93276
    functionName: sqlite3VdbeSorterReset
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3DbFree
    - vdbeSortSubtaskCleanup
    - assert
    - vdbeSorterJoinAll
    - vdbeSorterRecordFree
    - vdbePmaReaderClear
    - vdbeMergeEngineFree
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeSorterReset(sqlite3 *db, VdbeSorter *pSorter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:93283,1
    - Dst: sqlite3VdbeSorterReset
      Src: /src/nss/lib/sqlite/sqlite3.c:93286,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:93287,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:93288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - db
    - pCsr
    argTypes:
    - sqlite3*
    - VdbeCursor*
    assertStmts:
    - condition: ( pCsr->eCurType==CURTYPE_SORTER )
      pos:
        line_end: 93282
        line_start: 93282
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 93291
      start: 93281
    functionDepth: 9
    functionLinenumber: 93281
    functionLinenumberEnd: 93291
    functionName: sqlite3VdbeSorterClose
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - sqlite3_free
    - sqlite3DbFree
    - sqlite3VdbeSorterReset
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeSorterClose(sqlite3 *db, VdbeCursor *pCsr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3OsFileControlHint
      Src: /src/nss/lib/sqlite/sqlite3.c:93307,1
    - Dst: sqlite3OsFileControlHint
      Src: /src/nss/lib/sqlite/sqlite3.c:93308,1
    - Dst: sqlite3OsFetch
      Src: /src/nss/lib/sqlite/sqlite3.c:93309,1
    - Dst: sqlite3OsUnfetch
      Src: /src/nss/lib/sqlite/sqlite3.c:93310,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - db
    - pFd
    - nByte
    argTypes:
    - sqlite3*
    - sqlite3_file*
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93312
      start: 93303
    functionDepth: 2
    functionLinenumber: 93303
    functionLinenumberEnd: 93312
    functionName: vdbeSorterExtendFile
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsFetch
    - sqlite3OsFileControlHint
    - sqlite3OsUnfetch
    linkageType: ''
    returnType: void
    signature: void vdbeSorterExtendFile(sqlite3 *db, sqlite3_file *pFd, i64 nByte)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3FaultSim
      Src: /src/nss/lib/sqlite/sqlite3.c:93328,1
    - Dst: sqlite3OsOpenMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:93329,1
    - Dst: sqlite3OsFileControlHint
      Src: /src/nss/lib/sqlite/sqlite3.c:93336,1
    - Dst: vdbeSorterExtendFile
      Src: /src/nss/lib/sqlite/sqlite3.c:93338,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - db
    - nExtend
    - ppFd
    argTypes:
    - sqlite3*
    - i64
    - sqlite3_file**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93342
      start: 93322
    functionDepth: 3
    functionLinenumber: 93322
    functionLinenumberEnd: 93342
    functionName: vdbeSorterOpenTempFile
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsOpenMalloc
    - vdbeSorterExtendFile
    - sqlite3FaultSim
    - sqlite3OsFileControlHint
    linkageType: ''
    returnType: int
    signature: "int vdbeSorterOpenTempFile(\n  sqlite3 *db,                    /*
      Database handle doing sort */\n  i64 nExtend,                    /* Attempt
      to extend file to this size */\n  sqlite3_file **ppFd\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeAllocUnpackedRecord
      Src: /src/nss/lib/sqlite/sqlite3.c:93351,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - pTask
    argTypes:
    - SortSubtask*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93357
      start: 93349
    functionDepth: 0
    functionLinenumber: 93349
    functionLinenumberEnd: 93357
    functionName: vdbeSortAllocUnpacked
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeAllocUnpackedRecord
    linkageType: ''
    returnType: int
    signature: int vdbeSortAllocUnpacked(SortSubtask *pTask)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:93372,1
    - Dst: SortSubtask*::xCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:93375,1
    - Dst: SRVAL
      Src: /src/nss/lib/sqlite/sqlite3.c:93376,1
    - Dst: SRVAL
      Src: /src/nss/lib/sqlite/sqlite3.c:93376,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - pTask
    - p1
    - p2
    argTypes:
    - SortSubtask*
    - SorterRecord*
    - SorterRecord*
    assertStmts:
    - condition: ( p1!=0 && p2!=0 )
      pos:
        line_end: 93371
        line_start: 93371
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 93399
      start: 93363
    functionDepth: 1
    functionLinenumber: 93363
    functionLinenumberEnd: 93399
    functionName: vdbeSorterMerge
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - SRVAL
    - SortSubtask*::xCompare
    linkageType: ''
    returnType: SorterRecord
    signature: "SorterRecord *vdbeSorterMerge(\n  SortSubtask *pTask,             /*
      Calling thread context */\n  SorterRecord *p1,               /* First list to
      merge */\n  SorterRecord *p2                /* Second list to merge */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - VdbeSorter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93412
      start: 93405
    functionDepth: 0
    functionLinenumber: 93405
    functionLinenumberEnd: 93412
    functionName: vdbeSorterGetCompare
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SorterCompare
    signature: SorterCompare vdbeSorterGetCompare(VdbeSorter *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: vdbeSortAllocUnpacked
      Src: /src/nss/lib/sqlite/sqlite3.c:93425,1
    - Dst: vdbeSorterGetCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:93429,1
    - Dst: sqlite3MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:93431,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:93442,1
    - Dst: sqlite3MallocSize
      Src: /src/nss/lib/sqlite/sqlite3.c:93442,1
    - Dst: vdbeSorterMerge
      Src: /src/nss/lib/sqlite/sqlite3.c:93451,1
    - Dst: vdbeSorterMerge
      Src: /src/nss/lib/sqlite/sqlite3.c:93461,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:93465,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:93466,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 2
    argNames:
    - pTask
    - pList
    argTypes:
    - SortSubtask*
    - SorterList*
    assertStmts:
    - condition: ( p->u.iNext<sqlite3MallocSize(pList->aMemory) )
      pos:
        line_end: 93441
        line_start: 93441
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( pTask->pUnpacked->errCode==SQLITE_OK \n       || pTask->pUnpacked->errCode==SQLITE_NOMEM
        \n  )"
      pos:
        line_end: 93467
        line_start: 93465
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 93470
      start: 93419
    functionDepth: 6
    functionLinenumber: 93419
    functionLinenumberEnd: 93470
    functionName: vdbeSorterSort
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - vdbeSorterMerge
    - vdbeSorterGetCompare
    - sqlite3MallocSize
    - assert
    - sqlite3MallocZero
    - vdbeSortAllocUnpacked
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int vdbeSorterSort(SortSubtask *pTask, SorterList *pList)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:93481,1
    - Dst: sqlite3Malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:93482,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - pFd
    - p
    - nBuf
    - iStart
    argTypes:
    - sqlite3_file*
    - PmaWriter*
    - int
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93491
      start: 93475
    functionDepth: 5
    functionLinenumber: 93475
    functionLinenumberEnd: 93491
    functionName: vdbePmaWriterInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3Malloc
    linkageType: ''
    returnType: void
    signature: "void vdbePmaWriterInit(\n  sqlite3_file *pFd,              /* File
      handle to write to */\n  PmaWriter *p,                   /* Object to populate
      */\n  int nBuf,                       /* Buffer size */\n  i64 iStart                      /*
      Offset of pFd to begin writing at */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:93505,1
    - Dst: sqlite3OsWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:93508,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:93515,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - p
    - pData
    - nData
    argTypes:
    - PmaWriter*
    - u8*
    - int
    assertStmts:
    - condition: ( p->iBufEnd<p->nBuffer )
      pos:
        line_end: 93514
        line_start: 93514
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 93519
      start: 93497
    functionDepth: 2
    functionLinenumber: 93497
    functionLinenumberEnd: 93519
    functionName: vdbePmaWriteBlob
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3OsWrite
    - memcpy
    linkageType: ''
    returnType: void
    signature: void vdbePmaWriteBlob(PmaWriter *p, u8 *pData, int nData)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:93532,1
    - Dst: sqlite3OsWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:93533,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:93539,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:93541,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - p
    - piEof
    argTypes:
    - PmaWriter*
    - i64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93543
      start: 93530
    functionDepth: 3
    functionLinenumber: 93530
    functionLinenumberEnd: 93543
    functionName: vdbePmaWriterFinish
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - ALWAYS
    - sqlite3OsWrite
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int vdbePmaWriterFinish(PmaWriter *p, i64 *piEof)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PutVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:93552,1
    - Dst: vdbePmaWriteBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:93553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p
    - iVal
    argTypes:
    - PmaWriter*
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93554
      start: 93549
    functionDepth: 3
    functionLinenumber: 93549
    functionLinenumberEnd: 93554
    functionName: vdbePmaWriteVarint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PutVarint
    - vdbePmaWriteBlob
    linkageType: ''
    returnType: void
    signature: void vdbePmaWriteVarint(PmaWriter *p, u64 iVal)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VarintLen
      Src: /src/nss/lib/sqlite/sqlite3.c:93578,1
    - Dst: vdbeSorterWorkDebug
      Src: /src/nss/lib/sqlite/sqlite3.c:93581,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:93582,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:93583,1
    - Dst: vdbeSorterOpenTempFile
      Src: /src/nss/lib/sqlite/sqlite3.c:93587,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:93588,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:93589,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:93590,1
    - Dst: vdbeSorterExtendFile
      Src: /src/nss/lib/sqlite/sqlite3.c:93595,1
    - Dst: vdbeSorterSort
      Src: /src/nss/lib/sqlite/sqlite3.c:93600,1
    - Dst: vdbePmaWriterInit
      Src: /src/nss/lib/sqlite/sqlite3.c:93607,1
    - Dst: vdbePmaWriteVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:93610,1
    - Dst: vdbePmaWriteVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:93613,1
    - Dst: vdbePmaWriteBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:93614,1
    - Dst: SRVAL
      Src: /src/nss/lib/sqlite/sqlite3.c:93614,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:93615,1
    - Dst: vdbePmaWriterFinish
      Src: /src/nss/lib/sqlite/sqlite3.c:93618,1
    - Dst: vdbeSorterWorkDebug
      Src: /src/nss/lib/sqlite/sqlite3.c:93621,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:93622,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:93623,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 2
    argNames:
    - pTask
    - pList
    argTypes:
    - SortSubtask*
    - SorterList*
    assertStmts:
    - condition: ( pList->szPMA>0 )
      pos:
        line_end: 93582
        line_start: 93582
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc!=SQLITE_OK || pTask->file.pFd )
      pos:
        line_end: 93587
        line_start: 93587
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTask->file.iEof==0 )
      pos:
        line_end: 93588
        line_start: 93588
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc!=SQLITE_OK || pList->pList==0 )
      pos:
        line_end: 93621
        line_start: 93621
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc!=SQLITE_OK || pTask->file.iEof==iSz )
      pos:
        line_end: 93622
        line_start: 93622
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTask->nPMA==0 )
      pos:
        line_end: 93589
        line_start: 93589
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 93625
      start: 93570
    functionDepth: 7
    functionLinenumber: 93570
    functionLinenumberEnd: 93625
    functionName: vdbeSorterListToPMA
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - vdbePmaWriterInit
    - vdbePmaWriterFinish
    - SRVAL
    - memset
    - assert
    - vdbeSorterWorkDebug
    - vdbeSorterExtendFile
    - vdbePmaWriteBlob
    - sqlite3VarintLen
    - vdbeSorterSort
    - vdbeSorterOpenTempFile
    - sqlite3_free
    - vdbePmaWriteVarint
    linkageType: ''
    returnType: int
    signature: int vdbeSorterListToPMA(SortSubtask *pTask, SorterList *pList)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: vdbePmaReaderNext
      Src: /src/nss/lib/sqlite/sqlite3.c:93643,1
    - Dst: SortSubtask*::xCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:93665,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - pMerger
    - pbEof
    argTypes:
    - MergeEngine*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93699
      start: 93634
    functionDepth: 9
    functionLinenumber: 93634
    functionLinenumberEnd: 93699
    functionName: vdbeMergeEngineStep
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - SortSubtask*::xCompare
    - vdbePmaReaderNext
    linkageType: ''
    returnType: int
    signature: "int vdbeMergeEngineStep(\n  MergeEngine *pMerger,      /* The merge
      engine to advance to the next row */\n  int *pbEof                 /* Set TRUE
      at EOF.  Set false for more content */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:93708,1
    - Dst: vdbeSorterListToPMA
      Src: /src/nss/lib/sqlite/sqlite3.c:93709,1
    - Dst: SQLITE_INT_TO_PTR
      Src: /src/nss/lib/sqlite/sqlite3.c:93711,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pCtx
    argTypes:
    - void*
    assertStmts:
    - condition: ( pTask->bDone==0 )
      pos:
        line_end: 93707
        line_start: 93707
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 93712
      start: 93705
    functionDepth: 8
    functionLinenumber: 93705
    functionLinenumberEnd: 93712
    functionName: vdbeSorterFlushThread
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - SQLITE_INT_TO_PTR
    - vdbeSorterListToPMA
    linkageType: ''
    returnType: void
    signature: void *vdbeSorterFlushThread(void *pCtx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: vdbeSorterListToPMA
      Src: /src/nss/lib/sqlite/sqlite3.c:93722,1
    - Dst: vdbeSorterJoinThread
      Src: /src/nss/lib/sqlite/sqlite3.c:93745,1
    - Dst: vdbeSorterListToPMA
      Src: /src/nss/lib/sqlite/sqlite3.c:93753,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:93759,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:93760,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:93761,1
    - Dst: sqlite3MallocSize
      Src: /src/nss/lib/sqlite/sqlite3.c:93769,1
    - Dst: sqlite3Malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:93771,1
    - Dst: vdbeSorterCreateThread
      Src: /src/nss/lib/sqlite/sqlite3.c:93775,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 1
    argNames:
    - pSorter
    argTypes:
    - VdbeSorter*
    assertStmts:
    - condition: ( pTask->pThread==0 && pTask->bDone==0 )
      pos:
        line_end: 93758
        line_start: 93758
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTask->list.pList==0 )
      pos:
        line_end: 93759
        line_start: 93759
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTask->list.aMemory==0 || pSorter->list.aMemory!=0 )
      pos:
        line_end: 93760
        line_start: 93760
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 93781
      start: 93719
    functionDepth: 8
    functionLinenumber: 93719
    functionLinenumberEnd: 93781
    functionName: vdbeSorterFlushPMA
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - vdbeSorterCreateThread
    - vdbeSorterListToPMA
    - sqlite3MallocSize
    - sqlite3Malloc
    - assert
    - vdbeSorterJoinThread
    linkageType: ''
    returnType: int
    signature: int vdbeSorterFlushPMA(VdbeSorter *pSorter)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:93798,1
    - Dst: getVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:93800,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:93809,1
    - Dst: sqlite3VarintLen
      Src: /src/nss/lib/sqlite/sqlite3.c:93828,1
    - Dst: sqlite3HeapNearlyFull
      Src: /src/nss/lib/sqlite/sqlite3.c:93835,1
    - Dst: vdbeSorterFlushPMA
      Src: /src/nss/lib/sqlite/sqlite3.c:93839,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:93842,1
    - Dst: sqlite3Realloc
      Src: /src/nss/lib/sqlite/sqlite3.c:93864,1
    - Dst: ROUND8
      Src: /src/nss/lib/sqlite/sqlite3.c:93874,1
    - Dst: sqlite3Malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:93879,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:93886,1
    - Dst: SRVAL
      Src: /src/nss/lib/sqlite/sqlite3.c:93886,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 68
    argCount: 2
    argNames:
    - pCsr
    - pVal
    argTypes:
    - VdbeCursor*
    - Mem*
    assertStmts:
    - condition: ( pCsr->eCurType==CURTYPE_SORTER )
      pos:
        line_end: 93797
        line_start: 93797
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pSorter )
      pos:
        line_end: 93808
        line_start: 93808
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc!=SQLITE_OK || pSorter->list.pList==0 )
      pos:
        line_end: 93841
        line_start: 93841
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 93891
      start: 93786
    functionDepth: 9
    functionLinenumber: 93786
    functionLinenumberEnd: 93891
    functionName: sqlite3VdbeSorterWrite
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - vdbeSorterFlushPMA
    - sqlite3Realloc
    - memcpy
    - sqlite3HeapNearlyFull
    - ROUND8
    - SRVAL
    - sqlite3Malloc
    - getVarint32
    - assert
    - sqlite3VarintLen
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3VdbeSorterWrite(\n  const VdbeCursor *pCsr,
      \        /* Sorter cursor */\n  Mem *pVal                       /* Memory cell
      containing record */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:93906,1
    - Dst: vdbeSorterPopulateDebug
      Src: /src/nss/lib/sqlite/sqlite3.c:93908,1
    - Dst: vdbePmaWriterInit
      Src: /src/nss/lib/sqlite/sqlite3.c:93910,1
    - Dst: sqlite3VarintLen
      Src: /src/nss/lib/sqlite/sqlite3.c:93920,1
    - Dst: vdbePmaWriteVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:93923,1
    - Dst: vdbePmaWriteBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:93924,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:93925,1
    - Dst: vdbeMergeEngineStep
      Src: /src/nss/lib/sqlite/sqlite3.c:93926,1
    - Dst: vdbePmaWriterFinish
      Src: /src/nss/lib/sqlite/sqlite3.c:93929,1
    - Dst: vdbeSorterPopulateDebug
      Src: /src/nss/lib/sqlite/sqlite3.c:93931,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - pIncr
    argTypes:
    - IncrMerger*
    assertStmts:
    - condition: ( pIncr->bEof==0 )
      pos:
        line_end: 93905
        line_start: 93905
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIncr->pMerger->pTask==pTask )
      pos:
        line_end: 93924
        line_start: 93924
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 93933
      start: 93898
    functionDepth: 10
    functionLinenumber: 93898
    functionLinenumberEnd: 93933
    functionName: vdbeIncrPopulate
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - vdbeMergeEngineStep
    - vdbePmaWriterFinish
    - vdbeSorterPopulateDebug
    - assert
    - vdbePmaWriteBlob
    - sqlite3VarintLen
    - vdbePmaWriterInit
    - vdbePmaWriteVarint
    linkageType: ''
    returnType: int
    signature: int vdbeIncrPopulate(IncrMerger *pIncr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SQLITE_INT_TO_PTR
      Src: /src/nss/lib/sqlite/sqlite3.c:93942,1
    - Dst: vdbeIncrPopulate
      Src: /src/nss/lib/sqlite/sqlite3.c:93942,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pCtx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93945
      start: 93940
    functionDepth: 11
    functionLinenumber: 93940
    functionLinenumberEnd: 93945
    functionName: vdbeIncrPopulateThread
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - vdbeIncrPopulate
    - SQLITE_INT_TO_PTR
    linkageType: ''
    returnType: void
    signature: void *vdbeIncrPopulateThread(void *pCtx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:93952,1
    - Dst: vdbeSorterCreateThread
      Src: /src/nss/lib/sqlite/sqlite3.c:93953,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pIncr
    argTypes:
    - IncrMerger*
    assertStmts:
    - condition: ( pIncr->bUseThread )
      pos:
        line_end: 93951
        line_start: 93951
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 93954
      start: 93950
    functionDepth: 7
    functionLinenumber: 93950
    functionLinenumberEnd: 93954
    functionName: vdbeIncrBgPopulate
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - vdbeSorterCreateThread
    linkageType: ''
    returnType: int
    signature: int vdbeIncrBgPopulate(IncrMerger *pIncr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: vdbeSorterJoinThread
      Src: /src/nss/lib/sqlite/sqlite3.c:93979,1
    - Dst: vdbeIncrBgPopulate
      Src: /src/nss/lib/sqlite/sqlite3.c:93991,1
    - Dst: vdbeIncrPopulate
      Src: /src/nss/lib/sqlite/sqlite3.c:93997,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - pIncr
    argTypes:
    - IncrMerger*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94005
      start: 93974
    functionDepth: 11
    functionLinenumber: 93974
    functionLinenumberEnd: 94005
    functionName: vdbeIncrSwap
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - vdbeIncrPopulate
    - vdbeSorterJoinThread
    - vdbeIncrBgPopulate
    linkageType: ''
    returnType: int
    signature: int vdbeIncrSwap(IncrMerger *pIncr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3FaultSim
      Src: /src/nss/lib/sqlite/sqlite3.c:94020,1
    - Dst: sqlite3MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:94020,1
    - Dst: MAX
      Src: /src/nss/lib/sqlite/sqlite3.c:94024,1
    - Dst: vdbeMergeEngineFree
      Src: /src/nss/lib/sqlite/sqlite3.c:94027,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - pTask
    - pMerger
    - ppOut
    argTypes:
    - SortSubtask*
    - MergeEngine*
    - IncrMerger**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94031
      start: 94013
    functionDepth: 6
    functionLinenumber: 94013
    functionLinenumberEnd: 94031
    functionName: vdbeIncrMergerNew
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3MallocZero
    - MAX
    - sqlite3FaultSim
    - vdbeMergeEngineFree
    linkageType: ''
    returnType: int
    signature: "int vdbeIncrMergerNew(\n  SortSubtask *pTask,     /* The thread that
      will be using the new IncrMerger */\n  MergeEngine *pMerger,   /* The MergeEngine
      that the IncrMerger will control */\n  IncrMerger **ppOut      /* Write the
      new IncrMerger here */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pIncr
    argTypes:
    - IncrMerger*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94040
      start: 94037
    functionDepth: 0
    functionLinenumber: 94037
    functionLinenumberEnd: 94040
    functionName: vdbeIncrMergerSetThreads
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void vdbeIncrMergerSetThreads(IncrMerger *pIncr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:94060,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:94081,1
    - Dst: SortSubtask*::xCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:94082,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - pMerger
    - iOut
    argTypes:
    - MergeEngine*
    - int
    assertStmts:
    - condition: ( iOut<pMerger->nTree && iOut>0 )
      pos:
        line_end: 94059
        line_start: 94059
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTask->pUnpacked!=0 )
      pos:
        line_end: 94080
        line_start: 94080
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 94093
      start: 94050
    functionDepth: 0
    functionLinenumber: 94050
    functionLinenumberEnd: 94093
    functionName: vdbeMergeEngineCompare
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - SortSubtask*::xCompare
    linkageType: ''
    returnType: void
    signature: "void vdbeMergeEngineCompare(\n  MergeEngine *pMerger,  /* Merge engine
      containing PmaReaders to compare */\n  int iOut               /* Store the result
      in pMerger->aTree[iOut] */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:94143,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:94146,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:94149,1
    - Dst: vdbePmaReaderNext
      Src: /src/nss/lib/sqlite/sqlite3.c:94162,1
    - Dst: vdbePmaReaderIncrInit
      Src: /src/nss/lib/sqlite/sqlite3.c:94164,1
    - Dst: vdbeMergeEngineCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:94170,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - pTask
    - pMerger
    - eMode
    argTypes:
    - SortSubtask*
    - MergeEngine*
    - int
    assertStmts:
    - condition: ( pMerger!=0 )
      pos:
        line_end: 94142
        line_start: 94142
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pMerger->pTask==0 )
      pos:
        line_end: 94148
        line_start: 94148
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( SQLITE_MAX_WORKER_THREADS>0 || eMode==INCRINIT_NORMAL )
      pos:
        line_end: 94145
        line_start: 94145
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 94173
      start: 94132
    functionDepth: 9
    functionLinenumber: 94132
    functionLinenumberEnd: 94173
    functionName: vdbeMergeEngineInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - vdbePmaReaderIncrInit
    - vdbeMergeEngineCompare
    - vdbePmaReaderNext
    linkageType: ''
    returnType: int
    signature: "int vdbeMergeEngineInit(\n  SortSubtask *pTask,             /* Thread
      that will run pMerger */\n  MergeEngine *pMerger,           /* MergeEngine to
      initialize */\n  int eMode                       /* One of the INCRINIT_XXX
      constants */\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:94215,1
    - Dst: vdbeMergeEngineInit
      Src: /src/nss/lib/sqlite/sqlite3.c:94217,1
    - Dst: vdbeSorterOpenTempFile
      Src: /src/nss/lib/sqlite/sqlite3.c:94226,1
    - Dst: vdbeSorterOpenTempFile
      Src: /src/nss/lib/sqlite/sqlite3.c:94228,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:94234,1
    - Dst: vdbeSorterOpenTempFile
      Src: /src/nss/lib/sqlite/sqlite3.c:94235,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:94258,1
    - Dst: vdbeIncrPopulate
      Src: /src/nss/lib/sqlite/sqlite3.c:94259,1
    - Dst: vdbePmaReaderNext
      Src: /src/nss/lib/sqlite/sqlite3.c:94264,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 2
    argNames:
    - pReadr
    - eMode
    argTypes:
    - PmaReader*
    - int
    assertStmts:
    - condition: ( SQLITE_MAX_WORKER_THREADS>0 || eMode==INCRINIT_NORMAL )
      pos:
        line_end: 94214
        line_start: 94214
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTask->file2.iEof>0 )
      pos:
        line_end: 94233
        line_start: 94233
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( eMode==INCRINIT_ROOT || eMode==INCRINIT_TASK )
      pos:
        line_end: 94257
        line_start: 94257
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 94268
      start: 94208
    functionDepth: 11
    functionLinenumber: 94208
    functionLinenumberEnd: 94268
    functionName: vdbePmaReaderIncrMergeInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - vdbeIncrPopulate
    - assert
    - vdbeMergeEngineInit
    - vdbeSorterOpenTempFile
    - vdbePmaReaderNext
    linkageType: ''
    returnType: int
    signature: int vdbePmaReaderIncrMergeInit(PmaReader *pReadr, int eMode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SQLITE_INT_TO_PTR
      Src: /src/nss/lib/sqlite/sqlite3.c:94277,1
    - Dst: vdbePmaReaderIncrMergeInit
      Src: /src/nss/lib/sqlite/sqlite3.c:94278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pCtx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94282
      start: 94275
    functionDepth: 12
    functionLinenumber: 94275
    functionLinenumberEnd: 94282
    functionName: vdbePmaReaderBgIncrInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - vdbePmaReaderIncrMergeInit
    - SQLITE_INT_TO_PTR
    linkageType: ''
    returnType: void
    signature: void *vdbePmaReaderBgIncrInit(void *pCtx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:94301,1
    - Dst: vdbeSorterCreateThread
      Src: /src/nss/lib/sqlite/sqlite3.c:94304,1
    - Dst: vdbePmaReaderIncrMergeInit
      Src: /src/nss/lib/sqlite/sqlite3.c:94308,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - pReadr
    - eMode
    argTypes:
    - PmaReader*
    - int
    assertStmts:
    - condition: ( pIncr->bUseThread==0 || eMode==INCRINIT_TASK )
      pos:
        line_end: 94300
        line_start: 94300
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 94312
      start: 94296
    functionDepth: 12
    functionLinenumber: 94296
    functionLinenumberEnd: 94312
    functionName: vdbePmaReaderIncrInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - vdbePmaReaderIncrMergeInit
    - vdbeSorterCreateThread
    linkageType: ''
    returnType: int
    signature: int vdbePmaReaderIncrInit(PmaReader *pReadr, int eMode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: vdbeMergeEngineNew
      Src: /src/nss/lib/sqlite/sqlite3.c:94337,1
    - Dst: vdbePmaReaderInit
      Src: /src/nss/lib/sqlite/sqlite3.c:94343,1
    - Dst: vdbeMergeEngineFree
      Src: /src/nss/lib/sqlite/sqlite3.c:94348,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - pTask
    - nPMA
    - piOffset
    - ppOut
    argTypes:
    - SortSubtask*
    - int
    - i64*
    - MergeEngine**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94353
      start: 94326
    functionDepth: 10
    functionLinenumber: 94326
    functionLinenumberEnd: 94353
    functionName: vdbeMergeEngineLevel0
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - vdbePmaReaderInit
    - vdbeMergeEngineNew
    - vdbeMergeEngineFree
    linkageType: ''
    returnType: int
    signature: "int vdbeMergeEngineLevel0(\n  SortSubtask *pTask,             /* Sorter
      task to read from */\n  int nPMA,                       /* Number of PMAs to
      read */\n  i64 *piOffset,                  /* IN/OUT: Readr offset in pTask->file
      */\n  MergeEngine **ppOut             /* OUT: New merge-engine */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - nPMA
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94373
      start: 94365
    functionDepth: 0
    functionLinenumber: 94365
    functionLinenumberEnd: 94373
    functionName: vdbeSorterTreeDepth
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int vdbeSorterTreeDepth(int nPMA)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vdbeIncrMergerNew
      Src: /src/nss/lib/sqlite/sqlite3.c:94396,1
    - Dst: vdbeMergeEngineNew
      Src: /src/nss/lib/sqlite/sqlite3.c:94407,1
    - Dst: vdbeIncrMergerNew
      Src: /src/nss/lib/sqlite/sqlite3.c:94411,1
    - Dst: vdbeIncrFree
      Src: /src/nss/lib/sqlite/sqlite3.c:94423,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 5
    argNames:
    - pTask
    - nDepth
    - iSeq
    - pRoot
    - pLeaf
    argTypes:
    - SortSubtask*
    - int
    - int
    - MergeEngine*
    - MergeEngine*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94426
      start: 94383
    functionDepth: 7
    functionLinenumber: 94383
    functionLinenumberEnd: 94426
    functionName: vdbeSorterAddToTree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - vdbeIncrFree
    - vdbeMergeEngineNew
    - vdbeIncrMergerNew
    linkageType: ''
    returnType: int
    signature: "int vdbeSorterAddToTree(\n  SortSubtask *pTask,             /* Task
      context */\n  int nDepth,                     /* Depth of tree according to
      TreeDepth() */\n  int iSeq,                       /* Sequence number of leaf
      within tree */\n  MergeEngine *pRoot,             /* Root of tree */\n  MergeEngine
      *pLeaf              /* Leaf to add to tree */\n)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:94451,1
    - Dst: vdbeMergeEngineNew
      Src: /src/nss/lib/sqlite/sqlite3.c:94453,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:94460,1
    - Dst: vdbeSorterTreeDepth
      Src: /src/nss/lib/sqlite/sqlite3.c:94463,1
    - Dst: vdbeMergeEngineLevel0
      Src: /src/nss/lib/sqlite/sqlite3.c:94467,1
    - Dst: vdbeMergeEngineNew
      Src: /src/nss/lib/sqlite/sqlite3.c:94471,1
    - Dst: MIN
      Src: /src/nss/lib/sqlite/sqlite3.c:94477,1
    - Dst: vdbeMergeEngineLevel0
      Src: /src/nss/lib/sqlite/sqlite3.c:94478,1
    - Dst: vdbeSorterAddToTree
      Src: /src/nss/lib/sqlite/sqlite3.c:94480,1
    - Dst: vdbeIncrMergerNew
      Src: /src/nss/lib/sqlite/sqlite3.c:94488,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:94492,1
    - Dst: vdbeMergeEngineFree
      Src: /src/nss/lib/sqlite/sqlite3.c:94496,1
    - Dst: vdbeMergeEngineFree
      Src: /src/nss/lib/sqlite/sqlite3.c:94502,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 42
    argCount: 2
    argNames:
    - pSorter
    - ppOut
    argTypes:
    - VdbeSorter*
    - MergeEngine**
    assertStmts:
    - condition: ( pSorter->bUseThreads || pSorter->nTask==1 )
      pos:
        line_end: 94450
        line_start: 94450
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTask->nPMA>0 || SQLITE_MAX_WORKER_THREADS>0 )
      pos:
        line_end: 94459
        line_start: 94459
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pMain==0 )
      pos:
        line_end: 94491
        line_start: 94491
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 94507
      start: 94439
    functionDepth: 11
    functionLinenumber: 94439
    functionLinenumberEnd: 94507
    functionName: vdbeSorterMergeTreeBuild
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - vdbeSorterTreeDepth
    - vdbeSorterAddToTree
    - vdbeMergeEngineNew
    - vdbeIncrMergerNew
    - assert
    - vdbeMergeEngineLevel0
    - MIN
    - vdbeMergeEngineFree
    linkageType: ''
    returnType: int
    signature: "int vdbeSorterMergeTreeBuild(\n  VdbeSorter *pSorter,       /* The
      VDBE cursor that implements the sort */\n  MergeEngine **ppOut        /* Write
      the MergeEngine here */\n)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: vdbeSorterGetCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:94525,1
    - Dst: vdbeSorterMergeTreeBuild
      Src: /src/nss/lib/sqlite/sqlite3.c:94531,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:94534,1
    - Dst: vdbeSortAllocUnpacked
      Src: /src/nss/lib/sqlite/sqlite3.c:94539,1
    - Dst: sqlite3DbMallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:94541,1
    - Dst: vdbeIncrMergerNew
      Src: /src/nss/lib/sqlite/sqlite3.c:94546,1
    - Dst: vdbeIncrMergerSetThreads
      Src: /src/nss/lib/sqlite/sqlite3.c:94548,1
    - Dst: vdbeIncrMergerSetThreads
      Src: /src/nss/lib/sqlite/sqlite3.c:94552,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:94553,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:94567,1
    - Dst: vdbePmaReaderIncrInit
      Src: /src/nss/lib/sqlite/sqlite3.c:94571,1
    - Dst: vdbePmaReaderIncrMergeInit
      Src: /src/nss/lib/sqlite/sqlite3.c:94577,1
    - Dst: vdbeMergeEngineInit
      Src: /src/nss/lib/sqlite/sqlite3.c:94582,1
    - Dst: vdbeMergeEngineFree
      Src: /src/nss/lib/sqlite/sqlite3.c:94589,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 45
    argCount: 1
    argNames:
    - pSorter
    argTypes:
    - VdbeSorter*
    assertStmts:
    - condition: ( pSorter->bUseThreads==0 || pSorter->nTask>1 )
      pos:
        line_end: 94533
        line_start: 94533
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIncr->pTask!=pLast )
      pos:
        line_end: 94552
        line_start: 94552
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( p->pIncr==0 || (\n                (p->pIncr->pTask==&pSorter->aTask[iTask])
        \            /* a */\n             && (iTask!=pSorter->nTask-1 || p->pIncr->bUseThread==0)
        \ /* b */\n            ))"
      pos:
        line_end: 94569
        line_start: 94566
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 94592
      start: 94518
    functionDepth: 13
    functionLinenumber: 94518
    functionLinenumberEnd: 94592
    functionName: vdbeSorterSetupMerge
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - vdbeIncrMergerSetThreads
    - vdbeSorterMergeTreeBuild
    - vdbeSorterGetCompare
    - vdbePmaReaderIncrInit
    - vdbeIncrMergerNew
    - assert
    - vdbeMergeEngineInit
    - vdbePmaReaderIncrMergeInit
    - vdbeSortAllocUnpacked
    - sqlite3DbMallocZero
    - vdbeMergeEngineFree
    linkageType: ''
    returnType: int
    signature: int vdbeSorterSetupMerge(VdbeSorter *pSorter)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:94604,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:94606,1
    - Dst: vdbeSorterSort
      Src: /src/nss/lib/sqlite/sqlite3.c:94614,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:94625,1
    - Dst: vdbeSorterFlushPMA
      Src: /src/nss/lib/sqlite/sqlite3.c:94626,1
    - Dst: vdbeSorterJoinAll
      Src: /src/nss/lib/sqlite/sqlite3.c:94629,1
    - Dst: vdbeSorterRewindDebug
      Src: /src/nss/lib/sqlite/sqlite3.c:94631,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:94635,1
    - Dst: vdbeSorterSetupMerge
      Src: /src/nss/lib/sqlite/sqlite3.c:94637,1
    - Dst: vdbeSorterRewindDebug
      Src: /src/nss/lib/sqlite/sqlite3.c:94641,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 2
    argNames:
    - pCsr
    - pbEof
    argTypes:
    - VdbeCursor*
    - int*
    assertStmts:
    - condition: ( pCsr->eCurType==CURTYPE_SORTER )
      pos:
        line_end: 94603
        line_start: 94603
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pSorter )
      pos:
        line_end: 94605
        line_start: 94605
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pSorter->list.pList )
      pos:
        line_end: 94624
        line_start: 94624
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pSorter->pReader==0 )
      pos:
        line_end: 94634
        line_start: 94634
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 94643
      start: 94600
    functionDepth: 14
    functionLinenumber: 94600
    functionLinenumberEnd: 94643
    functionName: sqlite3VdbeSorterRewind
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - vdbeSorterFlushPMA
    - vdbeSorterRewindDebug
    - assert
    - vdbeSorterSetupMerge
    - vdbeSorterJoinAll
    - vdbeSorterSort
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeSorterRewind(const VdbeCursor *pCsr, int
      *pbEof)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:94656,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:94658,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:94660,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:94661,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:94662,1
    - Dst: vdbePmaReaderNext
      Src: /src/nss/lib/sqlite/sqlite3.c:94665,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:94671,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:94672,1
    - Dst: vdbeMergeEngineStep
      Src: /src/nss/lib/sqlite/sqlite3.c:94673,1
    - Dst: vdbeSorterRecordFree
      Src: /src/nss/lib/sqlite/sqlite3.c:94680,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 2
    argNames:
    - db
    - pCsr
    argTypes:
    - sqlite3*
    - VdbeCursor*
    assertStmts:
    - condition: ( pCsr->eCurType==CURTYPE_SORTER )
      pos:
        line_end: 94655
        line_start: 94655
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pSorter->bUseThreads==1 || pSorter->pMerger )
      pos:
        line_end: 94661
        line_start: 94661
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pSorter->pReader==0 || pSorter->pMerger==0 )
      pos:
        line_end: 94659
        line_start: 94659
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pSorter->bUsePMA || (pSorter->pReader==0 && pSorter->pMerger==0)
        )
      pos:
        line_end: 94657
        line_start: 94657
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pSorter->bUseThreads==0 || pSorter->pReader )
      pos:
        line_end: 94660
        line_start: 94660
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pSorter->pMerger!=0 )
      pos:
        line_end: 94670
        line_start: 94670
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pSorter->pMerger->pTask==(&pSorter->aTask[0]) )
      pos:
        line_end: 94671
        line_start: 94671
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 94684
      start: 94652
    functionDepth: 10
    functionLinenumber: 94652
    functionLinenumberEnd: 94684
    functionName: sqlite3VdbeSorterNext
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - vdbeMergeEngineStep
    - vdbeSorterRecordFree
    - vdbePmaReaderNext
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeSorterNext(sqlite3 *db, const VdbeCursor
      *pCsr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SRVAL
      Src: /src/nss/lib/sqlite/sqlite3.c:94709,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - pSorter
    - pnKey
    argTypes:
    - VdbeSorter*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94712
      start: 94690
    functionDepth: 1
    functionLinenumber: 94690
    functionLinenumberEnd: 94712
    functionName: vdbeSorterRowkey
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - SRVAL
    linkageType: ''
    returnType: void
    signature: "void *vdbeSorterRowkey(\n  const VdbeSorter *pSorter,      /* Sorter
      object */\n  int *pnKey                      /* OUT: Size of current key in
      bytes */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:94721,1
    - Dst: vdbeSorterRowkey
      Src: /src/nss/lib/sqlite/sqlite3.c:94723,1
    - Dst: sqlite3VdbeMemClearAndResize
      Src: /src/nss/lib/sqlite/sqlite3.c:94724,1
    - Dst: MemSetTypeFlag
      Src: /src/nss/lib/sqlite/sqlite3.c:94728,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:94729,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - pCsr
    - pOut
    argTypes:
    - VdbeCursor*
    - Mem*
    assertStmts:
    - condition: ( pCsr->eCurType==CURTYPE_SORTER )
      pos:
        line_end: 94720
        line_start: 94720
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 94732
      start: 94717
    functionDepth: 11
    functionLinenumber: 94717
    functionLinenumberEnd: 94732
    functionName: sqlite3VdbeSorterRowkey
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - memcpy
    - vdbeSorterRowkey
    - assert
    - sqlite3VdbeMemClearAndResize
    - MemSetTypeFlag
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VdbeSorterRowkey(const VdbeCursor *pCsr, Mem
      *pOut)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:94762,1
    - Dst: sqlite3VdbeAllocUnpackedRecord
      Src: /src/nss/lib/sqlite/sqlite3.c:94767,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:94771,1
    - Dst: vdbeSorterRowkey
      Src: /src/nss/lib/sqlite/sqlite3.c:94773,1
    - Dst: sqlite3VdbeRecordUnpack
      Src: /src/nss/lib/sqlite/sqlite3.c:94774,1
    - Dst: sqlite3VdbeRecordCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:94782,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - pCsr
    - pVal
    - nKeyCol
    - pRes
    argTypes:
    - VdbeCursor*
    - Mem*
    - int
    - int*
    assertStmts:
    - condition: ( pCsr->eCurType==CURTYPE_SORTER )
      pos:
        line_end: 94761
        line_start: 94761
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( r2->nField==nKeyCol )
      pos:
        line_end: 94770
        line_start: 94770
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 94784
      start: 94750
    functionDepth: 17
    functionLinenumber: 94750
    functionLinenumberEnd: 94784
    functionName: sqlite3VdbeSorterCompare
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3VdbeAllocUnpackedRecord
    - vdbeSorterRowkey
    - assert
    - sqlite3VdbeRecordCompare
    - sqlite3VdbeRecordUnpack
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3VdbeSorterCompare(\n  const VdbeCursor *pCsr,
      \        /* Sorter cursor */\n  Mem *pVal,                      /* Value to
      compare to current sorter key */\n  int nKeyCol,                    /* Compare
      this many columns */\n  int *pRes                       /* OUT: Result of comparison
      */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - nChunkSize
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94841
      start: 94840
    functionDepth: 0
    functionLinenumber: 94840
    functionLinenumberEnd: 94841
    functionName: fileChunkSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fileChunkSize(nChunkSize)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:94893,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:94894,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:94898,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:94905,1
    - Dst: MIN
      Src: /src/nss/lib/sqlite/sqlite3.c:94911,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:94912,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 4
    argNames:
    - pJfd
    - zBuf
    - iAmt
    - iOfst
    argTypes:
    - sqlite3_file*
    - void*
    - int
    - sqlite_int64
    assertStmts:
    - condition: ( (iAmt+iOfst)<=p->endpoint.iOffset )
      pos:
        line_end: 94892
        line_start: 94892
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pChunk!=0 )
      pos:
        line_end: 94904
        line_start: 94904
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->readpoint.iOffset==0 || p->readpoint.pChunk!=0 )
      pos:
        line_end: 94893
        line_start: 94893
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 94921
      start: 94874
    functionDepth: 1
    functionLinenumber: 94874
    functionLinenumberEnd: 94921
    functionName: memjrnlRead
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - ALWAYS
    - memcpy
    - MIN
    linkageType: ''
    returnType: int
    signature: "int memjrnlRead(\n  sqlite3_file *pJfd,    /* The journal file from
      which to read */\n  void *zBuf,            /* Put the results here */\n  int
      iAmt,              /* Number of bytes to read */\n  sqlite_int64 iOfst     /*
      Begin reading at this offset */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:94931,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - MemJournal*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94934
      start: 94926
    functionDepth: 3
    functionLinenumber: 94926
    functionLinenumberEnd: 94934
    functionName: memjrnlFreeChunks
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void memjrnlFreeChunks(MemJournal *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:94944,1
    - Dst: sqlite3OsOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:94945,1
    - Dst: sqlite3OsWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:94954,1
    - Dst: memjrnlFreeChunks
      Src: /src/nss/lib/sqlite/sqlite3.c:94960,1
    - Dst: sqlite3OsClose
      Src: /src/nss/lib/sqlite/sqlite3.c:94968,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - p
    argTypes:
    - MemJournal*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94972
      start: 94939
    functionDepth: 4
    functionLinenumber: 94939
    functionLinenumberEnd: 94972
    functionName: memjrnlCreateFile
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsWrite
    - memjrnlFreeChunks
    - sqlite3OsClose
    - memset
    - sqlite3OsOpen
    linkageType: ''
    returnType: int
    signature: int memjrnlCreateFile(MemJournal *p)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memjrnlCreateFile
      Src: /src/nss/lib/sqlite/sqlite3.c:94991,1
    - Dst: sqlite3OsWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:94993,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:95005,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:95009,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:95010,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:95013,1
    - Dst: MIN
      Src: /src/nss/lib/sqlite/sqlite3.c:95019,1
    - Dst: sqlite3_malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:95023,1
    - Dst: fileChunkSize
      Src: /src/nss/lib/sqlite/sqlite3.c:95023,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:95029,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:95032,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:95038,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 4
    argNames:
    - pJfd
    - zBuf
    - iAmt
    - iOfst
    argTypes:
    - sqlite3_file*
    - void*
    - int
    - sqlite_int64
    assertStmts:
    - condition: ( p->nChunkSize>iAmt )
      pos:
        line_end: 95008
        line_start: 95008
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iOfst==p->endpoint.iOffset || iOfst==0 )
      pos:
        line_end: 95004
        line_start: 95004
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iOfst>0 || p->pFirst==0 )
      pos:
        line_end: 95012
        line_start: 95012
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->pFirst )
      pos:
        line_end: 95028
        line_start: 95028
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !p->pFirst )
      pos:
        line_end: 95031
        line_start: 95031
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 95048
      start: 94978
    functionDepth: 6
    functionLinenumber: 94978
    functionLinenumberEnd: 95048
    functionName: memjrnlWrite
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsWrite
    - memcpy
    - sqlite3_malloc
    - fileChunkSize
    - memjrnlCreateFile
    - assert
    - MIN
    linkageType: ''
    returnType: int
    signature: "int memjrnlWrite(\n  sqlite3_file *pJfd,    /* The journal file into
      which to write */\n  const void *zBuf,      /* Take data to be written from
      here */\n  int iAmt,              /* Number of bytes to write */\n  sqlite_int64
      iOfst     /* Begin writing at this offset into the file */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:95059,1
    - Dst: memjrnlFreeChunks
      Src: /src/nss/lib/sqlite/sqlite3.c:95060,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - pJfd
    - size
    argTypes:
    - sqlite3_file*
    - sqlite_int64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95068
      start: 95057
    functionDepth: 4
    functionLinenumber: 95057
    functionLinenumberEnd: 95068
    functionName: memjrnlTruncate
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memjrnlFreeChunks
    - ALWAYS
    linkageType: ''
    returnType: int
    signature: int memjrnlTruncate(sqlite3_file *pJfd, sqlite_int64 size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memjrnlFreeChunks
      Src: /src/nss/lib/sqlite/sqlite3.c:95075,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pJfd
    argTypes:
    - sqlite3_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95077
      start: 95073
    functionDepth: 4
    functionLinenumber: 95073
    functionLinenumberEnd: 95077
    functionName: memjrnlClose
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memjrnlFreeChunks
    linkageType: ''
    returnType: int
    signature: int memjrnlClose(sqlite3_file *pJfd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER2
      Src: /src/nss/lib/sqlite/sqlite3.c:95086,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pJfd
    - flags
    argTypes:
    - sqlite3_file*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95088
      start: 95085
    functionDepth: 1
    functionLinenumber: 95085
    functionLinenumberEnd: 95088
    functionName: memjrnlSync
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER2
    linkageType: ''
    returnType: int
    signature: int memjrnlSync(sqlite3_file *pJfd, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pJfd
    - pSize
    argTypes:
    - sqlite3_file*
    - sqlite_int64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95097
      start: 95093
    functionDepth: 0
    functionLinenumber: 95093
    functionLinenumberEnd: 95097
    functionName: memjrnlFileSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int memjrnlFileSize(sqlite3_file *pJfd, sqlite_int64 *pSize)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:95149,1
    - Dst: sqlite3OsOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:95151,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:95158,1
    - Dst: fileChunkSize
      Src: /src/nss/lib/sqlite/sqlite3.c:95158,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 5
    argNames:
    - pVfs
    - zName
    - pJfd
    - flags
    - nSpill
    argTypes:
    - sqlite3_vfs*
    - char*
    - sqlite3_file*
    - int
    - int
    assertStmts:
    - condition: ( MEMJOURNAL_DFLT_FILECHUNKSIZE==fileChunkSize(p->nChunkSize) )
      pos:
        line_end: 95157
        line_start: 95157
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 95167
      start: 95136
    functionDepth: 2
    functionLinenumber: 95136
    functionLinenumberEnd: 95167
    functionName: sqlite3JournalOpen
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - memset
    - assert
    - fileChunkSize
    - sqlite3OsOpen
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3JournalOpen(\n  sqlite3_vfs *pVfs,         /*
      The VFS to use for actual file I/O */\n  const char *zName,         /* Name
      of the journal file */\n  sqlite3_file *pJfd,        /* Preallocated, blank
      file handle */\n  int flags,                 /* Opening flags */\n  int nSpill
      \                /* Bytes buffered before opening the file */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3JournalOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:95173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pJfd
    argTypes:
    - sqlite3_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95174
      start: 95172
    functionDepth: 3
    functionLinenumber: 95172
    functionLinenumberEnd: 95174
    functionName: sqlite3MemJournalOpen
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3JournalOpen
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3MemJournalOpen(sqlite3_file *pJfd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NEVER
      Src: /src/nss/lib/sqlite/sqlite3.c:95194,1
    - Dst: memjrnlCreateFile
      Src: /src/nss/lib/sqlite/sqlite3.c:95200,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - pJfd
    argTypes:
    - sqlite3_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95203
      start: 95184
    functionDepth: 5
    functionLinenumber: 95184
    functionLinenumberEnd: 95203
    functionName: sqlite3JournalCreate
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - NEVER
    - memjrnlCreateFile
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3JournalCreate(sqlite3_file *pJfd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95213
      start: 95211
    functionDepth: 0
    functionLinenumber: 95211
    functionLinenumberEnd: 95213
    functionName: sqlite3JournalIsInMemory
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3JournalIsInMemory(sqlite3_file *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAX
      Src: /src/nss/lib/sqlite/sqlite3.c:95220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pVfs
    argTypes:
    - sqlite3_vfs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95221
      start: 95219
    functionDepth: 0
    functionLinenumber: 95219
    functionLinenumberEnd: 95221
    functionName: sqlite3JournalSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - MAX
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3JournalSize(sqlite3_vfs *pVfs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3WalkExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:95252,1
    - Dst: sqlite3WalkExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:95253,1
    - Dst: sqlite3WalkExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:95254,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - pWalker
    - pList
    argTypes:
    - Walker*
    - Window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95257
      start: 95249
    functionDepth: 1
    functionLinenumber: 95249
    functionLinenumberEnd: 95257
    functionName: walkWindowList
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3WalkExpr
    - sqlite3WalkExprList
    linkageType: ''
    returnType: int
    signature: int walkWindowList(Walker *pWalker, Window *pList)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:95281,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:95281,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:95282,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:95282,1
    - Dst: Walker*::xExprCallback
      Src: /src/nss/lib/sqlite/sqlite3.c:95284,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:95286,1
    - Dst: walkExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:95287,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:95288,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:95292,1
    - Dst: sqlite3WalkSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:95293,1
    - Dst: sqlite3WalkExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:95295,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:95298,1
    - Dst: walkWindowList
      Src: /src/nss/lib/sqlite/sqlite3.c:95299,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 31
    argCount: 2
    argNames:
    - pWalker
    - pExpr
    argTypes:
    - Walker*
    - Expr*
    assertStmts:
    - condition: ( pExpr->x.pList==0 || pExpr->pRight==0 )
      pos:
        line_end: 95287
        line_start: 95287
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 95306
      start: 95279
    functionDepth: 2
    functionLinenumber: 95279
    functionLinenumberEnd: 95306
    functionName: walkExpr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3WalkSelect
    - Walker*::xExprCallback
    - sqlite3WalkExprList
    - assert
    - walkWindowList
    - walkExpr
    - ExprHasProperty
    - testcase
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: SQLITE_NOINLINE walkExpr(Walker *pWalker, Expr *pExpr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: walkExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:95308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pWalker
    - pExpr
    argTypes:
    - Walker*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95309
      start: 95307
    functionDepth: 3
    functionLinenumber: 95307
    functionLinenumberEnd: 95309
    functionName: sqlite3WalkExpr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - walkExpr
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WalkExpr(Walker *pWalker, Expr *pExpr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3WalkExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:95320,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - pWalker
    - p
    argTypes:
    - Walker*
    - ExprList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95324
      start: 95315
    functionDepth: 4
    functionLinenumber: 95315
    functionLinenumberEnd: 95324
    functionName: sqlite3WalkExprList
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3WalkExpr
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WalkExprList(Walker *pWalker, ExprList *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3WalkExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:95333,1
    - Dst: sqlite3WalkExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:95334,1
    - Dst: sqlite3WalkExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:95335,1
    - Dst: sqlite3WalkExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:95336,1
    - Dst: sqlite3WalkExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:95337,1
    - Dst: sqlite3WalkExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:95338,1
    - Dst: walkWindowList
      Src: /src/nss/lib/sqlite/sqlite3.c:95343,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:95344,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 2
    argNames:
    - pWalker
    - p
    argTypes:
    - Walker*
    - Select*
    assertStmts:
    - condition: ( rc==WRC_Continue )
      pos:
        line_end: 95343
        line_start: 95343
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 95350
      start: 95332
    functionDepth: 5
    functionLinenumber: 95332
    functionLinenumberEnd: 95350
    functionName: sqlite3WalkSelectExpr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - walkWindowList
    - sqlite3WalkExpr
    - assert
    - sqlite3WalkExprList
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WalkSelectExpr(Walker *pWalker, Select *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:95365,1
    - Dst: sqlite3WalkSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:95367,1
    - Dst: sqlite3WalkExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:95371,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - pWalker
    - p
    argTypes:
    - Walker*
    - Select*
    assertStmts:
    - condition: ( pSrc!=0 )
      pos:
        line_end: 95364
        line_start: 95364
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 95377
      start: 95359
    functionDepth: 5
    functionLinenumber: 95359
    functionLinenumberEnd: 95377
    functionName: sqlite3WalkSelectFrom
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3WalkExprList
    - sqlite3WalkSelect
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WalkSelectFrom(Walker *pWalker, Select *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Walker*::xSelectCallback
      Src: /src/nss/lib/sqlite/sqlite3.c:95401,1
    - Dst: sqlite3WalkSelectExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:95403,1
    - Dst: sqlite3WalkSelectFrom
      Src: /src/nss/lib/sqlite/sqlite3.c:95404,1
    - Dst: Walker*::xSelectCallback2
      Src: /src/nss/lib/sqlite/sqlite3.c:95409,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - pWalker
    - p
    argTypes:
    - Walker*
    - Select*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95414
      start: 95396
    functionDepth: 6
    functionLinenumber: 95396
    functionLinenumberEnd: 95414
    functionName: sqlite3WalkSelect
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - Walker*::xSelectCallback2
    - sqlite3WalkSelectExpr
    - sqlite3WalkSelectFrom
    - Walker*::xSelectCallback
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WalkSelect(Walker *pWalker, Select *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pWalker
    - pExpr
    argTypes:
    - Walker*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95448
      start: 95445
    functionDepth: 0
    functionLinenumber: 95445
    functionLinenumberEnd: 95448
    functionName: incrAggDepth
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int incrAggDepth(Walker *pWalker, Expr *pExpr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:95452,1
    - Dst: sqlite3WalkExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:95455,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - pExpr
    - N
    argTypes:
    - Expr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95457
      start: 95449
    functionDepth: 4
    functionLinenumber: 95449
    functionLinenumberEnd: 95457
    functionName: incrAggFunctionDepth
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3WalkExpr
    linkageType: ''
    returnType: void
    signature: void incrAggFunctionDepth(Expr *pExpr, int N)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:95490,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:95492,1
    - Dst: sqlite3ExprDup
      Src: /src/nss/lib/sqlite/sqlite3.c:95494,1
    - Dst: incrAggFunctionDepth
      Src: /src/nss/lib/sqlite/sqlite3.c:95496,1
    - Dst: sqlite3ExprAddCollateString
      Src: /src/nss/lib/sqlite/sqlite3.c:95498,1
    - Dst: ExprSetProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:95508,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:95509,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:95510,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:95511,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:95512,1
    - Dst: sqlite3DbStrDup
      Src: /src/nss/lib/sqlite/sqlite3.c:95513,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:95516,1
    - Dst: ExprSetProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:95518,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 6
    argNames:
    - pParse
    - pEList
    - iCol
    - pExpr
    - zType
    - nSubquery
    argTypes:
    - Parse*
    - ExprList*
    - int
    - Expr*
    - char*
    - int
    assertStmts:
    - condition: ( iCol>=0 && iCol<pEList->nExpr )
      pos:
        line_end: 95489
        line_start: 95489
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOrig!=0 )
      pos:
        line_end: 95491
        line_start: 95491
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pExpr->flags & (EP_Reduced|EP_TokenOnly))==0 )
      pos:
        line_end: 95511
        line_start: 95511
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 95519
      start: 95478
    functionDepth: 7
    functionLinenumber: 95478
    functionLinenumberEnd: 95519
    functionName: resolveAlias
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ExprSetProperty
    - memcpy
    - sqlite3DbStrDup
    - sqlite3DbFree
    - sqlite3ExprAddCollateString
    - assert
    - incrAggFunctionDepth
    - sqlite3ExprDelete
    - sqlite3ExprDup
    - ExprHasProperty
    linkageType: ''
    returnType: void
    signature: "void resolveAlias(\n  Parse *pParse,         /* Parsing context */\n
      \ ExprList *pEList,      /* A result set */\n  int iCol,              /* A column
      in the result set.  0..pEList->nExpr-1 */\n  Expr *pExpr,           /* Transform
      this into an alias to the result set */\n  const char *zType,     /* \"GROUP\"
      or \"ORDER\" or \"\" */\n  int nSubquery          /* Number of subqueries that
      the label is moving */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:95532,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - pUsing
    - zCol
    argTypes:
    - IdList*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95536
      start: 95528
    functionDepth: 1
    functionLinenumber: 95528
    functionLinenumberEnd: 95536
    functionName: nameInUsingClause
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3StrICmp
    linkageType: ''
    returnType: int
    signature: int nameInUsingClause(IdList *pUsing, const char *zCol)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:95552,1
    - Dst: sqlite3StrNICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:95553,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:95557,1
    - Dst: sqlite3StrNICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:95558,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:95562,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 17
    argCount: 4
    argNames:
    - zSpan
    - zCol
    - zTab
    - zDb
    argTypes:
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95566
      start: 95545
    functionDepth: 1
    functionLinenumber: 95545
    functionLinenumberEnd: 95566
    functionName: sqlite3MatchSpanName
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ALWAYS
    - sqlite3StrNICmp
    - sqlite3StrICmp
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3MatchSpanName(\n  const char *zSpan,\n  const
      char *zCol,\n  const char *zTab,\n  const char *zDb\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3WritableSchema
      Src: /src/nss/lib/sqlite/sqlite3.c:95575,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - db
    - pTopNC
    argTypes:
    - sqlite3*
    - NameContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95583
      start: 95571
    functionDepth: 1
    functionLinenumber: 95571
    functionLinenumberEnd: 95583
    functionName: areDoubleQuotedStringsEnabled
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3WritableSchema
    linkageType: ''
    returnType: int
    signature: int areDoubleQuotedStringsEnabled(sqlite3 *db, NameContext *pTopNC)
  - BBCount: 53
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:95633,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:95634,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:95635,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:95635,1
    - Dst: ExprSetVVAProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:95639,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:95646,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:95647,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:95656,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:95657,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:95666,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:95674,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:95675,1
    - Dst: sqlite3MatchSpanName
      Src: /src/nss/lib/sqlite/sqlite3.c:95680,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:95695,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:95696,1
    - Dst: sqlite3RenameTokenRemap
      Src: /src/nss/lib/sqlite/sqlite3.c:95700,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:95707,1
    - Dst: nameInUsingClause
      Src: /src/nss/lib/sqlite/sqlite3.c:95714,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:95728,1
    - Dst: ExprSetProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:95730,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:95746,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:95747,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:95750,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:95759,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:95771,1
    - Dst: sqlite3IsRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:95778,1
    - Dst: VisibleRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:95778,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:95786,1
    - Dst: ExprSetProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:95794,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:95803,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:95804,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:95807,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:95808,1
    - Dst: sqlite3IsRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:95828,1
    - Dst: VisibleRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:95829,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:95859,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:95862,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:95864,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:95865,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:95866,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:95868,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:95869,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:95872,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:95873,1
    - Dst: sqlite3ExprVectorSize
      Src: /src/nss/lib/sqlite/sqlite3.c:95876,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:95877,1
    - Dst: resolveAlias
      Src: /src/nss/lib/sqlite/sqlite3.c:95880,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:95883,1
    - Dst: sqlite3RenameTokenRemap
      Src: /src/nss/lib/sqlite/sqlite3.c:95885,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:95912,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:95913,1
    - Dst: areDoubleQuotedStringsEnabled
      Src: /src/nss/lib/sqlite/sqlite3.c:95914,1
    - Dst: sqlite3_log
      Src: /src/nss/lib/sqlite/sqlite3.c:95930,1
    - Dst: sqlite3VdbeAddDblquoteStr
      Src: /src/nss/lib/sqlite/sqlite3.c:95933,1
    - Dst: sqlite3ExprIdToTrueFalse
      Src: /src/nss/lib/sqlite/sqlite3.c:95939,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:95952,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:95954,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:95956,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:95970,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:95974,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:95980,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:95982,1
    - Dst: ExprSetProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:95985,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:95988,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:95989,1
    - Dst: sqlite3AuthRead
      Src: /src/nss/lib/sqlite/sqlite3.c:95990,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:95995,1
    CyclomaticComplexity: 102
    EdgeCount: 102
    ICount: 249
    argCount: 6
    argNames:
    - pParse
    - zDb
    - zTab
    - zCol
    - pNC
    - pExpr
    argTypes:
    - Parse*
    - char*
    - char*
    - char*
    - NameContext*
    - Expr*
    assertStmts:
    - condition: ( pNC )
      pos:
        line_end: 95632
        line_start: 95632
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( zTabName!=0 )
      pos:
        line_end: 95694
        line_start: 95694
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTab->nCol>0 )
      pos:
        line_end: 95674
        line_start: 95674
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pExpr->pLeft==0 && pExpr->pRight==0 )
      pos:
        line_end: 95863
        line_start: 95863
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( zTab==0 && zDb==0 )
      pos:
        line_end: 95882
        line_start: 95882
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pNC && cnt==0 )
      pos:
        line_end: 95665
        line_start: 95665
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( op==TK_DELETE || op==TK_UPDATE || op==TK_INSERT )
      pos:
        line_end: 95745
        line_start: 95745
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pEList!=0 )
      pos:
        line_end: 95858
        line_start: 95858
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pExpr->x.pSelect==0 )
      pos:
        line_end: 95865
        line_start: 95865
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pNC!=0 )
      pos:
        line_end: 95987
        line_start: 95987
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !ExprHasProperty(pExpr, EP_TokenOnly|EP_Reduced) )
      pos:
        line_end: 95634
        line_start: 95634
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( zCol )
      pos:
        line_end: 95633
        line_start: 95633
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTab!=0 && pTab->zName!=0 )
      pos:
        line_end: 95673
        line_start: 95673
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pMatch->fg.jointype & JT_RIGHT)==0 )
      pos:
        line_end: 95727
        line_start: 95727
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pMatch->iCursor==pExpr->iTable )
      pos:
        line_end: 95973
        line_start: 95973
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( db->aDb[i].zDbSName )
      pos:
        line_end: 95655
        line_start: 95655
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pExpr->op==TK_ID )
      pos:
        line_end: 95911
        line_start: 95911
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pExpr->x.pList==0 )
      pos:
        line_end: 95864
        line_start: 95864
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTopNC!=0 )
      pos:
        line_end: 95994
        line_start: 95994
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 96004
      start: 95612
    functionDepth: 10
    functionLinenumber: 95612
    functionLinenumberEnd: 96004
    functionName: lookupName
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ExprSetVVAProperty
    - sqlite3VdbeAddDblquoteStr
    - VisibleRowid
    - testcase
    - ExprSetProperty
    - sqlite3StrICmp
    - sqlite3_log
    - assert
    - sqlite3IsRowid
    - ExprHasProperty
    - sqlite3ExprIdToTrueFalse
    - sqlite3MatchSpanName
    - sqlite3RenameTokenRemap
    - sqlite3ExprVectorSize
    - sqlite3ExprDelete
    - nameInUsingClause
    - sqlite3AuthRead
    - resolveAlias
    - areDoubleQuotedStringsEnabled
    - sqlite3ErrorMsg
    linkageType: ''
    returnType: int
    signature: "int lookupName(\n  Parse *pParse,       /* The parsing context */\n
      \ const char *zDb,     /* Name of the database containing table, or NULL */\n
      \ const char *zTab,    /* Name of table containing column, or NULL */\n  const
      char *zCol,    /* Name of the column. */\n  NameContext *pNC,    /* The name
      context used to resolve the name */\n  Expr *pExpr          /* Make this EXPR
      node point to the selected column */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:96011,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:96020,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:96021,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - db
    - pSrc
    - iSrc
    - iCol
    argTypes:
    - sqlite3*
    - SrcList*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96026
      start: 96010
    functionDepth: 1
    functionLinenumber: 96010
    functionLinenumberEnd: 96026
    functionName: sqlite3CreateColumnExpr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ExprAlloc
    - testcase
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3CreateColumnExpr(sqlite3 *db, SrcList *pSrc,
      int iSrc, int iCol)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:96038,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:96045,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - pParse
    - pNC
    - zMsg
    - validMask
    argTypes:
    - Parse*
    - NameContext*
    - char*
    - int
    assertStmts:
    - condition: ( (validMask&~(NC_IsCheck|NC_PartIdx|NC_IdxExpr))==0 )
      pos:
        line_end: 96037
        line_start: 96037
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 96047
      start: 96032
    functionDepth: 10
    functionLinenumber: 96032
    functionLinenumberEnd: 96047
    functionName: notValid
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3ErrorMsg
    linkageType: ''
    returnType: void
    signature: "void notValid(\n  Parse *pParse,       /* Leave error message here
      */\n  NameContext *pNC,    /* The name context */\n  const char *zMsg,    /*
      Type of error */\n  int validMask        /* Set of contexts for which prohibited
      */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3AtoF
      Src: /src/nss/lib/sqlite/sqlite3.c:96057,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:96057,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:96058,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - Expr*
    assertStmts:
    - condition: ( r>=0.0 )
      pos:
        line_end: 96057
        line_start: 96057
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 96061
      start: 96054
    functionDepth: 2
    functionLinenumber: 96054
    functionLinenumberEnd: 96061
    functionName: exprProbability
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3Strlen30
    - sqlite3AtoF
    linkageType: ''
    returnType: int
    signature: int exprProbability(Expr *p)
  - BBCount: 52
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:96079,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:96081,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:96088,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:96102,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:96104,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:96104,1
    - Dst: notValid
      Src: /src/nss/lib/sqlite/sqlite3.c:96136,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:96141,1
    - Dst: sqlite3RenameTokenRemap
      Src: /src/nss/lib/sqlite/sqlite3.c:96149,1
    - Dst: sqlite3RenameTokenRemap
      Src: /src/nss/lib/sqlite/sqlite3.c:96150,1
    - Dst: lookupName
      Src: /src/nss/lib/sqlite/sqlite3.c:96153,1
    - Dst: ENC
      Src: /src/nss/lib/sqlite/sqlite3.c:96167,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:96170,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:96170,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:96172,1
    - Dst: sqlite3FindFunction
      Src: /src/nss/lib/sqlite/sqlite3.c:96173,1
    - Dst: sqlite3FindFunction
      Src: /src/nss/lib/sqlite/sqlite3.c:96175,1
    - Dst: ExprSetProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:96184,1
    - Dst: exprProbability
      Src: /src/nss/lib/sqlite/sqlite3.c:96186,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:96188,1
    - Dst: sqlite3AuthCheck
      Src: /src/nss/lib/sqlite/sqlite3.c:96208,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:96211,1
    - Dst: ExprSetProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:96224,1
    - Dst: notValid
      Src: /src/nss/lib/sqlite/sqlite3.c:96230,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:96246,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:96250,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:96251,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:96266,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:96272,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:96282,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:96285,1
    - Dst: sqlite3WalkExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:96300,1
    - Dst: sqlite3WindowUpdate
      Src: /src/nss/lib/sqlite/sqlite3.c:96306,1
    - Dst: sqlite3WalkExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:96308,1
    - Dst: sqlite3WalkExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:96309,1
    - Dst: sqlite3WalkExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:96310,1
    - Dst: sqlite3WindowCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:96312,1
    - Dst: sqlite3FunctionUsesThisSrc
      Src: /src/nss/lib/sqlite/sqlite3.c:96324,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:96328,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:96330,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:96331,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:96345,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:96348,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:96349,1
    - Dst: notValid
      Src: /src/nss/lib/sqlite/sqlite3.c:96351,1
    - Dst: sqlite3WalkSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:96352,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:96353,1
    - Dst: ExprSetProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:96355,1
    - Dst: notValid
      Src: /src/nss/lib/sqlite/sqlite3.c:96362,1
    - Dst: sqlite3ExprSkipCollate
      Src: /src/nss/lib/sqlite/sqlite3.c:96367,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:96368,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:96368,1
    - Dst: resolveExprStep
      Src: /src/nss/lib/sqlite/sqlite3.c:96372,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:96391,1
    - Dst: sqlite3ExprVectorSize
      Src: /src/nss/lib/sqlite/sqlite3.c:96392,1
    - Dst: sqlite3ExprVectorSize
      Src: /src/nss/lib/sqlite/sqlite3.c:96394,1
    - Dst: sqlite3ExprVectorSize
      Src: /src/nss/lib/sqlite/sqlite3.c:96396,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:96399,1
    - Dst: sqlite3ExprVectorSize
      Src: /src/nss/lib/sqlite/sqlite3.c:96400,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:96403,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:96404,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:96405,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:96406,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:96407,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:96408,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:96409,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:96410,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:96411,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:96412,1
    CyclomaticComplexity: 72
    EdgeCount: 72
    ICount: 227
    argCount: 2
    argNames:
    - pWalker
    - pExpr
    argTypes:
    - Walker*
    - Expr*
    assertStmts:
    - condition: ( pNC->nRef>=nRef )
      pos:
        line_end: 96352
        line_start: 96352
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pSrcList && pSrcList->nSrc==1 )
      pos:
        line_end: 96101
        line_start: 96101
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pNC!=0 )
      pos:
        line_end: 96078
        line_start: 96078
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pParse==pWalker->pParse )
      pos:
        line_end: 96080
        line_start: 96080
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( HasRowid(pItem->pTab) && pItem->pTab->pSelect==0 )
      pos:
        line_end: 96103
        line_start: 96103
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pRight->op==TK_DOT )
      pos:
        line_end: 96140
        line_start: 96140
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !ExprHasProperty(pExpr, EP_xIsSelect) )
      pos:
        line_end: 96169
        line_start: 96169
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !ExprHasProperty(pExpr, EP_Reduced) )
      pos:
        line_end: 96367
        line_start: 96367
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pExpr->pLeft!=0 )
      pos:
        line_end: 96390
        line_start: 96390
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( SQLITE_FUNC_MINMAX==NC_MinMaxAgg )
      pos:
        line_end: 96329
        line_start: 96329
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pExpr->pRight!=0 )
      pos:
        line_end: 96398
        line_start: 96398
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pSrcList->a[i].iCursor>=0 && pSrcList->a[i].iCursor<pParse->nTab)
      pos:
        line_end: 96087
        line_start: 96087
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( is_agg==0 || (pDef->funcFlags & SQLITE_FUNC_MINMAX)\n          ||
        (pDef->xValue==0 && pDef->xInverse==0)\n          || (pDef->xValue && pDef->xInverse
        && pDef->xSFunc && pDef->xFinalize)\n        )"
      pos:
        line_end: 96248
        line_start: 96245
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pDef!=0 )
      pos:
        line_end: 96327
        line_start: 96327
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 96418
      start: 96074
    functionDepth: 11
    functionLinenumber: 96074
    functionLinenumberEnd: 96418
    functionName: resolveExprStep
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3WalkSelect
    - notValid
    - testcase
    - HasRowid
    - ExprSetProperty
    - sqlite3FindFunction
    - sqlite3ExprSkipCollate
    - sqlite3WalkExprList
    - assert
    - ENC
    - ExprHasProperty
    - sqlite3AuthCheck
    - sqlite3RenameTokenRemap
    - sqlite3ExprVectorSize
    - exprProbability
    - sqlite3Strlen30
    - resolveExprStep
    - sqlite3WindowCompare
    - sqlite3WindowUpdate
    - sqlite3FunctionUsesThisSrc
    - sqlite3ErrorMsg
    - sqlite3WalkExpr
    - lookupName
    linkageType: ''
    returnType: int
    signature: int resolveExprStep(Walker *pWalker, Expr *pExpr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:96285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96288
      start: 96284
    functionDepth: 10
    functionLinenumber: 96284
    functionLinenumberEnd: 96288
    functionName: if
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 8
    functionsReached:
    - sqlite3ErrorMsg
    linkageType: ''
    returnType: else
    signature: else if( wrong_num_args )
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:96439,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:96445,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - pParse
    - pEList
    - pE
    argTypes:
    - Parse*
    - ExprList*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96451
      start: 96432
    functionDepth: 1
    functionLinenumber: 96432
    functionLinenumberEnd: 96451
    functionName: resolveAsName
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    - sqlite3StrICmp
    linkageType: ''
    returnType: int
    signature: "int resolveAsName(\n  Parse *pParse,     /* Parsing context for error
      messages */\n  ExprList *pEList,  /* List of expressions to scan */\n  Expr
      *pE           /* Expression we are trying to match */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:96483,1
    - Dst: sqlite3ExprIsInteger
      Src: /src/nss/lib/sqlite/sqlite3.c:96483,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:96488,1
    - Dst: sqlite3ResolveExprNames
      Src: /src/nss/lib/sqlite/sqlite3.c:96497,1
    - Dst: sqlite3ExprCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:96506,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - pParse
    - pSelect
    - pE
    argTypes:
    - Parse*
    - Select*
    - Expr*
    assertStmts:
    - condition: ( sqlite3ExprIsInteger(pE, &i)==0 )
      pos:
        line_end: 96482
        line_start: 96482
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 96513
      start: 96471
    functionDepth: 1
    functionLinenumber: 96471
    functionLinenumberEnd: 96513
    functionName: resolveOrderByTermToExprList
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ExprCompare
    - sqlite3ExprIsInteger
    - assert
    - memset
    - sqlite3ResolveExprNames
    linkageType: ''
    returnType: int
    signature: "int resolveOrderByTermToExprList(\n  Parse *pParse,     /* Parsing
      context for error messages */\n  Select *pSelect,   /* The SELECT statement
      with the ORDER BY clause */\n  Expr *pE           /* The specific ORDER BY term
      */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:96524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pParse
    - zType
    - i
    - mx
    argTypes:
    - Parse*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96527
      start: 96518
    functionDepth: 10
    functionLinenumber: 96518
    functionLinenumberEnd: 96527
    functionName: resolveOutOfRangeError
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ErrorMsg
    linkageType: ''
    returnType: void
    signature: "void resolveOutOfRangeError(\n  Parse *pParse,         /* The error
      context into which to write the error */\n  const char *zType,     /* \"ORDER\"
      or \"GROUP\" */\n  int i,                 /* The index (1-based) of the term
      out of range */\n  int mx                 /* Largest permissible value of i
      */\n)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:96558,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:96573,1
    - Dst: sqlite3ExprSkipCollate
      Src: /src/nss/lib/sqlite/sqlite3.c:96578,1
    - Dst: sqlite3ExprIsInteger
      Src: /src/nss/lib/sqlite/sqlite3.c:96579,1
    - Dst: resolveOutOfRangeError
      Src: /src/nss/lib/sqlite/sqlite3.c:96581,1
    - Dst: resolveAsName
      Src: /src/nss/lib/sqlite/sqlite3.c:96585,1
    - Dst: sqlite3ExprDup
      Src: /src/nss/lib/sqlite/sqlite3.c:96603,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:96606,1
    - Dst: resolveOrderByTermToExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:96607,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:96610,1
    - Dst: sqlite3Expr
      Src: /src/nss/lib/sqlite/sqlite3.c:96618,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:96626,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:96628,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:96631,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:96643,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 79
    argCount: 2
    argNames:
    - pParse
    - pSelect
    argTypes:
    - Parse*
    - Select*
    assertStmts:
    - condition: ( pEList!=0 )
      pos:
        line_end: 96572
        line_start: 96572
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (pDup)
      pos:
        line_end: 96605
        line_start: 96605
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pParent->op==TK_COLLATE )
      pos:
        line_end: 96625
        line_start: 96625
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pParent->pLeft==pE )
      pos:
        line_end: 96627
        line_start: 96627
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 96649
      start: 96544
    functionDepth: 11
    functionLinenumber: 96544
    functionLinenumberEnd: 96649
    functionName: resolveCompoundOrderBy
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - resolveAsName
    - resolveOrderByTermToExprList
    - sqlite3ExprSkipCollate
    - sqlite3ExprIsInteger
    - assert
    - sqlite3ExprDelete
    - sqlite3ErrorMsg
    - sqlite3Expr
    - sqlite3ExprDup
    - resolveOutOfRangeError
    linkageType: ''
    returnType: int
    signature: "int resolveCompoundOrderBy(\n  Parse *pParse,        /* Parsing context.
      \ Leave error messages here */\n  Select *pSelect       /* The SELECT statement
      containing the ORDER BY */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:96674,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:96678,1
    - Dst: resolveOutOfRangeError
      Src: /src/nss/lib/sqlite/sqlite3.c:96682,1
    - Dst: resolveAlias
      Src: /src/nss/lib/sqlite/sqlite3.c:96685,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 4
    argNames:
    - pParse
    - pSelect
    - pOrderBy
    - zType
    argTypes:
    - Parse*
    - Select*
    - ExprList*
    - char*
    assertStmts:
    - condition: ( pEList!=0 )
      pos:
        line_end: 96677
        line_start: 96677
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 96690
      start: 96661
    functionDepth: 11
    functionLinenumber: 96661
    functionLinenumberEnd: 96690
    functionName: sqlite3ResolveOrderGroupBy
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - resolveAlias
    - resolveOutOfRangeError
    - sqlite3ErrorMsg
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3ResolveOrderGroupBy(\n  Parse *pParse,        /*
      Parsing context.  Leave error messages here */\n  Select *pSelect,      /* The
      SELECT statement containing the clause */\n  ExprList *pOrderBy,   /* The ORDER
      BY or GROUP BY clause to be processed */\n  const char *zType     /* \"ORDER\"
      or \"GROUP\" */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:96697,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - pWalker
    - pExpr
    argTypes:
    - Walker*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96707
      start: 96696
    functionDepth: 1
    functionLinenumber: 96696
    functionLinenumberEnd: 96707
    functionName: resolveRemoveWindowsCb
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ExprHasProperty
    linkageType: ''
    returnType: int
    signature: int resolveRemoveWindowsCb(Walker *pWalker, Expr *pExpr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:96715,1
    - Dst: sqlite3WalkExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:96718,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - pSelect
    - pExpr
    argTypes:
    - Select*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96719
      start: 96713
    functionDepth: 4
    functionLinenumber: 96713
    functionLinenumberEnd: 96719
    functionName: resolveRemoveWindows
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3WalkExpr
    linkageType: ''
    returnType: void
    signature: void resolveRemoveWindows(Select *pSelect, Expr *pExpr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprSkipCollate
      Src: /src/nss/lib/sqlite/sqlite3.c:96759,1
    - Dst: resolveAsName
      Src: /src/nss/lib/sqlite/sqlite3.c:96761,1
    - Dst: sqlite3ExprIsInteger
      Src: /src/nss/lib/sqlite/sqlite3.c:96771,1
    - Dst: resolveOutOfRangeError
      Src: /src/nss/lib/sqlite/sqlite3.c:96776,1
    - Dst: sqlite3ResolveExprNames
      Src: /src/nss/lib/sqlite/sqlite3.c:96785,1
    - Dst: sqlite3ExprCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:96789,1
    - Dst: resolveRemoveWindows
      Src: /src/nss/lib/sqlite/sqlite3.c:96793,1
    - Dst: sqlite3ResolveOrderGroupBy
      Src: /src/nss/lib/sqlite/sqlite3.c:96798,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 4
    argNames:
    - pNC
    - pSelect
    - pOrderBy
    - zType
    argTypes:
    - NameContext*
    - Select*
    - ExprList*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96799
      start: 96742
    functionDepth: 12
    functionLinenumber: 96742
    functionLinenumberEnd: 96799
    functionName: resolveOrderGroupBy
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ResolveOrderGroupBy
    - resolveRemoveWindows
    - resolveAsName
    - sqlite3ExprSkipCollate
    - sqlite3ExprCompare
    - sqlite3ExprIsInteger
    - sqlite3ResolveExprNames
    - resolveOutOfRangeError
    linkageType: ''
    returnType: int
    signature: "int resolveOrderGroupBy(\n  NameContext *pNC,     /* The name context
      of the SELECT statement */\n  Select *pSelect,      /* The SELECT statement
      holding pOrderBy */\n  ExprList *pOrderBy,   /* An ORDER BY or GROUP BY clause
      to resolve */\n  const char *zType     /* Either \"ORDER\" or \"GROUP\", as
      appropriate */\n)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:96816,1
    - Dst: sqlite3SelectPrep
      Src: /src/nss/lib/sqlite/sqlite3.c:96833,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:96841,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:96842,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:96848,1
    - Dst: sqlite3ResolveExprNames
      Src: /src/nss/lib/sqlite/sqlite3.c:96851,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:96863,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:96864,1
    - Dst: sqlite3ResolveSelectNames
      Src: /src/nss/lib/sqlite/sqlite3.c:96886,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:96891,1
    - Dst: sqlite3ResolveExprListNames
      Src: /src/nss/lib/sqlite/sqlite3.c:96904,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:96910,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:96913,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:96922,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:96934,1
    - Dst: sqlite3ResolveExprNames
      Src: /src/nss/lib/sqlite/sqlite3.c:96937,1
    - Dst: sqlite3ResolveExprNames
      Src: /src/nss/lib/sqlite/sqlite3.c:96938,1
    - Dst: sqlite3ResolveExprListNames
      Src: /src/nss/lib/sqlite/sqlite3.c:96944,1
    - Dst: resolveOrderGroupBy
      Src: /src/nss/lib/sqlite/sqlite3.c:96978,1
    - Dst: resolveOrderGroupBy
      Src: /src/nss/lib/sqlite/sqlite3.c:96993,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:96997,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:96998,1
    - Dst: sqlite3ResolveExprListNames
      Src: /src/nss/lib/sqlite/sqlite3.c:97009,1
    - Dst: sqlite3ResolveExprListNames
      Src: /src/nss/lib/sqlite/sqlite3.c:97010,1
    - Dst: sqlite3SelectWrongNumTermsError
      Src: /src/nss/lib/sqlite/sqlite3.c:97021,1
    - Dst: resolveCompoundOrderBy
      Src: /src/nss/lib/sqlite/sqlite3.c:97034,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 119
    argCount: 2
    argNames:
    - pWalker
    - p
    argTypes:
    - Walker*
    - Select*
    assertStmts:
    - condition: ( (p->selFlags & SF_Expanded)!=0 )
      pos:
        line_end: 96840
        line_start: 96840
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pItem->fg.isCorrelated==0 && nRef<=0 )
      pos:
        line_end: 96890
        line_start: 96890
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (p->selFlags & SF_Aggregate)==0 )
      pos:
        line_end: 96909
        line_start: 96909
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (sNC.ncFlags & (NC_UAggInfo|NC_UUpsert))==0 )
      pos:
        line_end: 96933
        line_start: 96933
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->pSrc->nSrc==1 && p->pOrderBy )
      pos:
        line_end: 96862
        line_start: 96862
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pSub->pPrior && pSub->pOrderBy==0 )
      pos:
        line_end: 96863
        line_start: 96863
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( NC_MinMaxAgg==SF_MinMaxAgg )
      pos:
        line_end: 96912
        line_start: 96912
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p!=0 )
      pos:
        line_end: 96815
        line_start: 96815
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (p->selFlags & SF_Resolved)==0 )
      pos:
        line_end: 96841
        line_start: 96841
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 97039
      start: 96804
    functionDepth: 13
    functionLinenumber: 96804
    functionLinenumberEnd: 97039
    functionName: resolveSelectStep
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ResolveExprListNames
    - ExprHasProperty
    - sqlite3SelectPrep
    - sqlite3SelectWrongNumTermsError
    - assert
    - memset
    - resolveCompoundOrderBy
    - sqlite3ErrorMsg
    - resolveOrderGroupBy
    - sqlite3ResolveSelectNames
    - sqlite3ResolveExprNames
    linkageType: ''
    returnType: int
    signature: int resolveSelectStep(Walker *pWalker, Select *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprCheckHeight
      Src: /src/nss/lib/sqlite/sqlite3.c:97106,1
    - Dst: sqlite3WalkExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:97110,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:97114,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:97115,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:97116,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:97117,1
    - Dst: ExprSetProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:97118,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 2
    argNames:
    - pNC
    - pExpr
    argTypes:
    - NameContext*
    - Expr*
    assertStmts:
    - condition: ( EP_Agg==NC_HasAgg )
      pos:
        line_end: 97113
        line_start: 97113
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( EP_Win==NC_HasWin )
      pos:
        line_end: 97114
        line_start: 97114
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 97121
      start: 97089
    functionDepth: 4
    functionLinenumber: 97089
    functionLinenumberEnd: 97121
    functionName: sqlite3ResolveExprNames
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 3
    functionsReached:
    - ExprSetProperty
    - assert
    - sqlite3WalkExpr
    - testcase
    - sqlite3ExprCheckHeight
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3ResolveExprNames( \n  NameContext *pNC,       /*
      Namespace to resolve expressions in. */\n  Expr *pExpr             /* The expression
      to be analyzed. */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ResolveExprNames
      Src: /src/nss/lib/sqlite/sqlite3.c:97135,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - pNC
    - pList
    argTypes:
    - NameContext*
    - ExprList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97139
      start: 97128
    functionDepth: 5
    functionLinenumber: 97128
    functionLinenumberEnd: 97139
    functionName: sqlite3ResolveExprListNames
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3ResolveExprNames
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3ResolveExprListNames( \n  NameContext *pNC,
      \      /* Namespace to resolve expressions in. */\n  ExprList *pList         /*
      The expression list to be analyzed. */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:97160,1
    - Dst: sqlite3WalkSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:97166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - pParse
    - p
    - pOuterNC
    argTypes:
    - Parse*
    - Select*
    - NameContext*
    assertStmts:
    - condition: ( p!=0 )
      pos:
        line_end: 97159
        line_start: 97159
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 97167
      start: 97153
    functionDepth: 7
    functionLinenumber: 97153
    functionLinenumberEnd: 97167
    functionName: sqlite3ResolveSelectNames
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - sqlite3WalkSelect
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3ResolveSelectNames(\n  Parse *pParse,         /*
      The parser context */\n  Select *p,             /* The SELECT statement being
      coded. */\n  NameContext *pOuterNC  /* Name context for parent SELECT statement
      */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:97195,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:97196,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:97197,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:97198,1
    - Dst: sqlite3ResolveExprNames
      Src: /src/nss/lib/sqlite/sqlite3.c:97208,1
    - Dst: sqlite3ResolveExprListNames
      Src: /src/nss/lib/sqlite/sqlite3.c:97209,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 5
    argNames:
    - pParse
    - pTab
    - type
    - pExpr
    - pList
    argTypes:
    - Parse*
    - Table*
    - int
    - Expr*
    - ExprList*
    assertStmts:
    - condition: ( type==0 || pTab!=0 )
      pos:
        line_end: 97194
        line_start: 97194
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( type==NC_IsCheck || type==NC_PartIdx || type==NC_IdxExpr || pTab==0
        )
      pos:
        line_end: 97195
        line_start: 97195
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 97211
      start: 97184
    functionDepth: 6
    functionLinenumber: 97184
    functionLinenumberEnd: 97211
    functionName: sqlite3ResolveSelfReference
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3ResolveExprListNames
    - sqlite3ResolveExprNames
    - memset
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3ResolveSelfReference(\n  Parse *pParse,      /*
      Parsing context */\n  Table *pTab,        /* The table being referenced, or
      NULL */\n  int type,           /* NC_IsCheck or NC_PartIdx or NC_IdxExpr, or
      0 */\n  Expr *pExpr,        /* Expression to resolve.  May be NULL. */\n  ExprList
      *pList     /* Expression list to resolve.  May be NULL. */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:97239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pTab
    - iCol
    argTypes:
    - Table*
    - int
    assertStmts:
    - condition: ( iCol<pTab->nCol )
      pos:
        line_end: 97238
        line_start: 97238
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 97241
      start: 97238
    functionDepth: 0
    functionLinenumber: 97238
    functionLinenumberEnd: 97241
    functionName: sqlite3TableColumnAffinity
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3TableColumnAffinity(Table *pTab, int iCol)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:97262,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:97263,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:97265,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:97269,1
    - Dst: sqlite3ExprAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:97270,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:97275,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:97275,1
    - Dst: sqlite3AffinityType
      Src: /src/nss/lib/sqlite/sqlite3.c:97276,1
    - Dst: sqlite3TableColumnAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:97280,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:97283,1
    - Dst: sqlite3ExprAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:97284,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 1
    argNames:
    - pExpr
    argTypes:
    - Expr*
    assertStmts:
    - condition: ( pExpr!=0 )
      pos:
        line_end: 97264
        line_start: 97264
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pExpr->flags&EP_xIsSelect )
      pos:
        line_end: 97268
        line_start: 97268
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pExpr->op==TK_COLLATE )
      pos:
        line_end: 97262
        line_start: 97262
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !ExprHasProperty(pExpr, EP_IntValue) )
      pos:
        line_end: 97274
        line_start: 97274
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pExpr->pLeft->flags&EP_xIsSelect )
      pos:
        line_end: 97282
        line_start: 97282
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 97289
      start: 97259
    functionDepth: 1
    functionLinenumber: 97259
    functionLinenumberEnd: 97289
    functionName: sqlite3ExprAffinity
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - sqlite3ExprAffinity
    - sqlite3TableColumnAffinity
    - sqlite3AffinityType
    - ExprHasProperty
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprAffinity(Expr *pExpr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:97306,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - pParse
    - pExpr
    - pCollName
    - dequote
    argTypes:
    - Parse*
    - Expr*
    - Token*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97314
      start: 97299
    functionDepth: 1
    functionLinenumber: 97299
    functionLinenumberEnd: 97314
    functionName: sqlite3ExprAddCollateToken
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ExprAlloc
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3ExprAddCollateToken(\n  Parse *pParse,           /*
      Parsing context */\n  Expr *pExpr,             /* Add the \"COLLATE\" clause
      to this expression */\n  const Token *pCollName,  /* Name of collating sequence
      */\n  int dequote              /* True to dequote pCollName */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:97317,1
    - Dst: sqlite3TokenInit
      Src: /src/nss/lib/sqlite/sqlite3.c:97318,1
    - Dst: sqlite3ExprAddCollateToken
      Src: /src/nss/lib/sqlite/sqlite3.c:97319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - pParse
    - pExpr
    - zC
    argTypes:
    - Parse*
    - Expr*
    - char*
    assertStmts:
    - condition: ( zC!=0 )
      pos:
        line_end: 97316
        line_start: 97316
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 97320
      start: 97315
    functionDepth: 2
    functionLinenumber: 97315
    functionLinenumberEnd: 97320
    functionName: sqlite3ExprAddCollateString
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - sqlite3TokenInit
    - sqlite3ExprAddCollateToken
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3ExprAddCollateString(Parse *pParse, Expr *pExpr,
      const char *zC)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:97327,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:97328,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:97329,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:97329,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:97330,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:97331,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:97334,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - pExpr
    argTypes:
    - Expr*
    assertStmts:
    - condition: ( !ExprHasProperty(pExpr, EP_xIsSelect) )
      pos:
        line_end: 97328
        line_start: 97328
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pExpr->x.pList->nExpr>0 )
      pos:
        line_end: 97329
        line_start: 97329
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pExpr->op==TK_FUNCTION )
      pos:
        line_end: 97330
        line_start: 97330
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pExpr->op==TK_COLLATE )
      pos:
        line_end: 97333
        line_start: 97333
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 97339
      start: 97326
    functionDepth: 1
    functionLinenumber: 97326
    functionLinenumberEnd: 97339
    functionName: sqlite3ExprSkipCollate
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 5
    functionsReached:
    - assert
    - ExprHasProperty
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3ExprSkipCollate(Expr *pExpr)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3FindCollSeq
      Src: /src/nss/lib/sqlite/sqlite3.c:97371,1
    - Dst: ENC
      Src: /src/nss/lib/sqlite/sqlite3.c:97371,1
    - Dst: sqlite3GetCollSeq
      Src: /src/nss/lib/sqlite/sqlite3.c:97380,1
    - Dst: ENC
      Src: /src/nss/lib/sqlite/sqlite3.c:97380,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:97389,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:97393,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:97393,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:97395,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:97396,1
    - Dst: sqlite3CheckCollSeq
      Src: /src/nss/lib/sqlite/sqlite3.c:97408,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 43
    argCount: 2
    argNames:
    - pParse
    - pExpr
    argTypes:
    - Parse*
    - Expr*
    assertStmts:
    - condition: ( p->x.pList==0 || p->pRight==0 )
      pos:
        line_end: 97388
        line_start: 97388
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 97412
      start: 97355
    functionDepth: 1
    functionLinenumber: 97355
    functionLinenumberEnd: 97412
    functionName: sqlite3ExprCollSeq
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ALWAYS
    - sqlite3CheckCollSeq
    - assert
    - sqlite3GetCollSeq
    - ENC
    - sqlite3FindCollSeq
    - ExprHasProperty
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3ExprCollSeq(Parse *pParse, Expr *pExpr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprCollSeq
      Src: /src/nss/lib/sqlite/sqlite3.c:97425,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:97427,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pParse
    - pExpr
    argTypes:
    - Parse*
    - Expr*
    assertStmts:
    - condition: ( p!=0 )
      pos:
        line_end: 97426
        line_start: 97426
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 97429
      start: 97424
    functionDepth: 2
    functionLinenumber: 97424
    functionLinenumberEnd: 97429
    functionName: sqlite3ExprNNCollSeq
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3ExprCollSeq
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3ExprNNCollSeq(Parse *pParse, Expr *pExpr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprNNCollSeq
      Src: /src/nss/lib/sqlite/sqlite3.c:97435,1
    - Dst: sqlite3ExprNNCollSeq
      Src: /src/nss/lib/sqlite/sqlite3.c:97436,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:97437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pParse
    - pE1
    - pE2
    argTypes:
    - Parse*
    - Expr*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97438
      start: 97434
    functionDepth: 3
    functionLinenumber: 97434
    functionLinenumberEnd: 97438
    functionName: sqlite3ExprCollSeqMatch
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ExprNNCollSeq
    - sqlite3StrICmp
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprCollSeqMatch(Parse *pParse, Expr *pE1, Expr
      *pE2)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:97446,1
    - Dst: sqlite3IsNumericAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:97451,1
    - Dst: sqlite3IsNumericAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:97451,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:97463,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - pExpr
    - aff2
    argTypes:
    - Expr*
    - char
    assertStmts:
    - condition: ( aff1==0 || aff2==0 )
      pos:
        line_end: 97462
        line_start: 97462
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 97466
      start: 97445
    functionDepth: 2
    functionLinenumber: 97445
    functionLinenumberEnd: 97466
    functionName: sqlite3CompareAffinity
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3IsNumericAffinity
    - sqlite3ExprAffinity
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3CompareAffinity(Expr *pExpr, char aff2)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:97474,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:97477,1
    - Dst: sqlite3ExprAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:97478,1
    - Dst: sqlite3CompareAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:97480,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:97481,1
    - Dst: sqlite3CompareAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:97482,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 14
    argCount: 1
    argNames:
    - pExpr
    argTypes:
    - Expr*
    assertStmts:
    - condition: "( pExpr->op==TK_EQ || pExpr->op==TK_IN || pExpr->op==TK_LT ||\n
        \         pExpr->op==TK_GT || pExpr->op==TK_GE || pExpr->op==TK_LE ||\n          pExpr->op==TK_NE
        || pExpr->op==TK_IS || pExpr->op==TK_ISNOT )"
      pos:
        line_end: 97475
        line_start: 97473
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pExpr->pLeft )
      pos:
        line_end: 97476
        line_start: 97476
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 97487
      start: 97472
    functionDepth: 3
    functionLinenumber: 97472
    functionLinenumberEnd: 97487
    functionName: comparisonAffinity
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - ExprHasProperty
    - sqlite3ExprAffinity
    - sqlite3CompareAffinity
    linkageType: ''
    returnType: char
    signature: char comparisonAffinity(Expr *pExpr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: comparisonAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:97496,1
    - Dst: sqlite3IsNumericAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:97503,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - pExpr
    - idx_affinity
    argTypes:
    - Expr*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97505
      start: 97495
    functionDepth: 4
    functionLinenumber: 97495
    functionLinenumberEnd: 97505
    functionName: sqlite3IndexAffinityOk
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3IsNumericAffinity
    - comparisonAffinity
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3IndexAffinityOk(Expr *pExpr, char idx_affinity)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:97512,1
    - Dst: sqlite3CompareAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:97513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - pExpr1
    - pExpr2
    - jumpIfNull
    argTypes:
    - Expr*
    - Expr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97515
      start: 97511
    functionDepth: 3
    functionLinenumber: 97511
    functionLinenumberEnd: 97515
    functionName: binaryCompareP5
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ExprAffinity
    - sqlite3CompareAffinity
    linkageType: ''
    returnType: u8
    signature: u8 binaryCompareP5(Expr *pExpr1, Expr *pExpr2, int jumpIfNull)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:97535,1
    - Dst: sqlite3ExprCollSeq
      Src: /src/nss/lib/sqlite/sqlite3.c:97537,1
    - Dst: sqlite3ExprCollSeq
      Src: /src/nss/lib/sqlite/sqlite3.c:97539,1
    - Dst: sqlite3ExprCollSeq
      Src: /src/nss/lib/sqlite/sqlite3.c:97541,1
    - Dst: sqlite3ExprCollSeq
      Src: /src/nss/lib/sqlite/sqlite3.c:97543,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - pParse
    - pLeft
    - pRight
    argTypes:
    - Parse*
    - Expr*
    - Expr*
    assertStmts:
    - condition: ( pLeft )
      pos:
        line_end: 97534
        line_start: 97534
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 97547
      start: 97529
    functionDepth: 2
    functionLinenumber: 97529
    functionLinenumberEnd: 97547
    functionName: sqlite3BinaryCompareCollSeq
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3ExprCollSeq
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3BinaryCompareCollSeq(\n  Parse *pParse, \n
      \ Expr *pLeft, \n  Expr *pRight\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BinaryCompareCollSeq
      Src: /src/nss/lib/sqlite/sqlite3.c:97565,1
    - Dst: binaryCompareP5
      Src: /src/nss/lib/sqlite/sqlite3.c:97566,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:97567,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:97569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 8
    argNames:
    - pParse
    - pLeft
    - pRight
    - opcode
    - in1
    - in2
    - dest
    - jumpIfNull
    argTypes:
    - Parse*
    - Expr*
    - Expr*
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97571
      start: 97552
    functionDepth: 12
    functionLinenumber: 97552
    functionLinenumberEnd: 97571
    functionName: codeCompare
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeAddOp4
    - sqlite3VdbeChangeP5
    - binaryCompareP5
    - sqlite3BinaryCompareCollSeq
    linkageType: ''
    returnType: int
    signature: "int codeCompare(\n  Parse *pParse,    /* The parsing (and code generating)
      context */\n  Expr *pLeft,      /* The left operand */\n  Expr *pRight,     /*
      The right operand */\n  int opcode,       /* The comparison opcode */\n  int
      in1, int in2, /* Register holding operands */\n  int dest,         /* Jump here
      if true.  */\n  int jumpIfNull    /* If true, jump if either operand is NULL
      */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprVectorSize
      Src: /src/nss/lib/sqlite/sqlite3.c:97583,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pExpr
    argTypes:
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97584
      start: 97582
    functionDepth: 1
    functionLinenumber: 97582
    functionLinenumberEnd: 97584
    functionName: sqlite3ExprIsVector
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ExprVectorSize
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprIsVector(Expr *pExpr)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - pExpr
    argTypes:
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97602
      start: 97592
    functionDepth: 0
    functionLinenumber: 97592
    functionLinenumberEnd: 97602
    functionName: sqlite3ExprVectorSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprVectorSize(Expr *pExpr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:97620,1
    - Dst: sqlite3ExprVectorSize
      Src: /src/nss/lib/sqlite/sqlite3.c:97620,1
    - Dst: sqlite3ExprIsVector
      Src: /src/nss/lib/sqlite/sqlite3.c:97621,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:97622,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - pVector
    - i
    argTypes:
    - Expr*
    - int
    assertStmts:
    - condition: ( i<sqlite3ExprVectorSize(pVector) )
      pos:
        line_end: 97619
        line_start: 97619
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pVector->op2==0 || pVector->op==TK_REGISTER )
      pos:
        line_end: 97621
        line_start: 97621
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 97630
      start: 97619
    functionDepth: 2
    functionLinenumber: 97619
    functionLinenumberEnd: 97630
    functionName: sqlite3VectorFieldSubexpr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - sqlite3ExprVectorSize
    - sqlite3ExprIsVector
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3VectorFieldSubexpr(Expr *pVector, int i)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:97660,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:97677,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:97682,1
    - Dst: sqlite3ExprDup
      Src: /src/nss/lib/sqlite/sqlite3.c:97685,1
    - Dst: sqlite3RenameTokenRemap
      Src: /src/nss/lib/sqlite/sqlite3.c:97686,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - pParse
    - pVector
    - iField
    argTypes:
    - Parse*
    - Expr*
    - int
    assertStmts:
    - condition: ( pVector->flags & EP_xIsSelect )
      pos:
        line_end: 97659
        line_start: 97659
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pRet==0 || pRet->iTable==0 )
      pos:
        line_end: 97681
        line_start: 97681
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 97689
      start: 97653
    functionDepth: 1
    functionLinenumber: 97653
    functionLinenumberEnd: 97689
    functionName: sqlite3ExprForVectorField
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3ExprDup
    - sqlite3RenameTokenRemap
    - sqlite3PExpr
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3ExprForVectorField(\n  Parse *pParse,       /*
      Parsing context */\n  Expr *pVector,       /* The vector.  List of expressions
      or a sub-SELECT */\n  int iField           /* Which column of the vector to
      return */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3CodeSubselect
      Src: /src/nss/lib/sqlite/sqlite3.c:97703,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pParse
    - pExpr
    argTypes:
    - Parse*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97707
      start: 97699
    functionDepth: 1
    functionLinenumber: 97699
    functionLinenumberEnd: 97707
    functionName: exprCodeSubselect
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3CodeSubselect
    linkageType: ''
    returnType: int
    signature: int exprCodeSubselect(Parse *pParse, Expr *pExpr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:97736,1
    - Dst: sqlite3VectorFieldSubexpr
      Src: /src/nss/lib/sqlite/sqlite3.c:97738,1
    - Dst: sqlite3ExprCodeTemp
      Src: /src/nss/lib/sqlite/sqlite3.c:97746,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 6
    argNames:
    - pParse
    - pVector
    - iField
    - regSelect
    - ppExpr
    - pRegFree
    argTypes:
    - Parse*
    - Expr*
    - int
    - int
    - Expr**
    - int*
    assertStmts:
    - condition: ( op==TK_VECTOR || op==TK_REGISTER || op==TK_SELECT )
      pos:
        line_end: 97735
        line_start: 97735
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 97747
      start: 97727
    functionDepth: 3
    functionLinenumber: 97727
    functionLinenumberEnd: 97747
    functionName: exprVectorRegister
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3VectorFieldSubexpr
    - sqlite3ExprCodeTemp
    linkageType: ''
    returnType: int
    signature: "int exprVectorRegister(\n  Parse *pParse,                  /* Parse
      context */\n  Expr *pVector,                  /* Vector to extract element from
      */\n  int iField,                     /* Field to extract from pVector */\n
      \ int regSelect,                  /* First in array of registers */\n  Expr
      **ppExpr,                  /* OUT: Expression element */\n  int *pRegFree                   /*
      OUT: Temp register to free */\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprVectorSize
      Src: /src/nss/lib/sqlite/sqlite3.c:97770,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:97775,1
    - Dst: sqlite3ExprVectorSize
      Src: /src/nss/lib/sqlite/sqlite3.c:97777,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:97778,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:97781,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:97786,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:97788,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:97789,1
    - Dst: exprCodeSubselect
      Src: /src/nss/lib/sqlite/sqlite3.c:97795,1
    - Dst: exprCodeSubselect
      Src: /src/nss/lib/sqlite/sqlite3.c:97796,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:97802,1
    - Dst: exprVectorRegister
      Src: /src/nss/lib/sqlite/sqlite3.c:97803,1
    - Dst: exprVectorRegister
      Src: /src/nss/lib/sqlite/sqlite3.c:97804,1
    - Dst: codeCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:97805,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:97806,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:97806,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:97807,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:97807,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:97808,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:97808,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:97809,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:97809,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:97810,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:97810,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:97811,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:97811,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:97812,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:97813,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:97818,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:97818,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:97821,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:97821,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:97824,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:97825,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:97826,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:97827,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:97828,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:97829,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:97833,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 59
    argCount: 5
    argNames:
    - pParse
    - pExpr
    - dest
    - op
    - p5
    argTypes:
    - Parse*
    - Expr*
    - int
    - u8
    - u8
    assertStmts:
    - condition: "( pExpr->op==TK_EQ || pExpr->op==TK_NE \n       || pExpr->op==TK_IS
        || pExpr->op==TK_ISNOT \n       || pExpr->op==TK_LT || pExpr->op==TK_GT \n
        \      || pExpr->op==TK_LE || pExpr->op==TK_GE \n  )"
      pos:
        line_end: 97784
        line_start: 97780
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p5==SQLITE_NULLEQ || pExpr->op==op )
      pos:
        line_end: 97788
        line_start: 97788
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( pExpr->op==op || (pExpr->op==TK_IS && op==TK_EQ)\n            ||
        (pExpr->op==TK_ISNOT && op==TK_NE) )"
      pos:
        line_end: 97786
        line_start: 97785
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p5==0 || pExpr->op!=op )
      pos:
        line_end: 97787
        line_start: 97787
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( i>=0 && i<nLeft )
      pos:
        line_end: 97801
        line_start: 97801
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( op==TK_LT || op==TK_GT || op==TK_LE || op==TK_GE )
      pos:
        line_end: 97823
        line_start: 97823
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 97834
      start: 97760
    functionDepth: 13
    functionLinenumber: 97760
    functionLinenumberEnd: 97834
    functionName: codeVectorCompare
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeAddOp2
    - sqlite3ExprVectorSize
    - sqlite3VdbeResolveLabel
    - exprCodeSubselect
    - codeCompare
    - sqlite3ReleaseTempReg
    - assert
    - sqlite3ErrorMsg
    - VdbeCoverageIf
    - VdbeCoverage
    - sqlite3VdbeMakeLabel
    - testcase
    - exprVectorRegister
    linkageType: ''
    returnType: void
    signature: "void codeVectorCompare(\n  Parse *pParse,        /* Code generator
      context */\n  Expr *pExpr,          /* The comparison operation */\n  int dest,
      \            /* Write results into this register */\n  u8 op,                /*
      Comparison operator */\n  u8 p5                 /* SQLITE_NULLEQ or zero */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:97846,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pParse
    - nHeight
    argTypes:
    - Parse*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97852
      start: 97842
    functionDepth: 10
    functionLinenumber: 97842
    functionLinenumberEnd: 97852
    functionName: sqlite3ExprCheckHeight
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3ErrorMsg
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprCheckHeight(Parse *pParse, int nHeight)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - p
    - pnHeight
    argTypes:
    - Expr*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97869
      start: 97863
    functionDepth: 0
    functionLinenumber: 97863
    functionLinenumberEnd: 97869
    functionName: heightOfExpr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void heightOfExpr(Expr *p, int *pnHeight)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: heightOfExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:97874,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - p
    - pnHeight
    argTypes:
    - ExprList*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97877
      start: 97870
    functionDepth: 1
    functionLinenumber: 97870
    functionLinenumberEnd: 97877
    functionName: heightOfExprList
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - heightOfExpr
    linkageType: ''
    returnType: void
    signature: void heightOfExprList(ExprList *p, int *pnHeight)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: heightOfExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:97881,1
    - Dst: heightOfExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:97882,1
    - Dst: heightOfExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:97883,1
    - Dst: heightOfExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:97884,1
    - Dst: heightOfExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:97885,1
    - Dst: heightOfExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:97886,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - pSelect
    - pnHeight
    argTypes:
    - Select*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97888
      start: 97878
    functionDepth: 2
    functionLinenumber: 97878
    functionLinenumberEnd: 97888
    functionName: heightOfSelect
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - heightOfExprList
    - heightOfExpr
    linkageType: ''
    returnType: void
    signature: void heightOfSelect(Select *pSelect, int *pnHeight)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: heightOfExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:97902,1
    - Dst: heightOfExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:97903,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:97904,1
    - Dst: heightOfSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:97905,1
    - Dst: heightOfExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:97907,1
    - Dst: sqlite3ExprListFlags
      Src: /src/nss/lib/sqlite/sqlite3.c:97908,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - p
    argTypes:
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97911
      start: 97900
    functionDepth: 3
    functionLinenumber: 97900
    functionLinenumberEnd: 97911
    functionName: exprSetHeight
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - heightOfSelect
    - sqlite3ExprListFlags
    - heightOfExprList
    - heightOfExpr
    - ExprHasProperty
    linkageType: ''
    returnType: void
    signature: void exprSetHeight(Expr *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: exprSetHeight
      Src: /src/nss/lib/sqlite/sqlite3.c:97923,1
    - Dst: sqlite3ExprCheckHeight
      Src: /src/nss/lib/sqlite/sqlite3.c:97924,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pParse
    - p
    argTypes:
    - Parse*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97925
      start: 97921
    functionDepth: 11
    functionLinenumber: 97921
    functionLinenumberEnd: 97925
    functionName: sqlite3ExprSetHeightAndFlags
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - exprSetHeight
    - sqlite3ExprCheckHeight
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprSetHeightAndFlags(Parse *pParse, Expr *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: heightOfSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:97933,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - Select*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97935
      start: 97931
    functionDepth: 3
    functionLinenumber: 97931
    functionLinenumberEnd: 97935
    functionName: sqlite3SelectExprHeight
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - heightOfSelect
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3SelectExprHeight(Select *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:97942,1
    - Dst: sqlite3ExprListFlags
      Src: /src/nss/lib/sqlite/sqlite3.c:97943,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - pParse
    - p
    argTypes:
    - Parse*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97945
      start: 97941
    functionDepth: 1
    functionLinenumber: 97941
    functionLinenumberEnd: 97945
    functionName: sqlite3ExprSetHeightAndFlags
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ExprHasProperty
    - sqlite3ExprListFlags
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprSetHeightAndFlags(Parse *pParse, Expr *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:97979,1
    - Dst: sqlite3GetInt32
      Src: /src/nss/lib/sqlite/sqlite3.c:97982,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:97984,1
    - Dst: sqlite3DbMallocRawNN
      Src: /src/nss/lib/sqlite/sqlite3.c:97987,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:97989,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:97998,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:97999,1
    - Dst: sqlite3Isquote
      Src: /src/nss/lib/sqlite/sqlite3.c:98001,1
    - Dst: sqlite3DequoteExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:98002,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 4
    argNames:
    - db
    - op
    - pToken
    - dequote
    argTypes:
    - sqlite3*
    - int
    - Token*
    - int
    assertStmts:
    - condition: ( db!=0 )
      pos:
        line_end: 97978
        line_start: 97978
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iValue>=0 )
      pos:
        line_end: 97983
        line_start: 97983
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pToken->z!=0 || pToken->n==0 )
      pos:
        line_end: 97997
        line_start: 97997
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 98011
      start: 97969
    functionDepth: 7
    functionLinenumber: 97969
    functionLinenumberEnd: 98011
    functionName: sqlite3ExprAlloc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - memcpy
    - sqlite3DbMallocRawNN
    - sqlite3DequoteExpr
    - assert
    - memset
    - sqlite3Isquote
    - sqlite3GetInt32
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3ExprAlloc(\n  sqlite3 *db,            /* Handle
      for sqlite3DbMallocRawNN() */\n  int op,                 /* Expression opcode
      */\n  const Token *pToken,    /* Token argument.  Might be NULL */\n  int dequote
      \            /* True to dequote */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:98024,1
    - Dst: sqlite3ExprAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:98025,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - db
    - op
    - zToken
    argTypes:
    - sqlite3*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98026
      start: 98017
    functionDepth: 8
    functionLinenumber: 98017
    functionLinenumberEnd: 98026
    functionName: sqlite3Expr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3ExprAlloc
    - sqlite3Strlen30
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3Expr(\n  sqlite3 *db,            /* Handle
      for sqlite3DbMallocZero() (may be null) */\n  int op,                 /* Expression
      opcode */\n  const char *zToken      /* Token argument.  Might be NULL */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98041,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:98042,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:98043,1
    - Dst: exprSetHeight
      Src: /src/nss/lib/sqlite/sqlite3.c:98053,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - db
    - pRoot
    - pLeft
    - pRight
    argTypes:
    - sqlite3*
    - Expr*
    - Expr*
    - Expr*
    assertStmts:
    - condition: ( db->mallocFailed )
      pos:
        line_end: 98040
        line_start: 98040
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 98055
      start: 98034
    functionDepth: 4
    functionLinenumber: 98034
    functionLinenumberEnd: 98055
    functionName: sqlite3ExprAttachSubtrees
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - exprSetHeight
    - sqlite3ExprDelete
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3ExprAttachSubtrees(\n  sqlite3 *db,\n  Expr
      *pRoot,\n  Expr *pLeft,\n  Expr *pRight\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbMallocRawNN
      Src: /src/nss/lib/sqlite/sqlite3.c:98071,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:98073,1
    - Dst: sqlite3ExprAttachSubtrees
      Src: /src/nss/lib/sqlite/sqlite3.c:98076,1
    - Dst: sqlite3ExprCheckHeight
      Src: /src/nss/lib/sqlite/sqlite3.c:98077,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:98079,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:98080,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - pParse
    - op
    - pLeft
    - pRight
    argTypes:
    - Parse*
    - int
    - Expr*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98083
      start: 98064
    functionDepth: 11
    functionLinenumber: 98064
    functionLinenumberEnd: 98083
    functionName: sqlite3PExpr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3ExprAttachSubtrees
    - sqlite3DbMallocRawNN
    - sqlite3ExprDelete
    - memset
    - sqlite3ExprCheckHeight
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3PExpr(\n  Parse *pParse,          /* Parsing
      context */\n  int op,                 /* Expression opcode */\n  Expr *pLeft,
      \           /* Left operand */\n  Expr *pRight            /* Right operand */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ExprSetProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:98092,1
    - Dst: sqlite3ExprSetHeightAndFlags
      Src: /src/nss/lib/sqlite/sqlite3.c:98093,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98095,1
    - Dst: sqlite3SelectDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:98096,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - pParse
    - pExpr
    - pSelect
    argTypes:
    - Parse*
    - Expr*
    - Select*
    assertStmts:
    - condition: ( pParse->db->mallocFailed )
      pos:
        line_end: 98094
        line_start: 98094
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 98098
      start: 98089
    functionDepth: 12
    functionLinenumber: 98089
    functionLinenumberEnd: 98098
    functionName: sqlite3PExprAddSelect
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - ExprSetProperty
    - sqlite3ExprSetHeightAndFlags
    - sqlite3SelectDelete
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3PExprAddSelect(Parse *pParse, Expr *pExpr, Select
      *pSelect)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ExprAlwaysFalse
      Src: /src/nss/lib/sqlite/sqlite3.c:98115,1
    - Dst: ExprAlwaysFalse
      Src: /src/nss/lib/sqlite/sqlite3.c:98115,1
    - Dst: sqlite3ExprUnmapAndDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:98116,1
    - Dst: sqlite3ExprUnmapAndDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:98117,1
    - Dst: sqlite3ExprAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:98118,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:98120,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - pParse
    - pLeft
    - pRight
    argTypes:
    - Parse*
    - Expr*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98122
      start: 98109
    functionDepth: 12
    functionLinenumber: 98109
    functionLinenumberEnd: 98122
    functionName: sqlite3ExprAnd
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ExprAlwaysFalse
    - sqlite3ExprUnmapAndDelete
    - sqlite3ExprAlloc
    - sqlite3PExpr
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3ExprAnd(Parse *pParse, Expr *pLeft, Expr *pRight)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98136,1
    - Dst: sqlite3ExprAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:98137,1
    - Dst: sqlite3ExprListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:98139,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:98143,1
    - Dst: ExprSetProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:98146,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98147,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:98147,1
    - Dst: sqlite3ExprSetHeightAndFlags
      Src: /src/nss/lib/sqlite/sqlite3.c:98148,1
    - Dst: ExprSetProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:98149,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - pParse
    - pList
    - pToken
    - eDistinct
    argTypes:
    - Parse*
    - ExprList*
    - Token*
    - int
    assertStmts:
    - condition: ( pToken )
      pos:
        line_end: 98135
        line_start: 98135
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !ExprHasProperty(pNew, EP_xIsSelect) )
      pos:
        line_end: 98146
        line_start: 98146
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 98151
      start: 98128
    functionDepth: 12
    functionLinenumber: 98128
    functionLinenumberEnd: 98151
    functionName: sqlite3ExprFunction
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ExprSetProperty
    - sqlite3ExprSetHeightAndFlags
    - assert
    - sqlite3ErrorMsg
    - ExprHasProperty
    - sqlite3ExprAlloc
    - sqlite3ExprListDelete
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3ExprFunction(\n  Parse *pParse,        /* Parsing
      context */\n  ExprList *pList,      /* Argument list */\n  Token *pToken,        /*
      Name of the function */\n  int eDistinct         /* SF_Distinct or SF_ALL or
      0 */\n)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98175,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:98175,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98177,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98178,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98179,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:98179,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98182,1
    - Dst: sqlite3Atoi64
      Src: /src/nss/lib/sqlite/sqlite3.c:98195,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:98197,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:98198,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:98199,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:98200,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:98202,1
    - Dst: sqlite3VListNumToName
      Src: /src/nss/lib/sqlite/sqlite3.c:98210,1
    - Dst: sqlite3VListNameToNum
      Src: /src/nss/lib/sqlite/sqlite3.c:98218,1
    - Dst: sqlite3VListAdd
      Src: /src/nss/lib/sqlite/sqlite3.c:98225,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:98230,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 50
    argCount: 3
    argNames:
    - pParse
    - pExpr
    - n
    argTypes:
    - Parse*
    - Expr*
    - u32
    assertStmts:
    - condition: ( !ExprHasProperty(pExpr, EP_IntValue|EP_Reduced|EP_TokenOnly) )
      pos:
        line_end: 98174
        line_start: 98174
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( z[0]!=0 )
      pos:
        line_end: 98177
        line_start: 98177
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( n==(u32)sqlite3Strlen30(z) )
      pos:
        line_end: 98178
        line_start: 98178
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( z!=0 )
      pos:
        line_end: 98176
        line_start: 98176
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( z[0]=='?' )
      pos:
        line_end: 98181
        line_start: 98181
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 98232
      start: 98169
    functionDepth: 10
    functionLinenumber: 98169
    functionLinenumberEnd: 98232
    functionName: sqlite3ExprAssignVarNumber
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Atoi64
    - assert
    - sqlite3Strlen30
    - sqlite3ErrorMsg
    - sqlite3VListNameToNum
    - sqlite3VListNumToName
    - ExprHasProperty
    - testcase
    - sqlite3VListAdd
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprAssignVarNumber(Parse *pParse, Expr *pExpr,
      u32 n)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98238,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98240,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:98240,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98242,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:98242,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98243,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:98243,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:98244,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:98246,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:98246,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98247,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98248,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98249,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:98252,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98254,1
    - Dst: sqlite3ExprDeleteNN
      Src: /src/nss/lib/sqlite/sqlite3.c:98255,1
    - Dst: sqlite3ExprDeleteNN
      Src: /src/nss/lib/sqlite/sqlite3.c:98257,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:98258,1
    - Dst: sqlite3SelectDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:98259,1
    - Dst: sqlite3ExprListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:98261,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:98263,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98264,1
    - Dst: sqlite3WindowDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:98265,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:98268,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:98268,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:98269,1
    - Dst: sqlite3DbFreeNN
      Src: /src/nss/lib/sqlite/sqlite3.c:98270,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 32
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - Expr*
    assertStmts:
    - condition: ( p!=0 )
      pos:
        line_end: 98237
        line_start: 98237
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->pRight==0 )
      pos:
        line_end: 98247
        line_start: 98247
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !ExprHasProperty(p, EP_WinFunc) || p->y.pWin!=0 || db->mallocFailed
        )
      pos:
        line_end: 98241
        line_start: 98241
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !ExprHasProperty(p, EP_IntValue) || p->u.iValue>=0 )
      pos:
        line_end: 98239
        line_start: 98239
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( p->op!=TK_FUNCTION || ExprHasProperty(p, EP_TokenOnly|EP_Reduced)\n
        \         || p->y.pWin==0 || ExprHasProperty(p, EP_WinFunc) )"
      pos:
        line_end: 98243
        line_start: 98242
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->x.pSelect==0 )
      pos:
        line_end: 98248
        line_start: 98248
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->pLeft==0 )
      pos:
        line_end: 98246
        line_start: 98246
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->x.pList==0 || p->pRight==0 )
      pos:
        line_end: 98253
        line_start: 98253
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->op==TK_FUNCTION )
      pos:
        line_end: 98263
        line_start: 98263
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 98272
      start: 98237
    functionDepth: 6
    functionLinenumber: 98237
    functionLinenumberEnd: 98272
    functionName: sqlite3ExprDeleteNN
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3ExprDeleteNN
    - sqlite3SelectDelete
    - sqlite3DbFree
    - sqlite3WindowDelete
    - assert
    - sqlite3DbFreeNN
    - ExprHasProperty
    - sqlite3ExprListDelete
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: SQLITE_NOINLINE sqlite3ExprDeleteNN(sqlite3 *db, Expr *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprDeleteNN
      Src: /src/nss/lib/sqlite/sqlite3.c:98274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98275
      start: 98273
    functionDepth: 7
    functionLinenumber: 98273
    functionLinenumberEnd: 98275
    functionName: sqlite3ExprDelete
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 6
    functionsReached:
    - sqlite3ExprDeleteNN
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprDelete(sqlite3 *db, Expr *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3RenameExprUnmap
      Src: /src/nss/lib/sqlite/sqlite3.c:98283,1
    - Dst: sqlite3ExprDeleteNN
      Src: /src/nss/lib/sqlite/sqlite3.c:98285,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - pParse
    - p
    argTypes:
    - Parse*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98287
      start: 98280
    functionDepth: 7
    functionLinenumber: 98280
    functionLinenumberEnd: 98287
    functionName: sqlite3ExprUnmapAndDelete
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3ExprDeleteNN
    - sqlite3RenameExprUnmap
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprUnmapAndDelete(Parse *pParse, Expr *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:98295,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:98296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98298
      start: 98294
    functionDepth: 1
    functionLinenumber: 98294
    functionLinenumberEnd: 98298
    functionName: exprStructSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ExprHasProperty
    linkageType: ''
    returnType: int
    signature: int exprStructSize(Expr *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:98306,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:98307,1
    - Dst: exprStructSize
      Src: /src/nss/lib/sqlite/sqlite3.c:98307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pDest
    - pSrc
    argTypes:
    - Expr*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98308
      start: 98305
    functionDepth: 2
    functionLinenumber: 98305
    functionLinenumberEnd: 98308
    functionName: exprNodeCopy
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - exprStructSize
    - memcpy
    linkageType: ''
    returnType: void
    signature: void exprNodeCopy(Expr *pDest, Expr *pSrc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98346,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98347,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98348,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:98351,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98356,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:98356,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98357,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:98357,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98358,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:98358,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98359,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:98359,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98363,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - p
    - flags
    argTypes:
    - Expr*
    - int
    assertStmts:
    - condition: ( flags==EXPRDUP_REDUCE || flags==0 )
      pos:
        line_end: 98345
        line_start: 98345
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !ExprHasProperty(p, EP_TokenOnly|EP_Reduced) )
      pos:
        line_end: 98355
        line_start: 98355
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( EXPR_FULLSIZE<=0xfff )
      pos:
        line_end: 98346
        line_start: 98346
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (0xfff & (EP_Reduced|EP_TokenOnly))==0 )
      pos:
        line_end: 98347
        line_start: 98347
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !ExprHasProperty(p, EP_FromJoin) )
      pos:
        line_end: 98356
        line_start: 98356
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !ExprHasProperty(p, EP_MemToken) )
      pos:
        line_end: 98357
        line_start: 98357
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !ExprHasProperty(p, EP_NoReduce) )
      pos:
        line_end: 98358
        line_start: 98358
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->pRight==0 )
      pos:
        line_end: 98362
        line_start: 98362
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 98368
      start: 98344
    functionDepth: 1
    functionLinenumber: 98344
    functionLinenumberEnd: 98368
    functionName: dupedExprStructSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - ExprHasProperty
    linkageType: ''
    returnType: int
    signature: int dupedExprStructSize(Expr *p, int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dupedExprStructSize
      Src: /src/nss/lib/sqlite/sqlite3.c:98376,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:98377,1
    - Dst: sqlite3Strlen30NN
      Src: /src/nss/lib/sqlite/sqlite3.c:98378,1
    - Dst: ROUND8
      Src: /src/nss/lib/sqlite/sqlite3.c:98380,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - p
    - flags
    argTypes:
    - Expr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98381
      start: 98375
    functionDepth: 2
    functionLinenumber: 98375
    functionLinenumberEnd: 98381
    functionName: dupedExprNodeSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ExprHasProperty
    - sqlite3Strlen30NN
    - dupedExprStructSize
    - ROUND8
    linkageType: ''
    returnType: int
    signature: int dupedExprNodeSize(Expr *p, int flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dupedExprNodeSize
      Src: /src/nss/lib/sqlite/sqlite3.c:98399,1
    - Dst: dupedExprSize
      Src: /src/nss/lib/sqlite/sqlite3.c:98401,1
    - Dst: dupedExprSize
      Src: /src/nss/lib/sqlite/sqlite3.c:98401,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - p
    - flags
    argTypes:
    - Expr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98405
      start: 98396
    functionDepth: 3
    functionLinenumber: 98396
    functionLinenumberEnd: 98405
    functionName: dupedExprSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - dupedExprSize
    - dupedExprNodeSize
    linkageType: ''
    returnType: int
    signature: int dupedExprSize(Expr *p, int flags)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98420,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98421,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98422,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98423,1
    - Dst: sqlite3DbMallocRawNN
      Src: /src/nss/lib/sqlite/sqlite3.c:98430,1
    - Dst: dupedExprSize
      Src: /src/nss/lib/sqlite/sqlite3.c:98430,1
    - Dst: dupedExprStructSize
      Src: /src/nss/lib/sqlite/sqlite3.c:98441,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:98444,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:98445,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98450,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:98450,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:98451,1
    - Dst: exprStructSize
      Src: /src/nss/lib/sqlite/sqlite3.c:98453,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:98454,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:98456,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:98468,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:98473,1
    - Dst: sqlite3SelectDup
      Src: /src/nss/lib/sqlite/sqlite3.c:98474,1
    - Dst: sqlite3ExprListDup
      Src: /src/nss/lib/sqlite/sqlite3.c:98476,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:98481,1
    - Dst: dupedExprNodeSize
      Src: /src/nss/lib/sqlite/sqlite3.c:98482,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:98483,1
    - Dst: exprDup
      Src: /src/nss/lib/sqlite/sqlite3.c:98485,1
    - Dst: exprDup
      Src: /src/nss/lib/sqlite/sqlite3.c:98487,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:98490,1
    - Dst: sqlite3WindowDup
      Src: /src/nss/lib/sqlite/sqlite3.c:98491,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98492,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:98492,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:98499,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98502,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98503,1
    - Dst: sqlite3ExprDup
      Src: /src/nss/lib/sqlite/sqlite3.c:98505,1
    - Dst: sqlite3ExprDup
      Src: /src/nss/lib/sqlite/sqlite3.c:98507,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 68
    argCount: 4
    argNames:
    - db
    - p
    - dupFlags
    - pzBuffer
    argTypes:
    - sqlite3*
    - Expr*
    - int
    - u8**
    assertStmts:
    - condition: ( p )
      pos:
        line_end: 98420
        line_start: 98420
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( ExprHasProperty(pNew, EP_WinFunc) )
      pos:
        line_end: 98491
        line_start: 98491
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->iColumn==0 || p->pRight==0 )
      pos:
        line_end: 98501
        line_start: 98501
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->pRight==0  || p->pRight==p->pLeft )
      pos:
        line_end: 98502
        line_start: 98502
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pzBuffer==0 || dupFlags==EXPRDUP_REDUCE )
      pos:
        line_end: 98422
        line_start: 98422
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( dupFlags==0 || dupFlags==EXPRDUP_REDUCE )
      pos:
        line_end: 98421
        line_start: 98421
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( db!=0 )
      pos:
        line_end: 98419
        line_start: 98419
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( ExprHasProperty(p, EP_Reduced)==0 )
      pos:
        line_end: 98449
        line_start: 98449
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 98512
      start: 98415
    functionDepth: 7
    functionLinenumber: 98415
    functionLinenumberEnd: 98512
    functionName: exprDup
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - dupedExprSize
    - memcpy
    - sqlite3DbMallocRawNN
    - sqlite3ExprListDup
    - sqlite3WindowDup
    - assert
    - memset
    - exprDup
    - sqlite3Strlen30
    - dupedExprStructSize
    - sqlite3ExprDup
    - exprStructSize
    - ExprHasProperty
    - dupedExprNodeSize
    - sqlite3SelectDup
    linkageType: ''
    returnType: Expr
    signature: Expr *exprDup(sqlite3 *db, Expr *p, int dupFlags, u8 **pzBuffer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbMallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:98524,1
    - Dst: sqlite3SelectDup
      Src: /src/nss/lib/sqlite/sqlite3.c:98529,1
    - Dst: sqlite3ExprListDup
      Src: /src/nss/lib/sqlite/sqlite3.c:98530,1
    - Dst: sqlite3DbStrDup
      Src: /src/nss/lib/sqlite/sqlite3.c:98531,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - With*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98536
      start: 98520
    functionDepth: 7
    functionLinenumber: 98520
    functionLinenumberEnd: 98536
    functionName: withDup
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbStrDup
    - sqlite3SelectDup
    - sqlite3ExprListDup
    - sqlite3DbMallocZero
    linkageType: ''
    returnType: With
    signature: With *withDup(sqlite3 *db, With *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98539
      start: 98538
    functionDepth: 0
    functionLinenumber: 98538
    functionLinenumberEnd: 98539
    functionName: withDup
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: withDup(x,y)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98550,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:98550,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - pWalker
    - pExpr
    argTypes:
    - Walker*
    - Expr*
    assertStmts:
    - condition: ( ExprHasProperty(pExpr, EP_WinFunc) )
      pos:
        line_end: 98549
        line_start: 98549
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 98555
      start: 98548
    functionDepth: 1
    functionLinenumber: 98548
    functionLinenumberEnd: 98555
    functionName: gatherSelectWindowsCallback
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - ExprHasProperty
    linkageType: ''
    returnType: int
    signature: int gatherSelectWindowsCallback(Walker *pWalker, Expr *pExpr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pWalker
    - p
    argTypes:
    - Walker*
    - Select*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98558
      start: 98556
    functionDepth: 0
    functionLinenumber: 98556
    functionLinenumberEnd: 98558
    functionName: gatherSelectWindowsSelectCallback
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int gatherSelectWindowsSelectCallback(Walker *pWalker, Select *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3WalkSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:98566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - Select*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98567
      start: 98559
    functionDepth: 7
    functionLinenumber: 98559
    functionLinenumberEnd: 98567
    functionName: gatherSelectWindows
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3WalkSelect
    linkageType: ''
    returnType: void
    signature: void gatherSelectWindows(Select *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98589,1
    - Dst: exprDup
      Src: /src/nss/lib/sqlite/sqlite3.c:98590,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - db
    - p
    - flags
    argTypes:
    - sqlite3*
    - Expr*
    - int
    assertStmts:
    - condition: ( flags==0 || flags==EXPRDUP_REDUCE )
      pos:
        line_end: 98588
        line_start: 98588
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 98591
      start: 98588
    functionDepth: 8
    functionLinenumber: 98588
    functionLinenumberEnd: 98591
    functionName: sqlite3ExprDup
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 4
    functionsReached:
    - assert
    - exprDup
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3ExprDup(sqlite3 *db, Expr *p, int flags)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98597,1
    - Dst: sqlite3DbMallocRawNN
      Src: /src/nss/lib/sqlite/sqlite3.c:98599,1
    - Dst: sqlite3DbMallocSize
      Src: /src/nss/lib/sqlite/sqlite3.c:98599,1
    - Dst: sqlite3ExprDup
      Src: /src/nss/lib/sqlite/sqlite3.c:98607,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98612,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98614,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98617,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98618,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98619,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98620,1
    - Dst: sqlite3DbStrDup
      Src: /src/nss/lib/sqlite/sqlite3.c:98624,1
    - Dst: sqlite3DbStrDup
      Src: /src/nss/lib/sqlite/sqlite3.c:98625,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 3
    argNames:
    - db
    - p
    - flags
    argTypes:
    - sqlite3*
    - ExprList*
    - int
    assertStmts:
    - condition: ( db!=0 )
      pos:
        line_end: 98596
        line_start: 98596
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pNewExpr->iColumn==0 || i>0 )
      pos:
        line_end: 98611
        line_start: 98611
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOldExpr->pLeft==pOldExpr->pRight )
      pos:
        line_end: 98613
        line_start: 98613
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( i>0 )
      pos:
        line_end: 98616
        line_start: 98616
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pItem[-1].pExpr!=0 )
      pos:
        line_end: 98617
        line_start: 98617
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pNewExpr->iColumn==pItem[-1].pExpr->iColumn+1 )
      pos:
        line_end: 98618
        line_start: 98618
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPriorSelectCol==pItem[-1].pExpr->pLeft )
      pos:
        line_end: 98619
        line_start: 98619
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 98633
      start: 98592
    functionDepth: 9
    functionLinenumber: 98592
    functionLinenumberEnd: 98633
    functionName: sqlite3ExprListDup
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3DbMallocRawNN
    - sqlite3DbStrDup
    - sqlite3DbMallocSize
    - assert
    - sqlite3ExprDup
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3ExprListDup(sqlite3 *db, ExprList *p, int flags)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98647,1
    - Dst: sqlite3DbMallocRawNN
      Src: /src/nss/lib/sqlite/sqlite3.c:98650,1
    - Dst: sqlite3DbStrDup
      Src: /src/nss/lib/sqlite/sqlite3.c:98658,1
    - Dst: sqlite3DbStrDup
      Src: /src/nss/lib/sqlite/sqlite3.c:98659,1
    - Dst: sqlite3DbStrDup
      Src: /src/nss/lib/sqlite/sqlite3.c:98660,1
    - Dst: sqlite3DbStrDup
      Src: /src/nss/lib/sqlite/sqlite3.c:98666,1
    - Dst: sqlite3ExprListDup
      Src: /src/nss/lib/sqlite/sqlite3.c:98671,1
    - Dst: sqlite3SelectDup
      Src: /src/nss/lib/sqlite/sqlite3.c:98677,1
    - Dst: sqlite3ExprDup
      Src: /src/nss/lib/sqlite/sqlite3.c:98678,1
    - Dst: sqlite3IdListDup
      Src: /src/nss/lib/sqlite/sqlite3.c:98679,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 3
    argNames:
    - db
    - p
    - flags
    argTypes:
    - sqlite3*
    - SrcList*
    - int
    assertStmts:
    - condition: ( db!=0 )
      pos:
        line_end: 98646
        line_start: 98646
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 98683
      start: 98643
    functionDepth: 10
    functionLinenumber: 98643
    functionLinenumberEnd: 98683
    functionName: sqlite3SrcListDup
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3IdListDup
    - sqlite3DbMallocRawNN
    - sqlite3DbStrDup
    - sqlite3ExprListDup
    - assert
    - sqlite3ExprDup
    - sqlite3SelectDup
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3SrcListDup(sqlite3 *db, SrcList *p, int flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98687,1
    - Dst: sqlite3DbMallocRawNN
      Src: /src/nss/lib/sqlite/sqlite3.c:98689,1
    - Dst: sqlite3DbMallocRawNN
      Src: /src/nss/lib/sqlite/sqlite3.c:98692,1
    - Dst: sqlite3DbFreeNN
      Src: /src/nss/lib/sqlite/sqlite3.c:98694,1
    - Dst: sqlite3DbStrDup
      Src: /src/nss/lib/sqlite/sqlite3.c:98703,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - IdList*
    assertStmts:
    - condition: ( db!=0 )
      pos:
        line_end: 98686
        line_start: 98686
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 98707
      start: 98684
    functionDepth: 7
    functionLinenumber: 98684
    functionLinenumberEnd: 98707
    functionName: sqlite3IdListDup
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - sqlite3DbMallocRawNN
    - sqlite3DbStrDup
    - sqlite3DbFreeNN
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3IdListDup(sqlite3 *db, IdList *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98714,1
    - Dst: sqlite3DbMallocRawNN
      Src: /src/nss/lib/sqlite/sqlite3.c:98716,1
    - Dst: sqlite3ExprListDup
      Src: /src/nss/lib/sqlite/sqlite3.c:98718,1
    - Dst: sqlite3SrcListDup
      Src: /src/nss/lib/sqlite/sqlite3.c:98719,1
    - Dst: sqlite3ExprDup
      Src: /src/nss/lib/sqlite/sqlite3.c:98720,1
    - Dst: sqlite3ExprListDup
      Src: /src/nss/lib/sqlite/sqlite3.c:98721,1
    - Dst: sqlite3ExprDup
      Src: /src/nss/lib/sqlite/sqlite3.c:98722,1
    - Dst: sqlite3ExprListDup
      Src: /src/nss/lib/sqlite/sqlite3.c:98723,1
    - Dst: sqlite3ExprDup
      Src: /src/nss/lib/sqlite/sqlite3.c:98727,1
    - Dst: withDup
      Src: /src/nss/lib/sqlite/sqlite3.c:98734,1
    - Dst: sqlite3WindowListDup
      Src: /src/nss/lib/sqlite/sqlite3.c:98737,1
    - Dst: gatherSelectWindows
      Src: /src/nss/lib/sqlite/sqlite3.c:98738,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 3
    argNames:
    - db
    - pDup
    - flags
    argTypes:
    - sqlite3*
    - Select*
    - int
    assertStmts:
    - condition: ( db!=0 )
      pos:
        line_end: 98713
        line_start: 98713
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 98747
      start: 98708
    functionDepth: 11
    functionLinenumber: 98708
    functionLinenumberEnd: 98747
    functionName: sqlite3SelectDup
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 3
    functionsReached:
    - sqlite3WindowListDup
    - sqlite3DbMallocRawNN
    - sqlite3ExprListDup
    - assert
    - sqlite3SrcListDup
    - gatherSelectWindows
    - sqlite3ExprDup
    - withDup
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3SelectDup(sqlite3 *db, Select *pDup, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98750,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - db
    - p
    - flags
    argTypes:
    - sqlite3*
    - Select*
    - int
    assertStmts:
    - condition: ( p==0 )
      pos:
        line_end: 98749
        line_start: 98749
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 98752
      start: 98749
    functionDepth: 0
    functionLinenumber: 98749
    functionLinenumberEnd: 98752
    functionName: sqlite3SelectDup
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 3
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3SelectDup(sqlite3 *db, Select *p, int flags)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98778,1
    - Dst: sqlite3DbMallocRawNN
      Src: /src/nss/lib/sqlite/sqlite3.c:98780,1
    - Dst: sqlite3DbRealloc
      Src: /src/nss/lib/sqlite/sqlite3.c:98787,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98795,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98796,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:98797,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:98803,1
    - Dst: sqlite3ExprListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:98804,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 3
    argNames:
    - pParse
    - pList
    - pExpr
    argTypes:
    - Parse*
    - ExprList*
    - Expr*
    assertStmts:
    - condition: ( db!=0 )
      pos:
        line_end: 98777
        line_start: 98777
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( offsetof(struct ExprList_item,pExpr)==0 )
      pos:
        line_end: 98795
        line_start: 98795
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( offsetof(struct ExprList_item,zName)==sizeof(pItem->pExpr) )
      pos:
        line_end: 98794
        line_start: 98794
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 98806
      start: 98771
    functionDepth: 8
    functionLinenumber: 98771
    functionLinenumberEnd: 98806
    functionName: sqlite3ExprListAppend
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbMallocRawNN
    - sqlite3ExprDelete
    - assert
    - memset
    - sqlite3DbRealloc
    - sqlite3ExprListDelete
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3ExprListAppend(\n  Parse *pParse,          /*
      Parsing context */\n  ExprList *pList,        /* List to which to append. Might
      be NULL */\n  Expr *pExpr             /* Expression to be appended. Might be
      NULL */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NEVER
      Src: /src/nss/lib/sqlite/sqlite3.c:98831,1
    - Dst: sqlite3ExprVectorSize
      Src: /src/nss/lib/sqlite/sqlite3.c:98839,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:98840,1
    - Dst: sqlite3ExprForVectorField
      Src: /src/nss/lib/sqlite/sqlite3.c:98846,1
    - Dst: sqlite3ExprListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:98847,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98849,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:98855,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98857,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98858,1
    - Dst: sqlite3ExprUnmapAndDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:98871,1
    - Dst: sqlite3IdListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:98872,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 4
    argNames:
    - pParse
    - pList
    - pColumns
    - pExpr
    argTypes:
    - Parse*
    - ExprList*
    - IdList*
    - Expr*
    assertStmts:
    - condition: ( pList->nExpr==iFirst+i+1 )
      pos:
        line_end: 98848
        line_start: 98848
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pFirst!=0 )
      pos:
        line_end: 98856
        line_start: 98856
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pFirst->op==TK_SELECT_COLUMN )
      pos:
        line_end: 98857
        line_start: 98857
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 98874
      start: 98819
    functionDepth: 10
    functionLinenumber: 98819
    functionLinenumberEnd: 98874
    functionName: sqlite3ExprListAppendVector
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - NEVER
    - ALWAYS
    - sqlite3IdListDelete
    - sqlite3ExprVectorSize
    - sqlite3ExprUnmapAndDelete
    - assert
    - sqlite3ExprForVectorField
    - sqlite3ErrorMsg
    - sqlite3ExprListAppend
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3ExprListAppendVector(\n  Parse *pParse,         /*
      Parsing context */\n  ExprList *pList,       /* List to which to append. Might
      be NULL */\n  IdList *pColumns,      /* List of names of LHS of the assignment
      */\n  Expr *pExpr            /* Vector expression to be appended. Might be NULL
      */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98881,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98882,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98884,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - p
    - iSortOrder
    argTypes:
    - ExprList*
    - int
    assertStmts:
    - condition: ( SQLITE_SO_UNDEFINED<0 && SQLITE_SO_ASC>=0 && SQLITE_SO_DESC>0 )
      pos:
        line_end: 98880
        line_start: 98880
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->a[p->nExpr-1].sortOrder==SQLITE_SO_ASC )
      pos:
        line_end: 98883
        line_start: 98883
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->nExpr>0 )
      pos:
        line_end: 98881
        line_start: 98881
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 98888
      start: 98879
    functionDepth: 0
    functionLinenumber: 98879
    functionLinenumberEnd: 98888
    functionName: sqlite3ExprListSetSortOrder
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprListSetSortOrder(ExprList *p, int iSortOrder)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98904,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98907,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98909,1
    - Dst: sqlite3DbStrNDup
      Src: /src/nss/lib/sqlite/sqlite3.c:98910,1
    - Dst: sqlite3Dequote
      Src: /src/nss/lib/sqlite/sqlite3.c:98911,1
    - Dst: sqlite3RenameTokenMap
      Src: /src/nss/lib/sqlite/sqlite3.c:98913,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - pParse
    - pList
    - pName
    - dequote
    argTypes:
    - Parse*
    - ExprList*
    - Token*
    - int
    assertStmts:
    - condition: ( pList!=0 || pParse->db->mallocFailed!=0 )
      pos:
        line_end: 98903
        line_start: 98903
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pItem->zName==0 )
      pos:
        line_end: 98908
        line_start: 98908
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pList->nExpr>0 )
      pos:
        line_end: 98906
        line_start: 98906
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 98916
      start: 98898
    functionDepth: 8
    functionLinenumber: 98898
    functionLinenumberEnd: 98916
    functionName: sqlite3ExprListSetName
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3RenameTokenMap
    - sqlite3Dequote
    - sqlite3DbStrNDup
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3ExprListSetName(\n  Parse *pParse,          /*
      Parsing context */\n  ExprList *pList,        /* List to which to add the span.
      */\n  Token *pName,           /* Name to be added */\n  int dequote             /*
      True to cause the name to be dequoted */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98933,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98936,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:98937,1
    - Dst: sqlite3DbSpanDup
      Src: /src/nss/lib/sqlite/sqlite3.c:98938,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - pParse
    - pList
    - zStart
    - zEnd
    argTypes:
    - Parse*
    - ExprList*
    - char*
    - char*
    assertStmts:
    - condition: ( pList!=0 || db->mallocFailed!=0 )
      pos:
        line_end: 98932
        line_start: 98932
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pList->nExpr>0 )
      pos:
        line_end: 98935
        line_start: 98935
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 98940
      start: 98926
    functionDepth: 9
    functionLinenumber: 98926
    functionLinenumberEnd: 98940
    functionName: sqlite3ExprListSetSpan
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3DbFree
    - sqlite3DbSpanDup
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3ExprListSetSpan(\n  Parse *pParse,          /*
      Parsing context */\n  ExprList *pList,        /* List to which to add the span.
      */\n  const char *zStart,     /* Start of the span */\n  const char *zEnd        /*
      End of the span */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:98952,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:98953,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:98955,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 3
    argNames:
    - pParse
    - pEList
    - zObject
    argTypes:
    - Parse*
    - ExprList*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98957
      start: 98946
    functionDepth: 10
    functionLinenumber: 98946
    functionLinenumberEnd: 98957
    functionName: sqlite3ExprListCheckLength
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - testcase
    - sqlite3ErrorMsg
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3ExprListCheckLength(\n  Parse *pParse,\n  ExprList
      *pEList,\n  const char *zObject\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98965,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:98967,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:98968,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:98969,1
    - Dst: sqlite3DbFreeNN
      Src: /src/nss/lib/sqlite/sqlite3.c:98972,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - db
    - pList
    argTypes:
    - sqlite3*
    - ExprList*
    assertStmts:
    - condition: ( pList->nExpr>0 )
      pos:
        line_end: 98964
        line_start: 98964
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 98973
      start: 98962
    functionDepth: 8
    functionLinenumber: 98962
    functionLinenumberEnd: 98973
    functionName: exprListDeleteNN
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3DbFree
    - sqlite3DbFreeNN
    - sqlite3ExprDelete
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: SQLITE_NOINLINE exprListDeleteNN(sqlite3 *db, ExprList *pList)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: exprListDeleteNN
      Src: /src/nss/lib/sqlite/sqlite3.c:98975,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - db
    - pList
    argTypes:
    - sqlite3*
    - ExprList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98976
      start: 98974
    functionDepth: 9
    functionLinenumber: 98974
    functionLinenumberEnd: 98976
    functionName: sqlite3ExprListDelete
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 3
    functionsReached:
    - exprListDeleteNN
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprListDelete(sqlite3 *db, ExprList *pList)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98985,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:98988,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pList
    argTypes:
    - ExprList*
    assertStmts:
    - condition: ( pList!=0 )
      pos:
        line_end: 98984
        line_start: 98984
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pExpr!=0 )
      pos:
        line_end: 98987
        line_start: 98987
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 98992
      start: 98982
    functionDepth: 0
    functionLinenumber: 98982
    functionLinenumberEnd: 98992
    functionName: sqlite3ExprListFlags
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprListFlags(const ExprList *pList)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:99002,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pWalker
    - NotUsed
    argTypes:
    - Walker*
    - Select*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99005
      start: 99001
    functionDepth: 1
    functionLinenumber: 99001
    functionLinenumberEnd: 99005
    functionName: sqlite3SelectWalkFail
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3SelectWalkFail(Walker *pWalker, Select *NotUsed)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:99013,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:99014,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:99015,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:99016,1
    - Dst: ExprSetProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:99019,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - pExpr
    argTypes:
    - Expr*
    assertStmts:
    - condition: ( pExpr->op==TK_ID || pExpr->op==TK_STRING )
      pos:
        line_end: 99012
        line_start: 99012
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 99023
      start: 99012
    functionDepth: 1
    functionLinenumber: 99012
    functionLinenumberEnd: 99023
    functionName: sqlite3ExprIdToTrueFalse
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - ExprHasProperty
    - ExprSetProperty
    - sqlite3StrICmp
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprIdToTrueFalse(Expr *pExpr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprSkipCollate
      Src: /src/nss/lib/sqlite/sqlite3.c:99030,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:99031,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:99032,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:99032,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:99033,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pExpr
    argTypes:
    - Expr*
    assertStmts:
    - condition: ( pExpr->op==TK_TRUEFALSE )
      pos:
        line_end: 99030
        line_start: 99030
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( sqlite3StrICmp(pExpr->u.zToken,\"true\")==0\n       || sqlite3StrICmp(pExpr->u.zToken,\"false\")==0
        )"
      pos:
        line_end: 99032
        line_start: 99031
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 99035
      start: 99029
    functionDepth: 2
    functionLinenumber: 99029
    functionLinenumberEnd: 99035
    functionName: sqlite3ExprTruthValue
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - sqlite3ExprSkipCollate
    - sqlite3StrICmp
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprTruthValue(const Expr *pExpr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:99051,1
    - Dst: sqlite3ExprSimplifiedAndOr
      Src: /src/nss/lib/sqlite/sqlite3.c:99053,1
    - Dst: sqlite3ExprSimplifiedAndOr
      Src: /src/nss/lib/sqlite/sqlite3.c:99054,1
    - Dst: ExprAlwaysTrue
      Src: /src/nss/lib/sqlite/sqlite3.c:99055,1
    - Dst: ExprAlwaysFalse
      Src: /src/nss/lib/sqlite/sqlite3.c:99055,1
    - Dst: ExprAlwaysTrue
      Src: /src/nss/lib/sqlite/sqlite3.c:99057,1
    - Dst: ExprAlwaysFalse
      Src: /src/nss/lib/sqlite/sqlite3.c:99057,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - pExpr
    argTypes:
    - Expr*
    assertStmts:
    - condition: ( pExpr!=0 )
      pos:
        line_end: 99050
        line_start: 99050
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 99062
      start: 99050
    functionDepth: 1
    functionLinenumber: 99050
    functionLinenumberEnd: 99062
    functionName: sqlite3ExprSimplifiedAndOr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - ExprAlwaysFalse
    - sqlite3ExprSimplifiedAndOr
    - ExprAlwaysTrue
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3ExprSimplifiedAndOr(Expr *pExpr)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:99095,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:99105,1
    - Dst: sqlite3ExprIdToTrueFalse
      Src: /src/nss/lib/sqlite/sqlite3.c:99114,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:99121,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:99122,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:99123,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:99124,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:99125,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:99134,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:99135,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:99152,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:99153,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 49
    argCount: 2
    argNames:
    - pWalker
    - pExpr
    argTypes:
    - Walker*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99156
      start: 99090
    functionDepth: 2
    functionLinenumber: 99090
    functionLinenumberEnd: 99156
    functionName: exprNodeIsConstant
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ExprHasProperty
    - testcase
    - sqlite3ExprIdToTrueFalse
    linkageType: ''
    returnType: int
    signature: int exprNodeIsConstant(Walker *pWalker, Expr *pExpr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3WalkExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:99166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - p
    - initFlag
    - iCur
    argTypes:
    - Expr*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99168
      start: 99157
    functionDepth: 4
    functionLinenumber: 99157
    functionLinenumberEnd: 99168
    functionName: exprIsConst
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3WalkExpr
    linkageType: ''
    returnType: int
    signature: int exprIsConst(Expr *p, int initFlag, int iCur)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exprIsConst
      Src: /src/nss/lib/sqlite/sqlite3.c:99179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99180
      start: 99178
    functionDepth: 5
    functionLinenumber: 99178
    functionLinenumberEnd: 99180
    functionName: sqlite3ExprIsConstant
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - exprIsConst
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprIsConstant(Expr *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exprIsConst
      Src: /src/nss/lib/sqlite/sqlite3.c:99196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99197
      start: 99195
    functionDepth: 5
    functionLinenumber: 99195
    functionLinenumberEnd: 99197
    functionName: sqlite3ExprIsConstantNotJoin
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - exprIsConst
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprIsConstantNotJoin(Expr *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exprIsConst
      Src: /src/nss/lib/sqlite/sqlite3.c:99206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - iCur
    argTypes:
    - Expr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99207
      start: 99205
    functionDepth: 5
    functionLinenumber: 99205
    functionLinenumberEnd: 99207
    functionName: sqlite3ExprIsTableConstant
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - exprIsConst
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprIsTableConstant(Expr *p, int iCur)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:99221,1
    - Dst: sqlite3ExprNNCollSeq
      Src: /src/nss/lib/sqlite/sqlite3.c:99222,1
    - Dst: sqlite3IsBinary
      Src: /src/nss/lib/sqlite/sqlite3.c:99223,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:99230,1
    - Dst: exprNodeIsConstant
      Src: /src/nss/lib/sqlite/sqlite3.c:99235,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - pWalker
    - pExpr
    argTypes:
    - Walker*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99236
      start: 99213
    functionDepth: 3
    functionLinenumber: 99213
    functionLinenumberEnd: 99236
    functionName: exprNodeIsConstantOrGroupBy
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ExprCompare
    - exprNodeIsConstant
    - sqlite3IsBinary
    - ExprHasProperty
    - sqlite3ExprNNCollSeq
    linkageType: ''
    returnType: int
    signature: int exprNodeIsConstantOrGroupBy(Walker *pWalker, Expr *pExpr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3WalkExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:99264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - pParse
    - p
    - pGroupBy
    argTypes:
    - Parse*
    - Expr*
    - ExprList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99266
      start: 99257
    functionDepth: 4
    functionLinenumber: 99257
    functionLinenumberEnd: 99266
    functionName: sqlite3ExprIsConstantOrGroupBy
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3WalkExpr
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprIsConstantOrGroupBy(Parse *pParse, Expr *p,
      ExprList *pGroupBy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:99278,1
    - Dst: exprIsConst
      Src: /src/nss/lib/sqlite/sqlite3.c:99279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - p
    - isInit
    argTypes:
    - Expr*
    - u8
    assertStmts:
    - condition: ( isInit==0 || isInit==1 )
      pos:
        line_end: 99277
        line_start: 99277
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 99280
      start: 99277
    functionDepth: 5
    functionLinenumber: 99277
    functionLinenumberEnd: 99280
    functionName: sqlite3ExprIsConstantOrFunction
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - exprIsConst
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprIsConstantOrFunction(Expr *p, u8 isInit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3WalkExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:99295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99297
      start: 99287
    functionDepth: 4
    functionLinenumber: 99287
    functionLinenumberEnd: 99297
    functionName: sqlite3ExprContainsSubquery
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3WalkExpr
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprContainsSubquery(Expr *p)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: NEVER
      Src: /src/nss/lib/sqlite/sqlite3.c:99308,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:99312,1
    - Dst: sqlite3GetInt32
      Src: /src/nss/lib/sqlite/sqlite3.c:99313,1
    - Dst: sqlite3ExprIsInteger
      Src: /src/nss/lib/sqlite/sqlite3.c:99321,1
    - Dst: sqlite3ExprIsInteger
      Src: /src/nss/lib/sqlite/sqlite3.c:99326,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:99327,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 2
    argNames:
    - p
    - pValue
    argTypes:
    - Expr*
    - int*
    assertStmts:
    - condition: "( p->op!=TK_INTEGER || (p->flags & EP_IntValue)!=0\n           ||
        sqlite3GetInt32(p->u.zToken, &rc)==0 )"
      pos:
        line_end: 99312
        line_start: 99311
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( v!=(-2147483647-1) )
      pos:
        line_end: 99326
        line_start: 99326
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 99336
      start: 99306
    functionDepth: 2
    functionLinenumber: 99306
    functionLinenumberEnd: 99336
    functionName: sqlite3ExprIsInteger
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 4
    functionsReached:
    - NEVER
    - sqlite3GetInt32
    - assert
    - sqlite3ExprIsInteger
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprIsInteger(Expr *p, int *pValue)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:99366,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - p
    argTypes:
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99372
      start: 99352
    functionDepth: 1
    functionLinenumber: 99352
    functionLinenumberEnd: 99372
    functionName: sqlite3ExprCanBeNull
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ExprHasProperty
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprCanBeNull(const Expr *p)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:99404,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 2
    argNames:
    - p
    - aff
    argTypes:
    - Expr*
    - char
    assertStmts:
    - condition: ( p->iTable>=0 )
      pos:
        line_end: 99403
        line_start: 99403
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 99412
      start: 99384
    functionDepth: 0
    functionLinenumber: 99384
    functionLinenumberEnd: 99412
    functionName: sqlite3ExprNeedsNoAffinityChange
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprNeedsNoAffinityChange(const Expr *p, char
      aff)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:99418,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:99419,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:99420,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - z
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99422
      start: 99417
    functionDepth: 1
    functionLinenumber: 99417
    functionLinenumberEnd: 99422
    functionName: sqlite3IsRowid
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3StrICmp
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3IsRowid(const char *z)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:99438,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:99439,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:99443,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:99444,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:99447,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:99451,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:99455,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:99456,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:99457,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:99459,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:99464,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 1
    argNames:
    - pX
    argTypes:
    - Expr*
    assertStmts:
    - condition: ( p->pGroupBy==0 )
      pos:
        line_end: 99446
        line_start: 99446
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pSrc!=0 )
      pos:
        line_end: 99450
        line_start: 99450
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTab!=0 )
      pos:
        line_end: 99454
        line_start: 99454
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTab->pSelect==0 )
      pos:
        line_end: 99455
        line_start: 99455
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pEList!=0 )
      pos:
        line_end: 99458
        line_start: 99458
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pRes->iTable==pSrc->a[0].iCursor )
      pos:
        line_end: 99463
        line_start: 99463
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 99467
      start: 99432
    functionDepth: 1
    functionLinenumber: 99432
    functionLinenumberEnd: 99467
    functionName: isCandidateForInOpt
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - ExprHasProperty
    - testcase
    - IsVirtual
    linkageType: ''
    returnType: Select
    signature: Select *isCandidateForInOpt(Expr *pX)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:99479,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:99480,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:99480,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:99481,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:99482,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:99483,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:99484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - v
    - iCur
    - regHasNull
    argTypes:
    - Vdbe*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99485
      start: 99477
    functionDepth: 12
    functionLinenumber: 99477
    functionLinenumberEnd: 99485
    functionName: sqlite3SetHasNullFlag
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeAddOp2
    - sqlite3VdbeAddOp3
    - sqlite3VdbeJumpHere
    - sqlite3VdbeChangeP5
    - sqlite3VdbeAddOp1
    - VdbeCoverage
    - VdbeComment
    linkageType: ''
    returnType: void
    signature: void sqlite3SetHasNullFlag(Vdbe *v, int iCur, int regHasNull)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:99497,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:99497,1
    - Dst: sqlite3ExprIsConstant
      Src: /src/nss/lib/sqlite/sqlite3.c:99500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - pIn
    argTypes:
    - Expr*
    assertStmts:
    - condition: ( !ExprHasProperty(pIn, EP_xIsSelect) )
      pos:
        line_end: 99496
        line_start: 99496
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 99503
      start: 99494
    functionDepth: 6
    functionLinenumber: 99494
    functionLinenumberEnd: 99503
    functionName: sqlite3InRhsIsConstant
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - ExprHasProperty
    - sqlite3ExprIsConstant
    linkageType: ''
    returnType: int
    signature: int sqlite3InRhsIsConstant(Expr *pIn)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetVdbe
      Src: /src/nss/lib/sqlite/sqlite3.c:99599,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:99601,1
    - Dst: sqlite3ExprCanBeNull
      Src: /src/nss/lib/sqlite/sqlite3.c:99613,1
    - Dst: isCandidateForInOpt
      Src: /src/nss/lib/sqlite/sqlite3.c:99623,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:99630,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:99631,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:99632,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:99636,1
    - Dst: sqlite3CodeVerifySchema
      Src: /src/nss/lib/sqlite/sqlite3.c:99637,1
    - Dst: sqlite3TableLock
      Src: /src/nss/lib/sqlite/sqlite3.c:99638,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:99640,1
    - Dst: sqlite3VdbeAddOp0
      Src: /src/nss/lib/sqlite/sqlite3.c:99643,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:99644,1
    - Dst: sqlite3OpenTable
      Src: /src/nss/lib/sqlite/sqlite3.c:99646,1
    - Dst: ExplainQueryPlan
      Src: /src/nss/lib/sqlite/sqlite3.c:99648,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:99650,1
    - Dst: sqlite3VectorFieldSubexpr
      Src: /src/nss/lib/sqlite/sqlite3.c:99661,1
    - Dst: sqlite3TableColumnAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:99663,1
    - Dst: sqlite3CompareAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:99664,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:99665,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:99666,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:99675,1
    - Dst: sqlite3IsNumericAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:99678,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:99691,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:99692,1
    - Dst: IsUniqueIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:99696,1
    - Dst: sqlite3VectorFieldSubexpr
      Src: /src/nss/lib/sqlite/sqlite3.c:99704,1
    - Dst: sqlite3BinaryCompareCollSeq
      Src: /src/nss/lib/sqlite/sqlite3.c:99706,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:99709,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:99712,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:99713,1
    - Dst: MASKBIT
      Src: /src/nss/lib/sqlite/sqlite3.c:99719,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:99725,1
    - Dst: MASKBIT
      Src: /src/nss/lib/sqlite/sqlite3.c:99725,1
    - Dst: MASKBIT
      Src: /src/nss/lib/sqlite/sqlite3.c:99726,1
    - Dst: sqlite3VdbeAddOp0
      Src: /src/nss/lib/sqlite/sqlite3.c:99728,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:99728,1
    - Dst: ExplainQueryPlan
      Src: /src/nss/lib/sqlite/sqlite3.c:99729,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:99731,1
    - Dst: sqlite3VdbeSetP4KeyInfo
      Src: /src/nss/lib/sqlite/sqlite3.c:99732,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:99733,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:99734,1
    - Dst: sqlite3VdbeAddOp4Dup8
      Src: /src/nss/lib/sqlite/sqlite3.c:99740,1
    - Dst: sqlite3SetHasNullFlag
      Src: /src/nss/lib/sqlite/sqlite3.c:99745,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:99748,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:99764,1
    - Dst: sqlite3InRhsIsConstant
      Src: /src/nss/lib/sqlite/sqlite3.c:99765,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:99782,1
    - Dst: sqlite3CodeRhsOfIN
      Src: /src/nss/lib/sqlite/sqlite3.c:99783,1
    - Dst: sqlite3SetHasNullFlag
      Src: /src/nss/lib/sqlite/sqlite3.c:99785,1
    - Dst: sqlite3ExprVectorSize
      Src: /src/nss/lib/sqlite/sqlite3.c:99792,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 124
    argCount: 6
    argNames:
    - pParse
    - pX
    - inFlags
    - prRhsHasNull
    - aiMap
    - piTab
    argTypes:
    - Parse*
    - Expr*
    - u32
    - int*
    - int*
    - int*
    assertStmts:
    - condition: ( p->pSrc!=0 )
      pos:
        line_end: 99631
        line_start: 99631
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( i==nExpr || colUsed!=(MASKBIT(nExpr)-1) )
      pos:
        line_end: 99724
        line_start: 99724
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIdx->azColl[j] )
      pos:
        line_end: 99711
        line_start: 99711
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( IN_INDEX_INDEX_DESC == IN_INDEX_INDEX_ASC+1 )
      pos:
        line_end: 99733
        line_start: 99733
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pReq!=0 || pRhs->iColumn==XN_ROWID || pParse->nErr )
      pos:
        line_end: 99708
        line_start: 99708
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pX->op==TK_IN )
      pos:
        line_end: 99600
        line_start: 99600
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->pEList!=0 )
      pos:
        line_end: 99629
        line_start: 99629
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->pEList->a[0].pExpr!=0 )
      pos:
        line_end: 99630
        line_start: 99630
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (v)
      pos:
        line_end: 99639
        line_start: 99639
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pX->op==TK_IN )
      pos:
        line_end: 99781
        line_start: 99781
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( idxaff==SQLITE_AFF_TEXT )
      pos:
        line_end: 99674
        line_start: 99674
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 99797
      start: 99587
    functionDepth: 13
    functionLinenumber: 99587
    functionLinenumberEnd: 99797
    functionName: sqlite3FindInIndex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - IsUniqueIndex
    - sqlite3VdbeSetP4KeyInfo
    - sqlite3VdbeAddOp3
    - sqlite3CompareAffinity
    - sqlite3TableColumnAffinity
    - sqlite3GetVdbe
    - testcase
    - VdbeComment
    - sqlite3IsNumericAffinity
    - sqlite3StrICmp
    - MASKBIT
    - assert
    - sqlite3VdbeJumpHere
    - sqlite3ExprCanBeNull
    - sqlite3VdbeAddOp0
    - ExprHasProperty
    - sqlite3SchemaToIndex
    - ExplainQueryPlan
    - sqlite3VectorFieldSubexpr
    - sqlite3InRhsIsConstant
    - sqlite3ExprVectorSize
    - sqlite3VdbeAddOp4Dup8
    - VdbeCoverage
    - sqlite3OpenTable
    - sqlite3SetHasNullFlag
    - isCandidateForInOpt
    - sqlite3TableLock
    - sqlite3BinaryCompareCollSeq
    - sqlite3CodeRhsOfIN
    - sqlite3CodeVerifySchema
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3FindInIndex(\n  Parse *pParse,             /*
      Parsing context */\n  Expr *pX,                  /* The right-hand side (RHS)
      of the IN operator */\n  u32 inFlags,               /* IN_INDEX_LOOP, _MEMBERSHIP,
      and/or _NOOP_OK */\n  int *prRhsHasNull,         /* Register holding NULL status.
      \ See notes */\n  int *aiMap,                /* Mapping from Index fields to
      RHS fields */\n  int *piTab                 /* OUT: index to use */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprVectorSize
      Src: /src/nss/lib/sqlite/sqlite3.c:99811,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:99815,1
    - Dst: sqlite3DbMallocRaw
      Src: /src/nss/lib/sqlite/sqlite3.c:99816,1
    - Dst: sqlite3VectorFieldSubexpr
      Src: /src/nss/lib/sqlite/sqlite3.c:99820,1
    - Dst: sqlite3ExprAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:99821,1
    - Dst: sqlite3CompareAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:99823,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - pParse
    - pExpr
    argTypes:
    - Parse*
    - Expr*
    assertStmts:
    - condition: ( pExpr->op==TK_IN )
      pos:
        line_end: 99814
        line_start: 99814
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 99831
      start: 99809
    functionDepth: 6
    functionLinenumber: 99809
    functionLinenumberEnd: 99831
    functionName: exprINAffinity
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VectorFieldSubexpr
    - sqlite3ExprVectorSize
    - assert
    - sqlite3ExprAffinity
    - sqlite3CompareAffinity
    - sqlite3DbMallocRaw
    linkageType: ''
    returnType: char
    signature: char *exprINAffinity(Parse *pParse, Expr *pExpr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:99843,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pParse
    - nActual
    - nExpect
    argTypes:
    - Parse*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99844
      start: 99841
    functionDepth: 10
    functionLinenumber: 99841
    functionLinenumberEnd: 99844
    functionName: sqlite3SubselectError
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ErrorMsg
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3SubselectError(Parse *pParse, int nActual, int
      nExpect)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SubselectError
      Src: /src/nss/lib/sqlite/sqlite3.c:99861,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:99865,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pParse
    - pExpr
    argTypes:
    - Parse*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99867
      start: 99858
    functionDepth: 11
    functionLinenumber: 99858
    functionLinenumberEnd: 99867
    functionName: sqlite3VectorErrorMsg
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3SubselectError
    - sqlite3ErrorMsg
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VectorErrorMsg(Parse *pParse, Expr *pExpr)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:99905,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:99917,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:99922,1
    - Dst: sqlite3VdbeAddOp0
      Src: /src/nss/lib/sqlite/sqlite3.c:99923,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:99923,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:99924,1
    - Dst: ExplainQueryPlan
      Src: /src/nss/lib/sqlite/sqlite3.c:99925,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:99928,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:99930,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:99931,1
    - Dst: ExprSetProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:99936,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:99939,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:99940,1
    - Dst: sqlite3VdbeAddOp0
      Src: /src/nss/lib/sqlite/sqlite3.c:99942,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:99942,1
    - Dst: sqlite3ExprVectorSize
      Src: /src/nss/lib/sqlite/sqlite3.c:99947,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:99953,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:99955,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:99956,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:99958,1
    - Dst: sqlite3KeyInfoAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:99961,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:99963,1
    - Dst: ExplainQueryPlan
      Src: /src/nss/lib/sqlite/sqlite3.c:99972,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:99977,1
    - Dst: sqlite3SelectDestInit
      Src: /src/nss/lib/sqlite/sqlite3.c:99980,1
    - Dst: exprINAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:99981,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:99983,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:99984,1
    - Dst: sqlite3Select
      Src: /src/nss/lib/sqlite/sqlite3.c:99985,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:99986,1
    - Dst: sqlite3KeyInfoUnref
      Src: /src/nss/lib/sqlite/sqlite3.c:99987,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:99990,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:99991,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:99992,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:99993,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:99994,1
    - Dst: sqlite3KeyInfoIsWriteable
      Src: /src/nss/lib/sqlite/sqlite3.c:99994,1
    - Dst: sqlite3VectorFieldSubexpr
      Src: /src/nss/lib/sqlite/sqlite3.c:99996,1
    - Dst: sqlite3BinaryCompareCollSeq
      Src: /src/nss/lib/sqlite/sqlite3.c:99997,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:100002,1
    - Dst: sqlite3ExprAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:100015,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:100020,1
    - Dst: sqlite3KeyInfoIsWriteable
      Src: /src/nss/lib/sqlite/sqlite3.c:100020,1
    - Dst: sqlite3ExprCollSeq
      Src: /src/nss/lib/sqlite/sqlite3.c:100021,1
    - Dst: sqlite3GetTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:100025,1
    - Dst: sqlite3GetTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:100026,1
    - Dst: sqlite3ExprIsConstant
      Src: /src/nss/lib/sqlite/sqlite3.c:100035,1
    - Dst: sqlite3VdbeChangeToNoop
      Src: /src/nss/lib/sqlite/sqlite3.c:100036,1
    - Dst: ExprClearProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:100037,1
    - Dst: sqlite3ExprCodeTarget
      Src: /src/nss/lib/sqlite/sqlite3.c:100042,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:100043,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/nss/lib/sqlite/sqlite3.c:100044,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:100046,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:100047,1
    - Dst: sqlite3VdbeChangeP4
      Src: /src/nss/lib/sqlite/sqlite3.c:100050,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:100053,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:100055,1
    - Dst: sqlite3VdbeChangeP1
      Src: /src/nss/lib/sqlite/sqlite3.c:100056,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:100056,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 87
    argCount: 3
    argNames:
    - pParse
    - pExpr
    - iTab
    argTypes:
    - Parse*
    - Expr*
    - int
    assertStmts:
    - condition: ( pKeyInfo!=0 )
      pos:
        line_end: 99990
        line_start: 99990
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3KeyInfoIsWriteable(pKeyInfo) )
      pos:
        line_end: 99993
        line_start: 99993
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( v!=0 )
      pos:
        line_end: 99904
        line_start: 99904
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3KeyInfoIsWriteable(pKeyInfo) )
      pos:
        line_end: 100019
        line_start: 100019
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pEList->nExpr>0 )
      pos:
        line_end: 99992
        line_start: 99992
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pEList!=0 )
      pos:
        line_end: 99991
        line_start: 99991
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 100058
      start: 99892
    functionDepth: 12
    functionLinenumber: 99892
    functionLinenumberEnd: 100058
    functionName: sqlite3CodeRhsOfIN
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - ALWAYS
    - sqlite3VdbeChangeP1
    - sqlite3VdbeChangeToNoop
    - sqlite3VdbeAddOp2
    - sqlite3KeyInfoUnref
    - sqlite3ExprCodeTarget
    - testcase
    - VdbeComment
    - ExprSetProperty
    - exprINAffinity
    - sqlite3KeyInfoAlloc
    - sqlite3GetTempReg
    - sqlite3VdbeAddOp4Int
    - sqlite3VdbeCurrentAddr
    - sqlite3ExprCollSeq
    - assert
    - sqlite3VdbeJumpHere
    - sqlite3KeyInfoIsWriteable
    - sqlite3VdbeAddOp0
    - ExprHasProperty
    - ExplainQueryPlan
    - sqlite3ExprIsConstant
    - sqlite3VectorFieldSubexpr
    - sqlite3ExprVectorSize
    - sqlite3Select
    - sqlite3DbFree
    - sqlite3VdbeAddOp4
    - sqlite3ExprAffinity
    - sqlite3VdbeAddOp1
    - VdbeCoverage
    - sqlite3VdbeChangeP4
    - ExprClearProperty
    - sqlite3BinaryCompareCollSeq
    - sqlite3ReleaseTempReg
    - sqlite3SelectDestInit
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3CodeRhsOfIN(\n  Parse *pParse,          /* Parsing
      context */\n  Expr *pExpr,            /* The IN operator */\n  int iTab                /*
      Use this cursor number */\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:100085,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:100086,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:100087,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:100088,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:100089,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:100089,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:100102,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:100105,1
    - Dst: ExplainQueryPlan
      Src: /src/nss/lib/sqlite/sqlite3.c:100106,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:100107,1
    - Dst: ExprSetProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:100113,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:100116,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:100117,1
    - Dst: sqlite3VdbeAddOp0
      Src: /src/nss/lib/sqlite/sqlite3.c:100119,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:100119,1
    - Dst: ExplainQueryPlan
      Src: /src/nss/lib/sqlite/sqlite3.c:100132,1
    - Dst: sqlite3SelectDestInit
      Src: /src/nss/lib/sqlite/sqlite3.c:100135,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:100141,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:100142,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:100145,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:100146,1
    - Dst: sqlite3ExprAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:100148,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:100150,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:100153,1
    - Dst: sqlite3Select
      Src: /src/nss/lib/sqlite/sqlite3.c:100156,1
    - Dst: ExprSetVVAProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:100160,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:100162,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:100165,1
    - Dst: sqlite3VdbeChangeP1
      Src: /src/nss/lib/sqlite/sqlite3.c:100166,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:100166,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 54
    argCount: 2
    argNames:
    - pParse
    - pExpr
    argTypes:
    - Parse*
    - Expr*
    assertStmts:
    - condition: ( ExprHasProperty(pExpr, EP_xIsSelect) )
      pos:
        line_end: 100088
        line_start: 100088
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pExpr->op==TK_EXISTS || pExpr->op==TK_SELECT )
      pos:
        line_end: 100087
        line_start: 100087
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( v!=0 )
      pos:
        line_end: 100084
        line_start: 100084
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 100170
      start: 100076
    functionDepth: 12
    functionLinenumber: 100076
    functionLinenumberEnd: 100170
    functionName: sqlite3CodeSubselect
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3VdbeChangeP1
    - sqlite3VdbeAddOp2
    - sqlite3VdbeAddOp3
    - ExprSetVVAProperty
    - sqlite3PExpr
    - sqlite3ExprAlloc
    - VdbeComment
    - testcase
    - ExprSetProperty
    - sqlite3VdbeCurrentAddr
    - assert
    - sqlite3VdbeJumpHere
    - sqlite3VdbeAddOp0
    - ExprHasProperty
    - ExplainQueryPlan
    - sqlite3Select
    - sqlite3ExprDelete
    - sqlite3VdbeAddOp1
    - VdbeCoverage
    - sqlite3SelectDestInit
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3CodeSubselect(Parse *pParse, Expr *pExpr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprVectorSize
      Src: /src/nss/lib/sqlite/sqlite3.c:100181,1
    - Dst: sqlite3SubselectError
      Src: /src/nss/lib/sqlite/sqlite3.c:100184,1
    - Dst: sqlite3VectorErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:100188,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - pParse
    - pIn
    argTypes:
    - Parse*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100192
      start: 100180
    functionDepth: 12
    functionLinenumber: 100180
    functionLinenumberEnd: 100192
    functionName: sqlite3ExprCheckIN
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ExprVectorSize
    - sqlite3SubselectError
    - sqlite3VectorErrorMsg
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprCheckIN(Parse *pParse, Expr *pIn)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprCheckIN
      Src: /src/nss/lib/sqlite/sqlite3.c:100246,1
    - Dst: exprINAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:100247,1
    - Dst: sqlite3ExprVectorSize
      Src: /src/nss/lib/sqlite/sqlite3.c:100248,1
    - Dst: sqlite3DbMallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:100249,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:100259,1
    - Dst: VdbeNoopComment
      Src: /src/nss/lib/sqlite/sqlite3.c:100260,1
    - Dst: sqlite3FindInIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:100261,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:100266,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:100275,1
    - Dst: exprCodeVector
      Src: /src/nss/lib/sqlite/sqlite3.c:100288,1
    - Dst: sqlite3GetTempRange
      Src: /src/nss/lib/sqlite/sqlite3.c:100295,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:100297,1
    - Dst: sqlite3ExprCollSeq
      Src: /src/nss/lib/sqlite/sqlite3.c:100309,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:100310,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:100314,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:100314,1
    - Dst: sqlite3GetTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:100316,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:100317,1
    - Dst: sqlite3ExprCodeTemp
      Src: /src/nss/lib/sqlite/sqlite3.c:100320,1
    - Dst: sqlite3ExprCanBeNull
      Src: /src/nss/lib/sqlite/sqlite3.c:100321,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:100322,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:100325,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:100327,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:100328,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:100329,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:100331,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:100332,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:100333,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:100334,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:100336,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:100339,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:100339,1
    - Dst: sqlite3VdbeGoto
      Src: /src/nss/lib/sqlite/sqlite3.c:100340,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:100342,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:100343,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:100354,1
    - Dst: sqlite3VectorFieldSubexpr
      Src: /src/nss/lib/sqlite/sqlite3.c:100357,1
    - Dst: sqlite3ExprCanBeNull
      Src: /src/nss/lib/sqlite/sqlite3.c:100358,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:100359,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:100360,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:100372,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:100373,1
    - Dst: sqlite3VdbeAddOp0
      Src: /src/nss/lib/sqlite/sqlite3.c:100374,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:100376,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/nss/lib/sqlite/sqlite3.c:100379,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:100380,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/nss/lib/sqlite/sqlite3.c:100384,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:100385,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:100392,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:100393,1
    - Dst: sqlite3VdbeGoto
      Src: /src/nss/lib/sqlite/sqlite3.c:100399,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:100408,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:100409,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:100410,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:100412,1
    - Dst: sqlite3GetTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:100421,1
    - Dst: sqlite3VectorFieldSubexpr
      Src: /src/nss/lib/sqlite/sqlite3.c:100422,1
    - Dst: sqlite3ExprCollSeq
      Src: /src/nss/lib/sqlite/sqlite3.c:100423,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:100424,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:100425,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:100427,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:100428,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:100430,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:100432,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:100433,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:100434,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:100438,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:100442,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:100445,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:100446,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:100448,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:100449,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 132
    argCount: 4
    argNames:
    - pParse
    - pExpr
    - destIfFalse
    - destIfNull
    argTypes:
    - Parse*
    - Expr*
    - int
    - int
    assertStmts:
    - condition: ( destIfNull==destIfFalse )
      pos:
        line_end: 100330
        line_start: 100330
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( v!=0 )
      pos:
        line_end: 100258
        line_start: 100258
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( pParse->nErr || nVector==1 || eType==IN_INDEX_EPH\n       || eType==IN_INDEX_INDEX_ASC
        || eType==IN_INDEX_INDEX_DESC \n  )"
      pos:
        line_end: 100267
        line_start: 100265
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( cnt==1 )
      pos:
        line_end: 100274
        line_start: 100274
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !ExprHasProperty(pExpr, EP_xIsSelect) )
      pos:
        line_end: 100313
        line_start: 100313
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 100450
      start: 100221
    functionDepth: 14
    functionLinenumber: 100221
    functionLinenumberEnd: 100450
    functionName: sqlite3ExprCodeIN
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeAddOp2
    - VdbeNoopComment
    - sqlite3VdbeResolveLabel
    - sqlite3VdbeAddOp3
    - VdbeComment
    - sqlite3VdbeGoto
    - exprINAffinity
    - sqlite3GetTempReg
    - sqlite3VdbeAddOp4Int
    - sqlite3ExprCollSeq
    - exprCodeVector
    - assert
    - sqlite3VdbeJumpHere
    - VdbeCoverageIf
    - sqlite3ExprCanBeNull
    - sqlite3GetTempRange
    - ExprHasProperty
    - sqlite3VdbeAddOp0
    - sqlite3DbMallocZero
    - sqlite3VectorFieldSubexpr
    - sqlite3ExprVectorSize
    - sqlite3DbFree
    - sqlite3VdbeAddOp4
    - sqlite3FindInIndex
    - sqlite3ExprCheckIN
    - sqlite3ExprCodeTemp
    - VdbeCoverage
    - sqlite3ReleaseTempReg
    - sqlite3VdbeChangeP5
    - sqlite3VdbeMakeLabel
    linkageType: ''
    returnType: void
    signature: "void sqlite3ExprCodeIN(\n  Parse *pParse,        /* Parsing and code
      generating context */\n  Expr *pExpr,          /* The IN expression */\n  int
      destIfFalse,      /* Jump here if LHS is not contained in the RHS */\n  int
      destIfNull        /* Jump here if the results are unknown due to NULLs */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:100463,1
    - Dst: sqlite3AtoF
      Src: /src/nss/lib/sqlite/sqlite3.c:100465,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:100465,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:100466,1
    - Dst: sqlite3IsNaN
      Src: /src/nss/lib/sqlite/sqlite3.c:100466,1
    - Dst: sqlite3VdbeAddOp4Dup8
      Src: /src/nss/lib/sqlite/sqlite3.c:100468,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - v
    - z
    - negateFlag
    - iMem
    argTypes:
    - Vdbe*
    - char*
    - int
    - int
    assertStmts:
    - condition: ( !sqlite3IsNaN(value) )
      pos:
        line_end: 100465
        line_start: 100465
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 100470
      start: 100462
    functionDepth: 13
    functionLinenumber: 100462
    functionLinenumberEnd: 100470
    functionName: codeReal
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ALWAYS
    - sqlite3VdbeAddOp4Dup8
    - sqlite3AtoF
    - assert
    - sqlite3Strlen30
    - sqlite3IsNaN
    linkageType: ''
    returnType: void
    signature: void codeReal(Vdbe *v, const char *z, int negateFlag, int iMem)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:100484,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:100486,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:100491,1
    - Dst: sqlite3DecOrHexToI64
      Src: /src/nss/lib/sqlite/sqlite3.c:100492,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:100495,1
    - Dst: sqlite3_strnicmp
      Src: /src/nss/lib/sqlite/sqlite3.c:100498,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:100499,1
    - Dst: codeReal
      Src: /src/nss/lib/sqlite/sqlite3.c:100503,1
    - Dst: sqlite3VdbeAddOp4Dup8
      Src: /src/nss/lib/sqlite/sqlite3.c:100508,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 4
    argNames:
    - pParse
    - pExpr
    - negFlag
    - iMem
    argTypes:
    - Parse*
    - Expr*
    - int
    - int
    assertStmts:
    - condition: ( i>=0 )
      pos:
        line_end: 100483
        line_start: 100483
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( z!=0 )
      pos:
        line_end: 100490
        line_start: 100490
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 100511
      start: 100480
    functionDepth: 14
    functionLinenumber: 100480
    functionLinenumberEnd: 100511
    functionName: codeInteger
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 41
    functionsReached:
    - sqlite3VdbeAddOp2
    - sqlite3VdbeAddOp4Dup8
    - assert
    - sqlite3DecOrHexToI64
    - codeReal
    - sqlite3ErrorMsg
    - sqlite3_strnicmp
    linkageType: ''
    returnType: void
    signature: void codeInteger(Parse *pParse, Expr *pExpr, int negFlag, int iMem)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:100526,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:100527,1
    - Dst: sqlite3ExprCodeCopy
      Src: /src/nss/lib/sqlite/sqlite3.c:100529,1
    - Dst: sqlite3ExprCodeGetColumnOfTable
      Src: /src/nss/lib/sqlite/sqlite3.c:100532,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - pParse
    - pIdx
    - iTabCur
    - iIdxCol
    - regOut
    argTypes:
    - Parse*
    - Index*
    - int
    - int
    - int
    assertStmts:
    - condition: ( pIdx->aColExpr )
      pos:
        line_end: 100525
        line_start: 100525
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIdx->aColExpr->nExpr>iIdxCol )
      pos:
        line_end: 100526
        line_start: 100526
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 100535
      start: 100517
    functionDepth: 1
    functionLinenumber: 100517
    functionLinenumberEnd: 100535
    functionName: sqlite3ExprCodeLoadIndexColumn
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3ExprCodeGetColumnOfTable
    - sqlite3ExprCodeCopy
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3ExprCodeLoadIndexColumn(\n  Parse *pParse,  /*
      The parsing context */\n  Index *pIdx,    /* The index whose column is to be
      loaded */\n  int iTabCur,    /* Cursor pointing to a table row */\n  int iIdxCol,
      \   /* The column of the index to be loaded */\n  int regOut      /* Store the
      index column value in this register */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:100548,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:100552,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:100554,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:100556,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:100556,1
    - Dst: sqlite3ColumnOfIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:100557,1
    - Dst: sqlite3PrimaryKeyIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:100557,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:100559,1
    - Dst: sqlite3ColumnDefault
      Src: /src/nss/lib/sqlite/sqlite3.c:100562,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 5
    argNames:
    - v
    - pTab
    - iTabCur
    - iCol
    - regOut
    argTypes:
    - Vdbe*
    - Table*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100564
      start: 100540
    functionDepth: 12
    functionLinenumber: 100540
    functionLinenumberEnd: 100564
    functionName: sqlite3ExprCodeGetColumnOfTable
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - HasRowid
    - sqlite3ColumnDefault
    - sqlite3VdbeAddOp2
    - sqlite3VdbeAddOp3
    - sqlite3PrimaryKeyIndex
    - sqlite3ColumnOfIndex
    - IsVirtual
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3ExprCodeGetColumnOfTable(\n  Vdbe *v,        /*
      The VDBE under construction */\n  Table *pTab,    /* The table containing the
      value */\n  int iTabCur,    /* The table cursor.  Or the PK cursor for WITHOUT
      ROWID */\n  int iCol,       /* Index of the column to extract */\n  int regOut
      \     /* Extract the value into this register */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:100582,1
    - Dst: sqlite3ExprCodeGetColumnOfTable
      Src: /src/nss/lib/sqlite/sqlite3.c:100583,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:100585,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - pParse
    - pTab
    - iColumn
    - iTable
    - iReg
    - p5
    argTypes:
    - Parse*
    - Table*
    - int
    - int
    - int
    - u8
    assertStmts:
    - condition: ( v!=0 )
      pos:
        line_end: 100581
        line_start: 100581
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 100588
      start: 100573
    functionDepth: 13
    functionLinenumber: 100573
    functionLinenumberEnd: 100588
    functionName: sqlite3ExprCodeGetColumn
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3VdbeChangeP5
    - sqlite3ExprCodeGetColumnOfTable
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3ExprCodeGetColumn(\n  Parse *pParse,   /* Parsing
      and code generating context */\n  Table *pTab,     /* Description of the table
      we are reading from */\n  int iColumn,     /* Index of the table column */\n
      \ int iTable,      /* The cursor pointing to the table */\n  int iReg,        /*
      Store results here */\n  u8 p5            /* P5 value for OP_Column + FLAGS
      */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:100595,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:100596,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - pParse
    - iFrom
    - iTo
    - nReg
    argTypes:
    - Parse*
    - int
    - int
    - int
    assertStmts:
    - condition: ( iFrom>=iTo+nReg || iFrom+nReg<=iTo )
      pos:
        line_end: 100594
        line_start: 100594
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 100597
      start: 100594
    functionDepth: 11
    functionLinenumber: 100594
    functionLinenumberEnd: 100597
    functionName: sqlite3ExprCodeMove
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3VdbeAddOp3
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprCodeMove(Parse *pParse, int iFrom, int iTo,
      int nReg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprSkipCollate
      Src: /src/nss/lib/sqlite/sqlite3.c:100605,1
    - Dst: ExprClearProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:100609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - pExpr
    - iReg
    argTypes:
    - Expr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100610
      start: 100604
    functionDepth: 2
    functionLinenumber: 100604
    functionLinenumberEnd: 100610
    functionName: exprToRegister
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ExprSkipCollate
    - ExprClearProperty
    linkageType: ''
    returnType: void
    signature: void exprToRegister(Expr *pExpr, int iReg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprVectorSize
      Src: /src/nss/lib/sqlite/sqlite3.c:100624,1
    - Dst: sqlite3ExprCodeTemp
      Src: /src/nss/lib/sqlite/sqlite3.c:100626,1
    - Dst: sqlite3CodeSubselect
      Src: /src/nss/lib/sqlite/sqlite3.c:100633,1
    - Dst: sqlite3ExprCodeFactorable
      Src: /src/nss/lib/sqlite/sqlite3.c:100640,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - pParse
    - p
    - piFreeable
    argTypes:
    - Parse*
    - Expr*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100645
      start: 100622
    functionDepth: 13
    functionLinenumber: 100622
    functionLinenumberEnd: 100645
    functionName: exprCodeVector
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3ExprVectorSize
    - sqlite3CodeSubselect
    - sqlite3ExprCodeFactorable
    - sqlite3ExprCodeTemp
    linkageType: ''
    returnType: int
    signature: int exprCodeVector(Parse *pParse, Expr *p, int *piFreeable)
  - BBCount: 99
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:100669,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:100671,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:100686,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:100689,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:100697,1
    - Dst: sqlite3ExprCodeTarget
      Src: /src/nss/lib/sqlite/sqlite3.c:100704,1
    - Dst: sqlite3TableColumnAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:100705,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:100708,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:100709,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:100711,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:100714,1
    - Dst: sqlite3ExprCodeGetColumn
      Src: /src/nss/lib/sqlite/sqlite3.c:100729,1
    - Dst: codeInteger
      Src: /src/nss/lib/sqlite/sqlite3.c:100734,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:100738,1
    - Dst: sqlite3ExprTruthValue
      Src: /src/nss/lib/sqlite/sqlite3.c:100738,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:100743,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:100743,1
    - Dst: codeReal
      Src: /src/nss/lib/sqlite/sqlite3.c:100744,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:100749,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:100749,1
    - Dst: sqlite3VdbeLoadString
      Src: /src/nss/lib/sqlite/sqlite3.c:100750,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:100754,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:100762,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:100762,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:100763,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:100764,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:100766,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:100767,1
    - Dst: sqlite3HexToBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:100768,1
    - Dst: sqlite3VdbeDb
      Src: /src/nss/lib/sqlite/sqlite3.c:100768,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:100769,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:100774,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:100774,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:100775,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:100776,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:100777,1
    - Dst: sqlite3VListNumToName
      Src: /src/nss/lib/sqlite/sqlite3.c:100779,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:100780,1
    - Dst: strcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:100780,1
    - Dst: sqlite3VdbeAppendP4
      Src: /src/nss/lib/sqlite/sqlite3.c:100782,1
    - Dst: sqlite3ExprCodeTarget
      Src: /src/nss/lib/sqlite/sqlite3.c:100792,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:100794,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:100797,1
    - Dst: sqlite3AffinityType
      Src: /src/nss/lib/sqlite/sqlite3.c:100798,1
    - Dst: sqlite3ExprIsVector
      Src: /src/nss/lib/sqlite/sqlite3.c:100814,1
    - Dst: codeVectorCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:100815,1
    - Dst: sqlite3ExprCodeTemp
      Src: /src/nss/lib/sqlite/sqlite3.c:100817,1
    - Dst: sqlite3ExprCodeTemp
      Src: /src/nss/lib/sqlite/sqlite3.c:100818,1
    - Dst: codeCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:100819,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:100821,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:100821,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:100821,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:100822,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:100822,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:100822,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:100823,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:100823,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:100823,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:100824,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:100824,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:100824,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:100825,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:100825,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:100825,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:100826,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:100826,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:100826,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:100827,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:100828,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:100844,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:100844,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:100845,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:100845,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:100846,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:100846,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:100847,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:100847,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:100848,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:100848,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:100849,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:100849,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:100850,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:100850,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:100851,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:100851,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:100852,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:100852,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:100853,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:100853,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:100854,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:100854,1
    - Dst: sqlite3ExprCodeTemp
      Src: /src/nss/lib/sqlite/sqlite3.c:100855,1
    - Dst: sqlite3ExprCodeTemp
      Src: /src/nss/lib/sqlite/sqlite3.c:100856,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:100857,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:100858,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:100859,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:100864,1
    - Dst: codeInteger
      Src: /src/nss/lib/sqlite/sqlite3.c:100866,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:100870,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:100870,1
    - Dst: codeReal
      Src: /src/nss/lib/sqlite/sqlite3.c:100871,1
    - Dst: sqlite3ExprCodeTemp
      Src: /src/nss/lib/sqlite/sqlite3.c:100878,1
    - Dst: sqlite3ExprCodeTemp
      Src: /src/nss/lib/sqlite/sqlite3.c:100879,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:100880,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:100881,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:100887,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:100887,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:100888,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:100888,1
    - Dst: sqlite3ExprCodeTemp
      Src: /src/nss/lib/sqlite/sqlite3.c:100889,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:100890,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:100891,1
    - Dst: sqlite3ExprCodeTemp
      Src: /src/nss/lib/sqlite/sqlite3.c:100897,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:100898,1
    - Dst: sqlite3ExprTruthValue
      Src: /src/nss/lib/sqlite/sqlite3.c:100899,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:100901,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:100902,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/nss/lib/sqlite/sqlite3.c:100903,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:100909,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:100909,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:100910,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:100910,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:100911,1
    - Dst: sqlite3ExprCodeTemp
      Src: /src/nss/lib/sqlite/sqlite3.c:100912,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:100913,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:100914,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:100915,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:100916,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:100917,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:100918,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:100924,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:100924,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:100925,1
    - Dst: ENC
      Src: /src/nss/lib/sqlite/sqlite3.c:100939,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:100943,1
    - Dst: ConstFactorOk
      Src: /src/nss/lib/sqlite/sqlite3.c:100948,1
    - Dst: sqlite3ExprIsConstantNotJoin
      Src: /src/nss/lib/sqlite/sqlite3.c:100948,1
    - Dst: sqlite3ExprCodeAtInit
      Src: /src/nss/lib/sqlite/sqlite3.c:100951,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:100953,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:100953,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:100954,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:100960,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:100960,1
    - Dst: sqlite3FindFunction
      Src: /src/nss/lib/sqlite/sqlite3.c:100962,1
    - Dst: sqlite3FindFunction
      Src: /src/nss/lib/sqlite/sqlite3.c:100965,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:100969,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:100978,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:100979,1
    - Dst: sqlite3ExprCode
      Src: /src/nss/lib/sqlite/sqlite3.c:100980,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:100982,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:100983,1
    - Dst: sqlite3ExprCode
      Src: /src/nss/lib/sqlite/sqlite3.c:100984,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:100986,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:100994,1
    - Dst: sqlite3ExprCodeTarget
      Src: /src/nss/lib/sqlite/sqlite3.c:100995,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:101006,1
    - Dst: sqlite3ExprAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:101007,1
    - Dst: sqlite3VdbeLoadString
      Src: /src/nss/lib/sqlite/sqlite3.c:101008,1
    - Dst: sqlite3ExprIsConstant
      Src: /src/nss/lib/sqlite/sqlite3.c:101015,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101016,1
    - Dst: MASKBIT32
      Src: /src/nss/lib/sqlite/sqlite3.c:101017,1
    - Dst: sqlite3ExprCollSeq
      Src: /src/nss/lib/sqlite/sqlite3.c:101020,1
    - Dst: sqlite3GetTempRange
      Src: /src/nss/lib/sqlite/sqlite3.c:101028,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:101038,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:101039,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:101042,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:101043,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101044,1
    - Dst: sqlite3ExprCodeExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:101050,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:101068,1
    - Dst: sqlite3VtabOverloadFunction
      Src: /src/nss/lib/sqlite/sqlite3.c:101069,1
    - Dst: sqlite3VtabOverloadFunction
      Src: /src/nss/lib/sqlite/sqlite3.c:101071,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:101076,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:101082,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:101084,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:101089,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:101091,1
    - Dst: sqlite3ReleaseTempRange
      Src: /src/nss/lib/sqlite/sqlite3.c:101094,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101102,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101103,1
    - Dst: sqlite3SubselectError
      Src: /src/nss/lib/sqlite/sqlite3.c:101105,1
    - Dst: sqlite3CodeSubselect
      Src: /src/nss/lib/sqlite/sqlite3.c:101107,1
    - Dst: sqlite3CodeSubselect
      Src: /src/nss/lib/sqlite/sqlite3.c:101114,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:101116,1
    - Dst: sqlite3ExprVectorSize
      Src: /src/nss/lib/sqlite/sqlite3.c:101118,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:101120,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:101126,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:101127,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:101128,1
    - Dst: sqlite3ExprCodeIN
      Src: /src/nss/lib/sqlite/sqlite3.c:101129,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:101130,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:101131,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:101132,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:101133,1
    - Dst: exprCodeBetween
      Src: /src/nss/lib/sqlite/sqlite3.c:101151,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:101190,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:101191,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:101192,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:101193,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:101195,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:101196,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:101210,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:101217,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:101223,1
    - Dst: sqlite3ExprCodeTarget
      Src: /src/nss/lib/sqlite/sqlite3.c:101224,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:101225,1
    - Dst: sqlite3VdbeChangeP3
      Src: /src/nss/lib/sqlite/sqlite3.c:101226,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:101251,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:101262,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:101262,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:101263,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:101267,1
    - Dst: exprNodeCopy
      Src: /src/nss/lib/sqlite/sqlite3.c:101269,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101270,1
    - Dst: exprToRegister
      Src: /src/nss/lib/sqlite/sqlite3.c:101271,1
    - Dst: exprCodeVector
      Src: /src/nss/lib/sqlite/sqlite3.c:101271,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101272,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:101273,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:101285,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:101290,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101291,1
    - Dst: sqlite3ExprIfFalse
      Src: /src/nss/lib/sqlite/sqlite3.c:101292,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101293,1
    - Dst: sqlite3ExprCode
      Src: /src/nss/lib/sqlite/sqlite3.c:101294,1
    - Dst: sqlite3VdbeGoto
      Src: /src/nss/lib/sqlite/sqlite3.c:101295,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:101296,1
    - Dst: sqlite3ExprCode
      Src: /src/nss/lib/sqlite/sqlite3.c:101299,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:101301,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:101303,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:101308,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:101314,1
    - Dst: sqlite3MayAbort
      Src: /src/nss/lib/sqlite/sqlite3.c:101319,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:101321,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:101321,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:101323,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:101325,1
    - Dst: sqlite3HaltConstraint
      Src: /src/nss/lib/sqlite/sqlite3.c:101327,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:101335,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:101336,1
    CyclomaticComplexity: 91
    EdgeCount: 91
    ICount: 480
    argCount: 3
    argNames:
    - pParse
    - pExpr
    - target
    argTypes:
    - Parse*
    - Expr*
    - int
    assertStmts:
    - condition: ( pExpr->u.zToken[0]=='?' || strcmp(pExpr->u.zToken, z)==0 )
      pos:
        line_end: 100779
        line_start: 100779
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (TK_NE==OP_Ne)
      pos:
        line_end: 100825
        line_start: 100825
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( TK_REM==OP_Remainder )
      pos:
        line_end: 100847
        line_start: 100847
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( TK_RSHIFT==OP_ShiftRight )
      pos:
        line_end: 100852
        line_start: 100852
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( TK_BITNOT==OP_BitNot )
      pos:
        line_end: 100886
        line_start: 100886
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTab->iPKey<0 || pExpr->iColumn!=pTab->iPKey )
      pos:
        line_end: 101191
        line_start: 101191
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (pExpr->x.pList->nExpr > 0)
      pos:
        line_end: 101262
        line_start: 101262
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nFarg>=1 )
      pos:
        line_end: 100993
        line_start: 100993
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( SQLITE_FUNC_LENGTH==OPFLAG_LENGTHARG )
      pos:
        line_end: 101041
        line_start: 101041
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (TK_GE==OP_Ge)
      pos:
        line_end: 100823
        line_start: 100823
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( z[n]=='\'' )
      pos:
        line_end: 100766
        line_start: 100766
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (TK_LE==OP_Le)
      pos:
        line_end: 100821
        line_start: 100821
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( TK_SLASH==OP_Divide )
      pos:
        line_end: 100850
        line_start: 100850
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !ExprHasProperty(pExpr, EP_IntValue) )
      pos:
        line_end: 100748
        line_start: 100748
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pLeft )
      pos:
        line_end: 100863
        line_start: 100863
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( TK_NOT==OP_Not )
      pos:
        line_end: 100887
        line_start: 100887
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( TK_NOTNULL==OP_NotNull )
      pos:
        line_end: 100909
        line_start: 100909
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nFarg==1 )
      pos:
        line_end: 101037
        line_start: 101037
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pExpr->u.zToken!=0 )
      pos:
        line_end: 100774
        line_start: 100774
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( TK_PLUS==OP_Add )
      pos:
        line_end: 100845
        line_start: 100845
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !ExprHasProperty(pExpr, EP_IntValue) )
      pos:
        line_end: 100869
        line_start: 100869
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pFarg->a[0].pExpr!=0 )
      pos:
        line_end: 101038
        line_start: 101038
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCol->iMem>0 )
      pos:
        line_end: 100685
        line_start: 100685
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( SQLITE_AFF_TEXT=='B' )
      pos:
        line_end: 100708
        line_start: 100708
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTest!=0 )
      pos:
        line_end: 101284
        line_start: 101284
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pExpr->u.zToken[1]=='\'' )
      pos:
        line_end: 100763
        line_start: 100763
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !ExprHasProperty(pExpr, EP_IntValue) )
      pos:
        line_end: 100773
        line_start: 100773
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( TK_BITAND==OP_BitAnd )
      pos:
        line_end: 100848
        line_start: 100848
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( TK_CONCAT==OP_Concat )
      pos:
        line_end: 100853
        line_start: 100853
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !ExprHasProperty(pExpr, EP_IntValue) )
      pos:
        line_end: 101320
        line_start: 101320
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !ExprHasProperty(pExpr, EP_IntValue) )
      pos:
        line_end: 100761
        line_start: 100761
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pParse->db->mallocFailed )
      pos:
        line_end: 100670
        line_start: 100670
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( TK_LSHIFT==OP_ShiftLeft )
      pos:
        line_end: 100851
        line_start: 100851
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !ExprHasProperty(pExpr, EP_IntValue) )
      pos:
        line_end: 100923
        line_start: 100923
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !ExprHasProperty(pExpr, EP_xIsSelect) )
      pos:
        line_end: 100952
        line_start: 100952
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nFarg==1 )
      pos:
        line_end: 101005
        line_start: 101005
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( SQLITE_AFF_BLOB=='A' )
      pos:
        line_end: 100707
        line_start: 100707
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (TK_EQ==OP_Eq)
      pos:
        line_end: 100824
        line_start: 100824
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( TK_MINUS==OP_Subtract )
      pos:
        line_end: 100846
        line_start: 100846
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nFarg>=2 )
      pos:
        line_end: 100978
        line_start: 100978
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( op==TK_CASE )
      pos:
        line_end: 101250
        line_start: 101250
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (TK_GT==OP_Gt)
      pos:
        line_end: 100822
        line_start: 100822
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( TK_AND==OP_And )
      pos:
        line_end: 100843
        line_start: 100843
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !ExprHasProperty(pExpr, EP_IntValue) )
      pos:
        line_end: 100742
        line_start: 100742
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (TK_LT==OP_Lt)
      pos:
        line_end: 100820
        line_start: 100820
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pExpr->iTable==0 || pExpr->pLeft->op==TK_SELECT )
      pos:
        line_end: 101115
        line_start: 101115
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pExpr->u.zToken[0]=='x' || pExpr->u.zToken[0]=='X' )
      pos:
        line_end: 100762
        line_start: 100762
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( TK_BITOR==OP_BitOr )
      pos:
        line_end: 100849
        line_start: 100849
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !ExprHasProperty(pExpr, EP_IntValue) )
      pos:
        line_end: 100959
        line_start: 100959
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pExpr->iColumn>=-1 && pExpr->iColumn<pTab->nCol )
      pos:
        line_end: 101190
        line_start: 101190
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !ExprHasProperty(pExpr, EP_xIsSelect) && pExpr->x.pList )
      pos:
        line_end: 101261
        line_start: 101261
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( TK_ISNULL==OP_IsNull )
      pos:
        line_end: 100908
        line_start: 100908
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pExpr->iTable==0 || pExpr->iTable==1 )
      pos:
        line_end: 101189
        line_start: 101189
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( pExpr->affinity==OE_Rollback \n           || pExpr->affinity==OE_Abort\n
        \          || pExpr->affinity==OE_Fail\n           || pExpr->affinity==OE_Ignore\n
        \     )"
      pos:
        line_end: 101311
        line_start: 101307
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pExpr->u.zToken[0]!=0 )
      pos:
        line_end: 100775
        line_start: 100775
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( TK_OR==OP_Or )
      pos:
        line_end: 100844
        line_start: 100844
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( SQLITE_FUNC_TYPEOF==OPFLAG_TYPEOFARG )
      pos:
        line_end: 101042
        line_start: 101042
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p1>=0 && p1<(pTab->nCol*2+2) )
      pos:
        line_end: 101192
        line_start: 101192
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( target>0 && target<=pParse->nMem )
      pos:
        line_end: 100668
        line_start: 100668
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 101338
      start: 100659
    functionDepth: 15
    functionLinenumber: 100659
    functionLinenumberEnd: 101338
    functionName: sqlite3ExprCodeTarget
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3VdbeChangeP3
    - sqlite3VdbeAppendP4
    - sqlite3VdbeAddOp2
    - sqlite3ExprCode
    - codeVectorCompare
    - sqlite3VdbeResolveLabel
    - sqlite3VdbeAddOp3
    - sqlite3VdbeDb
    - codeReal
    - sqlite3ExprCodeTarget
    - sqlite3ExprIfFalse
    - sqlite3TableColumnAffinity
    - sqlite3AffinityType
    - sqlite3SubselectError
    - sqlite3CodeSubselect
    - testcase
    - VdbeComment
    - sqlite3VdbeGoto
    - sqlite3FindFunction
    - sqlite3VdbeAddOp4Int
    - sqlite3ExprCollSeq
    - codeCompare
    - exprNodeCopy
    - exprCodeVector
    - assert
    - sqlite3VdbeJumpHere
    - memset
    - sqlite3MayAbort
    - sqlite3ExprCodeExprList
    - VdbeCoverageIf
    - ENC
    - sqlite3VListNumToName
    - sqlite3GetTempRange
    - sqlite3ExprCodeGetColumn
    - ExprHasProperty
    - sqlite3VdbeLoadString
    - exprCodeBetween
    - sqlite3ExprIsConstant
    - sqlite3HexToBlob
    - sqlite3ExprVectorSize
    - sqlite3ReleaseTempRange
    - codeInteger
    - sqlite3ExprIsConstantNotJoin
    - sqlite3VdbeAddOp4
    - sqlite3ExprTruthValue
    - sqlite3Strlen30
    - sqlite3ExprIsVector
    - sqlite3ExprAffinity
    - sqlite3ExprCodeTemp
    - sqlite3VdbeAddOp1
    - VdbeCoverage
    - strcmp
    - sqlite3VtabOverloadFunction
    - sqlite3ExprCodeIN
    - sqlite3ReleaseTempReg
    - ConstFactorOk
    - exprToRegister
    - sqlite3VdbeChangeP5
    - sqlite3ErrorMsg
    - MASKBIT32
    - sqlite3HaltConstraint
    - sqlite3VdbeMakeLabel
    - sqlite3ExprCodeAtInit
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprCodeTarget(Parse *pParse, Expr *pExpr, int
      target)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:101355,1
    - Dst: ConstFactorOk
      Src: /src/nss/lib/sqlite/sqlite3.c:101355,1
    - Dst: sqlite3ExprCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:101361,1
    - Dst: sqlite3ExprDup
      Src: /src/nss/lib/sqlite/sqlite3.c:101366,1
    - Dst: sqlite3ExprListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:101367,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - pParse
    - pExpr
    - regDest
    argTypes:
    - Parse*
    - Expr*
    - int
    assertStmts:
    - condition: ( ConstFactorOk(pParse) )
      pos:
        line_end: 101354
        line_start: 101354
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 101376
      start: 101349
    functionDepth: 9
    functionLinenumber: 101349
    functionLinenumberEnd: 101376
    functionName: sqlite3ExprCodeAtInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - ConstFactorOk
    - sqlite3ExprCompare
    - assert
    - sqlite3ExprDup
    - sqlite3ExprListAppend
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3ExprCodeAtInit(\n  Parse *pParse,    /* Parsing
      context */\n  Expr *pExpr,      /* The expression to code when the VDBE initializes
      */\n  int regDest       /* Store the value in this register */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprSkipCollate
      Src: /src/nss/lib/sqlite/sqlite3.c:101393,1
    - Dst: ConstFactorOk
      Src: /src/nss/lib/sqlite/sqlite3.c:101394,1
    - Dst: sqlite3ExprIsConstantNotJoin
      Src: /src/nss/lib/sqlite/sqlite3.c:101396,1
    - Dst: sqlite3ExprCodeAtInit
      Src: /src/nss/lib/sqlite/sqlite3.c:101399,1
    - Dst: sqlite3GetTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:101401,1
    - Dst: sqlite3ExprCodeTarget
      Src: /src/nss/lib/sqlite/sqlite3.c:101402,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:101406,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - pParse
    - pExpr
    - pReg
    argTypes:
    - Parse*
    - Expr*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101411
      start: 101391
    functionDepth: 16
    functionLinenumber: 101391
    functionLinenumberEnd: 101411
    functionName: sqlite3ExprCodeTemp
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 4
    functionsReached:
    - sqlite3GetTempReg
    - sqlite3ExprIsConstantNotJoin
    - sqlite3ExprSkipCollate
    - ConstFactorOk
    - sqlite3ReleaseTempReg
    - sqlite3ExprCodeTarget
    - sqlite3ExprCodeAtInit
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprCodeTemp(Parse *pParse, Expr *pExpr, int
      *pReg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:101421,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:101423,1
    - Dst: sqlite3ExprCodeTarget
      Src: /src/nss/lib/sqlite/sqlite3.c:101425,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:101426,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:101428,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 3
    argNames:
    - pParse
    - pExpr
    - target
    argTypes:
    - Parse*
    - Expr*
    - int
    assertStmts:
    - condition: ( target>0 && target<=pParse->nMem )
      pos:
        line_end: 101420
        line_start: 101420
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pParse->pVdbe!=0 || pParse->db->mallocFailed )
      pos:
        line_end: 101425
        line_start: 101425
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 101431
      start: 101418
    functionDepth: 16
    functionLinenumber: 101418
    functionLinenumberEnd: 101431
    functionName: sqlite3ExprCode
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - sqlite3ExprCodeTarget
    - sqlite3VdbeAddOp2
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprCode(Parse *pParse, Expr *pExpr, int target)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprDup
      Src: /src/nss/lib/sqlite/sqlite3.c:101440,1
    - Dst: sqlite3ExprCode
      Src: /src/nss/lib/sqlite/sqlite3.c:101441,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:101442,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - pParse
    - pExpr
    - target
    argTypes:
    - Parse*
    - Expr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101443
      start: 101438
    functionDepth: 17
    functionLinenumber: 101438
    functionLinenumberEnd: 101443
    functionName: sqlite3ExprCodeCopy
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3ExprDup
    - sqlite3ExprCode
    - sqlite3ExprDelete
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprCodeCopy(Parse *pParse, Expr *pExpr, int
      target)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprIsConstantNotJoin
      Src: /src/nss/lib/sqlite/sqlite3.c:101452,1
    - Dst: sqlite3ExprCodeAtInit
      Src: /src/nss/lib/sqlite/sqlite3.c:101453,1
    - Dst: sqlite3ExprCode
      Src: /src/nss/lib/sqlite/sqlite3.c:101455,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - pParse
    - pExpr
    - target
    argTypes:
    - Parse*
    - Expr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101457
      start: 101451
    functionDepth: 17
    functionLinenumber: 101451
    functionLinenumberEnd: 101457
    functionName: sqlite3ExprCodeFactorable
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3ExprIsConstantNotJoin
    - sqlite3ExprCode
    - sqlite3ExprCodeAtInit
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprCodeFactorable(Parse *pParse, Expr *pExpr,
      int target)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:101475,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:101476,1
    - Dst: sqlite3ExprCode
      Src: /src/nss/lib/sqlite/sqlite3.c:101477,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:101479,1
    - Dst: exprToRegister
      Src: /src/nss/lib/sqlite/sqlite3.c:101480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - pParse
    - pExpr
    - target
    argTypes:
    - Parse*
    - Expr*
    - int
    assertStmts:
    - condition: ( target>0 )
      pos:
        line_end: 101474
        line_start: 101474
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pExpr->op!=TK_REGISTER )
      pos:
        line_end: 101475
        line_start: 101475
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 101481
      start: 101471
    functionDepth: 17
    functionLinenumber: 101471
    functionLinenumberEnd: 101481
    functionName: sqlite3ExprCodeAndCache
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3VdbeAddOp2
    - exprToRegister
    - sqlite3ExprCode
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprCodeAndCache(Parse *pParse, Expr *pExpr,
      int target)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:101514,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:101515,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:101516,1
    - Dst: ConstFactorOk
      Src: /src/nss/lib/sqlite/sqlite3.c:101518,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:101532,1
    - Dst: sqlite3ExprIsConstantNotJoin
      Src: /src/nss/lib/sqlite/sqlite3.c:101535,1
    - Dst: sqlite3ExprCodeAtInit
      Src: /src/nss/lib/sqlite/sqlite3.c:101537,1
    - Dst: sqlite3ExprCodeTarget
      Src: /src/nss/lib/sqlite/sqlite3.c:101539,1
    - Dst: sqlite3VdbeGetOp
      Src: /src/nss/lib/sqlite/sqlite3.c:101543,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:101549,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 5
    argNames:
    - pParse
    - pList
    - target
    - srcReg
    - flags
    argTypes:
    - Parse*
    - ExprList*
    - int
    - int
    - u8
    assertStmts:
    - condition: ( pList!=0 )
      pos:
        line_end: 101513
        line_start: 101513
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( target>0 )
      pos:
        line_end: 101514
        line_start: 101514
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pParse->pVdbe!=0 )
      pos:
        line_end: 101515
        line_start: 101515
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 101555
      start: 101503
    functionDepth: 16
    functionLinenumber: 101503
    functionLinenumberEnd: 101555
    functionName: sqlite3ExprCodeExprList
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3VdbeAddOp2
    - sqlite3VdbeGetOp
    - sqlite3ExprIsConstantNotJoin
    - ConstFactorOk
    - assert
    - sqlite3ExprCodeTarget
    - sqlite3ExprCodeAtInit
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3ExprCodeExprList(\n  Parse *pParse,     /* Parsing
      context */\n  ExprList *pList,   /* The expression list to be coded */\n  int
      target,        /* Where to write results */\n  int srcReg,        /* Source
      registers if SQLITE_ECEL_REF */\n  u8 flags           /* SQLITE_ECEL_* flags
      */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:101590,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:101591,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:101592,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:101594,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:101594,1
    - Dst: exprNodeCopy
      Src: /src/nss/lib/sqlite/sqlite3.c:101595,1
    - Dst: exprToRegister
      Src: /src/nss/lib/sqlite/sqlite3.c:101605,1
    - Dst: exprCodeVector
      Src: /src/nss/lib/sqlite/sqlite3.c:101605,1
    - Dst: xJump
      Src: /src/nss/lib/sqlite/sqlite3.c:101607,1
    - Dst: sqlite3ExprCodeTarget
      Src: /src/nss/lib/sqlite/sqlite3.c:101615,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:101617,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101620,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101621,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101622,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101623,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101624,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101625,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101626,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101627,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101628,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 32
    argCount: 4
    argNames:
    - pParse
    - pExpr
    - dest
    - jumpIfNull
    argTypes:
    - Parse*
    - Expr*
    - int
    - int
    assertStmts:
    - condition: ( !ExprHasProperty(pExpr, EP_xIsSelect) )
      pos:
        line_end: 101593
        line_start: 101593
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 101629
      start: 101577
    functionDepth: 16
    functionLinenumber: 101577
    functionLinenumberEnd: 101629
    functionName: exprCodeBetween
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - xJump
    - sqlite3ReleaseTempReg
    - exprToRegister
    - exprNodeCopy
    - exprCodeVector
    - memset
    - assert
    - sqlite3ExprCodeTarget
    - ExprHasProperty
    - testcase
    linkageType: ''
    returnType: void
    signature: "void exprCodeBetween(\n  Parse *pParse,    /* Parsing and code generating
      context */\n  Expr *pExpr,      /* The BETWEEN expression */\n  int dest,         /*
      Jump destination or storage location */\n  void (*xJump)(Parse*,Expr*,int,int),
      /* Action to take */\n  int jumpIfNull    /* Take the jump if the BETWEEN is
      NULL */\n)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:101652,1
    - Dst: NEVER
      Src: /src/nss/lib/sqlite/sqlite3.c:101653,1
    - Dst: NEVER
      Src: /src/nss/lib/sqlite/sqlite3.c:101654,1
    - Dst: sqlite3ExprSimplifiedAndOr
      Src: /src/nss/lib/sqlite/sqlite3.c:101659,1
    - Dst: sqlite3ExprIfTrue
      Src: /src/nss/lib/sqlite/sqlite3.c:101661,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:101663,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101664,1
    - Dst: sqlite3ExprIfFalse
      Src: /src/nss/lib/sqlite/sqlite3.c:101665,1
    - Dst: sqlite3ExprIfTrue
      Src: /src/nss/lib/sqlite/sqlite3.c:101667,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:101668,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101670,1
    - Dst: sqlite3ExprIfTrue
      Src: /src/nss/lib/sqlite/sqlite3.c:101671,1
    - Dst: sqlite3ExprIfTrue
      Src: /src/nss/lib/sqlite/sqlite3.c:101672,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101677,1
    - Dst: sqlite3ExprIfFalse
      Src: /src/nss/lib/sqlite/sqlite3.c:101678,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101684,1
    - Dst: sqlite3ExprTruthValue
      Src: /src/nss/lib/sqlite/sqlite3.c:101686,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101687,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101688,1
    - Dst: sqlite3ExprIfTrue
      Src: /src/nss/lib/sqlite/sqlite3.c:101690,1
    - Dst: sqlite3ExprIfFalse
      Src: /src/nss/lib/sqlite/sqlite3.c:101693,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101700,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101701,1
    - Dst: sqlite3ExprIsVector
      Src: /src/nss/lib/sqlite/sqlite3.c:101711,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101712,1
    - Dst: sqlite3ExprCodeTemp
      Src: /src/nss/lib/sqlite/sqlite3.c:101713,1
    - Dst: sqlite3ExprCodeTemp
      Src: /src/nss/lib/sqlite/sqlite3.c:101714,1
    - Dst: codeCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:101715,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:101717,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101717,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:101717,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:101718,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101718,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:101718,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:101719,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101719,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:101719,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:101720,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101720,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:101720,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:101721,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101721,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:101722,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:101723,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:101724,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101724,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:101725,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:101726,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101727,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101728,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:101733,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101733,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:101734,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101734,1
    - Dst: sqlite3ExprCodeTemp
      Src: /src/nss/lib/sqlite/sqlite3.c:101735,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:101736,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:101737,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:101738,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101739,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101743,1
    - Dst: exprCodeBetween
      Src: /src/nss/lib/sqlite/sqlite3.c:101744,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:101749,1
    - Dst: sqlite3ExprCodeIN
      Src: /src/nss/lib/sqlite/sqlite3.c:101751,1
    - Dst: sqlite3VdbeGoto
      Src: /src/nss/lib/sqlite/sqlite3.c:101752,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:101753,1
    - Dst: ExprAlwaysTrue
      Src: /src/nss/lib/sqlite/sqlite3.c:101759,1
    - Dst: sqlite3VdbeGoto
      Src: /src/nss/lib/sqlite/sqlite3.c:101760,1
    - Dst: ExprAlwaysFalse
      Src: /src/nss/lib/sqlite/sqlite3.c:101761,1
    - Dst: sqlite3ExprCodeTemp
      Src: /src/nss/lib/sqlite/sqlite3.c:101764,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:101765,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:101766,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101767,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101768,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:101773,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:101774,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 129
    argCount: 4
    argNames:
    - pParse
    - pExpr
    - dest
    - jumpIfNull
    argTypes:
    - Parse*
    - Expr*
    - int
    - int
    assertStmts:
    - condition: (TK_GE==OP_Ge)
      pos:
        line_end: 101719
        line_start: 101719
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (TK_LE==OP_Le)
      pos:
        line_end: 101717
        line_start: 101717
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (TK_GT==OP_Gt)
      pos:
        line_end: 101718
        line_start: 101718
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (TK_NE==OP_Ne)
      pos:
        line_end: 101723
        line_start: 101723
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( TK_NOTNULL==OP_NotNull )
      pos:
        line_end: 101733
        line_start: 101733
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( TK_ISNULL==OP_IsNull )
      pos:
        line_end: 101732
        line_start: 101732
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (TK_EQ==OP_Eq)
      pos:
        line_end: 101720
        line_start: 101720
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( jumpIfNull==SQLITE_JUMPIFNULL || jumpIfNull==0 )
      pos:
        line_end: 101651
        line_start: 101651
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (TK_LT==OP_Lt)
      pos:
        line_end: 101716
        line_start: 101716
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 101775
      start: 101645
    functionDepth: 17
    functionLinenumber: 101645
    functionLinenumberEnd: 101775
    functionName: sqlite3ExprIfTrue
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3VdbeAddOp2
    - ExprAlwaysFalse
    - sqlite3VdbeResolveLabel
    - sqlite3VdbeAddOp3
    - sqlite3ExprIfFalse
    - sqlite3ExprSimplifiedAndOr
    - testcase
    - sqlite3VdbeGoto
    - codeCompare
    - assert
    - VdbeCoverageIf
    - exprCodeBetween
    - ExprAlwaysTrue
    - sqlite3ExprTruthValue
    - sqlite3ExprIsVector
    - sqlite3ExprCodeTemp
    - VdbeCoverage
    - NEVER
    - sqlite3ExprCodeIN
    - sqlite3ReleaseTempReg
    - sqlite3VdbeMakeLabel
    - sqlite3ExprIfTrue
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprIfTrue(Parse *pParse, Expr *pExpr, int dest,
      int jumpIfNull)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:101793,1
    - Dst: NEVER
      Src: /src/nss/lib/sqlite/sqlite3.c:101794,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:101819,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:101820,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:101821,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:101822,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:101823,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:101824,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:101825,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:101826,1
    - Dst: sqlite3ExprSimplifiedAndOr
      Src: /src/nss/lib/sqlite/sqlite3.c:101831,1
    - Dst: sqlite3ExprIfFalse
      Src: /src/nss/lib/sqlite/sqlite3.c:101833,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101835,1
    - Dst: sqlite3ExprIfFalse
      Src: /src/nss/lib/sqlite/sqlite3.c:101836,1
    - Dst: sqlite3ExprIfFalse
      Src: /src/nss/lib/sqlite/sqlite3.c:101837,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:101839,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101840,1
    - Dst: sqlite3ExprIfTrue
      Src: /src/nss/lib/sqlite/sqlite3.c:101841,1
    - Dst: sqlite3ExprIfFalse
      Src: /src/nss/lib/sqlite/sqlite3.c:101843,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:101844,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101849,1
    - Dst: sqlite3ExprIfTrue
      Src: /src/nss/lib/sqlite/sqlite3.c:101850,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101856,1
    - Dst: sqlite3ExprTruthValue
      Src: /src/nss/lib/sqlite/sqlite3.c:101858,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101859,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101860,1
    - Dst: sqlite3ExprIfFalse
      Src: /src/nss/lib/sqlite/sqlite3.c:101863,1
    - Dst: sqlite3ExprIfTrue
      Src: /src/nss/lib/sqlite/sqlite3.c:101868,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101875,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101876,1
    - Dst: sqlite3ExprIsVector
      Src: /src/nss/lib/sqlite/sqlite3.c:101886,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101887,1
    - Dst: sqlite3ExprCodeTemp
      Src: /src/nss/lib/sqlite/sqlite3.c:101888,1
    - Dst: sqlite3ExprCodeTemp
      Src: /src/nss/lib/sqlite/sqlite3.c:101889,1
    - Dst: codeCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:101890,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:101892,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101892,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:101892,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:101893,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101893,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:101893,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:101894,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101894,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:101894,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:101895,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101895,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:101895,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:101896,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101896,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:101897,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:101898,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:101899,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101899,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:101900,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:101901,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101902,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101903,1
    - Dst: sqlite3ExprCodeTemp
      Src: /src/nss/lib/sqlite/sqlite3.c:101908,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:101909,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101910,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:101910,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101911,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:101911,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101912,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101916,1
    - Dst: exprCodeBetween
      Src: /src/nss/lib/sqlite/sqlite3.c:101917,1
    - Dst: sqlite3ExprCodeIN
      Src: /src/nss/lib/sqlite/sqlite3.c:101923,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:101925,1
    - Dst: sqlite3ExprCodeIN
      Src: /src/nss/lib/sqlite/sqlite3.c:101926,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:101927,1
    - Dst: ExprAlwaysFalse
      Src: /src/nss/lib/sqlite/sqlite3.c:101934,1
    - Dst: sqlite3VdbeGoto
      Src: /src/nss/lib/sqlite/sqlite3.c:101935,1
    - Dst: ExprAlwaysTrue
      Src: /src/nss/lib/sqlite/sqlite3.c:101936,1
    - Dst: sqlite3ExprCodeTemp
      Src: /src/nss/lib/sqlite/sqlite3.c:101939,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:101940,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:101941,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101942,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:101943,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:101948,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:101949,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 138
    argCount: 4
    argNames:
    - pParse
    - pExpr
    - dest
    - jumpIfNull
    argTypes:
    - Parse*
    - Expr*
    - int
    - int
    assertStmts:
    - condition: (TK_GE==OP_Ge)
      pos:
        line_end: 101894
        line_start: 101894
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pExpr->op!=TK_GE || op==OP_Lt )
      pos:
        line_end: 101825
        line_start: 101825
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (TK_LE==OP_Le)
      pos:
        line_end: 101892
        line_start: 101892
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pExpr->op!=TK_EQ || op==OP_Ne )
      pos:
        line_end: 101821
        line_start: 101821
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pExpr->op!=TK_LE || op==OP_Gt )
      pos:
        line_end: 101823
        line_start: 101823
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( jumpIfNull==SQLITE_JUMPIFNULL || jumpIfNull==0 )
      pos:
        line_end: 101792
        line_start: 101792
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (TK_EQ==OP_Eq)
      pos:
        line_end: 101895
        line_start: 101895
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pExpr->op!=TK_LT || op==OP_Ge )
      pos:
        line_end: 101822
        line_start: 101822
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (TK_NE==OP_Ne)
      pos:
        line_end: 101898
        line_start: 101898
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pExpr->op!=TK_NOTNULL || op==OP_IsNull )
      pos:
        line_end: 101819
        line_start: 101819
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (TK_LT==OP_Lt)
      pos:
        line_end: 101891
        line_start: 101891
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (TK_GT==OP_Gt)
      pos:
        line_end: 101893
        line_start: 101893
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pExpr->op!=TK_ISNULL || op==OP_NotNull )
      pos:
        line_end: 101818
        line_start: 101818
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pExpr->op!=TK_GT || op==OP_Le )
      pos:
        line_end: 101824
        line_start: 101824
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pExpr->op!=TK_NE || op==OP_Eq )
      pos:
        line_end: 101820
        line_start: 101820
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 101950
      start: 101786
    functionDepth: 18
    functionLinenumber: 101786
    functionLinenumberEnd: 101950
    functionName: sqlite3ExprIfFalse
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 3
    functionsReached:
    - sqlite3VdbeAddOp2
    - ExprAlwaysFalse
    - sqlite3VdbeResolveLabel
    - sqlite3VdbeAddOp3
    - sqlite3ExprIfFalse
    - sqlite3ExprSimplifiedAndOr
    - testcase
    - sqlite3VdbeGoto
    - codeCompare
    - assert
    - VdbeCoverageIf
    - exprCodeBetween
    - ExprAlwaysTrue
    - sqlite3ExprTruthValue
    - sqlite3ExprIsVector
    - sqlite3ExprCodeTemp
    - VdbeCoverage
    - NEVER
    - sqlite3ExprCodeIN
    - sqlite3ReleaseTempReg
    - sqlite3VdbeMakeLabel
    - sqlite3ExprIfTrue
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprIfFalse(Parse *pParse, Expr *pExpr, int dest,
      int jumpIfNull)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprDup
      Src: /src/nss/lib/sqlite/sqlite3.c:101959,1
    - Dst: sqlite3ExprIfFalse
      Src: /src/nss/lib/sqlite/sqlite3.c:101961,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:101963,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - pParse
    - pExpr
    - dest
    - jumpIfNull
    argTypes:
    - Parse*
    - Expr*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101964
      start: 101957
    functionDepth: 19
    functionLinenumber: 101957
    functionLinenumberEnd: 101964
    functionName: sqlite3ExprIfFalseDup
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ExprDup
    - sqlite3ExprDelete
    - sqlite3ExprIfFalse
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprIfFalseDup(Parse *pParse, Expr *pExpr, int
      dest,int jumpIfNull)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ValueFromExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:101984,1
    - Dst: sqlite3VdbeSetVarmask
      Src: /src/nss/lib/sqlite/sqlite3.c:101987,1
    - Dst: sqlite3VdbeGetBoundValue
      Src: /src/nss/lib/sqlite/sqlite3.c:101988,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:101990,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:101991,1
    - Dst: sqlite3MemCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:101993,1
    - Dst: sqlite3ValueFree
      Src: /src/nss/lib/sqlite/sqlite3.c:101995,1
    - Dst: sqlite3ValueFree
      Src: /src/nss/lib/sqlite/sqlite3.c:101996,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - pParse
    - pVar
    - pExpr
    argTypes:
    - Parse*
    - Expr*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102000
      start: 101979
    functionDepth: 16
    functionLinenumber: 101979
    functionLinenumberEnd: 102000
    functionName: exprCompareVariable
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ValueFromExpr
    - sqlite3MemCompare
    - sqlite3VdbeGetBoundValue
    - sqlite3VdbeSetVarmask
    - sqlite3_value_type
    - sqlite3ValueFree
    - sqlite3_value_text
    linkageType: ''
    returnType: int
    signature: int exprCompareVariable(Parse *pParse, Expr *pVar, Expr *pExpr)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: exprCompareVariable
      Src: /src/nss/lib/sqlite/sqlite3.c:102036,1
    - Dst: sqlite3ExprCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:102047,1
    - Dst: sqlite3ExprCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:102050,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:102057,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:102067,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:102067,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:102067,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:102068,1
    - Dst: sqlite3WindowCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:102069,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:102075,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:102076,1
    - Dst: strcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:102076,1
    - Dst: sqlite3ExprCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:102084,1
    - Dst: sqlite3ExprCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:102085,1
    - Dst: sqlite3ExprListCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:102086,1
    - Dst: NEVER
      Src: /src/nss/lib/sqlite/sqlite3.c:102094,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 65
    argCount: 4
    argNames:
    - pParse
    - pA
    - pB
    - iTab
    argTypes:
    - Parse*
    - Expr*
    - Expr*
    - int
    assertStmts:
    - condition: ( ExprHasProperty(pA,EP_WinFunc)==ExprHasProperty(pB,EP_WinFunc)
        )
      pos:
        line_end: 102066
        line_start: 102066
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 102098
      start: 102031
    functionDepth: 17
    functionLinenumber: 102031
    functionLinenumberEnd: 102098
    functionName: sqlite3ExprCompare
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 5
    functionsReached:
    - strcmp
    - ALWAYS
    - sqlite3ExprListCompare
    - NEVER
    - sqlite3StrICmp
    - exprCompareVariable
    - sqlite3ExprCompare
    - assert
    - ExprHasProperty
    - sqlite3WindowCompare
    - sqlite3_stricmp
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprCompare(Parse *pParse, Expr *pA, Expr *pB,
      int iTab)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:102124,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 3
    argNames:
    - pA
    - pB
    - iTab
    argTypes:
    - ExprList*
    - ExprList*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102127
      start: 102115
    functionDepth: 18
    functionLinenumber: 102115
    functionLinenumberEnd: 102127
    functionName: sqlite3ExprListCompare
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3ExprCompare
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprListCompare(ExprList *pA, ExprList *pB, int
      iTab)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:102134,1
    - Dst: sqlite3ExprSkipCollate
      Src: /src/nss/lib/sqlite/sqlite3.c:102135,1
    - Dst: sqlite3ExprSkipCollate
      Src: /src/nss/lib/sqlite/sqlite3.c:102136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pA
    - pB
    - iTab
    argTypes:
    - Expr*
    - Expr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102138
      start: 102133
    functionDepth: 18
    functionLinenumber: 102133
    functionLinenumberEnd: 102138
    functionName: sqlite3ExprCompareSkip
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ExprSkipCollate
    - sqlite3ExprCompare
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprCompareSkip(Expr *pA, Expr *pB, int iTab)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:102150,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:102151,1
    - Dst: sqlite3ExprCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:102152,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:102155,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:102156,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:102156,1
    - Dst: exprImpliesNotNull
      Src: /src/nss/lib/sqlite/sqlite3.c:102158,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:102162,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:102163,1
    - Dst: exprImpliesNotNull
      Src: /src/nss/lib/sqlite/sqlite3.c:102165,1
    - Dst: exprImpliesNotNull
      Src: /src/nss/lib/sqlite/sqlite3.c:102166,1
    - Dst: exprImpliesNotNull
      Src: /src/nss/lib/sqlite/sqlite3.c:102170,1
    - Dst: exprImpliesNotNull
      Src: /src/nss/lib/sqlite/sqlite3.c:102188,1
    - Dst: exprImpliesNotNull
      Src: /src/nss/lib/sqlite/sqlite3.c:102196,1
    - Dst: exprImpliesNotNull
      Src: /src/nss/lib/sqlite/sqlite3.c:102201,1
    - Dst: exprImpliesNotNull
      Src: /src/nss/lib/sqlite/sqlite3.c:102204,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 60
    argCount: 5
    argNames:
    - pParse
    - p
    - pNN
    - iTab
    - seenNot
    argTypes:
    - Parse*
    - Expr*
    - Expr*
    - int
    - int
    assertStmts:
    - condition: ( p )
      pos:
        line_end: 102149
        line_start: 102149
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( ExprHasProperty(p,EP_xIsSelect)\n           || (p->x.pList!=0
        && p->x.pList->nExpr>0) )"
      pos:
        line_end: 102156
        line_start: 102155
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pNN )
      pos:
        line_end: 102150
        line_start: 102150
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pList!=0 )
      pos:
        line_end: 102161
        line_start: 102161
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pList->nExpr==2 )
      pos:
        line_end: 102162
        line_start: 102162
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 102208
      start: 102143
    functionDepth: 18
    functionLinenumber: 102143
    functionLinenumberEnd: 102208
    functionName: exprImpliesNotNull
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - ExprHasProperty
    - sqlite3ExprCompare
    - exprImpliesNotNull
    linkageType: ''
    returnType: int
    signature: "int exprImpliesNotNull(\n  Parse *pParse,      /* Parsing context
      */\n  Expr *p,            /* The expression to be checked */\n  Expr *pNN,          /*
      The expression that is NOT NULL */\n  int iTab,           /* Table being evaluated
      */\n  int seenNot         /* True if p is an operand of NOT */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:102236,1
    - Dst: sqlite3ExprImpliesExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:102240,1
    - Dst: sqlite3ExprImpliesExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:102241,1
    - Dst: exprImpliesNotNull
      Src: /src/nss/lib/sqlite/sqlite3.c:102246,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 4
    argNames:
    - pParse
    - pE1
    - pE2
    - iTab
    argTypes:
    - Parse*
    - Expr*
    - Expr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102251
      start: 102235
    functionDepth: 19
    functionLinenumber: 102235
    functionLinenumberEnd: 102251
    functionName: sqlite3ExprImpliesExpr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3ExprImpliesExpr
    - sqlite3ExprCompare
    - exprImpliesNotNull
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprImpliesExpr(Parse *pParse, Expr *pE1, Expr
      *pE2, int iTab)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:102263,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:102264,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:102265,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:102276,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:102277,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:102278,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:102279,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:102280,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:102281,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:102282,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:102283,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:102284,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:102302,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:102303,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:102304,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:102305,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:102306,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:102307,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:102308,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:102309,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 49
    argCount: 2
    argNames:
    - pWalker
    - pExpr
    argTypes:
    - Walker*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102316
      start: 102262
    functionDepth: 1
    functionLinenumber: 102262
    functionLinenumberEnd: 102316
    functionName: impliesNotNullRow
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ExprHasProperty
    - testcase
    - IsVirtual
    linkageType: ''
    returnType: int
    signature: int impliesNotNullRow(Walker *pWalker, Expr *pExpr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprSkipCollate
      Src: /src/nss/lib/sqlite/sqlite3.c:102342,1
    - Dst: sqlite3ExprImpliesNonNullRow
      Src: /src/nss/lib/sqlite/sqlite3.c:102347,1
    - Dst: sqlite3WalkExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:102358,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - p
    - iTab
    argTypes:
    - Expr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102360
      start: 102340
    functionDepth: 4
    functionLinenumber: 102340
    functionLinenumberEnd: 102360
    functionName: sqlite3ExprImpliesNonNullRow
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3WalkExpr
    - sqlite3ExprSkipCollate
    - sqlite3ExprImpliesNonNullRow
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprImpliesNonNullRow(Expr *p, int iTab)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ColumnOfIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:102382,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - pWalker
    - pExpr
    argTypes:
    - Walker*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102388
      start: 102379
    functionDepth: 1
    functionLinenumber: 102379
    functionLinenumberEnd: 102388
    functionName: exprIdxCover
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ColumnOfIndex
    linkageType: ''
    returnType: int
    signature: int exprIdxCover(Walker *pWalker, Expr *pExpr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:102407,1
    - Dst: sqlite3WalkExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:102412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - pExpr
    - iCur
    - pIdx
    argTypes:
    - Expr*
    - int
    - Index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102414
      start: 102400
    functionDepth: 4
    functionLinenumber: 102400
    functionLinenumberEnd: 102414
    functionName: sqlite3ExprCoveredByIndex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3WalkExpr
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3ExprCoveredByIndex(\n  Expr *pExpr,        /*
      The index to be tested */\n  int iCur,           /* The cursor number for the
      corresponding table */\n  Index *pIdx         /* The index that might be used
      for coverage */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NEVER
      Src: /src/nss/lib/sqlite/sqlite3.c:102438,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - pWalker
    - pExpr
    argTypes:
    - Walker*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102453
      start: 102432
    functionDepth: 1
    functionLinenumber: 102432
    functionLinenumberEnd: 102453
    functionName: exprSrcCount
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - NEVER
    linkageType: ''
    returnType: int
    signature: int exprSrcCount(Walker *pWalker, Expr *pExpr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:102464,1
    - Dst: sqlite3WalkExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:102471,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - pExpr
    - pSrcList
    argTypes:
    - Expr*
    - SrcList*
    assertStmts:
    - condition: ( pExpr->op==TK_AGG_FUNCTION )
      pos:
        line_end: 102463
        line_start: 102463
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 102473
      start: 102461
    functionDepth: 5
    functionLinenumber: 102461
    functionLinenumberEnd: 102473
    functionName: sqlite3FunctionUsesThisSrc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - sqlite3WalkExprList
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3FunctionUsesThisSrc(Expr *pExpr, SrcList *pSrcList)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ArrayAllocate
      Src: /src/nss/lib/sqlite/sqlite3.c:102481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - db
    - pInfo
    argTypes:
    - sqlite3*
    - AggInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102489
      start: 102479
    functionDepth: 1
    functionLinenumber: 102479
    functionLinenumberEnd: 102489
    functionName: addAggInfoColumn
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ArrayAllocate
    linkageType: ''
    returnType: int
    signature: int addAggInfoColumn(sqlite3 *db, AggInfo *pInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ArrayAllocate
      Src: /src/nss/lib/sqlite/sqlite3.c:102497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - db
    - pInfo
    argTypes:
    - sqlite3*
    - AggInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102505
      start: 102495
    functionDepth: 1
    functionLinenumber: 102495
    functionLinenumberEnd: 102505
    functionName: addAggInfoFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ArrayAllocate
    linkageType: ''
    returnType: int
    signature: int addAggInfoFunc(sqlite3 *db, AggInfo *pInfo)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:102519,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:102523,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:102524,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:102527,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:102531,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:102531,1
    - Dst: addAggInfoColumn
      Src: /src/nss/lib/sqlite/sqlite3.c:102548,1
    - Dst: ExprSetVVAProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:102580,1
    - Dst: sqlite3ExprCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:102599,1
    - Dst: ENC
      Src: /src/nss/lib/sqlite/sqlite3.c:102606,1
    - Dst: addAggInfoFunc
      Src: /src/nss/lib/sqlite/sqlite3.c:102607,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:102609,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:102609,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:102613,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:102613,1
    - Dst: sqlite3FindFunction
      Src: /src/nss/lib/sqlite/sqlite3.c:102614,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:102626,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:102626,1
    - Dst: ExprSetVVAProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:102627,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 82
    argCount: 2
    argNames:
    - pWalker
    - pExpr
    argTypes:
    - Walker*
    - Expr*
    assertStmts:
    - condition: ( pNC->ncFlags & NC_UAggInfo )
      pos:
        line_end: 102518
        line_start: 102518
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !ExprHasProperty(pExpr, EP_TokenOnly|EP_Reduced) )
      pos:
        line_end: 102530
        line_start: 102530
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !ExprHasProperty(pExpr, EP_TokenOnly|EP_Reduced) )
      pos:
        line_end: 102625
        line_start: 102625
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !ExprHasProperty(pExpr, EP_xIsSelect) )
      pos:
        line_end: 102608
        line_start: 102608
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !ExprHasProperty(pExpr, EP_IntValue) )
      pos:
        line_end: 102612
        line_start: 102612
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 102637
      start: 102512
    functionDepth: 18
    functionLinenumber: 102512
    functionLinenumberEnd: 102637
    functionName: analyzeAggregate
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ALWAYS
    - addAggInfoColumn
    - sqlite3FindFunction
    - ExprSetVVAProperty
    - sqlite3ExprCompare
    - assert
    - addAggInfoFunc
    - ENC
    - ExprHasProperty
    - testcase
    linkageType: ''
    returnType: int
    signature: int analyzeAggregate(Walker *pWalker, Expr *pExpr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:102639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pWalker
    - pSelect
    argTypes:
    - Walker*
    - Select*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102642
      start: 102638
    functionDepth: 1
    functionLinenumber: 102638
    functionLinenumberEnd: 102642
    functionName: analyzeAggregatesInSelect
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: int
    signature: int analyzeAggregatesInSelect(Walker *pWalker, Select *pSelect)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:102644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pWalker
    - pSelect
    argTypes:
    - Walker*
    - Select*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102646
      start: 102643
    functionDepth: 1
    functionLinenumber: 102643
    functionLinenumberEnd: 102646
    functionName: analyzeAggregatesInSelectEnd
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: void
    signature: void analyzeAggregatesInSelectEnd(Walker *pWalker, Select *pSelect)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:102665,1
    - Dst: sqlite3WalkExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:102666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - pNC
    - pExpr
    argTypes:
    - NameContext*
    - Expr*
    assertStmts:
    - condition: ( pNC->pSrcList!=0 )
      pos:
        line_end: 102664
        line_start: 102664
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 102667
      start: 102657
    functionDepth: 4
    functionLinenumber: 102657
    functionLinenumberEnd: 102667
    functionName: sqlite3ExprAnalyzeAggregates
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3WalkExpr
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprAnalyzeAggregates(NameContext *pNC, Expr
      *pExpr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprAnalyzeAggregates
      Src: /src/nss/lib/sqlite/sqlite3.c:102680,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - pNC
    - pList
    argTypes:
    - NameContext*
    - ExprList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102683
      start: 102675
    functionDepth: 5
    functionLinenumber: 102675
    functionLinenumberEnd: 102683
    functionName: sqlite3ExprAnalyzeAggList
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ExprAnalyzeAggregates
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprAnalyzeAggList(NameContext *pNC, ExprList
      *pList)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pParse
    argTypes:
    - Parse*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102693
      start: 102688
    functionDepth: 0
    functionLinenumber: 102688
    functionLinenumberEnd: 102693
    functionName: sqlite3GetTempReg
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3GetTempReg(Parse *pParse)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:102700,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - pParse
    - iReg
    argTypes:
    - Parse*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102703
      start: 102699
    functionDepth: 1
    functionLinenumber: 102699
    functionLinenumberEnd: 102703
    functionName: sqlite3ReleaseTempReg
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 8
    functionsReached:
    - ArraySize
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ReleaseTempReg(Parse *pParse, int iReg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:102710,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - pParse
    - nReg
    argTypes:
    - Parse*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102721
      start: 102708
    functionDepth: 1
    functionLinenumber: 102708
    functionLinenumberEnd: 102721
    functionName: sqlite3GetTempRange
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3GetTempReg
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3GetTempRange(Parse *pParse, int nReg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ReleaseTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:102724,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - pParse
    - iReg
    - nReg
    argTypes:
    - Parse*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102731
      start: 102722
    functionDepth: 2
    functionLinenumber: 102722
    functionLinenumberEnd: 102731
    functionName: sqlite3ReleaseTempRange
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3ReleaseTempReg
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ReleaseTempRange(Parse *pParse, int iReg, int
      nReg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pParse
    argTypes:
    - Parse*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102739
      start: 102736
    functionDepth: 0
    functionLinenumber: 102736
    functionLinenumberEnd: 102739
    functionName: sqlite3ClearTempRegCache
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ClearTempRegCache(Parse *pParse)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 3
    argNames:
    - pParse
    - iFirst
    - iLast
    argTypes:
    - Parse*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102761
      start: 102747
    functionDepth: 0
    functionLinenumber: 102747
    functionLinenumberEnd: 102761
    functionName: sqlite3NoTempsInRange
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3NoTempsInRange(Parse *pParse, int iFirst, int
      iLast)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3StrNICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:102797,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:102805,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - pParse
    - pTab
    argTypes:
    - Parse*
    - Table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102809
      start: 102796
    functionDepth: 10
    functionLinenumber: 102796
    functionLinenumberEnd: 102809
    functionName: isAlterableTable
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3StrNICmp
    - sqlite3ErrorMsg
    linkageType: ''
    returnType: int
    signature: int isAlterableTable(Parse *pParse, Table *pTab)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3NestedParse
      Src: /src/nss/lib/sqlite/sqlite3.c:102819,1
    - Dst: sqlite3NestedParse
      Src: /src/nss/lib/sqlite/sqlite3.c:102830,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - pParse
    - zDb
    - bTemp
    argTypes:
    - Parse*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102839
      start: 102818
    functionDepth: 1
    functionLinenumber: 102818
    functionLinenumberEnd: 102839
    functionName: renameTestSchema
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3NestedParse
    linkageType: ''
    returnType: void
    signature: void renameTestSchema(Parse *pParse, const char *zDb, int bTemp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ChangeCookie
      Src: /src/nss/lib/sqlite/sqlite3.c:102848,1
    - Dst: sqlite3VdbeAddParseSchemaOp
      Src: /src/nss/lib/sqlite/sqlite3.c:102849,1
    - Dst: sqlite3VdbeAddParseSchemaOp
      Src: /src/nss/lib/sqlite/sqlite3.c:102850,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - pParse
    - iDb
    argTypes:
    - Parse*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102852
      start: 102845
    functionDepth: 13
    functionLinenumber: 102845
    functionLinenumberEnd: 102852
    functionName: renameReloadSchema
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeAddParseSchemaOp
    - sqlite3ChangeCookie
    linkageType: ''
    returnType: void
    signature: void renameReloadSchema(Parse *pParse, int iDb)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: NEVER
      Src: /src/nss/lib/sqlite/sqlite3.c:102875,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:102876,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:102877,1
    - Dst: sqlite3BtreeHoldsAllMutexes
      Src: /src/nss/lib/sqlite/sqlite3.c:102877,1
    - Dst: sqlite3LocateTableItem
      Src: /src/nss/lib/sqlite/sqlite3.c:102879,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:102881,1
    - Dst: sqlite3NameFromToken
      Src: /src/nss/lib/sqlite/sqlite3.c:102886,1
    - Dst: sqlite3FindTable
      Src: /src/nss/lib/sqlite/sqlite3.c:102892,1
    - Dst: sqlite3FindIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:102892,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:102893,1
    - Dst: isAlterableTable
      Src: /src/nss/lib/sqlite/sqlite3.c:102901,1
    - Dst: sqlite3CheckObjectName
      Src: /src/nss/lib/sqlite/sqlite3.c:102904,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:102910,1
    - Dst: sqlite3AuthCheck
      Src: /src/nss/lib/sqlite/sqlite3.c:102917,1
    - Dst: sqlite3ViewGetColumnNames
      Src: /src/nss/lib/sqlite/sqlite3.c:102923,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:102926,1
    - Dst: sqlite3GetVTable
      Src: /src/nss/lib/sqlite/sqlite3.c:102927,1
    - Dst: sqlite3GetVdbe
      Src: /src/nss/lib/sqlite/sqlite3.c:102938,1
    - Dst: sqlite3MayAbort
      Src: /src/nss/lib/sqlite/sqlite3.c:102942,1
    - Dst: sqlite3Utf8CharLen
      Src: /src/nss/lib/sqlite/sqlite3.c:102946,1
    - Dst: sqlite3NestedParse
      Src: /src/nss/lib/sqlite/sqlite3.c:102950,1
    - Dst: sqlite3NestedParse
      Src: /src/nss/lib/sqlite/sqlite3.c:102960,1
    - Dst: sqlite3FindTable
      Src: /src/nss/lib/sqlite/sqlite3.c:102980,1
    - Dst: sqlite3NestedParse
      Src: /src/nss/lib/sqlite/sqlite3.c:102981,1
    - Dst: sqlite3NestedParse
      Src: /src/nss/lib/sqlite/sqlite3.c:102991,1
    - Dst: sqlite3VdbeLoadString
      Src: /src/nss/lib/sqlite/sqlite3.c:103010,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:103011,1
    - Dst: renameReloadSchema
      Src: /src/nss/lib/sqlite/sqlite3.c:103015,1
    - Dst: renameTestSchema
      Src: /src/nss/lib/sqlite/sqlite3.c:103016,1
    - Dst: sqlite3SrcListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:103019,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:103020,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 77
    argCount: 3
    argNames:
    - pParse
    - pSrc
    - pName
    argTypes:
    - Parse*
    - SrcList*
    - Token*
    assertStmts:
    - condition: ( pSrc->nSrc==1 )
      pos:
        line_end: 102875
        line_start: 102875
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3BtreeHoldsAllMutexes(pParse->db) )
      pos:
        line_end: 102876
        line_start: 102876
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 103022
      start: 102858
    functionDepth: 14
    functionLinenumber: 102858
    functionLinenumberEnd: 103022
    functionName: sqlite3AlterRenameTable
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3LocateTableItem
    - sqlite3ViewGetColumnNames
    - sqlite3GetVdbe
    - sqlite3FindTable
    - renameReloadSchema
    - sqlite3MayAbort
    - assert
    - sqlite3BtreeHoldsAllMutexes
    - sqlite3GetVTable
    - renameTestSchema
    - sqlite3Utf8CharLen
    - sqlite3SchemaToIndex
    - sqlite3VdbeLoadString
    - sqlite3AuthCheck
    - sqlite3DbFree
    - sqlite3NameFromToken
    - sqlite3VdbeAddOp4
    - isAlterableTable
    - NEVER
    - sqlite3NestedParse
    - sqlite3CheckObjectName
    - sqlite3FindIndex
    - sqlite3SrcListDelete
    - sqlite3ErrorMsg
    - IsVirtual
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3AlterRenameTable(\n  Parse *pParse,            /*
      Parser context. */\n  SrcList *pSrc,            /* The table to rename. */\n
      \ Token *pName              /* The new table name. */\n)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:103048,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:103050,1
    - Dst: sqlite3BtreeHoldsAllMutexes
      Src: /src/nss/lib/sqlite/sqlite3.c:103050,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:103051,1
    - Dst: sqlite3FindTable
      Src: /src/nss/lib/sqlite/sqlite3.c:103056,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:103057,1
    - Dst: sqlite3AuthCheck
      Src: /src/nss/lib/sqlite/sqlite3.c:103061,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:103070,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:103080,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:103084,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:103088,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:103093,1
    - Dst: sqlite3ValueFromExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:103104,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:103105,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:103107,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:103111,1
    - Dst: sqlite3ValueFree
      Src: /src/nss/lib/sqlite/sqlite3.c:103114,1
    - Dst: sqlite3DbStrNDup
      Src: /src/nss/lib/sqlite/sqlite3.c:103118,1
    - Dst: sqlite3Isspace
      Src: /src/nss/lib/sqlite/sqlite3.c:103122,1
    - Dst: sqlite3NestedParse
      Src: /src/nss/lib/sqlite/sqlite3.c:103126,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:103133,1
    - Dst: sqlite3GetVdbe
      Src: /src/nss/lib/sqlite/sqlite3.c:103141,1
    - Dst: sqlite3GetTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:103143,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:103144,1
    - Dst: sqlite3VdbeUsesBtree
      Src: /src/nss/lib/sqlite/sqlite3.c:103145,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:103146,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:103147,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:103147,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:103148,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:103149,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:103150,1
    - Dst: renameReloadSchema
      Src: /src/nss/lib/sqlite/sqlite3.c:103154,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 72
    argCount: 2
    argNames:
    - pParse
    - pColDef
    argTypes:
    - Parse*
    - Token*
    assertStmts:
    - condition: ( sqlite3BtreeHoldsAllMutexes(db) )
      pos:
        line_end: 103049
        line_start: 103049
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pDflt==0 || pDflt->op==TK_SPAN )
      pos:
        line_end: 103069
        line_start: 103069
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( db->mallocFailed == 1 )
      pos:
        line_end: 103106
        line_start: 103106
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pNew )
      pos:
        line_end: 103047
        line_start: 103047
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTab )
      pos:
        line_end: 103056
        line_start: 103056
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc==SQLITE_OK || rc==SQLITE_NOMEM )
      pos:
        line_end: 103104
        line_start: 103104
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 103155
      start: 103032
    functionDepth: 14
    functionLinenumber: 103032
    functionLinenumberEnd: 103155
    functionName: sqlite3AlterFinishAddColumn
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeAddOp2
    - sqlite3VdbeAddOp3
    - sqlite3Isspace
    - sqlite3GetVdbe
    - sqlite3VdbeUsesBtree
    - sqlite3VdbeCurrentAddr
    - sqlite3FindTable
    - sqlite3GetTempReg
    - renameReloadSchema
    - assert
    - sqlite3ValueFree
    - sqlite3BtreeHoldsAllMutexes
    - sqlite3DbStrNDup
    - sqlite3SchemaToIndex
    - sqlite3AuthCheck
    - sqlite3ValueFromExpr
    - sqlite3DbFree
    - VdbeCoverage
    - sqlite3NestedParse
    - sqlite3ReleaseTempReg
    - sqlite3ErrorMsg
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3AlterFinishAddColumn(Parse *pParse, Token *pColDef)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:103181,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:103182,1
    - Dst: sqlite3BtreeHoldsAllMutexes
      Src: /src/nss/lib/sqlite/sqlite3.c:103182,1
    - Dst: sqlite3LocateTableItem
      Src: /src/nss/lib/sqlite/sqlite3.c:103184,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:103188,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:103189,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:103196,1
    - Dst: isAlterableTable
      Src: /src/nss/lib/sqlite/sqlite3.c:103199,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:103203,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:103204,1
    - Dst: sqlite3DbMallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:103213,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:103218,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:103220,1
    - Dst: sqlite3DbMallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:103221,1
    - Dst: sqlite3MPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:103222,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:103224,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:103227,1
    - Dst: sqlite3DbStrDup
      Src: /src/nss/lib/sqlite/sqlite3.c:103230,1
    - Dst: sqlite3SrcListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:103239,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 56
    argCount: 2
    argNames:
    - pParse
    - pSrc
    argTypes:
    - Parse*
    - SrcList*
    assertStmts:
    - condition: ( pParse->pNewTable==0 )
      pos:
        line_end: 103180
        line_start: 103180
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nAlloc>=pNew->nCol && nAlloc%8==0 && nAlloc-pNew->nCol<8 )
      pos:
        line_end: 103219
        line_start: 103219
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3BtreeHoldsAllMutexes(db) )
      pos:
        line_end: 103181
        line_start: 103181
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTab->addColOffset>0 )
      pos:
        line_end: 103202
        line_start: 103202
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( db->mallocFailed )
      pos:
        line_end: 103223
        line_start: 103223
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pNew->nCol>0 )
      pos:
        line_end: 103217
        line_start: 103217
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 103241
      start: 103172
    functionDepth: 11
    functionLinenumber: 103172
    functionLinenumberEnd: 103241
    functionName: sqlite3AlterBeginAddColumn
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3MPrintf
    - memcpy
    - sqlite3LocateTableItem
    - sqlite3DbMallocZero
    - sqlite3DbStrDup
    - assert
    - sqlite3SrcListDelete
    - isAlterableTable
    - sqlite3ErrorMsg
    - sqlite3BtreeHoldsAllMutexes
    - sqlite3SchemaToIndex
    - IsVirtual
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3AlterBeginAddColumn(Parse *pParse, SrcList *pSrc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:103260,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:103265,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - pParse
    - pTab
    argTypes:
    - Parse*
    - Table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103271
      start: 103252
    functionDepth: 10
    functionLinenumber: 103252
    functionLinenumberEnd: 103271
    functionName: isRealTable
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ErrorMsg
    - IsVirtual
    linkageType: ''
    returnType: int
    signature: int isRealTable(Parse *pParse, Table *pTab)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103274
      start: 103273
    functionDepth: 0
    functionLinenumber: 103273
    functionLinenumberEnd: 103274
    functionName: isRealTable
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: isRealTable(x,y)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3LocateTableItem
      Src: /src/nss/lib/sqlite/sqlite3.c:103297,1
    - Dst: isAlterableTable
      Src: /src/nss/lib/sqlite/sqlite3.c:103301,1
    - Dst: isRealTable
      Src: /src/nss/lib/sqlite/sqlite3.c:103302,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:103305,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:103306,1
    - Dst: sqlite3AuthCheck
      Src: /src/nss/lib/sqlite/sqlite3.c:103311,1
    - Dst: sqlite3NameFromToken
      Src: /src/nss/lib/sqlite/sqlite3.c:103318,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:103321,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:103324,1
    - Dst: sqlite3MayAbort
      Src: /src/nss/lib/sqlite/sqlite3.c:103332,1
    - Dst: sqlite3NameFromToken
      Src: /src/nss/lib/sqlite/sqlite3.c:103333,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:103335,1
    - Dst: sqlite3Isquote
      Src: /src/nss/lib/sqlite/sqlite3.c:103336,1
    - Dst: sqlite3NestedParse
      Src: /src/nss/lib/sqlite/sqlite3.c:103337,1
    - Dst: sqlite3NestedParse
      Src: /src/nss/lib/sqlite/sqlite3.c:103348,1
    - Dst: renameReloadSchema
      Src: /src/nss/lib/sqlite/sqlite3.c:103357,1
    - Dst: renameTestSchema
      Src: /src/nss/lib/sqlite/sqlite3.c:103358,1
    - Dst: sqlite3SrcListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:103361,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:103362,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:103363,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 48
    argCount: 4
    argNames:
    - pParse
    - pSrc
    - pOld
    - pNew
    argTypes:
    - Parse*
    - SrcList*
    - Token*
    - Token*
    assertStmts:
    - condition: ( iSchema>=0 )
      pos:
        line_end: 103305
        line_start: 103305
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pNew->n>0 )
      pos:
        line_end: 103334
        line_start: 103334
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 103365
      start: 103281
    functionDepth: 14
    functionLinenumber: 103281
    functionLinenumberEnd: 103365
    functionName: sqlite3AlterRenameColumn
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3AuthCheck
    - sqlite3NestedParse
    - sqlite3StrICmp
    - sqlite3LocateTableItem
    - sqlite3DbFree
    - renameReloadSchema
    - sqlite3MayAbort
    - assert
    - sqlite3NameFromToken
    - sqlite3SrcListDelete
    - isAlterableTable
    - sqlite3ErrorMsg
    - sqlite3Isquote
    - renameTestSchema
    - sqlite3SchemaToIndex
    - isRealTable
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3AlterRenameColumn(\n  Parse *pParse,                  /*
      Parsing context */\n  SrcList *pSrc,                  /* Table being altered.
      \ pSrc->nSrc==1 */\n  Token *pOld,                    /* Name of column being
      changed */\n  Token *pNew                     /* New column name */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:103433,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - pParse
    - pPtr
    argTypes:
    - Parse*
    - void*
    assertStmts:
    - condition: ( p->p!=pPtr )
      pos:
        line_end: 103432
        line_start: 103432
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 103438
      start: 103427
    functionDepth: 0
    functionLinenumber: 103427
    functionLinenumberEnd: 103438
    functionName: renameTokenCheckAll
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void renameTokenCheckAll(Parse *pParse, void *pPtr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:103457,1
    - Dst: renameTokenCheckAll
      Src: /src/nss/lib/sqlite/sqlite3.c:103458,1
    - Dst: sqlite3DbMallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:103459,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - pParse
    - pPtr
    - pToken
    argTypes:
    - Parse*
    - void*
    - Token*
    assertStmts:
    - condition: ( pPtr || pParse->db->mallocFailed )
      pos:
        line_end: 103456
        line_start: 103456
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 103468
      start: 103455
    functionDepth: 2
    functionLinenumber: 103455
    functionLinenumberEnd: 103468
    functionName: sqlite3RenameTokenMap
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - renameTokenCheckAll
    - sqlite3DbMallocZero
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3RenameTokenMap(Parse *pParse, void *pPtr, Token
      *pToken)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: renameTokenCheckAll
      Src: /src/nss/lib/sqlite/sqlite3.c:103477,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - pParse
    - pTo
    - pFrom
    argTypes:
    - Parse*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103484
      start: 103475
    functionDepth: 1
    functionLinenumber: 103475
    functionLinenumberEnd: 103484
    functionName: sqlite3RenameTokenRemap
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 3
    functionsReached:
    - renameTokenCheckAll
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3RenameTokenRemap(Parse *pParse, void *pTo, void
      *pFrom)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3RenameTokenRemap
      Src: /src/nss/lib/sqlite/sqlite3.c:103491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pWalker
    - pExpr
    argTypes:
    - Walker*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103493
      start: 103489
    functionDepth: 2
    functionLinenumber: 103489
    functionLinenumberEnd: 103493
    functionName: renameUnmapExprCb
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3RenameTokenRemap
    linkageType: ''
    returnType: int
    signature: int renameUnmapExprCb(Walker *pWalker, Expr *pExpr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:103501,1
    - Dst: sqlite3RenameTokenRemap
      Src: /src/nss/lib/sqlite/sqlite3.c:103505,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:103509,1
    - Dst: sqlite3RenameTokenRemap
      Src: /src/nss/lib/sqlite/sqlite3.c:103512,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - pWalker
    - p
    argTypes:
    - Walker*
    - Select*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103516
      start: 103498
    functionDepth: 2
    functionLinenumber: 103498
    functionLinenumberEnd: 103516
    functionName: renameUnmapSelectCb
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ALWAYS
    - sqlite3RenameTokenRemap
    linkageType: ''
    returnType: int
    signature: int renameUnmapSelectCb(Walker *pWalker, Select *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:103523,1
    - Dst: sqlite3WalkExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:103527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - pParse
    - pExpr
    argTypes:
    - Parse*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103528
      start: 103521
    functionDepth: 4
    functionLinenumber: 103521
    functionLinenumberEnd: 103528
    functionName: sqlite3RenameExprUnmap
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - memset
    - sqlite3WalkExpr
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3RenameExprUnmap(Parse *pParse, Expr *pExpr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:103538,1
    - Dst: sqlite3WalkExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:103541,1
    - Dst: sqlite3RenameTokenRemap
      Src: /src/nss/lib/sqlite/sqlite3.c:103543,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - pParse
    - pEList
    argTypes:
    - Parse*
    - ExprList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103546
      start: 103534
    functionDepth: 5
    functionLinenumber: 103534
    functionLinenumberEnd: 103546
    functionName: sqlite3RenameExprlistUnmap
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3RenameTokenRemap
    - sqlite3WalkExprList
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3RenameExprlistUnmap(Parse *pParse, ExprList *pEList)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:103556,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - db
    - pToken
    argTypes:
    - sqlite3*
    - RenameToken*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103558
      start: 103551
    functionDepth: 6
    functionLinenumber: 103551
    functionLinenumberEnd: 103558
    functionName: renameTokenFree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbFree
    linkageType: ''
    returnType: void
    signature: void renameTokenFree(sqlite3 *db, RenameToken *pToken)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:103568,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - pParse
    - pCtx
    - pPtr
    argTypes:
    - Parse*
    - struct RenameCtx*
    - void*
    assertStmts:
    - condition: ( pPtr!=0 )
      pos:
        line_end: 103567
        line_start: 103567
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 103579
      start: 103566
    functionDepth: 0
    functionLinenumber: 103566
    functionLinenumberEnd: 103579
    functionName: renameTokenFind
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void renameTokenFind(Parse *pParse, struct RenameCtx *pCtx, void *pPtr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:103591,1
    - Dst: sqlite3SelectPrep
      Src: /src/nss/lib/sqlite/sqlite3.c:103593,1
    - Dst: sqlite3WalkSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:103594,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - pWalker
    - pSelect
    argTypes:
    - Walker*
    - Select*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103597
      start: 103585
    functionDepth: 7
    functionLinenumber: 103585
    functionLinenumberEnd: 103597
    functionName: renameWalkWith
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3SelectPrep
    - sqlite3WalkSelect
    linkageType: ''
    returnType: void
    signature: void renameWalkWith(Walker *pWalker, Select *pSelect)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: renameWalkWith
      Src: /src/nss/lib/sqlite/sqlite3.c:103605,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pWalker
    - p
    argTypes:
    - Walker*
    - Select*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103607
      start: 103604
    functionDepth: 8
    functionLinenumber: 103604
    functionLinenumberEnd: 103607
    functionName: renameColumnSelectCb
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - renameWalkWith
    linkageType: ''
    returnType: int
    signature: int renameColumnSelectCb(Walker *pWalker, Select *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: renameTokenFind
      Src: /src/nss/lib/sqlite/sqlite3.c:103624,1
    - Dst: renameTokenFind
      Src: /src/nss/lib/sqlite/sqlite3.c:103629,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 2
    argNames:
    - pWalker
    - pExpr
    argTypes:
    - Walker*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103632
      start: 103618
    functionDepth: 1
    functionLinenumber: 103618
    functionLinenumberEnd: 103632
    functionName: renameColumnExprCb
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - renameTokenFind
    linkageType: ''
    returnType: int
    signature: int renameColumnExprCb(Walker *pWalker, Expr *pExpr)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - pCtx
    argTypes:
    - RenameCtx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103655
      start: 103643
    functionDepth: 0
    functionLinenumber: 103643
    functionLinenumberEnd: 103655
    functionName: renameColumnTokenNext
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RenameToken
    signature: RenameToken *renameColumnTokenNext(RenameCtx *pCtx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:103671,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:103672,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:103675,1
    - Dst: sqlite3_result_error
      Src: /src/nss/lib/sqlite/sqlite3.c:103679,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:103680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - pCtx
    - bPost
    - pType
    - pObject
    - pParse
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value*
    - sqlite3_value*
    - Parse*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103681
      start: 103664
    functionDepth: 15
    functionLinenumber: 103664
    functionLinenumberEnd: 103681
    functionName: renameColumnParseError
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mprintf
    - sqlite3_value_text
    - sqlite3_free
    - sqlite3_result_error
    linkageType: ''
    returnType: void
    signature: "void renameColumnParseError(\n  sqlite3_context *pCtx, \n  int bPost,\n
      \ sqlite3_value *pType,\n  sqlite3_value *pObject,\n  Parse *pParse\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:103699,1
    - Dst: renameTokenFind
      Src: /src/nss/lib/sqlite/sqlite3.c:103700,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - pParse
    - pCtx
    - pEList
    - zOld
    argTypes:
    - Parse*
    - RenameCtx*
    - ExprList*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103704
      start: 103689
    functionDepth: 2
    functionLinenumber: 103689
    functionLinenumberEnd: 103704
    functionName: renameColumnElistNames
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_stricmp
    - renameTokenFind
    linkageType: ''
    returnType: void
    signature: "void renameColumnElistNames(\n  Parse *pParse, \n  RenameCtx *pCtx,
      \n  ExprList *pEList, \n  const char *zOld\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:103721,1
    - Dst: renameTokenFind
      Src: /src/nss/lib/sqlite/sqlite3.c:103722,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - pParse
    - pCtx
    - pIdList
    - zOld
    argTypes:
    - Parse*
    - RenameCtx*
    - IdList*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103726
      start: 103711
    functionDepth: 2
    functionLinenumber: 103711
    functionLinenumberEnd: 103726
    functionName: renameColumnIdlistNames
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_stricmp
    - renameTokenFind
    linkageType: ''
    returnType: void
    signature: "void renameColumnIdlistNames(\n  Parse *pParse, \n  RenameCtx *pCtx,
      \n  IdList *pIdList, \n  const char *zOld\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3FindDbName
      Src: /src/nss/lib/sqlite/sqlite3.c:103743,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:103748,1
    - Dst: sqlite3RunParser
      Src: /src/nss/lib/sqlite/sqlite3.c:103752,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:103753,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:103754,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:103767,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:103770,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 6
    argNames:
    - p
    - zDb
    - bTable
    - db
    - zSql
    - bTemp
    argTypes:
    - Parse*
    - char*
    - int
    - sqlite3*
    - char*
    - int
    assertStmts:
    - condition: ( p->zErrMsg==0 )
      pos:
        line_end: 103752
        line_start: 103752
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc!=SQLITE_OK || zErr==0 )
      pos:
        line_end: 103753
        line_start: 103753
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pToken->t.z>=zSql && &pToken->t.z[pToken->t.n]<=&zSql[nSql] )
      pos:
        line_end: 103769
        line_start: 103769
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 103777
      start: 103732
    functionDepth: 1
    functionLinenumber: 103732
    functionLinenumberEnd: 103777
    functionName: renameParseSql
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3FindDbName
    - sqlite3RunParser
    - memset
    - assert
    - sqlite3Strlen30
    linkageType: ''
    returnType: int
    signature: "int renameParseSql(\n  Parse *p,                       /* Memory to
      use for Parse object */\n  const char *zDb,                /* Name of schema
      SQL belongs to */\n  int bTable,                     /* 1 -> RENAME TABLE, 0
      -> RENAME COLUMN */\n  sqlite3 *db,                    /* Database handle */\n
      \ const char *zSql,               /* SQL to parse */\n  int bTemp                       /*
      True if SQL is from temp schema */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:103795,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:103796,1
    - Dst: sqlite3_context_db_handle
      Src: /src/nss/lib/sqlite/sqlite3.c:103797,1
    - Dst: sqlite3MPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:103808,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:103812,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:103823,1
    - Dst: sqlite3DbMallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:103824,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:103827,1
    - Dst: renameColumnTokenNext
      Src: /src/nss/lib/sqlite/sqlite3.c:103830,1
    - Dst: sqlite3IsIdChar
      Src: /src/nss/lib/sqlite/sqlite3.c:103834,1
    - Dst: memmove
      Src: /src/nss/lib/sqlite/sqlite3.c:103844,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:103850,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:103851,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:103854,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:103855,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:103860,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 39
    argCount: 5
    argNames:
    - pCtx
    - pRename
    - zSql
    - zNew
    - bQuote
    argTypes:
    - sqlite3_context*
    - RenameCtx*
    - char*
    - char*
    - int
    assertStmts:
    - condition: ( nQuot>=nNew )
      pos:
        line_end: 103822
        line_start: 103822
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 103862
      start: 103788
    functionDepth: 14
    functionLinenumber: 103788
    functionLinenumberEnd: 103862
    functionName: renameEditSql
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3MPrintf
    - memcpy
    - sqlite3_context_db_handle
    - renameColumnTokenNext
    - sqlite3DbFree
    - assert
    - sqlite3IsIdChar
    - sqlite3Strlen30
    - sqlite3_result_text
    - memmove
    - sqlite3_free
    - sqlite3DbMallocZero
    linkageType: ''
    returnType: int
    signature: "int renameEditSql(\n  sqlite3_context *pCtx,          /* Return result
      here */\n  RenameCtx *pRename,             /* Rename context */\n  const char
      *zSql,               /* SQL statement to edit */\n  const char *zNew,               /*
      New token text */\n  int bQuote                      /* True to always quote
      token */\n)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:103877,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:103879,1
    - Dst: sqlite3FindTable
      Src: /src/nss/lib/sqlite/sqlite3.c:103880,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:103881,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:103886,1
    - Dst: sqlite3ViewGetColumnNames
      Src: /src/nss/lib/sqlite/sqlite3.c:103887,1
    - Dst: sqlite3ResolveExprNames
      Src: /src/nss/lib/sqlite/sqlite3.c:103892,1
    - Dst: sqlite3SelectPrep
      Src: /src/nss/lib/sqlite/sqlite3.c:103897,1
    - Dst: sqlite3LocateTable
      Src: /src/nss/lib/sqlite/sqlite3.c:103901,1
    - Dst: sqlite3ViewGetColumnNames
      Src: /src/nss/lib/sqlite/sqlite3.c:103904,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:103906,1
    - Dst: sqlite3ResolveExprNames
      Src: /src/nss/lib/sqlite/sqlite3.c:103912,1
    - Dst: sqlite3ResolveExprListNames
      Src: /src/nss/lib/sqlite/sqlite3.c:103915,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:103917,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:103920,1
    - Dst: sqlite3ResolveExprListNames
      Src: /src/nss/lib/sqlite/sqlite3.c:103924,1
    - Dst: sqlite3ResolveExprListNames
      Src: /src/nss/lib/sqlite/sqlite3.c:103927,1
    - Dst: sqlite3ResolveExprNames
      Src: /src/nss/lib/sqlite/sqlite3.c:103930,1
    - Dst: sqlite3ResolveExprNames
      Src: /src/nss/lib/sqlite/sqlite3.c:103933,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 57
    argCount: 2
    argNames:
    - pParse
    - zDb
    argTypes:
    - Parse*
    - char*
    assertStmts:
    - condition: ( rc==SQLITE_OK )
      pos:
        line_end: 103919
        line_start: 103919
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !pStep->pUpsert || (!pStep->pWhere && !pStep->pExprList) )
      pos:
        line_end: 103916
        line_start: 103916
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pNew->pTabSchema )
      pos:
        line_end: 103878
        line_start: 103878
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 103942
      start: 103870
    functionDepth: 6
    functionLinenumber: 103870
    functionLinenumberEnd: 103942
    functionName: renameResolveTrigger
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ALWAYS
    - sqlite3FindTable
    - sqlite3ResolveExprListNames
    - sqlite3SelectPrep
    - memset
    - assert
    - sqlite3LocateTable
    - sqlite3ViewGetColumnNames
    - sqlite3ResolveExprNames
    - sqlite3SchemaToIndex
    linkageType: ''
    returnType: int
    signature: int renameResolveTrigger(Parse *pParse, const char *zDb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3WalkExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:103952,1
    - Dst: sqlite3WalkSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:103956,1
    - Dst: sqlite3WalkExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:103957,1
    - Dst: sqlite3WalkExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:103958,1
    - Dst: sqlite3WalkExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:103961,1
    - Dst: sqlite3WalkExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:103962,1
    - Dst: sqlite3WalkExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:103963,1
    - Dst: sqlite3WalkExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:103964,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - pWalker
    - pTrigger
    argTypes:
    - Walker*
    - Trigger*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103967
      start: 103948
    functionDepth: 7
    functionLinenumber: 103948
    functionLinenumberEnd: 103967
    functionName: renameWalkTrigger
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3WalkExprList
    - sqlite3WalkExpr
    - sqlite3WalkSelect
    linkageType: ''
    returnType: void
    signature: void renameWalkTrigger(Walker *pWalker, Trigger *pTrigger)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeFinalize
      Src: /src/nss/lib/sqlite/sqlite3.c:103977,1
    - Dst: sqlite3DeleteTable
      Src: /src/nss/lib/sqlite/sqlite3.c:103979,1
    - Dst: sqlite3FreeIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:103982,1
    - Dst: sqlite3DeleteTrigger
      Src: /src/nss/lib/sqlite/sqlite3.c:103984,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:103985,1
    - Dst: renameTokenFree
      Src: /src/nss/lib/sqlite/sqlite3.c:103986,1
    - Dst: sqlite3ParserReset
      Src: /src/nss/lib/sqlite/sqlite3.c:103987,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - pParse
    argTypes:
    - Parse*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103988
      start: 103973
    functionDepth: 25
    functionLinenumber: 103973
    functionLinenumberEnd: 103988
    functionName: renameParseCleanup
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DeleteTrigger
    - renameTokenFree
    - sqlite3DbFree
    - sqlite3FreeIndex
    - sqlite3VdbeFinalize
    - sqlite3DeleteTable
    - sqlite3ParserReset
    linkageType: ''
    returnType: void
    signature: void renameParseCleanup(Parse *pParse)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_context_db_handle
      Src: /src/nss/lib/sqlite/sqlite3.c:104018,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:104020,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:104021,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:104022,1
    - Dst: sqlite3_value_int
      Src: /src/nss/lib/sqlite/sqlite3.c:104023,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:104024,1
    - Dst: sqlite3_value_int
      Src: /src/nss/lib/sqlite/sqlite3.c:104025,1
    - Dst: sqlite3_value_int
      Src: /src/nss/lib/sqlite/sqlite3.c:104026,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:104038,1
    - Dst: sqlite3BtreeEnterAll
      Src: /src/nss/lib/sqlite/sqlite3.c:104043,1
    - Dst: sqlite3FindTable
      Src: /src/nss/lib/sqlite/sqlite3.c:104044,1
    - Dst: sqlite3BtreeLeaveAll
      Src: /src/nss/lib/sqlite/sqlite3.c:104046,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:104050,1
    - Dst: renameParseSql
      Src: /src/nss/lib/sqlite/sqlite3.c:104056,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:104059,1
    - Dst: sqlite3SelectPrep
      Src: /src/nss/lib/sqlite/sqlite3.c:104071,1
    - Dst: sqlite3WalkSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:104074,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:104079,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:104081,1
    - Dst: renameTokenFind
      Src: /src/nss/lib/sqlite/sqlite3.c:104084,1
    - Dst: renameTokenFind
      Src: /src/nss/lib/sqlite/sqlite3.c:104088,1
    - Dst: sqlite3WalkExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:104090,1
    - Dst: sqlite3WalkExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:104092,1
    - Dst: sqlite3WalkExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:104095,1
    - Dst: renameTokenFind
      Src: /src/nss/lib/sqlite/sqlite3.c:104102,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:104104,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:104105,1
    - Dst: renameTokenFind
      Src: /src/nss/lib/sqlite/sqlite3.c:104107,1
    - Dst: sqlite3WalkExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:104113,1
    - Dst: sqlite3WalkExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:104114,1
    - Dst: renameResolveTrigger
      Src: /src/nss/lib/sqlite/sqlite3.c:104118,1
    - Dst: sqlite3LocateTable
      Src: /src/nss/lib/sqlite/sqlite3.c:104123,1
    - Dst: renameColumnElistNames
      Src: /src/nss/lib/sqlite/sqlite3.c:104127,1
    - Dst: renameColumnIdlistNames
      Src: /src/nss/lib/sqlite/sqlite3.c:104129,1
    - Dst: renameColumnElistNames
      Src: /src/nss/lib/sqlite/sqlite3.c:104130,1
    - Dst: renameColumnIdlistNames
      Src: /src/nss/lib/sqlite/sqlite3.c:104138,1
    - Dst: renameWalkTrigger
      Src: /src/nss/lib/sqlite/sqlite3.c:104142,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:104145,1
    - Dst: renameEditSql
      Src: /src/nss/lib/sqlite/sqlite3.c:104146,1
    - Dst: renameColumnParseError
      Src: /src/nss/lib/sqlite/sqlite3.c:104151,1
    - Dst: sqlite3_result_error_code
      Src: /src/nss/lib/sqlite/sqlite3.c:104153,1
    - Dst: renameParseCleanup
      Src: /src/nss/lib/sqlite/sqlite3.c:104157,1
    - Dst: renameTokenFree
      Src: /src/nss/lib/sqlite/sqlite3.c:104158,1
    - Dst: sqlite3BtreeLeaveAll
      Src: /src/nss/lib/sqlite/sqlite3.c:104162,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 108
    argCount: 3
    argNames:
    - context
    - NotUsed
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( sParse.pNewTable->pSelect==0 )
      pos:
        line_end: 104080
        line_start: 104080
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc==SQLITE_OK )
      pos:
        line_end: 104144
        line_start: 104144
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 104163
      start: 104013
    functionDepth: 26
    functionLinenumber: 104013
    functionLinenumberEnd: 104163
    functionName: renameColumnFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3WalkSelect
    - UNUSED_PARAMETER
    - sqlite3_value_int
    - sqlite3BtreeLeaveAll
    - renameTokenFind
    - renameColumnElistNames
    - sqlite3_stricmp
    - sqlite3_result_error_code
    - sqlite3FindTable
    - renameParseSql
    - renameWalkTrigger
    - sqlite3SelectPrep
    - sqlite3WalkExprList
    - renameColumnIdlistNames
    - memset
    - assert
    - renameEditSql
    - renameResolveTrigger
    - renameTokenFree
    - renameParseCleanup
    - sqlite3BtreeEnterAll
    - sqlite3_context_db_handle
    - sqlite3LocateTable
    - sqlite3WalkExpr
    - sqlite3_value_text
    - renameColumnParseError
    linkageType: ''
    returnType: void
    signature: "void renameColumnFunc(\n  sqlite3_context *context,\n  int NotUsed,\n
      \ sqlite3_value **argv\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: renameTokenFind
      Src: /src/nss/lib/sqlite/sqlite3.c:104171,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - pWalker
    - pExpr
    argTypes:
    - Walker*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104174
      start: 104168
    functionDepth: 1
    functionLinenumber: 104168
    functionLinenumberEnd: 104174
    functionName: renameTableExprCb
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - renameTokenFind
    linkageType: ''
    returnType: int
    signature: int renameTableExprCb(Walker *pWalker, Expr *pExpr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:104184,1
    - Dst: renameTokenFind
      Src: /src/nss/lib/sqlite/sqlite3.c:104190,1
    - Dst: renameWalkWith
      Src: /src/nss/lib/sqlite/sqlite3.c:104193,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - pWalker
    - pSelect
    argTypes:
    - Walker*
    - Select*
    assertStmts:
    - condition: ( pWalker->pParse->db->mallocFailed )
      pos:
        line_end: 104183
        line_start: 104183
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 104196
      start: 104179
    functionDepth: 8
    functionLinenumber: 104179
    functionLinenumberEnd: 104196
    functionName: renameTableSelectCb
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - renameTokenFind
    - renameWalkWith
    linkageType: ''
    returnType: int
    signature: int renameTableSelectCb(Walker *pWalker, Select *pSelect)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_context_db_handle
      Src: /src/nss/lib/sqlite/sqlite3.c:104223,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:104224,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:104225,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:104226,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:104227,1
    - Dst: sqlite3_value_int
      Src: /src/nss/lib/sqlite/sqlite3.c:104228,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:104229,1
    - Dst: sqlite3BtreeEnterAll
      Src: /src/nss/lib/sqlite/sqlite3.c:104243,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:104245,1
    - Dst: sqlite3FindTable
      Src: /src/nss/lib/sqlite/sqlite3.c:104246,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:104247,1
    - Dst: renameParseSql
      Src: /src/nss/lib/sqlite/sqlite3.c:104253,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:104263,1
    - Dst: sqlite3SelectPrep
      Src: /src/nss/lib/sqlite/sqlite3.c:104266,1
    - Dst: sqlite3WalkSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:104268,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:104276,1
    - Dst: renameTokenFind
      Src: /src/nss/lib/sqlite/sqlite3.c:104277,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:104286,1
    - Dst: sqlite3WalkExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:104289,1
    - Dst: renameTokenFind
      Src: /src/nss/lib/sqlite/sqlite3.c:104291,1
    - Dst: renameTokenFind
      Src: /src/nss/lib/sqlite/sqlite3.c:104297,1
    - Dst: sqlite3WalkExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:104299,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:104307,1
    - Dst: renameTokenFind
      Src: /src/nss/lib/sqlite/sqlite3.c:104310,1
    - Dst: renameResolveTrigger
      Src: /src/nss/lib/sqlite/sqlite3.c:104314,1
    - Dst: renameWalkTrigger
      Src: /src/nss/lib/sqlite/sqlite3.c:104316,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:104318,1
    - Dst: renameTokenFind
      Src: /src/nss/lib/sqlite/sqlite3.c:104319,1
    - Dst: renameEditSql
      Src: /src/nss/lib/sqlite/sqlite3.c:104329,1
    - Dst: renameColumnParseError
      Src: /src/nss/lib/sqlite/sqlite3.c:104333,1
    - Dst: sqlite3_result_error_code
      Src: /src/nss/lib/sqlite/sqlite3.c:104335,1
    - Dst: renameParseCleanup
      Src: /src/nss/lib/sqlite/sqlite3.c:104339,1
    - Dst: renameTokenFree
      Src: /src/nss/lib/sqlite/sqlite3.c:104340,1
    - Dst: sqlite3BtreeLeaveAll
      Src: /src/nss/lib/sqlite/sqlite3.c:104341,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 79
    argCount: 3
    argNames:
    - context
    - NotUsed
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104348
      start: 104218
    functionDepth: 26
    functionLinenumber: 104218
    functionLinenumberEnd: 104348
    functionName: renameTableFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3WalkSelect
    - UNUSED_PARAMETER
    - sqlite3_value_int
    - sqlite3BtreeLeaveAll
    - renameTokenFind
    - sqlite3_stricmp
    - sqlite3_result_error_code
    - sqlite3FindTable
    - renameParseSql
    - renameWalkTrigger
    - sqlite3SelectPrep
    - sqlite3WalkExprList
    - memset
    - renameEditSql
    - renameResolveTrigger
    - renameTokenFree
    - renameParseCleanup
    - sqlite3BtreeEnterAll
    - sqlite3_context_db_handle
    - sqlite3WalkExpr
    - sqlite3_value_text
    - renameColumnParseError
    linkageType: ''
    returnType: void
    signature: "void renameTableFunc(\n  sqlite3_context *context,\n  int NotUsed,\n
      \ sqlite3_value **argv\n)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_context_db_handle
      Src: /src/nss/lib/sqlite/sqlite3.c:104374,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:104375,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:104376,1
    - Dst: sqlite3_value_int
      Src: /src/nss/lib/sqlite/sqlite3.c:104377,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:104385,1
    - Dst: renameParseSql
      Src: /src/nss/lib/sqlite/sqlite3.c:104389,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:104393,1
    - Dst: sqlite3SelectPrep
      Src: /src/nss/lib/sqlite/sqlite3.c:104395,1
    - Dst: renameResolveTrigger
      Src: /src/nss/lib/sqlite/sqlite3.c:104401,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:104404,1
    - Dst: sqlite3FindDbName
      Src: /src/nss/lib/sqlite/sqlite3.c:104405,1
    - Dst: sqlite3_result_int
      Src: /src/nss/lib/sqlite/sqlite3.c:104406,1
    - Dst: renameColumnParseError
      Src: /src/nss/lib/sqlite/sqlite3.c:104412,1
    - Dst: renameParseCleanup
      Src: /src/nss/lib/sqlite/sqlite3.c:104414,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 3
    argNames:
    - context
    - NotUsed
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104420
      start: 104369
    functionDepth: 26
    functionLinenumber: 104369
    functionLinenumberEnd: 104420
    functionName: renameTableTest
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - renameResolveTrigger
    - sqlite3FindDbName
    - sqlite3_context_db_handle
    - renameParseSql
    - UNUSED_PARAMETER
    - sqlite3_value_int
    - sqlite3SelectPrep
    - memset
    - sqlite3_result_int
    - renameParseCleanup
    - sqlite3_value_text
    - sqlite3SchemaToIndex
    - renameColumnParseError
    linkageType: ''
    returnType: void
    signature: "void renameTableTest(\n  sqlite3_context *context,\n  int NotUsed,\n
      \ sqlite3_value **argv\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INTERNAL_FUNCTION
      Src: /src/nss/lib/sqlite/sqlite3.c:104427,1
    - Dst: INTERNAL_FUNCTION
      Src: /src/nss/lib/sqlite/sqlite3.c:104428,1
    - Dst: INTERNAL_FUNCTION
      Src: /src/nss/lib/sqlite/sqlite3.c:104429,1
    - Dst: sqlite3InsertBuiltinFuncs
      Src: /src/nss/lib/sqlite/sqlite3.c:104431,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:104431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104432
      start: 104425
    functionDepth: 1
    functionLinenumber: 104425
    functionLinenumberEnd: 104432
    functionName: sqlite3AlterFunctions
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - INTERNAL_FUNCTION
    - ArraySize
    - sqlite3InsertBuiltinFuncs
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3AlterFunctions(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetVdbe
      Src: /src/nss/lib/sqlite/sqlite3.c:104634,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:104635,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:104636,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:104639,1
    - Dst: sqlite3BtreeHoldsAllMutexes
      Src: /src/nss/lib/sqlite/sqlite3.c:104639,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:104640,1
    - Dst: sqlite3VdbeDb
      Src: /src/nss/lib/sqlite/sqlite3.c:104640,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:104646,1
    - Dst: sqlite3FindTable
      Src: /src/nss/lib/sqlite/sqlite3.c:104649,1
    - Dst: sqlite3NestedParse
      Src: /src/nss/lib/sqlite/sqlite3.c:104655,1
    - Dst: sqlite3TableLock
      Src: /src/nss/lib/sqlite/sqlite3.c:104667,1
    - Dst: sqlite3NestedParse
      Src: /src/nss/lib/sqlite/sqlite3.c:104669,1
    - Dst: sqlite3NestedParse
      Src: /src/nss/lib/sqlite/sqlite3.c:104675,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:104679,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:104686,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:104686,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/nss/lib/sqlite/sqlite3.c:104687,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:104688,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:104689,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 5
    argNames:
    - pParse
    - iDb
    - iStatCur
    - zWhere
    - zWhereType
    argTypes:
    - Parse*
    - int
    - int
    - char*
    - char*
    assertStmts:
    - condition: ( sqlite3VdbeDb(v)==db )
      pos:
        line_end: 104639
        line_start: 104639
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3BtreeHoldsAllMutexes(db) )
      pos:
        line_end: 104638
        line_start: 104638
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( i<ArraySize(aTable) )
      pos:
        line_end: 104685
        line_start: 104685
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 104691
      start: 104608
    functionDepth: 12
    functionLinenumber: 104608
    functionLinenumberEnd: 104691
    functionName: openStatTable
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3NestedParse
    - sqlite3VdbeAddOp2
    - sqlite3TableLock
    - sqlite3FindTable
    - sqlite3VdbeAddOp4Int
    - ArraySize
    - sqlite3VdbeDb
    - assert
    - sqlite3VdbeChangeP5
    - sqlite3BtreeHoldsAllMutexes
    - sqlite3GetVdbe
    - VdbeComment
    linkageType: ''
    returnType: void
    signature: "void openStatTable(\n  Parse *pParse,          /* Parsing context
      */\n  int iDb,                /* The database we are looking in */\n  int iStatCur,
      \          /* Open the sqlite_stat1 table on this cursor */\n  const char *zWhere,
      \    /* Delete entries for this table or index */\n  const char *zWhereType
      \ /* Either \"tbl\" or \"idx\" */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:104743,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:104745,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - Stat4Sample*
    assertStmts:
    - condition: ( db!=0 )
      pos:
        line_end: 104742
        line_start: 104742
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 104748
      start: 104742
    functionDepth: 6
    functionLinenumber: 104742
    functionLinenumberEnd: 104748
    functionName: sampleClear
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3DbFree
    linkageType: ''
    returnType: void
    signature: void sampleClear(sqlite3 *db, Stat4Sample *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:104755,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:104756,1
    - Dst: sqlite3DbMallocRawNN
      Src: /src/nss/lib/sqlite/sqlite3.c:104757,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:104760,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - db
    - p
    - n
    - pData
    argTypes:
    - sqlite3*
    - Stat4Sample*
    - int
    - u8*
    assertStmts:
    - condition: ( db!=0 )
      pos:
        line_end: 104754
        line_start: 104754
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 104764
      start: 104754
    functionDepth: 7
    functionLinenumber: 104754
    functionLinenumberEnd: 104764
    functionName: sampleSetRowid
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3DbFree
    - memcpy
    - sqlite3DbMallocRawNN
    linkageType: ''
    returnType: void
    signature: void sampleSetRowid(sqlite3 *db, Stat4Sample *p, int n, const u8 *pData)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:104771,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:104772,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - db
    - p
    - iRowid
    argTypes:
    - sqlite3*
    - Stat4Sample*
    - i64
    assertStmts:
    - condition: ( db!=0 )
      pos:
        line_end: 104770
        line_start: 104770
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 104775
      start: 104770
    functionDepth: 6
    functionLinenumber: 104770
    functionLinenumberEnd: 104775
    functionName: sampleSetRowidInt64
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3DbFree
    linkageType: ''
    returnType: void
    signature: void sampleSetRowidInt64(sqlite3 *db, Stat4Sample *p, i64 iRowid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:104787,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:104788,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:104789,1
    - Dst: sampleSetRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:104791,1
    - Dst: sampleSetRowidInt64
      Src: /src/nss/lib/sqlite/sqlite3.c:104793,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - p
    - pTo
    - pFrom
    argTypes:
    - Stat4Accum*
    - Stat4Sample*
    - Stat4Sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104795
      start: 104783
    functionDepth: 8
    functionLinenumber: 104783
    functionLinenumberEnd: 104795
    functionName: sampleCopy
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sampleSetRowid
    - memcpy
    - sampleSetRowidInt64
    linkageType: ''
    returnType: void
    signature: void sampleCopy(Stat4Accum *p, Stat4Sample *pTo, Stat4Sample *pFrom)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sampleClear
      Src: /src/nss/lib/sqlite/sqlite3.c:104805,1
    - Dst: sampleClear
      Src: /src/nss/lib/sqlite/sqlite3.c:104806,1
    - Dst: sampleClear
      Src: /src/nss/lib/sqlite/sqlite3.c:104807,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:104809,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - pOld
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104810
      start: 104801
    functionDepth: 7
    functionLinenumber: 104801
    functionLinenumberEnd: 104810
    functionName: stat4Destructor
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sampleClear
    - sqlite3DbFree
    linkageType: ''
    returnType: void
    signature: void stat4Destructor(void *pOld)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:104948,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - pAccum
    - pNew
    - pOld
    argTypes:
    - Stat4Accum*
    - Stat4Sample*
    - Stat4Sample*
    assertStmts:
    - condition: ( pNew->iCol==pOld->iCol )
      pos:
        line_end: 104947
        line_start: 104947
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 104955
      start: 104941
    functionDepth: 0
    functionLinenumber: 104941
    functionLinenumberEnd: 104955
    functionName: sampleIsBetterPost
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: "int sampleIsBetterPost(\n  Stat4Accum *pAccum, \n  Stat4Sample *pNew,
      \n  Stat4Sample *pOld\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:104973,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:104974,1
    - Dst: sampleIsBetterPost
      Src: /src/nss/lib/sqlite/sqlite3.c:104980,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 3
    argNames:
    - pAccum
    - pNew
    - pOld
    argTypes:
    - Stat4Accum*
    - Stat4Sample*
    - Stat4Sample*
    assertStmts:
    - condition: ( pOld->isPSample==0 && pNew->isPSample==0 )
      pos:
        line_end: 104972
        line_start: 104972
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( IsStat4 || (pNew->iCol==0 && pOld->iCol==0) )
      pos:
        line_end: 104973
        line_start: 104973
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 104986
      start: 104965
    functionDepth: 1
    functionLinenumber: 104965
    functionLinenumberEnd: 104986
    functionName: sampleIsBetter
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sampleIsBetterPost
    linkageType: ''
    returnType: int
    signature: "int sampleIsBetter(\n  Stat4Accum *pAccum, \n  Stat4Sample *pNew,
      \n  Stat4Sample *pOld\n)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:104996,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:105008,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:105019,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:105020,1
    - Dst: sampleIsBetter
      Src: /src/nss/lib/sqlite/sqlite3.c:105020,1
    - Dst: sampleIsBetter
      Src: /src/nss/lib/sqlite/sqlite3.c:105021,1
    - Dst: sampleClear
      Src: /src/nss/lib/sqlite/sqlite3.c:105040,1
    - Dst: memmove
      Src: /src/nss/lib/sqlite/sqlite3.c:105041,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:105054,1
    - Dst: sampleCopy
      Src: /src/nss/lib/sqlite/sqlite3.c:105060,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:105064,1
    - Dst: sampleIsBetter
      Src: /src/nss/lib/sqlite/sqlite3.c:105073,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:105077,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 54
    argCount: 3
    argNames:
    - p
    - pNew
    - nEqZero
    argTypes:
    - Stat4Accum*
    - Stat4Sample*
    - int
    assertStmts:
    - condition: ( IsStat4 || nEqZero==0 )
      pos:
        line_end: 104995
        line_start: 104995
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOld->iCol>pNew->iCol )
      pos:
        line_end: 105018
        line_start: 105018
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sampleIsBetter(p, pNew, pOld) )
      pos:
        line_end: 105019
        line_start: 105019
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pNew->anEq[pNew->iCol]>0 )
      pos:
        line_end: 105007
        line_start: 105007
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( p->nSample==0 \n       || pNew->anLt[p->nCol-1] > p->a[p->nSample-1].anLt[p->nCol-1]
        )"
      pos:
        line_end: 105054
        line_start: 105053
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iMin>=0 )
      pos:
        line_end: 105076
        line_start: 105076
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 105080
      start: 104992
    functionDepth: 9
    functionLinenumber: 104992
    functionLinenumberEnd: 105080
    functionName: sampleInsert
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sampleClear
    - sampleCopy
    - assert
    - sampleIsBetter
    - memset
    - memmove
    linkageType: ''
    returnType: void
    signature: void sampleInsert(Stat4Accum *p, Stat4Sample *pNew, int nEqZero)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sampleIsBetter
      Src: /src/nss/lib/sqlite/sqlite3.c:105098,1
    - Dst: sampleInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:105099,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:105107,1
    - Dst: sampleInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:105130,1
    - Dst: sampleIsBetter
      Src: /src/nss/lib/sqlite/sqlite3.c:105136,1
    - Dst: sampleInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:105138,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:105144,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:105145,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 32
    argCount: 2
    argNames:
    - p
    - iChng
    argTypes:
    - Stat4Accum*
    - int
    assertStmts:
    - condition: ( p->a[i].anEq[j]>0 )
      pos:
        line_end: 105106
        line_start: 105106
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 105147
      start: 105089
    functionDepth: 10
    functionLinenumber: 105089
    functionLinenumberEnd: 105147
    functionName: samplePushPrevious
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sampleIsBetter
    - assert
    - UNUSED_PARAMETER
    - sampleInsert
    linkageType: ''
    returnType: void
    signature: void samplePushPrevious(Stat4Accum *p, int iChng)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:105173,1
    - Dst: sqlite3_value_int
      Src: /src/nss/lib/sqlite/sqlite3.c:105174,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:105176,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:105177,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:105178,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:105179,1
    - Dst: samplePushPrevious
      Src: /src/nss/lib/sqlite/sqlite3.c:105186,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:105203,1
    - Dst: sampleSetRowidInt64
      Src: /src/nss/lib/sqlite/sqlite3.c:105204,1
    - Dst: sqlite3_value_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:105204,1
    - Dst: sampleSetRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:105206,1
    - Dst: sqlite3_value_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:105206,1
    - Dst: sqlite3_value_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:105207,1
    - Dst: sampleInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:105220,1
    - Dst: sampleIsBetterPost
      Src: /src/nss/lib/sqlite/sqlite3.c:105227,1
    - Dst: sampleCopy
      Src: /src/nss/lib/sqlite/sqlite3.c:105228,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( p->nCol>0 )
      pos:
        line_end: 105177
        line_start: 105177
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iChng<p->nCol )
      pos:
        line_end: 105178
        line_start: 105178
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 105233
      start: 105165
    functionDepth: 16
    functionLinenumber: 105165
    functionLinenumberEnd: 105233
    functionName: statPush
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sampleIsBetterPost
    - sampleCopy
    - samplePushPrevious
    - sqlite3_value_int64
    - UNUSED_PARAMETER
    - sqlite3_value_int
    - assert
    - sampleSetRowid
    - sqlite3_value_type
    - sampleInsert
    - sqlite3_value_blob
    - sampleSetRowidInt64
    - sqlite3_value_bytes
    linkageType: ''
    returnType: void
    signature: "void statPush(\n  sqlite3_context *context,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:105276,1
    - Dst: sqlite3_value_int
      Src: /src/nss/lib/sqlite/sqlite3.c:105279,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:105280,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:105281,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:105287,1
    - Dst: sqlite3MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:105314,1
    - Dst: sqlite3_result_error_nomem
      Src: /src/nss/lib/sqlite/sqlite3.c:105316,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:105320,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:105321,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:105325,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:105326,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:105327,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:105329,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:105331,1
    - Dst: samplePushPrevious
      Src: /src/nss/lib/sqlite/sqlite3.c:105336,1
    - Dst: sqlite3_result_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:105342,1
    - Dst: sqlite3_result_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:105344,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:105351,1
    - Dst: sqlite3_result_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:105363,1
    - Dst: sqlite3MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:105365,1
    - Dst: sqlite3_result_error_nomem
      Src: /src/nss/lib/sqlite/sqlite3.c:105367,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:105372,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:105373,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:105375,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:105377,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:105383,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 62
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: "( eCall==STAT_GET_STAT1 || eCall==STAT_GET_NEQ \n       || eCall==STAT_GET_ROWID
        || eCall==STAT_GET_NLT\n       || eCall==STAT_GET_NDLT \n  )"
      pos:
        line_end: 105283
        line_start: 105280
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( argc==2 )
      pos:
        line_end: 105279
        line_start: 105279
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( argc==1 )
      pos:
        line_end: 105286
        line_start: 105286
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( z[0]=='\0' && z>zRet )
      pos:
        line_end: 105328
        line_start: 105328
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->iGet<p->nSample )
      pos:
        line_end: 105350
        line_start: 105350
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( z[0]=='\0' && z>zRet )
      pos:
        line_end: 105374
        line_start: 105374
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->current.anEq[i] )
      pos:
        line_end: 105326
        line_start: 105326
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 105385
      start: 105271
    functionDepth: 14
    functionLinenumber: 105271
    functionLinenumberEnd: 105385
    functionName: statGet
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_blob
    - samplePushPrevious
    - UNUSED_PARAMETER
    - sqlite3_value_int
    - sqlite3_result_int64
    - assert
    - sqlite3Strlen30
    - sqlite3_result_error_nomem
    - sqlite3_value_blob
    - sqlite3MallocZero
    - sqlite3_result_text
    - sqlite3_snprintf
    linkageType: ''
    returnType: void
    signature: "void statGet(\n  sqlite3_context *context,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:105399,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:105401,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:105403,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:105405,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:105407,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:105409,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - v
    - regStat4
    - iParam
    - regOut
    argTypes:
    - Vdbe*
    - int
    - int
    - int
    assertStmts:
    - condition: ( regOut!=regStat4 && regOut!=regStat4+1 )
      pos:
        line_end: 105398
        line_start: 105398
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iParam==STAT_GET_STAT1 )
      pos:
        line_end: 105402
        line_start: 105402
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 105410
      start: 105398
    functionDepth: 12
    functionLinenumber: 105398
    functionLinenumberEnd: 105410
    functionName: callStatGet
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeAddOp2
    - UNUSED_PARAMETER
    - assert
    - sqlite3VdbeAddOp4
    - sqlite3VdbeChangeP5
    linkageType: ''
    returnType: void
    signature: void callStatGet(Vdbe *v, int regStat4, int iParam, int regOut)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: MAX
      Src: /src/nss/lib/sqlite/sqlite3.c:105448,1
    - Dst: sqlite3GetVdbe
      Src: /src/nss/lib/sqlite/sqlite3.c:105449,1
    - Dst: NEVER
      Src: /src/nss/lib/sqlite/sqlite3.c:105450,1
    - Dst: sqlite3_strlike
      Src: /src/nss/lib/sqlite/sqlite3.c:105457,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:105461,1
    - Dst: sqlite3BtreeHoldsAllMutexes
      Src: /src/nss/lib/sqlite/sqlite3.c:105461,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:105462,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:105463,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:105464,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/nss/lib/sqlite/sqlite3.c:105464,1
    - Dst: sqlite3AuthCheck
      Src: /src/nss/lib/sqlite/sqlite3.c:105466,1
    - Dst: sqlite3DbMallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:105474,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:105477,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:105480,1
    - Dst: sqlite3TableLock
      Src: /src/nss/lib/sqlite/sqlite3.c:105488,1
    - Dst: MAX
      Src: /src/nss/lib/sqlite/sqlite3.c:105491,1
    - Dst: sqlite3OpenTable
      Src: /src/nss/lib/sqlite/sqlite3.c:105492,1
    - Dst: sqlite3VdbeLoadString
      Src: /src/nss/lib/sqlite/sqlite3.c:105493,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:105504,1
    - Dst: IsPrimaryKeyIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:105504,1
    - Dst: sqlite3VdbeLoadString
      Src: /src/nss/lib/sqlite/sqlite3.c:105515,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:105516,1
    - Dst: MAX
      Src: /src/nss/lib/sqlite/sqlite3.c:105554,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:105557,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:105557,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:105558,1
    - Dst: sqlite3VdbeSetP4KeyInfo
      Src: /src/nss/lib/sqlite/sqlite3.c:105559,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:105560,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:105573,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:105575,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:105576,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:105577,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:105579,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:105589,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:105590,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:105591,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:105592,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:105595,1
    - Dst: sqlite3DbMallocRawNN
      Src: /src/nss/lib/sqlite/sqlite3.c:105597,1
    - Dst: sqlite3VdbeAddOp0
      Src: /src/nss/lib/sqlite/sqlite3.c:105610,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:105611,1
    - Dst: IsUniqueIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:105612,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:105616,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:105617,1
    - Dst: sqlite3LocateCollSeq
      Src: /src/nss/lib/sqlite/sqlite3.c:105620,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:105621,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:105622,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:105624,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:105625,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:105626,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:105628,1
    - Dst: sqlite3VdbeGoto
      Src: /src/nss/lib/sqlite/sqlite3.c:105629,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:105639,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:105641,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:105642,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:105644,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:105645,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:105656,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:105657,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:105658,1
    - Dst: sqlite3PrimaryKeyIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:105660,1
    - Dst: sqlite3GetTempRange
      Src: /src/nss/lib/sqlite/sqlite3.c:105662,1
    - Dst: sqlite3ColumnOfIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:105664,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:105665,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:105666,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:105667,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:105669,1
    - Dst: sqlite3ReleaseTempRange
      Src: /src/nss/lib/sqlite/sqlite3.c:105670,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:105673,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:105674,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:105676,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:105677,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:105677,1
    - Dst: callStatGet
      Src: /src/nss/lib/sqlite/sqlite3.c:105680,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:105681,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:105682,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:105683,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:105684,1
    - Dst: sqlite3VdbeChangeP4
      Src: /src/nss/lib/sqlite/sqlite3.c:105686,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:105688,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:105701,1
    - Dst: MAX
      Src: /src/nss/lib/sqlite/sqlite3.c:105703,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:105705,1
    - Dst: callStatGet
      Src: /src/nss/lib/sqlite/sqlite3.c:105706,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:105707,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:105708,1
    - Dst: callStatGet
      Src: /src/nss/lib/sqlite/sqlite3.c:105709,1
    - Dst: callStatGet
      Src: /src/nss/lib/sqlite/sqlite3.c:105710,1
    - Dst: callStatGet
      Src: /src/nss/lib/sqlite/sqlite3.c:105711,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/nss/lib/sqlite/sqlite3.c:105712,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:105713,1
    - Dst: sqlite3ExprCodeLoadIndexColumn
      Src: /src/nss/lib/sqlite/sqlite3.c:105715,1
    - Dst: sqlite3ExprCodeLoadIndexColumn
      Src: /src/nss/lib/sqlite/sqlite3.c:105718,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:105720,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:105722,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:105723,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:105724,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:105725,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:105726,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:105731,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:105739,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:105740,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:105741,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:105741,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:105742,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:105743,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:105744,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:105745,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:105746,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:105747,1
    - Dst: sqlite3VdbeChangeP4
      Src: /src/nss/lib/sqlite/sqlite3.c:105749,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:105751,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 155
    argCount: 6
    argNames:
    - pParse
    - pTab
    - pOnlyIdx
    - iStatCur
    - iMem
    - iTab
    argTypes:
    - Parse*
    - Table*
    - Index*
    - int
    - int
    - int
    assertStmts:
    - condition: ( sqlite3BtreeHoldsAllMutexes(db) )
      pos:
        line_end: 105460
        line_start: 105460
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( k>=0 && k<pIdx->nColumn )
      pos:
        line_end: 105664
        line_start: 105664
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iDb==sqlite3SchemaToIndex(db, pIdx->pSchema) )
      pos:
        line_end: 105556
        line_start: 105556
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( regChng==(regStat4+1) )
      pos:
        line_end: 105672
        line_start: 105672
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( regRowid==(regStat4+2) )
      pos:
        line_end: 105655
        line_start: 105655
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( "BBB"[0]==SQLITE_AFF_TEXT )
      pos:
        line_end: 105742
        line_start: 105742
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( "BBB"[0]==SQLITE_AFF_TEXT )
      pos:
        line_end: 105680
        line_start: 105680
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3SchemaMutexHeld(db, iDb, 0) )
      pos:
        line_end: 105463
        line_start: 105463
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iDb>=0 )
      pos:
        line_end: 105462
        line_start: 105462
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 105753
      start: 105416
    functionDepth: 13
    functionLinenumber: 105416
    functionLinenumberEnd: 105753
    functionName: analyzeOneTable
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - IsUniqueIndex
    - sqlite3VdbeSetP4KeyInfo
    - sqlite3VdbeAddOp2
    - sqlite3DbMallocRawNN
    - sqlite3LocateCollSeq
    - sqlite3VdbeAddOp3
    - sqlite3VdbeResolveLabel
    - sqlite3GetVdbe
    - VdbeComment
    - HasRowid
    - memcpy
    - sqlite3VdbeGoto
    - sqlite3VdbeCurrentAddr
    - sqlite3VdbeAddOp4Int
    - sqlite3ColumnOfIndex
    - assert
    - sqlite3VdbeJumpHere
    - sqlite3BtreeHoldsAllMutexes
    - sqlite3GetTempRange
    - callStatGet
    - sqlite3VdbeAddOp0
    - sqlite3SchemaToIndex
    - sqlite3VdbeLoadString
    - sqlite3DbMallocZero
    - sqlite3AuthCheck
    - IsPrimaryKeyIndex
    - sqlite3_strlike
    - sqlite3DbFree
    - sqlite3ReleaseTempRange
    - sqlite3PrimaryKeyIndex
    - sqlite3SchemaMutexHeld
    - sqlite3VdbeAddOp4
    - MAX
    - sqlite3VdbeAddOp1
    - VdbeCoverage
    - sqlite3VdbeChangeP4
    - sqlite3OpenTable
    - NEVER
    - sqlite3ExprCodeLoadIndexColumn
    - sqlite3TableLock
    - sqlite3VdbeChangeP5
    - sqlite3VdbeMakeLabel
    linkageType: ''
    returnType: void
    signature: "void analyzeOneTable(\n  Parse *pParse,   /* Parser context */\n  Table
      *pTab,     /* Table whose indices are to be analyzed */\n  Index *pOnlyIdx,
      /* If not NULL, only analyze this one index */\n  int iStatCur,    /* Index
      of VdbeCursor that writes the sqlite_stat1 table */\n  int iMem,        /* Available
      memory locations begin here */\n  int iTab         /* Next available cursor
      */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetVdbe
      Src: /src/nss/lib/sqlite/sqlite3.c:105761,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:105763,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pParse
    - iDb
    argTypes:
    - Parse*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105765
      start: 105760
    functionDepth: 12
    functionLinenumber: 105760
    functionLinenumberEnd: 105765
    functionName: loadAnalysis
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeAddOp1
    - sqlite3GetVdbe
    linkageType: ''
    returnType: void
    signature: void loadAnalysis(Parse *pParse, int iDb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BeginWriteOperation
      Src: /src/nss/lib/sqlite/sqlite3.c:105778,1
    - Dst: openStatTable
      Src: /src/nss/lib/sqlite/sqlite3.c:105781,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:105784,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/nss/lib/sqlite/sqlite3.c:105784,1
    - Dst: sqliteHashFirst
      Src: /src/nss/lib/sqlite/sqlite3.c:105785,1
    - Dst: sqliteHashNext
      Src: /src/nss/lib/sqlite/sqlite3.c:105785,1
    - Dst: sqliteHashData
      Src: /src/nss/lib/sqlite/sqlite3.c:105786,1
    - Dst: analyzeOneTable
      Src: /src/nss/lib/sqlite/sqlite3.c:105787,1
    - Dst: loadAnalysis
      Src: /src/nss/lib/sqlite/sqlite3.c:105789,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - pParse
    - iDb
    argTypes:
    - Parse*
    - int
    assertStmts:
    - condition: ( sqlite3SchemaMutexHeld(db, iDb, 0) )
      pos:
        line_end: 105783
        line_start: 105783
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 105790
      start: 105770
    functionDepth: 14
    functionLinenumber: 105770
    functionLinenumberEnd: 105790
    functionName: analyzeDatabase
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - openStatTable
    - sqliteHashNext
    - sqlite3SchemaMutexHeld
    - assert
    - analyzeOneTable
    - sqliteHashData
    - loadAnalysis
    - sqliteHashFirst
    - sqlite3BeginWriteOperation
    linkageType: ''
    returnType: void
    signature: void analyzeDatabase(Parse *pParse, int iDb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:105801,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:105802,1
    - Dst: sqlite3BtreeHoldsAllMutexes
      Src: /src/nss/lib/sqlite/sqlite3.c:105802,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:105803,1
    - Dst: sqlite3BeginWriteOperation
      Src: /src/nss/lib/sqlite/sqlite3.c:105804,1
    - Dst: openStatTable
      Src: /src/nss/lib/sqlite/sqlite3.c:105808,1
    - Dst: openStatTable
      Src: /src/nss/lib/sqlite/sqlite3.c:105810,1
    - Dst: analyzeOneTable
      Src: /src/nss/lib/sqlite/sqlite3.c:105812,1
    - Dst: loadAnalysis
      Src: /src/nss/lib/sqlite/sqlite3.c:105813,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - pParse
    - pTab
    - pOnlyIdx
    argTypes:
    - Parse*
    - Table*
    - Index*
    assertStmts:
    - condition: ( pTab!=0 )
      pos:
        line_end: 105800
        line_start: 105800
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3BtreeHoldsAllMutexes(pParse->db) )
      pos:
        line_end: 105801
        line_start: 105801
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 105814
      start: 105797
    functionDepth: 14
    functionLinenumber: 105797
    functionLinenumberEnd: 105814
    functionName: analyzeTable
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - openStatTable
    - assert
    - analyzeOneTable
    - sqlite3BtreeHoldsAllMutexes
    - sqlite3SchemaToIndex
    - loadAnalysis
    - sqlite3BeginWriteOperation
    linkageType: ''
    returnType: void
    signature: void analyzeTable(Parse *pParse, Table *pTab, Index *pOnlyIdx)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:105840,1
    - Dst: sqlite3BtreeHoldsAllMutexes
      Src: /src/nss/lib/sqlite/sqlite3.c:105840,1
    - Dst: sqlite3ReadSchema
      Src: /src/nss/lib/sqlite/sqlite3.c:105841,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:105845,1
    - Dst: analyzeDatabase
      Src: /src/nss/lib/sqlite/sqlite3.c:105850,1
    - Dst: sqlite3FindDb
      Src: /src/nss/lib/sqlite/sqlite3.c:105852,1
    - Dst: analyzeDatabase
      Src: /src/nss/lib/sqlite/sqlite3.c:105854,1
    - Dst: sqlite3TwoPartName
      Src: /src/nss/lib/sqlite/sqlite3.c:105857,1
    - Dst: sqlite3NameFromToken
      Src: /src/nss/lib/sqlite/sqlite3.c:105860,1
    - Dst: sqlite3FindIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:105862,1
    - Dst: analyzeTable
      Src: /src/nss/lib/sqlite/sqlite3.c:105863,1
    - Dst: sqlite3LocateTable
      Src: /src/nss/lib/sqlite/sqlite3.c:105864,1
    - Dst: analyzeTable
      Src: /src/nss/lib/sqlite/sqlite3.c:105865,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:105867,1
    - Dst: sqlite3GetVdbe
      Src: /src/nss/lib/sqlite/sqlite3.c:105871,1
    - Dst: sqlite3VdbeAddOp0
      Src: /src/nss/lib/sqlite/sqlite3.c:105872,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 3
    argNames:
    - pParse
    - pName1
    - pName2
    argTypes:
    - Parse*
    - Token*
    - Token*
    assertStmts:
    - condition: ( sqlite3BtreeHoldsAllMutexes(pParse->db) )
      pos:
        line_end: 105839
        line_start: 105839
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pName2!=0 || pName1==0 )
      pos:
        line_end: 105844
        line_start: 105844
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 105874
      start: 105828
    functionDepth: 15
    functionLinenumber: 105828
    functionLinenumberEnd: 105874
    functionName: sqlite3Analyze
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - analyzeTable
    - sqlite3ReadSchema
    - sqlite3DbFree
    - sqlite3TwoPartName
    - assert
    - sqlite3NameFromToken
    - sqlite3FindIndex
    - sqlite3LocateTable
    - sqlite3BtreeHoldsAllMutexes
    - sqlite3VdbeAddOp0
    - sqlite3GetVdbe
    - sqlite3FindDb
    - analyzeDatabase
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Analyze(Parse *pParse, Token *pName1, Token *pName2)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:105968,1
    - Dst: UNUSED_PARAMETER2
      Src: /src/nss/lib/sqlite/sqlite3.c:105969,1
    - Dst: sqlite3FindTable
      Src: /src/nss/lib/sqlite/sqlite3.c:105974,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:105980,1
    - Dst: sqlite3PrimaryKeyIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:105981,1
    - Dst: sqlite3FindIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:105983,1
    - Dst: sqlite3MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:105995,1
    - Dst: sqlite3OomFault
      Src: /src/nss/lib/sqlite/sqlite3.c:105996,1
    - Dst: decodeIntArray
      Src: /src/nss/lib/sqlite/sqlite3.c:106001,1
    - Dst: decodeIntArray
      Src: /src/nss/lib/sqlite/sqlite3.c:106013,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 4
    argNames:
    - pData
    - argc
    - argv
    - NotUsed
    argTypes:
    - void*
    - int
    - char**
    - char**
    assertStmts:
    - condition: ( argc==3 )
      pos:
        line_end: 105967
        line_start: 105967
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 106019
      start: 105962
    functionDepth: 6
    functionLinenumber: 105962
    functionLinenumberEnd: 106019
    functionName: analysisLoader
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER2
    - sqlite3FindTable
    - sqlite3PrimaryKeyIndex
    - assert
    - sqlite3FindIndex
    - sqlite3OomFault
    - decodeIntArray
    - sqlite3MallocZero
    - sqlite3_stricmp
    linkageType: ''
    returnType: int
    signature: int analysisLoader(void *pData, int argc, char **argv, char **NotUsed)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:106031,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:106033,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:106040,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:106041,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - db
    - pIdx
    argTypes:
    - sqlite3*
    - Index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106043
      start: 106025
    functionDepth: 6
    functionLinenumber: 106025
    functionLinenumberEnd: 106043
    functionName: sqlite3DeleteIndexSamples
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbFree
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3DeleteIndexSamples(sqlite3 *db, Index *pIdx)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 1
    argNames:
    - pIdx
    argTypes:
    - Index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106103
      start: 106050
    functionDepth: 0
    functionLinenumber: 106050
    functionLinenumberEnd: 106103
    functionName: initAvgEq
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void initAvgEq(Index *pIdx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3FindIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:106114,1
    - Dst: sqlite3FindTable
      Src: /src/nss/lib/sqlite/sqlite3.c:106116,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:106117,1
    - Dst: sqlite3PrimaryKeyIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:106117,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - db
    - zName
    - zDb
    argTypes:
    - sqlite3*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106120
      start: 106109
    functionDepth: 1
    functionLinenumber: 106109
    functionLinenumberEnd: 106120
    functionName: findIndexOrPrimaryKey
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - HasRowid
    - sqlite3FindIndex
    - sqlite3PrimaryKeyIndex
    - sqlite3FindTable
    linkageType: ''
    returnType: Index
    signature: "Index *findIndexOrPrimaryKey(\n  sqlite3 *db,\n  const char *zName,\n
      \ const char *zDb\n)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:106148,1
    - Dst: sqlite3MPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:106149,1
    - Dst: sqlite3_prepare
      Src: /src/nss/lib/sqlite/sqlite3.c:106153,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:106154,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:106157,1
    - Dst: sqlite3_column_text
      Src: /src/nss/lib/sqlite/sqlite3.c:106167,1
    - Dst: sqlite3_column_int
      Src: /src/nss/lib/sqlite/sqlite3.c:106169,1
    - Dst: findIndexOrPrimaryKey
      Src: /src/nss/lib/sqlite/sqlite3.c:106170,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:106171,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:106176,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:106176,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:106177,1
    - Dst: IsPrimaryKeyIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:106177,1
    - Dst: sqlite3DbMallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:106188,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:106190,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:106200,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:106202,1
    - Dst: sqlite3MPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:106205,1
    - Dst: sqlite3_prepare
      Src: /src/nss/lib/sqlite/sqlite3.c:106209,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:106210,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:106213,1
    - Dst: sqlite3_column_text
      Src: /src/nss/lib/sqlite/sqlite3.c:106218,1
    - Dst: findIndexOrPrimaryKey
      Src: /src/nss/lib/sqlite/sqlite3.c:106220,1
    - Dst: initAvgEq
      Src: /src/nss/lib/sqlite/sqlite3.c:106227,1
    - Dst: decodeIntArray
      Src: /src/nss/lib/sqlite/sqlite3.c:106231,1
    - Dst: sqlite3_column_text
      Src: /src/nss/lib/sqlite/sqlite3.c:106231,1
    - Dst: decodeIntArray
      Src: /src/nss/lib/sqlite/sqlite3.c:106232,1
    - Dst: sqlite3_column_text
      Src: /src/nss/lib/sqlite/sqlite3.c:106232,1
    - Dst: decodeIntArray
      Src: /src/nss/lib/sqlite/sqlite3.c:106233,1
    - Dst: sqlite3_column_text
      Src: /src/nss/lib/sqlite/sqlite3.c:106233,1
    - Dst: sqlite3_column_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:106241,1
    - Dst: sqlite3DbMallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:106242,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:106244,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:106248,1
    - Dst: sqlite3_column_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:106248,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:106252,1
    - Dst: initAvgEq
      Src: /src/nss/lib/sqlite/sqlite3.c:106253,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 93
    argCount: 5
    argNames:
    - db
    - bStat3
    - zSql1
    - zSql2
    - zDb
    argTypes:
    - sqlite3*
    - int
    - char*
    - char*
    - char*
    assertStmts:
    - condition: ( !HasRowid(pIdx->pTable) || pIdx->nColumn==pIdx->nKeyCol+1 )
      pos:
        line_end: 106175
        line_start: 106175
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( db->lookaside.bDisable )
      pos:
        line_end: 106147
        line_start: 106147
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIdx==0 || bStat3 || pIdx->nSample==0 )
      pos:
        line_end: 106170
        line_start: 106170
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( ((u8*)pSpace)-nByte==(u8*)(pIdx->aSample) )
      pos:
        line_end: 106199
        line_start: 106199
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 106255
      start: 106135
    functionDepth: 27
    functionLinenumber: 106135
    functionLinenumberEnd: 106255
    functionName: loadStatTbl
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - HasRowid
    - findIndexOrPrimaryKey
    - sqlite3MPrintf
    - sqlite3_step
    - IsPrimaryKeyIndex
    - memcpy
    - initAvgEq
    - sqlite3DbMallocZero
    - sqlite3_prepare
    - sqlite3DbFree
    - sqlite3_column_blob
    - sqlite3_column_bytes
    - assert
    - decodeIntArray
    - sqlite3_column_text
    - sqlite3_finalize
    - sqlite3_column_int
    linkageType: ''
    returnType: int
    signature: "int loadStatTbl(\n  sqlite3 *db,                  /* Database handle
      */\n  int bStat3,                   /* Assume single column records only */\n
      \ const char *zSql1,            /* SQL statement 1 (see above) */\n  const char
      *zSql2,            /* SQL statement 2 (see above) */\n  const char *zDb               /*
      Database name (e.g. \"main\") */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:106264,1
    - Dst: sqlite3FindTable
      Src: /src/nss/lib/sqlite/sqlite3.c:106265,1
    - Dst: loadStatTbl
      Src: /src/nss/lib/sqlite/sqlite3.c:106266,1
    - Dst: sqlite3FindTable
      Src: /src/nss/lib/sqlite/sqlite3.c:106273,1
    - Dst: loadStatTbl
      Src: /src/nss/lib/sqlite/sqlite3.c:106274,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - db
    - zDb
    argTypes:
    - sqlite3*
    - char*
    assertStmts:
    - condition: ( db->lookaside.bDisable )
      pos:
        line_end: 106263
        line_start: 106263
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 106282
      start: 106261
    functionDepth: 28
    functionLinenumber: 106261
    functionLinenumberEnd: 106282
    functionName: loadStat4
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3FindTable
    - loadStatTbl
    linkageType: ''
    returnType: int
    signature: int loadStat4(sqlite3 *db, const char *zDb)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:106312,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:106313,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:106316,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/nss/lib/sqlite/sqlite3.c:106316,1
    - Dst: sqliteHashFirst
      Src: /src/nss/lib/sqlite/sqlite3.c:106317,1
    - Dst: sqliteHashNext
      Src: /src/nss/lib/sqlite/sqlite3.c:106317,1
    - Dst: sqliteHashData
      Src: /src/nss/lib/sqlite/sqlite3.c:106318,1
    - Dst: sqliteHashFirst
      Src: /src/nss/lib/sqlite/sqlite3.c:106321,1
    - Dst: sqliteHashNext
      Src: /src/nss/lib/sqlite/sqlite3.c:106321,1
    - Dst: sqliteHashData
      Src: /src/nss/lib/sqlite/sqlite3.c:106322,1
    - Dst: sqlite3DeleteIndexSamples
      Src: /src/nss/lib/sqlite/sqlite3.c:106325,1
    - Dst: sqlite3FindTable
      Src: /src/nss/lib/sqlite/sqlite3.c:106333,1
    - Dst: sqlite3MPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:106334,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/sqlite/sqlite3.c:106339,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:106340,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:106345,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/nss/lib/sqlite/sqlite3.c:106345,1
    - Dst: sqliteHashFirst
      Src: /src/nss/lib/sqlite/sqlite3.c:106346,1
    - Dst: sqliteHashNext
      Src: /src/nss/lib/sqlite/sqlite3.c:106346,1
    - Dst: sqliteHashData
      Src: /src/nss/lib/sqlite/sqlite3.c:106347,1
    - Dst: sqlite3DefaultRowEst
      Src: /src/nss/lib/sqlite/sqlite3.c:106348,1
    - Dst: loadStat4
      Src: /src/nss/lib/sqlite/sqlite3.c:106355,1
    - Dst: sqliteHashFirst
      Src: /src/nss/lib/sqlite/sqlite3.c:106358,1
    - Dst: sqliteHashNext
      Src: /src/nss/lib/sqlite/sqlite3.c:106358,1
    - Dst: sqliteHashData
      Src: /src/nss/lib/sqlite/sqlite3.c:106359,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:106360,1
    - Dst: sqlite3OomFault
      Src: /src/nss/lib/sqlite/sqlite3.c:106366,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 2
    argNames:
    - db
    - iDb
    argTypes:
    - sqlite3*
    - int
    assertStmts:
    - condition: ( db->aDb[iDb].pBt!=0 )
      pos:
        line_end: 106312
        line_start: 106312
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iDb>=0 && iDb<db->nDb )
      pos:
        line_end: 106311
        line_start: 106311
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3SchemaMutexHeld(db, iDb, 0) )
      pos:
        line_end: 106344
        line_start: 106344
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3SchemaMutexHeld(db, iDb, 0) )
      pos:
        line_end: 106315
        line_start: 106315
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 106369
      start: 106305
    functionDepth: 29
    functionLinenumber: 106305
    functionLinenumberEnd: 106369
    functionName: sqlite3AnalysisLoad
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_free
    - sqlite3MPrintf
    - sqlite3DefaultRowEst
    - sqliteHashNext
    - sqlite3DeleteIndexSamples
    - sqlite3FindTable
    - sqlite3DbFree
    - loadStat4
    - sqlite3SchemaMutexHeld
    - assert
    - sqlite3OomFault
    - sqliteHashData
    - sqlite3_exec
    - sqliteHashFirst
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3AnalysisLoad(sqlite3 *db, int iDb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ResolveExprNames
      Src: /src/nss/lib/sqlite/sqlite3.c:106415,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - pName
    - pExpr
    argTypes:
    - NameContext*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106421
      start: 106410
    functionDepth: 5
    functionLinenumber: 106410
    functionLinenumberEnd: 106421
    functionName: resolveAttachExpr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ResolveExprNames
    linkageType: ''
    returnType: int
    signature: int resolveAttachExpr(NameContext *pName, Expr *pExpr)
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_context_db_handle
      Src: /src/nss/lib/sqlite/sqlite3.c:106445,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:106456,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:106457,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:106458,1
    - Dst: REOPEN_AS_MEMDB
      Src: /src/nss/lib/sqlite/sqlite3.c:106468,1
    - Dst: sqlite3_vfs_find
      Src: /src/nss/lib/sqlite/sqlite3.c:106472,1
    - Dst: sqlite3BtreeClose
      Src: /src/nss/lib/sqlite/sqlite3.c:106475,1
    - Dst: sqlite3BtreeOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:106478,1
    - Dst: sqlite3MPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:106489,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:106496,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:106497,1
    - Dst: sqlite3MPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:106498,1
    - Dst: sqlite3DbMallocRawNN
      Src: /src/nss/lib/sqlite/sqlite3.c:106507,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:106509,1
    - Dst: sqlite3DbRealloc
      Src: /src/nss/lib/sqlite/sqlite3.c:106511,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:106516,1
    - Dst: sqlite3ParseUri
      Src: /src/nss/lib/sqlite/sqlite3.c:106523,1
    - Dst: sqlite3OomFault
      Src: /src/nss/lib/sqlite/sqlite3.c:106525,1
    - Dst: sqlite3_result_error
      Src: /src/nss/lib/sqlite/sqlite3.c:106526,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:106527,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:106530,1
    - Dst: sqlite3BtreeOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:106532,1
    - Dst: sqlite3DbStrDup
      Src: /src/nss/lib/sqlite/sqlite3.c:106534,1
    - Dst: sqlite3MPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:106539,1
    - Dst: sqlite3SchemaGet
      Src: /src/nss/lib/sqlite/sqlite3.c:106542,1
    - Dst: ENC
      Src: /src/nss/lib/sqlite/sqlite3.c:106545,1
    - Dst: sqlite3MPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:106546,1
    - Dst: sqlite3BtreeEnter
      Src: /src/nss/lib/sqlite/sqlite3.c:106550,1
    - Dst: sqlite3BtreePager
      Src: /src/nss/lib/sqlite/sqlite3.c:106551,1
    - Dst: sqlite3PagerLockingMode
      Src: /src/nss/lib/sqlite/sqlite3.c:106552,1
    - Dst: sqlite3BtreeSecureDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:106553,1
    - Dst: sqlite3BtreeSecureDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:106554,1
    - Dst: sqlite3BtreeSetPagerFlags
      Src: /src/nss/lib/sqlite/sqlite3.c:106556,1
    - Dst: sqlite3BtreeLeave
      Src: /src/nss/lib/sqlite/sqlite3.c:106559,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:106573,1
    - Dst: sqlite3DbStrDup
      Src: /src/nss/lib/sqlite/sqlite3.c:106577,1
    - Dst: sqlite3_value_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:106583,1
    - Dst: sqlite3_value_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:106584,1
    - Dst: sqlite3CodecAttach
      Src: /src/nss/lib/sqlite/sqlite3.c:106585,1
    - Dst: sqlite3CodecQueryParameters
      Src: /src/nss/lib/sqlite/sqlite3.c:106591,1
    - Dst: sqlite3CodecGetKey
      Src: /src/nss/lib/sqlite/sqlite3.c:106592,1
    - Dst: sqlite3BtreeGetOptimalReserve
      Src: /src/nss/lib/sqlite/sqlite3.c:106593,1
    - Dst: sqlite3CodecAttach
      Src: /src/nss/lib/sqlite/sqlite3.c:106594,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:106601,1
    - Dst: sqlite3BtreeEnterAll
      Src: /src/nss/lib/sqlite/sqlite3.c:106609,1
    - Dst: REOPEN_AS_MEMDB
      Src: /src/nss/lib/sqlite/sqlite3.c:106612,1
    - Dst: sqlite3Init
      Src: /src/nss/lib/sqlite/sqlite3.c:106613,1
    - Dst: sqlite3BtreeLeaveAll
      Src: /src/nss/lib/sqlite/sqlite3.c:106615,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:106616,1
    - Dst: REOPEN_AS_MEMDB
      Src: /src/nss/lib/sqlite/sqlite3.c:106619,1
    - Dst: sqlite3UserAuthCheckLogin
      Src: /src/nss/lib/sqlite/sqlite3.c:106621,1
    - Dst: REOPEN_AS_MEMDB
      Src: /src/nss/lib/sqlite/sqlite3.c:106628,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:106630,1
    - Dst: sqlite3BtreeClose
      Src: /src/nss/lib/sqlite/sqlite3.c:106632,1
    - Dst: sqlite3ResetAllSchemasOfConnection
      Src: /src/nss/lib/sqlite/sqlite3.c:106636,1
    - Dst: sqlite3OomFault
      Src: /src/nss/lib/sqlite/sqlite3.c:106639,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:106640,1
    - Dst: sqlite3MPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:106641,1
    - Dst: sqlite3MPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:106643,1
    - Dst: sqlite3_result_error
      Src: /src/nss/lib/sqlite/sqlite3.c:106654,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:106655,1
    - Dst: sqlite3_result_error_code
      Src: /src/nss/lib/sqlite/sqlite3.c:106657,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 156
    argCount: 3
    argNames:
    - context
    - NotUsed
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( z && zName )
      pos:
        line_end: 106495
        line_start: 106495
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( zErrDyn==0 || rc!=SQLITE_OK )
      pos:
        line_end: 106615
        line_start: 106615
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pVfs )
      pos:
        line_end: 106529
        line_start: 106529
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iDb>=2 )
      pos:
        line_end: 106629
        line_start: 106629
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 106658
      start: 106438
    functionDepth: 16
    functionLinenumber: 106438
    functionLinenumberEnd: 106658
    functionName: attachFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeGetOptimalReserve
    - sqlite3DbMallocRawNN
    - sqlite3SchemaGet
    - sqlite3CodecAttach
    - UNUSED_PARAMETER
    - sqlite3BtreeLeave
    - sqlite3Init
    - sqlite3BtreeLeaveAll
    - sqlite3ResetAllSchemasOfConnection
    - sqlite3_value_type
    - sqlite3_value_bytes
    - memcpy
    - sqlite3_result_error_code
    - sqlite3StrICmp
    - sqlite3DbStrDup
    - sqlite3BtreeOpen
    - sqlite3BtreeSecureDelete
    - assert
    - memset
    - sqlite3BtreeEnter
    - sqlite3CodecQueryParameters
    - sqlite3CodecGetKey
    - ENC
    - sqlite3_value_blob
    - sqlite3_vfs_find
    - sqlite3PagerLockingMode
    - sqlite3BtreePager
    - sqlite3BtreeClose
    - sqlite3DbFree
    - REOPEN_AS_MEMDB
    - sqlite3BtreeSetPagerFlags
    - sqlite3ParseUri
    - sqlite3OomFault
    - sqlite3UserAuthCheckLogin
    - sqlite3DbRealloc
    - sqlite3BtreeEnterAll
    - sqlite3MPrintf
    - sqlite3_context_db_handle
    - sqlite3_value_text
    - sqlite3_free
    - sqlite3_result_error
    linkageType: ''
    returnType: void
    signature: "void attachFunc(\n  sqlite3_context *context,\n  int NotUsed,\n  sqlite3_value
      **argv\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - db
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106464
      start: 106463
    functionDepth: 0
    functionLinenumber: 106463
    functionLinenumberEnd: 106464
    functionName: REOPEN_AS_MEMDB
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REOPEN_AS_MEMDB(db)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - db
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106466
      start: 106465
    functionDepth: 0
    functionLinenumber: 106465
    functionLinenumberEnd: 106466
    functionName: REOPEN_AS_MEMDB
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REOPEN_AS_MEMDB(db)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:106673,1
    - Dst: sqlite3_context_db_handle
      Src: /src/nss/lib/sqlite/sqlite3.c:106674,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:106679,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:106685,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:106689,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:106693,1
    - Dst: sqlite3BtreeIsInReadTrans
      Src: /src/nss/lib/sqlite/sqlite3.c:106696,1
    - Dst: sqlite3BtreeIsInBackup
      Src: /src/nss/lib/sqlite/sqlite3.c:106696,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:106697,1
    - Dst: sqlite3BtreeClose
      Src: /src/nss/lib/sqlite/sqlite3.c:106701,1
    - Dst: sqlite3CollapseDatabaseArray
      Src: /src/nss/lib/sqlite/sqlite3.c:106704,1
    - Dst: sqlite3_result_error
      Src: /src/nss/lib/sqlite/sqlite3.c:106708,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 3
    argNames:
    - context
    - NotUsed
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106709
      start: 106668
    functionDepth: 15
    functionLinenumber: 106668
    functionLinenumberEnd: 106709
    functionName: detachFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3StrICmp
    - sqlite3_result_error
    - sqlite3_context_db_handle
    - sqlite3BtreeClose
    - UNUSED_PARAMETER
    - sqlite3CollapseDatabaseArray
    - sqlite3BtreeIsInReadTrans
    - sqlite3_value_text
    - sqlite3_snprintf
    - sqlite3BtreeIsInBackup
    linkageType: ''
    returnType: void
    signature: "void detachFunc(\n  sqlite3_context *context,\n  int NotUsed,\n  sqlite3_value
      **argv\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:106731,1
    - Dst: resolveAttachExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:106735,1
    - Dst: resolveAttachExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:106736,1
    - Dst: resolveAttachExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:106737,1
    - Dst: sqlite3AuthCheck
      Src: /src/nss/lib/sqlite/sqlite3.c:106750,1
    - Dst: sqlite3GetVdbe
      Src: /src/nss/lib/sqlite/sqlite3.c:106758,1
    - Dst: sqlite3GetTempRange
      Src: /src/nss/lib/sqlite/sqlite3.c:106759,1
    - Dst: sqlite3ExprCode
      Src: /src/nss/lib/sqlite/sqlite3.c:106760,1
    - Dst: sqlite3ExprCode
      Src: /src/nss/lib/sqlite/sqlite3.c:106761,1
    - Dst: sqlite3ExprCode
      Src: /src/nss/lib/sqlite/sqlite3.c:106762,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:106764,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:106766,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:106768,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:106769,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:106775,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:106779,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:106780,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:106781,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 7
    argNames:
    - pParse
    - type
    - pFunc
    - pAuthArg
    - pFilename
    - pDbname
    - pKey
    argTypes:
    - Parse*
    - int
    - FuncDef*
    - Expr*
    - Expr*
    - Expr*
    - Expr*
    assertStmts:
    - condition: ( v || db->mallocFailed )
      pos:
        line_end: 106763
        line_start: 106763
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pFunc->nArg==-1 || (pFunc->nArg&0xff)==pFunc->nArg )
      pos:
        line_end: 106767
        line_start: 106767
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 106782
      start: 106715
    functionDepth: 17
    functionLinenumber: 106715
    functionLinenumberEnd: 106782
    functionName: codeAttach
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3AuthCheck
    - sqlite3ExprCode
    - sqlite3ExprDelete
    - memset
    - assert
    - sqlite3VdbeAddOp4
    - sqlite3VdbeChangeP5
    - sqlite3VdbeAddOp1
    - sqlite3GetTempRange
    - sqlite3GetVdbe
    - resolveAttachExpr
    linkageType: ''
    returnType: void
    signature: "void codeAttach(\n  Parse *pParse,       /* The parser context */\n
      \ int type,            /* Either SQLITE_ATTACH or SQLITE_DETACH */\n  FuncDef
      const *pFunc,/* FuncDef wrapper for detachFunc() or attachFunc() */\n  Expr
      *pAuthArg,      /* Expression to pass to authorization callback */\n  Expr *pFilename,
      \    /* Name of database file */\n  Expr *pDbname,       /* Name of the database
      to use internally */\n  Expr *pKey           /* Database key for encryption
      extension */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: codeAttach
      Src: /src/nss/lib/sqlite/sqlite3.c:106801,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pParse
    - pDbname
    argTypes:
    - Parse*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106802
      start: 106789
    functionDepth: 18
    functionLinenumber: 106789
    functionLinenumberEnd: 106802
    functionName: sqlite3Detach
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - codeAttach
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Detach(Parse *pParse, Expr *pDbname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: codeAttach
      Src: /src/nss/lib/sqlite/sqlite3.c:106821,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pParse
    - p
    - pDbname
    - pKey
    argTypes:
    - Parse*
    - Expr*
    - Expr*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106822
      start: 106809
    functionDepth: 18
    functionLinenumber: 106809
    functionLinenumberEnd: 106822
    functionName: sqlite3Attach
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - codeAttach
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Attach(Parse *pParse, Expr *p, Expr *pDbname,
      Expr *pKey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:106839,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 5
    argNames:
    - pFix
    - pParse
    - iDb
    - zType
    - pName
    argTypes:
    - DbFixer*
    - Parse*
    - int
    - char*
    - Token*
    assertStmts:
    - condition: ( db->nDb>iDb )
      pos:
        line_end: 106838
        line_start: 106838
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 106846
      start: 106829
    functionDepth: 0
    functionLinenumber: 106829
    functionLinenumberEnd: 106846
    functionName: sqlite3FixInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3FixInit(\n  DbFixer *pFix,      /* The fixer
      to be initialized */\n  Parse *pParse,      /* Error messages will be written
      here */\n  int iDb,            /* This is the database that must be used */\n
      \ const char *zType,  /* \"view\", \"trigger\", or \"index\" */\n  const Token
      *pName  /* Name of the view, trigger, or index */\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: NEVER
      Src: /src/nss/lib/sqlite/sqlite3.c:106870,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:106874,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:106875,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:106880,1
    - Dst: sqlite3FixSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:106885,1
    - Dst: sqlite3FixExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:106886,1
    - Dst: sqlite3FixExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:106888,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 2
    argNames:
    - pFix
    - pList
    argTypes:
    - DbFixer*
    - SrcList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106893
      start: 106862
    functionDepth: 10
    functionLinenumber: 106862
    functionLinenumberEnd: 106893
    functionName: sqlite3FixSrcList
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - NEVER
    - sqlite3FixExprList
    - sqlite3FixSelect
    - sqlite3StrICmp
    - sqlite3DbFree
    - sqlite3FixExpr
    - sqlite3ErrorMsg
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3FixSrcList(\n  DbFixer *pFix,       /* Context
      of the fixation */\n  SrcList *pList       /* The Source list to check and modify
      */\n)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3FixExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:106900,1
    - Dst: sqlite3FixSrcList
      Src: /src/nss/lib/sqlite/sqlite3.c:106903,1
    - Dst: sqlite3FixExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:106906,1
    - Dst: sqlite3FixExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:106909,1
    - Dst: sqlite3FixExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:106912,1
    - Dst: sqlite3FixExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:106915,1
    - Dst: sqlite3FixExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:106918,1
    - Dst: sqlite3FixSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:106924,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 2
    argNames:
    - pFix
    - pSelect
    argTypes:
    - DbFixer*
    - Select*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106932
      start: 106895
    functionDepth: 11
    functionLinenumber: 106895
    functionLinenumberEnd: 106932
    functionName: sqlite3FixSelect
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3FixExpr
    - sqlite3FixExprList
    - sqlite3FixSelect
    - sqlite3FixSrcList
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3FixSelect(\n  DbFixer *pFix,       /* Context
      of the fixation */\n  Select *pSelect      /* The SELECT statement to be fixed
      to one database */\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:106942,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:106946,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:106947,1
    - Dst: sqlite3FixSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:106948,1
    - Dst: sqlite3FixExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:106950,1
    - Dst: sqlite3FixExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:106952,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 2
    argNames:
    - pFix
    - pExpr
    argTypes:
    - DbFixer*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106958
      start: 106933
    functionDepth: 12
    functionLinenumber: 106933
    functionLinenumberEnd: 106958
    functionName: sqlite3FixExpr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 3
    functionsReached:
    - sqlite3FixExprList
    - sqlite3FixSelect
    - sqlite3FixExpr
    - sqlite3ErrorMsg
    - ExprHasProperty
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3FixExpr(\n  DbFixer *pFix,     /* Context of
      the fixation */\n  Expr *pExpr        /* The expression to be fixed to one database
      */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3FixExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:106967,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - pFix
    - pList
    argTypes:
    - DbFixer*
    - ExprList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106972
      start: 106959
    functionDepth: 13
    functionLinenumber: 106959
    functionLinenumberEnd: 106972
    functionName: sqlite3FixExprList
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 3
    functionsReached:
    - sqlite3FixExpr
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3FixExprList(\n  DbFixer *pFix,     /* Context
      of the fixation */\n  ExprList *pList    /* The expression to be fixed to one
      database */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3FixSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:106981,1
    - Dst: sqlite3FixExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:106984,1
    - Dst: sqlite3FixExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:106987,1
    - Dst: sqlite3FixExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:106993,1
    - Dst: sqlite3FixExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:106994,1
    - Dst: sqlite3FixExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:106995,1
    - Dst: sqlite3FixExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:106996,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 2
    argNames:
    - pFix
    - pStep
    argTypes:
    - DbFixer*
    - TriggerStep*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107005
      start: 106976
    functionDepth: 14
    functionLinenumber: 106976
    functionLinenumberEnd: 107005
    functionName: sqlite3FixTriggerStep
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3FixExprList
    - sqlite3FixSelect
    - sqlite3FixExpr
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3FixTriggerStep(\n  DbFixer *pFix,     /* Context
      of the fixation */\n  TriggerStep *pStep /* The trigger step be fixed to one
      database */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/nss/lib/sqlite/sqlite3.c:107085,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:107087,1
    - Dst: sqlite3ExpirePreparedStatements
      Src: /src/nss/lib/sqlite/sqlite3.c:107090,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:107091,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - db
    - pArg
    argTypes:
    - sqlite3*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107093
      start: 107079
    functionDepth: 12
    functionLinenumber: 107079
    functionLinenumberEnd: 107093
    functionName: sqlite3_set_authorizer
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3_mutex_leave
    - sqlite3ExpirePreparedStatements
    - sqlite3SafetyCheckOk
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_set_authorizer(\n  sqlite3 *db,\n  int (*xAuth)(void*,int,const
      char*,const char*,const char*,const char*),\n  void *pArg\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:107100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pParse
    argTypes:
    - Parse*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107102
      start: 107099
    functionDepth: 10
    functionLinenumber: 107099
    functionLinenumberEnd: 107102
    functionName: sqliteAuthBadReturnCode
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ErrorMsg
    linkageType: ''
    returnType: void
    signature: void sqliteAuthBadReturnCode(Parse *pParse)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3*::xAuth
      Src: /src/nss/lib/sqlite/sqlite3.c:107124,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:107130,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:107131,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:107132,1
    - Dst: sqliteAuthBadReturnCode
      Src: /src/nss/lib/sqlite/sqlite3.c:107135,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 4
    argNames:
    - pParse
    - zTab
    - zCol
    - iDb
    argTypes:
    - Parse*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107138
      start: 107113
    functionDepth: 11
    functionLinenumber: 107113
    functionLinenumberEnd: 107138
    functionName: sqlite3AuthReadCol
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqliteAuthBadReturnCode
    - sqlite3_mprintf
    - sqlite3*::xAuth
    - sqlite3ErrorMsg
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3AuthReadCol(\n  Parse *pParse,                  /*
      The parser context */\n  const char *zTab,               /* Table name */\n
      \ const char *zCol,               /* Column name */\n  int iDb                         /*
      Index of containing database. */\n)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:107162,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:107163,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:107165,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:107175,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:107176,1
    - Dst: NEVER
      Src: /src/nss/lib/sqlite/sqlite3.c:107184,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:107187,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:107190,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:107195,1
    - Dst: sqlite3AuthReadCol
      Src: /src/nss/lib/sqlite/sqlite3.c:107196,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 4
    argNames:
    - pParse
    - pExpr
    - pSchema
    - pTabList
    argTypes:
    - Parse*
    - Expr*
    - Schema*
    - SrcList*
    assertStmts:
    - condition: ( pExpr->op==TK_COLUMN || pExpr->op==TK_TRIGGER )
      pos:
        line_end: 107161
        line_start: 107161
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !IN_RENAME_OBJECT || db->xAuth==0 )
      pos:
        line_end: 107162
        line_start: 107162
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTabList )
      pos:
        line_end: 107174
        line_start: 107174
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iCol<pTab->nCol )
      pos:
        line_end: 107186
        line_start: 107186
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTab->iPKey<pTab->nCol )
      pos:
        line_end: 107189
        line_start: 107189
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iDb>=0 && iDb<db->nDb )
      pos:
        line_end: 107194
        line_start: 107194
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 107199
      start: 107149
    functionDepth: 12
    functionLinenumber: 107149
    functionLinenumberEnd: 107199
    functionName: sqlite3AuthRead
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - NEVER
    - ALWAYS
    - sqlite3AuthReadCol
    - assert
    - sqlite3SchemaToIndex
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3AuthRead(\n  Parse *pParse,        /* The parser
      context */\n  Expr *pExpr,          /* The expression to check authorization
      on */\n  Schema *pSchema,      /* The schema of the expression */\n  SrcList
      *pTabList     /* All table that pExpr might refer to */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:107220,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:107235,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:107236,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:107237,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:107238,1
    - Dst: sqlite3*::xAuth
      Src: /src/nss/lib/sqlite/sqlite3.c:107240,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:107246,1
    - Dst: sqliteAuthBadReturnCode
      Src: /src/nss/lib/sqlite/sqlite3.c:107250,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 5
    argNames:
    - pParse
    - code
    - zArg1
    - zArg2
    - zArg3
    argTypes:
    - Parse*
    - int
    - char*
    - char*
    - char*
    assertStmts:
    - condition: ( !IN_RENAME_OBJECT || db->xAuth==0 )
      pos:
        line_end: 107219
        line_start: 107219
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 107253
      start: 107207
    functionDepth: 11
    functionLinenumber: 107207
    functionLinenumberEnd: 107253
    functionName: sqlite3AuthCheck
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 6
    functionsReached:
    - sqlite3*::xAuth
    - sqliteAuthBadReturnCode
    - assert
    - sqlite3ErrorMsg
    - testcase
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3AuthCheck(\n  Parse *pParse,\n  int code,\n
      \ const char *zArg1,\n  const char *zArg2,\n  const char *zArg3\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:107265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - pParse
    - pContext
    - zContext
    argTypes:
    - Parse*
    - AuthContext*
    - char*
    assertStmts:
    - condition: ( pParse )
      pos:
        line_end: 107264
        line_start: 107264
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 107269
      start: 107260
    functionDepth: 0
    functionLinenumber: 107260
    functionLinenumberEnd: 107269
    functionName: sqlite3AuthContextPush
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3AuthContextPush(\n  Parse *pParse,\n  AuthContext
      *pContext, \n  const char *zContext\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pContext
    argTypes:
    - AuthContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107280
      start: 107275
    functionDepth: 0
    functionLinenumber: 107275
    functionLinenumberEnd: 107280
    functionName: sqlite3AuthContextPop
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3AuthContextPop(AuthContext *pContext)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ParseToplevel
      Src: /src/nss/lib/sqlite/sqlite3.c:107341,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:107345,1
    - Dst: sqlite3BtreeSharable
      Src: /src/nss/lib/sqlite/sqlite3.c:107348,1
    - Dst: sqlite3DbReallocOrFree
      Src: /src/nss/lib/sqlite/sqlite3.c:107359,1
    - Dst: sqlite3OomFault
      Src: /src/nss/lib/sqlite/sqlite3.c:107368,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 5
    argNames:
    - pParse
    - iDb
    - iTab
    - isWriteLock
    - zName
    argTypes:
    - Parse*
    - int
    - int
    - u8
    - char*
    assertStmts:
    - condition: ( iDb>=0 )
      pos:
        line_end: 107344
        line_start: 107344
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 107370
      start: 107334
    functionDepth: 9
    functionLinenumber: 107334
    functionLinenumberEnd: 107370
    functionName: sqlite3TableLock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 3
    functionsReached:
    - sqlite3DbReallocOrFree
    - assert
    - sqlite3BtreeSharable
    - sqlite3OomFault
    - sqlite3ParseToplevel
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3TableLock(\n  Parse *pParse,     /* Parsing
      context */\n  int iDb,           /* Index of the database containing the table
      to lock */\n  int iTab,          /* Root page number of the table to be locked
      */\n  u8 isWriteLock,    /* True for a write lock */\n  const char *zName  /*
      Name of the table to be locked */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetVdbe
      Src: /src/nss/lib/sqlite/sqlite3.c:107380,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:107381,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:107386,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pParse
    argTypes:
    - Parse*
    assertStmts:
    - condition: ( pVdbe!=0 )
      pos:
        line_end: 107380
        line_start: 107380
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 107389
      start: 107376
    functionDepth: 12
    functionLinenumber: 107376
    functionLinenumberEnd: 107389
    functionName: codeTableLocks
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3GetVdbe
    - sqlite3VdbeAddOp4
    linkageType: ''
    returnType: void
    signature: void codeTableLocks(Parse *pParse)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - m
    argTypes:
    - yDbMask
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107404
      start: 107400
    functionDepth: 0
    functionLinenumber: 107400
    functionLinenumberEnd: 107404
    functionName: sqlite3DbMaskAllZero
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3DbMaskAllZero(yDbMask m)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:107421,1
    - Dst: sqlite3GetVdbe
      Src: /src/nss/lib/sqlite/sqlite3.c:107432,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:107433,1
    - Dst: sqlite3VdbeAssertMayAbort
      Src: /src/nss/lib/sqlite/sqlite3.c:107434,1
    - Dst: sqlite3VdbeAddOp0
      Src: /src/nss/lib/sqlite/sqlite3.c:107436,1
    - Dst: sqlite3UserAuthInit
      Src: /src/nss/lib/sqlite/sqlite3.c:107440,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:107442,1
    - Dst: DbMaskNonZero
      Src: /src/nss/lib/sqlite/sqlite3.c:107456,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:107459,1
    - Dst: sqlite3VdbeGetOp
      Src: /src/nss/lib/sqlite/sqlite3.c:107459,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:107460,1
    - Dst: DbMaskTest
      Src: /src/nss/lib/sqlite/sqlite3.c:107463,1
    - Dst: sqlite3VdbeUsesBtree
      Src: /src/nss/lib/sqlite/sqlite3.c:107464,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/nss/lib/sqlite/sqlite3.c:107466,1
    - Dst: DbMaskTest
      Src: /src/nss/lib/sqlite/sqlite3.c:107469,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:107473,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:107474,1
    - Dst: sqlite3GetVTable
      Src: /src/nss/lib/sqlite/sqlite3.c:107479,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:107480,1
    - Dst: codeTableLocks
      Src: /src/nss/lib/sqlite/sqlite3.c:107489,1
    - Dst: sqlite3AutoincrementBegin
      Src: /src/nss/lib/sqlite/sqlite3.c:107493,1
    - Dst: sqlite3ExprCode
      Src: /src/nss/lib/sqlite/sqlite3.c:107500,1
    - Dst: sqlite3VdbeGoto
      Src: /src/nss/lib/sqlite/sqlite3.c:107505,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:107515,1
    - Dst: sqlite3VdbeMakeReady
      Src: /src/nss/lib/sqlite/sqlite3.c:107516,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 57
    argCount: 1
    argNames:
    - pParse
    argTypes:
    - Parse*
    assertStmts:
    - condition: ( pParse->pToplevel==0 )
      pos:
        line_end: 107420
        line_start: 107420
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( !pParse->isMultiWrite \n       || sqlite3VdbeAssertMayAbort(v,
        pParse->mayAbort))"
      pos:
        line_end: 107433
        line_start: 107432
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3VdbeGetOp(v, 0)->opcode==OP_Init )
      pos:
        line_end: 107458
        line_start: 107458
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pParse->pAinc==0 || pParse->nTab>0 )
      pos:
        line_end: 107514
        line_start: 107514
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 107521
      start: 107417
    functionDepth: 17
    functionLinenumber: 107417
    functionLinenumberEnd: 107521
    functionName: sqlite3FinishCoding
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ExprCode
    - sqlite3GetVdbe
    - VdbeComment
    - sqlite3VdbeUsesBtree
    - sqlite3VdbeGoto
    - sqlite3VdbeAssertMayAbort
    - sqlite3VdbeAddOp4Int
    - sqlite3UserAuthInit
    - sqlite3VdbeMakeReady
    - assert
    - sqlite3VdbeJumpHere
    - sqlite3GetVTable
    - sqlite3VdbeAddOp0
    - codeTableLocks
    - sqlite3VdbeGetOp
    - DbMaskTest
    - DbMaskNonZero
    - sqlite3VdbeAddOp4
    - sqlite3AutoincrementBegin
    - sqlite3VdbeChangeP5
    - sqlite3ErrorMsg
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3FinishCoding(Parse *pParse)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:107543,1
    - Dst: va_start
      Src: /src/nss/lib/sqlite/sqlite3.c:107544,1
    - Dst: sqlite3VMPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:107545,1
    - Dst: va_end
      Src: /src/nss/lib/sqlite/sqlite3.c:107546,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:107556,1
    - Dst: PARSE_TAIL
      Src: /src/nss/lib/sqlite/sqlite3.c:107556,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:107557,1
    - Dst: PARSE_TAIL
      Src: /src/nss/lib/sqlite/sqlite3.c:107557,1
    - Dst: sqlite3RunParser
      Src: /src/nss/lib/sqlite/sqlite3.c:107558,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:107559,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:107560,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:107561,1
    - Dst: PARSE_TAIL
      Src: /src/nss/lib/sqlite/sqlite3.c:107561,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - pParse
    - zFormat
    argTypes:
    - Parse*
    - char*
    assertStmts:
    - condition: ( pParse->nested<10 )
      pos:
        line_end: 107542
        line_start: 107542
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 107563
      start: 107535
    functionDepth: 9
    functionLinenumber: 107535
    functionLinenumberEnd: 107563
    functionName: sqlite3NestedParse
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 5
    functionsReached:
    - memcpy
    - va_end
    - sqlite3DbFree
    - sqlite3RunParser
    - assert
    - memset
    - va_start
    - PARSE_TAIL
    - sqlite3VMPrintf
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3NestedParse(Parse *pParse, const char *zFormat,
      ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:107571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - zTable
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107572
      start: 107570
    functionDepth: 2
    functionLinenumber: 107570
    functionLinenumberEnd: 107572
    functionName: sqlite3UserAuthTable
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_stricmp
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3UserAuthTable(const char *zTable)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:107592,1
    - Dst: sqlite3BtreeHoldsAllMutexes
      Src: /src/nss/lib/sqlite/sqlite3.c:107592,1
    - Dst: sqlite3UserAuthTable
      Src: /src/nss/lib/sqlite/sqlite3.c:107596,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:107603,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:107604,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/nss/lib/sqlite/sqlite3.c:107604,1
    - Dst: sqlite3HashFind
      Src: /src/nss/lib/sqlite/sqlite3.c:107605,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:107611,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:107612,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 3
    argNames:
    - db
    - zName
    - zDatabase
    argTypes:
    - sqlite3*
    - char*
    - char*
    assertStmts:
    - condition: ( zDatabase!=0 || sqlite3BtreeHoldsAllMutexes(db) )
      pos:
        line_end: 107591
        line_start: 107591
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3SchemaMutexHeld(db, j, 0) )
      pos:
        line_end: 107603
        line_start: 107603
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 107616
      start: 107587
    functionDepth: 3
    functionLinenumber: 107587
    functionLinenumberEnd: 107616
    functionName: sqlite3FindTable
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 10
    functionsReached:
    - sqlite3StrICmp
    - sqlite3UserAuthTable
    - sqlite3SchemaMutexHeld
    - assert
    - sqlite3HashFind
    - sqlite3BtreeHoldsAllMutexes
    - sqlite3_stricmp
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3FindTable(sqlite3 *db, const char *zName, const
      char *zDatabase)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ReadSchema
      Src: /src/nss/lib/sqlite/sqlite3.c:107640,1
    - Dst: sqlite3FindTable
      Src: /src/nss/lib/sqlite/sqlite3.c:107645,1
    - Dst: sqlite3HashFind
      Src: /src/nss/lib/sqlite/sqlite3.c:107652,1
    - Dst: sqlite3_strnicmp
      Src: /src/nss/lib/sqlite/sqlite3.c:107653,1
    - Dst: sqlite3PragmaVtabRegister
      Src: /src/nss/lib/sqlite/sqlite3.c:107654,1
    - Dst: sqlite3VtabEponymousTableInit
      Src: /src/nss/lib/sqlite/sqlite3.c:107656,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:107663,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:107670,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:107672,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 4
    argNames:
    - pParse
    - flags
    - zName
    - zDbase
    argTypes:
    - Parse*
    - u32
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107677
      start: 107628
    functionDepth: 10
    functionLinenumber: 107628
    functionLinenumberEnd: 107677
    functionName: sqlite3LocateTable
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 4
    functionsReached:
    - sqlite3PragmaVtabRegister
    - sqlite3ReadSchema
    - sqlite3FindTable
    - sqlite3VtabEponymousTableInit
    - sqlite3HashFind
    - sqlite3ErrorMsg
    - sqlite3_strnicmp
    - IsVirtual
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3LocateTable(\n  Parse *pParse,         /* context
      in which to report errors */\n  u32 flags,             /* LOCATE_VIEW or LOCATE_NOERR
      */\n  const char *zName,     /* Name of the table we are looking for */\n  const
      char *zDbase     /* Name of the database.  Might be NULL */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:107694,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:107696,1
    - Dst: sqlite3LocateTable
      Src: /src/nss/lib/sqlite/sqlite3.c:107701,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - pParse
    - flags
    - p
    argTypes:
    - Parse*
    - u32
    - struct SrcList_item*
    assertStmts:
    - condition: ( p->pSchema==0 || p->zDatabase==0 )
      pos:
        line_end: 107693
        line_start: 107693
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 107702
      start: 107688
    functionDepth: 11
    functionLinenumber: 107688
    functionLinenumberEnd: 107702
    functionName: sqlite3LocateTableItem
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 3
    functionsReached:
    - assert
    - sqlite3LocateTable
    - sqlite3SchemaToIndex
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3LocateTableItem(\n  Parse *pParse, \n  u32
      flags,\n  struct SrcList_item *p\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:107720,1
    - Dst: sqlite3BtreeHoldsAllMutexes
      Src: /src/nss/lib/sqlite/sqlite3.c:107720,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:107724,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:107725,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:107726,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/nss/lib/sqlite/sqlite3.c:107726,1
    - Dst: sqlite3HashFind
      Src: /src/nss/lib/sqlite/sqlite3.c:107727,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 3
    argNames:
    - db
    - zName
    - zDb
    argTypes:
    - sqlite3*
    - char*
    - char*
    assertStmts:
    - condition: ( zDb!=0 || sqlite3BtreeHoldsAllMutexes(db) )
      pos:
        line_end: 107719
        line_start: 107719
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3SchemaMutexHeld(db, j, 0) )
      pos:
        line_end: 107725
        line_start: 107725
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pSchema )
      pos:
        line_end: 107723
        line_start: 107723
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 107731
      start: 107716
    functionDepth: 3
    functionLinenumber: 107716
    functionLinenumberEnd: 107731
    functionName: sqlite3FindIndex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 4
    functionsReached:
    - sqlite3StrICmp
    - sqlite3SchemaMutexHeld
    - assert
    - sqlite3HashFind
    - sqlite3BtreeHoldsAllMutexes
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3FindIndex(sqlite3 *db, const char *zName, const
      char *zDb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DeleteIndexSamples
      Src: /src/nss/lib/sqlite/sqlite3.c:107738,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:107740,1
    - Dst: sqlite3ExprListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:107741,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:107742,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:107743,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:107745,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:107747,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - Index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107748
      start: 107736
    functionDepth: 10
    functionLinenumber: 107736
    functionLinenumberEnd: 107748
    functionName: sqlite3FreeIndex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3DeleteIndexSamples
    - sqlite3DbFree
    - sqlite3ExprListDelete
    - sqlite3ExprDelete
    - sqlite3_free
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3FreeIndex(sqlite3 *db, Index *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:107760,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/nss/lib/sqlite/sqlite3.c:107760,1
    - Dst: sqlite3HashInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:107762,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:107763,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:107771,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:107772,1
    - Dst: sqlite3FreeIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:107776,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - db
    - iDb
    - zIdxName
    argTypes:
    - sqlite3*
    - int
    - char*
    assertStmts:
    - condition: ( sqlite3SchemaMutexHeld(db, iDb, 0) )
      pos:
        line_end: 107759
        line_start: 107759
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 107779
      start: 107756
    functionDepth: 11
    functionLinenumber: 107756
    functionLinenumberEnd: 107779
    functionName: sqlite3UnlinkAndDeleteIndex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - ALWAYS
    - sqlite3SchemaMutexHeld
    - assert
    - sqlite3FreeIndex
    - sqlite3HashInsert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3UnlinkAndDeleteIndex(sqlite3 *db, int iDb, const
      char *zIdxName)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:107794,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:107805,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:107806,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107809
      start: 107789
    functionDepth: 6
    functionLinenumber: 107789
    functionLinenumberEnd: 107809
    functionName: sqlite3CollapseDatabaseArray
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3DbFree
    - memcpy
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3CollapseDatabaseArray(sqlite3 *db)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:107818,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:107821,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/nss/lib/sqlite/sqlite3.c:107821,1
    - Dst: DbSetProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:107822,1
    - Dst: DbSetProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:107823,1
    - Dst: DbHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:107829,1
    - Dst: sqlite3SchemaClear
      Src: /src/nss/lib/sqlite/sqlite3.c:107830,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - db
    - iDb
    argTypes:
    - sqlite3*
    - int
    assertStmts:
    - condition: ( iDb<db->nDb )
      pos:
        line_end: 107817
        line_start: 107817
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3SchemaMutexHeld(db, iDb, 0) )
      pos:
        line_end: 107820
        line_start: 107820
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 107834
      start: 107816
    functionDepth: 1
    functionLinenumber: 107816
    functionLinenumberEnd: 107834
    functionName: sqlite3ResetOneSchema
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3SchemaClear
    - sqlite3SchemaMutexHeld
    - assert
    - DbSetProperty
    - DbHasProperty
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ResetOneSchema(sqlite3 *db, int iDb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeEnterAll
      Src: /src/nss/lib/sqlite/sqlite3.c:107842,1
    - Dst: sqlite3SchemaClear
      Src: /src/nss/lib/sqlite/sqlite3.c:107847,1
    - Dst: DbSetProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:107849,1
    - Dst: sqlite3VtabUnlockList
      Src: /src/nss/lib/sqlite/sqlite3.c:107854,1
    - Dst: sqlite3BtreeLeaveAll
      Src: /src/nss/lib/sqlite/sqlite3.c:107855,1
    - Dst: sqlite3CollapseDatabaseArray
      Src: /src/nss/lib/sqlite/sqlite3.c:107857,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107859
      start: 107840
    functionDepth: 7
    functionLinenumber: 107840
    functionLinenumberEnd: 107859
    functionName: sqlite3ResetAllSchemasOfConnection
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 3
    functionsReached:
    - sqlite3BtreeEnterAll
    - sqlite3SchemaClear
    - sqlite3BtreeLeaveAll
    - sqlite3CollapseDatabaseArray
    - DbSetProperty
    - sqlite3VtabUnlockList
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ResetAllSchemasOfConnection(sqlite3 *db)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107866
      start: 107864
    functionDepth: 0
    functionLinenumber: 107864
    functionLinenumberEnd: 107866
    functionName: sqlite3CommitInternalChanges
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3CommitInternalChanges(sqlite3 *db)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:107875,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:107878,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:107879,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:107880,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:107882,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - db
    - pTable
    argTypes:
    - sqlite3*
    - Table*
    assertStmts:
    - condition: ( pTable!=0 )
      pos:
        line_end: 107874
        line_start: 107874
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 107884
      start: 107872
    functionDepth: 8
    functionLinenumber: 107872
    functionLinenumberEnd: 107884
    functionName: sqlite3DeleteColumnNames
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3DbFree
    - sqlite3ExprDelete
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3DeleteColumnNames(sqlite3 *db, Table *pTable)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3HashInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:107925,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:107928,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/nss/lib/sqlite/sqlite3.c:107928,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:107929,1
    - Dst: sqlite3FreeIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:107931,1
    - Dst: sqlite3FkDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:107935,1
    - Dst: sqlite3DeleteColumnNames
      Src: /src/nss/lib/sqlite/sqlite3.c:107939,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:107940,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:107941,1
    - Dst: sqlite3SelectDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:107942,1
    - Dst: sqlite3ExprListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:107943,1
    - Dst: sqlite3VtabClear
      Src: /src/nss/lib/sqlite/sqlite3.c:107945,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:107947,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:107950,1
    - Dst: sqlite3LookasideUsed
      Src: /src/nss/lib/sqlite/sqlite3.c:107950,1
    - Dst: sqlite3DeleteTable
      Src: /src/nss/lib/sqlite/sqlite3.c:107952,1
    - Dst: deleteTable
      Src: /src/nss/lib/sqlite/sqlite3.c:107956,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( pOld==pIndex || pOld==0 )
      pos:
        line_end: 107928
        line_start: 107928
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( db==0 || sqlite3SchemaMutexHeld(db, 0, pIndex->pSchema) )
      pos:
        line_end: 107927
        line_start: 107927
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nLookaside==0 || nLookaside==sqlite3LookasideUsed(db,0) )
      pos:
        line_end: 107949
        line_start: 107949
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 107957
      start: 107925
    functionDepth: 11
    functionLinenumber: 107925
    functionLinenumberEnd: 107957
    functionName: TESTONLY
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 3
    functionsReached:
    - sqlite3LookasideUsed
    - sqlite3SelectDelete
    - sqlite3DeleteColumnNames
    - sqlite3DbFree
    - sqlite3DeleteTable
    - sqlite3SchemaMutexHeld
    - deleteTable
    - assert
    - sqlite3FkDelete
    - sqlite3FreeIndex
    - sqlite3HashInsert
    - sqlite3ExprListDelete
    - sqlite3VtabClear
    linkageType: ''
    returnType: void
    signature: "void TESTONLY ( Index *pOld = ) sqlite3HashInsert(\n         &pIndex->pSchema->idxHash,
      zName, 0\n      );\n      assert( db==0 || sqlite3SchemaMutexHeld(db, 0, pIndex->pSchema)
      );\n      assert( pOld==pIndex || pOld==0 );\n    }\n    sqlite3FreeIndex(db,
      pIndex);\n  }\n\n  /* Delete any foreign keys attached to this table. */\n  sqlite3FkDelete(db,
      pTable);\n\n  /* Delete the Table structure itself.\n  */\n  sqlite3DeleteColumnNames(db,
      pTable);\n  sqlite3DbFree(db, pTable->zName);\n  sqlite3DbFree(db, pTable->zColAff);\n
      \ sqlite3SelectDelete(db, pTable->pSelect);\n  sqlite3ExprListDelete(db, pTable->pCheck);\n#ifndef
      SQLITE_OMIT_VIRTUALTABLE\n  sqlite3VtabClear(db, pTable);\n#endif\n  sqlite3DbFree(db,
      pTable);\n\n  /* Verify that no lookaside memory was used by schema tables */\n
      \ assert( nLookaside==0 || nLookaside==sqlite3LookasideUsed(db,0) );\n}\nSQLITE_PRIVATE
      void sqlite3DeleteTable(sqlite3 *db, Table *pTable)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:107968,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:107969,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:107970,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:107971,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/nss/lib/sqlite/sqlite3.c:107971,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:107972,1
    - Dst: sqlite3HashInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:107974,1
    - Dst: sqlite3DeleteTable
      Src: /src/nss/lib/sqlite/sqlite3.c:107975,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - db
    - iDb
    - zTabName
    argTypes:
    - sqlite3*
    - int
    - char*
    assertStmts:
    - condition: ( db!=0 )
      pos:
        line_end: 107967
        line_start: 107967
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( zTabName )
      pos:
        line_end: 107969
        line_start: 107969
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3SchemaMutexHeld(db, iDb, 0) )
      pos:
        line_end: 107970
        line_start: 107970
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iDb>=0 && iDb<db->nDb )
      pos:
        line_end: 107968
        line_start: 107968
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 107977
      start: 107964
    functionDepth: 7
    functionLinenumber: 107964
    functionLinenumberEnd: 107977
    functionName: sqlite3UnlinkAndDeleteTable
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3SchemaMutexHeld
    - assert
    - sqlite3DeleteTable
    - sqlite3HashInsert
    - testcase
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3UnlinkAndDeleteTable(sqlite3 *db, int iDb, const
      char *zTabName)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbStrNDup
      Src: /src/nss/lib/sqlite/sqlite3.c:107995,1
    - Dst: sqlite3Dequote
      Src: /src/nss/lib/sqlite/sqlite3.c:107996,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - db
    - pName
    argTypes:
    - sqlite3*
    - Token*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108001
      start: 107992
    functionDepth: 8
    functionLinenumber: 107992
    functionLinenumberEnd: 108001
    functionName: sqlite3NameFromToken
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 3
    functionsReached:
    - sqlite3DbStrNDup
    - sqlite3Dequote
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3NameFromToken(sqlite3 *db, Token *pName)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetVdbe
      Src: /src/nss/lib/sqlite/sqlite3.c:108008,1
    - Dst: sqlite3TableLock
      Src: /src/nss/lib/sqlite/sqlite3.c:108009,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/nss/lib/sqlite/sqlite3.c:108010,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - p
    - iDb
    argTypes:
    - Parse*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108014
      start: 108007
    functionDepth: 12
    functionLinenumber: 108007
    functionLinenumberEnd: 108014
    functionName: sqlite3OpenMasterTable
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeAddOp4Int
    - sqlite3GetVdbe
    - sqlite3TableLock
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OpenMasterTable(Parse *p, int iDb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:108027,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:108030,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 2
    argNames:
    - db
    - zName
    argTypes:
    - sqlite3*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108034
      start: 108022
    functionDepth: 2
    functionLinenumber: 108022
    functionLinenumberEnd: 108034
    functionName: sqlite3FindDbName
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 5
    functionsReached:
    - sqlite3_stricmp
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3FindDbName(sqlite3 *db, const char *zName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3NameFromToken
      Src: /src/nss/lib/sqlite/sqlite3.c:108045,1
    - Dst: sqlite3FindDbName
      Src: /src/nss/lib/sqlite/sqlite3.c:108046,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:108047,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - db
    - pName
    argTypes:
    - sqlite3*
    - Token*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108049
      start: 108042
    functionDepth: 9
    functionLinenumber: 108042
    functionLinenumberEnd: 108049
    functionName: sqlite3FindDb
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3NameFromToken
    - sqlite3DbFree
    - sqlite3FindDbName
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3FindDb(sqlite3 *db, Token *pName)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:108076,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:108079,1
    - Dst: sqlite3FindDb
      Src: /src/nss/lib/sqlite/sqlite3.c:108083,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:108085,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:108089,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 4
    argNames:
    - pParse
    - pName1
    - pName2
    - pUnqual
    argTypes:
    - Parse*
    - Token*
    - Token*
    - Token**
    assertStmts:
    - condition: ( pName2!=0 )
      pos:
        line_end: 108075
        line_start: 108075
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( db->init.iDb==0 || db->init.busy || IN_RENAME_OBJECT\n             ||
        (db->mDbFlags & DBFLAG_Vacuum)!=0)"
      pos:
        line_end: 108089
        line_start: 108088
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 108095
      start: 108067
    functionDepth: 10
    functionLinenumber: 108067
    functionLinenumberEnd: 108095
    functionName: sqlite3TwoPartName
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - sqlite3ErrorMsg
    - sqlite3FindDb
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3TwoPartName(\n  Parse *pParse,      /* Parsing
      and code generating context */\n  Token *pName1,      /* The \"xxx\" in the
      name \"xxx.yyy\" or \"xxx\" */\n  Token *pName2,      /* The \"yyy\" in the
      name \"xxx.yyy\" */\n  Token **pUnqual     /* Write the unqualified object name
      here */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:108101,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:108102,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:108104,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:108106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108109
      start: 108100
    functionDepth: 1
    functionLinenumber: 108100
    functionLinenumberEnd: 108109
    functionName: sqlite3WritableSchema
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - testcase
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WritableSchema(sqlite3 *db)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3WritableSchema
      Src: /src/nss/lib/sqlite/sqlite3.c:108120,1
    - Dst: sqlite3StrNICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:108121,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:108122,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - pParse
    - zName
    argTypes:
    - Parse*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108126
      start: 108118
    functionDepth: 10
    functionLinenumber: 108118
    functionLinenumberEnd: 108126
    functionName: sqlite3CheckObjectName
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3WritableSchema
    - sqlite3ErrorMsg
    - sqlite3StrNICmp
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3CheckObjectName(Parse *pParse, const char *zName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IsPrimaryKeyIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:108133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - pTab
    argTypes:
    - Table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108135
      start: 108131
    functionDepth: 1
    functionLinenumber: 108131
    functionLinenumberEnd: 108135
    functionName: sqlite3PrimaryKeyIndex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 5
    functionsReached:
    - IsPrimaryKeyIndex
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3PrimaryKeyIndex(Table *pTab)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - pIdx
    - iCol
    argTypes:
    - Index*
    - i16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108147
      start: 108141
    functionDepth: 0
    functionLinenumber: 108141
    functionLinenumberEnd: 108147
    functionName: sqlite3ColumnOfIndex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ColumnOfIndex(Index *pIdx, i16 iCol)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbStrDup
      Src: /src/nss/lib/sqlite/sqlite3.c:108184,1
    - Dst: SCHEMA_TABLE
      Src: /src/nss/lib/sqlite/sqlite3.c:108184,1
    - Dst: sqlite3TwoPartName
      Src: /src/nss/lib/sqlite/sqlite3.c:108188,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:108193,1
    - Dst: sqlite3NameFromToken
      Src: /src/nss/lib/sqlite/sqlite3.c:108197,1
    - Dst: sqlite3RenameTokenMap
      Src: /src/nss/lib/sqlite/sqlite3.c:108199,1
    - Dst: sqlite3CheckObjectName
      Src: /src/nss/lib/sqlite/sqlite3.c:108204,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:108209,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:108210,1
    - Dst: sqlite3AuthCheck
      Src: /src/nss/lib/sqlite/sqlite3.c:108219,1
    - Dst: SCHEMA_TABLE
      Src: /src/nss/lib/sqlite/sqlite3.c:108219,1
    - Dst: sqlite3AuthCheck
      Src: /src/nss/lib/sqlite/sqlite3.c:108222,1
    - Dst: sqlite3ReadSchema
      Src: /src/nss/lib/sqlite/sqlite3.c:108238,1
    - Dst: sqlite3FindTable
      Src: /src/nss/lib/sqlite/sqlite3.c:108241,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:108244,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:108246,1
    - Dst: sqlite3CodeVerifySchema
      Src: /src/nss/lib/sqlite/sqlite3.c:108247,1
    - Dst: sqlite3FindIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:108251,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:108252,1
    - Dst: sqlite3DbMallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:108257,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:108259,1
    - Dst: sqlite3LogEst
      Src: /src/nss/lib/sqlite/sqlite3.c:108269,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:108271,1
    - Dst: sqlite3LogEst
      Src: /src/nss/lib/sqlite/sqlite3.c:108271,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:108273,1
    - Dst: strcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:108281,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:108282,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/nss/lib/sqlite/sqlite3.c:108282,1
    - Dst: sqlite3GetVdbe
      Src: /src/nss/lib/sqlite/sqlite3.c:108295,1
    - Dst: sqlite3BeginWriteOperation
      Src: /src/nss/lib/sqlite/sqlite3.c:108301,1
    - Dst: sqlite3VdbeAddOp0
      Src: /src/nss/lib/sqlite/sqlite3.c:108305,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:108315,1
    - Dst: sqlite3VdbeUsesBtree
      Src: /src/nss/lib/sqlite/sqlite3.c:108316,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:108317,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:108317,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:108320,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:108321,1
    - Dst: ENC
      Src: /src/nss/lib/sqlite/sqlite3.c:108321,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:108322,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:108335,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:108340,1
    - Dst: sqlite3OpenMasterTable
      Src: /src/nss/lib/sqlite/sqlite3.c:108342,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:108343,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:108344,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:108345,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:108346,1
    - Dst: sqlite3VdbeAddOp0
      Src: /src/nss/lib/sqlite/sqlite3.c:108347,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:108355,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 116
    argCount: 7
    argNames:
    - pParse
    - pName1
    - pName2
    - isTemp
    - isView
    - isVirtual
    - noErr
    argTypes:
    - Parse*
    - Token*
    - Token*
    - int
    - int
    - int
    - int
    assertStmts:
    - condition: ( isTemp==0 || isTemp==1 )
      pos:
        line_end: 108208
        line_start: 108208
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( 200==sqlite3LogEst(1048576) )
      pos:
        line_end: 108270
        line_start: 108270
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pParse->pNewTable==0 )
      pos:
        line_end: 108272
        line_start: 108272
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( isView==0 || isView==1 )
      pos:
        line_end: 108209
        line_start: 108209
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( db->mallocFailed )
      pos:
        line_end: 108258
        line_start: 108258
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !db->init.busy || CORRUPT_DB )
      pos:
        line_end: 108245
        line_start: 108245
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3SchemaMutexHeld(db, iDb, 0) )
      pos:
        line_end: 108281
        line_start: 108281
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 108357
      start: 108165
    functionDepth: 13
    functionLinenumber: 108165
    functionLinenumberEnd: 108357
    functionName: sqlite3StartTable
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ReadSchema
    - sqlite3VdbeAddOp2
    - sqlite3VdbeAddOp3
    - sqlite3GetVdbe
    - sqlite3VdbeUsesBtree
    - sqlite3OpenMasterTable
    - sqlite3DbStrDup
    - sqlite3FindTable
    - assert
    - sqlite3VdbeJumpHere
    - ENC
    - sqlite3VdbeAddOp0
    - sqlite3DbMallocZero
    - sqlite3BeginWriteOperation
    - sqlite3AuthCheck
    - sqlite3DbFree
    - sqlite3SchemaMutexHeld
    - sqlite3NameFromToken
    - sqlite3VdbeAddOp4
    - sqlite3VdbeAddOp1
    - VdbeCoverage
    - strcmp
    - SCHEMA_TABLE
    - sqlite3LogEst
    - sqlite3TwoPartName
    - sqlite3CheckObjectName
    - sqlite3FindIndex
    - sqlite3VdbeChangeP5
    - sqlite3RenameTokenMap
    - sqlite3ErrorMsg
    - sqlite3CodeVerifySchema
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3StartTable(\n  Parse *pParse,   /* Parser context
      */\n  Token *pName1,   /* First part of the name of the table or view */\n  Token
      *pName2,   /* Second part of the name of the table or view */\n  int isTemp,
      \     /* True if this is a TEMP table */\n  int isView,      /* True if this
      is a VIEW */\n  int isVirtual,   /* True if this is a VIRTUAL table */\n  int
      noErr        /* Do nothing if table already exists */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_strnicmp
      Src: /src/nss/lib/sqlite/sqlite3.c:108364,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - pTab
    - pCol
    argTypes:
    - Table*
    - Column*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108369
      start: 108363
    functionDepth: 1
    functionLinenumber: 108363
    functionLinenumberEnd: 108369
    functionName: sqlite3ColumnPropertiesFromName
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_strnicmp
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ColumnPropertiesFromName(Table *pTab, Column
      *pCol)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:108390,1
    - Dst: sqlite3DbMallocRaw
      Src: /src/nss/lib/sqlite/sqlite3.c:108393,1
    - Dst: sqlite3RenameTokenMap
      Src: /src/nss/lib/sqlite/sqlite3.c:108395,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:108396,1
    - Dst: sqlite3Dequote
      Src: /src/nss/lib/sqlite/sqlite3.c:108398,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:108400,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:108401,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:108402,1
    - Dst: sqlite3DbRealloc
      Src: /src/nss/lib/sqlite/sqlite3.c:108408,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:108410,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:108416,1
    - Dst: sqlite3ColumnPropertiesFromName
      Src: /src/nss/lib/sqlite/sqlite3.c:108418,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:108431,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:108432,1
    - Dst: sqlite3Dequote
      Src: /src/nss/lib/sqlite/sqlite3.c:108434,1
    - Dst: sqlite3AffinityType
      Src: /src/nss/lib/sqlite/sqlite3.c:108435,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 3
    argNames:
    - pParse
    - pName
    - pType
    argTypes:
    - Parse*
    - Token*
    - Token*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108440
      start: 108381
    functionDepth: 10
    functionLinenumber: 108381
    functionLinenumberEnd: 108440
    functionName: sqlite3AddColumn
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ColumnPropertiesFromName
    - memcpy
    - sqlite3DbFree
    - sqlite3Dequote
    - memset
    - sqlite3DbRealloc
    - sqlite3RenameTokenMap
    - sqlite3ErrorMsg
    - sqlite3Strlen30
    - sqlite3DbMallocRaw
    - sqlite3AffinityType
    - sqlite3_stricmp
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3AddColumn(Parse *pParse, Token *pName, Token
      *pType)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NEVER
      Src: /src/nss/lib/sqlite/sqlite3.c:108452,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:108462,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - pParse
    - onError
    argTypes:
    - Parse*
    - int
    assertStmts:
    - condition: ( pIdx->nKeyCol==1 && pIdx->onError!=OE_None )
      pos:
        line_end: 108461
        line_start: 108461
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 108468
      start: 108448
    functionDepth: 1
    functionLinenumber: 108448
    functionLinenumberEnd: 108468
    functionName: sqlite3AddNotNull
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - NEVER
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3AddNotNull(Parse *pParse, int onError)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:108500,1
    - Dst: sqlite3Isdigit
      Src: /src/nss/lib/sqlite/sqlite3.c:108539,1
    - Dst: sqlite3GetInt32
      Src: /src/nss/lib/sqlite/sqlite3.c:108541,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 57
    argCount: 2
    argNames:
    - zIn
    - pCol
    argTypes:
    - char*
    - Column*
    assertStmts:
    - condition: ( zIn!=0 )
      pos:
        line_end: 108499
        line_start: 108499
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 108560
      start: 108495
    functionDepth: 2
    functionLinenumber: 108495
    functionLinenumberEnd: 108560
    functionName: sqlite3AffinityType
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 4
    functionsReached:
    - assert
    - sqlite3GetInt32
    - sqlite3Isdigit
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3AffinityType(const char *zIn, Column *pCol)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprIsConstantOrFunction
      Src: /src/nss/lib/sqlite/sqlite3.c:108584,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:108585,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:108592,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:108593,1
    - Dst: sqlite3DbSpanDup
      Src: /src/nss/lib/sqlite/sqlite3.c:108595,1
    - Dst: sqlite3ExprDup
      Src: /src/nss/lib/sqlite/sqlite3.c:108598,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:108599,1
    - Dst: sqlite3RenameExprUnmap
      Src: /src/nss/lib/sqlite/sqlite3.c:108603,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:108605,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 4
    argNames:
    - pParse
    - pExpr
    - zStart
    - zEnd
    argTypes:
    - Parse*
    - Expr*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108606
      start: 108572
    functionDepth: 10
    functionLinenumber: 108572
    functionLinenumberEnd: 108606
    functionName: sqlite3AddDefaultValue
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbFree
    - sqlite3DbSpanDup
    - sqlite3ExprDelete
    - memset
    - sqlite3ExprIsConstantOrFunction
    - sqlite3ErrorMsg
    - sqlite3ExprDup
    - sqlite3RenameExprUnmap
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3AddDefaultValue(\n  Parse *pParse,           /*
      Parsing context */\n  Expr *pExpr,             /* The parsed expression of the
      default value */\n  const char *zStart,      /* Start of the default value text
      */\n  const char *zEnd         /* First character past end of defaut value text
      */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108630
      start: 108624
    functionDepth: 0
    functionLinenumber: 108624
    functionLinenumberEnd: 108630
    functionName: sqlite3StringToId
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sqlite3StringToId(Expr *p)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:108663,1
    - Dst: sqlite3ExprSkipCollate
      Src: /src/nss/lib/sqlite/sqlite3.c:108676,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:108677,1
    - Dst: sqlite3StringToId
      Src: /src/nss/lib/sqlite/sqlite3.c:108678,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:108682,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:108693,1
    - Dst: sqlite3ColumnType
      Src: /src/nss/lib/sqlite/sqlite3.c:108693,1
    - Dst: sqlite3ExprSkipCollate
      Src: /src/nss/lib/sqlite/sqlite3.c:108697,1
    - Dst: sqlite3RenameTokenRemap
      Src: /src/nss/lib/sqlite/sqlite3.c:108698,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:108702,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:108707,1
    - Dst: sqlite3CreateIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:108711,1
    - Dst: sqlite3ExprListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:108717,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 52
    argCount: 5
    argNames:
    - pParse
    - pList
    - onError
    - autoInc
    - sortOrder
    argTypes:
    - Parse*
    - ExprList*
    - int
    - int
    - int
    assertStmts:
    - condition: ( pCExpr!=0 )
      pos:
        line_end: 108676
        line_start: 108676
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( autoInc==0 || autoInc==1 )
      pos:
        line_end: 108701
        line_start: 108701
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 108719
      start: 108650
    functionDepth: 10
    functionLinenumber: 108650
    functionLinenumberEnd: 108719
    functionName: sqlite3AddPrimaryKey
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3RenameTokenRemap
    - sqlite3StrICmp
    - sqlite3CreateIndex
    - sqlite3ExprListDelete
    - sqlite3ExprSkipCollate
    - assert
    - sqlite3ErrorMsg
    - sqlite3ColumnType
    - sqlite3StringToId
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3AddPrimaryKey(\n  Parse *pParse,    /* Parsing
      context */\n  ExprList *pList,  /* List of field names to be indexed */\n  int
      onError,      /* What to do with a uniqueness conflict */\n  int autoInc,      /*
      True if the AUTOINCREMENT keyword is present */\n  int sortOrder     /* SQLITE_SO_ASC
      or SQLITE_SO_DESC */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeIsReadonly
      Src: /src/nss/lib/sqlite/sqlite3.c:108732,1
    - Dst: sqlite3ExprListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:108734,1
    - Dst: sqlite3ExprListSetName
      Src: /src/nss/lib/sqlite/sqlite3.c:108736,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:108741,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - pParse
    - pCheckExpr
    argTypes:
    - Parse*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108743
      start: 108724
    functionDepth: 9
    functionLinenumber: 108724
    functionLinenumberEnd: 108743
    functionName: sqlite3AddCheckConstraint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ExprListSetName
    - sqlite3ExprDelete
    - sqlite3ExprListAppend
    - sqlite3BtreeIsReadonly
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3AddCheckConstraint(\n  Parse *pParse,    /*
      Parsing context */\n  Expr *pCheckExpr  /* The check expression */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3NameFromToken
      Src: /src/nss/lib/sqlite/sqlite3.c:108758,1
    - Dst: sqlite3LocateCollSeq
      Src: /src/nss/lib/sqlite/sqlite3.c:108761,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:108763,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:108771,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:108777,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - pParse
    - pToken
    argTypes:
    - Parse*
    - Token*
    assertStmts:
    - condition: ( pIdx->nKeyCol==1 )
      pos:
        line_end: 108770
        line_start: 108770
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 108779
      start: 108749
    functionDepth: 9
    functionLinenumber: 108749
    functionLinenumberEnd: 108779
    functionName: sqlite3AddCollateType
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3NameFromToken
    - sqlite3DbFree
    - assert
    - sqlite3LocateCollSeq
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3AddCollateType(Parse *pParse, Token *pToken)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ENC
      Src: /src/nss/lib/sqlite/sqlite3.c:108803,1
    - Dst: sqlite3FindCollSeq
      Src: /src/nss/lib/sqlite/sqlite3.c:108807,1
    - Dst: sqlite3GetCollSeq
      Src: /src/nss/lib/sqlite/sqlite3.c:108809,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - pParse
    - zName
    argTypes:
    - Parse*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108813
      start: 108801
    functionDepth: 1
    functionLinenumber: 108801
    functionLinenumberEnd: 108813
    functionName: sqlite3LocateCollSeq
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3FindCollSeq
    - sqlite3GetCollSeq
    - ENC
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3LocateCollSeq(Parse *pParse, const char *zName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:108838,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/nss/lib/sqlite/sqlite3.c:108838,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:108839,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pParse
    - iDb
    argTypes:
    - Parse*
    - int
    assertStmts:
    - condition: ( sqlite3SchemaMutexHeld(db, iDb, 0) )
      pos:
        line_end: 108837
        line_start: 108837
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 108841
      start: 108835
    functionDepth: 11
    functionLinenumber: 108835
    functionLinenumberEnd: 108841
    functionName: sqlite3ChangeCookie
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - sqlite3VdbeAddOp3
    - sqlite3SchemaMutexHeld
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ChangeCookie(Parse *pParse, int iDb)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - z
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108857
      start: 108851
    functionDepth: 0
    functionLinenumber: 108851
    functionLinenumberEnd: 108857
    functionName: identLength
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int identLength(const char *z)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Isalnum
      Src: /src/nss/lib/sqlite/sqlite3.c:108878,1
    - Dst: sqlite3Isdigit
      Src: /src/nss/lib/sqlite/sqlite3.c:108880,1
    - Dst: sqlite3KeywordCode
      Src: /src/nss/lib/sqlite/sqlite3.c:108881,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 3
    argNames:
    - z
    - pIdx
    - zSignedIdent
    argTypes:
    - char*
    - int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108893
      start: 108872
    functionDepth: 1
    functionLinenumber: 108872
    functionLinenumberEnd: 108893
    functionName: identPut
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Isdigit
    - sqlite3KeywordCode
    - sqlite3Isalnum
    linkageType: ''
    returnType: void
    signature: void identPut(char *z, int *pIdx, char *zSignedIdent)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: identLength
      Src: /src/nss/lib/sqlite/sqlite3.c:108907,1
    - Dst: identLength
      Src: /src/nss/lib/sqlite/sqlite3.c:108909,1
    - Dst: sqlite3DbMallocRaw
      Src: /src/nss/lib/sqlite/sqlite3.c:108920,1
    - Dst: sqlite3OomFault
      Src: /src/nss/lib/sqlite/sqlite3.c:108922,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:108925,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:108926,1
    - Dst: identPut
      Src: /src/nss/lib/sqlite/sqlite3.c:108927,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:108940,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:108941,1
    - Dst: identPut
      Src: /src/nss/lib/sqlite/sqlite3.c:108943,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:108944,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:108945,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:108945,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:108946,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:108947,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:108948,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:108949,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:108950,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:108953,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:108954,1
    - Dst: sqlite3AffinityType
      Src: /src/nss/lib/sqlite/sqlite3.c:108955,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:108956,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:108958,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:108960,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 46
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - Table*
    assertStmts:
    - condition: ( pCol->affinity-SQLITE_AFF_BLOB < ArraySize(azType) )
      pos:
        line_end: 108944
        line_start: 108944
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( k<=n )
      pos:
        line_end: 108957
        line_start: 108957
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCol->affinity-SQLITE_AFF_BLOB >= 0 )
      pos:
        line_end: 108943
        line_start: 108943
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( pCol->affinity==SQLITE_AFF_BLOB \n            || pCol->affinity==sqlite3AffinityType(zType,
        0) )"
      pos:
        line_end: 108954
        line_start: 108953
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 108962
      start: 108900
    functionDepth: 10
    functionLinenumber: 108900
    functionLinenumberEnd: 108962
    functionName: createTableStmt
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ArraySize
    - sqlite3OomFault
    - assert
    - sqlite3Strlen30
    - testcase
    - sqlite3DbMallocRaw
    - sqlite3AffinityType
    - identPut
    - identLength
    - sqlite3_snprintf
    linkageType: ''
    returnType: char
    signature: char *createTableStmt(sqlite3 *db, Table *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:108972,1
    - Dst: sqlite3DbMallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:108974,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:108976,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:108979,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:108982,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - db
    - pIdx
    - N
    argTypes:
    - sqlite3*
    - Index*
    - int
    assertStmts:
    - condition: ( pIdx->isResized==0 )
      pos:
        line_end: 108971
        line_start: 108971
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 108987
      start: 108968
    functionDepth: 2
    functionLinenumber: 108968
    functionLinenumberEnd: 108987
    functionName: resizeIndexObject
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - memcpy
    - sqlite3DbMallocZero
    linkageType: ''
    returnType: int
    signature: int resizeIndexObject(sqlite3 *db, Index *pIdx, int N)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3LogEst
      Src: /src/nss/lib/sqlite/sqlite3.c:109000,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - pTab
    argTypes:
    - Table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109001
      start: 108992
    functionDepth: 1
    functionLinenumber: 108992
    functionLinenumberEnd: 109001
    functionName: estimateTableWidth
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3LogEst
    linkageType: ''
    returnType: void
    signature: void estimateTableWidth(Table *pTab)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:109012,1
    - Dst: sqlite3LogEst
      Src: /src/nss/lib/sqlite/sqlite3.c:109015,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pIdx
    argTypes:
    - Index*
    assertStmts:
    - condition: ( x<pIdx->pTable->nCol )
      pos:
        line_end: 109011
        line_start: 109011
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 109016
      start: 109006
    functionDepth: 1
    functionLinenumber: 109006
    functionLinenumberEnd: 109016
    functionName: estimateIndexWidth
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3LogEst
    linkageType: ''
    returnType: void
    signature: void estimateIndexWidth(Index *pIdx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:109024,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - aiCol
    - nCol
    - x
    argTypes:
    - i16*
    - int
    - int
    assertStmts:
    - condition: ( aiCol[0]>=0 )
      pos:
        line_end: 109023
        line_start: 109023
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 109030
      start: 109022
    functionDepth: 0
    functionLinenumber: 109022
    functionLinenumberEnd: 109030
    functionName: hasColumn
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int hasColumn(const i16 *aiCol, int nCol, int x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:109047,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:109048,1
    - Dst: MAX
      Src: /src/nss/lib/sqlite/sqlite3.c:109048,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:109049,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:109050,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:109051,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:109052,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:109054,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:109056,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:109058,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - pIdx
    - nKey
    - pPk
    - iCol
    argTypes:
    - Index*
    - int
    - Index*
    - int
    assertStmts:
    - condition: ( nKey<=pIdx->nColumn )
      pos:
        line_end: 109046
        line_start: 109046
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iCol<MAX(pPk->nColumn,pPk->nKeyCol) )
      pos:
        line_end: 109047
        line_start: 109047
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPk->idxType==SQLITE_IDXTYPE_PRIMARYKEY )
      pos:
        line_end: 109048
        line_start: 109048
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPk->pTable->tabFlags & TF_WithoutRowid )
      pos:
        line_end: 109049
        line_start: 109049
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPk->pTable==pIdx->pTable )
      pos:
        line_end: 109050
        line_start: 109050
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( j!=XN_ROWID && j!=XN_EXPR )
      pos:
        line_end: 109053
        line_start: 109053
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIdx->aiColumn[i]>=0 || j>=0 )
      pos:
        line_end: 109055
        line_start: 109055
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 109064
      start: 109045
    functionDepth: 1
    functionLinenumber: 109045
    functionLinenumberEnd: 109064
    functionName: isDupColumn
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - MAX
    - testcase
    - sqlite3StrICmp
    linkageType: ''
    returnType: int
    signature: int isDupColumn(Index *pIdx, int nKey, Index *pPk, int iCol)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:109082,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:109083,1
    - Dst: MASKBIT
      Src: /src/nss/lib/sqlite/sqlite3.c:109084,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:109088,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - pIdx
    argTypes:
    - Index*
    assertStmts:
    - condition: ( (pIdx->colNotIdxed>>63)==1 )
      pos:
        line_end: 109087
        line_start: 109087
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 109089
      start: 109076
    functionDepth: 1
    functionLinenumber: 109076
    functionLinenumberEnd: 109089
    functionName: recomputeColumnsNotIndexed
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - MASKBIT
    - testcase
    linkageType: ''
    returnType: void
    signature: void recomputeColumnsNotIndexed(Index *pIdx)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:109137,1
    - Dst: sqlite3VdbeChangeP3
      Src: /src/nss/lib/sqlite/sqlite3.c:109138,1
    - Dst: sqlite3TokenInit
      Src: /src/nss/lib/sqlite/sqlite3.c:109147,1
    - Dst: sqlite3ExprListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:109148,1
    - Dst: sqlite3ExprAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:109149,1
    - Dst: sqlite3RenameTokenRemap
      Src: /src/nss/lib/sqlite/sqlite3.c:109152,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:109155,1
    - Dst: sqlite3CreateIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:109157,1
    - Dst: sqlite3PrimaryKeyIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:109160,1
    - Dst: sqlite3PrimaryKeyIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:109162,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:109163,1
    - Dst: isDupColumn
      Src: /src/nss/lib/sqlite/sqlite3.c:109171,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:109174,1
    - Dst: hasColumn
      Src: /src/nss/lib/sqlite/sqlite3.c:109174,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:109180,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:109190,1
    - Dst: sqlite3VdbeChangeOpcode
      Src: /src/nss/lib/sqlite/sqlite3.c:109191,1
    - Dst: IsPrimaryKeyIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:109202,1
    - Dst: isDupColumn
      Src: /src/nss/lib/sqlite/sqlite3.c:109204,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:109205,1
    - Dst: hasColumn
      Src: /src/nss/lib/sqlite/sqlite3.c:109205,1
    - Dst: resizeIndexObject
      Src: /src/nss/lib/sqlite/sqlite3.c:109214,1
    - Dst: isDupColumn
      Src: /src/nss/lib/sqlite/sqlite3.c:109216,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:109217,1
    - Dst: hasColumn
      Src: /src/nss/lib/sqlite/sqlite3.c:109217,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:109227,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:109228,1
    - Dst: resizeIndexObject
      Src: /src/nss/lib/sqlite/sqlite3.c:109234,1
    - Dst: hasColumn
      Src: /src/nss/lib/sqlite/sqlite3.c:109236,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:109237,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:109243,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:109244,1
    - Dst: recomputeColumnsNotIndexed
      Src: /src/nss/lib/sqlite/sqlite3.c:109248,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 96
    argCount: 2
    argNames:
    - pParse
    - pTab
    argTypes:
    - Parse*
    - Table*
    assertStmts:
    - condition: ( pPk!=0 )
      pos:
        line_end: 109162
        line_start: 109162
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIdx->nColumn>=pIdx->nKeyCol+n )
      pos:
        line_end: 109226
        line_start: 109226
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( j<pPk->nColumn )
      pos:
        line_end: 109236
        line_start: 109236
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( v )
      pos:
        line_end: 109136
        line_start: 109136
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPk!=0 )
      pos:
        line_end: 109179
        line_start: 109179
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIdx->nColumn>=j )
      pos:
        line_end: 109227
        line_start: 109227
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPk->nColumn==j )
      pos:
        line_end: 109242
        line_start: 109242
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTab->nCol==j )
      pos:
        line_end: 109243
        line_start: 109243
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pParse->pNewTable==pTab )
      pos:
        line_end: 109154
        line_start: 109154
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( db->init.busy==0 )
      pos:
        line_end: 109189
        line_start: 109189
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 109249
      start: 109115
    functionDepth: 9
    functionLinenumber: 109115
    functionLinenumberEnd: 109249
    functionName: convertToWithoutRowidTable
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeChangeP3
    - sqlite3VdbeChangeOpcode
    - IsPrimaryKeyIndex
    - sqlite3RenameTokenRemap
    - sqlite3CreateIndex
    - sqlite3ExprAlloc
    - sqlite3PrimaryKeyIndex
    - hasColumn
    - assert
    - sqlite3TokenInit
    - recomputeColumnsNotIndexed
    - isDupColumn
    - sqlite3ExprListAppend
    - testcase
    - resizeIndexObject
    linkageType: ''
    returnType: void
    signature: void convertToWithoutRowidTable(Parse *pParse, Table *pTab)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/nss/lib/sqlite/sqlite3.c:109264,1
    - Dst: sqlite3FindTable
      Src: /src/nss/lib/sqlite/sqlite3.c:109267,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:109270,1
    - Dst: sqlite3HashFind
      Src: /src/nss/lib/sqlite/sqlite3.c:109271,1
    - Dst: Module*::pModule::xShadowName
      Src: /src/nss/lib/sqlite/sqlite3.c:109275,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - db
    - zName
    argTypes:
    - sqlite3*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109276
      start: 109259
    functionDepth: 4
    functionLinenumber: 109259
    functionLinenumberEnd: 109276
    functionName: isShadowTableName
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3FindTable
    - Module*::pModule::xShadowName
    - sqlite3HashFind
    - strrchr
    - IsVirtual
    linkageType: ''
    returnType: int
    signature: int isShadowTableName(sqlite3 *db, char *zName)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109279
      start: 109278
    functionDepth: 0
    functionLinenumber: 109278
    functionLinenumberEnd: 109279
    functionName: isShadowTableName
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: isShadowTableName(x,y)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:109316,1
    - Dst: isShadowTableName
      Src: /src/nss/lib/sqlite/sqlite3.c:109320,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:109335,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:109342,1
    - Dst: sqlite3PrimaryKeyIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:109343,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:109344,1
    - Dst: sqlite3PrimaryKeyIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:109345,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:109350,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:109355,1
    - Dst: convertToWithoutRowidTable
      Src: /src/nss/lib/sqlite/sqlite3.c:109358,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:109362,1
    - Dst: sqlite3ResolveSelfReference
      Src: /src/nss/lib/sqlite/sqlite3.c:109368,1
    - Dst: estimateTableWidth
      Src: /src/nss/lib/sqlite/sqlite3.c:109373,1
    - Dst: estimateIndexWidth
      Src: /src/nss/lib/sqlite/sqlite3.c:109375,1
    - Dst: sqlite3GetVdbe
      Src: /src/nss/lib/sqlite/sqlite3.c:109391,1
    - Dst: NEVER
      Src: /src/nss/lib/sqlite/sqlite3.c:109392,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:109394,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:109436,1
    - Dst: sqlite3MayAbort
      Src: /src/nss/lib/sqlite/sqlite3.c:109437,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:109438,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:109439,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:109441,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:109442,1
    - Dst: sqlite3ResultSetOfSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:109444,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:109446,1
    - Dst: sqlite3DeleteTable
      Src: /src/nss/lib/sqlite/sqlite3.c:109451,1
    - Dst: sqlite3SelectDestInit
      Src: /src/nss/lib/sqlite/sqlite3.c:109452,1
    - Dst: sqlite3Select
      Src: /src/nss/lib/sqlite/sqlite3.c:109453,1
    - Dst: sqlite3VdbeEndCoroutine
      Src: /src/nss/lib/sqlite/sqlite3.c:109455,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:109456,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:109457,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:109458,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:109459,1
    - Dst: sqlite3TableAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:109460,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:109461,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:109462,1
    - Dst: sqlite3VdbeGoto
      Src: /src/nss/lib/sqlite/sqlite3.c:109463,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:109464,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:109465,1
    - Dst: createTableStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:109470,1
    - Dst: sqlite3MPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:109475,1
    - Dst: sqlite3NestedParse
      Src: /src/nss/lib/sqlite/sqlite3.c:109484,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:109496,1
    - Dst: sqlite3ChangeCookie
      Src: /src/nss/lib/sqlite/sqlite3.c:109497,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:109505,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/nss/lib/sqlite/sqlite3.c:109505,1
    - Dst: sqlite3NestedParse
      Src: /src/nss/lib/sqlite/sqlite3.c:109507,1
    - Dst: sqlite3VdbeAddParseSchemaOp
      Src: /src/nss/lib/sqlite/sqlite3.c:109516,1
    - Dst: sqlite3MPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:109517,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:109526,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/nss/lib/sqlite/sqlite3.c:109526,1
    - Dst: sqlite3HashInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:109527,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:109529,1
    - Dst: sqlite3OomFault
      Src: /src/nss/lib/sqlite/sqlite3.c:109530,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:109540,1
    - Dst: sqlite3Utf8CharLen
      Src: /src/nss/lib/sqlite/sqlite3.c:109545,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 130
    argCount: 5
    argNames:
    - pParse
    - pCons
    - pEnd
    - tabOpts
    - pSelect
    argTypes:
    - Parse*
    - Token*
    - Token*
    - u8
    - Select*
    assertStmts:
    - condition: ( sqlite3SchemaMutexHeld(db, iDb, 0) )
      pos:
        line_end: 109504
        line_start: 109504
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3SchemaMutexHeld(db, iDb, 0) )
      pos:
        line_end: 109525
        line_start: 109525
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !pSelect && pCons && pEnd )
      pos:
        line_end: 109539
        line_start: 109539
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p==pOld )
      pos:
        line_end: 109528
        line_start: 109528
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( (p->tabFlags & TF_HasPrimaryKey)==0\n       || p->iPKey>=0 ||
        sqlite3PrimaryKeyIndex(p)!=0 )"
      pos:
        line_end: 109342
        line_start: 109341
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (pParse->nTab==1)
      pos:
        line_end: 109435
        line_start: 109435
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->aCol==0 )
      pos:
        line_end: 109445
        line_start: 109445
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( (p->tabFlags & TF_HasPrimaryKey)!=0\n       || (p->iPKey<0 &&
        sqlite3PrimaryKeyIndex(p)==0) )"
      pos:
        line_end: 109344
        line_start: 109343
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !db->mallocFailed )
      pos:
        line_end: 109315
        line_start: 109315
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 109549
      start: 109301
    functionDepth: 13
    functionLinenumber: 109301
    functionLinenumberEnd: 109549
    functionName: sqlite3EndTable
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3TableAffinity
    - sqlite3VdbeAddOp2
    - createTableStmt
    - sqlite3VdbeAddOp3
    - sqlite3VdbeEndCoroutine
    - sqlite3GetVdbe
    - sqlite3HashInsert
    - sqlite3VdbeGoto
    - sqlite3VdbeCurrentAddr
    - sqlite3MayAbort
    - assert
    - isShadowTableName
    - sqlite3ResolveSelfReference
    - sqlite3VdbeJumpHere
    - sqlite3VdbeAddParseSchemaOp
    - sqlite3ChangeCookie
    - sqlite3DeleteTable
    - sqlite3Utf8CharLen
    - sqlite3SchemaToIndex
    - convertToWithoutRowidTable
    - sqlite3Select
    - sqlite3DbFree
    - sqlite3PrimaryKeyIndex
    - sqlite3SchemaMutexHeld
    - sqlite3OomFault
    - sqlite3ResultSetOfSelect
    - sqlite3VdbeAddOp1
    - VdbeCoverage
    - estimateTableWidth
    - NEVER
    - sqlite3MPrintf
    - sqlite3NestedParse
    - estimateIndexWidth
    - sqlite3SelectDestInit
    - sqlite3VdbeChangeP5
    - sqlite3ErrorMsg
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3EndTable(\n  Parse *pParse,          /* Parse
      context */\n  Token *pCons,           /* The ',' token after the last column
      defn. */\n  Token *pEnd,            /* The ')' before options in the CREATE
      TABLE */\n  u8 tabOpts,             /* Extra table options. Usually 0. */\n
      \ Select *pSelect         /* Select from a \"CREATE ... AS SELECT\" */\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:109575,1
    - Dst: sqlite3StartTable
      Src: /src/nss/lib/sqlite/sqlite3.c:109578,1
    - Dst: sqlite3TwoPartName
      Src: /src/nss/lib/sqlite/sqlite3.c:109581,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:109582,1
    - Dst: sqlite3FixInit
      Src: /src/nss/lib/sqlite/sqlite3.c:109583,1
    - Dst: sqlite3FixSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:109584,1
    - Dst: sqlite3SelectDup
      Src: /src/nss/lib/sqlite/sqlite3.c:109595,1
    - Dst: sqlite3ExprListDup
      Src: /src/nss/lib/sqlite/sqlite3.c:109597,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:109604,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:109610,1
    - Dst: sqlite3Isspace
      Src: /src/nss/lib/sqlite/sqlite3.c:109612,1
    - Dst: sqlite3EndTable
      Src: /src/nss/lib/sqlite/sqlite3.c:109617,1
    - Dst: sqlite3SelectDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:109620,1
    - Dst: sqlite3RenameExprlistUnmap
      Src: /src/nss/lib/sqlite/sqlite3.c:109622,1
    - Dst: sqlite3ExprListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:109624,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 50
    argCount: 8
    argNames:
    - pParse
    - pBegin
    - pName1
    - pName2
    - pCNames
    - pSelect
    - isTemp
    - noErr
    argTypes:
    - Parse*
    - Token*
    - Token*
    - Token*
    - ExprList*
    - Select*
    - int
    - int
    assertStmts:
    - condition: ( sEnd.z[0]!=0 || sEnd.n==0 )
      pos:
        line_end: 109603
        line_start: 109603
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( n>0 )
      pos:
        line_end: 109609
        line_start: 109609
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 109626
      start: 109555
    functionDepth: 14
    functionLinenumber: 109555
    functionLinenumberEnd: 109626
    functionName: sqlite3CreateView
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3StartTable
    - sqlite3EndTable
    - sqlite3FixSelect
    - sqlite3SelectDelete
    - sqlite3RenameExprlistUnmap
    - sqlite3ExprListDup
    - sqlite3TwoPartName
    - assert
    - sqlite3ErrorMsg
    - sqlite3FixInit
    - sqlite3Isspace
    - sqlite3SchemaToIndex
    - sqlite3ExprListDelete
    - sqlite3SelectDup
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3CreateView(\n  Parse *pParse,     /* The parsing
      context */\n  Token *pBegin,     /* The CREATE token that begins the statement
      */\n  Token *pName1,     /* The token that holds the name of the view */\n  Token
      *pName2,     /* The token that holds the name of the view */\n  ExprList *pCNames,
      /* Optional list of view column names */\n  Select *pSelect,   /* A SELECT statement
      that will become the new view */\n  int isTemp,        /* TRUE for a TEMPORARY
      view */\n  int noErr          /* Suppress error messages if VIEW already exists
      */\n)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:109648,1
    - Dst: sqlite3VtabCallConnect
      Src: /src/nss/lib/sqlite/sqlite3.c:109652,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:109657,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:109682,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:109685,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:109694,1
    - Dst: sqlite3SelectDup
      Src: /src/nss/lib/sqlite/sqlite3.c:109695,1
    - Dst: sqlite3SrcListAssignCursors
      Src: /src/nss/lib/sqlite/sqlite3.c:109702,1
    - Dst: sqlite3ResultSetOfSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:109708,1
    - Dst: sqlite3ResultSetOfSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:109711,1
    - Dst: sqlite3ColumnsFromExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:109721,1
    - Dst: sqlite3SelectAddColumnTypeAndCollation
      Src: /src/nss/lib/sqlite/sqlite3.c:109727,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:109733,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:109738,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/nss/lib/sqlite/sqlite3.c:109738,1
    - Dst: sqlite3DeleteTable
      Src: /src/nss/lib/sqlite/sqlite3.c:109743,1
    - Dst: sqlite3SelectDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:109744,1
    - Dst: sqlite3DeleteColumnNames
      Src: /src/nss/lib/sqlite/sqlite3.c:109754,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 62
    argCount: 2
    argNames:
    - pParse
    - pTable
    argTypes:
    - Parse*
    - Table*
    assertStmts:
    - condition: ( pTable )
      pos:
        line_end: 109647
        line_start: 109647
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTable->nCol>=0 )
      pos:
        line_end: 109684
        line_start: 109684
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTable->pSelect )
      pos:
        line_end: 109693
        line_start: 109693
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3SchemaMutexHeld(db, 0, pTable->pSchema) )
      pos:
        line_end: 109737
        line_start: 109737
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTable->aCol==0 )
      pos:
        line_end: 109732
        line_start: 109732
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 109760
      start: 109635
    functionDepth: 12
    functionLinenumber: 109635
    functionLinenumberEnd: 109760
    functionName: sqlite3ViewGetColumnNames
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3SelectDelete
    - sqlite3SchemaMutexHeld
    - assert
    - sqlite3SrcListAssignCursors
    - IsVirtual
    - sqlite3VtabCallConnect
    - sqlite3ResultSetOfSelect
    - sqlite3ErrorMsg
    - sqlite3SelectAddColumnTypeAndCollation
    - sqlite3DeleteTable
    - sqlite3DeleteColumnNames
    - sqlite3ColumnsFromExprList
    - sqlite3SelectDup
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ViewGetColumnNames(Parse *pParse, Table *pTable)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:109769,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/nss/lib/sqlite/sqlite3.c:109769,1
    - Dst: DbHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:109770,1
    - Dst: sqliteHashFirst
      Src: /src/nss/lib/sqlite/sqlite3.c:109771,1
    - Dst: sqliteHashNext
      Src: /src/nss/lib/sqlite/sqlite3.c:109771,1
    - Dst: sqliteHashData
      Src: /src/nss/lib/sqlite/sqlite3.c:109772,1
    - Dst: sqlite3DeleteColumnNames
      Src: /src/nss/lib/sqlite/sqlite3.c:109774,1
    - Dst: DbClearProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:109779,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - db
    - idx
    argTypes:
    - sqlite3*
    - int
    assertStmts:
    - condition: ( sqlite3SchemaMutexHeld(db, idx, 0) )
      pos:
        line_end: 109768
        line_start: 109768
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 109780
      start: 109767
    functionDepth: 9
    functionLinenumber: 109767
    functionLinenumberEnd: 109780
    functionName: sqliteViewResetAll
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DeleteColumnNames
    - sqliteHashNext
    - sqlite3SchemaMutexHeld
    - assert
    - DbClearProperty
    - DbHasProperty
    - sqliteHashData
    - sqliteHashFirst
    linkageType: ''
    returnType: void
    signature: void sqliteViewResetAll(sqlite3 *db, int idx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:109808,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/nss/lib/sqlite/sqlite3.c:109808,1
    - Dst: sqliteHashFirst
      Src: /src/nss/lib/sqlite/sqlite3.c:109811,1
    - Dst: sqliteHashNext
      Src: /src/nss/lib/sqlite/sqlite3.c:109811,1
    - Dst: sqliteHashData
      Src: /src/nss/lib/sqlite/sqlite3.c:109812,1
    - Dst: sqliteHashFirst
      Src: /src/nss/lib/sqlite/sqlite3.c:109818,1
    - Dst: sqliteHashNext
      Src: /src/nss/lib/sqlite/sqlite3.c:109818,1
    - Dst: sqliteHashData
      Src: /src/nss/lib/sqlite/sqlite3.c:109819,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - db
    - iDb
    - iFrom
    - iTo
    argTypes:
    - sqlite3*
    - int
    - int
    - int
    assertStmts:
    - condition: ( sqlite3SchemaMutexHeld(db, iDb, 0) )
      pos:
        line_end: 109807
        line_start: 109807
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 109824
      start: 109803
    functionDepth: 1
    functionLinenumber: 109803
    functionLinenumberEnd: 109824
    functionName: sqlite3RootPageMoved
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqliteHashNext
    - sqlite3SchemaMutexHeld
    - assert
    - sqliteHashData
    - sqliteHashFirst
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3RootPageMoved(sqlite3 *db, int iDb, int iFrom,
      int iTo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetVdbe
      Src: /src/nss/lib/sqlite/sqlite3.c:109834,1
    - Dst: sqlite3GetTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:109835,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:109836,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:109837,1
    - Dst: sqlite3MayAbort
      Src: /src/nss/lib/sqlite/sqlite3.c:109838,1
    - Dst: sqlite3NestedParse
      Src: /src/nss/lib/sqlite/sqlite3.c:109849,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:109853,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - pParse
    - iTable
    - iDb
    argTypes:
    - Parse*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109854
      start: 109833
    functionDepth: 11
    functionLinenumber: 109833
    functionLinenumberEnd: 109854
    functionName: destroyRootPage
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3NestedParse
    - sqlite3GetTempReg
    - sqlite3VdbeAddOp3
    - sqlite3ReleaseTempReg
    - sqlite3MayAbort
    - sqlite3ErrorMsg
    - sqlite3GetVdbe
    linkageType: ''
    returnType: void
    signature: void destroyRootPage(Parse *pParse, int iTable, int iDb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:109891,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:109899,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:109900,1
    - Dst: destroyRootPage
      Src: /src/nss/lib/sqlite/sqlite3.c:109901,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 2
    argNames:
    - pParse
    - pTab
    argTypes:
    - Parse*
    - Table*
    assertStmts:
    - condition: ( pIdx->pSchema==pTab->pSchema )
      pos:
        line_end: 109890
        line_start: 109890
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iDb>=0 && iDb<pParse->db->nDb )
      pos:
        line_end: 109899
        line_start: 109899
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 109905
      start: 109862
    functionDepth: 12
    functionLinenumber: 109862
    functionLinenumberEnd: 109905
    functionName: destroyTable
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3SchemaToIndex
    - destroyRootPage
    linkageType: ''
    returnType: void
    signature: void destroyTable(Parse *pParse, Table *pTab)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:109921,1
    - Dst: sqlite3FindTable
      Src: /src/nss/lib/sqlite/sqlite3.c:109922,1
    - Dst: sqlite3NestedParse
      Src: /src/nss/lib/sqlite/sqlite3.c:109923,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - pParse
    - iDb
    - zType
    - zName
    argTypes:
    - Parse*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109929
      start: 109911
    functionDepth: 10
    functionLinenumber: 109911
    functionLinenumberEnd: 109929
    functionName: sqlite3ClearStatTables
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3FindTable
    - sqlite3NestedParse
    - sqlite3_snprintf
    linkageType: ''
    returnType: void
    signature: "void sqlite3ClearStatTables(\n  Parse *pParse,         /* The parsing
      context */\n  int iDb,               /* The database number */\n  const char
      *zType,     /* \"idx\" or \"tbl\" */\n  const char *zName      /* Name of index
      or table */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetVdbe
      Src: /src/nss/lib/sqlite/sqlite3.c:109940,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:109941,1
    - Dst: sqlite3BeginWriteOperation
      Src: /src/nss/lib/sqlite/sqlite3.c:109942,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:109945,1
    - Dst: sqlite3VdbeAddOp0
      Src: /src/nss/lib/sqlite/sqlite3.c:109946,1
    - Dst: sqlite3TriggerList
      Src: /src/nss/lib/sqlite/sqlite3.c:109954,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:109956,1
    - Dst: sqlite3DropTriggerPtr
      Src: /src/nss/lib/sqlite/sqlite3.c:109958,1
    - Dst: sqlite3NestedParse
      Src: /src/nss/lib/sqlite/sqlite3.c:109969,1
    - Dst: sqlite3NestedParse
      Src: /src/nss/lib/sqlite/sqlite3.c:109983,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:109986,1
    - Dst: destroyTable
      Src: /src/nss/lib/sqlite/sqlite3.c:109987,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:109993,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:109994,1
    - Dst: sqlite3MayAbort
      Src: /src/nss/lib/sqlite/sqlite3.c:109995,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:109997,1
    - Dst: sqlite3ChangeCookie
      Src: /src/nss/lib/sqlite/sqlite3.c:109998,1
    - Dst: sqliteViewResetAll
      Src: /src/nss/lib/sqlite/sqlite3.c:109999,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 4
    argNames:
    - pParse
    - pTab
    - iDb
    - isView
    argTypes:
    - Parse*
    - Table*
    - int
    - int
    assertStmts:
    - condition: ( v!=0 )
      pos:
        line_end: 109940
        line_start: 109940
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( pTrigger->pSchema==pTab->pSchema || \n        pTrigger->pSchema==db->aDb[1].pSchema
        )"
      pos:
        line_end: 109956
        line_start: 109955
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 110000
      start: 109934
    functionDepth: 13
    functionLinenumber: 109934
    functionLinenumberEnd: 110000
    functionName: sqlite3CodeDropTable
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3NestedParse
    - sqlite3MayAbort
    - assert
    - sqlite3VdbeAddOp4
    - destroyTable
    - sqliteViewResetAll
    - sqlite3ChangeCookie
    - sqlite3DropTriggerPtr
    - sqlite3VdbeAddOp0
    - sqlite3GetVdbe
    - sqlite3TriggerList
    - IsVirtual
    - sqlite3BeginWriteOperation
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3CodeDropTable(Parse *pParse, Table *pTab, int
      iDb, int isView)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:110015,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:110016,1
    - Dst: sqlite3ReadSchema
      Src: /src/nss/lib/sqlite/sqlite3.c:110017,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:110019,1
    - Dst: sqlite3LocateTableItem
      Src: /src/nss/lib/sqlite/sqlite3.c:110020,1
    - Dst: sqlite3CodeVerifyNamedSchema
      Src: /src/nss/lib/sqlite/sqlite3.c:110024,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:110027,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:110028,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:110033,1
    - Dst: sqlite3ViewGetColumnNames
      Src: /src/nss/lib/sqlite/sqlite3.c:110033,1
    - Dst: SCHEMA_TABLE
      Src: /src/nss/lib/sqlite/sqlite3.c:110039,1
    - Dst: sqlite3AuthCheck
      Src: /src/nss/lib/sqlite/sqlite3.c:110042,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:110052,1
    - Dst: sqlite3GetVTable
      Src: /src/nss/lib/sqlite/sqlite3.c:110054,1
    - Dst: sqlite3AuthCheck
      Src: /src/nss/lib/sqlite/sqlite3.c:110063,1
    - Dst: sqlite3AuthCheck
      Src: /src/nss/lib/sqlite/sqlite3.c:110066,1
    - Dst: sqlite3StrNICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:110071,1
    - Dst: sqlite3StrNICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:110072,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:110073,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:110082,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:110086,1
    - Dst: sqlite3GetVdbe
      Src: /src/nss/lib/sqlite/sqlite3.c:110094,1
    - Dst: sqlite3BeginWriteOperation
      Src: /src/nss/lib/sqlite/sqlite3.c:110096,1
    - Dst: sqlite3ClearStatTables
      Src: /src/nss/lib/sqlite/sqlite3.c:110098,1
    - Dst: sqlite3FkDropTable
      Src: /src/nss/lib/sqlite/sqlite3.c:110099,1
    - Dst: sqlite3CodeDropTable
      Src: /src/nss/lib/sqlite/sqlite3.c:110101,1
    - Dst: sqlite3SrcListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:110105,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 85
    argCount: 4
    argNames:
    - pParse
    - pName
    - isView
    - noErr
    argTypes:
    - Parse*
    - SrcList*
    - int
    - int
    assertStmts:
    - condition: ( pParse->nErr==0 )
      pos:
        line_end: 110014
        line_start: 110014
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( isView==0 || isView==LOCATE_VIEW )
      pos:
        line_end: 110018
        line_start: 110018
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pName->nSrc==1 )
      pos:
        line_end: 110015
        line_start: 110015
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iDb>=0 && iDb<db->nDb )
      pos:
        line_end: 110027
        line_start: 110027
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 110106
      start: 110006
    functionDepth: 14
    functionLinenumber: 110006
    functionLinenumberEnd: 110106
    functionName: sqlite3DropTable
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3AuthCheck
    - sqlite3FkDropTable
    - sqlite3ReadSchema
    - sqlite3LocateTableItem
    - sqlite3ClearStatTables
    - sqlite3CodeDropTable
    - SCHEMA_TABLE
    - assert
    - sqlite3SrcListDelete
    - sqlite3StrNICmp
    - sqlite3ViewGetColumnNames
    - sqlite3CodeVerifyNamedSchema
    - sqlite3ErrorMsg
    - sqlite3GetVTable
    - sqlite3GetVdbe
    - sqlite3SchemaToIndex
    - IsVirtual
    - sqlite3BeginWriteOperation
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3DropTable(Parse *pParse, SrcList *pName, int
      isView, int noErr)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:110141,1
    - Dst: NEVER
      Src: /src/nss/lib/sqlite/sqlite3.c:110145,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:110147,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:110154,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:110164,1
    - Dst: sqlite3DbMallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:110167,1
    - Dst: sqlite3RenameTokenMap
      Src: /src/nss/lib/sqlite/sqlite3.c:110176,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:110178,1
    - Dst: sqlite3Dequote
      Src: /src/nss/lib/sqlite/sqlite3.c:110180,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:110189,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:110195,1
    - Dst: sqlite3RenameTokenRemap
      Src: /src/nss/lib/sqlite/sqlite3.c:110201,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:110207,1
    - Dst: sqlite3RenameTokenRemap
      Src: /src/nss/lib/sqlite/sqlite3.c:110210,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:110212,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:110221,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/nss/lib/sqlite/sqlite3.c:110221,1
    - Dst: sqlite3HashInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:110222,1
    - Dst: sqlite3OomFault
      Src: /src/nss/lib/sqlite/sqlite3.c:110226,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:110230,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:110241,1
    - Dst: sqlite3ExprListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:110243,1
    - Dst: sqlite3ExprListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:110244,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 99
    argCount: 5
    argNames:
    - pParse
    - pFromCol
    - pTo
    - pToCol
    - flags
    argTypes:
    - Parse*
    - ExprList*
    - Token*
    - ExprList*
    - int
    assertStmts:
    - condition: ( pTo!=0 )
      pos:
        line_end: 110140
        line_start: 110140
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3SchemaMutexHeld(db, 0, p->pSchema) )
      pos:
        line_end: 110220
        line_start: 110220
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pNextTo->pPrevTo==0 )
      pos:
        line_end: 110229
        line_start: 110229
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 110245
      start: 110124
    functionDepth: 10
    functionLinenumber: 110124
    functionLinenumberEnd: 110245
    functionName: sqlite3CreateForeignKey
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - NEVER
    - memcpy
    - sqlite3RenameTokenRemap
    - sqlite3StrICmp
    - sqlite3DbFree
    - sqlite3Dequote
    - sqlite3SchemaMutexHeld
    - assert
    - sqlite3OomFault
    - sqlite3Strlen30
    - sqlite3ErrorMsg
    - sqlite3RenameTokenMap
    - sqlite3HashInsert
    - sqlite3ExprListDelete
    - sqlite3DbMallocZero
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3CreateForeignKey(\n  Parse *pParse,       /*
      Parsing context */\n  ExprList *pFromCol,  /* Columns in this table that point
      to other table */\n  Token *pTo,          /* Name of the other table */\n  ExprList
      *pToCol,    /* Columns in the other table */\n  int flags            /* Conflict
      resolution algorithms. */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:110259,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - pParse
    - isDeferred
    argTypes:
    - Parse*
    - int
    assertStmts:
    - condition: ( isDeferred==0 || isDeferred==1 )
      pos:
        line_end: 110258
        line_start: 110258
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 110262
      start: 110254
    functionDepth: 0
    functionLinenumber: 110254
    functionLinenumberEnd: 110262
    functionName: sqlite3DeferForeignKey
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3DeferForeignKey(Parse *pParse, int isDeferred)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SchemaToIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:110288,1
    - Dst: sqlite3AuthCheck
      Src: /src/nss/lib/sqlite/sqlite3.c:110291,1
    - Dst: sqlite3TableLock
      Src: /src/nss/lib/sqlite/sqlite3.c:110298,1
    - Dst: sqlite3GetVdbe
      Src: /src/nss/lib/sqlite/sqlite3.c:110300,1
    - Dst: sqlite3KeyInfoOfIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:110307,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:110308,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:110312,1
    - Dst: sqlite3KeyInfoRef
      Src: /src/nss/lib/sqlite/sqlite3.c:110313,1
    - Dst: sqlite3OpenTable
      Src: /src/nss/lib/sqlite/sqlite3.c:110317,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:110318,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:110318,1
    - Dst: sqlite3GetTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:110319,1
    - Dst: sqlite3MultiWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:110320,1
    - Dst: sqlite3GenerateIndexKey
      Src: /src/nss/lib/sqlite/sqlite3.c:110322,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:110323,1
    - Dst: sqlite3ResolvePartIdxLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:110324,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:110325,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:110325,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:110326,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:110327,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:110328,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:110330,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:110332,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:110332,1
    - Dst: IsUniqueIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:110333,1
    - Dst: sqlite3VdbeGoto
      Src: /src/nss/lib/sqlite/sqlite3.c:110334,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:110335,1
    - Dst: sqlite3VdbeVerifyAbortable
      Src: /src/nss/lib/sqlite/sqlite3.c:110336,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/nss/lib/sqlite/sqlite3.c:110337,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:110338,1
    - Dst: sqlite3UniqueConstraint
      Src: /src/nss/lib/sqlite/sqlite3.c:110339,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:110340,1
    - Dst: sqlite3MayAbort
      Src: /src/nss/lib/sqlite/sqlite3.c:110349,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:110350,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:110352,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:110361,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:110363,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:110364,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:110365,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:110366,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:110366,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:110367,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:110369,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:110370,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:110371,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 58
    argCount: 3
    argNames:
    - pParse
    - pIndex
    - memRootPage
    argTypes:
    - Parse*
    - Index*
    - int
    assertStmts:
    - condition: ( pKey!=0 || db->mallocFailed || pParse->nErr )
      pos:
        line_end: 110307
        line_start: 110307
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 110372
      start: 110275
    functionDepth: 13
    functionLinenumber: 110275
    functionLinenumberEnd: 110372
    functionName: sqlite3RefillIndex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - IsUniqueIndex
    - sqlite3VdbeAddOp2
    - sqlite3VdbeAddOp3
    - sqlite3GetVdbe
    - sqlite3VdbeGoto
    - sqlite3VdbeCurrentAddr
    - sqlite3GetTempReg
    - sqlite3VdbeAddOp4Int
    - sqlite3MayAbort
    - assert
    - sqlite3VdbeJumpHere
    - sqlite3KeyInfoRef
    - sqlite3SchemaToIndex
    - sqlite3AuthCheck
    - sqlite3MultiWrite
    - sqlite3VdbeAddOp4
    - sqlite3VdbeAddOp1
    - VdbeCoverage
    - sqlite3OpenTable
    - sqlite3KeyInfoOfIndex
    - sqlite3TableLock
    - sqlite3GenerateIndexKey
    - sqlite3UniqueConstraint
    - sqlite3ResolvePartIdxLabel
    - sqlite3ReleaseTempReg
    - sqlite3VdbeChangeP5
    - sqlite3VdbeVerifyAbortable
    linkageType: ''
    returnType: void
    signature: void sqlite3RefillIndex(Parse *pParse, Index *pIndex, int memRootPage)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ROUND8
      Src: /src/nss/lib/sqlite/sqlite3.c:110390,1
    - Dst: ROUND8
      Src: /src/nss/lib/sqlite/sqlite3.c:110391,1
    - Dst: ROUND8
      Src: /src/nss/lib/sqlite/sqlite3.c:110392,1
    - Dst: sqlite3DbMallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:110395,1
    - Dst: ROUND8
      Src: /src/nss/lib/sqlite/sqlite3.c:110397,1
    - Dst: ROUND8
      Src: /src/nss/lib/sqlite/sqlite3.c:110398,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 4
    argNames:
    - db
    - nCol
    - nExtra
    - ppExtra
    argTypes:
    - sqlite3*
    - i16
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110407
      start: 110381
    functionDepth: 2
    functionLinenumber: 110381
    functionLinenumberEnd: 110407
    functionName: sqlite3AllocateIndexObject
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbMallocZero
    - ROUND8
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3AllocateIndexObject(\n  sqlite3 *db,         /*
      Database connection */\n  i16 nCol,            /* Total number of columns in
      the index */\n  int nExtra,          /* Number of bytes of extra space to alloc
      */\n  char **ppExtra       /* Pointer to the \"extra\" space */\n)"
  - BBCount: 78
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ReadSchema
      Src: /src/nss/lib/sqlite/sqlite3.c:110457,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:110470,1
    - Dst: sqlite3TwoPartName
      Src: /src/nss/lib/sqlite/sqlite3.c:110471,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:110473,1
    - Dst: sqlite3SrcListLookup
      Src: /src/nss/lib/sqlite/sqlite3.c:110481,1
    - Dst: sqlite3FixInit
      Src: /src/nss/lib/sqlite/sqlite3.c:110488,1
    - Dst: sqlite3FixSrcList
      Src: /src/nss/lib/sqlite/sqlite3.c:110489,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:110492,1
    - Dst: sqlite3LocateTableItem
      Src: /src/nss/lib/sqlite/sqlite3.c:110494,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:110495,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:110498,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:110503,1
    - Dst: sqlite3PrimaryKeyIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:110503,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:110505,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:110506,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:110509,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:110513,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:110514,1
    - Dst: sqlite3StrNICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:110515,1
    - Dst: sqlite3UserAuthTable
      Src: /src/nss/lib/sqlite/sqlite3.c:110519,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:110522,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:110525,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:110530,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:110535,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:110536,1
    - Dst: sqlite3NameFromToken
      Src: /src/nss/lib/sqlite/sqlite3.c:110555,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:110557,1
    - Dst: sqlite3CheckObjectName
      Src: /src/nss/lib/sqlite/sqlite3.c:110558,1
    - Dst: sqlite3FindTable
      Src: /src/nss/lib/sqlite/sqlite3.c:110563,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:110564,1
    - Dst: sqlite3FindIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:110568,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:110570,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:110572,1
    - Dst: sqlite3CodeVerifySchema
      Src: /src/nss/lib/sqlite/sqlite3.c:110573,1
    - Dst: sqlite3MPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:110582,1
    - Dst: sqlite3AuthCheck
      Src: /src/nss/lib/sqlite/sqlite3.c:110600,1
    - Dst: SCHEMA_TABLE
      Src: /src/nss/lib/sqlite/sqlite3.c:110600,1
    - Dst: sqlite3AuthCheck
      Src: /src/nss/lib/sqlite/sqlite3.c:110605,1
    - Dst: sqlite3TokenInit
      Src: /src/nss/lib/sqlite/sqlite3.c:110619,1
    - Dst: sqlite3ExprListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:110620,1
    - Dst: sqlite3ExprAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:110621,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:110623,1
    - Dst: sqlite3ExprListSetSortOrder
      Src: /src/nss/lib/sqlite/sqlite3.c:110624,1
    - Dst: sqlite3ExprListCheckLength
      Src: /src/nss/lib/sqlite/sqlite3.c:110626,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:110635,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:110637,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:110644,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:110646,1
    - Dst: sqlite3AllocateIndexObject
      Src: /src/nss/lib/sqlite/sqlite3.c:110647,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:110652,1
    - Dst: EIGHT_BYTE_ALIGNMENT
      Src: /src/nss/lib/sqlite/sqlite3.c:110652,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:110653,1
    - Dst: EIGHT_BYTE_ALIGNMENT
      Src: /src/nss/lib/sqlite/sqlite3.c:110653,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:110656,1
    - Dst: sqlite3ResolveSelfReference
      Src: /src/nss/lib/sqlite/sqlite3.c:110664,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:110668,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/nss/lib/sqlite/sqlite3.c:110668,1
    - Dst: sqlite3StringToId
      Src: /src/nss/lib/sqlite/sqlite3.c:110697,1
    - Dst: sqlite3ResolveSelfReference
      Src: /src/nss/lib/sqlite/sqlite3.c:110698,1
    - Dst: sqlite3ExprSkipCollate
      Src: /src/nss/lib/sqlite/sqlite3.c:110700,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:110703,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:110716,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:110728,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:110729,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:110730,1
    - Dst: sqlite3LocateCollSeq
      Src: /src/nss/lib/sqlite/sqlite3.c:110738,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:110753,1
    - Dst: isDupColumn
      Src: /src/nss/lib/sqlite/sqlite3.c:110754,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:110757,1
    - Dst: hasColumn
      Src: /src/nss/lib/sqlite/sqlite3.c:110757,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:110764,1
    - Dst: sqlite3DefaultRowEst
      Src: /src/nss/lib/sqlite/sqlite3.c:110769,1
    - Dst: estimateIndexWidth
      Src: /src/nss/lib/sqlite/sqlite3.c:110770,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:110774,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:110774,1
    - Dst: sqlite3ColumnOfIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:110775,1
    - Dst: recomputeColumnsNotIndexed
      Src: /src/nss/lib/sqlite/sqlite3.c:110776,1
    - Dst: sqlite3ColumnOfIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:110781,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:110812,1
    - Dst: IsUniqueIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:110812,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:110813,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:110814,1
    - Dst: IsUniqueIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:110814,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:110820,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:110824,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:110836,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:110859,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:110862,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:110863,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/nss/lib/sqlite/sqlite3.c:110863,1
    - Dst: sqlite3IndexHasDuplicateRootPage
      Src: /src/nss/lib/sqlite/sqlite3.c:110866,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:110867,1
    - Dst: sqlite3HashInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:110872,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:110875,1
    - Dst: sqlite3OomFault
      Src: /src/nss/lib/sqlite/sqlite3.c:110876,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:110895,1
    - Dst: sqlite3GetVdbe
      Src: /src/nss/lib/sqlite/sqlite3.c:110900,1
    - Dst: sqlite3BeginWriteOperation
      Src: /src/nss/lib/sqlite/sqlite3.c:110903,1
    - Dst: sqlite3VdbeAddOp0
      Src: /src/nss/lib/sqlite/sqlite3.c:110911,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:110912,1
    - Dst: sqlite3MPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:110921,1
    - Dst: sqlite3NestedParse
      Src: /src/nss/lib/sqlite/sqlite3.c:110931,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:110939,1
    - Dst: sqlite3RefillIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:110945,1
    - Dst: sqlite3ChangeCookie
      Src: /src/nss/lib/sqlite/sqlite3.c:110946,1
    - Dst: sqlite3VdbeAddParseSchemaOp
      Src: /src/nss/lib/sqlite/sqlite3.c:110947,1
    - Dst: sqlite3MPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:110948,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:110949,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:110952,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:110978,1
    - Dst: sqlite3FreeIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:110985,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:110986,1
    - Dst: sqlite3ExprListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:110987,1
    - Dst: sqlite3SrcListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:110988,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:110989,1
    CyclomaticComplexity: 141
    EdgeCount: 141
    ICount: 378
    argCount: 11
    argNames:
    - pParse
    - pName1
    - pName2
    - pTblName
    - pList
    - onError
    - pStart
    - pPIWhere
    - sortOrder
    - ifNotExist
    - idxType
    argTypes:
    - Parse*
    - Token*
    - Token*
    - SrcList*
    - ExprList*
    - int
    - Token*
    - Expr*
    - int
    - int
    - u8
    assertStmts:
    - condition: (0)
      pos:
        line_end: 110491
        line_start: 110491
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( EIGHT_BYTE_ALIGNMENT(pIndex->aiRowLogEst) )
      pos:
        line_end: 110651
        line_start: 110651
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( EIGHT_BYTE_ALIGNMENT(pIndex->azColl) )
      pos:
        line_end: 110652
        line_start: 110652
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( IsUniqueIndex(pIdx) )
      pos:
        line_end: 110811
        line_start: 110811
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p==pIndex )
      pos:
        line_end: 110874
        line_start: 110874
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pList->nExpr==1 )
      pos:
        line_end: 110622
        line_start: 110622
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !db->init.busy )
      pos:
        line_end: 110571
        line_start: 110571
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pExpr!=0 )
      pos:
        line_end: 110634
        line_start: 110634
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pName1 && pName2 )
      pos:
        line_end: 110469
        line_start: 110469
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nExtra>=nColl )
      pos:
        line_end: 110728
        line_start: 110728
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIdx->idxType!=SQLITE_IDXTYPE_APPDEF )
      pos:
        line_end: 110812
        line_start: 110812
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIdx->aiColumn[k]>=0 )
      pos:
        line_end: 110819
        line_start: 110819
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pName==0 )
      pos:
        line_end: 110504
        line_start: 110504
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( i==pIndex->nColumn )
      pos:
        line_end: 110763
        line_start: 110763
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pParse->pNewIndex==0 )
      pos:
        line_end: 110977
        line_start: 110977
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pParse->nErr==0 )
      pos:
        line_end: 110513
        line_start: 110513
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pList->nExpr + nExtraCol <= 32767 /* Fits in i16 */ )
      pos:
        line_end: 110645
        line_start: 110645
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( j<=0x7fff )
      pos:
        line_end: 110715
        line_start: 110715
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTab!=0 )
      pos:
        line_end: 110512
        line_start: 110512
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3SchemaMutexHeld(db, iDb, 0) )
      pos:
        line_end: 110667
        line_start: 110667
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pName->z!=0 )
      pos:
        line_end: 110556
        line_start: 110556
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !IN_SPECIAL_PARSE )
      pos:
        line_end: 110861
        line_start: 110861
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pName && pName->z )
      pos:
        line_end: 110472
        line_start: 110472
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pParse->nErr==0 )
      pos:
        line_end: 110858
        line_start: 110858
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3SchemaMutexHeld(db, 0, pIndex->pSchema) )
      pos:
        line_end: 110862
        line_start: 110862
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( x>=0 )
      pos:
        line_end: 110752
        line_start: 110752
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( db->mallocFailed==0 || pTab==0 )
      pos:
        line_end: 110494
        line_start: 110494
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pStart==0 )
      pos:
        line_end: 110505
        line_start: 110505
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( HasRowid(pTab) \n      || pTab->iPKey<0 || sqlite3ColumnOfIndex(pIndex,
        pTab->iPKey)>=0 )"
      pos:
        line_end: 110774
        line_start: 110773
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( IsUniqueIndex(pIndex) )
      pos:
        line_end: 110813
        line_start: 110813
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 110990
      start: 110421
    functionDepth: 14
    functionLinenumber: 110421
    functionLinenumberEnd: 110990
    functionName: sqlite3CreateIndex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - isDupColumn
    - IsUniqueIndex
    - sqlite3ReadSchema
    - sqlite3LocateTableItem
    - sqlite3UserAuthTable
    - sqlite3VdbeAddOp2
    - sqlite3LocateCollSeq
    - sqlite3VdbeAddOp3
    - sqlite3AllocateIndexObject
    - sqlite3ExprAlloc
    - testcase
    - sqlite3HashInsert
    - sqlite3GetVdbe
    - HasRowid
    - memcpy
    - sqlite3StrICmp
    - sqlite3FindTable
    - sqlite3ExprSkipCollate
    - hasColumn
    - sqlite3ColumnOfIndex
    - assert
    - sqlite3TokenInit
    - sqlite3ResolveSelfReference
    - recomputeColumnsNotIndexed
    - sqlite3VdbeAddParseSchemaOp
    - sqlite3ChangeCookie
    - sqlite3VdbeJumpHere
    - EIGHT_BYTE_ALIGNMENT
    - sqlite3ExprListAppend
    - sqlite3SchemaToIndex
    - sqlite3IndexHasDuplicateRootPage
    - sqlite3VdbeAddOp0
    - sqlite3BeginWriteOperation
    - sqlite3AuthCheck
    - sqlite3RefillIndex
    - sqlite3SrcListLookup
    - sqlite3ExprListSetSortOrder
    - sqlite3DbFree
    - sqlite3PrimaryKeyIndex
    - sqlite3SchemaMutexHeld
    - sqlite3ExprDelete
    - sqlite3NameFromToken
    - sqlite3OomFault
    - sqlite3StrNICmp
    - sqlite3Strlen30
    - sqlite3ExprListDelete
    - sqlite3ExprListCheckLength
    - sqlite3MPrintf
    - sqlite3DefaultRowEst
    - sqlite3NestedParse
    - estimateIndexWidth
    - SCHEMA_TABLE
    - sqlite3TwoPartName
    - sqlite3CheckObjectName
    - sqlite3FixSrcList
    - sqlite3FindIndex
    - sqlite3SrcListDelete
    - sqlite3ErrorMsg
    - sqlite3FixInit
    - sqlite3CodeVerifySchema
    - sqlite3FreeIndex
    - sqlite3StringToId
    - IsVirtual
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3CreateIndex(\n  Parse *pParse,     /* All information
      about this parse */\n  Token *pName1,     /* First part of index name. May be
      NULL */\n  Token *pName2,     /* Second part of index name. May be NULL */\n
      \ SrcList *pTblName, /* Table to index. Use pParse->pNewTable if 0 */\n  ExprList
      *pList,   /* A list of columns to be indexed */\n  int onError,       /* OE_Abort,
      OE_Ignore, OE_Replace, or OE_None */\n  Token *pStart,     /* The CREATE token
      that begins this statement */\n  Expr *pPIWhere,    /* WHERE clause for partial
      indices */\n  int sortOrder,     /* Sort order of primary key when pList==NULL
      */\n  int ifNotExist,    /* Omit error if index already exists */\n  u8 idxType
      \        /* The index type */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/nss/lib/sqlite/sqlite3.c:111014,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:111014,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:111018,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:111024,1
    - Dst: sqlite3LogEst
      Src: /src/nss/lib/sqlite/sqlite3.c:111024,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:111025,1
    - Dst: sqlite3LogEst
      Src: /src/nss/lib/sqlite/sqlite3.c:111025,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:111029,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:111031,1
    - Dst: sqlite3LogEst
      Src: /src/nss/lib/sqlite/sqlite3.c:111031,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:111034,1
    - Dst: sqlite3LogEst
      Src: /src/nss/lib/sqlite/sqlite3.c:111034,1
    - Dst: IsUniqueIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:111035,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - pIdx
    argTypes:
    - Index*
    assertStmts:
    - condition: ( !pIdx->hasStat1 )
      pos:
        line_end: 111017
        line_start: 111017
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( 10==sqlite3LogEst(2) )
      pos:
        line_end: 111023
        line_start: 111023
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( 33==sqlite3LogEst(10) )
      pos:
        line_end: 111024
        line_start: 111024
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( 23==sqlite3LogEst(5) )
      pos:
        line_end: 111030
        line_start: 111030
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( 0==sqlite3LogEst(1) )
      pos:
        line_end: 111033
        line_start: 111033
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 111036
      start: 111010
    functionDepth: 1
    functionLinenumber: 111010
    functionLinenumberEnd: 111036
    functionName: sqlite3DefaultRowEst
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - IsUniqueIndex
    - memcpy
    - ArraySize
    - sqlite3LogEst
    - assert
    - MIN
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3DefaultRowEst(Index *pIdx)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:111048,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:111052,1
    - Dst: sqlite3ReadSchema
      Src: /src/nss/lib/sqlite/sqlite3.c:111053,1
    - Dst: sqlite3FindIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:111056,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:111059,1
    - Dst: sqlite3CodeVerifyNamedSchema
      Src: /src/nss/lib/sqlite/sqlite3.c:111061,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:111067,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:111071,1
    - Dst: SCHEMA_TABLE
      Src: /src/nss/lib/sqlite/sqlite3.c:111077,1
    - Dst: sqlite3AuthCheck
      Src: /src/nss/lib/sqlite/sqlite3.c:111078,1
    - Dst: sqlite3AuthCheck
      Src: /src/nss/lib/sqlite/sqlite3.c:111082,1
    - Dst: sqlite3GetVdbe
      Src: /src/nss/lib/sqlite/sqlite3.c:111089,1
    - Dst: sqlite3BeginWriteOperation
      Src: /src/nss/lib/sqlite/sqlite3.c:111091,1
    - Dst: sqlite3NestedParse
      Src: /src/nss/lib/sqlite/sqlite3.c:111092,1
    - Dst: sqlite3ClearStatTables
      Src: /src/nss/lib/sqlite/sqlite3.c:111096,1
    - Dst: sqlite3ChangeCookie
      Src: /src/nss/lib/sqlite/sqlite3.c:111097,1
    - Dst: destroyRootPage
      Src: /src/nss/lib/sqlite/sqlite3.c:111098,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:111099,1
    - Dst: sqlite3SrcListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:111103,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 51
    argCount: 3
    argNames:
    - pParse
    - pName
    - ifExists
    argTypes:
    - Parse*
    - SrcList*
    - int
    assertStmts:
    - condition: ( pParse->nErr==0 )
      pos:
        line_end: 111047
        line_start: 111047
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pName->nSrc==1 )
      pos:
        line_end: 111051
        line_start: 111051
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 111104
      start: 111042
    functionDepth: 12
    functionLinenumber: 111042
    functionLinenumberEnd: 111104
    functionName: sqlite3DropIndex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3AuthCheck
    - sqlite3NestedParse
    - sqlite3ReadSchema
    - destroyRootPage
    - sqlite3ClearStatTables
    - SCHEMA_TABLE
    - assert
    - sqlite3FindIndex
    - sqlite3VdbeAddOp4
    - sqlite3SrcListDelete
    - sqlite3ErrorMsg
    - sqlite3CodeVerifyNamedSchema
    - sqlite3ChangeCookie
    - sqlite3GetVdbe
    - sqlite3SchemaToIndex
    - sqlite3BeginWriteOperation
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3DropIndex(Parse *pParse, SrcList *pName, int
      ifExists)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbRealloc
      Src: /src/nss/lib/sqlite/sqlite3.c:111134,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:111142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - db
    - pArray
    - szEntry
    - pnEntry
    - pIdx
    argTypes:
    - sqlite3*
    - void*
    - int
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111145
      start: 111123
    functionDepth: 8
    functionLinenumber: 111123
    functionLinenumberEnd: 111145
    functionName: sqlite3ArrayAllocate
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - memset
    - sqlite3DbRealloc
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3ArrayAllocate(\n  sqlite3 *db,      /* Connection
      to notify of malloc failures */\n  void *pArray,     /* Array of objects.  Might
      be reallocated */\n  int szEntry,      /* Size of each object in the array */\n
      \ int *pnEntry,     /* Number of objects currently in use */\n  int *pIdx         /*
      Write the index of a new slot here */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbMallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:111157,1
    - Dst: sqlite3ArrayAllocate
      Src: /src/nss/lib/sqlite/sqlite3.c:111160,1
    - Dst: sqlite3IdListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:111168,1
    - Dst: sqlite3NameFromToken
      Src: /src/nss/lib/sqlite/sqlite3.c:111171,1
    - Dst: sqlite3RenameTokenMap
      Src: /src/nss/lib/sqlite/sqlite3.c:111173,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - pParse
    - pList
    - pToken
    argTypes:
    - Parse*
    - IdList*
    - Token*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111176
      start: 111153
    functionDepth: 9
    functionLinenumber: 111153
    functionLinenumberEnd: 111176
    functionName: sqlite3IdListAppend
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3IdListDelete
    - sqlite3ArrayAllocate
    - sqlite3NameFromToken
    - sqlite3RenameTokenMap
    - sqlite3DbMallocZero
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3IdListAppend(Parse *pParse, IdList *pList, Token
      *pToken)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:111185,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:111187,1
    - Dst: sqlite3DbFreeNN
      Src: /src/nss/lib/sqlite/sqlite3.c:111188,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - db
    - pList
    argTypes:
    - sqlite3*
    - IdList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111189
      start: 111181
    functionDepth: 6
    functionLinenumber: 111181
    functionLinenumberEnd: 111189
    functionName: sqlite3IdListDelete
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3DbFree
    - sqlite3DbFreeNN
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3IdListDelete(sqlite3 *db, IdList *pList)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:111199,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - pList
    - zName
    argTypes:
    - IdList*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111202
      start: 111195
    functionDepth: 1
    functionLinenumber: 111195
    functionLinenumberEnd: 111202
    functionName: sqlite3IdListIndex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3StrICmp
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3IdListIndex(IdList *pList, const char *zName)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:111245,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:111246,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:111247,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:111248,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:111257,1
    - Dst: sqlite3DbRealloc
      Src: /src/nss/lib/sqlite/sqlite3.c:111262,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:111265,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:111280,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 4
    argNames:
    - pParse
    - pSrc
    - nExtra
    - iStart
    argTypes:
    - Parse*
    - SrcList*
    - int
    - int
    assertStmts:
    - condition: ( iStart>=0 )
      pos:
        line_end: 111244
        line_start: 111244
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pSrc!=0 )
      pos:
        line_end: 111246
        line_start: 111246
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iStart<=pSrc->nSrc )
      pos:
        line_end: 111247
        line_start: 111247
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nExtra>=1 )
      pos:
        line_end: 111245
        line_start: 111245
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( db->mallocFailed )
      pos:
        line_end: 111264
        line_start: 111264
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 111287
      start: 111236
    functionDepth: 10
    functionLinenumber: 111236
    functionLinenumberEnd: 111287
    functionName: sqlite3SrcListEnlarge
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3DbRealloc
    - sqlite3ErrorMsg
    - memset
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3SrcListEnlarge(\n  Parse *pParse,     /* Parsing
      context into which errors are reported */\n  SrcList *pSrc,     /* The SrcList
      to be enlarged */\n  int nExtra,        /* Number of new slots to add to pSrc->a[]
      */\n  int iStart         /* Index in pSrc->a[] of first new slot */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:111333,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:111334,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:111335,1
    - Dst: sqlite3DbMallocRawNN
      Src: /src/nss/lib/sqlite/sqlite3.c:111338,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:111342,1
    - Dst: sqlite3SrcListEnlarge
      Src: /src/nss/lib/sqlite/sqlite3.c:111345,1
    - Dst: sqlite3SrcListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:111347,1
    - Dst: sqlite3NameFromToken
      Src: /src/nss/lib/sqlite/sqlite3.c:111358,1
    - Dst: sqlite3NameFromToken
      Src: /src/nss/lib/sqlite/sqlite3.c:111359,1
    - Dst: sqlite3NameFromToken
      Src: /src/nss/lib/sqlite/sqlite3.c:111361,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 4
    argNames:
    - pParse
    - pList
    - pTable
    - pDatabase
    argTypes:
    - Parse*
    - SrcList*
    - Token*
    - Token*
    assertStmts:
    - condition: ( pDatabase==0 || pTable!=0 )
      pos:
        line_end: 111332
        line_start: 111332
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pParse->db!=0 )
      pos:
        line_end: 111334
        line_start: 111334
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pParse!=0 )
      pos:
        line_end: 111333
        line_start: 111333
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 111365
      start: 111325
    functionDepth: 11
    functionLinenumber: 111325
    functionLinenumberEnd: 111365
    functionName: sqlite3SrcListAppend
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbMallocRawNN
    - assert
    - memset
    - sqlite3SrcListDelete
    - sqlite3NameFromToken
    - sqlite3SrcListEnlarge
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3SrcListAppend(\n  Parse *pParse,      /* Parsing
      context, in which errors are reported */\n  SrcList *pList,     /* Append to
      this SrcList. NULL creates a new SrcList */\n  Token *pTable,      /* Table
      to append */\n  Token *pDatabase    /* Database of the table */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:111373,1
    - Dst: sqlite3SrcListAssignCursors
      Src: /src/nss/lib/sqlite/sqlite3.c:111379,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - pParse
    - pList
    argTypes:
    - Parse*
    - SrcList*
    assertStmts:
    - condition: (pList || pParse->db->mallocFailed )
      pos:
        line_end: 111372
        line_start: 111372
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 111383
      start: 111370
    functionDepth: 1
    functionLinenumber: 111370
    functionLinenumberEnd: 111383
    functionName: sqlite3SrcListAssignCursors
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - assert
    - sqlite3SrcListAssignCursors
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3SrcListAssignCursors(Parse *pParse, SrcList *pList)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:111393,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:111394,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:111395,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:111396,1
    - Dst: sqlite3ExprListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:111397,1
    - Dst: sqlite3DeleteTable
      Src: /src/nss/lib/sqlite/sqlite3.c:111398,1
    - Dst: sqlite3SelectDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:111399,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:111400,1
    - Dst: sqlite3IdListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:111401,1
    - Dst: sqlite3DbFreeNN
      Src: /src/nss/lib/sqlite/sqlite3.c:111403,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - db
    - pList
    argTypes:
    - sqlite3*
    - SrcList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111404
      start: 111388
    functionDepth: 10
    functionLinenumber: 111388
    functionLinenumberEnd: 111404
    functionName: sqlite3SrcListDelete
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 7
    functionsReached:
    - sqlite3IdListDelete
    - sqlite3SelectDelete
    - sqlite3DbFree
    - sqlite3ExprDelete
    - sqlite3DbFreeNN
    - sqlite3DeleteTable
    - sqlite3ExprListDelete
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3SrcListDelete(sqlite3 *db, SrcList *pList)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:111435,1
    - Dst: sqlite3SrcListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:111440,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:111444,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:111446,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:111447,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:111449,1
    - Dst: sqlite3RenameTokenMap
      Src: /src/nss/lib/sqlite/sqlite3.c:111450,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:111452,1
    - Dst: sqlite3NameFromToken
      Src: /src/nss/lib/sqlite/sqlite3.c:111454,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:111462,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:111463,1
    - Dst: sqlite3IdListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:111464,1
    - Dst: sqlite3SelectDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:111465,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 8
    argNames:
    - pParse
    - p
    - pTable
    - pDatabase
    - pAlias
    - pSubquery
    - pOn
    - pUsing
    argTypes:
    - Parse*
    - SrcList*
    - Token*
    - Token*
    - Token*
    - Select*
    - Expr*
    - IdList*
    assertStmts:
    - condition: ( pItem->zName==0 || pDatabase!=0 )
      pos:
        line_end: 111446
        line_start: 111446
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pTable==0)==(pDatabase==0) )
      pos:
        line_end: 111445
        line_start: 111445
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->nSrc>0 )
      pos:
        line_end: 111443
        line_start: 111443
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pAlias!=0 )
      pos:
        line_end: 111451
        line_start: 111451
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p==0 )
      pos:
        line_end: 111461
        line_start: 111461
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 111467
      start: 111422
    functionDepth: 12
    functionLinenumber: 111422
    functionLinenumberEnd: 111467
    functionName: sqlite3SrcListAppendFromTerm
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ALWAYS
    - sqlite3IdListDelete
    - sqlite3SelectDelete
    - sqlite3ExprDelete
    - assert
    - sqlite3NameFromToken
    - sqlite3RenameTokenMap
    - sqlite3ErrorMsg
    - sqlite3SrcListAppend
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3SrcListAppendFromTerm(\n  Parse *pParse,          /*
      Parsing context */\n  SrcList *p,             /* The left part of the FROM clause
      already seen */\n  Token *pTable,          /* Name of the table to add to the
      FROM clause */\n  Token *pDatabase,       /* Name of the database containing
      pTable */\n  Token *pAlias,          /* The right-hand side of the AS subexpression
      */\n  Select *pSubquery,      /* A subquery used in place of a table name */\n
      \ Expr *pOn,              /* The ON clause of a join */\n  IdList *pUsing          /*
      The USING clause of a join */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:111474,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:111477,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:111479,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:111480,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:111481,1
    - Dst: sqlite3NameFromToken
      Src: /src/nss/lib/sqlite/sqlite3.c:111487,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - pParse
    - p
    - pIndexedBy
    argTypes:
    - Parse*
    - SrcList*
    - Token*
    assertStmts:
    - condition: ( pIndexedBy!=0 )
      pos:
        line_end: 111473
        line_start: 111473
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->nSrc>0 )
      pos:
        line_end: 111476
        line_start: 111476
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pItem->fg.notIndexed==0 )
      pos:
        line_end: 111478
        line_start: 111478
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pItem->fg.isIndexedBy==0 )
      pos:
        line_end: 111479
        line_start: 111479
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pItem->fg.isTabFunc==0 )
      pos:
        line_end: 111480
        line_start: 111480
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 111491
      start: 111473
    functionDepth: 9
    functionLinenumber: 111473
    functionLinenumberEnd: 111491
    functionName: sqlite3SrcListIndexedBy
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3NameFromToken
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3SrcListIndexedBy(Parse *pParse, SrcList *p, Token
      *pIndexedBy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:111500,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:111501,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:111502,1
    - Dst: sqlite3ExprListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:111506,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - pParse
    - p
    - pList
    argTypes:
    - Parse*
    - SrcList*
    - ExprList*
    assertStmts:
    - condition: ( pItem->fg.notIndexed==0 )
      pos:
        line_end: 111499
        line_start: 111499
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pItem->fg.isIndexedBy==0 )
      pos:
        line_end: 111500
        line_start: 111500
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pItem->fg.isTabFunc==0 )
      pos:
        line_end: 111501
        line_start: 111501
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 111508
      start: 111497
    functionDepth: 10
    functionLinenumber: 111497
    functionLinenumberEnd: 111508
    functionName: sqlite3SrcListFuncArgs
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3ExprListDelete
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3SrcListFuncArgs(Parse *pParse, SrcList *p, ExprList
      *pList)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - SrcList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111533
      start: 111525
    functionDepth: 0
    functionLinenumber: 111525
    functionLinenumberEnd: 111533
    functionName: sqlite3SrcListShiftJoinType
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3SrcListShiftJoinType(SrcList *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:111543,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:111545,1
    - Dst: sqlite3AuthCheck
      Src: /src/nss/lib/sqlite/sqlite3.c:111546,1
    - Dst: sqlite3GetVdbe
      Src: /src/nss/lib/sqlite/sqlite3.c:111549,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:111553,1
    - Dst: sqlite3VdbeUsesBtree
      Src: /src/nss/lib/sqlite/sqlite3.c:111554,1
    - Dst: sqlite3VdbeAddOp0
      Src: /src/nss/lib/sqlite/sqlite3.c:111557,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - pParse
    - type
    argTypes:
    - Parse*
    - int
    assertStmts:
    - condition: ( pParse!=0 )
      pos:
        line_end: 111542
        line_start: 111542
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( db!=0 )
      pos:
        line_end: 111544
        line_start: 111544
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 111558
      start: 111538
    functionDepth: 12
    functionLinenumber: 111538
    functionLinenumberEnd: 111558
    functionName: sqlite3BeginTransaction
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3AuthCheck
    - sqlite3VdbeAddOp2
    - assert
    - sqlite3VdbeAddOp0
    - sqlite3GetVdbe
    - sqlite3VdbeUsesBtree
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BeginTransaction(Parse *pParse, int type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:111569,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:111570,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:111571,1
    - Dst: sqlite3AuthCheck
      Src: /src/nss/lib/sqlite/sqlite3.c:111573,1
    - Dst: sqlite3GetVdbe
      Src: /src/nss/lib/sqlite/sqlite3.c:111577,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:111579,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - pParse
    - eType
    argTypes:
    - Parse*
    - int
    assertStmts:
    - condition: ( pParse!=0 )
      pos:
        line_end: 111568
        line_start: 111568
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( eType==TK_COMMIT || eType==TK_END || eType==TK_ROLLBACK )
      pos:
        line_end: 111570
        line_start: 111570
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pParse->db!=0 )
      pos:
        line_end: 111569
        line_start: 111569
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 111581
      start: 111565
    functionDepth: 12
    functionLinenumber: 111565
    functionLinenumberEnd: 111581
    functionName: sqlite3EndTransaction
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3AuthCheck
    - sqlite3GetVdbe
    - sqlite3VdbeAddOp2
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3EndTransaction(Parse *pParse, int eType)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3NameFromToken
      Src: /src/nss/lib/sqlite/sqlite3.c:111588,1
    - Dst: sqlite3GetVdbe
      Src: /src/nss/lib/sqlite/sqlite3.c:111590,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:111593,1
    - Dst: sqlite3AuthCheck
      Src: /src/nss/lib/sqlite/sqlite3.c:111595,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:111596,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:111599,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - pParse
    - op
    - pName
    argTypes:
    - Parse*
    - int
    - Token*
    assertStmts:
    - condition: ( !SAVEPOINT_BEGIN && SAVEPOINT_RELEASE==1 && SAVEPOINT_ROLLBACK==2
        )
      pos:
        line_end: 111592
        line_start: 111592
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 111601
      start: 111587
    functionDepth: 12
    functionLinenumber: 111587
    functionLinenumberEnd: 111601
    functionName: sqlite3Savepoint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3AuthCheck
    - sqlite3DbFree
    - sqlite3NameFromToken
    - assert
    - sqlite3VdbeAddOp4
    - sqlite3GetVdbe
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Savepoint(Parse *pParse, int op, Token *pName)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:111619,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:111621,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:111627,1
    - Dst: sqlite3BtreeSetPageSize
      Src: /src/nss/lib/sqlite/sqlite3.c:111628,1
    - Dst: sqlite3OomFault
      Src: /src/nss/lib/sqlite/sqlite3.c:111629,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - pParse
    argTypes:
    - Parse*
    assertStmts:
    - condition: ( db->aDb[1].pSchema )
      pos:
        line_end: 111626
        line_start: 111626
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 111634
      start: 111607
    functionDepth: 11
    functionLinenumber: 111607
    functionLinenumberEnd: 111634
    functionName: sqlite3OpenTempDatabase
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3BtreeOpen
    - assert
    - sqlite3OomFault
    - sqlite3ErrorMsg
    - sqlite3BtreeSetPageSize
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3OpenTempDatabase(Parse *pParse)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ParseToplevel
      Src: /src/nss/lib/sqlite/sqlite3.c:111643,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:111645,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:111646,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:111647,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:111648,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/nss/lib/sqlite/sqlite3.c:111648,1
    - Dst: DbMaskTest
      Src: /src/nss/lib/sqlite/sqlite3.c:111649,1
    - Dst: DbMaskSet
      Src: /src/nss/lib/sqlite/sqlite3.c:111650,1
    - Dst: sqlite3OpenTempDatabase
      Src: /src/nss/lib/sqlite/sqlite3.c:111652,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - pParse
    - iDb
    argTypes:
    - Parse*
    - int
    assertStmts:
    - condition: ( pParse->db->aDb[iDb].pBt!=0 || iDb==1 )
      pos:
        line_end: 111645
        line_start: 111645
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3SchemaMutexHeld(pParse->db, iDb, 0) )
      pos:
        line_end: 111647
        line_start: 111647
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iDb<SQLITE_MAX_ATTACHED+2 )
      pos:
        line_end: 111646
        line_start: 111646
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iDb>=0 && iDb<pParse->db->nDb )
      pos:
        line_end: 111644
        line_start: 111644
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 111655
      start: 111642
    functionDepth: 12
    functionLinenumber: 111642
    functionLinenumberEnd: 111655
    functionName: sqlite3CodeVerifySchema
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 3
    functionsReached:
    - sqlite3SchemaMutexHeld
    - DbMaskTest
    - assert
    - sqlite3OpenTempDatabase
    - sqlite3ParseToplevel
    - DbMaskSet
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3CodeVerifySchema(Parse *pParse, int iDb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:111666,1
    - Dst: sqlite3CodeVerifySchema
      Src: /src/nss/lib/sqlite/sqlite3.c:111667,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - pParse
    - zDb
    argTypes:
    - Parse*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111670
      start: 111661
    functionDepth: 13
    functionLinenumber: 111661
    functionLinenumberEnd: 111670
    functionName: sqlite3CodeVerifyNamedSchema
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3CodeVerifySchema
    - sqlite3StrICmp
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3CodeVerifyNamedSchema(Parse *pParse, const char
      *zDb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ParseToplevel
      Src: /src/nss/lib/sqlite/sqlite3.c:111686,1
    - Dst: sqlite3CodeVerifySchema
      Src: /src/nss/lib/sqlite/sqlite3.c:111687,1
    - Dst: DbMaskSet
      Src: /src/nss/lib/sqlite/sqlite3.c:111688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - pParse
    - setStatement
    - iDb
    argTypes:
    - Parse*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111690
      start: 111685
    functionDepth: 13
    functionLinenumber: 111685
    functionLinenumberEnd: 111690
    functionName: sqlite3BeginWriteOperation
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 7
    functionsReached:
    - sqlite3CodeVerifySchema
    - sqlite3ParseToplevel
    - DbMaskSet
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3BeginWriteOperation(Parse *pParse, int setStatement,
      int iDb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ParseToplevel
      Src: /src/nss/lib/sqlite/sqlite3.c:111700,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pParse
    argTypes:
    - Parse*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111702
      start: 111699
    functionDepth: 1
    functionLinenumber: 111699
    functionLinenumberEnd: 111702
    functionName: sqlite3MultiWrite
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3ParseToplevel
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3MultiWrite(Parse *pParse)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ParseToplevel
      Src: /src/nss/lib/sqlite/sqlite3.c:111721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pParse
    argTypes:
    - Parse*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111723
      start: 111720
    functionDepth: 1
    functionLinenumber: 111720
    functionLinenumberEnd: 111723
    functionName: sqlite3MayAbort
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 7
    functionsReached:
    - sqlite3ParseToplevel
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3MayAbort(Parse *pParse)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetVdbe
      Src: /src/nss/lib/sqlite/sqlite3.c:111738,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:111739,1
    - Dst: sqlite3MayAbort
      Src: /src/nss/lib/sqlite/sqlite3.c:111741,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:111743,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:111744,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - pParse
    - errCode
    - onError
    - p4
    - p4type
    - p5Errmsg
    argTypes:
    - Parse*
    - int
    - int
    - char*
    - i8
    - u8
    assertStmts:
    - condition: ( (errCode&0xff)==SQLITE_CONSTRAINT )
      pos:
        line_end: 111738
        line_start: 111738
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 111745
      start: 111730
    functionDepth: 12
    functionLinenumber: 111730
    functionLinenumberEnd: 111745
    functionName: sqlite3HaltConstraint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3MayAbort
    - assert
    - sqlite3VdbeAddOp4
    - sqlite3VdbeChangeP5
    - sqlite3GetVdbe
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3HaltConstraint(\n  Parse *pParse,    /* Parsing
      context */\n  int errCode,      /* extended error code */\n  int onError,      /*
      Constraint type */\n  char *p4,         /* Error message */\n  i8 p4type,        /*
      P4_STATIC or P4_TRANSIENT */\n  u8 p5Errmsg       /* P5_ErrMsg type */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3StrAccumInit
      Src: /src/nss/lib/sqlite/sqlite3.c:111760,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:111763,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:111767,1
    - Dst: sqlite3_str_append
      Src: /src/nss/lib/sqlite/sqlite3.c:111769,1
    - Dst: sqlite3_str_appendall
      Src: /src/nss/lib/sqlite/sqlite3.c:111770,1
    - Dst: sqlite3_str_append
      Src: /src/nss/lib/sqlite/sqlite3.c:111771,1
    - Dst: sqlite3_str_appendall
      Src: /src/nss/lib/sqlite/sqlite3.c:111772,1
    - Dst: sqlite3StrAccumFinish
      Src: /src/nss/lib/sqlite/sqlite3.c:111775,1
    - Dst: sqlite3HaltConstraint
      Src: /src/nss/lib/sqlite/sqlite3.c:111776,1
    - Dst: IsPrimaryKeyIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:111777,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - pParse
    - onError
    - pIdx
    argTypes:
    - Parse*
    - int
    - Index*
    assertStmts:
    - condition: ( pIdx->aiColumn[j]>=0 )
      pos:
        line_end: 111766
        line_start: 111766
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 111780
      start: 111750
    functionDepth: 13
    functionLinenumber: 111750
    functionLinenumberEnd: 111780
    functionName: sqlite3UniqueConstraint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_str_append
    - IsPrimaryKeyIndex
    - sqlite3StrAccumInit
    - sqlite3StrAccumFinish
    - assert
    - sqlite3_str_appendf
    - sqlite3HaltConstraint
    - sqlite3_str_appendall
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3UniqueConstraint(\n  Parse *pParse,    /* Parsing
      context */\n  int onError,      /* Constraint type */\n  Index *pIdx       /*
      The index that triggers the constraint */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3MPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:111794,1
    - Dst: sqlite3MPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:111798,1
    - Dst: sqlite3HaltConstraint
      Src: /src/nss/lib/sqlite/sqlite3.c:111801,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - pParse
    - onError
    - pTab
    argTypes:
    - Parse*
    - int
    - Table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111803
      start: 111786
    functionDepth: 13
    functionLinenumber: 111786
    functionLinenumberEnd: 111803
    functionName: sqlite3RowidConstraint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3HaltConstraint
    - sqlite3MPrintf
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3RowidConstraint(\n  Parse *pParse,    /* Parsing
      context */\n  int onError,      /* Conflict resolution algorithm */\n  Table
      *pTab       /* The table with the non-unique rowid */ \n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:111812,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:111815,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:111816,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - zColl
    - pIndex
    argTypes:
    - char*
    - Index*
    assertStmts:
    - condition: ( zColl!=0 )
      pos:
        line_end: 111811
        line_start: 111811
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( z!=0 || pIndex->aiColumn[i]<0 )
      pos:
        line_end: 111814
        line_start: 111814
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 111821
      start: 111810
    functionDepth: 1
    functionLinenumber: 111810
    functionLinenumberEnd: 111821
    functionName: collationMatch
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3StrICmp
    linkageType: ''
    returnType: int
    signature: int collationMatch(const char *zColl, Index *pIndex)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:111830,1
    - Dst: collationMatch
      Src: /src/nss/lib/sqlite/sqlite3.c:111834,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:111835,1
    - Dst: sqlite3BeginWriteOperation
      Src: /src/nss/lib/sqlite/sqlite3.c:111836,1
    - Dst: sqlite3RefillIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:111837,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - pParse
    - pTab
    - zColl
    argTypes:
    - Parse*
    - Table*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111841
      start: 111829
    functionDepth: 14
    functionLinenumber: 111829
    functionLinenumberEnd: 111841
    functionName: reindexTable
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - collationMatch
    - sqlite3SchemaToIndex
    - sqlite3RefillIndex
    - IsVirtual
    - sqlite3BeginWriteOperation
    linkageType: ''
    returnType: void
    signature: void reindexTable(Parse *pParse, Table *pTab, char const *zColl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:111857,1
    - Dst: sqlite3BtreeHoldsAllMutexes
      Src: /src/nss/lib/sqlite/sqlite3.c:111857,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:111859,1
    - Dst: sqliteHashFirst
      Src: /src/nss/lib/sqlite/sqlite3.c:111860,1
    - Dst: sqliteHashNext
      Src: /src/nss/lib/sqlite/sqlite3.c:111860,1
    - Dst: sqliteHashData
      Src: /src/nss/lib/sqlite/sqlite3.c:111861,1
    - Dst: reindexTable
      Src: /src/nss/lib/sqlite/sqlite3.c:111862,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - pParse
    - zColl
    argTypes:
    - Parse*
    - char*
    assertStmts:
    - condition: ( sqlite3BtreeHoldsAllMutexes(db) )
      pos:
        line_end: 111856
        line_start: 111856
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pDb!=0 )
      pos:
        line_end: 111858
        line_start: 111858
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 111865
      start: 111850
    functionDepth: 15
    functionLinenumber: 111850
    functionLinenumberEnd: 111865
    functionName: reindexDatabases
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqliteHashNext
    - assert
    - sqlite3BtreeHoldsAllMutexes
    - sqliteHashData
    - sqliteHashFirst
    - reindexTable
    linkageType: ''
    returnType: void
    signature: void reindexDatabases(Parse *pParse, char const *zColl)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ReadSchema
      Src: /src/nss/lib/sqlite/sqlite3.c:111894,1
    - Dst: reindexDatabases
      Src: /src/nss/lib/sqlite/sqlite3.c:111899,1
    - Dst: NEVER
      Src: /src/nss/lib/sqlite/sqlite3.c:111901,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:111903,1
    - Dst: sqlite3NameFromToken
      Src: /src/nss/lib/sqlite/sqlite3.c:111904,1
    - Dst: sqlite3FindCollSeq
      Src: /src/nss/lib/sqlite/sqlite3.c:111906,1
    - Dst: ENC
      Src: /src/nss/lib/sqlite/sqlite3.c:111906,1
    - Dst: reindexDatabases
      Src: /src/nss/lib/sqlite/sqlite3.c:111908,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:111909,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:111912,1
    - Dst: sqlite3TwoPartName
      Src: /src/nss/lib/sqlite/sqlite3.c:111914,1
    - Dst: sqlite3NameFromToken
      Src: /src/nss/lib/sqlite/sqlite3.c:111916,1
    - Dst: sqlite3FindTable
      Src: /src/nss/lib/sqlite/sqlite3.c:111919,1
    - Dst: reindexTable
      Src: /src/nss/lib/sqlite/sqlite3.c:111921,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:111922,1
    - Dst: sqlite3FindIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:111925,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:111926,1
    - Dst: sqlite3BeginWriteOperation
      Src: /src/nss/lib/sqlite/sqlite3.c:111928,1
    - Dst: sqlite3RefillIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:111929,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:111932,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 3
    argNames:
    - pParse
    - pName1
    - pName2
    argTypes:
    - Parse*
    - Token*
    - Token*
    assertStmts:
    - condition: ( pName1->z )
      pos:
        line_end: 111902
        line_start: 111902
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 111933
      start: 111882
    functionDepth: 16
    functionLinenumber: 111882
    functionLinenumberEnd: 111933
    functionName: sqlite3Reindex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - NEVER
    - sqlite3ReadSchema
    - reindexDatabases
    - sqlite3DbFree
    - sqlite3FindTable
    - sqlite3TwoPartName
    - assert
    - sqlite3NameFromToken
    - sqlite3FindIndex
    - sqlite3ErrorMsg
    - sqlite3FindCollSeq
    - ENC
    - sqlite3RefillIndex
    - reindexTable
    - sqlite3BeginWriteOperation
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Reindex(Parse *pParse, Token *pName1, Token *pName2)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3KeyInfoAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:111949,1
    - Dst: sqlite3KeyInfoAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:111951,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:111954,1
    - Dst: sqlite3KeyInfoIsWriteable
      Src: /src/nss/lib/sqlite/sqlite3.c:111954,1
    - Dst: sqlite3LocateCollSeq
      Src: /src/nss/lib/sqlite/sqlite3.c:111958,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:111962,1
    - Dst: sqlite3KeyInfoUnref
      Src: /src/nss/lib/sqlite/sqlite3.c:111974,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - pParse
    - pIdx
    argTypes:
    - Parse*
    - Index*
    assertStmts:
    - condition: ( sqlite3KeyInfoIsWriteable(pKey) )
      pos:
        line_end: 111953
        line_start: 111953
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pParse->rc==SQLITE_ERROR_MISSING_COLLSEQ )
      pos:
        line_end: 111961
        line_start: 111961
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 111979
      start: 111942
    functionDepth: 2
    functionLinenumber: 111942
    functionLinenumberEnd: 111979
    functionName: sqlite3KeyInfoOfIndex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 3
    functionsReached:
    - sqlite3KeyInfoAlloc
    - sqlite3LocateCollSeq
    - sqlite3KeyInfoUnref
    - assert
    - sqlite3KeyInfoIsWriteable
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3KeyInfoOfIndex(Parse *pParse, Index *pIdx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3NameFromToken
      Src: /src/nss/lib/sqlite/sqlite3.c:111999,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:112003,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:112004,1
    - Dst: sqlite3DbRealloc
      Src: /src/nss/lib/sqlite/sqlite3.c:112011,1
    - Dst: sqlite3DbMallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:112013,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:112015,1
    - Dst: sqlite3ExprListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:112018,1
    - Dst: sqlite3SelectDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:112019,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:112020,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 5
    argNames:
    - pParse
    - pWith
    - pName
    - pArglist
    - pQuery
    argTypes:
    - Parse*
    - With*
    - Token*
    - ExprList*
    - Select*
    assertStmts:
    - condition: ( (pNew!=0 && zName!=0) || db->mallocFailed )
      pos:
        line_end: 112014
        line_start: 112014
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 112031
      start: 111986
    functionDepth: 10
    functionLinenumber: 111986
    functionLinenumberEnd: 112031
    functionName: sqlite3WithAdd
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3SelectDelete
    - sqlite3StrICmp
    - sqlite3DbFree
    - sqlite3NameFromToken
    - assert
    - sqlite3ErrorMsg
    - sqlite3DbRealloc
    - sqlite3ExprListDelete
    - sqlite3DbMallocZero
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3WithAdd(\n  Parse *pParse,          /* Parsing
      context */\n  With *pWith,            /* Existing WITH clause, or NULL */\n
      \ Token *pName,           /* Name of the common-table */\n  ExprList *pArglist,
      \    /* Optional column name list for the table */\n  Select *pQuery          /*
      Query used to initialize the table */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:112041,1
    - Dst: sqlite3SelectDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:112042,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:112043,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:112045,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - db
    - pWith
    argTypes:
    - sqlite3*
    - With*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112047
      start: 112036
    functionDepth: 10
    functionLinenumber: 112036
    functionLinenumberEnd: 112047
    functionName: sqlite3WithDelete
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbFree
    - sqlite3ExprListDelete
    - sqlite3SelectDelete
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WithDelete(sqlite3 *db, With *pWith)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:112075,1
    - Dst: sqlite3DbStrDup
      Src: /src/nss/lib/sqlite/sqlite3.c:112077,1
    - Dst: sqlite3*::xCollNeeded
      Src: /src/nss/lib/sqlite/sqlite3.c:112079,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:112080,1
    - Dst: sqlite3ValueNew
      Src: /src/nss/lib/sqlite/sqlite3.c:112085,1
    - Dst: sqlite3ValueSetStr
      Src: /src/nss/lib/sqlite/sqlite3.c:112086,1
    - Dst: sqlite3ValueText
      Src: /src/nss/lib/sqlite/sqlite3.c:112087,1
    - Dst: sqlite3*::xCollNeeded16
      Src: /src/nss/lib/sqlite/sqlite3.c:112089,1
    - Dst: ENC
      Src: /src/nss/lib/sqlite/sqlite3.c:112089,1
    - Dst: sqlite3ValueFree
      Src: /src/nss/lib/sqlite/sqlite3.c:112091,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - db
    - enc
    - zName
    argTypes:
    - sqlite3*
    - int
    - char*
    assertStmts:
    - condition: ( !db->xCollNeeded || !db->xCollNeeded16 )
      pos:
        line_end: 112074
        line_start: 112074
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 112094
      start: 112074
    functionDepth: 14
    functionLinenumber: 112074
    functionLinenumberEnd: 112094
    functionName: callCollNeeded
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3*::xCollNeeded
    - sqlite3DbStrDup
    - sqlite3DbFree
    - sqlite3ValueText
    - sqlite3*::xCollNeeded16
    - assert
    - sqlite3ValueFree
    - ENC
    - sqlite3ValueSetStr
    - sqlite3ValueNew
    linkageType: ''
    returnType: void
    signature: void callCollNeeded(sqlite3 *db, int enc, const char *zName)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3FindCollSeq
      Src: /src/nss/lib/sqlite/sqlite3.c:112109,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:112111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - db
    - pColl
    argTypes:
    - sqlite3*
    - CollSeq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112117
      start: 112103
    functionDepth: 1
    functionLinenumber: 112103
    functionLinenumberEnd: 112117
    functionName: synthCollSeq
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - sqlite3FindCollSeq
    linkageType: ''
    returnType: int
    signature: int synthCollSeq(sqlite3 *db, CollSeq *pColl)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3FindCollSeq
      Src: /src/nss/lib/sqlite/sqlite3.c:112144,1
    - Dst: callCollNeeded
      Src: /src/nss/lib/sqlite/sqlite3.c:112150,1
    - Dst: sqlite3FindCollSeq
      Src: /src/nss/lib/sqlite/sqlite3.c:112151,1
    - Dst: synthCollSeq
      Src: /src/nss/lib/sqlite/sqlite3.c:112153,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:112156,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:112158,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 4
    argNames:
    - pParse
    - enc
    - pColl
    - zName
    argTypes:
    - Parse*
    - u8
    - CollSeq*
    - char*
    assertStmts:
    - condition: ( !p || p->xCmp )
      pos:
        line_end: 112155
        line_start: 112155
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 112162
      start: 112133
    functionDepth: 15
    functionLinenumber: 112133
    functionLinenumberEnd: 112162
    functionName: sqlite3GetCollSeq
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - assert
    - sqlite3ErrorMsg
    - sqlite3FindCollSeq
    - callCollNeeded
    - synthCollSeq
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3GetCollSeq(\n  Parse *pParse,        /* Parsing
      context */\n  u8 enc,               /* The desired encoding for the collating
      sequence */\n  CollSeq *pColl,       /* Collating sequence with native encoding,
      or NULL */\n  const char *zName     /* Collating sequence name */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetCollSeq
      Src: /src/nss/lib/sqlite/sqlite3.c:112179,1
    - Dst: ENC
      Src: /src/nss/lib/sqlite/sqlite3.c:112179,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:112183,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - pParse
    - pColl
    argTypes:
    - Parse*
    - CollSeq*
    assertStmts:
    - condition: ( p==pColl )
      pos:
        line_end: 112182
        line_start: 112182
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 112186
      start: 112175
    functionDepth: 16
    functionLinenumber: 112175
    functionLinenumberEnd: 112186
    functionName: sqlite3CheckCollSeq
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - sqlite3GetCollSeq
    - ENC
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3CheckCollSeq(Parse *pParse, CollSeq *pColl)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3HashFind
      Src: /src/nss/lib/sqlite/sqlite3.c:112209,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:112212,1
    - Dst: sqlite3DbMallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:112213,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:112222,1
    - Dst: sqlite3HashInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:112223,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:112229,1
    - Dst: sqlite3OomFault
      Src: /src/nss/lib/sqlite/sqlite3.c:112231,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:112232,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - db
    - zName
    - create
    argTypes:
    - sqlite3*
    - char*
    - int
    assertStmts:
    - condition: ( pDel==0 || pDel==pColl )
      pos:
        line_end: 112228
        line_start: 112228
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 112238
      start: 112203
    functionDepth: 7
    functionLinenumber: 112203
    functionLinenumberEnd: 112238
    functionName: findCollSeqEntry
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - sqlite3DbFree
    - assert
    - sqlite3OomFault
    - sqlite3HashFind
    - sqlite3Strlen30
    - sqlite3HashInsert
    - sqlite3DbMallocZero
    linkageType: ''
    returnType: CollSeq
    signature: "CollSeq *findCollSeqEntry(\n  sqlite3 *db,          /* Database connection
      */\n  const char *zName,    /* Name of the collating sequence */\n  int create
      \           /* Create a new entry if true */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: findCollSeqEntry
      Src: /src/nss/lib/sqlite/sqlite3.c:112263,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:112267,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:112268,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 4
    argNames:
    - db
    - enc
    - zName
    - create
    argTypes:
    - sqlite3*
    - u8
    - char*
    - int
    assertStmts:
    - condition: ( enc>=SQLITE_UTF8 && enc<=SQLITE_UTF16BE )
      pos:
        line_end: 112267
        line_start: 112267
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( SQLITE_UTF8==1 && SQLITE_UTF16LE==2 && SQLITE_UTF16BE==3 )
      pos:
        line_end: 112266
        line_start: 112266
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 112271
      start: 112255
    functionDepth: 8
    functionLinenumber: 112255
    functionLinenumberEnd: 112271
    functionName: sqlite3FindCollSeq
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 5
    functionsReached:
    - assert
    - findCollSeqEntry
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3FindCollSeq(\n  sqlite3 *db,\n  u8 enc,\n  const
      char *zName,\n  int create\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - p
    - nArg
    - enc
    argTypes:
    - FuncDef*
    - int
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112331
      start: 112302
    functionDepth: 0
    functionLinenumber: 112302
    functionLinenumberEnd: 112331
    functionName: matchQuality
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int matchQuality(\n  FuncDef *p,     /* The function we are evaluating
      for match quality */\n  int nArg,       /* Desired number of arguments.  (-1)==any
      */\n  u8 enc          /* Desired text encoding */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:112343,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - h
    - zFunc
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112348
      start: 112337
    functionDepth: 1
    functionLinenumber: 112337
    functionLinenumberEnd: 112348
    functionName: sqlite3FunctionSearch
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3StrICmp
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3FunctionSearch(\n  int h,               /*
      Hash of the name */\n  const char *zFunc    /* Name of function */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:112361,1
    - Dst: SQLITE_FUNC_HASH
      Src: /src/nss/lib/sqlite/sqlite3.c:112362,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:112363,1
    - Dst: sqlite3FunctionSearch
      Src: /src/nss/lib/sqlite/sqlite3.c:112364,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:112366,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - aDef
    - nDef
    argTypes:
    - FuncDef*
    - int
    assertStmts:
    - condition: ( pOther!=&aDef[i] && pOther->pNext!=&aDef[i] )
      pos:
        line_end: 112365
        line_start: 112365
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( zName[0]>='a' && zName[0]<='z' )
      pos:
        line_end: 112362
        line_start: 112362
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 112375
      start: 112353
    functionDepth: 2
    functionLinenumber: 112353
    functionLinenumberEnd: 112375
    functionName: sqlite3InsertBuiltinFuncs
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 3
    functionsReached:
    - assert
    - sqlite3FunctionSearch
    - sqlite3Strlen30
    - SQLITE_FUNC_HASH
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3InsertBuiltinFuncs(\n  FuncDef *aDef,      /*
      List of global functions to be inserted */\n  int nDef            /* Length
      of the apDef[] list */\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:112411,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:112412,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:112413,1
    - Dst: sqlite3HashFind
      Src: /src/nss/lib/sqlite/sqlite3.c:112417,1
    - Dst: matchQuality
      Src: /src/nss/lib/sqlite/sqlite3.c:112419,1
    - Dst: SQLITE_FUNC_HASH
      Src: /src/nss/lib/sqlite/sqlite3.c:112441,1
    - Dst: sqlite3FunctionSearch
      Src: /src/nss/lib/sqlite/sqlite3.c:112442,1
    - Dst: matchQuality
      Src: /src/nss/lib/sqlite/sqlite3.c:112444,1
    - Dst: sqlite3DbMallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:112458,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:112464,1
    - Dst: sqlite3HashInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:112466,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:112468,1
    - Dst: sqlite3OomFault
      Src: /src/nss/lib/sqlite/sqlite3.c:112469,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 44
    argCount: 5
    argNames:
    - db
    - zName
    - nArg
    - enc
    - createFlag
    argTypes:
    - sqlite3*
    - char*
    - int
    - u8
    - u8
    assertStmts:
    - condition: ( nArg>=(-2) )
      pos:
        line_end: 112410
        line_start: 112410
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nArg>=(-1) || createFlag==0 )
      pos:
        line_end: 112411
        line_start: 112411
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 112480
      start: 112398
    functionDepth: 7
    functionLinenumber: 112398
    functionLinenumberEnd: 112480
    functionName: sqlite3FindFunction
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 4
    functionsReached:
    - memcpy
    - sqlite3DbFree
    - sqlite3FunctionSearch
    - assert
    - sqlite3OomFault
    - sqlite3HashFind
    - sqlite3Strlen30
    - matchQuality
    - SQLITE_FUNC_HASH
    - sqlite3HashInsert
    - sqlite3DbMallocZero
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3FindFunction(\n  sqlite3 *db,       /* An open
      database */\n  const char *zName, /* Name of the function.  zero-terminated
      */\n  int nArg,          /* Number of arguments.  -1 means any number */\n  u8
      enc,            /* Preferred text encoding */\n  u8 createFlag      /* Create
      new entry if true and does not otherwise exist */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3HashInit
      Src: /src/nss/lib/sqlite/sqlite3.c:112498,1
    - Dst: sqlite3HashClear
      Src: /src/nss/lib/sqlite/sqlite3.c:112499,1
    - Dst: sqliteHashFirst
      Src: /src/nss/lib/sqlite/sqlite3.c:112500,1
    - Dst: sqliteHashNext
      Src: /src/nss/lib/sqlite/sqlite3.c:112500,1
    - Dst: sqlite3DeleteTrigger
      Src: /src/nss/lib/sqlite/sqlite3.c:112501,1
    - Dst: sqliteHashData
      Src: /src/nss/lib/sqlite/sqlite3.c:112501,1
    - Dst: sqlite3HashClear
      Src: /src/nss/lib/sqlite/sqlite3.c:112503,1
    - Dst: sqlite3HashInit
      Src: /src/nss/lib/sqlite/sqlite3.c:112504,1
    - Dst: sqliteHashFirst
      Src: /src/nss/lib/sqlite/sqlite3.c:112505,1
    - Dst: sqliteHashNext
      Src: /src/nss/lib/sqlite/sqlite3.c:112505,1
    - Dst: sqliteHashData
      Src: /src/nss/lib/sqlite/sqlite3.c:112506,1
    - Dst: sqlite3DeleteTable
      Src: /src/nss/lib/sqlite/sqlite3.c:112507,1
    - Dst: sqlite3HashClear
      Src: /src/nss/lib/sqlite/sqlite3.c:112509,1
    - Dst: sqlite3HashClear
      Src: /src/nss/lib/sqlite/sqlite3.c:112510,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112516
      start: 112490
    functionDepth: 4
    functionLinenumber: 112490
    functionLinenumberEnd: 112516
    functionName: sqlite3SchemaClear
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 3
    functionsReached:
    - sqlite3DeleteTrigger
    - sqlite3HashClear
    - sqliteHashNext
    - sqlite3HashInit
    - sqlite3DeleteTable
    - sqliteHashData
    - sqliteHashFirst
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3SchemaClear(void *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeSchema
      Src: /src/nss/lib/sqlite/sqlite3.c:112525,1
    - Dst: sqlite3DbMallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:112527,1
    - Dst: sqlite3OomFault
      Src: /src/nss/lib/sqlite/sqlite3.c:112530,1
    - Dst: sqlite3HashInit
      Src: /src/nss/lib/sqlite/sqlite3.c:112532,1
    - Dst: sqlite3HashInit
      Src: /src/nss/lib/sqlite/sqlite3.c:112533,1
    - Dst: sqlite3HashInit
      Src: /src/nss/lib/sqlite/sqlite3.c:112534,1
    - Dst: sqlite3HashInit
      Src: /src/nss/lib/sqlite/sqlite3.c:112535,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - db
    - pBt
    argTypes:
    - sqlite3*
    - Btree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112539
      start: 112522
    functionDepth: 3
    functionLinenumber: 112522
    functionLinenumberEnd: 112539
    functionName: sqlite3SchemaGet
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3OomFault
    - sqlite3BtreeSchema
    - sqlite3HashInit
    - sqlite3DbMallocZero
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3SchemaGet(sqlite3 *db, Btree *pBt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:112576,1
    - Dst: sqlite3LocateTableItem
      Src: /src/nss/lib/sqlite/sqlite3.c:112577,1
    - Dst: sqlite3DeleteTable
      Src: /src/nss/lib/sqlite/sqlite3.c:112578,1
    - Dst: sqlite3IndexedByLookup
      Src: /src/nss/lib/sqlite/sqlite3.c:112583,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - pParse
    - pSrc
    argTypes:
    - Parse*
    - SrcList*
    assertStmts:
    - condition: ( pItem && pSrc->nSrc==1 )
      pos:
        line_end: 112575
        line_start: 112575
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 112587
      start: 112573
    functionDepth: 12
    functionLinenumber: 112573
    functionLinenumberEnd: 112587
    functionName: sqlite3SrcListLookup
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - sqlite3DeleteTable
    - sqlite3IndexedByLookup
    - sqlite3LocateTableItem
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3SrcListLookup(Parse *pParse, SrcList *pSrc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:112606,1
    - Dst: sqlite3GetVTable
      Src: /src/nss/lib/sqlite/sqlite3.c:112607,1
    - Dst: sqlite3WritableSchema
      Src: /src/nss/lib/sqlite/sqlite3.c:112612,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:112614,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - pParse
    - pTab
    argTypes:
    - Parse*
    - Table*
    assertStmts:
    - condition: ( pTab->tabFlags & TF_Shadow )
      pos:
        line_end: 112613
        line_start: 112613
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 112620
      start: 112604
    functionDepth: 2
    functionLinenumber: 112604
    functionLinenumberEnd: 112620
    functionName: tabIsReadOnly
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3GetVTable
    - assert
    - sqlite3WritableSchema
    - IsVirtual
    linkageType: ''
    returnType: int
    signature: int tabIsReadOnly(Parse *pParse, Table *pTab)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tabIsReadOnly
      Src: /src/nss/lib/sqlite/sqlite3.c:112628,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:112629,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:112634,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - pParse
    - pTab
    - viewOk
    argTypes:
    - Parse*
    - Table*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112639
      start: 112627
    functionDepth: 10
    functionLinenumber: 112627
    functionLinenumberEnd: 112639
    functionName: sqlite3IsReadOnly
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - tabIsReadOnly
    - sqlite3ErrorMsg
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3IsReadOnly(Parse *pParse, Table *pTab, int viewOk)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SchemaToIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:112660,1
    - Dst: sqlite3ExprDup
      Src: /src/nss/lib/sqlite/sqlite3.c:112661,1
    - Dst: sqlite3SrcListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:112662,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:112664,1
    - Dst: sqlite3DbStrDup
      Src: /src/nss/lib/sqlite/sqlite3.c:112665,1
    - Dst: sqlite3DbStrDup
      Src: /src/nss/lib/sqlite/sqlite3.c:112666,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:112667,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:112668,1
    - Dst: sqlite3SelectNew
      Src: /src/nss/lib/sqlite/sqlite3.c:112670,1
    - Dst: sqlite3SelectDestInit
      Src: /src/nss/lib/sqlite/sqlite3.c:112672,1
    - Dst: sqlite3Select
      Src: /src/nss/lib/sqlite/sqlite3.c:112673,1
    - Dst: sqlite3SelectDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:112674,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 6
    argNames:
    - pParse
    - pView
    - pWhere
    - pOrderBy
    - pLimit
    - iCur
    argTypes:
    - Parse*
    - Table*
    - Expr*
    - ExprList*
    - Expr*
    - int
    assertStmts:
    - condition: ( pFrom->nSrc==1 )
      pos:
        line_end: 112663
        line_start: 112663
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pFrom->a[0].pOn==0 )
      pos:
        line_end: 112666
        line_start: 112666
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pFrom->a[0].pUsing==0 )
      pos:
        line_end: 112667
        line_start: 112667
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 112675
      start: 112648
    functionDepth: 12
    functionLinenumber: 112648
    functionLinenumberEnd: 112675
    functionName: sqlite3MaterializeView
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3SelectDelete
    - sqlite3DbStrDup
    - sqlite3Select
    - sqlite3SelectNew
    - assert
    - sqlite3SelectDestInit
    - sqlite3ExprDup
    - sqlite3SrcListAppend
    - sqlite3SchemaToIndex
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3MaterializeView(\n  Parse *pParse,       /*
      Parsing context */\n  Table *pView,        /* View definition */\n  Expr *pWhere,
      \       /* Optional WHERE clause to be added */\n  ExprList *pOrderBy,  /* Optional
      ORDER BY clause */\n  Expr *pLimit,        /* Optional LIMIT clause */\n  int
      iCur             /* Cursor number for ephemeral table */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:112706,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:112707,1
    - Dst: sqlite3ExprListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:112708,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:112729,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:112730,1
    - Dst: sqlite3ExprListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:112731,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:112732,1
    - Dst: sqlite3PrimaryKeyIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:112735,1
    - Dst: sqlite3Expr
      Src: /src/nss/lib/sqlite/sqlite3.c:112738,1
    - Dst: sqlite3ExprListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:112739,1
    - Dst: sqlite3Expr
      Src: /src/nss/lib/sqlite/sqlite3.c:112739,1
    - Dst: sqlite3Expr
      Src: /src/nss/lib/sqlite/sqlite3.c:112743,1
    - Dst: sqlite3ExprListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:112744,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:112746,1
    - Dst: sqlite3ExprListDup
      Src: /src/nss/lib/sqlite/sqlite3.c:112748,1
    - Dst: sqlite3SrcListDup
      Src: /src/nss/lib/sqlite/sqlite3.c:112756,1
    - Dst: sqlite3SelectNew
      Src: /src/nss/lib/sqlite/sqlite3.c:112761,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:112766,1
    - Dst: sqlite3PExprAddSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:112767,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 6
    argNames:
    - pParse
    - pSrc
    - pWhere
    - pOrderBy
    - pLimit
    - zStmtType
    argTypes:
    - Parse*
    - SrcList*
    - Expr*
    - ExprList*
    - Expr*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112769
      start: 112687
    functionDepth: 13
    functionLinenumber: 112687
    functionLinenumberEnd: 112769
    functionName: sqlite3LimitWhere
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - HasRowid
    - sqlite3ExprListDup
    - sqlite3SelectNew
    - sqlite3PrimaryKeyIndex
    - sqlite3PExpr
    - sqlite3ExprDelete
    - sqlite3SrcListDup
    - sqlite3ErrorMsg
    - sqlite3Expr
    - sqlite3ExprListAppend
    - sqlite3ExprListDelete
    - sqlite3PExprAddSelect
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3LimitWhere(\n  Parse *pParse,               /*
      The parser context */\n  SrcList *pSrc,               /* the FROM clause --
      which tables to scan */\n  Expr *pWhere,                /* The WHERE clause.
      \ May be null */\n  ExprList *pOrderBy,          /* The ORDER BY clause.  May
      be null */\n  Expr *pLimit,                /* The LIMIT clause.  May be null
      */\n  char *zStmtType              /* Either DELETE or UPDATE.  For err msgs.
      */\n)"
  - BBCount: 42
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:112823,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:112828,1
    - Dst: sqlite3SrcListLookup
      Src: /src/nss/lib/sqlite/sqlite3.c:112836,1
    - Dst: sqlite3TriggersExist
      Src: /src/nss/lib/sqlite/sqlite3.c:112843,1
    - Dst: sqlite3FkRequired
      Src: /src/nss/lib/sqlite/sqlite3.c:112849,1
    - Dst: sqlite3LimitWhere
      Src: /src/nss/lib/sqlite/sqlite3.c:112857,1
    - Dst: sqlite3ViewGetColumnNames
      Src: /src/nss/lib/sqlite/sqlite3.c:112867,1
    - Dst: sqlite3IsReadOnly
      Src: /src/nss/lib/sqlite/sqlite3.c:112871,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:112874,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:112875,1
    - Dst: sqlite3AuthCheck
      Src: /src/nss/lib/sqlite/sqlite3.c:112876,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:112878,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:112882,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:112886,1
    - Dst: sqlite3AuthContextPush
      Src: /src/nss/lib/sqlite/sqlite3.c:112895,1
    - Dst: sqlite3GetVdbe
      Src: /src/nss/lib/sqlite/sqlite3.c:112900,1
    - Dst: sqlite3VdbeCountChanges
      Src: /src/nss/lib/sqlite/sqlite3.c:112904,1
    - Dst: sqlite3BeginWriteOperation
      Src: /src/nss/lib/sqlite/sqlite3.c:112905,1
    - Dst: sqlite3MaterializeView
      Src: /src/nss/lib/sqlite/sqlite3.c:112912,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:112923,1
    - Dst: sqlite3ResolveExprNames
      Src: /src/nss/lib/sqlite/sqlite3.c:112926,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:112938,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:112956,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:112961,1
    - Dst: sqlite3TableLock
      Src: /src/nss/lib/sqlite/sqlite3.c:112962,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:112963,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:112964,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:112968,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:112969,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:112977,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:112982,1
    - Dst: sqlite3PrimaryKeyIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:112986,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:112987,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:112992,1
    - Dst: sqlite3VdbeSetP4KeyInfo
      Src: /src/nss/lib/sqlite/sqlite3.c:112993,1
    - Dst: sqlite3WhereBegin
      Src: /src/nss/lib/sqlite/sqlite3.c:113004,1
    - Dst: sqlite3WhereOkOnePass
      Src: /src/nss/lib/sqlite/sqlite3.c:113006,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:113007,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:113007,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:113008,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:113008,1
    - Dst: sqlite3MultiWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:113009,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:113013,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:113019,1
    - Dst: sqlite3ExprCodeGetColumnOfTable
      Src: /src/nss/lib/sqlite/sqlite3.c:113020,1
    - Dst: sqlite3ExprCodeGetColumnOfTable
      Src: /src/nss/lib/sqlite/sqlite3.c:113026,1
    - Dst: sqlite3DbMallocRawNN
      Src: /src/nss/lib/sqlite/sqlite3.c:113034,1
    - Dst: sqlite3WhereEnd
      Src: /src/nss/lib/sqlite/sqlite3.c:113036,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:113039,1
    - Dst: sqlite3VdbeChangeToNoop
      Src: /src/nss/lib/sqlite/sqlite3.c:113043,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:113049,1
    - Dst: sqlite3IndexAffinityStr
      Src: /src/nss/lib/sqlite/sqlite3.c:113050,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/nss/lib/sqlite/sqlite3.c:113051,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:113055,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:113062,1
    - Dst: sqlite3WhereEnd
      Src: /src/nss/lib/sqlite/sqlite3.c:113064,1
    - Dst: sqlite3VdbeAddOp0
      Src: /src/nss/lib/sqlite/sqlite3.c:113075,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:113075,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:113077,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:113077,1
    - Dst: sqlite3OpenTableAndIndices
      Src: /src/nss/lib/sqlite/sqlite3.c:113078,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:113080,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:113080,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:113081,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:113081,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:113082,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:113089,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:113090,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:113091,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/nss/lib/sqlite/sqlite3.c:113092,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:113093,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:113096,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:113096,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:113097,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:113098,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:113100,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:113102,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:113104,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:113105,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:113106,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:113111,1
    - Dst: sqlite3GetVTable
      Src: /src/nss/lib/sqlite/sqlite3.c:113112,1
    - Dst: sqlite3VtabMakeWritable
      Src: /src/nss/lib/sqlite/sqlite3.c:113113,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:113114,1
    - Dst: sqlite3MayAbort
      Src: /src/nss/lib/sqlite/sqlite3.c:113115,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:113117,1
    - Dst: sqlite3IsToplevel
      Src: /src/nss/lib/sqlite/sqlite3.c:113118,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:113122,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:113123,1
    - Dst: sqlite3GenerateRowDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:113128,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:113134,1
    - Dst: sqlite3WhereEnd
      Src: /src/nss/lib/sqlite/sqlite3.c:113135,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:113137,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:113137,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:113138,1
    - Dst: sqlite3VdbeGoto
      Src: /src/nss/lib/sqlite/sqlite3.c:113140,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:113141,1
    - Dst: sqlite3AutoincrementEnd
      Src: /src/nss/lib/sqlite/sqlite3.c:113150,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:113158,1
    - Dst: sqlite3VdbeSetNumCols
      Src: /src/nss/lib/sqlite/sqlite3.c:113159,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/nss/lib/sqlite/sqlite3.c:113160,1
    - Dst: sqlite3AuthContextPop
      Src: /src/nss/lib/sqlite/sqlite3.c:113164,1
    - Dst: sqlite3SrcListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:113165,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:113166,1
    - Dst: sqlite3ExprListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:113168,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:113169,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:113171,1
    CyclomaticComplexity: 76
    EdgeCount: 76
    ICount: 232
    argCount: 5
    argNames:
    - pParse
    - pTabList
    - pWhere
    - pOrderBy
    - pLimit
    argTypes:
    - Parse*
    - SrcList*
    - Expr*
    - ExprList*
    - Expr*
    assertStmts:
    - condition: ( pPk || IsVirtual(pTab) || iDataCur==iTabCur )
      pos:
        line_end: 113079
        line_start: 113079
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPk->aiColumn[i]>=0 )
      pos:
        line_end: 113018
        line_start: 113018
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTabList->nSrc==1 )
      pos:
        line_end: 112827
        line_start: 112827
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !isView )
      pos:
        line_end: 112960
        line_start: 112960
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nKey==0 )
      pos:
        line_end: 113101
        line_start: 113101
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPk!=0 )
      pos:
        line_end: 112986
        line_start: 112986
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTabList->nSrc==1 )
      pos:
        line_end: 112885
        line_start: 112885
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (!isView || pTrigger)
      pos:
        line_end: 112881
        line_start: 112881
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( IsVirtual(pTab)==0 || eOnePass!=ONEPASS_MULTI )
      pos:
        line_end: 113006
        line_start: 113006
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( IsVirtual(pTab) || bComplex || eOnePass!=ONEPASS_OFF )
      pos:
        line_end: 113007
        line_start: 113007
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPk || IsVirtual(pTab) || iIdxCur==iDataCur+1 )
      pos:
        line_end: 113080
        line_start: 113080
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nKey==1 )
      pos:
        line_end: 113105
        line_start: 113105
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nKey==nPk )
      pos:
        line_end: 113088
        line_start: 113088
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPk!=0 || pTab->pSelect!=0 )
      pos:
        line_end: 113090
        line_start: 113090
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIdx->pSchema==pTab->pSchema )
      pos:
        line_end: 112967
        line_start: 112967
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iDb<db->nDb )
      pos:
        line_end: 112874
        line_start: 112874
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rcauth==SQLITE_OK || rcauth==SQLITE_DENY || rcauth==SQLITE_IGNORE
        )
      pos:
        line_end: 112877
        line_start: 112877
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( eOnePass==ONEPASS_OFF || eOnePass==ONEPASS_SINGLE )
      pos:
        line_end: 113113
        line_start: 113113
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 113173
      start: 112780
    functionDepth: 14
    functionLinenumber: 112780
    functionLinenumberEnd: 113173
    functionName: sqlite3DeleteFrom
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeSetP4KeyInfo
    - sqlite3VdbeAddOp2
    - sqlite3WhereOkOnePass
    - sqlite3DbMallocRawNN
    - sqlite3VdbeChangeToNoop
    - sqlite3AuthContextPop
    - sqlite3VdbeResolveLabel
    - sqlite3VdbeAddOp3
    - sqlite3GenerateRowDelete
    - sqlite3ExprCodeGetColumnOfTable
    - sqlite3IsReadOnly
    - sqlite3ViewGetColumnNames
    - sqlite3GetVdbe
    - testcase
    - sqlite3MaterializeView
    - HasRowid
    - sqlite3VdbeGoto
    - sqlite3VdbeAddOp4Int
    - sqlite3MayAbort
    - memset
    - assert
    - sqlite3LimitWhere
    - sqlite3VdbeJumpHere
    - sqlite3GetVTable
    - sqlite3VdbeAddOp0
    - sqlite3AutoincrementEnd
    - sqlite3SchemaToIndex
    - sqlite3VtabMakeWritable
    - sqlite3BeginWriteOperation
    - sqlite3AuthCheck
    - sqlite3WhereBegin
    - sqlite3WhereEnd
    - sqlite3SrcListLookup
    - sqlite3VdbeCountChanges
    - sqlite3MultiWrite
    - sqlite3DbFree
    - sqlite3PrimaryKeyIndex
    - sqlite3IndexAffinityStr
    - sqlite3ExprDelete
    - sqlite3VdbeAddOp4
    - sqlite3VdbeAddOp1
    - VdbeCoverage
    - sqlite3IsToplevel
    - sqlite3ExprListDelete
    - sqlite3TableLock
    - sqlite3OpenTableAndIndices
    - sqlite3VdbeSetNumCols
    - sqlite3VdbeChangeP5
    - sqlite3SrcListDelete
    - sqlite3VdbeSetColName
    - sqlite3TriggersExist
    - sqlite3AuthContextPush
    - sqlite3FkRequired
    - sqlite3ResolveExprNames
    - sqlite3VdbeMakeLabel
    - IsVirtual
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3DeleteFrom(\n  Parse *pParse,         /* The
      parser context */\n  SrcList *pTabList,     /* The table from which we should
      delete things */\n  Expr *pWhere,          /* The WHERE clause.  May be null
      */\n  ExprList *pOrderBy,    /* ORDER BY clause. May be null */\n  Expr *pLimit
      \          /* LIMIT clause. May be null */\n)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:113244,1
    - Dst: VdbeModuleComment
      Src: /src/nss/lib/sqlite/sqlite3.c:113245,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:113251,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:113252,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/nss/lib/sqlite/sqlite3.c:113254,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:113255,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:113256,1
    - Dst: sqlite3FkRequired
      Src: /src/nss/lib/sqlite/sqlite3.c:113261,1
    - Dst: sqlite3TriggerColmask
      Src: /src/nss/lib/sqlite/sqlite3.c:113268,1
    - Dst: sqlite3FkOldmask
      Src: /src/nss/lib/sqlite/sqlite3.c:113271,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:113277,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:113279,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:113280,1
    - Dst: MASKBIT32
      Src: /src/nss/lib/sqlite/sqlite3.c:113281,1
    - Dst: sqlite3ExprCodeGetColumnOfTable
      Src: /src/nss/lib/sqlite/sqlite3.c:113282,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:113287,1
    - Dst: sqlite3CodeRowTrigger
      Src: /src/nss/lib/sqlite/sqlite3.c:113288,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:113300,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/nss/lib/sqlite/sqlite3.c:113301,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:113302,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:113303,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:113304,1
    - Dst: sqlite3FkCheck
      Src: /src/nss/lib/sqlite/sqlite3.c:113311,1
    - Dst: sqlite3GenerateRowIndexDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:113326,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:113327,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:113328,1
    - Dst: sqlite3VdbeAppendP4
      Src: /src/nss/lib/sqlite/sqlite3.c:113329,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:113332,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:113335,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:113338,1
    - Dst: sqlite3FkActions
      Src: /src/nss/lib/sqlite/sqlite3.c:113344,1
    - Dst: sqlite3CodeRowTrigger
      Src: /src/nss/lib/sqlite/sqlite3.c:113347,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:113354,1
    - Dst: VdbeModuleComment
      Src: /src/nss/lib/sqlite/sqlite3.c:113355,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 54
    argCount: 11
    argNames:
    - pParse
    - pTab
    - pTrigger
    - iDataCur
    - iIdxCur
    - iPk
    - nPk
    - count
    - onconf
    - eMode
    - iIdxNoSeek
    argTypes:
    - Parse*
    - Table*
    - Trigger*
    - int
    - int
    - int
    - i16
    - u8
    - u8
    - u8
    - int
    assertStmts:
    - condition: ( v )
      pos:
        line_end: 113243
        line_start: 113243
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 113356
      start: 113225
    functionDepth: 13
    functionLinenumber: 113225
    functionLinenumberEnd: 113356
    functionName: sqlite3GenerateRowDelete
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3VdbeAppendP4
    - sqlite3CodeRowTrigger
    - sqlite3VdbeAddOp2
    - sqlite3VdbeResolveLabel
    - sqlite3ExprCodeGetColumnOfTable
    - sqlite3FkOldmask
    - sqlite3_stricmp
    - testcase
    - HasRowid
    - sqlite3FkCheck
    - sqlite3VdbeCurrentAddr
    - sqlite3GenerateRowIndexDelete
    - sqlite3VdbeAddOp4Int
    - assert
    - VdbeCoverageIf
    - sqlite3FkActions
    - sqlite3VdbeAddOp1
    - sqlite3VdbeChangeP5
    - VdbeModuleComment
    - MASKBIT32
    - sqlite3FkRequired
    - sqlite3VdbeMakeLabel
    - sqlite3TriggerColmask
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3GenerateRowDelete(\n  Parse *pParse,     /*
      Parsing context */\n  Table *pTab,       /* Table containing the row to be deleted
      */\n  Trigger *pTrigger, /* List of triggers to (potentially) fire */\n  int
      iDataCur,      /* Cursor from which column data is extracted */\n  int iIdxCur,
      \      /* First index cursor */\n  int iPk,           /* First memory cell containing
      the PRIMARY KEY */\n  i16 nPk,           /* Number of PRIMARY KEY memory cells
      */\n  u8 count,          /* If non-zero, increment the row change counter */\n
      \ u8 onconf,         /* Default ON CONFLICT policy for triggers */\n  u8 eMode,
      \         /* ONEPASS_OFF, _SINGLE, or _MULTI.  See above */\n  int iIdxNoSeek
      \    /* Cursor number of cursor that does not need seeking */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:113393,1
    - Dst: sqlite3PrimaryKeyIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:113393,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:113395,1
    - Dst: VdbeModuleComment
      Src: /src/nss/lib/sqlite/sqlite3.c:113399,1
    - Dst: sqlite3GenerateIndexKey
      Src: /src/nss/lib/sqlite/sqlite3.c:113400,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:113402,1
    - Dst: sqlite3ResolvePartIdxLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:113404,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 6
    argNames:
    - pParse
    - pTab
    - iDataCur
    - iIdxCur
    - aRegIdx
    - iIdxNoSeek
    argTypes:
    - Parse*
    - Table*
    - int
    - int
    - int*
    - int
    assertStmts:
    - condition: ( iIdxCur+i!=iDataCur || pPk==pIdx )
      pos:
        line_end: 113394
        line_start: 113394
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 113407
      start: 113376
    functionDepth: 11
    functionLinenumber: 113376
    functionLinenumberEnd: 113407
    functionName: sqlite3GenerateRowIndexDelete
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - HasRowid
    - sqlite3GenerateIndexKey
    - sqlite3PrimaryKeyIndex
    - sqlite3VdbeAddOp3
    - sqlite3ResolvePartIdxLabel
    - assert
    - VdbeModuleComment
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3GenerateRowIndexDelete(\n  Parse *pParse,     /*
      Parsing and code generating context */\n  Table *pTab,       /* Table containing
      the row to be deleted */\n  int iDataCur,      /* Cursor of table holding data.
      */\n  int iIdxCur,       /* First index cursor */\n  int *aRegIdx,      /* Only
      delete if aRegIdx!=0 && aRegIdx[i]>0 */\n  int iIdxNoSeek     /* Do not delete
      from this cursor */\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:113457,1
    - Dst: sqlite3ExprIfFalseDup
      Src: /src/nss/lib/sqlite/sqlite3.c:113459,1
    - Dst: sqlite3GetTempRange
      Src: /src/nss/lib/sqlite/sqlite3.c:113467,1
    - Dst: sqlite3ExprCodeLoadIndexColumn
      Src: /src/nss/lib/sqlite/sqlite3.c:113477,1
    - Dst: sqlite3VdbeDeletePriorOpcode
      Src: /src/nss/lib/sqlite/sqlite3.c:113484,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:113487,1
    - Dst: sqlite3IndexAffinityStr
      Src: /src/nss/lib/sqlite/sqlite3.c:113489,1
    - Dst: sqlite3VdbeChangeP4
      Src: /src/nss/lib/sqlite/sqlite3.c:113490,1
    - Dst: sqlite3ReleaseTempRange
      Src: /src/nss/lib/sqlite/sqlite3.c:113493,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 8
    argNames:
    - pParse
    - pIdx
    - iDataCur
    - regOut
    - prefixOnly
    - piPartIdxLabel
    - pPrior
    - regPrior
    argTypes:
    - Parse*
    - Index*
    - int
    - int
    - int
    - int*
    - Index*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113495
      start: 113440
    functionDepth: 20
    functionLinenumber: 113440
    functionLinenumberEnd: 113495
    functionName: sqlite3GenerateIndexKey
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3ExprCodeLoadIndexColumn
    - sqlite3ExprIfFalseDup
    - sqlite3ReleaseTempRange
    - sqlite3VdbeAddOp3
    - sqlite3IndexAffinityStr
    - sqlite3VdbeDeletePriorOpcode
    - sqlite3GetTempRange
    - sqlite3VdbeChangeP4
    - sqlite3VdbeMakeLabel
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3GenerateIndexKey(\n  Parse *pParse,       /*
      Parsing context */\n  Index *pIdx,         /* The index for which to generate
      a key */\n  int iDataCur,        /* Cursor number from which to take column
      data */\n  int regOut,          /* Put the new key into this register if not
      0 */\n  int prefixOnly,      /* Compute only a unique prefix of the key */\n
      \ int *piPartIdxLabel, /* OUT: Jump to this label to skip partial index */\n
      \ Index *pPrior,       /* Previously generated index key */\n  int regPrior
      \        /* Register holding previous generated key */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:113504,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pParse
    - iLabel
    argTypes:
    - Parse*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113506
      start: 113502
    functionDepth: 11
    functionLinenumber: 113502
    functionLinenumberEnd: 113506
    functionName: sqlite3ResolvePartIdxLabel
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3VdbeResolveLabel
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ResolvePartIdxLabel(Parse *pParse, int iLabel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:113536,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:113538,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:113539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - context
    argTypes:
    - sqlite3_context*
    assertStmts:
    - condition: ( context->pVdbe!=0 )
      pos:
        line_end: 113535
        line_start: 113535
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->opcode==OP_CollSeq )
      pos:
        line_end: 113537
        line_start: 113537
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p4type==P4_COLLSEQ )
      pos:
        line_end: 113538
        line_start: 113538
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 113541
      start: 113534
    functionDepth: 0
    functionLinenumber: 113534
    functionLinenumberEnd: 113541
    functionName: sqlite3GetFuncCollSeq
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: CollSeq
    signature: CollSeq *sqlite3GetFuncCollSeq(sqlite3_context *context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:113548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - context
    argTypes:
    - sqlite3_context*
    assertStmts:
    - condition: ( context->isError<=0 )
      pos:
        line_end: 113547
        line_start: 113547
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 113551
      start: 113547
    functionDepth: 0
    functionLinenumber: 113547
    functionLinenumberEnd: 113551
    functionName: sqlite3SkipAccumulatorLoad
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void sqlite3SkipAccumulatorLoad(sqlite3_context *context)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:113566,1
    - Dst: sqlite3_user_data
      Src: /src/nss/lib/sqlite/sqlite3.c:113567,1
    - Dst: sqlite3GetFuncCollSeq
      Src: /src/nss/lib/sqlite/sqlite3.c:113568,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:113569,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:113570,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:113572,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:113574,1
    - Dst: sqlite3MemCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:113575,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:113576,1
    - Dst: sqlite3_result_value
      Src: /src/nss/lib/sqlite/sqlite3.c:113580,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( argc>1 )
      pos:
        line_end: 113565
        line_start: 113565
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( mask==-1 || mask==0 )
      pos:
        line_end: 113569
        line_start: 113569
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pColl )
      pos:
        line_end: 113568
        line_start: 113568
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 113581
      start: 113556
    functionDepth: 16
    functionLinenumber: 113556
    functionLinenumberEnd: 113581
    functionName: minmaxFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3MemCompare
    - assert
    - sqlite3GetFuncCollSeq
    - sqlite3_value_type
    - sqlite3_user_data
    - sqlite3_result_value
    - testcase
    linkageType: ''
    returnType: void
    signature: "void minmaxFunc(\n  sqlite3_context *context,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:113592,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:113593,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:113594,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:113594,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:113595,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:113596,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:113597,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:113598,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:113599,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:113604,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - context
    - NotUsed
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( SQLITE_INTEGER==1 )
      pos:
        line_end: 113594
        line_start: 113594
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( i>=0 && i<ArraySize(azType) )
      pos:
        line_end: 113593
        line_start: 113593
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( SQLITE_FLOAT==2 )
      pos:
        line_end: 113595
        line_start: 113595
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( SQLITE_TEXT==3 )
      pos:
        line_end: 113596
        line_start: 113596
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( SQLITE_BLOB==4 )
      pos:
        line_end: 113597
        line_start: 113597
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( SQLITE_NULL==5 )
      pos:
        line_end: 113598
        line_start: 113598
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 113605
      start: 113586
    functionDepth: 14
    functionLinenumber: 113586
    functionLinenumberEnd: 113605
    functionName: typeofFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ArraySize
    - UNUSED_PARAMETER
    - assert
    - sqlite3_value_type
    - sqlite3_result_text
    linkageType: ''
    returnType: void
    signature: "void typeofFunc(\n  sqlite3_context *context,\n  int NotUsed,\n  sqlite3_value
      **argv\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:113616,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:113617,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:113618,1
    - Dst: sqlite3_result_int
      Src: /src/nss/lib/sqlite/sqlite3.c:113622,1
    - Dst: sqlite3_value_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:113622,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:113626,1
    - Dst: sqlite3_result_int
      Src: /src/nss/lib/sqlite/sqlite3.c:113637,1
    - Dst: sqlite3_result_null
      Src: /src/nss/lib/sqlite/sqlite3.c:113641,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( argc==1 )
      pos:
        line_end: 113615
        line_start: 113615
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 113645
      start: 113611
    functionDepth: 16
    functionLinenumber: 113611
    functionLinenumberEnd: 113645
    functionName: lengthFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    - assert
    - sqlite3_result_int
    - sqlite3_result_null
    - sqlite3_value_type
    - sqlite3_value_text
    - sqlite3_value_bytes
    linkageType: ''
    returnType: void
    signature: "void lengthFunc(\n  sqlite3_context *context,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:113654,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:113655,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:113656,1
    - Dst: sqlite3_value_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:113658,1
    - Dst: sqlite3_result_error
      Src: /src/nss/lib/sqlite/sqlite3.c:113664,1
    - Dst: sqlite3_result_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:113669,1
    - Dst: sqlite3_result_null
      Src: /src/nss/lib/sqlite/sqlite3.c:113674,1
    - Dst: sqlite3_value_double
      Src: /src/nss/lib/sqlite/sqlite3.c:113683,1
    - Dst: sqlite3_result_double
      Src: /src/nss/lib/sqlite/sqlite3.c:113685,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( argc==1 )
      pos:
        line_end: 113653
        line_start: 113653
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 113689
      start: 113653
    functionDepth: 13
    functionLinenumber: 113653
    functionLinenumberEnd: 113689
    functionName: absFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_double
    - UNUSED_PARAMETER
    - sqlite3_result_int64
    - assert
    - sqlite3_result_null
    - sqlite3_value_type
    - sqlite3_value_int64
    - sqlite3_value_double
    - sqlite3_result_error
    linkageType: ''
    returnType: void
    signature: void absFunc(sqlite3_context *context, int argc, sqlite3_value **argv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:113716,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:113717,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:113718,1
    - Dst: sqlite3_value_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:113720,1
    - Dst: sqlite3_value_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:113721,1
    - Dst: sqlite3_value_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:113724,1
    - Dst: sqlite3_value_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:113725,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:113728,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:113729,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:113735,1
    - Dst: sqlite3_result_int
      Src: /src/nss/lib/sqlite/sqlite3.c:113745,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 32
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113746
      start: 113702
    functionDepth: 16
    functionLinenumber: 113702
    functionLinenumberEnd: 113746
    functionName: instrFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    - sqlite3_result_int
    - sqlite3_value_type
    - sqlite3_value_blob
    - sqlite3_value_text
    - memcmp
    - sqlite3_value_bytes
    linkageType: ''
    returnType: void
    signature: "void instrFunc(\n  sqlite3_context *context,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_context_db_handle
      Src: /src/nss/lib/sqlite/sqlite3.c:113760,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:113762,1
    - Dst: sqlite3StrAccumInit
      Src: /src/nss/lib/sqlite/sqlite3.c:113766,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:113768,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:113770,1
    - Dst: sqlite3StrAccumFinish
      Src: /src/nss/lib/sqlite/sqlite3.c:113770,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113773
      start: 113751
    functionDepth: 15
    functionLinenumber: 113751
    functionLinenumberEnd: 113773
    functionName: printfFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_context_db_handle
    - sqlite3StrAccumInit
    - sqlite3StrAccumFinish
    - sqlite3_str_appendf
    - sqlite3_value_text
    - sqlite3_result_text
    linkageType: ''
    returnType: void
    signature: "void printfFunc(\n  sqlite3_context *context,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:113799,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:113800,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:113801,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:113805,1
    - Dst: sqlite3_value_int
      Src: /src/nss/lib/sqlite/sqlite3.c:113806,1
    - Dst: sqlite3_value_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:113808,1
    - Dst: sqlite3_value_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:113809,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:113811,1
    - Dst: sqlite3_value_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:113811,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:113813,1
    - Dst: SQLITE_SKIP_UTF8
      Src: /src/nss/lib/sqlite/sqlite3.c:113818,1
    - Dst: sqlite3_value_int
      Src: /src/nss/lib/sqlite/sqlite3.c:113831,1
    - Dst: sqlite3_context_db_handle
      Src: /src/nss/lib/sqlite/sqlite3.c:113837,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:113858,1
    - Dst: SQLITE_SKIP_UTF8
      Src: /src/nss/lib/sqlite/sqlite3.c:113861,1
    - Dst: SQLITE_SKIP_UTF8
      Src: /src/nss/lib/sqlite/sqlite3.c:113865,1
    - Dst: sqlite3_result_text64
      Src: /src/nss/lib/sqlite/sqlite3.c:113867,1
    - Dst: sqlite3_result_blob64
      Src: /src/nss/lib/sqlite/sqlite3.c:113874,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 75
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( argc==3 || argc==2 )
      pos:
        line_end: 113798
        line_start: 113798
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( len==sqlite3_value_bytes(argv[0]) )
      pos:
        line_end: 113810
        line_start: 113810
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p1>=0 && p2>=0 )
      pos:
        line_end: 113857
        line_start: 113857
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 113876
      start: 113787
    functionDepth: 16
    functionLinenumber: 113787
    functionLinenumberEnd: 113876
    functionName: substrFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_context_db_handle
    - sqlite3_value_int
    - assert
    - sqlite3_result_blob64
    - sqlite3_value_type
    - sqlite3_value_blob
    - SQLITE_SKIP_UTF8
    - sqlite3_value_text
    - sqlite3_result_text64
    - sqlite3_value_bytes
    linkageType: ''
    returnType: void
    signature: "void substrFunc(\n  sqlite3_context *context,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:113886,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:113888,1
    - Dst: sqlite3_value_int
      Src: /src/nss/lib/sqlite/sqlite3.c:113889,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:113893,1
    - Dst: sqlite3_value_double
      Src: /src/nss/lib/sqlite/sqlite3.c:113894,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:113904,1
    - Dst: sqlite3_result_error_nomem
      Src: /src/nss/lib/sqlite/sqlite3.c:113906,1
    - Dst: sqlite3AtoF
      Src: /src/nss/lib/sqlite/sqlite3.c:113909,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:113909,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:113910,1
    - Dst: sqlite3_result_double
      Src: /src/nss/lib/sqlite/sqlite3.c:113912,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( argc==1 || argc==2 )
      pos:
        line_end: 113885
        line_start: 113885
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 113913
      start: 113882
    functionDepth: 10
    functionLinenumber: 113882
    functionLinenumberEnd: 113913
    functionName: roundFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_double
    - sqlite3_value_int
    - sqlite3AtoF
    - assert
    - sqlite3_mprintf
    - sqlite3Strlen30
    - sqlite3_value_type
    - sqlite3_result_error_nomem
    - sqlite3_value_double
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void roundFunc(sqlite3_context *context, int argc, sqlite3_value **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_context_db_handle
      Src: /src/nss/lib/sqlite/sqlite3.c:113925,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:113926,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:113927,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:113928,1
    - Dst: sqlite3_result_error_toobig
      Src: /src/nss/lib/sqlite/sqlite3.c:113930,1
    - Dst: sqlite3Malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:113933,1
    - Dst: sqlite3_result_error_nomem
      Src: /src/nss/lib/sqlite/sqlite3.c:113935,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - context
    - nByte
    argTypes:
    - sqlite3_context*
    - i64
    assertStmts:
    - condition: ( nByte>0 )
      pos:
        line_end: 113925
        line_start: 113925
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 113939
      start: 113923
    functionDepth: 13
    functionLinenumber: 113923
    functionLinenumberEnd: 113939
    functionName: contextMalloc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_context_db_handle
    - sqlite3Malloc
    - assert
    - sqlite3_result_error_nomem
    - sqlite3_result_error_toobig
    - testcase
    linkageType: ''
    returnType: void
    signature: void *contextMalloc(sqlite3_context *context, i64 nByte)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:113948,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:113949,1
    - Dst: sqlite3_value_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:113950,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:113952,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:113952,1
    - Dst: contextMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:113954,1
    - Dst: sqlite3Toupper
      Src: /src/nss/lib/sqlite/sqlite3.c:113957,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:113959,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( z2==(char*)sqlite3_value_text(argv[0]) )
      pos:
        line_end: 113951
        line_start: 113951
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 113962
      start: 113944
    functionDepth: 16
    functionLinenumber: 113944
    functionLinenumberEnd: 113962
    functionName: upperFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - contextMalloc
    - UNUSED_PARAMETER
    - assert
    - sqlite3Toupper
    - sqlite3_value_text
    - sqlite3_result_text
    - sqlite3_value_bytes
    linkageType: ''
    returnType: void
    signature: void upperFunc(sqlite3_context *context, int argc, sqlite3_value **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:113967,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:113968,1
    - Dst: sqlite3_value_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:113969,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:113971,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:113971,1
    - Dst: contextMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:113973,1
    - Dst: sqlite3Tolower
      Src: /src/nss/lib/sqlite/sqlite3.c:113976,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:113978,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( z2==(char*)sqlite3_value_text(argv[0]) )
      pos:
        line_end: 113970
        line_start: 113970
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 113981
      start: 113963
    functionDepth: 16
    functionLinenumber: 113963
    functionLinenumberEnd: 113981
    functionName: lowerFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - contextMalloc
    - UNUSED_PARAMETER
    - assert
    - sqlite3Tolower
    - sqlite3_value_text
    - sqlite3_result_text
    - sqlite3_value_bytes
    linkageType: ''
    returnType: void
    signature: void lowerFunc(sqlite3_context *context, int argc, sqlite3_value **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER2
      Src: /src/nss/lib/sqlite/sqlite3.c:114002,1
    - Dst: sqlite3_randomness
      Src: /src/nss/lib/sqlite/sqlite3.c:114003,1
    - Dst: sqlite3_result_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:114015,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - context
    - NotUsed
    - NotUsed2
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114016
      start: 113996
    functionDepth: 11
    functionLinenumber: 113996
    functionLinenumberEnd: 114016
    functionName: randomFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER2
    - sqlite3_randomness
    - sqlite3_result_int64
    linkageType: ''
    returnType: void
    signature: "void randomFunc(\n  sqlite3_context *context,\n  int NotUsed,\n  sqlite3_value
      **NotUsed2\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:114029,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:114030,1
    - Dst: sqlite3_value_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:114031,1
    - Dst: contextMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:114035,1
    - Dst: sqlite3_randomness
      Src: /src/nss/lib/sqlite/sqlite3.c:114037,1
    - Dst: sqlite3_result_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:114038,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( argc==1 )
      pos:
        line_end: 114028
        line_start: 114028
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 114040
      start: 114022
    functionDepth: 14
    functionLinenumber: 114022
    functionLinenumberEnd: 114040
    functionName: randomBlob
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_blob
    - contextMalloc
    - sqlite3_randomness
    - UNUSED_PARAMETER
    - assert
    - sqlite3_value_int64
    linkageType: ''
    returnType: void
    signature: "void randomBlob(\n  sqlite3_context *context,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_context_db_handle
      Src: /src/nss/lib/sqlite/sqlite3.c:114051,1
    - Dst: UNUSED_PARAMETER2
      Src: /src/nss/lib/sqlite/sqlite3.c:114052,1
    - Dst: sqlite3_result_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:114056,1
    - Dst: sqlite3_last_insert_rowid
      Src: /src/nss/lib/sqlite/sqlite3.c:114056,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - context
    - NotUsed
    - NotUsed2
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114057
      start: 114046
    functionDepth: 11
    functionLinenumber: 114046
    functionLinenumberEnd: 114057
    functionName: last_insert_rowid
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_context_db_handle
    - UNUSED_PARAMETER2
    - sqlite3_last_insert_rowid
    - sqlite3_result_int64
    linkageType: ''
    returnType: void
    signature: "void last_insert_rowid(\n  sqlite3_context *context, \n  int NotUsed,
      \n  sqlite3_value **NotUsed2\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_context_db_handle
      Src: /src/nss/lib/sqlite/sqlite3.c:114071,1
    - Dst: UNUSED_PARAMETER2
      Src: /src/nss/lib/sqlite/sqlite3.c:114072,1
    - Dst: sqlite3_result_int
      Src: /src/nss/lib/sqlite/sqlite3.c:114073,1
    - Dst: sqlite3_changes
      Src: /src/nss/lib/sqlite/sqlite3.c:114073,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - context
    - NotUsed
    - NotUsed2
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114074
      start: 114066
    functionDepth: 11
    functionLinenumber: 114066
    functionLinenumberEnd: 114074
    functionName: changes
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_context_db_handle
    - UNUSED_PARAMETER2
    - sqlite3_changes
    - sqlite3_result_int
    linkageType: ''
    returnType: void
    signature: "void changes(\n  sqlite3_context *context,\n  int NotUsed,\n  sqlite3_value
      **NotUsed2\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_context_db_handle
      Src: /src/nss/lib/sqlite/sqlite3.c:114085,1
    - Dst: UNUSED_PARAMETER2
      Src: /src/nss/lib/sqlite/sqlite3.c:114086,1
    - Dst: sqlite3_result_int
      Src: /src/nss/lib/sqlite/sqlite3.c:114089,1
    - Dst: sqlite3_total_changes
      Src: /src/nss/lib/sqlite/sqlite3.c:114089,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - context
    - NotUsed
    - NotUsed2
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114090
      start: 114080
    functionDepth: 11
    functionLinenumber: 114080
    functionLinenumberEnd: 114090
    functionName: total_changes
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_context_db_handle
    - UNUSED_PARAMETER2
    - sqlite3_total_changes
    - sqlite3_result_int
    linkageType: ''
    returnType: void
    signature: "void total_changes(\n  sqlite3_context *context,\n  int NotUsed,\n
      \ sqlite3_value **NotUsed2\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - A
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114110
      start: 114109
    functionDepth: 0
    functionLinenumber: 114109
    functionLinenumberEnd: 114110
    functionName: sqlite3Utf8Read
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3Utf8Read(A)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - A
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114111
      start: 114110
    functionDepth: 0
    functionLinenumber: 114110
    functionLinenumberEnd: 114111
    functionName: Utf8Read
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Utf8Read(A)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - A
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114113
      start: 114112
    functionDepth: 0
    functionLinenumber: 114112
    functionLinenumberEnd: 114113
    functionName: Utf8Read
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Utf8Read(A)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: Utf8Read
      Src: /src/nss/lib/sqlite/sqlite3.c:114180,1
    - Dst: Utf8Read
      Src: /src/nss/lib/sqlite/sqlite3.c:114185,1
    - Dst: sqlite3Utf8Read
      Src: /src/nss/lib/sqlite/sqlite3.c:114186,1
    - Dst: sqlite3Utf8Read
      Src: /src/nss/lib/sqlite/sqlite3.c:114194,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:114199,1
    - Dst: patternCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:114201,1
    - Dst: SQLITE_SKIP_UTF8
      Src: /src/nss/lib/sqlite/sqlite3.c:114203,1
    - Dst: sqlite3Toupper
      Src: /src/nss/lib/sqlite/sqlite3.c:114222,1
    - Dst: sqlite3Tolower
      Src: /src/nss/lib/sqlite/sqlite3.c:114223,1
    - Dst: strcspn
      Src: /src/nss/lib/sqlite/sqlite3.c:114230,1
    - Dst: patternCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:114233,1
    - Dst: Utf8Read
      Src: /src/nss/lib/sqlite/sqlite3.c:114238,1
    - Dst: patternCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:114240,1
    - Dst: sqlite3Utf8Read
      Src: /src/nss/lib/sqlite/sqlite3.c:114248,1
    - Dst: sqlite3Utf8Read
      Src: /src/nss/lib/sqlite/sqlite3.c:114255,1
    - Dst: sqlite3Utf8Read
      Src: /src/nss/lib/sqlite/sqlite3.c:114257,1
    - Dst: sqlite3Utf8Read
      Src: /src/nss/lib/sqlite/sqlite3.c:114260,1
    - Dst: sqlite3Utf8Read
      Src: /src/nss/lib/sqlite/sqlite3.c:114264,1
    - Dst: sqlite3Utf8Read
      Src: /src/nss/lib/sqlite/sqlite3.c:114268,1
    - Dst: sqlite3Utf8Read
      Src: /src/nss/lib/sqlite/sqlite3.c:114277,1
    - Dst: Utf8Read
      Src: /src/nss/lib/sqlite/sqlite3.c:114285,1
    - Dst: sqlite3Tolower
      Src: /src/nss/lib/sqlite/sqlite3.c:114287,1
    - Dst: sqlite3Tolower
      Src: /src/nss/lib/sqlite/sqlite3.c:114287,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 106
    argCount: 4
    argNames:
    - zPattern
    - zString
    - pInfo
    - matchOther
    argTypes:
    - u8*
    - u8*
    - struct compareInfo*
    - u32
    assertStmts:
    - condition: ( matchOther<0x80 )
      pos:
        line_end: 114198
        line_start: 114198
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 114294
      start: 114168
    functionDepth: 1
    functionLinenumber: 114168
    functionLinenumberEnd: 114294
    functionName: patternCompare
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - Utf8Read
    - patternCompare
    - strcspn
    - assert
    - sqlite3Tolower
    - sqlite3Toupper
    - SQLITE_SKIP_UTF8
    - sqlite3Utf8Read
    linkageType: ''
    returnType: int
    signature: "int patternCompare(\n  const u8 *zPattern,              /* The glob
      pattern */\n  const u8 *zString,               /* The string to compare against
      the glob */\n  const struct compareInfo *pInfo, /* Information about how to
      do the compare */\n  u32 matchOther                   /* The escape char (LIKE)
      or '[' (GLOB) */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: patternCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:114301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - zGlobPattern
    - zString
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114302
      start: 114300
    functionDepth: 2
    functionLinenumber: 114300
    functionLinenumberEnd: 114302
    functionName: sqlite3_strglob
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - patternCompare
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_strglob(const char *zGlobPattern, const char *zString)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: patternCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:114309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - zPattern
    - zStr
    - esc
    argTypes:
    - char*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114310
      start: 114308
    functionDepth: 2
    functionLinenumber: 114308
    functionLinenumberEnd: 114310
    functionName: sqlite3_strlike
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - patternCompare
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_strlike(const char *zPattern, const char *zStr,
      unsigned int esc)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_context_db_handle
      Src: /src/nss/lib/sqlite/sqlite3.c:114342,1
    - Dst: sqlite3_user_data
      Src: /src/nss/lib/sqlite/sqlite3.c:114343,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:114346,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:114347,1
    - Dst: sqlite3_result_int
      Src: /src/nss/lib/sqlite/sqlite3.c:114352,1
    - Dst: sqlite3_value_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:114360,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:114361,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:114362,1
    - Dst: sqlite3_result_error
      Src: /src/nss/lib/sqlite/sqlite3.c:114364,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:114371,1
    - Dst: sqlite3Utf8CharLen
      Src: /src/nss/lib/sqlite/sqlite3.c:114373,1
    - Dst: sqlite3_result_error
      Src: /src/nss/lib/sqlite/sqlite3.c:114374,1
    - Dst: sqlite3Utf8Read
      Src: /src/nss/lib/sqlite/sqlite3.c:114378,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:114382,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:114383,1
    - Dst: sqlite3_result_int
      Src: /src/nss/lib/sqlite/sqlite3.c:114388,1
    - Dst: patternCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:114389,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114391
      start: 114334
    functionDepth: 16
    functionLinenumber: 114334
    functionLinenumberEnd: 114391
    functionName: likeFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_error
    - sqlite3_context_db_handle
    - patternCompare
    - sqlite3Utf8Read
    - sqlite3_result_int
    - sqlite3_value_type
    - sqlite3_user_data
    - sqlite3_value_text
    - sqlite3Utf8CharLen
    - testcase
    - sqlite3_value_bytes
    linkageType: ''
    returnType: void
    signature: "void likeFunc(\n  sqlite3_context *context, \n  int argc, \n  sqlite3_value
      **argv\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetFuncCollSeq
      Src: /src/nss/lib/sqlite/sqlite3.c:114403,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:114404,1
    - Dst: sqlite3MemCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:114405,1
    - Dst: sqlite3_result_value
      Src: /src/nss/lib/sqlite/sqlite3.c:114406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - context
    - NotUsed
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114408
      start: 114398
    functionDepth: 16
    functionLinenumber: 114398
    functionLinenumberEnd: 114408
    functionName: nullifFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_value
    - sqlite3MemCompare
    - UNUSED_PARAMETER
    - sqlite3GetFuncCollSeq
    linkageType: ''
    returnType: void
    signature: "void nullifFunc(\n  sqlite3_context *context,\n  int NotUsed,\n  sqlite3_value
      **argv\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER2
      Src: /src/nss/lib/sqlite/sqlite3.c:114419,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:114422,1
    - Dst: sqlite3_libversion
      Src: /src/nss/lib/sqlite/sqlite3.c:114422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - context
    - NotUsed
    - NotUsed2
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114423
      start: 114414
    functionDepth: 14
    functionLinenumber: 114414
    functionLinenumberEnd: 114423
    functionName: versionFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_libversion
    - UNUSED_PARAMETER2
    - sqlite3_result_text
    linkageType: ''
    returnType: void
    signature: "void versionFunc(\n  sqlite3_context *context,\n  int NotUsed,\n  sqlite3_value
      **NotUsed2\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER2
      Src: /src/nss/lib/sqlite/sqlite3.c:114435,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:114438,1
    - Dst: sqlite3_sourceid
      Src: /src/nss/lib/sqlite/sqlite3.c:114438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - context
    - NotUsed
    - NotUsed2
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114439
      start: 114430
    functionDepth: 14
    functionLinenumber: 114430
    functionLinenumberEnd: 114439
    functionName: sourceidFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER2
    - sqlite3_result_text
    - sqlite3_sourceid
    linkageType: ''
    returnType: void
    signature: "void sourceidFunc(\n  sqlite3_context *context,\n  int NotUsed,\n
      \ sqlite3_value **NotUsed2\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:114451,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:114452,1
    - Dst: sqlite3_log
      Src: /src/nss/lib/sqlite/sqlite3.c:114453,1
    - Dst: sqlite3_value_int
      Src: /src/nss/lib/sqlite/sqlite3.c:114453,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:114453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114454
      start: 114446
    functionDepth: 15
    functionLinenumber: 114446
    functionLinenumberEnd: 114454
    functionName: errlogFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_log
    - sqlite3_value_text
    - UNUSED_PARAMETER
    - sqlite3_value_int
    linkageType: ''
    returnType: void
    signature: "void errlogFunc(\n  sqlite3_context *context,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:114468,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:114469,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:114474,1
    - Dst: sqlite3_result_int
      Src: /src/nss/lib/sqlite/sqlite3.c:114475,1
    - Dst: sqlite3_compileoption_used
      Src: /src/nss/lib/sqlite/sqlite3.c:114475,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( argc==1 )
      pos:
        line_end: 114467
        line_start: 114467
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 114477
      start: 114462
    functionDepth: 15
    functionLinenumber: 114462
    functionLinenumberEnd: 114477
    functionName: compileoptionusedFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    - assert
    - sqlite3_result_int
    - sqlite3_compileoption_used
    - sqlite3_value_text
    linkageType: ''
    returnType: void
    signature: "void compileoptionusedFunc(\n  sqlite3_context *context,\n  int argc,\n
      \ sqlite3_value **argv\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:114492,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:114493,1
    - Dst: sqlite3_value_int
      Src: /src/nss/lib/sqlite/sqlite3.c:114497,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:114498,1
    - Dst: sqlite3_compileoption_get
      Src: /src/nss/lib/sqlite/sqlite3.c:114498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( argc==1 )
      pos:
        line_end: 114491
        line_start: 114491
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 114499
      start: 114486
    functionDepth: 14
    functionLinenumber: 114486
    functionLinenumberEnd: 114499
    functionName: compileoptiongetFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    - sqlite3_value_int
    - assert
    - sqlite3_compileoption_get
    - sqlite3_result_text
    linkageType: ''
    returnType: void
    signature: "void compileoptiongetFunc(\n  sqlite3_context *context,\n  int argc,\n
      \ sqlite3_value **argv\n)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:114517,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:114518,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:114519,1
    - Dst: sqlite3_value_double
      Src: /src/nss/lib/sqlite/sqlite3.c:114523,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:114524,1
    - Dst: sqlite3AtoF
      Src: /src/nss/lib/sqlite/sqlite3.c:114525,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:114527,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:114529,1
    - Dst: sqlite3_result_value
      Src: /src/nss/lib/sqlite/sqlite3.c:114533,1
    - Dst: sqlite3_value_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:114538,1
    - Dst: sqlite3_value_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:114539,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:114540,1
    - Dst: sqlite3_value_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:114540,1
    - Dst: contextMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:114541,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:114552,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:114553,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:114560,1
    - Dst: contextMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:114565,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:114576,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:114581,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:114581,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:114582,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 63
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( sqlite3_value_type(argv[0])==SQLITE_NULL )
      pos:
        line_end: 114580
        line_start: 114580
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( zBlob==sqlite3_value_blob(argv[0]) )
      pos:
        line_end: 114539
        line_start: 114539
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( argc==1 )
      pos:
        line_end: 114516
        line_start: 114516
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 114586
      start: 114516
    functionDepth: 16
    functionLinenumber: 114516
    functionLinenumberEnd: 114586
    functionName: quoteFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_value
    - contextMalloc
    - UNUSED_PARAMETER
    - sqlite3AtoF
    - assert
    - sqlite3_value_type
    - sqlite3_value_blob
    - sqlite3_result_text
    - sqlite3_value_text
    - sqlite3_value_double
    - sqlite3_free
    - sqlite3_snprintf
    - sqlite3_value_bytes
    linkageType: ''
    returnType: void
    signature: void quoteFunc(sqlite3_context *context, int argc, sqlite3_value **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:114597,1
    - Dst: sqlite3_result_int
      Src: /src/nss/lib/sqlite/sqlite3.c:114599,1
    - Dst: sqlite3Utf8Read
      Src: /src/nss/lib/sqlite/sqlite3.c:114599,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114600
      start: 114592
    functionDepth: 15
    functionLinenumber: 114592
    functionLinenumberEnd: 114600
    functionName: unicodeFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_int
    - sqlite3_value_text
    - sqlite3Utf8Read
    linkageType: ''
    returnType: void
    signature: "void unicodeFunc(\n  sqlite3_context *context,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:114614,1
    - Dst: sqlite3_result_error_nomem
      Src: /src/nss/lib/sqlite/sqlite3.c:114616,1
    - Dst: sqlite3_value_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:114622,1
    - Dst: sqlite3_result_text64
      Src: /src/nss/lib/sqlite/sqlite3.c:114641,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114642
      start: 114607
    functionDepth: 14
    functionLinenumber: 114607
    functionLinenumberEnd: 114642
    functionName: charFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_value_int64
    - sqlite3_malloc64
    - sqlite3_result_error_nomem
    - sqlite3_result_text64
    linkageType: ''
    returnType: void
    signature: "void charFunc(\n  sqlite3_context *context,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:114656,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:114657,1
    - Dst: sqlite3_value_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:114658,1
    - Dst: sqlite3_value_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:114659,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:114660,1
    - Dst: sqlite3_value_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:114660,1
    - Dst: contextMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:114661,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:114669,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( argc==1 )
      pos:
        line_end: 114655
        line_start: 114655
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pBlob==sqlite3_value_blob(argv[0]) )
      pos:
        line_end: 114659
        line_start: 114659
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 114671
      start: 114648
    functionDepth: 16
    functionLinenumber: 114648
    functionLinenumberEnd: 114671
    functionName: hexFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - contextMalloc
    - UNUSED_PARAMETER
    - assert
    - sqlite3_value_blob
    - sqlite3_result_text
    - sqlite3_value_bytes
    linkageType: ''
    returnType: void
    signature: "void hexFunc(\n  sqlite3_context *context,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:114683,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:114684,1
    - Dst: sqlite3_value_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:114685,1
    - Dst: sqlite3_result_zeroblob64
      Src: /src/nss/lib/sqlite/sqlite3.c:114687,1
    - Dst: sqlite3_result_error_code
      Src: /src/nss/lib/sqlite/sqlite3.c:114689,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( argc==1 )
      pos:
        line_end: 114682
        line_start: 114682
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 114691
      start: 114676
    functionDepth: 13
    functionLinenumber: 114676
    functionLinenumberEnd: 114691
    functionName: zeroblobFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_error_code
    - UNUSED_PARAMETER
    - assert
    - sqlite3_result_zeroblob64
    - sqlite3_value_int64
    linkageType: ''
    returnType: void
    signature: "void zeroblobFunc(\n  sqlite3_context *context,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_context_db_handle
      Src: /src/nss/lib/sqlite/sqlite3.c:114715,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:114717,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:114718,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:114719,1
    - Dst: sqlite3_value_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:114721,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:114722,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:114722,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:114723,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:114725,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:114725,1
    - Dst: sqlite3_context_db_handle
      Src: /src/nss/lib/sqlite/sqlite3.c:114726,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:114730,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:114730,1
    - Dst: sqlite3_result_value
      Src: /src/nss/lib/sqlite/sqlite3.c:114731,1
    - Dst: sqlite3_value_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:114734,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:114735,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:114735,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:114736,1
    - Dst: sqlite3_value_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:114738,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:114739,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:114739,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:114741,1
    - Dst: contextMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:114742,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:114749,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:114754,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:114755,1
    - Dst: sqlite3_result_error_toobig
      Src: /src/nss/lib/sqlite/sqlite3.c:114757,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:114758,1
    - Dst: sqlite3_realloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:114767,1
    - Dst: sqlite3_result_error_nomem
      Src: /src/nss/lib/sqlite/sqlite3.c:114769,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:114770,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:114775,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:114780,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:114781,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:114783,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:114785,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 68
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( argc==3 )
      pos:
        line_end: 114716
        line_start: 114716
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( zPattern==sqlite3_value_text(argv[1]) )
      pos:
        line_end: 114734
        line_start: 114734
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( zStr==sqlite3_value_text(argv[0]) )
      pos:
        line_end: 114721
        line_start: 114721
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( sqlite3_value_type(argv[1])==SQLITE_NULL\n            || sqlite3_context_db_handle(context)->mallocFailed
        )"
      pos:
        line_end: 114725
        line_start: 114724
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3_value_type(argv[1])!=SQLITE_NULL )
      pos:
        line_end: 114729
        line_start: 114729
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( zRep==sqlite3_value_text(argv[2]) )
      pos:
        line_end: 114738
        line_start: 114738
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nOut<SQLITE_MAX_LENGTH )
      pos:
        line_end: 114740
        line_start: 114740
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( j+nStr-i+1<=nOut )
      pos:
        line_end: 114779
        line_start: 114779
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( j<=nOut )
      pos:
        line_end: 114782
        line_start: 114782
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 114786
      start: 114699
    functionDepth: 16
    functionLinenumber: 114699
    functionLinenumberEnd: 114786
    functionName: replaceFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - contextMalloc
    - sqlite3_context_db_handle
    - sqlite3_realloc64
    - UNUSED_PARAMETER
    - memcmp
    - sqlite3_result_error_toobig
    - assert
    - sqlite3_value_type
    - sqlite3_result_error_nomem
    - sqlite3_value_text
    - sqlite3_result_value
    - testcase
    - sqlite3_free
    - sqlite3_result_text
    - sqlite3_value_bytes
    linkageType: ''
    returnType: void
    signature: "void replaceFunc(\n  sqlite3_context *context,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:114806,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:114809,1
    - Dst: sqlite3_value_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:114811,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:114812,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:114812,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:114820,1
    - Dst: SQLITE_SKIP_UTF8
      Src: /src/nss/lib/sqlite/sqlite3.c:114825,1
    - Dst: contextMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:114828,1
    - Dst: SQLITE_SKIP_UTF8
      Src: /src/nss/lib/sqlite/sqlite3.c:114835,1
    - Dst: SQLITE_PTR_TO_INT
      Src: /src/nss/lib/sqlite/sqlite3.c:114841,1
    - Dst: sqlite3_user_data
      Src: /src/nss/lib/sqlite/sqlite3.c:114841,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:114847,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:114859,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:114866,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:114869,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 66
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( zIn==sqlite3_value_text(argv[0]) )
      pos:
        line_end: 114811
        line_start: 114811
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 114870
      start: 114792
    functionDepth: 16
    functionLinenumber: 114792
    functionLinenumberEnd: 114870
    functionName: trimFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - SQLITE_PTR_TO_INT
    - sqlite3_user_data
    - contextMalloc
    - assert
    - sqlite3_value_type
    - SQLITE_SKIP_UTF8
    - sqlite3_value_text
    - memcmp
    - sqlite3_free
    - sqlite3_result_text
    - sqlite3_value_bytes
    linkageType: ''
    returnType: void
    signature: "void trimFunc(\n  sqlite3_context *context,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114889
      start: 114883
    functionDepth: 0
    functionLinenumber: 114883
    functionLinenumberEnd: 114889
    functionName: unknownFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void unknownFunc(\n  sqlite3_context *context,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:114922,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:114923,1
    - Dst: sqlite3Isalpha
      Src: /src/nss/lib/sqlite/sqlite3.c:114925,1
    - Dst: sqlite3Toupper
      Src: /src/nss/lib/sqlite/sqlite3.c:114928,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:114944,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:114948,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( argc==1 )
      pos:
        line_end: 114921
        line_start: 114921
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 114950
      start: 114904
    functionDepth: 15
    functionLinenumber: 114904
    functionLinenumberEnd: 114950
    functionName: soundexFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3Isalpha
    - sqlite3Toupper
    - sqlite3_value_text
    - sqlite3_result_text
    linkageType: ''
    returnType: void
    signature: "void soundexFunc(\n  sqlite3_context *context,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:114958,1
    - Dst: sqlite3_context_db_handle
      Src: /src/nss/lib/sqlite/sqlite3.c:114960,1
    - Dst: sqlite3_result_error
      Src: /src/nss/lib/sqlite/sqlite3.c:114967,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:114972,1
    - Dst: sqlite3_load_extension
      Src: /src/nss/lib/sqlite/sqlite3.c:114976,1
    - Dst: sqlite3_result_error
      Src: /src/nss/lib/sqlite/sqlite3.c:114977,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:114978,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114980
      start: 114957
    functionDepth: 15
    functionLinenumber: 114957
    functionLinenumberEnd: 114980
    functionName: loadExt
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_load_extension
    - sqlite3_context_db_handle
    - sqlite3_value_text
    - sqlite3_free
    - sqlite3_result_error
    linkageType: ''
    returnType: void
    signature: void loadExt(sqlite3_context *context, int argc, sqlite3_value **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:115010,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:115011,1
    - Dst: sqlite3_aggregate_context
      Src: /src/nss/lib/sqlite/sqlite3.c:115012,1
    - Dst: sqlite3_value_numeric_type
      Src: /src/nss/lib/sqlite/sqlite3.c:115013,1
    - Dst: sqlite3_value_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:115017,1
    - Dst: sqlite3AddInt64
      Src: /src/nss/lib/sqlite/sqlite3.c:115019,1
    - Dst: sqlite3_value_double
      Src: /src/nss/lib/sqlite/sqlite3.c:115023,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( argc==1 )
      pos:
        line_end: 115009
        line_start: 115009
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 115027
      start: 115007
    functionDepth: 13
    functionLinenumber: 115007
    functionLinenumberEnd: 115027
    functionName: sumStep
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_aggregate_context
    - sqlite3_value_numeric_type
    - UNUSED_PARAMETER
    - sqlite3AddInt64
    - assert
    - sqlite3_value_int64
    - sqlite3_value_double
    linkageType: ''
    returnType: void
    signature: void sumStep(sqlite3_context *context, int argc, sqlite3_value **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:115032,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:115033,1
    - Dst: sqlite3_aggregate_context
      Src: /src/nss/lib/sqlite/sqlite3.c:115034,1
    - Dst: sqlite3_value_numeric_type
      Src: /src/nss/lib/sqlite/sqlite3.c:115035,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:115038,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:115039,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:115041,1
    - Dst: sqlite3_value_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:115043,1
    - Dst: sqlite3_value_double
      Src: /src/nss/lib/sqlite/sqlite3.c:115047,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( argc==1 )
      pos:
        line_end: 115031
        line_start: 115031
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->cnt>0 )
      pos:
        line_end: 115038
        line_start: 115038
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( type==SQLITE_INTEGER || p->approx )
      pos:
        line_end: 115040
        line_start: 115040
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 115050
      start: 115029
    functionDepth: 13
    functionLinenumber: 115029
    functionLinenumberEnd: 115050
    functionName: sumInverse
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ALWAYS
    - sqlite3_aggregate_context
    - sqlite3_value_numeric_type
    - UNUSED_PARAMETER
    - assert
    - sqlite3_value_int64
    - sqlite3_value_double
    linkageType: ''
    returnType: void
    signature: void sumInverse(sqlite3_context *context, int argc, sqlite3_value**argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_aggregate_context
      Src: /src/nss/lib/sqlite/sqlite3.c:115056,1
    - Dst: sqlite3_result_error
      Src: /src/nss/lib/sqlite/sqlite3.c:115059,1
    - Dst: sqlite3_result_double
      Src: /src/nss/lib/sqlite/sqlite3.c:115061,1
    - Dst: sqlite3_result_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:115063,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - context
    argTypes:
    - sqlite3_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115066
      start: 115054
    functionDepth: 13
    functionLinenumber: 115054
    functionLinenumberEnd: 115066
    functionName: sumFinalize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_double
    - sqlite3_aggregate_context
    - sqlite3_result_int64
    - sqlite3_result_error
    linkageType: ''
    returnType: void
    signature: void sumFinalize(sqlite3_context *context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_aggregate_context
      Src: /src/nss/lib/sqlite/sqlite3.c:115069,1
    - Dst: sqlite3_result_double
      Src: /src/nss/lib/sqlite/sqlite3.c:115071,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - context
    argTypes:
    - sqlite3_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115073
      start: 115067
    functionDepth: 13
    functionLinenumber: 115067
    functionLinenumberEnd: 115073
    functionName: avgFinalize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_double
    - sqlite3_aggregate_context
    linkageType: ''
    returnType: void
    signature: void avgFinalize(sqlite3_context *context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_aggregate_context
      Src: /src/nss/lib/sqlite/sqlite3.c:115076,1
    - Dst: sqlite3_result_double
      Src: /src/nss/lib/sqlite/sqlite3.c:115078,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - context
    argTypes:
    - sqlite3_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115079
      start: 115074
    functionDepth: 13
    functionLinenumber: 115074
    functionLinenumberEnd: 115079
    functionName: totalFinalize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_double
    - sqlite3_aggregate_context
    linkageType: ''
    returnType: void
    signature: void totalFinalize(sqlite3_context *context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_aggregate_context
      Src: /src/nss/lib/sqlite/sqlite3.c:115098,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:115099,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:115108,1
    - Dst: sqlite3_aggregate_count
      Src: /src/nss/lib/sqlite/sqlite3.c:115109,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 6
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: "( argc==1 || p==0 || p->n>0x7fffffff || p->bInverse\n          ||
        p->n==sqlite3_aggregate_count(context) )"
      pos:
        line_end: 115108
        line_start: 115107
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 115111
      start: 115096
    functionDepth: 13
    functionLinenumber: 115096
    functionLinenumberEnd: 115111
    functionName: countStep
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_aggregate_count
    - sqlite3_aggregate_context
    - sqlite3_value_type
    linkageType: ''
    returnType: void
    signature: void countStep(sqlite3_context *context, int argc, sqlite3_value **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_aggregate_context
      Src: /src/nss/lib/sqlite/sqlite3.c:115114,1
    - Dst: sqlite3_result_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:115115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - context
    argTypes:
    - sqlite3_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115116
      start: 115112
    functionDepth: 13
    functionLinenumber: 115112
    functionLinenumberEnd: 115116
    functionName: countFinalize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_aggregate_context
    - sqlite3_result_int64
    linkageType: ''
    returnType: void
    signature: void countFinalize(sqlite3_context *context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_aggregate_context
      Src: /src/nss/lib/sqlite/sqlite3.c:115120,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:115122,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:115122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115128
      start: 115118
    functionDepth: 13
    functionLinenumber: 115118
    functionLinenumberEnd: 115128
    functionName: countInverse
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ALWAYS
    - sqlite3_aggregate_context
    - sqlite3_value_type
    linkageType: ''
    returnType: void
    signature: void countInverse(sqlite3_context *ctx, int argc, sqlite3_value **argv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:115143,1
    - Dst: sqlite3_aggregate_context
      Src: /src/nss/lib/sqlite/sqlite3.c:115145,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:115148,1
    - Dst: sqlite3SkipAccumulatorLoad
      Src: /src/nss/lib/sqlite/sqlite3.c:115149,1
    - Dst: sqlite3GetFuncCollSeq
      Src: /src/nss/lib/sqlite/sqlite3.c:115153,1
    - Dst: sqlite3_user_data
      Src: /src/nss/lib/sqlite/sqlite3.c:115162,1
    - Dst: sqlite3MemCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:115163,1
    - Dst: sqlite3VdbeMemCopy
      Src: /src/nss/lib/sqlite/sqlite3.c:115165,1
    - Dst: sqlite3SkipAccumulatorLoad
      Src: /src/nss/lib/sqlite/sqlite3.c:115167,1
    - Dst: sqlite3_context_db_handle
      Src: /src/nss/lib/sqlite/sqlite3.c:115170,1
    - Dst: sqlite3VdbeMemCopy
      Src: /src/nss/lib/sqlite/sqlite3.c:115171,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - context
    - NotUsed
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115173
      start: 115136
    functionDepth: 16
    functionLinenumber: 115136
    functionLinenumberEnd: 115173
    functionName: minmaxStep
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3MemCompare
    - sqlite3_aggregate_context
    - sqlite3VdbeMemCopy
    - sqlite3_context_db_handle
    - UNUSED_PARAMETER
    - sqlite3SkipAccumulatorLoad
    - sqlite3GetFuncCollSeq
    - sqlite3_value_type
    - sqlite3_user_data
    linkageType: ''
    returnType: void
    signature: "void minmaxStep(\n  sqlite3_context *context, \n  int NotUsed, \n
      \ sqlite3_value **argv\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_aggregate_context
      Src: /src/nss/lib/sqlite/sqlite3.c:115176,1
    - Dst: sqlite3_result_value
      Src: /src/nss/lib/sqlite/sqlite3.c:115179,1
    - Dst: sqlite3VdbeMemRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:115181,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - context
    - bValue
    argTypes:
    - sqlite3_context*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115183
      start: 115174
    functionDepth: 14
    functionLinenumber: 115174
    functionLinenumberEnd: 115183
    functionName: minMaxValueFinalize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeMemRelease
    - sqlite3_result_value
    - sqlite3_aggregate_context
    linkageType: ''
    returnType: void
    signature: void minMaxValueFinalize(sqlite3_context *context, int bValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: minMaxValueFinalize
      Src: /src/nss/lib/sqlite/sqlite3.c:115186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - context
    argTypes:
    - sqlite3_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115187
      start: 115185
    functionDepth: 15
    functionLinenumber: 115185
    functionLinenumberEnd: 115187
    functionName: minMaxValue
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - minMaxValueFinalize
    linkageType: ''
    returnType: void
    signature: void minMaxValue(sqlite3_context *context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: minMaxValueFinalize
      Src: /src/nss/lib/sqlite/sqlite3.c:115192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - context
    argTypes:
    - sqlite3_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115193
      start: 115191
    functionDepth: 15
    functionLinenumber: 115191
    functionLinenumberEnd: 115193
    functionName: minMaxFinalize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - minMaxValueFinalize
    linkageType: ''
    returnType: void
    signature: void minMaxFinalize(sqlite3_context *context)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:115207,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:115208,1
    - Dst: sqlite3_aggregate_context
      Src: /src/nss/lib/sqlite/sqlite3.c:115209,1
    - Dst: sqlite3_context_db_handle
      Src: /src/nss/lib/sqlite/sqlite3.c:115212,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:115217,1
    - Dst: sqlite3_value_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:115218,1
    - Dst: sqlite3_str_append
      Src: /src/nss/lib/sqlite/sqlite3.c:115223,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:115225,1
    - Dst: sqlite3_value_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:115226,1
    - Dst: sqlite3_str_append
      Src: /src/nss/lib/sqlite/sqlite3.c:115227,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( argc==1 || argc==2 )
      pos:
        line_end: 115206
        line_start: 115206
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 115229
      start: 115198
    functionDepth: 16
    functionLinenumber: 115198
    functionLinenumberEnd: 115229
    functionName: groupConcatStep
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_str_append
    - sqlite3_aggregate_context
    - sqlite3_context_db_handle
    - assert
    - sqlite3_value_type
    - sqlite3_value_text
    - sqlite3_value_bytes
    linkageType: ''
    returnType: void
    signature: "void groupConcatStep(\n  sqlite3_context *context,\n  int argc,\n
      \ sqlite3_value **argv\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:115238,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:115239,1
    - Dst: sqlite3_aggregate_context
      Src: /src/nss/lib/sqlite/sqlite3.c:115240,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:115243,1
    - Dst: sqlite3_value_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:115244,1
    - Dst: sqlite3_value_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:115246,1
    - Dst: memmove
      Src: /src/nss/lib/sqlite/sqlite3.c:115254,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( argc==1 || argc==2 )
      pos:
        line_end: 115237
        line_start: 115237
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 115258
      start: 115231
    functionDepth: 16
    functionLinenumber: 115231
    functionLinenumberEnd: 115258
    functionName: groupConcatInverse
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ALWAYS
    - sqlite3_aggregate_context
    - assert
    - sqlite3_value_type
    - memmove
    - sqlite3_value_bytes
    linkageType: ''
    returnType: void
    signature: "void groupConcatInverse(\n  sqlite3_context *context,\n  int argc,\n
      \ sqlite3_value **argv\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_aggregate_context
      Src: /src/nss/lib/sqlite/sqlite3.c:115264,1
    - Dst: sqlite3_result_error_toobig
      Src: /src/nss/lib/sqlite/sqlite3.c:115267,1
    - Dst: sqlite3_result_error_nomem
      Src: /src/nss/lib/sqlite/sqlite3.c:115269,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:115271,1
    - Dst: sqlite3StrAccumFinish
      Src: /src/nss/lib/sqlite/sqlite3.c:115271,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - context
    argTypes:
    - sqlite3_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115275
      start: 115262
    functionDepth: 14
    functionLinenumber: 115262
    functionLinenumberEnd: 115275
    functionName: groupConcatFinalize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_aggregate_context
    - sqlite3StrAccumFinish
    - sqlite3_result_error_nomem
    - sqlite3_result_error_toobig
    - sqlite3_result_text
    linkageType: ''
    returnType: void
    signature: void groupConcatFinalize(sqlite3_context *context)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_aggregate_context
      Src: /src/nss/lib/sqlite/sqlite3.c:115279,1
    - Dst: sqlite3_result_error_toobig
      Src: /src/nss/lib/sqlite/sqlite3.c:115282,1
    - Dst: sqlite3_result_error_nomem
      Src: /src/nss/lib/sqlite/sqlite3.c:115284,1
    - Dst: sqlite3_str_value
      Src: /src/nss/lib/sqlite/sqlite3.c:115286,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:115287,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - context
    argTypes:
    - sqlite3_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115290
      start: 115277
    functionDepth: 14
    functionLinenumber: 115277
    functionLinenumberEnd: 115290
    functionName: groupConcatValue
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_aggregate_context
    - sqlite3_result_error_nomem
    - sqlite3_str_value
    - sqlite3_result_error_toobig
    - sqlite3_result_text
    linkageType: ''
    returnType: void
    signature: void groupConcatValue(sqlite3_context *context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_overload_function
      Src: /src/nss/lib/sqlite/sqlite3.c:115301,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:115302,1
    - Dst: sqlite3OomFault
      Src: /src/nss/lib/sqlite/sqlite3.c:115304,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts:
    - condition: ( rc==SQLITE_NOMEM || rc==SQLITE_OK )
      pos:
        line_end: 115301
        line_start: 115301
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 115306
      start: 115300
    functionDepth: 1
    functionLinenumber: 115300
    functionLinenumberEnd: 115306
    functionName: sqlite3RegisterPerConnectionBuiltinFunctions
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_overload_function
    - sqlite3OomFault
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3RegisterPerConnectionBuiltinFunctions(sqlite3
      *db)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3CreateFunc
      Src: /src/nss/lib/sqlite/sqlite3.c:115323,1
    - Dst: sqlite3CreateFunc
      Src: /src/nss/lib/sqlite/sqlite3.c:115324,1
    - Dst: sqlite3FindFunction
      Src: /src/nss/lib/sqlite/sqlite3.c:115325,1
    - Dst: sqlite3FindFunction
      Src: /src/nss/lib/sqlite/sqlite3.c:115326,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - db
    - caseSensitive
    argTypes:
    - sqlite3*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115327
      start: 115313
    functionDepth: 8
    functionLinenumber: 115313
    functionLinenumberEnd: 115327
    functionName: sqlite3RegisterLikeFunctions
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3FindFunction
    - sqlite3CreateFunc
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3RegisterLikeFunctions(sqlite3 *db, int caseSensitive)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:115352,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:115352,1
    - Dst: sqlite3FindFunction
      Src: /src/nss/lib/sqlite/sqlite3.c:115354,1
    - Dst: NEVER
      Src: /src/nss/lib/sqlite/sqlite3.c:115355,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:115373,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:115374,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:115375,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:115376,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 4
    argNames:
    - db
    - pExpr
    - pIsNocase
    - aWc
    argTypes:
    - sqlite3*
    - Expr*
    - int*
    - char*
    assertStmts:
    - condition: ( !ExprHasProperty(pExpr, EP_xIsSelect) )
      pos:
        line_end: 115351
        line_start: 115351
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (char*)&likeInfoAlt == (char*)&likeInfoAlt.matchAll )
      pos:
        line_end: 115373
        line_start: 115373
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( &((char*)&likeInfoAlt)[1] == (char*)&likeInfoAlt.matchOne )
      pos:
        line_end: 115374
        line_start: 115374
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( &((char*)&likeInfoAlt)[2] == (char*)&likeInfoAlt.matchSet )
      pos:
        line_end: 115375
        line_start: 115375
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 115379
      start: 115346
    functionDepth: 8
    functionLinenumber: 115346
    functionLinenumberEnd: 115379
    functionName: sqlite3IsLikeFunction
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - NEVER
    - memcpy
    - sqlite3FindFunction
    - assert
    - ExprHasProperty
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3IsLikeFunction(sqlite3 *db, Expr *pExpr, int
      *pIsNocase, char *aWc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: FUNCTION
      Src: /src/nss/lib/sqlite/sqlite3.c:115401,1
    - Dst: VFUNCTION
      Src: /src/nss/lib/sqlite/sqlite3.c:115404,1
    - Dst: VFUNCTION
      Src: /src/nss/lib/sqlite/sqlite3.c:115405,1
    - Dst: FUNCTION
      Src: /src/nss/lib/sqlite/sqlite3.c:115408,1
    - Dst: DFUNCTION
      Src: /src/nss/lib/sqlite/sqlite3.c:115411,1
    - Dst: DFUNCTION
      Src: /src/nss/lib/sqlite/sqlite3.c:115412,1
    - Dst: FUNCTION2
      Src: /src/nss/lib/sqlite/sqlite3.c:115414,1
    - Dst: FUNCTION2
      Src: /src/nss/lib/sqlite/sqlite3.c:115415,1
    - Dst: FUNCTION2
      Src: /src/nss/lib/sqlite/sqlite3.c:115416,1
    - Dst: FUNCTION2
      Src: /src/nss/lib/sqlite/sqlite3.c:115418,1
    - Dst: FUNCTION2
      Src: /src/nss/lib/sqlite/sqlite3.c:115421,1
    - Dst: FUNCTION
      Src: /src/nss/lib/sqlite/sqlite3.c:115424,1
    - Dst: FUNCTION
      Src: /src/nss/lib/sqlite/sqlite3.c:115425,1
    - Dst: FUNCTION
      Src: /src/nss/lib/sqlite/sqlite3.c:115426,1
    - Dst: FUNCTION
      Src: /src/nss/lib/sqlite/sqlite3.c:115427,1
    - Dst: FUNCTION
      Src: /src/nss/lib/sqlite/sqlite3.c:115428,1
    - Dst: FUNCTION
      Src: /src/nss/lib/sqlite/sqlite3.c:115429,1
    - Dst: FUNCTION
      Src: /src/nss/lib/sqlite/sqlite3.c:115430,1
    - Dst: FUNCTION
      Src: /src/nss/lib/sqlite/sqlite3.c:115431,1
    - Dst: WAGGREGATE
      Src: /src/nss/lib/sqlite/sqlite3.c:115432,1
    - Dst: FUNCTION
      Src: /src/nss/lib/sqlite/sqlite3.c:115434,1
    - Dst: FUNCTION
      Src: /src/nss/lib/sqlite/sqlite3.c:115435,1
    - Dst: WAGGREGATE
      Src: /src/nss/lib/sqlite/sqlite3.c:115436,1
    - Dst: FUNCTION2
      Src: /src/nss/lib/sqlite/sqlite3.c:115438,1
    - Dst: FUNCTION2
      Src: /src/nss/lib/sqlite/sqlite3.c:115439,1
    - Dst: FUNCTION
      Src: /src/nss/lib/sqlite/sqlite3.c:115440,1
    - Dst: FUNCTION
      Src: /src/nss/lib/sqlite/sqlite3.c:115441,1
    - Dst: FUNCTION
      Src: /src/nss/lib/sqlite/sqlite3.c:115442,1
    - Dst: FUNCTION
      Src: /src/nss/lib/sqlite/sqlite3.c:115443,1
    - Dst: FUNCTION
      Src: /src/nss/lib/sqlite/sqlite3.c:115444,1
    - Dst: FUNCTION
      Src: /src/nss/lib/sqlite/sqlite3.c:115446,1
    - Dst: FUNCTION
      Src: /src/nss/lib/sqlite/sqlite3.c:115447,1
    - Dst: FUNCTION
      Src: /src/nss/lib/sqlite/sqlite3.c:115449,1
    - Dst: FUNCTION
      Src: /src/nss/lib/sqlite/sqlite3.c:115450,1
    - Dst: FUNCTION
      Src: /src/nss/lib/sqlite/sqlite3.c:115451,1
    - Dst: FUNCTION2
      Src: /src/nss/lib/sqlite/sqlite3.c:115452,1
    - Dst: VFUNCTION
      Src: /src/nss/lib/sqlite/sqlite3.c:115453,1
    - Dst: VFUNCTION
      Src: /src/nss/lib/sqlite/sqlite3.c:115454,1
    - Dst: FUNCTION
      Src: /src/nss/lib/sqlite/sqlite3.c:115455,1
    - Dst: DFUNCTION
      Src: /src/nss/lib/sqlite/sqlite3.c:115456,1
    - Dst: DFUNCTION
      Src: /src/nss/lib/sqlite/sqlite3.c:115457,1
    - Dst: FUNCTION
      Src: /src/nss/lib/sqlite/sqlite3.c:115458,1
    - Dst: FUNCTION
      Src: /src/nss/lib/sqlite/sqlite3.c:115459,1
    - Dst: VFUNCTION
      Src: /src/nss/lib/sqlite/sqlite3.c:115460,1
    - Dst: VFUNCTION
      Src: /src/nss/lib/sqlite/sqlite3.c:115461,1
    - Dst: VFUNCTION
      Src: /src/nss/lib/sqlite/sqlite3.c:115462,1
    - Dst: FUNCTION
      Src: /src/nss/lib/sqlite/sqlite3.c:115463,1
    - Dst: FUNCTION
      Src: /src/nss/lib/sqlite/sqlite3.c:115464,1
    - Dst: FUNCTION
      Src: /src/nss/lib/sqlite/sqlite3.c:115465,1
    - Dst: FUNCTION
      Src: /src/nss/lib/sqlite/sqlite3.c:115466,1
    - Dst: WAGGREGATE
      Src: /src/nss/lib/sqlite/sqlite3.c:115467,1
    - Dst: WAGGREGATE
      Src: /src/nss/lib/sqlite/sqlite3.c:115468,1
    - Dst: WAGGREGATE
      Src: /src/nss/lib/sqlite/sqlite3.c:115469,1
    - Dst: WAGGREGATE
      Src: /src/nss/lib/sqlite/sqlite3.c:115470,1
    - Dst: WAGGREGATE
      Src: /src/nss/lib/sqlite/sqlite3.c:115472,1
    - Dst: WAGGREGATE
      Src: /src/nss/lib/sqlite/sqlite3.c:115474,1
    - Dst: WAGGREGATE
      Src: /src/nss/lib/sqlite/sqlite3.c:115476,1
    - Dst: LIKEFUNC
      Src: /src/nss/lib/sqlite/sqlite3.c:115479,1
    - Dst: LIKEFUNC
      Src: /src/nss/lib/sqlite/sqlite3.c:115481,1
    - Dst: LIKEFUNC
      Src: /src/nss/lib/sqlite/sqlite3.c:115482,1
    - Dst: LIKEFUNC
      Src: /src/nss/lib/sqlite/sqlite3.c:115484,1
    - Dst: LIKEFUNC
      Src: /src/nss/lib/sqlite/sqlite3.c:115485,1
    - Dst: FUNCTION
      Src: /src/nss/lib/sqlite/sqlite3.c:115488,1
    - Dst: FUNCTION
      Src: /src/nss/lib/sqlite/sqlite3.c:115490,1
    - Dst: FUNCTION
      Src: /src/nss/lib/sqlite/sqlite3.c:115491,1
    - Dst: FUNCTION2
      Src: /src/nss/lib/sqlite/sqlite3.c:115492,1
    - Dst: sqlite3AlterFunctions
      Src: /src/nss/lib/sqlite/sqlite3.c:115495,1
    - Dst: sqlite3WindowFunctions
      Src: /src/nss/lib/sqlite/sqlite3.c:115497,1
    - Dst: sqlite3AnalyzeFunctions
      Src: /src/nss/lib/sqlite/sqlite3.c:115499,1
    - Dst: sqlite3RegisterDateTimeFunctions
      Src: /src/nss/lib/sqlite/sqlite3.c:115501,1
    - Dst: sqlite3InsertBuiltinFuncs
      Src: /src/nss/lib/sqlite/sqlite3.c:115502,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:115502,1
    - Dst: printf
      Src: /src/nss/lib/sqlite/sqlite3.c:115509,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:115511,1
    - Dst: printf
      Src: /src/nss/lib/sqlite/sqlite3.c:115513,1
    - Dst: printf
      Src: /src/nss/lib/sqlite/sqlite3.c:115515,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115519
      start: 115388
    functionDepth: 3
    functionLinenumber: 115388
    functionLinenumberEnd: 115519
    functionName: sqlite3RegisterBuiltinFunctions
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3RegisterDateTimeFunctions
    - FUNCTION
    - sqlite3AlterFunctions
    - WAGGREGATE
    - FUNCTION2
    - sqlite3InsertBuiltinFuncs
    - ArraySize
    - printf
    - DFUNCTION
    - sqlite3Strlen30
    - sqlite3AnalyzeFunctions
    - VFUNCTION
    - sqlite3WindowFunctions
    - LIKEFUNC
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3RegisterBuiltinFunctions(void)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:115718,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:115719,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:115720,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:115740,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:115743,1
    - Dst: sqlite3DbMallocRawNN
      Src: /src/nss/lib/sqlite/sqlite3.c:115744,1
    - Dst: IsUniqueIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:115750,1
    - Dst: IsPrimaryKeyIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:115759,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:115784,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:115788,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:115802,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:115806,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 63
    argCount: 5
    argNames:
    - pParse
    - pParent
    - pFKey
    - ppIdx
    - paiCol
    argTypes:
    - Parse*
    - Table*
    - FKey*
    - Index**
    - int**
    assertStmts:
    - condition: ( ppIdx && *ppIdx==0 )
      pos:
        line_end: 115717
        line_start: 115717
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nCol>1 )
      pos:
        line_end: 115742
        line_start: 115742
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !paiCol || *paiCol==0 )
      pos:
        line_end: 115718
        line_start: 115718
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pParse )
      pos:
        line_end: 115719
        line_start: 115719
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 115812
      start: 115705
    functionDepth: 10
    functionLinenumber: 115705
    functionLinenumberEnd: 115812
    functionName: sqlite3FkLocateIndex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - IsUniqueIndex
    - IsPrimaryKeyIndex
    - sqlite3StrICmp
    - sqlite3DbMallocRawNN
    - sqlite3DbFree
    - assert
    - sqlite3ErrorMsg
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3FkLocateIndex(\n  Parse *pParse,                  /*
      Parse context to store any error in */\n  Table *pParent,                 /*
      Parent table of FK constraint pFKey */\n  FKey *pFKey,                    /*
      Foreign key to find index for */\n  Index **ppIdx,                  /* OUT:
      Unique index on parent table */\n  int **paiCol                    /* OUT: Map
      of index columns in pFKey */\n)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetVdbe
      Src: /src/nss/lib/sqlite/sqlite3.c:115852,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:115854,1
    - Dst: sqlite3VdbeVerifyAbortable
      Src: /src/nss/lib/sqlite/sqlite3.c:115856,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:115870,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:115871,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:115875,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:115875,1
    - Dst: sqlite3GetTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:115883,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:115890,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:115891,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:115892,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:115899,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:115899,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:115900,1
    - Dst: sqlite3OpenTable
      Src: /src/nss/lib/sqlite/sqlite3.c:115903,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:115904,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:115904,1
    - Dst: sqlite3VdbeGoto
      Src: /src/nss/lib/sqlite/sqlite3.c:115905,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:115906,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:115906,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:115907,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:115908,1
    - Dst: sqlite3GetTempRange
      Src: /src/nss/lib/sqlite/sqlite3.c:115911,1
    - Dst: sqlite3GetTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:115912,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:115914,1
    - Dst: sqlite3VdbeSetP4KeyInfo
      Src: /src/nss/lib/sqlite/sqlite3.c:115915,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:115917,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:115931,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:115935,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:115936,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:115941,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:115941,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:115942,1
    - Dst: sqlite3VdbeGoto
      Src: /src/nss/lib/sqlite/sqlite3.c:115944,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:115947,1
    - Dst: sqlite3IndexAffinityStr
      Src: /src/nss/lib/sqlite/sqlite3.c:115948,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/nss/lib/sqlite/sqlite3.c:115949,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:115949,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:115951,1
    - Dst: sqlite3ReleaseTempRange
      Src: /src/nss/lib/sqlite/sqlite3.c:115952,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:115964,1
    - Dst: sqlite3HaltConstraint
      Src: /src/nss/lib/sqlite/sqlite3.c:115965,1
    - Dst: sqlite3MayAbort
      Src: /src/nss/lib/sqlite/sqlite3.c:115969,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:115971,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:115974,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:115975,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 64
    argCount: 9
    argNames:
    - pParse
    - iDb
    - pTab
    - pIdx
    - pFKey
    - aiCol
    - regData
    - nIncr
    - isIgnore
    argTypes:
    - Parse*
    - int
    - Table*
    - Index*
    - FKey*
    - int*
    - int
    - int
    - int
    assertStmts:
    - condition: ( nIncr==1 )
      pos:
        line_end: 115963
        line_start: 115963
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( aiCol[i]!=pTab->iPKey )
      pos:
        line_end: 115935
        line_start: 115935
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIdx->aiColumn[i]>=0 )
      pos:
        line_end: 115934
        line_start: 115934
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 115976
      start: 115840
    functionDepth: 13
    functionLinenumber: 115840
    functionLinenumberEnd: 115976
    functionName: fkLookupParent
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeSetP4KeyInfo
    - sqlite3VdbeAddOp2
    - sqlite3VdbeResolveLabel
    - sqlite3VdbeAddOp3
    - sqlite3HaltConstraint
    - sqlite3GetVdbe
    - sqlite3VdbeGoto
    - sqlite3VdbeCurrentAddr
    - sqlite3GetTempReg
    - sqlite3VdbeAddOp4Int
    - sqlite3MayAbort
    - assert
    - sqlite3VdbeJumpHere
    - sqlite3GetTempRange
    - sqlite3ReleaseTempRange
    - sqlite3IndexAffinityStr
    - sqlite3VdbeAddOp4
    - sqlite3VdbeAddOp1
    - VdbeCoverage
    - sqlite3OpenTable
    - sqlite3ReleaseTempReg
    - sqlite3VdbeChangeP5
    - sqlite3VdbeVerifyAbortable
    - sqlite3VdbeMakeLabel
    linkageType: ''
    returnType: void
    signature: "void fkLookupParent(\n  Parse *pParse,        /* Parse context */\n
      \ int iDb,              /* Index of database housing pTab */\n  Table *pTab,
      \         /* Parent table of FK pFKey */\n  Index *pIdx,          /* Unique
      index on parent key columns in pTab */\n  FKey *pFKey,          /* Foreign key
      constraint */\n  int *aiCol,           /* Map from parent key columns to child
      table columns */\n  int regData,          /* Address of array containing child
      table row */\n  int nIncr,            /* Increment constraint counter by this
      */\n  int isIgnore          /* If true, pretend pTab contains all NULL values
      */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Expr
      Src: /src/nss/lib/sqlite/sqlite3.c:115998,1
    - Dst: sqlite3ExprAddCollateString
      Src: /src/nss/lib/sqlite/sqlite3.c:116006,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - pParse
    - pTab
    - regBase
    - iCol
    argTypes:
    - Parse*
    - Table*
    - int
    - i16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116013
      start: 115987
    functionDepth: 9
    functionLinenumber: 115987
    functionLinenumberEnd: 116013
    functionName: exprTableRegister
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ExprAddCollateString
    - sqlite3Expr
    linkageType: ''
    returnType: Expr
    signature: "Expr *exprTableRegister(\n  Parse *pParse,     /* Parsing and code
      generating context */\n  Table *pTab,       /* The table whose content is at
      r[regBase]... */\n  int regBase,       /* Contents of table pTab */\n  i16 iCol
      \          /* Which column of pTab is desired */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Expr
      Src: /src/nss/lib/sqlite/sqlite3.c:116025,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - db
    - pTab
    - iCursor
    - iCol
    argTypes:
    - sqlite3*
    - Table*
    - int
    - i16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116032
      start: 116019
    functionDepth: 9
    functionLinenumber: 116019
    functionLinenumberEnd: 116032
    functionName: exprTableColumn
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Expr
    linkageType: ''
    returnType: Expr
    signature: "Expr *exprTableColumn(\n  sqlite3 *db,      /* The database connection
      */\n  Table *pTab,      /* The table whose column is desired */\n  int iCursor,
      \     /* The open cursor on the table */\n  i16 iCol          /* The column
      that is wanted */\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetVdbe
      Src: /src/nss/lib/sqlite/sqlite3.c:116082,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:116084,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:116085,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:116086,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:116087,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:116087,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:116090,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:116091,1
    - Dst: exprTableRegister
      Src: /src/nss/lib/sqlite/sqlite3.c:116110,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:116112,1
    - Dst: sqlite3Expr
      Src: /src/nss/lib/sqlite/sqlite3.c:116114,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:116115,1
    - Dst: sqlite3ExprAnd
      Src: /src/nss/lib/sqlite/sqlite3.c:116116,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:116137,1
    - Dst: exprTableRegister
      Src: /src/nss/lib/sqlite/sqlite3.c:116138,1
    - Dst: exprTableColumn
      Src: /src/nss/lib/sqlite/sqlite3.c:116139,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:116140,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:116143,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:116146,1
    - Dst: exprTableRegister
      Src: /src/nss/lib/sqlite/sqlite3.c:116147,1
    - Dst: sqlite3Expr
      Src: /src/nss/lib/sqlite/sqlite3.c:116148,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:116149,1
    - Dst: sqlite3ExprAnd
      Src: /src/nss/lib/sqlite/sqlite3.c:116150,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:116152,1
    - Dst: sqlite3ExprAnd
      Src: /src/nss/lib/sqlite/sqlite3.c:116154,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:116158,1
    - Dst: sqlite3ResolveExprNames
      Src: /src/nss/lib/sqlite/sqlite3.c:116161,1
    - Dst: sqlite3WhereBegin
      Src: /src/nss/lib/sqlite/sqlite3.c:116167,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:116168,1
    - Dst: sqlite3WhereEnd
      Src: /src/nss/lib/sqlite/sqlite3.c:116170,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:116175,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:116177,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 52
    argCount: 8
    argNames:
    - pParse
    - pSrc
    - pTab
    - pIdx
    - pFKey
    - aiCol
    - regData
    - nIncr
    argTypes:
    - Parse*
    - SrcList*
    - Table*
    - Index*
    - FKey*
    - int*
    - int
    - int
    assertStmts:
    - condition: ( pIdx==0 || pIdx->nKeyCol==pFKey->nCol )
      pos:
        line_end: 116084
        line_start: 116084
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIdx!=0 || pFKey->nCol==1 )
      pos:
        line_end: 116085
        line_start: 116085
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iCol>=0 )
      pos:
        line_end: 116145
        line_start: 116145
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIdx!=0 || HasRowid(pTab) )
      pos:
        line_end: 116086
        line_start: 116086
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIdx!=0 )
      pos:
        line_end: 116142
        line_start: 116142
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIdx==0 || pIdx->pTable==pTab )
      pos:
        line_end: 116083
        line_start: 116083
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iCol>=0 )
      pos:
        line_end: 116111
        line_start: 116111
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 116179
      start: 116066
    functionDepth: 13
    functionLinenumber: 116066
    functionLinenumberEnd: 116179
    functionName: fkScanChildren
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - HasRowid
    - sqlite3ResolveExprNames
    - sqlite3WhereBegin
    - sqlite3VdbeAddOp2
    - sqlite3WhereEnd
    - sqlite3PExpr
    - assert
    - memset
    - sqlite3ExprDelete
    - sqlite3VdbeJumpHere
    - sqlite3Expr
    - VdbeCoverage
    - exprTableRegister
    - sqlite3GetVdbe
    - exprTableColumn
    - sqlite3ExprAnd
    linkageType: ''
    returnType: void
    signature: "void fkScanChildren(\n  Parse *pParse,                  /* Parse context
      */\n  SrcList *pSrc,                  /* The child table to be scanned */\n
      \ Table *pTab,                    /* The parent table */\n  Index *pIdx,                    /*
      Index on parent covering the foreign key */\n  FKey *pFKey,                    /*
      The foreign key linking pSrc to pTab */\n  int *aiCol,                     /*
      Map from pIdx cols to child table cols */\n  int regData,                    /*
      Parent row data starts here */\n  int nIncr                       /* Amount
      to increment deferred counter by */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3HashFind
      Src: /src/nss/lib/sqlite/sqlite3.c:116196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pTab
    argTypes:
    - Table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116197
      start: 116195
    functionDepth: 3
    functionLinenumber: 116195
    functionLinenumberEnd: 116197
    functionName: sqlite3FkReferences
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3HashFind
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3FkReferences(Table *pTab)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:116210,1
    - Dst: sqlite3ExprListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:116211,1
    - Dst: sqlite3SelectDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:116212,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:116213,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:116214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - dbMem
    - p
    argTypes:
    - sqlite3*
    - Trigger*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116216
      start: 116207
    functionDepth: 10
    functionLinenumber: 116207
    functionLinenumberEnd: 116216
    functionName: fkTriggerDelete
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbFree
    - sqlite3SelectDelete
    - sqlite3ExprListDelete
    - sqlite3ExprDelete
    linkageType: ''
    returnType: void
    signature: void fkTriggerDelete(sqlite3 *dbMem, Trigger *p)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:116237,1
    - Dst: sqlite3GetVdbe
      Src: /src/nss/lib/sqlite/sqlite3.c:116239,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:116241,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:116242,1
    - Dst: sqlite3FkReferences
      Src: /src/nss/lib/sqlite/sqlite3.c:116243,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:116254,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:116255,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:116255,1
    - Dst: sqlite3DeleteFrom
      Src: /src/nss/lib/sqlite/sqlite3.c:116259,1
    - Dst: sqlite3SrcListDup
      Src: /src/nss/lib/sqlite/sqlite3.c:116259,1
    - Dst: sqlite3VdbeVerifyAbortable
      Src: /src/nss/lib/sqlite/sqlite3.c:116272,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:116273,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:116273,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:116274,1
    - Dst: sqlite3HaltConstraint
      Src: /src/nss/lib/sqlite/sqlite3.c:116275,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:116280,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - pParse
    - pName
    - pTab
    argTypes:
    - Parse*
    - SrcList*
    - Table*
    assertStmts:
    - condition: ( v )
      pos:
        line_end: 116240
        line_start: 116240
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTab->pSelect==0 )
      pos:
        line_end: 116241
        line_start: 116241
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 116283
      start: 116235
    functionDepth: 15
    functionLinenumber: 116235
    functionLinenumberEnd: 116283
    functionName: sqlite3FkDropTable
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3VdbeVerifyAbortable
    - sqlite3DeleteFrom
    - sqlite3VdbeAddOp2
    - sqlite3VdbeCurrentAddr
    - sqlite3HaltConstraint
    - sqlite3FkReferences
    - sqlite3VdbeResolveLabel
    - assert
    - sqlite3SrcListDup
    - sqlite3VdbeMakeLabel
    - VdbeCoverage
    - sqlite3GetVdbe
    - IsVirtual
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3FkDropTable(Parse *pParse, SrcList *pName, Table
      *pTab)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 4
    argNames:
    - pTab
    - p
    - aChange
    - bChngRowid
    argTypes:
    - Table*
    - FKey*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116311
      start: 116298
    functionDepth: 0
    functionLinenumber: 116298
    functionLinenumberEnd: 116311
    functionName: fkChildIsModified
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int fkChildIsModified(\n  Table *pTab,                    /* Table
      being updated */\n  FKey *p,                        /* Foreign key for which
      pTab is the child */\n  int *aChange,                   /* Array indicating
      modified columns */\n  int bChngRowid                  /* True if rowid is modified
      by this update */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:116339,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 4
    argNames:
    - pTab
    - p
    - aChange
    - bChngRowid
    argTypes:
    - Table*
    - FKey*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116347
      start: 116325
    functionDepth: 1
    functionLinenumber: 116325
    functionLinenumberEnd: 116347
    functionName: fkParentIsModified
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3StrICmp
    linkageType: ''
    returnType: int
    signature: "int fkParentIsModified(\n  Table *pTab, \n  FKey *p, \n  int *aChange,
      \n  int bChngRowid\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ParseToplevel
      Src: /src/nss/lib/sqlite/sqlite3.c:116355,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - pParse
    - pFKey
    argTypes:
    - Parse*
    - FKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116365
      start: 116354
    functionDepth: 1
    functionLinenumber: 116354
    functionLinenumberEnd: 116365
    functionName: isSetNullAction
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ParseToplevel
    linkageType: ''
    returnType: int
    signature: int isSetNullAction(Parse *pParse, FKey *pFKey)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:116402,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:116407,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:116422,1
    - Dst: fkChildIsModified
      Src: /src/nss/lib/sqlite/sqlite3.c:116423,1
    - Dst: sqlite3FindTable
      Src: /src/nss/lib/sqlite/sqlite3.c:116433,1
    - Dst: sqlite3LocateTable
      Src: /src/nss/lib/sqlite/sqlite3.c:116435,1
    - Dst: sqlite3FkLocateIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:116437,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:116438,1
    - Dst: sqlite3GetVdbe
      Src: /src/nss/lib/sqlite/sqlite3.c:116448,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:116449,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:116452,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:116452,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:116454,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:116458,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:116470,1
    - Dst: sqlite3AuthReadCol
      Src: /src/nss/lib/sqlite/sqlite3.c:116478,1
    - Dst: sqlite3TableLock
      Src: /src/nss/lib/sqlite/sqlite3.c:116487,1
    - Dst: fkLookupParent
      Src: /src/nss/lib/sqlite/sqlite3.c:116494,1
    - Dst: isSetNullAction
      Src: /src/nss/lib/sqlite/sqlite3.c:116496,1
    - Dst: fkLookupParent
      Src: /src/nss/lib/sqlite/sqlite3.c:116505,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:116508,1
    - Dst: sqlite3FkReferences
      Src: /src/nss/lib/sqlite/sqlite3.c:116513,1
    - Dst: fkParentIsModified
      Src: /src/nss/lib/sqlite/sqlite3.c:116518,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:116525,1
    - Dst: sqlite3FkLocateIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:116531,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:116535,1
    - Dst: sqlite3SrcListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:116539,1
    - Dst: fkScanChildren
      Src: /src/nss/lib/sqlite/sqlite3.c:116548,1
    - Dst: fkScanChildren
      Src: /src/nss/lib/sqlite/sqlite3.c:116552,1
    - Dst: sqlite3MayAbort
      Src: /src/nss/lib/sqlite/sqlite3.c:116571,1
    - Dst: sqlite3SrcListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:116575,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:116577,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 89
    argCount: 6
    argNames:
    - pParse
    - pTab
    - regOld
    - regNew
    - aChange
    - bChngRowid
    argTypes:
    - Parse*
    - Table*
    - int
    - int
    - int*
    - int
    assertStmts:
    - condition: ( regOld==0 && regNew!=0 )
      pos:
        line_end: 116524
        line_start: 116524
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (regOld==0)!=(regNew==0) )
      pos:
        line_end: 116401
        line_start: 116401
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( isIgnoreErrors==0 || (regOld!=0 && regNew==0) )
      pos:
        line_end: 116437
        line_start: 116437
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( aiCol || pFKey->nCol==1 )
      pos:
        line_end: 116534
        line_start: 116534
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pFKey->nCol==1 || (aiFree && pIdx) )
      pos:
        line_end: 116457
        line_start: 116457
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIdx==0 || pIdx->aiColumn[i]>=0 )
      pos:
        line_end: 116469
        line_start: 116469
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 116579
      start: 116387
    functionDepth: 14
    functionLinenumber: 116387
    functionLinenumberEnd: 116579
    functionName: sqlite3FkCheck
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3VdbeAddOp2
    - sqlite3FkLocateIndex
    - sqlite3_stricmp
    - sqlite3GetVdbe
    - isSetNullAction
    - fkScanChildren
    - sqlite3VdbeCurrentAddr
    - fkLookupParent
    - sqlite3FindTable
    - sqlite3MayAbort
    - assert
    - sqlite3SrcListAppend
    - sqlite3SchemaToIndex
    - fkChildIsModified
    - fkParentIsModified
    - sqlite3DbFree
    - VdbeCoverage
    - sqlite3AuthReadCol
    - sqlite3TableLock
    - sqlite3FkReferences
    - sqlite3LocateTable
    - sqlite3SrcListDelete
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3FkCheck(\n  Parse *pParse,                  /*
      Parse context */\n  Table *pTab,                    /* Row is being deleted
      from this table */ \n  int regOld,                     /* Previous row data
      is stored here */\n  int regNew,                     /* New row data is stored
      here */\n  int *aChange,                   /* Array indicating UPDATEd columns
      (or 0) */\n  int bChngRowid                  /* True if rowid is UPDATEd */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116582
      start: 116581
    functionDepth: 0
    functionLinenumber: 116581
    functionLinenumberEnd: 116582
    functionName: COLUMN_MASK
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COLUMN_MASK(x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: COLUMN_MASK
      Src: /src/nss/lib/sqlite/sqlite3.c:116596,1
    - Dst: sqlite3FkReferences
      Src: /src/nss/lib/sqlite/sqlite3.c:116598,1
    - Dst: sqlite3FkLocateIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:116600,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:116603,1
    - Dst: COLUMN_MASK
      Src: /src/nss/lib/sqlite/sqlite3.c:116604,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - pParse
    - pTab
    argTypes:
    - Parse*
    - Table*
    assertStmts:
    - condition: ( pIdx->aiColumn[i]>=0 )
      pos:
        line_end: 116602
        line_start: 116602
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 116610
      start: 116587
    functionDepth: 11
    functionLinenumber: 116587
    functionLinenumberEnd: 116610
    functionName: sqlite3FkOldmask
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - sqlite3FkLocateIndex
    - sqlite3FkReferences
    - COLUMN_MASK
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3FkOldmask(\n  Parse *pParse,                  /*
      Parse context */\n  Table *pTab                     /* Table being modified
      */\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3FkReferences
      Src: /src/nss/lib/sqlite/sqlite3.c:116647,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:116655,1
    - Dst: fkChildIsModified
      Src: /src/nss/lib/sqlite/sqlite3.c:116656,1
    - Dst: sqlite3FkReferences
      Src: /src/nss/lib/sqlite/sqlite3.c:116662,1
    - Dst: fkParentIsModified
      Src: /src/nss/lib/sqlite/sqlite3.c:116663,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 4
    argNames:
    - pParse
    - pTab
    - aChange
    - chngRowid
    argTypes:
    - Parse*
    - Table*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116671
      start: 116635
    functionDepth: 2
    functionLinenumber: 116635
    functionLinenumberEnd: 116671
    functionName: sqlite3FkRequired
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3_stricmp
    - sqlite3FkReferences
    - fkChildIsModified
    - fkParentIsModified
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3FkRequired(\n  Parse *pParse,                  /*
      Parse context */\n  Table *pTab,                    /* Table being modified
      */\n  int *aChange,                   /* Non-NULL for UPDATE operations */\n
      \ int chngRowid                   /* True for UPDATE that affects rowid */\n)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3FkLocateIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:116731,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:116732,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:116743,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:116744,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:116745,1
    - Dst: sqlite3TokenInit
      Src: /src/nss/lib/sqlite/sqlite3.c:116746,1
    - Dst: sqlite3TokenInit
      Src: /src/nss/lib/sqlite/sqlite3.c:116748,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:116754,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:116755,1
    - Dst: sqlite3ExprAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:116756,1
    - Dst: sqlite3ExprAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:116757,1
    - Dst: sqlite3ExprAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:116758,1
    - Dst: sqlite3ExprAnd
      Src: /src/nss/lib/sqlite/sqlite3.c:116760,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:116768,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:116769,1
    - Dst: sqlite3ExprAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:116770,1
    - Dst: sqlite3ExprAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:116771,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:116772,1
    - Dst: sqlite3ExprAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:116773,1
    - Dst: sqlite3ExprAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:116774,1
    - Dst: sqlite3ExprAnd
      Src: /src/nss/lib/sqlite/sqlite3.c:116776,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:116782,1
    - Dst: sqlite3ExprAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:116783,1
    - Dst: sqlite3ExprAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:116784,1
    - Dst: sqlite3ExprDup
      Src: /src/nss/lib/sqlite/sqlite3.c:116788,1
    - Dst: sqlite3ExprAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:116790,1
    - Dst: sqlite3ExprAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:116793,1
    - Dst: sqlite3ExprListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:116795,1
    - Dst: sqlite3ExprListSetName
      Src: /src/nss/lib/sqlite/sqlite3.c:116796,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:116799,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:116802,1
    - Dst: sqlite3Expr
      Src: /src/nss/lib/sqlite/sqlite3.c:116810,1
    - Dst: sqlite3SelectNew
      Src: /src/nss/lib/sqlite/sqlite3.c:116814,1
    - Dst: sqlite3ExprListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:116815,1
    - Dst: sqlite3SrcListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:116816,1
    - Dst: sqlite3DbMallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:116826,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:116834,1
    - Dst: sqlite3ExprDup
      Src: /src/nss/lib/sqlite/sqlite3.c:116836,1
    - Dst: sqlite3ExprListDup
      Src: /src/nss/lib/sqlite/sqlite3.c:116837,1
    - Dst: sqlite3SelectDup
      Src: /src/nss/lib/sqlite/sqlite3.c:116838,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:116840,1
    - Dst: sqlite3ExprDup
      Src: /src/nss/lib/sqlite/sqlite3.c:116841,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:116848,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:116849,1
    - Dst: sqlite3ExprListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:116850,1
    - Dst: sqlite3SelectDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:116851,1
    - Dst: fkTriggerDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:116853,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:116856,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 96
    argCount: 4
    argNames:
    - pParse
    - pTab
    - pFKey
    - pChanges
    argTypes:
    - Parse*
    - Table*
    - FKey*
    - ExprList*
    assertStmts:
    - condition: ( aiCol || pFKey->nCol==1 )
      pos:
        line_end: 116731
        line_start: 116731
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pStep!=0 )
      pos:
        line_end: 116855
        line_start: 116855
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIdx!=0 || (pTab->iPKey>=0 && pTab->iPKey<pTab->nCol) )
      pos:
        line_end: 116743
        line_start: 116743
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iFromCol>=0 )
      pos:
        line_end: 116742
        line_start: 116742
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIdx==0 || pIdx->aiColumn[i]>=0 )
      pos:
        line_end: 116744
        line_start: 116744
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 116878
      start: 116702
    functionDepth: 13
    functionLinenumber: 116702
    functionLinenumberEnd: 116878
    functionName: fkActionTrigger
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ExprListDup
    - sqlite3PExpr
    - sqlite3FkLocateIndex
    - sqlite3ExprDup
    - sqlite3ExprAlloc
    - memcpy
    - sqlite3SelectDelete
    - assert
    - sqlite3TokenInit
    - sqlite3Expr
    - sqlite3SrcListAppend
    - sqlite3ExprListAppend
    - sqlite3DbMallocZero
    - fkTriggerDelete
    - sqlite3DbFree
    - sqlite3ExprDelete
    - sqlite3Strlen30
    - sqlite3ExprListDelete
    - sqlite3SelectNew
    - sqlite3ExprListSetName
    - sqlite3ExprAnd
    - sqlite3SelectDup
    linkageType: ''
    returnType: Trigger
    signature: "Trigger *fkActionTrigger(\n  Parse *pParse,                  /* Parse
      context */\n  Table *pTab,                    /* Table being updated or deleted
      from */\n  FKey *pFKey,                    /* Foreign key to get action for
      */\n  ExprList *pChanges              /* Change-list for UPDATE, NULL for DELETE
      */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3FkReferences
      Src: /src/nss/lib/sqlite/sqlite3.c:116898,1
    - Dst: fkParentIsModified
      Src: /src/nss/lib/sqlite/sqlite3.c:116899,1
    - Dst: fkActionTrigger
      Src: /src/nss/lib/sqlite/sqlite3.c:116900,1
    - Dst: sqlite3CodeRowTriggerDirect
      Src: /src/nss/lib/sqlite/sqlite3.c:116902,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 6
    argNames:
    - pParse
    - pTab
    - pChanges
    - regOld
    - aChange
    - bChngRowid
    argTypes:
    - Parse*
    - Table*
    - ExprList*
    - int
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116907
      start: 116884
    functionDepth: 14
    functionLinenumber: 116884
    functionLinenumberEnd: 116907
    functionName: sqlite3FkActions
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3CodeRowTriggerDirect
    - sqlite3FkReferences
    - fkActionTrigger
    - fkParentIsModified
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3FkActions(\n  Parse *pParse,                  /*
      Parse context */\n  Table *pTab,                    /* Table being updated or
      deleted from */\n  ExprList *pChanges,             /* Change-list for UPDATE,
      NULL for DELETE */\n  int regOld,                     /* Address of array containing
      old row */\n  int *aChange,                   /* Array indicating UPDATEd columns
      (or 0) */\n  int bChngRowid                  /* True if rowid is UPDATEd */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:116920,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:116920,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/nss/lib/sqlite/sqlite3.c:116921,1
    - Dst: sqlite3HashInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:116931,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:116941,1
    - Dst: fkTriggerDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:116945,1
    - Dst: fkTriggerDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:116946,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:116950,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - db
    - pTab
    argTypes:
    - sqlite3*
    - Table*
    assertStmts:
    - condition: "( db==0 || IsVirtual(pTab)\n         || sqlite3SchemaMutexHeld(db,
        0, pTab->pSchema) )"
      pos:
        line_end: 116920
        line_start: 116919
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pFKey->isDeferred==0 || pFKey->isDeferred==1 )
      pos:
        line_end: 116940
        line_start: 116940
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 116952
      start: 116916
    functionDepth: 11
    functionLinenumber: 116916
    functionLinenumberEnd: 116952
    functionName: sqlite3FkDelete
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - fkTriggerDelete
    - sqlite3DbFree
    - sqlite3SchemaMutexHeld
    - assert
    - sqlite3HashInsert
    - IsVirtual
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3FkDelete(sqlite3 *db, Table *pTab)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:116990,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:116990,1
    - Dst: sqlite3GetVdbe
      Src: /src/nss/lib/sqlite/sqlite3.c:116991,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:116992,1
    - Dst: sqlite3TableLock
      Src: /src/nss/lib/sqlite/sqlite3.c:116993,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:116995,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/nss/lib/sqlite/sqlite3.c:116996,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:116997,1
    - Dst: sqlite3PrimaryKeyIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:116999,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:117000,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:117001,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:117002,1
    - Dst: sqlite3VdbeSetP4KeyInfo
      Src: /src/nss/lib/sqlite/sqlite3.c:117003,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:117004,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 5
    argNames:
    - pParse
    - iCur
    - iDb
    - pTab
    - opcode
    argTypes:
    - Parse*
    - int
    - int
    - Table*
    - int
    assertStmts:
    - condition: ( !IsVirtual(pTab) )
      pos:
        line_end: 116989
        line_start: 116989
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( opcode==OP_OpenWrite || opcode==OP_OpenRead )
      pos:
        line_end: 116991
        line_start: 116991
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPk!=0 )
      pos:
        line_end: 116999
        line_start: 116999
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPk->tnum==pTab->tnum )
      pos:
        line_end: 117000
        line_start: 117000
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 117006
      start: 116982
    functionDepth: 13
    functionLinenumber: 116982
    functionLinenumberEnd: 117006
    functionName: sqlite3OpenTable
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 4
    functionsReached:
    - HasRowid
    - sqlite3VdbeSetP4KeyInfo
    - sqlite3TableLock
    - sqlite3VdbeAddOp4Int
    - sqlite3PrimaryKeyIndex
    - sqlite3VdbeAddOp3
    - assert
    - sqlite3GetVdbe
    - VdbeComment
    - IsVirtual
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3OpenTable(\n  Parse *pParse,  /* Generate code
      into this VDBE */\n  int iCur,       /* The cursor number of the table */\n
      \ int iDb,        /* The database index in sqlite3.aDb[] */\n  Table *pTab,
      \   /* The table to be opened */\n  int opcode      /* OP_OpenRead or OP_OpenWrite
      */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbMallocRaw
      Src: /src/nss/lib/sqlite/sqlite3.c:117040,1
    - Dst: sqlite3OomFault
      Src: /src/nss/lib/sqlite/sqlite3.c:117042,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:117053,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:117054,1
    - Dst: sqlite3ExprAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:117055,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - db
    - pIdx
    argTypes:
    - sqlite3*
    - Index*
    assertStmts:
    - condition: ( pIdx->aColExpr!=0 )
      pos:
        line_end: 117053
        line_start: 117053
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( x==XN_EXPR )
      pos:
        line_end: 117052
        line_start: 117052
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 117064
      start: 117028
    functionDepth: 6
    functionLinenumber: 117028
    functionLinenumberEnd: 117064
    functionName: sqlite3IndexAffinityStr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 3
    functionsReached:
    - sqlite3DbMallocRaw
    - assert
    - sqlite3OomFault
    - sqlite3ExprAffinity
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3IndexAffinityStr(sqlite3 *db, Index *pIdx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeDb
      Src: /src/nss/lib/sqlite/sqlite3.c:117090,1
    - Dst: sqlite3DbMallocRaw
      Src: /src/nss/lib/sqlite/sqlite3.c:117091,1
    - Dst: sqlite3OomFault
      Src: /src/nss/lib/sqlite/sqlite3.c:117093,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:117105,1
    - Dst: sqlite3Strlen30NN
      Src: /src/nss/lib/sqlite/sqlite3.c:117106,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:117109,1
    - Dst: sqlite3VdbeChangeP4
      Src: /src/nss/lib/sqlite/sqlite3.c:117111,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - v
    - pTab
    - iReg
    argTypes:
    - Vdbe*
    - Table*
    - int
    assertStmts:
    - condition: ( zColAff!=0 )
      pos:
        line_end: 117104
        line_start: 117104
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 117114
      start: 117086
    functionDepth: 12
    functionLinenumber: 117086
    functionLinenumberEnd: 117114
    functionName: sqlite3TableAffinity
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3Strlen30NN
    - sqlite3VdbeDb
    - assert
    - sqlite3OomFault
    - sqlite3VdbeAddOp4
    - sqlite3DbMallocRaw
    - sqlite3VdbeChangeP4
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3TableAffinity(Vdbe *v, Table *pTab, int iReg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetVdbe
      Src: /src/nss/lib/sqlite/sqlite3.c:117123,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:117125,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:117127,1
    - Dst: sqlite3GetVTable
      Src: /src/nss/lib/sqlite/sqlite3.c:117127,1
    - Dst: sqlite3VdbeGetOp
      Src: /src/nss/lib/sqlite/sqlite3.c:117131,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:117132,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:117147,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:117148,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 3
    argNames:
    - p
    - iDb
    - pTab
    argTypes:
    - Parse*
    - int
    - Table*
    assertStmts:
    - condition: ( pOp!=0 )
      pos:
        line_end: 117131
        line_start: 117131
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p4.pVtab!=0 )
      pos:
        line_end: 117146
        line_start: 117146
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->p4type==P4_VTAB )
      pos:
        line_end: 117147
        line_start: 117147
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 117154
      start: 117122
    functionDepth: 1
    functionLinenumber: 117122
    functionLinenumberEnd: 117154
    functionName: readsTable
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeCurrentAddr
    - assert
    - sqlite3GetVTable
    - sqlite3GetVdbe
    - IsVirtual
    - sqlite3VdbeGetOp
    linkageType: ''
    returnType: int
    signature: int readsTable(Parse *p, int iDb, Table *pTab)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:117186,1
    - Dst: sqlite3ParseToplevel
      Src: /src/nss/lib/sqlite/sqlite3.c:117190,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:117198,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:117199,1
    - Dst: sqlite3DbMallocRawNN
      Src: /src/nss/lib/sqlite/sqlite3.c:117210,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 3
    argNames:
    - pParse
    - iDb
    - pTab
    argTypes:
    - Parse*
    - int
    - Table*
    assertStmts:
    - condition: ( pParse->db->aDb[iDb].pSchema!=0 )
      pos:
        line_end: 117185
        line_start: 117185
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 117223
      start: 117180
    functionDepth: 7
    functionLinenumber: 117180
    functionLinenumberEnd: 117223
    functionName: autoIncBegin
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - HasRowid
    - sqlite3DbMallocRawNN
    - assert
    - sqlite3ParseToplevel
    - IsVirtual
    linkageType: ''
    returnType: int
    signature: "int autoIncBegin(\n  Parse *pParse,      /* Parsing context */\n  int
      iDb,            /* Index of the database holding pTab */\n  Table *pTab         /*
      The table we are writing to */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:117238,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:117239,1
    - Dst: sqlite3IsToplevel
      Src: /src/nss/lib/sqlite/sqlite3.c:117239,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:117241,1
    - Dst: VDBE_OFFSET_LINENO
      Src: /src/nss/lib/sqlite/sqlite3.c:117243,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:117261,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/nss/lib/sqlite/sqlite3.c:117261,1
    - Dst: sqlite3OpenTable
      Src: /src/nss/lib/sqlite/sqlite3.c:117262,1
    - Dst: sqlite3VdbeLoadString
      Src: /src/nss/lib/sqlite/sqlite3.c:117263,1
    - Dst: sqlite3VdbeAddOpList
      Src: /src/nss/lib/sqlite/sqlite3.c:117264,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:117264,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 1
    argNames:
    - pParse
    argTypes:
    - Parse*
    assertStmts:
    - condition: ( pParse->pTriggerTab==0 )
      pos:
        line_end: 117237
        line_start: 117237
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3IsToplevel(pParse) )
      pos:
        line_end: 117238
        line_start: 117238
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( v )
      pos:
        line_end: 117240
        line_start: 117240
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3SchemaMutexHeld(db, 0, pDb->pSchema) )
      pos:
        line_end: 117260
        line_start: 117260
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 117280
      start: 117229
    functionDepth: 14
    functionLinenumber: 117229
    functionLinenumberEnd: 117280
    functionName: sqlite3AutoincrementBegin
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - VDBE_OFFSET_LINENO
    - ArraySize
    - sqlite3SchemaMutexHeld
    - assert
    - sqlite3IsToplevel
    - sqlite3OpenTable
    - sqlite3VdbeLoadString
    - sqlite3VdbeAddOpList
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3AutoincrementBegin(Parse *pParse)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:117292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - pParse
    - memId
    - regRowid
    argTypes:
    - Parse*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117294
      start: 117290
    functionDepth: 12
    functionLinenumber: 117290
    functionLinenumberEnd: 117294
    functionName: autoIncStep
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeAddOp2
    linkageType: ''
    returnType: void
    signature: void autoIncStep(Parse *pParse, int memId, int regRowid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:117308,1
    - Dst: VDBE_OFFSET_LINENO
      Src: /src/nss/lib/sqlite/sqlite3.c:117310,1
    - Dst: sqlite3GetTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:117323,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:117324,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/nss/lib/sqlite/sqlite3.c:117324,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:117325,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:117325,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:117326,1
    - Dst: sqlite3OpenTable
      Src: /src/nss/lib/sqlite/sqlite3.c:117327,1
    - Dst: sqlite3VdbeAddOpList
      Src: /src/nss/lib/sqlite/sqlite3.c:117328,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:117328,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:117337,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - pParse
    argTypes:
    - Parse*
    assertStmts:
    - condition: ( v )
      pos:
        line_end: 117307
        line_start: 117307
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3SchemaMutexHeld(db, 0, pDb->pSchema) )
      pos:
        line_end: 117323
        line_start: 117323
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 117339
      start: 117303
    functionDepth: 14
    functionLinenumber: 117303
    functionLinenumberEnd: 117339
    functionName: autoIncrementEnd
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeCurrentAddr
    - sqlite3GetTempReg
    - VDBE_OFFSET_LINENO
    - ArraySize
    - sqlite3VdbeAddOp3
    - sqlite3SchemaMutexHeld
    - sqlite3ReleaseTempReg
    - assert
    - VdbeCoverage
    - sqlite3OpenTable
    - sqlite3VdbeAddOpList
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: SQLITE_NOINLINE autoIncrementEnd(Parse *pParse)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: autoIncrementEnd
      Src: /src/nss/lib/sqlite/sqlite3.c:117341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - pParse
    argTypes:
    - Parse*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117342
      start: 117340
    functionDepth: 15
    functionLinenumber: 117340
    functionLinenumberEnd: 117342
    functionName: sqlite3AutoincrementEnd
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - autoIncrementEnd
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3AutoincrementEnd(Parse *pParse)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117349
      start: 117348
    functionDepth: 0
    functionLinenumber: 117348
    functionLinenumberEnd: 117349
    functionName: autoIncBegin
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: autoIncBegin(A,B,C)
  - BBCount: 67
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SelectDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:117517,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:117523,1
    - Dst: sqlite3SrcListLookup
      Src: /src/nss/lib/sqlite/sqlite3.c:117524,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:117528,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:117529,1
    - Dst: sqlite3AuthCheck
      Src: /src/nss/lib/sqlite/sqlite3.c:117530,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:117534,1
    - Dst: sqlite3TriggersExist
      Src: /src/nss/lib/sqlite/sqlite3.c:117540,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:117551,1
    - Dst: sqlite3ViewGetColumnNames
      Src: /src/nss/lib/sqlite/sqlite3.c:117556,1
    - Dst: sqlite3IsReadOnly
      Src: /src/nss/lib/sqlite/sqlite3.c:117562,1
    - Dst: sqlite3GetVdbe
      Src: /src/nss/lib/sqlite/sqlite3.c:117568,1
    - Dst: sqlite3VdbeCountChanges
      Src: /src/nss/lib/sqlite/sqlite3.c:117570,1
    - Dst: sqlite3BeginWriteOperation
      Src: /src/nss/lib/sqlite/sqlite3.c:117571,1
    - Dst: xferOptimization
      Src: /src/nss/lib/sqlite/sqlite3.c:117583,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:117584,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:117585,1
    - Dst: autoIncBegin
      Src: /src/nss/lib/sqlite/sqlite3.c:117593,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:117600,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:117624,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:117628,1
    - Dst: sqlite3IsRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:117634,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:117638,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:117660,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:117661,1
    - Dst: sqlite3SelectDestInit
      Src: /src/nss/lib/sqlite/sqlite3.c:117662,1
    - Dst: sqlite3Select
      Src: /src/nss/lib/sqlite/sqlite3.c:117665,1
    - Dst: sqlite3VdbeEndCoroutine
      Src: /src/nss/lib/sqlite/sqlite3.c:117668,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:117669,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:117670,1
    - Dst: readsTable
      Src: /src/nss/lib/sqlite/sqlite3.c:117682,1
    - Dst: sqlite3GetTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:117702,1
    - Dst: sqlite3GetTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:117703,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:117704,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:117705,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:117705,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:117706,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:117707,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:117708,1
    - Dst: sqlite3VdbeGoto
      Src: /src/nss/lib/sqlite/sqlite3.c:117709,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:117710,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:117711,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:117712,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:117719,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:117722,1
    - Dst: sqlite3ResolveExprListNames
      Src: /src/nss/lib/sqlite/sqlite3.c:117725,1
    - Dst: IsHiddenColumn
      Src: /src/nss/lib/sqlite/sqlite3.c:117745,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:117748,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:117754,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:117765,1
    - Dst: sqlite3OpenTableAndIndices
      Src: /src/nss/lib/sqlite/sqlite3.c:117771,1
    - Dst: sqlite3DbMallocRawNN
      Src: /src/nss/lib/sqlite/sqlite3.c:117773,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:117778,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:117786,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:117787,1
    - Dst: sqlite3UpsertAnalyzeTarget
      Src: /src/nss/lib/sqlite/sqlite3.c:117797,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:117814,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:117814,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:117815,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:117825,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:117826,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:117831,1
    - Dst: sqlite3GetTempRange
      Src: /src/nss/lib/sqlite/sqlite3.c:117833,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:117842,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:117845,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:117847,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:117849,1
    - Dst: sqlite3ExprCode
      Src: /src/nss/lib/sqlite/sqlite3.c:117850,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:117852,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:117852,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:117853,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:117854,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:117855,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:117855,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:117861,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:117861,1
    - Dst: IsOrdinaryHiddenColumn
      Src: /src/nss/lib/sqlite/sqlite3.c:117872,1
    - Dst: sqlite3ExprCode
      Src: /src/nss/lib/sqlite/sqlite3.c:117873,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:117875,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:117877,1
    - Dst: sqlite3ExprCodeAndCache
      Src: /src/nss/lib/sqlite/sqlite3.c:117878,1
    - Dst: IsOrdinaryHiddenColumn
      Src: /src/nss/lib/sqlite/sqlite3.c:117880,1
    - Dst: sqlite3TableAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:117889,1
    - Dst: sqlite3CodeRowTrigger
      Src: /src/nss/lib/sqlite/sqlite3.c:117893,1
    - Dst: sqlite3ReleaseTempRange
      Src: /src/nss/lib/sqlite/sqlite3.c:117896,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:117903,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:117905,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:117909,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:117911,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:117914,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:117915,1
    - Dst: sqlite3ExprCode
      Src: /src/nss/lib/sqlite/sqlite3.c:117918,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:117926,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:117927,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:117927,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:117928,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:117929,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:117931,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:117932,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:117932,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:117934,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:117934,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:117936,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:117937,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:117939,1
    - Dst: autoIncStep
      Src: /src/nss/lib/sqlite/sqlite3.c:117942,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:117956,1
    - Dst: IsHiddenColumn
      Src: /src/nss/lib/sqlite/sqlite3.c:117960,1
    - Dst: sqlite3ExprCodeFactorable
      Src: /src/nss/lib/sqlite/sqlite3.c:117972,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:117974,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:117977,1
    - Dst: sqlite3ExprCode
      Src: /src/nss/lib/sqlite/sqlite3.c:117980,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:117988,1
    - Dst: sqlite3GetVTable
      Src: /src/nss/lib/sqlite/sqlite3.c:117989,1
    - Dst: sqlite3VtabMakeWritable
      Src: /src/nss/lib/sqlite/sqlite3.c:117990,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:117991,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:117992,1
    - Dst: sqlite3MayAbort
      Src: /src/nss/lib/sqlite/sqlite3.c:117993,1
    - Dst: sqlite3GenerateConstraintChecks
      Src: /src/nss/lib/sqlite/sqlite3.c:117999,1
    - Dst: sqlite3FkCheck
      Src: /src/nss/lib/sqlite/sqlite3.c:118002,1
    - Dst: sqlite3FkReferences
      Src: /src/nss/lib/sqlite/sqlite3.c:118013,1
    - Dst: sqlite3CompleteInsertion
      Src: /src/nss/lib/sqlite/sqlite3.c:118015,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:118024,1
    - Dst: sqlite3CodeRowTrigger
      Src: /src/nss/lib/sqlite/sqlite3.c:118029,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:118036,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:118038,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:118038,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:118039,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:118040,1
    - Dst: sqlite3VdbeGoto
      Src: /src/nss/lib/sqlite/sqlite3.c:118042,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:118043,1
    - Dst: sqlite3AutoincrementEnd
      Src: /src/nss/lib/sqlite/sqlite3.c:118052,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:118061,1
    - Dst: sqlite3VdbeSetNumCols
      Src: /src/nss/lib/sqlite/sqlite3.c:118062,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/nss/lib/sqlite/sqlite3.c:118063,1
    - Dst: sqlite3SrcListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:118067,1
    - Dst: sqlite3ExprListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:118068,1
    - Dst: sqlite3UpsertDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:118069,1
    - Dst: sqlite3SelectDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:118070,1
    - Dst: sqlite3IdListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:118071,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:118072,1
    CyclomaticComplexity: 126
    EdgeCount: 126
    ICount: 361
    argCount: 6
    argNames:
    - pParse
    - pTabList
    - pSelect
    - pColumn
    - onError
    - pUpsert
    argTypes:
    - Parse*
    - SrcList*
    - Select*
    - IdList*
    - int
    - Upsert*
    assertStmts:
    - condition: ( useTempTable==0 )
      pos:
        line_end: 117721
        line_start: 117721
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pSelect==0 )
      pos:
        line_end: 117876
        line_start: 117876
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pSelect==0 )
      pos:
        line_end: 117848
        line_start: 117848
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pTrigger && tmask) || (pTrigger==0 && tmask==0) )
      pos:
        line_end: 117550
        line_start: 117550
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pList==0 )
      pos:
        line_end: 117584
        line_start: 117584
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iDb<db->nDb )
      pos:
        line_end: 117528
        line_start: 117528
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pSelect->pEList )
      pos:
        line_end: 117669
        line_start: 117669
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !withoutRowid )
      pos:
        line_end: 117844
        line_start: 117844
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTabList->nSrc==1 )
      pos:
        line_end: 117522
        line_start: 117522
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIdx )
      pos:
        line_end: 117777
        line_start: 117777
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !pTrigger )
      pos:
        line_end: 117583
        line_start: 117583
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !withoutRowid )
      pos:
        line_end: 117627
        line_start: 117627
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !IsVirtual(pTab) )
      pos:
        line_end: 117860
        line_start: 117860
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 118073
      start: 117459
    functionDepth: 18
    functionLinenumber: 117459
    functionLinenumberEnd: 118073
    functionName: sqlite3Insert
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3TableAffinity
    - sqlite3CodeRowTrigger
    - sqlite3VdbeAddOp2
    - sqlite3ExprCode
    - sqlite3DbMallocRawNN
    - autoIncStep
    - sqlite3VdbeResolveLabel
    - sqlite3VdbeAddOp3
    - sqlite3IsReadOnly
    - IsHiddenColumn
    - autoIncBegin
    - sqlite3ViewGetColumnNames
    - sqlite3VdbeEndCoroutine
    - sqlite3GetVdbe
    - readsTable
    - IsOrdinaryHiddenColumn
    - HasRowid
    - sqlite3CompleteInsertion
    - sqlite3SelectDelete
    - sqlite3StrICmp
    - sqlite3VdbeCurrentAddr
    - sqlite3VdbeGoto
    - sqlite3GetTempReg
    - sqlite3FkCheck
    - sqlite3MayAbort
    - assert
    - sqlite3VdbeJumpHere
    - memset
    - sqlite3GetTempRange
    - sqlite3IsRowid
    - xferOptimization
    - sqlite3ExprCodeAndCache
    - sqlite3SchemaToIndex
    - sqlite3UpsertAnalyzeTarget
    - sqlite3GetVTable
    - sqlite3BeginWriteOperation
    - sqlite3AuthCheck
    - sqlite3VtabMakeWritable
    - sqlite3GenerateConstraintChecks
    - sqlite3AutoincrementEnd
    - sqlite3ExprCodeFactorable
    - sqlite3IdListDelete
    - sqlite3SrcListLookup
    - sqlite3VdbeCountChanges
    - sqlite3Select
    - sqlite3ReleaseTempRange
    - sqlite3DbFree
    - sqlite3VdbeAddOp4
    - sqlite3VdbeAddOp1
    - VdbeCoverage
    - sqlite3ExprListDelete
    - sqlite3ResolveExprListNames
    - sqlite3OpenTableAndIndices
    - sqlite3FkReferences
    - sqlite3ReleaseTempReg
    - sqlite3VdbeSetNumCols
    - sqlite3UpsertDelete
    - sqlite3SelectDestInit
    - sqlite3VdbeChangeP5
    - sqlite3SrcListDelete
    - sqlite3VdbeSetColName
    - sqlite3TriggersExist
    - sqlite3ErrorMsg
    - sqlite3VdbeMakeLabel
    - IsVirtual
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Insert(\n  Parse *pParse,        /* Parser context
      */\n  SrcList *pTabList,    /* Name of table into which we are inserting */\n
      \ Select *pSelect,      /* A SELECT statement to use as the data source */\n
      \ IdList *pColumn,      /* Column names corresponding to IDLIST. */\n  int onError,
      \         /* How to handle constraint errors */\n  Upsert *pUpsert       /*
      ON CONFLICT clauses for upsert, or NULL */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:118102,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - pWalker
    - pExpr
    argTypes:
    - Walker*
    - Expr*
    assertStmts:
    - condition: ( pExpr->iColumn>=0 || pExpr->iColumn==-1 )
      pos:
        line_end: 118101
        line_start: 118101
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 118112
      start: 118100
    functionDepth: 0
    functionLinenumber: 118100
    functionLinenumberEnd: 118112
    functionName: checkConstraintExprNode
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int checkConstraintExprNode(Walker *pWalker, Expr *pExpr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:118135,1
    - Dst: sqlite3WalkExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:118139,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:118141,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:118144,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:118145,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:118146,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:118147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - pExpr
    - aiChng
    - chngRowid
    argTypes:
    - Expr*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118149
      start: 118129
    functionDepth: 4
    functionLinenumber: 118129
    functionLinenumberEnd: 118149
    functionName: sqlite3ExprReferencesUpdatedColumn
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3WalkExpr
    - testcase
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3ExprReferencesUpdatedColumn(\n  Expr *pExpr,
      \   /* The expression to be checked */\n  int *aiChng,    /* aiChng[x]>=0 if
      column x changed by the UPDATE */\n  int chngRowid   /* True if UPDATE changes
      the rowid */\n)"
  - BBCount: 73
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetVdbe
      Src: /src/nss/lib/sqlite/sqlite3.c:118278,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:118279,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:118280,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:118287,1
    - Dst: sqlite3PrimaryKeyIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:118291,1
    - Dst: VdbeModuleComment
      Src: /src/nss/lib/sqlite/sqlite3.c:118296,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:118319,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:118324,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:118325,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:118326,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:118327,1
    - Dst: sqlite3ExprCode
      Src: /src/nss/lib/sqlite/sqlite3.c:118328,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:118329,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:118330,1
    - Dst: sqlite3MayAbort
      Src: /src/nss/lib/sqlite/sqlite3.c:118336,1
    - Dst: sqlite3MPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:118340,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:118342,1
    - Dst: sqlite3VdbeAppendP4
      Src: /src/nss/lib/sqlite/sqlite3.c:118344,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:118345,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:118346,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:118347,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:118351,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:118352,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:118353,1
    - Dst: sqlite3ExprReferencesUpdatedColumn
      Src: /src/nss/lib/sqlite/sqlite3.c:118370,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:118376,1
    - Dst: sqlite3VdbeVerifyAbortable
      Src: /src/nss/lib/sqlite/sqlite3.c:118377,1
    - Dst: sqlite3ExprIfTrue
      Src: /src/nss/lib/sqlite/sqlite3.c:118378,1
    - Dst: sqlite3VdbeGoto
      Src: /src/nss/lib/sqlite/sqlite3.c:118380,1
    - Dst: sqlite3HaltConstraint
      Src: /src/nss/lib/sqlite/sqlite3.c:118385,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:118389,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:118428,1
    - Dst: sqlite3VdbeAddOp0
      Src: /src/nss/lib/sqlite/sqlite3.c:118434,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:118435,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:118443,1
    - Dst: sqlite3VdbeAddOp0
      Src: /src/nss/lib/sqlite/sqlite3.c:118471,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:118472,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:118479,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:118480,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:118481,1
    - Dst: VdbeNoopComment
      Src: /src/nss/lib/sqlite/sqlite3.c:118486,1
    - Dst: sqlite3VdbeVerifyAbortable
      Src: /src/nss/lib/sqlite/sqlite3.c:118487,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:118488,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:118489,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:118499,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:118500,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:118501,1
    - Dst: sqlite3RowidConstraint
      Src: /src/nss/lib/sqlite/sqlite3.c:118502,1
    - Dst: sqlite3TriggersExist
      Src: /src/nss/lib/sqlite/sqlite3.c:118530,1
    - Dst: sqlite3FkRequired
      Src: /src/nss/lib/sqlite/sqlite3.c:118532,1
    - Dst: sqlite3MultiWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:118533,1
    - Dst: sqlite3GenerateRowDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:118534,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:118538,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:118538,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:118543,1
    - Dst: sqlite3VdbeAppendP4
      Src: /src/nss/lib/sqlite/sqlite3.c:118544,1
    - Dst: sqlite3MultiWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:118547,1
    - Dst: sqlite3GenerateRowIndexDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:118548,1
    - Dst: sqlite3UpsertDoUpdate
      Src: /src/nss/lib/sqlite/sqlite3.c:118556,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:118561,1
    - Dst: sqlite3VdbeGoto
      Src: /src/nss/lib/sqlite/sqlite3.c:118562,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:118566,1
    - Dst: sqlite3VdbeAddOp0
      Src: /src/nss/lib/sqlite/sqlite3.c:118568,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:118569,1
    - Dst: sqlite3VdbeGoto
      Src: /src/nss/lib/sqlite/sqlite3.c:118589,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:118590,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:118591,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:118593,1
    - Dst: sqlite3TableAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:118596,1
    - Dst: VdbeNoopComment
      Src: /src/nss/lib/sqlite/sqlite3.c:118599,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:118605,1
    - Dst: sqlite3ExprIfFalseDup
      Src: /src/nss/lib/sqlite/sqlite3.c:118607,1
    - Dst: sqlite3ExprCodeCopy
      Src: /src/nss/lib/sqlite/sqlite3.c:118621,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:118623,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:118630,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:118631,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:118634,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:118635,1
    - Dst: sqlite3SetMakeRecordP5
      Src: /src/nss/lib/sqlite/sqlite3.c:118638,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:118647,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:118654,1
    - Dst: sqlite3TriggersExist
      Src: /src/nss/lib/sqlite/sqlite3.c:118687,1
    - Dst: sqlite3FkReferences
      Src: /src/nss/lib/sqlite/sqlite3.c:118689,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:118691,1
    - Dst: sqlite3VdbeVerifyAbortable
      Src: /src/nss/lib/sqlite/sqlite3.c:118697,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/nss/lib/sqlite/sqlite3.c:118698,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:118699,1
    - Dst: sqlite3GetTempRange
      Src: /src/nss/lib/sqlite/sqlite3.c:118702,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:118704,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:118705,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:118709,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:118710,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:118711,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:118719,1
    - Dst: sqlite3ColumnOfIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:118720,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:118721,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:118722,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:118734,1
    - Dst: IsPrimaryKeyIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:118736,1
    - Dst: sqlite3LocateCollSeq
      Src: /src/nss/lib/sqlite/sqlite3.c:118739,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:118741,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:118746,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:118749,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:118750,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:118751,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:118758,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:118764,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:118765,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:118766,1
    - Dst: sqlite3UniqueConstraint
      Src: /src/nss/lib/sqlite/sqlite3.c:118767,1
    - Dst: sqlite3UpsertDoUpdate
      Src: /src/nss/lib/sqlite/sqlite3.c:118772,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:118777,1
    - Dst: sqlite3VdbeGoto
      Src: /src/nss/lib/sqlite/sqlite3.c:118778,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:118783,1
    - Dst: sqlite3TriggersExist
      Src: /src/nss/lib/sqlite/sqlite3.c:118785,1
    - Dst: sqlite3FkRequired
      Src: /src/nss/lib/sqlite/sqlite3.c:118787,1
    - Dst: sqlite3MultiWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:118788,1
    - Dst: sqlite3GenerateRowDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:118790,1
    - Dst: sqlite3VdbeGoto
      Src: /src/nss/lib/sqlite/sqlite3.c:118798,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:118799,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:118801,1
    - Dst: sqlite3ReleaseTempRange
      Src: /src/nss/lib/sqlite/sqlite3.c:118803,1
    - Dst: sqlite3VdbeGoto
      Src: /src/nss/lib/sqlite/sqlite3.c:118808,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:118809,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:118810,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:118814,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:118816,1
    - Dst: sqlite3SetMakeRecordP5
      Src: /src/nss/lib/sqlite/sqlite3.c:118817,1
    - Dst: sqlite3TableAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:118819,1
    - Dst: VdbeModuleComment
      Src: /src/nss/lib/sqlite/sqlite3.c:118824,1
    CyclomaticComplexity: 112
    EdgeCount: 112
    ICount: 339
    argCount: 13
    argNames:
    - pParse
    - pTab
    - aRegIdx
    - iDataCur
    - iIdxCur
    - regNewData
    - regOldData
    - pkChng
    - overrideError
    - ignoreDest
    - pbMayReplace
    - aiChng
    - pUpsert
    argTypes:
    - Parse*
    - Table*
    - int*
    - int
    - int
    - int
    - int
    - u8
    - u8
    - int
    - int*
    - int*
    - Upsert*
    assertStmts:
    - condition: ( pTab->pSelect==0 )
      pos:
        line_end: 118279
        line_start: 118279
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pUpsert->pUpsertSet==0 )
      pos:
        line_end: 118427
        line_start: 118427
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( onError==OE_Rollback || onError==OE_Abort || onError==OE_Fail\n
        \       || onError==OE_Ignore || onError==OE_Replace )"
      pos:
        line_end: 118319
        line_start: 118318
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( onError==OE_Replace )
      pos:
        line_end: 118323
        line_start: 118323
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( onError==OE_Replace )
      pos:
        line_end: 118782
        line_start: 118782
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( onError==OE_Ignore )
      pos:
        line_end: 118350
        line_start: 118350
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( v!=0 )
      pos:
        line_end: 118278
        line_start: 118278
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( onError==OE_Rollback || onError==OE_Abort || onError==OE_Fail\n
        \       || onError==OE_Ignore || onError==OE_Replace || onError==OE_Update
        )"
      pos:
        line_end: 118758
        line_start: 118757
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPk->aiColumn[i]>=0 )
      pos:
        line_end: 118718
        line_start: 118718
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( HasRowid(pTab) )
      pos:
        line_end: 118537
        line_start: 118537
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( x>=0 )
      pos:
        line_end: 118740
        line_start: 118740
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 118825
      start: 118242
    functionDepth: 20
    functionLinenumber: 118242
    functionLinenumberEnd: 118825
    functionName: sqlite3GenerateConstraintChecks
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3TableAffinity
    - sqlite3VdbeAppendP4
    - sqlite3VdbeAddOp2
    - sqlite3ExprCode
    - VdbeNoopComment
    - sqlite3VdbeResolveLabel
    - sqlite3VdbeAddOp3
    - sqlite3LocateCollSeq
    - sqlite3GenerateRowDelete
    - sqlite3ExprCodeCopy
    - sqlite3SetMakeRecordP5
    - sqlite3HaltConstraint
    - sqlite3GetVdbe
    - VdbeComment
    - testcase
    - HasRowid
    - sqlite3VdbeGoto
    - sqlite3VdbeCurrentAddr
    - sqlite3GenerateRowIndexDelete
    - sqlite3VdbeAddOp4Int
    - sqlite3ColumnOfIndex
    - sqlite3MayAbort
    - assert
    - sqlite3VdbeJumpHere
    - VdbeCoverageIf
    - sqlite3GetTempRange
    - sqlite3VdbeAddOp0
    - sqlite3UpsertDoUpdate
    - IsPrimaryKeyIndex
    - sqlite3ExprIfFalseDup
    - sqlite3MultiWrite
    - sqlite3ReleaseTempRange
    - sqlite3PrimaryKeyIndex
    - sqlite3VdbeAddOp4
    - VdbeCoverage
    - sqlite3RowidConstraint
    - sqlite3FkRequired
    - sqlite3MPrintf
    - sqlite3ExprReferencesUpdatedColumn
    - sqlite3FkReferences
    - sqlite3UniqueConstraint
    - sqlite3VdbeChangeP5
    - VdbeModuleComment
    - sqlite3TriggersExist
    - sqlite3VdbeVerifyAbortable
    - sqlite3VdbeMakeLabel
    - sqlite3ExprIfTrue
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3GenerateConstraintChecks(\n  Parse *pParse,
      \      /* The parser context */\n  Table *pTab,         /* The table being inserted
      or updated */\n  int *aRegIdx,        /* Use register aRegIdx[i] for index i.
      \ 0 for unused */\n  int iDataCur,        /* Canonical data cursor (main table
      or PK index) */\n  int iIdxCur,         /* First index cursor */\n  int regNewData,
      \     /* First register in a range holding values to insert */\n  int regOldData,
      \     /* Previous content.  0 for INSERTs */\n  u8 pkChng,           /* Non-zero
      if the rowid or PRIMARY KEY changed */\n  u8 overrideError,    /* Override onError
      to this if not OE_Default */\n  int ignoreDest,      /* Jump to this label on
      an OE_Ignore resolution */\n  int *pbMayReplace,   /* OUT: Set to true if constraint
      may cause a replace */\n  int *aiChng,         /* column i is unchanged if aiChng[i]<0
      */\n  Upsert *pUpsert      /* ON CONFLICT clauses, if any.  NULL otherwise */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:118845,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - v
    - pTab
    argTypes:
    - Vdbe*
    - Table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118846
      start: 118834
    functionDepth: 1
    functionLinenumber: 118834
    functionLinenumberEnd: 118846
    functionName: sqlite3SetMakeRecordP5
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3VdbeChangeP5
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3SetMakeRecordP5(Vdbe *v, Table *pTab)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:118874,1
    - Dst: sqlite3GetVdbe
      Src: /src/nss/lib/sqlite/sqlite3.c:118879,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:118880,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:118881,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:118885,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:118885,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:118886,1
    - Dst: IsPrimaryKeyIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:118889,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:118889,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:118890,1
    - Dst: sqlite3GetTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:118895,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:118896,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:118897,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:118900,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:118901,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/nss/lib/sqlite/sqlite3.c:118905,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:118908,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:118910,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:118923,1
    - Dst: sqlite3VdbeAppendP4
      Src: /src/nss/lib/sqlite/sqlite3.c:118925,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:118927,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 9
    argNames:
    - pParse
    - pTab
    - iDataCur
    - iIdxCur
    - regNewData
    - aRegIdx
    - update_flags
    - appendBias
    - useSeekResult
    argTypes:
    - Parse*
    - Table*
    - int
    - int
    - int
    - int*
    - int
    - int
    - int
    assertStmts:
    - condition: "( update_flags==0\n       || update_flags==OPFLAG_ISUPDATE\n       ||
        update_flags==(OPFLAG_ISUPDATE|OPFLAG_SAVEPOSITION)\n  )"
      pos:
        line_end: 118876
        line_start: 118873
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTab->pSelect==0 )
      pos:
        line_end: 118880
        line_start: 118880
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( v!=0 )
      pos:
        line_end: 118879
        line_start: 118879
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pParse->nested==0 )
      pos:
        line_end: 118889
        line_start: 118889
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 118928
      start: 118858
    functionDepth: 12
    functionLinenumber: 118858
    functionLinenumberEnd: 118928
    functionName: sqlite3CompleteInsertion
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - HasRowid
    - IsPrimaryKeyIndex
    - sqlite3VdbeAppendP4
    - sqlite3VdbeAddOp2
    - sqlite3VdbeCurrentAddr
    - sqlite3GetTempReg
    - sqlite3VdbeAddOp4Int
    - sqlite3ReleaseTempReg
    - sqlite3VdbeAddOp3
    - assert
    - sqlite3VdbeAddOp4
    - sqlite3VdbeChangeP5
    - VdbeCoverage
    - sqlite3GetVdbe
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3CompleteInsertion(\n  Parse *pParse,      /*
      The parser context */\n  Table *pTab,        /* the table into which we are
      inserting */\n  int iDataCur,       /* Cursor of the canonical data source */\n
      \ int iIdxCur,        /* First index cursor */\n  int regNewData,     /* Range
      of content */\n  int *aRegIdx,       /* Register used by each index.  0 for
      unused indices */\n  int update_flags,   /* True for UPDATE, False for INSERT
      */\n  int appendBias,     /* True if this is likely to be an append */\n  int
      useSeekResult   /* True to set the USESEEKRESULT flag on OP_[Idx]Insert */\n)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:118967,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:118968,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:118969,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:118975,1
    - Dst: sqlite3GetVdbe
      Src: /src/nss/lib/sqlite/sqlite3.c:118976,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:118977,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:118981,1
    - Dst: sqlite3OpenTable
      Src: /src/nss/lib/sqlite/sqlite3.c:118982,1
    - Dst: sqlite3TableLock
      Src: /src/nss/lib/sqlite/sqlite3.c:118984,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:118989,1
    - Dst: IsPrimaryKeyIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:118990,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:118990,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:118995,1
    - Dst: sqlite3VdbeSetP4KeyInfo
      Src: /src/nss/lib/sqlite/sqlite3.c:118996,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:118997,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:118998,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 38
    argCount: 8
    argNames:
    - pParse
    - pTab
    - op
    - p5
    - iBase
    - aToOpen
    - piDataCur
    - piIdxCur
    argTypes:
    - Parse*
    - Table*
    - int
    - u8
    - int
    - u8*
    - int*
    - int*
    assertStmts:
    - condition: ( op==OP_OpenRead || op==OP_OpenWrite )
      pos:
        line_end: 118966
        line_start: 118966
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( op==OP_OpenWrite || p5==0 )
      pos:
        line_end: 118967
        line_start: 118967
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( v!=0 )
      pos:
        line_end: 118976
        line_start: 118976
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIdx->pSchema==pTab->pSchema )
      pos:
        line_end: 118988
        line_start: 118988
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 119003
      start: 118951
    functionDepth: 14
    functionLinenumber: 118951
    functionLinenumberEnd: 119003
    functionName: sqlite3OpenTableAndIndices
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - HasRowid
    - VdbeComment
    - IsPrimaryKeyIndex
    - sqlite3VdbeSetP4KeyInfo
    - sqlite3TableLock
    - sqlite3VdbeAddOp3
    - assert
    - sqlite3VdbeChangeP5
    - sqlite3GetVdbe
    - sqlite3SchemaToIndex
    - sqlite3OpenTable
    - IsVirtual
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3OpenTableAndIndices(\n  Parse *pParse,   /*
      Parsing context */\n  Table *pTab,     /* Table to be opened */\n  int op,          /*
      OP_OpenRead or OP_OpenWrite */\n  u8 p5,           /* P5 value for OP_Open*
      opcodes (except on WITHOUT ROWID) */\n  int iBase,       /* Use this for the
      table cursor, if there is one */\n  u8 *aToOpen,     /* If not NULL: boolean
      for each table and index */\n  int *piDataCur,  /* Write the database source
      cursor number here */\n  int *piIdxCur    /* Write the first index cursor number
      here */\n)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:119031,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:119032,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:119044,1
    - Dst: sqlite3ExprCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:119045,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:119053,1
    - Dst: sqlite3ExprCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:119057,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 2
    argNames:
    - pDest
    - pSrc
    argTypes:
    - Index*
    - Index*
    assertStmts:
    - condition: ( pDest && pSrc )
      pos:
        line_end: 119030
        line_start: 119030
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pDest->pTable!=pSrc->pTable )
      pos:
        line_end: 119031
        line_start: 119031
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pSrc->aColExpr!=0 && pDest->aColExpr!=0 )
      pos:
        line_end: 119043
        line_start: 119043
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 119063
      start: 119029
    functionDepth: 18
    functionLinenumber: 119029
    functionLinenumberEnd: 119063
    functionName: xferCompatibleIndex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_stricmp
    - sqlite3ExprCompare
    linkageType: ''
    returnType: int
    signature: int xferCompatibleIndex(Index *pDest, Index *pSrc)
  - BBCount: 50
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3TriggerList
      Src: /src/nss/lib/sqlite/sqlite3.c:119122,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:119126,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:119134,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:119162,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:119166,1
    - Dst: sqlite3LocateTableItem
      Src: /src/nss/lib/sqlite/sqlite3.c:119176,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:119181,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:119184,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:119184,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:119188,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:119214,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:119222,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:119223,1
    - Dst: strcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:119225,1
    - Dst: IsUniqueIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:119233,1
    - Dst: xferCompatibleIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:119237,1
    - Dst: sqlite3FaultSim
      Src: /src/nss/lib/sqlite/sqlite3.c:119243,1
    - Dst: sqlite3ExprListCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:119251,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:119278,1
    - Dst: sqlite3GetVdbe
      Src: /src/nss/lib/sqlite/sqlite3.c:119279,1
    - Dst: sqlite3CodeVerifySchema
      Src: /src/nss/lib/sqlite/sqlite3.c:119280,1
    - Dst: autoIncBegin
      Src: /src/nss/lib/sqlite/sqlite3.c:119283,1
    - Dst: sqlite3GetTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:119284,1
    - Dst: sqlite3GetTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:119285,1
    - Dst: sqlite3OpenTable
      Src: /src/nss/lib/sqlite/sqlite3.c:119286,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:119287,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:119287,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:119310,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:119310,1
    - Dst: sqlite3VdbeAddOp0
      Src: /src/nss/lib/sqlite/sqlite3.c:119311,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:119312,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:119314,1
    - Dst: sqlite3OpenTable
      Src: /src/nss/lib/sqlite/sqlite3.c:119316,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:119317,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:119317,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:119319,1
    - Dst: sqlite3VdbeVerifyAbortable
      Src: /src/nss/lib/sqlite/sqlite3.c:119320,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:119321,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:119322,1
    - Dst: sqlite3RowidConstraint
      Src: /src/nss/lib/sqlite/sqlite3.c:119323,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:119324,1
    - Dst: autoIncStep
      Src: /src/nss/lib/sqlite/sqlite3.c:119325,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:119327,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:119329,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:119330,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:119332,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:119334,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:119340,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:119342,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:119343,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:119343,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:119344,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:119345,1
    - Dst: sqlite3TableLock
      Src: /src/nss/lib/sqlite/sqlite3.c:119347,1
    - Dst: sqlite3TableLock
      Src: /src/nss/lib/sqlite/sqlite3.c:119348,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:119352,1
    - Dst: xferCompatibleIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:119353,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:119355,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:119356,1
    - Dst: sqlite3VdbeSetP4KeyInfo
      Src: /src/nss/lib/sqlite/sqlite3.c:119357,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:119358,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:119359,1
    - Dst: sqlite3VdbeSetP4KeyInfo
      Src: /src/nss/lib/sqlite/sqlite3.c:119360,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:119361,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:119362,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:119363,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:119363,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:119364,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:119382,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:119386,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:119389,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:119392,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:119393,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:119394,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:119394,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:119395,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:119396,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:119397,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:119399,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:119400,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:119401,1
    - Dst: sqlite3AutoincrementEnd
      Src: /src/nss/lib/sqlite/sqlite3.c:119403,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:119404,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:119405,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:119406,1
    CyclomaticComplexity: 78
    EdgeCount: 78
    ICount: 225
    argCount: 5
    argNames:
    - pParse
    - pDest
    - pSelect
    - onError
    - iDbDest
    argTypes:
    - Parse*
    - Table*
    - Select*
    - int
    - int
    assertStmts:
    - condition: ( pEList->a[0].pExpr )
      pos:
        line_end: 119165
        line_start: 119165
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pEList!=0 )
      pos:
        line_end: 119161
        line_start: 119161
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( HasRowid(pDest) || destHasUniqueIdx )
      pos:
        line_end: 119286
        line_start: 119286
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pSrcCol->pDflt==0 || pSrcCol->pDflt->op==TK_SPAN )
      pos:
        line_end: 119222
        line_start: 119222
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (pSelect->pSrc)
      pos:
        line_end: 119133
        line_start: 119133
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pDest->tabFlags & TF_Autoincrement)==0 )
      pos:
        line_end: 119329
        line_start: 119329
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pSrcIdx )
      pos:
        line_end: 119354
        line_start: 119354
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pDestCol->pDflt==0 || pDestCol->pDflt->op==TK_SPAN )
      pos:
        line_end: 119221
        line_start: 119221
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 119411
      start: 119090
    functionDepth: 19
    functionLinenumber: 119090
    functionLinenumberEnd: 119411
    functionName: xferOptimization
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - IsUniqueIndex
    - sqlite3VdbeVerifyAbortable
    - ALWAYS
    - sqlite3VdbeSetP4KeyInfo
    - sqlite3VdbeAddOp2
    - sqlite3LocateTableItem
    - autoIncStep
    - sqlite3VdbeAddOp3
    - sqlite3FaultSim
    - autoIncBegin
    - sqlite3_stricmp
    - sqlite3GetVdbe
    - testcase
    - VdbeComment
    - HasRowid
    - sqlite3ExprListCompare
    - sqlite3GetTempReg
    - assert
    - sqlite3VdbeJumpHere
    - sqlite3VdbeAddOp0
    - sqlite3AutoincrementEnd
    - sqlite3SchemaToIndex
    - sqlite3TriggerList
    - sqlite3VdbeAddOp4
    - IsVirtual
    - sqlite3VdbeAddOp1
    - VdbeCoverage
    - sqlite3OpenTable
    - sqlite3RowidConstraint
    - strcmp
    - sqlite3TableLock
    - sqlite3ReleaseTempReg
    - sqlite3VdbeChangeP5
    - sqlite3CodeVerifySchema
    - xferCompatibleIndex
    linkageType: ''
    returnType: int
    signature: "int xferOptimization(\n  Parse *pParse,        /* Parser context */\n
      \ Table *pDest,         /* The table we are inserting into */\n  Select *pSelect,
      \     /* A SELECT statement to use as the data source */\n  int onError,          /*
      How to handle constraint errors */\n  int iDbDest           /* The database
      of pDest */\n)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/nss/lib/sqlite/sqlite3.c:119458,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:119461,1
    - Dst: sqlite3Error
      Src: /src/nss/lib/sqlite/sqlite3.c:119462,1
    - Dst: sqlite3_prepare_v2
      Src: /src/nss/lib/sqlite/sqlite3.c:119468,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:119469,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:119482,1
    - Dst: sqlite3_column_count
      Src: /src/nss/lib/sqlite/sqlite3.c:119489,1
    - Dst: sqlite3DbMallocRaw
      Src: /src/nss/lib/sqlite/sqlite3.c:119490,1
    - Dst: sqlite3_column_name
      Src: /src/nss/lib/sqlite/sqlite3.c:119495,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:119498,1
    - Dst: sqlite3_column_text
      Src: /src/nss/lib/sqlite/sqlite3.c:119505,1
    - Dst: sqlite3_column_type
      Src: /src/nss/lib/sqlite/sqlite3.c:119506,1
    - Dst: sqlite3OomFault
      Src: /src/nss/lib/sqlite/sqlite3.c:119507,1
    - Dst: xCallback
      Src: /src/nss/lib/sqlite/sqlite3.c:119513,1
    - Dst: sqlite3VdbeFinalize
      Src: /src/nss/lib/sqlite/sqlite3.c:119518,1
    - Dst: sqlite3Error
      Src: /src/nss/lib/sqlite/sqlite3.c:119520,1
    - Dst: sqlite3VdbeFinalize
      Src: /src/nss/lib/sqlite/sqlite3.c:119526,1
    - Dst: sqlite3Isspace
      Src: /src/nss/lib/sqlite/sqlite3.c:119529,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:119534,1
    - Dst: sqlite3VdbeFinalize
      Src: /src/nss/lib/sqlite/sqlite3.c:119539,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:119540,1
    - Dst: sqlite3ApiExit
      Src: /src/nss/lib/sqlite/sqlite3.c:119542,1
    - Dst: sqlite3DbStrDup
      Src: /src/nss/lib/sqlite/sqlite3.c:119544,1
    - Dst: sqlite3_errmsg
      Src: /src/nss/lib/sqlite/sqlite3.c:119544,1
    - Dst: sqlite3Error
      Src: /src/nss/lib/sqlite/sqlite3.c:119547,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:119553,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:119554,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 87
    argCount: 5
    argNames:
    - db
    - zSql
    - xCallback
    - pArg
    - pzErrMsg
    argTypes:
    - sqlite3*
    - char*
    - sqlite3_callback
    - void*
    - char**
    assertStmts:
    - condition: ( (rc&db->errMask)==rc )
      pos:
        line_end: 119552
        line_start: 119552
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc==SQLITE_OK || pStmt==0 )
      pos:
        line_end: 119468
        line_start: 119468
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( azCols[i]!=0 )
      pos:
        line_end: 119497
        line_start: 119497
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 119556
      start: 119445
    functionDepth: 27
    functionLinenumber: 119445
    functionLinenumberEnd: 119556
    functionName: sqlite3_exec
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 10
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3SafetyCheckOk
    - sqlite3_prepare_v2
    - xCallback
    - sqlite3DbMallocRaw
    - sqlite3Isspace
    - sqlite3DbStrDup
    - sqlite3_mutex_leave
    - sqlite3_column_count
    - assert
    - sqlite3Error
    - sqlite3_column_text
    - sqlite3_column_name
    - sqlite3_step
    - sqlite3DbFree
    - sqlite3VdbeFinalize
    - sqlite3OomFault
    - sqlite3_errmsg
    - sqlite3_column_type
    - sqlite3ApiExit
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_exec(\n  sqlite3 *db,                /* The database
      on which the SQL executes */\n  const char *zSql,           /* The SQL to be
      executed */\n  sqlite3_callback xCallback, /* Invoke this callback routine */\n
      \ void *pArg,                 /* First argument to xCallback() */\n  char **pzErrMsg
      \            /* Write error messages here */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120203
      start: 120202
    functionDepth: 0
    functionLinenumber: 120202
    functionLinenumberEnd: 120203
    functionName: SQLITE_EXTENSION_INIT2
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQLITE_EXTENSION_INIT2(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120210
      start: 120209
    functionDepth: 0
    functionLinenumber: 120209
    functionLinenumberEnd: 120210
    functionName: SQLITE_EXTENSION_INIT2
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQLITE_EXTENSION_INIT2(v)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:120689,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:120716,1
    - Dst: sqlite3OsDlOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:120723,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:120725,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:120726,1
    - Dst: sqlite3OsDlOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:120728,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:120729,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:120734,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:120736,1
    - Dst: sqlite3OsDlError
      Src: /src/nss/lib/sqlite/sqlite3.c:120738,1
    - Dst: sqlite3OsDlSym
      Src: /src/nss/lib/sqlite/sqlite3.c:120743,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:120758,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:120759,1
    - Dst: sqlite3OsDlClose
      Src: /src/nss/lib/sqlite/sqlite3.c:120761,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:120764,1
    - Dst: sqlite3_strnicmp
      Src: /src/nss/lib/sqlite/sqlite3.c:120767,1
    - Dst: sqlite3Isalpha
      Src: /src/nss/lib/sqlite/sqlite3.c:120769,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:120773,1
    - Dst: sqlite3OsDlSym
      Src: /src/nss/lib/sqlite/sqlite3.c:120775,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:120779,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:120780,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:120782,1
    - Dst: sqlite3OsDlError
      Src: /src/nss/lib/sqlite/sqlite3.c:120784,1
    - Dst: sqlite3OsDlClose
      Src: /src/nss/lib/sqlite/sqlite3.c:120787,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:120788,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:120791,1
    - Dst: xInit
      Src: /src/nss/lib/sqlite/sqlite3.c:120792,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:120796,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:120798,1
    - Dst: sqlite3OsDlClose
      Src: /src/nss/lib/sqlite/sqlite3.c:120799,1
    - Dst: sqlite3DbMallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:120804,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:120809,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:120811,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 85
    argCount: 4
    argNames:
    - db
    - zFile
    - zProc
    - pzErrMsg
    argTypes:
    - sqlite3*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120816
      start: 120676
    functionDepth: 10
    functionLinenumber: 120676
    functionLinenumberEnd: 120816
    functionName: sqlite3LoadExtension
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsDlSym
    - memcpy
    - sqlite3_malloc64
    - sqlite3DbMallocZero
    - sqlite3DbFree
    - sqlite3OsDlClose
    - ArraySize
    - sqlite3_strnicmp
    - sqlite3_mprintf
    - sqlite3Isalpha
    - sqlite3OsDlError
    - sqlite3Strlen30
    - xInit
    - sqlite3OsDlOpen
    - sqlite3_free
    - sqlite3_snprintf
    linkageType: ''
    returnType: int
    signature: "int sqlite3LoadExtension(\n  sqlite3 *db,          /* Load the extension
      into this database connection */\n  const char *zFile,    /* Name of the shared
      library containing extension */\n  const char *zProc,    /* Entry point.  Use
      \"sqlite3_extension_init\" if 0 */\n  char **pzErrMsg       /* Put error message
      here if not 0 */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:120824,1
    - Dst: sqlite3LoadExtension
      Src: /src/nss/lib/sqlite/sqlite3.c:120825,1
    - Dst: sqlite3ApiExit
      Src: /src/nss/lib/sqlite/sqlite3.c:120826,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:120827,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - db
    - zFile
    - zProc
    - pzErrMsg
    argTypes:
    - sqlite3*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120829
      start: 120817
    functionDepth: 11
    functionLinenumber: 120817
    functionLinenumberEnd: 120829
    functionName: sqlite3_load_extension
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3LoadExtension
    - sqlite3_mutex_leave
    - sqlite3ApiExit
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_load_extension(\n  sqlite3 *db,          /* Load
      the extension into this database connection */\n  const char *zFile,    /* Name
      of the shared library containing extension */\n  const char *zProc,    /* Entry
      point.  Use \"sqlite3_extension_init\" if 0 */\n  char **pzErrMsg       /* Put
      error message here if not 0 */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:120837,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:120837,1
    - Dst: sqlite3OsDlClose
      Src: /src/nss/lib/sqlite/sqlite3.c:120839,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:120841,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts:
    - condition: ( sqlite3_mutex_held(db->mutex) )
      pos:
        line_end: 120836
        line_start: 120836
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 120842
      start: 120835
    functionDepth: 6
    functionLinenumber: 120835
    functionLinenumberEnd: 120842
    functionName: sqlite3CloseExtensions
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3OsDlClose
    - sqlite3_mutex_held
    - sqlite3DbFree
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3CloseExtensions(sqlite3 *db)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:120849,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:120855,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - db
    - onoff
    argTypes:
    - sqlite3*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120857
      start: 120848
    functionDepth: 1
    functionLinenumber: 120848
    functionLinenumberEnd: 120857
    functionName: sqlite3_enable_load_extension
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3_mutex_leave
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_enable_load_extension(sqlite3 *db, int onoff)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120872
      start: 120869
    functionDepth: 0
    functionLinenumber: 120869
    functionLinenumberEnd: 120872
    functionName: sqlite3AutoExtList
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_WSD
    signature: SQLITE_WSD sqlite3AutoExtList
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_initialize
      Src: /src/nss/lib/sqlite/sqlite3.c:120899,1
    - Dst: sqlite3MutexAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:120907,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:120910,1
    - Dst: sqlite3_realloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:120917,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:120926,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:120927,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( (rc&0xff)==rc )
      pos:
        line_end: 120926
        line_start: 120926
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 120930
      start: 120894
    functionDepth: 7
    functionLinenumber: 120894
    functionLinenumberEnd: 120930
    functionName: sqlite3_auto_extension
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3_initialize
    - sqlite3_mutex_leave
    - assert
    - sqlite3MutexAlloc
    - sqlite3_realloc64
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_auto_extension(\n  void (*xInit)(void)\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3MutexAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:120945,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:120950,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:120959,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120961
      start: 120941
    functionDepth: 1
    functionLinenumber: 120941
    functionLinenumberEnd: 120961
    functionName: sqlite3_cancel_auto_extension
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3MutexAlloc
    - sqlite3_mutex_leave
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_cancel_auto_extension(\n  void (*xInit)(void)\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_initialize
      Src: /src/nss/lib/sqlite/sqlite3.c:120968,1
    - Dst: sqlite3MutexAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:120972,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:120975,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:120976,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:120979,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120981
      start: 120966
    functionDepth: 3
    functionLinenumber: 120966
    functionLinenumberEnd: 120981
    functionName: sqlite3_reset_auto_extension
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3_initialize
    - sqlite3_mutex_leave
    - sqlite3MutexAlloc
    - sqlite3_free
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_reset_auto_extension(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3MutexAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:121002,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:121009,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:121016,1
    - Dst: xInit
      Src: /src/nss/lib/sqlite/sqlite3.c:121018,1
    - Dst: sqlite3ErrorWithMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:121019,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:121023,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121025
      start: 120988
    functionDepth: 10
    functionLinenumber: 120988
    functionLinenumberEnd: 121025
    functionName: sqlite3AutoLoadExtensions
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3_mutex_leave
    - xInit
    - sqlite3ErrorWithMsg
    - sqlite3MutexAlloc
    - sqlite3_free
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3AutoLoadExtensions(sqlite3 *db)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Isdigit
      Src: /src/nss/lib/sqlite/sqlite3.c:121755,1
    - Dst: sqlite3Atoi
      Src: /src/nss/lib/sqlite/sqlite3.c:121756,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:121758,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:121759,1
    - Dst: sqlite3StrNICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:121760,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 3
    argNames:
    - z
    - omitFull
    - dflt
    argTypes:
    - char*
    - int
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121767
      start: 121747
    functionDepth: 3
    functionLinenumber: 121747
    functionLinenumberEnd: 121767
    functionName: getSafetyLevel
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Isdigit
    - ArraySize
    - sqlite3StrNICmp
    - sqlite3Strlen30
    - sqlite3Atoi
    linkageType: ''
    returnType: u8
    signature: u8 getSafetyLevel(const char *z, int omitFull, u8 dflt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getSafetyLevel
      Src: /src/nss/lib/sqlite/sqlite3.c:121773,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - z
    - dflt
    argTypes:
    - char*
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121774
      start: 121772
    functionDepth: 4
    functionLinenumber: 121772
    functionLinenumberEnd: 121774
    functionName: sqlite3GetBoolean
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - getSafetyLevel
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3GetBoolean(const char *z, u8 dflt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:121787,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:121788,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - z
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121791
      start: 121785
    functionDepth: 1
    functionLinenumber: 121785
    functionLinenumberEnd: 121791
    functionName: getLockingMode
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3StrICmp
    linkageType: ''
    returnType: int
    signature: int getLockingMode(const char *z)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:121802,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:121803,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:121804,1
    - Dst: sqlite3Atoi
      Src: /src/nss/lib/sqlite/sqlite3.c:121805,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - z
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121807
      start: 121800
    functionDepth: 3
    functionLinenumber: 121800
    functionLinenumberEnd: 121807
    functionName: getAutoVacuum
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Atoi
    - sqlite3StrICmp
    linkageType: ''
    returnType: int
    signature: int getAutoVacuum(const char *z)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:121819,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:121821,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - z
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121826
      start: 121816
    functionDepth: 1
    functionLinenumber: 121816
    functionLinenumberEnd: 121826
    functionName: getTempStore
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3StrICmp
    linkageType: ''
    returnType: int
    signature: int getTempStore(const char *z)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeIsInReadTrans
      Src: /src/nss/lib/sqlite/sqlite3.c:121837,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:121838,1
    - Dst: sqlite3BtreeClose
      Src: /src/nss/lib/sqlite/sqlite3.c:121842,1
    - Dst: sqlite3ResetAllSchemasOfConnection
      Src: /src/nss/lib/sqlite/sqlite3.c:121844,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - pParse
    argTypes:
    - Parse*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121847
      start: 121834
    functionDepth: 11
    functionLinenumber: 121834
    functionLinenumberEnd: 121847
    functionName: invalidateTempStorage
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeClose
    - sqlite3BtreeIsInReadTrans
    - sqlite3ErrorMsg
    - sqlite3ResetAllSchemasOfConnection
    linkageType: ''
    returnType: int
    signature: int invalidateTempStorage(Parse *pParse)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getTempStore
      Src: /src/nss/lib/sqlite/sqlite3.c:121857,1
    - Dst: invalidateTempStorage
      Src: /src/nss/lib/sqlite/sqlite3.c:121860,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - pParse
    - zStorageType
    argTypes:
    - Parse*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121865
      start: 121856
    functionDepth: 12
    functionLinenumber: 121856
    functionLinenumberEnd: 121865
    functionName: changeTempStorage
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - invalidateTempStorage
    - getTempStore
    linkageType: ''
    returnType: int
    signature: int changeTempStorage(Parse *pParse, const char *zStorageType)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeSetNumCols
      Src: /src/nss/lib/sqlite/sqlite3.c:121876,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/nss/lib/sqlite/sqlite3.c:121878,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/nss/lib/sqlite/sqlite3.c:121882,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - v
    - pPragma
    argTypes:
    - Vdbe*
    - PragmaName*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121885
      start: 121871
    functionDepth: 13
    functionLinenumber: 121871
    functionLinenumberEnd: 121885
    functionName: setPragmaResultColumnNames
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeSetColName
    - sqlite3VdbeSetNumCols
    linkageType: ''
    returnType: void
    signature: "void setPragmaResultColumnNames(\n  Vdbe *v,                     /*
      The query under construction */\n  const PragmaName *pPragma    /* The pragma
      */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeAddOp4Dup8
      Src: /src/nss/lib/sqlite/sqlite3.c:121891,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:121892,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - v
    - value
    argTypes:
    - Vdbe*
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121893
      start: 121890
    functionDepth: 13
    functionLinenumber: 121890
    functionLinenumberEnd: 121893
    functionName: returnSingleInt
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeAddOp4Dup8
    - sqlite3VdbeAddOp2
    linkageType: ''
    returnType: void
    signature: void returnSingleInt(Vdbe *v, i64 value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeLoadString
      Src: /src/nss/lib/sqlite/sqlite3.c:121903,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:121904,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - v
    - zValue
    argTypes:
    - Vdbe*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121906
      start: 121898
    functionDepth: 12
    functionLinenumber: 121898
    functionLinenumberEnd: 121906
    functionName: returnSingleText
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeAddOp2
    - sqlite3VdbeLoadString
    linkageType: ''
    returnType: void
    signature: "void returnSingleText(\n  Vdbe *v,                /* Prepared statement
      under construction */\n  const char *zValue      /* Value to be returned */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:121918,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:121919,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:121920,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:121921,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:121923,1
    - Dst: sqlite3BtreeSetPagerFlags
      Src: /src/nss/lib/sqlite/sqlite3.c:121926,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts:
    - condition: ( SQLITE_FullFSync==PAGER_FULLFSYNC )
      pos:
        line_end: 121917
        line_start: 121917
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( SQLITE_CacheSpill==PAGER_CACHESPILL )
      pos:
        line_end: 121919
        line_start: 121919
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( (PAGER_FULLFSYNC | PAGER_CKPT_FULLFSYNC | PAGER_CACHESPILL)\n
        \            ==  PAGER_FLAGS_MASK )"
      pos:
        line_end: 121921
        line_start: 121920
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( SQLITE_CkptFullFSync==PAGER_CKPT_FULLFSYNC )
      pos:
        line_end: 121918
        line_start: 121918
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pDb->safety_level & PAGER_SYNCHRONOUS_MASK)==pDb->safety_level
        )
      pos:
        line_end: 121922
        line_start: 121922
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 121932
      start: 121914
    functionDepth: 3
    functionLinenumber: 121914
    functionLinenumberEnd: 121932
    functionName: setAllPagerFlags
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3BtreeSetPagerFlags
    linkageType: ''
    returnType: void
    signature: void setAllPagerFlags(sqlite3 *db)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:121950,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - action
    argTypes:
    - u8
    assertStmts:
    - condition: ( action==OE_None )
      pos:
        line_end: 121949
        line_start: 121949
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 121953
      start: 121942
    functionDepth: 0
    functionLinenumber: 121942
    functionLinenumberEnd: 121953
    functionName: actionName
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: char
    signature: char *actionName(u8 action)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:121969,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:121970,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:121971,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:121972,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:121973,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:121974,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:121975,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:121975,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:121977,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - eMode
    argTypes:
    - int
    assertStmts:
    - condition: ( PAGER_JOURNALMODE_DELETE==0 )
      pos:
        line_end: 121968
        line_start: 121968
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( PAGER_JOURNALMODE_TRUNCATE==3 )
      pos:
        line_end: 121971
        line_start: 121971
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( PAGER_JOURNALMODE_PERSIST==1 )
      pos:
        line_end: 121969
        line_start: 121969
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( PAGER_JOURNALMODE_OFF==2 )
      pos:
        line_end: 121970
        line_start: 121970
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( PAGER_JOURNALMODE_MEMORY==4 )
      pos:
        line_end: 121972
        line_start: 121972
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( PAGER_JOURNALMODE_WAL==5 )
      pos:
        line_end: 121973
        line_start: 121973
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( eMode>=0 && eMode<=ArraySize(azModeName) )
      pos:
        line_end: 121974
        line_start: 121974
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 121979
      start: 121962
    functionDepth: 1
    functionLinenumber: 121962
    functionLinenumberEnd: 121979
    functionName: sqlite3JournalModename
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - ArraySize
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3JournalModename(int eMode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:121987,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:121990,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - zName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121999
      start: 121984
    functionDepth: 2
    functionLinenumber: 121984
    functionLinenumberEnd: 121999
    functionName: pragmaLocate
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_stricmp
    - ArraySize
    linkageType: ''
    returnType: PragmaName
    signature: PragmaName *pragmaLocate(const char *zName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:122010,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:122011,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:122011,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:122012,1
    - Dst: sqlite3VdbeAddOp0
      Src: /src/nss/lib/sqlite/sqlite3.c:122013,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - Vdbe*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122015
      start: 122008
    functionDepth: 12
    functionLinenumber: 122008
    functionLinenumberEnd: 122015
    functionName: integrityCheckResultRow
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeAddOp2
    - sqlite3VdbeCurrentAddr
    - sqlite3VdbeAddOp3
    - VdbeCoverage
    - sqlite3VdbeAddOp0
    linkageType: ''
    returnType: int
    signature: int integrityCheckResultRow(Vdbe *v)
  - BBCount: 199
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetVdbe
      Src: /src/nss/lib/sqlite/sqlite3.c:122048,1
    - Dst: sqlite3VdbeRunOnlyOnce
      Src: /src/nss/lib/sqlite/sqlite3.c:122052,1
    - Dst: sqlite3TwoPartName
      Src: /src/nss/lib/sqlite/sqlite3.c:122057,1
    - Dst: sqlite3OpenTempDatabase
      Src: /src/nss/lib/sqlite/sqlite3.c:122064,1
    - Dst: sqlite3NameFromToken
      Src: /src/nss/lib/sqlite/sqlite3.c:122068,1
    - Dst: sqlite3MPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:122071,1
    - Dst: sqlite3NameFromToken
      Src: /src/nss/lib/sqlite/sqlite3.c:122073,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:122076,1
    - Dst: sqlite3AuthCheck
      Src: /src/nss/lib/sqlite/sqlite3.c:122078,1
    - Dst: sqlite3_file_control
      Src: /src/nss/lib/sqlite/sqlite3.c:122102,1
    - Dst: sqlite3VdbeSetNumCols
      Src: /src/nss/lib/sqlite/sqlite3.c:122104,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/nss/lib/sqlite/sqlite3.c:122105,1
    - Dst: returnSingleText
      Src: /src/nss/lib/sqlite/sqlite3.c:122106,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:122107,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:122112,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:122113,1
    - Dst: pragmaLocate
      Src: /src/nss/lib/sqlite/sqlite3.c:122121,1
    - Dst: sqlite3ReadSchema
      Src: /src/nss/lib/sqlite/sqlite3.c:122126,1
    - Dst: setPragmaResultColumnNames
      Src: /src/nss/lib/sqlite/sqlite3.c:122133,1
    - Dst: VDBE_OFFSET_LINENO
      Src: /src/nss/lib/sqlite/sqlite3.c:122157,1
    - Dst: sqlite3VdbeUsesBtree
      Src: /src/nss/lib/sqlite/sqlite3.c:122170,1
    - Dst: sqlite3VdbeVerifyNoMallocRequired
      Src: /src/nss/lib/sqlite/sqlite3.c:122173,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:122173,1
    - Dst: sqlite3VdbeAddOpList
      Src: /src/nss/lib/sqlite/sqlite3.c:122174,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:122174,1
    - Dst: ONLY_IF_REALLOC_STRESS
      Src: /src/nss/lib/sqlite/sqlite3.c:122175,1
    - Dst: sqlite3AbsInt32
      Src: /src/nss/lib/sqlite/sqlite3.c:122180,1
    - Dst: sqlite3Atoi
      Src: /src/nss/lib/sqlite/sqlite3.c:122180,1
    - Dst: sqlite3BeginWriteOperation
      Src: /src/nss/lib/sqlite/sqlite3.c:122181,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:122182,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:122183,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/nss/lib/sqlite/sqlite3.c:122183,1
    - Dst: sqlite3BtreeSetCacheSize
      Src: /src/nss/lib/sqlite/sqlite3.c:122185,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:122203,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:122205,1
    - Dst: sqlite3BtreeGetPageSize
      Src: /src/nss/lib/sqlite/sqlite3.c:122205,1
    - Dst: returnSingleInt
      Src: /src/nss/lib/sqlite/sqlite3.c:122206,1
    - Dst: sqlite3Atoi
      Src: /src/nss/lib/sqlite/sqlite3.c:122211,1
    - Dst: sqlite3BtreeSetPageSize
      Src: /src/nss/lib/sqlite/sqlite3.c:122212,1
    - Dst: sqlite3OomFault
      Src: /src/nss/lib/sqlite/sqlite3.c:122213,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:122230,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:122232,1
    - Dst: sqlite3GetBoolean
      Src: /src/nss/lib/sqlite/sqlite3.c:122235,1
    - Dst: sqlite3BtreeSecureDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:122241,1
    - Dst: sqlite3BtreeSecureDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:122244,1
    - Dst: returnSingleInt
      Src: /src/nss/lib/sqlite/sqlite3.c:122245,1
    - Dst: sqlite3CodeVerifySchema
      Src: /src/nss/lib/sqlite/sqlite3.c:122268,1
    - Dst: sqlite3Tolower
      Src: /src/nss/lib/sqlite/sqlite3.c:122270,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:122271,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:122273,1
    - Dst: sqlite3AbsInt32
      Src: /src/nss/lib/sqlite/sqlite3.c:122274,1
    - Dst: sqlite3Atoi
      Src: /src/nss/lib/sqlite/sqlite3.c:122274,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:122276,1
    - Dst: getLockingMode
      Src: /src/nss/lib/sqlite/sqlite3.c:122286,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:122306,1
    - Dst: sqlite3BtreePager
      Src: /src/nss/lib/sqlite/sqlite3.c:122308,1
    - Dst: sqlite3PagerLockingMode
      Src: /src/nss/lib/sqlite/sqlite3.c:122309,1
    - Dst: sqlite3BtreePager
      Src: /src/nss/lib/sqlite/sqlite3.c:122313,1
    - Dst: sqlite3PagerLockingMode
      Src: /src/nss/lib/sqlite/sqlite3.c:122314,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:122317,1
    - Dst: returnSingleText
      Src: /src/nss/lib/sqlite/sqlite3.c:122322,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:122341,1
    - Dst: sqlite3JournalModename
      Src: /src/nss/lib/sqlite/sqlite3.c:122342,1
    - Dst: sqlite3StrNICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:122343,1
    - Dst: sqlite3VdbeUsesBtree
      Src: /src/nss/lib/sqlite/sqlite3.c:122363,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:122364,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:122367,1
    - Dst: sqlite3BtreePager
      Src: /src/nss/lib/sqlite/sqlite3.c:122378,1
    - Dst: sqlite3DecOrHexToI64
      Src: /src/nss/lib/sqlite/sqlite3.c:122381,1
    - Dst: sqlite3PagerJournalSizeLimit
      Src: /src/nss/lib/sqlite/sqlite3.c:122384,1
    - Dst: returnSingleInt
      Src: /src/nss/lib/sqlite/sqlite3.c:122385,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:122401,1
    - Dst: returnSingleInt
      Src: /src/nss/lib/sqlite/sqlite3.c:122403,1
    - Dst: sqlite3BtreeGetAutoVacuum
      Src: /src/nss/lib/sqlite/sqlite3.c:122403,1
    - Dst: getAutoVacuum
      Src: /src/nss/lib/sqlite/sqlite3.c:122405,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:122406,1
    - Dst: sqlite3BtreeSetAutoVacuum
      Src: /src/nss/lib/sqlite/sqlite3.c:122413,1
    - Dst: VDBE_OFFSET_LINENO
      Src: /src/nss/lib/sqlite/sqlite3.c:122420,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:122429,1
    - Dst: sqlite3VdbeVerifyNoMallocRequired
      Src: /src/nss/lib/sqlite/sqlite3.c:122430,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:122430,1
    - Dst: sqlite3VdbeAddOpList
      Src: /src/nss/lib/sqlite/sqlite3.c:122431,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:122431,1
    - Dst: ONLY_IF_REALLOC_STRESS
      Src: /src/nss/lib/sqlite/sqlite3.c:122432,1
    - Dst: sqlite3VdbeUsesBtree
      Src: /src/nss/lib/sqlite/sqlite3.c:122438,1
    - Dst: sqlite3GetInt32
      Src: /src/nss/lib/sqlite/sqlite3.c:122453,1
    - Dst: sqlite3BeginWriteOperation
      Src: /src/nss/lib/sqlite/sqlite3.c:122456,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:122457,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:122458,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:122458,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:122459,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:122460,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:122461,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:122461,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:122462,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:122480,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/nss/lib/sqlite/sqlite3.c:122480,1
    - Dst: returnSingleInt
      Src: /src/nss/lib/sqlite/sqlite3.c:122482,1
    - Dst: sqlite3Atoi
      Src: /src/nss/lib/sqlite/sqlite3.c:122484,1
    - Dst: sqlite3BtreeSetCacheSize
      Src: /src/nss/lib/sqlite/sqlite3.c:122486,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:122514,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/nss/lib/sqlite/sqlite3.c:122514,1
    - Dst: returnSingleInt
      Src: /src/nss/lib/sqlite/sqlite3.c:122516,1
    - Dst: sqlite3BtreeSetSpillSize
      Src: /src/nss/lib/sqlite/sqlite3.c:122518,1
    - Dst: sqlite3GetInt32
      Src: /src/nss/lib/sqlite/sqlite3.c:122521,1
    - Dst: sqlite3BtreeSetSpillSize
      Src: /src/nss/lib/sqlite/sqlite3.c:122522,1
    - Dst: sqlite3GetBoolean
      Src: /src/nss/lib/sqlite/sqlite3.c:122524,1
    - Dst: setAllPagerFlags
      Src: /src/nss/lib/sqlite/sqlite3.c:122529,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:122551,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/nss/lib/sqlite/sqlite3.c:122551,1
    - Dst: sqlite3DecOrHexToI64
      Src: /src/nss/lib/sqlite/sqlite3.c:122554,1
    - Dst: sqlite3BtreeSetMmapLimit
      Src: /src/nss/lib/sqlite/sqlite3.c:122559,1
    - Dst: sqlite3_file_control
      Src: /src/nss/lib/sqlite/sqlite3.c:122564,1
    - Dst: returnSingleInt
      Src: /src/nss/lib/sqlite/sqlite3.c:122570,1
    - Dst: returnSingleInt
      Src: /src/nss/lib/sqlite/sqlite3.c:122591,1
    - Dst: changeTempStorage
      Src: /src/nss/lib/sqlite/sqlite3.c:122593,1
    - Dst: returnSingleText
      Src: /src/nss/lib/sqlite/sqlite3.c:122610,1
    - Dst: sqlite3OsAccess
      Src: /src/nss/lib/sqlite/sqlite3.c:122615,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:122617,1
    - Dst: invalidateTempStorage
      Src: /src/nss/lib/sqlite/sqlite3.c:122625,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:122627,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:122629,1
    - Dst: returnSingleText
      Src: /src/nss/lib/sqlite/sqlite3.c:122654,1
    - Dst: sqlite3OsAccess
      Src: /src/nss/lib/sqlite/sqlite3.c:122659,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:122661,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:122665,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:122667,1
    - Dst: sqlite3BtreePager
      Src: /src/nss/lib/sqlite/sqlite3.c:122688,1
    - Dst: sqlite3PagerFile
      Src: /src/nss/lib/sqlite/sqlite3.c:122690,1
    - Dst: sqlite3OsFileControlHint
      Src: /src/nss/lib/sqlite/sqlite3.c:122691,1
    - Dst: returnSingleText
      Src: /src/nss/lib/sqlite/sqlite3.c:122693,1
    - Dst: sqlite3BtreePager
      Src: /src/nss/lib/sqlite/sqlite3.c:122695,1
    - Dst: sqlite3PagerFile
      Src: /src/nss/lib/sqlite/sqlite3.c:122696,1
    - Dst: sqlite3OsFileControl
      Src: /src/nss/lib/sqlite/sqlite3.c:122699,1
    - Dst: sqlite3OsFileControl
      Src: /src/nss/lib/sqlite/sqlite3.c:122702,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:122706,1
    - Dst: returnSingleInt
      Src: /src/nss/lib/sqlite/sqlite3.c:122725,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:122728,1
    - Dst: getSafetyLevel
      Src: /src/nss/lib/sqlite/sqlite3.c:122731,1
    - Dst: setAllPagerFlags
      Src: /src/nss/lib/sqlite/sqlite3.c:122735,1
    - Dst: setPragmaResultColumnNames
      Src: /src/nss/lib/sqlite/sqlite3.c:122745,1
    - Dst: returnSingleInt
      Src: /src/nss/lib/sqlite/sqlite3.c:122746,1
    - Dst: sqlite3GetBoolean
      Src: /src/nss/lib/sqlite/sqlite3.c:122761,1
    - Dst: sqlite3VdbeAddOp0
      Src: /src/nss/lib/sqlite/sqlite3.c:122772,1
    - Dst: setAllPagerFlags
      Src: /src/nss/lib/sqlite/sqlite3.c:122773,1
    - Dst: sqlite3LocateTable
      Src: /src/nss/lib/sqlite/sqlite3.c:122795,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:122797,1
    - Dst: sqlite3PrimaryKeyIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:122801,1
    - Dst: sqlite3CodeVerifySchema
      Src: /src/nss/lib/sqlite/sqlite3.c:122803,1
    - Dst: sqlite3ViewGetColumnNames
      Src: /src/nss/lib/sqlite/sqlite3.c:122804,1
    - Dst: IsHiddenColumn
      Src: /src/nss/lib/sqlite/sqlite3.c:122806,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:122818,1
    - Dst: sqlite3VdbeMultiLoad
      Src: /src/nss/lib/sqlite/sqlite3.c:122819,1
    - Dst: sqlite3ColumnType
      Src: /src/nss/lib/sqlite/sqlite3.c:122822,1
    - Dst: sqlite3CodeVerifySchema
      Src: /src/nss/lib/sqlite/sqlite3.c:122837,1
    - Dst: sqliteHashFirst
      Src: /src/nss/lib/sqlite/sqlite3.c:122838,1
    - Dst: sqliteHashNext
      Src: /src/nss/lib/sqlite/sqlite3.c:122838,1
    - Dst: sqliteHashData
      Src: /src/nss/lib/sqlite/sqlite3.c:122839,1
    - Dst: sqlite3VdbeMultiLoad
      Src: /src/nss/lib/sqlite/sqlite3.c:122840,1
    - Dst: sqlite3VdbeMultiLoad
      Src: /src/nss/lib/sqlite/sqlite3.c:122847,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:122852,1
    - Dst: sqlite3FindIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:122862,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:122864,1
    - Dst: sqlite3CodeVerifySchema
      Src: /src/nss/lib/sqlite/sqlite3.c:122877,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:122878,1
    - Dst: sqlite3VdbeMultiLoad
      Src: /src/nss/lib/sqlite/sqlite3.c:122881,1
    - Dst: sqlite3VdbeMultiLoad
      Src: /src/nss/lib/sqlite/sqlite3.c:122884,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:122889,1
    - Dst: sqlite3FindTable
      Src: /src/nss/lib/sqlite/sqlite3.c:122899,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:122901,1
    - Dst: sqlite3CodeVerifySchema
      Src: /src/nss/lib/sqlite/sqlite3.c:122903,1
    - Dst: sqlite3VdbeMultiLoad
      Src: /src/nss/lib/sqlite/sqlite3.c:122906,1
    - Dst: IsUniqueIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:122909,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:122922,1
    - Dst: sqlite3VdbeMultiLoad
      Src: /src/nss/lib/sqlite/sqlite3.c:122923,1
    - Dst: sqlite3BtreeGetFilename
      Src: /src/nss/lib/sqlite/sqlite3.c:122926,1
    - Dst: sqliteHashFirst
      Src: /src/nss/lib/sqlite/sqlite3.c:122935,1
    - Dst: sqliteHashNext
      Src: /src/nss/lib/sqlite/sqlite3.c:122935,1
    - Dst: sqliteHashData
      Src: /src/nss/lib/sqlite/sqlite3.c:122936,1
    - Dst: sqlite3VdbeMultiLoad
      Src: /src/nss/lib/sqlite/sqlite3.c:122937,1
    - Dst: sqlite3VdbeMultiLoad
      Src: /src/nss/lib/sqlite/sqlite3.c:122951,1
    - Dst: sqliteHashFirst
      Src: /src/nss/lib/sqlite/sqlite3.c:122954,1
    - Dst: sqliteHashNext
      Src: /src/nss/lib/sqlite/sqlite3.c:122954,1
    - Dst: sqliteHashData
      Src: /src/nss/lib/sqlite/sqlite3.c:122955,1
    - Dst: sqlite3VdbeMultiLoad
      Src: /src/nss/lib/sqlite/sqlite3.c:122956,1
    - Dst: sqliteHashFirst
      Src: /src/nss/lib/sqlite/sqlite3.c:122965,1
    - Dst: sqliteHashNext
      Src: /src/nss/lib/sqlite/sqlite3.c:122965,1
    - Dst: sqliteHashData
      Src: /src/nss/lib/sqlite/sqlite3.c:122966,1
    - Dst: sqlite3VdbeMultiLoad
      Src: /src/nss/lib/sqlite/sqlite3.c:122967,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:122975,1
    - Dst: sqlite3VdbeMultiLoad
      Src: /src/nss/lib/sqlite/sqlite3.c:122976,1
    - Dst: sqlite3FindTable
      Src: /src/nss/lib/sqlite/sqlite3.c:122988,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:122992,1
    - Dst: sqlite3CodeVerifySchema
      Src: /src/nss/lib/sqlite/sqlite3.c:122995,1
    - Dst: sqlite3VdbeMultiLoad
      Src: /src/nss/lib/sqlite/sqlite3.c:122999,1
    - Dst: actionName
      Src: /src/nss/lib/sqlite/sqlite3.c:123005,1
    - Dst: actionName
      Src: /src/nss/lib/sqlite/sqlite3.c:123006,1
    - Dst: sqliteHashFirst
      Src: /src/nss/lib/sqlite/sqlite3.c:123040,1
    - Dst: sqlite3LocateTable
      Src: /src/nss/lib/sqlite/sqlite3.c:123044,1
    - Dst: sqliteHashData
      Src: /src/nss/lib/sqlite/sqlite3.c:123047,1
    - Dst: sqliteHashNext
      Src: /src/nss/lib/sqlite/sqlite3.c:123048,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:123051,1
    - Dst: sqlite3CodeVerifySchema
      Src: /src/nss/lib/sqlite/sqlite3.c:123052,1
    - Dst: sqlite3TableLock
      Src: /src/nss/lib/sqlite/sqlite3.c:123053,1
    - Dst: sqlite3OpenTable
      Src: /src/nss/lib/sqlite/sqlite3.c:123055,1
    - Dst: sqlite3VdbeLoadString
      Src: /src/nss/lib/sqlite/sqlite3.c:123056,1
    - Dst: sqlite3FindTable
      Src: /src/nss/lib/sqlite/sqlite3.c:123058,1
    - Dst: sqlite3TableLock
      Src: /src/nss/lib/sqlite/sqlite3.c:123061,1
    - Dst: sqlite3FkLocateIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:123062,1
    - Dst: sqlite3OpenTable
      Src: /src/nss/lib/sqlite/sqlite3.c:123065,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:123067,1
    - Dst: sqlite3VdbeSetP4KeyInfo
      Src: /src/nss/lib/sqlite/sqlite3.c:123068,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:123075,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:123078,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:123078,1
    - Dst: sqlite3FindTable
      Src: /src/nss/lib/sqlite/sqlite3.c:123080,1
    - Dst: sqlite3FkLocateIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:123084,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:123085,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:123087,1
    - Dst: sqlite3ExprCodeGetColumnOfTable
      Src: /src/nss/lib/sqlite/sqlite3.c:123095,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:123096,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:123096,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:123102,1
    - Dst: sqlite3IndexAffinityStr
      Src: /src/nss/lib/sqlite/sqlite3.c:123103,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/nss/lib/sqlite/sqlite3.c:123104,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:123105,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:123107,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:123108,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:123108,1
    - Dst: sqlite3VdbeGoto
      Src: /src/nss/lib/sqlite/sqlite3.c:123109,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:123110,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:123114,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:123115,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:123117,1
    - Dst: sqlite3VdbeMultiLoad
      Src: /src/nss/lib/sqlite/sqlite3.c:123119,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:123120,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:123121,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:123122,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:123124,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:123124,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:123125,1
    - Dst: sqlite3RegisterLikeFunctions
      Src: /src/nss/lib/sqlite/sqlite3.c:123138,1
    - Dst: sqlite3GetBoolean
      Src: /src/nss/lib/sqlite/sqlite3.c:123138,1
    - Dst: sqlite3Tolower
      Src: /src/nss/lib/sqlite/sqlite3.c:123164,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:123175,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:123176,1
    - Dst: sqlite3GetInt32
      Src: /src/nss/lib/sqlite/sqlite3.c:123185,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:123190,1
    - Dst: sqlite3CodeVerifySchema
      Src: /src/nss/lib/sqlite/sqlite3.c:123203,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:123210,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/nss/lib/sqlite/sqlite3.c:123210,1
    - Dst: sqliteHashFirst
      Src: /src/nss/lib/sqlite/sqlite3.c:123212,1
    - Dst: sqliteHashNext
      Src: /src/nss/lib/sqlite/sqlite3.c:123212,1
    - Dst: sqliteHashData
      Src: /src/nss/lib/sqlite/sqlite3.c:123213,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:123216,1
    - Dst: sqlite3DbMallocRawNN
      Src: /src/nss/lib/sqlite/sqlite3.c:123220,1
    - Dst: sqliteHashFirst
      Src: /src/nss/lib/sqlite/sqlite3.c:123222,1
    - Dst: sqliteHashNext
      Src: /src/nss/lib/sqlite/sqlite3.c:123222,1
    - Dst: sqliteHashData
      Src: /src/nss/lib/sqlite/sqlite3.c:123223,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:123225,1
    - Dst: MAX
      Src: /src/nss/lib/sqlite/sqlite3.c:123233,1
    - Dst: sqlite3ClearTempRegCache
      Src: /src/nss/lib/sqlite/sqlite3.c:123234,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:123237,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:123238,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:123239,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:123239,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:123240,1
    - Dst: sqlite3MPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:123241,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:123243,1
    - Dst: integrityCheckResultRow
      Src: /src/nss/lib/sqlite/sqlite3.c:123244,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:123245,1
    - Dst: sqliteHashFirst
      Src: /src/nss/lib/sqlite/sqlite3.c:123249,1
    - Dst: sqliteHashNext
      Src: /src/nss/lib/sqlite/sqlite3.c:123249,1
    - Dst: sqliteHashData
      Src: /src/nss/lib/sqlite/sqlite3.c:123250,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:123258,1
    - Dst: sqlite3PrimaryKeyIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:123258,1
    - Dst: sqlite3OpenTableAndIndices
      Src: /src/nss/lib/sqlite/sqlite3.c:123259,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:123264,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:123266,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:123268,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:123269,1
    - Dst: sqlite3NoTempsInRange
      Src: /src/nss/lib/sqlite/sqlite3.c:123269,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:123270,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:123270,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:123271,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:123274,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:123275,1
    - Dst: sqlite3ExprCodeGetColumnOfTable
      Src: /src/nss/lib/sqlite/sqlite3.c:123283,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:123284,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:123285,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:123285,1
    - Dst: sqlite3MPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:123286,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:123288,1
    - Dst: integrityCheckResultRow
      Src: /src/nss/lib/sqlite/sqlite3.c:123289,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:123290,1
    - Dst: sqlite3ExprListDup
      Src: /src/nss/lib/sqlite/sqlite3.c:123294,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:123296,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:123297,1
    - Dst: sqlite3ExprIfFalse
      Src: /src/nss/lib/sqlite/sqlite3.c:123302,1
    - Dst: sqlite3ExprIfTrue
      Src: /src/nss/lib/sqlite/sqlite3.c:123304,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:123306,1
    - Dst: sqlite3MPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:123308,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:123310,1
    - Dst: integrityCheckResultRow
      Src: /src/nss/lib/sqlite/sqlite3.c:123311,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:123312,1
    - Dst: sqlite3ExprListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:123314,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:123320,1
    - Dst: sqlite3GenerateIndexKey
      Src: /src/nss/lib/sqlite/sqlite3.c:123322,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:123325,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/nss/lib/sqlite/sqlite3.c:123327,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:123328,1
    - Dst: sqlite3VdbeLoadString
      Src: /src/nss/lib/sqlite/sqlite3.c:123329,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:123330,1
    - Dst: sqlite3VdbeLoadString
      Src: /src/nss/lib/sqlite/sqlite3.c:123331,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:123332,1
    - Dst: sqlite3VdbeLoadString
      Src: /src/nss/lib/sqlite/sqlite3.c:123333,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:123334,1
    - Dst: integrityCheckResultRow
      Src: /src/nss/lib/sqlite/sqlite3.c:123335,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:123336,1
    - Dst: IsUniqueIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:123340,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:123341,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:123346,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:123348,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:123349,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:123351,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:123351,1
    - Dst: sqlite3VdbeGoto
      Src: /src/nss/lib/sqlite/sqlite3.c:123352,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:123353,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/nss/lib/sqlite/sqlite3.c:123354,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:123355,1
    - Dst: sqlite3VdbeLoadString
      Src: /src/nss/lib/sqlite/sqlite3.c:123356,1
    - Dst: sqlite3VdbeGoto
      Src: /src/nss/lib/sqlite/sqlite3.c:123357,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:123358,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:123360,1
    - Dst: sqlite3ResolvePartIdxLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:123361,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:123364,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:123364,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:123365,1
    - Dst: sqlite3VdbeLoadString
      Src: /src/nss/lib/sqlite/sqlite3.c:123368,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:123371,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:123372,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:123372,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:123373,1
    - Dst: sqlite3VdbeLoadString
      Src: /src/nss/lib/sqlite/sqlite3.c:123374,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:123375,1
    - Dst: integrityCheckResultRow
      Src: /src/nss/lib/sqlite/sqlite3.c:123376,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:123377,1
    - Dst: VDBE_OFFSET_LINENO
      Src: /src/nss/lib/sqlite/sqlite3.c:123384,1
    - Dst: sqlite3VdbeAddOpList
      Src: /src/nss/lib/sqlite/sqlite3.c:123396,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:123396,1
    - Dst: sqlite3ErrStr
      Src: /src/nss/lib/sqlite/sqlite3.c:123402,1
    - Dst: sqlite3VdbeChangeP3
      Src: /src/nss/lib/sqlite/sqlite3.c:123404,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:123404,1
    - Dst: sqlite3ReadSchema
      Src: /src/nss/lib/sqlite/sqlite3.c:123450,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:123451,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:123452,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:123453,1
    - Dst: returnSingleText
      Src: /src/nss/lib/sqlite/sqlite3.c:123454,1
    - Dst: ENC
      Src: /src/nss/lib/sqlite/sqlite3.c:123454,1
    - Dst: DbHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:123462,1
    - Dst: DbHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:123463,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:123466,1
    - Dst: SCHEMA_ENC
      Src: /src/nss/lib/sqlite/sqlite3.c:123467,1
    - Dst: ENC
      Src: /src/nss/lib/sqlite/sqlite3.c:123467,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:123473,1
    - Dst: sqlite3VdbeUsesBtree
      Src: /src/nss/lib/sqlite/sqlite3.c:123516,1
    - Dst: sqlite3VdbeVerifyNoMallocRequired
      Src: /src/nss/lib/sqlite/sqlite3.c:123524,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:123524,1
    - Dst: sqlite3VdbeAddOpList
      Src: /src/nss/lib/sqlite/sqlite3.c:123525,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:123525,1
    - Dst: ONLY_IF_REALLOC_STRESS
      Src: /src/nss/lib/sqlite/sqlite3.c:123526,1
    - Dst: sqlite3Atoi
      Src: /src/nss/lib/sqlite/sqlite3.c:123530,1
    - Dst: sqlite3VdbeVerifyNoMallocRequired
      Src: /src/nss/lib/sqlite/sqlite3.c:123539,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:123539,1
    - Dst: sqlite3VdbeAddOpList
      Src: /src/nss/lib/sqlite/sqlite3.c:123540,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:123540,1
    - Dst: ONLY_IF_REALLOC_STRESS
      Src: /src/nss/lib/sqlite/sqlite3.c:123541,1
    - Dst: sqlite3VdbeReusable
      Src: /src/nss/lib/sqlite/sqlite3.c:123545,1
    - Dst: sqlite3_compileoption_get
      Src: /src/nss/lib/sqlite/sqlite3.c:123562,1
    - Dst: sqlite3VdbeLoadString
      Src: /src/nss/lib/sqlite/sqlite3.c:123563,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:123564,1
    - Dst: sqlite3VdbeReusable
      Src: /src/nss/lib/sqlite/sqlite3.c:123566,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:123581,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:123583,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:123585,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:123590,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:123591,1
    - Dst: sqlite3_wal_autocheckpoint
      Src: /src/nss/lib/sqlite/sqlite3.c:123605,1
    - Dst: sqlite3Atoi
      Src: /src/nss/lib/sqlite/sqlite3.c:123605,1
    - Dst: returnSingleInt
      Src: /src/nss/lib/sqlite/sqlite3.c:123607,1
    - Dst: SQLITE_PTR_TO_INT
      Src: /src/nss/lib/sqlite/sqlite3.c:123609,1
    - Dst: sqlite3_db_release_memory
      Src: /src/nss/lib/sqlite/sqlite3.c:123622,1
    - Dst: sqlite3Atoi
      Src: /src/nss/lib/sqlite/sqlite3.c:123692,1
    - Dst: sqlite3CodeVerifySchema
      Src: /src/nss/lib/sqlite/sqlite3.c:123700,1
    - Dst: sqliteHashFirst
      Src: /src/nss/lib/sqlite/sqlite3.c:123702,1
    - Dst: sqliteHashNext
      Src: /src/nss/lib/sqlite/sqlite3.c:123702,1
    - Dst: sqliteHashData
      Src: /src/nss/lib/sqlite/sqlite3.c:123703,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:123711,1
    - Dst: sqlite3LogEst
      Src: /src/nss/lib/sqlite/sqlite3.c:123711,1
    - Dst: sqlite3OpenTable
      Src: /src/nss/lib/sqlite/sqlite3.c:123719,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:123720,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:123721,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:123722,1
    - Dst: sqlite3MPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:123724,1
    - Dst: sqlite3GetTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:123727,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:123728,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:123729,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:123731,1
    - Dst: sqlite3VdbeAddOp0
      Src: /src/nss/lib/sqlite/sqlite3.c:123735,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:123749,1
    - Dst: sqlite3_busy_timeout
      Src: /src/nss/lib/sqlite/sqlite3.c:123751,1
    - Dst: sqlite3Atoi
      Src: /src/nss/lib/sqlite/sqlite3.c:123751,1
    - Dst: returnSingleInt
      Src: /src/nss/lib/sqlite/sqlite3.c:123753,1
    - Dst: sqlite3DecOrHexToI64
      Src: /src/nss/lib/sqlite/sqlite3.c:123770,1
    - Dst: sqlite3_soft_heap_limit64
      Src: /src/nss/lib/sqlite/sqlite3.c:123771,1
    - Dst: returnSingleInt
      Src: /src/nss/lib/sqlite/sqlite3.c:123773,1
    - Dst: sqlite3_soft_heap_limit64
      Src: /src/nss/lib/sqlite/sqlite3.c:123773,1
    - Dst: sqlite3DecOrHexToI64
      Src: /src/nss/lib/sqlite/sqlite3.c:123787,1
    - Dst: sqlite3_limit
      Src: /src/nss/lib/sqlite/sqlite3.c:123790,1
    - Dst: returnSingleInt
      Src: /src/nss/lib/sqlite/sqlite3.c:123792,1
    - Dst: sqlite3_limit
      Src: /src/nss/lib/sqlite/sqlite3.c:123792,1
    - Dst: sqlite3BtreePager
      Src: /src/nss/lib/sqlite/sqlite3.c:123812,1
    - Dst: sqlite3_file_control
      Src: /src/nss/lib/sqlite/sqlite3.c:123814,1
    - Dst: sqlite3VdbeMultiLoad
      Src: /src/nss/lib/sqlite/sqlite3.c:123818,1
    - Dst: sqlite3Isxdigit
      Src: /src/nss/lib/sqlite/sqlite3.c:123842,1
    - Dst: sqlite3HexToInt
      Src: /src/nss/lib/sqlite/sqlite3.c:123843,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:123849,1
    - Dst: sqlite3_key_v2
      Src: /src/nss/lib/sqlite/sqlite3.c:123852,1
    - Dst: sqlite3_rekey_v2
      Src: /src/nss/lib/sqlite/sqlite3.c:123854,1
    - Dst: sqlite3VdbeSetNumCols
      Src: /src/nss/lib/sqlite/sqlite3.c:123857,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/nss/lib/sqlite/sqlite3.c:123858,1
    - Dst: returnSingleText
      Src: /src/nss/lib/sqlite/sqlite3.c:123859,1
    - Dst: sqlite3StrNICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:123868,1
    - Dst: sqlite3_activate_see
      Src: /src/nss/lib/sqlite/sqlite3.c:123869,1
    - Dst: sqlite3StrNICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:123873,1
    - Dst: sqlite3_activate_cerod
      Src: /src/nss/lib/sqlite/sqlite3.c:123874,1
    - Dst: sqlite3VdbeVerifyNoResultRow
      Src: /src/nss/lib/sqlite/sqlite3.c:123889,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:123893,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:123894,1
    CyclomaticComplexity: 325
    EdgeCount: 325
    ICount: 1002
    argCount: 5
    argNames:
    - pParse
    - pId1
    - pId2
    - pValue
    - minusFlag
    argTypes:
    - Parse*
    - Token*
    - Token*
    - Token*
    - int
    assertStmts:
    - condition: ( encnames[SQLITE_UTF16LE].enc==SQLITE_UTF16LE )
      pos:
        line_end: 123451
        line_start: 123451
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pParse->nErr>0 || pFK==0 )
      pos:
        line_end: 123074
        line_start: 123074
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pFK->nCol==1 )
      pos:
        line_end: 123109
        line_start: 123109
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( eAuto>=0 && eAuto<=2 )
      pos:
        line_end: 122405
        line_start: 122405
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (pDb==&db->aDb[0])
      pos:
        line_end: 122305
        line_start: 122305
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pBt!=0 )
      pos:
        line_end: 122202
        line_start: 122202
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( eMode==PAGER_LOCKINGMODE_NORMAL\n            || eMode==PAGER_LOCKINGMODE_EXCLUSIVE
        )"
      pos:
        line_end: 122317
        line_start: 122316
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3SchemaMutexHeld(db, i, 0) )
      pos:
        line_end: 123209
        line_start: 123209
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3SchemaMutexHeld(db, iDb, 0) )
      pos:
        line_end: 122550
        line_start: 122550
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iCol!=XN_ROWID && iCol<pTab->nCol )
      pos:
        line_end: 123345
        line_start: 123345
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pBt!=0 )
      pos:
        line_end: 122400
        line_start: 122400
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pParse->nMem<=pPragma->nPragCName )
      pos:
        line_end: 122877
        line_start: 122877
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( encnames[SQLITE_UTF16BE].enc==SQLITE_UTF16BE )
      pos:
        line_end: 123452
        line_start: 123452
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( x==0 )
      pos:
        line_end: 123084
        line_start: 123084
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iDb==0 || pId2->z )
      pos:
        line_end: 123175
        line_start: 123175
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCol->pDflt==0 || pCol->pDflt->op==TK_SPAN )
      pos:
        line_end: 122817
        line_start: 122817
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3SchemaMutexHeld(db, iDb, 0) )
      pos:
        line_end: 122513
        line_start: 122513
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3SchemaMutexHeld(db, iDb, 0) )
      pos:
        line_end: 122479
        line_start: 122479
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( db->aDb[i].zDbSName!=0 )
      pos:
        line_end: 122921
        line_start: 122921
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3NoTempsInRange(pParse,1,7+j) )
      pos:
        line_end: 123268
        line_start: 123268
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( encnames[SQLITE_UTF8].enc==SQLITE_UTF8 )
      pos:
        line_end: 123450
        line_start: 123450
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pParse->nMem>=8+j )
      pos:
        line_end: 123267
        line_start: 123267
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pId2 )
      pos:
        line_end: 122075
        line_start: 122075
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3LogEst(25)==46 )
      pos:
        line_end: 123710
        line_start: 123710
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3SchemaMutexHeld(db, iDb, 0) )
      pos:
        line_end: 122182
        line_start: 122182
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pBt!=0 )
      pos:
        line_end: 122229
        line_start: 122229
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPragma->ePragTyp==PragTyp_BUSY_TIMEOUT )
      pos:
        line_end: 123748
        line_start: 123748
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iDb>=0 )
      pos:
        line_end: 123174
        line_start: 123174
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 123895
      start: 122032
    functionDepth: 21
    functionLinenumber: 122032
    functionLinenumberEnd: 123895
    functionName: sqlite3Pragma
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3OsFileControlHint
    - setAllPagerFlags
    - getSafetyLevel
    - sqlite3ExprCodeGetColumnOfTable
    - sqlite3HexToInt
    - sqliteHashData
    - sqlite3_file_control
    - SQLITE_PTR_TO_INT
    - sqlite3ErrStr
    - setPragmaResultColumnNames
    - sqlite3StrICmp
    - sqlite3FindTable
    - sqlite3VdbeJumpHere
    - sqlite3AbsInt32
    - sqlite3_activate_see
    - sqlite3PagerLockingMode
    - sqlite3VdbeAddOp0
    - sqlite3RegisterLikeFunctions
    - sqlite3AuthCheck
    - returnSingleText
    - sqlite3VdbeMultiLoad
    - getAutoVacuum
    - sqlite3_activate_cerod
    - ArraySize
    - sqlite3IndexAffinityStr
    - sqlite3VdbeAddOp4
    - sqlite3Strlen30
    - sqlite3OpenTable
    - sqlite3_wal_autocheckpoint
    - sqlite3TwoPartName
    - sqlite3BtreeGetAutoVacuum
    - sqlite3BtreeSetAutoVacuum
    - sqlite3VdbeChangeP5
    - sqlite3ExprIfTrue
    - sqlite3BtreeSetPageSize
    - IsUniqueIndex
    - integrityCheckResultRow
    - sqlite3VdbeAddOp2
    - ONLY_IF_REALLOC_STRESS
    - sqlite3VdbeResolveLabel
    - sqlite3ViewGetColumnNames
    - sqlite3ExprIfFalse
    - sqlite3ColumnType
    - sqlite3VdbeUsesBtree
    - HasRowid
    - sqlite3VdbeGoto
    - sqlite3VdbeCurrentAddr
    - sqlite3VdbeAddOp4Int
    - sqlite3GetTempReg
    - changeTempStorage
    - sqlite3VdbeVerifyNoMallocRequired
    - sqlite3VdbeLoadString
    - sqlite3PagerFile
    - sqlite3PrimaryKeyIndex
    - sqlite3SchemaMutexHeld
    - sqlite3BtreeGetPageSize
    - MAX
    - VdbeCoverage
    - sqlite3VdbeRunOnlyOnce
    - sqlite3ExprListDelete
    - sqlite3VdbeAddOpList
    - sqlite3MPrintf
    - pragmaLocate
    - sqlite3OpenTableAndIndices
    - sqlite3GenerateIndexKey
    - sqlite3LogEst
    - sqlite3VdbeSetNumCols
    - sqlite3BtreeSetCacheSize
    - sqlite3LocateTable
    - sqlite3VdbeSetColName
    - sqlite3CodeVerifySchema
    - actionName
    - getLockingMode
    - sqlite3_busy_timeout
    - ALWAYS
    - sqlite3OsFileControl
    - sqlite3VdbeChangeP3
    - sqlite3VdbeSetP4KeyInfo
    - sqlite3VdbeReusable
    - sqliteHashNext
    - sqlite3DbMallocRawNN
    - sqlite3VdbeAddOp3
    - sqlite3BtreeGetFilename
    - sqliteHashFirst
    - sqlite3_db_release_memory
    - SCHEMA_ENC
    - assert
    - sqlite3OsAccess
    - ENC
    - DbHasProperty
    - VDBE_OFFSET_LINENO
    - sqlite3BtreeSetSpillSize
    - sqlite3NameFromToken
    - sqlite3OomFault
    - sqlite3BtreeSetMmapLimit
    - sqlite3VdbeAddOp1
    - sqlite3_rekey_v2
    - sqlite3ResolvePartIdxLabel
    - sqlite3DecOrHexToI64
    - sqlite3ErrorMsg
    - sqlite3Tolower
    - sqlite3OpenTempDatabase
    - sqlite3GetInt32
    - sqlite3VdbeMakeLabel
    - sqlite3VdbeVerifyNoResultRow
    - sqlite3ReadSchema
    - sqlite3ExprListDup
    - sqlite3FkLocateIndex
    - IsHiddenColumn
    - returnSingleInt
    - sqlite3Atoi
    - sqlite3GetVdbe
    - sqlite3_stricmp
    - sqlite3PagerJournalSizeLimit
    - sqlite3JournalModename
    - sqlite3BtreeSecureDelete
    - sqlite3_limit
    - invalidateTempStorage
    - sqlite3Isxdigit
    - sqlite3_compileoption_get
    - sqlite3SchemaToIndex
    - sqlite3BtreePager
    - sqlite3BeginWriteOperation
    - sqlite3_key_v2
    - sqlite3DbFree
    - sqlite3_soft_heap_limit64
    - sqlite3ClearTempRegCache
    - sqlite3_mprintf
    - sqlite3StrNICmp
    - sqlite3GetBoolean
    - sqlite3NoTempsInRange
    - sqlite3TableLock
    - sqlite3FindIndex
    - sqlite3_free
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Pragma(\n  Parse *pParse, \n  Token *pId1,        /*
      First part of [schema.]id field */\n  Token *pId2,        /* Second part of
      [schema.]id field, or NULL */\n  Token *pValue,      /* Token for <value>, or
      NULL */\n  int minusFlag       /* True if a '-' sign preceded <value> */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:123935,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:123936,1
    - Dst: sqlite3StrAccumInit
      Src: /src/nss/lib/sqlite/sqlite3.c:123937,1
    - Dst: sqlite3_str_appendall
      Src: /src/nss/lib/sqlite/sqlite3.c:123938,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:123940,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:123944,1
    - Dst: sqlite3_str_appendall
      Src: /src/nss/lib/sqlite/sqlite3.c:123949,1
    - Dst: sqlite3_str_appendall
      Src: /src/nss/lib/sqlite/sqlite3.c:123953,1
    - Dst: sqlite3_str_append
      Src: /src/nss/lib/sqlite/sqlite3.c:123956,1
    - Dst: sqlite3StrAccumFinish
      Src: /src/nss/lib/sqlite/sqlite3.c:123957,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:123958,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:123958,1
    - Dst: sqlite3_declare_vtab
      Src: /src/nss/lib/sqlite/sqlite3.c:123959,1
    - Dst: sqlite3_malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:123961,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:123965,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:123972,1
    - Dst: sqlite3_errmsg
      Src: /src/nss/lib/sqlite/sqlite3.c:123972,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 42
    argCount: 6
    argNames:
    - db
    - pAux
    - argc
    - argv
    - ppVtab
    - pzErr
    argTypes:
    - sqlite3*
    - void*
    - int
    - char**
    - sqlite3_vtab**
    - char**
    assertStmts:
    - condition: ( strlen(zBuf) < sizeof(zBuf)-1 )
      pos:
        line_end: 123957
        line_start: 123957
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 123977
      start: 123920
    functionDepth: 10
    functionLinenumber: 123920
    functionLinenumberEnd: 123977
    functionName: pragmaVtabConnect
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_str_append
    - sqlite3_malloc
    - sqlite3StrAccumInit
    - sqlite3StrAccumFinish
    - UNUSED_PARAMETER
    - assert
    - memset
    - sqlite3_mprintf
    - sqlite3_errmsg
    - sqlite3_str_appendf
    - sqlite3_str_appendall
    - sqlite3_declare_vtab
    - strlen
    linkageType: ''
    returnType: int
    signature: "int pragmaVtabConnect(\n  sqlite3 *db,\n  void *pAux,\n  int argc,
      const char *const*argv,\n  sqlite3_vtab **ppVtab,\n  char **pzErr\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:123984,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pVtab
    argTypes:
    - sqlite3_vtab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123986
      start: 123982
    functionDepth: 3
    functionLinenumber: 123982
    functionLinenumberEnd: 123986
    functionName: pragmaVtabDisconnect
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int pragmaVtabDisconnect(sqlite3_vtab *pVtab)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:124011,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 2
    argNames:
    - tab
    - pIdxInfo
    argTypes:
    - sqlite3_vtab*
    - sqlite3_index_info*
    assertStmts:
    - condition: ( j < 2 )
      pos:
        line_end: 124010
        line_start: 124010
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 124029
      start: 123995
    functionDepth: 0
    functionLinenumber: 123995
    functionLinenumberEnd: 124029
    functionName: pragmaVtabBestIndex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int pragmaVtabBestIndex(sqlite3_vtab *tab, sqlite3_index_info *pIdxInfo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:124034,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:124036,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - pVtab
    - ppCursor
    argTypes:
    - sqlite3_vtab*
    - sqlite3_vtab_cursor**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124040
      start: 124032
    functionDepth: 6
    functionLinenumber: 124032
    functionLinenumberEnd: 124040
    functionName: pragmaVtabOpen
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3_malloc
    linkageType: ''
    returnType: int
    signature: int pragmaVtabOpen(sqlite3_vtab *pVtab, sqlite3_vtab_cursor **ppCursor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:124045,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:124047,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:124048,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pCsr
    argTypes:
    - PragmaVtabCursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124051
      start: 124043
    functionDepth: 26
    functionLinenumber: 124043
    functionLinenumberEnd: 124051
    functionName: pragmaVtabCursorClear
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ArraySize
    - sqlite3_finalize
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void pragmaVtabCursorClear(PragmaVtabCursor *pCsr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pragmaVtabCursorClear
      Src: /src/nss/lib/sqlite/sqlite3.c:124056,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:124057,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cur
    argTypes:
    - sqlite3_vtab_cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124059
      start: 124054
    functionDepth: 27
    functionLinenumber: 124054
    functionLinenumberEnd: 124059
    functionName: pragmaVtabClose
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - pragmaVtabCursorClear
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int pragmaVtabClose(sqlite3_vtab_cursor *cur)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:124068,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:124069,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:124070,1
    - Dst: pragmaVtabCursorClear
      Src: /src/nss/lib/sqlite/sqlite3.c:124072,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - pVtabCursor
    argTypes:
    - sqlite3_vtab_cursor*
    assertStmts:
    - condition: ( pCsr->pPragma )
      pos:
        line_end: 124067
        line_start: 124067
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 124075
      start: 124062
    functionDepth: 27
    functionLinenumber: 124062
    functionLinenumberEnd: 124075
    functionName: pragmaVtabNext
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - pragmaVtabCursorClear
    - sqlite3_step
    - sqlite3_finalize
    linkageType: ''
    returnType: int
    signature: int pragmaVtabNext(sqlite3_vtab_cursor *pVtabCursor)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:124092,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:124093,1
    - Dst: pragmaVtabCursorClear
      Src: /src/nss/lib/sqlite/sqlite3.c:124094,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:124097,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:124098,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:124098,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:124099,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:124101,1
    - Dst: sqlite3StrAccumInit
      Src: /src/nss/lib/sqlite/sqlite3.c:124107,1
    - Dst: sqlite3_str_appendall
      Src: /src/nss/lib/sqlite/sqlite3.c:124108,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:124110,1
    - Dst: sqlite3_str_appendall
      Src: /src/nss/lib/sqlite/sqlite3.c:124112,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:124114,1
    - Dst: sqlite3StrAccumFinish
      Src: /src/nss/lib/sqlite/sqlite3.c:124116,1
    - Dst: sqlite3_prepare_v2
      Src: /src/nss/lib/sqlite/sqlite3.c:124118,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:124119,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:124121,1
    - Dst: sqlite3_errmsg
      Src: /src/nss/lib/sqlite/sqlite3.c:124121,1
    - Dst: pragmaVtabNext
      Src: /src/nss/lib/sqlite/sqlite3.c:124124,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 5
    argNames:
    - pVtabCursor
    - idxNum
    - idxStr
    - argc
    - argv
    argTypes:
    - sqlite3_vtab_cursor*
    - int
    - char*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( pCsr->azArg[j]==0 )
      pos:
        line_end: 124098
        line_start: 124098
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( j<ArraySize(pCsr->azArg) )
      pos:
        line_end: 124097
        line_start: 124097
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 124125
      start: 124080
    functionDepth: 28
    functionLinenumber: 124080
    functionLinenumberEnd: 124125
    functionName: pragmaVtabFilter
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - pragmaVtabNext
    - sqlite3_value_text
    - sqlite3StrAccumInit
    - ArraySize
    - UNUSED_PARAMETER
    - sqlite3StrAccumFinish
    - assert
    - sqlite3_mprintf
    - sqlite3_str_appendall
    - sqlite3_prepare_v2
    - sqlite3_errmsg
    - sqlite3_str_appendf
    - pragmaVtabCursorClear
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int pragmaVtabFilter(\n  sqlite3_vtab_cursor *pVtabCursor, \n  int
      idxNum, const char *idxStr,\n  int argc, sqlite3_value **argv\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pVtabCursor
    argTypes:
    - sqlite3_vtab_cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124133
      start: 124130
    functionDepth: 0
    functionLinenumber: 124130
    functionLinenumberEnd: 124133
    functionName: pragmaVtabEof
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pragmaVtabEof(sqlite3_vtab_cursor *pVtabCursor)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_result_value
      Src: /src/nss/lib/sqlite/sqlite3.c:124146,1
    - Dst: sqlite3_column_value
      Src: /src/nss/lib/sqlite/sqlite3.c:124146,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:124148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - pVtabCursor
    - ctx
    - i
    argTypes:
    - sqlite3_vtab_cursor*
    - sqlite3_context*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124151
      start: 124138
    functionDepth: 14
    functionLinenumber: 124138
    functionLinenumberEnd: 124151
    functionName: pragmaVtabColumn
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_text
    - sqlite3_result_value
    - sqlite3_column_value
    linkageType: ''
    returnType: int
    signature: "int pragmaVtabColumn(\n  sqlite3_vtab_cursor *pVtabCursor, \n  sqlite3_context
      *ctx, \n  int i\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pVtabCursor
    - p
    argTypes:
    - sqlite3_vtab_cursor*
    - sqlite_int64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124160
      start: 124156
    functionDepth: 0
    functionLinenumber: 124156
    functionLinenumberEnd: 124160
    functionName: pragmaVtabRowid
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pragmaVtabRowid(sqlite3_vtab_cursor *pVtabCursor, sqlite_int64
      *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:124197,1
    - Dst: sqlite3_strnicmp
      Src: /src/nss/lib/sqlite/sqlite3.c:124197,1
    - Dst: pragmaLocate
      Src: /src/nss/lib/sqlite/sqlite3.c:124198,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:124201,1
    - Dst: sqlite3HashFind
      Src: /src/nss/lib/sqlite/sqlite3.c:124201,1
    - Dst: sqlite3VtabCreateModule
      Src: /src/nss/lib/sqlite/sqlite3.c:124202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - db
    - zName
    argTypes:
    - sqlite3*
    - char*
    assertStmts:
    - condition: ( sqlite3_strnicmp(zName, "pragma_", 7)==0 )
      pos:
        line_end: 124196
        line_start: 124196
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3HashFind(&db->aModule, zName)==0 )
      pos:
        line_end: 124200
        line_start: 124200
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 124203
      start: 124195
    functionDepth: 3
    functionLinenumber: 124195
    functionLinenumberEnd: 124203
    functionName: sqlite3PragmaVtabRegister
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - pragmaLocate
    - assert
    - sqlite3HashFind
    - sqlite3VtabCreateModule
    - sqlite3_strnicmp
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3PragmaVtabRegister(sqlite3 *db, const char *zName)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbStrDup
      Src: /src/nss/lib/sqlite/sqlite3.c:124243,1
    - Dst: sqlite3MPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:124250,1
    - Dst: sqlite3MPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:124251,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - pData
    - zObj
    - zExtra
    argTypes:
    - InitData*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124255
      start: 124232
    functionDepth: 10
    functionLinenumber: 124232
    functionLinenumberEnd: 124255
    functionName: corruptSchema
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbStrDup
    - sqlite3MPrintf
    linkageType: ''
    returnType: void
    signature: "void corruptSchema(\n  InitData *pData,     /* Initialization context
      */\n  const char *zObj,    /* Object being parsed at the point of error */\n
      \ const char *zExtra   /* Error information */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - pIndex
    argTypes:
    - Index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124268
      start: 124262
    functionDepth: 0
    functionLinenumber: 124262
    functionLinenumberEnd: 124268
    functionName: sqlite3IndexHasDuplicateRootPage
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3IndexHasDuplicateRootPage(Index *pIndex)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:124287,1
    - Dst: UNUSED_PARAMETER2
      Src: /src/nss/lib/sqlite/sqlite3.c:124288,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:124289,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:124289,1
    - Dst: DbClearProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:124290,1
    - Dst: corruptSchema
      Src: /src/nss/lib/sqlite/sqlite3.c:124293,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:124297,1
    - Dst: corruptSchema
      Src: /src/nss/lib/sqlite/sqlite3.c:124300,1
    - Dst: sqlite3_strnicmp
      Src: /src/nss/lib/sqlite/sqlite3.c:124301,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:124312,1
    - Dst: sqlite3Atoi
      Src: /src/nss/lib/sqlite/sqlite3.c:124314,1
    - Dst: TESTONLY
      Src: /src/nss/lib/sqlite/sqlite3.c:124316,1
    - Dst: sqlite3_prepare
      Src: /src/nss/lib/sqlite/sqlite3.c:124316,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:124318,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:124323,1
    - Dst: sqlite3OomFault
      Src: /src/nss/lib/sqlite/sqlite3.c:124327,1
    - Dst: corruptSchema
      Src: /src/nss/lib/sqlite/sqlite3.c:124329,1
    - Dst: sqlite3_errmsg
      Src: /src/nss/lib/sqlite/sqlite3.c:124329,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:124333,1
    - Dst: corruptSchema
      Src: /src/nss/lib/sqlite/sqlite3.c:124335,1
    - Dst: sqlite3FindIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:124344,1
    - Dst: sqlite3GetInt32
      Src: /src/nss/lib/sqlite/sqlite3.c:124346,1
    - Dst: sqlite3IndexHasDuplicateRootPage
      Src: /src/nss/lib/sqlite/sqlite3.c:124348,1
    - Dst: corruptSchema
      Src: /src/nss/lib/sqlite/sqlite3.c:124350,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 50
    argCount: 4
    argNames:
    - pInit
    - argc
    - argv
    - NotUsed
    argTypes:
    - void*
    - int
    - char**
    - char**
    assertStmts:
    - condition: ( (rc&0xFF)==(rcp&0xFF) )
      pos:
        line_end: 124317
        line_start: 124317
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( argc==3 )
      pos:
        line_end: 124286
        line_start: 124286
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3_mutex_held(db->mutex) )
      pos:
        line_end: 124288
        line_start: 124288
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iDb>=0 && iDb<db->nDb )
      pos:
        line_end: 124296
        line_start: 124296
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iDb==1 )
      pos:
        line_end: 124322
        line_start: 124322
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( db->init.busy )
      pos:
        line_end: 124311
        line_start: 124311
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 124354
      start: 124282
    functionDepth: 26
    functionLinenumber: 124282
    functionLinenumberEnd: 124354
    functionName: sqlite3InitCallback
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER2
    - TESTONLY
    - sqlite3_prepare
    - sqlite3IndexHasDuplicateRootPage
    - assert
    - sqlite3OomFault
    - DbClearProperty
    - sqlite3_errmsg
    - sqlite3FindIndex
    - sqlite3_mutex_held
    - sqlite3GetInt32
    - sqlite3Atoi
    - sqlite3_finalize
    - sqlite3_strnicmp
    - corruptSchema
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3InitCallback(void *pInit, int argc, char **argv,
      char **NotUsed)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:124600,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:124600,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:124601,1
    - Dst: sqlite3BtreeHoldsMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:124601,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:124602,1
    - Dst: ENC
      Src: /src/nss/lib/sqlite/sqlite3.c:124603,1
    - Dst: SCHEMA_ENC
      Src: /src/nss/lib/sqlite/sqlite3.c:124603,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:124604,1
    - Dst: DbHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:124606,1
    - Dst: sqlite3InitOne
      Src: /src/nss/lib/sqlite/sqlite3.c:124607,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:124612,1
    - Dst: sqlite3BtreeHoldsMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:124612,1
    - Dst: DbHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:124613,1
    - Dst: sqlite3InitOne
      Src: /src/nss/lib/sqlite/sqlite3.c:124614,1
    - Dst: sqlite3CommitInternalChanges
      Src: /src/nss/lib/sqlite/sqlite3.c:124619,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - db
    - pzErrMsg
    argTypes:
    - sqlite3*
    - char**
    assertStmts:
    - condition: ( sqlite3_mutex_held(db->mutex) )
      pos:
        line_end: 124599
        line_start: 124599
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3BtreeHoldsMutex(db->aDb[0].pBt) )
      pos:
        line_end: 124600
        line_start: 124600
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( db->init.busy==0 )
      pos:
        line_end: 124601
        line_start: 124601
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( db->nDb>0 )
      pos:
        line_end: 124603
        line_start: 124603
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( i==1 || sqlite3BtreeHoldsMutex(db->aDb[i].pBt) )
      pos:
        line_end: 124611
        line_start: 124611
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 124622
      start: 124596
    functionDepth: 1
    functionLinenumber: 124596
    functionLinenumberEnd: 124622
    functionName: sqlite3Init
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3CommitInternalChanges
    - SCHEMA_ENC
    - sqlite3BtreeHoldsMutex
    - assert
    - DbHasProperty
    - ENC
    - sqlite3_mutex_held
    - sqlite3InitOne
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Init(sqlite3 *db, char **pzErrMsg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:124631,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:124631,1
    - Dst: sqlite3Init
      Src: /src/nss/lib/sqlite/sqlite3.c:124633,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - pParse
    argTypes:
    - Parse*
    assertStmts:
    - condition: ( sqlite3_mutex_held(db->mutex) )
      pos:
        line_end: 124630
        line_start: 124630
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 124642
      start: 124628
    functionDepth: 2
    functionLinenumber: 124628
    functionLinenumberEnd: 124642
    functionName: sqlite3ReadSchema
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 8
    functionsReached:
    - assert
    - sqlite3_mutex_held
    - sqlite3Init
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ReadSchema(Parse *pParse)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:124656,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:124657,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:124657,1
    - Dst: sqlite3BtreeIsInReadTrans
      Src: /src/nss/lib/sqlite/sqlite3.c:124666,1
    - Dst: sqlite3BtreeBeginTrans
      Src: /src/nss/lib/sqlite/sqlite3.c:124667,1
    - Dst: sqlite3OomFault
      Src: /src/nss/lib/sqlite/sqlite3.c:124669,1
    - Dst: sqlite3BtreeGetMeta
      Src: /src/nss/lib/sqlite/sqlite3.c:124678,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:124679,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/nss/lib/sqlite/sqlite3.c:124679,1
    - Dst: sqlite3ResetOneSchema
      Src: /src/nss/lib/sqlite/sqlite3.c:124681,1
    - Dst: sqlite3BtreeCommit
      Src: /src/nss/lib/sqlite/sqlite3.c:124687,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 1
    argNames:
    - pParse
    argTypes:
    - Parse*
    assertStmts:
    - condition: ( pParse->checkSchema )
      pos:
        line_end: 124655
        line_start: 124655
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3_mutex_held(db->mutex) )
      pos:
        line_end: 124656
        line_start: 124656
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3SchemaMutexHeld(db, iDb, 0) )
      pos:
        line_end: 124678
        line_start: 124678
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 124690
      start: 124650
    functionDepth: 22
    functionLinenumber: 124650
    functionLinenumberEnd: 124690
    functionName: schemaIsValid
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ResetOneSchema
    - sqlite3SchemaMutexHeld
    - sqlite3BtreeGetMeta
    - assert
    - sqlite3OomFault
    - sqlite3BtreeBeginTrans
    - sqlite3_mutex_held
    - sqlite3BtreeIsInReadTrans
    - sqlite3BtreeCommit
    linkageType: ''
    returnType: void
    signature: void schemaIsValid(Parse *pParse)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:124712,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:124712,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:124715,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:124720,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - db
    - pSchema
    argTypes:
    - sqlite3*
    - Schema*
    assertStmts:
    - condition: ( sqlite3_mutex_held(db->mutex) )
      pos:
        line_end: 124711
        line_start: 124711
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( i>=0 && i<db->nDb )
      pos:
        line_end: 124719
        line_start: 124719
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( i<db->nDb )
      pos:
        line_end: 124714
        line_start: 124714
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 124723
      start: 124699
    functionDepth: 1
    functionLinenumber: 124699
    functionLinenumberEnd: 124723
    functionName: sqlite3SchemaToIndex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 28
    functionsReached:
    - assert
    - sqlite3_mutex_held
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3SchemaToIndex(sqlite3 *db, Schema *pSchema)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:124730,1
    - Dst: sqlite3ExprListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:124731,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:124733,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - pParse
    argTypes:
    - Parse*
    assertStmts:
    - condition: ( db->lookaside.bDisable >= pParse->disableLookaside )
      pos:
        line_end: 124732
        line_start: 124732
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 124737
      start: 124728
    functionDepth: 10
    functionLinenumber: 124728
    functionLinenumberEnd: 124737
    functionName: sqlite3ParserReset
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 3
    functionsReached:
    - assert
    - sqlite3DbFree
    - sqlite3ExprListDelete
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ParserReset(Parse *pParse)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:124756,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:124757,1
    - Dst: PARSE_TAIL
      Src: /src/nss/lib/sqlite/sqlite3.c:124757,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:124759,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:124761,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:124761,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:124798,1
    - Dst: sqlite3BtreeHoldsMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:124798,1
    - Dst: sqlite3BtreeSchemaLocked
      Src: /src/nss/lib/sqlite/sqlite3.c:124799,1
    - Dst: sqlite3ErrorWithMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:124802,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:124803,1
    - Dst: sqlite3VtabUnlockList
      Src: /src/nss/lib/sqlite/sqlite3.c:124809,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:124815,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:124816,1
    - Dst: sqlite3ErrorWithMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:124818,1
    - Dst: sqlite3ApiExit
      Src: /src/nss/lib/sqlite/sqlite3.c:124819,1
    - Dst: sqlite3DbStrNDup
      Src: /src/nss/lib/sqlite/sqlite3.c:124822,1
    - Dst: sqlite3RunParser
      Src: /src/nss/lib/sqlite/sqlite3.c:124824,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:124826,1
    - Dst: sqlite3RunParser
      Src: /src/nss/lib/sqlite/sqlite3.c:124831,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:124833,1
    - Dst: schemaIsValid
      Src: /src/nss/lib/sqlite/sqlite3.c:124837,1
    - Dst: sqlite3VdbeSetNumCols
      Src: /src/nss/lib/sqlite/sqlite3.c:124855,1
    - Dst: sqlite3VdbeSetNumCols
      Src: /src/nss/lib/sqlite/sqlite3.c:124859,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/nss/lib/sqlite/sqlite3.c:124864,1
    - Dst: sqlite3VdbeSetSql
      Src: /src/nss/lib/sqlite/sqlite3.c:124871,1
    - Dst: sqlite3VdbeFinalize
      Src: /src/nss/lib/sqlite/sqlite3.c:124874,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:124875,1
    - Dst: sqlite3ErrorWithMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:124881,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:124882,1
    - Dst: sqlite3Error
      Src: /src/nss/lib/sqlite/sqlite3.c:124884,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:124891,1
    - Dst: sqlite3ParserReset
      Src: /src/nss/lib/sqlite/sqlite3.c:124896,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 95
    argCount: 7
    argNames:
    - db
    - zSql
    - nBytes
    - prepFlags
    - pReprepare
    - ppStmt
    - pzTail
    argTypes:
    - sqlite3*
    - char*
    - int
    - u32
    - Vdbe*
    - sqlite3_stmt**
    - char**
    assertStmts:
    - condition: ( ppStmt && *ppStmt==0 )
      pos:
        line_end: 124758
        line_start: 124758
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( 0==sParse.nQueryLoop )
      pos:
        line_end: 124832
        line_start: 124832
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3BtreeHoldsMutex(pBt) )
      pos:
        line_end: 124797
        line_start: 124797
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (!(*ppStmt))
      pos:
        line_end: 124874
        line_start: 124874
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3_mutex_held(db->mutex) )
      pos:
        line_end: 124760
        line_start: 124760
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 124898
      start: 124742
    functionDepth: 25
    functionLinenumber: 124742
    functionLinenumberEnd: 124898
    functionName: sqlite3Prepare
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeHoldsMutex
    - sqlite3ParserReset
    - testcase
    - sqlite3RunParser
    - memset
    - assert
    - sqlite3Error
    - sqlite3BtreeSchemaLocked
    - sqlite3_mutex_held
    - sqlite3DbStrNDup
    - PARSE_TAIL
    - sqlite3VtabUnlockList
    - schemaIsValid
    - sqlite3DbFree
    - sqlite3VdbeFinalize
    - sqlite3VdbeSetSql
    - sqlite3ErrorWithMsg
    - sqlite3ApiExit
    - sqlite3VdbeSetNumCols
    - sqlite3VdbeSetColName
    linkageType: ''
    returnType: int
    signature: "int sqlite3Prepare(\n  sqlite3 *db,              /* Database handle.
      */\n  const char *zSql,         /* UTF-8 encoded SQL statement. */\n  int nBytes,
      \              /* Length of zSql in bytes. */\n  u32 prepFlags,            /*
      Zero or more SQLITE_PREPARE_* flags */\n  Vdbe *pReprepare,         /* VM being
      reprepared */\n  sqlite3_stmt **ppStmt,    /* OUT: A pointer to the prepared
      statement */\n  const char **pzTail       /* OUT: End of parsed string */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/nss/lib/sqlite/sqlite3.c:124915,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:124918,1
    - Dst: sqlite3BtreeEnterAll
      Src: /src/nss/lib/sqlite/sqlite3.c:124919,1
    - Dst: sqlite3Prepare
      Src: /src/nss/lib/sqlite/sqlite3.c:124924,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:124925,1
    - Dst: sqlite3ResetOneSchema
      Src: /src/nss/lib/sqlite/sqlite3.c:124927,1
    - Dst: sqlite3BtreeLeaveAll
      Src: /src/nss/lib/sqlite/sqlite3.c:124928,1
    - Dst: sqlite3ApiExit
      Src: /src/nss/lib/sqlite/sqlite3.c:124929,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:124930,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:124931,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 7
    argNames:
    - db
    - zSql
    - nBytes
    - prepFlags
    - pOld
    - ppStmt
    - pzTail
    argTypes:
    - sqlite3*
    - char*
    - int
    - u32
    - Vdbe*
    - sqlite3_stmt**
    - char**
    assertStmts:
    - condition: ( rc==SQLITE_OK || *ppStmt==0 )
      pos:
        line_end: 124924
        line_start: 124924
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (rc&db->errMask)==rc )
      pos:
        line_end: 124929
        line_start: 124929
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 124933
      start: 124899
    functionDepth: 26
    functionLinenumber: 124899
    functionLinenumberEnd: 124933
    functionName: sqlite3LockAndPrepare
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3BtreeEnterAll
    - sqlite3ResetOneSchema
    - sqlite3Prepare
    - sqlite3SafetyCheckOk
    - sqlite3ApiExit
    - sqlite3_mutex_leave
    - sqlite3BtreeLeaveAll
    - assert
    linkageType: ''
    returnType: int
    signature: "int sqlite3LockAndPrepare(\n  sqlite3 *db,              /* Database
      handle. */\n  const char *zSql,         /* UTF-8 encoded SQL statement. */\n
      \ int nBytes,               /* Length of zSql in bytes. */\n  u32 prepFlags,
      \           /* Zero or more SQLITE_PREPARE_* flags */\n  Vdbe *pOld,               /*
      VM being reprepared */\n  sqlite3_stmt **ppStmt,    /* OUT: A pointer to the
      prepared statement */\n  const char **pzTail       /* OUT: End of parsed string
      */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:124951,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:124951,1
    - Dst: sqlite3VdbeDb
      Src: /src/nss/lib/sqlite/sqlite3.c:124951,1
    - Dst: sqlite3_sql
      Src: /src/nss/lib/sqlite/sqlite3.c:124952,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:124953,1
    - Dst: sqlite3VdbeDb
      Src: /src/nss/lib/sqlite/sqlite3.c:124954,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:124955,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:124955,1
    - Dst: sqlite3VdbePrepareFlags
      Src: /src/nss/lib/sqlite/sqlite3.c:124956,1
    - Dst: sqlite3LockAndPrepare
      Src: /src/nss/lib/sqlite/sqlite3.c:124957,1
    - Dst: sqlite3OomFault
      Src: /src/nss/lib/sqlite/sqlite3.c:124960,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:124962,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:124965,1
    - Dst: sqlite3VdbeSwap
      Src: /src/nss/lib/sqlite/sqlite3.c:124967,1
    - Dst: sqlite3TransferBindings
      Src: /src/nss/lib/sqlite/sqlite3.c:124968,1
    - Dst: sqlite3VdbeResetStepResult
      Src: /src/nss/lib/sqlite/sqlite3.c:124969,1
    - Dst: sqlite3VdbeFinalize
      Src: /src/nss/lib/sqlite/sqlite3.c:124970,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 1
    argNames:
    - p
    argTypes:
    - Vdbe*
    assertStmts:
    - condition: ( sqlite3_mutex_held(sqlite3VdbeDb(p)->mutex) )
      pos:
        line_end: 124950
        line_start: 124950
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( zSql!=0 )
      pos:
        line_end: 124952
        line_start: 124952
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3_mutex_held(db->mutex) )
      pos:
        line_end: 124954
        line_start: 124954
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pNew!=0 )
      pos:
        line_end: 124964
        line_start: 124964
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pNew==0 )
      pos:
        line_end: 124961
        line_start: 124961
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 124972
      start: 124944
    functionDepth: 27
    functionLinenumber: 124944
    functionLinenumberEnd: 124972
    functionName: sqlite3Reprepare
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3VdbeSwap
    - sqlite3_sql
    - sqlite3TransferBindings
    - sqlite3VdbeDb
    - sqlite3VdbeFinalize
    - assert
    - sqlite3OomFault
    - sqlite3LockAndPrepare
    - sqlite3VdbeResetStepResult
    - sqlite3_mutex_held
    - sqlite3VdbePrepareFlags
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Reprepare(Vdbe *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3LockAndPrepare
      Src: /src/nss/lib/sqlite/sqlite3.c:124991,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:124992,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 5
    argNames:
    - db
    - zSql
    - nBytes
    - ppStmt
    - pzTail
    argTypes:
    - sqlite3*
    - char*
    - int
    - sqlite3_stmt**
    - char**
    assertStmts:
    - condition: ( rc==SQLITE_OK || ppStmt==0 || *ppStmt==0 )
      pos:
        line_end: 124991
        line_start: 124991
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 124994
      start: 124983
    functionDepth: 27
    functionLinenumber: 124983
    functionLinenumberEnd: 124994
    functionName: sqlite3_prepare
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - assert
    - sqlite3LockAndPrepare
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_prepare(\n  sqlite3 *db,              /* Database
      handle. */\n  const char *zSql,         /* UTF-8 encoded SQL statement. */\n
      \ int nBytes,               /* Length of zSql in bytes. */\n  sqlite3_stmt **ppStmt,
      \   /* OUT: A pointer to the prepared statement */\n  const char **pzTail       /*
      OUT: End of parsed string */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3LockAndPrepare
      Src: /src/nss/lib/sqlite/sqlite3.c:125008,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:125010,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 5
    argNames:
    - db
    - zSql
    - nBytes
    - ppStmt
    - pzTail
    argTypes:
    - sqlite3*
    - char*
    - int
    - sqlite3_stmt**
    - char**
    assertStmts:
    - condition: ( rc==SQLITE_OK || ppStmt==0 || *ppStmt==0 )
      pos:
        line_end: 125009
        line_start: 125009
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 125012
      start: 124995
    functionDepth: 27
    functionLinenumber: 124995
    functionLinenumberEnd: 125012
    functionName: sqlite3_prepare_v2
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 16
    functionsReached:
    - assert
    - sqlite3LockAndPrepare
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_prepare_v2(\n  sqlite3 *db,              /* Database
      handle. */\n  const char *zSql,         /* UTF-8 encoded SQL statement. */\n
      \ int nBytes,               /* Length of zSql in bytes. */\n  sqlite3_stmt **ppStmt,
      \   /* OUT: A pointer to the prepared statement */\n  const char **pzTail       /*
      OUT: End of parsed string */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3LockAndPrepare
      Src: /src/nss/lib/sqlite/sqlite3.c:125029,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:125032,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 6
    argNames:
    - db
    - zSql
    - nBytes
    - prepFlags
    - ppStmt
    - pzTail
    argTypes:
    - sqlite3*
    - char*
    - int
    - unsigned int
    - sqlite3_stmt**
    - char**
    assertStmts:
    - condition: ( rc==SQLITE_OK || ppStmt==0 || *ppStmt==0 )
      pos:
        line_end: 125031
        line_start: 125031
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 125034
      start: 125013
    functionDepth: 27
    functionLinenumber: 125013
    functionLinenumberEnd: 125034
    functionName: sqlite3_prepare_v3
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3LockAndPrepare
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_prepare_v3(\n  sqlite3 *db,              /* Database
      handle. */\n  const char *zSql,         /* UTF-8 encoded SQL statement. */\n
      \ int nBytes,               /* Length of zSql in bytes. */\n  unsigned int prepFlags,
      \  /* Zero or more SQLITE_PREPARE_* flags */\n  sqlite3_stmt **ppStmt,    /*
      OUT: A pointer to the prepared statement */\n  const char **pzTail       /*
      OUT: End of parsed string */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/nss/lib/sqlite/sqlite3.c:125061,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:125070,1
    - Dst: sqlite3Utf16to8
      Src: /src/nss/lib/sqlite/sqlite3.c:125071,1
    - Dst: sqlite3LockAndPrepare
      Src: /src/nss/lib/sqlite/sqlite3.c:125073,1
    - Dst: sqlite3Utf8CharLen
      Src: /src/nss/lib/sqlite/sqlite3.c:125082,1
    - Dst: sqlite3Utf16ByteLen
      Src: /src/nss/lib/sqlite/sqlite3.c:125083,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:125085,1
    - Dst: sqlite3ApiExit
      Src: /src/nss/lib/sqlite/sqlite3.c:125086,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:125087,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 6
    argNames:
    - db
    - zSql
    - nBytes
    - prepFlags
    - ppStmt
    - pzTail
    argTypes:
    - sqlite3*
    - void*
    - int
    - u32
    - sqlite3_stmt**
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125089
      start: 125041
    functionDepth: 27
    functionLinenumber: 125041
    functionLinenumberEnd: 125089
    functionName: sqlite3Prepare16
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3SafetyCheckOk
    - sqlite3DbFree
    - sqlite3Utf16ByteLen
    - sqlite3ApiExit
    - sqlite3Utf16to8
    - sqlite3_mutex_leave
    - sqlite3LockAndPrepare
    - sqlite3Utf8CharLen
    linkageType: ''
    returnType: int
    signature: "int sqlite3Prepare16(\n  sqlite3 *db,              /* Database handle.
      */ \n  const void *zSql,         /* UTF-16 encoded SQL statement. */\n  int
      nBytes,               /* Length of zSql in bytes. */\n  u32 prepFlags,            /*
      Zero or more SQLITE_PREPARE_* flags */\n  sqlite3_stmt **ppStmt,    /* OUT:
      A pointer to the prepared statement */\n  const void **pzTail       /* OUT:
      End of parsed string */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Prepare16
      Src: /src/nss/lib/sqlite/sqlite3.c:125107,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:125108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 5
    argNames:
    - db
    - zSql
    - nBytes
    - ppStmt
    - pzTail
    argTypes:
    - sqlite3*
    - void*
    - int
    - sqlite3_stmt**
    - void**
    assertStmts:
    - condition: ( rc==SQLITE_OK || ppStmt==0 || *ppStmt==0 )
      pos:
        line_end: 125107
        line_start: 125107
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 125110
      start: 125099
    functionDepth: 28
    functionLinenumber: 125099
    functionLinenumberEnd: 125110
    functionName: sqlite3_prepare16
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3Prepare16
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_prepare16(\n  sqlite3 *db,              /* Database
      handle. */ \n  const void *zSql,         /* UTF-16 encoded SQL statement. */\n
      \ int nBytes,               /* Length of zSql in bytes. */\n  sqlite3_stmt **ppStmt,
      \   /* OUT: A pointer to the prepared statement */\n  const void **pzTail       /*
      OUT: End of parsed string */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Prepare16
      Src: /src/nss/lib/sqlite/sqlite3.c:125119,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:125120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 5
    argNames:
    - db
    - zSql
    - nBytes
    - ppStmt
    - pzTail
    argTypes:
    - sqlite3*
    - void*
    - int
    - sqlite3_stmt**
    - void**
    assertStmts:
    - condition: ( rc==SQLITE_OK || ppStmt==0 || *ppStmt==0 )
      pos:
        line_end: 125119
        line_start: 125119
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 125122
      start: 125111
    functionDepth: 28
    functionLinenumber: 125111
    functionLinenumberEnd: 125122
    functionName: sqlite3_prepare16_v2
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3Prepare16
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_prepare16_v2(\n  sqlite3 *db,              /* Database
      handle. */ \n  const void *zSql,         /* UTF-16 encoded SQL statement. */\n
      \ int nBytes,               /* Length of zSql in bytes. */\n  sqlite3_stmt **ppStmt,
      \   /* OUT: A pointer to the prepared statement */\n  const void **pzTail       /*
      OUT: End of parsed string */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Prepare16
      Src: /src/nss/lib/sqlite/sqlite3.c:125132,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:125135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 6
    argNames:
    - db
    - zSql
    - nBytes
    - prepFlags
    - ppStmt
    - pzTail
    argTypes:
    - sqlite3*
    - void*
    - int
    - unsigned int
    - sqlite3_stmt**
    - void**
    assertStmts:
    - condition: ( rc==SQLITE_OK || ppStmt==0 || *ppStmt==0 )
      pos:
        line_end: 125134
        line_start: 125134
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 125137
      start: 125123
    functionDepth: 28
    functionLinenumber: 125123
    functionLinenumberEnd: 125137
    functionName: sqlite3_prepare16_v3
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3Prepare16
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_prepare16_v3(\n  sqlite3 *db,              /* Database
      handle. */ \n  const void *zSql,         /* UTF-16 encoded SQL statement. */\n
      \ int nBytes,               /* Length of zSql in bytes. */\n  unsigned int prepFlags,
      \  /* Zero or more SQLITE_PREPARE_* flags */\n  sqlite3_stmt **ppStmt,    /*
      OUT: A pointer to the prepared statement */\n  const void **pzTail       /*
      OUT: End of parsed string */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - K
    - ','
    - P
    - ','
    - S
    - ','
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125168
      start: 125164
    functionDepth: 0
    functionLinenumber: 125164
    functionLinenumberEnd: 125168
    functionName: SELECTTRACE
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SELECTTRACE(K,P,S,X)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:125234,1
    - Dst: sqlite3SrcListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:125235,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:125236,1
    - Dst: sqlite3ExprListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:125237,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:125238,1
    - Dst: sqlite3ExprListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:125239,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:125240,1
    - Dst: OK_IF_ALWAYS_TRUE
      Src: /src/nss/lib/sqlite/sqlite3.c:125242,1
    - Dst: sqlite3WindowListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:125243,1
    - Dst: OK_IF_ALWAYS_TRUE
      Src: /src/nss/lib/sqlite/sqlite3.c:125246,1
    - Dst: sqlite3WithDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:125246,1
    - Dst: sqlite3DbFreeNN
      Src: /src/nss/lib/sqlite/sqlite3.c:125247,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - db
    - p
    - bFree
    argTypes:
    - sqlite3*
    - Select*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125251
      start: 125231
    functionDepth: 11
    functionLinenumber: 125231
    functionLinenumberEnd: 125251
    functionName: clearSelect
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3WithDelete
    - sqlite3WindowListDelete
    - sqlite3ExprDelete
    - sqlite3SrcListDelete
    - sqlite3DbFreeNN
    - OK_IF_ALWAYS_TRUE
    - sqlite3ExprListDelete
    linkageType: ''
    returnType: void
    signature: void clearSelect(sqlite3 *db, Select *p, int bFree)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - pDest
    - eDest
    - iParm
    argTypes:
    - SelectDest*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125262
      start: 125256
    functionDepth: 0
    functionLinenumber: 125256
    functionLinenumberEnd: 125262
    functionName: sqlite3SelectDestInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3SelectDestInit(SelectDest *pDest, int eDest,
      int iParm)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbMallocRawNN
      Src: /src/nss/lib/sqlite/sqlite3.c:125282,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:125284,1
    - Dst: sqlite3ExprListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:125288,1
    - Dst: sqlite3Expr
      Src: /src/nss/lib/sqlite/sqlite3.c:125289,1
    - Dst: sqlite3DbMallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:125300,1
    - Dst: clearSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:125315,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:125318,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:125320,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 39
    argCount: 9
    argNames:
    - pParse
    - pEList
    - pSrc
    - pWhere
    - pGroupBy
    - pHaving
    - pOrderBy
    - selFlags
    - pLimit
    argTypes:
    - Parse*
    - ExprList*
    - SrcList*
    - Expr*
    - ExprList*
    - Expr*
    - ExprList*
    - u32
    - Expr*
    assertStmts:
    - condition: ( pParse->db->mallocFailed )
      pos:
        line_end: 125283
        line_start: 125283
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pNew->pSrc!=0 || pParse->nErr>0 )
      pos:
        line_end: 125317
        line_start: 125317
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pNew!=&standin )
      pos:
        line_end: 125319
        line_start: 125319
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 125322
      start: 125269
    functionDepth: 12
    functionLinenumber: 125269
    functionLinenumberEnd: 125322
    functionName: sqlite3SelectNew
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 3
    functionsReached:
    - sqlite3DbMallocRawNN
    - assert
    - sqlite3Expr
    - clearSelect
    - sqlite3ExprListAppend
    - sqlite3DbMallocZero
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3SelectNew(\n  Parse *pParse,        /* Parsing
      context */\n  ExprList *pEList,     /* which columns to include in the result
      */\n  SrcList *pSrc,        /* the FROM clause -- which tables to scan */\n
      \ Expr *pWhere,         /* the WHERE clause */\n  ExprList *pGroupBy,   /* the
      GROUP BY clause */\n  Expr *pHaving,        /* the HAVING clause */\n  ExprList
      *pOrderBy,   /* the ORDER BY clause */\n  u32 selFlags,         /* Flag parameters,
      such as SF_Distinct */\n  Expr *pLimit          /* LIMIT value.  NULL means
      not used */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OK_IF_ALWAYS_TRUE
      Src: /src/nss/lib/sqlite/sqlite3.c:125329,1
    - Dst: clearSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:125329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - Select*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125330
      start: 125328
    functionDepth: 12
    functionLinenumber: 125328
    functionLinenumberEnd: 125330
    functionName: sqlite3SelectDelete
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 13
    functionsReached:
    - clearSelect
    - OK_IF_ALWAYS_TRUE
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3SelectDelete(sqlite3 *db, Select *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - Select*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125338
      start: 125335
    functionDepth: 0
    functionLinenumber: 125335
    functionLinenumberEnd: 125338
    functionName: findRightmost
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Select
    signature: Select *findRightmost(Select *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:125382,1
    - Dst: sqlite3StrNICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:125384,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:125389,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:125390,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:125400,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:125402,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:125407,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 31
    argCount: 4
    argNames:
    - pParse
    - pA
    - pB
    - pC
    argTypes:
    - Parse*
    - Token*
    - Token*
    - Token*
    assertStmts:
    - condition: ( pB!=0 )
      pos:
        line_end: 125399
        line_start: 125399
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 125412
      start: 125357
    functionDepth: 10
    functionLinenumber: 125357
    functionLinenumberEnd: 125412
    functionName: sqlite3JoinType
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ArraySize
    - assert
    - sqlite3StrNICmp
    - sqlite3ErrorMsg
    - testcase
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3JoinType(Parse *pParse, Token *pA, Token *pB,
      Token *pC)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:125421,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - pTab
    - zCol
    argTypes:
    - Table*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125424
      start: 125418
    functionDepth: 1
    functionLinenumber: 125418
    functionLinenumberEnd: 125424
    functionName: columnIndex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3StrICmp
    linkageType: ''
    returnType: int
    signature: int columnIndex(Table *pTab, const char *zCol)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:125445,1
    - Dst: columnIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:125447,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 5
    argNames:
    - pSrc
    - N
    - zCol
    - piTab
    - piCol
    argTypes:
    - SrcList*
    - int
    - char*
    - int*
    - int*
    assertStmts:
    - condition: ( (piTab==0)==(piCol==0) )
      pos:
        line_end: 125444
        line_start: 125444
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 125457
      start: 125435
    functionDepth: 2
    functionLinenumber: 125435
    functionLinenumberEnd: 125457
    functionName: tableAndColumnIndex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - columnIndex
    linkageType: ''
    returnType: int
    signature: "int tableAndColumnIndex(\n  SrcList *pSrc,       /* Array of tables
      to search */\n  int N,               /* Number of tables in pSrc->a[] to search
      */\n  const char *zCol,    /* Name of the column we are looking for */\n  int
      *piTab,          /* Write index of pSrc->a[] here */\n  int *piCol           /*
      Write index of pSrc->a[*piTab].pTab->aCol[] here */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:125485,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:125486,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:125487,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:125488,1
    - Dst: sqlite3CreateColumnExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:125490,1
    - Dst: sqlite3CreateColumnExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:125491,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:125493,1
    - Dst: ExprSetProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:125495,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:125496,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:125496,1
    - Dst: ExprSetVVAProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:125497,1
    - Dst: sqlite3ExprAnd
      Src: /src/nss/lib/sqlite/sqlite3.c:125500,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 8
    argNames:
    - pParse
    - pSrc
    - iLeft
    - iColLeft
    - iRight
    - iColRight
    - isOuterJoin
    - ppWhere
    argTypes:
    - Parse*
    - SrcList*
    - int
    - int
    - int
    - int
    - int
    - Expr**
    assertStmts:
    - condition: ( iLeft<iRight )
      pos:
        line_end: 125484
        line_start: 125484
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pSrc->nSrc>iRight )
      pos:
        line_end: 125485
        line_start: 125485
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pSrc->a[iRight].pTab )
      pos:
        line_end: 125487
        line_start: 125487
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pSrc->a[iLeft].pTab )
      pos:
        line_end: 125486
        line_start: 125486
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !ExprHasProperty(pEq, EP_TokenOnly|EP_Reduced) )
      pos:
        line_end: 125495
        line_start: 125495
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 125501
      start: 125470
    functionDepth: 13
    functionLinenumber: 125470
    functionLinenumberEnd: 125501
    functionName: addWhereTerm
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ExprSetProperty
    - ExprSetVVAProperty
    - sqlite3PExpr
    - assert
    - sqlite3ExprAnd
    - ExprHasProperty
    - sqlite3CreateColumnExpr
    linkageType: ''
    returnType: void
    signature: "void addWhereTerm(\n  Parse *pParse,                  /* Parsing context
      */\n  SrcList *pSrc,                  /* List of tables in FROM clause */\n
      \ int iLeft,                      /* Index of first table to join in pSrc */\n
      \ int iColLeft,                   /* Index of column in first table */\n  int
      iRight,                     /* Index of second table in pSrc */\n  int iColRight,
      \                 /* Index of column in second table */\n  int isOuterJoin,
      \               /* True if this is an OUTER join */\n  Expr **ppWhere                  /*
      IN/OUT: The WHERE clause to add to */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ExprSetProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:125531,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:125532,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:125532,1
    - Dst: ExprSetVVAProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:125533,1
    - Dst: setJoinExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:125538,1
    - Dst: setJoinExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:125541,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - p
    - iTable
    argTypes:
    - Expr*
    - int
    assertStmts:
    - condition: ( !ExprHasProperty(p, EP_TokenOnly|EP_Reduced) )
      pos:
        line_end: 125531
        line_start: 125531
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 125544
      start: 125529
    functionDepth: 1
    functionLinenumber: 125529
    functionLinenumberEnd: 125544
    functionName: setJoinExpr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - ExprSetProperty
    - ExprSetVVAProperty
    - setJoinExpr
    - assert
    - ExprHasProperty
    linkageType: ''
    returnType: void
    signature: void setJoinExpr(Expr *p, int iTable)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:125554,1
    - Dst: ExprClearProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:125556,1
    - Dst: unsetJoinExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:125561,1
    - Dst: unsetJoinExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:125564,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 2
    argNames:
    - p
    - iTable
    argTypes:
    - Expr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125567
      start: 125552
    functionDepth: 1
    functionLinenumber: 125552
    functionLinenumberEnd: 125567
    functionName: unsetJoinExpr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - ExprHasProperty
    - unsetJoinExpr
    - ExprClearProperty
    linkageType: ''
    returnType: void
    signature: void unsetJoinExpr(Expr *p, int iTable)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: NEVER
      Src: /src/nss/lib/sqlite/sqlite3.c:125596,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:125604,1
    - Dst: tableAndColumnIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:125614,1
    - Dst: addWhereTerm
      Src: /src/nss/lib/sqlite/sqlite3.c:125615,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:125624,1
    - Dst: setJoinExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:125633,1
    - Dst: sqlite3ExprAnd
      Src: /src/nss/lib/sqlite/sqlite3.c:125634,1
    - Dst: columnIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:125654,1
    - Dst: tableAndColumnIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:125656,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:125658,1
    - Dst: addWhereTerm
      Src: /src/nss/lib/sqlite/sqlite3.c:125662,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 43
    argCount: 2
    argNames:
    - pParse
    - p
    argTypes:
    - Parse*
    - Select*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125668
      start: 125583
    functionDepth: 14
    functionLinenumber: 125583
    functionLinenumberEnd: 125668
    functionName: sqliteProcessJoin
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - NEVER
    - tableAndColumnIndex
    - setJoinExpr
    - columnIndex
    - sqlite3ErrorMsg
    - sqlite3ExprAnd
    - addWhereTerm
    linkageType: ''
    returnType: int
    signature: int sqliteProcessJoin(Parse *pParse, Select *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprCodeExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:125693,1
    - Dst: sqlite3ExprCodeExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:125697,1
    - Dst: sqlite3ExprListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:125698,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pParse
    - pSelect
    - pInfo
    argTypes:
    - Parse*
    - Select*
    - RowLoadInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125701
      start: 125688
    functionDepth: 17
    functionLinenumber: 125688
    functionLinenumberEnd: 125701
    functionName: innerLoopLoadRow
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ExprCodeExprList
    - sqlite3ExprListDelete
    linkageType: ''
    returnType: void
    signature: "void innerLoopLoadRow(\n  Parse *pParse,             /* Statement
      under construction */\n  Select *pSelect,           /* The query being coded
      */\n  RowLoadInfo *pInfo         /* Info needed to complete the row load */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: innerLoopLoadRow
      Src: /src/nss/lib/sqlite/sqlite3.c:125720,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:125722,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - pParse
    - pSort
    - pSelect
    - regBase
    - nBase
    argTypes:
    - Parse*
    - SortCtx*
    - Select*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125724
      start: 125709
    functionDepth: 18
    functionLinenumber: 125709
    functionLinenumberEnd: 125724
    functionName: makeSorterRecord
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - innerLoopLoadRow
    - sqlite3VdbeAddOp3
    linkageType: ''
    returnType: int
    signature: "int makeSorterRecord(\n  Parse *pParse,\n  SortCtx *pSort,\n  Select
      *pSelect,\n  int regBase,\n  int nBase\n)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:125750,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:125765,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:125768,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:125774,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:125776,1
    - Dst: sqlite3ExprCodeExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:125777,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:125780,1
    - Dst: sqlite3ExprCodeMove
      Src: /src/nss/lib/sqlite/sqlite3.c:125783,1
    - Dst: makeSorterRecord
      Src: /src/nss/lib/sqlite/sqlite3.c:125793,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:125798,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:125800,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:125802,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:125803,1
    - Dst: sqlite3VdbeGetOp
      Src: /src/nss/lib/sqlite/sqlite3.c:125804,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:125808,1
    - Dst: sqlite3VdbeChangeP4
      Src: /src/nss/lib/sqlite/sqlite3.c:125809,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:125810,1
    - Dst: sqlite3KeyInfoFromExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:125811,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:125813,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:125814,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:125814,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:125815,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:125817,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:125818,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:125820,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:125821,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:125823,1
    - Dst: sqlite3ExprCodeMove
      Src: /src/nss/lib/sqlite/sqlite3.c:125824,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:125825,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:125844,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:125844,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:125845,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:125846,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/nss/lib/sqlite/sqlite3.c:125847,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:125849,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:125850,1
    - Dst: makeSorterRecord
      Src: /src/nss/lib/sqlite/sqlite3.c:125853,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/nss/lib/sqlite/sqlite3.c:125860,1
    - Dst: sqlite3VdbeChangeP2
      Src: /src/nss/lib/sqlite/sqlite3.c:125863,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:125864,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 76
    argCount: 7
    argNames:
    - pParse
    - pSort
    - pSelect
    - regData
    - regOrigData
    - nData
    - nPrefixReg
    argTypes:
    - Parse*
    - SortCtx*
    - Select*
    - int
    - int
    - int
    - int
    assertStmts:
    - condition: ( pSelect->iOffset==0 || pSelect->iLimit!=0 )
      pos:
        line_end: 125773
        line_start: 125773
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( bSeq==0 || bSeq==1 )
      pos:
        line_end: 125749
        line_start: 125749
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nData==1 || regData==regOrigData || regOrigData==0 )
      pos:
        line_end: 125764
        line_start: 125764
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nPrefixReg==nExpr+bSeq )
      pos:
        line_end: 125767
        line_start: 125767
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 125866
      start: 125730
    functionDepth: 19
    functionLinenumber: 125730
    functionLinenumberEnd: 125866
    functionName: pushOntoSorter
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - makeSorterRecord
    - sqlite3KeyInfoFromExprList
    - sqlite3ExprCodeMove
    - sqlite3VdbeAddOp2
    - sqlite3VdbeCurrentAddr
    - sqlite3VdbeAddOp4Int
    - sqlite3VdbeAddOp3
    - sqlite3VdbeChangeP2
    - assert
    - memset
    - sqlite3VdbeJumpHere
    - sqlite3ExprCodeExprList
    - sqlite3VdbeAddOp1
    - VdbeCoverage
    - sqlite3VdbeChangeP4
    - sqlite3VdbeMakeLabel
    - testcase
    - sqlite3VdbeGetOp
    linkageType: ''
    returnType: void
    signature: "void pushOntoSorter(\n  Parse *pParse,         /* Parser context */\n
      \ SortCtx *pSort,        /* Information about the ORDER BY clause */\n  Select
      *pSelect,       /* The whole SELECT statement */\n  int regData,           /*
      First register holding data to be sorted */\n  int regOrigData,       /* First
      register holding data before packing */\n  int nData,             /* Number
      of elements in the regData data array */\n  int nPrefixReg         /* No. of
      reg prior to regData available for use */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:125877,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:125877,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:125878,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - v
    - iOffset
    - iContinue
    argTypes:
    - Vdbe*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125880
      start: 125871
    functionDepth: 11
    functionLinenumber: 125871
    functionLinenumberEnd: 125880
    functionName: codeOffset
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - VdbeComment
    - VdbeCoverage
    - sqlite3VdbeAddOp3
    linkageType: ''
    returnType: void
    signature: "void codeOffset(\n  Vdbe *v,          /* Generate code into this VM
      */\n  int iOffset,      /* Register holding the offset counter */\n  int iContinue
      \    /* Jump here to skip the current record */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:125902,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/nss/lib/sqlite/sqlite3.c:125903,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:125903,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:125904,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/nss/lib/sqlite/sqlite3.c:125905,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:125906,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:125907,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 5
    argNames:
    - pParse
    - iTab
    - addrRepeat
    - N
    - iMem
    argTypes:
    - Parse*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125908
      start: 125891
    functionDepth: 12
    functionLinenumber: 125891
    functionLinenumberEnd: 125908
    functionName: codeDistinct
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3GetTempReg
    - sqlite3VdbeAddOp4Int
    - sqlite3VdbeAddOp3
    - sqlite3ReleaseTempReg
    - sqlite3VdbeChangeP5
    - VdbeCoverage
    linkageType: ''
    returnType: void
    signature: "void codeDistinct(\n  Parse *pParse,     /* Parsing and code generating
      context */\n  int iTab,          /* A sorting index used to test for distinctness
      */\n  int addrRepeat,    /* Jump to here if not distinct */\n  int N,             /*
      Number of elements */\n  int iMem           /* First element */\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:125949,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:125957,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:125963,1
    - Dst: sqlite3PrimaryKeyIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:125964,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:125968,1
    - Dst: sqlite3ExprListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:125973,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 36
    argCount: 4
    argNames:
    - pParse
    - pSort
    - pEList
    - ppExtra
    argTypes:
    - Parse*
    - SortCtx*
    - ExprList*
    - ExprList**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125988
      start: 125935
    functionDepth: 12
    functionLinenumber: 125935
    functionLinenumberEnd: 125988
    functionName: selectExprDefer
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - HasRowid
    - ArraySize
    - sqlite3PrimaryKeyIndex
    - sqlite3PExpr
    - sqlite3ExprListAppend
    - IsVirtual
    linkageType: ''
    returnType: void
    signature: "void selectExprDefer(\n  Parse *pParse,                  /* Leave
      any error here */\n  SortCtx *pSort,                 /* Sorter context */\n
      \ ExprList *pEList,               /* Expressions destined for sorter */\n  ExprList
      **ppExtra              /* Expressions to append to sorter record */\n)"
  - BBCount: 46
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:126027,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:126028,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:126032,1
    - Dst: codeOffset
      Src: /src/nss/lib/sqlite/sqlite3.c:126033,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:126060,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:126061,1
    - Dst: selectExprDefer
      Src: /src/nss/lib/sqlite/sqlite3.c:126093,1
    - Dst: sqlite3VdbeGetOp
      Src: /src/nss/lib/sqlite/sqlite3.c:126100,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:126121,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:126122,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:126123,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:126124,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:126125,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:126126,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:126140,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:126141,1
    - Dst: innerLoopLoadRow
      Src: /src/nss/lib/sqlite/sqlite3.c:126145,1
    - Dst: sqlite3VdbeChangeToNoop
      Src: /src/nss/lib/sqlite/sqlite3.c:126170,1
    - Dst: sqlite3VdbeGetOp
      Src: /src/nss/lib/sqlite/sqlite3.c:126171,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:126176,1
    - Dst: sqlite3ExprCollSeq
      Src: /src/nss/lib/sqlite/sqlite3.c:126178,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:126180,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:126181,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:126183,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:126184,1
    - Dst: sqlite3VdbeChangeP4
      Src: /src/nss/lib/sqlite/sqlite3.c:126186,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:126187,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:126189,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:126189,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:126190,1
    - Dst: sqlite3VdbeChangeToNoop
      Src: /src/nss/lib/sqlite/sqlite3.c:126195,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:126200,1
    - Dst: codeDistinct
      Src: /src/nss/lib/sqlite/sqlite3.c:126201,1
    - Dst: codeOffset
      Src: /src/nss/lib/sqlite/sqlite3.c:126207,1
    - Dst: sqlite3GetTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:126218,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:126219,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/nss/lib/sqlite/sqlite3.c:126220,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:126221,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:126230,1
    - Dst: sqlite3GetTempRange
      Src: /src/nss/lib/sqlite/sqlite3.c:126241,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:126242,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:126243,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:126244,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:126245,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:126246,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:126254,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/nss/lib/sqlite/sqlite3.c:126255,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:126256,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/nss/lib/sqlite/sqlite3.c:126257,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:126258,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:126262,1
    - Dst: pushOntoSorter
      Src: /src/nss/lib/sqlite/sqlite3.c:126263,1
    - Dst: sqlite3GetTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:126265,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:126266,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:126267,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:126268,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:126269,1
    - Dst: sqlite3ReleaseTempRange
      Src: /src/nss/lib/sqlite/sqlite3.c:126271,1
    - Dst: pushOntoSorter
      Src: /src/nss/lib/sqlite/sqlite3.c:126286,1
    - Dst: sqlite3GetTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:126289,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:126290,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:126290,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:126291,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/nss/lib/sqlite/sqlite3.c:126293,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:126294,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:126302,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:126313,1
    - Dst: pushOntoSorter
      Src: /src/nss/lib/sqlite/sqlite3.c:126314,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:126317,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:126318,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:126327,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:126328,1
    - Dst: pushOntoSorter
      Src: /src/nss/lib/sqlite/sqlite3.c:126330,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:126333,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:126335,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:126354,1
    - Dst: sqlite3GetTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:126356,1
    - Dst: sqlite3GetTempRange
      Src: /src/nss/lib/sqlite/sqlite3.c:126357,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/nss/lib/sqlite/sqlite3.c:126363,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:126365,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:126367,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:126369,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:126370,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:126373,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:126377,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:126378,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/nss/lib/sqlite/sqlite3.c:126379,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:126380,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:126381,1
    - Dst: sqlite3ReleaseTempRange
      Src: /src/nss/lib/sqlite/sqlite3.c:126382,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:126396,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:126407,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:126407,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 236
    argCount: 8
    argNames:
    - pParse
    - p
    - srcTab
    - pSort
    - pDistinct
    - pDest
    - iContinue
    - iBreak
    argTypes:
    - Parse*
    - Select*
    - int
    - SortCtx*
    - DistinctCtx*
    - SelectDest*
    - int
    - int
    assertStmts:
    - condition: ( regResult==regOrig )
      pos:
        line_end: 126261
        line_start: 126261
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nResultCol<=pDest->nSdst )
      pos:
        line_end: 126312
        line_start: 126312
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( hasDistinct==0 )
      pos:
        line_end: 126140
        line_start: 126140
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3VdbeCurrentAddr(v)==iJump || pParse->db->mallocFailed )
      pos:
        line_end: 126188
        line_start: 126188
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pSO )
      pos:
        line_end: 126353
        line_start: 126353
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3Strlen30(pDest->zAffSdst)==nResultCol )
      pos:
        line_end: 126289
        line_start: 126289
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( eDest==SRT_Discard )
      pos:
        line_end: 126395
        line_start: 126395
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( regResult==iParm )
      pos:
        line_end: 126317
        line_start: 126317
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( v )
      pos:
        line_end: 126026
        line_start: 126026
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( eDest==SRT_Set || eDest==SRT_Mem \n           || eDest==SRT_Coroutine
        || eDest==SRT_Output )"
      pos:
        line_end: 126126
        line_start: 126125
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pSort==0 )
      pos:
        line_end: 126257
        line_start: 126257
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pSort!=0 )
      pos:
        line_end: 126139
        line_start: 126139
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pDistinct->eTnctType==WHERE_DISTINCT_UNORDERED )
      pos:
        line_end: 126199
        line_start: 126199
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->pEList!=0 )
      pos:
        line_end: 126027
        line_start: 126027
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nResultCol==pDest->nSdst )
      pos:
        line_end: 126316
        line_start: 126316
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iContinue!=0 )
      pos:
        line_end: 126031
        line_start: 126031
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 126409
      start: 126000
    functionDepth: 20
    functionLinenumber: 126000
    functionLinenumberEnd: 126409
    functionName: selectInnerLoop
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - codeOffset
    - sqlite3VdbeChangeToNoop
    - sqlite3VdbeAddOp2
    - sqlite3VdbeAddOp3
    - pushOntoSorter
    - testcase
    - VdbeComment
    - codeDistinct
    - sqlite3VdbeCurrentAddr
    - sqlite3GetTempReg
    - sqlite3VdbeAddOp4Int
    - sqlite3ExprCollSeq
    - assert
    - sqlite3VdbeJumpHere
    - sqlite3GetTempRange
    - sqlite3VdbeGetOp
    - sqlite3ReleaseTempRange
    - sqlite3VdbeAddOp4
    - sqlite3Strlen30
    - sqlite3VdbeAddOp1
    - VdbeCoverage
    - sqlite3VdbeChangeP4
    - selectExprDefer
    - sqlite3ReleaseTempReg
    - sqlite3VdbeChangeP5
    - innerLoopLoadRow
    linkageType: ''
    returnType: void
    signature: "void selectInnerLoop(\n  Parse *pParse,          /* The parser context
      */\n  Select *p,              /* The complete select statement being coded */\n
      \ int srcTab,             /* Pull data from this table if non-negative */\n
      \ SortCtx *pSort,         /* If not NULL, info on how to process ORDER BY */\n
      \ DistinctCtx *pDistinct, /* If not NULL, info on how to process DISTINCT */\n
      \ SelectDest *pDest,      /* How to dispose of the results */\n  int iContinue,
      \         /* Jump here to continue with next row */\n  int iBreak              /*
      Jump here to break out of the inner loop */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbMallocRawNN
      Src: /src/nss/lib/sqlite/sqlite3.c:126417,1
    - Dst: ENC
      Src: /src/nss/lib/sqlite/sqlite3.c:126422,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:126425,1
    - Dst: sqlite3OomFault
      Src: /src/nss/lib/sqlite/sqlite3.c:126427,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - db
    - N
    - X
    argTypes:
    - sqlite3*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126430
      start: 126415
    functionDepth: 7
    functionLinenumber: 126415
    functionLinenumberEnd: 126430
    functionName: sqlite3KeyInfoAlloc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3DbMallocRawNN
    - sqlite3OomFault
    - ENC
    - memset
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3KeyInfoAlloc(sqlite3 *db, int N, int X)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:126437,1
    - Dst: sqlite3DbFreeNN
      Src: /src/nss/lib/sqlite/sqlite3.c:126439,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - KeyInfo*
    assertStmts:
    - condition: ( p->nRef>0 )
      pos:
        line_end: 126436
        line_start: 126436
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 126441
      start: 126435
    functionDepth: 5
    functionLinenumber: 126435
    functionLinenumberEnd: 126441
    functionName: sqlite3KeyInfoUnref
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 4
    functionsReached:
    - assert
    - sqlite3DbFreeNN
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3KeyInfoUnref(KeyInfo *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:126448,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - KeyInfo*
    assertStmts:
    - condition: ( p->nRef>0 )
      pos:
        line_end: 126447
        line_start: 126447
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 126452
      start: 126446
    functionDepth: 0
    functionLinenumber: 126446
    functionLinenumberEnd: 126452
    functionName: sqlite3KeyInfoRef
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3KeyInfoRef(KeyInfo *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - KeyInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126461
      start: 126461
    functionDepth: 0
    functionLinenumber: 126461
    functionLinenumberEnd: 126461
    functionName: sqlite3KeyInfoIsWriteable
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3KeyInfoIsWriteable(KeyInfo *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3KeyInfoAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:126491,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:126493,1
    - Dst: sqlite3KeyInfoIsWriteable
      Src: /src/nss/lib/sqlite/sqlite3.c:126493,1
    - Dst: sqlite3ExprNNCollSeq
      Src: /src/nss/lib/sqlite/sqlite3.c:126495,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - pParse
    - pList
    - iStart
    - nExtra
    argTypes:
    - Parse*
    - ExprList*
    - int
    - int
    assertStmts:
    - condition: ( sqlite3KeyInfoIsWriteable(pInfo) )
      pos:
        line_end: 126492
        line_start: 126492
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 126500
      start: 126478
    functionDepth: 8
    functionLinenumber: 126478
    functionLinenumberEnd: 126500
    functionName: sqlite3KeyInfoFromExprList
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3KeyInfoAlloc
    - assert
    - sqlite3ExprNNCollSeq
    - sqlite3KeyInfoIsWriteable
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3KeyInfoFromExprList(\n  Parse *pParse,       /*
      Parsing context */\n  ExprList *pList,     /* Form the KeyInfo object from this
      ExprList */\n  int iStart,          /* Begin with this column of pList */\n
      \ int nExtra           /* Add this many extra columns to the end */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126514
      start: 126505
    functionDepth: 0
    functionLinenumber: 126505
    functionLinenumberEnd: 126514
    functionName: selectOpName
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *selectOpName(int id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExplainQueryPlan
      Src: /src/nss/lib/sqlite/sqlite3.c:126528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pParse
    - zUsage
    argTypes:
    - Parse*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126529
      start: 126527
    functionDepth: 1
    functionLinenumber: 126527
    functionLinenumberEnd: 126529
    functionName: explainTempTable
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ExplainQueryPlan
    linkageType: ''
    returnType: void
    signature: void explainTempTable(Parse *pParse, const char *zUsage)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126539
      start: 126538
    functionDepth: 0
    functionLinenumber: 126538
    functionLinenumberEnd: 126539
    functionName: explainSetInteger
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: explainSetInteger(a, b)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:126562,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:126579,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:126581,1
    - Dst: sqlite3VdbeGoto
      Src: /src/nss/lib/sqlite/sqlite3.c:126582,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:126583,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:126590,1
    - Dst: sqlite3OpenTable
      Src: /src/nss/lib/sqlite/sqlite3.c:126591,1
    - Dst: MAX
      Src: /src/nss/lib/sqlite/sqlite3.c:126592,1
    - Dst: sqlite3GetTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:126601,1
    - Dst: sqlite3GetTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:126603,1
    - Dst: sqlite3GetTempRange
      Src: /src/nss/lib/sqlite/sqlite3.c:126606,1
    - Dst: sqlite3VdbeAddOp0
      Src: /src/nss/lib/sqlite/sqlite3.c:126614,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:126614,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:126616,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:126618,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:126619,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:126620,1
    - Dst: codeOffset
      Src: /src/nss/lib/sqlite/sqlite3.c:126621,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:126622,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:126625,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:126625,1
    - Dst: codeOffset
      Src: /src/nss/lib/sqlite/sqlite3.c:126626,1
    - Dst: sqlite3GetTempRange
      Src: /src/nss/lib/sqlite/sqlite3.c:126639,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:126646,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:126647,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:126648,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:126649,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:126650,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:126654,1
    - Dst: sqlite3PrimaryKeyIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:126654,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:126656,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:126658,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/nss/lib/sqlite/sqlite3.c:126659,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/nss/lib/sqlite/sqlite3.c:126660,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:126661,1
    - Dst: sqlite3ReleaseTempRange
      Src: /src/nss/lib/sqlite/sqlite3.c:126664,1
    - Dst: sqlite3ExprCode
      Src: /src/nss/lib/sqlite/sqlite3.c:126670,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:126680,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:126681,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:126687,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:126688,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:126689,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:126690,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:126695,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:126695,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:126696,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/nss/lib/sqlite/sqlite3.c:126698,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:126707,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:126708,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:126709,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:126711,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:126713,1
    - Dst: sqlite3ReleaseTempRange
      Src: /src/nss/lib/sqlite/sqlite3.c:126720,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:126722,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:126724,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:126728,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:126730,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:126730,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:126732,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:126732,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:126734,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:126735,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 133
    argCount: 5
    argNames:
    - pParse
    - p
    - pSort
    - nColumn
    - pDest
    argTypes:
    - Parse*
    - Select*
    - SortCtx*
    - int
    - SelectDest*
    assertStmts:
    - condition: ( nColumn==sqlite3Strlen30(pDest->zAffSdst) )
      pos:
        line_end: 126694
        line_start: 126694
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( addrBreak<0 )
      pos:
        line_end: 126578
        line_start: 126578
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3PrimaryKeyIndex(pTab)->nKeyCol==nKey )
      pos:
        line_end: 126653
        line_start: 126653
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( eDest==SRT_Output || eDest==SRT_Coroutine )
      pos:
        line_end: 126706
        line_start: 126706
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 126736
      start: 126553
    functionDepth: 17
    functionLinenumber: 126553
    functionLinenumberEnd: 126736
    functionName: generateSortTail
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - codeOffset
    - sqlite3VdbeAddOp2
    - sqlite3ExprCode
    - sqlite3VdbeResolveLabel
    - sqlite3VdbeAddOp3
    - VdbeComment
    - testcase
    - HasRowid
    - sqlite3VdbeGoto
    - sqlite3VdbeCurrentAddr
    - sqlite3GetTempReg
    - sqlite3VdbeAddOp4Int
    - assert
    - sqlite3VdbeJumpHere
    - sqlite3GetTempRange
    - sqlite3VdbeAddOp0
    - sqlite3SchemaToIndex
    - sqlite3ReleaseTempRange
    - sqlite3PrimaryKeyIndex
    - sqlite3VdbeAddOp4
    - MAX
    - sqlite3Strlen30
    - sqlite3VdbeAddOp1
    - VdbeCoverage
    - sqlite3OpenTable
    - sqlite3ReleaseTempReg
    - sqlite3VdbeChangeP5
    - sqlite3VdbeMakeLabel
    linkageType: ''
    returnType: void
    signature: "void generateSortTail(\n  Parse *pParse,    /* Parsing context */\n
      \ Select *p,        /* The SELECT statement */\n  SortCtx *pSort,   /* Information
      on the ORDER BY clause */\n  int nColumn,      /* Number of columns of data
      */\n  SelectDest *pDest /* Write the sorted results here */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - C
    - ','
    - D
    - ','
    - E
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126764
      start: 126763
    functionDepth: 0
    functionLinenumber: 126763
    functionLinenumberEnd: 126764
    functionName: columnType
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: columnType(A,B,C,D,E)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - C
    - ','
    - D
    - ','
    - E
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126766
      start: 126765
    functionDepth: 0
    functionLinenumber: 126765
    functionLinenumberEnd: 126766
    functionName: columnType
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: columnType(A,B,C,D,E)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:126786,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:126787,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:126788,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:126831,1
    - Dst: columnType
      Src: /src/nss/lib/sqlite/sqlite3.c:126847,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:126851,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:126854,1
    - Dst: sqlite3ColumnType
      Src: /src/nss/lib/sqlite/sqlite3.c:126860,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:126864,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:126868,1
    - Dst: sqlite3ColumnType
      Src: /src/nss/lib/sqlite/sqlite3.c:126872,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:126887,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:126887,1
    - Dst: columnType
      Src: /src/nss/lib/sqlite/sqlite3.c:126891,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:126899,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 68
    argCount: 5
    argNames:
    - pNC
    - pExpr
    - pzOrigDb
    - pzOrigTab
    - pzOrigCol
    argTypes:
    - NameContext*
    - SQLITE_ENABLE_COLUMN_METADATA**
    - char**
    - char**
    - char**
    assertStmts:
    - condition: ( pExpr!=0 )
      pos:
        line_end: 126785
        line_start: 126785
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTab && pExpr->y.pTab==pTab )
      pos:
        line_end: 126830
        line_start: 126830
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pNC->pSrcList!=0 )
      pos:
        line_end: 126786
        line_start: 126786
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pExpr->op!=TK_AGG_COLUMN )
      pos:
        line_end: 126787
        line_start: 126787
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !pS )
      pos:
        line_end: 126850
        line_start: 126850
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iCol==XN_ROWID || (iCol>=0 && iCol<pTab->nCol) )
      pos:
        line_end: 126853
        line_start: 126853
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iCol==XN_ROWID || (iCol>=0 && iCol<pTab->nCol) )
      pos:
        line_end: 126867
        line_start: 126867
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pzOrigTab && pzOrigCol )
      pos:
        line_end: 126898
        line_start: 126898
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( ExprHasProperty(pExpr, EP_xIsSelect) )
      pos:
        line_end: 126886
        line_start: 126886
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 126906
      start: 126767
    functionDepth: 2
    functionLinenumber: 126767
    functionLinenumberEnd: 126906
    functionName: columnTypeImpl
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - columnType
    - assert
    - sqlite3ColumnType
    - ExprHasProperty
    - sqlite3SchemaToIndex
    linkageType: ''
    returnType: char
    signature: "char *columnTypeImpl(\n  NameContext *pNC, \n#ifndef SQLITE_ENABLE_COLUMN_METADATA\n
      \ Expr *pExpr\n#else\n  Expr *pExpr,\n  const char **pzOrigDb,\n  const char
      **pzOrigTab,\n  const char **pzOrigCol\n#endif\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: columnType
      Src: /src/nss/lib/sqlite/sqlite3.c:126931,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/nss/lib/sqlite/sqlite3.c:126937,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/nss/lib/sqlite/sqlite3.c:126938,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/nss/lib/sqlite/sqlite3.c:126939,1
    - Dst: columnType
      Src: /src/nss/lib/sqlite/sqlite3.c:126941,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/nss/lib/sqlite/sqlite3.c:126943,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - pParse
    - pTabList
    - pEList
    argTypes:
    - Parse*
    - SrcList*
    - ExprList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126946
      start: 126912
    functionDepth: 13
    functionLinenumber: 126912
    functionLinenumberEnd: 126946
    functionName: generateColumnTypes
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeSetColName
    - columnType
    linkageType: ''
    returnType: void
    signature: "void generateColumnTypes(\n  Parse *pParse,      /* Parser context
      */\n  SrcList *pTabList,  /* List of tables */\n  ExprList *pEList    /* Expressions
      defining the result set */\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: SELECTTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:127002,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:127005,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:127006,1
    - Dst: sqlite3VdbeSetNumCols
      Src: /src/nss/lib/sqlite/sqlite3.c:127010,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:127014,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:127015,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:127016,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/nss/lib/sqlite/sqlite3.c:127020,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:127025,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:127027,1
    - Dst: sqlite3MPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:127035,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/nss/lib/sqlite/sqlite3.c:127036,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/nss/lib/sqlite/sqlite3.c:127038,1
    - Dst: sqlite3MPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:127042,1
    - Dst: sqlite3DbStrDup
      Src: /src/nss/lib/sqlite/sqlite3.c:127042,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/nss/lib/sqlite/sqlite3.c:127043,1
    - Dst: generateColumnTypes
      Src: /src/nss/lib/sqlite/sqlite3.c:127046,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 2
    argNames:
    - pParse
    - pSelect
    argTypes:
    - Parse*
    - Select*
    assertStmts:
    - condition: ( v!=0 )
      pos:
        line_end: 127004
        line_start: 127004
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p!=0 )
      pos:
        line_end: 127013
        line_start: 127013
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTabList!=0 )
      pos:
        line_end: 127005
        line_start: 127005
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->op!=TK_AGG_COLUMN )
      pos:
        line_end: 127014
        line_start: 127014
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->op!=TK_COLUMN || p->y.pTab!=0 )
      pos:
        line_end: 127015
        line_start: 127015
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTab!=0 )
      pos:
        line_end: 127024
        line_start: 127024
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iCol==-1 || (iCol>=0 && iCol<pTab->nCol) )
      pos:
        line_end: 127026
        line_start: 127026
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 127047
      start: 126979
    functionDepth: 14
    functionLinenumber: 126979
    functionLinenumberEnd: 127047
    functionName: generateColumnNames
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3MPrintf
    - SELECTTRACE
    - sqlite3DbStrDup
    - sqlite3VdbeSetNumCols
    - assert
    - sqlite3VdbeSetColName
    - generateColumnTypes
    linkageType: ''
    returnType: void
    signature: "void generateColumnNames(\n  Parse *pParse,      /* Parser context
      */\n  Select *pSelect     /* Generate column names for this SELECT statement
      */\n)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3HashInit
      Src: /src/nss/lib/sqlite/sqlite3.c:127086,1
    - Dst: sqlite3DbMallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:127089,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:127090,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:127096,1
    - Dst: sqlite3ExprSkipCollate
      Src: /src/nss/lib/sqlite/sqlite3.c:127106,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:127109,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:127111,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:127116,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:127120,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:127120,1
    - Dst: sqlite3DbStrDup
      Src: /src/nss/lib/sqlite/sqlite3.c:127128,1
    - Dst: sqlite3MPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:127130,1
    - Dst: sqlite3HashFind
      Src: /src/nss/lib/sqlite/sqlite3.c:127137,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:127138,1
    - Dst: sqlite3Isdigit
      Src: /src/nss/lib/sqlite/sqlite3.c:127140,1
    - Dst: sqlite3MPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:127143,1
    - Dst: sqlite3_randomness
      Src: /src/nss/lib/sqlite/sqlite3.c:127144,1
    - Dst: sqlite3ColumnPropertiesFromName
      Src: /src/nss/lib/sqlite/sqlite3.c:127147,1
    - Dst: sqlite3HashInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:127148,1
    - Dst: sqlite3OomFault
      Src: /src/nss/lib/sqlite/sqlite3.c:127149,1
    - Dst: sqlite3HashClear
      Src: /src/nss/lib/sqlite/sqlite3.c:127152,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:127155,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:127157,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 71
    argCount: 4
    argNames:
    - pParse
    - pEList
    - pnCol
    - paCol
    argTypes:
    - Parse*
    - ExprList*
    - i16*
    - Column**
    assertStmts:
    - condition: ( nCol==(i16)nCol )
      pos:
        line_end: 127095
        line_start: 127095
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pColExpr!=0 )
      pos:
        line_end: 127108
        line_start: 127108
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTab!=0 )
      pos:
        line_end: 127115
        line_start: 127115
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !ExprHasProperty(pColExpr, EP_IntValue) )
      pos:
        line_end: 127119
        line_start: 127119
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pColExpr->op!=TK_AGG_COLUMN )
      pos:
        line_end: 127110
        line_start: 127110
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 127163
      start: 127071
    functionDepth: 10
    functionLinenumber: 127071
    functionLinenumberEnd: 127163
    functionName: sqlite3ColumnsFromExprList
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3ColumnPropertiesFromName
    - sqlite3MPrintf
    - sqlite3HashClear
    - sqlite3DbStrDup
    - sqlite3DbFree
    - sqlite3Isdigit
    - sqlite3ExprSkipCollate
    - sqlite3_randomness
    - assert
    - sqlite3OomFault
    - sqlite3HashFind
    - sqlite3HashInit
    - sqlite3Strlen30
    - ExprHasProperty
    - sqlite3HashInsert
    - testcase
    - sqlite3DbMallocZero
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3ColumnsFromExprList(\n  Parse *pParse,          /*
      Parsing context */\n  ExprList *pEList,       /* Expr list from which to derive
      column names */\n  i16 *pnCol,             /* Write the number of columns here
      */\n  Column **paCol          /* Write the new column list here */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:127189,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:127190,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:127191,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:127193,1
    - Dst: columnType
      Src: /src/nss/lib/sqlite/sqlite3.c:127200,1
    - Dst: sqlite3ExprAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:127202,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:127204,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:127205,1
    - Dst: sqlite3DbReallocOrFree
      Src: /src/nss/lib/sqlite/sqlite3.c:127206,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:127208,1
    - Dst: sqlite3ExprCollSeq
      Src: /src/nss/lib/sqlite/sqlite3.c:127213,1
    - Dst: sqlite3DbStrDup
      Src: /src/nss/lib/sqlite/sqlite3.c:127215,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 3
    argNames:
    - pParse
    - pTab
    - pSelect
    argTypes:
    - Parse*
    - Table*
    - Select*
    assertStmts:
    - condition: ( pSelect!=0 )
      pos:
        line_end: 127188
        line_start: 127188
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pSelect->selFlags & SF_Resolved)!=0 )
      pos:
        line_end: 127189
        line_start: 127189
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTab->nCol==pSelect->pEList->nExpr || db->mallocFailed )
      pos:
        line_end: 127190
        line_start: 127190
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 127219
      start: 127176
    functionDepth: 9
    functionLinenumber: 127176
    functionLinenumberEnd: 127219
    functionName: sqlite3SelectAddColumnTypeAndCollation
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - memcpy
    - sqlite3DbStrDup
    - sqlite3ExprCollSeq
    - columnType
    - sqlite3DbReallocOrFree
    - assert
    - memset
    - sqlite3ExprAffinity
    - sqlite3Strlen30
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3SelectAddColumnTypeAndCollation(\n  Parse *pParse,
      \       /* Parsing contexts */\n  Table *pTab,          /* Add column type information
      to this table */\n  Select *pSelect       /* SELECT used to determine types
      and collations */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SelectPrep
      Src: /src/nss/lib/sqlite/sqlite3.c:127233,1
    - Dst: sqlite3DbMallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:127237,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:127243,1
    - Dst: sqlite3LogEst
      Src: /src/nss/lib/sqlite/sqlite3.c:127243,1
    - Dst: sqlite3ColumnsFromExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:127244,1
    - Dst: sqlite3SelectAddColumnTypeAndCollation
      Src: /src/nss/lib/sqlite/sqlite3.c:127245,1
    - Dst: sqlite3DeleteTable
      Src: /src/nss/lib/sqlite/sqlite3.c:127248,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 2
    argNames:
    - pParse
    - pSelect
    argTypes:
    - Parse*
    - Select*
    assertStmts:
    - condition: ( 200==sqlite3LogEst(1048576) )
      pos:
        line_end: 127242
        line_start: 127242
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 127252
      start: 127225
    functionDepth: 11
    functionLinenumber: 127225
    functionLinenumberEnd: 127252
    functionName: sqlite3ResultSetOfSelect
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3LogEst
    - sqlite3SelectPrep
    - assert
    - sqlite3SelectAddColumnTypeAndCollation
    - sqlite3DeleteTable
    - sqlite3ColumnsFromExprList
    - sqlite3DbMallocZero
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3ResultSetOfSelect(Parse *pParse, Select *pSelect)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OptimizationEnabled
      Src: /src/nss/lib/sqlite/sqlite3.c:127263,1
    - Dst: sqlite3VdbeCreate
      Src: /src/nss/lib/sqlite/sqlite3.c:127267,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - pParse
    argTypes:
    - Parse*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127268
      start: 127258
    functionDepth: 8
    functionLinenumber: 127258
    functionLinenumberEnd: 127268
    functionName: sqlite3GetVdbe
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 36
    functionsReached:
    - OptimizationEnabled
    - sqlite3VdbeCreate
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3GetVdbe(Parse *pParse)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:127310,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:127311,1
    - Dst: sqlite3GetVdbe
      Src: /src/nss/lib/sqlite/sqlite3.c:127313,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:127314,1
    - Dst: sqlite3ExprIsInteger
      Src: /src/nss/lib/sqlite/sqlite3.c:127315,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:127316,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:127317,1
    - Dst: sqlite3VdbeGoto
      Src: /src/nss/lib/sqlite/sqlite3.c:127319,1
    - Dst: sqlite3LogEst
      Src: /src/nss/lib/sqlite/sqlite3.c:127320,1
    - Dst: sqlite3LogEst
      Src: /src/nss/lib/sqlite/sqlite3.c:127321,1
    - Dst: sqlite3ExprCode
      Src: /src/nss/lib/sqlite/sqlite3.c:127325,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:127326,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:127326,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:127327,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:127328,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:127328,1
    - Dst: sqlite3ExprCode
      Src: /src/nss/lib/sqlite/sqlite3.c:127333,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:127334,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:127334,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:127335,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:127336,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:127337,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 3
    argNames:
    - pParse
    - p
    - iBreak
    argTypes:
    - Parse*
    - Select*
    - int
    assertStmts:
    - condition: ( pLimit->pLeft!=0 )
      pos:
        line_end: 127310
        line_start: 127310
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( v!=0 )
      pos:
        line_end: 127313
        line_start: 127313
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pLimit->op==TK_LIMIT )
      pos:
        line_end: 127309
        line_start: 127309
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 127340
      start: 127294
    functionDepth: 17
    functionLinenumber: 127294
    functionLinenumberEnd: 127340
    functionName: computeLimitRegisters
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeGoto
    - sqlite3VdbeAddOp2
    - sqlite3ExprCode
    - sqlite3LogEst
    - sqlite3VdbeAddOp3
    - sqlite3ExprIsInteger
    - assert
    - sqlite3VdbeAddOp1
    - VdbeCoverage
    - sqlite3GetVdbe
    - VdbeComment
    linkageType: ''
    returnType: void
    signature: void computeLimitRegisters(Parse *pParse, Select *p, int iBreak)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: multiSelectCollSeq
      Src: /src/nss/lib/sqlite/sqlite3.c:127354,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:127358,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:127362,1
    - Dst: sqlite3ExprCollSeq
      Src: /src/nss/lib/sqlite/sqlite3.c:127363,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - pParse
    - p
    - iCol
    argTypes:
    - Parse*
    - Select*
    - int
    assertStmts:
    - condition: ( iCol>=0 )
      pos:
        line_end: 127357
        line_start: 127357
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 127366
      start: 127351
    functionDepth: 2
    functionLinenumber: 127351
    functionLinenumberEnd: 127366
    functionName: multiSelectCollSeq
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - ALWAYS
    - multiSelectCollSeq
    - sqlite3ExprCollSeq
    linkageType: ''
    returnType: CollSeq
    signature: CollSeq *multiSelectCollSeq(Parse *pParse, Select *p, int iCol)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3KeyInfoAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:127381,1
    - Dst: sqlite3ExprCollSeq
      Src: /src/nss/lib/sqlite/sqlite3.c:127390,1
    - Dst: multiSelectCollSeq
      Src: /src/nss/lib/sqlite/sqlite3.c:127392,1
    - Dst: sqlite3ExprAddCollateString
      Src: /src/nss/lib/sqlite/sqlite3.c:127395,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:127397,1
    - Dst: sqlite3KeyInfoIsWriteable
      Src: /src/nss/lib/sqlite/sqlite3.c:127397,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - pParse
    - p
    - nExtra
    argTypes:
    - Parse*
    - Select*
    - int
    assertStmts:
    - condition: ( sqlite3KeyInfoIsWriteable(pRet) )
      pos:
        line_end: 127396
        line_start: 127396
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 127404
      start: 127377
    functionDepth: 8
    functionLinenumber: 127377
    functionLinenumberEnd: 127404
    functionName: multiSelectOrderByKeyInfo
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - multiSelectCollSeq
    - sqlite3KeyInfoAlloc
    - sqlite3ExprCollSeq
    - sqlite3ExprAddCollateString
    - assert
    - sqlite3KeyInfoIsWriteable
    linkageType: ''
    returnType: KeyInfo
    signature: KeyInfo *multiSelectOrderByKeyInfo(Parse *pParse, Select *p, int nExtra)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:127468,1
    - Dst: sqlite3AuthCheck
      Src: /src/nss/lib/sqlite/sqlite3.c:127474,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:127477,1
    - Dst: computeLimitRegisters
      Src: /src/nss/lib/sqlite/sqlite3.c:127479,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:127488,1
    - Dst: sqlite3SelectDestInit
      Src: /src/nss/lib/sqlite/sqlite3.c:127505,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:127509,1
    - Dst: multiSelectOrderByKeyInfo
      Src: /src/nss/lib/sqlite/sqlite3.c:127511,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:127512,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:127516,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:127518,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:127520,1
    - Dst: ExplainQueryPlan
      Src: /src/nss/lib/sqlite/sqlite3.c:127529,1
    - Dst: sqlite3Select
      Src: /src/nss/lib/sqlite/sqlite3.c:127530,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:127535,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:127535,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:127538,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:127540,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:127542,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:127544,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:127547,1
    - Dst: codeOffset
      Src: /src/nss/lib/sqlite/sqlite3.c:127548,1
    - Dst: selectInnerLoop
      Src: /src/nss/lib/sqlite/sqlite3.c:127549,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:127552,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:127553,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:127555,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:127561,1
    - Dst: ExplainQueryPlan
      Src: /src/nss/lib/sqlite/sqlite3.c:127564,1
    - Dst: sqlite3Select
      Src: /src/nss/lib/sqlite/sqlite3.c:127565,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:127566,1
    - Dst: sqlite3VdbeGoto
      Src: /src/nss/lib/sqlite/sqlite3.c:127571,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:127572,1
    - Dst: sqlite3ExprListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:127575,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 85
    argCount: 3
    argNames:
    - pParse
    - p
    - pDest
    argTypes:
    - Parse*
    - Select*
    - SelectDest*
    assertStmts:
    - condition: ( p->pPrior==0 )
      pos:
        line_end: 127565
        line_start: 127565
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 127579
      start: 127443
    functionDepth: 21
    functionLinenumber: 127443
    functionLinenumberEnd: 127579
    functionName: generateWithRecursiveQuery
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ALWAYS
    - codeOffset
    - selectInnerLoop
    - sqlite3VdbeAddOp2
    - sqlite3VdbeResolveLabel
    - sqlite3VdbeAddOp3
    - VdbeComment
    - sqlite3VdbeGoto
    - assert
    - multiSelectOrderByKeyInfo
    - ExplainQueryPlan
    - sqlite3AuthCheck
    - computeLimitRegisters
    - sqlite3Select
    - sqlite3VdbeAddOp4
    - sqlite3VdbeAddOp1
    - VdbeCoverage
    - sqlite3ExprListDelete
    - sqlite3SelectDestInit
    - sqlite3ErrorMsg
    - sqlite3VdbeMakeLabel
    linkageType: ''
    returnType: void
    signature: "void generateWithRecursiveQuery(\n  Parse *pParse,        /* Parsing
      context */\n  Select *p,            /* The recursive SELECT to be coded */\n
      \ SelectDest *pDest     /* What to do with query results */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:127613,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:127615,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:127616,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:127617,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:127619,1
    - Dst: ExplainQueryPlan
      Src: /src/nss/lib/sqlite/sqlite3.c:127623,1
    - Dst: selectInnerLoop
      Src: /src/nss/lib/sqlite/sqlite3.c:127626,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 3
    argNames:
    - pParse
    - p
    - pDest
    argTypes:
    - Parse*
    - Select*
    - SelectDest*
    assertStmts:
    - condition: ( p->selFlags & SF_MultiValue )
      pos:
        line_end: 127612
        line_start: 127612
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->selFlags & SF_Values )
      pos:
        line_end: 127614
        line_start: 127614
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->op==TK_ALL || (p->op==TK_SELECT && p->pPrior==0) )
      pos:
        line_end: 127615
        line_start: 127615
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->pNext==0 || p->pEList->nExpr==p->pNext->pEList->nExpr )
      pos:
        line_end: 127616
        line_start: 127616
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->pPrior->pNext==p )
      pos:
        line_end: 127618
        line_start: 127618
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 127632
      start: 127605
    functionDepth: 21
    functionLinenumber: 127605
    functionLinenumberEnd: 127632
    functionName: multiSelectValues
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - ExplainQueryPlan
    - selectInnerLoop
    linkageType: ''
    returnType: int
    signature: "int multiSelectValues(\n  Parse *pParse,        /* Parsing context
      */\n  Select *p,            /* The right-most of SELECTs to be coded */\n  SelectDest
      *pDest     /* What to do with query results */\n)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:127680,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:127681,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:127682,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:127687,1
    - Dst: selectOpName
      Src: /src/nss/lib/sqlite/sqlite3.c:127688,1
    - Dst: sqlite3GetVdbe
      Src: /src/nss/lib/sqlite/sqlite3.c:127693,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:127694,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:127699,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:127700,1
    - Dst: multiSelectValues
      Src: /src/nss/lib/sqlite/sqlite3.c:127707,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:127714,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:127715,1
    - Dst: generateWithRecursiveQuery
      Src: /src/nss/lib/sqlite/sqlite3.c:127719,1
    - Dst: multiSelectOrderBy
      Src: /src/nss/lib/sqlite/sqlite3.c:127726,1
    - Dst: ExplainQueryPlan
      Src: /src/nss/lib/sqlite/sqlite3.c:127731,1
    - Dst: ExplainQueryPlan
      Src: /src/nss/lib/sqlite/sqlite3.c:127732,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:127742,1
    - Dst: sqlite3Select
      Src: /src/nss/lib/sqlite/sqlite3.c:127746,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:127755,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:127755,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:127756,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:127758,1
    - Dst: ExplainQueryPlan
      Src: /src/nss/lib/sqlite/sqlite3.c:127762,1
    - Dst: sqlite3Select
      Src: /src/nss/lib/sqlite/sqlite3.c:127763,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:127764,1
    - Dst: sqlite3LogEstAdd
      Src: /src/nss/lib/sqlite/sqlite3.c:127767,1
    - Dst: sqlite3ExprIsInteger
      Src: /src/nss/lib/sqlite/sqlite3.c:127769,1
    - Dst: sqlite3LogEst
      Src: /src/nss/lib/sqlite/sqlite3.c:127770,1
    - Dst: sqlite3LogEst
      Src: /src/nss/lib/sqlite/sqlite3.c:127772,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:127775,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:127788,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:127789,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:127795,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:127802,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:127803,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:127804,1
    - Dst: findRightmost
      Src: /src/nss/lib/sqlite/sqlite3.c:127806,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:127807,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:127812,1
    - Dst: sqlite3SelectDestInit
      Src: /src/nss/lib/sqlite/sqlite3.c:127813,1
    - Dst: sqlite3Select
      Src: /src/nss/lib/sqlite/sqlite3.c:127814,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:127824,1
    - Dst: ExplainQueryPlan
      Src: /src/nss/lib/sqlite/sqlite3.c:127831,1
    - Dst: selectOpName
      Src: /src/nss/lib/sqlite/sqlite3.c:127832,1
    - Dst: sqlite3Select
      Src: /src/nss/lib/sqlite/sqlite3.c:127833,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:127834,1
    - Dst: sqlite3ExprListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:127837,1
    - Dst: sqlite3LogEstAdd
      Src: /src/nss/lib/sqlite/sqlite3.c:127842,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:127844,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:127852,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:127855,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:127856,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:127857,1
    - Dst: computeLimitRegisters
      Src: /src/nss/lib/sqlite/sqlite3.c:127858,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:127859,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:127859,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:127860,1
    - Dst: selectInnerLoop
      Src: /src/nss/lib/sqlite/sqlite3.c:127861,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:127863,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:127864,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:127864,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:127865,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:127866,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:127870,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:127884,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:127886,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:127887,1
    - Dst: findRightmost
      Src: /src/nss/lib/sqlite/sqlite3.c:127889,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:127890,1
    - Dst: sqlite3SelectDestInit
      Src: /src/nss/lib/sqlite/sqlite3.c:127894,1
    - Dst: sqlite3Select
      Src: /src/nss/lib/sqlite/sqlite3.c:127895,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:127902,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:127903,1
    - Dst: ExplainQueryPlan
      Src: /src/nss/lib/sqlite/sqlite3.c:127909,1
    - Dst: selectOpName
      Src: /src/nss/lib/sqlite/sqlite3.c:127910,1
    - Dst: sqlite3Select
      Src: /src/nss/lib/sqlite/sqlite3.c:127911,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:127912,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:127918,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:127924,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:127925,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:127926,1
    - Dst: computeLimitRegisters
      Src: /src/nss/lib/sqlite/sqlite3.c:127927,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:127928,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:127928,1
    - Dst: sqlite3GetTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:127929,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:127930,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/nss/lib/sqlite/sqlite3.c:127931,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:127932,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:127933,1
    - Dst: selectInnerLoop
      Src: /src/nss/lib/sqlite/sqlite3.c:127934,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:127936,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:127937,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:127937,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:127938,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:127939,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:127940,1
    - Dst: ExplainQueryPlanPop
      Src: /src/nss/lib/sqlite/sqlite3.c:127947,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:127968,1
    - Dst: sqlite3KeyInfoAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:127970,1
    - Dst: multiSelectCollSeq
      Src: /src/nss/lib/sqlite/sqlite3.c:127976,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:127988,1
    - Dst: sqlite3VdbeChangeP2
      Src: /src/nss/lib/sqlite/sqlite3.c:127991,1
    - Dst: sqlite3VdbeChangeP4
      Src: /src/nss/lib/sqlite/sqlite3.c:127992,1
    - Dst: sqlite3KeyInfoRef
      Src: /src/nss/lib/sqlite/sqlite3.c:127992,1
    - Dst: sqlite3KeyInfoUnref
      Src: /src/nss/lib/sqlite/sqlite3.c:127997,1
    - Dst: sqlite3SelectDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:128003,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 232
    argCount: 3
    argNames:
    - pParse
    - p
    - pDest
    argTypes:
    - Parse*
    - Select*
    - SelectDest*
    assertStmts:
    - condition: ( p->selFlags & SF_Compound )
      pos:
        line_end: 127681
        line_start: 127681
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !pPrior->pLimit )
      pos:
        line_end: 127741
        line_start: 127741
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->pNext==0 )
      pos:
        line_end: 127967
        line_start: 127967
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->op==TK_INTERSECT )
      pos:
        line_end: 127869
        line_start: 127869
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->pEList->nExpr==pPrior->pEList->nExpr )
      pos:
        line_end: 127714
        line_start: 127714
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->pEList )
      pos:
        line_end: 127698
        line_start: 127698
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->pEList )
      pos:
        line_end: 127854
        line_start: 127854
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (p->selFlags & SF_Recursive)==0 || p->op==TK_ALL || p->op==TK_UNION
        )
      pos:
        line_end: 127680
        line_start: 127680
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->op==TK_UNION )
      pos:
        line_end: 127823
        line_start: 127823
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->pLimit==0 )
      pos:
        line_end: 127794
        line_start: 127794
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->pOrderBy==0 )
      pos:
        line_end: 127883
        line_start: 127883
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !pPrior->pOrderBy )
      pos:
        line_end: 127811
        line_start: 127811
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( unionTab==dest.iSDParm || dest.eDest!=priorOp )
      pos:
        line_end: 127851
        line_start: 127851
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->pOrderBy==0 )
      pos:
        line_end: 127801
        line_start: 127801
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p && p->pPrior )
      pos:
        line_end: 127679
        line_start: 127679
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->pEList )
      pos:
        line_end: 127923
        line_start: 127923
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( v!=0 )
      pos:
        line_end: 127693
        line_start: 127693
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pLoop->addrOpenEphm[1]<0 )
      pos:
        line_end: 127987
        line_start: 127987
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->addrOpenEphm[0] == -1 )
      pos:
        line_end: 127886
        line_start: 127886
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->pEList && pPrior->pEList )
      pos:
        line_end: 127713
        line_start: 127713
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->pEList )
      pos:
        line_end: 127889
        line_start: 127889
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->pEList )
      pos:
        line_end: 127806
        line_start: 127806
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->addrOpenEphm[0] == -1 )
      pos:
        line_end: 127803
        line_start: 127803
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->addrOpenEphm[1] == -1 )
      pos:
        line_end: 127902
        line_start: 127902
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 128005
      start: 127665
    functionDepth: 22
    functionLinenumber: 127665
    functionLinenumberEnd: 128005
    functionName: multiSelect
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - selectInnerLoop
    - sqlite3VdbeAddOp2
    - multiSelectValues
    - generateWithRecursiveQuery
    - multiSelectOrderBy
    - sqlite3VdbeAddOp3
    - sqlite3VdbeResolveLabel
    - sqlite3VdbeChangeP2
    - ExplainQueryPlanPop
    - sqlite3KeyInfoUnref
    - sqlite3GetVdbe
    - testcase
    - VdbeComment
    - sqlite3SelectDelete
    - sqlite3VdbeCurrentAddr
    - sqlite3KeyInfoAlloc
    - sqlite3GetTempReg
    - sqlite3VdbeAddOp4Int
    - sqlite3ExprIsInteger
    - assert
    - sqlite3VdbeJumpHere
    - sqlite3KeyInfoRef
    - ExplainQueryPlan
    - computeLimitRegisters
    - sqlite3Select
    - sqlite3ExprDelete
    - selectOpName
    - sqlite3VdbeAddOp1
    - VdbeCoverage
    - sqlite3VdbeChangeP4
    - sqlite3ExprListDelete
    - sqlite3LogEstAdd
    - multiSelectCollSeq
    - findRightmost
    - sqlite3LogEst
    - sqlite3ReleaseTempReg
    - sqlite3SelectDestInit
    - sqlite3ErrorMsg
    - sqlite3VdbeMakeLabel
    linkageType: ''
    returnType: int
    signature: "int multiSelect(\n  Parse *pParse,        /* Parsing context */\n
      \ Select *p,            /* The right-most of SELECTs to be coded */\n  SelectDest
      *pDest     /* What to do with query results */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:128014,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:128016,1
    - Dst: selectOpName
      Src: /src/nss/lib/sqlite/sqlite3.c:128017,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pParse
    - p
    argTypes:
    - Parse*
    - Select*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128019
      start: 128012
    functionDepth: 10
    functionLinenumber: 128012
    functionLinenumberEnd: 128019
    functionName: sqlite3SelectWrongNumTermsError
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3ErrorMsg
    - selectOpName
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3SelectWrongNumTermsError(Parse *pParse, Select
      *p)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:128055,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:128056,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:128062,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:128062,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:128063,1
    - Dst: sqlite3KeyInfoRef
      Src: /src/nss/lib/sqlite/sqlite3.c:128064,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:128065,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:128065,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:128066,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:128067,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:128068,1
    - Dst: codeOffset
      Src: /src/nss/lib/sqlite/sqlite3.c:128074,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:128076,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:128077,1
    - Dst: sqlite3GetTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:128082,1
    - Dst: sqlite3GetTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:128083,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:128084,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:128085,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:128086,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:128087,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:128088,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:128089,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:128098,1
    - Dst: sqlite3GetTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:128099,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:128100,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/nss/lib/sqlite/sqlite3.c:128102,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:128104,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:128113,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:128113,1
    - Dst: sqlite3ExprCodeMove
      Src: /src/nss/lib/sqlite/sqlite3.c:128114,1
    - Dst: sqlite3GetTempRange
      Src: /src/nss/lib/sqlite/sqlite3.c:128125,1
    - Dst: sqlite3ExprCodeMove
      Src: /src/nss/lib/sqlite/sqlite3.c:128128,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:128129,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:128142,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:128143,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:128151,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:128151,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:128156,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:128157,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 64
    argCount: 8
    argNames:
    - pParse
    - p
    - pIn
    - pDest
    - regReturn
    - regPrev
    - pKeyInfo
    - iBreak
    argTypes:
    - Parse*
    - Select*
    - SelectDest*
    - SelectDest*
    - int
    - int
    - KeyInfo*
    - int
    assertStmts:
    - condition: ( pDest->eDest!=SRT_Table )
      pos:
        line_end: 128076
        line_start: 128076
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pDest->eDest==SRT_Output )
      pos:
        line_end: 128141
        line_start: 128141
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pDest->eDest!=SRT_Exists )
      pos:
        line_end: 128075
        line_start: 128075
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIn->nSdst==1 || pParse->nErr>0 )
      pos:
        line_end: 128112
        line_start: 128112
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 128160
      start: 128041
    functionDepth: 12
    functionLinenumber: 128041
    functionLinenumberEnd: 128160
    functionName: generateOutputSubroutine
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - codeOffset
    - sqlite3VdbeAddOp2
    - sqlite3VdbeResolveLabel
    - sqlite3VdbeAddOp3
    - testcase
    - sqlite3ExprCodeMove
    - sqlite3VdbeCurrentAddr
    - sqlite3GetTempReg
    - sqlite3VdbeAddOp4Int
    - assert
    - sqlite3VdbeJumpHere
    - sqlite3KeyInfoRef
    - sqlite3GetTempRange
    - sqlite3VdbeAddOp4
    - sqlite3VdbeAddOp1
    - VdbeCoverage
    - sqlite3ReleaseTempReg
    - sqlite3VdbeChangeP5
    - sqlite3VdbeMakeLabel
    linkageType: ''
    returnType: int
    signature: "int generateOutputSubroutine(\n  Parse *pParse,          /* Parsing
      context */\n  Select *p,              /* The SELECT statement */\n  SelectDest
      *pIn,        /* Coroutine supplying data */\n  SelectDest *pDest,      /* Where
      to send the data */\n  int regReturn,          /* The return address register
      */\n  int regPrev,            /* Previous result register.  No uniqueness if
      0 */\n  KeyInfo *pKeyInfo,      /* For comparing with previous entry */\n  int
      iBreak              /* Jump here if we hit the LIMIT */\n)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:128288,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:128289,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:128292,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:128293,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:128294,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:128301,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:128303,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:128314,1
    - Dst: sqlite3Expr
      Src: /src/nss/lib/sqlite/sqlite3.c:128318,1
    - Dst: sqlite3ExprListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:128322,1
    - Dst: sqlite3DbMallocRawNN
      Src: /src/nss/lib/sqlite/sqlite3.c:128335,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:128340,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:128341,1
    - Dst: multiSelectOrderByKeyInfo
      Src: /src/nss/lib/sqlite/sqlite3.c:128344,1
    - Dst: sqlite3ExprListDup
      Src: /src/nss/lib/sqlite/sqlite3.c:128352,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:128362,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:128365,1
    - Dst: sqlite3KeyInfoAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:128366,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:128368,1
    - Dst: sqlite3KeyInfoIsWriteable
      Src: /src/nss/lib/sqlite/sqlite3.c:128368,1
    - Dst: multiSelectCollSeq
      Src: /src/nss/lib/sqlite/sqlite3.c:128370,1
    - Dst: sqlite3ResolveOrderGroupBy
      Src: /src/nss/lib/sqlite/sqlite3.c:128380,1
    - Dst: sqlite3ResolveOrderGroupBy
      Src: /src/nss/lib/sqlite/sqlite3.c:128382,1
    - Dst: computeLimitRegisters
      Src: /src/nss/lib/sqlite/sqlite3.c:128386,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:128390,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:128392,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:128396,1
    - Dst: sqlite3SelectDestInit
      Src: /src/nss/lib/sqlite/sqlite3.c:128403,1
    - Dst: sqlite3SelectDestInit
      Src: /src/nss/lib/sqlite/sqlite3.c:128404,1
    - Dst: ExplainQueryPlan
      Src: /src/nss/lib/sqlite/sqlite3.c:128406,1
    - Dst: selectOpName
      Src: /src/nss/lib/sqlite/sqlite3.c:128406,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:128411,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:128412,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:128413,1
    - Dst: ExplainQueryPlan
      Src: /src/nss/lib/sqlite/sqlite3.c:128415,1
    - Dst: sqlite3Select
      Src: /src/nss/lib/sqlite/sqlite3.c:128416,1
    - Dst: sqlite3VdbeEndCoroutine
      Src: /src/nss/lib/sqlite/sqlite3.c:128417,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:128418,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:128423,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:128424,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:128425,1
    - Dst: ExplainQueryPlan
      Src: /src/nss/lib/sqlite/sqlite3.c:128430,1
    - Dst: sqlite3Select
      Src: /src/nss/lib/sqlite/sqlite3.c:128431,1
    - Dst: sqlite3VdbeEndCoroutine
      Src: /src/nss/lib/sqlite/sqlite3.c:128434,1
    - Dst: VdbeNoopComment
      Src: /src/nss/lib/sqlite/sqlite3.c:128439,1
    - Dst: generateOutputSubroutine
      Src: /src/nss/lib/sqlite/sqlite3.c:128440,1
    - Dst: VdbeNoopComment
      Src: /src/nss/lib/sqlite/sqlite3.c:128448,1
    - Dst: generateOutputSubroutine
      Src: /src/nss/lib/sqlite/sqlite3.c:128449,1
    - Dst: sqlite3KeyInfoUnref
      Src: /src/nss/lib/sqlite/sqlite3.c:128453,1
    - Dst: VdbeNoopComment
      Src: /src/nss/lib/sqlite/sqlite3.c:128461,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:128462,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:128463,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:128464,1
    - Dst: sqlite3VdbeGoto
      Src: /src/nss/lib/sqlite/sqlite3.c:128465,1
    - Dst: sqlite3LogEstAdd
      Src: /src/nss/lib/sqlite/sqlite3.c:128466,1
    - Dst: VdbeNoopComment
      Src: /src/nss/lib/sqlite/sqlite3.c:128476,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:128477,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:128478,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:128478,1
    - Dst: sqlite3VdbeGoto
      Src: /src/nss/lib/sqlite/sqlite3.c:128479,1
    - Dst: VdbeNoopComment
      Src: /src/nss/lib/sqlite/sqlite3.c:128484,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:128485,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:128486,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:128486,1
    - Dst: sqlite3VdbeGoto
      Src: /src/nss/lib/sqlite/sqlite3.c:128487,1
    - Dst: VdbeNoopComment
      Src: /src/nss/lib/sqlite/sqlite3.c:128497,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:128499,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:128499,1
    - Dst: sqlite3VdbeGoto
      Src: /src/nss/lib/sqlite/sqlite3.c:128500,1
    - Dst: VdbeNoopComment
      Src: /src/nss/lib/sqlite/sqlite3.c:128505,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:128506,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:128508,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:128510,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:128510,1
    - Dst: sqlite3VdbeGoto
      Src: /src/nss/lib/sqlite/sqlite3.c:128511,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:128515,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:128516,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:128516,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:128517,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:128517,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:128521,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:128522,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:128523,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:128525,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:128526,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:128526,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:128530,1
    - Dst: sqlite3SelectDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:128535,1
    - Dst: ExplainQueryPlanPop
      Src: /src/nss/lib/sqlite/sqlite3.c:128542,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 178
    argCount: 3
    argNames:
    - pParse
    - p
    - pDest
    argTypes:
    - Parse*
    - Select*
    - SelectDest*
    assertStmts:
    - condition: ( nOrderBy>=nExpr || db->mallocFailed )
      pos:
        line_end: 128361
        line_start: 128361
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPrior->pOrderBy==0 )
      pos:
        line_end: 128300
        line_start: 128300
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( v!=0 )
      pos:
        line_end: 128291
        line_start: 128291
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pItem->u.x.iOrderByCol<=p->pEList->nExpr )
      pos:
        line_end: 128340
        line_start: 128340
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pKeyDup==0 )
      pos:
        line_end: 128288
        line_start: 128288
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pItem->u.x.iOrderByCol>0 )
      pos:
        line_end: 128313
        line_start: 128313
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3KeyInfoIsWriteable(pKeyDup) )
      pos:
        line_end: 128367
        line_start: 128367
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOrderBy )
      pos:
        line_end: 128302
        line_start: 128302
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pItem->u.x.iOrderByCol>0 )
      pos:
        line_end: 128339
        line_start: 128339
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->pOrderBy!=0 )
      pos:
        line_end: 128287
        line_start: 128287
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 128544
      start: 128248
    functionDepth: 18
    functionLinenumber: 128248
    functionLinenumberEnd: 128544
    functionName: multiSelectOrderBy
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3VdbeAddOp2
    - VdbeNoopComment
    - sqlite3DbMallocRawNN
    - sqlite3ExprListDup
    - sqlite3VdbeResolveLabel
    - sqlite3VdbeAddOp3
    - sqlite3KeyInfoUnref
    - ExplainQueryPlanPop
    - sqlite3VdbeEndCoroutine
    - VdbeComment
    - sqlite3VdbeGoto
    - sqlite3SelectDelete
    - sqlite3VdbeCurrentAddr
    - sqlite3KeyInfoAlloc
    - assert
    - sqlite3VdbeJumpHere
    - sqlite3KeyInfoIsWriteable
    - multiSelectOrderByKeyInfo
    - sqlite3Expr
    - sqlite3ExprListAppend
    - ExplainQueryPlan
    - computeLimitRegisters
    - sqlite3Select
    - sqlite3ExprDelete
    - sqlite3VdbeAddOp4
    - selectOpName
    - VdbeCoverage
    - sqlite3LogEstAdd
    - sqlite3ResolveOrderGroupBy
    - multiSelectCollSeq
    - sqlite3SelectDestInit
    - sqlite3VdbeChangeP5
    - sqlite3VdbeMakeLabel
    - generateOutputSubroutine
    linkageType: ''
    returnType: int
    signature: "int multiSelectOrderBy(\n  Parse *pParse,        /* Parsing context
      */\n  Select *p,            /* The right-most of SELECTs to be coded */\n  SelectDest
      *pDest     /* What to do with query results */\n)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:128585,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:128597,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:128598,1
    - Dst: sqlite3ExprIsVector
      Src: /src/nss/lib/sqlite/sqlite3.c:128599,1
    - Dst: sqlite3VectorErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:128600,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:128604,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:128610,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:128610,1
    - Dst: sqlite3ExprDup
      Src: /src/nss/lib/sqlite/sqlite3.c:128611,1
    - Dst: ExprSetProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:128613,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:128615,1
    - Dst: ExprSetProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:128617,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:128619,1
    - Dst: substExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:128627,1
    - Dst: substExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:128628,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:128629,1
    - Dst: substSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:128630,1
    - Dst: substExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:128632,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 48
    argCount: 2
    argNames:
    - pSubst
    - pExpr
    argTypes:
    - SubstContext*
    - Expr*
    assertStmts:
    - condition: ( pExpr->pRight==0 )
      pos:
        line_end: 128597
        line_start: 128597
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pSubst->pEList!=0 && pExpr->iColumn<pSubst->pEList->nExpr )
      pos:
        line_end: 128596
        line_start: 128596
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 128636
      start: 128580
    functionDepth: 12
    functionLinenumber: 128580
    functionLinenumberEnd: 128636
    functionName: substExpr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - substExpr
    - substSelect
    - ExprSetProperty
    - substExprList
    - sqlite3ExprDelete
    - assert
    - sqlite3VectorErrorMsg
    - memset
    - sqlite3ExprIsVector
    - sqlite3ExprDup
    - ExprHasProperty
    - testcase
    linkageType: ''
    returnType: Expr
    signature: "Expr *substExpr(\n  SubstContext *pSubst,  /* Description of the substitution
      */\n  Expr *pExpr            /* Expr in which substitution occurs */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: substExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:128644,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - pSubst
    - pList
    argTypes:
    - SubstContext*
    - ExprList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128646
      start: 128637
    functionDepth: 13
    functionLinenumber: 128637
    functionLinenumberEnd: 128646
    functionName: substExprList
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - substExpr
    linkageType: ''
    returnType: void
    signature: "void substExprList(\n  SubstContext *pSubst, /* Description of the
      substitution */\n  ExprList *pList       /* List to scan and in which to make
      substitutes */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: substExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:128657,1
    - Dst: substExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:128658,1
    - Dst: substExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:128659,1
    - Dst: substExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:128660,1
    - Dst: substExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:128661,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:128663,1
    - Dst: substSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:128665,1
    - Dst: substExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:128667,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - pSubst
    - p
    - doPrior
    argTypes:
    - SubstContext*
    - Select*
    - int
    assertStmts:
    - condition: ( pSrc!=0 )
      pos:
        line_end: 128662
        line_start: 128662
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 128671
      start: 128647
    functionDepth: 14
    functionLinenumber: 128647
    functionLinenumberEnd: 128671
    functionName: substSelect
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - substExpr
    - substSelect
    - assert
    - substExprList
    linkageType: ''
    returnType: void
    signature: "void substSelect(\n  SubstContext *pSubst, /* Description of the substitution
      */\n  Select *p,            /* SELECT statement in which to make substitutions
      */\n  int doPrior           /* Do substitutes on p->pPrior too */\n)"
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:128850,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:128851,1
    - Dst: OptimizationDisabled
      Src: /src/nss/lib/sqlite/sqlite3.c:128852,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:128854,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:128858,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:128865,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:128915,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:128943,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:128944,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:128945,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:128946,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:128953,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:128971,1
    - Dst: SELECTTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:128974,1
    - Dst: TESTONLY
      Src: /src/nss/lib/sqlite/sqlite3.c:128979,1
    - Dst: sqlite3AuthCheck
      Src: /src/nss/lib/sqlite/sqlite3.c:128979,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:128980,1
    - Dst: sqlite3SelectDup
      Src: /src/nss/lib/sqlite/sqlite3.c:129025,1
    - Dst: SELECTTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:129037,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:129051,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:129052,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:129053,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:129066,1
    - Dst: sqlite3ParseToplevel
      Src: /src/nss/lib/sqlite/sqlite3.c:129069,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:129099,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:129102,1
    - Dst: sqlite3SrcListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:129103,1
    - Dst: sqlite3SrcListEnlarge
      Src: /src/nss/lib/sqlite/sqlite3.c:129124,1
    - Dst: sqlite3IdListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:129133,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:129134,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:129137,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:129168,1
    - Dst: setJoinExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:129175,1
    - Dst: sqlite3ExprAnd
      Src: /src/nss/lib/sqlite/sqlite3.c:129177,1
    - Dst: substSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:129185,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:129191,1
    - Dst: sqlite3SelectDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:129208,1
    - Dst: SELECTTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:129212,1
    - Dst: sqlite3TreeViewSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:129213,1
    CyclomaticComplexity: 64
    EdgeCount: 64
    ICount: 183
    argCount: 4
    argNames:
    - pParse
    - p
    - iFrom
    - isAgg
    argTypes:
    - Parse*
    - Select*
    - int
    - int
    assertStmts:
    - condition: ( (p->selFlags & SF_Recursive)==0 || pSub->pPrior==0 )
      pos:
        line_end: 128970
        line_start: 128970
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pSubSrc )
      pos:
        line_end: 128864
        line_start: 128864
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pParent==p )
      pos:
        line_end: 129098
        line_start: 129098
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pSrc->a[i+iFrom].fg.isTabFunc==0 )
      pos:
        line_end: 129133
        line_start: 129133
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pSub!=0 )
      pos:
        line_end: 128857
        line_start: 128857
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->pPrior==0 )
      pos:
        line_end: 128850
        line_start: 128850
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pSrc && iFrom>=0 && iFrom<pSrc->nSrc )
      pos:
        line_end: 128853
        line_start: 128853
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pSub->pEList->nExpr==pSub1->pEList->nExpr )
      pos:
        line_end: 128945
        line_start: 128945
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pParent!=p )
      pos:
        line_end: 129101
        line_start: 129101
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p!=0 )
      pos:
        line_end: 128849
        line_start: 128849
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pSub->pSrc!=0 )
      pos:
        line_end: 128944
        line_start: 128944
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pParent->pOrderBy==0 )
      pos:
        line_end: 129167
        line_start: 129167
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pSub->selFlags & SF_Distinct)==0 )
      pos:
        line_end: 129190
        line_start: 129190
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 129218
      start: 128828
    functionDepth: 15
    functionLinenumber: 128828
    functionLinenumberEnd: 129218
    functionName: flattenSubquery
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ALWAYS
    - setJoinExpr
    - testcase
    - sqlite3ParseToplevel
    - sqlite3TreeViewSelect
    - sqlite3SelectDelete
    - assert
    - memset
    - sqlite3SrcListEnlarge
    - sqlite3SrcListAppend
    - sqlite3AuthCheck
    - substSelect
    - sqlite3IdListDelete
    - TESTONLY
    - sqlite3DbFree
    - IsVirtual
    - SELECTTRACE
    - OptimizationDisabled
    - sqlite3ExprAnd
    - sqlite3SelectDup
    linkageType: ''
    returnType: int
    signature: "int flattenSubquery(\n  Parse *pParse,       /* Parsing context */\n
      \ Select *p,           /* The parent or outer SELECT statement */\n  int iFrom,
      \          /* Index in p->pSrc->a[] of the inner subquery */\n  int isAgg            /*
      True if outer SELECT uses aggregate functions */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:129243,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:129249,1
    - Dst: sqlite3DbReallocOrFree
      Src: /src/nss/lib/sqlite/sqlite3.c:129258,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:129263,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - pConst
    - pColumn
    - pValue
    argTypes:
    - WhereConst*
    - Expr*
    - Expr*
    assertStmts:
    - condition: ( pColumn->op==TK_COLUMN )
      pos:
        line_end: 129242
        line_start: 129242
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pExpr->op==TK_COLUMN )
      pos:
        line_end: 129248
        line_start: 129248
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 129267
      start: 129237
    functionDepth: 9
    functionLinenumber: 129237
    functionLinenumberEnd: 129267
    functionName: constInsert
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - ExprHasProperty
    - sqlite3DbReallocOrFree
    linkageType: ''
    returnType: void
    signature: "void constInsert(\n  WhereConst *pConst,      /* The WhereConst into
      which we are inserting */\n  Expr *pColumn,           /* The COLUMN part of
      the constraint */\n  Expr *pValue             /* The VALUE part of the constraint
      */\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:129278,1
    - Dst: findConstInWhere
      Src: /src/nss/lib/sqlite/sqlite3.c:129280,1
    - Dst: findConstInWhere
      Src: /src/nss/lib/sqlite/sqlite3.c:129281,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:129287,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:129288,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:129290,1
    - Dst: sqlite3ExprIsConstant
      Src: /src/nss/lib/sqlite/sqlite3.c:129291,1
    - Dst: sqlite3IsBinary
      Src: /src/nss/lib/sqlite/sqlite3.c:129292,1
    - Dst: sqlite3BinaryCompareCollSeq
      Src: /src/nss/lib/sqlite/sqlite3.c:129292,1
    - Dst: constInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:129294,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:129297,1
    - Dst: sqlite3ExprIsConstant
      Src: /src/nss/lib/sqlite/sqlite3.c:129298,1
    - Dst: sqlite3IsBinary
      Src: /src/nss/lib/sqlite/sqlite3.c:129299,1
    - Dst: sqlite3BinaryCompareCollSeq
      Src: /src/nss/lib/sqlite/sqlite3.c:129299,1
    - Dst: constInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:129301,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 22
    argCount: 2
    argNames:
    - pConst
    - pExpr
    argTypes:
    - WhereConst*
    - Expr*
    assertStmts:
    - condition: ( pRight!=0 )
      pos:
        line_end: 129286
        line_start: 129286
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pLeft!=0 )
      pos:
        line_end: 129287
        line_start: 129287
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 129303
      start: 129275
    functionDepth: 10
    functionLinenumber: 129275
    functionLinenumberEnd: 129303
    functionName: findConstInWhere
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3ExprIsConstant
    - sqlite3BinaryCompareCollSeq
    - assert
    - findConstInWhere
    - constInsert
    - sqlite3IsBinary
    - ExprHasProperty
    linkageType: ''
    returnType: void
    signature: void findConstInWhere(WhereConst *pConst, Expr *pExpr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:129315,1
    - Dst: ExprClearProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:129324,1
    - Dst: ExprSetProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:129325,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:129326,1
    - Dst: sqlite3ExprDup
      Src: /src/nss/lib/sqlite/sqlite3.c:129327,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 2
    argNames:
    - pWalker
    - pExpr
    argTypes:
    - Walker*
    - Expr*
    assertStmts:
    - condition: ( pExpr->pLeft==0 )
      pos:
        line_end: 129325
        line_start: 129325
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 129331
      start: 129311
    functionDepth: 9
    functionLinenumber: 129311
    functionLinenumberEnd: 129331
    functionName: propagateConstantExprRewrite
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ExprSetProperty
    - ExprClearProperty
    - assert
    - sqlite3ExprDup
    - ExprHasProperty
    linkageType: ''
    returnType: int
    signature: int propagateConstantExprRewrite(Walker *pWalker, Expr *pExpr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: findConstInWhere
      Src: /src/nss/lib/sqlite/sqlite3.c:129382,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:129384,1
    - Dst: sqlite3WalkExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:129391,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:129392,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 2
    argNames:
    - pParse
    - p
    argTypes:
    - Parse*
    - Select*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129397
      start: 129370
    functionDepth: 11
    functionLinenumber: 129370
    functionLinenumberEnd: 129397
    functionName: propagateConstants
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - findConstInWhere
    - sqlite3WalkExpr
    - sqlite3DbFree
    linkageType: ''
    returnType: int
    signature: "int propagateConstants(\n  Parse *pParse,   /* The parsing context
      */\n  Select *p        /* The query in which to propagate constants */\n)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:129477,1
    - Dst: pushDownWhereTerms
      Src: /src/nss/lib/sqlite/sqlite3.c:129486,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:129491,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:129496,1
    - Dst: sqlite3ExprIsTableConstant
      Src: /src/nss/lib/sqlite/sqlite3.c:129499,1
    - Dst: sqlite3ExprDup
      Src: /src/nss/lib/sqlite/sqlite3.c:129503,1
    - Dst: unsetJoinExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:129504,1
    - Dst: substExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:129510,1
    - Dst: sqlite3ExprAnd
      Src: /src/nss/lib/sqlite/sqlite3.c:129512,1
    - Dst: sqlite3ExprAnd
      Src: /src/nss/lib/sqlite/sqlite3.c:129514,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 5
    argNames:
    - pParse
    - pSubq
    - pWhere
    - iCursor
    - isLeftJoin
    argTypes:
    - Parse*
    - Select*
    - Expr*
    - int
    - int
    assertStmts:
    - condition: ( (pX->selFlags & (SF_Recursive))==0 )
      pos:
        line_end: 129476
        line_start: 129476
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 129520
      start: 129453
    functionDepth: 13
    functionLinenumber: 129453
    functionLinenumberEnd: 129520
    functionName: pushDownWhereTerms
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3ExprIsTableConstant
    - substExpr
    - unsetJoinExpr
    - pushDownWhereTerms
    - assert
    - sqlite3ExprAnd
    - sqlite3ExprDup
    - ExprHasProperty
    linkageType: ''
    returnType: int
    signature: "int pushDownWhereTerms(\n  Parse *pParse,        /* Parse context
      (for malloc() and error reporting) */\n  Select *pSubq,        /* The subquery
      whose WHERE clause is to be augmented */\n  Expr *pWhere,         /* The WHERE
      clause of the outer query */\n  int iCursor,          /* Cursor number of the
      subquery */\n  int isLeftJoin        /* True if pSubq is the right term of a
      LEFT JOIN */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:129546,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:129547,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:129550,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:129553,1
    - Dst: sqlite3ExprListDup
      Src: /src/nss/lib/sqlite/sqlite3.c:129559,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:129560,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - db
    - pFunc
    - ppMinMax
    argTypes:
    - sqlite3*
    - Expr*
    - ExprList**
    assertStmts:
    - condition: ( *ppMinMax==0 )
      pos:
        line_end: 129545
        line_start: 129545
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pFunc->op==TK_AGG_FUNCTION )
      pos:
        line_end: 129546
        line_start: 129546
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOrderBy!=0 || db->mallocFailed )
      pos:
        line_end: 129559
        line_start: 129559
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 129563
      start: 129539
    functionDepth: 10
    functionLinenumber: 129539
    functionLinenumberEnd: 129563
    functionName: minMaxQuery
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3ExprListDup
    - sqlite3StrICmp
    linkageType: ''
    returnType: u8
    signature: u8 minMaxQuery(sqlite3 *db, Expr *pFunc, ExprList **ppMinMax)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:129580,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:129589,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:129591,1
    - Dst: NEVER
      Src: /src/nss/lib/sqlite/sqlite3.c:129593,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 19
    argCount: 2
    argNames:
    - p
    - pAggInfo
    argTypes:
    - Select*
    - AggInfo*
    assertStmts:
    - condition: ( !p->pGroupBy )
      pos:
        line_end: 129579
        line_start: 129579
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTab && !pTab->pSelect && pExpr )
      pos:
        line_end: 129588
        line_start: 129588
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 129598
      start: 129576
    functionDepth: 1
    functionLinenumber: 129576
    functionLinenumberEnd: 129598
    functionName: isSimpleCount
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - IsVirtual
    - NEVER
    linkageType: ''
    returnType: Table
    signature: Table *isSimpleCount(Select *p, AggInfo *pAggInfo)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:129613,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:129617,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - pParse
    - pFrom
    argTypes:
    - Parse*
    - struct SrcList_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129624
      start: 129607
    functionDepth: 10
    functionLinenumber: 129607
    functionLinenumberEnd: 129624
    functionName: sqlite3IndexedByLookup
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3ErrorMsg
    - sqlite3StrICmp
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3IndexedByLookup(Parse *pParse, struct SrcList_item
      *pFrom)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbMallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:129670,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:129672,1
    - Dst: sqlite3SrcListAppendFromTerm
      Src: /src/nss/lib/sqlite/sqlite3.c:129673,1
    - Dst: sqlite3ExprListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:129677,1
    - Dst: sqlite3Expr
      Src: /src/nss/lib/sqlite/sqlite3.c:129677,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:129687,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:129689,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 2
    argNames:
    - pWalker
    - p
    argTypes:
    - Walker*
    - Select*
    assertStmts:
    - condition: ( (p->selFlags & SF_Converted)==0 )
      pos:
        line_end: 129686
        line_start: 129686
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pNew->pPrior!=0 )
      pos:
        line_end: 129688
        line_start: 129688
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 129693
      start: 129646
    functionDepth: 13
    functionLinenumber: 129646
    functionLinenumberEnd: 129693
    functionName: convertCompoundSelectToSubquery
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - assert
    - sqlite3Expr
    - sqlite3SrcListAppendFromTerm
    - sqlite3ExprListAppend
    - sqlite3DbMallocZero
    linkageType: ''
    returnType: int
    signature: int convertCompoundSelectToSubquery(Walker *pWalker, Select *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:129702,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pParse
    - pFrom
    argTypes:
    - Parse*
    - struct SrcList_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129706
      start: 129700
    functionDepth: 10
    functionLinenumber: 129700
    functionLinenumberEnd: 129706
    functionName: cannotBeFunction
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ErrorMsg
    linkageType: ''
    returnType: int
    signature: int cannotBeFunction(Parse *pParse, struct SrcList_item *pFrom)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:129730,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - pWith
    - pItem
    - ppContext
    argTypes:
    - With*
    - struct SrcList_item*
    - With**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129738
      start: 129719
    functionDepth: 1
    functionLinenumber: 129719
    functionLinenumberEnd: 129738
    functionName: searchWith
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3StrICmp
    linkageType: ''
    returnType: struct Cte
    signature: "struct Cte *searchWith(\n  With *pWith,                    /* Current
      innermost WITH clause */\n  struct SrcList_item *pItem,     /* FROM clause element
      to resolve */\n  With **ppContext                /* OUT: WITH clause return
      value belongs to */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:129751,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:129753,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - pParse
    - pWith
    - bFree
    argTypes:
    - Parse*
    - With*
    - u8
    assertStmts:
    - condition: ( bFree==0 || (pParse->pWith==0 && pParse->pWithToFree==0) )
      pos:
        line_end: 129750
        line_start: 129750
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pParse->pWith!=pWith )
      pos:
        line_end: 129752
        line_start: 129752
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 129758
      start: 129750
    functionDepth: 0
    functionLinenumber: 129750
    functionLinenumberEnd: 129758
    functionName: sqlite3WithPush
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WithPush(Parse *pParse, With *pWith, u8 bFree)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:129784,1
    - Dst: searchWith
      Src: /src/nss/lib/sqlite/sqlite3.c:129786,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:129800,1
    - Dst: cannotBeFunction
      Src: /src/nss/lib/sqlite/sqlite3.c:129803,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:129805,1
    - Dst: sqlite3DbMallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:129806,1
    - Dst: sqlite3DbStrDup
      Src: /src/nss/lib/sqlite/sqlite3.c:129809,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:129811,1
    - Dst: sqlite3LogEst
      Src: /src/nss/lib/sqlite/sqlite3.c:129811,1
    - Dst: sqlite3SelectDup
      Src: /src/nss/lib/sqlite/sqlite3.c:129813,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:129815,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:129827,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:129839,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:129844,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:129852,1
    - Dst: sqlite3WalkSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:129854,1
    - Dst: sqlite3WalkSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:129857,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:129865,1
    - Dst: sqlite3ColumnsFromExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:129874,1
    - Dst: sqlite3WalkSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:129881,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 77
    argCount: 2
    argNames:
    - pWalker
    - pFrom
    argTypes:
    - Walker*
    - struct SrcList_item*
    assertStmts:
    - condition: "( pTab->nTabRef==1 || \n            ((pSel->selFlags&SF_Recursive)
        && pTab->nTabRef==2 ))"
      pos:
        line_end: 129844
        line_start: 129843
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pFrom->pTab==0 )
      pos:
        line_end: 129804
        line_start: 129804
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( 200==sqlite3LogEst(1048576) )
      pos:
        line_end: 129810
        line_start: 129810
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pFrom->pSelect )
      pos:
        line_end: 129814
        line_start: 129814
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPrior->pWith==0 )
      pos:
        line_end: 129851
        line_start: 129851
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pFrom->pTab==0 )
      pos:
        line_end: 129783
        line_start: 129783
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 129888
      start: 129775
    functionDepth: 12
    functionLinenumber: 129775
    functionLinenumberEnd: 129888
    functionName: withExpand
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - searchWith
    - sqlite3StrICmp
    - sqlite3WalkSelect
    - sqlite3DbStrDup
    - sqlite3LogEst
    - sqlite3SelectDup
    - assert
    - sqlite3ErrorMsg
    - cannotBeFunction
    - sqlite3ColumnsFromExprList
    - sqlite3DbMallocZero
    linkageType: ''
    returnType: int
    signature: "int withExpand(\n  Walker *pWalker, \n  struct SrcList_item *pFrom\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OK_IF_ALWAYS_TRUE
      Src: /src/nss/lib/sqlite/sqlite3.c:129902,1
    - Dst: findRightmost
      Src: /src/nss/lib/sqlite/sqlite3.c:129903,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:129905,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - pWalker
    - p
    argTypes:
    - Walker*
    - Select*
    assertStmts:
    - condition: ( pParse->pWith==pWith )
      pos:
        line_end: 129904
        line_start: 129904
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 129909
      start: 129900
    functionDepth: 1
    functionLinenumber: 129900
    functionLinenumberEnd: 129909
    functionName: selectPopWith
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - findRightmost
    - OK_IF_ALWAYS_TRUE
    linkageType: ''
    returnType: void
    signature: void selectPopWith(Walker *pWalker, Select *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:129925,1
    - Dst: sqlite3DbMallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:129926,1
    - Dst: sqlite3DbStrDup
      Src: /src/nss/lib/sqlite/sqlite3.c:129930,1
    - Dst: sqlite3MPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:129932,1
    - Dst: sqlite3ColumnsFromExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:129935,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:129937,1
    - Dst: sqlite3LogEst
      Src: /src/nss/lib/sqlite/sqlite3.c:129937,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - pParse
    - pFrom
    argTypes:
    - Parse*
    - struct SrcList_item*
    assertStmts:
    - condition: ( pSel )
      pos:
        line_end: 129924
        line_start: 129924
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( 200==sqlite3LogEst(1048576) )
      pos:
        line_end: 129936
        line_start: 129936
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 129941
      start: 129921
    functionDepth: 11
    functionLinenumber: 129921
    functionLinenumberEnd: 129941
    functionName: sqlite3ExpandSubquery
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3MPrintf
    - sqlite3DbStrDup
    - sqlite3LogEst
    - assert
    - sqlite3ColumnsFromExprList
    - sqlite3DbMallocZero
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExpandSubquery(Parse *pParse, struct SrcList_item
      *pFrom)
  - BBCount: 42
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:129982,1
    - Dst: sqlite3WithPush
      Src: /src/nss/lib/sqlite/sqlite3.c:129992,1
    - Dst: sqlite3SrcListAssignCursors
      Src: /src/nss/lib/sqlite/sqlite3.c:129997,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:130005,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:130007,1
    - Dst: withExpand
      Src: /src/nss/lib/sqlite/sqlite3.c:130009,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:130016,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:130017,1
    - Dst: sqlite3WalkSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:130018,1
    - Dst: sqlite3ExpandSubquery
      Src: /src/nss/lib/sqlite/sqlite3.c:130019,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:130023,1
    - Dst: sqlite3LocateTableItem
      Src: /src/nss/lib/sqlite/sqlite3.c:130024,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:130027,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:130033,1
    - Dst: cannotBeFunction
      Src: /src/nss/lib/sqlite/sqlite3.c:130033,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:130037,1
    - Dst: sqlite3ViewGetColumnNames
      Src: /src/nss/lib/sqlite/sqlite3.c:130040,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:130041,1
    - Dst: sqlite3SelectDup
      Src: /src/nss/lib/sqlite/sqlite3.c:130042,1
    - Dst: sqlite3WalkSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:130046,1
    - Dst: sqlite3IndexedByLookup
      Src: /src/nss/lib/sqlite/sqlite3.c:130054,1
    - Dst: sqliteProcessJoin
      Src: /src/nss/lib/sqlite/sqlite3.c:130061,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:130079,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:130080,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:130100,1
    - Dst: sqlite3ExprListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:130106,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:130120,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:130121,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:130121,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:130136,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:130139,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:130148,1
    - Dst: sqlite3MatchSpanName
      Src: /src/nss/lib/sqlite/sqlite3.c:130150,1
    - Dst: IsHiddenColumn
      Src: /src/nss/lib/sqlite/sqlite3.c:130160,1
    - Dst: tableAndColumnIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:130168,1
    - Dst: sqlite3IdListIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:130174,1
    - Dst: sqlite3Expr
      Src: /src/nss/lib/sqlite/sqlite3.c:130180,1
    - Dst: sqlite3Expr
      Src: /src/nss/lib/sqlite/sqlite3.c:130185,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:130186,1
    - Dst: sqlite3Expr
      Src: /src/nss/lib/sqlite/sqlite3.c:130188,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:130189,1
    - Dst: sqlite3MPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:130192,1
    - Dst: sqlite3ExprListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:130198,1
    - Dst: sqlite3TokenInit
      Src: /src/nss/lib/sqlite/sqlite3.c:130199,1
    - Dst: sqlite3ExprListSetName
      Src: /src/nss/lib/sqlite/sqlite3.c:130200,1
    - Dst: sqlite3DbStrDup
      Src: /src/nss/lib/sqlite/sqlite3.c:130204,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:130205,1
    - Dst: sqlite3MPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:130207,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:130209,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:130213,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:130218,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:130220,1
    - Dst: sqlite3ExprListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:130225,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:130230,1
    CyclomaticComplexity: 77
    EdgeCount: 77
    ICount: 183
    argCount: 2
    argNames:
    - pWalker
    - p
    argTypes:
    - Walker*
    - Select*
    assertStmts:
    - condition: ( p->pSrc!=0 )
      pos:
        line_end: 129981
        line_start: 129981
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pFrom->pSelect==0 )
      pos:
        line_end: 130040
        line_start: 130040
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pE->op!=TK_DOT || pE->pRight!=0 )
      pos:
        line_end: 130078
        line_start: 130078
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pE->op!=TK_DOT || pRight!=0 )
      pos:
        line_end: 130099
        line_start: 130099
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !ExprHasProperty(pE->pLeft, EP_IntValue) )
      pos:
        line_end: 130120
        line_start: 130120
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pSel!=0 )
      pos:
        line_end: 130015
        line_start: 130015
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pFrom->pTab==0 )
      pos:
        line_end: 130006
        line_start: 130006
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pFrom->fg.isRecursive==0 || pFrom->pTab!=0 )
      pos:
        line_end: 130004
        line_start: 130004
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pFrom->pTab==0 )
      pos:
        line_end: 130016
        line_start: 130016
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pFrom->pTab==0 )
      pos:
        line_end: 130022
        line_start: 130022
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( zName )
      pos:
        line_end: 130147
        line_start: 130147
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pE->op!=TK_DOT || (pE->pLeft!=0 && pE->pLeft->op==TK_ID) )
      pos:
        line_end: 130079
        line_start: 130079
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pE->pLeft!=0 )
      pos:
        line_end: 130119
        line_start: 130119
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 130238
      start: 129967
    functionDepth: 15
    functionLinenumber: 129967
    functionLinenumberEnd: 130238
    functionName: selectExpander
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3WalkSelect
    - withExpand
    - sqlite3LocateTableItem
    - sqlite3PExpr
    - IsHiddenColumn
    - sqlite3ViewGetColumnNames
    - sqlite3IndexedByLookup
    - testcase
    - sqlite3StrICmp
    - sqlite3DbStrDup
    - tableAndColumnIndex
    - sqlite3WithPush
    - assert
    - sqlite3TokenInit
    - sqlite3Expr
    - ExprHasProperty
    - sqlite3ExprListAppend
    - sqlite3SchemaToIndex
    - sqlite3MatchSpanName
    - sqlite3DbFree
    - sqliteProcessJoin
    - IsVirtual
    - sqlite3ExprListDelete
    - sqlite3MPrintf
    - sqlite3ExpandSubquery
    - sqlite3SrcListAssignCursors
    - sqlite3ExprListSetName
    - sqlite3ErrorMsg
    - sqlite3IdListIndex
    - cannotBeFunction
    - sqlite3SelectDup
    linkageType: ''
    returnType: int
    signature: int selectExpander(Walker *pWalker, Select *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER2
      Src: /src/nss/lib/sqlite/sqlite3.c:130250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - NotUsed
    - NotUsed2
    argTypes:
    - Walker*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130252
      start: 130249
    functionDepth: 1
    functionLinenumber: 130249
    functionLinenumberEnd: 130252
    functionName: sqlite3ExprWalkNoop
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER2
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ExprWalkNoop(Walker *NotUsed, Expr *NotUsed2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER2
      Src: /src/nss/lib/sqlite/sqlite3.c:130259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - NotUsed
    - NotUsed2
    argTypes:
    - Walker*
    - Select*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130261
      start: 130258
    functionDepth: 1
    functionLinenumber: 130258
    functionLinenumberEnd: 130261
    functionName: sqlite3SelectWalkNoop
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER2
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3SelectWalkNoop(Walker *NotUsed, Select *NotUsed2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER2
      Src: /src/nss/lib/sqlite/sqlite3.c:130269,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:130270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - NotUsed
    - NotUsed2
    argTypes:
    - Walker*
    - Select*
    assertStmts:
    - condition: ( 0 )
      pos:
        line_end: 130269
        line_start: 130269
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 130271
      start: 130268
    functionDepth: 1
    functionLinenumber: 130268
    functionLinenumberEnd: 130271
    functionName: sqlite3SelectWalkAssert2
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - UNUSED_PARAMETER2
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3SelectWalkAssert2(Walker *NotUsed, Select *NotUsed2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OK_IF_ALWAYS_TRUE
      Src: /src/nss/lib/sqlite/sqlite3.c:130290,1
    - Dst: sqlite3WalkSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:130293,1
    - Dst: sqlite3WalkSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:130298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - pParse
    - pSelect
    argTypes:
    - Parse*
    - Select*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130299
      start: 130286
    functionDepth: 7
    functionLinenumber: 130286
    functionLinenumberEnd: 130299
    functionName: sqlite3SelectExpand
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - OK_IF_ALWAYS_TRUE
    - sqlite3WalkSelect
    linkageType: ''
    returnType: void
    signature: void sqlite3SelectExpand(Parse *pParse, Select *pSelect)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:130322,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:130329,1
    - Dst: sqlite3SelectAddColumnTypeAndCollation
      Src: /src/nss/lib/sqlite/sqlite3.c:130335,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - pWalker
    - p
    argTypes:
    - Walker*
    - Select*
    assertStmts:
    - condition: ( p->selFlags & SF_Resolved )
      pos:
        line_end: 130321
        line_start: 130321
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTab!=0 )
      pos:
        line_end: 130328
        line_start: 130328
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 130339
      start: 130316
    functionDepth: 10
    functionLinenumber: 130316
    functionLinenumberEnd: 130339
    functionName: selectAddSubqueryTypeInfo
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3SelectAddColumnTypeAndCollation
    linkageType: ''
    returnType: void
    signature: void selectAddSubqueryTypeInfo(Walker *pWalker, Select *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3WalkSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:130357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - pParse
    - pSelect
    argTypes:
    - Parse*
    - Select*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130359
      start: 130350
    functionDepth: 7
    functionLinenumber: 130350
    functionLinenumberEnd: 130359
    functionName: sqlite3SelectAddTypeInfo
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3WalkSelect
    linkageType: ''
    returnType: void
    signature: void sqlite3SelectAddTypeInfo(Parse *pParse, Select *pSelect)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:130379,1
    - Dst: sqlite3SelectExpand
      Src: /src/nss/lib/sqlite/sqlite3.c:130382,1
    - Dst: sqlite3ResolveSelectNames
      Src: /src/nss/lib/sqlite/sqlite3.c:130384,1
    - Dst: sqlite3SelectAddTypeInfo
      Src: /src/nss/lib/sqlite/sqlite3.c:130386,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 3
    argNames:
    - pParse
    - p
    - pOuterNC
    argTypes:
    - Parse*
    - Select*
    - NameContext*
    assertStmts:
    - condition: ( p!=0 || pParse->db->mallocFailed )
      pos:
        line_end: 130378
        line_start: 130378
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 130387
      start: 130374
    functionDepth: 8
    functionLinenumber: 130374
    functionLinenumberEnd: 130387
    functionName: sqlite3SelectPrep
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 7
    functionsReached:
    - assert
    - sqlite3ResolveSelectNames
    - sqlite3SelectExpand
    - sqlite3SelectAddTypeInfo
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3SelectPrep(\n  Parse *pParse,         /* The
      parser context */\n  Select *p,             /* The SELECT statement being coded.
      */\n  NameContext *pOuterNC  /* Name context for container */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:130406,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:130408,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:130412,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:130416,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:130420,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:130420,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:130422,1
    - Dst: sqlite3KeyInfoFromExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:130426,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:130427,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 2
    argNames:
    - pParse
    - pAggInfo
    argTypes:
    - Parse*
    - AggInfo*
    assertStmts:
    - condition: ( nReg==pAggInfo->mxReg-pAggInfo->mnReg+1 )
      pos:
        line_end: 130405
        line_start: 130405
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( pAggInfo->aFunc[i].iMem>=pAggInfo->mnReg\n         && pAggInfo->aFunc[i].iMem<=pAggInfo->mxReg
        )"
      pos:
        line_end: 130412
        line_start: 130411
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !ExprHasProperty(pE, EP_xIsSelect) )
      pos:
        line_end: 130419
        line_start: 130419
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( pAggInfo->aCol[i].iMem>=pAggInfo->mnReg\n         && pAggInfo->aCol[i].iMem<=pAggInfo->mxReg
        )"
      pos:
        line_end: 130408
        line_start: 130407
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 130432
      start: 130397
    functionDepth: 12
    functionLinenumber: 130397
    functionLinenumberEnd: 130432
    functionName: resetAccumulator
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3KeyInfoFromExprList
    - sqlite3VdbeAddOp3
    - assert
    - sqlite3VdbeAddOp4
    - sqlite3ErrorMsg
    - ExprHasProperty
    linkageType: ''
    returnType: void
    signature: void resetAccumulator(Parse *pParse, AggInfo *pAggInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:130444,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:130444,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:130445,1
    - Dst: sqlite3VdbeAppendP4
      Src: /src/nss/lib/sqlite/sqlite3.c:130446,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pParse
    - pAggInfo
    argTypes:
    - Parse*
    - AggInfo*
    assertStmts:
    - condition: ( !ExprHasProperty(pF->pExpr, EP_xIsSelect) )
      pos:
        line_end: 130443
        line_start: 130443
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 130448
      start: 130438
    functionDepth: 12
    functionLinenumber: 130438
    functionLinenumberEnd: 130448
    functionName: finalizeAggFunctions
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - ExprHasProperty
    - sqlite3VdbeAppendP4
    - sqlite3VdbeAddOp2
    linkageType: ''
    returnType: void
    signature: void finalizeAggFunctions(Parse *pParse, AggInfo *pAggInfo)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:130474,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:130474,1
    - Dst: sqlite3GetTempRange
      Src: /src/nss/lib/sqlite/sqlite3.c:130477,1
    - Dst: sqlite3ExprCodeExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:130478,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:130484,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:130485,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:130486,1
    - Dst: codeDistinct
      Src: /src/nss/lib/sqlite/sqlite3.c:130487,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:130493,1
    - Dst: sqlite3ExprCollSeq
      Src: /src/nss/lib/sqlite/sqlite3.c:130495,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:130501,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:130503,1
    - Dst: sqlite3VdbeAppendP4
      Src: /src/nss/lib/sqlite/sqlite3.c:130504,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:130505,1
    - Dst: sqlite3ReleaseTempRange
      Src: /src/nss/lib/sqlite/sqlite3.c:130506,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:130508,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:130515,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:130515,1
    - Dst: sqlite3ExprCode
      Src: /src/nss/lib/sqlite/sqlite3.c:130518,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:130522,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 52
    argCount: 3
    argNames:
    - pParse
    - regAcc
    - pAggInfo
    argTypes:
    - Parse*
    - int
    - AggInfo*
    assertStmts:
    - condition: ( pList!=0 )
      pos:
        line_end: 130492
        line_start: 130492
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !ExprHasProperty(pF->pExpr, EP_xIsSelect) )
      pos:
        line_end: 130473
        line_start: 130473
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 130524
      start: 130460
    functionDepth: 17
    functionLinenumber: 130460
    functionLinenumberEnd: 130524
    functionName: updateAccumulator
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - codeDistinct
    - sqlite3VdbeAppendP4
    - sqlite3ExprCode
    - sqlite3ReleaseTempRange
    - sqlite3VdbeResolveLabel
    - sqlite3ExprCollSeq
    - sqlite3VdbeAddOp3
    - assert
    - sqlite3VdbeAddOp4
    - sqlite3VdbeChangeP5
    - sqlite3VdbeAddOp1
    - sqlite3ExprCodeExprList
    - sqlite3VdbeJumpHere
    - sqlite3GetTempRange
    - VdbeCoverage
    - ExprHasProperty
    - sqlite3VdbeMakeLabel
    - testcase
    linkageType: ''
    returnType: void
    signature: void updateAccumulator(Parse *pParse, int regAcc, AggInfo *pAggInfo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:130537,1
    - Dst: IsPrimaryKeyIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:130537,1
    - Dst: sqlite3VdbeExplain
      Src: /src/nss/lib/sqlite/sqlite3.c:130538,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 3
    argNames:
    - pParse
    - pTab
    - pIdx
    argTypes:
    - Parse*
    - Table*
    - Index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130544
      start: 130531
    functionDepth: 13
    functionLinenumber: 130531
    functionLinenumberEnd: 130544
    functionName: explainSimpleCount
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - HasRowid
    - sqlite3VdbeExplain
    - IsPrimaryKeyIndex
    linkageType: ''
    returnType: void
    signature: "void explainSimpleCount(\n  Parse *pParse,                  /* Parse
      context */\n  Table *pTab,                    /* Table being queried */\n  Index
      *pIdx                     /* Index used to optimize scan, or NULL */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprIsConstantOrGroupBy
      Src: /src/nss/lib/sqlite/sqlite3.c:130563,1
    - Dst: sqlite3ExprAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:130565,1
    - Dst: SWAP
      Src: /src/nss/lib/sqlite/sqlite3.c:130568,1
    - Dst: sqlite3ExprAnd
      Src: /src/nss/lib/sqlite/sqlite3.c:130569,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - pWalker
    - pExpr
    argTypes:
    - Walker*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130577
      start: 130560
    functionDepth: 13
    functionLinenumber: 130560
    functionLinenumberEnd: 130577
    functionName: havingToWhereExprCb
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - SWAP
    - sqlite3ExprAlloc
    - sqlite3ExprAnd
    - sqlite3ExprIsConstantOrGroupBy
    linkageType: ''
    returnType: int
    signature: int havingToWhereExprCb(Walker *pWalker, Expr *pExpr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:130596,1
    - Dst: sqlite3WalkExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:130600,1
    - Dst: SELECTTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:130603,1
    - Dst: sqlite3TreeViewSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:130604,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - pParse
    - p
    argTypes:
    - Parse*
    - Select*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130607
      start: 130594
    functionDepth: 12
    functionLinenumber: 130594
    functionLinenumberEnd: 130607
    functionName: havingToWhere
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3WalkExpr
    - sqlite3TreeViewSelect
    - SELECTTRACE
    linkageType: ''
    returnType: void
    signature: void havingToWhere(Parse *pParse, Select *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:130624,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:130625,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:130627,1
    - Dst: sqlite3ExprCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:130634,1
    - Dst: sqlite3ExprCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:130635,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 24
    argCount: 2
    argNames:
    - pTabList
    - pThis
    argTypes:
    - SrcList*
    - struct SrcList_item*
    assertStmts:
    - condition: ( pItem->pTab!=0 )
      pos:
        line_end: 130623
        line_start: 130623
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pThis->pTab!=0 )
      pos:
        line_end: 130624
        line_start: 130624
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 130644
      start: 130614
    functionDepth: 18
    functionLinenumber: 130614
    functionLinenumberEnd: 130644
    functionName: isSelfJoinView
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_stricmp
    - sqlite3ExprCompare
    linkageType: ''
    returnType: struct SrcList_item
    signature: "struct SrcList_item *isSelfJoinView(\n  SrcList *pTabList,           /*
      Search for self-joins in this FROM clause */\n  struct SrcList_item *pThis   /*
      Search for prior reference to this subquery */\n)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:130677,1
    - Dst: sqlite3SrcListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:130698,1
    - Dst: sqlite3DbMallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:130699,1
    - Dst: sqlite3ExprListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:130708,1
    - Dst: sqlite3ExprDup
      Src: /src/nss/lib/sqlite/sqlite3.c:130709,1
    - Dst: sqlite3ExprListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:130710,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:130711,1
    - Dst: sqlite3PExprAddSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:130712,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:130716,1
    - Dst: SELECTTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:130725,1
    - Dst: sqlite3TreeViewSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:130726,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 67
    argCount: 2
    argNames:
    - pParse
    - p
    argTypes:
    - Parse*
    - Select*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130730
      start: 130666
    functionDepth: 13
    functionLinenumber: 130666
    functionLinenumberEnd: 130730
    functionName: countOfViewOptimization
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3TreeViewSelect
    - SELECTTRACE
    - sqlite3PExprAddSelect
    - sqlite3PExpr
    - sqlite3SrcListDelete
    - sqlite3ExprDup
    - sqlite3_stricmp
    - sqlite3ExprListAppend
    - sqlite3ExprListDelete
    - sqlite3DbMallocZero
    linkageType: ''
    returnType: int
    signature: int countOfViewOptimization(Parse *pParse, Select *p)
  - BBCount: 83
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetVdbe
      Src: /src/nss/lib/sqlite/sqlite3.c:130770,1
    - Dst: sqlite3AuthCheck
      Src: /src/nss/lib/sqlite/sqlite3.c:130774,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:130775,1
    - Dst: SELECTTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:130777,1
    - Dst: sqlite3TreeViewSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:130779,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:130783,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:130784,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:130785,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:130786,1
    - Dst: IgnorableOrderby
      Src: /src/nss/lib/sqlite/sqlite3.c:130787,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:130788,1
    - Dst: sqlite3ExprListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:130794,1
    - Dst: sqlite3SelectPrep
      Src: /src/nss/lib/sqlite/sqlite3.c:130798,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:130802,1
    - Dst: SELECTTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:130805,1
    - Dst: sqlite3TreeViewSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:130806,1
    - Dst: generateColumnNames
      Src: /src/nss/lib/sqlite/sqlite3.c:130811,1
    - Dst: sqlite3WindowRewrite
      Src: /src/nss/lib/sqlite/sqlite3.c:130815,1
    - Dst: SELECTTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:130820,1
    - Dst: sqlite3TreeViewSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:130821,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:130827,1
    - Dst: sqlite3ExprImpliesNonNullRow
      Src: /src/nss/lib/sqlite/sqlite3.c:130843,1
    - Dst: OptimizationEnabled
      Src: /src/nss/lib/sqlite/sqlite3.c:130844,1
    - Dst: SELECTTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:130846,1
    - Dst: unsetJoinExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:130849,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:130858,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:130871,1
    - Dst: flattenSubquery
      Src: /src/nss/lib/sqlite/sqlite3.c:130900,1
    - Dst: IgnorableOrderby
      Src: /src/nss/lib/sqlite/sqlite3.c:130907,1
    - Dst: multiSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:130918,1
    - Dst: SELECTTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:130920,1
    - Dst: ExplainQueryPlanParent
      Src: /src/nss/lib/sqlite/sqlite3.c:130921,1
    - Dst: sqlite3TreeViewSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:130922,1
    - Dst: ExplainQueryPlanPop
      Src: /src/nss/lib/sqlite/sqlite3.c:130925,1
    - Dst: OptimizationEnabled
      Src: /src/nss/lib/sqlite/sqlite3.c:130936,1
    - Dst: propagateConstants
      Src: /src/nss/lib/sqlite/sqlite3.c:130937,1
    - Dst: SELECTTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:130941,1
    - Dst: sqlite3TreeViewSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:130942,1
    - Dst: SELECTTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:130946,1
    - Dst: OptimizationEnabled
      Src: /src/nss/lib/sqlite/sqlite3.c:130950,1
    - Dst: countOfViewOptimization
      Src: /src/nss/lib/sqlite/sqlite3.c:130951,1
    - Dst: sqlite3AuthCheck
      Src: /src/nss/lib/sqlite/sqlite3.c:130988,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:131002,1
    - Dst: sqlite3SelectExprHeight
      Src: /src/nss/lib/sqlite/sqlite3.c:131011,1
    - Dst: OptimizationEnabled
      Src: /src/nss/lib/sqlite/sqlite3.c:131016,1
    - Dst: pushDownWhereTerms
      Src: /src/nss/lib/sqlite/sqlite3.c:131017,1
    - Dst: SELECTTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:131022,1
    - Dst: sqlite3TreeViewSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:131024,1
    - Dst: SELECTTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:131028,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:131050,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:131053,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:131054,1
    - Dst: sqlite3SelectDestInit
      Src: /src/nss/lib/sqlite/sqlite3.c:131056,1
    - Dst: ExplainQueryPlan
      Src: /src/nss/lib/sqlite/sqlite3.c:131057,1
    - Dst: sqlite3Select
      Src: /src/nss/lib/sqlite/sqlite3.c:131058,1
    - Dst: sqlite3VdbeEndCoroutine
      Src: /src/nss/lib/sqlite/sqlite3.c:131062,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:131063,1
    - Dst: sqlite3ClearTempRegCache
      Src: /src/nss/lib/sqlite/sqlite3.c:131064,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:131076,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:131078,1
    - Dst: sqlite3VdbeAddOp0
      Src: /src/nss/lib/sqlite/sqlite3.c:131084,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:131084,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:131085,1
    - Dst: VdbeNoopComment
      Src: /src/nss/lib/sqlite/sqlite3.c:131087,1
    - Dst: isSelfJoinView
      Src: /src/nss/lib/sqlite/sqlite3.c:131089,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:131091,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:131092,1
    - Dst: sqlite3SelectDestInit
      Src: /src/nss/lib/sqlite/sqlite3.c:131095,1
    - Dst: ExplainQueryPlan
      Src: /src/nss/lib/sqlite/sqlite3.c:131096,1
    - Dst: sqlite3Select
      Src: /src/nss/lib/sqlite/sqlite3.c:131097,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:131100,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:131101,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:131102,1
    - Dst: sqlite3VdbeChangeP1
      Src: /src/nss/lib/sqlite/sqlite3.c:131103,1
    - Dst: sqlite3ClearTempRegCache
      Src: /src/nss/lib/sqlite/sqlite3.c:131104,1
    - Dst: sqlite3SelectExprHeight
      Src: /src/nss/lib/sqlite/sqlite3.c:131107,1
    - Dst: SELECTTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:131122,1
    - Dst: sqlite3TreeViewSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:131123,1
    - Dst: sqlite3ExprListCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:131143,1
    - Dst: sqlite3ExprListDup
      Src: /src/nss/lib/sqlite/sqlite3.c:131146,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:131150,1
    - Dst: SELECTTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:131154,1
    - Dst: sqlite3TreeViewSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:131155,1
    - Dst: sqlite3KeyInfoFromExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:131170,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:131174,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:131185,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:131190,1
    - Dst: computeLimitRegisters
      Src: /src/nss/lib/sqlite/sqlite3.c:131194,1
    - Dst: sqlite3VdbeChangeOpcode
      Src: /src/nss/lib/sqlite/sqlite3.c:131196,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:131204,1
    - Dst: sqlite3KeyInfoFromExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:131206,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:131208,1
    - Dst: sqlite3WindowCodeInit
      Src: /src/nss/lib/sqlite/sqlite3.c:131221,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:131224,1
    - Dst: SELECTTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:131228,1
    - Dst: sqlite3WhereBegin
      Src: /src/nss/lib/sqlite/sqlite3.c:131229,1
    - Dst: sqlite3WhereOutputRowCount
      Src: /src/nss/lib/sqlite/sqlite3.c:131232,1
    - Dst: sqlite3WhereOutputRowCount
      Src: /src/nss/lib/sqlite/sqlite3.c:131233,1
    - Dst: sqlite3WhereIsDistinct
      Src: /src/nss/lib/sqlite/sqlite3.c:131235,1
    - Dst: sqlite3WhereIsDistinct
      Src: /src/nss/lib/sqlite/sqlite3.c:131236,1
    - Dst: sqlite3WhereIsOrdered
      Src: /src/nss/lib/sqlite/sqlite3.c:131239,1
    - Dst: sqlite3WhereOrderByLimitOptLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:131240,1
    - Dst: sqlite3VdbeChangeToNoop
      Src: /src/nss/lib/sqlite/sqlite3.c:131251,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:131254,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:131257,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:131258,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:131259,1
    - Dst: sqlite3WindowCodeStep
      Src: /src/nss/lib/sqlite/sqlite3.c:131262,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:131264,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:131265,1
    - Dst: VdbeNoopComment
      Src: /src/nss/lib/sqlite/sqlite3.c:131266,1
    - Dst: selectInnerLoop
      Src: /src/nss/lib/sqlite/sqlite3.c:131268,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:131269,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:131270,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:131271,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:131272,1
    - Dst: selectInnerLoop
      Src: /src/nss/lib/sqlite/sqlite3.c:131277,1
    - Dst: sqlite3WhereContinueLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:131278,1
    - Dst: sqlite3WhereBreakLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:131279,1
    - Dst: sqlite3WhereEnd
      Src: /src/nss/lib/sqlite/sqlite3.c:131283,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:131314,1
    - Dst: sqlite3LogEst
      Src: /src/nss/lib/sqlite/sqlite3.c:131314,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:131317,1
    - Dst: sqlite3LogEst
      Src: /src/nss/lib/sqlite/sqlite3.c:131317,1
    - Dst: sqlite3ExprListCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:131329,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:131334,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:131340,1
    - Dst: VVA_ONLY
      Src: /src/nss/lib/sqlite/sqlite3.c:131344,1
    - Dst: sqlite3ExprAnalyzeAggList
      Src: /src/nss/lib/sqlite/sqlite3.c:131348,1
    - Dst: sqlite3ExprAnalyzeAggList
      Src: /src/nss/lib/sqlite/sqlite3.c:131349,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:131352,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:131353,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:131354,1
    - Dst: havingToWhere
      Src: /src/nss/lib/sqlite/sqlite3.c:131355,1
    - Dst: sqlite3ExprAnalyzeAggregates
      Src: /src/nss/lib/sqlite/sqlite3.c:131358,1
    - Dst: minMaxQuery
      Src: /src/nss/lib/sqlite/sqlite3.c:131362,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:131367,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:131367,1
    - Dst: sqlite3ExprAnalyzeAggList
      Src: /src/nss/lib/sqlite/sqlite3.c:131369,1
    - Dst: SELECTTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:131377,1
    - Dst: sqlite3TreeViewSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:131378,1
    - Dst: sqlite3DebugPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:131380,1
    - Dst: sqlite3TreeViewExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:131382,1
    - Dst: sqlite3DebugPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:131385,1
    - Dst: sqlite3TreeViewExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:131387,1
    - Dst: sqlite3KeyInfoFromExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:131413,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:131414,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:131423,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:131425,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:131430,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:131431,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:131432,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:131439,1
    - Dst: SELECTTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:131440,1
    - Dst: sqlite3WhereBegin
      Src: /src/nss/lib/sqlite/sqlite3.c:131441,1
    - Dst: sqlite3WhereIsOrdered
      Src: /src/nss/lib/sqlite/sqlite3.c:131445,1
    - Dst: explainTempTable
      Src: /src/nss/lib/sqlite/sqlite3.c:131462,1
    - Dst: sqlite3GetTempRange
      Src: /src/nss/lib/sqlite/sqlite3.c:131476,1
    - Dst: sqlite3ExprCodeExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:131477,1
    - Dst: sqlite3ExprCodeGetColumnOfTable
      Src: /src/nss/lib/sqlite/sqlite3.c:131483,1
    - Dst: sqlite3GetTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:131488,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:131489,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:131490,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:131491,1
    - Dst: sqlite3ReleaseTempRange
      Src: /src/nss/lib/sqlite/sqlite3.c:131492,1
    - Dst: sqlite3WhereEnd
      Src: /src/nss/lib/sqlite/sqlite3.c:131493,1
    - Dst: sqlite3GetTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:131495,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:131496,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:131497,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:131498,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:131498,1
    - Dst: OptimizationEnabled
      Src: /src/nss/lib/sqlite/sqlite3.c:131509,1
    - Dst: sqlite3WhereIsSorted
      Src: /src/nss/lib/sqlite/sqlite3.c:131510,1
    - Dst: sqlite3VdbeChangeToNoop
      Src: /src/nss/lib/sqlite/sqlite3.c:131513,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:131521,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:131523,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:131528,1
    - Dst: sqlite3ExprCode
      Src: /src/nss/lib/sqlite/sqlite3.c:131531,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:131534,1
    - Dst: sqlite3KeyInfoRef
      Src: /src/nss/lib/sqlite/sqlite3.c:131535,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:131536,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:131537,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:131537,1
    - Dst: sqlite3ExprCodeMove
      Src: /src/nss/lib/sqlite/sqlite3.c:131548,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:131549,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:131550,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:131551,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:131551,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:131552,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:131553,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:131554,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:131559,1
    - Dst: updateAccumulator
      Src: /src/nss/lib/sqlite/sqlite3.c:131560,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:131561,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:131562,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:131567,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:131568,1
    - Dst: sqlite3WhereEnd
      Src: /src/nss/lib/sqlite/sqlite3.c:131570,1
    - Dst: sqlite3VdbeChangeToNoop
      Src: /src/nss/lib/sqlite/sqlite3.c:131571,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:131576,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:131577,1
    - Dst: sqlite3VdbeGoto
      Src: /src/nss/lib/sqlite/sqlite3.c:131581,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:131590,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:131591,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:131592,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:131593,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:131594,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:131595,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:131596,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:131597,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:131598,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:131599,1
    - Dst: finalizeAggFunctions
      Src: /src/nss/lib/sqlite/sqlite3.c:131600,1
    - Dst: sqlite3ExprIfFalse
      Src: /src/nss/lib/sqlite/sqlite3.c:131601,1
    - Dst: selectInnerLoop
      Src: /src/nss/lib/sqlite/sqlite3.c:131602,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:131605,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:131606,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:131610,1
    - Dst: resetAccumulator
      Src: /src/nss/lib/sqlite/sqlite3.c:131611,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:131612,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:131613,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:131614,1
    - Dst: isSimpleCount
      Src: /src/nss/lib/sqlite/sqlite3.c:131620,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:131634,1
    - Dst: sqlite3CodeVerifySchema
      Src: /src/nss/lib/sqlite/sqlite3.c:131641,1
    - Dst: sqlite3TableLock
      Src: /src/nss/lib/sqlite/sqlite3.c:131642,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:131653,1
    - Dst: sqlite3PrimaryKeyIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:131653,1
    - Dst: sqlite3KeyInfoOfIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:131665,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/nss/lib/sqlite/sqlite3.c:131669,1
    - Dst: sqlite3VdbeChangeP4
      Src: /src/nss/lib/sqlite/sqlite3.c:131671,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:131673,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:131674,1
    - Dst: explainSimpleCount
      Src: /src/nss/lib/sqlite/sqlite3.c:131675,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:131692,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:131700,1
    - Dst: resetAccumulator
      Src: /src/nss/lib/sqlite/sqlite3.c:131701,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:131708,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:131709,1
    - Dst: SELECTTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:131711,1
    - Dst: sqlite3WhereBegin
      Src: /src/nss/lib/sqlite/sqlite3.c:131712,1
    - Dst: updateAccumulator
      Src: /src/nss/lib/sqlite/sqlite3.c:131717,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:131718,1
    - Dst: sqlite3WhereIsOrdered
      Src: /src/nss/lib/sqlite/sqlite3.c:131719,1
    - Dst: sqlite3VdbeGoto
      Src: /src/nss/lib/sqlite/sqlite3.c:131720,1
    - Dst: sqlite3WhereBreakLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:131720,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:131721,1
    - Dst: sqlite3WhereEnd
      Src: /src/nss/lib/sqlite/sqlite3.c:131724,1
    - Dst: finalizeAggFunctions
      Src: /src/nss/lib/sqlite/sqlite3.c:131725,1
    - Dst: sqlite3ExprIfFalse
      Src: /src/nss/lib/sqlite/sqlite3.c:131729,1
    - Dst: selectInnerLoop
      Src: /src/nss/lib/sqlite/sqlite3.c:131730,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:131733,1
    - Dst: explainTempTable
      Src: /src/nss/lib/sqlite/sqlite3.c:131738,1
    - Dst: explainTempTable
      Src: /src/nss/lib/sqlite/sqlite3.c:131745,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:131747,1
    - Dst: generateSortTail
      Src: /src/nss/lib/sqlite/sqlite3.c:131748,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:131753,1
    - Dst: sqlite3ExprListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:131763,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:131764,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:131765,1
    - Dst: SELECTTRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:131767,1
    - Dst: ExplainQueryPlanParent
      Src: /src/nss/lib/sqlite/sqlite3.c:131768,1
    - Dst: sqlite3TreeViewSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:131769,1
    - Dst: ExplainQueryPlanPop
      Src: /src/nss/lib/sqlite/sqlite3.c:131772,1
    CyclomaticComplexity: 159
    EdgeCount: 159
    ICount: 530
    argCount: 3
    argNames:
    - pParse
    - p
    - pDest
    argTypes:
    - Parse*
    - Select*
    - SelectDest*
    assertStmts:
    - condition: ( p->pEList!=0 )
      pos:
        line_end: 130801
        line_start: 130801
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pHaving==p->pHaving )
      pos:
        line_end: 131352
        line_start: 131352
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->pOrderBy==0 || pDest->eDest!=SRT_DistFifo )
      pos:
        line_end: 130782
        line_start: 130782
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sDistinct.isTnct )
      pos:
        line_end: 131149
        line_start: 131149
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->pEList==pEList )
      pos:
        line_end: 131746
        line_start: 131746
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pItem->addrFillSub==0 )
      pos:
        line_end: 131075
        line_start: 131075
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->pOrderBy==0 || pDest->eDest!=SRT_DistQueue )
      pos:
        line_end: 130784
        line_start: 130784
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !ExprHasProperty(sAggInfo.aFunc[i].pExpr, EP_xIsSelect) )
      pos:
        line_end: 131366
        line_start: 131366
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPrior->pSelect!=0 )
      pos:
        line_end: 131091
        line_start: 131091
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "(pDest->eDest==SRT_Exists || pDest->eDest==SRT_Union || \n           pDest->eDest==SRT_Except
        || pDest->eDest==SRT_Discard ||\n           pDest->eDest==SRT_Queue  || pDest->eDest==SRT_DistFifo
        ||\n           pDest->eDest==SRT_DistQueue || pDest->eDest==SRT_Fifo)"
      pos:
        line_end: 130790
        line_start: 130787
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pSub->pGroupBy==0 )
      pos:
        line_end: 130870
        line_start: 130870
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pWhere==p->pWhere )
      pos:
        line_end: 131351
        line_start: 131351
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->pOrderBy==0 || pDest->eDest!=SRT_Queue )
      pos:
        line_end: 130785
        line_start: 130785
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( 66==sqlite3LogEst(100) )
      pos:
        line_end: 131313
        line_start: 131313
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( 0==sqlite3LogEst(1) )
      pos:
        line_end: 131316
        line_start: 131316
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pGroupBy==p->pGroupBy )
      pos:
        line_end: 131353
        line_start: 131353
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( minMaxFlag==WHERE_ORDERBY_NORMAL || pMinMaxOrderBy!=0 )
      pos:
        line_end: 131707
        line_start: 131707
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->pGroupBy==0 )
      pos:
        line_end: 131699
        line_start: 131699
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->pOrderBy==0 || pDest->eDest!=SRT_Fifo )
      pos:
        line_end: 130783
        line_start: 130783
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->pEList==pEList )
      pos:
        line_end: 131253
        line_start: 131253
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pMinMaxOrderBy==0 || pMinMaxOrderBy->nExpr==1 )
      pos:
        line_end: 131708
        line_start: 131708
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pItem->addrFillSub==0 )
      pos:
        line_end: 131001
        line_start: 131001
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( WHERE_USE_LIMIT==SF_FixedLimit )
      pos:
        line_end: 131223
        line_start: 131223
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 131774
      start: 130746
    functionDepth: 23
    functionLinenumber: 130746
    functionLinenumberEnd: 131774
    functionName: sqlite3Select
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 9
    functionsReached:
    - sqlite3ExprCode
    - sqlite3ExprCodeGetColumnOfTable
    - multiSelect
    - sqlite3TreeViewExpr
    - sqlite3VdbeJumpHere
    - sqlite3ExprCodeExprList
    - sqlite3VdbeAddOp0
    - sqlite3AuthCheck
    - explainSimpleCount
    - computeLimitRegisters
    - sqlite3WhereEnd
    - sqlite3Select
    - sqlite3WhereOrderByLimitOptLabel
    - sqlite3VdbeAddOp4
    - sqlite3SelectExprHeight
    - sqlite3VdbeChangeP4
    - sqlite3KeyInfoOfIndex
    - sqlite3ExprAnalyzeAggregates
    - sqlite3ReleaseTempReg
    - sqlite3VdbeChangeP5
    - sqlite3WhereBreakLabel
    - selectInnerLoop
    - sqlite3VdbeAddOp2
    - sqlite3VdbeResolveLabel
    - sqlite3WhereIsSorted
    - propagateConstants
    - sqlite3WhereIsOrdered
    - sqlite3ExprIfFalse
    - sqlite3VdbeEndCoroutine
    - VdbeComment
    - HasRowid
    - sqlite3VdbeGoto
    - sqlite3VdbeCurrentAddr
    - sqlite3GetTempReg
    - sqlite3VdbeAddOp4Int
    - sqlite3SelectPrep
    - sqlite3KeyInfoRef
    - sqlite3GetTempRange
    - unsetJoinExpr
    - sqlite3PrimaryKeyIndex
    - sqlite3ExprAnalyzeAggList
    - updateAccumulator
    - VdbeCoverage
    - sqlite3ExprListDelete
    - sqlite3WhereContinueLabel
    - minMaxQuery
    - finalizeAggFunctions
    - SELECTTRACE
    - countOfViewOptimization
    - sqlite3LogEst
    - sqlite3WindowCodeInit
    - sqlite3CodeVerifySchema
    - flattenSubquery
    - IgnorableOrderby
    - sqlite3VdbeChangeP1
    - sqlite3VdbeChangeToNoop
    - VdbeNoopComment
    - sqlite3VdbeAddOp3
    - sqlite3ExprListCompare
    - sqlite3TreeViewSelect
    - sqlite3ExprCodeMove
    - OptimizationEnabled
    - assert
    - generateSortTail
    - sqlite3WhereIsDistinct
    - ExprHasProperty
    - sqlite3WindowCodeStep
    - sqlite3ReleaseTempRange
    - VVA_ONLY
    - sqlite3VdbeAddOp1
    - sqlite3VdbeChangeOpcode
    - sqlite3SelectDestInit
    - resetAccumulator
    - sqlite3ErrorMsg
    - sqlite3VdbeMakeLabel
    - sqlite3ExprListDup
    - ExplainQueryPlanPop
    - havingToWhere
    - sqlite3DebugPrintf
    - sqlite3GetVdbe
    - sqlite3WindowRewrite
    - memset
    - sqlite3SchemaToIndex
    - ExplainQueryPlan
    - isSelfJoinView
    - sqlite3WhereBegin
    - isSimpleCount
    - sqlite3ExprImpliesNonNullRow
    - ExplainQueryPlanParent
    - sqlite3WhereOutputRowCount
    - sqlite3DbFree
    - sqlite3ClearTempRegCache
    - explainTempTable
    - sqlite3KeyInfoFromExprList
    - sqlite3TableLock
    - pushDownWhereTerms
    - generateColumnNames
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Select(\n  Parse *pParse,         /* The parser
      context */\n  Select *p,             /* The SELECT statement being coded. */\n
      \ SelectDest *pDest      /* What to do with the query results */\n)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_realloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:131836,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:131847,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:131852,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:131853,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:131867,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:131868,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:131870,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 50
    argCount: 4
    argNames:
    - pArg
    - nCol
    - argv
    - colv
    argTypes:
    - void*
    - int
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131881
      start: 131819
    functionDepth: 10
    functionLinenumber: 131819
    functionLinenumberEnd: 131881
    functionName: sqlite3_get_table_cb
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - sqlite3_malloc64
    - sqlite3_realloc64
    - sqlite3_mprintf
    - sqlite3Strlen30
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int sqlite3_get_table_cb(void *pArg, int nCol, char **argv, char **colv)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/nss/lib/sqlite/sqlite3.c:131905,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:131917,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/sqlite/sqlite3.c:131923,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:131924,1
    - Dst: SQLITE_INT_TO_PTR
      Src: /src/nss/lib/sqlite/sqlite3.c:131925,1
    - Dst: sqlite3_free_table
      Src: /src/nss/lib/sqlite/sqlite3.c:131927,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:131930,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:131931,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:131933,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:131938,1
    - Dst: sqlite3_free_table
      Src: /src/nss/lib/sqlite/sqlite3.c:131940,1
    - Dst: sqlite3_realloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:131945,1
    - Dst: sqlite3_free_table
      Src: /src/nss/lib/sqlite/sqlite3.c:131947,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 57
    argCount: 6
    argNames:
    - db
    - zSql
    - pazResult
    - pnRow
    - pnColumn
    - pzErrMsg
    argTypes:
    - sqlite3*
    - char*
    - char***
    - int*
    - int*
    - char**
    assertStmts:
    - condition: ( sizeof(res.azResult[0])>= sizeof(res.nData) )
      pos:
        line_end: 131923
        line_start: 131923
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 131957
      start: 131893
    functionDepth: 28
    functionLinenumber: 131893
    functionLinenumberEnd: 131957
    functionName: sqlite3_get_table
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_malloc64
    - sqlite3SafetyCheckOk
    - sqlite3_realloc64
    - assert
    - sqlite3_mprintf
    - SQLITE_INT_TO_PTR
    - sqlite3_free_table
    - sqlite3_exec
    - sqlite3_free
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_get_table(\n  sqlite3 *db,                /* The
      database on which the SQL executes */\n  const char *zSql,           /* The
      SQL to be executed */\n  char ***pazResult,          /* Write the result table
      here */\n  int *pnRow,                 /* Write the number of rows in the result
      here */\n  int *pnColumn,              /* Write the number of columns of result
      here */\n  char **pzErrMsg             /* Write error messages here */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:131968,1
    - Dst: SQLITE_PTR_TO_INT
      Src: /src/nss/lib/sqlite/sqlite3.c:131969,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:131970,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:131971,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - azResult
    argTypes:
    - char**
    assertStmts:
    - condition: ( azResult!=0 )
      pos:
        line_end: 131967
        line_start: 131967
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 131973
      start: 131962
    functionDepth: 3
    functionLinenumber: 131962
    functionLinenumberEnd: 131973
    functionName: sqlite3_free_table
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - SQLITE_PTR_TO_INT
    - sqlite3_free
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_free_table(\n  char **azResult            /* Result
      returned from sqlite3_get_table() */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:132002,1
    - Dst: sqlite3ExprListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:132003,1
    - Dst: sqlite3SelectDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:132004,1
    - Dst: sqlite3IdListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:132005,1
    - Dst: sqlite3UpsertDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:132006,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:132007,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:132009,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - db
    - pTriggerStep
    argTypes:
    - sqlite3*
    - TriggerStep*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132011
      start: 131997
    functionDepth: 13
    functionLinenumber: 131997
    functionLinenumberEnd: 132011
    functionName: sqlite3DeleteTriggerStep
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3IdListDelete
    - sqlite3SelectDelete
    - sqlite3DbFree
    - sqlite3ExprDelete
    - sqlite3UpsertDelete
    - sqlite3ExprListDelete
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3DeleteTriggerStep(sqlite3 *db, TriggerStep *pTriggerStep)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:132037,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/nss/lib/sqlite/sqlite3.c:132037,1
    - Dst: sqliteHashFirst
      Src: /src/nss/lib/sqlite/sqlite3.c:132038,1
    - Dst: sqliteHashNext
      Src: /src/nss/lib/sqlite/sqlite3.c:132038,1
    - Dst: sqliteHashData
      Src: /src/nss/lib/sqlite/sqlite3.c:132039,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:132041,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - pParse
    - pTab
    argTypes:
    - Parse*
    - Table*
    assertStmts:
    - condition: ( sqlite3SchemaMutexHeld(pParse->db, 0, pTmpSchema) )
      pos:
        line_end: 132036
        line_start: 132036
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 132050
      start: 132027
    functionDepth: 1
    functionLinenumber: 132027
    functionLinenumberEnd: 132050
    functionName: sqlite3TriggerList
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3StrICmp
    - sqliteHashNext
    - sqlite3SchemaMutexHeld
    - assert
    - sqliteHashData
    - sqliteHashFirst
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3TriggerList(Parse *pParse, Table *pTab)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:132080,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:132081,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:132082,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:132083,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:132087,1
    - Dst: sqlite3TwoPartName
      Src: /src/nss/lib/sqlite/sqlite3.c:132094,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:132112,1
    - Dst: sqlite3SrcListLookup
      Src: /src/nss/lib/sqlite/sqlite3.c:132121,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:132129,1
    - Dst: sqlite3FixInit
      Src: /src/nss/lib/sqlite/sqlite3.c:132130,1
    - Dst: sqlite3FixSrcList
      Src: /src/nss/lib/sqlite/sqlite3.c:132131,1
    - Dst: sqlite3SrcListLookup
      Src: /src/nss/lib/sqlite/sqlite3.c:132134,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:132150,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:132151,1
    - Dst: sqlite3NameFromToken
      Src: /src/nss/lib/sqlite/sqlite3.c:132157,1
    - Dst: sqlite3CheckObjectName
      Src: /src/nss/lib/sqlite/sqlite3.c:132158,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:132161,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/nss/lib/sqlite/sqlite3.c:132161,1
    - Dst: sqlite3HashFind
      Src: /src/nss/lib/sqlite/sqlite3.c:132163,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:132165,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:132167,1
    - Dst: sqlite3CodeVerifySchema
      Src: /src/nss/lib/sqlite/sqlite3.c:132168,1
    - Dst: sqlite3StrNICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:132175,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:132176,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:132184,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:132189,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:132196,1
    - Dst: sqlite3AuthCheck
      Src: /src/nss/lib/sqlite/sqlite3.c:132201,1
    - Dst: sqlite3AuthCheck
      Src: /src/nss/lib/sqlite/sqlite3.c:132204,1
    - Dst: SCHEMA_TABLE
      Src: /src/nss/lib/sqlite/sqlite3.c:132204,1
    - Dst: sqlite3DbMallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:132220,1
    - Dst: sqlite3DbStrDup
      Src: /src/nss/lib/sqlite/sqlite3.c:132224,1
    - Dst: sqlite3RenameTokenRemap
      Src: /src/nss/lib/sqlite/sqlite3.c:132230,1
    - Dst: sqlite3ExprDup
      Src: /src/nss/lib/sqlite/sqlite3.c:132234,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:132238,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:132242,1
    - Dst: sqlite3SrcListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:132243,1
    - Dst: sqlite3IdListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:132244,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:132245,1
    - Dst: sqlite3DeleteTrigger
      Src: /src/nss/lib/sqlite/sqlite3.c:132247,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:132249,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 135
    argCount: 10
    argNames:
    - pParse
    - pName1
    - pName2
    - tr_tm
    - op
    - pColumns
    - pTableName
    - pWhen
    - isTemp
    - noErr
    argTypes:
    - Parse*
    - Token*
    - Token*
    - int
    - int
    - IdList*
    - SrcList*
    - Expr*
    - int
    - int
    assertStmts:
    - condition: ( pName1!=0 )
      pos:
        line_end: 132079
        line_start: 132079
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pName2!=0 )
      pos:
        line_end: 132080
        line_start: 132080
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( op>0 && op<0xff )
      pos:
        line_end: 132082
        line_start: 132082
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pParse->pNewTrigger==0 )
      pos:
        line_end: 132237
        line_start: 132237
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pParse->pNewTrigger==pTrigger )
      pos:
        line_end: 132248
        line_start: 132248
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3SchemaMutexHeld(db, iDb, 0) )
      pos:
        line_end: 132160
        line_start: 132160
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( op==TK_INSERT || op==TK_UPDATE || op==TK_DELETE )
      pos:
        line_end: 132081
        line_start: 132081
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTableName->nSrc==1 )
      pos:
        line_end: 132128
        line_start: 132128
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !db->init.busy )
      pos:
        line_end: 132166
        line_start: 132166
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 132251
      start: 132060
    functionDepth: 13
    functionLinenumber: 132060
    functionLinenumberEnd: 132251
    functionName: sqlite3BeginTrigger
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DeleteTrigger
    - sqlite3ExprDup
    - sqlite3DbStrDup
    - assert
    - sqlite3HashFind
    - sqlite3SchemaToIndex
    - sqlite3DbMallocZero
    - sqlite3AuthCheck
    - sqlite3IdListDelete
    - sqlite3RenameTokenRemap
    - sqlite3SrcListLookup
    - sqlite3DbFree
    - sqlite3SchemaMutexHeld
    - sqlite3ExprDelete
    - sqlite3NameFromToken
    - sqlite3StrNICmp
    - SCHEMA_TABLE
    - sqlite3TwoPartName
    - sqlite3CheckObjectName
    - sqlite3FixSrcList
    - sqlite3SrcListDelete
    - sqlite3ErrorMsg
    - sqlite3FixInit
    - sqlite3CodeVerifySchema
    - IsVirtual
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3BeginTrigger(\n  Parse *pParse,      /* The
      parse context of the CREATE TRIGGER statement */\n  Token *pName1,      /* The
      name of the trigger */\n  Token *pName2,      /* The name of the trigger */\n
      \ int tr_tm,          /* One of TK_BEFORE, TK_AFTER, TK_INSTEAD */\n  int op,
      \            /* One of TK_INSERT, TK_UPDATE, TK_DELETE */\n  IdList *pColumns,
      \  /* column list if this is an UPDATE OF trigger */\n  SrcList *pTableName,/*
      The name of the table/view the trigger applies to */\n  Expr *pWhen,        /*
      WHEN clause */\n  int isTemp,         /* True if the TEMPORARY keyword is present
      */\n  int noErr           /* Suppress errors if the trigger already exists */\n)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: NEVER
      Src: /src/nss/lib/sqlite/sqlite3.c:132270,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:132272,1
    - Dst: sqlite3TokenInit
      Src: /src/nss/lib/sqlite/sqlite3.c:132278,1
    - Dst: sqlite3FixInit
      Src: /src/nss/lib/sqlite/sqlite3.c:132279,1
    - Dst: sqlite3FixTriggerStep
      Src: /src/nss/lib/sqlite/sqlite3.c:132280,1
    - Dst: sqlite3FixExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:132281,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:132288,1
    - Dst: sqlite3GetVdbe
      Src: /src/nss/lib/sqlite/sqlite3.c:132302,1
    - Dst: sqlite3BeginWriteOperation
      Src: /src/nss/lib/sqlite/sqlite3.c:132304,1
    - Dst: sqlite3DbStrNDup
      Src: /src/nss/lib/sqlite/sqlite3.c:132305,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:132306,1
    - Dst: sqlite3NestedParse
      Src: /src/nss/lib/sqlite/sqlite3.c:132307,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:132311,1
    - Dst: sqlite3ChangeCookie
      Src: /src/nss/lib/sqlite/sqlite3.c:132312,1
    - Dst: sqlite3VdbeAddParseSchemaOp
      Src: /src/nss/lib/sqlite/sqlite3.c:132313,1
    - Dst: sqlite3MPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:132314,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:132320,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/nss/lib/sqlite/sqlite3.c:132320,1
    - Dst: sqlite3HashInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:132321,1
    - Dst: sqlite3OomFault
      Src: /src/nss/lib/sqlite/sqlite3.c:132323,1
    - Dst: sqlite3HashFind
      Src: /src/nss/lib/sqlite/sqlite3.c:132326,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:132327,1
    - Dst: sqlite3DeleteTrigger
      Src: /src/nss/lib/sqlite/sqlite3.c:132334,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:132335,1
    - Dst: sqlite3DeleteTriggerStep
      Src: /src/nss/lib/sqlite/sqlite3.c:132336,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 54
    argCount: 3
    argNames:
    - pParse
    - pStepList
    - pAll
    argTypes:
    - Parse*
    - TriggerStep*
    - Token*
    assertStmts:
    - condition: ( sqlite3SchemaMutexHeld(db, iDb, 0) )
      pos:
        line_end: 132319
        line_start: 132319
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !db->init.busy )
      pos:
        line_end: 132287
        line_start: 132287
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTab!=0 )
      pos:
        line_end: 132326
        line_start: 132326
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( IN_RENAME_OBJECT || !pParse->pNewTrigger )
      pos:
        line_end: 132334
        line_start: 132334
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 132337
      start: 132257
    functionDepth: 15
    functionLinenumber: 132257
    functionLinenumberEnd: 132337
    functionName: sqlite3FinishTrigger
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DeleteTrigger
    - sqlite3FixExpr
    - sqlite3DeleteTriggerStep
    - sqlite3GetVdbe
    - testcase
    - sqlite3HashInsert
    - sqlite3FixTriggerStep
    - assert
    - sqlite3TokenInit
    - sqlite3VdbeAddParseSchemaOp
    - sqlite3HashFind
    - sqlite3ChangeCookie
    - sqlite3DbStrNDup
    - sqlite3SchemaToIndex
    - sqlite3BeginWriteOperation
    - sqlite3DbFree
    - sqlite3SchemaMutexHeld
    - sqlite3OomFault
    - NEVER
    - sqlite3NestedParse
    - sqlite3MPrintf
    - sqlite3FixInit
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3FinishTrigger(\n  Parse *pParse,          /*
      Parser context */\n  TriggerStep *pStepList, /* The triggered program */\n  Token
      *pAll             /* Token that describes the complete CREATE TRIGGER */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbSpanDup
      Src: /src/nss/lib/sqlite/sqlite3.c:132344,1
    - Dst: sqlite3Isspace
      Src: /src/nss/lib/sqlite/sqlite3.c:132346,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - db
    - zStart
    - zEnd
    argTypes:
    - sqlite3*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132348
      start: 132343
    functionDepth: 9
    functionLinenumber: 132343
    functionLinenumberEnd: 132348
    functionName: triggerSpanDup
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Isspace
    - sqlite3DbSpanDup
    linkageType: ''
    returnType: char
    signature: char *triggerSpanDup(sqlite3 *db, const char *zStart, const char *zEnd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbMallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:132363,1
    - Dst: sqlite3SelectDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:132365,1
    - Dst: triggerSpanDup
      Src: /src/nss/lib/sqlite/sqlite3.c:132371,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132373
      start: 132357
    functionDepth: 13
    functionLinenumber: 132357
    functionLinenumberEnd: 132373
    functionName: "TriggerStep *sqlite3TriggerSelectStep(\n  sqlite3 *db,                /*
      Database connection */\n  Select *pSelect,            /* The SELECT statement
      */\n  const char *zStart,         /* Start of SQL text */\n  const char *zEnd
      \           /* End of SQL text */\n)"
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - triggerSpanDup
    - sqlite3SelectDelete
    - sqlite3DbMallocZero
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE TriggerStep *sqlite3TriggerSelectStep(\n  sqlite3 *db,
      \               /* Database connection */\n  Select *pSelect,            /*
      The SELECT statement */\n  const char *zStart,         /* Start of SQL text
      */\n  const char *zEnd            /* End of SQL text */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbMallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:132391,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:132394,1
    - Dst: sqlite3Dequote
      Src: /src/nss/lib/sqlite/sqlite3.c:132395,1
    - Dst: triggerSpanDup
      Src: /src/nss/lib/sqlite/sqlite3.c:132398,1
    - Dst: sqlite3RenameTokenMap
      Src: /src/nss/lib/sqlite/sqlite3.c:132400,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 5
    argNames:
    - pParse
    - op
    - pName
    - zStart
    - zEnd
    argTypes:
    - Parse*
    - u8
    - Token*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132404
      start: 132381
    functionDepth: 10
    functionLinenumber: 132381
    functionLinenumberEnd: 132404
    functionName: triggerStepAllocate
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - triggerSpanDup
    - memcpy
    - sqlite3Dequote
    - sqlite3RenameTokenMap
    - sqlite3DbMallocZero
    linkageType: ''
    returnType: TriggerStep
    signature: "TriggerStep *triggerStepAllocate(\n  Parse *pParse,              /*
      Parser context */\n  u8 op,                      /* Trigger opcode */\n  Token
      *pName,               /* The target name */\n  const char *zStart,         /*
      Start of SQL text */\n  const char *zEnd            /* End of SQL text */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:132426,1
    - Dst: triggerStepAllocate
      Src: /src/nss/lib/sqlite/sqlite3.c:132428,1
    - Dst: sqlite3SelectDup
      Src: /src/nss/lib/sqlite/sqlite3.c:132434,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:132440,1
    - Dst: sqlite3IdListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:132441,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:132442,1
    - Dst: sqlite3UpsertDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:132443,1
    - Dst: sqlite3SelectDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:132445,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (pSelect != 0 || db->mallocFailed)
      pos:
        line_end: 132425
        line_start: 132425
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 132448
      start: 132413
    functionDepth: 13
    functionLinenumber: 132413
    functionLinenumberEnd: 132448
    functionName: "TriggerStep *sqlite3TriggerInsertStep(\n  Parse *pParse,      /*
      Parser */\n  Token *pTableName,  /* Name of the table into which we insert */\n
      \ IdList *pColumn,    /* List of columns in pTableName to insert into */\n  Select
      *pSelect,    /* A SELECT statement that supplies values */\n  u8 orconf,          /*
      The conflict algorithm (OE_Abort, OE_Replace, etc.) */\n  Upsert *pUpsert,    /*
      ON CONFLICT clauses for upsert */\n  const char *zStart, /* Start of SQL text
      */\n  const char *zEnd    /* End of SQL text */\n)"
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3IdListDelete
    - sqlite3SelectDelete
    - triggerStepAllocate
    - assert
    - sqlite3UpsertDelete
    - testcase
    - sqlite3SelectDup
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE TriggerStep *sqlite3TriggerInsertStep(\n  Parse *pParse,
      \     /* Parser */\n  Token *pTableName,  /* Name of the table into which we
      insert */\n  IdList *pColumn,    /* List of columns in pTableName to insert
      into */\n  Select *pSelect,    /* A SELECT statement that supplies values */\n
      \ u8 orconf,          /* The conflict algorithm (OE_Abort, OE_Replace, etc.)
      */\n  Upsert *pUpsert,    /* ON CONFLICT clauses for upsert */\n  const char
      *zStart, /* Start of SQL text */\n  const char *zEnd    /* End of SQL text */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: triggerStepAllocate
      Src: /src/nss/lib/sqlite/sqlite3.c:132467,1
    - Dst: sqlite3ExprListDup
      Src: /src/nss/lib/sqlite/sqlite3.c:132475,1
    - Dst: sqlite3ExprDup
      Src: /src/nss/lib/sqlite/sqlite3.c:132476,1
    - Dst: sqlite3ExprListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:132480,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:132481,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132483
      start: 132455
    functionDepth: 11
    functionLinenumber: 132455
    functionLinenumberEnd: 132483
    functionName: "TriggerStep *sqlite3TriggerUpdateStep(\n  Parse *pParse,          /*
      Parser */\n  Token *pTableName,   /* Name of the table to be updated */\n  ExprList
      *pEList,    /* The SET clause: list of column and new values */\n  Expr *pWhere,
      \       /* The WHERE clause */\n  u8 orconf,           /* The conflict algorithm.
      (OE_Abort, OE_Ignore, etc) */\n  const char *zStart,  /* Start of SQL text */\n
      \ const char *zEnd     /* End of SQL text */\n)"
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - triggerStepAllocate
    - sqlite3ExprListDup
    - sqlite3ExprDelete
    - sqlite3ExprDup
    - sqlite3ExprListDelete
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE TriggerStep *sqlite3TriggerUpdateStep(\n  Parse *pParse,
      \         /* Parser */\n  Token *pTableName,   /* Name of the table to be updated
      */\n  ExprList *pEList,    /* The SET clause: list of column and new values
      */\n  Expr *pWhere,        /* The WHERE clause */\n  u8 orconf,           /*
      The conflict algorithm. (OE_Abort, OE_Ignore, etc) */\n  const char *zStart,
      \ /* Start of SQL text */\n  const char *zEnd     /* End of SQL text */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: triggerStepAllocate
      Src: /src/nss/lib/sqlite/sqlite3.c:132500,1
    - Dst: sqlite3ExprDup
      Src: /src/nss/lib/sqlite/sqlite3.c:132506,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:132510,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132512
      start: 132490
    functionDepth: 11
    functionLinenumber: 132490
    functionLinenumberEnd: 132512
    functionName: "TriggerStep *sqlite3TriggerDeleteStep(\n  Parse *pParse,          /*
      Parser */\n  Token *pTableName,      /* The table from which rows are deleted
      */\n  Expr *pWhere,           /* The WHERE clause */\n  const char *zStart,
      \    /* Start of SQL text */\n  const char *zEnd        /* End of SQL text */\n)"
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ExprDup
    - sqlite3ExprDelete
    - triggerStepAllocate
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE TriggerStep *sqlite3TriggerDeleteStep(\n  Parse *pParse,
      \         /* Parser */\n  Token *pTableName,      /* The table from which rows
      are deleted */\n  Expr *pWhere,           /* The WHERE clause */\n  const char
      *zStart,     /* Start of SQL text */\n  const char *zEnd        /* End of SQL
      text */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DeleteTriggerStep
      Src: /src/nss/lib/sqlite/sqlite3.c:132519,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:132520,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:132521,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:132522,1
    - Dst: sqlite3IdListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:132523,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:132524,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - db
    - pTrigger
    argTypes:
    - sqlite3*
    - Trigger*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132525
      start: 132517
    functionDepth: 14
    functionLinenumber: 132517
    functionLinenumberEnd: 132525
    functionName: sqlite3DeleteTrigger
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 5
    functionsReached:
    - sqlite3DbFree
    - sqlite3IdListDelete
    - sqlite3DeleteTriggerStep
    - sqlite3ExprDelete
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3DeleteTrigger(sqlite3 *db, Trigger *pTrigger)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ReadSchema
      Src: /src/nss/lib/sqlite/sqlite3.c:132543,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:132547,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:132550,1
    - Dst: sqlite3BtreeHoldsAllMutexes
      Src: /src/nss/lib/sqlite/sqlite3.c:132550,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:132553,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:132554,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/nss/lib/sqlite/sqlite3.c:132554,1
    - Dst: sqlite3HashFind
      Src: /src/nss/lib/sqlite/sqlite3.c:132555,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:132560,1
    - Dst: sqlite3CodeVerifyNamedSchema
      Src: /src/nss/lib/sqlite/sqlite3.c:132562,1
    - Dst: sqlite3DropTriggerPtr
      Src: /src/nss/lib/sqlite/sqlite3.c:132567,1
    - Dst: sqlite3SrcListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:132570,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 3
    argNames:
    - pParse
    - pName
    - noErr
    argTypes:
    - Parse*
    - SrcList*
    - int
    assertStmts:
    - condition: ( zDb!=0 || sqlite3BtreeHoldsAllMutexes(db) )
      pos:
        line_end: 132549
        line_start: 132549
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pName->nSrc==1 )
      pos:
        line_end: 132546
        line_start: 132546
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3SchemaMutexHeld(db, j, 0) )
      pos:
        line_end: 132553
        line_start: 132553
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 132571
      start: 132535
    functionDepth: 14
    functionLinenumber: 132535
    functionLinenumberEnd: 132571
    functionName: sqlite3DropTrigger
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3StrICmp
    - sqlite3ReadSchema
    - sqlite3SchemaMutexHeld
    - assert
    - sqlite3HashFind
    - sqlite3SrcListDelete
    - sqlite3ErrorMsg
    - sqlite3CodeVerifyNamedSchema
    - sqlite3BtreeHoldsAllMutexes
    - sqlite3DropTriggerPtr
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3DropTrigger(Parse *pParse, SrcList *pName, int
      noErr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3HashFind
      Src: /src/nss/lib/sqlite/sqlite3.c:132578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pTrigger
    argTypes:
    - Trigger*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132579
      start: 132577
    functionDepth: 3
    functionLinenumber: 132577
    functionLinenumberEnd: 132579
    functionName: tableOfTrigger
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3HashFind
    linkageType: ''
    returnType: Table
    signature: Table *tableOfTrigger(Trigger *pTrigger)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SchemaToIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:132591,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:132592,1
    - Dst: tableOfTrigger
      Src: /src/nss/lib/sqlite/sqlite3.c:132593,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:132594,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:132595,1
    - Dst: SCHEMA_TABLE
      Src: /src/nss/lib/sqlite/sqlite3.c:132600,1
    - Dst: sqlite3AuthCheck
      Src: /src/nss/lib/sqlite/sqlite3.c:132602,1
    - Dst: sqlite3AuthCheck
      Src: /src/nss/lib/sqlite/sqlite3.c:132603,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:132611,1
    - Dst: sqlite3GetVdbe
      Src: /src/nss/lib/sqlite/sqlite3.c:132612,1
    - Dst: sqlite3NestedParse
      Src: /src/nss/lib/sqlite/sqlite3.c:132613,1
    - Dst: sqlite3ChangeCookie
      Src: /src/nss/lib/sqlite/sqlite3.c:132617,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:132618,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - pParse
    - pTrigger
    argTypes:
    - Parse*
    - Trigger*
    assertStmts:
    - condition: ( pTable )
      pos:
        line_end: 132593
        line_start: 132593
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTable->pSchema==pTrigger->pSchema || iDb==1 )
      pos:
        line_end: 132594
        line_start: 132594
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iDb>=0 && iDb<db->nDb )
      pos:
        line_end: 132591
        line_start: 132591
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTable!=0 )
      pos:
        line_end: 132610
        line_start: 132610
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 132620
      start: 132585
    functionDepth: 12
    functionLinenumber: 132585
    functionLinenumberEnd: 132620
    functionName: sqlite3DropTriggerPtr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3AuthCheck
    - sqlite3NestedParse
    - tableOfTrigger
    - SCHEMA_TABLE
    - assert
    - sqlite3VdbeAddOp4
    - sqlite3ChangeCookie
    - sqlite3GetVdbe
    - sqlite3SchemaToIndex
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3DropTriggerPtr(Parse *pParse, Trigger *pTrigger)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:132629,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/nss/lib/sqlite/sqlite3.c:132629,1
    - Dst: sqlite3HashInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:132631,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:132632,1
    - Dst: tableOfTrigger
      Src: /src/nss/lib/sqlite/sqlite3.c:132634,1
    - Dst: sqlite3DeleteTrigger
      Src: /src/nss/lib/sqlite/sqlite3.c:132639,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - db
    - iDb
    - zName
    argTypes:
    - sqlite3*
    - int
    - char*
    assertStmts:
    - condition: ( sqlite3SchemaMutexHeld(db, iDb, 0) )
      pos:
        line_end: 132628
        line_start: 132628
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 132642
      start: 132625
    functionDepth: 15
    functionLinenumber: 132625
    functionLinenumberEnd: 132642
    functionName: sqlite3UnlinkAndDeleteTrigger
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - ALWAYS
    - tableOfTrigger
    - sqlite3DeleteTrigger
    - sqlite3SchemaMutexHeld
    - assert
    - sqlite3HashInsert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3UnlinkAndDeleteTrigger(sqlite3 *db, int iDb,
      const char *zName)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NEVER
      Src: /src/nss/lib/sqlite/sqlite3.c:132655,1
    - Dst: sqlite3IdListIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:132657,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - pIdList
    - pEList
    argTypes:
    - IdList*
    - ExprList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132660
      start: 132653
    functionDepth: 2
    functionLinenumber: 132653
    functionLinenumberEnd: 132660
    functionName: checkColumnOverlap
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - NEVER
    - sqlite3IdListIndex
    linkageType: ''
    returnType: int
    signature: int checkColumnOverlap(IdList *pIdList, ExprList *pEList)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3TriggerList
      Src: /src/nss/lib/sqlite/sqlite3.c:132680,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:132682,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:132682,1
    - Dst: checkColumnOverlap
      Src: /src/nss/lib/sqlite/sqlite3.c:132684,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 5
    argNames:
    - pParse
    - pTab
    - op
    - pChanges
    - pMask
    argTypes:
    - Parse*
    - Table*
    - int
    - ExprList*
    - int*
    assertStmts:
    - condition: ( pList==0 || IsVirtual(pTab)==0 )
      pos:
        line_end: 132681
        line_start: 132681
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 132692
      start: 132668
    functionDepth: 3
    functionLinenumber: 132668
    functionLinenumberEnd: 132692
    functionName: sqlite3TriggersExist
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 3
    functionsReached:
    - assert
    - sqlite3TriggerList
    - checkColumnOverlap
    - IsVirtual
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3TriggersExist(\n  Parse *pParse,          /*
      Parse context */\n  Table *pTab,            /* The table the contains the triggers
      */\n  int op,                 /* one of TK_DELETE, TK_INSERT, TK_UPDATE */\n
      \ ExprList *pChanges,     /* Columns that change in an UPDATE statement */\n
      \ int *pMask              /* OUT: Mask of TRIGGER_BEFORE|TRIGGER_AFTER */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SrcListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:132712,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:132714,1
    - Dst: sqlite3DbStrDup
      Src: /src/nss/lib/sqlite/sqlite3.c:132715,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:132716,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:132719,1
    - Dst: sqlite3DbStrDup
      Src: /src/nss/lib/sqlite/sqlite3.c:132721,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - pParse
    - pStep
    argTypes:
    - Parse*
    - TriggerStep*
    assertStmts:
    - condition: ( pSrc->nSrc>0 )
      pos:
        line_end: 132713
        line_start: 132713
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iDb<db->nDb )
      pos:
        line_end: 132718
        line_start: 132718
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 132725
      start: 132704
    functionDepth: 12
    functionLinenumber: 132704
    functionLinenumberEnd: 132725
    functionName: targetSrcList
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3SrcListAppend
    - sqlite3SchemaToIndex
    - sqlite3DbStrDup
    linkageType: ''
    returnType: SrcList
    signature: "SrcList *targetSrcList(\n  Parse *pParse,       /* The parsing context
      */\n  TriggerStep *pStep   /* The trigger containing the target token */\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:132740,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:132741,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:132742,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:132758,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:132762,1
    - Dst: sqlite3MPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:132763,1
    - Dst: sqlite3Update
      Src: /src/nss/lib/sqlite/sqlite3.c:132770,1
    - Dst: targetSrcList
      Src: /src/nss/lib/sqlite/sqlite3.c:132771,1
    - Dst: sqlite3ExprListDup
      Src: /src/nss/lib/sqlite/sqlite3.c:132772,1
    - Dst: sqlite3ExprDup
      Src: /src/nss/lib/sqlite/sqlite3.c:132773,1
    - Dst: sqlite3Insert
      Src: /src/nss/lib/sqlite/sqlite3.c:132779,1
    - Dst: targetSrcList
      Src: /src/nss/lib/sqlite/sqlite3.c:132780,1
    - Dst: sqlite3SelectDup
      Src: /src/nss/lib/sqlite/sqlite3.c:132781,1
    - Dst: sqlite3IdListDup
      Src: /src/nss/lib/sqlite/sqlite3.c:132782,1
    - Dst: sqlite3UpsertDup
      Src: /src/nss/lib/sqlite/sqlite3.c:132784,1
    - Dst: sqlite3DeleteFrom
      Src: /src/nss/lib/sqlite/sqlite3.c:132789,1
    - Dst: targetSrcList
      Src: /src/nss/lib/sqlite/sqlite3.c:132790,1
    - Dst: sqlite3ExprDup
      Src: /src/nss/lib/sqlite/sqlite3.c:132791,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:132795,1
    - Dst: sqlite3SelectDup
      Src: /src/nss/lib/sqlite/sqlite3.c:132797,1
    - Dst: sqlite3SelectDestInit
      Src: /src/nss/lib/sqlite/sqlite3.c:132798,1
    - Dst: sqlite3Select
      Src: /src/nss/lib/sqlite/sqlite3.c:132799,1
    - Dst: sqlite3SelectDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:132800,1
    - Dst: sqlite3VdbeAddOp0
      Src: /src/nss/lib/sqlite/sqlite3.c:132805,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 3
    argNames:
    - pParse
    - pStepList
    - orconf
    argTypes:
    - Parse*
    - TriggerStep*
    - int
    assertStmts:
    - condition: ( pStepList )
      pos:
        line_end: 132740
        line_start: 132740
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pParse->pTriggerTab && pParse->pToplevel )
      pos:
        line_end: 132739
        line_start: 132739
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( v!=0 )
      pos:
        line_end: 132741
        line_start: 132741
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pStep->op==TK_SELECT )
      pos:
        line_end: 132794
        line_start: 132794
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pParse->okConstFactor==0 )
      pos:
        line_end: 132757
        line_start: 132757
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 132810
      start: 132731
    functionDepth: 24
    functionLinenumber: 132731
    functionLinenumberEnd: 132810
    functionName: codeTriggerProgram
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3MPrintf
    - targetSrcList
    - sqlite3DeleteFrom
    - sqlite3IdListDup
    - sqlite3Select
    - sqlite3ExprListDup
    - sqlite3Insert
    - sqlite3SelectDelete
    - assert
    - sqlite3VdbeAddOp4
    - sqlite3Update
    - sqlite3SelectDestInit
    - sqlite3UpsertDup
    - sqlite3ExprDup
    - sqlite3VdbeAddOp0
    - sqlite3SelectDup
    linkageType: ''
    returnType: int
    signature: "int codeTriggerProgram(\n  Parse *pParse,            /* The parser
      context */\n  TriggerStep *pStepList,   /* List of statements inside the trigger
      body */\n  int orconf                /* Conflict algorithm. (OE_Abort, etc)
      */  \n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - onError
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132827
      start: 132817
    functionDepth: 0
    functionLinenumber: 132817
    functionLinenumberEnd: 132827
    functionName: onErrorText
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *onErrorText(int onError)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:132836,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:132837,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:132843,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - pTo
    - pFrom
    argTypes:
    - Parse*
    - Parse*
    assertStmts:
    - condition: ( pFrom->zErrMsg==0 || pFrom->nErr )
      pos:
        line_end: 132835
        line_start: 132835
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTo->zErrMsg==0 || pTo->nErr )
      pos:
        line_end: 132836
        line_start: 132836
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 132845
      start: 132835
    functionDepth: 6
    functionLinenumber: 132835
    functionLinenumberEnd: 132845
    functionName: transferParseError
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3DbFree
    linkageType: ''
    returnType: void
    signature: void transferParseError(Parse *pTo, Parse *pFrom)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ParseToplevel
      Src: /src/nss/lib/sqlite/sqlite3.c:132857,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:132867,1
    - Dst: tableOfTrigger
      Src: /src/nss/lib/sqlite/sqlite3.c:132867,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:132868,1
    - Dst: sqlite3DbMallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:132873,1
    - Dst: sqlite3DbMallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:132877,1
    - Dst: sqlite3VdbeLinkSubProgram
      Src: /src/nss/lib/sqlite/sqlite3.c:132879,1
    - Dst: sqlite3StackAllocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:132887,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:132889,1
    - Dst: sqlite3GetVdbe
      Src: /src/nss/lib/sqlite/sqlite3.c:132899,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:132901,1
    - Dst: onErrorText
      Src: /src/nss/lib/sqlite/sqlite3.c:132902,1
    - Dst: sqlite3VdbeChangeP4
      Src: /src/nss/lib/sqlite/sqlite3.c:132911,1
    - Dst: sqlite3MPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:132912,1
    - Dst: sqlite3ExprDup
      Src: /src/nss/lib/sqlite/sqlite3.c:132921,1
    - Dst: sqlite3ResolveExprNames
      Src: /src/nss/lib/sqlite/sqlite3.c:132922,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:132925,1
    - Dst: sqlite3ExprIfFalse
      Src: /src/nss/lib/sqlite/sqlite3.c:132926,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:132928,1
    - Dst: codeTriggerProgram
      Src: /src/nss/lib/sqlite/sqlite3.c:132932,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:132936,1
    - Dst: sqlite3VdbeAddOp0
      Src: /src/nss/lib/sqlite/sqlite3.c:132938,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:132939,1
    - Dst: onErrorText
      Src: /src/nss/lib/sqlite/sqlite3.c:132939,1
    - Dst: transferParseError
      Src: /src/nss/lib/sqlite/sqlite3.c:132941,1
    - Dst: sqlite3VdbeTakeOpArray
      Src: /src/nss/lib/sqlite/sqlite3.c:132943,1
    - Dst: sqlite3VdbeDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:132950,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:132953,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:132954,1
    - Dst: sqlite3ParserReset
      Src: /src/nss/lib/sqlite/sqlite3.c:132955,1
    - Dst: sqlite3StackFree
      Src: /src/nss/lib/sqlite/sqlite3.c:132956,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 64
    argCount: 4
    argNames:
    - pParse
    - pTrigger
    - pTab
    - orconf
    argTypes:
    - Parse*
    - Trigger*
    - Table*
    - int
    assertStmts:
    - condition: ( pTop->pVdbe )
      pos:
        line_end: 132867
        line_start: 132867
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !pSubParse->pAinc       && !pSubParse->pZombieTab )
      pos:
        line_end: 132952
        line_start: 132952
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTrigger->zName==0 || pTab==tableOfTrigger(pTrigger) )
      pos:
        line_end: 132866
        line_start: 132866
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !pSubParse->pTriggerPrg && !pSubParse->nMaxArg )
      pos:
        line_end: 132953
        line_start: 132953
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 132959
      start: 132851
    functionDepth: 25
    functionLinenumber: 132851
    functionLinenumberEnd: 132959
    functionName: codeRowTrigger
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - tableOfTrigger
    - sqlite3VdbeTakeOpArray
    - sqlite3VdbeResolveLabel
    - sqlite3StackFree
    - onErrorText
    - sqlite3ExprIfFalse
    - sqlite3ExprDup
    - sqlite3GetVdbe
    - VdbeComment
    - sqlite3ParserReset
    - sqlite3ParseToplevel
    - sqlite3StackAllocZero
    - assert
    - memset
    - sqlite3VdbeAddOp0
    - sqlite3DbMallocZero
    - transferParseError
    - codeTriggerProgram
    - sqlite3ExprDelete
    - sqlite3VdbeChangeP4
    - sqlite3VdbeLinkSubProgram
    - sqlite3MPrintf
    - sqlite3ResolveExprNames
    - sqlite3VdbeMakeLabel
    - sqlite3VdbeDelete
    linkageType: ''
    returnType: TriggerPrg
    signature: "TriggerPrg *codeRowTrigger(\n  Parse *pParse,       /* Current parse
      context */\n  Trigger *pTrigger,   /* Trigger to code */\n  Table *pTab,         /*
      The table pTrigger is attached to */\n  int orconf           /* ON CONFLICT
      policy to code trigger program with */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ParseToplevel
      Src: /src/nss/lib/sqlite/sqlite3.c:132973,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:132976,1
    - Dst: tableOfTrigger
      Src: /src/nss/lib/sqlite/sqlite3.c:132976,1
    - Dst: codeRowTrigger
      Src: /src/nss/lib/sqlite/sqlite3.c:132989,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 4
    argNames:
    - pParse
    - pTrigger
    - pTab
    - orconf
    argTypes:
    - Parse*
    - Trigger*
    - Table*
    - int
    assertStmts:
    - condition: ( pTrigger->zName==0 || pTab==tableOfTrigger(pTrigger) )
      pos:
        line_end: 132975
        line_start: 132975
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 132993
      start: 132967
    functionDepth: 26
    functionLinenumber: 132967
    functionLinenumberEnd: 132993
    functionName: getRowTrigger
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - tableOfTrigger
    - sqlite3ParseToplevel
    - codeRowTrigger
    linkageType: ''
    returnType: TriggerPrg
    signature: "TriggerPrg *getRowTrigger(\n  Parse *pParse,       /* Current parse
      context */\n  Trigger *pTrigger,   /* Trigger to code */\n  Table *pTab,         /*
      The table trigger pTrigger is attached to */\n  int orconf           /* ON CONFLICT
      algorithm. */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetVdbe
      Src: /src/nss/lib/sqlite/sqlite3.c:133009,1
    - Dst: getRowTrigger
      Src: /src/nss/lib/sqlite/sqlite3.c:133011,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:133012,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:133019,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:133021,1
    - Dst: onErrorText
      Src: /src/nss/lib/sqlite/sqlite3.c:133022,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:133029,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 6
    argNames:
    - pParse
    - p
    - pTab
    - reg
    - orconf
    - ignoreJump
    argTypes:
    - Parse*
    - Trigger*
    - Table*
    - int
    - int
    - int
    assertStmts:
    - condition: ( pPrg || pParse->nErr || pParse->db->mallocFailed )
      pos:
        line_end: 133011
        line_start: 133011
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 133031
      start: 133001
    functionDepth: 27
    functionLinenumber: 133001
    functionLinenumberEnd: 133031
    functionName: sqlite3CodeRowTriggerDirect
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - sqlite3VdbeAddOp4
    - sqlite3VdbeChangeP5
    - onErrorText
    - sqlite3GetVdbe
    - VdbeComment
    - getRowTrigger
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3CodeRowTriggerDirect(\n  Parse *pParse,       /*
      Parse context */\n  Trigger *p,          /* Trigger to code */\n  Table *pTab,
      \        /* The table to code triggers from */\n  int reg,             /* Reg
      array containing OLD.* and NEW.* values */\n  int orconf,          /* ON CONFLICT
      policy */\n  int ignoreJump       /* Instruction to jump to for RAISE(IGNORE)
      */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:133086,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:133087,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:133088,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:133095,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:133096,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:133097,1
    - Dst: checkColumnOverlap
      Src: /src/nss/lib/sqlite/sqlite3.c:133103,1
    - Dst: sqlite3CodeRowTriggerDirect
      Src: /src/nss/lib/sqlite/sqlite3.c:133105,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 9
    argNames:
    - pParse
    - pTrigger
    - op
    - pChanges
    - tr_tm
    - pTab
    - reg
    - orconf
    - ignoreJump
    argTypes:
    - Parse*
    - Trigger*
    - int
    - ExprList*
    - int
    - Table*
    - int
    - int
    - int
    assertStmts:
    - condition: ( op==TK_UPDATE || op==TK_INSERT || op==TK_DELETE )
      pos:
        line_end: 133085
        line_start: 133085
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->pTabSchema!=0 )
      pos:
        line_end: 133095
        line_start: 133095
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->pSchema!=0 )
      pos:
        line_end: 133094
        line_start: 133094
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (op==TK_UPDATE)==(pChanges!=0) )
      pos:
        line_end: 133087
        line_start: 133087
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( tr_tm==TRIGGER_BEFORE || tr_tm==TRIGGER_AFTER )
      pos:
        line_end: 133086
        line_start: 133086
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( p->pSchema==p->pTabSchema \n         || p->pSchema==pParse->db->aDb[1].pSchema
        )"
      pos:
        line_end: 133097
        line_start: 133096
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 133108
      start: 133073
    functionDepth: 28
    functionLinenumber: 133073
    functionLinenumberEnd: 133108
    functionName: sqlite3CodeRowTrigger
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - assert
    - sqlite3CodeRowTriggerDirect
    - checkColumnOverlap
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3CodeRowTrigger(\n  Parse *pParse,       /* Parse
      context */\n  Trigger *pTrigger,   /* List of triggers on table pTab */\n  int
      op,              /* One of TK_UPDATE, TK_INSERT, TK_DELETE */\n  ExprList *pChanges,
      \ /* Changes list for any UPDATE OF triggers */\n  int tr_tm,           /* One
      of TRIGGER_BEFORE, TRIGGER_AFTER */\n  Table *pTab,         /* The table to
      code triggers from */\n  int reg,             /* The first in an array of registers
      (see above) */\n  int orconf,          /* ON CONFLICT policy */\n  int ignoreJump
      \      /* Instruction to jump to for RAISE(IGNORE) */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:133148,1
    - Dst: checkColumnOverlap
      Src: /src/nss/lib/sqlite/sqlite3.c:133151,1
    - Dst: getRowTrigger
      Src: /src/nss/lib/sqlite/sqlite3.c:133154,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 7
    argNames:
    - pParse
    - pTrigger
    - pChanges
    - isNew
    - tr_tm
    - pTab
    - orconf
    argTypes:
    - Parse*
    - Trigger*
    - ExprList*
    - int
    - int
    - Table*
    - int
    assertStmts:
    - condition: ( isNew==1 || isNew==0 )
      pos:
        line_end: 133147
        line_start: 133147
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 133162
      start: 133135
    functionDepth: 27
    functionLinenumber: 133135
    functionLinenumberEnd: 133162
    functionName: sqlite3TriggerColmask
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - getRowTrigger
    - checkColumnOverlap
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3TriggerColmask(\n  Parse *pParse,       /* Parse
      context */\n  Trigger *pTrigger,   /* List of triggers on table pTab */\n  ExprList
      *pChanges,  /* Changes list for any UPDATE OF triggers */\n  int isNew,           /*
      1 for new.* ref mask, 0 for old.* ref mask */\n  int tr_tm,           /* Mask
      of TRIGGER_BEFORE|TRIGGER_AFTER */\n  Table *pTab,         /* The table to code
      triggers from */\n  int orconf           /* Default ON CONFLICT policy for trigger
      steps */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:133229,1
    - Dst: ENC
      Src: /src/nss/lib/sqlite/sqlite3.c:133232,1
    - Dst: sqlite3VdbeDb
      Src: /src/nss/lib/sqlite/sqlite3.c:133232,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:133234,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:133235,1
    - Dst: sqlite3ValueFromExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:133236,1
    - Dst: sqlite3VdbeDb
      Src: /src/nss/lib/sqlite/sqlite3.c:133236,1
    - Dst: sqlite3VdbeAppendP4
      Src: /src/nss/lib/sqlite/sqlite3.c:133239,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:133244,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - v
    - pTab
    - i
    - iReg
    argTypes:
    - Vdbe*
    - Table*
    - int
    - int
    assertStmts:
    - condition: ( pTab!=0 )
      pos:
        line_end: 133228
        line_start: 133228
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( i<pTab->nCol )
      pos:
        line_end: 133234
        line_start: 133234
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 133247
      start: 133228
    functionDepth: 14
    functionLinenumber: 133228
    functionLinenumberEnd: 133247
    functionName: sqlite3ColumnDefault
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3ValueFromExpr
    - sqlite3VdbeAppendP4
    - sqlite3VdbeDb
    - assert
    - ENC
    - sqlite3VdbeAddOp1
    - VdbeComment
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ColumnDefault(Vdbe *v, Table *pTab, int i, int
      iReg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:133267,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:133271,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:133272,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:133273,1
    - Dst: sqlite3ExprReferencesUpdatedColumn
      Src: /src/nss/lib/sqlite/sqlite3.c:133274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - pIdx
    - iCol
    - aXRef
    - chngRowid
    argTypes:
    - Index*
    - int
    - int*
    - int
    assertStmts:
    - condition: ( iIdxCol!=XN_ROWID )
      pos:
        line_end: 133266
        line_start: 133266
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIdx->aColExpr->a[iCol].pExpr!=0 )
      pos:
        line_end: 133272
        line_start: 133272
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIdx->aColExpr!=0 )
      pos:
        line_end: 133271
        line_start: 133271
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iIdxCol==XN_EXPR )
      pos:
        line_end: 133270
        line_start: 133270
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 133276
      start: 133260
    functionDepth: 5
    functionLinenumber: 133260
    functionLinenumberEnd: 133276
    functionName: indexColumnIsBeingUpdated
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3ExprReferencesUpdatedColumn
    linkageType: ''
    returnType: int
    signature: "int indexColumnIsBeingUpdated(\n  Index *pIdx,      /* The index to
      check */\n  int iCol,         /* Which column of the index to check */\n  int
      *aXRef,       /* aXRef[j]>=0 if column j is being updated */\n  int chngRowid
      \    /* true if the rowid is being updated */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprReferencesUpdatedColumn
      Src: /src/nss/lib/sqlite/sqlite3.c:133296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - pIdx
    - aXRef
    - chngRowid
    argTypes:
    - Index*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133298
      start: 133290
    functionDepth: 5
    functionLinenumber: 133290
    functionLinenumberEnd: 133298
    functionName: indexWhereClauseMightChange
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ExprReferencesUpdatedColumn
    linkageType: ''
    returnType: int
    signature: "int indexWhereClauseMightChange(\n  Index *pIdx,      /* The index
      to check */\n  int *aXRef,       /* aXRef[j]>=0 if column j is being updated
      */\n  int chngRowid     /* true if the rowid is being updated */\n)"
  - BBCount: 83
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:133371,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:133376,1
    - Dst: sqlite3SrcListLookup
      Src: /src/nss/lib/sqlite/sqlite3.c:133380,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:133382,1
    - Dst: sqlite3TriggersExist
      Src: /src/nss/lib/sqlite/sqlite3.c:133388,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:133390,1
    - Dst: sqlite3LimitWhere
      Src: /src/nss/lib/sqlite/sqlite3.c:133403,1
    - Dst: sqlite3ViewGetColumnNames
      Src: /src/nss/lib/sqlite/sqlite3.c:133411,1
    - Dst: sqlite3IsReadOnly
      Src: /src/nss/lib/sqlite/sqlite3.c:133414,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:133425,1
    - Dst: sqlite3PrimaryKeyIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:133425,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:133426,1
    - Dst: sqlite3DbMallocRawNN
      Src: /src/nss/lib/sqlite/sqlite3.c:133444,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:133448,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:133453,1
    - Dst: sqlite3ResolveExprNames
      Src: /src/nss/lib/sqlite/sqlite3.c:133467,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:133471,1
    - Dst: sqlite3IsRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:133483,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:133488,1
    - Dst: sqlite3AuthCheck
      Src: /src/nss/lib/sqlite/sqlite3.c:133496,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:133507,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:133508,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:133509,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:133517,1
    - Dst: sqlite3FkRequired
      Src: /src/nss/lib/sqlite/sqlite3.c:133519,1
    - Dst: indexWhereClauseMightChange
      Src: /src/nss/lib/sqlite/sqlite3.c:133529,1
    - Dst: indexColumnIsBeingUpdated
      Src: /src/nss/lib/sqlite/sqlite3.c:133536,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:133553,1
    - Dst: sqlite3GetVdbe
      Src: /src/nss/lib/sqlite/sqlite3.c:133557,1
    - Dst: sqlite3VdbeCountChanges
      Src: /src/nss/lib/sqlite/sqlite3.c:133559,1
    - Dst: sqlite3BeginWriteOperation
      Src: /src/nss/lib/sqlite/sqlite3.c:133560,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:133563,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:133569,1
    - Dst: sqlite3AuthContextPush
      Src: /src/nss/lib/sqlite/sqlite3.c:133585,1
    - Dst: sqlite3MaterializeView
      Src: /src/nss/lib/sqlite/sqlite3.c:133593,1
    - Dst: sqlite3ResolveExprNames
      Src: /src/nss/lib/sqlite/sqlite3.c:133604,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:133610,1
    - Dst: updateVirtualTable
      Src: /src/nss/lib/sqlite/sqlite3.c:133611,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:133618,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:133628,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:133631,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:133632,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:133634,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:133641,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:133642,1
    - Dst: sqlite3VdbeSetP4KeyInfo
      Src: /src/nss/lib/sqlite/sqlite3.c:133643,1
    - Dst: sqlite3ExprIfFalse
      Src: /src/nss/lib/sqlite/sqlite3.c:133655,1
    - Dst: sqlite3WhereBegin
      Src: /src/nss/lib/sqlite/sqlite3.c:133668,1
    - Dst: sqlite3WhereOkOnePass
      Src: /src/nss/lib/sqlite/sqlite3.c:133681,1
    - Dst: sqlite3MultiWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:133683,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:133689,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:133689,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:133694,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:133698,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:133702,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:133711,1
    - Dst: sqlite3ExprCodeGetColumnOfTable
      Src: /src/nss/lib/sqlite/sqlite3.c:133712,1
    - Dst: sqlite3VdbeChangeToNoop
      Src: /src/nss/lib/sqlite/sqlite3.c:133715,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:133719,1
    - Dst: sqlite3IndexAffinityStr
      Src: /src/nss/lib/sqlite/sqlite3.c:133720,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/nss/lib/sqlite/sqlite3.c:133721,1
    - Dst: sqlite3WhereEnd
      Src: /src/nss/lib/sqlite/sqlite3.c:133727,1
    - Dst: sqlite3VdbeAddOp0
      Src: /src/nss/lib/sqlite/sqlite3.c:133740,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:133740,1
    - Dst: sqlite3OpenTableAndIndices
      Src: /src/nss/lib/sqlite/sqlite3.c:133742,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:133744,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:133750,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/nss/lib/sqlite/sqlite3.c:133751,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:133752,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:133755,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:133757,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:133758,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:133759,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:133761,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:133762,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:133762,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:133763,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/nss/lib/sqlite/sqlite3.c:133764,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:133765,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:133767,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:133769,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:133770,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:133771,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:133779,1
    - Dst: sqlite3ExprCode
      Src: /src/nss/lib/sqlite/sqlite3.c:133781,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:133782,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:133782,1
    - Dst: sqlite3FkOldmask
      Src: /src/nss/lib/sqlite/sqlite3.c:133788,1
    - Dst: sqlite3TriggerColmask
      Src: /src/nss/lib/sqlite/sqlite3.c:133789,1
    - Dst: MASKBIT32
      Src: /src/nss/lib/sqlite/sqlite3.c:133794,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:133797,1
    - Dst: sqlite3ExprCodeGetColumnOfTable
      Src: /src/nss/lib/sqlite/sqlite3.c:133798,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:133800,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:133804,1
    - Dst: sqlite3TriggerColmask
      Src: /src/nss/lib/sqlite/sqlite3.c:133821,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:133826,1
    - Dst: sqlite3ExprCode
      Src: /src/nss/lib/sqlite/sqlite3.c:133830,1
    - Dst: MASKBIT32
      Src: /src/nss/lib/sqlite/sqlite3.c:133831,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:133837,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:133838,1
    - Dst: sqlite3ExprCodeGetColumnOfTable
      Src: /src/nss/lib/sqlite/sqlite3.c:133839,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:133841,1
    - Dst: sqlite3TableAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:133850,1
    - Dst: sqlite3CodeRowTrigger
      Src: /src/nss/lib/sqlite/sqlite3.c:133851,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/nss/lib/sqlite/sqlite3.c:133861,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:133862,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:133864,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:133865,1
    - Dst: sqlite3ExprCodeGetColumnOfTable
      Src: /src/nss/lib/sqlite/sqlite3.c:133879,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:133888,1
    - Dst: sqlite3GenerateConstraintChecks
      Src: /src/nss/lib/sqlite/sqlite3.c:133889,1
    - Dst: sqlite3FkCheck
      Src: /src/nss/lib/sqlite/sqlite3.c:133895,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/nss/lib/sqlite/sqlite3.c:133901,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:133903,1
    - Dst: VdbeCoverageNeverTaken
      Src: /src/nss/lib/sqlite/sqlite3.c:133905,1
    - Dst: sqlite3GenerateRowIndexDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:133907,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:133918,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:133920,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:133925,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:133926,1
    - Dst: sqlite3VdbeAppendP4
      Src: /src/nss/lib/sqlite/sqlite3.c:133929,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:133933,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:133937,1
    - Dst: sqlite3FkCheck
      Src: /src/nss/lib/sqlite/sqlite3.c:133941,1
    - Dst: sqlite3CompleteInsertion
      Src: /src/nss/lib/sqlite/sqlite3.c:133945,1
    - Dst: sqlite3FkActions
      Src: /src/nss/lib/sqlite/sqlite3.c:133955,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:133962,1
    - Dst: sqlite3CodeRowTrigger
      Src: /src/nss/lib/sqlite/sqlite3.c:133965,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:133974,1
    - Dst: sqlite3WhereEnd
      Src: /src/nss/lib/sqlite/sqlite3.c:133975,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:133977,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:133978,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:133978,1
    - Dst: sqlite3VdbeGoto
      Src: /src/nss/lib/sqlite/sqlite3.c:133980,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:133982,1
    - Dst: sqlite3AutoincrementEnd
      Src: /src/nss/lib/sqlite/sqlite3.c:133989,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:133997,1
    - Dst: sqlite3VdbeSetNumCols
      Src: /src/nss/lib/sqlite/sqlite3.c:133998,1
    - Dst: sqlite3VdbeSetColName
      Src: /src/nss/lib/sqlite/sqlite3.c:133999,1
    - Dst: sqlite3AuthContextPop
      Src: /src/nss/lib/sqlite/sqlite3.c:134003,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:134004,1
    - Dst: sqlite3SrcListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:134005,1
    - Dst: sqlite3ExprListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:134006,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:134007,1
    - Dst: sqlite3ExprListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:134009,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:134010,1
    CyclomaticComplexity: 156
    EdgeCount: 156
    ICount: 411
    argCount: 8
    argNames:
    - pParse
    - pTabList
    - pChanges
    - pWhere
    - onError
    - pOrderBy
    - pLimit
    - pUpsert
    argTypes:
    - Parse*
    - SrcList*
    - ExprList*
    - Expr*
    - int
    - ExprList*
    - Expr*
    - Upsert*
    assertStmts:
    - condition: ( chngPk==0 || chngPk==1 )
      pos:
        line_end: 133508
        line_start: 133508
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPk->aiColumn[i]>=0 )
      pos:
        line_end: 133710
        line_start: 133710
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( aRegIdx[nAllIdx]==pParse->nMem )
      pos:
        line_end: 133568
        line_start: 133568
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (chngRowid & chngPk)==0 )
      pos:
        line_end: 133506
        line_start: 133506
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( regNew==regNewRowid+1 )
      pos:
        line_end: 133917
        line_start: 133917
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPk )
      pos:
        line_end: 133749
        line_start: 133749
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPk!=0 )
      pos:
        line_end: 133633
        line_start: 133633
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iCur!=iDataCur || !HasRowid(pTab) )
      pos:
        line_end: 133688
        line_start: 133688
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTrigger || tmask==0 )
      pos:
        line_end: 133389
        line_start: 133389
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( chngRowid==0 || chngRowid==1 )
      pos:
        line_end: 133507
        line_start: 133507
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTabList->nSrc==1 )
      pos:
        line_end: 133375
        line_start: 133375
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( chngKey || pTrigger || hasFK || regOldRowid==regNewRowid )
      pos:
        line_end: 133778
        line_start: 133778
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( regOldRowid>0 )
      pos:
        line_end: 133887
        line_start: 133887
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( hasFK==0 && chngKey==0 )
      pos:
        line_end: 133924
        line_start: 133924
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 134013
      start: 133307
    functionDepth: 29
    functionLinenumber: 133307
    functionLinenumberEnd: 134013
    functionName: sqlite3Update
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3TableAffinity
    - sqlite3VdbeAppendP4
    - sqlite3VdbeSetP4KeyInfo
    - sqlite3VdbeAddOp2
    - sqlite3WhereOkOnePass
    - sqlite3DbMallocRawNN
    - sqlite3VdbeChangeToNoop
    - sqlite3ExprCode
    - sqlite3CodeRowTrigger
    - sqlite3VdbeAddOp3
    - MASKBIT32
    - sqlite3VdbeResolveLabel
    - sqlite3ExprCodeGetColumnOfTable
    - sqlite3IsReadOnly
    - sqlite3ViewGetColumnNames
    - sqlite3FkOldmask
    - sqlite3ExprIfFalse
    - sqlite3GetVdbe
    - testcase
    - sqlite3MaterializeView
    - HasRowid
    - sqlite3CompleteInsertion
    - sqlite3VdbeGoto
    - sqlite3StrICmp
    - sqlite3FkCheck
    - sqlite3GenerateRowIndexDelete
    - sqlite3VdbeAddOp4Int
    - memset
    - assert
    - sqlite3LimitWhere
    - sqlite3VdbeJumpHere
    - indexWhereClauseMightChange
    - VdbeCoverageIf
    - sqlite3IsRowid
    - sqlite3VdbeAddOp0
    - sqlite3GenerateConstraintChecks
    - sqlite3SchemaToIndex
    - sqlite3AutoincrementEnd
    - sqlite3BeginWriteOperation
    - sqlite3AuthCheck
    - sqlite3WhereBegin
    - sqlite3WhereEnd
    - sqlite3SrcListLookup
    - sqlite3VdbeCountChanges
    - sqlite3MultiWrite
    - sqlite3FkActions
    - sqlite3PrimaryKeyIndex
    - sqlite3IndexAffinityStr
    - VdbeCoverageNeverTaken
    - sqlite3DbFree
    - sqlite3VdbeAddOp4
    - sqlite3ExprDelete
    - sqlite3VdbeAddOp1
    - VdbeCoverage
    - sqlite3ExprListDelete
    - indexColumnIsBeingUpdated
    - sqlite3AuthContextPop
    - sqlite3OpenTableAndIndices
    - sqlite3VdbeSetNumCols
    - sqlite3VdbeChangeP5
    - sqlite3SrcListDelete
    - sqlite3VdbeSetColName
    - sqlite3TriggersExist
    - sqlite3ErrorMsg
    - updateVirtualTable
    - sqlite3AuthContextPush
    - sqlite3FkRequired
    - sqlite3ResolveExprNames
    - sqlite3VdbeMakeLabel
    - sqlite3TriggerColmask
    - IsVirtual
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Update(\n  Parse *pParse,         /* The parser
      context */\n  SrcList *pTabList,     /* The table in which we should change
      things */\n  ExprList *pChanges,    /* Things to be changed */\n  Expr *pWhere,
      \         /* The WHERE clause.  May be null */\n  int onError,           /*
      How to handle constraint errors */\n  ExprList *pOrderBy,    /* ORDER BY clause.
      May be null */\n  Expr *pLimit,          /* LIMIT clause. May be null */\n  Upsert
      *pUpsert        /* ON CONFLICT clause, or null */\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetVTable
      Src: /src/nss/lib/sqlite/sqlite3.c:134060,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:134074,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:134076,1
    - Dst: sqlite3WhereBegin
      Src: /src/nss/lib/sqlite/sqlite3.c:134083,1
    - Dst: sqlite3ExprCode
      Src: /src/nss/lib/sqlite/sqlite3.c:134089,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:134091,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:134092,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:134095,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:134096,1
    - Dst: sqlite3ExprCode
      Src: /src/nss/lib/sqlite/sqlite3.c:134098,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:134100,1
    - Dst: sqlite3PrimaryKeyIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:134105,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:134106,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:134107,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:134109,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:134110,1
    - Dst: sqlite3WhereOkOnePass
      Src: /src/nss/lib/sqlite/sqlite3.c:134113,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:134116,1
    - Dst: sqlite3VdbeChangeToNoop
      Src: /src/nss/lib/sqlite/sqlite3.c:134121,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:134122,1
    - Dst: sqlite3MultiWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:134126,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:134127,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:134131,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:134133,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:134134,1
    - Dst: sqlite3WhereEnd
      Src: /src/nss/lib/sqlite/sqlite3.c:134140,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:134143,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:134143,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:134148,1
    - Dst: sqlite3VtabMakeWritable
      Src: /src/nss/lib/sqlite/sqlite3.c:134151,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:134152,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:134153,1
    - Dst: sqlite3MayAbort
      Src: /src/nss/lib/sqlite/sqlite3.c:134154,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:134159,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:134159,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:134160,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:134161,1
    - Dst: sqlite3WhereEnd
      Src: /src/nss/lib/sqlite/sqlite3.c:134163,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 66
    argCount: 8
    argNames:
    - pParse
    - pSrc
    - pTab
    - pChanges
    - pRowid
    - aXRef
    - pWhere
    - onError
    argTypes:
    - Parse*
    - SrcList*
    - Table*
    - ExprList*
    - Expr*
    - int*
    - Expr*
    - int
    assertStmts:
    - condition: ( pPk->nKeyCol==1 )
      pos:
        line_end: 134106
        line_start: 134106
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( eOnePass==ONEPASS_OFF || eOnePass==ONEPASS_SINGLE )
      pos:
        line_end: 134115
        line_start: 134115
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPk!=0 )
      pos:
        line_end: 134105
        line_start: 134105
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( v )
      pos:
        line_end: 134073
        line_start: 134073
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 134165
      start: 134046
    functionDepth: 17
    functionLinenumber: 134046
    functionLinenumberEnd: 134165
    functionName: updateVirtualTable
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3WhereOkOnePass
    - sqlite3VdbeAddOp2
    - sqlite3ExprCode
    - sqlite3VdbeChangeToNoop
    - sqlite3VdbeAddOp3
    - HasRowid
    - sqlite3MayAbort
    - assert
    - sqlite3VdbeJumpHere
    - sqlite3GetVTable
    - sqlite3VtabMakeWritable
    - sqlite3WhereBegin
    - sqlite3WhereEnd
    - sqlite3MultiWrite
    - sqlite3PrimaryKeyIndex
    - sqlite3VdbeAddOp4
    - sqlite3VdbeAddOp1
    - VdbeCoverage
    - sqlite3VdbeChangeP5
    linkageType: ''
    returnType: void
    signature: "void updateVirtualTable(\n  Parse *pParse,       /* The parsing context
      */\n  SrcList *pSrc,       /* The virtual table to be modified */\n  Table *pTab,
      \        /* The virtual table */\n  ExprList *pChanges,  /* The columns to change
      in the UPDATE statement */\n  Expr *pRowid,        /* Expression used to recompute
      the rowid */\n  int *aXRef,          /* Mapping from columns of pTab to entries
      in pChanges */\n  Expr *pWhere,        /* WHERE clause of the UPDATE statement
      */\n  int onError          /* ON CONFLICT strategy */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:134192,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:134193,1
    - Dst: sqlite3ExprListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:134194,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:134195,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:134196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - Upsert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134198
      start: 134190
    functionDepth: 10
    functionLinenumber: 134190
    functionLinenumberEnd: 134198
    functionName: sqlite3UpsertDelete
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 3
    functionsReached:
    - sqlite3DbFree
    - sqlite3ExprListDelete
    - sqlite3ExprDelete
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3UpsertDelete(sqlite3 *db, Upsert *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3UpsertNew
      Src: /src/nss/lib/sqlite/sqlite3.c:134205,1
    - Dst: sqlite3ExprListDup
      Src: /src/nss/lib/sqlite/sqlite3.c:134206,1
    - Dst: sqlite3ExprDup
      Src: /src/nss/lib/sqlite/sqlite3.c:134207,1
    - Dst: sqlite3ExprListDup
      Src: /src/nss/lib/sqlite/sqlite3.c:134208,1
    - Dst: sqlite3ExprDup
      Src: /src/nss/lib/sqlite/sqlite3.c:134209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - Upsert*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134211
      start: 134203
    functionDepth: 10
    functionLinenumber: 134203
    functionLinenumberEnd: 134211
    functionName: sqlite3UpsertDup
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3ExprDup
    - sqlite3ExprListDup
    - sqlite3UpsertNew
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3UpsertDup(sqlite3 *db, Upsert *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbMallocRaw
      Src: /src/nss/lib/sqlite/sqlite3.c:134224,1
    - Dst: sqlite3ExprListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:134226,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:134227,1
    - Dst: sqlite3ExprListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:134228,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:134229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 5
    argNames:
    - db
    - pTarget
    - pTargetWhere
    - pSet
    - pWhere
    argTypes:
    - sqlite3*
    - ExprList*
    - Expr*
    - ExprList*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134239
      start: 134216
    functionDepth: 10
    functionLinenumber: 134216
    functionLinenumberEnd: 134239
    functionName: sqlite3UpsertNew
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3DbMallocRaw
    - sqlite3ExprListDelete
    - sqlite3ExprDelete
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3UpsertNew(\n  sqlite3 *db,           /* Determines
      which memory allocator to use */\n  ExprList *pTarget,     /* Target argument
      to ON CONFLICT, or NULL */\n  Expr *pTargetWhere,    /* Optional WHERE clause
      on the target */\n  ExprList *pSet,        /* UPDATE columns, or NULL for a
      DO NOTHING */\n  Expr *pWhere           /* WHERE clause for the ON CONFLICT
      UPDATE */\n)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:134262,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:134263,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:134264,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:134265,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:134271,1
    - Dst: sqlite3ResolveExprListNames
      Src: /src/nss/lib/sqlite/sqlite3.c:134274,1
    - Dst: sqlite3ResolveExprNames
      Src: /src/nss/lib/sqlite/sqlite3.c:134276,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:134283,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:134289,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:134299,1
    - Dst: IsUniqueIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:134308,1
    - Dst: sqlite3ExprCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:134312,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:134322,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:134323,1
    - Dst: sqlite3ExprCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:134335,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:134352,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 71
    argCount: 3
    argNames:
    - pParse
    - pTabList
    - pUpsert
    argTypes:
    - Parse*
    - SrcList*
    - Upsert*
    assertStmts:
    - condition: ( pTabList->nSrc==1 )
      pos:
        line_end: 134261
        line_start: 134261
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pUpsert!=0 )
      pos:
        line_end: 134263
        line_start: 134263
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pUpsert->pUpsertTarget!=0 )
      pos:
        line_end: 134264
        line_start: 134264
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTabList->a[0].pTab!=0 )
      pos:
        line_end: 134262
        line_start: 134262
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pUpsert->pUpsertIdx==0 )
      pos:
        line_end: 134288
        line_start: 134288
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIdx->aColExpr->nExpr>ii )
      pos:
        line_end: 134322
        line_start: 134322
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIdx->aColExpr!=0 )
      pos:
        line_end: 134321
        line_start: 134321
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 134355
      start: 134248
    functionDepth: 18
    functionLinenumber: 134248
    functionLinenumberEnd: 134355
    functionName: sqlite3UpsertAnalyzeTarget
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - HasRowid
    - IsUniqueIndex
    - sqlite3ResolveExprListNames
    - sqlite3ExprCompare
    - assert
    - memset
    - sqlite3ErrorMsg
    - sqlite3ResolveExprNames
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3UpsertAnalyzeTarget(\n  Parse *pParse,     /*
      The parsing context */\n  SrcList *pTabList, /* Table into which we are inserting
      */\n  Upsert *pUpsert    /* The ON CONFLICT clauses */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:134378,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:134379,1
    - Dst: VdbeNoopComment
      Src: /src/nss/lib/sqlite/sqlite3.c:134380,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:134383,1
    - Dst: sqlite3GetTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:134384,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:134385,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:134386,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:134387,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:134388,1
    - Dst: sqlite3PrimaryKeyIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:134390,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:134397,1
    - Dst: sqlite3ColumnOfIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:134398,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:134399,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:134400,1
    - Dst: sqlite3VdbeVerifyAbortable
      Src: /src/nss/lib/sqlite/sqlite3.c:134403,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/nss/lib/sqlite/sqlite3.c:134404,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:134405,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:134406,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:134408,1
    - Dst: sqlite3SrcListDup
      Src: /src/nss/lib/sqlite/sqlite3.c:134413,1
    - Dst: sqlite3Update
      Src: /src/nss/lib/sqlite/sqlite3.c:134414,1
    - Dst: VdbeNoopComment
      Src: /src/nss/lib/sqlite/sqlite3.c:134418,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 5
    argNames:
    - pParse
    - pUpsert
    - pTab
    - pIdx
    - iCur
    argTypes:
    - Parse*
    - Upsert*
    - Table*
    - Index*
    - int
    assertStmts:
    - condition: ( v!=0 )
      pos:
        line_end: 134377
        line_start: 134377
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pUpsert!=0 )
      pos:
        line_end: 134378
        line_start: 134378
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPk->aiColumn[i]>=0 )
      pos:
        line_end: 134396
        line_start: 134396
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 134419
      start: 134366
    functionDepth: 30
    functionLinenumber: 134366
    functionLinenumberEnd: 134419
    functionName: sqlite3UpsertDoUpdate
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - HasRowid
    - sqlite3VdbeVerifyAbortable
    - sqlite3VdbeAddOp2
    - VdbeNoopComment
    - sqlite3GetTempReg
    - sqlite3VdbeAddOp4Int
    - sqlite3VdbeAddOp3
    - sqlite3ReleaseTempReg
    - sqlite3PrimaryKeyIndex
    - sqlite3ColumnOfIndex
    - assert
    - sqlite3VdbeAddOp4
    - sqlite3VdbeJumpHere
    - sqlite3SrcListDup
    - sqlite3Update
    - VdbeCoverage
    - VdbeComment
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3UpsertDoUpdate(\n  Parse *pParse,        /*
      The parsing and code-generating context */\n  Upsert *pUpsert,      /* The ON
      CONFLICT clause for the upsert */\n  Table *pTab,          /* The table being
      updated */\n  Index *pIdx,          /* The UNIQUE constraint that failed */\n
      \ int iCur              /* Cursor for pIdx (or pTab if pIdx==NULL) */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_prepare_v2
      Src: /src/nss/lib/sqlite/sqlite3.c:134461,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:134463,1
    - Dst: sqlite3_column_text
      Src: /src/nss/lib/sqlite/sqlite3.c:134464,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:134465,1
    - Dst: sqlite3_strnicmp
      Src: /src/nss/lib/sqlite/sqlite3.c:134465,1
    - Dst: strncmp
      Src: /src/nss/lib/sqlite/sqlite3.c:134472,1
    - Dst: strncmp
      Src: /src/nss/lib/sqlite/sqlite3.c:134472,1
    - Dst: execSql
      Src: /src/nss/lib/sqlite/sqlite3.c:134474,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:134478,1
    - Dst: sqlite3SetString
      Src: /src/nss/lib/sqlite/sqlite3.c:134481,1
    - Dst: sqlite3_errmsg
      Src: /src/nss/lib/sqlite/sqlite3.c:134481,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:134483,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 3
    argNames:
    - db
    - pzErrMsg
    - zSql
    argTypes:
    - sqlite3*
    - char**
    - char*
    assertStmts:
    - condition: ( sqlite3_strnicmp(zSql,"SELECT",6)==0 )
      pos:
        line_end: 134464
        line_start: 134464
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc!=SQLITE_ROW )
      pos:
        line_end: 134477
        line_start: 134477
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 134485
      start: 134456
    functionDepth: 28
    functionLinenumber: 134456
    functionLinenumberEnd: 134485
    functionName: execSql
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3SetString
    - strncmp
    - sqlite3_step
    - assert
    - sqlite3_prepare_v2
    - sqlite3_errmsg
    - sqlite3_column_text
    - execSql
    - sqlite3_finalize
    - sqlite3_strnicmp
    linkageType: ''
    returnType: int
    signature: int execSql(sqlite3 *db, char **pzErrMsg, const char *zSql)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/nss/lib/sqlite/sqlite3.c:134490,1
    - Dst: sqlite3VMPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:134491,1
    - Dst: va_end
      Src: /src/nss/lib/sqlite/sqlite3.c:134492,1
    - Dst: execSql
      Src: /src/nss/lib/sqlite/sqlite3.c:134494,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:134495,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - db
    - pzErrMsg
    - zSql
    argTypes:
    - sqlite3*
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134497
      start: 134486
    functionDepth: 29
    functionLinenumber: 134486
    functionLinenumberEnd: 134497
    functionName: execSqlF
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - va_end
    - sqlite3DbFree
    - va_start
    - execSql
    - sqlite3VMPrintf
    linkageType: ''
    returnType: int
    signature: int execSqlF(sqlite3 *db, char **pzErrMsg, const char *zSql, ...)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetVdbe
      Src: /src/nss/lib/sqlite/sqlite3.c:134530,1
    - Dst: sqlite3TwoPartName
      Src: /src/nss/lib/sqlite/sqlite3.c:134538,1
    - Dst: sqlite3FindDb
      Src: /src/nss/lib/sqlite/sqlite3.c:134546,1
    - Dst: sqlite3ResolveSelfReference
      Src: /src/nss/lib/sqlite/sqlite3.c:134552,1
    - Dst: sqlite3ExprCode
      Src: /src/nss/lib/sqlite/sqlite3.c:134554,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:134556,1
    - Dst: sqlite3VdbeUsesBtree
      Src: /src/nss/lib/sqlite/sqlite3.c:134557,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:134560,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 3
    argNames:
    - pParse
    - pNm
    - pInto
    argTypes:
    - Parse*
    - Token*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134562
      start: 134529
    functionDepth: 17
    functionLinenumber: 134529
    functionLinenumberEnd: 134562
    functionName: sqlite3Vacuum
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ExprCode
    - sqlite3VdbeAddOp2
    - sqlite3TwoPartName
    - sqlite3ExprDelete
    - sqlite3ResolveSelfReference
    - sqlite3VdbeUsesBtree
    - sqlite3GetVdbe
    - sqlite3FindDb
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Vacuum(Parse *pParse, Token *pNm, Expr *pInto)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SetString
      Src: /src/nss/lib/sqlite/sqlite3.c:134590,1
    - Dst: sqlite3SetString
      Src: /src/nss/lib/sqlite/sqlite3.c:134594,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:134599,1
    - Dst: sqlite3SetString
      Src: /src/nss/lib/sqlite/sqlite3.c:134600,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:134603,1
    - Dst: sqlite3PagerIsMemdb
      Src: /src/nss/lib/sqlite/sqlite3.c:134626,1
    - Dst: sqlite3BtreePager
      Src: /src/nss/lib/sqlite/sqlite3.c:134626,1
    - Dst: execSqlF
      Src: /src/nss/lib/sqlite/sqlite3.c:134643,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:134646,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:134648,1
    - Dst: strcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:134648,1
    - Dst: sqlite3PagerFile
      Src: /src/nss/lib/sqlite/sqlite3.c:134651,1
    - Dst: sqlite3BtreePager
      Src: /src/nss/lib/sqlite/sqlite3.c:134651,1
    - Dst: sqlite3OsFileSize
      Src: /src/nss/lib/sqlite/sqlite3.c:134653,1
    - Dst: sqlite3SetString
      Src: /src/nss/lib/sqlite/sqlite3.c:134655,1
    - Dst: sqlite3BtreeGetOptimalReserve
      Src: /src/nss/lib/sqlite/sqlite3.c:134660,1
    - Dst: sqlite3CodecGetKey
      Src: /src/nss/lib/sqlite/sqlite3.c:134668,1
    - Dst: sqlite3BtreeSetCacheSize
      Src: /src/nss/lib/sqlite/sqlite3.c:134673,1
    - Dst: sqlite3BtreeSetSpillSize
      Src: /src/nss/lib/sqlite/sqlite3.c:134674,1
    - Dst: sqlite3BtreeSetSpillSize
      Src: /src/nss/lib/sqlite/sqlite3.c:134674,1
    - Dst: sqlite3BtreeSetPagerFlags
      Src: /src/nss/lib/sqlite/sqlite3.c:134675,1
    - Dst: execSql
      Src: /src/nss/lib/sqlite/sqlite3.c:134681,1
    - Dst: sqlite3BtreeBeginTrans
      Src: /src/nss/lib/sqlite/sqlite3.c:134683,1
    - Dst: sqlite3PagerGetJournalMode
      Src: /src/nss/lib/sqlite/sqlite3.c:134687,1
    - Dst: sqlite3BtreePager
      Src: /src/nss/lib/sqlite/sqlite3.c:134687,1
    - Dst: sqlite3BtreeSetPageSize
      Src: /src/nss/lib/sqlite/sqlite3.c:134692,1
    - Dst: sqlite3BtreeGetPageSize
      Src: /src/nss/lib/sqlite/sqlite3.c:134692,1
    - Dst: sqlite3BtreeSetPageSize
      Src: /src/nss/lib/sqlite/sqlite3.c:134693,1
    - Dst: NEVER
      Src: /src/nss/lib/sqlite/sqlite3.c:134694,1
    - Dst: sqlite3BtreeSetAutoVacuum
      Src: /src/nss/lib/sqlite/sqlite3.c:134701,1
    - Dst: sqlite3BtreeGetAutoVacuum
      Src: /src/nss/lib/sqlite/sqlite3.c:134702,1
    - Dst: execSqlF
      Src: /src/nss/lib/sqlite/sqlite3.c:134709,1
    - Dst: execSqlF
      Src: /src/nss/lib/sqlite/sqlite3.c:134716,1
    - Dst: execSqlF
      Src: /src/nss/lib/sqlite/sqlite3.c:134728,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:134735,1
    - Dst: execSqlF
      Src: /src/nss/lib/sqlite/sqlite3.c:134744,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:134777,1
    - Dst: sqlite3BtreeIsInTrans
      Src: /src/nss/lib/sqlite/sqlite3.c:134777,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:134778,1
    - Dst: sqlite3BtreeIsInTrans
      Src: /src/nss/lib/sqlite/sqlite3.c:134778,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:134781,1
    - Dst: sqlite3BtreeGetMeta
      Src: /src/nss/lib/sqlite/sqlite3.c:134784,1
    - Dst: sqlite3BtreeUpdateMeta
      Src: /src/nss/lib/sqlite/sqlite3.c:134785,1
    - Dst: NEVER
      Src: /src/nss/lib/sqlite/sqlite3.c:134786,1
    - Dst: sqlite3BtreeCopyFile
      Src: /src/nss/lib/sqlite/sqlite3.c:134790,1
    - Dst: sqlite3BtreeCommit
      Src: /src/nss/lib/sqlite/sqlite3.c:134793,1
    - Dst: sqlite3BtreeSetAutoVacuum
      Src: /src/nss/lib/sqlite/sqlite3.c:134797,1
    - Dst: sqlite3BtreeGetAutoVacuum
      Src: /src/nss/lib/sqlite/sqlite3.c:134797,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:134802,1
    - Dst: sqlite3BtreeSetPageSize
      Src: /src/nss/lib/sqlite/sqlite3.c:134804,1
    - Dst: sqlite3BtreeGetPageSize
      Src: /src/nss/lib/sqlite/sqlite3.c:134804,1
    - Dst: sqlite3BtreeSetPageSize
      Src: /src/nss/lib/sqlite/sqlite3.c:134815,1
    - Dst: sqlite3BtreeClose
      Src: /src/nss/lib/sqlite/sqlite3.c:134827,1
    - Dst: sqlite3ResetAllSchemasOfConnection
      Src: /src/nss/lib/sqlite/sqlite3.c:134834,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 142
    argCount: 4
    argNames:
    - pzErrMsg
    - db
    - iDb
    - pOut
    argTypes:
    - char**
    - sqlite3*
    - int
    - sqlite3_value*
    assertStmts:
    - condition: ( strcmp(pDb->zDbSName,"vacuum_db")==0 )
      pos:
        line_end: 134647
        line_start: 134647
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (db->mDbFlags & DBFLAG_Vacuum)!=0 )
      pos:
        line_end: 134734
        line_start: 134734
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( 1==sqlite3BtreeIsInTrans(pTemp) )
      pos:
        line_end: 134776
        line_start: 134776
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOut!=0 || 1==sqlite3BtreeIsInTrans(pMain) )
      pos:
        line_end: 134777
        line_start: 134777
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (db->nDb-1)==nDb )
      pos:
        line_end: 134645
        line_start: 134645
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc==SQLITE_OK )
      pos:
        line_end: 134801
        line_start: 134801
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 134837
      start: 134567
    functionDepth: 30
    functionLinenumber: 134567
    functionLinenumberEnd: 134837
    functionName: sqlite3RunVacuum
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - execSqlF
    - sqlite3BtreeGetOptimalReserve
    - sqlite3PagerIsMemdb
    - sqlite3BtreeIsInTrans
    - sqlite3ResetAllSchemasOfConnection
    - sqlite3_value_type
    - sqlite3SetString
    - assert
    - sqlite3CodecGetKey
    - sqlite3BtreeBeginTrans
    - execSql
    - sqlite3BtreePager
    - sqlite3PagerFile
    - sqlite3BtreeUpdateMeta
    - sqlite3BtreeClose
    - sqlite3BtreeSetSpillSize
    - ArraySize
    - sqlite3BtreeSetPagerFlags
    - sqlite3BtreeGetPageSize
    - sqlite3BtreeCommit
    - strcmp
    - NEVER
    - sqlite3BtreeCopyFile
    - sqlite3BtreeSetCacheSize
    - sqlite3BtreeSetAutoVacuum
    - sqlite3BtreeGetAutoVacuum
    - sqlite3PagerGetJournalMode
    - sqlite3BtreeGetMeta
    - sqlite3OsFileSize
    - sqlite3_value_text
    - sqlite3BtreeSetPageSize
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3RunVacuum(\n  char **pzErrMsg,        /* Write
      error message here */\n  sqlite3 *db,            /* Database connection */\n
      \ int iDb,                /* Which attached DB to vacuum */\n  sqlite3_value
      *pOut     /* Write results here, if not NULL. VACUUM INTO */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:134886,1
    - Dst: sqlite3Malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:134887,1
    - Dst: sqlite3OomFault
      Src: /src/nss/lib/sqlite/sqlite3.c:134889,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:134893,1
    - Dst: sqlite3HashInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:134899,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:134900,1
    - Dst: sqlite3OomFault
      Src: /src/nss/lib/sqlite/sqlite3.c:134902,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:134903,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 4
    argNames:
    - db
    - zName
    - pModule
    - pAux
    argTypes:
    - sqlite3*
    - char*
    - sqlite3_module*
    - void*
    assertStmts:
    - condition: ( pDel==0 || pDel==pMod )
      pos:
        line_end: 134899
        line_start: 134899
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 134908
      start: 134878
    functionDepth: 7
    functionLinenumber: 134878
    functionLinenumberEnd: 134908
    functionName: sqlite3VtabCreateModule
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - memcpy
    - sqlite3DbFree
    - sqlite3Malloc
    - sqlite3OomFault
    - assert
    - sqlite3Strlen30
    - sqlite3HashInsert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3VtabCreateModule(\n  sqlite3 *db,                    /*
      Database in which module is registered */\n  const char *zName,              /*
      Name assigned to this module */\n  const sqlite3_module *pModule,  /* The definition
      of the module */\n  void *pAux,                     /* Context pointer for xCreate/xConnect
      */\n  void (*xDestroy)(void *)        /* Module destructor function */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:134924,1
    - Dst: sqlite3HashFind
      Src: /src/nss/lib/sqlite/sqlite3.c:134925,1
    - Dst: sqlite3VtabCreateModule
      Src: /src/nss/lib/sqlite/sqlite3.c:134928,1
    - Dst: sqlite3ApiExit
      Src: /src/nss/lib/sqlite/sqlite3.c:134930,1
    - Dst: xDestroy
      Src: /src/nss/lib/sqlite/sqlite3.c:134931,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:134932,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - db
    - zName
    - pModule
    - pAux
    argTypes:
    - sqlite3*
    - char*
    - sqlite3_module*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134934
      start: 134915
    functionDepth: 8
    functionLinenumber: 134915
    functionLinenumberEnd: 134934
    functionName: createModule
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3ApiExit
    - sqlite3_mutex_leave
    - xDestroy
    - sqlite3HashFind
    - sqlite3VtabCreateModule
    linkageType: ''
    returnType: int
    signature: "int createModule(\n  sqlite3 *db,                    /* Database in
      which module is registered */\n  const char *zName,              /* Name assigned
      to this module */\n  const sqlite3_module *pModule,  /* The definition of the
      module */\n  void *pAux,                     /* Context pointer for xCreate/xConnect
      */\n  void (*xDestroy)(void *)        /* Module destructor function */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/nss/lib/sqlite/sqlite3.c:134947,1
    - Dst: createModule
      Src: /src/nss/lib/sqlite/sqlite3.c:134949,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - db
    - zName
    - pModule
    - pAux
    argTypes:
    - sqlite3*
    - char*
    - sqlite3_module*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134950
      start: 134940
    functionDepth: 12
    functionLinenumber: 134940
    functionLinenumberEnd: 134950
    functionName: sqlite3_create_module
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - createModule
    - sqlite3SafetyCheckOk
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_create_module(\n  sqlite3 *db,                    /*
      Database in which module is registered */\n  const char *zName,              /*
      Name assigned to this module */\n  const sqlite3_module *pModule,  /* The definition
      of the module */\n  void *pAux                      /* Context pointer for xCreate/xConnect
      */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/nss/lib/sqlite/sqlite3.c:134963,1
    - Dst: createModule
      Src: /src/nss/lib/sqlite/sqlite3.c:134965,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - db
    - zName
    - pModule
    - pAux
    argTypes:
    - sqlite3*
    - char*
    - sqlite3_module*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134966
      start: 134955
    functionDepth: 12
    functionLinenumber: 134955
    functionLinenumberEnd: 134966
    functionName: sqlite3_create_module_v2
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - createModule
    - sqlite3SafetyCheckOk
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_create_module_v2(\n  sqlite3 *db,                    /*
      Database in which module is registered */\n  const char *zName,              /*
      Name assigned to this module */\n  const sqlite3_module *pModule,  /* The definition
      of the module */\n  void *pAux,                     /* Context pointer for xCreate/xConnect
      */\n  void (*xDestroy)(void *)        /* Module destructor function */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pVTab
    argTypes:
    - VTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134978
      start: 134976
    functionDepth: 0
    functionLinenumber: 134976
    functionLinenumberEnd: 134978
    functionName: sqlite3VtabLock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VtabLock(VTable *pVTab)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:134988,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:134988,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - db
    - pTab
    argTypes:
    - sqlite3*
    - Table*
    assertStmts:
    - condition: ( IsVirtual(pTab) )
      pos:
        line_end: 134987
        line_start: 134987
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 134991
      start: 134986
    functionDepth: 1
    functionLinenumber: 134986
    functionLinenumberEnd: 134991
    functionName: sqlite3GetVTable
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 8
    functionsReached:
    - assert
    - IsVirtual
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3GetVTable(sqlite3 *db, Table *pTab)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:135000,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:135001,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:135002,1
    - Dst: sqlite3_vtab*::pModule::xDisconnect
      Src: /src/nss/lib/sqlite/sqlite3.c:135008,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:135010,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - pVTab
    argTypes:
    - VTable*
    assertStmts:
    - condition: ( db )
      pos:
        line_end: 134999
        line_start: 134999
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( db->magic==SQLITE_MAGIC_OPEN || db->magic==SQLITE_MAGIC_ZOMBIE
        )
      pos:
        line_end: 135001
        line_start: 135001
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pVTab->nRef>0 )
      pos:
        line_end: 135000
        line_start: 135000
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 135012
      start: 134997
    functionDepth: 6
    functionLinenumber: 134997
    functionLinenumberEnd: 135012
    functionName: sqlite3VtabUnlock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - sqlite3DbFree
    - sqlite3_vtab*::pModule::xDisconnect
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VtabUnlock(VTable *pVTab)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:135032,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/nss/lib/sqlite/sqlite3.c:135032,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:135037,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:135049,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - Table*
    assertStmts:
    - condition: ( db==0 || sqlite3SchemaMutexHeld(db, 0, p->pSchema) )
      pos:
        line_end: 135031
        line_start: 135031
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( db2 )
      pos:
        line_end: 135036
        line_start: 135036
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !db || pRet )
      pos:
        line_end: 135048
        line_start: 135048
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 135051
      start: 135021
    functionDepth: 1
    functionLinenumber: 135021
    functionLinenumberEnd: 135051
    functionName: vtabDisconnectAll
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3SchemaMutexHeld
    linkageType: ''
    returnType: VTable
    signature: VTable *vtabDisconnectAll(sqlite3 *db, Table *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:135064,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:135064,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:135065,1
    - Dst: sqlite3BtreeHoldsAllMutexes
      Src: /src/nss/lib/sqlite/sqlite3.c:135065,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:135066,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:135066,1
    - Dst: sqlite3VtabUnlock
      Src: /src/nss/lib/sqlite/sqlite3.c:135072,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - Table*
    assertStmts:
    - condition: ( IsVirtual(p) )
      pos:
        line_end: 135063
        line_start: 135063
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3BtreeHoldsAllMutexes(db) )
      pos:
        line_end: 135064
        line_start: 135064
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3_mutex_held(db->mutex) )
      pos:
        line_end: 135065
        line_start: 135065
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 135076
      start: 135061
    functionDepth: 7
    functionLinenumber: 135061
    functionLinenumberEnd: 135076
    functionName: sqlite3VtabDisconnect
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3VtabUnlock
    - sqlite3BtreeHoldsAllMutexes
    - sqlite3_mutex_held
    - IsVirtual
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VtabDisconnect(sqlite3 *db, Table *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:135103,1
    - Dst: sqlite3BtreeHoldsAllMutexes
      Src: /src/nss/lib/sqlite/sqlite3.c:135103,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:135104,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:135104,1
    - Dst: sqlite3ExpirePreparedStatements
      Src: /src/nss/lib/sqlite/sqlite3.c:135107,1
    - Dst: sqlite3VtabUnlock
      Src: /src/nss/lib/sqlite/sqlite3.c:135110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts:
    - condition: ( sqlite3BtreeHoldsAllMutexes(db) )
      pos:
        line_end: 135102
        line_start: 135102
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3_mutex_held(db->mutex) )
      pos:
        line_end: 135103
        line_start: 135103
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 135114
      start: 135099
    functionDepth: 7
    functionLinenumber: 135099
    functionLinenumberEnd: 135114
    functionName: sqlite3VtabUnlockList
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3ExpirePreparedStatements
    - assert
    - sqlite3VtabUnlock
    - sqlite3BtreeHoldsAllMutexes
    - sqlite3_mutex_held
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VtabUnlockList(sqlite3 *db)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: vtabDisconnectAll
      Src: /src/nss/lib/sqlite/sqlite3.c:135131,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:135135,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:135137,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - Table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135139
      start: 135130
    functionDepth: 6
    functionLinenumber: 135130
    functionLinenumberEnd: 135139
    functionName: sqlite3VtabClear
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - vtabDisconnectAll
    - sqlite3DbFree
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VtabClear(sqlite3 *db, Table *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:135152,1
    - Dst: sqlite3DbRealloc
      Src: /src/nss/lib/sqlite/sqlite3.c:135154,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:135156,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - pParse
    - pTable
    - zArg
    argTypes:
    - Parse*
    - Table*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135163
      start: 135147
    functionDepth: 10
    functionLinenumber: 135147
    functionLinenumberEnd: 135163
    functionName: addModuleArgument
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbFree
    - sqlite3DbRealloc
    - sqlite3ErrorMsg
    linkageType: ''
    returnType: void
    signature: void addModuleArgument(Parse *pParse, Table *pTable, char *zArg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3StartTable
      Src: /src/nss/lib/sqlite/sqlite3.c:135180,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:135183,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:135187,1
    - Dst: addModuleArgument
      Src: /src/nss/lib/sqlite/sqlite3.c:135188,1
    - Dst: sqlite3NameFromToken
      Src: /src/nss/lib/sqlite/sqlite3.c:135188,1
    - Dst: addModuleArgument
      Src: /src/nss/lib/sqlite/sqlite3.c:135189,1
    - Dst: addModuleArgument
      Src: /src/nss/lib/sqlite/sqlite3.c:135190,1
    - Dst: sqlite3DbStrDup
      Src: /src/nss/lib/sqlite/sqlite3.c:135190,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:135191,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:135205,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:135206,1
    - Dst: sqlite3AuthCheck
      Src: /src/nss/lib/sqlite/sqlite3.c:135207,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 5
    argNames:
    - pParse
    - pName1
    - pName2
    - pModuleName
    - ifNotExists
    argTypes:
    - Parse*
    - Token*
    - Token*
    - Token*
    - int
    assertStmts:
    - condition: ( pTable->nModuleArg==0 )
      pos:
        line_end: 135186
        line_start: 135186
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( 0==pTable->pIndex )
      pos:
        line_end: 135182
        line_start: 135182
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( (pParse->sNameToken.z==pName2->z && pName2->z!=0)\n       || (pParse->sNameToken.z==pName1->z
        && pName2->z==0)\n  )"
      pos:
        line_end: 135192
        line_start: 135190
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iDb>=0 )
      pos:
        line_end: 135205
        line_start: 135205
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 135211
      start: 135170
    functionDepth: 14
    functionLinenumber: 135170
    functionLinenumberEnd: 135211
    functionName: sqlite3VtabBeginParse
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3StartTable
    - sqlite3AuthCheck
    - sqlite3DbStrDup
    - assert
    - sqlite3NameFromToken
    - addModuleArgument
    - sqlite3SchemaToIndex
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3VtabBeginParse(\n  Parse *pParse,        /*
      Parsing context */\n  Token *pName1,        /* Name of new table, or database
      name */\n  Token *pName2,        /* Name of new table or NULL */\n  Token *pModuleName,
      \  /* Name of the module for the virtual table */\n  int ifNotExists       /*
      No error if the table already exists */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: addModuleArgument
      Src: /src/nss/lib/sqlite/sqlite3.c:135223,1
    - Dst: sqlite3DbStrNDup
      Src: /src/nss/lib/sqlite/sqlite3.c:135223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - pParse
    argTypes:
    - Parse*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135225
      start: 135218
    functionDepth: 11
    functionLinenumber: 135218
    functionLinenumberEnd: 135225
    functionName: addArgumentToVtab
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbStrNDup
    - addModuleArgument
    linkageType: ''
    returnType: void
    signature: void addArgumentToVtab(Parse *pParse)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: addArgumentToVtab
      Src: /src/nss/lib/sqlite/sqlite3.c:135236,1
    - Dst: sqlite3MPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:135257,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:135267,1
    - Dst: sqlite3NestedParse
      Src: /src/nss/lib/sqlite/sqlite3.c:135268,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:135278,1
    - Dst: sqlite3GetVdbe
      Src: /src/nss/lib/sqlite/sqlite3.c:135279,1
    - Dst: sqlite3ChangeCookie
      Src: /src/nss/lib/sqlite/sqlite3.c:135280,1
    - Dst: sqlite3VdbeAddOp0
      Src: /src/nss/lib/sqlite/sqlite3.c:135282,1
    - Dst: sqlite3MPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:135283,1
    - Dst: sqlite3VdbeAddParseSchemaOp
      Src: /src/nss/lib/sqlite/sqlite3.c:135284,1
    - Dst: sqlite3VdbeLoadString
      Src: /src/nss/lib/sqlite/sqlite3.c:135287,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:135288,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:135300,1
    - Dst: sqlite3SchemaMutexHeld
      Src: /src/nss/lib/sqlite/sqlite3.c:135300,1
    - Dst: sqlite3HashInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:135301,1
    - Dst: sqlite3OomFault
      Src: /src/nss/lib/sqlite/sqlite3.c:135303,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:135304,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 2
    argNames:
    - pParse
    - pEnd
    argTypes:
    - Parse*
    - Token*
    assertStmts:
    - condition: ( pTab==pOld )
      pos:
        line_end: 135303
        line_start: 135303
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3SchemaMutexHeld(db, 0, pSchema) )
      pos:
        line_end: 135299
        line_start: 135299
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 135309
      start: 135231
    functionDepth: 13
    functionLinenumber: 135231
    functionLinenumberEnd: 135309
    functionName: sqlite3VtabFinishParse
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3NestedParse
    - sqlite3MPrintf
    - sqlite3VdbeAddOp2
    - sqlite3DbFree
    - sqlite3SchemaMutexHeld
    - sqlite3VdbeAddParseSchemaOp
    - assert
    - sqlite3OomFault
    - addArgumentToVtab
    - sqlite3ChangeCookie
    - sqlite3VdbeAddOp0
    - sqlite3GetVdbe
    - sqlite3SchemaToIndex
    - sqlite3HashInsert
    - sqlite3VdbeLoadString
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VtabFinishParse(Parse *pParse, Token *pEnd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addArgumentToVtab
      Src: /src/nss/lib/sqlite/sqlite3.c:135316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pParse
    argTypes:
    - Parse*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135319
      start: 135315
    functionDepth: 12
    functionLinenumber: 135315
    functionLinenumberEnd: 135319
    functionName: sqlite3VtabArgInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - addArgumentToVtab
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VtabArgInit(Parse *pParse)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:135331,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - pParse
    - p
    argTypes:
    - Parse*
    - Token*
    assertStmts:
    - condition: (pArg->z <= p->z)
      pos:
        line_end: 135330
        line_start: 135330
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 135334
      start: 135325
    functionDepth: 0
    functionLinenumber: 135325
    functionLinenumberEnd: 135334
    functionName: sqlite3VtabArgExtend
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VtabArgExtend(Parse *pParse, Token *p)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3MPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:135361,1
    - Dst: sqlite3DbStrDup
      Src: /src/nss/lib/sqlite/sqlite3.c:135368,1
    - Dst: sqlite3MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:135373,1
    - Dst: sqlite3OomFault
      Src: /src/nss/lib/sqlite/sqlite3.c:135375,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:135376,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:135382,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:135386,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:135387,1
    - Dst: xConstruct
      Src: /src/nss/lib/sqlite/sqlite3.c:135393,1
    - Dst: sqlite3OomFault
      Src: /src/nss/lib/sqlite/sqlite3.c:135395,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:135396,1
    - Dst: sqlite3MPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:135400,1
    - Dst: sqlite3MPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:135402,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:135403,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:135405,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:135406,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:135409,1
    - Dst: sqlite3MPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:135414,1
    - Dst: sqlite3VtabUnlock
      Src: /src/nss/lib/sqlite/sqlite3.c:135415,1
    - Dst: sqlite3ColumnType
      Src: /src/nss/lib/sqlite/sqlite3.c:135429,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:135432,1
    - Dst: sqlite3StrNICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:135434,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:135448,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:135460,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 78
    argCount: 4
    argNames:
    - db
    - pTab
    - pMod
    - pzErr
    argTypes:
    - sqlite3*
    - Table*
    - Module*
    - char**
    assertStmts:
    - condition: ( &db->pVtabCtx )
      pos:
        line_end: 135385
        line_start: 135385
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( xConstruct )
      pos:
        line_end: 135386
        line_start: 135386
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sCtx.pTab==pTab )
      pos:
        line_end: 135395
        line_start: 135395
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (zType[i-1]==' ')
      pos:
        line_end: 135447
        line_start: 135447
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 135462
      start: 135341
    functionDepth: 10
    functionLinenumber: 135341
    functionLinenumberEnd: 135462
    functionName: vtabCallConstructor
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ALWAYS
    - sqlite3MPrintf
    - sqlite3DbStrDup
    - sqlite3DbFree
    - sqlite3OomFault
    - assert
    - xConstruct
    - memset
    - sqlite3VtabUnlock
    - sqlite3ColumnType
    - sqlite3Strlen30
    - sqlite3StrNICmp
    - sqlite3MallocZero
    - sqlite3SchemaToIndex
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int vtabCallConstructor(\n  sqlite3 *db, \n  Table *pTab,\n  Module
      *pMod,\n  int (*xConstruct)(sqlite3*,void*,int,const char*const*,sqlite3_vtab**,char**),\n
      \ char **pzErr\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:135477,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:135478,1
    - Dst: sqlite3GetVTable
      Src: /src/nss/lib/sqlite/sqlite3.c:135478,1
    - Dst: sqlite3HashFind
      Src: /src/nss/lib/sqlite/sqlite3.c:135484,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:135488,1
    - Dst: vtabCallConstructor
      Src: /src/nss/lib/sqlite/sqlite3.c:135492,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:135494,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:135497,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - pParse
    - pTab
    argTypes:
    - Parse*
    - Table*
    assertStmts:
    - condition: ( pTab )
      pos:
        line_end: 135476
        line_start: 135476
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 135501
      start: 135471
    functionDepth: 11
    functionLinenumber: 135471
    functionLinenumberEnd: 135501
    functionName: sqlite3VtabCallConnect
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3DbFree
    - assert
    - vtabCallConstructor
    - sqlite3HashFind
    - sqlite3ErrorMsg
    - sqlite3GetVTable
    - IsVirtual
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VtabCallConnect(Parse *pParse, Table *pTab)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbRealloc
      Src: /src/nss/lib/sqlite/sqlite3.c:135514,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:135518,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135523
      start: 135506
    functionDepth: 8
    functionLinenumber: 135506
    functionLinenumberEnd: 135523
    functionName: growVTrans
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3DbRealloc
    linkageType: ''
    returnType: int
    signature: int growVTrans(sqlite3 *db)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VtabLock
      Src: /src/nss/lib/sqlite/sqlite3.c:135532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - db
    - pVTab
    argTypes:
    - sqlite3*
    - VTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135533
      start: 135529
    functionDepth: 1
    functionLinenumber: 135529
    functionLinenumberEnd: 135533
    functionName: addToVTrans
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VtabLock
    linkageType: ''
    returnType: void
    signature: void addToVTrans(sqlite3 *db, VTable *pVTab)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3FindTable
      Src: /src/nss/lib/sqlite/sqlite3.c:135549,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:135550,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:135550,1
    - Dst: sqlite3HashFind
      Src: /src/nss/lib/sqlite/sqlite3.c:135554,1
    - Dst: sqlite3MPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:135561,1
    - Dst: vtabCallConstructor
      Src: /src/nss/lib/sqlite/sqlite3.c:135564,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:135569,1
    - Dst: sqlite3GetVTable
      Src: /src/nss/lib/sqlite/sqlite3.c:135569,1
    - Dst: growVTrans
      Src: /src/nss/lib/sqlite/sqlite3.c:135570,1
    - Dst: addToVTrans
      Src: /src/nss/lib/sqlite/sqlite3.c:135572,1
    - Dst: sqlite3GetVTable
      Src: /src/nss/lib/sqlite/sqlite3.c:135572,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 4
    argNames:
    - db
    - iDb
    - zTab
    - pzErr
    argTypes:
    - sqlite3*
    - int
    - char*
    - char**
    assertStmts:
    - condition: ( pTab && IsVirtual(pTab) && !pTab->pVTable )
      pos:
        line_end: 135549
        line_start: 135549
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 135577
      start: 135543
    functionDepth: 11
    functionLinenumber: 135543
    functionLinenumberEnd: 135577
    functionName: sqlite3VtabCallCreate
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - ALWAYS
    - addToVTrans
    - sqlite3MPrintf
    - growVTrans
    - sqlite3FindTable
    - assert
    - vtabCallConstructor
    - sqlite3HashFind
    - sqlite3GetVTable
    - IsVirtual
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VtabCallCreate(sqlite3 *db, int iDb, const char
      *zTab, char **pzErr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/nss/lib/sqlite/sqlite3.c:135592,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:135596,1
    - Dst: sqlite3Error
      Src: /src/nss/lib/sqlite/sqlite3.c:135599,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:135600,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:135604,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:135604,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:135606,1
    - Dst: sqlite3RunParser
      Src: /src/nss/lib/sqlite/sqlite3.c:135610,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:135614,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:135624,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:135625,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:135625,1
    - Dst: sqlite3PrimaryKeyIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:135625,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:135626,1
    - Dst: sqlite3PrimaryKeyIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:135628,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:135636,1
    - Dst: sqlite3ErrorWithMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:135644,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:135645,1
    - Dst: sqlite3VdbeFinalize
      Src: /src/nss/lib/sqlite/sqlite3.c:135651,1
    - Dst: sqlite3DeleteTable
      Src: /src/nss/lib/sqlite/sqlite3.c:135653,1
    - Dst: sqlite3ParserReset
      Src: /src/nss/lib/sqlite/sqlite3.c:135654,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:135656,1
    - Dst: sqlite3ApiExit
      Src: /src/nss/lib/sqlite/sqlite3.c:135657,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:135658,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 53
    argCount: 2
    argNames:
    - db
    - zCreateTable
    argTypes:
    - sqlite3*
    - char*
    assertStmts:
    - condition: ( IsVirtual(pTab) )
      pos:
        line_end: 135603
        line_start: 135603
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIdx->pNext==0 )
      pos:
        line_end: 135635
        line_start: 135635
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTab->pIndex==0 )
      pos:
        line_end: 135623
        line_start: 135623
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( HasRowid(pNew) || sqlite3PrimaryKeyIndex(pNew)!=0 )
      pos:
        line_end: 135624
        line_start: 135624
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (rc&0xff)==rc )
      pos:
        line_end: 135655
        line_start: 135655
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 135660
      start: 135584
    functionDepth: 25
    functionLinenumber: 135584
    functionLinenumberEnd: 135660
    functionName: sqlite3_declare_vtab
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_mutex_enter
    - HasRowid
    - sqlite3SafetyCheckOk
    - sqlite3DbFree
    - sqlite3RunParser
    - sqlite3_mutex_leave
    - sqlite3PrimaryKeyIndex
    - sqlite3VdbeFinalize
    - sqlite3ApiExit
    - assert
    - sqlite3Error
    - memset
    - sqlite3ErrorWithMsg
    - sqlite3DeleteTable
    - sqlite3ParserReset
    - IsVirtual
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_declare_vtab(sqlite3 *db, const char *zCreateTable)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3FindTable
      Src: /src/nss/lib/sqlite/sqlite3.c:135673,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:135674,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:135678,1
    - Dst: vtabDisconnectAll
      Src: /src/nss/lib/sqlite/sqlite3.c:135683,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:135685,1
    - Dst: xDestroy
      Src: /src/nss/lib/sqlite/sqlite3.c:135687,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:135690,1
    - Dst: sqlite3VtabUnlock
      Src: /src/nss/lib/sqlite/sqlite3.c:135693,1
    - Dst: sqlite3DeleteTable
      Src: /src/nss/lib/sqlite/sqlite3.c:135695,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - db
    - iDb
    - zTab
    argTypes:
    - sqlite3*
    - int
    - char*
    assertStmts:
    - condition: ( p->pVtab )
      pos:
        line_end: 135677
        line_start: 135677
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( xDestroy!=0 )
      pos:
        line_end: 135684
        line_start: 135684
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTab->pVTable==p && p->pNext==0 )
      pos:
        line_end: 135689
        line_start: 135689
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 135699
      start: 135669
    functionDepth: 7
    functionLinenumber: 135669
    functionLinenumberEnd: 135699
    functionName: sqlite3VtabCallDestroy
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - ALWAYS
    - sqlite3FindTable
    - xDestroy
    - assert
    - sqlite3VtabUnlock
    - vtabDisconnectAll
    - sqlite3DeleteTable
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VtabCallDestroy(sqlite3 *db, int iDb, const char
      *zTab)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: x
      Src: /src/nss/lib/sqlite/sqlite3.c:135720,1
    - Dst: sqlite3VtabUnlock
      Src: /src/nss/lib/sqlite/sqlite3.c:135723,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:135725,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - db
    - offset
    argTypes:
    - sqlite3*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135728
      start: 135709
    functionDepth: 7
    functionLinenumber: 135709
    functionLinenumberEnd: 135728
    functionName: callFinaliser
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VtabUnlock
    - x
    - sqlite3DbFree
    linkageType: ''
    returnType: void
    signature: void callFinaliser(sqlite3 *db, int offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: x
      Src: /src/nss/lib/sqlite/sqlite3.c:135747,1
    - Dst: sqlite3VtabImportErrmsg
      Src: /src/nss/lib/sqlite/sqlite3.c:135748,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - Vdbe*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135753
      start: 135737
    functionDepth: 8
    functionLinenumber: 135737
    functionLinenumberEnd: 135753
    functionName: sqlite3VtabSync
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - x
    - sqlite3VtabImportErrmsg
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VtabSync(sqlite3 *db, Vdbe *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: callFinaliser
      Src: /src/nss/lib/sqlite/sqlite3.c:135760,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135762
      start: 135759
    functionDepth: 8
    functionLinenumber: 135759
    functionLinenumberEnd: 135762
    functionName: sqlite3VtabRollback
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - callFinaliser
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VtabRollback(sqlite3 *db)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: callFinaliser
      Src: /src/nss/lib/sqlite/sqlite3.c:135769,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135771
      start: 135768
    functionDepth: 8
    functionLinenumber: 135768
    functionLinenumberEnd: 135771
    functionName: sqlite3VtabCommit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - callFinaliser
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VtabCommit(sqlite3 *db)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VtabInSync
      Src: /src/nss/lib/sqlite/sqlite3.c:135790,1
    - Dst: growVTrans
      Src: /src/nss/lib/sqlite/sqlite3.c:135810,1
    - Dst: sqlite3_module*::xBegin
      Src: /src/nss/lib/sqlite/sqlite3.c:135812,1
    - Dst: addToVTrans
      Src: /src/nss/lib/sqlite/sqlite3.c:135815,1
    - Dst: sqlite3_module*::xSavepoint
      Src: /src/nss/lib/sqlite/sqlite3.c:135818,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - db
    - pVTab
    argTypes:
    - sqlite3*
    - VTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135824
      start: 135781
    functionDepth: 9
    functionLinenumber: 135781
    functionLinenumberEnd: 135824
    functionName: sqlite3VtabBegin
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - addToVTrans
    - growVTrans
    - sqlite3_module*::xBegin
    - sqlite3VtabInSync
    - sqlite3_module*::xSavepoint
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VtabBegin(sqlite3 *db, VTable *pVTab)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:135844,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:135845,1
    - Dst: sqlite3VtabLock
      Src: /src/nss/lib/sqlite/sqlite3.c:135853,1
    - Dst: xMethod
      Src: /src/nss/lib/sqlite/sqlite3.c:135867,1
    - Dst: sqlite3VtabUnlock
      Src: /src/nss/lib/sqlite/sqlite3.c:135869,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 27
    argCount: 3
    argNames:
    - db
    - op
    - iSavepoint
    argTypes:
    - sqlite3*
    - int
    - int
    assertStmts:
    - condition: ( op==SAVEPOINT_RELEASE||op==SAVEPOINT_ROLLBACK||op==SAVEPOINT_BEGIN
        )
      pos:
        line_end: 135843
        line_start: 135843
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iSavepoint>=-1 )
      pos:
        line_end: 135844
        line_start: 135844
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 135874
      start: 135841
    functionDepth: 7
    functionLinenumber: 135841
    functionLinenumberEnd: 135874
    functionName: sqlite3VtabSavepoint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - assert
    - sqlite3VtabUnlock
    - sqlite3VtabLock
    - xMethod
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VtabSavepoint(sqlite3 *db, int op, int iSavepoint)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: NEVER
      Src: /src/nss/lib/sqlite/sqlite3.c:135904,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:135908,1
    - Dst: sqlite3GetVTable
      Src: /src/nss/lib/sqlite/sqlite3.c:135909,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:135910,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:135911,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:135927,1
    - Dst: sqlite3_module*::xFindFunction
      Src: /src/nss/lib/sqlite/sqlite3.c:135931,1
    - Dst: sqlite3DbMallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:135938,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:135939,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:135945,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:135945,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 4
    argNames:
    - db
    - pDef
    - nArg
    - pExpr
    argTypes:
    - sqlite3*
    - FuncDef*
    - int
    - Expr*
    assertStmts:
    - condition: ( pVtab->pModule!=0 )
      pos:
        line_end: 135910
        line_start: 135910
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pVtab!=0 )
      pos:
        line_end: 135909
        line_start: 135909
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( x==sqlite3UpperToLower[x] )
      pos:
        line_end: 135926
        line_start: 135926
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 135950
      start: 135889
    functionDepth: 2
    functionLinenumber: 135889
    functionLinenumberEnd: 135950
    functionName: sqlite3VtabOverloadFunction
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - NEVER
    - memcpy
    - sqlite3DbMallocZero
    - sqlite3_module*::xFindFunction
    - assert
    - sqlite3Strlen30
    - sqlite3GetVTable
    - IsVirtual
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3VtabOverloadFunction(\n  sqlite3 *db,    /*
      Database connection for reporting malloc problems */\n  FuncDef *pDef,  /* Function
      to possibly overload */\n  int nArg,       /* Number of arguments to the function
      */\n  Expr *pExpr     /* First argument to the function */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ParseToplevel
      Src: /src/nss/lib/sqlite/sqlite3.c:135959,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:135963,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:135963,1
    - Dst: sqlite3_realloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:135968,1
    - Dst: sqlite3OomFault
      Src: /src/nss/lib/sqlite/sqlite3.c:135973,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - pParse
    - pTab
    argTypes:
    - Parse*
    - Table*
    assertStmts:
    - condition: ( IsVirtual(pTab) )
      pos:
        line_end: 135962
        line_start: 135962
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 135975
      start: 135958
    functionDepth: 7
    functionLinenumber: 135958
    functionLinenumberEnd: 135975
    functionName: sqlite3VtabMakeWritable
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 3
    functionsReached:
    - assert
    - sqlite3OomFault
    - sqlite3ParseToplevel
    - sqlite3_realloc64
    - IsVirtual
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VtabMakeWritable(Parse *pParse, Table *pTab)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbMallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:135999,1
    - Dst: sqlite3DbStrDup
      Src: /src/nss/lib/sqlite/sqlite3.c:136001,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:136003,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:136009,1
    - Dst: addModuleArgument
      Src: /src/nss/lib/sqlite/sqlite3.c:136011,1
    - Dst: sqlite3DbStrDup
      Src: /src/nss/lib/sqlite/sqlite3.c:136011,1
    - Dst: addModuleArgument
      Src: /src/nss/lib/sqlite/sqlite3.c:136012,1
    - Dst: addModuleArgument
      Src: /src/nss/lib/sqlite/sqlite3.c:136013,1
    - Dst: sqlite3DbStrDup
      Src: /src/nss/lib/sqlite/sqlite3.c:136013,1
    - Dst: vtabCallConstructor
      Src: /src/nss/lib/sqlite/sqlite3.c:136014,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:136016,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:136017,1
    - Dst: sqlite3VtabEponymousTableClear
      Src: /src/nss/lib/sqlite/sqlite3.c:136018,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - pParse
    - pMod
    argTypes:
    - Parse*
    - Module*
    assertStmts:
    - condition: ( pTab->nModuleArg==0 )
      pos:
        line_end: 136008
        line_start: 136008
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 136022
      start: 135991
    functionDepth: 11
    functionLinenumber: 135991
    functionLinenumberEnd: 136022
    functionName: sqlite3VtabEponymousTableInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3VtabEponymousTableClear
    - sqlite3DbStrDup
    - sqlite3DbFree
    - assert
    - vtabCallConstructor
    - addModuleArgument
    - sqlite3ErrorMsg
    - sqlite3DbMallocZero
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VtabEponymousTableInit(Parse *pParse, Module
      *pMod)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DeleteTable
      Src: /src/nss/lib/sqlite/sqlite3.c:136035,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - db
    - pMod
    argTypes:
    - sqlite3*
    - Module*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136038
      start: 136028
    functionDepth: 0
    functionLinenumber: 136028
    functionLinenumberEnd: 136038
    functionName: sqlite3VtabEponymousTableClear
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3DeleteTable
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3VtabEponymousTableClear(sqlite3 *db, Module *pMod)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/nss/lib/sqlite/sqlite3.c:136052,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:136054,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:136055,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:136056,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts:
    - condition: ( OE_Rollback==1 && OE_Abort==2 && OE_Fail==3 )
      pos:
        line_end: 136053
        line_start: 136053
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( OE_Ignore==4 && OE_Replace==5 )
      pos:
        line_end: 136054
        line_start: 136054
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( db->vtabOnConflict>=1 && db->vtabOnConflict<=5 )
      pos:
        line_end: 136055
        line_start: 136055
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 136058
      start: 136047
    functionDepth: 12
    functionLinenumber: 136047
    functionLinenumberEnd: 136058
    functionName: sqlite3_vtab_on_conflict
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3SafetyCheckOk
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_vtab_on_conflict(sqlite3 *db)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/nss/lib/sqlite/sqlite3.c:136070,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:136072,1
    - Dst: va_start
      Src: /src/nss/lib/sqlite/sqlite3.c:136073,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:136080,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:136080,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:136081,1
    - Dst: va_end
      Src: /src/nss/lib/sqlite/sqlite3.c:136089,1
    - Dst: sqlite3Error
      Src: /src/nss/lib/sqlite/sqlite3.c:136091,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:136092,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - db
    - op
    argTypes:
    - sqlite3*
    - int
    assertStmts:
    - condition: ( p->pTab==0 || IsVirtual(p->pTab) )
      pos:
        line_end: 136079
        line_start: 136079
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 136094
      start: 136065
    functionDepth: 12
    functionLinenumber: 136065
    functionLinenumberEnd: 136094
    functionName: sqlite3_vtab_config
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - va_end
    - sqlite3SafetyCheckOk
    - sqlite3_mutex_leave
    - assert
    - sqlite3Error
    - va_start
    - va_arg
    - IsVirtual
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_vtab_config(sqlite3 *db, int op, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - K
    - ','
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136150
      start: 136149
    functionDepth: 0
    functionLinenumber: 136149
    functionLinenumberEnd: 136150
    functionName: WHERETRACE
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WHERETRACE(K,X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - P
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136512
      start: 136511
    functionDepth: 0
    functionLinenumber: 136511
    functionLinenumberEnd: 136512
    functionName: initMaskSet
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: initMaskSet(P)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - u
    - ','
    - v
    - ','
    - w
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136621
      start: 136620
    functionDepth: 0
    functionLinenumber: 136620
    functionLinenumberEnd: 136621
    functionName: sqlite3WhereExplainOneScan
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3WhereExplainOneScan(u,v,w,x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136631
      start: 136630
    functionDepth: 0
    functionLinenumber: 136630
    functionLinenumberEnd: 136631
    functionName: sqlite3WhereAddScanStatus
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3WhereAddScanStatus(a, b, c, d)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - pIdx
    - i
    argTypes:
    - Index*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136726
      start: 136721
    functionDepth: 0
    functionLinenumber: 136721
    functionLinenumberEnd: 136726
    functionName: explainIndexColumnName
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *explainIndexColumnName(Index *pIdx, int i)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:136746,1
    - Dst: sqlite3_str_append
      Src: /src/nss/lib/sqlite/sqlite3.c:136747,1
    - Dst: sqlite3_str_append
      Src: /src/nss/lib/sqlite/sqlite3.c:136749,1
    - Dst: sqlite3_str_append
      Src: /src/nss/lib/sqlite/sqlite3.c:136751,1
    - Dst: sqlite3_str_appendall
      Src: /src/nss/lib/sqlite/sqlite3.c:136752,1
    - Dst: explainIndexColumnName
      Src: /src/nss/lib/sqlite/sqlite3.c:136752,1
    - Dst: sqlite3_str_append
      Src: /src/nss/lib/sqlite/sqlite3.c:136754,1
    - Dst: sqlite3_str_append
      Src: /src/nss/lib/sqlite/sqlite3.c:136756,1
    - Dst: sqlite3_str_append
      Src: /src/nss/lib/sqlite/sqlite3.c:136758,1
    - Dst: sqlite3_str_append
      Src: /src/nss/lib/sqlite/sqlite3.c:136760,1
    - Dst: sqlite3_str_append
      Src: /src/nss/lib/sqlite/sqlite3.c:136761,1
    - Dst: sqlite3_str_append
      Src: /src/nss/lib/sqlite/sqlite3.c:136763,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 6
    argNames:
    - pStr
    - pIdx
    - nTerm
    - iTerm
    - bAnd
    - zOp
    argTypes:
    - StrAccum*
    - Index*
    - int
    - int
    - int
    - char*
    assertStmts:
    - condition: ( nTerm>=1 )
      pos:
        line_end: 136745
        line_start: 136745
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 136764
      start: 136736
    functionDepth: 3
    functionLinenumber: 136736
    functionLinenumberEnd: 136764
    functionName: explainAppendTerm
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_str_append
    - sqlite3_str_appendall
    - explainIndexColumnName
    linkageType: ''
    returnType: void
    signature: "void explainAppendTerm(\n  StrAccum *pStr,             /* The text
      expression being built */\n  Index *pIdx,                /* Index to read column
      names from */\n  int nTerm,                  /* Number of terms */\n  int iTerm,
      \                 /* Zero-based index of first term. */\n  int bAnd,                   /*
      Non-zero to append \" AND \" */\n  const char *zOp             /* Name of the
      operator */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_str_append
      Src: /src/nss/lib/sqlite/sqlite3.c:136787,1
    - Dst: explainIndexColumnName
      Src: /src/nss/lib/sqlite/sqlite3.c:136789,1
    - Dst: sqlite3_str_append
      Src: /src/nss/lib/sqlite/sqlite3.c:136790,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:136791,1
    - Dst: explainAppendTerm
      Src: /src/nss/lib/sqlite/sqlite3.c:136796,1
    - Dst: explainAppendTerm
      Src: /src/nss/lib/sqlite/sqlite3.c:136800,1
    - Dst: sqlite3_str_append
      Src: /src/nss/lib/sqlite/sqlite3.c:136802,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - pStr
    - pLoop
    argTypes:
    - StrAccum*
    - WhereLoop*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136803
      start: 136780
    functionDepth: 9
    functionLinenumber: 136780
    functionLinenumberEnd: 136803
    functionName: explainIndexRange
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_str_append
    - explainAppendTerm
    - explainIndexColumnName
    - sqlite3_str_appendf
    linkageType: ''
    returnType: void
    signature: void explainIndexRange(StrAccum *pStr, WhereLoop *pLoop)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeScanStatus
      Src: /src/nss/lib/sqlite/sqlite3.c:136940,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - v
    - pSrclist
    - pLvl
    - addrExplain
    argTypes:
    - Vdbe*
    - SrcList*
    - WhereLevel*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136943
      start: 136927
    functionDepth: 9
    functionLinenumber: 136927
    functionLinenumberEnd: 136943
    functionName: sqlite3WhereAddScanStatus
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeScanStatus
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3WhereAddScanStatus(\n  Vdbe *v,                        /*
      Vdbe to add scanstatus entry to */\n  SrcList *pSrclist,              /* FROM
      clause pLvl reads data from */\n  WhereLevel *pLvl,               /* Level to
      add scanstatus() entry for */\n  int addrExplain                 /* Address
      of OP_Explain (or 0) */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:136991,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:136993,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:137003,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 17
    argCount: 2
    argNames:
    - pLevel
    - pTerm
    argTypes:
    - WhereLevel*
    - WhereTerm*
    assertStmts:
    - condition: ( pTerm!=0 )
      pos:
        line_end: 136990
        line_start: 136990
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTerm!=0 )
      pos:
        line_end: 137002
        line_start: 137002
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 137008
      start: 136989
    functionDepth: 1
    functionLinenumber: 136989
    functionLinenumberEnd: 137008
    functionName: disableTerm
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - ExprHasProperty
    linkageType: ''
    returnType: void
    signature: void disableTerm(WhereLevel *pLevel, WhereTerm *pTerm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:137024,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:137027,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:137043,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - pParse
    - base
    - n
    - zAff
    argTypes:
    - Parse*
    - int
    - int
    - char*
    assertStmts:
    - condition: ( pParse->db->mallocFailed )
      pos:
        line_end: 137023
        line_start: 137023
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( v!=0 )
      pos:
        line_end: 137026
        line_start: 137026
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 137045
      start: 137021
    functionDepth: 12
    functionLinenumber: 137021
    functionLinenumberEnd: 137045
    functionName: codeApplyAffinity
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3VdbeAddOp4
    linkageType: ''
    returnType: void
    signature: void codeApplyAffinity(Parse *pParse, int base, int n, char *zAff)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VectorFieldSubexpr
      Src: /src/nss/lib/sqlite/sqlite3.c:137064,1
    - Dst: sqlite3CompareAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:137065,1
    - Dst: sqlite3ExprNeedsNoAffinityChange
      Src: /src/nss/lib/sqlite/sqlite3.c:137066,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - pRight
    - n
    - zAff
    argTypes:
    - Expr*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137071
      start: 137057
    functionDepth: 3
    functionLinenumber: 137057
    functionLinenumberEnd: 137071
    functionName: updateRangeAffinityStr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VectorFieldSubexpr
    - sqlite3CompareAffinity
    - sqlite3ExprNeedsNoAffinityChange
    linkageType: ''
    returnType: void
    signature: "void updateRangeAffinityStr(\n  Expr *pRight,                   /*
      RHS of comparison */\n  int n,                          /* Number of vector
      elements in comparison */\n  char *zAff                      /* Affinity string
      to modify */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprDup
      Src: /src/nss/lib/sqlite/sqlite3.c:137110,1
    - Dst: sqlite3ExprListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:137123,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:137125,1
    - Dst: sqlite3ExprListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:137126,1
    - Dst: sqlite3ExprListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:137130,1
    - Dst: sqlite3ExprListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:137131,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:137140,1
    - Dst: printf
      Src: /src/nss/lib/sqlite/sqlite3.c:137159,1
    - Dst: sqlite3TreeViewExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:137160,1
    - Dst: printf
      Src: /src/nss/lib/sqlite/sqlite3.c:137161,1
    - Dst: sqlite3TreeViewExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:137162,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 4
    argNames:
    - pParse
    - iEq
    - pLoop
    - pX
    argTypes:
    - Parse*
    - int
    - WhereLoop*
    - Expr*
    assertStmts:
    - condition: ( pOrigLhs->a[iField].pExpr!=0 )
      pos:
        line_end: 137124
        line_start: 137124
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 137166
      start: 137103
    functionDepth: 13
    functionLinenumber: 137103
    functionLinenumberEnd: 137166
    functionName: removeUnindexableInClauseTerms
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - printf
    - sqlite3ExprDelete
    - assert
    - sqlite3TreeViewExpr
    - sqlite3ExprDup
    - sqlite3ExprListAppend
    - sqlite3ExprListDelete
    linkageType: ''
    returnType: Expr
    signature: "Expr *removeUnindexableInClauseTerms(\n  Parse *pParse,        /*
      The parsing context */\n  int iEq,              /* Look at loop terms starting
      here */\n  WhereLoop *pLoop,     /* The current loop */\n  Expr *pX              /*
      The IN expression to be reduced */\n)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:137196,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:137197,1
    - Dst: sqlite3ExprCodeTarget
      Src: /src/nss/lib/sqlite/sqlite3.c:137199,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:137202,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:137217,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:137218,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:137221,1
    - Dst: disableTerm
      Src: /src/nss/lib/sqlite/sqlite3.c:137226,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:137231,1
    - Dst: sqlite3FindInIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:137237,1
    - Dst: removeUnindexableInClauseTerms
      Src: /src/nss/lib/sqlite/sqlite3.c:137240,1
    - Dst: sqlite3DbMallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:137243,1
    - Dst: sqlite3FindInIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:137244,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:137247,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:137252,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:137255,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:137256,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:137257,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:137258,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:137262,1
    - Dst: sqlite3DbReallocOrFree
      Src: /src/nss/lib/sqlite/sqlite3.c:137268,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:137278,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:137281,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:137283,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:137283,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:137303,1
    - Dst: disableTerm
      Src: /src/nss/lib/sqlite/sqlite3.c:137306,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 91
    argCount: 6
    argNames:
    - pParse
    - pTerm
    - pLevel
    - iEq
    - bRev
    - iTarget
    argTypes:
    - Parse*
    - WhereTerm*
    - WhereLevel*
    - int
    - int
    - int
    assertStmts:
    - condition: ( pLevel->pWLoop->aLTerm[iEq]==pTerm )
      pos:
        line_end: 137195
        line_start: 137195
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iTarget>0 )
      pos:
        line_end: 137196
        line_start: 137196
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pLoop->aLTerm[i]!=0 )
      pos:
        line_end: 137230
        line_start: 137230
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pLoop->wsFlags & WHERE_MULTI_OR)==0 )
      pos:
        line_end: 137257
        line_start: 137257
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pX->op==TK_IN )
      pos:
        line_end: 137220
        line_start: 137220
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 137308
      start: 137184
    functionDepth: 16
    functionLinenumber: 137184
    functionLinenumberEnd: 137308
    functionName: codeEqualityTerm
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeAddOp2
    - sqlite3DbFree
    - disableTerm
    - sqlite3VdbeAddOp3
    - sqlite3DbReallocOrFree
    - sqlite3ExprDelete
    - assert
    - removeUnindexableInClauseTerms
    - sqlite3FindInIndex
    - sqlite3ExprCodeTarget
    - VdbeCoverageIf
    - sqlite3VdbeAddOp1
    - VdbeCoverage
    - sqlite3VdbeMakeLabel
    - testcase
    - sqlite3DbMallocZero
    linkageType: ''
    returnType: int
    signature: "int codeEqualityTerm(\n  Parse *pParse,      /* The parsing context
      */\n  WhereTerm *pTerm,   /* The term of the WHERE clause to be coded */\n  WhereLevel
      *pLevel, /* The level of the FROM clause we are working on */\n  int iEq,            /*
      Index of the equality term within this level */\n  int bRev,           /* True
      for reverse-order IN operations */\n  int iTarget         /* Attempt to leave
      results in this register */\n)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:137375,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:137379,1
    - Dst: sqlite3DbStrDup
      Src: /src/nss/lib/sqlite/sqlite3.c:137387,1
    - Dst: sqlite3IndexAffinityStr
      Src: /src/nss/lib/sqlite/sqlite3.c:137387,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:137388,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:137392,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:137393,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:137394,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:137395,1
    - Dst: sqlite3VdbeAddOp0
      Src: /src/nss/lib/sqlite/sqlite3.c:137396,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/nss/lib/sqlite/sqlite3.c:137397,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:137399,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:137400,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:137401,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:137403,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:137404,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:137405,1
    - Dst: explainIndexColumnName
      Src: /src/nss/lib/sqlite/sqlite3.c:137405,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:137411,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:137411,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:137415,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:137418,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:137419,1
    - Dst: codeEqualityTerm
      Src: /src/nss/lib/sqlite/sqlite3.c:137420,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:137423,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:137426,1
    - Dst: sqlite3ExprCanBeNull
      Src: /src/nss/lib/sqlite/sqlite3.c:137439,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:137440,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:137441,1
    - Dst: sqlite3CompareAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:137444,1
    - Dst: sqlite3ExprNeedsNoAffinityChange
      Src: /src/nss/lib/sqlite/sqlite3.c:137447,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 66
    argCount: 5
    argNames:
    - pParse
    - pLevel
    - bRev
    - nExtraReg
    - pzAff
    argTypes:
    - Parse*
    - WhereLevel*
    - int
    - int
    - char**
    assertStmts:
    - condition: ( pTerm!=0 )
      pos:
        line_end: 137414
        line_start: 137414
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pLoop->wsFlags & WHERE_VIRTUALTABLE)==0 )
      pos:
        line_end: 137374
        line_start: 137374
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( zAff!=0 || pParse->db->mallocFailed )
      pos:
        line_end: 137387
        line_start: 137387
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIdx!=0 )
      pos:
        line_end: 137378
        line_start: 137378
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( zAff==0 || (int)strlen(zAff)>=nEq )
      pos:
        line_end: 137410
        line_start: 137410
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 137455
      start: 137355
    functionDepth: 17
    functionLinenumber: 137355
    functionLinenumberEnd: 137455
    functionName: codeAllEqualityTerms
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - explainIndexColumnName
    - sqlite3VdbeAddOp2
    - sqlite3VdbeAddOp3
    - sqlite3CompareAffinity
    - testcase
    - VdbeComment
    - strlen
    - sqlite3DbStrDup
    - sqlite3VdbeAddOp4Int
    - assert
    - sqlite3VdbeJumpHere
    - sqlite3ExprNeedsNoAffinityChange
    - VdbeCoverageIf
    - sqlite3ExprCanBeNull
    - codeEqualityTerm
    - sqlite3VdbeAddOp0
    - sqlite3IndexAffinityStr
    - sqlite3VdbeAddOp1
    - VdbeCoverage
    - sqlite3ReleaseTempReg
    linkageType: ''
    returnType: int
    signature: "int codeAllEqualityTerms(\n  Parse *pParse,        /* Parsing context
      */\n  WhereLevel *pLevel,   /* Which nested loop of the FROM we are coding */\n
      \ int bRev,             /* Reverse the order of IN operators */\n  int nExtraReg,
      \       /* Number of extra registers to allocate */\n  char **pzAff          /*
      OUT: Set to point to affinity string */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:137482,1
    - Dst: sqlite3VdbeGetOp
      Src: /src/nss/lib/sqlite/sqlite3.c:137483,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:137484,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:137485,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - v
    - pLevel
    - pTerm
    argTypes:
    - Vdbe*
    - WhereLevel*
    - WhereTerm*
    assertStmts:
    - condition: ( pLevel->iLikeRepCntr>0 )
      pos:
        line_end: 137481
        line_start: 137481
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( pOp->opcode==OP_String8 \n            || pTerm->pWC->pWInfo->pParse->db->mallocFailed
        )"
      pos:
        line_end: 137485
        line_start: 137484
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp!=0 )
      pos:
        line_end: 137483
        line_start: 137483
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 137490
      start: 137475
    functionDepth: 1
    functionLinenumber: 137475
    functionLinenumberEnd: 137490
    functionName: whereLikeOptimizationStringFixup
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3VdbeGetOp
    linkageType: ''
    returnType: void
    signature: "void whereLikeOptimizationStringFixup(\n  Vdbe *v,                /*
      prepared statement under construction */\n  WhereLevel *pLevel,     /* The loop
      that contains the LIKE operator */\n  WhereTerm *pTerm        /* The upper or
      lower bound just coded */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:137515,1
    - Dst: sqlite3ColumnOfIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:137518,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - pWalker
    - pExpr
    argTypes:
    - Walker*
    - Expr*
    assertStmts:
    - condition: ( pHint->pIdx!=0 )
      pos:
        line_end: 137514
        line_start: 137514
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 137523
      start: 137513
    functionDepth: 1
    functionLinenumber: 137513
    functionLinenumberEnd: 137523
    functionName: codeCursorHintCheckExpr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3ColumnOfIndex
    linkageType: ''
    returnType: int
    signature: int codeCursorHintCheckExpr(Walker *pWalker, Expr *pExpr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3IsLikeFunction
      Src: /src/nss/lib/sqlite/sqlite3.c:137549,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 2
    argNames:
    - pWalker
    - pExpr
    argTypes:
    - Walker*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137555
      start: 137540
    functionDepth: 9
    functionLinenumber: 137540
    functionLinenumberEnd: 137555
    functionName: codeCursorHintIsOrFunction
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3IsLikeFunction
    linkageType: ''
    returnType: int
    signature: int codeCursorHintIsOrFunction(Walker *pWalker, Expr *pExpr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprCode
      Src: /src/nss/lib/sqlite/sqlite3.c:137581,1
    - Dst: sqlite3ColumnOfIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:137586,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:137587,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - pWalker
    - pExpr
    argTypes:
    - Walker*
    - Expr*
    assertStmts:
    - condition: ( pExpr->iColumn>=0 )
      pos:
        line_end: 137586
        line_start: 137586
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 137600
      start: 137575
    functionDepth: 17
    functionLinenumber: 137575
    functionLinenumberEnd: 137600
    functionName: codeCursorHintFixExpr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3ColumnOfIndex
    - sqlite3ExprCode
    linkageType: ''
    returnType: int
    signature: int codeCursorHintFixExpr(Walker *pWalker, Expr *pExpr)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: OptimizationDisabled
      Src: /src/nss/lib/sqlite/sqlite3.c:137623,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:137625,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:137629,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:137662,1
    - Dst: sqlite3WalkExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:137667,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:137671,1
    - Dst: sqlite3ExprContainsSubquery
      Src: /src/nss/lib/sqlite/sqlite3.c:137683,1
    - Dst: sqlite3WalkExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:137690,1
    - Dst: sqlite3ExprAnd
      Src: /src/nss/lib/sqlite/sqlite3.c:137695,1
    - Dst: sqlite3ExprDup
      Src: /src/nss/lib/sqlite/sqlite3.c:137695,1
    - Dst: sqlite3WalkExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:137699,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:137700,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 52
    argCount: 4
    argNames:
    - pTabItem
    - pWInfo
    - pLevel
    - pEndRange
    argTypes:
    - struct SrcList_item*
    - WhereInfo*
    - WhereLevel*
    - WhereTerm*
    assertStmts:
    - condition: ( iCur==pWInfo->pTabList->a[pLevel->iFrom].iCursor )
      pos:
        line_end: 137624
        line_start: 137624
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 137704
      start: 137605
    functionDepth: 13
    functionLinenumber: 137605
    functionLinenumberEnd: 137704
    functionName: codeCursorHint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ExprContainsSubquery
    - OptimizationDisabled
    - assert
    - memset
    - sqlite3VdbeAddOp4
    - sqlite3ExprAnd
    - sqlite3ExprDup
    - sqlite3WalkExpr
    - ExprHasProperty
    linkageType: ''
    returnType: void
    signature: "void codeCursorHint(\n  struct SrcList_item *pTabItem,  /* FROM clause
      item */\n  WhereInfo *pWInfo,    /* The where clause */\n  WhereLevel *pLevel,
      \  /* Which loop to provide hints for */\n  WhereTerm *pEndRange  /* Hint this
      end-of-scan boundary term if not NULL */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:137736,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:137737,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:137739,1
    - Dst: DbMaskAllZero
      Src: /src/nss/lib/sqlite/sqlite3.c:137741,1
    - Dst: sqlite3ParseToplevel
      Src: /src/nss/lib/sqlite/sqlite3.c:137741,1
    - Dst: sqlite3DbMallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:137745,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:137749,1
    - Dst: sqlite3VdbeChangeP4
      Src: /src/nss/lib/sqlite/sqlite3.c:137752,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - pWInfo
    - pIdx
    - iCur
    - iIdxCur
    argTypes:
    - WhereInfo*
    - Index*
    - int
    - int
    assertStmts:
    - condition: ( iIdxCur>0 )
      pos:
        line_end: 137735
        line_start: 137735
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIdx->aiColumn[pIdx->nColumn-1]==-1 )
      pos:
        line_end: 137736
        line_start: 137736
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIdx->aiColumn[i]<pTab->nCol )
      pos:
        line_end: 137748
        line_start: 137748
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 137755
      start: 137727
    functionDepth: 12
    functionLinenumber: 137727
    functionLinenumberEnd: 137755
    functionName: codeDeferredSeek
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - DbMaskAllZero
    - sqlite3VdbeAddOp3
    - assert
    - sqlite3ParseToplevel
    - sqlite3VdbeChangeP4
    - sqlite3DbMallocZero
    linkageType: ''
    returnType: void
    signature: "void codeDeferredSeek(\n  WhereInfo *pWInfo,              /* Where
      clause context */\n  Index *pIdx,                    /* Index scan is using
      */\n  int iCur,                       /* Cursor for IPK b-tree */\n  int iIdxCur
      \                    /* Index cursor */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:137767,1
    - Dst: sqlite3ExprIsVector
      Src: /src/nss/lib/sqlite/sqlite3.c:137768,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:137773,1
    - Dst: sqlite3CodeSubselect
      Src: /src/nss/lib/sqlite/sqlite3.c:137774,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:137775,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:137781,1
    - Dst: sqlite3ExprCode
      Src: /src/nss/lib/sqlite/sqlite3.c:137783,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:137787,1
    - Dst: sqlite3ExprCode
      Src: /src/nss/lib/sqlite/sqlite3.c:137788,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - pParse
    - p
    - iReg
    - nReg
    argTypes:
    - Parse*
    - Expr*
    - int
    - int
    assertStmts:
    - condition: ( nReg>0 )
      pos:
        line_end: 137766
        line_start: 137766
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->op==TK_SELECT )
      pos:
        line_end: 137772
        line_start: 137772
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nReg<=pList->nExpr )
      pos:
        line_end: 137780
        line_start: 137780
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nReg==1 )
      pos:
        line_end: 137786
        line_start: 137786
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 137790
      start: 137766
    functionDepth: 17
    functionLinenumber: 137766
    functionLinenumberEnd: 137790
    functionName: codeExprOrVector
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ExprCode
    - sqlite3VdbeAddOp3
    - assert
    - sqlite3ExprIsVector
    - sqlite3CodeSubselect
    linkageType: ''
    returnType: void
    signature: void codeExprOrVector(Parse *pParse, Expr *p, int iReg, int nReg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:137811,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - p
    - pExpr
    argTypes:
    - Walker*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137820
      start: 137809
    functionDepth: 18
    functionLinenumber: 137809
    functionLinenumberEnd: 137820
    functionName: whereIndexExprTransNode
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ExprCompare
    linkageType: ''
    returnType: int
    signature: int whereIndexExprTransNode(Walker *p, Expr *pExpr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:137839,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:137846,1
    - Dst: sqlite3WalkExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:137849,1
    - Dst: sqlite3WalkExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:137850,1
    - Dst: sqlite3WalkExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:137851,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - pIdx
    - iTabCur
    - iIdxCur
    - pWInfo
    argTypes:
    - Index*
    - int
    - int
    - WhereInfo*
    assertStmts:
    - condition: ( aColExpr->a[iIdxCol].pExpr!=0 )
      pos:
        line_end: 137845
        line_start: 137845
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 137853
      start: 137827
    functionDepth: 5
    functionLinenumber: 137827
    functionLinenumberEnd: 137853
    functionName: whereIndexExprTrans
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3WalkExpr
    - assert
    - sqlite3WalkExprList
    linkageType: ''
    returnType: void
    signature: "void whereIndexExprTrans(\n  Index *pIdx,      /* The Index */\n  int
      iTabCur,      /* Cursor of the table that is being indexed */\n  int iIdxCur,
      \     /* Cursor of the index itself */\n  WhereInfo *pWInfo /* Transform expressions
      in this WHERE clause */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: whereApplyPartialIndexConstraints
      Src: /src/nss/lib/sqlite/sqlite3.c:137870,1
    - Dst: sqlite3ExprCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:137877,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - pTruth
    - iTabCur
    - pWC
    argTypes:
    - Expr*
    - int
    - WhereClause*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137881
      start: 137862
    functionDepth: 18
    functionLinenumber: 137862
    functionLinenumberEnd: 137881
    functionName: whereApplyPartialIndexConstraints
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3ExprCompare
    - whereApplyPartialIndexConstraints
    linkageType: ''
    returnType: void
    signature: "void whereApplyPartialIndexConstraints(\n  Expr *pTruth,\n  int iTabCur,\n
      \ WhereClause *pWC\n)"
  - BBCount: 104
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3WhereGetMask
      Src: /src/nss/lib/sqlite/sqlite3.c:137917,1
    - Dst: VdbeModuleComment
      Src: /src/nss/lib/sqlite/sqlite3.c:137919,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:137931,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:137932,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:137938,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:137943,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:137944,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:137955,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:137956,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:137957,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:137958,1
    - Dst: sqlite3GetTempRange
      Src: /src/nss/lib/sqlite/sqlite3.c:137972,1
    - Dst: NEVER
      Src: /src/nss/lib/sqlite/sqlite3.c:137977,1
    - Dst: codeEqualityTerm
      Src: /src/nss/lib/sqlite/sqlite3.c:137979,1
    - Dst: codeExprOrVector
      Src: /src/nss/lib/sqlite/sqlite3.c:137983,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:137986,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:137987,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:137988,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:137991,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:137995,1
    - Dst: disableTerm
      Src: /src/nss/lib/sqlite/sqlite3.c:138000,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:138010,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:138012,1
    - Dst: sqlite3VdbeGetOp
      Src: /src/nss/lib/sqlite/sqlite3.c:138013,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:138014,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:138015,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:138016,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:138017,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:138018,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:138023,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:138024,1
    - Dst: sqlite3Expr
      Src: /src/nss/lib/sqlite/sqlite3.c:138027,1
    - Dst: sqlite3ExprIfFalse
      Src: /src/nss/lib/sqlite/sqlite3.c:138030,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:138033,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:138055,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:138057,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:138058,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:138059,1
    - Dst: codeEqualityTerm
      Src: /src/nss/lib/sqlite/sqlite3.c:138061,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:138062,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:138064,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:138065,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:138084,1
    - Dst: codeCursorHint
      Src: /src/nss/lib/sqlite/sqlite3.c:138090,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:138105,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:138106,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:138107,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:138109,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:138110,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:138112,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:138113,1
    - Dst: sqlite3ExprIsVector
      Src: /src/nss/lib/sqlite/sqlite3.c:138114,1
    - Dst: sqlite3GetTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:138115,1
    - Dst: codeExprOrVector
      Src: /src/nss/lib/sqlite/sqlite3.c:138116,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:138117,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:138118,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:138119,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:138120,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:138122,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:138123,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:138124,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:138125,1
    - Dst: sqlite3ExprCodeTemp
      Src: /src/nss/lib/sqlite/sqlite3.c:138127,1
    - Dst: disableTerm
      Src: /src/nss/lib/sqlite/sqlite3.c:138128,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:138131,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:138132,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:138133,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:138134,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:138135,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:138136,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:138137,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:138139,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:138140,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:138141,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:138146,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:138147,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:138148,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:138149,1
    - Dst: codeExprOrVector
      Src: /src/nss/lib/sqlite/sqlite3.c:138151,1
    - Dst: sqlite3ExprIsVector
      Src: /src/nss/lib/sqlite/sqlite3.c:138152,1
    - Dst: sqlite3ExprIsVector
      Src: /src/nss/lib/sqlite/sqlite3.c:138159,1
    - Dst: disableTerm
      Src: /src/nss/lib/sqlite/sqlite3.c:138160,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:138163,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:138167,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:138170,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:138171,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:138172,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:138173,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:138174,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:138175,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:138176,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:138248,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:138258,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:138265,1
    - Dst: MAX
      Src: /src/nss/lib/sqlite/sqlite3.c:138276,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:138278,1
    - Dst: MAX
      Src: /src/nss/lib/sqlite/sqlite3.c:138283,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:138286,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:138287,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:138289,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:138290,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:138291,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:138294,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:138295,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:138296,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:138308,1
    - Dst: SWAP
      Src: /src/nss/lib/sqlite/sqlite3.c:138318,1
    - Dst: SWAP
      Src: /src/nss/lib/sqlite/sqlite3.c:138319,1
    - Dst: codeCursorHint
      Src: /src/nss/lib/sqlite/sqlite3.c:138326,1
    - Dst: codeAllEqualityTerms
      Src: /src/nss/lib/sqlite/sqlite3.c:138327,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:138328,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:138328,1
    - Dst: sqlite3DbStrDup
      Src: /src/nss/lib/sqlite/sqlite3.c:138330,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:138334,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:138335,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:138336,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:138337,1
    - Dst: codeExprOrVector
      Src: /src/nss/lib/sqlite/sqlite3.c:138346,1
    - Dst: whereLikeOptimizationStringFixup
      Src: /src/nss/lib/sqlite/sqlite3.c:138347,1
    - Dst: sqlite3ExprCanBeNull
      Src: /src/nss/lib/sqlite/sqlite3.c:138349,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:138351,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:138352,1
    - Dst: updateRangeAffinityStr
      Src: /src/nss/lib/sqlite/sqlite3.c:138355,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:138358,1
    - Dst: sqlite3ExprIsVector
      Src: /src/nss/lib/sqlite/sqlite3.c:138359,1
    - Dst: disableTerm
      Src: /src/nss/lib/sqlite/sqlite3.c:138360,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:138366,1
    - Dst: codeApplyAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:138371,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:138378,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:138381,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/nss/lib/sqlite/sqlite3.c:138382,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:138383,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:138384,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:138384,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:138385,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:138385,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:138386,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:138386,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:138387,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:138387,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:138388,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:138388,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:138389,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:138389,1
    - Dst: codeExprOrVector
      Src: /src/nss/lib/sqlite/sqlite3.c:138398,1
    - Dst: whereLikeOptimizationStringFixup
      Src: /src/nss/lib/sqlite/sqlite3.c:138399,1
    - Dst: sqlite3ExprCanBeNull
      Src: /src/nss/lib/sqlite/sqlite3.c:138401,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:138403,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:138404,1
    - Dst: updateRangeAffinityStr
      Src: /src/nss/lib/sqlite/sqlite3.c:138407,1
    - Dst: codeApplyAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:138408,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:138410,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:138413,1
    - Dst: sqlite3ExprIsVector
      Src: /src/nss/lib/sqlite/sqlite3.c:138415,1
    - Dst: disableTerm
      Src: /src/nss/lib/sqlite/sqlite3.c:138416,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:138421,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:138425,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:138426,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:138429,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/nss/lib/sqlite/sqlite3.c:138434,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:138435,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:138435,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:138436,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:138436,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:138437,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:138437,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:138438,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:138438,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:138442,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:138450,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:138456,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:138457,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:138458,1
    - Dst: codeDeferredSeek
      Src: /src/nss/lib/sqlite/sqlite3.c:138460,1
    - Dst: sqlite3PrimaryKeyIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:138463,1
    - Dst: sqlite3GetTempRange
      Src: /src/nss/lib/sqlite/sqlite3.c:138464,1
    - Dst: sqlite3ColumnOfIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:138466,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:138467,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/nss/lib/sqlite/sqlite3.c:138469,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:138470,1
    - Dst: whereIndexExprTrans
      Src: /src/nss/lib/sqlite/sqlite3.c:138489,1
    - Dst: whereApplyPartialIndexConstraints
      Src: /src/nss/lib/sqlite/sqlite3.c:138497,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:138513,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:138571,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:138580,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:138581,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:138582,1
    - Dst: sqlite3StackAllocRaw
      Src: /src/nss/lib/sqlite/sqlite3.c:138595,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:138600,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:138603,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:138622,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:138624,1
    - Dst: sqlite3PrimaryKeyIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:138626,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:138628,1
    - Dst: sqlite3VdbeSetP4KeyInfo
      Src: /src/nss/lib/sqlite/sqlite3.c:138629,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:138633,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:138654,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:138655,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:138658,1
    - Dst: sqlite3ExprDup
      Src: /src/nss/lib/sqlite/sqlite3.c:138659,1
    - Dst: sqlite3ExprAnd
      Src: /src/nss/lib/sqlite/sqlite3.c:138660,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:138668,1
    - Dst: ExplainQueryPlan
      Src: /src/nss/lib/sqlite/sqlite3.c:138677,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:138684,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:138685,1
    - Dst: ExplainQueryPlan
      Src: /src/nss/lib/sqlite/sqlite3.c:138692,1
    - Dst: WHERETRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:138693,1
    - Dst: sqlite3WhereBegin
      Src: /src/nss/lib/sqlite/sqlite3.c:138694,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:138696,1
    - Dst: sqlite3WhereExplainOneScan
      Src: /src/nss/lib/sqlite/sqlite3.c:138699,1
    - Dst: sqlite3WhereAddScanStatus
      Src: /src/nss/lib/sqlite/sqlite3.c:138702,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:138711,1
    - Dst: sqlite3ExprCodeGetColumnOfTable
      Src: /src/nss/lib/sqlite/sqlite3.c:138712,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/nss/lib/sqlite/sqlite3.c:138713,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:138715,1
    - Dst: sqlite3PrimaryKeyIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:138717,1
    - Dst: sqlite3GetTempRange
      Src: /src/nss/lib/sqlite/sqlite3.c:138723,1
    - Dst: sqlite3ExprCodeGetColumnOfTable
      Src: /src/nss/lib/sqlite/sqlite3.c:138726,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/nss/lib/sqlite/sqlite3.c:138741,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:138742,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:138745,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/nss/lib/sqlite/sqlite3.c:138746,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:138748,1
    - Dst: sqlite3ReleaseTempRange
      Src: /src/nss/lib/sqlite/sqlite3.c:138752,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:138757,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:138761,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:138783,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:138786,1
    - Dst: IsPrimaryKeyIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:138786,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:138788,1
    - Dst: sqlite3WhereEnd
      Src: /src/nss/lib/sqlite/sqlite3.c:138795,1
    - Dst: ExplainQueryPlanPop
      Src: /src/nss/lib/sqlite/sqlite3.c:138796,1
    - Dst: ExplainQueryPlanPop
      Src: /src/nss/lib/sqlite/sqlite3.c:138800,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:138805,1
    - Dst: sqlite3VdbeChangeP1
      Src: /src/nss/lib/sqlite/sqlite3.c:138807,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:138807,1
    - Dst: sqlite3VdbeGoto
      Src: /src/nss/lib/sqlite/sqlite3.c:138808,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:138809,1
    - Dst: sqlite3StackFree
      Src: /src/nss/lib/sqlite/sqlite3.c:138811,1
    - Dst: disableTerm
      Src: /src/nss/lib/sqlite/sqlite3.c:138812,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:138822,1
    - Dst: codeCursorHint
      Src: /src/nss/lib/sqlite/sqlite3.c:138828,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:138831,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:138832,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:138833,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:138839,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:138862,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:138863,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:138866,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:138872,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:138873,1
    - Dst: sqlite3ExprCoveredByIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:138877,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:138897,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:138898,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:138899,1
    - Dst: VdbeNoopComment
      Src: /src/nss/lib/sqlite/sqlite3.c:138905,1
    - Dst: sqlite3ExprIfFalse
      Src: /src/nss/lib/sqlite/sqlite3.c:138909,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:138910,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:138933,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:138933,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:138934,1
    - Dst: sqlite3WhereFindTerm
      Src: /src/nss/lib/sqlite/sqlite3.c:138935,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:138945,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:138946,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:138947,1
    - Dst: VdbeModuleComment
      Src: /src/nss/lib/sqlite/sqlite3.c:138948,1
    - Dst: sqlite3ExprIfFalse
      Src: /src/nss/lib/sqlite/sqlite3.c:138951,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:138958,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:138959,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:138960,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:138962,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:138963,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:138966,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:138969,1
    - Dst: sqlite3ExprIfFalse
      Src: /src/nss/lib/sqlite/sqlite3.c:138970,1
    CyclomaticComplexity: 196
    EdgeCount: 196
    ICount: 616
    argCount: 6
    argNames:
    - pParse
    - v
    - pWInfo
    - iLevel
    - pLevel
    - notReady
    argTypes:
    - Parse*
    - Vdbe*
    - WhereInfo*
    - int
    - WhereLevel*
    - Bitmask
    assertStmts:
    - condition: ( pX!=0 )
      pos:
        line_end: 138111
        line_start: 138111
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pX->op!=TK_LE || op==OP_SeekLE )
      pos:
        line_end: 138124
        line_start: 138124
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( pWInfo->pOrderBy==0\n         || pWInfo->pOrderBy->nExpr==1\n
        \        || (pWInfo->wctrlFlags&WHERE_ORDERBY_MIN)==0 )"
      pos:
        line_end: 138259
        line_start: 138257
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( op!=0 )
      pos:
        line_end: 138380
        line_start: 138380
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( TK_GE==TK_GT+3 )
      pos:
        line_end: 138106
        line_start: 138106
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( TK_LT==TK_GT+2 )
      pos:
        line_end: 138105
        line_start: 138105
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pX->op!=TK_GT || op==OP_SeekGE )
      pos:
        line_end: 138121
        line_start: 138121
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iIn>0 )
      pos:
        line_end: 138011
        line_start: 138011
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( (pRangeStart->wtFlags & TERM_LIKEOPT)==0 || \n              (pLoop->wsFlags
        & WHERE_TOP_LIMIT)!=0 )"
      pos:
        line_end: 138278
        line_start: 138277
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pE!=0 )
      pos:
        line_end: 138871
        line_start: 138871
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pSubLoop->wsFlags & WHERE_AUTO_INDEX)==0 )
      pos:
        line_end: 138782
        line_start: 138782
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pEnd->wtFlags & TERM_VNULL)==0 )
      pos:
        line_end: 138146
        line_start: 138146
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pRangeStart->wtFlags & TERM_LIKEOPT )
      pos:
        line_end: 138286
        line_start: 138286
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCompare!=0 || db->mallocFailed )
      pos:
        line_end: 138023
        line_start: 138023
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTerm->eOperator & WO_OR )
      pos:
        line_end: 138580
        line_start: 138580
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( (pTabItem[0].fg.jointype & JT_LEFT)==0 \n             || ExprHasProperty(pOrExpr,
        EP_FromJoin) \n        )"
      pos:
        line_end: 138685
        line_start: 138683
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( bRev==0 || bRev==1 )
      pos:
        line_end: 138821
        line_start: 138821
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( (pWInfo->wctrlFlags & WHERE_OR_SUBCLAUSE)\n       || pLevel->iFrom>0
        || (pTabItem[0].fg.jointype & JT_LEFT)==0\n  )"
      pos:
        line_end: 137939
        line_start: 137937
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTerm!=0 )
      pos:
        line_end: 138056
        line_start: 138056
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pParse->db->mallocFailed )
      pos:
        line_end: 138409
        line_start: 138409
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pX->op!=TK_LT || op==OP_SeekLE )
      pos:
        line_end: 138123
        line_start: 138123
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nEq>=pLoop->nSkip )
      pos:
        line_end: 138247
        line_start: 138247
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !ExprHasProperty(pE, EP_FromJoin) )
      pos:
        line_end: 138932
        line_start: 138932
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pWInfo->untestedTerms )
      pos:
        line_end: 138965
        line_start: 138965
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pLevel->u.in.aInLoop!=0 || db->mallocFailed )
      pos:
        line_end: 138009
        line_start: 138009
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pTerm->prereqRight & pLevel->notReady)!=0 )
      pos:
        line_end: 138933
        line_start: 138933
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pStart->wtFlags & TERM_VNULL)==0 )
      pos:
        line_end: 138108
        line_start: 138108
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pLoop->nSkip==0 )
      pos:
        line_end: 138264
        line_start: 138264
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pRangeStart!=0 )
      pos:
        line_end: 138285
        line_start: 138285
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pTerm->wtFlags & TERM_ORINFO)!=0 )
      pos:
        line_end: 138581
        line_start: 138581
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (bRev & ~1)==0 )
      pos:
        line_end: 138295
        line_start: 138295
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->opcode==OP_Column || pOp->opcode==OP_Rowid )
      pos:
        line_end: 138013
        line_start: 138013
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pLevel->p5==0 )
      pos:
        line_end: 138166
        line_start: 138166
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pLevel->p5==0 )
      pos:
        line_end: 138512
        line_start: 138512
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->opcode!=OP_Rowid || pOp->p2==iReg+j+2 )
      pos:
        line_end: 138015
        line_start: 138015
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pLoop->u.btree.nEq==1 )
      pos:
        line_end: 138054
        line_start: 138054
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pStart!=0 || pEnd!=0 )
      pos:
        line_end: 138083
        line_start: 138083
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pSubWInfo || pParse->nErr || db->mallocFailed )
      pos:
        line_end: 138695
        line_start: 138695
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTerm->pExpr )
      pos:
        line_end: 138968
        line_start: 138968
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTerm->pExpr!=0 )
      pos:
        line_end: 138057
        line_start: 138057
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pX!=0 )
      pos:
        line_end: 138145
        line_start: 138145
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pX->op!=TK_GE || op==OP_SeekGE )
      pos:
        line_end: 138122
        line_start: 138122
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTerm!=0 )
      pos:
        line_end: 138579
        line_start: 138579
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pSubWInfo->a[0].iIdxCur==iCovCur )
      pos:
        line_end: 138787
        line_start: 138787
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pRangeEnd==0 || (pRangeEnd->wtFlags & TERM_VNULL)==0 )
      pos:
        line_end: 138307
        line_start: 138307
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( zStartAff==0 || sqlite3Strlen30(zStartAff)>=nEq )
      pos:
        line_end: 138327
        line_start: 138327
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOp->opcode!=OP_Column || pOp->p3==iReg+j+2 )
      pos:
        line_end: 138014
        line_start: 138014
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( TK_LE==TK_GT+1 )
      pos:
        line_end: 138104
        line_start: 138104
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 138976
      start: 137887
    functionDepth: 19
    functionLinenumber: 137887
    functionLinenumberEnd: 138976
    functionName: sqlite3WhereCodeOneLoopStart
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeChangeP1
    - sqlite3ExprCoveredByIndex
    - sqlite3VdbeSetP4KeyInfo
    - sqlite3VdbeAddOp2
    - VdbeNoopComment
    - disableTerm
    - sqlite3VdbeAddOp3
    - sqlite3VdbeResolveLabel
    - sqlite3StackFree
    - sqlite3PExpr
    - sqlite3ExprCodeGetColumnOfTable
    - ExplainQueryPlanPop
    - updateRangeAffinityStr
    - whereIndexExprTrans
    - sqlite3ExprIfFalse
    - sqlite3ExprDup
    - testcase
    - VdbeComment
    - HasRowid
    - memcpy
    - sqlite3VdbeGoto
    - codeExprOrVector
    - sqlite3VdbeCurrentAddr
    - sqlite3GetTempReg
    - sqlite3DbStrDup
    - sqlite3VdbeAddOp4Int
    - sqlite3StackAllocRaw
    - codeAllEqualityTerms
    - sqlite3ColumnOfIndex
    - whereApplyPartialIndexConstraints
    - assert
    - sqlite3VdbeJumpHere
    - sqlite3WhereGetMask
    - VdbeCoverageIf
    - sqlite3ExprCanBeNull
    - sqlite3Expr
    - sqlite3GetTempRange
    - SWAP
    - codeEqualityTerm
    - whereLikeOptimizationStringFixup
    - codeDeferredSeek
    - ExplainQueryPlan
    - ExprHasProperty
    - sqlite3VdbeGetOp
    - sqlite3WhereAddScanStatus
    - sqlite3WhereBegin
    - IsPrimaryKeyIndex
    - sqlite3WhereFindTerm
    - sqlite3WhereEnd
    - sqlite3DbFree
    - sqlite3ReleaseTempRange
    - sqlite3PrimaryKeyIndex
    - sqlite3ExprDelete
    - sqlite3VdbeAddOp4
    - codeApplyAffinity
    - MAX
    - sqlite3ExprIsVector
    - sqlite3Strlen30
    - sqlite3ExprCodeTemp
    - VdbeCoverage
    - sqlite3VdbeAddOp1
    - NEVER
    - WHERETRACE
    - sqlite3ReleaseTempReg
    - codeCursorHint
    - sqlite3VdbeChangeP5
    - VdbeModuleComment
    - sqlite3ExprAnd
    - sqlite3VdbeMakeLabel
    - sqlite3WhereExplainOneScan
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3WhereCodeOneLoopStart(\n  Parse *pParse,       /*
      Parsing context */\n  Vdbe *v,             /* Prepared statement under construction
      */\n  WhereInfo *pWInfo,   /* Complete information about the WHERE clause */\n
      \ int iLevel,          /* Which level of pWInfo->a[] should be coded */\n  WhereLevel
      *pLevel,  /* The current level pointer */\n  Bitmask notReady     /* Which tables
      are currently available */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3WhereClauseClear
      Src: /src/nss/lib/sqlite/sqlite3.c:139008,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:139009,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - WhereOrInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139010
      start: 139007
    functionDepth: 6
    functionLinenumber: 139007
    functionLinenumberEnd: 139010
    functionName: whereOrInfoDelete
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbFree
    - sqlite3WhereClauseClear
    linkageType: ''
    returnType: void
    signature: void whereOrInfoDelete(sqlite3 *db, WhereOrInfo *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3WhereClauseClear
      Src: /src/nss/lib/sqlite/sqlite3.c:139016,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:139017,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - WhereAndInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139018
      start: 139015
    functionDepth: 6
    functionLinenumber: 139015
    functionLinenumberEnd: 139018
    functionName: whereAndInfoDelete
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbFree
    - sqlite3WhereClauseClear
    linkageType: ''
    returnType: void
    signature: void whereAndInfoDelete(sqlite3 *db, WhereAndInfo *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:139042,1
    - Dst: sqlite3DbMallocRawNN
      Src: /src/nss/lib/sqlite/sqlite3.c:139046,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:139049,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:139054,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:139056,1
    - Dst: sqlite3DbMallocSize
      Src: /src/nss/lib/sqlite/sqlite3.c:139058,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:139061,1
    - Dst: sqlite3LogEst
      Src: /src/nss/lib/sqlite/sqlite3.c:139062,1
    - Dst: sqlite3ExprSkipCollate
      Src: /src/nss/lib/sqlite/sqlite3.c:139066,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:139070,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 3
    argNames:
    - pWC
    - p
    - wtFlags
    argTypes:
    - WhereClause*
    - Expr*
    - u16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139073
      start: 139039
    functionDepth: 8
    functionLinenumber: 139039
    functionLinenumberEnd: 139073
    functionName: whereClauseInsert
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - sqlite3DbMallocRawNN
    - sqlite3DbFree
    - sqlite3LogEst
    - sqlite3ExprSkipCollate
    - sqlite3ExprDelete
    - sqlite3DbMallocSize
    - memset
    - ExprHasProperty
    - testcase
    linkageType: ''
    returnType: int
    signature: int whereClauseInsert(WhereClause *pWC, Expr *p, u16 wtFlags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:139081,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:139082,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:139083,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:139084,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - int
    assertStmts:
    - condition: ( TK_GT>TK_EQ && TK_GT<TK_GE )
      pos:
        line_end: 139080
        line_start: 139080
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( TK_GE==TK_EQ+4 )
      pos:
        line_end: 139083
        line_start: 139083
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( TK_LE>TK_EQ && TK_LE<TK_GE )
      pos:
        line_end: 139082
        line_start: 139082
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( TK_LT>TK_EQ && TK_LT<TK_GE )
      pos:
        line_end: 139081
        line_start: 139081
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 139086
      start: 139080
    functionDepth: 0
    functionLinenumber: 139080
    functionLinenumberEnd: 139086
    functionName: allowedOp
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int allowedOp(int op)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:139103,1
    - Dst: allowedOp
      Src: /src/nss/lib/sqlite/sqlite3.c:139103,1
    - Dst: sqlite3ExprCollSeq
      Src: /src/nss/lib/sqlite/sqlite3.c:139110,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:139119,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:139120,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:139121,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:139122,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:139123,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - pParse
    - pExpr
    argTypes:
    - Parse*
    - Expr*
    assertStmts:
    - condition: ( allowedOp(pExpr->op) && pExpr->op!=TK_IN )
      pos:
        line_end: 139102
        line_start: 139102
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( TK_LT==TK_GT+2 )
      pos:
        line_end: 139118
        line_start: 139118
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( TK_GE==TK_LE+2 )
      pos:
        line_end: 139119
        line_start: 139119
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( TK_GT>TK_EQ )
      pos:
        line_end: 139120
        line_start: 139120
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( TK_GT<TK_LE )
      pos:
        line_end: 139121
        line_start: 139121
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pExpr->op>=TK_GT && pExpr->op<=TK_GE )
      pos:
        line_end: 139122
        line_start: 139122
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 139126
      start: 139100
    functionDepth: 2
    functionLinenumber: 139100
    functionLinenumberEnd: 139126
    functionName: exprCommute
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3ExprCollSeq
    - allowedOp
    linkageType: ''
    returnType: void
    signature: void exprCommute(Parse *pParse, Expr *pExpr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:139133,1
    - Dst: allowedOp
      Src: /src/nss/lib/sqlite/sqlite3.c:139133,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:139141,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:139144,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:139145,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:139146,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:139147,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:139148,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:139149,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:139150,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:139151,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 1
    argNames:
    - op
    argTypes:
    - int
    assertStmts:
    - condition: ( allowedOp(op) )
      pos:
        line_end: 139132
        line_start: 139132
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (WO_EQ<<(op-TK_EQ)) < 0x7fff )
      pos:
        line_end: 139140
        line_start: 139140
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( op!=TK_ISNULL || c==WO_ISNULL )
      pos:
        line_end: 139143
        line_start: 139143
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( op!=TK_IN || c==WO_IN )
      pos:
        line_end: 139144
        line_start: 139144
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( op!=TK_EQ || c==WO_EQ )
      pos:
        line_end: 139145
        line_start: 139145
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( op!=TK_LT || c==WO_LT )
      pos:
        line_end: 139146
        line_start: 139146
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( op!=TK_LE || c==WO_LE )
      pos:
        line_end: 139147
        line_start: 139147
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( op!=TK_GT || c==WO_GT )
      pos:
        line_end: 139148
        line_start: 139148
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( op!=TK_GE || c==WO_GE )
      pos:
        line_end: 139149
        line_start: 139149
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( op!=TK_IS || c==WO_IS )
      pos:
        line_end: 139150
        line_start: 139150
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 139153
      start: 139131
    functionDepth: 1
    functionLinenumber: 139131
    functionLinenumberEnd: 139153
    functionName: operatorMask
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - allowedOp
    linkageType: ''
    returnType: u16
    signature: u16 operatorMask(int op)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3IsLikeFunction
      Src: /src/nss/lib/sqlite/sqlite3.c:139187,1
    - Dst: sqlite3ExprSkipCollate
      Src: /src/nss/lib/sqlite/sqlite3.c:139196,1
    - Dst: sqlite3VdbeGetBoundValue
      Src: /src/nss/lib/sqlite/sqlite3.c:139201,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:139202,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:139203,1
    - Dst: sqlite3VdbeSetVarmask
      Src: /src/nss/lib/sqlite/sqlite3.c:139205,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:139206,1
    - Dst: sqlite3Expr
      Src: /src/nss/lib/sqlite/sqlite3.c:139234,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:139244,1
    - Dst: sqlite3ExprAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:139259,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:139260,1
    - Dst: sqlite3AtoF
      Src: /src/nss/lib/sqlite/sqlite3.c:139264,1
    - Dst: sqlite3AtoF
      Src: /src/nss/lib/sqlite/sqlite3.c:139267,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:139271,1
    - Dst: sqlite3ValueFree
      Src: /src/nss/lib/sqlite/sqlite3.c:139272,1
    - Dst: sqlite3VdbeSetVarmask
      Src: /src/nss/lib/sqlite/sqlite3.c:139283,1
    - Dst: sqlite3GetTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:139291,1
    - Dst: sqlite3ExprCodeTarget
      Src: /src/nss/lib/sqlite/sqlite3.c:139292,1
    - Dst: sqlite3VdbeChangeP3
      Src: /src/nss/lib/sqlite/sqlite3.c:139293,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:139293,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:139294,1
    - Dst: sqlite3ValueFree
      Src: /src/nss/lib/sqlite/sqlite3.c:139303,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 70
    argCount: 5
    argNames:
    - pParse
    - pExpr
    - ppPrefix
    - pisComplete
    - pnoCase
    argTypes:
    - Parse*
    - Expr*
    - Expr**
    - int*
    - int*
    assertStmts:
    - condition: ( iTo>0 )
      pos:
        line_end: 139243
        line_start: 139243
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pRight->op==TK_VARIABLE || pRight->op==TK_REGISTER )
      pos:
        line_end: 139205
        line_start: 139205
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 139305
      start: 139169
    functionDepth: 16
    functionLinenumber: 139169
    functionLinenumberEnd: 139305
    functionName: isLikeOrGlob
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeChangeP3
    - sqlite3VdbeCurrentAddr
    - sqlite3GetTempReg
    - sqlite3ExprSkipCollate
    - sqlite3ReleaseTempReg
    - sqlite3AtoF
    - sqlite3ExprDelete
    - assert
    - sqlite3IsLikeFunction
    - sqlite3VdbeGetBoundValue
    - sqlite3VdbeSetVarmask
    - sqlite3_value_type
    - sqlite3ExprAffinity
    - sqlite3Expr
    - sqlite3ValueFree
    - sqlite3ExprCodeTarget
    - sqlite3_value_text
    - IsVirtual
    linkageType: ''
    returnType: int
    signature: "int isLikeOrGlob(\n  Parse *pParse,    /* Parsing and code generating
      context */\n  Expr *pExpr,      /* Test this expression */\n  Expr **ppPrefix,
      \ /* Pointer to TK_STRING expression with pattern prefix */\n  int *pisComplete,
      /* True if the only wildcard is % in the last character */\n  int *pnoCase      /*
      True if uppercase is equivalent to lowercase */\n)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:139370,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:139371,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:139372,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:139392,1
    - Dst: sqlite3GetVTable
      Src: /src/nss/lib/sqlite/sqlite3.c:139397,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:139398,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:139399,1
    - Dst: sqlite3_module*::xFindFunction
      Src: /src/nss/lib/sqlite/sqlite3.c:139402,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:139415,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:139418,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 53
    argCount: 5
    argNames:
    - db
    - pExpr
    - peOp2
    - ppLeft
    - ppRight
    argTypes:
    - sqlite3*
    - Expr*
    - unsigned char*
    - Expr**
    - Expr**
    assertStmts:
    - condition: ( pVtab!=0 )
      pos:
        line_end: 139397
        line_start: 139397
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pVtab->pModule!=0 )
      pos:
        line_end: 139398
        line_start: 139398
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 139430
      start: 139336
    functionDepth: 1
    functionLinenumber: 139336
    functionLinenumberEnd: 139430
    functionName: isAuxiliaryVtabOperator
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3StrICmp
    - ArraySize
    - sqlite3_module*::xFindFunction
    - assert
    - sqlite3GetVTable
    - IsVirtual
    linkageType: ''
    returnType: int
    signature: "int isAuxiliaryVtabOperator(\n  sqlite3 *db,                    /*
      Parsing context */\n  Expr *pExpr,                    /* Test this expression
      */\n  unsigned char *peOp2,           /* OUT: 0 for MATCH, or else an op2 value
      */\n  Expr **ppLeft,                  /* Column expression to left of MATCH/op2
      */\n  Expr **ppRight                  /* Expression to left of MATCH/op2 */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pDerived
    - pBase
    argTypes:
    - Expr*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139442
      start: 139437
    functionDepth: 0
    functionLinenumber: 139437
    functionLinenumberEnd: 139442
    functionName: transferJoinMarkings
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void transferJoinMarkings(Expr *pDerived, Expr *pBase)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - pWC
    - iChild
    - iParent
    argTypes:
    - WhereClause*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139451
      start: 139447
    functionDepth: 0
    functionLinenumber: 139447
    functionLinenumberEnd: 139451
    functionName: markTermAsChild
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void markTermAsChild(WhereClause *pWC, int iChild, int iParent)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - pTerm
    - N
    argTypes:
    - WhereTerm*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139466
      start: 139458
    functionDepth: 0
    functionLinenumber: 139458
    functionLinenumberEnd: 139466
    functionName: whereNthSubterm
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: WhereTerm
    signature: WhereTerm *whereNthSubterm(WhereTerm *pTerm, int N)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:139504,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:139505,1
    - Dst: sqlite3ExprCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:139506,1
    - Dst: sqlite3ExprCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:139507,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:139513,1
    - Dst: sqlite3ExprDup
      Src: /src/nss/lib/sqlite/sqlite3.c:139518,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:139520,1
    - Dst: whereClauseInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:139522,1
    - Dst: exprAnalyze
      Src: /src/nss/lib/sqlite/sqlite3.c:139523,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 4
    argNames:
    - pSrc
    - pWC
    - pOne
    - pTwo
    argTypes:
    - SrcList*
    - WhereClause*
    - WhereTerm*
    - WhereTerm*
    assertStmts:
    - condition: ( pOne->pExpr->pLeft!=0 && pOne->pExpr->pRight!=0 )
      pos:
        line_end: 139503
        line_start: 139503
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTwo->pExpr->pLeft!=0 && pTwo->pExpr->pRight!=0 )
      pos:
        line_end: 139504
        line_start: 139504
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( eOp & (WO_GT|WO_GE) )
      pos:
        line_end: 139512
        line_start: 139512
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( op<TK_GE )
      pos:
        line_end: 139519
        line_start: 139519
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 139524
      start: 139488
    functionDepth: 18
    functionLinenumber: 139488
    functionLinenumberEnd: 139524
    functionName: whereCombineDisjuncts
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - whereClauseInsert
    - sqlite3ExprCompare
    - assert
    - sqlite3ExprDup
    - exprAnalyze
    linkageType: ''
    returnType: void
    signature: "void whereCombineDisjuncts(\n  SrcList *pSrc,         /* the FROM
      clause */\n  WhereClause *pWC,      /* The complete WHERE clause */\n  WhereTerm
      *pOne,       /* First disjunct */\n  WhereTerm *pTwo        /* Second disjunct
      */\n)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:139636,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:139637,1
    - Dst: sqlite3DbMallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:139638,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:139642,1
    - Dst: sqlite3WhereClauseInit
      Src: /src/nss/lib/sqlite/sqlite3.c:139643,1
    - Dst: sqlite3WhereSplit
      Src: /src/nss/lib/sqlite/sqlite3.c:139644,1
    - Dst: sqlite3WhereExprAnalyze
      Src: /src/nss/lib/sqlite/sqlite3.c:139645,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:139647,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:139657,1
    - Dst: sqlite3DbMallocRawNN
      Src: /src/nss/lib/sqlite/sqlite3.c:139659,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:139669,1
    - Dst: sqlite3WhereClauseInit
      Src: /src/nss/lib/sqlite/sqlite3.c:139670,1
    - Dst: sqlite3WhereSplit
      Src: /src/nss/lib/sqlite/sqlite3.c:139671,1
    - Dst: sqlite3WhereExprAnalyze
      Src: /src/nss/lib/sqlite/sqlite3.c:139672,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:139676,1
    - Dst: allowedOp
      Src: /src/nss/lib/sqlite/sqlite3.c:139677,1
    - Dst: sqlite3WhereGetMask
      Src: /src/nss/lib/sqlite/sqlite3.c:139680,1
    - Dst: sqlite3WhereGetMask
      Src: /src/nss/lib/sqlite/sqlite3.c:139691,1
    - Dst: sqlite3WhereGetMask
      Src: /src/nss/lib/sqlite/sqlite3.c:139694,1
    - Dst: whereNthSubterm
      Src: /src/nss/lib/sqlite/sqlite3.c:139722,1
    - Dst: whereNthSubterm
      Src: /src/nss/lib/sqlite/sqlite3.c:139725,1
    - Dst: whereCombineDisjuncts
      Src: /src/nss/lib/sqlite/sqlite3.c:139726,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:139768,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:139773,1
    - Dst: sqlite3WhereGetMask
      Src: /src/nss/lib/sqlite/sqlite3.c:139776,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:139782,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:139783,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:139784,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:139795,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:139796,1
    - Dst: IsPowerOfTwo
      Src: /src/nss/lib/sqlite/sqlite3.c:139796,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:139797,1
    - Dst: sqlite3WhereGetMask
      Src: /src/nss/lib/sqlite/sqlite3.c:139797,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:139800,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:139806,1
    - Dst: sqlite3ExprCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:139810,1
    - Dst: sqlite3ExprAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:139819,1
    - Dst: sqlite3ExprAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:139820,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:139842,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:139843,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:139844,1
    - Dst: sqlite3ExprDup
      Src: /src/nss/lib/sqlite/sqlite3.c:139845,1
    - Dst: sqlite3ExprListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:139846,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:139849,1
    - Dst: sqlite3ExprDup
      Src: /src/nss/lib/sqlite/sqlite3.c:139850,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:139851,1
    - Dst: transferJoinMarkings
      Src: /src/nss/lib/sqlite/sqlite3.c:139854,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:139855,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:139855,1
    - Dst: whereClauseInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:139857,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:139858,1
    - Dst: exprAnalyze
      Src: /src/nss/lib/sqlite/sqlite3.c:139859,1
    - Dst: markTermAsChild
      Src: /src/nss/lib/sqlite/sqlite3.c:139861,1
    - Dst: sqlite3ExprListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:139863,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 145
    argCount: 3
    argNames:
    - pSrc
    - pWC
    - idxTerm
    argTypes:
    - SrcList*
    - WhereClause*
    - int
    assertStmts:
    - condition: ( (pTerm->wtFlags & (TERM_DYNAMIC|TERM_ORINFO|TERM_ANDINFO))==0 )
      pos:
        line_end: 139635
        line_start: 139635
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pOrTerm->wtFlags & (TERM_ANDINFO|TERM_ORINFO))==0 )
      pos:
        line_end: 139656
        line_start: 139656
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOrTerm->eOperator & WO_EQ )
      pos:
        line_end: 139767
        line_start: 139767
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( j==1 )
      pos:
        line_end: 139772
        line_start: 139772
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOrTerm->wtFlags & (TERM_COPIED|TERM_VIRTUAL) )
      pos:
        line_end: 139783
        line_start: 139783
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( j==1 )
      pos:
        line_end: 139794
        line_start: 139794
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOrTerm->eOperator & WO_EQ )
      pos:
        line_end: 139841
        line_start: 139841
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !ExprHasProperty(pNew, EP_xIsSelect) )
      pos:
        line_end: 139854
        line_start: 139854
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOrWc->nTerm>=2 )
      pos:
        line_end: 139646
        line_start: 139646
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pAndTerm->pExpr )
      pos:
        line_end: 139675
        line_start: 139675
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOrTerm->u.leftColumn==iColumn )
      pos:
        line_end: 139843
        line_start: 139843
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOrTerm->eOperator & WO_EQ )
      pos:
        line_end: 139805
        line_start: 139805
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pLeft!=0 )
      pos:
        line_end: 139848
        line_start: 139848
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( IsPowerOfTwo(chngToIN) )
      pos:
        line_end: 139795
        line_start: 139795
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pExpr->op==TK_OR )
      pos:
        line_end: 139636
        line_start: 139636
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( chngToIN==sqlite3WhereGetMask(&pWInfo->sMaskSet, iCursor) )
      pos:
        line_end: 139796
        line_start: 139796
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOrTerm->leftCursor==iCursor )
      pos:
        line_end: 139842
        line_start: 139842
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 139867
      start: 139614
    functionDepth: 19
    functionLinenumber: 139614
    functionLinenumberEnd: 139867
    functionName: exprAnalyzeOrTerm
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbMallocRawNN
    - whereClauseInsert
    - sqlite3PExpr
    - sqlite3WhereSplit
    - sqlite3WhereExprAnalyze
    - sqlite3ExprDup
    - exprAnalyze
    - testcase
    - whereNthSubterm
    - allowedOp
    - assert
    - memset
    - sqlite3WhereGetMask
    - ExprHasProperty
    - sqlite3ExprListAppend
    - sqlite3DbMallocZero
    - IsPowerOfTwo
    - whereCombineDisjuncts
    - transferJoinMarkings
    - sqlite3ExprCompare
    - sqlite3ExprAffinity
    - sqlite3ExprListDelete
    - markTermAsChild
    - sqlite3WhereClauseInit
    linkageType: ''
    returnType: void
    signature: "void exprAnalyzeOrTerm(\n  SrcList *pSrc,            /* the FROM clause
      */\n  WhereClause *pWC,         /* the complete WHERE clause */\n  int idxTerm
      \              /* Index of the OR-term to be analyzed */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: OptimizationEnabled
      Src: /src/nss/lib/sqlite/sqlite3.c:139888,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:139890,1
    - Dst: sqlite3ExprAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:139891,1
    - Dst: sqlite3ExprAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:139892,1
    - Dst: sqlite3IsNumericAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:139894,1
    - Dst: sqlite3IsNumericAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:139894,1
    - Dst: sqlite3BinaryCompareCollSeq
      Src: /src/nss/lib/sqlite/sqlite3.c:139898,1
    - Dst: sqlite3IsBinary
      Src: /src/nss/lib/sqlite/sqlite3.c:139899,1
    - Dst: sqlite3ExprCollSeqMatch
      Src: /src/nss/lib/sqlite/sqlite3.c:139900,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 2
    argNames:
    - pParse
    - pExpr
    argTypes:
    - Parse*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139901
      start: 139885
    functionDepth: 4
    functionLinenumber: 139885
    functionLinenumberEnd: 139901
    functionName: termIsEquivalence
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3IsNumericAffinity
    - sqlite3BinaryCompareCollSeq
    - OptimizationEnabled
    - sqlite3ExprCollSeqMatch
    - sqlite3ExprAffinity
    - sqlite3IsBinary
    - ExprHasProperty
    linkageType: ''
    returnType: int
    signature: int termIsEquivalence(Parse *pParse, Expr *pExpr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3WhereExprListUsage
      Src: /src/nss/lib/sqlite/sqlite3.c:139912,1
    - Dst: sqlite3WhereExprListUsage
      Src: /src/nss/lib/sqlite/sqlite3.c:139913,1
    - Dst: sqlite3WhereExprListUsage
      Src: /src/nss/lib/sqlite/sqlite3.c:139914,1
    - Dst: sqlite3WhereExprUsage
      Src: /src/nss/lib/sqlite/sqlite3.c:139915,1
    - Dst: sqlite3WhereExprUsage
      Src: /src/nss/lib/sqlite/sqlite3.c:139916,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:139917,1
    - Dst: exprSelectUsage
      Src: /src/nss/lib/sqlite/sqlite3.c:139920,1
    - Dst: sqlite3WhereExprUsage
      Src: /src/nss/lib/sqlite/sqlite3.c:139921,1
    - Dst: sqlite3WhereExprListUsage
      Src: /src/nss/lib/sqlite/sqlite3.c:139923,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - pMaskSet
    - pS
    argTypes:
    - WhereMaskSet*
    - Select*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139930
      start: 139908
    functionDepth: 1
    functionLinenumber: 139908
    functionLinenumberEnd: 139930
    functionName: exprSelectUsage
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - ALWAYS
    - sqlite3WhereExprUsage
    - sqlite3WhereExprListUsage
    - exprSelectUsage
    linkageType: ''
    returnType: Bitmask
    signature: Bitmask exprSelectUsage(WhereMaskSet *pMaskSet, Select *pS)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprCompareSkip
      Src: /src/nss/lib/sqlite/sqlite3.c:139960,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 4
    argNames:
    - pFrom
    - mPrereq
    - aiCurCol
    - pExpr
    argTypes:
    - SrcList*
    - Bitmask
    - int*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139968
      start: 139945
    functionDepth: 19
    functionLinenumber: 139945
    functionLinenumberEnd: 139968
    functionName: exprMightBeIndexed2
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ExprCompareSkip
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: "SQLITE_NOINLINE exprMightBeIndexed2(\n  SrcList *pFrom,        /*
      The FROM clause */\n  Bitmask mPrereq,       /* Bitmask of FROM clause terms
      referenced by pExpr */\n  int *aiCurCol,         /* Write the referenced table
      cursor and column here */\n  Expr *pExpr            /* An operand of a comparison
      operator */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:139979,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:139980,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:139981,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:139982,1
    - Dst: exprMightBeIndexed2
      Src: /src/nss/lib/sqlite/sqlite3.c:139993,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 17
    argCount: 5
    argNames:
    - pFrom
    - mPrereq
    - aiCurCol
    - pExpr
    - op
    argTypes:
    - SrcList*
    - Bitmask
    - int*
    - Expr*
    - int
    assertStmts:
    - condition: ( TK_GT+1==TK_LE && TK_GT+2==TK_LT && TK_GT+3==TK_GE )
      pos:
        line_end: 139978
        line_start: 139978
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( TK_IS<TK_GE && TK_ISNULL<TK_GE && TK_IN<TK_GE )
      pos:
        line_end: 139979
        line_start: 139979
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( op<=TK_GE )
      pos:
        line_end: 139980
        line_start: 139980
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 139994
      start: 139969
    functionDepth: 20
    functionLinenumber: 139969
    functionLinenumberEnd: 139994
    functionName: exprMightBeIndexed
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - ALWAYS
    - exprMightBeIndexed2
    linkageType: ''
    returnType: int
    signature: "int exprMightBeIndexed(\n  SrcList *pFrom,        /* The FROM clause
      */\n  Bitmask mPrereq,       /* Bitmask of FROM clause terms referenced by pExpr
      */\n  int *aiCurCol,         /* Write the referenced table cursor & column here
      */\n  Expr *pExpr,           /* An operand of a comparison operator */\n  int
      op                 /* The specific comparison operator */\n)"
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:140041,1
    - Dst: sqlite3WhereExprUsage
      Src: /src/nss/lib/sqlite/sqlite3.c:140042,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:140045,1
    - Dst: sqlite3ExprCheckIN
      Src: /src/nss/lib/sqlite/sqlite3.c:140046,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:140047,1
    - Dst: exprSelectUsage
      Src: /src/nss/lib/sqlite/sqlite3.c:140048,1
    - Dst: sqlite3WhereExprListUsage
      Src: /src/nss/lib/sqlite/sqlite3.c:140050,1
    - Dst: sqlite3WhereExprUsage
      Src: /src/nss/lib/sqlite/sqlite3.c:140055,1
    - Dst: sqlite3WhereExprUsageNN
      Src: /src/nss/lib/sqlite/sqlite3.c:140058,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:140060,1
    - Dst: sqlite3WhereGetMask
      Src: /src/nss/lib/sqlite/sqlite3.c:140061,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:140066,1
    - Dst: allowedOp
      Src: /src/nss/lib/sqlite/sqlite3.c:140074,1
    - Dst: sqlite3ExprSkipCollate
      Src: /src/nss/lib/sqlite/sqlite3.c:140076,1
    - Dst: sqlite3ExprSkipCollate
      Src: /src/nss/lib/sqlite/sqlite3.c:140077,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:140081,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:140082,1
    - Dst: exprMightBeIndexed
      Src: /src/nss/lib/sqlite/sqlite3.c:140086,1
    - Dst: operatorMask
      Src: /src/nss/lib/sqlite/sqlite3.c:140089,1
    - Dst: exprMightBeIndexed
      Src: /src/nss/lib/sqlite/sqlite3.c:140093,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:140098,1
    - Dst: sqlite3ExprDup
      Src: /src/nss/lib/sqlite/sqlite3.c:140101,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:140103,1
    - Dst: whereClauseInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:140106,1
    - Dst: markTermAsChild
      Src: /src/nss/lib/sqlite/sqlite3.c:140109,1
    - Dst: termIsEquivalence
      Src: /src/nss/lib/sqlite/sqlite3.c:140114,1
    - Dst: exprCommute
      Src: /src/nss/lib/sqlite/sqlite3.c:140122,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:140125,1
    - Dst: operatorMask
      Src: /src/nss/lib/sqlite/sqlite3.c:140128,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:140152,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:140153,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:140157,1
    - Dst: sqlite3ExprDup
      Src: /src/nss/lib/sqlite/sqlite3.c:140158,1
    - Dst: sqlite3ExprDup
      Src: /src/nss/lib/sqlite/sqlite3.c:140159,1
    - Dst: transferJoinMarkings
      Src: /src/nss/lib/sqlite/sqlite3.c:140160,1
    - Dst: whereClauseInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:140161,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:140162,1
    - Dst: exprAnalyze
      Src: /src/nss/lib/sqlite/sqlite3.c:140163,1
    - Dst: markTermAsChild
      Src: /src/nss/lib/sqlite/sqlite3.c:140165,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:140175,1
    - Dst: exprAnalyzeOrTerm
      Src: /src/nss/lib/sqlite/sqlite3.c:140176,1
    - Dst: isLikeOrGlob
      Src: /src/nss/lib/sqlite/sqlite3.c:140196,1
    - Dst: sqlite3ExprDup
      Src: /src/nss/lib/sqlite/sqlite3.c:140208,1
    - Dst: sqlite3Toupper
      Src: /src/nss/lib/sqlite/sqlite3.c:140219,1
    - Dst: sqlite3Tolower
      Src: /src/nss/lib/sqlite/sqlite3.c:140220,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:140226,1
    - Dst: sqlite3ExprDup
      Src: /src/nss/lib/sqlite/sqlite3.c:140241,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:140242,1
    - Dst: sqlite3ExprAddCollateString
      Src: /src/nss/lib/sqlite/sqlite3.c:140243,1
    - Dst: transferJoinMarkings
      Src: /src/nss/lib/sqlite/sqlite3.c:140245,1
    - Dst: whereClauseInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:140246,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:140247,1
    - Dst: exprAnalyze
      Src: /src/nss/lib/sqlite/sqlite3.c:140248,1
    - Dst: sqlite3ExprDup
      Src: /src/nss/lib/sqlite/sqlite3.c:140249,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:140250,1
    - Dst: sqlite3ExprAddCollateString
      Src: /src/nss/lib/sqlite/sqlite3.c:140251,1
    - Dst: transferJoinMarkings
      Src: /src/nss/lib/sqlite/sqlite3.c:140253,1
    - Dst: whereClauseInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:140254,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:140255,1
    - Dst: exprAnalyze
      Src: /src/nss/lib/sqlite/sqlite3.c:140256,1
    - Dst: markTermAsChild
      Src: /src/nss/lib/sqlite/sqlite3.c:140259,1
    - Dst: markTermAsChild
      Src: /src/nss/lib/sqlite/sqlite3.c:140260,1
    - Dst: isAuxiliaryVtabOperator
      Src: /src/nss/lib/sqlite/sqlite3.c:140277,1
    - Dst: sqlite3WhereExprUsage
      Src: /src/nss/lib/sqlite/sqlite3.c:140283,1
    - Dst: sqlite3WhereExprUsage
      Src: /src/nss/lib/sqlite/sqlite3.c:140284,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:140287,1
    - Dst: sqlite3ExprDup
      Src: /src/nss/lib/sqlite/sqlite3.c:140288,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:140289,1
    - Dst: ExprSetProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:140290,1
    - Dst: whereClauseInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:140292,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:140293,1
    - Dst: markTermAsChild
      Src: /src/nss/lib/sqlite/sqlite3.c:140300,1
    - Dst: sqlite3ExprVectorSize
      Src: /src/nss/lib/sqlite/sqlite3.c:140319,1
    - Dst: sqlite3ExprVectorSize
      Src: /src/nss/lib/sqlite/sqlite3.c:140320,1
    - Dst: sqlite3ExprForVectorField
      Src: /src/nss/lib/sqlite/sqlite3.c:140328,1
    - Dst: sqlite3ExprForVectorField
      Src: /src/nss/lib/sqlite/sqlite3.c:140329,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:140331,1
    - Dst: transferJoinMarkings
      Src: /src/nss/lib/sqlite/sqlite3.c:140332,1
    - Dst: whereClauseInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:140333,1
    - Dst: exprAnalyze
      Src: /src/nss/lib/sqlite/sqlite3.c:140334,1
    - Dst: sqlite3ExprVectorSize
      Src: /src/nss/lib/sqlite/sqlite3.c:140354,1
    - Dst: whereClauseInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:140356,1
    - Dst: exprAnalyze
      Src: /src/nss/lib/sqlite/sqlite3.c:140358,1
    - Dst: markTermAsChild
      Src: /src/nss/lib/sqlite/sqlite3.c:140359,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:140374,1
    - Dst: OptimizationEnabled
      Src: /src/nss/lib/sqlite/sqlite3.c:140375,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:140382,1
    - Dst: sqlite3ExprDup
      Src: /src/nss/lib/sqlite/sqlite3.c:140383,1
    - Dst: sqlite3ExprAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:140384,1
    - Dst: whereClauseInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:140386,1
    - Dst: markTermAsChild
      Src: /src/nss/lib/sqlite/sqlite3.c:140394,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:140405,1
    CyclomaticComplexity: 57
    EdgeCount: 57
    ICount: 205
    argCount: 3
    argNames:
    - pSrc
    - pWC
    - idxTerm
    argTypes:
    - SrcList*
    - WhereClause*
    - int
    assertStmts:
    - condition: ( pExpr->op!=TK_AS && pExpr->op!=TK_COLLATE )
      pos:
        line_end: 140040
        line_start: 140040
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pList!=0 )
      pos:
        line_end: 140151
        line_start: 140151
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pWC->op==TK_AND )
      pos:
        line_end: 140174
        line_start: 140174
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pLeft->op==TK_VECTOR )
      pos:
        line_end: 140081
        line_start: 140081
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pExpr->pRight==0 )
      pos:
        line_end: 140044
        line_start: 140044
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( op==TK_IN )
      pos:
        line_end: 140080
        line_start: 140080
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pList->nExpr==2 )
      pos:
        line_end: 140152
        line_start: 140152
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTerm->iField==0 )
      pos:
        line_end: 140097
        line_start: 140097
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 140408
      start: 140014
    functionDepth: 21
    functionLinenumber: 140014
    functionLinenumberEnd: 140408
    functionName: exprAnalyze
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 3
    functionsReached:
    - sqlite3WhereExprListUsage
    - whereClauseInsert
    - sqlite3PExpr
    - sqlite3ExprDup
    - exprAnalyze
    - exprMightBeIndexed
    - sqlite3ExprAlloc
    - testcase
    - isAuxiliaryVtabOperator
    - ExprSetProperty
    - allowedOp
    - termIsEquivalence
    - sqlite3ExprSkipCollate
    - OptimizationEnabled
    - sqlite3ExprAddCollateString
    - assert
    - sqlite3WhereExprUsageNN
    - sqlite3WhereGetMask
    - sqlite3ExprForVectorField
    - operatorMask
    - ExprHasProperty
    - exprSelectUsage
    - sqlite3WhereExprUsage
    - transferJoinMarkings
    - exprCommute
    - sqlite3ExprVectorSize
    - sqlite3ExprDelete
    - sqlite3Strlen30
    - sqlite3ExprCheckIN
    - sqlite3Toupper
    - isLikeOrGlob
    - markTermAsChild
    - sqlite3ErrorMsg
    - sqlite3Tolower
    - exprAnalyzeOrTerm
    linkageType: ''
    returnType: void
    signature: "void exprAnalyze(\n  SrcList *pSrc,            /* the FROM clause
      */\n  WhereClause *pWC,         /* the WHERE clause */\n  int idxTerm               /*
      Index of the term to be analyzed */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprSkipCollate
      Src: /src/nss/lib/sqlite/sqlite3.c:140433,1
    - Dst: whereClauseInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:140437,1
    - Dst: sqlite3WhereSplit
      Src: /src/nss/lib/sqlite/sqlite3.c:140439,1
    - Dst: sqlite3WhereSplit
      Src: /src/nss/lib/sqlite/sqlite3.c:140440,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - pWC
    - pExpr
    - op
    argTypes:
    - WhereClause*
    - Expr*
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140442
      start: 140432
    functionDepth: 9
    functionLinenumber: 140432
    functionLinenumberEnd: 140442
    functionName: sqlite3WhereSplit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - whereClauseInsert
    - sqlite3ExprSkipCollate
    - sqlite3WhereSplit
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WhereSplit(WhereClause *pWC, Expr *pExpr, u8
      op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:140455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - pWC
    - pWInfo
    argTypes:
    - WhereClause*
    - WhereInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140457
      start: 140447
    functionDepth: 1
    functionLinenumber: 140447
    functionLinenumberEnd: 140457
    functionName: sqlite3WhereClauseInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - ArraySize
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3WhereClauseInit(\n  WhereClause *pWC,        /*
      The WhereClause to be initialized */\n  WhereInfo *pWInfo        /* The WHERE
      processing context */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:140470,1
    - Dst: whereOrInfoDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:140473,1
    - Dst: whereAndInfoDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:140475,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:140479,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - pWC
    argTypes:
    - WhereClause*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140481
      start: 140464
    functionDepth: 8
    functionLinenumber: 140464
    functionLinenumberEnd: 140481
    functionName: sqlite3WhereClauseClear
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - whereOrInfoDelete
    - whereAndInfoDelete
    - sqlite3DbFree
    - sqlite3ExprDelete
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WhereClauseClear(WhereClause *pWC)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:140491,1
    - Dst: sqlite3WhereGetMask
      Src: /src/nss/lib/sqlite/sqlite3.c:140492,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:140493,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:140494,1
    - Dst: sqlite3WhereGetMask
      Src: /src/nss/lib/sqlite/sqlite3.c:140497,1
    - Dst: sqlite3WhereExprUsageNN
      Src: /src/nss/lib/sqlite/sqlite3.c:140498,1
    - Dst: sqlite3WhereExprUsageNN
      Src: /src/nss/lib/sqlite/sqlite3.c:140500,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:140501,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:140502,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:140503,1
    - Dst: exprSelectUsage
      Src: /src/nss/lib/sqlite/sqlite3.c:140504,1
    - Dst: sqlite3WhereExprListUsage
      Src: /src/nss/lib/sqlite/sqlite3.c:140506,1
    - Dst: sqlite3WhereExprListUsage
      Src: /src/nss/lib/sqlite/sqlite3.c:140510,1
    - Dst: sqlite3WhereExprListUsage
      Src: /src/nss/lib/sqlite/sqlite3.c:140511,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 2
    argNames:
    - pMaskSet
    - p
    argTypes:
    - WhereMaskSet*
    - Expr*
    assertStmts:
    - condition: ( p->op!=TK_IF_NULL_ROW )
      pos:
        line_end: 140493
        line_start: 140493
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->x.pList==0 )
      pos:
        line_end: 140500
        line_start: 140500
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 140515
      start: 140489
    functionDepth: 2
    functionLinenumber: 140489
    functionLinenumberEnd: 140515
    functionName: sqlite3WhereExprUsageNN
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3WhereExprListUsage
    - assert
    - sqlite3WhereExprUsageNN
    - sqlite3WhereGetMask
    - ExprHasProperty
    - exprSelectUsage
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WhereExprUsageNN(WhereMaskSet *pMaskSet, Expr
      *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3WhereExprUsageNN
      Src: /src/nss/lib/sqlite/sqlite3.c:140517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pMaskSet
    - p
    argTypes:
    - WhereMaskSet*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140518
      start: 140516
    functionDepth: 3
    functionLinenumber: 140516
    functionLinenumberEnd: 140518
    functionName: sqlite3WhereExprUsage
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3WhereExprUsageNN
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WhereExprUsage(WhereMaskSet *pMaskSet, Expr *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3WhereExprUsage
      Src: /src/nss/lib/sqlite/sqlite3.c:140524,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - pMaskSet
    - pList
    argTypes:
    - WhereMaskSet*
    - ExprList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140528
      start: 140519
    functionDepth: 4
    functionLinenumber: 140519
    functionLinenumberEnd: 140528
    functionName: sqlite3WhereExprListUsage
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 3
    functionsReached:
    - sqlite3WhereExprUsage
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WhereExprListUsage(WhereMaskSet *pMaskSet, ExprList
      *pList)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exprAnalyze
      Src: /src/nss/lib/sqlite/sqlite3.c:140545,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pTabList
    - pWC
    argTypes:
    - SrcList*
    - WhereClause*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140547
      start: 140539
    functionDepth: 22
    functionLinenumber: 140539
    functionLinenumberEnd: 140547
    functionName: sqlite3WhereExprAnalyze
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - exprAnalyze
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3WhereExprAnalyze(\n  SrcList *pTabList,       /*
      the FROM clause */\n  WhereClause *pWC         /* the WHERE clause to be analyzed
      */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:140568,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:140575,1
    - Dst: sqlite3ExprAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:140579,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:140584,1
    - Dst: sqlite3ExprDup
      Src: /src/nss/lib/sqlite/sqlite3.c:140585,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:140586,1
    - Dst: whereClauseInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:140587,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - pParse
    - pItem
    - pWC
    argTypes:
    - Parse*
    - struct SrcList_item*
    - WhereClause*
    assertStmts:
    - condition: ( pTab!=0 )
      pos:
        line_end: 140567
        line_start: 140567
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 140589
      start: 140556
    functionDepth: 12
    functionLinenumber: 140556
    functionLinenumberEnd: 140589
    functionName: sqlite3WhereTabFuncArgs
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - whereClauseInsert
    - sqlite3PExpr
    - assert
    - sqlite3ErrorMsg
    - sqlite3ExprDup
    - sqlite3ExprAlloc
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3WhereTabFuncArgs(\n  Parse *pParse,                    /*
      Parsing context */\n  struct SrcList_item *pItem,       /* The FROM clause term
      to process */\n  WhereClause *pWC                  /* Xfer function arguments
      to here */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pWInfo
    argTypes:
    - WhereInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140643
      start: 140641
    functionDepth: 0
    functionLinenumber: 140641
    functionLinenumberEnd: 140643
    functionName: sqlite3WhereOutputRowCount
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WhereOutputRowCount(WhereInfo *pWInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pWInfo
    argTypes:
    - WhereInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140651
      start: 140649
    functionDepth: 0
    functionLinenumber: 140649
    functionLinenumberEnd: 140651
    functionName: sqlite3WhereIsDistinct
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WhereIsDistinct(WhereInfo *pWInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pWInfo
    argTypes:
    - WhereInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140659
      start: 140657
    functionDepth: 0
    functionLinenumber: 140657
    functionLinenumberEnd: 140659
    functionName: sqlite3WhereIsOrdered
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WhereIsOrdered(WhereInfo *pWInfo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:140692,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pWInfo
    argTypes:
    - WhereInfo*
    assertStmts:
    - condition: ( pInner->addrNxt!=0 )
      pos:
        line_end: 140691
        line_start: 140691
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 140694
      start: 140684
    functionDepth: 0
    functionLinenumber: 140684
    functionLinenumberEnd: 140694
    functionName: sqlite3WhereOrderByLimitOptLabel
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WhereOrderByLimitOptLabel(WhereInfo *pWInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:140701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pWInfo
    argTypes:
    - WhereInfo*
    assertStmts:
    - condition: ( pWInfo->iContinue!=0 )
      pos:
        line_end: 140700
        line_start: 140700
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 140703
      start: 140700
    functionDepth: 0
    functionLinenumber: 140700
    functionLinenumberEnd: 140703
    functionName: sqlite3WhereContinueLabel
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WhereContinueLabel(WhereInfo *pWInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pWInfo
    argTypes:
    - WhereInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140711
      start: 140709
    functionDepth: 0
    functionLinenumber: 140709
    functionLinenumberEnd: 140711
    functionName: sqlite3WhereBreakLabel
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WhereBreakLabel(WhereInfo *pWInfo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:140731,1
    - Dst: sqlite3DebugPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:140734,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - pWInfo
    - aiCur
    argTypes:
    - WhereInfo*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140740
      start: 140730
    functionDepth: 9
    functionLinenumber: 140730
    functionLinenumberEnd: 140740
    functionName: sqlite3WhereOkOnePass
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 3
    functionsReached:
    - memcpy
    - sqlite3DebugPrintf
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WhereOkOnePass(WhereInfo *pWInfo, int *aiCur)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:140747,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pDest
    - pSrc
    argTypes:
    - WhereOrSet*
    - WhereOrSet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140748
      start: 140745
    functionDepth: 1
    functionLinenumber: 140745
    functionLinenumberEnd: 140748
    functionName: whereOrMove
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void whereOrMove(WhereOrSet *pDest, WhereOrSet *pSrc)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 4
    argNames:
    - pSet
    - prereq
    - rRun
    - nOut
    argTypes:
    - WhereOrSet*
    - Bitmask
    - LogEst
    - LogEst
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140788
      start: 140757
    functionDepth: 0
    functionLinenumber: 140757
    functionLinenumberEnd: 140788
    functionName: whereOrInsert
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int whereOrInsert(\n  WhereOrSet *pSet,      /* The WhereOrSet to
      be updated */\n  Bitmask prereq,        /* Prerequisites of the new entry */\n
      \ LogEst rRun,           /* Run-cost of the new entry */\n  LogEst nOut            /*
      Number of outputs for the new entry */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:140796,1
    - Dst: MASKBIT
      Src: /src/nss/lib/sqlite/sqlite3.c:140799,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - pMaskSet
    - iCursor
    argTypes:
    - WhereMaskSet*
    - int
    assertStmts:
    - condition: ( pMaskSet->n<=(int)sizeof(Bitmask)*8 )
      pos:
        line_end: 140795
        line_start: 140795
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 140803
      start: 140794
    functionDepth: 1
    functionLinenumber: 140794
    functionLinenumberEnd: 140803
    functionName: sqlite3WhereGetMask
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 4
    functionsReached:
    - assert
    - MASKBIT
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WhereGetMask(WhereMaskSet *pMaskSet, int iCursor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:140814,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:140814,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pMaskSet
    - iCursor
    argTypes:
    - WhereMaskSet*
    - int
    assertStmts:
    - condition: ( pMaskSet->n < ArraySize(pMaskSet->ix) )
      pos:
        line_end: 140813
        line_start: 140813
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 140816
      start: 140813
    functionDepth: 1
    functionLinenumber: 140813
    functionLinenumberEnd: 140816
    functionName: createMask
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - ArraySize
    linkageType: ''
    returnType: void
    signature: void createMask(WhereMaskSet *pMaskSet, int iCursor)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:140831,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:140836,1
    - Dst: sqlite3ExprCompareSkip
      Src: /src/nss/lib/sqlite/sqlite3.c:140842,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:140844,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:140847,1
    - Dst: sqlite3ExprSkipCollate
      Src: /src/nss/lib/sqlite/sqlite3.c:140848,1
    - Dst: sqlite3IndexAffinityOk
      Src: /src/nss/lib/sqlite/sqlite3.c:140869,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:140872,1
    - Dst: sqlite3BinaryCompareCollSeq
      Src: /src/nss/lib/sqlite/sqlite3.c:140873,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:140876,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:140885,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 56
    argCount: 1
    argNames:
    - pScan
    argTypes:
    - WhereScan*
    assertStmts:
    - condition: ( pScan->iEquiv<=pScan->nEquiv )
      pos:
        line_end: 140830
        line_start: 140830
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pWC!=0 )
      pos:
        line_end: 140835
        line_start: 140835
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (pX->pLeft)
      pos:
        line_end: 140871
        line_start: 140871
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 140903
      start: 140823
    functionDepth: 19
    functionLinenumber: 140823
    functionLinenumberEnd: 140903
    functionName: whereScanNext
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3StrICmp
    - sqlite3BinaryCompareCollSeq
    - ArraySize
    - ExprHasProperty
    - sqlite3ExprSkipCollate
    - assert
    - sqlite3ExprCompareSkip
    - testcase
    - sqlite3IndexAffinityOk
    linkageType: ''
    returnType: WhereTerm
    signature: WhereTerm *whereScanNext(WhereScan *pScan)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:140912,1
    - Dst: whereScanNext
      Src: /src/nss/lib/sqlite/sqlite3.c:140913,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pScan
    argTypes:
    - WhereScan*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140914
      start: 140911
    functionDepth: 20
    functionLinenumber: 140911
    functionLinenumberEnd: 140914
    functionName: whereScanInitIndexExpr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ExprAffinity
    - whereScanNext
    linkageType: ''
    returnType: SQLITE_NOINLINE
    signature: SQLITE_NOINLINE *whereScanInitIndexExpr(WhereScan *pScan)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: whereScanInitIndexExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:140960,1
    - Dst: whereScanNext
      Src: /src/nss/lib/sqlite/sqlite3.c:140971,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 6
    argNames:
    - pScan
    - pWC
    - iCur
    - iColumn
    - opMask
    - pIdx
    argTypes:
    - WhereScan*
    - WhereClause*
    - int
    - int
    - u32
    - Index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140972
      start: 140935
    functionDepth: 21
    functionLinenumber: 140935
    functionLinenumberEnd: 140972
    functionName: whereScanInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - whereScanInitIndexExpr
    - whereScanNext
    linkageType: ''
    returnType: WhereTerm
    signature: "WhereTerm *whereScanInit(\n  WhereScan *pScan,       /* The WhereScan
      object being initialized */\n  WhereClause *pWC,       /* The WHERE clause to
      be scanned */\n  int iCur,               /* Cursor to scan for */\n  int iColumn,
      \           /* Column to scan for */\n  u32 opMask,             /* Operator(s)
      to scan for */\n  Index *pIdx             /* Must be compatible with this index
      */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: whereScanInit
      Src: /src/nss/lib/sqlite/sqlite3.c:141011,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:141016,1
    - Dst: whereScanNext
      Src: /src/nss/lib/sqlite/sqlite3.c:141021,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 6
    argNames:
    - pWC
    - iCur
    - iColumn
    - notReady
    - op
    - pIdx
    argTypes:
    - WhereClause*
    - int
    - int
    - Bitmask
    - u32
    - Index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141024
      start: 140999
    functionDepth: 22
    functionLinenumber: 140999
    functionLinenumberEnd: 141024
    functionName: sqlite3WhereFindTerm
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - whereScanNext
    - testcase
    - whereScanInit
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3WhereFindTerm(\n  WhereClause *pWC,     /*
      The WHERE clause to be searched */\n  int iCur,             /* Cursor number
      of LHS */\n  int iColumn,          /* Column number of LHS */\n  Bitmask notReady,
      \    /* RHS must not overlap with this mask */\n  u32 op,               /* Mask
      of WO_xx values describing operator */\n  Index *pIdx           /* Must be compatible
      with this index, if not NULL */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprSkipCollate
      Src: /src/nss/lib/sqlite/sqlite3.c:141044,1
    - Dst: sqlite3ExprNNCollSeq
      Src: /src/nss/lib/sqlite/sqlite3.c:141049,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:141050,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 5
    argNames:
    - pParse
    - pList
    - iBase
    - pIdx
    - iCol
    argTypes:
    - Parse*
    - ExprList*
    - int
    - Index*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141057
      start: 141033
    functionDepth: 3
    functionLinenumber: 141033
    functionLinenumberEnd: 141057
    functionName: findIndexCol
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ExprNNCollSeq
    - sqlite3ExprSkipCollate
    - sqlite3StrICmp
    linkageType: ''
    returnType: int
    signature: "int findIndexCol(\n  Parse *pParse,                  /* Parse context
      */\n  ExprList *pList,                /* Expression list to search */\n  int
      iBase,                      /* Cursor for table associated with pIdx */\n  Index
      *pIdx,                    /* Index to match column of */\n  int iCol                        /*
      Column of index to match */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:141064,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:141065,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:141072,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - pIdx
    - iCol
    argTypes:
    - Index*
    - int
    assertStmts:
    - condition: ( pIdx!=0 )
      pos:
        line_end: 141063
        line_start: 141063
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( j==(-2) )
      pos:
        line_end: 141071
        line_start: 141071
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iCol>=0 && iCol<pIdx->nColumn )
      pos:
        line_end: 141064
        line_start: 141064
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 141076
      start: 141062
    functionDepth: 0
    functionLinenumber: 141062
    functionLinenumberEnd: 141076
    functionName: indexColumnNotNull
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int indexColumnNotNull(Index *pIdx, int iCol)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprSkipCollate
      Src: /src/nss/lib/sqlite/sqlite3.c:141108,1
    - Dst: IsUniqueIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:141126,1
    - Dst: sqlite3WhereFindTerm
      Src: /src/nss/lib/sqlite/sqlite3.c:141128,1
    - Dst: findIndexCol
      Src: /src/nss/lib/sqlite/sqlite3.c:141129,1
    - Dst: indexColumnNotNull
      Src: /src/nss/lib/sqlite/sqlite3.c:141130,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 25
    argCount: 4
    argNames:
    - pParse
    - pTabList
    - pWC
    - pDistinct
    argTypes:
    - Parse*
    - SrcList*
    - WhereClause*
    - ExprList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141140
      start: 141085
    functionDepth: 23
    functionLinenumber: 141085
    functionLinenumberEnd: 141140
    functionName: isDistinctRedundant
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - IsUniqueIndex
    - sqlite3WhereFindTerm
    - indexColumnNotNull
    - sqlite3ExprSkipCollate
    - findIndexCol
    linkageType: ''
    returnType: int
    signature: "int isDistinctRedundant(\n  Parse *pParse,            /* Parsing context
      */\n  SrcList *pTabList,        /* The FROM clause */\n  WhereClause *pWC,         /*
      The WHERE clause */\n  ExprList *pDistinct       /* The result set that needs
      to be DISTINCT */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3LogEst
      Src: /src/nss/lib/sqlite/sqlite3.c:141147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - N
    argTypes:
    - LogEst
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141148
      start: 141146
    functionDepth: 1
    functionLinenumber: 141146
    functionLinenumberEnd: 141148
    functionName: estLog
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3LogEst
    linkageType: ''
    returnType: LogEst
    signature: LogEst estLog(LogEst N)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeGetOp
      Src: /src/nss/lib/sqlite/sqlite3.c:141170,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:141171,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 5
    argNames:
    - pParse
    - iStart
    - iTabCur
    - iRegister
    - iAutoidxCur
    argTypes:
    - Parse*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141191
      start: 141162
    functionDepth: 1
    functionLinenumber: 141162
    functionLinenumberEnd: 141191
    functionName: translateColumnToCopy
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeCurrentAddr
    - sqlite3VdbeGetOp
    linkageType: ''
    returnType: void
    signature: "void translateColumnToCopy(\n  Parse *pParse,      /* Parsing context
      */\n  int iStart,         /* Translate from this opcode to the end */\n  int
      iTabCur,        /* OP_Column/OP_Rowid references to this table */\n  int iRegister,
      \     /* The first column is in this register */\n  int iAutoidxCur     /* If
      non-zero, cursor of autoindex being generated */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DebugPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:141204,1
    - Dst: sqlite3DebugPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:141212,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_index_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141217
      start: 141200
    functionDepth: 9
    functionLinenumber: 141200
    functionLinenumberEnd: 141217
    functionName: TRACE_IDX_INPUTS
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DebugPrintf
    linkageType: ''
    returnType: void
    signature: void TRACE_IDX_INPUTS(sqlite3_index_info *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DebugPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:141222,1
    - Dst: sqlite3DebugPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:141227,1
    - Dst: sqlite3DebugPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:141228,1
    - Dst: sqlite3DebugPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:141229,1
    - Dst: sqlite3DebugPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:141230,1
    - Dst: sqlite3DebugPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:141231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_index_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141232
      start: 141218
    functionDepth: 9
    functionLinenumber: 141218
    functionLinenumberEnd: 141232
    functionName: TRACE_IDX_OUTPUTS
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DebugPrintf
    linkageType: ''
    returnType: void
    signature: void TRACE_IDX_OUTPUTS(sqlite3_index_info *p)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:141253,1
    - Dst: sqlite3IndexAffinityOk
      Src: /src/nss/lib/sqlite/sqlite3.c:141264,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:141265,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 3
    argNames:
    - pTerm
    - pSrc
    - notReady
    argTypes:
    - WhereTerm*
    - struct SrcList_item*
    - Bitmask
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141267
      start: 141244
    functionDepth: 5
    functionLinenumber: 141244
    functionLinenumberEnd: 141267
    functionName: termCanDriveIndex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ExprHasProperty
    - testcase
    - sqlite3IndexAffinityOk
    linkageType: ''
    returnType: int
    signature: "int termCanDriveIndex(\n  WhereTerm *pTerm,              /* WHERE
      clause term to check */\n  struct SrcList_item *pSrc,     /* Table we are trying
      to access */\n  Bitmask notReady               /* Tables in outer loops of the
      join */\n)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:141311,1
    - Dst: sqlite3VdbeAddOp0
      Src: /src/nss/lib/sqlite/sqlite3.c:141312,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:141312,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:141323,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:141323,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:141328,1
    - Dst: sqlite3ExprIsTableConstant
      Src: /src/nss/lib/sqlite/sqlite3.c:141329,1
    - Dst: sqlite3ExprAnd
      Src: /src/nss/lib/sqlite/sqlite3.c:141330,1
    - Dst: sqlite3ExprDup
      Src: /src/nss/lib/sqlite/sqlite3.c:141331,1
    - Dst: termCanDriveIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:141333,1
    - Dst: MASKBIT
      Src: /src/nss/lib/sqlite/sqlite3.c:141335,1
    - Dst: MASKBIT
      Src: /src/nss/lib/sqlite/sqlite3.c:141335,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:141336,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:141337,1
    - Dst: sqlite3_log
      Src: /src/nss/lib/sqlite/sqlite3.c:141339,1
    - Dst: whereLoopResize
      Src: /src/nss/lib/sqlite/sqlite3.c:141345,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:141353,1
    - Dst: MASKBIT
      Src: /src/nss/lib/sqlite/sqlite3.c:141366,1
    - Dst: MIN
      Src: /src/nss/lib/sqlite/sqlite3.c:141367,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:141368,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:141369,1
    - Dst: MASKBIT
      Src: /src/nss/lib/sqlite/sqlite3.c:141371,1
    - Dst: MASKBIT
      Src: /src/nss/lib/sqlite/sqlite3.c:141373,1
    - Dst: sqlite3AllocateIndexObject
      Src: /src/nss/lib/sqlite/sqlite3.c:141378,1
    - Dst: termCanDriveIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:141386,1
    - Dst: MASKBIT
      Src: /src/nss/lib/sqlite/sqlite3.c:141388,1
    - Dst: MASKBIT
      Src: /src/nss/lib/sqlite/sqlite3.c:141388,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:141389,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:141390,1
    - Dst: sqlite3BinaryCompareCollSeq
      Src: /src/nss/lib/sqlite/sqlite3.c:141395,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:141401,1
    - Dst: MASKBIT
      Src: /src/nss/lib/sqlite/sqlite3.c:141406,1
    - Dst: MASKBIT
      Src: /src/nss/lib/sqlite/sqlite3.c:141412,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:141419,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:141424,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:141426,1
    - Dst: sqlite3VdbeSetP4KeyInfo
      Src: /src/nss/lib/sqlite/sqlite3.c:141427,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:141428,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:141434,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:141435,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:141436,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:141437,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:141438,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:141440,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:141440,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:141443,1
    - Dst: sqlite3ExprIfFalse
      Src: /src/nss/lib/sqlite/sqlite3.c:141444,1
    - Dst: sqlite3GetTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:141447,1
    - Dst: sqlite3GenerateIndexKey
      Src: /src/nss/lib/sqlite/sqlite3.c:141448,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:141451,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:141452,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:141453,1
    - Dst: sqlite3VdbeChangeP2
      Src: /src/nss/lib/sqlite/sqlite3.c:141455,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:141456,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:141457,1
    - Dst: translateColumnToCopy
      Src: /src/nss/lib/sqlite/sqlite3.c:141458,1
    - Dst: sqlite3VdbeGoto
      Src: /src/nss/lib/sqlite/sqlite3.c:141460,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:141463,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:141463,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:141465,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:141466,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:141467,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:141470,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:141473,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 131
    argCount: 5
    argNames:
    - pParse
    - pWC
    - pSrc
    - notReady
    - pLevel
    argTypes:
    - Parse*
    - WhereClause*
    - struct SrcList_item*
    - Bitmask
    - WhereLevel*
    assertStmts:
    - condition: ( pLevel->iIdxCur>=0 )
      pos:
        line_end: 141423
        line_start: 141423
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nKeyCol>0 )
      pos:
        line_end: 141352
        line_start: 141352
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( !ExprHasProperty(pExpr, EP_FromJoin)    /* prereq always non-zero
        */\n         || pExpr->iRightJoinTable!=pSrc->iCursor   /*   for the right-hand
        \  */\n         || pLoop->prereq!=0 )"
      pos:
        line_end: 141324
        line_start: 141322
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pLevel->iIdxCur>0 )
      pos:
        line_end: 141456
        line_start: 141456
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( v!=0 )
      pos:
        line_end: 141310
        line_start: 141310
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (u32)n==pLoop->u.btree.nEq )
      pos:
        line_end: 141400
        line_start: 141400
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( n==nKeyCol )
      pos:
        line_end: 141418
        line_start: 141418
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 141474
      start: 141277
    functionDepth: 21
    functionLinenumber: 141277
    functionLinenumberEnd: 141474
    functionName: constructAutomaticIndex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ExprIsTableConstant
    - sqlite3VdbeSetP4KeyInfo
    - sqlite3VdbeAddOp2
    - sqlite3VdbeResolveLabel
    - sqlite3VdbeAddOp3
    - sqlite3VdbeChangeP2
    - sqlite3ExprIfFalse
    - sqlite3ExprDup
    - sqlite3AllocateIndexObject
    - VdbeComment
    - testcase
    - termCanDriveIndex
    - sqlite3VdbeGoto
    - sqlite3_log
    - sqlite3GetTempReg
    - MASKBIT
    - assert
    - sqlite3VdbeJumpHere
    - ExprHasProperty
    - sqlite3VdbeAddOp0
    - translateColumnToCopy
    - sqlite3ExprDelete
    - sqlite3VdbeAddOp1
    - VdbeCoverage
    - sqlite3BinaryCompareCollSeq
    - sqlite3GenerateIndexKey
    - sqlite3ReleaseTempReg
    - sqlite3VdbeChangeP5
    - whereLoopResize
    - sqlite3ExprAnd
    - sqlite3VdbeMakeLabel
    - MIN
    linkageType: ''
    returnType: void
    signature: "void constructAutomaticIndex(\n  Parse *pParse,              /* The
      parsing context */\n  WhereClause *pWC,           /* The WHERE clause */\n  struct
      SrcList_item *pSrc,  /* The FROM clause term to get the next index */\n  Bitmask
      notReady,           /* Mask of cursors that are not available */\n  WhereLevel
      *pLevel          /* Write new index here */\n)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:141507,1
    - Dst: IsPowerOfTwo
      Src: /src/nss/lib/sqlite/sqlite3.c:141507,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:141508,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:141509,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:141510,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:141511,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:141514,1
    - Dst: sqlite3DbMallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:141536,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:141540,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:141566,1
    - Dst: IsPowerOfTwo
      Src: /src/nss/lib/sqlite/sqlite3.c:141566,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:141567,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:141568,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:141569,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:141570,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:141574,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:141583,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:141584,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:141587,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:141605,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:141606,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:141607,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:141608,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:141609,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:141610,1
    - Dst: sqlite3ExprIsVector
      Src: /src/nss/lib/sqlite/sqlite3.c:141613,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 103
    argCount: 6
    argNames:
    - pParse
    - pWC
    - mUnusable
    - pSrc
    - pOrderBy
    - pmNoOmit
    argTypes:
    - Parse*
    - WhereClause*
    - Bitmask
    - struct SrcList_item*
    - ExprList*
    - u16*
    assertStmts:
    - condition: ( WO_GE==SQLITE_INDEX_CONSTRAINT_GE )
      pos:
        line_end: 141608
        line_start: 141608
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( WO_LT==SQLITE_INDEX_CONSTRAINT_LT )
      pos:
        line_end: 141605
        line_start: 141605
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( WO_GT==SQLITE_INDEX_CONSTRAINT_GT )
      pos:
        line_end: 141607
        line_start: 141607
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTerm->eOperator&(WO_IN|WO_EQ|WO_LT|WO_LE|WO_GT|WO_GE|WO_AUX) )
      pos:
        line_end: 141609
        line_start: 141609
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( WO_EQ==SQLITE_INDEX_CONSTRAINT_EQ )
      pos:
        line_end: 141604
        line_start: 141604
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( WO_LE==SQLITE_INDEX_CONSTRAINT_LE )
      pos:
        line_end: 141606
        line_start: 141606
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( IsPowerOfTwo(pTerm->eOperator & ~WO_EQUIV) )
      pos:
        line_end: 141506
        line_start: 141506
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTerm->u.leftColumn>=(-1) )
      pos:
        line_end: 141513
        line_start: 141513
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( IsPowerOfTwo(pTerm->eOperator & ~WO_EQUIV) )
      pos:
        line_end: 141565
        line_start: 141565
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTerm->u.leftColumn>=(-1) )
      pos:
        line_end: 141586
        line_start: 141586
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 141631
      start: 141483
    functionDepth: 10
    functionLinenumber: 141483
    functionLinenumberEnd: 141631
    functionName: allocateIndexInfo
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - IsPowerOfTwo
    - assert
    - sqlite3ExprIsVector
    - sqlite3ErrorMsg
    - ExprHasProperty
    - testcase
    - sqlite3DbMallocZero
    linkageType: ''
    returnType: sqlite3_index_info
    signature: "sqlite3_index_info *allocateIndexInfo(\n  Parse *pParse,                  /*
      The parsing context */\n  WhereClause *pWC,               /* The WHERE clause
      being analyzed */\n  Bitmask mUnusable,              /* Ignore terms with these
      prereqs */\n  struct SrcList_item *pSrc,      /* The FROM clause term that is
      the vtab */\n  ExprList *pOrderBy,             /* The ORDER BY clause */\n  u16
      *pmNoOmit                   /* Mask of terms not to omit */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetVTable
      Src: /src/nss/lib/sqlite/sqlite3.c:141650,1
    - Dst: TRACE_IDX_INPUTS
      Src: /src/nss/lib/sqlite/sqlite3.c:141653,1
    - Dst: sqlite3_vtab*::pModule::xBestIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:141654,1
    - Dst: TRACE_IDX_OUTPUTS
      Src: /src/nss/lib/sqlite/sqlite3.c:141655,1
    - Dst: sqlite3OomFault
      Src: /src/nss/lib/sqlite/sqlite3.c:141659,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:141661,1
    - Dst: sqlite3ErrStr
      Src: /src/nss/lib/sqlite/sqlite3.c:141661,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:141663,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:141666,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - pParse
    - pTab
    - p
    argTypes:
    - Parse*
    - Table*
    - sqlite3_index_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141669
      start: 141649
    functionDepth: 10
    functionLinenumber: 141649
    functionLinenumberEnd: 141669
    functionName: vtabBestIndex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ErrStr
    - TRACE_IDX_OUTPUTS
    - TRACE_IDX_INPUTS
    - sqlite3OomFault
    - sqlite3ErrorMsg
    - sqlite3GetVTable
    - sqlite3_vtab*::pModule::xBestIndex
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int vtabBestIndex(Parse *pParse, Table *pTab, sqlite3_index_info *p)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:141704,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:141706,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:141707,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:141708,1
    - Dst: sqlite3VdbeRecordCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:141775,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:141797,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:141798,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:141800,1
    - Dst: sqlite3VdbeRecordCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:141800,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:141807,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:141809,1
    - Dst: sqlite3VdbeRecordCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:141810,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:141819,1
    - Dst: sqlite3VdbeRecordCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:141819,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:141824,1
    - Dst: sqlite3VdbeRecordCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:141824,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:141833,1
    - Dst: sqlite3LogEstToInt
      Src: /src/nss/lib/sqlite/sqlite3.c:141842,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 80
    argCount: 5
    argNames:
    - pParse
    - pIdx
    - pRec
    - roundUp
    - aStat
    argTypes:
    - Parse*
    - Index*
    - UnpackedRecord*
    - int
    - tRowcnt*
    assertStmts:
    - condition: ( pRec->nField>0 && pRec->nField<=pIdx->nSampleCol )
      pos:
        line_end: 141707
        line_start: 141707
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pRec!=0 )
      pos:
        line_end: 141705
        line_start: 141705
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIdx->nSample>0 )
      pos:
        line_end: 141706
        line_start: 141706
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( i<pIdx->nSample )
      pos:
        line_end: 141796
        line_start: 141796
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iCol==nField-1 )
      pos:
        line_end: 141797
        line_start: 141797
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( 0==sqlite3VdbeRecordCompare(aSample[i].n, aSample[i].p, pRec)
        \n           || pParse->db->mallocFailed \n      )"
      pos:
        line_end: 141801
        line_start: 141799
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( i<=pIdx->nSample && i>=0 )
      pos:
        line_end: 141806
        line_start: 141806
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( sqlite3VdbeRecordCompare(aSample[i].n, aSample[i].p, pRec)<=0\n
        \            || pParse->db->mallocFailed )"
      pos:
        line_end: 141819
        line_start: 141818
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( sqlite3VdbeRecordCompare(aSample[i-1].n, aSample[i-1].p, pRec)<0\n
        \            || pParse->db->mallocFailed )"
      pos:
        line_end: 141824
        line_start: 141823
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iCol==nField-1 )
      pos:
        line_end: 141832
        line_start: 141832
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( i==pIdx->nSample \n           || sqlite3VdbeRecordCompare(aSample[i].n,
        aSample[i].p, pRec)>0\n           || pParse->db->mallocFailed )"
      pos:
        line_end: 141810
        line_start: 141808
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 141864
      start: 141686
    functionDepth: 17
    functionLinenumber: 141686
    functionLinenumberEnd: 141864
    functionName: whereKeyStats
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3VdbeRecordCompare
    - sqlite3LogEstToInt
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: int
    signature: "int whereKeyStats(\n  Parse *pParse,              /* Database connection
      */\n  Index *pIdx,                /* Index to consider domain of */\n  UnpackedRecord
      *pRec,       /* Vector of values to consider */\n  int roundUp,                /*
      Round up if true.  Round down if false */\n  tRowcnt *aStat              /*
      OUT: stats written here */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:141884,1
    - Dst: sqlite3LogEst
      Src: /src/nss/lib/sqlite/sqlite3.c:141884,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - pTerm
    - nNew
    argTypes:
    - WhereTerm*
    - LogEst
    assertStmts:
    - condition: ( 20==sqlite3LogEst(4) )
      pos:
        line_end: 141883
        line_start: 141883
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 141888
      start: 141878
    functionDepth: 1
    functionLinenumber: 141878
    functionLinenumberEnd: 141888
    functionName: whereRangeAdjust
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3LogEst
    linkageType: ''
    returnType: LogEst
    signature: LogEst whereRangeAdjust(WhereTerm *pTerm, LogEst nNew)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:141896,1
    - Dst: sqlite3IndexAffinityStr
      Src: /src/nss/lib/sqlite/sqlite3.c:141898,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - db
    - pIdx
    - iCol
    argTypes:
    - sqlite3*
    - Index*
    - int
    assertStmts:
    - condition: ( iCol>=0 && iCol<pIdx->nColumn )
      pos:
        line_end: 141895
        line_start: 141895
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 141901
      start: 141895
    functionDepth: 7
    functionLinenumber: 141895
    functionLinenumberEnd: 141901
    functionName: sqlite3IndexColumnAffinity
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - sqlite3IndexAffinityStr
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3IndexColumnAffinity(sqlite3 *db, Index *pIdx,
      int iCol)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3IndexColumnAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:141954,1
    - Dst: sqlite3LocateCollSeq
      Src: /src/nss/lib/sqlite/sqlite3.c:141961,1
    - Dst: sqlite3Stat4ValueFromExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:141963,1
    - Dst: sqlite3Stat4ValueFromExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:141967,1
    - Dst: sqlite3Stat4Column
      Src: /src/nss/lib/sqlite/sqlite3.c:141975,1
    - Dst: sqlite3MemCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:141977,1
    - Dst: sqlite3MemCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:141981,1
    - Dst: sqlite3LogEst
      Src: /src/nss/lib/sqlite/sqlite3.c:141994,1
    - Dst: sqlite3LogEst
      Src: /src/nss/lib/sqlite/sqlite3.c:141994,1
    - Dst: WHERETRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:141997,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:142002,1
    - Dst: sqlite3ValueFree
      Src: /src/nss/lib/sqlite/sqlite3.c:142005,1
    - Dst: sqlite3ValueFree
      Src: /src/nss/lib/sqlite/sqlite3.c:142006,1
    - Dst: sqlite3ValueFree
      Src: /src/nss/lib/sqlite/sqlite3.c:142007,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 37
    argCount: 5
    argNames:
    - pParse
    - pLower
    - pUpper
    - pLoop
    - pbDone
    argTypes:
    - Parse*
    - WhereTerm*
    - WhereTerm*
    - WhereLoop*
    - int*
    assertStmts:
    - condition: ( *pbDone==0 )
      pos:
        line_end: 142001
        line_start: 142001
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 142010
      start: 141941
    functionDepth: 16
    functionLinenumber: 141941
    functionLinenumberEnd: 142010
    functionName: whereRangeSkipScanEst
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - WHERETRACE
    - sqlite3MemCompare
    - sqlite3LocateCollSeq
    - sqlite3LogEst
    - sqlite3Stat4Column
    - assert
    - sqlite3IndexColumnAffinity
    - sqlite3ValueFree
    - sqlite3Stat4ValueFromExpr
    linkageType: ''
    returnType: int
    signature: "int whereRangeSkipScanEst(\n  Parse *pParse,       /* Parsing & code
      generating context */\n  WhereTerm *pLower,   /* Lower bound on the range. ex:
      \"x>123\" Might be NULL */\n  WhereTerm *pUpper,   /* Upper bound on the range.
      ex: \"x<455\" Might be NULL */\n  WhereLoop *pLoop,    /* Update the .nOut value
      of this loop */\n  int *pbDone          /* Set to true if at least one expr.
      value extracted */\n)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: OptimizationEnabled
      Src: /src/nss/lib/sqlite/sqlite3.c:142069,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:142102,1
    - Dst: whereKeyStats
      Src: /src/nss/lib/sqlite/sqlite3.c:142112,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:142117,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:142118,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:142119,1
    - Dst: sqlite3Stat4ProbeSetValue
      Src: /src/nss/lib/sqlite/sqlite3.c:142130,1
    - Dst: sqlite3ExprVectorSize
      Src: /src/nss/lib/sqlite/sqlite3.c:142134,1
    - Dst: whereKeyStats
      Src: /src/nss/lib/sqlite/sqlite3.c:142135,1
    - Dst: sqlite3Stat4ProbeSetValue
      Src: /src/nss/lib/sqlite/sqlite3.c:142147,1
    - Dst: sqlite3ExprVectorSize
      Src: /src/nss/lib/sqlite/sqlite3.c:142151,1
    - Dst: whereKeyStats
      Src: /src/nss/lib/sqlite/sqlite3.c:142152,1
    - Dst: sqlite3LogEst
      Src: /src/nss/lib/sqlite/sqlite3.c:142163,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:142168,1
    - Dst: sqlite3LogEst
      Src: /src/nss/lib/sqlite/sqlite3.c:142168,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:142170,1
    - Dst: sqlite3LogEst
      Src: /src/nss/lib/sqlite/sqlite3.c:142170,1
    - Dst: WHERETRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:142175,1
    - Dst: whereRangeSkipScanEst
      Src: /src/nss/lib/sqlite/sqlite3.c:142180,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:142185,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:142186,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:142187,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:142189,1
    - Dst: whereRangeAdjust
      Src: /src/nss/lib/sqlite/sqlite3.c:142190,1
    - Dst: whereRangeAdjust
      Src: /src/nss/lib/sqlite/sqlite3.c:142191,1
    - Dst: WHERETRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:142208,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 89
    argCount: 5
    argNames:
    - pParse
    - pBuilder
    - pLower
    - pUpper
    - pLoop
    argTypes:
    - Parse*
    - WhereLoopBuilder*
    - WhereTerm*
    - WhereTerm*
    - WhereLoop*
    assertStmts:
    - condition: ( p->aSortOrder!=0 )
      pos:
        line_end: 142118
        line_start: 142118
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( 10==sqlite3LogEst(2) )
      pos:
        line_end: 142169
        line_start: 142169
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( 20==sqlite3LogEst(4) )
      pos:
        line_end: 142167
        line_start: 142167
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pUpper==0 || (pUpper->eOperator & (WO_LT|WO_LE))!=0 )
      pos:
        line_end: 142117
        line_start: 142117
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pLower==0 || (pLower->eOperator & (WO_GT|WO_GE))!=0 )
      pos:
        line_end: 142116
        line_start: 142116
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pLower || pUpper )
      pos:
        line_end: 142186
        line_start: 142186
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pUpper==0 || (pUpper->wtFlags & TERM_VNULL)==0 )
      pos:
        line_end: 142188
        line_start: 142188
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 142214
      start: 142053
    functionDepth: 18
    functionLinenumber: 142053
    functionLinenumberEnd: 142214
    functionName: whereRangeScanEst
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - WHERETRACE
    - sqlite3ExprVectorSize
    - whereRangeSkipScanEst
    - OptimizationEnabled
    - sqlite3LogEst
    - UNUSED_PARAMETER
    - assert
    - sqlite3Stat4ProbeSetValue
    - whereRangeAdjust
    - testcase
    - whereKeyStats
    linkageType: ''
    returnType: int
    signature: "int whereRangeScanEst(\n  Parse *pParse,       /* Parsing & code generating
      context */\n  WhereLoopBuilder *pBuilder,\n  WhereTerm *pLower,   /* Lower bound
      on the range. ex: \"x>123\" Might be NULL */\n  WhereTerm *pUpper,   /* Upper
      bound on the range. ex: \"x<455\" Might be NULL */\n  WhereLoop *pLoop     /*
      Modify the .nOut and maybe .rRun fields */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:142247,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:142248,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:142249,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:142250,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:142251,1
    - Dst: sqlite3Stat4ProbeSetValue
      Src: /src/nss/lib/sqlite/sqlite3.c:142266,1
    - Dst: whereKeyStats
      Src: /src/nss/lib/sqlite/sqlite3.c:142272,1
    - Dst: WHERETRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:142273,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 4
    argNames:
    - pParse
    - pBuilder
    - pExpr
    - pnRow
    argTypes:
    - Parse*
    - WhereLoopBuilder*
    - Expr*
    - tRowcnt*
    assertStmts:
    - condition: ( nEq>=1 )
      pos:
        line_end: 142246
        line_start: 142246
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pBuilder->nRecValid<nEq )
      pos:
        line_end: 142250
        line_start: 142250
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->nSample>0 )
      pos:
        line_end: 142249
        line_start: 142249
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->aSample!=0 )
      pos:
        line_end: 142248
        line_start: 142248
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nEq<=p->nColumn )
      pos:
        line_end: 142247
        line_start: 142247
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 142278
      start: 142234
    functionDepth: 18
    functionLinenumber: 142234
    functionLinenumberEnd: 142278
    functionName: whereEqualScanEst
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - WHERETRACE
    - sqlite3Stat4ProbeSetValue
    - whereKeyStats
    linkageType: ''
    returnType: int
    signature: "int whereEqualScanEst(\n  Parse *pParse,       /* Parsing & code generating
      context */\n  WhereLoopBuilder *pBuilder,\n  Expr *pExpr,         /* Expression
      for VALUE in the x=VALUE constraint */\n  tRowcnt *pnRow       /* Write the
      revised row estimate here */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3LogEstToInt
      Src: /src/nss/lib/sqlite/sqlite3.c:142305,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:142312,1
    - Dst: whereEqualScanEst
      Src: /src/nss/lib/sqlite/sqlite3.c:142315,1
    - Dst: WHERETRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:142323,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:142325,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - pParse
    - pBuilder
    - pList
    - pnRow
    argTypes:
    - Parse*
    - WhereLoopBuilder*
    - ExprList*
    - tRowcnt*
    assertStmts:
    - condition: ( p->aSample!=0 )
      pos:
        line_end: 142311
        line_start: 142311
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pBuilder->nRecValid==nRecValid )
      pos:
        line_end: 142324
        line_start: 142324
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 142327
      start: 142298
    functionDepth: 19
    functionLinenumber: 142298
    functionLinenumberEnd: 142327
    functionName: whereInScanEst
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - WHERETRACE
    - sqlite3LogEstToInt
    - whereEqualScanEst
    linkageType: ''
    returnType: int
    signature: "int whereInScanEst(\n  Parse *pParse,       /* Parsing & code generating
      context */\n  WhereLoopBuilder *pBuilder,\n  ExprList *pList,     /* The value
      list on the RHS of \"x IN (v1,v2,v3,...)\" */\n  tRowcnt *pnRow       /* Write
      the revised row estimate here */\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DebugPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:142337,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:142341,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:142344,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:142346,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:142349,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:142352,1
    - Dst: sqlite3DebugPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:142354,1
    - Dst: sqlite3DebugPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:142359,1
    - Dst: sqlite3DebugPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:142361,1
    - Dst: sqlite3TreeViewExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:142363,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - pTerm
    - iTerm
    argTypes:
    - WhereTerm*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142365
      start: 142335
    functionDepth: 13
    functionLinenumber: 142335
    functionLinenumberEnd: 142365
    functionName: whereTermPrint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - sqlite3TreeViewExpr
    - sqlite3DebugPrintf
    - ExprHasProperty
    - sqlite3_snprintf
    linkageType: ''
    returnType: void
    signature: void whereTermPrint(WhereTerm *pTerm, int iTerm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: whereTermPrint
      Src: /src/nss/lib/sqlite/sqlite3.c:142375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pWC
    argTypes:
    - WhereClause*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142377
      start: 142372
    functionDepth: 14
    functionLinenumber: 142372
    functionLinenumberEnd: 142377
    functionName: sqlite3WhereClausePrint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - whereTermPrint
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WhereClausePrint(WhereClause *pWC)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DebugPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:142390,1
    - Dst: sqlite3DebugPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:142392,1
    - Dst: strncmp
      Src: /src/nss/lib/sqlite/sqlite3.c:142397,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:142398,1
    - Dst: sqlite3DebugPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:142402,1
    - Dst: sqlite3DebugPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:142404,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:142409,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:142412,1
    - Dst: sqlite3DebugPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:142414,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:142415,1
    - Dst: sqlite3DebugPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:142418,1
    - Dst: sqlite3DebugPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:142420,1
    - Dst: sqlite3DebugPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:142422,1
    - Dst: whereTermPrint
      Src: /src/nss/lib/sqlite/sqlite3.c:142426,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 2
    argNames:
    - p
    - pWC
    argTypes:
    - WhereLoop*
    - WhereClause*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142429
      start: 142384
    functionDepth: 14
    functionLinenumber: 142384
    functionLinenumberEnd: 142429
    functionName: whereLoopPrint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - strncmp
    - sqlite3_mprintf
    - sqlite3Strlen30
    - sqlite3DebugPrintf
    - whereTermPrint
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void whereLoopPrint(WhereLoop *p, WhereClause *pWC)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:142439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - WhereLoop*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142441
      start: 142436
    functionDepth: 1
    functionLinenumber: 142436
    functionLinenumberEnd: 142441
    functionName: whereLoopInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ArraySize
    linkageType: ''
    returnType: void
    signature: void whereLoopInit(WhereLoop *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:142449,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:142453,1
    - Dst: sqlite3DbFreeNN
      Src: /src/nss/lib/sqlite/sqlite3.c:142454,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - WhereLoop*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142458
      start: 142446
    functionDepth: 6
    functionLinenumber: 142446
    functionLinenumberEnd: 142458
    functionName: whereLoopClearUnion
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbFree
    - sqlite3DbFreeNN
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void whereLoopClearUnion(sqlite3 *db, WhereLoop *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbFreeNN
      Src: /src/nss/lib/sqlite/sqlite3.c:142464,1
    - Dst: whereLoopClearUnion
      Src: /src/nss/lib/sqlite/sqlite3.c:142465,1
    - Dst: whereLoopInit
      Src: /src/nss/lib/sqlite/sqlite3.c:142466,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - WhereLoop*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142467
      start: 142463
    functionDepth: 7
    functionLinenumber: 142463
    functionLinenumberEnd: 142467
    functionName: whereLoopClear
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - whereLoopClearUnion
    - sqlite3DbFreeNN
    - whereLoopInit
    linkageType: ''
    returnType: void
    signature: void whereLoopClear(sqlite3 *db, WhereLoop *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbMallocRawNN
      Src: /src/nss/lib/sqlite/sqlite3.c:142476,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:142478,1
    - Dst: sqlite3DbFreeNN
      Src: /src/nss/lib/sqlite/sqlite3.c:142479,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - db
    - p
    - n
    argTypes:
    - sqlite3*
    - WhereLoop*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142483
      start: 142472
    functionDepth: 7
    functionLinenumber: 142472
    functionLinenumberEnd: 142483
    functionName: whereLoopResize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3DbMallocRawNN
    - memcpy
    - sqlite3DbFreeNN
    linkageType: ''
    returnType: int
    signature: int whereLoopResize(sqlite3 *db, WhereLoop *p, int n)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: whereLoopClearUnion
      Src: /src/nss/lib/sqlite/sqlite3.c:142489,1
    - Dst: whereLoopResize
      Src: /src/nss/lib/sqlite/sqlite3.c:142490,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:142491,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:142494,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:142495,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - db
    - pTo
    - pFrom
    argTypes:
    - sqlite3*
    - WhereLoop*
    - WhereLoop*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142502
      start: 142488
    functionDepth: 8
    functionLinenumber: 142488
    functionLinenumberEnd: 142502
    functionName: whereLoopXfer
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - memcpy
    - whereLoopClearUnion
    - whereLoopResize
    linkageType: ''
    returnType: int
    signature: int whereLoopXfer(sqlite3 *db, WhereLoop *pTo, WhereLoop *pFrom)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: whereLoopClear
      Src: /src/nss/lib/sqlite/sqlite3.c:142508,1
    - Dst: sqlite3DbFreeNN
      Src: /src/nss/lib/sqlite/sqlite3.c:142509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - WhereLoop*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142510
      start: 142507
    functionDepth: 8
    functionLinenumber: 142507
    functionLinenumberEnd: 142510
    functionName: whereLoopDelete
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - whereLoopClear
    - sqlite3DbFreeNN
    linkageType: ''
    returnType: void
    signature: void whereLoopDelete(sqlite3 *db, WhereLoop *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:142517,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:142521,1
    - Dst: sqlite3WhereClauseClear
      Src: /src/nss/lib/sqlite/sqlite3.c:142524,1
    - Dst: whereLoopDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:142528,1
    - Dst: sqlite3DbFreeNN
      Src: /src/nss/lib/sqlite/sqlite3.c:142530,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - db
    - pWInfo
    argTypes:
    - sqlite3*
    - WhereInfo*
    assertStmts:
    - condition: ( pWInfo!=0 )
      pos:
        line_end: 142516
        line_start: 142516
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 142531
      start: 142515
    functionDepth: 9
    functionLinenumber: 142515
    functionLinenumberEnd: 142531
    functionName: whereInfoFree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbFree
    - whereLoopDelete
    - assert
    - sqlite3DbFreeNN
    - sqlite3WhereClauseClear
    linkageType: ''
    returnType: void
    signature: void whereInfoFree(sqlite3 *db, WhereInfo *pWInfo)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 26
    argCount: 2
    argNames:
    - pX
    - pY
    argTypes:
    - WhereLoop*
    - WhereLoop*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142576
      start: 142551
    functionDepth: 0
    functionLinenumber: 142551
    functionLinenumberEnd: 142576
    functionName: whereLoopCheaperProperSubset
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int whereLoopCheaperProperSubset(\n  const WhereLoop *pX,       /*
      First WhereLoop to compare */\n  const WhereLoop *pY        /* Compare against
      this WhereLoop */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: whereLoopCheaperProperSubset
      Src: /src/nss/lib/sqlite/sqlite3.c:142597,1
    - Dst: WHERETRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:142600,1
    - Dst: whereLoopCheaperProperSubset
      Src: /src/nss/lib/sqlite/sqlite3.c:142604,1
    - Dst: WHERETRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:142607,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - p
    - pTemplate
    argTypes:
    - WhereLoop*
    - WhereLoop*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142613
      start: 142592
    functionDepth: 1
    functionLinenumber: 142592
    functionLinenumberEnd: 142613
    functionName: whereLoopAdjustCost
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - whereLoopCheaperProperSubset
    - WHERETRACE
    linkageType: ''
    returnType: void
    signature: void whereLoopAdjustCost(const WhereLoop *p, WhereLoop *pTemplate)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:142644,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:142650,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:142686,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: "( p->rSetup==0 || pTemplate->rSetup==0 \n                 || p->rSetup==pTemplate->rSetup
        )"
      pos:
        line_end: 142644
        line_start: 142643
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->rSetup>=pTemplate->rSetup )
      pos:
        line_end: 142685
        line_start: 142685
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->rSetup>=pTemplate->rSetup )
      pos:
        line_end: 142649
        line_start: 142649
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 142691
      start: 142629
    functionDepth: 0
    functionLinenumber: 142629
    functionLinenumberEnd: 142691
    functionName: whereLoopFindLesser
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: WhereLoop
    signature: "WhereLoop **whereLoopFindLesser(\n  WhereLoop **ppPrev,\n  const WhereLoop
      *pTemplate\n)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: WHERETRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:142725,1
    - Dst: whereOrInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:142740,1
    - Dst: sqlite3DebugPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:142744,1
    - Dst: whereLoopPrint
      Src: /src/nss/lib/sqlite/sqlite3.c:142745,1
    - Dst: whereLoopAdjustCost
      Src: /src/nss/lib/sqlite/sqlite3.c:142754,1
    - Dst: whereLoopFindLesser
      Src: /src/nss/lib/sqlite/sqlite3.c:142755,1
    - Dst: sqlite3DebugPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:142762,1
    - Dst: whereLoopPrint
      Src: /src/nss/lib/sqlite/sqlite3.c:142763,1
    - Dst: sqlite3DebugPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:142778,1
    - Dst: whereLoopPrint
      Src: /src/nss/lib/sqlite/sqlite3.c:142779,1
    - Dst: sqlite3DebugPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:142780,1
    - Dst: sqlite3DebugPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:142782,1
    - Dst: whereLoopPrint
      Src: /src/nss/lib/sqlite/sqlite3.c:142784,1
    - Dst: sqlite3DbMallocRawNN
      Src: /src/nss/lib/sqlite/sqlite3.c:142789,1
    - Dst: whereLoopInit
      Src: /src/nss/lib/sqlite/sqlite3.c:142791,1
    - Dst: whereLoopFindLesser
      Src: /src/nss/lib/sqlite/sqlite3.c:142800,1
    - Dst: sqlite3DebugPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:142807,1
    - Dst: whereLoopPrint
      Src: /src/nss/lib/sqlite/sqlite3.c:142808,1
    - Dst: whereLoopDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:142811,1
    - Dst: whereLoopXfer
      Src: /src/nss/lib/sqlite/sqlite3.c:142814,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 67
    argCount: 2
    argNames:
    - pBuilder
    - pTemplate
    argTypes:
    - WhereLoopBuilder*
    - WhereLoop*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142822
      start: 142717
    functionDepth: 15
    functionLinenumber: 142717
    functionLinenumberEnd: 142822
    functionName: whereLoopInsert
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - whereLoopPrint
    - WHERETRACE
    - whereLoopAdjustCost
    - sqlite3DbMallocRawNN
    - whereLoopDelete
    - whereOrInsert
    - sqlite3DebugPrintf
    - whereLoopFindLesser
    - whereLoopXfer
    - whereLoopInit
    linkageType: ''
    returnType: int
    signature: int whereLoopInsert(WhereLoopBuilder *pBuilder, WhereLoop *pTemplate)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:142863,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:142885,1
    - Dst: sqlite3ExprIsInteger
      Src: /src/nss/lib/sqlite/sqlite3.c:142886,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 38
    argCount: 3
    argNames:
    - pWC
    - pLoop
    - nRow
    argTypes:
    - WhereClause*
    - WhereLoop*
    - LogEst
    assertStmts:
    - condition: ( (pLoop->wsFlags & WHERE_AUTO_INDEX)==0 )
      pos:
        line_end: 142862
        line_start: 142862
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 142897
      start: 142853
    functionDepth: 3
    functionLinenumber: 142853
    functionLinenumberEnd: 142897
    functionName: whereLoopOutputAdjust
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - testcase
    - sqlite3ExprIsInteger
    linkageType: ''
    returnType: void
    signature: "void whereLoopOutputAdjust(\n  WhereClause *pWC,      /* The WHERE
      clause */\n  WhereLoop *pLoop,      /* The loop to adjust downward */\n  LogEst
      nRow            /* Number of rows in the entire table */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprVectorSize
      Src: /src/nss/lib/sqlite/sqlite3.c:142923,1
    - Dst: MIN
      Src: /src/nss/lib/sqlite/sqlite3.c:142926,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:142953,1
    - Dst: sqlite3CompareAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:142954,1
    - Dst: sqlite3ExprAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:142954,1
    - Dst: sqlite3TableColumnAffinity
      Src: /src/nss/lib/sqlite/sqlite3.c:142955,1
    - Dst: sqlite3BinaryCompareCollSeq
      Src: /src/nss/lib/sqlite/sqlite3.c:142958,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:142960,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 23
    argCount: 5
    argNames:
    - pParse
    - iCur
    - pIdx
    - nEq
    - pTerm
    argTypes:
    - Parse*
    - int
    - Index*
    - int
    - WhereTerm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142963
      start: 142916
    functionDepth: 3
    functionLinenumber: 142916
    functionLinenumberEnd: 142963
    functionName: whereRangeVectorLen
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3StrICmp
    - sqlite3BinaryCompareCollSeq
    - sqlite3ExprVectorSize
    - sqlite3ExprAffinity
    - sqlite3CompareAffinity
    - sqlite3TableColumnAffinity
    - testcase
    - MIN
    linkageType: ''
    returnType: int
    signature: "int whereRangeVectorLen(\n  Parse *pParse,       /* Parsing context
      */\n  int iCur,            /* Cursor open on pIdx */\n  Index *pIdx,         /*
      The index to be used for a inequality constraint */\n  int nEq,             /*
      Number of prior equality constraints on same index */\n  WhereTerm *pTerm     /*
      The vector inequality constraint */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - C
    - ','
    - T
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142971
      start: 142970
    functionDepth: 0
    functionLinenumber: 142970
    functionLinenumberEnd: 142971
    functionName: ApplyCostMultiplier
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ApplyCostMultiplier(C,T)
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: WHERETRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:143015,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:143018,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:143019,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:143023,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:143028,1
    - Dst: whereScanInit
      Src: /src/nss/lib/sqlite/sqlite3.c:143038,1
    - Dst: estLog
      Src: /src/nss/lib/sqlite/sqlite3.c:143042,1
    - Dst: whereScanNext
      Src: /src/nss/lib/sqlite/sqlite3.c:143043,1
    - Dst: indexColumnNotNull
      Src: /src/nss/lib/sqlite/sqlite3.c:143052,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:143066,1
    - Dst: IsUniqueIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:143071,1
    - Dst: whereLoopResize
      Src: /src/nss/lib/sqlite/sqlite3.c:143081,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:143085,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:143093,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:143096,1
    - Dst: sqlite3LogEst
      Src: /src/nss/lib/sqlite/sqlite3.c:143096,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:143106,1
    - Dst: sqlite3LogEst
      Src: /src/nss/lib/sqlite/sqlite3.c:143108,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:143109,1
    - Dst: estLog
      Src: /src/nss/lib/sqlite/sqlite3.c:143134,1
    - Dst: WHERETRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:143137,1
    - Dst: WHERETRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:143142,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:143151,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:143166,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:143167,1
    - Dst: whereRangeVectorLen
      Src: /src/nss/lib/sqlite/sqlite3.c:143169,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:143178,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:143179,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:143180,1
    - Dst: whereLoopResize
      Src: /src/nss/lib/sqlite/sqlite3.c:143181,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:143187,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:143188,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:143189,1
    - Dst: whereRangeVectorLen
      Src: /src/nss/lib/sqlite/sqlite3.c:143191,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:143204,1
    - Dst: whereRangeScanEst
      Src: /src/nss/lib/sqlite/sqlite3.c:143208,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:143211,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:143213,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:143215,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:143216,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:143225,1
    - Dst: OptimizationEnabled
      Src: /src/nss/lib/sqlite/sqlite3.c:143226,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:143230,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:143231,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:143232,1
    - Dst: whereEqualScanEst
      Src: /src/nss/lib/sqlite/sqlite3.c:143233,1
    - Dst: whereInScanEst
      Src: /src/nss/lib/sqlite/sqlite3.c:143235,1
    - Dst: sqlite3LogEst
      Src: /src/nss/lib/sqlite/sqlite3.c:143240,1
    - Dst: sqlite3LogEstAdd
      Src: /src/nss/lib/sqlite/sqlite3.c:143264,1
    - Dst: sqlite3LogEstAdd
      Src: /src/nss/lib/sqlite/sqlite3.c:143266,1
    - Dst: ApplyCostMultiplier
      Src: /src/nss/lib/sqlite/sqlite3.c:143268,1
    - Dst: whereLoopOutputAdjust
      Src: /src/nss/lib/sqlite/sqlite3.c:143273,1
    - Dst: whereLoopInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:143274,1
    - Dst: whereLoopAddBtreeIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:143285,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:143311,1
    - Dst: sqlite3LogEst
      Src: /src/nss/lib/sqlite/sqlite3.c:143311,1
    - Dst: OptimizationEnabled
      Src: /src/nss/lib/sqlite/sqlite3.c:143315,1
    - Dst: whereLoopResize
      Src: /src/nss/lib/sqlite/sqlite3.c:143317,1
    - Dst: whereLoopAddBtreeIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:143329,1
    - Dst: WHERETRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:143336,1
    CyclomaticComplexity: 77
    EdgeCount: 77
    ICount: 209
    argCount: 4
    argNames:
    - pBuilder
    - pSrc
    - pProbe
    - nInMul
    argTypes:
    - WhereLoopBuilder*
    - struct SrcList_item*
    - Index*
    - LogEst
    assertStmts:
    - condition: ( (pNew->wsFlags & WHERE_TOP_LIMIT)==0 )
      pos:
        line_end: 143018
        line_start: 143018
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( nInMul==0\n        || (pNew->wsFlags & WHERE_COLUMN_NULL)!=0 \n
        \       || (pNew->wsFlags & WHERE_COLUMN_IN)!=0 \n        || (pNew->wsFlags
        & WHERE_SKIPSCAN)!=0 \n    )"
      pos:
        line_end: 143088
        line_start: 143084
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pTop-(pTerm->pWC->a))<pTerm->pWC->nTerm )
      pos:
        line_end: 143177
        line_start: 143177
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTop->eOperator==WO_LT )
      pos:
        line_end: 143179
        line_start: 143179
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pNew->nOut==saved_nOut )
      pos:
        line_end: 143212
        line_start: 143212
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pNew->wsFlags & WHERE_VIRTUALTABLE)==0 )
      pos:
        line_end: 143017
        line_start: 143017
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pNew->u.btree.nBtm==0 )
      pos:
        line_end: 143022
        line_start: 143022
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( 46==sqlite3LogEst(25) )
      pos:
        line_end: 143095
        line_start: 143095
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( saved_nEq==pNew->u.btree.nEq )
      pos:
        line_end: 143150
        line_start: 143150
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( 42==sqlite3LogEst(18) )
      pos:
        line_end: 143310
        line_start: 143310
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( eOp & (WO_ISNULL|WO_EQ|WO_IN|WO_IS) )
      pos:
        line_end: 143210
        line_start: 143210
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nIn>0 )
      pos:
        line_end: 143108
        line_start: 143108
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTop->wtFlags & TERM_LIKEOPT )
      pos:
        line_end: 143178
        line_start: 143178
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pNew->u.btree.nEq<pProbe->nColumn )
      pos:
        line_end: 143027
        line_start: 143027
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pNew->nOut==saved_nOut )
      pos:
        line_end: 143203
        line_start: 143203
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (eOp & WO_IN) || nIn==0 )
      pos:
        line_end: 143214
        line_start: 143214
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( eOp & (WO_LT|WO_LE) )
      pos:
        line_end: 143186
        line_start: 143186
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 143339
      start: 142987
    functionDepth: 22
    functionLinenumber: 142987
    functionLinenumberEnd: 143339
    functionName: whereLoopAddBtreeIndex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - IsUniqueIndex
    - ALWAYS
    - testcase
    - whereLoopOutputAdjust
    - indexColumnNotNull
    - whereLoopAddBtreeIndex
    - OptimizationEnabled
    - whereScanInit
    - assert
    - ExprHasProperty
    - ApplyCostMultiplier
    - whereRangeScanEst
    - whereLoopInsert
    - whereScanNext
    - sqlite3LogEstAdd
    - whereRangeVectorLen
    - WHERETRACE
    - whereEqualScanEst
    - whereInScanEst
    - sqlite3LogEst
    - whereLoopResize
    - estLog
    linkageType: ''
    returnType: int
    signature: "int whereLoopAddBtreeIndex(\n  WhereLoopBuilder *pBuilder,     /*
      The WhereLoop factory */\n  struct SrcList_item *pSrc,      /* FROM clause term
      being analyzed */\n  Index *pProbe,                  /* An index on pSrc */\n
      \ LogEst nInMul                   /* log(Number of iterations due to IN) */\n)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprSkipCollate
      Src: /src/nss/lib/sqlite/sqlite3.c:143361,1
    - Dst: sqlite3ExprCompareSkip
      Src: /src/nss/lib/sqlite/sqlite3.c:143370,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 25
    argCount: 3
    argNames:
    - pBuilder
    - pIndex
    - iCursor
    argTypes:
    - WhereLoopBuilder*
    - Index*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143377
      start: 143349
    functionDepth: 19
    functionLinenumber: 143349
    functionLinenumberEnd: 143377
    functionName: indexMightHelpWithOrderBy
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ExprCompareSkip
    - sqlite3ExprSkipCollate
    linkageType: ''
    returnType: int
    signature: "int indexMightHelpWithOrderBy(\n  WhereLoopBuilder *pBuilder,\n  Index
      *pIndex,\n  int iCursor\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: whereUsablePartialIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:143387,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:143393,1
    - Dst: sqlite3ExprImpliesExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:143394,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 3
    argNames:
    - iTab
    - pWC
    - pWhere
    argTypes:
    - int
    - WhereClause*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143400
      start: 143382
    functionDepth: 20
    functionLinenumber: 143382
    functionLinenumberEnd: 143400
    functionName: whereUsablePartialIndex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3ExprImpliesExpr
    - ExprHasProperty
    - whereUsablePartialIndex
    linkageType: ''
    returnType: int
    signature: int whereUsablePartialIndex(int iTab, WhereClause *pWC, Expr *pWhere)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:143464,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:143464,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:143469,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:143477,1
    - Dst: estLog
      Src: /src/nss/lib/sqlite/sqlite3.c:143497,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:143506,1
    - Dst: termCanDriveIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:143515,1
    - Dst: ApplyCostMultiplier
      Src: /src/nss/lib/sqlite/sqlite3.c:143535,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:143541,1
    - Dst: sqlite3LogEst
      Src: /src/nss/lib/sqlite/sqlite3.c:143541,1
    - Dst: sqlite3LogEstAdd
      Src: /src/nss/lib/sqlite/sqlite3.c:143542,1
    - Dst: whereLoopInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:143545,1
    - Dst: whereUsablePartialIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:143557,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:143558,1
    - Dst: indexMightHelpWithOrderBy
      Src: /src/nss/lib/sqlite/sqlite3.c:143573,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:143575,1
    - Dst: ApplyCostMultiplier
      Src: /src/nss/lib/sqlite/sqlite3.c:143584,1
    - Dst: whereLoopOutputAdjust
      Src: /src/nss/lib/sqlite/sqlite3.c:143585,1
    - Dst: whereLoopInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:143586,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:143601,1
    - Dst: OptimizationEnabled
      Src: /src/nss/lib/sqlite/sqlite3.c:143608,1
    - Dst: sqlite3ExprCoveredByIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:143629,1
    - Dst: sqlite3LogEstAdd
      Src: /src/nss/lib/sqlite/sqlite3.c:143642,1
    - Dst: ApplyCostMultiplier
      Src: /src/nss/lib/sqlite/sqlite3.c:143644,1
    - Dst: whereLoopOutputAdjust
      Src: /src/nss/lib/sqlite/sqlite3.c:143645,1
    - Dst: whereLoopInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:143646,1
    - Dst: whereLoopAddBtreeIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:143653,1
    - Dst: sqlite3Stat4ProbeFree
      Src: /src/nss/lib/sqlite/sqlite3.c:143662,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 135
    argCount: 2
    argNames:
    - pBuilder
    - mPrereq
    argTypes:
    - WhereLoopBuilder*
    - Bitmask
    assertStmts:
    - condition: ( !IsVirtual(pSrc->pTab) )
      pos:
        line_end: 143463
        line_start: 143463
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( 43==sqlite3LogEst(20) )
      pos:
        line_end: 143540
        line_start: 143540
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pWInfo->wctrlFlags & WHERE_ONEPASS_DESIRED)==0 || b==0 )
      pos:
        line_end: 143574
        line_start: 143574
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 143668
      start: 143438
    functionDepth: 23
    functionLinenumber: 143438
    functionLinenumberEnd: 143668
    functionName: whereLoopAddBtree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - HasRowid
    - termCanDriveIndex
    - whereLoopOutputAdjust
    - sqlite3ExprCoveredByIndex
    - sqlite3Stat4ProbeFree
    - indexMightHelpWithOrderBy
    - whereLoopInsert
    - whereLoopAddBtreeIndex
    - sqlite3LogEst
    - OptimizationEnabled
    - sqlite3LogEstAdd
    - whereUsablePartialIndex
    - assert
    - memset
    - estLog
    - testcase
    - IsVirtual
    - ApplyCostMultiplier
    linkageType: ''
    returnType: int
    signature: "int whereLoopAddBtree(\n  WhereLoopBuilder *pBuilder, /* WHERE clause
      information */\n  Bitmask mPrereq             /* Extra prerequesites for using
      this table */\n)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:143712,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:143730,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:143731,1
    - Dst: vtabBestIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:143741,1
    - Dst: WHERETRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:143748,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:143755,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:143770,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:143771,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:143774,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:143775,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:143776,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:143779,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:143782,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:143783,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:143793,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:143804,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:143805,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:143809,1
    - Dst: sqlite3LogEstFromDouble
      Src: /src/nss/lib/sqlite/sqlite3.c:143817,1
    - Dst: sqlite3LogEst
      Src: /src/nss/lib/sqlite/sqlite3.c:143818,1
    - Dst: whereLoopInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:143827,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:143829,1
    - Dst: WHERETRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:143832,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 92
    argCount: 7
    argNames:
    - pBuilder
    - mPrereq
    - mUsable
    - mExclude
    - pIdxInfo
    - mNoOmit
    - pbIn
    argTypes:
    - WhereLoopBuilder*
    - Bitmask
    - Bitmask
    - u16
    - sqlite3_index_info*
    - u16
    - int*
    assertStmts:
    - condition: ( pIdxInfo->needToFreeIdxStr==0 )
      pos:
        line_end: 143730
        line_start: 143730
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (mExclude & WO_IN)==0 )
      pos:
        line_end: 143792
        line_start: 143792
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (mUsable & mPrereq)==mPrereq )
      pos:
        line_end: 143711
        line_start: 143711
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pNew->nLTerm<=pNew->nLSlot )
      pos:
        line_end: 143808
        line_start: 143808
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pNew->nLSlot>=nConstraint )
      pos:
        line_end: 143754
        line_start: 143754
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iTerm<pNew->nLSlot )
      pos:
        line_end: 143778
        line_start: 143778
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 143837
      start: 143692
    functionDepth: 16
    functionLinenumber: 143692
    functionLinenumberEnd: 143837
    functionName: whereLoopAddVirtualOne
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - WHERETRACE
    - sqlite3LogEstFromDouble
    - whereLoopInsert
    - sqlite3LogEst
    - vtabBestIndex
    - assert
    - memset
    - sqlite3ErrorMsg
    - testcase
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int whereLoopAddVirtualOne(\n  WhereLoopBuilder *pBuilder,\n  Bitmask
      mPrereq,                /* Mask of tables that must be used. */\n  Bitmask mUsable,
      \               /* Mask of usable tables */\n  u16 mExclude,                   /*
      Exclude terms using these operators */\n  sqlite3_index_info *pIdxInfo,   /*
      Populated object for xBestIndex */\n  u16 mNoOmit,                    /* Do
      not omit these constraints */\n  int *pbIn                       /* OUT: True
      if plan uses an IN(...) op */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BinaryCompareCollSeq
      Src: /src/nss/lib/sqlite/sqlite3.c:143854,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - pIdxInfo
    - iCons
    argTypes:
    - sqlite3_index_info*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143859
      start: 143846
    functionDepth: 3
    functionLinenumber: 143846
    functionLinenumberEnd: 143859
    functionName: sqlite3_vtab_collation
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BinaryCompareCollSeq
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *sqlite3_vtab_collation(sqlite3_index_info *pIdxInfo, int
      iCons)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:143903,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:143909,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:143909,1
    - Dst: allocateIndexInfo
      Src: /src/nss/lib/sqlite/sqlite3.c:143910,1
    - Dst: whereLoopResize
      Src: /src/nss/lib/sqlite/sqlite3.c:143918,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:143919,1
    - Dst: WHERETRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:143924,1
    - Dst: WHERETRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:143925,1
    - Dst: whereLoopAddVirtualOne
      Src: /src/nss/lib/sqlite/sqlite3.c:143926,1
    - Dst: WHERETRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:143942,1
    - Dst: whereLoopAddVirtualOne
      Src: /src/nss/lib/sqlite/sqlite3.c:143943,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:143945,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:143958,1
    - Dst: WHERETRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:143968,1
    - Dst: whereLoopAddVirtualOne
      Src: /src/nss/lib/sqlite/sqlite3.c:143970,1
    - Dst: WHERETRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:143982,1
    - Dst: whereLoopAddVirtualOne
      Src: /src/nss/lib/sqlite/sqlite3.c:143983,1
    - Dst: WHERETRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:143992,1
    - Dst: whereLoopAddVirtualOne
      Src: /src/nss/lib/sqlite/sqlite3.c:143993,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:143998,1
    - Dst: sqlite3DbFreeNN
      Src: /src/nss/lib/sqlite/sqlite3.c:143999,1
    - Dst: WHERETRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:144000,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 69
    argCount: 3
    argNames:
    - pBuilder
    - mPrereq
    - mUnusable
    argTypes:
    - WhereLoopBuilder*
    - Bitmask
    - Bitmask
    assertStmts:
    - condition: ( (mPrereq & mUnusable)==0 )
      pos:
        line_end: 143902
        line_start: 143902
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( mNext>0 )
      pos:
        line_end: 143957
        line_start: 143957
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( bIn==0 )
      pos:
        line_end: 143944
        line_start: 143944
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( IsVirtual(pSrc->pTab) )
      pos:
        line_end: 143908
        line_start: 143908
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 144002
      start: 143886
    functionDepth: 17
    functionLinenumber: 143886
    functionLinenumberEnd: 144002
    functionName: whereLoopAddVirtual
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - WHERETRACE
    - whereLoopAddVirtualOne
    - sqlite3DbFree
    - assert
    - allocateIndexInfo
    - whereLoopResize
    - sqlite3DbFreeNN
    - sqlite3_free
    - IsVirtual
    linkageType: ''
    returnType: int
    signature: "int whereLoopAddVirtual(\n  WhereLoopBuilder *pBuilder,  /* WHERE
      clause information */\n  Bitmask mPrereq,             /* Tables that must be
      scanned before this one */\n  Bitmask mUnusable            /* Tables that must
      be scanned after this one */\n)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:144028,1
    - Dst: WHERETRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:144046,1
    - Dst: WHERETRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:144062,1
    - Dst: sqlite3WhereClausePrint
      Src: /src/nss/lib/sqlite/sqlite3.c:144065,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:144069,1
    - Dst: whereLoopAddVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:144070,1
    - Dst: whereLoopAddBtree
      Src: /src/nss/lib/sqlite/sqlite3.c:144074,1
    - Dst: whereLoopAddOr
      Src: /src/nss/lib/sqlite/sqlite3.c:144077,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:144079,1
    - Dst: whereOrMove
      Src: /src/nss/lib/sqlite/sqlite3.c:144084,1
    - Dst: whereOrMove
      Src: /src/nss/lib/sqlite/sqlite3.c:144088,1
    - Dst: whereOrInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:144092,1
    - Dst: sqlite3LogEstAdd
      Src: /src/nss/lib/sqlite/sqlite3.c:144093,1
    - Dst: sqlite3LogEstAdd
      Src: /src/nss/lib/sqlite/sqlite3.c:144094,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:144104,1
    - Dst: whereLoopInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:144121,1
    - Dst: WHERETRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:144123,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 74
    argCount: 3
    argNames:
    - pBuilder
    - mPrereq
    - mUnusable
    argTypes:
    - WhereLoopBuilder*
    - Bitmask
    - Bitmask
    assertStmts:
    - condition: ( rc==SQLITE_OK || sCur.n==0 )
      pos:
        line_end: 144078
        line_start: 144078
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 144127
      start: 144009
    functionDepth: 24
    functionLinenumber: 144009
    functionLinenumberEnd: 144127
    functionName: whereLoopAddOr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - WHERETRACE
    - whereLoopInsert
    - sqlite3LogEstAdd
    - whereOrMove
    - memset
    - whereLoopAddBtree
    - whereLoopAddOr
    - whereLoopAddVirtual
    - assert
    - whereOrInsert
    - sqlite3WhereClausePrint
    - IsVirtual
    linkageType: ''
    returnType: int
    signature: "int whereLoopAddOr(\n  WhereLoopBuilder *pBuilder, \n  Bitmask mPrereq,
      \n  Bitmask mUnusable\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: whereLoopInit
      Src: /src/nss/lib/sqlite/sqlite3.c:144147,1
    - Dst: sqlite3WhereGetMask
      Src: /src/nss/lib/sqlite/sqlite3.c:144153,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:144161,1
    - Dst: sqlite3WhereGetMask
      Src: /src/nss/lib/sqlite/sqlite3.c:144165,1
    - Dst: whereLoopAddVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:144168,1
    - Dst: whereLoopAddBtree
      Src: /src/nss/lib/sqlite/sqlite3.c:144172,1
    - Dst: whereLoopAddOr
      Src: /src/nss/lib/sqlite/sqlite3.c:144175,1
    - Dst: sqlite3_log
      Src: /src/nss/lib/sqlite/sqlite3.c:144181,1
    - Dst: whereLoopClear
      Src: /src/nss/lib/sqlite/sqlite3.c:144189,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 1
    argNames:
    - pBuilder
    argTypes:
    - WhereLoopBuilder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144191
      start: 144132
    functionDepth: 25
    functionLinenumber: 144132
    functionLinenumberEnd: 144191
    functionName: whereLoopAddAll
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - whereLoopInit
    - sqlite3_log
    - whereLoopClear
    - whereLoopAddBtree
    - sqlite3WhereGetMask
    - whereLoopAddVirtual
    - whereLoopAddOr
    - IsVirtual
    linkageType: ''
    returnType: int
    signature: int whereLoopAddAll(WhereLoopBuilder *pBuilder)
  - BBCount: 52
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:144266,1
    - Dst: OptimizationDisabled
      Src: /src/nss/lib/sqlite/sqlite3.c:144267,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:144270,1
    - Dst: MASKBIT
      Src: /src/nss/lib/sqlite/sqlite3.c:144273,1
    - Dst: MASKBIT
      Src: /src/nss/lib/sqlite/sqlite3.c:144300,1
    - Dst: sqlite3ExprSkipCollate
      Src: /src/nss/lib/sqlite/sqlite3.c:144301,1
    - Dst: sqlite3WhereFindTerm
      Src: /src/nss/lib/sqlite/sqlite3.c:144304,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:144311,1
    - Dst: sqlite3ExprCollSeqMatch
      Src: /src/nss/lib/sqlite/sqlite3.c:144316,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:144320,1
    - Dst: MASKBIT
      Src: /src/nss/lib/sqlite/sqlite3.c:144322,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:144335,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:144335,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:144336,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:144337,1
    - Dst: IsUniqueIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:144338,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:144349,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:144365,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:144369,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:144377,1
    - Dst: MASKBIT
      Src: /src/nss/lib/sqlite/sqlite3.c:144413,1
    - Dst: sqlite3ExprSkipCollate
      Src: /src/nss/lib/sqlite/sqlite3.c:144414,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:144415,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:144416,1
    - Dst: sqlite3ExprCompareSkip
      Src: /src/nss/lib/sqlite/sqlite3.c:144424,1
    - Dst: sqlite3ExprNNCollSeq
      Src: /src/nss/lib/sqlite/sqlite3.c:144429,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:144430,1
    - Dst: MASKBIT
      Src: /src/nss/lib/sqlite/sqlite3.c:144443,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:144449,1
    - Dst: MASKBIT
      Src: /src/nss/lib/sqlite/sqlite3.c:144452,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:144456,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:144463,1
    - Dst: MASKBIT
      Src: /src/nss/lib/sqlite/sqlite3.c:144474,1
    - Dst: sqlite3WhereExprUsage
      Src: /src/nss/lib/sqlite/sqlite3.c:144476,1
    - Dst: sqlite3ExprIsConstant
      Src: /src/nss/lib/sqlite/sqlite3.c:144477,1
    - Dst: MASKBIT
      Src: /src/nss/lib/sqlite/sqlite3.c:144479,1
    - Dst: MASKBIT
      Src: /src/nss/lib/sqlite/sqlite3.c:144487,1
    CyclomaticComplexity: 96
    EdgeCount: 96
    ICount: 193
    argCount: 7
    argNames:
    - pWInfo
    - pOrderBy
    - pPath
    - wctrlFlags
    - nLoop
    - pLast
    - pRevMask
    argTypes:
    - WhereInfo*
    - ExprList*
    - WherePath*
    - u16
    - u16
    - WhereLoop*
    - Bitmask*
    assertStmts:
    - condition: ( wctrlFlags & WHERE_ORDERBY_LIMIT )
      pos:
        line_end: 144310
        line_start: 144310
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( j>=pLoop->u.btree.nEq \n            || (pLoop->aLTerm[j]==0)==(j<pLoop->nSkip)\n
        \       )"
      pos:
        line_end: 144350
        line_start: 144348
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nColumn==nKeyCol+1 || !HasRowid(pIndex->pTable) )
      pos:
        line_end: 144334
        line_start: 144334
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pOrderBy!=0 )
      pos:
        line_end: 144265
        line_start: 144265
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( pIndex->aiColumn[nColumn-1]==XN_ROWID\n                          ||
        !HasRowid(pIndex->pTable))"
      pos:
        line_end: 144336
        line_start: 144335
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pLoop->aLTerm[i]->eOperator & WO_IN) )
      pos:
        line_end: 144376
        line_start: 144376
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 144493
      start: 144210
    functionDepth: 23
    functionLinenumber: 144210
    functionLinenumberEnd: 144493
    functionName: wherePathSatisfiesOrderBy
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - HasRowid
    - IsUniqueIndex
    - ALWAYS
    - sqlite3WhereExprUsage
    - sqlite3ExprIsConstant
    - sqlite3WhereFindTerm
    - sqlite3StrICmp
    - sqlite3ExprSkipCollate
    - MASKBIT
    - OptimizationDisabled
    - sqlite3ExprCollSeqMatch
    - assert
    - sqlite3ExprCompareSkip
    - sqlite3ExprNNCollSeq
    - testcase
    linkageType: ''
    returnType: i8
    signature: "i8 wherePathSatisfiesOrderBy(\n  WhereInfo *pWInfo,    /* The WHERE
      clause */\n  ExprList *pOrderBy,   /* ORDER BY or GROUP BY or DISTINCT clause
      to check */\n  WherePath *pPath,     /* The WherePath to check */\n  u16 wctrlFlags,
      \      /* WHERE_GROUPBY or _DISTINCTBY or _ORDERBY_LIMIT */\n  u16 nLoop,            /*
      Number of entries in pPath->aLoop[] */\n  WhereLoop *pLast,     /* Add this
      WhereLoop to the end of pPath->aLoop[] */\n  Bitmask *pRevMask     /* OUT: Mask
      of WhereLoops to run in reverse order */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:144520,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:144521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pWInfo
    argTypes:
    - WhereInfo*
    assertStmts:
    - condition: ( pWInfo->wctrlFlags & WHERE_GROUPBY )
      pos:
        line_end: 144519
        line_start: 144519
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pWInfo->wctrlFlags & WHERE_SORTBYGROUP )
      pos:
        line_end: 144520
        line_start: 144520
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 144523
      start: 144519
    functionDepth: 0
    functionLinenumber: 144519
    functionLinenumberEnd: 144523
    functionName: sqlite3WhereIsSorted
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WhereIsSorted(WhereInfo *pWInfo)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - pPath
    - nLoop
    - pLast
    argTypes:
    - WherePath*
    - int
    - WhereLoop*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144534
      start: 144527
    functionDepth: 0
    functionLinenumber: 144527
    functionLinenumberEnd: 144534
    functionName: wherePathName
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *wherePathName(WherePath *pPath, int nLoop, WhereLoop *pLast)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:144562,1
    - Dst: sqlite3LogEst
      Src: /src/nss/lib/sqlite/sqlite3.c:144562,1
    - Dst: sqlite3LogEst
      Src: /src/nss/lib/sqlite/sqlite3.c:144563,1
    - Dst: estLog
      Src: /src/nss/lib/sqlite/sqlite3.c:144571,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - pWInfo
    - nRow
    - nOrderBy
    - nSorted
    argTypes:
    - WhereInfo*
    - LogEst
    - int
    - int
    assertStmts:
    - condition: ( nOrderBy>0 && 66==sqlite3LogEst(100) )
      pos:
        line_end: 144561
        line_start: 144561
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 144573
      start: 144542
    functionDepth: 2
    functionLinenumber: 144542
    functionLinenumberEnd: 144573
    functionName: whereSortingCost
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - estLog
    - sqlite3LogEst
    linkageType: ''
    returnType: LogEst
    signature: "LogEst whereSortingCost(\n  WhereInfo *pWInfo,\n  LogEst nRow,\n  int
      nOrderBy,\n  int nSorted\n)"
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:144616,1
    - Dst: WHERETRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:144617,1
    - Dst: sqlite3DbMallocRawNN
      Src: /src/nss/lib/sqlite/sqlite3.c:144633,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:144637,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:144650,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:144652,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:144653,1
    - Dst: MIN
      Src: /src/nss/lib/sqlite/sqlite3.c:144660,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:144660,1
    - Dst: sqlite3LogEst
      Src: /src/nss/lib/sqlite/sqlite3.c:144660,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:144662,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:144694,1
    - Dst: sqlite3LogEst
      Src: /src/nss/lib/sqlite/sqlite3.c:144694,1
    - Dst: sqlite3LogEstAdd
      Src: /src/nss/lib/sqlite/sqlite3.c:144700,1
    - Dst: sqlite3LogEstAdd
      Src: /src/nss/lib/sqlite/sqlite3.c:144701,1
    - Dst: wherePathSatisfiesOrderBy
      Src: /src/nss/lib/sqlite/sqlite3.c:144705,1
    - Dst: whereSortingCost
      Src: /src/nss/lib/sqlite/sqlite3.c:144713,1
    - Dst: sqlite3LogEstAdd
      Src: /src/nss/lib/sqlite/sqlite3.c:144721,1
    - Dst: WHERETRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:144723,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:144747,1
    - Dst: sqlite3DebugPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:144761,1
    - Dst: wherePathName
      Src: /src/nss/lib/sqlite/sqlite3.c:144762,1
    - Dst: sqlite3DebugPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:144780,1
    - Dst: wherePathName
      Src: /src/nss/lib/sqlite/sqlite3.c:144781,1
    - Dst: sqlite3DebugPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:144803,1
    - Dst: wherePathName
      Src: /src/nss/lib/sqlite/sqlite3.c:144805,1
    - Dst: sqlite3DebugPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:144807,1
    - Dst: wherePathName
      Src: /src/nss/lib/sqlite/sqlite3.c:144808,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:144813,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:144816,1
    - Dst: sqlite3DebugPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:144821,1
    - Dst: wherePathName
      Src: /src/nss/lib/sqlite/sqlite3.c:144823,1
    - Dst: sqlite3DebugPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:144825,1
    - Dst: wherePathName
      Src: /src/nss/lib/sqlite/sqlite3.c:144826,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:144838,1
    - Dst: sqlite3DebugPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:144859,1
    - Dst: sqlite3DebugPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:144861,1
    - Dst: wherePathName
      Src: /src/nss/lib/sqlite/sqlite3.c:144862,1
    - Dst: sqlite3DebugPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:144865,1
    - Dst: sqlite3DebugPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:144867,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:144881,1
    - Dst: sqlite3DbFreeNN
      Src: /src/nss/lib/sqlite/sqlite3.c:144882,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:144891,1
    - Dst: wherePathSatisfiesOrderBy
      Src: /src/nss/lib/sqlite/sqlite3.c:144905,1
    - Dst: wherePathSatisfiesOrderBy
      Src: /src/nss/lib/sqlite/sqlite3.c:144928,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:144930,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:144931,1
    - Dst: wherePathSatisfiesOrderBy
      Src: /src/nss/lib/sqlite/sqlite3.c:144944,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:144947,1
    - Dst: sqlite3DbFreeNN
      Src: /src/nss/lib/sqlite/sqlite3.c:144959,1
    CyclomaticComplexity: 72
    EdgeCount: 72
    ICount: 198
    argCount: 2
    argNames:
    - pWInfo
    - nRowEst
    argTypes:
    - WhereInfo*
    - LogEst
    assertStmts:
    - condition: ( aSortCost!=0 || &pSpace[nSpace]==(char*)pX )
      pos:
        line_end: 144652
        line_start: 144652
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( aFrom[0].isOrdered==0 )
      pos:
        line_end: 144661
        line_start: 144661
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pWInfo->sorted==0 )
      pos:
        line_end: 144946
        line_start: 144946
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nLoop<=pWInfo->pTabList->nSrc )
      pos:
        line_end: 144615
        line_start: 144615
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( 48==sqlite3LogEst(28) )
      pos:
        line_end: 144659
        line_start: 144659
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( aSortCost==0 || &pSpace[nSpace]==(char*)&aSortCost[nOrderBy] )
      pos:
        line_end: 144651
        line_start: 144651
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( 10==sqlite3LogEst(2) )
      pos:
        line_end: 144693
        line_start: 144693
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pWInfo->nLevel==nLoop )
      pos:
        line_end: 144890
        line_start: 144890
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 144961
      start: 144587
    functionDepth: 24
    functionLinenumber: 144587
    functionLinenumberEnd: 144961
    functionName: wherePathSolver
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - WHERETRACE
    - memcpy
    - sqlite3DbMallocRawNN
    - whereSortingCost
    - sqlite3LogEst
    - assert
    - memset
    - sqlite3DbFreeNN
    - wherePathSatisfiesOrderBy
    - sqlite3ErrorMsg
    - sqlite3DebugPrintf
    - wherePathName
    - testcase
    - MIN
    - sqlite3LogEstAdd
    linkageType: ''
    returnType: int
    signature: int wherePathSolver(WhereInfo *pWInfo, LogEst nRowEst)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:144987,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:144990,1
    - Dst: sqlite3WhereFindTerm
      Src: /src/nss/lib/sqlite/sqlite3.c:144997,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:144999,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:145009,1
    - Dst: IsUniqueIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:145010,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:145012,1
    - Dst: sqlite3WhereFindTerm
      Src: /src/nss/lib/sqlite/sqlite3.c:145016,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:145018,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:145037,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 66
    argCount: 1
    argNames:
    - pBuilder
    argTypes:
    - WhereLoopBuilder*
    assertStmts:
    - condition: ( pWInfo->pTabList->nSrc>=1 )
      pos:
        line_end: 144986
        line_start: 144986
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pLoop->aLTermSpace==pLoop->aLTerm )
      pos:
        line_end: 145008
        line_start: 145008
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pWInfo->sMaskSet.n==1 && iCur==pWInfo->sMaskSet.ix[0] )
      pos:
        line_end: 145036
        line_start: 145036
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 145051
      start: 144974
    functionDepth: 23
    functionLinenumber: 144974
    functionLinenumberEnd: 145051
    functionName: whereShortCut
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - IsUniqueIndex
    - sqlite3WhereFindTerm
    - ArraySize
    - assert
    - testcase
    - IsVirtual
    linkageType: ''
    returnType: int
    signature: int whereShortCut(WhereLoopBuilder *pBuilder)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:145057,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - pWalker
    - pExpr
    argTypes:
    - Walker*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145062
      start: 145056
    functionDepth: 1
    functionLinenumber: 145056
    functionLinenumberEnd: 145062
    functionName: exprNodeIsDeterministic
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ExprHasProperty
    linkageType: ''
    returnType: int
    signature: int exprNodeIsDeterministic(Walker *pWalker, Expr *pExpr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:145071,1
    - Dst: sqlite3WalkExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:145075,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145077
      start: 145069
    functionDepth: 4
    functionLinenumber: 145069
    functionLinenumberEnd: 145077
    functionName: exprIsDeterministic
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3WalkExpr
    linkageType: ''
    returnType: int
    signature: int exprIsDeterministic(Expr *p)
  - BBCount: 66
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:145191,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:145197,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:145202,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:145205,1
    - Dst: OptimizationDisabled
      Src: /src/nss/lib/sqlite/sqlite3.c:145211,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:145218,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:145220,1
    - Dst: ROUND8
      Src: /src/nss/lib/sqlite/sqlite3.c:145238,1
    - Dst: sqlite3DbMallocRawNN
      Src: /src/nss/lib/sqlite/sqlite3.c:145239,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:145241,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:145252,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:145256,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:145258,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:145259,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:145264,1
    - Dst: EIGHT_BYTE_ALIGNMENT
      Src: /src/nss/lib/sqlite/sqlite3.c:145264,1
    - Dst: whereLoopInit
      Src: /src/nss/lib/sqlite/sqlite3.c:145265,1
    - Dst: initMaskSet
      Src: /src/nss/lib/sqlite/sqlite3.c:145273,1
    - Dst: sqlite3WhereClauseInit
      Src: /src/nss/lib/sqlite/sqlite3.c:145274,1
    - Dst: sqlite3WhereSplit
      Src: /src/nss/lib/sqlite/sqlite3.c:145275,1
    - Dst: ExplainQueryPlan
      Src: /src/nss/lib/sqlite/sqlite3.c:145284,1
    - Dst: createMask
      Src: /src/nss/lib/sqlite/sqlite3.c:145302,1
    - Dst: sqlite3WhereTabFuncArgs
      Src: /src/nss/lib/sqlite/sqlite3.c:145303,1
    - Dst: sqlite3WhereGetMask
      Src: /src/nss/lib/sqlite/sqlite3.c:145309,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:145310,1
    - Dst: sqlite3WhereExprAnalyze
      Src: /src/nss/lib/sqlite/sqlite3.c:145318,1
    - Dst: exprIsDeterministic
      Src: /src/nss/lib/sqlite/sqlite3.c:145335,1
    - Dst: sqlite3ExprIfFalse
      Src: /src/nss/lib/sqlite/sqlite3.c:145336,1
    - Dst: isDistinctRedundant
      Src: /src/nss/lib/sqlite/sqlite3.c:145342,1
    - Dst: sqlite3DebugPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:145355,1
    - Dst: sqlite3DebugPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:145357,1
    - Dst: sqlite3DebugPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:145359,1
    - Dst: sqlite3WhereClausePrint
      Src: /src/nss/lib/sqlite/sqlite3.c:145362,1
    - Dst: whereShortCut
      Src: /src/nss/lib/sqlite/sqlite3.c:145366,1
    - Dst: whereLoopAddAll
      Src: /src/nss/lib/sqlite/sqlite3.c:145367,1
    - Dst: whereLoopPrint
      Src: /src/nss/lib/sqlite/sqlite3.c:145378,1
    - Dst: wherePathSolver
      Src: /src/nss/lib/sqlite/sqlite3.c:145383,1
    - Dst: wherePathSolver
      Src: /src/nss/lib/sqlite/sqlite3.c:145386,1
    - Dst: NEVER
      Src: /src/nss/lib/sqlite/sqlite3.c:145393,1
    - Dst: sqlite3DebugPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:145398,1
    - Dst: sqlite3DebugPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:145400,1
    - Dst: sqlite3DebugPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:145404,1
    - Dst: sqlite3DebugPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:145408,1
    - Dst: sqlite3DebugPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:145412,1
    - Dst: sqlite3DebugPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:145416,1
    - Dst: whereLoopPrint
      Src: /src/nss/lib/sqlite/sqlite3.c:145418,1
    - Dst: OptimizationEnabled
      Src: /src/nss/lib/sqlite/sqlite3.c:145455,1
    - Dst: sqlite3WhereExprListUsage
      Src: /src/nss/lib/sqlite/sqlite3.c:145458,1
    - Dst: sqlite3WhereExprListUsage
      Src: /src/nss/lib/sqlite/sqlite3.c:145460,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:145477,1
    - Dst: WHERETRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:145485,1
    - Dst: memmove
      Src: /src/nss/lib/sqlite/sqlite3.c:145494,1
    - Dst: WHERETRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:145500,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:145522,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:145526,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:145526,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:145529,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:145533,1
    - Dst: sqlite3SchemaToIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:145552,1
    - Dst: sqlite3GetVTable
      Src: /src/nss/lib/sqlite/sqlite3.c:145559,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:145561,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:145562,1
    - Dst: sqlite3OpenTable
      Src: /src/nss/lib/sqlite/sqlite3.c:145573,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:145574,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:145575,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:145576,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:145577,1
    - Dst: sqlite3VdbeChangeP4
      Src: /src/nss/lib/sqlite/sqlite3.c:145581,1
    - Dst: SQLITE_INT_TO_PTR
      Src: /src/nss/lib/sqlite/sqlite3.c:145581,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:145582,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:145586,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:145590,1
    - Dst: sqlite3VdbeAddOp4Dup8
      Src: /src/nss/lib/sqlite/sqlite3.c:145593,1
    - Dst: sqlite3TableLock
      Src: /src/nss/lib/sqlite/sqlite3.c:145597,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:145604,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:145605,1
    - Dst: IsPrimaryKeyIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:145605,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:145615,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:145616,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:145629,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:145630,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:145632,1
    - Dst: sqlite3VdbeSetP4KeyInfo
      Src: /src/nss/lib/sqlite/sqlite3.c:145633,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:145639,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:145641,1
    - Dst: MASKBIT
      Src: /src/nss/lib/sqlite/sqlite3.c:145650,1
    - Dst: sqlite3VdbeAddOp4Dup8
      Src: /src/nss/lib/sqlite/sqlite3.c:145653,1
    - Dst: sqlite3CodeVerifySchema
      Src: /src/nss/lib/sqlite/sqlite3.c:145659,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:145661,1
    - Dst: constructAutomaticIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:145675,1
    - Dst: sqlite3WhereExplainOneScan
      Src: /src/nss/lib/sqlite/sqlite3.c:145680,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:145683,1
    - Dst: sqlite3WhereCodeOneLoopStart
      Src: /src/nss/lib/sqlite/sqlite3.c:145684,1
    - Dst: sqlite3WhereAddScanStatus
      Src: /src/nss/lib/sqlite/sqlite3.c:145687,1
    - Dst: VdbeModuleComment
      Src: /src/nss/lib/sqlite/sqlite3.c:145692,1
    - Dst: whereInfoFree
      Src: /src/nss/lib/sqlite/sqlite3.c:145699,1
    CyclomaticComplexity: 131
    EdgeCount: 131
    ICount: 323
    argCount: 7
    argNames:
    - pParse
    - pTabList
    - pWhere
    - pOrderBy
    - pResultSet
    - wctrlFlags
    - iAuxArg
    argTypes:
    - Parse*
    - SrcList*
    - Expr*
    - ExprList*
    - ExprList*
    - u16
    - int
    assertStmts:
    - condition: ( pWInfo->eOnePass==ONEPASS_OFF )
      pos:
        line_end: 145258
        line_start: 145258
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iAuxArg!=0 || (pWInfo->wctrlFlags & WHERE_ONEPASS_DESIRED)==0 )
      pos:
        line_end: 145603
        line_start: 145603
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( wctrlFlags & WHERE_ONEPASS_DESIRED )
      pos:
        line_end: 145614
        line_start: 145614
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTabItem->iCursor==pLevel->iTabCur )
      pos:
        line_end: 145573
        line_start: 145573
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iIndexCur>=0 )
      pos:
        line_end: 145629
        line_start: 145629
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( m>=mx )
      pos:
        line_end: 145309
        line_start: 145309
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( (wctrlFlags & WHERE_OR_SUBCLAUSE)==0\n            || (wctrlFlags
        & WHERE_USE_LIMIT)==0 )"
      pos:
        line_end: 145197
        line_start: 145196
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( (wctrlFlags & WHERE_ONEPASS_MULTIROW)==0 || (\n        (wctrlFlags
        & WHERE_ONEPASS_DESIRED)!=0 \n     && (wctrlFlags & WHERE_OR_SUBCLAUSE)==0
        \n  ))"
      pos:
        line_end: 145193
        line_start: 145190
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIx->pSchema==pTab->pSchema )
      pos:
        line_end: 145628
        line_start: 145628
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( EIGHT_BYTE_ALIGNMENT(sWLB.pNew) )
      pos:
        line_end: 145263
        line_start: 145263
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (wctrlFlags & WHERE_ONEPASS_DESIRED)==0 || pWInfo->nLevel==1 )
      pos:
        line_end: 145521
        line_start: 145521
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( n<=pTab->nCol )
      pos:
        line_end: 145581
        line_start: 145581
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !(wsFlags & WHERE_VIRTUALTABLE) || IsVirtual(pTabList->a[0].pTab)
        )
      pos:
        line_end: 145525
        line_start: 145525
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 145702
      start: 145167
    functionDepth: 26
    functionLinenumber: 145167
    functionLinenumberEnd: 145702
    functionName: sqlite3WhereBegin
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 6
    functionsReached:
    - ALWAYS
    - sqlite3WhereExprListUsage
    - sqlite3VdbeSetP4KeyInfo
    - sqlite3DbMallocRawNN
    - sqlite3VdbeAddOp3
    - sqlite3WhereSplit
    - sqlite3WhereExprAnalyze
    - sqlite3ExprIfFalse
    - sqlite3DebugPrintf
    - constructAutomaticIndex
    - sqlite3WhereClausePrint
    - testcase
    - VdbeComment
    - HasRowid
    - isDistinctRedundant
    - sqlite3VdbeCurrentAddr
    - whereShortCut
    - OptimizationEnabled
    - MASKBIT
    - sqlite3WhereCodeOneLoopStart
    - assert
    - memset
    - sqlite3WhereGetMask
    - sqlite3GetVTable
    - EIGHT_BYTE_ALIGNMENT
    - ExprHasProperty
    - sqlite3SchemaToIndex
    - ExplainQueryPlan
    - sqlite3WhereAddScanStatus
    - whereLoopPrint
    - IsPrimaryKeyIndex
    - whereInfoFree
    - sqlite3DbFree
    - sqlite3VdbeAddOp4Dup8
    - sqlite3VdbeAddOp4
    - IsVirtual
    - SQLITE_INT_TO_PTR
    - sqlite3VdbeChangeP4
    - memmove
    - createMask
    - sqlite3WhereTabFuncArgs
    - initMaskSet
    - sqlite3OpenTable
    - NEVER
    - WHERETRACE
    - sqlite3WhereExplainOneScan
    - sqlite3WhereClauseInit
    - exprIsDeterministic
    - ROUND8
    - sqlite3TableLock
    - wherePathSolver
    - OptimizationDisabled
    - sqlite3VdbeChangeP5
    - VdbeModuleComment
    - sqlite3ErrorMsg
    - whereLoopAddAll
    - sqlite3CodeVerifySchema
    - sqlite3VdbeMakeLabel
    - whereLoopInit
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3WhereBegin(\n  Parse *pParse,          /* The
      parser context */\n  SrcList *pTabList,      /* FROM clause: A list of all tables
      to be scanned */\n  Expr *pWhere,           /* The WHERE clause */\n  ExprList
      *pOrderBy,     /* An ORDER BY (or GROUP BY) clause, or NULL */\n  ExprList *pResultSet,
      \  /* Query result set.  Req'd for DISTINCT */\n  u16 wctrlFlags,         /*
      The WHERE_* flags defined in sqliteInt.h */\n  int iAuxArg             /* If
      WHERE_OR_SUBCLAUSE is set, index cursor number\n                          **
      If WHERE_USE_LIMIT, then the limit amount */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - D
    - ','
    - K
    - ','
    - P
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145714
      start: 145713
    functionDepth: 0
    functionLinenumber: 145713
    functionLinenumberEnd: 145714
    functionName: OpcodeRewriteTrace
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OpcodeRewriteTrace(D,K,P)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbePrintOp
      Src: /src/nss/lib/sqlite/sqlite3.c:145720,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - db
    - pc
    - pOp
    argTypes:
    - sqlite3*
    - int
    - VdbeOp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145721
      start: 145714
    functionDepth: 12
    functionLinenumber: 145714
    functionLinenumberEnd: 145721
    functionName: sqlite3WhereOpcodeRewriteTrace
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbePrintOp
    linkageType: ''
    returnType: void
    signature: "void sqlite3WhereOpcodeRewriteTrace(\n    sqlite3 *db,\n    int pc,\n
      \   VdbeOp *pOp\n  )"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: VdbeModuleComment
      Src: /src/nss/lib/sqlite/sqlite3.c:145739,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:145759,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/nss/lib/sqlite/sqlite3.c:145763,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:145764,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:145765,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:145766,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:145770,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:145771,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:145772,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:145773,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:145774,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:145775,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:145776,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:145778,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:145781,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:145786,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:145788,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:145791,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/nss/lib/sqlite/sqlite3.c:145792,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:145793,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:145795,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:145797,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:145798,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:145799,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:145800,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:145802,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:145805,1
    - Dst: sqlite3VdbeGoto
      Src: /src/nss/lib/sqlite/sqlite3.c:145807,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:145808,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:145809,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:145810,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:145814,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:145816,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:145821,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:145821,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:145822,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:145824,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:145825,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:145830,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:145833,1
    - Dst: sqlite3VdbeGoto
      Src: /src/nss/lib/sqlite/sqlite3.c:145835,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:145837,1
    - Dst: VdbeModuleComment
      Src: /src/nss/lib/sqlite/sqlite3.c:145839,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:145846,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:145848,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:145855,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:145863,1
    - Dst: translateColumnToCopy
      Src: /src/nss/lib/sqlite/sqlite3.c:145864,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:145881,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:145887,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:145909,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:145912,1
    - Dst: printf
      Src: /src/nss/lib/sqlite/sqlite3.c:145916,1
    - Dst: sqlite3VdbeGetOp
      Src: /src/nss/lib/sqlite/sqlite3.c:145919,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:145928,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:145929,1
    - Dst: sqlite3PrimaryKeyIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:145930,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:145932,1
    - Dst: sqlite3ColumnOfIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:145934,1
    - Dst: OpcodeRewriteTrace
      Src: /src/nss/lib/sqlite/sqlite3.c:145938,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:145940,1
    - Dst: OpcodeRewriteTrace
      Src: /src/nss/lib/sqlite/sqlite3.c:145945,1
    - Dst: OpcodeRewriteTrace
      Src: /src/nss/lib/sqlite/sqlite3.c:145948,1
    - Dst: printf
      Src: /src/nss/lib/sqlite/sqlite3.c:145952,1
    - Dst: whereInfoFree
      Src: /src/nss/lib/sqlite/sqlite3.c:145960,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 143
    argCount: 1
    argNames:
    - pWInfo
    argTypes:
    - WhereInfo*
    assertStmts:
    - condition: ( pWInfo->nLevel<=pTabList->nSrc )
      pos:
        line_end: 145847
        line_start: 145847
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIdx->pTable==pTab )
      pos:
        line_end: 145927
        line_start: 145927
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTab!=0 )
      pos:
        line_end: 145854
        line_start: 145854
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pLoop->wsFlags & WHERE_IN_EARLYOUT )
      pos:
        line_end: 145790
        line_start: 145790
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( x>=0 )
      pos:
        line_end: 145931
        line_start: 145931
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pLevel->iTabCur==pTabList->a[pLevel->iFrom].iCursor )
      pos:
        line_end: 145823
        line_start: 145823
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (ws & WHERE_IDX_ONLY)==0 || (ws & WHERE_INDEXED)!=0 )
      pos:
        line_end: 145821
        line_start: 145821
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( (pLoop->wsFlags & WHERE_IDX_ONLY)==0 || x>=0 \n              ||
        pWInfo->eOnePass )"
      pos:
        line_end: 145940
        line_start: 145939
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 145962
      start: 145728
    functionDepth: 12
    functionLinenumber: 145728
    functionLinenumberEnd: 145962
    functionName: sqlite3WhereEnd
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 6
    functionsReached:
    - sqlite3VdbeAddOp2
    - sqlite3VdbeResolveLabel
    - sqlite3VdbeAddOp3
    - printf
    - testcase
    - VdbeComment
    - HasRowid
    - sqlite3VdbeGoto
    - sqlite3VdbeCurrentAddr
    - sqlite3VdbeAddOp4Int
    - sqlite3ColumnOfIndex
    - assert
    - sqlite3VdbeJumpHere
    - VdbeCoverageIf
    - OpcodeRewriteTrace
    - sqlite3VdbeGetOp
    - translateColumnToCopy
    - whereInfoFree
    - sqlite3PrimaryKeyIndex
    - sqlite3VdbeAddOp1
    - VdbeCoverage
    - sqlite3VdbeChangeP5
    - VdbeModuleComment
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WhereEnd(WhereInfo *pWInfo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_aggregate_context
      Src: /src/nss/lib/sqlite/sqlite3.c:146117,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:146119,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:146120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - pCtx
    - nArg
    - apArg
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146121
      start: 146112
    functionDepth: 13
    functionLinenumber: 146112
    functionLinenumberEnd: 146121
    functionName: row_numberStepFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    - sqlite3_aggregate_context
    linkageType: ''
    returnType: void
    signature: "void row_numberStepFunc(\n  sqlite3_context *pCtx, \n  int nArg,\n
      \ sqlite3_value **apArg\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_aggregate_context
      Src: /src/nss/lib/sqlite/sqlite3.c:146123,1
    - Dst: sqlite3_result_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:146124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pCtx
    argTypes:
    - sqlite3_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146125
      start: 146122
    functionDepth: 13
    functionLinenumber: 146122
    functionLinenumberEnd: 146125
    functionName: row_numberValueFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_aggregate_context
    - sqlite3_result_int64
    linkageType: ''
    returnType: void
    signature: void row_numberValueFunc(sqlite3_context *pCtx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_aggregate_context
      Src: /src/nss/lib/sqlite/sqlite3.c:146149,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:146151,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:146152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pCtx
    - nArg
    - apArg
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146153
      start: 146143
    functionDepth: 13
    functionLinenumber: 146143
    functionLinenumberEnd: 146153
    functionName: dense_rankStepFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    - sqlite3_aggregate_context
    linkageType: ''
    returnType: void
    signature: "void dense_rankStepFunc(\n  sqlite3_context *pCtx, \n  int nArg,\n
      \ sqlite3_value **apArg\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_aggregate_context
      Src: /src/nss/lib/sqlite/sqlite3.c:146156,1
    - Dst: sqlite3_result_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:146162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - pCtx
    argTypes:
    - sqlite3_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146164
      start: 146154
    functionDepth: 13
    functionLinenumber: 146154
    functionLinenumberEnd: 146164
    functionName: dense_rankValueFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_aggregate_context
    - sqlite3_result_int64
    linkageType: ''
    returnType: void
    signature: void dense_rankValueFunc(sqlite3_context *pCtx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_aggregate_context
      Src: /src/nss/lib/sqlite/sqlite3.c:146181,1
    - Dst: sqlite3_value_numeric_type
      Src: /src/nss/lib/sqlite/sqlite3.c:146184,1
    - Dst: sqlite3_value_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:146186,1
    - Dst: sqlite3_value_double
      Src: /src/nss/lib/sqlite/sqlite3.c:146189,1
    - Dst: sqlite3_value_dup
      Src: /src/nss/lib/sqlite/sqlite3.c:146201,1
    - Dst: sqlite3_result_error_nomem
      Src: /src/nss/lib/sqlite/sqlite3.c:146203,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:146207,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:146208,1
    - Dst: sqlite3_result_error
      Src: /src/nss/lib/sqlite/sqlite3.c:146212,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 3
    argNames:
    - pCtx
    - nArg
    - apArg
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146215
      start: 146175
    functionDepth: 13
    functionLinenumber: 146175
    functionLinenumberEnd: 146215
    functionName: nth_valueStepFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_value_dup
    - sqlite3_aggregate_context
    - sqlite3_value_numeric_type
    - UNUSED_PARAMETER
    - sqlite3_result_error_nomem
    - sqlite3_value_int64
    - sqlite3_value_double
    - sqlite3_result_error
    linkageType: ''
    returnType: void
    signature: "void nth_valueStepFunc(\n  sqlite3_context *pCtx, \n  int nArg,\n
      \ sqlite3_value **apArg\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_aggregate_context
      Src: /src/nss/lib/sqlite/sqlite3.c:146218,1
    - Dst: sqlite3_result_value
      Src: /src/nss/lib/sqlite/sqlite3.c:146220,1
    - Dst: sqlite3_value_free
      Src: /src/nss/lib/sqlite/sqlite3.c:146221,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - pCtx
    argTypes:
    - sqlite3_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146224
      start: 146216
    functionDepth: 14
    functionLinenumber: 146216
    functionLinenumberEnd: 146224
    functionName: nth_valueFinalizeFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_value
    - sqlite3_value_free
    - sqlite3_aggregate_context
    linkageType: ''
    returnType: void
    signature: void nth_valueFinalizeFunc(sqlite3_context *pCtx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_aggregate_context
      Src: /src/nss/lib/sqlite/sqlite3.c:146234,1
    - Dst: sqlite3_value_dup
      Src: /src/nss/lib/sqlite/sqlite3.c:146236,1
    - Dst: sqlite3_result_error_nomem
      Src: /src/nss/lib/sqlite/sqlite3.c:146238,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:146241,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:146242,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - pCtx
    - nArg
    - apArg
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146243
      start: 146228
    functionDepth: 13
    functionLinenumber: 146228
    functionLinenumberEnd: 146243
    functionName: first_valueStepFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_error_nomem
    - sqlite3_value_dup
    - UNUSED_PARAMETER
    - sqlite3_aggregate_context
    linkageType: ''
    returnType: void
    signature: "void first_valueStepFunc(\n  sqlite3_context *pCtx, \n  int nArg,\n
      \ sqlite3_value **apArg\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_aggregate_context
      Src: /src/nss/lib/sqlite/sqlite3.c:146246,1
    - Dst: sqlite3_result_value
      Src: /src/nss/lib/sqlite/sqlite3.c:146248,1
    - Dst: sqlite3_value_free
      Src: /src/nss/lib/sqlite/sqlite3.c:146249,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - pCtx
    argTypes:
    - sqlite3_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146252
      start: 146244
    functionDepth: 14
    functionLinenumber: 146244
    functionLinenumberEnd: 146252
    functionName: first_valueFinalizeFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_value
    - sqlite3_value_free
    - sqlite3_aggregate_context
    linkageType: ''
    returnType: void
    signature: void first_valueFinalizeFunc(sqlite3_context *pCtx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_aggregate_context
      Src: /src/nss/lib/sqlite/sqlite3.c:146268,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:146275,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:146276,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - pCtx
    - nArg
    - apArg
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146277
      start: 146262
    functionDepth: 13
    functionLinenumber: 146262
    functionLinenumberEnd: 146277
    functionName: rankStepFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    - sqlite3_aggregate_context
    linkageType: ''
    returnType: void
    signature: "void rankStepFunc(\n  sqlite3_context *pCtx, \n  int nArg,\n  sqlite3_value
      **apArg\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_aggregate_context
      Src: /src/nss/lib/sqlite/sqlite3.c:146280,1
    - Dst: sqlite3_result_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:146282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pCtx
    argTypes:
    - sqlite3_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146285
      start: 146278
    functionDepth: 13
    functionLinenumber: 146278
    functionLinenumberEnd: 146285
    functionName: rankValueFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_aggregate_context
    - sqlite3_result_int64
    linkageType: ''
    returnType: void
    signature: void rankValueFunc(sqlite3_context *pCtx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:146299,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:146299,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:146300,1
    - Dst: sqlite3_aggregate_context
      Src: /src/nss/lib/sqlite/sqlite3.c:146301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - pCtx
    - nArg
    - apArg
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( nArg==0 )
      pos:
        line_end: 146298
        line_start: 146298
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 146305
      start: 146293
    functionDepth: 13
    functionLinenumber: 146293
    functionLinenumberEnd: 146305
    functionName: percent_rankStepFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - UNUSED_PARAMETER
    - sqlite3_aggregate_context
    linkageType: ''
    returnType: void
    signature: "void percent_rankStepFunc(\n  sqlite3_context *pCtx, \n  int nArg,\n
      \ sqlite3_value **apArg\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:146312,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:146312,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:146313,1
    - Dst: sqlite3_aggregate_context
      Src: /src/nss/lib/sqlite/sqlite3.c:146314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - pCtx
    - nArg
    - apArg
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( nArg==0 )
      pos:
        line_end: 146311
        line_start: 146311
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 146316
      start: 146306
    functionDepth: 13
    functionLinenumber: 146306
    functionLinenumberEnd: 146316
    functionName: percent_rankInvFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - UNUSED_PARAMETER
    - sqlite3_aggregate_context
    linkageType: ''
    returnType: void
    signature: "void percent_rankInvFunc(\n  sqlite3_context *pCtx, \n  int nArg,\n
      \ sqlite3_value **apArg\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_aggregate_context
      Src: /src/nss/lib/sqlite/sqlite3.c:146319,1
    - Dst: sqlite3_result_double
      Src: /src/nss/lib/sqlite/sqlite3.c:146324,1
    - Dst: sqlite3_result_double
      Src: /src/nss/lib/sqlite/sqlite3.c:146326,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pCtx
    argTypes:
    - sqlite3_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146329
      start: 146317
    functionDepth: 13
    functionLinenumber: 146317
    functionLinenumberEnd: 146329
    functionName: percent_rankValueFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_double
    - sqlite3_aggregate_context
    linkageType: ''
    returnType: void
    signature: void percent_rankValueFunc(sqlite3_context *pCtx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:146344,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:146344,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:146345,1
    - Dst: sqlite3_aggregate_context
      Src: /src/nss/lib/sqlite/sqlite3.c:146346,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - pCtx
    - nArg
    - apArg
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( nArg==0 )
      pos:
        line_end: 146343
        line_start: 146343
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 146350
      start: 146338
    functionDepth: 13
    functionLinenumber: 146338
    functionLinenumberEnd: 146350
    functionName: cume_distStepFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - UNUSED_PARAMETER
    - sqlite3_aggregate_context
    linkageType: ''
    returnType: void
    signature: "void cume_distStepFunc(\n  sqlite3_context *pCtx, \n  int nArg,\n
      \ sqlite3_value **apArg\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:146357,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:146357,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:146358,1
    - Dst: sqlite3_aggregate_context
      Src: /src/nss/lib/sqlite/sqlite3.c:146359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - pCtx
    - nArg
    - apArg
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( nArg==0 )
      pos:
        line_end: 146356
        line_start: 146356
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 146361
      start: 146351
    functionDepth: 13
    functionLinenumber: 146351
    functionLinenumberEnd: 146361
    functionName: cume_distInvFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - UNUSED_PARAMETER
    - sqlite3_aggregate_context
    linkageType: ''
    returnType: void
    signature: "void cume_distInvFunc(\n  sqlite3_context *pCtx, \n  int nArg,\n  sqlite3_value
      **apArg\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_aggregate_context
      Src: /src/nss/lib/sqlite/sqlite3.c:146364,1
    - Dst: sqlite3_result_double
      Src: /src/nss/lib/sqlite/sqlite3.c:146367,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pCtx
    argTypes:
    - sqlite3_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146369
      start: 146362
    functionDepth: 13
    functionLinenumber: 146362
    functionLinenumberEnd: 146369
    functionName: cume_distValueFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_double
    - sqlite3_aggregate_context
    linkageType: ''
    returnType: void
    signature: void cume_distValueFunc(sqlite3_context *pCtx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:146393,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:146393,1
    - Dst: sqlite3_aggregate_context
      Src: /src/nss/lib/sqlite/sqlite3.c:146394,1
    - Dst: sqlite3_value_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:146397,1
    - Dst: sqlite3_result_error
      Src: /src/nss/lib/sqlite/sqlite3.c:146399,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - pCtx
    - nArg
    - apArg
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( nArg==1 )
      pos:
        line_end: 146392
        line_start: 146392
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 146406
      start: 146387
    functionDepth: 13
    functionLinenumber: 146387
    functionLinenumberEnd: 146406
    functionName: ntileStepFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_aggregate_context
    - UNUSED_PARAMETER
    - assert
    - sqlite3_value_int64
    - sqlite3_result_error
    linkageType: ''
    returnType: void
    signature: "void ntileStepFunc(\n  sqlite3_context *pCtx, \n  int nArg,\n  sqlite3_value
      **apArg\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:146413,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:146413,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:146414,1
    - Dst: sqlite3_aggregate_context
      Src: /src/nss/lib/sqlite/sqlite3.c:146415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - pCtx
    - nArg
    - apArg
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( nArg==1 )
      pos:
        line_end: 146412
        line_start: 146412
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 146417
      start: 146407
    functionDepth: 13
    functionLinenumber: 146407
    functionLinenumberEnd: 146417
    functionName: ntileInvFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - UNUSED_PARAMETER
    - sqlite3_aggregate_context
    linkageType: ''
    returnType: void
    signature: "void ntileInvFunc(\n  sqlite3_context *pCtx, \n  int nArg,\n  sqlite3_value
      **apArg\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_aggregate_context
      Src: /src/nss/lib/sqlite/sqlite3.c:146420,1
    - Dst: sqlite3_result_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:146424,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:146430,1
    - Dst: sqlite3_result_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:146433,1
    - Dst: sqlite3_result_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:146435,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - pCtx
    argTypes:
    - sqlite3_context*
    assertStmts:
    - condition: ( (nLarge*(nSize+1) + (p->nParam-nLarge)*nSize)==p->nTotal )
      pos:
        line_end: 146429
        line_start: 146429
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 146439
      start: 146418
    functionDepth: 13
    functionLinenumber: 146418
    functionLinenumberEnd: 146439
    functionName: ntileValueFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_aggregate_context
    - sqlite3_result_int64
    linkageType: ''
    returnType: void
    signature: void ntileValueFunc(sqlite3_context *pCtx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:146459,1
    - Dst: sqlite3_aggregate_context
      Src: /src/nss/lib/sqlite/sqlite3.c:146460,1
    - Dst: sqlite3_value_free
      Src: /src/nss/lib/sqlite/sqlite3.c:146462,1
    - Dst: sqlite3_value_dup
      Src: /src/nss/lib/sqlite/sqlite3.c:146463,1
    - Dst: sqlite3_result_error_nomem
      Src: /src/nss/lib/sqlite/sqlite3.c:146465,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - pCtx
    - nArg
    - apArg
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146470
      start: 146453
    functionDepth: 13
    functionLinenumber: 146453
    functionLinenumberEnd: 146470
    functionName: last_valueStepFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_value_dup
    - sqlite3_value_free
    - sqlite3_aggregate_context
    - UNUSED_PARAMETER
    - sqlite3_result_error_nomem
    linkageType: ''
    returnType: void
    signature: "void last_valueStepFunc(\n  sqlite3_context *pCtx, \n  int nArg,\n
      \ sqlite3_value **apArg\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:146477,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:146478,1
    - Dst: sqlite3_aggregate_context
      Src: /src/nss/lib/sqlite/sqlite3.c:146479,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:146480,1
    - Dst: sqlite3_value_free
      Src: /src/nss/lib/sqlite/sqlite3.c:146483,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - pCtx
    - nArg
    - apArg
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146487
      start: 146471
    functionDepth: 13
    functionLinenumber: 146471
    functionLinenumberEnd: 146487
    functionName: last_valueInvFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ALWAYS
    - sqlite3_value_free
    - UNUSED_PARAMETER
    - sqlite3_aggregate_context
    linkageType: ''
    returnType: void
    signature: "void last_valueInvFunc(\n  sqlite3_context *pCtx, \n  int nArg,\n
      \ sqlite3_value **apArg\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_aggregate_context
      Src: /src/nss/lib/sqlite/sqlite3.c:146490,1
    - Dst: sqlite3_result_value
      Src: /src/nss/lib/sqlite/sqlite3.c:146492,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pCtx
    argTypes:
    - sqlite3_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146494
      start: 146488
    functionDepth: 14
    functionLinenumber: 146488
    functionLinenumberEnd: 146494
    functionName: last_valueValueFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_value
    - sqlite3_aggregate_context
    linkageType: ''
    returnType: void
    signature: void last_valueValueFunc(sqlite3_context *pCtx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_aggregate_context
      Src: /src/nss/lib/sqlite/sqlite3.c:146497,1
    - Dst: sqlite3_result_value
      Src: /src/nss/lib/sqlite/sqlite3.c:146499,1
    - Dst: sqlite3_value_free
      Src: /src/nss/lib/sqlite/sqlite3.c:146500,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - pCtx
    argTypes:
    - sqlite3_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146503
      start: 146495
    functionDepth: 14
    functionLinenumber: 146495
    functionLinenumberEnd: 146503
    functionName: last_valueFinalizeFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_value
    - sqlite3_value_free
    - sqlite3_aggregate_context
    linkageType: ''
    returnType: void
    signature: void last_valueFinalizeFunc(sqlite3_context *pCtx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:146539,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:146540,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:146541,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:146542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - p
    - n
    - a
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: (0)
      pos:
        line_end: 146541
        line_start: 146541
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 146543
      start: 146534
    functionDepth: 1
    functionLinenumber: 146534
    functionLinenumberEnd: 146543
    functionName: noopStepFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: void
    signature: "void noopStepFunc(    /*NO_TEST*/\n  sqlite3_context *p,        /*NO_TEST*/\n
      \ int n,                     /*NO_TEST*/\n  sqlite3_value **a          /*NO_TEST*/\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:146544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146544
      start: 146544
    functionDepth: 1
    functionLinenumber: 146544
    functionLinenumberEnd: 146544
    functionName: noopValueFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: void
    signature: void noopValueFunc(sqlite3_context *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - nArg
    - ','
    - extra
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146553
      start: 146548
    functionDepth: 0
    functionLinenumber: 146548
    functionLinenumberEnd: 146553
    functionName: WINDOWFUNCALL
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WINDOWFUNCALL(name,nArg,extra)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - nArg
    - ','
    - extra
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146561
      start: 146556
    functionDepth: 0
    functionLinenumber: 146556
    functionLinenumberEnd: 146561
    functionName: WINDOWFUNCNOOP
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WINDOWFUNCNOOP(name,nArg,extra)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - nArg
    - ','
    - extra
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146570
      start: 146565
    functionDepth: 0
    functionLinenumber: 146565
    functionLinenumberEnd: 146570
    functionName: WINDOWFUNCX
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WINDOWFUNCX(name,nArg,extra)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WINDOWFUNCX
      Src: /src/nss/lib/sqlite/sqlite3.c:146577,1
    - Dst: WINDOWFUNCX
      Src: /src/nss/lib/sqlite/sqlite3.c:146578,1
    - Dst: WINDOWFUNCX
      Src: /src/nss/lib/sqlite/sqlite3.c:146579,1
    - Dst: WINDOWFUNCALL
      Src: /src/nss/lib/sqlite/sqlite3.c:146580,1
    - Dst: WINDOWFUNCALL
      Src: /src/nss/lib/sqlite/sqlite3.c:146581,1
    - Dst: WINDOWFUNCALL
      Src: /src/nss/lib/sqlite/sqlite3.c:146582,1
    - Dst: WINDOWFUNCALL
      Src: /src/nss/lib/sqlite/sqlite3.c:146583,1
    - Dst: WINDOWFUNCALL
      Src: /src/nss/lib/sqlite/sqlite3.c:146584,1
    - Dst: WINDOWFUNCALL
      Src: /src/nss/lib/sqlite/sqlite3.c:146585,1
    - Dst: WINDOWFUNCNOOP
      Src: /src/nss/lib/sqlite/sqlite3.c:146586,1
    - Dst: WINDOWFUNCNOOP
      Src: /src/nss/lib/sqlite/sqlite3.c:146587,1
    - Dst: WINDOWFUNCNOOP
      Src: /src/nss/lib/sqlite/sqlite3.c:146588,1
    - Dst: WINDOWFUNCNOOP
      Src: /src/nss/lib/sqlite/sqlite3.c:146589,1
    - Dst: WINDOWFUNCNOOP
      Src: /src/nss/lib/sqlite/sqlite3.c:146590,1
    - Dst: WINDOWFUNCNOOP
      Src: /src/nss/lib/sqlite/sqlite3.c:146591,1
    - Dst: sqlite3InsertBuiltinFuncs
      Src: /src/nss/lib/sqlite/sqlite3.c:146593,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:146593,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146594
      start: 146575
    functionDepth: 3
    functionLinenumber: 146575
    functionLinenumberEnd: 146594
    functionName: sqlite3WindowFunctions
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - WINDOWFUNCX
    - WINDOWFUNCNOOP
    - ArraySize
    - sqlite3InsertBuiltinFuncs
    - WINDOWFUNCALL
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WindowFunctions(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:146599,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:146602,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - pParse
    - pList
    - zName
    argTypes:
    - Parse*
    - Window*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146605
      start: 146596
    functionDepth: 10
    functionLinenumber: 146596
    functionLinenumberEnd: 146605
    functionName: windowFind
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ErrorMsg
    - sqlite3StrICmp
    linkageType: ''
    returnType: Window
    signature: Window *windowFind(Parse *pParse, Window *pList, const char *zName)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: windowFind
      Src: /src/nss/lib/sqlite/sqlite3.c:146631,1
    - Dst: sqlite3ExprListDup
      Src: /src/nss/lib/sqlite/sqlite3.c:146633,1
    - Dst: sqlite3ExprListDup
      Src: /src/nss/lib/sqlite/sqlite3.c:146634,1
    - Dst: sqlite3ExprDup
      Src: /src/nss/lib/sqlite/sqlite3.c:146635,1
    - Dst: sqlite3ExprDup
      Src: /src/nss/lib/sqlite/sqlite3.c:146636,1
    - Dst: sqlite3WindowChain
      Src: /src/nss/lib/sqlite/sqlite3.c:146642,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:146648,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:146655,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:146675,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:146677,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:146678,1
    - Dst: sqlite3Expr
      Src: /src/nss/lib/sqlite/sqlite3.c:146685,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 4
    argNames:
    - pParse
    - pList
    - pWin
    - pFunc
    argTypes:
    - Parse*
    - Window*
    - Window*
    - FuncDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146693
      start: 146624
    functionDepth: 11
    functionLinenumber: 146624
    functionLinenumberEnd: 146693
    functionName: sqlite3WindowUpdate
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3WindowChain
    - windowFind
    - sqlite3ExprListDup
    - ArraySize
    - sqlite3ExprDelete
    - sqlite3ErrorMsg
    - sqlite3Expr
    - sqlite3ExprDup
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3WindowUpdate(\n  Parse *pParse, \n  Window *pList,
      \                 /* List of named windows for this SELECT */\n  Window *pWin,
      \                  /* Window frame to update */\n  FuncDef *pFunc                  /*
      Window function definition */\n)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:146738,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:146744,1
    - Dst: sqlite3ExprDup
      Src: /src/nss/lib/sqlite/sqlite3.c:146753,1
    - Dst: sqlite3ExprListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:146754,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:146756,1
    - Dst: ExprHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:146756,1
    - Dst: ExprSetProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:146757,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:146758,1
    - Dst: ExprClearProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:146759,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:146760,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 2
    argNames:
    - pWalker
    - pExpr
    argTypes:
    - Walker*
    - Expr*
    assertStmts:
    - condition: ( pWin->pOwner==pExpr )
      pos:
        line_end: 146743
        line_start: 146743
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( ExprHasProperty(pExpr, EP_Static)==0 )
      pos:
        line_end: 146755
        line_start: 146755
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 146776
      start: 146713
    functionDepth: 9
    functionLinenumber: 146713
    functionLinenumberEnd: 146776
    functionName: selectWindowRewriteExprCb
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ExprSetProperty
    - ExprClearProperty
    - sqlite3ExprDelete
    - assert
    - memset
    - sqlite3ExprDup
    - ExprHasProperty
    - sqlite3ExprListAppend
    linkageType: ''
    returnType: int
    signature: int selectWindowRewriteExprCb(Walker *pWalker, Expr *pExpr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3WalkSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:146784,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - pWalker
    - pSelect
    argTypes:
    - Walker*
    - Select*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146788
      start: 146777
    functionDepth: 7
    functionLinenumber: 146777
    functionLinenumberEnd: 146788
    functionName: selectWindowRewriteSelectCb
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3WalkSelect
    linkageType: ''
    returnType: int
    signature: int selectWindowRewriteSelectCb(Walker *pWalker, Select *pSelect)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:146815,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:146816,1
    - Dst: sqlite3WalkExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:146828,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 6
    argNames:
    - pParse
    - pWin
    - pSrc
    - pEList
    - pTab
    - ppSub
    argTypes:
    - Parse*
    - Window*
    - SrcList*
    - ExprList*
    - Table*
    - ExprList**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146831
      start: 146804
    functionDepth: 5
    functionLinenumber: 146804
    functionLinenumberEnd: 146831
    functionName: selectWindowRewriteEList
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3WalkExprList
    linkageType: ''
    returnType: void
    signature: "void selectWindowRewriteEList(\n  Parse *pParse, \n  Window *pWin,\n
      \ SrcList *pSrc,\n  ExprList *pEList,               /* Rewrite expressions in
      this list */\n  Table *pTab,\n  ExprList **ppSub                /* IN/OUT: Sub-select
      expression-list */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprDup
      Src: /src/nss/lib/sqlite/sqlite3.c:146847,1
    - Dst: sqlite3ExprListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:146852,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 4
    argNames:
    - pParse
    - pList
    - pAppend
    - bIntToNull
    argTypes:
    - Parse*
    - ExprList*
    - ExprList*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146857
      start: 146837
    functionDepth: 9
    functionLinenumber: 146837
    functionLinenumberEnd: 146857
    functionName: exprListAppendList
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ExprDup
    - sqlite3ExprListAppend
    linkageType: ''
    returnType: ExprList
    signature: "ExprList *exprListAppendList(\n  Parse *pParse,          /* Parsing
      context */\n  ExprList *pList,        /* List to which to append. Might be NULL
      */\n  ExprList *pAppend,      /* List of values to append. Might be NULL */\n
      \ int bIntToNull\n)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetVdbe
      Src: /src/nss/lib/sqlite/sqlite3.c:146869,1
    - Dst: sqlite3DbMallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:146883,1
    - Dst: sqlite3ExprListDup
      Src: /src/nss/lib/sqlite/sqlite3.c:146897,1
    - Dst: exprListAppendList
      Src: /src/nss/lib/sqlite/sqlite3.c:146898,1
    - Dst: sqlite3ExprListCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:146900,1
    - Dst: sqlite3ExprListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:146901,1
    - Dst: selectWindowRewriteEList
      Src: /src/nss/lib/sqlite/sqlite3.c:146912,1
    - Dst: selectWindowRewriteEList
      Src: /src/nss/lib/sqlite/sqlite3.c:146913,1
    - Dst: exprListAppendList
      Src: /src/nss/lib/sqlite/sqlite3.c:146919,1
    - Dst: exprListAppendList
      Src: /src/nss/lib/sqlite/sqlite3.c:146920,1
    - Dst: exprListAppendList
      Src: /src/nss/lib/sqlite/sqlite3.c:146928,1
    - Dst: sqlite3ExprDup
      Src: /src/nss/lib/sqlite/sqlite3.c:146930,1
    - Dst: sqlite3ExprListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:146931,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:146935,1
    - Dst: sqlite3ExprListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:146945,1
    - Dst: sqlite3ExprAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:146946,1
    - Dst: sqlite3SelectNew
      Src: /src/nss/lib/sqlite/sqlite3.c:146950,1
    - Dst: sqlite3SrcListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:146953,1
    - Dst: sqlite3SrcListAssignCursors
      Src: /src/nss/lib/sqlite/sqlite3.c:146957,1
    - Dst: sqlite3ResultSetOfSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:146959,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:146963,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:146968,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:146969,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:146970,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:146971,1
    - Dst: sqlite3SelectDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:146973,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:146976,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 66
    argCount: 2
    argNames:
    - pParse
    - p
    argTypes:
    - Parse*
    - Select*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146980
      start: 146866
    functionDepth: 19
    functionLinenumber: 146866
    functionLinenumberEnd: 146980
    functionName: sqlite3WindowRewrite
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3ExprListCompare
    - memcpy
    - sqlite3ExprListAppend
    - sqlite3VdbeAddOp2
    - sqlite3SelectDelete
    - sqlite3ExprListDup
    - sqlite3DbFree
    - sqlite3SelectNew
    - sqlite3ExprAlloc
    - selectWindowRewriteEList
    - sqlite3SrcListAssignCursors
    - sqlite3ResultSetOfSelect
    - exprListAppendList
    - sqlite3ExprDup
    - sqlite3SrcListAppend
    - sqlite3GetVdbe
    - sqlite3ExprListDelete
    - sqlite3DbMallocZero
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WindowRewrite(Parse *pParse, Select *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:146987,1
    - Dst: sqlite3ExprListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:146988,1
    - Dst: sqlite3ExprListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:146989,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:146990,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:146991,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:146992,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:146993,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:146994,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - Window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146996
      start: 146985
    functionDepth: 10
    functionLinenumber: 146985
    functionLinenumberEnd: 146996
    functionName: sqlite3WindowDelete
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3DbFree
    - sqlite3ExprListDelete
    - sqlite3ExprDelete
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WindowDelete(sqlite3 *db, Window *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3WindowDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:147004,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - Window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147007
      start: 147001
    functionDepth: 11
    functionLinenumber: 147001
    functionLinenumberEnd: 147007
    functionName: sqlite3WindowListDelete
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3WindowDelete
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WindowListDelete(sqlite3 *db, Window *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprIsConstant
      Src: /src/nss/lib/sqlite/sqlite3.c:147017,1
    - Dst: sqlite3RenameExprUnmap
      Src: /src/nss/lib/sqlite/sqlite3.c:147018,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:147019,1
    - Dst: sqlite3ExprAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:147020,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - pParse
    - pExpr
    argTypes:
    - Parse*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147023
      start: 147016
    functionDepth: 8
    functionLinenumber: 147016
    functionLinenumberEnd: 147023
    functionName: sqlite3WindowOffsetExpr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ExprIsConstant
    - sqlite3RenameExprUnmap
    - sqlite3ExprAlloc
    - sqlite3ExprDelete
    linkageType: ''
    returnType: Expr
    signature: Expr *sqlite3WindowOffsetExpr(Parse *pParse, Expr *pExpr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:147041,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:147042,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:147044,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:147046,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:147047,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:147071,1
    - Dst: sqlite3DbMallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:147075,1
    - Dst: OptimizationDisabled
      Src: /src/nss/lib/sqlite/sqlite3.c:147080,1
    - Dst: sqlite3WindowOffsetExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:147085,1
    - Dst: sqlite3WindowOffsetExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:147086,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:147090,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:147091,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 35
    argCount: 7
    argNames:
    - pParse
    - eType
    - eStart
    - pStart
    - eEnd
    - pEnd
    - eExclude
    argTypes:
    - Parse*
    - int
    - int
    - Expr*
    - int
    - Expr*
    - u8
    assertStmts:
    - condition: ( eType==0 || eType==TK_RANGE || eType==TK_ROWS || eType==TK_GROUPS
        )
      pos:
        line_end: 147040
        line_start: 147040
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (eEnd==TK_FOLLOWING || eEnd==TK_PRECEDING)==(pEnd!=0) )
      pos:
        line_end: 147046
        line_start: 147046
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (eStart==TK_PRECEDING || eStart==TK_FOLLOWING)==(pStart!=0) )
      pos:
        line_end: 147045
        line_start: 147045
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( eEnd==TK_CURRENT || eEnd==TK_FOLLOWING\n           || eEnd==TK_UNBOUNDED
        || eEnd==TK_PRECEDING )"
      pos:
        line_end: 147044
        line_start: 147043
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( eStart==TK_CURRENT || eStart==TK_PRECEDING\n           || eStart==TK_UNBOUNDED
        || eStart==TK_FOLLOWING )"
      pos:
        line_end: 147042
        line_start: 147041
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 147093
      start: 147028
    functionDepth: 10
    functionLinenumber: 147028
    functionLinenumberEnd: 147093
    functionName: sqlite3WindowAlloc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3WindowOffsetExpr
    - OptimizationDisabled
    - sqlite3ExprDelete
    - assert
    - sqlite3ErrorMsg
    - sqlite3DbMallocZero
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3WindowAlloc(\n  Parse *pParse,    /* Parsing
      context */\n  int eType,        /* Frame type. TK_RANGE, TK_ROWS, TK_GROUPS,
      or 0 */\n  int eStart,       /* Start type: CURRENT, PRECEDING, FOLLOWING, UNBOUNDED
      */\n  Expr *pStart,     /* Start window size if TK_PRECEDING or FOLLOWING */\n
      \ int eEnd,         /* End type: CURRENT, FOLLOWING, TK_UNBOUNDED, PRECEDING
      */\n  Expr *pEnd,       /* End window size if TK_FOLLOWING or PRECEDING */\n
      \ u8 eExclude       /* EXCLUDE clause */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbStrNDup
      Src: /src/nss/lib/sqlite/sqlite3.c:147111,1
    - Dst: sqlite3ExprListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:147114,1
    - Dst: sqlite3ExprListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:147115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - pParse
    - pWin
    - pPartition
    - pOrderBy
    - pBase
    argTypes:
    - Parse*
    - Window*
    - ExprList*
    - ExprList*
    - Token*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147118
      start: 147100
    functionDepth: 10
    functionLinenumber: 147100
    functionLinenumberEnd: 147118
    functionName: sqlite3WindowAssemble
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbStrNDup
    - sqlite3ExprListDelete
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3WindowAssemble(\n  Parse *pParse, \n  Window
      *pWin, \n  ExprList *pPartition, \n  ExprList *pOrderBy, \n  Token *pBase\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: windowFind
      Src: /src/nss/lib/sqlite/sqlite3.c:147130,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:147142,1
    - Dst: sqlite3ExprListDup
      Src: /src/nss/lib/sqlite/sqlite3.c:147146,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:147148,1
    - Dst: sqlite3ExprListDup
      Src: /src/nss/lib/sqlite/sqlite3.c:147149,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:147151,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - pParse
    - pWin
    - pList
    argTypes:
    - Parse*
    - Window*
    - Window*
    assertStmts:
    - condition: ( pWin->pOrderBy==0 )
      pos:
        line_end: 147147
        line_start: 147147
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 147156
      start: 147127
    functionDepth: 11
    functionLinenumber: 147127
    functionLinenumberEnd: 147156
    functionName: sqlite3WindowChain
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - windowFind
    - sqlite3ExprListDup
    - sqlite3DbFree
    - assert
    - sqlite3ErrorMsg
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WindowChain(Parse *pParse, Window *pWin, Window
      *pList)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:147163,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:147167,1
    - Dst: ExprSetProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:147169,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:147172,1
    - Dst: sqlite3WindowDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:147177,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - pParse
    - p
    - pWin
    argTypes:
    - Parse*
    - Expr*
    - Window*
    assertStmts:
    - condition: ( p->op==TK_FUNCTION )
      pos:
        line_end: 147162
        line_start: 147162
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 147179
      start: 147161
    functionDepth: 11
    functionLinenumber: 147161
    functionLinenumberEnd: 147179
    functionName: sqlite3WindowAttach
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ALWAYS
    - ExprSetProperty
    - sqlite3WindowDelete
    - assert
    - sqlite3ErrorMsg
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WindowAttach(Parse *pParse, Expr *p, Window *pWin)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:147190,1
    - Dst: sqlite3ExprCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:147191,1
    - Dst: sqlite3ExprListCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:147192,1
    - Dst: sqlite3ExprListCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:147193,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 3
    argNames:
    - pParse
    - p1
    - p2
    argTypes:
    - Parse*
    - Window*
    - Window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147195
      start: 147185
    functionDepth: 19
    functionLinenumber: 147185
    functionLinenumberEnd: 147195
    functionName: sqlite3WindowCompare
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3ExprListCompare
    - sqlite3ExprCompare
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WindowCompare(Parse *pParse, Window *p1, Window
      *p2)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetVdbe
      Src: /src/nss/lib/sqlite/sqlite3.c:147205,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:147213,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:147217,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:147223,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:147224,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:147225,1
    - Dst: sqlite3KeyInfoFromExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:147240,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:147245,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:147248,1
    - Dst: sqlite3VdbeAppendP4
      Src: /src/nss/lib/sqlite/sqlite3.c:147249,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:147250,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:147258,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:147262,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 2
    argNames:
    - pParse
    - pMWin
    argTypes:
    - Parse*
    - Window*
    assertStmts:
    - condition: ( pKeyInfo->aSortOrder[0]==0 )
      pos:
        line_end: 147244
        line_start: 147244
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 147265
      start: 147203
    functionDepth: 12
    functionLinenumber: 147203
    functionLinenumberEnd: 147265
    functionName: sqlite3WindowCodeInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3KeyInfoFromExprList
    - sqlite3VdbeAppendP4
    - sqlite3VdbeAddOp2
    - sqlite3VdbeAddOp3
    - assert
    - sqlite3GetVdbe
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3WindowCodeInit(Parse *pParse, Window *pMWin)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetVdbe
      Src: /src/nss/lib/sqlite/sqlite3.c:147289,1
    - Dst: sqlite3GetTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:147290,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:147291,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:147291,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:147292,1
    - Dst: sqlite3GetTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:147294,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:147295,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:147296,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:147296,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:147297,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:147298,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:147299,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:147300,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:147301,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:147303,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:147303,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:147304,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:147305,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:147306,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:147307,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:147308,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:147310,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:147310,1
    - Dst: VdbeCoverageNeverNullIf
      Src: /src/nss/lib/sqlite/sqlite3.c:147311,1
    - Dst: VdbeCoverageNeverNullIf
      Src: /src/nss/lib/sqlite/sqlite3.c:147312,1
    - Dst: VdbeCoverageNeverNullIf
      Src: /src/nss/lib/sqlite/sqlite3.c:147313,1
    - Dst: VdbeCoverageNeverNullIf
      Src: /src/nss/lib/sqlite/sqlite3.c:147314,1
    - Dst: VdbeCoverageNeverNullIf
      Src: /src/nss/lib/sqlite/sqlite3.c:147315,1
    - Dst: sqlite3MayAbort
      Src: /src/nss/lib/sqlite/sqlite3.c:147316,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:147317,1
    - Dst: sqlite3VdbeAppendP4
      Src: /src/nss/lib/sqlite/sqlite3.c:147318,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:147319,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 3
    argNames:
    - pParse
    - reg
    - eCond
    argTypes:
    - Parse*
    - int
    - int
    assertStmts:
    - condition: ( eCond>=0 && eCond<ArraySize(azErr) )
      pos:
        line_end: 147290
        line_start: 147290
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( eCond==3 || eCond==4 )
      pos:
        line_end: 147298
        line_start: 147298
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( eCond==0 || eCond==1 || eCond==2 )
      pos:
        line_end: 147304
        line_start: 147304
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 147320
      start: 147280
    functionDepth: 12
    functionLinenumber: 147280
    functionLinenumberEnd: 147320
    functionName: windowCheckValue
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeAppendP4
    - VdbeCoverageNeverNullIf
    - sqlite3VdbeAddOp2
    - sqlite3VdbeCurrentAddr
    - sqlite3GetTempReg
    - ArraySize
    - sqlite3VdbeAddOp3
    - sqlite3ReleaseTempReg
    - sqlite3MayAbort
    - assert
    - sqlite3VdbeAddOp4
    - sqlite3VdbeChangeP5
    - VdbeCoverageIf
    - VdbeCoverage
    - sqlite3GetVdbe
    linkageType: ''
    returnType: void
    signature: void windowCheckValue(Parse *pParse, int reg, int eCond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pWin
    argTypes:
    - Window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147329
      start: 147326
    functionDepth: 0
    functionLinenumber: 147326
    functionLinenumberEnd: 147329
    functionName: windowArgCount
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int windowArgCount(Window *pWin)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetVdbe
      Src: /src/nss/lib/sqlite/sqlite3.c:147357,1
    - Dst: windowArgCount
      Src: /src/nss/lib/sqlite/sqlite3.c:147362,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:147367,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:147369,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:147378,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:147379,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:147381,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:147382,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:147383,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:147384,1
    - Dst: sqlite3VdbeAddOp4Int
      Src: /src/nss/lib/sqlite/sqlite3.c:147386,1
    - Dst: VdbeCoverageNeverTaken
      Src: /src/nss/lib/sqlite/sqlite3.c:147387,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:147388,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:147389,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:147389,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:147391,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:147393,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:147396,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:147397,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:147402,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:147403,1
    - Dst: sqlite3GetTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:147404,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:147405,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:147406,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:147407,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:147408,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:147412,1
    - Dst: sqlite3ExprNNCollSeq
      Src: /src/nss/lib/sqlite/sqlite3.c:147413,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:147414,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:147416,1
    - Dst: sqlite3VdbeAppendP4
      Src: /src/nss/lib/sqlite/sqlite3.c:147418,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:147419,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:147420,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 52
    argCount: 5
    argNames:
    - pParse
    - pMWin
    - csr
    - bInverse
    - reg
    argTypes:
    - Parse*
    - Window*
    - int
    - int
    - int
    assertStmts:
    - condition: "( pFunc->zName==nth_valueName\n           || pFunc->zName==first_valueName\n
        \     )"
      pos:
        line_end: 147394
        line_start: 147392
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( bInverse==0 || bInverse==1 )
      pos:
        line_end: 147395
        line_start: 147395
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nArg==0 || nArg==pWin->pOwner->x.pList->nExpr )
      pos:
        line_end: 147401
        line_start: 147401
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nArg || pWin->pOwner->x.pList==0 )
      pos:
        line_end: 147402
        line_start: 147402
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nArg>0 )
      pos:
        line_end: 147411
        line_start: 147411
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 147423
      start: 147350
    functionDepth: 12
    functionLinenumber: 147350
    functionLinenumberEnd: 147423
    functionName: windowAggStep
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeAppendP4
    - sqlite3VdbeAddOp2
    - sqlite3VdbeCurrentAddr
    - sqlite3VdbeAddOp4Int
    - windowArgCount
    - sqlite3GetTempReg
    - sqlite3VdbeAddOp3
    - sqlite3ReleaseTempReg
    - VdbeCoverageNeverTaken
    - assert
    - sqlite3VdbeJumpHere
    - sqlite3VdbeAddOp4
    - sqlite3VdbeChangeP5
    - sqlite3VdbeAddOp1
    - VdbeCoverage
    - sqlite3ExprNNCollSeq
    - sqlite3GetVdbe
    linkageType: ''
    returnType: void
    signature: "void windowAggStep(\n  Parse *pParse, \n  Window *pMWin,                  /*
      Linked list of window functions */\n  int csr,                        /* Read
      arguments from this cursor */\n  int bInverse,                   /* True to
      invoke xInverse instead of xStep */\n  int reg                         /* Array
      of registers */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetVdbe
      Src: /src/nss/lib/sqlite/sqlite3.c:147465,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:147470,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - p
    - csr
    - reg
    argTypes:
    - WindowCodeArg*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147473
      start: 147457
    functionDepth: 11
    functionLinenumber: 147457
    functionLinenumberEnd: 147473
    functionName: windowReadPeerValues
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3GetVdbe
    - sqlite3VdbeAddOp3
    linkageType: ''
    returnType: void
    signature: "void windowReadPeerValues(\n  WindowCodeArg *p,\n  int csr,\n  int
      reg\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetVdbe
      Src: /src/nss/lib/sqlite/sqlite3.c:147484,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:147492,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:147493,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:147494,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:147495,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:147496,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:147496,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:147498,1
    - Dst: windowArgCount
      Src: /src/nss/lib/sqlite/sqlite3.c:147500,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:147502,1
    - Dst: sqlite3VdbeAppendP4
      Src: /src/nss/lib/sqlite/sqlite3.c:147503,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:147504,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:147505,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:147507,1
    - Dst: sqlite3VdbeAppendP4
      Src: /src/nss/lib/sqlite/sqlite3.c:147508,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - p
    - bFin
    argTypes:
    - WindowCodeArg*
    - int
    assertStmts:
    - condition: ( pMWin->regStartRowid==0 )
      pos:
        line_end: 147497
        line_start: 147497
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 147512
      start: 147481
    functionDepth: 12
    functionLinenumber: 147481
    functionLinenumberEnd: 147512
    functionName: windowAggFinal
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeAppendP4
    - sqlite3VdbeAddOp2
    - sqlite3VdbeCurrentAddr
    - windowArgCount
    - sqlite3VdbeAddOp3
    - assert
    - sqlite3VdbeJumpHere
    - sqlite3VdbeAddOp1
    - VdbeCoverage
    - sqlite3GetVdbe
    linkageType: ''
    returnType: void
    signature: void windowAggFinal(WindowCodeArg *p, int bFin)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:147539,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:147540,1
    - Dst: sqlite3GetTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:147542,1
    - Dst: sqlite3GetTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:147543,1
    - Dst: sqlite3GetTempRange
      Src: /src/nss/lib/sqlite/sqlite3.c:147545,1
    - Dst: sqlite3GetTempRange
      Src: /src/nss/lib/sqlite/sqlite3.c:147546,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:147549,1
    - Dst: windowReadPeerValues
      Src: /src/nss/lib/sqlite/sqlite3.c:147550,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:147553,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:147556,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:147557,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:147558,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:147559,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:147560,1
    - Dst: VdbeCoverageNeverNull
      Src: /src/nss/lib/sqlite/sqlite3.c:147561,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:147564,1
    - Dst: VdbeCoverageNeverNull
      Src: /src/nss/lib/sqlite/sqlite3.c:147565,1
    - Dst: sqlite3KeyInfoFromExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:147572,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:147575,1
    - Dst: VdbeCoverageNeverNull
      Src: /src/nss/lib/sqlite/sqlite3.c:147576,1
    - Dst: windowReadPeerValues
      Src: /src/nss/lib/sqlite/sqlite3.c:147579,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:147580,1
    - Dst: sqlite3VdbeAppendP4
      Src: /src/nss/lib/sqlite/sqlite3.c:147581,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:147582,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:147583,1
    - Dst: VdbeCoverageEqNe
      Src: /src/nss/lib/sqlite/sqlite3.c:147584,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:147586,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:147588,1
    - Dst: windowAggStep
      Src: /src/nss/lib/sqlite/sqlite3.c:147591,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:147593,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:147594,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:147595,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:147596,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:147597,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:147598,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:147599,1
    - Dst: sqlite3ReleaseTempRange
      Src: /src/nss/lib/sqlite/sqlite3.c:147601,1
    - Dst: sqlite3ReleaseTempRange
      Src: /src/nss/lib/sqlite/sqlite3.c:147602,1
    - Dst: windowAggFinal
      Src: /src/nss/lib/sqlite/sqlite3.c:147605,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 59
    argCount: 1
    argNames:
    - p
    argTypes:
    - WindowCodeArg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147606
      start: 147520
    functionDepth: 13
    functionLinenumber: 147520
    functionLinenumberEnd: 147606
    functionName: windowFullScan
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3KeyInfoFromExprList
    - VdbeCoverageNeverNull
    - sqlite3VdbeAppendP4
    - sqlite3VdbeAddOp2
    - sqlite3VdbeCurrentAddr
    - sqlite3GetTempReg
    - windowAggStep
    - sqlite3VdbeResolveLabel
    - sqlite3VdbeAddOp3
    - VdbeCoverageEqNe
    - sqlite3ReleaseTempReg
    - sqlite3ReleaseTempRange
    - sqlite3VdbeJumpHere
    - windowAggFinal
    - sqlite3GetTempRange
    - VdbeCoverage
    - sqlite3VdbeMakeLabel
    - windowReadPeerValues
    linkageType: ''
    returnType: void
    signature: void windowFullScan(WindowCodeArg *p)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: windowFullScan
      Src: /src/nss/lib/sqlite/sqlite3.c:147626,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:147637,1
    - Dst: sqlite3GetTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:147638,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:147639,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:147642,1
    - Dst: windowCheckValue
      Src: /src/nss/lib/sqlite/sqlite3.c:147643,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:147645,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:147647,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:147648,1
    - Dst: VdbeCoverageNeverNull
      Src: /src/nss/lib/sqlite/sqlite3.c:147649,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:147650,1
    - Dst: VdbeCoverageNeverTaken
      Src: /src/nss/lib/sqlite/sqlite3.c:147651,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:147652,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:147653,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:147654,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:147659,1
    - Dst: sqlite3GetTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:147660,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:147664,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:147666,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:147668,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:147671,1
    - Dst: sqlite3GetTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:147674,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:147675,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:147676,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:147677,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:147680,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:147681,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:147682,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:147683,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:147684,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:147688,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 45
    argCount: 1
    argNames:
    - p
    argTypes:
    - WindowCodeArg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147689
      start: 147621
    functionDepth: 14
    functionLinenumber: 147621
    functionLinenumberEnd: 147689
    functionName: windowReturnOneRow
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - VdbeCoverageNeverNull
    - sqlite3VdbeAddOp2
    - sqlite3GetTempReg
    - sqlite3VdbeResolveLabel
    - sqlite3VdbeAddOp3
    - sqlite3ReleaseTempReg
    - VdbeCoverageNeverTaken
    - VdbeCoverage
    - windowFullScan
    - sqlite3VdbeMakeLabel
    - windowCheckValue
    linkageType: ''
    returnType: void
    signature: void windowReturnOneRow(WindowCodeArg *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetVdbe
      Src: /src/nss/lib/sqlite/sqlite3.c:147698,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:147704,1
    - Dst: MAX
      Src: /src/nss/lib/sqlite/sqlite3.c:147705,1
    - Dst: windowArgCount
      Src: /src/nss/lib/sqlite/sqlite3.c:147705,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:147708,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:147709,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:147713,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:147714,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:147715,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - pParse
    - pMWin
    argTypes:
    - Parse*
    - Window*
    assertStmts:
    - condition: ( pWin->eStart!=TK_UNBOUNDED )
      pos:
        line_end: 147712
        line_start: 147712
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 147722
      start: 147697
    functionDepth: 12
    functionLinenumber: 147697
    functionLinenumberEnd: 147722
    functionName: windowInitAccum
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeAddOp2
    - windowArgCount
    - assert
    - MAX
    - sqlite3VdbeAddOp1
    - sqlite3GetVdbe
    linkageType: ''
    returnType: int
    signature: int windowInitAccum(Parse *pParse, Window *pMWin)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 1
    argNames:
    - pMWin
    argTypes:
    - Window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147742
      start: 147728
    functionDepth: 0
    functionLinenumber: 147728
    functionLinenumberEnd: 147742
    functionName: windowCacheFrame
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int windowCacheFrame(Window *pMWin)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetVdbe
      Src: /src/nss/lib/sqlite/sqlite3.c:147761,1
    - Dst: sqlite3KeyInfoFromExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:147764,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:147765,1
    - Dst: sqlite3VdbeAppendP4
      Src: /src/nss/lib/sqlite/sqlite3.c:147766,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:147767,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:147768,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:147768,1
    - Dst: VdbeCoverageEqNe
      Src: /src/nss/lib/sqlite/sqlite3.c:147770,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:147771,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:147773,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - pParse
    - pOrderBy
    - regNew
    - regOld
    - addr
    argTypes:
    - Parse*
    - ExprList*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147775
      start: 147754
    functionDepth: 12
    functionLinenumber: 147754
    functionLinenumberEnd: 147775
    functionName: windowIfNewPeer
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3KeyInfoFromExprList
    - sqlite3VdbeAppendP4
    - sqlite3VdbeAddOp2
    - sqlite3VdbeCurrentAddr
    - sqlite3VdbeAddOp3
    - VdbeCoverageEqNe
    - sqlite3GetVdbe
    linkageType: ''
    returnType: void
    signature: "void windowIfNewPeer(\n  Parse *pParse,\n  ExprList *pOrderBy,\n  int
      regNew,                     /* First in array of new values */\n  int regOld,
      \                    /* First in array of old values */\n  int addr                        /*
      Jump here */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetVdbe
      Src: /src/nss/lib/sqlite/sqlite3.c:147797,1
    - Dst: sqlite3GetTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:147798,1
    - Dst: sqlite3GetTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:147799,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:147805,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:147806,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:147811,1
    - Dst: windowReadPeerValues
      Src: /src/nss/lib/sqlite/sqlite3.c:147816,1
    - Dst: windowReadPeerValues
      Src: /src/nss/lib/sqlite/sqlite3.c:147817,1
    - Dst: sqlite3VdbeAddOp4
      Src: /src/nss/lib/sqlite/sqlite3.c:147822,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:147823,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:147824,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:147825,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:147826,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:147827,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:147827,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:147828,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:147829,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:147830,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:147830,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:147831,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:147831,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:147832,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:147832,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:147833,1
    - Dst: VdbeCoverageIf
      Src: /src/nss/lib/sqlite/sqlite3.c:147833,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:147835,1
    - Dst: sqlite3ReleaseTempReg
      Src: /src/nss/lib/sqlite/sqlite3.c:147836,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 6
    argNames:
    - p
    - op
    - csr1
    - regVal
    - csr2
    - lbl
    argTypes:
    - WindowCodeArg*
    - int
    - int
    - int
    - int
    - int
    assertStmts:
    - condition: ( op==OP_Le )
      pos:
        line_end: 147810
        line_start: 147810
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->pMWin->pOrderBy && p->pMWin->pOrderBy->nExpr==1 )
      pos:
        line_end: 147805
        line_start: 147805
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( op==OP_Ge || op==OP_Gt || op==OP_Le )
      pos:
        line_end: 147804
        line_start: 147804
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( op==OP_Ge || op==OP_Gt || op==OP_Lt || op==OP_Le )
      pos:
        line_end: 147828
        line_start: 147828
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 147837
      start: 147788
    functionDepth: 12
    functionLinenumber: 147788
    functionLinenumberEnd: 147837
    functionName: windowCodeRangeTest
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3GetTempReg
    - sqlite3VdbeAddOp3
    - sqlite3ReleaseTempReg
    - assert
    - sqlite3VdbeAddOp4
    - sqlite3VdbeJumpHere
    - sqlite3VdbeChangeP5
    - testcase
    - VdbeCoverageIf
    - VdbeCoverage
    - sqlite3GetVdbe
    - windowReadPeerValues
    linkageType: ''
    returnType: void
    signature: "void windowCodeRangeTest(\n  WindowCodeArg *p, \n  int op,                          /*
      OP_Ge or OP_Gt */\n  int csr1, \n  int regVal, \n  int csr2,\n  int lbl\n)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:147861,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:147867,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:147873,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:147874,1
    - Dst: windowCodeRangeTest
      Src: /src/nss/lib/sqlite/sqlite3.c:147877,1
    - Dst: windowCodeRangeTest
      Src: /src/nss/lib/sqlite/sqlite3.c:147881,1
    - Dst: windowCodeRangeTest
      Src: /src/nss/lib/sqlite/sqlite3.c:147886,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:147891,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:147892,1
    - Dst: windowAggFinal
      Src: /src/nss/lib/sqlite/sqlite3.c:147897,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:147899,1
    - Dst: windowReturnOneRow
      Src: /src/nss/lib/sqlite/sqlite3.c:147904,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:147911,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:147912,1
    - Dst: windowAggStep
      Src: /src/nss/lib/sqlite/sqlite3.c:147914,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:147919,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:147923,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:147924,1
    - Dst: windowAggStep
      Src: /src/nss/lib/sqlite/sqlite3.c:147926,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:147932,1
    - Dst: sqlite3VdbeChangeP5
      Src: /src/nss/lib/sqlite/sqlite3.c:147933,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:147937,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:147937,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:147938,1
    - Dst: sqlite3VdbeAddOp0
      Src: /src/nss/lib/sqlite/sqlite3.c:147939,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:147941,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:147941,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:147942,1
    - Dst: sqlite3VdbeAddOp0
      Src: /src/nss/lib/sqlite/sqlite3.c:147944,1
    - Dst: sqlite3GetTempRange
      Src: /src/nss/lib/sqlite/sqlite3.c:147950,1
    - Dst: windowReadPeerValues
      Src: /src/nss/lib/sqlite/sqlite3.c:147951,1
    - Dst: windowIfNewPeer
      Src: /src/nss/lib/sqlite/sqlite3.c:147952,1
    - Dst: sqlite3ReleaseTempRange
      Src: /src/nss/lib/sqlite/sqlite3.c:147953,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:147957,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:147959,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:147960,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:147961,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 84
    argCount: 4
    argNames:
    - p
    - op
    - regCountdown
    - jumpOnEof
    argTypes:
    - WindowCodeArg*
    - int
    - int
    - int
    assertStmts:
    - condition: ( pMWin->regEndRowid )
      pos:
        line_end: 147910
        line_start: 147910
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( regCountdown==0 && jumpOnEof==0 )
      pos:
        line_end: 147866
        line_start: 147866
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( op==WINDOW_AGGSTEP )
      pos:
        line_end: 147918
        line_start: 147918
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pMWin->regEndRowid )
      pos:
        line_end: 147922
        line_start: 147922
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( op==WINDOW_AGGINVERSE || op==WINDOW_AGGSTEP )
      pos:
        line_end: 147873
        line_start: 147873
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 147963
      start: 147845
    functionDepth: 15
    functionLinenumber: 147845
    functionLinenumberEnd: 147963
    functionName: windowCodeOp
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VdbeAddOp2
    - windowAggStep
    - sqlite3VdbeResolveLabel
    - sqlite3VdbeAddOp3
    - windowReturnOneRow
    - windowReadPeerValues
    - windowCodeRangeTest
    - sqlite3VdbeCurrentAddr
    - windowIfNewPeer
    - assert
    - sqlite3VdbeJumpHere
    - sqlite3GetTempRange
    - sqlite3VdbeAddOp0
    - sqlite3ReleaseTempRange
    - sqlite3VdbeAddOp1
    - VdbeCoverage
    - windowAggFinal
    - sqlite3VdbeChangeP5
    - sqlite3VdbeMakeLabel
    linkageType: ''
    returnType: int
    signature: "int windowCodeOp(\n WindowCodeArg *p,                /* Context object
      */\n int op,                          /* WINDOW_RETURN_ROW, AGGSTEP or AGGINVERSE
      */\n int regCountdown,                /* Register for OP_IfPos countdown */\n
      int jumpOnEof                    /* Jump here if stepped cursor reaches EOF
      */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:147973,1
    - Dst: sqlite3DbMallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:147974,1
    - Dst: sqlite3DbStrDup
      Src: /src/nss/lib/sqlite/sqlite3.c:147976,1
    - Dst: sqlite3ExprDup
      Src: /src/nss/lib/sqlite/sqlite3.c:147977,1
    - Dst: sqlite3ExprListDup
      Src: /src/nss/lib/sqlite/sqlite3.c:147979,1
    - Dst: sqlite3ExprListDup
      Src: /src/nss/lib/sqlite/sqlite3.c:147980,1
    - Dst: sqlite3ExprDup
      Src: /src/nss/lib/sqlite/sqlite3.c:147985,1
    - Dst: sqlite3ExprDup
      Src: /src/nss/lib/sqlite/sqlite3.c:147986,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - db
    - pOwner
    - p
    argTypes:
    - sqlite3*
    - Expr*
    - Window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147991
      start: 147971
    functionDepth: 10
    functionLinenumber: 147971
    functionLinenumberEnd: 147991
    functionName: sqlite3WindowDup
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - ALWAYS
    - sqlite3DbStrDup
    - sqlite3ExprListDup
    - sqlite3ExprDup
    - sqlite3DbMallocZero
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3WindowDup(sqlite3 *db, Expr *pOwner, Window
      *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3WindowDup
      Src: /src/nss/lib/sqlite/sqlite3.c:148003,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - Window*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148009
      start: 147997
    functionDepth: 11
    functionLinenumber: 147997
    functionLinenumberEnd: 148009
    functionName: sqlite3WindowListDup
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3WindowDup
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3WindowListDup(sqlite3 *db, Window *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ValueFromExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:148023,1
    - Dst: sqlite3_value_int
      Src: /src/nss/lib/sqlite/sqlite3.c:148024,1
    - Dst: sqlite3ValueFree
      Src: /src/nss/lib/sqlite/sqlite3.c:148027,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - pParse
    - pExpr
    argTypes:
    - Parse*
    - Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148029
      start: 148019
    functionDepth: 14
    functionLinenumber: 148019
    functionLinenumberEnd: 148029
    functionName: windowExprGtZero
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ValueFromExpr
    - sqlite3ValueFree
    - sqlite3_value_int
    linkageType: ''
    returnType: int
    signature: int windowExprGtZero(Parse *pParse, Expr *pExpr)
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetVdbe
      Src: /src/nss/lib/sqlite/sqlite3.c:148375,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:148395,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:148398,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:148401,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:148406,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:148409,1
    - Dst: windowExprGtZero
      Src: /src/nss/lib/sqlite/sqlite3.c:148429,1
    - Dst: windowCacheFrame
      Src: /src/nss/lib/sqlite/sqlite3.c:148435,1
    - Dst: windowExprGtZero
      Src: /src/nss/lib/sqlite/sqlite3.c:148438,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:148487,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:148489,1
    - Dst: sqlite3KeyInfoFromExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:148501,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:148504,1
    - Dst: sqlite3VdbeAppendP4
      Src: /src/nss/lib/sqlite/sqlite3.c:148505,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:148506,1
    - Dst: VdbeCoverageEqNe
      Src: /src/nss/lib/sqlite/sqlite3.c:148507,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:148508,1
    - Dst: VdbeComment
      Src: /src/nss/lib/sqlite/sqlite3.c:148509,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:148510,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:148514,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:148515,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:148516,1
    - Dst: VdbeCoverageNeverNull
      Src: /src/nss/lib/sqlite/sqlite3.c:148517,1
    - Dst: windowInitAccum
      Src: /src/nss/lib/sqlite/sqlite3.c:148520,1
    - Dst: sqlite3ExprCode
      Src: /src/nss/lib/sqlite/sqlite3.c:148523,1
    - Dst: windowCheckValue
      Src: /src/nss/lib/sqlite/sqlite3.c:148524,1
    - Dst: sqlite3ExprCode
      Src: /src/nss/lib/sqlite/sqlite3.c:148527,1
    - Dst: windowCheckValue
      Src: /src/nss/lib/sqlite/sqlite3.c:148528,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:148533,1
    - Dst: VdbeCoverageNeverNullIf
      Src: /src/nss/lib/sqlite/sqlite3.c:148534,1
    - Dst: VdbeCoverageNeverNullIf
      Src: /src/nss/lib/sqlite/sqlite3.c:148535,1
    - Dst: windowAggFinal
      Src: /src/nss/lib/sqlite/sqlite3.c:148536,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:148537,1
    - Dst: VdbeCoverageNeverTaken
      Src: /src/nss/lib/sqlite/sqlite3.c:148538,1
    - Dst: windowReturnOneRow
      Src: /src/nss/lib/sqlite/sqlite3.c:148539,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:148540,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:148541,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:148542,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:148545,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:148546,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:148550,1
    - Dst: VdbeCoverageNeverTaken
      Src: /src/nss/lib/sqlite/sqlite3.c:148551,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:148553,1
    - Dst: VdbeCoverageNeverTaken
      Src: /src/nss/lib/sqlite/sqlite3.c:148554,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:148555,1
    - Dst: VdbeCoverageNeverTaken
      Src: /src/nss/lib/sqlite/sqlite3.c:148556,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:148558,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:148559,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:148560,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:148561,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:148564,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:148566,1
    - Dst: windowIfNewPeer
      Src: /src/nss/lib/sqlite/sqlite3.c:148570,1
    - Dst: windowCodeOp
      Src: /src/nss/lib/sqlite/sqlite3.c:148573,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:148576,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:148577,1
    - Dst: windowCodeRangeTest
      Src: /src/nss/lib/sqlite/sqlite3.c:148578,1
    - Dst: windowCodeOp
      Src: /src/nss/lib/sqlite/sqlite3.c:148579,1
    - Dst: windowCodeOp
      Src: /src/nss/lib/sqlite/sqlite3.c:148580,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:148581,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:148582,1
    - Dst: windowCodeOp
      Src: /src/nss/lib/sqlite/sqlite3.c:148584,1
    - Dst: windowCodeOp
      Src: /src/nss/lib/sqlite/sqlite3.c:148585,1
    - Dst: windowCodeOp
      Src: /src/nss/lib/sqlite/sqlite3.c:148591,1
    - Dst: windowCodeOp
      Src: /src/nss/lib/sqlite/sqlite3.c:148592,1
    - Dst: windowCodeOp
      Src: /src/nss/lib/sqlite/sqlite3.c:148593,1
    - Dst: windowCodeOp
      Src: /src/nss/lib/sqlite/sqlite3.c:148594,1
    - Dst: windowCodeOp
      Src: /src/nss/lib/sqlite/sqlite3.c:148597,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:148601,1
    - Dst: sqlite3VdbeMakeLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:148603,1
    - Dst: windowCodeRangeTest
      Src: /src/nss/lib/sqlite/sqlite3.c:148604,1
    - Dst: windowCodeOp
      Src: /src/nss/lib/sqlite/sqlite3.c:148606,1
    - Dst: windowCodeOp
      Src: /src/nss/lib/sqlite/sqlite3.c:148607,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:148609,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:148610,1
    - Dst: sqlite3VdbeAddOp3
      Src: /src/nss/lib/sqlite/sqlite3.c:148614,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:148615,1
    - Dst: windowCodeOp
      Src: /src/nss/lib/sqlite/sqlite3.c:148617,1
    - Dst: windowCodeOp
      Src: /src/nss/lib/sqlite/sqlite3.c:148618,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:148619,1
    - Dst: sqlite3VdbeResolveLabel
      Src: /src/nss/lib/sqlite/sqlite3.c:148625,1
    - Dst: sqlite3WhereEnd
      Src: /src/nss/lib/sqlite/sqlite3.c:148626,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:148630,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:148631,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:148634,1
    - Dst: VdbeCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:148635,1
    - Dst: windowCodeOp
      Src: /src/nss/lib/sqlite/sqlite3.c:148638,1
    - Dst: windowCodeOp
      Src: /src/nss/lib/sqlite/sqlite3.c:148639,1
    - Dst: windowCodeOp
      Src: /src/nss/lib/sqlite/sqlite3.c:148640,1
    - Dst: windowCodeOp
      Src: /src/nss/lib/sqlite/sqlite3.c:148646,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:148648,1
    - Dst: windowCodeOp
      Src: /src/nss/lib/sqlite/sqlite3.c:148649,1
    - Dst: windowCodeOp
      Src: /src/nss/lib/sqlite/sqlite3.c:148650,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:148653,1
    - Dst: windowCodeOp
      Src: /src/nss/lib/sqlite/sqlite3.c:148654,1
    - Dst: windowCodeOp
      Src: /src/nss/lib/sqlite/sqlite3.c:148655,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:148657,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:148658,1
    - Dst: windowCodeOp
      Src: /src/nss/lib/sqlite/sqlite3.c:148659,1
    - Dst: windowCodeOp
      Src: /src/nss/lib/sqlite/sqlite3.c:148660,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:148662,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:148663,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:148664,1
    - Dst: windowCodeOp
      Src: /src/nss/lib/sqlite/sqlite3.c:148665,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:148666,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:148667,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:148668,1
    - Dst: windowCodeOp
      Src: /src/nss/lib/sqlite/sqlite3.c:148672,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:148673,1
    - Dst: windowCodeOp
      Src: /src/nss/lib/sqlite/sqlite3.c:148674,1
    - Dst: windowCodeOp
      Src: /src/nss/lib/sqlite/sqlite3.c:148675,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:148676,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:148677,1
    - Dst: sqlite3VdbeJumpHere
      Src: /src/nss/lib/sqlite/sqlite3.c:148679,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:148681,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:148684,1
    - Dst: sqlite3VdbeAddOp2
      Src: /src/nss/lib/sqlite/sqlite3.c:148685,1
    - Dst: sqlite3VdbeChangeP1
      Src: /src/nss/lib/sqlite/sqlite3.c:148687,1
    - Dst: sqlite3VdbeCurrentAddr
      Src: /src/nss/lib/sqlite/sqlite3.c:148687,1
    - Dst: sqlite3VdbeAddOp1
      Src: /src/nss/lib/sqlite/sqlite3.c:148688,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 225
    argCount: 5
    argNames:
    - pParse
    - p
    - pWInfo
    - regGosub
    - addrGosub
    argTypes:
    - Parse*
    - Select*
    - WhereInfo*
    - int
    - int
    assertStmts:
    - condition: ( pMWin->eEnd==TK_FOLLOWING )
      pos:
        line_end: 148544
        line_start: 148544
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( pMWin->eStart==TK_PRECEDING || pMWin->eStart==TK_CURRENT \n       ||
        pMWin->eStart==TK_FOLLOWING || pMWin->eStart==TK_UNBOUNDED \n  )"
      pos:
        line_end: 148396
        line_start: 148394
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( pMWin->eEnd==TK_FOLLOWING || pMWin->eEnd==TK_CURRENT \n       ||
        pMWin->eEnd==TK_UNBOUNDED || pMWin->eEnd==TK_PRECEDING \n  )"
      pos:
        line_end: 148399
        line_start: 148397
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pMWin->eEnd==TK_FOLLOWING )
      pos:
        line_end: 148656
        line_start: 148656
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( pMWin->eExclude==0 || pMWin->eExclude==TK_CURRENT\n       || pMWin->eExclude==TK_GROUP
        || pMWin->eExclude==TK_TIES\n       || pMWin->eExclude==TK_NO\n  )"
      pos:
        line_end: 148403
        line_start: 148400
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 148690
      start: 148366
    functionDepth: 17
    functionLinenumber: 148366
    functionLinenumberEnd: 148690
    functionName: sqlite3WindowCodeStep
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3VdbeChangeP1
    - sqlite3VdbeAppendP4
    - sqlite3VdbeAddOp2
    - sqlite3ExprCode
    - sqlite3VdbeResolveLabel
    - sqlite3VdbeAddOp3
    - windowReturnOneRow
    - sqlite3GetVdbe
    - VdbeComment
    - VdbeCoverageNeverNull
    - windowCodeRangeTest
    - sqlite3VdbeCurrentAddr
    - windowIfNewPeer
    - assert
    - memset
    - sqlite3VdbeJumpHere
    - windowExprGtZero
    - windowCodeOp
    - sqlite3WhereEnd
    - VdbeCoverageEqNe
    - VdbeCoverageNeverTaken
    - sqlite3VdbeAddOp1
    - windowCheckValue
    - VdbeCoverage
    - sqlite3KeyInfoFromExprList
    - VdbeCoverageNeverNullIf
    - windowAggFinal
    - windowInitAccum
    - sqlite3VdbeMakeLabel
    - windowCacheFrame
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3WindowCodeStep(\n  Parse *pParse,                  /*
      Parse context */\n  Select *p,                      /* Rewritten SELECT statement
      */\n  WhereInfo *pWInfo,              /* Context returned by sqlite3WhereBegin()
      */\n  int regGosub,                   /* Register for OP_Gosub */\n  int addrGosub
      \                  /* OP_Gosub here to return each row */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148736
      start: 148735
    functionDepth: 0
    functionLinenumber: 148735
    functionLinenumberEnd: 148736
    functionName: yytestcase
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: yytestcase(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pParse
    argTypes:
    - Parse*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148782
      start: 148779
    functionDepth: 0
    functionLinenumber: 148779
    functionLinenumberEnd: 148782
    functionName: disableLookaside
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void disableLookaside(Parse *pParse)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:148802,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - pParse
    - p
    argTypes:
    - Parse*
    - Select*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148805
      start: 148790
    functionDepth: 10
    functionLinenumber: 148790
    functionLinenumberEnd: 148805
    functionName: parserDoubleLinkSelect
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ErrorMsg
    linkageType: ''
    returnType: void
    signature: void parserDoubleLinkSelect(Parse *pParse, Select *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbMallocRawNN
      Src: /src/nss/lib/sqlite/sqlite3.c:148813,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:148828,1
    - Dst: sqlite3Isquote
      Src: /src/nss/lib/sqlite/sqlite3.c:148830,1
    - Dst: sqlite3DequoteExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:148831,1
    - Dst: sqlite3RenameTokenMap
      Src: /src/nss/lib/sqlite/sqlite3.c:148837,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 3
    argNames:
    - pParse
    - op
    - t
    argTypes:
    - Parse*
    - int
    - Token
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148841
      start: 148812
    functionDepth: 7
    functionLinenumber: 148812
    functionLinenumberEnd: 148841
    functionName: tokenExpr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - sqlite3DbMallocRawNN
    - sqlite3DequoteExpr
    - sqlite3RenameTokenMap
    - sqlite3Isquote
    linkageType: ''
    returnType: Expr
    signature: Expr *tokenExpr(Parse *pParse, int op, Token t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:148850,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 4
    argNames:
    - pParse
    - pY
    - pA
    - op
    argTypes:
    - Parse*
    - Expr*
    - Expr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148853
      start: 148846
    functionDepth: 8
    functionLinenumber: 148846
    functionLinenumberEnd: 148853
    functionName: binaryToUnaryIfNull
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ExprDelete
    linkageType: ''
    returnType: void
    signature: void binaryToUnaryIfNull(Parse *pParse, Expr *pY, Expr *pA, int op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ExprListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:148867,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:148871,1
    - Dst: sqlite3ExprListSetName
      Src: /src/nss/lib/sqlite/sqlite3.c:148874,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 5
    argNames:
    - pParse
    - pPrior
    - pIdToken
    - hasCollate
    - sortOrder
    argTypes:
    - Parse*
    - ExprList*
    - Token*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148876
      start: 148860
    functionDepth: 10
    functionLinenumber: 148860
    functionLinenumberEnd: 148876
    functionName: parserAddExprIdListTerm
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ExprListSetName
    - sqlite3ExprListAppend
    - sqlite3ErrorMsg
    linkageType: ''
    returnType: ExprList
    signature: "ExprList *parserAddExprIdListTerm(\n    Parse *pParse,\n    ExprList
      *pPrior,\n    Token *pIdToken,\n    int hasCollate,\n    int sortOrder\n  )"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - TraceFILE
    - zTracePrompt
    argTypes:
    - FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149847
      start: 149842
    functionDepth: 0
    functionLinenumber: 149842
    functionLinenumberEnd: 149847
    functionName: sqlite3ParserTrace
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ParserTrace(FILE *TraceFILE, char *zTracePrompt)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:150556,1
    - Dst: realloc
      Src: /src/nss/lib/sqlite/sqlite3.c:150559,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:150566,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - p
    argTypes:
    - yyParser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150573
      start: 150548
    functionDepth: 1
    functionLinenumber: 150548
    functionLinenumberEnd: 150573
    functionName: yyGrowStack
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - malloc
    - fprintf
    - realloc
    linkageType: ''
    returnType: int
    signature: int yyGrowStack(yyParser *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: yyGrowStack
      Src: /src/nss/lib/sqlite/sqlite3.c:150597,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - yypRawParser sqlite3ParserCTX_PDECL
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150611
      start: 150587
    functionDepth: 2
    functionLinenumber: 150587
    functionLinenumberEnd: 150611
    functionName: sqlite3ParserInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - yyGrowStack
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ParserInit(void *yypRawParser sqlite3ParserCTX_PDECL)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - (*mallocProc)(YYMALLOCARGTYPE)
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150634
      start: 150626
    functionDepth: 0
    functionLinenumber: 150626
    functionLinenumberEnd: 150634
    functionName: sqlite3ParserAlloc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3ParserAlloc(void *(*mallocProc)(YYMALLOCARGTYPE)
      sqlite3ParserCTX_PDECL)
  - BBCount: 51
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SelectDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:150669,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:150684,1
    - Dst: sqlite3ExprListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:150701,1
    - Dst: sqlite3SrcListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:150710,1
    - Dst: sqlite3WithDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:150715,1
    - Dst: sqlite3WindowListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:150721,1
    - Dst: sqlite3IdListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:150728,1
    - Dst: sqlite3WindowDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:150736,1
    - Dst: sqlite3DeleteTriggerStep
      Src: /src/nss/lib/sqlite/sqlite3.c:150742,1
    - Dst: sqlite3IdListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:150747,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:150754,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 86
    argCount: 3
    argNames:
    - yypParser
    - yymajor
    - yypminor
    argTypes:
    - yyParser*
    - YYCODETYPE
    - YYMINORTYPE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150760
      start: 150645
    functionDepth: 14
    functionLinenumber: 150645
    functionLinenumberEnd: 150760
    functionName: yy_destructor
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3WithDelete
    - sqlite3IdListDelete
    - sqlite3SelectDelete
    - sqlite3WindowListDelete
    - sqlite3WindowDelete
    - sqlite3ExprDelete
    - sqlite3SrcListDelete
    - sqlite3DeleteTriggerStep
    - sqlite3ExprListDelete
    linkageType: ''
    returnType: void
    signature: "void yy_destructor(\n  yyParser *yypParser,    /* The parser */\n
      \ YYCODETYPE yymajor,     /* Type code for object to destroy */\n  YYMINORTYPE
      *yypminor   /* The object to be destroyed */\n)"
  - BBCount: 51
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SelectDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:150669,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:150684,1
    - Dst: sqlite3ExprListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:150701,1
    - Dst: sqlite3SrcListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:150710,1
    - Dst: sqlite3WithDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:150715,1
    - Dst: sqlite3WindowListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:150721,1
    - Dst: sqlite3IdListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:150728,1
    - Dst: sqlite3WindowDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:150736,1
    - Dst: sqlite3DeleteTriggerStep
      Src: /src/nss/lib/sqlite/sqlite3.c:150742,1
    - Dst: sqlite3IdListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:150747,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:150754,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 85
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150759
      start: 150650
    functionDepth: 14
    functionLinenumber: 150650
    functionLinenumberEnd: 150759
    functionName: sqlite3ParserCTX_FETCH::switch
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3WithDelete
    - sqlite3IdListDelete
    - sqlite3SelectDelete
    - sqlite3WindowListDelete
    - sqlite3WindowDelete
    - sqlite3ExprDelete
    - sqlite3SrcListDelete
    - sqlite3DeleteTriggerStep
    - sqlite3ExprListDelete
    linkageType: ''
    returnType: sqlite3ParserARG_FETCH
    signature: "sqlite3ParserARG_FETCH sqlite3ParserCTX_FETCH\n  switch( yymajor )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:150770,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:150771,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:150775,1
    - Dst: yy_destructor
      Src: /src/nss/lib/sqlite/sqlite3.c:150780,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - pParser
    argTypes:
    - yyParser*
    assertStmts:
    - condition: ( pParser->yytos!=0 )
      pos:
        line_end: 150769
        line_start: 150769
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pParser->yytos > pParser->yystack )
      pos:
        line_end: 150770
        line_start: 150770
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 150781
      start: 150768
    functionDepth: 15
    functionLinenumber: 150768
    functionLinenumberEnd: 150781
    functionName: yy_pop_parser_stack
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fprintf
    - yy_destructor
    linkageType: ''
    returnType: void
    signature: void yy_pop_parser_stack(yyParser *pParser)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: yy_pop_parser_stack
      Src: /src/nss/lib/sqlite/sqlite3.c:150788,1
    - Dst: free
      Src: /src/nss/lib/sqlite/sqlite3.c:150790,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150792
      start: 150786
    functionDepth: 16
    functionLinenumber: 150786
    functionLinenumberEnd: 150792
    functionName: sqlite3ParserFinalize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - yy_pop_parser_stack
    - free
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ParserFinalize(void *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ParserFinalize
      Src: /src/nss/lib/sqlite/sqlite3.c:150810,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150812
      start: 150803
    functionDepth: 17
    functionLinenumber: 150803
    functionLinenumberEnd: 150812
    functionName: sqlite3ParserFree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ParserFinalize
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3ParserFree(\n  void *p,                    /*
      The parser to be deleted */\n  void (*freeProc)(void*)     /* Function used
      to reclaim memory */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150822
      start: 150819
    functionDepth: 0
    functionLinenumber: 150819
    functionLinenumberEnd: 150822
    functionName: sqlite3ParserStackPeak
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ParserStackPeak(void *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:150852,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - out
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150859
      start: 150843
    functionDepth: 0
    functionLinenumber: 150843
    functionLinenumberEnd: 150859
    functionName: sqlite3ParserCoverage
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ParserCoverage(FILE *out)
  - BBCount: 375
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:151839,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:151843,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:151856,1
    - Dst: yyStackOverflow
      Src: /src/nss/lib/sqlite/sqlite3.c:151861,1
    - Dst: yyGrowStack
      Src: /src/nss/lib/sqlite/sqlite3.c:151869,1
    - Dst: yyStackOverflow
      Src: /src/nss/lib/sqlite/sqlite3.c:151870,1
    - Dst: sqlite3FinishCoding
      Src: /src/nss/lib/sqlite/sqlite3.c:151899,1
    - Dst: sqlite3BeginTransaction
      Src: /src/nss/lib/sqlite/sqlite3.c:151902,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:151908,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:151909,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:151910,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:151914,1
    - Dst: sqlite3EndTransaction
      Src: /src/nss/lib/sqlite/sqlite3.c:151915,1
    - Dst: sqlite3Savepoint
      Src: /src/nss/lib/sqlite/sqlite3.c:151919,1
    - Dst: sqlite3Savepoint
      Src: /src/nss/lib/sqlite/sqlite3.c:151924,1
    - Dst: sqlite3Savepoint
      Src: /src/nss/lib/sqlite/sqlite3.c:151929,1
    - Dst: sqlite3StartTable
      Src: /src/nss/lib/sqlite/sqlite3.c:151934,1
    - Dst: disableLookaside
      Src: /src/nss/lib/sqlite/sqlite3.c:151938,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:151941,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:151942,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:151943,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:151944,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:151945,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:151946,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:151947,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:151948,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:151955,1
    - Dst: sqlite3EndTable
      Src: /src/nss/lib/sqlite/sqlite3.c:151960,1
    - Dst: sqlite3EndTable
      Src: /src/nss/lib/sqlite/sqlite3.c:151965,1
    - Dst: sqlite3SelectDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:151966,1
    - Dst: sqlite3_strnicmp
      Src: /src/nss/lib/sqlite/sqlite3.c:151971,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:151975,1
    - Dst: sqlite3AddColumn
      Src: /src/nss/lib/sqlite/sqlite3.c:151980,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:151983,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:151984,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:152002,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:152008,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:152013,1
    - Dst: sqlite3AddDefaultValue
      Src: /src/nss/lib/sqlite/sqlite3.c:152017,1
    - Dst: sqlite3AddDefaultValue
      Src: /src/nss/lib/sqlite/sqlite3.c:152020,1
    - Dst: sqlite3AddDefaultValue
      Src: /src/nss/lib/sqlite/sqlite3.c:152023,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:152027,1
    - Dst: sqlite3AddDefaultValue
      Src: /src/nss/lib/sqlite/sqlite3.c:152028,1
    - Dst: tokenExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:152033,1
    - Dst: sqlite3ExprIdToTrueFalse
      Src: /src/nss/lib/sqlite/sqlite3.c:152035,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:152036,1
    - Dst: sqlite3ExprTruthValue
      Src: /src/nss/lib/sqlite/sqlite3.c:152036,1
    - Dst: sqlite3AddDefaultValue
      Src: /src/nss/lib/sqlite/sqlite3.c:152038,1
    - Dst: sqlite3AddNotNull
      Src: /src/nss/lib/sqlite/sqlite3.c:152042,1
    - Dst: sqlite3AddPrimaryKey
      Src: /src/nss/lib/sqlite/sqlite3.c:152045,1
    - Dst: sqlite3CreateIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:152048,1
    - Dst: sqlite3AddCheckConstraint
      Src: /src/nss/lib/sqlite/sqlite3.c:152052,1
    - Dst: sqlite3CreateForeignKey
      Src: /src/nss/lib/sqlite/sqlite3.c:152055,1
    - Dst: sqlite3DeferForeignKey
      Src: /src/nss/lib/sqlite/sqlite3.c:152058,1
    - Dst: sqlite3AddCollateType
      Src: /src/nss/lib/sqlite/sqlite3.c:152061,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:152100,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:152101,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:152105,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:152106,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:152107,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:152108,1
    - Dst: sqlite3AddPrimaryKey
      Src: /src/nss/lib/sqlite/sqlite3.c:152118,1
    - Dst: sqlite3CreateIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:152121,1
    - Dst: sqlite3AddCheckConstraint
      Src: /src/nss/lib/sqlite/sqlite3.c:152125,1
    - Dst: sqlite3CreateForeignKey
      Src: /src/nss/lib/sqlite/sqlite3.c:152129,1
    - Dst: sqlite3DeferForeignKey
      Src: /src/nss/lib/sqlite/sqlite3.c:152130,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:152134,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:152144,1
    - Dst: sqlite3DropTable
      Src: /src/nss/lib/sqlite/sqlite3.c:152149,1
    - Dst: sqlite3CreateView
      Src: /src/nss/lib/sqlite/sqlite3.c:152154,1
    - Dst: sqlite3DropTable
      Src: /src/nss/lib/sqlite/sqlite3.c:152159,1
    - Dst: sqlite3Select
      Src: /src/nss/lib/sqlite/sqlite3.c:152165,1
    - Dst: sqlite3SelectDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:152166,1
    - Dst: parserDoubleLinkSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:152174,1
    - Dst: sqlite3WithDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:152176,1
    - Dst: parserDoubleLinkSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:152186,1
    - Dst: sqlite3WithDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:152188,1
    - Dst: parserDoubleLinkSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:152197,1
    - Dst: parserDoubleLinkSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:152210,1
    - Dst: sqlite3SrcListAppendFromTerm
      Src: /src/nss/lib/sqlite/sqlite3.c:152211,1
    - Dst: sqlite3SelectNew
      Src: /src/nss/lib/sqlite/sqlite3.c:152212,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:152217,1
    - Dst: sqlite3SelectDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:152221,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:152227,1
    - Dst: sqlite3SelectNew
      Src: /src/nss/lib/sqlite/sqlite3.c:152235,1
    - Dst: sqlite3SelectNew
      Src: /src/nss/lib/sqlite/sqlite3.c:152240,1
    - Dst: sqlite3WindowListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:152244,1
    - Dst: sqlite3SelectNew
      Src: /src/nss/lib/sqlite/sqlite3.c:152250,1
    - Dst: sqlite3SelectNew
      Src: /src/nss/lib/sqlite/sqlite3.c:152256,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:152257,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:152274,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:152275,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:152276,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:152277,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:152278,1
    - Dst: sqlite3ExprListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:152283,1
    - Dst: sqlite3ExprListSetName
      Src: /src/nss/lib/sqlite/sqlite3.c:152284,1
    - Dst: sqlite3ExprListSetSpan
      Src: /src/nss/lib/sqlite/sqlite3.c:152285,1
    - Dst: sqlite3Expr
      Src: /src/nss/lib/sqlite/sqlite3.c:152290,1
    - Dst: sqlite3ExprListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:152291,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:152296,1
    - Dst: sqlite3ExprAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:152297,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:152298,1
    - Dst: sqlite3ExprListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:152299,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:152303,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:152304,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:152305,1
    - Dst: sqlite3DbMallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:152309,1
    - Dst: sqlite3SrcListShiftJoinType
      Src: /src/nss/lib/sqlite/sqlite3.c:152314,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:152319,1
    - Dst: sqlite3SrcListAppendFromTerm
      Src: /src/nss/lib/sqlite/sqlite3.c:152327,1
    - Dst: sqlite3SrcListIndexedBy
      Src: /src/nss/lib/sqlite/sqlite3.c:152328,1
    - Dst: sqlite3SrcListAppendFromTerm
      Src: /src/nss/lib/sqlite/sqlite3.c:152333,1
    - Dst: sqlite3SrcListFuncArgs
      Src: /src/nss/lib/sqlite/sqlite3.c:152334,1
    - Dst: sqlite3SrcListAppendFromTerm
      Src: /src/nss/lib/sqlite/sqlite3.c:152339,1
    - Dst: sqlite3SrcListAppendFromTerm
      Src: /src/nss/lib/sqlite/sqlite3.c:152347,1
    - Dst: sqlite3SrcListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:152363,1
    - Dst: sqlite3SrcListShiftJoinType
      Src: /src/nss/lib/sqlite/sqlite3.c:152366,1
    - Dst: sqlite3SelectNew
      Src: /src/nss/lib/sqlite/sqlite3.c:152367,1
    - Dst: sqlite3SrcListAppendFromTerm
      Src: /src/nss/lib/sqlite/sqlite3.c:152368,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:152373,1
    - Dst: sqlite3SrcListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:152378,1
    - Dst: sqlite3RenameTokenMap
      Src: /src/nss/lib/sqlite/sqlite3.c:152379,1
    - Dst: sqlite3SrcListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:152385,1
    - Dst: sqlite3RenameTokenMap
      Src: /src/nss/lib/sqlite/sqlite3.c:152386,1
    - Dst: sqlite3SrcListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:152391,1
    - Dst: sqlite3SrcListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:152394,1
    - Dst: sqlite3SrcListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:152398,1
    - Dst: sqlite3NameFromToken
      Src: /src/nss/lib/sqlite/sqlite3.c:152399,1
    - Dst: sqlite3SrcListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:152404,1
    - Dst: sqlite3NameFromToken
      Src: /src/nss/lib/sqlite/sqlite3.c:152405,1
    - Dst: sqlite3JoinType
      Src: /src/nss/lib/sqlite/sqlite3.c:152412,1
    - Dst: sqlite3JoinType
      Src: /src/nss/lib/sqlite/sqlite3.c:152415,1
    - Dst: sqlite3JoinType
      Src: /src/nss/lib/sqlite/sqlite3.c:152418,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:152421,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:152422,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:152423,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:152424,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:152428,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:152429,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:152430,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:152431,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:152432,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:152433,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:152446,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:152450,1
    - Dst: sqlite3ExprListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:152455,1
    - Dst: sqlite3ExprListSetSortOrder
      Src: /src/nss/lib/sqlite/sqlite3.c:152456,1
    - Dst: sqlite3ExprListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:152461,1
    - Dst: sqlite3ExprListSetSortOrder
      Src: /src/nss/lib/sqlite/sqlite3.c:152462,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:152475,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:152478,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:152481,1
    - Dst: sqlite3SrcListIndexedBy
      Src: /src/nss/lib/sqlite/sqlite3.c:152485,1
    - Dst: sqlite3DeleteFrom
      Src: /src/nss/lib/sqlite/sqlite3.c:152486,1
    - Dst: sqlite3SrcListIndexedBy
      Src: /src/nss/lib/sqlite/sqlite3.c:152491,1
    - Dst: sqlite3ExprListCheckLength
      Src: /src/nss/lib/sqlite/sqlite3.c:152492,1
    - Dst: sqlite3Update
      Src: /src/nss/lib/sqlite/sqlite3.c:152493,1
    - Dst: sqlite3ExprListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:152498,1
    - Dst: sqlite3ExprListSetName
      Src: /src/nss/lib/sqlite/sqlite3.c:152499,1
    - Dst: sqlite3ExprListAppendVector
      Src: /src/nss/lib/sqlite/sqlite3.c:152504,1
    - Dst: sqlite3ExprListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:152509,1
    - Dst: sqlite3ExprListSetName
      Src: /src/nss/lib/sqlite/sqlite3.c:152510,1
    - Dst: sqlite3ExprListAppendVector
      Src: /src/nss/lib/sqlite/sqlite3.c:152516,1
    - Dst: sqlite3Insert
      Src: /src/nss/lib/sqlite/sqlite3.c:152521,1
    - Dst: sqlite3Insert
      Src: /src/nss/lib/sqlite/sqlite3.c:152526,1
    - Dst: sqlite3UpsertNew
      Src: /src/nss/lib/sqlite/sqlite3.c:152533,1
    - Dst: sqlite3UpsertNew
      Src: /src/nss/lib/sqlite/sqlite3.c:152536,1
    - Dst: sqlite3UpsertNew
      Src: /src/nss/lib/sqlite/sqlite3.c:152539,1
    - Dst: sqlite3IdListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:152545,1
    - Dst: sqlite3IdListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:152548,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:152554,1
    - Dst: tokenExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:152555,1
    - Dst: sqlite3ExprAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:152559,1
    - Dst: sqlite3ExprAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:152560,1
    - Dst: sqlite3RenameTokenMap
      Src: /src/nss/lib/sqlite/sqlite3.c:152562,1
    - Dst: sqlite3RenameTokenMap
      Src: /src/nss/lib/sqlite/sqlite3.c:152563,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:152565,1
    - Dst: sqlite3ExprAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:152571,1
    - Dst: sqlite3ExprAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:152572,1
    - Dst: sqlite3ExprAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:152573,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:152574,1
    - Dst: sqlite3RenameTokenMap
      Src: /src/nss/lib/sqlite/sqlite3.c:152576,1
    - Dst: sqlite3RenameTokenMap
      Src: /src/nss/lib/sqlite/sqlite3.c:152577,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:152579,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:152584,1
    - Dst: tokenExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:152585,1
    - Dst: sqlite3ExprAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:152589,1
    - Dst: sqlite3Isdigit
      Src: /src/nss/lib/sqlite/sqlite3.c:152595,1
    - Dst: tokenExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:152597,1
    - Dst: sqlite3ExprAssignVarNumber
      Src: /src/nss/lib/sqlite/sqlite3.c:152598,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:152604,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:152606,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:152609,1
    - Dst: sqlite3GetInt32
      Src: /src/nss/lib/sqlite/sqlite3.c:152610,1
    - Dst: sqlite3ExprAddCollateToken
      Src: /src/nss/lib/sqlite/sqlite3.c:152617,1
    - Dst: sqlite3ExprAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:152622,1
    - Dst: sqlite3ExprAttachSubtrees
      Src: /src/nss/lib/sqlite/sqlite3.c:152623,1
    - Dst: sqlite3ExprFunction
      Src: /src/nss/lib/sqlite/sqlite3.c:152628,1
    - Dst: sqlite3ExprFunction
      Src: /src/nss/lib/sqlite/sqlite3.c:152634,1
    - Dst: sqlite3ExprFunction
      Src: /src/nss/lib/sqlite/sqlite3.c:152640,1
    - Dst: sqlite3WindowAttach
      Src: /src/nss/lib/sqlite/sqlite3.c:152641,1
    - Dst: sqlite3ExprFunction
      Src: /src/nss/lib/sqlite/sqlite3.c:152647,1
    - Dst: sqlite3WindowAttach
      Src: /src/nss/lib/sqlite/sqlite3.c:152648,1
    - Dst: sqlite3ExprFunction
      Src: /src/nss/lib/sqlite/sqlite3.c:152654,1
    - Dst: sqlite3ExprListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:152660,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:152661,1
    - Dst: sqlite3ExprListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:152665,1
    - Dst: sqlite3ExprAnd
      Src: /src/nss/lib/sqlite/sqlite3.c:152670,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:152673,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:152674,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:152675,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:152676,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:152677,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:152678,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:152679,1
    - Dst: sqlite3ExprListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:152689,1
    - Dst: sqlite3ExprListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:152690,1
    - Dst: sqlite3ExprFunction
      Src: /src/nss/lib/sqlite/sqlite3.c:152691,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:152692,1
    - Dst: sqlite3ExprListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:152701,1
    - Dst: sqlite3ExprListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:152702,1
    - Dst: sqlite3ExprListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:152703,1
    - Dst: sqlite3ExprFunction
      Src: /src/nss/lib/sqlite/sqlite3.c:152704,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:152705,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:152710,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:152713,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:152717,1
    - Dst: binaryToUnaryIfNull
      Src: /src/nss/lib/sqlite/sqlite3.c:152718,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:152723,1
    - Dst: binaryToUnaryIfNull
      Src: /src/nss/lib/sqlite/sqlite3.c:152724,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:152728,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:152729,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:152733,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:152738,1
    - Dst: sqlite3ExprListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:152743,1
    - Dst: sqlite3ExprListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:152744,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:152745,1
    - Dst: sqlite3ExprListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:152749,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:152751,1
    - Dst: sqlite3ExprUnmapAndDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:152765,1
    - Dst: sqlite3ExprAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:152766,1
    - Dst: sqlite3ExprListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:152786,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:152789,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:152793,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:152795,1
    - Dst: sqlite3ExprSetHeightAndFlags
      Src: /src/nss/lib/sqlite/sqlite3.c:152798,1
    - Dst: sqlite3ExprListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:152800,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:152802,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:152808,1
    - Dst: sqlite3PExprAddSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:152809,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:152814,1
    - Dst: sqlite3PExprAddSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:152815,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:152816,1
    - Dst: sqlite3SrcListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:152821,1
    - Dst: sqlite3SelectNew
      Src: /src/nss/lib/sqlite/sqlite3.c:152822,1
    - Dst: sqlite3SrcListFuncArgs
      Src: /src/nss/lib/sqlite/sqlite3.c:152823,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:152824,1
    - Dst: sqlite3PExprAddSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:152825,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:152826,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:152832,1
    - Dst: sqlite3PExprAddSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:152833,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:152838,1
    - Dst: sqlite3ExprListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:152840,1
    - Dst: sqlite3ExprSetHeightAndFlags
      Src: /src/nss/lib/sqlite/sqlite3.c:152841,1
    - Dst: sqlite3ExprListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:152843,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:152844,1
    - Dst: sqlite3ExprListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:152850,1
    - Dst: sqlite3ExprListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:152851,1
    - Dst: sqlite3ExprListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:152856,1
    - Dst: sqlite3ExprListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:152857,1
    - Dst: sqlite3ExprListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:152864,1
    - Dst: sqlite3ExprListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:152867,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:152870,1
    - Dst: sqlite3CreateIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:152875,1
    - Dst: sqlite3SrcListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:152876,1
    - Dst: sqlite3RenameTokenMap
      Src: /src/nss/lib/sqlite/sqlite3.c:152879,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:152884,1
    - Dst: parserAddExprIdListTerm
      Src: /src/nss/lib/sqlite/sqlite3.c:152892,1
    - Dst: parserAddExprIdListTerm
      Src: /src/nss/lib/sqlite/sqlite3.c:152897,1
    - Dst: sqlite3DropIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:152901,1
    - Dst: sqlite3Vacuum
      Src: /src/nss/lib/sqlite/sqlite3.c:152904,1
    - Dst: sqlite3Vacuum
      Src: /src/nss/lib/sqlite/sqlite3.c:152907,1
    - Dst: sqlite3Pragma
      Src: /src/nss/lib/sqlite/sqlite3.c:152910,1
    - Dst: sqlite3Pragma
      Src: /src/nss/lib/sqlite/sqlite3.c:152913,1
    - Dst: sqlite3Pragma
      Src: /src/nss/lib/sqlite/sqlite3.c:152916,1
    - Dst: sqlite3Pragma
      Src: /src/nss/lib/sqlite/sqlite3.c:152919,1
    - Dst: sqlite3Pragma
      Src: /src/nss/lib/sqlite/sqlite3.c:152922,1
    - Dst: sqlite3FinishTrigger
      Src: /src/nss/lib/sqlite/sqlite3.c:152929,1
    - Dst: sqlite3BeginTrigger
      Src: /src/nss/lib/sqlite/sqlite3.c:152934,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:152948,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:152955,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:152956,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:152960,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:152965,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:152972,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:152979,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:152986,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:152993,1
    - Dst: sqlite3TriggerUpdateStep
      Src: /src/nss/lib/sqlite/sqlite3.c:152999,1
    - Dst: sqlite3TriggerInsertStep
      Src: /src/nss/lib/sqlite/sqlite3.c:153004,1
    - Dst: sqlite3TriggerDeleteStep
      Src: /src/nss/lib/sqlite/sqlite3.c:153009,1
    - Dst: sqlite3TriggerSelectStep
      Src: /src/nss/lib/sqlite/sqlite3.c:153013,1
    - Dst: sqlite3PExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:153018,1
    - Dst: sqlite3ExprAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:153026,1
    - Dst: sqlite3DropTrigger
      Src: /src/nss/lib/sqlite/sqlite3.c:153040,1
    - Dst: sqlite3Attach
      Src: /src/nss/lib/sqlite/sqlite3.c:153045,1
    - Dst: sqlite3Detach
      Src: /src/nss/lib/sqlite/sqlite3.c:153050,1
    - Dst: sqlite3Reindex
      Src: /src/nss/lib/sqlite/sqlite3.c:153054,1
    - Dst: sqlite3Reindex
      Src: /src/nss/lib/sqlite/sqlite3.c:153057,1
    - Dst: sqlite3Analyze
      Src: /src/nss/lib/sqlite/sqlite3.c:153060,1
    - Dst: sqlite3Analyze
      Src: /src/nss/lib/sqlite/sqlite3.c:153063,1
    - Dst: sqlite3AlterRenameTable
      Src: /src/nss/lib/sqlite/sqlite3.c:153067,1
    - Dst: sqlite3AlterFinishAddColumn
      Src: /src/nss/lib/sqlite/sqlite3.c:153073,1
    - Dst: disableLookaside
      Src: /src/nss/lib/sqlite/sqlite3.c:153078,1
    - Dst: sqlite3AlterBeginAddColumn
      Src: /src/nss/lib/sqlite/sqlite3.c:153079,1
    - Dst: sqlite3AlterRenameColumn
      Src: /src/nss/lib/sqlite/sqlite3.c:153084,1
    - Dst: sqlite3VtabFinishParse
      Src: /src/nss/lib/sqlite/sqlite3.c:153088,1
    - Dst: sqlite3VtabFinishParse
      Src: /src/nss/lib/sqlite/sqlite3.c:153091,1
    - Dst: sqlite3VtabBeginParse
      Src: /src/nss/lib/sqlite/sqlite3.c:153095,1
    - Dst: sqlite3VtabArgInit
      Src: /src/nss/lib/sqlite/sqlite3.c:153099,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153102,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153103,1
    - Dst: sqlite3VtabArgExtend
      Src: /src/nss/lib/sqlite/sqlite3.c:153104,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153107,1
    - Dst: sqlite3WithPush
      Src: /src/nss/lib/sqlite/sqlite3.c:153108,1
    - Dst: sqlite3WithAdd
      Src: /src/nss/lib/sqlite/sqlite3.c:153112,1
    - Dst: sqlite3WithAdd
      Src: /src/nss/lib/sqlite/sqlite3.c:153117,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:153126,1
    - Dst: sqlite3WindowChain
      Src: /src/nss/lib/sqlite/sqlite3.c:153127,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:153135,1
    - Dst: sqlite3DbStrNDup
      Src: /src/nss/lib/sqlite/sqlite3.c:153136,1
    - Dst: sqlite3WindowAssemble
      Src: /src/nss/lib/sqlite/sqlite3.c:153144,1
    - Dst: sqlite3WindowAssemble
      Src: /src/nss/lib/sqlite/sqlite3.c:153149,1
    - Dst: sqlite3WindowAssemble
      Src: /src/nss/lib/sqlite/sqlite3.c:153155,1
    - Dst: sqlite3WindowAssemble
      Src: /src/nss/lib/sqlite/sqlite3.c:153160,1
    - Dst: sqlite3WindowAssemble
      Src: /src/nss/lib/sqlite/sqlite3.c:153172,1
    - Dst: sqlite3WindowAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:153178,1
    - Dst: sqlite3WindowAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:153183,1
    - Dst: sqlite3WindowAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:153189,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153194,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153199,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153200,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153215,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:153227,1
    - Dst: sqlite3DbMallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:153234,1
    - Dst: sqlite3DbStrNDup
      Src: /src/nss/lib/sqlite/sqlite3.c:153236,1
    - Dst: sqlite3ExprDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:153239,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153248,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153249,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:153250,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153251,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153252,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153253,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153254,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153255,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153256,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153257,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153258,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153259,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153260,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153261,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153262,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153263,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153264,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153265,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153266,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:153267,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:153268,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153269,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153270,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153271,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153272,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153273,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:153274,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153275,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:153276,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:153277,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:153278,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153279,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153280,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153281,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:153282,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153283,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153284,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:153285,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:153286,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153287,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153288,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153289,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153290,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153291,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153292,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153293,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153294,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153295,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153296,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153297,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153298,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153299,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153300,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153301,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153302,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153303,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153304,1
    - Dst: yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153305,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:153309,1
    - Dst: yy_find_reduce_action
      Src: /src/nss/lib/sqlite/sqlite3.c:153312,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:153316,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:153319,1
    - Dst: yyTraceShift
      Src: /src/nss/lib/sqlite/sqlite3.c:153325,1
    CyclomaticComplexity: 319
    EdgeCount: 319
    ICount: 1511
    argCount: 4
    argNames:
    - yypParser
    - yyruleno
    - yyLookahead
    - "yyLookaheadToken  /* Value of the lookahead token */\n  sqlite3ParserCTX_PDECL"
    argTypes:
    - yyParser*
    - unsigned int
    - int
    - sqlite3ParserTOKENTYPE
    assertStmts:
    - condition: ( yyruleno<sizeof(yyRuleInfoLhs)/sizeof(yyRuleInfoLhs[0]) )
      pos:
        line_end: 153308
        line_start: 153308
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( yymsp[-2].minor.yy11!=0 )
      pos:
        line_end: 152964
        line_start: 152964
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( t.n>=2 )
      pos:
        line_end: 152603
        line_start: 152603
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (yyruleno!=355)
      pos:
        line_end: 153284
        line_start: 153284
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (yyruleno!=352)
      pos:
        line_end: 153281
        line_start: 153281
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (yyruleno!=337)
      pos:
        line_end: 153266
        line_start: 153266
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !(yyact>YY_MAX_SHIFT && yyact<=YY_MAX_SHIFTREDUCE) )
      pos:
        line_end: 153315
        line_start: 153315
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (yyruleno!=348)
      pos:
        line_end: 153277
        line_start: 153277
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( yylhsminor.yy379!=0 )
      pos:
        line_end: 153226
        line_start: 153226
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( yymsp[0].minor.yy379!=0 )
      pos:
        line_end: 153125
        line_start: 153125
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( yyLookahead!=YYNOCODE )
      pos:
        line_end: 152007
        line_start: 152007
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (yyruleno!=320)
      pos:
        line_end: 153249
        line_start: 153249
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( yypParser->yyhwm == (int)(yypParser->yytos - yypParser->yystack))
      pos:
        line_end: 151855
        line_start: 151855
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( yyact!=YY_ERROR_ACTION )
      pos:
        line_end: 153318
        line_start: 153318
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( yyLookahead!=YYNOCODE )
      pos:
        line_end: 152001
        line_start: 152001
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (yyruleno!=356)
      pos:
        line_end: 153285
        line_start: 153285
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (yyruleno!=346)
      pos:
        line_end: 153275
        line_start: 153275
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (yyruleno!=347)
      pos:
        line_end: 153276
        line_start: 153276
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( yymsp[-1].minor.yy11!=0 )
      pos:
        line_end: 152971
        line_start: 152971
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (yyruleno!=338)
      pos:
        line_end: 153267
        line_start: 153267
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (yyruleno!=344)
      pos:
        line_end: 153273
        line_start: 153273
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 153327
      start: 151820
    functionDepth: 30
    functionLinenumber: 151820
    functionLinenumberEnd: 153327
    functionName: yy_reduce
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3SrcListIndexedBy
    - sqlite3Insert
    - sqlite3WindowAttach
    - fprintf
    - sqlite3SrcListAppendFromTerm
    - sqlite3TriggerDeleteStep
    - sqlite3ExprUnmapAndDelete
    - sqlite3VtabFinishParse
    - sqlite3CreateView
    - sqlite3EndTransaction
    - sqlite3AlterFinishAddColumn
    - yytestcase
    - sqlite3DbMallocZero
    - sqlite3UpsertNew
    - sqlite3Detach
    - sqlite3Select
    - sqlite3ExprListSetSortOrder
    - sqlite3DropTable
    - binaryToUnaryIfNull
    - sqlite3BeginTrigger
    - sqlite3ExprAttachSubtrees
    - sqlite3DeleteFrom
    - sqlite3SrcListDelete
    - sqlite3PExprAddSelect
    - sqlite3AddNotNull
    - sqlite3WindowListDelete
    - sqlite3AddDefaultValue
    - sqlite3ExprAssignVarNumber
    - sqlite3Analyze
    - sqlite3AlterRenameColumn
    - sqlite3DeferForeignKey
    - sqlite3Reindex
    - sqlite3WithAdd
    - sqlite3ExprAlloc
    - sqlite3AddCheckConstraint
    - sqlite3FinishTrigger
    - sqlite3SelectDelete
    - sqlite3JoinType
    - sqlite3WithPush
    - sqlite3WindowAssemble
    - sqlite3VtabBeginParse
    - tokenExpr
    - sqlite3DbStrNDup
    - sqlite3ExprListAppend
    - parserAddExprIdListTerm
    - sqlite3ExprIdToTrueFalse
    - sqlite3ExprListSetSpan
    - sqlite3TriggerInsertStep
    - sqlite3AddPrimaryKey
    - parserDoubleLinkSelect
    - sqlite3ExprListDelete
    - disableLookaside
    - sqlite3ExprListCheckLength
    - sqlite3AddColumn
    - sqlite3WindowAlloc
    - sqlite3SelectNew
    - sqlite3ExprListSetName
    - sqlite3VtabArgInit
    - sqlite3DropTrigger
    - sqlite3AddCollateType
    - sqlite3Attach
    - sqlite3StartTable
    - ALWAYS
    - sqlite3Pragma
    - yyStackOverflow
    - sqlite3PExpr
    - sqlite3Update
    - testcase
    - yy_find_reduce_action
    - sqlite3ExprAddCollateToken
    - sqlite3EndTable
    - sqlite3VtabArgExtend
    - assert
    - sqlite3Expr
    - sqlite3BeginTransaction
    - sqlite3WithDelete
    - sqlite3AlterRenameTable
    - sqlite3Savepoint
    - sqlite3SrcListFuncArgs
    - sqlite3NameFromToken
    - sqlite3ExprSetHeightAndFlags
    - sqlite3FinishCoding
    - yyTraceShift
    - sqlite3TriggerUpdateStep
    - sqlite3RenameTokenMap
    - sqlite3ErrorMsg
    - sqlite3ExprAnd
    - sqlite3GetInt32
    - sqlite3Vacuum
    - sqlite3CreateForeignKey
    - sqlite3CreateIndex
    - sqlite3Isdigit
    - sqlite3TriggerSelectStep
    - sqlite3ExprFunction
    - yyGrowStack
    - sqlite3IdListAppend
    - sqlite3SrcListShiftJoinType
    - sqlite3SrcListAppend
    - sqlite3_strnicmp
    - sqlite3WindowChain
    - sqlite3ExprListAppendVector
    - sqlite3ExprDelete
    - sqlite3ExprTruthValue
    - sqlite3DropIndex
    - sqlite3AlterBeginAddColumn
    linkageType: ''
    returnType: YYACTIONTYPE
    signature: "YYACTIONTYPE yy_reduce(\n  yyParser *yypParser,         /* The parser
      */\n  unsigned int yyruleno,       /* Number of the rule by which to reduce
      */\n  int yyLookahead,             /* Lookahead token, or YYNOCODE if none */\n
      \ sqlite3ParserTOKENTYPE yyLookaheadToken  /* Value of the lookahead token */\n
      \ sqlite3ParserCTX_PDECL                   /* %extra_context */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:153340,1
    - Dst: yy_pop_parser_stack
      Src: /src/nss/lib/sqlite/sqlite3.c:153343,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - yypParser
    argTypes:
    - yyParser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153350
      start: 153333
    functionDepth: 16
    functionLinenumber: 153333
    functionLinenumberEnd: 153350
    functionName: yy_parse_failed
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fprintf
    - yy_pop_parser_stack
    linkageType: ''
    returnType: void
    signature: "void yy_parse_failed(\n  yyParser *yypParser           /* The parser
      */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:153366,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:153368,1
    - Dst: sqlite3ErrorMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:153370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - yypParser
    - yymajor
    - yyminor
    argTypes:
    - yyParser*
    - int
    - sqlite3ParserTOKENTYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153375
      start: 153356
    functionDepth: 10
    functionLinenumber: 153356
    functionLinenumberEnd: 153375
    functionName: yy_syntax_error
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    - sqlite3ErrorMsg
    linkageType: ''
    returnType: void
    signature: "void yy_syntax_error(\n  yyParser *yypParser,           /* The parser
      */\n  int yymajor,                   /* The major type of the error token */\n
      \ sqlite3ParserTOKENTYPE yyminor         /* The minor type of the error token
      */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:153387,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:153393,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - yypParser
    argTypes:
    - yyParser*
    assertStmts:
    - condition: ( yypParser->yytos==yypParser->yystack )
      pos:
        line_end: 153392
        line_start: 153392
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 153400
      start: 153380
    functionDepth: 0
    functionLinenumber: 153380
    functionLinenumberEnd: 153400
    functionName: yy_accept
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fprintf
    - assert
    linkageType: ''
    returnType: void
    signature: "void yy_accept(\n  yyParser *yypParser           /* The parser */\n)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:153448,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:153451,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:153458,1
    - Dst: yy_find_shift_action
      Src: /src/nss/lib/sqlite/sqlite3.c:153459,1
    - Dst: yy_reduce
      Src: /src/nss/lib/sqlite/sqlite3.c:153461,1
    - Dst: yy_shift
      Src: /src/nss/lib/sqlite/sqlite3.c:153464,1
    - Dst: yy_accept
      Src: /src/nss/lib/sqlite/sqlite3.c:153471,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:153474,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:153481,1
    - Dst: yy_syntax_error
      Src: /src/nss/lib/sqlite/sqlite3.c:153505,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:153511,1
    - Dst: yy_destructor
      Src: /src/nss/lib/sqlite/sqlite3.c:153515,1
    - Dst: yy_find_reduce_action
      Src: /src/nss/lib/sqlite/sqlite3.c:153519,1
    - Dst: yy_pop_parser_stack
      Src: /src/nss/lib/sqlite/sqlite3.c:153523,1
    - Dst: yy_destructor
      Src: /src/nss/lib/sqlite/sqlite3.c:153526,1
    - Dst: yy_parse_failed
      Src: /src/nss/lib/sqlite/sqlite3.c:153527,1
    - Dst: yy_shift
      Src: /src/nss/lib/sqlite/sqlite3.c:153533,1
    - Dst: yy_syntax_error
      Src: /src/nss/lib/sqlite/sqlite3.c:153548,1
    - Dst: yy_destructor
      Src: /src/nss/lib/sqlite/sqlite3.c:153549,1
    - Dst: yy_syntax_error
      Src: /src/nss/lib/sqlite/sqlite3.c:153562,1
    - Dst: yy_destructor
      Src: /src/nss/lib/sqlite/sqlite3.c:153565,1
    - Dst: yy_parse_failed
      Src: /src/nss/lib/sqlite/sqlite3.c:153567,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:153580,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:153582,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:153585,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 84
    argCount: 3
    argNames:
    - yyp
    - yymajor
    - sqlite3ParserARG_PDECL
    argTypes:
    - void*
    - int
    - sqlite3ParserTOKENTYPE
    assertStmts:
    - condition: ( yyact == YY_ERROR_ACTION )
      pos:
        line_end: 153473
        line_start: 153473
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( yyact==yypParser->yytos->stateno )
      pos:
        line_end: 153457
        line_start: 153457
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 153589
      start: 153421
    functionDepth: 31
    functionLinenumber: 153421
    functionLinenumberEnd: 153589
    functionName: sqlite3Parser
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - yy_find_shift_action
    - yy_syntax_error
    - yy_parse_failed
    - yy_destructor
    - fprintf
    - assert
    - yy_reduce
    - yy_pop_parser_stack
    - yy_find_reduce_action
    - yy_accept
    - yy_shift
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Parser(\n  void *yyp,                   /* The
      parser */\n  int yymajor,                 /* The major token code number */\n
      \ sqlite3ParserTOKENTYPE yyminor       /* The value for the token */\n  sqlite3ParserARG_PDECL
      \              /* Optional %extra_argument parameter */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - iToken
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153604
      start: 153595
    functionDepth: 0
    functionLinenumber: 153595
    functionLinenumberEnd: 153604
    functionName: sqlite3ParserFallback
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ParserFallback(int iToken)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153718
      start: 153717
    functionDepth: 0
    functionLinenumber: 153717
    functionLinenumberEnd: 153718
    functionName: charMap
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: charMap(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153721
      start: 153720
    functionDepth: 0
    functionLinenumber: 153720
    functionLinenumberEnd: 153721
    functionName: charMap
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: charMap(X)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: charMap
      Src: /src/nss/lib/sqlite/sqlite3.c:153914,1
    - Dst: charMap
      Src: /src/nss/lib/sqlite/sqlite3.c:153914,1
    - Dst: toupper
      Src: /src/nss/lib/sqlite/sqlite3.c:153923,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153926,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153927,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153928,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153929,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153930,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153931,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153932,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153933,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153934,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153935,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153936,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153937,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153938,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153939,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153940,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153941,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153942,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153943,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153944,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153945,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153946,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153947,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153948,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153949,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153950,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153951,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153952,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153953,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153954,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153955,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153956,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153957,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153958,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153959,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153960,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153961,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153962,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153963,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153964,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153965,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153966,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153967,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153968,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153969,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153970,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153971,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153972,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153973,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153974,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153975,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153976,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153977,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153978,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153979,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153980,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153981,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153982,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153983,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153984,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153985,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153986,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153987,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153988,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153989,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153990,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153991,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153992,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153993,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153994,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153995,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153996,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153997,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153998,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:153999,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154000,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154001,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154002,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154003,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154004,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154005,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154006,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154007,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154008,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154009,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154010,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154011,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154012,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154013,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154014,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154015,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154016,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154017,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154018,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154019,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154020,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154021,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154022,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154023,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154024,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154025,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154026,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154027,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154028,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154029,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154030,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154031,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154032,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154033,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154034,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154035,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154036,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154037,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154038,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154039,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154040,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154041,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154042,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154043,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154044,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154045,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154046,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154047,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154048,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154049,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154050,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154051,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154052,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154053,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154054,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154055,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154056,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154057,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154058,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154059,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154060,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154061,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154062,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154063,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154064,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154065,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 161
    argCount: 3
    argNames:
    - z
    - n
    - pType
    argTypes:
    - char*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154071
      start: 153910
    functionDepth: 1
    functionLinenumber: 153910
    functionLinenumberEnd: 154071
    functionName: keywordCode
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - charMap
    - testcase
    - toupper
    linkageType: ''
    returnType: int
    signature: int keywordCode(const char *z, int n, int *pType)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: keywordCode
      Src: /src/nss/lib/sqlite/sqlite3.c:154074,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - z
    - n
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154076
      start: 154072
    functionDepth: 2
    functionLinenumber: 154072
    functionLinenumberEnd: 154076
    functionName: sqlite3KeywordCode
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - keywordCode
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3KeywordCode(const unsigned char *z, int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - i
    - pzName
    - pnName
    argTypes:
    - int
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154083
      start: 154078
    functionDepth: 0
    functionLinenumber: 154078
    functionLinenumberEnd: 154083
    functionName: sqlite3_keyword_name
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_keyword_name(int i,const char **pzName,int *pnName)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154084
      start: 154084
    functionDepth: 0
    functionLinenumber: 154084
    functionLinenumberEnd: 154084
    functionName: sqlite3_keyword_count
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_keyword_count(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3KeywordCode
      Src: /src/nss/lib/sqlite/sqlite3.c:154086,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - zName
    - nName
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154087
      start: 154085
    functionDepth: 3
    functionLinenumber: 154085
    functionLinenumberEnd: 154087
    functionName: sqlite3_keyword_check
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3KeywordCode
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_keyword_check(const char *zName, int nName)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154111
      start: 154110
    functionDepth: 0
    functionLinenumber: 154110
    functionLinenumberEnd: 154111
    functionName: IdChar
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IdChar(C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154129
      start: 154128
    functionDepth: 0
    functionLinenumber: 154128
    functionLinenumberEnd: 154129
    functionName: IdChar
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IdChar(C)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IdChar
      Src: /src/nss/lib/sqlite/sqlite3.c:154132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154132
      start: 154132
    functionDepth: 1
    functionLinenumber: 154132
    functionLinenumberEnd: 154132
    functionName: sqlite3IsIdChar
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - IdChar
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3IsIdChar(u8 c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3GetToken
      Src: /src/nss/lib/sqlite/sqlite3.c:154143,1
    - Dst: sqlite3ParserFallback
      Src: /src/nss/lib/sqlite/sqlite3.c:154150,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 1
    argNames:
    - pz
    argTypes:
    - unsigned char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154156
      start: 154139
    functionDepth: 1
    functionLinenumber: 154139
    functionLinenumberEnd: 154156
    functionName: getToken
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ParserFallback
    - sqlite3GetToken
    linkageType: ''
    returnType: int
    signature: int getToken(const unsigned char **pz)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getToken
      Src: /src/nss/lib/sqlite/sqlite3.c:154190,1
    - Dst: getToken
      Src: /src/nss/lib/sqlite/sqlite3.c:154192,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - z
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154195
      start: 154188
    functionDepth: 2
    functionLinenumber: 154188
    functionLinenumberEnd: 154195
    functionName: analyzeWindowKeyword
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - getToken
    linkageType: ''
    returnType: int
    signature: int analyzeWindowKeyword(const unsigned char *z)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getToken
      Src: /src/nss/lib/sqlite/sqlite3.c:154198,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - z
    - lastToken
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154202
      start: 154196
    functionDepth: 2
    functionLinenumber: 154196
    functionLinenumberEnd: 154202
    functionName: analyzeOverKeyword
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - getToken
    linkageType: ''
    returnType: int
    signature: int analyzeOverKeyword(const unsigned char *z, int lastToken)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getToken
      Src: /src/nss/lib/sqlite/sqlite3.c:154204,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - z
    - lastToken
    argTypes:
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154208
      start: 154203
    functionDepth: 2
    functionLinenumber: 154203
    functionLinenumberEnd: 154208
    functionName: analyzeFilterKeyword
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - getToken
    linkageType: ''
    returnType: int
    signature: int analyzeFilterKeyword(const unsigned char *z, int lastToken)
  - BBCount: 57
    BranchProfiles: []
    Callsites:
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154221,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154222,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154223,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154224,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154225,1
    - Dst: sqlite3Isspace
      Src: /src/nss/lib/sqlite/sqlite3.c:154226,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154336,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154337,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154338,1
    - Dst: sqlite3Isdigit
      Src: /src/nss/lib/sqlite/sqlite3.c:154361,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154371,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154371,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154371,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154372,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154372,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154372,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154373,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154373,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154373,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154374,1
    - Dst: sqlite3Isxdigit
      Src: /src/nss/lib/sqlite/sqlite3.c:154377,1
    - Dst: sqlite3Isxdigit
      Src: /src/nss/lib/sqlite/sqlite3.c:154378,1
    - Dst: sqlite3Isdigit
      Src: /src/nss/lib/sqlite/sqlite3.c:154382,1
    - Dst: sqlite3Isdigit
      Src: /src/nss/lib/sqlite/sqlite3.c:154386,1
    - Dst: sqlite3Isdigit
      Src: /src/nss/lib/sqlite/sqlite3.c:154390,1
    - Dst: sqlite3Isdigit
      Src: /src/nss/lib/sqlite/sqlite3.c:154391,1
    - Dst: sqlite3Isdigit
      Src: /src/nss/lib/sqlite/sqlite3.c:154395,1
    - Dst: IdChar
      Src: /src/nss/lib/sqlite/sqlite3.c:154399,1
    - Dst: sqlite3Isdigit
      Src: /src/nss/lib/sqlite/sqlite3.c:154412,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154418,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154418,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154419,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154419,1
    - Dst: IdChar
      Src: /src/nss/lib/sqlite/sqlite3.c:154422,1
    - Dst: sqlite3Isspace
      Src: /src/nss/lib/sqlite/sqlite3.c:154428,1
    - Dst: IdChar
      Src: /src/nss/lib/sqlite/sqlite3.c:154447,1
    - Dst: keywordCode
      Src: /src/nss/lib/sqlite/sqlite3.c:154455,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154459,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:154459,1
    - Dst: sqlite3Isxdigit
      Src: /src/nss/lib/sqlite/sqlite3.c:154462,1
    - Dst: IdChar
      Src: /src/nss/lib/sqlite/sqlite3.c:154487,1
    CyclomaticComplexity: 69
    EdgeCount: 69
    ICount: 284
    argCount: 2
    argNames:
    - z
    - tokenType
    argTypes:
    - unsigned char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154490
      start: 154215
    functionDepth: 2
    functionLinenumber: 154215
    functionLinenumberEnd: 154490
    functionName: sqlite3GetToken
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - IdChar
    - sqlite3Isdigit
    - sqlite3Isxdigit
    - keywordCode
    - sqlite3Isspace
    - testcase
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3GetToken(const unsigned char *z, int *tokenType)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3IsIdChar
      Src: /src/nss/lib/sqlite/sqlite3.c:154682,1
    - Dst: sqlite3_str_append
      Src: /src/nss/lib/sqlite/sqlite3.c:154683,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - pStr
    argTypes:
    - sqlite3_str*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154685
      start: 154681
    functionDepth: 2
    functionLinenumber: 154681
    functionLinenumberEnd: 154685
    functionName: addSpaceSeparator
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_str_append
    - sqlite3IsIdChar
    linkageType: ''
    returnType: void
    signature: void addSpaceSeparator(sqlite3_str *pStr)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VdbeDb
      Src: /src/nss/lib/sqlite/sqlite3.c:154707,1
    - Dst: sqlite3_str_new
      Src: /src/nss/lib/sqlite/sqlite3.c:154710,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:154711,1
    - Dst: sqlite3GetToken
      Src: /src/nss/lib/sqlite/sqlite3.c:154716,1
    - Dst: NEVER
      Src: /src/nss/lib/sqlite/sqlite3.c:154717,1
    - Dst: sqlite3_str_append
      Src: /src/nss/lib/sqlite/sqlite3.c:154724,1
    - Dst: sqlite3_str_append
      Src: /src/nss/lib/sqlite/sqlite3.c:154734,1
    - Dst: sqlite3_str_append
      Src: /src/nss/lib/sqlite/sqlite3.c:154743,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:154748,1
    - Dst: sqlite3_str_append
      Src: /src/nss/lib/sqlite/sqlite3.c:154750,1
    - Dst: sqlite3_str_append
      Src: /src/nss/lib/sqlite/sqlite3.c:154754,1
    - Dst: sqlite3Isquote
      Src: /src/nss/lib/sqlite/sqlite3.c:154760,1
    - Dst: sqlite3DbStrNDup
      Src: /src/nss/lib/sqlite/sqlite3.c:154761,1
    - Dst: sqlite3Dequote
      Src: /src/nss/lib/sqlite/sqlite3.c:154765,1
    - Dst: sqlite3VdbeUsesDoubleQuotedString
      Src: /src/nss/lib/sqlite/sqlite3.c:154766,1
    - Dst: sqlite3_str_append
      Src: /src/nss/lib/sqlite/sqlite3.c:154767,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:154768,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:154771,1
    - Dst: sqlite3GetToken
      Src: /src/nss/lib/sqlite/sqlite3.c:154772,1
    - Dst: addSpaceSeparator
      Src: /src/nss/lib/sqlite/sqlite3.c:154773,1
    - Dst: sqlite3_str_append
      Src: /src/nss/lib/sqlite/sqlite3.c:154774,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:154776,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:154778,1
    - Dst: addSpaceSeparator
      Src: /src/nss/lib/sqlite/sqlite3.c:154780,1
    - Dst: sqlite3_str_append
      Src: /src/nss/lib/sqlite/sqlite3.c:154781,1
    - Dst: sqlite3Tolower
      Src: /src/nss/lib/sqlite/sqlite3.c:154784,1
    - Dst: sqlite3IsIdChar
      Src: /src/nss/lib/sqlite/sqlite3.c:154794,1
    - Dst: addSpaceSeparator
      Src: /src/nss/lib/sqlite/sqlite3.c:154794,1
    - Dst: sqlite3_str_append
      Src: /src/nss/lib/sqlite/sqlite3.c:154796,1
    - Dst: sqlite3Toupper
      Src: /src/nss/lib/sqlite/sqlite3.c:154798,1
    - Dst: sqlite3_str_append
      Src: /src/nss/lib/sqlite/sqlite3.c:154805,1
    - Dst: sqlite3_str_finish
      Src: /src/nss/lib/sqlite/sqlite3.c:154806,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 100
    argCount: 2
    argNames:
    - pVdbe
    - zSql
    argTypes:
    - Vdbe*
    - char*
    assertStmts:
    - condition: ( pStr!=0 )
      pos:
        line_end: 154710
        line_start: 154710
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pStr->nChar>=iStartIN )
      pos:
        line_end: 154747
        line_start: 154747
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 154807
      start: 154692
    functionDepth: 9
    functionLinenumber: 154692
    functionLinenumberEnd: 154807
    functionName: sqlite3Normalize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - NEVER
    - sqlite3_str_append
    - addSpaceSeparator
    - sqlite3DbFree
    - sqlite3Toupper
    - sqlite3_str_finish
    - sqlite3Dequote
    - sqlite3VdbeUsesDoubleQuotedString
    - sqlite3VdbeDb
    - assert
    - sqlite3_str_new
    - sqlite3IsIdChar
    - sqlite3Strlen30
    - sqlite3Isquote
    - sqlite3_str_appendf
    - sqlite3GetToken
    - sqlite3DbStrNDup
    - sqlite3Tolower
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3Normalize(\n  Vdbe *pVdbe,       /* VM being
      reprepared */\n  const char *zSql   /* The original SQL string */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154839
      start: 154838
    functionDepth: 0
    functionLinenumber: 154838
    functionLinenumberEnd: 154839
    functionName: IdChar
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IdChar(C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154843
      start: 154842
    functionDepth: 0
    functionLinenumber: 154842
    functionLinenumberEnd: 154843
    functionName: IdChar
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IdChar(C)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: IdChar
      Src: /src/nss/lib/sqlite/sqlite3.c:155012,1
    - Dst: IdChar
      Src: /src/nss/lib/sqlite/sqlite3.c:155015,1
    - Dst: sqlite3StrNICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:155021,1
    - Dst: sqlite3StrNICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:155029,1
    - Dst: sqlite3StrNICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:155031,1
    - Dst: sqlite3StrNICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:155033,1
    - Dst: sqlite3StrNICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:155041,1
    - Dst: sqlite3StrNICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:155045,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 127
    argCount: 1
    argNames:
    - zSql
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155072
      start: 154915
    functionDepth: 1
    functionLinenumber: 154915
    functionLinenumberEnd: 155072
    functionName: sqlite3_complete
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - IdChar
    - sqlite3StrNICmp
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_complete(const char *zSql)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_initialize
      Src: /src/nss/lib/sqlite/sqlite3.c:155086,1
    - Dst: sqlite3ValueNew
      Src: /src/nss/lib/sqlite/sqlite3.c:155089,1
    - Dst: sqlite3ValueSetStr
      Src: /src/nss/lib/sqlite/sqlite3.c:155090,1
    - Dst: sqlite3ValueText
      Src: /src/nss/lib/sqlite/sqlite3.c:155091,1
    - Dst: sqlite3_complete
      Src: /src/nss/lib/sqlite/sqlite3.c:155093,1
    - Dst: sqlite3ValueFree
      Src: /src/nss/lib/sqlite/sqlite3.c:155097,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - zSql
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155099
      start: 155080
    functionDepth: 14
    functionLinenumber: 155080
    functionLinenumberEnd: 155099
    functionName: sqlite3_complete16
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_complete
    - sqlite3_initialize
    - sqlite3ValueText
    - sqlite3ValueFree
    - sqlite3ValueSetStr
    - sqlite3ValueNew
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_complete16(const void *zSql)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155247
      start: 155247
    functionDepth: 0
    functionLinenumber: 155247
    functionLinenumberEnd: 155247
    functionName: sqlite3_libversion
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *sqlite3_libversion(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155260
      start: 155260
    functionDepth: 0
    functionLinenumber: 155260
    functionLinenumberEnd: 155260
    functionName: sqlite3_libversion_number
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_libversion_number(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155266
      start: 155266
    functionDepth: 0
    functionLinenumber: 155266
    functionLinenumberEnd: 155266
    functionName: sqlite3_threadsafe
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_threadsafe(void)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: MUTEX_LOGIC
      Src: /src/nss/lib/sqlite/sqlite3.c:155340,1
    - Dst: sqlite3_wsd_init
      Src: /src/nss/lib/sqlite/sqlite3.c:155347,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:155356,1
    - Dst: sqlite3MutexInit
      Src: /src/nss/lib/sqlite/sqlite3.c:155373,1
    - Dst: MUTEX_LOGIC
      Src: /src/nss/lib/sqlite/sqlite3.c:155382,1
    - Dst: sqlite3MutexAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:155382,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:155383,1
    - Dst: sqlite3MallocInit
      Src: /src/nss/lib/sqlite/sqlite3.c:155386,1
    - Dst: sqlite3MutexAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:155392,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:155401,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:155423,1
    - Dst: sqlite3_init_sqllog
      Src: /src/nss/lib/sqlite/sqlite3.c:155429,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:155432,1
    - Dst: sqlite3RegisterBuiltinFunctions
      Src: /src/nss/lib/sqlite/sqlite3.c:155433,1
    - Dst: sqlite3PcacheInitialize
      Src: /src/nss/lib/sqlite/sqlite3.c:155435,1
    - Dst: sqlite3OsInit
      Src: /src/nss/lib/sqlite/sqlite3.c:155439,1
    - Dst: sqlite3MemdbInit
      Src: /src/nss/lib/sqlite/sqlite3.c:155443,1
    - Dst: sqlite3PCacheBufferSetup
      Src: /src/nss/lib/sqlite/sqlite3.c:155447,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:155456,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:155461,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:155464,1
    - Dst: sqlite3_mutex_free
      Src: /src/nss/lib/sqlite/sqlite3.c:155465,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:155468,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:155481,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:155482,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:155483,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:155484,1
    - Dst: sqlite3IsNaN
      Src: /src/nss/lib/sqlite/sqlite3.c:155484,1
    - Dst: SQLITE_EXTRA_INIT
      Src: /src/nss/lib/sqlite/sqlite3.c:155495,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 77
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( SQLITE_PTRSIZE==sizeof(char*) )
      pos:
        line_end: 155355
        line_start: 155355
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3GlobalConfig.nRefInitMutex==0 )
      pos:
        line_end: 155463
        line_start: 155463
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (sizeof(x)==8)
      pos:
        line_end: 155480
        line_start: 155480
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (sizeof(x)==sizeof(y))
      pos:
        line_end: 155481
        line_start: 155481
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3IsNaN(y) )
      pos:
        line_end: 155483
        line_start: 155483
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 155500
      start: 155339
    functionDepth: 4
    functionLinenumber: 155339
    functionLinenumberEnd: 155500
    functionName: sqlite3_initialize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 22
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3PCacheBufferSetup
    - MUTEX_LOGIC
    - sqlite3_wsd_init
    - sqlite3PcacheInitialize
    - sqlite3MutexAlloc
    - sqlite3_mutex_free
    - sqlite3OsInit
    - memcpy
    - SQLITE_EXTRA_INIT
    - sqlite3_mutex_leave
    - sqlite3MemdbInit
    - assert
    - sqlite3MallocInit
    - memset
    - sqlite3IsNaN
    - sqlite3_init_sqllog
    - sqlite3RegisterBuiltinFunctions
    - sqlite3MutexInit
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_initialize(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_wsd_init
      Src: /src/nss/lib/sqlite/sqlite3.c:155512,1
    - Dst: SQLITE_EXTRA_SHUTDOWN
      Src: /src/nss/lib/sqlite/sqlite3.c:155521,1
    - Dst: sqlite3_os_end
      Src: /src/nss/lib/sqlite/sqlite3.c:155523,1
    - Dst: sqlite3_reset_auto_extension
      Src: /src/nss/lib/sqlite/sqlite3.c:155524,1
    - Dst: sqlite3PcacheShutdown
      Src: /src/nss/lib/sqlite/sqlite3.c:155528,1
    - Dst: sqlite3MallocEnd
      Src: /src/nss/lib/sqlite/sqlite3.c:155532,1
    - Dst: sqlite3MutexEnd
      Src: /src/nss/lib/sqlite/sqlite3.c:155548,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155553
      start: 155510
    functionDepth: 4
    functionLinenumber: 155510
    functionLinenumberEnd: 155553
    functionName: sqlite3_shutdown
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_reset_auto_extension
    - sqlite3PcacheShutdown
    - SQLITE_EXTRA_SHUTDOWN
    - sqlite3_wsd_init
    - sqlite3MallocEnd
    - sqlite3MutexEnd
    - sqlite3_os_end
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_shutdown(void)
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/nss/lib/sqlite/sqlite3.c:155572,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:155608,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:155626,1
    - Dst: sqlite3MemSetDefault
      Src: /src/nss/lib/sqlite/sqlite3.c:155634,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:155642,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:155646,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:155654,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:155655,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:155656,1
    - Dst: sqlite3HeaderSizeBtree
      Src: /src/nss/lib/sqlite/sqlite3.c:155665,1
    - Dst: sqlite3HeaderSizePcache
      Src: /src/nss/lib/sqlite/sqlite3.c:155666,1
    - Dst: sqlite3HeaderSizePcache1
      Src: /src/nss/lib/sqlite/sqlite3.c:155667,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:155686,1
    - Dst: sqlite3PCacheSetDefault
      Src: /src/nss/lib/sqlite/sqlite3.c:155695,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:155710,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:155711,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:155712,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:155730,1
    - Dst: sqlite3MemGetMemsys3
      Src: /src/nss/lib/sqlite/sqlite3.c:155736,1
    - Dst: sqlite3MemGetMemsys5
      Src: /src/nss/lib/sqlite/sqlite3.c:155739,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:155747,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:155748,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:155762,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:155763,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:155777,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:155786,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:155793,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:155794,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:155804,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:155805,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:155829,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:155835,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:155840,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:155846,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:155857,1
    - Dst: va_end
      Src: /src/nss/lib/sqlite/sqlite3.c:155867,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 157
    argCount: 1
    argNames:
    - op
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155869
      start: 155564
    functionDepth: 2
    functionLinenumber: 155564
    functionLinenumberEnd: 155869
    functionName: sqlite3_config
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 5
    functionsReached:
    - sqlite3HeaderSizeBtree
    - sqlite3MemSetDefault
    - sqlite3HeaderSizePcache
    - sqlite3HeaderSizePcache1
    - va_end
    - sqlite3PCacheSetDefault
    - sqlite3MemGetMemsys5
    - memset
    - sqlite3MemGetMemsys3
    - va_start
    - va_arg
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_config(int op, ...)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3LookasideUsed
      Src: /src/nss/lib/sqlite/sqlite3.c:155886,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:155894,1
    - Dst: ROUNDDOWN8
      Src: /src/nss/lib/sqlite/sqlite3.c:155899,1
    - Dst: sqlite3BeginBenignMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:155906,1
    - Dst: sqlite3Malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:155907,1
    - Dst: sqlite3EndBenignMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:155908,1
    - Dst: sqlite3MallocSize
      Src: /src/nss/lib/sqlite/sqlite3.c:155909,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:155920,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 49
    argCount: 4
    argNames:
    - db
    - pBuf
    - sz
    - cnt
    argTypes:
    - sqlite3*
    - void*
    - int
    - int
    assertStmts:
    - condition: ( sz > (int)sizeof(LookasideSlot*) )
      pos:
        line_end: 155919
        line_start: 155919
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 155940
      start: 155882
    functionDepth: 5
    functionLinenumber: 155882
    functionLinenumberEnd: 155940
    functionName: setupLookaside
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3LookasideUsed
    - sqlite3EndBenignMalloc
    - sqlite3BeginBenignMalloc
    - sqlite3MallocSize
    - sqlite3Malloc
    - ROUNDDOWN8
    - assert
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int setupLookaside(sqlite3 *db, void *pBuf, int sz, int cnt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/nss/lib/sqlite/sqlite3.c:155947,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155953
      start: 155945
    functionDepth: 12
    functionLinenumber: 155945
    functionLinenumberEnd: 155953
    functionName: sqlite3_mutex *sqlite3_db_mutex(sqlite3 *db)
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3SafetyCheckOk
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_mutex *sqlite3_db_mutex(sqlite3 *db)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/nss/lib/sqlite/sqlite3.c:155963,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:155965,1
    - Dst: sqlite3BtreeEnterAll
      Src: /src/nss/lib/sqlite/sqlite3.c:155966,1
    - Dst: sqlite3BtreePager
      Src: /src/nss/lib/sqlite/sqlite3.c:155970,1
    - Dst: sqlite3PagerShrink
      Src: /src/nss/lib/sqlite/sqlite3.c:155971,1
    - Dst: sqlite3BtreeLeaveAll
      Src: /src/nss/lib/sqlite/sqlite3.c:155974,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:155975,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155977
      start: 155959
    functionDepth: 12
    functionLinenumber: 155959
    functionLinenumberEnd: 155977
    functionName: sqlite3_db_release_memory
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3BtreeEnterAll
    - sqlite3PagerShrink
    - sqlite3SafetyCheckOk
    - sqlite3_mutex_leave
    - sqlite3BtreeLeaveAll
    - sqlite3BtreePager
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_db_release_memory(sqlite3 *db)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/nss/lib/sqlite/sqlite3.c:155989,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:155991,1
    - Dst: sqlite3BtreeEnterAll
      Src: /src/nss/lib/sqlite/sqlite3.c:155992,1
    - Dst: sqlite3BtreeIsInTrans
      Src: /src/nss/lib/sqlite/sqlite3.c:155995,1
    - Dst: sqlite3BtreePager
      Src: /src/nss/lib/sqlite/sqlite3.c:155996,1
    - Dst: sqlite3PagerFlush
      Src: /src/nss/lib/sqlite/sqlite3.c:155997,1
    - Dst: sqlite3BtreeLeaveAll
      Src: /src/nss/lib/sqlite/sqlite3.c:156004,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:156005,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156007
      start: 155983
    functionDepth: 13
    functionLinenumber: 155983
    functionLinenumberEnd: 156007
    functionName: sqlite3_db_cacheflush
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3BtreeEnterAll
    - sqlite3SafetyCheckOk
    - sqlite3PagerFlush
    - sqlite3_mutex_leave
    - sqlite3BtreeIsInTrans
    - sqlite3BtreeLeaveAll
    - sqlite3BtreePager
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_db_cacheflush(sqlite3 *db)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/nss/lib/sqlite/sqlite3.c:156015,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:156020,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:156025,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:156026,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:156027,1
    - Dst: setupLookaside
      Src: /src/nss/lib/sqlite/sqlite3.c:156028,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:156053,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:156055,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:156056,1
    - Dst: sqlite3ExpirePreparedStatements
      Src: /src/nss/lib/sqlite/sqlite3.c:156064,1
    - Dst: va_end
      Src: /src/nss/lib/sqlite/sqlite3.c:156076,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 2
    argNames:
    - db
    - op
    argTypes:
    - sqlite3*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156078
      start: 156012
    functionDepth: 6
    functionLinenumber: 156012
    functionLinenumberEnd: 156078
    functionName: sqlite3_db_config
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - va_end
    - ArraySize
    - sqlite3ExpirePreparedStatements
    - va_start
    - va_arg
    - setupLookaside
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_db_config(sqlite3 *db, int op, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:156090,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:156095,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:156096,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - NotUsed
    - nKey1
    - pKey1
    - nKey2
    - pKey2
    argTypes:
    - void*
    - int
    - void*
    - int
    - void*
    assertStmts:
    - condition: ( pKey1 && pKey2 )
      pos:
        line_end: 156094
        line_start: 156094
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 156101
      start: 156084
    functionDepth: 1
    functionLinenumber: 156084
    functionLinenumberEnd: 156101
    functionName: binCollFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - memcmp
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: int
    signature: "int binCollFunc(\n  void *NotUsed,\n  int nKey1, const void *pKey1,\n
      \ int nKey2, const void *pKey2\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: binCollFunc
      Src: /src/nss/lib/sqlite/sqlite3.c:156116,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 5
    argNames:
    - pUser
    - nKey1
    - pKey1
    - nKey2
    - pKey2
    argTypes:
    - void*
    - int
    - void*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156117
      start: 156107
    functionDepth: 2
    functionLinenumber: 156107
    functionLinenumberEnd: 156117
    functionName: rtrimCollFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - binCollFunc
    linkageType: ''
    returnType: int
    signature: "int rtrimCollFunc(\n  void *pUser,\n  int nKey1, const void *pKey1,\n
      \ int nKey2, const void *pKey2\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:156123,1
    - Dst: strcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:156123,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - CollSeq*
    assertStmts:
    - condition: ( p==0 || p->xCmp!=binCollFunc || strcmp(p->zName,"BINARY")==0 )
      pos:
        line_end: 156122
        line_start: 156122
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 156125
      start: 156122
    functionDepth: 0
    functionLinenumber: 156122
    functionLinenumberEnd: 156125
    functionName: sqlite3IsBinary
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 3
    functionsReached:
    - assert
    - strcmp
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3IsBinary(const CollSeq *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3StrNICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:156141,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:156143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - NotUsed
    - nKey1
    - pKey1
    - nKey2
    - pKey2
    argTypes:
    - void*
    - int
    - void*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156148
      start: 156136
    functionDepth: 1
    functionLinenumber: 156136
    functionLinenumberEnd: 156148
    functionName: nocaseCollatingFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3StrNICmp
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: int
    signature: "int nocaseCollatingFunc(\n  void *NotUsed,\n  int nKey1, const void
      *pKey1,\n  int nKey2, const void *pKey2\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/nss/lib/sqlite/sqlite3.c:156155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156161
      start: 156153
    functionDepth: 12
    functionLinenumber: 156153
    functionLinenumberEnd: 156161
    functionName: sqlite_int64::sqlite3_last_insert_rowid
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3SafetyCheckOk
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite_int64 sqlite3_last_insert_rowid(sqlite3 *db)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/nss/lib/sqlite/sqlite3.c:156168,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:156173,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:156175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - db
    - iRowid
    argTypes:
    - sqlite3*
    - sqlite3_int64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156176
      start: 156166
    functionDepth: 12
    functionLinenumber: 156166
    functionLinenumberEnd: 156176
    functionName: sqlite3_set_last_insert_rowid
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3_mutex_leave
    - sqlite3SafetyCheckOk
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_set_last_insert_rowid(sqlite3 *db, sqlite3_int64
      iRowid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/nss/lib/sqlite/sqlite3.c:156183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156189
      start: 156181
    functionDepth: 12
    functionLinenumber: 156181
    functionLinenumberEnd: 156189
    functionName: sqlite3_changes
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3SafetyCheckOk
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_changes(sqlite3 *db)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/nss/lib/sqlite/sqlite3.c:156196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156202
      start: 156194
    functionDepth: 12
    functionLinenumber: 156194
    functionLinenumberEnd: 156202
    functionName: sqlite3_total_changes
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3SafetyCheckOk
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_total_changes(sqlite3 *db)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:156213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156218
      start: 156209
    functionDepth: 6
    functionLinenumber: 156209
    functionLinenumberEnd: 156218
    functionName: sqlite3CloseSavepoints
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3DbFree
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3CloseSavepoints(sqlite3 *db)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FuncDestructor*::xDestroy
      Src: /src/nss/lib/sqlite/sqlite3.c:156231,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:156232,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - FuncDef*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156235
      start: 156226
    functionDepth: 6
    functionLinenumber: 156226
    functionLinenumberEnd: 156235
    functionName: functionDestroy
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DbFree
    - FuncDestructor*::xDestroy
    linkageType: ''
    returnType: void
    signature: void functionDestroy(sqlite3 *db, FuncDef *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeEnterAll
      Src: /src/nss/lib/sqlite/sqlite3.c:156245,1
    - Dst: sqliteHashFirst
      Src: /src/nss/lib/sqlite/sqlite3.c:156249,1
    - Dst: sqliteHashNext
      Src: /src/nss/lib/sqlite/sqlite3.c:156249,1
    - Dst: sqliteHashData
      Src: /src/nss/lib/sqlite/sqlite3.c:156250,1
    - Dst: IsVirtual
      Src: /src/nss/lib/sqlite/sqlite3.c:156251,1
    - Dst: sqlite3VtabDisconnect
      Src: /src/nss/lib/sqlite/sqlite3.c:156251,1
    - Dst: sqliteHashFirst
      Src: /src/nss/lib/sqlite/sqlite3.c:156255,1
    - Dst: sqliteHashNext
      Src: /src/nss/lib/sqlite/sqlite3.c:156255,1
    - Dst: sqliteHashData
      Src: /src/nss/lib/sqlite/sqlite3.c:156256,1
    - Dst: sqlite3VtabDisconnect
      Src: /src/nss/lib/sqlite/sqlite3.c:156258,1
    - Dst: sqlite3VtabUnlockList
      Src: /src/nss/lib/sqlite/sqlite3.c:156261,1
    - Dst: sqlite3BtreeLeaveAll
      Src: /src/nss/lib/sqlite/sqlite3.c:156262,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:156264,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156266
      start: 156241
    functionDepth: 8
    functionLinenumber: 156241
    functionLinenumberEnd: 156266
    functionName: disconnectAllVtab
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeEnterAll
    - sqlite3VtabDisconnect
    - sqliteHashNext
    - UNUSED_PARAMETER
    - sqlite3BtreeLeaveAll
    - sqliteHashData
    - sqlite3VtabUnlockList
    - sqliteHashFirst
    - IsVirtual
    linkageType: ''
    returnType: void
    signature: void disconnectAllVtab(sqlite3 *db)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:156274,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:156274,1
    - Dst: sqlite3BtreeIsInBackup
      Src: /src/nss/lib/sqlite/sqlite3.c:156278,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts:
    - condition: ( sqlite3_mutex_held(db->mutex) )
      pos:
        line_end: 156273
        line_start: 156273
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 156281
      start: 156272
    functionDepth: 2
    functionLinenumber: 156272
    functionLinenumberEnd: 156281
    functionName: connectionIsBusy
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_mutex_held
    - sqlite3BtreeIsInBackup
    linkageType: ''
    returnType: int
    signature: int connectionIsBusy(sqlite3 *db)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckSickOrOk
      Src: /src/nss/lib/sqlite/sqlite3.c:156292,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:156295,1
    - Dst: sqlite3*::xTrace
      Src: /src/nss/lib/sqlite/sqlite3.c:156297,1
    - Dst: disconnectAllVtab
      Src: /src/nss/lib/sqlite/sqlite3.c:156301,1
    - Dst: sqlite3VtabRollback
      Src: /src/nss/lib/sqlite/sqlite3.c:156310,1
    - Dst: connectionIsBusy
      Src: /src/nss/lib/sqlite/sqlite3.c:156315,1
    - Dst: sqlite3ErrorWithMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:156316,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:156318,1
    - Dst: xSqllog
      Src: /src/nss/lib/sqlite/sqlite3.c:156325,1
    - Dst: sqlite3LeaveMutexAndCloseZombie
      Src: /src/nss/lib/sqlite/sqlite3.c:156332,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - db
    - forceZombie
    argTypes:
    - sqlite3*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156334
      start: 156286
    functionDepth: 12
    functionLinenumber: 156286
    functionLinenumberEnd: 156334
    functionName: sqlite3Close
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - connectionIsBusy
    - sqlite3*::xTrace
    - xSqllog
    - sqlite3VtabRollback
    - disconnectAllVtab
    - sqlite3_mutex_leave
    - sqlite3SafetyCheckSickOrOk
    - sqlite3ErrorWithMsg
    - sqlite3LeaveMutexAndCloseZombie
    linkageType: ''
    returnType: int
    signature: int sqlite3Close(sqlite3 *db, int forceZombie)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Close
      Src: /src/nss/lib/sqlite/sqlite3.c:156345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156345
      start: 156345
    functionDepth: 13
    functionLinenumber: 156345
    functionLinenumberEnd: 156345
    functionName: sqlite3_close
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 7
    functionsReached:
    - sqlite3Close
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_close(sqlite3 *db)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Close
      Src: /src/nss/lib/sqlite/sqlite3.c:156346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156346
      start: 156346
    functionDepth: 13
    functionLinenumber: 156346
    functionLinenumberEnd: 156346
    functionName: sqlite3_close_v2
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Close
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_close_v2(sqlite3 *db)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: connectionIsBusy
      Src: /src/nss/lib/sqlite/sqlite3.c:156365,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:156366,1
    - Dst: sqlite3RollbackAll
      Src: /src/nss/lib/sqlite/sqlite3.c:156380,1
    - Dst: sqlite3CloseSavepoints
      Src: /src/nss/lib/sqlite/sqlite3.c:156383,1
    - Dst: sqlite3BtreeClose
      Src: /src/nss/lib/sqlite/sqlite3.c:156389,1
    - Dst: sqlite3SchemaClear
      Src: /src/nss/lib/sqlite/sqlite3.c:156398,1
    - Dst: sqlite3VtabUnlockList
      Src: /src/nss/lib/sqlite/sqlite3.c:156400,1
    - Dst: sqlite3CollapseDatabaseArray
      Src: /src/nss/lib/sqlite/sqlite3.c:156403,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:156404,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:156405,1
    - Dst: sqlite3ConnectionClosed
      Src: /src/nss/lib/sqlite/sqlite3.c:156410,1
    - Dst: sqliteHashFirst
      Src: /src/nss/lib/sqlite/sqlite3.c:156412,1
    - Dst: sqliteHashNext
      Src: /src/nss/lib/sqlite/sqlite3.c:156412,1
    - Dst: sqliteHashData
      Src: /src/nss/lib/sqlite/sqlite3.c:156414,1
    - Dst: functionDestroy
      Src: /src/nss/lib/sqlite/sqlite3.c:156416,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:156418,1
    - Dst: sqlite3HashClear
      Src: /src/nss/lib/sqlite/sqlite3.c:156422,1
    - Dst: sqliteHashFirst
      Src: /src/nss/lib/sqlite/sqlite3.c:156423,1
    - Dst: sqliteHashNext
      Src: /src/nss/lib/sqlite/sqlite3.c:156423,1
    - Dst: sqliteHashData
      Src: /src/nss/lib/sqlite/sqlite3.c:156424,1
    - Dst: xDel
      Src: /src/nss/lib/sqlite/sqlite3.c:156428,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:156431,1
    - Dst: sqlite3HashClear
      Src: /src/nss/lib/sqlite/sqlite3.c:156433,1
    - Dst: sqliteHashFirst
      Src: /src/nss/lib/sqlite/sqlite3.c:156435,1
    - Dst: sqliteHashNext
      Src: /src/nss/lib/sqlite/sqlite3.c:156435,1
    - Dst: sqliteHashData
      Src: /src/nss/lib/sqlite/sqlite3.c:156436,1
    - Dst: Module*::xDestroy
      Src: /src/nss/lib/sqlite/sqlite3.c:156438,1
    - Dst: sqlite3VtabEponymousTableClear
      Src: /src/nss/lib/sqlite/sqlite3.c:156440,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:156441,1
    - Dst: sqlite3HashClear
      Src: /src/nss/lib/sqlite/sqlite3.c:156443,1
    - Dst: sqlite3Error
      Src: /src/nss/lib/sqlite/sqlite3.c:156446,1
    - Dst: sqlite3ValueFree
      Src: /src/nss/lib/sqlite/sqlite3.c:156447,1
    - Dst: sqlite3CloseExtensions
      Src: /src/nss/lib/sqlite/sqlite3.c:156448,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:156450,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:156451,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:156462,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:156463,1
    - Dst: sqlite3_mutex_free
      Src: /src/nss/lib/sqlite/sqlite3.c:156465,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:156466,1
    - Dst: sqlite3LookasideUsed
      Src: /src/nss/lib/sqlite/sqlite3.c:156466,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:156468,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:156470,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 66
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts:
    - condition: ( sqlite3LookasideUsed(db,0)==0 )
      pos:
        line_end: 156465
        line_start: 156465
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( db->aDb==db->aDbStatic )
      pos:
        line_end: 156404
        line_start: 156404
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( db->nDb<=2 )
      pos:
        line_end: 156403
        line_start: 156403
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 156471
      start: 156357
    functionDepth: 11
    functionLinenumber: 156357
    functionLinenumberEnd: 156471
    functionName: sqlite3LeaveMutexAndCloseZombie
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 3
    functionsReached:
    - connectionIsBusy
    - sqliteHashNext
    - functionDestroy
    - sqliteHashData
    - sqliteHashFirst
    - sqlite3_mutex_free
    - sqlite3VtabEponymousTableClear
    - sqlite3LookasideUsed
    - sqlite3_mutex_leave
    - assert
    - sqlite3Error
    - sqlite3ValueFree
    - sqlite3VtabUnlockList
    - sqlite3BtreeClose
    - sqlite3DbFree
    - sqlite3RollbackAll
    - Module*::xDestroy
    - xDel
    - sqlite3CloseExtensions
    - sqlite3ConnectionClosed
    - sqlite3HashClear
    - sqlite3SchemaClear
    - sqlite3CloseSavepoints
    - sqlite3CollapseDatabaseArray
    - sqlite3_free
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3LeaveMutexAndCloseZombie(sqlite3 *db)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:156484,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:156484,1
    - Dst: sqlite3BeginBenignMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:156485,1
    - Dst: sqlite3BtreeEnterAll
      Src: /src/nss/lib/sqlite/sqlite3.c:156493,1
    - Dst: sqlite3BtreeIsInTrans
      Src: /src/nss/lib/sqlite/sqlite3.c:156499,1
    - Dst: sqlite3BtreeRollback
      Src: /src/nss/lib/sqlite/sqlite3.c:156502,1
    - Dst: sqlite3VtabRollback
      Src: /src/nss/lib/sqlite/sqlite3.c:156505,1
    - Dst: sqlite3EndBenignMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:156506,1
    - Dst: sqlite3ExpirePreparedStatements
      Src: /src/nss/lib/sqlite/sqlite3.c:156509,1
    - Dst: sqlite3ResetAllSchemasOfConnection
      Src: /src/nss/lib/sqlite/sqlite3.c:156510,1
    - Dst: sqlite3BtreeLeaveAll
      Src: /src/nss/lib/sqlite/sqlite3.c:156512,1
    - Dst: sqlite3*::xRollbackCallback
      Src: /src/nss/lib/sqlite/sqlite3.c:156521,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - db
    - tripCode
    argTypes:
    - sqlite3*
    - int
    assertStmts:
    - condition: ( sqlite3_mutex_held(db->mutex) )
      pos:
        line_end: 156483
        line_start: 156483
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 156523
      start: 156480
    functionDepth: 15
    functionLinenumber: 156480
    functionLinenumberEnd: 156523
    functionName: sqlite3RollbackAll
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 3
    functionsReached:
    - sqlite3BtreeEnterAll
    - sqlite3EndBenignMalloc
    - sqlite3BeginBenignMalloc
    - sqlite3VtabRollback
    - sqlite3BtreeIsInTrans
    - sqlite3ExpirePreparedStatements
    - sqlite3ResetAllSchemasOfConnection
    - sqlite3BtreeLeaveAll
    - assert
    - sqlite3_mutex_held
    - sqlite3BtreeRollback
    - sqlite3*::xRollbackCallback
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3RollbackAll(sqlite3 *db, int tripCode)
  - BBCount: 86
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:156629,1
    CyclomaticComplexity: 88
    EdgeCount: 88
    ICount: 262
    argCount: 1
    argNames:
    - rc
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156633
      start: 156530
    functionDepth: 10
    functionLinenumber: 156530
    functionLinenumberEnd: 156633
    functionName: sqlite3ErrName
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 12
    functionsReached:
    - sqlite3_snprintf
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3ErrName(int rc)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:156692,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:156692,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - rc
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156699
      start: 156640
    functionDepth: 1
    functionLinenumber: 156640
    functionLinenumberEnd: 156699
    functionName: sqlite3ErrStr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 5
    functionsReached:
    - ALWAYS
    - ArraySize
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3ErrStr(int rc)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3OsFileControl
      Src: /src/nss/lib/sqlite/sqlite3.c:156728,1
    - Dst: sqlite3OsFileControl
      Src: /src/nss/lib/sqlite/sqlite3.c:156731,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:156738,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:156740,1
    - Dst: sqlite3OsSleep
      Src: /src/nss/lib/sqlite/sqlite3.c:156752,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:156759,1
    - Dst: sqlite3OsSleep
      Src: /src/nss/lib/sqlite/sqlite3.c:156763,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 3
    argNames:
    - ptr
    - count
    - pFile
    argTypes:
    - void*
    - int
    - sqlite3_file*
    assertStmts:
    - condition: ( count>=0 )
      pos:
        line_end: 156739
        line_start: 156739
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 156766
      start: 156710
    functionDepth: 2
    functionLinenumber: 156710
    functionLinenumberEnd: 156766
    functionName: sqliteDefaultBusyCallback
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3OsFileControl
    - UNUSED_PARAMETER
    - sqlite3OsSleep
    linkageType: ''
    returnType: int
    signature: "int sqliteDefaultBusyCallback(\n  void *ptr,               /* Database
      connection */\n  int count,               /* Number of times table has been
      busy */\n  sqlite3_file *pFile      /* The file on which the lock occurred */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: xTra
      Src: /src/nss/lib/sqlite/sqlite3.c:156785,1
    - Dst: BusyHandler*::xBusyHandler
      Src: /src/nss/lib/sqlite/sqlite3.c:156788,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - p
    - pFile
    argTypes:
    - BusyHandler*
    - sqlite3_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156796
      start: 156777
    functionDepth: 0
    functionLinenumber: 156777
    functionLinenumberEnd: 156796
    functionName: sqlite3InvokeBusyHandler
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - BusyHandler*::xBusyHandler
    - xTra
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3InvokeBusyHandler(BusyHandler *p, sqlite3_file
      *pFile)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/nss/lib/sqlite/sqlite3.c:156808,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:156810,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:156816,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - db
    - pArg
    argTypes:
    - sqlite3*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156818
      start: 156802
    functionDepth: 12
    functionLinenumber: 156802
    functionLinenumberEnd: 156818
    functionName: sqlite3_busy_handler
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3_mutex_leave
    - sqlite3SafetyCheckOk
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_busy_handler(\n  sqlite3 *db,\n  int (*xBusy)(void*,int),\n
      \ void *pArg\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/nss/lib/sqlite/sqlite3.c:156833,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:156838,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:156848,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - db
    - nOps
    - pArg
    argTypes:
    - sqlite3*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156849
      start: 156826
    functionDepth: 12
    functionLinenumber: 156826
    functionLinenumberEnd: 156849
    functionName: sqlite3_progress_handler
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3_mutex_leave
    - sqlite3SafetyCheckOk
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_progress_handler(\n  sqlite3 *db, \n  int nOps,\n
      \ int (*xProgress)(void*), \n  void *pArg\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/nss/lib/sqlite/sqlite3.c:156859,1
    - Dst: sqlite3_busy_handler
      Src: /src/nss/lib/sqlite/sqlite3.c:156862,1
    - Dst: sqlite3_busy_handler
      Src: /src/nss/lib/sqlite/sqlite3.c:156867,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - db
    - ms
    argTypes:
    - sqlite3*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156870
      start: 156857
    functionDepth: 13
    functionLinenumber: 156857
    functionLinenumberEnd: 156870
    functionName: sqlite3_busy_timeout
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3_busy_handler
    - sqlite3SafetyCheckOk
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_busy_timeout(sqlite3 *db, int ms)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/nss/lib/sqlite/sqlite3.c:156877,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156883
      start: 156875
    functionDepth: 12
    functionLinenumber: 156875
    functionLinenumberEnd: 156883
    functionName: sqlite3_interrupt
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3SafetyCheckOk
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_interrupt(sqlite3 *db)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:156909,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:156909,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:156910,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:156916,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:156921,1
    - Dst: sqlite3CreateFunc
      Src: /src/nss/lib/sqlite/sqlite3.c:156937,1
    - Dst: sqlite3CreateFunc
      Src: /src/nss/lib/sqlite/sqlite3.c:156940,1
    - Dst: sqlite3FindFunction
      Src: /src/nss/lib/sqlite/sqlite3.c:156957,1
    - Dst: sqlite3ErrorWithMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:156960,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:156962,1
    - Dst: sqlite3ExpirePreparedStatements
      Src: /src/nss/lib/sqlite/sqlite3.c:156965,1
    - Dst: sqlite3FindFunction
      Src: /src/nss/lib/sqlite/sqlite3.c:156969,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:156970,1
    - Dst: functionDestroy
      Src: /src/nss/lib/sqlite/sqlite3.c:156977,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:156984,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 52
    argCount: 6
    argNames:
    - db
    - zFunctionName
    - nArg
    - enc
    - pUserData
    - pDestructor
    argTypes:
    - sqlite3*
    - char*
    - int
    - int
    - void*
    - FuncDestructor*
    assertStmts:
    - condition: ( sqlite3_mutex_held(db->mutex) )
      pos:
        line_end: 156908
        line_start: 156908
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( xValue==0 || xSFunc==0 )
      pos:
        line_end: 156909
        line_start: 156909
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( SQLITE_FUNC_CONSTANT==SQLITE_DETERMINISTIC )
      pos:
        line_end: 156920
        line_start: 156920
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !db->mallocFailed )
      pos:
        line_end: 156961
        line_start: 156961
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (p || db->mallocFailed)
      pos:
        line_end: 156969
        line_start: 156969
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 156992
      start: 156892
    functionDepth: 10
    functionLinenumber: 156892
    functionLinenumberEnd: 156992
    functionName: sqlite3CreateFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3FindFunction
    - sqlite3ExpirePreparedStatements
    - assert
    - sqlite3Strlen30
    - sqlite3CreateFunc
    - sqlite3ErrorWithMsg
    - sqlite3_mutex_held
    - functionDestroy
    - testcase
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3CreateFunc(\n  sqlite3 *db,\n  const char *zFunctionName,\n
      \ int nArg,\n  int enc,\n  void *pUserData,\n  void (*xSFunc)(sqlite3_context*,int,sqlite3_value
      **),\n  void (*xStep)(sqlite3_context*,int,sqlite3_value **),\n  void (*xFinal)(sqlite3_context*),\n
      \ void (*xValue)(sqlite3_context*),\n  void (*xInverse)(sqlite3_context*,int,sqlite3_value
      **),\n  FuncDestructor *pDestructor\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/nss/lib/sqlite/sqlite3.c:157018,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:157022,1
    - Dst: sqlite3Malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:157024,1
    - Dst: sqlite3OomFault
      Src: /src/nss/lib/sqlite/sqlite3.c:157026,1
    - Dst: xDestroy
      Src: /src/nss/lib/sqlite/sqlite3.c:157027,1
    - Dst: sqlite3CreateFunc
      Src: /src/nss/lib/sqlite/sqlite3.c:157034,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:157038,1
    - Dst: xDestroy
      Src: /src/nss/lib/sqlite/sqlite3.c:157039,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:157040,1
    - Dst: sqlite3ApiExit
      Src: /src/nss/lib/sqlite/sqlite3.c:157044,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:157045,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 5
    argNames:
    - db
    - zFunc
    - nArg
    - enc
    - p
    argTypes:
    - sqlite3*
    - char*
    - int
    - int
    - void*
    assertStmts:
    - condition: ( rc!=SQLITE_OK )
      pos:
        line_end: 157037
        line_start: 157037
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 157047
      start: 157001
    functionDepth: 12
    functionLinenumber: 157001
    functionLinenumberEnd: 157047
    functionName: createFunctionApi
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3SafetyCheckOk
    - sqlite3ApiExit
    - sqlite3_mutex_leave
    - xDestroy
    - sqlite3Malloc
    - sqlite3OomFault
    - assert
    - sqlite3CreateFunc
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int createFunctionApi(\n  sqlite3 *db,\n  const char *zFunc,\n  int
      nArg,\n  int enc,\n  void *p,\n  void (*xSFunc)(sqlite3_context*,int,sqlite3_value**),\n
      \ void (*xStep)(sqlite3_context*,int,sqlite3_value**),\n  void (*xFinal)(sqlite3_context*),\n
      \ void (*xValue)(sqlite3_context*),\n  void (*xInverse)(sqlite3_context*,int,sqlite3_value**),\n
      \ void(*xDestroy)(void*)\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: createFunctionApi
      Src: /src/nss/lib/sqlite/sqlite3.c:157062,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - db
    - zFunc
    - nArg
    - enc
    - p
    argTypes:
    - sqlite3*
    - char*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157064
      start: 157052
    functionDepth: 13
    functionLinenumber: 157052
    functionLinenumberEnd: 157064
    functionName: sqlite3_create_function
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - createFunctionApi
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_create_function(\n  sqlite3 *db,\n  const char
      *zFunc,\n  int nArg,\n  int enc,\n  void *p,\n  void (*xSFunc)(sqlite3_context*,int,sqlite3_value
      **),\n  void (*xStep)(sqlite3_context*,int,sqlite3_value **),\n  void (*xFinal)(sqlite3_context*)\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: createFunctionApi
      Src: /src/nss/lib/sqlite/sqlite3.c:157076,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - db
    - zFunc
    - nArg
    - enc
    - p
    argTypes:
    - sqlite3*
    - char*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157078
      start: 157065
    functionDepth: 13
    functionLinenumber: 157065
    functionLinenumberEnd: 157078
    functionName: sqlite3_create_function_v2
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - createFunctionApi
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_create_function_v2(\n  sqlite3 *db,\n  const char
      *zFunc,\n  int nArg,\n  int enc,\n  void *p,\n  void (*xSFunc)(sqlite3_context*,int,sqlite3_value
      **),\n  void (*xStep)(sqlite3_context*,int,sqlite3_value **),\n  void (*xFinal)(sqlite3_context*),\n
      \ void (*xDestroy)(void *)\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: createFunctionApi
      Src: /src/nss/lib/sqlite/sqlite3.c:157091,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - db
    - zFunc
    - nArg
    - enc
    - p
    argTypes:
    - sqlite3*
    - char*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157093
      start: 157079
    functionDepth: 13
    functionLinenumber: 157079
    functionLinenumberEnd: 157093
    functionName: sqlite3_create_window_function
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - createFunctionApi
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_create_window_function(\n  sqlite3 *db,\n  const
      char *zFunc,\n  int nArg,\n  int enc,\n  void *p,\n  void (*xStep)(sqlite3_context*,int,sqlite3_value
      **),\n  void (*xFinal)(sqlite3_context*),\n  void (*xValue)(sqlite3_context*),\n
      \ void (*xInverse)(sqlite3_context*,int,sqlite3_value **),\n  void (*xDestroy)(void
      *)\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/nss/lib/sqlite/sqlite3.c:157110,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:157112,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:157113,1
    - Dst: sqlite3Utf16to8
      Src: /src/nss/lib/sqlite/sqlite3.c:157114,1
    - Dst: sqlite3CreateFunc
      Src: /src/nss/lib/sqlite/sqlite3.c:157115,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:157116,1
    - Dst: sqlite3ApiExit
      Src: /src/nss/lib/sqlite/sqlite3.c:157117,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:157118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - db
    - zFunctionName
    - nArg
    - eTextRep
    - p
    argTypes:
    - sqlite3*
    - void*
    - int
    - int
    - void*
    assertStmts:
    - condition: ( !db->mallocFailed )
      pos:
        line_end: 157112
        line_start: 157112
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 157120
      start: 157096
    functionDepth: 12
    functionLinenumber: 157096
    functionLinenumberEnd: 157120
    functionName: sqlite3_create_function16
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3SafetyCheckOk
    - sqlite3DbFree
    - sqlite3ApiExit
    - sqlite3_mutex_leave
    - sqlite3Utf16to8
    - assert
    - sqlite3CreateFunc
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_create_function16(\n  sqlite3 *db,\n  const void
      *zFunctionName,\n  int nArg,\n  int eTextRep,\n  void *p,\n  void (*xSFunc)(sqlite3_context*,int,sqlite3_value**),\n
      \ void (*xStep)(sqlite3_context*,int,sqlite3_value**),\n  void (*xFinal)(sqlite3_context*)\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_user_data
      Src: /src/nss/lib/sqlite/sqlite3.c:157137,1
    - Dst: UNUSED_PARAMETER2
      Src: /src/nss/lib/sqlite/sqlite3.c:157139,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:157140,1
    - Dst: sqlite3_result_error
      Src: /src/nss/lib/sqlite/sqlite3.c:157142,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:157143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - context
    - NotUsed
    - NotUsed2
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157144
      start: 157132
    functionDepth: 13
    functionLinenumber: 157132
    functionLinenumberEnd: 157144
    functionName: sqlite3InvalidFunction
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER2
    - sqlite3_mprintf
    - sqlite3_user_data
    - sqlite3_free
    - sqlite3_result_error
    linkageType: ''
    returnType: void
    signature: "void sqlite3InvalidFunction(\n  sqlite3_context *context,  /* The
      function calling context */\n  int NotUsed,               /* Number of arguments
      to the function */\n  sqlite3_value **NotUsed2   /* Value of each argument */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/nss/lib/sqlite/sqlite3.c:157167,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:157171,1
    - Dst: sqlite3FindFunction
      Src: /src/nss/lib/sqlite/sqlite3.c:157172,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:157173,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:157175,1
    - Dst: sqlite3_create_function_v2
      Src: /src/nss/lib/sqlite/sqlite3.c:157177,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - db
    - zName
    - nArg
    argTypes:
    - sqlite3*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157179
      start: 157158
    functionDepth: 14
    functionLinenumber: 157158
    functionLinenumberEnd: 157179
    functionName: sqlite3_overload_function
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3SafetyCheckOk
    - sqlite3FindFunction
    - sqlite3_mutex_leave
    - sqlite3_mprintf
    - sqlite3_create_function_v2
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_overload_function(\n  sqlite3 *db,\n  const char
      *zName,\n  int nArg\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/nss/lib/sqlite/sqlite3.c:157195,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:157200,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:157205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - db
    - pArg
    argTypes:
    - sqlite3*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157207
      start: 157191
    functionDepth: 12
    functionLinenumber: 157191
    functionLinenumberEnd: 157207
    functionName: sqlite3_trace
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3_mutex_leave
    - sqlite3SafetyCheckOk
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *sqlite3_trace(sqlite3 *db, void(*xTrace)(void*,const char*),
      void *pArg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/nss/lib/sqlite/sqlite3.c:157219,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:157223,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:157229,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - db
    - mTrace
    - pArg
    argTypes:
    - sqlite3*
    - unsigned
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157231
      start: 157212
    functionDepth: 12
    functionLinenumber: 157212
    functionLinenumberEnd: 157231
    functionName: sqlite3_trace_v2
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3_mutex_leave
    - sqlite3SafetyCheckOk
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_trace_v2(\n  sqlite3 *db,                               /*
      Trace this connection */\n  unsigned mTrace,                           /* Mask
      of events to be traced */\n  int(*xTrace)(unsigned,void*,void*,void*),  /* Callback
      to invoke */\n  void *pArg                                 /* Context */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/nss/lib/sqlite/sqlite3.c:157250,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:157255,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:157261,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - db
    - pArg
    argTypes:
    - sqlite3*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157263
      start: 157242
    functionDepth: 12
    functionLinenumber: 157242
    functionLinenumberEnd: 157263
    functionName: sqlite3_profile
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3_mutex_leave
    - sqlite3SafetyCheckOk
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API *sqlite3_profile(\n  sqlite3 *db,\n  void (*xProfile)(void*,const
      char*,sqlite_uint64),\n  void *pArg\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/nss/lib/sqlite/sqlite3.c:157280,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:157285,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:157289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - db
    - pArg
    argTypes:
    - sqlite3*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157291
      start: 157272
    functionDepth: 12
    functionLinenumber: 157272
    functionLinenumberEnd: 157291
    functionName: sqlite3_commit_hook
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3_mutex_leave
    - sqlite3SafetyCheckOk
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API *sqlite3_commit_hook(\n  sqlite3 *db,              /* Attach
      the hook to this database */\n  int (*xCallback)(void*),  /* Function to invoke
      on each commit */\n  void *pArg                /* Argument to the function */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/nss/lib/sqlite/sqlite3.c:157305,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:157310,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:157314,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - db
    - pArg
    argTypes:
    - sqlite3*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157316
      start: 157297
    functionDepth: 12
    functionLinenumber: 157297
    functionLinenumberEnd: 157316
    functionName: sqlite3_update_hook
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3_mutex_leave
    - sqlite3SafetyCheckOk
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API *sqlite3_update_hook(\n  sqlite3 *db,              /* Attach
      the hook to this database */\n  void (*xCallback)(void*,int,char const *,char
      const *,sqlite_int64),\n  void *pArg                /* Argument to the function
      */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/nss/lib/sqlite/sqlite3.c:157330,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:157335,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:157339,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - db
    - pArg
    argTypes:
    - sqlite3*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157341
      start: 157322
    functionDepth: 12
    functionLinenumber: 157322
    functionLinenumberEnd: 157341
    functionName: sqlite3_rollback_hook
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3_mutex_leave
    - sqlite3SafetyCheckOk
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API *sqlite3_rollback_hook(\n  sqlite3 *db,              /*
      Attach the hook to this database */\n  void (*xCallback)(void*), /* Callback
      function */\n  void *pArg                /* Argument to the function */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:157355,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:157359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - db
    - pArg
    argTypes:
    - sqlite3*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157361
      start: 157348
    functionDepth: 1
    functionLinenumber: 157348
    functionLinenumberEnd: 157361
    functionName: sqlite3_preupdate_hook
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3_mutex_leave
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API *sqlite3_preupdate_hook(\n  sqlite3 *db,              /*
      Attach the hook to this database */\n  void(*xCallback)(         /* Callback
      function */\n    void*,sqlite3*,int,char const*,char const*,sqlite3_int64,sqlite3_int64),\n
      \ void *pArg                /* First callback argument */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SQLITE_PTR_TO_INT
      Src: /src/nss/lib/sqlite/sqlite3.c:157377,1
    - Dst: sqlite3BeginBenignMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:157378,1
    - Dst: sqlite3_wal_checkpoint
      Src: /src/nss/lib/sqlite/sqlite3.c:157379,1
    - Dst: sqlite3EndBenignMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:157380,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - pClientData
    - db
    - zDb
    - nFrame
    argTypes:
    - void*
    - sqlite3*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157383
      start: 157371
    functionDepth: 1
    functionLinenumber: 157371
    functionLinenumberEnd: 157383
    functionName: sqlite3WalDefaultHook
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - SQLITE_PTR_TO_INT
    - sqlite3BeginBenignMalloc
    - sqlite3EndBenignMalloc
    - sqlite3_wal_checkpoint
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3WalDefaultHook(\n  void *pClientData,     /*
      Argument */\n  sqlite3 *db,           /* Connection */\n  const char *zDb,       /*
      Database */\n  int nFrame             /* Size of WAL */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:157399,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:157400,1
    - Dst: sqlite3SafetyCheckOk
      Src: /src/nss/lib/sqlite/sqlite3.c:157403,1
    - Dst: sqlite3_wal_hook
      Src: /src/nss/lib/sqlite/sqlite3.c:157406,1
    - Dst: SQLITE_INT_TO_PTR
      Src: /src/nss/lib/sqlite/sqlite3.c:157406,1
    - Dst: sqlite3_wal_hook
      Src: /src/nss/lib/sqlite/sqlite3.c:157408,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - db
    - nFrame
    argTypes:
    - sqlite3*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157412
      start: 157397
    functionDepth: 12
    functionLinenumber: 157397
    functionLinenumberEnd: 157412
    functionName: sqlite3_wal_autocheckpoint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_wal_hook
    - SQLITE_INT_TO_PTR
    - UNUSED_PARAMETER
    - sqlite3SafetyCheckOk
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_wal_autocheckpoint(sqlite3 *db, int nFrame)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/nss/lib/sqlite/sqlite3.c:157426,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:157431,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:157435,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - db
    - pArg
    argTypes:
    - sqlite3*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157440
      start: 157418
    functionDepth: 12
    functionLinenumber: 157418
    functionLinenumberEnd: 157440
    functionName: sqlite3_wal_hook
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3_mutex_leave
    - sqlite3SafetyCheckOk
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API *sqlite3_wal_hook(\n  sqlite3 *db,                    /*
      Attach the hook to this db handle */\n  int(*xCallback)(void *, sqlite3*, const
      char*, int),\n  void *pArg                      /* First argument passed to
      xCallback() */\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/nss/lib/sqlite/sqlite3.c:157459,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:157466,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:157467,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:157468,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:157469,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:157476,1
    - Dst: sqlite3FindDbName
      Src: /src/nss/lib/sqlite/sqlite3.c:157478,1
    - Dst: sqlite3ErrorWithMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:157482,1
    - Dst: sqlite3Checkpoint
      Src: /src/nss/lib/sqlite/sqlite3.c:157485,1
    - Dst: sqlite3Error
      Src: /src/nss/lib/sqlite/sqlite3.c:157486,1
    - Dst: sqlite3ApiExit
      Src: /src/nss/lib/sqlite/sqlite3.c:157488,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:157496,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 5
    argNames:
    - db
    - zDb
    - eMode
    - pnLog
    - pnCkpt
    argTypes:
    - sqlite3*
    - char*
    - int
    - int*
    - int*
    assertStmts:
    - condition: ( SQLITE_CHECKPOINT_TRUNCATE==3 )
      pos:
        line_end: 157468
        line_start: 157468
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( SQLITE_CHECKPOINT_RESTART==2 )
      pos:
        line_end: 157467
        line_start: 157467
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( SQLITE_CHECKPOINT_FULL==1 )
      pos:
        line_end: 157466
        line_start: 157466
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( SQLITE_CHECKPOINT_PASSIVE==0 )
      pos:
        line_end: 157465
        line_start: 157465
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 157499
      start: 157445
    functionDepth: 12
    functionLinenumber: 157445
    functionLinenumberEnd: 157499
    functionName: sqlite3_wal_checkpoint_v2
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3FindDbName
    - sqlite3SafetyCheckOk
    - sqlite3ApiExit
    - sqlite3_mutex_leave
    - assert
    - sqlite3Error
    - sqlite3Checkpoint
    - sqlite3ErrorWithMsg
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_wal_checkpoint_v2(\n  sqlite3 *db,                    /*
      Database handle */\n  const char *zDb,                /* Name of attached database
      (or NULL) */\n  int eMode,                      /* SQLITE_CHECKPOINT_* value
      */\n  int *pnLog,                     /* OUT: Size of WAL log in frames */\n
      \ int *pnCkpt                     /* OUT: Total number of frames checkpointed
      */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_wal_checkpoint_v2
      Src: /src/nss/lib/sqlite/sqlite3.c:157510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - db
    - zDb
    argTypes:
    - sqlite3*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157511
      start: 157507
    functionDepth: 13
    functionLinenumber: 157507
    functionLinenumberEnd: 157511
    functionName: sqlite3_wal_checkpoint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_wal_checkpoint_v2
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_wal_checkpoint(sqlite3 *db, const char *zDb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:157539,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:157539,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:157540,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:157541,1
    - Dst: sqlite3BtreeCheckpoint
      Src: /src/nss/lib/sqlite/sqlite3.c:157545,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 5
    argNames:
    - db
    - iDb
    - eMode
    - pnLog
    - pnCkpt
    argTypes:
    - sqlite3*
    - int
    - int
    - int*
    - int*
    assertStmts:
    - condition: ( sqlite3_mutex_held(db->mutex) )
      pos:
        line_end: 157538
        line_start: 157538
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !pnLog || *pnLog==-1 )
      pos:
        line_end: 157539
        line_start: 157539
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !pnCkpt || *pnCkpt==-1 )
      pos:
        line_end: 157540
        line_start: 157540
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 157556
      start: 157534
    functionDepth: 5
    functionLinenumber: 157534
    functionLinenumberEnd: 157556
    functionName: sqlite3Checkpoint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - assert
    - sqlite3BtreeCheckpoint
    - sqlite3_mutex_held
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Checkpoint(sqlite3 *db, int iDb, int eMode, int
      *pnLog, int *pnCkpt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:157586,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:157590,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157593
      start: 157578
    functionDepth: 1
    functionLinenumber: 157578
    functionLinenumberEnd: 157593
    functionName: sqlite3TempInMemory
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 3
    functionsReached:
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3TempInMemory(const sqlite3 *db)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ErrStr
      Src: /src/nss/lib/sqlite/sqlite3.c:157602,1
    - Dst: sqlite3SafetyCheckSickOrOk
      Src: /src/nss/lib/sqlite/sqlite3.c:157604,1
    - Dst: sqlite3ErrStr
      Src: /src/nss/lib/sqlite/sqlite3.c:157605,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:157607,1
    - Dst: sqlite3ErrStr
      Src: /src/nss/lib/sqlite/sqlite3.c:157609,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:157611,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:157612,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:157613,1
    - Dst: sqlite3ErrStr
      Src: /src/nss/lib/sqlite/sqlite3.c:157615,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:157618,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts:
    - condition: ( !db->mallocFailed )
      pos:
        line_end: 157612
        line_start: 157612
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 157620
      start: 157599
    functionDepth: 15
    functionLinenumber: 157599
    functionLinenumberEnd: 157620
    functionName: sqlite3_errmsg
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 6
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3ErrStr
    - sqlite3_mutex_leave
    - assert
    - sqlite3SafetyCheckSickOrOk
    - sqlite3_value_text
    - testcase
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *sqlite3_errmsg(sqlite3 *db)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckSickOrOk
      Src: /src/nss/lib/sqlite/sqlite3.c:157641,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:157644,1
    - Dst: sqlite3_value_text16
      Src: /src/nss/lib/sqlite/sqlite3.c:157648,1
    - Dst: sqlite3ErrorWithMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:157650,1
    - Dst: sqlite3ErrStr
      Src: /src/nss/lib/sqlite/sqlite3.c:157650,1
    - Dst: sqlite3_value_text16
      Src: /src/nss/lib/sqlite/sqlite3.c:157651,1
    - Dst: sqlite3OomClear
      Src: /src/nss/lib/sqlite/sqlite3.c:157658,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:157660,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157662
      start: 157627
    functionDepth: 15
    functionLinenumber: 157627
    functionLinenumberEnd: 157662
    functionName: sqlite3_errmsg16
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3ErrStr
    - sqlite3_mutex_leave
    - sqlite3SafetyCheckSickOrOk
    - sqlite3_value_text16
    - sqlite3OomClear
    - sqlite3ErrorWithMsg
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *sqlite3_errmsg16(sqlite3 *db)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckSickOrOk
      Src: /src/nss/lib/sqlite/sqlite3.c:157670,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157677
      start: 157669
    functionDepth: 12
    functionLinenumber: 157669
    functionLinenumberEnd: 157677
    functionName: sqlite3_errcode
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3SafetyCheckSickOrOk
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_errcode(sqlite3 *db)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckSickOrOk
      Src: /src/nss/lib/sqlite/sqlite3.c:157679,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157686
      start: 157678
    functionDepth: 12
    functionLinenumber: 157678
    functionLinenumberEnd: 157686
    functionName: sqlite3_extended_errcode
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3SafetyCheckSickOrOk
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_extended_errcode(sqlite3 *db)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157689
      start: 157687
    functionDepth: 0
    functionLinenumber: 157687
    functionLinenumberEnd: 157689
    functionName: sqlite3_system_errno
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_system_errno(sqlite3 *db)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ErrStr
      Src: /src/nss/lib/sqlite/sqlite3.c:157697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rc
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157698
      start: 157696
    functionDepth: 2
    functionLinenumber: 157696
    functionLinenumberEnd: 157698
    functionName: sqlite3_errstr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ErrStr
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *sqlite3_errstr(int rc)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:157715,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:157715,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:157722,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:157723,1
    - Dst: sqlite3FindCollSeq
      Src: /src/nss/lib/sqlite/sqlite3.c:157735,1
    - Dst: sqlite3ErrorWithMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:157738,1
    - Dst: sqlite3ExpirePreparedStatements
      Src: /src/nss/lib/sqlite/sqlite3.c:157742,1
    - Dst: sqlite3HashFind
      Src: /src/nss/lib/sqlite/sqlite3.c:157751,1
    - Dst: CollSeq*::xDel
      Src: /src/nss/lib/sqlite/sqlite3.c:157757,1
    - Dst: sqlite3FindCollSeq
      Src: /src/nss/lib/sqlite/sqlite3.c:157765,1
    - Dst: sqlite3Error
      Src: /src/nss/lib/sqlite/sqlite3.c:157771,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 4
    argNames:
    - db
    - zName
    - enc
    - pCtx
    argTypes:
    - sqlite3*
    - char*
    - u8
    - void*
    assertStmts:
    - condition: ( sqlite3_mutex_held(db->mutex) )
      pos:
        line_end: 157714
        line_start: 157714
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 157773
      start: 157704
    functionDepth: 10
    functionLinenumber: 157704
    functionLinenumberEnd: 157773
    functionName: createCollation
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - CollSeq*::xDel
    - sqlite3ExpirePreparedStatements
    - assert
    - sqlite3Error
    - sqlite3HashFind
    - sqlite3FindCollSeq
    - sqlite3ErrorWithMsg
    - sqlite3_mutex_held
    - testcase
    linkageType: ''
    returnType: int
    signature: "int createCollation(\n  sqlite3* db,\n  const char *zName, \n  u8
      enc,\n  void* pCtx,\n  int(*xCompare)(void*,int,const void*,int,const void*),\n
      \ void(*xDel)(void*)\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/nss/lib/sqlite/sqlite3.c:157848,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:157859,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:157860,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:157861,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:157862,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:157863,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:157864,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:157865,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:157866,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:157867,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:157869,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:157870,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:157871,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:157872,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 3
    argNames:
    - db
    - limitId
    - newLimit
    argTypes:
    - sqlite3*
    - int
    - int
    assertStmts:
    - condition: ( aHardLimit[SQLITE_LIMIT_SQL_LENGTH]==SQLITE_MAX_SQL_LENGTH )
      pos:
        line_end: 157859
        line_start: 157859
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( aHardLimit[SQLITE_LIMIT_COLUMN]==SQLITE_MAX_COLUMN )
      pos:
        line_end: 157860
        line_start: 157860
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( aHardLimit[SQLITE_LIMIT_EXPR_DEPTH]==SQLITE_MAX_EXPR_DEPTH )
      pos:
        line_end: 157861
        line_start: 157861
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( aHardLimit[SQLITE_LIMIT_LENGTH]==SQLITE_MAX_LENGTH )
      pos:
        line_end: 157858
        line_start: 157858
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( aHardLimit[SQLITE_LIMIT_COMPOUND_SELECT]==SQLITE_MAX_COMPOUND_SELECT)
      pos:
        line_end: 157862
        line_start: 157862
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( aHardLimit[SQLITE_LIMIT_VDBE_OP]==SQLITE_MAX_VDBE_OP )
      pos:
        line_end: 157863
        line_start: 157863
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( aHardLimit[SQLITE_LIMIT_FUNCTION_ARG]==SQLITE_MAX_FUNCTION_ARG
        )
      pos:
        line_end: 157864
        line_start: 157864
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( aHardLimit[SQLITE_LIMIT_ATTACHED]==SQLITE_MAX_ATTACHED )
      pos:
        line_end: 157865
        line_start: 157865
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( aHardLimit[SQLITE_LIMIT_LIKE_PATTERN_LENGTH]==\n                                               SQLITE_MAX_LIKE_PATTERN_LENGTH
        )"
      pos:
        line_end: 157867
        line_start: 157866
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( aHardLimit[SQLITE_LIMIT_VARIABLE_NUMBER]==SQLITE_MAX_VARIABLE_NUMBER)
      pos:
        line_end: 157868
        line_start: 157868
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( aHardLimit[SQLITE_LIMIT_TRIGGER_DEPTH]==SQLITE_MAX_TRIGGER_DEPTH
        )
      pos:
        line_end: 157869
        line_start: 157869
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( SQLITE_LIMIT_WORKER_THREADS==(SQLITE_N_LIMIT-1) )
      pos:
        line_end: 157871
        line_start: 157871
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( aHardLimit[SQLITE_LIMIT_WORKER_THREADS]==SQLITE_MAX_WORKER_THREADS
        )
      pos:
        line_end: 157870
        line_start: 157870
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 157886
      start: 157844
    functionDepth: 12
    functionLinenumber: 157844
    functionLinenumberEnd: 157886
    functionName: sqlite3_limit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - sqlite3SafetyCheckOk
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_limit(sqlite3 *db, int limitId, int newLimit)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:157925,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:157927,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:157931,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:157944,1
    - Dst: strncmp
      Src: /src/nss/lib/sqlite/sqlite3.c:157949,1
    - Dst: strncmp
      Src: /src/nss/lib/sqlite/sqlite3.c:157956,1
    - Dst: strncmp
      Src: /src/nss/lib/sqlite/sqlite3.c:157957,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:157965,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:157966,1
    - Dst: sqlite3Isxdigit
      Src: /src/nss/lib/sqlite/sqlite3.c:157988,1
    - Dst: sqlite3Isxdigit
      Src: /src/nss/lib/sqlite/sqlite3.c:157989,1
    - Dst: sqlite3HexToInt
      Src: /src/nss/lib/sqlite/sqlite3.c:157991,1
    - Dst: sqlite3HexToInt
      Src: /src/nss/lib/sqlite/sqlite3.c:157992,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:157994,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:158011,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:158043,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:158045,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:158047,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:158049,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:158060,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:158072,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:158093,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:158093,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:158099,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:158104,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:158117,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:158120,1
    - Dst: sqlite3_vfs_find
      Src: /src/nss/lib/sqlite/sqlite3.c:158127,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:158129,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:158134,1
    CyclomaticComplexity: 69
    EdgeCount: 69
    ICount: 137
    argCount: 6
    argNames:
    - zDefaultVfs
    - zUri
    - pFlags
    - ppVfs
    - pzFile
    - pzErrMsg
    argTypes:
    - char*
    - char*
    - unsigned int*
    - sqlite3_vfs**
    - char**
    - char**
    assertStmts:
    - condition: ( *pzErrMsg==0 )
      pos:
        line_end: 157926
        line_start: 157926
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( octet>=0 && octet<256 )
      pos:
        line_end: 157993
        line_start: 157993
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 158140
      start: 157912
    functionDepth: 10
    functionLinenumber: 157912
    functionLinenumberEnd: 158140
    functionName: sqlite3ParseUri
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - strncmp
    - memcpy
    - sqlite3_malloc64
    - assert
    - sqlite3_mprintf
    - sqlite3Isxdigit
    - sqlite3Strlen30
    - sqlite3HexToInt
    - sqlite3_vfs_find
    - memcmp
    - sqlite3_free
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3ParseUri(\n  const char *zDefaultVfs,        /*
      VFS to use if no \"vfs=xxx\" query option */\n  const char *zUri,               /*
      Nul-terminated URI to parse */\n  unsigned int *pFlags,           /* IN/OUT:
      SQLITE_OPEN_XXX flags */\n  sqlite3_vfs **ppVfs,            /* OUT: VFS to use
      */ \n  char **pzFile,                  /* OUT: Filename component of URI */\n
      \ char **pzErrMsg                 /* OUT: Error message (if rc!=SQLITE_OK) */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_uri_parameter
      Src: /src/nss/lib/sqlite/sqlite3.c:158154,1
    - Dst: sqlite3Isxdigit
      Src: /src/nss/lib/sqlite/sqlite3.c:158158,1
    - Dst: sqlite3HexToInt
      Src: /src/nss/lib/sqlite/sqlite3.c:158159,1
    - Dst: sqlite3_key_v2
      Src: /src/nss/lib/sqlite/sqlite3.c:158162,1
    - Dst: sqlite3_uri_parameter
      Src: /src/nss/lib/sqlite/sqlite3.c:158164,1
    - Dst: sqlite3_key_v2
      Src: /src/nss/lib/sqlite/sqlite3.c:158165,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:158165,1
    - Dst: sqlite3_uri_parameter
      Src: /src/nss/lib/sqlite/sqlite3.c:158167,1
    - Dst: sqlite3_key_v2
      Src: /src/nss/lib/sqlite/sqlite3.c:158168,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - db
    - zDb
    - zUri
    argTypes:
    - sqlite3*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158173
      start: 158148
    functionDepth: 1
    functionLinenumber: 158148
    functionLinenumberEnd: 158173
    functionName: sqlite3CodecQueryParameters
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_uri_parameter
    - sqlite3Isxdigit
    - sqlite3Strlen30
    - sqlite3HexToInt
    - sqlite3_key_v2
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3CodecQueryParameters(\n  sqlite3 *db,           /*
      Database connection */\n  const char *zDb,       /* Which schema is being created/attached
      */\n  const char *zUri       /* URI filename */\n)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_initialize
      Src: /src/nss/lib/sqlite/sqlite3.c:158199,1
    - Dst: sqlite3MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:158243,1
    - Dst: sqlite3MutexAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:158250,1
    - Dst: if
      Src: /src/nss/lib/sqlite/sqlite3.c:158251,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:158252,1
    - Dst: sqlite3MutexWarnOnContention
      Src: /src/nss/lib/sqlite/sqlite3.c:158257,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 4
    argNames:
    - zFilename
    - ppDb
    - flags
    - zVfs
    argTypes:
    - char*
    - sqlite3**
    - unsigned int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158259
      start: 158182
    functionDepth: 6
    functionLinenumber: 158182
    functionLinenumberEnd: 158259
    functionName: openDatabase
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_initialize
    - sqlite3MutexWarnOnContention
    - sqlite3MallocZero
    - if
    - sqlite3MutexAlloc
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int openDatabase(\n  const char *zFilename, /* Database filename UTF-8
      encoded */\n  sqlite3 **ppDb,        /* OUT: Returned database handle */\n  unsigned
      int flags,    /* Operational flags */\n  const char *zVfs       /* Name of the
      VFS to use */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: openDatabase
      Src: /src/nss/lib/sqlite/sqlite3.c:158563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - zFilename
    - ppDb
    argTypes:
    - char*
    - sqlite3**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158565
      start: 158559
    functionDepth: 7
    functionLinenumber: 158559
    functionLinenumberEnd: 158565
    functionName: sqlite3_open
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - openDatabase
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_open(\n  const char *zFilename, \n  sqlite3 **ppDb
      \n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: openDatabase
      Src: /src/nss/lib/sqlite/sqlite3.c:158572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - filename
    - ppDb
    - flags
    - zVfs
    argTypes:
    - char*
    - sqlite3**
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158573
      start: 158566
    functionDepth: 7
    functionLinenumber: 158566
    functionLinenumberEnd: 158573
    functionName: sqlite3_open_v2
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - openDatabase
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_open_v2(\n  const char *filename,   /* Database
      filename (UTF-8) */\n  sqlite3 **ppDb,         /* OUT: SQLite db handle */\n
      \ int flags,              /* Flags */\n  const char *zVfs        /* Name of
      VFS module to use */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_initialize
      Src: /src/nss/lib/sqlite/sqlite3.c:158592,1
    - Dst: sqlite3ValueNew
      Src: /src/nss/lib/sqlite/sqlite3.c:158596,1
    - Dst: sqlite3ValueSetStr
      Src: /src/nss/lib/sqlite/sqlite3.c:158597,1
    - Dst: sqlite3ValueText
      Src: /src/nss/lib/sqlite/sqlite3.c:158598,1
    - Dst: openDatabase
      Src: /src/nss/lib/sqlite/sqlite3.c:158600,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:158602,1
    - Dst: DbHasProperty
      Src: /src/nss/lib/sqlite/sqlite3.c:158603,1
    - Dst: SCHEMA_ENC
      Src: /src/nss/lib/sqlite/sqlite3.c:158604,1
    - Dst: ENC
      Src: /src/nss/lib/sqlite/sqlite3.c:158604,1
    - Dst: sqlite3ValueFree
      Src: /src/nss/lib/sqlite/sqlite3.c:158609,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - zFilename
    - ppDb
    argTypes:
    - void*
    - sqlite3**
    assertStmts:
    - condition: ( *ppDb || rc==SQLITE_NOMEM )
      pos:
        line_end: 158601
        line_start: 158601
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 158612
      start: 158579
    functionDepth: 14
    functionLinenumber: 158579
    functionLinenumberEnd: 158612
    functionName: sqlite3_open16
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_initialize
    - SCHEMA_ENC
    - sqlite3ValueText
    - openDatabase
    - assert
    - sqlite3ValueFree
    - ENC
    - DbHasProperty
    - sqlite3ValueSetStr
    - sqlite3ValueNew
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_open16(\n  const void *zFilename, \n  sqlite3 **ppDb\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_create_collation_v2
      Src: /src/nss/lib/sqlite/sqlite3.c:158625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - db
    - zName
    - enc
    - pCtx
    argTypes:
    - sqlite3*
    - char*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158626
      start: 158618
    functionDepth: 1
    functionLinenumber: 158618
    functionLinenumberEnd: 158626
    functionName: sqlite3_create_collation
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_create_collation_v2
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_create_collation(\n  sqlite3* db, \n  const char
      *zName, \n  int enc, \n  void* pCtx,\n  int(*xCompare)(void*,int,const void*,int,const
      void*)\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/nss/lib/sqlite/sqlite3.c:158642,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:158644,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:158645,1
    - Dst: createCollation
      Src: /src/nss/lib/sqlite/sqlite3.c:158646,1
    - Dst: sqlite3ApiExit
      Src: /src/nss/lib/sqlite/sqlite3.c:158647,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:158648,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - db
    - zName
    - enc
    - pCtx
    argTypes:
    - sqlite3*
    - char*
    - int
    - void*
    assertStmts:
    - condition: ( !db->mallocFailed )
      pos:
        line_end: 158644
        line_start: 158644
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 158650
      start: 158631
    functionDepth: 12
    functionLinenumber: 158631
    functionLinenumberEnd: 158650
    functionName: sqlite3_create_collation_v2
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3SafetyCheckOk
    - sqlite3ApiExit
    - sqlite3_mutex_leave
    - assert
    - createCollation
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_create_collation_v2(\n  sqlite3* db, \n  const
      char *zName, \n  int enc, \n  void* pCtx,\n  int(*xCompare)(void*,int,const
      void*,int,const void*),\n  void(*xDel)(void*)\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/nss/lib/sqlite/sqlite3.c:158667,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:158669,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:158670,1
    - Dst: sqlite3Utf16to8
      Src: /src/nss/lib/sqlite/sqlite3.c:158671,1
    - Dst: createCollation
      Src: /src/nss/lib/sqlite/sqlite3.c:158673,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:158674,1
    - Dst: sqlite3ApiExit
      Src: /src/nss/lib/sqlite/sqlite3.c:158676,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:158677,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - db
    - zName
    - enc
    - pCtx
    argTypes:
    - sqlite3*
    - void*
    - int
    - void*
    assertStmts:
    - condition: ( !db->mallocFailed )
      pos:
        line_end: 158669
        line_start: 158669
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 158679
      start: 158656
    functionDepth: 12
    functionLinenumber: 158656
    functionLinenumberEnd: 158679
    functionName: sqlite3_create_collation16
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3SafetyCheckOk
    - sqlite3DbFree
    - sqlite3ApiExit
    - sqlite3_mutex_leave
    - sqlite3Utf16to8
    - assert
    - createCollation
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_create_collation16(\n  sqlite3* db, \n  const void
      *zName,\n  int enc, \n  void* pCtx,\n  int(*xCompare)(void*,int,const void*,int,const
      void*)\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/nss/lib/sqlite/sqlite3.c:158692,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:158694,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:158698,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - db
    - pCollNeededArg
    argTypes:
    - sqlite3*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158700
      start: 158686
    functionDepth: 12
    functionLinenumber: 158686
    functionLinenumberEnd: 158700
    functionName: sqlite3_collation_needed
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3_mutex_leave
    - sqlite3SafetyCheckOk
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_collation_needed(\n  sqlite3 *db, \n  void *pCollNeededArg,
      \n  void(*xCollNeeded)(void*,sqlite3*,int eTextRep,const char*)\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/nss/lib/sqlite/sqlite3.c:158713,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:158715,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:158719,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - db
    - pCollNeededArg
    argTypes:
    - sqlite3*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158721
      start: 158707
    functionDepth: 12
    functionLinenumber: 158707
    functionLinenumberEnd: 158721
    functionName: sqlite3_collation_needed16
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3_mutex_leave
    - sqlite3SafetyCheckOk
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_collation_needed16(\n  sqlite3 *db, \n  void *pCollNeededArg,
      \n  void(*xCollNeeded16)(void*,sqlite3*,int eTextRep,const void*)\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158731
      start: 158729
    functionDepth: 0
    functionLinenumber: 158729
    functionLinenumberEnd: 158731
    functionName: sqlite3_global_recover
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_global_recover(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/nss/lib/sqlite/sqlite3.c:158742,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158748
      start: 158740
    functionDepth: 12
    functionLinenumber: 158740
    functionLinenumberEnd: 158748
    functionName: sqlite3_get_autocommit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3SafetyCheckOk
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_get_autocommit(sqlite3 *db)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_log
      Src: /src/nss/lib/sqlite/sqlite3.c:158762,1
    - Dst: sqlite3_sourceid
      Src: /src/nss/lib/sqlite/sqlite3.c:158763,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - iErr
    - lineno
    - zType
    argTypes:
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158765
      start: 158761
    functionDepth: 10
    functionLinenumber: 158761
    functionLinenumberEnd: 158765
    functionName: sqlite3ReportError
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_log
    - sqlite3_sourceid
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ReportError(int iErr, int lineno, const char
      *zType)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:158767,1
    - Dst: sqlite3ReportError
      Src: /src/nss/lib/sqlite/sqlite3.c:158768,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - lineno
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158769
      start: 158766
    functionDepth: 11
    functionLinenumber: 158766
    functionLinenumberEnd: 158769
    functionName: sqlite3CorruptError
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - testcase
    - sqlite3ReportError
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3CorruptError(int lineno)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:158771,1
    - Dst: sqlite3ReportError
      Src: /src/nss/lib/sqlite/sqlite3.c:158772,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - lineno
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158773
      start: 158770
    functionDepth: 11
    functionLinenumber: 158770
    functionLinenumberEnd: 158773
    functionName: sqlite3MisuseError
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - testcase
    - sqlite3ReportError
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3MisuseError(int lineno)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:158775,1
    - Dst: sqlite3ReportError
      Src: /src/nss/lib/sqlite/sqlite3.c:158776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - lineno
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158777
      start: 158774
    functionDepth: 11
    functionLinenumber: 158774
    functionLinenumberEnd: 158777
    functionName: sqlite3CantopenError
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - testcase
    - sqlite3ReportError
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3CantopenError(int lineno)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:158781,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:158782,1
    - Dst: sqlite3ReportError
      Src: /src/nss/lib/sqlite/sqlite3.c:158783,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - lineno
    - pgno
    argTypes:
    - int
    - Pgno
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158784
      start: 158779
    functionDepth: 11
    functionLinenumber: 158779
    functionLinenumberEnd: 158784
    functionName: sqlite3CorruptPgnoError
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - testcase
    - sqlite3ReportError
    - sqlite3_snprintf
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3CorruptPgnoError(int lineno, Pgno pgno)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:158786,1
    - Dst: sqlite3ReportError
      Src: /src/nss/lib/sqlite/sqlite3.c:158787,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - lineno
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158788
      start: 158785
    functionDepth: 11
    functionLinenumber: 158785
    functionLinenumberEnd: 158788
    functionName: sqlite3NomemError
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - testcase
    - sqlite3ReportError
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3NomemError(int lineno)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:158790,1
    - Dst: sqlite3ReportError
      Src: /src/nss/lib/sqlite/sqlite3.c:158791,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - lineno
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158792
      start: 158789
    functionDepth: 11
    functionLinenumber: 158789
    functionLinenumberEnd: 158792
    functionName: sqlite3IoerrnomemError
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - testcase
    - sqlite3ReportError
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3IoerrnomemError(int lineno)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158804
      start: 158803
    functionDepth: 0
    functionLinenumber: 158803
    functionLinenumberEnd: 158804
    functionName: sqlite3_thread_cleanup
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_thread_cleanup(void)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/nss/lib/sqlite/sqlite3.c:158835,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:158841,1
    - Dst: sqlite3BtreeEnterAll
      Src: /src/nss/lib/sqlite/sqlite3.c:158842,1
    - Dst: sqlite3Init
      Src: /src/nss/lib/sqlite/sqlite3.c:158843,1
    - Dst: sqlite3FindTable
      Src: /src/nss/lib/sqlite/sqlite3.c:158849,1
    - Dst: sqlite3StrICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:158861,1
    - Dst: HasRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:158866,1
    - Dst: sqlite3IsRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:158866,1
    - Dst: sqlite3ColumnType
      Src: /src/nss/lib/sqlite/sqlite3.c:158887,1
    - Dst: sqlite3BtreeLeaveAll
      Src: /src/nss/lib/sqlite/sqlite3.c:158901,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:158914,1
    - Dst: sqlite3MPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:158915,1
    - Dst: sqlite3ErrorWithMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:158919,1
    - Dst: sqlite3DbFree
      Src: /src/nss/lib/sqlite/sqlite3.c:158920,1
    - Dst: sqlite3ApiExit
      Src: /src/nss/lib/sqlite/sqlite3.c:158921,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:158922,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 72
    argCount: 9
    argNames:
    - db
    - zDbName
    - zTableName
    - zColumnName
    - pzDataType
    - pzCollSeq
    - pNotNull
    - pPrimaryKey
    - pAutoinc
    argTypes:
    - sqlite3*
    - char*
    - char*
    - char*
    - char**
    - char**
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158924
      start: 158811
    functionDepth: 12
    functionLinenumber: 158811
    functionLinenumberEnd: 158924
    functionName: sqlite3_table_column_metadata
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - HasRowid
    - sqlite3BtreeEnterAll
    - sqlite3MPrintf
    - sqlite3StrICmp
    - sqlite3SafetyCheckOk
    - sqlite3FindTable
    - sqlite3DbFree
    - sqlite3ApiExit
    - sqlite3_mutex_leave
    - sqlite3Init
    - sqlite3BtreeLeaveAll
    - sqlite3ErrorWithMsg
    - sqlite3IsRowid
    - sqlite3ColumnType
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_table_column_metadata(\n  sqlite3 *db,                /*
      Connection handle */\n  const char *zDbName,        /* Database name or NULL
      */\n  const char *zTableName,     /* Table name */\n  const char *zColumnName,
      \   /* Column name */\n  char const **pzDataType,    /* OUTPUT: Declared data
      type */\n  char const **pzCollSeq,     /* OUTPUT: Collation sequence name */\n
      \ int *pNotNull,              /* OUTPUT: True if NOT NULL constraint exists
      */\n  int *pPrimaryKey,           /* OUTPUT: True if column part of PK */\n
      \ int *pAutoinc               /* OUTPUT: True if column is auto-increment */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_vfs_find
      Src: /src/nss/lib/sqlite/sqlite3.c:158932,1
    - Dst: sqlite3OsSleep
      Src: /src/nss/lib/sqlite/sqlite3.c:158938,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ms
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158940
      start: 158929
    functionDepth: 1
    functionLinenumber: 158929
    functionLinenumberEnd: 158940
    functionName: sqlite3_sleep
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_vfs_find
    - sqlite3OsSleep
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_sleep(int ms)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/nss/lib/sqlite/sqlite3.c:158947,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:158949,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:158951,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - db
    - onoff
    argTypes:
    - sqlite3*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158953
      start: 158945
    functionDepth: 12
    functionLinenumber: 158945
    functionLinenumberEnd: 158953
    functionName: sqlite3_extended_result_codes
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3_mutex_leave
    - sqlite3SafetyCheckOk
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_extended_result_codes(sqlite3 *db, int onoff)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/nss/lib/sqlite/sqlite3.c:158963,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:158965,1
    - Dst: sqlite3DbNameToBtree
      Src: /src/nss/lib/sqlite/sqlite3.c:158966,1
    - Dst: sqlite3BtreeEnter
      Src: /src/nss/lib/sqlite/sqlite3.c:158970,1
    - Dst: sqlite3BtreePager
      Src: /src/nss/lib/sqlite/sqlite3.c:158971,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:158972,1
    - Dst: sqlite3PagerFile
      Src: /src/nss/lib/sqlite/sqlite3.c:158973,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:158974,1
    - Dst: sqlite3PagerVfs
      Src: /src/nss/lib/sqlite/sqlite3.c:158979,1
    - Dst: sqlite3PagerJrnlFile
      Src: /src/nss/lib/sqlite/sqlite3.c:158982,1
    - Dst: sqlite3PagerDataVersion
      Src: /src/nss/lib/sqlite/sqlite3.c:158985,1
    - Dst: sqlite3OsFileControl
      Src: /src/nss/lib/sqlite/sqlite3.c:158988,1
    - Dst: sqlite3BtreeLeave
      Src: /src/nss/lib/sqlite/sqlite3.c:158990,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:158992,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 4
    argNames:
    - db
    - zDbName
    - op
    - pArg
    argTypes:
    - sqlite3*
    - char*
    - int
    - void*
    assertStmts:
    - condition: ( pPager!=0 )
      pos:
        line_end: 158971
        line_start: 158971
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( fd!=0 )
      pos:
        line_end: 158973
        line_start: 158973
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 158994
      start: 158958
    functionDepth: 12
    functionLinenumber: 158958
    functionLinenumberEnd: 158994
    functionName: sqlite3_file_control
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 4
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3PagerFile
    - sqlite3PagerDataVersion
    - sqlite3OsFileControl
    - sqlite3SafetyCheckOk
    - sqlite3PagerVfs
    - sqlite3_mutex_leave
    - sqlite3BtreeLeave
    - sqlite3DbNameToBtree
    - assert
    - sqlite3BtreeEnter
    - sqlite3PagerJrnlFile
    - sqlite3BtreePager
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_file_control(sqlite3 *db, const char *zDbName, int
      op, void *pArg)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:159002,1
    - Dst: va_start
      Src: /src/nss/lib/sqlite/sqlite3.c:159005,1
    - Dst: sqlite3PrngSaveState
      Src: /src/nss/lib/sqlite/sqlite3.c:159012,1
    - Dst: sqlite3PrngRestoreState
      Src: /src/nss/lib/sqlite/sqlite3.c:159022,1
    - Dst: sqlite3_randomness
      Src: /src/nss/lib/sqlite/sqlite3.c:159032,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:159045,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:159046,1
    - Dst: sqlite3BitvecBuiltinTest
      Src: /src/nss/lib/sqlite/sqlite3.c:159047,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:159068,1
    - Dst: sqlite3FaultSim
      Src: /src/nss/lib/sqlite/sqlite3.c:159069,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:159083,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:159084,1
    - Dst: sqlite3BenignMallocHooks
      Src: /src/nss/lib/sqlite/sqlite3.c:159085,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:159105,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:159125,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:159125,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:159159,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:159160,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:159186,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:159187,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:159188,1
    - Dst: sqlite3BtreeSetPageSize
      Src: /src/nss/lib/sqlite/sqlite3.c:159189,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:159190,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:159204,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:159215,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:159227,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:159240,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:159250,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:159263,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:159264,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:159271,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:159272,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:159303,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:159304,1
    - Dst: sqlite3FindDbName
      Src: /src/nss/lib/sqlite/sqlite3.c:159305,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:159305,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:159306,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:159307,1
    - Dst: sqlite3ResetAllSchemasOfConnection
      Src: /src/nss/lib/sqlite/sqlite3.c:159309,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:159311,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:159325,1
    - Dst: sqlite3ParserCoverage
      Src: /src/nss/lib/sqlite/sqlite3.c:159326,1
    - Dst: va_arg
      Src: /src/nss/lib/sqlite/sqlite3.c:159342,1
    - Dst: sqlite3ResultIntReal
      Src: /src/nss/lib/sqlite/sqlite3.c:159343,1
    - Dst: va_end
      Src: /src/nss/lib/sqlite/sqlite3.c:159347,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 114
    argCount: 1
    argNames:
    - op
    argTypes:
    - int
    assertStmts:
    - condition: ( /*side-effects-ok*/ (x = va_arg(ap,int))!=0 )
      pos:
        line_end: 159124
        line_start: 159124
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 159350
      start: 158999
    functionDepth: 9
    functionLinenumber: 158999
    functionLinenumberEnd: 159350
    functionName: sqlite3_test_control
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - ALWAYS
    - sqlite3FindDbName
    - UNUSED_PARAMETER
    - sqlite3FaultSim
    - sqlite3ResetAllSchemasOfConnection
    - sqlite3_mutex_leave
    - sqlite3BenignMallocHooks
    - assert
    - va_arg
    - sqlite3_randomness
    - sqlite3ParserCoverage
    - sqlite3PrngSaveState
    - sqlite3ResultIntReal
    - sqlite3PrngRestoreState
    - va_end
    - va_start
    - sqlite3BitvecBuiltinTest
    - sqlite3BtreeSetPageSize
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_test_control(int op, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:159365,1
    - Dst: strcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:159367,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:159368,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:159370,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - zFilename
    - zParam
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159373
      start: 159363
    functionDepth: 1
    functionLinenumber: 159363
    functionLinenumberEnd: 159373
    functionName: sqlite3_uri_parameter
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - strcmp
    - sqlite3Strlen30
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *sqlite3_uri_parameter(const char *zFilename, const char
      *zParam)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_uri_parameter
      Src: /src/nss/lib/sqlite/sqlite3.c:159379,1
    - Dst: sqlite3GetBoolean
      Src: /src/nss/lib/sqlite/sqlite3.c:159381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - zFilename
    - zParam
    - bDflt
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159382
      start: 159378
    functionDepth: 5
    functionLinenumber: 159378
    functionLinenumberEnd: 159382
    functionName: sqlite3_uri_boolean
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 5
    functionsReached:
    - sqlite3_uri_parameter
    - sqlite3GetBoolean
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_uri_boolean(const char *zFilename, const char *zParam,
      int bDflt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_uri_parameter
      Src: /src/nss/lib/sqlite/sqlite3.c:159392,1
    - Dst: sqlite3DecOrHexToI64
      Src: /src/nss/lib/sqlite/sqlite3.c:159394,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - zFilename
    - zParam
    - bDflt
    argTypes:
    - char*
    - char*
    - sqlite3_int64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159398
      start: 159387
    functionDepth: 4
    functionLinenumber: 159387
    functionLinenumberEnd: 159398
    functionName: sqlite3_int64::sqlite3_uri_int64
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3DecOrHexToI64
    - sqlite3_uri_parameter
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_int64 sqlite3_uri_int64(\n  const char *zFilename,
      \   /* Filename as passed to xOpen */\n  const char *zParam,       /* URI parameter
      sought */\n  sqlite3_int64 bDflt       /* return if parameter is missing */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3FindDbName
      Src: /src/nss/lib/sqlite/sqlite3.c:159404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - db
    - zDbName
    argTypes:
    - sqlite3*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159406
      start: 159403
    functionDepth: 3
    functionLinenumber: 159403
    functionLinenumberEnd: 159406
    functionName: sqlite3DbNameToBtree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3FindDbName
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3DbNameToBtree(sqlite3 *db, const char *zDbName)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/nss/lib/sqlite/sqlite3.c:159415,1
    - Dst: sqlite3DbNameToBtree
      Src: /src/nss/lib/sqlite/sqlite3.c:159420,1
    - Dst: sqlite3BtreeGetFilename
      Src: /src/nss/lib/sqlite/sqlite3.c:159421,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - db
    - zDbName
    argTypes:
    - sqlite3*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159422
      start: 159412
    functionDepth: 12
    functionLinenumber: 159412
    functionLinenumberEnd: 159422
    functionName: sqlite3_db_filename
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeGetFilename
    - sqlite3DbNameToBtree
    - sqlite3SafetyCheckOk
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *sqlite3_db_filename(sqlite3 *db, const char *zDbName)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/nss/lib/sqlite/sqlite3.c:159431,1
    - Dst: sqlite3DbNameToBtree
      Src: /src/nss/lib/sqlite/sqlite3.c:159436,1
    - Dst: sqlite3BtreeIsReadonly
      Src: /src/nss/lib/sqlite/sqlite3.c:159437,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - db
    - zDbName
    argTypes:
    - sqlite3*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159438
      start: 159428
    functionDepth: 12
    functionLinenumber: 159428
    functionLinenumberEnd: 159438
    functionName: sqlite3_db_readonly
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeIsReadonly
    - sqlite3DbNameToBtree
    - sqlite3SafetyCheckOk
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_db_readonly(sqlite3 *db, const char *zDbName)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/nss/lib/sqlite/sqlite3.c:159454,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:159458,1
    - Dst: sqlite3FindDbName
      Src: /src/nss/lib/sqlite/sqlite3.c:159461,1
    - Dst: sqlite3BtreeIsInTrans
      Src: /src/nss/lib/sqlite/sqlite3.c:159464,1
    - Dst: sqlite3BtreeBeginTrans
      Src: /src/nss/lib/sqlite/sqlite3.c:159465,1
    - Dst: sqlite3PagerSnapshotGet
      Src: /src/nss/lib/sqlite/sqlite3.c:159467,1
    - Dst: sqlite3BtreePager
      Src: /src/nss/lib/sqlite/sqlite3.c:159467,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:159473,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - db
    - zDb
    - ppSnapshot
    argTypes:
    - sqlite3*
    - char*
    - sqlite3_snapshot**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159476
      start: 159445
    functionDepth: 16
    functionLinenumber: 159445
    functionLinenumberEnd: 159476
    functionName: sqlite3_snapshot_get
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3PagerSnapshotGet
    - sqlite3FindDbName
    - sqlite3SafetyCheckOk
    - sqlite3_mutex_leave
    - sqlite3BtreeIsInTrans
    - sqlite3BtreeBeginTrans
    - sqlite3BtreePager
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_snapshot_get(\n  sqlite3 *db, \n  const char *zDb,\n
      \ sqlite3_snapshot **ppSnapshot\n)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/nss/lib/sqlite/sqlite3.c:159490,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:159494,1
    - Dst: sqlite3FindDbName
      Src: /src/nss/lib/sqlite/sqlite3.c:159497,1
    - Dst: sqlite3BtreeIsInTrans
      Src: /src/nss/lib/sqlite/sqlite3.c:159500,1
    - Dst: sqlite3BtreePager
      Src: /src/nss/lib/sqlite/sqlite3.c:159501,1
    - Dst: sqlite3BtreeIsInReadTrans
      Src: /src/nss/lib/sqlite/sqlite3.c:159503,1
    - Dst: sqlite3PagerSnapshotCheck
      Src: /src/nss/lib/sqlite/sqlite3.c:159505,1
    - Dst: sqlite3BtreeCommit
      Src: /src/nss/lib/sqlite/sqlite3.c:159508,1
    - Dst: sqlite3PagerSnapshotOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:159515,1
    - Dst: sqlite3BtreeBeginTrans
      Src: /src/nss/lib/sqlite/sqlite3.c:159518,1
    - Dst: sqlite3PagerSnapshotOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:159519,1
    - Dst: sqlite3PagerSnapshotUnlock
      Src: /src/nss/lib/sqlite/sqlite3.c:159522,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:159528,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 3
    argNames:
    - db
    - zDb
    - pSnapshot
    argTypes:
    - sqlite3*
    - char*
    - sqlite3_snapshot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159531
      start: 159481
    functionDepth: 22
    functionLinenumber: 159481
    functionLinenumberEnd: 159531
    functionName: sqlite3_snapshot_open
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3FindDbName
    - sqlite3SafetyCheckOk
    - sqlite3_mutex_leave
    - sqlite3BtreeIsInTrans
    - sqlite3PagerSnapshotOpen
    - sqlite3BtreeBeginTrans
    - sqlite3PagerSnapshotUnlock
    - sqlite3BtreeIsInReadTrans
    - sqlite3PagerSnapshotCheck
    - sqlite3BtreePager
    - sqlite3BtreeCommit
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_snapshot_open(\n  sqlite3 *db, \n  const char *zDb,
      \n  sqlite3_snapshot *pSnapshot\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3SafetyCheckOk
      Src: /src/nss/lib/sqlite/sqlite3.c:159543,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:159548,1
    - Dst: sqlite3FindDbName
      Src: /src/nss/lib/sqlite/sqlite3.c:159549,1
    - Dst: sqlite3BtreeIsInReadTrans
      Src: /src/nss/lib/sqlite/sqlite3.c:159552,1
    - Dst: sqlite3BtreeBeginTrans
      Src: /src/nss/lib/sqlite/sqlite3.c:159553,1
    - Dst: sqlite3PagerSnapshotRecover
      Src: /src/nss/lib/sqlite/sqlite3.c:159555,1
    - Dst: sqlite3BtreePager
      Src: /src/nss/lib/sqlite/sqlite3.c:159555,1
    - Dst: sqlite3BtreeCommit
      Src: /src/nss/lib/sqlite/sqlite3.c:159556,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:159560,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - db
    - zDb
    argTypes:
    - sqlite3*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159563
      start: 159537
    functionDepth: 22
    functionLinenumber: 159537
    functionLinenumberEnd: 159563
    functionName: sqlite3_snapshot_recover
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3FindDbName
    - sqlite3SafetyCheckOk
    - sqlite3_mutex_leave
    - sqlite3BtreeBeginTrans
    - sqlite3PagerSnapshotRecover
    - sqlite3BtreeIsInReadTrans
    - sqlite3BtreePager
    - sqlite3BtreeCommit
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_snapshot_recover(sqlite3 *db, const char *zDb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:159569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pSnapshot
    argTypes:
    - sqlite3_snapshot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159570
      start: 159568
    functionDepth: 3
    functionLinenumber: 159568
    functionLinenumberEnd: 159570
    functionName: sqlite3_snapshot_free
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_snapshot_free(sqlite3_snapshot *pSnapshot)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3CompileOptions
      Src: /src/nss/lib/sqlite/sqlite3.c:159593,1
    - Dst: sqlite3StrNICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:159595,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:159596,1
    - Dst: sqlite3StrNICmp
      Src: /src/nss/lib/sqlite/sqlite3.c:159601,1
    - Dst: sqlite3IsIdChar
      Src: /src/nss/lib/sqlite/sqlite3.c:159602,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - zOptName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159608
      start: 159581
    functionDepth: 2
    functionLinenumber: 159581
    functionLinenumberEnd: 159608
    functionName: sqlite3_compileoption_used
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3CompileOptions
    - sqlite3IsIdChar
    - sqlite3StrNICmp
    - sqlite3Strlen30
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_compileoption_used(const char *zOptName)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3CompileOptions
      Src: /src/nss/lib/sqlite/sqlite3.c:159617,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - N
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159622
      start: 159614
    functionDepth: 1
    functionLinenumber: 159614
    functionLinenumberEnd: 159622
    functionName: sqlite3_compileoption_get
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3CompileOptions
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *sqlite3_compileoption_get(int N)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159659
      start: 159657
    functionDepth: 0
    functionLinenumber: 159657
    functionLinenumberEnd: 159659
    functionName: assertMutexHeld
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assertMutexHeld()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:159690,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:159695,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:159696,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:159697,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts:
    - condition: ( p->pUnlockConnection || p->pBlockingConnection )
      pos:
        line_end: 159689
        line_start: 159689
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( db==0 || p->pUnlockConnection!=db )
      pos:
        line_end: 159695
        line_start: 159695
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( db==0 || p->pBlockingConnection!=db )
      pos:
        line_end: 159696
        line_start: 159696
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p2->xUnlockNotify==p->xUnlockNotify || !seen )
      pos:
        line_end: 159694
        line_start: 159694
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 159700
      start: 159683
    functionDepth: 0
    functionLinenumber: 159683
    functionLinenumberEnd: 159700
    functionName: checkListProperties
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void checkListProperties(sqlite3 *db)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assertMutexHeld
      Src: /src/nss/lib/sqlite/sqlite3.c:159711,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159718
      start: 159709
    functionDepth: 1
    functionLinenumber: 159709
    functionLinenumberEnd: 159718
    functionName: removeFromBlockedList
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assertMutexHeld
    linkageType: ''
    returnType: void
    signature: void removeFromBlockedList(sqlite3 *db)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assertMutexHeld
      Src: /src/nss/lib/sqlite/sqlite3.c:159726,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159734
      start: 159724
    functionDepth: 1
    functionLinenumber: 159724
    functionLinenumberEnd: 159734
    functionName: addToBlockedList
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assertMutexHeld
    linkageType: ''
    returnType: void
    signature: void addToBlockedList(sqlite3 *db)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:159740,1
    - Dst: sqlite3MutexAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:159740,1
    - Dst: checkListProperties
      Src: /src/nss/lib/sqlite/sqlite3.c:159741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159742
      start: 159739
    functionDepth: 1
    functionLinenumber: 159739
    functionLinenumberEnd: 159742
    functionName: enterMutex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3MutexAlloc
    - checkListProperties
    linkageType: ''
    returnType: void
    signature: void enterMutex(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assertMutexHeld
      Src: /src/nss/lib/sqlite/sqlite3.c:159748,1
    - Dst: checkListProperties
      Src: /src/nss/lib/sqlite/sqlite3.c:159749,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:159750,1
    - Dst: sqlite3MutexAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:159750,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159751
      start: 159747
    functionDepth: 1
    functionLinenumber: 159747
    functionLinenumberEnd: 159751
    functionName: leaveMutex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3MutexAlloc
    - checkListProperties
    - sqlite3_mutex_leave
    - assertMutexHeld
    linkageType: ''
    returnType: void
    signature: void leaveMutex(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:159781,1
    - Dst: enterMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:159782,1
    - Dst: removeFromBlockedList
      Src: /src/nss/lib/sqlite/sqlite3.c:159785,1
    - Dst: xNotify
      Src: /src/nss/lib/sqlite/sqlite3.c:159795,1
    - Dst: removeFromBlockedList
      Src: /src/nss/lib/sqlite/sqlite3.c:159806,1
    - Dst: addToBlockedList
      Src: /src/nss/lib/sqlite/sqlite3.c:159807,1
    - Dst: leaveMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:159811,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:159812,1
    - Dst: sqlite3ErrorWithMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:159813,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:159814,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 2
    argNames:
    - db
    - pArg
    argTypes:
    - sqlite3*
    - void*
    assertStmts:
    - condition: ( !db->mallocFailed )
      pos:
        line_end: 159811
        line_start: 159811
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 159816
      start: 159774
    functionDepth: 10
    functionLinenumber: 159774
    functionLinenumberEnd: 159816
    functionName: sqlite3_unlock_notify
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - xNotify
    - removeFromBlockedList
    - addToBlockedList
    - sqlite3_mutex_leave
    - enterMutex
    - assert
    - leaveMutex
    - sqlite3ErrorWithMsg
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_unlock_notify(\n  sqlite3 *db,\n  void (*xNotify)(void
      **, int),\n  void *pArg\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: enterMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:159825,1
    - Dst: addToBlockedList
      Src: /src/nss/lib/sqlite/sqlite3.c:159827,1
    - Dst: leaveMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:159830,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - db
    - pBlocker
    argTypes:
    - sqlite3*
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159831
      start: 159824
    functionDepth: 2
    functionLinenumber: 159824
    functionLinenumberEnd: 159831
    functionName: sqlite3ConnectionBlocked
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - addToBlockedList
    - enterMutex
    - leaveMutex
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ConnectionBlocked(sqlite3 *db, sqlite3 *pBlocker)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: enterMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:159861,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:159874,1
    - Dst: xUnlockNotify
      Src: /src/nss/lib/sqlite/sqlite3.c:159876,1
    - Dst: sqlite3BeginBenignMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:159880,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:159881,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:159882,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:159882,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:159883,1
    - Dst: sqlite3MallocSize
      Src: /src/nss/lib/sqlite/sqlite3.c:159884,1
    - Dst: sqlite3Malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:159887,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:159889,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:159890,1
    - Dst: xUnlockNotify
      Src: /src/nss/lib/sqlite/sqlite3.c:159917,1
    - Dst: sqlite3EndBenignMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:159921,1
    - Dst: xUnlockNotify
      Src: /src/nss/lib/sqlite/sqlite3.c:159941,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:159943,1
    - Dst: leaveMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:159944,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 45
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts:
    - condition: ( p->xUnlockNotify )
      pos:
        line_end: 159873
        line_start: 159873
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( aArg==aDyn || (aDyn==0 && aArg==aStatic) )
      pos:
        line_end: 159880
        line_start: 159880
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nArg<=(int)ArraySize(aStatic) || aArg==aDyn )
      pos:
        line_end: 159881
        line_start: 159881
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 159945
      start: 159852
    functionDepth: 5
    functionLinenumber: 159852
    functionLinenumberEnd: 159945
    functionName: sqlite3ConnectionUnlocked
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - memcpy
    - sqlite3EndBenignMalloc
    - sqlite3BeginBenignMalloc
    - ArraySize
    - enterMutex
    - sqlite3MallocSize
    - sqlite3Malloc
    - assert
    - xUnlockNotify
    - leaveMutex
    - sqlite3_free
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ConnectionUnlocked(sqlite3 *db)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ConnectionUnlocked
      Src: /src/nss/lib/sqlite/sqlite3.c:159952,1
    - Dst: enterMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:159953,1
    - Dst: removeFromBlockedList
      Src: /src/nss/lib/sqlite/sqlite3.c:159954,1
    - Dst: checkListProperties
      Src: /src/nss/lib/sqlite/sqlite3.c:159955,1
    - Dst: leaveMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:159956,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159957
      start: 159951
    functionDepth: 6
    functionLinenumber: 159951
    functionLinenumberEnd: 159957
    functionName: sqlite3ConnectionClosed
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - removeFromBlockedList
    - sqlite3ConnectionUnlocked
    - enterMutex
    - leaveMutex
    - checkListProperties
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3ConnectionClosed(sqlite3 *db)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - H
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160567
      start: 160566
    functionDepth: 0
    functionLinenumber: 160566
    functionLinenumberEnd: 160567
    functionName: fts3HashFirst
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fts3HashFirst(H)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - E
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160568
      start: 160567
    functionDepth: 0
    functionLinenumber: 160567
    functionLinenumberEnd: 160568
    functionName: fts3HashNext
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fts3HashNext(E)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - E
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160569
      start: 160568
    functionDepth: 0
    functionLinenumber: 160568
    functionLinenumberEnd: 160569
    functionName: fts3HashData
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fts3HashData(E)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - E
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160570
      start: 160569
    functionDepth: 0
    functionLinenumber: 160569
    functionLinenumberEnd: 160570
    functionName: fts3HashKey
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fts3HashKey(E)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - E
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160571
      start: 160570
    functionDepth: 0
    functionLinenumber: 160570
    functionLinenumberEnd: 160571
    functionName: fts3HashKeysize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fts3HashKeysize(E)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - H
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160576
      start: 160575
    functionDepth: 0
    functionLinenumber: 160575
    functionLinenumberEnd: 160576
    functionName: fts3HashCount
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fts3HashCount(H)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160617
      start: 160616
    functionDepth: 0
    functionLinenumber: 160616
    functionLinenumberEnd: 160617
    functionName: SizeofArray
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SizeofArray(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160621
      start: 160620
    functionDepth: 0
    functionLinenumber: 160620
    functionLinenumberEnd: 160621
    functionName: MIN
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 109
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIN(x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160624
      start: 160623
    functionDepth: 0
    functionLinenumber: 160623
    functionLinenumberEnd: 160624
    functionName: MAX
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 38
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAX(x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160674
      start: 160673
    functionDepth: 0
    functionLinenumber: 160673
    functionLinenumberEnd: 160674
    functionName: assert_fts3_nc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_fts3_nc(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160676
      start: 160675
    functionDepth: 0
    functionLinenumber: 160675
    functionLinenumberEnd: 160676
    functionName: assert_fts3_nc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_fts3_nc(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160690
      start: 160689
    functionDepth: 0
    functionLinenumber: 160689
    functionLinenumberEnd: 160690
    functionName: ALWAYS
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 62
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALWAYS(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160691
      start: 160690
    functionDepth: 0
    functionLinenumber: 160690
    functionLinenumberEnd: 160691
    functionName: NEVER
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 46
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEVER(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160693
      start: 160692
    functionDepth: 0
    functionLinenumber: 160692
    functionLinenumberEnd: 160693
    functionName: ALWAYS
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 62
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALWAYS(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160694
      start: 160693
    functionDepth: 0
    functionLinenumber: 160693
    functionLinenumberEnd: 160694
    functionName: NEVER
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 46
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEVER(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160698
      start: 160697
    functionDepth: 0
    functionLinenumber: 160697
    functionLinenumberEnd: 160698
    functionName: ALWAYS
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 62
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALWAYS(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160699
      start: 160698
    functionDepth: 0
    functionLinenumber: 160698
    functionLinenumberEnd: 160699
    functionName: NEVER
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 46
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEVER(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160714
      start: 160713
    functionDepth: 0
    functionLinenumber: 160713
    functionLinenumberEnd: 160714
    functionName: UNUSED_PARAMETER
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 132
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNUSED_PARAMETER(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160729
      start: 160728
    functionDepth: 0
    functionLinenumber: 160728
    functionLinenumberEnd: 160729
    functionName: TESTONLY
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TESTONLY(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161036
      start: 161035
    functionDepth: 0
    functionLinenumber: 161035
    functionLinenumberEnd: 161036
    functionName: sqlite3Fts3DeferToken
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3Fts3DeferToken(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161037
      start: 161036
    functionDepth: 0
    functionLinenumber: 161036
    functionLinenumberEnd: 161037
    functionName: sqlite3Fts3CacheDeferredDoclists
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3Fts3CacheDeferredDoclists(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161039
      start: 161038
    functionDepth: 0
    functionLinenumber: 161038
    functionLinenumberEnd: 161039
    functionName: sqlite3Fts3DeferredTokenList
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3Fts3DeferredTokenList(x,y,z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - p
    - ','
    - piVal
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161099
      start: 161096
    functionDepth: 0
    functionLinenumber: 161096
    functionLinenumberEnd: 161099
    functionName: fts3GetVarint32
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fts3GetVarint32(p, piVal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:161197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - b
    argTypes:
    - int
    assertStmts:
    - condition: ( b )
      pos:
        line_end: 161196
        line_start: 161196
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 161197
      start: 161197
    functionDepth: 0
    functionLinenumber: 161197
    functionLinenumberEnd: 161197
    functionName: sqlite3Fts3Always
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3Always(int b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:161198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - b
    argTypes:
    - int
    assertStmts:
    - condition: ( !b )
      pos:
        line_end: 161197
        line_start: 161197
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 161198
      start: 161198
    functionDepth: 0
    functionLinenumber: 161198
    functionLinenumberEnd: 161198
    functionName: sqlite3Fts3Never
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3Never(int b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:161223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - p
    - v
    argTypes:
    - char*
    - sqlite_int64
    assertStmts:
    - condition: ( q - (unsigned char *)p <= FTS3_VARINT_MAX )
      pos:
        line_end: 161222
        line_start: 161222
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 161225
      start: 161215
    functionDepth: 0
    functionLinenumber: 161215
    functionLinenumberEnd: 161225
    functionName: sqlite3Fts3PutVarint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3PutVarint(char *p, sqlite_int64 v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - v
    - ','
    - ptr
    - ','
    - shift
    - ','
    - mask1
    - ','
    - mask2
    - ','
    - var
    - ','
    - ret
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161230
      start: 161227
    functionDepth: 0
    functionLinenumber: 161227
    functionLinenumberEnd: 161230
    functionName: GETVARINT_STEP
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETVARINT_STEP(v, ptr, shift, mask1, mask2, var, ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - v
    - ','
    - ptr
    - ','
    - shift
    - ','
    - mask1
    - ','
    - mask2
    - ','
    - var
    - ','
    - ret
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161233
      start: 161230
    functionDepth: 0
    functionLinenumber: 161230
    functionLinenumberEnd: 161233
    functionName: GETVARINT_INIT
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GETVARINT_INIT(v, ptr, shift, mask1, mask2, var, ret)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GETVARINT_INIT
      Src: /src/nss/lib/sqlite/sqlite3.c:161246,1
    - Dst: GETVARINT_STEP
      Src: /src/nss/lib/sqlite/sqlite3.c:161247,1
    - Dst: GETVARINT_STEP
      Src: /src/nss/lib/sqlite/sqlite3.c:161248,1
    - Dst: GETVARINT_STEP
      Src: /src/nss/lib/sqlite/sqlite3.c:161249,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - pBuf
    - v
    argTypes:
    - char*
    - sqlite_int64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161259
      start: 161239
    functionDepth: 1
    functionLinenumber: 161239
    functionLinenumberEnd: 161259
    functionName: sqlite3Fts3GetVarint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - GETVARINT_STEP
    - GETVARINT_INIT
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3GetVarint(const char *pBuf, sqlite_int64
      *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GETVARINT_INIT
      Src: /src/nss/lib/sqlite/sqlite3.c:161270,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:161273,1
    - Dst: GETVARINT_STEP
      Src: /src/nss/lib/sqlite/sqlite3.c:161276,1
    - Dst: GETVARINT_STEP
      Src: /src/nss/lib/sqlite/sqlite3.c:161277,1
    - Dst: GETVARINT_STEP
      Src: /src/nss/lib/sqlite/sqlite3.c:161278,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:161281,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:161282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - p
    - pi
    argTypes:
    - char*
    - int*
    assertStmts:
    - condition: ( a & 0x80 )
      pos:
        line_end: 161272
        line_start: 161272
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( 0==(a & 0x80000000) )
      pos:
        line_end: 161280
        line_start: 161280
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( *pi>=0 )
      pos:
        line_end: 161281
        line_start: 161281
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 161284
      start: 161265
    functionDepth: 1
    functionLinenumber: 161265
    functionLinenumberEnd: 161284
    functionName: sqlite3Fts3GetVarint32
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - GETVARINT_INIT
    - GETVARINT_STEP
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3GetVarint32(const char *p, int *pi)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - sqlite3_uint64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161296
      start: 161289
    functionDepth: 0
    functionLinenumber: 161289
    functionLinenumberEnd: 161296
    functionName: sqlite3Fts3VarintLen
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3VarintLen(sqlite3_uint64 v)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 1
    argNames:
    - z
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161334
      start: 161312
    functionDepth: 0
    functionLinenumber: 161312
    functionLinenumberEnd: 161334
    functionName: sqlite3Fts3Dequote
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3Dequote(char *z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:161343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pp
    - pVal
    argTypes:
    - char**
    - sqlite3_int64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161345
      start: 161341
    functionDepth: 2
    functionLinenumber: 161341
    functionLinenumberEnd: 161345
    functionName: fts3GetDeltaVarint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts3GetVarint
    linkageType: ''
    returnType: void
    signature: void fts3GetDeltaVarint(char **pp, sqlite3_int64 *pVal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:161371,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - pp
    - pStart
    - pVal
    argTypes:
    - char**
    - char*
    - sqlite3_int64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161373
      start: 161356
    functionDepth: 2
    functionLinenumber: 161356
    functionLinenumberEnd: 161373
    functionName: fts3GetReverseVarint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts3GetVarint
    linkageType: ''
    returnType: void
    signature: "void fts3GetReverseVarint(\n  char **pp, \n  char *pStart, \n  sqlite3_int64
      *pVal\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:161382,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:161383,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:161386,1
    - Dst: SizeofArray
      Src: /src/nss/lib/sqlite/sqlite3.c:161387,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:161388,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:161390,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:161391,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:161392,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:161393,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:161394,1
    - Dst: Fts3Table*::pTokenizer::pModule::xDestroy
      Src: /src/nss/lib/sqlite/sqlite3.c:161397,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:161399,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - pVtab
    argTypes:
    - sqlite3_vtab*
    assertStmts:
    - condition: ( p->nPendingData==0 )
      pos:
        line_end: 161381
        line_start: 161381
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->pSegments==0 )
      pos:
        line_end: 161382
        line_start: 161382
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 161401
      start: 161378
    functionDepth: 26
    functionLinenumber: 161378
    functionLinenumberEnd: 161401
    functionName: fts3DisconnectMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - Fts3Table*::pTokenizer::pModule::xDestroy
    - assert
    - SizeofArray
    - sqlite3_finalize
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int fts3DisconnectMethod(sqlite3_vtab *pVtab)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:161408,1
    - Dst: va_start
      Src: /src/nss/lib/sqlite/sqlite3.c:161409,1
    - Dst: sqlite3_vmprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:161410,1
    - Dst: va_end
      Src: /src/nss/lib/sqlite/sqlite3.c:161411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - pzErr
    - zFormat
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161412
      start: 161406
    functionDepth: 9
    functionLinenumber: 161406
    functionLinenumberEnd: 161412
    functionName: sqlite3Fts3ErrMsg
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - va_start
    - sqlite3_vmprintf
    - sqlite3_free
    - va_end
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3ErrMsg(char **pzErr, const char *zFormat,
      ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/nss/lib/sqlite/sqlite3.c:161430,1
    - Dst: sqlite3_vmprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:161431,1
    - Dst: va_end
      Src: /src/nss/lib/sqlite/sqlite3.c:161432,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/sqlite/sqlite3.c:161436,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:161437,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - pRc
    - db
    - zFormat
    argTypes:
    - int*
    - sqlite3*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161439
      start: 161421
    functionDepth: 28
    functionLinenumber: 161421
    functionLinenumberEnd: 161439
    functionName: fts3DbExec
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_vmprintf
    - va_end
    - va_start
    - sqlite3_exec
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: "void fts3DbExec(\n  int *pRc,              /* Success code */\n  sqlite3
      *db,           /* Database in which to run SQL */\n  const char *zFormat,   /*
      Format string for SQL */\n  ...                    /* Arguments to the format
      string */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts3DbExec
      Src: /src/nss/lib/sqlite/sqlite3.c:161451,1
    - Dst: fts3DisconnectMethod
      Src: /src/nss/lib/sqlite/sqlite3.c:161468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pVtab
    argTypes:
    - sqlite3_vtab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161469
      start: 161444
    functionDepth: 29
    functionLinenumber: 161444
    functionLinenumberEnd: 161469
    functionName: fts3DestroyMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3DbExec
    - fts3DisconnectMethod
    linkageType: ''
    returnType: int
    signature: int fts3DestroyMethod(sqlite3_vtab *pVtab)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_vtab_config
      Src: /src/nss/lib/sqlite/sqlite3.c:161490,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:161493,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:161495,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:161499,1
    - Dst: sqlite3_declare_vtab
      Src: /src/nss/lib/sqlite/sqlite3.c:161506,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:161509,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:161510,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - pRc
    - p
    argTypes:
    - int*
    - Fts3Table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161513
      start: 161481
    functionDepth: 26
    functionLinenumber: 161481
    functionLinenumberEnd: 161513
    functionName: fts3DeclareVtab
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mprintf
    - sqlite3_declare_vtab
    - sqlite3_free
    - sqlite3_vtab_config
    linkageType: ''
    returnType: void
    signature: void fts3DeclareVtab(int *pRc, Fts3Table *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fts3DbExec
      Src: /src/nss/lib/sqlite/sqlite3.c:161519,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pRc
    - p
    argTypes:
    - int*
    - Fts3Table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161525
      start: 161518
    functionDepth: 29
    functionLinenumber: 161518
    functionLinenumberEnd: 161525
    functionName: sqlite3Fts3CreateStatTable
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3DbExec
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3CreateStatTable(int *pRc, Fts3Table *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:161546,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:161549,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:161552,1
    - Dst: fts3DbExec
      Src: /src/nss/lib/sqlite/sqlite3.c:161557,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:161561,1
    - Dst: fts3DbExec
      Src: /src/nss/lib/sqlite/sqlite3.c:161565,1
    - Dst: fts3DbExec
      Src: /src/nss/lib/sqlite/sqlite3.c:161569,1
    - Dst: fts3DbExec
      Src: /src/nss/lib/sqlite/sqlite3.c:161582,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:161587,1
    - Dst: sqlite3Fts3CreateStatTable
      Src: /src/nss/lib/sqlite/sqlite3.c:161589,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - p
    argTypes:
    - Fts3Table*
    assertStmts:
    - condition: ( p->bHasStat==p->bFts4 )
      pos:
        line_end: 161586
        line_start: 161586
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 161592
      start: 161536
    functionDepth: 30
    functionLinenumber: 161536
    functionLinenumberEnd: 161592
    functionName: fts3CreateTables
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_mprintf
    - fts3DbExec
    - sqlite3_free
    - sqlite3Fts3CreateStatTable
    linkageType: ''
    returnType: int
    signature: int fts3CreateTables(Fts3Table *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:161607,1
    - Dst: sqlite3_prepare
      Src: /src/nss/lib/sqlite/sqlite3.c:161611,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:161613,1
    - Dst: sqlite3_column_int
      Src: /src/nss/lib/sqlite/sqlite3.c:161614,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:161615,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:161621,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:161622,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - pRc
    - p
    argTypes:
    - int*
    - Fts3Table*
    assertStmts:
    - condition: ( p->nPgsz>0 || rc!=SQLITE_OK )
      pos:
        line_end: 161620
        line_start: 161620
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 161625
      start: 161601
    functionDepth: 28
    functionLinenumber: 161601
    functionLinenumberEnd: 161625
    functionName: fts3DatabasePageSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_step
    - sqlite3_prepare
    - assert
    - sqlite3_mprintf
    - sqlite3_finalize
    - sqlite3_free
    - sqlite3_column_int
    linkageType: ''
    returnType: void
    signature: void fts3DatabasePageSize(int *pRc, Fts3Table *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:161649,1
    - Dst: sqlite3Fts3Dequote
      Src: /src/nss/lib/sqlite/sqlite3.c:161651,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - z
    - pnKey
    - pzValue
    argTypes:
    - char*
    - int*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161655
      start: 161635
    functionDepth: 10
    functionLinenumber: 161635
    functionLinenumberEnd: 161655
    functionName: fts3IsSpecialColumn
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mprintf
    - sqlite3Fts3Dequote
    linkageType: ''
    returnType: int
    signature: "int fts3IsSpecialColumn(\n  const char *z, \n  int *pnKey,\n  char
      **pzValue\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/nss/lib/sqlite/sqlite3.c:161669,1
    - Dst: sqlite3_vmprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:161670,1
    - Dst: va_end
      Src: /src/nss/lib/sqlite/sqlite3.c:161671,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:161673,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:161674,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:161678,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - pRc
    - pz
    - zFormat
    argTypes:
    - int*
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161681
      start: 161660
    functionDepth: 10
    functionLinenumber: 161660
    functionLinenumberEnd: 161681
    functionName: fts3Appendf
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_vmprintf
    - va_end
    - sqlite3_mprintf
    - va_start
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: "void fts3Appendf(\n  int *pRc,                       /* IN/OUT: Error
      code */\n  char **pz,                      /* IN/OUT: Pointer to string buffer
      */\n  const char *zFormat,            /* Printf format string to append */\n
      \ ...                             /* Arguments for printf format string */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:161696,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:161697,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - zInput
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161710
      start: 161693
    functionDepth: 6
    functionLinenumber: 161693
    functionLinenumberEnd: 161710
    functionName: fts3QuoteId
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_malloc64
    - strlen
    linkageType: ''
    returnType: char
    signature: char *fts3QuoteId(char const *zInput)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fts3QuoteId
      Src: /src/nss/lib/sqlite/sqlite3.c:161745,1
    - Dst: fts3Appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:161747,1
    - Dst: fts3Appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:161749,1
    - Dst: fts3Appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:161752,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:161754,1
    - Dst: fts3Appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:161756,1
    - Dst: fts3Appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:161758,1
    - Dst: fts3Appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:161761,1
    - Dst: fts3Appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:161764,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - p
    - zFunc
    - pRc
    argTypes:
    - Fts3Table*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161770
      start: 161735
    functionDepth: 11
    functionLinenumber: 161735
    functionLinenumberEnd: 161770
    functionName: fts3ReadExprList
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    - fts3Appendf
    - fts3QuoteId
    linkageType: ''
    returnType: char
    signature: char *fts3ReadExprList(Fts3Table *p, const char *zFunc, int *pRc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fts3QuoteId
      Src: /src/nss/lib/sqlite/sqlite3.c:161801,1
    - Dst: fts3Appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:161803,1
    - Dst: fts3Appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:161805,1
    - Dst: fts3Appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:161808,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:161810,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - p
    - zFunc
    - pRc
    argTypes:
    - Fts3Table*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161812
      start: 161792
    functionDepth: 11
    functionLinenumber: 161792
    functionLinenumberEnd: 161812
    functionName: fts3WriteExprList
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    - fts3Appendf
    - fts3QuoteId
    linkageType: ''
    returnType: char
    signature: char *fts3WriteExprList(Fts3Table *p, const char *zFunc, int *pRc)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - pp
    - pnOut
    argTypes:
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161843
      start: 161827
    functionDepth: 0
    functionLinenumber: 161827
    functionLinenumberEnd: 161843
    functionName: fts3GobbleInt
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fts3GobbleInt(const char **pp, int *pnOut)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:161878,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:161884,1
    - Dst: fts3GobbleInt
      Src: /src/nss/lib/sqlite/sqlite3.c:161890,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:161891,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - zParam
    - pnIndex
    - apIndex
    argTypes:
    - char*
    - int*
    - struct Fts3Index**
    assertStmts:
    - condition: ( nPrefix>=0 )
      pos:
        line_end: 161890
        line_start: 161890
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 161904
      start: 161862
    functionDepth: 6
    functionLinenumber: 161862
    functionLinenumberEnd: 161904
    functionName: fts3PrefixParameter
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - assert
    - fts3GobbleInt
    - sqlite3_malloc64
    linkageType: ''
    returnType: int
    signature: "int fts3PrefixParameter(\n  const char *zParam,             /* ABC
      in prefix=ABC parameter to parse */\n  int *pnIndex,                   /* OUT:
      size of *apIndex[] array */\n  struct Fts3Index **apIndex      /* OUT: Array
      of indexes for this table */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:161944,1
    - Dst: sqlite3_prepare
      Src: /src/nss/lib/sqlite/sqlite3.c:161948,1
    - Dst: sqlite3Fts3ErrMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:161950,1
    - Dst: sqlite3_errmsg
      Src: /src/nss/lib/sqlite/sqlite3.c:161950,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:161953,1
    - Dst: sqlite3_column_count
      Src: /src/nss/lib/sqlite/sqlite3.c:161964,1
    - Dst: sqlite3_column_name
      Src: /src/nss/lib/sqlite/sqlite3.c:161966,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:161967,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:161971,1
    - Dst: sqlite3_column_name
      Src: /src/nss/lib/sqlite/sqlite3.c:161977,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:161978,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:161979,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:161984,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 7
    argNames:
    - db
    - zDb
    - zTbl
    - pazCol
    - pnCol
    - pnStr
    - pzErr
    argTypes:
    - sqlite3*
    - char*
    - char*
    - char***
    - int*
    - int*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161993
      start: 161931
    functionDepth: 28
    functionLinenumber: 161931
    functionLinenumberEnd: 161993
    functionName: fts3ContentColumns
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - sqlite3_malloc64
    - sqlite3_prepare
    - sqlite3_column_count
    - sqlite3_mprintf
    - sqlite3_errmsg
    - sqlite3Fts3ErrMsg
    - sqlite3_column_name
    - sqlite3_finalize
    - sqlite3_free
    - strlen
    linkageType: ''
    returnType: int
    signature: "int fts3ContentColumns(\n  sqlite3 *db,                    /* Database
      handle */\n  const char *zDb,                /* Name of db (i.e. \"main\", \"temp\"
      etc.) */\n  const char *zTbl,               /* Name of content table */\n  const
      char ***pazCol,           /* OUT: Malloc'd array of column names */\n  int *pnCol,
      \                    /* OUT: Size of array *pazCol */\n  int *pnStr,                     /*
      OUT: Bytes of string content */\n  char **pzErr                    /* OUT: error
      message */\n)"
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:162044,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:162044,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:162045,1
    - Dst: sqlite3_strnicmp
      Src: /src/nss/lib/sqlite/sqlite3.c:162045,1
    - Dst: sqlite3_strnicmp
      Src: /src/nss/lib/sqlite/sqlite3.c:162046,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:162049,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:162050,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:162053,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:162055,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:162056,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:162059,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:162084,1
    - Dst: sqlite3_strnicmp
      Src: /src/nss/lib/sqlite/sqlite3.c:162085,1
    - Dst: sqlite3Fts3IsIdChar
      Src: /src/nss/lib/sqlite/sqlite3.c:162086,1
    - Dst: sqlite3Fts3InitTokenizer
      Src: /src/nss/lib/sqlite/sqlite3.c:162088,1
    - Dst: fts3IsSpecialColumn
      Src: /src/nss/lib/sqlite/sqlite3.c:162092,1
    - Dst: SizeofArray
      Src: /src/nss/lib/sqlite/sqlite3.c:162111,1
    - Dst: sqlite3_strnicmp
      Src: /src/nss/lib/sqlite/sqlite3.c:162113,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:162119,1
    - Dst: sqlite3_strnicmp
      Src: /src/nss/lib/sqlite/sqlite3.c:162119,1
    - Dst: sqlite3Fts3ErrMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:162120,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:162127,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:162133,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:162139,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:162145,1
    - Dst: sqlite3_strnicmp
      Src: /src/nss/lib/sqlite/sqlite3.c:162145,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:162146,1
    - Dst: sqlite3_strnicmp
      Src: /src/nss/lib/sqlite/sqlite3.c:162146,1
    - Dst: sqlite3Fts3ErrMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:162148,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:162155,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:162161,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:162162,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:162173,1
    - Dst: SizeofArray
      Src: /src/nss/lib/sqlite/sqlite3.c:162173,1
    - Dst: sqlite3Fts3ErrMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:162174,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:162178,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:162184,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:162197,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:162198,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:162202,1
    - Dst: fts3ContentColumns
      Src: /src/nss/lib/sqlite/sqlite3.c:162204,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:162211,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:162224,1
    - Dst: sqlite3Fts3InitTokenizer
      Src: /src/nss/lib/sqlite/sqlite3.c:162231,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:162234,1
    - Dst: fts3PrefixParameter
      Src: /src/nss/lib/sqlite/sqlite3.c:162236,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:162238,1
    - Dst: sqlite3Fts3ErrMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:162239,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:162251,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:162256,1
    - Dst: TESTONLY
      Src: /src/nss/lib/sqlite/sqlite3.c:162272,1
    - Dst: TESTONLY
      Src: /src/nss/lib/sqlite/sqlite3.c:162273,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:162276,1
    - Dst: fts3HashInit
      Src: /src/nss/lib/sqlite/sqlite3.c:162279,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:162286,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:162289,1
    - Dst: sqlite3Fts3NextToken
      Src: /src/nss/lib/sqlite/sqlite3.c:162296,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:162298,1
    - Dst: sqlite3Fts3Dequote
      Src: /src/nss/lib/sqlite/sqlite3.c:162301,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:162304,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:162309,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:162312,1
    - Dst: sqlite3_strnicmp
      Src: /src/nss/lib/sqlite/sqlite3.c:162313,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:162316,1
    - Dst: sqlite3Fts3ErrMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:162323,1
    - Dst: sqlite3Fts3ErrMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:162331,1
    - Dst: fts3ReadExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:162333,1
    - Dst: fts3WriteExprList
      Src: /src/nss/lib/sqlite/sqlite3.c:162334,1
    - Dst: fts3CreateTables
      Src: /src/nss/lib/sqlite/sqlite3.c:162341,1
    - Dst: fts3DatabasePageSize
      Src: /src/nss/lib/sqlite/sqlite3.c:162353,1
    - Dst: fts3DeclareVtab
      Src: /src/nss/lib/sqlite/sqlite3.c:162357,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:162360,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:162361,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:162362,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:162363,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:162364,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:162365,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:162366,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:162367,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:162368,1
    - Dst: fts3DisconnectMethod
      Src: /src/nss/lib/sqlite/sqlite3.c:162371,1
    - Dst: sqlite3_tokenizer*::pModule::xDestroy
      Src: /src/nss/lib/sqlite/sqlite3.c:162373,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:162376,1
    CyclomaticComplexity: 80
    EdgeCount: 80
    ICount: 242
    argCount: 7
    argNames:
    - isCreate
    - db
    - pAux
    - argc
    - argv
    - ppVTab
    - pzErr
    argTypes:
    - int
    - sqlite3*
    - void*
    - int
    - char**
    - sqlite3_vtab**
    - char**
    assertStmts:
    - condition: ( zCsr <= &((char *)p)[nByte] )
      pos:
        line_end: 162303
        line_start: 162303
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iOpt==SizeofArray(aFts4Opt) )
      pos:
        line_end: 162172
        line_start: 162172
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nString==0 )
      pos:
        line_end: 162223
        line_start: 162223
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTokenizer )
      pos:
        line_end: 162233
        line_start: 162233
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( zPrefix )
      pos:
        line_end: 162237
        line_start: 162237
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( strlen(argv[0])==4 )
      pos:
        line_end: 162043
        line_start: 162043
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( (sqlite3_strnicmp(argv[0], \"fts4\", 4)==0 && isFts4)\n       ||
        (sqlite3_strnicmp(argv[0], \"fts3\", 4)==0 && !isFts4)\n  )"
      pos:
        line_end: 162046
        line_start: 162044
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iOpt==6 )
      pos:
        line_end: 162160
        line_start: 162160
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->pSegments==0 )
      pos:
        line_end: 162375
        line_start: 162375
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 162380
      start: 162006
    functionDepth: 31
    functionLinenumber: 162006
    functionLinenumberEnd: 162380
    functionName: fts3InitVtab
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3PrefixParameter
    - fts3DatabasePageSize
    - SizeofArray
    - sqlite3_stricmp
    - fts3IsSpecialColumn
    - sqlite3Fts3NextToken
    - strlen
    - sqlite3_tokenizer*::pModule::xDestroy
    - memcpy
    - fts3ReadExprList
    - assert
    - memset
    - sqlite3_strnicmp
    - sqlite3_malloc64
    - TESTONLY
    - sqlite3Fts3IsIdChar
    - fts3HashInit
    - fts3ContentColumns
    - sqlite3Fts3Dequote
    - sqlite3Fts3InitTokenizer
    - fts3WriteExprList
    - fts3CreateTables
    - sqlite3Fts3ErrMsg
    - fts3DeclareVtab
    - fts3DisconnectMethod
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int fts3InitVtab(\n  int isCreate,                   /* True for xCreate,
      false for xConnect */\n  sqlite3 *db,                    /* The SQLite database
      connection */\n  void *pAux,                     /* Hash table containing tokenizers
      */\n  int argc,                       /* Number of elements in argv array */\n
      \ const char * const *argv,       /* xCreate/xConnect argument array */\n  sqlite3_vtab
      **ppVTab,          /* Write the resulting vtab structure here */\n  char **pzErr
      \                   /* Write any error message here */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts3InitVtab
      Src: /src/nss/lib/sqlite/sqlite3.c:162394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - db
    - pAux
    - argc
    - argv
    - ppVtab
    - pzErr
    argTypes:
    - sqlite3*
    - void*
    - int
    - char**
    - sqlite3_vtab**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162395
      start: 162386
    functionDepth: 32
    functionLinenumber: 162386
    functionLinenumberEnd: 162395
    functionName: fts3ConnectMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3InitVtab
    linkageType: ''
    returnType: int
    signature: "int fts3ConnectMethod(\n  sqlite3 *db,                    /* Database
      connection */\n  void *pAux,                     /* Pointer to tokenizer hash
      table */\n  int argc,                       /* Number of elements in argv array
      */\n  const char * const *argv,       /* xCreate/xConnect argument array */\n
      \ sqlite3_vtab **ppVtab,          /* OUT: New sqlite3_vtab object */\n  char
      **pzErr                    /* OUT: sqlite3_malloc'd error message */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts3InitVtab
      Src: /src/nss/lib/sqlite/sqlite3.c:162404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - db
    - pAux
    - argc
    - argv
    - ppVtab
    - pzErr
    argTypes:
    - sqlite3*
    - void*
    - int
    - char**
    - sqlite3_vtab**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162405
      start: 162396
    functionDepth: 32
    functionLinenumber: 162396
    functionLinenumberEnd: 162405
    functionName: fts3CreateMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3InitVtab
    linkageType: ''
    returnType: int
    signature: "int fts3CreateMethod(\n  sqlite3 *db,                    /* Database
      connection */\n  void *pAux,                     /* Pointer to tokenizer hash
      table */\n  int argc,                       /* Number of elements in argv array
      */\n  const char * const *argv,       /* xCreate/xConnect argument array */\n
      \ sqlite3_vtab **ppVtab,          /* OUT: New sqlite3_vtab object */\n  char
      **pzErr                    /* OUT: sqlite3_malloc'd error message */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_libversion_number
      Src: /src/nss/lib/sqlite/sqlite3.c:162414,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pIdxInfo
    - nRow
    argTypes:
    - sqlite3_index_info*
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162418
      start: 162412
    functionDepth: 1
    functionLinenumber: 162412
    functionLinenumberEnd: 162418
    functionName: fts3SetEstimatedRows
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_libversion_number
    linkageType: ''
    returnType: void
    signature: void fts3SetEstimatedRows(sqlite3_index_info *pIdxInfo, i64 nRow)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_libversion_number
      Src: /src/nss/lib/sqlite/sqlite3.c:162427,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - pIdxInfo
    argTypes:
    - sqlite3_index_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162431
      start: 162425
    functionDepth: 1
    functionLinenumber: 162425
    functionLinenumberEnd: 162431
    functionName: fts3SetUniqueFlag
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_libversion_number
    linkageType: ''
    returnType: void
    signature: void fts3SetUniqueFlag(sqlite3_index_info *pIdxInfo)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: fts3SetEstimatedRows
      Src: /src/nss/lib/sqlite/sqlite3.c:162469,1
    - Dst: fts3SetUniqueFlag
      Src: /src/nss/lib/sqlite/sqlite3.c:162524,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:162559,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 71
    argCount: 2
    argNames:
    - pVTab
    - pInfo
    argTypes:
    - sqlite3_vtab*
    - sqlite3_index_info*
    assertStmts:
    - condition: ( p->pSegments==0 )
      pos:
        line_end: 162558
        line_start: 162558
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 162561
      start: 162441
    functionDepth: 2
    functionLinenumber: 162441
    functionLinenumberEnd: 162561
    functionName: fts3BestIndexMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fts3SetEstimatedRows
    - fts3SetUniqueFlag
    linkageType: ''
    returnType: int
    signature: int fts3BestIndexMethod(sqlite3_vtab *pVTab, sqlite3_index_info *pInfo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:162569,1
    - Dst: sqlite3_malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:162575,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:162579,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - pVTab
    - ppCsr
    argTypes:
    - sqlite3_vtab*
    - sqlite3_vtab_cursor**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162581
      start: 162566
    functionDepth: 6
    functionLinenumber: 162566
    functionLinenumberEnd: 162581
    functionName: fts3OpenMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3_malloc
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: int
    signature: int fts3OpenMethod(sqlite3_vtab *pVTab, sqlite3_vtab_cursor **ppCsr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:162595,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:162600,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pCsr
    argTypes:
    - Fts3Cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162601
      start: 162590
    functionDepth: 26
    functionLinenumber: 162590
    functionLinenumberEnd: 162601
    functionName: fts3CursorFinalizeStmt
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_reset
    - sqlite3_finalize
    linkageType: ''
    returnType: void
    signature: void fts3CursorFinalizeStmt(Fts3Cursor *pCsr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts3CursorFinalizeStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:162608,1
    - Dst: sqlite3Fts3FreeDeferredTokens
      Src: /src/nss/lib/sqlite/sqlite3.c:162609,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:162610,1
    - Dst: sqlite3Fts3MIBufferFree
      Src: /src/nss/lib/sqlite/sqlite3.c:162611,1
    - Dst: sqlite3Fts3ExprFree
      Src: /src/nss/lib/sqlite/sqlite3.c:162612,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:162613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - pCsr
    argTypes:
    - Fts3Cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162614
      start: 162607
    functionDepth: 27
    functionLinenumber: 162607
    functionLinenumberEnd: 162614
    functionName: fts3ClearCursor
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts3MIBufferFree
    - sqlite3Fts3FreeDeferredTokens
    - memset
    - sqlite3Fts3ExprFree
    - fts3CursorFinalizeStmt
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void fts3ClearCursor(Fts3Cursor *pCsr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:162622,1
    - Dst: fts3ClearCursor
      Src: /src/nss/lib/sqlite/sqlite3.c:162623,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:162624,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:162625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - pCursor
    argTypes:
    - sqlite3_vtab_cursor*
    assertStmts:
    - condition: ( ((Fts3Table *)pCsr->base.pVtab)->pSegments==0 )
      pos:
        line_end: 162621
        line_start: 162621
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( ((Fts3Table *)pCsr->base.pVtab)->pSegments==0 )
      pos:
        line_end: 162623
        line_start: 162623
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 162627
      start: 162620
    functionDepth: 28
    functionLinenumber: 162620
    functionLinenumberEnd: 162627
    functionName: fts3CloseMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_free
    - fts3ClearCursor
    linkageType: ''
    returnType: int
    signature: int fts3CloseMethod(sqlite3_vtab_cursor *pCursor)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:162647,1
    - Dst: sqlite3_prepare_v3
      Src: /src/nss/lib/sqlite/sqlite3.c:162649,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:162650,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - pCsr
    argTypes:
    - Fts3Cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162655
      start: 162638
    functionDepth: 28
    functionLinenumber: 162638
    functionLinenumberEnd: 162655
    functionName: fts3CursorSeekStmt
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mprintf
    - sqlite3_prepare_v3
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int fts3CursorSeekStmt(Fts3Cursor *pCsr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fts3CursorSeekStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:162665,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:162667,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:162669,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:162672,1
    - Dst: sqlite3_result_error_code
      Src: /src/nss/lib/sqlite/sqlite3.c:162685,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - pContext
    - pCsr
    argTypes:
    - sqlite3_context*
    - Fts3Cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162688
      start: 162662
    functionDepth: 29
    functionLinenumber: 162662
    functionLinenumberEnd: 162688
    functionName: fts3CursorSeek
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_step
    - sqlite3_reset
    - fts3CursorSeekStmt
    - sqlite3_result_error_code
    - sqlite3_bind_int64
    linkageType: ''
    returnType: int
    signature: int fts3CursorSeek(sqlite3_context *pContext, Fts3Cursor *pCsr)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:162734,1
    - Dst: sqlite3Fts3GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:162735,1
    - Dst: fts3GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:162749,1
    - Dst: fts3GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:162752,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:162754,1
    - Dst: sqlite3_realloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:162762,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:162769,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:162770,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:162783,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:162801,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 52
    argCount: 6
    argNames:
    - zTerm
    - nTerm
    - zNode
    - nNode
    - piFirst
    - piLast
    argTypes:
    - char*
    - int
    - char*
    - int
    - sqlite3_int64*
    - sqlite3_int64*
    assertStmts:
    - condition: ( nPrefix>=0 && nSuffix>=0 )
      pos:
        line_end: 162753
        line_start: 162753
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( zBuffer )
      pos:
        line_end: 162768
        line_start: 162768
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 162803
      start: 162705
    functionDepth: 7
    functionLinenumber: 162705
    functionLinenumberEnd: 162803
    functionName: fts3ScanInteriorNode
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    - memcpy
    - fts3GetVarint32
    - assert
    - sqlite3Fts3GetVarint
    - memcmp
    - sqlite3_realloc64
    linkageType: ''
    returnType: int
    signature: "int fts3ScanInteriorNode(\n  const char *zTerm,              /* Term
      to select leaves for */\n  int nTerm,                      /* Size of term zTerm
      in bytes */\n  const char *zNode,              /* Buffer containing segment
      interior node */\n  int nNode,                      /* Size of buffer at zNode
      */\n  sqlite3_int64 *piFirst,         /* OUT: Selected child node */\n  sqlite3_int64
      *piLast           /* OUT: Selected child node */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:162839,1
    - Dst: fts3GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:162841,1
    - Dst: fts3ScanInteriorNode
      Src: /src/nss/lib/sqlite/sqlite3.c:162842,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:162843,1
    - Dst: sqlite3Fts3ReadBlock
      Src: /src/nss/lib/sqlite/sqlite3.c:162850,1
    - Dst: fts3SelectLeaf
      Src: /src/nss/lib/sqlite/sqlite3.c:162852,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:162854,1
    - Dst: sqlite3Fts3ReadBlock
      Src: /src/nss/lib/sqlite/sqlite3.c:162860,1
    - Dst: fts3SelectLeaf
      Src: /src/nss/lib/sqlite/sqlite3.c:162863,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:162865,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 24
    argCount: 7
    argNames:
    - p
    - zTerm
    - nTerm
    - zNode
    - nNode
    - piLeaf
    - piLeaf2
    argTypes:
    - Fts3Table*
    - char*
    - int
    - char*
    - int
    - sqlite3_int64*
    - sqlite3_int64*
    assertStmts:
    - condition: ( piLeaf || piLeaf2 )
      pos:
        line_end: 162838
        line_start: 162838
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !piLeaf2 || !piLeaf || rc!=SQLITE_OK || (*piLeaf<=*piLeaf2) )
      pos:
        line_end: 162842
        line_start: 162842
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 162869
      start: 162827
    functionDepth: 8
    functionLinenumber: 162827
    functionLinenumberEnd: 162869
    functionName: fts3SelectLeaf
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3Fts3ReadBlock
    - fts3SelectLeaf
    - fts3GetVarint32
    - fts3ScanInteriorNode
    - assert
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int fts3SelectLeaf(\n  Fts3Table *p,                   /* Virtual
      table handle */\n  const char *zTerm,              /* Term to select leaves
      for */\n  int nTerm,                      /* Size of term zTerm in bytes */\n
      \ const char *zNode,              /* Buffer containing segment interior node
      */\n  int nNode,                      /* Size of buffer at zNode */\n  sqlite3_int64
      *piLeaf,          /* Selected leaf node */\n  sqlite3_int64 *piLeaf2          /*
      Selected leaf node */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:162880,1
    - Dst: sqlite3Fts3PutVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:162881,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - pp
    - piPrev
    - iVal
    argTypes:
    - char**
    - sqlite3_int64*
    - sqlite3_int64
    assertStmts:
    - condition: ( iVal-*piPrev > 0 || (*piPrev==0 && iVal==0) )
      pos:
        line_end: 162879
        line_start: 162879
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 162883
      start: 162875
    functionDepth: 1
    functionLinenumber: 162875
    functionLinenumberEnd: 162883
    functionName: fts3PutDeltaVarint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3Fts3PutVarint
    linkageType: ''
    returnType: void
    signature: "void fts3PutDeltaVarint(\n  char **pp,                      /* IN/OUT:
      Output pointer */\n  sqlite3_int64 *piPrev,          /* IN/OUT: Previous value
      written to list */\n  sqlite3_int64 iVal              /* Write this value to
      the list */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:162915,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:162922,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - pp
    - ppPoslist
    argTypes:
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162927
      start: 162899
    functionDepth: 1
    functionLinenumber: 162899
    functionLinenumberEnd: 162927
    functionName: fts3PoslistCopy
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - testcase
    linkageType: ''
    returnType: void
    signature: void fts3PoslistCopy(char **pp, char **ppPoslist)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:162955,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:162960,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - pp
    - ppPoslist
    argTypes:
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162965
      start: 162946
    functionDepth: 1
    functionLinenumber: 162946
    functionLinenumberEnd: 162965
    functionName: fts3ColumnlistCopy
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - testcase
    linkageType: ''
    returnType: void
    signature: void fts3ColumnlistCopy(char **pp, char **ppPoslist)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fts3GetDeltaVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:162996,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - pp
    - pi
    argTypes:
    - char**
    - sqlite3_int64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163001
      start: 162991
    functionDepth: 3
    functionLinenumber: 162991
    functionLinenumberEnd: 163001
    functionName: fts3ReadNextPos
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3GetDeltaVarint
    linkageType: ''
    returnType: void
    signature: "void fts3ReadNextPos(\n  char **pp,                    /* IN/OUT:
      Pointer into position-list buffer */\n  sqlite3_int64 *pi             /* IN/OUT:
      Value read from position-list */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3PutVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:163016,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - pp
    - iCol
    argTypes:
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163021
      start: 163012
    functionDepth: 1
    functionLinenumber: 163012
    functionLinenumberEnd: 163021
    functionName: fts3PutColNumber
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts3PutVarint
    linkageType: ''
    returnType: int
    signature: int fts3PutColNumber(char **pp, int iCol)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fts3GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:163044,1
    - Dst: fts3GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:163051,1
    - Dst: fts3PutColNumber
      Src: /src/nss/lib/sqlite/sqlite3.c:163061,1
    - Dst: fts3GetDeltaVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:163074,1
    - Dst: fts3GetDeltaVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:163075,1
    - Dst: fts3PutDeltaVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:163077,1
    - Dst: fts3ReadNextPos
      Src: /src/nss/lib/sqlite/sqlite3.c:163080,1
    - Dst: fts3ReadNextPos
      Src: /src/nss/lib/sqlite/sqlite3.c:163081,1
    - Dst: fts3ReadNextPos
      Src: /src/nss/lib/sqlite/sqlite3.c:163083,1
    - Dst: fts3ReadNextPos
      Src: /src/nss/lib/sqlite/sqlite3.c:163085,1
    - Dst: fts3PutColNumber
      Src: /src/nss/lib/sqlite/sqlite3.c:163089,1
    - Dst: fts3ColumnlistCopy
      Src: /src/nss/lib/sqlite/sqlite3.c:163090,1
    - Dst: fts3PutColNumber
      Src: /src/nss/lib/sqlite/sqlite3.c:163092,1
    - Dst: fts3ColumnlistCopy
      Src: /src/nss/lib/sqlite/sqlite3.c:163093,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 50
    argCount: 3
    argNames:
    - pp
    - pp1
    - pp2
    argTypes:
    - char**
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163102
      start: 163030
    functionDepth: 4
    functionLinenumber: 163030
    functionLinenumberEnd: 163102
    functionName: fts3PoslistMerge
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3ColumnlistCopy
    - fts3PutDeltaVarint
    - fts3GetVarint32
    - fts3ReadNextPos
    - fts3GetDeltaVarint
    - fts3PutColNumber
    linkageType: ''
    returnType: int
    signature: "int fts3PoslistMerge(\n  char **pp,                      /* Output
      buffer */\n  char **pp1,                     /* Left input list */\n  char **pp2
      \                     /* Right input list */\n)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:163142,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:163144,1
    - Dst: fts3GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:163147,1
    - Dst: fts3GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:163151,1
    - Dst: sqlite3Fts3PutVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:163163,1
    - Dst: fts3GetDeltaVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:163166,1
    - Dst: fts3GetDeltaVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:163167,1
    - Dst: fts3PutDeltaVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:163176,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:163178,1
    - Dst: fts3GetDeltaVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:163182,1
    - Dst: fts3GetDeltaVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:163185,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:163190,1
    - Dst: fts3ColumnlistCopy
      Src: /src/nss/lib/sqlite/sqlite3.c:163194,1
    - Dst: fts3ColumnlistCopy
      Src: /src/nss/lib/sqlite/sqlite3.c:163195,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:163196,1
    - Dst: fts3GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:163200,1
    - Dst: fts3GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:163202,1
    - Dst: fts3ColumnlistCopy
      Src: /src/nss/lib/sqlite/sqlite3.c:163211,1
    - Dst: fts3GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:163214,1
    - Dst: fts3ColumnlistCopy
      Src: /src/nss/lib/sqlite/sqlite3.c:163216,1
    - Dst: fts3GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:163219,1
    - Dst: fts3PoslistCopy
      Src: /src/nss/lib/sqlite/sqlite3.c:163223,1
    - Dst: fts3PoslistCopy
      Src: /src/nss/lib/sqlite/sqlite3.c:163224,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 81
    argCount: 6
    argNames:
    - pp
    - nToken
    - isSaveLeft
    - isExact
    - pp1
    - pp2
    argTypes:
    - char**
    - int
    - int
    - int
    - char**
    - char**
    assertStmts:
    - condition: ( p )
      pos:
        line_end: 163177
        line_start: 163177
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pp && p )
      pos:
        line_end: 163189
        line_start: 163189
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( isSaveLeft==0 || isExact==0 )
      pos:
        line_end: 163141
        line_start: 163141
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p!=0 && *p1!=0 && *p2!=0 )
      pos:
        line_end: 163143
        line_start: 163143
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (*p1&0xFE)==0 && (*p2&0xFE)==0 )
      pos:
        line_end: 163195
        line_start: 163195
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 163233
      start: 163127
    functionDepth: 3
    functionLinenumber: 163127
    functionLinenumberEnd: 163233
    functionName: fts3PoslistPhraseMerge
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3ColumnlistCopy
    - fts3PutDeltaVarint
    - fts3PoslistCopy
    - fts3GetVarint32
    - sqlite3Fts3PutVarint
    - fts3GetDeltaVarint
    - assert
    linkageType: ''
    returnType: int
    signature: "int fts3PoslistPhraseMerge(\n  char **pp,                      /*
      IN/OUT: Preallocated output buffer */\n  int nToken,                     /*
      Maximum difference in token positions */\n  int isSaveLeft,                 /*
      Save the left position */\n  int isExact,                    /* If *pp1 is exactly
      nTokens before *pp2 */\n  char **pp1,                     /* IN/OUT: Left input
      list */\n  char **pp2                      /* IN/OUT: Right input list */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fts3PoslistPhraseMerge
      Src: /src/nss/lib/sqlite/sqlite3.c:163266,1
    - Dst: fts3PoslistPhraseMerge
      Src: /src/nss/lib/sqlite/sqlite3.c:163270,1
    - Dst: fts3PoslistMerge
      Src: /src/nss/lib/sqlite/sqlite3.c:163272,1
    - Dst: fts3PoslistCopy
      Src: /src/nss/lib/sqlite/sqlite3.c:163274,1
    - Dst: fts3PoslistCopy
      Src: /src/nss/lib/sqlite/sqlite3.c:163276,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 6
    argNames:
    - pp
    - aTmp
    - nRight
    - nLeft
    - pp1
    - pp2
    argTypes:
    - char**
    - char*
    - int
    - int
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163282
      start: 163250
    functionDepth: 5
    functionLinenumber: 163250
    functionLinenumberEnd: 163282
    functionName: fts3PoslistNearMerge
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3PoslistMerge
    - fts3PoslistPhraseMerge
    - fts3PoslistCopy
    linkageType: ''
    returnType: int
    signature: "int fts3PoslistNearMerge(\n  char **pp,                      /* Output
      buffer */\n  char *aTmp,                     /* Temporary buffer space */\n
      \ int nRight,                     /* Maximum difference in token positions */\n
      \ int nLeft,                      /* Maximum difference in token positions */\n
      \ char **pp1,                     /* IN/OUT: Left input list */\n  char **pp2
      \                     /* IN/OUT: Right input list */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:163318,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - pp
    - pEnd
    - bDescIdx
    - pVal
    argTypes:
    - char**
    - char*
    - int
    - sqlite3_int64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163325
      start: 163308
    functionDepth: 2
    functionLinenumber: 163308
    functionLinenumberEnd: 163325
    functionName: fts3GetDeltaVarint3
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts3GetVarint
    linkageType: ''
    returnType: void
    signature: "void fts3GetDeltaVarint3(\n  char **pp,                      /* IN/OUT:
      Point to read varint from */\n  char *pEnd,                     /* End of buffer
      */\n  int bDescIdx,                   /* True if docids are descending */\n
      \ sqlite3_int64 *pVal             /* IN/OUT: Integer value */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:163355,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:163356,1
    - Dst: sqlite3Fts3PutVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:163357,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 5
    argNames:
    - pp
    - bDescIdx
    - piPrev
    - pbFirst
    - iVal
    argTypes:
    - char**
    - int
    - sqlite3_int64*
    - int*
    - sqlite3_int64
    assertStmts:
    - condition: ( *pbFirst || *piPrev==0 )
      pos:
        line_end: 163354
        line_start: 163354
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( *pbFirst==0 || iWrite>0 )
      pos:
        line_end: 163355
        line_start: 163355
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 163360
      start: 163342
    functionDepth: 1
    functionLinenumber: 163342
    functionLinenumberEnd: 163360
    functionName: fts3PutDeltaVarint3
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3Fts3PutVarint
    linkageType: ''
    returnType: void
    signature: "void fts3PutDeltaVarint3(\n  char **pp,                      /* IN/OUT:
      Output pointer */\n  int bDescIdx,                   /* True for descending
      docids */\n  sqlite3_int64 *piPrev,          /* IN/OUT: Previous value written
      to list */\n  int *pbFirst,                   /* IN/OUT: True after first int
      written */\n  sqlite3_int64 iVal              /* Write this value to the list
      */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i1
    - ','
    - i2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163373
      start: 163372
    functionDepth: 0
    functionLinenumber: 163372
    functionLinenumberEnd: 163373
    functionName: DOCID_CMP
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DOCID_CMP(i1, i2)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:163438,1
    - Dst: fts3GetDeltaVarint3
      Src: /src/nss/lib/sqlite/sqlite3.c:163442,1
    - Dst: fts3GetDeltaVarint3
      Src: /src/nss/lib/sqlite/sqlite3.c:163443,1
    - Dst: DOCID_CMP
      Src: /src/nss/lib/sqlite/sqlite3.c:163445,1
    - Dst: fts3PutDeltaVarint3
      Src: /src/nss/lib/sqlite/sqlite3.c:163448,1
    - Dst: fts3PoslistMerge
      Src: /src/nss/lib/sqlite/sqlite3.c:163449,1
    - Dst: fts3GetDeltaVarint3
      Src: /src/nss/lib/sqlite/sqlite3.c:163451,1
    - Dst: fts3GetDeltaVarint3
      Src: /src/nss/lib/sqlite/sqlite3.c:163452,1
    - Dst: fts3PutDeltaVarint3
      Src: /src/nss/lib/sqlite/sqlite3.c:163454,1
    - Dst: fts3PoslistCopy
      Src: /src/nss/lib/sqlite/sqlite3.c:163455,1
    - Dst: fts3GetDeltaVarint3
      Src: /src/nss/lib/sqlite/sqlite3.c:163456,1
    - Dst: fts3PutDeltaVarint3
      Src: /src/nss/lib/sqlite/sqlite3.c:163458,1
    - Dst: fts3PoslistCopy
      Src: /src/nss/lib/sqlite/sqlite3.c:163459,1
    - Dst: fts3GetDeltaVarint3
      Src: /src/nss/lib/sqlite/sqlite3.c:163460,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:163465,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:163468,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:163469,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 7
    argNames:
    - bDescDoclist
    - a1
    - n1
    - a2
    - n2
    - paOut
    - pnOut
    argTypes:
    - int
    - char*
    - int
    - char*
    - int
    - char**
    - int*
    assertStmts:
    - condition: ( (p-aOut)<=n1+n2+FTS3_VARINT_MAX-1 )
      pos:
        line_end: 163467
        line_start: 163467
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 163474
      start: 163388
    functionDepth: 6
    functionLinenumber: 163388
    functionLinenumberEnd: 163474
    functionName: fts3DoclistOrMerge
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_malloc64
    - fts3PoslistCopy
    - DOCID_CMP
    - fts3GetDeltaVarint3
    - assert
    - fts3PoslistMerge
    - fts3PutDeltaVarint3
    - memset
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int fts3DoclistOrMerge(\n  int bDescDoclist,               /* True
      if arguments are desc */\n  char *a1, int n1,               /* First doclist
      */\n  char *a2, int n2,               /* Second doclist */\n  char **paOut,
      int *pnOut        /* OUT: Malloc'd doclist */\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:163506,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:163508,1
    - Dst: fts3GetDeltaVarint3
      Src: /src/nss/lib/sqlite/sqlite3.c:163515,1
    - Dst: fts3GetDeltaVarint3
      Src: /src/nss/lib/sqlite/sqlite3.c:163516,1
    - Dst: DOCID_CMP
      Src: /src/nss/lib/sqlite/sqlite3.c:163519,1
    - Dst: fts3PutDeltaVarint3
      Src: /src/nss/lib/sqlite/sqlite3.c:163525,1
    - Dst: fts3PoslistPhraseMerge
      Src: /src/nss/lib/sqlite/sqlite3.c:163526,1
    - Dst: fts3GetDeltaVarint3
      Src: /src/nss/lib/sqlite/sqlite3.c:163531,1
    - Dst: fts3GetDeltaVarint3
      Src: /src/nss/lib/sqlite/sqlite3.c:163532,1
    - Dst: fts3PoslistCopy
      Src: /src/nss/lib/sqlite/sqlite3.c:163534,1
    - Dst: fts3GetDeltaVarint3
      Src: /src/nss/lib/sqlite/sqlite3.c:163535,1
    - Dst: fts3PoslistCopy
      Src: /src/nss/lib/sqlite/sqlite3.c:163537,1
    - Dst: fts3GetDeltaVarint3
      Src: /src/nss/lib/sqlite/sqlite3.c:163538,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:163544,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 6
    argNames:
    - bDescDoclist
    - nDist
    - aLeft
    - nLeft
    - paRight
    - pnRight
    argTypes:
    - int
    - int
    - char*
    - int
    - char**
    - int*
    assertStmts:
    - condition: ( nDist>0 )
      pos:
        line_end: 163505
        line_start: 163505
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 163549
      start: 163488
    functionDepth: 6
    functionLinenumber: 163488
    functionLinenumberEnd: 163549
    functionName: fts3DoclistPhraseMerge
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_malloc64
    - fts3PoslistCopy
    - DOCID_CMP
    - fts3PoslistPhraseMerge
    - fts3GetDeltaVarint3
    - assert
    - fts3PutDeltaVarint3
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int fts3DoclistPhraseMerge(\n  int bDescDoclist,               /*
      True if arguments are desc */\n  int nDist,                      /* Distance
      from left to right (1=adjacent) */\n  char *aLeft, int nLeft,         /* Left
      doclist */\n  char **paRight, int *pnRight    /* IN/OUT: Right/output doclist
      */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3PutVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:163572,1
    - Dst: fts3ColumnlistCopy
      Src: /src/nss/lib/sqlite/sqlite3.c:163576,1
    - Dst: sqlite3Fts3GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:163582,1
    - Dst: sqlite3Fts3PutVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:163585,1
    - Dst: sqlite3Fts3PutVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:163589,1
    - Dst: fts3ColumnlistCopy
      Src: /src/nss/lib/sqlite/sqlite3.c:163592,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 4
    argNames:
    - iDelta
    - pList
    - nList
    - pOut
    argTypes:
    - sqlite3_int64
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163599
      start: 163559
    functionDepth: 2
    functionLinenumber: 163559
    functionLinenumberEnd: 163599
    functionName: sqlite3Fts3FirstFilter
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3ColumnlistCopy
    - sqlite3Fts3PutVarint
    - sqlite3Fts3GetVarint
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3FirstFilter(\n  sqlite3_int64 iDelta,           /*
      Varint that may be written to pOut */\n  char *pList,                    /*
      Position list (no 0x00 term) */\n  int nList,                      /* Size of
      pList in bytes */\n  char *pOut                      /* Write output here */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SizeofArray
      Src: /src/nss/lib/sqlite/sqlite3.c:163619,1
    - Dst: fts3DoclistOrMerge
      Src: /src/nss/lib/sqlite/sqlite3.c:163629,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:163633,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:163637,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:163638,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - p
    - pTS
    argTypes:
    - Fts3Table*
    - TermSelect*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163649
      start: 163611
    functionDepth: 7
    functionLinenumber: 163611
    functionLinenumberEnd: 163649
    functionName: fts3TermSelectFinishMerge
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - SizeofArray
    - fts3DoclistOrMerge
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int fts3TermSelectFinishMerge(Fts3Table *p, TermSelect *pTS)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:163688,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:163691,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:163692,1
    - Dst: SizeofArray
      Src: /src/nss/lib/sqlite/sqlite3.c:163701,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:163703,1
    - Dst: fts3DoclistOrMerge
      Src: /src/nss/lib/sqlite/sqlite3.c:163711,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:163715,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:163719,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:163720,1
    - Dst: SizeofArray
      Src: /src/nss/lib/sqlite/sqlite3.c:163725,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 4
    argNames:
    - p
    - pTS
    - aDoclist
    - nDoclist
    argTypes:
    - Fts3Table*
    - TermSelect*
    - char*
    - int
    assertStmts:
    - condition: ( iOut>0 )
      pos:
        line_end: 163702
        line_start: 163702
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 163733
      start: 163665
    functionDepth: 7
    functionLinenumber: 163665
    functionLinenumberEnd: 163733
    functionName: fts3TermSelectMerge
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_malloc
    - memcpy
    - fts3DoclistOrMerge
    - memset
    - SizeofArray
    - assert
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int fts3TermSelectMerge(\n  Fts3Table *p,                   /* FTS
      table handle */\n  TermSelect *pTS,                /* TermSelect object to merge
      into */\n  char *aDoclist,                 /* Pointer to doclist */\n  int nDoclist
      \                   /* Size of aDoclist in bytes */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_realloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:163745,1
    - Dst: sqlite3Fts3SegReaderFree
      Src: /src/nss/lib/sqlite/sqlite3.c:163747,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - pCsr
    - pNew
    argTypes:
    - Fts3MultiSegReader*
    - Fts3SegReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163754
      start: 163738
    functionDepth: 7
    functionLinenumber: 163738
    functionLinenumberEnd: 163754
    functionName: fts3SegReaderCursorAppend
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts3SegReaderFree
    - sqlite3_realloc64
    linkageType: ''
    returnType: int
    signature: "int fts3SegReaderCursorAppend(\n  Fts3MultiSegReader *pCsr, \n  Fts3SegReader
      *pNew\n)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3SegReaderPending
      Src: /src/nss/lib/sqlite/sqlite3.c:163786,1
    - Dst: fts3SegReaderCursorAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:163788,1
    - Dst: sqlite3Fts3AllSegdirs
      Src: /src/nss/lib/sqlite/sqlite3.c:163794,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:163797,1
    - Dst: sqlite3_column_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:163801,1
    - Dst: sqlite3_column_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:163802,1
    - Dst: sqlite3_column_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:163803,1
    - Dst: sqlite3_column_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:163804,1
    - Dst: sqlite3_column_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:163805,1
    - Dst: fts3SelectLeaf
      Src: /src/nss/lib/sqlite/sqlite3.c:163811,1
    - Dst: sqlite3Fts3SegReaderNew
      Src: /src/nss/lib/sqlite/sqlite3.c:163816,1
    - Dst: fts3SegReaderCursorAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:163822,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:163827,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 33
    argCount: 9
    argNames:
    - p
    - iLangid
    - iIndex
    - iLevel
    - zTerm
    - nTerm
    - isPrefix
    - isScan
    - pCsr
    argTypes:
    - Fts3Table*
    - int
    - int
    - int
    - char*
    - int
    - int
    - int
    - Fts3MultiSegReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163831
      start: 163763
    functionDepth: 27
    functionLinenumber: 163763
    functionLinenumberEnd: 163831
    functionName: fts3SegReaderCursor
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_step
    - sqlite3_reset
    - sqlite3_column_blob
    - fts3SelectLeaf
    - fts3SegReaderCursorAppend
    - sqlite3_column_bytes
    - sqlite3_column_int64
    - sqlite3Fts3AllSegdirs
    - sqlite3Fts3SegReaderNew
    - sqlite3Fts3SegReaderPending
    linkageType: ''
    returnType: int
    signature: "int fts3SegReaderCursor(\n  Fts3Table *p,                   /* FTS3
      table handle */\n  int iLangid,                    /* Language id */\n  int
      iIndex,                     /* Index to search (from 0 to p->nIndex-1) */\n
      \ int iLevel,                     /* Level of segments to scan */\n  const char
      *zTerm,              /* Term to query for */\n  int nTerm,                      /*
      Size of zTerm in bytes */\n  int isPrefix,                   /* True for a prefix
      search */\n  int isScan,                     /* True to scan from zTerm to EOF
      */\n  Fts3MultiSegReader *pCsr        /* Cursor object to populate */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:163848,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:163849,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:163853,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:163854,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:163855,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:163857,1
    - Dst: fts3SegReaderCursor
      Src: /src/nss/lib/sqlite/sqlite3.c:163858,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 9
    argNames:
    - p
    - iLangid
    - iIndex
    - iLevel
    - zTerm
    - nTerm
    - isPrefix
    - isScan
    - pCsr
    argTypes:
    - Fts3Table*
    - int
    - int
    - int
    - char*
    - int
    - int
    - int
    - Fts3MultiSegReader*
    assertStmts:
    - condition: ( iIndex>=0 && iIndex<p->nIndex )
      pos:
        line_end: 163847
        line_start: 163847
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( iLevel==FTS3_SEGCURSOR_ALL\n      ||  iLevel==FTS3_SEGCURSOR_PENDING
        \n      ||  iLevel>=0\n  )"
      pos:
        line_end: 163851
        line_start: 163848
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( FTS3_SEGCURSOR_ALL<0 && FTS3_SEGCURSOR_PENDING<0 )
      pos:
        line_end: 163853
        line_start: 163853
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iLevel<FTS3_SEGDIR_MAXLEVEL )
      pos:
        line_end: 163852
        line_start: 163852
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( isPrefix==0 || isScan==0 )
      pos:
        line_end: 163854
        line_start: 163854
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 163861
      start: 163837
    functionDepth: 28
    functionLinenumber: 163837
    functionLinenumberEnd: 163861
    functionName: sqlite3Fts3SegReaderCursor
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fts3SegReaderCursor
    - memset
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3SegReaderCursor(\n  Fts3Table *p,                   /*
      FTS3 table handle */\n  int iLangid,                    /* Language-id to search
      */\n  int iIndex,                     /* Index to search (from 0 to p->nIndex-1)
      */\n  int iLevel,                     /* Level of segments to scan */\n  const
      char *zTerm,              /* Term to query for */\n  int nTerm,                      /*
      Size of zTerm in bytes */\n  int isPrefix,                   /* True for a prefix
      search */\n  int isScan,                     /* True to scan from zTerm to EOF
      */\n  Fts3MultiSegReader *pCsr       /* Cursor object to populate */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts3SegReaderCursor
      Src: /src/nss/lib/sqlite/sqlite3.c:163876,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - p
    - iLangid
    - zTerm
    - nTerm
    - pCsr
    argTypes:
    - Fts3Table*
    - int
    - char*
    - int
    - Fts3MultiSegReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163879
      start: 163869
    functionDepth: 28
    functionLinenumber: 163869
    functionLinenumberEnd: 163879
    functionName: fts3SegReaderCursorAddZero
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3SegReaderCursor
    linkageType: ''
    returnType: int
    signature: "int fts3SegReaderCursorAddZero(\n  Fts3Table *p,                   /*
      FTS virtual table handle */\n  int iLangid,\n  const char *zTerm,              /*
      Term to scan doclist of */\n  int nTerm,                      /* Number of bytes
      in zTerm */\n  Fts3MultiSegReader *pCsr        /* Fts3MultiSegReader to modify
      */\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:163904,1
    - Dst: sqlite3Fts3SegReaderCursor
      Src: /src/nss/lib/sqlite/sqlite3.c:163914,1
    - Dst: sqlite3Fts3SegReaderCursor
      Src: /src/nss/lib/sqlite/sqlite3.c:163924,1
    - Dst: fts3SegReaderCursorAddZero
      Src: /src/nss/lib/sqlite/sqlite3.c:163928,1
    - Dst: sqlite3Fts3SegReaderCursor
      Src: /src/nss/lib/sqlite/sqlite3.c:163937,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 5
    argNames:
    - pCsr
    - zTerm
    - nTerm
    - isPrefix
    - ppSegcsr
    argTypes:
    - Fts3Cursor*
    - char*
    - int
    - int
    - Fts3MultiSegReader**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163946
      start: 163894
    functionDepth: 29
    functionLinenumber: 163894
    functionLinenumberEnd: 163946
    functionName: fts3TermSegReaderCursor
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3SegReaderCursorAddZero
    - sqlite3_malloc
    - sqlite3Fts3SegReaderCursor
    linkageType: ''
    returnType: int
    signature: "int fts3TermSegReaderCursor(\n  Fts3Cursor *pCsr,               /*
      Virtual table cursor handle */\n  const char *zTerm,              /* Term to
      query for */\n  int nTerm,                      /* Size of zTerm in bytes */\n
      \ int isPrefix,                   /* True for a prefix search */\n  Fts3MultiSegReader
      **ppSegcsr   /* OUT: Allocated seg-reader cursor */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3SegReaderFinish
      Src: /src/nss/lib/sqlite/sqlite3.c:163952,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:163953,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pSegcsr
    argTypes:
    - Fts3MultiSegReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163954
      start: 163951
    functionDepth: 3
    functionLinenumber: 163951
    functionLinenumberEnd: 163954
    functionName: fts3SegReaderCursorFree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    - sqlite3Fts3SegReaderFinish
    linkageType: ''
    returnType: void
    signature: void fts3SegReaderCursorFree(Fts3MultiSegReader *pSegcsr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:163973,1
    - Dst: sqlite3Fts3SegReaderStart
      Src: /src/nss/lib/sqlite/sqlite3.c:163983,1
    - Dst: sqlite3Fts3SegReaderStep
      Src: /src/nss/lib/sqlite/sqlite3.c:163985,1
    - Dst: fts3TermSelectMerge
      Src: /src/nss/lib/sqlite/sqlite3.c:163987,1
    - Dst: fts3TermSelectFinishMerge
      Src: /src/nss/lib/sqlite/sqlite3.c:163991,1
    - Dst: SizeofArray
      Src: /src/nss/lib/sqlite/sqlite3.c:163998,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:163999,1
    - Dst: fts3SegReaderCursorFree
      Src: /src/nss/lib/sqlite/sqlite3.c:164003,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 5
    argNames:
    - p
    - pTok
    - iColumn
    - pnOut
    - ppOut
    argTypes:
    - Fts3Table*
    - Fts3PhraseToken*
    - int
    - int*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164006
      start: 163960
    functionDepth: 8
    functionLinenumber: 163960
    functionLinenumberEnd: 164006
    functionName: fts3TermSelect
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - fts3TermSelectMerge
    - sqlite3Fts3SegReaderStart
    - SizeofArray
    - fts3TermSelectFinishMerge
    - fts3SegReaderCursorFree
    - sqlite3_free
    - sqlite3Fts3SegReaderStep
    linkageType: ''
    returnType: int
    signature: "int fts3TermSelect(\n  Fts3Table *p,                   /* Virtual
      table handle */\n  Fts3PhraseToken *pTok,          /* Token to query for */\n
      \ int iColumn,                    /* Column to query (or -ve for all columns)
      */\n  int *pnOut,                     /* OUT: Size of buffer at *ppOut */\n
      \ char **ppOut                    /* OUT: Malloced result buffer */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fts3PoslistCopy
      Src: /src/nss/lib/sqlite/sqlite3.c:164025,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - aList
    - nList
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164030
      start: 164017
    functionDepth: 2
    functionLinenumber: 164017
    functionLinenumberEnd: 164030
    functionName: fts3DoclistCountDocids
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3PoslistCopy
    linkageType: ''
    returnType: int
    signature: int fts3DoclistCountDocids(char *aList, int nList)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:164047,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:164049,1
    - Dst: sqlite3_column_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:164051,1
    - Dst: fts3EvalNext
      Src: /src/nss/lib/sqlite/sqlite3.c:164055,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:164057,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - pCursor
    argTypes:
    - sqlite3_vtab_cursor*
    assertStmts:
    - condition: ( ((Fts3Table *)pCsr->base.pVtab)->pSegments==0 )
      pos:
        line_end: 164056
        line_start: 164056
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 164059
      start: 164043
    functionDepth: 27
    functionLinenumber: 164043
    functionLinenumberEnd: 164059
    functionName: fts3NextMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_step
    - sqlite3_reset
    - sqlite3_column_int64
    - assert
    - fts3EvalNext
    linkageType: ''
    returnType: int
    signature: int fts3NextMethod(sqlite3_vtab_cursor *pCursor)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_numeric_type
      Src: /src/nss/lib/sqlite/sqlite3.c:164080,1
    - Dst: sqlite3_value_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:164082,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - pVal
    - iDefault
    argTypes:
    - sqlite3_value*
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164086
      start: 164078
    functionDepth: 6
    functionLinenumber: 164078
    functionLinenumberEnd: 164086
    functionName: fts3DocidRange
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_value_numeric_type
    - sqlite3_value_int64
    linkageType: ''
    returnType: sqlite3_int64
    signature: sqlite3_int64 fts3DocidRange(sqlite3_value *pVal, i64 iDefault)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:164123,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:164124,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:164127,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:164128,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:164136,1
    - Dst: fts3ClearCursor
      Src: /src/nss/lib/sqlite/sqlite3.c:164139,1
    - Dst: fts3DocidRange
      Src: /src/nss/lib/sqlite/sqlite3.c:164142,1
    - Dst: fts3DocidRange
      Src: /src/nss/lib/sqlite/sqlite3.c:164143,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:164154,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:164156,1
    - Dst: sqlite3_value_int
      Src: /src/nss/lib/sqlite/sqlite3.c:164161,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:164163,1
    - Dst: sqlite3Fts3ExprParse
      Src: /src/nss/lib/sqlite/sqlite3.c:164164,1
    - Dst: fts3EvalStart
      Src: /src/nss/lib/sqlite/sqlite3.c:164172,1
    - Dst: sqlite3Fts3SegmentsClose
      Src: /src/nss/lib/sqlite/sqlite3.c:164173,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:164186,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:164192,1
    - Dst: sqlite3_prepare_v3
      Src: /src/nss/lib/sqlite/sqlite3.c:164197,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:164198,1
    - Dst: fts3CursorSeekStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:164203,1
    - Dst: sqlite3_bind_value
      Src: /src/nss/lib/sqlite/sqlite3.c:164205,1
    - Dst: fts3NextMethod
      Src: /src/nss/lib/sqlite/sqlite3.c:164210,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 66
    argCount: 5
    argNames:
    - pCursor
    - idxNum
    - idxStr
    - nVal
    - apVal
    argTypes:
    - sqlite3_vtab_cursor*
    - int
    - char*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( iIdx==nVal )
      pos:
        line_end: 164135
        line_start: 164135
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->pSegments==0 )
      pos:
        line_end: 164127
        line_start: 164127
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( eSearch>=0 && eSearch<=(FTS3_FULLTEXT_SEARCH+p->nColumn) )
      pos:
        line_end: 164126
        line_start: 164126
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->base.zErrMsg==0 )
      pos:
        line_end: 164162
        line_start: 164162
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 164211
      start: 164104
    functionDepth: 29
    functionLinenumber: 164104
    functionLinenumberEnd: 164211
    functionName: fts3FilterMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_prepare_v3
    - sqlite3_free
    - fts3CursorSeekStmt
    - fts3NextMethod
    - UNUSED_PARAMETER
    - sqlite3_value_int
    - sqlite3_bind_value
    - assert
    - fts3ClearCursor
    - sqlite3_mprintf
    - sqlite3Fts3ExprParse
    - sqlite3_value_type
    - sqlite3_value_text
    - sqlite3Fts3SegmentsClose
    - fts3EvalStart
    - fts3DocidRange
    linkageType: ''
    returnType: int
    signature: "int fts3FilterMethod(\n  sqlite3_vtab_cursor *pCursor,   /* The cursor
      used for this query */\n  int idxNum,                     /* Strategy index
      */\n  const char *idxStr,             /* Unused */\n  int nVal,                       /*
      Number of elements in apVal */\n  sqlite3_value **apVal           /* Arguments
      for the indexing scheme */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fts3ClearCursor
      Src: /src/nss/lib/sqlite/sqlite3.c:164220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pCursor
    argTypes:
    - sqlite3_vtab_cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164224
      start: 164217
    functionDepth: 28
    functionLinenumber: 164217
    functionLinenumberEnd: 164224
    functionName: fts3EofMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3ClearCursor
    linkageType: ''
    returnType: int
    signature: int fts3EofMethod(sqlite3_vtab_cursor *pCursor)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pCursor
    - pRowid
    argTypes:
    - sqlite3_vtab_cursor*
    - sqlite_int64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164236
      start: 164232
    functionDepth: 0
    functionLinenumber: 164232
    functionLinenumberEnd: 164236
    functionName: fts3RowidMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fts3RowidMethod(sqlite3_vtab_cursor *pCursor, sqlite_int64 *pRowid)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:164259,1
    - Dst: sqlite3_result_pointer
      Src: /src/nss/lib/sqlite/sqlite3.c:164264,1
    - Dst: sqlite3_result_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:164269,1
    - Dst: sqlite3_result_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:164274,1
    - Dst: sqlite3_result_int
      Src: /src/nss/lib/sqlite/sqlite3.c:164277,1
    - Dst: fts3CursorSeek
      Src: /src/nss/lib/sqlite/sqlite3.c:164287,1
    - Dst: sqlite3_data_count
      Src: /src/nss/lib/sqlite/sqlite3.c:164288,1
    - Dst: sqlite3_result_value
      Src: /src/nss/lib/sqlite/sqlite3.c:164289,1
    - Dst: sqlite3_column_value
      Src: /src/nss/lib/sqlite/sqlite3.c:164289,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:164294,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 3
    argNames:
    - pCursor
    - pCtx
    - iCol
    argTypes:
    - sqlite3_vtab_cursor*
    - sqlite3_context*
    - int
    assertStmts:
    - condition: ( iCol>=0 && iCol<=p->nColumn+2 )
      pos:
        line_end: 164258
        line_start: 164258
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( ((Fts3Table *)pCsr->base.pVtab)->pSegments==0 )
      pos:
        line_end: 164293
        line_start: 164293
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 164296
      start: 164249
    functionDepth: 30
    functionLinenumber: 164249
    functionLinenumberEnd: 164296
    functionName: fts3ColumnMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_pointer
    - sqlite3_column_value
    - sqlite3_data_count
    - sqlite3_result_int64
    - assert
    - sqlite3_result_int
    - fts3CursorSeek
    - sqlite3_result_value
    linkageType: ''
    returnType: int
    signature: "int fts3ColumnMethod(\n  sqlite3_vtab_cursor *pCursor,   /* Cursor
      to retrieve value from */\n  sqlite3_context *pCtx,          /* Context for
      sqlite3_result_xxx() calls */\n  int iCol                        /* Index of
      column to read value from */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3UpdateMethod
      Src: /src/nss/lib/sqlite/sqlite3.c:164309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pVtab
    - nArg
    - apVal
    - pRowid
    argTypes:
    - sqlite3_vtab*
    - int
    - sqlite3_value**
    - sqlite_int64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164310
      start: 164303
    functionDepth: 1
    functionLinenumber: 164303
    functionLinenumberEnd: 164310
    functionName: fts3UpdateMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts3UpdateMethod
    linkageType: ''
    returnType: int
    signature: "int fts3UpdateMethod(\n  sqlite3_vtab *pVtab,            /* Virtual
      table handle */\n  int nArg,                       /* Size of argument array
      */\n  sqlite3_value **apVal,          /* Array of arguments */\n  sqlite_int64
      *pRowid            /* OUT: The affected (or effected) rowid */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_last_insert_rowid
      Src: /src/nss/lib/sqlite/sqlite3.c:164341,1
    - Dst: sqlite3Fts3PendingTermsFlush
      Src: /src/nss/lib/sqlite/sqlite3.c:164343,1
    - Dst: sqlite3Fts3MaxLevel
      Src: /src/nss/lib/sqlite/sqlite3.c:164351,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:164352,1
    - Dst: sqlite3Fts3Incrmerge
      Src: /src/nss/lib/sqlite/sqlite3.c:164355,1
    - Dst: sqlite3Fts3SegmentsClose
      Src: /src/nss/lib/sqlite/sqlite3.c:164357,1
    - Dst: sqlite3_set_last_insert_rowid
      Src: /src/nss/lib/sqlite/sqlite3.c:164358,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - pVtab
    argTypes:
    - sqlite3_vtab*
    assertStmts:
    - condition: ( rc==SQLITE_OK || mxLevel==0 )
      pos:
        line_end: 164351
        line_start: 164351
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 164360
      start: 164316
    functionDepth: 13
    functionLinenumber: 164316
    functionLinenumberEnd: 164360
    functionName: fts3SyncMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts3MaxLevel
    - sqlite3Fts3PendingTermsFlush
    - sqlite3_last_insert_rowid
    - sqlite3Fts3Incrmerge
    - assert
    - sqlite3_set_last_insert_rowid
    - sqlite3Fts3SegmentsClose
    linkageType: ''
    returnType: int
    signature: int fts3SyncMethod(sqlite3_vtab *pVtab)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:164371,1
    - Dst: sqlite3_table_column_metadata
      Src: /src/nss/lib/sqlite/sqlite3.c:164373,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:164374,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - p
    argTypes:
    - Fts3Table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164381
      start: 164368
    functionDepth: 13
    functionLinenumber: 164368
    functionLinenumberEnd: 164381
    functionName: fts3SetHasStat
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mprintf
    - sqlite3_free
    - sqlite3_table_column_metadata
    linkageType: ''
    returnType: int
    signature: int fts3SetHasStat(Fts3Table *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:164388,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:164389,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:164390,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:164391,1
    - Dst: TESTONLY
      Src: /src/nss/lib/sqlite/sqlite3.c:164392,1
    - Dst: TESTONLY
      Src: /src/nss/lib/sqlite/sqlite3.c:164393,1
    - Dst: fts3SetHasStat
      Src: /src/nss/lib/sqlite/sqlite3.c:164395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - pVtab
    argTypes:
    - sqlite3_vtab*
    assertStmts:
    - condition: ( p->pSegments==0 )
      pos:
        line_end: 164388
        line_start: 164388
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->nPendingData==0 )
      pos:
        line_end: 164389
        line_start: 164389
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->inTransaction!=1 )
      pos:
        line_end: 164390
        line_start: 164390
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 164396
      start: 164386
    functionDepth: 14
    functionLinenumber: 164386
    functionLinenumberEnd: 164396
    functionName: fts3BeginMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fts3SetHasStat
    - UNUSED_PARAMETER
    - TESTONLY
    linkageType: ''
    returnType: int
    signature: int fts3BeginMethod(sqlite3_vtab *pVtab)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TESTONLY
      Src: /src/nss/lib/sqlite/sqlite3.c:164404,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:164405,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:164406,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:164407,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:164408,1
    - Dst: TESTONLY
      Src: /src/nss/lib/sqlite/sqlite3.c:164409,1
    - Dst: TESTONLY
      Src: /src/nss/lib/sqlite/sqlite3.c:164410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - pVtab
    argTypes:
    - sqlite3_vtab*
    assertStmts:
    - condition: ( p->inTransaction!=0 )
      pos:
        line_end: 164406
        line_start: 164406
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->pSegments==0 )
      pos:
        line_end: 164407
        line_start: 164407
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->nPendingData==0 )
      pos:
        line_end: 164405
        line_start: 164405
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 164412
      start: 164403
    functionDepth: 1
    functionLinenumber: 164403
    functionLinenumberEnd: 164412
    functionName: fts3CommitMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - UNUSED_PARAMETER
    - TESTONLY
    linkageType: ''
    returnType: int
    signature: int fts3CommitMethod(sqlite3_vtab *pVtab)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3PendingTermsClear
      Src: /src/nss/lib/sqlite/sqlite3.c:164420,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:164421,1
    - Dst: TESTONLY
      Src: /src/nss/lib/sqlite/sqlite3.c:164422,1
    - Dst: TESTONLY
      Src: /src/nss/lib/sqlite/sqlite3.c:164423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - pVtab
    argTypes:
    - sqlite3_vtab*
    assertStmts:
    - condition: ( p->inTransaction!=0 )
      pos:
        line_end: 164420
        line_start: 164420
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 164425
      start: 164418
    functionDepth: 1
    functionLinenumber: 164418
    functionLinenumberEnd: 164425
    functionName: fts3RollbackMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts3PendingTermsClear
    - assert
    - TESTONLY
    linkageType: ''
    returnType: int
    signature: int fts3RollbackMethod(sqlite3_vtab *pVtab)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:164446,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 13
    argCount: 2
    argNames:
    - pStart
    - ppPoslist
    argTypes:
    - char*
    - char**
    assertStmts:
    - condition: ( p==pStart || c==0 )
      pos:
        line_end: 164445
        line_start: 164445
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 164464
      start: 164433
    functionDepth: 0
    functionLinenumber: 164433
    functionLinenumberEnd: 164464
    functionName: fts3ReversePoslist
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void fts3ReversePoslist(char *pStart, char **ppPoslist)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_pointer
      Src: /src/nss/lib/sqlite/sqlite3.c:164483,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:164487,1
    - Dst: sqlite3_result_error
      Src: /src/nss/lib/sqlite/sqlite3.c:164488,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:164489,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - pContext
    - zFunc
    - pVal
    - ppCsr
    argTypes:
    - sqlite3_context*
    - char*
    - sqlite3_value*
    - Fts3Cursor**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164493
      start: 164476
    functionDepth: 13
    functionLinenumber: 164476
    functionLinenumberEnd: 164493
    functionName: fts3FunctionArg
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mprintf
    - sqlite3_value_pointer
    - sqlite3_free
    - sqlite3_result_error
    linkageType: ''
    returnType: int
    signature: "int fts3FunctionArg(\n  sqlite3_context *pContext,      /* SQL function
      call context */\n  const char *zFunc,              /* Function name */\n  sqlite3_value
      *pVal,            /* argv[0] passed to function */\n  Fts3Cursor **ppCsr              /*
      OUT: Store cursor handle here */\n)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:164513,1
    - Dst: sqlite3_result_error
      Src: /src/nss/lib/sqlite/sqlite3.c:164516,1
    - Dst: fts3FunctionArg
      Src: /src/nss/lib/sqlite/sqlite3.c:164520,1
    - Dst: sqlite3_value_int
      Src: /src/nss/lib/sqlite/sqlite3.c:164523,1
    - Dst: sqlite3_value_int
      Src: /src/nss/lib/sqlite/sqlite3.c:164524,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:164525,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:164526,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:164527,1
    - Dst: sqlite3_result_error_nomem
      Src: /src/nss/lib/sqlite/sqlite3.c:164530,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:164532,1
    - Dst: fts3CursorSeek
      Src: /src/nss/lib/sqlite/sqlite3.c:164533,1
    - Dst: sqlite3Fts3Snippet
      Src: /src/nss/lib/sqlite/sqlite3.c:164534,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - pContext
    - nVal
    - apVal
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( nVal>=1 )
      pos:
        line_end: 164512
        line_start: 164512
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 164536
      start: 164498
    functionDepth: 30
    functionLinenumber: 164498
    functionLinenumberEnd: 164536
    functionName: fts3SnippetFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_value_int
    - assert
    - sqlite3Fts3Snippet
    - sqlite3_result_error_nomem
    - fts3CursorSeek
    - sqlite3_value_text
    - fts3FunctionArg
    - sqlite3_result_text
    - sqlite3_result_error
    linkageType: ''
    returnType: void
    signature: "void fts3SnippetFunc(\n  sqlite3_context *pContext,      /* SQLite
      function call context */\n  int nVal,                       /* Size of apVal[]
      array */\n  sqlite3_value **apVal           /* Array of arguments */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:164548,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:164550,1
    - Dst: fts3FunctionArg
      Src: /src/nss/lib/sqlite/sqlite3.c:164551,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:164552,1
    - Dst: fts3CursorSeek
      Src: /src/nss/lib/sqlite/sqlite3.c:164553,1
    - Dst: sqlite3Fts3Offsets
      Src: /src/nss/lib/sqlite/sqlite3.c:164554,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - pContext
    - nVal
    - apVal
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( nVal==1 )
      pos:
        line_end: 164549
        line_start: 164549
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCsr )
      pos:
        line_end: 164551
        line_start: 164551
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 164556
      start: 164541
    functionDepth: 30
    functionLinenumber: 164541
    functionLinenumberEnd: 164556
    functionName: fts3OffsetsFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    - sqlite3Fts3Offsets
    - assert
    - fts3CursorSeek
    - fts3FunctionArg
    linkageType: ''
    returnType: void
    signature: "void fts3OffsetsFunc(\n  sqlite3_context *pContext,      /* SQLite
      function call context */\n  int nVal,                       /* Size of argument
      array */\n  sqlite3_value **apVal           /* Array of arguments */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:164576,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:164578,1
    - Dst: fts3FunctionArg
      Src: /src/nss/lib/sqlite/sqlite3.c:164579,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:164581,1
    - Dst: sqlite3Fts3Optimize
      Src: /src/nss/lib/sqlite/sqlite3.c:164583,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:164587,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:164590,1
    - Dst: sqlite3_result_error_code
      Src: /src/nss/lib/sqlite/sqlite3.c:164593,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - pContext
    - nVal
    - apVal
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( p )
      pos:
        line_end: 164580
        line_start: 164580
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nVal==1 )
      pos:
        line_end: 164577
        line_start: 164577
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 164596
      start: 164567
    functionDepth: 14
    functionLinenumber: 164567
    functionLinenumberEnd: 164596
    functionName: fts3OptimizeFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_error_code
    - UNUSED_PARAMETER
    - assert
    - fts3FunctionArg
    - sqlite3Fts3Optimize
    - sqlite3_result_text
    linkageType: ''
    returnType: void
    signature: "void fts3OptimizeFunc(\n  sqlite3_context *pContext,      /* SQLite
      function call context */\n  int nVal,                       /* Size of argument
      array */\n  sqlite3_value **apVal           /* Array of arguments */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:164607,1
    - Dst: fts3FunctionArg
      Src: /src/nss/lib/sqlite/sqlite3.c:164608,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:164611,1
    - Dst: sqlite3Fts3Matchinfo
      Src: /src/nss/lib/sqlite/sqlite3.c:164613,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - pContext
    - nVal
    - apVal
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( nVal==1 || nVal==2 )
      pos:
        line_end: 164606
        line_start: 164606
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 164615
      start: 164601
    functionDepth: 15
    functionLinenumber: 164601
    functionLinenumberEnd: 164615
    functionName: fts3MatchinfoFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_value_text
    - fts3FunctionArg
    - sqlite3Fts3Matchinfo
    linkageType: ''
    returnType: void
    signature: "void fts3MatchinfoFunc(\n  sqlite3_context *pContext,      /* SQLite
      function call context */\n  int nVal,                       /* Size of argument
      array */\n  sqlite3_value **apVal           /* Array of arguments */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:164639,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:164640,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:164641,1
    - Dst: SizeofArray
      Src: /src/nss/lib/sqlite/sqlite3.c:164643,1
    - Dst: strcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:164644,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - pVtab
    - nArg
    - zName
    - ppArg
    argTypes:
    - sqlite3_vtab*
    - int
    - char*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164652
      start: 164621
    functionDepth: 1
    functionLinenumber: 164621
    functionLinenumberEnd: 164652
    functionName: fts3FindFunctionMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - SizeofArray
    - UNUSED_PARAMETER
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int fts3FindFunctionMethod(\n  sqlite3_vtab *pVtab,            /*
      Virtual table handle */\n  int nArg,                       /* Number of SQL
      function arguments */\n  const char *zName,              /* Name of SQL function
      */\n  void (**pxFunc)(sqlite3_context*,int,sqlite3_value**), /* OUT: Result
      */\n  void **ppArg                    /* Unused */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fts3SetHasStat
      Src: /src/nss/lib/sqlite/sqlite3.c:164667,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:164675,1
    - Dst: sqlite3Fts3PendingTermsFlush
      Src: /src/nss/lib/sqlite/sqlite3.c:164677,1
    - Dst: fts3DbExec
      Src: /src/nss/lib/sqlite/sqlite3.c:164681,1
    - Dst: fts3DbExec
      Src: /src/nss/lib/sqlite/sqlite3.c:164688,1
    - Dst: fts3DbExec
      Src: /src/nss/lib/sqlite/sqlite3.c:164694,1
    - Dst: fts3DbExec
      Src: /src/nss/lib/sqlite/sqlite3.c:164699,1
    - Dst: fts3DbExec
      Src: /src/nss/lib/sqlite/sqlite3.c:164703,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - pVtab
    - zName
    argTypes:
    - sqlite3_vtab*
    - char*
    assertStmts:
    - condition: ( p->nPendingData==0 )
      pos:
        line_end: 164674
        line_start: 164674
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 164708
      start: 164657
    functionDepth: 29
    functionLinenumber: 164657
    functionLinenumberEnd: 164708
    functionName: fts3RenameMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3SetHasStat
    - fts3DbExec
    - assert
    - sqlite3Fts3PendingTermsFlush
    linkageType: ''
    returnType: int
    signature: "int fts3RenameMethod(\n  sqlite3_vtab *pVtab,            /* Virtual
      table handle */\n  const char *zName               /* New name of table */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:164717,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:164718,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:164719,1
    - Dst: TESTONLY
      Src: /src/nss/lib/sqlite/sqlite3.c:164720,1
    - Dst: fts3SyncMethod
      Src: /src/nss/lib/sqlite/sqlite3.c:164722,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - pVtab
    - iSavepoint
    argTypes:
    - sqlite3_vtab*
    - int
    assertStmts:
    - condition: ( ((Fts3Table *)pVtab)->mxSavepoint <= iSavepoint )
      pos:
        line_end: 164718
        line_start: 164718
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( ((Fts3Table *)pVtab)->inTransaction )
      pos:
        line_end: 164717
        line_start: 164717
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 164725
      start: 164715
    functionDepth: 14
    functionLinenumber: 164715
    functionLinenumberEnd: 164725
    functionName: fts3SavepointMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fts3SyncMethod
    - UNUSED_PARAMETER
    - TESTONLY
    linkageType: ''
    returnType: int
    signature: int fts3SavepointMethod(sqlite3_vtab *pVtab, int iSavepoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TESTONLY
      Src: /src/nss/lib/sqlite/sqlite3.c:164733,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:164734,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:164735,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:164736,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:164737,1
    - Dst: TESTONLY
      Src: /src/nss/lib/sqlite/sqlite3.c:164738,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - pVtab
    - iSavepoint
    argTypes:
    - sqlite3_vtab*
    - int
    assertStmts:
    - condition: ( p->inTransaction )
      pos:
        line_end: 164735
        line_start: 164735
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->mxSavepoint >= iSavepoint )
      pos:
        line_end: 164736
        line_start: 164736
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 164740
      start: 164732
    functionDepth: 1
    functionLinenumber: 164732
    functionLinenumberEnd: 164740
    functionName: fts3ReleaseMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - UNUSED_PARAMETER
    - TESTONLY
    linkageType: ''
    returnType: int
    signature: int fts3ReleaseMethod(sqlite3_vtab *pVtab, int iSavepoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:164749,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:164750,1
    - Dst: TESTONLY
      Src: /src/nss/lib/sqlite/sqlite3.c:164751,1
    - Dst: sqlite3Fts3PendingTermsClear
      Src: /src/nss/lib/sqlite/sqlite3.c:164752,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - pVtab
    - iSavepoint
    argTypes:
    - sqlite3_vtab*
    - int
    assertStmts:
    - condition: ( p->inTransaction )
      pos:
        line_end: 164749
        line_start: 164749
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 164754
      start: 164747
    functionDepth: 1
    functionLinenumber: 164747
    functionLinenumberEnd: 164754
    functionName: fts3RollbackToMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3Fts3PendingTermsClear
    - UNUSED_PARAMETER
    - TESTONLY
    linkageType: ''
    returnType: int
    signature: int fts3RollbackToMethod(sqlite3_vtab *pVtab, int iSavepoint)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:164766,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - zName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164769
      start: 164760
    functionDepth: 2
    functionLinenumber: 164760
    functionLinenumberEnd: 164769
    functionName: fts3ShadowName
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_stricmp
    linkageType: ''
    returnType: int
    signature: int fts3ShadowName(const char *zName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3HashClear
      Src: /src/nss/lib/sqlite/sqlite3.c:164805,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:164806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164807
      start: 164803
    functionDepth: 3
    functionLinenumber: 164803
    functionLinenumberEnd: 164807
    functionName: hashDestroy
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    - sqlite3Fts3HashClear
    linkageType: ''
    returnType: void
    signature: void hashDestroy(void *p)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3IcuTokenizerModule
      Src: /src/nss/lib/sqlite/sqlite3.c:164845,1
    - Dst: sqlite3Fts3UnicodeTokenizer
      Src: /src/nss/lib/sqlite/sqlite3.c:164849,1
    - Dst: sqlite3Fts3InitTerm
      Src: /src/nss/lib/sqlite/sqlite3.c:164853,1
    - Dst: sqlite3Fts3InitAux
      Src: /src/nss/lib/sqlite/sqlite3.c:164857,1
    - Dst: sqlite3Fts3SimpleTokenizerModule
      Src: /src/nss/lib/sqlite/sqlite3.c:164860,1
    - Dst: sqlite3Fts3PorterTokenizerModule
      Src: /src/nss/lib/sqlite/sqlite3.c:164861,1
    - Dst: sqlite3_malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:164864,1
    - Dst: sqlite3Fts3HashInit
      Src: /src/nss/lib/sqlite/sqlite3.c:164868,1
    - Dst: sqlite3Fts3HashInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:164873,1
    - Dst: sqlite3Fts3HashInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:164874,1
    - Dst: sqlite3Fts3HashInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:164877,1
    - Dst: sqlite3Fts3HashInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:164880,1
    - Dst: sqlite3Fts3ExprInitTestInterface
      Src: /src/nss/lib/sqlite/sqlite3.c:164889,1
    - Dst: sqlite3Fts3InitHashTable
      Src: /src/nss/lib/sqlite/sqlite3.c:164898,1
    - Dst: sqlite3_overload_function
      Src: /src/nss/lib/sqlite/sqlite3.c:164899,1
    - Dst: sqlite3_overload_function
      Src: /src/nss/lib/sqlite/sqlite3.c:164900,1
    - Dst: sqlite3_overload_function
      Src: /src/nss/lib/sqlite/sqlite3.c:164901,1
    - Dst: sqlite3_overload_function
      Src: /src/nss/lib/sqlite/sqlite3.c:164902,1
    - Dst: sqlite3_overload_function
      Src: /src/nss/lib/sqlite/sqlite3.c:164903,1
    - Dst: sqlite3_create_module_v2
      Src: /src/nss/lib/sqlite/sqlite3.c:164905,1
    - Dst: sqlite3_create_module_v2
      Src: /src/nss/lib/sqlite/sqlite3.c:164909,1
    - Dst: sqlite3Fts3InitTok
      Src: /src/nss/lib/sqlite/sqlite3.c:164914,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:164921,1
    - Dst: sqlite3Fts3HashClear
      Src: /src/nss/lib/sqlite/sqlite3.c:164923,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:164924,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 41
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts:
    - condition: ( rc!=SQLITE_OK )
      pos:
        line_end: 164920
        line_start: 164920
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 164927
      start: 164834
    functionDepth: 15
    functionLinenumber: 164834
    functionLinenumberEnd: 164927
    functionName: sqlite3Fts3Init
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts3UnicodeTokenizer
    - sqlite3_malloc
    - sqlite3Fts3HashInsert
    - sqlite3Fts3ExprInitTestInterface
    - sqlite3Fts3InitTerm
    - sqlite3Fts3HashClear
    - sqlite3Fts3SimpleTokenizerModule
    - sqlite3Fts3PorterTokenizerModule
    - sqlite3Fts3InitAux
    - sqlite3Fts3HashInit
    - sqlite3Fts3InitHashTable
    - sqlite3_overload_function
    - sqlite3_create_module_v2
    - assert
    - sqlite3Fts3IcuTokenizerModule
    - sqlite3_free
    - sqlite3Fts3InitTok
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3Init(sqlite3 *db)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fts3TermSegReaderCursor
      Src: /src/nss/lib/sqlite/sqlite3.c:164958,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:164966,1
    - Dst: fts3EvalAllocateReaders
      Src: /src/nss/lib/sqlite/sqlite3.c:164970,1
    - Dst: fts3EvalAllocateReaders
      Src: /src/nss/lib/sqlite/sqlite3.c:164971,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 5
    argNames:
    - pCsr
    - pExpr
    - pnToken
    - pnOr
    - pRc
    argTypes:
    - Fts3Cursor*
    - Fts3Expr*
    - int*
    - int*
    - int*
    assertStmts:
    - condition: ( pExpr->pPhrase->iDoclistToken==0 )
      pos:
        line_end: 164965
        line_start: 164965
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 164974
      start: 164944
    functionDepth: 30
    functionLinenumber: 164944
    functionLinenumberEnd: 164974
    functionName: fts3EvalAllocateReaders
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - fts3EvalAllocateReaders
    - fts3TermSegReaderCursor
    linkageType: ''
    returnType: void
    signature: "void fts3EvalAllocateReaders(\n  Fts3Cursor *pCsr,               /*
      FTS cursor handle */\n  Fts3Expr *pExpr,                /* Allocate readers
      for this expression */\n  int *pnToken,                   /* OUT: Total number
      of tokens in phrase. */\n  int *pnOr,                      /* OUT: Total number
      of OR nodes in expr. */\n  int *pRc                        /* IN/OUT: Error
      code */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:164994,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:164997,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:165008,1
    - Dst: fts3DoclistPhraseMerge
      Src: /src/nss/lib/sqlite/sqlite3.c:165032,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:165035,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 5
    argNames:
    - pTab
    - p
    - iToken
    - pList
    - nList
    argTypes:
    - Fts3Table*
    - Fts3Phrase*
    - int
    - char*
    - int
    assertStmts:
    - condition: ( iToken!=p->iDoclistToken )
      pos:
        line_end: 164993
        line_start: 164993
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 165042
      start: 164986
    functionDepth: 7
    functionLinenumber: 164986
    functionLinenumberEnd: 165042
    functionName: fts3EvalPhraseMergeToken
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fts3DoclistPhraseMerge
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int fts3EvalPhraseMergeToken(\n  Fts3Table *pTab,                /*
      FTS Table pointer */\n  Fts3Phrase *p,                  /* Phrase to merge pList/nList
      into */\n  int iToken,                     /* Token pList/nList corresponds
      to */\n  char *pList,                    /* Pointer to doclist */\n  int nList
      \                      /* Number of bytes in pList */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:165060,1
    - Dst: fts3TermSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:165065,1
    - Dst: fts3EvalPhraseMergeToken
      Src: /src/nss/lib/sqlite/sqlite3.c:165067,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:165070,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - pCsr
    - p
    argTypes:
    - Fts3Cursor*
    - Fts3Phrase*
    assertStmts:
    - condition: ( pToken->pDeferred==0 || pToken->pSegcsr==0 )
      pos:
        line_end: 165059
        line_start: 165059
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pToken->pSegcsr==0 )
      pos:
        line_end: 165069
        line_start: 165069
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 165074
      start: 165050
    functionDepth: 9
    functionLinenumber: 165050
    functionLinenumberEnd: 165074
    functionName: fts3EvalPhraseLoad
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fts3EvalPhraseMergeToken
    - fts3TermSelect
    linkageType: ''
    returnType: int
    signature: "int fts3EvalPhraseLoad(\n  Fts3Cursor *pCsr,               /* FTS
      Cursor handle */\n  Fts3Phrase *p                   /* Phrase object */\n)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:165093,1
    - Dst: sqlite3Fts3DeferredTokenList
      Src: /src/nss/lib/sqlite/sqlite3.c:165102,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:165106,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:165120,1
    - Dst: fts3PoslistPhraseMerge
      Src: /src/nss/lib/sqlite/sqlite3.c:165121,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:165122,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:165126,1
    - Dst: sqlite3_malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:165159,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:165161,1
    - Dst: fts3PoslistPhraseMerge
      Src: /src/nss/lib/sqlite/sqlite3.c:165166,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:165170,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:165174,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 65
    argCount: 2
    argNames:
    - pCsr
    - pPhrase
    argTypes:
    - Fts3Cursor*
    - Fts3Phrase*
    assertStmts:
    - condition: ( pPhrase->doclist.bFreeList==0 )
      pos:
        line_end: 165092
        line_start: 165092
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iPrev>=0 )
      pos:
        line_end: 165119
        line_start: 165119
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 165179
      start: 165087
    functionDepth: 6
    functionLinenumber: 165087
    functionLinenumberEnd: 165179
    functionName: fts3EvalDeferredPhrase
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_malloc
    - fts3PoslistPhraseMerge
    - sqlite3Fts3DeferredTokenList
    - assert
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int fts3EvalDeferredPhrase(Fts3Cursor *pCsr, Fts3Phrase *pPhrase)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3MsrIncrStart
      Src: /src/nss/lib/sqlite/sqlite3.c:165233,1
    - Dst: fts3EvalPhraseLoad
      Src: /src/nss/lib/sqlite/sqlite3.c:165239,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:165243,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 21
    argCount: 3
    argNames:
    - pCsr
    - bOptOk
    - p
    argTypes:
    - Fts3Cursor*
    - int
    - Fts3Phrase*
    assertStmts:
    - condition: ( rc!=SQLITE_OK || p->nToken<1 || p->aToken[0].pSegcsr==0 || p->bIncr
        )
      pos:
        line_end: 165242
        line_start: 165242
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 165245
      start: 165200
    functionDepth: 10
    functionLinenumber: 165200
    functionLinenumberEnd: 165245
    functionName: fts3EvalPhraseStart
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3Fts3MsrIncrStart
    - fts3EvalPhraseLoad
    linkageType: ''
    returnType: int
    signature: int fts3EvalPhraseStart(Fts3Cursor *pCsr, int bOptOk, Fts3Phrase *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:165268,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:165269,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:165270,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:165271,1
    - Dst: sqlite3Fts3GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:165282,1
    - Dst: fts3PoslistCopy
      Src: /src/nss/lib/sqlite/sqlite3.c:165285,1
    - Dst: fts3GetReverseVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:165296,1
    - Dst: fts3ReversePoslist
      Src: /src/nss/lib/sqlite/sqlite3.c:165303,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 7
    argNames:
    - bDescIdx
    - aDoclist
    - nDoclist
    - ppIter
    - piDocid
    - pnList
    - pbEof
    argTypes:
    - int
    - char*
    - int
    - char**
    - sqlite3_int64*
    - int*
    - u8*
    assertStmts:
    - condition: ( nDoclist>0 )
      pos:
        line_end: 165267
        line_start: 165267
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p || *piDocid==0 )
      pos:
        line_end: 165269
        line_start: 165269
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !p || (p>aDoclist && p<&aDoclist[nDoclist]) )
      pos:
        line_end: 165270
        line_start: 165270
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( *pbEof==0 )
      pos:
        line_end: 165268
        line_start: 165268
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 165308
      start: 165257
    functionDepth: 3
    functionLinenumber: 165257
    functionLinenumberEnd: 165308
    functionName: sqlite3Fts3DoclistPrev
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3PoslistCopy
    - assert
    - sqlite3Fts3GetVarint
    - fts3ReversePoslist
    - fts3GetReverseVarint
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3DoclistPrev(\n  int bDescIdx,                   /*
      True if the doclist is desc */\n  char *aDoclist,                 /* Pointer
      to entire doclist */\n  int nDoclist,                   /* Length of aDoclist
      in bytes */\n  char **ppIter,                  /* IN/OUT: Iterator pointer */\n
      \ sqlite3_int64 *piDocid,         /* IN/OUT: Docid pointer */\n  int *pnList,
      \                   /* OUT: List length pointer */\n  u8 *pbEof                       /*
      OUT: End-of-file flag */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:165323,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:165324,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:165325,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:165326,1
    - Dst: sqlite3Fts3GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:165330,1
    - Dst: fts3PoslistCopy
      Src: /src/nss/lib/sqlite/sqlite3.c:165332,1
    - Dst: sqlite3Fts3GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:165338,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 6
    argNames:
    - bDescIdx
    - aDoclist
    - nDoclist
    - ppIter
    - piDocid
    - pbEof
    argTypes:
    - int
    - char*
    - int
    - char**
    - sqlite3_int64*
    - u8*
    assertStmts:
    - condition: ( nDoclist>0 )
      pos:
        line_end: 165322
        line_start: 165322
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p || *piDocid==0 )
      pos:
        line_end: 165324
        line_start: 165324
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( *pbEof==0 )
      pos:
        line_end: 165323
        line_start: 165323
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !p || (p>=aDoclist && p<=&aDoclist[nDoclist]) )
      pos:
        line_end: 165325
        line_start: 165325
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 165344
      start: 165313
    functionDepth: 2
    functionLinenumber: 165313
    functionLinenumberEnd: 165344
    functionName: sqlite3Fts3DoclistNext
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3Fts3GetVarint
    - fts3PoslistCopy
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3DoclistNext(\n  int bDescIdx,                   /*
      True if the doclist is desc */\n  char *aDoclist,                 /* Pointer
      to entire doclist */\n  int nDoclist,                   /* Length of aDoclist
      in bytes */\n  char **ppIter,                  /* IN/OUT: Iterator pointer */\n
      \ sqlite3_int64 *piDocid,         /* IN/OUT: Docid pointer */\n  u8 *pbEof                       /*
      OUT: End-of-file flag */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:165369,1
    - Dst: fts3PoslistCopy
      Src: /src/nss/lib/sqlite/sqlite3.c:165376,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:165388,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - pTab
    - pDL
    - pbEof
    argTypes:
    - Fts3Table*
    - Fts3Doclist*
    - u8*
    assertStmts:
    - condition: ( pIter>=&pDL->aAll[pDL->nAll] || *pIter )
      pos:
        line_end: 165387
        line_start: 165387
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 165391
      start: 165350
    functionDepth: 2
    functionLinenumber: 165350
    functionLinenumberEnd: 165391
    functionName: fts3EvalDlPhraseNext
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3Fts3GetVarint
    - fts3PoslistCopy
    linkageType: ''
    returnType: void
    signature: "void fts3EvalDlPhraseNext(\n  Fts3Table *pTab,\n  Fts3Doclist *pDL,\n
      \ u8 *pbEof\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:165423,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:165424,1
    - Dst: fts3EvalDlPhraseNext
      Src: /src/nss/lib/sqlite/sqlite3.c:165425,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:165431,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:165432,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:165434,1
    - Dst: sqlite3Fts3MsrIncrNext
      Src: /src/nss/lib/sqlite/sqlite3.c:165435,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 5
    argNames:
    - pTab
    - pPhrase
    - iToken
    - p
    - pbEof
    argTypes:
    - Fts3Table*
    - Fts3Phrase*
    - int
    - TokenDoclist*
    - u8*
    assertStmts:
    - condition: ( p->bIgnore==0 )
      pos:
        line_end: 165422
        line_start: 165422
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pToken->pSegcsr || pPhrase->iDoclistToken>=0 )
      pos:
        line_end: 165431
        line_start: 165431
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pToken->pDeferred==0 )
      pos:
        line_end: 165430
        line_start: 165430
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPhrase->aToken[iToken].pSegcsr==0 )
      pos:
        line_end: 165423
        line_start: 165423
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->bIgnore==0 )
      pos:
        line_end: 165433
        line_start: 165433
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 165445
      start: 165413
    functionDepth: 3
    functionLinenumber: 165413
    functionLinenumberEnd: 165445
    functionName: incrPhraseTokenNext
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fts3EvalDlPhraseNext
    - sqlite3Fts3MsrIncrNext
    linkageType: ''
    returnType: int
    signature: "int incrPhraseTokenNext(\n  Fts3Table *pTab,                /* Virtual
      table handle */\n  Fts3Phrase *pPhrase,            /* Phrase to advance token
      of */\n  int iToken,                     /* Specific token to advance */\n  TokenDoclist
      *p,                /* OUT: Docid and doclist for new entry */\n  u8 *pbEof                       /*
      OUT: True if iterator is at EOF */\n)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:165477,1
    - Dst: sqlite3Fts3MsrIncrNext
      Src: /src/nss/lib/sqlite/sqlite3.c:165480,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:165488,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:165489,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:165490,1
    - Dst: incrPhraseTokenNext
      Src: /src/nss/lib/sqlite/sqlite3.c:165499,1
    - Dst: DOCID_CMP
      Src: /src/nss/lib/sqlite/sqlite3.c:165500,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:165505,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:165506,1
    - Dst: DOCID_CMP
      Src: /src/nss/lib/sqlite/sqlite3.c:165511,1
    - Dst: incrPhraseTokenNext
      Src: /src/nss/lib/sqlite/sqlite3.c:165513,1
    - Dst: DOCID_CMP
      Src: /src/nss/lib/sqlite/sqlite3.c:165514,1
    - Dst: sqlite3_malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:165525,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:165527,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:165528,1
    - Dst: fts3PoslistPhraseMerge
      Src: /src/nss/lib/sqlite/sqlite3.c:165536,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:165548,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 54
    argCount: 3
    argNames:
    - pCsr
    - p
    - pbEof
    argTypes:
    - Fts3Cursor*
    - Fts3Phrase*
    - u8*
    assertStmts:
    - condition: ( p->bIncr==1 )
      pos:
        line_end: 165476
        line_start: 165476
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->iDoclistToken<MAX_INCR_PHRASE_TOKENS )
      pos:
        line_end: 165489
        line_start: 165489
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->nToken<=MAX_INCR_PHRASE_TOKENS )
      pos:
        line_end: 165488
        line_start: 165488
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc!=SQLITE_OK || (p->nToken>=1 && a[p->nToken-1].bIgnore==0) )
      pos:
        line_end: 165504
        line_start: 165504
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc!=SQLITE_OK || bMaxSet )
      pos:
        line_end: 165505
        line_start: 165505
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 165555
      start: 165465
    functionDepth: 6
    functionLinenumber: 165465
    functionLinenumberEnd: 165555
    functionName: fts3EvalIncrPhraseNext
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_malloc
    - memcpy
    - DOCID_CMP
    - fts3PoslistPhraseMerge
    - assert
    - incrPhraseTokenNext
    - memset
    - sqlite3Fts3MsrIncrNext
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int fts3EvalIncrPhraseNext(\n  Fts3Cursor *pCsr,               /*
      FTS Cursor handle */\n  Fts3Phrase *p,                  /* Phrase object to
      advance to next docid */\n  u8 *pbEof                       /* OUT: Set to 1
      if EOF */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fts3EvalIncrPhraseNext
      Src: /src/nss/lib/sqlite/sqlite3.c:165576,1
    - Dst: sqlite3Fts3DoclistPrev
      Src: /src/nss/lib/sqlite/sqlite3.c:165578,1
    - Dst: fts3EvalDlPhraseNext
      Src: /src/nss/lib/sqlite/sqlite3.c:165583,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - pCsr
    - p
    - pbEof
    argTypes:
    - Fts3Cursor*
    - Fts3Phrase*
    - u8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165587
      start: 165566
    functionDepth: 7
    functionLinenumber: 165566
    functionLinenumberEnd: 165587
    functionName: fts3EvalPhraseNext
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts3DoclistPrev
    - fts3EvalDlPhraseNext
    - fts3EvalIncrPhraseNext
    linkageType: ''
    returnType: int
    signature: "int fts3EvalPhraseNext(\n  Fts3Cursor *pCsr,               /* FTS
      Cursor handle */\n  Fts3Phrase *p,                  /* Phrase object to advance
      to next docid */\n  u8 *pbEof                       /* OUT: Set to 1 if EOF
      */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fts3EvalPhraseStart
      Src: /src/nss/lib/sqlite/sqlite3.c:165620,1
    - Dst: fts3EvalStartReaders
      Src: /src/nss/lib/sqlite/sqlite3.c:165622,1
    - Dst: fts3EvalStartReaders
      Src: /src/nss/lib/sqlite/sqlite3.c:165623,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 3
    argNames:
    - pCsr
    - pExpr
    - pRc
    argTypes:
    - Fts3Cursor*
    - Fts3Expr*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165627
      start: 165605
    functionDepth: 11
    functionLinenumber: 165605
    functionLinenumberEnd: 165627
    functionName: fts3EvalStartReaders
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - fts3EvalStartReaders
    - fts3EvalPhraseStart
    linkageType: ''
    returnType: void
    signature: "void fts3EvalStartReaders(\n  Fts3Cursor *pCsr,               /* FTS
      Cursor handle */\n  Fts3Expr *pExpr,                /* Expression to initialize
      phrases in */\n  int *pRc                        /* IN/OUT: Error code */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3MsrOvfl
      Src: /src/nss/lib/sqlite/sqlite3.c:165677,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:165680,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:165684,1
    - Dst: fts3EvalTokenCosts
      Src: /src/nss/lib/sqlite/sqlite3.c:165690,1
    - Dst: fts3EvalTokenCosts
      Src: /src/nss/lib/sqlite/sqlite3.c:165696,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 6
    argNames:
    - pCsr
    - pRoot
    - pExpr
    - ppTC
    - ppOr
    - pRc
    argTypes:
    - Fts3Cursor*
    - Fts3Expr*
    - Fts3Expr*
    - Fts3TokenAndCost**
    - Fts3Expr***
    - int*
    assertStmts:
    - condition: "( pExpr->eType==FTSQUERY_OR\n           || pExpr->eType==FTSQUERY_AND\n
        \          || pExpr->eType==FTSQUERY_NEAR\n      )"
      pos:
        line_end: 165682
        line_start: 165679
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pExpr->pLeft && pExpr->pRight )
      pos:
        line_end: 165683
        line_start: 165683
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 165699
      start: 165658
    functionDepth: 1
    functionLinenumber: 165658
    functionLinenumberEnd: 165699
    functionName: fts3EvalTokenCosts
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - fts3EvalTokenCosts
    - sqlite3Fts3MsrOvfl
    linkageType: ''
    returnType: void
    signature: "void fts3EvalTokenCosts(\n  Fts3Cursor *pCsr,               /* FTS
      Cursor handle */\n  Fts3Expr *pRoot,                /* Root of current AND/NEAR
      cluster */\n  Fts3Expr *pExpr,                /* Expression to consider */\n
      \ Fts3TokenAndCost **ppTC,        /* Write new entries to *(*ppTC)++ */\n  Fts3Expr
      ***ppOr,               /* Write new OR root to *(*ppOr)++ */\n  int *pRc                        /*
      IN/OUT: Error code */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3SelectDoctotal
      Src: /src/nss/lib/sqlite/sqlite3.c:165733,1
    - Dst: sqlite3_column_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:165735,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:165736,1
    - Dst: sqlite3_column_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:165738,1
    - Dst: sqlite3Fts3GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:165739,1
    - Dst: sqlite3Fts3GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:165741,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:165744,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:165750,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:165751,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - pCsr
    - pnPage
    argTypes:
    - Fts3Cursor*
    - int*
    assertStmts:
    - condition: ( a )
      pos:
        line_end: 165735
        line_start: 165735
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCsr->nRowAvg>0 )
      pos:
        line_end: 165749
        line_start: 165749
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 165756
      start: 165712
    functionDepth: 25
    functionLinenumber: 165712
    functionLinenumberEnd: 165756
    functionName: fts3EvalAverageDocsize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_reset
    - sqlite3_column_blob
    - sqlite3_column_bytes
    - assert
    - sqlite3Fts3GetVarint
    - sqlite3Fts3SelectDoctotal
    linkageType: ''
    returnType: int
    signature: int fts3EvalAverageDocsize(Fts3Cursor *pCsr, int *pnPage)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fts3EvalAverageDocsize
      Src: /src/nss/lib/sqlite/sqlite3.c:165809,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:165810,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:165847,1
    - Dst: sqlite3Fts3DeferToken
      Src: /src/nss/lib/sqlite/sqlite3.c:165855,1
    - Dst: fts3SegReaderCursorFree
      Src: /src/nss/lib/sqlite/sqlite3.c:165856,1
    - Dst: fts3TermSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:165871,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:165872,1
    - Dst: fts3EvalPhraseMergeToken
      Src: /src/nss/lib/sqlite/sqlite3.c:165874,1
    - Dst: fts3DoclistCountDocids
      Src: /src/nss/lib/sqlite/sqlite3.c:165880,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 44
    argCount: 4
    argNames:
    - pCsr
    - pRoot
    - aTC
    - nTC
    argTypes:
    - Fts3Cursor*
    - Fts3Expr*
    - Fts3TokenAndCost*
    - int
    assertStmts:
    - condition: ( rc!=SQLITE_OK || nDocSize>0 )
      pos:
        line_end: 165809
        line_start: 165809
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTC )
      pos:
        line_end: 165846
        line_start: 165846
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc==SQLITE_OK || pList==0 )
      pos:
        line_end: 165871
        line_start: 165871
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 165891
      start: 165772
    functionDepth: 26
    functionLinenumber: 165772
    functionLinenumberEnd: 165891
    functionName: fts3EvalSelectDeferred
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3DoclistCountDocids
    - fts3EvalAverageDocsize
    - sqlite3Fts3DeferToken
    - assert
    - fts3SegReaderCursorFree
    - fts3TermSelect
    - fts3EvalPhraseMergeToken
    linkageType: ''
    returnType: int
    signature: "int fts3EvalSelectDeferred(\n  Fts3Cursor *pCsr,               /*
      FTS Cursor handle */\n  Fts3Expr *pRoot,                /* Consider tokens with
      this root node */\n  Fts3TokenAndCost *aTC,          /* Array of expression
      tokens and costs */\n  int nTC                         /* Number of entries
      in aTC[] */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fts3EvalAllocateReaders
      Src: /src/nss/lib/sqlite/sqlite3.c:165912,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:165919,1
    - Dst: fts3EvalTokenCosts
      Src: /src/nss/lib/sqlite/sqlite3.c:165932,1
    - Dst: fts3EvalSelectDeferred
      Src: /src/nss/lib/sqlite/sqlite3.c:165937,1
    - Dst: fts3EvalSelectDeferred
      Src: /src/nss/lib/sqlite/sqlite3.c:165939,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:165943,1
    - Dst: fts3EvalStartReaders
      Src: /src/nss/lib/sqlite/sqlite3.c:165948,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - pCsr
    argTypes:
    - Fts3Cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165950
      start: 165905
    functionDepth: 31
    functionLinenumber: 165905
    functionLinenumberEnd: 165950
    functionName: fts3EvalStart
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - fts3EvalTokenCosts
    - sqlite3_malloc64
    - fts3EvalSelectDeferred
    - fts3EvalStartReaders
    - fts3EvalAllocateReaders
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int fts3EvalStart(Fts3Cursor *pCsr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:165957,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pPhrase
    argTypes:
    - Fts3Phrase*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165962
      start: 165955
    functionDepth: 3
    functionLinenumber: 165955
    functionLinenumberEnd: 165962
    functionName: fts3EvalInvalidatePoslist
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void fts3EvalInvalidatePoslist(Fts3Phrase *pPhrase)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:166000,1
    - Dst: fts3PoslistNearMerge
      Src: /src/nss/lib/sqlite/sqlite3.c:166003,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:166008,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:166009,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:166010,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 5
    argNames:
    - nNear
    - aTmp
    - paPoslist
    - pnToken
    - pPhrase
    argTypes:
    - int
    - char*
    - char**
    - int*
    - Fts3Phrase*
    assertStmts:
    - condition: ( pPhrase->doclist.pList )
      pos:
        line_end: 165999
        line_start: 165999
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPhrase->doclist.pList[nNew]=='\0' )
      pos:
        line_end: 166007
        line_start: 166007
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nNew<=pPhrase->doclist.nList && nNew>0 )
      pos:
        line_end: 166008
        line_start: 166008
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 166017
      start: 165986
    functionDepth: 6
    functionLinenumber: 165986
    functionLinenumberEnd: 166017
    functionName: fts3EvalNearTrim
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fts3PoslistNearMerge
    - memset
    linkageType: ''
    returnType: int
    signature: "int fts3EvalNearTrim(\n  int nNear,                      /* NEAR distance.
      As in \"NEAR/nNear\". */\n  char *aTmp,                     /* Temporary space
      to use */\n  char **paPoslist,               /* IN/OUT: Position list */\n  int
      *pnToken,                   /* IN/OUT: Tokens in phrase of *paPoslist */\n  Fts3Phrase
      *pPhrase             /* The phrase object to trim the doclist of */\n)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:166067,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:166075,1
    - Dst: fts3EvalNextRow
      Src: /src/nss/lib/sqlite/sqlite3.c:166080,1
    - Dst: fts3EvalNextRow
      Src: /src/nss/lib/sqlite/sqlite3.c:166086,1
    - Dst: fts3EvalNextRow
      Src: /src/nss/lib/sqlite/sqlite3.c:166091,1
    - Dst: fts3EvalNextRow
      Src: /src/nss/lib/sqlite/sqlite3.c:166092,1
    - Dst: DOCID_CMP
      Src: /src/nss/lib/sqlite/sqlite3.c:166094,1
    - Dst: fts3EvalNextRow
      Src: /src/nss/lib/sqlite/sqlite3.c:166097,1
    - Dst: fts3EvalNextRow
      Src: /src/nss/lib/sqlite/sqlite3.c:166099,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:166105,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:166109,1
    - Dst: fts3EvalNextRow
      Src: /src/nss/lib/sqlite/sqlite3.c:166110,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:166116,1
    - Dst: fts3EvalNextRow
      Src: /src/nss/lib/sqlite/sqlite3.c:166117,1
    - Dst: DOCID_CMP
      Src: /src/nss/lib/sqlite/sqlite3.c:166128,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:166130,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:166131,1
    - Dst: fts3EvalNextRow
      Src: /src/nss/lib/sqlite/sqlite3.c:166134,1
    - Dst: fts3EvalNextRow
      Src: /src/nss/lib/sqlite/sqlite3.c:166136,1
    - Dst: fts3EvalNextRow
      Src: /src/nss/lib/sqlite/sqlite3.c:166138,1
    - Dst: fts3EvalNextRow
      Src: /src/nss/lib/sqlite/sqlite3.c:166139,1
    - Dst: DOCID_CMP
      Src: /src/nss/lib/sqlite/sqlite3.c:166143,1
    - Dst: fts3EvalNextRow
      Src: /src/nss/lib/sqlite/sqlite3.c:166158,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:166159,1
    - Dst: fts3EvalNextRow
      Src: /src/nss/lib/sqlite/sqlite3.c:166162,1
    - Dst: DOCID_CMP
      Src: /src/nss/lib/sqlite/sqlite3.c:166166,1
    - Dst: fts3EvalNextRow
      Src: /src/nss/lib/sqlite/sqlite3.c:166168,1
    - Dst: fts3EvalInvalidatePoslist
      Src: /src/nss/lib/sqlite/sqlite3.c:166178,1
    - Dst: fts3EvalPhraseNext
      Src: /src/nss/lib/sqlite/sqlite3.c:166179,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 93
    argCount: 3
    argNames:
    - pCsr
    - pExpr
    - pRc
    argTypes:
    - Fts3Cursor*
    - Fts3Expr*
    - int*
    assertStmts:
    - condition: ( *pRc!=SQLITE_OK || pRight->bStart )
      pos:
        line_end: 166158
        line_start: 166158
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pRight->eType==FTSQUERY_PHRASE )
      pos:
        line_end: 166104
        line_start: 166104
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pRight->bStart || pLeft->iDocid==pRight->iDocid )
      pos:
        line_end: 166130
        line_start: 166130
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pExpr->bEof==0 )
      pos:
        line_end: 166066
        line_start: 166066
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !pLeft->bDeferred || !pRight->bDeferred )
      pos:
        line_end: 166074
        line_start: 166074
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pLeft->bStart || pLeft->iDocid==pRight->iDocid )
      pos:
        line_end: 166129
        line_start: 166129
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 166185
      start: 166060
    functionDepth: 8
    functionLinenumber: 166060
    functionLinenumberEnd: 166185
    functionName: fts3EvalNextRow
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - fts3EvalPhraseNext
    - DOCID_CMP
    - assert
    - fts3EvalNextRow
    - memset
    - fts3EvalInvalidatePoslist
    linkageType: ''
    returnType: void
    signature: "void fts3EvalNextRow(\n  Fts3Cursor *pCsr,               /* FTS Cursor
      handle */\n  Fts3Expr *pExpr,                /* Expr. to advance to next matching
      row */\n  int *pRc                        /* IN/OUT: Error code */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:166235,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:166239,1
    - Dst: fts3EvalNearTrim
      Src: /src/nss/lib/sqlite/sqlite3.c:166250,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:166258,1
    - Dst: fts3EvalNearTrim
      Src: /src/nss/lib/sqlite/sqlite3.c:166263,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:166267,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 2
    argNames:
    - pExpr
    - pRc
    argTypes:
    - Fts3Expr*
    - int*
    assertStmts:
    - condition: ( p->pRight->pPhrase->doclist.nList>0 )
      pos:
        line_end: 166234
        line_start: 166234
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->pParent && p->pParent->pLeft==p )
      pos:
        line_end: 166257
        line_start: 166257
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 166271
      start: 166202
    functionDepth: 7
    functionLinenumber: 166202
    functionLinenumberEnd: 166271
    functionName: fts3EvalNearTest
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fts3EvalNearTrim
    - sqlite3_malloc64
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int fts3EvalNearTest(Fts3Expr *pExpr, int *pRc)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fts3EvalTestExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:166295,1
    - Dst: fts3EvalTestExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:166296,1
    - Dst: fts3EvalNearTest
      Src: /src/nss/lib/sqlite/sqlite3.c:166297,1
    - Dst: fts3EvalInvalidatePoslist
      Src: /src/nss/lib/sqlite/sqlite3.c:166322,1
    - Dst: fts3EvalInvalidatePoslist
      Src: /src/nss/lib/sqlite/sqlite3.c:166326,1
    - Dst: fts3EvalTestExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:166333,1
    - Dst: fts3EvalTestExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:166334,1
    - Dst: fts3EvalTestExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:166341,1
    - Dst: fts3EvalTestExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:166342,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:166352,1
    - Dst: fts3EvalInvalidatePoslist
      Src: /src/nss/lib/sqlite/sqlite3.c:166354,1
    - Dst: fts3EvalDeferredPhrase
      Src: /src/nss/lib/sqlite/sqlite3.c:166356,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 41
    argCount: 3
    argNames:
    - pCsr
    - pExpr
    - pRc
    argTypes:
    - Fts3Cursor*
    - Fts3Expr*
    - int*
    assertStmts:
    - condition: ( pExpr->bDeferred || pPhrase->doclist.bFreeList==0 )
      pos:
        line_end: 166351
        line_start: 166351
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 166369
      start: 166284
    functionDepth: 8
    functionLinenumber: 166284
    functionLinenumberEnd: 166369
    functionName: fts3EvalTestExpr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - fts3EvalDeferredPhrase
    - fts3EvalTestExpr
    - assert
    - fts3EvalNearTest
    - fts3EvalInvalidatePoslist
    linkageType: ''
    returnType: int
    signature: "int fts3EvalTestExpr(\n  Fts3Cursor *pCsr,               /* FTS cursor
      handle */\n  Fts3Expr *pExpr,                /* Expr to test. May or may not
      be root. */\n  int *pRc                        /* IN/OUT: Error code */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fts3CursorSeek
      Src: /src/nss/lib/sqlite/sqlite3.c:166407,1
    - Dst: sqlite3Fts3CacheDeferredDoclists
      Src: /src/nss/lib/sqlite/sqlite3.c:166409,1
    - Dst: fts3EvalTestExpr
      Src: /src/nss/lib/sqlite/sqlite3.c:166412,1
    - Dst: sqlite3Fts3FreeDeferredDoclists
      Src: /src/nss/lib/sqlite/sqlite3.c:166415,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - pCsr
    - pRc
    argTypes:
    - Fts3Cursor*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166419
      start: 166395
    functionDepth: 30
    functionLinenumber: 166395
    functionLinenumberEnd: 166419
    functionName: sqlite3Fts3EvalTestDeferred
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3CursorSeek
    - fts3EvalTestExpr
    - sqlite3Fts3FreeDeferredDoclists
    - sqlite3Fts3CacheDeferredDoclists
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3EvalTestDeferred(Fts3Cursor *pCsr, int *pRc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:166428,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:166434,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:166436,1
    - Dst: sqlite3_data_count
      Src: /src/nss/lib/sqlite/sqlite3.c:166436,1
    - Dst: fts3EvalNextRow
      Src: /src/nss/lib/sqlite/sqlite3.c:166437,1
    - Dst: sqlite3Fts3EvalTestDeferred
      Src: /src/nss/lib/sqlite/sqlite3.c:166442,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 1
    argNames:
    - pCsr
    argTypes:
    - Fts3Cursor*
    assertStmts:
    - condition: ( pCsr->isEof==0 )
      pos:
        line_end: 166427
        line_start: 166427
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3_data_count(pCsr->pStmt)==0 )
      pos:
        line_end: 166435
        line_start: 166435
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 166455
      start: 166425
    functionDepth: 31
    functionLinenumber: 166425
    functionLinenumberEnd: 166455
    functionName: fts3EvalNext
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_reset
    - sqlite3Fts3EvalTestDeferred
    - sqlite3_data_count
    - assert
    - fts3EvalNextRow
    linkageType: ''
    returnType: int
    signature: int fts3EvalNext(Fts3Cursor *pCsr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fts3EvalInvalidatePoslist
      Src: /src/nss/lib/sqlite/sqlite3.c:166475,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:166480,1
    - Dst: sqlite3Fts3MsrIncrRestart
      Src: /src/nss/lib/sqlite/sqlite3.c:166482,1
    - Dst: fts3EvalPhraseStart
      Src: /src/nss/lib/sqlite/sqlite3.c:166485,1
    - Dst: fts3EvalRestart
      Src: /src/nss/lib/sqlite/sqlite3.c:166496,1
    - Dst: fts3EvalRestart
      Src: /src/nss/lib/sqlite/sqlite3.c:166497,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - pCsr
    - pExpr
    - pRc
    argTypes:
    - Fts3Cursor*
    - Fts3Expr*
    - int*
    assertStmts:
    - condition: ( pToken->pDeferred==0 )
      pos:
        line_end: 166479
        line_start: 166479
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 166499
      start: 166466
    functionDepth: 11
    functionLinenumber: 166466
    functionLinenumberEnd: 166499
    functionName: fts3EvalRestart
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - fts3EvalRestart
    - assert
    - sqlite3Fts3MsrIncrRestart
    - fts3EvalInvalidatePoslist
    - fts3EvalPhraseStart
    linkageType: ''
    returnType: void
    signature: "void fts3EvalRestart(\n  Fts3Cursor *pCsr,\n  Fts3Expr *pExpr,\n  int
      *pRc\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fts3GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:166531,1
    - Dst: fts3EvalUpdateCounts
      Src: /src/nss/lib/sqlite/sqlite3.c:166535,1
    - Dst: fts3EvalUpdateCounts
      Src: /src/nss/lib/sqlite/sqlite3.c:166536,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - pExpr
    - nCol
    argTypes:
    - Fts3Expr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166538
      start: 166509
    functionDepth: 1
    functionLinenumber: 166509
    functionLinenumberEnd: 166538
    functionName: fts3EvalUpdateCounts
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - fts3GetVarint32
    - fts3EvalUpdateCounts
    linkageType: ''
    returnType: void
    signature: void fts3EvalUpdateCounts(Fts3Expr *pExpr, int nCol)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:166557,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:166574,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:166579,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:166580,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:166582,1
    - Dst: fts3EvalRestart
      Src: /src/nss/lib/sqlite/sqlite3.c:166585,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:166591,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:166592,1
    - Dst: sqlite3_data_count
      Src: /src/nss/lib/sqlite/sqlite3.c:166592,1
    - Dst: fts3EvalNextRow
      Src: /src/nss/lib/sqlite/sqlite3.c:166595,1
    - Dst: sqlite3Fts3EvalTestDeferred
      Src: /src/nss/lib/sqlite/sqlite3.c:166602,1
    - Dst: fts3EvalUpdateCounts
      Src: /src/nss/lib/sqlite/sqlite3.c:166606,1
    - Dst: fts3EvalRestart
      Src: /src/nss/lib/sqlite/sqlite3.c:166622,1
    - Dst: fts3EvalNextRow
      Src: /src/nss/lib/sqlite/sqlite3.c:166624,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:166625,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 2
    argNames:
    - pCsr
    - pExpr
    argTypes:
    - Fts3Cursor*
    - Fts3Expr*
    assertStmts:
    - condition: ( pExpr->eType==FTSQUERY_PHRASE )
      pos:
        line_end: 166556
        line_start: 166556
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pRoot->bStart )
      pos:
        line_end: 166573
        line_start: 166573
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pE->aMI==0 )
      pos:
        line_end: 166578
        line_start: 166578
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3_data_count(pCsr->pStmt)==0 )
      pos:
        line_end: 166591
        line_start: 166591
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pRoot->bEof==0 )
      pos:
        line_end: 166624
        line_start: 166624
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 166630
      start: 166551
    functionDepth: 31
    functionLinenumber: 166551
    functionLinenumberEnd: 166630
    functionName: fts3EvalGatherStats
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_reset
    - sqlite3_malloc64
    - fts3EvalRestart
    - sqlite3Fts3EvalTestDeferred
    - sqlite3_data_count
    - fts3EvalUpdateCounts
    - assert
    - memset
    - fts3EvalNextRow
    linkageType: ''
    returnType: int
    signature: "int fts3EvalGatherStats(\n  Fts3Cursor *pCsr,               /* Cursor
      object */\n  Fts3Expr *pExpr                 /* FTSQUERY_PHRASE expression */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:166672,1
    - Dst: fts3EvalGatherStats
      Src: /src/nss/lib/sqlite/sqlite3.c:166678,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:166680,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - pCsr
    - pExpr
    - aiOut
    argTypes:
    - Fts3Cursor*
    - Fts3Expr*
    - u32*
    assertStmts:
    - condition: ( pCsr->nDoc>0 )
      pos:
        line_end: 166671
        line_start: 166671
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pExpr->aMI )
      pos:
        line_end: 166679
        line_start: 166679
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 166689
      start: 166662
    functionDepth: 32
    functionLinenumber: 166662
    functionLinenumberEnd: 166689
    functionName: sqlite3Fts3EvalPhraseStats
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fts3EvalGatherStats
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3EvalPhraseStats(\n  Fts3Cursor *pCsr,               /*
      FTS cursor handle */\n  Fts3Expr *pExpr,                /* Phrase expression
      */\n  u32 *aiOut                      /* Array to write results into (see above)
      */\n)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:166725,1
    - Dst: fts3EvalRestart
      Src: /src/nss/lib/sqlite/sqlite3.c:166759,1
    - Dst: fts3EvalNextRow
      Src: /src/nss/lib/sqlite/sqlite3.c:166761,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:166764,1
    - Dst: fts3EvalNextRow
      Src: /src/nss/lib/sqlite/sqlite3.c:166768,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:166778,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:166780,1
    - Dst: DOCID_CMP
      Src: /src/nss/lib/sqlite/sqlite3.c:166788,1
    - Dst: sqlite3Fts3DoclistNext
      Src: /src/nss/lib/sqlite/sqlite3.c:166789,1
    - Dst: DOCID_CMP
      Src: /src/nss/lib/sqlite/sqlite3.c:166796,1
    - Dst: sqlite3Fts3DoclistPrev
      Src: /src/nss/lib/sqlite/sqlite3.c:166798,1
    - Dst: fts3GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:166819,1
    - Dst: fts3ColumnlistCopy
      Src: /src/nss/lib/sqlite/sqlite3.c:166824,1
    - Dst: fts3GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:166827,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 87
    argCount: 4
    argNames:
    - pCsr
    - pExpr
    - iCol
    - ppOut
    argTypes:
    - Fts3Cursor*
    - Fts3Expr*
    - int
    - char**
    assertStmts:
    - condition: ( iCol>=0 && iCol<pTab->nColumn )
      pos:
        line_end: 166724
        line_start: 166724
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc!=SQLITE_OK || pPhrase->bIncr==0 )
      pos:
        line_end: 166763
        line_start: 166763
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTest->eType==FTSQUERY_NEAR || pTest->eType==FTSQUERY_PHRASE )
      pos:
        line_end: 166777
        line_start: 166777
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTest->eType==FTSQUERY_PHRASE )
      pos:
        line_end: 166779
        line_start: 166779
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 166835
      start: 166710
    functionDepth: 12
    functionLinenumber: 166710
    functionLinenumberEnd: 166835
    functionName: sqlite3Fts3EvalPhrasePoslist
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3ColumnlistCopy
    - fts3EvalRestart
    - fts3GetVarint32
    - sqlite3Fts3DoclistPrev
    - DOCID_CMP
    - assert
    - fts3EvalNextRow
    - sqlite3Fts3DoclistNext
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3EvalPhrasePoslist(\n  Fts3Cursor *pCsr,
      \              /* FTS3 cursor object */\n  Fts3Expr *pExpr,                /*
      Phrase to return doclist for */\n  int iCol,                       /* Column
      to return position list for */\n  char **ppOut                    /* OUT: Pointer
      to position list */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:166847,1
    - Dst: fts3EvalInvalidatePoslist
      Src: /src/nss/lib/sqlite/sqlite3.c:166848,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:166849,1
    - Dst: fts3SegReaderCursorFree
      Src: /src/nss/lib/sqlite/sqlite3.c:166851,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pPhrase
    argTypes:
    - Fts3Phrase*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166855
      start: 166844
    functionDepth: 4
    functionLinenumber: 166844
    functionLinenumberEnd: 166855
    functionName: sqlite3Fts3EvalPhraseCleanup
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - fts3SegReaderCursorFree
    - fts3EvalInvalidatePoslist
    - sqlite3_free
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3EvalPhraseCleanup(Fts3Phrase *pPhrase)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166864
      start: 166862
    functionDepth: 0
    functionLinenumber: 166862
    functionLinenumberEnd: 166864
    functionName: sqlite3Fts3Corrupt
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3Corrupt()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SQLITE_EXTENSION_INIT2
      Src: /src/nss/lib/sqlite/sqlite3.c:166879,1
    - Dst: sqlite3Fts3Init
      Src: /src/nss/lib/sqlite/sqlite3.c:166880,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - db
    - pzErrMsg
    - pApi
    argTypes:
    - sqlite3*
    - char**
    - sqlite3_api_routines*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166881
      start: 166872
    functionDepth: 16
    functionLinenumber: 166872
    functionLinenumberEnd: 166881
    functionName: sqlite3_fts3_init
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts3Init
    - SQLITE_EXTENSION_INIT2
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_fts3_init(\n  sqlite3 *db, \n  char **pzErrMsg,\n
      \ const sqlite3_api_routines *pApi\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:166960,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:166970,1
    - Dst: sqlite3_strnicmp
      Src: /src/nss/lib/sqlite/sqlite3.c:166972,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:166974,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:166982,1
    - Dst: sqlite3_declare_vtab
      Src: /src/nss/lib/sqlite/sqlite3.c:166984,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:166988,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:166990,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:166998,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:166999,1
    - Dst: sqlite3Fts3Dequote
      Src: /src/nss/lib/sqlite/sqlite3.c:167000,1
    - Dst: sqlite3Fts3ErrMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:167006,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 6
    argNames:
    - db
    - pUnused
    - argc
    - argv
    - ppVtab
    - pzErr
    argTypes:
    - sqlite3*
    - void*
    - int
    - char**
    - sqlite3_vtab**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167008
      start: 166944
    functionDepth: 26
    functionLinenumber: 166944
    functionLinenumberEnd: 167008
    functionName: fts3auxConnectMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - sqlite3_malloc64
    - UNUSED_PARAMETER
    - memset
    - sqlite3Fts3Dequote
    - sqlite3Fts3ErrMsg
    - sqlite3_declare_vtab
    - sqlite3_strnicmp
    - strlen
    linkageType: ''
    returnType: int
    signature: "int fts3auxConnectMethod(\n  sqlite3 *db,                    /* Database
      connection */\n  void *pUnused,                  /* Unused */\n  int argc,                       /*
      Number of elements in argv array */\n  const char * const *argv,       /* xCreate/xConnect
      argument array */\n  sqlite3_vtab **ppVtab,          /* OUT: New sqlite3_vtab
      object */\n  char **pzErr                    /* OUT: sqlite3_malloc'd error
      message */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SizeofArray
      Src: /src/nss/lib/sqlite/sqlite3.c:167021,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:167022,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:167024,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:167025,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pVtab
    argTypes:
    - sqlite3_vtab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167027
      start: 167015
    functionDepth: 26
    functionLinenumber: 167015
    functionLinenumberEnd: 167027
    functionName: fts3auxDisconnectMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - SizeofArray
    - sqlite3_finalize
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int fts3auxDisconnectMethod(sqlite3_vtab *pVtab)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:167047,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 48
    argCount: 2
    argNames:
    - pVTab
    - pInfo
    argTypes:
    - sqlite3_vtab*
    - sqlite3_index_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167101
      start: 167036
    functionDepth: 1
    functionLinenumber: 167036
    functionLinenumberEnd: 167101
    functionName: fts3auxBestIndexMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: int
    signature: "int fts3auxBestIndexMethod(\n  sqlite3_vtab *pVTab, \n  sqlite3_index_info
      *pInfo\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:167109,1
    - Dst: sqlite3_malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:167111,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:167113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - pVTab
    - ppCsr
    argTypes:
    - sqlite3_vtab*
    - sqlite3_vtab_cursor**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167117
      start: 167106
    functionDepth: 6
    functionLinenumber: 167106
    functionLinenumberEnd: 167117
    functionName: fts3auxOpenMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3_malloc
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: int
    signature: int fts3auxOpenMethod(sqlite3_vtab *pVTab, sqlite3_vtab_cursor **ppCsr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3SegmentsClose
      Src: /src/nss/lib/sqlite/sqlite3.c:167126,1
    - Dst: sqlite3Fts3SegReaderFinish
      Src: /src/nss/lib/sqlite/sqlite3.c:167127,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:167128,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:167129,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:167130,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:167131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - pCursor
    argTypes:
    - sqlite3_vtab_cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167133
      start: 167122
    functionDepth: 3
    functionLinenumber: 167122
    functionLinenumberEnd: 167133
    functionName: fts3auxCloseMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    - sqlite3Fts3SegmentsClose
    - sqlite3Fts3SegReaderFinish
    linkageType: ''
    returnType: int
    signature: int fts3auxCloseMethod(sqlite3_vtab_cursor *pCursor)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_realloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:167138,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:167142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - pCsr
    - nSize
    argTypes:
    - Fts3auxCursor*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167149
      start: 167135
    functionDepth: 7
    functionLinenumber: 167135
    functionLinenumberEnd: 167149
    functionName: fts3auxGrowStatArray
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3_realloc64
    linkageType: ''
    returnType: int
    signature: int fts3auxGrowStatArray(Fts3auxCursor *pCsr, int nSize)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3SegReaderStep
      Src: /src/nss/lib/sqlite/sqlite3.c:167166,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:167177,1
    - Dst: fts3auxGrowStatArray
      Src: /src/nss/lib/sqlite/sqlite3.c:167184,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:167185,1
    - Dst: sqlite3Fts3GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:167191,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:167209,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:167228,1
    - Dst: fts3auxGrowStatArray
      Src: /src/nss/lib/sqlite/sqlite3.c:167230,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 59
    argCount: 1
    argNames:
    - pCursor
    argTypes:
    - sqlite3_vtab_cursor*
    assertStmts:
    - condition: ( iCol==0 )
      pos:
        line_end: 167208
        line_start: 167208
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( eState==3 )
      pos:
        line_end: 167227
        line_start: 167227
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 167243
      start: 167154
    functionDepth: 8
    functionLinenumber: 167154
    functionLinenumberEnd: 167243
    functionName: fts3auxNextMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3auxGrowStatArray
    - memset
    - assert
    - sqlite3Fts3GetVarint
    - memcmp
    - sqlite3Fts3SegReaderStep
    linkageType: ''
    returnType: int
    signature: int fts3auxNextMethod(sqlite3_vtab_cursor *pCursor)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:167267,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:167268,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:167270,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:167271,1
    - Dst: testcase
      Src: /src/nss/lib/sqlite/sqlite3.c:167292,1
    - Dst: sqlite3Fts3SegReaderFinish
      Src: /src/nss/lib/sqlite/sqlite3.c:167293,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:167294,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:167295,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:167296,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:167302,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:167303,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:167305,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:167307,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:167312,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:167312,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:167314,1
    - Dst: sqlite3_value_int
      Src: /src/nss/lib/sqlite/sqlite3.c:167318,1
    - Dst: sqlite3Fts3SegReaderCursor
      Src: /src/nss/lib/sqlite/sqlite3.c:167329,1
    - Dst: sqlite3Fts3SegReaderStart
      Src: /src/nss/lib/sqlite/sqlite3.c:167333,1
    - Dst: fts3auxNextMethod
      Src: /src/nss/lib/sqlite/sqlite3.c:167336,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 55
    argCount: 5
    argNames:
    - pCursor
    - idxNum
    - idxStr
    - nVal
    - apVal
    argTypes:
    - sqlite3_vtab_cursor*
    - int
    - char*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( idxStr==0 )
      pos:
        line_end: 167269
        line_start: 167269
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (iEq==0 && iGe==-1) || (iEq==-1 && iGe==0) )
      pos:
        line_end: 167302
        line_start: 167302
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( idxNum==FTS4AUX_EQ_CONSTRAINT || idxNum==0\n       || idxNum==FTS4AUX_LE_CONSTRAINT
        || idxNum==FTS4AUX_GE_CONSTRAINT\n       || idxNum==(FTS4AUX_LE_CONSTRAINT|FTS4AUX_GE_CONSTRAINT)\n
        \ )"
      pos:
        line_end: 167273
        line_start: 167270
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 167338
      start: 167248
    functionDepth: 29
    functionLinenumber: 167248
    functionLinenumberEnd: 167338
    functionName: fts3auxFilterMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    - sqlite3_value_int
    - assert
    - memset
    - sqlite3_mprintf
    - sqlite3Fts3SegReaderCursor
    - sqlite3Fts3SegReaderStart
    - sqlite3Fts3SegReaderFinish
    - fts3auxNextMethod
    - sqlite3_value_text
    - testcase
    - sqlite3_free
    - strlen
    linkageType: ''
    returnType: int
    signature: "int fts3auxFilterMethod(\n  sqlite3_vtab_cursor *pCursor,   /* The
      cursor used for this query */\n  int idxNum,                     /* Strategy
      index */\n  const char *idxStr,             /* Unused */\n  int nVal,                       /*
      Number of elements in apVal */\n  sqlite3_value **apVal           /* Arguments
      for the indexing scheme */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pCursor
    argTypes:
    - sqlite3_vtab_cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167346
      start: 167343
    functionDepth: 0
    functionLinenumber: 167343
    functionLinenumberEnd: 167346
    functionName: fts3auxEofMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fts3auxEofMethod(sqlite3_vtab_cursor *pCursor)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:167358,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:167361,1
    - Dst: sqlite3_result_int
      Src: /src/nss/lib/sqlite/sqlite3.c:167366,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:167368,1
    - Dst: sqlite3_result_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:167373,1
    - Dst: sqlite3_result_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:167377,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:167381,1
    - Dst: sqlite3_result_int
      Src: /src/nss/lib/sqlite/sqlite3.c:167382,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - pCursor
    - pCtx
    - iCol
    argTypes:
    - sqlite3_vtab_cursor*
    - sqlite3_context*
    - int
    assertStmts:
    - condition: ( p->isEof==0 )
      pos:
        line_end: 167357
        line_start: 167357
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iCol==4 )
      pos:
        line_end: 167380
        line_start: 167380
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 167387
      start: 167351
    functionDepth: 14
    functionLinenumber: 167351
    functionLinenumberEnd: 167387
    functionName: fts3auxColumnMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_result_int
    - sqlite3_result_text
    - sqlite3_result_int64
    linkageType: ''
    returnType: int
    signature: "int fts3auxColumnMethod(\n  sqlite3_vtab_cursor *pCursor,   /* Cursor
      to retrieve value from */\n  sqlite3_context *pCtx,          /* Context for
      sqlite3_result_xxx() calls */\n  int iCol                        /* Index of
      column to read value from */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pCursor
    - pRowid
    argTypes:
    - sqlite3_vtab_cursor*
    - sqlite_int64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167399
      start: 167392
    functionDepth: 0
    functionLinenumber: 167392
    functionLinenumberEnd: 167399
    functionName: fts3auxRowidMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int fts3auxRowidMethod(\n  sqlite3_vtab_cursor *pCursor,   /* Cursor
      to retrieve value from */\n  sqlite_int64 *pRowid            /* OUT: Rowid value
      */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_create_module
      Src: /src/nss/lib/sqlite/sqlite3.c:167434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167436
      start: 167405
    functionDepth: 13
    functionLinenumber: 167405
    functionLinenumberEnd: 167436
    functionName: sqlite3Fts3InitAux
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_create_module
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3InitAux(sqlite3 *db)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167559
      start: 167557
    functionDepth: 0
    functionLinenumber: 167557
    functionLinenumberEnd: 167559
    functionName: fts3isspace
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fts3isspace(char c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:167567,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:167568,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - nByte
    argTypes:
    - sqlite3_int64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167570
      start: 167566
    functionDepth: 6
    functionLinenumber: 167566
    functionLinenumberEnd: 167570
    functionName: fts3MallocZero
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3_malloc64
    linkageType: ''
    returnType: void
    signature: void *fts3MallocZero(sqlite3_int64 nByte)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_tokenizer_module*::xOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:167583,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:167584,1
    - Dst: sqlite3_tokenizer_module*::xLanguageid
      Src: /src/nss/lib/sqlite/sqlite3.c:167588,1
    - Dst: sqlite3_tokenizer_module*::xClose
      Src: /src/nss/lib/sqlite/sqlite3.c:167590,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 5
    argNames:
    - pTokenizer
    - iLangid
    - z
    - n
    - ppCsr
    argTypes:
    - sqlite3_tokenizer*
    - int
    - char*
    - int
    - sqlite3_tokenizer_cursor**
    assertStmts:
    - condition: ( rc==SQLITE_OK || pCsr==0 )
      pos:
        line_end: 167583
        line_start: 167583
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 167597
      start: 167572
    functionDepth: 0
    functionLinenumber: 167572
    functionLinenumberEnd: 167597
    functionName: sqlite3Fts3OpenTokenizer
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_tokenizer_module*::xLanguageid
    - sqlite3_tokenizer_module*::xOpen
    - sqlite3_tokenizer_module*::xClose
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3OpenTokenizer(\n  sqlite3_tokenizer *pTokenizer,\n
      \ int iLangid,\n  const char *z,\n  int n,\n  sqlite3_tokenizer_cursor **ppCsr\n)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3OpenTokenizer
      Src: /src/nss/lib/sqlite/sqlite3.c:167638,1
    - Dst: sqlite3_tokenizer_module*::xNext
      Src: /src/nss/lib/sqlite/sqlite3.c:167644,1
    - Dst: fts3MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:167647,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:167657,1
    - Dst: sqlite3_tokenizer_module*::xClose
      Src: /src/nss/lib/sqlite/sqlite3.c:167684,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 50
    argCount: 6
    argNames:
    - pParse
    - iCol
    - z
    - n
    - ppExpr
    - pnConsumed
    argTypes:
    - ParseContext*
    - int
    - char*
    - int
    - Fts3Expr**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167689
      start: 167617
    functionDepth: 7
    functionLinenumber: 167617
    functionLinenumberEnd: 167689
    functionName: getNextToken
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - fts3MallocZero
    - sqlite3_tokenizer_module*::xNext
    - sqlite3_tokenizer_module*::xClose
    - sqlite3Fts3OpenTokenizer
    linkageType: ''
    returnType: int
    signature: "int getNextToken(\n  ParseContext *pParse,                   /* fts3
      query parse context */\n  int iCol,                               /* Value for
      Fts3Phrase.iColumn */\n  const char *z, int n,                   /* Input string
      */\n  Fts3Expr **ppExpr,                      /* OUT: expression */\n  int *pnConsumed
      \                        /* OUT: Number of bytes consumed */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_realloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:167697,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:167699,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pOrig
    - nNew
    argTypes:
    - void*
    - sqlite3_int64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167702
      start: 167696
    functionDepth: 7
    functionLinenumber: 167696
    functionLinenumberEnd: 167702
    functionName: fts3ReallocOrFree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    - sqlite3_realloc64
    linkageType: ''
    returnType: void
    signature: void *fts3ReallocOrFree(void *pOrig, sqlite3_int64 nNew)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3OpenTokenizer
      Src: /src/nss/lib/sqlite/sqlite3.c:167751,1
    - Dst: sqlite3_tokenizer_module*::xNext
      Src: /src/nss/lib/sqlite/sqlite3.c:167758,1
    - Dst: fts3ReallocOrFree
      Src: /src/nss/lib/sqlite/sqlite3.c:167762,1
    - Dst: fts3ReallocOrFree
      Src: /src/nss/lib/sqlite/sqlite3.c:167765,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:167768,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:167770,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:167772,1
    - Dst: sqlite3_tokenizer_module*::xClose
      Src: /src/nss/lib/sqlite/sqlite3.c:167782,1
    - Dst: fts3ReallocOrFree
      Src: /src/nss/lib/sqlite/sqlite3.c:167790,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:167792,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:167800,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:167801,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:167803,1
    - Dst: sqlite3_tokenizer_module*::xClose
      Src: /src/nss/lib/sqlite/sqlite3.c:167818,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:167820,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:167821,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 62
    argCount: 4
    argNames:
    - pParse
    - zInput
    - nInput
    - ppExpr
    argTypes:
    - ParseContext*
    - char*
    - int
    - Fts3Expr**
    assertStmts:
    - condition: ( nToken==ii )
      pos:
        line_end: 167767
        line_start: 167767
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nTemp==0 )
      pos:
        line_end: 167802
        line_start: 167802
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 167824
      start: 167716
    functionDepth: 8
    functionLinenumber: 167716
    functionLinenumberEnd: 167824
    functionName: getNextString
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - sqlite3_tokenizer_module*::xNext
    - sqlite3_tokenizer_module*::xClose
    - assert
    - sqlite3Fts3OpenTokenizer
    - memset
    - fts3ReallocOrFree
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int getNextString(\n  ParseContext *pParse,                   /* fts3
      query parse context */\n  const char *zInput, int nInput,         /* Input string
      */\n  Fts3Expr **ppExpr                       /* OUT: expression */\n)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: fts3isspace
      Src: /src/nss/lib/sqlite/sqlite3.c:167865,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:167881,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:167888,1
    - Dst: fts3isspace
      Src: /src/nss/lib/sqlite/sqlite3.c:167902,1
    - Dst: fts3MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:167905,1
    - Dst: getNextString
      Src: /src/nss/lib/sqlite/sqlite3.c:167933,1
    - Dst: fts3ExprParse
      Src: /src/nss/lib/sqlite/sqlite3.c:167940,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:167966,1
    - Dst: sqlite3_strnicmp
      Src: /src/nss/lib/sqlite/sqlite3.c:167968,1
    - Dst: getNextToken
      Src: /src/nss/lib/sqlite/sqlite3.c:167975,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 72
    argCount: 5
    argNames:
    - pParse
    - z
    - n
    - ppExpr
    - pnConsumed
    argTypes:
    - ParseContext*
    - char*
    - int
    - Fts3Expr**
    - int*
    assertStmts:
    - condition: ( nKey==4 )
      pos:
        line_end: 167887
        line_start: 167887
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 167978
      start: 167834
    functionDepth: 9
    functionLinenumber: 167834
    functionLinenumberEnd: 167978
    functionName: getNextNode
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3MallocZero
    - getNextToken
    - fts3isspace
    - assert
    - getNextString
    - fts3ExprParse
    - memcmp
    - sqlite3_strnicmp
    - strlen
    linkageType: ''
    returnType: int
    signature: "int getNextNode(\n  ParseContext *pParse,                   /* fts3
      query parse context */\n  const char *z, int n,                   /* Input string
      */\n  Fts3Expr **ppExpr,                      /* OUT: expression */\n  int *pnConsumed
      \                        /* OUT: Number of bytes consumed */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:168000,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:168008,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - p
    argTypes:
    - Fts3Expr*
    assertStmts:
    - condition: ( p->eType!=FTSQUERY_PHRASE )
      pos:
        line_end: 167999
        line_start: 167999
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->eType==FTSQUERY_AND )
      pos:
        line_end: 168007
        line_start: 168007
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 168010
      start: 167999
    functionDepth: 0
    functionLinenumber: 167999
    functionLinenumberEnd: 168010
    functionName: opPrecedence
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int opPrecedence(Fts3Expr *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: opPrecedence
      Src: /src/nss/lib/sqlite/sqlite3.c:168026,1
    - Dst: opPrecedence
      Src: /src/nss/lib/sqlite/sqlite3.c:168026,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:168031,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - ppHead
    - pPrev
    - pNew
    argTypes:
    - Fts3Expr**
    - Fts3Expr*
    - Fts3Expr*
    assertStmts:
    - condition: ( pSplit->pParent->pRight==pSplit )
      pos:
        line_end: 168030
        line_start: 168030
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 168039
      start: 168020
    functionDepth: 1
    functionLinenumber: 168020
    functionLinenumberEnd: 168039
    functionName: insertBinaryOperator
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - opPrecedence
    linkageType: ''
    returnType: void
    signature: "void insertBinaryOperator(\n  Fts3Expr **ppHead,       /* Pointer
      to the root node of a tree */\n  Fts3Expr *pPrev,         /* Node most recently
      inserted into the tree */\n  Fts3Expr *pNew           /* New binary node to
      insert into expression tree */\n)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: getNextNode
      Src: /src/nss/lib/sqlite/sqlite3.c:168069,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:168070,1
    - Dst: fts3MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:168079,1
    - Dst: sqlite3Fts3ExprFree
      Src: /src/nss/lib/sqlite/sqlite3.c:168081,1
    - Dst: sqlite3Fts3ExprFree
      Src: /src/nss/lib/sqlite/sqlite3.c:168104,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:168112,1
    - Dst: fts3MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:168113,1
    - Dst: sqlite3Fts3ExprFree
      Src: /src/nss/lib/sqlite/sqlite3.c:168115,1
    - Dst: insertBinaryOperator
      Src: /src/nss/lib/sqlite/sqlite3.c:168120,1
    - Dst: sqlite3Fts3ExprFree
      Src: /src/nss/lib/sqlite/sqlite3.c:168137,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:168144,1
    - Dst: insertBinaryOperator
      Src: /src/nss/lib/sqlite/sqlite3.c:168151,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:168157,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:168159,1
    - Dst: sqlite3Fts3ExprFree
      Src: /src/nss/lib/sqlite/sqlite3.c:168188,1
    - Dst: sqlite3Fts3ExprFree
      Src: /src/nss/lib/sqlite/sqlite3.c:168189,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 98
    argCount: 5
    argNames:
    - pParse
    - z
    - n
    - ppExpr
    - pnConsumed
    argTypes:
    - ParseContext*
    - char*
    - int
    - Fts3Expr**
    - int*
    assertStmts:
    - condition: ( nByte>0 || (rc!=SQLITE_OK && p==0) )
      pos:
        line_end: 168069
        line_start: 168069
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pRet && pPrev )
      pos:
        line_end: 168111
        line_start: 168111
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPrev && pPrev->pLeft && pPrev->pRight==0 )
      pos:
        line_end: 168143
        line_start: 168143
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nByte>0 )
      pos:
        line_end: 168156
        line_start: 168156
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc!=SQLITE_OK || (nByte>0 && nByte<=nIn) )
      pos:
        line_end: 168158
        line_start: 168158
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 168194
      start: 168051
    functionDepth: 10
    functionLinenumber: 168051
    functionLinenumberEnd: 168194
    functionName: fts3ExprParse
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - fts3MallocZero
    - insertBinaryOperator
    - getNextNode
    - assert
    - sqlite3Fts3ExprFree
    linkageType: ''
    returnType: int
    signature: "int fts3ExprParse(\n  ParseContext *pParse,                   /* fts3
      query parse context */\n  const char *z, int n,                   /* Text of
      MATCH query */\n  Fts3Expr **ppExpr,                      /* OUT: Parsed query
      structure */\n  int *pnConsumed                         /* OUT: Number of bytes
      consumed */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fts3ExprCheckDepth
      Src: /src/nss/lib/sqlite/sqlite3.c:168206,1
    - Dst: fts3ExprCheckDepth
      Src: /src/nss/lib/sqlite/sqlite3.c:168208,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - p
    - nMaxDepth
    argTypes:
    - Fts3Expr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168213
      start: 168200
    functionDepth: 1
    functionLinenumber: 168200
    functionLinenumberEnd: 168213
    functionName: fts3ExprCheckDepth
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - fts3ExprCheckDepth
    linkageType: ''
    returnType: int
    signature: int fts3ExprCheckDepth(Fts3Expr *p, int nMaxDepth)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:168239,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:168243,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:168252,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:168253,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:168261,1
    - Dst: fts3ExprBalance
      Src: /src/nss/lib/sqlite/sqlite3.c:168268,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:168276,1
    - Dst: sqlite3Fts3ExprFree
      Src: /src/nss/lib/sqlite/sqlite3.c:168289,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:168301,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:168306,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:168324,1
    - Dst: sqlite3Fts3ExprFree
      Src: /src/nss/lib/sqlite/sqlite3.c:168343,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:168347,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:168351,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:168352,1
    - Dst: fts3ExprBalance
      Src: /src/nss/lib/sqlite/sqlite3.c:168363,1
    - Dst: fts3ExprBalance
      Src: /src/nss/lib/sqlite/sqlite3.c:168365,1
    - Dst: sqlite3Fts3ExprFree
      Src: /src/nss/lib/sqlite/sqlite3.c:168369,1
    - Dst: sqlite3Fts3ExprFree
      Src: /src/nss/lib/sqlite/sqlite3.c:168370,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:168372,1
    - Dst: sqlite3Fts3ExprFree
      Src: /src/nss/lib/sqlite/sqlite3.c:168382,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 124
    argCount: 2
    argNames:
    - pp
    - nMaxDepth
    argTypes:
    - Fts3Expr**
    - int
    assertStmts:
    - condition: ( p->pParent==0 || p->pParent->pLeft==p )
      pos:
        line_end: 168251
        line_start: 168251
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pFree==0 )
      pos:
        line_end: 168350
        line_start: 168350
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pParent==pRoot )
      pos:
        line_end: 168305
        line_start: 168305
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pLeft && pRight )
      pos:
        line_end: 168371
        line_start: 168371
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->pLeft && p->pRight )
      pos:
        line_end: 168252
        line_start: 168252
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pParent==0 || pParent->pLeft==p )
      pos:
        line_end: 168260
        line_start: 168260
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pFree )
      pos:
        line_end: 168275
        line_start: 168275
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pParent->pParent==0 || pParent->pParent->pLeft==pParent )
      pos:
        line_end: 168300
        line_start: 168300
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pFree!=0 )
      pos:
        line_end: 168323
        line_start: 168323
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 168387
      start: 168226
    functionDepth: 6
    functionLinenumber: 168226
    functionLinenumberEnd: 168387
    functionName: fts3ExprBalance
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - fts3ExprBalance
    - sqlite3_malloc64
    - memset
    - assert
    - sqlite3Fts3ExprFree
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int fts3ExprBalance(Fts3Expr **pp, int nMaxDepth)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:168414,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:168426,1
    - Dst: fts3ExprParse
      Src: /src/nss/lib/sqlite/sqlite3.c:168428,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:168429,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 9
    argNames:
    - pTokenizer
    - iLangid
    - azCol
    - bFts4
    - nCol
    - iDefaultCol
    - z
    - n
    - ppExpr
    argTypes:
    - sqlite3_tokenizer*
    - int
    - char**
    - int
    - int
    - int
    - char*
    - int
    - Fts3Expr**
    assertStmts:
    - condition: ( rc==SQLITE_OK || *ppExpr==0 )
      pos:
        line_end: 168428
        line_start: 168428
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 168437
      start: 168400
    functionDepth: 11
    functionLinenumber: 168400
    functionLinenumberEnd: 168437
    functionName: fts3ExprParseUnbalanced
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - assert
    - fts3ExprParse
    - strlen
    linkageType: ''
    returnType: int
    signature: "int fts3ExprParseUnbalanced(\n  sqlite3_tokenizer *pTokenizer,      /*
      Tokenizer module */\n  int iLangid,                        /* Language id for
      tokenizer */\n  char **azCol,                       /* Array of column names
      for fts3 table */\n  int bFts4,                          /* True to allow FTS4-only
      syntax */\n  int nCol,                           /* Number of entries in azCol[]
      */\n  int iDefaultCol,                    /* Default column to query */\n  const
      char *z, int n,               /* Text of MATCH query */\n  Fts3Expr **ppExpr
      \                  /* OUT: Parsed query structure */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fts3ExprParseUnbalanced
      Src: /src/nss/lib/sqlite/sqlite3.c:168474,1
    - Dst: fts3ExprBalance
      Src: /src/nss/lib/sqlite/sqlite3.c:168481,1
    - Dst: fts3ExprCheckDepth
      Src: /src/nss/lib/sqlite/sqlite3.c:168483,1
    - Dst: sqlite3Fts3ExprFree
      Src: /src/nss/lib/sqlite/sqlite3.c:168488,1
    - Dst: sqlite3Fts3ErrMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:168491,1
    - Dst: sqlite3Fts3ErrMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:168497,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 10
    argNames:
    - pTokenizer
    - iLangid
    - azCol
    - bFts4
    - nCol
    - iDefaultCol
    - z
    - n
    - ppExpr
    - pzErr
    argTypes:
    - sqlite3_tokenizer*
    - int
    - char**
    - int
    - int
    - int
    - char*
    - int
    - Fts3Expr**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168502
      start: 168463
    functionDepth: 12
    functionLinenumber: 168463
    functionLinenumberEnd: 168502
    functionName: sqlite3Fts3ExprParse
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - fts3ExprBalance
    - fts3ExprParseUnbalanced
    - fts3ExprCheckDepth
    - sqlite3Fts3ErrMsg
    - sqlite3Fts3ExprFree
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3ExprParse(\n  sqlite3_tokenizer *pTokenizer,
      \     /* Tokenizer module */\n  int iLangid,                        /* Language
      id for tokenizer */\n  char **azCol,                       /* Array of column
      names for fts3 table */\n  int bFts4,                          /* True to allow
      FTS4-only syntax */\n  int nCol,                           /* Number of entries
      in azCol[] */\n  int iDefaultCol,                    /* Default column to query
      */\n  const char *z, int n,               /* Text of MATCH query */\n  Fts3Expr
      **ppExpr,                  /* OUT: Parsed query structure */\n  char **pzErr
      \                       /* OUT: Error message (sqlite3_malloc) */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:168508,1
    - Dst: sqlite3Fts3EvalPhraseCleanup
      Src: /src/nss/lib/sqlite/sqlite3.c:168509,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:168510,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:168511,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - Fts3Expr*
    assertStmts:
    - condition: ( p->eType==FTSQUERY_PHRASE || p->pPhrase==0 )
      pos:
        line_end: 168507
        line_start: 168507
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 168512
      start: 168507
    functionDepth: 5
    functionLinenumber: 168507
    functionLinenumberEnd: 168512
    functionName: fts3FreeExprNode
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3Fts3EvalPhraseCleanup
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void fts3FreeExprNode(Fts3Expr *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:168523,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:168525,1
    - Dst: fts3FreeExprNode
      Src: /src/nss/lib/sqlite/sqlite3.c:168529,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:168533,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 17
    argCount: 1
    argNames:
    - pDel
    argTypes:
    - Fts3Expr*
    assertStmts:
    - condition: ( pDel==0 || pDel->pParent==0 )
      pos:
        line_end: 168522
        line_start: 168522
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p==p->pParent->pRight || p==p->pParent->pLeft )
      pos:
        line_end: 168532
        line_start: 168532
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->pParent==0 || p==p->pParent->pRight || p==p->pParent->pLeft
        )
      pos:
        line_end: 168524
        line_start: 168524
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 168540
      start: 168521
    functionDepth: 6
    functionLinenumber: 168521
    functionLinenumberEnd: 168540
    functionName: sqlite3Fts3ExprFree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 4
    functionsReached:
    - assert
    - fts3FreeExprNode
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3ExprFree(Fts3Expr *pDel)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:168563,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:168569,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:168572,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:168581,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:168584,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:168587,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:168590,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:168594,1
    - Dst: exprToString
      Src: /src/nss/lib/sqlite/sqlite3.c:168595,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:168596,1
    - Dst: exprToString
      Src: /src/nss/lib/sqlite/sqlite3.c:168598,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:168599,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 2
    argNames:
    - pExpr
    - zBuf
    argTypes:
    - Fts3Expr*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168602
      start: 168561
    functionDepth: 10
    functionLinenumber: 168561
    functionLinenumberEnd: 168602
    functionName: exprToString
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_mprintf
    - exprToString
    linkageType: ''
    returnType: char
    signature: char *exprToString(Fts3Expr *pExpr, char *zBuf)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_user_data
      Src: /src/nss/lib/sqlite/sqlite3.c:168633,1
    - Dst: sqlite3_result_error
      Src: /src/nss/lib/sqlite/sqlite3.c:168638,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:168644,1
    - Dst: sqlite3Fts3InitTokenizer
      Src: /src/nss/lib/sqlite/sqlite3.c:168645,1
    - Dst: sqlite3_result_error_nomem
      Src: /src/nss/lib/sqlite/sqlite3.c:168648,1
    - Dst: sqlite3_result_error
      Src: /src/nss/lib/sqlite/sqlite3.c:168650,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:168652,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:168656,1
    - Dst: sqlite3_value_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:168657,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:168659,1
    - Dst: sqlite3_result_error_nomem
      Src: /src/nss/lib/sqlite/sqlite3.c:168661,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:168665,1
    - Dst: sqlite3Fts3ExprParse
      Src: /src/nss/lib/sqlite/sqlite3.c:168670,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:168673,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:168674,1
    - Dst: fts3ExprParseUnbalanced
      Src: /src/nss/lib/sqlite/sqlite3.c:168676,1
    - Dst: sqlite3Fts3ExprFree
      Src: /src/nss/lib/sqlite/sqlite3.c:168682,1
    - Dst: sqlite3_result_error
      Src: /src/nss/lib/sqlite/sqlite3.c:168683,1
    - Dst: exprToString
      Src: /src/nss/lib/sqlite/sqlite3.c:168684,1
    - Dst: sqlite3_result_error_nomem
      Src: /src/nss/lib/sqlite/sqlite3.c:168685,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:168687,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:168688,1
    - Dst: sqlite3Fts3ExprFree
      Src: /src/nss/lib/sqlite/sqlite3.c:168691,1
    - Dst: sqlite3_tokenizer*::pModule::xDestroy
      Src: /src/nss/lib/sqlite/sqlite3.c:168695,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:168697,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 52
    argCount: 4
    argNames:
    - bRebalance
    - context
    - argc
    - argv
    argTypes:
    - int
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( rc==SQLITE_OK || pExpr==0 )
      pos:
        line_end: 168672
        line_start: 168672
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 168698
      start: 168618
    functionDepth: 16
    functionLinenumber: 168618
    functionLinenumberEnd: 168698
    functionName: fts3ExprTestCommon
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_tokenizer*::pModule::xDestroy
    - sqlite3_malloc64
    - fts3ExprParseUnbalanced
    - assert
    - sqlite3Fts3ExprParse
    - sqlite3_result_error_nomem
    - sqlite3Fts3InitTokenizer
    - sqlite3Fts3ExprFree
    - sqlite3_value_bytes
    - sqlite3_user_data
    - sqlite3_value_text
    - exprToString
    - sqlite3_free
    - sqlite3_result_text
    - sqlite3_result_error
    linkageType: ''
    returnType: void
    signature: "void fts3ExprTestCommon(\n  int bRebalance,\n  sqlite3_context *context,\n
      \ int argc,\n  sqlite3_value **argv\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts3ExprTestCommon
      Src: /src/nss/lib/sqlite/sqlite3.c:168705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168706
      start: 168700
    functionDepth: 17
    functionLinenumber: 168700
    functionLinenumberEnd: 168706
    functionName: fts3ExprTest
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3ExprTestCommon
    linkageType: ''
    returnType: void
    signature: "void fts3ExprTest(\n  sqlite3_context *context,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts3ExprTestCommon
      Src: /src/nss/lib/sqlite/sqlite3.c:168712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168713
      start: 168707
    functionDepth: 17
    functionLinenumber: 168707
    functionLinenumberEnd: 168713
    functionName: fts3ExprTestRebalance
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3ExprTestCommon
    linkageType: ''
    returnType: void
    signature: "void fts3ExprTestRebalance(\n  sqlite3_context *context,\n  int argc,\n
      \ sqlite3_value **argv\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_create_function
      Src: /src/nss/lib/sqlite/sqlite3.c:168720,1
    - Dst: sqlite3_create_function
      Src: /src/nss/lib/sqlite/sqlite3.c:168724,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - db
    - pHash
    argTypes:
    - sqlite3*
    - Fts3Hash*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168729
      start: 168719
    functionDepth: 14
    functionLinenumber: 168719
    functionLinenumberEnd: 168729
    functionName: sqlite3Fts3ExprInitTestInterface
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_create_function
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3ExprInitTestInterface(sqlite3 *db, Fts3Hash
      *pHash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:168774,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:168776,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - n
    argTypes:
    - sqlite3_int64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168779
      start: 168773
    functionDepth: 6
    functionLinenumber: 168773
    functionLinenumberEnd: 168779
    functionName: fts3HashMalloc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3_malloc64
    linkageType: ''
    returnType: void
    signature: void *fts3HashMalloc(sqlite3_int64 n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:168781,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168782
      start: 168780
    functionDepth: 3
    functionLinenumber: 168780
    functionLinenumberEnd: 168782
    functionName: fts3HashFree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void fts3HashFree(void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:168795,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:168796,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - pNew
    - keyClass
    - copyKey
    argTypes:
    - Fts3Hash*
    - char
    - char
    assertStmts:
    - condition: ( pNew!=0 )
      pos:
        line_end: 168794
        line_start: 168794
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( keyClass>=FTS3_HASH_STRING && keyClass<=FTS3_HASH_BINARY )
      pos:
        line_end: 168795
        line_start: 168795
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 168803
      start: 168794
    functionDepth: 0
    functionLinenumber: 168794
    functionLinenumberEnd: 168803
    functionName: sqlite3Fts3HashInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3HashInit(Fts3Hash *pNew, char keyClass, char
      copyKey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:168812,1
    - Dst: fts3HashFree
      Src: /src/nss/lib/sqlite/sqlite3.c:168815,1
    - Dst: fts3HashFree
      Src: /src/nss/lib/sqlite/sqlite3.c:168821,1
    - Dst: fts3HashFree
      Src: /src/nss/lib/sqlite/sqlite3.c:168823,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - pH
    argTypes:
    - Fts3Hash*
    assertStmts:
    - condition: ( pH!=0 )
      pos:
        line_end: 168811
        line_start: 168811
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 168827
      start: 168809
    functionDepth: 4
    functionLinenumber: 168809
    functionLinenumberEnd: 168827
    functionName: sqlite3Fts3HashClear
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - assert
    - fts3HashFree
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3HashClear(Fts3Hash *pH)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:168835,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - pKey
    - nKey
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168841
      start: 168832
    functionDepth: 0
    functionLinenumber: 168832
    functionLinenumberEnd: 168841
    functionName: fts3StrHash
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: int
    signature: int fts3StrHash(const void *pKey, int nKey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/nss/lib/sqlite/sqlite3.c:168844,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - pKey1
    - n1
    - pKey2
    - n2
    argTypes:
    - void*
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168845
      start: 168842
    functionDepth: 0
    functionLinenumber: 168842
    functionLinenumberEnd: 168845
    functionName: fts3StrCompare
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: int
    signature: int fts3StrCompare(const void *pKey1, int n1, const void *pKey2, int
      n2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pKey
    - nKey
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168857
      start: 168850
    functionDepth: 0
    functionLinenumber: 168850
    functionLinenumberEnd: 168857
    functionName: fts3BinHash
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fts3BinHash(const void *pKey, int nKey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:168860,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - pKey1
    - n1
    - pKey2
    - n2
    argTypes:
    - void*
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168861
      start: 168858
    functionDepth: 0
    functionLinenumber: 168858
    functionLinenumberEnd: 168861
    functionName: fts3BinCompare
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int fts3BinCompare(const void *pKey1, int n1, const void *pKey2, int
      n2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:168879,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( keyClass==FTS3_HASH_BINARY )
      pos:
        line_end: 168878
        line_start: 168878
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 168882
      start: 168875
    functionDepth: 0
    functionLinenumber: 168875
    functionLinenumberEnd: 168882
    functionName: (*ftsHashFunction(int keyClass))(const void*,int)
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int (*ftsHashFunction(int keyClass))(const void*,int)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:168894,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( keyClass==FTS3_HASH_BINARY )
      pos:
        line_end: 168893
        line_start: 168893
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 168897
      start: 168890
    functionDepth: 0
    functionLinenumber: 168890
    functionLinenumberEnd: 168897
    functionName: (*ftsCompareFunction(int keyClass))(const void*,int,const void*,int)
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int (*ftsCompareFunction(int keyClass))(const void*,int,const void*,int)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 3
    argNames:
    - pH
    - pEntry
    - pNew
    argTypes:
    - Fts3Hash*
    - struct _fts3ht*
    - Fts3HashElem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168922
      start: 168901
    functionDepth: 0
    functionLinenumber: 168901
    functionLinenumberEnd: 168922
    functionName: fts3HashInsertElement
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void fts3HashInsertElement(\n  Fts3Hash *pH,            /* The complete
      hash table */\n  struct _fts3ht *pEntry,  /* The entry into which pNew is inserted
      */\n  Fts3HashElem *pNew       /* The element to be inserted */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:168936,1
    - Dst: fts3HashMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:168937,1
    - Dst: fts3HashFree
      Src: /src/nss/lib/sqlite/sqlite3.c:168939,1
    - Dst: ftsHashFunction
      Src: /src/nss/lib/sqlite/sqlite3.c:168942,1
    - Dst: fts3HashInsertElement
      Src: /src/nss/lib/sqlite/sqlite3.c:168946,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - pH
    - new_size
    argTypes:
    - Fts3Hash*
    - int
    assertStmts:
    - condition: ( (new_size & (new_size-1))==0 )
      pos:
        line_end: 168935
        line_start: 168935
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 168949
      start: 168931
    functionDepth: 7
    functionLinenumber: 168931
    functionLinenumberEnd: 168949
    functionName: fts3Rehash
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3HashInsertElement
    - fts3HashFree
    - assert
    - ftsHashFunction
    - fts3HashMalloc
    linkageType: ''
    returnType: int
    signature: int fts3Rehash(Fts3Hash *pH, int new_size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ftsCompareFunction
      Src: /src/nss/lib/sqlite/sqlite3.c:168969,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - pH
    - pKey
    - nKey
    - h
    argTypes:
    - Fts3Hash*
    - void*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168978
      start: 168955
    functionDepth: 0
    functionLinenumber: 168955
    functionLinenumberEnd: 168978
    functionName: fts3FindElementByHash
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ftsCompareFunction
    linkageType: ''
    returnType: Fts3HashElem
    signature: "Fts3HashElem *fts3FindElementByHash(\n  const Fts3Hash *pH, /* The
      pH to be searched */\n  const void *pKey,   /* The key we are searching for
      */\n  int nKey,\n  int h               /* The hash for this key. */\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fts3HashFree
      Src: /src/nss/lib/sqlite/sqlite3.c:169006,1
    - Dst: fts3HashFree
      Src: /src/nss/lib/sqlite/sqlite3.c:169008,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:169011,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:169012,1
    - Dst: fts3HashClear
      Src: /src/nss/lib/sqlite/sqlite3.c:169013,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - pH
    - elem
    - h
    argTypes:
    - Fts3Hash*
    - Fts3HashElem*
    - int
    assertStmts:
    - condition: ( pH->count==0 )
      pos:
        line_end: 169011
        line_start: 169011
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pH->first==0 )
      pos:
        line_end: 169010
        line_start: 169010
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 169015
      start: 168983
    functionDepth: 4
    functionLinenumber: 168983
    functionLinenumberEnd: 169015
    functionName: fts3RemoveElementByHash
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fts3HashFree
    - fts3HashClear
    linkageType: ''
    returnType: void
    signature: "void fts3RemoveElementByHash(\n  Fts3Hash *pH,         /* The pH containing
      \"elem\" */\n  Fts3HashElem* elem,   /* The element to be removed from the pH
      */\n  int h                 /* Hash value for the element */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ftsHashFunction
      Src: /src/nss/lib/sqlite/sqlite3.c:169026,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:169027,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:169029,1
    - Dst: fts3FindElementByHash
      Src: /src/nss/lib/sqlite/sqlite3.c:169030,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: ( (pH->htsize & (pH->htsize-1))==0 )
      pos:
        line_end: 169028
        line_start: 169028
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( xHash!=0 )
      pos:
        line_end: 169026
        line_start: 169026
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 169031
      start: 169017
    functionDepth: 1
    functionLinenumber: 169017
    functionLinenumberEnd: 169031
    functionName: "Fts3HashElem *sqlite3Fts3HashFindElem(\n  const Fts3Hash *pH, \n
      \ const void *pKey, \n  int nKey\n)"
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - ftsHashFunction
    - fts3FindElementByHash
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE Fts3HashElem *sqlite3Fts3HashFindElem(\n  const Fts3Hash
      *pH, \n  const void *pKey, \n  int nKey\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3HashFindElem
      Src: /src/nss/lib/sqlite/sqlite3.c:169041,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - pH
    - pKey
    - nKey
    argTypes:
    - Fts3Hash*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169043
      start: 169038
    functionDepth: 0
    functionLinenumber: 169038
    functionLinenumberEnd: 169043
    functionName: sqlite3Fts3HashFind
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts3HashFindElem
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3Fts3HashFind(const Fts3Hash *pH, const void
      *pKey, int nKey)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:169072,1
    - Dst: ftsHashFunction
      Src: /src/nss/lib/sqlite/sqlite3.c:169073,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:169074,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:169076,1
    - Dst: fts3FindElementByHash
      Src: /src/nss/lib/sqlite/sqlite3.c:169078,1
    - Dst: fts3RemoveElementByHash
      Src: /src/nss/lib/sqlite/sqlite3.c:169082,1
    - Dst: fts3Rehash
      Src: /src/nss/lib/sqlite/sqlite3.c:169089,1
    - Dst: fts3Rehash
      Src: /src/nss/lib/sqlite/sqlite3.c:169090,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:169095,1
    - Dst: fts3HashMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:169096,1
    - Dst: fts3HashMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:169099,1
    - Dst: fts3HashFree
      Src: /src/nss/lib/sqlite/sqlite3.c:169101,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:169104,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:169110,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:169111,1
    - Dst: fts3HashInsertElement
      Src: /src/nss/lib/sqlite/sqlite3.c:169113,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 4
    argNames:
    - pH
    - pKey
    - nKey
    - data
    argTypes:
    - Fts3Hash*
    - void*
    - int
    - void*
    assertStmts:
    - condition: ( pH!=0 )
      pos:
        line_end: 169071
        line_start: 169071
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pH->htsize & (pH->htsize-1))==0 )
      pos:
        line_end: 169075
        line_start: 169075
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( xHash!=0 )
      pos:
        line_end: 169073
        line_start: 169073
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pH->htsize>0 )
      pos:
        line_end: 169094
        line_start: 169094
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pH->htsize>0 )
      pos:
        line_end: 169109
        line_start: 169109
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pH->htsize & (pH->htsize-1))==0 )
      pos:
        line_end: 169110
        line_start: 169110
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 169116
      start: 169060
    functionDepth: 8
    functionLinenumber: 169060
    functionLinenumberEnd: 169116
    functionName: sqlite3Fts3HashInsert
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - fts3HashInsertElement
    - fts3RemoveElementByHash
    - fts3HashFree
    - memcpy
    - fts3Rehash
    - assert
    - ftsHashFunction
    - fts3FindElementByHash
    - fts3HashMalloc
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE *sqlite3Fts3HashInsert(\n  Fts3Hash *pH,        /*
      The hash table to insert into */\n  const void *pKey,    /* The key */\n  int
      nKey,            /* Number of bytes in the key */\n  void *data           /*
      The data */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:169186,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:169187,1
    - Dst: sqlite3_malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:169189,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:169191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - argc
    - argv
    - ppTokenizer
    argTypes:
    - int
    - char**
    - sqlite3_tokenizer**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169194
      start: 169180
    functionDepth: 6
    functionLinenumber: 169180
    functionLinenumberEnd: 169194
    functionName: porterCreate
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3_malloc
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: int
    signature: "int porterCreate(\n  int argc, const char * const *argv,\n  sqlite3_tokenizer
      **ppTokenizer\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:169200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pTokenizer
    argTypes:
    - sqlite3_tokenizer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169202
      start: 169199
    functionDepth: 3
    functionLinenumber: 169199
    functionLinenumberEnd: 169202
    functionName: porterDestroy
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int porterDestroy(sqlite3_tokenizer *pTokenizer)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:169217,1
    - Dst: sqlite3_malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:169219,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:169226,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 4
    argNames:
    - pTokenizer
    - zInput
    - nInput
    - ppCursor
    argTypes:
    - sqlite3_tokenizer*
    - char*
    - int
    - sqlite3_tokenizer_cursor**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169237
      start: 169210
    functionDepth: 6
    functionLinenumber: 169210
    functionLinenumberEnd: 169237
    functionName: porterOpen
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_malloc
    - UNUSED_PARAMETER
    - strlen
    linkageType: ''
    returnType: int
    signature: "int porterOpen(\n  sqlite3_tokenizer *pTokenizer,         /* The tokenizer
      */\n  const char *zInput, int nInput,        /* String to be tokenized */\n
      \ sqlite3_tokenizer_cursor **ppCursor    /* OUT: Tokenization cursor */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:169245,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:169246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pCursor
    argTypes:
    - sqlite3_tokenizer_cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169248
      start: 169243
    functionDepth: 3
    functionLinenumber: 169243
    functionLinenumberEnd: 169248
    functionName: porterClose
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int porterClose(sqlite3_tokenizer_cursor *pCursor)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:169275,1
    - Dst: isVowel
      Src: /src/nss/lib/sqlite/sqlite3.c:169278,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - z
    argTypes:
    - char*
    assertStmts:
    - condition: ( x>='a' && x<='z' )
      pos:
        line_end: 169274
        line_start: 169274
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 169279
      start: 169271
    functionDepth: 1
    functionLinenumber: 169271
    functionLinenumberEnd: 169279
    functionName: isConsonant
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - isVowel
    linkageType: ''
    returnType: int
    signature: int isConsonant(const char *z)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:169284,1
    - Dst: isConsonant
      Src: /src/nss/lib/sqlite/sqlite3.c:169287,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - z
    argTypes:
    - char*
    assertStmts:
    - condition: ( x>='a' && x<='z' )
      pos:
        line_end: 169283
        line_start: 169283
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 169288
      start: 169280
    functionDepth: 2
    functionLinenumber: 169280
    functionLinenumberEnd: 169288
    functionName: isVowel
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - isConsonant
    linkageType: ''
    returnType: int
    signature: int isVowel(const char *z)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isVowel
      Src: /src/nss/lib/sqlite/sqlite3.c:169310,1
    - Dst: isConsonant
      Src: /src/nss/lib/sqlite/sqlite3.c:169312,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - z
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169314
      start: 169309
    functionDepth: 3
    functionLinenumber: 169309
    functionLinenumberEnd: 169314
    functionName: m_gt_0
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - isVowel
    - isConsonant
    linkageType: ''
    returnType: int
    signature: int m_gt_0(const char *z)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: isVowel
      Src: /src/nss/lib/sqlite/sqlite3.c:169320,1
    - Dst: isConsonant
      Src: /src/nss/lib/sqlite/sqlite3.c:169322,1
    - Dst: isVowel
      Src: /src/nss/lib/sqlite/sqlite3.c:169324,1
    - Dst: isConsonant
      Src: /src/nss/lib/sqlite/sqlite3.c:169326,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - z
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169328
      start: 169319
    functionDepth: 3
    functionLinenumber: 169319
    functionLinenumberEnd: 169328
    functionName: m_eq_1
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - isVowel
    - isConsonant
    linkageType: ''
    returnType: int
    signature: int m_eq_1(const char *z)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: isVowel
      Src: /src/nss/lib/sqlite/sqlite3.c:169334,1
    - Dst: isConsonant
      Src: /src/nss/lib/sqlite/sqlite3.c:169336,1
    - Dst: isVowel
      Src: /src/nss/lib/sqlite/sqlite3.c:169338,1
    - Dst: isConsonant
      Src: /src/nss/lib/sqlite/sqlite3.c:169340,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - z
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169342
      start: 169333
    functionDepth: 3
    functionLinenumber: 169333
    functionLinenumberEnd: 169342
    functionName: m_gt_1
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - isVowel
    - isConsonant
    linkageType: ''
    returnType: int
    signature: int m_gt_1(const char *z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isConsonant
      Src: /src/nss/lib/sqlite/sqlite3.c:169348,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - z
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169350
      start: 169347
    functionDepth: 2
    functionLinenumber: 169347
    functionLinenumberEnd: 169350
    functionName: hasVowel
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - isConsonant
    linkageType: ''
    returnType: int
    signature: int hasVowel(const char *z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isConsonant
      Src: /src/nss/lib/sqlite/sqlite3.c:169359,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - z
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169360
      start: 169358
    functionDepth: 2
    functionLinenumber: 169358
    functionLinenumberEnd: 169360
    functionName: doubleConsonant
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - isConsonant
    linkageType: ''
    returnType: int
    signature: int doubleConsonant(const char *z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isConsonant
      Src: /src/nss/lib/sqlite/sqlite3.c:169372,1
    - Dst: isVowel
      Src: /src/nss/lib/sqlite/sqlite3.c:169374,1
    - Dst: isConsonant
      Src: /src/nss/lib/sqlite/sqlite3.c:169375,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 1
    argNames:
    - z
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169376
      start: 169370
    functionDepth: 3
    functionLinenumber: 169370
    functionLinenumberEnd: 169376
    functionName: star_oh
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - isVowel
    - isConsonant
    linkageType: ''
    returnType: int
    signature: int star_oh(const char *z)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: xCond
      Src: /src/nss/lib/sqlite/sqlite3.c:169399,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - pz
    - zFrom
    - zTo
    argTypes:
    - char**
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169405
      start: 169390
    functionDepth: 0
    functionLinenumber: 169390
    functionLinenumberEnd: 169405
    functionName: stem
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - xCond
    linkageType: ''
    returnType: int
    signature: "int stem(\n  char **pz,             /* The word being stemmed (Reversed)
      */\n  const char *zFrom,     /* If the ending matches this... (Reversed) */\n
      \ const char *zTo,       /* ... change the ending to this (not reversed) */\n
      \ int (*xCond)(const char*)   /* Condition that must be true */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 4
    argNames:
    - zIn
    - nIn
    - zOut
    - pnOut
    argTypes:
    - char*
    - int
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169436
      start: 169415
    functionDepth: 0
    functionLinenumber: 169415
    functionLinenumberEnd: 169436
    functionName: copy_stemmer
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void copy_stemmer(const char *zIn, int nIn, char *zOut, int *pnOut)
  - BBCount: 65
    BranchProfiles: []
    Callsites:
    - Dst: copy_stemmer
      Src: /src/nss/lib/sqlite/sqlite3.c:169469,1
    - Dst: copy_stemmer
      Src: /src/nss/lib/sqlite/sqlite3.c:169481,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:169485,1
    - Dst: stem
      Src: /src/nss/lib/sqlite/sqlite3.c:169492,1
    - Dst: stem
      Src: /src/nss/lib/sqlite/sqlite3.c:169493,1
    - Dst: stem
      Src: /src/nss/lib/sqlite/sqlite3.c:169494,1
    - Dst: stem
      Src: /src/nss/lib/sqlite/sqlite3.c:169502,1
    - Dst: stem
      Src: /src/nss/lib/sqlite/sqlite3.c:169505,1
    - Dst: stem
      Src: /src/nss/lib/sqlite/sqlite3.c:169505,1
    - Dst: stem
      Src: /src/nss/lib/sqlite/sqlite3.c:169508,1
    - Dst: stem
      Src: /src/nss/lib/sqlite/sqlite3.c:169509,1
    - Dst: stem
      Src: /src/nss/lib/sqlite/sqlite3.c:169510,1
    - Dst: doubleConsonant
      Src: /src/nss/lib/sqlite/sqlite3.c:169512,1
    - Dst: m_eq_1
      Src: /src/nss/lib/sqlite/sqlite3.c:169514,1
    - Dst: star_oh
      Src: /src/nss/lib/sqlite/sqlite3.c:169514,1
    - Dst: hasVowel
      Src: /src/nss/lib/sqlite/sqlite3.c:169520,1
    - Dst: stem
      Src: /src/nss/lib/sqlite/sqlite3.c:169527,1
    - Dst: stem
      Src: /src/nss/lib/sqlite/sqlite3.c:169528,1
    - Dst: stem
      Src: /src/nss/lib/sqlite/sqlite3.c:169532,1
    - Dst: stem
      Src: /src/nss/lib/sqlite/sqlite3.c:169533,1
    - Dst: stem
      Src: /src/nss/lib/sqlite/sqlite3.c:169537,1
    - Dst: stem
      Src: /src/nss/lib/sqlite/sqlite3.c:169540,1
    - Dst: stem
      Src: /src/nss/lib/sqlite/sqlite3.c:169543,1
    - Dst: stem
      Src: /src/nss/lib/sqlite/sqlite3.c:169544,1
    - Dst: stem
      Src: /src/nss/lib/sqlite/sqlite3.c:169545,1
    - Dst: stem
      Src: /src/nss/lib/sqlite/sqlite3.c:169546,1
    - Dst: stem
      Src: /src/nss/lib/sqlite/sqlite3.c:169548,1
    - Dst: stem
      Src: /src/nss/lib/sqlite/sqlite3.c:169552,1
    - Dst: stem
      Src: /src/nss/lib/sqlite/sqlite3.c:169553,1
    - Dst: stem
      Src: /src/nss/lib/sqlite/sqlite3.c:169555,1
    - Dst: stem
      Src: /src/nss/lib/sqlite/sqlite3.c:169559,1
    - Dst: stem
      Src: /src/nss/lib/sqlite/sqlite3.c:169560,1
    - Dst: stem
      Src: /src/nss/lib/sqlite/sqlite3.c:169561,1
    - Dst: stem
      Src: /src/nss/lib/sqlite/sqlite3.c:169563,1
    - Dst: stem
      Src: /src/nss/lib/sqlite/sqlite3.c:169567,1
    - Dst: stem
      Src: /src/nss/lib/sqlite/sqlite3.c:169568,1
    - Dst: stem
      Src: /src/nss/lib/sqlite/sqlite3.c:169570,1
    - Dst: stem
      Src: /src/nss/lib/sqlite/sqlite3.c:169578,1
    - Dst: stem
      Src: /src/nss/lib/sqlite/sqlite3.c:169579,1
    - Dst: stem
      Src: /src/nss/lib/sqlite/sqlite3.c:169581,1
    - Dst: stem
      Src: /src/nss/lib/sqlite/sqlite3.c:169585,1
    - Dst: stem
      Src: /src/nss/lib/sqlite/sqlite3.c:169588,1
    - Dst: stem
      Src: /src/nss/lib/sqlite/sqlite3.c:169589,1
    - Dst: stem
      Src: /src/nss/lib/sqlite/sqlite3.c:169593,1
    - Dst: m_gt_1
      Src: /src/nss/lib/sqlite/sqlite3.c:169600,1
    - Dst: m_gt_1
      Src: /src/nss/lib/sqlite/sqlite3.c:169605,1
    - Dst: m_gt_1
      Src: /src/nss/lib/sqlite/sqlite3.c:169610,1
    - Dst: m_gt_1
      Src: /src/nss/lib/sqlite/sqlite3.c:169615,1
    - Dst: m_gt_1
      Src: /src/nss/lib/sqlite/sqlite3.c:169620,1
    - Dst: m_gt_1
      Src: /src/nss/lib/sqlite/sqlite3.c:169627,1
    - Dst: stem
      Src: /src/nss/lib/sqlite/sqlite3.c:169631,1
    - Dst: stem
      Src: /src/nss/lib/sqlite/sqlite3.c:169632,1
    - Dst: stem
      Src: /src/nss/lib/sqlite/sqlite3.c:169634,1
    - Dst: m_gt_1
      Src: /src/nss/lib/sqlite/sqlite3.c:169641,1
    - Dst: stem
      Src: /src/nss/lib/sqlite/sqlite3.c:169645,1
    - Dst: m_gt_1
      Src: /src/nss/lib/sqlite/sqlite3.c:169649,1
    - Dst: stem
      Src: /src/nss/lib/sqlite/sqlite3.c:169654,1
    - Dst: stem
      Src: /src/nss/lib/sqlite/sqlite3.c:169655,1
    - Dst: m_gt_1
      Src: /src/nss/lib/sqlite/sqlite3.c:169659,1
    - Dst: m_gt_1
      Src: /src/nss/lib/sqlite/sqlite3.c:169665,1
    - Dst: m_gt_1
      Src: /src/nss/lib/sqlite/sqlite3.c:169673,1
    - Dst: m_eq_1
      Src: /src/nss/lib/sqlite/sqlite3.c:169675,1
    - Dst: star_oh
      Src: /src/nss/lib/sqlite/sqlite3.c:169675,1
    - Dst: m_gt_1
      Src: /src/nss/lib/sqlite/sqlite3.c:169681,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:169688,1
    CyclomaticComplexity: 112
    EdgeCount: 112
    ICount: 183
    argCount: 4
    argNames:
    - zIn
    - nIn
    - zOut
    - pnOut
    argTypes:
    - char*
    - int
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169693
      start: 169462
    functionDepth: 4
    functionLinenumber: 169462
    functionLinenumberEnd: 169693
    functionName: porter_stemmer
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - copy_stemmer
    - doubleConsonant
    - memset
    - m_eq_1
    - star_oh
    - hasVowel
    - m_gt_1
    - stem
    - strlen
    linkageType: ''
    returnType: void
    signature: void porter_stemmer(const char *zIn, int nIn, char *zOut, int *pnOut)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169710
      start: 169709
    functionDepth: 0
    functionLinenumber: 169709
    functionLinenumberEnd: 169710
    functionName: isDelim
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: isDelim(C)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: isDelim
      Src: /src/nss/lib/sqlite/sqlite3.c:169730,1
    - Dst: isDelim
      Src: /src/nss/lib/sqlite/sqlite3.c:169736,1
    - Dst: sqlite3_realloc
      Src: /src/nss/lib/sqlite/sqlite3.c:169745,1
    - Dst: porter_stemmer
      Src: /src/nss/lib/sqlite/sqlite3.c:169749,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 6
    argNames:
    - pCursor
    - pzToken
    - pnBytes
    - piStartOffset
    - piEndOffset
    - piPosition
    argTypes:
    - sqlite3_tokenizer_cursor*
    - char**
    - int*
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169758
      start: 169715
    functionDepth: 7
    functionLinenumber: 169715
    functionLinenumberEnd: 169758
    functionName: porterNext
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - porter_stemmer
    - sqlite3_realloc
    - isDelim
    linkageType: ''
    returnType: int
    signature: "int porterNext(\n  sqlite3_tokenizer_cursor *pCursor,  /* Cursor returned
      by porterOpen */\n  const char **pzToken,               /* OUT: *pzToken is
      the token text */\n  int *pnBytes,                       /* OUT: Number of bytes
      in token */\n  int *piStartOffset,                 /* OUT: Starting offset of
      token */\n  int *piEndOffset,                   /* OUT: Ending offset of token
      */\n  int *piPosition                     /* OUT: Position integer of token
      */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ppModule
    argTypes:
    - sqlite3_tokenizer_module**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169781
      start: 169777
    functionDepth: 0
    functionLinenumber: 169777
    functionLinenumberEnd: 169781
    functionName: sqlite3Fts3PorterTokenizerModule
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3PorterTokenizerModule(\n  sqlite3_tokenizer_module
      const**ppModule\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_context_db_handle
      Src: /src/nss/lib/sqlite/sqlite3.c:169824,1
    - Dst: sqlite3_db_config
      Src: /src/nss/lib/sqlite/sqlite3.c:169826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - context
    argTypes:
    - sqlite3_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169828
      start: 169823
    functionDepth: 7
    functionLinenumber: 169823
    functionLinenumberEnd: 169828
    functionName: fts3TokenizerEnabled
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_context_db_handle
    - sqlite3_db_config
    linkageType: ''
    returnType: int
    signature: int fts3TokenizerEnabled(sqlite3_context *context)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:169860,1
    - Dst: sqlite3_user_data
      Src: /src/nss/lib/sqlite/sqlite3.c:169862,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:169864,1
    - Dst: sqlite3_value_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:169865,1
    - Dst: fts3TokenizerEnabled
      Src: /src/nss/lib/sqlite/sqlite3.c:169868,1
    - Dst: sqlite3_value_frombind
      Src: /src/nss/lib/sqlite/sqlite3.c:169868,1
    - Dst: sqlite3_value_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:169870,1
    - Dst: sqlite3_result_error
      Src: /src/nss/lib/sqlite/sqlite3.c:169872,1
    - Dst: sqlite3_value_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:169875,1
    - Dst: sqlite3Fts3HashInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:169876,1
    - Dst: sqlite3_result_error
      Src: /src/nss/lib/sqlite/sqlite3.c:169878,1
    - Dst: sqlite3_result_error
      Src: /src/nss/lib/sqlite/sqlite3.c:169881,1
    - Dst: sqlite3Fts3HashFind
      Src: /src/nss/lib/sqlite/sqlite3.c:169886,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:169889,1
    - Dst: sqlite3_result_error
      Src: /src/nss/lib/sqlite/sqlite3.c:169890,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:169891,1
    - Dst: fts3TokenizerEnabled
      Src: /src/nss/lib/sqlite/sqlite3.c:169895,1
    - Dst: sqlite3_value_frombind
      Src: /src/nss/lib/sqlite/sqlite3.c:169895,1
    - Dst: sqlite3_result_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:169896,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( argc==1 || argc==2 )
      pos:
        line_end: 169859
        line_start: 169859
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 169898
      start: 169850
    functionDepth: 16
    functionLinenumber: 169850
    functionLinenumberEnd: 169898
    functionName: fts3TokenizerFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_value_frombind
    - fts3TokenizerEnabled
    - sqlite3Fts3HashInsert
    - sqlite3_result_blob
    - sqlite3_result_error
    - sqlite3Fts3HashFind
    - assert
    - sqlite3_mprintf
    - sqlite3_value_blob
    - sqlite3_user_data
    - sqlite3_value_text
    - sqlite3_free
    - sqlite3_value_bytes
    linkageType: ''
    returnType: void
    signature: "void fts3TokenizerFunc(\n  sqlite3_context *context,\n  int argc,\n
      \ sqlite3_value **argv\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169912
      start: 169900
    functionDepth: 0
    functionLinenumber: 169900
    functionLinenumberEnd: 169912
    functionName: sqlite3Fts3IsIdChar
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3IsIdChar(char c)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3IsIdChar
      Src: /src/nss/lib/sqlite/sqlite3.c:169938,1
    - Dst: sqlite3Fts3IsIdChar
      Src: /src/nss/lib/sqlite/sqlite3.c:169940,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 2
    argNames:
    - zStr
    - pn
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169949
      start: 169914
    functionDepth: 1
    functionLinenumber: 169914
    functionLinenumberEnd: 169949
    functionName: sqlite3Fts3NextToken
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3Fts3IsIdChar
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE *sqlite3Fts3NextToken(const char *zStr, int *pn)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:169964,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:169966,1
    - Dst: sqlite3Fts3NextToken
      Src: /src/nss/lib/sqlite/sqlite3.c:169968,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:169970,1
    - Dst: sqlite3Fts3Dequote
      Src: /src/nss/lib/sqlite/sqlite3.c:169974,1
    - Dst: sqlite3Fts3HashFind
      Src: /src/nss/lib/sqlite/sqlite3.c:169976,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:169976,1
    - Dst: sqlite3Fts3ErrMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:169978,1
    - Dst: sqlite3Fts3NextToken
      Src: /src/nss/lib/sqlite/sqlite3.c:169984,1
    - Dst: sqlite3_realloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:169986,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:169988,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:169989,1
    - Dst: sqlite3Fts3Dequote
      Src: /src/nss/lib/sqlite/sqlite3.c:169995,1
    - Dst: sqlite3_tokenizer_module*::xCreate
      Src: /src/nss/lib/sqlite/sqlite3.c:169998,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:169999,1
    - Dst: sqlite3Fts3ErrMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:170001,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:170005,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:170008,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 4
    argNames:
    - pHash
    - zArg
    - ppTok
    - pzErr
    argTypes:
    - Fts3Hash*
    - char*
    - sqlite3_tokenizer**
    - char**
    assertStmts:
    - condition: ( n==0 )
      pos:
        line_end: 169969
        line_start: 169969
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc!=SQLITE_OK || *ppTok )
      pos:
        line_end: 169998
        line_start: 169998
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 170010
      start: 169951
    functionDepth: 10
    functionLinenumber: 169951
    functionLinenumberEnd: 170010
    functionName: sqlite3Fts3InitTokenizer
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3_free
    - sqlite3Fts3HashFind
    - assert
    - sqlite3_mprintf
    - sqlite3Fts3Dequote
    - sqlite3_tokenizer_module*::xCreate
    - sqlite3Fts3ErrMsg
    - sqlite3Fts3NextToken
    - sqlite3_realloc64
    - strlen
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3InitTokenizer(\n  Fts3Hash *pHash,                /*
      Tokenizer hash table */\n  const char *zArg,               /* Tokenizer name
      */\n  sqlite3_tokenizer **ppTok,      /* OUT: Tokenizer (if applicable) */\n
      \ char **pzErr                    /* OUT: Set to malloced error message */\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_result_error
      Src: /src/nss/lib/sqlite/sqlite3.c:170076,1
    - Dst: sqlite3_value_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:170080,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:170081,1
    - Dst: sqlite3_value_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:170082,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:170083,1
    - Dst: sqlite3_user_data
      Src: /src/nss/lib/sqlite/sqlite3.c:170085,1
    - Dst: sqlite3Fts3HashFind
      Src: /src/nss/lib/sqlite/sqlite3.c:170086,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:170089,1
    - Dst: sqlite3_result_error
      Src: /src/nss/lib/sqlite/sqlite3.c:170090,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:170091,1
    - Dst: Tcl_NewObj
      Src: /src/nss/lib/sqlite/sqlite3.c:170095,1
    - Dst: Tcl_IncrRefCount
      Src: /src/nss/lib/sqlite/sqlite3.c:170096,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:170099,1
    - Dst: sqlite3_tokenizer_module*::xCreate
      Src: /src/nss/lib/sqlite/sqlite3.c:170102,1
    - Dst: sqlite3Fts3OpenTokenizer
      Src: /src/nss/lib/sqlite/sqlite3.c:170107,1
    - Dst: sqlite3_tokenizer_module*::xNext
      Src: /src/nss/lib/sqlite/sqlite3.c:170112,1
    - Dst: Tcl_ListObjAppendElement
      Src: /src/nss/lib/sqlite/sqlite3.c:170113,1
    - Dst: Tcl_NewIntObj
      Src: /src/nss/lib/sqlite/sqlite3.c:170113,1
    - Dst: Tcl_ListObjAppendElement
      Src: /src/nss/lib/sqlite/sqlite3.c:170114,1
    - Dst: Tcl_NewStringObj
      Src: /src/nss/lib/sqlite/sqlite3.c:170114,1
    - Dst: Tcl_ListObjAppendElement
      Src: /src/nss/lib/sqlite/sqlite3.c:170117,1
    - Dst: Tcl_NewStringObj
      Src: /src/nss/lib/sqlite/sqlite3.c:170117,1
    - Dst: sqlite3_tokenizer_module*::xClose
      Src: /src/nss/lib/sqlite/sqlite3.c:170120,1
    - Dst: sqlite3_tokenizer_module*::xDestroy
      Src: /src/nss/lib/sqlite/sqlite3.c:170124,1
    - Dst: sqlite3_result_error
      Src: /src/nss/lib/sqlite/sqlite3.c:170131,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:170133,1
    - Dst: Tcl_GetString
      Src: /src/nss/lib/sqlite/sqlite3.c:170133,1
    - Dst: Tcl_DecrRefCount
      Src: /src/nss/lib/sqlite/sqlite3.c:170135,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 57
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170136
      start: 170047
    functionDepth: 16
    functionLinenumber: 170047
    functionLinenumberEnd: 170136
    functionName: testFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - Tcl_NewIntObj
    - Tcl_NewObj
    - sqlite3_user_data
    - sqlite3_value_bytes
    - Tcl_DecrRefCount
    - sqlite3Fts3HashFind
    - Tcl_NewStringObj
    - sqlite3_tokenizer_module*::xDestroy
    - Tcl_ListObjAppendElement
    - Tcl_IncrRefCount
    - Tcl_GetString
    - sqlite3_tokenizer_module*::xClose
    - sqlite3_mprintf
    - sqlite3Fts3OpenTokenizer
    - sqlite3_tokenizer_module*::xCreate
    - sqlite3_result_text
    - sqlite3_tokenizer_module*::xNext
    - sqlite3_value_text
    - sqlite3_free
    - sqlite3_result_error
    linkageType: ''
    returnType: void
    signature: "void testFunc(\n  sqlite3_context *context,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_prepare_v2
      Src: /src/nss/lib/sqlite/sqlite3.c:170148,1
    - Dst: sqlite3_bind_text
      Src: /src/nss/lib/sqlite/sqlite3.c:170153,1
    - Dst: sqlite3_bind_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:170154,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:170155,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:170157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - db
    - zName
    - p
    argTypes:
    - sqlite3*
    - char*
    - sqlite3_tokenizer_module*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170158
      start: 170138
    functionDepth: 28
    functionLinenumber: 170138
    functionLinenumberEnd: 170158
    functionName: registerTokenizer
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_step
    - sqlite3_bind_blob
    - sqlite3_prepare_v2
    - sqlite3_bind_text
    - sqlite3_finalize
    linkageType: ''
    returnType: int
    signature: "int registerTokenizer(\n  sqlite3 *db, \n  char *zName, \n  const
      sqlite3_tokenizer_module *p\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_prepare_v2
      Src: /src/nss/lib/sqlite/sqlite3.c:170172,1
    - Dst: sqlite3_bind_text
      Src: /src/nss/lib/sqlite/sqlite3.c:170177,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:170178,1
    - Dst: sqlite3_column_type
      Src: /src/nss/lib/sqlite/sqlite3.c:170179,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:170180,1
    - Dst: sqlite3_column_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:170180,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:170184,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - db
    - zName
    - pp
    argTypes:
    - sqlite3*
    - char*
    - sqlite3_tokenizer_module**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170185
      start: 170161
    functionDepth: 28
    functionLinenumber: 170161
    functionLinenumberEnd: 170185
    functionName: queryTokenizer
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_column_type
    - memcpy
    - sqlite3_step
    - sqlite3_column_blob
    - sqlite3_prepare_v2
    - sqlite3_bind_text
    - sqlite3_finalize
    linkageType: ''
    returnType: int
    signature: "int queryTokenizer(\n  sqlite3 *db, \n  char *zName,  \n  const sqlite3_tokenizer_module
      **pp\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_user_data
      Src: /src/nss/lib/sqlite/sqlite3.c:170215,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:170217,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:170218,1
    - Dst: sqlite3Fts3SimpleTokenizerModule
      Src: /src/nss/lib/sqlite/sqlite3.c:170221,1
    - Dst: queryTokenizer
      Src: /src/nss/lib/sqlite/sqlite3.c:170222,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:170223,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:170224,1
    - Dst: queryTokenizer
      Src: /src/nss/lib/sqlite/sqlite3.c:170225,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:170226,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:170227,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:170228,1
    - Dst: strcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:170228,1
    - Dst: sqlite3_errmsg
      Src: /src/nss/lib/sqlite/sqlite3.c:170228,1
    - Dst: fts3TokenizerEnabled
      Src: /src/nss/lib/sqlite/sqlite3.c:170231,1
    - Dst: registerTokenizer
      Src: /src/nss/lib/sqlite/sqlite3.c:170232,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:170233,1
    - Dst: queryTokenizer
      Src: /src/nss/lib/sqlite/sqlite3.c:170234,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:170235,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:170236,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:170239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( p1==p2 )
      pos:
        line_end: 170223
        line_start: 170223
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p2==0 )
      pos:
        line_end: 170226
        line_start: 170226
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc==SQLITE_OK )
      pos:
        line_end: 170222
        line_start: 170222
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc==SQLITE_ERROR )
      pos:
        line_end: 170225
        line_start: 170225
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: '( 0==strcmp(sqlite3_errmsg(db), "unknown tokenizer: nosuchtokenizer")
        )'
      pos:
        line_end: 170227
        line_start: 170227
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc==SQLITE_OK )
      pos:
        line_end: 170232
        line_start: 170232
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p2==p1 )
      pos:
        line_end: 170235
        line_start: 170235
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc==SQLITE_OK )
      pos:
        line_end: 170234
        line_start: 170234
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 170240
      start: 170207
    functionDepth: 29
    functionLinenumber: 170207
    functionLinenumberEnd: 170240
    functionName: intTestFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - strcmp
    - fts3TokenizerEnabled
    - registerTokenizer
    - sqlite3Fts3SimpleTokenizerModule
    - queryTokenizer
    - UNUSED_PARAMETER
    - assert
    - sqlite3_errmsg
    - sqlite3_user_data
    - sqlite3_result_text
    linkageType: ''
    returnType: void
    signature: "void intTestFunc(\n  sqlite3_context *context,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:170274,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:170275,1
    - Dst: sqlite3_create_function
      Src: /src/nss/lib/sqlite/sqlite3.c:170282,1
    - Dst: sqlite3_create_function
      Src: /src/nss/lib/sqlite/sqlite3.c:170285,1
    - Dst: sqlite3_create_function
      Src: /src/nss/lib/sqlite/sqlite3.c:170289,1
    - Dst: sqlite3_create_function
      Src: /src/nss/lib/sqlite/sqlite3.c:170292,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:170297,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:170298,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - db
    - pHash
    - zName
    argTypes:
    - sqlite3*
    - Fts3Hash*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170302
      start: 170261
    functionDepth: 14
    functionLinenumber: 170261
    functionLinenumberEnd: 170302
    functionName: sqlite3Fts3InitHashTable
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_mprintf
    - sqlite3_create_function
    - sqlite3_free
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3InitHashTable(\n  sqlite3 *db, \n  Fts3Hash
      *pHash, \n  const char *zName\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - t
    - c
    argTypes:
    - simple_tokenizer*
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170360
      start: 170358
    functionDepth: 0
    functionLinenumber: 170358
    functionLinenumberEnd: 170360
    functionName: simpleDelim
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int simpleDelim(simple_tokenizer *t, unsigned char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170363
      start: 170361
    functionDepth: 0
    functionLinenumber: 170361
    functionLinenumberEnd: 170363
    functionName: fts3_isalnum
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fts3_isalnum(int x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:170374,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:170376,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:170384,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:170389,1
    - Dst: fts3_isalnum
      Src: /src/nss/lib/sqlite/sqlite3.c:170398,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - argc
    - argv
    - ppTokenizer
    argTypes:
    - int
    - char**
    - sqlite3_tokenizer**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170404
      start: 170368
    functionDepth: 6
    functionLinenumber: 170368
    functionLinenumberEnd: 170404
    functionName: simpleCreate
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_malloc
    - fts3_isalnum
    - memset
    - sqlite3_free
    - strlen
    linkageType: ''
    returnType: int
    signature: "int simpleCreate(\n  int argc, const char * const *argv,\n  sqlite3_tokenizer
      **ppTokenizer\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:170410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pTokenizer
    argTypes:
    - sqlite3_tokenizer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170412
      start: 170409
    functionDepth: 3
    functionLinenumber: 170409
    functionLinenumberEnd: 170412
    functionName: simpleDestroy
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int simpleDestroy(sqlite3_tokenizer *pTokenizer)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:170427,1
    - Dst: sqlite3_malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:170429,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:170436,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 4
    argNames:
    - pTokenizer
    - pInput
    - nBytes
    - ppCursor
    argTypes:
    - sqlite3_tokenizer*
    - char*
    - int
    - sqlite3_tokenizer_cursor**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170447
      start: 170420
    functionDepth: 6
    functionLinenumber: 170420
    functionLinenumberEnd: 170447
    functionName: simpleOpen
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_malloc
    - UNUSED_PARAMETER
    - strlen
    linkageType: ''
    returnType: int
    signature: "int simpleOpen(\n  sqlite3_tokenizer *pTokenizer,         /* The tokenizer
      */\n  const char *pInput, int nBytes,        /* String to be tokenized */\n
      \ sqlite3_tokenizer_cursor **ppCursor    /* OUT: Tokenization cursor */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:170455,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:170456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pCursor
    argTypes:
    - sqlite3_tokenizer_cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170458
      start: 170453
    functionDepth: 3
    functionLinenumber: 170453
    functionLinenumberEnd: 170458
    functionName: simpleClose
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int simpleClose(sqlite3_tokenizer_cursor *pCursor)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: simpleDelim
      Src: /src/nss/lib/sqlite/sqlite3.c:170480,1
    - Dst: simpleDelim
      Src: /src/nss/lib/sqlite/sqlite3.c:170486,1
    - Dst: sqlite3_realloc
      Src: /src/nss/lib/sqlite/sqlite3.c:170495,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 6
    argNames:
    - pCursor
    - ppToken
    - pnBytes
    - piStartOffset
    - piEndOffset
    - piPosition
    argTypes:
    - sqlite3_tokenizer_cursor*
    - char**
    - int*
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170516
      start: 170464
    functionDepth: 7
    functionLinenumber: 170464
    functionLinenumberEnd: 170516
    functionName: simpleNext
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - simpleDelim
    - sqlite3_realloc
    linkageType: ''
    returnType: int
    signature: "int simpleNext(\n  sqlite3_tokenizer_cursor *pCursor,  /* Cursor returned
      by simpleOpen */\n  const char **ppToken,               /* OUT: *ppToken is
      the token text */\n  int *pnBytes,                       /* OUT: Number of bytes
      in token */\n  int *piStartOffset,                 /* OUT: Starting offset of
      token */\n  int *piEndOffset,                   /* OUT: Ending offset of token
      */\n  int *piPosition                     /* OUT: Position integer of token
      */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ppModule
    argTypes:
    - sqlite3_tokenizer_module**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170539
      start: 170535
    functionDepth: 0
    functionLinenumber: 170535
    functionLinenumberEnd: 170539
    functionName: sqlite3Fts3SimpleTokenizerModule
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3SimpleTokenizerModule(\n  sqlite3_tokenizer_module
      const**ppModule\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:170628,1
    - Dst: sqlite3Fts3HashFind
      Src: /src/nss/lib/sqlite/sqlite3.c:170630,1
    - Dst: sqlite3Fts3ErrMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:170632,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - pHash
    - zName
    - pp
    - pzErr
    argTypes:
    - Fts3Hash*
    - char*
    - sqlite3_tokenizer_module**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170638
      start: 170621
    functionDepth: 10
    functionLinenumber: 170621
    functionLinenumberEnd: 170638
    functionName: fts3tokQueryTokenizer
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts3ErrMsg
    - sqlite3Fts3HashFind
    - strlen
    linkageType: ''
    returnType: int
    signature: "int fts3tokQueryTokenizer(\n  Fts3Hash *pHash,\n  const char *zName,\n
      \ const sqlite3_tokenizer_module **pp,\n  char **pzErr\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:170666,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:170669,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:170675,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:170677,1
    - Dst: sqlite3Fts3Dequote
      Src: /src/nss/lib/sqlite/sqlite3.c:170678,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - argc
    - argv
    - pazDequote
    argTypes:
    - int
    - char**
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170685
      start: 170652
    functionDepth: 6
    functionLinenumber: 170652
    functionLinenumberEnd: 170685
    functionName: fts3tokDequoteArray
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts3Dequote
    - memcpy
    - sqlite3_malloc64
    - strlen
    linkageType: ''
    returnType: int
    signature: "int fts3tokDequoteArray(\n  int argc,                       /* Number
      of elements in argv[] */\n  const char * const *argv,       /* Input array */\n
      \ char ***pazDequote              /* Output array */\n)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_declare_vtab
      Src: /src/nss/lib/sqlite/sqlite3.c:170717,1
    - Dst: fts3tokDequoteArray
      Src: /src/nss/lib/sqlite/sqlite3.c:170721,1
    - Dst: fts3tokQueryTokenizer
      Src: /src/nss/lib/sqlite/sqlite3.c:170730,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:170733,1
    - Dst: sqlite3_tokenizer_module*::xCreate
      Src: /src/nss/lib/sqlite/sqlite3.c:170736,1
    - Dst: sqlite3_malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:170740,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:170747,1
    - Dst: sqlite3_tokenizer_module*::xDestroy
      Src: /src/nss/lib/sqlite/sqlite3.c:170753,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:170757,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 6
    argNames:
    - db
    - pHash
    - argc
    - argv
    - ppVtab
    - pzErr
    argTypes:
    - sqlite3*
    - void*
    - int
    - char**
    - sqlite3_vtab**
    - char**
    assertStmts:
    - condition: ( (rc==SQLITE_OK)==(pMod!=0) )
      pos:
        line_end: 170732
        line_start: 170732
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 170759
      start: 170702
    functionDepth: 26
    functionLinenumber: 170702
    functionLinenumberEnd: 170759
    functionName: fts3tokConnectMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_malloc
    - fts3tokDequoteArray
    - assert
    - memset
    - sqlite3_tokenizer_module*::xCreate
    - sqlite3_tokenizer_module*::xDestroy
    - fts3tokQueryTokenizer
    - sqlite3_free
    - sqlite3_declare_vtab
    linkageType: ''
    returnType: int
    signature: "int fts3tokConnectMethod(\n  sqlite3 *db,                    /* Database
      connection */\n  void *pHash,                    /* Hash table of tokenizers
      */\n  int argc,                       /* Number of elements in argv array */\n
      \ const char * const *argv,       /* xCreate/xConnect argument array */\n  sqlite3_vtab
      **ppVtab,          /* OUT: New sqlite3_vtab object */\n  char **pzErr                    /*
      OUT: sqlite3_malloc'd error message */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Fts3tokTable*::pMod::xDestroy
      Src: /src/nss/lib/sqlite/sqlite3.c:170769,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:170770,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pVtab
    argTypes:
    - sqlite3_vtab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170772
      start: 170766
    functionDepth: 3
    functionLinenumber: 170766
    functionLinenumberEnd: 170772
    functionName: fts3tokDisconnectMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    - Fts3tokTable*::pMod::xDestroy
    linkageType: ''
    returnType: int
    signature: int fts3tokDisconnectMethod(sqlite3_vtab *pVtab)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:170782,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:170798,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - pVTab
    - pInfo
    argTypes:
    - sqlite3_vtab*
    - sqlite3_index_info*
    assertStmts:
    - condition: ( pInfo->estimatedCost>1000000.0 )
      pos:
        line_end: 170797
        line_start: 170797
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 170801
      start: 170777
    functionDepth: 1
    functionLinenumber: 170777
    functionLinenumberEnd: 170801
    functionName: fts3tokBestIndexMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: int
    signature: "int fts3tokBestIndexMethod(\n  sqlite3_vtab *pVTab, \n  sqlite3_index_info
      *pInfo\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:170808,1
    - Dst: sqlite3_malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:170810,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:170814,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - pVTab
    - ppCsr
    argTypes:
    - sqlite3_vtab*
    - sqlite3_vtab_cursor**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170818
      start: 170806
    functionDepth: 6
    functionLinenumber: 170806
    functionLinenumberEnd: 170818
    functionName: fts3tokOpenMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3_malloc
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: int
    signature: int fts3tokOpenMethod(sqlite3_vtab *pVTab, sqlite3_vtab_cursor **ppCsr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Fts3tokTable*::pMod::xClose
      Src: /src/nss/lib/sqlite/sqlite3.c:170827,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:170830,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - pCsr
    argTypes:
    - Fts3tokCursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170838
      start: 170824
    functionDepth: 3
    functionLinenumber: 170824
    functionLinenumberEnd: 170838
    functionName: fts3tokResetCursor
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - Fts3tokTable*::pMod::xClose
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void fts3tokResetCursor(Fts3tokCursor *pCsr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts3tokResetCursor
      Src: /src/nss/lib/sqlite/sqlite3.c:170846,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:170847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pCursor
    argTypes:
    - sqlite3_vtab_cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170849
      start: 170843
    functionDepth: 4
    functionLinenumber: 170843
    functionLinenumberEnd: 170849
    functionName: fts3tokCloseMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3tokResetCursor
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int fts3tokCloseMethod(sqlite3_vtab_cursor *pCursor)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Fts3tokTable*::pMod::xNext
      Src: /src/nss/lib/sqlite/sqlite3.c:170860,1
    - Dst: fts3tokResetCursor
      Src: /src/nss/lib/sqlite/sqlite3.c:170866,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - pCursor
    argTypes:
    - sqlite3_vtab_cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170871
      start: 170854
    functionDepth: 4
    functionLinenumber: 170854
    functionLinenumberEnd: 170871
    functionName: fts3tokNextMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3tokResetCursor
    - Fts3tokTable*::pMod::xNext
    linkageType: ''
    returnType: int
    signature: int fts3tokNextMethod(sqlite3_vtab_cursor *pCursor)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:170886,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:170887,1
    - Dst: fts3tokResetCursor
      Src: /src/nss/lib/sqlite/sqlite3.c:170889,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:170891,1
    - Dst: sqlite3_value_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:170892,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:170893,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:170897,1
    - Dst: Fts3tokTable*::pMod::xOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:170899,1
    - Dst: fts3tokNextMethod
      Src: /src/nss/lib/sqlite/sqlite3.c:170907,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 5
    argNames:
    - pCursor
    - idxNum
    - idxStr
    - nVal
    - apVal
    argTypes:
    - sqlite3_vtab_cursor*
    - int
    - char*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170908
      start: 170876
    functionDepth: 16
    functionLinenumber: 170876
    functionLinenumberEnd: 170908
    functionName: fts3tokFilterMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3tokResetCursor
    - sqlite3_malloc64
    - memcpy
    - fts3tokNextMethod
    - UNUSED_PARAMETER
    - Fts3tokTable*::pMod::xOpen
    - sqlite3_value_text
    - sqlite3_value_bytes
    linkageType: ''
    returnType: int
    signature: "int fts3tokFilterMethod(\n  sqlite3_vtab_cursor *pCursor,   /* The
      cursor used for this query */\n  int idxNum,                     /* Strategy
      index */\n  const char *idxStr,             /* Unused */\n  int nVal,                       /*
      Number of elements in apVal */\n  sqlite3_value **apVal           /* Arguments
      for the indexing scheme */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pCursor
    argTypes:
    - sqlite3_vtab_cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170916
      start: 170913
    functionDepth: 0
    functionLinenumber: 170913
    functionLinenumberEnd: 170916
    functionName: fts3tokEofMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fts3tokEofMethod(sqlite3_vtab_cursor *pCursor)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:170931,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:170934,1
    - Dst: sqlite3_result_int
      Src: /src/nss/lib/sqlite/sqlite3.c:170937,1
    - Dst: sqlite3_result_int
      Src: /src/nss/lib/sqlite/sqlite3.c:170940,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:170943,1
    - Dst: sqlite3_result_int
      Src: /src/nss/lib/sqlite/sqlite3.c:170944,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - pCursor
    - pCtx
    - iCol
    argTypes:
    - sqlite3_vtab_cursor*
    - sqlite3_context*
    - int
    assertStmts:
    - condition: ( iCol==4 )
      pos:
        line_end: 170942
        line_start: 170942
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 170948
      start: 170921
    functionDepth: 14
    functionLinenumber: 170921
    functionLinenumberEnd: 170948
    functionName: fts3tokColumnMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_int
    - assert
    - sqlite3_result_text
    linkageType: ''
    returnType: int
    signature: "int fts3tokColumnMethod(\n  sqlite3_vtab_cursor *pCursor,   /* Cursor
      to retrieve value from */\n  sqlite3_context *pCtx,          /* Context for
      sqlite3_result_xxx() calls */\n  int iCol                        /* Index of
      column to read value from */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pCursor
    - pRowid
    argTypes:
    - sqlite3_vtab_cursor*
    - sqlite_int64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170960
      start: 170953
    functionDepth: 0
    functionLinenumber: 170953
    functionLinenumberEnd: 170960
    functionName: fts3tokRowidMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int fts3tokRowidMethod(\n  sqlite3_vtab_cursor *pCursor,   /* Cursor
      to retrieve value from */\n  sqlite_int64 *pRowid            /* OUT: Rowid value
      */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_create_module
      Src: /src/nss/lib/sqlite/sqlite3.c:170995,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - db
    - pHash
    argTypes:
    - sqlite3*
    - Fts3Hash*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170997
      start: 170966
    functionDepth: 13
    functionLinenumber: 170966
    functionLinenumberEnd: 170997
    functionName: sqlite3Fts3InitTok
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_create_module
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3InitTok(sqlite3 *db, Fts3Hash *pHash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_log
      Src: /src/nss/lib/sqlite/sqlite3.c:171087,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nMerge
    - iAbsLevel
    argTypes:
    - int
    - sqlite3_int64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171088
      start: 171086
    functionDepth: 10
    functionLinenumber: 171086
    functionLinenumberEnd: 171088
    functionName: fts3LogMerge
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_log
    linkageType: ''
    returnType: void
    signature: void fts3LogMerge(int nMerge, sqlite3_int64 iAbsLevel)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171176
      start: 171175
    functionDepth: 0
    functionLinenumber: 171175
    functionLinenumberEnd: 171176
    functionName: fts3SegReaderIsPending
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fts3SegReaderIsPending(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171177
      start: 171176
    functionDepth: 0
    functionLinenumber: 171176
    functionLinenumberEnd: 171177
    functionName: fts3SegReaderIsRootOnly
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fts3SegReaderIsRootOnly(p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:171396,1
    - Dst: SizeofArray
      Src: /src/nss/lib/sqlite/sqlite3.c:171396,1
    - Dst: SizeofArray
      Src: /src/nss/lib/sqlite/sqlite3.c:171396,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:171397,1
    - Dst: SizeofArray
      Src: /src/nss/lib/sqlite/sqlite3.c:171397,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:171404,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:171407,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:171409,1
    - Dst: sqlite3_prepare_v3
      Src: /src/nss/lib/sqlite/sqlite3.c:171414,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:171415,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:171416,1
    - Dst: sqlite3_bind_parameter_count
      Src: /src/nss/lib/sqlite/sqlite3.c:171422,1
    - Dst: sqlite3_bind_value
      Src: /src/nss/lib/sqlite/sqlite3.c:171424,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 4
    argNames:
    - p
    - eStmt
    - pp
    - apVal
    argTypes:
    - Fts3Table*
    - int
    - sqlite3_stmt**
    - sqlite3_value**
    assertStmts:
    - condition: ( SizeofArray(azSql)==SizeofArray(p->aStmt) )
      pos:
        line_end: 171395
        line_start: 171395
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( eStmt<SizeofArray(azSql) && eStmt>=0 )
      pos:
        line_end: 171396
        line_start: 171396
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc==SQLITE_OK || pStmt==0 )
      pos:
        line_end: 171415
        line_start: 171415
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 171429
      start: 171289
    functionDepth: 28
    functionLinenumber: 171289
    functionLinenumberEnd: 171429
    functionName: fts3SqlStmt
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_bind_parameter_count
    - sqlite3_bind_value
    - assert
    - SizeofArray
    - sqlite3_mprintf
    - sqlite3_prepare_v3
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int fts3SqlStmt(\n  Fts3Table *p,                   /* Virtual table
      handle */\n  int eStmt,                      /* One of the SQL_XXX constants
      above */\n  sqlite3_stmt **pp,              /* OUT: Statement handle */\n  sqlite3_value
      **apVal           /* Values to bind to statement */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fts3SqlStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:171440,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:171442,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:171443,1
    - Dst: sqlite3_column_type
      Src: /src/nss/lib/sqlite/sqlite3.c:171444,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:171445,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - pTab
    - iDocid
    - ppStmt
    argTypes:
    - Fts3Table*
    - sqlite3_int64
    - sqlite3_stmt**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171455
      start: 171432
    functionDepth: 29
    functionLinenumber: 171432
    functionLinenumberEnd: 171455
    functionName: fts3SelectDocsize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_column_type
    - sqlite3_step
    - sqlite3_reset
    - sqlite3_bind_int64
    - fts3SqlStmt
    linkageType: ''
    returnType: int
    signature: "int fts3SelectDocsize(\n  Fts3Table *pTab,                /* FTS3
      table handle */\n  sqlite3_int64 iDocid,           /* Docid to bind for SQL_SELECT_DOCSIZE
      */\n  sqlite3_stmt **ppStmt           /* OUT: Statement handle */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fts3SqlStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:171463,1
    - Dst: sqlite3_bind_int
      Src: /src/nss/lib/sqlite/sqlite3.c:171465,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:171466,1
    - Dst: sqlite3_column_type
      Src: /src/nss/lib/sqlite/sqlite3.c:171467,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:171469,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - pTab
    - ppStmt
    argTypes:
    - Fts3Table*
    - sqlite3_stmt**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171476
      start: 171457
    functionDepth: 29
    functionLinenumber: 171457
    functionLinenumberEnd: 171476
    functionName: sqlite3Fts3SelectDoctotal
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_column_type
    - sqlite3_bind_int
    - sqlite3_step
    - sqlite3_reset
    - fts3SqlStmt
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3SelectDoctotal(\n  Fts3Table *pTab,                /*
      Fts3 table handle */\n  sqlite3_stmt **ppStmt           /* OUT: Statement handle
      */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts3SelectDocsize
      Src: /src/nss/lib/sqlite/sqlite3.c:171483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pTab
    - iDocid
    - ppStmt
    argTypes:
    - Fts3Table*
    - sqlite3_int64
    - sqlite3_stmt**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171484
      start: 171478
    functionDepth: 30
    functionLinenumber: 171478
    functionLinenumberEnd: 171484
    functionName: sqlite3Fts3SelectDocsize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3SelectDocsize
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3SelectDocsize(\n  Fts3Table *pTab,                /*
      Fts3 table handle */\n  sqlite3_int64 iDocid,           /* Docid to read size
      data for */\n  sqlite3_stmt **ppStmt           /* OUT: Statement handle */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fts3SqlStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:171503,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:171505,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:171506,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - pRC
    - p
    - eStmt
    - apVal
    argTypes:
    - int*
    - Fts3Table*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171509
      start: 171494
    functionDepth: 29
    functionLinenumber: 171494
    functionLinenumberEnd: 171509
    functionName: fts3SqlExec
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_step
    - sqlite3_reset
    - fts3SqlStmt
    linkageType: ''
    returnType: void
    signature: "void fts3SqlExec(\n  int *pRC,                /* Result code */\n
      \ Fts3Table *p,            /* The FTS3 table */\n  int eStmt,               /*
      Index of statement to evaluate */\n  sqlite3_value **apVal    /* Parameters
      to bind */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fts3SqlStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:171531,1
    - Dst: sqlite3_bind_null
      Src: /src/nss/lib/sqlite/sqlite3.c:171533,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:171534,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:171535,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - p
    argTypes:
    - Fts3Table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171540
      start: 171526
    functionDepth: 29
    functionLinenumber: 171526
    functionLinenumberEnd: 171540
    functionName: fts3Writelock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_bind_null
    - sqlite3_step
    - sqlite3_reset
    - fts3SqlStmt
    linkageType: ''
    returnType: int
    signature: int fts3Writelock(Fts3Table *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_fts3_nc
      Src: /src/nss/lib/sqlite/sqlite3.c:171572,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:171573,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:171574,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - p
    - iLangid
    - iIndex
    - iLevel
    argTypes:
    - Fts3Table*
    - int
    - int
    - int
    assertStmts:
    - condition: ( iIndex>=0 && iIndex<p->nIndex )
      pos:
        line_end: 171573
        line_start: 171573
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->nIndex>0 )
      pos:
        line_end: 171572
        line_start: 171572
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 171578
      start: 171565
    functionDepth: 1
    functionLinenumber: 171565
    functionLinenumberEnd: 171578
    functionName: getAbsoluteLevel
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - assert_fts3_nc
    linkageType: ''
    returnType: sqlite3_int64
    signature: "sqlite3_int64 getAbsoluteLevel(\n  Fts3Table *p,                   /*
      FTS3 table handle */\n  int iLangid,                    /* Language id */\n
      \ int iIndex,                     /* Index in p->aIndex[] */\n  int iLevel                      /*
      Level of segments */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:171607,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:171608,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:171609,1
    - Dst: fts3SqlStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:171613,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:171615,1
    - Dst: getAbsoluteLevel
      Src: /src/nss/lib/sqlite/sqlite3.c:171615,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:171616,1
    - Dst: getAbsoluteLevel
      Src: /src/nss/lib/sqlite/sqlite3.c:171617,1
    - Dst: fts3SqlStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:171622,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:171624,1
    - Dst: getAbsoluteLevel
      Src: /src/nss/lib/sqlite/sqlite3.c:171624,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 5
    argNames:
    - p
    - iLangid
    - iIndex
    - iLevel
    - ppStmt
    argTypes:
    - Fts3Table*
    - int
    - int
    - int
    - sqlite3_stmt**
    assertStmts:
    - condition: ( iLevel==FTS3_SEGCURSOR_ALL || iLevel>=0 )
      pos:
        line_end: 171606
        line_start: 171606
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iIndex>=0 && iIndex<p->nIndex )
      pos:
        line_end: 171608
        line_start: 171608
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iLevel<FTS3_SEGDIR_MAXLEVEL )
      pos:
        line_end: 171607
        line_start: 171607
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 171629
      start: 171597
    functionDepth: 29
    functionLinenumber: 171597
    functionLinenumberEnd: 171629
    functionName: sqlite3Fts3AllSegdirs
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - getAbsoluteLevel
    - sqlite3_bind_int64
    - fts3SqlStmt
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3AllSegdirs(\n  Fts3Table *p,                   /*
      FTS3 table */\n  int iLangid,                    /* Language being queried */\n
      \ int iIndex,                     /* Index for p->aIndex[] */\n  int iLevel,
      \                    /* Level to select (relative level) */\n  sqlite3_stmt
      **ppStmt           /* OUT: Compiled statement */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:171652,1
    - Dst: sqlite3_realloc
      Src: /src/nss/lib/sqlite/sqlite3.c:171662,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:171664,1
    - Dst: sqlite3Fts3PutVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:171673,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - pp
    - i
    argTypes:
    - PendingList**
    - sqlite3_int64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171677
      start: 171644
    functionDepth: 7
    functionLinenumber: 171644
    functionLinenumberEnd: 171677
    functionName: fts3PendingListAppendVarint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    - sqlite3_malloc
    - sqlite3Fts3PutVarint
    - sqlite3_realloc
    linkageType: ''
    returnType: int
    signature: "int fts3PendingListAppendVarint(\n  PendingList **pp,               /*
      IN/OUT: Pointer to PendingList struct */\n  sqlite3_int64 i                 /*
      Value to append to data */\n)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:171698,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:171703,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:171704,1
    - Dst: fts3PendingListAppendVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:171707,1
    - Dst: fts3PendingListAppendVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:171715,1
    - Dst: fts3PendingListAppendVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:171716,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:171724,1
    - Dst: fts3PendingListAppendVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:171725,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 39
    argCount: 5
    argNames:
    - pp
    - iDocid
    - iCol
    - iPos
    - pRc
    argTypes:
    - PendingList**
    - sqlite3_int64
    - sqlite3_int64
    - sqlite3_int64
    - int*
    assertStmts:
    - condition: ( !p || p->iLastDocid<=iDocid )
      pos:
        line_end: 171697
        line_start: 171697
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->aData[p->nData]==0 )
      pos:
        line_end: 171703
        line_start: 171703
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->nData<p->nSpace )
      pos:
        line_end: 171702
        line_start: 171702
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iPos>p->iLastPos || (iPos==0 && p->iLastPos==0) )
      pos:
        line_end: 171723
        line_start: 171723
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 171738
      start: 171688
    functionDepth: 8
    functionLinenumber: 171688
    functionLinenumberEnd: 171738
    functionName: fts3PendingListAppend
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fts3PendingListAppendVarint
    linkageType: ''
    returnType: int
    signature: "int fts3PendingListAppend(\n  PendingList **pp,               /* IN/OUT:
      PendingList structure */\n  sqlite3_int64 iDocid,           /* Docid for entry
      to add */\n  sqlite3_int64 iCol,             /* Column for entry to add */\n
      \ sqlite3_int64 iPos,             /* Position of term for entry to add */\n
      \ int *pRc                        /* OUT: Return code */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:171744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pList
    argTypes:
    - PendingList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171745
      start: 171743
    functionDepth: 3
    functionLinenumber: 171743
    functionLinenumberEnd: 171745
    functionName: fts3PendingListDelete
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void fts3PendingListDelete(PendingList *pList)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fts3HashFind
      Src: /src/nss/lib/sqlite/sqlite3.c:171761,1
    - Dst: fts3PendingListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:171765,1
    - Dst: fts3HashInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:171766,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:171770,1
    - Dst: fts3HashFind
      Src: /src/nss/lib/sqlite/sqlite3.c:171770,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:171771,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 6
    argNames:
    - p
    - iCol
    - iPos
    - pHash
    - zToken
    - nToken
    argTypes:
    - Fts3Table*
    - int
    - int
    - Fts3Hash*
    - char*
    - int
    assertStmts:
    - condition: ( 0==fts3HashFind(pHash, zToken, nToken) )
      pos:
        line_end: 171769
        line_start: 171769
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 171779
      start: 171750
    functionDepth: 9
    functionLinenumber: 171750
    functionLinenumberEnd: 171779
    functionName: fts3PendingTermsAddOne
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3PendingListAppend
    - fts3HashInsert
    - assert
    - fts3HashFind
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int fts3PendingTermsAddOne(\n  Fts3Table *p,\n  int iCol,\n  int iPos,\n
      \ Fts3Hash *pHash,                /* Pending terms hash table to add entry to
      */\n  const char *zToken,\n  int nToken\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:171810,1
    - Dst: sqlite3Fts3OpenTokenizer
      Src: /src/nss/lib/sqlite/sqlite3.c:171820,1
    - Dst: xNext
      Src: /src/nss/lib/sqlite/sqlite3.c:171827,1
    - Dst: fts3PendingTermsAddOne
      Src: /src/nss/lib/sqlite/sqlite3.c:171841,1
    - Dst: fts3PendingTermsAddOne
      Src: /src/nss/lib/sqlite/sqlite3.c:171850,1
    - Dst: sqlite3_tokenizer_module*::xClose
      Src: /src/nss/lib/sqlite/sqlite3.c:171856,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 28
    argCount: 5
    argNames:
    - p
    - iLangid
    - zText
    - iCol
    - pnWord
    argTypes:
    - Fts3Table*
    - int
    - char*
    - int
    - u32*
    assertStmts:
    - condition: ( pTokenizer && pModule )
      pos:
        line_end: 171809
        line_start: 171809
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 171859
      start: 171788
    functionDepth: 10
    functionLinenumber: 171788
    functionLinenumberEnd: 171859
    functionName: fts3PendingTermsAdd
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - xNext
    - fts3PendingTermsAddOne
    - sqlite3_tokenizer_module*::xClose
    - assert
    - sqlite3Fts3OpenTokenizer
    linkageType: ''
    returnType: int
    signature: "int fts3PendingTermsAdd(\n  Fts3Table *p,                   /* Table
      into which text will be inserted */\n  int iLangid,                    /* Language
      id to use */\n  const char *zText,              /* Text of document to be inserted
      */\n  int iCol,                       /* Column into which text is being inserted
      */\n  u32 *pnWord                     /* IN/OUT: Incr. by number tokens inserted
      */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:171872,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:171873,1
    - Dst: sqlite3Fts3PendingTermsFlush
      Src: /src/nss/lib/sqlite/sqlite3.c:171886,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 4
    argNames:
    - p
    - bDelete
    - iLangid
    - iDocid
    argTypes:
    - Fts3Table*
    - int
    - int
    - sqlite_int64
    assertStmts:
    - condition: ( iLangid>=0 )
      pos:
        line_end: 171871
        line_start: 171871
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( bDelete==1 || bDelete==0 )
      pos:
        line_end: 171872
        line_start: 171872
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 171893
      start: 171866
    functionDepth: 1
    functionLinenumber: 171866
    functionLinenumberEnd: 171893
    functionName: fts3PendingTermsDocid
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3Fts3PendingTermsFlush
    linkageType: ''
    returnType: int
    signature: "int fts3PendingTermsDocid(\n  Fts3Table *p,                   /* Full-text
      table handle */\n  int bDelete,                    /* True if this op is a delete
      */\n  int iLangid,                    /* Language id of row being written */\n
      \ sqlite_int64 iDocid             /* Docid of row being written */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts3HashFirst
      Src: /src/nss/lib/sqlite/sqlite3.c:171903,1
    - Dst: fts3HashNext
      Src: /src/nss/lib/sqlite/sqlite3.c:171903,1
    - Dst: fts3HashData
      Src: /src/nss/lib/sqlite/sqlite3.c:171904,1
    - Dst: fts3PendingListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:171905,1
    - Dst: fts3HashClear
      Src: /src/nss/lib/sqlite/sqlite3.c:171907,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - Fts3Table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171910
      start: 171898
    functionDepth: 4
    functionLinenumber: 171898
    functionLinenumberEnd: 171910
    functionName: sqlite3Fts3PendingTermsClear
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - fts3PendingListDelete
    - fts3HashClear
    - fts3HashData
    - fts3HashFirst
    - fts3HashNext
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3PendingTermsClear(Fts3Table *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:171930,1
    - Dst: fts3PendingTermsAdd
      Src: /src/nss/lib/sqlite/sqlite3.c:171931,1
    - Dst: sqlite3_value_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:171935,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - p
    - iLangid
    - apVal
    - aSz
    argTypes:
    - Fts3Table*
    - int
    - sqlite3_value**
    - u32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171939
      start: 171920
    functionDepth: 16
    functionLinenumber: 171920
    functionLinenumberEnd: 171939
    functionName: fts3InsertTerms
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3PendingTermsAdd
    - sqlite3_value_text
    - sqlite3_value_bytes
    linkageType: ''
    returnType: int
    signature: "int fts3InsertTerms(\n  Fts3Table *p, \n  int iLangid, \n  sqlite3_value
      **apVal, \n  u32 *aSz\n)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:171965,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:171968,1
    - Dst: sqlite3_value_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:171971,1
    - Dst: fts3SqlStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:171983,1
    - Dst: sqlite3_bind_int
      Src: /src/nss/lib/sqlite/sqlite3.c:171985,1
    - Dst: sqlite3_value_int
      Src: /src/nss/lib/sqlite/sqlite3.c:171987,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:172002,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:172003,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:172004,1
    - Dst: sqlite3_bind_value
      Src: /src/nss/lib/sqlite/sqlite3.c:172009,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:172016,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:172017,1
    - Dst: sqlite3_last_insert_rowid
      Src: /src/nss/lib/sqlite/sqlite3.c:172019,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 3
    argNames:
    - p
    - apVal
    - piDocid
    argTypes:
    - Fts3Table*
    - sqlite3_value**
    - sqlite3_int64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172021
      start: 171955
    functionDepth: 29
    functionLinenumber: 171955
    functionLinenumberEnd: 172021
    functionName: fts3InsertData
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_bind_int
    - sqlite3_step
    - sqlite3_reset
    - sqlite3_value_int
    - sqlite3_last_insert_rowid
    - sqlite3_bind_value
    - sqlite3_value_type
    - fts3SqlStmt
    - sqlite3_value_int64
    linkageType: ''
    returnType: int
    signature: "int fts3InsertData(\n  Fts3Table *p,                   /* Full-text
      table */\n  sqlite3_value **apVal,          /* Array of values to insert */\n
      \ sqlite3_int64 *piDocid          /* OUT: Docid for row just inserted */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3PendingTermsClear
      Src: /src/nss/lib/sqlite/sqlite3.c:172033,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:172037,1
    - Dst: fts3SqlExec
      Src: /src/nss/lib/sqlite/sqlite3.c:172038,1
    - Dst: fts3SqlExec
      Src: /src/nss/lib/sqlite/sqlite3.c:172039,1
    - Dst: fts3SqlExec
      Src: /src/nss/lib/sqlite/sqlite3.c:172040,1
    - Dst: fts3SqlExec
      Src: /src/nss/lib/sqlite/sqlite3.c:172042,1
    - Dst: fts3SqlExec
      Src: /src/nss/lib/sqlite/sqlite3.c:172045,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - p
    - bContent
    argTypes:
    - Fts3Table*
    - int
    assertStmts:
    - condition: ( p->zContentTbl==0 || bContent==0 )
      pos:
        line_end: 172036
        line_start: 172036
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 172048
      start: 172029
    functionDepth: 30
    functionLinenumber: 172029
    functionLinenumberEnd: 172048
    functionName: fts3DeleteAll
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts3PendingTermsClear
    - assert
    - fts3SqlExec
    linkageType: ''
    returnType: int
    signature: int fts3DeleteAll(Fts3Table *p, int bContent)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_column_int
      Src: /src/nss/lib/sqlite/sqlite3.c:172055,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - p
    - pSelect
    argTypes:
    - Fts3Table*
    - sqlite3_stmt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172057
      start: 172053
    functionDepth: 7
    functionLinenumber: 172053
    functionLinenumberEnd: 172057
    functionName: langidFromSelect
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_column_int
    linkageType: ''
    returnType: int
    signature: int langidFromSelect(Fts3Table *p, sqlite3_stmt *pSelect)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:172074,1
    - Dst: fts3SqlStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:172076,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:172078,1
    - Dst: langidFromSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:172080,1
    - Dst: sqlite3_column_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:172081,1
    - Dst: fts3PendingTermsDocid
      Src: /src/nss/lib/sqlite/sqlite3.c:172082,1
    - Dst: sqlite3_column_text
      Src: /src/nss/lib/sqlite/sqlite3.c:172086,1
    - Dst: fts3PendingTermsAdd
      Src: /src/nss/lib/sqlite/sqlite3.c:172087,1
    - Dst: sqlite3_column_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:172088,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:172092,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:172098,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:172100,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 5
    argNames:
    - pRC
    - p
    - pRowid
    - aSz
    - pbFound
    argTypes:
    - int*
    - Fts3Table*
    - sqlite3_value*
    - u32*
    - int*
    assertStmts:
    - condition: ( *pbFound==0 )
      pos:
        line_end: 172073
        line_start: 172073
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 172103
      start: 172064
    functionDepth: 29
    functionLinenumber: 172064
    functionLinenumberEnd: 172103
    functionName: fts3DeleteTerms
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_step
    - sqlite3_reset
    - fts3PendingTermsDocid
    - sqlite3_column_int64
    - assert
    - fts3PendingTermsAdd
    - sqlite3_column_bytes
    - sqlite3_column_text
    - langidFromSelect
    - fts3SqlStmt
    linkageType: ''
    returnType: void
    signature: "void fts3DeleteTerms( \n  int *pRC,               /* Result code */\n
      \ Fts3Table *p,           /* The FTS table to delete from */\n  sqlite3_value
      *pRowid,  /* The docid to be deleted */\n  u32 *aSz,               /* Sizes
      of deleted document written here */\n  int *pbFound            /* OUT: Set to
      true if row really does exist */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:172137,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:172138,1
    - Dst: fts3SqlStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:172141,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:172143,1
    - Dst: getAbsoluteLevel
      Src: /src/nss/lib/sqlite/sqlite3.c:172144,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:172146,1
    - Dst: sqlite3_column_int
      Src: /src/nss/lib/sqlite/sqlite3.c:172147,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:172149,1
    - Dst: fts3LogMerge
      Src: /src/nss/lib/sqlite/sqlite3.c:172159,1
    - Dst: getAbsoluteLevel
      Src: /src/nss/lib/sqlite/sqlite3.c:172159,1
    - Dst: fts3SegmentMerge
      Src: /src/nss/lib/sqlite/sqlite3.c:172160,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 5
    argNames:
    - p
    - iLangid
    - iIndex
    - iLevel
    - piIdx
    argTypes:
    - Fts3Table*
    - int
    - int
    - int
    - int*
    assertStmts:
    - condition: ( iLangid>=0 )
      pos:
        line_end: 172136
        line_start: 172136
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->nIndex>=1 )
      pos:
        line_end: 172137
        line_start: 172137
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 172168
      start: 172126
    functionDepth: 29
    functionLinenumber: 172126
    functionLinenumberEnd: 172168
    functionName: fts3AllocateSegdirIdx
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - getAbsoluteLevel
    - sqlite3_step
    - sqlite3_reset
    - fts3LogMerge
    - fts3SegmentMerge
    - assert
    - sqlite3_bind_int64
    - fts3SqlStmt
    - sqlite3_column_int
    linkageType: ''
    returnType: int
    signature: "int fts3AllocateSegdirIdx(\n  Fts3Table *p, \n  int iLangid,                    /*
      Language id */\n  int iIndex,                     /* Index for p->aIndex */\n
      \ int iLevel, \n  int *piIdx\n)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:172207,1
    - Dst: sqlite3_blob_reopen
      Src: /src/nss/lib/sqlite/sqlite3.c:172210,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:172213,1
    - Dst: sqlite3_blob_open
      Src: /src/nss/lib/sqlite/sqlite3.c:172216,1
    - Dst: sqlite3_blob_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:172222,1
    - Dst: sqlite3_malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:172225,1
    - Dst: sqlite3_blob_read
      Src: /src/nss/lib/sqlite/sqlite3.c:172233,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:172234,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:172236,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 5
    argNames:
    - p
    - iBlockid
    - paBlob
    - pnBlob
    - pnLoad
    argTypes:
    - Fts3Table*
    - sqlite3_int64
    - char**
    - int*
    - int*
    assertStmts:
    - condition: ( pnBlob )
      pos:
        line_end: 172206
        line_start: 172206
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 172245
      start: 172197
    functionDepth: 29
    functionLinenumber: 172197
    functionLinenumberEnd: 172245
    functionName: sqlite3Fts3ReadBlock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_malloc
    - sqlite3_blob_read
    - sqlite3_blob_bytes
    - sqlite3_blob_reopen
    - assert
    - sqlite3_mprintf
    - memset
    - sqlite3_blob_open
    - sqlite3_free
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3ReadBlock(\n  Fts3Table *p,                   /*
      FTS3 table handle */\n  sqlite3_int64 iBlockid,         /* Access the row with
      blockid=$iBlockid */\n  char **paBlob,                  /* OUT: Blob data in
      malloc'd buffer */\n  int *pnBlob,                    /* OUT: Size of blob data
      */\n  int *pnLoad                     /* OUT: Bytes actually loaded */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_blob_close
      Src: /src/nss/lib/sqlite/sqlite3.c:172252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - Fts3Table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172254
      start: 172251
    functionDepth: 27
    functionLinenumber: 172251
    functionLinenumberEnd: 172254
    functionName: sqlite3Fts3SegmentsClose
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 3
    functionsReached:
    - sqlite3_blob_close
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3SegmentsClose(Fts3Table *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/nss/lib/sqlite/sqlite3.c:172260,1
    - Dst: sqlite3_blob_read
      Src: /src/nss/lib/sqlite/sqlite3.c:172261,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:172270,1
    - Dst: sqlite3_blob_close
      Src: /src/nss/lib/sqlite/sqlite3.c:172272,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - pReader
    argTypes:
    - Fts3SegReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172278
      start: 172256
    functionDepth: 27
    functionLinenumber: 172256
    functionLinenumberEnd: 172278
    functionName: fts3SegReaderIncrRead
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3_blob_read
    - sqlite3_blob_close
    - MIN
    linkageType: ''
    returnType: int
    signature: int fts3SegReaderIncrRead(Fts3SegReader *pReader)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:172282,1
    - Dst: fts3SegReaderIncrRead
      Src: /src/nss/lib/sqlite/sqlite3.c:172288,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 3
    argNames:
    - pReader
    - pFrom
    - nByte
    argTypes:
    - Fts3SegReader*
    - char*
    - int
    assertStmts:
    - condition: "( !pReader->pBlob \n       || (pFrom>=pReader->aNode && pFrom<&pReader->aNode[pReader->nNode])\n
        \ )"
      pos:
        line_end: 172283
        line_start: 172281
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 172291
      start: 172280
    functionDepth: 28
    functionLinenumber: 172280
    functionLinenumberEnd: 172291
    functionName: fts3SegReaderRequire
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fts3SegReaderIncrRead
    linkageType: ''
    returnType: int
    signature: int fts3SegReaderRequire(Fts3SegReader *pReader, char *pFrom, int nByte)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fts3SegReaderIsRootOnly
      Src: /src/nss/lib/sqlite/sqlite3.c:172297,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:172298,1
    - Dst: sqlite3_blob_close
      Src: /src/nss/lib/sqlite/sqlite3.c:172299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pSeg
    argTypes:
    - Fts3SegReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172303
      start: 172296
    functionDepth: 27
    functionLinenumber: 172296
    functionLinenumberEnd: 172303
    functionName: fts3SegReaderSetEof
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_blob_close
    - sqlite3_free
    - fts3SegReaderIsRootOnly
    linkageType: ''
    returnType: void
    signature: void fts3SegReaderSetEof(Fts3SegReader *pSeg)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: fts3SegReaderIsPending
      Src: /src/nss/lib/sqlite/sqlite3.c:172328,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:172330,1
    - Dst: fts3HashData
      Src: /src/nss/lib/sqlite/sqlite3.c:172334,1
    - Dst: fts3HashKey
      Src: /src/nss/lib/sqlite/sqlite3.c:172336,1
    - Dst: fts3HashKeysize
      Src: /src/nss/lib/sqlite/sqlite3.c:172337,1
    - Dst: sqlite3_malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:172338,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:172340,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:172344,1
    - Dst: fts3SegReaderSetEof
      Src: /src/nss/lib/sqlite/sqlite3.c:172349,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:172354,1
    - Dst: sqlite3Fts3ReadBlock
      Src: /src/nss/lib/sqlite/sqlite3.c:172360,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:172365,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:172373,1
    - Dst: fts3SegReaderIsPending
      Src: /src/nss/lib/sqlite/sqlite3.c:172373,1
    - Dst: fts3SegReaderRequire
      Src: /src/nss/lib/sqlite/sqlite3.c:172375,1
    - Dst: fts3GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:172380,1
    - Dst: fts3GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:172381,1
    - Dst: sqlite3_realloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:172394,1
    - Dst: fts3SegReaderRequire
      Src: /src/nss/lib/sqlite/sqlite3.c:172402,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:172405,1
    - Dst: fts3GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:172408,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 68
    argCount: 3
    argNames:
    - p
    - pReader
    - bIncr
    argTypes:
    - Fts3Table*
    - Fts3SegReader*
    - int
    assertStmts:
    - condition: ( !fts3SegReaderIsPending(pReader) )
      pos:
        line_end: 172372
        line_start: 172372
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pReader->pBlob==0 )
      pos:
        line_end: 172364
        line_start: 172364
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pReader->aNode )
      pos:
        line_end: 172343
        line_start: 172343
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pReader->iCurrentBlock<=pReader->iLeafEndBlock || CORRUPT_DB )
      pos:
        line_end: 172353
        line_start: 172353
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 172422
      start: 172310
    functionDepth: 30
    functionLinenumber: 172310
    functionLinenumberEnd: 172422
    functionName: fts3SegReaderNext
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3SegReaderIsPending
    - sqlite3_malloc
    - memcpy
    - sqlite3Fts3ReadBlock
    - fts3SegReaderRequire
    - sqlite3_realloc64
    - fts3GetVarint32
    - fts3SegReaderSetEof
    - fts3HashKeysize
    - fts3HashKey
    - assert
    - fts3HashData
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int fts3SegReaderNext(\n  Fts3Table *p, \n  Fts3SegReader *pReader,\n
      \ int bIncr\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:172430,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:172431,1
    - Dst: fts3SegReaderIsPending
      Src: /src/nss/lib/sqlite/sqlite3.c:172432,1
    - Dst: sqlite3Fts3DoclistPrev
      Src: /src/nss/lib/sqlite/sqlite3.c:172436,1
    - Dst: fts3SegReaderRequire
      Src: /src/nss/lib/sqlite/sqlite3.c:172441,1
    - Dst: sqlite3Fts3GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:172443,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - pTab
    - pReader
    argTypes:
    - Fts3Table*
    - Fts3SegReader*
    assertStmts:
    - condition: ( pReader->aDoclist )
      pos:
        line_end: 172429
        line_start: 172429
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !pReader->pOffsetList )
      pos:
        line_end: 172430
        line_start: 172430
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 172448
      start: 172428
    functionDepth: 29
    functionLinenumber: 172428
    functionLinenumberEnd: 172448
    functionName: fts3SegReaderFirstDocid
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3SegReaderIsPending
    - fts3SegReaderRequire
    - sqlite3Fts3DoclistPrev
    - assert
    - sqlite3Fts3GetVarint
    linkageType: ''
    returnType: int
    signature: int fts3SegReaderFirstDocid(Fts3Table *pTab, Fts3SegReader *pReader)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:172470,1
    - Dst: fts3SegReaderIsPending
      Src: /src/nss/lib/sqlite/sqlite3.c:172472,1
    - Dst: sqlite3Fts3DoclistPrev
      Src: /src/nss/lib/sqlite/sqlite3.c:172481,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:172505,1
    - Dst: fts3SegReaderIncrRead
      Src: /src/nss/lib/sqlite/sqlite3.c:172508,1
    - Dst: fts3SegReaderRequire
      Src: /src/nss/lib/sqlite/sqlite3.c:172532,1
    - Dst: sqlite3Fts3GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:172535,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 4
    argNames:
    - pTab
    - pReader
    - ppOffsetList
    - pnOffsetList
    argTypes:
    - Fts3Table*
    - Fts3SegReader*
    - char**
    - int*
    assertStmts:
    - condition: ( p )
      pos:
        line_end: 172469
        line_start: 172469
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( *p==0 )
      pos:
        line_end: 172504
        line_start: 172504
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 172546
      start: 172460
    functionDepth: 29
    functionLinenumber: 172460
    functionLinenumberEnd: 172546
    functionName: fts3SegReaderNextDocid
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3SegReaderIsPending
    - fts3SegReaderRequire
    - sqlite3Fts3DoclistPrev
    - assert
    - fts3SegReaderIncrRead
    - sqlite3Fts3GetVarint
    linkageType: ''
    returnType: int
    signature: "int fts3SegReaderNextDocid(\n  Fts3Table *pTab,\n  Fts3SegReader *pReader,
      \        /* Reader to advance to next docid */\n  char **ppOffsetList,            /*
      OUT: Pointer to current position-list */\n  int *pnOffsetList               /*
      OUT: Length of *ppOffsetList in bytes */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:172560,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:172561,1
    - Dst: fts3SegReaderIsPending
      Src: /src/nss/lib/sqlite/sqlite3.c:172565,1
    - Dst: fts3SegReaderIsRootOnly
      Src: /src/nss/lib/sqlite/sqlite3.c:172566,1
    - Dst: sqlite3Fts3ReadBlock
      Src: /src/nss/lib/sqlite/sqlite3.c:172571,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 3
    argNames:
    - pCsr
    - pMsr
    - pnOvfl
    argTypes:
    - Fts3Cursor*
    - Fts3MultiSegReader*
    - int*
    assertStmts:
    - condition: ( p->bFts4 )
      pos:
        line_end: 172559
        line_start: 172559
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pgsz>0 )
      pos:
        line_end: 172560
        line_start: 172560
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 172581
      start: 172549
    functionDepth: 30
    functionLinenumber: 172549
    functionLinenumberEnd: 172581
    functionName: sqlite3Fts3MsrOvfl
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - fts3SegReaderIsPending
    - sqlite3Fts3ReadBlock
    - fts3SegReaderIsRootOnly
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3MsrOvfl(\n  Fts3Cursor *pCsr, \n  Fts3MultiSegReader
      *pMsr,\n  int *pnOvfl\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fts3SegReaderIsPending
      Src: /src/nss/lib/sqlite/sqlite3.c:172589,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:172590,1
    - Dst: fts3SegReaderIsRootOnly
      Src: /src/nss/lib/sqlite/sqlite3.c:172592,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:172593,1
    - Dst: sqlite3_blob_close
      Src: /src/nss/lib/sqlite/sqlite3.c:172595,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:172597,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - pReader
    argTypes:
    - Fts3SegReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172598
      start: 172587
    functionDepth: 27
    functionLinenumber: 172587
    functionLinenumberEnd: 172598
    functionName: sqlite3Fts3SegReaderFree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_blob_close
    - fts3SegReaderIsPending
    - sqlite3_free
    - fts3SegReaderIsRootOnly
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3SegReaderFree(Fts3SegReader *pReader)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:172616,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:172618,1
    - Dst: sqlite3_malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:172626,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:172630,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:172642,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:172643,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 8
    argNames:
    - iAge
    - bLookup
    - iStartLeaf
    - iEndLeaf
    - iEndBlock
    - zRoot
    - nRoot
    - ppReader
    argTypes:
    - int
    - int
    - sqlite3_int64
    - sqlite3_int64
    - sqlite3_int64
    - char*
    - int
    - Fts3SegReader**
    assertStmts:
    - condition: ( zRoot!=0 || nRoot==0 )
      pos:
        line_end: 172615
        line_start: 172615
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( zRoot!=0 || CORRUPT_DB )
      pos:
        line_end: 172617
        line_start: 172617
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 172649
      start: 172603
    functionDepth: 6
    functionLinenumber: 172603
    functionLinenumberEnd: 172649
    functionName: sqlite3Fts3SegReaderNew
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - sqlite3_malloc
    - memcpy
    - memset
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3SegReaderNew(\n  int iAge,                       /*
      Segment \"age\". */\n  int bLookup,                    /* True for a lookup
      only */\n  sqlite3_int64 iStartLeaf,       /* First leaf to traverse */\n  sqlite3_int64
      iEndLeaf,         /* Final leaf to traverse */\n  sqlite3_int64 iEndBlock,        /*
      Final block of segment */\n  const char *zRoot,              /* Buffer containing
      root node */\n  int nRoot,                      /* Size of buffer containing
      root node */\n  Fts3SegReader **ppReader        /* OUT: Allocated Fts3SegReader
      */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fts3HashKey
      Src: /src/nss/lib/sqlite/sqlite3.c:172660,1
    - Dst: fts3HashKey
      Src: /src/nss/lib/sqlite/sqlite3.c:172661,1
    - Dst: fts3HashKeysize
      Src: /src/nss/lib/sqlite/sqlite3.c:172662,1
    - Dst: fts3HashKeysize
      Src: /src/nss/lib/sqlite/sqlite3.c:172663,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:172666,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172671
      start: 172656
    functionDepth: 1
    functionLinenumber: 172656
    functionLinenumberEnd: 172671
    functionName: SQLITE_CDECL::fts3CompareElemByTerm
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3HashKeysize
    - memcmp
    - fts3HashKey
    linkageType: ''
    returnType: int
    signature: "int SQLITE_CDECL fts3CompareElemByTerm(\n  const void *lhs,\n  const
      void *rhs\n)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fts3HashFirst
      Src: /src/nss/lib/sqlite/sqlite3.c:172711,1
    - Dst: fts3HashNext
      Src: /src/nss/lib/sqlite/sqlite3.c:172711,1
    - Dst: fts3HashKey
      Src: /src/nss/lib/sqlite/sqlite3.c:172712,1
    - Dst: fts3HashKeysize
      Src: /src/nss/lib/sqlite/sqlite3.c:172713,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:172714,1
    - Dst: sqlite3_realloc
      Src: /src/nss/lib/sqlite/sqlite3.c:172718,1
    - Dst: qsort
      Src: /src/nss/lib/sqlite/sqlite3.c:172738,1
    - Dst: fts3HashFindElem
      Src: /src/nss/lib/sqlite/sqlite3.c:172749,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:172759,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:172763,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:172766,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:172771,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 6
    argNames:
    - p
    - iIndex
    - zTerm
    - nTerm
    - bPrefix
    - ppReader
    argTypes:
    - Fts3Table*
    - int
    - char*
    - int
    - int
    - Fts3SegReader**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172775
      start: 172692
    functionDepth: 7
    functionLinenumber: 172692
    functionLinenumberEnd: 172775
    functionName: sqlite3Fts3SegReaderPending
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - fts3HashFindElem
    - memcpy
    - sqlite3_malloc64
    - sqlite3_realloc
    - fts3HashKeysize
    - fts3HashKey
    - memset
    - fts3HashFirst
    - memcmp
    - sqlite3_free
    - fts3HashNext
    - qsort
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3SegReaderPending(\n  Fts3Table *p,                   /*
      Virtual table handle */\n  int iIndex,                     /* Index for p->aIndex
      */\n  const char *zTerm,              /* Term to search for */\n  int nTerm,
      \                     /* Size of buffer zTerm */\n  int bPrefix,                    /*
      True for a prefix iterator */\n  Fts3SegReader **ppReader        /* OUT: SegReader
      for pending-terms */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:172794,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:172796,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:172807,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - pLhs
    - pRhs
    argTypes:
    - Fts3SegReader*
    - Fts3SegReader*
    assertStmts:
    - condition: ( rc!=0 )
      pos:
        line_end: 172806
        line_start: 172806
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 172809
      start: 172789
    functionDepth: 0
    functionLinenumber: 172789
    functionLinenumberEnd: 172809
    functionName: fts3SegReaderCmp
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - memcmp
    linkageType: ''
    returnType: int
    signature: int fts3SegReaderCmp(Fts3SegReader *pLhs, Fts3SegReader *pRhs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:172831,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - pLhs
    - pRhs
    argTypes:
    - Fts3SegReader*
    - Fts3SegReader*
    assertStmts:
    - condition: ( pLhs->aNode && pRhs->aNode )
      pos:
        line_end: 172830
        line_start: 172830
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 172833
      start: 172822
    functionDepth: 0
    functionLinenumber: 172822
    functionLinenumberEnd: 172833
    functionName: fts3SegReaderDoclistCmp
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int fts3SegReaderDoclistCmp(Fts3SegReader *pLhs, Fts3SegReader *pRhs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:172843,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - pLhs
    - pRhs
    argTypes:
    - Fts3SegReader*
    - Fts3SegReader*
    assertStmts:
    - condition: ( pLhs->aNode && pRhs->aNode )
      pos:
        line_end: 172842
        line_start: 172842
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 172845
      start: 172834
    functionDepth: 0
    functionLinenumber: 172834
    functionLinenumberEnd: 172845
    functionName: fts3SegReaderDoclistCmpRev
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int fts3SegReaderDoclistCmpRev(Fts3SegReader *pLhs, Fts3SegReader *pRhs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:172863,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:172865,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - pSeg
    - zTerm
    - nTerm
    argTypes:
    - Fts3SegReader*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172872
      start: 172855
    functionDepth: 0
    functionLinenumber: 172855
    functionLinenumberEnd: 172872
    functionName: fts3SegReaderTermCmp
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int fts3SegReaderTermCmp(\n  Fts3SegReader *pSeg,            /* Segment
      reader object */\n  const char *zTerm,              /* Term to compare to */\n
      \ int nTerm                       /* Size of term zTerm in bytes */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:172888,1
    - Dst: xCmp
      Src: /src/nss/lib/sqlite/sqlite3.c:172895,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:172905,1
    - Dst: xCmp
      Src: /src/nss/lib/sqlite/sqlite3.c:172905,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - apSegment
    - nSegment
    - nSuspect
    argTypes:
    - Fts3SegReader**
    - int
    - int
    assertStmts:
    - condition: ( nSuspect<=nSegment )
      pos:
        line_end: 172887
        line_start: 172887
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( xCmp(apSegment[i], apSegment[i+1])<0 )
      pos:
        line_end: 172904
        line_start: 172904
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 172908
      start: 172880
    functionDepth: 0
    functionLinenumber: 172880
    functionLinenumberEnd: 172908
    functionName: fts3SegReaderSort
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - xCmp
    linkageType: ''
    returnType: void
    signature: "void fts3SegReaderSort(\n  Fts3SegReader **apSegment,                     /*
      Array to sort entries of */\n  int nSegment,                                  /*
      Size of apSegment array */\n  int nSuspect,                                  /*
      Unsorted entry count */\n  int (*xCmp)(Fts3SegReader *, Fts3SegReader *)  /*
      Comparison function */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fts3SqlStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:172920,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:172922,1
    - Dst: sqlite3_bind_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:172923,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:172924,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:172925,1
    - Dst: sqlite3_bind_null
      Src: /src/nss/lib/sqlite/sqlite3.c:172926,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - p
    - iBlock
    - z
    - n
    argTypes:
    - Fts3Table*
    - sqlite3_int64
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172929
      start: 172913
    functionDepth: 29
    functionLinenumber: 172913
    functionLinenumberEnd: 172929
    functionName: fts3WriteSegment
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_bind_null
    - sqlite3_step
    - sqlite3_reset
    - sqlite3_bind_blob
    - sqlite3_bind_int64
    - fts3SqlStmt
    linkageType: ''
    returnType: int
    signature: "int fts3WriteSegment(\n  Fts3Table *p,                   /* Virtual
      table handle */\n  sqlite3_int64 iBlock,           /* Block id for new block
      */\n  char *z,                        /* Pointer to buffer containing block
      data */\n  int n                           /* Size of buffer z in bytes */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fts3SqlStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:172941,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:172943,1
    - Dst: sqlite3_column_int
      Src: /src/nss/lib/sqlite/sqlite3.c:172944,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:172946,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - p
    - pnMax
    argTypes:
    - Fts3Table*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172950
      start: 172936
    functionDepth: 29
    functionLinenumber: 172936
    functionLinenumberEnd: 172950
    functionName: sqlite3Fts3MaxLevel
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_step
    - sqlite3_reset
    - sqlite3_column_int
    - fts3SqlStmt
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3MaxLevel(Fts3Table *p, int *pnMax)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fts3SqlStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:172967,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:172969,1
    - Dst: sqlite3_bind_int
      Src: /src/nss/lib/sqlite/sqlite3.c:172970,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:172971,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:172972,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:172974,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:172976,1
    - Dst: sqlite3_bind_text
      Src: /src/nss/lib/sqlite/sqlite3.c:172978,1
    - Dst: sqlite3_bind_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:172980,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:172981,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:172982,1
    - Dst: sqlite3_bind_null
      Src: /src/nss/lib/sqlite/sqlite3.c:172983,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 9
    argNames:
    - p
    - iLevel
    - iIdx
    - iStartBlock
    - iLeafEndBlock
    - iEndBlock
    - nLeafData
    - zRoot
    - nRoot
    argTypes:
    - Fts3Table*
    - sqlite3_int64
    - int
    - sqlite3_int64
    - sqlite3_int64
    - sqlite3_int64
    - sqlite3_int64
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172986
      start: 172955
    functionDepth: 29
    functionLinenumber: 172955
    functionLinenumberEnd: 172986
    functionName: fts3WriteSegdir
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_bind_null
    - sqlite3_bind_int
    - sqlite3_step
    - sqlite3_reset
    - sqlite3_bind_blob
    - sqlite3_mprintf
    - sqlite3_bind_int64
    - fts3SqlStmt
    - sqlite3_bind_text
    linkageType: ''
    returnType: int
    signature: "int fts3WriteSegdir(\n  Fts3Table *p,                   /* Virtual
      table handle */\n  sqlite3_int64 iLevel,           /* Value for \"level\" field
      (absolute level) */\n  int iIdx,                       /* Value for \"idx\"
      field */\n  sqlite3_int64 iStartBlock,      /* Value for \"start_block\" field
      */\n  sqlite3_int64 iLeafEndBlock,    /* Value for \"leaves_end_block\" field
      */\n  sqlite3_int64 iEndBlock,        /* Value for \"end_block\" field */\n
      \ sqlite3_int64 nLeafData,        /* Bytes of leaf data in segment */\n  char
      *zRoot,                    /* Blob value for \"root\" field */\n  int nRoot
      \                      /* Number of bytes in buffer zRoot */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:173003,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - zPrev
    - nPrev
    - zNext
    - nNext
    argTypes:
    - char*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173006
      start: 172996
    functionDepth: 1
    functionLinenumber: 172996
    functionLinenumberEnd: 173006
    functionName: fts3PrefixCompress
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: int
    signature: "int fts3PrefixCompress(\n  const char *zPrev,              /* Buffer
      containing previous term */\n  int nPrev,                      /* Size of buffer
      zPrev in bytes */\n  const char *zNext,              /* Buffer containing next
      term */\n  int nNext                       /* Size of buffer zNext in bytes
      */\n)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fts3PrefixCompress
      Src: /src/nss/lib/sqlite/sqlite3.c:173032,1
    - Dst: sqlite3Fts3VarintLen
      Src: /src/nss/lib/sqlite/sqlite3.c:173035,1
    - Dst: sqlite3Fts3VarintLen
      Src: /src/nss/lib/sqlite/sqlite3.c:173035,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:173046,1
    - Dst: sqlite3_malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:173047,1
    - Dst: sqlite3Fts3PutVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:173055,1
    - Dst: sqlite3Fts3PutVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:173058,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:173059,1
    - Dst: sqlite3_realloc
      Src: /src/nss/lib/sqlite/sqlite3.c:173065,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:173073,1
    - Dst: sqlite3_malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:173091,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:173095,1
    - Dst: fts3NodeAddTerm
      Src: /src/nss/lib/sqlite/sqlite3.c:173101,1
    - Dst: fts3NodeAddTerm
      Src: /src/nss/lib/sqlite/sqlite3.c:173113,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 62
    argCount: 5
    argNames:
    - p
    - ppTree
    - isCopyTerm
    - zTerm
    - nTerm
    argTypes:
    - Fts3Table*
    - SegmentNode**
    - int
    - char*
    - int
    assertStmts:
    - condition: ( pTree->aData==(char *)&pTree[1] )
      pos:
        line_end: 173045
        line_start: 173045
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 173118
      start: 173012
    functionDepth: 7
    functionLinenumber: 173012
    functionLinenumberEnd: 173118
    functionName: fts3NodeAddTerm
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_malloc
    - memcpy
    - fts3PrefixCompress
    - sqlite3_realloc
    - sqlite3Fts3PutVarint
    - assert
    - sqlite3Fts3VarintLen
    - memset
    - fts3NodeAddTerm
    linkageType: ''
    returnType: int
    signature: "int fts3NodeAddTerm(\n  Fts3Table *p,                   /* Virtual
      table handle */\n  SegmentNode **ppTree,           /* IN/OUT: SegmentNode handle
      */ \n  int isCopyTerm,                 /* True if zTerm/nTerm is transient */\n
      \ const char *zTerm,              /* Pointer to buffer containing term */\n
      \ int nTerm                       /* Size of term in bytes */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:173129,1
    - Dst: sqlite3Fts3VarintLen
      Src: /src/nss/lib/sqlite/sqlite3.c:173130,1
    - Dst: sqlite3Fts3PutVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:173132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pTree
    - iHeight
    - iLeftChild
    argTypes:
    - SegmentNode*
    - int
    - sqlite3_int64
    assertStmts:
    - condition: ( iHeight>=1 && iHeight<128 )
      pos:
        line_end: 173128
        line_start: 173128
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 173134
      start: 173123
    functionDepth: 1
    functionLinenumber: 173123
    functionLinenumberEnd: 173134
    functionName: fts3TreeFinishNode
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3Fts3VarintLen
    - sqlite3Fts3PutVarint
    linkageType: ''
    returnType: int
    signature: "int fts3TreeFinishNode(\n  SegmentNode *pTree, \n  int iHeight, \n
      \ sqlite3_int64 iLeftChild\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fts3TreeFinishNode
      Src: /src/nss/lib/sqlite/sqlite3.c:173163,1
    - Dst: fts3TreeFinishNode
      Src: /src/nss/lib/sqlite/sqlite3.c:173172,1
    - Dst: fts3WriteSegment
      Src: /src/nss/lib/sqlite/sqlite3.c:173175,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:173180,1
    - Dst: fts3NodeWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:173181,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 8
    argNames:
    - p
    - pTree
    - iHeight
    - iLeaf
    - iFree
    - piLast
    - paRoot
    - pnRoot
    argTypes:
    - Fts3Table*
    - SegmentNode*
    - int
    - sqlite3_int64
    - sqlite3_int64
    - sqlite3_int64*
    - char**
    - int*
    assertStmts:
    - condition: ( iNextLeaf==iFree )
      pos:
        line_end: 173179
        line_start: 173179
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 173188
      start: 173149
    functionDepth: 30
    functionLinenumber: 173149
    functionLinenumberEnd: 173188
    functionName: fts3NodeWrite
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - fts3NodeWrite
    - fts3TreeFinishNode
    - fts3WriteSegment
    linkageType: ''
    returnType: int
    signature: "int fts3NodeWrite(\n  Fts3Table *p,                   /* Virtual table
      handle */\n  SegmentNode *pTree,             /* SegmentNode handle */\n  int
      iHeight,                    /* Height of this node in tree */\n  sqlite3_int64
      iLeaf,            /* Block id of first leaf node */\n  sqlite3_int64 iFree,
      \           /* Block id of next free slot in %_segments */\n  sqlite3_int64
      *piLast,          /* OUT: Block id of last entry written */\n  char **paRoot,
      \                 /* OUT: Data for root node */\n  int *pnRoot                     /*
      OUT: Size of root node in bytes */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fts3NodeFree
      Src: /src/nss/lib/sqlite/sqlite3.c:173196,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:173200,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:173202,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:173203,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:173204,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - pTree
    argTypes:
    - SegmentNode*
    assertStmts:
    - condition: ( pRight==0 || p->zMalloc==0 )
      pos:
        line_end: 173201
        line_start: 173201
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 173208
      start: 173193
    functionDepth: 3
    functionLinenumber: 173193
    functionLinenumberEnd: 173208
    functionName: fts3NodeFree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - sqlite3_free
    - fts3NodeFree
    linkageType: ''
    returnType: void
    signature: void fts3NodeFree(SegmentNode *pTree)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:173238,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:173240,1
    - Dst: sqlite3_malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:173244,1
    - Dst: fts3SqlStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:173249,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:173251,1
    - Dst: sqlite3_column_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:173252,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:173255,1
    - Dst: fts3PrefixCompress
      Src: /src/nss/lib/sqlite/sqlite3.c:173260,1
    - Dst: sqlite3Fts3VarintLen
      Src: /src/nss/lib/sqlite/sqlite3.c:173269,1
    - Dst: sqlite3Fts3VarintLen
      Src: /src/nss/lib/sqlite/sqlite3.c:173270,1
    - Dst: sqlite3Fts3VarintLen
      Src: /src/nss/lib/sqlite/sqlite3.c:173272,1
    - Dst: fts3WriteSegment
      Src: /src/nss/lib/sqlite/sqlite3.c:173279,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:173295,1
    - Dst: fts3NodeAddTerm
      Src: /src/nss/lib/sqlite/sqlite3.c:173296,1
    - Dst: sqlite3Fts3VarintLen
      Src: /src/nss/lib/sqlite/sqlite3.c:173305,1
    - Dst: sqlite3Fts3VarintLen
      Src: /src/nss/lib/sqlite/sqlite3.c:173307,1
    - Dst: sqlite3_realloc
      Src: /src/nss/lib/sqlite/sqlite3.c:173318,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:173323,1
    - Dst: sqlite3Fts3PutVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:173326,1
    - Dst: sqlite3Fts3PutVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:173327,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:173328,1
    - Dst: sqlite3Fts3PutVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:173330,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:173331,1
    - Dst: sqlite3_realloc
      Src: /src/nss/lib/sqlite/sqlite3.c:173341,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:173349,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:173350,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 74
    argCount: 7
    argNames:
    - p
    - ppWriter
    - isCopyTerm
    - zTerm
    - nTerm
    - aDoclist
    - nDoclist
    argTypes:
    - Fts3Table*
    - SegmentWriter**
    - int
    - char*
    - int
    - char*
    - int
    assertStmts:
    - condition: ( nPrefix<nTerm )
      pos:
        line_end: 173294
        line_start: 173294
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nData+nReq<=pWriter->nSize )
      pos:
        line_end: 173322
        line_start: 173322
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pWriter->zTerm==pWriter->zMalloc )
      pos:
        line_end: 173348
        line_start: 173348
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 173357
      start: 173218
    functionDepth: 30
    functionLinenumber: 173218
    functionLinenumberEnd: 173357
    functionName: fts3SegWriterAdd
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_malloc
    - memcpy
    - sqlite3_step
    - sqlite3_reset
    - fts3PrefixCompress
    - sqlite3_realloc
    - sqlite3Fts3PutVarint
    - sqlite3_column_int64
    - memset
    - sqlite3Fts3VarintLen
    - assert
    - fts3WriteSegment
    - fts3SqlStmt
    - fts3NodeAddTerm
    linkageType: ''
    returnType: int
    signature: "int fts3SegWriterAdd(\n  Fts3Table *p,                   /* Virtual
      table handle */\n  SegmentWriter **ppWriter,       /* IN/OUT: SegmentWriter
      handle */ \n  int isCopyTerm,                 /* True if buffer zTerm must be
      copied */\n  const char *zTerm,              /* Pointer to buffer containing
      term */\n  int nTerm,                      /* Size of term in bytes */\n  const
      char *aDoclist,           /* Pointer to buffer containing doclist */\n  int
      nDoclist                    /* Size of doclist in bytes */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fts3WriteSegment
      Src: /src/nss/lib/sqlite/sqlite3.c:173379,1
    - Dst: fts3NodeWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:173381,1
    - Dst: fts3WriteSegdir
      Src: /src/nss/lib/sqlite/sqlite3.c:173385,1
    - Dst: fts3WriteSegdir
      Src: /src/nss/lib/sqlite/sqlite3.c:173390,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - p
    - pWriter
    - iLevel
    - iIdx
    argTypes:
    - Fts3Table*
    - SegmentWriter*
    - sqlite3_int64
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173395
      start: 173365
    functionDepth: 31
    functionLinenumber: 173365
    functionLinenumberEnd: 173395
    functionName: fts3SegWriterFlush
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3NodeWrite
    - fts3WriteSegdir
    - fts3WriteSegment
    linkageType: ''
    returnType: int
    signature: "int fts3SegWriterFlush(\n  Fts3Table *p,                   /* Virtual
      table handle */\n  SegmentWriter *pWriter,         /* SegmentWriter to flush
      to the db */\n  sqlite3_int64 iLevel,           /* Value for 'level' column
      of %_segdir */\n  int iIdx                        /* Value for 'idx' column
      of %_segdir */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:173403,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:173404,1
    - Dst: fts3NodeFree
      Src: /src/nss/lib/sqlite/sqlite3.c:173405,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:173406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pWriter
    argTypes:
    - SegmentWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173408
      start: 173401
    functionDepth: 4
    functionLinenumber: 173401
    functionLinenumberEnd: 173408
    functionName: fts3SegWriterFree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3NodeFree
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void fts3SegWriterFree(SegmentWriter *pWriter)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fts3SqlStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:173428,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:173430,1
    - Dst: sqlite3_column_int
      Src: /src/nss/lib/sqlite/sqlite3.c:173431,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:173433,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - p
    - pRowid
    - pisEmpty
    argTypes:
    - Fts3Table*
    - sqlite3_value*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173437
      start: 173420
    functionDepth: 29
    functionLinenumber: 173420
    functionLinenumberEnd: 173437
    functionName: fts3IsEmpty
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_step
    - sqlite3_reset
    - sqlite3_column_int
    - fts3SqlStmt
    linkageType: ''
    returnType: int
    signature: int fts3IsEmpty(Fts3Table *p, sqlite3_value *pRowid, int *pisEmpty)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:173455,1
    - Dst: fts3SqlStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:173463,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:173465,1
    - Dst: getAbsoluteLevel
      Src: /src/nss/lib/sqlite/sqlite3.c:173465,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:173466,1
    - Dst: getAbsoluteLevel
      Src: /src/nss/lib/sqlite/sqlite3.c:173467,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:173469,1
    - Dst: sqlite3_column_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:173470,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:173472,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - p
    - iLangid
    - iIndex
    - pnMax
    argTypes:
    - Fts3Table*
    - int
    - int
    - sqlite3_int64*
    assertStmts:
    - condition: ( iIndex>=0 && iIndex<p->nIndex )
      pos:
        line_end: 173454
        line_start: 173454
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 173473
      start: 173447
    functionDepth: 29
    functionLinenumber: 173447
    functionLinenumberEnd: 173473
    functionName: fts3SegmentMaxLevel
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - getAbsoluteLevel
    - sqlite3_step
    - sqlite3_reset
    - sqlite3_column_int64
    - assert
    - sqlite3_bind_int64
    - fts3SqlStmt
    linkageType: ''
    returnType: int
    signature: "int fts3SegmentMaxLevel(\n  Fts3Table *p, \n  int iLangid,\n  int
      iIndex, \n  sqlite3_int64 *pnMax\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fts3SqlStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:173492,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:173494,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:173495,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:173500,1
    - Dst: sqlite3_column_type
      Src: /src/nss/lib/sqlite/sqlite3.c:173501,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:173503,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - p
    - iAbsLevel
    - pbMax
    argTypes:
    - Fts3Table*
    - i64
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173504
      start: 173483
    functionDepth: 29
    functionLinenumber: 173483
    functionLinenumberEnd: 173504
    functionName: fts3SegmentIsMaxLevel
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_column_type
    - sqlite3_step
    - sqlite3_reset
    - sqlite3_bind_int64
    - fts3SqlStmt
    linkageType: ''
    returnType: int
    signature: int fts3SegmentIsMaxLevel(Fts3Table *p, i64 iAbsLevel, int *pbMax)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fts3SqlStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:173518,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:173520,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:173521,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:173522,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:173523,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - p
    - pSeg
    argTypes:
    - Fts3Table*
    - Fts3SegReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173527
      start: 173511
    functionDepth: 29
    functionLinenumber: 173511
    functionLinenumberEnd: 173527
    functionName: fts3DeleteSegment
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_step
    - sqlite3_bind_int64
    - sqlite3_reset
    - fts3SqlStmt
    linkageType: ''
    returnType: int
    signature: "int fts3DeleteSegment(\n  Fts3Table *p,                   /* FTS table
      handle */\n  Fts3SegReader *pSeg             /* Segment to delete */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fts3DeleteSegment
      Src: /src/nss/lib/sqlite/sqlite3.c:173556,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:173562,1
    - Dst: fts3SqlStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:173564,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:173566,1
    - Dst: getAbsoluteLevel
      Src: /src/nss/lib/sqlite/sqlite3.c:173566,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:173567,1
    - Dst: getAbsoluteLevel
      Src: /src/nss/lib/sqlite/sqlite3.c:173568,1
    - Dst: fts3SqlStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:173572,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:173574,1
    - Dst: getAbsoluteLevel
      Src: /src/nss/lib/sqlite/sqlite3.c:173575,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:173581,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:173582,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 6
    argNames:
    - p
    - iLangid
    - iIndex
    - iLevel
    - apSegment
    - nReader
    argTypes:
    - Fts3Table*
    - int
    - int
    - int
    - Fts3SegReader**
    - int
    assertStmts:
    - condition: ( iLevel>=0 || iLevel==FTS3_SEGCURSOR_ALL )
      pos:
        line_end: 173561
        line_start: 173561
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 173586
      start: 173543
    functionDepth: 30
    functionLinenumber: 173543
    functionLinenumberEnd: 173586
    functionName: fts3DeleteSegdir
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - getAbsoluteLevel
    - sqlite3_step
    - sqlite3_reset
    - assert
    - sqlite3_bind_int64
    - fts3DeleteSegment
    - fts3SqlStmt
    linkageType: ''
    returnType: int
    signature: "int fts3DeleteSegdir(\n  Fts3Table *p,                   /* Virtual
      table handle */\n  int iLangid,                    /* Language id */\n  int
      iIndex,                     /* Index for p->aIndex */\n  int iLevel,                     /*
      Level of %_segdir entries to delete */\n  Fts3SegReader **apSegment,      /*
      Array of SegReader objects */\n  int nReader                     /* Size of
      array apSegment */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:173612,1
    - Dst: fts3GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:173628,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:173632,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 4
    argNames:
    - iCol
    - bZero
    - ppList
    - pnList
    argTypes:
    - int
    - int
    - char**
    - int*
    assertStmts:
    - condition: ( iCol>=0 )
      pos:
        line_end: 173611
        line_start: 173611
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 173636
      start: 173600
    functionDepth: 1
    functionLinenumber: 173600
    functionLinenumberEnd: 173636
    functionName: fts3ColumnFilter
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fts3GetVarint32
    - memset
    linkageType: ''
    returnType: void
    signature: "void fts3ColumnFilter(\n  int iCol,                       /* Column
      to filter on */\n  int bZero,                      /* Zero out anything following
      *ppList */\n  char **ppList,                  /* IN/OUT: Pointer to position
      list */\n  int *pnList                     /* IN/OUT: Size of buffer *ppList
      in bytes */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_realloc
      Src: /src/nss/lib/sqlite/sqlite3.c:173653,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:173658,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - pMsr
    - pList
    - nList
    argTypes:
    - Fts3MultiSegReader*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173660
      start: 173645
    functionDepth: 7
    functionLinenumber: 173645
    functionLinenumberEnd: 173660
    functionName: fts3MsrBufferData
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - sqlite3_realloc
    linkageType: ''
    returnType: int
    signature: "int fts3MsrBufferData(\n  Fts3MultiSegReader *pMsr,       /* Multi-segment-reader
      handle */\n  char *pList,\n  int nList\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fts3SegReaderNextDocid
      Src: /src/nss/lib/sqlite/sqlite3.c:173694,1
    - Dst: fts3SegReaderNextDocid
      Src: /src/nss/lib/sqlite/sqlite3.c:173701,1
    - Dst: fts3SegReaderSort
      Src: /src/nss/lib/sqlite/sqlite3.c:173705,1
    - Dst: fts3SegReaderIsPending
      Src: /src/nss/lib/sqlite/sqlite3.c:173707,1
    - Dst: fts3MsrBufferData
      Src: /src/nss/lib/sqlite/sqlite3.c:173708,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:173710,1
    - Dst: fts3ColumnFilter
      Src: /src/nss/lib/sqlite/sqlite3.c:173715,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 5
    argNames:
    - p
    - pMsr
    - piDocid
    - paPoslist
    - pnPoslist
    argTypes:
    - Fts3Table*
    - Fts3MultiSegReader*
    - sqlite3_int64*
    - char**
    - int*
    assertStmts:
    - condition: ( (pMsr->aBuffer[nList] & 0xFE)==0x00 )
      pos:
        line_end: 173709
        line_start: 173709
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 173728
      start: 173662
    functionDepth: 30
    functionLinenumber: 173662
    functionLinenumberEnd: 173728
    functionName: sqlite3Fts3MsrIncrNext
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - fts3MsrBufferData
    - fts3SegReaderIsPending
    - fts3SegReaderSort
    - assert
    - fts3ColumnFilter
    - fts3SegReaderNextDocid
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3MsrIncrNext(\n  Fts3Table *p,                   /*
      Virtual table handle */\n  Fts3MultiSegReader *pMsr,       /* Multi-segment-reader
      handle */\n  sqlite3_int64 *piDocid,         /* OUT: Docid value */\n  char
      **paPoslist,               /* OUT: Pointer to position list */\n  int *pnPoslist
      \                 /* OUT: Size of position list in bytes */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fts3SegReaderNext
      Src: /src/nss/lib/sqlite/sqlite3.c:173749,1
    - Dst: fts3SegReaderTermCmp
      Src: /src/nss/lib/sqlite/sqlite3.c:173751,1
    - Dst: fts3SegReaderSetEof
      Src: /src/nss/lib/sqlite/sqlite3.c:173754,1
    - Dst: fts3SegReaderSort
      Src: /src/nss/lib/sqlite/sqlite3.c:173757,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 4
    argNames:
    - p
    - pCsr
    - zTerm
    - nTerm
    argTypes:
    - Fts3Table*
    - Fts3MultiSegReader*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173760
      start: 173730
    functionDepth: 31
    functionLinenumber: 173730
    functionLinenumberEnd: 173760
    functionName: fts3SegReaderStart
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3SegReaderTermCmp
    - fts3SegReaderSort
    - fts3SegReaderSetEof
    - fts3SegReaderNext
    linkageType: ''
    returnType: int
    signature: "int fts3SegReaderStart(\n  Fts3Table *p,                   /* Virtual
      table handle */\n  Fts3MultiSegReader *pCsr,       /* Cursor object */\n  const
      char *zTerm,              /* Term searched for (or NULL) */\n  int nTerm                       /*
      Length of zTerm in bytes */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts3SegReaderStart
      Src: /src/nss/lib/sqlite/sqlite3.c:173768,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - p
    - pCsr
    - pFilter
    argTypes:
    - Fts3Table*
    - Fts3MultiSegReader*
    - Fts3SegFilter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173769
      start: 173762
    functionDepth: 32
    functionLinenumber: 173762
    functionLinenumberEnd: 173769
    functionName: sqlite3Fts3SegReaderStart
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - fts3SegReaderStart
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3SegReaderStart(\n  Fts3Table *p,                   /*
      Virtual table handle */\n  Fts3MultiSegReader *pCsr,       /* Cursor object
      */\n  Fts3SegFilter *pFilter          /* Restrictions on range of iteration
      */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:173785,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:173786,1
    - Dst: fts3SegReaderStart
      Src: /src/nss/lib/sqlite/sqlite3.c:173789,1
    - Dst: fts3SegReaderTermCmp
      Src: /src/nss/lib/sqlite/sqlite3.c:173795,1
    - Dst: fts3SegReaderFirstDocid
      Src: /src/nss/lib/sqlite/sqlite3.c:173803,1
    - Dst: fts3SegReaderSort
      Src: /src/nss/lib/sqlite/sqlite3.c:173806,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:173808,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 5
    argNames:
    - p
    - pCsr
    - iCol
    - zTerm
    - nTerm
    argTypes:
    - Fts3Table*
    - Fts3MultiSegReader*
    - int
    - char*
    - int
    assertStmts:
    - condition: ( pCsr->pFilter==0 )
      pos:
        line_end: 173784
        line_start: 173784
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( zTerm && nTerm>0 )
      pos:
        line_end: 173785
        line_start: 173785
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iCol<0 || iCol<p->nColumn )
      pos:
        line_end: 173807
        line_start: 173807
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 173812
      start: 173771
    functionDepth: 32
    functionLinenumber: 173771
    functionLinenumberEnd: 173812
    functionName: sqlite3Fts3MsrIncrStart
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - fts3SegReaderSort
    - fts3SegReaderStart
    - assert
    - fts3SegReaderFirstDocid
    - fts3SegReaderTermCmp
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3MsrIncrStart(\n  Fts3Table *p,                   /*
      Virtual table handle */\n  Fts3MultiSegReader *pCsr,       /* Cursor object
      */\n  int iCol,                       /* Column to match on. */\n  const char
      *zTerm,              /* Term to iterate through a doclist for */\n  int nTerm
      \                      /* Number of bytes in zTerm */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:173829,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:173830,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:173831,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:173832,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - pCsr
    argTypes:
    - Fts3MultiSegReader*
    assertStmts:
    - condition: ( pCsr->zTerm==0 )
      pos:
        line_end: 173828
        line_start: 173828
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCsr->nTerm==0 )
      pos:
        line_end: 173829
        line_start: 173829
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCsr->aDoclist==0 )
      pos:
        line_end: 173830
        line_start: 173830
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCsr->nDoclist==0 )
      pos:
        line_end: 173831
        line_start: 173831
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 173843
      start: 173826
    functionDepth: 0
    functionLinenumber: 173826
    functionLinenumberEnd: 173843
    functionName: sqlite3Fts3MsrIncrRestart
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3MsrIncrRestart(Fts3MultiSegReader *pCsr)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: fts3SegReaderSetEof
      Src: /src/nss/lib/sqlite/sqlite3.c:173878,1
    - Dst: fts3SegReaderNext
      Src: /src/nss/lib/sqlite/sqlite3.c:173880,1
    - Dst: fts3SegReaderSort
      Src: /src/nss/lib/sqlite/sqlite3.c:173884,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:173888,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:173904,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:173914,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:173919,1
    - Dst: fts3SegReaderIsPending
      Src: /src/nss/lib/sqlite/sqlite3.c:173923,1
    - Dst: fts3SegReaderIsPending
      Src: /src/nss/lib/sqlite/sqlite3.c:173926,1
    - Dst: fts3MsrBufferData
      Src: /src/nss/lib/sqlite/sqlite3.c:173927,1
    - Dst: fts3SegReaderFirstDocid
      Src: /src/nss/lib/sqlite/sqlite3.c:173942,1
    - Dst: fts3SegReaderSort
      Src: /src/nss/lib/sqlite/sqlite3.c:173944,1
    - Dst: fts3SegReaderNextDocid
      Src: /src/nss/lib/sqlite/sqlite3.c:173951,1
    - Dst: fts3SegReaderNextDocid
      Src: /src/nss/lib/sqlite/sqlite3.c:173957,1
    - Dst: fts3ColumnFilter
      Src: /src/nss/lib/sqlite/sqlite3.c:173962,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:173978,1
    - Dst: sqlite3Fts3VarintLen
      Src: /src/nss/lib/sqlite/sqlite3.c:173980,1
    - Dst: sqlite3_realloc
      Src: /src/nss/lib/sqlite/sqlite3.c:173984,1
    - Dst: sqlite3Fts3FirstFilter
      Src: /src/nss/lib/sqlite/sqlite3.c:173995,1
    - Dst: sqlite3Fts3PutVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:174001,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:174004,1
    - Dst: fts3SegReaderSort
      Src: /src/nss/lib/sqlite/sqlite3.c:174011,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 101
    argCount: 2
    argNames:
    - p
    - pCsr
    argTypes:
    - Fts3Table*
    - Fts3MultiSegReader*
    assertStmts:
    - condition: ( isIgnoreEmpty || (isRequirePos && !isColFilter) )
      pos:
        line_end: 173918
        line_start: 173918
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nDoclist>0 || iDelta==iDocid )
      pos:
        line_end: 173977
        line_start: 173977
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc==SQLITE_OK )
      pos:
        line_end: 173887
        line_start: 173887
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 174023
      start: 173846
    functionDepth: 31
    functionLinenumber: 173846
    functionLinenumberEnd: 174023
    functionName: sqlite3Fts3SegReaderStep
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - fts3MsrBufferData
    - fts3SegReaderIsPending
    - memcpy
    - fts3SegReaderSort
    - sqlite3_realloc
    - fts3SegReaderNext
    - sqlite3Fts3PutVarint
    - fts3SegReaderSetEof
    - assert
    - fts3ColumnFilter
    - sqlite3Fts3VarintLen
    - fts3SegReaderFirstDocid
    - sqlite3Fts3FirstFilter
    - fts3SegReaderNextDocid
    - memcmp
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3SegReaderStep(\n  Fts3Table *p,                   /*
      Virtual table handle */\n  Fts3MultiSegReader *pCsr        /* Cursor object
      */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3SegReaderFree
      Src: /src/nss/lib/sqlite/sqlite3.c:174032,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:174034,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:174035,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - pCsr
    argTypes:
    - Fts3MultiSegReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174041
      start: 174026
    functionDepth: 28
    functionLinenumber: 174026
    functionLinenumberEnd: 174041
    functionName: sqlite3Fts3SegReaderFinish
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 3
    functionsReached:
    - sqlite3Fts3SegReaderFree
    - sqlite3_free
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3SegReaderFinish(\n  Fts3MultiSegReader *pCsr
      \      /* Cursor object */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_column_text
      Src: /src/nss/lib/sqlite/sqlite3.c:174059,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 4
    argNames:
    - pStmt
    - iCol
    - piEndBlock
    - pnByte
    argTypes:
    - sqlite3_stmt*
    - int
    - i64*
    - i64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174079
      start: 174053
    functionDepth: 16
    functionLinenumber: 174053
    functionLinenumberEnd: 174079
    functionName: fts3ReadEndBlockField
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_column_text
    linkageType: ''
    returnType: void
    signature: "void fts3ReadEndBlockField(\n  sqlite3_stmt *pStmt, \n  int iCol,
      \n  i64 *piEndBlock,\n  i64 *pnByte\n)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fts3SqlStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:174094,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:174106,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:174107,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:174108,1
    - Dst: fts3ReadEndBlockField
      Src: /src/nss/lib/sqlite/sqlite3.c:174110,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:174122,1
    - Dst: fts3SqlStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:174130,1
    - Dst: fts3SqlStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:174133,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:174147,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:174148,1
    - Dst: sqlite3_bind_int
      Src: /src/nss/lib/sqlite/sqlite3.c:174149,1
    - Dst: sqlite3_bind_int
      Src: /src/nss/lib/sqlite/sqlite3.c:174150,1
    - Dst: sqlite3_column_int
      Src: /src/nss/lib/sqlite/sqlite3.c:174150,1
    - Dst: sqlite3_bind_int
      Src: /src/nss/lib/sqlite/sqlite3.c:174151,1
    - Dst: sqlite3_column_int
      Src: /src/nss/lib/sqlite/sqlite3.c:174151,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:174152,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:174153,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:174155,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:174161,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:174166,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:174167,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:174168,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 3
    argNames:
    - p
    - iAbsLevel
    - nByte
    argTypes:
    - Fts3Table*
    - sqlite3_int64
    - sqlite3_int64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174175
      start: 174086
    functionDepth: 29
    functionLinenumber: 174086
    functionLinenumberEnd: 174175
    functionName: fts3PromoteSegments
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3ReadEndBlockField
    - sqlite3_bind_int
    - sqlite3_step
    - sqlite3_reset
    - sqlite3_bind_int64
    - fts3SqlStmt
    - sqlite3_column_int
    linkageType: ''
    returnType: int
    signature: "int fts3PromoteSegments(\n  Fts3Table *p,                   /* FTS
      table handle */\n  sqlite3_int64 iAbsLevel,        /* Absolute level just updated
      */\n  sqlite3_int64 nByte             /* Size of new segment at iAbsLevel */\n)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:174203,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:174207,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:174208,1
    - Dst: sqlite3Fts3SegReaderCursor
      Src: /src/nss/lib/sqlite/sqlite3.c:174210,1
    - Dst: fts3SegmentMaxLevel
      Src: /src/nss/lib/sqlite/sqlite3.c:174214,1
    - Dst: fts3SegReaderIsPending
      Src: /src/nss/lib/sqlite/sqlite3.c:174223,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:174235,1
    - Dst: getAbsoluteLevel
      Src: /src/nss/lib/sqlite/sqlite3.c:174236,1
    - Dst: fts3AllocateSegdirIdx
      Src: /src/nss/lib/sqlite/sqlite3.c:174237,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:174242,1
    - Dst: assert_fts3_nc
      Src: /src/nss/lib/sqlite/sqlite3.c:174243,1
    - Dst: getAbsoluteLevel
      Src: /src/nss/lib/sqlite/sqlite3.c:174243,1
    - Dst: assert_fts3_nc
      Src: /src/nss/lib/sqlite/sqlite3.c:174244,1
    - Dst: getAbsoluteLevel
      Src: /src/nss/lib/sqlite/sqlite3.c:174245,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:174248,1
    - Dst: sqlite3Fts3SegReaderStart
      Src: /src/nss/lib/sqlite/sqlite3.c:174252,1
    - Dst: sqlite3Fts3SegReaderStep
      Src: /src/nss/lib/sqlite/sqlite3.c:174254,1
    - Dst: fts3SegWriterAdd
      Src: /src/nss/lib/sqlite/sqlite3.c:174256,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:174260,1
    - Dst: fts3DeleteSegdir
      Src: /src/nss/lib/sqlite/sqlite3.c:174263,1
    - Dst: fts3SegWriterFlush
      Src: /src/nss/lib/sqlite/sqlite3.c:174269,1
    - Dst: fts3PromoteSegments
      Src: /src/nss/lib/sqlite/sqlite3.c:174272,1
    - Dst: fts3SegWriterFree
      Src: /src/nss/lib/sqlite/sqlite3.c:174278,1
    - Dst: sqlite3Fts3SegReaderFinish
      Src: /src/nss/lib/sqlite/sqlite3.c:174279,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 67
    argCount: 4
    argNames:
    - p
    - iLangid
    - iIndex
    - iLevel
    argTypes:
    - Fts3Table*
    - int
    - int
    - int
    assertStmts:
    - condition: ( FTS3_SEGCURSOR_PENDING==-1 )
      pos:
        line_end: 174234
        line_start: 174234
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iIndex>=0 && iIndex<p->nIndex )
      pos:
        line_end: 174207
        line_start: 174207
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pWriter || bIgnoreEmpty )
      pos:
        line_end: 174259
        line_start: 174259
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( iLevel==FTS3_SEGCURSOR_ALL\n       || iLevel==FTS3_SEGCURSOR_PENDING\n
        \      || iLevel>=0\n  )"
      pos:
        line_end: 174205
        line_start: 174202
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iLevel<FTS3_SEGDIR_MAXLEVEL )
      pos:
        line_end: 174206
        line_start: 174206
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( csr.nSegment>0 )
      pos:
        line_end: 174241
        line_start: 174241
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 174281
      start: 174188
    functionDepth: 33
    functionLinenumber: 174188
    functionLinenumberEnd: 174281
    functionName: fts3SegmentMerge
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - getAbsoluteLevel
    - fts3SegReaderIsPending
    - fts3AllocateSegdirIdx
    - fts3SegWriterFlush
    - fts3SegWriterFree
    - assert
    - memset
    - sqlite3Fts3SegReaderCursor
    - fts3SegmentMaxLevel
    - sqlite3Fts3SegReaderStart
    - sqlite3Fts3SegReaderFinish
    - assert_fts3_nc
    - fts3SegWriterAdd
    - fts3PromoteSegments
    - sqlite3Fts3SegReaderStep
    - fts3DeleteSegdir
    linkageType: ''
    returnType: int
    signature: "int fts3SegmentMerge(\n  Fts3Table *p, \n  int iLangid,                    /*
      Language id to merge */\n  int iIndex,                     /* Index in p->aIndex[]
      to merge */\n  int iLevel                      /* Level to merge */\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fts3SegmentMerge
      Src: /src/nss/lib/sqlite/sqlite3.c:174292,1
    - Dst: sqlite3Fts3PendingTermsClear
      Src: /src/nss/lib/sqlite/sqlite3.c:174295,1
    - Dst: fts3SqlStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:174304,1
    - Dst: sqlite3_bind_int
      Src: /src/nss/lib/sqlite/sqlite3.c:174306,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:174307,1
    - Dst: sqlite3_column_int
      Src: /src/nss/lib/sqlite/sqlite3.c:174309,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:174314,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 1
    argNames:
    - p
    argTypes:
    - Fts3Table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174318
      start: 174287
    functionDepth: 34
    functionLinenumber: 174287
    functionLinenumberEnd: 174318
    functionName: sqlite3Fts3PendingTermsFlush
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 3
    functionsReached:
    - sqlite3_bind_int
    - sqlite3_step
    - sqlite3_reset
    - fts3SegmentMerge
    - sqlite3Fts3PendingTermsClear
    - fts3SqlStmt
    - sqlite3_column_int
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3PendingTermsFlush(Fts3Table *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3PutVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:174331,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - N
    - a
    - zBuf
    - pNBuf
    argTypes:
    - int
    - u32*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174334
      start: 174323
    functionDepth: 1
    functionLinenumber: 174323
    functionLinenumberEnd: 174334
    functionName: fts3EncodeIntArray
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts3PutVarint
    linkageType: ''
    returnType: void
    signature: "void fts3EncodeIntArray(\n  int N,             /* The number of integers
      to encode */\n  u32 *a,            /* The integer values */\n  char *zBuf,        /*
      Write the BLOB here */\n  int *pNBuf         /* Write number of bytes if zBuf[]
      used here */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:174350,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 4
    argNames:
    - N
    - a
    - zBuf
    - nBuf
    argTypes:
    - int
    - u32*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174355
      start: 174339
    functionDepth: 2
    functionLinenumber: 174339
    functionLinenumberEnd: 174355
    functionName: fts3DecodeIntArray
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts3GetVarint
    linkageType: ''
    returnType: void
    signature: "void fts3DecodeIntArray(\n  int N,             /* The number of integers
      to decode */\n  u32 *a,            /* Write the integer values */\n  const char
      *zBuf,  /* The BLOB containing the varints */\n  int nBuf           /* size
      of the BLOB */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:174373,1
    - Dst: fts3EncodeIntArray
      Src: /src/nss/lib/sqlite/sqlite3.c:174378,1
    - Dst: fts3SqlStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:174379,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:174381,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:174385,1
    - Dst: sqlite3_bind_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:174386,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:174387,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:174388,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - pRC
    - p
    - aSz
    argTypes:
    - int*
    - Fts3Table*
    - u32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174389
      start: 174362
    functionDepth: 29
    functionLinenumber: 174362
    functionLinenumberEnd: 174389
    functionName: fts3InsertDocsize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_malloc64
    - sqlite3_step
    - sqlite3_reset
    - fts3EncodeIntArray
    - sqlite3_bind_blob
    - sqlite3_bind_int64
    - fts3SqlStmt
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: "void fts3InsertDocsize(\n  int *pRC,                       /* Result
      code */\n  Fts3Table *p,                   /* Table into which to insert */\n
      \ u32 *aSz                        /* Sizes of each column, in tokens */\n)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:174423,1
    - Dst: fts3SqlStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:174429,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:174431,1
    - Dst: sqlite3_bind_int
      Src: /src/nss/lib/sqlite/sqlite3.c:174435,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:174436,1
    - Dst: fts3DecodeIntArray
      Src: /src/nss/lib/sqlite/sqlite3.c:174437,1
    - Dst: sqlite3_column_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:174438,1
    - Dst: sqlite3_column_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:174439,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:174441,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:174443,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:174445,1
    - Dst: fts3EncodeIntArray
      Src: /src/nss/lib/sqlite/sqlite3.c:174463,1
    - Dst: fts3SqlStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:174464,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:174466,1
    - Dst: sqlite3_bind_int
      Src: /src/nss/lib/sqlite/sqlite3.c:174470,1
    - Dst: sqlite3_bind_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:174471,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:174472,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:174473,1
    - Dst: sqlite3_bind_null
      Src: /src/nss/lib/sqlite/sqlite3.c:174474,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:174475,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 53
    argCount: 5
    argNames:
    - pRC
    - p
    - aSzIns
    - aSzDel
    - nChng
    argTypes:
    - int*
    - Fts3Table*
    - u32*
    - u32*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174476
      start: 174406
    functionDepth: 29
    functionLinenumber: 174406
    functionLinenumberEnd: 174476
    functionName: fts3UpdateDocTotals
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_bind_null
    - sqlite3_bind_int
    - sqlite3_step
    - sqlite3_malloc64
    - sqlite3_reset
    - fts3DecodeIntArray
    - sqlite3_column_blob
    - fts3EncodeIntArray
    - sqlite3_bind_blob
    - sqlite3_column_bytes
    - memset
    - fts3SqlStmt
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: "void fts3UpdateDocTotals(\n  int *pRC,                       /* The
      result code */\n  Fts3Table *p,                   /* Table being updated */\n
      \ u32 *aSzIns,                    /* Size increases */\n  u32 *aSzDel,                    /*
      Size decreases */\n  int nChng                       /* Change in the number
      of documents */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fts3SqlStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:174487,1
    - Dst: sqlite3_bind_int
      Src: /src/nss/lib/sqlite/sqlite3.c:174490,1
    - Dst: sqlite3_bind_int
      Src: /src/nss/lib/sqlite/sqlite3.c:174491,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:174492,1
    - Dst: sqlite3_column_int
      Src: /src/nss/lib/sqlite/sqlite3.c:174494,1
    - Dst: fts3SegmentMerge
      Src: /src/nss/lib/sqlite/sqlite3.c:174496,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:174503,1
    - Dst: sqlite3Fts3SegmentsClose
      Src: /src/nss/lib/sqlite/sqlite3.c:174507,1
    - Dst: sqlite3Fts3PendingTermsClear
      Src: /src/nss/lib/sqlite/sqlite3.c:174508,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - p
    - bReturnDone
    argTypes:
    - Fts3Table*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174511
      start: 174482
    functionDepth: 34
    functionLinenumber: 174482
    functionLinenumberEnd: 174511
    functionName: fts3DoOptimize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_bind_int
    - sqlite3_step
    - sqlite3_reset
    - fts3SegmentMerge
    - sqlite3Fts3PendingTermsClear
    - fts3SqlStmt
    - sqlite3Fts3SegmentsClose
    - sqlite3_column_int
    linkageType: ''
    returnType: int
    signature: int fts3DoOptimize(Fts3Table *p, int bReturnDone)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fts3DeleteAll
      Src: /src/nss/lib/sqlite/sqlite3.c:174526,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:174535,1
    - Dst: sqlite3_prepare_v2
      Src: /src/nss/lib/sqlite/sqlite3.c:174539,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:174540,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:174545,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:174549,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:174555,1
    - Dst: langidFromSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:174557,1
    - Dst: fts3PendingTermsDocid
      Src: /src/nss/lib/sqlite/sqlite3.c:174558,1
    - Dst: sqlite3_column_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:174558,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:174559,1
    - Dst: sqlite3_column_text
      Src: /src/nss/lib/sqlite/sqlite3.c:174562,1
    - Dst: fts3PendingTermsAdd
      Src: /src/nss/lib/sqlite/sqlite3.c:174563,1
    - Dst: sqlite3_column_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:174564,1
    - Dst: fts3InsertDocsize
      Src: /src/nss/lib/sqlite/sqlite3.c:174568,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:174571,1
    - Dst: fts3UpdateDocTotals
      Src: /src/nss/lib/sqlite/sqlite3.c:174581,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:174583,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:174586,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 52
    argCount: 1
    argNames:
    - p
    argTypes:
    - Fts3Table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174594
      start: 174523
    functionDepth: 31
    functionLinenumber: 174523
    functionLinenumberEnd: 174594
    functionName: fts3DoRebuild
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_malloc64
    - sqlite3_step
    - fts3InsertDocsize
    - fts3UpdateDocTotals
    - fts3DeleteAll
    - fts3PendingTermsDocid
    - sqlite3_column_int64
    - memset
    - sqlite3_mprintf
    - sqlite3_prepare_v2
    - fts3PendingTermsAdd
    - sqlite3_column_bytes
    - sqlite3_column_text
    - langidFromSelect
    - sqlite3_finalize
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int fts3DoRebuild(Fts3Table *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:174614,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:174616,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:174621,1
    - Dst: fts3SqlStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:174622,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:174627,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:174628,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:174629,1
    - Dst: sqlite3Fts3SegReaderNew
      Src: /src/nss/lib/sqlite/sqlite3.c:174630,1
    - Dst: sqlite3_column_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:174631,1
    - Dst: sqlite3_column_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:174632,1
    - Dst: sqlite3_column_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:174633,1
    - Dst: sqlite3_column_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:174634,1
    - Dst: sqlite3_column_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:174635,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:174640,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 4
    argNames:
    - p
    - iAbsLevel
    - nSeg
    - pCsr
    argTypes:
    - Fts3Table*
    - sqlite3_int64
    - int
    - Fts3MultiSegReader*
    assertStmts:
    - condition: ( pCsr->nSegment==0 )
      pos:
        line_end: 174627
        line_start: 174627
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 174645
      start: 174603
    functionDepth: 29
    functionLinenumber: 174603
    functionLinenumberEnd: 174645
    functionName: fts3IncrmergeCsr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_malloc64
    - sqlite3_step
    - sqlite3_reset
    - sqlite3_column_blob
    - sqlite3_column_bytes
    - sqlite3_column_int64
    - memset
    - assert
    - sqlite3Fts3SegReaderNew
    - sqlite3_bind_int64
    - fts3SqlStmt
    linkageType: ''
    returnType: int
    signature: "int fts3IncrmergeCsr(\n  Fts3Table *p,                   /* FTS3 table
      handle */\n  sqlite3_int64 iAbsLevel,        /* Absolute level to open */\n
      \ int nSeg,                       /* Number of segments to merge */\n  Fts3MultiSegReader
      *pCsr        /* Cursor object to populate */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_realloc
      Src: /src/nss/lib/sqlite/sqlite3.c:174722,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - pBlob
    - nMin
    - pRc
    argTypes:
    - Blob*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174730
      start: 174719
    functionDepth: 7
    functionLinenumber: 174719
    functionLinenumberEnd: 174730
    functionName: blobGrowBuffer
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_realloc
    linkageType: ''
    returnType: void
    signature: void blobGrowBuffer(Blob *pBlob, int nMin, int *pRc)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:174748,1
    - Dst: fts3GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:174755,1
    - Dst: fts3GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:174757,1
    - Dst: blobGrowBuffer
      Src: /src/nss/lib/sqlite/sqlite3.c:174762,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:174764,1
    - Dst: fts3GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:174768,1
    - Dst: assert_fts3_nc
      Src: /src/nss/lib/sqlite/sqlite3.c:174778,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 1
    argNames:
    - p
    argTypes:
    - NodeReader*
    assertStmts:
    - condition: ( p->aNode )
      pos:
        line_end: 174747
        line_start: 174747
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 174780
      start: 174742
    functionDepth: 8
    functionLinenumber: 174742
    functionLinenumberEnd: 174780
    functionName: nodeReaderNext
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - blobGrowBuffer
    - fts3GetVarint32
    - assert
    - assert_fts3_nc
    linkageType: ''
    returnType: int
    signature: int nodeReaderNext(NodeReader *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:174786,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - NodeReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174787
      start: 174785
    functionDepth: 3
    functionLinenumber: 174785
    functionLinenumberEnd: 174787
    functionName: nodeReaderRelease
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void nodeReaderRelease(NodeReader *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:174797,1
    - Dst: sqlite3Fts3GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:174804,1
    - Dst: nodeReaderNext
      Src: /src/nss/lib/sqlite/sqlite3.c:174809,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - p
    - aNode
    - nNode
    argTypes:
    - NodeReader*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174810
      start: 174796
    functionDepth: 9
    functionLinenumber: 174796
    functionLinenumberEnd: 174810
    functionName: nodeReaderInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3Fts3GetVarint
    - nodeReaderNext
    linkageType: ''
    returnType: int
    signature: int nodeReaderInit(NodeReader *p, const char *aNode, int nNode)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:174831,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:174832,1
    - Dst: fts3PrefixCompress
      Src: /src/nss/lib/sqlite/sqlite3.c:174844,1
    - Dst: sqlite3Fts3VarintLen
      Src: /src/nss/lib/sqlite/sqlite3.c:174846,1
    - Dst: sqlite3Fts3VarintLen
      Src: /src/nss/lib/sqlite/sqlite3.c:174847,1
    - Dst: blobGrowBuffer
      Src: /src/nss/lib/sqlite/sqlite3.c:174856,1
    - Dst: sqlite3Fts3PutVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:174859,1
    - Dst: blobGrowBuffer
      Src: /src/nss/lib/sqlite/sqlite3.c:174862,1
    - Dst: blobGrowBuffer
      Src: /src/nss/lib/sqlite/sqlite3.c:174863,1
    - Dst: sqlite3Fts3PutVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:174867,1
    - Dst: sqlite3Fts3PutVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:174869,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:174870,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:174873,1
    - Dst: fts3WriteSegment
      Src: /src/nss/lib/sqlite/sqlite3.c:174880,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:174882,1
    - Dst: sqlite3Fts3PutVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:174884,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:174895,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 4
    argNames:
    - p
    - pWriter
    - zTerm
    - nTerm
    argTypes:
    - Fts3Table*
    - IncrmergeWriter*
    - char*
    - int
    assertStmts:
    - condition: ( nTerm>0 )
      pos:
        line_end: 174830
        line_start: 174830
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( 0 )
      pos:
        line_end: 174894
        line_start: 174894
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pNode->block.nAlloc>=p->nNodeSize )
      pos:
        line_end: 174881
        line_start: 174881
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 174897
      start: 174822
    functionDepth: 30
    functionLinenumber: 174822
    functionLinenumberEnd: 174897
    functionName: fts3IncrmergePush
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ALWAYS
    - memcpy
    - fts3PrefixCompress
    - blobGrowBuffer
    - sqlite3Fts3PutVarint
    - assert
    - sqlite3Fts3VarintLen
    - fts3WriteSegment
    linkageType: ''
    returnType: int
    signature: "int fts3IncrmergePush(\n  Fts3Table *p,                   /* Fts3
      table handle */\n  IncrmergeWriter *pWriter,       /* Writer object */\n  const
      char *zTerm,              /* Term to write to internal node */\n  int nTerm
      \                      /* Bytes at zTerm */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:174938,1
    - Dst: assert_fts3_nc
      Src: /src/nss/lib/sqlite/sqlite3.c:174939,1
    - Dst: blobGrowBuffer
      Src: /src/nss/lib/sqlite/sqlite3.c:174941,1
    - Dst: fts3PrefixCompress
      Src: /src/nss/lib/sqlite/sqlite3.c:174944,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:174946,1
    - Dst: sqlite3Fts3PutVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:174950,1
    - Dst: sqlite3Fts3PutVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:174952,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:174953,1
    - Dst: sqlite3Fts3PutVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:174957,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:174958,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:174962,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 6
    argNames:
    - pNode
    - pPrev
    - zTerm
    - nTerm
    - aDoclist
    - nDoclist
    argTypes:
    - Blob*
    - Blob*
    - char*
    - int
    - char*
    - int
    assertStmts:
    - condition: ( pNode->n>0 )
      pos:
        line_end: 174937
        line_start: 174937
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pNode->n<=pNode->nAlloc )
      pos:
        line_end: 174961
        line_start: 174961
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 174965
      start: 174923
    functionDepth: 8
    functionLinenumber: 174923
    functionLinenumberEnd: 174965
    functionName: fts3AppendToNode
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - fts3PrefixCompress
    - blobGrowBuffer
    - sqlite3Fts3PutVarint
    - assert
    - assert_fts3_nc
    linkageType: ''
    returnType: int
    signature: "int fts3AppendToNode(\n  Blob *pNode,                    /* Current
      node image to append to */\n  Blob *pPrev,                    /* Buffer containing
      previous term written */\n  const char *zTerm,              /* New term to write
      */\n  int nTerm,                      /* Size of zTerm in bytes */\n  const
      char *aDoclist,           /* Doclist (or NULL) to write */\n  int nDoclist                    /*
      Size of aDoclist in bytes */ \n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fts3PrefixCompress
      Src: /src/nss/lib/sqlite/sqlite3.c:174989,1
    - Dst: sqlite3Fts3VarintLen
      Src: /src/nss/lib/sqlite/sqlite3.c:174992,1
    - Dst: sqlite3Fts3VarintLen
      Src: /src/nss/lib/sqlite/sqlite3.c:174993,1
    - Dst: sqlite3Fts3VarintLen
      Src: /src/nss/lib/sqlite/sqlite3.c:174994,1
    - Dst: fts3WriteSegment
      Src: /src/nss/lib/sqlite/sqlite3.c:175000,1
    - Dst: fts3IncrmergePush
      Src: /src/nss/lib/sqlite/sqlite3.c:175016,1
    - Dst: sqlite3Fts3VarintLen
      Src: /src/nss/lib/sqlite/sqlite3.c:175026,1
    - Dst: sqlite3Fts3VarintLen
      Src: /src/nss/lib/sqlite/sqlite3.c:175027,1
    - Dst: blobGrowBuffer
      Src: /src/nss/lib/sqlite/sqlite3.c:175031,1
    - Dst: fts3AppendToNode
      Src: /src/nss/lib/sqlite/sqlite3.c:175037,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 3
    argNames:
    - p
    - pWriter
    - pCsr
    argTypes:
    - Fts3Table*
    - IncrmergeWriter*
    - Fts3MultiSegReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175043
      start: 174973
    functionDepth: 31
    functionLinenumber: 174973
    functionLinenumberEnd: 175043
    functionName: fts3IncrmergeAppend
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3IncrmergePush
    - fts3PrefixCompress
    - blobGrowBuffer
    - fts3AppendToNode
    - sqlite3Fts3VarintLen
    - fts3WriteSegment
    linkageType: ''
    returnType: int
    signature: "int fts3IncrmergeAppend(\n  Fts3Table *p,                   /* Fts3
      table handle */\n  IncrmergeWriter *pWriter,       /* Writer object */\n  Fts3MultiSegReader
      *pCsr        /* Cursor containing term and doclist */\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:175075,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:175076,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:175077,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:175078,1
    - Dst: blobGrowBuffer
      Src: /src/nss/lib/sqlite/sqlite3.c:175101,1
    - Dst: sqlite3Fts3PutVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:175104,1
    - Dst: fts3WriteSegment
      Src: /src/nss/lib/sqlite/sqlite3.c:175116,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:175118,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:175119,1
    - Dst: fts3WriteSegdir
      Src: /src/nss/lib/sqlite/sqlite3.c:175124,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:175134,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:175135,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 3
    argNames:
    - p
    - pWriter
    - pRc
    argTypes:
    - Fts3Table*
    - IncrmergeWriter*
    - int*
    assertStmts:
    - condition: ( *pRc || pNode->block.nAlloc==0 )
      pos:
        line_end: 175074
        line_start: 175074
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( *pRc || pNode->key.nAlloc==0 )
      pos:
        line_end: 175075
        line_start: 175075
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 175138
      start: 175058
    functionDepth: 30
    functionLinenumber: 175058
    functionLinenumberEnd: 175138
    functionName: fts3IncrmergeRelease
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - blobGrowBuffer
    - sqlite3Fts3PutVarint
    - assert
    - fts3WriteSegdir
    - fts3WriteSegment
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: "void fts3IncrmergeRelease(\n  Fts3Table *p,                   /* FTS3
      table handle */\n  IncrmergeWriter *pWriter,       /* Merge-writer object */\n
      \ int *pRc                        /* IN/OUT: Error code */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/nss/lib/sqlite/sqlite3.c:175152,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:175155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - zLhs
    - nLhs
    - zRhs
    - nRhs
    argTypes:
    - char*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175159
      start: 175148
    functionDepth: 0
    functionLinenumber: 175148
    functionLinenumberEnd: 175159
    functionName: fts3TermCmp
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcmp
    - MIN
    linkageType: ''
    returnType: int
    signature: "int fts3TermCmp(\n  const char *zLhs, int nLhs,     /* LHS of comparison
      */\n  const char *zRhs, int nRhs      /* RHS of comparison */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fts3SqlStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:175179,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:175181,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:175182,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:175183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - p
    - iEnd
    - pbRes
    argTypes:
    - Fts3Table*
    - sqlite3_int64
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175188
      start: 175174
    functionDepth: 29
    functionLinenumber: 175174
    functionLinenumberEnd: 175188
    functionName: fts3IsAppendable
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_step
    - sqlite3_bind_int64
    - sqlite3_reset
    - fts3SqlStmt
    linkageType: ''
    returnType: int
    signature: int fts3IsAppendable(Fts3Table *p, sqlite3_int64 iEnd, int *pbRes)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: fts3SqlStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:175216,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:175227,1
    - Dst: sqlite3_bind_int
      Src: /src/nss/lib/sqlite/sqlite3.c:175228,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:175229,1
    - Dst: sqlite3_column_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:175230,1
    - Dst: sqlite3_column_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:175231,1
    - Dst: fts3ReadEndBlockField
      Src: /src/nss/lib/sqlite/sqlite3.c:175232,1
    - Dst: sqlite3_column_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:175237,1
    - Dst: sqlite3_column_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:175238,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:175240,1
    - Dst: fts3IsAppendable
      Src: /src/nss/lib/sqlite/sqlite3.c:175244,1
    - Dst: sqlite3Fts3ReadBlock
      Src: /src/nss/lib/sqlite/sqlite3.c:175251,1
    - Dst: nodeReaderInit
      Src: /src/nss/lib/sqlite/sqlite3.c:175254,1
    - Dst: nodeReaderNext
      Src: /src/nss/lib/sqlite/sqlite3.c:175256,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:175258,1
    - Dst: fts3TermCmp
      Src: /src/nss/lib/sqlite/sqlite3.c:175260,1
    - Dst: nodeReaderRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:175263,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:175265,1
    - Dst: blobGrowBuffer
      Src: /src/nss/lib/sqlite/sqlite3.c:175287,1
    - Dst: MAX
      Src: /src/nss/lib/sqlite/sqlite3.c:175288,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:175291,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:175293,1
    - Dst: nodeReaderInit
      Src: /src/nss/lib/sqlite/sqlite3.c:175300,1
    - Dst: nodeReaderNext
      Src: /src/nss/lib/sqlite/sqlite3.c:175302,1
    - Dst: blobGrowBuffer
      Src: /src/nss/lib/sqlite/sqlite3.c:175303,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:175305,1
    - Dst: sqlite3Fts3ReadBlock
      Src: /src/nss/lib/sqlite/sqlite3.c:175312,1
    - Dst: blobGrowBuffer
      Src: /src/nss/lib/sqlite/sqlite3.c:175313,1
    - Dst: MAX
      Src: /src/nss/lib/sqlite/sqlite3.c:175314,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:175317,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:175319,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:175321,1
    - Dst: nodeReaderRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:175325,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:175329,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 81
    argCount: 6
    argNames:
    - p
    - iAbsLevel
    - iIdx
    - zKey
    - nKey
    - pWriter
    argTypes:
    - Fts3Table*
    - sqlite3_int64
    - int
    - char*
    - int
    - IncrmergeWriter*
    assertStmts:
    - condition: ( reader.aNode )
      pos:
        line_end: 175257
        line_start: 175257
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 175334
      start: 175205
    functionDepth: 30
    functionLinenumber: 175205
    functionLinenumberEnd: 175334
    functionName: fts3IncrmergeLoad
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_reset
    - blobGrowBuffer
    - sqlite3_column_bytes
    - sqlite3_column_int64
    - fts3ReadEndBlockField
    - sqlite3_bind_int
    - memcpy
    - sqlite3_column_blob
    - assert
    - memset
    - fts3IsAppendable
    - nodeReaderNext
    - fts3SqlStmt
    - sqlite3_step
    - nodeReaderInit
    - nodeReaderRelease
    - MAX
    - sqlite3Fts3ReadBlock
    - fts3TermCmp
    - sqlite3_bind_int64
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int fts3IncrmergeLoad(\n  Fts3Table *p,                   /* Fts3
      table handle */\n  sqlite3_int64 iAbsLevel,        /* Absolute level of input
      segments */\n  int iIdx,                       /* Index of candidate output
      segment */\n  const char *zKey,               /* First key to write */\n  int
      nKey,                       /* Number of bytes in nKey */\n  IncrmergeWriter
      *pWriter        /* Populate this object */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fts3SqlStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:175353,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:175355,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:175356,1
    - Dst: sqlite3_column_int
      Src: /src/nss/lib/sqlite/sqlite3.c:175357,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:175358,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - p
    - iAbsLevel
    - piIdx
    argTypes:
    - Fts3Table*
    - sqlite3_int64
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175362
      start: 175345
    functionDepth: 29
    functionLinenumber: 175345
    functionLinenumberEnd: 175362
    functionName: fts3IncrmergeOutputIdx
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_step
    - sqlite3_reset
    - sqlite3_bind_int64
    - fts3SqlStmt
    - sqlite3_column_int
    linkageType: ''
    returnType: int
    signature: "int fts3IncrmergeOutputIdx( \n  Fts3Table *p,                   /*
      FTS Table handle */\n  sqlite3_int64 iAbsLevel,        /* Absolute index of
      input segments */\n  int *piIdx                      /* OUT: Next free index
      at iAbsLevel+1 */\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fts3SqlStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:175404,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:175406,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:175407,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:175408,1
    - Dst: sqlite3_column_int
      Src: /src/nss/lib/sqlite/sqlite3.c:175409,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:175411,1
    - Dst: fts3SqlStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:175416,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:175418,1
    - Dst: sqlite3_column_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:175419,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:175423,1
    - Dst: fts3WriteSegment
      Src: /src/nss/lib/sqlite/sqlite3.c:175430,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 5
    argNames:
    - p
    - iAbsLevel
    - iIdx
    - pCsr
    - pWriter
    argTypes:
    - Fts3Table*
    - sqlite3_int64
    - int
    - Fts3MultiSegReader*
    - IncrmergeWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175442
      start: 175390
    functionDepth: 30
    functionLinenumber: 175390
    functionLinenumberEnd: 175442
    functionName: fts3IncrmergeWriter
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_step
    - sqlite3_reset
    - sqlite3_column_int64
    - sqlite3_bind_int64
    - fts3WriteSegment
    - fts3SqlStmt
    - sqlite3_column_int
    linkageType: ''
    returnType: int
    signature: "int fts3IncrmergeWriter( \n  Fts3Table *p,                   /* Fts3
      table handle */\n  sqlite3_int64 iAbsLevel,        /* Absolute level of input
      segments */\n  int iIdx,                       /* Index of new output segment
      */\n  Fts3MultiSegReader *pCsr,       /* Cursor that data will be read from
      */\n  IncrmergeWriter *pWriter        /* Populate this object */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fts3SqlStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:175463,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:175465,1
    - Dst: sqlite3_bind_int
      Src: /src/nss/lib/sqlite/sqlite3.c:175466,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:175467,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:175468,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - p
    - iAbsLevel
    - iIdx
    argTypes:
    - Fts3Table*
    - sqlite3_int64
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175472
      start: 175455
    functionDepth: 29
    functionLinenumber: 175455
    functionLinenumberEnd: 175472
    functionName: fts3RemoveSegdirEntry
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_bind_int
    - sqlite3_step
    - sqlite3_reset
    - sqlite3_bind_int64
    - fts3SqlStmt
    linkageType: ''
    returnType: int
    signature: "int fts3RemoveSegdirEntry(\n  Fts3Table *p,                   /* FTS3
      table handle */\n  sqlite3_int64 iAbsLevel,        /* Absolute level to delete
      from */\n  int iIdx                        /* Index of %_segdir entry to delete
      */\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fts3SqlStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:175491,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:175494,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:175495,1
    - Dst: sqlite3_realloc
      Src: /src/nss/lib/sqlite/sqlite3.c:175499,1
    - Dst: sqlite3_column_int
      Src: /src/nss/lib/sqlite/sqlite3.c:175506,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:175508,1
    - Dst: fts3SqlStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:175513,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:175516,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:175519,1
    - Dst: sqlite3_bind_int
      Src: /src/nss/lib/sqlite/sqlite3.c:175523,1
    - Dst: sqlite3_bind_int
      Src: /src/nss/lib/sqlite/sqlite3.c:175524,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:175525,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:175526,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:175531,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 2
    argNames:
    - p
    - iAbsLevel
    argTypes:
    - Fts3Table*
    - sqlite3_int64
    assertStmts:
    - condition: ( p->bIgnoreSavepoint==0 )
      pos:
        line_end: 175518
        line_start: 175518
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 175533
      start: 175479
    functionDepth: 29
    functionLinenumber: 175479
    functionLinenumberEnd: 175533
    functionName: fts3RepackSegdirLevel
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_bind_int
    - sqlite3_step
    - sqlite3_realloc
    - sqlite3_reset
    - assert
    - sqlite3_bind_int64
    - fts3SqlStmt
    - sqlite3_free
    - sqlite3_column_int
    linkageType: ''
    returnType: int
    signature: "int fts3RepackSegdirLevel(\n  Fts3Table *p,                   /* FTS3
      table handle */\n  sqlite3_int64 iAbsLevel         /* Absolute level to repack
      */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:175538,1
    - Dst: sqlite3Fts3VarintLen
      Src: /src/nss/lib/sqlite/sqlite3.c:175538,1
    - Dst: sqlite3Fts3PutVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:175539,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:175541,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - pNode
    - iHeight
    - iChild
    argTypes:
    - Blob*
    - int
    - sqlite3_int64
    assertStmts:
    - condition: ( pNode->nAlloc>=1+sqlite3Fts3VarintLen(iChild) )
      pos:
        line_end: 175537
        line_start: 175537
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pNode->nAlloc>=1 )
      pos:
        line_end: 175540
        line_start: 175540
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 175544
      start: 175535
    functionDepth: 1
    functionLinenumber: 175535
    functionLinenumberEnd: 175544
    functionName: fts3StartNode
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3Fts3VarintLen
    - sqlite3Fts3PutVarint
    linkageType: ''
    returnType: void
    signature: void fts3StartNode(Blob *pNode, int iHeight, sqlite3_int64 iChild)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: blobGrowBuffer
      Src: /src/nss/lib/sqlite/sqlite3.c:175571,1
    - Dst: nodeReaderInit
      Src: /src/nss/lib/sqlite/sqlite3.c:175576,1
    - Dst: nodeReaderNext
      Src: /src/nss/lib/sqlite/sqlite3.c:175578,1
    - Dst: fts3TermCmp
      Src: /src/nss/lib/sqlite/sqlite3.c:175581,1
    - Dst: fts3StartNode
      Src: /src/nss/lib/sqlite/sqlite3.c:175583,1
    - Dst: fts3AppendToNode
      Src: /src/nss/lib/sqlite/sqlite3.c:175586,1
    - Dst: fts3StartNode
      Src: /src/nss/lib/sqlite/sqlite3.c:175593,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:175596,1
    - Dst: nodeReaderRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:175598,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:175599,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 6
    argNames:
    - aNode
    - nNode
    - pNew
    - zTerm
    - nTerm
    - piBlock
    argTypes:
    - char*
    - int
    - Blob*
    - char*
    - int
    - sqlite3_int64*
    assertStmts:
    - condition: ( pNew->n<=pNew->nAlloc )
      pos:
        line_end: 175595
        line_start: 175595
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 175601
      start: 175554
    functionDepth: 10
    functionLinenumber: 175554
    functionLinenumberEnd: 175601
    functionName: fts3TruncateNode
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3StartNode
    - nodeReaderInit
    - nodeReaderRelease
    - blobGrowBuffer
    - fts3AppendToNode
    - assert
    - fts3TermCmp
    - nodeReaderNext
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int fts3TruncateNode(\n  const char *aNode,              /* Current
      node image */\n  int nNode,                      /* Size of aNode in bytes */\n
      \ Blob *pNew,                     /* OUT: Write new node image here */\n  const
      char *zTerm,              /* Omit all terms smaller than this */\n  int nTerm,
      \                     /* Size of zTerm in bytes */\n  sqlite3_int64 *piBlock
      \         /* OUT: Block number in next layer down */\n)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fts3SqlStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:175627,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:175630,1
    - Dst: sqlite3_bind_int
      Src: /src/nss/lib/sqlite/sqlite3.c:175631,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:175632,1
    - Dst: sqlite3_column_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:175633,1
    - Dst: sqlite3_column_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:175634,1
    - Dst: sqlite3_column_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:175635,1
    - Dst: fts3TruncateNode
      Src: /src/nss/lib/sqlite/sqlite3.c:175636,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:175638,1
    - Dst: sqlite3Fts3ReadBlock
      Src: /src/nss/lib/sqlite/sqlite3.c:175647,1
    - Dst: fts3TruncateNode
      Src: /src/nss/lib/sqlite/sqlite3.c:175649,1
    - Dst: fts3WriteSegment
      Src: /src/nss/lib/sqlite/sqlite3.c:175652,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:175654,1
    - Dst: fts3SqlStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:175660,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:175662,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:175663,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:175664,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:175665,1
    - Dst: fts3SqlStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:175671,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:175673,1
    - Dst: sqlite3_bind_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:175674,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:175675,1
    - Dst: sqlite3_bind_int
      Src: /src/nss/lib/sqlite/sqlite3.c:175676,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:175677,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:175678,1
    - Dst: sqlite3_bind_null
      Src: /src/nss/lib/sqlite/sqlite3.c:175679,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:175683,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:175684,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 48
    argCount: 5
    argNames:
    - p
    - iAbsLevel
    - iIdx
    - zTerm
    - nTerm
    argTypes:
    - Fts3Table*
    - sqlite3_int64
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175686
      start: 175612
    functionDepth: 30
    functionLinenumber: 175612
    functionLinenumberEnd: 175686
    functionName: fts3TruncateSegment
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_bind_null
    - sqlite3_bind_int
    - fts3TruncateNode
    - sqlite3_step
    - sqlite3_reset
    - sqlite3Fts3ReadBlock
    - sqlite3_column_blob
    - sqlite3_bind_blob
    - sqlite3_column_bytes
    - sqlite3_column_int64
    - sqlite3_bind_int64
    - fts3WriteSegment
    - fts3SqlStmt
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int fts3TruncateSegment(\n  Fts3Table *p,                   /* FTS3
      table handle */\n  sqlite3_int64 iAbsLevel,        /* Absolute level of segment
      to modify */\n  int iIdx,                       /* Index within level of segment
      to modify */\n  const char *zTerm,              /* Remove terms smaller than
      this */\n  int nTerm                      /* Number of bytes in buffer zTerm
      */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:175714,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:175718,1
    - Dst: fts3DeleteSegment
      Src: /src/nss/lib/sqlite/sqlite3.c:175722,1
    - Dst: fts3RemoveSegdirEntry
      Src: /src/nss/lib/sqlite/sqlite3.c:175724,1
    - Dst: fts3TruncateSegment
      Src: /src/nss/lib/sqlite/sqlite3.c:175733,1
    - Dst: fts3RepackSegdirLevel
      Src: /src/nss/lib/sqlite/sqlite3.c:175739,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 4
    argNames:
    - p
    - iAbsLevel
    - pCsr
    - pnRem
    argTypes:
    - Fts3Table*
    - sqlite3_int64
    - Fts3MultiSegReader*
    - int*
    assertStmts:
    - condition: ( j<pCsr->nSegment && pSeg->iIdx==i )
      pos:
        line_end: 175717
        line_start: 175717
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 175744
      start: 175698
    functionDepth: 31
    functionLinenumber: 175698
    functionLinenumberEnd: 175744
    functionName: fts3IncrmergeChomp
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ALWAYS
    - fts3RepackSegdirLevel
    - fts3TruncateSegment
    - assert
    - fts3RemoveSegdirEntry
    - fts3DeleteSegment
    linkageType: ''
    returnType: int
    signature: "int fts3IncrmergeChomp(\n  Fts3Table *p,                   /* FTS
      table handle */\n  sqlite3_int64 iAbsLevel,        /* Absolute level containing
      segments */\n  Fts3MultiSegReader *pCsr,       /* Chomp all segments opened
      by this cursor */\n  int *pnRem                      /* Number of segments not
      deleted */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fts3SqlStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:175753,1
    - Dst: sqlite3_bind_int
      Src: /src/nss/lib/sqlite/sqlite3.c:175755,1
    - Dst: sqlite3_bind_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:175756,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:175757,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:175758,1
    - Dst: sqlite3_bind_null
      Src: /src/nss/lib/sqlite/sqlite3.c:175759,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - p
    - pHint
    argTypes:
    - Fts3Table*
    - Blob*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175763
      start: 175749
    functionDepth: 29
    functionLinenumber: 175749
    functionLinenumberEnd: 175763
    functionName: fts3IncrmergeHintStore
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_bind_null
    - sqlite3_bind_int
    - sqlite3_step
    - sqlite3_reset
    - sqlite3_bind_blob
    - fts3SqlStmt
    linkageType: ''
    returnType: int
    signature: int fts3IncrmergeHintStore(Fts3Table *p, Blob *pHint)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fts3SqlStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:175778,1
    - Dst: sqlite3_bind_int
      Src: /src/nss/lib/sqlite/sqlite3.c:175781,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:175782,1
    - Dst: sqlite3_column_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:175783,1
    - Dst: sqlite3_column_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:175784,1
    - Dst: blobGrowBuffer
      Src: /src/nss/lib/sqlite/sqlite3.c:175786,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:175788,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:175793,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - p
    - pHint
    argTypes:
    - Fts3Table*
    - Blob*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175798
      start: 175773
    functionDepth: 29
    functionLinenumber: 175773
    functionLinenumberEnd: 175798
    functionName: fts3IncrmergeHintLoad
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_bind_int
    - memcpy
    - sqlite3_step
    - sqlite3_reset
    - sqlite3_column_blob
    - blobGrowBuffer
    - sqlite3_column_bytes
    - fts3SqlStmt
    linkageType: ''
    returnType: int
    signature: int fts3IncrmergeHintLoad(Fts3Table *p, Blob *pHint)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: blobGrowBuffer
      Src: /src/nss/lib/sqlite/sqlite3.c:175815,1
    - Dst: sqlite3Fts3PutVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:175817,1
    - Dst: sqlite3Fts3PutVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:175818,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - pHint
    - iAbsLevel
    - nInput
    - pRc
    argTypes:
    - Blob*
    - i64
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175820
      start: 175809
    functionDepth: 8
    functionLinenumber: 175809
    functionLinenumberEnd: 175820
    functionName: fts3IncrmergeHintPush
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - blobGrowBuffer
    - sqlite3Fts3PutVarint
    linkageType: ''
    returnType: void
    signature: "void fts3IncrmergeHintPush(\n  Blob *pHint,                    /*
      Hint blob to append to */\n  i64 iAbsLevel,                  /* First varint
      to store in hint */\n  int nInput,                     /* Second varint to store
      in hint */\n  int *pRc                        /* IN/OUT: Error code */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:175839,1
    - Dst: fts3GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:175840,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - pHint
    - piAbsLevel
    - pnInput
    argTypes:
    - Blob*
    - i64*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175844
      start: 175830
    functionDepth: 2
    functionLinenumber: 175830
    functionLinenumberEnd: 175844
    functionName: fts3IncrmergeHintPop
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3GetVarint32
    - sqlite3Fts3GetVarint
    linkageType: ''
    returnType: int
    signature: int fts3IncrmergeHintPop(Blob *pHint, i64 *piAbsLevel, int *pnInput)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:175869,1
    - Dst: fts3IncrmergeHintLoad
      Src: /src/nss/lib/sqlite/sqlite3.c:175874,1
    - Dst: fts3SqlStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:175887,1
    - Dst: sqlite3_bind_int
      Src: /src/nss/lib/sqlite/sqlite3.c:175888,1
    - Dst: MAX
      Src: /src/nss/lib/sqlite/sqlite3.c:175888,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:175889,1
    - Dst: sqlite3_column_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:175890,1
    - Dst: sqlite3_column_int
      Src: /src/nss/lib/sqlite/sqlite3.c:175891,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:175892,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:175896,1
    - Dst: fts3IncrmergeHintPop
      Src: /src/nss/lib/sqlite/sqlite3.c:175908,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:175932,1
    - Dst: fts3IncrmergeOutputIdx
      Src: /src/nss/lib/sqlite/sqlite3.c:175936,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:175937,1
    - Dst: fts3SegmentIsMaxLevel
      Src: /src/nss/lib/sqlite/sqlite3.c:175940,1
    - Dst: fts3IncrmergeCsr
      Src: /src/nss/lib/sqlite/sqlite3.c:175948,1
    - Dst: sqlite3Fts3SegReaderStart
      Src: /src/nss/lib/sqlite/sqlite3.c:175951,1
    - Dst: sqlite3Fts3SegReaderStep
      Src: /src/nss/lib/sqlite/sqlite3.c:175952,1
    - Dst: fts3IncrmergeLoad
      Src: /src/nss/lib/sqlite/sqlite3.c:175957,1
    - Dst: fts3IncrmergeWriter
      Src: /src/nss/lib/sqlite/sqlite3.c:175959,1
    - Dst: fts3LogMerge
      Src: /src/nss/lib/sqlite/sqlite3.c:175963,1
    - Dst: fts3IncrmergeAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:175965,1
    - Dst: sqlite3Fts3SegReaderStep
      Src: /src/nss/lib/sqlite/sqlite3.c:175966,1
    - Dst: fts3IncrmergeChomp
      Src: /src/nss/lib/sqlite/sqlite3.c:175973,1
    - Dst: fts3IncrmergeHintPush
      Src: /src/nss/lib/sqlite/sqlite3.c:175976,1
    - Dst: fts3IncrmergeRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:175984,1
    - Dst: fts3PromoteSegments
      Src: /src/nss/lib/sqlite/sqlite3.c:175986,1
    - Dst: sqlite3Fts3SegReaderFinish
      Src: /src/nss/lib/sqlite/sqlite3.c:175990,1
    - Dst: fts3IncrmergeHintStore
      Src: /src/nss/lib/sqlite/sqlite3.c:175995,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:175998,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:175999,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 86
    argCount: 3
    argNames:
    - p
    - nMerge
    - nMin
    argTypes:
    - Fts3Table*
    - int
    - int
    assertStmts:
    - condition: ( nSeg>=2 )
      pos:
        line_end: 175891
        line_start: 175891
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( bUseHint==1 || bUseHint==0 )
      pos:
        line_end: 175936
        line_start: 175936
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 176001
      start: 175856
    functionDepth: 33
    functionLinenumber: 175856
    functionLinenumberEnd: 176001
    functionName: sqlite3Fts3Incrmerge
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_reset
    - fts3IncrmergeHintLoad
    - sqlite3_column_int64
    - fts3IncrmergeHintStore
    - sqlite3_bind_int
    - assert
    - memset
    - fts3IncrmergeOutputIdx
    - fts3IncrmergeLoad
    - fts3SqlStmt
    - fts3IncrmergeHintPush
    - sqlite3_step
    - fts3LogMerge
    - fts3SegmentIsMaxLevel
    - MAX
    - sqlite3Fts3SegReaderStart
    - sqlite3Fts3SegReaderFinish
    - fts3IncrmergeHintPop
    - fts3IncrmergeRelease
    - fts3IncrmergeChomp
    - sqlite3Fts3SegReaderStep
    - sqlite3_malloc
    - fts3IncrmergeAppend
    - fts3IncrmergeCsr
    - fts3IncrmergeWriter
    - fts3PromoteSegments
    - sqlite3_free
    - sqlite3_column_int
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3Incrmerge(Fts3Table *p, int nMerge, int nMin)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - pz
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176017
      start: 176011
    functionDepth: 0
    functionLinenumber: 176011
    functionLinenumberEnd: 176017
    functionName: fts3Getint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fts3Getint(const char **pz)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fts3Getint
      Src: /src/nss/lib/sqlite/sqlite3.c:176038,1
    - Dst: fts3Getint
      Src: /src/nss/lib/sqlite/sqlite3.c:176044,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:176052,1
    - Dst: sqlite3Fts3CreateStatTable
      Src: /src/nss/lib/sqlite/sqlite3.c:176053,1
    - Dst: sqlite3Fts3Incrmerge
      Src: /src/nss/lib/sqlite/sqlite3.c:176056,1
    - Dst: sqlite3Fts3SegmentsClose
      Src: /src/nss/lib/sqlite/sqlite3.c:176058,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - p
    - zParam
    argTypes:
    - Fts3Table*
    - char*
    assertStmts:
    - condition: ( p->bFts4==0 )
      pos:
        line_end: 176051
        line_start: 176051
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 176061
      start: 176028
    functionDepth: 34
    functionLinenumber: 176028
    functionLinenumberEnd: 176061
    functionName: fts3DoIncrmerge
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3Getint
    - sqlite3Fts3Incrmerge
    - assert
    - sqlite3Fts3SegmentsClose
    - sqlite3Fts3CreateStatTable
    linkageType: ''
    returnType: int
    signature: "int fts3DoIncrmerge(\n  Fts3Table *p,                   /* FTS3 table
      handle */\n  const char *zParam              /* Nul-terminated string containing
      \"A,B\" */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fts3Getint
      Src: /src/nss/lib/sqlite/sqlite3.c:176077,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:176082,1
    - Dst: sqlite3Fts3CreateStatTable
      Src: /src/nss/lib/sqlite/sqlite3.c:176083,1
    - Dst: fts3SqlStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:176086,1
    - Dst: sqlite3_bind_int
      Src: /src/nss/lib/sqlite/sqlite3.c:176088,1
    - Dst: sqlite3_bind_int
      Src: /src/nss/lib/sqlite/sqlite3.c:176089,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:176090,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:176091,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - p
    - zParam
    argTypes:
    - Fts3Table*
    - char*
    assertStmts:
    - condition: ( p->bFts4==0 )
      pos:
        line_end: 176081
        line_start: 176081
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 176093
      start: 176071
    functionDepth: 30
    functionLinenumber: 176071
    functionLinenumberEnd: 176093
    functionName: fts3DoAutoincrmerge
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3Getint
    - sqlite3_bind_int
    - sqlite3_step
    - sqlite3_reset
    - assert
    - fts3SqlStmt
    - sqlite3Fts3CreateStatTable
    linkageType: ''
    returnType: int
    signature: "int fts3DoAutoincrmerge(\n  Fts3Table *p,                   /* FTS3
      table handle */\n  const char *zParam              /* Nul-terminated string
      containing boolean */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 7
    argNames:
    - zTerm
    - nTerm
    - iLangid
    - iIndex
    - iDocid
    - iCol
    - iPos
    argTypes:
    - char*
    - int
    - int
    - int
    - i64
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176118
      start: 176099
    functionDepth: 0
    functionLinenumber: 176099
    functionLinenumberEnd: 176118
    functionName: fts3ChecksumEntry
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: "u64 fts3ChecksumEntry(\n  const char *zTerm,              /* Pointer
      to buffer containing term */\n  int nTerm,                      /* Size of zTerm
      in bytes */\n  int iLangid,                    /* Language id for current row
      */\n  int iIndex,                     /* Index (0..Fts3Table.nIndex-1) */\n
      \ i64 iDocid,                     /* Docid for current row. */\n  int iCol,
      \                      /* Column number */\n  int iPos                        /*
      Position */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:176140,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:176142,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:176143,1
    - Dst: sqlite3Fts3SegReaderCursor
      Src: /src/nss/lib/sqlite/sqlite3.c:176147,1
    - Dst: sqlite3Fts3SegReaderStart
      Src: /src/nss/lib/sqlite/sqlite3.c:176151,1
    - Dst: sqlite3Fts3SegReaderStep
      Src: /src/nss/lib/sqlite/sqlite3.c:176155,1
    - Dst: sqlite3Fts3GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:176163,1
    - Dst: sqlite3Fts3GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:176166,1
    - Dst: sqlite3Fts3GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:176172,1
    - Dst: sqlite3Fts3GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:176174,1
    - Dst: fts3ChecksumEntry
      Src: /src/nss/lib/sqlite/sqlite3.c:176179,1
    - Dst: sqlite3Fts3SegReaderFinish
      Src: /src/nss/lib/sqlite/sqlite3.c:176188,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 4
    argNames:
    - p
    - iLangid
    - iIndex
    - pRc
    argTypes:
    - Fts3Table*
    - int
    - int
    - int*
    assertStmts:
    - condition: ( *pRc==SQLITE_OK )
      pos:
        line_end: 176139
        line_start: 176139
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 176192
      start: 176129
    functionDepth: 33
    functionLinenumber: 176129
    functionLinenumberEnd: 176192
    functionName: fts3ChecksumIndex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - memset
    - sqlite3Fts3SegReaderStart
    - sqlite3Fts3SegReaderCursor
    - fts3ChecksumEntry
    - sqlite3Fts3GetVarint
    - sqlite3Fts3SegReaderFinish
    - sqlite3Fts3SegReaderStep
    linkageType: ''
    returnType: u64
    signature: "u64 fts3ChecksumIndex(\n  Fts3Table *p,                   /* FTS3
      table handle */\n  int iLangid,                    /* Language id to return
      cksum for */\n  int iIndex,                     /* Index to cksum (0..p->nIndex-1)
      */\n  int *pRc                        /* OUT: Return code */\n)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fts3SqlStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:176210,1
    - Dst: sqlite3_bind_int
      Src: /src/nss/lib/sqlite/sqlite3.c:176213,1
    - Dst: sqlite3_bind_int
      Src: /src/nss/lib/sqlite/sqlite3.c:176214,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:176215,1
    - Dst: sqlite3_column_int
      Src: /src/nss/lib/sqlite/sqlite3.c:176216,1
    - Dst: fts3ChecksumIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:176219,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:176222,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:176232,1
    - Dst: sqlite3_prepare_v2
      Src: /src/nss/lib/sqlite/sqlite3.c:176236,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:176237,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:176240,1
    - Dst: sqlite3_column_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:176241,1
    - Dst: langidFromSelect
      Src: /src/nss/lib/sqlite/sqlite3.c:176242,1
    - Dst: sqlite3_column_text
      Src: /src/nss/lib/sqlite/sqlite3.c:176247,1
    - Dst: sqlite3_column_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:176248,1
    - Dst: sqlite3Fts3OpenTokenizer
      Src: /src/nss/lib/sqlite/sqlite3.c:176251,1
    - Dst: sqlite3_tokenizer_module*::xNext
      Src: /src/nss/lib/sqlite/sqlite3.c:176258,1
    - Dst: fts3ChecksumEntry
      Src: /src/nss/lib/sqlite/sqlite3.c:176261,1
    - Dst: fts3ChecksumEntry
      Src: /src/nss/lib/sqlite/sqlite3.c:176266,1
    - Dst: sqlite3_tokenizer_module*::xClose
      Src: /src/nss/lib/sqlite/sqlite3.c:176273,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:176279,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 48
    argCount: 2
    argNames:
    - p
    - pbOk
    argTypes:
    - Fts3Table*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176284
      start: 176203
    functionDepth: 34
    functionLinenumber: 176203
    functionLinenumberEnd: 176284
    functionName: fts3IntegrityCheck
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_bind_int
    - sqlite3_step
    - sqlite3_reset
    - sqlite3_tokenizer_module*::xNext
    - fts3ChecksumIndex
    - sqlite3_column_bytes
    - sqlite3_column_int64
    - sqlite3_tokenizer_module*::xClose
    - sqlite3_mprintf
    - sqlite3_prepare_v2
    - sqlite3Fts3OpenTokenizer
    - fts3ChecksumEntry
    - sqlite3_column_text
    - langidFromSelect
    - fts3SqlStmt
    - sqlite3_finalize
    - sqlite3_free
    - sqlite3_column_int
    linkageType: ''
    returnType: int
    signature: int fts3IntegrityCheck(Fts3Table *p, int *pbOk)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fts3IntegrityCheck
      Src: /src/nss/lib/sqlite/sqlite3.c:176322,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - Fts3Table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176325
      start: 176317
    functionDepth: 35
    functionLinenumber: 176317
    functionLinenumberEnd: 176325
    functionName: fts3DoIntegrityCheck
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3IntegrityCheck
    linkageType: ''
    returnType: int
    signature: "int fts3DoIntegrityCheck(\n  Fts3Table *p                    /* FTS3
      table handle */\n)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:176337,1
    - Dst: sqlite3_value_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:176338,1
    - Dst: sqlite3_strnicmp
      Src: /src/nss/lib/sqlite/sqlite3.c:176342,1
    - Dst: fts3DoOptimize
      Src: /src/nss/lib/sqlite/sqlite3.c:176343,1
    - Dst: sqlite3_strnicmp
      Src: /src/nss/lib/sqlite/sqlite3.c:176344,1
    - Dst: fts3DoRebuild
      Src: /src/nss/lib/sqlite/sqlite3.c:176345,1
    - Dst: sqlite3_strnicmp
      Src: /src/nss/lib/sqlite/sqlite3.c:176346,1
    - Dst: fts3DoIntegrityCheck
      Src: /src/nss/lib/sqlite/sqlite3.c:176347,1
    - Dst: sqlite3_strnicmp
      Src: /src/nss/lib/sqlite/sqlite3.c:176348,1
    - Dst: fts3DoIncrmerge
      Src: /src/nss/lib/sqlite/sqlite3.c:176349,1
    - Dst: sqlite3_strnicmp
      Src: /src/nss/lib/sqlite/sqlite3.c:176350,1
    - Dst: fts3DoAutoincrmerge
      Src: /src/nss/lib/sqlite/sqlite3.c:176351,1
    - Dst: sqlite3_strnicmp
      Src: /src/nss/lib/sqlite/sqlite3.c:176353,1
    - Dst: atoi
      Src: /src/nss/lib/sqlite/sqlite3.c:176354,1
    - Dst: sqlite3_strnicmp
      Src: /src/nss/lib/sqlite/sqlite3.c:176356,1
    - Dst: atoi
      Src: /src/nss/lib/sqlite/sqlite3.c:176357,1
    - Dst: sqlite3_strnicmp
      Src: /src/nss/lib/sqlite/sqlite3.c:176359,1
    - Dst: atoi
      Src: /src/nss/lib/sqlite/sqlite3.c:176360,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 34
    argCount: 2
    argNames:
    - p
    - pVal
    argTypes:
    - Fts3Table*
    - sqlite3_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176368
      start: 176335
    functionDepth: 36
    functionLinenumber: 176335
    functionLinenumberEnd: 176368
    functionName: fts3SpecialInsert
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3DoOptimize
    - fts3DoAutoincrmerge
    - atoi
    - fts3DoRebuild
    - fts3DoIntegrityCheck
    - sqlite3_value_text
    - fts3DoIncrmerge
    - sqlite3_strnicmp
    - sqlite3_value_bytes
    linkageType: ''
    returnType: int
    signature: int fts3SpecialInsert(Fts3Table *p, sqlite3_value *pVal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts3PendingListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:176378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pCsr
    argTypes:
    - Fts3Cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176381
      start: 176375
    functionDepth: 4
    functionLinenumber: 176375
    functionLinenumberEnd: 176381
    functionName: sqlite3Fts3FreeDeferredDoclists
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - fts3PendingListDelete
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3FreeDeferredDoclists(Fts3Cursor *pCsr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts3PendingListDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:176392,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:176393,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pCsr
    argTypes:
    - Fts3Cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176396
      start: 176387
    functionDepth: 4
    functionLinenumber: 176387
    functionLinenumberEnd: 176396
    functionName: sqlite3Fts3FreeDeferredTokens
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - fts3PendingListDelete
    - sqlite3_free
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3FreeDeferredTokens(Fts3Cursor *pCsr)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:176417,1
    - Dst: sqlite3_column_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:176418,1
    - Dst: sqlite3_column_text
      Src: /src/nss/lib/sqlite/sqlite3.c:176422,1
    - Dst: sqlite3Fts3OpenTokenizer
      Src: /src/nss/lib/sqlite/sqlite3.c:176425,1
    - Dst: sqlite3_tokenizer_module*::xNext
      Src: /src/nss/lib/sqlite/sqlite3.c:176432,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:176438,1
    - Dst: fts3PendingListAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:176440,1
    - Dst: sqlite3_tokenizer_module*::xClose
      Src: /src/nss/lib/sqlite/sqlite3.c:176444,1
    - Dst: fts3PendingListAppendVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:176451,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 28
    argCount: 1
    argNames:
    - pCsr
    argTypes:
    - Fts3Cursor*
    assertStmts:
    - condition: ( pCsr->isRequireSeek==0 )
      pos:
        line_end: 176416
        line_start: 176416
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 176457
      start: 176406
    functionDepth: 16
    functionLinenumber: 176406
    functionLinenumberEnd: 176457
    functionName: sqlite3Fts3CacheDeferredDoclists
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - fts3PendingListAppendVarint
    - sqlite3_tokenizer_module*::xNext
    - fts3PendingListAppend
    - sqlite3_column_int64
    - assert
    - sqlite3Fts3OpenTokenizer
    - sqlite3_tokenizer_module*::xClose
    - sqlite3_column_text
    - memcmp
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3CacheDeferredDoclists(Fts3Cursor *pCsr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:176475,1
    - Dst: sqlite3Fts3GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:176478,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:176482,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - p
    - ppData
    - pnData
    argTypes:
    - Fts3DeferredToken*
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176484
      start: 176459
    functionDepth: 6
    functionLinenumber: 176459
    functionLinenumberEnd: 176484
    functionName: sqlite3Fts3DeferredTokenList
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_malloc
    - memcpy
    - sqlite3Fts3GetVarint
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3DeferredTokenList(\n  Fts3DeferredToken
      *p, \n  char **ppData, \n  int *pnData\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:176495,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:176499,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:176505,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - pCsr
    - pToken
    - iCol
    argTypes:
    - Fts3Cursor*
    - Fts3PhraseToken*
    - int
    assertStmts:
    - condition: ( pToken->pDeferred==0 )
      pos:
        line_end: 176504
        line_start: 176504
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 176509
      start: 176489
    functionDepth: 6
    functionLinenumber: 176489
    functionLinenumberEnd: 176509
    functionName: sqlite3Fts3DeferToken
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - memset
    - sqlite3_malloc
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3DeferToken(\n  Fts3Cursor *pCsr,               /*
      Fts3 table cursor */\n  Fts3PhraseToken *pToken,        /* Token to defer */\n
      \ int iCol                        /* Column that token must appear in (or -1)
      */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fts3DeleteTerms
      Src: /src/nss/lib/sqlite/sqlite3.c:176526,1
    - Dst: fts3IsEmpty
      Src: /src/nss/lib/sqlite/sqlite3.c:176529,1
    - Dst: fts3DeleteAll
      Src: /src/nss/lib/sqlite/sqlite3.c:176535,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:176537,1
    - Dst: fts3SqlExec
      Src: /src/nss/lib/sqlite/sqlite3.c:176541,1
    - Dst: fts3SqlExec
      Src: /src/nss/lib/sqlite/sqlite3.c:176544,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - p
    - pRowid
    - pnChng
    - aSzDel
    argTypes:
    - Fts3Table*
    - sqlite3_value*
    - int*
    - u32*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176551
      start: 176517
    functionDepth: 31
    functionLinenumber: 176517
    functionLinenumberEnd: 176551
    functionName: fts3DeleteByRowid
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3IsEmpty
    - fts3DeleteTerms
    - fts3DeleteAll
    - memset
    - fts3SqlExec
    linkageType: ''
    returnType: int
    signature: "int fts3DeleteByRowid(\n  Fts3Table *p, \n  sqlite3_value *pRowid,
      \n  int *pnChng,                    /* IN/OUT: Decrement if row is deleted */\n
      \ u32 *aSzDel\n)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:176581,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:176583,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:176584,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:176594,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:176595,1
    - Dst: fts3SpecialInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:176597,1
    - Dst: sqlite3_value_int
      Src: /src/nss/lib/sqlite/sqlite3.c:176601,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:176607,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:176613,1
    - Dst: fts3Writelock
      Src: /src/nss/lib/sqlite/sqlite3.c:176615,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:176630,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:176634,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:176635,1
    - Dst: sqlite3_value_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:176636,1
    - Dst: sqlite3_value_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:176636,1
    - Dst: sqlite3_vtab_on_conflict
      Src: /src/nss/lib/sqlite/sqlite3.c:176655,1
    - Dst: fts3DeleteByRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:176656,1
    - Dst: fts3InsertData
      Src: /src/nss/lib/sqlite/sqlite3.c:176658,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:176668,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:176669,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:176669,1
    - Dst: fts3DeleteByRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:176670,1
    - Dst: sqlite3_value_int
      Src: /src/nss/lib/sqlite/sqlite3.c:176675,1
    - Dst: fts3InsertData
      Src: /src/nss/lib/sqlite/sqlite3.c:176677,1
    - Dst: fts3PendingTermsDocid
      Src: /src/nss/lib/sqlite/sqlite3.c:176683,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:176686,1
    - Dst: fts3InsertTerms
      Src: /src/nss/lib/sqlite/sqlite3.c:176687,1
    - Dst: fts3InsertDocsize
      Src: /src/nss/lib/sqlite/sqlite3.c:176690,1
    - Dst: fts3UpdateDocTotals
      Src: /src/nss/lib/sqlite/sqlite3.c:176696,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:176700,1
    - Dst: sqlite3Fts3SegmentsClose
      Src: /src/nss/lib/sqlite/sqlite3.c:176701,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 74
    argCount: 4
    argNames:
    - pVtab
    - nArg
    - apVal
    - pRowid
    argTypes:
    - sqlite3_vtab*
    - int
    - sqlite3_value**
    - sqlite_int64*
    assertStmts:
    - condition: ( p->iPrevDocid==*pRowid )
      pos:
        line_end: 176685
        line_start: 176685
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->bHasStat==0 || p->bHasStat==1 )
      pos:
        line_end: 176580
        line_start: 176580
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( \n      nArg==1                     /* DELETE operations */\n
        \  || nArg==(2 + p->nColumn + 3)  /* INSERT or UPDATE operations */\n  )"
      pos:
        line_end: 176586
        line_start: 176583
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sqlite3_value_type(apVal[0])==SQLITE_INTEGER )
      pos:
        line_end: 176668
        line_start: 176668
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->pSegments==0 )
      pos:
        line_end: 176582
        line_start: 176582
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 176703
      start: 176566
    functionDepth: 37
    functionLinenumber: 176566
    functionLinenumberEnd: 176703
    functionName: sqlite3Fts3UpdateMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - fts3InsertData
    - sqlite3_malloc64
    - fts3InsertDocsize
    - fts3UpdateDocTotals
    - fts3SpecialInsert
    - sqlite3_value_int
    - fts3Writelock
    - fts3PendingTermsDocid
    - assert
    - memset
    - fts3InsertTerms
    - fts3DeleteByRowid
    - sqlite3_value_type
    - sqlite3_vtab_on_conflict
    - sqlite3_value_int64
    - sqlite3Fts3SegmentsClose
    - sqlite3_free
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3UpdateMethod(\n  sqlite3_vtab *pVtab,            /*
      FTS3 vtab object */\n  int nArg,                       /* Size of argument array
      */\n  sqlite3_value **apVal,          /* Array of arguments */\n  sqlite_int64
      *pRowid            /* OUT: The affected (or effected) rowid */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_exec
      Src: /src/nss/lib/sqlite/sqlite3.c:176712,1
    - Dst: fts3DoOptimize
      Src: /src/nss/lib/sqlite/sqlite3.c:176714,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/sqlite/sqlite3.c:176716,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/sqlite/sqlite3.c:176719,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/sqlite/sqlite3.c:176720,1
    - Dst: sqlite3Fts3SegmentsClose
      Src: /src/nss/lib/sqlite/sqlite3.c:176723,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - p
    argTypes:
    - Fts3Table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176725
      start: 176710
    functionDepth: 35
    functionLinenumber: 176710
    functionLinenumberEnd: 176725
    functionName: sqlite3Fts3Optimize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3Fts3SegmentsClose
    - sqlite3_exec
    - fts3DoOptimize
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3Optimize(Fts3Table *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:176865,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:176867,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:176869,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:176875,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - nElem
    - zMatchinfo
    argTypes:
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176880
      start: 176861
    functionDepth: 6
    functionLinenumber: 176861
    functionLinenumberEnd: 176880
    functionName: fts3MIBufferNew
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - memcpy
    - sqlite3_malloc64
    - strlen
    linkageType: ''
    returnType: MatchinfoBuffer
    signature: MatchinfoBuffer *fts3MIBufferNew(size_t nElem, const char *zMatchinfo)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:176885,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:176895,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts:
    - condition: "( (u32*)p==&pBuf->aMatchinfo[1] \n       || (u32*)p==&pBuf->aMatchinfo[pBuf->nElem+2]
        \n  )"
      pos:
        line_end: 176886
        line_start: 176884
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 176897
      start: 176882
    functionDepth: 3
    functionLinenumber: 176882
    functionLinenumberEnd: 176897
    functionName: fts3MIBufferFree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void fts3MIBufferFree(void *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:176913,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:176916,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176922
      start: 176899
    functionDepth: 6
    functionLinenumber: 176899
    functionLinenumberEnd: 176922
    functionName: (*fts3MIBufferAlloc(MatchinfoBuffer *p, u32 **paOut))(void*)
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - sqlite3_malloc64
    linkageType: ''
    returnType: void
    signature: void (*fts3MIBufferAlloc(MatchinfoBuffer *p, u32 **paOut))(void*)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:176926,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - MatchinfoBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176927
      start: 176924
    functionDepth: 1
    functionLinenumber: 176924
    functionLinenumberEnd: 176927
    functionName: fts3MIBufferSetGlobal
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void fts3MIBufferSetGlobal(MatchinfoBuffer *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:176934,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:176937,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - MatchinfoBuffer*
    assertStmts:
    - condition: ( p->aRef[0]==1 )
      pos:
        line_end: 176933
        line_start: 176933
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 176940
      start: 176932
    functionDepth: 3
    functionLinenumber: 176932
    functionLinenumberEnd: 176940
    functionName: sqlite3Fts3MIBufferFree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - sqlite3_free
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3MIBufferFree(MatchinfoBuffer *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts3GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:176969,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pp
    - piPos
    argTypes:
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176971
      start: 176967
    functionDepth: 1
    functionLinenumber: 176967
    functionLinenumberEnd: 176971
    functionName: fts3GetDeltaPosition
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3GetVarint32
    linkageType: ''
    returnType: void
    signature: void fts3GetDeltaPosition(char **pp, int *piPos)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:176986,1
    - Dst: fts3ExprIterate2
      Src: /src/nss/lib/sqlite/sqlite3.c:176987,1
    - Dst: fts3ExprIterate2
      Src: /src/nss/lib/sqlite/sqlite3.c:176989,1
    - Dst: x
      Src: /src/nss/lib/sqlite/sqlite3.c:176992,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - pExpr
    - piPhrase
    - pCtx
    argTypes:
    - Fts3Expr*
    - int*
    - void*
    assertStmts:
    - condition: ( pExpr->pLeft && pExpr->pRight )
      pos:
        line_end: 176985
        line_start: 176985
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 176996
      start: 176976
    functionDepth: 1
    functionLinenumber: 176976
    functionLinenumberEnd: 176996
    functionName: fts3ExprIterate2
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - fts3ExprIterate2
    - x
    linkageType: ''
    returnType: int
    signature: "int fts3ExprIterate2(\n  Fts3Expr *pExpr,                /* Expression
      to iterate phrases of */\n  int *piPhrase,                  /* Pointer to phrase
      counter */\n  int (*x)(Fts3Expr*,int,void*),  /* Callback function to invoke
      for phrases */\n  void *pCtx                      /* Second argument to pass
      to callback */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts3ExprIterate2
      Src: /src/nss/lib/sqlite/sqlite3.c:177014,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pExpr
    - pCtx
    argTypes:
    - Fts3Expr*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177015
      start: 177008
    functionDepth: 2
    functionLinenumber: 177008
    functionLinenumberEnd: 177015
    functionName: fts3ExprIterate
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3ExprIterate2
    linkageType: ''
    returnType: int
    signature: "int fts3ExprIterate(\n  Fts3Expr *pExpr,                /* Expression
      to iterate phrases of */\n  int (*x)(Fts3Expr*,int,void*),  /* Callback function
      to invoke for phrases */\n  void *pCtx                      /* Second argument
      to pass to callback */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:177028,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - pExpr
    - iPhrase
    - ctx
    argTypes:
    - Fts3Expr*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177034
      start: 177023
    functionDepth: 1
    functionLinenumber: 177023
    functionLinenumberEnd: 177034
    functionName: fts3ExprLoadDoclistsCb
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: int
    signature: int fts3ExprLoadDoclistsCb(Fts3Expr *pExpr, int iPhrase, void *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fts3ExprIterate
      Src: /src/nss/lib/sqlite/sqlite3.c:177054,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - pCsr
    - pnPhrase
    - pnToken
    argTypes:
    - Fts3Cursor*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177058
      start: 177046
    functionDepth: 3
    functionLinenumber: 177046
    functionLinenumberEnd: 177058
    functionName: fts3ExprLoadDoclists
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3ExprIterate
    linkageType: ''
    returnType: int
    signature: "int fts3ExprLoadDoclists(\n  Fts3Cursor *pCsr,               /* Fts3
      cursor for current query */\n  int *pnPhrase,                  /* OUT: Number
      of phrases in query */\n  int *pnToken                    /* OUT: Number of
      tokens in query */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - pExpr
    - iPhrase
    - ctx
    argTypes:
    - Fts3Expr*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177064
      start: 177060
    functionDepth: 0
    functionLinenumber: 177060
    functionLinenumberEnd: 177064
    functionName: fts3ExprPhraseCountCb
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fts3ExprPhraseCountCb(Fts3Expr *pExpr, int iPhrase, void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts3ExprIterate
      Src: /src/nss/lib/sqlite/sqlite3.c:177067,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pExpr
    argTypes:
    - Fts3Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177069
      start: 177065
    functionDepth: 3
    functionLinenumber: 177065
    functionLinenumberEnd: 177069
    functionName: fts3ExprPhraseCount
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3ExprIterate
    linkageType: ''
    returnType: int
    signature: int fts3ExprPhraseCount(Fts3Expr *pExpr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fts3GetDeltaPosition
      Src: /src/nss/lib/sqlite/sqlite3.c:177087,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - ppIter
    - piIter
    - iNext
    argTypes:
    - char**
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177093
      start: 177076
    functionDepth: 2
    functionLinenumber: 177076
    functionLinenumberEnd: 177093
    functionName: fts3SnippetAdvance
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3GetDeltaPosition
    linkageType: ''
    returnType: void
    signature: void fts3SnippetAdvance(char **ppIter, int *piIter, int iNext)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fts3SnippetAdvance
      Src: /src/nss/lib/sqlite/sqlite3.c:177113,1
    - Dst: fts3SnippetAdvance
      Src: /src/nss/lib/sqlite/sqlite3.c:177132,1
    - Dst: fts3SnippetAdvance
      Src: /src/nss/lib/sqlite/sqlite3.c:177133,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - pIter
    argTypes:
    - SnippetIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177138
      start: 177098
    functionDepth: 3
    functionLinenumber: 177098
    functionLinenumberEnd: 177138
    functionName: fts3SnippetNextCandidate
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3SnippetAdvance
    linkageType: ''
    returnType: int
    signature: int fts3SnippetNextCandidate(SnippetIter *pIter)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:177168,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:177169,1
    - Dst: fts3GetDeltaPosition
      Src: /src/nss/lib/sqlite/sqlite3.c:177182,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 6
    argNames:
    - pIter
    - mCovered
    - piToken
    - piScore
    - pmCover
    - pmHighlight
    argTypes:
    - SnippetIter*
    - u64
    - int*
    - int*
    - u64*
    - u64*
    assertStmts:
    - condition: ( iCsr>=iStart && (iCsr - iStart)<=64 )
      pos:
        line_end: 177167
        line_start: 177167
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( i>=0 && i<=64 )
      pos:
        line_end: 177168
        line_start: 177168
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 177192
      start: 177144
    functionDepth: 2
    functionLinenumber: 177144
    functionLinenumberEnd: 177192
    functionName: fts3SnippetDetails
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fts3GetDeltaPosition
    linkageType: ''
    returnType: void
    signature: "void fts3SnippetDetails(\n  SnippetIter *pIter,             /* Snippet
      iterator */\n  u64 mCovered,                   /* Bitmask of phrases already
      covered */\n  int *piToken,                   /* OUT: First token of proposed
      snippet */\n  int *piScore,                   /* OUT: \"Score\" for this snippet
      */\n  u64 *pmCover,                   /* OUT: Bitmask of phrases covered */\n
      \ u64 *pmHighlight                /* OUT: Bitmask of terms to highlight */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3EvalPhrasePoslist
      Src: /src/nss/lib/sqlite/sqlite3.c:177205,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:177206,1
    - Dst: fts3GetDeltaPosition
      Src: /src/nss/lib/sqlite/sqlite3.c:177210,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:177220,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - pExpr
    - iPhrase
    - ctx
    argTypes:
    - Fts3Expr*
    - int
    - void*
    assertStmts:
    - condition: "( rc!=SQLITE_OK || (\n       pPhrase->pList==0 && pPhrase->pHead==0
        && pPhrase->pTail==0 \n    ))"
      pos:
        line_end: 177221
        line_start: 177219
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc==SQLITE_OK || pCsr==0 )
      pos:
        line_end: 177205
        line_start: 177205
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 177226
      start: 177198
    functionDepth: 13
    functionLinenumber: 177198
    functionLinenumberEnd: 177226
    functionName: fts3SnippetFindPositions
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fts3GetDeltaPosition
    - sqlite3Fts3EvalPhrasePoslist
    linkageType: ''
    returnType: int
    signature: int fts3SnippetFindPositions(Fts3Expr *pExpr, int iPhrase, void *ctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:177259,1
    - Dst: fts3ExprLoadDoclists
      Src: /src/nss/lib/sqlite/sqlite3.c:177264,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:177273,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:177277,1
    - Dst: fts3ExprIterate
      Src: /src/nss/lib/sqlite/sqlite3.c:177287,1
    - Dst: fts3SnippetNextCandidate
      Src: /src/nss/lib/sqlite/sqlite3.c:177301,1
    - Dst: fts3SnippetDetails
      Src: /src/nss/lib/sqlite/sqlite3.c:177306,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:177307,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:177318,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 7
    argNames:
    - nSnippet
    - pCsr
    - iCol
    - mCovered
    - pmSeen
    - pFragment
    - piScore
    argTypes:
    - int
    - Fts3Cursor*
    - int
    - u64
    - u64*
    - SnippetFragment*
    - int*
    assertStmts:
    - condition: ( iScore>=0 )
      pos:
        line_end: 177306
        line_start: 177306
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 177320
      start: 177243
    functionDepth: 6
    functionLinenumber: 177243
    functionLinenumberEnd: 177320
    functionName: fts3BestSnippet
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3SnippetNextCandidate
    - sqlite3_malloc64
    - fts3SnippetDetails
    - fts3ExprIterate
    - memset
    - assert
    - fts3ExprLoadDoclists
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int fts3BestSnippet(\n  int nSnippet,                   /* Desired
      snippet length */\n  Fts3Cursor *pCsr,               /* Cursor to create snippet
      for */\n  int iCol,                       /* Index of column to create snippet
      from */\n  u64 mCovered,                   /* Mask of phrases already covered
      */\n  u64 *pmSeen,                    /* IN/OUT: Mask of phrases seen */\n  SnippetFragment
      *pFragment,     /* OUT: Best snippet found */\n  int *piScore                    /*
      OUT: Score of snippet pFragment */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:177335,1
    - Dst: sqlite3_realloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:177344,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:177351,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:177354,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - pStr
    - zAppend
    - nAppend
    argTypes:
    - StrBuffer*
    - char*
    - int
    assertStmts:
    - condition: ( pStr->z!=0 && (pStr->nAlloc >= pStr->n+nAppend+1) )
      pos:
        line_end: 177350
        line_start: 177350
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 177359
      start: 177329
    functionDepth: 7
    functionLinenumber: 177329
    functionLinenumberEnd: 177359
    functionName: fts3StringAppend
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - memcpy
    - sqlite3_realloc64
    - strlen
    linkageType: ''
    returnType: int
    signature: "int fts3StringAppend(\n  StrBuffer *pStr,                /* Buffer
      to append to */\n  const char *zAppend,            /* Pointer to data to append
      to buffer */\n  int nAppend                     /* Size of zAppend in bytes
      (or -1) */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:177399,1
    - Dst: sqlite3Fts3OpenTokenizer
      Src: /src/nss/lib/sqlite/sqlite3.c:177420,1
    - Dst: sqlite3_tokenizer_module*::xNext
      Src: /src/nss/lib/sqlite/sqlite3.c:177426,1
    - Dst: sqlite3_tokenizer_module*::xClose
      Src: /src/nss/lib/sqlite/sqlite3.c:177428,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:177432,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 7
    argNames:
    - pTab
    - iLangid
    - nSnippet
    - zDoc
    - nDoc
    - piPos
    - pHlmask
    argTypes:
    - Fts3Table*
    - int
    - int
    - char*
    - int
    - int*
    - u64*
    assertStmts:
    - condition: ( (nSnippet-1-nRight)<=63 && (nSnippet-1-nRight)>=0 )
      pos:
        line_end: 177398
        line_start: 177398
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nShift<=nDesired )
      pos:
        line_end: 177431
        line_start: 177431
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 177440
      start: 177381
    functionDepth: 1
    functionLinenumber: 177381
    functionLinenumberEnd: 177440
    functionName: fts3SnippetShift
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3Fts3OpenTokenizer
    - sqlite3_tokenizer_module*::xNext
    - sqlite3_tokenizer_module*::xClose
    linkageType: ''
    returnType: int
    signature: "int fts3SnippetShift(\n  Fts3Table *pTab,                /* FTS3 table
      snippet comes from */\n  int iLangid,                    /* Language id to use
      in tokenizing */\n  int nSnippet,                   /* Number of tokens desired
      for snippet */\n  const char *zDoc,               /* Document text to extract
      snippet from */\n  int nDoc,                       /* Size of buffer zDoc in
      bytes */\n  int *piPos,                     /* IN/OUT: First token of snippet
      */\n  u64 *pHlmask                    /* IN/OUT: Mask of tokens to highlight
      */\n)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_column_text
      Src: /src/nss/lib/sqlite/sqlite3.c:177470,1
    - Dst: sqlite3_column_type
      Src: /src/nss/lib/sqlite/sqlite3.c:177472,1
    - Dst: sqlite3_column_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:177477,1
    - Dst: sqlite3Fts3OpenTokenizer
      Src: /src/nss/lib/sqlite/sqlite3.c:177481,1
    - Dst: sqlite3_tokenizer_module*::xNext
      Src: /src/nss/lib/sqlite/sqlite3.c:177504,1
    - Dst: fts3StringAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:177511,1
    - Dst: fts3SnippetShift
      Src: /src/nss/lib/sqlite/sqlite3.c:177519,1
    - Dst: fts3StringAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:177530,1
    - Dst: fts3StringAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:177532,1
    - Dst: fts3StringAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:177540,1
    - Dst: fts3StringAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:177548,1
    - Dst: fts3StringAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:177549,1
    - Dst: fts3StringAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:177550,1
    - Dst: fts3StringAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:177551,1
    - Dst: sqlite3_tokenizer_module*::xClose
      Src: /src/nss/lib/sqlite/sqlite3.c:177556,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 58
    argCount: 9
    argNames:
    - pCsr
    - pFragment
    - iFragment
    - isLast
    - nSnippet
    - zOpen
    - zClose
    - zEllipsis
    - pOut
    argTypes:
    - Fts3Cursor*
    - SnippetFragment*
    - int
    - int
    - int
    - char*
    - char*
    - char*
    - StrBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177558
      start: 177446
    functionDepth: 17
    functionLinenumber: 177446
    functionLinenumberEnd: 177558
    functionName: fts3SnippetText
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3StringAppend
    - sqlite3_column_type
    - sqlite3_tokenizer_module*::xNext
    - sqlite3_column_bytes
    - sqlite3_tokenizer_module*::xClose
    - sqlite3Fts3OpenTokenizer
    - fts3SnippetShift
    - sqlite3_column_text
    linkageType: ''
    returnType: int
    signature: "int fts3SnippetText(\n  Fts3Cursor *pCsr,               /* FTS3 Cursor
      */\n  SnippetFragment *pFragment,     /* Snippet to extract */\n  int iFragment,
      \                 /* Fragment number */\n  int isLast,                     /*
      True for final fragment in snippet */\n  int nSnippet,                   /*
      Number of tokens in extracted snippet */\n  const char *zOpen,              /*
      String inserted before highlighted term */\n  const char *zClose,             /*
      String inserted after highlighted term */\n  const char *zEllipsis,          /*
      String inserted between snippets */\n  StrBuffer *pOut                 /* Write
      output here */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ppCollist
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177587
      start: 177574
    functionDepth: 0
    functionLinenumber: 177574
    functionLinenumberEnd: 177587
    functionName: fts3ColumnlistCount
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fts3ColumnlistCount(char **ppCollist)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:177602,1
    - Dst: fts3ColumnlistCount
      Src: /src/nss/lib/sqlite/sqlite3.c:177610,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:177618,1
    - Dst: fts3GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:177621,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 2
    argNames:
    - pExpr
    - p
    argTypes:
    - Fts3Expr*
    - MatchInfo*
    assertStmts:
    - condition: ( p->flag==FTS3_MATCHINFO_LHITS_BM || p->flag==FTS3_MATCHINFO_LHITS
        )
      pos:
        line_end: 177601
        line_start: 177601
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( *pIter==0x00 || *pIter==0x01 )
      pos:
        line_end: 177617
        line_start: 177617
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 177625
      start: 177592
    functionDepth: 1
    functionLinenumber: 177592
    functionLinenumberEnd: 177625
    functionName: fts3ExprLHits
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fts3GetVarint32
    - fts3ColumnlistCount
    linkageType: ''
    returnType: int
    signature: "int fts3ExprLHits(\n  Fts3Expr *pExpr,                /* Phrase expression
      node */\n  MatchInfo *p                    /* Matchinfo context */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:177635,1
    - Dst: fts3ExprLHitGather
      Src: /src/nss/lib/sqlite/sqlite3.c:177638,1
    - Dst: fts3ExprLHitGather
      Src: /src/nss/lib/sqlite/sqlite3.c:177639,1
    - Dst: fts3ExprLHits
      Src: /src/nss/lib/sqlite/sqlite3.c:177641,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - pExpr
    - p
    argTypes:
    - Fts3Expr*
    - MatchInfo*
    assertStmts:
    - condition: ( (pExpr->pLeft==0)==(pExpr->pRight==0) )
      pos:
        line_end: 177634
        line_start: 177634
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 177645
      start: 177630
    functionDepth: 2
    functionLinenumber: 177630
    functionLinenumberEnd: 177645
    functionName: fts3ExprLHitGather
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - fts3ExprLHits
    - fts3ExprLHitGather
    linkageType: ''
    returnType: int
    signature: "int fts3ExprLHitGather(\n  Fts3Expr *pExpr,\n  MatchInfo *p\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3EvalPhraseStats
      Src: /src/nss/lib/sqlite/sqlite3.c:177680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pExpr
    - iPhrase
    - pCtx
    argTypes:
    - Fts3Expr*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177683
      start: 177674
    functionDepth: 33
    functionLinenumber: 177674
    functionLinenumberEnd: 177683
    functionName: fts3ExprGlobalHitsCb
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts3EvalPhraseStats
    linkageType: ''
    returnType: int
    signature: "int fts3ExprGlobalHitsCb(\n  Fts3Expr *pExpr,                /* Phrase
      expression node */\n  int iPhrase,                    /* Phrase number (numbered
      from zero) */\n  void *pCtx                      /* Pointer to MatchInfo structure
      */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3EvalPhrasePoslist
      Src: /src/nss/lib/sqlite/sqlite3.c:177702,1
    - Dst: fts3ColumnlistCount
      Src: /src/nss/lib/sqlite/sqlite3.c:177704,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - pExpr
    - iPhrase
    - pCtx
    argTypes:
    - Fts3Expr*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177711
      start: 177690
    functionDepth: 13
    functionLinenumber: 177690
    functionLinenumberEnd: 177711
    functionName: fts3ExprLocalHitsCb
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3ColumnlistCount
    - sqlite3Fts3EvalPhrasePoslist
    linkageType: ''
    returnType: int
    signature: "int fts3ExprLocalHitsCb(\n  Fts3Expr *pExpr,                /* Phrase
      expression node */\n  int iPhrase,                    /* Phrase number */\n
      \ void *pCtx                      /* Pointer to MatchInfo structure */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3ErrMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:177730,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 6
    argCount: 3
    argNames:
    - pTab
    - cArg
    - pzErr
    argTypes:
    - Fts3Table*
    - char
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177732
      start: 177713
    functionDepth: 10
    functionLinenumber: 177713
    functionLinenumberEnd: 177732
    functionName: fts3MatchinfoCheck
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts3ErrMsg
    linkageType: ''
    returnType: int
    signature: "int fts3MatchinfoCheck(\n  Fts3Table *pTab, \n  char cArg,\n  char
      **pzErr\n)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:177759,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - pInfo
    - cArg
    argTypes:
    - MatchInfo*
    - char
    assertStmts:
    - condition: ( cArg==FTS3_MATCHINFO_HITS )
      pos:
        line_end: 177758
        line_start: 177758
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 177765
      start: 177734
    functionDepth: 0
    functionLinenumber: 177734
    functionLinenumberEnd: 177765
    functionName: fts3MatchinfoSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: size_t
    signature: size_t fts3MatchinfoSize(MatchInfo *pInfo, char cArg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3SelectDoctotal
      Src: /src/nss/lib/sqlite/sqlite3.c:177778,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:177782,1
    - Dst: sqlite3_data_count
      Src: /src/nss/lib/sqlite/sqlite3.c:177782,1
    - Dst: sqlite3_column_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:177784,1
    - Dst: sqlite3Fts3GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:177785,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - pTab
    - ppStmt
    - pnDoc
    - paLen
    argTypes:
    - Fts3Table*
    - sqlite3_stmt**
    - sqlite3_int64*
    - char**
    assertStmts:
    - condition: ( sqlite3_data_count(pStmt)==1 )
      pos:
        line_end: 177781
        line_start: 177781
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 177791
      start: 177767
    functionDepth: 30
    functionLinenumber: 177767
    functionLinenumberEnd: 177791
    functionName: fts3MatchinfoSelectDoctotal
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_column_blob
    - sqlite3_data_count
    - assert
    - sqlite3Fts3GetVarint
    - sqlite3Fts3SelectDoctotal
    linkageType: ''
    returnType: int
    signature: "int fts3MatchinfoSelectDoctotal(\n  Fts3Table *pTab,\n  sqlite3_stmt
      **ppStmt,\n  sqlite3_int64 *pnDoc,\n  const char **paLen\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - pExpr
    - iPhrase
    - pCtx
    argTypes:
    - Fts3Expr*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177821
      start: 177813
    functionDepth: 0
    functionLinenumber: 177813
    functionLinenumberEnd: 177821
    functionName: fts3MatchinfoLcsCb
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int fts3MatchinfoLcsCb(\n  Fts3Expr *pExpr,                /* Phrase
      expression node */\n  int iPhrase,                    /* Phrase number (numbered
      from zero) */\n  void *pCtx                      /* Pointer to MatchInfo structure
      */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts3GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:177833,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pIter
    argTypes:
    - LcsIterator*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177843
      start: 177828
    functionDepth: 2
    functionLinenumber: 177828
    functionLinenumberEnd: 177843
    functionName: fts3LcsIteratorAdvance
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts3GetVarint
    linkageType: ''
    returnType: int
    signature: int fts3LcsIteratorAdvance(LcsIterator *pIter)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:177866,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:177868,1
    - Dst: fts3ExprIterate
      Src: /src/nss/lib/sqlite/sqlite3.c:177869,1
    - Dst: sqlite3Fts3EvalPhrasePoslist
      Src: /src/nss/lib/sqlite/sqlite3.c:177883,1
    - Dst: fts3LcsIteratorAdvance
      Src: /src/nss/lib/sqlite/sqlite3.c:177887,1
    - Dst: fts3LcsIteratorAdvance
      Src: /src/nss/lib/sqlite/sqlite3.c:177917,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:177924,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 53
    argCount: 2
    argNames:
    - pCsr
    - pInfo
    argTypes:
    - Fts3Cursor*
    - MatchInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177926
      start: 177856
    functionDepth: 13
    functionLinenumber: 177856
    functionLinenumberEnd: 177926
    functionName: fts3MatchinfoLcs
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_malloc64
    - fts3ExprIterate
    - memset
    - fts3LcsIteratorAdvance
    - sqlite3Fts3EvalPhrasePoslist
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int fts3MatchinfoLcs(Fts3Cursor *pCsr, MatchInfo *pInfo)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: fts3MatchinfoSelectDoctotal
      Src: /src/nss/lib/sqlite/sqlite3.c:177970,1
    - Dst: fts3MatchinfoSelectDoctotal
      Src: /src/nss/lib/sqlite/sqlite3.c:177980,1
    - Dst: sqlite3Fts3GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:177986,1
    - Dst: sqlite3Fts3SelectDocsize
      Src: /src/nss/lib/sqlite/sqlite3.c:177996,1
    - Dst: sqlite3_column_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:177999,1
    - Dst: sqlite3Fts3GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:178002,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:178006,1
    - Dst: fts3ExprLoadDoclists
      Src: /src/nss/lib/sqlite/sqlite3.c:178011,1
    - Dst: fts3MatchinfoLcs
      Src: /src/nss/lib/sqlite/sqlite3.c:178013,1
    - Dst: fts3MatchinfoSize
      Src: /src/nss/lib/sqlite/sqlite3.c:178019,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:178020,1
    - Dst: fts3ExprLHitGather
      Src: /src/nss/lib/sqlite/sqlite3.c:178021,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:178027,1
    - Dst: fts3ExprLoadDoclists
      Src: /src/nss/lib/sqlite/sqlite3.c:178029,1
    - Dst: fts3MatchinfoSelectDoctotal
      Src: /src/nss/lib/sqlite/sqlite3.c:178033,1
    - Dst: fts3ExprIterate
      Src: /src/nss/lib/sqlite/sqlite3.c:178036,1
    - Dst: sqlite3Fts3EvalTestDeferred
      Src: /src/nss/lib/sqlite/sqlite3.c:178037,1
    - Dst: fts3ExprIterate
      Src: /src/nss/lib/sqlite/sqlite3.c:178040,1
    - Dst: fts3MatchinfoSize
      Src: /src/nss/lib/sqlite/sqlite3.c:178045,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:178048,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 78
    argCount: 4
    argNames:
    - pCsr
    - bGlobal
    - pInfo
    - zArg
    argTypes:
    - Fts3Cursor*
    - int
    - MatchInfo*
    - char*
    assertStmts:
    - condition: ( zArg[i]==FTS3_MATCHINFO_HITS )
      pos:
        line_end: 178026
        line_start: 178026
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 178050
      start: 177945
    functionDepth: 31
    functionLinenumber: 177945
    functionLinenumberEnd: 178050
    functionName: fts3MatchinfoValues
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3MatchinfoSelectDoctotal
    - sqlite3_reset
    - sqlite3Fts3EvalTestDeferred
    - sqlite3_column_blob
    - sqlite3Fts3SelectDocsize
    - fts3MatchinfoLcs
    - fts3ExprIterate
    - memset
    - assert
    - sqlite3Fts3GetVarint
    - fts3ExprLoadDoclists
    - fts3ExprLHitGather
    - fts3MatchinfoSize
    linkageType: ''
    returnType: int
    signature: "int fts3MatchinfoValues(\n  Fts3Cursor *pCsr,               /* FTS3
      cursor object */\n  int bGlobal,                    /* True to grab the global
      stats */\n  MatchInfo *pInfo,               /* Matchinfo context object */\n
      \ const char *zArg                /* Matchinfo format string */\n)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:178070,1
    - Dst: strcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:178077,1
    - Dst: sqlite3Fts3MIBufferFree
      Src: /src/nss/lib/sqlite/sqlite3.c:178078,1
    - Dst: fts3ExprPhraseCount
      Src: /src/nss/lib/sqlite/sqlite3.c:178092,1
    - Dst: fts3MatchinfoCheck
      Src: /src/nss/lib/sqlite/sqlite3.c:178098,1
    - Dst: sqlite3_result_error
      Src: /src/nss/lib/sqlite/sqlite3.c:178099,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:178100,1
    - Dst: fts3MatchinfoSize
      Src: /src/nss/lib/sqlite/sqlite3.c:178103,1
    - Dst: fts3MIBufferNew
      Src: /src/nss/lib/sqlite/sqlite3.c:178107,1
    - Dst: fts3MIBufferAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:178115,1
    - Dst: fts3MatchinfoValues
      Src: /src/nss/lib/sqlite/sqlite3.c:178124,1
    - Dst: fts3MIBufferSetGlobal
      Src: /src/nss/lib/sqlite/sqlite3.c:178126,1
    - Dst: sqlite3_result_error_code
      Src: /src/nss/lib/sqlite/sqlite3.c:178131,1
    - Dst: xDestroyOut
      Src: /src/nss/lib/sqlite/sqlite3.c:178132,1
    - Dst: sqlite3_result_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:178135,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 3
    argNames:
    - pCtx
    - pCsr
    - zArg
    argTypes:
    - sqlite3_context*
    - Fts3Cursor*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178137
      start: 178057
    functionDepth: 32
    functionLinenumber: 178057
    functionLinenumberEnd: 178137
    functionName: fts3GetMatchinfo
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3MatchinfoCheck
    - strcmp
    - fts3MIBufferNew
    - sqlite3_result_blob
    - fts3MIBufferSetGlobal
    - sqlite3_result_error_code
    - sqlite3Fts3MIBufferFree
    - xDestroyOut
    - fts3MatchinfoValues
    - fts3ExprPhraseCount
    - fts3MIBufferAlloc
    - memset
    - fts3MatchinfoSize
    - sqlite3_free
    - sqlite3_result_error
    linkageType: ''
    returnType: void
    signature: "void fts3GetMatchinfo(\n  sqlite3_context *pCtx,        /* Return
      results here */\n  Fts3Cursor *pCsr,               /* FTS3 Cursor object */\n
      \ const char *zArg                /* Second argument to matchinfo() function
      */\n)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:178169,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:178194,1
    - Dst: fts3BestSnippet
      Src: /src/nss/lib/sqlite/sqlite3.c:178206,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:178222,1
    - Dst: SizeofArray
      Src: /src/nss/lib/sqlite/sqlite3.c:178223,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:178226,1
    - Dst: fts3SnippetText
      Src: /src/nss/lib/sqlite/sqlite3.c:178229,1
    - Dst: sqlite3Fts3SegmentsClose
      Src: /src/nss/lib/sqlite/sqlite3.c:178235,1
    - Dst: sqlite3_result_error_code
      Src: /src/nss/lib/sqlite/sqlite3.c:178237,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:178238,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:178240,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 49
    argCount: 7
    argNames:
    - pCtx
    - pCsr
    - zStart
    - zEnd
    - zEllipsis
    - iCol
    - nToken
    argTypes:
    - sqlite3_context*
    - Fts3Cursor*
    - char*
    - char*
    - char*
    - int
    - int
    assertStmts:
    - condition: ( (mCovered&mSeen)==mCovered )
      pos:
        line_end: 178221
        line_start: 178221
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nFToken>0 )
      pos:
        line_end: 178225
        line_start: 178225
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 178242
      start: 178142
    functionDepth: 28
    functionLinenumber: 178142
    functionLinenumberEnd: 178242
    functionName: sqlite3Fts3Snippet
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_result_error_code
    - fts3SnippetText
    - memset
    - SizeofArray
    - assert
    - fts3BestSnippet
    - sqlite3Fts3SegmentsClose
    - sqlite3_free
    - sqlite3_result_text
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3Snippet(\n  sqlite3_context *pCtx,          /*
      SQLite function call context */\n  Fts3Cursor *pCsr,               /* Cursor
      object */\n  const char *zStart,             /* Snippet start text - \"<b>\"
      */\n  const char *zEnd,               /* Snippet end text - \"</b>\" */\n  const
      char *zEllipsis,          /* Snippet ellipsis text - \"<b>...</b>\" */\n  int
      iCol,                       /* Extract snippet from this column */\n  int nToken
      \                     /* Approximate number of tokens in snippet */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:178273,1
    - Dst: sqlite3Fts3EvalPhrasePoslist
      Src: /src/nss/lib/sqlite/sqlite3.c:178274,1
    - Dst: fts3GetDeltaPosition
      Src: /src/nss/lib/sqlite/sqlite3.c:178277,1
    - Dst: assert_fts3_nc
      Src: /src/nss/lib/sqlite/sqlite3.c:178278,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - pExpr
    - iPhrase
    - ctx
    argTypes:
    - Fts3Expr*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178289
      start: 178265
    functionDepth: 13
    functionLinenumber: 178265
    functionLinenumberEnd: 178289
    functionName: fts3ExprTermOffsetInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts3GetDeltaPosition
    - assert_fts3_nc
    - UNUSED_PARAMETER
    - sqlite3Fts3EvalPhrasePoslist
    linkageType: ''
    returnType: int
    signature: int fts3ExprTermOffsetInit(Fts3Expr *pExpr, int iPhrase, void *ctx)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:178307,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:178311,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:178312,1
    - Dst: fts3ExprLoadDoclists
      Src: /src/nss/lib/sqlite/sqlite3.c:178315,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:178319,1
    - Dst: fts3ExprIterate
      Src: /src/nss/lib/sqlite/sqlite3.c:178346,1
    - Dst: sqlite3_column_text
      Src: /src/nss/lib/sqlite/sqlite3.c:178354,1
    - Dst: sqlite3_column_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:178355,1
    - Dst: sqlite3_column_type
      Src: /src/nss/lib/sqlite/sqlite3.c:178357,1
    - Dst: sqlite3Fts3OpenTokenizer
      Src: /src/nss/lib/sqlite/sqlite3.c:178365,1
    - Dst: sqlite3_tokenizer_module*::xNext
      Src: /src/nss/lib/sqlite/sqlite3.c:178370,1
    - Dst: assert_fts3_nc
      Src: /src/nss/lib/sqlite/sqlite3.c:178388,1
    - Dst: fts3GetDeltaPosition
      Src: /src/nss/lib/sqlite/sqlite3.c:178392,1
    - Dst: sqlite3_tokenizer_module*::xNext
      Src: /src/nss/lib/sqlite/sqlite3.c:178395,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:178399,1
    - Dst: fts3StringAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:178402,1
    - Dst: sqlite3_tokenizer_module*::xClose
      Src: /src/nss/lib/sqlite/sqlite3.c:178412,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:178417,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:178418,1
    - Dst: sqlite3Fts3SegmentsClose
      Src: /src/nss/lib/sqlite/sqlite3.c:178419,1
    - Dst: sqlite3_result_error_code
      Src: /src/nss/lib/sqlite/sqlite3.c:178421,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:178422,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:178424,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 86
    argCount: 2
    argNames:
    - pCtx
    - pCsr
    argTypes:
    - sqlite3_context*
    - Fts3Cursor*
    assertStmts:
    - condition: ( rc!=SQLITE_DONE )
      pos:
        line_end: 178417
        line_start: 178417
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCsr->isRequireSeek==0 )
      pos:
        line_end: 178311
        line_start: 178311
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 178427
      start: 178294
    functionDepth: 28
    functionLinenumber: 178294
    functionLinenumberEnd: 178427
    functionName: sqlite3Fts3Offsets
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - fts3StringAppend
    - sqlite3_column_bytes
    - assert_fts3_nc
    - sqlite3_result_error_code
    - memset
    - assert
    - fts3ExprLoadDoclists
    - sqlite3_column_text
    - sqlite3_snprintf
    - sqlite3_malloc64
    - sqlite3_tokenizer_module*::xClose
    - sqlite3Fts3OpenTokenizer
    - sqlite3Fts3SegmentsClose
    - sqlite3_result_text
    - sqlite3_column_type
    - sqlite3_tokenizer_module*::xNext
    - fts3ExprIterate
    - fts3GetDeltaPosition
    - sqlite3_free
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3Offsets(\n  sqlite3_context *pCtx,          /*
      SQLite function call context */\n  Fts3Cursor *pCsr                /* Cursor
      object */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_result_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:178447,1
    - Dst: fts3GetMatchinfo
      Src: /src/nss/lib/sqlite/sqlite3.c:178451,1
    - Dst: sqlite3Fts3SegmentsClose
      Src: /src/nss/lib/sqlite/sqlite3.c:178452,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - pContext
    - pCsr
    - zArg
    argTypes:
    - sqlite3_context*
    - Fts3Cursor*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178454
      start: 178432
    functionDepth: 33
    functionLinenumber: 178432
    functionLinenumberEnd: 178454
    functionName: sqlite3Fts3Matchinfo
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - fts3GetMatchinfo
    - sqlite3Fts3SegmentsClose
    - sqlite3_result_blob
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3Matchinfo(\n  sqlite3_context *pContext,
      \     /* Function call context */\n  Fts3Cursor *pCsr,               /* FTS3
      table cursor */\n  const char *zArg                /* Second arg to matchinfo()
      function */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - zIn
    - ','
    - zTerm
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178516
      start: 178505
    functionDepth: 0
    functionLinenumber: 178505
    functionLinenumberEnd: 178516
    functionName: READ_UTF8
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: READ_UTF8(zIn, zTerm, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - zOut
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178536
      start: 178517
    functionDepth: 0
    functionLinenumber: 178517
    functionLinenumberEnd: 178536
    functionName: WRITE_UTF8
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRITE_UTF8(zOut, c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:178566,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:178567,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pTokenizer
    argTypes:
    - sqlite3_tokenizer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178570
      start: 178563
    functionDepth: 3
    functionLinenumber: 178563
    functionLinenumberEnd: 178570
    functionName: unicodeDestroy
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int unicodeDestroy(sqlite3_tokenizer *pTokenizer)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:178601,1
    - Dst: READ_UTF8
      Src: /src/nss/lib/sqlite/sqlite3.c:178604,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:178605,1
    - Dst: sqlite3FtsUnicodeIsalnum
      Src: /src/nss/lib/sqlite/sqlite3.c:178605,1
    - Dst: sqlite3FtsUnicodeIsalnum
      Src: /src/nss/lib/sqlite/sqlite3.c:178606,1
    - Dst: sqlite3FtsUnicodeIsdiacritic
      Src: /src/nss/lib/sqlite/sqlite3.c:178607,1
    - Dst: sqlite3_realloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:178617,1
    - Dst: READ_UTF8
      Src: /src/nss/lib/sqlite/sqlite3.c:178623,1
    - Dst: sqlite3FtsUnicodeIsalnum
      Src: /src/nss/lib/sqlite/sqlite3.c:178624,1
    - Dst: sqlite3FtsUnicodeIsdiacritic
      Src: /src/nss/lib/sqlite/sqlite3.c:178625,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 4
    argNames:
    - p
    - bAlnum
    - zIn
    - nIn
    argTypes:
    - unicode_tokenizer*
    - int
    - char*
    - int
    assertStmts:
    - condition: ( bAlnum==0 || bAlnum==1 )
      pos:
        line_end: 178600
        line_start: 178600
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (sqlite3FtsUnicodeIsalnum((int)iCode) & 0xFFFFFFFE)==0 )
      pos:
        line_end: 178604
        line_start: 178604
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 178639
      start: 178590
    functionDepth: 7
    functionLinenumber: 178590
    functionLinenumberEnd: 178639
    functionName: unicodeAddExceptions
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3FtsUnicodeIsdiacritic
    - sqlite3FtsUnicodeIsalnum
    - assert
    - READ_UTF8
    - sqlite3_realloc64
    linkageType: ''
    returnType: int
    signature: "int unicodeAddExceptions(\n  unicode_tokenizer *p,           /* Tokenizer
      to add exceptions to */\n  int bAlnum,                     /* Replace Isalnum()
      return value with this */\n  const char *zIn,                /* Array of characters
      to make exceptions */\n  int nIn                         /* Length of z in bytes
      */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - p
    - iCode
    argTypes:
    - unicode_tokenizer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178663
      start: 178644
    functionDepth: 0
    functionLinenumber: 178644
    functionLinenumberEnd: 178663
    functionName: unicodeIsException
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int unicodeIsException(unicode_tokenizer *p, int iCode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:178670,1
    - Dst: sqlite3FtsUnicodeIsalnum
      Src: /src/nss/lib/sqlite/sqlite3.c:178670,1
    - Dst: sqlite3FtsUnicodeIsalnum
      Src: /src/nss/lib/sqlite/sqlite3.c:178671,1
    - Dst: unicodeIsException
      Src: /src/nss/lib/sqlite/sqlite3.c:178671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p
    - iCode
    argTypes:
    - unicode_tokenizer*
    - int
    assertStmts:
    - condition: ( (sqlite3FtsUnicodeIsalnum(iCode) & 0xFFFFFFFE)==0 )
      pos:
        line_end: 178669
        line_start: 178669
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 178672
      start: 178669
    functionDepth: 1
    functionLinenumber: 178669
    functionLinenumberEnd: 178672
    functionName: unicodeIsAlnum
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - unicodeIsException
    - sqlite3FtsUnicodeIsalnum
    linkageType: ''
    returnType: int
    signature: int unicodeIsAlnum(unicode_tokenizer *p, int iCode)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:178686,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:178688,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:178693,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:178695,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:178698,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:178701,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:178704,1
    - Dst: unicodeAddExceptions
      Src: /src/nss/lib/sqlite/sqlite3.c:178705,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:178707,1
    - Dst: unicodeAddExceptions
      Src: /src/nss/lib/sqlite/sqlite3.c:178708,1
    - Dst: unicodeDestroy
      Src: /src/nss/lib/sqlite/sqlite3.c:178717,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 3
    argNames:
    - nArg
    - azArg
    - pp
    argTypes:
    - int
    - char**
    - sqlite3_tokenizer**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178722
      start: 178677
    functionDepth: 8
    functionLinenumber: 178677
    functionLinenumberEnd: 178722
    functionName: unicodeCreate
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_malloc
    - unicodeAddExceptions
    - memset
    - unicodeDestroy
    - memcmp
    - strlen
    linkageType: ''
    returnType: int
    signature: "int unicodeCreate(\n  int nArg,                       /* Size of array
      argv[] */\n  const char * const *azArg,      /* Tokenizer creation arguments
      */\n  sqlite3_tokenizer **pp          /* OUT: New tokenizer handle */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:178738,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:178742,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:178748,1
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:178754,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - p
    - aInput
    - nInput
    - pp
    argTypes:
    - sqlite3_tokenizer*
    - char*
    - int
    - sqlite3_tokenizer_cursor**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178756
      start: 178730
    functionDepth: 6
    functionLinenumber: 178730
    functionLinenumberEnd: 178756
    functionName: unicodeOpen
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3_malloc
    - UNUSED_PARAMETER
    - strlen
    linkageType: ''
    returnType: int
    signature: "int unicodeOpen(\n  sqlite3_tokenizer *p,           /* The tokenizer
      */\n  const char *aInput,             /* Input string */\n  int nInput,                     /*
      Size of string aInput in bytes */\n  sqlite3_tokenizer_cursor **pp   /* OUT:
      New cursor object */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:178764,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:178765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pCursor
    argTypes:
    - sqlite3_tokenizer_cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178767
      start: 178762
    functionDepth: 3
    functionLinenumber: 178762
    functionLinenumberEnd: 178767
    functionName: unicodeClose
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int unicodeClose(sqlite3_tokenizer_cursor *pCursor)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: READ_UTF8
      Src: /src/nss/lib/sqlite/sqlite3.c:178794,1
    - Dst: unicodeIsAlnum
      Src: /src/nss/lib/sqlite/sqlite3.c:178795,1
    - Dst: sqlite3_realloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:178806,1
    - Dst: sqlite3FtsUnicodeFold
      Src: /src/nss/lib/sqlite/sqlite3.c:178815,1
    - Dst: WRITE_UTF8
      Src: /src/nss/lib/sqlite/sqlite3.c:178817,1
    - Dst: READ_UTF8
      Src: /src/nss/lib/sqlite/sqlite3.c:178822,1
    - Dst: unicodeIsAlnum
      Src: /src/nss/lib/sqlite/sqlite3.c:178823,1
    - Dst: sqlite3FtsUnicodeIsdiacritic
      Src: /src/nss/lib/sqlite/sqlite3.c:178824,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 6
    argNames:
    - pC
    - paToken
    - pnToken
    - piStart
    - piEnd
    - piPos
    argTypes:
    - sqlite3_tokenizer_cursor*
    - char**
    - int*
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178835
      start: 178773
    functionDepth: 7
    functionLinenumber: 178773
    functionLinenumberEnd: 178835
    functionName: unicodeNext
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3FtsUnicodeFold
    - sqlite3FtsUnicodeIsdiacritic
    - unicodeIsAlnum
    - WRITE_UTF8
    - READ_UTF8
    - sqlite3_realloc64
    linkageType: ''
    returnType: int
    signature: "int unicodeNext(\n  sqlite3_tokenizer_cursor *pC,   /* Cursor returned
      by simpleOpen */\n  const char **paToken,           /* OUT: Token text */\n
      \ int *pnToken,                   /* OUT: Number of bytes at *paToken */\n  int
      *piStart,                   /* OUT: Starting offset of token */\n  int *piEnd,
      \                    /* OUT: Ending offset of token */\n  int *piPos                      /*
      OUT: Position integer of token */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ppModule
    argTypes:
    - sqlite3_tokenizer_module**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178852
      start: 178841
    functionDepth: 0
    functionLinenumber: 178841
    functionLinenumberEnd: 178852
    functionName: sqlite3Fts3UnicodeTokenizer
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts3UnicodeTokenizer(sqlite3_tokenizer_module
      const **ppModule)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:179004,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:179005,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts:
    - condition: ( aEntry[0]<key )
      pos:
        line_end: 179003
        line_start: 179003
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( key>=aEntry[iRes] )
      pos:
        line_end: 179004
        line_start: 179004
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 179009
      start: 178888
    functionDepth: 0
    functionLinenumber: 178888
    functionLinenumberEnd: 179009
    functionName: sqlite3FtsUnicodeIsalnum
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3FtsUnicodeIsalnum(int c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:179077,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - c
    - bComplex
    argTypes:
    - int
    - int
    assertStmts:
    - condition: ( key>=aDia[iRes] )
      pos:
        line_end: 179076
        line_start: 179076
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 179080
      start: 179020
    functionDepth: 0
    functionLinenumber: 179020
    functionLinenumberEnd: 179080
    functionName: remove_diacritic
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int remove_diacritic(int c, int bComplex)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179094
      start: 179087
    functionDepth: 0
    functionLinenumber: 179087
    functionLinenumberEnd: 179094
    functionName: sqlite3FtsUnicodeIsdiacritic
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3FtsUnicodeIsdiacritic(int c)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:179200,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:179210,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:179222,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:179226,1
    - Dst: remove_diacritic
      Src: /src/nss/lib/sqlite/sqlite3.c:179230,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 2
    argNames:
    - c
    - eRemoveDiacritic
    argTypes:
    - int
    - int
    assertStmts:
    - condition: ( sizeof(unsigned short)==2 && sizeof(unsigned char)==1 )
      pos:
        line_end: 179199
        line_start: 179199
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( ret>0 )
      pos:
        line_end: 179225
        line_start: 179225
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( c>aEntry[0].iCode )
      pos:
        line_end: 179209
        line_start: 179209
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iRes>=0 && c>=aEntry[iRes].iCode )
      pos:
        line_end: 179221
        line_start: 179221
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 179239
      start: 179106
    functionDepth: 1
    functionLinenumber: 179106
    functionLinenumberEnd: 179239
    functionName: sqlite3FtsUnicodeFold
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - remove_diacritic
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3FtsUnicodeFold(int c, int eRemoveDiacritic)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179282
      start: 179281
    functionDepth: 0
    functionLinenumber: 179281
    functionLinenumberEnd: 179282
    functionName: UNUSED_PARAM
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNUSED_PARAM(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179297
      start: 179296
    functionDepth: 0
    functionLinenumber: 179296
    functionLinenumberEnd: 179297
    functionName: safe_isdigit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: safe_isdigit(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179298
      start: 179297
    functionDepth: 0
    functionLinenumber: 179297
    functionLinenumberEnd: 179298
    functionName: safe_isalnum
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: safe_isalnum(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179299
      start: 179298
    functionDepth: 0
    functionLinenumber: 179298
    functionLinenumberEnd: 179299
    functionName: safe_isxdigit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: safe_isxdigit(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179303
      start: 179302
    functionDepth: 0
    functionLinenumber: 179302
    functionLinenumberEnd: 179303
    functionName: safe_isdigit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: safe_isdigit(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179304
      start: 179303
    functionDepth: 0
    functionLinenumber: 179303
    functionLinenumberEnd: 179304
    functionName: safe_isalnum
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: safe_isalnum(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179305
      start: 179304
    functionDepth: 0
    functionLinenumber: 179304
    functionLinenumberEnd: 179305
    functionName: safe_isxdigit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: safe_isxdigit(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179331
      start: 179330
    functionDepth: 0
    functionLinenumber: 179330
    functionLinenumberEnd: 179331
    functionName: safe_isspace
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: safe_isspace(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - JsonString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179442
      start: 179437
    functionDepth: 0
    functionLinenumber: 179437
    functionLinenumberEnd: 179442
    functionName: jsonZero
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void jsonZero(JsonString *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: jsonZero
      Src: /src/nss/lib/sqlite/sqlite3.c:179449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - p
    - pCtx
    argTypes:
    - JsonString*
    - sqlite3_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179450
      start: 179446
    functionDepth: 1
    functionLinenumber: 179446
    functionLinenumberEnd: 179450
    functionName: jsonInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - jsonZero
    linkageType: ''
    returnType: void
    signature: void jsonInit(JsonString *p, sqlite3_context *pCtx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:179457,1
    - Dst: jsonZero
      Src: /src/nss/lib/sqlite/sqlite3.c:179458,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - JsonString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179459
      start: 179456
    functionDepth: 3
    functionLinenumber: 179456
    functionLinenumberEnd: 179459
    functionName: jsonReset
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    - jsonZero
    linkageType: ''
    returnType: void
    signature: void jsonReset(JsonString *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_result_error_nomem
      Src: /src/nss/lib/sqlite/sqlite3.c:179466,1
    - Dst: jsonReset
      Src: /src/nss/lib/sqlite/sqlite3.c:179467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - JsonString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179468
      start: 179464
    functionDepth: 9
    functionLinenumber: 179464
    functionLinenumberEnd: 179468
    functionName: jsonOom
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_error_nomem
    - jsonReset
    linkageType: ''
    returnType: void
    signature: void jsonOom(JsonString *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:179478,1
    - Dst: jsonOom
      Src: /src/nss/lib/sqlite/sqlite3.c:179480,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:179483,1
    - Dst: sqlite3_realloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:179487,1
    - Dst: jsonOom
      Src: /src/nss/lib/sqlite/sqlite3.c:179489,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - p
    - N
    argTypes:
    - JsonString*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179496
      start: 179473
    functionDepth: 10
    functionLinenumber: 179473
    functionLinenumberEnd: 179496
    functionName: jsonGrow
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - sqlite3_malloc64
    - sqlite3_realloc64
    - jsonOom
    linkageType: ''
    returnType: int
    signature: int jsonGrow(JsonString *p, u32 N)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: jsonGrow
      Src: /src/nss/lib/sqlite/sqlite3.c:179501,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:179502,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - p
    - zIn
    - N
    argTypes:
    - JsonString*
    - char*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179504
      start: 179500
    functionDepth: 11
    functionLinenumber: 179500
    functionLinenumberEnd: 179504
    functionName: jsonAppendRaw
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - jsonGrow
    linkageType: ''
    returnType: void
    signature: void jsonAppendRaw(JsonString *p, const char *zIn, u32 N)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: jsonGrow
      Src: /src/nss/lib/sqlite/sqlite3.c:179510,1
    - Dst: va_start
      Src: /src/nss/lib/sqlite/sqlite3.c:179511,1
    - Dst: sqlite3_vsnprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:179512,1
    - Dst: va_end
      Src: /src/nss/lib/sqlite/sqlite3.c:179513,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:179514,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - N
    - p
    - zFormat
    argTypes:
    - int
    - JsonString*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179515
      start: 179508
    functionDepth: 11
    functionLinenumber: 179508
    functionLinenumberEnd: 179515
    functionName: jsonPrintf
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - va_end
    - jsonGrow
    - sqlite3_vsnprintf
    - va_start
    - strlen
    linkageType: ''
    returnType: void
    signature: void jsonPrintf(int N, JsonString *p, const char *zFormat, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: jsonGrow
      Src: /src/nss/lib/sqlite/sqlite3.c:179520,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - p
    - c
    argTypes:
    - JsonString*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179522
      start: 179519
    functionDepth: 11
    functionLinenumber: 179519
    functionLinenumberEnd: 179522
    functionName: jsonAppendChar
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - jsonGrow
    linkageType: ''
    returnType: void
    signature: void jsonAppendChar(JsonString *p, char c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: jsonAppendChar
      Src: /src/nss/lib/sqlite/sqlite3.c:179531,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - JsonString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179532
      start: 179527
    functionDepth: 12
    functionLinenumber: 179527
    functionLinenumberEnd: 179532
    functionName: jsonAppendSeparator
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - jsonAppendChar
    linkageType: ''
    returnType: void
    signature: void jsonAppendSeparator(JsonString *p)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: jsonGrow
      Src: /src/nss/lib/sqlite/sqlite3.c:179541,1
    - Dst: jsonGrow
      Src: /src/nss/lib/sqlite/sqlite3.c:179547,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:179554,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:179555,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:179556,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:179557,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:179558,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:179559,1
    - Dst: jsonGrow
      Src: /src/nss/lib/sqlite/sqlite3.c:179564,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:179575,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 3
    argNames:
    - p
    - zIn
    - N
    argTypes:
    - JsonString*
    - char*
    - u32
    assertStmts:
    - condition: ( aSpecial['\b']=='b' )
      pos:
        line_end: 179554
        line_start: 179554
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sizeof(aSpecial)==32 )
      pos:
        line_end: 179553
        line_start: 179553
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( aSpecial['\f']=='f' )
      pos:
        line_end: 179555
        line_start: 179555
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( aSpecial['\n']=='n' )
      pos:
        line_end: 179556
        line_start: 179556
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( aSpecial['\r']=='r' )
      pos:
        line_end: 179557
        line_start: 179557
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( aSpecial['\t']=='t' )
      pos:
        line_end: 179558
        line_start: 179558
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->nUsed<p->nAlloc )
      pos:
        line_end: 179574
        line_start: 179574
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 179576
      start: 179539
    functionDepth: 11
    functionLinenumber: 179539
    functionLinenumberEnd: 179576
    functionName: jsonAppendString
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - jsonGrow
    linkageType: ''
    returnType: void
    signature: void jsonAppendString(JsonString *p, const char *zIn, u32 N)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:179586,1
    - Dst: jsonAppendRaw
      Src: /src/nss/lib/sqlite/sqlite3.c:179588,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:179593,1
    - Dst: sqlite3_value_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:179594,1
    - Dst: jsonAppendRaw
      Src: /src/nss/lib/sqlite/sqlite3.c:179595,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:179599,1
    - Dst: sqlite3_value_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:179600,1
    - Dst: sqlite3_value_subtype
      Src: /src/nss/lib/sqlite/sqlite3.c:179601,1
    - Dst: jsonAppendRaw
      Src: /src/nss/lib/sqlite/sqlite3.c:179602,1
    - Dst: jsonAppendString
      Src: /src/nss/lib/sqlite/sqlite3.c:179604,1
    - Dst: sqlite3_result_error
      Src: /src/nss/lib/sqlite/sqlite3.c:179610,1
    - Dst: jsonReset
      Src: /src/nss/lib/sqlite/sqlite3.c:179612,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - p
    - pValue
    argTypes:
    - JsonString*
    - sqlite3_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179617
      start: 179582
    functionDepth: 16
    functionLinenumber: 179582
    functionLinenumberEnd: 179617
    functionName: jsonAppendValue
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - jsonAppendString
    - jsonAppendRaw
    - sqlite3_result_error
    - sqlite3_value_subtype
    - sqlite3_value_type
    - sqlite3_value_text
    - jsonReset
    - sqlite3_value_bytes
    linkageType: ''
    returnType: void
    signature: "void jsonAppendValue(\n  JsonString *p,                 /* Append
      to this JSON string */\n  sqlite3_value *pValue          /* Value to append
      */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_result_text64
      Src: /src/nss/lib/sqlite/sqlite3.c:179624,1
    - Dst: jsonZero
      Src: /src/nss/lib/sqlite/sqlite3.c:179627,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:179629,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - JsonString*
    assertStmts:
    - condition: ( p->bStatic )
      pos:
        line_end: 179628
        line_start: 179628
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 179630
      start: 179622
    functionDepth: 14
    functionLinenumber: 179622
    functionLinenumberEnd: 179630
    functionName: jsonResult
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_result_text64
    - jsonZero
    linkageType: ''
    returnType: void
    signature: void jsonResult(JsonString *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pNode
    argTypes:
    - JsonNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179647
      start: 179645
    functionDepth: 0
    functionLinenumber: 179645
    functionLinenumberEnd: 179647
    functionName: jsonNodeSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: u32 jsonNodeSize(JsonNode *pNode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:179654,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:179658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - pParse
    argTypes:
    - JsonParse*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179660
      start: 179653
    functionDepth: 3
    functionLinenumber: 179653
    functionLinenumberEnd: 179660
    functionName: jsonParseReset
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void jsonParseReset(JsonParse *pParse)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: jsonParseReset
      Src: /src/nss/lib/sqlite/sqlite3.c:179666,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:179667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pParse
    argTypes:
    - JsonParse*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179668
      start: 179665
    functionDepth: 4
    functionLinenumber: 179665
    functionLinenumberEnd: 179668
    functionName: jsonParseFree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - jsonParseReset
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void jsonParseFree(JsonParse *pParse)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: jsonAppendValue
      Src: /src/nss/lib/sqlite/sqlite3.c:179682,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:179689,1
    - Dst: jsonAppendRaw
      Src: /src/nss/lib/sqlite/sqlite3.c:179690,1
    - Dst: jsonAppendRaw
      Src: /src/nss/lib/sqlite/sqlite3.c:179694,1
    - Dst: jsonAppendRaw
      Src: /src/nss/lib/sqlite/sqlite3.c:179698,1
    - Dst: jsonAppendString
      Src: /src/nss/lib/sqlite/sqlite3.c:179703,1
    - Dst: jsonAppendRaw
      Src: /src/nss/lib/sqlite/sqlite3.c:179710,1
    - Dst: jsonAppendChar
      Src: /src/nss/lib/sqlite/sqlite3.c:179715,1
    - Dst: jsonAppendSeparator
      Src: /src/nss/lib/sqlite/sqlite3.c:179719,1
    - Dst: jsonRenderNode
      Src: /src/nss/lib/sqlite/sqlite3.c:179720,1
    - Dst: jsonNodeSize
      Src: /src/nss/lib/sqlite/sqlite3.c:179722,1
    - Dst: jsonAppendChar
      Src: /src/nss/lib/sqlite/sqlite3.c:179728,1
    - Dst: jsonAppendChar
      Src: /src/nss/lib/sqlite/sqlite3.c:179733,1
    - Dst: jsonAppendSeparator
      Src: /src/nss/lib/sqlite/sqlite3.c:179737,1
    - Dst: jsonRenderNode
      Src: /src/nss/lib/sqlite/sqlite3.c:179738,1
    - Dst: jsonAppendChar
      Src: /src/nss/lib/sqlite/sqlite3.c:179739,1
    - Dst: jsonRenderNode
      Src: /src/nss/lib/sqlite/sqlite3.c:179740,1
    - Dst: jsonNodeSize
      Src: /src/nss/lib/sqlite/sqlite3.c:179742,1
    - Dst: jsonAppendChar
      Src: /src/nss/lib/sqlite/sqlite3.c:179748,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 72
    argCount: 3
    argNames:
    - pNode
    - pOut
    - aReplace
    argTypes:
    - JsonNode*
    - JsonString*
    - sqlite3_value**
    assertStmts:
    - condition: ( pNode->eType==JSON_NULL )
      pos:
        line_end: 179688
        line_start: 179688
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 179752
      start: 179675
    functionDepth: 17
    functionLinenumber: 179675
    functionLinenumberEnd: 179752
    functionName: jsonRenderNode
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - jsonAppendString
    - jsonAppendRaw
    - jsonRenderNode
    - assert
    - jsonAppendValue
    - jsonAppendSeparator
    - jsonNodeSize
    - jsonAppendChar
    linkageType: ''
    returnType: void
    signature: "void jsonRenderNode(\n  JsonNode *pNode,               /* The node
      to render */\n  JsonString *pOut,              /* Write JSON here */\n  sqlite3_value
      **aReplace       /* Replacement values */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: jsonInit
      Src: /src/nss/lib/sqlite/sqlite3.c:179763,1
    - Dst: jsonRenderNode
      Src: /src/nss/lib/sqlite/sqlite3.c:179764,1
    - Dst: jsonResult
      Src: /src/nss/lib/sqlite/sqlite3.c:179765,1
    - Dst: sqlite3_result_subtype
      Src: /src/nss/lib/sqlite/sqlite3.c:179766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - pNode
    - pCtx
    - aReplace
    argTypes:
    - JsonNode*
    - sqlite3_context*
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179767
      start: 179757
    functionDepth: 18
    functionLinenumber: 179757
    functionLinenumberEnd: 179767
    functionName: jsonReturnJson
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - jsonResult
    - jsonInit
    - sqlite3_result_subtype
    - jsonRenderNode
    linkageType: ''
    returnType: void
    signature: "void jsonReturnJson(\n  JsonNode *pNode,            /* Node to return
      */\n  sqlite3_context *pCtx,      /* Return value for this function */\n  sqlite3_value
      **aReplace    /* Array of replacement values */\n)"
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:179779,1
    - Dst: sqlite3_result_null
      Src: /src/nss/lib/sqlite/sqlite3.c:179780,1
    - Dst: sqlite3_result_int
      Src: /src/nss/lib/sqlite/sqlite3.c:179784,1
    - Dst: sqlite3_result_int
      Src: /src/nss/lib/sqlite/sqlite3.c:179788,1
    - Dst: sqlite3_result_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:179803,1
    - Dst: sqlite3_result_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:179813,1
    - Dst: sqlite3AtoF
      Src: /src/nss/lib/sqlite/sqlite3.c:179822,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:179822,1
    - Dst: strtod
      Src: /src/nss/lib/sqlite/sqlite3.c:179824,1
    - Dst: sqlite3_result_double
      Src: /src/nss/lib/sqlite/sqlite3.c:179826,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:179834,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:179838,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:179841,1
    - Dst: sqlite3_malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:179850,1
    - Dst: sqlite3_result_error_nomem
      Src: /src/nss/lib/sqlite/sqlite3.c:179852,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:179864,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:179866,1
    - Dst: safe_isxdigit
      Src: /src/nss/lib/sqlite/sqlite3.c:179866,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:179899,1
    - Dst: jsonReturnJson
      Src: /src/nss/lib/sqlite/sqlite3.c:179905,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 133
    argCount: 3
    argNames:
    - pNode
    - pCtx
    - aReplace
    argTypes:
    - JsonNode*
    - sqlite3_context*
    - sqlite3_value**
    assertStmts:
    - condition: ( (pNode->jnFlags & JNODE_RAW)==0 )
      pos:
        line_end: 179837
        line_start: 179837
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( i<n-2 )
      pos:
        line_end: 179863
        line_start: 179863
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( safe_isxdigit(c) )
      pos:
        line_end: 179865
        line_start: 179865
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pNode->eType==JSON_NULL )
      pos:
        line_end: 179778
        line_start: 179778
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 179909
      start: 179772
    functionDepth: 19
    functionLinenumber: 179772
    functionLinenumberEnd: 179909
    functionName: jsonReturn
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_malloc
    - sqlite3_result_double
    - sqlite3AtoF
    - sqlite3_result_int64
    - assert
    - sqlite3_result_int
    - sqlite3_result_null
    - jsonReturnJson
    - sqlite3Strlen30
    - sqlite3_result_error_nomem
    - strtod
    - sqlite3_result_text
    - safe_isxdigit
    linkageType: ''
    returnType: void
    signature: "void jsonReturn(\n  JsonNode *pNode,            /* Node to return
      */\n  sqlite3_context *pCtx,      /* Return value for this function */\n  sqlite3_value
      **aReplace    /* Array of replacement values */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:179935,1
    - Dst: sqlite3_realloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:179938,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:179945,1
    - Dst: jsonParseAddNode
      Src: /src/nss/lib/sqlite/sqlite3.c:179946,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - pParse
    - eType
    - n
    - zContent
    argTypes:
    - JsonParse*
    - u32
    - u32
    - char*
    assertStmts:
    - condition: ( pParse->nNode>=pParse->nAlloc )
      pos:
        line_end: 179934
        line_start: 179934
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pParse->nNode<pParse->nAlloc )
      pos:
        line_end: 179944
        line_start: 179944
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 179947
      start: 179927
    functionDepth: 7
    functionLinenumber: 179927
    functionLinenumberEnd: 179947
    functionName: jsonParseAddNodeExpand
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - jsonParseAddNode
    - sqlite3_realloc64
    linkageType: ''
    returnType: JSON_NOINLINE
    signature: "JSON_NOINLINE jsonParseAddNodeExpand(\n  JsonParse *pParse,        /*
      Append the node to this object */\n  u32 eType,                /* Node type
      */\n  u32 n,                    /* Content size or sub-node count */\n  const
      char *zContent      /* Content */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: jsonParseAddNodeExpand
      Src: /src/nss/lib/sqlite/sqlite3.c:179962,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - pParse
    - eType
    - n
    - zContent
    argTypes:
    - JsonParse*
    - u32
    - u32
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179970
      start: 179954
    functionDepth: 8
    functionLinenumber: 179954
    functionLinenumberEnd: 179970
    functionName: jsonParseAddNode
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - jsonParseAddNodeExpand
    linkageType: ''
    returnType: int
    signature: "int jsonParseAddNode(\n  JsonParse *pParse,        /* Append the node
      to this object */\n  u32 eType,                /* Node type */\n  u32 n,                    /*
      Content size or sub-node count */\n  const char *zContent      /* Content */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: safe_isxdigit
      Src: /src/nss/lib/sqlite/sqlite3.c:179977,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - z
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179979
      start: 179975
    functionDepth: 1
    functionLinenumber: 179975
    functionLinenumberEnd: 179979
    functionName: jsonIs4Hex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - safe_isxdigit
    linkageType: ''
    returnType: int
    signature: int jsonIs4Hex(const char *z)
  - BBCount: 44
    BranchProfiles: []
    Callsites:
    - Dst: safe_isspace
      Src: /src/nss/lib/sqlite/sqlite3.c:179996,1
    - Dst: jsonParseAddNode
      Src: /src/nss/lib/sqlite/sqlite3.c:179999,1
    - Dst: safe_isspace
      Src: /src/nss/lib/sqlite/sqlite3.c:180002,1
    - Dst: jsonParseValue
      Src: /src/nss/lib/sqlite/sqlite3.c:180004,1
    - Dst: safe_isspace
      Src: /src/nss/lib/sqlite/sqlite3.c:180015,1
    - Dst: jsonParseValue
      Src: /src/nss/lib/sqlite/sqlite3.c:180018,1
    - Dst: safe_isspace
      Src: /src/nss/lib/sqlite/sqlite3.c:180022,1
    - Dst: jsonParseAddNode
      Src: /src/nss/lib/sqlite/sqlite3.c:180032,1
    - Dst: safe_isspace
      Src: /src/nss/lib/sqlite/sqlite3.c:180035,1
    - Dst: jsonParseValue
      Src: /src/nss/lib/sqlite/sqlite3.c:180037,1
    - Dst: safe_isspace
      Src: /src/nss/lib/sqlite/sqlite3.c:180044,1
    - Dst: jsonIs4Hex
      Src: /src/nss/lib/sqlite/sqlite3.c:180066,1
    - Dst: jsonParseAddNode
      Src: /src/nss/lib/sqlite/sqlite3.c:180076,1
    - Dst: strncmp
      Src: /src/nss/lib/sqlite/sqlite3.c:180080,1
    - Dst: safe_isalnum
      Src: /src/nss/lib/sqlite/sqlite3.c:180081,1
    - Dst: jsonParseAddNode
      Src: /src/nss/lib/sqlite/sqlite3.c:180082,1
    - Dst: strncmp
      Src: /src/nss/lib/sqlite/sqlite3.c:180085,1
    - Dst: safe_isalnum
      Src: /src/nss/lib/sqlite/sqlite3.c:180086,1
    - Dst: jsonParseAddNode
      Src: /src/nss/lib/sqlite/sqlite3.c:180087,1
    - Dst: strncmp
      Src: /src/nss/lib/sqlite/sqlite3.c:180090,1
    - Dst: safe_isalnum
      Src: /src/nss/lib/sqlite/sqlite3.c:180091,1
    - Dst: jsonParseAddNode
      Src: /src/nss/lib/sqlite/sqlite3.c:180092,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:180098,1
    - Dst: jsonParseAddNode
      Src: /src/nss/lib/sqlite/sqlite3.c:180128,1
    CyclomaticComplexity: 87
    EdgeCount: 87
    ICount: 173
    argCount: 2
    argNames:
    - pParse
    - i
    argTypes:
    - JsonParse*
    - u32
    assertStmts:
    - condition: ( '-' < '0' )
      pos:
        line_end: 180097
        line_start: 180097
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 180140
      start: 179989
    functionDepth: 9
    functionLinenumber: 179989
    functionLinenumberEnd: 180140
    functionName: jsonParseValue
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - strncmp
    - jsonIs4Hex
    - jsonParseValue
    - safe_isspace
    - assert
    - jsonParseAddNode
    - safe_isalnum
    linkageType: ''
    returnType: int
    signature: int jsonParseValue(JsonParse *pParse, u32 i)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:180155,1
    - Dst: jsonParseValue
      Src: /src/nss/lib/sqlite/sqlite3.c:180158,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:180161,1
    - Dst: safe_isspace
      Src: /src/nss/lib/sqlite/sqlite3.c:180162,1
    - Dst: sqlite3_result_error_nomem
      Src: /src/nss/lib/sqlite/sqlite3.c:180168,1
    - Dst: sqlite3_result_error
      Src: /src/nss/lib/sqlite/sqlite3.c:180170,1
    - Dst: jsonParseReset
      Src: /src/nss/lib/sqlite/sqlite3.c:180173,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - pParse
    - pCtx
    - zJson
    argTypes:
    - JsonParse*
    - sqlite3_context*
    - char*
    assertStmts:
    - condition: ( pParse->iDepth==0 )
      pos:
        line_end: 180160
        line_start: 180160
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 180177
      start: 180149
    functionDepth: 13
    functionLinenumber: 180149
    functionLinenumberEnd: 180177
    functionName: jsonParse
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - jsonParseReset
    - jsonParseValue
    - safe_isspace
    - memset
    - assert
    - sqlite3_result_error_nomem
    - sqlite3_result_error
    linkageType: ''
    returnType: int
    signature: "int jsonParse(\n  JsonParse *pParse,           /* Initialize and fill
      this JsonParse object */\n  sqlite3_context *pCtx,       /* Report errors here
      */\n  const char *zJson            /* Input JSON text to be parsed */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: jsonNodeSize
      Src: /src/nss/lib/sqlite/sqlite3.c:180188,1
    - Dst: jsonParseFillInParentage
      Src: /src/nss/lib/sqlite/sqlite3.c:180189,1
    - Dst: jsonNodeSize
      Src: /src/nss/lib/sqlite/sqlite3.c:180194,1
    - Dst: jsonParseFillInParentage
      Src: /src/nss/lib/sqlite/sqlite3.c:180196,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - pParse
    - i
    - iParent
    argTypes:
    - JsonParse*
    - u32
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180204
      start: 180182
    functionDepth: 1
    functionLinenumber: 180182
    functionLinenumberEnd: 180204
    functionName: jsonParseFillInParentage
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - jsonNodeSize
    - jsonParseFillInParentage
    linkageType: ''
    returnType: void
    signature: void jsonParseFillInParentage(JsonParse *pParse, u32 i, u32 iParent)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:180211,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:180212,1
    - Dst: jsonParseFillInParentage
      Src: /src/nss/lib/sqlite/sqlite3.c:180217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - pParse
    argTypes:
    - JsonParse*
    assertStmts:
    - condition: ( pParse->aUp==0 )
      pos:
        line_end: 180210
        line_start: 180210
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 180219
      start: 180209
    functionDepth: 6
    functionLinenumber: 180209
    functionLinenumberEnd: 180219
    functionName: jsonParseFindParents
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_malloc64
    - jsonParseFillInParentage
    linkageType: ''
    returnType: int
    signature: int jsonParseFindParents(JsonParse *pParse)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:180240,1
    - Dst: sqlite3_value_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:180241,1
    - Dst: sqlite3_get_auxdata
      Src: /src/nss/lib/sqlite/sqlite3.c:180250,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:180257,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:180274,1
    - Dst: sqlite3_result_error_nomem
      Src: /src/nss/lib/sqlite/sqlite3.c:180276,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:180279,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:180281,1
    - Dst: jsonParse
      Src: /src/nss/lib/sqlite/sqlite3.c:180282,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:180283,1
    - Dst: sqlite3_set_auxdata
      Src: /src/nss/lib/sqlite/sqlite3.c:180288,1
    - Dst: sqlite3_get_auxdata
      Src: /src/nss/lib/sqlite/sqlite3.c:180290,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 3
    argNames:
    - pCtx
    - argv
    - pErrCtx
    argTypes:
    - sqlite3_context*
    - sqlite3_value**
    - sqlite3_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180291
      start: 180235
    functionDepth: 16
    functionLinenumber: 180235
    functionLinenumberEnd: 180291
    functionName: jsonParseCached
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_get_auxdata
    - memcpy
    - sqlite3_malloc64
    - sqlite3_set_auxdata
    - memset
    - sqlite3_result_error_nomem
    - jsonParse
    - sqlite3_value_text
    - memcmp
    - sqlite3_free
    - sqlite3_value_bytes
    linkageType: ''
    returnType: JsonParse
    signature: "JsonParse *jsonParseCached(\n  sqlite3_context *pCtx,\n  sqlite3_value
      **argv,\n  sqlite3_context *pErrCtx\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/nss/lib/sqlite/sqlite3.c:180300,1
    - Dst: strncmp
      Src: /src/nss/lib/sqlite/sqlite3.c:180303,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - pNode
    - zKey
    - nKey
    argTypes:
    - JsonNode*
    - char*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180305
      start: 180297
    functionDepth: 0
    functionLinenumber: 180297
    functionLinenumberEnd: 180305
    functionName: jsonLabelCompare
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: int
    signature: int jsonLabelCompare(JsonNode *pNode, const char *zKey, u32 nKey)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: jsonLabelCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:180355,1
    - Dst: jsonLookupStep
      Src: /src/nss/lib/sqlite/sqlite3.c:180356,1
    - Dst: jsonNodeSize
      Src: /src/nss/lib/sqlite/sqlite3.c:180359,1
    - Dst: jsonParseAddNode
      Src: /src/nss/lib/sqlite/sqlite3.c:180369,1
    - Dst: jsonParseAddNode
      Src: /src/nss/lib/sqlite/sqlite3.c:180370,1
    - Dst: jsonLookupAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:180372,1
    - Dst: safe_isdigit
      Src: /src/nss/lib/sqlite/sqlite3.c:180382,1
    - Dst: safe_isdigit
      Src: /src/nss/lib/sqlite/sqlite3.c:180386,1
    - Dst: jsonNodeSize
      Src: /src/nss/lib/sqlite/sqlite3.c:180399,1
    - Dst: jsonLookupStep
      Src: /src/nss/lib/sqlite/sqlite3.c:180407,1
    - Dst: jsonParseAddNode
      Src: /src/nss/lib/sqlite/sqlite3.c:180412,1
    - Dst: jsonLookupAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:180413,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 105
    argCount: 5
    argNames:
    - pParse
    - iRoot
    - zPath
    - pApnd
    - pzErr
    argTypes:
    - JsonParse*
    - u32
    - char*
    - int*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180426
      start: 180319
    functionDepth: 9
    functionLinenumber: 180319
    functionLinenumberEnd: 180426
    functionName: jsonLookupStep
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - jsonLookupAppend
    - jsonLabelCompare
    - safe_isdigit
    - jsonParseAddNode
    - jsonNodeSize
    - jsonLookupStep
    linkageType: ''
    returnType: JsonNode
    signature: "JsonNode *jsonLookupStep(\n  JsonParse *pParse,      /* The JSON to
      search */\n  u32 iRoot,              /* Begin the search at this node */\n  const
      char *zPath,      /* The path to search */\n  int *pApnd,             /* Append
      nodes to complete path if not NULL */\n  const char **pzErr      /* Make *pzErr
      point to any syntax error in zPath */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: jsonParseAddNode
      Src: /src/nss/lib/sqlite/sqlite3.c:180440,1
    - Dst: jsonParseAddNode
      Src: /src/nss/lib/sqlite/sqlite3.c:180444,1
    - Dst: strncmp
      Src: /src/nss/lib/sqlite/sqlite3.c:180445,1
    - Dst: jsonParseAddNode
      Src: /src/nss/lib/sqlite/sqlite3.c:180446,1
    - Dst: jsonLookupStep
      Src: /src/nss/lib/sqlite/sqlite3.c:180451,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - pParse
    - zPath
    - pApnd
    - pzErr
    argTypes:
    - JsonParse*
    - char*
    - int*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180452
      start: 180432
    functionDepth: 10
    functionLinenumber: 180432
    functionLinenumberEnd: 180452
    functionName: jsonLookupAppend
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - jsonLookupStep
    - strncmp
    - jsonParseAddNode
    linkageType: ''
    returnType: JsonNode
    signature: "JsonNode *jsonLookupAppend(\n  JsonParse *pParse,     /* Append content
      to the JSON parse */\n  const char *zPath,     /* Description of content to
      append */\n  int *pApnd,            /* Set this flag to 1 */\n  const char **pzErr
      \    /* Make this point to any syntax error */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:180459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - zErr
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180460
      start: 180458
    functionDepth: 10
    functionLinenumber: 180458
    functionLinenumberEnd: 180460
    functionName: jsonPathSyntaxError
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mprintf
    linkageType: ''
    returnType: char
    signature: char *jsonPathSyntaxError(const char *zErr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: jsonLookupStep
      Src: /src/nss/lib/sqlite/sqlite3.c:180488,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:180493,1
    - Dst: jsonPathSyntaxError
      Src: /src/nss/lib/sqlite/sqlite3.c:180494,1
    - Dst: sqlite3_result_error
      Src: /src/nss/lib/sqlite/sqlite3.c:180496,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:180497,1
    - Dst: sqlite3_result_error_nomem
      Src: /src/nss/lib/sqlite/sqlite3.c:180499,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 4
    argNames:
    - pParse
    - zPath
    - pApnd
    - pCtx
    argTypes:
    - JsonParse*
    - char*
    - int*
    - sqlite3_context*
    assertStmts:
    - condition: ( zErr!=0 && pCtx!=0 )
      pos:
        line_end: 180492
        line_start: 180492
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 180502
      start: 180472
    functionDepth: 13
    functionLinenumber: 180472
    functionLinenumberEnd: 180502
    functionName: jsonLookup
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - jsonPathSyntaxError
    - assert
    - sqlite3_result_error_nomem
    - jsonLookupStep
    - sqlite3_free
    - sqlite3_result_error
    linkageType: ''
    returnType: JsonNode
    signature: "JsonNode *jsonLookup(\n  JsonParse *pParse,      /* The JSON to search
      */\n  const char *zPath,      /* The path to search */\n  int *pApnd,             /*
      Append nodes to complete path if not NULL */\n  sqlite3_context *pCtx   /* Report
      errors here, if not NULL */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:180513,1
    - Dst: sqlite3_result_error
      Src: /src/nss/lib/sqlite/sqlite3.c:180515,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:180516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pCtx
    - zFuncName
    argTypes:
    - sqlite3_context*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180517
      start: 180509
    functionDepth: 13
    functionLinenumber: 180509
    functionLinenumberEnd: 180517
    functionName: jsonWrongNumArgs
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mprintf
    - sqlite3_free
    - sqlite3_result_error
    linkageType: ''
    returnType: void
    signature: "void jsonWrongNumArgs(\n  sqlite3_context *pCtx,\n  const char *zFuncName\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:180524,1
    - Dst: jsonNodeSize
      Src: /src/nss/lib/sqlite/sqlite3.c:180526,1
    - Dst: jsonRemoveAllNulls
      Src: /src/nss/lib/sqlite/sqlite3.c:180532,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - pNode
    argTypes:
    - JsonNode*
    assertStmts:
    - condition: ( pNode->eType==JSON_OBJECT )
      pos:
        line_end: 180523
        line_start: 180523
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 180536
      start: 180522
    functionDepth: 1
    functionLinenumber: 180522
    functionLinenumberEnd: 180536
    functionName: jsonRemoveAllNulls
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - jsonNodeSize
    - jsonRemoveAllNulls
    linkageType: ''
    returnType: void
    signature: void jsonRemoveAllNulls(JsonNode *pNode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:180558,1
    - Dst: jsonParse
      Src: /src/nss/lib/sqlite/sqlite3.c:180559,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:180559,1
    - Dst: jsonParseFindParents
      Src: /src/nss/lib/sqlite/sqlite3.c:180560,1
    - Dst: jsonInit
      Src: /src/nss/lib/sqlite/sqlite3.c:180561,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:180565,1
    - Dst: jsonPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:180570,1
    - Dst: jsonAppendRaw
      Src: /src/nss/lib/sqlite/sqlite3.c:180573,1
    - Dst: jsonAppendRaw
      Src: /src/nss/lib/sqlite/sqlite3.c:180574,1
    - Dst: jsonAppendRaw
      Src: /src/nss/lib/sqlite/sqlite3.c:180576,1
    - Dst: jsonParseReset
      Src: /src/nss/lib/sqlite/sqlite3.c:180578,1
    - Dst: jsonResult
      Src: /src/nss/lib/sqlite/sqlite3.c:180579,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - ctx
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( argc==1 )
      pos:
        line_end: 180557
        line_start: 180557
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( x.aNode[i].eType==JSON_STRING )
      pos:
        line_end: 180564
        line_start: 180564
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 180580
      start: 180549
    functionDepth: 15
    functionLinenumber: 180549
    functionLinenumberEnd: 180580
    functionName: jsonParseFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - jsonParseReset
    - jsonAppendRaw
    - jsonInit
    - assert
    - jsonParse
    - sqlite3_value_text
    - jsonPrintf
    - jsonResult
    - jsonParseFindParents
    linkageType: ''
    returnType: void
    signature: "void jsonParseFunc(\n  sqlite3_context *ctx,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAM
      Src: /src/nss/lib/sqlite/sqlite3.c:180592,1
    - Dst: sqlite3_result_int
      Src: /src/nss/lib/sqlite/sqlite3.c:180593,1
    - Dst: sqlite3_value_subtype
      Src: /src/nss/lib/sqlite/sqlite3.c:180593,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180594
      start: 180587
    functionDepth: 11
    functionLinenumber: 180587
    functionLinenumberEnd: 180594
    functionName: jsonTest1Func
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_int
    - sqlite3_value_subtype
    - UNUSED_PARAM
    linkageType: ''
    returnType: void
    signature: "void jsonTest1Func(\n  sqlite3_context *ctx,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAM
      Src: /src/nss/lib/sqlite/sqlite3.c:180613,1
    - Dst: jsonInit
      Src: /src/nss/lib/sqlite/sqlite3.c:180615,1
    - Dst: jsonAppendValue
      Src: /src/nss/lib/sqlite/sqlite3.c:180616,1
    - Dst: jsonResult
      Src: /src/nss/lib/sqlite/sqlite3.c:180617,1
    - Dst: sqlite3_result_subtype
      Src: /src/nss/lib/sqlite/sqlite3.c:180618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180619
      start: 180607
    functionDepth: 17
    functionLinenumber: 180607
    functionLinenumberEnd: 180619
    functionName: jsonQuoteFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - jsonInit
    - sqlite3_result_subtype
    - UNUSED_PARAM
    - jsonAppendValue
    - jsonResult
    linkageType: ''
    returnType: void
    signature: "void jsonQuoteFunc(\n  sqlite3_context *ctx,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: jsonInit
      Src: /src/nss/lib/sqlite/sqlite3.c:180634,1
    - Dst: jsonAppendChar
      Src: /src/nss/lib/sqlite/sqlite3.c:180635,1
    - Dst: jsonAppendSeparator
      Src: /src/nss/lib/sqlite/sqlite3.c:180637,1
    - Dst: jsonAppendValue
      Src: /src/nss/lib/sqlite/sqlite3.c:180638,1
    - Dst: jsonAppendChar
      Src: /src/nss/lib/sqlite/sqlite3.c:180640,1
    - Dst: jsonResult
      Src: /src/nss/lib/sqlite/sqlite3.c:180641,1
    - Dst: sqlite3_result_subtype
      Src: /src/nss/lib/sqlite/sqlite3.c:180642,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - ctx
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180643
      start: 180626
    functionDepth: 17
    functionLinenumber: 180626
    functionLinenumberEnd: 180643
    functionName: jsonArrayFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - jsonInit
    - sqlite3_result_subtype
    - jsonAppendSeparator
    - jsonAppendValue
    - jsonResult
    - jsonAppendChar
    linkageType: ''
    returnType: void
    signature: "void jsonArrayFunc(\n  sqlite3_context *ctx,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: jsonParseCached
      Src: /src/nss/lib/sqlite/sqlite3.c:180663,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:180665,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:180667,1
    - Dst: jsonLookup
      Src: /src/nss/lib/sqlite/sqlite3.c:180668,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:180676,1
    - Dst: jsonNodeSize
      Src: /src/nss/lib/sqlite/sqlite3.c:180678,1
    - Dst: sqlite3_result_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:180681,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - ctx
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( (pNode->jnFlags & JNODE_APPEND)==0 )
      pos:
        line_end: 180675
        line_start: 180675
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->nNode )
      pos:
        line_end: 180664
        line_start: 180664
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 180682
      start: 180653
    functionDepth: 17
    functionLinenumber: 180653
    functionLinenumberEnd: 180682
    functionName: jsonArrayLengthFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_value_text
    - jsonParseCached
    - sqlite3_result_int64
    - assert
    - jsonNodeSize
    - jsonLookup
    linkageType: ''
    returnType: void
    signature: "void jsonArrayLengthFunc(\n  sqlite3_context *ctx,\n  int argc,\n
      \ sqlite3_value **argv\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: jsonParseCached
      Src: /src/nss/lib/sqlite/sqlite3.c:180704,1
    - Dst: jsonInit
      Src: /src/nss/lib/sqlite/sqlite3.c:180706,1
    - Dst: jsonAppendChar
      Src: /src/nss/lib/sqlite/sqlite3.c:180707,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:180709,1
    - Dst: jsonLookup
      Src: /src/nss/lib/sqlite/sqlite3.c:180710,1
    - Dst: jsonAppendSeparator
      Src: /src/nss/lib/sqlite/sqlite3.c:180713,1
    - Dst: jsonRenderNode
      Src: /src/nss/lib/sqlite/sqlite3.c:180715,1
    - Dst: jsonAppendRaw
      Src: /src/nss/lib/sqlite/sqlite3.c:180717,1
    - Dst: jsonReturn
      Src: /src/nss/lib/sqlite/sqlite3.c:180720,1
    - Dst: jsonAppendChar
      Src: /src/nss/lib/sqlite/sqlite3.c:180724,1
    - Dst: jsonResult
      Src: /src/nss/lib/sqlite/sqlite3.c:180725,1
    - Dst: sqlite3_result_subtype
      Src: /src/nss/lib/sqlite/sqlite3.c:180726,1
    - Dst: jsonReset
      Src: /src/nss/lib/sqlite/sqlite3.c:180728,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 3
    argNames:
    - ctx
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180729
      start: 180692
    functionDepth: 20
    functionLinenumber: 180692
    functionLinenumberEnd: 180729
    functionName: jsonExtractFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - jsonAppendRaw
    - jsonRenderNode
    - jsonReset
    - jsonParseCached
    - jsonInit
    - sqlite3_result_subtype
    - jsonAppendSeparator
    - jsonReturn
    - sqlite3_value_text
    - jsonAppendChar
    - jsonLookup
    - jsonResult
    linkageType: ''
    returnType: void
    signature: "void jsonExtractFunc(\n  sqlite3_context *ctx,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:180744,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:180746,1
    - Dst: jsonRemoveAllNulls
      Src: /src/nss/lib/sqlite/sqlite3.c:180748,1
    - Dst: jsonNodeSize
      Src: /src/nss/lib/sqlite/sqlite3.c:180752,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:180755,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:180756,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:180759,1
    - Dst: jsonNodeSize
      Src: /src/nss/lib/sqlite/sqlite3.c:180760,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:180761,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:180762,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:180763,1
    - Dst: strncmp
      Src: /src/nss/lib/sqlite/sqlite3.c:180764,1
    - Dst: jsonMergePatch
      Src: /src/nss/lib/sqlite/sqlite3.c:180769,1
    - Dst: jsonParseAddNode
      Src: /src/nss/lib/sqlite/sqlite3.c:180782,1
    - Dst: jsonParseAddNode
      Src: /src/nss/lib/sqlite/sqlite3.c:180783,1
    - Dst: jsonParseAddNode
      Src: /src/nss/lib/sqlite/sqlite3.c:180784,1
    - Dst: jsonRemoveAllNulls
      Src: /src/nss/lib/sqlite/sqlite3.c:180786,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 55
    argCount: 3
    argNames:
    - pParse
    - iTarget
    - pPatch
    argTypes:
    - JsonParse*
    - u32
    - JsonNode*
    assertStmts:
    - condition: ( iTarget>=0 && iTarget<pParse->nNode )
      pos:
        line_end: 180743
        line_start: 180743
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pPatch->jnFlags & JNODE_APPEND)==0 )
      pos:
        line_end: 180745
        line_start: 180745
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPatch[i].eType==JSON_STRING )
      pos:
        line_end: 180754
        line_start: 180754
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPatch[i].jnFlags & JNODE_LABEL )
      pos:
        line_end: 180755
        line_start: 180755
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pPatch[i].jnFlags & JNODE_RAW)==0 )
      pos:
        line_end: 180758
        line_start: 180758
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTarget[j].eType==JSON_STRING )
      pos:
        line_end: 180760
        line_start: 180760
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTarget[j].jnFlags & JNODE_LABEL )
      pos:
        line_end: 180761
        line_start: 180761
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pPatch[i].jnFlags & JNODE_RAW)==0 )
      pos:
        line_end: 180762
        line_start: 180762
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 180796
      start: 180733
    functionDepth: 9
    functionLinenumber: 180733
    functionLinenumberEnd: 180796
    functionName: jsonMergePatch
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - strncmp
    - jsonRemoveAllNulls
    - jsonMergePatch
    - assert
    - jsonParseAddNode
    - jsonNodeSize
    linkageType: ''
    returnType: JsonNode
    signature: "JsonNode *jsonMergePatch(\n  JsonParse *pParse,   /* The JSON parser
      that contains the TARGET */\n  u32 iTarget,         /* Node of the TARGET in
      pParse */\n  JsonNode *pPatch     /* The PATCH */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAM
      Src: /src/nss/lib/sqlite/sqlite3.c:180812,1
    - Dst: jsonParse
      Src: /src/nss/lib/sqlite/sqlite3.c:180813,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:180813,1
    - Dst: jsonParse
      Src: /src/nss/lib/sqlite/sqlite3.c:180814,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:180814,1
    - Dst: jsonParseReset
      Src: /src/nss/lib/sqlite/sqlite3.c:180815,1
    - Dst: jsonMergePatch
      Src: /src/nss/lib/sqlite/sqlite3.c:180818,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:180819,1
    - Dst: jsonReturnJson
      Src: /src/nss/lib/sqlite/sqlite3.c:180821,1
    - Dst: sqlite3_result_error_nomem
      Src: /src/nss/lib/sqlite/sqlite3.c:180823,1
    - Dst: jsonParseReset
      Src: /src/nss/lib/sqlite/sqlite3.c:180825,1
    - Dst: jsonParseReset
      Src: /src/nss/lib/sqlite/sqlite3.c:180826,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - ctx
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( pResult!=0 || x.oom )
      pos:
        line_end: 180818
        line_start: 180818
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 180827
      start: 180803
    functionDepth: 19
    functionLinenumber: 180803
    functionLinenumberEnd: 180827
    functionName: jsonPatchFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - jsonParseReset
    - jsonMergePatch
    - UNUSED_PARAM
    - assert
    - sqlite3_result_error_nomem
    - jsonParse
    - sqlite3_value_text
    - jsonReturnJson
    linkageType: ''
    returnType: void
    signature: "void jsonPatchFunc(\n  sqlite3_context *ctx,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_result_error
      Src: /src/nss/lib/sqlite/sqlite3.c:180846,1
    - Dst: jsonInit
      Src: /src/nss/lib/sqlite/sqlite3.c:180850,1
    - Dst: jsonAppendChar
      Src: /src/nss/lib/sqlite/sqlite3.c:180851,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:180853,1
    - Dst: sqlite3_result_error
      Src: /src/nss/lib/sqlite/sqlite3.c:180854,1
    - Dst: jsonReset
      Src: /src/nss/lib/sqlite/sqlite3.c:180855,1
    - Dst: jsonAppendSeparator
      Src: /src/nss/lib/sqlite/sqlite3.c:180858,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:180859,1
    - Dst: sqlite3_value_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:180860,1
    - Dst: jsonAppendString
      Src: /src/nss/lib/sqlite/sqlite3.c:180861,1
    - Dst: jsonAppendChar
      Src: /src/nss/lib/sqlite/sqlite3.c:180862,1
    - Dst: jsonAppendValue
      Src: /src/nss/lib/sqlite/sqlite3.c:180863,1
    - Dst: jsonAppendChar
      Src: /src/nss/lib/sqlite/sqlite3.c:180865,1
    - Dst: jsonResult
      Src: /src/nss/lib/sqlite/sqlite3.c:180866,1
    - Dst: sqlite3_result_subtype
      Src: /src/nss/lib/sqlite/sqlite3.c:180867,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 3
    argNames:
    - ctx
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180868
      start: 180835
    functionDepth: 17
    functionLinenumber: 180835
    functionLinenumberEnd: 180868
    functionName: jsonObjectFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - jsonAppendString
    - jsonInit
    - sqlite3_result_subtype
    - jsonAppendSeparator
    - jsonAppendValue
    - sqlite3_value_type
    - sqlite3_value_bytes
    - jsonResult
    - sqlite3_value_text
    - jsonAppendChar
    - jsonReset
    - sqlite3_result_error
    linkageType: ''
    returnType: void
    signature: "void jsonObjectFunc(\n  sqlite3_context *ctx,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: jsonParse
      Src: /src/nss/lib/sqlite/sqlite3.c:180888,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:180888,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:180889,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:180891,1
    - Dst: jsonLookup
      Src: /src/nss/lib/sqlite/sqlite3.c:180893,1
    - Dst: jsonReturnJson
      Src: /src/nss/lib/sqlite/sqlite3.c:180898,1
    - Dst: jsonParseReset
      Src: /src/nss/lib/sqlite/sqlite3.c:180901,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 3
    argNames:
    - ctx
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( x.nNode )
      pos:
        line_end: 180888
        line_start: 180888
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 180902
      start: 180877
    functionDepth: 19
    functionLinenumber: 180877
    functionLinenumberEnd: 180902
    functionName: jsonRemoveFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - jsonParseReset
    - assert
    - jsonLookup
    - jsonParse
    - sqlite3_value_text
    - jsonReturnJson
    linkageType: ''
    returnType: void
    signature: "void jsonRemoveFunc(\n  sqlite3_context *ctx,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: jsonWrongNumArgs
      Src: /src/nss/lib/sqlite/sqlite3.c:180922,1
    - Dst: jsonParse
      Src: /src/nss/lib/sqlite/sqlite3.c:180925,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:180925,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:180926,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:180928,1
    - Dst: jsonLookup
      Src: /src/nss/lib/sqlite/sqlite3.c:180929,1
    - Dst: sqlite3_result_value
      Src: /src/nss/lib/sqlite/sqlite3.c:180937,1
    - Dst: jsonReturnJson
      Src: /src/nss/lib/sqlite/sqlite3.c:180939,1
    - Dst: jsonParseReset
      Src: /src/nss/lib/sqlite/sqlite3.c:180942,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - ctx
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( x.nNode )
      pos:
        line_end: 180925
        line_start: 180925
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 180943
      start: 180910
    functionDepth: 19
    functionLinenumber: 180910
    functionLinenumberEnd: 180943
    functionName: jsonReplaceFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - jsonParseReset
    - jsonWrongNumArgs
    - assert
    - jsonReturnJson
    - jsonParse
    - sqlite3_value_text
    - sqlite3_result_value
    - jsonLookup
    linkageType: ''
    returnType: void
    signature: "void jsonReplaceFunc(\n  sqlite3_context *ctx,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_user_data
      Src: /src/nss/lib/sqlite/sqlite3.c:180967,1
    - Dst: jsonWrongNumArgs
      Src: /src/nss/lib/sqlite/sqlite3.c:180971,1
    - Dst: jsonParse
      Src: /src/nss/lib/sqlite/sqlite3.c:180974,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:180974,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:180975,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:180977,1
    - Dst: jsonLookup
      Src: /src/nss/lib/sqlite/sqlite3.c:180979,1
    - Dst: sqlite3_result_error_nomem
      Src: /src/nss/lib/sqlite/sqlite3.c:180981,1
    - Dst: sqlite3_result_value
      Src: /src/nss/lib/sqlite/sqlite3.c:180991,1
    - Dst: jsonReturnJson
      Src: /src/nss/lib/sqlite/sqlite3.c:180993,1
    - Dst: jsonParseReset
      Src: /src/nss/lib/sqlite/sqlite3.c:180996,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 3
    argNames:
    - ctx
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( x.nNode )
      pos:
        line_end: 180974
        line_start: 180974
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 180997
      start: 180957
    functionDepth: 19
    functionLinenumber: 180957
    functionLinenumberEnd: 180997
    functionName: jsonSetFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - jsonParseReset
    - jsonWrongNumArgs
    - jsonParse
    - assert
    - jsonReturnJson
    - sqlite3_result_error_nomem
    - sqlite3_user_data
    - sqlite3_value_text
    - sqlite3_result_value
    - jsonLookup
    linkageType: ''
    returnType: void
    signature: "void jsonSetFunc(\n  sqlite3_context *ctx,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: jsonParseCached
      Src: /src/nss/lib/sqlite/sqlite3.c:181015,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:181018,1
    - Dst: jsonLookup
      Src: /src/nss/lib/sqlite/sqlite3.c:181019,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:181024,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - ctx
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181026
      start: 181006
    functionDepth: 17
    functionLinenumber: 181006
    functionLinenumberEnd: 181026
    functionName: jsonTypeFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_text
    - sqlite3_value_text
    - jsonParseCached
    - jsonLookup
    linkageType: ''
    returnType: void
    signature: "void jsonTypeFunc(\n  sqlite3_context *ctx,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAM
      Src: /src/nss/lib/sqlite/sqlite3.c:181040,1
    - Dst: jsonParseCached
      Src: /src/nss/lib/sqlite/sqlite3.c:181041,1
    - Dst: sqlite3_result_int
      Src: /src/nss/lib/sqlite/sqlite3.c:181042,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ctx
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181043
      start: 181034
    functionDepth: 17
    functionLinenumber: 181034
    functionLinenumberEnd: 181043
    functionName: jsonValidFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_int
    - jsonParseCached
    - UNUSED_PARAM
    linkageType: ''
    returnType: void
    signature: "void jsonValidFunc(\n  sqlite3_context *ctx,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAM
      Src: /src/nss/lib/sqlite/sqlite3.c:181060,1
    - Dst: sqlite3_aggregate_context
      Src: /src/nss/lib/sqlite/sqlite3.c:181061,1
    - Dst: jsonInit
      Src: /src/nss/lib/sqlite/sqlite3.c:181064,1
    - Dst: jsonAppendChar
      Src: /src/nss/lib/sqlite/sqlite3.c:181065,1
    - Dst: jsonAppendChar
      Src: /src/nss/lib/sqlite/sqlite3.c:181067,1
    - Dst: jsonAppendValue
      Src: /src/nss/lib/sqlite/sqlite3.c:181070,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - ctx
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181072
      start: 181054
    functionDepth: 17
    functionLinenumber: 181054
    functionLinenumberEnd: 181072
    functionName: jsonArrayStep
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_aggregate_context
    - jsonInit
    - UNUSED_PARAM
    - jsonAppendValue
    - jsonAppendChar
    linkageType: ''
    returnType: void
    signature: "void jsonArrayStep(\n  sqlite3_context *ctx,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_aggregate_context
      Src: /src/nss/lib/sqlite/sqlite3.c:181075,1
    - Dst: jsonAppendChar
      Src: /src/nss/lib/sqlite/sqlite3.c:181078,1
    - Dst: sqlite3_result_error_nomem
      Src: /src/nss/lib/sqlite/sqlite3.c:181080,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:181081,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:181083,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:181087,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:181091,1
    - Dst: sqlite3_result_subtype
      Src: /src/nss/lib/sqlite/sqlite3.c:181093,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - ctx
    - isFinal
    argTypes:
    - sqlite3_context*
    - int
    assertStmts:
    - condition: ( pStr->bStatic )
      pos:
        line_end: 181080
        line_start: 181080
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 181094
      start: 181073
    functionDepth: 14
    functionLinenumber: 181073
    functionLinenumberEnd: 181094
    functionName: jsonArrayCompute
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_aggregate_context
    - sqlite3_result_subtype
    - assert
    - sqlite3_result_error_nomem
    - jsonAppendChar
    - sqlite3_result_text
    linkageType: ''
    returnType: void
    signature: void jsonArrayCompute(sqlite3_context *ctx, int isFinal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: jsonArrayCompute
      Src: /src/nss/lib/sqlite/sqlite3.c:181096,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - sqlite3_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181097
      start: 181095
    functionDepth: 15
    functionLinenumber: 181095
    functionLinenumberEnd: 181097
    functionName: jsonArrayValue
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - jsonArrayCompute
    linkageType: ''
    returnType: void
    signature: void jsonArrayValue(sqlite3_context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: jsonArrayCompute
      Src: /src/nss/lib/sqlite/sqlite3.c:181099,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - sqlite3_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181100
      start: 181098
    functionDepth: 15
    functionLinenumber: 181098
    functionLinenumberEnd: 181100
    functionName: jsonArrayFinal
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - jsonArrayCompute
    linkageType: ''
    returnType: void
    signature: void jsonArrayFinal(sqlite3_context *ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAM
      Src: /src/nss/lib/sqlite/sqlite3.c:181118,1
    - Dst: UNUSED_PARAM
      Src: /src/nss/lib/sqlite/sqlite3.c:181119,1
    - Dst: sqlite3_aggregate_context
      Src: /src/nss/lib/sqlite/sqlite3.c:181120,1
    - Dst: NEVER
      Src: /src/nss/lib/sqlite/sqlite3.c:181124,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:181128,1
    - Dst: memmove
      Src: /src/nss/lib/sqlite/sqlite3.c:181136,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - ctx
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( i<pStr->nUsed )
      pos:
        line_end: 181127
        line_start: 181127
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 181137
      start: 181109
    functionDepth: 13
    functionLinenumber: 181109
    functionLinenumberEnd: 181137
    functionName: jsonGroupInverse
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - NEVER
    - sqlite3_aggregate_context
    - UNUSED_PARAM
    - assert
    - memmove
    linkageType: ''
    returnType: void
    signature: "void jsonGroupInverse(\n  sqlite3_context *ctx,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAM
      Src: /src/nss/lib/sqlite/sqlite3.c:181156,1
    - Dst: sqlite3_aggregate_context
      Src: /src/nss/lib/sqlite/sqlite3.c:181157,1
    - Dst: jsonInit
      Src: /src/nss/lib/sqlite/sqlite3.c:181160,1
    - Dst: jsonAppendChar
      Src: /src/nss/lib/sqlite/sqlite3.c:181161,1
    - Dst: jsonAppendChar
      Src: /src/nss/lib/sqlite/sqlite3.c:181163,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:181166,1
    - Dst: sqlite3_value_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:181167,1
    - Dst: jsonAppendString
      Src: /src/nss/lib/sqlite/sqlite3.c:181168,1
    - Dst: jsonAppendChar
      Src: /src/nss/lib/sqlite/sqlite3.c:181169,1
    - Dst: jsonAppendValue
      Src: /src/nss/lib/sqlite/sqlite3.c:181170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - ctx
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181172
      start: 181148
    functionDepth: 17
    functionLinenumber: 181148
    functionLinenumberEnd: 181172
    functionName: jsonObjectStep
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - jsonAppendString
    - sqlite3_aggregate_context
    - jsonInit
    - UNUSED_PARAM
    - jsonAppendValue
    - sqlite3_value_text
    - jsonAppendChar
    - sqlite3_value_bytes
    linkageType: ''
    returnType: void
    signature: "void jsonObjectStep(\n  sqlite3_context *ctx,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_aggregate_context
      Src: /src/nss/lib/sqlite/sqlite3.c:181175,1
    - Dst: jsonAppendChar
      Src: /src/nss/lib/sqlite/sqlite3.c:181177,1
    - Dst: sqlite3_result_error_nomem
      Src: /src/nss/lib/sqlite/sqlite3.c:181179,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:181180,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:181182,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:181186,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:181190,1
    - Dst: sqlite3_result_subtype
      Src: /src/nss/lib/sqlite/sqlite3.c:181192,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - ctx
    - isFinal
    argTypes:
    - sqlite3_context*
    - int
    assertStmts:
    - condition: ( pStr->bStatic )
      pos:
        line_end: 181179
        line_start: 181179
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 181193
      start: 181173
    functionDepth: 14
    functionLinenumber: 181173
    functionLinenumberEnd: 181193
    functionName: jsonObjectCompute
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_aggregate_context
    - sqlite3_result_subtype
    - assert
    - sqlite3_result_error_nomem
    - jsonAppendChar
    - sqlite3_result_text
    linkageType: ''
    returnType: void
    signature: void jsonObjectCompute(sqlite3_context *ctx, int isFinal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: jsonObjectCompute
      Src: /src/nss/lib/sqlite/sqlite3.c:181195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - sqlite3_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181196
      start: 181194
    functionDepth: 15
    functionLinenumber: 181194
    functionLinenumberEnd: 181196
    functionName: jsonObjectValue
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - jsonObjectCompute
    linkageType: ''
    returnType: void
    signature: void jsonObjectValue(sqlite3_context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: jsonObjectCompute
      Src: /src/nss/lib/sqlite/sqlite3.c:181198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - sqlite3_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181199
      start: 181197
    functionDepth: 15
    functionLinenumber: 181197
    functionLinenumberEnd: 181199
    functionName: jsonObjectFinal
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - jsonObjectCompute
    linkageType: ''
    returnType: void
    signature: void jsonObjectFinal(sqlite3_context *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAM
      Src: /src/nss/lib/sqlite/sqlite3.c:181247,1
    - Dst: UNUSED_PARAM
      Src: /src/nss/lib/sqlite/sqlite3.c:181248,1
    - Dst: UNUSED_PARAM
      Src: /src/nss/lib/sqlite/sqlite3.c:181249,1
    - Dst: UNUSED_PARAM
      Src: /src/nss/lib/sqlite/sqlite3.c:181250,1
    - Dst: sqlite3_declare_vtab
      Src: /src/nss/lib/sqlite/sqlite3.c:181251,1
    - Dst: sqlite3_malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:181255,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:181257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 6
    argNames:
    - db
    - pAux
    - argc
    - argv
    - ppVtab
    - pzErr
    argTypes:
    - sqlite3*
    - void*
    - int
    - char**
    - sqlite3_vtab**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181260
      start: 181222
    functionDepth: 26
    functionLinenumber: 181222
    functionLinenumberEnd: 181260
    functionName: jsonEachConnect
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3_malloc
    - sqlite3_declare_vtab
    - UNUSED_PARAM
    linkageType: ''
    returnType: int
    signature: "int jsonEachConnect(\n  sqlite3 *db,\n  void *pAux,\n  int argc, const
      char *const*argv,\n  sqlite3_vtab **ppVtab,\n  char **pzErr\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:181264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pVtab
    argTypes:
    - sqlite3_vtab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181266
      start: 181263
    functionDepth: 3
    functionLinenumber: 181263
    functionLinenumberEnd: 181266
    functionName: jsonEachDisconnect
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int jsonEachDisconnect(sqlite3_vtab *pVtab)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAM
      Src: /src/nss/lib/sqlite/sqlite3.c:181272,1
    - Dst: sqlite3_malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:181273,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:181275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - p
    - ppCursor
    argTypes:
    - sqlite3_vtab*
    - sqlite3_vtab_cursor**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181278
      start: 181269
    functionDepth: 6
    functionLinenumber: 181269
    functionLinenumberEnd: 181278
    functionName: jsonEachOpenEach
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3_malloc
    - UNUSED_PARAM
    linkageType: ''
    returnType: int
    signature: int jsonEachOpenEach(sqlite3_vtab *p, sqlite3_vtab_cursor **ppCursor)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: jsonEachOpenEach
      Src: /src/nss/lib/sqlite/sqlite3.c:181282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - p
    - ppCursor
    argTypes:
    - sqlite3_vtab*
    - sqlite3_vtab_cursor**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181288
      start: 181281
    functionDepth: 7
    functionLinenumber: 181281
    functionLinenumberEnd: 181288
    functionName: jsonEachOpenTree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - jsonEachOpenEach
    linkageType: ''
    returnType: int
    signature: int jsonEachOpenTree(sqlite3_vtab *p, sqlite3_vtab_cursor **ppCursor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:181293,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:181294,1
    - Dst: jsonParseReset
      Src: /src/nss/lib/sqlite/sqlite3.c:181295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - p
    argTypes:
    - JsonEachCursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181302
      start: 181292
    functionDepth: 4
    functionLinenumber: 181292
    functionLinenumberEnd: 181302
    functionName: jsonEachCursorReset
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - jsonParseReset
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void jsonEachCursorReset(JsonEachCursor *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: jsonEachCursorReset
      Src: /src/nss/lib/sqlite/sqlite3.c:181307,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:181308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cur
    argTypes:
    - sqlite3_vtab_cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181310
      start: 181305
    functionDepth: 5
    functionLinenumber: 181305
    functionLinenumberEnd: 181310
    functionName: jsonEachClose
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - jsonEachCursorReset
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int jsonEachClose(sqlite3_vtab_cursor *cur)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cur
    argTypes:
    - sqlite3_vtab_cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181317
      start: 181314
    functionDepth: 0
    functionLinenumber: 181314
    functionLinenumberEnd: 181317
    functionName: jsonEachEof
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int jsonEachEof(sqlite3_vtab_cursor *cur)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: jsonNodeSize
      Src: /src/nss/lib/sqlite/sqlite3.c:181341,1
    - Dst: jsonNodeSize
      Src: /src/nss/lib/sqlite/sqlite3.c:181346,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 1
    argNames:
    - cur
    argTypes:
    - sqlite3_vtab_cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181357
      start: 181320
    functionDepth: 1
    functionLinenumber: 181320
    functionLinenumberEnd: 181357
    functionName: jsonEachNext
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - jsonNodeSize
    linkageType: ''
    returnType: int
    signature: int jsonEachNext(sqlite3_vtab_cursor *cur)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: jsonAppendChar
      Src: /src/nss/lib/sqlite/sqlite3.c:181369,1
    - Dst: jsonEachComputePath
      Src: /src/nss/lib/sqlite/sqlite3.c:181373,1
    - Dst: jsonPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:181377,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:181379,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:181381,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:181382,1
    - Dst: jsonPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:181383,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - p
    - pStr
    - i
    argTypes:
    - JsonEachCursor*
    - JsonString*
    - u32
    assertStmts:
    - condition: ( pNode->eType==JSON_STRING )
      pos:
        line_end: 181380
        line_start: 181380
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pUp->eType==JSON_OBJECT )
      pos:
        line_end: 181378
        line_start: 181378
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pNode->jnFlags & JNODE_LABEL )
      pos:
        line_end: 181381
        line_start: 181381
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 181385
      start: 181361
    functionDepth: 12
    functionLinenumber: 181361
    functionLinenumberEnd: 181385
    functionName: jsonEachComputePath
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - jsonAppendChar
    - jsonEachComputePath
    - jsonPrintf
    linkageType: ''
    returnType: void
    signature: "void jsonEachComputePath(\n  JsonEachCursor *p,       /* The cursor
      */\n  JsonString *pStr,        /* Write the path here */\n  u32 i                    /*
      Path to this element */\n)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: jsonReturn
      Src: /src/nss/lib/sqlite/sqlite3.c:181399,1
    - Dst: sqlite3_result_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:181408,1
    - Dst: jsonReturn
      Src: /src/nss/lib/sqlite/sqlite3.c:181414,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:181419,1
    - Dst: jsonReturn
      Src: /src/nss/lib/sqlite/sqlite3.c:181425,1
    - Dst: sqlite3_result_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:181429,1
    - Dst: sqlite3_result_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:181435,1
    - Dst: jsonInit
      Src: /src/nss/lib/sqlite/sqlite3.c:181441,1
    - Dst: jsonEachComputePath
      Src: /src/nss/lib/sqlite/sqlite3.c:181443,1
    - Dst: jsonAppendRaw
      Src: /src/nss/lib/sqlite/sqlite3.c:181446,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:181446,1
    - Dst: jsonAppendChar
      Src: /src/nss/lib/sqlite/sqlite3.c:181448,1
    - Dst: jsonPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:181451,1
    - Dst: jsonPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:181453,1
    - Dst: jsonResult
      Src: /src/nss/lib/sqlite/sqlite3.c:181456,1
    - Dst: jsonInit
      Src: /src/nss/lib/sqlite/sqlite3.c:181462,1
    - Dst: jsonEachComputePath
      Src: /src/nss/lib/sqlite/sqlite3.c:181463,1
    - Dst: jsonResult
      Src: /src/nss/lib/sqlite/sqlite3.c:181464,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:181473,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:181477,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:181478,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 91
    argCount: 3
    argNames:
    - cur
    - ctx
    - i
    argTypes:
    - sqlite3_vtab_cursor*
    - sqlite3_context*
    - int
    assertStmts:
    - condition: ( i==JEACH_JSON )
      pos:
        line_end: 181476
        line_start: 181476
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 181483
      start: 181388
    functionDepth: 20
    functionLinenumber: 181388
    functionLinenumberEnd: 181483
    functionName: jsonEachColumn
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - jsonAppendRaw
    - jsonResult
    - jsonInit
    - sqlite3_result_int64
    - assert
    - jsonEachComputePath
    - jsonReturn
    - jsonAppendChar
    - jsonPrintf
    - sqlite3_result_text
    - strlen
    linkageType: ''
    returnType: int
    signature: "int jsonEachColumn(\n  sqlite3_vtab_cursor *cur,   /* The cursor */\n
      \ sqlite3_context *ctx,       /* First argument to sqlite3_result_...() */\n
      \ int i                       /* Which column to return */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cur
    - pRowid
    argTypes:
    - sqlite3_vtab_cursor*
    - sqlite_int64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181490
      start: 181486
    functionDepth: 0
    functionLinenumber: 181486
    functionLinenumberEnd: 181490
    functionName: jsonEachRowid
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int jsonEachRowid(sqlite3_vtab_cursor *cur, sqlite_int64 *pRowid)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:181509,1
    - Dst: UNUSED_PARAM
      Src: /src/nss/lib/sqlite/sqlite3.c:181510,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:181518,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 2
    argNames:
    - tab
    - pIdxInfo
    argTypes:
    - sqlite3_vtab*
    - sqlite3_index_info*
    assertStmts:
    - condition: ( JEACH_ROOT == JEACH_JSON+1 )
      pos:
        line_end: 181508
        line_start: 181508
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iCol==0 || iCol==1 )
      pos:
        line_end: 181517
        line_start: 181517
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 181552
      start: 181497
    functionDepth: 1
    functionLinenumber: 181497
    functionLinenumberEnd: 181552
    functionName: jsonEachBestIndex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - UNUSED_PARAM
    linkageType: ''
    returnType: int
    signature: "int jsonEachBestIndex(\n  sqlite3_vtab *tab,\n  sqlite3_index_info
      *pIdxInfo\n)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAM
      Src: /src/nss/lib/sqlite/sqlite3.c:181565,1
    - Dst: UNUSED_PARAM
      Src: /src/nss/lib/sqlite/sqlite3.c:181566,1
    - Dst: jsonEachCursorReset
      Src: /src/nss/lib/sqlite/sqlite3.c:181567,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:181569,1
    - Dst: sqlite3_value_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:181571,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:181572,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:181574,1
    - Dst: jsonParse
      Src: /src/nss/lib/sqlite/sqlite3.c:181575,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:181578,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:181579,1
    - Dst: jsonEachCursorReset
      Src: /src/nss/lib/sqlite/sqlite3.c:181582,1
    - Dst: jsonParseFindParents
      Src: /src/nss/lib/sqlite/sqlite3.c:181584,1
    - Dst: jsonEachCursorReset
      Src: /src/nss/lib/sqlite/sqlite3.c:181585,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:181591,1
    - Dst: sqlite3_value_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:181593,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:181594,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:181596,1
    - Dst: jsonLookupStep
      Src: /src/nss/lib/sqlite/sqlite3.c:181600,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:181603,1
    - Dst: jsonPathSyntaxError
      Src: /src/nss/lib/sqlite/sqlite3.c:181604,1
    - Dst: jsonEachCursorReset
      Src: /src/nss/lib/sqlite/sqlite3.c:181605,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 72
    argCount: 5
    argNames:
    - cur
    - idxNum
    - idxStr
    - argc
    - argv
    argTypes:
    - sqlite3_vtab_cursor*
    - int
    - char*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181631
      start: 181555
    functionDepth: 16
    functionLinenumber: 181555
    functionLinenumberEnd: 181631
    functionName: jsonEachFilter
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - jsonEachCursorReset
    - memcpy
    - sqlite3_malloc64
    - UNUSED_PARAM
    - jsonPathSyntaxError
    - sqlite3_mprintf
    - jsonParseFindParents
    - jsonParse
    - sqlite3_value_text
    - jsonLookupStep
    - sqlite3_free
    - sqlite3_value_bytes
    linkageType: ''
    returnType: int
    signature: "int jsonEachFilter(\n  sqlite3_vtab_cursor *cur,\n  int idxNum, const
      char *idxStr,\n  int argc, sqlite3_value **argv\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_create_function
      Src: /src/nss/lib/sqlite/sqlite3.c:181749,1
    - Dst: sqlite3_create_window_function
      Src: /src/nss/lib/sqlite/sqlite3.c:181756,1
    - Dst: sqlite3_create_module
      Src: /src/nss/lib/sqlite/sqlite3.c:181764,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181768
      start: 181696
    functionDepth: 14
    functionLinenumber: 181696
    functionLinenumberEnd: 181768
    functionName: sqlite3Json1Init
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_create_function
    - sqlite3_create_module
    - sqlite3_create_window_function
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Json1Init(sqlite3 *db)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SQLITE_EXTENSION_INIT2
      Src: /src/nss/lib/sqlite/sqlite3.c:181780,1
    - Dst: sqlite3Json1Init
      Src: /src/nss/lib/sqlite/sqlite3.c:181782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - db
    - pzErrMsg
    - pApi
    argTypes:
    - sqlite3*
    - char**
    - sqlite3_api_routines*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181783
      start: 181773
    functionDepth: 15
    functionLinenumber: 181773
    functionLinenumberEnd: 181783
    functionName: sqlite3_json_init
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Json1Init
    - SQLITE_EXTENSION_INIT2
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_json_init(\n  sqlite3 *db, \n  char **pzErrMsg,
      \n  const sqlite3_api_routines *pApi\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181877
      start: 181876
    functionDepth: 0
    functionLinenumber: 181876
    functionLinenumberEnd: 181877
    functionName: UNUSED_PARAMETER
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 157
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNUSED_PARAMETER(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181992
      start: 181991
    functionDepth: 0
    functionLinenumber: 181991
    functionLinenumberEnd: 181992
    functionName: RTREE_IS_CORRUPT
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RTREE_IS_CORRUPT(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182023
      start: 182022
    functionDepth: 0
    functionLinenumber: 182022
    functionLinenumberEnd: 182023
    functionName: RTREE_MINCELLS
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RTREE_MINCELLS(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182024
      start: 182023
    functionDepth: 0
    functionLinenumber: 182023
    functionLinenumberEnd: 182024
    functionName: RTREE_REINSERT
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RTREE_REINSERT(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182066
      start: 182065
    functionDepth: 0
    functionLinenumber: 182065
    functionLinenumberEnd: 182066
    functionName: RTREE_OF_CURSOR
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RTREE_OF_CURSOR(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - coord
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182085
      start: 182084
    functionDepth: 0
    functionLinenumber: 182084
    functionLinenumberEnd: 182085
    functionName: DCOORD
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DCOORD(coord)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - coord
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182091
      start: 182086
    functionDepth: 0
    functionLinenumber: 182086
    functionLinenumberEnd: 182091
    functionName: DCOORD
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DCOORD(coord)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - pNode
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182131
      start: 182130
    functionDepth: 0
    functionLinenumber: 182130
    functionLinenumberEnd: 182131
    functionName: NCELL
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NCELL(pNode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182178
      start: 182177
    functionDepth: 0
    functionLinenumber: 182177
    functionLinenumberEnd: 182178
    functionName: MAX
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 40
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAX(x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182181
      start: 182180
    functionDepth: 0
    functionLinenumber: 182180
    functionLinenumberEnd: 182181
    functionName: MIN
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 111
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIN(x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - u8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182241
      start: 182239
    functionDepth: 0
    functionLinenumber: 182239
    functionLinenumberEnd: 182241
    functionName: readInt16
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int readInt16(u8 *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:182243,1
    - Dst: _byteswap_ulong
      Src: /src/nss/lib/sqlite/sqlite3.c:182245,1
    - Dst: __builtin_bswap32
      Src: /src/nss/lib/sqlite/sqlite3.c:182247,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - p
    - pCoord
    argTypes:
    - u8*
    - RtreeCoord*
    assertStmts:
    - condition: ( ((((char*)p) - (char*)0)&3)==0 )
      pos:
        line_end: 182242
        line_start: 182242
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 182258
      start: 182242
    functionDepth: 0
    functionLinenumber: 182242
    functionLinenumberEnd: 182258
    functionName: readCoord
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - __builtin_bswap32
    - _byteswap_ulong
    linkageType: ''
    returnType: void
    signature: void readCoord(u8 *p, RtreeCoord *pCoord)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:182262,1
    - Dst: _byteswap_uint64
      Src: /src/nss/lib/sqlite/sqlite3.c:182263,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:182266,1
    - Dst: __builtin_bswap64
      Src: /src/nss/lib/sqlite/sqlite3.c:182267,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:182270,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - u8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182284
      start: 182259
    functionDepth: 1
    functionLinenumber: 182259
    functionLinenumberEnd: 182284
    functionName: readInt64
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - __builtin_bswap64
    - memcpy
    - _byteswap_uint64
    linkageType: ''
    returnType: i64
    signature: i64 readInt64(u8 *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p
    - i
    argTypes:
    - u8*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182294
      start: 182291
    functionDepth: 0
    functionLinenumber: 182291
    functionLinenumberEnd: 182294
    functionName: writeInt16
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void writeInt16(u8 *p, int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:182297,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:182298,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:182299,1
    - Dst: __builtin_bswap32
      Src: /src/nss/lib/sqlite/sqlite3.c:182301,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:182302,1
    - Dst: _byteswap_ulong
      Src: /src/nss/lib/sqlite/sqlite3.c:182304,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:182305,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:182308,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - p
    - pCoord
    argTypes:
    - u8*
    - RtreeCoord*
    assertStmts:
    - condition: ( ((((char*)p) - (char*)0)&3)==0 )
      pos:
        line_end: 182296
        line_start: 182296
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sizeof(RtreeCoord)==4 )
      pos:
        line_end: 182297
        line_start: 182297
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sizeof(u32)==4 )
      pos:
        line_end: 182298
        line_start: 182298
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 182317
      start: 182295
    functionDepth: 1
    functionLinenumber: 182295
    functionLinenumberEnd: 182317
    functionName: writeCoord
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - __builtin_bswap32
    - memcpy
    - _byteswap_ulong
    linkageType: ''
    returnType: int
    signature: int writeCoord(u8 *p, RtreeCoord *pCoord)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_bswap64
      Src: /src/nss/lib/sqlite/sqlite3.c:182320,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:182321,1
    - Dst: _byteswap_uint64
      Src: /src/nss/lib/sqlite/sqlite3.c:182323,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:182324,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:182326,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - p
    - i
    argTypes:
    - u8*
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182338
      start: 182318
    functionDepth: 1
    functionLinenumber: 182318
    functionLinenumberEnd: 182338
    functionName: writeInt64
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - __builtin_bswap64
    - memcpy
    - _byteswap_uint64
    linkageType: ''
    returnType: int
    signature: int writeInt64(u8 *p, i64 i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:182345,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - RtreeNode*
    assertStmts:
    - condition: ( p->nRef>0 )
      pos:
        line_end: 182344
        line_start: 182344
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 182348
      start: 182343
    functionDepth: 0
    functionLinenumber: 182343
    functionLinenumberEnd: 182348
    functionName: nodeReference
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void nodeReference(RtreeNode *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:182354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pRtree
    - p
    argTypes:
    - Rtree*
    - RtreeNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182356
      start: 182353
    functionDepth: 0
    functionLinenumber: 182353
    functionLinenumberEnd: 182356
    functionName: nodeZero
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void nodeZero(Rtree *pRtree, RtreeNode *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iNode
    argTypes:
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182364
      start: 182362
    functionDepth: 0
    functionLinenumber: 182362
    functionLinenumberEnd: 182364
    functionName: nodeHash
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int nodeHash(i64 iNode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nodeHash
      Src: /src/nss/lib/sqlite/sqlite3.c:182372,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - pRtree
    - iNode
    argTypes:
    - Rtree*
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182374
      start: 182370
    functionDepth: 1
    functionLinenumber: 182370
    functionLinenumberEnd: 182374
    functionName: nodeHashLookup
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - nodeHash
    linkageType: ''
    returnType: RtreeNode
    signature: RtreeNode *nodeHashLookup(Rtree *pRtree, i64 iNode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:182381,1
    - Dst: nodeHash
      Src: /src/nss/lib/sqlite/sqlite3.c:182382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - pRtree
    - pNode
    argTypes:
    - Rtree*
    - RtreeNode*
    assertStmts:
    - condition: ( pNode->pNext==0 )
      pos:
        line_end: 182380
        line_start: 182380
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 182385
      start: 182379
    functionDepth: 1
    functionLinenumber: 182379
    functionLinenumberEnd: 182385
    functionName: nodeHashInsert
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - nodeHash
    linkageType: ''
    returnType: void
    signature: void nodeHashInsert(Rtree *pRtree, RtreeNode *pNode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nodeHash
      Src: /src/nss/lib/sqlite/sqlite3.c:182393,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:182394,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - pRtree
    - pNode
    argTypes:
    - Rtree*
    - RtreeNode*
    assertStmts:
    - condition: (*pp)
      pos:
        line_end: 182393
        line_start: 182393
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 182398
      start: 182390
    functionDepth: 1
    functionLinenumber: 182390
    functionLinenumberEnd: 182398
    functionName: nodeHashDelete
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - nodeHash
    linkageType: ''
    returnType: void
    signature: void nodeHashDelete(Rtree *pRtree, RtreeNode *pNode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:182408,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:182410,1
    - Dst: nodeReference
      Src: /src/nss/lib/sqlite/sqlite3.c:182416,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - pRtree
    - pParent
    argTypes:
    - Rtree*
    - RtreeNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182419
      start: 182406
    functionDepth: 6
    functionLinenumber: 182406
    functionLinenumberEnd: 182419
    functionName: nodeNew
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3_malloc64
    - nodeReference
    linkageType: ''
    returnType: RtreeNode
    signature: RtreeNode *nodeNew(Rtree *pRtree, RtreeNode *pParent)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_blob_close
      Src: /src/nss/lib/sqlite/sqlite3.c:182428,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - pRtree
    argTypes:
    - Rtree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182430
      start: 182424
    functionDepth: 27
    functionLinenumber: 182424
    functionLinenumberEnd: 182430
    functionName: nodeBlobReset
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_blob_close
    linkageType: ''
    returnType: void
    signature: void nodeBlobReset(Rtree *pRtree)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - pNode
    - pParent
    argTypes:
    - RtreeNode*
    - RtreeNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182442
      start: 182436
    functionDepth: 0
    functionLinenumber: 182436
    functionLinenumberEnd: 182442
    functionName: nodeInParentChain
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int nodeInParentChain(const RtreeNode *pNode, const RtreeNode *pParent)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: nodeHashLookup
      Src: /src/nss/lib/sqlite/sqlite3.c:182459,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:182460,1
    - Dst: nodeInParentChain
      Src: /src/nss/lib/sqlite/sqlite3.c:182462,1
    - Dst: RTREE_IS_CORRUPT
      Src: /src/nss/lib/sqlite/sqlite3.c:182463,1
    - Dst: sqlite3_blob_reopen
      Src: /src/nss/lib/sqlite/sqlite3.c:182477,1
    - Dst: nodeBlobReset
      Src: /src/nss/lib/sqlite/sqlite3.c:182480,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:182485,1
    - Dst: sqlite3_blob_open
      Src: /src/nss/lib/sqlite/sqlite3.c:182487,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:182489,1
    - Dst: nodeBlobReset
      Src: /src/nss/lib/sqlite/sqlite3.c:182492,1
    - Dst: RTREE_IS_CORRUPT
      Src: /src/nss/lib/sqlite/sqlite3.c:182498,1
    - Dst: sqlite3_blob_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:182500,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:182501,1
    - Dst: sqlite3_blob_read
      Src: /src/nss/lib/sqlite/sqlite3.c:182512,1
    - Dst: readInt16
      Src: /src/nss/lib/sqlite/sqlite3.c:182524,1
    - Dst: RTREE_IS_CORRUPT
      Src: /src/nss/lib/sqlite/sqlite3.c:182527,1
    - Dst: NCELL
      Src: /src/nss/lib/sqlite/sqlite3.c:182536,1
    - Dst: RTREE_IS_CORRUPT
      Src: /src/nss/lib/sqlite/sqlite3.c:182538,1
    - Dst: nodeReference
      Src: /src/nss/lib/sqlite/sqlite3.c:182544,1
    - Dst: nodeHashInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:182545,1
    - Dst: RTREE_IS_CORRUPT
      Src: /src/nss/lib/sqlite/sqlite3.c:182548,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:182554,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 84
    argCount: 4
    argNames:
    - pRtree
    - iNode
    - pParent
    - ppNode
    argTypes:
    - Rtree*
    - i64
    - RtreeNode*
    - RtreeNode**
    assertStmts:
    - condition: ( !pParent || !pNode->pParent || pNode->pParent==pParent )
      pos:
        line_end: 182459
        line_start: 182459
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 182560
      start: 182447
    functionDepth: 29
    functionLinenumber: 182447
    functionLinenumberEnd: 182560
    functionName: nodeAcquire
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_blob_read
    - sqlite3_malloc64
    - nodeHashInsert
    - sqlite3_blob_reopen
    - sqlite3_blob_bytes
    - NCELL
    - nodeHashLookup
    - readInt16
    - assert
    - nodeBlobReset
    - sqlite3_mprintf
    - RTREE_IS_CORRUPT
    - nodeInParentChain
    - sqlite3_blob_open
    - nodeReference
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int nodeAcquire(\n  Rtree *pRtree,             /* R-tree structure
      */\n  i64 iNode,                 /* Node number to load */\n  RtreeNode *pParent,
      \       /* Either the parent node or NULL */\n  RtreeNode **ppNode         /*
      OUT: Acquired node */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: writeInt64
      Src: /src/nss/lib/sqlite/sqlite3.c:182573,1
    - Dst: writeCoord
      Src: /src/nss/lib/sqlite/sqlite3.c:182575,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - pRtree
    - pNode
    - pCell
    - iCell
    argTypes:
    - Rtree*
    - RtreeNode*
    - RtreeCell*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182578
      start: 182565
    functionDepth: 2
    functionLinenumber: 182565
    functionLinenumberEnd: 182578
    functionName: nodeOverwriteCell
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - writeCoord
    - writeInt64
    linkageType: ''
    returnType: void
    signature: "void nodeOverwriteCell(\n  Rtree *pRtree,             /* The overall
      R-Tree */\n  RtreeNode *pNode,          /* The node into which the cell is to
      be written */\n  RtreeCell *pCell,          /* The cell to write */\n  int iCell
      \                 /* Index into pNode into which pCell is written */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCELL
      Src: /src/nss/lib/sqlite/sqlite3.c:182586,1
    - Dst: memmove
      Src: /src/nss/lib/sqlite/sqlite3.c:182587,1
    - Dst: writeInt16
      Src: /src/nss/lib/sqlite/sqlite3.c:182588,1
    - Dst: NCELL
      Src: /src/nss/lib/sqlite/sqlite3.c:182588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - pRtree
    - pNode
    - iCell
    argTypes:
    - Rtree*
    - RtreeNode*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182590
      start: 182583
    functionDepth: 1
    functionLinenumber: 182583
    functionLinenumberEnd: 182590
    functionName: nodeDeleteCell
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - NCELL
    - writeInt16
    - memmove
    linkageType: ''
    returnType: void
    signature: void nodeDeleteCell(Rtree *pRtree, RtreeNode *pNode, int iCell)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCELL
      Src: /src/nss/lib/sqlite/sqlite3.c:182607,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:182609,1
    - Dst: nodeOverwriteCell
      Src: /src/nss/lib/sqlite/sqlite3.c:182611,1
    - Dst: writeInt16
      Src: /src/nss/lib/sqlite/sqlite3.c:182612,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - pRtree
    - pNode
    - pCell
    argTypes:
    - Rtree*
    - RtreeNode*
    - RtreeCell*
    assertStmts:
    - condition: ( nCell<=nMaxCell )
      pos:
        line_end: 182608
        line_start: 182608
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 182617
      start: 182598
    functionDepth: 3
    functionLinenumber: 182598
    functionLinenumberEnd: 182617
    functionName: nodeInsertCell
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - NCELL
    - nodeOverwriteCell
    - writeInt16
    linkageType: ''
    returnType: int
    signature: "int nodeInsertCell(\n  Rtree *pRtree,                /* The overall
      R-Tree */\n  RtreeNode *pNode,             /* Write new cell into this node
      */\n  RtreeCell *pCell              /* The cell to be inserted */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:182627,1
    - Dst: sqlite3_bind_null
      Src: /src/nss/lib/sqlite/sqlite3.c:182629,1
    - Dst: sqlite3_bind_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:182631,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:182632,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:182634,1
    - Dst: sqlite3_bind_null
      Src: /src/nss/lib/sqlite/sqlite3.c:182635,1
    - Dst: sqlite3_last_insert_rowid
      Src: /src/nss/lib/sqlite/sqlite3.c:182637,1
    - Dst: nodeHashInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:182638,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - pRtree
    - pNode
    argTypes:
    - Rtree*
    - RtreeNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182642
      start: 182622
    functionDepth: 27
    functionLinenumber: 182622
    functionLinenumberEnd: 182642
    functionName: nodeWrite
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_bind_null
    - sqlite3_step
    - sqlite3_reset
    - nodeHashInsert
    - sqlite3_bind_blob
    - sqlite3_last_insert_rowid
    - sqlite3_bind_int64
    linkageType: ''
    returnType: int
    signature: int nodeWrite(Rtree *pRtree, RtreeNode *pNode)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:182651,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:182652,1
    - Dst: nodeRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:182660,1
    - Dst: nodeWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:182663,1
    - Dst: nodeHashDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:182665,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:182666,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - pRtree
    - pNode
    argTypes:
    - Rtree*
    - RtreeNode*
    assertStmts:
    - condition: ( pNode->nRef>0 )
      pos:
        line_end: 182650
        line_start: 182650
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pRtree->nNodeRef>0 )
      pos:
        line_end: 182651
        line_start: 182651
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 182670
      start: 182648
    functionDepth: 28
    functionLinenumber: 182648
    functionLinenumberEnd: 182670
    functionName: nodeRelease
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - nodeRelease
    - nodeWrite
    - assert
    - nodeHashDelete
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int nodeRelease(Rtree *pRtree, RtreeNode *pNode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:182682,1
    - Dst: NCELL
      Src: /src/nss/lib/sqlite/sqlite3.c:182682,1
    - Dst: readInt64
      Src: /src/nss/lib/sqlite/sqlite3.c:182683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - pRtree
    - pNode
    - iCell
    argTypes:
    - Rtree*
    - RtreeNode*
    - int
    assertStmts:
    - condition: ( iCell<NCELL(pNode) )
      pos:
        line_end: 182681
        line_start: 182681
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 182684
      start: 182677
    functionDepth: 2
    functionLinenumber: 182677
    functionLinenumberEnd: 182684
    functionName: nodeGetRowid
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - NCELL
    - readInt64
    linkageType: ''
    returnType: i64
    signature: "i64 nodeGetRowid(\n  Rtree *pRtree,       /* The overall R-Tree */\n
      \ RtreeNode *pNode,    /* The node from which to extract the ID */\n  int iCell
      \           /* The cell index from which to extract the ID */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: readCoord
      Src: /src/nss/lib/sqlite/sqlite3.c:182696,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - pRtree
    - pNode
    - iCell
    - iCoord
    - pCoord
    argTypes:
    - Rtree*
    - RtreeNode*
    - int
    - int
    - RtreeCoord*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182697
      start: 182689
    functionDepth: 1
    functionLinenumber: 182689
    functionLinenumberEnd: 182697
    functionName: nodeGetCoord
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - readCoord
    linkageType: ''
    returnType: void
    signature: "void nodeGetCoord(\n  Rtree *pRtree,               /* The overall
      R-Tree */\n  RtreeNode *pNode,            /* The node from which to extract
      a coordinate */\n  int iCell,                   /* The index of the cell within
      the node */\n  int iCoord,                  /* Which coordinate to extract */\n
      \ RtreeCoord *pCoord           /* OUT: Space to write result to */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nodeGetRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:182712,1
    - Dst: readCoord
      Src: /src/nss/lib/sqlite/sqlite3.c:182716,1
    - Dst: readCoord
      Src: /src/nss/lib/sqlite/sqlite3.c:182717,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - pRtree
    - pNode
    - iCell
    - pCell
    argTypes:
    - Rtree*
    - RtreeNode*
    - int
    - RtreeCell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182721
      start: 182703
    functionDepth: 3
    functionLinenumber: 182703
    functionLinenumberEnd: 182721
    functionName: nodeGetCell
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - nodeGetRowid
    - readCoord
    linkageType: ''
    returnType: void
    signature: "void nodeGetCell(\n  Rtree *pRtree,               /* The overall R-Tree
      */\n  RtreeNode *pNode,            /* The node containing the cell to be read
      */\n  int iCell,                   /* Index of the cell within the node */\n
      \ RtreeCell *pCell             /* OUT: Write the cell contents here */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rtreeInit
      Src: /src/nss/lib/sqlite/sqlite3.c:182741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - db
    - pAux
    - argc
    - argv
    - ppVtab
    - pzErr
    argTypes:
    - sqlite3*
    - void*
    - int
    - char**
    - sqlite3_vtab**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182742
      start: 182734
    functionDepth: 1
    functionLinenumber: 182734
    functionLinenumberEnd: 182742
    functionName: rtreeCreate
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - rtreeInit
    linkageType: ''
    returnType: int
    signature: "int rtreeCreate(\n  sqlite3 *db,\n  void *pAux,\n  int argc, const
      char *const*argv,\n  sqlite3_vtab **ppVtab,\n  char **pzErr\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rtreeInit
      Src: /src/nss/lib/sqlite/sqlite3.c:182754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - db
    - pAux
    - argc
    - argv
    - ppVtab
    - pzErr
    argTypes:
    - sqlite3*
    - void*
    - int
    - char**
    - sqlite3_vtab**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182755
      start: 182747
    functionDepth: 1
    functionLinenumber: 182747
    functionLinenumberEnd: 182755
    functionName: rtreeConnect
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - rtreeInit
    linkageType: ''
    returnType: int
    signature: "int rtreeConnect(\n  sqlite3 *db,\n  void *pAux,\n  int argc, const
      char *const*argv,\n  sqlite3_vtab **ppVtab,\n  char **pzErr\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pRtree
    argTypes:
    - Rtree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182762
      start: 182760
    functionDepth: 0
    functionLinenumber: 182760
    functionLinenumberEnd: 182762
    functionName: rtreeReference
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rtreeReference(Rtree *pRtree)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:182772,1
    - Dst: nodeBlobReset
      Src: /src/nss/lib/sqlite/sqlite3.c:182773,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:182774,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:182775,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:182776,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:182777,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:182778,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:182779,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:182780,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:182781,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:182782,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:182783,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:182784,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:182785,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - pRtree
    argTypes:
    - Rtree*
    assertStmts:
    - condition: ( pRtree->nCursor==0 )
      pos:
        line_end: 182771
        line_start: 182771
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pRtree->nNodeRef==0 || pRtree->bCorrupt )
      pos:
        line_end: 182773
        line_start: 182773
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 182787
      start: 182768
    functionDepth: 28
    functionLinenumber: 182768
    functionLinenumberEnd: 182787
    functionName: rtreeRelease
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - nodeBlobReset
    - sqlite3_finalize
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void rtreeRelease(Rtree *pRtree)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rtreeRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:182793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pVtab
    argTypes:
    - sqlite3_vtab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182795
      start: 182792
    functionDepth: 29
    functionLinenumber: 182792
    functionLinenumberEnd: 182795
    functionName: rtreeDisconnect
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - rtreeRelease
    linkageType: ''
    returnType: int
    signature: int rtreeDisconnect(sqlite3_vtab *pVtab)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:182803,1
    - Dst: nodeBlobReset
      Src: /src/nss/lib/sqlite/sqlite3.c:182814,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/sqlite/sqlite3.c:182815,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:182816,1
    - Dst: rtreeRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:182819,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - pVtab
    argTypes:
    - sqlite3_vtab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182823
      start: 182800
    functionDepth: 29
    functionLinenumber: 182800
    functionLinenumberEnd: 182823
    functionName: rtreeDestroy
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - nodeBlobReset
    - sqlite3_mprintf
    - rtreeRelease
    - sqlite3_exec
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int rtreeDestroy(sqlite3_vtab *pVtab)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:182833,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:182835,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - pVTab
    - ppCursor
    argTypes:
    - sqlite3_vtab*
    - sqlite3_vtab_cursor**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182843
      start: 182828
    functionDepth: 6
    functionLinenumber: 182828
    functionLinenumberEnd: 182843
    functionName: rtreeOpen
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3_malloc64
    linkageType: ''
    returnType: int
    signature: int rtreeOpen(sqlite3_vtab *pVTab, sqlite3_vtab_cursor **ppCursor)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_rtree_query_info*::xDelUser
      Src: /src/nss/lib/sqlite/sqlite3.c:182855,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:182856,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:182859,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - pCsr
    argTypes:
    - RtreeCursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182862
      start: 182849
    functionDepth: 3
    functionLinenumber: 182849
    functionLinenumberEnd: 182862
    functionName: freeCursorConstraints
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_rtree_query_info*::xDelUser
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void freeCursorConstraints(RtreeCursor *pCsr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:182871,1
    - Dst: freeCursorConstraints
      Src: /src/nss/lib/sqlite/sqlite3.c:182872,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:182873,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:182874,1
    - Dst: nodeRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:182875,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:182876,1
    - Dst: nodeBlobReset
      Src: /src/nss/lib/sqlite/sqlite3.c:182878,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - cur
    argTypes:
    - sqlite3_vtab_cursor*
    assertStmts:
    - condition: ( pRtree->nCursor>0 )
      pos:
        line_end: 182870
        line_start: 182870
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 182880
      start: 182867
    functionDepth: 29
    functionLinenumber: 182867
    functionLinenumberEnd: 182880
    functionName: rtreeClose
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - nodeRelease
    - assert
    - nodeBlobReset
    - freeCursorConstraints
    - sqlite3_finalize
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int rtreeClose(sqlite3_vtab_cursor *cur)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cur
    argTypes:
    - sqlite3_vtab_cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182891
      start: 182888
    functionDepth: 0
    functionLinenumber: 182888
    functionLinenumberEnd: 182891
    functionName: rtreeEof
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int rtreeEof(sqlite3_vtab_cursor *cur)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - eInt
    - ','
    - a
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182918
      start: 182917
    functionDepth: 0
    functionLinenumber: 182917
    functionLinenumberEnd: 182918
    functionName: RTREE_DECODE_COORD
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RTREE_DECODE_COORD(eInt, a, r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - eInt
    - ','
    - a
    - ','
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182926
      start: 182925
    functionDepth: 0
    functionLinenumber: 182925
    functionLinenumberEnd: 182926
    functionName: RTREE_DECODE_COORD
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RTREE_DECODE_COORD(eInt, a, r)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:182957,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:182958,1
    - Dst: readInt64
      Src: /src/nss/lib/sqlite/sqlite3.c:182961,1
    - Dst: readCoord
      Src: /src/nss/lib/sqlite/sqlite3.c:182967,1
    - Dst: readCoord
      Src: /src/nss/lib/sqlite/sqlite3.c:182968,1
    - Dst: readCoord
      Src: /src/nss/lib/sqlite/sqlite3.c:182969,1
    - Dst: readCoord
      Src: /src/nss/lib/sqlite/sqlite3.c:182970,1
    - Dst: readCoord
      Src: /src/nss/lib/sqlite/sqlite3.c:182971,1
    - Dst: readCoord
      Src: /src/nss/lib/sqlite/sqlite3.c:182972,1
    - Dst: readCoord
      Src: /src/nss/lib/sqlite/sqlite3.c:182973,1
    - Dst: readCoord
      Src: /src/nss/lib/sqlite/sqlite3.c:182974,1
    - Dst: readCoord
      Src: /src/nss/lib/sqlite/sqlite3.c:182975,1
    - Dst: readCoord
      Src: /src/nss/lib/sqlite/sqlite3.c:182976,1
    - Dst: readCoord
      Src: /src/nss/lib/sqlite/sqlite3.c:182982,1
    - Dst: readCoord
      Src: /src/nss/lib/sqlite/sqlite3.c:182983,1
    - Dst: readCoord
      Src: /src/nss/lib/sqlite/sqlite3.c:182984,1
    - Dst: readCoord
      Src: /src/nss/lib/sqlite/sqlite3.c:182985,1
    - Dst: readCoord
      Src: /src/nss/lib/sqlite/sqlite3.c:182986,1
    - Dst: readCoord
      Src: /src/nss/lib/sqlite/sqlite3.c:182987,1
    - Dst: readCoord
      Src: /src/nss/lib/sqlite/sqlite3.c:182988,1
    - Dst: readCoord
      Src: /src/nss/lib/sqlite/sqlite3.c:182989,1
    - Dst: readCoord
      Src: /src/nss/lib/sqlite/sqlite3.c:182990,1
    - Dst: readCoord
      Src: /src/nss/lib/sqlite/sqlite3.c:182991,1
    - Dst: RtreeConstraint*::u::xGeom
      Src: /src/nss/lib/sqlite/sqlite3.c:182996,1
    - Dst: RtreeConstraint*::u::xQueryFunc
      Src: /src/nss/lib/sqlite/sqlite3.c:183005,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 82
    argCount: 6
    argNames:
    - pConstraint
    - eInt
    - pCellData
    - pSearch
    - prScore
    - peWithin
    argTypes:
    - RtreeConstraint*
    - int
    - u8*
    - RtreeSearchPoint*
    - sqlite3_rtree_dbl*
    - int*
    assertStmts:
    - condition: ( pConstraint->op==RTREE_MATCH || pConstraint->op==RTREE_QUERY )
      pos:
        line_end: 182956
        line_start: 182956
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nCoord==2 || nCoord==4 || nCoord==6 || nCoord==8 || nCoord==10
        )
      pos:
        line_end: 182957
        line_start: 182957
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 183012
      start: 182943
    functionDepth: 2
    functionLinenumber: 182943
    functionLinenumberEnd: 183012
    functionName: rtreeCallbackConstraint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - readInt64
    - RtreeConstraint*::u::xGeom
    - assert
    - readCoord
    - RtreeConstraint*::u::xQueryFunc
    linkageType: ''
    returnType: int
    signature: "int rtreeCallbackConstraint(\n  RtreeConstraint *pConstraint,  /*
      The constraint to test */\n  int eInt,                      /* True if RTree
      holding integer coordinates */\n  u8 *pCellData,                 /* Raw cell
      content */\n  RtreeSearchPoint *pSearch,     /* Container of this cell */\n
      \ sqlite3_rtree_dbl *prScore,    /* OUT: score for the cell */\n  int *peWithin
      \                 /* OUT: visibility of the cell */\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:183032,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:183034,1
    - Dst: RTREE_DECODE_COORD
      Src: /src/nss/lib/sqlite/sqlite3.c:183039,1
    - Dst: RTREE_DECODE_COORD
      Src: /src/nss/lib/sqlite/sqlite3.c:183047,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 4
    argNames:
    - p
    - eInt
    - pCellData
    - peWithin
    argTypes:
    - RtreeConstraint*
    - int
    - u8*
    - int*
    assertStmts:
    - condition: "(p->op==RTREE_LE || p->op==RTREE_LT || p->op==RTREE_GE \n      ||
        p->op==RTREE_GT || p->op==RTREE_EQ )"
      pos:
        line_end: 183032
        line_start: 183031
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( ((((char*)pCellData) - (char*)0)&3)==0 )
      pos:
        line_end: 183033
        line_start: 183033
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 183052
      start: 183019
    functionDepth: 1
    functionLinenumber: 183019
    functionLinenumberEnd: 183052
    functionName: rtreeNonleafConstraint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - RTREE_DECODE_COORD
    linkageType: ''
    returnType: void
    signature: "void rtreeNonleafConstraint(\n  RtreeConstraint *p,        /* The
      constraint to test */\n  int eInt,                  /* True if RTree holds integer
      coordinates */\n  u8 *pCellData,             /* Raw cell content as appears
      on disk */\n  int *peWithin              /* Adjust downward, as appropriate
      */\n)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:183072,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:183075,1
    - Dst: RTREE_DECODE_COORD
      Src: /src/nss/lib/sqlite/sqlite3.c:183076,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 28
    argCount: 4
    argNames:
    - p
    - eInt
    - pCellData
    - peWithin
    argTypes:
    - RtreeConstraint*
    - int
    - u8*
    - int*
    assertStmts:
    - condition: "(p->op==RTREE_LE || p->op==RTREE_LT || p->op==RTREE_GE \n      ||
        p->op==RTREE_GT || p->op==RTREE_EQ )"
      pos:
        line_end: 183072
        line_start: 183071
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( ((((char*)pCellData) - (char*)0)&3)==0 )
      pos:
        line_end: 183074
        line_start: 183074
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 183085
      start: 183064
    functionDepth: 1
    functionLinenumber: 183064
    functionLinenumberEnd: 183085
    functionName: rtreeLeafConstraint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - RTREE_DECODE_COORD
    linkageType: ''
    returnType: void
    signature: "void rtreeLeafConstraint(\n  RtreeConstraint *p,        /* The constraint
      to test */\n  int eInt,                  /* True if RTree holds integer coordinates
      */\n  u8 *pCellData,             /* Raw cell content as appears on disk */\n
      \ int *peWithin              /* Adjust downward, as appropriate */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCELL
      Src: /src/nss/lib/sqlite/sqlite3.c:183098,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:183099,1
    - Dst: nodeGetRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:183101,1
    - Dst: RTREE_IS_CORRUPT
      Src: /src/nss/lib/sqlite/sqlite3.c:183106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - pRtree
    - pNode
    - iRowid
    - piIndex
    argTypes:
    - Rtree*
    - RtreeNode*
    - i64
    - int*
    assertStmts:
    - condition: ( nCell<200 )
      pos:
        line_end: 183098
        line_start: 183098
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 183108
      start: 183091
    functionDepth: 3
    functionLinenumber: 183091
    functionLinenumberEnd: 183108
    functionName: nodeRowidIndex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - nodeGetRowid
    - NCELL
    - RTREE_IS_CORRUPT
    linkageType: ''
    returnType: int
    signature: "int nodeRowidIndex(\n  Rtree *pRtree, \n  RtreeNode *pNode, \n  i64
      iRowid,\n  int *piIndex\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nodeRowidIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:183117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pRtree
    - pNode
    - piIndex
    argTypes:
    - Rtree*
    - RtreeNode*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183121
      start: 183114
    functionDepth: 4
    functionLinenumber: 183114
    functionLinenumberEnd: 183121
    functionName: nodeParentIndex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - nodeRowidIndex
    linkageType: ''
    returnType: int
    signature: int nodeParentIndex(Rtree *pRtree, RtreeNode *pNode, int *piIndex)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - pA
    - pB
    argTypes:
    - RtreeSearchPoint*
    - RtreeSearchPoint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183142
      start: 183133
    functionDepth: 0
    functionLinenumber: 183133
    functionLinenumberEnd: 183142
    functionName: rtreeSearchPointCompare
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int rtreeSearchPointCompare(\n  const RtreeSearchPoint *pA,\n  const
      RtreeSearchPoint *pB\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:183149,1
    - Dst: nodeRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:183155,1
    - Dst: RTREE_OF_CURSOR
      Src: /src/nss/lib/sqlite/sqlite3.c:183155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - p
    - i
    - j
    argTypes:
    - RtreeCursor*
    - int
    - int
    assertStmts:
    - condition: ( i<j )
      pos:
        line_end: 183148
        line_start: 183148
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 183163
      start: 183147
    functionDepth: 29
    functionLinenumber: 183147
    functionLinenumberEnd: 183163
    functionName: rtreeSearchPointSwap
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - nodeRelease
    - RTREE_OF_CURSOR
    linkageType: ''
    returnType: void
    signature: void rtreeSearchPointSwap(RtreeCursor *p, int i, int j)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pCur
    argTypes:
    - RtreeCursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183170
      start: 183168
    functionDepth: 0
    functionLinenumber: 183168
    functionLinenumberEnd: 183170
    functionName: rtreeSearchPointFirst
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RtreeSearchPoint
    signature: RtreeSearchPoint *rtreeSearchPointFirst(RtreeCursor *pCur)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:183178,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:183179,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:183181,1
    - Dst: nodeAcquire
      Src: /src/nss/lib/sqlite/sqlite3.c:183183,1
    - Dst: RTREE_OF_CURSOR
      Src: /src/nss/lib/sqlite/sqlite3.c:183183,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - pCur
    - pRC
    argTypes:
    - RtreeCursor*
    - int*
    assertStmts:
    - condition: ( ii==0 || ii==1 )
      pos:
        line_end: 183177
        line_start: 183177
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCur->bPoint || pCur->nPoint )
      pos:
        line_end: 183178
        line_start: 183178
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pRC!=0 )
      pos:
        line_end: 183180
        line_start: 183180
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 183186
      start: 183175
    functionDepth: 30
    functionLinenumber: 183175
    functionLinenumberEnd: 183186
    functionName: rtreeNodeOfFirstSearchPoint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - RTREE_OF_CURSOR
    - nodeAcquire
    linkageType: ''
    returnType: RtreeNode
    signature: RtreeNode *rtreeNodeOfFirstSearchPoint(RtreeCursor *pCur, int *pRC)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_realloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:183200,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:183209,1
    - Dst: rtreeSearchPointCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:183214,1
    - Dst: rtreeSearchPointSwap
      Src: /src/nss/lib/sqlite/sqlite3.c:183215,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - pCur
    - rScore
    - iLevel
    argTypes:
    - RtreeCursor*
    - RtreeDValue
    - u8
    assertStmts:
    - condition: ( iLevel<=RTREE_MAX_DEPTH )
      pos:
        line_end: 183208
        line_start: 183208
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 183220
      start: 183191
    functionDepth: 30
    functionLinenumber: 183191
    functionLinenumberEnd: 183220
    functionName: rtreeEnqueue
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - rtreeSearchPointSwap
    - sqlite3_realloc64
    - rtreeSearchPointCompare
    linkageType: ''
    returnType: RtreeSearchPoint
    signature: "RtreeSearchPoint *rtreeEnqueue(\n  RtreeCursor *pCur,    /* The cursor
      */\n  RtreeDValue rScore,   /* Score for the new search point */\n  u8 iLevel
      \            /* Level for the new search point */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rtreeSearchPointFirst
      Src: /src/nss/lib/sqlite/sqlite3.c:183232,1
    - Dst: rtreeEnqueue
      Src: /src/nss/lib/sqlite/sqlite3.c:183240,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:183244,1
    - Dst: nodeRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:183247,1
    - Dst: RTREE_OF_CURSOR
      Src: /src/nss/lib/sqlite/sqlite3.c:183247,1
    - Dst: rtreeEnqueue
      Src: /src/nss/lib/sqlite/sqlite3.c:183257,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - pCur
    - rScore
    - iLevel
    argTypes:
    - RtreeCursor*
    - RtreeDValue
    - u8
    assertStmts:
    - condition: ( pCur->aNode[ii]==0 )
      pos:
        line_end: 183243
        line_start: 183243
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 183259
      start: 183226
    functionDepth: 31
    functionLinenumber: 183226
    functionLinenumberEnd: 183259
    functionName: rtreeSearchPointNew
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - nodeRelease
    - assert
    - rtreeSearchPointFirst
    - rtreeEnqueue
    - RTREE_OF_CURSOR
    linkageType: ''
    returnType: RtreeSearchPoint
    signature: "RtreeSearchPoint *rtreeSearchPointNew(\n  RtreeCursor *pCur,    /*
      The cursor */\n  RtreeDValue rScore,   /* Score for the new search point */\n
      \ u8 iLevel             /* Level for the new search point */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/lib/sqlite/sqlite3.c:183264,1
    - Dst: printf
      Src: /src/nss/lib/sqlite/sqlite3.c:183264,1
    - Dst: printf
      Src: /src/nss/lib/sqlite/sqlite3.c:183265,1
    - Dst: printf
      Src: /src/nss/lib/sqlite/sqlite3.c:183270,1
    - Dst: printf
      Src: /src/nss/lib/sqlite/sqlite3.c:183272,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - p
    - idx
    - pCur
    argTypes:
    - RtreeSearchPoint*
    - int
    - RtreeCursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183274
      start: 183263
    functionDepth: 0
    functionLinenumber: 183263
    functionLinenumberEnd: 183274
    functionName: tracePoint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void tracePoint(RtreeSearchPoint *p, int idx, RtreeCursor *pCur)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nss/lib/sqlite/sqlite3.c:183277,1
    - Dst: tracePoint
      Src: /src/nss/lib/sqlite/sqlite3.c:183279,1
    - Dst: printf
      Src: /src/nss/lib/sqlite/sqlite3.c:183282,1
    - Dst: tracePoint
      Src: /src/nss/lib/sqlite/sqlite3.c:183283,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - pCur
    - zPrefix
    argTypes:
    - RtreeCursor*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183285
      start: 183275
    functionDepth: 1
    functionLinenumber: 183275
    functionLinenumberEnd: 183285
    functionName: traceQueue
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - tracePoint
    - printf
    linkageType: ''
    returnType: void
    signature: void traceQueue(RtreeCursor *pCur, const char *zPrefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - A
    - ','
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183287
      start: 183286
    functionDepth: 0
    functionLinenumber: 183286
    functionLinenumberEnd: 183287
    functionName: RTREE_QUEUE_TRACE
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RTREE_QUEUE_TRACE(A,B)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:183296,1
    - Dst: nodeRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:183298,1
    - Dst: RTREE_OF_CURSOR
      Src: /src/nss/lib/sqlite/sqlite3.c:183298,1
    - Dst: rtreeSearchPointCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:183315,1
    - Dst: rtreeSearchPointCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:183316,1
    - Dst: rtreeSearchPointSwap
      Src: /src/nss/lib/sqlite/sqlite3.c:183317,1
    - Dst: rtreeSearchPointCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:183323,1
    - Dst: rtreeSearchPointSwap
      Src: /src/nss/lib/sqlite/sqlite3.c:183324,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 1
    argNames:
    - p
    argTypes:
    - RtreeCursor*
    assertStmts:
    - condition: ( i==0 || i==1 )
      pos:
        line_end: 183295
        line_start: 183295
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 183332
      start: 183293
    functionDepth: 30
    functionLinenumber: 183293
    functionLinenumberEnd: 183332
    functionName: rtreeSearchPointPop
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - nodeRelease
    - rtreeSearchPointSwap
    - rtreeSearchPointCompare
    - assert
    - RTREE_OF_CURSOR
    linkageType: ''
    returnType: void
    signature: void rtreeSearchPointPop(RtreeCursor *p)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: RTREE_OF_CURSOR
      Src: /src/nss/lib/sqlite/sqlite3.c:183343,1
    - Dst: rtreeSearchPointFirst
      Src: /src/nss/lib/sqlite/sqlite3.c:183354,1
    - Dst: rtreeNodeOfFirstSearchPoint
      Src: /src/nss/lib/sqlite/sqlite3.c:183355,1
    - Dst: NCELL
      Src: /src/nss/lib/sqlite/sqlite3.c:183357,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:183358,1
    - Dst: rtreeCallbackConstraint
      Src: /src/nss/lib/sqlite/sqlite3.c:183366,1
    - Dst: rtreeLeafConstraint
      Src: /src/nss/lib/sqlite/sqlite3.c:183370,1
    - Dst: rtreeNonleafConstraint
      Src: /src/nss/lib/sqlite/sqlite3.c:183372,1
    - Dst: readInt64
      Src: /src/nss/lib/sqlite/sqlite3.c:183380,1
    - Dst: RTREE_QUEUE_TRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:183387,1
    - Dst: rtreeSearchPointPop
      Src: /src/nss/lib/sqlite/sqlite3.c:183388,1
    - Dst: rtreeSearchPointNew
      Src: /src/nss/lib/sqlite/sqlite3.c:183391,1
    - Dst: RTREE_QUEUE_TRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:183396,1
    - Dst: RTREE_QUEUE_TRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:183400,1
    - Dst: rtreeSearchPointPop
      Src: /src/nss/lib/sqlite/sqlite3.c:183401,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 57
    argCount: 1
    argNames:
    - pCur
    argTypes:
    - RtreeCursor*
    assertStmts:
    - condition: ( nCell<200 )
      pos:
        line_end: 183357
        line_start: 183357
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 183406
      start: 183341
    functionDepth: 32
    functionLinenumber: 183341
    functionLinenumberEnd: 183406
    functionName: rtreeStepToLeaf
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - rtreeLeafConstraint
    - readInt64
    - rtreeSearchPointNew
    - NCELL
    - rtreeSearchPointPop
    - assert
    - rtreeNodeOfFirstSearchPoint
    - rtreeSearchPointFirst
    - RTREE_QUEUE_TRACE
    - rtreeCallbackConstraint
    - rtreeNonleafConstraint
    - RTREE_OF_CURSOR
    linkageType: ''
    returnType: int
    signature: int rtreeStepToLeaf(RtreeCursor *pCur)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RTREE_QUEUE_TRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:183416,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:183419,1
    - Dst: rtreeSearchPointPop
      Src: /src/nss/lib/sqlite/sqlite3.c:183421,1
    - Dst: rtreeStepToLeaf
      Src: /src/nss/lib/sqlite/sqlite3.c:183422,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - pVtabCursor
    argTypes:
    - sqlite3_vtab_cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183424
      start: 183411
    functionDepth: 33
    functionLinenumber: 183411
    functionLinenumberEnd: 183424
    functionName: rtreeNext
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - rtreeStepToLeaf
    - sqlite3_reset
    - rtreeSearchPointPop
    - RTREE_QUEUE_TRACE
    linkageType: ''
    returnType: int
    signature: int rtreeNext(sqlite3_vtab_cursor *pVtabCursor)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rtreeSearchPointFirst
      Src: /src/nss/lib/sqlite/sqlite3.c:183431,1
    - Dst: rtreeNodeOfFirstSearchPoint
      Src: /src/nss/lib/sqlite/sqlite3.c:183433,1
    - Dst: nodeGetRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:183435,1
    - Dst: RTREE_OF_CURSOR
      Src: /src/nss/lib/sqlite/sqlite3.c:183435,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - pVtabCursor
    - pRowid
    argTypes:
    - sqlite3_vtab_cursor*
    - sqlite_int64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183438
      start: 183429
    functionDepth: 31
    functionLinenumber: 183429
    functionLinenumberEnd: 183438
    functionName: rtreeRowid
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - nodeGetRowid
    - rtreeNodeOfFirstSearchPoint
    - rtreeSearchPointFirst
    - RTREE_OF_CURSOR
    linkageType: ''
    returnType: int
    signature: int rtreeRowid(sqlite3_vtab_cursor *pVtabCursor, sqlite_int64 *pRowid)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: rtreeSearchPointFirst
      Src: /src/nss/lib/sqlite/sqlite3.c:183446,1
    - Dst: rtreeNodeOfFirstSearchPoint
      Src: /src/nss/lib/sqlite/sqlite3.c:183449,1
    - Dst: sqlite3_result_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:183454,1
    - Dst: nodeGetRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:183454,1
    - Dst: nodeGetCoord
      Src: /src/nss/lib/sqlite/sqlite3.c:183456,1
    - Dst: sqlite3_result_double
      Src: /src/nss/lib/sqlite/sqlite3.c:183459,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:183463,1
    - Dst: sqlite3_result_int
      Src: /src/nss/lib/sqlite/sqlite3.c:183464,1
    - Dst: sqlite3_prepare_v3
      Src: /src/nss/lib/sqlite/sqlite3.c:183469,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:183473,1
    - Dst: nodeGetRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:183474,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:183475,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:183479,1
    - Dst: sqlite3_result_value
      Src: /src/nss/lib/sqlite/sqlite3.c:183484,1
    - Dst: sqlite3_column_value
      Src: /src/nss/lib/sqlite/sqlite3.c:183485,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 3
    argNames:
    - cur
    - ctx
    - i
    argTypes:
    - sqlite3_vtab_cursor*
    - sqlite3_context*
    - int
    assertStmts:
    - condition: ( pRtree->eCoordType==RTREE_COORD_INT32 )
      pos:
        line_end: 183462
        line_start: 183462
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 183488
      start: 183443
    functionDepth: 31
    functionLinenumber: 183443
    functionLinenumberEnd: 183488
    functionName: rtreeColumn
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_prepare_v3
    - sqlite3_step
    - sqlite3_reset
    - sqlite3_result_value
    - sqlite3_column_value
    - sqlite3_result_double
    - sqlite3_result_int64
    - assert
    - sqlite3_result_int
    - rtreeNodeOfFirstSearchPoint
    - rtreeSearchPointFirst
    - sqlite3_bind_int64
    - nodeGetRowid
    - nodeGetCoord
    linkageType: ''
    returnType: int
    signature: int rtreeColumn(sqlite3_vtab_cursor *cur, sqlite3_context *ctx, int
      i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:183505,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:183506,1
    - Dst: sqlite3_column_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:183507,1
    - Dst: nodeAcquire
      Src: /src/nss/lib/sqlite/sqlite3.c:183509,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:183510,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:183512,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - pRtree
    - iRowid
    - ppLeaf
    - piNode
    argTypes:
    - Rtree*
    - i64
    - RtreeNode**
    - sqlite3_int64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183515
      start: 183497
    functionDepth: 30
    functionLinenumber: 183497
    functionLinenumberEnd: 183515
    functionName: findLeafNode
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_step
    - sqlite3_reset
    - sqlite3_column_int64
    - sqlite3_bind_int64
    - nodeAcquire
    linkageType: ''
    returnType: int
    signature: "int findLeafNode(\n  Rtree *pRtree,              /* RTree to search
      */\n  i64 iRowid,                 /* The rowid searching for */\n  RtreeNode
      **ppLeaf,         /* Write the node here */\n  sqlite3_int64 *piNode       /*
      Write the node-id here */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_pointer
      Src: /src/nss/lib/sqlite/sqlite3.c:183527,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:183530,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:183532,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:183534,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - pValue
    - pCons
    argTypes:
    - sqlite3_value*
    - RtreeConstraint*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183548
      start: 183523
    functionDepth: 6
    functionLinenumber: 183523
    functionLinenumberEnd: 183548
    functionName: deserializeGeometry
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - memcpy
    - sqlite3_value_pointer
    - sqlite3_malloc64
    linkageType: ''
    returnType: int
    signature: int deserializeGeometry(sqlite3_value *pValue, RtreeConstraint *pCons)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: rtreeReference
      Src: /src/nss/lib/sqlite/sqlite3.c:183566,1
    - Dst: freeCursorConstraints
      Src: /src/nss/lib/sqlite/sqlite3.c:183569,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:183570,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:183572,1
    - Dst: sqlite3_value_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:183581,1
    - Dst: findLeafNode
      Src: /src/nss/lib/sqlite/sqlite3.c:183583,1
    - Dst: rtreeSearchPointNew
      Src: /src/nss/lib/sqlite/sqlite3.c:183585,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:183586,1
    - Dst: nodeRowidIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:183590,1
    - Dst: RTREE_QUEUE_TRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:183592,1
    - Dst: nodeAcquire
      Src: /src/nss/lib/sqlite/sqlite3.c:183600,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:183602,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:183607,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:183608,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:183609,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:183610,1
    - Dst: deserializeGeometry
      Src: /src/nss/lib/sqlite/sqlite3.c:183620,1
    - Dst: sqlite3_value_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:183629,1
    - Dst: sqlite3_value_double
      Src: /src/nss/lib/sqlite/sqlite3.c:183631,1
    - Dst: rtreeSearchPointNew
      Src: /src/nss/lib/sqlite/sqlite3.c:183639,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:183644,1
    - Dst: RTREE_QUEUE_TRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:183647,1
    - Dst: rtreeStepToLeaf
      Src: /src/nss/lib/sqlite/sqlite3.c:183648,1
    - Dst: nodeRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:183652,1
    - Dst: rtreeRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:183653,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 69
    argCount: 5
    argNames:
    - pVtabCursor
    - idxNum
    - idxStr
    - argc
    - argv
    argTypes:
    - sqlite3_vtab_cursor*
    - int
    - char*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( pCsr->bPoint==1 )
      pos:
        line_end: 183643
        line_start: 183643
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p!=0 )
      pos:
        line_end: 183585
        line_start: 183585
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( (idxStr==0 && argc==0)\n                || (idxStr && (int)strlen(idxStr)==argc*2)
        )"
      pos:
        line_end: 183609
        line_start: 183608
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 183655
      start: 183553
    functionDepth: 33
    functionLinenumber: 183553
    functionLinenumberEnd: 183655
    functionName: rtreeFilter
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - nodeRelease
    - nodeAcquire
    - rtreeSearchPointNew
    - sqlite3_malloc64
    - sqlite3_value_double
    - rtreeStepToLeaf
    - memset
    - assert
    - freeCursorConstraints
    - rtreeRelease
    - strlen
    - RTREE_QUEUE_TRACE
    - deserializeGeometry
    - sqlite3_value_int64
    - nodeRowidIndex
    - findLeafNode
    - sqlite3_free
    - rtreeReference
    linkageType: ''
    returnType: int
    signature: "int rtreeFilter(\n  sqlite3_vtab_cursor *pVtabCursor, \n  int idxNum,
      const char *idxStr,\n  int argc, sqlite3_value **argv\n)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:183700,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:183712,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:183766,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 63
    argCount: 2
    argNames:
    - tab
    - pIdxInfo
    argTypes:
    - sqlite3_vtab*
    - sqlite3_index_info*
    assertStmts:
    - condition: ( pIdxInfo->idxStr==0 )
      pos:
        line_end: 183711
        line_start: 183711
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 183775
      start: 183691
    functionDepth: 10
    functionLinenumber: 183691
    functionLinenumberEnd: 183775
    functionName: rtreeBestIndex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3_mprintf
    - assert
    linkageType: ''
    returnType: int
    signature: int rtreeBestIndex(sqlite3_vtab *tab, sqlite3_index_info *pIdxInfo)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:183782,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 2
    argNames:
    - pRtree
    - p
    argTypes:
    - Rtree*
    - RtreeCell*
    assertStmts:
    - condition: ( pRtree->nDim>=1 && pRtree->nDim<=5 )
      pos:
        line_end: 183781
        line_start: 183781
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 183804
      start: 183780
    functionDepth: 0
    functionLinenumber: 183780
    functionLinenumberEnd: 183804
    functionName: cellArea
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: RtreeDValue
    signature: RtreeDValue cellArea(Rtree *pRtree, RtreeCell *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DCOORD
      Src: /src/nss/lib/sqlite/sqlite3.c:183814,1
    - Dst: DCOORD
      Src: /src/nss/lib/sqlite/sqlite3.c:183814,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pRtree
    - p
    argTypes:
    - Rtree*
    - RtreeCell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183818
      start: 183810
    functionDepth: 1
    functionLinenumber: 183810
    functionLinenumberEnd: 183818
    functionName: cellMargin
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - DCOORD
    linkageType: ''
    returnType: RtreeDValue
    signature: RtreeDValue cellMargin(Rtree *pRtree, RtreeCell *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/nss/lib/sqlite/sqlite3.c:183827,1
    - Dst: MAX
      Src: /src/nss/lib/sqlite/sqlite3.c:183828,1
    - Dst: MIN
      Src: /src/nss/lib/sqlite/sqlite3.c:183833,1
    - Dst: MAX
      Src: /src/nss/lib/sqlite/sqlite3.c:183834,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - pRtree
    - p1
    - p2
    argTypes:
    - Rtree*
    - RtreeCell*
    - RtreeCell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183838
      start: 183823
    functionDepth: 0
    functionLinenumber: 183823
    functionLinenumberEnd: 183838
    functionName: cellUnion
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - MAX
    - MIN
    linkageType: ''
    returnType: void
    signature: void cellUnion(Rtree *pRtree, RtreeCell *p1, RtreeCell *p2)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 7
    argCount: 3
    argNames:
    - pRtree
    - p1
    - p2
    argTypes:
    - Rtree*
    - RtreeCell*
    - RtreeCell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183857
      start: 183844
    functionDepth: 0
    functionLinenumber: 183844
    functionLinenumberEnd: 183857
    functionName: cellContains
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cellContains(Rtree *pRtree, RtreeCell *p1, RtreeCell *p2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:183865,1
    - Dst: cellArea
      Src: /src/nss/lib/sqlite/sqlite3.c:183866,1
    - Dst: cellUnion
      Src: /src/nss/lib/sqlite/sqlite3.c:183867,1
    - Dst: cellArea
      Src: /src/nss/lib/sqlite/sqlite3.c:183868,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - pRtree
    - p
    - pCell
    argTypes:
    - Rtree*
    - RtreeCell*
    - RtreeCell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183869
      start: 183862
    functionDepth: 1
    functionLinenumber: 183862
    functionLinenumberEnd: 183869
    functionName: cellGrowth
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - cellUnion
    - cellArea
    linkageType: ''
    returnType: RtreeDValue
    signature: RtreeDValue cellGrowth(Rtree *pRtree, RtreeCell *p, RtreeCell *pCell)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAX
      Src: /src/nss/lib/sqlite/sqlite3.c:183884,1
    - Dst: DCOORD
      Src: /src/nss/lib/sqlite/sqlite3.c:183884,1
    - Dst: DCOORD
      Src: /src/nss/lib/sqlite/sqlite3.c:183884,1
    - Dst: MIN
      Src: /src/nss/lib/sqlite/sqlite3.c:183885,1
    - Dst: DCOORD
      Src: /src/nss/lib/sqlite/sqlite3.c:183885,1
    - Dst: DCOORD
      Src: /src/nss/lib/sqlite/sqlite3.c:183885,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - pRtree
    - p
    - aCell
    - nCell
    argTypes:
    - Rtree*
    - RtreeCell*
    - RtreeCell*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183896
      start: 183871
    functionDepth: 1
    functionLinenumber: 183871
    functionLinenumberEnd: 183896
    functionName: cellOverlap
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - MAX
    - DCOORD
    - MIN
    linkageType: ''
    returnType: RtreeDValue
    signature: "RtreeDValue cellOverlap(\n  Rtree *pRtree, \n  RtreeCell *p, \n  RtreeCell
      *aCell, \n  int nCell\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nodeAcquire
      Src: /src/nss/lib/sqlite/sqlite3.c:183912,1
    - Dst: NCELL
      Src: /src/nss/lib/sqlite/sqlite3.c:183921,1
    - Dst: nodeGetCell
      Src: /src/nss/lib/sqlite/sqlite3.c:183935,1
    - Dst: cellGrowth
      Src: /src/nss/lib/sqlite/sqlite3.c:183936,1
    - Dst: cellArea
      Src: /src/nss/lib/sqlite/sqlite3.c:183937,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:183948,1
    - Dst: nodeAcquire
      Src: /src/nss/lib/sqlite/sqlite3.c:183949,1
    - Dst: nodeRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:183950,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 4
    argNames:
    - pRtree
    - pCell
    - iHeight
    - ppLeaf
    argTypes:
    - Rtree*
    - RtreeCell*
    - int
    - RtreeNode**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183956
      start: 183903
    functionDepth: 30
    functionLinenumber: 183903
    functionLinenumberEnd: 183956
    functionName: ChooseLeaf
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - nodeRelease
    - cellArea
    - nodeGetCell
    - NCELL
    - cellGrowth
    - nodeAcquire
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int ChooseLeaf(\n  Rtree *pRtree,               /* Rtree table */\n
      \ RtreeCell *pCell,            /* Cell to insert into rtree */\n  int iHeight,
      \                /* Height of sub-tree rooted at pCell */\n  RtreeNode **ppLeaf
      \          /* OUT: Selected leaf page */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nodeParentIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:183975,1
    - Dst: RTREE_IS_CORRUPT
      Src: /src/nss/lib/sqlite/sqlite3.c:183976,1
    - Dst: nodeGetCell
      Src: /src/nss/lib/sqlite/sqlite3.c:183980,1
    - Dst: cellContains
      Src: /src/nss/lib/sqlite/sqlite3.c:183981,1
    - Dst: cellUnion
      Src: /src/nss/lib/sqlite/sqlite3.c:183982,1
    - Dst: nodeOverwriteCell
      Src: /src/nss/lib/sqlite/sqlite3.c:183983,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - pRtree
    - pNode
    - pCell
    argTypes:
    - Rtree*
    - RtreeNode*
    - RtreeCell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183989
      start: 183963
    functionDepth: 5
    functionLinenumber: 183963
    functionLinenumberEnd: 183989
    functionName: AdjustTree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - nodeParentIndex
    - nodeGetCell
    - RTREE_IS_CORRUPT
    - nodeOverwriteCell
    - cellContains
    - cellUnion
    linkageType: ''
    returnType: int
    signature: "int AdjustTree(\n  Rtree *pRtree,                    /* Rtree table
      */\n  RtreeNode *pNode,                 /* Adjust ancestry of this node. */\n
      \ RtreeCell *pCell                  /* This cell was just inserted */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:183995,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:183996,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:183997,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:183998,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - pRtree
    - iRowid
    - iNode
    argTypes:
    - Rtree*
    - sqlite3_int64
    - sqlite3_int64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183999
      start: 183994
    functionDepth: 27
    functionLinenumber: 183994
    functionLinenumberEnd: 183999
    functionName: rowidWrite
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_step
    - sqlite3_bind_int64
    - sqlite3_reset
    linkageType: ''
    returnType: int
    signature: int rowidWrite(Rtree *pRtree, sqlite3_int64 iRowid, sqlite3_int64 iNode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:184005,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:184006,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:184007,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:184008,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - pRtree
    - iNode
    - iPar
    argTypes:
    - Rtree*
    - sqlite3_int64
    - sqlite3_int64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184009
      start: 184004
    functionDepth: 27
    functionLinenumber: 184004
    functionLinenumberEnd: 184009
    functionName: parentWrite
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_step
    - sqlite3_bind_int64
    - sqlite3_reset
    linkageType: ''
    returnType: int
    signature: int parentWrite(Rtree *pRtree, sqlite3_int64 iNode, sqlite3_int64 iPar)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SortByDistance
      Src: /src/nss/lib/sqlite/sqlite3.c:184046,1
    - Dst: SortByDistance
      Src: /src/nss/lib/sqlite/sqlite3.c:184047,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:184049,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:184079,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 4
    argNames:
    - aIdx
    - nIdx
    - aDistance
    - aSpare
    argTypes:
    - int*
    - int
    - RtreeDValue*
    - int*
    assertStmts:
    - condition: ( left<=right )
      pos:
        line_end: 184078
        line_start: 184078
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 184084
      start: 184031
    functionDepth: 1
    functionLinenumber: 184031
    functionLinenumberEnd: 184084
    functionName: SortByDistance
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - memcpy
    - SortByDistance
    linkageType: ''
    returnType: void
    signature: "void SortByDistance(\n  int *aIdx, \n  int nIdx, \n  RtreeDValue *aDistance,
      \n  int *aSpare\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SortByDimension
      Src: /src/nss/lib/sqlite/sqlite3.c:184115,1
    - Dst: SortByDimension
      Src: /src/nss/lib/sqlite/sqlite3.c:184116,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:184118,1
    - Dst: DCOORD
      Src: /src/nss/lib/sqlite/sqlite3.c:184121,1
    - Dst: DCOORD
      Src: /src/nss/lib/sqlite/sqlite3.c:184122,1
    - Dst: DCOORD
      Src: /src/nss/lib/sqlite/sqlite3.c:184123,1
    - Dst: DCOORD
      Src: /src/nss/lib/sqlite/sqlite3.c:184124,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:184146,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 6
    argNames:
    - pRtree
    - aIdx
    - nIdx
    - iDim
    - aCell
    - aSpare
    argTypes:
    - Rtree*
    - int*
    - int
    - int
    - RtreeCell*
    - int*
    assertStmts:
    - condition: ( xleft1<=xright1 && (xleft1<xright1 || xleft2<=xright2) )
      pos:
        line_end: 184145
        line_start: 184145
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 184151
      start: 184097
    functionDepth: 1
    functionLinenumber: 184097
    functionLinenumberEnd: 184151
    functionName: SortByDimension
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - memcpy
    - SortByDimension
    - DCOORD
    linkageType: ''
    returnType: void
    signature: "void SortByDimension(\n  Rtree *pRtree,\n  int *aIdx, \n  int nIdx,
      \n  int iDim, \n  RtreeCell *aCell, \n  int *aSpare\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:184175,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:184181,1
    - Dst: SortByDimension
      Src: /src/nss/lib/sqlite/sqlite3.c:184188,1
    - Dst: RTREE_MINCELLS
      Src: /src/nss/lib/sqlite/sqlite3.c:184199,1
    - Dst: RTREE_MINCELLS
      Src: /src/nss/lib/sqlite/sqlite3.c:184200,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:184209,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:184210,1
    - Dst: cellUnion
      Src: /src/nss/lib/sqlite/sqlite3.c:184213,1
    - Dst: cellUnion
      Src: /src/nss/lib/sqlite/sqlite3.c:184215,1
    - Dst: cellMargin
      Src: /src/nss/lib/sqlite/sqlite3.c:184218,1
    - Dst: cellMargin
      Src: /src/nss/lib/sqlite/sqlite3.c:184219,1
    - Dst: cellOverlap
      Src: /src/nss/lib/sqlite/sqlite3.c:184220,1
    - Dst: cellArea
      Src: /src/nss/lib/sqlite/sqlite3.c:184221,1
    - Dst: cellArea
      Src: /src/nss/lib/sqlite/sqlite3.c:184221,1
    - Dst: RTREE_MINCELLS
      Src: /src/nss/lib/sqlite/sqlite3.c:184222,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:184239,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:184240,1
    - Dst: nodeInsertCell
      Src: /src/nss/lib/sqlite/sqlite3.c:184245,1
    - Dst: cellUnion
      Src: /src/nss/lib/sqlite/sqlite3.c:184246,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:184249,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 49
    argCount: 7
    argNames:
    - pRtree
    - aCell
    - nCell
    - pLeft
    - pRight
    - pBboxLeft
    - pBboxRight
    argTypes:
    - Rtree*
    - RtreeCell*
    - int
    - RtreeNode*
    - RtreeNode*
    - RtreeCell*
    - RtreeCell*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184251
      start: 184156
    functionDepth: 6
    functionLinenumber: 184156
    functionLinenumberEnd: 184251
    functionName: splitNodeStartree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - cellUnion
    - cellMargin
    - memcpy
    - sqlite3_malloc64
    - sqlite3_free
    - cellArea
    - cellOverlap
    - memset
    - SortByDimension
    - nodeInsertCell
    - RTREE_MINCELLS
    linkageType: ''
    returnType: int
    signature: "int splitNodeStartree(\n  Rtree *pRtree,\n  RtreeCell *aCell,\n  int
      nCell,\n  RtreeNode *pLeft,\n  RtreeNode *pRight,\n  RtreeCell *pBboxLeft,\n
      \ RtreeCell *pBboxRight\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nodeHashLookup
      Src: /src/nss/lib/sqlite/sqlite3.c:184263,1
    - Dst: nodeRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:184265,1
    - Dst: nodeReference
      Src: /src/nss/lib/sqlite/sqlite3.c:184266,1
    - Dst: xSetMapping
      Src: /src/nss/lib/sqlite/sqlite3.c:184270,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - pRtree
    - iRowid
    - pNode
    - iHeight
    argTypes:
    - Rtree*
    - i64
    - RtreeNode*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184271
      start: 184254
    functionDepth: 29
    functionLinenumber: 184254
    functionLinenumberEnd: 184271
    functionName: updateMapping
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - nodeReference
    - nodeRelease
    - xSetMapping
    - nodeHashLookup
    linkageType: ''
    returnType: int
    signature: "int updateMapping(\n  Rtree *pRtree, \n  i64 iRowid, \n  RtreeNode
      *pNode, \n  int iHeight\n)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: NCELL
      Src: /src/nss/lib/sqlite/sqlite3.c:184283,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:184296,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:184302,1
    - Dst: nodeGetCell
      Src: /src/nss/lib/sqlite/sqlite3.c:184304,1
    - Dst: nodeZero
      Src: /src/nss/lib/sqlite/sqlite3.c:184306,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:184307,1
    - Dst: nodeNew
      Src: /src/nss/lib/sqlite/sqlite3.c:184311,1
    - Dst: nodeNew
      Src: /src/nss/lib/sqlite/sqlite3.c:184312,1
    - Dst: writeInt16
      Src: /src/nss/lib/sqlite/sqlite3.c:184315,1
    - Dst: nodeNew
      Src: /src/nss/lib/sqlite/sqlite3.c:184318,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:184327,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:184328,1
    - Dst: splitNodeStartree
      Src: /src/nss/lib/sqlite/sqlite3.c:184330,1
    - Dst: nodeWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:184341,1
    - Dst: nodeWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:184342,1
    - Dst: rtreeInsertCell
      Src: /src/nss/lib/sqlite/sqlite3.c:184351,1
    - Dst: nodeParentIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:184358,1
    - Dst: nodeOverwriteCell
      Src: /src/nss/lib/sqlite/sqlite3.c:184360,1
    - Dst: AdjustTree
      Src: /src/nss/lib/sqlite/sqlite3.c:184361,1
    - Dst: rtreeInsertCell
      Src: /src/nss/lib/sqlite/sqlite3.c:184367,1
    - Dst: NCELL
      Src: /src/nss/lib/sqlite/sqlite3.c:184371,1
    - Dst: nodeGetRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:184372,1
    - Dst: updateMapping
      Src: /src/nss/lib/sqlite/sqlite3.c:184373,1
    - Dst: NCELL
      Src: /src/nss/lib/sqlite/sqlite3.c:184382,1
    - Dst: nodeGetRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:184383,1
    - Dst: updateMapping
      Src: /src/nss/lib/sqlite/sqlite3.c:184384,1
    - Dst: updateMapping
      Src: /src/nss/lib/sqlite/sqlite3.c:184390,1
    - Dst: nodeRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:184394,1
    - Dst: nodeRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:184398,1
    - Dst: nodeRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:184403,1
    - Dst: nodeRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:184404,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:184405,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 101
    argCount: 4
    argNames:
    - pRtree
    - pNode
    - pCell
    - iHeight
    argTypes:
    - Rtree*
    - RtreeNode*
    - RtreeCell*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184407
      start: 184273
    functionDepth: 30
    functionLinenumber: 184273
    functionLinenumberEnd: 184407
    functionName: SplitNode
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - nodeRelease
    - sqlite3_free
    - memcpy
    - sqlite3_malloc64
    - nodeParentIndex
    - nodeWrite
    - nodeGetCell
    - NCELL
    - AdjustTree
    - memset
    - rtreeInsertCell
    - nodeOverwriteCell
    - nodeGetRowid
    - nodeZero
    - writeInt16
    - updateMapping
    - nodeNew
    - splitNodeStartree
    linkageType: ''
    returnType: int
    signature: "int SplitNode(\n  Rtree *pRtree,\n  RtreeNode *pNode,\n  RtreeCell
      *pCell,\n  int iHeight\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:184425,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:184426,1
    - Dst: sqlite3_column_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:184436,1
    - Dst: nodeAcquire
      Src: /src/nss/lib/sqlite/sqlite3.c:184439,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:184442,1
    - Dst: RTREE_IS_CORRUPT
      Src: /src/nss/lib/sqlite/sqlite3.c:184445,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 2
    argNames:
    - pRtree
    - pLeaf
    argTypes:
    - Rtree*
    - RtreeNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184451
      start: 184420
    functionDepth: 30
    functionLinenumber: 184420
    functionLinenumberEnd: 184451
    functionName: fixLeafParent
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_step
    - sqlite3_reset
    - sqlite3_column_int64
    - RTREE_IS_CORRUPT
    - sqlite3_bind_int64
    - nodeAcquire
    linkageType: ''
    returnType: int
    signature: int fixLeafParent(Rtree *pRtree, RtreeNode *pLeaf)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:184461,1
    - Dst: nodeParentIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:184464,1
    - Dst: deleteCell
      Src: /src/nss/lib/sqlite/sqlite3.c:184468,1
    - Dst: nodeRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:184470,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:184479,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:184480,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:184481,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:184486,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:184487,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:184488,1
    - Dst: nodeHashDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:184495,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 3
    argNames:
    - pRtree
    - pNode
    - iHeight
    argTypes:
    - Rtree*
    - RtreeNode*
    - int
    assertStmts:
    - condition: ( pNode->nRef==1 )
      pos:
        line_end: 184460
        line_start: 184460
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 184502
      start: 184455
    functionDepth: 29
    functionLinenumber: 184455
    functionLinenumberEnd: 184502
    functionName: removeNode
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - nodeRelease
    - sqlite3_step
    - sqlite3_reset
    - assert
    - sqlite3_bind_int64
    - nodeHashDelete
    - nodeParentIndex
    - deleteCell
    linkageType: ''
    returnType: int
    signature: int removeNode(Rtree *pRtree, RtreeNode *pNode, int iHeight)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCELL
      Src: /src/nss/lib/sqlite/sqlite3.c:184509,1
    - Dst: nodeGetCell
      Src: /src/nss/lib/sqlite/sqlite3.c:184511,1
    - Dst: nodeGetCell
      Src: /src/nss/lib/sqlite/sqlite3.c:184514,1
    - Dst: cellUnion
      Src: /src/nss/lib/sqlite/sqlite3.c:184515,1
    - Dst: nodeParentIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:184518,1
    - Dst: nodeOverwriteCell
      Src: /src/nss/lib/sqlite/sqlite3.c:184520,1
    - Dst: fixBoundingBox
      Src: /src/nss/lib/sqlite/sqlite3.c:184521,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - pRtree
    - pNode
    argTypes:
    - Rtree*
    - RtreeNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184525
      start: 184504
    functionDepth: 5
    functionLinenumber: 184504
    functionLinenumberEnd: 184525
    functionName: fixBoundingBox
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - nodeParentIndex
    - nodeGetCell
    - NCELL
    - fixBoundingBox
    - nodeOverwriteCell
    - cellUnion
    linkageType: ''
    returnType: int
    signature: int fixBoundingBox(Rtree *pRtree, RtreeNode *pNode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fixLeafParent
      Src: /src/nss/lib/sqlite/sqlite3.c:184535,1
    - Dst: nodeDeleteCell
      Src: /src/nss/lib/sqlite/sqlite3.c:184542,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:184550,1
    - Dst: NCELL
      Src: /src/nss/lib/sqlite/sqlite3.c:184552,1
    - Dst: RTREE_MINCELLS
      Src: /src/nss/lib/sqlite/sqlite3.c:184552,1
    - Dst: removeNode
      Src: /src/nss/lib/sqlite/sqlite3.c:184553,1
    - Dst: fixBoundingBox
      Src: /src/nss/lib/sqlite/sqlite3.c:184555,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - pRtree
    - pNode
    - iCell
    - iHeight
    argTypes:
    - Rtree*
    - RtreeNode*
    - int
    - int
    assertStmts:
    - condition: ( pParent || pNode->iNode==1 )
      pos:
        line_end: 184549
        line_start: 184549
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 184560
      start: 184531
    functionDepth: 31
    functionLinenumber: 184531
    functionLinenumberEnd: 184560
    functionName: deleteCell
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - nodeDeleteCell
    - fixLeafParent
    - NCELL
    - assert
    - fixBoundingBox
    - removeNode
    - RTREE_MINCELLS
    linkageType: ''
    returnType: int
    signature: int deleteCell(Rtree *pRtree, RtreeNode *pNode, int iCell, int iHeight)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:184579,1
    - Dst: NCELL
      Src: /src/nss/lib/sqlite/sqlite3.c:184581,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:184587,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:184602,1
    - Dst: nodeGetCell
      Src: /src/nss/lib/sqlite/sqlite3.c:184604,1
    - Dst: DCOORD
      Src: /src/nss/lib/sqlite/sqlite3.c:184608,1
    - Dst: DCOORD
      Src: /src/nss/lib/sqlite/sqlite3.c:184609,1
    - Dst: DCOORD
      Src: /src/nss/lib/sqlite/sqlite3.c:184619,1
    - Dst: DCOORD
      Src: /src/nss/lib/sqlite/sqlite3.c:184620,1
    - Dst: SortByDistance
      Src: /src/nss/lib/sqlite/sqlite3.c:184625,1
    - Dst: nodeZero
      Src: /src/nss/lib/sqlite/sqlite3.c:184626,1
    - Dst: RTREE_MINCELLS
      Src: /src/nss/lib/sqlite/sqlite3.c:184628,1
    - Dst: nodeInsertCell
      Src: /src/nss/lib/sqlite/sqlite3.c:184630,1
    - Dst: rowidWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:184633,1
    - Dst: parentWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:184635,1
    - Dst: fixBoundingBox
      Src: /src/nss/lib/sqlite/sqlite3.c:184640,1
    - Dst: ChooseLeaf
      Src: /src/nss/lib/sqlite/sqlite3.c:184648,1
    - Dst: rtreeInsertCell
      Src: /src/nss/lib/sqlite/sqlite3.c:184651,1
    - Dst: nodeRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:184652,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:184659,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 59
    argCount: 4
    argNames:
    - pRtree
    - pNode
    - pCell
    - iHeight
    argTypes:
    - Rtree*
    - RtreeNode*
    - RtreeCell*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184661
      start: 184562
    functionDepth: 31
    functionLinenumber: 184562
    functionLinenumberEnd: 184661
    functionName: Reinsert
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - nodeRelease
    - sqlite3_free
    - memcpy
    - sqlite3_malloc64
    - DCOORD
    - SortByDistance
    - NCELL
    - nodeGetCell
    - memset
    - rowidWrite
    - fixBoundingBox
    - rtreeInsertCell
    - parentWrite
    - ChooseLeaf
    - nodeZero
    - nodeInsertCell
    - RTREE_MINCELLS
    linkageType: ''
    returnType: int
    signature: "int Reinsert(\n  Rtree *pRtree, \n  RtreeNode *pNode, \n  RtreeCell
      *pCell, \n  int iHeight\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: nodeHashLookup
      Src: /src/nss/lib/sqlite/sqlite3.c:184675,1
    - Dst: nodeRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:184677,1
    - Dst: nodeReference
      Src: /src/nss/lib/sqlite/sqlite3.c:184678,1
    - Dst: nodeInsertCell
      Src: /src/nss/lib/sqlite/sqlite3.c:184682,1
    - Dst: SplitNode
      Src: /src/nss/lib/sqlite/sqlite3.c:184684,1
    - Dst: Reinsert
      Src: /src/nss/lib/sqlite/sqlite3.c:184687,1
    - Dst: AdjustTree
      Src: /src/nss/lib/sqlite/sqlite3.c:184690,1
    - Dst: rowidWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:184693,1
    - Dst: parentWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:184695,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 4
    argNames:
    - pRtree
    - pNode
    - pCell
    - iHeight
    argTypes:
    - Rtree*
    - RtreeNode*
    - RtreeCell*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184700
      start: 184667
    functionDepth: 32
    functionLinenumber: 184667
    functionLinenumberEnd: 184700
    functionName: rtreeInsertCell
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - nodeRelease
    - SplitNode
    - nodeHashLookup
    - Reinsert
    - AdjustTree
    - rowidWrite
    - parentWrite
    - nodeInsertCell
    - nodeReference
    linkageType: ''
    returnType: int
    signature: "int rtreeInsertCell(\n  Rtree *pRtree,\n  RtreeNode *pNode,\n  RtreeCell
      *pCell,\n  int iHeight\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCELL
      Src: /src/nss/lib/sqlite/sqlite3.c:184705,1
    - Dst: nodeGetCell
      Src: /src/nss/lib/sqlite/sqlite3.c:184710,1
    - Dst: ChooseLeaf
      Src: /src/nss/lib/sqlite/sqlite3.c:184715,1
    - Dst: rtreeInsertCell
      Src: /src/nss/lib/sqlite/sqlite3.c:184718,1
    - Dst: nodeRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:184719,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - pRtree
    - pNode
    argTypes:
    - Rtree*
    - RtreeNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184726
      start: 184702
    functionDepth: 33
    functionLinenumber: 184702
    functionLinenumberEnd: 184726
    functionName: reinsertNodeContent
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - nodeRelease
    - nodeGetCell
    - NCELL
    - ChooseLeaf
    - rtreeInsertCell
    linkageType: ''
    returnType: int
    signature: int reinsertNodeContent(Rtree *pRtree, RtreeNode *pNode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_bind_null
      Src: /src/nss/lib/sqlite/sqlite3.c:184733,1
    - Dst: sqlite3_bind_null
      Src: /src/nss/lib/sqlite/sqlite3.c:184734,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:184735,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:184736,1
    - Dst: sqlite3_last_insert_rowid
      Src: /src/nss/lib/sqlite/sqlite3.c:184737,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - pRtree
    - piRowid
    argTypes:
    - Rtree*
    - i64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184739
      start: 184731
    functionDepth: 27
    functionLinenumber: 184731
    functionLinenumberEnd: 184739
    functionName: rtreeNewRowid
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_bind_null
    - sqlite3_step
    - sqlite3_reset
    - sqlite3_last_insert_rowid
    linkageType: ''
    returnType: int
    signature: int rtreeNewRowid(Rtree *pRtree, i64 *piRowid)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: nodeAcquire
      Src: /src/nss/lib/sqlite/sqlite3.c:184752,1
    - Dst: findLeafNode
      Src: /src/nss/lib/sqlite/sqlite3.c:184758,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:184762,1
    - Dst: nodeRowidIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:184768,1
    - Dst: deleteCell
      Src: /src/nss/lib/sqlite/sqlite3.c:184770,1
    - Dst: nodeRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:184772,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:184780,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:184781,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:184782,1
    - Dst: NCELL
      Src: /src/nss/lib/sqlite/sqlite3.c:184793,1
    - Dst: nodeGetRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:184796,1
    - Dst: nodeAcquire
      Src: /src/nss/lib/sqlite/sqlite3.c:184797,1
    - Dst: removeNode
      Src: /src/nss/lib/sqlite/sqlite3.c:184799,1
    - Dst: nodeRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:184801,1
    - Dst: writeInt16
      Src: /src/nss/lib/sqlite/sqlite3.c:184805,1
    - Dst: reinsertNodeContent
      Src: /src/nss/lib/sqlite/sqlite3.c:184813,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:184817,1
    - Dst: nodeRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:184822,1
    - Dst: nodeRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:184824,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 49
    argCount: 2
    argNames:
    - pRtree
    - iDelete
    argTypes:
    - Rtree*
    - sqlite3_int64
    assertStmts:
    - condition: ( pLeaf!=0 || rc!=SQLITE_OK || CORRUPT_DB )
      pos:
        line_end: 184761
        line_start: 184761
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 184828
      start: 184744
    functionDepth: 34
    functionLinenumber: 184744
    functionLinenumberEnd: 184828
    functionName: rtreeDeleteRowid
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - nodeRelease
    - sqlite3_free
    - sqlite3_step
    - sqlite3_reset
    - NCELL
    - removeNode
    - assert
    - reinsertNodeContent
    - sqlite3_bind_int64
    - nodeAcquire
    - nodeGetRowid
    - nodeRowidIndex
    - findLeafNode
    - writeInt16
    - deleteCell
    linkageType: ''
    returnType: int
    signature: int rtreeDeleteRowid(Rtree *pRtree, sqlite3_int64 iDelete)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_double
      Src: /src/nss/lib/sqlite/sqlite3.c:184842,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - sqlite3_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184848
      start: 184841
    functionDepth: 5
    functionLinenumber: 184841
    functionLinenumberEnd: 184848
    functionName: rtreeValueDown
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_value_double
    linkageType: ''
    returnType: RtreeValue
    signature: RtreeValue rtreeValueDown(sqlite3_value *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_double
      Src: /src/nss/lib/sqlite/sqlite3.c:184850,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - sqlite3_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184856
      start: 184849
    functionDepth: 5
    functionLinenumber: 184849
    functionLinenumberEnd: 184856
    functionName: rtreeValueUp
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_value_double
    linkageType: ''
    returnType: RtreeValue
    signature: RtreeValue rtreeValueUp(sqlite3_value *v)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:184877,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:184878,1
    - Dst: sqlite3_prepare_v2
      Src: /src/nss/lib/sqlite/sqlite3.c:184880,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:184884,1
    - Dst: sqlite3_column_name
      Src: /src/nss/lib/sqlite/sqlite3.c:184888,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:184889,1
    - Dst: sqlite3_column_name
      Src: /src/nss/lib/sqlite/sqlite3.c:184893,1
    - Dst: sqlite3_column_name
      Src: /src/nss/lib/sqlite/sqlite3.c:184894,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:184895,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:184901,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - pRtree
    - iCol
    argTypes:
    - Rtree*
    - int
    assertStmts:
    - condition: ( iCol==0 || iCol%2 )
      pos:
        line_end: 184876
        line_start: 184876
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 184903
      start: 184872
    functionDepth: 28
    functionLinenumber: 184872
    functionLinenumberEnd: 184903
    functionName: rtreeConstraintError
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_mprintf
    - sqlite3_prepare_v2
    - sqlite3_column_name
    - sqlite3_finalize
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int rtreeConstraintError(Rtree *pRtree, int iCol)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: rtreeReference
      Src: /src/nss/lib/sqlite/sqlite3.c:184927,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:184928,1
    - Dst: rtreeValueDown
      Src: /src/nss/lib/sqlite/sqlite3.c:184960,1
    - Dst: rtreeValueUp
      Src: /src/nss/lib/sqlite/sqlite3.c:184961,1
    - Dst: rtreeConstraintError
      Src: /src/nss/lib/sqlite/sqlite3.c:184963,1
    - Dst: sqlite3_value_int
      Src: /src/nss/lib/sqlite/sqlite3.c:184971,1
    - Dst: sqlite3_value_int
      Src: /src/nss/lib/sqlite/sqlite3.c:184972,1
    - Dst: rtreeConstraintError
      Src: /src/nss/lib/sqlite/sqlite3.c:184974,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:184982,1
    - Dst: sqlite3_value_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:184983,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:184984,1
    - Dst: sqlite3_value_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:184985,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:184988,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:184989,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:184990,1
    - Dst: sqlite3_vtab_on_conflict
      Src: /src/nss/lib/sqlite/sqlite3.c:184992,1
    - Dst: rtreeDeleteRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:184993,1
    - Dst: rtreeConstraintError
      Src: /src/nss/lib/sqlite/sqlite3.c:184995,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:185008,1
    - Dst: rtreeDeleteRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:185009,1
    - Dst: sqlite3_value_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:185009,1
    - Dst: rtreeNewRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:185022,1
    - Dst: ChooseLeaf
      Src: /src/nss/lib/sqlite/sqlite3.c:185027,1
    - Dst: rtreeInsertCell
      Src: /src/nss/lib/sqlite/sqlite3.c:185032,1
    - Dst: nodeRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:185033,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:185041,1
    - Dst: sqlite3_bind_value
      Src: /src/nss/lib/sqlite/sqlite3.c:185043,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:185045,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:185046,1
    - Dst: rtreeRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:185051,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 82
    argCount: 4
    argNames:
    - pVtab
    - nData
    - aData
    - pRowid
    argTypes:
    - sqlite3_vtab*
    - int
    - sqlite3_value**
    - sqlite_int64*
    assertStmts:
    - condition: (nData>=1)
      pos:
        line_end: 184927
        line_start: 184927
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 185053
      start: 184910
    functionDepth: 35
    functionLinenumber: 184910
    functionLinenumberEnd: 185053
    functionName: rtreeUpdate
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - nodeRelease
    - sqlite3_reset
    - sqlite3_value_int
    - sqlite3_value_type
    - rtreeNewRowid
    - sqlite3_value_int64
    - rtreeConstraintError
    - assert
    - sqlite3_vtab_on_conflict
    - ChooseLeaf
    - rtreeInsertCell
    - sqlite3_step
    - sqlite3_bind_value
    - rtreeValueDown
    - rtreeReference
    - rtreeDeleteRowid
    - rtreeValueUp
    - sqlite3_bind_int64
    - rtreeRelease
    linkageType: ''
    returnType: int
    signature: "int rtreeUpdate(\n  sqlite3_vtab *pVtab, \n  int nData, \n  sqlite3_value
      **aData, \n  sqlite_int64 *pRowid\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:185060,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pVtab
    argTypes:
    - sqlite3_vtab*
    assertStmts:
    - condition: ( pRtree->inWrTrans==0 )
      pos:
        line_end: 185059
        line_start: 185059
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 185063
      start: 185058
    functionDepth: 0
    functionLinenumber: 185058
    functionLinenumberEnd: 185063
    functionName: rtreeBeginTransaction
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int rtreeBeginTransaction(sqlite3_vtab *pVtab)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nodeBlobReset
      Src: /src/nss/lib/sqlite/sqlite3.c:185072,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pVtab
    argTypes:
    - sqlite3_vtab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185074
      start: 185069
    functionDepth: 28
    functionLinenumber: 185069
    functionLinenumberEnd: 185074
    functionName: rtreeEndTransaction
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - nodeBlobReset
    linkageType: ''
    returnType: int
    signature: int rtreeEndTransaction(sqlite3_vtab *pVtab)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:185082,1
    - Dst: nodeBlobReset
      Src: /src/nss/lib/sqlite/sqlite3.c:185091,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/sqlite/sqlite3.c:185092,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:185093,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - pVtab
    - zNewName
    argTypes:
    - sqlite3_vtab*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185096
      start: 185079
    functionDepth: 28
    functionLinenumber: 185079
    functionLinenumberEnd: 185096
    functionName: rtreeRename
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - nodeBlobReset
    - sqlite3_mprintf
    - sqlite3_exec
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int rtreeRename(sqlite3_vtab *pVtab, const char *zNewName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:185115,1
    - Dst: nodeBlobReset
      Src: /src/nss/lib/sqlite/sqlite3.c:185117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - pVtab
    - iSavepoint
    argTypes:
    - sqlite3_vtab*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185120
      start: 185112
    functionDepth: 28
    functionLinenumber: 185112
    functionLinenumberEnd: 185120
    functionName: rtreeSavepoint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - nodeBlobReset
    - UNUSED_PARAMETER
    linkageType: ''
    returnType: int
    signature: int rtreeSavepoint(sqlite3_vtab *pVtab, int iSavepoint)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_table_column_metadata
      Src: /src/nss/lib/sqlite/sqlite3.c:185134,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:185141,1
    - Dst: sqlite3_prepare_v2
      Src: /src/nss/lib/sqlite/sqlite3.c:185145,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:185147,1
    - Dst: sqlite3_column_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:185147,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:185148,1
    - Dst: MAX
      Src: /src/nss/lib/sqlite/sqlite3.c:185157,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:185160,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - db
    - pRtree
    argTypes:
    - sqlite3*
    - Rtree*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185164
      start: 185127
    functionDepth: 28
    functionLinenumber: 185127
    functionLinenumberEnd: 185164
    functionName: rtreeQueryStat1
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_step
    - sqlite3_column_int64
    - sqlite3_mprintf
    - sqlite3_prepare_v2
    - MAX
    - sqlite3_finalize
    - sqlite3_free
    - sqlite3_table_column_metadata
    linkageType: ''
    returnType: int
    signature: int rtreeQueryStat1(sqlite3 *db, Rtree *pRtree)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:185177,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - zName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185180
      start: 185171
    functionDepth: 2
    functionLinenumber: 185171
    functionLinenumberEnd: 185180
    functionName: rtreeShadowName
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_stricmp
    linkageType: ''
    returnType: int
    signature: int rtreeShadowName(const char *zName)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_str_new
      Src: /src/nss/lib/sqlite/sqlite3.c:185242,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:185244,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:185248,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:185250,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:185253,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:185256,1
    - Dst: sqlite3_str_finish
      Src: /src/nss/lib/sqlite/sqlite3.c:185259,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/sqlite/sqlite3.c:185263,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:185264,1
    - Dst: rtreeQueryStat1
      Src: /src/nss/lib/sqlite/sqlite3.c:185279,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:185291,1
    - Dst: sqlite3_prepare_v3
      Src: /src/nss/lib/sqlite/sqlite3.c:185293,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:185297,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:185300,1
    - Dst: sqlite3_str_new
      Src: /src/nss/lib/sqlite/sqlite3.c:185306,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:185309,1
    - Dst: sqlite3_str_append
      Src: /src/nss/lib/sqlite/sqlite3.c:185311,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:185313,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:185315,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:185318,1
    - Dst: sqlite3_str_finish
      Src: /src/nss/lib/sqlite/sqlite3.c:185319,1
    - Dst: sqlite3_prepare_v3
      Src: /src/nss/lib/sqlite/sqlite3.c:185323,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:185324,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 69
    argCount: 5
    argNames:
    - pRtree
    - db
    - zDb
    - zPrefix
    - isCreate
    argTypes:
    - Rtree*
    - sqlite3*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185330
      start: 185209
    functionDepth: 29
    functionLinenumber: 185209
    functionLinenumberEnd: 185330
    functionName: rtreeSqlInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_str_append
    - rtreeQueryStat1
    - sqlite3_str_finish
    - sqlite3_str_new
    - sqlite3_mprintf
    - sqlite3_str_appendf
    - sqlite3_prepare_v3
    - sqlite3_exec
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int rtreeSqlInit(\n  Rtree *pRtree, \n  sqlite3 *db, \n  const char
      *zDb, \n  const char *zPrefix, \n  int isCreate\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_prepare_v2
      Src: /src/nss/lib/sqlite/sqlite3.c:185343,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:185345,1
    - Dst: sqlite3_column_int
      Src: /src/nss/lib/sqlite/sqlite3.c:185346,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:185348,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - db
    - zSql
    - piVal
    argTypes:
    - sqlite3*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185352
      start: 185339
    functionDepth: 28
    functionLinenumber: 185339
    functionLinenumberEnd: 185352
    functionName: getIntFromStmt
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_finalize
    - sqlite3_prepare_v2
    - sqlite3_step
    - sqlite3_column_int
    linkageType: ''
    returnType: int
    signature: int getIntFromStmt(sqlite3 *db, const char *zSql, int *piVal)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:185379,1
    - Dst: getIntFromStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:185380,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:185387,1
    - Dst: sqlite3_errmsg
      Src: /src/nss/lib/sqlite/sqlite3.c:185387,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:185390,1
    - Dst: getIntFromStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:185394,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:185396,1
    - Dst: sqlite3_errmsg
      Src: /src/nss/lib/sqlite/sqlite3.c:185396,1
    - Dst: RTREE_IS_CORRUPT
      Src: /src/nss/lib/sqlite/sqlite3.c:185399,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:185400,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:185405,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 4
    argNames:
    - db
    - pRtree
    - isCreate
    - pzErr
    argTypes:
    - sqlite3*
    - Rtree*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185407
      start: 185369
    functionDepth: 29
    functionLinenumber: 185369
    functionLinenumberEnd: 185407
    functionName: getNodeSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - getIntFromStmt
    - sqlite3_mprintf
    - RTREE_IS_CORRUPT
    - sqlite3_errmsg
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int getNodeSize(\n  sqlite3 *db,                    /* Database handle
      */\n  Rtree *pRtree,                  /* Rtree handle */\n  int isCreate,                   /*
      True for xCreate, false for xConnect */\n  char **pzErr                    /*
      OUT: Error message, if any */\n)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:185444,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:185446,1
    - Dst: sqlite3_vtab_config
      Src: /src/nss/lib/sqlite/sqlite3.c:185450,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:185453,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:185454,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:185455,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:185459,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:185465,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:185466,1
    - Dst: sqlite3_str_new
      Src: /src/nss/lib/sqlite/sqlite3.c:185473,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:185474,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:185478,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:185483,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:185486,1
    - Dst: sqlite3_str_finish
      Src: /src/nss/lib/sqlite/sqlite3.c:185487,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:185491,1
    - Dst: sqlite3_declare_vtab
      Src: /src/nss/lib/sqlite/sqlite3.c:185493,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:185494,1
    - Dst: sqlite3_errmsg
      Src: /src/nss/lib/sqlite/sqlite3.c:185494,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:185496,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:185509,1
    - Dst: getNodeSize
      Src: /src/nss/lib/sqlite/sqlite3.c:185515,1
    - Dst: rtreeSqlInit
      Src: /src/nss/lib/sqlite/sqlite3.c:185517,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:185519,1
    - Dst: sqlite3_errmsg
      Src: /src/nss/lib/sqlite/sqlite3.c:185519,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:185528,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:185529,1
    - Dst: rtreeRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:185530,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 89
    argCount: 7
    argNames:
    - db
    - pAux
    - argc
    - argv
    - ppVtab
    - pzErr
    - isCreate
    argTypes:
    - sqlite3*
    - void*
    - int
    - char**
    - sqlite3_vtab**
    - char**
    - int
    assertStmts:
    - condition: ( *ppVtab==0 )
      pos:
        line_end: 185527
        line_start: 185527
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pRtree->nBusy==1 )
      pos:
        line_end: 185528
        line_start: 185528
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( RTREE_MAX_AUX_COLUMN<256 )
      pos:
        line_end: 185443
        line_start: 185443
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 185532
      start: 185418
    functionDepth: 30
    functionLinenumber: 185418
    functionLinenumberEnd: 185532
    functionName: rtreeInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - memcpy
    - sqlite3_malloc64
    - rtreeSqlInit
    - sqlite3_str_finish
    - assert
    - sqlite3_mprintf
    - memset
    - sqlite3_str_new
    - sqlite3_errmsg
    - sqlite3_str_appendf
    - sqlite3_vtab_config
    - rtreeRelease
    - sqlite3_declare_vtab
    - sqlite3_free
    - getNodeSize
    - strlen
    linkageType: ''
    returnType: int
    signature: "int rtreeInit(\n  sqlite3 *db,                        /* Database
      connection */\n  void *pAux,                         /* One of the RTREE_COORD_*
      constants */\n  int argc, const char *const*argv,   /* Parameters to CREATE
      TABLE statement */\n  sqlite3_vtab **ppVtab,              /* OUT: New virtual
      table */\n  char **pzErr,                       /* OUT: Error message, if any
      */\n  int isCreate                        /* True for xCreate, false for xConnect
      */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:185559,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:185560,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:185561,1
    - Dst: sqlite3_value_int
      Src: /src/nss/lib/sqlite/sqlite3.c:185562,1
    - Dst: sqlite3_value_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:185566,1
    - Dst: sqlite3_value_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:185567,1
    - Dst: NCELL
      Src: /src/nss/lib/sqlite/sqlite3.c:185569,1
    - Dst: sqlite3_str_new
      Src: /src/nss/lib/sqlite/sqlite3.c:185571,1
    - Dst: NCELL
      Src: /src/nss/lib/sqlite/sqlite3.c:185572,1
    - Dst: nodeGetCell
      Src: /src/nss/lib/sqlite/sqlite3.c:185576,1
    - Dst: sqlite3_str_append
      Src: /src/nss/lib/sqlite/sqlite3.c:185577,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:185578,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:185581,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:185583,1
    - Dst: sqlite3_str_append
      Src: /src/nss/lib/sqlite/sqlite3.c:185586,1
    - Dst: sqlite3_str_errcode
      Src: /src/nss/lib/sqlite/sqlite3.c:185588,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:185589,1
    - Dst: sqlite3_str_finish
      Src: /src/nss/lib/sqlite/sqlite3.c:185589,1
    - Dst: sqlite3_result_error_code
      Src: /src/nss/lib/sqlite/sqlite3.c:185590,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 3
    argNames:
    - ctx
    - nArg
    - apArg
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185591
      start: 185551
    functionDepth: 16
    functionLinenumber: 185551
    functionLinenumberEnd: 185591
    functionName: rtreenode
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_str_append
    - sqlite3_result_error_code
    - sqlite3_str_errcode
    - sqlite3_str_finish
    - NCELL
    - UNUSED_PARAMETER
    - sqlite3_value_int
    - nodeGetCell
    - memset
    - sqlite3_str_new
    - sqlite3_str_appendf
    - sqlite3_value_blob
    - sqlite3_result_text
    - sqlite3_value_bytes
    linkageType: ''
    returnType: void
    signature: void rtreenode(sqlite3_context *ctx, int nArg, sqlite3_value **apArg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAMETER
      Src: /src/nss/lib/sqlite/sqlite3.c:185603,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:185604,1
    - Dst: sqlite3_value_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:185605,1
    - Dst: sqlite3_result_error
      Src: /src/nss/lib/sqlite/sqlite3.c:185607,1
    - Dst: sqlite3_value_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:185609,1
    - Dst: sqlite3_result_int
      Src: /src/nss/lib/sqlite/sqlite3.c:185610,1
    - Dst: readInt16
      Src: /src/nss/lib/sqlite/sqlite3.c:185610,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ctx
    - nArg
    - apArg
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185612
      start: 185602
    functionDepth: 16
    functionLinenumber: 185602
    functionLinenumberEnd: 185612
    functionName: rtreedepth
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAMETER
    - readInt16
    - sqlite3_result_int
    - sqlite3_value_type
    - sqlite3_value_blob
    - sqlite3_value_bytes
    - sqlite3_result_error
    linkageType: ''
    returnType: void
    signature: void rtreedepth(sqlite3_context *ctx, int nArg, sqlite3_value **apArg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:185641,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - pCheck
    - pStmt
    argTypes:
    - RtreeCheck*
    - sqlite3_stmt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185643
      start: 185640
    functionDepth: 25
    functionLinenumber: 185640
    functionLinenumberEnd: 185643
    functionName: rtreeCheckReset
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_reset
    linkageType: ''
    returnType: void
    signature: void rtreeCheckReset(RtreeCheck *pCheck, sqlite3_stmt *pStmt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/nss/lib/sqlite/sqlite3.c:185661,1
    - Dst: sqlite3_vmprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:185662,1
    - Dst: sqlite3_prepare_v2
      Src: /src/nss/lib/sqlite/sqlite3.c:185668,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:185672,1
    - Dst: va_end
      Src: /src/nss/lib/sqlite/sqlite3.c:185673,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - pCheck
    - zFmt
    argTypes:
    - RtreeCheck*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185675
      start: 185653
    functionDepth: 28
    functionLinenumber: 185653
    functionLinenumberEnd: 185675
    functionName: rtreeCheckPrepare
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_vmprintf
    - va_end
    - sqlite3_prepare_v2
    - va_start
    - sqlite3_free
    linkageType: ''
    returnType: sqlite3_stmt
    signature: "sqlite3_stmt *rtreeCheckPrepare(\n  RtreeCheck *pCheck,             /*
      RtreeCheck object */\n  const char *zFmt, ...           /* Format string and
      trailing args */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/nss/lib/sqlite/sqlite3.c:185684,1
    - Dst: sqlite3_vmprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:185686,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:185690,1
    - Dst: va_end
      Src: /src/nss/lib/sqlite/sqlite3.c:185699,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - pCheck
    - zFmt
    argTypes:
    - RtreeCheck*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185700
      start: 185682
    functionDepth: 10
    functionLinenumber: 185682
    functionLinenumberEnd: 185700
    functionName: rtreeCheckAppendMsg
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mprintf
    - sqlite3_vmprintf
    - va_start
    - va_end
    linkageType: ''
    returnType: void
    signature: void rtreeCheckAppendMsg(RtreeCheck *pCheck, const char *zFmt, ...)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rtreeCheckPrepare
      Src: /src/nss/lib/sqlite/sqlite3.c:185720,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:185727,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:185728,1
    - Dst: sqlite3_column_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:185729,1
    - Dst: sqlite3_column_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:185730,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:185731,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:185735,1
    - Dst: rtreeCheckReset
      Src: /src/nss/lib/sqlite/sqlite3.c:185739,1
    - Dst: rtreeCheckAppendMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:185741,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - pCheck
    - iNode
    - pnNode
    argTypes:
    - RtreeCheck*
    - i64
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185746
      start: 185716
    functionDepth: 29
    functionLinenumber: 185716
    functionLinenumberEnd: 185746
    functionName: rtreeCheckGetNode
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - sqlite3_step
    - sqlite3_malloc64
    - sqlite3_column_blob
    - rtreeCheckAppendMsg
    - sqlite3_column_bytes
    - sqlite3_bind_int64
    - rtreeCheckReset
    - rtreeCheckPrepare
    linkageType: ''
    returnType: u8
    signature: u8 *rtreeCheckGetNode(RtreeCheck *pCheck, i64 iNode, int *pnNode)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:185773,1
    - Dst: rtreeCheckPrepare
      Src: /src/nss/lib/sqlite/sqlite3.c:185775,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:185782,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:185783,1
    - Dst: rtreeCheckAppendMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:185785,1
    - Dst: sqlite3_column_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:185789,1
    - Dst: rtreeCheckAppendMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:185791,1
    - Dst: rtreeCheckReset
      Src: /src/nss/lib/sqlite/sqlite3.c:185797,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 4
    argNames:
    - pCheck
    - bLeaf
    - iKey
    - iVal
    argTypes:
    - RtreeCheck*
    - int
    - i64
    - i64
    assertStmts:
    - condition: ( bLeaf==0 || bLeaf==1 )
      pos:
        line_end: 185772
        line_start: 185772
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 185798
      start: 185760
    functionDepth: 29
    functionLinenumber: 185760
    functionLinenumberEnd: 185798
    functionName: rtreeCheckMapping
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_step
    - rtreeCheckAppendMsg
    - sqlite3_column_int64
    - assert
    - sqlite3_bind_int64
    - rtreeCheckReset
    - rtreeCheckPrepare
    linkageType: ''
    returnType: void
    signature: "void rtreeCheckMapping(\n  RtreeCheck *pCheck,             /* RtreeCheck
      object */\n  int bLeaf,                      /* True for a leaf cell, false
      for interior */\n  i64 iKey,                       /* Key for mapping */\n  i64
      iVal                        /* Expected value for mapping */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: readCoord
      Src: /src/nss/lib/sqlite/sqlite3.c:185824,1
    - Dst: readCoord
      Src: /src/nss/lib/sqlite/sqlite3.c:185825,1
    - Dst: rtreeCheckAppendMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:185829,1
    - Dst: readCoord
      Src: /src/nss/lib/sqlite/sqlite3.c:185835,1
    - Dst: readCoord
      Src: /src/nss/lib/sqlite/sqlite3.c:185836,1
    - Dst: rtreeCheckAppendMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:185841,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 5
    argNames:
    - pCheck
    - iNode
    - iCell
    - pCell
    - pParent
    argTypes:
    - RtreeCheck*
    - i64
    - int
    - u8*
    - u8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185848
      start: 185812
    functionDepth: 11
    functionLinenumber: 185812
    functionLinenumberEnd: 185848
    functionName: rtreeCheckCellCoord
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - rtreeCheckAppendMsg
    - readCoord
    linkageType: ''
    returnType: void
    signature: "void rtreeCheckCellCoord(\n  RtreeCheck *pCheck, \n  i64 iNode,                      /*
      Node id to use in error messages */\n  int iCell,                      /* Cell
      number to use in error messages */\n  u8 *pCell,                      /* Pointer
      to cell coordinates */\n  u8 *pParent                     /* Pointer to parent
      coordinates */\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:185867,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:185868,1
    - Dst: rtreeCheckGetNode
      Src: /src/nss/lib/sqlite/sqlite3.c:185870,1
    - Dst: rtreeCheckAppendMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:185873,1
    - Dst: readInt16
      Src: /src/nss/lib/sqlite/sqlite3.c:185880,1
    - Dst: rtreeCheckAppendMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:185882,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:185883,1
    - Dst: readInt16
      Src: /src/nss/lib/sqlite/sqlite3.c:185887,1
    - Dst: rtreeCheckAppendMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:185889,1
    - Dst: readInt64
      Src: /src/nss/lib/sqlite/sqlite3.c:185896,1
    - Dst: rtreeCheckCellCoord
      Src: /src/nss/lib/sqlite/sqlite3.c:185897,1
    - Dst: rtreeCheckMapping
      Src: /src/nss/lib/sqlite/sqlite3.c:185900,1
    - Dst: rtreeCheckNode
      Src: /src/nss/lib/sqlite/sqlite3.c:185901,1
    - Dst: rtreeCheckMapping
      Src: /src/nss/lib/sqlite/sqlite3.c:185904,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:185910,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 4
    argNames:
    - pCheck
    - iDepth
    - aParent
    - iNode
    argTypes:
    - RtreeCheck*
    - int
    - u8*
    - i64
    assertStmts:
    - condition: ( iNode==1 || aParent!=0 )
      pos:
        line_end: 185866
        line_start: 185866
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCheck->nDim>0 )
      pos:
        line_end: 185867
        line_start: 185867
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 185912
      start: 185858
    functionDepth: 30
    functionLinenumber: 185858
    functionLinenumberEnd: 185912
    functionName: rtreeCheckNode
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - readInt64
    - rtreeCheckCellCoord
    - rtreeCheckMapping
    - rtreeCheckAppendMsg
    - readInt16
    - assert
    - rtreeCheckNode
    - rtreeCheckGetNode
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: "void rtreeCheckNode(\n  RtreeCheck *pCheck,\n  int iDepth,                     /*
      Depth of iNode (0==leaf) */\n  u8 *aParent,                    /* Buffer containing
      parent coords */\n  i64 iNode                       /* Node to check */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rtreeCheckPrepare
      Src: /src/nss/lib/sqlite/sqlite3.c:185924,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:185928,1
    - Dst: sqlite3_column_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:185929,1
    - Dst: rtreeCheckAppendMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:185931,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:185936,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - pCheck
    - zTbl
    - nExpect
    argTypes:
    - RtreeCheck*
    - char*
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185939
      start: 185921
    functionDepth: 29
    functionLinenumber: 185921
    functionLinenumberEnd: 185939
    functionName: rtreeCheckCount
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_step
    - rtreeCheckAppendMsg
    - sqlite3_column_int64
    - sqlite3_finalize
    - rtreeCheckPrepare
    linkageType: ''
    returnType: void
    signature: void rtreeCheckCount(RtreeCheck *pCheck, const char *zTbl, i64 nExpect)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:185957,1
    - Dst: sqlite3_get_autocommit
      Src: /src/nss/lib/sqlite/sqlite3.c:185965,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/sqlite/sqlite3.c:185966,1
    - Dst: rtreeCheckPrepare
      Src: /src/nss/lib/sqlite/sqlite3.c:185972,1
    - Dst: sqlite3_column_count
      Src: /src/nss/lib/sqlite/sqlite3.c:185974,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:185975,1
    - Dst: rtreeCheckPrepare
      Src: /src/nss/lib/sqlite/sqlite3.c:185981,1
    - Dst: sqlite3_column_count
      Src: /src/nss/lib/sqlite/sqlite3.c:185984,1
    - Dst: rtreeCheckAppendMsg
      Src: /src/nss/lib/sqlite/sqlite3.c:185986,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:185987,1
    - Dst: sqlite3_column_type
      Src: /src/nss/lib/sqlite/sqlite3.c:185988,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:185990,1
    - Dst: rtreeCheckNode
      Src: /src/nss/lib/sqlite/sqlite3.c:185997,1
    - Dst: rtreeCheckCount
      Src: /src/nss/lib/sqlite/sqlite3.c:185999,1
    - Dst: rtreeCheckCount
      Src: /src/nss/lib/sqlite/sqlite3.c:186000,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:186004,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:186005,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:186006,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/sqlite/sqlite3.c:186010,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 46
    argCount: 4
    argNames:
    - db
    - zDb
    - zTab
    - pzReport
    argTypes:
    - sqlite3*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186015
      start: 185945
    functionDepth: 31
    functionLinenumber: 185945
    functionLinenumberEnd: 186015
    functionName: rtreeCheckTable
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_column_type
    - sqlite3_step
    - rtreeCheckAppendMsg
    - sqlite3_column_count
    - sqlite3_finalize
    - memset
    - rtreeCheckCount
    - rtreeCheckNode
    - sqlite3_get_autocommit
    - sqlite3_exec
    - rtreeCheckPrepare
    linkageType: ''
    returnType: int
    signature: "int rtreeCheckTable(\n  sqlite3 *db,                    /* Database
      handle to access db through */\n  const char *zDb,                /* Name of
      db (\"main\", \"temp\" etc.) */\n  const char *zTab,               /* Name of
      rtree table to check */\n  char **pzReport                 /* OUT: sqlite3_malloc'd
      report text */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_result_error
      Src: /src/nss/lib/sqlite/sqlite3.c:186056,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:186062,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:186068,1
    - Dst: rtreeCheckTable
      Src: /src/nss/lib/sqlite/sqlite3.c:186070,1
    - Dst: sqlite3_context_db_handle
      Src: /src/nss/lib/sqlite/sqlite3.c:186070,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:186072,1
    - Dst: sqlite3_result_error_code
      Src: /src/nss/lib/sqlite/sqlite3.c:186074,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:186076,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - ctx
    - nArg
    - apArg
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186078
      start: 186050
    functionDepth: 32
    functionLinenumber: 186050
    functionLinenumberEnd: 186078
    functionName: rtreecheck
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - rtreeCheckTable
    - sqlite3_result_error_code
    - sqlite3_context_db_handle
    - sqlite3_value_text
    - sqlite3_free
    - sqlite3_result_text
    - sqlite3_result_error
    linkageType: ''
    returnType: void
    signature: "void rtreecheck(\n  sqlite3_context *ctx, \n  int nArg, \n  sqlite3_value
      **apArg\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186108
      start: 186107
    functionDepth: 0
    functionLinenumber: 186107
    functionLinenumberEnd: 186108
    functionName: GEODEBUG
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEODEBUG(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186121
      start: 186120
    functionDepth: 0
    functionLinenumber: 186120
    functionLinenumberEnd: 186121
    functionName: safe_isdigit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: safe_isdigit(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186122
      start: 186121
    functionDepth: 0
    functionLinenumber: 186121
    functionLinenumberEnd: 186122
    functionName: safe_isalnum
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: safe_isalnum(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186123
      start: 186122
    functionDepth: 0
    functionLinenumber: 186122
    functionLinenumberEnd: 186123
    functionName: safe_isxdigit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: safe_isxdigit(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186127
      start: 186126
    functionDepth: 0
    functionLinenumber: 186126
    functionLinenumberEnd: 186127
    functionName: safe_isdigit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: safe_isdigit(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186128
      start: 186127
    functionDepth: 0
    functionLinenumber: 186127
    functionLinenumberEnd: 186128
    functionName: safe_isalnum
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: safe_isalnum(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186129
      start: 186128
    functionDepth: 0
    functionLinenumber: 186128
    functionLinenumberEnd: 186129
    functionName: safe_isxdigit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: safe_isxdigit(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186154
      start: 186153
    functionDepth: 0
    functionLinenumber: 186153
    functionLinenumberEnd: 186154
    functionName: safe_isspace
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: safe_isspace(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - N
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186209
      start: 186208
    functionDepth: 0
    functionLinenumber: 186208
    functionLinenumberEnd: 186209
    functionName: GEOPOLY_SZ
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GEOPOLY_SZ(N)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - P
    - ','
    - I
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186215
      start: 186214
    functionDepth: 0
    functionLinenumber: 186214
    functionLinenumberEnd: 186215
    functionName: GeoX
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GeoX(P,I)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - P
    - ','
    - I
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186216
      start: 186215
    functionDepth: 0
    functionLinenumber: 186215
    functionLinenumberEnd: 186216
    functionName: GeoY
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GeoY(P,I)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - a
    argTypes:
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186238
      start: 186231
    functionDepth: 0
    functionLinenumber: 186231
    functionLinenumberEnd: 186238
    functionName: geopolySwab32
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void geopolySwab32(unsigned char *a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: safe_isspace
      Src: /src/nss/lib/sqlite/sqlite3.c:186242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - GeoParse*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186244
      start: 186241
    functionDepth: 1
    functionLinenumber: 186241
    functionLinenumberEnd: 186244
    functionName: geopolySkipSpace
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - safe_isspace
    linkageType: ''
    returnType: char
    signature: char geopolySkipSpace(GeoParse *p)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: geopolySkipSpace
      Src: /src/nss/lib/sqlite/sqlite3.c:186250,1
    - Dst: safe_isdigit
      Src: /src/nss/lib/sqlite/sqlite3.c:186262,1
    - Dst: sqlite3AtoF
      Src: /src/nss/lib/sqlite/sqlite3.c:186289,1
    - Dst: atof
      Src: /src/nss/lib/sqlite/sqlite3.c:186292,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 45
    argCount: 2
    argNames:
    - p
    - pVal
    argTypes:
    - GeoParse*
    - GeoCoord*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186297
      start: 186249
    functionDepth: 2
    functionLinenumber: 186249
    functionLinenumberEnd: 186297
    functionName: geopolyParseNumber
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - geopolySkipSpace
    - atof
    - sqlite3AtoF
    - safe_isdigit
    linkageType: ''
    returnType: int
    signature: int geopolyParseNumber(GeoParse *p, GeoCoord *pVal)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:186310,1
    - Dst: geopolySkipSpace
      Src: /src/nss/lib/sqlite/sqlite3.c:186312,1
    - Dst: geopolySkipSpace
      Src: /src/nss/lib/sqlite/sqlite3.c:186314,1
    - Dst: sqlite3_realloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:186321,1
    - Dst: geopolyParseNumber
      Src: /src/nss/lib/sqlite/sqlite3.c:186329,1
    - Dst: geopolySkipSpace
      Src: /src/nss/lib/sqlite/sqlite3.c:186332,1
    - Dst: geopolySkipSpace
      Src: /src/nss/lib/sqlite/sqlite3.c:186340,1
    - Dst: geopolySkipSpace
      Src: /src/nss/lib/sqlite/sqlite3.c:186346,1
    - Dst: geopolySkipSpace
      Src: /src/nss/lib/sqlite/sqlite3.c:186350,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:186355,1
    - Dst: GEOPOLY_SZ
      Src: /src/nss/lib/sqlite/sqlite3.c:186355,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:186359,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:186364,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:186374,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 66
    argCount: 2
    argNames:
    - z
    - pRc
    argTypes:
    - unsigned char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186376
      start: 186307
    functionDepth: 7
    functionLinenumber: 186307
    functionLinenumberEnd: 186376
    functionName: geopolyParseJson
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    - memcpy
    - sqlite3_malloc64
    - GEOPOLY_SZ
    - memset
    - geopolySkipSpace
    - geopolyParseNumber
    - sqlite3_realloc64
    linkageType: ''
    returnType: GeoPoly
    signature: GeoPoly *geopolyParseJson(const unsigned char *z, int *pRc)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:186391,1
    - Dst: sqlite3_value_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:186392,1
    - Dst: sqlite3_value_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:186394,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:186400,1
    - Dst: sqlite3_result_error_nomem
      Src: /src/nss/lib/sqlite/sqlite3.c:186403,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:186407,1
    - Dst: geopolySwab32
      Src: /src/nss/lib/sqlite/sqlite3.c:186411,1
    - Dst: GeoX
      Src: /src/nss/lib/sqlite/sqlite3.c:186411,1
    - Dst: geopolySwab32
      Src: /src/nss/lib/sqlite/sqlite3.c:186412,1
    - Dst: GeoY
      Src: /src/nss/lib/sqlite/sqlite3.c:186412,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:186420,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:186421,1
    - Dst: geopolyParseJson
      Src: /src/nss/lib/sqlite/sqlite3.c:186426,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 3
    argNames:
    - pCtx
    - pVal
    - pRc
    argTypes:
    - sqlite3_context*
    - sqlite3_value*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186431
      start: 186384
    functionDepth: 16
    functionLinenumber: 186384
    functionLinenumberEnd: 186431
    functionName: geopolyFuncParam
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - geopolyParseJson
    - memcpy
    - sqlite3_malloc64
    - GeoY
    - geopolySwab32
    - GeoX
    - sqlite3_result_error_nomem
    - sqlite3_value_type
    - sqlite3_value_blob
    - sqlite3_value_text
    - sqlite3_value_bytes
    linkageType: ''
    returnType: GeoPoly
    signature: "GeoPoly *geopolyFuncParam(\n  sqlite3_context *pCtx,      /* Context
      for error messages */\n  sqlite3_value *pVal,        /* The value to decode
      */\n  int *pRc                    /* Write error here */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: geopolyFuncParam
      Src: /src/nss/lib/sqlite/sqlite3.c:186445,1
    - Dst: sqlite3_result_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:186447,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:186449,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186451
      start: 186440
    functionDepth: 17
    functionLinenumber: 186440
    functionLinenumberEnd: 186451
    functionName: geopolyBlobFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_blob
    - sqlite3_free
    - geopolyFuncParam
    linkageType: ''
    returnType: void
    signature: "void geopolyBlobFunc(\n  sqlite3_context *context,\n  int argc,\n
      \ sqlite3_value **argv\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: geopolyFuncParam
      Src: /src/nss/lib/sqlite/sqlite3.c:186464,1
    - Dst: sqlite3_context_db_handle
      Src: /src/nss/lib/sqlite/sqlite3.c:186466,1
    - Dst: sqlite3_str_new
      Src: /src/nss/lib/sqlite/sqlite3.c:186467,1
    - Dst: sqlite3_str_append
      Src: /src/nss/lib/sqlite/sqlite3.c:186469,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:186471,1
    - Dst: GeoX
      Src: /src/nss/lib/sqlite/sqlite3.c:186471,1
    - Dst: GeoY
      Src: /src/nss/lib/sqlite/sqlite3.c:186471,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:186473,1
    - Dst: GeoX
      Src: /src/nss/lib/sqlite/sqlite3.c:186473,1
    - Dst: GeoY
      Src: /src/nss/lib/sqlite/sqlite3.c:186473,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:186474,1
    - Dst: sqlite3_str_finish
      Src: /src/nss/lib/sqlite/sqlite3.c:186474,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:186475,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186477
      start: 186459
    functionDepth: 17
    functionLinenumber: 186459
    functionLinenumberEnd: 186477
    functionName: geopolyJsonFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_str_append
    - GeoY
    - GeoX
    - sqlite3_context_db_handle
    - sqlite3_str_finish
    - sqlite3_str_new
    - sqlite3_str_appendf
    - geopolyFuncParam
    - sqlite3_free
    - sqlite3_result_text
    linkageType: ''
    returnType: void
    signature: "void geopolyJsonFunc(\n  sqlite3_context *context,\n  int argc,\n
      \ sqlite3_value **argv\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: geopolyFuncParam
      Src: /src/nss/lib/sqlite/sqlite3.c:186492,1
    - Dst: sqlite3_context_db_handle
      Src: /src/nss/lib/sqlite/sqlite3.c:186494,1
    - Dst: sqlite3_str_new
      Src: /src/nss/lib/sqlite/sqlite3.c:186495,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:186498,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:186500,1
    - Dst: GeoX
      Src: /src/nss/lib/sqlite/sqlite3.c:186500,1
    - Dst: GeoY
      Src: /src/nss/lib/sqlite/sqlite3.c:186500,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:186503,1
    - Dst: GeoX
      Src: /src/nss/lib/sqlite/sqlite3.c:186503,1
    - Dst: GeoY
      Src: /src/nss/lib/sqlite/sqlite3.c:186503,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:186505,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:186507,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:186510,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:186511,1
    - Dst: sqlite3_str_finish
      Src: /src/nss/lib/sqlite/sqlite3.c:186511,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:186512,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186514
      start: 186485
    functionDepth: 17
    functionLinenumber: 186485
    functionLinenumberEnd: 186514
    functionName: geopolySvgFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - GeoY
    - GeoX
    - sqlite3_context_db_handle
    - sqlite3_str_finish
    - sqlite3_str_new
    - sqlite3_str_appendf
    - geopolyFuncParam
    - sqlite3_value_text
    - sqlite3_free
    - sqlite3_result_text
    linkageType: ''
    returnType: void
    signature: "void geopolySvgFunc(\n  sqlite3_context *context,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: geopolyFuncParam
      Src: /src/nss/lib/sqlite/sqlite3.c:186537,1
    - Dst: sqlite3_value_double
      Src: /src/nss/lib/sqlite/sqlite3.c:186538,1
    - Dst: sqlite3_value_double
      Src: /src/nss/lib/sqlite/sqlite3.c:186539,1
    - Dst: sqlite3_value_double
      Src: /src/nss/lib/sqlite/sqlite3.c:186540,1
    - Dst: sqlite3_value_double
      Src: /src/nss/lib/sqlite/sqlite3.c:186541,1
    - Dst: sqlite3_value_double
      Src: /src/nss/lib/sqlite/sqlite3.c:186542,1
    - Dst: sqlite3_value_double
      Src: /src/nss/lib/sqlite/sqlite3.c:186543,1
    - Dst: GeoX
      Src: /src/nss/lib/sqlite/sqlite3.c:186548,1
    - Dst: GeoY
      Src: /src/nss/lib/sqlite/sqlite3.c:186549,1
    - Dst: GeoX
      Src: /src/nss/lib/sqlite/sqlite3.c:186552,1
    - Dst: GeoY
      Src: /src/nss/lib/sqlite/sqlite3.c:186553,1
    - Dst: sqlite3_result_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:186555,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:186557,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186559
      start: 186532
    functionDepth: 17
    functionLinenumber: 186532
    functionLinenumberEnd: 186559
    functionName: geopolyXformFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_blob
    - GeoY
    - GeoX
    - geopolyFuncParam
    - sqlite3_value_double
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: "void geopolyXformFunc(\n  sqlite3_context *context,\n  int argc,\n
      \ sqlite3_value **argv\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GeoX
      Src: /src/nss/lib/sqlite/sqlite3.c:186572,1
    - Dst: GeoX
      Src: /src/nss/lib/sqlite/sqlite3.c:186572,1
    - Dst: GeoY
      Src: /src/nss/lib/sqlite/sqlite3.c:186573,1
    - Dst: GeoY
      Src: /src/nss/lib/sqlite/sqlite3.c:186573,1
    - Dst: GeoX
      Src: /src/nss/lib/sqlite/sqlite3.c:186576,1
    - Dst: GeoX
      Src: /src/nss/lib/sqlite/sqlite3.c:186576,1
    - Dst: GeoY
      Src: /src/nss/lib/sqlite/sqlite3.c:186577,1
    - Dst: GeoY
      Src: /src/nss/lib/sqlite/sqlite3.c:186577,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - GeoPoly*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186580
      start: 186568
    functionDepth: 1
    functionLinenumber: 186568
    functionLinenumberEnd: 186580
    functionName: geopolyArea
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - GeoY
    - GeoX
    linkageType: ''
    returnType: double
    signature: double geopolyArea(GeoPoly *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: geopolyFuncParam
      Src: /src/nss/lib/sqlite/sqlite3.c:186595,1
    - Dst: sqlite3_result_double
      Src: /src/nss/lib/sqlite/sqlite3.c:186597,1
    - Dst: geopolyArea
      Src: /src/nss/lib/sqlite/sqlite3.c:186597,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:186598,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186600
      start: 186590
    functionDepth: 17
    functionLinenumber: 186590
    functionLinenumberEnd: 186600
    functionName: geopolyAreaFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_double
    - geopolyArea
    - sqlite3_free
    - geopolyFuncParam
    linkageType: ''
    returnType: void
    signature: "void geopolyAreaFunc(\n  sqlite3_context *context,\n  int argc,\n
      \ sqlite3_value **argv\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: geopolyFuncParam
      Src: /src/nss/lib/sqlite/sqlite3.c:186620,1
    - Dst: geopolyArea
      Src: /src/nss/lib/sqlite/sqlite3.c:186622,1
    - Dst: GeoX
      Src: /src/nss/lib/sqlite/sqlite3.c:186625,1
    - Dst: GeoX
      Src: /src/nss/lib/sqlite/sqlite3.c:186626,1
    - Dst: GeoX
      Src: /src/nss/lib/sqlite/sqlite3.c:186626,1
    - Dst: GeoX
      Src: /src/nss/lib/sqlite/sqlite3.c:186627,1
    - Dst: GeoY
      Src: /src/nss/lib/sqlite/sqlite3.c:186628,1
    - Dst: GeoY
      Src: /src/nss/lib/sqlite/sqlite3.c:186629,1
    - Dst: GeoY
      Src: /src/nss/lib/sqlite/sqlite3.c:186629,1
    - Dst: GeoY
      Src: /src/nss/lib/sqlite/sqlite3.c:186630,1
    - Dst: sqlite3_result_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:186633,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:186635,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186637
      start: 186615
    functionDepth: 17
    functionLinenumber: 186615
    functionLinenumberEnd: 186637
    functionName: geopolyCcwFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_blob
    - geopolyArea
    - GeoY
    - GeoX
    - geopolyFuncParam
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: "void geopolyCcwFunc(\n  sqlite3_context *context,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:186644,1
    - Dst: geopolySine
      Src: /src/nss/lib/sqlite/sqlite3.c:186649,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - r
    argTypes:
    - double
    assertStmts:
    - condition: ( r>=-0.5*GEOPOLY_PI && r<=2.0*GEOPOLY_PI )
      pos:
        line_end: 186643
        line_start: 186643
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 186656
      start: 186643
    functionDepth: 1
    functionLinenumber: 186643
    functionLinenumberEnd: 186656
    functionName: geopolySine
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - geopolySine
    linkageType: ''
    returnType: double
    signature: double geopolySine(double r)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_double
      Src: /src/nss/lib/sqlite/sqlite3.c:186669,1
    - Dst: sqlite3_value_double
      Src: /src/nss/lib/sqlite/sqlite3.c:186670,1
    - Dst: sqlite3_value_double
      Src: /src/nss/lib/sqlite/sqlite3.c:186671,1
    - Dst: sqlite3_value_int
      Src: /src/nss/lib/sqlite/sqlite3.c:186672,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:186678,1
    - Dst: sqlite3_result_error_nomem
      Src: /src/nss/lib/sqlite/sqlite3.c:186680,1
    - Dst: GeoX
      Src: /src/nss/lib/sqlite/sqlite3.c:186690,1
    - Dst: geopolySine
      Src: /src/nss/lib/sqlite/sqlite3.c:186690,1
    - Dst: GeoY
      Src: /src/nss/lib/sqlite/sqlite3.c:186691,1
    - Dst: geopolySine
      Src: /src/nss/lib/sqlite/sqlite3.c:186691,1
    - Dst: sqlite3_result_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:186693,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:186694,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186695
      start: 186664
    functionDepth: 14
    functionLinenumber: 186664
    functionLinenumberEnd: 186695
    functionName: geopolyRegularFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_blob
    - sqlite3_malloc64
    - GeoY
    - GeoX
    - geopolySine
    - sqlite3_value_int
    - sqlite3_result_error_nomem
    - sqlite3_value_double
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: "void geopolyRegularFunc(\n  sqlite3_context *context,\n  int argc,\n
      \ sqlite3_value **argv\n)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: geopolyFuncParam
      Src: /src/nss/lib/sqlite/sqlite3.c:186724,1
    - Dst: GeoX
      Src: /src/nss/lib/sqlite/sqlite3.c:186728,1
    - Dst: GeoY
      Src: /src/nss/lib/sqlite/sqlite3.c:186729,1
    - Dst: GeoX
      Src: /src/nss/lib/sqlite/sqlite3.c:186731,1
    - Dst: GeoY
      Src: /src/nss/lib/sqlite/sqlite3.c:186734,1
    - Dst: sqlite3_realloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:186741,1
    - Dst: GEOPOLY_SZ
      Src: /src/nss/lib/sqlite/sqlite3.c:186741,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:186743,1
    - Dst: sqlite3_result_error_nomem
      Src: /src/nss/lib/sqlite/sqlite3.c:186744,1
    - Dst: GeoX
      Src: /src/nss/lib/sqlite/sqlite3.c:186754,1
    - Dst: GeoY
      Src: /src/nss/lib/sqlite/sqlite3.c:186755,1
    - Dst: GeoX
      Src: /src/nss/lib/sqlite/sqlite3.c:186756,1
    - Dst: GeoY
      Src: /src/nss/lib/sqlite/sqlite3.c:186757,1
    - Dst: GeoX
      Src: /src/nss/lib/sqlite/sqlite3.c:186758,1
    - Dst: GeoY
      Src: /src/nss/lib/sqlite/sqlite3.c:186759,1
    - Dst: GeoX
      Src: /src/nss/lib/sqlite/sqlite3.c:186760,1
    - Dst: GeoY
      Src: /src/nss/lib/sqlite/sqlite3.c:186761,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:186763,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 63
    argCount: 4
    argNames:
    - context
    - pPoly
    - aCoord
    - pRc
    argTypes:
    - sqlite3_context*
    - sqlite3_value*
    - RtreeCoord*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186771
      start: 186707
    functionDepth: 17
    functionLinenumber: 186707
    functionLinenumberEnd: 186771
    functionName: geopolyBBox
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    - GeoY
    - GEOPOLY_SZ
    - GeoX
    - sqlite3_result_error_nomem
    - geopolyFuncParam
    - sqlite3_realloc64
    linkageType: ''
    returnType: GeoPoly
    signature: "GeoPoly *geopolyBBox(\n  sqlite3_context *context,   /* For recording
      the error */\n  sqlite3_value *pPoly,       /* The polygon */\n  RtreeCoord
      *aCoord,         /* Results here */\n  int *pRc                    /* Error
      code here */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: geopolyBBox
      Src: /src/nss/lib/sqlite/sqlite3.c:186781,1
    - Dst: sqlite3_result_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:186783,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:186785,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186787
      start: 186776
    functionDepth: 18
    functionLinenumber: 186776
    functionLinenumberEnd: 186787
    functionName: geopolyBBoxFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - geopolyBBox
    - sqlite3_result_blob
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: "void geopolyBBoxFunc(\n  sqlite3_context *context,\n  int argc,\n
      \ sqlite3_value **argv\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: geopolyBBox
      Src: /src/nss/lib/sqlite/sqlite3.c:186809,1
    - Dst: sqlite3_aggregate_context
      Src: /src/nss/lib/sqlite/sqlite3.c:186812,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:186816,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186824
      start: 186802
    functionDepth: 18
    functionLinenumber: 186802
    functionLinenumberEnd: 186824
    functionName: geopolyBBoxStep
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - geopolyBBox
    - memcpy
    - sqlite3_aggregate_context
    linkageType: ''
    returnType: void
    signature: "void geopolyBBoxStep(\n  sqlite3_context *context,\n  int argc,\n
      \ sqlite3_value **argv\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_aggregate_context
      Src: /src/nss/lib/sqlite/sqlite3.c:186830,1
    - Dst: geopolyBBox
      Src: /src/nss/lib/sqlite/sqlite3.c:186832,1
    - Dst: sqlite3_result_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:186834,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:186836,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - context
    argTypes:
    - sqlite3_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186838
      start: 186825
    functionDepth: 18
    functionLinenumber: 186825
    functionLinenumberEnd: 186838
    functionName: geopolyBBoxFinal
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    - geopolyBBox
    - sqlite3_result_blob
    - sqlite3_aggregate_context
    linkageType: ''
    returnType: void
    signature: "void geopolyBBoxFinal(\n  sqlite3_context *context\n)"
  - BBCount: 11
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 25
    argCount: 6
    argNames:
    - x0
    - y0
    - x1
    - y1
    - x2
    - y2
    argTypes:
    - double
    - double
    - double
    - double
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186877
      start: 186855
    functionDepth: 0
    functionLinenumber: 186855
    functionLinenumberEnd: 186877
    functionName: pointBeneathLine
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int pointBeneathLine(\n  double x0, double y0,\n  double x1, double
      y1,\n  double x2, double y2\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: geopolyFuncParam
      Src: /src/nss/lib/sqlite/sqlite3.c:186891,1
    - Dst: sqlite3_value_double
      Src: /src/nss/lib/sqlite/sqlite3.c:186892,1
    - Dst: sqlite3_value_double
      Src: /src/nss/lib/sqlite/sqlite3.c:186893,1
    - Dst: pointBeneathLine
      Src: /src/nss/lib/sqlite/sqlite3.c:186899,1
    - Dst: GeoX
      Src: /src/nss/lib/sqlite/sqlite3.c:186899,1
    - Dst: GeoY
      Src: /src/nss/lib/sqlite/sqlite3.c:186899,1
    - Dst: GeoX
      Src: /src/nss/lib/sqlite/sqlite3.c:186900,1
    - Dst: GeoY
      Src: /src/nss/lib/sqlite/sqlite3.c:186900,1
    - Dst: pointBeneathLine
      Src: /src/nss/lib/sqlite/sqlite3.c:186905,1
    - Dst: GeoX
      Src: /src/nss/lib/sqlite/sqlite3.c:186905,1
    - Dst: GeoY
      Src: /src/nss/lib/sqlite/sqlite3.c:186905,1
    - Dst: GeoX
      Src: /src/nss/lib/sqlite/sqlite3.c:186906,1
    - Dst: GeoY
      Src: /src/nss/lib/sqlite/sqlite3.c:186906,1
    - Dst: sqlite3_result_int
      Src: /src/nss/lib/sqlite/sqlite3.c:186909,1
    - Dst: sqlite3_result_int
      Src: /src/nss/lib/sqlite/sqlite3.c:186911,1
    - Dst: sqlite3_result_int
      Src: /src/nss/lib/sqlite/sqlite3.c:186913,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:186915,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186916
      start: 186886
    functionDepth: 17
    functionLinenumber: 186886
    functionLinenumberEnd: 186916
    functionName: geopolyContainsPointFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - GeoY
    - GeoX
    - pointBeneathLine
    - sqlite3_result_int
    - geopolyFuncParam
    - sqlite3_value_double
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: "void geopolyContainsPointFunc(\n  sqlite3_context *context,\n  int
      argc,\n  sqlite3_value **argv\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: geopolyFuncParam
      Src: /src/nss/lib/sqlite/sqlite3.c:186934,1
    - Dst: geopolyFuncParam
      Src: /src/nss/lib/sqlite/sqlite3.c:186935,1
    - Dst: geopolyOverlap
      Src: /src/nss/lib/sqlite/sqlite3.c:186937,1
    - Dst: sqlite3_result_error_nomem
      Src: /src/nss/lib/sqlite/sqlite3.c:186939,1
    - Dst: sqlite3_result_int
      Src: /src/nss/lib/sqlite/sqlite3.c:186941,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:186944,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:186945,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186946
      start: 186929
    functionDepth: 17
    functionLinenumber: 186929
    functionLinenumberEnd: 186946
    functionName: geopolyWithinFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_int
    - sqlite3_result_error_nomem
    - geopolyFuncParam
    - sqlite3_free
    - geopolyOverlap
    linkageType: ''
    returnType: void
    signature: "void geopolyWithinFunc(\n  sqlite3_context *context,\n  int argc,\n
      \ sqlite3_value **argv\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 7
    argNames:
    - p
    - x0
    - y0
    - x1
    - y1
    - side
    - idx
    argTypes:
    - GeoOverlap*
    - GeoCoord
    - GeoCoord
    - GeoCoord
    - GeoCoord
    - unsigned char
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187013
      start: 186976
    functionDepth: 0
    functionLinenumber: 186976
    functionLinenumberEnd: 187013
    functionName: geopolyAddOneSegment
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void geopolyAddOneSegment(\n  GeoOverlap *p,\n  GeoCoord x0,\n  GeoCoord
      y0,\n  GeoCoord x1,\n  GeoCoord y1,\n  unsigned char side,\n  unsigned int idx\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GeoX
      Src: /src/nss/lib/sqlite/sqlite3.c:187028,1
    - Dst: geopolyAddOneSegment
      Src: /src/nss/lib/sqlite/sqlite3.c:187029,1
    - Dst: GeoX
      Src: /src/nss/lib/sqlite/sqlite3.c:187031,1
    - Dst: geopolyAddOneSegment
      Src: /src/nss/lib/sqlite/sqlite3.c:187032,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - p
    - pPoly
    - side
    argTypes:
    - GeoOverlap*
    - GeoPoly*
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187033
      start: 187020
    functionDepth: 1
    functionLinenumber: 187020
    functionLinenumberEnd: 187033
    functionName: geopolyAddSegments
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - geopolyAddOneSegment
    - GeoX
    linkageType: ''
    returnType: void
    signature: "void geopolyAddSegments(\n  GeoOverlap *p,          /* Add segments
      to this Overlap object */\n  GeoPoly *pPoly,         /* Take all segments from
      this polygon */\n  unsigned char side      /* The side of pPoly */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - pLeft
    - pRight
    argTypes:
    - GeoEvent*
    - GeoEvent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187055
      start: 187038
    functionDepth: 0
    functionLinenumber: 187038
    functionLinenumberEnd: 187055
    functionName: geopolyEventMerge
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GeoEvent
    signature: GeoEvent *geopolyEventMerge(GeoEvent *pLeft, GeoEvent *pRight)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: geopolyEventMerge
      Src: /src/nss/lib/sqlite/sqlite3.c:187069,1
    - Dst: geopolyEventMerge
      Src: /src/nss/lib/sqlite/sqlite3.c:187077,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - aEvent
    - nEvent
    argTypes:
    - GeoEvent*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187080
      start: 187060
    functionDepth: 1
    functionLinenumber: 187060
    functionLinenumberEnd: 187080
    functionName: geopolySortEventsByX
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - geopolyEventMerge
    linkageType: ''
    returnType: GeoEvent
    signature: GeoEvent *geopolySortEventsByX(GeoEvent *aEvent, int nEvent)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - pLeft
    - pRight
    argTypes:
    - GeoSegment*
    - GeoSegment*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187104
      start: 187085
    functionDepth: 0
    functionLinenumber: 187085
    functionLinenumberEnd: 187104
    functionName: geopolySegmentMerge
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GeoSegment
    signature: GeoSegment *geopolySegmentMerge(GeoSegment *pLeft, GeoSegment *pRight)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: geopolySegmentMerge
      Src: /src/nss/lib/sqlite/sqlite3.c:187120,1
    - Dst: geopolySegmentMerge
      Src: /src/nss/lib/sqlite/sqlite3.c:187128,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - pList
    argTypes:
    - GeoSegment*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187131
      start: 187110
    functionDepth: 1
    functionLinenumber: 187110
    functionLinenumberEnd: 187131
    functionName: geopolySortSegmentsByYAndC
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - geopolySegmentMerge
    linkageType: ''
    returnType: GeoSegment
    signature: GeoSegment *geopolySortSegmentsByYAndC(GeoSegment *pList)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:187151,1
    - Dst: geopolyAddSegments
      Src: /src/nss/lib/sqlite/sqlite3.c:187156,1
    - Dst: geopolyAddSegments
      Src: /src/nss/lib/sqlite/sqlite3.c:187157,1
    - Dst: geopolySortEventsByX
      Src: /src/nss/lib/sqlite/sqlite3.c:187158,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:187160,1
    - Dst: GEODEBUG
      Src: /src/nss/lib/sqlite/sqlite3.c:187165,1
    - Dst: GEODEBUG
      Src: /src/nss/lib/sqlite/sqlite3.c:187168,1
    - Dst: geopolySortSegmentsByYAndC
      Src: /src/nss/lib/sqlite/sqlite3.c:187169,1
    - Dst: GEODEBUG
      Src: /src/nss/lib/sqlite/sqlite3.c:187175,1
    - Dst: GEODEBUG
      Src: /src/nss/lib/sqlite/sqlite3.c:187185,1
    - Dst: GEODEBUG
      Src: /src/nss/lib/sqlite/sqlite3.c:187190,1
    - Dst: GEODEBUG
      Src: /src/nss/lib/sqlite/sqlite3.c:187195,1
    - Dst: GEODEBUG
      Src: /src/nss/lib/sqlite/sqlite3.c:187203,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:187243,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 91
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - GeoPoly*
    - GeoPoly*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187245
      start: 187136
    functionDepth: 6
    functionLinenumber: 187136
    functionLinenumberEnd: 187245
    functionName: geopolyOverlap
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_malloc64
    - GEODEBUG
    - geopolySortSegmentsByYAndC
    - memset
    - geopolySortEventsByX
    - geopolyAddSegments
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int geopolyOverlap(GeoPoly *p1, GeoPoly *p2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: geopolyFuncParam
      Src: /src/nss/lib/sqlite/sqlite3.c:187264,1
    - Dst: geopolyFuncParam
      Src: /src/nss/lib/sqlite/sqlite3.c:187265,1
    - Dst: geopolyOverlap
      Src: /src/nss/lib/sqlite/sqlite3.c:187267,1
    - Dst: sqlite3_result_error_nomem
      Src: /src/nss/lib/sqlite/sqlite3.c:187269,1
    - Dst: sqlite3_result_int
      Src: /src/nss/lib/sqlite/sqlite3.c:187271,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:187274,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:187275,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187276
      start: 187259
    functionDepth: 17
    functionLinenumber: 187259
    functionLinenumberEnd: 187276
    functionName: geopolyOverlapFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_int
    - sqlite3_result_error_nomem
    - geopolyFuncParam
    - sqlite3_free
    - geopolyOverlap
    linkageType: ''
    returnType: void
    signature: "void geopolyOverlapFunc(\n  sqlite3_context *context,\n  int argc,\n
      \ sqlite3_value **argv\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_int
      Src: /src/nss/lib/sqlite/sqlite3.c:187287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187289
      start: 187281
    functionDepth: 6
    functionLinenumber: 187281
    functionLinenumberEnd: 187289
    functionName: geopolyDebugFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_value_int
    linkageType: ''
    returnType: void
    signature: "void geopolyDebugFunc(\n  sqlite3_context *context,\n  int argc,\n
      \ sqlite3_value **argv\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_vtab_config
      Src: /src/nss/lib/sqlite/sqlite3.c:187316,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:187319,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:187320,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:187321,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:187325,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:187333,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:187334,1
    - Dst: sqlite3_str_new
      Src: /src/nss/lib/sqlite/sqlite3.c:187341,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:187342,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:187347,1
    - Dst: sqlite3_str_appendf
      Src: /src/nss/lib/sqlite/sqlite3.c:187349,1
    - Dst: sqlite3_str_finish
      Src: /src/nss/lib/sqlite/sqlite3.c:187350,1
    - Dst: sqlite3_declare_vtab
      Src: /src/nss/lib/sqlite/sqlite3.c:187353,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:187354,1
    - Dst: sqlite3_errmsg
      Src: /src/nss/lib/sqlite/sqlite3.c:187354,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:187356,1
    - Dst: getNodeSize
      Src: /src/nss/lib/sqlite/sqlite3.c:187361,1
    - Dst: rtreeSqlInit
      Src: /src/nss/lib/sqlite/sqlite3.c:187363,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:187365,1
    - Dst: sqlite3_errmsg
      Src: /src/nss/lib/sqlite/sqlite3.c:187365,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:187374,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:187375,1
    - Dst: rtreeRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:187376,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 59
    argCount: 7
    argNames:
    - db
    - pAux
    - argc
    - argv
    - ppVtab
    - pzErr
    - isCreate
    argTypes:
    - sqlite3*
    - void*
    - int
    - char**
    - sqlite3_vtab**
    - char**
    - int
    assertStmts:
    - condition: ( pRtree->nBusy==1 )
      pos:
        line_end: 187374
        line_start: 187374
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( *ppVtab==0 )
      pos:
        line_end: 187373
        line_start: 187373
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 187378
      start: 187300
    functionDepth: 30
    functionLinenumber: 187300
    functionLinenumberEnd: 187378
    functionName: geopolyInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - sqlite3_malloc64
    - rtreeSqlInit
    - sqlite3_str_finish
    - memset
    - sqlite3_str_new
    - sqlite3_mprintf
    - sqlite3_errmsg
    - assert
    - sqlite3_str_appendf
    - sqlite3_vtab_config
    - rtreeRelease
    - sqlite3_declare_vtab
    - sqlite3_free
    - getNodeSize
    - strlen
    linkageType: ''
    returnType: int
    signature: "int geopolyInit(\n  sqlite3 *db,                        /* Database
      connection */\n  void *pAux,                         /* One of the RTREE_COORD_*
      constants */\n  int argc, const char *const*argv,   /* Parameters to CREATE
      TABLE statement */\n  sqlite3_vtab **ppVtab,              /* OUT: New virtual
      table */\n  char **pzErr,                       /* OUT: Error message, if any
      */\n  int isCreate                        /* True for xCreate, false for xConnect
      */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: geopolyInit
      Src: /src/nss/lib/sqlite/sqlite3.c:187391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - db
    - pAux
    - argc
    - argv
    - ppVtab
    - pzErr
    argTypes:
    - sqlite3*
    - void*
    - int
    - char**
    - sqlite3_vtab**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187392
      start: 187384
    functionDepth: 31
    functionLinenumber: 187384
    functionLinenumberEnd: 187392
    functionName: geopolyCreate
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - geopolyInit
    linkageType: ''
    returnType: int
    signature: "int geopolyCreate(\n  sqlite3 *db,\n  void *pAux,\n  int argc, const
      char *const*argv,\n  sqlite3_vtab **ppVtab,\n  char **pzErr\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: geopolyInit
      Src: /src/nss/lib/sqlite/sqlite3.c:187404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - db
    - pAux
    - argc
    - argv
    - ppVtab
    - pzErr
    argTypes:
    - sqlite3*
    - void*
    - int
    - char**
    - sqlite3_vtab**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187405
      start: 187397
    functionDepth: 31
    functionLinenumber: 187397
    functionLinenumberEnd: 187405
    functionName: geopolyConnect
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - geopolyInit
    linkageType: ''
    returnType: int
    signature: "int geopolyConnect(\n  sqlite3 *db,\n  void *pAux,\n  int argc, const
      char *const*argv,\n  sqlite3_vtab **ppVtab,\n  char **pzErr\n)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: rtreeReference
      Src: /src/nss/lib/sqlite/sqlite3.c:187433,1
    - Dst: freeCursorConstraints
      Src: /src/nss/lib/sqlite/sqlite3.c:187436,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:187437,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:187439,1
    - Dst: sqlite3_value_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:187448,1
    - Dst: findLeafNode
      Src: /src/nss/lib/sqlite/sqlite3.c:187450,1
    - Dst: rtreeSearchPointNew
      Src: /src/nss/lib/sqlite/sqlite3.c:187452,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:187453,1
    - Dst: nodeRowidIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:187457,1
    - Dst: RTREE_QUEUE_TRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:187459,1
    - Dst: nodeAcquire
      Src: /src/nss/lib/sqlite/sqlite3.c:187467,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:187471,1
    - Dst: geopolyBBox
      Src: /src/nss/lib/sqlite/sqlite3.c:187472,1
    - Dst: sqlite3_malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:187476,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:187481,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:187482,1
    - Dst: rtreeSearchPointNew
      Src: /src/nss/lib/sqlite/sqlite3.c:187522,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:187530,1
    - Dst: RTREE_QUEUE_TRACE
      Src: /src/nss/lib/sqlite/sqlite3.c:187533,1
    - Dst: rtreeStepToLeaf
      Src: /src/nss/lib/sqlite/sqlite3.c:187534,1
    - Dst: nodeRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:187539,1
    - Dst: rtreeRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:187540,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 96
    argCount: 5
    argNames:
    - pVtabCursor
    - idxNum
    - idxStr
    - argc
    - argv
    argTypes:
    - sqlite3_vtab_cursor*
    - int
    - char*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( p!=0 )
      pos:
        line_end: 187452
        line_start: 187452
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCsr->bPoint==1 )
      pos:
        line_end: 187529
        line_start: 187529
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( argc==1 )
      pos:
        line_end: 187470
        line_start: 187470
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 187542
      start: 187420
    functionDepth: 33
    functionLinenumber: 187420
    functionLinenumberEnd: 187542
    functionName: geopolyFilter
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - nodeRelease
    - nodeAcquire
    - sqlite3_malloc
    - rtreeSearchPointNew
    - rtreeStepToLeaf
    - memset
    - assert
    - freeCursorConstraints
    - geopolyBBox
    - rtreeRelease
    - RTREE_QUEUE_TRACE
    - sqlite3_value_int64
    - nodeRowidIndex
    - findLeafNode
    - sqlite3_free
    - rtreeReference
    linkageType: ''
    returnType: int
    signature: "int geopolyFilter(\n  sqlite3_vtab_cursor *pVtabCursor,     /* The
      cursor to initialize */\n  int idxNum,                           /* Query plan
      */\n  const char *idxStr,                   /* Not Used */\n  int argc, sqlite3_value
      **argv        /* Parameters to the query plan */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 2
    argNames:
    - tab
    - pIdxInfo
    argTypes:
    - sqlite3_vtab*
    - sqlite3_index_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187603
      start: 187557
    functionDepth: 0
    functionLinenumber: 187557
    functionLinenumberEnd: 187603
    functionName: geopolyBestIndex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int geopolyBestIndex(sqlite3_vtab *tab, sqlite3_index_info *pIdxInfo)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: rtreeSearchPointFirst
      Src: /src/nss/lib/sqlite/sqlite3.c:187612,1
    - Dst: rtreeNodeOfFirstSearchPoint
      Src: /src/nss/lib/sqlite/sqlite3.c:187614,1
    - Dst: sqlite3_vtab_nochange
      Src: /src/nss/lib/sqlite/sqlite3.c:187618,1
    - Dst: sqlite3_prepare_v3
      Src: /src/nss/lib/sqlite/sqlite3.c:187622,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:187626,1
    - Dst: nodeGetRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:187627,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:187628,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:187632,1
    - Dst: sqlite3_result_value
      Src: /src/nss/lib/sqlite/sqlite3.c:187637,1
    - Dst: sqlite3_column_value
      Src: /src/nss/lib/sqlite/sqlite3.c:187637,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - cur
    - ctx
    - i
    argTypes:
    - sqlite3_vtab_cursor*
    - sqlite3_context*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187640
      start: 187609
    functionDepth: 31
    functionLinenumber: 187609
    functionLinenumberEnd: 187640
    functionName: geopolyColumn
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_step
    - sqlite3_reset
    - sqlite3_result_value
    - sqlite3_column_value
    - rtreeNodeOfFirstSearchPoint
    - rtreeSearchPointFirst
    - sqlite3_bind_int64
    - nodeGetRowid
    - sqlite3_vtab_nochange
    - sqlite3_prepare_v3
    linkageType: ''
    returnType: int
    signature: int geopolyColumn(sqlite3_vtab_cursor *cur, sqlite3_context *ctx, int
      i)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: rtreeReference
      Src: /src/nss/lib/sqlite/sqlite3.c:187685,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:187686,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:187688,1
    - Dst: sqlite3_value_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:187689,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:187690,1
    - Dst: sqlite3_value_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:187691,1
    - Dst: sqlite3_value_nochange
      Src: /src/nss/lib/sqlite/sqlite3.c:187696,1
    - Dst: geopolyBBox
      Src: /src/nss/lib/sqlite/sqlite3.c:187699,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:187703,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:187713,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:187714,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:187715,1
    - Dst: sqlite3_vtab_on_conflict
      Src: /src/nss/lib/sqlite/sqlite3.c:187717,1
    - Dst: rtreeDeleteRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:187718,1
    - Dst: rtreeConstraintError
      Src: /src/nss/lib/sqlite/sqlite3.c:187720,1
    - Dst: rtreeDeleteRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:187731,1
    - Dst: rtreeNewRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:187742,1
    - Dst: ChooseLeaf
      Src: /src/nss/lib/sqlite/sqlite3.c:187746,1
    - Dst: rtreeInsertCell
      Src: /src/nss/lib/sqlite/sqlite3.c:187751,1
    - Dst: nodeRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:187752,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:187764,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:187765,1
    - Dst: sqlite3_value_nochange
      Src: /src/nss/lib/sqlite/sqlite3.c:187766,1
    - Dst: sqlite3_bind_null
      Src: /src/nss/lib/sqlite/sqlite3.c:187767,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:187770,1
    - Dst: geopolyFuncParam
      Src: /src/nss/lib/sqlite/sqlite3.c:187771,1
    - Dst: sqlite3_bind_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:187774,1
    - Dst: sqlite3_bind_value
      Src: /src/nss/lib/sqlite/sqlite3.c:187776,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:187778,1
    - Dst: sqlite3_bind_value
      Src: /src/nss/lib/sqlite/sqlite3.c:187783,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:187786,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:187787,1
    - Dst: rtreeRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:187792,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 82
    argCount: 4
    argNames:
    - pVtab
    - nData
    - aData
    - pRowid
    argTypes:
    - sqlite3_vtab*
    - int
    - sqlite3_value**
    - sqlite_int64*
    assertStmts:
    - condition: (nData>=1)
      pos:
        line_end: 187685
        line_start: 187685
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pRtree->nAux>=1 )
      pos:
        line_end: 187764
        line_start: 187764
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 187794
      start: 187664
    functionDepth: 35
    functionLinenumber: 187664
    functionLinenumberEnd: 187794
    functionName: geopolyUpdate
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - nodeRelease
    - sqlite3_reset
    - sqlite3_value_nochange
    - sqlite3_value_type
    - geopolyFuncParam
    - rtreeNewRowid
    - sqlite3_value_int64
    - sqlite3_bind_null
    - sqlite3_bind_blob
    - rtreeConstraintError
    - assert
    - sqlite3_vtab_on_conflict
    - ChooseLeaf
    - rtreeInsertCell
    - sqlite3_step
    - sqlite3_bind_value
    - sqlite3_mprintf
    - rtreeReference
    - rtreeDeleteRowid
    - geopolyBBox
    - sqlite3_bind_int64
    - rtreeRelease
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int geopolyUpdate(\n  sqlite3_vtab *pVtab, \n  int nData, \n  sqlite3_value
      **aData, \n  sqlite_int64 *pRowid\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:187807,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:187812,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - pVtab
    - nArg
    - zName
    - ppArg
    argTypes:
    - sqlite3_vtab*
    - int
    - char*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187818
      start: 187800
    functionDepth: 2
    functionLinenumber: 187800
    functionLinenumberEnd: 187818
    functionName: geopolyFindFunction
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_stricmp
    linkageType: ''
    returnType: int
    signature: "int geopolyFindFunction(\n  sqlite3_vtab *pVtab,\n  int nArg,\n  const
      char *zName,\n  void (**pxFunc)(sqlite3_context*,int,sqlite3_value**),\n  void
      **ppArg\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_create_function
      Src: /src/nss/lib/sqlite/sqlite3.c:187879,1
    - Dst: sqlite3_create_function
      Src: /src/nss/lib/sqlite/sqlite3.c:187884,1
    - Dst: sqlite3_create_module_v2
      Src: /src/nss/lib/sqlite/sqlite3.c:187888,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187891
      start: 187848
    functionDepth: 14
    functionLinenumber: 187848
    functionLinenumberEnd: 187891
    functionName: sqlite3_geopoly_init
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_create_module_v2
    - sqlite3_create_function
    linkageType: ''
    returnType: int
    signature: int sqlite3_geopoly_init(sqlite3 *db)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_create_function
      Src: /src/nss/lib/sqlite/sqlite3.c:187906,1
    - Dst: sqlite3_create_function
      Src: /src/nss/lib/sqlite/sqlite3.c:187908,1
    - Dst: sqlite3_create_function
      Src: /src/nss/lib/sqlite/sqlite3.c:187911,1
    - Dst: sqlite3_create_module_v2
      Src: /src/nss/lib/sqlite/sqlite3.c:187919,1
    - Dst: sqlite3_create_module_v2
      Src: /src/nss/lib/sqlite/sqlite3.c:187923,1
    - Dst: sqlite3_geopoly_init
      Src: /src/nss/lib/sqlite/sqlite3.c:187927,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187932
      start: 187902
    functionDepth: 15
    functionLinenumber: 187902
    functionLinenumberEnd: 187932
    functionName: sqlite3RtreeInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_create_module_v2
    - sqlite3_geopoly_init
    - sqlite3_create_function
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3RtreeInit(sqlite3 *db)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RtreeGeomCallback*::xDestructor
      Src: /src/nss/lib/sqlite/sqlite3.c:187943,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:187944,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187945
      start: 187941
    functionDepth: 3
    functionLinenumber: 187941
    functionLinenumberEnd: 187945
    functionName: rtreeFreeCallback
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    - RtreeGeomCallback*::xDestructor
    linkageType: ''
    returnType: void
    signature: void rtreeFreeCallback(void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_free
      Src: /src/nss/lib/sqlite/sqlite3.c:187954,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:187956,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pArg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187957
      start: 187950
    functionDepth: 11
    functionLinenumber: 187950
    functionLinenumberEnd: 187957
    functionName: rtreeMatchArgFree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_value_free
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void rtreeMatchArgFree(void *pArg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_user_data
      Src: /src/nss/lib/sqlite/sqlite3.c:187974,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:187981,1
    - Dst: sqlite3_result_error_nomem
      Src: /src/nss/lib/sqlite/sqlite3.c:187983,1
    - Dst: sqlite3_value_dup
      Src: /src/nss/lib/sqlite/sqlite3.c:187991,1
    - Dst: sqlite3_value_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:187994,1
    - Dst: sqlite3_value_double
      Src: /src/nss/lib/sqlite/sqlite3.c:187996,1
    - Dst: sqlite3_result_error_nomem
      Src: /src/nss/lib/sqlite/sqlite3.c:188000,1
    - Dst: rtreeMatchArgFree
      Src: /src/nss/lib/sqlite/sqlite3.c:188001,1
    - Dst: sqlite3_result_pointer
      Src: /src/nss/lib/sqlite/sqlite3.c:188003,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 3
    argNames:
    - ctx
    - nArg
    - aArg
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188006
      start: 187973
    functionDepth: 12
    functionLinenumber: 187973
    functionLinenumberEnd: 188006
    functionName: geomCallback
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - rtreeMatchArgFree
    - sqlite3_result_pointer
    - sqlite3_value_dup
    - sqlite3_malloc64
    - sqlite3_value_int64
    - sqlite3_result_error_nomem
    - sqlite3_user_data
    - sqlite3_value_double
    linkageType: ''
    returnType: void
    signature: void geomCallback(sqlite3_context *ctx, int nArg, sqlite3_value **aArg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:188020,1
    - Dst: sqlite3_create_function_v2
      Src: /src/nss/lib/sqlite/sqlite3.c:188026,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - db
    - zGeom
    - pContext
    argTypes:
    - sqlite3*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188029
      start: 188011
    functionDepth: 14
    functionLinenumber: 188011
    functionLinenumberEnd: 188029
    functionName: sqlite3_rtree_geometry_callback
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_malloc
    - sqlite3_create_function_v2
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_rtree_geometry_callback(\n  sqlite3 *db,                  /*
      Register SQL function on this connection */\n  const char *zGeom,            /*
      Name of the new SQL function */\n  int (*xGeom)(sqlite3_rtree_geometry*,int,RtreeDValue*,int*),
      /* Callback */\n  void *pContext                /* Extra data associated with
      the callback */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:188045,1
    - Dst: sqlite3_create_function_v2
      Src: /src/nss/lib/sqlite/sqlite3.c:188051,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - db
    - zQueryFunc
    - pContext
    argTypes:
    - sqlite3*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188054
      start: 188035
    functionDepth: 14
    functionLinenumber: 188035
    functionLinenumberEnd: 188054
    functionName: sqlite3_rtree_query_callback
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_malloc
    - sqlite3_create_function_v2
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_rtree_query_callback(\n  sqlite3 *db,                 /*
      Register SQL function on this connection */\n  const char *zQueryFunc,      /*
      Name of new SQL function */\n  int (*xQueryFunc)(sqlite3_rtree_query_info*),
      /* Callback */\n  void *pContext,              /* Extra data passed into the
      callback */\n  void (*xDestructor)(void*)   /* Destructor for the extra data
      */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SQLITE_EXTENSION_INIT2
      Src: /src/nss/lib/sqlite/sqlite3.c:188065,1
    - Dst: sqlite3RtreeInit
      Src: /src/nss/lib/sqlite/sqlite3.c:188066,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - db
    - pzErrMsg
    - pApi
    argTypes:
    - sqlite3*
    - char**
    - sqlite3_api_routines*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188067
      start: 188058
    functionDepth: 16
    functionLinenumber: 188058
    functionLinenumberEnd: 188067
    functionName: sqlite3_rtree_init
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3RtreeInit
    - SQLITE_EXTENSION_INIT2
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_rtree_init(\n  sqlite3 *db,\n  char **pzErrMsg,\n
      \ const sqlite3_api_routines *pApi\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:188136,1
    - Dst: u_errorName
      Src: /src/nss/lib/sqlite/sqlite3.c:188136,1
    - Dst: sqlite3_result_error
      Src: /src/nss/lib/sqlite/sqlite3.c:188138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - pCtx
    - zName
    - e
    argTypes:
    - sqlite3_context*
    - char*
    - UErrorCode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188139
      start: 188130
    functionDepth: 13
    functionLinenumber: 188130
    functionLinenumberEnd: 188139
    functionName: icuFunctionError
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - u_errorName
    - sqlite3_snprintf
    - sqlite3_result_error
    linkageType: ''
    returnType: void
    signature: "void icuFunctionError(\n  sqlite3_context *pCtx,       /* SQLite scalar
      function context */\n  const char *zName,           /* Name of ICU function
      that failed */\n  UErrorCode e                 /* Error code returned by ICU
      function */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:188155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188156
      start: 188154
    functionDepth: 3
    functionLinenumber: 188154
    functionLinenumberEnd: 188156
    functionName: xFree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void xFree(void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - zIn
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188182
      start: 188174
    functionDepth: 0
    functionLinenumber: 188174
    functionLinenumberEnd: 188182
    functionName: SQLITE_ICU_READ_UTF8
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQLITE_ICU_READ_UTF8(zIn, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - zIn
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188188
      start: 188183
    functionDepth: 0
    functionLinenumber: 188183
    functionLinenumberEnd: 188188
    functionName: SQLITE_ICU_SKIP_UTF8
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SQLITE_ICU_SKIP_UTF8(zIn)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: SQLITE_ICU_READ_UTF8
      Src: /src/nss/lib/sqlite/sqlite3.c:188209,1
    - Dst: SQLITE_ICU_SKIP_UTF8
      Src: /src/nss/lib/sqlite/sqlite3.c:188230,1
    - Dst: icuLikeCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:188238,1
    - Dst: SQLITE_ICU_SKIP_UTF8
      Src: /src/nss/lib/sqlite/sqlite3.c:188241,1
    - Dst: SQLITE_ICU_SKIP_UTF8
      Src: /src/nss/lib/sqlite/sqlite3.c:188248,1
    - Dst: SQLITE_ICU_READ_UTF8
      Src: /src/nss/lib/sqlite/sqlite3.c:188257,1
    - Dst: u_foldCase
      Src: /src/nss/lib/sqlite/sqlite3.c:188258,1
    - Dst: u_foldCase
      Src: /src/nss/lib/sqlite/sqlite3.c:188259,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 42
    argCount: 3
    argNames:
    - zPattern
    - zString
    - uEsc
    argTypes:
    - uint8_t*
    - uint8_t*
    - UChar32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188268
      start: 188195
    functionDepth: 1
    functionLinenumber: 188195
    functionLinenumberEnd: 188268
    functionName: icuLikeCompare
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - icuLikeCompare
    - SQLITE_ICU_SKIP_UTF8
    - SQLITE_ICU_READ_UTF8
    - u_foldCase
    linkageType: ''
    returnType: int
    signature: "int icuLikeCompare(\n  const uint8_t *zPattern,   /* LIKE pattern
      */\n  const uint8_t *zString,    /* The UTF-8 string to compare against */\n
      \ const UChar32 uEsc         /* The escape character */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:188288,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:188289,1
    - Dst: sqlite3_value_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:188295,1
    - Dst: sqlite3_result_error
      Src: /src/nss/lib/sqlite/sqlite3.c:188296,1
    - Dst: sqlite3_value_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:188305,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:188306,1
    - Dst: U8_NEXT
      Src: /src/nss/lib/sqlite/sqlite3.c:188309,1
    - Dst: sqlite3_result_error
      Src: /src/nss/lib/sqlite/sqlite3.c:188311,1
    - Dst: sqlite3_result_int
      Src: /src/nss/lib/sqlite/sqlite3.c:188318,1
    - Dst: icuLikeCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:188318,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188320
      start: 188283
    functionDepth: 16
    functionLinenumber: 188283
    functionLinenumberEnd: 188320
    functionName: icuLikeFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - icuLikeCompare
    - U8_NEXT
    - sqlite3_result_int
    - sqlite3_value_bytes
    - sqlite3_value_text
    - sqlite3_result_error
    linkageType: ''
    returnType: void
    signature: "void icuLikeFunc(\n  sqlite3_context *context, \n  int argc, \n  sqlite3_value
      **argv\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: uregex_close
      Src: /src/nss/lib/sqlite/sqlite3.c:188328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188329
      start: 188326
    functionDepth: 0
    functionLinenumber: 188326
    functionLinenumberEnd: 188329
    functionName: icuRegexpDelete
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - uregex_close
    linkageType: ''
    returnType: void
    signature: void icuRegexpDelete(void *p)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_text16
      Src: /src/nss/lib/sqlite/sqlite3.c:188354,1
    - Dst: sqlite3_get_auxdata
      Src: /src/nss/lib/sqlite/sqlite3.c:188365,1
    - Dst: sqlite3_value_text16
      Src: /src/nss/lib/sqlite/sqlite3.c:188367,1
    - Dst: uregex_open
      Src: /src/nss/lib/sqlite/sqlite3.c:188371,1
    - Dst: U_SUCCESS
      Src: /src/nss/lib/sqlite/sqlite3.c:188373,1
    - Dst: sqlite3_set_auxdata
      Src: /src/nss/lib/sqlite/sqlite3.c:188374,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:188376,1
    - Dst: icuFunctionError
      Src: /src/nss/lib/sqlite/sqlite3.c:188377,1
    - Dst: uregex_setText
      Src: /src/nss/lib/sqlite/sqlite3.c:188383,1
    - Dst: U_SUCCESS
      Src: /src/nss/lib/sqlite/sqlite3.c:188384,1
    - Dst: icuFunctionError
      Src: /src/nss/lib/sqlite/sqlite3.c:188385,1
    - Dst: uregex_matches
      Src: /src/nss/lib/sqlite/sqlite3.c:188390,1
    - Dst: U_SUCCESS
      Src: /src/nss/lib/sqlite/sqlite3.c:188391,1
    - Dst: icuFunctionError
      Src: /src/nss/lib/sqlite/sqlite3.c:188392,1
    - Dst: uregex_setText
      Src: /src/nss/lib/sqlite/sqlite3.c:188401,1
    - Dst: sqlite3_result_int
      Src: /src/nss/lib/sqlite/sqlite3.c:188404,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 3
    argNames:
    - p
    - nArg
    - apArg
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: (!pExpr)
      pos:
        line_end: 188375
        line_start: 188375
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 188405
      start: 188350
    functionDepth: 15
    functionLinenumber: 188350
    functionLinenumberEnd: 188405
    functionName: icuRegexpFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_get_auxdata
    - sqlite3_set_auxdata
    - icuFunctionError
    - uregex_setText
    - uregex_matches
    - uregex_open
    - assert
    - sqlite3_result_int
    - U_SUCCESS
    - sqlite3_value_text16
    linkageType: ''
    returnType: void
    signature: void icuRegexpFunc(sqlite3_context *p, int nArg, sqlite3_value **apArg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:188443,1
    - Dst: sqlite3_user_data
      Src: /src/nss/lib/sqlite/sqlite3.c:188444,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:188446,1
    - Dst: sqlite3_value_text16
      Src: /src/nss/lib/sqlite/sqlite3.c:188449,1
    - Dst: sqlite3_value_bytes16
      Src: /src/nss/lib/sqlite/sqlite3.c:188453,1
    - Dst: sqlite3_result_text16
      Src: /src/nss/lib/sqlite/sqlite3.c:188455,1
    - Dst: sqlite3_realloc
      Src: /src/nss/lib/sqlite/sqlite3.c:188460,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:188462,1
    - Dst: sqlite3_result_error_nomem
      Src: /src/nss/lib/sqlite/sqlite3.c:188463,1
    - Dst: u_strToUpper
      Src: /src/nss/lib/sqlite/sqlite3.c:188469,1
    - Dst: u_strToLower
      Src: /src/nss/lib/sqlite/sqlite3.c:188471,1
    - Dst: U_SUCCESS
      Src: /src/nss/lib/sqlite/sqlite3.c:188474,1
    - Dst: sqlite3_result_text16
      Src: /src/nss/lib/sqlite/sqlite3.c:188475,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:188477,1
    - Dst: icuFunctionError
      Src: /src/nss/lib/sqlite/sqlite3.c:188480,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:188484,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 3
    argNames:
    - p
    - nArg
    - apArg
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: (nArg==1 || nArg==2)
      pos:
        line_end: 188442
        line_start: 188442
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( 0 )
      pos:
        line_end: 188483
        line_start: 188483
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( cnt==0 )
      pos:
        line_end: 188476
        line_start: 188476
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 188485
      start: 188433
    functionDepth: 16
    functionLinenumber: 188433
    functionLinenumberEnd: 188485
    functionName: icuCaseFunc16
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    - sqlite3_realloc
    - icuFunctionError
    - u_strToLower
    - assert
    - U_SUCCESS
    - sqlite3_value_text16
    - sqlite3_result_error_nomem
    - u_strToUpper
    - sqlite3_user_data
    - sqlite3_value_text
    - sqlite3_result_text16
    - sqlite3_value_bytes16
    linkageType: ''
    returnType: void
    signature: void icuCaseFunc16(sqlite3_context *p, int nArg, sqlite3_value **apArg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ucol_close
      Src: /src/nss/lib/sqlite/sqlite3.c:188495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pCtx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188496
      start: 188493
    functionDepth: 0
    functionLinenumber: 188493
    functionLinenumberEnd: 188496
    functionName: icuCollationDel
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ucol_close
    linkageType: ''
    returnType: void
    signature: void icuCollationDel(void *pCtx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ucol_strcoll
      Src: /src/nss/lib/sqlite/sqlite3.c:188511,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:188517,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - pCtx
    - nLeft
    - zLeft
    - nRight
    - zRight
    argTypes:
    - void*
    - int
    - void*
    - int
    - void*
    assertStmts:
    - condition: (!"Unexpected return value from ucol_strcoll()")
      pos:
        line_end: 188516
        line_start: 188516
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 188519
      start: 188502
    functionDepth: 0
    functionLinenumber: 188502
    functionLinenumberEnd: 188519
    functionName: icuCollationColl
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - ucol_strcoll
    linkageType: ''
    returnType: int
    signature: "int icuCollationColl(\n  void *pCtx,\n  int nLeft,\n  const void *zLeft,\n
      \ int nRight,\n  const void *zRight\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_user_data
      Src: /src/nss/lib/sqlite/sqlite3.c:188539,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:188546,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:188548,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:188549,1
    - Dst: ucol_open
      Src: /src/nss/lib/sqlite/sqlite3.c:188555,1
    - Dst: U_SUCCESS
      Src: /src/nss/lib/sqlite/sqlite3.c:188556,1
    - Dst: icuFunctionError
      Src: /src/nss/lib/sqlite/sqlite3.c:188557,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:188560,1
    - Dst: sqlite3_create_collation_v2
      Src: /src/nss/lib/sqlite/sqlite3.c:188562,1
    - Dst: ucol_close
      Src: /src/nss/lib/sqlite/sqlite3.c:188566,1
    - Dst: sqlite3_result_error
      Src: /src/nss/lib/sqlite/sqlite3.c:188567,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - p
    - nArg
    - apArg
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: (nArg==2)
      pos:
        line_end: 188545
        line_start: 188545
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: (p)
      pos:
        line_end: 188559
        line_start: 188559
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 188569
      start: 188534
    functionDepth: 15
    functionLinenumber: 188534
    functionLinenumberEnd: 188569
    functionName: icuLoadCollation
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_create_collation_v2
    - icuFunctionError
    - assert
    - U_SUCCESS
    - ucol_open
    - ucol_close
    - sqlite3_user_data
    - sqlite3_value_text
    - sqlite3_result_error
    linkageType: ''
    returnType: void
    signature: "void icuLoadCollation(\n  sqlite3_context *p, \n  int nArg, \n  sqlite3_value
      **apArg\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: defined
      Src: /src/nss/lib/sqlite/sqlite3.c:188583,1
    - Dst: defined
      Src: /src/nss/lib/sqlite/sqlite3.c:188583,1
    - Dst: sqlite3_create_function
      Src: /src/nss/lib/sqlite/sqlite3.c:188602,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188610
      start: 188574
    functionDepth: 14
    functionLinenumber: 188574
    functionLinenumberEnd: 188610
    functionName: sqlite3IcuInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_create_function
    - defined
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3IcuInit(sqlite3 *db)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SQLITE_EXTENSION_INIT2
      Src: /src/nss/lib/sqlite/sqlite3.c:188621,1
    - Dst: sqlite3IcuInit
      Src: /src/nss/lib/sqlite/sqlite3.c:188622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - db
    - pzErrMsg
    - pApi
    argTypes:
    - sqlite3*
    - char**
    - sqlite3_api_routines*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188623
      start: 188614
    functionDepth: 15
    functionLinenumber: 188614
    functionLinenumberEnd: 188623
    functionName: sqlite3_icu_init
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - SQLITE_EXTENSION_INIT2
    - sqlite3IcuInit
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_icu_init(\n  sqlite3 *db, \n  char **pzErrMsg,\n
      \ const sqlite3_api_routines *pApi\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:188690,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:188692,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:188696,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:188700,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - argc
    - argv
    - ppTokenizer
    argTypes:
    - int
    - char**
    - sqlite3_tokenizer**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188706
      start: 188681
    functionDepth: 6
    functionLinenumber: 188681
    functionLinenumberEnd: 188706
    functionName: icuCreate
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - memcpy
    - sqlite3_malloc64
    - strlen
    linkageType: ''
    returnType: int
    signature: "int icuCreate(\n  int argc,                            /* Number of
      entries in argv[] */\n  const char * const *argv,            /* Tokenizer creation
      arguments */\n  sqlite3_tokenizer **ppTokenizer      /* OUT: Created tokenizer
      */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:188713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pTokenizer
    argTypes:
    - sqlite3_tokenizer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188715
      start: 188711
    functionDepth: 3
    functionLinenumber: 188711
    functionLinenumberEnd: 188715
    functionName: icuDestroy
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int icuDestroy(sqlite3_tokenizer *pTokenizer)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:188746,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:188749,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:188757,1
    - Dst: U8_NEXT
      Src: /src/nss/lib/sqlite/sqlite3.c:188762,1
    - Dst: u_foldCase
      Src: /src/nss/lib/sqlite/sqlite3.c:188765,1
    - Dst: U16_APPEND
      Src: /src/nss/lib/sqlite/sqlite3.c:188766,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:188768,1
    - Dst: U8_NEXT
      Src: /src/nss/lib/sqlite/sqlite3.c:188774,1
    - Dst: ubrk_open
      Src: /src/nss/lib/sqlite/sqlite3.c:188780,1
    - Dst: U_SUCCESS
      Src: /src/nss/lib/sqlite/sqlite3.c:188781,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:188782,1
    - Dst: ubrk_first
      Src: /src/nss/lib/sqlite/sqlite3.c:188787,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 42
    argCount: 4
    argNames:
    - pTokenizer
    - zInput
    - nInput
    - ppCursor
    argTypes:
    - sqlite3_tokenizer*
    - char*
    - int
    - sqlite3_tokenizer_cursor**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188790
      start: 188723
    functionDepth: 6
    functionLinenumber: 188723
    functionLinenumberEnd: 188790
    functionName: icuOpen
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - U16_APPEND
    - ubrk_first
    - sqlite3_malloc64
    - U8_NEXT
    - ubrk_open
    - memset
    - U_SUCCESS
    - u_foldCase
    - sqlite3_free
    - strlen
    linkageType: ''
    returnType: int
    signature: "int icuOpen(\n  sqlite3_tokenizer *pTokenizer,         /* The tokenizer
      */\n  const char *zInput,                    /* Input string */\n  int nInput,
      \                           /* Length of zInput in bytes */\n  sqlite3_tokenizer_cursor
      **ppCursor    /* OUT: Tokenization cursor */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ubrk_close
      Src: /src/nss/lib/sqlite/sqlite3.c:188797,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:188798,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:188799,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pCursor
    argTypes:
    - sqlite3_tokenizer_cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188801
      start: 188795
    functionDepth: 3
    functionLinenumber: 188795
    functionLinenumberEnd: 188801
    functionName: icuClose
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    - ubrk_close
    linkageType: ''
    returnType: int
    signature: int icuClose(sqlite3_tokenizer_cursor *pCursor)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ubrk_current
      Src: /src/nss/lib/sqlite/sqlite3.c:188823,1
    - Dst: ubrk_next
      Src: /src/nss/lib/sqlite/sqlite3.c:188824,1
    - Dst: U16_NEXT
      Src: /src/nss/lib/sqlite/sqlite3.c:188831,1
    - Dst: u_isspace
      Src: /src/nss/lib/sqlite/sqlite3.c:188832,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:188838,1
    - Dst: sqlite3_realloc
      Src: /src/nss/lib/sqlite/sqlite3.c:188844,1
    - Dst: u_strToUTF8
      Src: /src/nss/lib/sqlite/sqlite3.c:188852,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 6
    argNames:
    - pCursor
    - ppToken
    - pnBytes
    - piStartOffset
    - piEndOffset
    - piPosition
    argTypes:
    - sqlite3_tokenizer_cursor*
    - char**
    - int*
    - int*
    - int*
    - int*
    assertStmts:
    - condition: (iStart<=iEnd)
      pos:
        line_end: 188837
        line_start: 188837
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 188866
      start: 188806
    functionDepth: 7
    functionLinenumber: 188806
    functionLinenumberEnd: 188866
    functionName: icuNext
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - u_isspace
    - U16_NEXT
    - sqlite3_realloc
    - assert
    - ubrk_next
    - ubrk_current
    - u_strToUTF8
    linkageType: ''
    returnType: int
    signature: "int icuNext(\n  sqlite3_tokenizer_cursor *pCursor,  /* Cursor returned
      by simpleOpen */\n  const char **ppToken,               /* OUT: *ppToken is
      the token text */\n  int *pnBytes,                       /* OUT: Number of bytes
      in token */\n  int *piStartOffset,                 /* OUT: Starting offset of
      token */\n  int *piEndOffset,                   /* OUT: Ending offset of token
      */\n  int *piPosition                     /* OUT: Position integer of token
      */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ppModule
    argTypes:
    - sqlite3_tokenizer_module**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188888
      start: 188884
    functionDepth: 0
    functionLinenumber: 188884
    functionLinenumberEnd: 188888
    functionName: sqlite3Fts3IcuTokenizerModule
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: "SQLITE_PRIVATE sqlite3Fts3IcuTokenizerModule(\n  sqlite3_tokenizer_module
      const**ppModule\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - TYPE
    - ','
    - A
    - ','
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189614
      start: 189613
    functionDepth: 0
    functionLinenumber: 189613
    functionLinenumberEnd: 189614
    functionName: SWAP
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWAP(TYPE,A,B)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189953
      start: 189952
    functionDepth: 0
    functionLinenumber: 189952
    functionLinenumberEnd: 189953
    functionName: rbuIsVacuum
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rbuIsVacuum(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - pz
    - pLen
    argTypes:
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189994
      start: 189972
    functionDepth: 0
    functionLinenumber: 189972
    functionLinenumberEnd: 189994
    functionName: rbuDeltaGetInt
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int rbuDeltaGetInt(const char **pz, int *pLen)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 2
    argNames:
    - zIn
    - N
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190030
      start: 190000
    functionDepth: 0
    functionLinenumber: 190000
    functionLinenumberEnd: 190030
    functionName: rbuDeltaChecksum
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int rbuDeltaChecksum(const char *zIn, size_t N)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: rbuDeltaGetInt
      Src: /src/nss/lib/sqlite/sqlite3.c:190066,1
    - Dst: rbuDeltaGetInt
      Src: /src/nss/lib/sqlite/sqlite3.c:190074,1
    - Dst: rbuDeltaGetInt
      Src: /src/nss/lib/sqlite/sqlite3.c:190078,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:190093,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:190108,1
    - Dst: rbuDeltaChecksum
      Src: /src/nss/lib/sqlite/sqlite3.c:190118,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 64
    argCount: 5
    argNames:
    - zSrc
    - lenSrc
    - zDelta
    - lenDelta
    - zOut
    argTypes:
    - char*
    - int
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190137
      start: 190053
    functionDepth: 1
    functionLinenumber: 190053
    functionLinenumberEnd: 190137
    functionName: rbuDeltaApply
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbuDeltaGetInt
    - memcpy
    - rbuDeltaChecksum
    linkageType: ''
    returnType: int
    signature: "int rbuDeltaApply(\n  const char *zSrc,      /* The source or pattern
      file */\n  int lenSrc,            /* Length of the source file */\n  const char
      *zDelta,    /* Delta to apply to the pattern */\n  int lenDelta,          /*
      Length of the delta */\n  char *zOut             /* Write the output into this
      preallocated buffer */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rbuDeltaGetInt
      Src: /src/nss/lib/sqlite/sqlite3.c:190141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - zDelta
    - lenDelta
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190147
      start: 190139
    functionDepth: 1
    functionLinenumber: 190139
    functionLinenumberEnd: 190147
    functionName: rbuDeltaOutputSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbuDeltaGetInt
    linkageType: ''
    returnType: int
    signature: int rbuDeltaOutputSize(const char *zDelta, int lenDelta)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:190175,1
    - Dst: sqlite3_value_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:190177,1
    - Dst: sqlite3_value_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:190178,1
    - Dst: sqlite3_value_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:190179,1
    - Dst: sqlite3_value_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:190180,1
    - Dst: rbuDeltaOutputSize
      Src: /src/nss/lib/sqlite/sqlite3.c:190183,1
    - Dst: sqlite3_result_error
      Src: /src/nss/lib/sqlite/sqlite3.c:190185,1
    - Dst: sqlite3_malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:190189,1
    - Dst: sqlite3_result_error_nomem
      Src: /src/nss/lib/sqlite/sqlite3.c:190191,1
    - Dst: rbuDeltaApply
      Src: /src/nss/lib/sqlite/sqlite3.c:190193,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:190195,1
    - Dst: sqlite3_result_error
      Src: /src/nss/lib/sqlite/sqlite3.c:190196,1
    - Dst: sqlite3_result_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:190198,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( argc==2 )
      pos:
        line_end: 190174
        line_start: 190174
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 190201
      start: 190161
    functionDepth: 16
    functionLinenumber: 190161
    functionLinenumberEnd: 190201
    functionName: rbuFossilDeltaFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbuDeltaApply
    - sqlite3_malloc
    - sqlite3_result_blob
    - rbuDeltaOutputSize
    - assert
    - sqlite3_result_error_nomem
    - sqlite3_value_blob
    - sqlite3_value_bytes
    - sqlite3_free
    - sqlite3_result_error
    linkageType: ''
    returnType: void
    signature: "void rbuFossilDeltaFunc(\n  sqlite3_context *context,\n  int argc,\n
      \ sqlite3_value **argv\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_prepare_v2
      Src: /src/nss/lib/sqlite/sqlite3.c:190220,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:190222,1
    - Dst: sqlite3_errmsg
      Src: /src/nss/lib/sqlite/sqlite3.c:190222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - db
    - ppStmt
    - pzErrmsg
    - zSql
    argTypes:
    - sqlite3*
    - sqlite3_stmt**
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190226
      start: 190214
    functionDepth: 28
    functionLinenumber: 190214
    functionLinenumberEnd: 190226
    functionName: prepareAndCollectError
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mprintf
    - sqlite3_prepare_v2
    - sqlite3_errmsg
    linkageType: ''
    returnType: int
    signature: "int prepareAndCollectError(\n  sqlite3 *db, \n  sqlite3_stmt **ppStmt,\n
      \ char **pzErrmsg,\n  const char *zSql\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:190237,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:190239,1
    - Dst: sqlite3_errmsg
      Src: /src/nss/lib/sqlite/sqlite3.c:190239,1
    - Dst: sqlite3_db_handle
      Src: /src/nss/lib/sqlite/sqlite3.c:190239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pStmt
    - pzErrmsg
    argTypes:
    - sqlite3_stmt*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190242
      start: 190236
    functionDepth: 25
    functionLinenumber: 190236
    functionLinenumberEnd: 190242
    functionName: resetAndCollectError
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mprintf
    - sqlite3_errmsg
    - sqlite3_reset
    - sqlite3_db_handle
    linkageType: ''
    returnType: int
    signature: int resetAndCollectError(sqlite3_stmt *pStmt, char **pzErrmsg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:190266,1
    - Dst: prepareAndCollectError
      Src: /src/nss/lib/sqlite/sqlite3.c:190271,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:190272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - db
    - ppStmt
    - pzErrmsg
    - zSql
    argTypes:
    - sqlite3*
    - sqlite3_stmt**
    - char**
    - char*
    assertStmts:
    - condition: ( *pzErrmsg==0 )
      pos:
        line_end: 190265
        line_start: 190265
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 190275
      start: 190259
    functionDepth: 29
    functionLinenumber: 190259
    functionLinenumberEnd: 190275
    functionName: prepareFreeAndCollectError
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - prepareAndCollectError
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int prepareFreeAndCollectError(\n  sqlite3 *db, \n  sqlite3_stmt **ppStmt,\n
      \ char **pzErrmsg,\n  char *zSql\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:190284,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:190285,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:190287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - pIter
    argTypes:
    - RbuObjIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190295
      start: 190281
    functionDepth: 3
    functionLinenumber: 190281
    functionLinenumberEnd: 190295
    functionName: rbuObjIterFreeCols
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void rbuObjIterFreeCols(RbuObjIter *pIter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:190304,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:190305,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:190306,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:190307,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:190311,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:190312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - pIter
    argTypes:
    - RbuObjIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190322
      start: 190301
    functionDepth: 26
    functionLinenumber: 190301
    functionLinenumberEnd: 190322
    functionName: rbuObjIterClearStatements
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_finalize
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void rbuObjIterClearStatements(RbuObjIter *pIter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rbuObjIterClearStatements
      Src: /src/nss/lib/sqlite/sqlite3.c:190329,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:190330,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:190331,1
    - Dst: rbuObjIterFreeCols
      Src: /src/nss/lib/sqlite/sqlite3.c:190332,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:190333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - pIter
    argTypes:
    - RbuObjIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190334
      start: 190328
    functionDepth: 27
    functionLinenumber: 190328
    functionLinenumberEnd: 190334
    functionName: rbuObjIterFinalize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbuObjIterClearStatements
    - rbuObjIterFreeCols
    - sqlite3_finalize
    - memset
    linkageType: ''
    returnType: void
    signature: void rbuObjIterFinalize(RbuObjIter *pIter)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: rbuObjIterClearStatements
      Src: /src/nss/lib/sqlite/sqlite3.c:190349,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/sqlite/sqlite3.c:190351,1
    - Dst: rbuObjIterFreeCols
      Src: /src/nss/lib/sqlite/sqlite3.c:190362,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:190364,1
    - Dst: resetAndCollectError
      Src: /src/nss/lib/sqlite/sqlite3.c:190366,1
    - Dst: sqlite3_column_text
      Src: /src/nss/lib/sqlite/sqlite3.c:190369,1
    - Dst: sqlite3_column_text
      Src: /src/nss/lib/sqlite/sqlite3.c:190370,1
    - Dst: sqlite3_bind_text
      Src: /src/nss/lib/sqlite/sqlite3.c:190376,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:190379,1
    - Dst: resetAndCollectError
      Src: /src/nss/lib/sqlite/sqlite3.c:190381,1
    - Dst: sqlite3_column_text
      Src: /src/nss/lib/sqlite/sqlite3.c:190385,1
    - Dst: sqlite3_column_int
      Src: /src/nss/lib/sqlite/sqlite3.c:190386,1
    - Dst: sqlite3_column_int
      Src: /src/nss/lib/sqlite/sqlite3.c:190387,1
    - Dst: rbuObjIterFinalize
      Src: /src/nss/lib/sqlite/sqlite3.c:190396,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 2
    argNames:
    - p
    - pIter
    argTypes:
    - sqlite3rbu*
    - RbuObjIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190400
      start: 190344
    functionDepth: 28
    functionLinenumber: 190344
    functionLinenumberEnd: 190400
    functionName: rbuObjIterNext
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbuObjIterClearStatements
    - rbuObjIterFreeCols
    - sqlite3_step
    - rbuObjIterFinalize
    - resetAndCollectError
    - sqlite3_column_text
    - sqlite3_bind_text
    - sqlite3_exec
    - sqlite3_column_int
    linkageType: ''
    returnType: int
    signature: int rbuObjIterNext(sqlite3rbu *p, RbuObjIter *pIter)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_user_data
      Src: /src/nss/lib/sqlite/sqlite3.c:190429,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:190431,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:190433,1
    - Dst: rbuIsVacuum
      Src: /src/nss/lib/sqlite/sqlite3.c:190435,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:190436,1
    - Dst: sqlite3_value_int
      Src: /src/nss/lib/sqlite/sqlite3.c:190437,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:190438,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:190441,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:190441,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:190445,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 3
    argNames:
    - pCtx
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( argc==1 || argc==2 )
      pos:
        line_end: 190430
        line_start: 190430
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( argc==2 )
      pos:
        line_end: 190435
        line_start: 190435
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 190450
      start: 190424
    functionDepth: 15
    functionLinenumber: 190424
    functionLinenumberEnd: 190450
    functionName: rbuTargetNameFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbuIsVacuum
    - sqlite3_value_int
    - assert
    - sqlite3_user_data
    - sqlite3_value_text
    - memcmp
    - sqlite3_result_text
    - strlen
    linkageType: ''
    returnType: void
    signature: "void rbuTargetNameFunc(\n  sqlite3_context *pCtx,\n  int argc,\n  sqlite3_value
      **argv\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:190462,1
    - Dst: prepareFreeAndCollectError
      Src: /src/nss/lib/sqlite/sqlite3.c:190464,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:190465,1
    - Dst: rbuIsVacuum
      Src: /src/nss/lib/sqlite/sqlite3.c:190471,1
    - Dst: prepareAndCollectError
      Src: /src/nss/lib/sqlite/sqlite3.c:190474,1
    - Dst: rbuObjIterNext
      Src: /src/nss/lib/sqlite/sqlite3.c:190483,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - p
    - pIter
    argTypes:
    - sqlite3rbu*
    - RbuObjIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190484
      start: 190460
    functionDepth: 30
    functionLinenumber: 190460
    functionLinenumberEnd: 190484
    functionName: rbuObjIterFirst
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbuIsVacuum
    - rbuObjIterNext
    - memset
    - prepareFreeAndCollectError
    - sqlite3_mprintf
    - prepareAndCollectError
    linkageType: ''
    returnType: int
    signature: int rbuObjIterFirst(sqlite3rbu *p, RbuObjIter *pIter)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/nss/lib/sqlite/sqlite3.c:190498,1
    - Dst: sqlite3_vmprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:190499,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:190503,1
    - Dst: va_end
      Src: /src/nss/lib/sqlite/sqlite3.c:190506,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - p
    - zFmt
    argTypes:
    - sqlite3rbu*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190508
      start: 190495
    functionDepth: 9
    functionLinenumber: 190495
    functionLinenumberEnd: 190508
    functionName: rbuMPrintf
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    - sqlite3_vmprintf
    - va_start
    - va_end
    linkageType: ''
    returnType: char
    signature: char *rbuMPrintf(sqlite3rbu *p, const char *zFmt, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/nss/lib/sqlite/sqlite3.c:190523,1
    - Dst: sqlite3_vmprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:190524,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/sqlite/sqlite3.c:190529,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:190532,1
    - Dst: va_end
      Src: /src/nss/lib/sqlite/sqlite3.c:190533,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - p
    - db
    - zFmt
    argTypes:
    - sqlite3rbu*
    - sqlite3*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190535
      start: 190520
    functionDepth: 28
    functionLinenumber: 190520
    functionLinenumberEnd: 190535
    functionName: rbuMPrintfExec
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_vmprintf
    - va_end
    - va_start
    - sqlite3_exec
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int rbuMPrintfExec(sqlite3rbu *p, sqlite3 *db, const char *zFmt, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:190550,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:190551,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:190555,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - p
    - nByte
    argTypes:
    - sqlite3rbu*
    - sqlite3_int64
    assertStmts:
    - condition: ( nByte>0 )
      pos:
        line_end: 190549
        line_start: 190549
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 190559
      start: 190547
    functionDepth: 6
    functionLinenumber: 190547
    functionLinenumberEnd: 190559
    functionName: rbuMalloc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_malloc64
    - memset
    linkageType: ''
    returnType: void
    signature: void *rbuMalloc(sqlite3rbu *p, sqlite3_int64 nByte)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rbuMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:190571,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - p
    - pIter
    - nCol
    argTypes:
    - sqlite3rbu*
    - RbuObjIter*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190580
      start: 190567
    functionDepth: 7
    functionLinenumber: 190567
    functionLinenumberEnd: 190580
    functionName: rbuAllocateIterArrays
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbuMalloc
    linkageType: ''
    returnType: void
    signature: void rbuAllocateIterArrays(sqlite3rbu *p, RbuObjIter *pIter, int nCol)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:190595,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:190597,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:190598,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:190600,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - zStr
    - pRc
    argTypes:
    - char*
    - int*
    assertStmts:
    - condition: ( *pRc==SQLITE_OK )
      pos:
        line_end: 190594
        line_start: 190594
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 190607
      start: 190592
    functionDepth: 6
    functionLinenumber: 190592
    functionLinenumberEnd: 190607
    functionName: rbuStrndup
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - memcpy
    - sqlite3_malloc64
    - strlen
    linkageType: ''
    returnType: char
    signature: char *rbuStrndup(const char *zStr, int *pRc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_db_handle
      Src: /src/nss/lib/sqlite/sqlite3.c:190617,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:190618,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:190621,1
    - Dst: sqlite3_errmsg
      Src: /src/nss/lib/sqlite/sqlite3.c:190621,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - p
    - pStmt
    argTypes:
    - sqlite3rbu*
    - sqlite3_stmt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190623
      start: 190616
    functionDepth: 26
    functionLinenumber: 190616
    functionLinenumberEnd: 190623
    functionName: rbuFinalize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_db_handle
    - sqlite3_errmsg
    - sqlite3_finalize
    - sqlite3_mprintf
    linkageType: ''
    returnType: void
    signature: void rbuFinalize(sqlite3rbu *p, sqlite3_stmt *pStmt)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:190682,1
    - Dst: prepareFreeAndCollectError
      Src: /src/nss/lib/sqlite/sqlite3.c:190683,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:190684,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:190689,1
    - Dst: sqlite3_column_int
      Src: /src/nss/lib/sqlite/sqlite3.c:190693,1
    - Dst: sqlite3_column_int
      Src: /src/nss/lib/sqlite/sqlite3.c:190697,1
    - Dst: prepareFreeAndCollectError
      Src: /src/nss/lib/sqlite/sqlite3.c:190699,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:190700,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:190703,1
    - Dst: sqlite3_column_text
      Src: /src/nss/lib/sqlite/sqlite3.c:190704,1
    - Dst: sqlite3_column_text
      Src: /src/nss/lib/sqlite/sqlite3.c:190705,1
    - Dst: prepareFreeAndCollectError
      Src: /src/nss/lib/sqlite/sqlite3.c:190707,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:190708,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:190712,1
    - Dst: sqlite3_column_int
      Src: /src/nss/lib/sqlite/sqlite3.c:190713,1
    - Dst: prepareFreeAndCollectError
      Src: /src/nss/lib/sqlite/sqlite3.c:190723,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:190724,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:190727,1
    - Dst: sqlite3_column_int
      Src: /src/nss/lib/sqlite/sqlite3.c:190728,1
    - Dst: rbuFinalize
      Src: /src/nss/lib/sqlite/sqlite3.c:190739,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 51
    argCount: 5
    argNames:
    - p
    - zTab
    - peType
    - piTnum
    - piPk
    argTypes:
    - sqlite3rbu*
    - char*
    - int*
    - int*
    - int*
    assertStmts:
    - condition: ( p->rc==SQLITE_OK )
      pos:
        line_end: 190681
        line_start: 190681
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 190742
      start: 190664
    functionDepth: 30
    functionLinenumber: 190664
    functionLinenumberEnd: 190742
    functionName: rbuTableType
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_step
    - rbuFinalize
    - assert
    - prepareFreeAndCollectError
    - sqlite3_mprintf
    - sqlite3_column_text
    - sqlite3_column_int
    linkageType: ''
    returnType: void
    signature: "void rbuTableType(\n  sqlite3rbu *p,\n  const char *zTab,\n  int *peType,\n
      \ int *piTnum,\n  int *piPk\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:190753,1
    - Dst: prepareFreeAndCollectError
      Src: /src/nss/lib/sqlite/sqlite3.c:190754,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:190755,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:190760,1
    - Dst: sqlite3_column_text
      Src: /src/nss/lib/sqlite/sqlite3.c:190761,1
    - Dst: sqlite3_column_int
      Src: /src/nss/lib/sqlite/sqlite3.c:190762,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:190766,1
    - Dst: prepareFreeAndCollectError
      Src: /src/nss/lib/sqlite/sqlite3.c:190768,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:190769,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:190771,1
    - Dst: sqlite3_column_int
      Src: /src/nss/lib/sqlite/sqlite3.c:190772,1
    - Dst: rbuFinalize
      Src: /src/nss/lib/sqlite/sqlite3.c:190775,1
    - Dst: rbuFinalize
      Src: /src/nss/lib/sqlite/sqlite3.c:190785,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 2
    argNames:
    - p
    - pIter
    argTypes:
    - sqlite3rbu*
    - RbuObjIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190787
      start: 190748
    functionDepth: 30
    functionLinenumber: 190748
    functionLinenumberEnd: 190787
    functionName: rbuObjIterCacheIndexedCols
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - sqlite3_step
    - rbuFinalize
    - prepareFreeAndCollectError
    - sqlite3_mprintf
    - memset
    - sqlite3_column_text
    - sqlite3_column_int
    linkageType: ''
    returnType: void
    signature: void rbuObjIterCacheIndexedCols(sqlite3rbu *p, RbuObjIter *pIter)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:190809,1
    - Dst: rbuTableType
      Src: /src/nss/lib/sqlite/sqlite3.c:190810,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:190813,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:190818,1
    - Dst: prepareFreeAndCollectError
      Src: /src/nss/lib/sqlite/sqlite3.c:190826,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:190827,1
    - Dst: sqlite3_column_count
      Src: /src/nss/lib/sqlite/sqlite3.c:190830,1
    - Dst: rbuAllocateIterArrays
      Src: /src/nss/lib/sqlite/sqlite3.c:190831,1
    - Dst: sqlite3_column_name
      Src: /src/nss/lib/sqlite/sqlite3.c:190834,1
    - Dst: sqlite3_strnicmp
      Src: /src/nss/lib/sqlite/sqlite3.c:190835,1
    - Dst: rbuStrndup
      Src: /src/nss/lib/sqlite/sqlite3.c:190836,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:190840,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:190844,1
    - Dst: rbuIsVacuum
      Src: /src/nss/lib/sqlite/sqlite3.c:190848,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:190852,1
    - Dst: prepareFreeAndCollectError
      Src: /src/nss/lib/sqlite/sqlite3.c:190862,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:190863,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:190866,1
    - Dst: sqlite3_column_text
      Src: /src/nss/lib/sqlite/sqlite3.c:190867,1
    - Dst: strcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:190870,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:190874,1
    - Dst: sqlite3_column_int
      Src: /src/nss/lib/sqlite/sqlite3.c:190878,1
    - Dst: sqlite3_column_int
      Src: /src/nss/lib/sqlite/sqlite3.c:190879,1
    - Dst: sqlite3_column_text
      Src: /src/nss/lib/sqlite/sqlite3.c:190880,1
    - Dst: rbuStrndup
      Src: /src/nss/lib/sqlite/sqlite3.c:190887,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:190888,1
    - Dst: rbuFinalize
      Src: /src/nss/lib/sqlite/sqlite3.c:190895,1
    - Dst: rbuObjIterCacheIndexedCols
      Src: /src/nss/lib/sqlite/sqlite3.c:190896,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:190897,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:190898,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 64
    argCount: 2
    argNames:
    - p
    - pIter
    argTypes:
    - sqlite3rbu*
    - RbuObjIter*
    assertStmts:
    - condition: "( pIter->eType==RBU_PK_NONE || pIter->eType==RBU_PK_IPK \n         ||
        pIter->eType==RBU_PK_EXTERNAL || pIter->eType==RBU_PK_WITHOUT_ROWID\n         ||
        pIter->eType==RBU_PK_VTAB\n    )"
      pos:
        line_end: 190820
        line_start: 190817
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iPk>=0 )
      pos:
        line_end: 190887
        line_start: 190887
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIter->eType!=RBU_PK_VTAB || pIter->nIndex==0 )
      pos:
        line_end: 190897
        line_start: 190897
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIter->eType==0 )
      pos:
        line_end: 190808
        line_start: 190808
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIter->eType!=RBU_PK_VTAB || pIter->abIndexed==0 )
      pos:
        line_end: 190896
        line_start: 190896
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 190902
      start: 190799
    functionDepth: 31
    functionLinenumber: 190799
    functionLinenumberEnd: 190902
    functionName: rbuObjIterCacheTableInfo
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - strcmp
    - sqlite3_step
    - rbuFinalize
    - sqlite3_column_count
    - rbuIsVacuum
    - assert
    - sqlite3_mprintf
    - prepareFreeAndCollectError
    - rbuObjIterCacheIndexedCols
    - sqlite3_column_text
    - rbuTableType
    - rbuStrndup
    - rbuAllocateIterArrays
    - sqlite3_stricmp
    - sqlite3_column_name
    - sqlite3_finalize
    - sqlite3_strnicmp
    - sqlite3_column_int
    linkageType: ''
    returnType: int
    signature: int rbuObjIterCacheTableInfo(sqlite3rbu *p, RbuObjIter *pIter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rbuMPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:190918,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - p
    - pIter
    argTypes:
    - sqlite3rbu*
    - RbuObjIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190922
      start: 190909
    functionDepth: 10
    functionLinenumber: 190909
    functionLinenumberEnd: 190922
    functionName: rbuObjIterGetCollist
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbuMPrintf
    linkageType: ''
    returnType: char
    signature: "char *rbuObjIterGetCollist(\n  sqlite3rbu *p,                  /*
      RBU object */\n  RbuObjIter *pIter               /* Object iterator for column
      names */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rbuMPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:190945,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 5
    argNames:
    - p
    - pIter
    - zPre
    - zSeparator
    - zPost
    argTypes:
    - sqlite3rbu*
    - RbuObjIter*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190954
      start: 190930
    functionDepth: 10
    functionLinenumber: 190930
    functionLinenumberEnd: 190954
    functionName: rbuObjIterGetPkList
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbuMPrintf
    linkageType: ''
    returnType: char
    signature: "char *rbuObjIterGetPkList(\n  sqlite3rbu *p,                  /* RBU
      object */\n  RbuObjIter *pIter,              /* Object iterator for column names
      */\n  const char *zPre,               /* Before each quoted column name */\n
      \ const char *zSeparator,         /* Separator to use between columns */\n  const
      char *zPost               /* After each quoted column name */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: prepareFreeAndCollectError
      Src: /src/nss/lib/sqlite/sqlite3.c:190984,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:190985,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:190989,1
    - Dst: sqlite3_column_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:190990,1
    - Dst: rbuMPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:190991,1
    - Dst: rbuFinalize
      Src: /src/nss/lib/sqlite/sqlite3.c:190993,1
    - Dst: rbuObjIterGetPkList
      Src: /src/nss/lib/sqlite/sqlite3.c:190995,1
    - Dst: rbuObjIterGetPkList
      Src: /src/nss/lib/sqlite/sqlite3.c:190996,1
    - Dst: rbuObjIterGetPkList
      Src: /src/nss/lib/sqlite/sqlite3.c:190997,1
    - Dst: prepareFreeAndCollectError
      Src: /src/nss/lib/sqlite/sqlite3.c:191000,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:191001,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:191006,1
    - Dst: sqlite3_column_text
      Src: /src/nss/lib/sqlite/sqlite3.c:191007,1
    - Dst: rbuMPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:191008,1
    - Dst: rbuFinalize
      Src: /src/nss/lib/sqlite/sqlite3.c:191010,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:191013,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:191014,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:191015,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - p
    - pIter
    - bRowid
    - zWrite
    argTypes:
    - sqlite3rbu*
    - RbuObjIter*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191018
      start: 190975
    functionDepth: 30
    functionLinenumber: 190975
    functionLinenumberEnd: 191018
    functionName: rbuVacuumTableStart
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbuMPrintf
    - sqlite3_step
    - rbuFinalize
    - sqlite3_column_int64
    - prepareFreeAndCollectError
    - sqlite3_mprintf
    - rbuObjIterGetPkList
    - sqlite3_column_text
    - sqlite3_free
    linkageType: ''
    returnType: char
    signature: "char *rbuVacuumTableStart(\n  sqlite3rbu *p,                  /* RBU
      handle */\n  RbuObjIter *pIter,              /* RBU iterator object */\n  int
      bRowid,                     /* True for a rowid table */\n  const char *zWrite
      \             /* Target table name prefix */\n)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: prepareFreeAndCollectError
      Src: /src/nss/lib/sqlite/sqlite3.c:191056,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:191057,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:191059,1
    - Dst: sqlite3_column_int
      Src: /src/nss/lib/sqlite/sqlite3.c:191060,1
    - Dst: sqlite3_column_text
      Src: /src/nss/lib/sqlite/sqlite3.c:191061,1
    - Dst: sqlite3_column_int
      Src: /src/nss/lib/sqlite/sqlite3.c:191063,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:191072,1
    - Dst: rbuMPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:191081,1
    - Dst: rbuMPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:191084,1
    - Dst: rbuMPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:191087,1
    - Dst: rbuFinalize
      Src: /src/nss/lib/sqlite/sqlite3.c:191093,1
    - Dst: prepareFreeAndCollectError
      Src: /src/nss/lib/sqlite/sqlite3.c:191099,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:191100,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:191104,1
    - Dst: sqlite3_column_text
      Src: /src/nss/lib/sqlite/sqlite3.c:191107,1
    - Dst: rbuMPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:191112,1
    - Dst: rbuMPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:191117,1
    - Dst: rbuFinalize
      Src: /src/nss/lib/sqlite/sqlite3.c:191120,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:191124,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:191125,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:191126,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:191127,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 54
    argCount: 2
    argNames:
    - p
    - pIter
    argTypes:
    - sqlite3rbu*
    - RbuObjIter*
    assertStmts:
    - condition: ( i<pIter->nTblCol )
      pos:
        line_end: 191071
        line_start: 191071
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 191129
      start: 191042
    functionDepth: 30
    functionLinenumber: 191042
    functionLinenumberEnd: 191129
    functionName: rbuVacuumIndexStart
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbuMPrintf
    - sqlite3_step
    - rbuFinalize
    - prepareFreeAndCollectError
    - sqlite3_mprintf
    - assert
    - sqlite3_column_text
    - sqlite3_free
    - sqlite3_column_int
    linkageType: ''
    returnType: char
    signature: "char *rbuVacuumIndexStart(\n  sqlite3rbu *p,                  /* RBU
      handle */\n  RbuObjIter *pIter               /* RBU iterator object */\n)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:191175,1
    - Dst: prepareFreeAndCollectError
      Src: /src/nss/lib/sqlite/sqlite3.c:191176,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:191177,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:191181,1
    - Dst: sqlite3_column_int
      Src: /src/nss/lib/sqlite/sqlite3.c:191182,1
    - Dst: sqlite3_column_int
      Src: /src/nss/lib/sqlite/sqlite3.c:191183,1
    - Dst: sqlite3_column_text
      Src: /src/nss/lib/sqlite/sqlite3.c:191184,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:191194,1
    - Dst: rbuIsVacuum
      Src: /src/nss/lib/sqlite/sqlite3.c:191196,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:191207,1
    - Dst: sqlite3_column_int
      Src: /src/nss/lib/sqlite/sqlite3.c:191208,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:191210,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:191214,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:191217,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:191226,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:191230,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:191231,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:191232,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:191233,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 54
    argCount: 6
    argNames:
    - p
    - pIter
    - pzImposterCols
    - pzImposterPk
    - pzWhere
    - pnBind
    argTypes:
    - sqlite3rbu*
    - RbuObjIter*
    - char**
    - char**
    - char**
    - int*
    assertStmts:
    - condition: ( p->zErrmsg==0 )
      pos:
        line_end: 191174
        line_start: 191174
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( i<pIter->nTblCol )
      pos:
        line_end: 191193
        line_start: 191193
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 191246
      start: 191155
    functionDepth: 30
    functionLinenumber: 191155
    functionLinenumberEnd: 191246
    functionName: rbuObjIterGetIndexCols
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_step
    - rbuIsVacuum
    - assert
    - prepareFreeAndCollectError
    - sqlite3_mprintf
    - sqlite3_column_text
    - sqlite3_finalize
    - sqlite3_free
    - sqlite3_column_int
    linkageType: ''
    returnType: char
    signature: "char *rbuObjIterGetIndexCols(\n  sqlite3rbu *p,                  /*
      RBU object */\n  RbuObjIter *pIter,              /* Object iterator for column
      names */\n  char **pzImposterCols,          /* OUT: Columns for imposter table
      */\n  char **pzImposterPk,            /* OUT: Imposter PK clause */\n  char
      **pzWhere,                 /* OUT: WHERE clause */\n  int *pnBind                     /*
      OUT: Trbul number of columns */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:191271,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:191273,1
    - Dst: rbuMPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:191284,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 3
    argNames:
    - p
    - pIter
    - zObj
    argTypes:
    - sqlite3rbu*
    - RbuObjIter*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191288
      start: 191259
    functionDepth: 10
    functionLinenumber: 191259
    functionLinenumberEnd: 191288
    functionName: rbuObjIterGetOldlist
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mprintf
    - rbuMPrintf
    linkageType: ''
    returnType: char
    signature: "char *rbuObjIterGetOldlist(\n  sqlite3rbu *p, \n  RbuObjIter *pIter,\n
      \ const char *zObj\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rbuMPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:191306,1
    - Dst: rbuMPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:191312,1
    - Dst: rbuMPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:191316,1
    - Dst: rbuMPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:191326,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - p
    - pIter
    argTypes:
    - sqlite3rbu*
    - RbuObjIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191332
      start: 191300
    functionDepth: 10
    functionLinenumber: 191300
    functionLinenumberEnd: 191332
    functionName: rbuObjIterGetWhere
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbuMPrintf
    linkageType: ''
    returnType: char
    signature: "char *rbuObjIterGetWhere(\n  sqlite3rbu *p, \n  RbuObjIter *pIter\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:191343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3rbu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191344
      start: 191341
    functionDepth: 10
    functionLinenumber: 191341
    functionLinenumberEnd: 191344
    functionName: rbuBadControlError
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mprintf
    linkageType: ''
    returnType: void
    signature: void rbuBadControlError(sqlite3rbu *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:191373,1
    - Dst: rbuBadControlError
      Src: /src/nss/lib/sqlite/sqlite3.c:191374,1
    - Dst: rbuMPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:191380,1
    - Dst: rbuMPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:191386,1
    - Dst: rbuMPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:191392,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - p
    - pIter
    - zMask
    argTypes:
    - sqlite3rbu*
    - RbuObjIter*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191401
      start: 191364
    functionDepth: 11
    functionLinenumber: 191364
    functionLinenumberEnd: 191401
    functionName: rbuObjIterGetSetlist
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbuMPrintf
    - rbuBadControlError
    - strlen
    linkageType: ''
    returnType: char
    signature: "char *rbuObjIterGetSetlist(\n  sqlite3rbu *p,\n  RbuObjIter *pIter,\n
      \ const char *zMask\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rbuMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:191422,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - p
    - nBind
    argTypes:
    - sqlite3rbu*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191431
      start: 191418
    functionDepth: 7
    functionLinenumber: 191418
    functionLinenumberEnd: 191431
    functionName: rbuObjIterGetBindlist
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbuMalloc
    linkageType: ''
    returnType: char
    signature: char *rbuObjIterGetBindlist(sqlite3rbu *p, int nBind)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:191447,1
    - Dst: prepareFreeAndCollectError
      Src: /src/nss/lib/sqlite/sqlite3.c:191453,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:191454,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:191456,1
    - Dst: sqlite3_column_text
      Src: /src/nss/lib/sqlite/sqlite3.c:191457,1
    - Dst: strcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:191458,1
    - Dst: sqlite3_column_text
      Src: /src/nss/lib/sqlite/sqlite3.c:191459,1
    - Dst: prepareFreeAndCollectError
      Src: /src/nss/lib/sqlite/sqlite3.c:191461,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:191462,1
    - Dst: rbuFinalize
      Src: /src/nss/lib/sqlite/sqlite3.c:191468,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:191470,1
    - Dst: sqlite3_column_int
      Src: /src/nss/lib/sqlite/sqlite3.c:191471,1
    - Dst: sqlite3_column_text
      Src: /src/nss/lib/sqlite/sqlite3.c:191473,1
    - Dst: sqlite3_column_int
      Src: /src/nss/lib/sqlite/sqlite3.c:191474,1
    - Dst: rbuMPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:191475,1
    - Dst: rbuMPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:191479,1
    - Dst: rbuFinalize
      Src: /src/nss/lib/sqlite/sqlite3.c:191480,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 2
    argNames:
    - p
    - pIter
    argTypes:
    - sqlite3rbu*
    - RbuObjIter*
    assertStmts:
    - condition: ( pIter->zIdx==0 )
      pos:
        line_end: 191446
        line_start: 191446
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 191483
      start: 191445
    functionDepth: 30
    functionLinenumber: 191445
    functionLinenumberEnd: 191483
    functionName: rbuWithoutRowidPK
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - strcmp
    - rbuMPrintf
    - sqlite3_step
    - rbuFinalize
    - assert
    - prepareFreeAndCollectError
    - sqlite3_mprintf
    - sqlite3_column_text
    - sqlite3_column_int
    linkageType: ''
    returnType: char
    signature: char *rbuWithoutRowidPK(sqlite3rbu *p, RbuObjIter *pIter)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: prepareAndCollectError
      Src: /src/nss/lib/sqlite/sqlite3.c:191517,1
    - Dst: sqlite3_bind_int
      Src: /src/nss/lib/sqlite/sqlite3.c:191521,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:191522,1
    - Dst: sqlite3_column_text
      Src: /src/nss/lib/sqlite/sqlite3.c:191523,1
    - Dst: prepareFreeAndCollectError
      Src: /src/nss/lib/sqlite/sqlite3.c:191527,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:191528,1
    - Dst: rbuFinalize
      Src: /src/nss/lib/sqlite/sqlite3.c:191531,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:191533,1
    - Dst: sqlite3_column_int
      Src: /src/nss/lib/sqlite/sqlite3.c:191534,1
    - Dst: sqlite3_column_int
      Src: /src/nss/lib/sqlite/sqlite3.c:191536,1
    - Dst: sqlite3_column_int
      Src: /src/nss/lib/sqlite/sqlite3.c:191537,1
    - Dst: sqlite3_column_text
      Src: /src/nss/lib/sqlite/sqlite3.c:191538,1
    - Dst: rbuMPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:191539,1
    - Dst: rbuMPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:191542,1
    - Dst: rbuMPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:191546,1
    - Dst: rbuFinalize
      Src: /src/nss/lib/sqlite/sqlite3.c:191547,1
    - Dst: sqlite3_test_control
      Src: /src/nss/lib/sqlite/sqlite3.c:191549,1
    - Dst: rbuMPrintfExec
      Src: /src/nss/lib/sqlite/sqlite3.c:191550,1
    - Dst: sqlite3_test_control
      Src: /src/nss/lib/sqlite/sqlite3.c:191554,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - p
    - pIter
    argTypes:
    - sqlite3rbu*
    - RbuObjIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191556
      start: 191504
    functionDepth: 30
    functionLinenumber: 191504
    functionLinenumberEnd: 191556
    functionName: rbuCreateImposterTable2
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbuMPrintfExec
    - rbuMPrintf
    - sqlite3_bind_int
    - sqlite3_step
    - rbuFinalize
    - prepareFreeAndCollectError
    - prepareAndCollectError
    - sqlite3_mprintf
    - sqlite3_column_text
    - sqlite3_column_int
    - sqlite3_test_control
    linkageType: ''
    returnType: void
    signature: void rbuCreateImposterTable2(sqlite3rbu *p, RbuObjIter *pIter)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_test_control
      Src: /src/nss/lib/sqlite/sqlite3.c:191584,1
    - Dst: sqlite3_table_column_metadata
      Src: /src/nss/lib/sqlite/sqlite3.c:191591,1
    - Dst: rbuMPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:191600,1
    - Dst: rbuWithoutRowidPK
      Src: /src/nss/lib/sqlite/sqlite3.c:191608,1
    - Dst: rbuMPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:191610,1
    - Dst: sqlite3_test_control
      Src: /src/nss/lib/sqlite/sqlite3.c:191614,1
    - Dst: rbuMPrintfExec
      Src: /src/nss/lib/sqlite/sqlite3.c:191615,1
    - Dst: sqlite3_test_control
      Src: /src/nss/lib/sqlite/sqlite3.c:191619,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - p
    - pIter
    argTypes:
    - sqlite3rbu*
    - RbuObjIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191621
      start: 191578
    functionDepth: 31
    functionLinenumber: 191578
    functionLinenumberEnd: 191621
    functionName: rbuCreateImposterTable
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbuMPrintfExec
    - rbuMPrintf
    - sqlite3_test_control
    - rbuWithoutRowidPK
    - sqlite3_table_column_metadata
    linkageType: ''
    returnType: void
    signature: void rbuCreateImposterTable(sqlite3rbu *p, RbuObjIter *pIter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rbuObjIterGetBindlist
      Src: /src/nss/lib/sqlite/sqlite3.c:191641,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:191643,1
    - Dst: prepareFreeAndCollectError
      Src: /src/nss/lib/sqlite/sqlite3.c:191644,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:191645,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - p
    - pIter
    - zCollist
    - zRbuRowid
    argTypes:
    - sqlite3rbu*
    - RbuObjIter*
    - char*
    - char*
    assertStmts:
    - condition: ( pIter->pTmpInsert==0 )
      pos:
        line_end: 191642
        line_start: 191642
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 191650
      start: 191634
    functionDepth: 30
    functionLinenumber: 191634
    functionLinenumberEnd: 191650
    functionName: rbuObjIterPrepareTmpInsert
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbuObjIterGetBindlist
    - prepareFreeAndCollectError
    - assert
    - sqlite3_mprintf
    linkageType: ''
    returnType: void
    signature: "void rbuObjIterPrepareTmpInsert(\n  sqlite3rbu *p, \n  RbuObjIter
      *pIter,\n  const char *zCollist,\n  const char *zRbuRowid\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_user_data
      Src: /src/nss/lib/sqlite/sqlite3.c:191657,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:191661,1
    - Dst: sqlite3_value_int
      Src: /src/nss/lib/sqlite/sqlite3.c:191661,1
    - Dst: sqlite3_value_int
      Src: /src/nss/lib/sqlite/sqlite3.c:191665,1
    - Dst: sqlite3_bind_value
      Src: /src/nss/lib/sqlite/sqlite3.c:191670,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:191673,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:191674,1
    - Dst: sqlite3_result_error_code
      Src: /src/nss/lib/sqlite/sqlite3.c:191678,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - pCtx
    - nVal
    - apVal
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: "( sqlite3_value_int(apVal[0])!=0\n      || p->objiter.eType==RBU_PK_EXTERNAL
        \n      || p->objiter.eType==RBU_PK_NONE \n  )"
      pos:
        line_end: 191663
        line_start: 191660
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 191680
      start: 191652
    functionDepth: 27
    functionLinenumber: 191652
    functionLinenumberEnd: 191680
    functionName: rbuTmpInsertFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_step
    - sqlite3_reset
    - sqlite3_result_error_code
    - sqlite3_value_int
    - sqlite3_bind_value
    - assert
    - sqlite3_user_data
    linkageType: ''
    returnType: void
    signature: "void rbuTmpInsertFunc(\n  sqlite3_context *pCtx, \n  int nVal,\n  sqlite3_value
      **apVal\n)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: prepareAndCollectError
      Src: /src/nss/lib/sqlite/sqlite3.c:191688,1
    - Dst: sqlite3_bind_text
      Src: /src/nss/lib/sqlite/sqlite3.c:191694,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:191695,1
    - Dst: sqlite3_column_text
      Src: /src/nss/lib/sqlite/sqlite3.c:191696,1
    - Dst: rbuStrndup
      Src: /src/nss/lib/sqlite/sqlite3.c:191725,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:191730,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 46
    argCount: 2
    argNames:
    - p
    - pIter
    argTypes:
    - sqlite3rbu*
    - RbuObjIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191736
      start: 191682
    functionDepth: 29
    functionLinenumber: 191682
    functionLinenumberEnd: 191736
    functionName: rbuObjIterGetIndexWhere
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_step
    - prepareAndCollectError
    - sqlite3_column_text
    - rbuStrndup
    - sqlite3_bind_text
    - sqlite3_finalize
    linkageType: ''
    returnType: char
    signature: char *rbuObjIterGetIndexWhere(sqlite3rbu *p, RbuObjIter *pIter)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:191748,1
    - Dst: rbuObjIterCacheTableInfo
      Src: /src/nss/lib/sqlite/sqlite3.c:191749,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:191757,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:191770,1
    - Dst: rbuObjIterGetIndexCols
      Src: /src/nss/lib/sqlite/sqlite3.c:191771,1
    - Dst: rbuObjIterGetBindlist
      Src: /src/nss/lib/sqlite/sqlite3.c:191774,1
    - Dst: rbuObjIterGetIndexWhere
      Src: /src/nss/lib/sqlite/sqlite3.c:191775,1
    - Dst: sqlite3_test_control
      Src: /src/nss/lib/sqlite/sqlite3.c:191778,1
    - Dst: sqlite3_test_control
      Src: /src/nss/lib/sqlite/sqlite3.c:191779,1
    - Dst: rbuMPrintfExec
      Src: /src/nss/lib/sqlite/sqlite3.c:191780,1
    - Dst: sqlite3_test_control
      Src: /src/nss/lib/sqlite/sqlite3.c:191784,1
    - Dst: prepareFreeAndCollectError
      Src: /src/nss/lib/sqlite/sqlite3.c:191789,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:191791,1
    - Dst: rbuIsVacuum
      Src: /src/nss/lib/sqlite/sqlite3.c:191796,1
    - Dst: prepareFreeAndCollectError
      Src: /src/nss/lib/sqlite/sqlite3.c:191797,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:191799,1
    - Dst: rbuIsVacuum
      Src: /src/nss/lib/sqlite/sqlite3.c:191806,1
    - Dst: rbuVacuumIndexStart
      Src: /src/nss/lib/sqlite/sqlite3.c:191809,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:191811,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:191816,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:191824,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:191828,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:191834,1
    - Dst: prepareFreeAndCollectError
      Src: /src/nss/lib/sqlite/sqlite3.c:191848,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:191850,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:191854,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:191855,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:191856,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:191857,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:191858,1
    - Dst: rbuIsVacuum
      Src: /src/nss/lib/sqlite/sqlite3.c:191862,1
    - Dst: rbuObjIterGetBindlist
      Src: /src/nss/lib/sqlite/sqlite3.c:191866,1
    - Dst: rbuObjIterGetWhere
      Src: /src/nss/lib/sqlite/sqlite3.c:191867,1
    - Dst: rbuObjIterGetOldlist
      Src: /src/nss/lib/sqlite/sqlite3.c:191868,1
    - Dst: rbuObjIterGetOldlist
      Src: /src/nss/lib/sqlite/sqlite3.c:191869,1
    - Dst: rbuObjIterGetCollist
      Src: /src/nss/lib/sqlite/sqlite3.c:191871,1
    - Dst: rbuCreateImposterTable
      Src: /src/nss/lib/sqlite/sqlite3.c:191875,1
    - Dst: rbuCreateImposterTable2
      Src: /src/nss/lib/sqlite/sqlite3.c:191876,1
    - Dst: prepareFreeAndCollectError
      Src: /src/nss/lib/sqlite/sqlite3.c:191881,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:191882,1
    - Dst: rbuIsVacuum
      Src: /src/nss/lib/sqlite/sqlite3.c:191892,1
    - Dst: prepareFreeAndCollectError
      Src: /src/nss/lib/sqlite/sqlite3.c:191893,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:191894,1
    - Dst: rbuIsVacuum
      Src: /src/nss/lib/sqlite/sqlite3.c:191900,1
    - Dst: rbuMPrintfExec
      Src: /src/nss/lib/sqlite/sqlite3.c:191907,1
    - Dst: rbuMPrintfExec
      Src: /src/nss/lib/sqlite/sqlite3.c:191915,1
    - Dst: rbuMPrintfExec
      Src: /src/nss/lib/sqlite/sqlite3.c:191936,1
    - Dst: rbuObjIterPrepareTmpInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:191945,1
    - Dst: rbuIsVacuum
      Src: /src/nss/lib/sqlite/sqlite3.c:191954,1
    - Dst: rbuIsVacuum
      Src: /src/nss/lib/sqlite/sqlite3.c:191957,1
    - Dst: rbuVacuumTableStart
      Src: /src/nss/lib/sqlite/sqlite3.c:191959,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:191961,1
    - Dst: rbuMPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:191966,1
    - Dst: rbuObjIterGetPkList
      Src: /src/nss/lib/sqlite/sqlite3.c:191968,1
    - Dst: prepareFreeAndCollectError
      Src: /src/nss/lib/sqlite/sqlite3.c:191973,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:191974,1
    - Dst: rbuIsVacuum
      Src: /src/nss/lib/sqlite/sqlite3.c:191977,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:191985,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:191986,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:191989,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:191990,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:191991,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:191992,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:191994,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:191995,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 108
    argCount: 3
    argNames:
    - p
    - pIter
    - nOffset
    argTypes:
    - sqlite3rbu*
    - RbuObjIter*
    - int
    assertStmts:
    - condition: ( pIter->eType!=RBU_PK_VTAB )
      pos:
        line_end: 191769
        line_start: 191769
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIter->bCleanup==0 )
      pos:
        line_end: 191747
        line_start: 191747
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 191999
      start: 191743
    functionDepth: 32
    functionLinenumber: 191743
    functionLinenumberEnd: 191999
    functionName: rbuObjIterPrepareAll
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbuMPrintf
    - rbuObjIterPrepareTmpInsert
    - rbuObjIterGetIndexCols
    - rbuObjIterGetCollist
    - rbuObjIterGetIndexWhere
    - rbuObjIterCacheTableInfo
    - rbuVacuumIndexStart
    - rbuMPrintfExec
    - rbuObjIterGetOldlist
    - assert
    - rbuObjIterGetBindlist
    - rbuCreateImposterTable
    - sqlite3_test_control
    - rbuVacuumTableStart
    - sqlite3_mprintf
    - rbuCreateImposterTable2
    - rbuObjIterGetWhere
    - rbuIsVacuum
    - prepareFreeAndCollectError
    - rbuObjIterGetPkList
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int rbuObjIterPrepareAll(\n  sqlite3rbu *p, \n  RbuObjIter *pIter,\n
      \ int nOffset                     /* Add \"LIMIT -1 OFFSET $nOffset\" to SELECT
      */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:192029,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:192038,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:192043,1
    - Dst: rbuMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:192046,1
    - Dst: rbuObjIterGetWhere
      Src: /src/nss/lib/sqlite/sqlite3.c:192050,1
    - Dst: rbuObjIterGetSetlist
      Src: /src/nss/lib/sqlite/sqlite3.c:192051,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:192055,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:192063,1
    - Dst: prepareFreeAndCollectError
      Src: /src/nss/lib/sqlite/sqlite3.c:192066,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:192071,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:192072,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 4
    argNames:
    - p
    - pIter
    - zMask
    - ppStmt
    argTypes:
    - sqlite3rbu*
    - RbuObjIter*
    - char*
    - sqlite3_stmt**
    assertStmts:
    - condition: ( pUp==0 || pUp->pNext==0 )
      pos:
        line_end: 192037
        line_start: 192037
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 192076
      start: 192010
    functionDepth: 30
    functionLinenumber: 192010
    functionLinenumberEnd: 192076
    functionName: rbuGetUpdateStmt
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - strcmp
    - memcpy
    - rbuObjIterGetWhere
    - rbuMalloc
    - assert
    - sqlite3_mprintf
    - prepareFreeAndCollectError
    - rbuObjIterGetSetlist
    - sqlite3_finalize
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int rbuGetUpdateStmt(\n  sqlite3rbu *p,                  /* RBU handle
      */\n  RbuObjIter *pIter,              /* Object iterator */\n  const char *zMask,
      \             /* rbu_control value ('x.x.') */\n  sqlite3_stmt **ppStmt           /*
      OUT: UPDATE statement handle */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_open_v2
      Src: /src/nss/lib/sqlite/sqlite3.c:192086,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:192088,1
    - Dst: sqlite3_errmsg
      Src: /src/nss/lib/sqlite/sqlite3.c:192088,1
    - Dst: sqlite3_close
      Src: /src/nss/lib/sqlite/sqlite3.c:192089,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - p
    - zName
    - bUseVfs
    argTypes:
    - sqlite3rbu*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192094
      start: 192078
    functionDepth: 16
    functionLinenumber: 192078
    functionLinenumberEnd: 192094
    functionName: rbuOpenDbhandle
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mprintf
    - sqlite3_errmsg
    - sqlite3_open_v2
    - sqlite3_close
    linkageType: ''
    returnType: sqlite3
    signature: "sqlite3 *rbuOpenDbhandle(\n  sqlite3rbu *p, \n  const char *zName,
      \n  int bUseVfs\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:192101,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:192102,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:192103,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:192104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - RbuState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192106
      start: 192099
    functionDepth: 3
    functionLinenumber: 192099
    functionLinenumberEnd: 192106
    functionName: rbuFreeState
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void rbuFreeState(RbuState *p)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: rbuMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:192123,1
    - Dst: prepareFreeAndCollectError
      Src: /src/nss/lib/sqlite/sqlite3.c:192126,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:192127,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:192129,1
    - Dst: sqlite3_column_int
      Src: /src/nss/lib/sqlite/sqlite3.c:192130,1
    - Dst: sqlite3_column_int
      Src: /src/nss/lib/sqlite/sqlite3.c:192132,1
    - Dst: rbuStrndup
      Src: /src/nss/lib/sqlite/sqlite3.c:192142,1
    - Dst: sqlite3_column_text
      Src: /src/nss/lib/sqlite/sqlite3.c:192142,1
    - Dst: rbuStrndup
      Src: /src/nss/lib/sqlite/sqlite3.c:192146,1
    - Dst: sqlite3_column_text
      Src: /src/nss/lib/sqlite/sqlite3.c:192146,1
    - Dst: sqlite3_column_int
      Src: /src/nss/lib/sqlite/sqlite3.c:192150,1
    - Dst: sqlite3_column_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:192154,1
    - Dst: sqlite3_column_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:192158,1
    - Dst: sqlite3_column_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:192162,1
    - Dst: sqlite3_column_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:192166,1
    - Dst: sqlite3_column_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:192170,1
    - Dst: rbuStrndup
      Src: /src/nss/lib/sqlite/sqlite3.c:192174,1
    - Dst: sqlite3_column_text
      Src: /src/nss/lib/sqlite/sqlite3.c:192174,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:192182,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 50
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3rbu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192187
      start: 192117
    functionDepth: 30
    functionLinenumber: 192117
    functionLinenumberEnd: 192187
    functionName: rbuLoadState
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_step
    - rbuMalloc
    - sqlite3_column_int64
    - prepareFreeAndCollectError
    - sqlite3_mprintf
    - sqlite3_column_text
    - rbuStrndup
    - sqlite3_finalize
    - sqlite3_column_int
    linkageType: ''
    returnType: RbuState
    signature: RbuState *rbuLoadState(sqlite3rbu *p)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:192195,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:192196,1
    - Dst: rbuIsVacuum
      Src: /src/nss/lib/sqlite/sqlite3.c:192196,1
    - Dst: rbuOpenDbhandle
      Src: /src/nss/lib/sqlite/sqlite3.c:192199,1
    - Dst: rbuIsVacuum
      Src: /src/nss/lib/sqlite/sqlite3.c:192201,1
    - Dst: sqlite3_file_control
      Src: /src/nss/lib/sqlite/sqlite3.c:192202,1
    - Dst: sqlite3_db_filename
      Src: /src/nss/lib/sqlite/sqlite3.c:192204,1
    - Dst: rbuMPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:192205,1
    - Dst: rbuMPrintfExec
      Src: /src/nss/lib/sqlite/sqlite3.c:192212,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:192213,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:192215,1
    - Dst: rbuIsVacuum
      Src: /src/nss/lib/sqlite/sqlite3.c:192219,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/sqlite/sqlite3.c:192220,1
    - Dst: rbuMPrintfExec
      Src: /src/nss/lib/sqlite/sqlite3.c:192225,1
    - Dst: rbuIsVacuum
      Src: /src/nss/lib/sqlite/sqlite3.c:192228,1
    - Dst: prepareAndCollectError
      Src: /src/nss/lib/sqlite/sqlite3.c:192233,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:192237,1
    - Dst: sqlite3_column_int
      Src: /src/nss/lib/sqlite/sqlite3.c:192238,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:192242,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:192247,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/sqlite/sqlite3.c:192251,1
    - Dst: rbuIsVacuum
      Src: /src/nss/lib/sqlite/sqlite3.c:192257,1
    - Dst: sqlite3_file_control
      Src: /src/nss/lib/sqlite/sqlite3.c:192262,1
    - Dst: rbuLoadState
      Src: /src/nss/lib/sqlite/sqlite3.c:192267,1
    - Dst: rbuFreeState
      Src: /src/nss/lib/sqlite/sqlite3.c:192270,1
    - Dst: rbuOpenDbhandle
      Src: /src/nss/lib/sqlite/sqlite3.c:192273,1
    - Dst: rbuIsVacuum
      Src: /src/nss/lib/sqlite/sqlite3.c:192278,1
    - Dst: rbuOpenDbhandle
      Src: /src/nss/lib/sqlite/sqlite3.c:192279,1
    - Dst: sqlite3_close
      Src: /src/nss/lib/sqlite/sqlite3.c:192283,1
    - Dst: sqlite3_close
      Src: /src/nss/lib/sqlite/sqlite3.c:192284,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:192291,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:192295,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:192295,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:192303,1
    - Dst: sqlite3_db_filename
      Src: /src/nss/lib/sqlite/sqlite3.c:192304,1
    - Dst: rbuOpenDbhandle
      Src: /src/nss/lib/sqlite/sqlite3.c:192312,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:192313,1
    - Dst: sqlite3_create_function
      Src: /src/nss/lib/sqlite/sqlite3.c:192318,1
    - Dst: sqlite3_create_function
      Src: /src/nss/lib/sqlite/sqlite3.c:192324,1
    - Dst: sqlite3_create_function
      Src: /src/nss/lib/sqlite/sqlite3.c:192330,1
    - Dst: sqlite3_file_control
      Src: /src/nss/lib/sqlite/sqlite3.c:192336,1
    - Dst: rbuMPrintfExec
      Src: /src/nss/lib/sqlite/sqlite3.c:192338,1
    - Dst: sqlite3_file_control
      Src: /src/nss/lib/sqlite/sqlite3.c:192344,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:192349,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 111
    argCount: 2
    argNames:
    - p
    - pbRetry
    argTypes:
    - sqlite3rbu*
    - int*
    assertStmts:
    - condition: ( p->rc || rbuIsVacuum(p) || p->zTarget!=0 )
      pos:
        line_end: 192195
        line_start: 192195
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->rc || (p->dbMain==0 && p->dbRbu==0) )
      pos:
        line_end: 192194
        line_start: 192194
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 192351
      start: 192194
    functionDepth: 31
    functionLinenumber: 192194
    functionLinenumberEnd: 192351
    functionName: rbuOpenDatabase
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbuMPrintf
    - sqlite3_close
    - sqlite3_db_filename
    - sqlite3_create_function
    - strlen
    - sqlite3_file_control
    - rbuMPrintfExec
    - memcpy
    - assert
    - prepareAndCollectError
    - memcmp
    - sqlite3_finalize
    - sqlite3_exec
    - sqlite3_step
    - sqlite3_mprintf
    - rbuLoadState
    - rbuOpenDbhandle
    - rbuFreeState
    - rbuIsVacuum
    - sqlite3_free
    - sqlite3_column_int
    linkageType: ''
    returnType: void
    signature: void rbuOpenDatabase(sqlite3rbu *p, int *pbRetry)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_uri_boolean
      Src: /src/nss/lib/sqlite/sqlite3.c:192376,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:192380,1
    - Dst: memmove
      Src: /src/nss/lib/sqlite/sqlite3.c:192382,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 2
    argNames:
    - zBase
    - z
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192385
      start: 192373
    functionDepth: 6
    functionLinenumber: 192373
    functionLinenumberEnd: 192385
    functionName: rbuFileSuffix3
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memmove
    - sqlite3_uri_boolean
    - strlen
    linkageType: ''
    returnType: void
    signature: void rbuFileSuffix3(const char *zBase, char *z)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_file*::pMethods::xShmMap
      Src: /src/nss/lib/sqlite/sqlite3.c:192399,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3rbu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192405
      start: 192394
    functionDepth: 0
    functionLinenumber: 192394
    functionLinenumberEnd: 192405
    functionName: rbuShmChecksum
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_file*::pMethods::xShmMap
    linkageType: ''
    returnType: i64
    signature: i64 rbuShmChecksum(sqlite3rbu *p)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_exec
      Src: /src/nss/lib/sqlite/sqlite3.c:192431,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/sqlite/sqlite3.c:192466,1
    - Dst: rbuMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:192473,1
    - Dst: rbuShmChecksum
      Src: /src/nss/lib/sqlite/sqlite3.c:192474,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:192485,1
    - Dst: sqlite3_file*::pMethods::xSectorSize
      Src: /src/nss/lib/sqlite/sqlite3.c:192486,1
    - Dst: sqlite3_file*::pMethods::xSync
      Src: /src/nss/lib/sqlite/sqlite3.c:192497,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 2
    argNames:
    - p
    - pState
    argTypes:
    - sqlite3rbu*
    - RbuState*
    assertStmts:
    - condition: ( p->nPagePerSector==0 )
      pos:
        line_end: 192484
        line_start: 192484
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 192500
      start: 192423
    functionDepth: 28
    functionLinenumber: 192423
    functionLinenumberEnd: 192500
    functionName: rbuSetupCheckpoint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbuMalloc
    - sqlite3_file*::pMethods::xSectorSize
    - assert
    - sqlite3_file*::pMethods::xSync
    - rbuShmChecksum
    - sqlite3_exec
    linkageType: ''
    returnType: void
    signature: void rbuSetupCheckpoint(sqlite3rbu *p, RbuState *pState)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_realloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:192520,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - pRbu
    - iOff
    - iAmt
    argTypes:
    - sqlite3rbu*
    - i64
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192532
      start: 192507
    functionDepth: 7
    functionLinenumber: 192507
    functionLinenumberEnd: 192532
    functionName: rbuCaptureWalRead
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_realloc64
    linkageType: ''
    returnType: int
    signature: int rbuCaptureWalRead(sqlite3rbu *pRbu, i64 iOff, int iAmt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pRbu
    - iOff
    argTypes:
    - sqlite3rbu*
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192542
      start: 192539
    functionDepth: 0
    functionLinenumber: 192539
    functionLinenumberEnd: 192542
    functionName: rbuCaptureDbWrite
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int rbuCaptureDbWrite(sqlite3rbu *pRbu, i64 iOff)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:192554,1
    - Dst: sqlite3_file*::pMethods::xRead
      Src: /src/nss/lib/sqlite/sqlite3.c:192556,1
    - Dst: sqlite3_file*::pMethods::xWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:192560,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - p
    - pFrame
    argTypes:
    - sqlite3rbu*
    - RbuFrame*
    assertStmts:
    - condition: ( p->rc==SQLITE_OK )
      pos:
        line_end: 192553
        line_start: 192553
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 192561
      start: 192549
    functionDepth: 0
    functionLinenumber: 192549
    functionLinenumberEnd: 192561
    functionName: rbuCheckpointFrame
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_file*::pMethods::xWrite
    - sqlite3_file*::pMethods::xRead
    linkageType: ''
    returnType: void
    signature: void rbuCheckpointFrame(sqlite3rbu *p, RbuFrame *pFrame)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:192569,1
    - Dst: sqlite3_file*::pMethods::xLock
      Src: /src/nss/lib/sqlite/sqlite3.c:192570,1
    - Dst: sqlite3_file*::pMethods::xLock
      Src: /src/nss/lib/sqlite/sqlite3.c:192572,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3rbu*
    assertStmts:
    - condition: ( p->rc==SQLITE_OK )
      pos:
        line_end: 192568
        line_start: 192568
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 192574
      start: 192567
    functionDepth: 0
    functionLinenumber: 192567
    functionLinenumberEnd: 192574
    functionName: rbuLockDatabase
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_file*::pMethods::xLock
    linkageType: ''
    returnType: void
    signature: void rbuLockDatabase(sqlite3rbu *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MultiByteToWideChar
      Src: /src/nss/lib/sqlite/sqlite3.c:192581,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:192585,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:192589,1
    - Dst: MultiByteToWideChar
      Src: /src/nss/lib/sqlite/sqlite3.c:192590,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:192593,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - zFilename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192597
      start: 192577
    functionDepth: 6
    functionLinenumber: 192577
    functionLinenumberEnd: 192597
    functionName: rbuWinUtf8ToUnicode
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3_malloc64
    - sqlite3_free
    - MultiByteToWideChar
    linkageType: ''
    returnType: LPWSTR
    signature: LPWSTR rbuWinUtf8ToUnicode(const char *zFilename)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_db_filename
      Src: /src/nss/lib/sqlite/sqlite3.c:192608,1
    - Dst: rbuIsVacuum
      Src: /src/nss/lib/sqlite/sqlite3.c:192613,1
    - Dst: sqlite3_db_filename
      Src: /src/nss/lib/sqlite/sqlite3.c:192614,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:192616,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:192617,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:192619,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:192620,1
    - Dst: rbuLockDatabase
      Src: /src/nss/lib/sqlite/sqlite3.c:192631,1
    - Dst: rbuFileSuffix3
      Src: /src/nss/lib/sqlite/sqlite3.c:192633,1
    - Dst: rbuFileSuffix3
      Src: /src/nss/lib/sqlite/sqlite3.c:192634,1
    - Dst: rbuObjIterFinalize
      Src: /src/nss/lib/sqlite/sqlite3.c:192637,1
    - Dst: sqlite3_close
      Src: /src/nss/lib/sqlite/sqlite3.c:192638,1
    - Dst: sqlite3_close
      Src: /src/nss/lib/sqlite/sqlite3.c:192639,1
    - Dst: rbuWinUtf8ToUnicode
      Src: /src/nss/lib/sqlite/sqlite3.c:192648,1
    - Dst: rbuWinUtf8ToUnicode
      Src: /src/nss/lib/sqlite/sqlite3.c:192650,1
    - Dst: MoveFileW
      Src: /src/nss/lib/sqlite/sqlite3.c:192652,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:192657,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:192661,1
    - Dst: rename
      Src: /src/nss/lib/sqlite/sqlite3.c:192667,1
    - Dst: rbuOpenDatabase
      Src: /src/nss/lib/sqlite/sqlite3.c:192671,1
    - Dst: rbuSetupCheckpoint
      Src: /src/nss/lib/sqlite/sqlite3.c:192672,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:192677,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:192678,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 47
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3rbu*
    assertStmts:
    - condition: ( p->eStage==RBU_STAGE_MOVE )
      pos:
        line_end: 192618
        line_start: 192618
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->rc==SQLITE_OK && p->zErrmsg==0 )
      pos:
        line_end: 192619
        line_start: 192619
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 192679
      start: 192607
    functionDepth: 32
    functionLinenumber: 192607
    functionLinenumberEnd: 192679
    functionName: rbuMoveOalFile
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbuWinUtf8ToUnicode
    - rbuOpenDatabase
    - rename
    - rbuIsVacuum
    - sqlite3_db_filename
    - sqlite3_close
    - assert
    - sqlite3_mprintf
    - MoveFileW
    - rbuSetupCheckpoint
    - rbuObjIterFinalize
    - rbuLockDatabase
    - rbuFileSuffix3
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void rbuMoveOalFile(sqlite3rbu *p)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_column_type
      Src: /src/nss/lib/sqlite/sqlite3.c:192702,1
    - Dst: sqlite3_column_int
      Src: /src/nss/lib/sqlite/sqlite3.c:192704,1
    - Dst: sqlite3_column_text
      Src: /src/nss/lib/sqlite/sqlite3.c:192716,1
    - Dst: rbuBadControlError
      Src: /src/nss/lib/sqlite/sqlite3.c:192732,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 2
    argNames:
    - p
    - pzMask
    argTypes:
    - sqlite3rbu*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192735
      start: 192698
    functionDepth: 16
    functionLinenumber: 192698
    functionLinenumberEnd: 192735
    functionName: rbuStepType
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_column_type
    - rbuBadControlError
    - sqlite3_column_text
    - sqlite3_column_int
    linkageType: ''
    returnType: int
    signature: int rbuStepType(sqlite3rbu *p, const char **pzMask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_column_name
      Src: /src/nss/lib/sqlite/sqlite3.c:192742,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:192743,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:192743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pStmt
    - iCol
    - zName
    argTypes:
    - sqlite3_stmt*
    - int
    - char*
    assertStmts:
    - condition: ( 0==sqlite3_stricmp(zName, zCol) )
      pos:
        line_end: 192742
        line_start: 192742
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 192744
      start: 192741
    functionDepth: 17
    functionLinenumber: 192741
    functionLinenumberEnd: 192744
    functionName: assertColumnName
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_column_name
    - sqlite3_stricmp
    linkageType: ''
    returnType: void
    signature: void assertColumnName(sqlite3_stmt *pStmt, int iCol, const char *zName)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:192760,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:192761,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:192762,1
    - Dst: sqlite3_column_type
      Src: /src/nss/lib/sqlite/sqlite3.c:192786,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:192789,1
    - Dst: sqlite3_column_value
      Src: /src/nss/lib/sqlite/sqlite3.c:192797,1
    - Dst: sqlite3_bind_value
      Src: /src/nss/lib/sqlite/sqlite3.c:192798,1
    - Dst: rbuIsVacuum
      Src: /src/nss/lib/sqlite/sqlite3.c:192804,1
    - Dst: assertColumnName
      Src: /src/nss/lib/sqlite/sqlite3.c:192813,1
    - Dst: rbuIsVacuum
      Src: /src/nss/lib/sqlite/sqlite3.c:192814,1
    - Dst: sqlite3_column_value
      Src: /src/nss/lib/sqlite/sqlite3.c:192816,1
    - Dst: sqlite3_bind_value
      Src: /src/nss/lib/sqlite/sqlite3.c:192817,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:192821,1
    - Dst: resetAndCollectError
      Src: /src/nss/lib/sqlite/sqlite3.c:192822,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 37
    argCount: 2
    argNames:
    - p
    - eType
    argTypes:
    - sqlite3rbu*
    - int
    assertStmts:
    - condition: ( p->rc==SQLITE_OK )
      pos:
        line_end: 192759
        line_start: 192759
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( eType==RBU_DELETE || eType==RBU_IDX_DELETE\n       || eType==RBU_INSERT
        || eType==RBU_IDX_INSERT\n  )"
      pos:
        line_end: 192763
        line_start: 192761
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( eType!=RBU_DELETE || pIter->zIdx==0 )
      pos:
        line_end: 192760
        line_start: 192760
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 192824
      start: 192754
    functionDepth: 27
    functionLinenumber: 192754
    functionLinenumberEnd: 192824
    functionName: rbuStepOneOp
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_column_type
    - sqlite3_step
    - sqlite3_column_value
    - rbuIsVacuum
    - sqlite3_bind_value
    - assert
    - sqlite3_mprintf
    - resetAndCollectError
    - assertColumnName
    linkageType: ''
    returnType: void
    signature: void rbuStepOneOp(sqlite3rbu *p, int eType)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: rbuStepType
      Src: /src/nss/lib/sqlite/sqlite3.c:192840,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:192843,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:192847,1
    - Dst: rbuBadControlError
      Src: /src/nss/lib/sqlite/sqlite3.c:192850,1
    - Dst: rbuStepOneOp
      Src: /src/nss/lib/sqlite/sqlite3.c:192855,1
    - Dst: rbuStepOneOp
      Src: /src/nss/lib/sqlite/sqlite3.c:192857,1
    - Dst: rbuStepOneOp
      Src: /src/nss/lib/sqlite/sqlite3.c:192860,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:192865,1
    - Dst: rbuGetUpdateStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:192867,1
    - Dst: sqlite3_column_value
      Src: /src/nss/lib/sqlite/sqlite3.c:192872,1
    - Dst: sqlite3_bind_value
      Src: /src/nss/lib/sqlite/sqlite3.c:192874,1
    - Dst: assertColumnName
      Src: /src/nss/lib/sqlite/sqlite3.c:192881,1
    - Dst: sqlite3_column_value
      Src: /src/nss/lib/sqlite/sqlite3.c:192882,1
    - Dst: sqlite3_bind_value
      Src: /src/nss/lib/sqlite/sqlite3.c:192883,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:192886,1
    - Dst: resetAndCollectError
      Src: /src/nss/lib/sqlite/sqlite3.c:192887,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 41
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3rbu*
    assertStmts:
    - condition: ( eType!=RBU_UPDATE || pIter->zIdx==0 )
      pos:
        line_end: 192846
        line_start: 192846
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( eType==RBU_INSERT     || eType==RBU_DELETE\n         || eType==RBU_REPLACE
        \   || eType==RBU_IDX_DELETE\n         || eType==RBU_IDX_INSERT || eType==RBU_UPDATE\n
        \   )"
      pos:
        line_end: 192845
        line_start: 192842
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( eType==RBU_UPDATE )
      pos:
        line_end: 192864
        line_start: 192864
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 192893
      start: 192837
    functionDepth: 31
    functionLinenumber: 192837
    functionLinenumberEnd: 192893
    functionName: rbuStep
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_step
    - sqlite3_column_value
    - rbuBadControlError
    - rbuStepType
    - sqlite3_bind_value
    - assert
    - resetAndCollectError
    - rbuStepOneOp
    - assertColumnName
    - rbuGetUpdateStmt
    linkageType: ''
    returnType: int
    signature: int rbuStep(sqlite3rbu *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rbuIsVacuum
      Src: /src/nss/lib/sqlite/sqlite3.c:192904,1
    - Dst: prepareAndCollectError
      Src: /src/nss/lib/sqlite/sqlite3.c:192908,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:192917,1
    - Dst: sqlite3_column_int
      Src: /src/nss/lib/sqlite/sqlite3.c:192918,1
    - Dst: rbuFinalize
      Src: /src/nss/lib/sqlite/sqlite3.c:192920,1
    - Dst: rbuMPrintfExec
      Src: /src/nss/lib/sqlite/sqlite3.c:192923,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3rbu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192926
      start: 192902
    functionDepth: 29
    functionLinenumber: 192902
    functionLinenumberEnd: 192926
    functionName: rbuIncrSchemaCookie
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbuMPrintfExec
    - sqlite3_step
    - rbuFinalize
    - rbuIsVacuum
    - prepareAndCollectError
    - sqlite3_column_int
    linkageType: ''
    returnType: void
    signature: void rbuIncrSchemaCookie(sqlite3rbu *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rbuIsVacuum
      Src: /src/nss/lib/sqlite/sqlite3.c:192936,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:192939,1
    - Dst: prepareFreeAndCollectError
      Src: /src/nss/lib/sqlite/sqlite3.c:192940,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:192941,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:192966,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:192969,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:192970,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - p
    - eStage
    argTypes:
    - sqlite3rbu*
    - int
    assertStmts:
    - condition: ( pInsert==0 || rc==SQLITE_OK )
      pos:
        line_end: 192965
        line_start: 192965
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->zErrmsg==0 )
      pos:
        line_end: 192938
        line_start: 192938
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 192974
      start: 192933
    functionDepth: 30
    functionLinenumber: 192933
    functionLinenumberEnd: 192974
    functionName: rbuSaveState
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_step
    - rbuIsVacuum
    - assert
    - prepareFreeAndCollectError
    - sqlite3_mprintf
    - sqlite3_finalize
    linkageType: ''
    returnType: void
    signature: void rbuSaveState(sqlite3rbu *p, int eStage)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: prepareFreeAndCollectError
      Src: /src/nss/lib/sqlite/sqlite3.c:192997,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:192998,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:193000,1
    - Dst: rbuMPrintfExec
      Src: /src/nss/lib/sqlite/sqlite3.c:193001,1
    - Dst: sqlite3_column_int
      Src: /src/nss/lib/sqlite/sqlite3.c:193002,1
    - Dst: rbuFinalize
      Src: /src/nss/lib/sqlite/sqlite3.c:193005,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - p
    - zPragma
    argTypes:
    - sqlite3rbu*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193007
      start: 192994
    functionDepth: 30
    functionLinenumber: 192994
    functionLinenumberEnd: 193007
    functionName: rbuCopyPragma
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbuMPrintfExec
    - sqlite3_step
    - rbuFinalize
    - prepareFreeAndCollectError
    - sqlite3_mprintf
    - sqlite3_column_int
    linkageType: ''
    returnType: void
    signature: void rbuCopyPragma(sqlite3rbu *p, const char *zPragma)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:193018,1
    - Dst: rbuIsVacuum
      Src: /src/nss/lib/sqlite/sqlite3.c:193018,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/sqlite/sqlite3.c:193019,1
    - Dst: prepareAndCollectError
      Src: /src/nss/lib/sqlite/sqlite3.c:193021,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:193028,1
    - Dst: sqlite3_column_text
      Src: /src/nss/lib/sqlite/sqlite3.c:193029,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/sqlite/sqlite3.c:193030,1
    - Dst: rbuFinalize
      Src: /src/nss/lib/sqlite/sqlite3.c:193032,1
    - Dst: prepareAndCollectError
      Src: /src/nss/lib/sqlite/sqlite3.c:193036,1
    - Dst: prepareAndCollectError
      Src: /src/nss/lib/sqlite/sqlite3.c:193042,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:193047,1
    - Dst: sqlite3_bind_value
      Src: /src/nss/lib/sqlite/sqlite3.c:193050,1
    - Dst: sqlite3_column_value
      Src: /src/nss/lib/sqlite/sqlite3.c:193050,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:193052,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:193053,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/sqlite/sqlite3.c:193056,1
    - Dst: rbuFinalize
      Src: /src/nss/lib/sqlite/sqlite3.c:193059,1
    - Dst: rbuFinalize
      Src: /src/nss/lib/sqlite/sqlite3.c:193060,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3rbu*
    assertStmts:
    - condition: ( rbuIsVacuum(p) )
      pos:
        line_end: 193017
        line_start: 193017
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 193061
      start: 193014
    functionDepth: 29
    functionLinenumber: 193014
    functionLinenumberEnd: 193061
    functionName: rbuCreateTargetSchema
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_step
    - rbuFinalize
    - sqlite3_column_value
    - sqlite3_reset
    - rbuIsVacuum
    - sqlite3_bind_value
    - assert
    - prepareAndCollectError
    - sqlite3_column_text
    - sqlite3_exec
    linkageType: ''
    returnType: void
    signature: void rbuCreateTargetSchema(sqlite3rbu *p)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: rbuIsVacuum
      Src: /src/nss/lib/sqlite/sqlite3.c:193074,1
    - Dst: rbuCreateTargetSchema
      Src: /src/nss/lib/sqlite/sqlite3.c:193075,1
    - Dst: rbuCopyPragma
      Src: /src/nss/lib/sqlite/sqlite3.c:193076,1
    - Dst: rbuCopyPragma
      Src: /src/nss/lib/sqlite/sqlite3.c:193077,1
    - Dst: rbuIsVacuum
      Src: /src/nss/lib/sqlite/sqlite3.c:193086,1
    - Dst: rbuMPrintfExec
      Src: /src/nss/lib/sqlite/sqlite3.c:193087,1
    - Dst: rbuObjIterPrepareAll
      Src: /src/nss/lib/sqlite/sqlite3.c:193092,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:193096,1
    - Dst: rbuStep
      Src: /src/nss/lib/sqlite/sqlite3.c:193100,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:193102,1
    - Dst: rbuObjIterNext
      Src: /src/nss/lib/sqlite/sqlite3.c:193107,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:193111,1
    - Dst: rbuSaveState
      Src: /src/nss/lib/sqlite/sqlite3.c:193112,1
    - Dst: rbuIncrSchemaCookie
      Src: /src/nss/lib/sqlite/sqlite3.c:193113,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/sqlite/sqlite3.c:193115,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/sqlite/sqlite3.c:193118,1
    - Dst: rbuMoveOalFile
      Src: /src/nss/lib/sqlite/sqlite3.c:193127,1
    - Dst: sqlite3_file*::pMethods::xSync
      Src: /src/nss/lib/sqlite/sqlite3.c:193139,1
    - Dst: sqlite3_file*::pMethods::xShmMap
      Src: /src/nss/lib/sqlite/sqlite3.c:193144,1
    - Dst: rbuCheckpointFrame
      Src: /src/nss/lib/sqlite/sqlite3.c:193169,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 81
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3rbu*
    assertStmts:
    - condition: ( pIter->zTbl==0 )
      pos:
        line_end: 193110
        line_start: 193110
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 193188
      start: 193066
    functionDepth: 33
    functionLinenumber: 193066
    functionLinenumberEnd: 193188
    functionName: sqlite3rbu_step
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbuMPrintfExec
    - rbuCheckpointFrame
    - rbuObjIterPrepareAll
    - rbuMoveOalFile
    - sqlite3_step
    - sqlite3_reset
    - rbuIncrSchemaCookie
    - rbuCopyPragma
    - sqlite3_file*::pMethods::xShmMap
    - rbuIsVacuum
    - rbuCreateTargetSchema
    - rbuObjIterNext
    - assert
    - rbuStep
    - sqlite3_file*::pMethods::xSync
    - rbuSaveState
    - sqlite3_exec
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3rbu_step(sqlite3rbu *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:193198,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - z1
    - z2
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193199
      start: 193195
    functionDepth: 2
    functionLinenumber: 193195
    functionLinenumberEnd: 193199
    functionName: rbuStrCompare
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_stricmp
    linkageType: ''
    returnType: int
    signature: int rbuStrCompare(const char *z1, const char *z2)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:193212,1
    - Dst: rbuStrCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:193218,1
    - Dst: rbuStrCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:193219,1
    - Dst: rbuStrCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:193220,1
    - Dst: rbuObjIterNext
      Src: /src/nss/lib/sqlite/sqlite3.c:193222,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:193227,1
    - Dst: rbuObjIterPrepareAll
      Src: /src/nss/lib/sqlite/sqlite3.c:193232,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 16
    argCount: 2
    argNames:
    - p
    - pState
    argTypes:
    - sqlite3rbu*
    - RbuState*
    assertStmts:
    - condition: ( p->rc==SQLITE_OK )
      pos:
        line_end: 193211
        line_start: 193211
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 193237
      start: 193211
    functionDepth: 33
    functionLinenumber: 193211
    functionLinenumberEnd: 193237
    functionName: rbuSetupOal
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbuObjIterPrepareAll
    - rbuObjIterNext
    - assert
    - sqlite3_mprintf
    - rbuStrCompare
    linkageType: ''
    returnType: void
    signature: void rbuSetupOal(sqlite3rbu *p, RbuState *pState)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rbuMPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:193245,1
    - Dst: sqlite3_vfs_find
      Src: /src/nss/lib/sqlite/sqlite3.c:193247,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:193248,1
    - Dst: sqlite3_vfs*::xDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:193249,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:193250,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3rbu*
    assertStmts:
    - condition: ( pVfs && p->rc==SQLITE_OK && p->zErrmsg==0 )
      pos:
        line_end: 193247
        line_start: 193247
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 193252
      start: 193244
    functionDepth: 10
    functionLinenumber: 193244
    functionLinenumberEnd: 193252
    functionName: rbuDeleteOalFile
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbuMPrintf
    - assert
    - sqlite3_vfs*::xDelete
    - sqlite3_vfs_find
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void rbuDeleteOalFile(sqlite3rbu *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:193264,1
    - Dst: sqlite3_randomness
      Src: /src/nss/lib/sqlite/sqlite3.c:193265,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:193266,1
    - Dst: sqlite3rbu_create_vfs
      Src: /src/nss/lib/sqlite/sqlite3.c:193267,1
    - Dst: sqlite3_vfs_find
      Src: /src/nss/lib/sqlite/sqlite3.c:193269,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:193270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3rbu*
    assertStmts:
    - condition: ( p->rc==SQLITE_OK )
      pos:
        line_end: 193263
        line_start: 193263
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pVfs )
      pos:
        line_end: 193269
        line_start: 193269
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 193274
      start: 193260
    functionDepth: 10
    functionLinenumber: 193260
    functionLinenumberEnd: 193274
    functionName: rbuCreateVfs
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3rbu_create_vfs
    - sqlite3_randomness
    - assert
    - sqlite3_vfs_find
    - sqlite3_snprintf
    linkageType: ''
    returnType: void
    signature: void rbuCreateVfs(sqlite3rbu *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3rbu_destroy_vfs
      Src: /src/nss/lib/sqlite/sqlite3.c:193282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3rbu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193285
      start: 193280
    functionDepth: 1
    functionLinenumber: 193280
    functionLinenumberEnd: 193285
    functionName: rbuDeleteVfs
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3rbu_destroy_vfs
    linkageType: ''
    returnType: void
    signature: void rbuDeleteVfs(sqlite3rbu *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_user_data
      Src: /src/nss/lib/sqlite/sqlite3.c:193297,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:193302,1
    - Dst: prepareFreeAndCollectError
      Src: /src/nss/lib/sqlite/sqlite3.c:193304,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:193305,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:193306,1
    - Dst: sqlite3_result_error
      Src: /src/nss/lib/sqlite/sqlite3.c:193309,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:193312,1
    - Dst: sqlite3_column_int
      Src: /src/nss/lib/sqlite/sqlite3.c:193313,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:193315,1
    - Dst: sqlite3_result_int
      Src: /src/nss/lib/sqlite/sqlite3.c:193317,1
    - Dst: sqlite3_result_error
      Src: /src/nss/lib/sqlite/sqlite3.c:193319,1
    - Dst: sqlite3_errmsg
      Src: /src/nss/lib/sqlite/sqlite3.c:193319,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:193323,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - pCtx
    - nVal
    - apVal
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( nVal==1 )
      pos:
        line_end: 193301
        line_start: 193301
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 193324
      start: 193292
    functionDepth: 30
    functionLinenumber: 193292
    functionLinenumberEnd: 193324
    functionName: rbuIndexCntFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_step
    - assert
    - sqlite3_mprintf
    - prepareFreeAndCollectError
    - sqlite3_result_int
    - sqlite3_errmsg
    - sqlite3_user_data
    - sqlite3_value_text
    - sqlite3_finalize
    - sqlite3_free
    - sqlite3_column_int
    - sqlite3_result_error
    linkageType: ''
    returnType: void
    signature: "void rbuIndexCntFunc(\n  sqlite3_context *pCtx, \n  int nVal,\n  sqlite3_value
      **apVal\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_create_function
      Src: /src/nss/lib/sqlite/sqlite3.c:193348,1
    - Dst: prepareAndCollectError
      Src: /src/nss/lib/sqlite/sqlite3.c:193355,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:193360,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:193363,1
    - Dst: prepareAndCollectError
      Src: /src/nss/lib/sqlite/sqlite3.c:193367,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:193372,1
    - Dst: sqlite3_column_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:193373,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:193375,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3rbu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193379
      start: 193341
    functionDepth: 29
    functionLinenumber: 193341
    functionLinenumberEnd: 193379
    functionName: rbuInitPhaseOneSteps
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_step
    - sqlite3_column_int64
    - prepareAndCollectError
    - sqlite3_create_function
    - sqlite3_finalize
    linkageType: ''
    returnType: void
    signature: void rbuInitPhaseOneSteps(sqlite3rbu *p)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:193388,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:193389,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:193392,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:193397,1
    - Dst: rbuCreateVfs
      Src: /src/nss/lib/sqlite/sqlite3.c:193398,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:193406,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:193410,1
    - Dst: rbuMPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:193413,1
    - Dst: rbuOpenDatabase
      Src: /src/nss/lib/sqlite/sqlite3.c:193423,1
    - Dst: rbuOpenDatabase
      Src: /src/nss/lib/sqlite/sqlite3.c:193425,1
    - Dst: rbuLoadState
      Src: /src/nss/lib/sqlite/sqlite3.c:193430,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:193431,1
    - Dst: rbuDeleteOalFile
      Src: /src/nss/lib/sqlite/sqlite3.c:193435,1
    - Dst: rbuInitPhaseOneSteps
      Src: /src/nss/lib/sqlite/sqlite3.c:193436,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:193446,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:193451,1
    - Dst: rbuIsVacuum
      Src: /src/nss/lib/sqlite/sqlite3.c:193462,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:193469,1
    - Dst: rbuIsVacuum
      Src: /src/nss/lib/sqlite/sqlite3.c:193470,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/sqlite/sqlite3.c:193478,1
    - Dst: rbuObjIterFirst
      Src: /src/nss/lib/sqlite/sqlite3.c:193482,1
    - Dst: rbuIsVacuum
      Src: /src/nss/lib/sqlite/sqlite3.c:193491,1
    - Dst: rbuCopyPragma
      Src: /src/nss/lib/sqlite/sqlite3.c:193492,1
    - Dst: rbuCopyPragma
      Src: /src/nss/lib/sqlite/sqlite3.c:193493,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/sqlite/sqlite3.c:193499,1
    - Dst: sqlite3_file_control
      Src: /src/nss/lib/sqlite/sqlite3.c:193506,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/sqlite/sqlite3.c:193508,1
    - Dst: rbuSetupOal
      Src: /src/nss/lib/sqlite/sqlite3.c:193514,1
    - Dst: rbuSetupCheckpoint
      Src: /src/nss/lib/sqlite/sqlite3.c:193520,1
    - Dst: rbuFreeState
      Src: /src/nss/lib/sqlite/sqlite3.c:193528,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 96
    argCount: 3
    argNames:
    - zTarget
    - zRbu
    - zState
    argTypes:
    - char*
    - char*
    - char*
    assertStmts:
    - condition: ( pState || p->rc!=SQLITE_OK )
      pos:
        line_end: 193430
        line_start: 193430
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->rc!=SQLITE_OK || p->eStage!=0 )
      pos:
        line_end: 193445
        line_start: 193445
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 193532
      start: 193382
    functionDepth: 34
    functionLinenumber: 193382
    functionLinenumberEnd: 193532
    functionName: openRbuHandle
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbuMPrintf
    - strlen
    - sqlite3_file_control
    - memcpy
    - rbuCopyPragma
    - memset
    - assert
    - rbuObjIterFirst
    - sqlite3_exec
    - sqlite3_malloc64
    - rbuOpenDatabase
    - rbuDeleteOalFile
    - rbuCreateVfs
    - sqlite3_mprintf
    - rbuLoadState
    - rbuInitPhaseOneSteps
    - rbuFreeState
    - rbuIsVacuum
    - rbuSetupCheckpoint
    - rbuSetupOal
    linkageType: ''
    returnType: sqlite3rbu
    signature: "sqlite3rbu *openRbuHandle(\n  const char *zTarget, \n  const char
      *zRbu,\n  const char *zState\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:193540,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:193542,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193546
      start: 193538
    functionDepth: 6
    functionLinenumber: 193538
    functionLinenumberEnd: 193546
    functionName: rbuMisuseError
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3_malloc64
    linkageType: ''
    returnType: sqlite3rbu
    signature: sqlite3rbu *rbuMisuseError(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rbuMisuseError
      Src: /src/nss/lib/sqlite/sqlite3.c:193556,1
    - Dst: openRbuHandle
      Src: /src/nss/lib/sqlite/sqlite3.c:193558,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - zTarget
    - zRbu
    - zState
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193559
      start: 193551
    functionDepth: 35
    functionLinenumber: 193551
    functionLinenumberEnd: 193559
    functionName: sqlite3rbu_open
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbuMisuseError
    - openRbuHandle
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API *sqlite3rbu_open(\n  const char *zTarget, \n  const char
      *zRbu,\n  const char *zState\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rbuMisuseError
      Src: /src/nss/lib/sqlite/sqlite3.c:193568,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:193570,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:193571,1
    - Dst: rbuMisuseError
      Src: /src/nss/lib/sqlite/sqlite3.c:193572,1
    - Dst: openRbuHandle
      Src: /src/nss/lib/sqlite/sqlite3.c:193576,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - zTarget
    - zState
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193577
      start: 193564
    functionDepth: 35
    functionLinenumber: 193564
    functionLinenumberEnd: 193577
    functionName: sqlite3rbu_vacuum
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcmp
    - rbuMisuseError
    - openRbuHandle
    - strlen
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API *sqlite3rbu_vacuum(\n  const char *zTarget, \n  const char
      *zState\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pRbu
    - bRbu
    argTypes:
    - sqlite3rbu*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193588
      start: 193582
    functionDepth: 0
    functionLinenumber: 193582
    functionLinenumberEnd: 193588
    functionName: sqlite3rbu_db
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *sqlite3rbu_db(sqlite3rbu *pRbu, int bRbu)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:193599,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:193601,1
    - Dst: memmove
      Src: /src/nss/lib/sqlite/sqlite3.c:193604,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3rbu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193609
      start: 193596
    functionDepth: 1
    functionLinenumber: 193596
    functionLinenumberEnd: 193609
    functionName: rbuEditErrmsg
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcmp
    - memmove
    - strlen
    linkageType: ''
    returnType: void
    signature: void rbuEditErrmsg(sqlite3rbu *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_exec
      Src: /src/nss/lib/sqlite/sqlite3.c:193620,1
    - Dst: sqlite3_file*::pMethods::xSync
      Src: /src/nss/lib/sqlite/sqlite3.c:193626,1
    - Dst: rbuSaveState
      Src: /src/nss/lib/sqlite/sqlite3.c:193629,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/sqlite/sqlite3.c:193632,1
    - Dst: rbuObjIterFinalize
      Src: /src/nss/lib/sqlite/sqlite3.c:193636,1
    - Dst: rbuIsVacuum
      Src: /src/nss/lib/sqlite/sqlite3.c:193643,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/sqlite/sqlite3.c:193644,1
    - Dst: sqlite3_close
      Src: /src/nss/lib/sqlite/sqlite3.c:193649,1
    - Dst: sqlite3_close
      Src: /src/nss/lib/sqlite/sqlite3.c:193650,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:193651,1
    - Dst: rbuDeleteVfs
      Src: /src/nss/lib/sqlite/sqlite3.c:193652,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:193653,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:193654,1
    - Dst: rbuEditErrmsg
      Src: /src/nss/lib/sqlite/sqlite3.c:193656,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:193661,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:193663,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:193664,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 2
    argNames:
    - p
    - pzErrmsg
    argTypes:
    - sqlite3rbu*
    - char**
    assertStmts:
    - condition: ( p->szTemp==0 )
      pos:
        line_end: 193650
        line_start: 193650
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 193670
      start: 193614
    functionDepth: 31
    functionLinenumber: 193614
    functionLinenumberEnd: 193670
    functionName: sqlite3rbu_close
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbuIsVacuum
    - sqlite3_close
    - sqlite3_file*::pMethods::xSync
    - assert
    - rbuEditErrmsg
    - rbuSaveState
    - rbuObjIterFinalize
    - sqlite3_exec
    - sqlite3_free
    - rbuDeleteVfs
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3rbu_close(sqlite3rbu *p, char **pzErrmsg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pRbu
    argTypes:
    - sqlite3rbu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193679
      start: 193677
    functionDepth: 0
    functionLinenumber: 193677
    functionLinenumberEnd: 193679
    functionName: sqlite3_int64::sqlite3rbu_progress
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_int64 sqlite3rbu_progress(sqlite3rbu *pRbu)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:193713,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - p
    - pnOne
    - pnTwo
    argTypes:
    - sqlite3rbu*
    - int*
    - int*
    assertStmts:
    - condition: ( 0 )
      pos:
        line_end: 193712
        line_start: 193712
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 193715
      start: 193685
    functionDepth: 0
    functionLinenumber: 193685
    functionLinenumberEnd: 193715
    functionName: sqlite3rbu_bp_progress
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3rbu_bp_progress(sqlite3rbu *p, int *pnOne, int *pnTwo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:193726,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:193727,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:193728,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:193729,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:193730,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:193731,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:193732,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:193733,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:193738,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:193739,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3rbu*
    assertStmts:
    - condition: ( RBU_STAGE_OAL==1 )
      pos:
        line_end: 193725
        line_start: 193725
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( RBU_STAGE_MOVE==2 )
      pos:
        line_end: 193726
        line_start: 193726
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( aRes[RBU_STAGE_OAL]==SQLITE_RBU_STATE_OAL )
      pos:
        line_end: 193729
        line_start: 193729
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( RBU_STAGE_DONE==5 )
      pos:
        line_end: 193728
        line_start: 193728
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( RBU_STAGE_CKPT==4 )
      pos:
        line_end: 193727
        line_start: 193727
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( aRes[RBU_STAGE_MOVE]==SQLITE_RBU_STATE_MOVE )
      pos:
        line_end: 193730
        line_start: 193730
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( aRes[RBU_STAGE_CKPT]==SQLITE_RBU_STATE_CHECKPOINT )
      pos:
        line_end: 193731
        line_start: 193731
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( aRes[RBU_STAGE_DONE]==SQLITE_RBU_STATE_DONE )
      pos:
        line_end: 193732
        line_start: 193732
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->rc!=SQLITE_DONE || p->eStage==RBU_STAGE_DONE )
      pos:
        line_end: 193737
        line_start: 193737
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( p->eStage==RBU_STAGE_OAL\n         || p->eStage==RBU_STAGE_MOVE\n
        \        || p->eStage==RBU_STAGE_CKPT\n         || p->eStage==RBU_STAGE_DONE\n
        \   )"
      pos:
        line_end: 193742
        line_start: 193738
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 193746
      start: 193720
    functionDepth: 0
    functionLinenumber: 193720
    functionLinenumberEnd: 193746
    functionName: sqlite3rbu_state
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3rbu_state(sqlite3rbu *p)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:193752,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:193754,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/sqlite/sqlite3.c:193755,1
    - Dst: sqlite3_file*::pMethods::xSync
      Src: /src/nss/lib/sqlite/sqlite3.c:193761,1
    - Dst: rbuSaveState
      Src: /src/nss/lib/sqlite/sqlite3.c:193765,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:193769,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/sqlite/sqlite3.c:193770,1
    - Dst: rbuIsVacuum
      Src: /src/nss/lib/sqlite/sqlite3.c:193772,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/sqlite/sqlite3.c:193773,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/sqlite/sqlite3.c:193775,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3rbu*
    assertStmts:
    - condition: ( p->eStage>=RBU_STAGE_OAL && p->eStage<=RBU_STAGE_DONE )
      pos:
        line_end: 193751
        line_start: 193751
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc!=SQLITE_DONE )
      pos:
        line_end: 193753
        line_start: 193753
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc!=SQLITE_DONE )
      pos:
        line_end: 193768
        line_start: 193768
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 193780
      start: 193748
    functionDepth: 31
    functionLinenumber: 193748
    functionLinenumberEnd: 193780
    functionName: sqlite3rbu_savestate
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbuIsVacuum
    - assert
    - sqlite3_file*::pMethods::xSync
    - rbuSaveState
    - sqlite3_exec
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3rbu_savestate(sqlite3rbu *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:193842,1
    - Dst: xShmLock
      Src: /src/nss/lib/sqlite/sqlite3.c:193848,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - p
    argTypes:
    - rbu_file*
    assertStmts:
    - condition: ( p->openFlags & SQLITE_OPEN_MAIN_DB )
      pos:
        line_end: 193841
        line_start: 193841
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 193853
      start: 193841
    functionDepth: 0
    functionLinenumber: 193841
    functionLinenumberEnd: 193853
    functionName: rbuUnlockShm
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - xShmLock
    linkageType: ''
    returnType: void
    signature: void rbuUnlockShm(rbu_file *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:193862,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - pFd
    - nNew
    argTypes:
    - rbu_file*
    - sqlite3_int64
    assertStmts:
    - condition: ( pRbu->szTemp>=0 )
      pos:
        line_end: 193861
        line_start: 193861
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 193865
      start: 193857
    functionDepth: 0
    functionLinenumber: 193857
    functionLinenumberEnd: 193865
    functionName: rbuUpdateTempSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int rbuUpdateTempSize(rbu_file *pFd, sqlite3_int64 nNew)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:193878,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:193879,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:193891,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - p
    argTypes:
    - rbu_file*
    assertStmts:
    - condition: ( (p->openFlags & SQLITE_OPEN_MAIN_DB) )
      pos:
        line_end: 193877
        line_start: 193877
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 193892
      start: 193875
    functionDepth: 1
    functionLinenumber: 193875
    functionLinenumberEnd: 193892
    functionName: rbuMainlistAdd
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_mutex_leave
    - sqlite3_mutex_enter
    linkageType: ''
    returnType: void
    signature: void rbuMainlistAdd(rbu_file *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:193899,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:193906,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - p
    argTypes:
    - rbu_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193907
      start: 193897
    functionDepth: 1
    functionLinenumber: 193897
    functionLinenumberEnd: 193907
    functionName: rbuMainlistRemove
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3_mutex_leave
    linkageType: ''
    returnType: void
    signature: void rbuMainlistRemove(rbu_file *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:193920,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:193926,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - pRbuVfs
    - zWal
    - bRbu
    argTypes:
    - rbu_vfs*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193928
      start: 193918
    functionDepth: 1
    functionLinenumber: 193918
    functionLinenumberEnd: 193928
    functionName: rbuFindMaindb
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3_mutex_leave
    linkageType: ''
    returnType: rbu_file
    signature: rbu_file *rbuFindMaindb(rbu_vfs *pRbuVfs, const char *zWal, int bRbu)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:193940,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:193942,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:193944,1
    - Dst: rbuMainlistRemove
      Src: /src/nss/lib/sqlite/sqlite3.c:193947,1
    - Dst: rbuUnlockShm
      Src: /src/nss/lib/sqlite/sqlite3.c:193948,1
    - Dst: rbu_file*::pReal::pMethods::xShmUnmap
      Src: /src/nss/lib/sqlite/sqlite3.c:193949,1
    - Dst: rbuUpdateTempSize
      Src: /src/nss/lib/sqlite/sqlite3.c:193952,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:193954,1
    - Dst: rbu_file*::pReal::pMethods::xClose
      Src: /src/nss/lib/sqlite/sqlite3.c:193957,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - pFile
    argTypes:
    - sqlite3_file*
    assertStmts:
    - condition: ( p->pMainNext==0 && p->pRbuVfs->pMain!=p )
      pos:
        line_end: 193953
        line_start: 193953
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 193959
      start: 193933
    functionDepth: 3
    functionLinenumber: 193933
    functionLinenumberEnd: 193959
    functionName: rbuVfsClose
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbu_file*::pReal::pMethods::xClose
    - rbuMainlistRemove
    - rbu_file*::pReal::pMethods::xShmUnmap
    - assert
    - rbuUnlockShm
    - sqlite3_free
    - rbuUpdateTempSize
    linkageType: ''
    returnType: int
    signature: int rbuVfsClose(sqlite3_file *pFile)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aBuf
    argTypes:
    - u8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193971
      start: 193966
    functionDepth: 0
    functionLinenumber: 193966
    functionLinenumberEnd: 193971
    functionName: rbuGetU32
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: u32 rbuGetU32(u8 *aBuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - aBuf
    - iVal
    argTypes:
    - u8*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193982
      start: 193977
    functionDepth: 0
    functionLinenumber: 193977
    functionLinenumberEnd: 193982
    functionName: rbuPutU32
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rbuPutU32(u8 *aBuf, u32 iVal)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - aBuf
    - iVal
    argTypes:
    - u8*
    - u16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193987
      start: 193984
    functionDepth: 0
    functionLinenumber: 193984
    functionLinenumberEnd: 193987
    functionName: rbuPutU16
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rbuPutU16(u8 *aBuf, u16 iVal)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:194003,1
    - Dst: rbuCaptureWalRead
      Src: /src/nss/lib/sqlite/sqlite3.c:194004,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:194011,1
    - Dst: rbu_file*::pReal::pMethods::xRead
      Src: /src/nss/lib/sqlite/sqlite3.c:194013,1
    - Dst: rbuIsVacuum
      Src: /src/nss/lib/sqlite/sqlite3.c:194019,1
    - Dst: sqlite3_file*::pMethods::xRead
      Src: /src/nss/lib/sqlite/sqlite3.c:194025,1
    - Dst: rbuGetU32
      Src: /src/nss/lib/sqlite/sqlite3.c:194028,1
    - Dst: rbuPutU32
      Src: /src/nss/lib/sqlite/sqlite3.c:194029,1
    - Dst: rbuPutU32
      Src: /src/nss/lib/sqlite/sqlite3.c:194030,1
    - Dst: rbuPutU32
      Src: /src/nss/lib/sqlite/sqlite3.c:194031,1
    - Dst: rbuPutU32
      Src: /src/nss/lib/sqlite/sqlite3.c:194032,1
    - Dst: rbuPutU32
      Src: /src/nss/lib/sqlite/sqlite3.c:194033,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:194036,1
    - Dst: rbuPutU16
      Src: /src/nss/lib/sqlite/sqlite3.c:194037,1
    - Dst: rbuGetU32
      Src: /src/nss/lib/sqlite/sqlite3.c:194048,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 32
    argCount: 4
    argNames:
    - pFile
    - zBuf
    - iAmt
    - iOfst
    argTypes:
    - sqlite3_file*
    - void*
    - int
    - sqlite_int64
    assertStmts:
    - condition: ( p->openFlags & SQLITE_OPEN_WAL )
      pos:
        line_end: 194002
        line_start: 194002
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 194053
      start: 193992
    functionDepth: 8
    functionLinenumber: 193992
    functionLinenumberEnd: 194053
    functionName: rbuVfsRead
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbu_file*::pReal::pMethods::xRead
    - rbuCaptureWalRead
    - sqlite3_file*::pMethods::xRead
    - rbuPutU16
    - rbuIsVacuum
    - assert
    - memset
    - rbuPutU32
    - rbuGetU32
    linkageType: ''
    returnType: int
    signature: "int rbuVfsRead(\n  sqlite3_file *pFile, \n  void *zBuf, \n  int iAmt,
      \n  sqlite_int64 iOfst\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:194069,1
    - Dst: rbuCaptureDbWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:194070,1
    - Dst: rbuUpdateTempSize
      Src: /src/nss/lib/sqlite/sqlite3.c:194081,1
    - Dst: rbu_file*::pReal::pMethods::xWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:194086,1
    - Dst: rbuGetU32
      Src: /src/nss/lib/sqlite/sqlite3.c:194091,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 24
    argCount: 4
    argNames:
    - pFile
    - zBuf
    - iAmt
    - iOfst
    argTypes:
    - sqlite3_file*
    - void*
    - int
    - sqlite_int64
    assertStmts:
    - condition: ( p->openFlags & SQLITE_OPEN_MAIN_DB )
      pos:
        line_end: 194068
        line_start: 194068
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 194096
      start: 194058
    functionDepth: 1
    functionLinenumber: 194058
    functionLinenumberEnd: 194096
    functionName: rbuVfsWrite
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbu_file*::pReal::pMethods::xWrite
    - rbuCaptureDbWrite
    - assert
    - rbuGetU32
    - rbuUpdateTempSize
    linkageType: ''
    returnType: int
    signature: "int rbuVfsWrite(\n  sqlite3_file *pFile, \n  const void *zBuf, \n
      \ int iAmt, \n  sqlite_int64 iOfst\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rbuUpdateTempSize
      Src: /src/nss/lib/sqlite/sqlite3.c:194104,1
    - Dst: rbu_file*::pReal::pMethods::xTruncate
      Src: /src/nss/lib/sqlite/sqlite3.c:194107,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - pFile
    - size
    argTypes:
    - sqlite3_file*
    - sqlite_int64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194108
      start: 194101
    functionDepth: 1
    functionLinenumber: 194101
    functionLinenumberEnd: 194108
    functionName: rbuVfsTruncate
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbu_file*::pReal::pMethods::xTruncate
    - rbuUpdateTempSize
    linkageType: ''
    returnType: int
    signature: int rbuVfsTruncate(sqlite3_file *pFile, sqlite_int64 size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rbu_file*::pReal::pMethods::xSync
      Src: /src/nss/lib/sqlite/sqlite3.c:194121,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - pFile
    - flags
    argTypes:
    - sqlite3_file*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194122
      start: 194113
    functionDepth: 0
    functionLinenumber: 194113
    functionLinenumberEnd: 194122
    functionName: rbuVfsSync
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbu_file*::pReal::pMethods::xSync
    linkageType: ''
    returnType: int
    signature: int rbuVfsSync(sqlite3_file *pFile, int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rbu_file*::pReal::pMethods::xFileSize
      Src: /src/nss/lib/sqlite/sqlite3.c:194130,1
    - Dst: rbuIsVacuum
      Src: /src/nss/lib/sqlite/sqlite3.c:194137,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 2
    argNames:
    - pFile
    - pSize
    argTypes:
    - sqlite3_file*
    - sqlite_int64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194143
      start: 194127
    functionDepth: 1
    functionLinenumber: 194127
    functionLinenumberEnd: 194143
    functionName: rbuVfsFileSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbu_file*::pReal::pMethods::xFileSize
    - rbuIsVacuum
    linkageType: ''
    returnType: int
    signature: int rbuVfsFileSize(sqlite3_file *pFile, sqlite_int64 *pSize)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:194153,1
    - Dst: rbu_file*::pReal::pMethods::xLock
      Src: /src/nss/lib/sqlite/sqlite3.c:194161,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - pFile
    - eLock
    argTypes:
    - sqlite3_file*
    - int
    assertStmts:
    - condition: ( p->openFlags & (SQLITE_OPEN_MAIN_DB|SQLITE_OPEN_TEMP_DB) )
      pos:
        line_end: 194152
        line_start: 194152
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 194165
      start: 194148
    functionDepth: 0
    functionLinenumber: 194148
    functionLinenumberEnd: 194165
    functionName: rbuVfsLock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - rbu_file*::pReal::pMethods::xLock
    linkageType: ''
    returnType: int
    signature: int rbuVfsLock(sqlite3_file *pFile, int eLock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rbu_file*::pReal::pMethods::xUnlock
      Src: /src/nss/lib/sqlite/sqlite3.c:194172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pFile
    - eLock
    argTypes:
    - sqlite3_file*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194173
      start: 194170
    functionDepth: 0
    functionLinenumber: 194170
    functionLinenumberEnd: 194173
    functionName: rbuVfsUnlock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbu_file*::pReal::pMethods::xUnlock
    linkageType: ''
    returnType: int
    signature: int rbuVfsUnlock(sqlite3_file *pFile, int eLock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rbu_file*::pReal::pMethods::xCheckReservedLock
      Src: /src/nss/lib/sqlite/sqlite3.c:194180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pFile
    - pResOut
    argTypes:
    - sqlite3_file*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194181
      start: 194178
    functionDepth: 0
    functionLinenumber: 194178
    functionLinenumberEnd: 194181
    functionName: rbuVfsCheckReservedLock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbu_file*::pReal::pMethods::xCheckReservedLock
    linkageType: ''
    returnType: int
    signature: int rbuVfsCheckReservedLock(sqlite3_file *pFile, int *pResOut)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:194191,1
    - Dst: xControl
      Src: /src/nss/lib/sqlite/sqlite3.c:194200,1
    - Dst: xControl
      Src: /src/nss/lib/sqlite/sqlite3.c:194206,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:194209,1
    - Dst: rbuMainlistAdd
      Src: /src/nss/lib/sqlite/sqlite3.c:194213,1
    - Dst: xControl
      Src: /src/nss/lib/sqlite/sqlite3.c:194227,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:194231,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 3
    argNames:
    - pFile
    - op
    - pArg
    argTypes:
    - sqlite3_file*
    - int
    - void*
    assertStmts:
    - condition: "( p->openFlags & (SQLITE_OPEN_MAIN_DB|SQLITE_OPEN_TEMP_DB)\n       ||
        p->openFlags & (SQLITE_OPEN_TRANSIENT_DB|SQLITE_OPEN_TEMP_JOURNAL)\n  )"
      pos:
        line_end: 194192
        line_start: 194190
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 194237
      start: 194186
    functionDepth: 10
    functionLinenumber: 194186
    functionLinenumberEnd: 194237
    functionName: rbuVfsFileControl
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_mprintf
    - xControl
    - rbuMainlistAdd
    linkageType: ''
    returnType: int
    signature: int rbuVfsFileControl(sqlite3_file *pFile, int op, void *pArg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rbu_file*::pReal::pMethods::xSectorSize
      Src: /src/nss/lib/sqlite/sqlite3.c:194244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pFile
    argTypes:
    - sqlite3_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194245
      start: 194242
    functionDepth: 0
    functionLinenumber: 194242
    functionLinenumberEnd: 194245
    functionName: rbuVfsSectorSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbu_file*::pReal::pMethods::xSectorSize
    linkageType: ''
    returnType: int
    signature: int rbuVfsSectorSize(sqlite3_file *pFile)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rbu_file*::pReal::pMethods::xDeviceCharacteristics
      Src: /src/nss/lib/sqlite/sqlite3.c:194252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pFile
    argTypes:
    - sqlite3_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194253
      start: 194250
    functionDepth: 0
    functionLinenumber: 194250
    functionLinenumberEnd: 194253
    functionName: rbuVfsDeviceCharacteristics
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbu_file*::pReal::pMethods::xDeviceCharacteristics
    linkageType: ''
    returnType: int
    signature: int rbuVfsDeviceCharacteristics(sqlite3_file *pFile)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:194264,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:194267,1
    - Dst: rbu_file*::pReal::pMethods::xShmLock
      Src: /src/nss/lib/sqlite/sqlite3.c:194281,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 4
    argNames:
    - pFile
    - ofst
    - n
    - flags
    argTypes:
    - sqlite3_file*
    - int
    - int
    - int
    assertStmts:
    - condition: ( WAL_CKPT_LOCK==1 )
      pos:
        line_end: 194263
        line_start: 194263
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->openFlags & (SQLITE_OPEN_MAIN_DB|SQLITE_OPEN_TEMP_DB) )
      pos:
        line_end: 194266
        line_start: 194266
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 194289
      start: 194258
    functionDepth: 0
    functionLinenumber: 194258
    functionLinenumberEnd: 194289
    functionName: rbuVfsShmLock
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - rbu_file*::pReal::pMethods::xShmLock
    linkageType: ''
    returnType: int
    signature: int rbuVfsShmLock(sqlite3_file *pFile, int ofst, int n, int flags)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:194308,1
    - Dst: sqlite3_realloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:194311,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:194317,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:194321,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:194327,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:194331,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:194342,1
    - Dst: rbu_file*::pReal::pMethods::xShmMap
      Src: /src/nss/lib/sqlite/sqlite3.c:194343,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 5
    argNames:
    - pFile
    - iRegion
    - szRegion
    - isWrite
    - pp
    argTypes:
    - sqlite3_file*
    - int
    - int
    - int
    - void**
    assertStmts:
    - condition: ( p->openFlags & (SQLITE_OPEN_MAIN_DB|SQLITE_OPEN_TEMP_DB) )
      pos:
        line_end: 194307
        line_start: 194307
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iRegion==p->nShm )
      pos:
        line_end: 194316
        line_start: 194316
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->apShm==0 )
      pos:
        line_end: 194341
        line_start: 194341
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 194347
      start: 194294
    functionDepth: 7
    functionLinenumber: 194294
    functionLinenumberEnd: 194347
    functionName: rbuVfsShmMap
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_malloc64
    - assert
    - memset
    - rbu_file*::pReal::pMethods::xShmMap
    - sqlite3_realloc64
    linkageType: ''
    returnType: int
    signature: "int rbuVfsShmMap(\n  sqlite3_file *pFile, \n  int iRegion, \n  int
      szRegion, \n  int isWrite, \n  void volatile **pp\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rbu_file*::pReal::pMethods::xShmBarrier
      Src: /src/nss/lib/sqlite/sqlite3.c:194354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pFile
    argTypes:
    - sqlite3_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194355
      start: 194352
    functionDepth: 0
    functionLinenumber: 194352
    functionLinenumberEnd: 194355
    functionName: rbuVfsShmBarrier
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbu_file*::pReal::pMethods::xShmBarrier
    linkageType: ''
    returnType: void
    signature: void rbuVfsShmBarrier(sqlite3_file *pFile)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:194365,1
    - Dst: rbuUnlockShm
      Src: /src/nss/lib/sqlite/sqlite3.c:194370,1
    - Dst: rbu_file*::pReal::pMethods::xShmUnmap
      Src: /src/nss/lib/sqlite/sqlite3.c:194371,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - pFile
    - delFlag
    argTypes:
    - sqlite3_file*
    - int
    assertStmts:
    - condition: ( p->openFlags & (SQLITE_OPEN_MAIN_DB|SQLITE_OPEN_TEMP_DB) )
      pos:
        line_end: 194364
        line_start: 194364
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 194374
      start: 194360
    functionDepth: 1
    functionLinenumber: 194360
    functionLinenumberEnd: 194374
    functionName: rbuVfsShmUnmap
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - rbuUnlockShm
    - rbu_file*::pReal::pMethods::xShmUnmap
    linkageType: ''
    returnType: int
    signature: int rbuVfsShmUnmap(sqlite3_file *pFile, int delFlag)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:194384,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 2
    argNames:
    - zName
    - flags
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194401
      start: 194383
    functionDepth: 0
    functionLinenumber: 194383
    functionLinenumberEnd: 194401
    functionName: rbuMainToWal
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: char
    signature: char *rbuMainToWal(const char *zName, int flags)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:194440,1
    - Dst: rbuMainToWal
      Src: /src/nss/lib/sqlite/sqlite3.c:194451,1
    - Dst: rbuFindMaindb
      Src: /src/nss/lib/sqlite/sqlite3.c:194454,1
    - Dst: rbuIsVacuum
      Src: /src/nss/lib/sqlite/sqlite3.c:194464,1
    - Dst: sqlite3_db_filename
      Src: /src/nss/lib/sqlite/sqlite3.c:194465,1
    - Dst: rbuMainToWal
      Src: /src/nss/lib/sqlite/sqlite3.c:194466,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:194468,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:194469,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:194471,1
    - Dst: sqlite3_uri_boolean
      Src: /src/nss/lib/sqlite/sqlite3.c:194489,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:194491,1
    - Dst: sqlite3_vfs*::xOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:194498,1
    - Dst: rbuMainlistAdd
      Src: /src/nss/lib/sqlite/sqlite3.c:194506,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:194509,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 52
    argCount: 5
    argNames:
    - pVfs
    - zName
    - pFile
    - flags
    - pOutFlags
    argTypes:
    - sqlite3_vfs*
    - char*
    - sqlite3_file*
    - int
    - int*
    assertStmts:
    - condition: ( oflags & SQLITE_OPEN_MAIN_DB )
      pos:
        line_end: 194490
        line_start: 194490
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 194513
      start: 194406
    functionDepth: 13
    functionLinenumber: 194406
    functionLinenumberEnd: 194513
    functionName: rbuVfsOpen
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - rbuMainToWal
    - memcpy
    - sqlite3_malloc64
    - rbuMainlistAdd
    - sqlite3_uri_boolean
    - rbuIsVacuum
    - sqlite3_db_filename
    - memset
    - assert
    - rbuFindMaindb
    - sqlite3_vfs*::xOpen
    - sqlite3_free
    - strlen
    linkageType: ''
    returnType: int
    signature: "int rbuVfsOpen(\n  sqlite3_vfs *pVfs,\n  const char *zName,\n  sqlite3_file
      *pFile,\n  int flags,\n  int *pOutFlags\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_vfs*::xDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:194520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pVfs
    - zPath
    - dirSync
    argTypes:
    - sqlite3_vfs*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194521
      start: 194518
    functionDepth: 0
    functionLinenumber: 194518
    functionLinenumberEnd: 194521
    functionName: rbuVfsDelete
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_vfs*::xDelete
    linkageType: ''
    returnType: int
    signature: int rbuVfsDelete(sqlite3_vfs *pVfs, const char *zPath, int dirSync)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_vfs*::xAccess
      Src: /src/nss/lib/sqlite/sqlite3.c:194537,1
    - Dst: rbuFindMaindb
      Src: /src/nss/lib/sqlite/sqlite3.c:194554,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:194556,1
    - Dst: rbuVfsFileSize
      Src: /src/nss/lib/sqlite/sqlite3.c:194561,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - pVfs
    - zPath
    - flags
    - pResOut
    argTypes:
    - sqlite3_vfs*
    - char*
    - int
    - int*
    assertStmts:
    - condition: ( pDb->pRbu )
      pos:
        line_end: 194555
        line_start: 194555
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 194568
      start: 194527
    functionDepth: 2
    functionLinenumber: 194527
    functionLinenumberEnd: 194568
    functionName: rbuVfsAccess
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - rbuFindMaindb
    - rbuVfsFileSize
    - sqlite3_vfs*::xAccess
    linkageType: ''
    returnType: int
    signature: "int rbuVfsAccess(\n  sqlite3_vfs *pVfs, \n  const char *zPath, \n
      \ int flags, \n  int *pResOut\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_vfs*::xFullPathname
      Src: /src/nss/lib/sqlite/sqlite3.c:194582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pVfs
    - zPath
    - nOut
    - zOut
    argTypes:
    - sqlite3_vfs*
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194583
      start: 194575
    functionDepth: 0
    functionLinenumber: 194575
    functionLinenumberEnd: 194583
    functionName: rbuVfsFullPathname
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_vfs*::xFullPathname
    linkageType: ''
    returnType: int
    signature: "int rbuVfsFullPathname(\n  sqlite3_vfs *pVfs, \n  const char *zPath,
      \n  int nOut, \n  char *zOut\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_vfs*::xDlOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:194591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pVfs
    - zPath
    argTypes:
    - sqlite3_vfs*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194592
      start: 194589
    functionDepth: 0
    functionLinenumber: 194589
    functionLinenumberEnd: 194592
    functionName: rbuVfsDlOpen
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_vfs*::xDlOpen
    linkageType: ''
    returnType: void
    signature: void *rbuVfsDlOpen(sqlite3_vfs *pVfs, const char *zPath)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_vfs*::xDlError
      Src: /src/nss/lib/sqlite/sqlite3.c:194601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pVfs
    - nByte
    - zErrMsg
    argTypes:
    - sqlite3_vfs*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194602
      start: 194599
    functionDepth: 0
    functionLinenumber: 194599
    functionLinenumberEnd: 194602
    functionName: rbuVfsDlError
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_vfs*::xDlError
    linkageType: ''
    returnType: void
    signature: void rbuVfsDlError(sqlite3_vfs *pVfs, int nByte, char *zErrMsg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_vfs*::xDlSym
      Src: /src/nss/lib/sqlite/sqlite3.c:194613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194614
      start: 194607
    functionDepth: 0
    functionLinenumber: 194607
    functionLinenumberEnd: 194614
    functionName: "(*rbuVfsDlSym(\n  sqlite3_vfs *pVfs, \n  void *pArg, \n  const
      char *zSym\n))(void)"
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_vfs*::xDlSym
    linkageType: ''
    returnType: void
    signature: "void (*rbuVfsDlSym(\n  sqlite3_vfs *pVfs, \n  void *pArg, \n  const
      char *zSym\n))(void)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_vfs*::xDlClose
      Src: /src/nss/lib/sqlite/sqlite3.c:194621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pVfs
    - pHandle
    argTypes:
    - sqlite3_vfs*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194622
      start: 194619
    functionDepth: 0
    functionLinenumber: 194619
    functionLinenumberEnd: 194622
    functionName: rbuVfsDlClose
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_vfs*::xDlClose
    linkageType: ''
    returnType: void
    signature: void rbuVfsDlClose(sqlite3_vfs *pVfs, void *pHandle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_vfs*::xRandomness
      Src: /src/nss/lib/sqlite/sqlite3.c:194631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pVfs
    - nByte
    - zBufOut
    argTypes:
    - sqlite3_vfs*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194632
      start: 194629
    functionDepth: 0
    functionLinenumber: 194629
    functionLinenumberEnd: 194632
    functionName: rbuVfsRandomness
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_vfs*::xRandomness
    linkageType: ''
    returnType: int
    signature: int rbuVfsRandomness(sqlite3_vfs *pVfs, int nByte, char *zBufOut)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_vfs*::xSleep
      Src: /src/nss/lib/sqlite/sqlite3.c:194640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pVfs
    - nMicro
    argTypes:
    - sqlite3_vfs*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194641
      start: 194638
    functionDepth: 0
    functionLinenumber: 194638
    functionLinenumberEnd: 194641
    functionName: rbuVfsSleep
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_vfs*::xSleep
    linkageType: ''
    returnType: int
    signature: int rbuVfsSleep(sqlite3_vfs *pVfs, int nMicro)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_vfs*::xCurrentTime
      Src: /src/nss/lib/sqlite/sqlite3.c:194648,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pVfs
    - pTimeOut
    argTypes:
    - sqlite3_vfs*
    - double*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194649
      start: 194646
    functionDepth: 0
    functionLinenumber: 194646
    functionLinenumberEnd: 194649
    functionName: rbuVfsCurrentTime
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_vfs*::xCurrentTime
    linkageType: ''
    returnType: int
    signature: int rbuVfsCurrentTime(sqlite3_vfs *pVfs, double *pTimeOut)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pVfs
    - a
    - b
    argTypes:
    - sqlite3_vfs*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194656
      start: 194654
    functionDepth: 0
    functionLinenumber: 194654
    functionLinenumberEnd: 194656
    functionName: rbuVfsGetLastError
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int rbuVfsGetLastError(sqlite3_vfs *pVfs, int a, char *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_vfs_find
      Src: /src/nss/lib/sqlite/sqlite3.c:194663,1
    - Dst: sqlite3_mutex_free
      Src: /src/nss/lib/sqlite/sqlite3.c:194665,1
    - Dst: sqlite3_vfs_unregister
      Src: /src/nss/lib/sqlite/sqlite3.c:194666,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:194667,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - zName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194669
      start: 194662
    functionDepth: 3
    functionLinenumber: 194662
    functionLinenumberEnd: 194669
    functionName: sqlite3rbu_destroy_vfs
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_vfs_find
    - sqlite3_mutex_free
    - sqlite3_free
    - sqlite3_vfs_unregister
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3rbu_destroy_vfs(const char *zName)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:194713,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:194715,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:194720,1
    - Dst: sqlite3_vfs_find
      Src: /src/nss/lib/sqlite/sqlite3.c:194721,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:194726,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:194731,1
    - Dst: sqlite3_mutex_alloc
      Src: /src/nss/lib/sqlite/sqlite3.c:194734,1
    - Dst: sqlite3_vfs_register
      Src: /src/nss/lib/sqlite/sqlite3.c:194738,1
    - Dst: sqlite3_mutex_free
      Src: /src/nss/lib/sqlite/sqlite3.c:194743,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:194744,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 2
    argNames:
    - zName
    - zParent
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194749
      start: 194676
    functionDepth: 6
    functionLinenumber: 194676
    functionLinenumberEnd: 194749
    functionName: sqlite3rbu_create_vfs
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - memcpy
    - sqlite3_malloc64
    - sqlite3_vfs_register
    - memset
    - sqlite3_mutex_alloc
    - sqlite3_vfs_find
    - sqlite3_mutex_free
    - sqlite3_free
    - strlen
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3rbu_create_vfs(const char *zName, const char *zParent)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pRbu
    - n
    argTypes:
    - sqlite3rbu*
    - sqlite3_int64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194759
      start: 194754
    functionDepth: 0
    functionLinenumber: 194754
    functionLinenumberEnd: 194759
    functionName: sqlite3_int64::sqlite3rbu_temp_size_limit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_int64 sqlite3rbu_temp_size_limit(sqlite3rbu *pRbu,
      sqlite3_int64 n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pRbu
    argTypes:
    - sqlite3rbu*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194763
      start: 194761
    functionDepth: 0
    functionLinenumber: 194761
    functionLinenumberEnd: 194763
    functionName: sqlite3_int64::sqlite3rbu_temp_size
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3_int64 sqlite3rbu_temp_size(sqlite3rbu *pRbu)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194906
      start: 194905
    functionDepth: 0
    functionLinenumber: 194905
    functionLinenumberEnd: 194906
    functionName: get2byte
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: get2byte(x)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3TokenInit
      Src: /src/nss/lib/sqlite/sqlite3.c:194924,1
    - Dst: sqlite3FindDb
      Src: /src/nss/lib/sqlite/sqlite3.c:194925,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:194927,1
    - Dst: sqlite3_declare_vtab
      Src: /src/nss/lib/sqlite/sqlite3.c:194933,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:194935,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:194939,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:194941,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 6
    argNames:
    - db
    - pAux
    - argc
    - argv
    - ppVtab
    - pzErr
    argTypes:
    - sqlite3*
    - void*
    - int
    - char**
    - sqlite3_vtab**
    - char**
    assertStmts:
    - condition: ( rc==SQLITE_OK || pTab==0 )
      pos:
        line_end: 194938
        line_start: 194938
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 194948
      start: 194911
    functionDepth: 26
    functionLinenumber: 194911
    functionLinenumberEnd: 194948
    functionName: statConnect
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_malloc64
    - assert
    - sqlite3TokenInit
    - sqlite3_mprintf
    - memset
    - sqlite3_declare_vtab
    - sqlite3FindDb
    linkageType: ''
    returnType: int
    signature: "int statConnect(\n  sqlite3 *db,\n  void *pAux,\n  int argc, const
      char *const*argv,\n  sqlite3_vtab **ppVtab,\n  char **pzErr\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:194954,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pVtab
    argTypes:
    - sqlite3_vtab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194956
      start: 194953
    functionDepth: 3
    functionLinenumber: 194953
    functionLinenumberEnd: 194956
    functionName: statDisconnect
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int statDisconnect(sqlite3_vtab *pVtab)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 18
    argCount: 2
    argNames:
    - tab
    - pIdxInfo
    argTypes:
    - sqlite3_vtab*
    - sqlite3_index_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195004
      start: 194965
    functionDepth: 0
    functionLinenumber: 194965
    functionLinenumberEnd: 195004
    functionName: statBestIndex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int statBestIndex(sqlite3_vtab *tab, sqlite3_index_info *pIdxInfo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:195013,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:195017,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - pVTab
    - ppCursor
    argTypes:
    - sqlite3_vtab*
    - sqlite3_vtab_cursor**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195024
      start: 195009
    functionDepth: 6
    functionLinenumber: 195009
    functionLinenumberEnd: 195024
    functionName: statOpen
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3_malloc64
    linkageType: ''
    returnType: int
    signature: int statOpen(sqlite3_vtab *pVTab, sqlite3_vtab_cursor **ppCursor)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:195030,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:195032,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - StatPage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195036
      start: 195026
    functionDepth: 3
    functionLinenumber: 195026
    functionLinenumberEnd: 195036
    functionName: statClearCells
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void statClearCells(StatPage *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: statClearCells
      Src: /src/nss/lib/sqlite/sqlite3.c:195039,1
    - Dst: sqlite3PagerUnref
      Src: /src/nss/lib/sqlite/sqlite3.c:195040,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:195041,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:195042,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - StatPage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195043
      start: 195038
    functionDepth: 6
    functionLinenumber: 195038
    functionLinenumberEnd: 195043
    functionName: statClearPage
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3PagerUnref
    - sqlite3_free
    - statClearCells
    linkageType: ''
    returnType: void
    signature: void statClearPage(StatPage *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:195047,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:195048,1
    - Dst: statClearPage
      Src: /src/nss/lib/sqlite/sqlite3.c:195049,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:195052,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - pCsr
    argTypes:
    - StatCursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195055
      start: 195045
    functionDepth: 25
    functionLinenumber: 195045
    functionLinenumberEnd: 195055
    functionName: statResetCsr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - statClearPage
    - ArraySize
    - sqlite3_reset
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void statResetCsr(StatCursor *pCsr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: statResetCsr
      Src: /src/nss/lib/sqlite/sqlite3.c:195062,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:195063,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:195064,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pCursor
    argTypes:
    - sqlite3_vtab_cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195066
      start: 195060
    functionDepth: 26
    functionLinenumber: 195060
    functionLinenumberEnd: 195066
    functionName: statClose
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_finalize
    - sqlite3_free
    - statResetCsr
    linkageType: ''
    returnType: int
    signature: int statClose(sqlite3_vtab_cursor *pCursor)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - nUsable
    - flags
    - nTotal
    - pnLocal
    argTypes:
    - int
    - u8
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195089
      start: 195068
    functionDepth: 0
    functionLinenumber: 195068
    functionLinenumberEnd: 195089
    functionName: getLocalPayload
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void getLocalPayload(\n  int nUsable,                    /* Usable
      bytes per page */\n  u8 flags,                       /* Page flags */\n  int
      nTotal,                     /* Total record (payload) size */\n  int *pnLocal
      \                   /* OUT: Bytes stored locally */\n)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PagerGetData
      Src: /src/nss/lib/sqlite/sqlite3.c:195098,1
    - Dst: get2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:195112,1
    - Dst: sqlite3BtreeGetPageSize
      Src: /src/nss/lib/sqlite/sqlite3.c:195114,1
    - Dst: get2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:195116,1
    - Dst: get2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:195118,1
    - Dst: get2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:195122,1
    - Dst: get2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:195123,1
    - Dst: sqlite3Get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:195128,1
    - Dst: sqlite3BtreeEnter
      Src: /src/nss/lib/sqlite/sqlite3.c:195134,1
    - Dst: sqlite3BtreeGetReserveNoMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:195135,1
    - Dst: sqlite3BtreeLeave
      Src: /src/nss/lib/sqlite/sqlite3.c:195136,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:195137,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:195139,1
    - Dst: get2byte
      Src: /src/nss/lib/sqlite/sqlite3.c:195144,1
    - Dst: sqlite3Get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:195147,1
    - Dst: getVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:195155,1
    - Dst: sqlite3GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:195158,1
    - Dst: getLocalPayload
      Src: /src/nss/lib/sqlite/sqlite3.c:195161,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:195164,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:195165,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:195172,1
    - Dst: sqlite3Get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:195174,1
    - Dst: sqlite3PagerGet
      Src: /src/nss/lib/sqlite/sqlite3.c:195179,1
    - Dst: sqlite3BtreePager
      Src: /src/nss/lib/sqlite/sqlite3.c:195179,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:195181,1
    - Dst: sqlite3Get4byte
      Src: /src/nss/lib/sqlite/sqlite3.c:195184,1
    - Dst: sqlite3PagerGetData
      Src: /src/nss/lib/sqlite/sqlite3.c:195184,1
    - Dst: sqlite3PagerUnref
      Src: /src/nss/lib/sqlite/sqlite3.c:195185,1
    - Dst: statClearCells
      Src: /src/nss/lib/sqlite/sqlite3.c:195196,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 95
    argCount: 2
    argNames:
    - pBt
    - p
    argTypes:
    - Btree*
    - StatPage*
    assertStmts:
    - condition: ( nPayload>=(u32)nLocal )
      pos:
        line_end: 195163
        line_start: 195163
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nLocal<=(nUsable-35) )
      pos:
        line_end: 195164
        line_start: 195164
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPg==0 )
      pos:
        line_end: 195180
        line_start: 195180
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 195198
      start: 195091
    functionDepth: 6
    functionLinenumber: 195091
    functionLinenumberEnd: 195198
    functionName: statDecodePage
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PagerUnref
    - sqlite3GetVarint
    - sqlite3_malloc64
    - sqlite3PagerGetData
    - sqlite3BtreeLeave
    - sqlite3BtreeGetPageSize
    - memset
    - sqlite3BtreeEnter
    - getVarint32
    - getLocalPayload
    - assert
    - sqlite3PagerGet
    - sqlite3Get4byte
    - statClearCells
    - get2byte
    - sqlite3BtreePager
    - sqlite3BtreeGetReserveNoMutex
    linkageType: ''
    returnType: int
    signature: int statDecodePage(Btree *pBt, StatPage *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreePager
      Src: /src/nss/lib/sqlite/sqlite3.c:195207,1
    - Dst: sqlite3BtreeGetPageSize
      Src: /src/nss/lib/sqlite/sqlite3.c:195212,1
    - Dst: sqlite3PagerFile
      Src: /src/nss/lib/sqlite/sqlite3.c:195218,1
    - Dst: sqlite3OsFileControl
      Src: /src/nss/lib/sqlite/sqlite3.c:195220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - pCsr
    argTypes:
    - StatCursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195224
      start: 195204
    functionDepth: 2
    functionLinenumber: 195204
    functionLinenumberEnd: 195224
    functionName: statSizeAndOffset
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PagerFile
    - sqlite3OsFileControl
    - sqlite3BtreePager
    - sqlite3BtreeGetPageSize
    linkageType: ''
    returnType: void
    signature: void statSizeAndOffset(StatCursor *pCsr)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreePager
      Src: /src/nss/lib/sqlite/sqlite3.c:195236,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:195238,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:195243,1
    - Dst: sqlite3_column_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:195246,1
    - Dst: sqlite3PagerPagecount
      Src: /src/nss/lib/sqlite/sqlite3.c:195247,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:195250,1
    - Dst: sqlite3PagerGet
      Src: /src/nss/lib/sqlite/sqlite3.c:195252,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:195255,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:195260,1
    - Dst: sqlite3BtreeEnter
      Src: /src/nss/lib/sqlite/sqlite3.c:195271,1
    - Dst: sqlite3BtreeGetPageSize
      Src: /src/nss/lib/sqlite/sqlite3.c:195272,1
    - Dst: sqlite3BtreeGetReserveNoMutex
      Src: /src/nss/lib/sqlite/sqlite3.c:195273,1
    - Dst: sqlite3BtreeLeave
      Src: /src/nss/lib/sqlite/sqlite3.c:195274,1
    - Dst: sqlite3_column_text
      Src: /src/nss/lib/sqlite/sqlite3.c:195275,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:195280,1
    - Dst: statSizeAndOffset
      Src: /src/nss/lib/sqlite/sqlite3.c:195291,1
    - Dst: statClearPage
      Src: /src/nss/lib/sqlite/sqlite3.c:195299,1
    - Dst: statNext
      Src: /src/nss/lib/sqlite/sqlite3.c:195300,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:195305,1
    - Dst: statResetCsr
      Src: /src/nss/lib/sqlite/sqlite3.c:195306,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:195309,1
    - Dst: sqlite3PagerGet
      Src: /src/nss/lib/sqlite/sqlite3.c:195316,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:195318,1
    - Dst: sqlite3_column_text
      Src: /src/nss/lib/sqlite/sqlite3.c:195330,1
    - Dst: statDecodePage
      Src: /src/nss/lib/sqlite/sqlite3.c:195333,1
    - Dst: statSizeAndOffset
      Src: /src/nss/lib/sqlite/sqlite3.c:195335,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:195353,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 110
    argCount: 1
    argNames:
    - pCursor
    argTypes:
    - sqlite3_vtab_cursor*
    assertStmts:
    - condition: ( p==&pCsr->aPage[pCsr->iPage-1] )
      pos:
        line_end: 195308
        line_start: 195308
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 195364
      start: 195229
    functionDepth: 27
    functionLinenumber: 195229
    functionLinenumberEnd: 195364
    functionName: statNext
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_reset
    - sqlite3BtreeLeave
    - sqlite3_column_int64
    - assert
    - sqlite3BtreeEnter
    - sqlite3_column_text
    - sqlite3BtreePager
    - sqlite3BtreeGetReserveNoMutex
    - sqlite3_step
    - statClearPage
    - ArraySize
    - sqlite3BtreeGetPageSize
    - sqlite3_mprintf
    - statDecodePage
    - statNext
    - statResetCsr
    - sqlite3PagerPagecount
    - sqlite3PagerGet
    - statSizeAndOffset
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int statNext(sqlite3_vtab_cursor *pCursor)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pCursor
    argTypes:
    - sqlite3_vtab_cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195369
      start: 195366
    functionDepth: 0
    functionLinenumber: 195366
    functionLinenumberEnd: 195369
    functionName: statEof
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int statEof(sqlite3_vtab_cursor *pCursor)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:195382,1
    - Dst: sqlite3FindDbName
      Src: /src/nss/lib/sqlite/sqlite3.c:195383,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:195385,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:195386,1
    - Dst: statResetCsr
      Src: /src/nss/lib/sqlite/sqlite3.c:195392,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:195393,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:195395,1
    - Dst: sqlite3_prepare_v2
      Src: /src/nss/lib/sqlite/sqlite3.c:195404,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:195405,1
    - Dst: statNext
      Src: /src/nss/lib/sqlite/sqlite3.c:195409,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 5
    argNames:
    - pCursor
    - idxNum
    - idxStr
    - argc
    - argv
    argTypes:
    - sqlite3_vtab_cursor*
    - int
    - char*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195412
      start: 195371
    functionDepth: 28
    functionLinenumber: 195371
    functionLinenumberEnd: 195412
    functionName: statFilter
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3FindDbName
    - statResetCsr
    - statNext
    - sqlite3_mprintf
    - sqlite3_prepare_v2
    - sqlite3_value_text
    - sqlite3_finalize
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int statFilter(\n  sqlite3_vtab_cursor *pCursor, \n  int idxNum, const
      char *idxStr,\n  int argc, sqlite3_value **argv\n)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:195422,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:195425,1
    - Dst: sqlite3_result_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:195428,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:195431,1
    - Dst: sqlite3_result_int
      Src: /src/nss/lib/sqlite/sqlite3.c:195434,1
    - Dst: sqlite3_result_int
      Src: /src/nss/lib/sqlite/sqlite3.c:195437,1
    - Dst: sqlite3_result_int
      Src: /src/nss/lib/sqlite/sqlite3.c:195440,1
    - Dst: sqlite3_result_int
      Src: /src/nss/lib/sqlite/sqlite3.c:195443,1
    - Dst: sqlite3_result_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:195446,1
    - Dst: sqlite3_result_int
      Src: /src/nss/lib/sqlite/sqlite3.c:195449,1
    - Dst: sqlite3_context_db_handle
      Src: /src/nss/lib/sqlite/sqlite3.c:195452,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:195454,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 3
    argNames:
    - pCursor
    - ctx
    - i
    argTypes:
    - sqlite3_vtab_cursor*
    - sqlite3_context*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195459
      start: 195414
    functionDepth: 14
    functionLinenumber: 195414
    functionLinenumberEnd: 195459
    functionName: statColumn
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_int
    - sqlite3_context_db_handle
    - sqlite3_result_text
    - sqlite3_result_int64
    linkageType: ''
    returnType: int
    signature: "int statColumn(\n  sqlite3_vtab_cursor *pCursor, \n  sqlite3_context
      *ctx, \n  int i\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pCursor
    - pRowid
    argTypes:
    - sqlite3_vtab_cursor*
    - sqlite_int64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195465
      start: 195461
    functionDepth: 0
    functionLinenumber: 195461
    functionLinenumberEnd: 195465
    functionName: statRowid
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int statRowid(sqlite3_vtab_cursor *pCursor, sqlite_int64 *pRowid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_create_module
      Src: /src/nss/lib/sqlite/sqlite3.c:195497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195498
      start: 195470
    functionDepth: 13
    functionLinenumber: 195470
    functionLinenumberEnd: 195498
    functionName: sqlite3DbstatRegister
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_create_module
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3DbstatRegister(sqlite3 *db)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195500
      start: 195500
    functionDepth: 0
    functionLinenumber: 195500
    functionLinenumberEnd: 195500
    functionName: sqlite3DbstatRegister
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3DbstatRegister(sqlite3 *db)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_declare_vtab
      Src: /src/nss/lib/sqlite/sqlite3.c:195580,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:195583,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:195587,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:195589,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 6
    argNames:
    - db
    - pAux
    - argc
    - argv
    - ppVtab
    - pzErr
    argTypes:
    - sqlite3*
    - void*
    - int
    - char**
    - sqlite3_vtab**
    - char**
    assertStmts:
    - condition: ( rc==SQLITE_OK || pTab==0 )
      pos:
        line_end: 195586
        line_start: 195586
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 195595
      start: 195570
    functionDepth: 26
    functionLinenumber: 195570
    functionLinenumberEnd: 195595
    functionName: dbpageConnect
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_declare_vtab
    - memset
    - sqlite3_malloc64
    linkageType: ''
    returnType: int
    signature: "int dbpageConnect(\n  sqlite3 *db,\n  void *pAux,\n  int argc, const
      char *const*argv,\n  sqlite3_vtab **ppVtab,\n  char **pzErr\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:195601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pVtab
    argTypes:
    - sqlite3_vtab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195603
      start: 195600
    functionDepth: 3
    functionLinenumber: 195600
    functionLinenumberEnd: 195603
    functionName: dbpageDisconnect
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int dbpageDisconnect(sqlite3_vtab *pVtab)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 31
    argCount: 2
    argNames:
    - tab
    - pIdxInfo
    argTypes:
    - sqlite3_vtab*
    - sqlite3_index_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195663
      start: 195613
    functionDepth: 0
    functionLinenumber: 195613
    functionLinenumberEnd: 195663
    functionName: dbpageBestIndex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dbpageBestIndex(sqlite3_vtab *tab, sqlite3_index_info *pIdxInfo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:195671,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:195675,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - pVTab
    - ppCursor
    argTypes:
    - sqlite3_vtab*
    - sqlite3_vtab_cursor**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195682
      start: 195668
    functionDepth: 6
    functionLinenumber: 195668
    functionLinenumberEnd: 195682
    functionName: dbpageOpen
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3_malloc64
    linkageType: ''
    returnType: int
    signature: int dbpageOpen(sqlite3_vtab *pVTab, sqlite3_vtab_cursor **ppCursor)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3PagerUnrefPageOne
      Src: /src/nss/lib/sqlite/sqlite3.c:195689,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:195690,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pCursor
    argTypes:
    - sqlite3_vtab_cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195692
      start: 195687
    functionDepth: 11
    functionLinenumber: 195687
    functionLinenumberEnd: 195692
    functionName: dbpageClose
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    - sqlite3PagerUnrefPageOne
    linkageType: ''
    returnType: int
    signature: int dbpageClose(sqlite3_vtab_cursor *pCursor)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pCursor
    argTypes:
    - sqlite3_vtab_cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195702
      start: 195697
    functionDepth: 0
    functionLinenumber: 195697
    functionLinenumberEnd: 195702
    functionName: dbpageNext
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dbpageNext(sqlite3_vtab_cursor *pCursor)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pCursor
    argTypes:
    - sqlite3_vtab_cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195707
      start: 195704
    functionDepth: 0
    functionLinenumber: 195704
    functionLinenumberEnd: 195707
    functionName: dbpageEof
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dbpageEof(sqlite3_vtab_cursor *pCursor)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:195736,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:195737,1
    - Dst: sqlite3FindDbName
      Src: /src/nss/lib/sqlite/sqlite3.c:195738,1
    - Dst: sqlite3BtreePager
      Src: /src/nss/lib/sqlite/sqlite3.c:195745,1
    - Dst: sqlite3BtreeGetPageSize
      Src: /src/nss/lib/sqlite/sqlite3.c:195746,1
    - Dst: sqlite3BtreeLastPage
      Src: /src/nss/lib/sqlite/sqlite3.c:195747,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:195749,1
    - Dst: sqlite3_value_int
      Src: /src/nss/lib/sqlite/sqlite3.c:195750,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:195758,1
    - Dst: sqlite3PagerUnrefPageOne
      Src: /src/nss/lib/sqlite/sqlite3.c:195760,1
    - Dst: sqlite3PagerGet
      Src: /src/nss/lib/sqlite/sqlite3.c:195761,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 5
    argNames:
    - pCursor
    - idxNum
    - idxStr
    - argc
    - argv
    argTypes:
    - sqlite3_vtab_cursor*
    - int
    - char*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( argc>=1 )
      pos:
        line_end: 195735
        line_start: 195735
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( argc>(idxNum>>1) )
      pos:
        line_end: 195748
        line_start: 195748
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCsr->pgno==1 )
      pos:
        line_end: 195757
        line_start: 195757
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 195763
      start: 195719
    functionDepth: 15
    functionLinenumber: 195719
    functionLinenumberEnd: 195763
    functionName: dbpageFilter
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeLastPage
    - sqlite3FindDbName
    - sqlite3PagerUnrefPageOne
    - sqlite3_value_int
    - sqlite3BtreeGetPageSize
    - assert
    - sqlite3PagerGet
    - sqlite3_value_text
    - sqlite3BtreePager
    linkageType: ''
    returnType: int
    signature: "int dbpageFilter(\n  sqlite3_vtab_cursor *pCursor, \n  int idxNum,
      const char *idxStr,\n  int argc, sqlite3_value **argv\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_result_int
      Src: /src/nss/lib/sqlite/sqlite3.c:195774,1
    - Dst: sqlite3PagerGet
      Src: /src/nss/lib/sqlite/sqlite3.c:195779,1
    - Dst: sqlite3_result_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:195781,1
    - Dst: sqlite3PagerGetData
      Src: /src/nss/lib/sqlite/sqlite3.c:195781,1
    - Dst: sqlite3PagerUnref
      Src: /src/nss/lib/sqlite/sqlite3.c:195784,1
    - Dst: sqlite3_context_db_handle
      Src: /src/nss/lib/sqlite/sqlite3.c:195788,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:195789,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - pCursor
    - ctx
    - i
    argTypes:
    - sqlite3_vtab_cursor*
    - sqlite3_context*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195794
      start: 195765
    functionDepth: 14
    functionLinenumber: 195765
    functionLinenumberEnd: 195794
    functionName: dbpageColumn
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PagerUnref
    - sqlite3_result_blob
    - sqlite3PagerGetData
    - sqlite3_context_db_handle
    - sqlite3_result_int
    - sqlite3PagerGet
    - sqlite3_result_text
    linkageType: ''
    returnType: int
    signature: "int dbpageColumn(\n  sqlite3_vtab_cursor *pCursor, \n  sqlite3_context
      *ctx, \n  int i\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pCursor
    - pRowid
    argTypes:
    - sqlite3_vtab_cursor*
    - sqlite_int64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195800
      start: 195796
    functionDepth: 0
    functionLinenumber: 195796
    functionLinenumberEnd: 195800
    functionName: dbpageRowid
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dbpageRowid(sqlite3_vtab_cursor *pCursor, sqlite_int64 *pRowid)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_int
      Src: /src/nss/lib/sqlite/sqlite3.c:195827,1
    - Dst: sqlite3_value_int
      Src: /src/nss/lib/sqlite/sqlite3.c:195828,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:195832,1
    - Dst: sqlite3FindDbName
      Src: /src/nss/lib/sqlite/sqlite3.c:195833,1
    - Dst: sqlite3BtreeLastPage
      Src: /src/nss/lib/sqlite/sqlite3.c:195839,1
    - Dst: sqlite3BtreeGetPageSize
      Src: /src/nss/lib/sqlite/sqlite3.c:195843,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:195844,1
    - Dst: sqlite3_value_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:195845,1
    - Dst: sqlite3BtreePager
      Src: /src/nss/lib/sqlite/sqlite3.c:195850,1
    - Dst: sqlite3PagerGet
      Src: /src/nss/lib/sqlite/sqlite3.c:195851,1
    - Dst: sqlite3PagerWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:195853,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:195855,1
    - Dst: sqlite3PagerGetData
      Src: /src/nss/lib/sqlite/sqlite3.c:195855,1
    - Dst: sqlite3_value_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:195856,1
    - Dst: sqlite3PagerUnref
      Src: /src/nss/lib/sqlite/sqlite3.c:195860,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:195864,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:195865,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 51
    argCount: 4
    argNames:
    - pVtab
    - argc
    - argv
    - pRowid
    argTypes:
    - sqlite3_vtab*
    - int
    - sqlite3_value**
    - sqlite_int64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195867
      start: 195802
    functionDepth: 16
    functionLinenumber: 195802
    functionLinenumberEnd: 195867
    functionName: dbpageUpdate
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3PagerUnref
    - sqlite3BtreeLastPage
    - memcpy
    - sqlite3FindDbName
    - sqlite3_free
    - sqlite3PagerGetData
    - sqlite3_value_int
    - sqlite3BtreeGetPageSize
    - sqlite3PagerWrite
    - sqlite3_mprintf
    - sqlite3PagerGet
    - sqlite3_value_type
    - sqlite3_value_blob
    - sqlite3_value_text
    - sqlite3BtreePager
    - sqlite3_value_bytes
    linkageType: ''
    returnType: int
    signature: "int dbpageUpdate(\n  sqlite3_vtab *pVtab,\n  int argc,\n  sqlite3_value
      **argv,\n  sqlite_int64 *pRowid\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3BtreeBeginTrans
      Src: /src/nss/lib/sqlite/sqlite3.c:195879,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pVtab
    argTypes:
    - sqlite3_vtab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195882
      start: 195873
    functionDepth: 16
    functionLinenumber: 195873
    functionLinenumberEnd: 195882
    functionName: dbpageBegin
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3BtreeBeginTrans
    linkageType: ''
    returnType: int
    signature: int dbpageBegin(sqlite3_vtab *pVtab)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_create_module
      Src: /src/nss/lib/sqlite/sqlite3.c:195915,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195916
      start: 195888
    functionDepth: 13
    functionLinenumber: 195888
    functionLinenumberEnd: 195916
    functionName: sqlite3DbpageRegister
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_create_module
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3DbpageRegister(sqlite3 *db)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195918
      start: 195918
    functionDepth: 0
    functionLinenumber: 195918
    functionLinenumberEnd: 195918
    functionName: sqlite3DbpageRegister
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3DbpageRegister(sqlite3 *db)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: putVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:196226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - aBuf
    - iVal
    argTypes:
    - u8*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196227
      start: 196225
    functionDepth: 1
    functionLinenumber: 196225
    functionLinenumberEnd: 196227
    functionName: sessionVarintPut
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - putVarint32
    linkageType: ''
    returnType: int
    signature: int sessionVarintPut(u8 *aBuf, int iVal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3VarintLen
      Src: /src/nss/lib/sqlite/sqlite3.c:196233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iVal
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196234
      start: 196232
    functionDepth: 1
    functionLinenumber: 196232
    functionLinenumberEnd: 196234
    functionName: sessionVarintLen
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3VarintLen
    linkageType: ''
    returnType: int
    signature: int sessionVarintLen(int iVal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:196241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - aBuf
    - piVal
    argTypes:
    - u8*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196242
      start: 196240
    functionDepth: 1
    functionLinenumber: 196240
    functionLinenumberEnd: 196242
    functionName: sessionVarintGet
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - getVarint32
    linkageType: ''
    returnType: int
    signature: int sessionVarintGet(u8 *aBuf, int *piVal)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196246
      start: 196245
    functionDepth: 0
    functionLinenumber: 196245
    functionLinenumberEnd: 196246
    functionName: SESSION_UINT32
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SESSION_UINT32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SESSION_UINT32
      Src: /src/nss/lib/sqlite/sqlite3.c:196252,1
    - Dst: SESSION_UINT32
      Src: /src/nss/lib/sqlite/sqlite3.c:196253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - aRec
    argTypes:
    - u8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196256
      start: 196251
    functionDepth: 1
    functionLinenumber: 196251
    functionLinenumberEnd: 196256
    functionName: sessionGetI64
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - SESSION_UINT32
    linkageType: ''
    returnType: sqlite3_int64
    signature: sqlite3_int64 sessionGetI64(u8 *aRec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - aBuf
    - i
    argTypes:
    - u8*
    - sqlite3_int64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196270
      start: 196261
    functionDepth: 0
    functionLinenumber: 196261
    functionLinenumberEnd: 196270
    functionName: sessionPutI64
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sessionPutI64(u8 *aBuf, sqlite3_int64 i)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:196295,1
    - Dst: sqlite3_value_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:196311,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:196314,1
    - Dst: sqlite3_value_double
      Src: /src/nss/lib/sqlite/sqlite3.c:196315,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:196316,1
    - Dst: sessionPutI64
      Src: /src/nss/lib/sqlite/sqlite3.c:196318,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:196328,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:196330,1
    - Dst: sqlite3_value_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:196332,1
    - Dst: sqlite3_value_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:196334,1
    - Dst: sessionVarintLen
      Src: /src/nss/lib/sqlite/sqlite3.c:196336,1
    - Dst: sessionVarintPut
      Src: /src/nss/lib/sqlite/sqlite3.c:196339,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:196340,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 51
    argCount: 3
    argNames:
    - aBuf
    - pValue
    - pnWrite
    argTypes:
    - u8*
    - sqlite3_value*
    - sqlite3_int64*
    assertStmts:
    - condition: ( sizeof(double)==8 && sizeof(u64)==8 )
      pos:
        line_end: 196313
        line_start: 196313
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( eType==SQLITE_TEXT || eType==SQLITE_BLOB )
      pos:
        line_end: 196327
        line_start: 196327
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 196354
      start: 196285
    functionDepth: 16
    functionLinenumber: 196285
    functionLinenumberEnd: 196354
    functionName: sessionSerializeValue
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - sessionPutI64
    - assert
    - sqlite3_value_type
    - sessionVarintPut
    - sqlite3_value_blob
    - sqlite3_value_int64
    - sqlite3_value_text
    - sqlite3_value_double
    - sessionVarintLen
    - sqlite3_value_bytes
    linkageType: ''
    returnType: int
    signature: "int sessionSerializeValue(\n  u8 *aBuf,                       /* If
      non-NULL, write serialized value here */\n  sqlite3_value *pValue,          /*
      Value to serialize */\n  sqlite3_int64 *pnWrite          /* IN/OUT: Increment
      by bytes written */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - hash
    - ','
    - add
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196373
      start: 196372
    functionDepth: 0
    functionLinenumber: 196372
    functionLinenumberEnd: 196373
    functionName: HASH_APPEND
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HASH_APPEND(hash, add)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HASH_APPEND
      Src: /src/nss/lib/sqlite/sqlite3.c:196379,1
    - Dst: HASH_APPEND
      Src: /src/nss/lib/sqlite/sqlite3.c:196380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - h
    - i
    argTypes:
    - unsigned int
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196381
      start: 196378
    functionDepth: 1
    functionLinenumber: 196378
    functionLinenumberEnd: 196381
    functionName: sessionHashAppendI64
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - HASH_APPEND
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int sessionHashAppendI64(unsigned int h, i64 i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HASH_APPEND
      Src: /src/nss/lib/sqlite/sqlite3.c:196389,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - h
    - n
    - z
    argTypes:
    - unsigned int
    - int
    - u8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196391
      start: 196387
    functionDepth: 1
    functionLinenumber: 196387
    functionLinenumberEnd: 196391
    functionName: sessionHashAppendBlob
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - HASH_APPEND
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int sessionHashAppendBlob(unsigned int h, int n, const u8
      *z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HASH_APPEND
      Src: /src/nss/lib/sqlite/sqlite3.c:196398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - eType
    argTypes:
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196399
      start: 196397
    functionDepth: 1
    functionLinenumber: 196397
    functionLinenumberEnd: 196399
    functionName: sessionHashAppendType
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - HASH_APPEND
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int sessionHashAppendType(unsigned int h, int eType)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:196422,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:196423,1
    - Dst: sqlite3_session*::hook::xCount
      Src: /src/nss/lib/sqlite/sqlite3.c:196423,1
    - Dst: sqlite3_session*::hook::xNew
      Src: /src/nss/lib/sqlite/sqlite3.c:196431,1
    - Dst: sqlite3_session*::hook::xOld
      Src: /src/nss/lib/sqlite/sqlite3.c:196433,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:196437,1
    - Dst: sessionHashAppendType
      Src: /src/nss/lib/sqlite/sqlite3.c:196438,1
    - Dst: sqlite3_value_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:196442,1
    - Dst: sqlite3_value_double
      Src: /src/nss/lib/sqlite/sqlite3.c:196444,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:196445,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:196446,1
    - Dst: sessionHashAppendI64
      Src: /src/nss/lib/sqlite/sqlite3.c:196448,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:196453,1
    - Dst: sqlite3_value_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:196455,1
    - Dst: sqlite3_value_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:196457,1
    - Dst: sessionHashAppendBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:196459,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:196461,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:196462,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 5
    argNames:
    - pSession
    - pTab
    - bNew
    - piHash
    - pbNullPK
    argTypes:
    - sqlite3_session*
    - SessionTable*
    - int
    - int*
    - int*
    assertStmts:
    - condition: ( *pbNullPK==0 )
      pos:
        line_end: 196421
        line_start: 196421
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTab->nCol==pSession->hook.xCount(pSession->hook.pCtx) )
      pos:
        line_end: 196422
        line_start: 196422
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sizeof(iVal)==8 && sizeof(rVal)==8 )
      pos:
        line_end: 196444
        line_start: 196444
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( eType==SQLITE_NULL )
      pos:
        line_end: 196460
        line_start: 196460
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTab->bStat1==0 || i!=1 )
      pos:
        line_end: 196461
        line_start: 196461
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 196470
      start: 196412
    functionDepth: 16
    functionLinenumber: 196412
    functionLinenumberEnd: 196470
    functionName: sessionPreupdateHash
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_session*::hook::xNew
    - memcpy
    - sqlite3_value_text
    - sqlite3_session*::hook::xOld
    - sessionHashAppendType
    - assert
    - sessionHashAppendI64
    - sqlite3_value_type
    - sqlite3_value_blob
    - sessionHashAppendBlob
    - sqlite3_value_int64
    - sqlite3_session*::hook::xCount
    - sqlite3_value_double
    - sqlite3_value_bytes
    linkageType: ''
    returnType: int
    signature: "int sessionPreupdateHash(\n  sqlite3_session *pSession,      /* Session
      object that owns pTab */\n  SessionTable *pTab,             /* Session table
      handle */\n  int bNew,                       /* True to hash the new.* PK */\n
      \ int *piHash,                    /* OUT: Hash value */\n  int *pbNullPK                   /*
      OUT: True if there are NULL values in PK */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sessionVarintGet
      Src: /src/nss/lib/sqlite/sqlite3.c:196483,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - a
    argTypes:
    - u8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196484
      start: 196477
    functionDepth: 2
    functionLinenumber: 196477
    functionLinenumberEnd: 196484
    functionName: sessionSerialLen
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sessionVarintGet
    linkageType: ''
    returnType: int
    signature: int sessionSerialLen(u8 *a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:196513,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:196517,1
    - Dst: sessionHashAppendType
      Src: /src/nss/lib/sqlite/sqlite3.c:196521,1
    - Dst: sessionHashAppendI64
      Src: /src/nss/lib/sqlite/sqlite3.c:196523,1
    - Dst: sessionGetI64
      Src: /src/nss/lib/sqlite/sqlite3.c:196523,1
    - Dst: sessionVarintGet
      Src: /src/nss/lib/sqlite/sqlite3.c:196527,1
    - Dst: sessionHashAppendBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:196528,1
    - Dst: sessionSerialLen
      Src: /src/nss/lib/sqlite/sqlite3.c:196532,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 22
    argCount: 4
    argNames:
    - pTab
    - bPkOnly
    - aRecord
    - nBucket
    argTypes:
    - SessionTable*
    - int
    - u8*
    - int
    assertStmts:
    - condition: "( eType==SQLITE_INTEGER || eType==SQLITE_FLOAT \n         || eType==SQLITE_TEXT
        || eType==SQLITE_BLOB \n         || eType==SQLITE_NULL || eType==0 \n    )"
      pos:
        line_end: 196515
        line_start: 196512
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !isPK || (eType!=0 && eType!=SQLITE_NULL) )
      pos:
        line_end: 196516
        line_start: 196516
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 196536
      start: 196495
    functionDepth: 3
    functionLinenumber: 196495
    functionLinenumberEnd: 196536
    functionName: sessionChangeHash
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sessionGetI64
    - sessionHashAppendType
    - assert
    - sessionHashAppendI64
    - sessionSerialLen
    - sessionHashAppendBlob
    - sessionVarintGet
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int sessionChangeHash(\n  SessionTable *pTab,             /*
      Table handle */\n  int bPkOnly,                    /* Record consists of PK
      fields only */\n  u8 *aRecord,                    /* Change record */\n  int
      nBucket                     /* Assume this many buckets in hash table */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sessionSerialLen
      Src: /src/nss/lib/sqlite/sqlite3.c:196557,1
    - Dst: sessionSerialLen
      Src: /src/nss/lib/sqlite/sqlite3.c:196558,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:196560,1
    - Dst: sessionSerialLen
      Src: /src/nss/lib/sqlite/sqlite3.c:196566,1
    - Dst: sessionSerialLen
      Src: /src/nss/lib/sqlite/sqlite3.c:196567,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 5
    argNames:
    - pTab
    - bLeftPkOnly
    - aLeft
    - bRightPkOnly
    - aRight
    argTypes:
    - SessionTable*
    - int
    - u8*
    - int
    - u8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196572
      start: 196544
    functionDepth: 3
    functionLinenumber: 196544
    functionLinenumberEnd: 196572
    functionName: sessionChangeEqual
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sessionSerialLen
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int sessionChangeEqual(\n  SessionTable *pTab,             /* Table
      used for PK definition */\n  int bLeftPkOnly,                /* True if aLeft[]
      contains PK fields only */\n  u8 *aLeft,                      /* Change record
      */\n  int bRightPkOnly,               /* True if aRight[] contains PK fields
      only */\n  u8 *aRight                      /* Change record */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sessionSerialLen
      Src: /src/nss/lib/sqlite/sqlite3.c:196599,1
    - Dst: sessionSerialLen
      Src: /src/nss/lib/sqlite/sqlite3.c:196600,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:196602,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:196605,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - paOut
    - nCol
    - aLeft
    - aRight
    argTypes:
    - u8**
    - int
    - u8*
    - u8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196613
      start: 196587
    functionDepth: 3
    functionLinenumber: 196587
    functionLinenumberEnd: 196613
    functionName: sessionMergeRecord
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sessionSerialLen
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void sessionMergeRecord(\n  u8 **paOut, \n  int nCol,\n  u8 *aLeft,\n
      \ u8 *aRight\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:196643,1
    - Dst: sessionSerialLen
      Src: /src/nss/lib/sqlite/sqlite3.c:196645,1
    - Dst: sessionSerialLen
      Src: /src/nss/lib/sqlite/sqlite3.c:196653,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - paOne
    - paTwo
    - pnVal
    argTypes:
    - u8**
    - u8**
    - int*
    assertStmts:
    - condition: ( a1 )
      pos:
        line_end: 196642
        line_start: 196642
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 196661
      start: 196633
    functionDepth: 3
    functionLinenumber: 196633
    functionLinenumberEnd: 196661
    functionName: sessionMergeValue
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sessionSerialLen
    linkageType: ''
    returnType: u8
    signature: "u8 *sessionMergeValue(\n  u8 **paOne,                     /* IN/OUT:
      Left-hand buffer pointer */\n  u8 **paTwo,                     /* IN/OUT: Right-hand
      buffer pointer */\n  int *pnVal                      /* OUT: Bytes in returned
      value */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:196687,1
    - Dst: sessionMergeValue
      Src: /src/nss/lib/sqlite/sqlite3.c:196696,1
    - Dst: sessionMergeValue
      Src: /src/nss/lib/sqlite/sqlite3.c:196697,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:196698,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:196700,1
    - Dst: sessionMergeValue
      Src: /src/nss/lib/sqlite/sqlite3.c:196721,1
    - Dst: sessionMergeValue
      Src: /src/nss/lib/sqlite/sqlite3.c:196722,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:196724,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:196728,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 7
    argNames:
    - paOut
    - pTab
    - bPatchset
    - aOldRecord1
    - aOldRecord2
    - aNewRecord1
    - aNewRecord2
    argTypes:
    - u8**
    - SessionTable*
    - int
    - u8*
    - u8*
    - u8*
    - u8*
    assertStmts:
    - condition: ( aOldRecord1 && aNewRecord1 )
      pos:
        line_end: 196686
        line_start: 196686
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 196735
      start: 196667
    functionDepth: 4
    functionLinenumber: 196667
    functionLinenumberEnd: 196735
    functionName: sessionMergeUpdate
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sessionMergeValue
    - memcpy
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int sessionMergeUpdate(\n  u8 **paOut,                     /* IN/OUT:
      Pointer to output buffer */\n  SessionTable *pTab,             /* Table change
      pertains to */\n  int bPatchset,                  /* True if records are patchset
      records */\n  u8 *aOldRecord1,                /* old.* record for first change
      */\n  u8 *aOldRecord2,                /* old.* record for second change */\n
      \ u8 *aNewRecord1,                /* new.* record for first change */\n  u8
      *aNewRecord2                 /* new.* record for second change */\n)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:196753,1
    - Dst: sessionSerialLen
      Src: /src/nss/lib/sqlite/sqlite3.c:196756,1
    - Dst: sqlite3_session*::hook::xNew
      Src: /src/nss/lib/sqlite/sqlite3.c:196769,1
    - Dst: sqlite3_session*::hook::xOld
      Src: /src/nss/lib/sqlite/sqlite3.c:196772,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:196774,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:196775,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:196778,1
    - Dst: sessionGetI64
      Src: /src/nss/lib/sqlite/sqlite3.c:196783,1
    - Dst: sqlite3_value_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:196786,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:196789,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:196790,1
    - Dst: sqlite3_value_double
      Src: /src/nss/lib/sqlite/sqlite3.c:196791,1
    - Dst: sessionVarintGet
      Src: /src/nss/lib/sqlite/sqlite3.c:196796,1
    - Dst: sqlite3_value_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:196797,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:196799,1
    - Dst: sqlite3_value_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:196801,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:196803,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 42
    argCount: 4
    argNames:
    - pSession
    - pTab
    - pChange
    - op
    argTypes:
    - sqlite3_session*
    - SessionTable*
    - SessionChange*
    - int
    assertStmts:
    - condition: ( op==SQLITE_INSERT || op==SQLITE_UPDATE || op==SQLITE_DELETE )
      pos:
        line_end: 196752
        line_start: 196752
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc==SQLITE_OK )
      pos:
        line_end: 196773
        line_start: 196773
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( eType==SQLITE_INTEGER || eType==SQLITE_FLOAT\n           || eType==SQLITE_BLOB
        \   || eType==SQLITE_TEXT\n      )"
      pos:
        line_end: 196779
        line_start: 196777
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( sizeof(iVal)==8 && sizeof(rVal)==8 )
      pos:
        line_end: 196788
        line_start: 196788
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 196810
      start: 196744
    functionDepth: 16
    functionLinenumber: 196744
    functionLinenumberEnd: 196810
    functionName: sessionPreupdateEqual
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_session*::hook::xNew
    - memcpy
    - sessionGetI64
    - sessionVarintGet
    - sqlite3_session*::hook::xOld
    - memcmp
    - assert
    - sessionSerialLen
    - sqlite3_value_type
    - sqlite3_value_blob
    - sqlite3_value_int64
    - sqlite3_value_text
    - sqlite3_value_double
    - sqlite3_value_bytes
    linkageType: ''
    returnType: int
    signature: "int sessionPreupdateEqual(\n  sqlite3_session *pSession,      /* Session
      object that owns SessionTable */\n  SessionTable *pTab,             /* Table
      associated with change */\n  SessionChange *pChange,         /* Change to compare
      to */\n  int op                          /* Current pre-update operation */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:196829,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:196836,1
    - Dst: sessionChangeHash
      Src: /src/nss/lib/sqlite/sqlite3.c:196843,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:196850,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - bPatchset
    - pTab
    argTypes:
    - int
    - SessionTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196856
      start: 196823
    functionDepth: 6
    functionLinenumber: 196823
    functionLinenumberEnd: 196856
    functionName: sessionGrowHash
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3_free
    - sqlite3_malloc64
    - sessionChangeHash
    linkageType: ''
    returnType: int
    signature: int sessionGrowHash(int bPatchset, SessionTable *pTab)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:196903,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:196905,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:196906,1
    - Dst: sqlite3_table_column_metadata
      Src: /src/nss/lib/sqlite/sqlite3.c:196907,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:196910,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:196916,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:196921,1
    - Dst: sqlite3_prepare_v2
      Src: /src/nss/lib/sqlite/sqlite3.c:196925,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:196926,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:196930,1
    - Dst: sqlite3_column_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:196931,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:196934,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:196938,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:196949,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:196955,1
    - Dst: sqlite3_column_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:196956,1
    - Dst: sqlite3_column_text
      Src: /src/nss/lib/sqlite/sqlite3.c:196957,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:196959,1
    - Dst: sqlite3_column_int
      Src: /src/nss/lib/sqlite/sqlite3.c:196962,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:196965,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:196981,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:196983,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 71
    argCount: 7
    argNames:
    - db
    - zDb
    - zThis
    - pnCol
    - pzTab
    - pazCol
    - pabPK
    argTypes:
    - sqlite3*
    - char*
    - char*
    - int*
    - char**
    - char***
    - u8**
    assertStmts:
    - condition: ( pazCol && pabPK )
      pos:
        line_end: 196902
        line_start: 196902
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 196985
      start: 196883
    functionDepth: 28
    functionLinenumber: 196883
    functionLinenumberEnd: 196985
    functionName: sessionTableInfo
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - sqlite3_step
    - sqlite3_reset
    - sqlite3_malloc64
    - sqlite3_column_bytes
    - assert
    - sqlite3_mprintf
    - sqlite3_prepare_v2
    - sqlite3Strlen30
    - sqlite3_column_text
    - sqlite3_stricmp
    - sqlite3_finalize
    - sqlite3_free
    - sqlite3_column_int
    - sqlite3_table_column_metadata
    linkageType: ''
    returnType: int
    signature: "int sessionTableInfo(\n  sqlite3 *db,                    /* Database
      connection */\n  const char *zDb,                /* Name of attached database
      (e.g. \"main\") */\n  const char *zThis,              /* Table name */\n  int
      *pnCol,                     /* OUT: number of columns */\n  const char **pzTab,
      \            /* OUT: Copy of zThis */\n  const char ***pazCol,           /*
      OUT: Array of column names for table */\n  u8 **pabPK                      /*
      OUT: Array of booleans - true for PK col */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:197002,1
    - Dst: sessionTableInfo
      Src: /src/nss/lib/sqlite/sqlite3.c:197003,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:197014,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 2
    argNames:
    - pSession
    - pTab
    argTypes:
    - sqlite3_session*
    - SessionTable*
    assertStmts:
    - condition: ( pTab->azCol==0 || pTab->abPK==0 )
      pos:
        line_end: 197001
        line_start: 197001
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 197020
      start: 196999
    functionDepth: 29
    functionLinenumber: 196999
    functionLinenumberEnd: 197020
    functionName: sessionInitTable
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sessionTableInfo
    - sqlite3_stricmp
    linkageType: ''
    returnType: int
    signature: int sessionInitTable(sqlite3_session *pSession, SessionTable *pTab)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SessionStat1Ctx*::hook::xOld
      Src: /src/nss/lib/sqlite/sqlite3.c:197036,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:197037,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - pCtx
    - iCol
    - ppVal
    argTypes:
    - void*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197042
      start: 197033
    functionDepth: 1
    functionLinenumber: 197033
    functionLinenumberEnd: 197042
    functionName: sessionStat1Old
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - SessionStat1Ctx*::hook::xOld
    - sqlite3_value_type
    linkageType: ''
    returnType: int
    signature: int sessionStat1Old(void *pCtx, int iCol, sqlite3_value **ppVal)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SessionStat1Ctx*::hook::xNew
      Src: /src/nss/lib/sqlite/sqlite3.c:197046,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:197047,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - pCtx
    - iCol
    - ppVal
    argTypes:
    - void*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197052
      start: 197043
    functionDepth: 1
    functionLinenumber: 197043
    functionLinenumberEnd: 197052
    functionName: sessionStat1New
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - SessionStat1Ctx*::hook::xNew
    - sqlite3_value_type
    linkageType: ''
    returnType: int
    signature: int sessionStat1New(void *pCtx, int iCol, sqlite3_value **ppVal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SessionStat1Ctx*::hook::xCount
      Src: /src/nss/lib/sqlite/sqlite3.c:197055,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pCtx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197056
      start: 197053
    functionDepth: 0
    functionLinenumber: 197053
    functionLinenumberEnd: 197056
    functionName: sessionStat1Count
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - SessionStat1Ctx*::hook::xCount
    linkageType: ''
    returnType: int
    signature: int sessionStat1Count(void *pCtx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SessionStat1Ctx*::hook::xDepth
      Src: /src/nss/lib/sqlite/sqlite3.c:197059,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pCtx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197060
      start: 197057
    functionDepth: 0
    functionLinenumber: 197057
    functionLinenumberEnd: 197060
    functionName: sessionStat1Depth
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - SessionStat1Ctx*::hook::xDepth
    linkageType: ''
    returnType: int
    signature: int sessionStat1Depth(void *pCtx)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: sessionInitTable
      Src: /src/nss/lib/sqlite/sqlite3.c:197084,1
    - Dst: sqlite3_session*::hook::xCount
      Src: /src/nss/lib/sqlite/sqlite3.c:197088,1
    - Dst: sessionGrowHash
      Src: /src/nss/lib/sqlite/sqlite3.c:197094,1
    - Dst: sqlite3ValueNew
      Src: /src/nss/lib/sqlite/sqlite3.c:197108,1
    - Dst: sqlite3ValueSetStr
      Src: /src/nss/lib/sqlite/sqlite3.c:197113,1
    - Dst: sessionPreupdateHash
      Src: /src/nss/lib/sqlite/sqlite3.c:197121,1
    - Dst: sessionPreupdateEqual
      Src: /src/nss/lib/sqlite/sqlite3.c:197128,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:197139,1
    - Dst: sqlite3_session*::hook::xOld
      Src: /src/nss/lib/sqlite/sqlite3.c:197147,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:197148,1
    - Dst: sqlite3_session*::hook::xNew
      Src: /src/nss/lib/sqlite/sqlite3.c:197150,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:197151,1
    - Dst: sessionSerializeValue
      Src: /src/nss/lib/sqlite/sqlite3.c:197156,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:197161,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:197166,1
    - Dst: sqlite3_session*::hook::xOld
      Src: /src/nss/lib/sqlite/sqlite3.c:197178,1
    - Dst: sqlite3_session*::hook::xNew
      Src: /src/nss/lib/sqlite/sqlite3.c:197180,1
    - Dst: sessionSerializeValue
      Src: /src/nss/lib/sqlite/sqlite3.c:197182,1
    - Dst: sqlite3_session*::hook::xDepth
      Src: /src/nss/lib/sqlite/sqlite3.c:197186,1
    - Dst: sqlite3_session*::hook::xDepth
      Src: /src/nss/lib/sqlite/sqlite3.c:197197,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 97
    argCount: 3
    argNames:
    - op
    - pSession
    - pTab
    argTypes:
    - int
    - sqlite3_session*
    - SessionTable*
    assertStmts:
    - condition: ( rc==SQLITE_OK )
      pos:
        line_end: 197138
        line_start: 197138
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( trc==SQLITE_OK )
      pos:
        line_end: 197150
        line_start: 197150
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( trc==SQLITE_OK )
      pos:
        line_end: 197147
        line_start: 197147
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 197213
      start: 197071
    functionDepth: 30
    functionLinenumber: 197071
    functionLinenumberEnd: 197213
    functionName: sessionPreupdateOneChange
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_session*::hook::xNew
    - sessionSerializeValue
    - sqlite3_malloc64
    - sqlite3ValueNew
    - sqlite3_session*::hook::xOld
    - sessionPreupdateEqual
    - sessionPreupdateHash
    - assert
    - memset
    - sqlite3_session*::hook::xDepth
    - sqlite3ValueSetStr
    - sqlite3_session*::hook::xCount
    - sessionGrowHash
    - sessionInitTable
    linkageType: ''
    returnType: void
    signature: "void sessionPreupdateOneChange(\n  int op,                         /*
      One of SQLITE_UPDATE, INSERT, DELETE */\n  sqlite3_session *pSession,      /*
      Session object pTab is attached to */\n  SessionTable *pTab              /*
      Table that change applies to */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:197221,1
    - Dst: sqlite3_strnicmp
      Src: /src/nss/lib/sqlite/sqlite3.c:197226,1
    - Dst: sqlite3_session*::xTableFilter
      Src: /src/nss/lib/sqlite/sqlite3.c:197233,1
    - Dst: sqlite3session_attach
      Src: /src/nss/lib/sqlite/sqlite3.c:197235,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:197238,1
    - Dst: sqlite3_strnicmp
      Src: /src/nss/lib/sqlite/sqlite3.c:197238,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:197243,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 3
    argNames:
    - pSession
    - zName
    - ppTab
    argTypes:
    - sqlite3_session*
    - char*
    - SessionTable**
    assertStmts:
    - condition: ( 0==sqlite3_strnicmp(pRet->zName, zName, nName+1) )
      pos:
        line_end: 197237
        line_start: 197237
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc==SQLITE_OK || pRet==0 )
      pos:
        line_end: 197242
        line_start: 197242
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 197246
      start: 197215
    functionDepth: 1
    functionLinenumber: 197215
    functionLinenumberEnd: 197246
    functionName: sessionFindTable
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_session*::xTableFilter
    - assert
    - sqlite3Strlen30
    - sqlite3session_attach
    - sqlite3_strnicmp
    linkageType: ''
    returnType: int
    signature: "int sessionFindTable(\n  sqlite3_session *pSession, \n  const char
      *zName,\n  SessionTable **ppTab\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:197261,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:197263,1
    - Dst: sqlite3_mutex_held
      Src: /src/nss/lib/sqlite/sqlite3.c:197263,1
    - Dst: sqlite3_strnicmp
      Src: /src/nss/lib/sqlite/sqlite3.c:197273,1
    - Dst: sessionFindTable
      Src: /src/nss/lib/sqlite/sqlite3.c:197275,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:197277,1
    - Dst: sessionPreupdateOneChange
      Src: /src/nss/lib/sqlite/sqlite3.c:197278,1
    - Dst: sessionPreupdateOneChange
      Src: /src/nss/lib/sqlite/sqlite3.c:197280,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 7
    argNames:
    - pCtx
    - db
    - op
    - zDb
    - zName
    - iKey1
    - iKey2
    argTypes:
    - void*
    - sqlite3*
    - int
    - char*
    - char*
    - sqlite3_int64
    - sqlite3_int64
    assertStmts:
    - condition: ( sqlite3_mutex_held(db->mutex) )
      pos:
        line_end: 197262
        line_start: 197262
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pSession->rc==SQLITE_OK )
      pos:
        line_end: 197276
        line_start: 197276
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 197284
      start: 197251
    functionDepth: 31
    functionLinenumber: 197251
    functionLinenumberEnd: 197284
    functionName: xPreUpdate
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sessionPreupdateOneChange
    - assert
    - sqlite3Strlen30
    - sqlite3_mutex_held
    - sessionFindTable
    - sqlite3_strnicmp
    linkageType: ''
    returnType: void
    signature: "void xPreUpdate(\n  void *pCtx,                     /* Copy of third
      arg to preupdate_hook() */\n  sqlite3 *db,                    /* Database handle
      */\n  int op,                         /* SQLITE_UPDATE, DELETE or INSERT */\n
      \ char const *zDb,                /* Database name */\n  char const *zName,
      \             /* Table name */\n  sqlite3_int64 iKey1,            /* Rowid of
      row about to be deleted/updated */\n  sqlite3_int64 iKey2             /* New
      rowid value (for a rowid UPDATE) */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_preupdate_old
      Src: /src/nss/lib/sqlite/sqlite3.c:197290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pCtx
    - iVal
    - ppVal
    argTypes:
    - void*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197291
      start: 197289
    functionDepth: 18
    functionLinenumber: 197289
    functionLinenumberEnd: 197291
    functionName: sessionPreupdateOld
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_preupdate_old
    linkageType: ''
    returnType: int
    signature: int sessionPreupdateOld(void *pCtx, int iVal, sqlite3_value **ppVal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_preupdate_new
      Src: /src/nss/lib/sqlite/sqlite3.c:197293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pCtx
    - iVal
    - ppVal
    argTypes:
    - void*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197294
      start: 197292
    functionDepth: 14
    functionLinenumber: 197292
    functionLinenumberEnd: 197294
    functionName: sessionPreupdateNew
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_preupdate_new
    linkageType: ''
    returnType: int
    signature: int sessionPreupdateNew(void *pCtx, int iVal, sqlite3_value **ppVal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_preupdate_count
      Src: /src/nss/lib/sqlite/sqlite3.c:197296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pCtx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197297
      start: 197295
    functionDepth: 1
    functionLinenumber: 197295
    functionLinenumberEnd: 197297
    functionName: sessionPreupdateCount
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_preupdate_count
    linkageType: ''
    returnType: int
    signature: int sessionPreupdateCount(void *pCtx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_preupdate_depth
      Src: /src/nss/lib/sqlite/sqlite3.c:197299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pCtx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197300
      start: 197298
    functionDepth: 1
    functionLinenumber: 197298
    functionLinenumberEnd: 197300
    functionName: sessionPreupdateDepth
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_preupdate_depth
    linkageType: ''
    returnType: int
    signature: int sessionPreupdateDepth(void *pCtx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - pSession
    argTypes:
    - sqlite3_session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197314
      start: 197306
    functionDepth: 0
    functionLinenumber: 197306
    functionLinenumberEnd: 197314
    functionName: sessionPreupdateHooks
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void sessionPreupdateHooks(\n  sqlite3_session *pSession\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_column_value
      Src: /src/nss/lib/sqlite/sqlite3.c:197327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - pCtx
    - iVal
    - ppVal
    argTypes:
    - void*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197329
      start: 197325
    functionDepth: 0
    functionLinenumber: 197325
    functionLinenumberEnd: 197329
    functionName: sessionDiffOld
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_column_value
    linkageType: ''
    returnType: int
    signature: int sessionDiffOld(void *pCtx, int iVal, sqlite3_value **ppVal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_column_value
      Src: /src/nss/lib/sqlite/sqlite3.c:197332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - pCtx
    - iVal
    - ppVal
    argTypes:
    - void*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197334
      start: 197330
    functionDepth: 0
    functionLinenumber: 197330
    functionLinenumberEnd: 197334
    functionName: sessionDiffNew
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_column_value
    linkageType: ''
    returnType: int
    signature: int sessionDiffNew(void *pCtx, int iVal, sqlite3_value **ppVal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_column_count
      Src: /src/nss/lib/sqlite/sqlite3.c:197337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pCtx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197338
      start: 197335
    functionDepth: 1
    functionLinenumber: 197335
    functionLinenumberEnd: 197338
    functionName: sessionDiffCount
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_column_count
    linkageType: ''
    returnType: int
    signature: int sessionDiffCount(void *pCtx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pCtx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197341
      start: 197339
    functionDepth: 0
    functionLinenumber: 197339
    functionLinenumberEnd: 197341
    functionName: sessionDiffDepth
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sessionDiffDepth(void *pCtx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - pSession
    - pDiffCtx
    argTypes:
    - sqlite3_session*
    - SessionDiffCtx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197356
      start: 197347
    functionDepth: 0
    functionLinenumber: 197347
    functionLinenumberEnd: 197356
    functionName: sessionDiffHooks
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void sessionDiffHooks(\n  sqlite3_session *pSession,\n  SessionDiffCtx
      *pDiffCtx\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:197370,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 6
    argNames:
    - nCol
    - zDb1
    - zDb2
    - zTab
    - azCol
    - abPK
    argTypes:
    - int
    - char*
    - char*
    - char*
    - char**
    - u8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197379
      start: 197358
    functionDepth: 10
    functionLinenumber: 197358
    functionLinenumberEnd: 197379
    functionName: sessionExprComparePK
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mprintf
    linkageType: ''
    returnType: char
    signature: "char *sessionExprComparePK(\n  int nCol,\n  const char *zDb1, const
      char *zDb2, \n  const char *zTab,\n  const char **azCol, u8 *abPK\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:197395,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:197405,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:197406,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 6
    argNames:
    - nCol
    - zDb1
    - zDb2
    - zTab
    - azCol
    - abPK
    argTypes:
    - int
    - char*
    - char*
    - char*
    - char**
    - u8*
    assertStmts:
    - condition: ( zRet==0 )
      pos:
        line_end: 197404
        line_start: 197404
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 197410
      start: 197381
    functionDepth: 10
    functionLinenumber: 197381
    functionLinenumberEnd: 197410
    functionName: sessionExprCompareOther
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_mprintf
    linkageType: ''
    returnType: char
    signature: "char *sessionExprCompareOther(\n  int nCol,\n  const char *zDb1, const
      char *zDb2, \n  const char *zTab,\n  const char **azCol, u8 *abPK\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:197419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - nCol
    - zDb1
    - zDb2
    - zTbl
    - zExpr
    argTypes:
    - int
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197426
      start: 197412
    functionDepth: 10
    functionLinenumber: 197412
    functionLinenumberEnd: 197426
    functionName: sessionSelectFindNew
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mprintf
    linkageType: ''
    returnType: char
    signature: "char *sessionSelectFindNew(\n  int nCol,\n  const char *zDb1,      /*
      Pick rows in this db only */\n  const char *zDb2,      /* But not in this one
      */\n  const char *zTbl,      /* Table name */\n  const char *zExpr\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sessionSelectFindNew
      Src: /src/nss/lib/sqlite/sqlite3.c:197437,1
    - Dst: sqlite3_prepare
      Src: /src/nss/lib/sqlite/sqlite3.c:197443,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:197448,1
    - Dst: sessionPreupdateOneChange
      Src: /src/nss/lib/sqlite/sqlite3.c:197449,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:197451,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:197453,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 6
    argNames:
    - op
    - pSession
    - pTab
    - zDb1
    - zDb2
    - zExpr
    argTypes:
    - int
    - sqlite3_session*
    - SessionTable*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197457
      start: 197428
    functionDepth: 31
    functionLinenumber: 197428
    functionLinenumberEnd: 197457
    functionName: sessionDiffFindNew
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_step
    - sqlite3_prepare
    - sessionPreupdateOneChange
    - sqlite3_finalize
    - sqlite3_free
    - sessionSelectFindNew
    linkageType: ''
    returnType: int
    signature: "int sessionDiffFindNew(\n  int op,\n  sqlite3_session *pSession,\n
      \ SessionTable *pTab,\n  const char *zDb1,\n  const char *zDb2,\n  char *zExpr\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sessionExprCompareOther
      Src: /src/nss/lib/sqlite/sqlite3.c:197467,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:197473,1
    - Dst: sqlite3_prepare
      Src: /src/nss/lib/sqlite/sqlite3.c:197481,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:197487,1
    - Dst: sessionPreupdateOneChange
      Src: /src/nss/lib/sqlite/sqlite3.c:197488,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:197490,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:197492,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - pSession
    - pTab
    - zFrom
    - zExpr
    argTypes:
    - sqlite3_session*
    - SessionTable*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197497
      start: 197459
    functionDepth: 31
    functionLinenumber: 197459
    functionLinenumberEnd: 197497
    functionName: sessionDiffFindModified
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_step
    - sessionExprCompareOther
    - sqlite3_prepare
    - sessionPreupdateOneChange
    - sqlite3_mprintf
    - sqlite3_finalize
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int sessionDiffFindModified(\n  sqlite3_session *pSession, \n  SessionTable
      *pTab, \n  const char *zFrom, \n  const char *zExpr\n)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:197509,1
    - Dst: sessionDiffHooks
      Src: /src/nss/lib/sqlite/sqlite3.c:197510,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:197512,1
    - Dst: sqlite3_db_mutex
      Src: /src/nss/lib/sqlite/sqlite3.c:197512,1
    - Dst: sessionFindTable
      Src: /src/nss/lib/sqlite/sqlite3.c:197520,1
    - Dst: sessionInitTable
      Src: /src/nss/lib/sqlite/sqlite3.c:197522,1
    - Dst: sessionTableInfo
      Src: /src/nss/lib/sqlite/sqlite3.c:197534,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:197542,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:197547,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:197550,1
    - Dst: sessionExprComparePK
      Src: /src/nss/lib/sqlite/sqlite3.c:197561,1
    - Dst: sessionDiffFindNew
      Src: /src/nss/lib/sqlite/sqlite3.c:197568,1
    - Dst: sessionDiffFindNew
      Src: /src/nss/lib/sqlite/sqlite3.c:197573,1
    - Dst: sessionDiffFindModified
      Src: /src/nss/lib/sqlite/sqlite3.c:197578,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:197581,1
    - Dst: sessionPreupdateHooks
      Src: /src/nss/lib/sqlite/sqlite3.c:197585,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:197586,1
    - Dst: sqlite3_db_mutex
      Src: /src/nss/lib/sqlite/sqlite3.c:197586,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 63
    argCount: 4
    argNames:
    - pSession
    - zFrom
    - zTbl
    - pzErrMsg
    argTypes:
    - sqlite3_session*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197588
      start: 197499
    functionDepth: 32
    functionLinenumber: 197499
    functionLinenumberEnd: 197588
    functionName: sqlite3session_diff
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sessionTableInfo
    - sqlite3_free
    - sqlite3_db_mutex
    - sessionExprComparePK
    - sqlite3_mutex_leave
    - sessionDiffFindModified
    - memset
    - sqlite3_mprintf
    - sessionDiffFindNew
    - sessionPreupdateHooks
    - sessionDiffHooks
    - sessionFindTable
    - sessionInitTable
    - sqlite3_stricmp
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3session_diff(\n  sqlite3_session *pSession,\n  const
      char *zFrom,\n  const char *zTbl,\n  char **pzErrMsg\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:197601,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:197607,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:197609,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:197613,1
    - Dst: sessionPreupdateHooks
      Src: /src/nss/lib/sqlite/sqlite3.c:197614,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:197619,1
    - Dst: sqlite3_db_mutex
      Src: /src/nss/lib/sqlite/sqlite3.c:197619,1
    - Dst: sqlite3_preupdate_hook
      Src: /src/nss/lib/sqlite/sqlite3.c:197620,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:197622,1
    - Dst: sqlite3_db_mutex
      Src: /src/nss/lib/sqlite/sqlite3.c:197622,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 3
    argNames:
    - db
    - zDb
    - ppSession
    argTypes:
    - sqlite3*
    - char*
    - sqlite3_session**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197626
      start: 197594
    functionDepth: 6
    functionLinenumber: 197594
    functionLinenumberEnd: 197626
    functionName: sqlite3session_create
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3_preupdate_hook
    - memcpy
    - sqlite3_malloc64
    - sqlite3_db_mutex
    - sqlite3_mutex_leave
    - memset
    - sqlite3Strlen30
    - sessionPreupdateHooks
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3session_create(\n  sqlite3 *db,                    /*
      Database handle */\n  const char *zDb,                /* Name of db (e.g. \"main\")
      */\n  sqlite3_session **ppSession     /* OUT: New session object */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:197644,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:197647,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:197648,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:197649,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - pList
    argTypes:
    - SessionTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197651
      start: 197632
    functionDepth: 3
    functionLinenumber: 197632
    functionLinenumberEnd: 197651
    functionName: sessionDeleteTable
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void sessionDeleteTable(SessionTable *pList)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:197663,1
    - Dst: sqlite3_db_mutex
      Src: /src/nss/lib/sqlite/sqlite3.c:197663,1
    - Dst: sqlite3_preupdate_hook
      Src: /src/nss/lib/sqlite/sqlite3.c:197664,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:197665,1
    - Dst: sqlite3_preupdate_hook
      Src: /src/nss/lib/sqlite/sqlite3.c:197668,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:197672,1
    - Dst: sqlite3_db_mutex
      Src: /src/nss/lib/sqlite/sqlite3.c:197672,1
    - Dst: sqlite3ValueFree
      Src: /src/nss/lib/sqlite/sqlite3.c:197673,1
    - Dst: sessionDeleteTable
      Src: /src/nss/lib/sqlite/sqlite3.c:197677,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:197680,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - pSession
    argTypes:
    - sqlite3_session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197681
      start: 197656
    functionDepth: 10
    functionLinenumber: 197656
    functionLinenumberEnd: 197681
    functionName: sqlite3session_delete
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - ALWAYS
    - sqlite3_preupdate_hook
    - sqlite3_free
    - sqlite3_db_mutex
    - sqlite3_mutex_leave
    - sqlite3ValueFree
    - sessionDeleteTable
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3session_delete(sqlite3_session *pSession)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pSession
    - pCtx
    argTypes:
    - sqlite3_session*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197694
      start: 197686
    functionDepth: 0
    functionLinenumber: 197686
    functionLinenumberEnd: 197694
    functionName: sqlite3session_table_filter
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3session_table_filter(\n  sqlite3_session *pSession,
      \n  int(*xFilter)(void*, const char*),\n  void *pCtx                      /*
      First argument passed to xFilter */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:197709,1
    - Dst: sqlite3_db_mutex
      Src: /src/nss/lib/sqlite/sqlite3.c:197709,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:197719,1
    - Dst: sqlite3_strnicmp
      Src: /src/nss/lib/sqlite/sqlite3.c:197721,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:197726,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:197736,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:197738,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:197745,1
    - Dst: sqlite3_db_mutex
      Src: /src/nss/lib/sqlite/sqlite3.c:197745,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - pSession
    - zName
    argTypes:
    - sqlite3_session*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197747
      start: 197704
    functionDepth: 6
    functionLinenumber: 197704
    functionLinenumberEnd: 197747
    functionName: sqlite3session_attach
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_mutex_enter
    - memcpy
    - sqlite3_malloc64
    - sqlite3_db_mutex
    - sqlite3_mutex_leave
    - memset
    - sqlite3Strlen30
    - sqlite3_strnicmp
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3session_attach(\n  sqlite3_session *pSession,      /*
      Session object */\n  const char *zName               /* Table name */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_realloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:197764,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - p
    - nByte
    - pRc
    argTypes:
    - SessionBuffer*
    - size_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197773
      start: 197756
    functionDepth: 7
    functionLinenumber: 197756
    functionLinenumberEnd: 197773
    functionName: sessionBufferGrow
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_realloc64
    linkageType: ''
    returnType: int
    signature: int sessionBufferGrow(SessionBuffer *p, size_t nByte, int *pRc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sessionSerializeValue
      Src: /src/nss/lib/sqlite/sqlite3.c:197787,1
    - Dst: sessionBufferGrow
      Src: /src/nss/lib/sqlite/sqlite3.c:197788,1
    - Dst: sessionSerializeValue
      Src: /src/nss/lib/sqlite/sqlite3.c:197790,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - p
    - pVal
    - pRc
    argTypes:
    - SessionBuffer*
    - sqlite3_value*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197796
      start: 197783
    functionDepth: 17
    functionLinenumber: 197783
    functionLinenumberEnd: 197796
    functionName: sessionAppendValue
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sessionBufferGrow
    - sessionSerializeValue
    linkageType: ''
    returnType: void
    signature: void sessionAppendValue(SessionBuffer *p, sqlite3_value *pVal, int
      *pRc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sessionBufferGrow
      Src: /src/nss/lib/sqlite/sqlite3.c:197806,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - p
    - v
    - pRc
    argTypes:
    - SessionBuffer*
    - u8
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197809
      start: 197805
    functionDepth: 8
    functionLinenumber: 197805
    functionLinenumberEnd: 197809
    functionName: sessionAppendByte
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sessionBufferGrow
    linkageType: ''
    returnType: void
    signature: void sessionAppendByte(SessionBuffer *p, u8 v, int *pRc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sessionBufferGrow
      Src: /src/nss/lib/sqlite/sqlite3.c:197819,1
    - Dst: sessionVarintPut
      Src: /src/nss/lib/sqlite/sqlite3.c:197820,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - p
    - v
    - pRc
    argTypes:
    - SessionBuffer*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197822
      start: 197818
    functionDepth: 8
    functionLinenumber: 197818
    functionLinenumberEnd: 197822
    functionName: sessionAppendVarint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sessionBufferGrow
    - sessionVarintPut
    linkageType: ''
    returnType: void
    signature: void sessionAppendVarint(SessionBuffer *p, int v, int *pRc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sessionBufferGrow
      Src: /src/nss/lib/sqlite/sqlite3.c:197837,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:197838,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - p
    - aBlob
    - nBlob
    - pRc
    argTypes:
    - SessionBuffer*
    - u8*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197841
      start: 197831
    functionDepth: 8
    functionLinenumber: 197831
    functionLinenumberEnd: 197841
    functionName: sessionAppendBlob
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - sessionBufferGrow
    linkageType: ''
    returnType: void
    signature: "void sessionAppendBlob(\n  SessionBuffer *p, \n  const u8 *aBlob,
      \n  int nBlob, \n  int *pRc\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:197856,1
    - Dst: sessionBufferGrow
      Src: /src/nss/lib/sqlite/sqlite3.c:197857,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:197858,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - p
    - zStr
    - pRc
    argTypes:
    - SessionBuffer*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197861
      start: 197851
    functionDepth: 8
    functionLinenumber: 197851
    functionLinenumberEnd: 197861
    functionName: sessionAppendStr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - sessionBufferGrow
    - sqlite3Strlen30
    linkageType: ''
    returnType: void
    signature: "void sessionAppendStr(\n  SessionBuffer *p, \n  const char *zStr,
      \n  int *pRc\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:197877,1
    - Dst: sessionAppendStr
      Src: /src/nss/lib/sqlite/sqlite3.c:197878,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - p
    - iVal
    - pRc
    argTypes:
    - SessionBuffer*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197879
      start: 197871
    functionDepth: 10
    functionLinenumber: 197871
    functionLinenumberEnd: 197879
    functionName: sessionAppendInteger
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sessionAppendStr
    - sqlite3_snprintf
    linkageType: ''
    returnType: void
    signature: "void sessionAppendInteger(\n  SessionBuffer *p,               /* Buffer
      to append to */\n  int iVal,                       /* Value to write the string
      rep. of */\n  int *pRc                        /* IN/OUT: Error code */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:197895,1
    - Dst: sessionBufferGrow
      Src: /src/nss/lib/sqlite/sqlite3.c:197896,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - p
    - zStr
    - pRc
    argTypes:
    - SessionBuffer*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197907
      start: 197890
    functionDepth: 8
    functionLinenumber: 197890
    functionLinenumberEnd: 197907
    functionName: sessionAppendIdent
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sessionBufferGrow
    - sqlite3Strlen30
    linkageType: ''
    returnType: void
    signature: "void sessionAppendIdent(\n  SessionBuffer *p,               /* Buffer
      to a append to */\n  const char *zStr,               /* String to quote, escape
      and append */\n  int *pRc                        /* IN/OUT: Error code */\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_column_type
      Src: /src/nss/lib/sqlite/sqlite3.c:197922,1
    - Dst: sessionAppendByte
      Src: /src/nss/lib/sqlite/sqlite3.c:197923,1
    - Dst: sqlite3_column_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:197928,1
    - Dst: sqlite3_column_double
      Src: /src/nss/lib/sqlite/sqlite3.c:197930,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:197931,1
    - Dst: sessionPutI64
      Src: /src/nss/lib/sqlite/sqlite3.c:197933,1
    - Dst: sessionAppendBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:197934,1
    - Dst: sqlite3_column_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:197940,1
    - Dst: sqlite3_column_text
      Src: /src/nss/lib/sqlite/sqlite3.c:197942,1
    - Dst: sqlite3_column_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:197944,1
    - Dst: sessionAppendVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:197946,1
    - Dst: sessionAppendBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:197947,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 4
    argNames:
    - p
    - pStmt
    - iCol
    - pRc
    argTypes:
    - SessionBuffer*
    - sqlite3_stmt*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197953
      start: 197915
    functionDepth: 17
    functionLinenumber: 197915
    functionLinenumberEnd: 197953
    functionName: sessionAppendCol
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_column_type
    - memcpy
    - sqlite3_column_double
    - sessionPutI64
    - sqlite3_column_blob
    - sessionAppendBlob
    - sqlite3_column_bytes
    - sqlite3_column_int64
    - sqlite3_column_text
    - sessionAppendByte
    - sessionAppendVarint
    linkageType: ''
    returnType: void
    signature: "void sessionAppendCol(\n  SessionBuffer *p,               /* Buffer
      to append to */\n  sqlite3_stmt *pStmt,            /* Handle pointing to row
      containing value */\n  int iCol,                       /* Column to read value
      from */\n  int *pRc                        /* IN/OUT: Error code */\n)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: sessionAppendByte
      Src: /src/nss/lib/sqlite/sqlite3.c:197991,1
    - Dst: sessionAppendByte
      Src: /src/nss/lib/sqlite/sqlite3.c:197992,1
    - Dst: sqlite3_column_count
      Src: /src/nss/lib/sqlite/sqlite3.c:197993,1
    - Dst: sqlite3_column_type
      Src: /src/nss/lib/sqlite/sqlite3.c:198000,1
    - Dst: sqlite3_column_type
      Src: /src/nss/lib/sqlite/sqlite3.c:198008,1
    - Dst: sessionGetI64
      Src: /src/nss/lib/sqlite/sqlite3.c:198009,1
    - Dst: sqlite3_column_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:198011,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:198014,1
    - Dst: sqlite3_column_double
      Src: /src/nss/lib/sqlite/sqlite3.c:198015,1
    - Dst: sessionVarintGet
      Src: /src/nss/lib/sqlite/sqlite3.c:198024,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:198025,1
    - Dst: sqlite3_column_type
      Src: /src/nss/lib/sqlite/sqlite3.c:198027,1
    - Dst: sqlite3_column_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:198028,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:198029,1
    - Dst: sqlite3_column_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:198029,1
    - Dst: sessionAppendBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:198044,1
    - Dst: sessionAppendByte
      Src: /src/nss/lib/sqlite/sqlite3.c:198046,1
    - Dst: sessionAppendCol
      Src: /src/nss/lib/sqlite/sqlite3.c:198053,1
    - Dst: sessionAppendByte
      Src: /src/nss/lib/sqlite/sqlite3.c:198055,1
    - Dst: sessionAppendBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:198064,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:198066,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 59
    argCount: 5
    argNames:
    - pBuf
    - bPatchset
    - pStmt
    - p
    - abPK
    argTypes:
    - SessionBuffer*
    - int
    - sqlite3_stmt*
    - SessionChange*
    - u8*
    assertStmts:
    - condition: ( eType==SQLITE_TEXT || eType==SQLITE_BLOB )
      pos:
        line_end: 198024
        line_start: 198024
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 198069
      start: 197977
    functionDepth: 18
    functionLinenumber: 197977
    functionLinenumberEnd: 198069
    functionName: sessionAppendUpdate
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_column_type
    - sessionAppendCol
    - memcpy
    - sqlite3_column_double
    - sessionGetI64
    - sqlite3_column_blob
    - sqlite3_column_count
    - memcmp
    - sqlite3_column_bytes
    - sqlite3_column_int64
    - assert
    - sessionAppendBlob
    - sessionVarintGet
    - sessionAppendByte
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int sessionAppendUpdate(\n  SessionBuffer *pBuf,            /* Buffer
      to append to */\n  int bPatchset,                  /* True for \"patchset\",
      0 for \"changeset\" */\n  sqlite3_stmt *pStmt,            /* Statement handle
      pointing at new row */\n  SessionChange *p,               /* Object containing
      old values */\n  u8 *abPK                        /* Boolean array - true for
      PK columns */\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sessionAppendByte
      Src: /src/nss/lib/sqlite/sqlite3.c:198085,1
    - Dst: sessionAppendByte
      Src: /src/nss/lib/sqlite/sqlite3.c:198086,1
    - Dst: sessionAppendBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:198089,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:198100,1
    - Dst: sessionVarintGet
      Src: /src/nss/lib/sqlite/sqlite3.c:198110,1
    - Dst: sessionAppendBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:198116,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:198119,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 5
    argNames:
    - pBuf
    - bPatchset
    - p
    - nCol
    - abPK
    argTypes:
    - SessionBuffer*
    - int
    - SessionChange*
    - int
    - u8*
    assertStmts:
    - condition: ( abPK[i]==0 )
      pos:
        line_end: 198099
        line_start: 198099
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (a - p->aRecord)==p->nRecord )
      pos:
        line_end: 198118
        line_start: 198118
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 198123
      start: 198076
    functionDepth: 9
    functionLinenumber: 198076
    functionLinenumberEnd: 198123
    functionName: sessionAppendDelete
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sessionVarintGet
    - sessionAppendByte
    - sessionAppendBlob
    linkageType: ''
    returnType: int
    signature: "int sessionAppendDelete(\n  SessionBuffer *pBuf,            /* Buffer
      to append to */\n  int bPatchset,                  /* True for \"patchset\",
      0 for \"changeset\" */\n  SessionChange *p,               /* Object containing
      old values */\n  int nCol,                       /* Number of columns in table
      */\n  u8 *abPK                        /* Boolean array - true for PK columns
      */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:198144,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:198145,1
    - Dst: sessionAppendStr
      Src: /src/nss/lib/sqlite/sqlite3.c:198155,1
    - Dst: sessionAppendIdent
      Src: /src/nss/lib/sqlite/sqlite3.c:198156,1
    - Dst: sessionAppendStr
      Src: /src/nss/lib/sqlite/sqlite3.c:198157,1
    - Dst: sessionAppendIdent
      Src: /src/nss/lib/sqlite/sqlite3.c:198158,1
    - Dst: sessionAppendStr
      Src: /src/nss/lib/sqlite/sqlite3.c:198159,1
    - Dst: sessionAppendStr
      Src: /src/nss/lib/sqlite/sqlite3.c:198162,1
    - Dst: sessionAppendIdent
      Src: /src/nss/lib/sqlite/sqlite3.c:198163,1
    - Dst: sessionAppendStr
      Src: /src/nss/lib/sqlite/sqlite3.c:198164,1
    - Dst: sessionAppendInteger
      Src: /src/nss/lib/sqlite/sqlite3.c:198165,1
    - Dst: sqlite3_prepare_v2
      Src: /src/nss/lib/sqlite/sqlite3.c:198174,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:198176,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 7
    argNames:
    - db
    - zDb
    - zTab
    - nCol
    - azCol
    - abPK
    - ppStmt
    argTypes:
    - sqlite3*
    - char*
    - char*
    - int
    - char**
    - u8*
    - sqlite3_stmt**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198178
      start: 198131
    functionDepth: 28
    functionLinenumber: 198131
    functionLinenumberEnd: 198178
    functionName: sessionSelectStmt
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sessionAppendInteger
    - sessionAppendIdent
    - sqlite3_mprintf
    - sqlite3_prepare_v2
    - sessionAppendStr
    - sqlite3_stricmp
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int sessionSelectStmt(\n  sqlite3 *db,                    /* Database
      handle */\n  const char *zDb,                /* Database name */\n  const char
      *zTab,               /* Table name */\n  int nCol,                       /*
      Number of columns in table */\n  const char **azCol,             /* Names of
      table columns */\n  u8 *abPK,                       /* PRIMARY KEY  array */\n
      \ sqlite3_stmt **ppStmt           /* OUT: Prepared SELECT statement */\n)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:198204,1
    - Dst: sessionGetI64
      Src: /src/nss/lib/sqlite/sqlite3.c:198209,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:198210,1
    - Dst: sessionGetI64
      Src: /src/nss/lib/sqlite/sqlite3.c:198219,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:198220,1
    - Dst: sqlite3_bind_double
      Src: /src/nss/lib/sqlite/sqlite3.c:198221,1
    - Dst: sessionVarintGet
      Src: /src/nss/lib/sqlite/sqlite3.c:198229,1
    - Dst: sqlite3_bind_text
      Src: /src/nss/lib/sqlite/sqlite3.c:198231,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:198239,1
    - Dst: sessionVarintGet
      Src: /src/nss/lib/sqlite/sqlite3.c:198240,1
    - Dst: sqlite3_bind_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:198242,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 4
    argNames:
    - pSelect
    - nCol
    - abPK
    - pChange
    argTypes:
    - sqlite3_stmt*
    - int
    - u8*
    - SessionChange*
    assertStmts:
    - condition: ( abPK[i]==0 )
      pos:
        line_end: 198203
        line_start: 198203
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( eType==SQLITE_BLOB )
      pos:
        line_end: 198238
        line_start: 198238
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 198251
      start: 198188
    functionDepth: 15
    functionLinenumber: 198188
    functionLinenumberEnd: 198251
    functionName: sessionSelectBind
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - sessionGetI64
    - sqlite3_bind_blob
    - sqlite3_bind_double
    - assert
    - sqlite3_bind_int64
    - sqlite3_bind_text
    - sessionVarintGet
    linkageType: ''
    returnType: int
    signature: "int sessionSelectBind(\n  sqlite3_stmt *pSelect,          /* SELECT
      from sessionSelectStmt() */\n  int nCol,                       /* Number of
      columns in table */\n  u8 *abPK,                       /* PRIMARY KEY array
      */\n  SessionChange *pChange          /* Change structure */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sessionAppendByte
      Src: /src/nss/lib/sqlite/sqlite3.c:198266,1
    - Dst: sessionAppendVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:198267,1
    - Dst: sessionAppendBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:198268,1
    - Dst: sessionAppendBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:198269,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:198269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - pBuf
    - bPatchset
    - pTab
    - pRc
    argTypes:
    - SessionBuffer*
    - int
    - SessionTable*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198270
      start: 198259
    functionDepth: 9
    functionLinenumber: 198259
    functionLinenumberEnd: 198270
    functionName: sessionAppendTableHdr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sessionAppendByte
    - sessionAppendBlob
    - strlen
    - sessionAppendVarint
    linkageType: ''
    returnType: void
    signature: "void sessionAppendTableHdr(\n  SessionBuffer *pBuf,            /*
      Append header to this buffer */\n  int bPatchset,                  /* Use the
      patchset format if true */\n  SessionTable *pTab,             /* Table object
      to append header for */\n  int *pRc                        /* IN/OUT: Error
      code */\n)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:198295,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/sqlite/sqlite3.c:198306,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:198309,1
    - Dst: sqlite3_db_mutex
      Src: /src/nss/lib/sqlite/sqlite3.c:198309,1
    - Dst: sessionTableInfo
      Src: /src/nss/lib/sqlite/sqlite3.c:198323,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:198324,1
    - Dst: sessionAppendTableHdr
      Src: /src/nss/lib/sqlite/sqlite3.c:198329,1
    - Dst: sessionSelectStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:198333,1
    - Dst: sessionSelectBind
      Src: /src/nss/lib/sqlite/sqlite3.c:198342,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:198344,1
    - Dst: sessionAppendByte
      Src: /src/nss/lib/sqlite/sqlite3.c:198347,1
    - Dst: sessionAppendByte
      Src: /src/nss/lib/sqlite/sqlite3.c:198348,1
    - Dst: sessionAppendCol
      Src: /src/nss/lib/sqlite/sqlite3.c:198350,1
    - Dst: sessionAppendUpdate
      Src: /src/nss/lib/sqlite/sqlite3.c:198353,1
    - Dst: sessionAppendDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:198356,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:198359,1
    - Dst: xOutput
      Src: /src/nss/lib/sqlite/sqlite3.c:198369,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:198377,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:198381,1
    - Dst: xOutput
      Src: /src/nss/lib/sqlite/sqlite3.c:198391,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:198395,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/sqlite/sqlite3.c:198396,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:198397,1
    - Dst: sqlite3_db_mutex
      Src: /src/nss/lib/sqlite/sqlite3.c:198397,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 73
    argCount: 5
    argNames:
    - pSession
    - bPatchset
    - pOut
    - pnChangeset
    - ppChangeset
    argTypes:
    - sqlite3_session*
    - int
    - void*
    - int*
    - void**
    assertStmts:
    - condition: ( xOutput==0 || (pnChangeset==0 && ppChangeset==0 ) )
      pos:
        line_end: 198294
        line_start: 198294
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 198399
      start: 198282
    functionDepth: 29
    functionLinenumber: 198282
    functionLinenumberEnd: 198399
    functionName: sessionGenerateChangeset
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3_reset
    - sessionTableInfo
    - sessionAppendCol
    - sqlite3_mutex_leave
    - assert
    - sessionAppendTableHdr
    - sessionAppendByte
    - sqlite3_finalize
    - memcmp
    - sqlite3_exec
    - sqlite3_step
    - sqlite3_db_mutex
    - sessionAppendDelete
    - sessionAppendUpdate
    - sessionSelectStmt
    - sessionSelectBind
    - xOutput
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int sessionGenerateChangeset(\n  sqlite3_session *pSession,      /*
      Session object */\n  int bPatchset,                  /* True for patchset, false
      for changeset */\n  int (*xOutput)(void *pOut, const void *pData, int nData),\n
      \ void *pOut,                     /* First argument for xOutput */\n  int *pnChangeset,
      \              /* OUT: Size of buffer at *ppChangeset */\n  void **ppChangeset
      \             /* OUT: Buffer containing changeset */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sessionGenerateChangeset
      Src: /src/nss/lib/sqlite/sqlite3.c:198413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pSession
    - pnChangeset
    - ppChangeset
    argTypes:
    - sqlite3_session*
    - int*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198414
      start: 198408
    functionDepth: 30
    functionLinenumber: 198408
    functionLinenumberEnd: 198414
    functionName: sqlite3session_changeset
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sessionGenerateChangeset
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3session_changeset(\n  sqlite3_session *pSession,
      \     /* Session object */\n  int *pnChangeset,               /* OUT: Size of
      buffer at *ppChangeset */\n  void **ppChangeset              /* OUT: Buffer
      containing changeset */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sessionGenerateChangeset
      Src: /src/nss/lib/sqlite/sqlite3.c:198424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pSession
    - pOut
    argTypes:
    - sqlite3_session*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198425
      start: 198419
    functionDepth: 30
    functionLinenumber: 198419
    functionLinenumberEnd: 198425
    functionName: sqlite3session_changeset_strm
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sessionGenerateChangeset
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3session_changeset_strm(\n  sqlite3_session *pSession,\n
      \ int (*xOutput)(void *pOut, const void *pData, int nData),\n  void *pOut\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sessionGenerateChangeset
      Src: /src/nss/lib/sqlite/sqlite3.c:198435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pSession
    - pOut
    argTypes:
    - sqlite3_session*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198436
      start: 198430
    functionDepth: 30
    functionLinenumber: 198430
    functionLinenumberEnd: 198436
    functionName: sqlite3session_patchset_strm
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sessionGenerateChangeset
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3session_patchset_strm(\n  sqlite3_session *pSession,\n
      \ int (*xOutput)(void *pOut, const void *pData, int nData),\n  void *pOut\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sessionGenerateChangeset
      Src: /src/nss/lib/sqlite/sqlite3.c:198450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pSession
    - pnPatchset
    - ppPatchset
    argTypes:
    - sqlite3_session*
    - int*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198451
      start: 198445
    functionDepth: 30
    functionLinenumber: 198445
    functionLinenumberEnd: 198451
    functionName: sqlite3session_patchset
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sessionGenerateChangeset
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3session_patchset(\n  sqlite3_session *pSession,
      \     /* Session object */\n  int *pnPatchset,                /* OUT: Size of
      buffer at *ppChangeset */\n  void **ppPatchset               /* OUT: Buffer
      containing changeset */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:198458,1
    - Dst: sqlite3_db_mutex
      Src: /src/nss/lib/sqlite/sqlite3.c:198458,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:198463,1
    - Dst: sqlite3_db_mutex
      Src: /src/nss/lib/sqlite/sqlite3.c:198463,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - pSession
    - bEnable
    argTypes:
    - sqlite3_session*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198465
      start: 198456
    functionDepth: 1
    functionLinenumber: 198456
    functionLinenumberEnd: 198465
    functionName: sqlite3session_enable
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3_mutex_leave
    - sqlite3_db_mutex
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3session_enable(sqlite3_session *pSession, int bEnable)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:198472,1
    - Dst: sqlite3_db_mutex
      Src: /src/nss/lib/sqlite/sqlite3.c:198472,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:198477,1
    - Dst: sqlite3_db_mutex
      Src: /src/nss/lib/sqlite/sqlite3.c:198477,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - pSession
    - bIndirect
    argTypes:
    - sqlite3_session*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198479
      start: 198470
    functionDepth: 1
    functionLinenumber: 198470
    functionLinenumberEnd: 198479
    functionName: sqlite3session_indirect
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3_mutex_leave
    - sqlite3_db_mutex
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3session_indirect(sqlite3_session *pSession, int bIndirect)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:198489,1
    - Dst: sqlite3_db_mutex
      Src: /src/nss/lib/sqlite/sqlite3.c:198489,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:198493,1
    - Dst: sqlite3_db_mutex
      Src: /src/nss/lib/sqlite/sqlite3.c:198493,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - pSession
    argTypes:
    - sqlite3_session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198496
      start: 198485
    functionDepth: 1
    functionLinenumber: 198485
    functionLinenumberEnd: 198496
    functionName: sqlite3session_isempty
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - sqlite3_mutex_leave
    - sqlite3_db_mutex
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3session_isempty(sqlite3_session *pSession)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:198512,1
    - Dst: sqlite3_malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:198519,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:198521,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 5
    argNames:
    - pp
    - pIn
    - nChangeset
    - pChangeset
    - bInvert
    argTypes:
    - sqlite3_changeset_iter**
    - void*
    - int
    - void*
    - int
    assertStmts:
    - condition: ( xInput==0 || (pChangeset==0 && nChangeset==0) )
      pos:
        line_end: 198511
        line_start: 198511
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 198532
      start: 198501
    functionDepth: 6
    functionLinenumber: 198501
    functionLinenumberEnd: 198532
    functionName: sessionChangesetStart
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_malloc
    - memset
    linkageType: ''
    returnType: int
    signature: "int sessionChangesetStart(\n  sqlite3_changeset_iter **pp,    /* OUT:
      Changeset iterator handle */\n  int (*xInput)(void *pIn, void *pData, int *pnData),\n
      \ void *pIn,\n  int nChangeset,                 /* Size of buffer pChangeset
      in bytes */\n  void *pChangeset,               /* Pointer to buffer containing
      changeset */\n  int bInvert                     /* True to invert changeset
      */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sessionChangesetStart
      Src: /src/nss/lib/sqlite/sqlite3.c:198542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pp
    - nChangeset
    - pChangeset
    argTypes:
    - sqlite3_changeset_iter**
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198543
      start: 198537
    functionDepth: 7
    functionLinenumber: 198537
    functionLinenumberEnd: 198543
    functionName: sqlite3changeset_start
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sessionChangesetStart
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3changeset_start(\n  sqlite3_changeset_iter **pp,
      \   /* OUT: Changeset iterator handle */\n  int nChangeset,                 /*
      Size of buffer pChangeset in bytes */\n  void *pChangeset                /*
      Pointer to buffer containing changeset */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sessionChangesetStart
      Src: /src/nss/lib/sqlite/sqlite3.c:198551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pp
    - nChangeset
    - pChangeset
    - flags
    argTypes:
    - sqlite3_changeset_iter**
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198552
      start: 198544
    functionDepth: 7
    functionLinenumber: 198544
    functionLinenumberEnd: 198552
    functionName: sqlite3changeset_start_v2
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sessionChangesetStart
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3changeset_start_v2(\n  sqlite3_changeset_iter **pp,
      \   /* OUT: Changeset iterator handle */\n  int nChangeset,                 /*
      Size of buffer pChangeset in bytes */\n  void *pChangeset,               /*
      Pointer to buffer containing changeset */\n  int flags\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sessionChangesetStart
      Src: /src/nss/lib/sqlite/sqlite3.c:198562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pp
    - pIn
    argTypes:
    - sqlite3_changeset_iter**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198563
      start: 198557
    functionDepth: 7
    functionLinenumber: 198557
    functionLinenumberEnd: 198563
    functionName: sqlite3changeset_start_strm
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sessionChangesetStart
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3changeset_start_strm(\n  sqlite3_changeset_iter
      **pp,    /* OUT: Changeset iterator handle */\n  int (*xInput)(void *pIn, void
      *pData, int *pnData),\n  void *pIn\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sessionChangesetStart
      Src: /src/nss/lib/sqlite/sqlite3.c:198571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pp
    - pIn
    - flags
    argTypes:
    - sqlite3_changeset_iter**
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198572
      start: 198564
    functionDepth: 7
    functionLinenumber: 198564
    functionLinenumberEnd: 198572
    functionName: sqlite3changeset_start_v2_strm
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sessionChangesetStart
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3changeset_start_v2_strm(\n  sqlite3_changeset_iter
      **pp,    /* OUT: Changeset iterator handle */\n  int (*xInput)(void *pIn, void
      *pData, int *pnData),\n  void *pIn,\n  int flags\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:198581,1
    - Dst: memmove
      Src: /src/nss/lib/sqlite/sqlite3.c:198583,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - pIn
    argTypes:
    - SessionInput*
    assertStmts:
    - condition: ( nMove>=0 )
      pos:
        line_end: 198580
        line_start: 198580
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 198589
      start: 198578
    functionDepth: 1
    functionLinenumber: 198578
    functionLinenumberEnd: 198589
    functionName: sessionDiscardData
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - memmove
    linkageType: ''
    returnType: void
    signature: void sessionDiscardData(SessionInput *pIn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sessionDiscardData
      Src: /src/nss/lib/sqlite/sqlite3.c:198604,1
    - Dst: sessionBufferGrow
      Src: /src/nss/lib/sqlite/sqlite3.c:198605,1
    - Dst: SessionInput*::xInput
      Src: /src/nss/lib/sqlite/sqlite3.c:198606,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - pIn
    - nByte
    argTypes:
    - SessionInput*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198619
      start: 198598
    functionDepth: 8
    functionLinenumber: 198598
    functionLinenumberEnd: 198619
    functionName: sessionInputBuffer
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sessionDiscardData
    - sessionBufferGrow
    - SessionInput*::xInput
    linkageType: ''
    returnType: int
    signature: int sessionInputBuffer(SessionInput *pIn, int nByte)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sessionVarintGet
      Src: /src/nss/lib/sqlite/sqlite3.c:198636,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - ppRec
    - nCol
    argTypes:
    - u8**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198644
      start: 198626
    functionDepth: 2
    functionLinenumber: 198626
    functionLinenumberEnd: 198644
    functionName: sessionSkipRecord
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sessionVarintGet
    linkageType: ''
    returnType: void
    signature: "void sessionSkipRecord(\n  u8 **ppRec,                     /* IN/OUT:
      Record pointer */\n  int nCol                        /* Number of values in
      record */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:198662,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:198664,1
    - Dst: sqlite3ValueSetStr
      Src: /src/nss/lib/sqlite/sqlite3.c:198665,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - pVal
    - aData
    - nData
    - enc
    argTypes:
    - sqlite3_value*
    - u8*
    - int
    - u8
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198667
      start: 198652
    functionDepth: 13
    functionLinenumber: 198652
    functionLinenumberEnd: 198667
    functionName: sessionValueSetStr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3ValueSetStr
    - memcpy
    - sqlite3_malloc64
    linkageType: ''
    returnType: int
    signature: "int sessionValueSetStr(\n  sqlite3_value *pVal,            /* Set
      the value of this object */\n  u8 *aData,                      /* Buffer containing
      string or blob data */\n  int nData,                      /* Size of buffer
      aData[] in bytes */\n  u8 enc                          /* String encoding (0
      for blobs) */\n)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: sessionInputBuffer
      Src: /src/nss/lib/sqlite/sqlite3.c:198705,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:198711,1
    - Dst: sqlite3ValueNew
      Src: /src/nss/lib/sqlite/sqlite3.c:198713,1
    - Dst: sessionVarintGet
      Src: /src/nss/lib/sqlite/sqlite3.c:198723,1
    - Dst: sessionInputBuffer
      Src: /src/nss/lib/sqlite/sqlite3.c:198724,1
    - Dst: sessionValueSetStr
      Src: /src/nss/lib/sqlite/sqlite3.c:198730,1
    - Dst: sessionGetI64
      Src: /src/nss/lib/sqlite/sqlite3.c:198736,1
    - Dst: sqlite3VdbeMemSetInt64
      Src: /src/nss/lib/sqlite/sqlite3.c:198738,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:198741,1
    - Dst: sqlite3VdbeMemSetDouble
      Src: /src/nss/lib/sqlite/sqlite3.c:198742,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 43
    argCount: 4
    argNames:
    - pIn
    - nCol
    - abPK
    - apOut
    argTypes:
    - SessionInput*
    - int
    - u8*
    - sqlite3_value**
    assertStmts:
    - condition: ( apOut[i]==0 )
      pos:
        line_end: 198710
        line_start: 198710
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 198750
      start: 198693
    functionDepth: 14
    functionLinenumber: 198693
    functionLinenumberEnd: 198750
    functionName: sessionReadRecord
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - sessionGetI64
    - sessionValueSetStr
    - assert
    - sqlite3VdbeMemSetInt64
    - sqlite3VdbeMemSetDouble
    - sessionInputBuffer
    - sessionVarintGet
    - sqlite3ValueNew
    linkageType: ''
    returnType: int
    signature: "int sessionReadRecord(\n  SessionInput *pIn,              /* Input
      data */\n  int nCol,                       /* Number of values in record */\n
      \ u8 *abPK,                       /* Array of primary key flags, or NULL */\n
      \ sqlite3_value **apOut           /* Write values to this array */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sessionInputBuffer
      Src: /src/nss/lib/sqlite/sqlite3.c:198770,1
    - Dst: sessionVarintGet
      Src: /src/nss/lib/sqlite/sqlite3.c:198772,1
    - Dst: sessionInputBuffer
      Src: /src/nss/lib/sqlite/sqlite3.c:198783,1
    - Dst: sessionInputBuffer
      Src: /src/nss/lib/sqlite/sqlite3.c:198793,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - pIn
    - pnByte
    argTypes:
    - SessionInput*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198797
      start: 198765
    functionDepth: 9
    functionLinenumber: 198765
    functionLinenumberEnd: 198797
    functionName: sessionChangesetBufferTblhdr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sessionVarintGet
    - sessionInputBuffer
    linkageType: ''
    returnType: int
    signature: int sessionChangesetBufferTblhdr(SessionInput *pIn, int *pnByte)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sessionInputBuffer
      Src: /src/nss/lib/sqlite/sqlite3.c:198818,1
    - Dst: sessionVarintGet
      Src: /src/nss/lib/sqlite/sqlite3.c:198823,1
    - Dst: sessionInputBuffer
      Src: /src/nss/lib/sqlite/sqlite3.c:198825,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 3
    argNames:
    - pIn
    - nCol
    - pnByte
    argTypes:
    - SessionInput*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198833
      start: 198808
    functionDepth: 9
    functionLinenumber: 198808
    functionLinenumberEnd: 198833
    functionName: sessionChangesetBufferRecord
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sessionVarintGet
    - sessionInputBuffer
    linkageType: ''
    returnType: int
    signature: "int sessionChangesetBufferRecord(\n  SessionInput *pIn,              /*
      Input data */\n  int nCol,                       /* Number of columns in record
      */\n  int *pnByte                     /* OUT: Size of record in bytes */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:198855,1
    - Dst: sessionChangesetBufferTblhdr
      Src: /src/nss/lib/sqlite/sqlite3.c:198857,1
    - Dst: sessionVarintGet
      Src: /src/nss/lib/sqlite/sqlite3.c:198861,1
    - Dst: sessionBufferGrow
      Src: /src/nss/lib/sqlite/sqlite3.c:198867,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:198875,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:198876,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_changeset_iter*
    assertStmts:
    - condition: ( p->rc==SQLITE_OK )
      pos:
        line_end: 198854
        line_start: 198854
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 198884
      start: 198852
    functionDepth: 10
    functionLinenumber: 198852
    functionLinenumberEnd: 198884
    functionName: sessionChangesetReadTblhdr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - sessionBufferGrow
    - assert
    - memset
    - sessionVarintGet
    - sessionChangesetBufferTblhdr
    linkageType: ''
    returnType: int
    signature: int sessionChangesetReadTblhdr(sqlite3_changeset_iter *p)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:198911,1
    - Dst: sqlite3ValueFree
      Src: /src/nss/lib/sqlite/sqlite3.c:198919,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:198921,1
    - Dst: sessionInputBuffer
      Src: /src/nss/lib/sqlite/sqlite3.c:198928,1
    - Dst: sessionDiscardData
      Src: /src/nss/lib/sqlite/sqlite3.c:198936,1
    - Dst: sessionChangesetReadTblhdr
      Src: /src/nss/lib/sqlite/sqlite3.c:198943,1
    - Dst: sessionInputBuffer
      Src: /src/nss/lib/sqlite/sqlite3.c:198944,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:198953,1
    - Dst: sessionChangesetBufferRecord
      Src: /src/nss/lib/sqlite/sqlite3.c:198973,1
    - Dst: sessionReadRecord
      Src: /src/nss/lib/sqlite/sqlite3.c:198984,1
    - Dst: sessionReadRecord
      Src: /src/nss/lib/sqlite/sqlite3.c:198990,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:199000,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:199002,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 89
    argCount: 4
    argNames:
    - p
    - paRec
    - pnRec
    - pbNew
    argTypes:
    - sqlite3_changeset_iter*
    - u8**
    - int*
    - int*
    assertStmts:
    - condition: ( (paRec==0 && pnRec==0) || (paRec && pnRec) )
      pos:
        line_end: 198910
        line_start: 198910
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->in.iNext==1 || p->zTab )
      pos:
        line_end: 198952
        line_start: 198952
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->apValue[i]==0 )
      pos:
        line_end: 199001
        line_start: 199001
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->bPatchset==0 || p->apValue[i]==0 )
      pos:
        line_end: 198999
        line_start: 198999
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 199015
      start: 198902
    functionDepth: 15
    functionLinenumber: 198902
    functionLinenumberEnd: 199015
    functionName: sessionChangesetNext
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sessionChangesetReadTblhdr
    - sessionReadRecord
    - sessionChangesetBufferRecord
    - assert
    - memset
    - sqlite3ValueFree
    - sessionInputBuffer
    - sessionDiscardData
    linkageType: ''
    returnType: int
    signature: "int sessionChangesetNext(\n  sqlite3_changeset_iter *p,      /* Changeset
      iterator */\n  u8 **paRec,                     /* If non-NULL, store record
      pointer here */\n  int *pnRec,                     /* If non-NULL, store size
      of record here */\n  int *pbNew                      /* If non-NULL, true if
      new table */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sessionChangesetNext
      Src: /src/nss/lib/sqlite/sqlite3.c:199026,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_changeset_iter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199027
      start: 199025
    functionDepth: 16
    functionLinenumber: 199025
    functionLinenumberEnd: 199027
    functionName: sqlite3changeset_next
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sessionChangesetNext
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3changeset_next(sqlite3_changeset_iter *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - pIter
    - pzTab
    - pnCol
    - pOp
    - pbIndirect
    argTypes:
    - sqlite3_changeset_iter*
    - char**
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199046
      start: 199034
    functionDepth: 0
    functionLinenumber: 199034
    functionLinenumberEnd: 199046
    functionName: sqlite3changeset_op
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3changeset_op(\n  sqlite3_changeset_iter *pIter,
      \ /* Iterator handle */\n  const char **pzTab,             /* OUT: Pointer to
      table name */\n  int *pnCol,                     /* OUT: Number of columns in
      table */\n  int *pOp,                       /* OUT: SQLITE_INSERT, DELETE or
      UPDATE */\n  int *pbIndirect                 /* OUT: True if change is indirect
      */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - pIter
    - pabPK
    - pnCol
    argTypes:
    - sqlite3_changeset_iter*
    - unsigned char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199062
      start: 199054
    functionDepth: 0
    functionLinenumber: 199054
    functionLinenumberEnd: 199062
    functionName: sqlite3changeset_pk
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3changeset_pk(\n  sqlite3_changeset_iter *pIter,
      \ /* Iterator object */\n  unsigned char **pabPK,          /* OUT: Array of
      boolean - true for PK cols */\n  int *pnCol                      /* OUT: Number
      of entries in output array */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - pIter
    - iVal
    - ppValue
    argTypes:
    - sqlite3_changeset_iter*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199090
      start: 199077
    functionDepth: 0
    functionLinenumber: 199077
    functionLinenumberEnd: 199090
    functionName: sqlite3changeset_old
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3changeset_old(\n  sqlite3_changeset_iter *pIter,
      \ /* Changeset iterator */\n  int iVal,                       /* Index of old.*
      value to retrieve */\n  sqlite3_value **ppValue         /* OUT: Old value (or
      NULL pointer) */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - pIter
    - iVal
    - ppValue
    argTypes:
    - sqlite3_changeset_iter*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199118
      start: 199105
    functionDepth: 0
    functionLinenumber: 199105
    functionLinenumberEnd: 199118
    functionName: sqlite3changeset_new
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3changeset_new(\n  sqlite3_changeset_iter *pIter,
      \ /* Changeset iterator */\n  int iVal,                       /* Index of new.*
      value to retrieve */\n  sqlite3_value **ppValue         /* OUT: New value (or
      NULL pointer) */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pIter
    - ','
    - iVal
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199126
      start: 199125
    functionDepth: 0
    functionLinenumber: 199125
    functionLinenumberEnd: 199126
    functionName: sessionChangesetNew
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sessionChangesetNew(pIter, iVal)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pIter
    - ','
    - iVal
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199127
      start: 199126
    functionDepth: 0
    functionLinenumber: 199126
    functionLinenumberEnd: 199127
    functionName: sessionChangesetOld
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sessionChangesetOld(pIter, iVal)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_column_value
      Src: /src/nss/lib/sqlite/sqlite3.c:199150,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - pIter
    - iVal
    - ppValue
    argTypes:
    - sqlite3_changeset_iter*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199152
      start: 199139
    functionDepth: 0
    functionLinenumber: 199139
    functionLinenumberEnd: 199152
    functionName: sqlite3changeset_conflict
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_column_value
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3changeset_conflict(\n  sqlite3_changeset_iter *pIter,
      \ /* Changeset iterator */\n  int iVal,                       /* Index of conflict
      record value to fetch */\n  sqlite3_value **ppValue         /* OUT: Value from
      conflicting row */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - pIter
    - pnOut
    argTypes:
    - sqlite3_changeset_iter*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199171
      start: 199162
    functionDepth: 0
    functionLinenumber: 199162
    functionLinenumberEnd: 199171
    functionName: sqlite3changeset_fk_conflicts
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3changeset_fk_conflicts(\n  sqlite3_changeset_iter
      *pIter,  /* Changeset iterator */\n  int *pnOut                      /* OUT:
      Number of FK violations */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3ValueFree
      Src: /src/nss/lib/sqlite/sqlite3.c:199186,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:199188,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:199189,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:199190,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_changeset_iter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199193
      start: 199180
    functionDepth: 10
    functionLinenumber: 199180
    functionLinenumberEnd: 199193
    functionName: sqlite3changeset_finalize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    - sqlite3ValueFree
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3changeset_finalize(sqlite3_changeset_iter *p)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:199210,1
    - Dst: sessionInputBuffer
      Src: /src/nss/lib/sqlite/sqlite3.c:199222,1
    - Dst: sessionChangesetBufferTblhdr
      Src: /src/nss/lib/sqlite/sqlite3.c:199238,1
    - Dst: sessionVarintGet
      Src: /src/nss/lib/sqlite/sqlite3.c:199241,1
    - Dst: sessionAppendBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:199243,1
    - Dst: sessionAppendByte
      Src: /src/nss/lib/sqlite/sqlite3.c:199244,1
    - Dst: sessionAppendBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:199245,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:199249,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:199261,1
    - Dst: sessionChangesetBufferRecord
      Src: /src/nss/lib/sqlite/sqlite3.c:199262,1
    - Dst: sessionAppendByte
      Src: /src/nss/lib/sqlite/sqlite3.c:199263,1
    - Dst: sessionAppendByte
      Src: /src/nss/lib/sqlite/sqlite3.c:199264,1
    - Dst: sessionAppendBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:199265,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:199275,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:199280,1
    - Dst: sessionAppendByte
      Src: /src/nss/lib/sqlite/sqlite3.c:199284,1
    - Dst: sessionAppendByte
      Src: /src/nss/lib/sqlite/sqlite3.c:199285,1
    - Dst: sessionReadRecord
      Src: /src/nss/lib/sqlite/sqlite3.c:199289,1
    - Dst: sessionReadRecord
      Src: /src/nss/lib/sqlite/sqlite3.c:199291,1
    - Dst: sessionAppendValue
      Src: /src/nss/lib/sqlite/sqlite3.c:199299,1
    - Dst: sessionAppendValue
      Src: /src/nss/lib/sqlite/sqlite3.c:199307,1
    - Dst: sqlite3ValueFree
      Src: /src/nss/lib/sqlite/sqlite3.c:199311,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:199313,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:199326,1
    - Dst: xOutput
      Src: /src/nss/lib/sqlite/sqlite3.c:199328,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:199334,1
    - Dst: xOutput
      Src: /src/nss/lib/sqlite/sqlite3.c:199340,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:199344,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:199345,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:199346,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 110
    argCount: 4
    argNames:
    - pInput
    - pOut
    - pnInverted
    - ppInverted
    argTypes:
    - SessionInput*
    - void*
    - int*
    - void**
    assertStmts:
    - condition: ( rc==SQLITE_OK )
      pos:
        line_end: 199333
        line_start: 199333
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc==SQLITE_OK )
      pos:
        line_end: 199325
        line_start: 199325
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc==SQLITE_OK )
      pos:
        line_end: 199260
        line_start: 199260
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 199348
      start: 199195
    functionDepth: 18
    functionLinenumber: 199195
    functionLinenumberEnd: 199348
    functionName: sessionChangesetInvert
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_malloc64
    - sessionAppendValue
    - sessionAppendBlob
    - sessionReadRecord
    - sessionChangesetBufferRecord
    - memset
    - assert
    - sqlite3ValueFree
    - sessionInputBuffer
    - sessionVarintGet
    - sessionAppendByte
    - sqlite3_free
    - sessionChangesetBufferTblhdr
    - xOutput
    linkageType: ''
    returnType: int
    signature: "int sessionChangesetInvert(\n  SessionInput *pInput,           /*
      Input changeset */\n  int (*xOutput)(void *pOut, const void *pData, int nData),\n
      \ void *pOut,\n  int *pnInverted,                /* OUT: Number of bytes in
      output changeset */\n  void **ppInverted               /* OUT: Inverse of pChangeset
      */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:199363,1
    - Dst: sessionChangesetInvert
      Src: /src/nss/lib/sqlite/sqlite3.c:199367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - nChangeset
    - pChangeset
    - pnInverted
    - ppInverted
    argTypes:
    - int
    - void*
    - int*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199368
      start: 199354
    functionDepth: 19
    functionLinenumber: 199354
    functionLinenumberEnd: 199368
    functionName: sqlite3changeset_invert
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sessionChangesetInvert
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3changeset_invert(\n  int nChangeset,                 /*
      Number of bytes in input */\n  const void *pChangeset,         /* Input changeset
      */\n  int *pnInverted,                /* OUT: Number of bytes in output changeset
      */\n  void **ppInverted               /* OUT: Inverse of pChangeset */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:199383,1
    - Dst: sessionChangesetInvert
      Src: /src/nss/lib/sqlite/sqlite3.c:199387,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:199388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - pIn
    - pOut
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199390
      start: 199373
    functionDepth: 19
    functionLinenumber: 199373
    functionLinenumberEnd: 199390
    functionName: sqlite3changeset_invert_strm
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sessionChangesetInvert
    - sqlite3_free
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3changeset_invert_strm(\n  int (*xInput)(void *pIn,
      void *pData, int *pnData),\n  void *pIn,\n  int (*xOutput)(void *pOut, const
      void *pData, int nData),\n  void *pOut\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sessionAppendStr
      Src: /src/nss/lib/sqlite/sqlite3.c:199438,1
    - Dst: sessionAppendIdent
      Src: /src/nss/lib/sqlite/sqlite3.c:199439,1
    - Dst: sessionAppendStr
      Src: /src/nss/lib/sqlite/sqlite3.c:199440,1
    - Dst: sessionAppendStr
      Src: /src/nss/lib/sqlite/sqlite3.c:199445,1
    - Dst: sessionAppendIdent
      Src: /src/nss/lib/sqlite/sqlite3.c:199446,1
    - Dst: sessionAppendStr
      Src: /src/nss/lib/sqlite/sqlite3.c:199447,1
    - Dst: sessionAppendInteger
      Src: /src/nss/lib/sqlite/sqlite3.c:199448,1
    - Dst: sessionAppendStr
      Src: /src/nss/lib/sqlite/sqlite3.c:199454,1
    - Dst: sessionAppendInteger
      Src: /src/nss/lib/sqlite/sqlite3.c:199455,1
    - Dst: sessionAppendStr
      Src: /src/nss/lib/sqlite/sqlite3.c:199456,1
    - Dst: sessionAppendStr
      Src: /src/nss/lib/sqlite/sqlite3.c:199461,1
    - Dst: sessionAppendIdent
      Src: /src/nss/lib/sqlite/sqlite3.c:199462,1
    - Dst: sessionAppendStr
      Src: /src/nss/lib/sqlite/sqlite3.c:199463,1
    - Dst: sessionAppendInteger
      Src: /src/nss/lib/sqlite/sqlite3.c:199464,1
    - Dst: sessionAppendStr
      Src: /src/nss/lib/sqlite/sqlite3.c:199468,1
    - Dst: sqlite3_prepare_v2
      Src: /src/nss/lib/sqlite/sqlite3.c:199472,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:199474,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 3
    argNames:
    - db
    - zTab
    - p
    argTypes:
    - sqlite3*
    - char*
    - SessionApplyCtx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199477
      start: 199427
    functionDepth: 28
    functionLinenumber: 199427
    functionLinenumberEnd: 199477
    functionName: sessionDeleteRow
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sessionAppendInteger
    - sessionAppendIdent
    - sqlite3_prepare_v2
    - sessionAppendStr
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int sessionDeleteRow(\n  sqlite3 *db,                    /* Database
      handle */\n  const char *zTab,               /* Table name */\n  SessionApplyCtx
      *p              /* Session changeset-apply context */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sessionAppendStr
      Src: /src/nss/lib/sqlite/sqlite3.c:199521,1
    - Dst: sessionAppendIdent
      Src: /src/nss/lib/sqlite/sqlite3.c:199522,1
    - Dst: sessionAppendStr
      Src: /src/nss/lib/sqlite/sqlite3.c:199523,1
    - Dst: sessionAppendStr
      Src: /src/nss/lib/sqlite/sqlite3.c:199527,1
    - Dst: sessionAppendIdent
      Src: /src/nss/lib/sqlite/sqlite3.c:199528,1
    - Dst: sessionAppendStr
      Src: /src/nss/lib/sqlite/sqlite3.c:199529,1
    - Dst: sessionAppendInteger
      Src: /src/nss/lib/sqlite/sqlite3.c:199530,1
    - Dst: sessionAppendStr
      Src: /src/nss/lib/sqlite/sqlite3.c:199531,1
    - Dst: sessionAppendInteger
      Src: /src/nss/lib/sqlite/sqlite3.c:199532,1
    - Dst: sessionAppendStr
      Src: /src/nss/lib/sqlite/sqlite3.c:199533,1
    - Dst: sessionAppendIdent
      Src: /src/nss/lib/sqlite/sqlite3.c:199534,1
    - Dst: sessionAppendStr
      Src: /src/nss/lib/sqlite/sqlite3.c:199535,1
    - Dst: sessionAppendStr
      Src: /src/nss/lib/sqlite/sqlite3.c:199540,1
    - Dst: sessionAppendIdent
      Src: /src/nss/lib/sqlite/sqlite3.c:199543,1
    - Dst: sessionAppendStr
      Src: /src/nss/lib/sqlite/sqlite3.c:199544,1
    - Dst: sessionAppendInteger
      Src: /src/nss/lib/sqlite/sqlite3.c:199545,1
    - Dst: sessionAppendStr
      Src: /src/nss/lib/sqlite/sqlite3.c:199546,1
    - Dst: sessionAppendStr
      Src: /src/nss/lib/sqlite/sqlite3.c:199551,1
    - Dst: sessionAppendInteger
      Src: /src/nss/lib/sqlite/sqlite3.c:199552,1
    - Dst: sessionAppendStr
      Src: /src/nss/lib/sqlite/sqlite3.c:199553,1
    - Dst: sessionAppendStr
      Src: /src/nss/lib/sqlite/sqlite3.c:199556,1
    - Dst: sessionAppendInteger
      Src: /src/nss/lib/sqlite/sqlite3.c:199557,1
    - Dst: sessionAppendStr
      Src: /src/nss/lib/sqlite/sqlite3.c:199558,1
    - Dst: sessionAppendIdent
      Src: /src/nss/lib/sqlite/sqlite3.c:199559,1
    - Dst: sessionAppendStr
      Src: /src/nss/lib/sqlite/sqlite3.c:199560,1
    - Dst: sessionAppendInteger
      Src: /src/nss/lib/sqlite/sqlite3.c:199561,1
    - Dst: sessionAppendStr
      Src: /src/nss/lib/sqlite/sqlite3.c:199562,1
    - Dst: sessionAppendStr
      Src: /src/nss/lib/sqlite/sqlite3.c:199565,1
    - Dst: sqlite3_prepare_v2
      Src: /src/nss/lib/sqlite/sqlite3.c:199568,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:199570,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 45
    argCount: 3
    argNames:
    - db
    - zTab
    - p
    argTypes:
    - sqlite3*
    - char*
    - SessionApplyCtx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199573
      start: 199510
    functionDepth: 28
    functionLinenumber: 199510
    functionLinenumberEnd: 199573
    functionName: sessionUpdateRow
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sessionAppendInteger
    - sessionAppendIdent
    - sqlite3_prepare_v2
    - sessionAppendStr
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int sessionUpdateRow(\n  sqlite3 *db,                    /* Database
      handle */\n  const char *zTab,               /* Table name */\n  SessionApplyCtx
      *p              /* Session changeset-apply context */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sessionSelectStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:199594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - db
    - zTab
    - p
    argTypes:
    - sqlite3*
    - char*
    - SessionApplyCtx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199596
      start: 199589
    functionDepth: 29
    functionLinenumber: 199589
    functionLinenumberEnd: 199596
    functionName: sessionSelectRow
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sessionSelectStmt
    linkageType: ''
    returnType: int
    signature: "int sessionSelectRow(\n  sqlite3 *db,                    /* Database
      handle */\n  const char *zTab,               /* Table name */\n  SessionApplyCtx
      *p              /* Session changeset-apply context */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sessionAppendStr
      Src: /src/nss/lib/sqlite/sqlite3.c:199616,1
    - Dst: sessionAppendIdent
      Src: /src/nss/lib/sqlite/sqlite3.c:199617,1
    - Dst: sessionAppendStr
      Src: /src/nss/lib/sqlite/sqlite3.c:199618,1
    - Dst: sessionAppendStr
      Src: /src/nss/lib/sqlite/sqlite3.c:199620,1
    - Dst: sessionAppendIdent
      Src: /src/nss/lib/sqlite/sqlite3.c:199621,1
    - Dst: sessionAppendStr
      Src: /src/nss/lib/sqlite/sqlite3.c:199624,1
    - Dst: sessionAppendStr
      Src: /src/nss/lib/sqlite/sqlite3.c:199626,1
    - Dst: sessionAppendStr
      Src: /src/nss/lib/sqlite/sqlite3.c:199628,1
    - Dst: sqlite3_prepare_v2
      Src: /src/nss/lib/sqlite/sqlite3.c:199631,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:199633,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - db
    - zTab
    - p
    argTypes:
    - sqlite3*
    - char*
    - SessionApplyCtx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199635
      start: 199607
    functionDepth: 28
    functionLinenumber: 199607
    functionLinenumberEnd: 199635
    functionName: sessionInsertRow
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sessionAppendIdent
    - sqlite3_prepare_v2
    - sqlite3_free
    - sessionAppendStr
    linkageType: ''
    returnType: int
    signature: "int sessionInsertRow(\n  sqlite3 *db,                    /* Database
      handle */\n  const char *zTab,               /* Table name */\n  SessionApplyCtx
      *p              /* Session changeset-apply context */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_prepare_v2
      Src: /src/nss/lib/sqlite/sqlite3.c:199638,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - db
    - pp
    - zSql
    argTypes:
    - sqlite3*
    - sqlite3_stmt**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199639
      start: 199637
    functionDepth: 28
    functionLinenumber: 199637
    functionLinenumberEnd: 199639
    functionName: sessionPrepare
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_prepare_v2
    linkageType: ''
    returnType: int
    signature: int sessionPrepare(sqlite3 *db, sqlite3_stmt **pp, const char *zSql)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sessionSelectRow
      Src: /src/nss/lib/sqlite/sqlite3.c:199648,1
    - Dst: sessionPrepare
      Src: /src/nss/lib/sqlite/sqlite3.c:199650,1
    - Dst: sessionPrepare
      Src: /src/nss/lib/sqlite/sqlite3.c:199657,1
    - Dst: sessionPrepare
      Src: /src/nss/lib/sqlite/sqlite3.c:199668,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - db
    - p
    argTypes:
    - sqlite3*
    - SessionApplyCtx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199675
      start: 199647
    functionDepth: 30
    functionLinenumber: 199647
    functionLinenumberEnd: 199675
    functionName: sessionStat1Sql
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sessionSelectRow
    - sessionPrepare
    linkageType: ''
    returnType: int
    signature: int sessionStat1Sql(sqlite3 *db, SessionApplyCtx *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:199686,1
    - Dst: sqlite3_bind_value
      Src: /src/nss/lib/sqlite/sqlite3.c:199697,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 3
    argNames:
    - pStmt
    - i
    - pVal
    argTypes:
    - sqlite3_stmt*
    - int
    - sqlite3_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199698
      start: 199681
    functionDepth: 16
    functionLinenumber: 199681
    functionLinenumberEnd: 199698
    functionName: sessionBindValue
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_value_type
    - sqlite3_bind_value
    linkageType: ''
    returnType: int
    signature: "int sessionBindValue(\n  sqlite3_stmt *pStmt,            /* Statement
      to bind value to */\n  int i,                          /* Parameter number to
      bind to */\n  sqlite3_value *pVal             /* Value to bind */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:199728,1
    - Dst: xValue
      Src: /src/nss/lib/sqlite/sqlite3.c:199733,1
    - Dst: sessionBindValue
      Src: /src/nss/lib/sqlite/sqlite3.c:199739,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 4
    argNames:
    - pIter
    - nCol
    - abPK
    - pStmt
    argTypes:
    - sqlite3_changeset_iter*
    - int
    - u8*
    - sqlite3_stmt*
    assertStmts:
    - condition: ( xValue==sqlite3changeset_old || xValue==sqlite3changeset_new )
      pos:
        line_end: 199727
        line_start: 199727
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 199744
      start: 199714
    functionDepth: 17
    functionLinenumber: 199714
    functionLinenumberEnd: 199744
    functionName: sessionBindRow
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - xValue
    - sessionBindValue
    linkageType: ''
    returnType: int
    signature: "int sessionBindRow(\n  sqlite3_changeset_iter *pIter,  /* Iterator
      to read values from */\n  int(*xValue)(sqlite3_changeset_iter *, int, sqlite3_value
      **),\n  int nCol,                       /* Number of columns */\n  u8 *abPK,
      \                      /* If not NULL, bind only if true */\n  sqlite3_stmt
      *pStmt             /* Bind values to this statement */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3changeset_op
      Src: /src/nss/lib/sqlite/sqlite3.c:199774,1
    - Dst: sessionBindRow
      Src: /src/nss/lib/sqlite/sqlite3.c:199775,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:199781,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:199782,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - db
    - pIter
    - abPK
    - pSelect
    argTypes:
    - sqlite3*
    - sqlite3_changeset_iter*
    - u8*
    - sqlite3_stmt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199786
      start: 199763
    functionDepth: 27
    functionLinenumber: 199763
    functionLinenumberEnd: 199786
    functionName: sessionSeekToRow
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3changeset_op
    - sqlite3_step
    - sqlite3_reset
    - sessionBindRow
    linkageType: ''
    returnType: int
    signature: "int sessionSeekToRow(\n  sqlite3 *db,                    /* Database
      handle */\n  sqlite3_changeset_iter *pIter,  /* Changeset iterator */\n  u8
      *abPK,                       /* Primary key flags array */\n  sqlite3_stmt *pSelect
      \          /* SELECT statement from sessionSelectRow() */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sessionAppendByte
      Src: /src/nss/lib/sqlite/sqlite3.c:199810,1
    - Dst: sessionAppendVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:199811,1
    - Dst: sessionAppendBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:199812,1
    - Dst: sessionAppendBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:199813,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:199813,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:199817,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:199818,1
    - Dst: sessionAppendByte
      Src: /src/nss/lib/sqlite/sqlite3.c:199820,1
    - Dst: sessionAppendByte
      Src: /src/nss/lib/sqlite/sqlite3.c:199823,1
    - Dst: sqlite3changeset_old
      Src: /src/nss/lib/sqlite/sqlite3.c:199827,1
    - Dst: sqlite3changeset_new
      Src: /src/nss/lib/sqlite/sqlite3.c:199829,1
    - Dst: sessionAppendValue
      Src: /src/nss/lib/sqlite/sqlite3.c:199831,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - p
    - eType
    - pIter
    argTypes:
    - SessionApplyCtx*
    - int
    - sqlite3_changeset_iter*
    assertStmts:
    - condition: ( eType==SQLITE_CHANGESET_REPLACE||eType==SQLITE_CHANGESET_OMIT )
      pos:
        line_end: 199816
        line_start: 199816
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( eOp==SQLITE_DELETE || eOp==SQLITE_INSERT || eOp==SQLITE_UPDATE
        )
      pos:
        line_end: 199817
        line_start: 199817
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 199835
      start: 199798
    functionDepth: 18
    functionLinenumber: 199798
    functionLinenumberEnd: 199835
    functionName: sessionRebaseAdd
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3changeset_old
    - sqlite3changeset_new
    - sessionAppendValue
    - sessionAppendBlob
    - sessionAppendVarint
    - assert
    - sessionAppendByte
    - strlen
    linkageType: ''
    returnType: int
    signature: "int sessionRebaseAdd(\n  SessionApplyCtx *p,             /* Apply
      context */\n  int eType,                      /* Conflict resolution (OMIT or
      REPLACE) */\n  sqlite3_changeset_iter *pIter   /* Iterator pointing at current
      change */\n)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3changeset_op
      Src: /src/nss/lib/sqlite/sqlite3.c:199886,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:199888,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:199889,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:199890,1
    - Dst: sessionSeekToRow
      Src: /src/nss/lib/sqlite/sqlite3.c:199894,1
    - Dst: xConflict
      Src: /src/nss/lib/sqlite/sqlite3.c:199902,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:199904,1
    - Dst: sessionAppendBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:199911,1
    - Dst: xConflict
      Src: /src/nss/lib/sqlite/sqlite3.c:199915,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:199923,1
    - Dst: sessionRebaseAdd
      Src: /src/nss/lib/sqlite/sqlite3.c:199939,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 5
    argNames:
    - eType
    - p
    - pIter
    - pCtx
    - pbReplace
    argTypes:
    - int
    - SessionApplyCtx*
    - sqlite3_changeset_iter*
    - void*
    - int*
    assertStmts:
    - condition: ( SQLITE_CHANGESET_DATA+1==SQLITE_CHANGESET_NOTFOUND )
      pos:
        line_end: 199889
        line_start: 199889
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( eType==SQLITE_CHANGESET_CONFLICT || eType==SQLITE_CHANGESET_DATA
        )
      pos:
        line_end: 199887
        line_start: 199887
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( SQLITE_CHANGESET_CONFLICT+1==SQLITE_CHANGESET_CONSTRAINT )
      pos:
        line_end: 199888
        line_start: 199888
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pbReplace )
      pos:
        line_end: 199922
        line_start: 199922
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 199944
      start: 199872
    functionDepth: 28
    functionLinenumber: 199872
    functionLinenumberEnd: 199944
    functionName: sessionConflictHandler
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_reset
    - xConflict
    - sessionAppendBlob
    - assert
    - sqlite3changeset_op
    - sessionSeekToRow
    - sessionRebaseAdd
    linkageType: ''
    returnType: int
    signature: "int sessionConflictHandler(\n  int eType,                      /*
      Either CHANGESET_DATA or CONFLICT */\n  SessionApplyCtx *p,             /* changeset_apply()
      context */\n  sqlite3_changeset_iter *pIter,  /* Changeset iterator */\n  int(*xConflict)(void
      *, int, sqlite3_changeset_iter*),\n  void *pCtx,                     /* First
      argument for conflict handler */\n  int *pbReplace                  /* OUT:
      Set to true if PK row is found */\n)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:199983,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:199984,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:199985,1
    - Dst: sqlite3changeset_op
      Src: /src/nss/lib/sqlite/sqlite3.c:199987,1
    - Dst: sessionBindRow
      Src: /src/nss/lib/sqlite/sqlite3.c:200003,1
    - Dst: sqlite3_bind_parameter_count
      Src: /src/nss/lib/sqlite/sqlite3.c:200004,1
    - Dst: sqlite3_bind_int
      Src: /src/nss/lib/sqlite/sqlite3.c:200005,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:200009,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:200010,1
    - Dst: sqlite3_changes
      Src: /src/nss/lib/sqlite/sqlite3.c:200011,1
    - Dst: sessionConflictHandler
      Src: /src/nss/lib/sqlite/sqlite3.c:200012,1
    - Dst: sessionConflictHandler
      Src: /src/nss/lib/sqlite/sqlite3.c:200016,1
    - Dst: sessionChangesetOld
      Src: /src/nss/lib/sqlite/sqlite3.c:200026,1
    - Dst: sessionChangesetNew
      Src: /src/nss/lib/sqlite/sqlite3.c:200027,1
    - Dst: sqlite3_bind_int
      Src: /src/nss/lib/sqlite/sqlite3.c:200029,1
    - Dst: sessionBindValue
      Src: /src/nss/lib/sqlite/sqlite3.c:200031,1
    - Dst: sessionBindValue
      Src: /src/nss/lib/sqlite/sqlite3.c:200034,1
    - Dst: sqlite3_bind_int
      Src: /src/nss/lib/sqlite/sqlite3.c:200038,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:200044,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:200045,1
    - Dst: sqlite3_changes
      Src: /src/nss/lib/sqlite/sqlite3.c:200047,1
    - Dst: sessionConflictHandler
      Src: /src/nss/lib/sqlite/sqlite3.c:200052,1
    - Dst: sessionConflictHandler
      Src: /src/nss/lib/sqlite/sqlite3.c:200058,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:200064,1
    - Dst: sessionSeekToRow
      Src: /src/nss/lib/sqlite/sqlite3.c:200069,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:200072,1
    - Dst: sessionBindRow
      Src: /src/nss/lib/sqlite/sqlite3.c:200077,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:200080,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:200081,1
    - Dst: sessionConflictHandler
      Src: /src/nss/lib/sqlite/sqlite3.c:200085,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 65
    argCount: 5
    argNames:
    - pIter
    - p
    - pCtx
    - pbReplace
    - pbRetry
    argTypes:
    - sqlite3_changeset_iter*
    - SessionApplyCtx*
    - void*
    - int*
    - int*
    assertStmts:
    - condition: ( p->azCol && p->abPK )
      pos:
        line_end: 199983
        line_start: 199983
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !pbReplace || *pbReplace==0 )
      pos:
        line_end: 199984
        line_start: 199984
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->pDelete && p->pUpdate && p->pInsert && p->pSelect )
      pos:
        line_end: 199982
        line_start: 199982
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( op==SQLITE_INSERT )
      pos:
        line_end: 200063
        line_start: 200063
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 200092
      start: 199970
    functionDepth: 29
    functionLinenumber: 199970
    functionLinenumberEnd: 200092
    functionName: sessionApplyOneOp
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sessionChangesetOld
    - sqlite3_bind_parameter_count
    - sqlite3_bind_int
    - sqlite3_step
    - sqlite3_reset
    - sessionBindValue
    - assert
    - sessionConflictHandler
    - sqlite3changeset_op
    - sessionSeekToRow
    - sqlite3_changes
    - sessionBindRow
    - sessionChangesetNew
    linkageType: ''
    returnType: int
    signature: "int sessionApplyOneOp(\n  sqlite3_changeset_iter *pIter,  /* Changeset
      iterator */\n  SessionApplyCtx *p,             /* changeset_apply() context
      */\n  int(*xConflict)(void *, int, sqlite3_changeset_iter *),\n  void *pCtx,
      \                    /* First argument for the conflict handler */\n  int *pbReplace,
      \                /* OUT: True to remove PK row and retry */\n  int *pbRetry
      \                   /* OUT: True to retry. */\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sessionApplyOneOp
      Src: /src/nss/lib/sqlite/sqlite3.c:200115,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:200125,1
    - Dst: sessionApplyOneOp
      Src: /src/nss/lib/sqlite/sqlite3.c:200126,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:200135,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/sqlite/sqlite3.c:200136,1
    - Dst: sessionBindRow
      Src: /src/nss/lib/sqlite/sqlite3.c:200138,1
    - Dst: sqlite3_bind_int
      Src: /src/nss/lib/sqlite/sqlite3.c:200140,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:200143,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:200144,1
    - Dst: sessionApplyOneOp
      Src: /src/nss/lib/sqlite/sqlite3.c:200147,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/sqlite/sqlite3.c:200150,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 4
    argNames:
    - db
    - pIter
    - pApply
    - pCtx
    argTypes:
    - sqlite3*
    - sqlite3_changeset_iter*
    - SessionApplyCtx*
    - void*
    assertStmts:
    - condition: ( pIter->op==SQLITE_UPDATE || pIter->op==SQLITE_DELETE )
      pos:
        line_end: 200124
        line_start: 200124
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIter->op==SQLITE_INSERT )
      pos:
        line_end: 200134
        line_start: 200134
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 200156
      start: 200104
    functionDepth: 30
    functionLinenumber: 200104
    functionLinenumberEnd: 200156
    functionName: sessionApplyOneWithRetry
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_bind_int
    - sqlite3_step
    - sqlite3_reset
    - sessionApplyOneOp
    - assert
    - sessionBindRow
    - sqlite3_exec
    linkageType: ''
    returnType: int
    signature: "int sessionApplyOneWithRetry(\n  sqlite3 *db,                    /*
      Apply change to \"main\" db of this handle */\n  sqlite3_changeset_iter *pIter,
      \ /* Changeset iterator to read change from */\n  SessionApplyCtx *pApply,        /*
      Apply context */\n  int(*xConflict)(void*, int, sqlite3_changeset_iter*),\n
      \ void *pCtx                      /* First argument passed to xConflict */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:200174,1
    - Dst: sessionChangesetStart
      Src: /src/nss/lib/sqlite/sqlite3.c:200176,1
    - Dst: sessionBufferGrow
      Src: /src/nss/lib/sqlite/sqlite3.c:200184,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:200186,1
    - Dst: sqlite3changeset_next
      Src: /src/nss/lib/sqlite/sqlite3.c:200188,1
    - Dst: sessionApplyOneWithRetry
      Src: /src/nss/lib/sqlite/sqlite3.c:200189,1
    - Dst: sqlite3changeset_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:200192,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:200195,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:200197,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 5
    argNames:
    - db
    - bPatchset
    - zTab
    - pApply
    - pCtx
    argTypes:
    - sqlite3*
    - int
    - char*
    - SessionApplyCtx*
    - void*
    assertStmts:
    - condition: ( pApply->bDeferConstraints || pApply->constraints.nBuf==0 )
      pos:
        line_end: 200194
        line_start: 200194
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 200206
      start: 200161
    functionDepth: 31
    functionLinenumber: 200161
    functionLinenumberEnd: 200206
    functionName: sessionRetryConstraints
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3changeset_finalize
    - sessionBufferGrow
    - sqlite3changeset_next
    - memset
    - assert
    - sessionApplyOneWithRetry
    - sessionChangesetStart
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int sessionRetryConstraints(\n  sqlite3 *db, \n  int bPatchset,\n
      \ const char *zTab,\n  SessionApplyCtx *pApply,\n  int(*xConflict)(void*, int,
      sqlite3_changeset_iter*),\n  void *pCtx                      /* First argument
      passed to xConflict */\n)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:200238,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:200241,1
    - Dst: sqlite3_mutex_enter
      Src: /src/nss/lib/sqlite/sqlite3.c:200243,1
    - Dst: sqlite3_db_mutex
      Src: /src/nss/lib/sqlite/sqlite3.c:200243,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/sqlite/sqlite3.c:200245,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/sqlite/sqlite3.c:200248,1
    - Dst: sqlite3changeset_next
      Src: /src/nss/lib/sqlite/sqlite3.c:200250,1
    - Dst: sqlite3changeset_op
      Src: /src/nss/lib/sqlite/sqlite3.c:200255,1
    - Dst: sqlite3_strnicmp
      Src: /src/nss/lib/sqlite/sqlite3.c:200257,1
    - Dst: sessionRetryConstraints
      Src: /src/nss/lib/sqlite/sqlite3.c:200260,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:200265,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:200266,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:200267,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:200268,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:200269,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:200281,1
    - Dst: xFilter
      Src: /src/nss/lib/sqlite/sqlite3.c:200286,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:200288,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:200293,1
    - Dst: sqlite3changeset_pk
      Src: /src/nss/lib/sqlite/sqlite3.c:200299,1
    - Dst: sessionTableInfo
      Src: /src/nss/lib/sqlite/sqlite3.c:200300,1
    - Dst: sqlite3_log
      Src: /src/nss/lib/sqlite/sqlite3.c:200310,1
    - Dst: sqlite3_log
      Src: /src/nss/lib/sqlite/sqlite3.c:200316,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:200322,1
    - Dst: sqlite3_log
      Src: /src/nss/lib/sqlite/sqlite3.c:200324,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:200330,1
    - Dst: sessionStat1Sql
      Src: /src/nss/lib/sqlite/sqlite3.c:200331,1
    - Dst: sessionSelectRow
      Src: /src/nss/lib/sqlite/sqlite3.c:200336,1
    - Dst: sessionUpdateRow
      Src: /src/nss/lib/sqlite/sqlite3.c:200337,1
    - Dst: sessionDeleteRow
      Src: /src/nss/lib/sqlite/sqlite3.c:200338,1
    - Dst: sessionInsertRow
      Src: /src/nss/lib/sqlite/sqlite3.c:200339,1
    - Dst: sqlite3Strlen30
      Src: /src/nss/lib/sqlite/sqlite3.c:200346,1
    - Dst: sessionApplyOneWithRetry
      Src: /src/nss/lib/sqlite/sqlite3.c:200354,1
    - Dst: sqlite3changeset_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:200359,1
    - Dst: sqlite3changeset_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:200361,1
    - Dst: sessionRetryConstraints
      Src: /src/nss/lib/sqlite/sqlite3.c:200365,1
    - Dst: sqlite3_db_status
      Src: /src/nss/lib/sqlite/sqlite3.c:200370,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:200374,1
    - Dst: xConflict
      Src: /src/nss/lib/sqlite/sqlite3.c:200376,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/sqlite/sqlite3.c:200382,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/sqlite/sqlite3.c:200386,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/sqlite/sqlite3.c:200388,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/sqlite/sqlite3.c:200389,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:200393,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:200399,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:200400,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:200401,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:200402,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:200403,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:200404,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:200405,1
    - Dst: sqlite3_mutex_leave
      Src: /src/nss/lib/sqlite/sqlite3.c:200406,1
    - Dst: sqlite3_db_mutex
      Src: /src/nss/lib/sqlite/sqlite3.c:200406,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 129
    argCount: 6
    argNames:
    - db
    - pIter
    - pCtx
    - ppRebase
    - pnRebase
    - flags
    argTypes:
    - sqlite3*
    - sqlite3_changeset_iter*
    - void*
    - void**
    - int*
    - int
    assertStmts:
    - condition: ( sApply.bRebase || sApply.rebase.nBuf==0 )
      pos:
        line_end: 200392
        line_start: 200392
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( xConflict!=0 )
      pos:
        line_end: 200237
        line_start: 200237
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 200408
      start: 200215
    functionDepth: 32
    functionLinenumber: 200215
    functionLinenumberEnd: 200408
    functionName: sessionChangesetApply
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mutex_enter
    - xFilter
    - sessionUpdateRow
    - sqlite3_stricmp
    - strlen
    - sessionTableInfo
    - sqlite3_log
    - sqlite3_mutex_leave
    - sessionRetryConstraints
    - assert
    - memset
    - sessionSelectRow
    - memcmp
    - sqlite3_finalize
    - sqlite3_exec
    - sqlite3_strnicmp
    - xConflict
    - sqlite3_db_mutex
    - sessionDeleteRow
    - sqlite3_mprintf
    - sessionApplyOneWithRetry
    - sessionStat1Sql
    - sqlite3Strlen30
    - sqlite3changeset_finalize
    - sessionInsertRow
    - sqlite3changeset_next
    - sqlite3changeset_pk
    - sqlite3_db_status
    - sqlite3changeset_op
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int sessionChangesetApply(\n  sqlite3 *db,                    /* Apply
      change to \"main\" db of this handle */\n  sqlite3_changeset_iter *pIter,  /*
      Changeset to apply */\n  int(*xFilter)(\n    void *pCtx,                   /*
      Copy of sixth arg to _apply() */\n    const char *zTab              /* Table
      name */\n  ),\n  int(*xConflict)(\n    void *pCtx,                   /* Copy
      of fifth arg to _apply() */\n    int eConflict,                /* DATA, MISSING,
      CONFLICT, CONSTRAINT */\n    sqlite3_changeset_iter *p     /* Handle describing
      change and conflict */\n  ),\n  void *pCtx,                     /* First argument
      passed to xConflict */\n  void **ppRebase, int *pnRebase, /* OUT: Rebase information
      */\n  int flags                       /* SESSION_APPLY_XXX flags */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sessionChangesetStart
      Src: /src/nss/lib/sqlite/sqlite3.c:200433,1
    - Dst: sessionChangesetApply
      Src: /src/nss/lib/sqlite/sqlite3.c:200435,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 7
    argNames:
    - db
    - nChangeset
    - pChangeset
    - pCtx
    - ppRebase
    - pnRebase
    - flags
    argTypes:
    - sqlite3*
    - int
    - void*
    - void*
    - void**
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200440
      start: 200414
    functionDepth: 33
    functionLinenumber: 200414
    functionLinenumberEnd: 200440
    functionName: sqlite3changeset_apply_v2
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sessionChangesetStart
    - sessionChangesetApply
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3changeset_apply_v2(\n  sqlite3 *db,                    /*
      Apply change to \"main\" db of this handle */\n  int nChangeset,                 /*
      Size of changeset in bytes */\n  void *pChangeset,               /* Changeset
      blob */\n  int(*xFilter)(\n    void *pCtx,                   /* Copy of sixth
      arg to _apply() */\n    const char *zTab              /* Table name */\n  ),\n
      \ int(*xConflict)(\n    void *pCtx,                   /* Copy of sixth arg to
      _apply() */\n    int eConflict,                /* DATA, MISSING, CONFLICT, CONSTRAINT
      */\n    sqlite3_changeset_iter *p     /* Handle describing change and conflict
      */\n  ),\n  void *pCtx,                     /* First argument passed to xConflict
      */\n  void **ppRebase, int *pnRebase,\n  int flags\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3changeset_apply_v2
      Src: /src/nss/lib/sqlite/sqlite3.c:200462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - db
    - nChangeset
    - pChangeset
    - pCtx
    argTypes:
    - sqlite3*
    - int
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200465
      start: 200447
    functionDepth: 34
    functionLinenumber: 200447
    functionLinenumberEnd: 200465
    functionName: sqlite3changeset_apply
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3changeset_apply_v2
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3changeset_apply(\n  sqlite3 *db,                    /*
      Apply change to \"main\" db of this handle */\n  int nChangeset,                 /*
      Size of changeset in bytes */\n  void *pChangeset,               /* Changeset
      blob */\n  int(*xFilter)(\n    void *pCtx,                   /* Copy of sixth
      arg to _apply() */\n    const char *zTab              /* Table name */\n  ),\n
      \ int(*xConflict)(\n    void *pCtx,                   /* Copy of fifth arg to
      _apply() */\n    int eConflict,                /* DATA, MISSING, CONFLICT, CONSTRAINT
      */\n    sqlite3_changeset_iter *p     /* Handle describing change and conflict
      */\n  ),\n  void *pCtx                      /* First argument passed to xConflict
      */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sessionChangesetStart
      Src: /src/nss/lib/sqlite/sqlite3.c:200491,1
    - Dst: sessionChangesetApply
      Src: /src/nss/lib/sqlite/sqlite3.c:200493,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - db
    - pIn
    - pCtx
    - ppRebase
    - pnRebase
    - flags
    argTypes:
    - sqlite3*
    - void*
    - void*
    - void**
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200498
      start: 200472
    functionDepth: 33
    functionLinenumber: 200472
    functionLinenumberEnd: 200498
    functionName: sqlite3changeset_apply_v2_strm
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sessionChangesetStart
    - sessionChangesetApply
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3changeset_apply_v2_strm(\n  sqlite3 *db,                    /*
      Apply change to \"main\" db of this handle */\n  int (*xInput)(void *pIn, void
      *pData, int *pnData), /* Input function */\n  void *pIn,                                          /*
      First arg for xInput */\n  int(*xFilter)(\n    void *pCtx,                   /*
      Copy of sixth arg to _apply() */\n    const char *zTab              /* Table
      name */\n  ),\n  int(*xConflict)(\n    void *pCtx,                   /* Copy
      of sixth arg to _apply() */\n    int eConflict,                /* DATA, MISSING,
      CONFLICT, CONSTRAINT */\n    sqlite3_changeset_iter *p     /* Handle describing
      change and conflict */\n  ),\n  void *pCtx,                     /* First argument
      passed to xConflict */\n  void **ppRebase, int *pnRebase,\n  int flags\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3changeset_apply_v2_strm
      Src: /src/nss/lib/sqlite/sqlite3.c:200514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - db
    - pIn
    - pCtx
    argTypes:
    - sqlite3*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200517
      start: 200499
    functionDepth: 34
    functionLinenumber: 200499
    functionLinenumberEnd: 200517
    functionName: sqlite3changeset_apply_strm
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3changeset_apply_v2_strm
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3changeset_apply_strm(\n  sqlite3 *db,                    /*
      Apply change to \"main\" db of this handle */\n  int (*xInput)(void *pIn, void
      *pData, int *pnData), /* Input function */\n  void *pIn,                                          /*
      First arg for xInput */\n  int(*xFilter)(\n    void *pCtx,                   /*
      Copy of sixth arg to _apply() */\n    const char *zTab              /* Table
      name */\n  ),\n  int(*xConflict)(\n    void *pCtx,                   /* Copy
      of sixth arg to _apply() */\n    int eConflict,                /* DATA, MISSING,
      CONFLICT, CONSTRAINT */\n    sqlite3_changeset_iter *p     /* Handle describing
      change and conflict */\n  ),\n  void *pCtx                      /* First argument
      passed to xConflict */\n)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:200548,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:200552,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:200558,1
    - Dst: sessionSerialLen
      Src: /src/nss/lib/sqlite/sqlite3.c:200564,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:200570,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:200582,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:200591,1
    - Dst: sessionSerialLen
      Src: /src/nss/lib/sqlite/sqlite3.c:200597,1
    - Dst: sessionSerialLen
      Src: /src/nss/lib/sqlite/sqlite3.c:200598,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:200602,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:200605,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:200613,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:200638,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:200639,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:200649,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:200651,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:200654,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:200660,1
    - Dst: sessionSkipRecord
      Src: /src/nss/lib/sqlite/sqlite3.c:200662,1
    - Dst: sessionMergeRecord
      Src: /src/nss/lib/sqlite/sqlite3.c:200663,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:200665,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:200668,1
    - Dst: sessionMergeUpdate
      Src: /src/nss/lib/sqlite/sqlite3.c:200671,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:200672,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:200679,1
    - Dst: sessionSkipRecord
      Src: /src/nss/lib/sqlite/sqlite3.c:200681,1
    - Dst: sessionSkipRecord
      Src: /src/nss/lib/sqlite/sqlite3.c:200682,1
    - Dst: sessionMergeUpdate
      Src: /src/nss/lib/sqlite/sqlite3.c:200685,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:200686,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:200690,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:200693,1
    - Dst: sessionMergeRecord
      Src: /src/nss/lib/sqlite/sqlite3.c:200696,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:200703,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 125
    argCount: 9
    argNames:
    - pTab
    - bRebase
    - bPatchset
    - pExist
    - op2
    - bIndirect
    - aRec
    - nRec
    - ppNew
    argTypes:
    - SessionTable*
    - int
    - int
    - SessionChange*
    - int
    - int
    - u8*
    - int
    - SessionChange**
    assertStmts:
    - condition: ( pNew==0 )
      pos:
        line_end: 200638
        line_start: 200638
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( op2==SQLITE_UPDATE )
      pos:
        line_end: 200659
        line_start: 200659
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( op1==SQLITE_UPDATE )
      pos:
        line_end: 200678
        line_start: 200678
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( op1==SQLITE_UPDATE && op2==SQLITE_DELETE )
      pos:
        line_end: 200689
        line_start: 200689
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( op2==SQLITE_INSERT )
      pos:
        line_end: 200664
        line_start: 200664
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 200709
      start: 200533
    functionDepth: 6
    functionLinenumber: 200533
    functionLinenumberEnd: 200709
    functionName: sessionChangeMerge
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sessionSkipRecord
    - memcpy
    - sqlite3_malloc64
    - memset
    - sessionSerialLen
    - assert
    - sessionMergeUpdate
    - sessionMergeRecord
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int sessionChangeMerge(\n  SessionTable *pTab,             /* Table
      structure */\n  int bRebase,                    /* True for a rebase hash-table
      */\n  int bPatchset,                  /* True for patchsets */\n  SessionChange
      *pExist,          /* Existing change */\n  int op2,                        /*
      Second change operation */\n  int bIndirect,                  /* True if second
      change is indirect */\n  u8 *aRec,                       /* Second change record
      */\n  int nRec,                       /* Number of bytes in aRec */\n  SessionChange
      **ppNew           /* OUT: Merged change */\n)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: sessionChangesetNext
      Src: /src/nss/lib/sqlite/sqlite3.c:200725,1
    - Dst: sqlite3changeset_op
      Src: /src/nss/lib/sqlite/sqlite3.c:200742,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:200743,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:200745,1
    - Dst: sqlite3changeset_pk
      Src: /src/nss/lib/sqlite/sqlite3.c:200748,1
    - Dst: sqlite3_strnicmp
      Src: /src/nss/lib/sqlite/sqlite3.c:200750,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:200755,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:200760,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:200763,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:200765,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:200773,1
    - Dst: sessionGrowHash
      Src: /src/nss/lib/sqlite/sqlite3.c:200779,1
    - Dst: sessionChangeHash
      Src: /src/nss/lib/sqlite/sqlite3.c:200783,1
    - Dst: sessionChangeEqual
      Src: /src/nss/lib/sqlite/sqlite3.c:200797,1
    - Dst: sessionChangeMerge
      Src: /src/nss/lib/sqlite/sqlite3.c:200805,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 66
    argCount: 3
    argNames:
    - pIter
    - pGrp
    - bRebase
    argTypes:
    - sqlite3_changeset_iter*
    - sqlite3_changegroup*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200818
      start: 200715
    functionDepth: 16
    functionLinenumber: 200715
    functionLinenumberEnd: 200818
    functionName: sessionChangesetToHash
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - sqlite3_malloc64
    - sessionChangeHash
    - memset
    - sqlite3changeset_pk
    - sessionChangesetNext
    - sqlite3changeset_op
    - sessionChangeMerge
    - sessionChangeEqual
    - sqlite3_stricmp
    - memcmp
    - sqlite3_strnicmp
    - sessionGrowHash
    - strlen
    linkageType: ''
    returnType: int
    signature: "int sessionChangesetToHash(\n  sqlite3_changeset_iter *pIter,   /*
      Iterator to read from */\n  sqlite3_changegroup *pGrp,       /* Changegroup
      object to add changeset to */\n  int bRebase                      /* True if
      hash table is for rebasing */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:200848,1
    - Dst: sessionAppendTableHdr
      Src: /src/nss/lib/sqlite/sqlite3.c:200857,1
    - Dst: sessionAppendByte
      Src: /src/nss/lib/sqlite/sqlite3.c:200861,1
    - Dst: sessionAppendByte
      Src: /src/nss/lib/sqlite/sqlite3.c:200862,1
    - Dst: sessionAppendBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:200863,1
    - Dst: xOutput
      Src: /src/nss/lib/sqlite/sqlite3.c:200865,1
    - Dst: xOutput
      Src: /src/nss/lib/sqlite/sqlite3.c:200874,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:200881,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 4
    argNames:
    - pGrp
    - pOut
    - pnOut
    - ppOut
    argTypes:
    - sqlite3_changegroup*
    - void*
    - int*
    - void**
    assertStmts:
    - condition: ( xOutput==0 || (ppOut==0 && pnOut==0) )
      pos:
        line_end: 200847
        line_start: 200847
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 200884
      start: 200838
    functionDepth: 10
    functionLinenumber: 200838
    functionLinenumberEnd: 200884
    functionName: sessionChangegroupOutput
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sessionAppendBlob
    - assert
    - sessionAppendTableHdr
    - sessionAppendByte
    - sqlite3_free
    - xOutput
    linkageType: ''
    returnType: int
    signature: "int sessionChangegroupOutput(\n  sqlite3_changegroup *pGrp,\n  int
      (*xOutput)(void *pOut, const void *pData, int nData),\n  void *pOut,\n  int
      *pnOut,\n  void **ppOut\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:200892,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:200896,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - pp
    argTypes:
    - sqlite3_changegroup**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200900
      start: 200889
    functionDepth: 6
    functionLinenumber: 200889
    functionLinenumberEnd: 200900
    functionName: sqlite3changegroup_new
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3_malloc
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3changegroup_new(sqlite3_changegroup **pp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3changeset_start
      Src: /src/nss/lib/sqlite/sqlite3.c:200910,1
    - Dst: sessionChangesetToHash
      Src: /src/nss/lib/sqlite/sqlite3.c:200912,1
    - Dst: sqlite3changeset_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:200914,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - pGrp
    - nData
    - pData
    argTypes:
    - sqlite3_changegroup*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200916
      start: 200906
    functionDepth: 17
    functionLinenumber: 200906
    functionLinenumberEnd: 200916
    functionName: sqlite3changegroup_add
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3changeset_start
    - sqlite3changeset_finalize
    - sessionChangesetToHash
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3changegroup_add(sqlite3_changegroup *pGrp, int nData,
      void *pData)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sessionChangegroupOutput
      Src: /src/nss/lib/sqlite/sqlite3.c:200927,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pGrp
    - pnData
    - ppData
    argTypes:
    - sqlite3_changegroup*
    - int*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200928
      start: 200922
    functionDepth: 11
    functionLinenumber: 200922
    functionLinenumberEnd: 200928
    functionName: sqlite3changegroup_output
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sessionChangegroupOutput
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3changegroup_output(\n    sqlite3_changegroup *pGrp,\n
      \   int *pnData,\n    void **ppData\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3changeset_start_strm
      Src: /src/nss/lib/sqlite/sqlite3.c:200941,1
    - Dst: sessionChangesetToHash
      Src: /src/nss/lib/sqlite/sqlite3.c:200943,1
    - Dst: sqlite3changeset_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:200945,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - pGrp
    - pIn
    argTypes:
    - sqlite3_changegroup*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200947
      start: 200933
    functionDepth: 17
    functionLinenumber: 200933
    functionLinenumberEnd: 200947
    functionName: sqlite3changegroup_add_strm
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sessionChangesetToHash
    - sqlite3changeset_start_strm
    - sqlite3changeset_finalize
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3changegroup_add_strm(\n  sqlite3_changegroup *pGrp,\n
      \ int (*xInput)(void *pIn, void *pData, int *pnData),\n  void *pIn\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sessionChangegroupOutput
      Src: /src/nss/lib/sqlite/sqlite3.c:200957,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pGrp
    - pOut
    argTypes:
    - sqlite3_changegroup*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200958
      start: 200952
    functionDepth: 11
    functionLinenumber: 200952
    functionLinenumberEnd: 200958
    functionName: sqlite3changegroup_output_strm
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sessionChangegroupOutput
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3changegroup_output_strm(\n  sqlite3_changegroup
      *pGrp,\n  int (*xOutput)(void *pOut, const void *pData, int nData), \n  void
      *pOut\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sessionDeleteTable
      Src: /src/nss/lib/sqlite/sqlite3.c:200965,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:200966,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pGrp
    argTypes:
    - sqlite3_changegroup*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200968
      start: 200963
    functionDepth: 4
    functionLinenumber: 200963
    functionLinenumberEnd: 200968
    functionName: sqlite3changegroup_delete
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    - sessionDeleteTable
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3changegroup_delete(sqlite3_changegroup *pGrp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3changegroup_new
      Src: /src/nss/lib/sqlite/sqlite3.c:200984,1
    - Dst: sqlite3changegroup_add
      Src: /src/nss/lib/sqlite/sqlite3.c:200986,1
    - Dst: sqlite3changegroup_add
      Src: /src/nss/lib/sqlite/sqlite3.c:200989,1
    - Dst: sqlite3changegroup_output
      Src: /src/nss/lib/sqlite/sqlite3.c:200992,1
    - Dst: sqlite3changegroup_delete
      Src: /src/nss/lib/sqlite/sqlite3.c:200994,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 6
    argNames:
    - nLeft
    - pLeft
    - nRight
    - pRight
    - pnOut
    - ppOut
    argTypes:
    - int
    - void*
    - int
    - void*
    - int*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200997
      start: 200973
    functionDepth: 18
    functionLinenumber: 200973
    functionLinenumberEnd: 200997
    functionName: sqlite3changeset_concat
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3changegroup_delete
    - sqlite3changegroup_output
    - sqlite3changegroup_new
    - sqlite3changegroup_add
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3changeset_concat(\n  int nLeft,                      /*
      Number of bytes in lhs input */\n  void *pLeft,                    /* Lhs input
      changeset */\n  int nRight                      /* Number of bytes in rhs input
      */,\n  void *pRight,                   /* Rhs input changeset */\n  int *pnOut,
      \                    /* OUT: Number of bytes in output changeset */\n  void
      **ppOut                    /* OUT: changeset (left <concat> right) */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3changegroup_new
      Src: /src/nss/lib/sqlite/sqlite3.c:201013,1
    - Dst: sqlite3changegroup_add_strm
      Src: /src/nss/lib/sqlite/sqlite3.c:201015,1
    - Dst: sqlite3changegroup_add_strm
      Src: /src/nss/lib/sqlite/sqlite3.c:201018,1
    - Dst: sqlite3changegroup_output_strm
      Src: /src/nss/lib/sqlite/sqlite3.c:201021,1
    - Dst: sqlite3changegroup_delete
      Src: /src/nss/lib/sqlite/sqlite3.c:201023,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - pInA
    - pInB
    - pOut
    argTypes:
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201026
      start: 201002
    functionDepth: 18
    functionLinenumber: 201002
    functionLinenumberEnd: 201026
    functionName: sqlite3changeset_concat_strm
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3changegroup_add_strm
    - sqlite3changegroup_delete
    - sqlite3changegroup_output_strm
    - sqlite3changegroup_new
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3changeset_concat_strm(\n  int (*xInputA)(void *pIn,
      void *pData, int *pnData),\n  void *pInA,\n  int (*xInputB)(void *pIn, void
      *pData, int *pnData),\n  void *pInB,\n  int (*xOutput)(void *pOut, const void
      *pData, int nData),\n  void *pOut\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sessionBufferGrow
      Src: /src/nss/lib/sqlite/sqlite3.c:201048,1
    - Dst: sessionSerialLen
      Src: /src/nss/lib/sqlite/sqlite3.c:201053,1
    - Dst: sessionSerialLen
      Src: /src/nss/lib/sqlite/sqlite3.c:201054,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:201056,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:201059,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:201067,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 7
    argNames:
    - pBuf
    - nCol
    - a1
    - n1
    - a2
    - n2
    - pRc
    argTypes:
    - SessionBuffer*
    - int
    - u8*
    - int
    - u8*
    - int
    - int*
    assertStmts:
    - condition: ( pBuf->nBuf<=pBuf->nAlloc )
      pos:
        line_end: 201066
        line_start: 201066
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 201069
      start: 201041
    functionDepth: 8
    functionLinenumber: 201041
    functionLinenumberEnd: 201069
    functionName: sessionAppendRecordMerge
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sessionSerialLen
    - memcpy
    - sessionBufferGrow
    linkageType: ''
    returnType: void
    signature: "void sessionAppendRecordMerge(\n  SessionBuffer *pBuf,            /*
      Buffer to append to */\n  int nCol,                       /* Number of columns
      in each record */\n  u8 *a1, int n1,                 /* Record 1 */\n  u8 *a2,
      int n2,                 /* Record 2 */\n  int *pRc                        /*
      IN/OUT: error code */\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sessionBufferGrow
      Src: /src/nss/lib/sqlite/sqlite3.c:201097,1
    - Dst: sessionSerialLen
      Src: /src/nss/lib/sqlite/sqlite3.c:201108,1
    - Dst: sessionSerialLen
      Src: /src/nss/lib/sqlite/sqlite3.c:201109,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:201112,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:201116,1
    - Dst: sessionSerialLen
      Src: /src/nss/lib/sqlite/sqlite3.c:201127,1
    - Dst: sessionSerialLen
      Src: /src/nss/lib/sqlite/sqlite3.c:201128,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:201130,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 7
    argNames:
    - pBuf
    - pIter
    - aRec
    - nRec
    - aChange
    - nChange
    - pRc
    argTypes:
    - SessionBuffer*
    - sqlite3_changeset_iter*
    - u8*
    - int
    - u8*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201141
      start: 201090
    functionDepth: 8
    functionLinenumber: 201090
    functionLinenumberEnd: 201141
    functionName: sessionAppendPartialUpdate
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sessionSerialLen
    - memcpy
    - sessionBufferGrow
    linkageType: ''
    returnType: void
    signature: "void sessionAppendPartialUpdate(\n  SessionBuffer *pBuf,            /*
      Append record here */\n  sqlite3_changeset_iter *pIter,  /* Iterator pointed
      at local change */\n  u8 *aRec, int nRec,             /* Local change */\n  u8
      *aChange, int nChange,       /* Record to rebase against */\n  int *pRc                        /*
      IN/OUT: Return Code */\n)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: sessionChangesetNext
      Src: /src/nss/lib/sqlite/sqlite3.c:201173,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:201180,1
    - Dst: sessionAppendByte
      Src: /src/nss/lib/sqlite/sqlite3.c:201190,1
    - Dst: sessionAppendVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:201191,1
    - Dst: sessionAppendBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:201192,1
    - Dst: sessionAppendBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:201193,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:201193,1
    - Dst: sessionChangeHash
      Src: /src/nss/lib/sqlite/sqlite3.c:201197,1
    - Dst: sessionChangeEqual
      Src: /src/nss/lib/sqlite/sqlite3.c:201200,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:201207,1
    - Dst: sessionAppendByte
      Src: /src/nss/lib/sqlite/sqlite3.c:201213,1
    - Dst: sessionAppendByte
      Src: /src/nss/lib/sqlite/sqlite3.c:201214,1
    - Dst: sessionAppendBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:201215,1
    - Dst: sessionAppendBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:201216,1
    - Dst: sessionSkipRecord
      Src: /src/nss/lib/sqlite/sqlite3.c:201226,1
    - Dst: sessionAppendByte
      Src: /src/nss/lib/sqlite/sqlite3.c:201227,1
    - Dst: sessionAppendByte
      Src: /src/nss/lib/sqlite/sqlite3.c:201228,1
    - Dst: sessionAppendRecordMerge
      Src: /src/nss/lib/sqlite/sqlite3.c:201229,1
    - Dst: sessionAppendPartialUpdate
      Src: /src/nss/lib/sqlite/sqlite3.c:201235,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:201242,1
    - Dst: sessionAppendByte
      Src: /src/nss/lib/sqlite/sqlite3.c:201245,1
    - Dst: sessionAppendByte
      Src: /src/nss/lib/sqlite/sqlite3.c:201246,1
    - Dst: sessionAppendRecordMerge
      Src: /src/nss/lib/sqlite/sqlite3.c:201247,1
    - Dst: sessionAppendByte
      Src: /src/nss/lib/sqlite/sqlite3.c:201256,1
    - Dst: sessionAppendByte
      Src: /src/nss/lib/sqlite/sqlite3.c:201257,1
    - Dst: sessionAppendBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:201258,1
    - Dst: xOutput
      Src: /src/nss/lib/sqlite/sqlite3.c:201261,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:201268,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:201269,1
    - Dst: xOutput
      Src: /src/nss/lib/sqlite/sqlite3.c:201275,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:201283,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 90
    argCount: 5
    argNames:
    - p
    - pIter
    - pOut
    - pnOut
    - ppOut
    argTypes:
    - sqlite3_rebaser*
    - sqlite3_changeset_iter*
    - void*
    - int*
    - void**
    assertStmts:
    - condition: ( pChange->op==SQLITE_DELETE || pChange->op==SQLITE_INSERT )
      pos:
        line_end: 201206
        line_start: 201206
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIter->op==SQLITE_DELETE )
      pos:
        line_end: 201241
        line_start: 201241
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 201285
      start: 201158
    functionDepth: 16
    functionLinenumber: 201158
    functionLinenumberEnd: 201285
    functionName: sessionRebase
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    - sessionSkipRecord
    - xOutput
    - sessionAppendPartialUpdate
    - sessionAppendBlob
    - sessionChangeHash
    - assert
    - memset
    - sessionChangesetNext
    - strlen
    - sessionChangeEqual
    - sqlite3_stricmp
    - sessionAppendByte
    - sessionAppendRecordMerge
    - sessionAppendVarint
    linkageType: ''
    returnType: int
    signature: "int sessionRebase(\n  sqlite3_rebaser *p,             /* Rebaser hash
      table */\n  sqlite3_changeset_iter *pIter,  /* Input data */\n  int (*xOutput)(void
      *pOut, const void *pData, int nData),\n  void *pOut,                     /*
      Context for xOutput callback */\n  int *pnOut,                     /* OUT: Number
      of bytes in output changeset */\n  void **ppOut                    /* OUT: Inverse
      of pChangeset */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:201294,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:201298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ppNew
    argTypes:
    - sqlite3_rebaser**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201302
      start: 201290
    functionDepth: 6
    functionLinenumber: 201290
    functionLinenumberEnd: 201302
    functionName: sqlite3rebaser_create
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3_malloc
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3rebaser_create(sqlite3_rebaser **ppNew)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3changeset_start
      Src: /src/nss/lib/sqlite/sqlite3.c:201313,1
    - Dst: sessionChangesetToHash
      Src: /src/nss/lib/sqlite/sqlite3.c:201315,1
    - Dst: sqlite3changeset_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:201317,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - p
    - nRebase
    - pRebase
    argTypes:
    - sqlite3_rebaser*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201319
      start: 201307
    functionDepth: 17
    functionLinenumber: 201307
    functionLinenumberEnd: 201319
    functionName: sqlite3rebaser_configure
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3changeset_start
    - sqlite3changeset_finalize
    - sessionChangesetToHash
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3rebaser_configure(\n  sqlite3_rebaser *p, \n  int
      nRebase, const void *pRebase\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3changeset_start
      Src: /src/nss/lib/sqlite/sqlite3.c:201330,1
    - Dst: sessionRebase
      Src: /src/nss/lib/sqlite/sqlite3.c:201333,1
    - Dst: sqlite3changeset_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:201334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - p
    - nIn
    - pIn
    - pnOut
    - ppOut
    argTypes:
    - sqlite3_rebaser*
    - int
    - void*
    - int*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201338
      start: 201324
    functionDepth: 17
    functionLinenumber: 201324
    functionLinenumberEnd: 201338
    functionName: sqlite3rebaser_rebase
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3changeset_start
    - sqlite3changeset_finalize
    - sessionRebase
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3rebaser_rebase(\n  sqlite3_rebaser *p,\n  int nIn,
      const void *pIn, \n  int *pnOut, void **ppOut \n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3changeset_start_strm
      Src: /src/nss/lib/sqlite/sqlite3.c:201351,1
    - Dst: sessionRebase
      Src: /src/nss/lib/sqlite/sqlite3.c:201354,1
    - Dst: sqlite3changeset_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:201355,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - p
    - pIn
    - pOut
    argTypes:
    - sqlite3_rebaser*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201359
      start: 201343
    functionDepth: 17
    functionLinenumber: 201343
    functionLinenumberEnd: 201359
    functionName: sqlite3rebaser_rebase_strm
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3changeset_start_strm
    - sqlite3changeset_finalize
    - sessionRebase
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3rebaser_rebase_strm(\n  sqlite3_rebaser *p,\n  int
      (*xInput)(void *pIn, void *pData, int *pnData),\n  void *pIn,\n  int (*xOutput)(void
      *pOut, const void *pData, int nData),\n  void *pOut\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sessionDeleteTable
      Src: /src/nss/lib/sqlite/sqlite3.c:201366,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:201367,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - sqlite3_rebaser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201369
      start: 201364
    functionDepth: 4
    functionLinenumber: 201364
    functionLinenumberEnd: 201369
    functionName: sqlite3rebaser_delete
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    - sessionDeleteTable
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3rebaser_delete(sqlite3_rebaser *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - op
    - pArg
    argTypes:
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201390
      start: 201374
    functionDepth: 0
    functionLinenumber: 201374
    functionLinenumberEnd: 201390
    functionName: sqlite3session_config
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API sqlite3session_config(int op, void *pArg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202017
      start: 202016
    functionDepth: 0
    functionLinenumber: 202016
    functionLinenumberEnd: 202017
    functionName: ArraySize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 58
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ArraySize(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202021
      start: 202020
    functionDepth: 0
    functionLinenumber: 202020
    functionLinenumberEnd: 202021
    functionName: ALWAYS
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 65
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALWAYS(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202022
      start: 202021
    functionDepth: 0
    functionLinenumber: 202021
    functionLinenumberEnd: 202022
    functionName: NEVER
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 47
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEVER(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202024
      start: 202023
    functionDepth: 0
    functionLinenumber: 202023
    functionLinenumberEnd: 202024
    functionName: MIN
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 113
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIN(x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202025
      start: 202024
    functionDepth: 0
    functionLinenumber: 202024
    functionLinenumberEnd: 202025
    functionName: MAX
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 43
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MAX(x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202068
      start: 202067
    functionDepth: 0
    functionLinenumber: 202067
    functionLinenumberEnd: 202068
    functionName: assert_nc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_nc(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202070
      start: 202069
    functionDepth: 0
    functionLinenumber: 202069
    functionLinenumberEnd: 202070
    functionName: assert_nc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_nc(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s1
    - ','
    - s2
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202077
      start: 202076
    functionDepth: 0
    functionLinenumber: 202076
    functionLinenumberEnd: 202077
    functionName: fts5Memcmp
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fts5Memcmp(s1, s2, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202082
      start: 202081
    functionDepth: 0
    functionLinenumber: 202081
    functionLinenumberEnd: 202082
    functionName: UNUSED_PARAM
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNUSED_PARAM(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - X
    - ','
    - Y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202086
      start: 202085
    functionDepth: 0
    functionLinenumber: 202085
    functionLinenumberEnd: 202086
    functionName: UNUSED_PARAM2
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNUSED_PARAM2(X, Y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202250
      start: 202249
    functionDepth: 0
    functionLinenumber: 202249
    functionLinenumberEnd: 202250
    functionName: fts5BufferZero
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fts5BufferZero(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202251
      start: 202250
    functionDepth: 0
    functionLinenumber: 202250
    functionLinenumberEnd: 202251
    functionName: fts5BufferAppendVarint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fts5BufferAppendVarint(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202252
      start: 202251
    functionDepth: 0
    functionLinenumber: 202251
    functionLinenumberEnd: 202252
    functionName: fts5BufferFree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fts5BufferFree(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202253
      start: 202252
    functionDepth: 0
    functionLinenumber: 202252
    functionLinenumberEnd: 202253
    functionName: fts5BufferAppendBlob
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fts5BufferAppendBlob(a,b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202254
      start: 202253
    functionDepth: 0
    functionLinenumber: 202253
    functionLinenumberEnd: 202254
    functionName: fts5BufferSet
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fts5BufferSet(a,b,c,d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pRc
    - ','
    - pBuf
    - ','
    - nn
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202259
      start: 202255
    functionDepth: 0
    functionLinenumber: 202255
    functionLinenumberEnd: 202259
    functionName: fts5BufferGrow
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fts5BufferGrow(pRc,pBuf,nn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - iPos
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202265
      start: 202264
    functionDepth: 0
    functionLinenumber: 202264
    functionLinenumberEnd: 202265
    functionName: FTS5_POS2COLUMN
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FTS5_POS2COLUMN(iPos)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - iPos
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202266
      start: 202265
    functionDepth: 0
    functionLinenumber: 202265
    functionLinenumberEnd: 202266
    functionName: FTS5_POS2OFFSET
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FTS5_POS2OFFSET(iPos)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202333
      start: 202332
    functionDepth: 0
    functionLinenumber: 202332
    functionLinenumberEnd: 202333
    functionName: sqlite3Fts5IterEof
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3Fts5IterEof(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202494
      start: 202493
    functionDepth: 0
    functionLinenumber: 202493
    functionLinenumberEnd: 202494
    functionName: fts5GetVarint32
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fts5GetVarint32(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - iOff
    - ','
    - nVal
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202503
      start: 202496
    functionDepth: 0
    functionLinenumber: 202496
    functionLinenumberEnd: 202503
    functionName: fts5FastGetVarint32
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fts5FastGetVarint32(a, iOff, nVal)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202857
      start: 202856
    functionDepth: 0
    functionLinenumber: 202856
    functionLinenumberEnd: 202857
    functionName: fts5yytestcase
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fts5yytestcase(X)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - TraceFILE
    - zTracePrompt
    argTypes:
    - FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203184
      start: 203179
    functionDepth: 0
    functionLinenumber: 203179
    functionLinenumberEnd: 203184
    functionName: sqlite3Fts5ParserTrace
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sqlite3Fts5ParserTrace(FILE *TraceFILE, char *zTracePrompt)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:203270,1
    - Dst: realloc
      Src: /src/nss/lib/sqlite/sqlite3.c:203273,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:203280,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - p
    argTypes:
    - fts5yyParser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203287
      start: 203262
    functionDepth: 1
    functionLinenumber: 203262
    functionLinenumberEnd: 203287
    functionName: fts5yyGrowStack
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - malloc
    - fprintf
    - realloc
    linkageType: ''
    returnType: int
    signature: int fts5yyGrowStack(fts5yyParser *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fts5yyGrowStack
      Src: /src/nss/lib/sqlite/sqlite3.c:203311,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - fts5yypRawParser sqlite3Fts5ParserCTX_PDECL
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203325
      start: 203301
    functionDepth: 2
    functionLinenumber: 203301
    functionLinenumberEnd: 203325
    functionName: sqlite3Fts5ParserInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5yyGrowStack
    linkageType: ''
    returnType: void
    signature: void sqlite3Fts5ParserInit(void *fts5yypRawParser sqlite3Fts5ParserCTX_PDECL)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - (*mallocProc)(fts5YYMALLOCARGTYPE)
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203348
      start: 203340
    functionDepth: 0
    functionLinenumber: 203340
    functionLinenumberEnd: 203348
    functionName: sqlite3Fts5ParserAlloc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *sqlite3Fts5ParserAlloc(void *(*mallocProc)(fts5YYMALLOCARGTYPE)
      sqlite3Fts5ParserCTX_PDECL)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5ParseNodeFree
      Src: /src/nss/lib/sqlite/sqlite3.c:203387,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:203393,1
    - Dst: sqlite3Fts5ParseNearsetFree
      Src: /src/nss/lib/sqlite/sqlite3.c:203399,1
    - Dst: sqlite3Fts5ParsePhraseFree
      Src: /src/nss/lib/sqlite/sqlite3.c:203404,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 3
    argNames:
    - fts5yypParser
    - fts5yymajor
    - fts5yypminor
    argTypes:
    - fts5yyParser*
    - fts5YYCODETYPE
    - fts5YYMINORTYPE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203410
      start: 203359
    functionDepth: 3
    functionLinenumber: 203359
    functionLinenumberEnd: 203410
    functionName: fts5yy_destructor
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5ParseNodeFree
    - sqlite3Fts5ParsePhraseFree
    - sqlite3_free
    - sqlite3Fts5ParseNearsetFree
    linkageType: ''
    returnType: void
    signature: "void fts5yy_destructor(\n  fts5yyParser *fts5yypParser,    /* The
      parser */\n  fts5YYCODETYPE fts5yymajor,     /* Type code for object to destroy
      */\n  fts5YYMINORTYPE *fts5yypminor   /* The object to be destroyed */\n)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5ParseNodeFree
      Src: /src/nss/lib/sqlite/sqlite3.c:203387,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:203393,1
    - Dst: sqlite3Fts5ParseNearsetFree
      Src: /src/nss/lib/sqlite/sqlite3.c:203399,1
    - Dst: sqlite3Fts5ParsePhraseFree
      Src: /src/nss/lib/sqlite/sqlite3.c:203404,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203409
      start: 203364
    functionDepth: 3
    functionLinenumber: 203364
    functionLinenumberEnd: 203409
    functionName: sqlite3Fts5ParserCTX_FETCH::switch
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5ParseNodeFree
    - sqlite3Fts5ParsePhraseFree
    - sqlite3_free
    - sqlite3Fts5ParseNearsetFree
    linkageType: ''
    returnType: sqlite3Fts5ParserARG_FETCH
    signature: "sqlite3Fts5ParserARG_FETCH sqlite3Fts5ParserCTX_FETCH\n  switch( fts5yymajor
      )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:203420,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:203421,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:203425,1
    - Dst: fts5yy_destructor
      Src: /src/nss/lib/sqlite/sqlite3.c:203430,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - pParser
    argTypes:
    - fts5yyParser*
    assertStmts:
    - condition: ( pParser->fts5yytos!=0 )
      pos:
        line_end: 203419
        line_start: 203419
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pParser->fts5yytos > pParser->fts5yystack )
      pos:
        line_end: 203420
        line_start: 203420
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 203431
      start: 203418
    functionDepth: 4
    functionLinenumber: 203418
    functionLinenumberEnd: 203431
    functionName: fts5yy_pop_parser_stack
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fprintf
    - fts5yy_destructor
    linkageType: ''
    returnType: void
    signature: void fts5yy_pop_parser_stack(fts5yyParser *pParser)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fts5yy_pop_parser_stack
      Src: /src/nss/lib/sqlite/sqlite3.c:203438,1
    - Dst: free
      Src: /src/nss/lib/sqlite/sqlite3.c:203440,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203442
      start: 203436
    functionDepth: 5
    functionLinenumber: 203436
    functionLinenumberEnd: 203442
    functionName: sqlite3Fts5ParserFinalize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - free
    - fts5yy_pop_parser_stack
    linkageType: ''
    returnType: void
    signature: void sqlite3Fts5ParserFinalize(void *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5ParserFinalize
      Src: /src/nss/lib/sqlite/sqlite3.c:203460,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203462
      start: 203453
    functionDepth: 6
    functionLinenumber: 203453
    functionLinenumberEnd: 203462
    functionName: sqlite3Fts5ParserFree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5ParserFinalize
    linkageType: ''
    returnType: void
    signature: "void sqlite3Fts5ParserFree(\n  void *p,                    /* The
      parser to be deleted */\n  void (*freeProc)(void*)     /* Function used to reclaim
      memory */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203472
      start: 203469
    functionDepth: 0
    functionLinenumber: 203469
    functionLinenumberEnd: 203472
    functionName: sqlite3Fts5ParserStackPeak
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5ParserStackPeak(void *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:203502,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - out
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203509
      start: 203493
    functionDepth: 0
    functionLinenumber: 203493
    functionLinenumberEnd: 203509
    functionName: sqlite3Fts5ParserCoverage
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5ParserCoverage(FILE *out)
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:203793,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:203797,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:203810,1
    - Dst: fts5yyStackOverflow
      Src: /src/nss/lib/sqlite/sqlite3.c:203815,1
    - Dst: fts5yyGrowStack
      Src: /src/nss/lib/sqlite/sqlite3.c:203823,1
    - Dst: fts5yyStackOverflow
      Src: /src/nss/lib/sqlite/sqlite3.c:203824,1
    - Dst: sqlite3Fts5ParseFinished
      Src: /src/nss/lib/sqlite/sqlite3.c:203847,1
    - Dst: sqlite3Fts5ParseColsetInvert
      Src: /src/nss/lib/sqlite/sqlite3.c:203851,1
    - Dst: sqlite3Fts5ParseColset
      Src: /src/nss/lib/sqlite/sqlite3.c:203859,1
    - Dst: sqlite3Fts5ParseColset
      Src: /src/nss/lib/sqlite/sqlite3.c:203865,1
    - Dst: sqlite3Fts5ParseColsetInvert
      Src: /src/nss/lib/sqlite/sqlite3.c:203866,1
    - Dst: sqlite3Fts5ParseColset
      Src: /src/nss/lib/sqlite/sqlite3.c:203871,1
    - Dst: sqlite3Fts5ParseColset
      Src: /src/nss/lib/sqlite/sqlite3.c:203876,1
    - Dst: sqlite3Fts5ParseNode
      Src: /src/nss/lib/sqlite/sqlite3.c:203882,1
    - Dst: sqlite3Fts5ParseNode
      Src: /src/nss/lib/sqlite/sqlite3.c:203888,1
    - Dst: sqlite3Fts5ParseNode
      Src: /src/nss/lib/sqlite/sqlite3.c:203894,1
    - Dst: sqlite3Fts5ParseSetColset
      Src: /src/nss/lib/sqlite/sqlite3.c:203900,1
    - Dst: fts5yytestcase
      Src: /src/nss/lib/sqlite/sqlite3.c:203909,1
    - Dst: sqlite3Fts5ParseImplicitAnd
      Src: /src/nss/lib/sqlite/sqlite3.c:203915,1
    - Dst: sqlite3Fts5ParseNode
      Src: /src/nss/lib/sqlite/sqlite3.c:203921,1
    - Dst: sqlite3Fts5ParseNode
      Src: /src/nss/lib/sqlite/sqlite3.c:203927,1
    - Dst: sqlite3Fts5ParseSetColset
      Src: /src/nss/lib/sqlite/sqlite3.c:203928,1
    - Dst: sqlite3Fts5ParseNearset
      Src: /src/nss/lib/sqlite/sqlite3.c:203933,1
    - Dst: sqlite3Fts5ParseSetCaret
      Src: /src/nss/lib/sqlite/sqlite3.c:203938,1
    - Dst: sqlite3Fts5ParseNearset
      Src: /src/nss/lib/sqlite/sqlite3.c:203939,1
    - Dst: sqlite3Fts5ParseNear
      Src: /src/nss/lib/sqlite/sqlite3.c:203944,1
    - Dst: sqlite3Fts5ParseSetDistance
      Src: /src/nss/lib/sqlite/sqlite3.c:203945,1
    - Dst: sqlite3Fts5ParseNearset
      Src: /src/nss/lib/sqlite/sqlite3.c:203952,1
    - Dst: sqlite3Fts5ParseNearset
      Src: /src/nss/lib/sqlite/sqlite3.c:203958,1
    - Dst: sqlite3Fts5ParseTerm
      Src: /src/nss/lib/sqlite/sqlite3.c:203970,1
    - Dst: sqlite3Fts5ParseTerm
      Src: /src/nss/lib/sqlite/sqlite3.c:203976,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:203990,1
    - Dst: fts5yy_find_reduce_action
      Src: /src/nss/lib/sqlite/sqlite3.c:203993,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:203997,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:204000,1
    - Dst: fts5yyTraceShift
      Src: /src/nss/lib/sqlite/sqlite3.c:204006,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 180
    argCount: 4
    argNames:
    - fts5yypParser
    - fts5yyruleno
    - fts5yyLookahead
    - "fts5yyLookaheadToken  /* Value of the lookahead token */\n  sqlite3Fts5ParserCTX_PDECL"
    argTypes:
    - fts5yyParser*
    - unsigned int
    - int
    - sqlite3Fts5ParserFTS5TOKENTYPE
    assertStmts:
    - condition: ( fts5yyruleno<sizeof(fts5yyRuleInfoLhs)/sizeof(fts5yyRuleInfoLhs[0])
        )
      pos:
        line_end: 203989
        line_start: 203989
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( fts5yypParser->fts5yyhwm == (int)(fts5yypParser->fts5yytos - fts5yypParser->fts5yystack))
      pos:
        line_end: 203809
        line_start: 203809
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( fts5yyact!=fts5YY_ERROR_ACTION )
      pos:
        line_end: 203999
        line_start: 203999
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !(fts5yyact>fts5YY_MAX_SHIFT && fts5yyact<=fts5YY_MAX_SHIFTREDUCE)
        )
      pos:
        line_end: 203996
        line_start: 203996
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 204008
      start: 203774
    functionDepth: 2
    functionLinenumber: 203774
    functionLinenumberEnd: 204008
    functionName: fts5yy_reduce
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5ParseFinished
    - sqlite3Fts5ParseNearset
    - fts5yy_find_reduce_action
    - fts5yyTraceShift
    - fts5yyStackOverflow
    - sqlite3Fts5ParseColsetInvert
    - sqlite3Fts5ParseSetColset
    - fts5yyGrowStack
    - sqlite3Fts5ParseTerm
    - fts5yytestcase
    - sqlite3Fts5ParseSetCaret
    - fprintf
    - assert
    - sqlite3Fts5ParseNode
    - sqlite3Fts5ParseColset
    - sqlite3Fts5ParseNear
    - sqlite3Fts5ParseImplicitAnd
    - sqlite3Fts5ParseSetDistance
    linkageType: ''
    returnType: fts5YYACTIONTYPE
    signature: "fts5YYACTIONTYPE fts5yy_reduce(\n  fts5yyParser *fts5yypParser,         /*
      The parser */\n  unsigned int fts5yyruleno,       /* Number of the rule by which
      to reduce */\n  int fts5yyLookahead,             /* Lookahead token, or fts5YYNOCODE
      if none */\n  sqlite3Fts5ParserFTS5TOKENTYPE fts5yyLookaheadToken  /* Value
      of the lookahead token */\n  sqlite3Fts5ParserCTX_PDECL                   /*
      %extra_context */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:204021,1
    - Dst: fts5yy_pop_parser_stack
      Src: /src/nss/lib/sqlite/sqlite3.c:204024,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - fts5yypParser
    argTypes:
    - fts5yyParser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204031
      start: 204014
    functionDepth: 5
    functionLinenumber: 204014
    functionLinenumberEnd: 204031
    functionName: fts5yy_parse_failed
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fprintf
    - fts5yy_pop_parser_stack
    linkageType: ''
    returnType: void
    signature: "void fts5yy_parse_failed(\n  fts5yyParser *fts5yypParser           /*
      The parser */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAM
      Src: /src/nss/lib/sqlite/sqlite3.c:204047,1
    - Dst: sqlite3Fts5ParseError
      Src: /src/nss/lib/sqlite/sqlite3.c:204048,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fts5yypParser
    - fts5yymajor
    - fts5yyminor
    argTypes:
    - fts5yyParser*
    - int
    - sqlite3Fts5ParserFTS5TOKENTYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204054
      start: 204037
    functionDepth: 1
    functionLinenumber: 204037
    functionLinenumberEnd: 204054
    functionName: fts5yy_syntax_error
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5ParseError
    - UNUSED_PARAM
    linkageType: ''
    returnType: void
    signature: "void fts5yy_syntax_error(\n  fts5yyParser *fts5yypParser,           /*
      The parser */\n  int fts5yymajor,                   /* The major type of the
      error token */\n  sqlite3Fts5ParserFTS5TOKENTYPE fts5yyminor         /* The
      minor type of the error token */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:204066,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:204072,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - fts5yypParser
    argTypes:
    - fts5yyParser*
    assertStmts:
    - condition: ( fts5yypParser->fts5yytos==fts5yypParser->fts5yystack )
      pos:
        line_end: 204071
        line_start: 204071
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 204079
      start: 204059
    functionDepth: 0
    functionLinenumber: 204059
    functionLinenumberEnd: 204079
    functionName: fts5yy_accept
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fprintf
    - assert
    linkageType: ''
    returnType: void
    signature: "void fts5yy_accept(\n  fts5yyParser *fts5yypParser           /* The
      parser */\n)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:204127,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:204130,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:204137,1
    - Dst: fts5yy_find_shift_action
      Src: /src/nss/lib/sqlite/sqlite3.c:204138,1
    - Dst: fts5yy_reduce
      Src: /src/nss/lib/sqlite/sqlite3.c:204140,1
    - Dst: fts5yy_shift
      Src: /src/nss/lib/sqlite/sqlite3.c:204143,1
    - Dst: fts5yy_accept
      Src: /src/nss/lib/sqlite/sqlite3.c:204150,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:204153,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:204160,1
    - Dst: fts5yy_syntax_error
      Src: /src/nss/lib/sqlite/sqlite3.c:204184,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:204190,1
    - Dst: fts5yy_destructor
      Src: /src/nss/lib/sqlite/sqlite3.c:204194,1
    - Dst: fts5yy_find_reduce_action
      Src: /src/nss/lib/sqlite/sqlite3.c:204198,1
    - Dst: fts5yy_pop_parser_stack
      Src: /src/nss/lib/sqlite/sqlite3.c:204202,1
    - Dst: fts5yy_destructor
      Src: /src/nss/lib/sqlite/sqlite3.c:204205,1
    - Dst: fts5yy_parse_failed
      Src: /src/nss/lib/sqlite/sqlite3.c:204206,1
    - Dst: fts5yy_shift
      Src: /src/nss/lib/sqlite/sqlite3.c:204212,1
    - Dst: fts5yy_syntax_error
      Src: /src/nss/lib/sqlite/sqlite3.c:204227,1
    - Dst: fts5yy_destructor
      Src: /src/nss/lib/sqlite/sqlite3.c:204228,1
    - Dst: fts5yy_syntax_error
      Src: /src/nss/lib/sqlite/sqlite3.c:204241,1
    - Dst: fts5yy_destructor
      Src: /src/nss/lib/sqlite/sqlite3.c:204244,1
    - Dst: fts5yy_parse_failed
      Src: /src/nss/lib/sqlite/sqlite3.c:204246,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:204259,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:204261,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:204264,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 84
    argCount: 3
    argNames:
    - fts5yyp
    - fts5yymajor
    - "fts5yyminor       /* The value for the token */\n  sqlite3Fts5ParserARG_PDECL"
    argTypes:
    - void*
    - int
    - sqlite3Fts5ParserFTS5TOKENTYPE
    assertStmts:
    - condition: ( fts5yyact == fts5YY_ERROR_ACTION )
      pos:
        line_end: 204152
        line_start: 204152
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( fts5yyact==fts5yypParser->fts5yytos->stateno )
      pos:
        line_end: 204136
        line_start: 204136
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 204268
      start: 204100
    functionDepth: 6
    functionLinenumber: 204100
    functionLinenumberEnd: 204268
    functionName: sqlite3Fts5Parser
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5yy_destructor
    - fts5yy_find_reduce_action
    - fts5yy_pop_parser_stack
    - fts5yy_accept
    - fts5yy_find_shift_action
    - fts5yy_shift
    - fprintf
    - assert
    - fts5yy_parse_failed
    - fts5yy_syntax_error
    - fts5yy_reduce
    linkageType: ''
    returnType: void
    signature: "void sqlite3Fts5Parser(\n  void *fts5yyp,                   /* The
      parser */\n  int fts5yymajor,                 /* The major token code number
      */\n  sqlite3Fts5ParserFTS5TOKENTYPE fts5yyminor       /* The value for the
      token */\n  sqlite3Fts5ParserARG_PDECL               /* Optional %extra_argument
      parameter */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - iToken
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204283
      start: 204274
    functionDepth: 0
    functionLinenumber: 204274
    functionLinenumberEnd: 204283
    functionName: sqlite3Fts5ParserFallback
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5ParserFallback(int iToken)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CInstIter*::pApi::xInst
      Src: /src/nss/lib/sqlite/sqlite3.c:204345,1
    - Dst: CInstIter*::pApi::xPhraseSize
      Src: /src/nss/lib/sqlite/sqlite3.c:204348,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - pIter
    argTypes:
    - CInstIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204363
      start: 204338
    functionDepth: 0
    functionLinenumber: 204338
    functionLinenumberEnd: 204363
    functionName: fts5CInstIterNext
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - CInstIter*::pApi::xPhraseSize
    - CInstIter*::pApi::xInst
    linkageType: ''
    returnType: int
    signature: int fts5CInstIterNext(CInstIter *pIter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:204377,1
    - Dst: Fts5ExtensionApi*::xInstCount
      Src: /src/nss/lib/sqlite/sqlite3.c:204381,1
    - Dst: fts5CInstIterNext
      Src: /src/nss/lib/sqlite/sqlite3.c:204384,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - pApi
    - pFts
    - iCol
    - pIter
    argTypes:
    - Fts5ExtensionApi*
    - Fts5Context*
    - int
    - CInstIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204388
      start: 204369
    functionDepth: 1
    functionLinenumber: 204369
    functionLinenumberEnd: 204388
    functionName: fts5CInstIterInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - Fts5ExtensionApi*::xInstCount
    - fts5CInstIterNext
    linkageType: ''
    returnType: int
    signature: "int fts5CInstIterInit(\n  const Fts5ExtensionApi *pApi,\n  Fts5Context
      *pFts,\n  int iCol,\n  CInstIter *pIter\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:204424,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:204425,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 4
    argNames:
    - pRc
    - p
    - z
    - n
    argTypes:
    - int*
    - HighlightContext*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204428
      start: 204418
    functionDepth: 10
    functionLinenumber: 204418
    functionLinenumberEnd: 204428
    functionName: fts5HighlightAppend
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mprintf
    - strlen
    linkageType: ''
    returnType: void
    signature: "void fts5HighlightAppend(\n  int *pRc, \n  HighlightContext *p, \n
      \ const char *z, int n\n)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAM2
      Src: /src/nss/lib/sqlite/sqlite3.c:204445,1
    - Dst: fts5HighlightAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:204456,1
    - Dst: fts5HighlightAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:204457,1
    - Dst: fts5HighlightAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:204463,1
    - Dst: fts5HighlightAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:204465,1
    - Dst: fts5HighlightAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:204466,1
    - Dst: fts5CInstIterNext
      Src: /src/nss/lib/sqlite/sqlite3.c:204469,1
    - Dst: fts5HighlightAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:204474,1
    - Dst: fts5HighlightAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:204477,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 35
    argCount: 6
    argNames:
    - pContext
    - tflags
    - pToken
    - nToken
    - iStartOff
    - iEndOff
    argTypes:
    - void*
    - int
    - char*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204482
      start: 204433
    functionDepth: 11
    functionLinenumber: 204433
    functionLinenumberEnd: 204482
    functionName: fts5HighlightCb
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5HighlightAppend
    - UNUSED_PARAM2
    - fts5CInstIterNext
    linkageType: ''
    returnType: int
    signature: "int fts5HighlightCb(\n  void *pContext,                 /* Pointer
      to HighlightContext object */\n  int tflags,                     /* Mask of
      FTS5_TOKEN_* flags */\n  const char *pToken,             /* Buffer containing
      token */\n  int nToken,                     /* Size of token in bytes */\n  int
      iStartOff,                  /* Start offset of token */\n  int iEndOff                     /*
      End offset of token */\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_result_error
      Src: /src/nss/lib/sqlite/sqlite3.c:204500,1
    - Dst: sqlite3_value_int
      Src: /src/nss/lib/sqlite/sqlite3.c:204504,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:204505,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:204506,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:204507,1
    - Dst: Fts5ExtensionApi*::xColumnText
      Src: /src/nss/lib/sqlite/sqlite3.c:204508,1
    - Dst: fts5CInstIterInit
      Src: /src/nss/lib/sqlite/sqlite3.c:204512,1
    - Dst: Fts5ExtensionApi*::xTokenize
      Src: /src/nss/lib/sqlite/sqlite3.c:204516,1
    - Dst: fts5HighlightAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:204518,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:204521,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:204523,1
    - Dst: sqlite3_result_error_code
      Src: /src/nss/lib/sqlite/sqlite3.c:204526,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 5
    argNames:
    - pApi
    - pFts
    - pCtx
    - nVal
    - apVal
    argTypes:
    - Fts5ExtensionApi*
    - Fts5Context*
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204528
      start: 204487
    functionDepth: 15
    functionLinenumber: 204487
    functionLinenumberEnd: 204528
    functionName: fts5HighlightFunction
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    - sqlite3_result_error_code
    - sqlite3_value_int
    - memset
    - Fts5ExtensionApi*::xTokenize
    - sqlite3_value_text
    - fts5HighlightAppend
    - Fts5ExtensionApi*::xColumnText
    - fts5CInstIterInit
    - sqlite3_result_text
    - sqlite3_result_error
    linkageType: ''
    returnType: void
    signature: "void fts5HighlightFunction(\n  const Fts5ExtensionApi *pApi,   /*
      API offered by current FTS version */\n  Fts5Context *pFts,              /*
      First arg to pass to pApi functions */\n  sqlite3_context *pCtx,          /*
      Context for returning result/error */\n  int nVal,                       /*
      Number of values in apVal[] array */\n  sqlite3_value **apVal           /* Array
      of trailing arguments */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_realloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:204555,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - p
    - iAdd
    argTypes:
    - Fts5SFinder*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204562
      start: 204550
    functionDepth: 7
    functionLinenumber: 204550
    functionLinenumberEnd: 204562
    functionName: fts5SentenceFinderAdd
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_realloc64
    linkageType: ''
    returnType: int
    signature: int fts5SentenceFinderAdd(Fts5SFinder *p, int iAdd)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAM2
      Src: /src/nss/lib/sqlite/sqlite3.c:204579,1
    - Dst: UNUSED_PARAM
      Src: /src/nss/lib/sqlite/sqlite3.c:204580,1
    - Dst: fts5SentenceFinderAdd
      Src: /src/nss/lib/sqlite/sqlite3.c:204592,1
    - Dst: fts5SentenceFinderAdd
      Src: /src/nss/lib/sqlite/sqlite3.c:204595,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 19
    argCount: 6
    argNames:
    - pContext
    - tflags
    - pToken
    - nToken
    - iStartOff
    - iEndOff
    argTypes:
    - void*
    - int
    - char*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204600
      start: 204569
    functionDepth: 8
    functionLinenumber: 204569
    functionLinenumberEnd: 204600
    functionName: fts5SentenceFinderCb
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAM2
    - fts5SentenceFinderAdd
    - UNUSED_PARAM
    linkageType: ''
    returnType: int
    signature: "int fts5SentenceFinderCb(\n  void *pContext,                 /* Pointer
      to HighlightContext object */\n  int tflags,                     /* Mask of
      FTS5_TOKEN_* flags */\n  const char *pToken,             /* Buffer containing
      token */\n  int nToken,                     /* Size of token in bytes */\n  int
      iStartOff,                  /* Start offset of token */\n  int iEndOff                     /*
      End offset of token */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Fts5ExtensionApi*::xInstCount
      Src: /src/nss/lib/sqlite/sqlite3.c:204624,1
    - Dst: Fts5ExtensionApi*::xInst
      Src: /src/nss/lib/sqlite/sqlite3.c:204626,1
    - Dst: Fts5ExtensionApi*::xPhraseSize
      Src: /src/nss/lib/sqlite/sqlite3.c:204631,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 9
    argNames:
    - pApi
    - pFts
    - nDocsize
    - aSeen
    - iCol
    - iPos
    - nToken
    - pnScore
    - piPos
    argTypes:
    - Fts5ExtensionApi*
    - Fts5Context*
    - int
    - unsigned char*
    - int
    - int
    - int
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204644
      start: 204602
    functionDepth: 0
    functionLinenumber: 204602
    functionLinenumberEnd: 204644
    functionName: fts5SnippetScore
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - Fts5ExtensionApi*::xInstCount
    - Fts5ExtensionApi*::xInst
    - Fts5ExtensionApi*::xPhraseSize
    linkageType: ''
    returnType: int
    signature: "int fts5SnippetScore(\n  const Fts5ExtensionApi *pApi,   /* API offered
      by current FTS version */\n  Fts5Context *pFts,              /* First arg to
      pass to pApi functions */\n  int nDocsize,                   /* Size of column
      in tokens */\n  unsigned char *aSeen,           /* Array with one element per
      query phrase */\n  int iCol,                       /* Column to score */\n  int
      iPos,                       /* Starting offset to score */\n  int nToken,                     /*
      Max tokens per snippet */\n  int *pnScore,                   /* OUT: Score */\n
      \ int *piPos                      /* OUT: Adjusted offset */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:204652,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pVal
    argTypes:
    - sqlite3_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204654
      start: 204651
    functionDepth: 15
    functionLinenumber: 204651
    functionLinenumberEnd: 204654
    functionName: fts5ValueToText
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_value_text
    linkageType: ''
    returnType: char
    signature: char *fts5ValueToText(sqlite3_value *pVal)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_result_error
      Src: /src/nss/lib/sqlite/sqlite3.c:204684,1
    - Dst: Fts5ExtensionApi*::xColumnCount
      Src: /src/nss/lib/sqlite/sqlite3.c:204688,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:204689,1
    - Dst: sqlite3_value_int
      Src: /src/nss/lib/sqlite/sqlite3.c:204690,1
    - Dst: fts5ValueToText
      Src: /src/nss/lib/sqlite/sqlite3.c:204691,1
    - Dst: fts5ValueToText
      Src: /src/nss/lib/sqlite/sqlite3.c:204692,1
    - Dst: fts5ValueToText
      Src: /src/nss/lib/sqlite/sqlite3.c:204693,1
    - Dst: sqlite3_value_int
      Src: /src/nss/lib/sqlite/sqlite3.c:204694,1
    - Dst: Fts5ExtensionApi*::xPhraseCount
      Src: /src/nss/lib/sqlite/sqlite3.c:204697,1
    - Dst: sqlite3_malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:204698,1
    - Dst: Fts5ExtensionApi*::xInstCount
      Src: /src/nss/lib/sqlite/sqlite3.c:204703,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:204706,1
    - Dst: Fts5ExtensionApi*::xColumnText
      Src: /src/nss/lib/sqlite/sqlite3.c:204714,1
    - Dst: Fts5ExtensionApi*::xTokenize
      Src: /src/nss/lib/sqlite/sqlite3.c:204716,1
    - Dst: Fts5ExtensionApi*::xColumnSize
      Src: /src/nss/lib/sqlite/sqlite3.c:204720,1
    - Dst: Fts5ExtensionApi*::xInst
      Src: /src/nss/lib/sqlite/sqlite3.c:204729,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:204733,1
    - Dst: fts5SnippetScore
      Src: /src/nss/lib/sqlite/sqlite3.c:204734,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:204750,1
    - Dst: fts5SnippetScore
      Src: /src/nss/lib/sqlite/sqlite3.c:204751,1
    - Dst: Fts5ExtensionApi*::xColumnText
      Src: /src/nss/lib/sqlite/sqlite3.c:204769,1
    - Dst: Fts5ExtensionApi*::xColumnSize
      Src: /src/nss/lib/sqlite/sqlite3.c:204772,1
    - Dst: fts5CInstIterInit
      Src: /src/nss/lib/sqlite/sqlite3.c:204776,1
    - Dst: fts5HighlightAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:204783,1
    - Dst: fts5CInstIterNext
      Src: /src/nss/lib/sqlite/sqlite3.c:204789,1
    - Dst: Fts5ExtensionApi*::xTokenize
      Src: /src/nss/lib/sqlite/sqlite3.c:204793,1
    - Dst: fts5HighlightAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:204796,1
    - Dst: fts5HighlightAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:204798,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:204802,1
    - Dst: sqlite3_result_error_code
      Src: /src/nss/lib/sqlite/sqlite3.c:204804,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:204806,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:204807,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:204808,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 106
    argCount: 5
    argNames:
    - pApi
    - pFts
    - pCtx
    - nVal
    - apVal
    argTypes:
    - Fts5ExtensionApi*
    - Fts5Context*
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204809
      start: 204659
    functionDepth: 16
    functionLinenumber: 204659
    functionLinenumberEnd: 204809
    functionName: fts5SnippetFunction
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - Fts5ExtensionApi*::xInst
    - sqlite3_value_int
    - Fts5ExtensionApi*::xPhraseCount
    - Fts5ExtensionApi*::xTokenize
    - fts5HighlightAppend
    - Fts5ExtensionApi*::xColumnText
    - sqlite3_result_error_code
    - Fts5ExtensionApi*::xColumnCount
    - memset
    - fts5SnippetScore
    - fts5CInstIterInit
    - fts5CInstIterNext
    - fts5ValueToText
    - sqlite3_result_text
    - sqlite3_malloc
    - Fts5ExtensionApi*::xInstCount
    - Fts5ExtensionApi*::xColumnSize
    - sqlite3_free
    - sqlite3_result_error
    linkageType: ''
    returnType: void
    signature: "void fts5SnippetFunction(\n  const Fts5ExtensionApi *pApi,   /* API
      offered by current FTS version */\n  Fts5Context *pFts,              /* First
      arg to pass to pApi functions */\n  sqlite3_context *pCtx,          /* Context
      for returning result/error */\n  int nVal,                       /* Number of
      values in apVal[] array */\n  sqlite3_value **apVal           /* Array of trailing
      arguments */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAM2
      Src: /src/nss/lib/sqlite/sqlite3.c:204835,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - pApi
    - pFts
    - pUserData
    argTypes:
    - Fts5ExtensionApi*
    - Fts5Context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204838
      start: 204829
    functionDepth: 1
    functionLinenumber: 204829
    functionLinenumberEnd: 204838
    functionName: fts5CountCb
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAM2
    linkageType: ''
    returnType: int
    signature: "int fts5CountCb(\n  const Fts5ExtensionApi *pApi, \n  Fts5Context
      *pFts,\n  void *pUserData                 /* Pointer to sqlite3_int64 variable
      */\n)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Fts5ExtensionApi*::xGetAuxdata
      Src: /src/nss/lib/sqlite/sqlite3.c:204853,1
    - Dst: Fts5ExtensionApi*::xPhraseCount
      Src: /src/nss/lib/sqlite/sqlite3.c:204862,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:204864,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:204868,1
    - Dst: Fts5ExtensionApi*::xRowCount
      Src: /src/nss/lib/sqlite/sqlite3.c:204875,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:204876,1
    - Dst: Fts5ExtensionApi*::xColumnTotalSize
      Src: /src/nss/lib/sqlite/sqlite3.c:204877,1
    - Dst: Fts5ExtensionApi*::xQueryPhrase
      Src: /src/nss/lib/sqlite/sqlite3.c:204883,1
    - Dst: log
      Src: /src/nss/lib/sqlite/sqlite3.c:204898,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:204905,1
    - Dst: Fts5ExtensionApi*::xSetAuxdata
      Src: /src/nss/lib/sqlite/sqlite3.c:204907,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 3
    argNames:
    - pApi
    - pFts
    - ppData
    argTypes:
    - Fts5ExtensionApi*
    - Fts5Context*
    - Fts5Bm25Data**
    assertStmts:
    - condition: ( rc!=SQLITE_OK || nRow>0 )
      pos:
        line_end: 204875
        line_start: 204875
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 204913
      start: 204845
    functionDepth: 6
    functionLinenumber: 204845
    functionLinenumberEnd: 204913
    functionName: fts5Bm25GetData
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_malloc64
    - Fts5ExtensionApi*::xQueryPhrase
    - Fts5ExtensionApi*::xPhraseCount
    - memset
    - assert
    - Fts5ExtensionApi*::xGetAuxdata
    - Fts5ExtensionApi*::xColumnTotalSize
    - Fts5ExtensionApi*::xRowCount
    - sqlite3_free
    - Fts5ExtensionApi*::xSetAuxdata
    - log
    linkageType: ''
    returnType: int
    signature: "int fts5Bm25GetData(\n  const Fts5ExtensionApi *pApi, \n  Fts5Context
      *pFts,\n  Fts5Bm25Data **ppData           /* OUT: bm25-data object for this
      query */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fts5Bm25GetData
      Src: /src/nss/lib/sqlite/sqlite3.c:204937,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:204940,1
    - Dst: Fts5ExtensionApi*::xInstCount
      Src: /src/nss/lib/sqlite/sqlite3.c:204941,1
    - Dst: Fts5ExtensionApi*::xInst
      Src: /src/nss/lib/sqlite/sqlite3.c:204945,1
    - Dst: sqlite3_value_double
      Src: /src/nss/lib/sqlite/sqlite3.c:204947,1
    - Dst: Fts5ExtensionApi*::xColumnSize
      Src: /src/nss/lib/sqlite/sqlite3.c:204955,1
    - Dst: sqlite3_result_double
      Src: /src/nss/lib/sqlite/sqlite3.c:204970,1
    - Dst: sqlite3_result_error_code
      Src: /src/nss/lib/sqlite/sqlite3.c:204972,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 5
    argNames:
    - pApi
    - pFts
    - pCtx
    - nVal
    - apVal
    argTypes:
    - Fts5ExtensionApi*
    - Fts5Context*
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204974
      start: 204918
    functionDepth: 13
    functionLinenumber: 204918
    functionLinenumberEnd: 204974
    functionName: fts5Bm25Function
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5Bm25GetData
    - sqlite3_result_error_code
    - sqlite3_result_double
    - Fts5ExtensionApi*::xInstCount
    - Fts5ExtensionApi*::xInst
    - memset
    - Fts5ExtensionApi*::xColumnSize
    - sqlite3_value_double
    linkageType: ''
    returnType: void
    signature: "void fts5Bm25Function(\n  const Fts5ExtensionApi *pApi,   /* API offered
      by current FTS version */\n  Fts5Context *pFts,              /* First arg to
      pass to pApi functions */\n  sqlite3_context *pCtx,          /* Context for
      returning result/error */\n  int nVal,                       /* Number of values
      in apVal[] array */\n  sqlite3_value **apVal           /* Array of trailing
      arguments */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:204990,1
    - Dst: fts5_api*::xCreateFunction
      Src: /src/nss/lib/sqlite/sqlite3.c:204991,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pApi
    argTypes:
    - fts5_api*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205000
      start: 204976
    functionDepth: 1
    functionLinenumber: 204976
    functionLinenumberEnd: 205000
    functionName: sqlite3Fts5AuxInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ArraySize
    - fts5_api*::xCreateFunction
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5AuxInit(fts5_api *pApi)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_realloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:205026,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - pRc
    - pBuf
    - nByte
    argTypes:
    - int*
    - Fts5Buffer*
    - u32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205036
      start: 205019
    functionDepth: 7
    functionLinenumber: 205019
    functionLinenumberEnd: 205036
    functionName: sqlite3Fts5BufferSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_realloc64
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5BufferSize(int *pRc, Fts5Buffer *pBuf, u32 nByte)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fts5BufferGrow
      Src: /src/nss/lib/sqlite/sqlite3.c:205044,1
    - Dst: sqlite3Fts5PutVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:205045,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - pRc
    - pBuf
    - iVal
    argTypes:
    - int*
    - Fts5Buffer*
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205046
      start: 205043
    functionDepth: 1
    functionLinenumber: 205043
    functionLinenumberEnd: 205046
    functionName: sqlite3Fts5BufferAppendVarint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5BufferGrow
    - sqlite3Fts5PutVarint
    linkageType: ''
    returnType: void
    signature: void sqlite3Fts5BufferAppendVarint(int *pRc, Fts5Buffer *pBuf, i64
      iVal)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - aBuf
    - iVal
    argTypes:
    - u8*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205053
      start: 205048
    functionDepth: 0
    functionLinenumber: 205048
    functionLinenumberEnd: 205053
    functionName: sqlite3Fts5Put32
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sqlite3Fts5Put32(u8 *aBuf, int iVal)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aBuf
    argTypes:
    - u8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205057
      start: 205055
    functionDepth: 0
    functionLinenumber: 205055
    functionLinenumberEnd: 205057
    functionName: sqlite3Fts5Get32
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5Get32(const u8 *aBuf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert_nc
      Src: /src/nss/lib/sqlite/sqlite3.c:205070,1
    - Dst: fts5BufferGrow
      Src: /src/nss/lib/sqlite/sqlite3.c:205072,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:205073,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - pRc
    - pBuf
    - nData
    - pData
    argTypes:
    - int*
    - Fts5Buffer*
    - u32
    - u8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205076
      start: 205064
    functionDepth: 1
    functionLinenumber: 205064
    functionLinenumberEnd: 205076
    functionName: sqlite3Fts5BufferAppendBlob
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - fts5BufferGrow
    - assert_nc
    linkageType: ''
    returnType: void
    signature: "void sqlite3Fts5BufferAppendBlob(\n  int *pRc,\n  Fts5Buffer *pBuf,
      \n  u32 nData, \n  const u8 *pData\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:205088,1
    - Dst: sqlite3Fts5BufferAppendBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:205089,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - pRc
    - pBuf
    - zStr
    argTypes:
    - int*
    - Fts5Buffer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205091
      start: 205083
    functionDepth: 2
    functionLinenumber: 205083
    functionLinenumberEnd: 205091
    functionName: sqlite3Fts5BufferAppendString
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5BufferAppendBlob
    - strlen
    linkageType: ''
    returnType: void
    signature: "void sqlite3Fts5BufferAppendString(\n  int *pRc,\n  Fts5Buffer *pBuf,
      \n  const char *zStr\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/nss/lib/sqlite/sqlite3.c:205109,1
    - Dst: sqlite3_vmprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:205110,1
    - Dst: va_end
      Src: /src/nss/lib/sqlite/sqlite3.c:205111,1
    - Dst: sqlite3Fts5BufferAppendString
      Src: /src/nss/lib/sqlite/sqlite3.c:205116,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:205117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - pRc
    - pBuf
    - zFmt
    argTypes:
    - int*
    - Fts5Buffer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205120
      start: 205101
    functionDepth: 9
    functionLinenumber: 205101
    functionLinenumberEnd: 205120
    functionName: sqlite3Fts5BufferAppendPrintf
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_vmprintf
    - va_end
    - va_start
    - sqlite3Fts5BufferAppendString
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: "void sqlite3Fts5BufferAppendPrintf(\n  int *pRc,\n  Fts5Buffer *pBuf,
      \n  char *zFmt, ...\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/nss/lib/sqlite/sqlite3.c:205126,1
    - Dst: sqlite3_vmprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:205127,1
    - Dst: va_end
      Src: /src/nss/lib/sqlite/sqlite3.c:205128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - pRc
    - zFmt
    argTypes:
    - int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205134
      start: 205122
    functionDepth: 9
    functionLinenumber: 205122
    functionLinenumberEnd: 205134
    functionName: sqlite3Fts5Mprintf
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_vmprintf
    - va_start
    - va_end
    linkageType: ''
    returnType: char
    signature: char *sqlite3Fts5Mprintf(int *pRc, const char *zFmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:205141,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:205142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pBuf
    argTypes:
    - Fts5Buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205143
      start: 205140
    functionDepth: 3
    functionLinenumber: 205140
    functionLinenumberEnd: 205143
    functionName: sqlite3Fts5BufferFree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void sqlite3Fts5BufferFree(Fts5Buffer *pBuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pBuf
    argTypes:
    - Fts5Buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205151
      start: 205149
    functionDepth: 0
    functionLinenumber: 205149
    functionLinenumberEnd: 205151
    functionName: sqlite3Fts5BufferZero
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sqlite3Fts5BufferZero(Fts5Buffer *pBuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5BufferAppendBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:205165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - pRc
    - pBuf
    - nData
    - pData
    argTypes:
    - int*
    - Fts5Buffer*
    - int
    - u8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205166
      start: 205158
    functionDepth: 2
    functionLinenumber: 205158
    functionLinenumberEnd: 205166
    functionName: sqlite3Fts5BufferSet
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5BufferAppendBlob
    linkageType: ''
    returnType: void
    signature: "void sqlite3Fts5BufferSet(\n  int *pRc,\n  Fts5Buffer *pBuf, \n  int
      nData, \n  const u8 *pData\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fts5FastGetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:205181,1
    - Dst: fts5FastGetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:205187,1
    - Dst: fts5FastGetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:205189,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 4
    argNames:
    - a
    - n
    - pi
    - piOff
    argTypes:
    - u8*
    - int
    - int*
    - i64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205200
      start: 205168
    functionDepth: 1
    functionLinenumber: 205168
    functionLinenumberEnd: 205200
    functionName: sqlite3Fts5PoslistNext64
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5FastGetVarint32
    linkageType: ''
    returnType: int
    signature: "int sqlite3Fts5PoslistNext64(\n  const u8 *a, int n,             /*
      Buffer containing poslist */\n  int *pi,                        /* IN/OUT: Offset
      within a[] */\n  i64 *piOff                      /* IN/OUT: Current offset */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5PoslistNext64
      Src: /src/nss/lib/sqlite/sqlite3.c:205208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pIter
    argTypes:
    - Fts5PoslistReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205212
      start: 205207
    functionDepth: 2
    functionLinenumber: 205207
    functionLinenumberEnd: 205212
    functionName: sqlite3Fts5PoslistReaderNext
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5PoslistNext64
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5PoslistReaderNext(Fts5PoslistReader *pIter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:205218,1
    - Dst: sqlite3Fts5PoslistReaderNext
      Src: /src/nss/lib/sqlite/sqlite3.c:205221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - a
    - n
    - pIter
    argTypes:
    - u8*
    - int
    - Fts5PoslistReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205223
      start: 205214
    functionDepth: 3
    functionLinenumber: 205214
    functionLinenumberEnd: 205223
    functionName: sqlite3Fts5PoslistReaderInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3Fts5PoslistReaderNext
    linkageType: ''
    returnType: int
    signature: "int sqlite3Fts5PoslistReaderInit(\n  const u8 *a, int n,             /*
      Poslist buffer to iterate through */\n  Fts5PoslistReader *pIter        /* Iterator
      object to initialize */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5PutVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:205239,1
    - Dst: sqlite3Fts5PutVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:205242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - pBuf
    - piPrev
    - iPos
    argTypes:
    - Fts5Buffer*
    - i64*
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205244
      start: 205231
    functionDepth: 1
    functionLinenumber: 205231
    functionLinenumberEnd: 205244
    functionName: sqlite3Fts5PoslistSafeAppend
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5PutVarint
    linkageType: ''
    returnType: void
    signature: "void sqlite3Fts5PoslistSafeAppend(\n  Fts5Buffer *pBuf, \n  i64 *piPrev,
      \n  i64 iPos\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fts5BufferGrow
      Src: /src/nss/lib/sqlite/sqlite3.c:205252,1
    - Dst: sqlite3Fts5PoslistSafeAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:205253,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - pBuf
    - pWriter
    - iPos
    argTypes:
    - Fts5Buffer*
    - Fts5PoslistWriter*
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205255
      start: 205246
    functionDepth: 2
    functionLinenumber: 205246
    functionLinenumberEnd: 205255
    functionName: sqlite3Fts5PoslistWriterAppend
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5BufferGrow
    - sqlite3Fts5PoslistSafeAppend
    linkageType: ''
    returnType: int
    signature: "int sqlite3Fts5PoslistWriterAppend(\n  Fts5Buffer *pBuf, \n  Fts5PoslistWriter
      *pWriter,\n  i64 iPos\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:205260,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:205264,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - pRc
    - nByte
    argTypes:
    - int*
    - sqlite3_int64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205268
      start: 205257
    functionDepth: 6
    functionLinenumber: 205257
    functionLinenumberEnd: 205268
    functionName: sqlite3Fts5MallocZero
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3_malloc64
    linkageType: ''
    returnType: void
    signature: void *sqlite3Fts5MallocZero(int *pRc, sqlite3_int64 nByte)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:205282,1
    - Dst: sqlite3_malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:205284,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:205286,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - pRc
    - pIn
    - nIn
    argTypes:
    - int*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205293
      start: 205278
    functionDepth: 6
    functionLinenumber: 205278
    functionLinenumberEnd: 205293
    functionName: sqlite3Fts5Strndup
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_malloc
    - memcpy
    - strlen
    linkageType: ''
    returnType: char
    signature: char *sqlite3Fts5Strndup(int *pRc, const char *pIn, int nIn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205319
      start: 205306
    functionDepth: 0
    functionLinenumber: 205306
    functionLinenumberEnd: 205319
    functionName: sqlite3Fts5IsBareword
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5IsBareword(char t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:205338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pp
    argTypes:
    - Fts5Termset**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205340
      start: 205336
    functionDepth: 7
    functionLinenumber: 205336
    functionLinenumberEnd: 205340
    functionName: sqlite3Fts5TermsetNew
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5MallocZero
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5TermsetNew(Fts5Termset **pp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:205363,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:205368,1
    - Dst: sqlite3Fts5MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:205376,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:205381,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 5
    argNames:
    - p
    - iIdx
    - pTerm
    - nTerm
    - pbPresent
    argTypes:
    - Fts5Termset*
    - int
    - char*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205389
      start: 205342
    functionDepth: 7
    functionLinenumber: 205342
    functionLinenumberEnd: 205389
    functionName: sqlite3Fts5TermsetAdd
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ArraySize
    - sqlite3Fts5MallocZero
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int sqlite3Fts5TermsetAdd(\n  Fts5Termset *p, \n  int iIdx,\n  const
      char *pTerm, int nTerm, \n  int *pbPresent\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:205394,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:205399,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:205402,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - p
    argTypes:
    - Fts5Termset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205404
      start: 205391
    functionDepth: 3
    functionLinenumber: 205391
    functionLinenumberEnd: 205404
    functionName: sqlite3Fts5TermsetFree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ArraySize
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void sqlite3Fts5TermsetFree(Fts5Termset *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205435
      start: 205433
    functionDepth: 0
    functionLinenumber: 205433
    functionLinenumberEnd: 205435
    functionName: fts5_iswhitespace
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fts5_iswhitespace(char x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205439
      start: 205437
    functionDepth: 0
    functionLinenumber: 205437
    functionLinenumberEnd: 205439
    functionName: fts5_isopenquote
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fts5_isopenquote(char x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fts5_iswhitespace
      Src: /src/nss/lib/sqlite/sqlite3.c:205449,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - pIn
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205452
      start: 205446
    functionDepth: 1
    functionLinenumber: 205446
    functionLinenumberEnd: 205452
    functionName: fts5ConfigSkipWhitespace
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5_iswhitespace
    linkageType: ''
    returnType: char
    signature: char *fts5ConfigSkipWhitespace(const char *pIn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5IsBareword
      Src: /src/nss/lib/sqlite/sqlite3.c:205461,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pIn
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205464
      start: 205459
    functionDepth: 1
    functionLinenumber: 205459
    functionLinenumberEnd: 205464
    functionName: fts5ConfigSkipBareword
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5IsBareword
    linkageType: ''
    returnType: char
    signature: char *fts5ConfigSkipBareword(const char *pIn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205468
      start: 205466
    functionDepth: 0
    functionLinenumber: 205466
    functionLinenumberEnd: 205468
    functionName: fts5_isdigit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fts5_isdigit(char a)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_strnicmp
      Src: /src/nss/lib/sqlite/sqlite3.c:205476,1
    - Dst: fts5_isdigit
      Src: /src/nss/lib/sqlite/sqlite3.c:205518,1
    - Dst: fts5_isdigit
      Src: /src/nss/lib/sqlite/sqlite3.c:205523,1
    - Dst: fts5_isdigit
      Src: /src/nss/lib/sqlite/sqlite3.c:205525,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 55
    argCount: 1
    argNames:
    - pIn
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205533
      start: 205472
    functionDepth: 1
    functionLinenumber: 205472
    functionLinenumberEnd: 205533
    functionName: fts5ConfigSkipLiteral
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5_isdigit
    - sqlite3_strnicmp
    linkageType: ''
    returnType: char
    signature: char *fts5ConfigSkipLiteral(const char *pIn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:205555,1
    - Dst: ALWAYS
      Src: /src/nss/lib/sqlite/sqlite3.c:205558,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 1
    argNames:
    - z
    argTypes:
    - char*
    assertStmts:
    - condition: ( q=='[' || q=='\'' || q=='"' || q=='`' )
      pos:
        line_end: 205554
        line_start: 205554
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 205578
      start: 205548
    functionDepth: 1
    functionLinenumber: 205548
    functionLinenumberEnd: 205578
    functionName: fts5Dequote
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - ALWAYS
    linkageType: ''
    returnType: int
    signature: int fts5Dequote(char *z)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:205596,1
    - Dst: fts5_iswhitespace
      Src: /src/nss/lib/sqlite/sqlite3.c:205596,1
    - Dst: fts5Dequote
      Src: /src/nss/lib/sqlite/sqlite3.c:205599,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - z
    argTypes:
    - char*
    assertStmts:
    - condition: ( 0==fts5_iswhitespace(z[0]) )
      pos:
        line_end: 205595
        line_start: 205595
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 205601
      start: 205593
    functionDepth: 2
    functionLinenumber: 205593
    functionLinenumberEnd: 205601
    functionName: sqlite3Fts5Dequote
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fts5_iswhitespace
    - fts5Dequote
    linkageType: ''
    returnType: void
    signature: void sqlite3Fts5Dequote(char *z)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:205615,1
    - Dst: sqlite3_strnicmp
      Src: /src/nss/lib/sqlite/sqlite3.c:205620,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - aEnum
    - zEnum
    - peVal
    argTypes:
    - Fts5Enum*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205628
      start: 205610
    functionDepth: 1
    functionLinenumber: 205610
    functionLinenumberEnd: 205628
    functionName: fts5ConfigSetEnum
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_strnicmp
    - strlen
    linkageType: ''
    returnType: int
    signature: "int fts5ConfigSetEnum(\n  const Fts5Enum *aEnum, \n  const char *zEnum,
      \n  int *peVal\n)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:205647,1
    - Dst: sqlite3_strnicmp
      Src: /src/nss/lib/sqlite/sqlite3.c:205648,1
    - Dst: sqlite3Fts5MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:205653,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:205669,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:205675,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:205688,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:205697,1
    - Dst: sqlite3_strnicmp
      Src: /src/nss/lib/sqlite/sqlite3.c:205701,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:205703,1
    - Dst: sqlite3Fts5MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:205704,1
    - Dst: sqlite3Fts5MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:205705,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:205710,1
    - Dst: fts5ConfigSkipWhitespace
      Src: /src/nss/lib/sqlite/sqlite3.c:205714,1
    - Dst: fts5ConfigSkipLiteral
      Src: /src/nss/lib/sqlite/sqlite3.c:205716,1
    - Dst: fts5ConfigSkipBareword
      Src: /src/nss/lib/sqlite/sqlite3.c:205718,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:205721,1
    - Dst: sqlite3Fts5Dequote
      Src: /src/nss/lib/sqlite/sqlite3.c:205723,1
    - Dst: fts5ConfigSkipWhitespace
      Src: /src/nss/lib/sqlite/sqlite3.c:205725,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:205729,1
    - Dst: sqlite3Fts5GetTokenizer
      Src: /src/nss/lib/sqlite/sqlite3.c:205732,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:205740,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:205741,1
    - Dst: sqlite3_strnicmp
      Src: /src/nss/lib/sqlite/sqlite3.c:205745,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:205747,1
    - Dst: sqlite3Fts5Mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:205752,1
    - Dst: sqlite3_strnicmp
      Src: /src/nss/lib/sqlite/sqlite3.c:205760,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:205762,1
    - Dst: sqlite3Fts5Strndup
      Src: /src/nss/lib/sqlite/sqlite3.c:205765,1
    - Dst: sqlite3_strnicmp
      Src: /src/nss/lib/sqlite/sqlite3.c:205770,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:205772,1
    - Dst: sqlite3_strnicmp
      Src: /src/nss/lib/sqlite/sqlite3.c:205780,1
    - Dst: fts5ConfigSetEnum
      Src: /src/nss/lib/sqlite/sqlite3.c:205788,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:205789,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:205794,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 117
    argCount: 5
    argNames:
    - pGlobal
    - pConfig
    - zCmd
    - zArg
    - pzErr
    argTypes:
    - Fts5Global*
    - Fts5Config*
    - char*
    - char*
    - char**
    assertStmts:
    - condition: ( pConfig->nPrefix<=FTS5_MAX_PREFIX_INDEXES )
      pos:
        line_end: 205696
        line_start: 205696
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 205796
      start: 205639
    functionDepth: 10
    functionLinenumber: 205639
    functionLinenumberEnd: 205796
    functionName: fts5ConfigParseSpecial
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5ConfigSkipLiteral
    - sqlite3_free
    - sqlite3Fts5Mprintf
    - memcpy
    - fts5ConfigSetEnum
    - fts5ConfigSkipBareword
    - sqlite3Fts5Strndup
    - sqlite3Fts5MallocZero
    - fts5ConfigSkipWhitespace
    - assert
    - sqlite3_mprintf
    - sqlite3Fts5Dequote
    - sqlite3Fts5GetTokenizer
    - sqlite3_strnicmp
    - strlen
    linkageType: ''
    returnType: int
    signature: "int fts5ConfigParseSpecial(\n  Fts5Global *pGlobal,\n  Fts5Config
      *pConfig,            /* Configuration object to update */\n  const char *zCmd,
      \              /* Special command to parse */\n  const char *zArg,               /*
      Argument to parse */\n  char **pzErr                    /* OUT: Error message
      */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:205804,1
    - Dst: sqlite3Fts5GetTokenizer
      Src: /src/nss/lib/sqlite/sqlite3.c:205805,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - pGlobal
    - pConfig
    argTypes:
    - Fts5Global*
    - Fts5Config*
    assertStmts:
    - condition: ( pConfig->pTok==0 && pConfig->pTokApi==0 )
      pos:
        line_end: 205803
        line_start: 205803
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 205808
      start: 205803
    functionDepth: 1
    functionLinenumber: 205803
    functionLinenumberEnd: 205808
    functionName: fts5ConfigDefaultTokenizer
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3Fts5GetTokenizer
    linkageType: ''
    returnType: int
    signature: int fts5ConfigDefaultTokenizer(Fts5Global *pGlobal, Fts5Config *pConfig)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:205833,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:205834,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:205836,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:205843,1
    - Dst: fts5_isopenquote
      Src: /src/nss/lib/sqlite/sqlite3.c:205844,1
    - Dst: fts5Dequote
      Src: /src/nss/lib/sqlite/sqlite3.c:205845,1
    - Dst: fts5ConfigSkipBareword
      Src: /src/nss/lib/sqlite/sqlite3.c:205849,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:205857,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 4
    argNames:
    - pRc
    - zIn
    - pzOut
    - pbQuoted
    argTypes:
    - int*
    - char*
    - char**
    - int*
    assertStmts:
    - condition: ( *pRc==SQLITE_OK )
      pos:
        line_end: 205835
        line_start: 205835
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 205863
      start: 205825
    functionDepth: 6
    functionLinenumber: 205825
    functionLinenumberEnd: 205863
    functionName: fts5ConfigGobbleWord
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - sqlite3_malloc64
    - fts5ConfigSkipBareword
    - fts5Dequote
    - assert
    - fts5_isopenquote
    - sqlite3_free
    - strlen
    linkageType: ''
    returnType: char
    signature: "char *fts5ConfigGobbleWord(\n  int *pRc,                       /*
      IN/OUT: Error code */\n  const char *zIn,                /* Buffer to gobble
      string/bareword from */\n  char **pzOut,                   /* OUT: malloc'd
      buffer containing str/bw */\n  int *pbQuoted                   /* OUT: Set to
      true if dequoting required */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:205872,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:205873,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:205875,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:205878,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:205881,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - p
    - zCol
    - zArg
    - pzErr
    argTypes:
    - Fts5Config*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205888
      start: 205865
    functionDepth: 10
    functionLinenumber: 205865
    functionLinenumberEnd: 205888
    functionName: fts5ConfigParseColumn
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mprintf
    - sqlite3_stricmp
    linkageType: ''
    returnType: int
    signature: "int fts5ConfigParseColumn(\n  Fts5Config *p, \n  char *zCol, \n  char
      *zArg, \n  char **pzErr\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5BufferAppendPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:205898,1
    - Dst: sqlite3Fts5BufferAppendPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:205902,1
    - Dst: sqlite3Fts5BufferAppendPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:205904,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:205909,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - p
    argTypes:
    - Fts5Config*
    assertStmts:
    - condition: ( p->zContentExprlist==0 )
      pos:
        line_end: 205908
        line_start: 205908
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 205912
      start: 205893
    functionDepth: 10
    functionLinenumber: 205893
    functionLinenumberEnd: 205912
    functionName: fts5ConfigMakeExprlist
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3Fts5BufferAppendPrintf
    linkageType: ''
    returnType: int
    signature: int fts5ConfigMakeExprlist(Fts5Config *p)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:205939,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:205941,1
    - Dst: sqlite3Fts5MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:205946,1
    - Dst: sqlite3Fts5Strndup
      Src: /src/nss/lib/sqlite/sqlite3.c:205948,1
    - Dst: sqlite3Fts5Strndup
      Src: /src/nss/lib/sqlite/sqlite3.c:205949,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:205955,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:205956,1
    - Dst: fts5ConfigGobbleWord
      Src: /src/nss/lib/sqlite/sqlite3.c:205968,1
    - Dst: fts5ConfigSkipWhitespace
      Src: /src/nss/lib/sqlite/sqlite3.c:205969,1
    - Dst: fts5ConfigSkipWhitespace
      Src: /src/nss/lib/sqlite/sqlite3.c:205975,1
    - Dst: fts5ConfigGobbleWord
      Src: /src/nss/lib/sqlite/sqlite3.c:205978,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:205984,1
    - Dst: fts5ConfigParseSpecial
      Src: /src/nss/lib/sqlite/sqlite3.c:205988,1
    - Dst: fts5ConfigParseColumn
      Src: /src/nss/lib/sqlite/sqlite3.c:205990,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:205996,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:205997,1
    - Dst: fts5ConfigDefaultTokenizer
      Src: /src/nss/lib/sqlite/sqlite3.c:206004,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:206010,1
    - Dst: sqlite3Fts5Mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:206020,1
    - Dst: sqlite3Fts5Strndup
      Src: /src/nss/lib/sqlite/sqlite3.c:206027,1
    - Dst: fts5ConfigMakeExprlist
      Src: /src/nss/lib/sqlite/sqlite3.c:206032,1
    - Dst: sqlite3Fts5ConfigFree
      Src: /src/nss/lib/sqlite/sqlite3.c:206036,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 76
    argCount: 6
    argNames:
    - pGlobal
    - db
    - nArg
    - azArg
    - ppOut
    - pzErr
    argTypes:
    - Fts5Global*
    - sqlite3*
    - int
    - char**
    - Fts5Config**
    - char**
    assertStmts:
    - condition: "( pRet->eContent==FTS5_CONTENT_NORMAL \n         || pRet->eContent==FTS5_CONTENT_NONE
        \n    )"
      pos:
        line_end: 206011
        line_start: 206009
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 206040
      start: 205926
    functionDepth: 11
    functionLinenumber: 205926
    functionLinenumberEnd: 206040
    functionName: sqlite3Fts5ConfigParse
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5Mprintf
    - sqlite3_malloc
    - sqlite3Fts5ConfigFree
    - sqlite3Fts5Strndup
    - sqlite3Fts5MallocZero
    - fts5ConfigSkipWhitespace
    - fts5ConfigParseColumn
    - memset
    - sqlite3_mprintf
    - assert
    - fts5ConfigDefaultTokenizer
    - fts5ConfigGobbleWord
    - fts5ConfigParseSpecial
    - sqlite3_stricmp
    - fts5ConfigMakeExprlist
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int sqlite3Fts5ConfigParse(\n  Fts5Global *pGlobal,\n  sqlite3 *db,\n
      \ int nArg,                       /* Number of arguments */\n  const char **azArg,
      \            /* Array of nArg CREATE VIRTUAL TABLE args */\n  Fts5Config **ppOut,
      \            /* OUT: Results of parse */\n  char **pzErr                    /*
      OUT: Error message */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Fts5Config*::pTokApi::xDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:206049,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:206051,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:206052,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:206054,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:206056,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:206057,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:206058,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:206059,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:206060,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:206061,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:206062,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:206063,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - pConfig
    argTypes:
    - Fts5Config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206065
      start: 206045
    functionDepth: 3
    functionLinenumber: 206045
    functionLinenumberEnd: 206065
    functionName: sqlite3Fts5ConfigFree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - Fts5Config*::pTokApi::xDelete
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void sqlite3Fts5ConfigFree(Fts5Config *pConfig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5Mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:206077,1
    - Dst: sqlite3Fts5Mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:206080,1
    - Dst: sqlite3Fts5Mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:206082,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:206086,1
    - Dst: sqlite3_declare_vtab
      Src: /src/nss/lib/sqlite/sqlite3.c:206088,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:206089,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - pConfig
    argTypes:
    - Fts5Config*
    assertStmts:
    - condition: ( zSql || rc==SQLITE_NOMEM )
      pos:
        line_end: 206085
        line_start: 206085
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 206093
      start: 206072
    functionDepth: 26
    functionLinenumber: 206072
    functionLinenumberEnd: 206093
    functionName: sqlite3Fts5ConfigDeclareVtab
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5Mprintf
    - assert
    - sqlite3_declare_vtab
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5ConfigDeclareVtab(Fts5Config *pConfig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Fts5Config*::pTokApi::xTokenize
      Src: /src/nss/lib/sqlite/sqlite3.c:206126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - pConfig
    - flags
    - pText
    - nText
    - pCtx
    argTypes:
    - Fts5Config*
    - int
    - char*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206129
      start: 206118
    functionDepth: 0
    functionLinenumber: 206118
    functionLinenumberEnd: 206129
    functionName: sqlite3Fts5Tokenize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - Fts5Config*::pTokApi::xTokenize
    linkageType: ''
    returnType: int
    signature: "int sqlite3Fts5Tokenize(\n  Fts5Config *pConfig,            /* FTS5
      Configuration object */\n  int flags,                      /* FTS5_TOKENIZE_*
      flags */\n  const char *pText, int nText,   /* Text to tokenize */\n  void *pCtx,
      \                    /* Context passed to xToken() */\n  int (*xToken)(void*,
      int, const char*, int, int, int)    /* Callback */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fts5ConfigSkipWhitespace
      Src: /src/nss/lib/sqlite/sqlite3.c:206141,1
    - Dst: fts5ConfigSkipLiteral
      Src: /src/nss/lib/sqlite/sqlite3.c:206142,1
    - Dst: fts5ConfigSkipWhitespace
      Src: /src/nss/lib/sqlite/sqlite3.c:206143,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - pIn
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206153
      start: 206137
    functionDepth: 2
    functionLinenumber: 206137
    functionLinenumberEnd: 206153
    functionName: fts5ConfigSkipArgs
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5ConfigSkipLiteral
    - fts5ConfigSkipWhitespace
    linkageType: ''
    returnType: char
    signature: char *fts5ConfigSkipArgs(const char *pIn)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fts5ConfigSkipWhitespace
      Src: /src/nss/lib/sqlite/sqlite3.c:206181,1
    - Dst: fts5ConfigSkipBareword
      Src: /src/nss/lib/sqlite/sqlite3.c:206183,1
    - Dst: sqlite3Fts5MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:206186,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:206187,1
    - Dst: fts5ConfigSkipWhitespace
      Src: /src/nss/lib/sqlite/sqlite3.c:206193,1
    - Dst: fts5ConfigSkipWhitespace
      Src: /src/nss/lib/sqlite/sqlite3.c:206199,1
    - Dst: fts5ConfigSkipArgs
      Src: /src/nss/lib/sqlite/sqlite3.c:206202,1
    - Dst: sqlite3Fts5MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:206206,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:206207,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:206214,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:206215,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 3
    argNames:
    - zIn
    - pzRank
    - pzRankArgs
    argTypes:
    - char*
    - char**
    - char**
    assertStmts:
    - condition: ( zRankArgs==0 )
      pos:
        line_end: 206214
        line_start: 206214
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 206221
      start: 206164
    functionDepth: 7
    functionLinenumber: 206164
    functionLinenumberEnd: 206221
    functionName: sqlite3Fts5ConfigParseRank
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - fts5ConfigSkipBareword
    - sqlite3Fts5MallocZero
    - fts5ConfigSkipWhitespace
    - assert
    - sqlite3_free
    - fts5ConfigSkipArgs
    linkageType: ''
    returnType: int
    signature: "int sqlite3Fts5ConfigParseRank(\n  const char *zIn,                /*
      Input string */\n  char **pzRank,                  /* OUT: Rank function name
      */\n  char **pzRankArgs               /* OUT: Rank function arguments */\n)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:206231,1
    - Dst: sqlite3_value_numeric_type
      Src: /src/nss/lib/sqlite/sqlite3.c:206233,1
    - Dst: sqlite3_value_int
      Src: /src/nss/lib/sqlite/sqlite3.c:206234,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:206243,1
    - Dst: sqlite3_value_numeric_type
      Src: /src/nss/lib/sqlite/sqlite3.c:206245,1
    - Dst: sqlite3_value_int
      Src: /src/nss/lib/sqlite/sqlite3.c:206246,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:206255,1
    - Dst: sqlite3_value_numeric_type
      Src: /src/nss/lib/sqlite/sqlite3.c:206257,1
    - Dst: sqlite3_value_int
      Src: /src/nss/lib/sqlite/sqlite3.c:206258,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:206268,1
    - Dst: sqlite3_value_numeric_type
      Src: /src/nss/lib/sqlite/sqlite3.c:206270,1
    - Dst: sqlite3_value_int
      Src: /src/nss/lib/sqlite/sqlite3.c:206271,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:206280,1
    - Dst: sqlite3_value_numeric_type
      Src: /src/nss/lib/sqlite/sqlite3.c:206282,1
    - Dst: sqlite3_value_int
      Src: /src/nss/lib/sqlite/sqlite3.c:206283,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:206293,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:206294,1
    - Dst: sqlite3Fts5ConfigParseRank
      Src: /src/nss/lib/sqlite/sqlite3.c:206297,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:206299,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:206300,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 71
    argCount: 4
    argNames:
    - pConfig
    - zKey
    - pVal
    - pbBadkey
    argTypes:
    - Fts5Config*
    - char*
    - sqlite3_value*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206311
      start: 206223
    functionDepth: 15
    functionLinenumber: 206223
    functionLinenumberEnd: 206311
    functionName: sqlite3Fts5ConfigSetValue
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_value_text
    - sqlite3_value_numeric_type
    - sqlite3_value_int
    - sqlite3_stricmp
    - sqlite3Fts5ConfigParseRank
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int sqlite3Fts5ConfigSetValue(\n  Fts5Config *pConfig, \n  const char
      *zKey, \n  sqlite3_value *pVal,\n  int *pbBadkey\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5Mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:206330,1
    - Dst: sqlite3_prepare_v2
      Src: /src/nss/lib/sqlite/sqlite3.c:206332,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:206333,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:206336,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:206338,1
    - Dst: sqlite3_column_text
      Src: /src/nss/lib/sqlite/sqlite3.c:206339,1
    - Dst: sqlite3_column_value
      Src: /src/nss/lib/sqlite/sqlite3.c:206340,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:206341,1
    - Dst: sqlite3_value_int
      Src: /src/nss/lib/sqlite/sqlite3.c:206342,1
    - Dst: sqlite3Fts5ConfigSetValue
      Src: /src/nss/lib/sqlite/sqlite3.c:206345,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:206348,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:206354,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:206355,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 2
    argNames:
    - pConfig
    - iCookie
    argTypes:
    - Fts5Config*
    - int
    assertStmts:
    - condition: ( rc==SQLITE_OK || p==0 )
      pos:
        line_end: 206335
        line_start: 206335
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( 0==*pConfig->pzErrmsg )
      pos:
        line_end: 206353
        line_start: 206353
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 206366
      start: 206316
    functionDepth: 28
    functionLinenumber: 206316
    functionLinenumberEnd: 206366
    functionName: sqlite3Fts5ConfigLoad
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5Mprintf
    - sqlite3Fts5ConfigSetValue
    - sqlite3_step
    - sqlite3_column_value
    - sqlite3_value_int
    - assert
    - sqlite3_mprintf
    - sqlite3_prepare_v2
    - sqlite3_column_text
    - sqlite3_stricmp
    - sqlite3_finalize
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5ConfigLoad(Fts5Config *pConfig, int iCookie)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206446
      start: 206445
    functionDepth: 0
    functionLinenumber: 206445
    functionLinenumberEnd: 206446
    functionName: Fts5NodeIsString
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Fts5NodeIsString(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206452
      start: 206451
    functionDepth: 0
    functionLinenumber: 206451
    functionLinenumberEnd: 206452
    functionName: fts5ExprNodeNext
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fts5ExprNodeNext(a,b,c,d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/nss/lib/sqlite/sqlite3.c:206502,1
    - Dst: sqlite3_vmprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:206504,1
    - Dst: va_end
      Src: /src/nss/lib/sqlite/sqlite3.c:206507,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - pParse
    - zFmt
    argTypes:
    - Fts5Parse*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206508
      start: 206500
    functionDepth: 9
    functionLinenumber: 206500
    functionLinenumberEnd: 206508
    functionName: sqlite3Fts5ParseError
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_vmprintf
    - va_start
    - va_end
    linkageType: ''
    returnType: void
    signature: void sqlite3Fts5ParseError(Fts5Parse *pParse, const char *zFmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206512
      start: 206510
    functionDepth: 0
    functionLinenumber: 206510
    functionLinenumberEnd: 206512
    functionName: fts5ExprIsspace
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fts5ExprIsspace(char t)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: fts5ExprIsspace
      Src: /src/nss/lib/sqlite/sqlite3.c:206526,1
    - Dst: sqlite3Fts5ParseError
      Src: /src/nss/lib/sqlite/sqlite3.c:206553,1
    - Dst: sqlite3Fts5IsBareword
      Src: /src/nss/lib/sqlite/sqlite3.c:206563,1
    - Dst: sqlite3Fts5ParseError
      Src: /src/nss/lib/sqlite/sqlite3.c:206564,1
    - Dst: sqlite3Fts5IsBareword
      Src: /src/nss/lib/sqlite/sqlite3.c:206568,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:206570,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:206571,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:206572,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 75
    argCount: 3
    argNames:
    - pParse
    - pz
    - pToken
    argTypes:
    - Fts5Parse*
    - char**
    - Fts5Token*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206579
      start: 206517
    functionDepth: 10
    functionLinenumber: 206517
    functionLinenumberEnd: 206579
    functionName: fts5ExprGetToken
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5ParseError
    - memcmp
    - sqlite3Fts5IsBareword
    - fts5ExprIsspace
    linkageType: ''
    returnType: int
    signature: "int fts5ExprGetToken(\n  Fts5Parse *pParse, \n  const char **pz,                /*
      IN/OUT: Pointer into buffer */\n  Fts5Token *pToken\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:206581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206581
      start: 206581
    functionDepth: 6
    functionLinenumber: 206581
    functionLinenumberEnd: 206581
    functionName: fts5ParseAlloc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_malloc64
    linkageType: ''
    returnType: void
    signature: void *fts5ParseAlloc(u64 t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:206582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206582
      start: 206582
    functionDepth: 3
    functionLinenumber: 206582
    functionLinenumberEnd: 206582
    functionName: fts5ParseFree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void fts5ParseFree(void *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:206600,1
    - Dst: sqlite3Fts5ParserAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:206601,1
    - Dst: fts5ExprGetToken
      Src: /src/nss/lib/sqlite/sqlite3.c:206606,1
    - Dst: sqlite3Fts5Parser
      Src: /src/nss/lib/sqlite/sqlite3.c:206607,1
    - Dst: sqlite3Fts5ParserFree
      Src: /src/nss/lib/sqlite/sqlite3.c:206609,1
    - Dst: sqlite3Fts5MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:206615,1
    - Dst: sqlite3Fts5ParseSetColset
      Src: /src/nss/lib/sqlite/sqlite3.c:206619,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:206623,1
    - Dst: sqlite3_malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:206625,1
    - Dst: sqlite3Fts5ParseNodeFree
      Src: /src/nss/lib/sqlite/sqlite3.c:206628,1
    - Dst: sqlite3Fts5MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:206632,1
    - Dst: sqlite3Fts5ParseNodeFree
      Src: /src/nss/lib/sqlite/sqlite3.c:206646,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:206649,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 48
    argCount: 5
    argNames:
    - pConfig
    - iCol
    - zExpr
    - ppNew
    - pzErr
    argTypes:
    - Fts5Config*
    - int
    - char*
    - Fts5Expr**
    - char**
    assertStmts:
    - condition: ( sParse.rc!=SQLITE_OK || sParse.zErr==0 )
      pos:
        line_end: 206622
        line_start: 206622
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 206652
      start: 206584
    functionDepth: 11
    functionLinenumber: 206584
    functionLinenumberEnd: 206652
    functionName: sqlite3Fts5ExprNew
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_malloc
    - sqlite3Fts5ParseSetColset
    - fts5ExprGetToken
    - sqlite3Fts5MallocZero
    - memset
    - sqlite3Fts5Parser
    - assert
    - sqlite3Fts5ParseNodeFree
    - sqlite3Fts5ParserAlloc
    - sqlite3Fts5ParserFree
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int sqlite3Fts5ExprNew(\n  Fts5Config *pConfig,            /* FTS5
      Configuration */\n  int iCol,\n  const char *zExpr,              /* Expression
      text */\n  Fts5Expr **ppNew, \n  char **pzErr\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5ParseNodeFree
      Src: /src/nss/lib/sqlite/sqlite3.c:206661,1
    - Dst: sqlite3Fts5ParseNearsetFree
      Src: /src/nss/lib/sqlite/sqlite3.c:206663,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:206664,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - Fts5ExprNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206666
      start: 206657
    functionDepth: 3
    functionLinenumber: 206657
    functionLinenumberEnd: 206666
    functionName: sqlite3Fts5ParseNodeFree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 4
    functionsReached:
    - sqlite3Fts5ParseNodeFree
    - sqlite3_free
    - sqlite3Fts5ParseNearsetFree
    linkageType: ''
    returnType: void
    signature: void sqlite3Fts5ParseNodeFree(Fts5ExprNode *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5ParseNodeFree
      Src: /src/nss/lib/sqlite/sqlite3.c:206673,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:206674,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:206675,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - Fts5Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206677
      start: 206671
    functionDepth: 4
    functionLinenumber: 206671
    functionLinenumberEnd: 206677
    functionName: sqlite3Fts5ExprFree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5ParseNodeFree
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void sqlite3Fts5ExprFree(Fts5Expr *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:206688,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:206689,1
    - Dst: sqlite3Fts5IterEof
      Src: /src/nss/lib/sqlite/sqlite3.c:206691,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 3
    argNames:
    - pTerm
    - bDesc
    - pbEof
    argTypes:
    - Fts5ExprTerm*
    - int
    - int*
    assertStmts:
    - condition: ( pTerm->pSynonym )
      pos:
        line_end: 206687
        line_start: 206687
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( bDesc==0 || bDesc==1 )
      pos:
        line_end: 206688
        line_start: 206688
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 206702
      start: 206683
    functionDepth: 1
    functionLinenumber: 206683
    functionLinenumberEnd: 206702
    functionName: fts5ExprSynonymRowid
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3Fts5IterEof
    linkageType: ''
    returnType: i64
    signature: i64 fts5ExprSynonymRowid(Fts5ExprTerm *pTerm, int bDesc, int *pbEof)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:206720,1
    - Dst: sqlite3Fts5IterEof
      Src: /src/nss/lib/sqlite/sqlite3.c:206723,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:206727,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:206732,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:206734,1
    - Dst: sqlite3Fts5PoslistReaderInit
      Src: /src/nss/lib/sqlite/sqlite3.c:206737,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:206738,1
    - Dst: fts5BufferZero
      Src: /src/nss/lib/sqlite/sqlite3.c:206749,1
    - Dst: sqlite3Fts5PoslistReaderNext
      Src: /src/nss/lib/sqlite/sqlite3.c:206756,1
    - Dst: sqlite3Fts5PoslistWriterAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:206764,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:206774,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 55
    argCount: 5
    argNames:
    - pTerm
    - iRowid
    - pBuf
    - pa
    - pn
    argTypes:
    - Fts5ExprTerm*
    - i64
    - Fts5Buffer*
    - u8**
    - int*
    assertStmts:
    - condition: ( pTerm->pSynonym )
      pos:
        line_end: 206719
        line_start: 206719
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( aIter[nIter].bEof==0 )
      pos:
        line_end: 206737
        line_start: 206737
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 206776
      start: 206707
    functionDepth: 6
    functionLinenumber: 206707
    functionLinenumberEnd: 206776
    functionName: fts5ExprSynonymList
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5PoslistReaderNext
    - memcpy
    - sqlite3_malloc64
    - assert
    - fts5BufferZero
    - sqlite3Fts5PoslistWriterAppend
    - sqlite3Fts5IterEof
    - sqlite3Fts5PoslistReaderInit
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int fts5ExprSynonymList(\n  Fts5ExprTerm *pTerm, \n  i64 iRowid,\n
      \ Fts5Buffer *pBuf,               /* Use this buffer for space if required */\n
      \ u8 **pa, int *pn\n)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: fts5BufferZero
      Src: /src/nss/lib/sqlite/sqlite3.c:206802,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:206806,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:206808,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:206811,1
    - Dst: fts5ExprSynonymList
      Src: /src/nss/lib/sqlite/sqlite3.c:206821,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:206823,1
    - Dst: sqlite3Fts5PoslistReaderInit
      Src: /src/nss/lib/sqlite/sqlite3.c:206831,1
    - Dst: sqlite3Fts5PoslistReaderNext
      Src: /src/nss/lib/sqlite/sqlite3.c:206847,1
    - Dst: FTS5_POS2OFFSET
      Src: /src/nss/lib/sqlite/sqlite3.c:206855,1
    - Dst: sqlite3Fts5PoslistWriterAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:206856,1
    - Dst: sqlite3Fts5PoslistReaderNext
      Src: /src/nss/lib/sqlite/sqlite3.c:206861,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:206868,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:206870,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 66
    argCount: 3
    argNames:
    - pNode
    - pPhrase
    - pbMatch
    argTypes:
    - Fts5ExprNode*
    - Fts5ExprPhrase*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206872
      start: 206790
    functionDepth: 7
    functionLinenumber: 206790
    functionLinenumberEnd: 206872
    functionName: fts5ExprPhraseIsMatch
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5PoslistReaderNext
    - sqlite3_malloc64
    - fts5ExprSynonymList
    - ArraySize
    - memset
    - fts5BufferZero
    - sqlite3Fts5PoslistWriterAppend
    - FTS5_POS2OFFSET
    - sqlite3Fts5PoslistReaderInit
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int fts5ExprPhraseIsMatch(\n  Fts5ExprNode *pNode,            /* Node
      pPhrase belongs to */\n  Fts5ExprPhrase *pPhrase,        /* Phrase object to
      initialize */\n  int *pbMatch                    /* OUT: Set to true if really
      a match */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5PoslistNext64
      Src: /src/nss/lib/sqlite/sqlite3.c:206887,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - Fts5LookaheadReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206891
      start: 206885
    functionDepth: 2
    functionLinenumber: 206885
    functionLinenumberEnd: 206891
    functionName: fts5LookaheadReaderNext
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5PoslistNext64
    linkageType: ''
    returnType: int
    signature: int fts5LookaheadReaderNext(Fts5LookaheadReader *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:206897,1
    - Dst: fts5LookaheadReaderNext
      Src: /src/nss/lib/sqlite/sqlite3.c:206900,1
    - Dst: fts5LookaheadReaderNext
      Src: /src/nss/lib/sqlite/sqlite3.c:206901,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - a
    - n
    - p
    argTypes:
    - u8*
    - int
    - Fts5LookaheadReader*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206902
      start: 206893
    functionDepth: 3
    functionLinenumber: 206893
    functionLinenumberEnd: 206902
    functionName: fts5LookaheadReaderInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - fts5LookaheadReaderNext
    linkageType: ''
    returnType: int
    signature: "int fts5LookaheadReaderInit(\n  const u8 *a, int n,             /*
      Buffer to read position list from */\n  Fts5LookaheadReader *p          /* Iterator
      object to initialize */\n)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:206937,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:206941,1
    - Dst: sqlite3Fts5MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:206943,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:206945,1
    - Dst: fts5LookaheadReaderInit
      Src: /src/nss/lib/sqlite/sqlite3.c:206962,1
    - Dst: fts5LookaheadReaderNext
      Src: /src/nss/lib/sqlite/sqlite3.c:206983,1
    - Dst: sqlite3Fts5PoslistWriterAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:206995,1
    - Dst: fts5LookaheadReaderNext
      Src: /src/nss/lib/sqlite/sqlite3.c:207007,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:207013,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 58
    argCount: 2
    argNames:
    - pRc
    - pNear
    argTypes:
    - int*
    - Fts5ExprNearset*
    assertStmts:
    - condition: ( pNear->nPhrase>1 )
      pos:
        line_end: 206936
        line_start: 206936
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 207016
      start: 206928
    functionDepth: 7
    functionLinenumber: 206928
    functionLinenumberEnd: 207016
    functionName: fts5ExprNearIsMatch
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5LookaheadReaderNext
    - ArraySize
    - fts5LookaheadReaderInit
    - sqlite3Fts5MallocZero
    - assert
    - memset
    - sqlite3Fts5PoslistWriterAppend
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int fts5ExprNearIsMatch(int *pRc, Fts5ExprNearset *pNear)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5IterNextFrom
      Src: /src/nss/lib/sqlite/sqlite3.c:207039,1
    - Dst: sqlite3Fts5IterEof
      Src: /src/nss/lib/sqlite/sqlite3.c:207040,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:207046,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 13
    argCount: 5
    argNames:
    - pIter
    - bDesc
    - piLast
    - pRc
    - pbEof
    argTypes:
    - Fts5IndexIter*
    - int
    - i64*
    - int*
    - int*
    assertStmts:
    - condition: ( (bDesc==0 && iRowid>=iLast) || (bDesc==1 && iRowid<=iLast) )
      pos:
        line_end: 207045
        line_start: 207045
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 207051
      start: 207027
    functionDepth: 1
    functionLinenumber: 207027
    functionLinenumberEnd: 207051
    functionName: fts5ExprAdvanceto
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3Fts5IterNextFrom
    - sqlite3Fts5IterEof
    linkageType: ''
    returnType: int
    signature: "int fts5ExprAdvanceto(\n  Fts5IndexIter *pIter,           /* Iterator
      to advance */\n  int bDesc,                      /* True if iterator is \"rowid
      DESC\" */\n  i64 *piLast,                    /* IN/OUT: Lastest rowid seen so
      far */\n  int *pRc,                       /* OUT: Error code */\n  int *pbEof
      \                     /* OUT: Set to true if EOF */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5IterEof
      Src: /src/nss/lib/sqlite/sqlite3.c:207065,1
    - Dst: sqlite3Fts5IterNextFrom
      Src: /src/nss/lib/sqlite/sqlite3.c:207068,1
    - Dst: fts5ExprSynonymRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:207077,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 4
    argNames:
    - pTerm
    - bDesc
    - piLast
    - pRc
    argTypes:
    - Fts5ExprTerm*
    - int
    - i64*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207080
      start: 207053
    functionDepth: 2
    functionLinenumber: 207053
    functionLinenumberEnd: 207080
    functionName: fts5ExprSynonymAdvanceto
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5ExprSynonymRowid
    - sqlite3Fts5IterNextFrom
    - sqlite3Fts5IterEof
    linkageType: ''
    returnType: int
    signature: "int fts5ExprSynonymAdvanceto(\n  Fts5ExprTerm *pTerm,            /*
      Term iterator to advance */\n  int bDesc,                      /* True if iterator
      is \"rowid DESC\" */\n  i64 *piLast,                    /* IN/OUT: Lastest rowid
      seen so far */\n  int *pRc                        /* OUT: Error code */\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5IterEof
      Src: /src/nss/lib/sqlite/sqlite3.c:207097,1
    - Dst: fts5ExprPhraseIsMatch
      Src: /src/nss/lib/sqlite/sqlite3.c:207116,1
    - Dst: fts5BufferSet
      Src: /src/nss/lib/sqlite/sqlite3.c:207120,1
    - Dst: fts5ExprNearIsMatch
      Src: /src/nss/lib/sqlite/sqlite3.c:207125,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 27
    argCount: 3
    argNames:
    - pRc
    - pExpr
    - pNode
    argTypes:
    - int*
    - Fts5Expr*
    - Fts5ExprNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207130
      start: 207083
    functionDepth: 8
    functionLinenumber: 207083
    functionLinenumberEnd: 207130
    functionName: fts5ExprNearTest
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5ExprNearIsMatch
    - fts5BufferSet
    - sqlite3Fts5IterEof
    - fts5ExprPhraseIsMatch
    linkageType: ''
    returnType: int
    signature: "int fts5ExprNearTest(\n  int *pRc,\n  Fts5Expr *pExpr,                /*
      Expression that pNear is a part of */\n  Fts5ExprNode *pNode             /*
      The \"NEAR\" node (FTS5_STRING) */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:207149,1
    - Dst: sqlite3Fts5IterClose
      Src: /src/nss/lib/sqlite/sqlite3.c:207165,1
    - Dst: sqlite3Fts5IndexQuery
      Src: /src/nss/lib/sqlite/sqlite3.c:207168,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:207169,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:207175,1
    - Dst: sqlite3Fts5IterEof
      Src: /src/nss/lib/sqlite/sqlite3.c:207177,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - pExpr
    - pNode
    argTypes:
    - Fts5Expr*
    - Fts5ExprNode*
    assertStmts:
    - condition: ( pNode->bNomatch==0 )
      pos:
        line_end: 207148
        line_start: 207148
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (rc==SQLITE_OK)==(p->pIter!=0) )
      pos:
        line_end: 207174
        line_start: 207174
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 207192
      start: 207142
    functionDepth: 1
    functionLinenumber: 207142
    functionLinenumberEnd: 207192
    functionName: fts5ExprNearInitAll
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5IterClose
    - sqlite3Fts5IndexQuery
    - assert
    - sqlite3Fts5IterEof
    - strlen
    linkageType: ''
    returnType: int
    signature: "int fts5ExprNearInitAll(\n  Fts5Expr *pExpr,\n  Fts5ExprNode *pNode\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:207209,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - pExpr
    - iLhs
    - iRhs
    argTypes:
    - Fts5Expr*
    - i64
    - i64
    assertStmts:
    - condition: ( pExpr->bDesc==0 || pExpr->bDesc==1 )
      pos:
        line_end: 207208
        line_start: 207208
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 207217
      start: 207204
    functionDepth: 0
    functionLinenumber: 207204
    functionLinenumberEnd: 207217
    functionName: fts5RowidCmp
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: "int fts5RowidCmp(\n  Fts5Expr *pExpr,\n  i64 iLhs,\n  i64 iRhs\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts5ExprSetEof
      Src: /src/nss/lib/sqlite/sqlite3.c:207224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pNode
    argTypes:
    - Fts5ExprNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207226
      start: 207219
    functionDepth: 1
    functionLinenumber: 207219
    functionLinenumberEnd: 207226
    functionName: fts5ExprSetEof
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - fts5ExprSetEof
    linkageType: ''
    returnType: void
    signature: void fts5ExprSetEof(Fts5ExprNode *pNode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fts5ExprNodeZeroPoslist
      Src: /src/nss/lib/sqlite/sqlite3.c:207239,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - pNode
    argTypes:
    - Fts5ExprNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207242
      start: 207228
    functionDepth: 1
    functionLinenumber: 207228
    functionLinenumberEnd: 207242
    functionName: fts5ExprNodeZeroPoslist
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - fts5ExprNodeZeroPoslist
    linkageType: ''
    returnType: void
    signature: void fts5ExprNodeZeroPoslist(Fts5ExprNode *pNode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fts5RowidCmp
      Src: /src/nss/lib/sqlite/sqlite3.c:207265,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - pExpr
    - p1
    - p2
    argTypes:
    - Fts5Expr*
    - Fts5ExprNode*
    - Fts5ExprNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207266
      start: 207258
    functionDepth: 1
    functionLinenumber: 207258
    functionLinenumberEnd: 207266
    functionName: fts5NodeCompare
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5RowidCmp
    linkageType: ''
    returnType: int
    signature: "int fts5NodeCompare(\n  Fts5Expr *pExpr,\n  Fts5ExprNode *p1, \n  Fts5ExprNode
      *p2\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:207292,1
    - Dst: fts5ExprSynonymRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:207303,1
    - Dst: fts5ExprSynonymRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:207315,1
    - Dst: fts5ExprSynonymAdvanceto
      Src: /src/nss/lib/sqlite/sqlite3.c:207318,1
    - Dst: fts5ExprAdvanceto
      Src: /src/nss/lib/sqlite/sqlite3.c:207327,1
    - Dst: fts5ExprNearTest
      Src: /src/nss/lib/sqlite/sqlite3.c:207336,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:207337,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 35
    argCount: 2
    argNames:
    - pExpr
    - pNode
    argTypes:
    - Fts5Expr*
    - Fts5ExprNode*
    assertStmts:
    - condition: "( pNear->nPhrase>1 \n       || pNear->apPhrase[0]->nTerm>1 \n       ||
        pNear->apPhrase[0]->aTerm[0].pSynonym\n       || pNear->apPhrase[0]->aTerm[0].bFirst\n
        \ )"
      pos:
        line_end: 207295
        line_start: 207291
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pNode->bEof==0 || pNode->bNomatch==0 )
      pos:
        line_end: 207336
        line_start: 207336
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 207340
      start: 207279
    functionDepth: 9
    functionLinenumber: 207279
    functionLinenumberEnd: 207340
    functionName: fts5ExprNodeTest_STRING
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5ExprNearTest
    - fts5ExprAdvanceto
    - assert
    - fts5ExprSynonymAdvanceto
    - fts5ExprSynonymRowid
    linkageType: ''
    returnType: int
    signature: "int fts5ExprNodeTest_STRING(\n  Fts5Expr *pExpr,                /*
      Expression pPhrase belongs to */\n  Fts5ExprNode *pNode\n)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fts5ExprSynonymRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:207364,1
    - Dst: sqlite3Fts5IterEof
      Src: /src/nss/lib/sqlite/sqlite3.c:207369,1
    - Dst: sqlite3Fts5IterNextFrom
      Src: /src/nss/lib/sqlite/sqlite3.c:207375,1
    - Dst: sqlite3Fts5IterNext
      Src: /src/nss/lib/sqlite/sqlite3.c:207377,1
    - Dst: sqlite3Fts5IterEof
      Src: /src/nss/lib/sqlite/sqlite3.c:207380,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:207395,1
    - Dst: Fts5NodeIsString
      Src: /src/nss/lib/sqlite/sqlite3.c:207395,1
    - Dst: sqlite3Fts5IterNextFrom
      Src: /src/nss/lib/sqlite/sqlite3.c:207397,1
    - Dst: sqlite3Fts5IterNext
      Src: /src/nss/lib/sqlite/sqlite3.c:207399,1
    - Dst: sqlite3Fts5IterEof
      Src: /src/nss/lib/sqlite/sqlite3.c:207402,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:207406,1
    - Dst: fts5ExprNodeTest_STRING
      Src: /src/nss/lib/sqlite/sqlite3.c:207407,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 36
    argCount: 4
    argNames:
    - pExpr
    - pNode
    - bFromValid
    - iFrom
    argTypes:
    - Fts5Expr*
    - Fts5ExprNode*
    - int
    - i64
    assertStmts:
    - condition: ( Fts5NodeIsString(pNode) )
      pos:
        line_end: 207394
        line_start: 207394
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc==SQLITE_OK )
      pos:
        line_end: 207405
        line_start: 207405
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 207411
      start: 207349
    functionDepth: 10
    functionLinenumber: 207349
    functionLinenumberEnd: 207411
    functionName: fts5ExprNodeNext_STRING
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5IterNextFrom
    - sqlite3Fts5IterNext
    - assert
    - fts5ExprNodeTest_STRING
    - sqlite3Fts5IterEof
    - fts5ExprSynonymRowid
    - Fts5NodeIsString
    linkageType: ''
    returnType: int
    signature: "int fts5ExprNodeNext_STRING(\n  Fts5Expr *pExpr,                /*
      Expression pPhrase belongs to */\n  Fts5ExprNode *pNode,            /* FTS5_STRING
      or FTS5_TERM node */\n  int bFromValid,\n  i64 iFrom \n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:207426,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:207427,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:207428,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - pExpr
    - pNode
    argTypes:
    - Fts5Expr*
    - Fts5ExprNode*
    assertStmts:
    - condition: ( pNode->eType==FTS5_TERM )
      pos:
        line_end: 207425
        line_start: 207425
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pNode->pNear->nPhrase==1 && pPhrase->nTerm==1 )
      pos:
        line_end: 207426
        line_start: 207426
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPhrase->aTerm[0].pSynonym==0 )
      pos:
        line_end: 207427
        line_start: 207427
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 207437
      start: 207414
    functionDepth: 0
    functionLinenumber: 207414
    functionLinenumberEnd: 207437
    functionName: fts5ExprNodeTest_TERM
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: "int fts5ExprNodeTest_TERM(\n  Fts5Expr *pExpr,                /* Expression
      that pNear is a part of */\n  Fts5ExprNode *pNode             /* The \"NEAR\"
      node (FTS5_TERM) */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:207451,1
    - Dst: sqlite3Fts5IterNextFrom
      Src: /src/nss/lib/sqlite/sqlite3.c:207453,1
    - Dst: sqlite3Fts5IterNext
      Src: /src/nss/lib/sqlite/sqlite3.c:207455,1
    - Dst: sqlite3Fts5IterEof
      Src: /src/nss/lib/sqlite/sqlite3.c:207457,1
    - Dst: fts5ExprNodeTest_TERM
      Src: /src/nss/lib/sqlite/sqlite3.c:207458,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - pExpr
    - pNode
    - bFromValid
    - iFrom
    argTypes:
    - Fts5Expr*
    - Fts5ExprNode*
    - int
    - i64
    assertStmts:
    - condition: ( pNode->bEof==0 )
      pos:
        line_end: 207450
        line_start: 207450
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 207464
      start: 207442
    functionDepth: 1
    functionLinenumber: 207442
    functionLinenumberEnd: 207464
    functionName: fts5ExprNodeNext_TERM
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5IterNextFrom
    - assert
    - sqlite3Fts5IterNext
    - fts5ExprNodeTest_TERM
    - sqlite3Fts5IterEof
    linkageType: ''
    returnType: int
    signature: "int fts5ExprNodeNext_TERM(\n  Fts5Expr *pExpr, \n  Fts5ExprNode *pNode,\n
      \ int bFromValid,\n  i64 iFrom\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fts5NodeCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:207475,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - pExpr
    - pNode
    argTypes:
    - Fts5Expr*
    - Fts5ExprNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207483
      start: 207466
    functionDepth: 2
    functionLinenumber: 207466
    functionLinenumberEnd: 207483
    functionName: fts5ExprNodeTest_OR
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5NodeCompare
    linkageType: ''
    returnType: void
    signature: "void fts5ExprNodeTest_OR(\n  Fts5Expr *pExpr,                /* Expression
      of which pNode is a part */\n  Fts5ExprNode *pNode             /* Expression
      node to test */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:207496,1
    - Dst: fts5RowidCmp
      Src: /src/nss/lib/sqlite/sqlite3.c:207496,1
    - Dst: fts5RowidCmp
      Src: /src/nss/lib/sqlite/sqlite3.c:207499,1
    - Dst: fts5ExprNodeNext
      Src: /src/nss/lib/sqlite/sqlite3.c:207501,1
    - Dst: fts5ExprNodeTest_OR
      Src: /src/nss/lib/sqlite/sqlite3.c:207510,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 4
    argNames:
    - pExpr
    - pNode
    - bFromValid
    - iFrom
    argTypes:
    - Fts5Expr*
    - Fts5ExprNode*
    - int
    - i64
    assertStmts:
    - condition: ( p1->bEof || fts5RowidCmp(pExpr, p1->iRowid, iLast)>=0 )
      pos:
        line_end: 207495
        line_start: 207495
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 207512
      start: 207485
    functionDepth: 3
    functionLinenumber: 207485
    functionLinenumberEnd: 207512
    functionName: fts5ExprNodeNext_OR
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fts5ExprNodeNext
    - fts5RowidCmp
    - fts5ExprNodeTest_OR
    linkageType: ''
    returnType: int
    signature: "int fts5ExprNodeNext_OR(\n  Fts5Expr *pExpr, \n  Fts5ExprNode *pNode,\n
      \ int bFromValid,\n  i64 iFrom\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:207526,1
    - Dst: fts5RowidCmp
      Src: /src/nss/lib/sqlite/sqlite3.c:207532,1
    - Dst: fts5ExprNodeNext
      Src: /src/nss/lib/sqlite/sqlite3.c:207535,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:207546,1
    - Dst: fts5RowidCmp
      Src: /src/nss/lib/sqlite/sqlite3.c:207546,1
    - Dst: fts5ExprSetEof
      Src: /src/nss/lib/sqlite/sqlite3.c:207548,1
    - Dst: fts5ExprNodeZeroPoslist
      Src: /src/nss/lib/sqlite/sqlite3.c:207563,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 2
    argNames:
    - pExpr
    - pAnd
    argTypes:
    - Fts5Expr*
    - Fts5ExprNode*
    assertStmts:
    - condition: ( pAnd->bEof==0 )
      pos:
        line_end: 207525
        line_start: 207525
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pChild->bEof || fts5RowidCmp(pExpr, iLast, pChild->iRowid)<=0 )
      pos:
        line_end: 207545
        line_start: 207545
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 207567
      start: 207517
    functionDepth: 2
    functionLinenumber: 207517
    functionLinenumberEnd: 207567
    functionName: fts5ExprNodeTest_AND
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5ExprNodeZeroPoslist
    - assert
    - fts5ExprNodeNext
    - fts5ExprSetEof
    - fts5RowidCmp
    linkageType: ''
    returnType: int
    signature: "int fts5ExprNodeTest_AND(\n  Fts5Expr *pExpr,                /* Expression
      pPhrase belongs to */\n  Fts5ExprNode *pAnd              /* FTS5_AND node to
      advance */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fts5ExprNodeNext
      Src: /src/nss/lib/sqlite/sqlite3.c:207575,1
    - Dst: fts5ExprNodeTest_AND
      Src: /src/nss/lib/sqlite/sqlite3.c:207577,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - pExpr
    - pNode
    - bFromValid
    - iFrom
    argTypes:
    - Fts5Expr*
    - Fts5ExprNode*
    - int
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207582
      start: 207569
    functionDepth: 3
    functionLinenumber: 207569
    functionLinenumberEnd: 207582
    functionName: fts5ExprNodeNext_AND
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5ExprNodeNext
    - fts5ExprNodeTest_AND
    linkageType: ''
    returnType: int
    signature: "int fts5ExprNodeNext_AND(\n  Fts5Expr *pExpr, \n  Fts5ExprNode *pNode,\n
      \ int bFromValid,\n  i64 iFrom\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:207591,1
    - Dst: fts5NodeCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:207594,1
    - Dst: fts5ExprNodeNext
      Src: /src/nss/lib/sqlite/sqlite3.c:207596,1
    - Dst: fts5NodeCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:207597,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:207599,1
    - Dst: fts5ExprNodeNext
      Src: /src/nss/lib/sqlite/sqlite3.c:207601,1
    - Dst: fts5ExprNodeZeroPoslist
      Src: /src/nss/lib/sqlite/sqlite3.c:207607,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - pExpr
    - pNode
    argTypes:
    - Fts5Expr*
    - Fts5ExprNode*
    assertStmts:
    - condition: ( pNode->nChild==2 )
      pos:
        line_end: 207590
        line_start: 207590
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc!=SQLITE_OK || cmp<=0 )
      pos:
        line_end: 207598
        line_start: 207598
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 207610
      start: 207584
    functionDepth: 2
    functionLinenumber: 207584
    functionLinenumberEnd: 207610
    functionName: fts5ExprNodeTest_NOT
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fts5ExprNodeNext
    - fts5ExprNodeZeroPoslist
    - fts5NodeCompare
    linkageType: ''
    returnType: int
    signature: "int fts5ExprNodeTest_NOT(\n  Fts5Expr *pExpr,                /* Expression
      pPhrase belongs to */\n  Fts5ExprNode *pNode             /* FTS5_NOT node to
      advance */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fts5ExprNodeNext
      Src: /src/nss/lib/sqlite/sqlite3.c:207618,1
    - Dst: fts5ExprNodeTest_NOT
      Src: /src/nss/lib/sqlite/sqlite3.c:207620,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - pExpr
    - pNode
    - bFromValid
    - iFrom
    argTypes:
    - Fts5Expr*
    - Fts5ExprNode*
    - int
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207626
      start: 207612
    functionDepth: 3
    functionLinenumber: 207612
    functionLinenumberEnd: 207626
    functionName: fts5ExprNodeNext_NOT
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5ExprNodeNext
    - fts5ExprNodeTest_NOT
    linkageType: ''
    returnType: int
    signature: "int fts5ExprNodeNext_NOT(\n  Fts5Expr *pExpr, \n  Fts5ExprNode *pNode,\n
      \ int bFromValid,\n  i64 iFrom\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fts5ExprNodeTest_STRING
      Src: /src/nss/lib/sqlite/sqlite3.c:207642,1
    - Dst: fts5ExprNodeTest_TERM
      Src: /src/nss/lib/sqlite/sqlite3.c:207647,1
    - Dst: fts5ExprNodeTest_AND
      Src: /src/nss/lib/sqlite/sqlite3.c:207652,1
    - Dst: fts5ExprNodeTest_OR
      Src: /src/nss/lib/sqlite/sqlite3.c:207657,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:207661,1
    - Dst: fts5ExprNodeTest_NOT
      Src: /src/nss/lib/sqlite/sqlite3.c:207662,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - pExpr
    - pNode
    argTypes:
    - Fts5Expr*
    - Fts5ExprNode*
    assertStmts:
    - condition: ( pNode->eType==FTS5_NOT )
      pos:
        line_end: 207660
        line_start: 207660
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 207668
      start: 207633
    functionDepth: 10
    functionLinenumber: 207633
    functionLinenumberEnd: 207668
    functionName: fts5ExprNodeTest
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5ExprNodeTest_NOT
    - fts5ExprNodeTest_AND
    - assert
    - fts5ExprNodeTest_TERM
    - fts5ExprNodeTest_OR
    - fts5ExprNodeTest_STRING
    linkageType: ''
    returnType: int
    signature: "int fts5ExprNodeTest(\n  Fts5Expr *pExpr,                /* Expression
      of which pNode is a part */\n  Fts5ExprNode *pNode             /* Expression
      node to test */\n)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: Fts5NodeIsString
      Src: /src/nss/lib/sqlite/sqlite3.c:207683,1
    - Dst: fts5ExprNearInitAll
      Src: /src/nss/lib/sqlite/sqlite3.c:207685,1
    - Dst: fts5ExprNodeFirst
      Src: /src/nss/lib/sqlite/sqlite3.c:207693,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:207694,1
    - Dst: fts5ExprSetEof
      Src: /src/nss/lib/sqlite/sqlite3.c:207701,1
    - Dst: fts5ExprSetEof
      Src: /src/nss/lib/sqlite/sqlite3.c:207705,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:207709,1
    - Dst: fts5ExprNodeTest
      Src: /src/nss/lib/sqlite/sqlite3.c:207716,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 2
    argNames:
    - pExpr
    - pNode
    argTypes:
    - Fts5Expr*
    - Fts5ExprNode*
    assertStmts:
    - condition: ( pChild->bEof==0 || pChild->bEof==1 )
      pos:
        line_end: 207693
        line_start: 207693
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pNode->eType==FTS5_NOT )
      pos:
        line_end: 207708
        line_start: 207708
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 207719
      start: 207678
    functionDepth: 11
    functionLinenumber: 207678
    functionLinenumberEnd: 207719
    functionName: fts5ExprNodeFirst
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - fts5ExprNodeTest
    - fts5ExprNodeFirst
    - fts5ExprNearInitAll
    - assert
    - fts5ExprSetEof
    - Fts5NodeIsString
    linkageType: ''
    returnType: int
    signature: int fts5ExprNodeFirst(Fts5Expr *pExpr, Fts5ExprNode *pNode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fts5ExprNodeFirst
      Src: /src/nss/lib/sqlite/sqlite3.c:207743,1
    - Dst: fts5RowidCmp
      Src: /src/nss/lib/sqlite/sqlite3.c:207749,1
    - Dst: fts5ExprNodeNext
      Src: /src/nss/lib/sqlite/sqlite3.c:207751,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:207756,1
    - Dst: fts5ExprNodeNext
      Src: /src/nss/lib/sqlite/sqlite3.c:207757,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 4
    argNames:
    - p
    - pIdx
    - iFirst
    - bDesc
    argTypes:
    - Fts5Expr*
    - Fts5Index*
    - i64
    - int
    assertStmts:
    - condition: ( pRoot->bEof==0 && rc==SQLITE_OK )
      pos:
        line_end: 207755
        line_start: 207755
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 207760
      start: 207737
    functionDepth: 12
    functionLinenumber: 207737
    functionLinenumberEnd: 207760
    functionName: sqlite3Fts5ExprFirst
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fts5ExprNodeNext
    - fts5ExprNodeFirst
    - fts5RowidCmp
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5ExprFirst(Fts5Expr *p, Fts5Index *pIdx, i64 iFirst,
      int bDesc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:207771,1
    - Dst: fts5ExprNodeNext
      Src: /src/nss/lib/sqlite/sqlite3.c:207773,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:207774,1
    - Dst: fts5RowidCmp
      Src: /src/nss/lib/sqlite/sqlite3.c:207776,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - p
    - iLast
    argTypes:
    - Fts5Expr*
    - i64
    assertStmts:
    - condition: ( pRoot->bEof==0 && pRoot->bNomatch==0 )
      pos:
        line_end: 207770
        line_start: 207770
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pRoot->bNomatch==0 || (rc==SQLITE_OK && pRoot->bEof==0) )
      pos:
        line_end: 207773
        line_start: 207773
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 207780
      start: 207768
    functionDepth: 1
    functionLinenumber: 207768
    functionLinenumberEnd: 207780
    functionName: sqlite3Fts5ExprNext
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fts5ExprNodeNext
    - fts5RowidCmp
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5ExprNext(Fts5Expr *p, i64 iLast)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - Fts5Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207784
      start: 207782
    functionDepth: 0
    functionLinenumber: 207782
    functionLinenumberEnd: 207784
    functionName: sqlite3Fts5ExprEof
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5ExprEof(Fts5Expr *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - Fts5Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207788
      start: 207786
    functionDepth: 0
    functionLinenumber: 207786
    functionLinenumberEnd: 207788
    functionName: sqlite3Fts5ExprRowid
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: i64
    signature: i64 sqlite3Fts5ExprRowid(Fts5Expr *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5Strndup
      Src: /src/nss/lib/sqlite/sqlite3.c:207792,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pToken
    - pz
    argTypes:
    - Fts5Token*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207794
      start: 207790
    functionDepth: 7
    functionLinenumber: 207790
    functionLinenumberEnd: 207794
    functionName: fts5ParseStringFromToken
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5Strndup
    linkageType: ''
    returnType: int
    signature: int fts5ParseStringFromToken(Fts5Token *pToken, char **pz)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:207806,1
    - Dst: sqlite3Fts5IterClose
      Src: /src/nss/lib/sqlite/sqlite3.c:207807,1
    - Dst: sqlite3Fts5IterClose
      Src: /src/nss/lib/sqlite/sqlite3.c:207810,1
    - Dst: fts5BufferFree
      Src: /src/nss/lib/sqlite/sqlite3.c:207811,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:207812,1
    - Dst: fts5BufferFree
      Src: /src/nss/lib/sqlite/sqlite3.c:207815,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:207816,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - pPhrase
    argTypes:
    - Fts5ExprPhrase*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207818
      start: 207799
    functionDepth: 3
    functionLinenumber: 207799
    functionLinenumberEnd: 207818
    functionName: fts5ExprPhraseFree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5IterClose
    - sqlite3_free
    - fts5BufferFree
    linkageType: ''
    returnType: void
    signature: void fts5ExprPhraseFree(Fts5ExprPhrase *pPhrase)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - pPhrase
    argTypes:
    - Fts5ExprPhrase*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207828
      start: 207824
    functionDepth: 0
    functionLinenumber: 207824
    functionLinenumberEnd: 207828
    functionName: sqlite3Fts5ParseSetCaret
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sqlite3Fts5ParseSetCaret(Fts5ExprPhrase *pPhrase)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:207853,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:207857,1
    - Dst: sqlite3_realloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:207864,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:207874,1
    - Dst: sqlite3Fts5ParseNearsetFree
      Src: /src/nss/lib/sqlite/sqlite3.c:207875,1
    - Dst: sqlite3Fts5ParsePhraseFree
      Src: /src/nss/lib/sqlite/sqlite3.c:207876,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:207880,1
    - Dst: fts5ExprPhraseFree
      Src: /src/nss/lib/sqlite/sqlite3.c:207882,1
    - Dst: fts5ExprPhraseFree
      Src: /src/nss/lib/sqlite/sqlite3.c:207887,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 47
    argCount: 3
    argNames:
    - pParse
    - pNear
    - pPhrase
    argTypes:
    - Fts5Parse*
    - Fts5ExprNearset*
    - Fts5ExprPhrase*
    assertStmts:
    - condition: ( pParse->rc!=SQLITE_OK )
      pos:
        line_end: 207873
        line_start: 207873
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pLast==pParse->apPhrase[pParse->nPhrase-2] )
      pos:
        line_end: 207879
        line_start: 207879
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 207896
      start: 207838
    functionDepth: 7
    functionLinenumber: 207838
    functionLinenumberEnd: 207896
    functionName: sqlite3Fts5ParseNearset
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3Fts5ParsePhraseFree
    - sqlite3_malloc64
    - memset
    - assert
    - fts5ExprPhraseFree
    - sqlite3_realloc64
    - sqlite3Fts5ParseNearsetFree
    linkageType: ''
    returnType: Fts5ExprNearset
    signature: "Fts5ExprNearset *sqlite3Fts5ParseNearset(\n  Fts5Parse *pParse,              /*
      Parse context */\n  Fts5ExprNearset *pNear,         /* Existing nearset, or
      NULL */\n  Fts5ExprPhrase *pPhrase         /* Recently parsed phrase */\n)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAM2
      Src: /src/nss/lib/sqlite/sqlite3.c:207920,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:207929,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:207933,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:207935,1
    - Dst: sqlite3_realloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:207945,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:207951,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:207959,1
    - Dst: sqlite3Fts5Strndup
      Src: /src/nss/lib/sqlite/sqlite3.c:207960,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 6
    argNames:
    - pContext
    - tflags
    - pToken
    - nToken
    - iUnused1
    - iUnused2
    argTypes:
    - void*
    - int
    - char*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207966
      start: 207907
    functionDepth: 7
    functionLinenumber: 207907
    functionLinenumberEnd: 207966
    functionName: fts5ParseTokenize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - sqlite3_malloc64
    - sqlite3Fts5Strndup
    - memset
    - UNUSED_PARAM2
    - sqlite3_realloc64
    linkageType: ''
    returnType: int
    signature: "int fts5ParseTokenize(\n  void *pContext,                 /* Pointer
      to Fts5InsertCtx object */\n  int tflags,                     /* Mask of FTS5_TOKEN_*
      flags */\n  const char *pToken,             /* Buffer containing token */\n
      \ int nToken,                     /* Size of token in bytes */\n  int iUnused1,
      \                  /* Start offset of token */\n  int iUnused2                    /*
      End offset of token */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts5ExprPhraseFree
      Src: /src/nss/lib/sqlite/sqlite3.c:207973,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pPhrase
    argTypes:
    - Fts5ExprPhrase*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207974
      start: 207972
    functionDepth: 4
    functionLinenumber: 207972
    functionLinenumberEnd: 207974
    functionName: sqlite3Fts5ParsePhraseFree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 3
    functionsReached:
    - fts5ExprPhraseFree
    linkageType: ''
    returnType: void
    signature: void sqlite3Fts5ParsePhraseFree(Fts5ExprPhrase *pPhrase)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fts5ExprPhraseFree
      Src: /src/nss/lib/sqlite/sqlite3.c:207983,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:207985,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:207986,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - pNear
    argTypes:
    - Fts5ExprNearset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207988
      start: 207979
    functionDepth: 4
    functionLinenumber: 207979
    functionLinenumberEnd: 207988
    functionName: sqlite3Fts5ParseNearsetFree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 4
    functionsReached:
    - sqlite3_free
    - fts5ExprPhraseFree
    linkageType: ''
    returnType: void
    signature: void sqlite3Fts5ParseNearsetFree(Fts5ExprNearset *pNear)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:207991,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pParse
    - p
    argTypes:
    - Fts5Parse*
    - Fts5ExprNode*
    assertStmts:
    - condition: ( pParse->pExpr==0 )
      pos:
        line_end: 207990
        line_start: 207990
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 207993
      start: 207990
    functionDepth: 0
    functionLinenumber: 207990
    functionLinenumberEnd: 207993
    functionName: sqlite3Fts5ParseFinished
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void sqlite3Fts5ParseFinished(Fts5Parse *pParse, Fts5ExprNode *p)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:208011,1
    - Dst: fts5ParseStringFromToken
      Src: /src/nss/lib/sqlite/sqlite3.c:208014,1
    - Dst: sqlite3Fts5Dequote
      Src: /src/nss/lib/sqlite/sqlite3.c:208018,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:208019,1
    - Dst: sqlite3Fts5Tokenize
      Src: /src/nss/lib/sqlite/sqlite3.c:208020,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:208022,1
    - Dst: fts5ExprPhraseFree
      Src: /src/nss/lib/sqlite/sqlite3.c:208025,1
    - Dst: sqlite3_realloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:208033,1
    - Dst: fts5ExprPhraseFree
      Src: /src/nss/lib/sqlite/sqlite3.c:208036,1
    - Dst: sqlite3Fts5MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:208047,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 4
    argNames:
    - pParse
    - pAppend
    - pToken
    - bPrefix
    argTypes:
    - Fts5Parse*
    - Fts5ExprPhrase*
    - Fts5Token*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208055
      start: 208000
    functionDepth: 8
    functionLinenumber: 208000
    functionLinenumberEnd: 208055
    functionName: sqlite3Fts5ParseTerm
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_realloc64
    - fts5ParseStringFromToken
    - sqlite3Fts5MallocZero
    - memset
    - sqlite3Fts5Dequote
    - sqlite3Fts5Tokenize
    - fts5ExprPhraseFree
    - sqlite3_free
    - strlen
    linkageType: ''
    returnType: Fts5ExprPhrase
    signature: "Fts5ExprPhrase *sqlite3Fts5ParseTerm(\n  Fts5Parse *pParse,              /*
      Parse context */\n  Fts5ExprPhrase *pAppend,        /* Phrase to append to */\n
      \ Fts5Token *pToken,              /* String to tokenize */\n  int bPrefix                     /*
      True if there is a trailing \"*\" */\n)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:208072,1
    - Dst: sqlite3Fts5MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:208074,1
    - Dst: sqlite3Fts5MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:208078,1
    - Dst: sqlite3Fts5MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:208082,1
    - Dst: sqlite3Fts5MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:208091,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:208093,1
    - Dst: fts5ParseTokenize
      Src: /src/nss/lib/sqlite/sqlite3.c:208106,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:208106,1
    - Dst: sqlite3Fts5MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:208118,1
    - Dst: sqlite3Fts5ExprFree
      Src: /src/nss/lib/sqlite/sqlite3.c:208142,1
    - Dst: fts5ExprPhraseFree
      Src: /src/nss/lib/sqlite/sqlite3.c:208143,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 58
    argCount: 3
    argNames:
    - pExpr
    - iPhrase
    - ppNew
    argTypes:
    - Fts5Expr*
    - int
    - Fts5Expr**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208149
      start: 208061
    functionDepth: 8
    functionLinenumber: 208061
    functionLinenumberEnd: 208149
    functionName: sqlite3Fts5ExprClonePhrase
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5ParseTokenize
    - memcpy
    - sqlite3Fts5MallocZero
    - sqlite3Fts5ExprFree
    - fts5ExprPhraseFree
    - strlen
    linkageType: ''
    returnType: int
    signature: "int sqlite3Fts5ExprClonePhrase(\n  Fts5Expr *pExpr, \n  int iPhrase,
      \n  Fts5Expr **ppNew\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:208158,1
    - Dst: sqlite3Fts5ParseError
      Src: /src/nss/lib/sqlite/sqlite3.c:208159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - pParse
    - pTok
    argTypes:
    - Fts5Parse*
    - Fts5Token*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208163
      start: 208157
    functionDepth: 10
    functionLinenumber: 208157
    functionLinenumberEnd: 208163
    functionName: sqlite3Fts5ParseNear
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3Fts5ParseError
    - memcmp
    linkageType: ''
    returnType: void
    signature: void sqlite3Fts5ParseNear(Fts5Parse *pParse, Fts5Token *pTok)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5ParseError
      Src: /src/nss/lib/sqlite/sqlite3.c:208177,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - pParse
    - pNear
    - p
    argTypes:
    - Fts5Parse*
    - Fts5ExprNearset*
    - Fts5Token*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208189
      start: 208165
    functionDepth: 10
    functionLinenumber: 208165
    functionLinenumberEnd: 208189
    functionName: sqlite3Fts5ParseSetDistance
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3Fts5ParseError
    linkageType: ''
    returnType: void
    signature: "void sqlite3Fts5ParseSetDistance(\n  Fts5Parse *pParse, \n  Fts5ExprNearset
      *pNear,\n  Fts5Token *p\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:208208,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:208209,1
    - Dst: sqlite3_realloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:208211,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:208229,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 3
    argNames:
    - pParse
    - p
    - iCol
    argTypes:
    - Fts5Parse*
    - Fts5Colset*
    - int
    assertStmts:
    - condition: ( pParse->rc==SQLITE_OK )
      pos:
        line_end: 208207
        line_start: 208207
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pNew->aiCol[i]>pNew->aiCol[i-1] )
      pos:
        line_end: 208228
        line_start: 208228
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iCol>=0 && iCol<pParse->pConfig->nCol )
      pos:
        line_end: 208208
        line_start: 208208
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 208234
      start: 208200
    functionDepth: 7
    functionLinenumber: 208200
    functionLinenumberEnd: 208234
    functionName: fts5ParseColset
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_realloc64
    linkageType: ''
    returnType: Fts5Colset
    signature: "Fts5Colset *fts5ParseColset(\n  Fts5Parse *pParse,              /*
      Store SQLITE_NOMEM here if required */\n  Fts5Colset *p,                  /*
      Existing colset object */\n  int iCol                        /* New column to
      add to colset object */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:208245,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:208260,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - pParse
    - p
    argTypes:
    - Fts5Parse*
    - Fts5Colset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208262
      start: 208241
    functionDepth: 7
    functionLinenumber: 208241
    functionLinenumberEnd: 208262
    functionName: sqlite3Fts5ParseColsetInvert
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3Fts5MallocZero
    - sqlite3_free
    linkageType: ''
    returnType: Fts5Colset
    signature: Fts5Colset *sqlite3Fts5ParseColsetInvert(Fts5Parse *pParse, Fts5Colset
      *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5Strndup
      Src: /src/nss/lib/sqlite/sqlite3.c:208273,1
    - Dst: sqlite3Fts5Dequote
      Src: /src/nss/lib/sqlite/sqlite3.c:208276,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:208278,1
    - Dst: sqlite3Fts5ParseError
      Src: /src/nss/lib/sqlite/sqlite3.c:208281,1
    - Dst: fts5ParseColset
      Src: /src/nss/lib/sqlite/sqlite3.c:208283,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:208285,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:208289,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:208290,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - pParse
    - pColset
    - p
    argTypes:
    - Fts5Parse*
    - Fts5Colset*
    - Fts5Token*
    assertStmts:
    - condition: ( pParse->rc!=SQLITE_OK )
      pos:
        line_end: 208288
        line_start: 208288
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 208294
      start: 208264
    functionDepth: 10
    functionLinenumber: 208264
    functionLinenumberEnd: 208294
    functionName: sqlite3Fts5ParseColset
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3Fts5ParseError
    - fts5ParseColset
    - sqlite3Fts5Strndup
    - assert
    - sqlite3Fts5Dequote
    - sqlite3_stricmp
    - sqlite3_free
    linkageType: ''
    returnType: Fts5Colset
    signature: "Fts5Colset *sqlite3Fts5ParseColset(\n  Fts5Parse *pParse,              /*
      Store SQLITE_NOMEM here if required */\n  Fts5Colset *pColset,            /*
      Existing colset object */\n  Fts5Token *p\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:208308,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:208310,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - pRc
    - pOrig
    argTypes:
    - int*
    - Fts5Colset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208316
      start: 208304
    functionDepth: 7
    functionLinenumber: 208304
    functionLinenumberEnd: 208316
    functionName: fts5CloneColset
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - sqlite3Fts5MallocZero
    linkageType: ''
    returnType: Fts5Colset
    signature: Fts5Colset *fts5CloneColset(int *pRc, Fts5Colset *pOrig)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - pColset
    - pMerge
    argTypes:
    - Fts5Colset*
    - Fts5Colset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208339
      start: 208321
    functionDepth: 0
    functionLinenumber: 208321
    functionLinenumberEnd: 208339
    functionName: fts5MergeColset
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fts5MergeColset(Fts5Colset *pColset, Fts5Colset *pMerge)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:208354,1
    - Dst: fts5MergeColset
      Src: /src/nss/lib/sqlite/sqlite3.c:208361,1
    - Dst: fts5CloneColset
      Src: /src/nss/lib/sqlite/sqlite3.c:208370,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:208374,1
    - Dst: fts5ParseSetColset
      Src: /src/nss/lib/sqlite/sqlite3.c:208376,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 24
    argCount: 4
    argNames:
    - pParse
    - pNode
    - pColset
    - ppFree
    argTypes:
    - Fts5Parse*
    - Fts5ExprNode*
    - Fts5Colset*
    - Fts5Colset**
    assertStmts:
    - condition: "( pNode->eType==FTS5_TERM || pNode->eType==FTS5_STRING \n         ||
        pNode->eType==FTS5_AND  || pNode->eType==FTS5_OR\n         || pNode->eType==FTS5_NOT
        \ || pNode->eType==FTS5_EOF\n    )"
      pos:
        line_end: 208356
        line_start: 208353
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pNode->eType!=FTS5_EOF || pNode->nChild==0 )
      pos:
        line_end: 208373
        line_start: 208373
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 208380
      start: 208347
    functionDepth: 8
    functionLinenumber: 208347
    functionLinenumberEnd: 208380
    functionName: fts5ParseSetColset
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - fts5ParseSetColset
    - fts5MergeColset
    - fts5CloneColset
    linkageType: ''
    returnType: void
    signature: "void fts5ParseSetColset(\n  Fts5Parse *pParse, \n  Fts5ExprNode *pNode,
      \n  Fts5Colset *pColset,\n  Fts5Colset **ppFree\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:208393,1
    - Dst: fts5ParseSetColset
      Src: /src/nss/lib/sqlite/sqlite3.c:208397,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:208399,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - pParse
    - pExpr
    - pColset
    argTypes:
    - Fts5Parse*
    - Fts5ExprNode*
    - Fts5Colset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208400
      start: 208385
    functionDepth: 10
    functionLinenumber: 208385
    functionLinenumberEnd: 208400
    functionName: sqlite3Fts5ParseSetColset
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3_mprintf
    - fts5ParseSetColset
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: "void sqlite3Fts5ParseSetColset(\n  Fts5Parse *pParse, \n  Fts5ExprNode
      *pExpr, \n  Fts5Colset *pColset \n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:208428,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 1
    argNames:
    - pNode
    argTypes:
    - Fts5ExprNode*
    assertStmts:
    - condition: ( pNode->eType==FTS5_NOT )
      pos:
        line_end: 208427
        line_start: 208427
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 208433
      start: 208402
    functionDepth: 0
    functionLinenumber: 208402
    functionLinenumberEnd: 208433
    functionName: fts5ExprAssignXNext
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void fts5ExprAssignXNext(Fts5ExprNode *pNode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:208438,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:208440,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - p
    - pSub
    argTypes:
    - Fts5ExprNode*
    - Fts5ExprNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208444
      start: 208435
    functionDepth: 3
    functionLinenumber: 208435
    functionLinenumberEnd: 208444
    functionName: fts5ExprAddChildren
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void fts5ExprAddChildren(Fts5ExprNode *p, Fts5ExprNode *pSub)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:208463,1
    - Dst: sqlite3Fts5MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:208479,1
    - Dst: fts5ExprAssignXNext
      Src: /src/nss/lib/sqlite/sqlite3.c:208484,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:208501,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:208503,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:208504,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:208508,1
    - Dst: fts5ExprAddChildren
      Src: /src/nss/lib/sqlite/sqlite3.c:208513,1
    - Dst: fts5ExprAddChildren
      Src: /src/nss/lib/sqlite/sqlite3.c:208514,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:208520,1
    - Dst: sqlite3Fts5ParseNodeFree
      Src: /src/nss/lib/sqlite/sqlite3.c:208521,1
    - Dst: sqlite3Fts5ParseNodeFree
      Src: /src/nss/lib/sqlite/sqlite3.c:208522,1
    - Dst: sqlite3Fts5ParseNearsetFree
      Src: /src/nss/lib/sqlite/sqlite3.c:208523,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 56
    argCount: 5
    argNames:
    - pParse
    - eType
    - pLeft
    - pRight
    - pNear
    argTypes:
    - Fts5Parse*
    - int
    - Fts5ExprNode*
    - Fts5ExprNode*
    - Fts5ExprNearset*
    assertStmts:
    - condition: "( (eType!=FTS5_STRING && !pNear)\n         || (eType==FTS5_STRING
        && !pLeft && !pRight)\n    )"
      pos:
        line_end: 208464
        line_start: 208462
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pParse->zErr==0 )
      pos:
        line_end: 208502
        line_start: 208502
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pParse->rc==SQLITE_OK )
      pos:
        line_end: 208500
        line_start: 208500
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pParse->rc!=SQLITE_OK )
      pos:
        line_end: 208519
        line_start: 208519
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 208526
      start: 208450
    functionDepth: 10
    functionLinenumber: 208450
    functionLinenumberEnd: 208526
    functionName: sqlite3Fts5ParseNode
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - fts5ExprAssignXNext
    - fts5ExprAddChildren
    - sqlite3Fts5MallocZero
    - assert
    - sqlite3_mprintf
    - sqlite3Fts5ParseNodeFree
    - sqlite3_free
    - sqlite3Fts5ParseNearsetFree
    linkageType: ''
    returnType: Fts5ExprNode
    signature: "Fts5ExprNode *sqlite3Fts5ParseNode(\n  Fts5Parse *pParse,              /*
      Parse context */\n  int eType,                      /* FTS5_STRING, AND, OR
      or NOT */\n  Fts5ExprNode *pLeft,            /* Left hand child expression */\n
      \ Fts5ExprNode *pRight,           /* Right hand child expression */\n  Fts5ExprNearset
      *pNear          /* For STRING expressions, the near cluster */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5ParseNodeFree
      Src: /src/nss/lib/sqlite/sqlite3.c:208537,1
    - Dst: sqlite3Fts5ParseNodeFree
      Src: /src/nss/lib/sqlite/sqlite3.c:208538,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:208541,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:208546,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:208556,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:208562,1
    - Dst: sqlite3Fts5ParseNodeFree
      Src: /src/nss/lib/sqlite/sqlite3.c:208563,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:208578,1
    - Dst: memmove
      Src: /src/nss/lib/sqlite/sqlite3.c:208579,1
    - Dst: sqlite3Fts5ParseNodeFree
      Src: /src/nss/lib/sqlite/sqlite3.c:208582,1
    - Dst: sqlite3Fts5ParseNode
      Src: /src/nss/lib/sqlite/sqlite3.c:208585,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 3
    argNames:
    - pParse
    - pLeft
    - pRight
    argTypes:
    - Fts5Parse*
    - Fts5ExprNode*
    - Fts5ExprNode*
    assertStmts:
    - condition: "( pPrev->eType==FTS5_STRING \n        || pPrev->eType==FTS5_TERM
        \n        || pPrev->eType==FTS5_EOF \n        )"
      pos:
        line_end: 208558
        line_start: 208555
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( pLeft->eType==FTS5_STRING \n        || pLeft->eType==FTS5_TERM\n
        \       || pLeft->eType==FTS5_EOF\n        || pLeft->eType==FTS5_AND\n    )"
      pos:
        line_end: 208544
        line_start: 208540
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( pRight->eType==FTS5_STRING \n        || pRight->eType==FTS5_TERM
        \n        || pRight->eType==FTS5_EOF \n    )"
      pos:
        line_end: 208548
        line_start: 208545
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pParse->apPhrase[pParse->nPhrase-1]==pRight->pNear->apPhrase[0]
        )
      pos:
        line_end: 208561
        line_start: 208561
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( ap[0]==pPrev->pNear->apPhrase[0] )
      pos:
        line_end: 208577
        line_start: 208577
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 208590
      start: 208528
    functionDepth: 11
    functionLinenumber: 208528
    functionLinenumberEnd: 208590
    functionName: sqlite3Fts5ParseImplicitAnd
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - sqlite3Fts5ParseNode
    - sqlite3Fts5ParseNodeFree
    - memmove
    linkageType: ''
    returnType: Fts5ExprNode
    signature: "Fts5ExprNode *sqlite3Fts5ParseImplicitAnd(\n  Fts5Parse *pParse,              /*
      Parse context */\n  Fts5ExprNode *pLeft,            /* Left hand child expression
      */\n  Fts5ExprNode *pRight            /* Right hand child expression */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:208599,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:208601,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - pTerm
    argTypes:
    - Fts5ExprTerm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208622
      start: 208592
    functionDepth: 6
    functionLinenumber: 208592
    functionLinenumberEnd: 208622
    functionName: fts5ExprTermPrint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_malloc64
    - strlen
    linkageType: ''
    returnType: char
    signature: char *fts5ExprTermPrint(Fts5ExprTerm *pTerm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/nss/lib/sqlite/sqlite3.c:208627,1
    - Dst: sqlite3_vmprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:208628,1
    - Dst: va_end
      Src: /src/nss/lib/sqlite/sqlite3.c:208629,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:208631,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:208632,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:208635,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - zApp
    - zFmt
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208637
      start: 208624
    functionDepth: 10
    functionLinenumber: 208624
    functionLinenumberEnd: 208637
    functionName: fts5PrintfAppend
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_vmprintf
    - va_end
    - sqlite3_mprintf
    - va_start
    - sqlite3_free
    linkageType: ''
    returnType: char
    signature: char *fts5PrintfAppend(char *zApp, const char *zFmt, ...)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: fts5PrintfAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:208656,1
    - Dst: fts5PrintfAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:208662,1
    - Dst: fts5PrintfAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:208664,1
    - Dst: fts5PrintfAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:208666,1
    - Dst: fts5PrintfAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:208668,1
    - Dst: fts5PrintfAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:208674,1
    - Dst: fts5PrintfAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:208678,1
    - Dst: fts5PrintfAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:208684,1
    - Dst: fts5PrintfAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:208687,1
    - Dst: fts5PrintfAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:208689,1
    - Dst: fts5PrintfAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:208693,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:208704,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:208709,1
    - Dst: fts5ExprPrintTcl
      Src: /src/nss/lib/sqlite/sqlite3.c:208711,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:208713,1
    - Dst: fts5PrintfAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:208716,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 63
    argCount: 3
    argNames:
    - pConfig
    - zNearsetCmd
    - pExpr
    argTypes:
    - Fts5Config*
    - char*
    - Fts5ExprNode*
    assertStmts:
    - condition: ( pExpr->eType==FTS5_OR )
      pos:
        line_end: 208703
        line_start: 208703
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 208722
      start: 208645
    functionDepth: 11
    functionLinenumber: 208645
    functionLinenumberEnd: 208722
    functionName: fts5ExprPrintTcl
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - fts5PrintfAppend
    - assert
    - sqlite3_mprintf
    - fts5ExprPrintTcl
    - sqlite3_free
    linkageType: ''
    returnType: char
    signature: "char *fts5ExprPrintTcl(\n  Fts5Config *pConfig, \n  const char *zNearsetCmd,\n
      \ Fts5ExprNode *pExpr\n)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:208727,1
    - Dst: fts5PrintfAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:208736,1
    - Dst: fts5PrintfAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:208741,1
    - Dst: fts5PrintfAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:208748,1
    - Dst: fts5ExprTermPrint
      Src: /src/nss/lib/sqlite/sqlite3.c:208752,1
    - Dst: fts5PrintfAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:208754,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:208755,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:208758,1
    - Dst: fts5PrintfAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:208765,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:208777,1
    - Dst: fts5ExprPrint
      Src: /src/nss/lib/sqlite/sqlite3.c:208783,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:208785,1
    - Dst: fts5PrintfAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:208790,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 62
    argCount: 2
    argNames:
    - pConfig
    - pExpr
    argTypes:
    - Fts5Config*
    - Fts5ExprNode*
    assertStmts:
    - condition: ( pExpr->eType==FTS5_OR )
      pos:
        line_end: 208776
        line_start: 208776
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 208800
      start: 208724
    functionDepth: 11
    functionLinenumber: 208724
    functionLinenumberEnd: 208800
    functionName: fts5ExprPrint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - fts5ExprPrint
    - fts5PrintfAppend
    - fts5ExprTermPrint
    - assert
    - sqlite3_mprintf
    - sqlite3_free
    linkageType: ''
    returnType: char
    signature: char *fts5ExprPrint(Fts5Config *pConfig, Fts5ExprNode *pExpr)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_user_data
      Src: /src/nss/lib/sqlite/sqlite3.c:208812,1
    - Dst: sqlite3_context_db_handle
      Src: /src/nss/lib/sqlite/sqlite3.c:208813,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:208827,1
    - Dst: sqlite3_result_error
      Src: /src/nss/lib/sqlite/sqlite3.c:208830,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:208831,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:208836,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:208841,1
    - Dst: sqlite3_result_error_nomem
      Src: /src/nss/lib/sqlite/sqlite3.c:208843,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:208850,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:208853,1
    - Dst: sqlite3Fts5ConfigParse
      Src: /src/nss/lib/sqlite/sqlite3.c:208855,1
    - Dst: sqlite3Fts5ExprNew
      Src: /src/nss/lib/sqlite/sqlite3.c:208857,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:208862,1
    - Dst: fts5ExprPrintTcl
      Src: /src/nss/lib/sqlite/sqlite3.c:208864,1
    - Dst: fts5ExprPrint
      Src: /src/nss/lib/sqlite/sqlite3.c:208866,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:208871,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:208872,1
    - Dst: sqlite3_result_error
      Src: /src/nss/lib/sqlite/sqlite3.c:208878,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:208879,1
    - Dst: sqlite3_result_error_code
      Src: /src/nss/lib/sqlite/sqlite3.c:208881,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:208884,1
    - Dst: sqlite3Fts5ConfigFree
      Src: /src/nss/lib/sqlite/sqlite3.c:208885,1
    - Dst: sqlite3Fts5ExprFree
      Src: /src/nss/lib/sqlite/sqlite3.c:208886,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 4
    argNames:
    - pCtx
    - nArg
    - apVal
    - bTcl
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208887
      start: 208806
    functionDepth: 15
    functionLinenumber: 208806
    functionLinenumberEnd: 208887
    functionName: fts5ExprFunction
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_malloc64
    - fts5ExprPrint
    - sqlite3Fts5ConfigParse
    - sqlite3_result_error_code
    - sqlite3_context_db_handle
    - sqlite3Fts5ExprNew
    - sqlite3Fts5ConfigFree
    - fts5ExprPrintTcl
    - sqlite3_mprintf
    - sqlite3_result_error_nomem
    - sqlite3Fts5ExprFree
    - sqlite3_user_data
    - sqlite3_value_text
    - sqlite3_free
    - sqlite3_result_text
    - sqlite3_result_error
    linkageType: ''
    returnType: void
    signature: "void fts5ExprFunction(\n  sqlite3_context *pCtx,          /* Function
      call context */\n  int nArg,                       /* Number of args */\n  sqlite3_value
      **apVal,          /* Function arguments */\n  int bTcl\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts5ExprFunction
      Src: /src/nss/lib/sqlite/sqlite3.c:208894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pCtx
    - nArg
    - apVal
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208895
      start: 208889
    functionDepth: 16
    functionLinenumber: 208889
    functionLinenumberEnd: 208895
    functionName: fts5ExprFunctionHr
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5ExprFunction
    linkageType: ''
    returnType: void
    signature: "void fts5ExprFunctionHr(\n  sqlite3_context *pCtx,          /* Function
      call context */\n  int nArg,                       /* Number of args */\n  sqlite3_value
      **apVal           /* Function arguments */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts5ExprFunction
      Src: /src/nss/lib/sqlite/sqlite3.c:208901,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pCtx
    - nArg
    - apVal
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208902
      start: 208896
    functionDepth: 16
    functionLinenumber: 208896
    functionLinenumberEnd: 208902
    functionName: fts5ExprFunctionTcl
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5ExprFunction
    linkageType: ''
    returnType: void
    signature: "void fts5ExprFunctionTcl(\n  sqlite3_context *pCtx,          /* Function
      call context */\n  int nArg,                       /* Number of args */\n  sqlite3_value
      **apVal           /* Function arguments */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_result_error
      Src: /src/nss/lib/sqlite/sqlite3.c:208917,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:208922,1
    - Dst: sqlite3Fts5UnicodeCatParse
      Src: /src/nss/lib/sqlite/sqlite3.c:208923,1
    - Dst: sqlite3Fts5UnicodeCatParse
      Src: /src/nss/lib/sqlite/sqlite3.c:208924,1
    - Dst: sqlite3Fts5UnicodeCatParse
      Src: /src/nss/lib/sqlite/sqlite3.c:208925,1
    - Dst: sqlite3_value_int
      Src: /src/nss/lib/sqlite/sqlite3.c:208926,1
    - Dst: sqlite3_result_int
      Src: /src/nss/lib/sqlite/sqlite3.c:208927,1
    - Dst: sqlite3Fts5UnicodeCategory
      Src: /src/nss/lib/sqlite/sqlite3.c:208927,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - pCtx
    - nArg
    - apVal
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208928
      start: 208909
    functionDepth: 13
    functionLinenumber: 208909
    functionLinenumberEnd: 208928
    functionName: fts5ExprIsAlnum
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5UnicodeCategory
    - sqlite3Fts5UnicodeCatParse
    - sqlite3_value_int
    - memset
    - sqlite3_result_int
    - sqlite3_result_error
    linkageType: ''
    returnType: void
    signature: "void fts5ExprIsAlnum(\n  sqlite3_context *pCtx,          /* Function
      call context */\n  int nArg,                       /* Number of args */\n  sqlite3_value
      **apVal           /* Function arguments */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_result_error
      Src: /src/nss/lib/sqlite/sqlite3.c:208936,1
    - Dst: sqlite3_value_int
      Src: /src/nss/lib/sqlite/sqlite3.c:208942,1
    - Dst: sqlite3_value_int
      Src: /src/nss/lib/sqlite/sqlite3.c:208943,1
    - Dst: sqlite3_result_int
      Src: /src/nss/lib/sqlite/sqlite3.c:208944,1
    - Dst: sqlite3Fts5UnicodeFold
      Src: /src/nss/lib/sqlite/sqlite3.c:208944,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - pCtx
    - nArg
    - apVal
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208946
      start: 208930
    functionDepth: 13
    functionLinenumber: 208930
    functionLinenumberEnd: 208946
    functionName: fts5ExprFold
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_int
    - sqlite3Fts5UnicodeFold
    - sqlite3_value_int
    - sqlite3_result_error
    linkageType: ''
    returnType: void
    signature: "void fts5ExprFold(\n  sqlite3_context *pCtx,          /* Function
      call context */\n  int nArg,                       /* Number of args */\n  sqlite3_value
      **apVal           /* Function arguments */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:208966,1
    - Dst: sqlite3_create_function
      Src: /src/nss/lib/sqlite/sqlite3.c:208968,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - pGlobal
    - db
    argTypes:
    - Fts5Global*
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208979
      start: 208952
    functionDepth: 14
    functionLinenumber: 208952
    functionLinenumberEnd: 208979
    functionName: sqlite3Fts5ExprInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ArraySize
    - sqlite3_create_function
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5ExprInit(Fts5Global *pGlobal, sqlite3 *db)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pExpr
    argTypes:
    - Fts5Expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208986
      start: 208984
    functionDepth: 0
    functionLinenumber: 208984
    functionLinenumberEnd: 208986
    functionName: sqlite3Fts5ExprPhraseCount
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5ExprPhraseCount(Fts5Expr *pExpr)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - pExpr
    - iPhrase
    argTypes:
    - Fts5Expr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208994
      start: 208991
    functionDepth: 0
    functionLinenumber: 208991
    functionLinenumberEnd: 208994
    functionName: sqlite3Fts5ExprPhraseSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5ExprPhraseSize(Fts5Expr *pExpr, int iPhrase)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - pExpr
    - iPhrase
    - pa
    argTypes:
    - Fts5Expr*
    - int
    - u8**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209012
      start: 209000
    functionDepth: 0
    functionLinenumber: 209000
    functionLinenumberEnd: 209012
    functionName: sqlite3Fts5ExprPoslist
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5ExprPoslist(Fts5Expr *pExpr, int iPhrase, const u8 **pa)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:209022,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:209025,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:209029,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - pExpr
    - bLive
    argTypes:
    - Fts5Expr*
    - int
    assertStmts:
    - condition: ( pExpr->apExprPhrase[i]->nTerm==1 )
      pos:
        line_end: 209028
        line_start: 209028
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 209040
      start: 209020
    functionDepth: 6
    functionLinenumber: 209020
    functionLinenumberEnd: 209040
    functionName: sqlite3Fts5ExprClearPoslists
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - assert
    - sqlite3_malloc64
    linkageType: ''
    returnType: Fts5PoslistPopulator
    signature: Fts5PoslistPopulator *sqlite3Fts5ExprClearPoslists(Fts5Expr *pExpr,
      int bLive)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - pColset
    - iCol
    argTypes:
    - Fts5Colset*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209058
      start: 209052
    functionDepth: 0
    functionLinenumber: 209052
    functionLinenumberEnd: 209058
    functionName: fts5ExprColsetTest
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fts5ExprColsetTest(Fts5Colset *pColset, int iCol)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAM2
      Src: /src/nss/lib/sqlite/sqlite3.c:209072,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:209080,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:209082,1
    - Dst: sqlite3Fts5PoslistWriterAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:209084,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 18
    argCount: 6
    argNames:
    - pCtx
    - tflags
    - pToken
    - nToken
    - iUnused1
    - iUnused2
    argTypes:
    - void*
    - int
    - char*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209093
      start: 209060
    functionDepth: 3
    functionLinenumber: 209060
    functionLinenumberEnd: 209093
    functionName: fts5ExprPopulatePoslistsCb
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5PoslistWriterAppend
    - memcmp
    - UNUSED_PARAM2
    - strlen
    linkageType: ''
    returnType: int
    signature: "int fts5ExprPopulatePoslistsCb(\n  void *pCtx,                /* Copy
      of 2nd argument to xTokenize() */\n  int tflags,                /* Mask of FTS5_TOKEN_*
      flags */\n  const char *pToken,        /* Pointer to buffer containing token
      */\n  int nToken,                /* Size of token in bytes */\n  int iUnused1,
      \             /* Byte offset of token within input text */\n  int iUnused2               /*
      Byte offset of end of token within input text */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fts5ExprColsetTest
      Src: /src/nss/lib/sqlite/sqlite3.c:209111,1
    - Dst: sqlite3Fts5Tokenize
      Src: /src/nss/lib/sqlite/sqlite3.c:209120,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 6
    argNames:
    - pConfig
    - pExpr
    - aPopulator
    - iCol
    - z
    - n
    argTypes:
    - Fts5Config*
    - Fts5Expr*
    - Fts5PoslistPopulator*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209123
      start: 209095
    functionDepth: 1
    functionLinenumber: 209095
    functionLinenumberEnd: 209123
    functionName: sqlite3Fts5ExprPopulatePoslists
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5ExprColsetTest
    - sqlite3Fts5Tokenize
    linkageType: ''
    returnType: int
    signature: "int sqlite3Fts5ExprPopulatePoslists(\n  Fts5Config *pConfig,\n  Fts5Expr
      *pExpr, \n  Fts5PoslistPopulator *aPopulator,\n  int iCol, \n  const char *z,
      int n\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fts5ExprClearPoslists
      Src: /src/nss/lib/sqlite/sqlite3.c:209131,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - pNode
    argTypes:
    - Fts5ExprNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209134
      start: 209125
    functionDepth: 1
    functionLinenumber: 209125
    functionLinenumberEnd: 209134
    functionName: fts5ExprClearPoslists
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - fts5ExprClearPoslists
    linkageType: ''
    returnType: void
    signature: void fts5ExprClearPoslists(Fts5ExprNode *pNode)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fts5ExprCheckPoslists
      Src: /src/nss/lib/sqlite/sqlite3.c:209147,1
    - Dst: fts5ExprClearPoslists
      Src: /src/nss/lib/sqlite/sqlite3.c:209148,1
    - Dst: fts5ExprCheckPoslists
      Src: /src/nss/lib/sqlite/sqlite3.c:209159,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:209167,1
    - Dst: fts5ExprCheckPoslists
      Src: /src/nss/lib/sqlite/sqlite3.c:209168,1
    - Dst: fts5ExprCheckPoslists
      Src: /src/nss/lib/sqlite/sqlite3.c:209169,1
    - Dst: fts5ExprClearPoslists
      Src: /src/nss/lib/sqlite/sqlite3.c:209171,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 2
    argNames:
    - pNode
    - iRowid
    argTypes:
    - Fts5ExprNode*
    - i64
    assertStmts:
    - condition: ( pNode->eType==FTS5_NOT )
      pos:
        line_end: 209166
        line_start: 209166
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 209178
      start: 209136
    functionDepth: 2
    functionLinenumber: 209136
    functionLinenumberEnd: 209178
    functionName: fts5ExprCheckPoslists
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - fts5ExprClearPoslists
    - fts5ExprCheckPoslists
    linkageType: ''
    returnType: int
    signature: int fts5ExprCheckPoslists(Fts5ExprNode *pNode, i64 iRowid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts5ExprCheckPoslists
      Src: /src/nss/lib/sqlite/sqlite3.c:209181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pExpr
    - iRowid
    argTypes:
    - Fts5Expr*
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209182
      start: 209180
    functionDepth: 3
    functionLinenumber: 209180
    functionLinenumberEnd: 209182
    functionName: sqlite3Fts5ExprCheckPoslists
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5ExprCheckPoslists
    linkageType: ''
    returnType: void
    signature: void sqlite3Fts5ExprCheckPoslists(Fts5Expr *pExpr, i64 iRowid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:209197,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:209198,1
    - Dst: fts5ExprSynonymList
      Src: /src/nss/lib/sqlite/sqlite3.c:209207,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - pExpr
    - iPhrase
    - ppCollist
    - pnCollist
    argTypes:
    - Fts5Expr*
    - int
    - u8**
    - int*
    assertStmts:
    - condition: ( iPhrase>=0 && iPhrase<pExpr->nPhrase )
      pos:
        line_end: 209196
        line_start: 209196
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pExpr->pConfig->eDetail==FTS5_DETAIL_COLUMNS )
      pos:
        line_end: 209197
        line_start: 209197
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 209220
      start: 209187
    functionDepth: 7
    functionLinenumber: 209187
    functionLinenumberEnd: 209220
    functionName: sqlite3Fts5ExprPhraseCollist
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fts5ExprSynonymList
    linkageType: ''
    returnType: int
    signature: "int sqlite3Fts5ExprPhraseCollist(\n  Fts5Expr *pExpr, \n  int iPhrase,
      \n  const u8 **ppCollist, \n  int *pnCollist\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209301
      start: 209300
    functionDepth: 0
    functionLinenumber: 209300
    functionLinenumberEnd: 209301
    functionName: fts5EntryKey
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fts5EntryKey(p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:209310,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:209315,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:209321,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:209323,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:209327,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 3
    argNames:
    - pConfig
    - ppNew
    - pnByte
    argTypes:
    - Fts5Config*
    - Fts5Hash**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209331
      start: 209306
    functionDepth: 6
    functionLinenumber: 209306
    functionLinenumberEnd: 209331
    functionName: sqlite3Fts5HashNew
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3_malloc
    - sqlite3_malloc64
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5HashNew(Fts5Config *pConfig, Fts5Hash **ppNew, int *pnByte)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5HashClear
      Src: /src/nss/lib/sqlite/sqlite3.c:209338,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:209339,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:209340,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pHash
    argTypes:
    - Fts5Hash*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209342
      start: 209336
    functionDepth: 3
    functionLinenumber: 209336
    functionLinenumberEnd: 209342
    functionName: sqlite3Fts5HashFree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5HashClear
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void sqlite3Fts5HashFree(Fts5Hash *pHash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:209354,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:209357,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - pHash
    argTypes:
    - Fts5Hash*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209359
      start: 209347
    functionDepth: 3
    functionLinenumber: 209347
    functionLinenumberEnd: 209359
    functionName: sqlite3Fts5HashClear
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - memset
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void sqlite3Fts5HashClear(Fts5Hash *pHash)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - nSlot
    - p
    - n
    argTypes:
    - int
    - u8*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209368
      start: 209361
    functionDepth: 0
    functionLinenumber: 209361
    functionLinenumberEnd: 209368
    functionName: fts5HashKey
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int fts5HashKey(int nSlot, const u8 *p, int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - nSlot
    - b
    - p
    - n
    argTypes:
    - int
    - u8
    - u8*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209378
      start: 209370
    functionDepth: 0
    functionLinenumber: 209370
    functionLinenumberEnd: 209378
    functionName: fts5HashKey2
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int fts5HashKey2(int nSlot, u8 b, const u8 *p, int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:209389,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:209391,1
    - Dst: fts5HashKey
      Src: /src/nss/lib/sqlite/sqlite3.c:209398,1
    - Dst: fts5EntryKey
      Src: /src/nss/lib/sqlite/sqlite3.c:209398,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:209399,1
    - Dst: fts5EntryKey
      Src: /src/nss/lib/sqlite/sqlite3.c:209399,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:209405,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - pHash
    argTypes:
    - Fts5Hash*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209409
      start: 209383
    functionDepth: 6
    functionLinenumber: 209383
    functionLinenumberEnd: 209409
    functionName: fts5HashResize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_malloc64
    - memset
    - fts5HashKey
    - fts5EntryKey
    - sqlite3_free
    - strlen
    linkageType: ''
    returnType: int
    signature: int fts5HashResize(Fts5Hash *pHash)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:209421,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:209432,1
    - Dst: sqlite3Fts5GetVarintLen
      Src: /src/nss/lib/sqlite/sqlite3.c:209436,1
    - Dst: memmove
      Src: /src/nss/lib/sqlite/sqlite3.c:209437,1
    - Dst: sqlite3Fts5PutVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:209438,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 3
    argNames:
    - pHash
    - p
    - p2
    argTypes:
    - Fts5Hash*
    - Fts5HashEntry*
    - Fts5HashEntry*
    assertStmts:
    - condition: ( nData==p->iSzPoslist )
      pos:
        line_end: 209420
        line_start: 209420
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->bDel==0 || p->bDel==1 )
      pos:
        line_end: 209431
        line_start: 209431
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 209452
      start: 209411
    functionDepth: 1
    functionLinenumber: 209411
    functionLinenumberEnd: 209452
    functionName: fts5HashAddPoslistSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3Fts5GetVarintLen
    - memmove
    - sqlite3Fts5PutVarint
    linkageType: ''
    returnType: int
    signature: "int fts5HashAddPoslistSize(\n  Fts5Hash *pHash, \n  Fts5HashEntry
      *p,\n  Fts5HashEntry *p2\n)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: fts5HashKey2
      Src: /src/nss/lib/sqlite/sqlite3.c:209479,1
    - Dst: fts5EntryKey
      Src: /src/nss/lib/sqlite/sqlite3.c:209481,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:209484,1
    - Dst: fts5HashResize
      Src: /src/nss/lib/sqlite/sqlite3.c:209499,1
    - Dst: fts5HashKey2
      Src: /src/nss/lib/sqlite/sqlite3.c:209501,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:209505,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:209507,1
    - Dst: fts5EntryKey
      Src: /src/nss/lib/sqlite/sqlite3.c:209509,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:209511,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:209512,1
    - Dst: fts5HashKey
      Src: /src/nss/lib/sqlite/sqlite3.c:209512,1
    - Dst: sqlite3Fts5PutVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:209521,1
    - Dst: sqlite3_realloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:209547,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:209556,1
    - Dst: fts5HashAddPoslistSize
      Src: /src/nss/lib/sqlite/sqlite3.c:209563,1
    - Dst: sqlite3Fts5PutVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:209564,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:209580,1
    - Dst: sqlite3Fts5PutVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:209584,1
    - Dst: sqlite3Fts5PutVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:209595,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 93
    argCount: 7
    argNames:
    - pHash
    - iRowid
    - iCol
    - iPos
    - bByte
    - pToken
    - nToken
    argTypes:
    - Fts5Hash*
    - i64
    - int
    - int
    - char
    - char*
    - int
    assertStmts:
    - condition: ( iHash==fts5HashKey(pHash->nSlot, (u8*)zKey, nToken+1) )
      pos:
        line_end: 209511
        line_start: 209511
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (p->nAlloc - p->nData) >= (9 + 4 + 1 + 3 + 5) )
      pos:
        line_end: 209555
        line_start: 209555
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iCol>=p->iCol )
      pos:
        line_end: 209579
        line_start: 209579
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 209607
      start: 209462
    functionDepth: 7
    functionLinenumber: 209462
    functionLinenumberEnd: 209607
    functionName: sqlite3Fts5HashWrite
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - sqlite3_malloc64
    - sqlite3Fts5PutVarint
    - fts5HashAddPoslistSize
    - memset
    - assert
    - fts5HashKey2
    - fts5HashResize
    - fts5HashKey
    - fts5EntryKey
    - memcmp
    - sqlite3_realloc64
    linkageType: ''
    returnType: int
    signature: "int sqlite3Fts5HashWrite(\n  Fts5Hash *pHash,\n  i64 iRowid,                     /*
      Rowid for this entry */\n  int iCol,                       /* Column token appears
      in (-ve -> delete) */\n  int iPos,                       /* Position of token
      within column */\n  char bByte,                     /* First byte of token */\n
      \ const char *pToken, int nToken  /* Token to add or remove to or from index
      */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fts5EntryKey
      Src: /src/nss/lib/sqlite/sqlite3.c:209633,1
    - Dst: fts5EntryKey
      Src: /src/nss/lib/sqlite/sqlite3.c:209634,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - pLeft
    - pRight
    argTypes:
    - Fts5HashEntry*
    - Fts5HashEntry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209653
      start: 209615
    functionDepth: 1
    functionLinenumber: 209615
    functionLinenumberEnd: 209653
    functionName: fts5HashEntryMerge
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5EntryKey
    linkageType: ''
    returnType: Fts5HashEntry
    signature: "Fts5HashEntry *fts5HashEntryMerge(\n  Fts5HashEntry *pLeft,\n  Fts5HashEntry
      *pRight\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:209673,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:209675,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:209681,1
    - Dst: fts5EntryKey
      Src: /src/nss/lib/sqlite/sqlite3.c:209681,1
    - Dst: fts5HashEntryMerge
      Src: /src/nss/lib/sqlite/sqlite3.c:209686,1
    - Dst: fts5HashEntryMerge
      Src: /src/nss/lib/sqlite/sqlite3.c:209696,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:209700,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 4
    argNames:
    - pHash
    - pTerm
    - nTerm
    - ppSorted
    argTypes:
    - Fts5Hash*
    - char*
    - int
    - Fts5HashEntry**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209703
      start: 209661
    functionDepth: 6
    functionLinenumber: 209661
    functionLinenumberEnd: 209703
    functionName: fts5HashEntrySort
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_malloc64
    - fts5HashEntryMerge
    - memset
    - fts5EntryKey
    - memcmp
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int fts5HashEntrySort(\n  Fts5Hash *pHash, \n  const char *pTerm,
      int nTerm,   /* Query prefix, if any */\n  Fts5HashEntry **ppSorted\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fts5HashKey
      Src: /src/nss/lib/sqlite/sqlite3.c:209715,1
    - Dst: fts5EntryKey
      Src: /src/nss/lib/sqlite/sqlite3.c:209720,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:209721,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:209721,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:209722,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:209728,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:209731,1
    - Dst: fts5HashAddPoslistSize
      Src: /src/nss/lib/sqlite/sqlite3.c:209732,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 6
    argNames:
    - pHash
    - nPre
    - pTerm
    - nTerm
    - ppOut
    - pnDoclist
    argTypes:
    - Fts5Hash*
    - int
    - char*
    - int
    - void**
    - int*
    assertStmts:
    - condition: ( p->nKey+1==(int)strlen(zKey) )
      pos:
        line_end: 209720
        line_start: 209720
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 209744
      start: 209708
    functionDepth: 6
    functionLinenumber: 209708
    functionLinenumberEnd: 209744
    functionName: sqlite3Fts5HashQuery
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - sqlite3_malloc64
    - fts5HashAddPoslistSize
    - assert
    - fts5HashKey
    - fts5EntryKey
    - memcmp
    - strlen
    linkageType: ''
    returnType: int
    signature: "int sqlite3Fts5HashQuery(\n  Fts5Hash *pHash,                /* Hash
      table to query */\n  int nPre,\n  const char *pTerm, int nTerm,   /* Query term
      */\n  void **ppOut,                   /* OUT: Pointer to new object */\n  int
      *pnDoclist                  /* OUT: Size of doclist in bytes */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts5HashEntrySort
      Src: /src/nss/lib/sqlite/sqlite3.c:209750,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - p
    - pTerm
    - nTerm
    argTypes:
    - Fts5Hash*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209751
      start: 209746
    functionDepth: 7
    functionLinenumber: 209746
    functionLinenumberEnd: 209751
    functionName: sqlite3Fts5HashScanInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5HashEntrySort
    linkageType: ''
    returnType: int
    signature: "int sqlite3Fts5HashScanInit(\n  Fts5Hash *p,                    /*
      Hash table to query */\n  const char *pTerm, int nTerm    /* Query prefix */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:209754,1
    - Dst: sqlite3Fts5HashScanEof
      Src: /src/nss/lib/sqlite/sqlite3.c:209754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - Fts5Hash*
    assertStmts:
    - condition: ( !sqlite3Fts5HashScanEof(p) )
      pos:
        line_end: 209753
        line_start: 209753
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 209756
      start: 209753
    functionDepth: 1
    functionLinenumber: 209753
    functionLinenumberEnd: 209756
    functionName: sqlite3Fts5HashScanNext
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3Fts5HashScanEof
    linkageType: ''
    returnType: void
    signature: void sqlite3Fts5HashScanNext(Fts5Hash *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - Fts5Hash*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209760
      start: 209758
    functionDepth: 0
    functionLinenumber: 209758
    functionLinenumberEnd: 209760
    functionName: sqlite3Fts5HashScanEof
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5HashScanEof(Fts5Hash *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fts5EntryKey
      Src: /src/nss/lib/sqlite/sqlite3.c:209770,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:209771,1
    - Dst: fts5HashAddPoslistSize
      Src: /src/nss/lib/sqlite/sqlite3.c:209772,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - pHash
    - pzTerm
    - ppDoclist
    - pnDoclist
    argTypes:
    - Fts5Hash*
    - char**
    - u8**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209781
      start: 209762
    functionDepth: 2
    functionLinenumber: 209762
    functionLinenumberEnd: 209781
    functionName: sqlite3Fts5HashScanEntry
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5EntryKey
    - fts5HashAddPoslistSize
    - strlen
    linkageType: ''
    returnType: void
    signature: "void sqlite3Fts5HashScanEntry(\n  Fts5Hash *pHash,\n  const char **pzTerm,
      \           /* OUT: term (nul-terminated) */\n  const u8 **ppDoclist,           /*
      OUT: pointer to doclist */\n  int *pnDoclist                  /* OUT: size of
      doclist in bytes */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - segid
    - ','
    - dlidx
    - ','
    - height
    - ','
    - pgno
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210020
      start: 210014
    functionDepth: 0
    functionLinenumber: 210014
    functionLinenumberEnd: 210020
    functionName: fts5_dri
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fts5_dri(segid, dlidx, height, pgno)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - segid
    - ','
    - pgno
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210022
      start: 210021
    functionDepth: 0
    functionLinenumber: 210021
    functionLinenumberEnd: 210022
    functionName: FTS5_SEGMENT_ROWID
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FTS5_SEGMENT_ROWID(segid, pgno)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - segid
    - ','
    - height
    - ','
    - pgno
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210023
      start: 210022
    functionDepth: 0
    functionLinenumber: 210022
    functionLinenumberEnd: 210023
    functionName: FTS5_DLIDX_ROWID
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FTS5_DLIDX_ROWID(segid, height, pgno)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210030
      start: 210030
    functionDepth: 0
    functionLinenumber: 210030
    functionLinenumberEnd: 210030
    functionName: sqlite3Fts5Corrupt
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5Corrupt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210255
      start: 210252
    functionDepth: 0
    functionLinenumber: 210252
    functionLinenumberEnd: 210255
    functionName: ASSERT_SZLEAF_OK
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT_SZLEAF_OK(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210265
      start: 210264
    functionDepth: 0
    functionLinenumber: 210264
    functionLinenumberEnd: 210265
    functionName: fts5LeafIsTermless
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fts5LeafIsTermless(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210267
      start: 210266
    functionDepth: 0
    functionLinenumber: 210266
    functionLinenumberEnd: 210267
    functionName: fts5LeafTermOff
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fts5LeafTermOff(x, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210269
      start: 210268
    functionDepth: 0
    functionLinenumber: 210268
    functionLinenumberEnd: 210269
    functionName: fts5LeafFirstRowidOff
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fts5LeafFirstRowidOff(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - aOut
    - iVal
    argTypes:
    - u8*
    - u16
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210345
      start: 210342
    functionDepth: 0
    functionLinenumber: 210342
    functionLinenumberEnd: 210345
    functionName: fts5PutU16
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fts5PutU16(u8 *aOut, u16 iVal)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - aIn
    argTypes:
    - u8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210349
      start: 210347
    functionDepth: 0
    functionLinenumber: 210347
    functionLinenumberEnd: 210349
    functionName: fts5GetU16
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u16
    signature: u16 fts5GetU16(const u8 *aIn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:210358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - nByte
    argTypes:
    - Fts5Index*
    - sqlite3_int64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210359
      start: 210357
    functionDepth: 7
    functionLinenumber: 210357
    functionLinenumberEnd: 210359
    functionName: fts5IdxMalloc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5MallocZero
    linkageType: ''
    returnType: void
    signature: void *fts5IdxMalloc(Fts5Index *p, sqlite3_int64 nByte)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/nss/lib/sqlite/sqlite3.c:210374,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:210375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pLeft
    - pRight
    - nRight
    argTypes:
    - Fts5Buffer*
    - u8*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210377
      start: 210370
    functionDepth: 0
    functionLinenumber: 210370
    functionLinenumberEnd: 210377
    functionName: fts5BufferCompareBlob
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcmp
    - MIN
    linkageType: ''
    returnType: int
    signature: "int fts5BufferCompareBlob(\n  Fts5Buffer *pLeft,              /* Left
      hand side of comparison */\n  const u8 *pRight, int nRight    /* Right hand
      side of comparison */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/nss/lib/sqlite/sqlite3.c:210390,1
    - Dst: fts5Memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:210391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pLeft
    - pRight
    argTypes:
    - Fts5Buffer*
    - Fts5Buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210393
      start: 210389
    functionDepth: 1
    functionLinenumber: 210389
    functionLinenumberEnd: 210393
    functionName: fts5BufferCompare
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5Memcmp
    - MIN
    linkageType: ''
    returnType: int
    signature: int fts5BufferCompare(Fts5Buffer *pLeft, Fts5Buffer *pRight)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts5GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:210397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pLeaf
    argTypes:
    - Fts5Data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210399
      start: 210395
    functionDepth: 1
    functionLinenumber: 210395
    functionLinenumberEnd: 210399
    functionName: fts5LeafFirstTermOff
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5GetVarint32
    linkageType: ''
    returnType: int
    signature: int fts5LeafFirstTermOff(Fts5Data *pLeaf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_blob_close
      Src: /src/nss/lib/sqlite/sqlite3.c:210408,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - Fts5Index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210410
      start: 210404
    functionDepth: 27
    functionLinenumber: 210404
    functionLinenumberEnd: 210410
    functionName: fts5CloseReader
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_blob_close
    linkageType: ''
    returnType: void
    signature: void fts5CloseReader(Fts5Index *p)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_blob_reopen
      Src: /src/nss/lib/sqlite/sqlite3.c:210429,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:210430,1
    - Dst: fts5CloseReader
      Src: /src/nss/lib/sqlite/sqlite3.c:210433,1
    - Dst: sqlite3_blob_open
      Src: /src/nss/lib/sqlite/sqlite3.c:210442,1
    - Dst: sqlite3_blob_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:210456,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:210458,1
    - Dst: sqlite3_blob_read
      Src: /src/nss/lib/sqlite/sqlite3.c:210467,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:210470,1
    - Dst: fts5GetU16
      Src: /src/nss/lib/sqlite/sqlite3.c:210475,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:210482,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 2
    argNames:
    - p
    - iRowid
    argTypes:
    - Fts5Index*
    - i64
    assertStmts:
    - condition: ( p->pReader==0 )
      pos:
        line_end: 210429
        line_start: 210429
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pRet==0)==(p->rc!=SQLITE_OK) )
      pos:
        line_end: 210481
        line_start: 210481
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 210484
      start: 210418
    functionDepth: 29
    functionLinenumber: 210418
    functionLinenumberEnd: 210484
    functionName: fts5DataRead
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_blob_read
    - fts5CloseReader
    - sqlite3_malloc64
    - sqlite3_blob_reopen
    - sqlite3_blob_bytes
    - assert
    - sqlite3_blob_open
    - fts5GetU16
    - sqlite3_free
    linkageType: ''
    returnType: Fts5Data
    signature: Fts5Data *fts5DataRead(Fts5Index *p, i64 iRowid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:210491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pData
    argTypes:
    - Fts5Data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210492
      start: 210490
    functionDepth: 3
    functionLinenumber: 210490
    functionLinenumberEnd: 210492
    functionName: fts5DataRelease
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void fts5DataRelease(Fts5Data *pData)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fts5DataRead
      Src: /src/nss/lib/sqlite/sqlite3.c:210495,1
    - Dst: fts5DataRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:210499,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - p
    - iRowid
    argTypes:
    - Fts5Index*
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210504
      start: 210494
    functionDepth: 30
    functionLinenumber: 210494
    functionLinenumberEnd: 210504
    functionName: fts5LeafRead
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5DataRelease
    - fts5DataRead
    linkageType: ''
    returnType: Fts5Data
    signature: Fts5Data *fts5LeafRead(Fts5Index *p, i64 iRowid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_prepare_v3
      Src: /src/nss/lib/sqlite/sqlite3.c:210513,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:210520,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - p
    - ppStmt
    - zSql
    argTypes:
    - Fts5Index*
    - sqlite3_stmt**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210522
      start: 210506
    functionDepth: 28
    functionLinenumber: 210506
    functionLinenumberEnd: 210522
    functionName: fts5IndexPrepareStmt
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_prepare_v3
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int fts5IndexPrepareStmt(\n  Fts5Index *p,\n  sqlite3_stmt **ppStmt,\n
      \ char *zSql\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fts5IndexPrepareStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:210533,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:210533,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:210540,1
    - Dst: sqlite3_bind_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:210541,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:210542,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:210543,1
    - Dst: sqlite3_bind_null
      Src: /src/nss/lib/sqlite/sqlite3.c:210544,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - p
    - iRowid
    - pData
    - nData
    argTypes:
    - Fts5Index*
    - i64
    - u8*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210545
      start: 210528
    functionDepth: 29
    functionLinenumber: 210528
    functionLinenumberEnd: 210545
    functionName: fts5DataWrite
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_bind_null
    - sqlite3_step
    - sqlite3_reset
    - sqlite3_bind_blob
    - sqlite3_mprintf
    - fts5IndexPrepareStmt
    - sqlite3_bind_int64
    linkageType: ''
    returnType: void
    signature: void fts5DataWrite(Fts5Index *p, i64 iRowid, const u8 *pData, int nData)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:210557,1
    - Dst: fts5IndexPrepareStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:210561,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:210564,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:210565,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:210566,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:210567,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - p
    - iFirst
    - iLast
    argTypes:
    - Fts5Index*
    - i64
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210568
      start: 210552
    functionDepth: 29
    functionLinenumber: 210552
    functionLinenumberEnd: 210568
    functionName: fts5DataDelete
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_step
    - sqlite3_reset
    - sqlite3_mprintf
    - fts5IndexPrepareStmt
    - sqlite3_bind_int64
    linkageType: ''
    returnType: void
    signature: void fts5DataDelete(Fts5Index *p, i64 iFirst, i64 iLast)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FTS5_SEGMENT_ROWID
      Src: /src/nss/lib/sqlite/sqlite3.c:210574,1
    - Dst: FTS5_SEGMENT_ROWID
      Src: /src/nss/lib/sqlite/sqlite3.c:210575,1
    - Dst: fts5DataDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:210576,1
    - Dst: fts5IndexPrepareStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:210579,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:210579,1
    - Dst: sqlite3_bind_int
      Src: /src/nss/lib/sqlite/sqlite3.c:210585,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:210586,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:210587,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - p
    - iSegid
    argTypes:
    - Fts5Index*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210589
      start: 210573
    functionDepth: 30
    functionLinenumber: 210573
    functionLinenumberEnd: 210589
    functionName: fts5DataRemoveSegment
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_bind_int
    - FTS5_SEGMENT_ROWID
    - sqlite3_step
    - sqlite3_reset
    - sqlite3_mprintf
    - fts5IndexPrepareStmt
    - fts5DataDelete
    linkageType: ''
    returnType: void
    signature: void fts5DataRemoveSegment(Fts5Index *p, int iSegid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:210598,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:210600,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:210602,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - pStruct
    argTypes:
    - Fts5Structure*
    assertStmts:
    - condition: ( pStruct->nRef==0 )
      pos:
        line_end: 210597
        line_start: 210597
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 210604
      start: 210595
    functionDepth: 3
    functionLinenumber: 210595
    functionLinenumberEnd: 210604
    functionName: fts5StructureRelease
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void fts5StructureRelease(Fts5Structure *pStruct)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pStruct
    argTypes:
    - Fts5Structure*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210608
      start: 210606
    functionDepth: 0
    functionLinenumber: 210606
    functionLinenumberEnd: 210608
    functionName: fts5StructureRef
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fts5StructureRef(Fts5Structure *pStruct)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5Get32
      Src: /src/nss/lib/sqlite/sqlite3.c:210637,1
    - Dst: fts5GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:210642,1
    - Dst: fts5GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:210643,1
    - Dst: sqlite3Fts5MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:210653,1
    - Dst: sqlite3Fts5GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:210659,1
    - Dst: fts5GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:210669,1
    - Dst: fts5GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:210670,1
    - Dst: sqlite3Fts5MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:210672,1
    - Dst: fts5GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:210686,1
    - Dst: fts5GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:210687,1
    - Dst: fts5GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:210688,1
    - Dst: fts5StructureRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:210701,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 57
    argCount: 4
    argNames:
    - pData
    - nData
    - piCookie
    - ppOut
    argTypes:
    - u8*
    - int
    - int*
    - Fts5Structure**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210708
      start: 210622
    functionDepth: 7
    functionLinenumber: 210622
    functionLinenumberEnd: 210708
    functionName: fts5StructureDecode
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5StructureRelease
    - sqlite3Fts5MallocZero
    - sqlite3Fts5Get32
    - fts5GetVarint32
    - sqlite3Fts5GetVarint
    linkageType: ''
    returnType: int
    signature: "int fts5StructureDecode(\n  const u8 *pData,                /* Buffer
      containing serialized structure */\n  int nData,                      /* Size
      of buffer pData in bytes */\n  int *piCookie,                  /* Configuration
      cookie value */\n  Fts5Structure **ppOut           /* OUT: Deserialized object
      */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_realloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:210722,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:210724,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - pRc
    - ppStruct
    argTypes:
    - int*
    - Fts5Structure**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210731
      start: 210713
    functionDepth: 7
    functionLinenumber: 210713
    functionLinenumberEnd: 210731
    functionName: fts5StructureAddLevel
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3_realloc64
    linkageType: ''
    returnType: void
    signature: void fts5StructureAddLevel(int *pRc, Fts5Structure **ppStruct)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_realloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:210750,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:210753,1
    - Dst: memmove
      Src: /src/nss/lib/sqlite/sqlite3.c:210756,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:210757,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 5
    argNames:
    - pRc
    - pStruct
    - iLvl
    - nExtra
    - bInsert
    argTypes:
    - int*
    - Fts5Structure*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210764
      start: 210737
    functionDepth: 7
    functionLinenumber: 210737
    functionLinenumberEnd: 210764
    functionName: fts5StructureExtendLevel
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - memmove
    - sqlite3_realloc64
    linkageType: ''
    returnType: void
    signature: "void fts5StructureExtendLevel(\n  int *pRc, \n  Fts5Structure *pStruct,
      \n  int iLvl, \n  int nExtra, \n  int bInsert\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fts5DataRead
      Src: /src/nss/lib/sqlite/sqlite3.c:210772,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:210775,1
    - Dst: fts5StructureDecode
      Src: /src/nss/lib/sqlite/sqlite3.c:210776,1
    - Dst: sqlite3Fts5ConfigLoad
      Src: /src/nss/lib/sqlite/sqlite3.c:210778,1
    - Dst: fts5DataRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:210780,1
    - Dst: fts5StructureRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:210782,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - p
    argTypes:
    - Fts5Index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210788
      start: 210766
    functionDepth: 30
    functionLinenumber: 210766
    functionLinenumberEnd: 210788
    functionName: fts5StructureReadUncached
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5StructureRelease
    - fts5DataRead
    - memset
    - fts5StructureDecode
    - fts5DataRelease
    - sqlite3Fts5ConfigLoad
    linkageType: ''
    returnType: Fts5Structure
    signature: Fts5Structure *fts5StructureReadUncached(Fts5Index *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fts5IndexPrepareStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:210795,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:210796,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:210801,1
    - Dst: sqlite3_column_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:210802,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:210804,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - p
    argTypes:
    - Fts5Index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210808
      start: 210790
    functionDepth: 29
    functionLinenumber: 210790
    functionLinenumberEnd: 210808
    functionName: fts5IndexDataVersion
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_step
    - sqlite3_reset
    - sqlite3_column_int64
    - sqlite3_mprintf
    - fts5IndexPrepareStmt
    linkageType: ''
    returnType: i64
    signature: i64 fts5IndexDataVersion(Fts5Index *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fts5IndexDataVersion
      Src: /src/nss/lib/sqlite/sqlite3.c:210824,1
    - Dst: fts5StructureReadUncached
      Src: /src/nss/lib/sqlite/sqlite3.c:210826,1
    - Dst: fts5StructureReadUncached
      Src: /src/nss/lib/sqlite/sqlite3.c:210832,1
    - Dst: assert_nc
      Src: /src/nss/lib/sqlite/sqlite3.c:210835,1
    - Dst: assert_nc
      Src: /src/nss/lib/sqlite/sqlite3.c:210836,1
    - Dst: assert_nc
      Src: /src/nss/lib/sqlite/sqlite3.c:210838,1
    - Dst: assert_nc
      Src: /src/nss/lib/sqlite/sqlite3.c:210839,1
    - Dst: assert_nc
      Src: /src/nss/lib/sqlite/sqlite3.c:210843,1
    - Dst: assert_nc
      Src: /src/nss/lib/sqlite/sqlite3.c:210844,1
    - Dst: assert_nc
      Src: /src/nss/lib/sqlite/sqlite3.c:210845,1
    - Dst: fts5StructureRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:210848,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:210854,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:210855,1
    - Dst: fts5StructureRef
      Src: /src/nss/lib/sqlite/sqlite3.c:210856,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 1
    argNames:
    - p
    argTypes:
    - Fts5Index*
    assertStmts:
    - condition: ( p->pStruct!=0 )
      pos:
        line_end: 210854
        line_start: 210854
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->iStructVersion!=0 )
      pos:
        line_end: 210853
        line_start: 210853
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 210858
      start: 210821
    functionDepth: 31
    functionLinenumber: 210821
    functionLinenumberEnd: 210858
    functionName: fts5StructureRead
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5StructureRelease
    - assert
    - fts5IndexDataVersion
    - fts5StructureRef
    - assert_nc
    - fts5StructureReadUncached
    linkageType: ''
    returnType: Fts5Structure
    signature: Fts5Structure *fts5StructureRead(Fts5Index *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fts5StructureRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:210862,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - Fts5Index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210865
      start: 210860
    functionDepth: 4
    functionLinenumber: 210860
    functionLinenumberEnd: 210865
    functionName: fts5StructureInvalidate
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5StructureRelease
    linkageType: ''
    returnType: void
    signature: void fts5StructureInvalidate(Fts5Index *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - pStruct
    argTypes:
    - Fts5Structure*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210882
      start: 210872
    functionDepth: 0
    functionLinenumber: 210872
    functionLinenumberEnd: 210882
    functionName: fts5StructureCountSegments
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fts5StructureCountSegments(Fts5Structure *pStruct)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pBuf
    - ','
    - pBlob
    - ','
    - nBlob
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210890
      start: 210885
    functionDepth: 0
    functionLinenumber: 210885
    functionLinenumberEnd: 210890
    functionName: fts5BufferSafeAppendBlob
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fts5BufferSafeAppendBlob(pBuf, pBlob, nBlob)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pBuf
    - ','
    - iVal
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210895
      start: 210891
    functionDepth: 0
    functionLinenumber: 210891
    functionLinenumberEnd: 210895
    functionName: fts5BufferSafeAppendVarint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fts5BufferSafeAppendVarint(pBuf, iVal)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:210909,1
    - Dst: fts5StructureCountSegments
      Src: /src/nss/lib/sqlite/sqlite3.c:210909,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:210910,1
    - Dst: sqlite3Fts5BufferSize
      Src: /src/nss/lib/sqlite/sqlite3.c:210916,1
    - Dst: sqlite3Fts5Put32
      Src: /src/nss/lib/sqlite/sqlite3.c:210917,1
    - Dst: fts5BufferSafeAppendVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:210919,1
    - Dst: fts5BufferSafeAppendVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:210920,1
    - Dst: fts5BufferSafeAppendVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:210921,1
    - Dst: fts5BufferAppendVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:210927,1
    - Dst: fts5BufferAppendVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:210928,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:210929,1
    - Dst: fts5BufferAppendVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:210932,1
    - Dst: fts5BufferAppendVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:210933,1
    - Dst: fts5BufferAppendVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:210934,1
    - Dst: fts5DataWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:210938,1
    - Dst: fts5BufferFree
      Src: /src/nss/lib/sqlite/sqlite3.c:210939,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 2
    argNames:
    - p
    - pStruct
    argTypes:
    - Fts5Index*
    - Fts5Structure*
    assertStmts:
    - condition: ( pStruct->nSegment==fts5StructureCountSegments(pStruct) )
      pos:
        line_end: 210908
        line_start: 210908
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pLvl->nMerge<=pLvl->nSeg )
      pos:
        line_end: 210928
        line_start: 210928
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 210941
      start: 210903
    functionDepth: 30
    functionLinenumber: 210903
    functionLinenumberEnd: 210941
    functionName: fts5StructureWrite
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5BufferAppendVarint
    - fts5StructureCountSegments
    - sqlite3Fts5BufferSize
    - assert
    - memset
    - sqlite3Fts5Put32
    - fts5BufferSafeAppendVarint
    - fts5DataWrite
    - fts5BufferFree
    linkageType: ''
    returnType: void
    signature: void fts5StructureWrite(Fts5Index *p, Fts5Structure *pStruct)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:210948,1
    - Dst: fts5DebugStructure
      Src: /src/nss/lib/sqlite/sqlite3.c:210949,1
    - Dst: fprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:210950,1
    - Dst: fflush
      Src: /src/nss/lib/sqlite/sqlite3.c:210951,1
    - Dst: fts5BufferFree
      Src: /src/nss/lib/sqlite/sqlite3.c:210952,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - zCaption
    - pStruct
    argTypes:
    - char*
    - Fts5Structure*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210953
      start: 210945
    functionDepth: 1
    functionLinenumber: 210945
    functionLinenumberEnd: 210953
    functionName: fts5PrintStructure
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - fprintf
    - fts5DebugStructure
    - fts5BufferFree
    - fflush
    linkageType: ''
    returnType: void
    signature: void fts5PrintStructure(const char *zCaption, Fts5Structure *pStruct)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pSeg
    argTypes:
    - Fts5StructureSegment*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210960
      start: 210958
    functionDepth: 0
    functionLinenumber: 210958
    functionLinenumberEnd: 210960
    functionName: fts5SegmentSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fts5SegmentSize(Fts5StructureSegment *pSeg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fts5SegmentSize
      Src: /src/nss/lib/sqlite/sqlite3.c:210981,1
    - Dst: fts5StructureExtendLevel
      Src: /src/nss/lib/sqlite/sqlite3.c:210983,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:210985,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - p
    - iPromote
    - szPromote
    - pStruct
    argTypes:
    - Fts5Index*
    - int
    - int
    - Fts5Structure*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210991
      start: 210967
    functionDepth: 8
    functionLinenumber: 210967
    functionLinenumberEnd: 210991
    functionName: fts5StructurePromoteTo
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5StructureExtendLevel
    - memcpy
    - fts5SegmentSize
    linkageType: ''
    returnType: void
    signature: "void fts5StructurePromoteTo(\n  Fts5Index *p,\n  int iPromote,\n  int
      szPromote,\n  Fts5Structure *pStruct\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:211033,1
    - Dst: fts5StructurePromoteTo
      Src: /src/nss/lib/sqlite/sqlite3.c:211052,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - p
    - iLvl
    - pStruct
    argTypes:
    - Fts5Index*
    - int
    - Fts5Structure*
    assertStmts:
    - condition: ( pTst->nMerge==0 )
      pos:
        line_end: 211032
        line_start: 211032
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 211054
      start: 211010
    functionDepth: 9
    functionLinenumber: 211010
    functionLinenumberEnd: 211054
    functionName: fts5StructurePromote
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fts5StructurePromoteTo
    linkageType: ''
    returnType: void
    signature: "void fts5StructurePromote(\n  Fts5Index *p,                   /* FTS5
      backend object */\n  int iLvl,                       /* Index level just updated
      */\n  Fts5Structure *pStruct          /* Index structure */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:211065,1
    - Dst: fts5GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:211067,1
    - Dst: fts5GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:211068,1
    - Dst: fts5GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:211079,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - pLvl
    argTypes:
    - Fts5DlidxLvl*
    assertStmts:
    - condition: ( pLvl->bEof==0 )
      pos:
        line_end: 211064
        line_start: 211064
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 211088
      start: 211061
    functionDepth: 1
    functionLinenumber: 211061
    functionLinenumberEnd: 211088
    functionName: fts5DlidxLvlNext
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fts5GetVarint32
    - fts5GetVarint
    linkageType: ''
    returnType: int
    signature: int fts5DlidxLvlNext(Fts5DlidxLvl *pLvl)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:211096,1
    - Dst: fts5DlidxLvlNext
      Src: /src/nss/lib/sqlite/sqlite3.c:211097,1
    - Dst: fts5DlidxIterNextR
      Src: /src/nss/lib/sqlite/sqlite3.c:211099,1
    - Dst: fts5DataRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:211101,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:211102,1
    - Dst: fts5DataRead
      Src: /src/nss/lib/sqlite/sqlite3.c:211103,1
    - Dst: FTS5_DLIDX_ROWID
      Src: /src/nss/lib/sqlite/sqlite3.c:211104,1
    - Dst: fts5DlidxLvlNext
      Src: /src/nss/lib/sqlite/sqlite3.c:211106,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - p
    - pIter
    - iLvl
    argTypes:
    - Fts5Index*
    - Fts5DlidxIter*
    - int
    assertStmts:
    - condition: ( iLvl<pIter->nLvl )
      pos:
        line_end: 211095
        line_start: 211095
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 211112
      start: 211093
    functionDepth: 30
    functionLinenumber: 211093
    functionLinenumberEnd: 211112
    functionName: fts5DlidxIterNextR
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - fts5DataRead
    - fts5DlidxIterNextR
    - assert
    - fts5DataRelease
    - memset
    - FTS5_DLIDX_ROWID
    - fts5DlidxLvlNext
    linkageType: ''
    returnType: int
    signature: int fts5DlidxIterNextR(Fts5Index *p, Fts5DlidxIter *pIter, int iLvl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts5DlidxIterNextR
      Src: /src/nss/lib/sqlite/sqlite3.c:211114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - pIter
    argTypes:
    - Fts5Index*
    - Fts5DlidxIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211115
      start: 211113
    functionDepth: 31
    functionLinenumber: 211113
    functionLinenumberEnd: 211115
    functionName: fts5DlidxIterNext
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5DlidxIterNextR
    linkageType: ''
    returnType: int
    signature: int fts5DlidxIterNext(Fts5Index *p, Fts5DlidxIter *pIter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts5DlidxLvlNext
      Src: /src/nss/lib/sqlite/sqlite3.c:211131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pIter
    argTypes:
    - Fts5DlidxIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211134
      start: 211128
    functionDepth: 2
    functionLinenumber: 211128
    functionLinenumberEnd: 211134
    functionName: fts5DlidxIterFirst
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5DlidxLvlNext
    linkageType: ''
    returnType: int
    signature: int fts5DlidxIterFirst(Fts5DlidxIter *pIter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - p
    - pIter
    argTypes:
    - Fts5Index*
    - Fts5DlidxIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211139
      start: 211137
    functionDepth: 0
    functionLinenumber: 211137
    functionLinenumberEnd: 211139
    functionName: fts5DlidxIterEof
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fts5DlidxIterEof(Fts5Index *p, Fts5DlidxIter *pIter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fts5DlidxLvlNext
      Src: /src/nss/lib/sqlite/sqlite3.c:211147,1
    - Dst: fts5DataRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:211152,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:211153,1
    - Dst: fts5DataRead
      Src: /src/nss/lib/sqlite/sqlite3.c:211154,1
    - Dst: FTS5_DLIDX_ROWID
      Src: /src/nss/lib/sqlite/sqlite3.c:211155,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - p
    - pIter
    argTypes:
    - Fts5Index*
    - Fts5DlidxIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211159
      start: 211141
    functionDepth: 30
    functionLinenumber: 211141
    functionLinenumberEnd: 211159
    functionName: fts5DlidxIterLast
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5DataRead
    - fts5DataRelease
    - memset
    - FTS5_DLIDX_ROWID
    - fts5DlidxLvlNext
    linkageType: ''
    returnType: void
    signature: void fts5DlidxIterLast(Fts5Index *p, Fts5DlidxIter *pIter)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:211167,1
    - Dst: fts5GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:211186,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 1
    argNames:
    - pLvl
    argTypes:
    - Fts5DlidxLvl*
    assertStmts:
    - condition: ( pLvl->bEof==0 )
      pos:
        line_end: 211166
        line_start: 211166
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 211211
      start: 211164
    functionDepth: 0
    functionLinenumber: 211164
    functionLinenumberEnd: 211211
    functionName: fts5DlidxLvlPrev
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fts5GetVarint
    linkageType: ''
    returnType: int
    signature: int fts5DlidxLvlPrev(Fts5DlidxLvl *pLvl)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:211216,1
    - Dst: fts5DlidxLvlPrev
      Src: /src/nss/lib/sqlite/sqlite3.c:211217,1
    - Dst: fts5DlidxIterPrevR
      Src: /src/nss/lib/sqlite/sqlite3.c:211219,1
    - Dst: fts5DataRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:211221,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:211222,1
    - Dst: fts5DataRead
      Src: /src/nss/lib/sqlite/sqlite3.c:211223,1
    - Dst: FTS5_DLIDX_ROWID
      Src: /src/nss/lib/sqlite/sqlite3.c:211224,1
    - Dst: fts5DlidxLvlNext
      Src: /src/nss/lib/sqlite/sqlite3.c:211227,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - p
    - pIter
    - iLvl
    argTypes:
    - Fts5Index*
    - Fts5DlidxIter*
    - int
    assertStmts:
    - condition: ( iLvl<pIter->nLvl )
      pos:
        line_end: 211215
        line_start: 211215
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 211235
      start: 211213
    functionDepth: 30
    functionLinenumber: 211213
    functionLinenumberEnd: 211235
    functionName: fts5DlidxIterPrevR
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - fts5DataRead
    - assert
    - fts5DataRelease
    - memset
    - fts5DlidxLvlPrev
    - FTS5_DLIDX_ROWID
    - fts5DlidxLvlNext
    - fts5DlidxIterPrevR
    linkageType: ''
    returnType: int
    signature: int fts5DlidxIterPrevR(Fts5Index *p, Fts5DlidxIter *pIter, int iLvl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts5DlidxIterPrevR
      Src: /src/nss/lib/sqlite/sqlite3.c:211237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - pIter
    argTypes:
    - Fts5Index*
    - Fts5DlidxIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211238
      start: 211236
    functionDepth: 31
    functionLinenumber: 211236
    functionLinenumberEnd: 211238
    functionName: fts5DlidxIterPrev
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5DlidxIterPrevR
    linkageType: ''
    returnType: int
    signature: int fts5DlidxIterPrev(Fts5Index *p, Fts5DlidxIter *pIter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fts5DataRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:211247,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:211249,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - pIter
    argTypes:
    - Fts5DlidxIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211251
      start: 211243
    functionDepth: 4
    functionLinenumber: 211243
    functionLinenumberEnd: 211251
    functionName: fts5DlidxIterFree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5DataRelease
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void fts5DlidxIterFree(Fts5DlidxIter *pIter)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_realloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:211267,1
    - Dst: FTS5_DLIDX_ROWID
      Src: /src/nss/lib/sqlite/sqlite3.c:211271,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:211274,1
    - Dst: fts5DataRead
      Src: /src/nss/lib/sqlite/sqlite3.c:211275,1
    - Dst: fts5DlidxIterFirst
      Src: /src/nss/lib/sqlite/sqlite3.c:211286,1
    - Dst: fts5DlidxIterLast
      Src: /src/nss/lib/sqlite/sqlite3.c:211288,1
    - Dst: fts5DlidxIterFree
      Src: /src/nss/lib/sqlite/sqlite3.c:211293,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 4
    argNames:
    - p
    - bRev
    - iSegid
    - iLeafPg
    argTypes:
    - Fts5Index*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211298
      start: 211253
    functionDepth: 31
    functionLinenumber: 211253
    functionLinenumberEnd: 211298
    functionName: fts5DlidxIterInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5DataRead
    - memset
    - fts5DlidxIterFree
    - FTS5_DLIDX_ROWID
    - fts5DlidxIterFirst
    - sqlite3_realloc64
    - fts5DlidxIterLast
    linkageType: ''
    returnType: Fts5DlidxIter
    signature: "Fts5DlidxIter *fts5DlidxIterInit(\n  Fts5Index *p,                   /*
      Fts5 Backend to iterate within */\n  int bRev,                       /* True
      for ORDER BY ASC */\n  int iSegid,                     /* Segment id */\n  int
      iLeafPg                     /* Leaf page number to load dlidx for */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pIter
    argTypes:
    - Fts5DlidxIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211302
      start: 211300
    functionDepth: 0
    functionLinenumber: 211300
    functionLinenumberEnd: 211302
    functionName: fts5DlidxIterRowid
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: i64
    signature: i64 fts5DlidxIterRowid(Fts5DlidxIter *pIter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pIter
    argTypes:
    - Fts5DlidxIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211305
      start: 211303
    functionDepth: 0
    functionLinenumber: 211303
    functionLinenumberEnd: 211305
    functionName: fts5DlidxIterPgno
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fts5DlidxIterPgno(Fts5DlidxIter *pIter)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fts5DataRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:211316,1
    - Dst: fts5LeafRead
      Src: /src/nss/lib/sqlite/sqlite3.c:211322,1
    - Dst: FTS5_SEGMENT_ROWID
      Src: /src/nss/lib/sqlite/sqlite3.c:211323,1
    - Dst: fts5LeafIsTermless
      Src: /src/nss/lib/sqlite/sqlite3.c:211332,1
    - Dst: fts5GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:211335,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - p
    - pIter
    argTypes:
    - Fts5Index*
    - Fts5SegIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211340
      start: 211310
    functionDepth: 31
    functionLinenumber: 211310
    functionLinenumberEnd: 211340
    functionName: fts5SegIterNextPage
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5LeafIsTermless
    - FTS5_SEGMENT_ROWID
    - fts5LeafRead
    - fts5DataRelease
    - fts5GetVarint32
    linkageType: ''
    returnType: void
    signature: "void fts5SegIterNextPage(\n  Fts5Index *p,                   /* FTS5
      backend object */\n  Fts5SegIter *pIter              /* Iterator to advance
      to next page */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts5FastGetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:211351,1
    - Dst: assert_nc
      Src: /src/nss/lib/sqlite/sqlite3.c:211352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - p
    - pnSz
    - pbDel
    argTypes:
    - u8*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211356
      start: 211348
    functionDepth: 1
    functionLinenumber: 211348
    functionLinenumberEnd: 211356
    functionName: fts5GetPoslistSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5FastGetVarint32
    - assert_nc
    linkageType: ''
    returnType: int
    signature: int fts5GetPoslistSize(const u8 *p, int *pnSz, int *pbDel)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_SZLEAF_OK
      Src: /src/nss/lib/sqlite/sqlite3.c:211372,1
    - Dst: MIN
      Src: /src/nss/lib/sqlite/sqlite3.c:211374,1
    - Dst: fts5FastGetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:211389,1
    - Dst: assert_nc
      Src: /src/nss/lib/sqlite/sqlite3.c:211392,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - p
    - pIter
    argTypes:
    - Fts5Index*
    - Fts5SegIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211396
      start: 211369
    functionDepth: 1
    functionLinenumber: 211369
    functionLinenumberEnd: 211396
    functionName: fts5SegIterLoadNPos
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ASSERT_SZLEAF_OK
    - fts5FastGetVarint32
    - MIN
    - assert_nc
    linkageType: ''
    returnType: void
    signature: void fts5SegIterLoadNPos(Fts5Index *p, Fts5SegIter *pIter)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_SZLEAF_OK
      Src: /src/nss/lib/sqlite/sqlite3.c:211402,1
    - Dst: fts5SegIterNextPage
      Src: /src/nss/lib/sqlite/sqlite3.c:211404,1
    - Dst: sqlite3Fts5GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:211412,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - p
    - pIter
    argTypes:
    - Fts5Index*
    - Fts5SegIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211414
      start: 211398
    functionDepth: 32
    functionLinenumber: 211398
    functionLinenumberEnd: 211414
    functionName: fts5SegIterLoadRowid
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - ASSERT_SZLEAF_OK
    - sqlite3Fts5GetVarint
    - fts5SegIterNextPage
    linkageType: ''
    returnType: void
    signature: void fts5SegIterLoadRowid(Fts5Index *p, Fts5SegIter *pIter)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fts5GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:211436,1
    - Dst: fts5BufferAppendBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:211442,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:211443,1
    - Dst: fts5GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:211453,1
    - Dst: fts5SegIterLoadRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:211457,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - p
    - pIter
    - nKeep
    argTypes:
    - Fts5Index*
    - Fts5SegIter*
    - int
    assertStmts:
    - condition: ( pIter->term.n<=pIter->term.nSpace )
      pos:
        line_end: 211442
        line_start: 211442
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 211458
      start: 211431
    functionDepth: 33
    functionLinenumber: 211431
    functionLinenumberEnd: 211458
    functionName: fts5SegIterLoadTerm
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fts5GetVarint32
    - fts5BufferAppendBlob
    - fts5SegIterLoadRowid
    linkageType: ''
    returnType: void
    signature: void fts5SegIterLoadTerm(Fts5Index *p, Fts5SegIter *pIter, int nKeep)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - p
    - pIter
    argTypes:
    - Fts5Index*
    - Fts5SegIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211472
      start: 211464
    functionDepth: 0
    functionLinenumber: 211464
    functionLinenumberEnd: 211472
    functionName: fts5SegIterSetNext
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fts5SegIterSetNext(Fts5Index *p, Fts5SegIter *pIter)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:211493,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:211498,1
    - Dst: fts5SegIterSetNext
      Src: /src/nss/lib/sqlite/sqlite3.c:211499,1
    - Dst: fts5SegIterNextPage
      Src: /src/nss/lib/sqlite/sqlite3.c:211502,1
    - Dst: assert_nc
      Src: /src/nss/lib/sqlite/sqlite3.c:211507,1
    - Dst: assert_nc
      Src: /src/nss/lib/sqlite/sqlite3.c:211508,1
    - Dst: fts5LeafFirstTermOff
      Src: /src/nss/lib/sqlite/sqlite3.c:211508,1
    - Dst: fts5SegIterLoadTerm
      Src: /src/nss/lib/sqlite/sqlite3.c:211510,1
    - Dst: fts5SegIterLoadNPos
      Src: /src/nss/lib/sqlite/sqlite3.c:211511,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - p
    - pSeg
    - pIter
    argTypes:
    - Fts5Index*
    - Fts5StructureSegment*
    - Fts5SegIter*
    assertStmts:
    - condition: ( pIter->pLeaf==0 )
      pos:
        line_end: 211492
        line_start: 211492
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 211513
      start: 211482
    functionDepth: 34
    functionLinenumber: 211482
    functionLinenumberEnd: 211513
    functionName: fts5SegIterInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5SegIterSetNext
    - fts5LeafFirstTermOff
    - fts5SegIterNextPage
    - fts5SegIterLoadNPos
    - assert
    - memset
    - fts5SegIterLoadTerm
    - assert_nc
    linkageType: ''
    returnType: void
    signature: "void fts5SegIterInit(\n  Fts5Index *p,                   /* FTS index
      object */\n  Fts5StructureSegment *pSeg,     /* Description of segment */\n
      \ Fts5SegIter *pIter              /* Object to populate */\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_SZLEAF_OK
      Src: /src/nss/lib/sqlite/sqlite3.c:211541,1
    - Dst: fts5GetPoslistSize
      Src: /src/nss/lib/sqlite/sqlite3.c:211554,1
    - Dst: fts5GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:211558,1
    - Dst: sqlite3_realloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:211564,1
    - Dst: fts5SegIterLoadNPos
      Src: /src/nss/lib/sqlite/sqlite3.c:211577,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 2
    argNames:
    - p
    - pIter
    argTypes:
    - Fts5Index*
    - Fts5SegIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211578
      start: 211530
    functionDepth: 7
    functionLinenumber: 211530
    functionLinenumberEnd: 211578
    functionName: fts5SegIterReverseInitPage
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5GetPoslistSize
    - fts5SegIterLoadNPos
    - fts5GetVarint
    - ASSERT_SZLEAF_OK
    - sqlite3_realloc64
    linkageType: ''
    returnType: void
    signature: void fts5SegIterReverseInitPage(Fts5Index *p, Fts5SegIter *pIter)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:211584,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:211585,1
    - Dst: fts5DataRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:211587,1
    - Dst: fts5DataRead
      Src: /src/nss/lib/sqlite/sqlite3.c:211592,1
    - Dst: FTS5_SEGMENT_ROWID
      Src: /src/nss/lib/sqlite/sqlite3.c:211592,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:211600,1
    - Dst: fts5LeafFirstRowidOff
      Src: /src/nss/lib/sqlite/sqlite3.c:211607,1
    - Dst: fts5GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:211616,1
    - Dst: fts5DataRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:211619,1
    - Dst: fts5SegIterReverseInitPage
      Src: /src/nss/lib/sqlite/sqlite3.c:211626,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 2
    argNames:
    - p
    - pIter
    argTypes:
    - Fts5Index*
    - Fts5SegIter*
    assertStmts:
    - condition: ( pIter->flags & FTS5_SEGITER_REVERSE )
      pos:
        line_end: 211583
        line_start: 211583
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIter->flags & FTS5_SEGITER_ONETERM )
      pos:
        line_end: 211584
        line_start: 211584
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIter->pLeaf==0 )
      pos:
        line_end: 211599
        line_start: 211599
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 211628
      start: 211583
    functionDepth: 30
    functionLinenumber: 211583
    functionLinenumberEnd: 211628
    functionName: fts5SegIterReverseNewPage
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - FTS5_SEGMENT_ROWID
    - fts5DataRead
    - assert
    - fts5DataRelease
    - fts5GetVarint
    - fts5SegIterReverseInitPage
    - fts5LeafFirstRowidOff
    linkageType: ''
    returnType: void
    signature: void fts5SegIterReverseNewPage(Fts5Index *p, Fts5SegIter *pIter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - p
    - pIter
    argTypes:
    - Fts5Index*
    - Fts5Iter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211638
      start: 211635
    functionDepth: 0
    functionLinenumber: 211635
    functionLinenumberEnd: 211638
    functionName: fts5MultiIterIsEmpty
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fts5MultiIterIsEmpty(Fts5Index *p, Fts5Iter *pIter)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:211650,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:211651,1
    - Dst: UNUSED_PARAM
      Src: /src/nss/lib/sqlite/sqlite3.c:211652,1
    - Dst: fts5SegIterLoadNPos
      Src: /src/nss/lib/sqlite/sqlite3.c:211661,1
    - Dst: fts5GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:211666,1
    - Dst: fts5SegIterReverseNewPage
      Src: /src/nss/lib/sqlite/sqlite3.c:211669,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - p
    - pIter
    - pbUnused
    argTypes:
    - Fts5Index*
    - Fts5SegIter*
    - int*
    assertStmts:
    - condition: ( pIter->flags & FTS5_SEGITER_REVERSE )
      pos:
        line_end: 211649
        line_start: 211649
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIter->pNextLeaf==0 )
      pos:
        line_end: 211650
        line_start: 211650
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 211671
      start: 211645
    functionDepth: 31
    functionLinenumber: 211645
    functionLinenumberEnd: 211671
    functionName: fts5SegIterNext_Reverse
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5SegIterLoadNPos
    - UNUSED_PARAM
    - assert
    - fts5GetVarint
    - fts5SegIterReverseNewPage
    linkageType: ''
    returnType: void
    signature: "void fts5SegIterNext_Reverse(\n  Fts5Index *p,                   /*
      FTS5 backend object */\n  Fts5SegIter *pIter,             /* Iterator to advance
      */\n  int *pbUnused                   /* Unused */\n)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:211686,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:211687,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:211688,1
    - Dst: ASSERT_SZLEAF_OK
      Src: /src/nss/lib/sqlite/sqlite3.c:211690,1
    - Dst: fts5SegIterNextPage
      Src: /src/nss/lib/sqlite/sqlite3.c:211695,1
    - Dst: sqlite3Fts5GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:211704,1
    - Dst: fts5LeafFirstTermOff
      Src: /src/nss/lib/sqlite/sqlite3.c:211710,1
    - Dst: fts5GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:211711,1
    - Dst: fts5SegIterLoadTerm
      Src: /src/nss/lib/sqlite/sqlite3.c:211714,1
    - Dst: sqlite3Fts5HashScanNext
      Src: /src/nss/lib/sqlite/sqlite3.c:211719,1
    - Dst: sqlite3Fts5HashScanEntry
      Src: /src/nss/lib/sqlite/sqlite3.c:211720,1
    - Dst: sqlite3Fts5BufferSet
      Src: /src/nss/lib/sqlite/sqlite3.c:211726,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:211726,1
    - Dst: fts5GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:211727,1
    - Dst: fts5SegIterLoadNPos
      Src: /src/nss/lib/sqlite/sqlite3.c:211735,1
    - Dst: fts5DataRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:211739,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 50
    argCount: 3
    argNames:
    - p
    - pIter
    - pbNewTerm
    argTypes:
    - Fts5Index*
    - Fts5SegIter*
    - int*
    assertStmts:
    - condition: ( p->rc==SQLITE_OK )
      pos:
        line_end: 211685
        line_start: 211685
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (pIter->flags & FTS5_SEGITER_REVERSE)==0 )
      pos:
        line_end: 211686
        line_start: 211686
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->pConfig->eDetail==FTS5_DETAIL_NONE )
      pos:
        line_end: 211687
        line_start: 211687
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 211741
      start: 211679
    functionDepth: 34
    functionLinenumber: 211679
    functionLinenumberEnd: 211741
    functionName: fts5SegIterNext_None
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5LeafFirstTermOff
    - sqlite3Fts5BufferSet
    - fts5SegIterNextPage
    - fts5SegIterLoadNPos
    - assert
    - fts5GetVarint32
    - sqlite3Fts5HashScanEntry
    - fts5GetVarint
    - fts5DataRelease
    - ASSERT_SZLEAF_OK
    - fts5SegIterLoadTerm
    - sqlite3Fts5GetVarint
    - sqlite3Fts5HashScanNext
    - strlen
    linkageType: ''
    returnType: void
    signature: "void fts5SegIterNext_None(\n  Fts5Index *p,                   /* FTS5
      backend object */\n  Fts5SegIter *pIter,             /* Iterator to advance
      */\n  int *pbNewTerm                  /* OUT: Set for new term */\n)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:211763,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:211764,1
    - Dst: ASSERT_SZLEAF_OK
      Src: /src/nss/lib/sqlite/sqlite3.c:211770,1
    - Dst: assert_nc
      Src: /src/nss/lib/sqlite/sqlite3.c:211775,1
    - Dst: fts5LeafFirstTermOff
      Src: /src/nss/lib/sqlite/sqlite3.c:211778,1
    - Dst: fts5GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:211779,1
    - Dst: sqlite3Fts5GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:211783,1
    - Dst: assert_nc
      Src: /src/nss/lib/sqlite/sqlite3.c:211785,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:211793,1
    - Dst: sqlite3Fts5HashScanNext
      Src: /src/nss/lib/sqlite/sqlite3.c:211795,1
    - Dst: sqlite3Fts5HashScanEntry
      Src: /src/nss/lib/sqlite/sqlite3.c:211796,1
    - Dst: fts5DataRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:211799,1
    - Dst: sqlite3Fts5BufferSet
      Src: /src/nss/lib/sqlite/sqlite3.c:211806,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:211806,1
    - Dst: fts5GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:211808,1
    - Dst: fts5SegIterNextPage
      Src: /src/nss/lib/sqlite/sqlite3.c:211815,1
    - Dst: ASSERT_SZLEAF_OK
      Src: /src/nss/lib/sqlite/sqlite3.c:211818,1
    - Dst: fts5LeafFirstRowidOff
      Src: /src/nss/lib/sqlite/sqlite3.c:211819,1
    - Dst: sqlite3Fts5GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:211820,1
    - Dst: fts5GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:211824,1
    - Dst: fts5GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:211830,1
    - Dst: assert_nc
      Src: /src/nss/lib/sqlite/sqlite3.c:211837,1
    - Dst: fts5DataRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:211849,1
    - Dst: fts5SegIterLoadTerm
      Src: /src/nss/lib/sqlite/sqlite3.c:211852,1
    - Dst: fts5SegIterLoadNPos
      Src: /src/nss/lib/sqlite/sqlite3.c:211853,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:211865,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:211866,1
    - Dst: fts5FastGetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:211867,1
    - Dst: assert_nc
      Src: /src/nss/lib/sqlite/sqlite3.c:211870,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 87
    argCount: 3
    argNames:
    - p
    - pIter
    - pbNewTerm
    argTypes:
    - Fts5Index*
    - Fts5SegIter*
    - int*
    assertStmts:
    - condition: ( (pIter->flags & FTS5_SEGITER_ONETERM) || pbNewTerm )
      pos:
        line_end: 211792
        line_start: 211792
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->rc==SQLITE_OK )
      pos:
        line_end: 211864
        line_start: 211864
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIter->iLeafOffset<=pIter->pLeaf->nn )
      pos:
        line_end: 211865
        line_start: 211865
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pbNewTerm==0 || *pbNewTerm==0 )
      pos:
        line_end: 211762
        line_start: 211762
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->pConfig->eDetail!=FTS5_DETAIL_NONE )
      pos:
        line_end: 211763
        line_start: 211763
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 211873
      start: 211751
    functionDepth: 34
    functionLinenumber: 211751
    functionLinenumberEnd: 211873
    functionName: fts5SegIterNext
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5HashScanNext
    - fts5LeafFirstTermOff
    - sqlite3Fts5BufferSet
    - fts5SegIterNextPage
    - fts5SegIterLoadNPos
    - fts5FastGetVarint32
    - assert
    - fts5GetVarint32
    - sqlite3Fts5HashScanEntry
    - fts5DataRelease
    - fts5GetVarint
    - ASSERT_SZLEAF_OK
    - fts5SegIterLoadTerm
    - sqlite3Fts5GetVarint
    - fts5LeafFirstRowidOff
    - assert_nc
    - strlen
    linkageType: ''
    returnType: void
    signature: "void fts5SegIterNext(\n  Fts5Index *p,                   /* FTS5 backend
      object */\n  Fts5SegIter *pIter,             /* Iterator to advance */\n  int
      *pbNewTerm                  /* OUT: Set for new term */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - T
    - ','
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211876
      start: 211875
    functionDepth: 0
    functionLinenumber: 211875
    functionLinenumberEnd: 211876
    functionName: SWAPVAL
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SWAPVAL(T, a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - iOff
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211881
      start: 211877
    functionDepth: 0
    functionLinenumber: 211877
    functionLinenumberEnd: 211881
    functionName: fts5IndexSkipVarint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fts5IndexSkipVarint(a, iOff)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fts5DlidxIterPgno
      Src: /src/nss/lib/sqlite/sqlite3.c:211894,1
    - Dst: fts5DataRead
      Src: /src/nss/lib/sqlite/sqlite3.c:211895,1
    - Dst: FTS5_SEGMENT_ROWID
      Src: /src/nss/lib/sqlite/sqlite3.c:211895,1
    - Dst: fts5IndexSkipVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:211908,1
    - Dst: FTS5_SEGMENT_ROWID
      Src: /src/nss/lib/sqlite/sqlite3.c:211921,1
    - Dst: fts5DataRead
      Src: /src/nss/lib/sqlite/sqlite3.c:211922,1
    - Dst: fts5LeafFirstRowidOff
      Src: /src/nss/lib/sqlite/sqlite3.c:211925,1
    - Dst: fts5LeafIsTermless
      Src: /src/nss/lib/sqlite/sqlite3.c:211926,1
    - Dst: fts5DataRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:211931,1
    - Dst: fts5DataRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:211949,1
    - Dst: fts5LeafFirstRowidOff
      Src: /src/nss/lib/sqlite/sqlite3.c:211952,1
    - Dst: fts5GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:211953,1
    - Dst: fts5LeafIsTermless
      Src: /src/nss/lib/sqlite/sqlite3.c:211956,1
    - Dst: fts5LeafFirstTermOff
      Src: /src/nss/lib/sqlite/sqlite3.c:211959,1
    - Dst: fts5SegIterReverseInitPage
      Src: /src/nss/lib/sqlite/sqlite3.c:211964,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 2
    argNames:
    - p
    - pIter
    argTypes:
    - Fts5Index*
    - Fts5SegIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211965
      start: 211887
    functionDepth: 30
    functionLinenumber: 211887
    functionLinenumberEnd: 211965
    functionName: fts5SegIterReverse
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5LeafIsTermless
    - FTS5_SEGMENT_ROWID
    - fts5LeafFirstTermOff
    - fts5IndexSkipVarint
    - fts5DataRead
    - fts5DataRelease
    - fts5GetVarint
    - fts5DlidxIterPgno
    - fts5SegIterReverseInitPage
    - fts5LeafFirstRowidOff
    linkageType: ''
    returnType: void
    signature: void fts5SegIterReverse(Fts5Index *p, Fts5SegIter *pIter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:211978,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:211979,1
    - Dst: fts5DlidxIterInit
      Src: /src/nss/lib/sqlite/sqlite3.c:211990,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - p
    - pIter
    argTypes:
    - Fts5Index*
    - Fts5SegIter*
    assertStmts:
    - condition: ( pIter->flags & FTS5_SEGITER_ONETERM )
      pos:
        line_end: 211977
        line_start: 211977
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIter->pDlidx==0 )
      pos:
        line_end: 211978
        line_start: 211978
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 211991
      start: 211973
    functionDepth: 32
    functionLinenumber: 211973
    functionLinenumberEnd: 211991
    functionName: fts5SegIterLoadDlidx
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fts5DlidxIterInit
    linkageType: ''
    returnType: void
    signature: void fts5SegIterLoadDlidx(Fts5Index *p, Fts5SegIter *pIter)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:212025,1
    - Dst: fts5GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:212028,1
    - Dst: fts5FastGetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:212038,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:212043,1
    - Dst: MIN
      Src: /src/nss/lib/sqlite/sqlite3.c:212047,1
    - Dst: fts5GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:212069,1
    - Dst: fts5FastGetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:212079,1
    - Dst: fts5DataRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:212084,1
    - Dst: fts5SegIterNextPage
      Src: /src/nss/lib/sqlite/sqlite3.c:212089,1
    - Dst: fts5LeafIsTermless
      Src: /src/nss/lib/sqlite/sqlite3.c:212092,1
    - Dst: fts5GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:212094,1
    - Dst: fts5GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:212102,1
    - Dst: fts5BufferSet
      Src: /src/nss/lib/sqlite/sqlite3.c:212118,1
    - Dst: fts5BufferAppendBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:212119,1
    - Dst: fts5GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:212125,1
    - Dst: fts5SegIterLoadRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:212130,1
    - Dst: fts5SegIterLoadNPos
      Src: /src/nss/lib/sqlite/sqlite3.c:212131,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 99
    argCount: 5
    argNames:
    - p
    - bGe
    - pIter
    - pTerm
    - nTerm
    argTypes:
    - Fts5Index*
    - int
    - Fts5SegIter*
    - u8*
    - int
    assertStmts:
    - condition: ( p->rc==SQLITE_OK )
      pos:
        line_end: 212024
        line_start: 212024
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nKeep>=nMatch )
      pos:
        line_end: 212042
        line_start: 212042
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 212132
      start: 212007
    functionDepth: 33
    functionLinenumber: 212007
    functionLinenumberEnd: 212132
    functionName: fts5LeafSeek
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5LeafIsTermless
    - fts5BufferAppendBlob
    - fts5SegIterNextPage
    - fts5SegIterLoadNPos
    - fts5FastGetVarint32
    - fts5SegIterLoadRowid
    - fts5BufferSet
    - assert
    - fts5GetVarint32
    - fts5DataRelease
    - MIN
    linkageType: ''
    returnType: void
    signature: "void fts5LeafSeek(\n  Fts5Index *p,                   /* Leave any
      error code here */\n  int bGe,                        /* True for a >= search
      */\n  Fts5SegIter *pIter,             /* Iterator to seek */\n  const u8 *pTerm,
      int nTerm      /* Term to search for */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fts5IndexPrepareStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:212137,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:212137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - Fts5Index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212144
      start: 212134
    functionDepth: 29
    functionLinenumber: 212134
    functionLinenumberEnd: 212144
    functionName: fts5IdxSelectStmt
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mprintf
    - fts5IndexPrepareStmt
    linkageType: ''
    returnType: sqlite3_stmt
    signature: sqlite3_stmt *fts5IdxSelectStmt(Fts5Index *p)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:212165,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:212166,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:212167,1
    - Dst: fts5IdxSelectStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:212172,1
    - Dst: sqlite3_bind_int
      Src: /src/nss/lib/sqlite/sqlite3.c:212174,1
    - Dst: sqlite3_bind_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:212175,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:212176,1
    - Dst: sqlite3_column_int
      Src: /src/nss/lib/sqlite/sqlite3.c:212177,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:212181,1
    - Dst: sqlite3_bind_null
      Src: /src/nss/lib/sqlite/sqlite3.c:212182,1
    - Dst: fts5SegIterNextPage
      Src: /src/nss/lib/sqlite/sqlite3.c:212190,1
    - Dst: fts5LeafSeek
      Src: /src/nss/lib/sqlite/sqlite3.c:212193,1
    - Dst: fts5SegIterLoadDlidx
      Src: /src/nss/lib/sqlite/sqlite3.c:212203,1
    - Dst: fts5SegIterReverse
      Src: /src/nss/lib/sqlite/sqlite3.c:212206,1
    - Dst: fts5SegIterSetNext
      Src: /src/nss/lib/sqlite/sqlite3.c:212211,1
    - Dst: assert_nc
      Src: /src/nss/lib/sqlite/sqlite3.c:212221,1
    - Dst: fts5BufferCompareBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:212223,1
    - Dst: fts5BufferCompareBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:212224,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 41
    argCount: 6
    argNames:
    - p
    - pTerm
    - nTerm
    - flags
    - pSeg
    - pIter
    argTypes:
    - Fts5Index*
    - u8*
    - int
    - int
    - Fts5StructureSegment*
    - Fts5SegIter*
    assertStmts:
    - condition: ( bGe==0 || (flags & FTS5INDEX_QUERY_DESC)==0 )
      pos:
        line_end: 212164
        line_start: 212164
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTerm && nTerm )
      pos:
        line_end: 212165
        line_start: 212165
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 212226
      start: 212153
    functionDepth: 34
    functionLinenumber: 212153
    functionLinenumberEnd: 212226
    functionName: fts5SegIterSeekInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_bind_null
    - sqlite3_bind_int
    - fts5SegIterReverse
    - sqlite3_step
    - sqlite3_reset
    - fts5SegIterSetNext
    - fts5SegIterNextPage
    - sqlite3_bind_blob
    - fts5IdxSelectStmt
    - fts5LeafSeek
    - assert
    - memset
    - fts5SegIterLoadDlidx
    - assert_nc
    - fts5BufferCompareBlob
    - sqlite3_column_int
    linkageType: ''
    returnType: void
    signature: "void fts5SegIterSeekInit(\n  Fts5Index *p,                   /* FTS5
      backend */\n  const u8 *pTerm, int nTerm,     /* Term to seek to */\n  int flags,
      \                     /* Mask of FTS5INDEX_XXX flags */\n  Fts5StructureSegment
      *pSeg,     /* Description of segment */\n  Fts5SegIter *pIter              /*
      Object to populate */\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:212247,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:212248,1
    - Dst: sqlite3Fts5HashScanInit
      Src: /src/nss/lib/sqlite/sqlite3.c:212253,1
    - Dst: sqlite3Fts5HashScanEntry
      Src: /src/nss/lib/sqlite/sqlite3.c:212254,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:212255,1
    - Dst: fts5IdxMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:212257,1
    - Dst: sqlite3Fts5HashQuery
      Src: /src/nss/lib/sqlite/sqlite3.c:212263,1
    - Dst: sqlite3Fts5BufferSet
      Src: /src/nss/lib/sqlite/sqlite3.c:212275,1
    - Dst: fts5GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:212278,1
    - Dst: fts5SegIterReverseInitPage
      Src: /src/nss/lib/sqlite/sqlite3.c:212283,1
    - Dst: fts5SegIterLoadNPos
      Src: /src/nss/lib/sqlite/sqlite3.c:212285,1
    - Dst: fts5SegIterSetNext
      Src: /src/nss/lib/sqlite/sqlite3.c:212289,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 5
    argNames:
    - p
    - pTerm
    - nTerm
    - flags
    - pIter
    argTypes:
    - Fts5Index*
    - u8*
    - int
    - int
    - Fts5SegIter*
    assertStmts:
    - condition: ( p->pHash )
      pos:
        line_end: 212246
        line_start: 212246
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->rc==SQLITE_OK )
      pos:
        line_end: 212247
        line_start: 212247
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 212290
      start: 212236
    functionDepth: 8
    functionLinenumber: 212236
    functionLinenumberEnd: 212290
    functionName: fts5SegIterHashInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5SegIterSetNext
    - fts5IdxMalloc
    - sqlite3Fts5HashScanInit
    - sqlite3Fts5BufferSet
    - sqlite3Fts5HashQuery
    - fts5SegIterLoadNPos
    - assert
    - sqlite3Fts5HashScanEntry
    - fts5GetVarint
    - fts5SegIterReverseInitPage
    - strlen
    linkageType: ''
    returnType: void
    signature: "void fts5SegIterHashInit(\n  Fts5Index *p,                   /* FTS5
      backend */\n  const u8 *pTerm, int nTerm,     /* Term to seek to */\n  int flags,
      \                     /* Mask of FTS5INDEX_XXX flags */\n  Fts5SegIter *pIter
      \             /* Object to populate */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts5BufferFree
      Src: /src/nss/lib/sqlite/sqlite3.c:212296,1
    - Dst: fts5DataRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:212297,1
    - Dst: fts5DataRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:212298,1
    - Dst: fts5DlidxIterFree
      Src: /src/nss/lib/sqlite/sqlite3.c:212299,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:212300,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:212301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - pIter
    argTypes:
    - Fts5SegIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212302
      start: 212295
    functionDepth: 5
    functionLinenumber: 212295
    functionLinenumberEnd: 212302
    functionName: fts5SegIterClear
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5DataRelease
    - memset
    - fts5DlidxIterFree
    - fts5BufferFree
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void fts5SegIterClear(Fts5SegIter *pIter)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:212323,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:212325,1
    - Dst: MIN
      Src: /src/nss/lib/sqlite/sqlite3.c:212327,1
    - Dst: fts5Memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:212328,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:212332,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:212333,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:212336,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:212340,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:212342,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 4
    argNames:
    - pIter
    - p1
    - p2
    - pRes
    argTypes:
    - Fts5Iter*
    - Fts5SegIter*
    - Fts5SegIter*
    - Fts5CResult*
    assertStmts:
    - condition: ( pRes->iFirst==i2 )
      pos:
        line_end: 212322
        line_start: 212322
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pRes->bTermEq==1 )
      pos:
        line_end: 212331
        line_start: 212331
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pRes->iFirst==i1 )
      pos:
        line_end: 212324
        line_start: 212324
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p1->iRowid!=p2->iRowid )
      pos:
        line_end: 212332
        line_start: 212332
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pRes->bTermEq==0 )
      pos:
        line_end: 212335
        line_start: 212335
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pRes->iFirst==i1 )
      pos:
        line_end: 212339
        line_start: 212339
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pRes->iFirst==i2 )
      pos:
        line_end: 212341
        line_start: 212341
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 212346
      start: 212312
    functionDepth: 1
    functionLinenumber: 212312
    functionLinenumberEnd: 212346
    functionName: fts5AssertComparisonResult
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fts5Memcmp
    - MIN
    linkageType: ''
    returnType: void
    signature: "void fts5AssertComparisonResult(\n  Fts5Iter *pIter, \n  Fts5SegIter
      *p1,\n  Fts5SegIter *p2,\n  Fts5CResult *pRes\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:212359,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:212364,1
    - Dst: fts5BufferCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:212366,1
    - Dst: fts5AssertComparisonResult
      Src: /src/nss/lib/sqlite/sqlite3.c:212376,1
    - Dst: fts5AssertComparisonResult
      Src: /src/nss/lib/sqlite/sqlite3.c:212383,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 2
    argNames:
    - p
    - pIter
    argTypes:
    - Fts5Index*
    - Fts5Iter*
    assertStmts:
    - condition: ( (pFirst->pLeaf==0)==pIter->base.bEof )
      pos:
        line_end: 212358
        line_start: 212358
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( p1==pFirst \n           || p1->pLeaf==0 \n           || fts5BufferCompare(&pFirst->term,
        &p1->term) \n           || p1->iRowid==pIter->iSwitchRowid\n           ||
        (p1->iRowid<pIter->iSwitchRowid)==pIter->bRev\n      )"
      pos:
        line_end: 212368
        line_start: 212363
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 212386
      start: 212354
    functionDepth: 2
    functionLinenumber: 212354
    functionLinenumberEnd: 212386
    functionName: fts5AssertMultiIterSetup
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fts5AssertComparisonResult
    - fts5BufferCompare
    linkageType: ''
    returnType: void
    signature: void fts5AssertMultiIterSetup(Fts5Index *p, Fts5Iter *pIter)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:212407,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:212408,1
    - Dst: fts5BufferCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:212426,1
    - Dst: assert_nc
      Src: /src/nss/lib/sqlite/sqlite3.c:212428,1
    - Dst: assert_nc
      Src: /src/nss/lib/sqlite/sqlite3.c:212429,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:212437,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 2
    argNames:
    - pIter
    - iOut
    argTypes:
    - Fts5Iter*
    - int
    assertStmts:
    - condition: ( iOut<pIter->nSeg && iOut>0 )
      pos:
        line_end: 212406
        line_start: 212406
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIter->bRev==0 || pIter->bRev==1 )
      pos:
        line_end: 212407
        line_start: 212407
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( res!=0 )
      pos:
        line_end: 212436
        line_start: 212436
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 212447
      start: 212399
    functionDepth: 2
    functionLinenumber: 212399
    functionLinenumberEnd: 212447
    functionName: fts5MultiIterDoCompare
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fts5BufferCompare
    - assert_nc
    linkageType: ''
    returnType: int
    signature: int fts5MultiIterDoCompare(Fts5Iter *pIter, int iOut)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:212458,1
    - Dst: fts5DataRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:212463,1
    - Dst: fts5SegIterNextPage
      Src: /src/nss/lib/sqlite/sqlite3.c:212466,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:212467,1
    - Dst: fts5LeafFirstRowidOff
      Src: /src/nss/lib/sqlite/sqlite3.c:212474,1
    - Dst: fts5GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:212478,1
    - Dst: fts5SegIterLoadNPos
      Src: /src/nss/lib/sqlite/sqlite3.c:212480,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - p
    - pIter
    - iLeafPgno
    argTypes:
    - Fts5Index*
    - Fts5SegIter*
    - int
    assertStmts:
    - condition: ( iLeafPgno>pIter->iLeafPgno )
      pos:
        line_end: 212457
        line_start: 212457
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->rc!=SQLITE_OK || pIter->iLeafPgno==iLeafPgno )
      pos:
        line_end: 212466
        line_start: 212466
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 212484
      start: 212453
    functionDepth: 32
    functionLinenumber: 212453
    functionLinenumberEnd: 212484
    functionName: fts5SegIterGotoPage
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5SegIterNextPage
    - fts5SegIterLoadNPos
    - assert
    - fts5DataRelease
    - fts5GetVarint
    - fts5LeafFirstRowidOff
    linkageType: ''
    returnType: void
    signature: "void fts5SegIterGotoPage(\n  Fts5Index *p,                   /* FTS5
      backend object */\n  Fts5SegIter *pIter,             /* Iterator to advance
      */\n  int iLeafPgno\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:212501,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:212502,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:212503,1
    - Dst: fts5DlidxIterEof
      Src: /src/nss/lib/sqlite/sqlite3.c:212506,1
    - Dst: fts5DlidxIterRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:212506,1
    - Dst: fts5DlidxIterPgno
      Src: /src/nss/lib/sqlite/sqlite3.c:212507,1
    - Dst: fts5DlidxIterNext
      Src: /src/nss/lib/sqlite/sqlite3.c:212508,1
    - Dst: assert_nc
      Src: /src/nss/lib/sqlite/sqlite3.c:212510,1
    - Dst: fts5SegIterGotoPage
      Src: /src/nss/lib/sqlite/sqlite3.c:212512,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:212516,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:212517,1
    - Dst: fts5DlidxIterEof
      Src: /src/nss/lib/sqlite/sqlite3.c:212518,1
    - Dst: fts5DlidxIterRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:212518,1
    - Dst: fts5DlidxIterPrev
      Src: /src/nss/lib/sqlite/sqlite3.c:212519,1
    - Dst: fts5DlidxIterPgno
      Src: /src/nss/lib/sqlite/sqlite3.c:212521,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:212523,1
    - Dst: fts5DlidxIterEof
      Src: /src/nss/lib/sqlite/sqlite3.c:212523,1
    - Dst: fts5SegIterReverseNewPage
      Src: /src/nss/lib/sqlite/sqlite3.c:212527,1
    - Dst: Fts5SegIter*::xNext
      Src: /src/nss/lib/sqlite/sqlite3.c:212533,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 39
    argCount: 3
    argNames:
    - p
    - pIter
    - iMatch
    argTypes:
    - Fts5Index*
    - Fts5SegIter*
    - i64
    assertStmts:
    - condition: ( pIter->pNextLeaf==0 )
      pos:
        line_end: 212515
        line_start: 212515
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( fts5DlidxIterEof(p, pDlidx) || iLeafPgno<=pIter->iLeafPgno )
      pos:
        line_end: 212522
        line_start: 212522
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIter->flags & FTS5_SEGITER_ONETERM )
      pos:
        line_end: 212500
        line_start: 212500
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIter->pDlidx )
      pos:
        line_end: 212501
        line_start: 212501
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIter->pLeaf )
      pos:
        line_end: 212502
        line_start: 212502
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iMatch<pIter->iRowid )
      pos:
        line_end: 212516
        line_start: 212516
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 212539
      start: 212491
    functionDepth: 33
    functionLinenumber: 212491
    functionLinenumberEnd: 212539
    functionName: fts5SegIterNextFrom
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - Fts5SegIter*::xNext
    - fts5SegIterGotoPage
    - fts5DlidxIterNext
    - assert
    - fts5SegIterReverseNewPage
    - fts5DlidxIterRowid
    - fts5DlidxIterPgno
    - fts5DlidxIterPrev
    - assert_nc
    - fts5DlidxIterEof
    linkageType: ''
    returnType: void
    signature: "void fts5SegIterNextFrom(\n  Fts5Index *p,                   /* FTS5
      backend object */\n  Fts5SegIter *pIter,             /* Iterator to advance
      */\n  i64 iMatch                      /* Advance iterator at least this far
      */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fts5SegIterClear
      Src: /src/nss/lib/sqlite/sqlite3.c:212549,1
    - Dst: fts5BufferFree
      Src: /src/nss/lib/sqlite/sqlite3.c:212551,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:212552,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - pIter
    argTypes:
    - Fts5Iter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212554
      start: 212545
    functionDepth: 6
    functionLinenumber: 212545
    functionLinenumberEnd: 212554
    functionName: fts5MultiIterFree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5BufferFree
    - sqlite3_free
    - fts5SegIterClear
    linkageType: ''
    returnType: void
    signature: void fts5MultiIterFree(Fts5Iter *pIter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fts5MultiIterDoCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:212565,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:212567,1
    - Dst: Fts5SegIter*::xNext
      Src: /src/nss/lib/sqlite/sqlite3.c:212568,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - p
    - pIter
    - iChanged
    - iMinset
    argTypes:
    - Fts5Index*
    - Fts5Iter*
    - int
    - int
    assertStmts:
    - condition: ( p->rc==SQLITE_OK )
      pos:
        line_end: 212566
        line_start: 212566
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 212572
      start: 212556
    functionDepth: 3
    functionLinenumber: 212556
    functionLinenumberEnd: 212572
    functionName: fts5MultiIterAdvanced
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - Fts5SegIter*::xNext
    - fts5MultiIterDoCompare
    linkageType: ''
    returnType: void
    signature: "void fts5MultiIterAdvanced(\n  Fts5Index *p,                   /*
      FTS5 backend to iterate within */\n  Fts5Iter *pIter,                /* Iterator
      to update aFirst[] array for */\n  int iChanged,                   /* Index
      of sub-iterator just advanced */\n  int iMinset                     /* Minimum
      entry in aFirst[] to set */\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:212600,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:212601,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 3
    argNames:
    - pIter
    - iChanged
    - ppFirst
    argTypes:
    - Fts5Iter*
    - int
    - Fts5SegIter**
    assertStmts:
    - condition: ( pNew->pLeaf )
      pos:
        line_end: 212599
        line_start: 212599
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pRes->bTermEq==0 || pOther->pLeaf )
      pos:
        line_end: 212600
        line_start: 212600
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 212622
      start: 212584
    functionDepth: 0
    functionLinenumber: 212584
    functionLinenumberEnd: 212622
    functionName: fts5MultiIterAdvanceRowid
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: "int fts5MultiIterAdvanceRowid(\n  Fts5Iter *pIter,                /*
      Iterator to update aFirst[] array for */\n  int iChanged,                   /*
      Index of sub-iterator just advanced */\n  Fts5SegIter **ppFirst\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pIter
    argTypes:
    - Fts5Iter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212631
      start: 212627
    functionDepth: 0
    functionLinenumber: 212627
    functionLinenumberEnd: 212631
    functionName: fts5MultiIterSetEof
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fts5MultiIterSetEof(Fts5Iter *pIter)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:212647,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:212652,1
    - Dst: fts5SegIterNextFrom
      Src: /src/nss/lib/sqlite/sqlite3.c:212654,1
    - Dst: Fts5SegIter*::xNext
      Src: /src/nss/lib/sqlite/sqlite3.c:212656,1
    - Dst: fts5MultiIterAdvanceRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:212660,1
    - Dst: fts5MultiIterAdvanced
      Src: /src/nss/lib/sqlite/sqlite3.c:212662,1
    - Dst: fts5MultiIterSetEof
      Src: /src/nss/lib/sqlite/sqlite3.c:212663,1
    - Dst: fts5AssertMultiIterSetup
      Src: /src/nss/lib/sqlite/sqlite3.c:212668,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:212669,1
    - Dst: Fts5Iter*::xSetOutputs
      Src: /src/nss/lib/sqlite/sqlite3.c:212671,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 4
    argNames:
    - p
    - pIter
    - bFrom
    - iFrom
    argTypes:
    - Fts5Index*
    - Fts5Iter*
    - int
    - i64
    assertStmts:
    - condition: ( pIter->base.bEof==0 )
      pos:
        line_end: 212646
        line_start: 212646
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->rc==SQLITE_OK )
      pos:
        line_end: 212651
        line_start: 212651
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pSeg==&pIter->aSeg[pIter->aFirst[1].iFirst] && pSeg->pLeaf )
      pos:
        line_end: 212668
        line_start: 212668
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 212676
      start: 212640
    functionDepth: 34
    functionLinenumber: 212640
    functionLinenumberEnd: 212676
    functionName: fts5MultiIterNext
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - Fts5SegIter*::xNext
    - fts5MultiIterSetEof
    - fts5MultiIterAdvanceRowid
    - Fts5Iter*::xSetOutputs
    - fts5AssertMultiIterSetup
    - assert
    - fts5SegIterNextFrom
    - fts5MultiIterAdvanced
    linkageType: ''
    returnType: void
    signature: "void fts5MultiIterNext(\n  Fts5Index *p, \n  Fts5Iter *pIter,\n  int
      bFrom,                      /* True if argument iFrom is valid */\n  i64 iFrom
      \                      /* Advance at least as far as this */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:212683,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:212691,1
    - Dst: Fts5SegIter*::xNext
      Src: /src/nss/lib/sqlite/sqlite3.c:212692,1
    - Dst: fts5MultiIterAdvanceRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:212694,1
    - Dst: fts5MultiIterAdvanced
      Src: /src/nss/lib/sqlite/sqlite3.c:212696,1
    - Dst: fts5MultiIterSetEof
      Src: /src/nss/lib/sqlite/sqlite3.c:212697,1
    - Dst: fts5AssertMultiIterSetup
      Src: /src/nss/lib/sqlite/sqlite3.c:212700,1
    - Dst: fts5MultiIterIsEmpty
      Src: /src/nss/lib/sqlite/sqlite3.c:212702,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - p
    - pIter
    - pbNewTerm
    argTypes:
    - Fts5Index*
    - Fts5Iter*
    - int*
    assertStmts:
    - condition: ( pIter->bSkipEmpty )
      pos:
        line_end: 212682
        line_start: 212682
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->rc==SQLITE_OK )
      pos:
        line_end: 212690
        line_start: 212690
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 212704
      start: 212678
    functionDepth: 4
    functionLinenumber: 212678
    functionLinenumberEnd: 212704
    functionName: fts5MultiIterNext2
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - Fts5SegIter*::xNext
    - fts5MultiIterSetEof
    - fts5MultiIterIsEmpty
    - fts5MultiIterAdvanceRowid
    - fts5AssertMultiIterSetup
    - assert
    - fts5MultiIterAdvanced
    linkageType: ''
    returnType: void
    signature: "void fts5MultiIterNext2(\n  Fts5Index *p, \n  Fts5Iter *pIter,\n  int
      *pbNewTerm                  /* OUT: True if *might* be new term */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAM2
      Src: /src/nss/lib/sqlite/sqlite3.c:212707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pUnused1
    - pUnused2
    argTypes:
    - Fts5Iter*
    - Fts5SegIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212708
      start: 212706
    functionDepth: 1
    functionLinenumber: 212706
    functionLinenumberEnd: 212708
    functionName: fts5IterSetOutputs_Noop
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAM2
    linkageType: ''
    returnType: void
    signature: void fts5IterSetOutputs_Noop(Fts5Iter *pUnused1, Fts5SegIter *pUnused2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fts5IdxMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:212718,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - p
    - nSeg
    argTypes:
    - Fts5Index*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212730
      start: 212710
    functionDepth: 8
    functionLinenumber: 212710
    functionLinenumberEnd: 212730
    functionName: fts5MultiIterAlloc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5IdxMalloc
    linkageType: ''
    returnType: Fts5Iter
    signature: "Fts5Iter *fts5MultiIterAlloc(\n  Fts5Index *p,                   /*
      FTS5 backend to iterate within */\n  int nSeg\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAM
      Src: /src/nss/lib/sqlite/sqlite3.c:212737,1
    - Dst: assert_nc
      Src: /src/nss/lib/sqlite/sqlite3.c:212738,1
    - Dst: fts5BufferSafeAppendBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:212740,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - pUnused
    - pContext
    - pChunk
    - nChunk
    argTypes:
    - Fts5Index*
    - void*
    - u8*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212742
      start: 212732
    functionDepth: 1
    functionLinenumber: 212732
    functionLinenumberEnd: 212742
    functionName: fts5PoslistCallback
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5BufferSafeAppendBlob
    - assert_nc
    - UNUSED_PARAM
    linkageType: ''
    returnType: void
    signature: "void fts5PoslistCallback(\n  Fts5Index *pUnused, \n  void *pContext,
      \n  const u8 *pChunk, int nChunk\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - pColset
    - iCol
    argTypes:
    - Fts5Colset*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212768
      start: 212762
    functionDepth: 0
    functionLinenumber: 212762
    functionLinenumberEnd: 212768
    functionName: fts5IndexColsetTest
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fts5IndexColsetTest(Fts5Colset *pColset, int iCol)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAM
      Src: /src/nss/lib/sqlite/sqlite3.c:212776,1
    - Dst: assert_nc
      Src: /src/nss/lib/sqlite/sqlite3.c:212777,1
    - Dst: fts5GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:212782,1
    - Dst: fts5IndexColsetTest
      Src: /src/nss/lib/sqlite/sqlite3.c:212785,1
    - Dst: fts5BufferSafeAppendVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:212786,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - pUnused
    - pContext
    - pChunk
    - nChunk
    argTypes:
    - Fts5Index*
    - void*
    - u8*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212791
      start: 212770
    functionDepth: 1
    functionLinenumber: 212770
    functionLinenumberEnd: 212791
    functionName: fts5PoslistOffsetsCallback
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAM
    - fts5GetVarint32
    - fts5IndexColsetTest
    - fts5BufferSafeAppendVarint
    - assert_nc
    linkageType: ''
    returnType: void
    signature: "void fts5PoslistOffsetsCallback(\n  Fts5Index *pUnused, \n  void *pContext,
      \n  const u8 *pChunk, int nChunk\n)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAM
      Src: /src/nss/lib/sqlite/sqlite3.c:212799,1
    - Dst: assert_nc
      Src: /src/nss/lib/sqlite/sqlite3.c:212800,1
    - Dst: fts5FastGetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:212809,1
    - Dst: fts5IndexColsetTest
      Src: /src/nss/lib/sqlite/sqlite3.c:212810,1
    - Dst: fts5BufferSafeAppendVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:212812,1
    - Dst: fts5BufferSafeAppendBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:212824,1
    - Dst: fts5FastGetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:212833,1
    - Dst: fts5IndexColsetTest
      Src: /src/nss/lib/sqlite/sqlite3.c:212834,1
    - Dst: fts5BufferSafeAppendBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:212836,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 4
    argNames:
    - pUnused
    - pContext
    - pChunk
    - nChunk
    argTypes:
    - Fts5Index*
    - void*
    - u8*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212843
      start: 212793
    functionDepth: 1
    functionLinenumber: 212793
    functionLinenumberEnd: 212843
    functionName: fts5PoslistFilterCallback
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5BufferSafeAppendBlob
    - fts5FastGetVarint32
    - UNUSED_PARAM
    - fts5BufferSafeAppendVarint
    - fts5IndexColsetTest
    - assert_nc
    linkageType: ''
    returnType: void
    signature: "void fts5PoslistFilterCallback(\n  Fts5Index *pUnused,\n  void *pContext,
      \n  const u8 *pChunk, int nChunk\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/nss/lib/sqlite/sqlite3.c:212854,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:212859,1
    - Dst: xChunk
      Src: /src/nss/lib/sqlite/sqlite3.c:212866,1
    - Dst: fts5DataRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:212868,1
    - Dst: fts5LeafRead
      Src: /src/nss/lib/sqlite/sqlite3.c:212873,1
    - Dst: FTS5_SEGMENT_ROWID
      Src: /src/nss/lib/sqlite/sqlite3.c:212873,1
    - Dst: MIN
      Src: /src/nss/lib/sqlite/sqlite3.c:212876,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:212878,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - p
    - pSeg
    - pCtx
    argTypes:
    - Fts5Index*
    - Fts5SegIter*
    - void*
    assertStmts:
    - condition: ( p->pConfig->eDetail!=FTS5_DETAIL_NONE )
      pos:
        line_end: 212858
        line_start: 212858
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pSeg->pNextLeaf==0 )
      pos:
        line_end: 212877
        line_start: 212877
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 212884
      start: 212845
    functionDepth: 31
    functionLinenumber: 212845
    functionLinenumberEnd: 212884
    functionName: fts5ChunkIterate
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - FTS5_SEGMENT_ROWID
    - fts5LeafRead
    - assert
    - fts5DataRelease
    - xChunk
    - MIN
    linkageType: ''
    returnType: void
    signature: "void fts5ChunkIterate(\n  Fts5Index *p,                   /* Index
      object */\n  Fts5SegIter *pSeg,              /* Poslist of this iterator */\n
      \ void *pCtx,                     /* Context pointer for xChunk callback */\n
      \ void (*xChunk)(Fts5Index*, void*, const u8*, int)\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fts5BufferGrow
      Src: /src/nss/lib/sqlite/sqlite3.c:212898,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:212899,1
    - Dst: fts5ChunkIterate
      Src: /src/nss/lib/sqlite/sqlite3.c:212901,1
    - Dst: fts5IndexColsetTest
      Src: /src/nss/lib/sqlite/sqlite3.c:212907,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:212908,1
    - Dst: fts5ChunkIterate
      Src: /src/nss/lib/sqlite/sqlite3.c:212909,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:212912,1
    - Dst: fts5ChunkIterate
      Src: /src/nss/lib/sqlite/sqlite3.c:212915,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - p
    - pSeg
    - pColset
    - pBuf
    argTypes:
    - Fts5Index*
    - Fts5SegIter*
    - Fts5Colset*
    - Fts5Buffer*
    assertStmts:
    - condition: ( sCtx.eState==0 || sCtx.eState==1 )
      pos:
        line_end: 212907
        line_start: 212907
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 212919
      start: 212892
    functionDepth: 32
    functionLinenumber: 212892
    functionLinenumberEnd: 212919
    functionName: fts5SegiterPoslist
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5ChunkIterate
    - memset
    - assert
    - fts5IndexColsetTest
    - fts5BufferGrow
    linkageType: ''
    returnType: void
    signature: "void fts5SegiterPoslist(\n  Fts5Index *p,\n  Fts5SegIter *pSeg,\n
      \ Fts5Colset *pColset,\n  Fts5Buffer *pBuf\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fts5GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:212951,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 3
    argNames:
    - pa
    - n
    - iCol
    argTypes:
    - u8**
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212963
      start: 212928
    functionDepth: 1
    functionLinenumber: 212928
    functionLinenumberEnd: 212963
    functionName: fts5IndexExtractCol
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5GetVarint32
    linkageType: ''
    returnType: int
    signature: "int fts5IndexExtractCol(\n  const u8 **pa,                  /* IN/OUT:
      Pointer to poslist */\n  int n,                          /* IN: Size of poslist
      in bytes */\n  int iCol                        /* Column to extract from poslist
      */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fts5BufferZero
      Src: /src/nss/lib/sqlite/sqlite3.c:212973,1
    - Dst: fts5IndexExtractCol
      Src: /src/nss/lib/sqlite/sqlite3.c:212976,1
    - Dst: fts5BufferAppendBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:212978,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 5
    argNames:
    - pRc
    - pColset
    - pPos
    - nPos
    - pBuf
    argTypes:
    - int*
    - Fts5Colset*
    - u8*
    - int
    - Fts5Buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212982
      start: 212965
    functionDepth: 2
    functionLinenumber: 212965
    functionLinenumberEnd: 212982
    functionName: fts5IndexExtractColset
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5IndexExtractCol
    - fts5BufferAppendBlob
    - fts5BufferZero
    linkageType: ''
    returnType: void
    signature: "void fts5IndexExtractColset(\n  int *pRc,\n  Fts5Colset *pColset,
      \           /* Colset to filter on */\n  const u8 *pPos, int nPos,       /*
      Position list */\n  Fts5Buffer *pBuf                /* Output buffer */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:212988,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pIter
    - pSeg
    argTypes:
    - Fts5Iter*
    - Fts5SegIter*
    assertStmts:
    - condition: ( pIter->pIndex->pConfig->eDetail==FTS5_DETAIL_NONE )
      pos:
        line_end: 212987
        line_start: 212987
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 212991
      start: 212987
    functionDepth: 0
    functionLinenumber: 212987
    functionLinenumberEnd: 212991
    functionName: fts5IterSetOutputs_None
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void fts5IterSetOutputs_None(Fts5Iter *pIter, Fts5SegIter *pSeg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:213001,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:213002,1
    - Dst: fts5BufferZero
      Src: /src/nss/lib/sqlite/sqlite3.c:213012,1
    - Dst: fts5SegiterPoslist
      Src: /src/nss/lib/sqlite/sqlite3.c:213013,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - pIter
    - pSeg
    argTypes:
    - Fts5Iter*
    - Fts5SegIter*
    assertStmts:
    - condition: ( pIter->pIndex->pConfig->eDetail!=FTS5_DETAIL_NONE )
      pos:
        line_end: 213000
        line_start: 213000
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIter->pColset==0 )
      pos:
        line_end: 213001
        line_start: 213001
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 213016
      start: 212997
    functionDepth: 33
    functionLinenumber: 212997
    functionLinenumberEnd: 213016
    functionName: fts5IterSetOutputs_Nocolset
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fts5SegiterPoslist
    - fts5BufferZero
    linkageType: ''
    returnType: void
    signature: void fts5IterSetOutputs_Nocolset(Fts5Iter *pIter, Fts5SegIter *pSeg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAM
      Src: /src/nss/lib/sqlite/sqlite3.c:213023,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pIter
    - pSeg
    argTypes:
    - Fts5Iter*
    - Fts5SegIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213025
      start: 213022
    functionDepth: 1
    functionLinenumber: 213022
    functionLinenumberEnd: 213025
    functionName: fts5IterSetOutputs_ZeroColset
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAM
    linkageType: ''
    returnType: void
    signature: void fts5IterSetOutputs_ZeroColset(Fts5Iter *pIter, Fts5SegIter *pSeg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts5BufferZero
      Src: /src/nss/lib/sqlite/sqlite3.c:213033,1
    - Dst: fts5SegiterPoslist
      Src: /src/nss/lib/sqlite/sqlite3.c:213034,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - pIter
    - pSeg
    argTypes:
    - Fts5Iter*
    - Fts5SegIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213038
      start: 213032
    functionDepth: 33
    functionLinenumber: 213032
    functionLinenumberEnd: 213038
    functionName: fts5IterSetOutputs_Col
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5SegiterPoslist
    - fts5BufferZero
    linkageType: ''
    returnType: void
    signature: void fts5IterSetOutputs_Col(Fts5Iter *pIter, Fts5SegIter *pSeg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:213052,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:213053,1
    - Dst: fts5IterSetOutputs_Col
      Src: /src/nss/lib/sqlite/sqlite3.c:213056,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - pIter
    - pSeg
    argTypes:
    - Fts5Iter*
    - Fts5SegIter*
    assertStmts:
    - condition: ( pIter->pIndex->pConfig->eDetail==FTS5_DETAIL_COLUMNS )
      pos:
        line_end: 213051
        line_start: 213051
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pIter->pColset )
      pos:
        line_end: 213052
        line_start: 213052
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 213085
      start: 213050
    functionDepth: 34
    functionLinenumber: 213050
    functionLinenumberEnd: 213085
    functionName: fts5IterSetOutputs_Col100
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fts5IterSetOutputs_Col
    linkageType: ''
    returnType: void
    signature: void fts5IterSetOutputs_Col100(Fts5Iter *pIter, Fts5SegIter *pSeg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:213094,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:213095,1
    - Dst: fts5IndexExtractCol
      Src: /src/nss/lib/sqlite/sqlite3.c:213102,1
    - Dst: fts5BufferZero
      Src: /src/nss/lib/sqlite/sqlite3.c:213106,1
    - Dst: fts5IndexExtractColset
      Src: /src/nss/lib/sqlite/sqlite3.c:213107,1
    - Dst: fts5BufferZero
      Src: /src/nss/lib/sqlite/sqlite3.c:213115,1
    - Dst: fts5SegiterPoslist
      Src: /src/nss/lib/sqlite/sqlite3.c:213116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 2
    argNames:
    - pIter
    - pSeg
    argTypes:
    - Fts5Iter*
    - Fts5SegIter*
    assertStmts:
    - condition: ( pIter->pIndex->pConfig->eDetail==FTS5_DETAIL_FULL )
      pos:
        line_end: 213093
        line_start: 213093
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pColset )
      pos:
        line_end: 213094
        line_start: 213094
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 213120
      start: 213090
    functionDepth: 33
    functionLinenumber: 213090
    functionLinenumberEnd: 213120
    functionName: fts5IterSetOutputs_Full
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5IndexExtractCol
    - assert
    - fts5SegiterPoslist
    - fts5BufferZero
    - fts5IndexExtractColset
    linkageType: ''
    returnType: void
    signature: void fts5IterSetOutputs_Full(Fts5Iter *pIter, Fts5SegIter *pSeg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:213142,1
    - Dst: sqlite3Fts5BufferSize
      Src: /src/nss/lib/sqlite/sqlite3.c:213145,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - pRc
    - pIter
    argTypes:
    - int*
    - Fts5Iter*
    assertStmts:
    - condition: ( pConfig->eDetail==FTS5_DETAIL_COLUMNS )
      pos:
        line_end: 213141
        line_start: 213141
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 213151
      start: 213122
    functionDepth: 8
    functionLinenumber: 213122
    functionLinenumberEnd: 213151
    functionName: fts5IterSetOutputCb
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3Fts5BufferSize
    linkageType: ''
    returnType: void
    signature: void fts5IterSetOutputCb(int *pRc, Fts5Iter *pIter)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:213181,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:213186,1
    - Dst: fts5StructureCountSegments
      Src: /src/nss/lib/sqlite/sqlite3.c:213186,1
    - Dst: MIN
      Src: /src/nss/lib/sqlite/sqlite3.c:213190,1
    - Dst: fts5MultiIterAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:213193,1
    - Dst: fts5IterSetOutputCb
      Src: /src/nss/lib/sqlite/sqlite3.c:213199,1
    - Dst: fts5SegIterHashInit
      Src: /src/nss/lib/sqlite/sqlite3.c:213209,1
    - Dst: fts5SegIterInit
      Src: /src/nss/lib/sqlite/sqlite3.c:213216,1
    - Dst: fts5SegIterSeekInit
      Src: /src/nss/lib/sqlite/sqlite3.c:213218,1
    - Dst: fts5SegIterInit
      Src: /src/nss/lib/sqlite/sqlite3.c:213225,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:213228,1
    - Dst: fts5MultiIterDoCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:213238,1
    - Dst: Fts5SegIter*::xNext
      Src: /src/nss/lib/sqlite/sqlite3.c:213240,1
    - Dst: fts5MultiIterAdvanced
      Src: /src/nss/lib/sqlite/sqlite3.c:213241,1
    - Dst: fts5MultiIterSetEof
      Src: /src/nss/lib/sqlite/sqlite3.c:213244,1
    - Dst: fts5AssertMultiIterSetup
      Src: /src/nss/lib/sqlite/sqlite3.c:213245,1
    - Dst: fts5MultiIterIsEmpty
      Src: /src/nss/lib/sqlite/sqlite3.c:213247,1
    - Dst: fts5MultiIterNext
      Src: /src/nss/lib/sqlite/sqlite3.c:213248,1
    - Dst: Fts5Iter*::xSetOutputs
      Src: /src/nss/lib/sqlite/sqlite3.c:213251,1
    - Dst: fts5MultiIterFree
      Src: /src/nss/lib/sqlite/sqlite3.c:213255,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 62
    argCount: 9
    argNames:
    - p
    - pStruct
    - flags
    - pColset
    - pTerm
    - nTerm
    - iLevel
    - nSegment
    - ppOut
    argTypes:
    - Fts5Index*
    - Fts5Structure*
    - int
    - Fts5Colset*
    - u8*
    - int
    - int
    - int
    - Fts5Iter**
    assertStmts:
    - condition: ( (pTerm==0 && nTerm==0) || iLevel<0 )
      pos:
        line_end: 213180
        line_start: 213180
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pStruct->nSegment==fts5StructureCountSegments(pStruct) )
      pos:
        line_end: 213185
        line_start: 213185
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iIter==nSeg )
      pos:
        line_end: 213227
        line_start: 213227
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 213258
      start: 213165
    functionDepth: 35
    functionLinenumber: 213165
    functionLinenumberEnd: 213258
    functionName: fts5MultiIterNew
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - Fts5SegIter*::xNext
    - fts5MultiIterAlloc
    - fts5MultiIterSetEof
    - fts5MultiIterIsEmpty
    - fts5StructureCountSegments
    - fts5IterSetOutputCb
    - fts5SegIterHashInit
    - Fts5Iter*::xSetOutputs
    - fts5AssertMultiIterSetup
    - assert
    - fts5MultiIterDoCompare
    - fts5MultiIterNext
    - fts5MultiIterFree
    - fts5SegIterSeekInit
    - fts5MultiIterAdvanced
    - MIN
    - fts5SegIterInit
    linkageType: ''
    returnType: void
    signature: "void fts5MultiIterNew(\n  Fts5Index *p,                   /* FTS5
      backend to iterate within */\n  Fts5Structure *pStruct,         /* Structure
      of specific index */\n  int flags,                      /* FTS5INDEX_QUERY_XXX
      flags */\n  Fts5Colset *pColset,            /* Colset to filter on (or NULL)
      */\n  const u8 *pTerm, int nTerm,     /* Term to seek to (or NULL/0) */\n  int
      iLevel,                     /* Level to iterate (-1 for all) */\n  int nSegment,
      \                  /* Number of segments to merge (iLevel>=0) */\n  Fts5Iter
      **ppOut                /* New object */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fts5MultiIterAlloc
      Src: /src/nss/lib/sqlite/sqlite3.c:213271,1
    - Dst: fts5GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:213278,1
    - Dst: fts5SegIterReverseInitPage
      Src: /src/nss/lib/sqlite/sqlite3.c:213284,1
    - Dst: fts5SegIterLoadNPos
      Src: /src/nss/lib/sqlite/sqlite3.c:213286,1
    - Dst: fts5SegIterSetNext
      Src: /src/nss/lib/sqlite/sqlite3.c:213292,1
    - Dst: fts5DataRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:213297,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 4
    argNames:
    - p
    - pData
    - bDesc
    - ppOut
    argTypes:
    - Fts5Index*
    - Fts5Data*
    - int
    - Fts5Iter**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213298
      start: 213264
    functionDepth: 9
    functionLinenumber: 213264
    functionLinenumberEnd: 213298
    functionName: fts5MultiIterNew2
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5MultiIterAlloc
    - fts5SegIterSetNext
    - fts5SegIterLoadNPos
    - fts5DataRelease
    - fts5GetVarint
    - fts5SegIterReverseInitPage
    linkageType: ''
    returnType: void
    signature: "void fts5MultiIterNew2(\n  Fts5Index *p,                   /* FTS5
      backend to iterate within */\n  Fts5Data *pData,                /* Doclist to
      iterate through */\n  int bDesc,                      /* True for descending
      rowid order */\n  Fts5Iter **ppOut                /* New object */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:213305,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - p
    - pIter
    argTypes:
    - Fts5Index*
    - Fts5Iter*
    assertStmts:
    - condition: "( p->rc \n      || (pIter->aSeg[ pIter->aFirst[1].iFirst ].pLeaf==0)==pIter->base.bEof
        \n  )"
      pos:
        line_end: 213306
        line_start: 213304
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 213309
      start: 213304
    functionDepth: 0
    functionLinenumber: 213304
    functionLinenumberEnd: 213309
    functionName: fts5MultiIterEof
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int fts5MultiIterEof(Fts5Index *p, Fts5Iter *pIter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:213317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pIter
    argTypes:
    - Fts5Iter*
    assertStmts:
    - condition: ( pIter->aSeg[ pIter->aFirst[1].iFirst ].pLeaf )
      pos:
        line_end: 213316
        line_start: 213316
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 213319
      start: 213316
    functionDepth: 0
    functionLinenumber: 213316
    functionLinenumberEnd: 213319
    functionName: fts5MultiIterRowid
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: i64
    signature: i64 fts5MultiIterRowid(Fts5Iter *pIter)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fts5MultiIterNext
      Src: /src/nss/lib/sqlite/sqlite3.c:213331,1
    - Dst: fts5MultiIterEof
      Src: /src/nss/lib/sqlite/sqlite3.c:213332,1
    - Dst: fts5MultiIterRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:213333,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 11
    argCount: 3
    argNames:
    - p
    - pIter
    - iMatch
    argTypes:
    - Fts5Index*
    - Fts5Iter*
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213337
      start: 213324
    functionDepth: 35
    functionLinenumber: 213324
    functionLinenumberEnd: 213337
    functionName: fts5MultiIterNextFrom
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5MultiIterRowid
    - fts5MultiIterNext
    - fts5MultiIterEof
    linkageType: ''
    returnType: void
    signature: "void fts5MultiIterNextFrom(\n  Fts5Index *p, \n  Fts5Iter *pIter,
      \n  i64 iMatch\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pIter
    - pn
    argTypes:
    - Fts5Iter*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213347
      start: 213343
    functionDepth: 0
    functionLinenumber: 213343
    functionLinenumberEnd: 213347
    functionName: fts5MultiIterTerm
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: u8 *fts5MultiIterTerm(Fts5Iter *pIter, int *pn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:213371,1
    - Dst: assert_nc
      Src: /src/nss/lib/sqlite/sqlite3.c:213389,1
    - Dst: assert_nc
      Src: /src/nss/lib/sqlite/sqlite3.c:213392,1
    - Dst: fts5IdxSelectStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:213395,1
    - Dst: sqlite3_bind_int
      Src: /src/nss/lib/sqlite/sqlite3.c:213398,1
    - Dst: sqlite3_bind_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:213399,1
    - Dst: assert_nc
      Src: /src/nss/lib/sqlite/sqlite3.c:213400,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:213400,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:213401,1
    - Dst: sqlite3_bind_null
      Src: /src/nss/lib/sqlite/sqlite3.c:213402,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 2
    argNames:
    - p
    - pStruct
    argTypes:
    - Fts5Index*
    - Fts5Structure*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213410
      start: 213358
    functionDepth: 30
    functionLinenumber: 213358
    functionLinenumberEnd: 213410
    functionName: fts5AllocateSegid
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_bind_null
    - sqlite3_bind_int
    - sqlite3_step
    - sqlite3_reset
    - sqlite3_bind_blob
    - fts5IdxSelectStmt
    - memset
    - assert_nc
    linkageType: ''
    returnType: int
    signature: int fts5AllocateSegid(Fts5Index *p, Fts5Structure *pStruct)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:213416,1
    - Dst: sqlite3Fts5HashClear
      Src: /src/nss/lib/sqlite/sqlite3.c:213418,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - Fts5Index*
    assertStmts:
    - condition: ( p->pHash || p->nPendingData==0 )
      pos:
        line_end: 213415
        line_start: 213415
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 213421
      start: 213415
    functionDepth: 4
    functionLinenumber: 213415
    functionLinenumberEnd: 213421
    functionName: fts5IndexDiscardData
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3Fts5HashClear
    linkageType: ''
    returnType: void
    signature: void fts5IndexDiscardData(Fts5Index *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - nOld
    - pOld
    - pNew
    argTypes:
    - int
    - u8*
    - u8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213436
      start: 213430
    functionDepth: 0
    functionLinenumber: 213430
    functionLinenumberEnd: 213436
    functionName: fts5PrefixCompress
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fts5PrefixCompress(int nOld, const u8 *pOld, const u8 *pNew)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:213444,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:213449,1
    - Dst: fts5DataWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:213450,1
    - Dst: FTS5_DLIDX_ROWID
      Src: /src/nss/lib/sqlite/sqlite3.c:213451,1
    - Dst: sqlite3Fts5BufferZero
      Src: /src/nss/lib/sqlite/sqlite3.c:213455,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 3
    argNames:
    - p
    - pWriter
    - bFlush
    argTypes:
    - Fts5Index*
    - Fts5SegWriter*
    - int
    assertStmts:
    - condition: ( bFlush==0 || (pWriter->nDlidx>0 && pWriter->aDlidx[0].buf.n>0)
        )
      pos:
        line_end: 213443
        line_start: 213443
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pDlidx->pgno!=0 )
      pos:
        line_end: 213448
        line_start: 213448
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 213458
      start: 213438
    functionDepth: 30
    functionLinenumber: 213438
    functionLinenumberEnd: 213458
    functionName: fts5WriteDlidxClear
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fts5DataWrite
    - FTS5_DLIDX_ROWID
    - sqlite3Fts5BufferZero
    linkageType: ''
    returnType: void
    signature: "void fts5WriteDlidxClear(\n  Fts5Index *p, \n  Fts5SegWriter *pWriter,\n
      \ int bFlush                      /* If true, write dlidx to disk */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_realloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:213470,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:213477,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - p
    - pWriter
    - nLvl
    argTypes:
    - Fts5Index*
    - Fts5SegWriter*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213483
      start: 213464
    functionDepth: 7
    functionLinenumber: 213464
    functionLinenumberEnd: 213483
    functionName: fts5WriteDlidxGrow
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3_realloc64
    linkageType: ''
    returnType: int
    signature: "int fts5WriteDlidxGrow(\n  Fts5Index *p,\n  Fts5SegWriter *pWriter,\n
      \ int nLvl\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fts5WriteDlidxClear
      Src: /src/nss/lib/sqlite/sqlite3.c:213498,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - p
    - pWriter
    argTypes:
    - Fts5Index*
    - Fts5SegWriter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213501
      start: 213490
    functionDepth: 31
    functionLinenumber: 213490
    functionLinenumberEnd: 213501
    functionName: fts5WriteFlushDlidx
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5WriteDlidxClear
    linkageType: ''
    returnType: int
    signature: int fts5WriteFlushDlidx(Fts5Index *p, Fts5SegWriter *pWriter)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:213517,1
    - Dst: fts5WriteFlushDlidx
      Src: /src/nss/lib/sqlite/sqlite3.c:213519,1
    - Dst: sqlite3_bind_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:213525,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:213526,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:213527,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:213528,1
    - Dst: sqlite3_bind_null
      Src: /src/nss/lib/sqlite/sqlite3.c:213529,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - p
    - pWriter
    argTypes:
    - Fts5Index*
    - Fts5SegWriter*
    assertStmts:
    - condition: ( pWriter->iBtPage || pWriter->nEmpty==0 )
      pos:
        line_end: 213516
        line_start: 213516
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 213532
      start: 213514
    functionDepth: 32
    functionLinenumber: 213514
    functionLinenumberEnd: 213532
    functionName: fts5WriteFlushBtree
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_bind_null
    - sqlite3_step
    - sqlite3_reset
    - sqlite3_bind_blob
    - fts5WriteFlushDlidx
    - assert
    - sqlite3_bind_int64
    linkageType: ''
    returnType: void
    signature: void fts5WriteFlushBtree(Fts5Index *p, Fts5SegWriter *pWriter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fts5WriteFlushBtree
      Src: /src/nss/lib/sqlite/sqlite3.c:213548,1
    - Dst: fts5BufferSet
      Src: /src/nss/lib/sqlite/sqlite3.c:213550,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - p
    - pWriter
    - nTerm
    - pTerm
    argTypes:
    - Fts5Index*
    - Fts5SegWriter*
    - int
    - u8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213553
      start: 213543
    functionDepth: 33
    functionLinenumber: 213543
    functionLinenumberEnd: 213553
    functionName: fts5WriteBtreeTerm
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5WriteFlushBtree
    - fts5BufferSet
    linkageType: ''
    returnType: void
    signature: "void fts5WriteBtreeTerm(\n  Fts5Index *p,                   /* FTS5
      backend object */\n  Fts5SegWriter *pWriter,         /* Writer object */\n  int
      nTerm, const u8 *pTerm      /* First term on new page */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:213567,1
    - Dst: sqlite3Fts5BufferAppendVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:213568,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - p
    - pWriter
    argTypes:
    - Fts5Index*
    - Fts5SegWriter*
    assertStmts:
    - condition: ( pDlidx->bPrevValid )
      pos:
        line_end: 213566
        line_start: 213566
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 213573
      start: 213559
    functionDepth: 2
    functionLinenumber: 213559
    functionLinenumberEnd: 213573
    functionName: fts5WriteBtreeNoTerm
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3Fts5BufferAppendVarint
    linkageType: ''
    returnType: void
    signature: "void fts5WriteBtreeNoTerm(\n  Fts5Index *p,                   /* FTS5
      backend object */\n  Fts5SegWriter *pWriter          /* Writer object */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts5GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:213579,1
    - Dst: fts5GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:213580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pBuf
    argTypes:
    - Fts5Buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213582
      start: 213575
    functionDepth: 0
    functionLinenumber: 213575
    functionLinenumberEnd: 213582
    functionName: fts5DlidxExtractFirstRowid
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5GetVarint
    linkageType: ''
    returnType: i64
    signature: i64 fts5DlidxExtractFirstRowid(Fts5Buffer *pBuf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fts5DataWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:213608,1
    - Dst: FTS5_DLIDX_ROWID
      Src: /src/nss/lib/sqlite/sqlite3.c:213609,1
    - Dst: fts5WriteDlidxGrow
      Src: /src/nss/lib/sqlite/sqlite3.c:213612,1
    - Dst: fts5DlidxExtractFirstRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:213615,1
    - Dst: sqlite3Fts5BufferAppendVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:213619,1
    - Dst: sqlite3Fts5BufferAppendVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:213620,1
    - Dst: sqlite3Fts5BufferAppendVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:213621,1
    - Dst: sqlite3Fts5BufferZero
      Src: /src/nss/lib/sqlite/sqlite3.c:213626,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:213637,1
    - Dst: sqlite3Fts5BufferAppendVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:213638,1
    - Dst: sqlite3Fts5BufferAppendVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:213639,1
    - Dst: sqlite3Fts5BufferAppendVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:213643,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 3
    argNames:
    - p
    - pWriter
    - iRowid
    argTypes:
    - Fts5Index*
    - Fts5SegWriter*
    - i64
    assertStmts:
    - condition: ( pDlidx->buf.n==0 )
      pos:
        line_end: 213636
        line_start: 213636
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 213647
      start: 213589
    functionDepth: 30
    functionLinenumber: 213589
    functionLinenumberEnd: 213647
    functionName: fts5WriteDlidxAppend
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5BufferZero
    - fts5DataWrite
    - assert
    - fts5DlidxExtractFirstRowid
    - FTS5_DLIDX_ROWID
    - fts5WriteDlidxGrow
    - sqlite3Fts5BufferAppendVarint
    linkageType: ''
    returnType: void
    signature: "void fts5WriteDlidxAppend(\n  Fts5Index *p, \n  Fts5SegWriter *pWriter,
      \n  i64 iRowid\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:213654,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:213657,1
    - Dst: fts5GetU16
      Src: /src/nss/lib/sqlite/sqlite3.c:213657,1
    - Dst: fts5PutU16
      Src: /src/nss/lib/sqlite/sqlite3.c:213658,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:213662,1
    - Dst: fts5WriteBtreeNoTerm
      Src: /src/nss/lib/sqlite/sqlite3.c:213663,1
    - Dst: fts5BufferAppendBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:213666,1
    - Dst: FTS5_SEGMENT_ROWID
      Src: /src/nss/lib/sqlite/sqlite3.c:213670,1
    - Dst: fts5DataWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:213671,1
    - Dst: fts5BufferZero
      Src: /src/nss/lib/sqlite/sqlite3.c:213674,1
    - Dst: fts5BufferZero
      Src: /src/nss/lib/sqlite/sqlite3.c:213675,1
    - Dst: fts5BufferAppendBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:213676,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 2
    argNames:
    - p
    - pWriter
    argTypes:
    - Fts5Index*
    - Fts5SegWriter*
    assertStmts:
    - condition: ( (pPage->pgidx.n==0)==(pWriter->bFirstTermInPage) )
      pos:
        line_end: 213653
        line_start: 213653
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->pgidx.n==0 )
      pos:
        line_end: 213661
        line_start: 213661
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( 0==fts5GetU16(&pPage->buf.p[2]) )
      pos:
        line_end: 213656
        line_start: 213656
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 213686
      start: 213649
    functionDepth: 30
    functionLinenumber: 213649
    functionLinenumberEnd: 213686
    functionName: fts5WriteFlushLeaf
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - FTS5_SEGMENT_ROWID
    - fts5BufferAppendBlob
    - fts5PutU16
    - fts5WriteBtreeNoTerm
    - assert
    - fts5DataWrite
    - fts5BufferZero
    - fts5GetU16
    linkageType: ''
    returnType: void
    signature: void fts5WriteFlushLeaf(Fts5Index *p, Fts5SegWriter *pWriter)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/nss/lib/sqlite/sqlite3.c:213703,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:213705,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:213706,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:213707,1
    - Dst: fts5WriteFlushLeaf
      Src: /src/nss/lib/sqlite/sqlite3.c:213712,1
    - Dst: fts5BufferGrow
      Src: /src/nss/lib/sqlite/sqlite3.c:213715,1
    - Dst: sqlite3Fts5PutVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:213719,1
    - Dst: fts5PutU16
      Src: /src/nss/lib/sqlite/sqlite3.c:213724,1
    - Dst: fts5PrefixCompress
      Src: /src/nss/lib/sqlite/sqlite3.c:213746,1
    - Dst: fts5WriteBtreeTerm
      Src: /src/nss/lib/sqlite/sqlite3.c:213748,1
    - Dst: fts5PrefixCompress
      Src: /src/nss/lib/sqlite/sqlite3.c:213753,1
    - Dst: fts5BufferAppendVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:213754,1
    - Dst: fts5BufferAppendVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:213759,1
    - Dst: fts5BufferAppendBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:213760,1
    - Dst: fts5BufferSet
      Src: /src/nss/lib/sqlite/sqlite3.c:213763,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:213769,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 4
    argNames:
    - p
    - pWriter
    - nTerm
    - pTerm
    argTypes:
    - Fts5Index*
    - Fts5SegWriter*
    - int
    - u8*
    assertStmts:
    - condition: ( pPage->buf.n>4 || pWriter->bFirstTermInPage )
      pos:
        line_end: 213706
        line_start: 213706
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pPage->buf.n>=4 )
      pos:
        line_end: 213705
        line_start: 213705
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->rc==SQLITE_OK )
      pos:
        line_end: 213704
        line_start: 213704
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->rc || (pWriter->nDlidx>0 && pWriter->aDlidx[0].buf.n==0) )
      pos:
        line_end: 213768
        line_start: 213768
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 213771
      start: 213695
    functionDepth: 34
    functionLinenumber: 213695
    functionLinenumberEnd: 213771
    functionName: fts5WriteAppendTerm
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5BufferAppendVarint
    - fts5BufferAppendBlob
    - sqlite3Fts5PutVarint
    - fts5PrefixCompress
    - fts5PutU16
    - fts5WriteBtreeTerm
    - fts5BufferGrow
    - fts5BufferSet
    - assert
    - fts5WriteFlushLeaf
    - MIN
    linkageType: ''
    returnType: void
    signature: "void fts5WriteAppendTerm(\n  Fts5Index *p, \n  Fts5SegWriter *pWriter,\n
      \ int nTerm, const u8 *pTerm \n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fts5WriteFlushLeaf
      Src: /src/nss/lib/sqlite/sqlite3.c:213785,1
    - Dst: fts5PutU16
      Src: /src/nss/lib/sqlite/sqlite3.c:213792,1
    - Dst: fts5WriteDlidxAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:213793,1
    - Dst: fts5BufferAppendVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:213798,1
    - Dst: assert_nc
      Src: /src/nss/lib/sqlite/sqlite3.c:213800,1
    - Dst: fts5BufferAppendVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:213801,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - p
    - pWriter
    - iRowid
    argTypes:
    - Fts5Index*
    - Fts5SegWriter*
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213807
      start: 213776
    functionDepth: 31
    functionLinenumber: 213776
    functionLinenumberEnd: 213807
    functionName: fts5WriteAppendRowid
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5BufferAppendVarint
    - fts5PutU16
    - fts5WriteDlidxAppend
    - fts5WriteFlushLeaf
    - assert_nc
    linkageType: ''
    returnType: void
    signature: "void fts5WriteAppendRowid(\n  Fts5Index *p, \n  Fts5SegWriter *pWriter,\n
      \ i64 iRowid\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:213819,1
    - Dst: fts5GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:213827,1
    - Dst: fts5BufferAppendBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:213829,1
    - Dst: fts5WriteFlushLeaf
      Src: /src/nss/lib/sqlite/sqlite3.c:213832,1
    - Dst: fts5BufferAppendBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:213835,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - p
    - pWriter
    - aData
    - nData
    argTypes:
    - Fts5Index*
    - Fts5SegWriter*
    - u8*
    - int
    assertStmts:
    - condition: ( p->pConfig->pgsz>0 )
      pos:
        line_end: 213818
        line_start: 213818
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 213837
      start: 213809
    functionDepth: 31
    functionLinenumber: 213809
    functionLinenumberEnd: 213837
    functionName: fts5WriteAppendPoslistData
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fts5BufferAppendBlob
    - fts5GetVarint
    - fts5WriteFlushLeaf
    linkageType: ''
    returnType: void
    signature: "void fts5WriteAppendPoslistData(\n  Fts5Index *p, \n  Fts5SegWriter
      *pWriter, \n  const u8 *aData, \n  int nData\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:213851,1
    - Dst: fts5WriteFlushLeaf
      Src: /src/nss/lib/sqlite/sqlite3.c:213853,1
    - Dst: fts5WriteFlushBtree
      Src: /src/nss/lib/sqlite/sqlite3.c:213857,1
    - Dst: fts5BufferFree
      Src: /src/nss/lib/sqlite/sqlite3.c:213860,1
    - Dst: fts5BufferFree
      Src: /src/nss/lib/sqlite/sqlite3.c:213861,1
    - Dst: fts5BufferFree
      Src: /src/nss/lib/sqlite/sqlite3.c:213862,1
    - Dst: fts5BufferFree
      Src: /src/nss/lib/sqlite/sqlite3.c:213863,1
    - Dst: sqlite3Fts5BufferFree
      Src: /src/nss/lib/sqlite/sqlite3.c:213866,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:213868,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - p
    - pWriter
    - pnLeaf
    argTypes:
    - Fts5Index*
    - Fts5SegWriter*
    - int*
    assertStmts:
    - condition: ( pLeaf->pgno>=1 )
      pos:
        line_end: 213850
        line_start: 213850
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 213869
      start: 213843
    functionDepth: 33
    functionLinenumber: 213843
    functionLinenumberEnd: 213869
    functionName: fts5WriteFinish
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5BufferFree
    - assert
    - sqlite3Fts5BufferFree
    - fts5WriteFlushBtree
    - fts5WriteFlushLeaf
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: "void fts5WriteFinish(\n  Fts5Index *p, \n  Fts5SegWriter *pWriter,
      \        /* Writer object */\n  int *pnLeaf                     /* OUT: Number
      of leaf pages in b-tree */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:213878,1
    - Dst: fts5WriteDlidxGrow
      Src: /src/nss/lib/sqlite/sqlite3.c:213881,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:213886,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:213887,1
    - Dst: sqlite3Fts5BufferSize
      Src: /src/nss/lib/sqlite/sqlite3.c:213890,1
    - Dst: sqlite3Fts5BufferSize
      Src: /src/nss/lib/sqlite/sqlite3.c:213891,1
    - Dst: fts5IndexPrepareStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:213895,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:213895,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:213903,1
    - Dst: sqlite3_bind_int
      Src: /src/nss/lib/sqlite/sqlite3.c:213909,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - p
    - pWriter
    - iSegid
    argTypes:
    - Fts5Index*
    - Fts5SegWriter*
    - int
    assertStmts:
    - condition: ( pWriter->writer.pgidx.n==0 )
      pos:
        line_end: 213886
        line_start: 213886
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pWriter->writer.buf.n==0 )
      pos:
        line_end: 213885
        line_start: 213885
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 213911
      start: 213871
    functionDepth: 29
    functionLinenumber: 213871
    functionLinenumberEnd: 213911
    functionName: fts5WriteInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_bind_int
    - sqlite3Fts5BufferSize
    - memset
    - assert
    - sqlite3_mprintf
    - fts5IndexPrepareStmt
    - fts5WriteDlidxGrow
    linkageType: ''
    returnType: void
    signature: "void fts5WriteInit(\n  Fts5Index *p, \n  Fts5SegWriter *pWriter, \n
      \ int iSegid\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:213921,1
    - Dst: FTS5_SEGMENT_ROWID
      Src: /src/nss/lib/sqlite/sqlite3.c:213939,1
    - Dst: fts5LeafRead
      Src: /src/nss/lib/sqlite/sqlite3.c:213940,1
    - Dst: fts5BufferZero
      Src: /src/nss/lib/sqlite/sqlite3.c:213949,1
    - Dst: fts5BufferGrow
      Src: /src/nss/lib/sqlite/sqlite3.c:213950,1
    - Dst: fts5BufferAppendBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:213951,1
    - Dst: fts5BufferAppendVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:213952,1
    - Dst: fts5BufferAppendBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:213953,1
    - Dst: fts5BufferAppendBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:213954,1
    - Dst: fts5PutU16
      Src: /src/nss/lib/sqlite/sqlite3.c:213957,1
    - Dst: fts5BufferAppendVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:213961,1
    - Dst: fts5BufferAppendVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:213967,1
    - Dst: fts5BufferAppendBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:213968,1
    - Dst: fts5DataDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:213974,1
    - Dst: FTS5_SEGMENT_ROWID
      Src: /src/nss/lib/sqlite/sqlite3.c:213974,1
    - Dst: fts5DataWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:213975,1
    - Dst: fts5DataRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:213977,1
    - Dst: fts5BufferFree
      Src: /src/nss/lib/sqlite/sqlite3.c:213981,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 2
    argNames:
    - p
    - pIter
    argTypes:
    - Fts5Index*
    - Fts5Iter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213982
      start: 213918
    functionDepth: 31
    functionLinenumber: 213918
    functionLinenumberEnd: 213982
    functionName: fts5TrimSegments
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5BufferAppendVarint
    - FTS5_SEGMENT_ROWID
    - fts5BufferAppendBlob
    - fts5LeafRead
    - fts5PutU16
    - memset
    - fts5DataWrite
    - fts5DataRelease
    - fts5BufferZero
    - fts5DataDelete
    - fts5BufferFree
    - fts5BufferGrow
    linkageType: ''
    returnType: void
    signature: void fts5TrimSegments(Fts5Index *p, Fts5Iter *pIter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts5WriteAppendPoslistData
      Src: /src/nss/lib/sqlite/sqlite3.c:213990,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - p
    - pCtx
    - pChunk
    - nChunk
    argTypes:
    - Fts5Index*
    - void*
    - u8*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213991
      start: 213984
    functionDepth: 32
    functionLinenumber: 213984
    functionLinenumberEnd: 213991
    functionName: fts5MergeChunkCallback
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5WriteAppendPoslistData
    linkageType: ''
    returnType: void
    signature: "void fts5MergeChunkCallback(\n  Fts5Index *p, \n  void *pCtx, \n  const
      u8 *pChunk, int nChunk\n)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:214016,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:214017,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:214019,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:214020,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:214023,1
    - Dst: fts5WriteInit
      Src: /src/nss/lib/sqlite/sqlite3.c:214027,1
    - Dst: fts5AllocateSegid
      Src: /src/nss/lib/sqlite/sqlite3.c:214031,1
    - Dst: fts5StructureAddLevel
      Src: /src/nss/lib/sqlite/sqlite3.c:214036,1
    - Dst: fts5StructureExtendLevel
      Src: /src/nss/lib/sqlite/sqlite3.c:214039,1
    - Dst: fts5WriteInit
      Src: /src/nss/lib/sqlite/sqlite3.c:214044,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:214058,1
    - Dst: fts5MultiIterNew
      Src: /src/nss/lib/sqlite/sqlite3.c:214059,1
    - Dst: fts5MultiIterEof
      Src: /src/nss/lib/sqlite/sqlite3.c:214060,1
    - Dst: fts5MultiIterNext
      Src: /src/nss/lib/sqlite/sqlite3.c:214061,1
    - Dst: fts5MultiIterTerm
      Src: /src/nss/lib/sqlite/sqlite3.c:214068,1
    - Dst: fts5Memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:214069,1
    - Dst: fts5BufferSet
      Src: /src/nss/lib/sqlite/sqlite3.c:214073,1
    - Dst: fts5WriteAppendTerm
      Src: /src/nss/lib/sqlite/sqlite3.c:214082,1
    - Dst: fts5WriteAppendRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:214088,1
    - Dst: fts5MultiIterRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:214088,1
    - Dst: fts5BufferAppendVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:214092,1
    - Dst: fts5BufferAppendVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:214094,1
    - Dst: fts5BufferAppendVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:214100,1
    - Dst: fts5ChunkIterate
      Src: /src/nss/lib/sqlite/sqlite3.c:214101,1
    - Dst: fts5WriteFinish
      Src: /src/nss/lib/sqlite/sqlite3.c:214107,1
    - Dst: fts5MultiIterEof
      Src: /src/nss/lib/sqlite/sqlite3.c:214109,1
    - Dst: fts5DataRemoveSegment
      Src: /src/nss/lib/sqlite/sqlite3.c:214114,1
    - Dst: memmove
      Src: /src/nss/lib/sqlite/sqlite3.c:214120,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:214130,1
    - Dst: fts5TrimSegments
      Src: /src/nss/lib/sqlite/sqlite3.c:214131,1
    - Dst: fts5MultiIterFree
      Src: /src/nss/lib/sqlite/sqlite3.c:214135,1
    - Dst: fts5BufferFree
      Src: /src/nss/lib/sqlite/sqlite3.c:214136,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 86
    argCount: 4
    argNames:
    - p
    - ppStruct
    - iLvl
    - pnRem
    argTypes:
    - Fts5Index*
    - Fts5Structure**
    - int
    - int*
    assertStmts:
    - condition: ( pSeg->pgnoLast>0 )
      pos:
        line_end: 214129
        line_start: 214129
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iLvl<pStruct->nLevel )
      pos:
        line_end: 214015
        line_start: 214015
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pLvlOut->nSeg>0 )
      pos:
        line_end: 214022
        line_start: 214022
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pLvl->nMerge<=pLvl->nSeg )
      pos:
        line_end: 214016
        line_start: 214016
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iLvl>=0 )
      pos:
        line_end: 214057
        line_start: 214057
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 214138
      start: 213996
    functionDepth: 36
    functionLinenumber: 213996
    functionLinenumberEnd: 214138
    functionName: fts5IndexMergeLevel
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5WriteInit
    - fts5Memcmp
    - fts5MultiIterFree
    - fts5MultiIterEof
    - fts5WriteFinish
    - fts5ChunkIterate
    - fts5TrimSegments
    - assert
    - memset
    - fts5BufferFree
    - fts5AllocateSegid
    - fts5WriteAppendRowid
    - fts5MultiIterRowid
    - memmove
    - fts5MultiIterNext
    - fts5BufferAppendVarint
    - fts5MultiIterTerm
    - fts5StructureExtendLevel
    - fts5BufferSet
    - fts5DataRemoveSegment
    - fts5WriteAppendTerm
    - fts5StructureAddLevel
    - fts5MultiIterNew
    linkageType: ''
    returnType: void
    signature: "void fts5IndexMergeLevel(\n  Fts5Index *p,                   /* FTS5
      backend object */\n  Fts5Structure **ppStruct,       /* IN/OUT: Stucture of
      index */\n  int iLvl,                       /* Level to read input from */\n
      \ int *pnRem                      /* Write up to this many output leaves */\n)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:214160,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:214179,1
    - Dst: fts5IndexMergeLevel
      Src: /src/nss/lib/sqlite/sqlite3.c:214187,1
    - Dst: fts5StructurePromote
      Src: /src/nss/lib/sqlite/sqlite3.c:214189,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 4
    argNames:
    - p
    - ppStruct
    - nPg
    - nMin
    argTypes:
    - Fts5Index*
    - Fts5Structure**
    - int
    - int
    assertStmts:
    - condition: ( pStruct->nLevel>0 )
      pos:
        line_end: 214159
        line_start: 214159
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pStruct->aLevel[iLvl].nSeg==0 )
      pos:
        line_end: 214178
        line_start: 214178
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 214194
      start: 214145
    functionDepth: 37
    functionLinenumber: 214145
    functionLinenumberEnd: 214194
    functionName: fts5IndexMerge
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fts5IndexMergeLevel
    - fts5StructurePromote
    linkageType: ''
    returnType: int
    signature: "int fts5IndexMerge(\n  Fts5Index *p,                   /* FTS5 backend
      object */\n  Fts5Structure **ppStruct,       /* IN/OUT: Current structure of
      index */\n  int nPg,                        /* Pages of work to do */\n  int
      nMin                        /* Minimum number of segments to merge */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fts5IndexMerge
      Src: /src/nss/lib/sqlite/sqlite3.c:214221,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - p
    - ppStruct
    - nLeaf
    argTypes:
    - Fts5Index*
    - Fts5Structure**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214223
      start: 214204
    functionDepth: 38
    functionLinenumber: 214204
    functionLinenumberEnd: 214223
    functionName: fts5IndexAutomerge
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5IndexMerge
    linkageType: ''
    returnType: void
    signature: "void fts5IndexAutomerge(\n  Fts5Index *p,                   /* FTS5
      backend object */\n  Fts5Structure **ppStruct,       /* IN/OUT: Current structure
      of index */\n  int nLeaf                       /* Number of output leaves just
      written */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:214233,1
    - Dst: fts5IndexMergeLevel
      Src: /src/nss/lib/sqlite/sqlite3.c:214235,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:214236,1
    - Dst: fts5StructurePromote
      Src: /src/nss/lib/sqlite/sqlite3.c:214237,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - p
    - ppStruct
    argTypes:
    - Fts5Index*
    - Fts5Structure**
    assertStmts:
    - condition: ( p->rc!=SQLITE_OK || pStruct->nLevel>0 )
      pos:
        line_end: 214232
        line_start: 214232
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->rc!=SQLITE_OK || pStruct->nLevel>(iLvl+1) )
      pos:
        line_end: 214235
        line_start: 214235
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 214241
      start: 214225
    functionDepth: 37
    functionLinenumber: 214225
    functionLinenumberEnd: 214241
    functionName: fts5IndexCrisismerge
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fts5IndexMergeLevel
    - fts5StructurePromote
    linkageType: ''
    returnType: void
    signature: "void fts5IndexCrisismerge(\n  Fts5Index *p,                   /* FTS5
      backend object */\n  Fts5Structure **ppStruct        /* IN/OUT: Current structure
      of index */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - Fts5Index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214247
      start: 214243
    functionDepth: 0
    functionLinenumber: 214243
    functionLinenumberEnd: 214247
    functionName: fts5IndexReturn
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fts5IndexReturn(Fts5Index *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fts5GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:214263,1
    - Dst: fts5GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:214266,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - aBuf
    - nMax
    argTypes:
    - u8*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214272
      start: 214260
    functionDepth: 1
    functionLinenumber: 214260
    functionLinenumberEnd: 214272
    functionName: fts5PoslistPrefix
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5GetVarint32
    linkageType: ''
    returnType: int
    signature: int fts5PoslistPrefix(const u8 *aBuf, int nMax)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: fts5StructureRead
      Src: /src/nss/lib/sqlite/sqlite3.c:214289,1
    - Dst: fts5AllocateSegid
      Src: /src/nss/lib/sqlite/sqlite3.c:214290,1
    - Dst: fts5StructureInvalidate
      Src: /src/nss/lib/sqlite/sqlite3.c:214291,1
    - Dst: fts5WriteInit
      Src: /src/nss/lib/sqlite/sqlite3.c:214301,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:214308,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:214309,1
    - Dst: sqlite3Fts5HashScanInit
      Src: /src/nss/lib/sqlite/sqlite3.c:214314,1
    - Dst: sqlite3Fts5HashScanEof
      Src: /src/nss/lib/sqlite/sqlite3.c:214316,1
    - Dst: sqlite3Fts5HashScanEntry
      Src: /src/nss/lib/sqlite/sqlite3.c:214322,1
    - Dst: fts5WriteAppendTerm
      Src: /src/nss/lib/sqlite/sqlite3.c:214323,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:214323,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:214326,1
    - Dst: fts5BufferSafeAppendBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:214329,1
    - Dst: fts5GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:214339,1
    - Dst: fts5PutU16
      Src: /src/nss/lib/sqlite/sqlite3.c:214343,1
    - Dst: sqlite3Fts5PutVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:214344,1
    - Dst: fts5WriteDlidxAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:214346,1
    - Dst: sqlite3Fts5PutVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:214349,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:214351,1
    - Dst: fts5WriteFlushLeaf
      Src: /src/nss/lib/sqlite/sqlite3.c:214363,1
    - Dst: fts5GetPoslistSize
      Src: /src/nss/lib/sqlite/sqlite3.c:214368,1
    - Dst: fts5BufferSafeAppendBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:214373,1
    - Dst: fts5PoslistPrefix
      Src: /src/nss/lib/sqlite/sqlite3.c:214386,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:214388,1
    - Dst: fts5BufferSafeAppendBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:214389,1
    - Dst: fts5WriteFlushLeaf
      Src: /src/nss/lib/sqlite/sqlite3.c:214392,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:214404,1
    - Dst: sqlite3Fts5HashScanNext
      Src: /src/nss/lib/sqlite/sqlite3.c:214405,1
    - Dst: sqlite3Fts5HashClear
      Src: /src/nss/lib/sqlite/sqlite3.c:214407,1
    - Dst: fts5WriteFinish
      Src: /src/nss/lib/sqlite/sqlite3.c:214408,1
    - Dst: fts5StructureAddLevel
      Src: /src/nss/lib/sqlite/sqlite3.c:214413,1
    - Dst: fts5StructureExtendLevel
      Src: /src/nss/lib/sqlite/sqlite3.c:214415,1
    - Dst: fts5StructurePromote
      Src: /src/nss/lib/sqlite/sqlite3.c:214423,1
    - Dst: fts5IndexAutomerge
      Src: /src/nss/lib/sqlite/sqlite3.c:214426,1
    - Dst: fts5IndexCrisismerge
      Src: /src/nss/lib/sqlite/sqlite3.c:214427,1
    - Dst: fts5StructureWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:214428,1
    - Dst: fts5StructureRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:214429,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 96
    argCount: 1
    argNames:
    - p
    argTypes:
    - Fts5Index*
    assertStmts:
    - condition: ( p->rc || pBuf->nSpace>=(pgsz + FTS5_DATA_PADDING) )
      pos:
        line_end: 214307
        line_start: 214307
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( n>0 )
      pos:
        line_end: 214387
        line_start: 214387
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pBuf->n<=pBuf->nSpace )
      pos:
        line_end: 214403
        line_start: 214403
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( writer.bFirstRowidInPage==0 )
      pos:
        line_end: 214325
        line_start: 214325
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pBuf->n<=pBuf->nSpace )
      pos:
        line_end: 214350
        line_start: 214350
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->rc || pPgidx->nSpace>=(pgsz + FTS5_DATA_PADDING) )
      pos:
        line_end: 214308
        line_start: 214308
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 214430
      start: 214281
    functionDepth: 39
    functionLinenumber: 214281
    functionLinenumberEnd: 214430
    functionName: fts5FlushOneHash
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5StructureRelease
    - fts5WriteInit
    - fts5WriteDlidxAppend
    - fts5StructureRead
    - sqlite3Fts5HashScanEntry
    - fts5StructureWrite
    - strlen
    - fts5WriteFinish
    - fts5BufferSafeAppendBlob
    - fts5IndexCrisismerge
    - assert
    - fts5WriteFlushLeaf
    - fts5AllocateSegid
    - sqlite3Fts5HashScanEof
    - sqlite3Fts5HashScanInit
    - fts5GetPoslistSize
    - sqlite3Fts5PutVarint
    - fts5PutU16
    - fts5GetVarint
    - fts5StructureInvalidate
    - fts5IndexAutomerge
    - fts5StructureExtendLevel
    - sqlite3Fts5HashClear
    - fts5WriteAppendTerm
    - fts5StructureAddLevel
    - fts5PoslistPrefix
    - sqlite3Fts5HashScanNext
    - fts5StructurePromote
    linkageType: ''
    returnType: void
    signature: void fts5FlushOneHash(Fts5Index *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:214438,1
    - Dst: fts5FlushOneHash
      Src: /src/nss/lib/sqlite/sqlite3.c:214440,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - Fts5Index*
    assertStmts:
    - condition: ( p->pHash )
      pos:
        line_end: 214437
        line_start: 214437
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 214442
      start: 214435
    functionDepth: 40
    functionLinenumber: 214435
    functionLinenumberEnd: 214442
    functionName: fts5IndexFlush
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fts5FlushOneHash
    linkageType: ''
    returnType: void
    signature: void fts5IndexFlush(Fts5Index *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fts5StructureRef
      Src: /src/nss/lib/sqlite/sqlite3.c:214467,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:214470,1
    - Dst: sqlite3Fts5MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:214474,1
    - Dst: sqlite3Fts5MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:214483,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:214498,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 2
    argNames:
    - p
    - pStruct
    argTypes:
    - Fts5Index*
    - Fts5Structure*
    assertStmts:
    - condition: ( pStruct->aLevel[i].nMerge<=nThis )
      pos:
        line_end: 214469
        line_start: 214469
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 214504
      start: 214444
    functionDepth: 7
    functionLinenumber: 214444
    functionLinenumberEnd: 214504
    functionName: fts5IndexOptimizeStruct
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3Fts5MallocZero
    - sqlite3_free
    - fts5StructureRef
    linkageType: ''
    returnType: Fts5Structure
    signature: "Fts5Structure *fts5IndexOptimizeStruct(\n  Fts5Index *p, \n  Fts5Structure
      *pStruct\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:214510,1
    - Dst: fts5IndexFlush
      Src: /src/nss/lib/sqlite/sqlite3.c:214511,1
    - Dst: fts5StructureRead
      Src: /src/nss/lib/sqlite/sqlite3.c:214512,1
    - Dst: fts5StructureInvalidate
      Src: /src/nss/lib/sqlite/sqlite3.c:214513,1
    - Dst: fts5IndexOptimizeStruct
      Src: /src/nss/lib/sqlite/sqlite3.c:214516,1
    - Dst: fts5StructureRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:214518,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:214520,1
    - Dst: fts5IndexMergeLevel
      Src: /src/nss/lib/sqlite/sqlite3.c:214526,1
    - Dst: fts5StructureWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:214529,1
    - Dst: fts5StructureRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:214530,1
    - Dst: fts5IndexReturn
      Src: /src/nss/lib/sqlite/sqlite3.c:214533,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - p
    argTypes:
    - Fts5Index*
    assertStmts:
    - condition: ( p->rc==SQLITE_OK )
      pos:
        line_end: 214509
        line_start: 214509
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pNew==0 || pNew->nSegment>0 )
      pos:
        line_end: 214519
        line_start: 214519
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 214534
      start: 214506
    functionDepth: 41
    functionLinenumber: 214506
    functionLinenumberEnd: 214534
    functionName: sqlite3Fts5IndexOptimize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5IndexMergeLevel
    - fts5StructureRelease
    - fts5IndexOptimizeStruct
    - fts5StructureRead
    - assert
    - fts5IndexFlush
    - fts5IndexReturn
    - fts5StructureInvalidate
    - fts5StructureWrite
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5IndexOptimize(Fts5Index *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fts5StructureRead
      Src: /src/nss/lib/sqlite/sqlite3.c:214541,1
    - Dst: fts5StructureInvalidate
      Src: /src/nss/lib/sqlite/sqlite3.c:214544,1
    - Dst: fts5IndexOptimizeStruct
      Src: /src/nss/lib/sqlite/sqlite3.c:214546,1
    - Dst: fts5StructureRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:214547,1
    - Dst: fts5IndexMerge
      Src: /src/nss/lib/sqlite/sqlite3.c:214553,1
    - Dst: fts5StructureWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:214554,1
    - Dst: fts5StructureRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:214557,1
    - Dst: fts5IndexReturn
      Src: /src/nss/lib/sqlite/sqlite3.c:214559,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - p
    - nMerge
    argTypes:
    - Fts5Index*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214560
      start: 214540
    functionDepth: 38
    functionLinenumber: 214540
    functionLinenumberEnd: 214560
    functionName: sqlite3Fts5IndexMerge
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5StructureRelease
    - fts5IndexOptimizeStruct
    - fts5StructureRead
    - fts5IndexMerge
    - fts5IndexReturn
    - fts5StructureInvalidate
    - fts5StructureWrite
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5IndexMerge(Fts5Index *p, int nMerge)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAM
      Src: /src/nss/lib/sqlite/sqlite3.c:214568,1
    - Dst: fts5BufferAppendVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:214569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - p
    - iDelta
    - pUnused
    - pBuf
    argTypes:
    - Fts5Index*
    - i64
    - Fts5Iter*
    - Fts5Buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214570
      start: 214562
    functionDepth: 1
    functionLinenumber: 214562
    functionLinenumberEnd: 214570
    functionName: fts5AppendRowid
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5BufferAppendVarint
    - UNUSED_PARAM
    linkageType: ''
    returnType: void
    signature: "void fts5AppendRowid(\n  Fts5Index *p,\n  i64 iDelta,\n  Fts5Iter
      *pUnused,\n  Fts5Buffer *pBuf\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:214580,1
    - Dst: fts5BufferGrow
      Src: /src/nss/lib/sqlite/sqlite3.c:214581,1
    - Dst: fts5BufferSafeAppendVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:214582,1
    - Dst: fts5BufferSafeAppendVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:214583,1
    - Dst: fts5BufferSafeAppendBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:214584,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:214585,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - p
    - iDelta
    - pMulti
    - pBuf
    argTypes:
    - Fts5Index*
    - i64
    - Fts5Iter*
    - Fts5Buffer*
    assertStmts:
    - condition: ( nData>0 )
      pos:
        line_end: 214579
        line_start: 214579
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 214587
      start: 214572
    functionDepth: 1
    functionLinenumber: 214572
    functionLinenumberEnd: 214587
    functionName: fts5AppendPoslist
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5BufferSafeAppendBlob
    - assert
    - memset
    - fts5BufferSafeAppendVarint
    - fts5BufferGrow
    linkageType: ''
    returnType: void
    signature: "void fts5AppendPoslist(\n  Fts5Index *p,\n  i64 iDelta,\n  Fts5Iter
      *pMulti,\n  Fts5Buffer *pBuf\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:214593,1
    - Dst: fts5GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:214599,1
    - Dst: fts5GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:214605,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - pIter
    argTypes:
    - Fts5DoclistIter*
    assertStmts:
    - condition: ( pIter->aPoslist )
      pos:
        line_end: 214592
        line_start: 214592
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 214614
      start: 214590
    functionDepth: 1
    functionLinenumber: 214590
    functionLinenumberEnd: 214614
    functionName: fts5DoclistIterNext
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fts5GetVarint32
    - fts5GetVarint
    linkageType: ''
    returnType: void
    signature: void fts5DoclistIterNext(Fts5DoclistIter *pIter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:214620,1
    - Dst: fts5DoclistIterNext
      Src: /src/nss/lib/sqlite/sqlite3.c:214623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - pBuf
    - pIter
    argTypes:
    - Fts5Buffer*
    - Fts5DoclistIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214624
      start: 214616
    functionDepth: 2
    functionLinenumber: 214616
    functionLinenumberEnd: 214624
    functionName: fts5DoclistIterInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - fts5DoclistIterNext
    linkageType: ''
    returnType: void
    signature: "void fts5DoclistIterInit(\n  Fts5Buffer *pBuf, \n  Fts5DoclistIter
      *pIter\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:214638,1
    - Dst: fts5BufferSafeAppendVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:214639,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - pBuf
    - piLastRowid
    - iRowid
    argTypes:
    - Fts5Buffer*
    - i64*
    - i64
    assertStmts:
    - condition: ( pBuf->n!=0 || (*piLastRowid)==0 )
      pos:
        line_end: 214637
        line_start: 214637
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 214641
      start: 214633
    functionDepth: 1
    functionLinenumber: 214633
    functionLinenumberEnd: 214641
    functionName: fts5MergeAppendDocid
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fts5BufferSafeAppendVarint
    linkageType: ''
    returnType: void
    signature: "void fts5MergeAppendDocid(\n  Fts5Buffer *pBuf,               /* Buffer
      to write to */\n  i64 *piLastRowid,               /* IN/OUT: Previous rowid
      written (if any) */\n  i64 iRowid                      /* Rowid to append */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - pBuf
    - ','
    - iLastRowid
    - ','
    - iRowid
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214649
      start: 214644
    functionDepth: 0
    functionLinenumber: 214644
    functionLinenumberEnd: 214649
    functionName: fts5MergeAppendDocid
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fts5MergeAppendDocid(pBuf, iLastRowid, iRowid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - Fts5Buffer*
    - Fts5Buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214657
      start: 214653
    functionDepth: 0
    functionLinenumber: 214653
    functionLinenumberEnd: 214657
    functionName: fts5BufferSwap
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fts5BufferSwap(Fts5Buffer *p1, Fts5Buffer *p2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:214665,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - pBuf
    - piOff
    - piRowid
    argTypes:
    - Fts5Buffer*
    - int*
    - i64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214668
      start: 214659
    functionDepth: 1
    functionLinenumber: 214659
    functionLinenumberEnd: 214668
    functionName: fts5NextRowid
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5GetVarint
    linkageType: ''
    returnType: void
    signature: void fts5NextRowid(Fts5Buffer *pBuf, int *piOff, i64 *piRowid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:214686,1
    - Dst: sqlite3Fts5BufferSize
      Src: /src/nss/lib/sqlite/sqlite3.c:214687,1
    - Dst: fts5NextRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:214690,1
    - Dst: fts5NextRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:214691,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:214694,1
    - Dst: fts5BufferSafeAppendVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:214695,1
    - Dst: fts5NextRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:214697,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:214699,1
    - Dst: fts5BufferSafeAppendVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:214700,1
    - Dst: fts5NextRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:214703,1
    - Dst: fts5NextRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:214705,1
    - Dst: fts5BufferSwap
      Src: /src/nss/lib/sqlite/sqlite3.c:214709,1
    - Dst: fts5BufferFree
      Src: /src/nss/lib/sqlite/sqlite3.c:214710,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 3
    argNames:
    - p
    - p1
    - p2
    argTypes:
    - Fts5Index*
    - Fts5Buffer*
    - Fts5Buffer*
    assertStmts:
    - condition: ( iOut==0 || iRowid1>iOut )
      pos:
        line_end: 214693
        line_start: 214693
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iOut==0 || iRowid2>iOut )
      pos:
        line_end: 214698
        line_start: 214698
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 214711
      start: 214674
    functionDepth: 8
    functionLinenumber: 214674
    functionLinenumberEnd: 214711
    functionName: fts5MergeRowidLists
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5NextRowid
    - sqlite3Fts5BufferSize
    - fts5BufferSwap
    - memset
    - assert
    - fts5BufferSafeAppendVarint
    - fts5BufferFree
    linkageType: ''
    returnType: void
    signature: "void fts5MergeRowidLists(\n  Fts5Index *p,                   /* FTS5
      backend object */\n  Fts5Buffer *p1,                 /* First list to merge
      */\n  Fts5Buffer *p2                  /* Second list to merge */\n)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5BufferSize
      Src: /src/nss/lib/sqlite/sqlite3.c:214745,1
    - Dst: fts5DoclistIterInit
      Src: /src/nss/lib/sqlite/sqlite3.c:214746,1
    - Dst: fts5DoclistIterInit
      Src: /src/nss/lib/sqlite/sqlite3.c:214747,1
    - Dst: fts5MergeAppendDocid
      Src: /src/nss/lib/sqlite/sqlite3.c:214752,1
    - Dst: fts5BufferSafeAppendBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:214753,1
    - Dst: fts5DoclistIterNext
      Src: /src/nss/lib/sqlite/sqlite3.c:214754,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:214756,1
    - Dst: fts5MergeAppendDocid
      Src: /src/nss/lib/sqlite/sqlite3.c:214760,1
    - Dst: fts5BufferSafeAppendBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:214761,1
    - Dst: fts5DoclistIterNext
      Src: /src/nss/lib/sqlite/sqlite3.c:214762,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:214764,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:214779,1
    - Dst: fts5MergeAppendDocid
      Src: /src/nss/lib/sqlite/sqlite3.c:214781,1
    - Dst: fts5BufferZero
      Src: /src/nss/lib/sqlite/sqlite3.c:214782,1
    - Dst: sqlite3Fts5BufferSize
      Src: /src/nss/lib/sqlite/sqlite3.c:214783,1
    - Dst: sqlite3Fts5PoslistNext64
      Src: /src/nss/lib/sqlite/sqlite3.c:214786,1
    - Dst: sqlite3Fts5PoslistNext64
      Src: /src/nss/lib/sqlite/sqlite3.c:214787,1
    - Dst: assert_nc
      Src: /src/nss/lib/sqlite/sqlite3.c:214788,1
    - Dst: sqlite3Fts5PoslistSafeAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:214791,1
    - Dst: sqlite3Fts5PoslistNext64
      Src: /src/nss/lib/sqlite/sqlite3.c:214792,1
    - Dst: sqlite3Fts5PoslistSafeAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:214794,1
    - Dst: sqlite3Fts5PoslistNext64
      Src: /src/nss/lib/sqlite/sqlite3.c:214795,1
    - Dst: sqlite3Fts5PoslistSafeAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:214801,1
    - Dst: sqlite3Fts5PoslistNext64
      Src: /src/nss/lib/sqlite/sqlite3.c:214803,1
    - Dst: assert_nc
      Src: /src/nss/lib/sqlite/sqlite3.c:214806,1
    - Dst: sqlite3Fts5PoslistSafeAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:214807,1
    - Dst: sqlite3Fts5PoslistNext64
      Src: /src/nss/lib/sqlite/sqlite3.c:214808,1
    - Dst: sqlite3Fts5PoslistSafeAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:214816,1
    - Dst: assert_nc
      Src: /src/nss/lib/sqlite/sqlite3.c:214821,1
    - Dst: sqlite3Fts5PoslistSafeAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:214822,1
    - Dst: fts5BufferSafeAppendBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:214827,1
    - Dst: fts5BufferSafeAppendVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:214831,1
    - Dst: fts5BufferSafeAppendBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:214832,1
    - Dst: fts5DoclistIterNext
      Src: /src/nss/lib/sqlite/sqlite3.c:214833,1
    - Dst: fts5DoclistIterNext
      Src: /src/nss/lib/sqlite/sqlite3.c:214834,1
    - Dst: assert_nc
      Src: /src/nss/lib/sqlite/sqlite3.c:214835,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:214837,1
    - Dst: fts5MergeAppendDocid
      Src: /src/nss/lib/sqlite/sqlite3.c:214842,1
    - Dst: fts5BufferSafeAppendBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:214843,1
    - Dst: fts5MergeAppendDocid
      Src: /src/nss/lib/sqlite/sqlite3.c:214846,1
    - Dst: fts5BufferSafeAppendBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:214847,1
    - Dst: assert_nc
      Src: /src/nss/lib/sqlite/sqlite3.c:214849,1
    - Dst: fts5BufferSet
      Src: /src/nss/lib/sqlite/sqlite3.c:214851,1
    - Dst: fts5BufferFree
      Src: /src/nss/lib/sqlite/sqlite3.c:214852,1
    - Dst: fts5BufferFree
      Src: /src/nss/lib/sqlite/sqlite3.c:214853,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 95
    argCount: 3
    argNames:
    - p
    - p1
    - p2
    argTypes:
    - Fts5Index*
    - Fts5Buffer*
    - Fts5Buffer*
    assertStmts:
    - condition: ( out.n<=((i1.aPoslist-p1->p) + (i2.aPoslist-p2->p)+9+10+10) )
      pos:
        line_end: 214763
        line_start: 214763
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( out.n<=((i1.aPoslist-p1->p) + (i2.aPoslist-p2->p)+9+10+10) )
      pos:
        line_end: 214836
        line_start: 214836
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( out.n<=((i1.aPoslist-p1->p) + (i2.aPoslist-p2->p)+9+10+10) )
      pos:
        line_end: 214755
        line_start: 214755
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 214855
      start: 214721
    functionDepth: 8
    functionLinenumber: 214721
    functionLinenumberEnd: 214855
    functionName: fts5MergePrefixLists
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5BufferSize
    - fts5BufferSafeAppendBlob
    - fts5DoclistIterNext
    - fts5MergeAppendDocid
    - fts5DoclistIterInit
    - assert
    - memset
    - sqlite3Fts5PoslistSafeAppend
    - sqlite3Fts5PoslistNext64
    - fts5BufferZero
    - fts5BufferSafeAppendVarint
    - fts5BufferSet
    - fts5BufferFree
    - assert_nc
    linkageType: ''
    returnType: void
    signature: "void fts5MergePrefixLists(\n  Fts5Index *p,                   /* FTS5
      backend object */\n  Fts5Buffer *p1,                 /* First list to merge
      */\n  Fts5Buffer *p2                  /* Second list to merge */\n)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fts5IdxMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:214879,1
    - Dst: fts5StructureRead
      Src: /src/nss/lib/sqlite/sqlite3.c:214880,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:214893,1
    - Dst: fts5MultiIterNew
      Src: /src/nss/lib/sqlite/sqlite3.c:214894,1
    - Dst: fts5IterSetOutputCb
      Src: /src/nss/lib/sqlite/sqlite3.c:214895,1
    - Dst: fts5MultiIterEof
      Src: /src/nss/lib/sqlite/sqlite3.c:214897,1
    - Dst: fts5MultiIterNext2
      Src: /src/nss/lib/sqlite/sqlite3.c:214898,1
    - Dst: Fts5Iter*::xSetOutputs
      Src: /src/nss/lib/sqlite/sqlite3.c:214903,1
    - Dst: assert_nc
      Src: /src/nss/lib/sqlite/sqlite3.c:214905,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:214905,1
    - Dst: MIN
      Src: /src/nss/lib/sqlite/sqlite3.c:214905,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:214907,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:214914,1
    - Dst: fts5BufferSwap
      Src: /src/nss/lib/sqlite/sqlite3.c:214916,1
    - Dst: fts5BufferZero
      Src: /src/nss/lib/sqlite/sqlite3.c:214917,1
    - Dst: xMerge
      Src: /src/nss/lib/sqlite/sqlite3.c:214919,1
    - Dst: fts5BufferZero
      Src: /src/nss/lib/sqlite/sqlite3.c:214920,1
    - Dst: xAppend
      Src: /src/nss/lib/sqlite/sqlite3.c:214926,1
    - Dst: xMerge
      Src: /src/nss/lib/sqlite/sqlite3.c:214932,1
    - Dst: fts5BufferFree
      Src: /src/nss/lib/sqlite/sqlite3.c:214934,1
    - Dst: fts5MultiIterFree
      Src: /src/nss/lib/sqlite/sqlite3.c:214936,1
    - Dst: fts5IdxMalloc
      Src: /src/nss/lib/sqlite/sqlite3.c:214938,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:214942,1
    - Dst: fts5MultiIterNew2
      Src: /src/nss/lib/sqlite/sqlite3.c:214943,1
    - Dst: fts5BufferFree
      Src: /src/nss/lib/sqlite/sqlite3.c:214945,1
    - Dst: fts5StructureRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:214948,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:214949,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 58
    argCount: 6
    argNames:
    - p
    - bDesc
    - pToken
    - nToken
    - pColset
    - ppIter
    argTypes:
    - Fts5Index*
    - int
    - u8*
    - int
    - Fts5Colset*
    - Fts5Iter**
    assertStmts:
    - condition: ( i<nBuf )
      pos:
        line_end: 214913
        line_start: 214913
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 214950
      start: 214857
    functionDepth: 36
    functionLinenumber: 214857
    functionLinenumberEnd: 214950
    functionName: fts5SetupPrefixIter
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5StructureRelease
    - fts5StructureRead
    - fts5MultiIterNew2
    - fts5MultiIterFree
    - xAppend
    - fts5MultiIterNext2
    - fts5MultiIterEof
    - memcpy
    - Fts5Iter*::xSetOutputs
    - memset
    - assert
    - memcmp
    - fts5BufferFree
    - assert_nc
    - fts5BufferSwap
    - xMerge
    - sqlite3_free
    - fts5IdxMalloc
    - fts5IterSetOutputCb
    - fts5BufferZero
    - MIN
    - fts5MultiIterNew
    linkageType: ''
    returnType: void
    signature: "void fts5SetupPrefixIter(\n  Fts5Index *p,                   /* Index
      to read from */\n  int bDesc,                      /* True for \"ORDER BY rowid
      DESC\" */\n  const u8 *pToken,               /* Buffer containing prefix to
      match */\n  int nToken,                     /* Size of buffer pToken in bytes
      */\n  Fts5Colset *pColset,            /* Restrict matches to these columns */\n
      \ Fts5Iter **ppIter          /* OUT: New iterator */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:214958,1
    - Dst: sqlite3Fts5HashNew
      Src: /src/nss/lib/sqlite/sqlite3.c:214962,1
    - Dst: fts5IndexFlush
      Src: /src/nss/lib/sqlite/sqlite3.c:214970,1
    - Dst: fts5IndexReturn
      Src: /src/nss/lib/sqlite/sqlite3.c:214975,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - p
    - bDelete
    - iRowid
    argTypes:
    - Fts5Index*
    - int
    - i64
    assertStmts:
    - condition: ( p->rc==SQLITE_OK )
      pos:
        line_end: 214957
        line_start: 214957
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 214976
      start: 214957
    functionDepth: 41
    functionLinenumber: 214957
    functionLinenumberEnd: 214976
    functionName: sqlite3Fts5IndexBeginWrite
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fts5IndexReturn
    - fts5IndexFlush
    - sqlite3Fts5HashNew
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5IndexBeginWrite(Fts5Index *p, int bDelete, i64 iRowid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:214982,1
    - Dst: fts5IndexFlush
      Src: /src/nss/lib/sqlite/sqlite3.c:214983,1
    - Dst: fts5CloseReader
      Src: /src/nss/lib/sqlite/sqlite3.c:214984,1
    - Dst: fts5IndexReturn
      Src: /src/nss/lib/sqlite/sqlite3.c:214985,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - Fts5Index*
    assertStmts:
    - condition: ( p->rc==SQLITE_OK )
      pos:
        line_end: 214981
        line_start: 214981
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 214986
      start: 214981
    functionDepth: 41
    functionLinenumber: 214981
    functionLinenumberEnd: 214986
    functionName: sqlite3Fts5IndexSync
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fts5IndexReturn
    - fts5IndexFlush
    - fts5CloseReader
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5IndexSync(Fts5Index *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts5CloseReader
      Src: /src/nss/lib/sqlite/sqlite3.c:214995,1
    - Dst: fts5IndexDiscardData
      Src: /src/nss/lib/sqlite/sqlite3.c:214996,1
    - Dst: fts5StructureInvalidate
      Src: /src/nss/lib/sqlite/sqlite3.c:214997,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - Fts5Index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215000
      start: 214994
    functionDepth: 28
    functionLinenumber: 214994
    functionLinenumberEnd: 215000
    functionName: sqlite3Fts5IndexRollback
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5StructureInvalidate
    - fts5CloseReader
    - fts5IndexDiscardData
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5IndexRollback(Fts5Index *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts5StructureInvalidate
      Src: /src/nss/lib/sqlite/sqlite3.c:215009,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:215010,1
    - Dst: fts5DataWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:215011,1
    - Dst: fts5StructureWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:215012,1
    - Dst: fts5IndexReturn
      Src: /src/nss/lib/sqlite/sqlite3.c:215013,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - Fts5Index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215014
      start: 215007
    functionDepth: 31
    functionLinenumber: 215007
    functionLinenumberEnd: 215014
    functionName: sqlite3Fts5IndexReinit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - fts5DataWrite
    - fts5IndexReturn
    - fts5StructureInvalidate
    - fts5StructureWrite
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5IndexReinit(Fts5Index *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:215032,1
    - Dst: sqlite3Fts5Mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:215036,1
    - Dst: sqlite3Fts5CreateTable
      Src: /src/nss/lib/sqlite/sqlite3.c:215038,1
    - Dst: sqlite3Fts5CreateTable
      Src: /src/nss/lib/sqlite/sqlite3.c:215042,1
    - Dst: sqlite3Fts5IndexReinit
      Src: /src/nss/lib/sqlite/sqlite3.c:215048,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:215053,1
    - Dst: sqlite3Fts5IndexClose
      Src: /src/nss/lib/sqlite/sqlite3.c:215055,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - pConfig
    - bCreate
    - pp
    - pzErr
    argTypes:
    - Fts5Config*
    - int
    - Fts5Index**
    - char**
    assertStmts:
    - condition: ( rc!=SQLITE_OK || p->rc==SQLITE_OK )
      pos:
        line_end: 215052
        line_start: 215052
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 215059
      start: 215023
    functionDepth: 32
    functionLinenumber: 215023
    functionLinenumberEnd: 215059
    functionName: sqlite3Fts5IndexOpen
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5Mprintf
    - sqlite3Fts5CreateTable
    - sqlite3Fts5IndexClose
    - sqlite3Fts5MallocZero
    - assert
    - sqlite3Fts5IndexReinit
    linkageType: ''
    returnType: int
    signature: "int sqlite3Fts5IndexOpen(\n  Fts5Config *pConfig, \n  int bCreate,
      \n  Fts5Index **pp,\n  char **pzErr\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:215067,1
    - Dst: fts5StructureInvalidate
      Src: /src/nss/lib/sqlite/sqlite3.c:215068,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:215069,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:215070,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:215071,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:215072,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:215073,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:215074,1
    - Dst: sqlite3Fts5HashFree
      Src: /src/nss/lib/sqlite/sqlite3.c:215075,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:215076,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:215077,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - p
    argTypes:
    - Fts5Index*
    assertStmts:
    - condition: ( p->pReader==0 )
      pos:
        line_end: 215066
        line_start: 215066
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 215080
      start: 215064
    functionDepth: 26
    functionLinenumber: 215064
    functionLinenumberEnd: 215080
    functionName: sqlite3Fts5IndexClose
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3Fts5HashFree
    - sqlite3_finalize
    - assert
    - fts5StructureInvalidate
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5IndexClose(Fts5Index *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 3
    argNames:
    - p
    - nByte
    - nChar
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215104
      start: 215087
    functionDepth: 0
    functionLinenumber: 215087
    functionLinenumberEnd: 215104
    functionName: sqlite3Fts5IndexCharlenToBytelen
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int sqlite3Fts5IndexCharlenToBytelen(\n  const char *p, \n  int nByte,
      \n  int nChar\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - pIn
    - nIn
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215120
      start: 215110
    functionDepth: 0
    functionLinenumber: 215110
    functionLinenumberEnd: 215120
    functionName: fts5IndexCharlen
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fts5IndexCharlen(const char *pIn, int nIn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:215142,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:215143,1
    - Dst: sqlite3Fts5HashWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:215146,1
    - Dst: sqlite3Fts5IndexCharlenToBytelen
      Src: /src/nss/lib/sqlite/sqlite3.c:215152,1
    - Dst: sqlite3Fts5HashWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:215154,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 5
    argNames:
    - p
    - iCol
    - iPos
    - pToken
    - nToken
    argTypes:
    - Fts5Index*
    - int
    - int
    - char*
    - int
    assertStmts:
    - condition: ( p->rc==SQLITE_OK )
      pos:
        line_end: 215141
        line_start: 215141
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (iCol<0)==p->bDelete )
      pos:
        line_end: 215142
        line_start: 215142
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 215162
      start: 215132
    functionDepth: 8
    functionLinenumber: 215132
    functionLinenumberEnd: 215162
    functionName: sqlite3Fts5IndexWrite
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3Fts5HashWrite
    - sqlite3Fts5IndexCharlenToBytelen
    linkageType: ''
    returnType: int
    signature: "int sqlite3Fts5IndexWrite(\n  Fts5Index *p,                   /* Index
      to write to */\n  int iCol,                       /* Column token appears in
      (-ve -> delete) */\n  int iPos,                       /* Position of token within
      column */\n  const char *pToken, int nToken  /* Token to add or remove to or
      from index */\n)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:215180,1
    - Dst: sqlite3Fts5BufferSize
      Src: /src/nss/lib/sqlite/sqlite3.c:215182,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:215184,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:215198,1
    - Dst: fts5IndexCharlen
      Src: /src/nss/lib/sqlite/sqlite3.c:215203,1
    - Dst: fts5StructureRead
      Src: /src/nss/lib/sqlite/sqlite3.c:215211,1
    - Dst: fts5MultiIterNew
      Src: /src/nss/lib/sqlite/sqlite3.c:215214,1
    - Dst: fts5StructureRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:215217,1
    - Dst: fts5SetupPrefixIter
      Src: /src/nss/lib/sqlite/sqlite3.c:215223,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:215224,1
    - Dst: fts5IterSetOutputCb
      Src: /src/nss/lib/sqlite/sqlite3.c:215225,1
    - Dst: Fts5Iter*::xSetOutputs
      Src: /src/nss/lib/sqlite/sqlite3.c:215228,1
    - Dst: sqlite3Fts5IterClose
      Src: /src/nss/lib/sqlite/sqlite3.c:215233,1
    - Dst: fts5CloseReader
      Src: /src/nss/lib/sqlite/sqlite3.c:215235,1
    - Dst: sqlite3Fts5BufferFree
      Src: /src/nss/lib/sqlite/sqlite3.c:215239,1
    - Dst: fts5IndexReturn
      Src: /src/nss/lib/sqlite/sqlite3.c:215241,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 6
    argNames:
    - p
    - pToken
    - nToken
    - flags
    - pColset
    - ppIter
    argTypes:
    - Fts5Index*
    - char*
    - int
    - int
    - Fts5Colset*
    - Fts5IndexIter**
    assertStmts:
    - condition: ( (flags & FTS5INDEX_QUERY_SCAN)==0 || flags==FTS5INDEX_QUERY_SCAN
        )
      pos:
        line_end: 215179
        line_start: 215179
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( flags & FTS5INDEX_QUERY_PREFIX )
      pos:
        line_end: 215197
        line_start: 215197
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->rc!=SQLITE_OK || pRet->pColset==0 )
      pos:
        line_end: 215223
        line_start: 215223
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 215242
      start: 215168
    functionDepth: 37
    functionLinenumber: 215168
    functionLinenumberEnd: 215242
    functionName: sqlite3Fts5IndexQuery
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - fts5IndexCharlen
    - memcpy
    - fts5StructureRelease
    - sqlite3Fts5IterClose
    - fts5CloseReader
    - sqlite3Fts5BufferSize
    - fts5IterSetOutputCb
    - fts5StructureRead
    - Fts5Iter*::xSetOutputs
    - assert
    - fts5IndexReturn
    - sqlite3Fts5BufferFree
    - fts5SetupPrefixIter
    - fts5MultiIterNew
    linkageType: ''
    returnType: int
    signature: "int sqlite3Fts5IndexQuery(\n  Fts5Index *p,                   /* FTS
      index to query */\n  const char *pToken, int nToken, /* Token (or prefix) to
      query for */\n  int flags,                      /* Mask of FTS5INDEX_QUERY_X
      flags */\n  Fts5Colset *pColset,            /* Match these columns only */\n
      \ Fts5IndexIter **ppIter          /* OUT: New iterator object */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:215252,1
    - Dst: fts5MultiIterNext
      Src: /src/nss/lib/sqlite/sqlite3.c:215253,1
    - Dst: fts5IndexReturn
      Src: /src/nss/lib/sqlite/sqlite3.c:215254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pIndexIter
    argTypes:
    - Fts5IndexIter*
    assertStmts:
    - condition: ( pIter->pIndex->rc==SQLITE_OK )
      pos:
        line_end: 215251
        line_start: 215251
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 215255
      start: 215250
    functionDepth: 35
    functionLinenumber: 215250
    functionLinenumberEnd: 215255
    functionName: sqlite3Fts5IterNext
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - assert
    - fts5IndexReturn
    - fts5MultiIterNext
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5IterNext(Fts5IndexIter *pIndexIter)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:215264,1
    - Dst: fts5MultiIterNext
      Src: /src/nss/lib/sqlite/sqlite3.c:215266,1
    - Dst: fts5DataRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:215270,1
    - Dst: fts5IndexReturn
      Src: /src/nss/lib/sqlite/sqlite3.c:215276,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - pIndexIter
    argTypes:
    - Fts5IndexIter*
    assertStmts:
    - condition: ( pIter->pIndex->rc==SQLITE_OK )
      pos:
        line_end: 215263
        line_start: 215263
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 215277
      start: 215260
    functionDepth: 35
    functionLinenumber: 215260
    functionLinenumberEnd: 215277
    functionName: sqlite3Fts5IterNextScan
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fts5IndexReturn
    - fts5MultiIterNext
    - fts5DataRelease
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5IterNextScan(Fts5IndexIter *pIndexIter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts5MultiIterNextFrom
      Src: /src/nss/lib/sqlite/sqlite3.c:215286,1
    - Dst: fts5IndexReturn
      Src: /src/nss/lib/sqlite/sqlite3.c:215287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pIndexIter
    - iMatch
    argTypes:
    - Fts5IndexIter*
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215288
      start: 215284
    functionDepth: 36
    functionLinenumber: 215284
    functionLinenumberEnd: 215288
    functionName: sqlite3Fts5IterNextFrom
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 4
    functionsReached:
    - fts5MultiIterNextFrom
    - fts5IndexReturn
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5IterNextFrom(Fts5IndexIter *pIndexIter, i64 iMatch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts5MultiIterTerm
      Src: /src/nss/lib/sqlite/sqlite3.c:215295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pIndexIter
    - pn
    argTypes:
    - Fts5IndexIter*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215298
      start: 215293
    functionDepth: 1
    functionLinenumber: 215293
    functionLinenumberEnd: 215298
    functionName: sqlite3Fts5IterTerm
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5MultiIterTerm
    linkageType: ''
    returnType: char
    signature: char *sqlite3Fts5IterTerm(Fts5IndexIter *pIndexIter, int *pn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fts5MultiIterFree
      Src: /src/nss/lib/sqlite/sqlite3.c:215307,1
    - Dst: fts5CloseReader
      Src: /src/nss/lib/sqlite/sqlite3.c:215308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pIndexIter
    argTypes:
    - Fts5IndexIter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215310
      start: 215303
    functionDepth: 28
    functionLinenumber: 215303
    functionLinenumberEnd: 215310
    functionName: sqlite3Fts5IterClose
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 3
    functionsReached:
    - fts5CloseReader
    - fts5MultiIterFree
    linkageType: ''
    returnType: void
    signature: void sqlite3Fts5IterClose(Fts5IndexIter *pIndexIter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:215323,1
    - Dst: fts5DataRead
      Src: /src/nss/lib/sqlite/sqlite3.c:215324,1
    - Dst: fts5GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:215328,1
    - Dst: fts5GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:215330,1
    - Dst: fts5DataRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:215334,1
    - Dst: fts5IndexReturn
      Src: /src/nss/lib/sqlite/sqlite3.c:215335,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - p
    - pnRow
    - anSize
    argTypes:
    - Fts5Index*
    - i64*
    - i64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215336
      start: 215318
    functionDepth: 30
    functionLinenumber: 215318
    functionLinenumberEnd: 215336
    functionName: sqlite3Fts5IndexGetAverages
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5DataRead
    - memset
    - fts5DataRelease
    - fts5GetVarint
    - fts5IndexReturn
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5IndexGetAverages(Fts5Index *p, i64 *pnRow, i64 *anSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:215343,1
    - Dst: fts5DataWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:215344,1
    - Dst: fts5IndexReturn
      Src: /src/nss/lib/sqlite/sqlite3.c:215345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - p
    - pData
    - nData
    argTypes:
    - Fts5Index*
    - u8*
    - int
    assertStmts:
    - condition: ( p->rc==SQLITE_OK )
      pos:
        line_end: 215342
        line_start: 215342
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 215346
      start: 215342
    functionDepth: 30
    functionLinenumber: 215342
    functionLinenumberEnd: 215346
    functionName: sqlite3Fts5IndexSetAverages
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fts5IndexReturn
    - fts5DataWrite
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5IndexSetAverages(Fts5Index *p, const u8 *pData, int
      nData)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - Fts5Index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215354
      start: 215352
    functionDepth: 0
    functionLinenumber: 215352
    functionLinenumberEnd: 215354
    functionName: sqlite3Fts5IndexReads
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5IndexReads(Fts5Index *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:215369,1
    - Dst: sqlite3Fts5Put32
      Src: /src/nss/lib/sqlite/sqlite3.c:215370,1
    - Dst: sqlite3_blob_open
      Src: /src/nss/lib/sqlite/sqlite3.c:215372,1
    - Dst: sqlite3_blob_write
      Src: /src/nss/lib/sqlite/sqlite3.c:215376,1
    - Dst: sqlite3_blob_close
      Src: /src/nss/lib/sqlite/sqlite3.c:215377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - p
    - iNew
    argTypes:
    - Fts5Index*
    - int
    assertStmts:
    - condition: ( p->rc==SQLITE_OK )
      pos:
        line_end: 215368
        line_start: 215368
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 215381
      start: 215363
    functionDepth: 29
    functionLinenumber: 215363
    functionLinenumberEnd: 215381
    functionName: sqlite3Fts5IndexSetCookie
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_blob_close
    - sqlite3_blob_open
    - assert
    - sqlite3Fts5Put32
    - sqlite3_blob_write
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5IndexSetCookie(Fts5Index *p, int iNew)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts5StructureRead
      Src: /src/nss/lib/sqlite/sqlite3.c:215385,1
    - Dst: fts5StructureRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:215386,1
    - Dst: fts5IndexReturn
      Src: /src/nss/lib/sqlite/sqlite3.c:215387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - Fts5Index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215388
      start: 215383
    functionDepth: 32
    functionLinenumber: 215383
    functionLinenumberEnd: 215388
    functionName: sqlite3Fts5IndexLoadConfig
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5IndexReturn
    - fts5StructureRead
    - fts5StructureRelease
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5IndexLoadConfig(Fts5Index *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 6
    argNames:
    - iRowid
    - iCol
    - iPos
    - iIdx
    - pTerm
    - nTerm
    argTypes:
    - i64
    - int
    - int
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215415
      start: 215400
    functionDepth: 0
    functionLinenumber: 215400
    functionLinenumberEnd: 215415
    functionName: sqlite3Fts5IndexEntryCksum
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: "u64 sqlite3Fts5IndexEntryCksum(\n  i64 iRowid, \n  int iCol, \n  int
      iPos, \n  int iIdx,\n  const char *pTerm,\n  int nTerm\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fts5DlidxIterInit
      Src: /src/nss/lib/sqlite/sqlite3.c:215435,1
    - Dst: fts5DlidxIterEof
      Src: /src/nss/lib/sqlite/sqlite3.c:215436,1
    - Dst: fts5DlidxIterNext
      Src: /src/nss/lib/sqlite/sqlite3.c:215437,1
    - Dst: fts5DlidxIterRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:215439,1
    - Dst: fts5DlidxIterPgno
      Src: /src/nss/lib/sqlite/sqlite3.c:215440,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:215441,1
    - Dst: fts5DlidxIterFree
      Src: /src/nss/lib/sqlite/sqlite3.c:215444,1
    - Dst: fts5DlidxIterInit
      Src: /src/nss/lib/sqlite/sqlite3.c:215447,1
    - Dst: fts5DlidxIterEof
      Src: /src/nss/lib/sqlite/sqlite3.c:215448,1
    - Dst: fts5DlidxIterPrev
      Src: /src/nss/lib/sqlite/sqlite3.c:215449,1
    - Dst: fts5DlidxIterRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:215451,1
    - Dst: fts5DlidxIterPgno
      Src: /src/nss/lib/sqlite/sqlite3.c:215452,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:215453,1
    - Dst: fts5DlidxIterPgno
      Src: /src/nss/lib/sqlite/sqlite3.c:215453,1
    - Dst: fts5DlidxIterFree
      Src: /src/nss/lib/sqlite/sqlite3.c:215456,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - p
    - iSegid
    - iLeaf
    argTypes:
    - Fts5Index*
    - int
    - int
    assertStmts:
    - condition: ( pgno>iLeaf )
      pos:
        line_end: 215440
        line_start: 215440
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( fts5DlidxIterPgno(pDlidx)>iLeaf )
      pos:
        line_end: 215452
        line_start: 215452
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 215460
      start: 215426
    functionDepth: 32
    functionLinenumber: 215426
    functionLinenumberEnd: 215460
    functionName: fts5TestDlidxReverse
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5DlidxIterInit
    - fts5DlidxIterNext
    - assert
    - fts5DlidxIterFree
    - fts5DlidxIterRowid
    - fts5DlidxIterPgno
    - fts5DlidxIterPrev
    - fts5DlidxIterEof
    linkageType: ''
    returnType: void
    signature: "void fts5TestDlidxReverse(\n  Fts5Index *p, \n  int iSegid,                     /*
      Segment id to load from */\n  int iLeaf                       /* Load doclist-index
      for this leaf */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5IndexQuery
      Src: /src/nss/lib/sqlite/sqlite3.c:215473,1
    - Dst: sqlite3Fts5IterEof
      Src: /src/nss/lib/sqlite/sqlite3.c:215475,1
    - Dst: sqlite3Fts5IndexEntryCksum
      Src: /src/nss/lib/sqlite/sqlite3.c:215479,1
    - Dst: sqlite3Fts5PoslistReaderInit
      Src: /src/nss/lib/sqlite/sqlite3.c:215482,1
    - Dst: sqlite3Fts5PoslistReaderNext
      Src: /src/nss/lib/sqlite/sqlite3.c:215484,1
    - Dst: FTS5_POS2COLUMN
      Src: /src/nss/lib/sqlite/sqlite3.c:215486,1
    - Dst: FTS5_POS2OFFSET
      Src: /src/nss/lib/sqlite/sqlite3.c:215487,1
    - Dst: sqlite3Fts5IndexEntryCksum
      Src: /src/nss/lib/sqlite/sqlite3.c:215488,1
    - Dst: sqlite3Fts5IterNext
      Src: /src/nss/lib/sqlite/sqlite3.c:215492,1
    - Dst: sqlite3Fts5IterClose
      Src: /src/nss/lib/sqlite/sqlite3.c:215495,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 6
    argNames:
    - p
    - iIdx
    - z
    - n
    - flags
    - pCksum
    argTypes:
    - Fts5Index*
    - int
    - char*
    - int
    - int
    - u64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215499
      start: 215462
    functionDepth: 38
    functionLinenumber: 215462
    functionLinenumberEnd: 215499
    functionName: fts5QueryCksum
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5PoslistReaderNext
    - sqlite3Fts5IterClose
    - sqlite3Fts5IndexEntryCksum
    - sqlite3Fts5IndexQuery
    - sqlite3Fts5IterNext
    - FTS5_POS2COLUMN
    - sqlite3Fts5IterEof
    - FTS5_POS2OFFSET
    - sqlite3Fts5PoslistReaderInit
    linkageType: ''
    returnType: int
    signature: "int fts5QueryCksum(\n  Fts5Index *p,                   /* Fts5 index
      object */\n  int iIdx,\n  const char *z,                  /* Index key to query
      for */\n  int n,                          /* Size of index key in bytes */\n
      \ int flags,                      /* Flags for Fts5IndexQuery */\n  u64 *pCksum
      \                    /* IN/OUT: Checksum value */\n)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: fts5BufferSet
      Src: /src/nss/lib/sqlite/sqlite3.c:215515,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:215517,1
    - Dst: fts5QueryCksum
      Src: /src/nss/lib/sqlite/sqlite3.c:215528,1
    - Dst: fts5QueryCksum
      Src: /src/nss/lib/sqlite/sqlite3.c:215531,1
    - Dst: fts5QueryCksum
      Src: /src/nss/lib/sqlite/sqlite3.c:215546,1
    - Dst: fts5QueryCksum
      Src: /src/nss/lib/sqlite/sqlite3.c:215552,1
    - Dst: fts5BufferSet
      Src: /src/nss/lib/sqlite/sqlite3.c:215558,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 33
    argCount: 6
    argNames:
    - p
    - pPrev
    - z
    - n
    - expected
    - pCksum
    argTypes:
    - Fts5Index*
    - Fts5Buffer*
    - char*
    - int
    - u64
    - u64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215566
      start: 215506
    functionDepth: 39
    functionLinenumber: 215506
    functionLinenumberEnd: 215566
    functionName: fts5TestTerm
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcmp
    - fts5QueryCksum
    - fts5BufferSet
    linkageType: ''
    returnType: void
    signature: "void fts5TestTerm(\n  Fts5Index *p, \n  Fts5Buffer *pPrev,              /*
      Previous term */\n  const char *z, int n,           /* Possibly new term to
      test */\n  u64 expected,\n  u64 *pCksum\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fts5DataRead
      Src: /src/nss/lib/sqlite/sqlite3.c:215593,1
    - Dst: FTS5_SEGMENT_ROWID
      Src: /src/nss/lib/sqlite/sqlite3.c:215593,1
    - Dst: fts5LeafIsTermless
      Src: /src/nss/lib/sqlite/sqlite3.c:215595,1
    - Dst: fts5LeafFirstRowidOff
      Src: /src/nss/lib/sqlite/sqlite3.c:215596,1
    - Dst: fts5DataRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:215598,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 5
    argNames:
    - p
    - pSeg
    - iFirst
    - iNoRowid
    - iLast
    argTypes:
    - Fts5Index*
    - Fts5StructureSegment*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215600
      start: 215581
    functionDepth: 30
    functionLinenumber: 215581
    functionLinenumberEnd: 215600
    functionName: fts5IndexIntegrityCheckEmpty
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5LeafIsTermless
    - FTS5_SEGMENT_ROWID
    - fts5DataRead
    - fts5DataRelease
    - fts5LeafFirstRowidOff
    linkageType: ''
    returnType: void
    signature: "void fts5IndexIntegrityCheckEmpty(\n  Fts5Index *p,\n  Fts5StructureSegment
      *pSeg,     /* Segment to check internal consistency */\n  int iFirst,\n  int
      iNoRowid,\n  int iLast\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fts5GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:215615,1
    - Dst: fts5GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:215623,1
    - Dst: fts5BufferSet
      Src: /src/nss/lib/sqlite/sqlite3.c:215627,1
    - Dst: fts5GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:215631,1
    - Dst: fts5GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:215632,1
    - Dst: fts5BufferAppendBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:215637,1
    - Dst: fts5BufferCompare
      Src: /src/nss/lib/sqlite/sqlite3.c:215641,1
    - Dst: fts5BufferSet
      Src: /src/nss/lib/sqlite/sqlite3.c:215645,1
    - Dst: fts5BufferFree
      Src: /src/nss/lib/sqlite/sqlite3.c:215648,1
    - Dst: fts5BufferFree
      Src: /src/nss/lib/sqlite/sqlite3.c:215649,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 2
    argNames:
    - p
    - pLeaf
    argTypes:
    - Fts5Index*
    - Fts5Data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215650
      start: 215602
    functionDepth: 2
    functionLinenumber: 215602
    functionLinenumberEnd: 215650
    functionName: fts5IntegrityCheckPgidx
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5BufferAppendBlob
    - fts5BufferSet
    - fts5BufferCompare
    - fts5GetVarint32
    - fts5BufferFree
    linkageType: ''
    returnType: void
    signature: void fts5IntegrityCheckPgidx(Fts5Index *p, Fts5Data *pLeaf)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: fts5IndexPrepareStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:215664,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:215664,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:215670,1
    - Dst: sqlite3_column_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:215674,1
    - Dst: sqlite3_column_text
      Src: /src/nss/lib/sqlite/sqlite3.c:215675,1
    - Dst: sqlite3_column_int
      Src: /src/nss/lib/sqlite/sqlite3.c:215676,1
    - Dst: sqlite3_column_int
      Src: /src/nss/lib/sqlite/sqlite3.c:215677,1
    - Dst: FTS5_SEGMENT_ROWID
      Src: /src/nss/lib/sqlite/sqlite3.c:215682,1
    - Dst: fts5LeafRead
      Src: /src/nss/lib/sqlite/sqlite3.c:215683,1
    - Dst: fts5LeafFirstTermOff
      Src: /src/nss/lib/sqlite/sqlite3.c:215698,1
    - Dst: fts5LeafFirstRowidOff
      Src: /src/nss/lib/sqlite/sqlite3.c:215699,1
    - Dst: fts5GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:215703,1
    - Dst: fts5Memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:215704,1
    - Dst: MIN
      Src: /src/nss/lib/sqlite/sqlite3.c:215704,1
    - Dst: fts5IntegrityCheckPgidx
      Src: /src/nss/lib/sqlite/sqlite3.c:215709,1
    - Dst: fts5DataRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:215711,1
    - Dst: fts5IndexIntegrityCheckEmpty
      Src: /src/nss/lib/sqlite/sqlite3.c:215716,1
    - Dst: fts5DlidxIterInit
      Src: /src/nss/lib/sqlite/sqlite3.c:215729,1
    - Dst: fts5DlidxIterEof
      Src: /src/nss/lib/sqlite/sqlite3.c:215730,1
    - Dst: fts5DlidxIterNext
      Src: /src/nss/lib/sqlite/sqlite3.c:215731,1
    - Dst: fts5DlidxIterPgno
      Src: /src/nss/lib/sqlite/sqlite3.c:215735,1
    - Dst: FTS5_SEGMENT_ROWID
      Src: /src/nss/lib/sqlite/sqlite3.c:215736,1
    - Dst: fts5DataRead
      Src: /src/nss/lib/sqlite/sqlite3.c:215737,1
    - Dst: fts5LeafFirstRowidOff
      Src: /src/nss/lib/sqlite/sqlite3.c:215739,1
    - Dst: fts5DataRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:215740,1
    - Dst: fts5DlidxIterPgno
      Src: /src/nss/lib/sqlite/sqlite3.c:215743,1
    - Dst: FTS5_SEGMENT_ROWID
      Src: /src/nss/lib/sqlite/sqlite3.c:215747,1
    - Dst: fts5DataRead
      Src: /src/nss/lib/sqlite/sqlite3.c:215748,1
    - Dst: fts5LeafFirstRowidOff
      Src: /src/nss/lib/sqlite/sqlite3.c:215751,1
    - Dst: ASSERT_SZLEAF_OK
      Src: /src/nss/lib/sqlite/sqlite3.c:215752,1
    - Dst: fts5GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:215756,1
    - Dst: fts5DlidxIterRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:215757,1
    - Dst: fts5DataRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:215759,1
    - Dst: fts5DlidxIterFree
      Src: /src/nss/lib/sqlite/sqlite3.c:215764,1
    - Dst: fts5TestDlidxReverse
      Src: /src/nss/lib/sqlite/sqlite3.c:215765,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:215774,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 74
    argCount: 2
    argNames:
    - p
    - pSeg
    argTypes:
    - Fts5Index*
    - Fts5StructureSegment*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215783
      start: 215652
    functionDepth: 33
    functionLinenumber: 215652
    functionLinenumberEnd: 215783
    functionName: fts5IndexIntegrityCheckSegment
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5LeafFirstTermOff
    - fts5IntegrityCheckPgidx
    - fts5LeafRead
    - fts5TestDlidxReverse
    - fts5Memcmp
    - sqlite3_column_bytes
    - fts5DataRelease
    - fts5GetVarint32
    - fts5LeafFirstRowidOff
    - fts5IndexPrepareStmt
    - fts5IndexIntegrityCheckEmpty
    - fts5DataRead
    - fts5DlidxIterInit
    - fts5DlidxIterNext
    - sqlite3_column_text
    - fts5DlidxIterPgno
    - sqlite3_finalize
    - fts5DlidxIterEof
    - FTS5_SEGMENT_ROWID
    - sqlite3_step
    - sqlite3_mprintf
    - fts5GetVarint
    - ASSERT_SZLEAF_OK
    - fts5DlidxIterFree
    - fts5DlidxIterRowid
    - MIN
    - sqlite3_column_int
    linkageType: ''
    returnType: void
    signature: "void fts5IndexIntegrityCheckSegment(\n  Fts5Index *p,                   /*
      FTS5 backend object */\n  Fts5StructureSegment *pSeg      /* Segment to check
      internal consistency */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fts5StructureRead
      Src: /src/nss/lib/sqlite/sqlite3.c:215811,1
    - Dst: fts5IndexIntegrityCheckSegment
      Src: /src/nss/lib/sqlite/sqlite3.c:215819,1
    - Dst: fts5MultiIterNew
      Src: /src/nss/lib/sqlite/sqlite3.c:215837,1
    - Dst: fts5MultiIterEof
      Src: /src/nss/lib/sqlite/sqlite3.c:215838,1
    - Dst: fts5MultiIterNext
      Src: /src/nss/lib/sqlite/sqlite3.c:215839,1
    - Dst: fts5MultiIterRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:215844,1
    - Dst: fts5MultiIterTerm
      Src: /src/nss/lib/sqlite/sqlite3.c:215845,1
    - Dst: fts5TestTerm
      Src: /src/nss/lib/sqlite/sqlite3.c:215848,1
    - Dst: fts5MultiIterIsEmpty
      Src: /src/nss/lib/sqlite/sqlite3.c:215851,1
    - Dst: sqlite3Fts5IndexEntryCksum
      Src: /src/nss/lib/sqlite/sqlite3.c:215852,1
    - Dst: fts5SegiterPoslist
      Src: /src/nss/lib/sqlite/sqlite3.c:215856,1
    - Dst: sqlite3Fts5PoslistNext64
      Src: /src/nss/lib/sqlite/sqlite3.c:215857,1
    - Dst: FTS5_POS2COLUMN
      Src: /src/nss/lib/sqlite/sqlite3.c:215858,1
    - Dst: FTS5_POS2OFFSET
      Src: /src/nss/lib/sqlite/sqlite3.c:215859,1
    - Dst: sqlite3Fts5IndexEntryCksum
      Src: /src/nss/lib/sqlite/sqlite3.c:215860,1
    - Dst: fts5TestTerm
      Src: /src/nss/lib/sqlite/sqlite3.c:215864,1
    - Dst: fts5MultiIterFree
      Src: /src/nss/lib/sqlite/sqlite3.c:215866,1
    - Dst: fts5StructureRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:215869,1
    - Dst: fts5BufferFree
      Src: /src/nss/lib/sqlite/sqlite3.c:215871,1
    - Dst: fts5BufferFree
      Src: /src/nss/lib/sqlite/sqlite3.c:215873,1
    - Dst: fts5IndexReturn
      Src: /src/nss/lib/sqlite/sqlite3.c:215874,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 2
    argNames:
    - p
    - cksum
    argTypes:
    - Fts5Index*
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215875
      start: 215796
    functionDepth: 40
    functionLinenumber: 215796
    functionLinenumberEnd: 215875
    functionName: sqlite3Fts5IndexIntegrityCheck
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5StructureRelease
    - fts5IndexIntegrityCheckSegment
    - fts5MultiIterIsEmpty
    - fts5MultiIterTerm
    - fts5StructureRead
    - fts5MultiIterRowid
    - sqlite3Fts5IndexEntryCksum
    - fts5BufferFree
    - fts5TestTerm
    - fts5SegiterPoslist
    - FTS5_POS2COLUMN
    - sqlite3Fts5PoslistNext64
    - fts5IndexReturn
    - fts5MultiIterFree
    - FTS5_POS2OFFSET
    - fts5MultiIterNext
    - fts5MultiIterEof
    - fts5MultiIterNew
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5IndexIntegrityCheck(Fts5Index *p, u64 cksum)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 5
    argNames:
    - iRowid
    - piSegid
    - pbDlidx
    - piHeight
    - piPgno
    argTypes:
    - i64
    - int*
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215904
      start: 215887
    functionDepth: 0
    functionLinenumber: 215887
    functionLinenumberEnd: 215904
    functionName: fts5DecodeRowid
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void fts5DecodeRowid(\n  i64 iRowid,                     /* Rowid
      from %_data table */\n  int *piSegid,                   /* OUT: Segment id */\n
      \ int *pbDlidx,                   /* OUT: Dlidx flag */\n  int *piHeight,                  /*
      OUT: Height */\n  int *piPgno                     /* OUT: Page number */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fts5DecodeRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:215908,1
    - Dst: sqlite3Fts5BufferAppendPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:215912,1
    - Dst: sqlite3Fts5BufferAppendPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:215914,1
    - Dst: sqlite3Fts5BufferAppendPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:215918,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - pRc
    - pBuf
    - iKey
    argTypes:
    - int*
    - Fts5Buffer*
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215922
      start: 215906
    functionDepth: 10
    functionLinenumber: 215906
    functionLinenumberEnd: 215922
    functionName: fts5DebugRowid
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5BufferAppendPrintf
    - fts5DecodeRowid
    linkageType: ''
    returnType: void
    signature: void fts5DebugRowid(int *pRc, Fts5Buffer *pBuf, i64 iKey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5BufferAppendPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:215933,1
    - Dst: sqlite3Fts5BufferAppendPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:215938,1
    - Dst: sqlite3Fts5BufferAppendPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:215942,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - pRc
    - pBuf
    - p
    argTypes:
    - int*
    - Fts5Buffer*
    - Fts5Structure*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215944
      start: 215924
    functionDepth: 10
    functionLinenumber: 215924
    functionLinenumberEnd: 215944
    functionName: fts5DebugStructure
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3Fts5BufferAppendPrintf
    linkageType: ''
    returnType: void
    signature: "void fts5DebugStructure(\n  int *pRc,                       /* IN/OUT:
      error code */\n  Fts5Buffer *pBuf,\n  Fts5Structure *p\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fts5StructureDecode
      Src: /src/nss/lib/sqlite/sqlite3.c:215961,1
    - Dst: fts5DebugStructure
      Src: /src/nss/lib/sqlite/sqlite3.c:215967,1
    - Dst: fts5StructureRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:215968,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - pRc
    - pBuf
    - pBlob
    - nBlob
    argTypes:
    - int*
    - Fts5Buffer*
    - u8*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215969
      start: 215953
    functionDepth: 11
    functionLinenumber: 215953
    functionLinenumberEnd: 215969
    functionName: fts5DecodeStructure
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5DebugStructure
    - fts5StructureDecode
    - fts5StructureRelease
    linkageType: ''
    returnType: void
    signature: "void fts5DecodeStructure(\n  int *pRc,                       /* IN/OUT:
      error code */\n  Fts5Buffer *pBuf,\n  const u8 *pBlob, int nBlob\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:215988,1
    - Dst: sqlite3Fts5BufferAppendPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:215989,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - pRc
    - pBuf
    - pBlob
    - nBlob
    argTypes:
    - int*
    - Fts5Buffer*
    - u8*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215992
      start: 215978
    functionDepth: 10
    functionLinenumber: 215978
    functionLinenumberEnd: 215992
    functionName: fts5DecodeAverages
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5BufferAppendPrintf
    - sqlite3Fts5GetVarint
    linkageType: ''
    returnType: void
    signature: "void fts5DecodeAverages(\n  int *pRc,                       /* IN/OUT:
      error code */\n  Fts5Buffer *pBuf,\n  const u8 *pBlob, int nBlob\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts5GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:216005,1
    - Dst: sqlite3Fts5BufferAppendPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:216006,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - pRc
    - pBuf
    - a
    - n
    argTypes:
    - int*
    - Fts5Buffer*
    - u8*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216009
      start: 216001
    functionDepth: 10
    functionLinenumber: 216001
    functionLinenumberEnd: 216009
    functionName: fts5DecodePoslist
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5BufferAppendPrintf
    - fts5GetVarint32
    linkageType: ''
    returnType: int
    signature: int fts5DecodePoslist(int *pRc, Fts5Buffer *pBuf, const u8 *a, int
      n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:216024,1
    - Dst: sqlite3Fts5BufferAppendPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:216025,1
    - Dst: fts5GetPoslistSize
      Src: /src/nss/lib/sqlite/sqlite3.c:216030,1
    - Dst: sqlite3Fts5BufferAppendPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:216031,1
    - Dst: fts5DecodePoslist
      Src: /src/nss/lib/sqlite/sqlite3.c:216032,1
    - Dst: MIN
      Src: /src/nss/lib/sqlite/sqlite3.c:216032,1
    - Dst: sqlite3Fts5GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:216035,1
    - Dst: sqlite3Fts5BufferAppendPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:216037,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - pRc
    - pBuf
    - a
    - n
    argTypes:
    - int*
    - Fts5Buffer*
    - u8*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216042
      start: 216019
    functionDepth: 11
    functionLinenumber: 216019
    functionLinenumberEnd: 216042
    functionName: fts5DecodeDoclist
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5DecodePoslist
    - fts5GetPoslistSize
    - sqlite3Fts5BufferAppendPrintf
    - sqlite3Fts5GetVarint
    - MIN
    linkageType: ''
    returnType: int
    signature: int fts5DecodeDoclist(int *pRc, Fts5Buffer *pBuf, const u8 *a, int
      n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:216068,1
    - Dst: sqlite3Fts5BufferAppendPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:216081,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - pRc
    - pBuf
    - pData
    - nData
    argTypes:
    - int*
    - Fts5Buffer*
    - u8*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216083
      start: 216057
    functionDepth: 10
    functionLinenumber: 216057
    functionLinenumberEnd: 216083
    functionName: fts5DecodeRowidList
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5BufferAppendPrintf
    - sqlite3Fts5GetVarint
    linkageType: ''
    returnType: void
    signature: "void fts5DecodeRowidList(\n  int *pRc,                       /* IN/OUT:
      Error code */\n  Fts5Buffer *pBuf,               /* Buffer to append text to
      */\n  const u8 *pData, int nData      /* Data to decode list-of-rowids from
      */\n)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_user_data
      Src: /src/nss/lib/sqlite/sqlite3.c:216100,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:216102,1
    - Dst: UNUSED_PARAM
      Src: /src/nss/lib/sqlite/sqlite3.c:216103,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:216104,1
    - Dst: sqlite3_value_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:216105,1
    - Dst: sqlite3_value_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:216110,1
    - Dst: sqlite3_value_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:216111,1
    - Dst: sqlite3Fts5MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:216113,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:216115,1
    - Dst: fts5DecodeRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:216117,1
    - Dst: fts5DebugRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:216119,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:216127,1
    - Dst: fts5DlidxLvlNext
      Src: /src/nss/lib/sqlite/sqlite3.c:216131,1
    - Dst: fts5DlidxLvlNext
      Src: /src/nss/lib/sqlite/sqlite3.c:216131,1
    - Dst: sqlite3Fts5BufferAppendPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:216132,1
    - Dst: fts5DecodeAverages
      Src: /src/nss/lib/sqlite/sqlite3.c:216138,1
    - Dst: fts5DecodeStructure
      Src: /src/nss/lib/sqlite/sqlite3.c:216140,1
    - Dst: fts5GetU16
      Src: /src/nss/lib/sqlite/sqlite3.c:216145,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:216150,1
    - Dst: fts5GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:216154,1
    - Dst: fts5DecodeRowidList
      Src: /src/nss/lib/sqlite/sqlite3.c:216158,1
    - Dst: fts5GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:216165,1
    - Dst: fts5BufferAppendBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:216167,1
    - Dst: sqlite3Fts5BufferAppendPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:216168,1
    - Dst: fts5GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:216176,1
    - Dst: fts5DecodeRowidList
      Src: /src/nss/lib/sqlite/sqlite3.c:216182,1
    - Dst: fts5GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:216185,1
    - Dst: fts5BufferFree
      Src: /src/nss/lib/sqlite/sqlite3.c:216189,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:216200,1
    - Dst: sqlite3Fts5BufferSet
      Src: /src/nss/lib/sqlite/sqlite3.c:216203,1
    - Dst: fts5GetU16
      Src: /src/nss/lib/sqlite/sqlite3.c:216206,1
    - Dst: fts5GetU16
      Src: /src/nss/lib/sqlite/sqlite3.c:216207,1
    - Dst: fts5GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:216209,1
    - Dst: fts5DecodePoslist
      Src: /src/nss/lib/sqlite/sqlite3.c:216228,1
    - Dst: fts5DecodeDoclist
      Src: /src/nss/lib/sqlite/sqlite3.c:216237,1
    - Dst: fts5GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:216244,1
    - Dst: fts5GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:216249,1
    - Dst: fts5GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:216260,1
    - Dst: fts5GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:216267,1
    - Dst: fts5BufferAppendBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:216272,1
    - Dst: sqlite3Fts5BufferAppendPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:216275,1
    - Dst: fts5DecodeDoclist
      Src: /src/nss/lib/sqlite/sqlite3.c:216278,1
    - Dst: fts5BufferFree
      Src: /src/nss/lib/sqlite/sqlite3.c:216281,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:216285,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:216287,1
    - Dst: sqlite3_result_error_code
      Src: /src/nss/lib/sqlite/sqlite3.c:216289,1
    - Dst: fts5BufferFree
      Src: /src/nss/lib/sqlite/sqlite3.c:216291,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 143
    argCount: 3
    argNames:
    - pCtx
    - nArg
    - apVal
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( nArg==2 )
      pos:
        line_end: 216101
        line_start: 216101
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 216292
      start: 216088
    functionDepth: 16
    functionLinenumber: 216088
    functionLinenumberEnd: 216292
    functionName: fts5DecodeFunction
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5GetVarint32
    - sqlite3_value_int64
    - sqlite3_user_data
    - fts5GetU16
    - fts5DecodeRowid
    - sqlite3_value_bytes
    - memcpy
    - fts5BufferAppendBlob
    - sqlite3_result_error_code
    - assert
    - memset
    - sqlite3_value_blob
    - fts5BufferFree
    - fts5DecodeAverages
    - fts5DecodePoslist
    - fts5DebugRowid
    - sqlite3Fts5BufferAppendPrintf
    - fts5DecodeRowidList
    - fts5DecodeDoclist
    - sqlite3_result_text
    - fts5DecodeStructure
    - sqlite3Fts5BufferSet
    - sqlite3Fts5MallocZero
    - UNUSED_PARAM
    - fts5DlidxLvlNext
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: "void fts5DecodeFunction(\n  sqlite3_context *pCtx,          /* Function
      call context */\n  int nArg,                       /* Number of args (always
      2) */\n  sqlite3_value **apVal           /* Function arguments */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_result_error
      Src: /src/nss/lib/sqlite/sqlite3.c:216304,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:216306,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:216307,1
    - Dst: sqlite3_result_error
      Src: /src/nss/lib/sqlite/sqlite3.c:216311,1
    - Dst: sqlite3_value_int
      Src: /src/nss/lib/sqlite/sqlite3.c:216315,1
    - Dst: sqlite3_value_int
      Src: /src/nss/lib/sqlite/sqlite3.c:216316,1
    - Dst: FTS5_SEGMENT_ROWID
      Src: /src/nss/lib/sqlite/sqlite3.c:216317,1
    - Dst: sqlite3_result_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:216318,1
    - Dst: sqlite3_result_error
      Src: /src/nss/lib/sqlite/sqlite3.c:216321,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - pCtx
    - nArg
    - apVal
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216326
      start: 216297
    functionDepth: 15
    functionLinenumber: 216297
    functionLinenumberEnd: 216326
    functionName: fts5RowidFunction
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - FTS5_SEGMENT_ROWID
    - sqlite3_value_text
    - sqlite3_value_int
    - sqlite3_result_int64
    - sqlite3_stricmp
    - sqlite3_result_error
    linkageType: ''
    returnType: void
    signature: "void fts5RowidFunction(\n  sqlite3_context *pCtx,          /* Function
      call context */\n  int nArg,                       /* Number of args (always
      2) */\n  sqlite3_value **apVal           /* Function arguments */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_create_function
      Src: /src/nss/lib/sqlite/sqlite3.c:216337,1
    - Dst: sqlite3_create_function
      Src: /src/nss/lib/sqlite/sqlite3.c:216342,1
    - Dst: sqlite3_create_function
      Src: /src/nss/lib/sqlite/sqlite3.c:216349,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216354
      start: 216336
    functionDepth: 14
    functionLinenumber: 216336
    functionLinenumberEnd: 216354
    functionName: sqlite3Fts5IndexInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_create_function
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5IndexInit(sqlite3 *db)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:216358,1
    - Dst: fts5IndexDataVersion
      Src: /src/nss/lib/sqlite/sqlite3.c:216359,1
    - Dst: fts5StructureInvalidate
      Src: /src/nss/lib/sqlite/sqlite3.c:216360,1
    - Dst: fts5IndexReturn
      Src: /src/nss/lib/sqlite/sqlite3.c:216362,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - Fts5Index*
    assertStmts:
    - condition: ( p->pStruct==0 || p->iStructVersion!=0 )
      pos:
        line_end: 216357
        line_start: 216357
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 216363
      start: 216357
    functionDepth: 30
    functionLinenumber: 216357
    functionLinenumberEnd: 216363
    functionName: sqlite3Fts5IndexReset
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fts5IndexReturn
    - fts5IndexDataVersion
    - fts5StructureInvalidate
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5IndexReset(Fts5Index *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216591
      start: 216590
    functionDepth: 0
    functionLinenumber: 216590
    functionLinenumberEnd: 216591
    functionName: BitFlagAllTest
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BitFlagAllTest(x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216592
      start: 216591
    functionDepth: 0
    functionLinenumber: 216591
    functionLinenumberEnd: 216592
    functionName: BitFlagTest
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BitFlagTest(x,y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pCsr
    - ','
    - flag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216598
      start: 216597
    functionDepth: 0
    functionLinenumber: 216597
    functionLinenumberEnd: 216598
    functionName: CsrFlagSet
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CsrFlagSet(pCsr, flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pCsr
    - ','
    - flag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216599
      start: 216598
    functionDepth: 0
    functionLinenumber: 216598
    functionLinenumberEnd: 216599
    functionName: CsrFlagClear
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CsrFlagClear(pCsr, flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pCsr
    - ','
    - flag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216600
      start: 216599
    functionDepth: 0
    functionLinenumber: 216599
    functionLinenumberEnd: 216600
    functionName: CsrFlagTest
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CsrFlagTest(pCsr, flag)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:216619,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:216625,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:216630,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:216635,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:216640,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:216641,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:216642,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:216647,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:216648,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:216649,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:216654,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:216655,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:216656,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 3
    argNames:
    - p
    - op
    - iSavepoint
    argTypes:
    - Fts5FullTable*
    - int
    - int
    assertStmts:
    - condition: ( p->ts.eState==0 )
      pos:
        line_end: 216618
        line_start: 216618
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->ts.eState==2 )
      pos:
        line_end: 216629
        line_start: 216629
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->ts.eState==1 )
      pos:
        line_end: 216624
        line_start: 216624
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->ts.eState==1 )
      pos:
        line_end: 216639
        line_start: 216639
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->ts.eState==1 || p->ts.eState==2 || p->ts.eState==0 )
      pos:
        line_end: 216634
        line_start: 216634
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iSavepoint>=0 )
      pos:
        line_end: 216640
        line_start: 216640
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iSavepoint>=p->ts.iSavepoint )
      pos:
        line_end: 216641
        line_start: 216641
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->ts.eState==1 )
      pos:
        line_end: 216646
        line_start: 216646
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iSavepoint>=0 )
      pos:
        line_end: 216647
        line_start: 216647
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iSavepoint<=p->ts.iSavepoint )
      pos:
        line_end: 216648
        line_start: 216648
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iSavepoint>=-1 )
      pos:
        line_end: 216654
        line_start: 216654
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iSavepoint<=p->ts.iSavepoint )
      pos:
        line_end: 216655
        line_start: 216655
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->ts.eState==1 )
      pos:
        line_end: 216653
        line_start: 216653
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 216660
      start: 216616
    functionDepth: 0
    functionLinenumber: 216616
    functionLinenumberEnd: 216660
    functionName: fts5CheckTransactionState
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void fts5CheckTransactionState(Fts5FullTable *p, int op, int iSavepoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pTab
    argTypes:
    - Fts5FullTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216670
      start: 216668
    functionDepth: 0
    functionLinenumber: 216668
    functionLinenumberEnd: 216670
    functionName: fts5IsContentless
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fts5IsContentless(Fts5FullTable *pTab)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5IndexClose
      Src: /src/nss/lib/sqlite/sqlite3.c:216677,1
    - Dst: sqlite3Fts5StorageClose
      Src: /src/nss/lib/sqlite/sqlite3.c:216678,1
    - Dst: sqlite3Fts5ConfigFree
      Src: /src/nss/lib/sqlite/sqlite3.c:216679,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:216680,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pTab
    argTypes:
    - Fts5FullTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216682
      start: 216675
    functionDepth: 27
    functionLinenumber: 216675
    functionLinenumberEnd: 216682
    functionName: fts5FreeVtab
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    - sqlite3Fts5StorageClose
    - sqlite3Fts5IndexClose
    - sqlite3Fts5ConfigFree
    linkageType: ''
    returnType: void
    signature: void fts5FreeVtab(Fts5FullTable *pTab)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts5FreeVtab
      Src: /src/nss/lib/sqlite/sqlite3.c:216688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pVtab
    argTypes:
    - sqlite3_vtab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216690
      start: 216687
    functionDepth: 28
    functionLinenumber: 216687
    functionLinenumberEnd: 216690
    functionName: fts5DisconnectMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5FreeVtab
    linkageType: ''
    returnType: int
    signature: int fts5DisconnectMethod(sqlite3_vtab *pVtab)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5DropAll
      Src: /src/nss/lib/sqlite/sqlite3.c:216697,1
    - Dst: fts5FreeVtab
      Src: /src/nss/lib/sqlite/sqlite3.c:216699,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pVtab
    argTypes:
    - sqlite3_vtab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216702
      start: 216695
    functionDepth: 28
    functionLinenumber: 216695
    functionLinenumberEnd: 216702
    functionName: fts5DestroyMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5DropAll
    - fts5FreeVtab
    linkageType: ''
    returnType: int
    signature: int fts5DestroyMethod(sqlite3_vtab *pVtab)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:216731,1
    - Dst: sqlite3Fts5ConfigParse
      Src: /src/nss/lib/sqlite/sqlite3.c:216733,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:216734,1
    - Dst: sqlite3Fts5IndexOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:216743,1
    - Dst: sqlite3Fts5StorageOpen
      Src: /src/nss/lib/sqlite/sqlite3.c:216748,1
    - Dst: sqlite3Fts5ConfigDeclareVtab
      Src: /src/nss/lib/sqlite/sqlite3.c:216755,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:216760,1
    - Dst: sqlite3Fts5IndexLoadConfig
      Src: /src/nss/lib/sqlite/sqlite3.c:216762,1
    - Dst: sqlite3Fts5IndexRollback
      Src: /src/nss/lib/sqlite/sqlite3.c:216763,1
    - Dst: fts5FreeVtab
      Src: /src/nss/lib/sqlite/sqlite3.c:216768,1
    - Dst: fts5CheckTransactionState
      Src: /src/nss/lib/sqlite/sqlite3.c:216771,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 7
    argNames:
    - bCreate
    - db
    - pAux
    - argc
    - argv
    - ppVTab
    - pzErr
    argTypes:
    - int
    - sqlite3*
    - void*
    - int
    - char**
    - sqlite3_vtab**
    - char**
    assertStmts:
    - condition: ( (rc==SQLITE_OK && *pzErr==0) || pConfig==0 )
      pos:
        line_end: 216733
        line_start: 216733
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pConfig->pzErrmsg==0 )
      pos:
        line_end: 216759
        line_start: 216759
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 216775
      start: 216715
    functionDepth: 33
    functionLinenumber: 216715
    functionLinenumberEnd: 216775
    functionName: fts5InitVtab
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5ConfigDeclareVtab
    - sqlite3Fts5ConfigParse
    - sqlite3Fts5StorageOpen
    - sqlite3Fts5IndexRollback
    - sqlite3Fts5IndexOpen
    - sqlite3Fts5MallocZero
    - sqlite3Fts5IndexLoadConfig
    - assert
    - fts5FreeVtab
    - fts5CheckTransactionState
    linkageType: ''
    returnType: int
    signature: "int fts5InitVtab(\n  int bCreate,                    /* True for xCreate,
      false for xConnect */\n  sqlite3 *db,                    /* The SQLite database
      connection */\n  void *pAux,                     /* Hash table containing tokenizers
      */\n  int argc,                       /* Number of elements in argv array */\n
      \ const char * const *argv,       /* xCreate/xConnect argument array */\n  sqlite3_vtab
      **ppVTab,          /* Write the resulting vtab structure here */\n  char **pzErr
      \                   /* Write any error message here */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts5InitVtab
      Src: /src/nss/lib/sqlite/sqlite3.c:216789,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - db
    - pAux
    - argc
    - argv
    - ppVtab
    - pzErr
    argTypes:
    - sqlite3*
    - void*
    - int
    - char**
    - sqlite3_vtab**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216790
      start: 216781
    functionDepth: 34
    functionLinenumber: 216781
    functionLinenumberEnd: 216790
    functionName: fts5ConnectMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5InitVtab
    linkageType: ''
    returnType: int
    signature: "int fts5ConnectMethod(\n  sqlite3 *db,                    /* Database
      connection */\n  void *pAux,                     /* Pointer to tokenizer hash
      table */\n  int argc,                       /* Number of elements in argv array
      */\n  const char * const *argv,       /* xCreate/xConnect argument array */\n
      \ sqlite3_vtab **ppVtab,          /* OUT: New sqlite3_vtab object */\n  char
      **pzErr                    /* OUT: sqlite3_malloc'd error message */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts5InitVtab
      Src: /src/nss/lib/sqlite/sqlite3.c:216799,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - db
    - pAux
    - argc
    - argv
    - ppVtab
    - pzErr
    argTypes:
    - sqlite3*
    - void*
    - int
    - char**
    - sqlite3_vtab**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216800
      start: 216791
    functionDepth: 34
    functionLinenumber: 216791
    functionLinenumberEnd: 216800
    functionName: fts5CreateMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5InitVtab
    linkageType: ''
    returnType: int
    signature: "int fts5CreateMethod(\n  sqlite3 *db,                    /* Database
      connection */\n  void *pAux,                     /* Pointer to tokenizer hash
      table */\n  int argc,                       /* Number of elements in argv array
      */\n  const char * const *argv,       /* xCreate/xConnect argument array */\n
      \ sqlite3_vtab **ppVtab,          /* OUT: New sqlite3_vtab object */\n  char
      **pzErr                    /* OUT: sqlite3_malloc'd error message */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_libversion_number
      Src: /src/nss/lib/sqlite/sqlite3.c:216820,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pIdxInfo
    argTypes:
    - sqlite3_index_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216826
      start: 216817
    functionDepth: 1
    functionLinenumber: 216817
    functionLinenumberEnd: 216826
    functionName: fts5SetUniqueFlag
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_libversion_number
    linkageType: ''
    returnType: void
    signature: void fts5SetUniqueFlag(sqlite3_index_info *pIdxInfo)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:216897,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:216898,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:216899,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:216900,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:216901,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:216923,1
    - Dst: BitFlagTest
      Src: /src/nss/lib/sqlite/sqlite3.c:216936,1
    - Dst: BitFlagTest
      Src: /src/nss/lib/sqlite/sqlite3.c:216941,1
    - Dst: BitFlagTest
      Src: /src/nss/lib/sqlite/sqlite3.c:216950,1
    - Dst: BitFlagTest
      Src: /src/nss/lib/sqlite/sqlite3.c:216951,1
    - Dst: fts5SetUniqueFlag
      Src: /src/nss/lib/sqlite/sqlite3.c:216953,1
    - Dst: BitFlagAllTest
      Src: /src/nss/lib/sqlite/sqlite3.c:216954,1
    - Dst: BitFlagTest
      Src: /src/nss/lib/sqlite/sqlite3.c:216956,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:216964,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 65
    argCount: 2
    argNames:
    - pVTab
    - pInfo
    argTypes:
    - sqlite3_vtab*
    - sqlite3_index_info*
    assertStmts:
    - condition: ( SQLITE_INDEX_CONSTRAINT_EQ<SQLITE_INDEX_CONSTRAINT_MATCH )
      pos:
        line_end: 216896
        line_start: 216896
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( SQLITE_INDEX_CONSTRAINT_GT<SQLITE_INDEX_CONSTRAINT_MATCH )
      pos:
        line_end: 216897
        line_start: 216897
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( SQLITE_INDEX_CONSTRAINT_LE<SQLITE_INDEX_CONSTRAINT_MATCH )
      pos:
        line_end: 216900
        line_start: 216900
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( SQLITE_INDEX_CONSTRAINT_LE<SQLITE_INDEX_CONSTRAINT_MATCH )
      pos:
        line_end: 216898
        line_start: 216898
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( SQLITE_INDEX_CONSTRAINT_GE<SQLITE_INDEX_CONSTRAINT_MATCH )
      pos:
        line_end: 216899
        line_start: 216899
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 216974
      start: 216865
    functionDepth: 2
    functionLinenumber: 216865
    functionLinenumberEnd: 216974
    functionName: fts5BestIndexMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - BitFlagTest
    - ArraySize
    - assert
    - fts5SetUniqueFlag
    - BitFlagAllTest
    linkageType: ''
    returnType: int
    signature: int fts5BestIndexMethod(sqlite3_vtab *pVTab, sqlite3_index_info *pInfo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5StorageReset
      Src: /src/nss/lib/sqlite/sqlite3.c:216981,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pTab
    argTypes:
    - Fts5FullTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216982
      start: 216976
    functionDepth: 1
    functionLinenumber: 216976
    functionLinenumberEnd: 216982
    functionName: fts5NewTransaction
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5StorageReset
    linkageType: ''
    returnType: int
    signature: int fts5NewTransaction(Fts5FullTable *pTab)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fts5NewTransaction
      Src: /src/nss/lib/sqlite/sqlite3.c:216994,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:216997,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:217000,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - pVTab
    - ppCsr
    argTypes:
    - sqlite3_vtab*
    - sqlite3_vtab_cursor**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217011
      start: 216987
    functionDepth: 6
    functionLinenumber: 216987
    functionLinenumberEnd: 217011
    functionName: fts5OpenMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - fts5NewTransaction
    - sqlite3_malloc64
    linkageType: ''
    returnType: int
    signature: int fts5OpenMethod(sqlite3_vtab *pVTab, sqlite3_vtab_cursor **ppCsr)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pCsr
    argTypes:
    - Fts5Cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217018
      start: 217013
    functionDepth: 0
    functionLinenumber: 217013
    functionLinenumberEnd: 217018
    functionName: fts5StmtType
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fts5StmtType(Fts5Cursor *pCsr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CsrFlagSet
      Src: /src/nss/lib/sqlite/sqlite3.c:217026,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pCsr
    argTypes:
    - Fts5Cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217032
      start: 217025
    functionDepth: 1
    functionLinenumber: 217025
    functionLinenumberEnd: 217032
    functionName: fts5CsrNewrow
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - CsrFlagSet
    linkageType: ''
    returnType: void
    signature: void fts5CsrNewrow(Fts5Cursor *pCsr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:217039,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:217040,1
    - Dst: fts5StmtType
      Src: /src/nss/lib/sqlite/sqlite3.c:217042,1
    - Dst: sqlite3Fts5StorageStmtRelease
      Src: /src/nss/lib/sqlite/sqlite3.c:217043,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:217047,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:217048,1
    - Dst: sqlite3Fts5ExprFree
      Src: /src/nss/lib/sqlite/sqlite3.c:217052,1
    - Dst: Fts5Auxdata*::xDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:217057,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:217058,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:217061,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:217062,1
    - Dst: CsrFlagTest
      Src: /src/nss/lib/sqlite/sqlite3.c:217064,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:217065,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:217066,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:217069,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - pCsr
    argTypes:
    - Fts5Cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217070
      start: 217034
    functionDepth: 26
    functionLinenumber: 217034
    functionLinenumberEnd: 217070
    functionName: fts5FreeCursorComponents
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - Fts5Auxdata*::xDelete
    - CsrFlagTest
    - sqlite3Fts5StorageStmtRelease
    - memset
    - fts5StmtType
    - sqlite3Fts5ExprFree
    - sqlite3_finalize
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void fts5FreeCursorComponents(Fts5Cursor *pCsr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fts5FreeCursorComponents
      Src: /src/nss/lib/sqlite/sqlite3.c:217083,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:217088,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - pCursor
    argTypes:
    - sqlite3_vtab_cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217091
      start: 217077
    functionDepth: 27
    functionLinenumber: 217077
    functionLinenumberEnd: 217091
    functionName: fts5CloseMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5FreeCursorComponents
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int fts5CloseMethod(sqlite3_vtab_cursor *pCursor)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:217097,1
    - Dst: CsrFlagSet
      Src: /src/nss/lib/sqlite/sqlite3.c:217100,1
    - Dst: sqlite3_column_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:217109,1
    - Dst: sqlite3_column_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:217110,1
    - Dst: sqlite3_column_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:217111,1
    - Dst: fts5GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:217117,1
    - Dst: fts5CsrNewrow
      Src: /src/nss/lib/sqlite/sqlite3.c:217125,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - pCsr
    argTypes:
    - Fts5Cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217129
      start: 217093
    functionDepth: 27
    functionLinenumber: 217093
    functionLinenumberEnd: 217129
    functionName: fts5SorterNext
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5CsrNewrow
    - sqlite3_step
    - sqlite3_column_blob
    - sqlite3_column_bytes
    - sqlite3_column_int64
    - fts5GetVarint32
    - CsrFlagSet
    linkageType: ''
    returnType: int
    signature: int fts5SorterNext(Fts5Cursor *pCsr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CsrFlagSet
      Src: /src/nss/lib/sqlite/sqlite3.c:217142,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - pTab
    argTypes:
    - Fts5FullTable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217145
      start: 217136
    functionDepth: 1
    functionLinenumber: 217136
    functionLinenumberEnd: 217145
    functionName: fts5TripCursors
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - CsrFlagSet
    linkageType: ''
    returnType: void
    signature: void fts5TripCursors(Fts5FullTable *pTab)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:217161,1
    - Dst: CsrFlagTest
      Src: /src/nss/lib/sqlite/sqlite3.c:217162,1
    - Dst: sqlite3Fts5ExprRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:217165,1
    - Dst: sqlite3Fts5ExprFirst
      Src: /src/nss/lib/sqlite/sqlite3.c:217167,1
    - Dst: sqlite3Fts5ExprRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:217168,1
    - Dst: CsrFlagClear
      Src: /src/nss/lib/sqlite/sqlite3.c:217172,1
    - Dst: fts5CsrNewrow
      Src: /src/nss/lib/sqlite/sqlite3.c:217173,1
    - Dst: sqlite3Fts5ExprEof
      Src: /src/nss/lib/sqlite/sqlite3.c:217174,1
    - Dst: CsrFlagSet
      Src: /src/nss/lib/sqlite/sqlite3.c:217175,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - pCsr
    - pbSkip
    argTypes:
    - Fts5Cursor*
    - int*
    assertStmts:
    - condition: ( *pbSkip==0 )
      pos:
        line_end: 217160
        line_start: 217160
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 217180
      start: 217159
    functionDepth: 13
    functionLinenumber: 217159
    functionLinenumberEnd: 217180
    functionName: fts5CursorReseek
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5CsrNewrow
    - CsrFlagTest
    - assert
    - sqlite3Fts5ExprRowid
    - CsrFlagClear
    - sqlite3Fts5ExprFirst
    - sqlite3Fts5ExprEof
    - CsrFlagSet
    linkageType: ''
    returnType: int
    signature: int fts5CursorReseek(Fts5Cursor *pCsr, int *pbSkip)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:217195,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:217198,1
    - Dst: CsrFlagTest
      Src: /src/nss/lib/sqlite/sqlite3.c:217198,1
    - Dst: fts5CursorReseek
      Src: /src/nss/lib/sqlite/sqlite3.c:217202,1
    - Dst: sqlite3Fts5ExprNext
      Src: /src/nss/lib/sqlite/sqlite3.c:217203,1
    - Dst: CsrFlagSet
      Src: /src/nss/lib/sqlite/sqlite3.c:217204,1
    - Dst: sqlite3Fts5ExprEof
      Src: /src/nss/lib/sqlite/sqlite3.c:217204,1
    - Dst: fts5CsrNewrow
      Src: /src/nss/lib/sqlite/sqlite3.c:217205,1
    - Dst: CsrFlagSet
      Src: /src/nss/lib/sqlite/sqlite3.c:217209,1
    - Dst: fts5SorterNext
      Src: /src/nss/lib/sqlite/sqlite3.c:217215,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:217220,1
    - Dst: CsrFlagSet
      Src: /src/nss/lib/sqlite/sqlite3.c:217222,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:217223,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 1
    argNames:
    - pCursor
    argTypes:
    - sqlite3_vtab_cursor*
    assertStmts:
    - condition: "( (pCsr->ePlan<3)==\n          (pCsr->ePlan==FTS5_PLAN_MATCH ||
        pCsr->ePlan==FTS5_PLAN_SOURCE) \n  )"
      pos:
        line_end: 217196
        line_start: 217194
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( !CsrFlagTest(pCsr, FTS5CSR_EOF) )
      pos:
        line_end: 217197
        line_start: 217197
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 217232
      start: 217191
    functionDepth: 28
    functionLinenumber: 217191
    functionLinenumberEnd: 217232
    functionName: fts5NextMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5CsrNewrow
    - CsrFlagTest
    - sqlite3_step
    - sqlite3_reset
    - fts5SorterNext
    - fts5CursorReseek
    - sqlite3Fts5ExprNext
    - assert
    - sqlite3Fts5ExprEof
    - CsrFlagSet
    linkageType: ''
    returnType: int
    signature: int fts5NextMethod(sqlite3_vtab_cursor *pCursor)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/nss/lib/sqlite/sqlite3.c:217246,1
    - Dst: sqlite3_vmprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:217247,1
    - Dst: sqlite3_prepare_v3
      Src: /src/nss/lib/sqlite/sqlite3.c:217251,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:217254,1
    - Dst: sqlite3_errmsg
      Src: /src/nss/lib/sqlite/sqlite3.c:217254,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:217256,1
    - Dst: va_end
      Src: /src/nss/lib/sqlite/sqlite3.c:217259,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - ppStmt
    - pConfig
    - zFmt
    argTypes:
    - sqlite3_stmt**
    - Fts5Config*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217262
      start: 217235
    functionDepth: 28
    functionLinenumber: 217235
    functionLinenumberEnd: 217262
    functionName: fts5PrepareStatement
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_vmprintf
    - va_end
    - sqlite3_mprintf
    - sqlite3_errmsg
    - va_start
    - sqlite3_prepare_v3
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int fts5PrepareStatement(\n  sqlite3_stmt **ppStmt,\n  Fts5Config
      *pConfig, \n  const char *zFmt,\n  ...\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5ExprPhraseCount
      Src: /src/nss/lib/sqlite/sqlite3.c:217277,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:217279,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:217281,1
    - Dst: fts5PrepareStatement
      Src: /src/nss/lib/sqlite/sqlite3.c:217291,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:217301,1
    - Dst: fts5SorterNext
      Src: /src/nss/lib/sqlite/sqlite3.c:217303,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:217308,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:217309,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - pTab
    - pCsr
    - bDesc
    argTypes:
    - Fts5FullTable*
    - Fts5Cursor*
    - int
    assertStmts:
    - condition: ( pTab->pSortCsr==0 )
      pos:
        line_end: 217300
        line_start: 217300
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 217314
      start: 217264
    functionDepth: 29
    functionLinenumber: 217264
    functionLinenumberEnd: 217314
    functionName: fts5CursorFirstSorted
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_malloc64
    - sqlite3Fts5ExprPhraseCount
    - fts5SorterNext
    - memset
    - assert
    - sqlite3_finalize
    - sqlite3_free
    - fts5PrepareStatement
    linkageType: ''
    returnType: int
    signature: "int fts5CursorFirstSorted(\n  Fts5FullTable *pTab, \n  Fts5Cursor
      *pCsr, \n  int bDesc\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5ExprFirst
      Src: /src/nss/lib/sqlite/sqlite3.c:217319,1
    - Dst: sqlite3Fts5ExprEof
      Src: /src/nss/lib/sqlite/sqlite3.c:217320,1
    - Dst: CsrFlagSet
      Src: /src/nss/lib/sqlite/sqlite3.c:217321,1
    - Dst: fts5CsrNewrow
      Src: /src/nss/lib/sqlite/sqlite3.c:217323,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - pTab
    - pCsr
    - bDesc
    argTypes:
    - Fts5FullTable*
    - Fts5Cursor*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217325
      start: 217316
    functionDepth: 13
    functionLinenumber: 217316
    functionLinenumberEnd: 217325
    functionName: fts5CursorFirst
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5ExprEof
    - fts5CsrNewrow
    - sqlite3Fts5ExprFirst
    - CsrFlagSet
    linkageType: ''
    returnType: int
    signature: int fts5CursorFirst(Fts5FullTable *pTab, Fts5Cursor *pCsr, int bDesc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:217345,1
    - Dst: sqlite3_strnicmp
      Src: /src/nss/lib/sqlite/sqlite3.c:217348,1
    - Dst: sqlite3Fts5IndexReads
      Src: /src/nss/lib/sqlite/sqlite3.c:217349,1
    - Dst: sqlite3_strnicmp
      Src: /src/nss/lib/sqlite/sqlite3.c:217351,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:217356,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - pTab
    - pCsr
    - zQuery
    argTypes:
    - Fts5FullTable*
    - Fts5Cursor*
    - char*
    assertStmts:
    - condition: ( pTab->p.base.zErrMsg==0 )
      pos:
        line_end: 217344
        line_start: 217344
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 217361
      start: 217333
    functionDepth: 10
    functionLinenumber: 217333
    functionLinenumberEnd: 217361
    functionName: fts5SpecialMatch
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_mprintf
    - sqlite3Fts5IndexReads
    - sqlite3_strnicmp
    linkageType: ''
    returnType: int
    signature: "int fts5SpecialMatch(\n  Fts5FullTable *pTab, \n  Fts5Cursor *pCsr,
      \n  const char *zQuery\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:217372,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - pTab
    - zName
    argTypes:
    - Fts5FullTable*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217377
      start: 217368
    functionDepth: 2
    functionLinenumber: 217368
    functionLinenumberEnd: 217377
    functionName: fts5FindAuxiliary
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_stricmp
    linkageType: ''
    returnType: Fts5Auxiliary
    signature: Fts5Auxiliary *fts5FindAuxiliary(Fts5FullTable *pTab, const char *zName)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5Mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:217389,1
    - Dst: sqlite3_prepare_v3
      Src: /src/nss/lib/sqlite/sqlite3.c:217392,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:217394,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:217395,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:217397,1
    - Dst: sqlite3_column_count
      Src: /src/nss/lib/sqlite/sqlite3.c:217399,1
    - Dst: sqlite3Fts5MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:217401,1
    - Dst: sqlite3_column_value
      Src: /src/nss/lib/sqlite/sqlite3.c:217405,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:217410,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:217411,1
    - Dst: fts5FindAuxiliary
      Src: /src/nss/lib/sqlite/sqlite3.c:217418,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:217420,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:217421,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 1
    argNames:
    - pCsr
    argTypes:
    - Fts5Cursor*
    assertStmts:
    - condition: ( rc==SQLITE_OK || pCsr->pRankArgStmt==0 )
      pos:
        line_end: 217394
        line_start: 217394
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( rc!=SQLITE_OK )
      pos:
        line_end: 217410
        line_start: 217410
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTab->p.base.zErrMsg==0 )
      pos:
        line_end: 217419
        line_start: 217419
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 217428
      start: 217380
    functionDepth: 28
    functionLinenumber: 217380
    functionLinenumberEnd: 217428
    functionName: fts5FindRankFunction
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5Mprintf
    - sqlite3_step
    - sqlite3_column_value
    - sqlite3Fts5MallocZero
    - sqlite3_column_count
    - assert
    - sqlite3_mprintf
    - sqlite3_prepare_v3
    - sqlite3_finalize
    - sqlite3_free
    - fts5FindAuxiliary
    linkageType: ''
    returnType: int
    signature: int fts5FindRankFunction(Fts5Cursor *pCsr)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:217438,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:217443,1
    - Dst: sqlite3Fts5ConfigParseRank
      Src: /src/nss/lib/sqlite/sqlite3.c:217445,1
    - Dst: CsrFlagSet
      Src: /src/nss/lib/sqlite/sqlite3.c:217450,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:217452,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - pConfig
    - pCsr
    - pRank
    argTypes:
    - Fts5Config*
    - Fts5Cursor*
    - sqlite3_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217466
      start: 217431
    functionDepth: 15
    functionLinenumber: 217431
    functionLinenumberEnd: 217466
    functionName: fts5CursorParseRank
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_mprintf
    - sqlite3_value_type
    - CsrFlagSet
    - sqlite3_value_text
    - sqlite3Fts5ConfigParseRank
    linkageType: ''
    returnType: int
    signature: "int fts5CursorParseRank(\n  Fts5Config *pConfig,\n  Fts5Cursor *pCsr,
      \n  sqlite3_value *pRank\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_numeric_type
      Src: /src/nss/lib/sqlite/sqlite3.c:217470,1
    - Dst: sqlite3_value_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:217472,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - pVal
    - iDefault
    argTypes:
    - sqlite3_value*
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217476
      start: 217468
    functionDepth: 6
    functionLinenumber: 217468
    functionLinenumberEnd: 217476
    functionName: fts5GetRowidLimit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_value_numeric_type
    - sqlite3_value_int64
    linkageType: ''
    returnType: i64
    signature: i64 fts5GetRowidLimit(sqlite3_value *pVal, i64 iDefault)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAM
      Src: /src/nss/lib/sqlite/sqlite3.c:217511,1
    - Dst: UNUSED_PARAM
      Src: /src/nss/lib/sqlite/sqlite3.c:217512,1
    - Dst: fts5FreeCursorComponents
      Src: /src/nss/lib/sqlite/sqlite3.c:217515,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:217516,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:217519,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:217520,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:217521,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:217522,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:217523,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:217524,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:217526,1
    - Dst: BitFlagTest
      Src: /src/nss/lib/sqlite/sqlite3.c:217534,1
    - Dst: BitFlagTest
      Src: /src/nss/lib/sqlite/sqlite3.c:217535,1
    - Dst: BitFlagTest
      Src: /src/nss/lib/sqlite/sqlite3.c:217536,1
    - Dst: BitFlagTest
      Src: /src/nss/lib/sqlite/sqlite3.c:217537,1
    - Dst: BitFlagTest
      Src: /src/nss/lib/sqlite/sqlite3.c:217538,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:217540,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:217541,1
    - Dst: fts5GetRowidLimit
      Src: /src/nss/lib/sqlite/sqlite3.c:217553,1
    - Dst: fts5GetRowidLimit
      Src: /src/nss/lib/sqlite/sqlite3.c:217554,1
    - Dst: fts5GetRowidLimit
      Src: /src/nss/lib/sqlite/sqlite3.c:217556,1
    - Dst: fts5GetRowidLimit
      Src: /src/nss/lib/sqlite/sqlite3.c:217557,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:217567,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:217568,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:217569,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:217570,1
    - Dst: fts5CursorFirst
      Src: /src/nss/lib/sqlite/sqlite3.c:217580,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:217582,1
    - Dst: fts5CursorParseRank
      Src: /src/nss/lib/sqlite/sqlite3.c:217585,1
    - Dst: fts5SpecialMatch
      Src: /src/nss/lib/sqlite/sqlite3.c:217591,1
    - Dst: sqlite3Fts5ExprNew
      Src: /src/nss/lib/sqlite/sqlite3.c:217594,1
    - Dst: fts5CursorFirstSorted
      Src: /src/nss/lib/sqlite/sqlite3.c:217598,1
    - Dst: fts5CursorFirst
      Src: /src/nss/lib/sqlite/sqlite3.c:217601,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:217607,1
    - Dst: sqlite3Fts5StorageStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:217615,1
    - Dst: fts5StmtType
      Src: /src/nss/lib/sqlite/sqlite3.c:217616,1
    - Dst: sqlite3_bind_value
      Src: /src/nss/lib/sqlite/sqlite3.c:217620,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:217622,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:217623,1
    - Dst: fts5NextMethod
      Src: /src/nss/lib/sqlite/sqlite3.c:217625,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 95
    argCount: 5
    argNames:
    - pCursor
    - idxNum
    - zUnused
    - nVal
    - apVal
    argTypes:
    - sqlite3_vtab_cursor*
    - int
    - char*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( iCol>=0 && iCol<=pConfig->nCol )
      pos:
        line_end: 217539
        line_start: 217539
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCsr->iLastRowid==LARGEST_INT64 )
      pos:
        line_end: 217568
        line_start: 217568
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCsr->pStmt==0 )
      pos:
        line_end: 217518
        line_start: 217518
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCsr->pRank==0 )
      pos:
        line_end: 217521
        line_start: 217521
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCsr->zRankArgs==0 )
      pos:
        line_end: 217523
        line_start: 217523
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pRowidEq==0 && pRowidLe==0 && pRowidGe==0 && pRank==0 )
      pos:
        line_end: 217566
        line_start: 217566
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nVal==0 && pMatch==0 && bOrderByRank==0 && bDesc==0 )
      pos:
        line_end: 217567
        line_start: 217567
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCsr->iFirstRowid==SMALLEST_INT64 )
      pos:
        line_end: 217569
        line_start: 217569
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCsr->pExpr==0 )
      pos:
        line_end: 217519
        line_start: 217519
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCsr->csrflags==0 )
      pos:
        line_end: 217520
        line_start: 217520
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCsr->zRank==0 )
      pos:
        line_end: 217522
        line_start: 217522
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iVal==nVal )
      pos:
        line_end: 217540
        line_start: 217540
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pzErrmsg==0 || pzErrmsg==&pTab->p.base.zErrMsg )
      pos:
        line_end: 217525
        line_start: 217525
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 217631
      start: 217489
    functionDepth: 30
    functionLinenumber: 217489
    functionLinenumberEnd: 217631
    functionName: fts5FilterMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - BitFlagTest
    - fts5CursorFirst
    - fts5CursorParseRank
    - fts5GetRowidLimit
    - UNUSED_PARAM
    - fts5CursorFirstSorted
    - memset
    - assert
    - fts5SpecialMatch
    - sqlite3_mprintf
    - sqlite3Fts5StorageStmt
    - fts5StmtType
    - sqlite3_bind_value
    - sqlite3_bind_int64
    - fts5NextMethod
    - sqlite3_value_text
    - fts5FreeCursorComponents
    - sqlite3Fts5ExprNew
    linkageType: ''
    returnType: int
    signature: "int fts5FilterMethod(\n  sqlite3_vtab_cursor *pCursor,   /* The cursor
      used for this query */\n  int idxNum,                     /* Strategy index
      */\n  const char *zUnused,            /* Unused */\n  int nVal,                       /*
      Number of elements in apVal */\n  sqlite3_value **apVal           /* Arguments
      for the indexing scheme */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CsrFlagTest
      Src: /src/nss/lib/sqlite/sqlite3.c:217639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pCursor
    argTypes:
    - sqlite3_vtab_cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217640
      start: 217637
    functionDepth: 1
    functionLinenumber: 217637
    functionLinenumberEnd: 217640
    functionName: fts5EofMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - CsrFlagTest
    linkageType: ''
    returnType: int
    signature: int fts5EofMethod(sqlite3_vtab_cursor *pCursor)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:217646,1
    - Dst: sqlite3Fts5ExprRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:217653,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - pCsr
    argTypes:
    - Fts5Cursor*
    assertStmts:
    - condition: "( pCsr->ePlan==FTS5_PLAN_MATCH \n       || pCsr->ePlan==FTS5_PLAN_SORTED_MATCH
        \n       || pCsr->ePlan==FTS5_PLAN_SOURCE \n  )"
      pos:
        line_end: 217648
        line_start: 217645
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 217655
      start: 217645
    functionDepth: 1
    functionLinenumber: 217645
    functionLinenumberEnd: 217655
    functionName: fts5CursorRowid
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3Fts5ExprRowid
    linkageType: ''
    returnType: i64
    signature: i64 fts5CursorRowid(Fts5Cursor *pCsr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:217667,1
    - Dst: CsrFlagTest
      Src: /src/nss/lib/sqlite/sqlite3.c:217667,1
    - Dst: fts5CursorRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:217676,1
    - Dst: sqlite3_column_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:217680,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - pCursor
    - pRowid
    argTypes:
    - sqlite3_vtab_cursor*
    - sqlite_int64*
    assertStmts:
    - condition: ( CsrFlagTest(pCsr, FTS5CSR_EOF)==0 )
      pos:
        line_end: 217666
        line_start: 217666
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 217685
      start: 217663
    functionDepth: 2
    functionLinenumber: 217663
    functionLinenumberEnd: 217685
    functionName: fts5RowidMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fts5CursorRowid
    - CsrFlagTest
    - sqlite3_column_int64
    linkageType: ''
    returnType: int
    signature: int fts5RowidMethod(sqlite3_vtab_cursor *pCursor, sqlite_int64 *pRowid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fts5StmtType
      Src: /src/nss/lib/sqlite/sqlite3.c:217700,1
    - Dst: sqlite3Fts5StorageStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:217701,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:217704,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:217705,1
    - Dst: CsrFlagTest
      Src: /src/nss/lib/sqlite/sqlite3.c:217705,1
    - Dst: CsrFlagTest
      Src: /src/nss/lib/sqlite/sqlite3.c:217708,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:217709,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:217710,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:217711,1
    - Dst: fts5CursorRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:217711,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:217712,1
    - Dst: CsrFlagClear
      Src: /src/nss/lib/sqlite/sqlite3.c:217715,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:217717,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - pCsr
    - bErrormsg
    argTypes:
    - Fts5Cursor*
    - int
    assertStmts:
    - condition: ( rc!=SQLITE_OK || pTab->p.base.zErrMsg==0 )
      pos:
        line_end: 217703
        line_start: 217703
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( CsrFlagTest(pCsr, FTS5CSR_REQUIRE_CONTENT) )
      pos:
        line_end: 217704
        line_start: 217704
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCsr->pExpr )
      pos:
        line_end: 217708
        line_start: 217708
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 217724
      start: 217694
    functionDepth: 27
    functionLinenumber: 217694
    functionLinenumberEnd: 217724
    functionName: fts5SeekCursor
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - CsrFlagTest
    - sqlite3_reset
    - sqlite3_step
    - sqlite3Fts5StorageStmt
    - assert
    - fts5CursorRowid
    - fts5StmtType
    - sqlite3_bind_int64
    - CsrFlagClear
    linkageType: ''
    returnType: int
    signature: int fts5SeekCursor(Fts5Cursor *pCsr, int bErrormsg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/nss/lib/sqlite/sqlite3.c:217728,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:217729,1
    - Dst: sqlite3_vmprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:217730,1
    - Dst: va_end
      Src: /src/nss/lib/sqlite/sqlite3.c:217731,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - p
    - zFormat
    argTypes:
    - Fts5FullTable*
    - char*
    assertStmts:
    - condition: ( p->p.base.zErrMsg==0 )
      pos:
        line_end: 217728
        line_start: 217728
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 217732
      start: 217726
    functionDepth: 9
    functionLinenumber: 217726
    functionLinenumberEnd: 217732
    functionName: fts5SetVtabError
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_vmprintf
    - va_start
    - va_end
    linkageType: ''
    returnType: void
    signature: void fts5SetVtabError(Fts5FullTable *p, const char *zFormat, ...)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:217758,1
    - Dst: fts5SetVtabError
      Src: /src/nss/lib/sqlite/sqlite3.c:217760,1
    - Dst: sqlite3Fts5StorageDeleteAll
      Src: /src/nss/lib/sqlite/sqlite3.c:217766,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:217768,1
    - Dst: fts5SetVtabError
      Src: /src/nss/lib/sqlite/sqlite3.c:217770,1
    - Dst: sqlite3Fts5StorageRebuild
      Src: /src/nss/lib/sqlite/sqlite3.c:217775,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:217777,1
    - Dst: sqlite3Fts5StorageOptimize
      Src: /src/nss/lib/sqlite/sqlite3.c:217778,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:217779,1
    - Dst: sqlite3_value_int
      Src: /src/nss/lib/sqlite/sqlite3.c:217780,1
    - Dst: sqlite3Fts5StorageMerge
      Src: /src/nss/lib/sqlite/sqlite3.c:217781,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:217782,1
    - Dst: sqlite3Fts5StorageIntegrity
      Src: /src/nss/lib/sqlite/sqlite3.c:217783,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:217785,1
    - Dst: sqlite3_value_int
      Src: /src/nss/lib/sqlite/sqlite3.c:217786,1
    - Dst: sqlite3Fts5IndexLoadConfig
      Src: /src/nss/lib/sqlite/sqlite3.c:217789,1
    - Dst: sqlite3Fts5ConfigSetValue
      Src: /src/nss/lib/sqlite/sqlite3.c:217791,1
    - Dst: sqlite3Fts5StorageConfigValue
      Src: /src/nss/lib/sqlite/sqlite3.c:217797,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 3
    argNames:
    - pTab
    - zCmd
    - pVal
    argTypes:
    - Fts5FullTable*
    - char*
    - sqlite3_value*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217802
      start: 217749
    functionDepth: 33
    functionLinenumber: 217749
    functionLinenumberEnd: 217802
    functionName: fts5SpecialInsert
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5ConfigSetValue
    - sqlite3Fts5StorageDeleteAll
    - sqlite3Fts5StorageIntegrity
    - sqlite3_value_int
    - sqlite3Fts5IndexLoadConfig
    - sqlite3Fts5StorageMerge
    - fts5SetVtabError
    - sqlite3Fts5StorageConfigValue
    - sqlite3Fts5StorageRebuild
    - sqlite3_stricmp
    - sqlite3Fts5StorageOptimize
    linkageType: ''
    returnType: int
    signature: "int fts5SpecialInsert(\n  Fts5FullTable *pTab,            /* Fts5
      table object */\n  const char *zCmd,               /* Text inserted into table-name
      column */\n  sqlite3_value *pVal             /* Value inserted into rank column
      */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:217809,1
    - Dst: sqlite3_value_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:217811,1
    - Dst: sqlite3Fts5StorageDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:217812,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - pTab
    - apVal
    argTypes:
    - Fts5FullTable*
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217815
      start: 217804
    functionDepth: 1
    functionLinenumber: 217804
    functionLinenumberEnd: 217815
    functionName: fts5SpecialDelete
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_value_int64
    - sqlite3_value_type
    - sqlite3Fts5StorageDelete
    linkageType: ''
    returnType: int
    signature: "int fts5SpecialDelete(\n  Fts5FullTable *pTab, \n  sqlite3_value **apVal\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5StorageContentInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:217825,1
    - Dst: sqlite3Fts5StorageIndexInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:217828,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - pRc
    - pTab
    - apVal
    - piRowid
    argTypes:
    - int*
    - Fts5FullTable*
    - sqlite3_value**
    - i64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217831
      start: 217817
    functionDepth: 1
    functionLinenumber: 217817
    functionLinenumberEnd: 217831
    functionName: fts5StorageInsert
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5StorageIndexInsert
    - sqlite3Fts5StorageContentInsert
    linkageType: ''
    returnType: void
    signature: "void fts5StorageInsert(\n  int *pRc, \n  Fts5FullTable *pTab, \n  sqlite3_value
      **apVal, \n  i64 *piRowid\n)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:217859,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:217861,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:217862,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:217863,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:217863,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:217864,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:217866,1
    - Dst: fts5TripCursors
      Src: /src/nss/lib/sqlite/sqlite3.c:217870,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:217872,1
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:217874,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:217877,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:217879,1
    - Dst: fts5SpecialDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:217881,1
    - Dst: fts5SpecialInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:217883,1
    - Dst: sqlite3_vtab_on_conflict
      Src: /src/nss/lib/sqlite/sqlite3.c:217899,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:217902,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:217903,1
    - Dst: fts5IsContentless
      Src: /src/nss/lib/sqlite/sqlite3.c:217907,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:217908,1
    - Dst: sqlite3_value_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:217917,1
    - Dst: sqlite3Fts5StorageDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:217918,1
    - Dst: sqlite3_value_numeric_type
      Src: /src/nss/lib/sqlite/sqlite3.c:217923,1
    - Dst: sqlite3_value_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:217932,1
    - Dst: sqlite3Fts5StorageDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:217933,1
    - Dst: fts5StorageInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:217935,1
    - Dst: sqlite3_value_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:217940,1
    - Dst: sqlite3_value_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:217941,1
    - Dst: sqlite3Fts5StorageDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:217944,1
    - Dst: sqlite3Fts5StorageDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:217946,1
    - Dst: fts5StorageInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:217948,1
    - Dst: sqlite3Fts5StorageContentInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:217950,1
    - Dst: sqlite3Fts5StorageDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:217952,1
    - Dst: sqlite3Fts5StorageIndexInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:217955,1
    - Dst: sqlite3Fts5StorageDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:217959,1
    - Dst: fts5StorageInsert
      Src: /src/nss/lib/sqlite/sqlite3.c:217960,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 62
    argCount: 4
    argNames:
    - pVtab
    - nArg
    - apVal
    - pRowid
    argTypes:
    - sqlite3_vtab*
    - int
    - sqlite3_value**
    - sqlite_int64*
    assertStmts:
    - condition: ( pTab->p.pConfig->pzErrmsg==0 )
      pos:
        line_end: 217865
        line_start: 217865
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nArg!=1 || eType0==SQLITE_INTEGER )
      pos:
        line_end: 217902
        line_start: 217902
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( nArg==1 || nArg==(2+pConfig->nCol+2) )
      pos:
        line_end: 217861
        line_start: 217861
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( eType0==SQLITE_INTEGER || eType0==SQLITE_NULL )
      pos:
        line_end: 217901
        line_start: 217901
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pVtab->zErrMsg==0 )
      pos:
        line_end: 217860
        line_start: 217860
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTab->ts.eState==1 )
      pos:
        line_end: 217858
        line_start: 217858
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: "( sqlite3_value_type(apVal[0])==SQLITE_INTEGER \n       || sqlite3_value_type(apVal[0])==SQLITE_NULL
        \n  )"
      pos:
        line_end: 217864
        line_start: 217862
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 217968
      start: 217847
    functionDepth: 34
    functionLinenumber: 217847
    functionLinenumberEnd: 217968
    functionName: fts5UpdateMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5StorageDelete
    - sqlite3Fts5StorageContentInsert
    - sqlite3_value_numeric_type
    - sqlite3Fts5StorageIndexInsert
    - assert
    - fts5SpecialDelete
    - fts5TripCursors
    - sqlite3_mprintf
    - sqlite3_value_type
    - sqlite3_vtab_on_conflict
    - fts5StorageInsert
    - sqlite3_value_int64
    - sqlite3_value_text
    - fts5IsContentless
    - fts5SpecialInsert
    - sqlite3_stricmp
    linkageType: ''
    returnType: int
    signature: "int fts5UpdateMethod(\n  sqlite3_vtab *pVtab,            /* Virtual
      table handle */\n  int nArg,                       /* Size of argument array
      */\n  sqlite3_value **apVal,          /* Array of arguments */\n  sqlite_int64
      *pRowid            /* OUT: The affected (or effected) rowid */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts5CheckTransactionState
      Src: /src/nss/lib/sqlite/sqlite3.c:217976,1
    - Dst: fts5TripCursors
      Src: /src/nss/lib/sqlite/sqlite3.c:217978,1
    - Dst: sqlite3Fts5StorageSync
      Src: /src/nss/lib/sqlite/sqlite3.c:217979,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - pVtab
    argTypes:
    - sqlite3_vtab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217982
      start: 217973
    functionDepth: 2
    functionLinenumber: 217973
    functionLinenumberEnd: 217982
    functionName: fts5SyncMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5TripCursors
    - sqlite3Fts5StorageSync
    - fts5CheckTransactionState
    linkageType: ''
    returnType: int
    signature: int fts5SyncMethod(sqlite3_vtab *pVtab)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts5CheckTransactionState
      Src: /src/nss/lib/sqlite/sqlite3.c:217988,1
    - Dst: fts5NewTransaction
      Src: /src/nss/lib/sqlite/sqlite3.c:217989,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pVtab
    argTypes:
    - sqlite3_vtab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217991
      start: 217987
    functionDepth: 2
    functionLinenumber: 217987
    functionLinenumberEnd: 217991
    functionName: fts5BeginMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5NewTransaction
    - fts5CheckTransactionState
    linkageType: ''
    returnType: int
    signature: int fts5BeginMethod(sqlite3_vtab *pVtab)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAM
      Src: /src/nss/lib/sqlite/sqlite3.c:217999,1
    - Dst: fts5CheckTransactionState
      Src: /src/nss/lib/sqlite/sqlite3.c:218000,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pVtab
    argTypes:
    - sqlite3_vtab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218002
      start: 217998
    functionDepth: 1
    functionLinenumber: 217998
    functionLinenumberEnd: 218002
    functionName: fts5CommitMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5CheckTransactionState
    - UNUSED_PARAM
    linkageType: ''
    returnType: int
    signature: int fts5CommitMethod(sqlite3_vtab *pVtab)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts5CheckTransactionState
      Src: /src/nss/lib/sqlite/sqlite3.c:218011,1
    - Dst: sqlite3Fts5StorageRollback
      Src: /src/nss/lib/sqlite/sqlite3.c:218012,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pVtab
    argTypes:
    - sqlite3_vtab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218014
      start: 218008
    functionDepth: 1
    functionLinenumber: 218008
    functionLinenumberEnd: 218014
    functionName: fts5RollbackMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5StorageRollback
    - fts5CheckTransactionState
    linkageType: ''
    returnType: int
    signature: int fts5RollbackMethod(sqlite3_vtab *pVtab)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pCtx
    argTypes:
    - Fts5Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218021
      start: 218018
    functionDepth: 0
    functionLinenumber: 218018
    functionLinenumberEnd: 218021
    functionName: fts5ApiUserData
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *fts5ApiUserData(Fts5Context *pCtx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pCtx
    argTypes:
    - Fts5Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218026
      start: 218023
    functionDepth: 0
    functionLinenumber: 218023
    functionLinenumberEnd: 218026
    functionName: fts5ApiColumnCount
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fts5ApiColumnCount(Fts5Context *pCtx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5StorageSize
      Src: /src/nss/lib/sqlite/sqlite3.c:218035,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pCtx
    - iCol
    - pnToken
    argTypes:
    - Fts5Context*
    - int
    - sqlite3_int64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218036
      start: 218028
    functionDepth: 1
    functionLinenumber: 218028
    functionLinenumberEnd: 218036
    functionName: fts5ApiColumnTotalSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5StorageSize
    linkageType: ''
    returnType: int
    signature: "int fts5ApiColumnTotalSize(\n  Fts5Context *pCtx, \n  int iCol, \n
      \ sqlite3_int64 *pnToken\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5StorageRowCount
      Src: /src/nss/lib/sqlite/sqlite3.c:218041,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pCtx
    - pnRow
    argTypes:
    - Fts5Context*
    - i64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218042
      start: 218038
    functionDepth: 1
    functionLinenumber: 218038
    functionLinenumberEnd: 218042
    functionName: fts5ApiRowCount
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5StorageRowCount
    linkageType: ''
    returnType: int
    signature: int fts5ApiRowCount(Fts5Context *pCtx, i64 *pnRow)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5Tokenize
      Src: /src/nss/lib/sqlite/sqlite3.c:218052,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pCtx
    - pText
    - nText
    - pUserData
    argTypes:
    - Fts5Context*
    - char*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218055
      start: 218044
    functionDepth: 1
    functionLinenumber: 218044
    functionLinenumberEnd: 218055
    functionName: fts5ApiTokenize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5Tokenize
    linkageType: ''
    returnType: int
    signature: "int fts5ApiTokenize(\n  Fts5Context *pCtx, \n  const char *pText,
      int nText, \n  void *pUserData,\n  int (*xToken)(void*, int, const char*, int,
      int, int)\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5ExprPhraseCount
      Src: /src/nss/lib/sqlite/sqlite3.c:218059,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pCtx
    argTypes:
    - Fts5Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218060
      start: 218057
    functionDepth: 1
    functionLinenumber: 218057
    functionLinenumberEnd: 218060
    functionName: fts5ApiPhraseCount
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5ExprPhraseCount
    linkageType: ''
    returnType: int
    signature: int fts5ApiPhraseCount(Fts5Context *pCtx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5ExprPhraseSize
      Src: /src/nss/lib/sqlite/sqlite3.c:218064,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pCtx
    - iPhrase
    argTypes:
    - Fts5Context*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218065
      start: 218062
    functionDepth: 1
    functionLinenumber: 218062
    functionLinenumberEnd: 218065
    functionName: fts5ApiPhraseSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5ExprPhraseSize
    linkageType: ''
    returnType: int
    signature: int fts5ApiPhraseSize(Fts5Context *pCtx, int iPhrase)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fts5IsContentless
      Src: /src/nss/lib/sqlite/sqlite3.c:218075,1
    - Dst: fts5SeekCursor
      Src: /src/nss/lib/sqlite/sqlite3.c:218081,1
    - Dst: sqlite3_column_text
      Src: /src/nss/lib/sqlite/sqlite3.c:218083,1
    - Dst: sqlite3_column_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:218084,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - pCtx
    - iCol
    - pz
    - pn
    argTypes:
    - Fts5Context*
    - int
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218088
      start: 218067
    functionDepth: 28
    functionLinenumber: 218067
    functionLinenumberEnd: 218088
    functionName: fts5ApiColumnText
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_column_text
    - fts5IsContentless
    - fts5SeekCursor
    - sqlite3_column_bytes
    linkageType: ''
    returnType: int
    signature: "int fts5ApiColumnText(\n  Fts5Context *pCtx, \n  int iCol, \n  const
      char **pz, \n  int *pn\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CsrFlagTest
      Src: /src/nss/lib/sqlite/sqlite3.c:218100,1
    - Dst: sqlite3Fts5ExprClearPoslists
      Src: /src/nss/lib/sqlite/sqlite3.c:218105,1
    - Dst: fts5ApiColumnText
      Src: /src/nss/lib/sqlite/sqlite3.c:218109,1
    - Dst: sqlite3Fts5ExprPopulatePoslists
      Src: /src/nss/lib/sqlite/sqlite3.c:218111,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:218116,1
    - Dst: sqlite3Fts5ExprCheckPoslists
      Src: /src/nss/lib/sqlite/sqlite3.c:218119,1
    - Dst: CsrFlagClear
      Src: /src/nss/lib/sqlite/sqlite3.c:218122,1
    - Dst: sqlite3Fts5ExprPoslist
      Src: /src/nss/lib/sqlite/sqlite3.c:218131,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 4
    argNames:
    - pCsr
    - iPhrase
    - pa
    - pn
    argTypes:
    - Fts5Cursor*
    - int
    - u8**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218135
      start: 218090
    functionDepth: 29
    functionLinenumber: 218090
    functionLinenumberEnd: 218135
    functionName: fts5CsrPoslist
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - CsrFlagTest
    - sqlite3Fts5ExprPopulatePoslists
    - sqlite3Fts5ExprCheckPoslists
    - CsrFlagClear
    - fts5ApiColumnText
    - sqlite3Fts5ExprPoslist
    - sqlite3_free
    - sqlite3Fts5ExprClearPoslists
    linkageType: ''
    returnType: int
    signature: "int fts5CsrPoslist(\n  Fts5Cursor *pCsr, \n  int iPhrase, \n  const
      u8 **pa,\n  int *pn\n)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5ExprPhraseCount
      Src: /src/nss/lib/sqlite/sqlite3.c:218148,1
    - Dst: sqlite3Fts5MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:218151,1
    - Dst: fts5CsrPoslist
      Src: /src/nss/lib/sqlite/sqlite3.c:218163,1
    - Dst: sqlite3Fts5PoslistReaderInit
      Src: /src/nss/lib/sqlite/sqlite3.c:218165,1
    - Dst: sqlite3_realloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:218185,1
    - Dst: FTS5_POS2COLUMN
      Src: /src/nss/lib/sqlite/sqlite3.c:218198,1
    - Dst: FTS5_POS2OFFSET
      Src: /src/nss/lib/sqlite/sqlite3.c:218199,1
    - Dst: sqlite3Fts5PoslistReaderNext
      Src: /src/nss/lib/sqlite/sqlite3.c:218204,1
    - Dst: CsrFlagClear
      Src: /src/nss/lib/sqlite/sqlite3.c:218209,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 48
    argCount: 1
    argNames:
    - pCsr
    argTypes:
    - Fts5Cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218212
      start: 218142
    functionDepth: 30
    functionLinenumber: 218142
    functionLinenumberEnd: 218212
    functionName: fts5CacheInstArray
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5PoslistReaderNext
    - sqlite3Fts5ExprPhraseCount
    - sqlite3Fts5MallocZero
    - fts5CsrPoslist
    - FTS5_POS2COLUMN
    - CsrFlagClear
    - FTS5_POS2OFFSET
    - sqlite3Fts5PoslistReaderInit
    - sqlite3_realloc64
    linkageType: ''
    returnType: int
    signature: int fts5CacheInstArray(Fts5Cursor *pCsr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CsrFlagTest
      Src: /src/nss/lib/sqlite/sqlite3.c:218217,1
    - Dst: fts5CacheInstArray
      Src: /src/nss/lib/sqlite/sqlite3.c:218218,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - pCtx
    - pnInst
    argTypes:
    - Fts5Context*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218222
      start: 218214
    functionDepth: 31
    functionLinenumber: 218214
    functionLinenumberEnd: 218222
    functionName: fts5ApiInstCount
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5CacheInstArray
    - CsrFlagTest
    linkageType: ''
    returnType: int
    signature: int fts5ApiInstCount(Fts5Context *pCtx, int *pnInst)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CsrFlagTest
      Src: /src/nss/lib/sqlite/sqlite3.c:218233,1
    - Dst: fts5CacheInstArray
      Src: /src/nss/lib/sqlite/sqlite3.c:218234,1
    - Dst: fts5IsOffsetless
      Src: /src/nss/lib/sqlite/sqlite3.c:218239,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 5
    argNames:
    - pCtx
    - iIdx
    - piPhrase
    - piCol
    - piOff
    argTypes:
    - Fts5Context*
    - int
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218251
      start: 218224
    functionDepth: 31
    functionLinenumber: 218224
    functionLinenumberEnd: 218251
    functionName: fts5ApiInst
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5CacheInstArray
    - CsrFlagTest
    - fts5IsOffsetless
    linkageType: ''
    returnType: int
    signature: "int fts5ApiInst(\n  Fts5Context *pCtx, \n  int iIdx, \n  int *piPhrase,
      \n  int *piCol, \n  int *piOff\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts5CursorRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:218254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pCtx
    argTypes:
    - Fts5Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218255
      start: 218253
    functionDepth: 2
    functionLinenumber: 218253
    functionLinenumberEnd: 218255
    functionName: fts5ApiRowid
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5CursorRowid
    linkageType: ''
    returnType: sqlite3_int64
    signature: sqlite3_int64 fts5ApiRowid(Fts5Context *pCtx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAM2
      Src: /src/nss/lib/sqlite/sqlite3.c:218266,1
    - Dst: UNUSED_PARAM2
      Src: /src/nss/lib/sqlite/sqlite3.c:218267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - pContext
    - tflags
    - pUnused
    - nUnused
    - iUnused1
    - iUnused2
    argTypes:
    - void*
    - int
    - char*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218272
      start: 218257
    functionDepth: 1
    functionLinenumber: 218257
    functionLinenumberEnd: 218272
    functionName: fts5ColumnSizeCb
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAM2
    linkageType: ''
    returnType: int
    signature: "int fts5ColumnSizeCb(\n  void *pContext,                 /* Pointer
      to int */\n  int tflags,\n  const char *pUnused,            /* Buffer containing
      token */\n  int nUnused,                    /* Size of token in bytes */\n  int
      iUnused1,                   /* Start offset of token */\n  int iUnused2                    /*
      End offset of token */\n)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CsrFlagTest
      Src: /src/nss/lib/sqlite/sqlite3.c:218280,1
    - Dst: fts5CursorRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:218282,1
    - Dst: sqlite3Fts5StorageDocsize
      Src: /src/nss/lib/sqlite/sqlite3.c:218283,1
    - Dst: fts5ApiColumnText
      Src: /src/nss/lib/sqlite/sqlite3.c:218298,1
    - Dst: sqlite3Fts5Tokenize
      Src: /src/nss/lib/sqlite/sqlite3.c:218300,1
    - Dst: CsrFlagClear
      Src: /src/nss/lib/sqlite/sqlite3.c:218307,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 3
    argNames:
    - pCtx
    - iCol
    - pnToken
    argTypes:
    - Fts5Context*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218322
      start: 218274
    functionDepth: 29
    functionLinenumber: 218274
    functionLinenumberEnd: 218322
    functionName: fts5ApiColumnSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - CsrFlagTest
    - sqlite3Fts5StorageDocsize
    - fts5CursorRowid
    - sqlite3Fts5Tokenize
    - CsrFlagClear
    - fts5ApiColumnText
    linkageType: ''
    returnType: int
    signature: int fts5ApiColumnSize(Fts5Context *pCtx, int iCol, int *pnToken)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Fts5Auxdata*::xDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:218343,1
    - Dst: sqlite3Fts5MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:218347,1
    - Dst: xDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:218349,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - pCtx
    - pPtr
    argTypes:
    - Fts5Context*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218360
      start: 218327
    functionDepth: 7
    functionLinenumber: 218327
    functionLinenumberEnd: 218360
    functionName: fts5ApiSetAuxdata
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - Fts5Auxdata*::xDelete
    - sqlite3Fts5MallocZero
    - xDelete
    linkageType: ''
    returnType: int
    signature: "int fts5ApiSetAuxdata(\n  Fts5Context *pCtx,              /* Fts5
      context */\n  void *pPtr,                     /* Pointer to save as auxdata
      */\n  void(*xDelete)(void*)           /* Destructor for pPtr (or NULL) */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - pCtx
    - bClear
    argTypes:
    - Fts5Context*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218380
      start: 218362
    functionDepth: 0
    functionLinenumber: 218362
    functionLinenumberEnd: 218380
    functionName: fts5ApiGetAuxdata
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *fts5ApiGetAuxdata(Fts5Context *pCtx, int bClear)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAM
      Src: /src/nss/lib/sqlite/sqlite3.c:218387,1
    - Dst: fts5GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:218393,1
    - Dst: fts5GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:218395,1
    - Dst: fts5GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:218398,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - pUnused
    - pIter
    - piCol
    - piOff
    argTypes:
    - Fts5Context*
    - Fts5PhraseIter*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218402
      start: 218382
    functionDepth: 1
    functionLinenumber: 218382
    functionLinenumberEnd: 218402
    functionName: fts5ApiPhraseNext
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5GetVarint32
    - UNUSED_PARAM
    linkageType: ''
    returnType: void
    signature: "void fts5ApiPhraseNext(\n  Fts5Context *pUnused, \n  Fts5PhraseIter
      *pIter, \n  int *piCol, int *piOff\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fts5CsrPoslist
      Src: /src/nss/lib/sqlite/sqlite3.c:218412,1
    - Dst: fts5ApiPhraseNext
      Src: /src/nss/lib/sqlite/sqlite3.c:218417,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - pCtx
    - iPhrase
    - pIter
    - piCol
    - piOff
    argTypes:
    - Fts5Context*
    - int
    - Fts5PhraseIter*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218420
      start: 218404
    functionDepth: 30
    functionLinenumber: 218404
    functionLinenumberEnd: 218420
    functionName: fts5ApiPhraseFirst
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5CsrPoslist
    - fts5ApiPhraseNext
    linkageType: ''
    returnType: int
    signature: "int fts5ApiPhraseFirst(\n  Fts5Context *pCtx, \n  int iPhrase, \n
      \ Fts5PhraseIter *pIter, \n  int *piCol, int *piOff\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fts5GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:218435,1
    - Dst: fts5GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:218446,1
    - Dst: fts5GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:218448,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - pCtx
    - pIter
    - piCol
    argTypes:
    - Fts5Context*
    - Fts5PhraseIter*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218450
      start: 218422
    functionDepth: 1
    functionLinenumber: 218422
    functionLinenumberEnd: 218450
    functionName: fts5ApiPhraseNextColumn
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5GetVarint32
    linkageType: ''
    returnType: void
    signature: "void fts5ApiPhraseNextColumn(\n  Fts5Context *pCtx, \n  Fts5PhraseIter
      *pIter, \n  int *piCol\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5ExprPhraseCollist
      Src: /src/nss/lib/sqlite/sqlite3.c:218470,1
    - Dst: fts5ApiPhraseNextColumn
      Src: /src/nss/lib/sqlite/sqlite3.c:218475,1
    - Dst: fts5CsrPoslist
      Src: /src/nss/lib/sqlite/sqlite3.c:218479,1
    - Dst: fts5GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:218485,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 4
    argNames:
    - pCtx
    - iPhrase
    - pIter
    - piCol
    argTypes:
    - Fts5Context*
    - int
    - Fts5PhraseIter*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218493
      start: 218452
    functionDepth: 30
    functionLinenumber: 218452
    functionLinenumberEnd: 218493
    functionName: fts5ApiPhraseFirstColumn
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5GetVarint32
    - sqlite3Fts5ExprPhraseCollist
    - fts5CsrPoslist
    - fts5ApiPhraseNextColumn
    linkageType: ''
    returnType: int
    signature: "int fts5ApiPhraseFirstColumn(\n  Fts5Context *pCtx, \n  int iPhrase,
      \n  Fts5PhraseIter *pIter, \n  int *piCol\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fts5OpenMethod
      Src: /src/nss/lib/sqlite/sqlite3.c:218537,1
    - Dst: sqlite3Fts5ExprClonePhrase
      Src: /src/nss/lib/sqlite/sqlite3.c:218543,1
    - Dst: fts5CursorFirst
      Src: /src/nss/lib/sqlite/sqlite3.c:218547,1
    - Dst: CsrFlagTest
      Src: /src/nss/lib/sqlite/sqlite3.c:218548,1
    - Dst: fts5NextMethod
      Src: /src/nss/lib/sqlite/sqlite3.c:218549,1
    - Dst: xCallback
      Src: /src/nss/lib/sqlite/sqlite3.c:218551,1
    - Dst: fts5CloseMethod
      Src: /src/nss/lib/sqlite/sqlite3.c:218559,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - pCtx
    - iPhrase
    - pUserData
    argTypes:
    - Fts5Context*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218561
      start: 218526
    functionDepth: 29
    functionLinenumber: 218526
    functionLinenumberEnd: 218561
    functionName: fts5ApiQueryPhrase
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5CursorFirst
    - CsrFlagTest
    - fts5CloseMethod
    - sqlite3Fts5ExprClonePhrase
    - fts5OpenMethod
    - xCallback
    - fts5NextMethod
    linkageType: ''
    returnType: int
    signature: "int fts5ApiQueryPhrase(\n  Fts5Context *pCtx, \n  int iPhrase, \n
      \ void *pUserData,\n  int(*xCallback)(const Fts5ExtensionApi*, Fts5Context*,
      void*)\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:218570,1
    - Dst: Fts5Auxiliary*::xFunc
      Src: /src/nss/lib/sqlite/sqlite3.c:218572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - pAux
    - pCsr
    - context
    - argc
    - argv
    argTypes:
    - Fts5Auxiliary*
    - Fts5Cursor*
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( pCsr->pAux==0 )
      pos:
        line_end: 218569
        line_start: 218569
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 218574
      start: 218563
    functionDepth: 0
    functionLinenumber: 218563
    functionLinenumberEnd: 218574
    functionName: fts5ApiInvoke
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - Fts5Auxiliary*::xFunc
    linkageType: ''
    returnType: void
    signature: "void fts5ApiInvoke(\n  Fts5Auxiliary *pAux,\n  Fts5Cursor *pCsr,\n
      \ sqlite3_context *context,\n  int argc,\n  sqlite3_value **argv\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - pGlobal
    - iCsrId
    argTypes:
    - Fts5Global*
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218582
      start: 218576
    functionDepth: 0
    functionLinenumber: 218576
    functionLinenumberEnd: 218582
    functionName: fts5CursorFromCsrid
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Fts5Cursor
    signature: Fts5Cursor *fts5CursorFromCsrid(Fts5Global *pGlobal, i64 iCsrId)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:218594,1
    - Dst: sqlite3_user_data
      Src: /src/nss/lib/sqlite/sqlite3.c:218595,1
    - Dst: sqlite3_value_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:218596,1
    - Dst: fts5CursorFromCsrid
      Src: /src/nss/lib/sqlite/sqlite3.c:218598,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:218600,1
    - Dst: sqlite3_result_error
      Src: /src/nss/lib/sqlite/sqlite3.c:218601,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:218602,1
    - Dst: fts5ApiInvoke
      Src: /src/nss/lib/sqlite/sqlite3.c:218604,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - context
    - argc
    - argv
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( argc>=1 )
      pos:
        line_end: 218593
        line_start: 218593
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 218606
      start: 218584
    functionDepth: 13
    functionLinenumber: 218584
    functionLinenumberEnd: 218606
    functionName: fts5ApiCallback
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_value_int64
    - fts5CursorFromCsrid
    - assert
    - sqlite3_mprintf
    - fts5ApiInvoke
    - sqlite3_user_data
    - sqlite3_free
    - sqlite3_result_error
    linkageType: ''
    returnType: void
    signature: "void fts5ApiCallback(\n  sqlite3_context *context,\n  int argc,\n
      \ sqlite3_value **argv\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fts5CursorFromCsrid
      Src: /src/nss/lib/sqlite/sqlite3.c:218618,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pGlobal
    - iCsrId
    argTypes:
    - Fts5Global*
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218623
      start: 218613
    functionDepth: 1
    functionLinenumber: 218613
    functionLinenumberEnd: 218623
    functionName: sqlite3Fts5TableFromCsrid
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5CursorFromCsrid
    linkageType: ''
    returnType: Fts5Table
    signature: "Fts5Table *sqlite3Fts5TableFromCsrid(\n  Fts5Global *pGlobal,            /*
      FTS5 global context for db handle */\n  i64 iCsrId                      /* Id
      of cursor to find */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5ExprPhraseCount
      Src: /src/nss/lib/sqlite/sqlite3.c:218643,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:218646,1
    - Dst: sqlite3Fts5ExprPoslist
      Src: /src/nss/lib/sqlite/sqlite3.c:218653,1
    - Dst: sqlite3Fts5BufferAppendVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:218654,1
    - Dst: sqlite3Fts5ExprPoslist
      Src: /src/nss/lib/sqlite/sqlite3.c:218661,1
    - Dst: sqlite3Fts5BufferAppendBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:218662,1
    - Dst: sqlite3Fts5ExprPhraseCollist
      Src: /src/nss/lib/sqlite/sqlite3.c:218672,1
    - Dst: sqlite3Fts5BufferAppendVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:218673,1
    - Dst: sqlite3Fts5ExprPhraseCollist
      Src: /src/nss/lib/sqlite/sqlite3.c:218680,1
    - Dst: sqlite3Fts5BufferAppendBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:218681,1
    - Dst: sqlite3_result_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:218689,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 2
    argNames:
    - pCtx
    - pCsr
    argTypes:
    - sqlite3_context*
    - Fts5Cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218691
      start: 218640
    functionDepth: 14
    functionLinenumber: 218640
    functionLinenumberEnd: 218691
    functionName: fts5PoslistBlob
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_blob
    - sqlite3Fts5ExprPhraseCount
    - sqlite3Fts5ExprPhraseCollist
    - memset
    - sqlite3Fts5BufferAppendBlob
    - sqlite3Fts5ExprPoslist
    - sqlite3Fts5BufferAppendVarint
    linkageType: ''
    returnType: int
    signature: int fts5PoslistBlob(sqlite3_context *pCtx, Fts5Cursor *pCsr)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:218707,1
    - Dst: CsrFlagTest
      Src: /src/nss/lib/sqlite/sqlite3.c:218707,1
    - Dst: sqlite3_result_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:218711,1
    - Dst: sqlite3_result_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:218720,1
    - Dst: fts5PoslistBlob
      Src: /src/nss/lib/sqlite/sqlite3.c:218725,1
    - Dst: fts5FindRankFunction
      Src: /src/nss/lib/sqlite/sqlite3.c:218730,1
    - Dst: fts5ApiInvoke
      Src: /src/nss/lib/sqlite/sqlite3.c:218731,1
    - Dst: fts5IsContentless
      Src: /src/nss/lib/sqlite/sqlite3.c:218734,1
    - Dst: fts5SeekCursor
      Src: /src/nss/lib/sqlite/sqlite3.c:218735,1
    - Dst: sqlite3_result_value
      Src: /src/nss/lib/sqlite/sqlite3.c:218737,1
    - Dst: sqlite3_column_value
      Src: /src/nss/lib/sqlite/sqlite3.c:218737,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 3
    argNames:
    - pCursor
    - pCtx
    - iCol
    argTypes:
    - sqlite3_vtab_cursor*
    - sqlite3_context*
    - int
    assertStmts:
    - condition: ( CsrFlagTest(pCsr, FTS5CSR_EOF)==0 )
      pos:
        line_end: 218706
        line_start: 218706
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 218741
      start: 218697
    functionDepth: 29
    functionLinenumber: 218697
    functionLinenumberEnd: 218741
    functionName: fts5ColumnMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - CsrFlagTest
    - sqlite3_result_value
    - sqlite3_column_value
    - fts5PoslistBlob
    - fts5SeekCursor
    - sqlite3_result_int64
    - assert
    - fts5ApiInvoke
    - fts5IsContentless
    - fts5FindRankFunction
    linkageType: ''
    returnType: int
    signature: "int fts5ColumnMethod(\n  sqlite3_vtab_cursor *pCursor,   /* Cursor
      to retrieve value from */\n  sqlite3_context *pCtx,          /* Context for
      sqlite3_result_xxx() calls */\n  int iCol                        /* Index of
      column to read value from */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAM
      Src: /src/nss/lib/sqlite/sqlite3.c:218758,1
    - Dst: fts5FindAuxiliary
      Src: /src/nss/lib/sqlite/sqlite3.c:218759,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - pVtab
    - nUnused
    - zName
    - ppArg
    argTypes:
    - sqlite3_vtab*
    - int
    - char*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218768
      start: 218748
    functionDepth: 3
    functionLinenumber: 218748
    functionLinenumberEnd: 218768
    functionName: fts5FindFunctionMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAM
    - fts5FindAuxiliary
    linkageType: ''
    returnType: int
    signature: "int fts5FindFunctionMethod(\n  sqlite3_vtab *pVtab,            /*
      Virtual table handle */\n  int nUnused,                    /* Number of SQL
      function arguments */\n  const char *zName,              /* Name of SQL function
      */\n  void (**pxFunc)(sqlite3_context*,int,sqlite3_value**), /* OUT: Result
      */\n  void **ppArg                    /* OUT: User data for *pxFunc */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5StorageRename
      Src: /src/nss/lib/sqlite/sqlite3.c:218778,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pVtab
    - zName
    argTypes:
    - sqlite3_vtab*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218779
      start: 218773
    functionDepth: 1
    functionLinenumber: 218773
    functionLinenumberEnd: 218779
    functionName: fts5RenameMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5StorageRename
    linkageType: ''
    returnType: int
    signature: "int fts5RenameMethod(\n  sqlite3_vtab *pVtab,            /* Virtual
      table handle */\n  const char *zName               /* New name of table */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts5TripCursors
      Src: /src/nss/lib/sqlite/sqlite3.c:218782,1
    - Dst: sqlite3Fts5StorageSync
      Src: /src/nss/lib/sqlite/sqlite3.c:218783,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pTab
    argTypes:
    - Fts5Table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218784
      start: 218781
    functionDepth: 2
    functionLinenumber: 218781
    functionLinenumberEnd: 218784
    functionName: sqlite3Fts5FlushToDisk
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5TripCursors
    - sqlite3Fts5StorageSync
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5FlushToDisk(Fts5Table *pTab)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAM
      Src: /src/nss/lib/sqlite/sqlite3.c:218792,1
    - Dst: fts5CheckTransactionState
      Src: /src/nss/lib/sqlite/sqlite3.c:218793,1
    - Dst: sqlite3Fts5FlushToDisk
      Src: /src/nss/lib/sqlite/sqlite3.c:218794,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pVtab
    - iSavepoint
    argTypes:
    - sqlite3_vtab*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218795
      start: 218791
    functionDepth: 3
    functionLinenumber: 218791
    functionLinenumberEnd: 218795
    functionName: fts5SavepointMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5FlushToDisk
    - fts5CheckTransactionState
    - UNUSED_PARAM
    linkageType: ''
    returnType: int
    signature: int fts5SavepointMethod(sqlite3_vtab *pVtab, int iSavepoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAM
      Src: /src/nss/lib/sqlite/sqlite3.c:218803,1
    - Dst: fts5CheckTransactionState
      Src: /src/nss/lib/sqlite/sqlite3.c:218804,1
    - Dst: sqlite3Fts5FlushToDisk
      Src: /src/nss/lib/sqlite/sqlite3.c:218805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pVtab
    - iSavepoint
    argTypes:
    - sqlite3_vtab*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218806
      start: 218802
    functionDepth: 3
    functionLinenumber: 218802
    functionLinenumberEnd: 218806
    functionName: fts5ReleaseMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5FlushToDisk
    - fts5CheckTransactionState
    - UNUSED_PARAM
    linkageType: ''
    returnType: int
    signature: int fts5ReleaseMethod(sqlite3_vtab *pVtab, int iSavepoint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAM
      Src: /src/nss/lib/sqlite/sqlite3.c:218815,1
    - Dst: fts5CheckTransactionState
      Src: /src/nss/lib/sqlite/sqlite3.c:218816,1
    - Dst: fts5TripCursors
      Src: /src/nss/lib/sqlite/sqlite3.c:218817,1
    - Dst: sqlite3Fts5StorageRollback
      Src: /src/nss/lib/sqlite/sqlite3.c:218818,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - pVtab
    - iSavepoint
    argTypes:
    - sqlite3_vtab*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218819
      start: 218813
    functionDepth: 2
    functionLinenumber: 218813
    functionLinenumberEnd: 218819
    functionName: fts5RollbackToMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5CheckTransactionState
    - fts5TripCursors
    - UNUSED_PARAM
    - sqlite3Fts5StorageRollback
    linkageType: ''
    returnType: int
    signature: int fts5RollbackToMethod(sqlite3_vtab *pVtab, int iSavepoint)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_overload_function
      Src: /src/nss/lib/sqlite/sqlite3.c:218832,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:218838,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:218840,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:218842,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:218844,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 4
    argNames:
    - pApi
    - zName
    - pUserData
    - xFunc
    argTypes:
    - fts5_api*
    - char*
    - void*
    - fts5_extension_function
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218857
      start: 218824
    functionDepth: 15
    functionLinenumber: 218824
    functionLinenumberEnd: 218857
    functionName: fts5CreateAux
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - sqlite3_malloc64
    - sqlite3_overload_function
    - memset
    - strlen
    linkageType: ''
    returnType: int
    signature: "int fts5CreateAux(\n  fts5_api *pApi,                 /* Global context
      (one per db handle) */\n  const char *zName,              /* Name of new function
      */\n  void *pUserData,                /* User data for aux. function */\n  fts5_extension_function
      xFunc,  /* Aux. function implementation */\n  void(*xDestroy)(void*)          /*
      Destructor for pUserData */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:218876,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:218878,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:218880,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:218882,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 4
    argNames:
    - pApi
    - zName
    - pUserData
    - pTokenizer
    argTypes:
    - fts5_api*
    - char*
    - void*
    - fts5_tokenizer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218896
      start: 218863
    functionDepth: 6
    functionLinenumber: 218863
    functionLinenumberEnd: 218896
    functionName: fts5CreateTokenizer
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - memcpy
    - sqlite3_malloc64
    - strlen
    linkageType: ''
    returnType: int
    signature: "int fts5CreateTokenizer(\n  fts5_api *pApi,                 /* Global
      context (one per db handle) */\n  const char *zName,              /* Name of
      new function */\n  void *pUserData,                /* User data for aux. function
      */\n  fts5_tokenizer *pTokenizer,     /* Tokenizer implementation */\n  void(*xDestroy)(void*)
      \         /* Destructor for pUserData */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:218908,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - pGlobal
    - zName
    argTypes:
    - Fts5Global*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218913
      start: 218898
    functionDepth: 2
    functionLinenumber: 218898
    functionLinenumberEnd: 218913
    functionName: fts5LocateTokenizer
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_stricmp
    linkageType: ''
    returnType: Fts5TokenizerModule
    signature: "Fts5TokenizerModule *fts5LocateTokenizer(\n  Fts5Global *pGlobal,
      \n  const char *zName\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fts5LocateTokenizer
      Src: /src/nss/lib/sqlite/sqlite3.c:218928,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:218933,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - pApi
    - zName
    - ppUserData
    - pTokenizer
    argTypes:
    - fts5_api*
    - char*
    - void**
    - fts5_tokenizer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218938
      start: 218919
    functionDepth: 3
    functionLinenumber: 218919
    functionLinenumberEnd: 218938
    functionName: fts5FindTokenizer
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - fts5LocateTokenizer
    linkageType: ''
    returnType: int
    signature: "int fts5FindTokenizer(\n  fts5_api *pApi,                 /* Global
      context (one per db handle) */\n  const char *zName,              /* Name of
      new function */\n  void **ppUserData,\n  fts5_tokenizer *pTokenizer      /*
      Populate this object */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fts5LocateTokenizer
      Src: /src/nss/lib/sqlite/sqlite3.c:218951,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:218953,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:218955,1
    - Dst: Fts5TokenizerModule*::x::xCreate
      Src: /src/nss/lib/sqlite/sqlite3.c:218957,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:218960,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 6
    argNames:
    - pGlobal
    - azArg
    - nArg
    - ppTok
    - ppTokApi
    - pzErr
    argTypes:
    - Fts5Global*
    - char**
    - int
    - Fts5Tokenizer**
    - fts5_tokenizer**
    - char**
    assertStmts:
    - condition: ( nArg>0 )
      pos:
        line_end: 218952
        line_start: 218952
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 218970
      start: 218940
    functionDepth: 10
    functionLinenumber: 218940
    functionLinenumberEnd: 218970
    functionName: sqlite3Fts5GetTokenizer
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - assert
    - sqlite3_mprintf
    - Fts5TokenizerModule*::x::xCreate
    - fts5LocateTokenizer
    linkageType: ''
    returnType: int
    signature: "int sqlite3Fts5GetTokenizer(\n  Fts5Global *pGlobal, \n  const char
      **azArg,\n  int nArg,\n  Fts5Tokenizer **ppTok,\n  fts5_tokenizer **ppTokApi,\n
      \ char **pzErr\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Fts5Auxiliary*::xDestroy
      Src: /src/nss/lib/sqlite/sqlite3.c:218979,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:218980,1
    - Dst: Fts5TokenizerModule*::xDestroy
      Src: /src/nss/lib/sqlite/sqlite3.c:218985,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:218986,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:218989,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - pCtx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218990
      start: 218972
    functionDepth: 3
    functionLinenumber: 218972
    functionLinenumberEnd: 218990
    functionName: fts5ModuleDestroy
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - Fts5Auxiliary*::xDestroy
    - sqlite3_free
    - Fts5TokenizerModule*::xDestroy
    linkageType: ''
    returnType: void
    signature: void fts5ModuleDestroy(void *pCtx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_user_data
      Src: /src/nss/lib/sqlite/sqlite3.c:218997,1
    - Dst: UNUSED_PARAM
      Src: /src/nss/lib/sqlite/sqlite3.c:218999,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:219000,1
    - Dst: sqlite3_value_pointer
      Src: /src/nss/lib/sqlite/sqlite3.c:219001,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - pCtx
    - nArg
    - apArg
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( nArg==1 )
      pos:
        line_end: 218999
        line_start: 218999
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 219003
      start: 218992
    functionDepth: 1
    functionLinenumber: 218992
    functionLinenumberEnd: 219003
    functionName: fts5Fts5Func
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3_user_data
    - sqlite3_value_pointer
    - UNUSED_PARAM
    linkageType: ''
    returnType: void
    signature: "void fts5Fts5Func(\n  sqlite3_context *pCtx,          /* Function
      call context */\n  int nArg,                       /* Number of args */\n  sqlite3_value
      **apArg           /* Function arguments */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:219013,1
    - Dst: UNUSED_PARAM2
      Src: /src/nss/lib/sqlite/sqlite3.c:219014,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:219015,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - pCtx
    - nArg
    - apUnused
    argTypes:
    - sqlite3_context*
    - int
    - sqlite3_value**
    assertStmts:
    - condition: ( nArg==0 )
      pos:
        line_end: 219012
        line_start: 219012
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 219016
      start: 219008
    functionDepth: 14
    functionLinenumber: 219008
    functionLinenumberEnd: 219016
    functionName: fts5SourceIdFunc
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - UNUSED_PARAM2
    - sqlite3_result_text
    linkageType: ''
    returnType: void
    signature: "void fts5SourceIdFunc(\n  sqlite3_context *pCtx,          /* Function
      call context */\n  int nArg,                       /* Number of args */\n  sqlite3_value
      **apUnused        /* Function arguments */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:219028,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - zName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219031
      start: 219022
    functionDepth: 2
    functionLinenumber: 219022
    functionLinenumberEnd: 219031
    functionName: fts5ShadowName
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_stricmp
    linkageType: ''
    returnType: int
    signature: int fts5ShadowName(const char *zName)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:219064,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:219069,1
    - Dst: sqlite3_create_module_v2
      Src: /src/nss/lib/sqlite/sqlite3.c:219075,1
    - Dst: sqlite3Fts5IndexInit
      Src: /src/nss/lib/sqlite/sqlite3.c:219076,1
    - Dst: sqlite3Fts5ExprInit
      Src: /src/nss/lib/sqlite/sqlite3.c:219077,1
    - Dst: sqlite3Fts5AuxInit
      Src: /src/nss/lib/sqlite/sqlite3.c:219078,1
    - Dst: sqlite3Fts5TokenizerInit
      Src: /src/nss/lib/sqlite/sqlite3.c:219079,1
    - Dst: sqlite3Fts5VocabInit
      Src: /src/nss/lib/sqlite/sqlite3.c:219080,1
    - Dst: sqlite3_create_function
      Src: /src/nss/lib/sqlite/sqlite3.c:219082,1
    - Dst: sqlite3_create_function
      Src: /src/nss/lib/sqlite/sqlite3.c:219087,1
    - Dst: sqlite3Fts5TestRegisterMatchinfo
      Src: /src/nss/lib/sqlite/sqlite3.c:219099,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219104
      start: 219033
    functionDepth: 15
    functionLinenumber: 219033
    functionLinenumberEnd: 219104
    functionName: fts5Init
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_malloc
    - sqlite3Fts5IndexInit
    - sqlite3Fts5TokenizerInit
    - memset
    - sqlite3_create_module_v2
    - sqlite3Fts5VocabInit
    - sqlite3_create_function
    - sqlite3Fts5ExprInit
    - sqlite3Fts5TestRegisterMatchinfo
    - sqlite3Fts5AuxInit
    linkageType: ''
    returnType: int
    signature: int fts5Init(sqlite3 *db)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SQLITE_EXTENSION_INIT2
      Src: /src/nss/lib/sqlite/sqlite3.c:219124,1
    - Dst: fts5Init
      Src: /src/nss/lib/sqlite/sqlite3.c:219126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - db
    - pzErrMsg
    - pApi
    argTypes:
    - sqlite3*
    - char**
    - sqlite3_api_routines*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219127
      start: 219117
    functionDepth: 16
    functionLinenumber: 219117
    functionLinenumberEnd: 219127
    functionName: sqlite3_fts_init
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5Init
    - SQLITE_EXTENSION_INIT2
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_fts_init(\n  sqlite3 *db,\n  char **pzErrMsg,\n
      \ const sqlite3_api_routines *pApi\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SQLITE_EXTENSION_INIT2
      Src: /src/nss/lib/sqlite/sqlite3.c:219137,1
    - Dst: fts5Init
      Src: /src/nss/lib/sqlite/sqlite3.c:219139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - db
    - pzErrMsg
    - pApi
    argTypes:
    - sqlite3*
    - char**
    - sqlite3_api_routines*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219140
      start: 219130
    functionDepth: 16
    functionLinenumber: 219130
    functionLinenumberEnd: 219140
    functionName: sqlite3_fts5_init
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5Init
    - SQLITE_EXTENSION_INIT2
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_fts5_init(\n  sqlite3 *db,\n  char **pzErrMsg,\n
      \ const sqlite3_api_routines *pApi\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts5Init
      Src: /src/nss/lib/sqlite/sqlite3.c:219143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219144
      start: 219142
    functionDepth: 16
    functionLinenumber: 219142
    functionLinenumberEnd: 219144
    functionName: sqlite3Fts5Init
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5Init
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3Fts5Init(sqlite3 *db)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:219210,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:219216,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:219216,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:219239,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:219246,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:219253,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:219264,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:219271,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:219272,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:219278,1
    - Dst: sqlite3_prepare_v3
      Src: /src/nss/lib/sqlite/sqlite3.c:219287,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:219288,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:219290,1
    - Dst: sqlite3_errmsg
      Src: /src/nss/lib/sqlite/sqlite3.c:219290,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:219296,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 48
    argCount: 4
    argNames:
    - p
    - eStmt
    - ppStmt
    - pzErrMsg
    argTypes:
    - Fts5Storage*
    - int
    - sqlite3_stmt**
    - char**
    assertStmts:
    - condition: "( p->pConfig->bColumnsize || (\n        eStmt!=FTS5_STMT_REPLACE_DOCSIZE
        \n     && eStmt!=FTS5_STMT_DELETE_DOCSIZE \n     && eStmt!=FTS5_STMT_LOOKUP_DOCSIZE
        \n  ))"
      pos:
        line_end: 219213
        line_start: 219209
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( eStmt>=0 && eStmt<ArraySize(p->aStmt) )
      pos:
        line_end: 219215
        line_start: 219215
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 219298
      start: 219200
    functionDepth: 28
    functionLinenumber: 219200
    functionLinenumberEnd: 219298
    functionName: fts5StorageGetStmt
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_malloc64
    - sqlite3_reset
    - ArraySize
    - assert
    - sqlite3_mprintf
    - sqlite3_errmsg
    - sqlite3_prepare_v3
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int fts5StorageGetStmt(\n  Fts5Storage *p,                 /* Storage
      handle */\n  int eStmt,                      /* FTS5_STMT_XXX constant */\n
      \ sqlite3_stmt **ppStmt,          /* OUT: Prepared statement handle */\n  char
      **pzErrMsg                 /* OUT: Error message (if any) */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/nss/lib/sqlite/sqlite3.c:219311,1
    - Dst: sqlite3_vmprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:219312,1
    - Dst: sqlite3_exec
      Src: /src/nss/lib/sqlite/sqlite3.c:219317,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:219318,1
    - Dst: va_end
      Src: /src/nss/lib/sqlite/sqlite3.c:219321,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - db
    - pzErr
    - zFormat
    argTypes:
    - sqlite3*
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219323
      start: 219301
    functionDepth: 28
    functionLinenumber: 219301
    functionLinenumberEnd: 219323
    functionName: fts5ExecPrintf
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_vmprintf
    - va_end
    - va_start
    - sqlite3_exec
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int fts5ExecPrintf(\n  sqlite3 *db,\n  char **pzErr,\n  const char
      *zFormat,\n  ...\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fts5ExecPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:219330,1
    - Dst: fts5ExecPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:219339,1
    - Dst: fts5ExecPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:219345,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - pConfig
    argTypes:
    - Fts5Config*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219351
      start: 219329
    functionDepth: 29
    functionLinenumber: 219329
    functionLinenumberEnd: 219351
    functionName: sqlite3Fts5DropAll
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - fts5ExecPrintf
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5DropAll(Fts5Config *pConfig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fts5ExecPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:219360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - pConfig
    - pRc
    - zTail
    - zName
    argTypes:
    - Fts5Config*
    - int*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219365
      start: 219353
    functionDepth: 29
    functionLinenumber: 219353
    functionLinenumberEnd: 219365
    functionName: fts5StorageRenameOne
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5ExecPrintf
    linkageType: ''
    returnType: void
    signature: "void fts5StorageRenameOne(\n  Fts5Config *pConfig,            /* Current
      FTS5 configuration */\n  int *pRc,                       /* IN/OUT: Error code
      */\n  const char *zTail,              /* Tail of table name e.g. \"data\", \"config\"
      */\n  const char *zName               /* New name of FTS5 table */\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5StorageSync
      Src: /src/nss/lib/sqlite/sqlite3.c:219369,1
    - Dst: fts5StorageRenameOne
      Src: /src/nss/lib/sqlite/sqlite3.c:219371,1
    - Dst: fts5StorageRenameOne
      Src: /src/nss/lib/sqlite/sqlite3.c:219372,1
    - Dst: fts5StorageRenameOne
      Src: /src/nss/lib/sqlite/sqlite3.c:219373,1
    - Dst: fts5StorageRenameOne
      Src: /src/nss/lib/sqlite/sqlite3.c:219375,1
    - Dst: fts5StorageRenameOne
      Src: /src/nss/lib/sqlite/sqlite3.c:219378,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - pStorage
    - zName
    argTypes:
    - Fts5Storage*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219381
      start: 219367
    functionDepth: 30
    functionLinenumber: 219367
    functionLinenumberEnd: 219381
    functionName: sqlite3Fts5StorageRename
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - fts5StorageRenameOne
    - sqlite3Fts5StorageSync
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5StorageRename(Fts5Storage *pStorage, const char *zName)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fts5ExecPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:219397,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:219405,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:219409,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - pConfig
    - zPost
    - zDefn
    - bWithout
    - pzErr
    argTypes:
    - Fts5Config*
    - char*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219413
      start: 219387
    functionDepth: 29
    functionLinenumber: 219387
    functionLinenumberEnd: 219413
    functionName: sqlite3Fts5CreateTable
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_mprintf
    - sqlite3_free
    - fts5ExecPrintf
    linkageType: ''
    returnType: int
    signature: "int sqlite3Fts5CreateTable(\n  Fts5Config *pConfig,            /*
      FTS5 configuration */\n  const char *zPost,              /* Shadow table to
      create (e.g. \"content\") */\n  const char *zDefn,              /* Columns etc.
      for shadow table */\n  int bWithout,                   /* True for without rowid
      */\n  char **pzErr                    /* OUT: Error message */\n)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:219435,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:219438,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:219446,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:219452,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:219453,1
    - Dst: sqlite3_snprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:219455,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:219456,1
    - Dst: sqlite3Fts5CreateTable
      Src: /src/nss/lib/sqlite/sqlite3.c:219458,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:219460,1
    - Dst: sqlite3Fts5CreateTable
      Src: /src/nss/lib/sqlite/sqlite3.c:219464,1
    - Dst: sqlite3Fts5CreateTable
      Src: /src/nss/lib/sqlite/sqlite3.c:219469,1
    - Dst: sqlite3Fts5StorageConfigValue
      Src: /src/nss/lib/sqlite/sqlite3.c:219474,1
    - Dst: sqlite3Fts5StorageClose
      Src: /src/nss/lib/sqlite/sqlite3.c:219479,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 5
    argNames:
    - pConfig
    - pIndex
    - bCreate
    - pp
    - pzErr
    argTypes:
    - Fts5Config*
    - Fts5Index*
    - int
    - Fts5Storage**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219483
      start: 219422
    functionDepth: 30
    functionLinenumber: 219422
    functionLinenumberEnd: 219483
    functionName: sqlite3Fts5StorageOpen
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3Fts5CreateTable
    - sqlite3_malloc64
    - memset
    - sqlite3Fts5StorageConfigValue
    - sqlite3Fts5StorageClose
    - sqlite3_free
    - sqlite3_snprintf
    - strlen
    linkageType: ''
    returnType: int
    signature: "int sqlite3Fts5StorageOpen(\n  Fts5Config *pConfig, \n  Fts5Index
      *pIndex, \n  int bCreate, \n  Fts5Storage **pp,\n  char **pzErr                    /*
      OUT: Error message */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:219494,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:219495,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:219498,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - Fts5Storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219501
      start: 219488
    functionDepth: 26
    functionLinenumber: 219488
    functionLinenumberEnd: 219501
    functionName: sqlite3Fts5StorageClose
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - ArraySize
    - sqlite3_finalize
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5StorageClose(Fts5Storage *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAM2
      Src: /src/nss/lib/sqlite/sqlite3.c:219523,1
    - Dst: sqlite3Fts5IndexWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:219528,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 6
    argNames:
    - pContext
    - tflags
    - pToken
    - nToken
    - iUnused1
    - iUnused2
    argTypes:
    - void*
    - int
    - char*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219529
      start: 219513
    functionDepth: 9
    functionLinenumber: 219513
    functionLinenumberEnd: 219529
    functionName: fts5StorageInsertCallback
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAM2
    - sqlite3Fts5IndexWrite
    linkageType: ''
    returnType: int
    signature: "int fts5StorageInsertCallback(\n  void *pContext,                 /*
      Pointer to Fts5InsertCtx object */\n  int tflags,\n  const char *pToken,             /*
      Buffer containing token */\n  int nToken,                     /* Size of token
      in bytes */\n  int iUnused1,                   /* Start offset of token */\n
      \ int iUnused2                    /* End offset of token */\n)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fts5StorageGetStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:219549,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:219551,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:219552,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:219553,1
    - Dst: sqlite3Fts5IndexBeginWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:219559,1
    - Dst: sqlite3_column_text
      Src: /src/nss/lib/sqlite/sqlite3.c:219565,1
    - Dst: sqlite3_column_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:219566,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:219568,1
    - Dst: sqlite3_value_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:219569,1
    - Dst: sqlite3Fts5Tokenize
      Src: /src/nss/lib/sqlite/sqlite3.c:219572,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:219580,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 3
    argNames:
    - p
    - iDel
    - apVal
    argTypes:
    - Fts5Storage*
    - i64
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219583
      start: 219536
    functionDepth: 42
    functionLinenumber: 219536
    functionLinenumberEnd: 219583
    functionName: fts5StorageDeleteFromIndex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5IndexBeginWrite
    - fts5StorageGetStmt
    - sqlite3_step
    - sqlite3_reset
    - sqlite3_column_bytes
    - sqlite3Fts5Tokenize
    - sqlite3_bind_int64
    - sqlite3_column_text
    - sqlite3_value_text
    - sqlite3_value_bytes
    linkageType: ''
    returnType: int
    signature: "int fts5StorageDeleteFromIndex(\n  Fts5Storage *p, \n  i64 iDel, \n
      \ sqlite3_value **apVal\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fts5StorageGetStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:219602,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:219604,1
    - Dst: sqlite3_bind_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:219605,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:219606,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:219607,1
    - Dst: sqlite3_bind_null
      Src: /src/nss/lib/sqlite/sqlite3.c:219608,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - p
    - iRowid
    - pBuf
    argTypes:
    - Fts5Storage*
    - i64
    - Fts5Buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219612
      start: 219594
    functionDepth: 29
    functionLinenumber: 219594
    functionLinenumberEnd: 219612
    functionName: fts5StorageInsertDocsize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_bind_null
    - fts5StorageGetStmt
    - sqlite3_step
    - sqlite3_reset
    - sqlite3_bind_blob
    - sqlite3_bind_int64
    linkageType: ''
    returnType: int
    signature: "int fts5StorageInsertDocsize(\n  Fts5Storage *p,                 /*
      Storage module to write to */\n  i64 iRowid,                     /* id value
      */\n  Fts5Buffer *pBuf                /* sz value */\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5IndexGetAverages
      Src: /src/nss/lib/sqlite/sqlite3.c:219627,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - p
    - bCache
    argTypes:
    - Fts5Storage*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219631
      start: 219624
    functionDepth: 31
    functionLinenumber: 219624
    functionLinenumberEnd: 219631
    functionName: fts5StorageLoadTotals
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5IndexGetAverages
    linkageType: ''
    returnType: int
    signature: int fts5StorageLoadTotals(Fts5Storage *p, int bCache)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:219645,1
    - Dst: sqlite3Fts5BufferAppendVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:219647,1
    - Dst: sqlite3Fts5BufferAppendVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:219649,1
    - Dst: sqlite3Fts5IndexSetAverages
      Src: /src/nss/lib/sqlite/sqlite3.c:219652,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:219654,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - p
    argTypes:
    - Fts5Storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219657
      start: 219640
    functionDepth: 31
    functionLinenumber: 219640
    functionLinenumberEnd: 219657
    functionName: fts5StorageSaveTotals
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3_free
    - sqlite3Fts5IndexSetAverages
    - sqlite3Fts5BufferAppendVarint
    linkageType: ''
    returnType: int
    signature: int fts5StorageSaveTotals(Fts5Storage *p)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:219667,1
    - Dst: fts5StorageLoadTotals
      Src: /src/nss/lib/sqlite/sqlite3.c:219668,1
    - Dst: fts5StorageDeleteFromIndex
      Src: /src/nss/lib/sqlite/sqlite3.c:219672,1
    - Dst: fts5StorageGetStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:219677,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:219679,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:219680,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:219681,1
    - Dst: fts5StorageGetStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:219688,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:219691,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:219692,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:219693,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - p
    - iDel
    - apVal
    argTypes:
    - Fts5Storage*
    - i64
    - sqlite3_value**
    assertStmts:
    - condition: ( pConfig->eContent!=FTS5_CONTENT_NORMAL || apVal==0 )
      pos:
        line_end: 219666
        line_start: 219666
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 219698
      start: 219662
    functionDepth: 43
    functionLinenumber: 219662
    functionLinenumberEnd: 219698
    functionName: sqlite3Fts5StorageDelete
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - fts5StorageGetStmt
    - sqlite3_step
    - sqlite3_reset
    - assert
    - sqlite3_bind_int64
    - fts5StorageDeleteFromIndex
    - fts5StorageLoadTotals
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5StorageDelete(Fts5Storage *p, i64 iDel, sqlite3_value
      **apVal)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fts5ExecPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:219708,1
    - Dst: fts5ExecPrintf
      Src: /src/nss/lib/sqlite/sqlite3.c:219715,1
    - Dst: sqlite3Fts5IndexReinit
      Src: /src/nss/lib/sqlite/sqlite3.c:219724,1
    - Dst: sqlite3Fts5StorageConfigValue
      Src: /src/nss/lib/sqlite/sqlite3.c:219727,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - p
    argTypes:
    - Fts5Storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219730
      start: 219703
    functionDepth: 32
    functionLinenumber: 219703
    functionLinenumberEnd: 219730
    functionName: sqlite3Fts5StorageDeleteAll
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3Fts5StorageConfigValue
    - sqlite3Fts5IndexReinit
    - fts5ExecPrintf
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5StorageDeleteAll(Fts5Storage *p)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:219739,1
    - Dst: sqlite3Fts5StorageDeleteAll
      Src: /src/nss/lib/sqlite/sqlite3.c:219741,1
    - Dst: fts5StorageLoadTotals
      Src: /src/nss/lib/sqlite/sqlite3.c:219743,1
    - Dst: fts5StorageGetStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:219747,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:219750,1
    - Dst: sqlite3_column_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:219751,1
    - Dst: sqlite3Fts5BufferZero
      Src: /src/nss/lib/sqlite/sqlite3.c:219753,1
    - Dst: sqlite3Fts5IndexBeginWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:219754,1
    - Dst: sqlite3Fts5Tokenize
      Src: /src/nss/lib/sqlite/sqlite3.c:219758,1
    - Dst: sqlite3_column_text
      Src: /src/nss/lib/sqlite/sqlite3.c:219760,1
    - Dst: sqlite3_column_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:219761,1
    - Dst: sqlite3Fts5BufferAppendVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:219766,1
    - Dst: fts5StorageInsertDocsize
      Src: /src/nss/lib/sqlite/sqlite3.c:219772,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:219775,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:219776,1
    - Dst: fts5StorageSaveTotals
      Src: /src/nss/lib/sqlite/sqlite3.c:219781,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 1
    argNames:
    - p
    argTypes:
    - Fts5Storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219784
      start: 219732
    functionDepth: 42
    functionLinenumber: 219732
    functionLinenumberEnd: 219784
    functionName: sqlite3Fts5StorageRebuild
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3Fts5IndexBeginWrite
    - fts5StorageGetStmt
    - sqlite3_step
    - sqlite3_reset
    - sqlite3Fts5BufferZero
    - fts5StorageSaveTotals
    - fts5StorageInsertDocsize
    - sqlite3_column_bytes
    - sqlite3_column_int64
    - memset
    - sqlite3Fts5Tokenize
    - sqlite3_column_text
    - sqlite3Fts5StorageDeleteAll
    - fts5StorageLoadTotals
    - sqlite3_free
    - sqlite3Fts5BufferAppendVarint
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5StorageRebuild(Fts5Storage *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5IndexOptimize
      Src: /src/nss/lib/sqlite/sqlite3.c:219787,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - Fts5Storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219788
      start: 219786
    functionDepth: 42
    functionLinenumber: 219786
    functionLinenumberEnd: 219788
    functionName: sqlite3Fts5StorageOptimize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3Fts5IndexOptimize
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5StorageOptimize(Fts5Storage *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5IndexMerge
      Src: /src/nss/lib/sqlite/sqlite3.c:219791,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - nMerge
    argTypes:
    - Fts5Storage*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219792
      start: 219790
    functionDepth: 39
    functionLinenumber: 219790
    functionLinenumberEnd: 219792
    functionName: sqlite3Fts5StorageMerge
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3Fts5IndexMerge
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5StorageMerge(Fts5Storage *p, int nMerge)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5IndexReset
      Src: /src/nss/lib/sqlite/sqlite3.c:219795,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - Fts5Storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219796
      start: 219794
    functionDepth: 31
    functionLinenumber: 219794
    functionLinenumberEnd: 219796
    functionName: sqlite3Fts5StorageReset
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3Fts5IndexReset
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5StorageReset(Fts5Storage *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fts5StorageGetStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:219811,1
    - Dst: sqlite3_bind_null
      Src: /src/nss/lib/sqlite/sqlite3.c:219813,1
    - Dst: sqlite3_bind_null
      Src: /src/nss/lib/sqlite/sqlite3.c:219814,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:219815,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:219816,1
    - Dst: sqlite3_last_insert_rowid
      Src: /src/nss/lib/sqlite/sqlite3.c:219819,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - p
    - piRowid
    argTypes:
    - Fts5Storage*
    - i64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219823
      start: 219807
    functionDepth: 29
    functionLinenumber: 219807
    functionLinenumberEnd: 219823
    functionName: fts5StorageNewRowid
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_bind_null
    - fts5StorageGetStmt
    - sqlite3_step
    - sqlite3_reset
    - sqlite3_last_insert_rowid
    linkageType: ''
    returnType: int
    signature: int fts5StorageNewRowid(Fts5Storage *p, i64 *piRowid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_value_type
      Src: /src/nss/lib/sqlite/sqlite3.c:219838,1
    - Dst: sqlite3_value_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:219839,1
    - Dst: fts5StorageNewRowid
      Src: /src/nss/lib/sqlite/sqlite3.c:219841,1
    - Dst: fts5StorageGetStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:219846,1
    - Dst: sqlite3_bind_value
      Src: /src/nss/lib/sqlite/sqlite3.c:219848,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:219851,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:219852,1
    - Dst: sqlite3_last_insert_rowid
      Src: /src/nss/lib/sqlite/sqlite3.c:219854,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - p
    - apVal
    - piRowid
    argTypes:
    - Fts5Storage*
    - sqlite3_value**
    - i64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219858
      start: 219828
    functionDepth: 30
    functionLinenumber: 219828
    functionLinenumberEnd: 219858
    functionName: sqlite3Fts5StorageContentInsert
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - fts5StorageGetStmt
    - sqlite3_step
    - sqlite3_reset
    - sqlite3_last_insert_rowid
    - sqlite3_bind_value
    - sqlite3_value_type
    - fts5StorageNewRowid
    - sqlite3_value_int64
    linkageType: ''
    returnType: int
    signature: "int sqlite3Fts5StorageContentInsert(\n  Fts5Storage *p, \n  sqlite3_value
      **apVal, \n  i64 *piRowid\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:219873,1
    - Dst: fts5StorageLoadTotals
      Src: /src/nss/lib/sqlite/sqlite3.c:219875,1
    - Dst: sqlite3Fts5IndexBeginWrite
      Src: /src/nss/lib/sqlite/sqlite3.c:219878,1
    - Dst: sqlite3Fts5Tokenize
      Src: /src/nss/lib/sqlite/sqlite3.c:219883,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:219885,1
    - Dst: sqlite3_value_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:219886,1
    - Dst: sqlite3Fts5BufferAppendVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:219891,1
    - Dst: fts5StorageInsertDocsize
      Src: /src/nss/lib/sqlite/sqlite3.c:219898,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:219900,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - p
    - apVal
    - iRowid
    argTypes:
    - Fts5Storage*
    - sqlite3_value**
    - i64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219903
      start: 219863
    functionDepth: 42
    functionLinenumber: 219863
    functionLinenumberEnd: 219903
    functionName: sqlite3Fts5StorageIndexInsert
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3Fts5IndexBeginWrite
    - fts5StorageInsertDocsize
    - memset
    - sqlite3Fts5Tokenize
    - sqlite3_value_text
    - fts5StorageLoadTotals
    - sqlite3_free
    - sqlite3Fts5BufferAppendVarint
    - sqlite3_value_bytes
    linkageType: ''
    returnType: int
    signature: "int sqlite3Fts5StorageIndexInsert(\n  Fts5Storage *p, \n  sqlite3_value
      **apVal, \n  i64 iRowid\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:219910,1
    - Dst: sqlite3_prepare_v2
      Src: /src/nss/lib/sqlite/sqlite3.c:219917,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:219919,1
    - Dst: sqlite3_column_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:219920,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:219922,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:219926,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - p
    - zSuffix
    - pnRow
    argTypes:
    - Fts5Storage*
    - char*
    - i64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219928
      start: 219905
    functionDepth: 28
    functionLinenumber: 219905
    functionLinenumberEnd: 219928
    functionName: fts5StorageCount
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_step
    - sqlite3_column_int64
    - sqlite3_mprintf
    - sqlite3_prepare_v2
    - sqlite3_finalize
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int fts5StorageCount(Fts5Storage *p, const char *zSuffix, i64 *pnRow)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAM2
      Src: /src/nss/lib/sqlite/sqlite3.c:219963,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:219982,1
    - Dst: sqlite3Fts5TermsetAdd
      Src: /src/nss/lib/sqlite/sqlite3.c:219988,1
    - Dst: sqlite3Fts5IndexEntryCksum
      Src: /src/nss/lib/sqlite/sqlite3.c:219990,1
    - Dst: sqlite3Fts5IndexCharlenToBytelen
      Src: /src/nss/lib/sqlite/sqlite3.c:219997,1
    - Dst: sqlite3Fts5TermsetAdd
      Src: /src/nss/lib/sqlite/sqlite3.c:219999,1
    - Dst: sqlite3Fts5IndexEntryCksum
      Src: /src/nss/lib/sqlite/sqlite3.c:220001,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 6
    argNames:
    - pContext
    - tflags
    - pToken
    - nToken
    - iUnused1
    - iUnused2
    argTypes:
    - void*
    - int
    - char*
    - int
    - int
    - int
    assertStmts:
    - condition: ( pCtx->pConfig->eDetail==FTS5_DETAIL_NONE )
      pos:
        line_end: 219981
        line_start: 219981
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 220009
      start: 219947
    functionDepth: 8
    functionLinenumber: 219947
    functionLinenumberEnd: 220009
    functionName: fts5StorageIntegrityCallback
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5IndexEntryCksum
    - assert
    - sqlite3Fts5TermsetAdd
    - UNUSED_PARAM2
    - sqlite3Fts5IndexCharlenToBytelen
    linkageType: ''
    returnType: int
    signature: "int fts5StorageIntegrityCallback(\n  void *pContext,                 /*
      Pointer to Fts5IntegrityCtx object */\n  int tflags,\n  const char *pToken,
      \            /* Buffer containing token */\n  int nToken,                     /*
      Size of token in bytes */\n  int iUnused1,                   /* Start offset
      of token */\n  int iUnused2                    /* End offset of token */\n)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:220025,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:220027,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:220030,1
    - Dst: fts5StorageGetStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:220034,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:220037,1
    - Dst: sqlite3_column_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:220039,1
    - Dst: sqlite3Fts5StorageDocsize
      Src: /src/nss/lib/sqlite/sqlite3.c:220042,1
    - Dst: sqlite3Fts5TermsetNew
      Src: /src/nss/lib/sqlite/sqlite3.c:220045,1
    - Dst: sqlite3Fts5TermsetNew
      Src: /src/nss/lib/sqlite/sqlite3.c:220052,1
    - Dst: sqlite3Fts5Tokenize
      Src: /src/nss/lib/sqlite/sqlite3.c:220055,1
    - Dst: sqlite3_column_text
      Src: /src/nss/lib/sqlite/sqlite3.c:220057,1
    - Dst: sqlite3_column_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:220058,1
    - Dst: sqlite3Fts5TermsetFree
      Src: /src/nss/lib/sqlite/sqlite3.c:220068,1
    - Dst: sqlite3Fts5TermsetFree
      Src: /src/nss/lib/sqlite/sqlite3.c:220072,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:220077,1
    - Dst: fts5StorageLoadTotals
      Src: /src/nss/lib/sqlite/sqlite3.c:220084,1
    - Dst: fts5StorageCount
      Src: /src/nss/lib/sqlite/sqlite3.c:220094,1
    - Dst: fts5StorageCount
      Src: /src/nss/lib/sqlite/sqlite3.c:220099,1
    - Dst: sqlite3Fts5IndexIntegrityCheck
      Src: /src/nss/lib/sqlite/sqlite3.c:220107,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:220110,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 70
    argCount: 1
    argNames:
    - p
    argTypes:
    - Fts5Storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220112
      start: 220017
    functionDepth: 41
    functionLinenumber: 220017
    functionLinenumberEnd: 220112
    functionName: sqlite3Fts5StorageIntegrity
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - fts5StorageGetStmt
    - sqlite3_step
    - sqlite3_malloc64
    - sqlite3_reset
    - fts5StorageCount
    - sqlite3Fts5StorageDocsize
    - sqlite3Fts5TermsetNew
    - sqlite3_column_bytes
    - sqlite3_column_int64
    - memset
    - sqlite3Fts5Tokenize
    - sqlite3_column_text
    - fts5StorageLoadTotals
    - sqlite3Fts5TermsetFree
    - sqlite3_free
    - sqlite3Fts5IndexIntegrityCheck
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5StorageIntegrity(Fts5Storage *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:220125,1
    - Dst: fts5StorageGetStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:220129,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:220131,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - p
    - eStmt
    - pp
    - pzErrMsg
    argTypes:
    - Fts5Storage*
    - int
    - sqlite3_stmt**
    - char**
    assertStmts:
    - condition: "( eStmt==FTS5_STMT_SCAN_ASC \n       || eStmt==FTS5_STMT_SCAN_DESC\n
        \      || eStmt==FTS5_STMT_LOOKUP\n  )"
      pos:
        line_end: 220127
        line_start: 220124
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( p->aStmt[eStmt]==*pp )
      pos:
        line_end: 220130
        line_start: 220130
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 220135
      start: 220118
    functionDepth: 29
    functionLinenumber: 220118
    functionLinenumberEnd: 220135
    functionName: sqlite3Fts5StorageStmt
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - assert
    - fts5StorageGetStmt
    linkageType: ''
    returnType: int
    signature: "int sqlite3Fts5StorageStmt(\n  Fts5Storage *p, \n  int eStmt, \n  sqlite3_stmt
      **pp, \n  char **pzErrMsg\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:220147,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:220152,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:220155,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - p
    - eStmt
    - pStmt
    argTypes:
    - Fts5Storage*
    - int
    - sqlite3_stmt*
    assertStmts:
    - condition: "( eStmt==FTS5_STMT_SCAN_ASC\n       || eStmt==FTS5_STMT_SCAN_DESC\n
        \      || eStmt==FTS5_STMT_LOOKUP\n  )"
      pos:
        line_end: 220149
        line_start: 220146
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 220157
      start: 220142
    functionDepth: 26
    functionLinenumber: 220142
    functionLinenumberEnd: 220157
    functionName: sqlite3Fts5StorageStmtRelease
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    - sqlite3_reset
    - sqlite3_finalize
    linkageType: ''
    returnType: void
    signature: "void sqlite3Fts5StorageStmtRelease(\n  Fts5Storage *p, \n  int eStmt,
      \n  sqlite3_stmt *pStmt\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fts5GetVarint32
      Src: /src/nss/lib/sqlite/sqlite3.c:220167,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - aCol
    - nCol
    - aBlob
    - nBlob
    argTypes:
    - int*
    - int
    - u8*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220170
      start: 220159
    functionDepth: 1
    functionLinenumber: 220159
    functionLinenumberEnd: 220170
    functionName: fts5StorageDecodeSizeArray
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5GetVarint32
    linkageType: ''
    returnType: int
    signature: "int fts5StorageDecodeSizeArray(\n  int *aCol, int nCol,            /*
      Array to populate */\n  const u8 *aBlob, int nBlob      /* Record to read varints
      from */\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:220185,1
    - Dst: fts5StorageGetStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:220186,1
    - Dst: sqlite3_bind_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:220189,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:220190,1
    - Dst: sqlite3_column_blob
      Src: /src/nss/lib/sqlite/sqlite3.c:220191,1
    - Dst: sqlite3_column_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:220192,1
    - Dst: fts5StorageDecodeSizeArray
      Src: /src/nss/lib/sqlite/sqlite3.c:220193,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:220197,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - p
    - iRowid
    - aCol
    argTypes:
    - Fts5Storage*
    - i64
    - int*
    assertStmts:
    - condition: ( p->pConfig->bColumnsize )
      pos:
        line_end: 220184
        line_start: 220184
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 220204
      start: 220180
    functionDepth: 29
    functionLinenumber: 220180
    functionLinenumberEnd: 220204
    functionName: sqlite3Fts5StorageDocsize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - fts5StorageGetStmt
    - sqlite3_step
    - sqlite3_reset
    - sqlite3_column_blob
    - fts5StorageDecodeSizeArray
    - sqlite3_column_bytes
    - assert
    - sqlite3_bind_int64
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5StorageDocsize(Fts5Storage *p, i64 iRowid, int *aCol)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fts5StorageLoadTotals
      Src: /src/nss/lib/sqlite/sqlite3.c:220207,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - p
    - iCol
    - pnToken
    argTypes:
    - Fts5Storage*
    - int
    - i64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220222
      start: 220206
    functionDepth: 32
    functionLinenumber: 220206
    functionLinenumberEnd: 220222
    functionName: sqlite3Fts5StorageSize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - fts5StorageLoadTotals
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5StorageSize(Fts5Storage *p, int iCol, i64 *pnToken)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fts5StorageLoadTotals
      Src: /src/nss/lib/sqlite/sqlite3.c:220225,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - p
    - pnRow
    argTypes:
    - Fts5Storage*
    - i64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220236
      start: 220224
    functionDepth: 32
    functionLinenumber: 220224
    functionLinenumberEnd: 220236
    functionName: sqlite3Fts5StorageRowCount
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - fts5StorageLoadTotals
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5StorageRowCount(Fts5Storage *p, i64 *pnRow)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_last_insert_rowid
      Src: /src/nss/lib/sqlite/sqlite3.c:220243,1
    - Dst: fts5StorageSaveTotals
      Src: /src/nss/lib/sqlite/sqlite3.c:220245,1
    - Dst: sqlite3Fts5IndexSync
      Src: /src/nss/lib/sqlite/sqlite3.c:220249,1
    - Dst: sqlite3_set_last_insert_rowid
      Src: /src/nss/lib/sqlite/sqlite3.c:220251,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - p
    argTypes:
    - Fts5Storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220253
      start: 220241
    functionDepth: 42
    functionLinenumber: 220241
    functionLinenumberEnd: 220253
    functionName: sqlite3Fts5StorageSync
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 3
    functionsReached:
    - fts5StorageSaveTotals
    - sqlite3_set_last_insert_rowid
    - sqlite3_last_insert_rowid
    - sqlite3Fts5IndexSync
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5StorageSync(Fts5Storage *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5IndexRollback
      Src: /src/nss/lib/sqlite/sqlite3.c:220257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - Fts5Storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220258
      start: 220255
    functionDepth: 29
    functionLinenumber: 220255
    functionLinenumberEnd: 220258
    functionName: sqlite3Fts5StorageRollback
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - sqlite3Fts5IndexRollback
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5StorageRollback(Fts5Storage *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fts5StorageGetStmt
      Src: /src/nss/lib/sqlite/sqlite3.c:220267,1
    - Dst: sqlite3_bind_text
      Src: /src/nss/lib/sqlite/sqlite3.c:220269,1
    - Dst: sqlite3_bind_value
      Src: /src/nss/lib/sqlite/sqlite3.c:220271,1
    - Dst: sqlite3_bind_int
      Src: /src/nss/lib/sqlite/sqlite3.c:220273,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:220275,1
    - Dst: sqlite3_reset
      Src: /src/nss/lib/sqlite/sqlite3.c:220276,1
    - Dst: sqlite3_bind_null
      Src: /src/nss/lib/sqlite/sqlite3.c:220277,1
    - Dst: sqlite3Fts5IndexSetCookie
      Src: /src/nss/lib/sqlite/sqlite3.c:220281,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - p
    - z
    - pVal
    - iVal
    argTypes:
    - Fts5Storage*
    - char*
    - sqlite3_value*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220287
      start: 220260
    functionDepth: 30
    functionLinenumber: 220260
    functionLinenumberEnd: 220287
    functionName: sqlite3Fts5StorageConfigValue
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 3
    functionsReached:
    - sqlite3_bind_null
    - fts5StorageGetStmt
    - sqlite3_bind_int
    - sqlite3_step
    - sqlite3_reset
    - sqlite3Fts5IndexSetCookie
    - sqlite3_bind_value
    - sqlite3_bind_text
    linkageType: ''
    returnType: int
    signature: "int sqlite3Fts5StorageConfigValue(\n  Fts5Storage *p, \n  const char
      *z,\n  sqlite3_value *pVal,\n  int iVal\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - p
    - zArg
    - bTokenChars
    argTypes:
    - AsciiTokenizer*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220340
      start: 220329
    functionDepth: 0
    functionLinenumber: 220329
    functionLinenumberEnd: 220340
    functionName: fts5AsciiAddExceptions
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void fts5AsciiAddExceptions(\n  AsciiTokenizer *p, \n  const char
      *zArg, \n  int bTokenChars\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:220346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - Fts5Tokenizer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220347
      start: 220345
    functionDepth: 3
    functionLinenumber: 220345
    functionLinenumberEnd: 220347
    functionName: fts5AsciiDelete
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void fts5AsciiDelete(Fts5Tokenizer *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAM
      Src: /src/nss/lib/sqlite/sqlite3.c:220359,1
    - Dst: sqlite3_malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:220363,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:220368,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:220369,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:220372,1
    - Dst: fts5AsciiAddExceptions
      Src: /src/nss/lib/sqlite/sqlite3.c:220373,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:220375,1
    - Dst: fts5AsciiAddExceptions
      Src: /src/nss/lib/sqlite/sqlite3.c:220376,1
    - Dst: fts5AsciiDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:220382,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 4
    argNames:
    - pUnused
    - azArg
    - nArg
    - ppOut
    argTypes:
    - void*
    - char**
    - int
    - Fts5Tokenizer**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220390
      start: 220352
    functionDepth: 6
    functionLinenumber: 220352
    functionLinenumberEnd: 220390
    functionName: fts5AsciiCreate
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_malloc
    - memcpy
    - fts5AsciiAddExceptions
    - fts5AsciiDelete
    - UNUSED_PARAM
    - memset
    - sqlite3_stricmp
    linkageType: ''
    returnType: int
    signature: "int fts5AsciiCreate(\n  void *pUnused, \n  const char **azArg, int
      nArg,\n  Fts5Tokenizer **ppOut\n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - aOut
    - aIn
    - nByte
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220400
      start: 220393
    functionDepth: 0
    functionLinenumber: 220393
    functionLinenumberEnd: 220400
    functionName: asciiFold
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void asciiFold(char *aOut, const char *aIn, int nByte)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAM
      Src: /src/nss/lib/sqlite/sqlite3.c:220422,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:220442,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:220443,1
    - Dst: asciiFold
      Src: /src/nss/lib/sqlite/sqlite3.c:220450,1
    - Dst: xToken
      Src: /src/nss/lib/sqlite/sqlite3.c:220453,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:220457,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 32
    argCount: 5
    argNames:
    - pTokenizer
    - pCtx
    - iUnused
    - pText
    - nText
    argTypes:
    - Fts5Tokenizer*
    - void*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220460
      start: 220405
    functionDepth: 6
    functionLinenumber: 220405
    functionLinenumberEnd: 220460
    functionName: fts5AsciiTokenize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_malloc64
    - asciiFold
    - UNUSED_PARAM
    - xToken
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int fts5AsciiTokenize(\n  Fts5Tokenizer *pTokenizer,\n  void *pCtx,\n
      \ int iUnused,\n  const char *pText, int nText,\n  int (*xToken)(void*, int,
      const char*, int nToken, int iStart, int iEnd)\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - zIn
    - ','
    - zTerm
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220496
      start: 220485
    functionDepth: 0
    functionLinenumber: 220485
    functionLinenumberEnd: 220496
    functionName: READ_UTF8
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: READ_UTF8(zIn, zTerm, c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - zOut
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220517
      start: 220498
    functionDepth: 0
    functionLinenumber: 220498
    functionLinenumberEnd: 220517
    functionName: WRITE_UTF8
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WRITE_UTF8(zOut, c)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:220543,1
    - Dst: sqlite3_realloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:220547,1
    - Dst: READ_UTF8
      Src: /src/nss/lib/sqlite/sqlite3.c:220556,1
    - Dst: sqlite3Fts5UnicodeCategory
      Src: /src/nss/lib/sqlite/sqlite3.c:220560,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:220561,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:220562,1
    - Dst: sqlite3Fts5UnicodeIsdiacritic
      Src: /src/nss/lib/sqlite/sqlite3.c:220563,1
    - Dst: memmove
      Src: /src/nss/lib/sqlite/sqlite3.c:220568,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 3
    argNames:
    - p
    - z
    - bTokenChars
    argTypes:
    - Unicode61Tokenizer*
    - char*
    - int
    assertStmts:
    - condition: ( (bToken==0 || bToken==1) )
      pos:
        line_end: 220560
        line_start: 220560
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( (bTokenChars==0 || bTokenChars==1) )
      pos:
        line_end: 220561
        line_start: 220561
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 220582
      start: 220537
    functionDepth: 7
    functionLinenumber: 220537
    functionLinenumberEnd: 220582
    functionName: fts5UnicodeAddExceptions
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5UnicodeCategory
    - assert
    - sqlite3Fts5UnicodeIsdiacritic
    - READ_UTF8
    - memmove
    - sqlite3_realloc64
    - strlen
    linkageType: ''
    returnType: int
    signature: "int fts5UnicodeAddExceptions(\n  Unicode61Tokenizer *p,          /*
      Tokenizer object */\n  const char *z,                  /* Characters to treat
      as exceptions */\n  int bTokenChars                 /* 1 for 'tokenchars', 0
      for 'separators' */\n)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - p
    - iCode
    argTypes:
    - Unicode61Tokenizer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220606
      start: 220587
    functionDepth: 0
    functionLinenumber: 220587
    functionLinenumberEnd: 220606
    functionName: fts5UnicodeIsException
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fts5UnicodeIsException(Unicode61Tokenizer *p, int iCode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:220614,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:220615,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:220616,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pTok
    argTypes:
    - Fts5Tokenizer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220619
      start: 220611
    functionDepth: 3
    functionLinenumber: 220611
    functionLinenumberEnd: 220619
    functionName: fts5UnicodeDelete
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void fts5UnicodeDelete(Fts5Tokenizer *pTok)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5UnicodeCatParse
      Src: /src/nss/lib/sqlite/sqlite3.c:220626,1
    - Dst: sqlite3Fts5UnicodeAscii
      Src: /src/nss/lib/sqlite/sqlite3.c:220632,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 2
    argNames:
    - p
    - zCat
    argTypes:
    - Unicode61Tokenizer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220634
      start: 220621
    functionDepth: 1
    functionLinenumber: 220621
    functionLinenumberEnd: 220634
    functionName: unicodeSetCategories
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5UnicodeAscii
    - sqlite3Fts5UnicodeCatParse
    linkageType: ''
    returnType: int
    signature: int unicodeSetCategories(Unicode61Tokenizer *p, const char *zCat)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAM
      Src: /src/nss/lib/sqlite/sqlite3.c:220647,1
    - Dst: sqlite3_malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:220652,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:220656,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:220660,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:220667,1
    - Dst: unicodeSetCategories
      Src: /src/nss/lib/sqlite/sqlite3.c:220673,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:220678,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:220683,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:220689,1
    - Dst: fts5UnicodeAddExceptions
      Src: /src/nss/lib/sqlite/sqlite3.c:220690,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:220692,1
    - Dst: fts5UnicodeAddExceptions
      Src: /src/nss/lib/sqlite/sqlite3.c:220693,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:220695,1
    - Dst: fts5UnicodeDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:220706,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 52
    argCount: 4
    argNames:
    - pUnused
    - azArg
    - nArg
    - ppOut
    argTypes:
    - void*
    - char**
    - int
    - Fts5Tokenizer**
    assertStmts:
    - condition: "( p->eRemoveDiacritic==FTS5_REMOVE_DIACRITICS_NONE\n                 ||
        p->eRemoveDiacritic==FTS5_REMOVE_DIACRITICS_SIMPLE\n                 || p->eRemoveDiacritic==FTS5_REMOVE_DIACRITICS_COMPLEX\n
        \           )"
      pos:
        line_end: 220685
        line_start: 220682
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 220712
      start: 220639
    functionDepth: 8
    functionLinenumber: 220639
    functionLinenumberEnd: 220712
    functionName: fts5UnicodeCreate
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_malloc
    - sqlite3_malloc64
    - unicodeSetCategories
    - fts5UnicodeAddExceptions
    - UNUSED_PARAM
    - memset
    - assert
    - fts5UnicodeDelete
    - sqlite3_stricmp
    linkageType: ''
    returnType: int
    signature: "int fts5UnicodeCreate(\n  void *pUnused, \n  const char **azArg, int
      nArg,\n  Fts5Tokenizer **ppOut\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5UnicodeCategory
      Src: /src/nss/lib/sqlite/sqlite3.c:220721,1
    - Dst: fts5UnicodeIsException
      Src: /src/nss/lib/sqlite/sqlite3.c:220722,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - iCode
    argTypes:
    - Unicode61Tokenizer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220724
      start: 220719
    functionDepth: 1
    functionLinenumber: 220719
    functionLinenumberEnd: 220724
    functionName: fts5UnicodeIsAlnum
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5UnicodeCategory
    - fts5UnicodeIsException
    linkageType: ''
    returnType: int
    signature: int fts5UnicodeIsAlnum(Unicode61Tokenizer *p, int iCode)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAM
      Src: /src/nss/lib/sqlite/sqlite3.c:220745,1
    - Dst: READ_UTF8
      Src: /src/nss/lib/sqlite/sqlite3.c:220762,1
    - Dst: fts5UnicodeIsAlnum
      Src: /src/nss/lib/sqlite/sqlite3.c:220763,1
    - Dst: sqlite3_malloc64
      Src: /src/nss/lib/sqlite/sqlite3.c:220782,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:220788,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:220789,1
    - Dst: READ_UTF8
      Src: /src/nss/lib/sqlite/sqlite3.c:220798,1
    - Dst: fts5UnicodeIsAlnum
      Src: /src/nss/lib/sqlite/sqlite3.c:220799,1
    - Dst: sqlite3Fts5UnicodeIsdiacritic
      Src: /src/nss/lib/sqlite/sqlite3.c:220799,1
    - Dst: sqlite3Fts5UnicodeFold
      Src: /src/nss/lib/sqlite/sqlite3.c:220801,1
    - Dst: WRITE_UTF8
      Src: /src/nss/lib/sqlite/sqlite3.c:220802,1
    - Dst: xToken
      Src: /src/nss/lib/sqlite/sqlite3.c:220822,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 71
    argCount: 5
    argNames:
    - pTokenizer
    - pCtx
    - iUnused
    - pText
    - nText
    argTypes:
    - Fts5Tokenizer*
    - void*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220828
      start: 220726
    functionDepth: 6
    functionLinenumber: 220726
    functionLinenumberEnd: 220828
    functionName: fts5UnicodeTokenize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - sqlite3_malloc64
    - UNUSED_PARAM
    - sqlite3Fts5UnicodeFold
    - xToken
    - sqlite3Fts5UnicodeIsdiacritic
    - WRITE_UTF8
    - READ_UTF8
    - fts5UnicodeIsAlnum
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int fts5UnicodeTokenize(\n  Fts5Tokenizer *pTokenizer,\n  void *pCtx,\n
      \ int iUnused,\n  const char *pText, int nText,\n  int (*xToken)(void*, int,
      const char*, int nToken, int iStart, int iEnd)\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PorterTokenizer*::tokenizer::xDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:220852,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:220854,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - pTok
    argTypes:
    - Fts5Tokenizer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220856
      start: 220848
    functionDepth: 3
    functionLinenumber: 220848
    functionLinenumberEnd: 220856
    functionName: fts5PorterDelete
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    - PorterTokenizer*::tokenizer::xDelete
    linkageType: ''
    returnType: void
    signature: void fts5PorterDelete(Fts5Tokenizer *pTok)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:220876,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:220878,1
    - Dst: fts5_api*::xFindTokenizer
      Src: /src/nss/lib/sqlite/sqlite3.c:220879,1
    - Dst: PorterTokenizer*::tokenizer::xCreate
      Src: /src/nss/lib/sqlite/sqlite3.c:220886,1
    - Dst: fts5PorterDelete
      Src: /src/nss/lib/sqlite/sqlite3.c:220890,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - pCtx
    - azArg
    - nArg
    - ppOut
    argTypes:
    - void*
    - char**
    - int
    - Fts5Tokenizer**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220895
      start: 220861
    functionDepth: 6
    functionLinenumber: 220861
    functionLinenumberEnd: 220895
    functionName: fts5PorterCreate
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_malloc
    - PorterTokenizer*::tokenizer::xCreate
    - fts5_api*::xFindTokenizer
    - memset
    - fts5PorterDelete
    linkageType: ''
    returnType: int
    signature: "int fts5PorterCreate(\n  void *pCtx, \n  const char **azArg, int nArg,\n
      \ Fts5Tokenizer **ppOut\n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:220920,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:220920,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:220921,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:220921,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:220923,1
    - Dst: PorterRule*::xCond
      Src: /src/nss/lib/sqlite/sqlite3.c:220928,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:220929,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 3
    argNames:
    - aBuf
    - pnBuf
    - aRule
    argTypes:
    - char*
    - int*
    - PorterRule*
    assertStmts:
    - condition: ( strlen(p->zSuffix)==p->nSuffix )
      pos:
        line_end: 220919
        line_start: 220919
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( strlen(p->zOutput)==p->nOutput )
      pos:
        line_end: 220920
        line_start: 220920
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 220936
      start: 220914
    functionDepth: 1
    functionLinenumber: 220914
    functionLinenumberEnd: 220936
    functionName: fts5PorterApply
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - assert
    - memcmp
    - PorterRule*::xCond
    - strlen
    linkageType: ''
    returnType: int
    signature: int fts5PorterApply(char *aBuf, int *pnBuf, PorterRule *aRule)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 2
    argNames:
    - c
    - bYIsVowel
    argTypes:
    - char
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220943
      start: 220939
    functionDepth: 0
    functionLinenumber: 220939
    functionLinenumberEnd: 220943
    functionName: fts5PorterIsVowel
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fts5PorterIsVowel(char c, int bYIsVowel)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fts5PorterIsVowel
      Src: /src/nss/lib/sqlite/sqlite3.c:220951,1
    - Dst: fts5PorterIsVowel
      Src: /src/nss/lib/sqlite/sqlite3.c:220956,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - zStem
    - nStem
    - bPrevCons
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220959
      start: 220945
    functionDepth: 1
    functionLinenumber: 220945
    functionLinenumberEnd: 220959
    functionName: fts5PorterGobbleVC
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5PorterIsVowel
    linkageType: ''
    returnType: int
    signature: int fts5PorterGobbleVC(char *zStem, int nStem, int bPrevCons)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts5PorterGobbleVC
      Src: /src/nss/lib/sqlite/sqlite3.c:220963,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - zStem
    - nStem
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220964
      start: 220962
    functionDepth: 2
    functionLinenumber: 220962
    functionLinenumberEnd: 220964
    functionName: fts5Porter_MGt0
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5PorterGobbleVC
    linkageType: ''
    returnType: int
    signature: int fts5Porter_MGt0(char *zStem, int nStem)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fts5PorterGobbleVC
      Src: /src/nss/lib/sqlite/sqlite3.c:220969,1
    - Dst: fts5PorterGobbleVC
      Src: /src/nss/lib/sqlite/sqlite3.c:220970,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - zStem
    - nStem
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220974
      start: 220967
    functionDepth: 2
    functionLinenumber: 220967
    functionLinenumberEnd: 220974
    functionName: fts5Porter_MGt1
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5PorterGobbleVC
    linkageType: ''
    returnType: int
    signature: int fts5Porter_MGt1(char *zStem, int nStem)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fts5PorterGobbleVC
      Src: /src/nss/lib/sqlite/sqlite3.c:220979,1
    - Dst: fts5PorterGobbleVC
      Src: /src/nss/lib/sqlite/sqlite3.c:220980,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - zStem
    - nStem
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220984
      start: 220977
    functionDepth: 2
    functionLinenumber: 220977
    functionLinenumberEnd: 220984
    functionName: fts5Porter_MEq1
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5PorterGobbleVC
    linkageType: ''
    returnType: int
    signature: int fts5Porter_MEq1(char *zStem, int nStem)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fts5PorterIsVowel
      Src: /src/nss/lib/sqlite/sqlite3.c:220995,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:220996,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - zStem
    - nStem
    argTypes:
    - char*
    - int
    assertStmts:
    - condition: ( bCons==0 || bCons==1 )
      pos:
        line_end: 220995
        line_start: 220995
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 221001
      start: 220987
    functionDepth: 1
    functionLinenumber: 220987
    functionLinenumberEnd: 221001
    functionName: fts5Porter_Ostar
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fts5PorterIsVowel
    linkageType: ''
    returnType: int
    signature: int fts5Porter_Ostar(char *zStem, int nStem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:221005,1
    - Dst: fts5Porter_MGt1
      Src: /src/nss/lib/sqlite/sqlite3.c:221007,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - zStem
    - nStem
    argTypes:
    - char*
    - int
    assertStmts:
    - condition: ( nStem>0 )
      pos:
        line_end: 221004
        line_start: 221004
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 221008
      start: 221004
    functionDepth: 3
    functionLinenumber: 221004
    functionLinenumberEnd: 221008
    functionName: fts5Porter_MGt1_and_S_or_T
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - fts5Porter_MGt1
    linkageType: ''
    returnType: int
    signature: int fts5Porter_MGt1_and_S_or_T(char *zStem, int nStem)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fts5PorterIsVowel
      Src: /src/nss/lib/sqlite/sqlite3.c:221014,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - zStem
    - nStem
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221019
      start: 221011
    functionDepth: 1
    functionLinenumber: 221011
    functionLinenumberEnd: 221019
    functionName: fts5Porter_Vowel
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5PorterIsVowel
    linkageType: ''
    returnType: int
    signature: int fts5Porter_Vowel(char *zStem, int nStem)
  - BBCount: 51
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:221033,1
    - Dst: fts5Porter_MGt1
      Src: /src/nss/lib/sqlite/sqlite3.c:221034,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:221041,1
    - Dst: fts5Porter_MGt1
      Src: /src/nss/lib/sqlite/sqlite3.c:221042,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:221045,1
    - Dst: fts5Porter_MGt1
      Src: /src/nss/lib/sqlite/sqlite3.c:221046,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:221053,1
    - Dst: fts5Porter_MGt1
      Src: /src/nss/lib/sqlite/sqlite3.c:221054,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:221061,1
    - Dst: fts5Porter_MGt1
      Src: /src/nss/lib/sqlite/sqlite3.c:221062,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:221069,1
    - Dst: fts5Porter_MGt1
      Src: /src/nss/lib/sqlite/sqlite3.c:221070,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:221073,1
    - Dst: fts5Porter_MGt1
      Src: /src/nss/lib/sqlite/sqlite3.c:221074,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:221081,1
    - Dst: fts5Porter_MGt1
      Src: /src/nss/lib/sqlite/sqlite3.c:221082,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:221085,1
    - Dst: fts5Porter_MGt1
      Src: /src/nss/lib/sqlite/sqlite3.c:221086,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:221089,1
    - Dst: fts5Porter_MGt1
      Src: /src/nss/lib/sqlite/sqlite3.c:221090,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:221093,1
    - Dst: fts5Porter_MGt1
      Src: /src/nss/lib/sqlite/sqlite3.c:221094,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:221101,1
    - Dst: fts5Porter_MGt1_and_S_or_T
      Src: /src/nss/lib/sqlite/sqlite3.c:221102,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:221105,1
    - Dst: fts5Porter_MGt1
      Src: /src/nss/lib/sqlite/sqlite3.c:221106,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:221113,1
    - Dst: fts5Porter_MGt1
      Src: /src/nss/lib/sqlite/sqlite3.c:221114,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:221121,1
    - Dst: fts5Porter_MGt1
      Src: /src/nss/lib/sqlite/sqlite3.c:221122,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:221125,1
    - Dst: fts5Porter_MGt1
      Src: /src/nss/lib/sqlite/sqlite3.c:221126,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:221133,1
    - Dst: fts5Porter_MGt1
      Src: /src/nss/lib/sqlite/sqlite3.c:221134,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:221141,1
    - Dst: fts5Porter_MGt1
      Src: /src/nss/lib/sqlite/sqlite3.c:221142,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:221149,1
    - Dst: fts5Porter_MGt1
      Src: /src/nss/lib/sqlite/sqlite3.c:221150,1
    CyclomaticComplexity: 70
    EdgeCount: 70
    ICount: 123
    argCount: 2
    argNames:
    - aBuf
    - pnBuf
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221158
      start: 221027
    functionDepth: 4
    functionLinenumber: 221027
    functionLinenumberEnd: 221158
    functionName: fts5PorterStep4
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5Porter_MGt1
    - fts5Porter_MGt1_and_S_or_T
    - memcmp
    linkageType: ''
    returnType: int
    signature: int fts5PorterStep4(char *aBuf, int *pnBuf)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:221167,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:221168,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:221175,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:221176,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:221183,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:221184,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 2
    argNames:
    - aBuf
    - pnBuf
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221192
      start: 221161
    functionDepth: 1
    functionLinenumber: 221161
    functionLinenumberEnd: 221192
    functionName: fts5PorterStep1B2
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - memcmp
    linkageType: ''
    returnType: int
    signature: int fts5PorterStep1B2(char *aBuf, int *pnBuf)
  - BBCount: 51
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:221201,1
    - Dst: fts5Porter_MGt0
      Src: /src/nss/lib/sqlite/sqlite3.c:221202,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:221203,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:221206,1
    - Dst: fts5Porter_MGt0
      Src: /src/nss/lib/sqlite/sqlite3.c:221207,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:221208,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:221215,1
    - Dst: fts5Porter_MGt0
      Src: /src/nss/lib/sqlite/sqlite3.c:221216,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:221217,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:221220,1
    - Dst: fts5Porter_MGt0
      Src: /src/nss/lib/sqlite/sqlite3.c:221221,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:221222,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:221229,1
    - Dst: fts5Porter_MGt0
      Src: /src/nss/lib/sqlite/sqlite3.c:221230,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:221231,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:221238,1
    - Dst: fts5Porter_MGt0
      Src: /src/nss/lib/sqlite/sqlite3.c:221239,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:221240,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:221247,1
    - Dst: fts5Porter_MGt0
      Src: /src/nss/lib/sqlite/sqlite3.c:221248,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:221249,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:221252,1
    - Dst: fts5Porter_MGt0
      Src: /src/nss/lib/sqlite/sqlite3.c:221253,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:221254,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:221257,1
    - Dst: fts5Porter_MGt0
      Src: /src/nss/lib/sqlite/sqlite3.c:221258,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:221259,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:221262,1
    - Dst: fts5Porter_MGt0
      Src: /src/nss/lib/sqlite/sqlite3.c:221263,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:221264,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:221267,1
    - Dst: fts5Porter_MGt0
      Src: /src/nss/lib/sqlite/sqlite3.c:221268,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:221269,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:221276,1
    - Dst: fts5Porter_MGt0
      Src: /src/nss/lib/sqlite/sqlite3.c:221277,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:221278,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:221281,1
    - Dst: fts5Porter_MGt0
      Src: /src/nss/lib/sqlite/sqlite3.c:221282,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:221283,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:221286,1
    - Dst: fts5Porter_MGt0
      Src: /src/nss/lib/sqlite/sqlite3.c:221287,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:221288,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:221295,1
    - Dst: fts5Porter_MGt0
      Src: /src/nss/lib/sqlite/sqlite3.c:221296,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:221297,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:221300,1
    - Dst: fts5Porter_MGt0
      Src: /src/nss/lib/sqlite/sqlite3.c:221301,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:221302,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:221305,1
    - Dst: fts5Porter_MGt0
      Src: /src/nss/lib/sqlite/sqlite3.c:221306,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:221307,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:221310,1
    - Dst: fts5Porter_MGt0
      Src: /src/nss/lib/sqlite/sqlite3.c:221311,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:221312,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:221319,1
    - Dst: fts5Porter_MGt0
      Src: /src/nss/lib/sqlite/sqlite3.c:221320,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:221321,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:221324,1
    - Dst: fts5Porter_MGt0
      Src: /src/nss/lib/sqlite/sqlite3.c:221325,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:221326,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:221329,1
    - Dst: fts5Porter_MGt0
      Src: /src/nss/lib/sqlite/sqlite3.c:221330,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:221331,1
    CyclomaticComplexity: 72
    EdgeCount: 72
    ICount: 146
    argCount: 2
    argNames:
    - aBuf
    - pnBuf
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221339
      start: 221195
    functionDepth: 3
    functionLinenumber: 221195
    functionLinenumberEnd: 221339
    functionName: fts5PorterStep2
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - memcmp
    - fts5Porter_MGt0
    linkageType: ''
    returnType: int
    signature: int fts5PorterStep2(char *aBuf, int *pnBuf)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:221348,1
    - Dst: fts5Porter_MGt0
      Src: /src/nss/lib/sqlite/sqlite3.c:221349,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:221350,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:221357,1
    - Dst: fts5Porter_MGt0
      Src: /src/nss/lib/sqlite/sqlite3.c:221358,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:221365,1
    - Dst: fts5Porter_MGt0
      Src: /src/nss/lib/sqlite/sqlite3.c:221366,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:221367,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:221370,1
    - Dst: fts5Porter_MGt0
      Src: /src/nss/lib/sqlite/sqlite3.c:221371,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:221372,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:221379,1
    - Dst: fts5Porter_MGt0
      Src: /src/nss/lib/sqlite/sqlite3.c:221380,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:221387,1
    - Dst: fts5Porter_MGt0
      Src: /src/nss/lib/sqlite/sqlite3.c:221388,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:221395,1
    - Dst: fts5Porter_MGt0
      Src: /src/nss/lib/sqlite/sqlite3.c:221396,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:221397,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 55
    argCount: 2
    argNames:
    - aBuf
    - pnBuf
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221405
      start: 221342
    functionDepth: 3
    functionLinenumber: 221342
    functionLinenumberEnd: 221405
    functionName: fts5PorterStep3
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - memcmp
    - fts5Porter_MGt0
    linkageType: ''
    returnType: int
    signature: int fts5PorterStep3(char *aBuf, int *pnBuf)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:221414,1
    - Dst: fts5Porter_MGt0
      Src: /src/nss/lib/sqlite/sqlite3.c:221415,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:221416,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:221419,1
    - Dst: fts5Porter_Vowel
      Src: /src/nss/lib/sqlite/sqlite3.c:221420,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:221428,1
    - Dst: fts5Porter_Vowel
      Src: /src/nss/lib/sqlite/sqlite3.c:221429,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 2
    argNames:
    - aBuf
    - pnBuf
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221438
      start: 221408
    functionDepth: 3
    functionLinenumber: 221408
    functionLinenumberEnd: 221438
    functionName: fts5PorterStep1B
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - fts5Porter_Vowel
    - memcmp
    - fts5Porter_MGt0
    linkageType: ''
    returnType: int
    signature: int fts5PorterStep1B(char *aBuf, int *pnBuf)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 2
    argNames:
    - aBuf
    - pnBuf
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221461
      start: 221445
    functionDepth: 0
    functionLinenumber: 221445
    functionLinenumberEnd: 221461
    functionName: fts5PorterStep1A
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void fts5PorterStep1A(char *aBuf, int *pnBuf)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:221479,1
    - Dst: fts5PorterStep1A
      Src: /src/nss/lib/sqlite/sqlite3.c:221482,1
    - Dst: fts5PorterStep1B
      Src: /src/nss/lib/sqlite/sqlite3.c:221483,1
    - Dst: fts5PorterStep1B2
      Src: /src/nss/lib/sqlite/sqlite3.c:221484,1
    - Dst: fts5PorterIsVowel
      Src: /src/nss/lib/sqlite/sqlite3.c:221486,1
    - Dst: fts5Porter_MEq1
      Src: /src/nss/lib/sqlite/sqlite3.c:221490,1
    - Dst: fts5Porter_Ostar
      Src: /src/nss/lib/sqlite/sqlite3.c:221490,1
    - Dst: fts5Porter_Vowel
      Src: /src/nss/lib/sqlite/sqlite3.c:221497,1
    - Dst: fts5PorterStep2
      Src: /src/nss/lib/sqlite/sqlite3.c:221502,1
    - Dst: fts5PorterStep3
      Src: /src/nss/lib/sqlite/sqlite3.c:221503,1
    - Dst: fts5PorterStep4
      Src: /src/nss/lib/sqlite/sqlite3.c:221504,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:221507,1
    - Dst: fts5Porter_MGt1
      Src: /src/nss/lib/sqlite/sqlite3.c:221509,1
    - Dst: fts5Porter_MEq1
      Src: /src/nss/lib/sqlite/sqlite3.c:221510,1
    - Dst: fts5Porter_Ostar
      Src: /src/nss/lib/sqlite/sqlite3.c:221510,1
    - Dst: fts5Porter_MGt1
      Src: /src/nss/lib/sqlite/sqlite3.c:221518,1
    - Dst: PorterContext*::xToken
      Src: /src/nss/lib/sqlite/sqlite3.c:221523,1
    - Dst: PorterContext*::xToken
      Src: /src/nss/lib/sqlite/sqlite3.c:221526,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 37
    argCount: 6
    argNames:
    - pCtx
    - tflags
    - pToken
    - nToken
    - iStart
    - iEnd
    argTypes:
    - void*
    - int
    - char*
    - int
    - int
    - int
    assertStmts:
    - condition: ( nBuf>0 )
      pos:
        line_end: 221506
        line_start: 221506
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 221527
      start: 221463
    functionDepth: 5
    functionLinenumber: 221463
    functionLinenumberEnd: 221527
    functionName: fts5PorterCb
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5PorterStep1B2
    - memcpy
    - fts5PorterStep2
    - fts5PorterStep3
    - fts5PorterStep1A
    - fts5Porter_MEq1
    - fts5Porter_Vowel
    - fts5PorterStep4
    - assert
    - fts5Porter_MGt1
    - fts5PorterStep1B
    - fts5PorterIsVowel
    - PorterContext*::xToken
    - fts5Porter_Ostar
    linkageType: ''
    returnType: int
    signature: "int fts5PorterCb(\n  void *pCtx, \n  int tflags,\n  const char *pToken,
      \n  int nToken, \n  int iStart, \n  int iEnd\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PorterTokenizer*::tokenizer::xTokenize
      Src: /src/nss/lib/sqlite/sqlite3.c:221544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - pTokenizer
    - pCtx
    - flags
    - pText
    - nText
    argTypes:
    - Fts5Tokenizer*
    - void*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221547
      start: 221532
    functionDepth: 0
    functionLinenumber: 221532
    functionLinenumberEnd: 221547
    functionName: fts5PorterTokenize
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - PorterTokenizer*::tokenizer::xTokenize
    linkageType: ''
    returnType: int
    signature: "int fts5PorterTokenize(\n  Fts5Tokenizer *pTokenizer,\n  void *pCtx,\n
      \ int flags,\n  const char *pText, int nText,\n  int (*xToken)(void*, int, const
      char*, int nToken, int iStart, int iEnd)\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:221565,1
    - Dst: fts5_api*::xCreateTokenizer
      Src: /src/nss/lib/sqlite/sqlite3.c:221566,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pApi
    argTypes:
    - fts5_api*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221575
      start: 221552
    functionDepth: 1
    functionLinenumber: 221552
    functionLinenumberEnd: 221575
    functionName: sqlite3Fts5TokenizerInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - fts5_api*::xCreateTokenizer
    - ArraySize
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5TokenizerInit(fts5_api *pApi)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:221664,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - c
    - bComplex
    argTypes:
    - int
    - int
    assertStmts:
    - condition: ( key>=aDia[iRes] )
      pos:
        line_end: 221663
        line_start: 221663
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 221667
      start: 221607
    functionDepth: 0
    functionLinenumber: 221607
    functionLinenumberEnd: 221667
    functionName: fts5_remove_diacritic
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int fts5_remove_diacritic(int c, int bComplex)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221681
      start: 221674
    functionDepth: 0
    functionLinenumber: 221674
    functionLinenumberEnd: 221681
    functionName: sqlite3Fts5UnicodeIsdiacritic
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5UnicodeIsdiacritic(int c)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:221787,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:221797,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:221809,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:221813,1
    - Dst: fts5_remove_diacritic
      Src: /src/nss/lib/sqlite/sqlite3.c:221817,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 2
    argNames:
    - c
    - eRemoveDiacritic
    argTypes:
    - int
    - int
    assertStmts:
    - condition: ( sizeof(unsigned short)==2 && sizeof(unsigned char)==1 )
      pos:
        line_end: 221786
        line_start: 221786
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iRes>=0 && c>=aEntry[iRes].iCode )
      pos:
        line_end: 221808
        line_start: 221808
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( c>aEntry[0].iCode )
      pos:
        line_end: 221796
        line_start: 221796
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( ret>0 )
      pos:
        line_end: 221812
        line_start: 221812
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 221826
      start: 221693
    functionDepth: 1
    functionLinenumber: 221693
    functionLinenumberEnd: 221826
    functionName: sqlite3Fts5UnicodeFold
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached:
    - assert
    - fts5_remove_diacritic
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5UnicodeFold(int c, int eRemoveDiacritic)
  - BBCount: 53
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 185
    argCount: 2
    argNames:
    - zCat
    - aArray
    argTypes:
    - char*
    - u8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221945
      start: 221829
    functionDepth: 0
    functionLinenumber: 221829
    functionLinenumberEnd: 221945
    functionName: sqlite3Fts5UnicodeCatParse
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5UnicodeCatParse(const char *zCat, u8 *aArray)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:222325,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - iCode
    argTypes:
    - u32
    assertStmts:
    - condition: ( iTest>=iLo && iTest<iHi )
      pos:
        line_end: 222324
        line_start: 222324
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 222339
      start: 222310
    functionDepth: 0
    functionLinenumber: 222310
    functionLinenumberEnd: 222339
    functionName: sqlite3Fts5UnicodeCategory
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 3
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5UnicodeCategory(u32 iCode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - aArray
    - aAscii
    argTypes:
    - u8*
    - u8*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222352
      start: 222341
    functionDepth: 0
    functionLinenumber: 222341
    functionLinenumberEnd: 222352
    functionName: sqlite3Fts5UnicodeAscii
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sqlite3Fts5UnicodeAscii(u8 *aArray, u8 *aAscii)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5GetVarint
      Src: /src/nss/lib/sqlite/sqlite3.c:222431,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:222433,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 2
    argNames:
    - p
    - v
    argTypes:
    - unsigned char*
    - u32*
    assertStmts:
    - condition: ( n>3 && n<=9 )
      pos:
        line_end: 222432
        line_start: 222432
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 222436
      start: 222377
    functionDepth: 1
    functionLinenumber: 222377
    functionLinenumberEnd: 222436
    functionName: sqlite3Fts5GetVarint32
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    - sqlite3Fts5GetVarint
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5GetVarint32(const unsigned char *p, u32 *v)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:222479,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:222480,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 101
    argCount: 2
    argNames:
    - p
    - v
    argTypes:
    - unsigned char*
    - u64*
    assertStmts:
    - condition: ( SLOT_2_0 == ((0x7f<<14) | (0x7f)) )
      pos:
        line_end: 222478
        line_start: 222478
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( SLOT_4_2_0 == ((0xfU<<28) | (0x7f<<14) | (0x7f)) )
      pos:
        line_end: 222479
        line_start: 222479
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 222612
      start: 222455
    functionDepth: 0
    functionLinenumber: 222455
    functionLinenumberEnd: 222612
    functionName: sqlite3Fts5GetVarint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 9
    functionsReached:
    - assert
    linkageType: ''
    returnType: u8
    signature: u8 sqlite3Fts5GetVarint(const unsigned char *p, u64 *v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:222667,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - p
    - v
    argTypes:
    - unsigned char*
    - u64
    assertStmts:
    - condition: ( n<=9 )
      pos:
        line_end: 222666
        line_start: 222666
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 222672
      start: 222649
    functionDepth: 0
    functionLinenumber: 222649
    functionLinenumberEnd: 222672
    functionName: FTS5_NOINLINE::fts5PutVarint64
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int FTS5_NOINLINE fts5PutVarint64(unsigned char *p, u64 v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fts5PutVarint64
      Src: /src/nss/lib/sqlite/sqlite3.c:222684,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - p
    - v
    argTypes:
    - unsigned char*
    - u64
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222685
      start: 222674
    functionDepth: 0
    functionLinenumber: 222674
    functionLinenumberEnd: 222685
    functionName: sqlite3Fts5PutVarint
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 6
    functionsReached:
    - fts5PutVarint64
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5PutVarint(unsigned char *p, u64 v)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:222692,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - iVal
    argTypes:
    - u32
    assertStmts:
    - condition: ( iVal>=(1 << 7) )
      pos:
        line_end: 222691
        line_start: 222691
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 222697
      start: 222688
    functionDepth: 0
    functionLinenumber: 222688
    functionLinenumberEnd: 222697
    functionName: sqlite3Fts5GetVarintLen
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5GetVarintLen(u32 iVal)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5Strndup
      Src: /src/nss/lib/sqlite/sqlite3.c:222802,1
    - Dst: sqlite3Fts5Dequote
      Src: /src/nss/lib/sqlite/sqlite3.c:222804,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:222805,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:222809,1
    - Dst: sqlite3_stricmp
      Src: /src/nss/lib/sqlite/sqlite3.c:222812,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:222816,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:222819,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - zType
    - pzErr
    - peType
    argTypes:
    - char*
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222823
      start: 222800
    functionDepth: 10
    functionLinenumber: 222800
    functionLinenumberEnd: 222823
    functionName: fts5VocabTableType
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5Strndup
    - sqlite3Fts5Dequote
    - sqlite3_mprintf
    - sqlite3_stricmp
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int fts5VocabTableType(const char *zType, char **pzErr, int *peType)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:222831,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pVtab
    argTypes:
    - sqlite3_vtab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222833
      start: 222829
    functionDepth: 3
    functionLinenumber: 222829
    functionLinenumberEnd: 222833
    functionName: fts5VocabDisconnectMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int fts5VocabDisconnectMethod(sqlite3_vtab *pVtab)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:222840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pVtab
    argTypes:
    - sqlite3_vtab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222842
      start: 222838
    functionDepth: 3
    functionLinenumber: 222838
    functionLinenumberEnd: 222842
    functionName: fts5VocabDestroyMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int fts5VocabDestroyMethod(sqlite3_vtab *pVtab)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:222883,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:222883,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:222886,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:222893,1
    - Dst: strlen
      Src: /src/nss/lib/sqlite/sqlite3.c:222894,1
    - Dst: fts5VocabTableType
      Src: /src/nss/lib/sqlite/sqlite3.c:222897,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:222899,1
    - Dst: ArraySize
      Src: /src/nss/lib/sqlite/sqlite3.c:222899,1
    - Dst: sqlite3_declare_vtab
      Src: /src/nss/lib/sqlite/sqlite3.c:222900,1
    - Dst: sqlite3Fts5MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:222904,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:222911,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:222912,1
    - Dst: sqlite3Fts5Dequote
      Src: /src/nss/lib/sqlite/sqlite3.c:222913,1
    - Dst: sqlite3Fts5Dequote
      Src: /src/nss/lib/sqlite/sqlite3.c:222914,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 6
    argNames:
    - db
    - pAux
    - argc
    - argv
    - ppVTab
    - pzErr
    argTypes:
    - sqlite3*
    - void*
    - int
    - char**
    - sqlite3_vtab**
    - char**
    assertStmts:
    - condition: ( eType>=0 && eType<ArraySize(azSchema) )
      pos:
        line_end: 222898
        line_start: 222898
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 222920
      start: 222865
    functionDepth: 26
    functionLinenumber: 222865
    functionLinenumberEnd: 222920
    functionName: fts5VocabInitVtab
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ArraySize
    - sqlite3Fts5MallocZero
    - assert
    - sqlite3_mprintf
    - sqlite3Fts5Dequote
    - fts5VocabTableType
    - memcmp
    - sqlite3_declare_vtab
    - strlen
    linkageType: ''
    returnType: int
    signature: "int fts5VocabInitVtab(\n  sqlite3 *db,                    /* The SQLite
      database connection */\n  void *pAux,                     /* Pointer to Fts5Global
      object */\n  int argc,                       /* Number of elements in argv array
      */\n  const char * const *argv,       /* xCreate/xConnect argument array */\n
      \ sqlite3_vtab **ppVTab,          /* Write the resulting vtab structure here
      */\n  char **pzErr                    /* Write any error message here */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts5VocabInitVtab
      Src: /src/nss/lib/sqlite/sqlite3.c:222935,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - db
    - pAux
    - argc
    - argv
    - ppVtab
    - pzErr
    argTypes:
    - sqlite3*
    - void*
    - int
    - char**
    - sqlite3_vtab**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222936
      start: 222927
    functionDepth: 27
    functionLinenumber: 222927
    functionLinenumberEnd: 222936
    functionName: fts5VocabConnectMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5VocabInitVtab
    linkageType: ''
    returnType: int
    signature: "int fts5VocabConnectMethod(\n  sqlite3 *db,                    /*
      Database connection */\n  void *pAux,                     /* Pointer to tokenizer
      hash table */\n  int argc,                       /* Number of elements in argv
      array */\n  const char * const *argv,       /* xCreate/xConnect argument array
      */\n  sqlite3_vtab **ppVtab,          /* OUT: New sqlite3_vtab object */\n  char
      **pzErr                    /* OUT: sqlite3_malloc'd error message */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts5VocabInitVtab
      Src: /src/nss/lib/sqlite/sqlite3.c:222945,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - db
    - pAux
    - argc
    - argv
    - ppVtab
    - pzErr
    argTypes:
    - sqlite3*
    - void*
    - int
    - char**
    - sqlite3_vtab**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222946
      start: 222937
    functionDepth: 27
    functionLinenumber: 222937
    functionLinenumberEnd: 222946
    functionName: fts5VocabCreateMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5VocabInitVtab
    linkageType: ''
    returnType: int
    signature: "int fts5VocabCreateMethod(\n  sqlite3 *db,                    /* Database
      connection */\n  void *pAux,                     /* Pointer to tokenizer hash
      table */\n  int argc,                       /* Number of elements in argv array
      */\n  const char * const *argv,       /* xCreate/xConnect argument array */\n
      \ sqlite3_vtab **ppVtab,          /* OUT: New sqlite3_vtab object */\n  char
      **pzErr                    /* OUT: sqlite3_malloc'd error message */\n)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAM
      Src: /src/nss/lib/sqlite/sqlite3.c:222971,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 2
    argNames:
    - pUnused
    - pInfo
    argTypes:
    - sqlite3_vtab*
    - sqlite3_index_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223017
      start: 222960
    functionDepth: 1
    functionLinenumber: 222960
    functionLinenumberEnd: 223017
    functionName: fts5VocabBestIndexMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - UNUSED_PARAM
    linkageType: ''
    returnType: int
    signature: "int fts5VocabBestIndexMethod(\n  sqlite3_vtab *pUnused,\n  sqlite3_index_info
      *pInfo\n)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5Mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:223033,1
    - Dst: sqlite3_prepare_v2
      Src: /src/nss/lib/sqlite/sqlite3.c:223038,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:223040,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:223041,1
    - Dst: sqlite3_step
      Src: /src/nss/lib/sqlite/sqlite3.c:223044,1
    - Dst: sqlite3_column_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:223045,1
    - Dst: sqlite3Fts5TableFromCsrid
      Src: /src/nss/lib/sqlite/sqlite3.c:223046,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:223051,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/lib/sqlite/sqlite3.c:223054,1
    - Dst: sqlite3Fts5FlushToDisk
      Src: /src/nss/lib/sqlite/sqlite3.c:223060,1
    - Dst: sqlite3Fts5MallocZero
      Src: /src/nss/lib/sqlite/sqlite3.c:223066,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:223075,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 2
    argNames:
    - pVTab
    - ppCsr
    argTypes:
    - sqlite3_vtab*
    - sqlite3_vtab_cursor**
    assertStmts:
    - condition: ( rc==SQLITE_OK || pStmt==0 )
      pos:
        line_end: 223040
        line_start: 223040
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 223080
      start: 223022
    functionDepth: 28
    functionLinenumber: 223022
    functionLinenumberEnd: 223080
    functionName: fts5VocabOpenMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5Mprintf
    - sqlite3Fts5TableFromCsrid
    - sqlite3_step
    - sqlite3Fts5MallocZero
    - sqlite3_column_int64
    - assert
    - sqlite3_mprintf
    - sqlite3_prepare_v2
    - sqlite3Fts5FlushToDisk
    - sqlite3_finalize
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: "int fts5VocabOpenMethod(\n  sqlite3_vtab *pVTab, \n  sqlite3_vtab_cursor
      **ppCsr\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5IterClose
      Src: /src/nss/lib/sqlite/sqlite3.c:223084,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:223086,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - pCsr
    argTypes:
    - Fts5VocabCursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223090
      start: 223082
    functionDepth: 29
    functionLinenumber: 223082
    functionLinenumberEnd: 223090
    functionName: fts5VocabResetCursor
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5IterClose
    - sqlite3_free
    linkageType: ''
    returnType: void
    signature: void fts5VocabResetCursor(Fts5VocabCursor *pCsr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fts5VocabResetCursor
      Src: /src/nss/lib/sqlite/sqlite3.c:223098,1
    - Dst: sqlite3Fts5BufferFree
      Src: /src/nss/lib/sqlite/sqlite3.c:223099,1
    - Dst: sqlite3_finalize
      Src: /src/nss/lib/sqlite/sqlite3.c:223100,1
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:223101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - pCursor
    argTypes:
    - sqlite3_vtab_cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223103
      start: 223096
    functionDepth: 30
    functionLinenumber: 223096
    functionLinenumberEnd: 223103
    functionName: fts5VocabCloseMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5VocabResetCursor
    - sqlite3_finalize
    - sqlite3_free
    - sqlite3Fts5BufferFree
    linkageType: ''
    returnType: int
    signature: int fts5VocabCloseMethod(sqlite3_vtab_cursor *pCursor)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3Fts5IterEof
      Src: /src/nss/lib/sqlite/sqlite3.c:223108,1
    - Dst: sqlite3Fts5IterTerm
      Src: /src/nss/lib/sqlite/sqlite3.c:223113,1
    - Dst: MIN
      Src: /src/nss/lib/sqlite/sqlite3.c:223115,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:223116,1
    - Dst: sqlite3Fts5BufferSet
      Src: /src/nss/lib/sqlite/sqlite3.c:223122,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - pCsr
    argTypes:
    - Fts5VocabCursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223125
      start: 223105
    functionDepth: 3
    functionLinenumber: 223105
    functionLinenumberEnd: 223125
    functionName: fts5VocabInstanceNewTerm
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5IterTerm
    - sqlite3Fts5BufferSet
    - sqlite3Fts5IterEof
    - memcmp
    - MIN
    linkageType: ''
    returnType: int
    signature: int fts5VocabInstanceNewTerm(Fts5VocabCursor *pCsr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:223134,1
    - Dst: sqlite3Fts5IterEof
      Src: /src/nss/lib/sqlite/sqlite3.c:223134,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:223135,1
    - Dst: sqlite3Fts5PoslistNext64
      Src: /src/nss/lib/sqlite/sqlite3.c:223137,1
    - Dst: sqlite3Fts5IterNextScan
      Src: /src/nss/lib/sqlite/sqlite3.c:223142,1
    - Dst: fts5VocabInstanceNewTerm
      Src: /src/nss/lib/sqlite/sqlite3.c:223144,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 1
    argNames:
    - pCsr
    argTypes:
    - Fts5VocabCursor*
    assertStmts:
    - condition: ( sqlite3Fts5IterEof(pIter)==0 )
      pos:
        line_end: 223133
        line_start: 223133
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pCsr->bEof==0 )
      pos:
        line_end: 223134
        line_start: 223134
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 223154
      start: 223127
    functionDepth: 36
    functionLinenumber: 223127
    functionLinenumberEnd: 223154
    functionName: fts5VocabInstanceNext
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3Fts5IterNextScan
    - assert
    - sqlite3Fts5PoslistNext64
    - sqlite3Fts5IterEof
    - fts5VocabInstanceNewTerm
    linkageType: ''
    returnType: int
    signature: int fts5VocabInstanceNext(Fts5VocabCursor *pCsr)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: fts5VocabInstanceNext
      Src: /src/nss/lib/sqlite/sqlite3.c:223168,1
    - Dst: sqlite3Fts5IterEof
      Src: /src/nss/lib/sqlite/sqlite3.c:223178,1
    - Dst: sqlite3Fts5IterTerm
      Src: /src/nss/lib/sqlite/sqlite3.c:223184,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:223185,1
    - Dst: MIN
      Src: /src/nss/lib/sqlite/sqlite3.c:223187,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:223188,1
    - Dst: sqlite3Fts5BufferSet
      Src: /src/nss/lib/sqlite/sqlite3.c:223195,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:223196,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:223197,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:223200,1
    - Dst: sqlite3Fts5PoslistNext64
      Src: /src/nss/lib/sqlite/sqlite3.c:223213,1
    - Dst: sqlite3Fts5PoslistNext64
      Src: /src/nss/lib/sqlite/sqlite3.c:223223,1
    - Dst: FTS5_POS2COLUMN
      Src: /src/nss/lib/sqlite/sqlite3.c:223224,1
    - Dst: sqlite3Fts5PoslistNext64
      Src: /src/nss/lib/sqlite/sqlite3.c:223236,1
    - Dst: assert_nc
      Src: /src/nss/lib/sqlite/sqlite3.c:223237,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:223245,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:223251,1
    - Dst: sqlite3Fts5IterNextScan
      Src: /src/nss/lib/sqlite/sqlite3.c:223256,1
    - Dst: sqlite3Fts5IterTerm
      Src: /src/nss/lib/sqlite/sqlite3.c:223261,1
    - Dst: memcmp
      Src: /src/nss/lib/sqlite/sqlite3.c:223263,1
    - Dst: sqlite3Fts5IterEof
      Src: /src/nss/lib/sqlite/sqlite3.c:223267,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 96
    argCount: 1
    argNames:
    - pCursor
    argTypes:
    - sqlite3_vtab_cursor*
    assertStmts:
    - condition: ( nTerm>=0 )
      pos:
        line_end: 223184
        line_start: 223184
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTab->eType==FTS5_VOCAB_COL || pTab->eType==FTS5_VOCAB_ROW )
      pos:
        line_end: 223199
        line_start: 223199
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( pTab->eType==FTS5_VOCAB_INSTANCE )
      pos:
        line_end: 223250
        line_start: 223250
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( eDetail==FTS5_DETAIL_NONE )
      pos:
        line_end: 223244
        line_start: 223244
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 223280
      start: 223159
    functionDepth: 37
    functionLinenumber: 223159
    functionLinenumberEnd: 223280
    functionName: fts5VocabNextMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - fts5VocabInstanceNext
    - sqlite3Fts5IterTerm
    - sqlite3Fts5BufferSet
    - sqlite3Fts5IterNextScan
    - assert
    - memset
    - FTS5_POS2COLUMN
    - sqlite3Fts5PoslistNext64
    - sqlite3Fts5IterEof
    - memcmp
    - MIN
    - assert_nc
    linkageType: ''
    returnType: int
    signature: int fts5VocabNextMethod(sqlite3_vtab_cursor *pCursor)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: UNUSED_PARAM2
      Src: /src/nss/lib/sqlite/sqlite3.c:223306,1
    - Dst: fts5VocabResetCursor
      Src: /src/nss/lib/sqlite/sqlite3.c:223308,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:223314,1
    - Dst: sqlite3_value_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:223315,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:223319,1
    - Dst: sqlite3_value_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:223320,1
    - Dst: sqlite3_value_text
      Src: /src/nss/lib/sqlite/sqlite3.c:223323,1
    - Dst: sqlite3_value_bytes
      Src: /src/nss/lib/sqlite/sqlite3.c:223325,1
    - Dst: sqlite3_malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:223326,1
    - Dst: memcpy
      Src: /src/nss/lib/sqlite/sqlite3.c:223330,1
    - Dst: sqlite3Fts5IndexQuery
      Src: /src/nss/lib/sqlite/sqlite3.c:223337,1
    - Dst: fts5VocabInstanceNewTerm
      Src: /src/nss/lib/sqlite/sqlite3.c:223340,1
    - Dst: fts5VocabNextMethod
      Src: /src/nss/lib/sqlite/sqlite3.c:223346,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 5
    argNames:
    - pCursor
    - idxNum
    - zUnused
    - nUnused
    - apVal
    argTypes:
    - sqlite3_vtab_cursor*
    - int
    - char*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223350
      start: 223285
    functionDepth: 38
    functionLinenumber: 223285
    functionLinenumberEnd: 223350
    functionName: fts5VocabFilterMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_malloc
    - memcpy
    - fts5VocabResetCursor
    - sqlite3Fts5IndexQuery
    - fts5VocabInstanceNewTerm
    - sqlite3_value_text
    - UNUSED_PARAM2
    - fts5VocabNextMethod
    - sqlite3_value_bytes
    linkageType: ''
    returnType: int
    signature: "int fts5VocabFilterMethod(\n  sqlite3_vtab_cursor *pCursor,   /* The
      cursor used for this query */\n  int idxNum,                     /* Strategy
      index */\n  const char *zUnused,            /* Unused */\n  int nUnused,                    /*
      Number of elements in apVal */\n  sqlite3_value **apVal           /* Arguments
      for the indexing scheme */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pCursor
    argTypes:
    - sqlite3_vtab_cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223359
      start: 223356
    functionDepth: 0
    functionLinenumber: 223356
    functionLinenumberEnd: 223359
    functionName: fts5VocabEofMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fts5VocabEofMethod(sqlite3_vtab_cursor *pCursor)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:223372,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:223376,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:223380,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:223388,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:223395,1
    - Dst: sqlite3_result_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:223398,1
    - Dst: FTS5_POS2COLUMN
      Src: /src/nss/lib/sqlite/sqlite3.c:223403,1
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:223409,1
    - Dst: assert
      Src: /src/nss/lib/sqlite/sqlite3.c:223414,1
    - Dst: FTS5_POS2OFFSET
      Src: /src/nss/lib/sqlite/sqlite3.c:223416,1
    - Dst: sqlite3_result_int
      Src: /src/nss/lib/sqlite/sqlite3.c:223417,1
    - Dst: sqlite3_result_int64
      Src: /src/nss/lib/sqlite/sqlite3.c:223424,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 54
    argCount: 3
    argNames:
    - pCursor
    - pCtx
    - iCol
    argTypes:
    - sqlite3_vtab_cursor*
    - sqlite3_context*
    - int
    assertStmts:
    - condition: ( iCol==1 || iCol==2 )
      pos:
        line_end: 223387
        line_start: 223387
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iCol==1 || iCol==2 || iCol==3 )
      pos:
        line_end: 223375
        line_start: 223375
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( eType==FTS5_VOCAB_INSTANCE )
      pos:
        line_end: 223394
        line_start: 223394
        source_file: /src/nss/lib/sqlite/sqlite3.c
    - condition: ( iCol==3 )
      pos:
        line_end: 223413
        line_start: 223413
        source_file: /src/nss/lib/sqlite/sqlite3.c
    constantsTouched: []
    func_position:
      end: 223426
      start: 223361
    functionDepth: 14
    functionLinenumber: 223361
    functionLinenumberEnd: 223426
    functionName: fts5VocabColumnMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_result_int64
    - assert
    - FTS5_POS2COLUMN
    - sqlite3_result_int
    - FTS5_POS2OFFSET
    - sqlite3_result_text
    linkageType: ''
    returnType: int
    signature: "int fts5VocabColumnMethod(\n  sqlite3_vtab_cursor *pCursor,   /* Cursor
      to retrieve value from */\n  sqlite3_context *pCtx,          /* Context for
      sqlite3_result_xxx() calls */\n  int iCol                        /* Index of
      column to read value from */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - pCursor
    - pRowid
    argTypes:
    - sqlite3_vtab_cursor*
    - sqlite_int64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223440
      start: 223433
    functionDepth: 0
    functionLinenumber: 223433
    functionLinenumberEnd: 223440
    functionName: fts5VocabRowidMethod
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int fts5VocabRowidMethod(\n  sqlite3_vtab_cursor *pCursor, \n  sqlite_int64
      *pRowid\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_create_module_v2
      Src: /src/nss/lib/sqlite/sqlite3.c:223471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pGlobal
    - db
    argTypes:
    - Fts5Global*
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223472
      start: 223442
    functionDepth: 13
    functionLinenumber: 223442
    functionLinenumberEnd: 223472
    functionName: sqlite3Fts5VocabInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 1
    functionsReached:
    - sqlite3_create_module_v2
    linkageType: ''
    returnType: int
    signature: int sqlite3Fts5VocabInit(Fts5Global *pGlobal, sqlite3 *db)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_declare_vtab
      Src: /src/nss/lib/sqlite/sqlite3.c:223570,1
    - Dst: sqlite3_malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:223574,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:223577,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 6
    argNames:
    - db
    - pAux
    - argc
    - argv
    - ppVtab
    - pzErr
    argTypes:
    - sqlite3*
    - void*
    - int
    - char**
    - sqlite3_vtab**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223581
      start: 223546
    functionDepth: 26
    functionLinenumber: 223546
    functionLinenumberEnd: 223581
    functionName: stmtConnect
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3_malloc
    - sqlite3_declare_vtab
    linkageType: ''
    returnType: int
    signature: "int stmtConnect(\n  sqlite3 *db,\n  void *pAux,\n  int argc, const
      char *const*argv,\n  sqlite3_vtab **ppVtab,\n  char **pzErr\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:223587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pVtab
    argTypes:
    - sqlite3_vtab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223589
      start: 223586
    functionDepth: 3
    functionLinenumber: 223586
    functionLinenumberEnd: 223589
    functionName: stmtDisconnect
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int stmtDisconnect(sqlite3_vtab *pVtab)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_malloc
      Src: /src/nss/lib/sqlite/sqlite3.c:223596,1
    - Dst: memset
      Src: /src/nss/lib/sqlite/sqlite3.c:223598,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - p
    - ppCursor
    argTypes:
    - sqlite3_vtab*
    - sqlite3_vtab_cursor**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223602
      start: 223594
    functionDepth: 6
    functionLinenumber: 223594
    functionLinenumberEnd: 223602
    functionName: stmtOpen
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - memset
    - sqlite3_malloc
    linkageType: ''
    returnType: int
    signature: int stmtOpen(sqlite3_vtab *p, sqlite3_vtab_cursor **ppCursor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_free
      Src: /src/nss/lib/sqlite/sqlite3.c:223608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cur
    argTypes:
    - sqlite3_vtab_cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223610
      start: 223607
    functionDepth: 3
    functionLinenumber: 223607
    functionLinenumberEnd: 223610
    functionName: stmtClose
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_free
    linkageType: ''
    returnType: int
    signature: int stmtClose(sqlite3_vtab_cursor *cur)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_next_stmt
      Src: /src/nss/lib/sqlite/sqlite3.c:223619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cur
    argTypes:
    - sqlite3_vtab_cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223621
      start: 223616
    functionDepth: 0
    functionLinenumber: 223616
    functionLinenumberEnd: 223621
    functionName: stmtNext
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_next_stmt
    linkageType: ''
    returnType: int
    signature: int stmtNext(sqlite3_vtab_cursor *cur)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_result_text
      Src: /src/nss/lib/sqlite/sqlite3.c:223635,1
    - Dst: sqlite3_sql
      Src: /src/nss/lib/sqlite/sqlite3.c:223635,1
    - Dst: sqlite3_result_int
      Src: /src/nss/lib/sqlite/sqlite3.c:223639,1
    - Dst: sqlite3_column_count
      Src: /src/nss/lib/sqlite/sqlite3.c:223639,1
    - Dst: sqlite3_result_int
      Src: /src/nss/lib/sqlite/sqlite3.c:223643,1
    - Dst: sqlite3_stmt_readonly
      Src: /src/nss/lib/sqlite/sqlite3.c:223643,1
    - Dst: sqlite3_result_int
      Src: /src/nss/lib/sqlite/sqlite3.c:223647,1
    - Dst: sqlite3_stmt_busy
      Src: /src/nss/lib/sqlite/sqlite3.c:223647,1
    - Dst: sqlite3_result_int
      Src: /src/nss/lib/sqlite/sqlite3.c:223661,1
    - Dst: sqlite3_stmt_status
      Src: /src/nss/lib/sqlite/sqlite3.c:223661,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 3
    argNames:
    - cur
    - ctx
    - i
    argTypes:
    - sqlite3_vtab_cursor*
    - sqlite3_context*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223667
      start: 223627
    functionDepth: 14
    functionLinenumber: 223627
    functionLinenumberEnd: 223667
    functionName: stmtColumn
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_sql
    - sqlite3_column_count
    - sqlite3_result_int
    - sqlite3_stmt_readonly
    - sqlite3_stmt_busy
    - sqlite3_result_text
    - sqlite3_stmt_status
    linkageType: ''
    returnType: int
    signature: "int stmtColumn(\n  sqlite3_vtab_cursor *cur,   /* The cursor */\n
      \ sqlite3_context *ctx,       /* First argument to sqlite3_result_...() */\n
      \ int i                       /* Which column to return */\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cur
    - pRowid
    argTypes:
    - sqlite3_vtab_cursor*
    - sqlite_int64*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223677
      start: 223673
    functionDepth: 0
    functionLinenumber: 223673
    functionLinenumberEnd: 223677
    functionName: stmtRowid
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int stmtRowid(sqlite3_vtab_cursor *cur, sqlite_int64 *pRowid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cur
    argTypes:
    - sqlite3_vtab_cursor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223686
      start: 223683
    functionDepth: 0
    functionLinenumber: 223683
    functionLinenumberEnd: 223686
    functionName: stmtEof
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int stmtEof(sqlite3_vtab_cursor *cur)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stmtNext
      Src: /src/nss/lib/sqlite/sqlite3.c:223702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - pVtabCursor
    - idxNum
    - idxStr
    - argc
    - argv
    argTypes:
    - sqlite3_vtab_cursor*
    - int
    - char*
    - int
    - sqlite3_value**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223703
      start: 223694
    functionDepth: 1
    functionLinenumber: 223694
    functionLinenumberEnd: 223703
    functionName: stmtFilter
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - stmtNext
    linkageType: ''
    returnType: int
    signature: "int stmtFilter(\n  sqlite3_vtab_cursor *pVtabCursor, \n  int idxNum,
      const char *idxStr,\n  int argc, sqlite3_value **argv\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - tab
    - pIdxInfo
    argTypes:
    - sqlite3_vtab*
    - sqlite3_index_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223718
      start: 223711
    functionDepth: 0
    functionLinenumber: 223711
    functionLinenumberEnd: 223718
    functionName: stmtBestIndex
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int stmtBestIndex(\n  sqlite3_vtab *tab,\n  sqlite3_index_info *pIdxInfo\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqlite3_create_module
      Src: /src/nss/lib/sqlite/sqlite3.c:223756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - db
    argTypes:
    - sqlite3*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223759
      start: 223753
    functionDepth: 13
    functionLinenumber: 223753
    functionLinenumberEnd: 223759
    functionName: sqlite3StmtVtabInit
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3_create_module
    linkageType: ''
    returnType: SQLITE_PRIVATE
    signature: SQLITE_PRIVATE sqlite3StmtVtabInit(sqlite3 *db)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SQLITE_EXTENSION_INIT2
      Src: /src/nss/lib/sqlite/sqlite3.c:223771,1
    - Dst: sqlite3StmtVtabInit
      Src: /src/nss/lib/sqlite/sqlite3.c:223773,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - db
    - pzErrMsg
    - pApi
    argTypes:
    - sqlite3*
    - char**
    - sqlite3_api_routines*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223776
      start: 223763
    functionDepth: 14
    functionLinenumber: 223763
    functionLinenumberEnd: 223776
    functionName: sqlite3_stmt_init
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 0
    functionsReached:
    - sqlite3StmtVtabInit
    - SQLITE_EXTENSION_INIT2
    linkageType: ''
    returnType: SQLITE_API
    signature: "SQLITE_API sqlite3_stmt_init(\n  sqlite3 *db, \n  char **pzErrMsg,
      \n  const sqlite3_api_routines *pApi\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223786
      start: 223786
    functionDepth: 0
    functionLinenumber: 223786
    functionLinenumberEnd: 223786
    functionName: sqlite3_sourceid
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: SQLITE_API
    signature: SQLITE_API *sqlite3_sourceid(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 194
    functionName: sqlite3_compileoption_used
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3_compileoption_used(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 195
    functionName: sqlite3_compileoption_get
    functionSourceFile: /src/nss/lib/sqlite/sqlite3.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sqlite3_compileoption_get(X)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/fuzz/targets/tls_server.cc:31,1
    - Dst: SSL_ConfigServerSessionIDCache
      Src: /src/nss/fuzz/targets/tls_server.cc:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (SSL_ConfigServerSessionIDCache(1024, 0, 0, ".") == SECSuccess)
      pos:
        line_end: 30
        line_start: 30
        source_file: /src/nss/fuzz/targets/tls_server.cc
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 6
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: SSLServerSessionCache::SSLServerSessionCache
    functionSourceFile: /src/nss/fuzz/targets/tls_server.cc
    functionUses: 0
    functionsReached:
    - assert
    - SSL_ConfigServerSessionIDCache
    linkageType: ''
    returnType: void
    signature: void SSLServerSessionCache()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/fuzz/targets/tls_server.cc:35,1
    - Dst: SSL_ShutdownServerSessionIDCache
      Src: /src/nss/fuzz/targets/tls_server.cc:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (SSL_ShutdownServerSessionIDCache() == SECSuccess)
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/nss/fuzz/targets/tls_server.cc
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 6
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: ~SSLServerSessionCache()
    functionSourceFile: /src/nss/fuzz/targets/tls_server.cc
    functionUses: 0
    functionsReached:
    - assert
    - SSL_ShutdownServerSessionIDCache
    linkageType: ''
    returnType: void
    signature: void ~SSLServerSessionCache()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<PRFileDesc*>
      Src: /src/nss/fuzz/targets/tls_server.cc:40,1
    - Dst: TlsCommon::EnableAllCipherSuites
      Src: /src/nss/fuzz/targets/tls_server.cc:42,1
    - Dst: TlsServer::InstallServerCertificates
      Src: /src/nss/fuzz/targets/tls_server.cc:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 46
    functionName: InitModelSocket
    functionSourceFile: /src/nss/fuzz/targets/tls_server.cc
    functionUses: 0
    functionsReached:
    - TlsCommon::EnableAllCipherSuites
    - TlsServer::InstallServerCertificates
    - reinterpret_cast<PRFileDesc*>
    linkageType: ''
    returnType: PRStatus
    signature: PRStatus InitModelSocket(void* arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSSDatabase
      Src: /src/nss/fuzz/targets/tls_server.cc:49,1
    - Dst: SSLServerSessionCache
      Src: /src/nss/fuzz/targets/tls_server.cc:50,1
    - Dst: PR_GetUniqueIdentity
      Src: /src/nss/fuzz/targets/tls_server.cc:51,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/tls_server.cc:55,1
    - Dst: PR_CallOnceWithArg
      Src: /src/nss/fuzz/targets/tls_server.cc:59,1
    - Dst: ScopedPRFileDesc::get
      Src: /src/nss/fuzz/targets/tls_server.cc:59,1
    - Dst: TlsSocket::DummyPrSocket::DummyPrSocket
      Src: /src/nss/fuzz/targets/tls_server.cc:62,1
    - Dst: DummyIOLayerMethods::CreateFD
      Src: /src/nss/fuzz/targets/tls_server.cc:63,1
    - Dst: ImportFD
      Src: /src/nss/fuzz/targets/tls_server.cc:64,1
    - Dst: ScopedPRFileDesc::get
      Src: /src/nss/fuzz/targets/tls_server.cc:64,1
    - Dst: ScopedPRFileDesc::get
      Src: /src/nss/fuzz/targets/tls_server.cc:64,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/tls_server.cc:65,1
    - Dst: ScopedPRFileDesc::get
      Src: /src/nss/fuzz/targets/tls_server.cc:65,1
    - Dst: mySSLSNISocketConfig
      Src: /src/nss/fuzz/targets/tls_server.cc:68,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/tls_server.cc:75,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/fuzz/targets/tls_server.cc:75,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/tls_server.cc:76,1
    - Dst: SSL_SetURL
      Src: /src/nss/fuzz/targets/tls_server.cc:76,1
    - Dst: TlsCommon::EnableAllProtocolVersions
      Src: /src/nss/fuzz/targets/tls_server.cc:78,1
    - Dst: TlsCommon::EnableAllCipherSuites
      Src: /src/nss/fuzz/targets/tls_server.cc:79,1
    - Dst: TlsCommon::FixTime
      Src: /src/nss/fuzz/targets/tls_server.cc:80,1
    - Dst: TlsServer::Config::SetCallbacks
      Src: /src/nss/fuzz/targets/tls_server.cc:83,1
    - Dst: TlsServer::Config::SetSocketOptions
      Src: /src/nss/fuzz/targets/tls_server.cc:84,1
    - Dst: TlsCommon::DoHandshake
      Src: /src/nss/fuzz/targets/tls_server.cc:87,1
    - Dst: SSL_ClearSessionCache
      Src: /src/nss/fuzz/targets/tls_server.cc:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (model)
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/nss/fuzz/targets/tls_server.cc
    - condition: (SSL_SetURL(sslFd, "fuzz.server") == SECSuccess)
      pos:
        line_end: 75
        line_start: 75
        source_file: /src/nss/fuzz/targets/tls_server.cc
    - condition: (sslFd == prFd.get())
      pos:
        line_end: 64
        line_start: 64
        source_file: /src/nss/fuzz/targets/tls_server.cc
    - condition: (RNG_RandomUpdate(NULL, 0) == SECSuccess)
      pos:
        line_end: 74
        line_start: 74
        source_file: /src/nss/fuzz/targets/tls_server.cc
    constantsTouched: []
    func_position:
      end: 93
      start: 48
    functionDepth: 12
    functionLinenumber: 48
    functionLinenumberEnd: 93
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/nss/fuzz/targets/tls_server.cc
    functionUses: 0
    functionsReached:
    - SSL_ClearSessionCache
    - ImportFD
    - ScopedPRFileDesc::get
    - RNG_RandomUpdate
    - assert
    - TlsSocket::DummyPrSocket::DummyPrSocket
    - TlsCommon::DoHandshake
    - TlsServer::Config::SetSocketOptions
    - TlsCommon::EnableAllProtocolVersions
    - PR_CallOnceWithArg
    - TlsServer::Config::SetCallbacks
    - mySSLSNISocketConfig
    - SSL_SetURL
    - PR_GetUniqueIdentity
    - TlsCommon::FixTime
    - SSLServerSessionCache
    - TlsCommon::EnableAllCipherSuites
    - DummyIOLayerMethods::CreateFD
    - NSSDatabase
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CustomMutate
      Src: /src/nss/fuzz/targets/tls_server.cc:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - data
    - size
    - maxSize
    - seed
    argTypes:
    - uint8_t*
    - size_t
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 102
    functionName: LLVMFuzzerCustomMutator
    functionSourceFile: /src/nss/fuzz/targets/tls_server.cc
    functionUses: 0
    functionsReached:
    - CustomMutate
    linkageType: ''
    returnType: size_t
    signature: "size_t LLVMFuzzerCustomMutator(uint8_t* data, size_t size,\n                                          size_t
      maxSize, unsigned int seed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TlsMutators::CrossOver
      Src: /src/nss/fuzz/targets/tls_server.cc:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - data1
    - size1
    - data2
    - size2
    - out
    - maxOutSize
    - seed
    argTypes:
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 110
    functionName: LLVMFuzzerCustomCrossOver
    functionSourceFile: /src/nss/fuzz/targets/tls_server.cc
    functionUses: 0
    functionsReached:
    - TlsMutators::CrossOver
    linkageType: ''
    returnType: size_t
    signature: "size_t LLVMFuzzerCustomCrossOver(const uint8_t* data1, size_t size1,\n
      \                                           const uint8_t* data2, size_t size2,\n
      \                                           uint8_t* out, size_t maxOutSize,\n
      \                                           unsigned int seed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 13
    functionName: TEST_FUNCTION
    functionSourceFile: /src/nss/fuzz/targets/certDN.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_FUNCTION(f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/fuzz/targets/certDN.cc:17,1
    - Dst: SECOID_Init
      Src: /src/nss/fuzz/targets/certDN.cc:17,1
    - Dst: CERT_AsciiToName
      Src: /src/nss/fuzz/targets/certDN.cc:19,1
    - Dst: std::string::c_str
      Src: /src/nss/fuzz/targets/certDN.cc:19,1
    - Dst: TEST_FUNCTION
      Src: /src/nss/fuzz/targets/certDN.cc:22,1
    - Dst: TEST_FUNCTION
      Src: /src/nss/fuzz/targets/certDN.cc:23,1
    - Dst: TEST_FUNCTION
      Src: /src/nss/fuzz/targets/certDN.cc:24,1
    - Dst: TEST_FUNCTION
      Src: /src/nss/fuzz/targets/certDN.cc:28,1
    - Dst: TEST_FUNCTION
      Src: /src/nss/fuzz/targets/certDN.cc:29,1
    - Dst: TEST_FUNCTION
      Src: /src/nss/fuzz/targets/certDN.cc:30,1
    - Dst: TEST_FUNCTION
      Src: /src/nss/fuzz/targets/certDN.cc:31,1
    - Dst: TEST_FUNCTION
      Src: /src/nss/fuzz/targets/certDN.cc:32,1
    - Dst: TEST_FUNCTION
      Src: /src/nss/fuzz/targets/certDN.cc:33,1
    - Dst: TEST_FUNCTION
      Src: /src/nss/fuzz/targets/certDN.cc:34,1
    - Dst: TEST_FUNCTION
      Src: /src/nss/fuzz/targets/certDN.cc:35,1
    - Dst: CERT_NameToAsciiInvertible
      Src: /src/nss/fuzz/targets/certDN.cc:37,1
    - Dst: free
      Src: /src/nss/fuzz/targets/certDN.cc:38,1
    - Dst: CERT_NameToAsciiInvertible
      Src: /src/nss/fuzz/targets/certDN.cc:39,1
    - Dst: free
      Src: /src/nss/fuzz/targets/certDN.cc:40,1
    - Dst: CERT_NameToAsciiInvertible
      Src: /src/nss/fuzz/targets/certDN.cc:41,1
    - Dst: free
      Src: /src/nss/fuzz/targets/certDN.cc:42,1
    - Dst: CERT_CompareName
      Src: /src/nss/fuzz/targets/certDN.cc:44,1
    - Dst: CERT_DestroyName
      Src: /src/nss/fuzz/targets/certDN.cc:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (SECOID_Init() == SECSuccess)
      pos:
        line_end: 16
        line_start: 16
        source_file: /src/nss/fuzz/targets/certDN.cc
    constantsTouched: []
    func_position:
      end: 49
      start: 14
    functionDepth: 6
    functionLinenumber: 14
    functionLinenumberEnd: 49
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/nss/fuzz/targets/certDN.cc
    functionUses: 0
    functionsReached:
    - free
    - CERT_AsciiToName
    - CERT_CompareName
    - CERT_DestroyName
    - assert
    - std::string::c_str
    - SECOID_Init
    - CERT_NameToAsciiInvertible
    - TEST_FUNCTION
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_InitCheapArena
      Src: /src/nss/fuzz/targets/asn1.cc:72,1
    - Dst: memset
      Src: /src/nss/fuzz/targets/asn1.cc:75,1
    - Dst: SEC_ASN1DecodeItem
      Src: /src/nss/fuzz/targets/asn1.cc:78,1
    - Dst: PORT_DestroyCheapArena
      Src: /src/nss/fuzz/targets/asn1.cc:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 84
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/nss/fuzz/targets/asn1.cc
    functionUses: 0
    functionsReached:
    - memset
    - SEC_ASN1DecodeItem
    - PORT_DestroyCheapArena
    - PORT_InitCheapArena
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CustomMutate
      Src: /src/nss/fuzz/targets/asn1.cc:88,1
    - Dst: Mutators
      Src: /src/nss/fuzz/targets/asn1.cc:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - data
    - size
    - max_size
    - seed
    argTypes:
    - uint8_t*
    - size_t
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 91
    functionName: LLVMFuzzerCustomMutator
    functionSourceFile: /src/nss/fuzz/targets/asn1.cc
    functionUses: 0
    functionsReached:
    - CustomMutate
    - Mutators
    linkageType: ''
    returnType: size_t
    signature: "size_t LLVMFuzzerCustomMutator(uint8_t *data, size_t size,\n                                          size_t
      max_size, unsigned int seed)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSSDatabase
      Src: /src/nss/fuzz/targets/pkcs8.cc:20,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/pkcs8.cc:25,1
    - Dst: PK11_ImportDERPrivateKeyInfoAndReturnKey
      Src: /src/nss/fuzz/targets/pkcs8.cc:28,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/fuzz/targets/pkcs8.cc:29,1
    - Dst: SECKEY_PrivateKeyStrengthInBits
      Src: /src/nss/fuzz/targets/pkcs8.cc:34,1
    - Dst: SECKEY_GetPrivateKeyType
      Src: /src/nss/fuzz/targets/pkcs8.cc:35,1
    - Dst: PK11_SignatureLen
      Src: /src/nss/fuzz/targets/pkcs8.cc:36,1
    - Dst: PK11_GetPrivateModulusLen
      Src: /src/nss/fuzz/targets/pkcs8.cc:37,1
    - Dst: PK11_GetPrivateKeyNickname
      Src: /src/nss/fuzz/targets/pkcs8.cc:42,1
    - Dst: PORT_Free
      Src: /src/nss/fuzz/targets/pkcs8.cc:43,1
    - Dst: PK11_GetPQGParamsFromPrivateKey
      Src: /src/nss/fuzz/targets/pkcs8.cc:45,1
    - Dst: PORT_FreeArena
      Src: /src/nss/fuzz/targets/pkcs8.cc:46,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/fuzz/targets/pkcs8.cc:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (slot)
      pos:
        line_end: 24
        line_start: 24
        source_file: /src/nss/fuzz/targets/pkcs8.cc
    constantsTouched: []
    func_position:
      end: 51
      start: 19
    functionDepth: 5
    functionLinenumber: 19
    functionLinenumberEnd: 51
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/nss/fuzz/targets/pkcs8.cc
    functionUses: 0
    functionsReached:
    - PORT_FreeArena
    - PORT_Free
    - PK11_GetPQGParamsFromPrivateKey
    - PK11_GetPrivateModulusLen
    - SECKEY_DestroyPrivateKey
    - assert
    - SECKEY_GetPrivateKeyType
    - PK11_SignatureLen
    - SECKEY_PrivateKeyStrengthInBits
    - PK11_GetPrivateKeyNickname
    - ScopedPK11SlotInfo::get
    - PK11_ImportDERPrivateKeyInfoAndReturnKey
    - NSSDatabase
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CustomMutate
      Src: /src/nss/fuzz/targets/pkcs8.cc:55,1
    - Dst: Mutators
      Src: /src/nss/fuzz/targets/pkcs8.cc:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - data
    - size
    - maxSize
    - seed
    argTypes:
    - uint8_t*
    - size_t
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 58
    functionName: LLVMFuzzerCustomMutator
    functionSourceFile: /src/nss/fuzz/targets/pkcs8.cc
    functionUses: 0
    functionsReached:
    - CustomMutate
    - Mutators
    linkageType: ''
    returnType: size_t
    signature: "size_t LLVMFuzzerCustomMutator(uint8_t *data, size_t size,\n                                          size_t
      maxSize, unsigned int seed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSSDatabase
      Src: /src/nss/fuzz/targets/smime.cc:16,1
    - Dst: NSS_CMSMessage_CreateFromDER
      Src: /src/nss/fuzz/targets/smime.cc:20,1
    - Dst: NSS_CMSMessage_IsSigned
      Src: /src/nss/fuzz/targets/smime.cc:22,1
    - Dst: ScopedNSSCMSMessage::get
      Src: /src/nss/fuzz/targets/smime.cc:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 15
    functionDepth: 8
    functionLinenumber: 15
    functionLinenumberEnd: 25
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/nss/fuzz/targets/smime.cc
    functionUses: 0
    functionsReached:
    - NSS_CMSMessage_CreateFromDER
    - NSS_CMSMessage_IsSigned
    - NSSDatabase
    - ScopedNSSCMSMessage::get
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CustomMutate
      Src: /src/nss/fuzz/targets/smime.cc:29,1
    - Dst: Mutators
      Src: /src/nss/fuzz/targets/smime.cc:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - data
    - size
    - maxSize
    - seed
    argTypes:
    - uint8_t*
    - size_t
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 32
    functionName: LLVMFuzzerCustomMutator
    functionSourceFile: /src/nss/fuzz/targets/smime.cc
    functionUses: 0
    functionsReached:
    - CustomMutate
    - Mutators
    linkageType: ''
    returnType: size_t
    signature: "size_t LLVMFuzzerCustomMutator(uint8_t *data, size_t size,\n                                          size_t
      maxSize, unsigned int seed)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSSDatabase
      Src: /src/nss/fuzz/targets/pkcs7.cc:20,1
    - Dst: CERT_DecodeCertFromPackage
      Src: /src/nss/fuzz/targets/pkcs7.cc:23,1
    - Dst: CERT_VerifyCertificateNow
      Src: /src/nss/fuzz/targets/pkcs7.cc:31,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/fuzz/targets/pkcs7.cc:31,1
    - Dst: ScopedCERTCertificate::get
      Src: /src/nss/fuzz/targets/pkcs7.cc:31,1
    - Dst: CERT_VerifyCertName
      Src: /src/nss/fuzz/targets/pkcs7.cc:34,1
    - Dst: ScopedCERTCertificate::get
      Src: /src/nss/fuzz/targets/pkcs7.cc:34,1
    - Dst: CERT_GetCertificateDer
      Src: /src/nss/fuzz/targets/pkcs7.cc:35,1
    - Dst: ScopedCERTCertificate::get
      Src: /src/nss/fuzz/targets/pkcs7.cc:35,1
    - Dst: CERT_ExtractPublicKey
      Src: /src/nss/fuzz/targets/pkcs7.cc:37,1
    - Dst: ScopedCERTCertificate::get
      Src: /src/nss/fuzz/targets/pkcs7.cc:37,1
    - Dst: CERT_GetCertChainFromCert
      Src: /src/nss/fuzz/targets/pkcs7.cc:39,1
    - Dst: ScopedCERTCertificate::get
      Src: /src/nss/fuzz/targets/pkcs7.cc:39,1
    - Dst: PR_Now
      Src: /src/nss/fuzz/targets/pkcs7.cc:39,1
    - Dst: CERT_GetValidDNSPatternsFromCert
      Src: /src/nss/fuzz/targets/pkcs7.cc:41,1
    - Dst: ScopedCERTCertificate::get
      Src: /src/nss/fuzz/targets/pkcs7.cc:41,1
    - Dst: PORT_FreeArena
      Src: /src/nss/fuzz/targets/pkcs7.cc:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 19
    functionDepth: 13
    functionLinenumber: 19
    functionLinenumberEnd: 45
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/nss/fuzz/targets/pkcs7.cc
    functionUses: 0
    functionsReached:
    - CERT_DecodeCertFromPackage
    - CERT_VerifyCertificateNow
    - PORT_FreeArena
    - ScopedCERTCertificate::get
    - PR_Now
    - CERT_GetCertChainFromCert
    - CERT_VerifyCertName
    - CERT_GetValidDNSPatternsFromCert
    - CERT_GetDefaultCertDB
    - CERT_GetCertificateDer
    - CERT_ExtractPublicKey
    - NSSDatabase
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CustomMutate
      Src: /src/nss/fuzz/targets/pkcs7.cc:49,1
    - Dst: Mutators
      Src: /src/nss/fuzz/targets/pkcs7.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - data
    - size
    - maxSize
    - seed
    argTypes:
    - uint8_t*
    - size_t
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: LLVMFuzzerCustomMutator
    functionSourceFile: /src/nss/fuzz/targets/pkcs7.cc
    functionUses: 0
    functionsReached:
    - CustomMutate
    - Mutators
    linkageType: ''
    returnType: size_t
    signature: "size_t LLVMFuzzerCustomMutator(uint8_t *data, size_t size,\n                                          size_t
      maxSize, unsigned int seed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - oldNick
    - cancel
    - wincx
    argTypes:
    - SECItem*
    - PRBool*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 22
    functionName: nicknameCollision
    functionSourceFile: /src/nss/fuzz/targets/pkcs12.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECItem
    signature: "SECItem * nicknameCollision(SECItem* oldNick, PRBool* cancel,\n                                  void*
      wincx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NSSDatabase
      Src: /src/nss/fuzz/targets/pkcs12.cc:25,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/pkcs12.cc:28,1
    - Dst: SEC_PKCS12DecoderStart
      Src: /src/nss/fuzz/targets/pkcs12.cc:33,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/fuzz/targets/pkcs12.cc:33,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/pkcs12.cc:35,1
    - Dst: SEC_PKCS12DecoderUpdate
      Src: /src/nss/fuzz/targets/pkcs12.cc:37,1
    - Dst: ScopedSEC_PKCS12DecoderContext::get
      Src: /src/nss/fuzz/targets/pkcs12.cc:37,1
    - Dst: SEC_PKCS12DecoderVerify
      Src: /src/nss/fuzz/targets/pkcs12.cc:43,1
    - Dst: ScopedSEC_PKCS12DecoderContext::get
      Src: /src/nss/fuzz/targets/pkcs12.cc:43,1
    - Dst: SEC_PKCS12DecoderValidateBags
      Src: /src/nss/fuzz/targets/pkcs12.cc:49,1
    - Dst: ScopedSEC_PKCS12DecoderContext::get
      Src: /src/nss/fuzz/targets/pkcs12.cc:49,1
    - Dst: SEC_PKCS12DecoderImportBags
      Src: /src/nss/fuzz/targets/pkcs12.cc:55,1
    - Dst: ScopedSEC_PKCS12DecoderContext::get
      Src: /src/nss/fuzz/targets/pkcs12.cc:55,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (dcx)
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/nss/fuzz/targets/pkcs12.cc
    - condition: (slot)
      pos:
        line_end: 27
        line_start: 27
        source_file: /src/nss/fuzz/targets/pkcs12.cc
    constantsTouched: []
    func_position:
      end: 61
      start: 24
    functionDepth: 13
    functionLinenumber: 24
    functionLinenumberEnd: 61
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/nss/fuzz/targets/pkcs12.cc
    functionUses: 0
    functionsReached:
    - SEC_PKCS12DecoderImportBags
    - SEC_PKCS12DecoderValidateBags
    - SEC_PKCS12DecoderUpdate
    - assert
    - ScopedSEC_PKCS12DecoderContext::get
    - SEC_PKCS12DecoderStart
    - SEC_PKCS12DecoderVerify
    - ScopedPK11SlotInfo::get
    - NSSDatabase
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CustomMutate
      Src: /src/nss/fuzz/targets/pkcs12.cc:65,1
    - Dst: Mutators
      Src: /src/nss/fuzz/targets/pkcs12.cc:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - data
    - size
    - maxSize
    - seed
    argTypes:
    - uint8_t*
    - size_t
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 68
    functionName: LLVMFuzzerCustomMutator
    functionSourceFile: /src/nss/fuzz/targets/pkcs12.cc
    functionUses: 0
    functionsReached:
    - CustomMutate
    - Mutators
    linkageType: ''
    returnType: size_t
    signature: "size_t LLVMFuzzerCustomMutator(uint8_t* data, size_t size,\n                                          size_t
      maxSize, unsigned int seed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_InitCheapArena
      Src: /src/nss/fuzz/targets/quickder.cc:77,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/fuzz/targets/quickder.cc:81,1
    - Dst: PORT_DestroyCheapArena
      Src: /src/nss/fuzz/targets/quickder.cc:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 87
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/nss/fuzz/targets/quickder.cc
    functionUses: 0
    functionsReached:
    - SEC_QuickDERDecodeItem
    - PORT_DestroyCheapArena
    - PORT_InitCheapArena
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CustomMutate
      Src: /src/nss/fuzz/targets/quickder.cc:91,1
    - Dst: Mutators
      Src: /src/nss/fuzz/targets/quickder.cc:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - data
    - size
    - max_size
    - seed
    argTypes:
    - uint8_t*
    - size_t
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: LLVMFuzzerCustomMutator
    functionSourceFile: /src/nss/fuzz/targets/quickder.cc
    functionUses: 0
    functionsReached:
    - CustomMutate
    - Mutators
    linkageType: ''
    returnType: size_t
    signature: "size_t LLVMFuzzerCustomMutator(uint8_t *data, size_t size,\n                                          size_t
      max_size, unsigned int seed)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSSDatabase
      Src: /src/nss/fuzz/targets/tls_client.cc:29,1
    - Dst: PR_GetUniqueIdentity
      Src: /src/nss/fuzz/targets/tls_client.cc:30,1
    - Dst: TlsSocket::DummyPrSocket::DummyPrSocket
      Src: /src/nss/fuzz/targets/tls_client.cc:33,1
    - Dst: DummyIOLayerMethods::CreateFD
      Src: /src/nss/fuzz/targets/tls_client.cc:34,1
    - Dst: ImportFD
      Src: /src/nss/fuzz/targets/tls_client.cc:35,1
    - Dst: ScopedPRFileDesc::get
      Src: /src/nss/fuzz/targets/tls_client.cc:35,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/tls_client.cc:36,1
    - Dst: ScopedPRFileDesc::get
      Src: /src/nss/fuzz/targets/tls_client.cc:36,1
    - Dst: mySSLSNISocketConfig
      Src: /src/nss/fuzz/targets/tls_client.cc:39,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/tls_client.cc:46,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/fuzz/targets/tls_client.cc:46,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/tls_client.cc:47,1
    - Dst: SSL_SetURL
      Src: /src/nss/fuzz/targets/tls_client.cc:47,1
    - Dst: TlsCommon::EnableAllProtocolVersions
      Src: /src/nss/fuzz/targets/tls_client.cc:49,1
    - Dst: TlsCommon::EnableAllCipherSuites
      Src: /src/nss/fuzz/targets/tls_client.cc:50,1
    - Dst: TlsCommon::FixTime
      Src: /src/nss/fuzz/targets/tls_client.cc:51,1
    - Dst: TlsClient::Config::SetCallbacks
      Src: /src/nss/fuzz/targets/tls_client.cc:54,1
    - Dst: TlsClient::Config::SetSocketOptions
      Src: /src/nss/fuzz/targets/tls_client.cc:55,1
    - Dst: TlsCommon::DoHandshake
      Src: /src/nss/fuzz/targets/tls_client.cc:58,1
    - Dst: SSL_ClearSessionCache
      Src: /src/nss/fuzz/targets/tls_client.cc:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (SSL_SetURL(sslFd, "fuzz.client") == SECSuccess)
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/nss/fuzz/targets/tls_client.cc
    - condition: (sslFd == prFd.get())
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/nss/fuzz/targets/tls_client.cc
    - condition: (RNG_RandomUpdate(NULL, 0) == SECSuccess)
      pos:
        line_end: 45
        line_start: 45
        source_file: /src/nss/fuzz/targets/tls_client.cc
    constantsTouched: []
    func_position:
      end: 64
      start: 28
    functionDepth: 12
    functionLinenumber: 28
    functionLinenumberEnd: 64
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/nss/fuzz/targets/tls_client.cc
    functionUses: 0
    functionsReached:
    - ScopedPRFileDesc::get
    - SSL_ClearSessionCache
    - PR_GetUniqueIdentity
    - TlsCommon::FixTime
    - TlsClient::Config::SetCallbacks
    - assert
    - TlsSocket::DummyPrSocket::DummyPrSocket
    - DummyIOLayerMethods::CreateFD
    - mySSLSNISocketConfig
    - TlsCommon::EnableAllCipherSuites
    - TlsClient::Config::SetSocketOptions
    - SSL_SetURL
    - TlsCommon::DoHandshake
    - ImportFD
    - TlsCommon::EnableAllProtocolVersions
    - RNG_RandomUpdate
    - NSSDatabase
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CustomMutate
      Src: /src/nss/fuzz/targets/tls_client.cc:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - data
    - size
    - maxSize
    - seed
    argTypes:
    - uint8_t*
    - size_t
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 73
    functionName: LLVMFuzzerCustomMutator
    functionSourceFile: /src/nss/fuzz/targets/tls_client.cc
    functionUses: 0
    functionsReached:
    - CustomMutate
    linkageType: ''
    returnType: size_t
    signature: "size_t LLVMFuzzerCustomMutator(uint8_t* data, size_t size,\n                                          size_t
      maxSize, unsigned int seed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TlsMutators::CrossOver
      Src: /src/nss/fuzz/targets/tls_client.cc:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - data1
    - size1
    - data2
    - size2
    - out
    - maxOutSize
    - seed
    argTypes:
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 81
    functionName: LLVMFuzzerCustomCrossOver
    functionSourceFile: /src/nss/fuzz/targets/tls_client.cc
    functionUses: 0
    functionsReached:
    - TlsMutators::CrossOver
    linkageType: ''
    returnType: size_t
    signature: "size_t LLVMFuzzerCustomCrossOver(const uint8_t* data1, size_t size1,\n
      \                                           const uint8_t* data2, size_t size2,\n
      \                                           uint8_t* out, size_t maxOutSize,\n
      \                                           unsigned int seed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/socket.cc:18,1
    - Dst: std::min
      Src: /src/nss/fuzz/targets/lib/tls/socket.cc:20,1
    - Dst: static_cast<int32_t>
      Src: /src/nss/fuzz/targets/lib/tls/socket.cc:20,1
    - Dst: memcpy
      Src: /src/nss/fuzz/targets/lib/tls/socket.cc:21,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - fd
    - data
    - len
    argTypes:
    - PRFileDesc*
    - void*
    - int32_t
    assertStmts:
    - condition: (data && len > 0)
      pos:
        line_end: 17
        line_start: 17
        source_file: /src/nss/fuzz/targets/lib/tls/socket.cc
    constantsTouched: []
    func_position:
      end: 27
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 27
    functionName: TlsSocket::DummyPrSocket::Read
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/socket.cc
    functionUses: 0
    functionsReached:
    - assert
    - memcpy
    - static_cast<int32_t>
    - std::min
    linkageType: ''
    returnType: int32_t
    signature: int32_t DummyPrSocket::Read(PRFileDesc *fd, void *data, int32_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - buf
    - length
    argTypes:
    - PRFileDesc*
    - void*
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: TlsSocket::DummyPrSocket::Write
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/socket.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t DummyPrSocket::Write(PRFileDesc *fd, const void *buf, int32_t
      length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/socket.cc:35,1
    - Dst: TlsSocket::DummyPrSocket::Read
      Src: /src/nss/fuzz/targets/lib/tls/socket.cc:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - fd
    - buf
    - buflen
    - flags
    - to
    argTypes:
    - PRFileDesc*
    - void*
    - int32_t
    - int32_t
    - PRIntervalTime
    assertStmts:
    - condition: (flags == 0)
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/nss/fuzz/targets/lib/tls/socket.cc
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: TlsSocket::DummyPrSocket::Recv
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/socket.cc
    functionUses: 0
    functionsReached:
    - assert
    - TlsSocket::DummyPrSocket::Read
    linkageType: ''
    returnType: int32_t
    signature: "int32_t DummyPrSocket::Recv(PRFileDesc *fd, void *buf, int32_t buflen,\n
      \                           int32_t flags, PRIntervalTime to)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/socket.cc:18,1
    - Dst: std::min
      Src: /src/nss/fuzz/targets/lib/tls/socket.cc:20,1
    - Dst: static_cast<int32_t>
      Src: /src/nss/fuzz/targets/lib/tls/socket.cc:20,1
    - Dst: memcpy
      Src: /src/nss/fuzz/targets/lib/tls/socket.cc:21,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - fd
    - data
    - len
    argTypes:
    - PRFileDesc*
    - void*
    - int32_t
    assertStmts:
    - condition: (data && len > 0)
      pos:
        line_end: 17
        line_start: 17
        source_file: /src/nss/fuzz/targets/lib/tls/socket.cc
    constantsTouched: []
    func_position:
      end: 27
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 27
    functionName: TlsSocket::DummyPrSocket::Read
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/socket.cc
    functionUses: 1
    functionsReached:
    - assert
    - memcpy
    - static_cast<int32_t>
    - std::min
    linkageType: ''
    returnType: int32_t
    signature: int32_t DummyPrSocket::Read(PRFileDesc *fd, void *data, int32_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fd
    - buf
    - length
    argTypes:
    - PRFileDesc*
    - void*
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: TlsSocket::DummyPrSocket::Write
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/socket.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t DummyPrSocket::Write(PRFileDesc *fd, const void *buf, int32_t
      length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/socket.cc:35,1
    - Dst: TlsSocket::DummyPrSocket::Read
      Src: /src/nss/fuzz/targets/lib/tls/socket.cc:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - fd
    - buf
    - buflen
    - flags
    - to
    argTypes:
    - PRFileDesc*
    - void*
    - int32_t
    - int32_t
    - PRIntervalTime
    assertStmts:
    - condition: (flags == 0)
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/nss/fuzz/targets/lib/tls/socket.cc
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: TlsSocket::DummyPrSocket::Recv
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/socket.cc
    functionUses: 0
    functionsReached:
    - assert
    - TlsSocket::DummyPrSocket::Read
    linkageType: ''
    returnType: int32_t
    signature: "int32_t DummyPrSocket::Recv(PRFileDesc *fd, void *buf, int32_t buflen,\n
      \                           int32_t flags, PRIntervalTime to)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:34,1
    - Dst: reinterpret_cast<TlsClient::Config*>
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:36,1
    - Dst: auto::FailCertificateAuthentication
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - arg
    - fd
    - checksig
    - isServer
    argTypes:
    - void*
    - PRFileDesc*
    - PRBool
    - PRBool
    assertStmts:
    - condition: (!isServer)
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    constantsTouched: []
    func_position:
      end: 40
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 40
    functionName: AuthCertificateHook
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.cc
    functionUses: 4
    functionsReached:
    - assert
    - reinterpret_cast<TlsClient::Config*>
    - auto::FailCertificateAuthentication
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus AuthCertificateHook(void* arg, PRFileDesc* fd, PRBool checksig,\n
      \                                    PRBool isServer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fd
    - arg
    - canFalseStart
    argTypes:
    - PRFileDesc*
    - void*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: CanFalseStartCallback
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CanFalseStartCallback(PRFileDesc* fd, void* arg,\n                                       PRBool*
      canFalseStart)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint64_t>
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 82
    functionName: TlsClient::Config::Config
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.cc
    functionUses: 0
    functionsReached:
    - static_cast<uint64_t>
    linkageType: ''
    returnType: void
    signature: void Config::Config(const uint8_t* data, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_AuthCertificateHook
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:85,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:86,1
    - Dst: SSL_SetCanFalseStartCallback
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:88,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fd
    argTypes:
    - PRFileDesc*
    assertStmts:
    - condition: (rv == SECSuccess)
      pos:
        line_end: 85
        line_start: 85
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 88
        line_start: 88
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    constantsTouched: []
    func_position:
      end: 90
      start: 84
    functionDepth: 3
    functionLinenumber: 84
    functionLinenumberEnd: 90
    functionName: TlsClient::Config::SetCallbacks
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.cc
    functionUses: 1
    functionsReached:
    - assert
    - SSL_AuthCertificateHook
    - SSL_SetCanFalseStartCallback
    linkageType: ''
    returnType: void
    signature: void Config::SetCallbacks(PRFileDesc* fd)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:93,1
    - Dst: TlsClient::Config::EnableExtendedMasterSecret
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:94,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:95,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:97,1
    - Dst: TlsClient::Config::RequireDhNamedGroups
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:98,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:99,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:101,1
    - Dst: TlsClient::Config::EnableFalseStart
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:101,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:102,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:104,1
    - Dst: TlsClient::Config::EnableDeflate
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:104,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:105,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:107,1
    - Dst: TlsClient::Config::CbcRandomIv
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:107,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:108,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:110,1
    - Dst: TlsClient::Config::RequireSafeNegotiation
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:111,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:112,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:114,1
    - Dst: TlsClient::Config::NoCache
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:114,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:115,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:117,1
    - Dst: TlsClient::Config::EnableGrease
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:117,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:118,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:120,1
    - Dst: TlsClient::Config::EnableCHExtensionPermutation
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:121,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:122,1
    - Dst: TlsClient::Config::SetCertificateCompressionAlgorithm
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:124,1
    - Dst: SSL_SetCertificateCompressionAlgorithm
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:125,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:126,1
    - Dst: TlsClient::Config::SetVersionRange
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:129,1
    - Dst: SSL_VersionRangeSet
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:130,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:131,1
    - Dst: TlsClient::Config::AddExternalPsk
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:134,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:136,1
    - Dst: PK11_KeyGen
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:138,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:138,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:140,1
    - Dst: SSL_AddExternalPsk
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:142,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:142,1
    - Dst: TlsClient::Config::PskHashType
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:143,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:144,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:147,1
    - Dst: TlsClient::Config::EnablePostHandshakeAuth
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:148,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:149,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:151,1
    - Dst: TlsClient::Config::EnableZeroRtt
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:151,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:152,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:154,1
    - Dst: TlsClient::Config::EnableAlpn
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:154,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:155,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:157,1
    - Dst: TlsClient::Config::EnableFallbackScsv
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:157,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:158,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:160,1
    - Dst: TlsClient::Config::EnableOcspStapling
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:160,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:161,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:163,1
    - Dst: TlsClient::Config::EnableSessionTickets
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:164,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:165,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:167,1
    - Dst: TlsClient::Config::EnableTls13CompatMode
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:168,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:169,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:171,1
    - Dst: TlsClient::Config::NoLocks
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:171,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:172,1
    - Dst: SSL_EnableTls13GreaseEch
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:174,1
    - Dst: TlsClient::Config::EnableTls13GreaseEch
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:174,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:175,1
    - Dst: SSL_SetDtls13VersionWorkaround
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:177,1
    - Dst: TlsClient::Config::SetDtls13VersionWorkaround
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:177,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:178,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:180,1
    - Dst: TlsClient::Config::EnableDelegatedCredentials
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:181,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:182,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:184,1
    - Dst: TlsClient::Config::EnableDtlsShortHeader
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:185,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:186,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:190,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:191,1
    - Dst: TlsClient::Config::SetClientEchConfigs
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:193,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:196,1
    - Dst: SSL_SetClientEchConfigs
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:198,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:199,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 63
    argCount: 1
    argNames:
    - fd
    argTypes:
    - PRFileDesc*
    assertStmts:
    - condition: (rv == SECSuccess)
      pos:
        line_end: 130
        line_start: 130
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 104
        line_start: 104
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 171
        line_start: 171
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 107
        line_start: 107
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 185
        line_start: 185
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 125
        line_start: 125
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    - condition: (key)
      pos:
        line_end: 139
        line_start: 139
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 111
        line_start: 111
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 148
        line_start: 148
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 198
        line_start: 198
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    - condition: (echConfigsBin)
      pos:
        line_end: 195
        line_start: 195
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 117
        line_start: 117
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 151
        line_start: 151
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    - condition: (slot)
      pos:
        line_end: 135
        line_start: 135
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 177
        line_start: 177
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 121
        line_start: 121
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 154
        line_start: 154
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 181
        line_start: 181
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 190
        line_start: 190
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 157
        line_start: 157
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 94
        line_start: 94
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 143
        line_start: 143
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 174
        line_start: 174
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 98
        line_start: 98
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 160
        line_start: 160
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 164
        line_start: 164
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 168
        line_start: 168
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 101
        line_start: 101
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 114
        line_start: 114
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    constantsTouched: []
    func_position:
      end: 202
      start: 92
    functionDepth: 5
    functionLinenumber: 92
    functionLinenumberEnd: 202
    functionName: TlsClient::Config::SetSocketOptions
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.cc
    functionUses: 1
    functionsReached:
    - TlsClient::Config::EnableOcspStapling
    - TlsClient::Config::RequireSafeNegotiation
    - SSL_SetDtls13VersionWorkaround
    - TlsClient::Config::EnableDtlsShortHeader
    - TlsClient::Config::EnableZeroRtt
    - TlsClient::Config::EnableTls13GreaseEch
    - TlsClient::Config::EnableGrease
    - TlsClient::Config::EnableFallbackScsv
    - TlsClient::Config::EnableCHExtensionPermutation
    - TlsClient::Config::SetDtls13VersionWorkaround
    - TlsClient::Config::SetCertificateCompressionAlgorithm
    - ScopedPK11SymKey::get
    - assert
    - SSL_SetCertificateCompressionAlgorithm
    - PK11_KeyGen
    - SSL_OptionSet
    - TlsClient::Config::SetVersionRange
    - SSL_EnableTls13GreaseEch
    - SSL_VersionRangeSet
    - SSL_AddExternalPsk
    - TlsClient::Config::EnableDeflate
    - TlsClient::Config::NoCache
    - SSL_SetClientEchConfigs
    - TlsClient::Config::EnableExtendedMasterSecret
    - ScopedPK11SlotInfo::get
    - TlsClient::Config::NoLocks
    - TlsClient::Config::EnableAlpn
    - TlsClient::Config::CbcRandomIv
    - TlsClient::Config::EnableTls13CompatMode
    - TlsClient::Config::EnableFalseStart
    - TlsClient::Config::EnableDelegatedCredentials
    - TlsClient::Config::RequireDhNamedGroups
    - TlsClient::Config::EnablePostHandshakeAuth
    - TlsClient::Config::AddExternalPsk
    - TlsClient::Config::SetClientEchConfigs
    - TlsClient::Config::PskHashType
    - TlsClient::Config::EnableSessionTickets
    linkageType: ''
    returnType: void
    signature: void Config::SetSocketOptions(PRFileDesc* fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NoCache
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:207,1
    - Dst: EnableExtendedMasterSecret
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:209,1
    - Dst: RequireDhNamedGroups
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:211,1
    - Dst: EnableFalseStart
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:212,1
    - Dst: EnableDeflate
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:214,1
    - Dst: CbcRandomIv
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:216,1
    - Dst: RequireSafeNegotiation
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:219,1
    - Dst: EnableGrease
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:220,1
    - Dst: EnableCHExtensionPermutation
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:223,1
    - Dst: SetCertificateCompressionAlgorithm
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:225,1
    - Dst: SetVersionRange
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:226,1
    - Dst: SslVersionRange
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:229,1
    - Dst: SslVersionRange
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:231,1
    - Dst: AddExternalPsk
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:232,1
    - Dst: PskHashType
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:234,1
    - Dst: EnablePostHandshakeAuth
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:237,1
    - Dst: EnableZeroRtt
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:238,1
    - Dst: EnableAlpn
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:240,1
    - Dst: EnableFallbackScsv
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:243,1
    - Dst: EnableOcspStapling
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:245,1
    - Dst: EnableSessionTickets
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:247,1
    - Dst: EnableTls13CompatMode
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:249,1
    - Dst: NoLocks
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:250,1
    - Dst: EnableTls13GreaseEch
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:252,1
    - Dst: SetDtls13VersionWorkaround
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:254,1
    - Dst: SetClientEchConfigs
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 2
    argNames:
    - ' out'
    - ' config'
    argTypes:
    - std::ostream
    - Config
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 260
    functionName: '& operator<<(std::ostream& out, Config& config)'
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.cc
    functionUses: 0
    functionsReached:
    - EnableFallbackScsv
    - SslVersionRange
    - NoCache
    - PskHashType
    - EnableDeflate
    - RequireDhNamedGroups
    - EnableZeroRtt
    - SetClientEchConfigs
    - EnableCHExtensionPermutation
    - AddExternalPsk
    - EnableGrease
    - EnableTls13GreaseEch
    - EnableSessionTickets
    - EnableAlpn
    - EnableTls13CompatMode
    - CbcRandomIv
    - SetDtls13VersionWorkaround
    - SetCertificateCompressionAlgorithm
    - RequireSafeNegotiation
    - SetVersionRange
    - EnableFalseStart
    - EnableOcspStapling
    - EnableExtendedMasterSecret
    - EnablePostHandshakeAuth
    - NoLocks
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& out, Config& config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint64_t>
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 82
    functionName: TlsClient::Config::Config
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.cc
    functionUses: 0
    functionsReached:
    - static_cast<uint64_t>
    linkageType: ''
    returnType: void
    signature: void Config::Config(const uint8_t* data, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_AuthCertificateHook
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:85,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:86,1
    - Dst: SSL_SetCanFalseStartCallback
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:88,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fd
    argTypes:
    - PRFileDesc*
    assertStmts:
    - condition: (rv == SECSuccess)
      pos:
        line_end: 85
        line_start: 85
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 88
        line_start: 88
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    constantsTouched: []
    func_position:
      end: 90
      start: 84
    functionDepth: 3
    functionLinenumber: 84
    functionLinenumberEnd: 90
    functionName: TlsClient::Config::SetCallbacks
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.cc
    functionUses: 1
    functionsReached:
    - assert
    - SSL_AuthCertificateHook
    - SSL_SetCanFalseStartCallback
    linkageType: ''
    returnType: void
    signature: void Config::SetCallbacks(PRFileDesc* fd)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:93,1
    - Dst: TlsClient::Config::EnableExtendedMasterSecret
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:94,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:95,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:97,1
    - Dst: TlsClient::Config::RequireDhNamedGroups
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:98,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:99,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:101,1
    - Dst: TlsClient::Config::EnableFalseStart
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:101,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:102,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:104,1
    - Dst: TlsClient::Config::EnableDeflate
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:104,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:105,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:107,1
    - Dst: TlsClient::Config::CbcRandomIv
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:107,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:108,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:110,1
    - Dst: TlsClient::Config::RequireSafeNegotiation
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:111,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:112,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:114,1
    - Dst: TlsClient::Config::NoCache
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:114,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:115,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:117,1
    - Dst: TlsClient::Config::EnableGrease
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:117,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:118,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:120,1
    - Dst: TlsClient::Config::EnableCHExtensionPermutation
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:121,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:122,1
    - Dst: TlsClient::Config::SetCertificateCompressionAlgorithm
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:124,1
    - Dst: SSL_SetCertificateCompressionAlgorithm
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:125,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:126,1
    - Dst: TlsClient::Config::SetVersionRange
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:129,1
    - Dst: SSL_VersionRangeSet
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:130,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:131,1
    - Dst: TlsClient::Config::AddExternalPsk
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:134,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:136,1
    - Dst: PK11_KeyGen
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:138,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:138,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:140,1
    - Dst: SSL_AddExternalPsk
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:142,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:142,1
    - Dst: TlsClient::Config::PskHashType
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:143,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:144,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:147,1
    - Dst: TlsClient::Config::EnablePostHandshakeAuth
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:148,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:149,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:151,1
    - Dst: TlsClient::Config::EnableZeroRtt
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:151,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:152,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:154,1
    - Dst: TlsClient::Config::EnableAlpn
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:154,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:155,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:157,1
    - Dst: TlsClient::Config::EnableFallbackScsv
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:157,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:158,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:160,1
    - Dst: TlsClient::Config::EnableOcspStapling
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:160,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:161,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:163,1
    - Dst: TlsClient::Config::EnableSessionTickets
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:164,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:165,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:167,1
    - Dst: TlsClient::Config::EnableTls13CompatMode
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:168,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:169,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:171,1
    - Dst: TlsClient::Config::NoLocks
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:171,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:172,1
    - Dst: SSL_EnableTls13GreaseEch
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:174,1
    - Dst: TlsClient::Config::EnableTls13GreaseEch
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:174,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:175,1
    - Dst: SSL_SetDtls13VersionWorkaround
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:177,1
    - Dst: TlsClient::Config::SetDtls13VersionWorkaround
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:177,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:178,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:180,1
    - Dst: TlsClient::Config::EnableDelegatedCredentials
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:181,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:182,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:184,1
    - Dst: TlsClient::Config::EnableDtlsShortHeader
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:185,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:186,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:190,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:191,1
    - Dst: TlsClient::Config::SetClientEchConfigs
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:193,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:196,1
    - Dst: SSL_SetClientEchConfigs
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:198,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:199,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 63
    argCount: 1
    argNames:
    - fd
    argTypes:
    - PRFileDesc*
    assertStmts:
    - condition: (rv == SECSuccess)
      pos:
        line_end: 130
        line_start: 130
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 104
        line_start: 104
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 171
        line_start: 171
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 107
        line_start: 107
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 185
        line_start: 185
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 125
        line_start: 125
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    - condition: (key)
      pos:
        line_end: 139
        line_start: 139
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 111
        line_start: 111
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 148
        line_start: 148
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 198
        line_start: 198
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    - condition: (echConfigsBin)
      pos:
        line_end: 195
        line_start: 195
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 117
        line_start: 117
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 151
        line_start: 151
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    - condition: (slot)
      pos:
        line_end: 135
        line_start: 135
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 177
        line_start: 177
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 121
        line_start: 121
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 154
        line_start: 154
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 181
        line_start: 181
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 190
        line_start: 190
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 157
        line_start: 157
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 94
        line_start: 94
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 143
        line_start: 143
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 174
        line_start: 174
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 98
        line_start: 98
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 160
        line_start: 160
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 164
        line_start: 164
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 168
        line_start: 168
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 101
        line_start: 101
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 114
        line_start: 114
        source_file: /src/nss/fuzz/targets/lib/tls/client_config.cc
    constantsTouched: []
    func_position:
      end: 202
      start: 92
    functionDepth: 5
    functionLinenumber: 92
    functionLinenumberEnd: 202
    functionName: TlsClient::Config::SetSocketOptions
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.cc
    functionUses: 1
    functionsReached:
    - TlsClient::Config::EnableOcspStapling
    - TlsClient::Config::RequireSafeNegotiation
    - SSL_SetDtls13VersionWorkaround
    - TlsClient::Config::EnableDtlsShortHeader
    - TlsClient::Config::EnableZeroRtt
    - TlsClient::Config::EnableTls13GreaseEch
    - TlsClient::Config::EnableGrease
    - TlsClient::Config::EnableFallbackScsv
    - TlsClient::Config::EnableCHExtensionPermutation
    - TlsClient::Config::SetDtls13VersionWorkaround
    - TlsClient::Config::SetCertificateCompressionAlgorithm
    - ScopedPK11SymKey::get
    - assert
    - SSL_SetCertificateCompressionAlgorithm
    - PK11_KeyGen
    - SSL_OptionSet
    - TlsClient::Config::SetVersionRange
    - SSL_EnableTls13GreaseEch
    - SSL_VersionRangeSet
    - SSL_AddExternalPsk
    - TlsClient::Config::EnableDeflate
    - TlsClient::Config::NoCache
    - SSL_SetClientEchConfigs
    - TlsClient::Config::EnableExtendedMasterSecret
    - ScopedPK11SlotInfo::get
    - TlsClient::Config::NoLocks
    - TlsClient::Config::EnableAlpn
    - TlsClient::Config::CbcRandomIv
    - TlsClient::Config::EnableTls13CompatMode
    - TlsClient::Config::EnableFalseStart
    - TlsClient::Config::EnableDelegatedCredentials
    - TlsClient::Config::RequireDhNamedGroups
    - TlsClient::Config::EnablePostHandshakeAuth
    - TlsClient::Config::AddExternalPsk
    - TlsClient::Config::SetClientEchConfigs
    - TlsClient::Config::PskHashType
    - TlsClient::Config::EnableSessionTickets
    linkageType: ''
    returnType: void
    signature: void Config::SetSocketOptions(PRFileDesc* fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NoCache
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:207,1
    - Dst: EnableExtendedMasterSecret
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:209,1
    - Dst: RequireDhNamedGroups
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:211,1
    - Dst: EnableFalseStart
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:212,1
    - Dst: EnableDeflate
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:214,1
    - Dst: CbcRandomIv
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:216,1
    - Dst: RequireSafeNegotiation
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:219,1
    - Dst: EnableGrease
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:220,1
    - Dst: EnableCHExtensionPermutation
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:223,1
    - Dst: SetCertificateCompressionAlgorithm
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:225,1
    - Dst: SetVersionRange
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:226,1
    - Dst: SslVersionRange
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:229,1
    - Dst: SslVersionRange
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:231,1
    - Dst: AddExternalPsk
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:232,1
    - Dst: PskHashType
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:234,1
    - Dst: EnablePostHandshakeAuth
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:237,1
    - Dst: EnableZeroRtt
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:238,1
    - Dst: EnableAlpn
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:240,1
    - Dst: EnableFallbackScsv
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:243,1
    - Dst: EnableOcspStapling
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:245,1
    - Dst: EnableSessionTickets
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:247,1
    - Dst: EnableTls13CompatMode
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:249,1
    - Dst: NoLocks
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:250,1
    - Dst: EnableTls13GreaseEch
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:252,1
    - Dst: SetDtls13VersionWorkaround
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:254,1
    - Dst: SetClientEchConfigs
      Src: /src/nss/fuzz/targets/lib/tls/client_config.cc:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 2
    argNames:
    - ' out'
    - ' config'
    argTypes:
    - std::ostream
    - Config
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 260
    functionName: '& operator<<(std::ostream& out, Config& config)'
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.cc
    functionUses: 0
    functionsReached:
    - EnableFallbackScsv
    - SslVersionRange
    - NoCache
    - PskHashType
    - EnableDeflate
    - RequireDhNamedGroups
    - EnableZeroRtt
    - SetClientEchConfigs
    - EnableCHExtensionPermutation
    - AddExternalPsk
    - EnableGrease
    - EnableTls13GreaseEch
    - EnableSessionTickets
    - EnableAlpn
    - EnableTls13CompatMode
    - CbcRandomIv
    - SetDtls13VersionWorkaround
    - SetCertificateCompressionAlgorithm
    - RequireSafeNegotiation
    - SetVersionRange
    - EnableFalseStart
    - EnableOcspStapling
    - EnableExtendedMasterSecret
    - EnablePostHandshakeAuth
    - NoLocks
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& out, Config& config)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:28,1
    - Dst: reinterpret_cast<TlsServer::Config*>
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:29,1
    - Dst: auto::FailCertificateAuthentication
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - arg
    - fd
    - checksig
    - isServer
    argTypes:
    - void*
    - PRFileDesc*
    - PRBool
    - PRBool
    assertStmts:
    - condition: (isServer)
      pos:
        line_end: 27
        line_start: 27
        source_file: /src/nss/fuzz/targets/lib/tls/server_config.cc
    constantsTouched: []
    func_position:
      end: 33
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 33
    functionName: AuthCertificateHook
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/server_config.cc
    functionUses: 6
    functionsReached:
    - assert
    - auto::FailCertificateAuthentication
    - reinterpret_cast<TlsServer::Config*>
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus AuthCertificateHook(void* arg, PRFileDesc* fd, PRBool checksig,\n
      \                                    PRBool isServer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fd
    - arg
    - canFalseStart
    argTypes:
    - PRFileDesc*
    - void*
    - PRBool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: CanFalseStartCallback
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/server_config.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus CanFalseStartCallback(PRFileDesc* fd, void* arg,\n                                       PRBool*
      canFalseStart)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint64_t>
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 75
    functionName: TlsServer::Config::Config
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/server_config.cc
    functionUses: 0
    functionsReached:
    - static_cast<uint64_t>
    linkageType: ''
    returnType: void
    signature: void Config::Config(const uint8_t* data, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_AuthCertificateHook
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:78,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:79,1
    - Dst: SSL_SetCanFalseStartCallback
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:81,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fd
    argTypes:
    - PRFileDesc*
    assertStmts:
    - condition: (rv == SECSuccess)
      pos:
        line_end: 81
        line_start: 81
        source_file: /src/nss/fuzz/targets/lib/tls/server_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 78
        line_start: 78
        source_file: /src/nss/fuzz/targets/lib/tls/server_config.cc
    constantsTouched: []
    func_position:
      end: 83
      start: 77
    functionDepth: 3
    functionLinenumber: 77
    functionLinenumberEnd: 83
    functionName: TlsServer::Config::SetCallbacks
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/server_config.cc
    functionUses: 1
    functionsReached:
    - assert
    - SSL_AuthCertificateHook
    - SSL_SetCanFalseStartCallback
    linkageType: ''
    returnType: void
    signature: void Config::SetCallbacks(PRFileDesc* fd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:86,1
    - Dst: TlsServer::Config::EnableExtendedMasterSecret
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:87,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:88,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:90,1
    - Dst: TlsServer::Config::RequestCertificate
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:90,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:91,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:93,1
    - Dst: TlsServer::Config::RequireCertificate
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:93,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:94,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:96,1
    - Dst: TlsServer::Config::EnableDeflate
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:96,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:97,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:99,1
    - Dst: TlsServer::Config::EnableCbcRandomIv
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:99,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:100,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:102,1
    - Dst: TlsServer::Config::RequireSafeNegotiation
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:103,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:104,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:106,1
    - Dst: TlsServer::Config::NoCache
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:106,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:107,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:109,1
    - Dst: TlsServer::Config::EnableGrease
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:109,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:110,1
    - Dst: TlsServer::Config::SetCertificateCompressionAlgorithm
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:112,1
    - Dst: SSL_SetCertificateCompressionAlgorithm
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:113,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:114,1
    - Dst: TlsServer::Config::SetVersionRange
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:117,1
    - Dst: SSL_VersionRangeSet
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:118,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:119,1
    - Dst: TlsServer::Config::AddExternalPsk
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:122,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:124,1
    - Dst: PK11_KeyGen
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:126,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:126,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:128,1
    - Dst: SSL_AddExternalPsk
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:130,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:130,1
    - Dst: TlsServer::Config::PskHashType
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:131,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:132,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:135,1
    - Dst: TlsServer::Config::EnableZeroRtt
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:135,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:136,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:138,1
    - Dst: TlsServer::Config::EnableAlpn
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:138,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:139,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:141,1
    - Dst: TlsServer::Config::EnableFallbackScsv
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:141,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:142,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:144,1
    - Dst: TlsServer::Config::EnableSessionTickets
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:145,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:146,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:148,1
    - Dst: TlsServer::Config::NoLocks
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:148,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:149,1
    - Dst: SSL_EnableTls13BackendEch
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:151,1
    - Dst: TlsServer::Config::EnableTls13BackendEch
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:151,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:152,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:154,1
    - Dst: TlsServer::Config::EnableDelegatedCredentials
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:155,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:156,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:158,1
    - Dst: TlsServer::Config::EnableDtlsShortHeader
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:159,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:160,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:164,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:165,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 48
    argCount: 1
    argNames:
    - fd
    argTypes:
    - PRFileDesc*
    assertStmts:
    - condition: (rv == SECSuccess)
      pos:
        line_end: 87
        line_start: 87
        source_file: /src/nss/fuzz/targets/lib/tls/server_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 93
        line_start: 93
        source_file: /src/nss/fuzz/targets/lib/tls/server_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 103
        line_start: 103
        source_file: /src/nss/fuzz/targets/lib/tls/server_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 113
        line_start: 113
        source_file: /src/nss/fuzz/targets/lib/tls/server_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 118
        line_start: 118
        source_file: /src/nss/fuzz/targets/lib/tls/server_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 131
        line_start: 131
        source_file: /src/nss/fuzz/targets/lib/tls/server_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 155
        line_start: 155
        source_file: /src/nss/fuzz/targets/lib/tls/server_config.cc
    - condition: (slot)
      pos:
        line_end: 123
        line_start: 123
        source_file: /src/nss/fuzz/targets/lib/tls/server_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 109
        line_start: 109
        source_file: /src/nss/fuzz/targets/lib/tls/server_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 90
        line_start: 90
        source_file: /src/nss/fuzz/targets/lib/tls/server_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 96
        line_start: 96
        source_file: /src/nss/fuzz/targets/lib/tls/server_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 99
        line_start: 99
        source_file: /src/nss/fuzz/targets/lib/tls/server_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 106
        line_start: 106
        source_file: /src/nss/fuzz/targets/lib/tls/server_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 135
        line_start: 135
        source_file: /src/nss/fuzz/targets/lib/tls/server_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 148
        line_start: 148
        source_file: /src/nss/fuzz/targets/lib/tls/server_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 145
        line_start: 145
        source_file: /src/nss/fuzz/targets/lib/tls/server_config.cc
    - condition: (key)
      pos:
        line_end: 127
        line_start: 127
        source_file: /src/nss/fuzz/targets/lib/tls/server_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 151
        line_start: 151
        source_file: /src/nss/fuzz/targets/lib/tls/server_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 159
        line_start: 159
        source_file: /src/nss/fuzz/targets/lib/tls/server_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 141
        line_start: 141
        source_file: /src/nss/fuzz/targets/lib/tls/server_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 164
        line_start: 164
        source_file: /src/nss/fuzz/targets/lib/tls/server_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 138
        line_start: 138
        source_file: /src/nss/fuzz/targets/lib/tls/server_config.cc
    constantsTouched: []
    func_position:
      end: 167
      start: 85
    functionDepth: 5
    functionLinenumber: 85
    functionLinenumberEnd: 167
    functionName: TlsServer::Config::SetSocketOptions
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/server_config.cc
    functionUses: 1
    functionsReached:
    - TlsServer::Config::EnableCbcRandomIv
    - TlsServer::Config::RequireCertificate
    - TlsServer::Config::PskHashType
    - TlsServer::Config::EnableExtendedMasterSecret
    - TlsServer::Config::SetCertificateCompressionAlgorithm
    - TlsServer::Config::EnableDtlsShortHeader
    - TlsServer::Config::NoCache
    - TlsServer::Config::RequestCertificate
    - ScopedPK11SymKey::get
    - assert
    - TlsServer::Config::EnableTls13BackendEch
    - SSL_SetCertificateCompressionAlgorithm
    - PK11_KeyGen
    - SSL_OptionSet
    - SSL_VersionRangeSet
    - SSL_AddExternalPsk
    - TlsServer::Config::EnableZeroRtt
    - SSL_EnableTls13BackendEch
    - TlsServer::Config::EnableAlpn
    - TlsServer::Config::EnableDeflate
    - TlsServer::Config::NoLocks
    - TlsServer::Config::RequireSafeNegotiation
    - ScopedPK11SlotInfo::get
    - TlsServer::Config::EnableFallbackScsv
    - TlsServer::Config::EnableDelegatedCredentials
    - TlsServer::Config::AddExternalPsk
    - TlsServer::Config::EnableSessionTickets
    - TlsServer::Config::SetVersionRange
    - TlsServer::Config::EnableGrease
    linkageType: ''
    returnType: void
    signature: void Config::SetSocketOptions(PRFileDesc* fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NoCache
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:172,1
    - Dst: EnableExtendedMasterSecret
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:174,1
    - Dst: RequestCertificate
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:176,1
    - Dst: RequireCertificate
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:178,1
    - Dst: EnableDeflate
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:179,1
    - Dst: EnableCbcRandomIv
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:182,1
    - Dst: RequireSafeNegotiation
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:184,1
    - Dst: EnableGrease
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:185,1
    - Dst: SetCertificateCompressionAlgorithm
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:188,1
    - Dst: SetVersionRange
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:189,1
    - Dst: SslVersionRange
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:192,1
    - Dst: SslVersionRange
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:194,1
    - Dst: AddExternalPsk
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:195,1
    - Dst: PskHashType
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:197,1
    - Dst: EnableZeroRtt
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:199,1
    - Dst: EnableAlpn
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:201,1
    - Dst: EnableFallbackScsv
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:204,1
    - Dst: EnableSessionTickets
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:206,1
    - Dst: NoLocks
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 2
    argNames:
    - ' out'
    - ' config'
    argTypes:
    - std::ostream
    - Config
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 211
    functionName: '& operator<<(std::ostream& out, Config& config)'
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/server_config.cc
    functionUses: 0
    functionsReached:
    - PskHashType
    - EnableFallbackScsv
    - AddExternalPsk
    - EnableGrease
    - RequireCertificate
    - SslVersionRange
    - RequestCertificate
    - EnableDeflate
    - EnableSessionTickets
    - EnableZeroRtt
    - EnableAlpn
    - NoCache
    - EnableExtendedMasterSecret
    - SetCertificateCompressionAlgorithm
    - RequireSafeNegotiation
    - EnableCbcRandomIv
    - NoLocks
    - SetVersionRange
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& out, Config& config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint64_t>
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 75
    functionName: TlsServer::Config::Config
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/server_config.cc
    functionUses: 0
    functionsReached:
    - static_cast<uint64_t>
    linkageType: ''
    returnType: void
    signature: void Config::Config(const uint8_t* data, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_AuthCertificateHook
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:78,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:79,1
    - Dst: SSL_SetCanFalseStartCallback
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:81,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fd
    argTypes:
    - PRFileDesc*
    assertStmts:
    - condition: (rv == SECSuccess)
      pos:
        line_end: 81
        line_start: 81
        source_file: /src/nss/fuzz/targets/lib/tls/server_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 78
        line_start: 78
        source_file: /src/nss/fuzz/targets/lib/tls/server_config.cc
    constantsTouched: []
    func_position:
      end: 83
      start: 77
    functionDepth: 3
    functionLinenumber: 77
    functionLinenumberEnd: 83
    functionName: TlsServer::Config::SetCallbacks
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/server_config.cc
    functionUses: 1
    functionsReached:
    - assert
    - SSL_AuthCertificateHook
    - SSL_SetCanFalseStartCallback
    linkageType: ''
    returnType: void
    signature: void Config::SetCallbacks(PRFileDesc* fd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:86,1
    - Dst: TlsServer::Config::EnableExtendedMasterSecret
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:87,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:88,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:90,1
    - Dst: TlsServer::Config::RequestCertificate
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:90,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:91,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:93,1
    - Dst: TlsServer::Config::RequireCertificate
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:93,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:94,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:96,1
    - Dst: TlsServer::Config::EnableDeflate
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:96,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:97,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:99,1
    - Dst: TlsServer::Config::EnableCbcRandomIv
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:99,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:100,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:102,1
    - Dst: TlsServer::Config::RequireSafeNegotiation
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:103,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:104,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:106,1
    - Dst: TlsServer::Config::NoCache
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:106,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:107,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:109,1
    - Dst: TlsServer::Config::EnableGrease
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:109,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:110,1
    - Dst: TlsServer::Config::SetCertificateCompressionAlgorithm
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:112,1
    - Dst: SSL_SetCertificateCompressionAlgorithm
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:113,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:114,1
    - Dst: TlsServer::Config::SetVersionRange
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:117,1
    - Dst: SSL_VersionRangeSet
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:118,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:119,1
    - Dst: TlsServer::Config::AddExternalPsk
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:122,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:124,1
    - Dst: PK11_KeyGen
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:126,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:126,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:128,1
    - Dst: SSL_AddExternalPsk
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:130,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:130,1
    - Dst: TlsServer::Config::PskHashType
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:131,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:132,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:135,1
    - Dst: TlsServer::Config::EnableZeroRtt
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:135,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:136,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:138,1
    - Dst: TlsServer::Config::EnableAlpn
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:138,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:139,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:141,1
    - Dst: TlsServer::Config::EnableFallbackScsv
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:141,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:142,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:144,1
    - Dst: TlsServer::Config::EnableSessionTickets
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:145,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:146,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:148,1
    - Dst: TlsServer::Config::NoLocks
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:148,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:149,1
    - Dst: SSL_EnableTls13BackendEch
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:151,1
    - Dst: TlsServer::Config::EnableTls13BackendEch
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:151,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:152,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:154,1
    - Dst: TlsServer::Config::EnableDelegatedCredentials
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:155,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:156,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:158,1
    - Dst: TlsServer::Config::EnableDtlsShortHeader
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:159,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:160,1
    - Dst: SSL_OptionSet
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:164,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:165,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 48
    argCount: 1
    argNames:
    - fd
    argTypes:
    - PRFileDesc*
    assertStmts:
    - condition: (rv == SECSuccess)
      pos:
        line_end: 87
        line_start: 87
        source_file: /src/nss/fuzz/targets/lib/tls/server_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 93
        line_start: 93
        source_file: /src/nss/fuzz/targets/lib/tls/server_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 103
        line_start: 103
        source_file: /src/nss/fuzz/targets/lib/tls/server_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 113
        line_start: 113
        source_file: /src/nss/fuzz/targets/lib/tls/server_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 118
        line_start: 118
        source_file: /src/nss/fuzz/targets/lib/tls/server_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 131
        line_start: 131
        source_file: /src/nss/fuzz/targets/lib/tls/server_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 155
        line_start: 155
        source_file: /src/nss/fuzz/targets/lib/tls/server_config.cc
    - condition: (slot)
      pos:
        line_end: 123
        line_start: 123
        source_file: /src/nss/fuzz/targets/lib/tls/server_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 109
        line_start: 109
        source_file: /src/nss/fuzz/targets/lib/tls/server_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 90
        line_start: 90
        source_file: /src/nss/fuzz/targets/lib/tls/server_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 96
        line_start: 96
        source_file: /src/nss/fuzz/targets/lib/tls/server_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 99
        line_start: 99
        source_file: /src/nss/fuzz/targets/lib/tls/server_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 106
        line_start: 106
        source_file: /src/nss/fuzz/targets/lib/tls/server_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 135
        line_start: 135
        source_file: /src/nss/fuzz/targets/lib/tls/server_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 148
        line_start: 148
        source_file: /src/nss/fuzz/targets/lib/tls/server_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 145
        line_start: 145
        source_file: /src/nss/fuzz/targets/lib/tls/server_config.cc
    - condition: (key)
      pos:
        line_end: 127
        line_start: 127
        source_file: /src/nss/fuzz/targets/lib/tls/server_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 151
        line_start: 151
        source_file: /src/nss/fuzz/targets/lib/tls/server_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 159
        line_start: 159
        source_file: /src/nss/fuzz/targets/lib/tls/server_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 141
        line_start: 141
        source_file: /src/nss/fuzz/targets/lib/tls/server_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 164
        line_start: 164
        source_file: /src/nss/fuzz/targets/lib/tls/server_config.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 138
        line_start: 138
        source_file: /src/nss/fuzz/targets/lib/tls/server_config.cc
    constantsTouched: []
    func_position:
      end: 167
      start: 85
    functionDepth: 5
    functionLinenumber: 85
    functionLinenumberEnd: 167
    functionName: TlsServer::Config::SetSocketOptions
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/server_config.cc
    functionUses: 1
    functionsReached:
    - TlsServer::Config::EnableCbcRandomIv
    - TlsServer::Config::RequireCertificate
    - TlsServer::Config::PskHashType
    - TlsServer::Config::EnableExtendedMasterSecret
    - TlsServer::Config::SetCertificateCompressionAlgorithm
    - TlsServer::Config::EnableDtlsShortHeader
    - TlsServer::Config::NoCache
    - TlsServer::Config::RequestCertificate
    - ScopedPK11SymKey::get
    - assert
    - TlsServer::Config::EnableTls13BackendEch
    - SSL_SetCertificateCompressionAlgorithm
    - PK11_KeyGen
    - SSL_OptionSet
    - SSL_VersionRangeSet
    - SSL_AddExternalPsk
    - TlsServer::Config::EnableZeroRtt
    - SSL_EnableTls13BackendEch
    - TlsServer::Config::EnableAlpn
    - TlsServer::Config::EnableDeflate
    - TlsServer::Config::NoLocks
    - TlsServer::Config::RequireSafeNegotiation
    - ScopedPK11SlotInfo::get
    - TlsServer::Config::EnableFallbackScsv
    - TlsServer::Config::EnableDelegatedCredentials
    - TlsServer::Config::AddExternalPsk
    - TlsServer::Config::EnableSessionTickets
    - TlsServer::Config::SetVersionRange
    - TlsServer::Config::EnableGrease
    linkageType: ''
    returnType: void
    signature: void Config::SetSocketOptions(PRFileDesc* fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NoCache
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:172,1
    - Dst: EnableExtendedMasterSecret
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:174,1
    - Dst: RequestCertificate
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:176,1
    - Dst: RequireCertificate
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:178,1
    - Dst: EnableDeflate
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:179,1
    - Dst: EnableCbcRandomIv
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:182,1
    - Dst: RequireSafeNegotiation
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:184,1
    - Dst: EnableGrease
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:185,1
    - Dst: SetCertificateCompressionAlgorithm
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:188,1
    - Dst: SetVersionRange
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:189,1
    - Dst: SslVersionRange
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:192,1
    - Dst: SslVersionRange
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:194,1
    - Dst: AddExternalPsk
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:195,1
    - Dst: PskHashType
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:197,1
    - Dst: EnableZeroRtt
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:199,1
    - Dst: EnableAlpn
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:201,1
    - Dst: EnableFallbackScsv
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:204,1
    - Dst: EnableSessionTickets
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:206,1
    - Dst: NoLocks
      Src: /src/nss/fuzz/targets/lib/tls/server_config.cc:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 2
    argNames:
    - ' out'
    - ' config'
    argTypes:
    - std::ostream
    - Config
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 211
    functionName: '& operator<<(std::ostream& out, Config& config)'
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/server_config.cc
    functionUses: 0
    functionsReached:
    - PskHashType
    - EnableFallbackScsv
    - AddExternalPsk
    - EnableGrease
    - RequireCertificate
    - SslVersionRange
    - RequestCertificate
    - EnableDeflate
    - EnableSessionTickets
    - EnableZeroRtt
    - EnableAlpn
    - NoCache
    - EnableExtendedMasterSecret
    - SetCertificateCompressionAlgorithm
    - RequireSafeNegotiation
    - EnableCbcRandomIv
    - NoLocks
    - SetVersionRange
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& out, Config& config)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: TlsServer::Config::PskHashType
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/server_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: SSLHashType
    signature: SSLHashType PskHashType()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: TlsServer::Config::SslVersionRange
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/server_config.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SSLVersionRange
    signature: SSLVersionRange SslVersionRange()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: TlsServer::Config::EnableExtendedMasterSecret
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/server_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EnableExtendedMasterSecret()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: TlsServer::Config::RequestCertificate
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/server_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool RequestCertificate()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: TlsServer::Config::RequireCertificate
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/server_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool RequireCertificate()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: TlsServer::Config::EnableDeflate
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/server_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EnableDeflate()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: TlsServer::Config::EnableCbcRandomIv
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/server_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EnableCbcRandomIv()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: TlsServer::Config::RequireSafeNegotiation
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/server_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool RequireSafeNegotiation()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: TlsServer::Config::NoCache
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/server_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool NoCache()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: TlsServer::Config::EnableGrease
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/server_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EnableGrease()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: TlsServer::Config::SetCertificateCompressionAlgorithm
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/server_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool SetCertificateCompressionAlgorithm()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: TlsServer::Config::SetVersionRange
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/server_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool SetVersionRange()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: TlsServer::Config::AddExternalPsk
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/server_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool AddExternalPsk()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: TlsServer::Config::EnableZeroRtt
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/server_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EnableZeroRtt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: TlsServer::Config::EnableAlpn
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/server_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EnableAlpn()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: TlsServer::Config::EnableFallbackScsv
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/server_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EnableFallbackScsv()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: TlsServer::Config::EnableSessionTickets
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/server_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EnableSessionTickets()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: TlsServer::Config::NoLocks
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/server_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool NoLocks()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: TlsServer::Config::FailCertificateAuthentication
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/server_config.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool FailCertificateAuthentication()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: TlsServer::Config::EnableTls13BackendEch
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/server_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EnableTls13BackendEch()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: TlsServer::Config::EnableDelegatedCredentials
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/server_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EnableDelegatedCredentials()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: TlsServer::Config::EnableDtlsShortHeader
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/server_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EnableDtlsShortHeader()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: TlsServer::Config::PskHashType
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/server_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: SSLHashType
    signature: SSLHashType PskHashType()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: TlsServer::Config::SslVersionRange
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/server_config.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SSLVersionRange
    signature: SSLVersionRange SslVersionRange()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: TlsServer::Config::EnableExtendedMasterSecret
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/server_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EnableExtendedMasterSecret()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: TlsServer::Config::RequestCertificate
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/server_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool RequestCertificate()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: TlsServer::Config::RequireCertificate
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/server_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool RequireCertificate()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: TlsServer::Config::EnableDeflate
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/server_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EnableDeflate()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: TlsServer::Config::EnableCbcRandomIv
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/server_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EnableCbcRandomIv()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: TlsServer::Config::RequireSafeNegotiation
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/server_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool RequireSafeNegotiation()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: TlsServer::Config::NoCache
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/server_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool NoCache()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: TlsServer::Config::EnableGrease
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/server_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EnableGrease()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: TlsServer::Config::SetCertificateCompressionAlgorithm
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/server_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool SetCertificateCompressionAlgorithm()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: TlsServer::Config::SetVersionRange
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/server_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool SetVersionRange()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: TlsServer::Config::AddExternalPsk
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/server_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool AddExternalPsk()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: TlsServer::Config::EnableZeroRtt
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/server_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EnableZeroRtt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: TlsServer::Config::EnableAlpn
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/server_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EnableAlpn()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: TlsServer::Config::EnableFallbackScsv
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/server_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EnableFallbackScsv()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: TlsServer::Config::EnableSessionTickets
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/server_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EnableSessionTickets()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: TlsServer::Config::NoLocks
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/server_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool NoLocks()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: TlsServer::Config::FailCertificateAuthentication
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/server_config.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool FailCertificateAuthentication()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: TlsServer::Config::EnableTls13BackendEch
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/server_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EnableTls13BackendEch()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: TlsServer::Config::EnableDelegatedCredentials
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/server_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EnableDelegatedCredentials()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: TlsServer::Config::EnableDtlsShortHeader
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/server_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EnableDtlsShortHeader()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 16
    functionName: FixedTime
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/common.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PRTime
    signature: PRTime FixedTime(void*)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_SetTimeFunc
      Src: /src/nss/fuzz/targets/lib/tls/common.cc:22,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/common.cc:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - PRFileDesc*
    assertStmts:
    - condition: (rv == SECSuccess)
      pos:
        line_end: 22
        line_start: 22
        source_file: /src/nss/fuzz/targets/lib/tls/common.cc
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: TlsCommon::FixTime
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/common.cc
    functionUses: 2
    functionsReached:
    - assert
    - SSL_SetTimeFunc
    linkageType: ''
    returnType: void
    signature: void FixTime(PRFileDesc* fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_VersionRangeGetSupported
      Src: /src/nss/fuzz/targets/lib/tls/common.cc:31,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/common.cc:32,1
    - Dst: SSL_VersionRangeSetDefault
      Src: /src/nss/fuzz/targets/lib/tls/common.cc:34,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/common.cc:35,1
    - Dst: SSL_VersionRangeGetSupported
      Src: /src/nss/fuzz/targets/lib/tls/common.cc:38,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/common.cc:39,1
    - Dst: SSL_VersionRangeSetDefault
      Src: /src/nss/fuzz/targets/lib/tls/common.cc:41,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/common.cc:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (rv == SECSuccess)
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/nss/fuzz/targets/lib/tls/common.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 31
        line_start: 31
        source_file: /src/nss/fuzz/targets/lib/tls/common.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 38
        line_start: 38
        source_file: /src/nss/fuzz/targets/lib/tls/common.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 41
        line_start: 41
        source_file: /src/nss/fuzz/targets/lib/tls/common.cc
    constantsTouched: []
    func_position:
      end: 43
      start: 26
    functionDepth: 5
    functionLinenumber: 26
    functionLinenumberEnd: 43
    functionName: TlsCommon::EnableAllProtocolVersions
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/common.cc
    functionUses: 2
    functionsReached:
    - assert
    - SSL_VersionRangeSetDefault
    - SSL_VersionRangeGetSupported
    linkageType: ''
    returnType: void
    signature: void EnableAllProtocolVersions()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CipherPrefSet
      Src: /src/nss/fuzz/targets/lib/tls/common.cc:47,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/common.cc:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - fd
    argTypes:
    - PRFileDesc*
    assertStmts:
    - condition: (rv == SECSuccess)
      pos:
        line_end: 47
        line_start: 47
        source_file: /src/nss/fuzz/targets/lib/tls/common.cc
    constantsTouched: []
    func_position:
      end: 50
      start: 45
    functionDepth: 3
    functionLinenumber: 45
    functionLinenumberEnd: 50
    functionName: TlsCommon::EnableAllCipherSuites
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/common.cc
    functionUses: 3
    functionsReached:
    - assert
    - SSL_CipherPrefSet
    linkageType: ''
    returnType: void
    signature: void EnableAllCipherSuites(PRFileDesc* fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_ResetHandshake
      Src: /src/nss/fuzz/targets/lib/tls/common.cc:53,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/common.cc:54,1
    - Dst: SSL_ForceHandshake
      Src: /src/nss/fuzz/targets/lib/tls/common.cc:57,1
    - Dst: PR_GetError
      Src: /src/nss/fuzz/targets/lib/tls/common.cc:58,1
    - Dst: PR_Read
      Src: /src/nss/fuzz/targets/lib/tls/common.cc:66,1
    - Dst: PR_Write
      Src: /src/nss/fuzz/targets/lib/tls/common.cc:67,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - fd
    - isServer
    argTypes:
    - PRFileDesc*
    - bool
    assertStmts:
    - condition: (rv == SECSuccess)
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/nss/fuzz/targets/lib/tls/common.cc
    constantsTouched: []
    func_position:
      end: 70
      start: 52
    functionDepth: 4
    functionLinenumber: 52
    functionLinenumberEnd: 70
    functionName: TlsCommon::DoHandshake
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/common.cc
    functionUses: 2
    functionsReached:
    - SSL_ResetHandshake
    - assert
    - PR_Read
    - PR_Write
    - PR_GetError
    - SSL_ForceHandshake
    linkageType: ''
    returnType: void
    signature: void DoHandshake(PRFileDesc* fd, bool isServer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/fuzz/targets/lib/tls/common.cc:74,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/fuzz/targets/lib/tls/common.cc:78,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - input
    - output
    argTypes:
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 81
    functionName: TlsCommon::DummyCompressionEncode
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/common.cc
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - SECITEM_CopyItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus DummyCompressionEncode(const SECItem* input, SECItem* output)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/fuzz/targets/lib/tls/common.cc:86,1
    - Dst: PORT_SetError
      Src: /src/nss/fuzz/targets/lib/tls/common.cc:91,1
    - Dst: PORT_Memcpy
      Src: /src/nss/fuzz/targets/lib/tls/common.cc:95,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 4
    argNames:
    - input
    - output
    - outputLen
    - usedLen
    argTypes:
    - SECItem*
    - unsigned char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 99
    functionName: TlsCommon::DummyCompressionDecode
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/common.cc
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PORT_Memcpy
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus DummyCompressionDecode(const SECItem* input, unsigned char*
      output,\n                                 size_t outputLen, size_t* usedLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_SetTimeFunc
      Src: /src/nss/fuzz/targets/lib/tls/common.cc:22,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/common.cc:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - PRFileDesc*
    assertStmts:
    - condition: (rv == SECSuccess)
      pos:
        line_end: 22
        line_start: 22
        source_file: /src/nss/fuzz/targets/lib/tls/common.cc
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: TlsCommon::FixTime
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/common.cc
    functionUses: 2
    functionsReached:
    - assert
    - SSL_SetTimeFunc
    linkageType: ''
    returnType: void
    signature: void FixTime(PRFileDesc* fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_VersionRangeGetSupported
      Src: /src/nss/fuzz/targets/lib/tls/common.cc:31,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/common.cc:32,1
    - Dst: SSL_VersionRangeSetDefault
      Src: /src/nss/fuzz/targets/lib/tls/common.cc:34,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/common.cc:35,1
    - Dst: SSL_VersionRangeGetSupported
      Src: /src/nss/fuzz/targets/lib/tls/common.cc:38,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/common.cc:39,1
    - Dst: SSL_VersionRangeSetDefault
      Src: /src/nss/fuzz/targets/lib/tls/common.cc:41,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/common.cc:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (rv == SECSuccess)
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/nss/fuzz/targets/lib/tls/common.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 31
        line_start: 31
        source_file: /src/nss/fuzz/targets/lib/tls/common.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 38
        line_start: 38
        source_file: /src/nss/fuzz/targets/lib/tls/common.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 41
        line_start: 41
        source_file: /src/nss/fuzz/targets/lib/tls/common.cc
    constantsTouched: []
    func_position:
      end: 43
      start: 26
    functionDepth: 5
    functionLinenumber: 26
    functionLinenumberEnd: 43
    functionName: TlsCommon::EnableAllProtocolVersions
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/common.cc
    functionUses: 2
    functionsReached:
    - assert
    - SSL_VersionRangeSetDefault
    - SSL_VersionRangeGetSupported
    linkageType: ''
    returnType: void
    signature: void EnableAllProtocolVersions()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CipherPrefSet
      Src: /src/nss/fuzz/targets/lib/tls/common.cc:47,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/common.cc:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - fd
    argTypes:
    - PRFileDesc*
    assertStmts:
    - condition: (rv == SECSuccess)
      pos:
        line_end: 47
        line_start: 47
        source_file: /src/nss/fuzz/targets/lib/tls/common.cc
    constantsTouched: []
    func_position:
      end: 50
      start: 45
    functionDepth: 3
    functionLinenumber: 45
    functionLinenumberEnd: 50
    functionName: TlsCommon::EnableAllCipherSuites
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/common.cc
    functionUses: 3
    functionsReached:
    - assert
    - SSL_CipherPrefSet
    linkageType: ''
    returnType: void
    signature: void EnableAllCipherSuites(PRFileDesc* fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SSL_ResetHandshake
      Src: /src/nss/fuzz/targets/lib/tls/common.cc:53,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/common.cc:54,1
    - Dst: SSL_ForceHandshake
      Src: /src/nss/fuzz/targets/lib/tls/common.cc:57,1
    - Dst: PR_GetError
      Src: /src/nss/fuzz/targets/lib/tls/common.cc:58,1
    - Dst: PR_Read
      Src: /src/nss/fuzz/targets/lib/tls/common.cc:66,1
    - Dst: PR_Write
      Src: /src/nss/fuzz/targets/lib/tls/common.cc:67,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - fd
    - isServer
    argTypes:
    - PRFileDesc*
    - bool
    assertStmts:
    - condition: (rv == SECSuccess)
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/nss/fuzz/targets/lib/tls/common.cc
    constantsTouched: []
    func_position:
      end: 70
      start: 52
    functionDepth: 4
    functionLinenumber: 52
    functionLinenumberEnd: 70
    functionName: TlsCommon::DoHandshake
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/common.cc
    functionUses: 2
    functionsReached:
    - SSL_ResetHandshake
    - assert
    - PR_Read
    - PR_Write
    - PR_GetError
    - SSL_ForceHandshake
    linkageType: ''
    returnType: void
    signature: void DoHandshake(PRFileDesc* fd, bool isServer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/fuzz/targets/lib/tls/common.cc:74,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/fuzz/targets/lib/tls/common.cc:78,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - input
    - output
    argTypes:
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 81
    functionName: TlsCommon::DummyCompressionEncode
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/common.cc
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - SECITEM_CopyItem
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus DummyCompressionEncode(const SECItem* input, SECItem* output)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PORT_SetError
      Src: /src/nss/fuzz/targets/lib/tls/common.cc:86,1
    - Dst: PORT_SetError
      Src: /src/nss/fuzz/targets/lib/tls/common.cc:91,1
    - Dst: PORT_Memcpy
      Src: /src/nss/fuzz/targets/lib/tls/common.cc:95,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 4
    argNames:
    - input
    - output
    - outputLen
    - usedLen
    argTypes:
    - SECItem*
    - unsigned char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 99
    functionName: TlsCommon::DummyCompressionDecode
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/common.cc
    functionUses: 0
    functionsReached:
    - PORT_SetError
    - PORT_Memcpy
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus DummyCompressionDecode(const SECItem* input, unsigned char*
      output,\n                                 size_t outputLen, size_t* usedLen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: TlsClient::Config::PskHashType
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: SSLHashType
    signature: SSLHashType PskHashType()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: TlsClient::Config::SslVersionRange
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SSLVersionRange
    signature: SSLVersionRange SslVersionRange()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: TlsClient::Config::FailCertificateAuthentication
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool FailCertificateAuthentication()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: TlsClient::Config::EnableExtendedMasterSecret
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EnableExtendedMasterSecret()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: TlsClient::Config::RequireDhNamedGroups
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool RequireDhNamedGroups()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: TlsClient::Config::EnableFalseStart
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EnableFalseStart()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: TlsClient::Config::EnableDeflate
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EnableDeflate()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: TlsClient::Config::CbcRandomIv
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool CbcRandomIv()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: TlsClient::Config::RequireSafeNegotiation
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool RequireSafeNegotiation()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: TlsClient::Config::NoCache
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool NoCache()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: TlsClient::Config::EnableGrease
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EnableGrease()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: TlsClient::Config::EnableCHExtensionPermutation
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EnableCHExtensionPermutation()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: TlsClient::Config::SetCertificateCompressionAlgorithm
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool SetCertificateCompressionAlgorithm()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: TlsClient::Config::SetClientEchConfigs
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool SetClientEchConfigs()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: TlsClient::Config::SetVersionRange
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool SetVersionRange()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: TlsClient::Config::AddExternalPsk
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool AddExternalPsk()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: TlsClient::Config::EnablePostHandshakeAuth
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EnablePostHandshakeAuth()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: TlsClient::Config::EnableZeroRtt
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EnableZeroRtt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: TlsClient::Config::EnableAlpn
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EnableAlpn()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: TlsClient::Config::EnableFallbackScsv
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EnableFallbackScsv()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: TlsClient::Config::EnableOcspStapling
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EnableOcspStapling()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: TlsClient::Config::EnableSessionTickets
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EnableSessionTickets()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: TlsClient::Config::EnableTls13CompatMode
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EnableTls13CompatMode()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: TlsClient::Config::NoLocks
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool NoLocks()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: TlsClient::Config::EnableTls13GreaseEch
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EnableTls13GreaseEch()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: TlsClient::Config::SetDtls13VersionWorkaround
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool SetDtls13VersionWorkaround()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: TlsClient::Config::EnableDelegatedCredentials
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EnableDelegatedCredentials()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: TlsClient::Config::EnableDtlsShortHeader
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EnableDtlsShortHeader()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: TlsClient::Config::PskHashType
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: SSLHashType
    signature: SSLHashType PskHashType()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: TlsClient::Config::SslVersionRange
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SSLVersionRange
    signature: SSLVersionRange SslVersionRange()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: TlsClient::Config::FailCertificateAuthentication
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool FailCertificateAuthentication()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: TlsClient::Config::EnableExtendedMasterSecret
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EnableExtendedMasterSecret()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: TlsClient::Config::RequireDhNamedGroups
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool RequireDhNamedGroups()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: TlsClient::Config::EnableFalseStart
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EnableFalseStart()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: TlsClient::Config::EnableDeflate
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EnableDeflate()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: TlsClient::Config::CbcRandomIv
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool CbcRandomIv()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: TlsClient::Config::RequireSafeNegotiation
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool RequireSafeNegotiation()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: TlsClient::Config::NoCache
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool NoCache()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: TlsClient::Config::EnableGrease
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EnableGrease()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: TlsClient::Config::EnableCHExtensionPermutation
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EnableCHExtensionPermutation()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: TlsClient::Config::SetCertificateCompressionAlgorithm
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool SetCertificateCompressionAlgorithm()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: TlsClient::Config::SetClientEchConfigs
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool SetClientEchConfigs()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: TlsClient::Config::SetVersionRange
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool SetVersionRange()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: TlsClient::Config::AddExternalPsk
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool AddExternalPsk()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: TlsClient::Config::EnablePostHandshakeAuth
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EnablePostHandshakeAuth()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: TlsClient::Config::EnableZeroRtt
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EnableZeroRtt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: TlsClient::Config::EnableAlpn
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EnableAlpn()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: TlsClient::Config::EnableFallbackScsv
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EnableFallbackScsv()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: TlsClient::Config::EnableOcspStapling
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EnableOcspStapling()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: TlsClient::Config::EnableSessionTickets
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EnableSessionTickets()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: TlsClient::Config::EnableTls13CompatMode
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EnableTls13CompatMode()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: TlsClient::Config::NoLocks
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool NoLocks()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: TlsClient::Config::EnableTls13GreaseEch
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EnableTls13GreaseEch()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: TlsClient::Config::SetDtls13VersionWorkaround
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool SetDtls13VersionWorkaround()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: TlsClient::Config::EnableDelegatedCredentials
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EnableDelegatedCredentials()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: TlsClient::Config::EnableDtlsShortHeader
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/client_config.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EnableDtlsShortHeader()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/server_certs.cc:260,1
    - Dst: toUcharPtr
      Src: /src/nss/fuzz/targets/lib/tls/server_certs.cc:262,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/fuzz/targets/lib/tls/server_certs.cc:263,1
    - Dst: toUcharPtr
      Src: /src/nss/fuzz/targets/lib/tls/server_certs.cc:264,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/fuzz/targets/lib/tls/server_certs.cc:265,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/fuzz/targets/lib/tls/server_certs.cc:268,1
    - Dst: CERT_NewTempCertificate
      Src: /src/nss/fuzz/targets/lib/tls/server_certs.cc:270,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/server_certs.cc:271,1
    - Dst: PK11_ImportDERPrivateKeyInfoAndReturnKey
      Src: /src/nss/fuzz/targets/lib/tls/server_certs.cc:275,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/fuzz/targets/lib/tls/server_certs.cc:276,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/server_certs.cc:278,1
    - Dst: SSL_ConfigServerCert
      Src: /src/nss/fuzz/targets/lib/tls/server_certs.cc:284,1
    - Dst: ScopedCERTCertificate::get
      Src: /src/nss/fuzz/targets/lib/tls/server_certs.cc:284,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/fuzz/targets/lib/tls/server_certs.cc:284,1
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/server_certs.cc:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - fd
    - certData
    - certLen
    - keyData
    - keyLen
    argTypes:
    - PRFileDesc*
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (slot)
      pos:
        line_end: 259
        line_start: 259
        source_file: /src/nss/fuzz/targets/lib/tls/server_certs.cc
    - condition: (cert)
      pos:
        line_end: 270
        line_start: 270
        source_file: /src/nss/fuzz/targets/lib/tls/server_certs.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 277
        line_start: 277
        source_file: /src/nss/fuzz/targets/lib/tls/server_certs.cc
    - condition: (rv == SECSuccess)
      pos:
        line_end: 284
        line_start: 284
        source_file: /src/nss/fuzz/targets/lib/tls/server_certs.cc
    constantsTouched: []
    func_position:
      end: 286
      start: 256
    functionDepth: 12
    functionLinenumber: 256
    functionLinenumberEnd: 286
    functionName: InstallServerCertificate
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/server_certs.cc
    functionUses: 0
    functionsReached:
    - SSL_ConfigServerCert
    - ScopedCERTCertificate::get
    - assert
    - static_cast<unsigned int>
    - ScopedSECKEYPrivateKey::get
    - CERT_GetDefaultCertDB
    - toUcharPtr
    - ScopedPK11SlotInfo::get
    - CERT_NewTempCertificate
    - PK11_ImportDERPrivateKeyInfoAndReturnKey
    linkageType: ''
    returnType: void
    signature: "void InstallServerCertificate(PRFileDesc* fd, const uint8_t* certData,\n
      \                                    size_t certLen, const uint8_t* keyData,\n
      \                                    size_t keyLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InstallServerCertificate
      Src: /src/nss/fuzz/targets/lib/tls/server_certs.cc:292,1
    - Dst: InstallServerCertificate
      Src: /src/nss/fuzz/targets/lib/tls/server_certs.cc:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fd
    argTypes:
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 290
    functionDepth: 13
    functionLinenumber: 290
    functionLinenumberEnd: 300
    functionName: TlsServer::InstallServerCertificates
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/server_certs.cc
    functionUses: 1
    functionsReached:
    - InstallServerCertificate
    linkageType: ''
    returnType: void
    signature: void InstallServerCertificates(PRFileDesc* fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InstallServerCertificate
      Src: /src/nss/fuzz/targets/lib/tls/server_certs.cc:292,1
    - Dst: InstallServerCertificate
      Src: /src/nss/fuzz/targets/lib/tls/server_certs.cc:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fd
    argTypes:
    - PRFileDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 290
    functionDepth: 13
    functionLinenumber: 290
    functionLinenumberEnd: 300
    functionName: TlsServer::InstallServerCertificates
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/server_certs.cc
    functionUses: 1
    functionsReached:
    - InstallServerCertificate
    linkageType: ''
    returnType: void
    signature: void InstallServerCertificates(PRFileDesc* fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<Record>
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:21,1
    - Dst: Record::Record
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - data
    - size
    - remaining
    argTypes:
    - uint8_t*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: Record::Create
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/mutators.cc
    functionUses: 0
    functionsReached:
    - std::unique_ptr<Record>
    - Record::Record
    linkageType: ''
    returnType: std::unique_ptr<Record>
    signature: "std::unique_ptr<Record> Create(const uint8_t *data, size_t size,\n
      \                                       size_t remaining)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:25,1
    - Dst: memcpy
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:29,1
    - Dst: std::vector::data
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:29,1
    - Dst: const_cast<uint8_t *>
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:31,1
    - Dst: std::unique_ptr<Record>::data
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:31,1
    - Dst: memmove
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:33,1
    - Dst: std::unique_ptr<Record>::data
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:33,1
    - Dst: std::unique_ptr<Record>::size
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:33,1
    - Dst: std::unique_ptr<Record>::remaining
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:33,1
    - Dst: memcpy
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:35,1
    - Dst: std::vector::data
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - other
    argTypes:
    - std::unique_ptr<Record>
    assertStmts:
    - condition: (data_ && size_ > 0)
      pos:
        line_end: 24
        line_start: 24
        source_file: /src/nss/fuzz/targets/lib/tls/mutators.cc
    constantsTouched: []
    func_position:
      end: 36
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 36
    functionName: Record::insert_before
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/mutators.cc
    functionUses: 0
    functionsReached:
    - std::unique_ptr<Record>::remaining
    - memcpy
    - std::vector::data
    - std::unique_ptr<Record>::size
    - std::unique_ptr<Record>::data
    - assert
    - memmove
    - const_cast<uint8_t *>
    linkageType: ''
    returnType: void
    signature: void insert_before(const std::unique_ptr<Record> &other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:39,1
    - Dst: const_cast<uint8_t *>
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:40,1
    - Dst: memmove
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - length
    argTypes:
    - size_t
    assertStmts:
    - condition: (length >= 5 + EXTRA_HEADER_BYTES)
      pos:
        line_end: 38
        line_start: 38
        source_file: /src/nss/fuzz/targets/lib/tls/mutators.cc
    constantsTouched: []
    func_position:
      end: 45
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 45
    functionName: Record::truncate
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/mutators.cc
    functionUses: 0
    functionsReached:
    - assert
    - memmove
    - const_cast<uint8_t *>
    linkageType: ''
    returnType: void
    signature: void truncate(size_t length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<uint8_t *>
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:48,1
    - Dst: memmove
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: Record::drop
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/mutators.cc
    functionUses: 0
    functionsReached:
    - memmove
    - const_cast<uint8_t *>
    linkageType: ''
    returnType: void
    signature: void drop()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: Record::data
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/mutators.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t *data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Record::remaining
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/mutators.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t remaining()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: Record::size
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/mutators.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t size()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - data
    - size
    - remaining
    argTypes:
    - uint8_t*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: Record::Record
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/mutators.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Record(const uint8_t *data, size_t size, size_t remaining)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::TlsParser::remaining
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:71,1
    - Dst: nss_test::TlsParser::consumed
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:72,1
    - Dst: nss_test::TlsParser::Skip
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:75,1
    - Dst: nss_test::DataBuffer::DataBuffer
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:79,1
    - Dst: nss_test::TlsParser::ReadVariable
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:80,1
    - Dst: std::vector::push_back
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:84,1
    - Dst: Record::Create
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:84,1
    - Dst: nss_test::DataBuffer::len
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:85,1
    - Dst: nss_test::TlsParser::remaining
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:86,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 66
    functionDepth: 3
    functionLinenumber: 66
    functionLinenumberEnd: 90
    functionName: ParseRecords
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/mutators.cc
    functionUses: 0
    functionsReached:
    - nss_test::DataBuffer::DataBuffer
    - nss_test::DataBuffer::len
    - nss_test::TlsParser::remaining
    - std::vector::push_back
    - nss_test::TlsParser::ReadVariable
    - Record::Create
    - nss_test::TlsParser::Skip
    - nss_test::TlsParser::consumed
    linkageType: ''
    returnType: std::vector<std::unique_ptr<Record>>
    signature: "std::vector<std::unique_ptr<Record>> ParseRecords(const uint8_t *data,\n
      \                                                 size_t size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ParseRecords
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:100,1
    - Dst: auto::empty
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:101,1
    - Dst: auto::size
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:106,1
    - Dst: auto::at
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:107,1
    - Dst: dist
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:107,1
    - Dst: auto::drop
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:110,1
    - Dst: auto::size
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - data
    - size
    - maxSize
    - seed
    argTypes:
    - uint8_t*
    - size_t
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 95
    functionDepth: 4
    functionLinenumber: 95
    functionLinenumberEnd: 114
    functionName: TlsMutators::DropRecord
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/mutators.cc
    functionUses: 0
    functionsReached:
    - auto::empty
    - auto::drop
    - auto::at
    - ParseRecords
    - dist
    - auto::size
    linkageType: ''
    returnType: size_t
    signature: "size_t DropRecord(uint8_t *data, size_t size, size_t maxSize,\n                  unsigned
      int seed)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ParseRecords
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:122,1
    - Dst: auto::empty
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:123,1
    - Dst: memcpy
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:129,1
    - Dst: std::vector::data
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:129,1
    - Dst: const_cast<uint8_t *>
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:132,1
    - Dst: auto::at
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:132,1
    - Dst: std::shuffle
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:135,1
    - Dst: auto::begin
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:135,1
    - Dst: auto::end
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:135,1
    - Dst: memcpy
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:139,1
    - Dst: std::vector::data
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:139,1
    - Dst: data
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:139,1
    - Dst: size
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:139,1
    - Dst: size
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - data
    - size
    - maxSize
    - seed
    argTypes:
    - uint8_t*
    - size_t
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 117
    functionDepth: 4
    functionLinenumber: 117
    functionLinenumberEnd: 145
    functionName: TlsMutators::ShuffleRecords
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/mutators.cc
    functionUses: 0
    functionsReached:
    - memcpy
    - auto::end
    - std::vector::data
    - auto::empty
    - size
    - auto::at
    - data
    - ParseRecords
    - std::shuffle
    - auto::begin
    - const_cast<uint8_t *>
    linkageType: ''
    returnType: size_t
    signature: "size_t ShuffleRecords(uint8_t *data, size_t size, size_t maxSize,\n
      \                     unsigned int seed)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ParseRecords
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:153,1
    - Dst: auto::empty
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:154,1
    - Dst: auto::size
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:159,1
    - Dst: auto::at
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:160,1
    - Dst: dist
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:160,1
    - Dst: auto::size
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:161,1
    - Dst: auto::insert_before
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:166,1
    - Dst: auto::at
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:166,1
    - Dst: dist
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:166,1
    - Dst: auto::size
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - data
    - size
    - maxSize
    - seed
    argTypes:
    - uint8_t*
    - size_t
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 148
    functionDepth: 4
    functionLinenumber: 148
    functionLinenumberEnd: 170
    functionName: TlsMutators::DuplicateRecord
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/mutators.cc
    functionUses: 0
    functionsReached:
    - auto::insert_before
    - auto::empty
    - auto::at
    - ParseRecords
    - dist
    - auto::size
    linkageType: ''
    returnType: size_t
    signature: "size_t DuplicateRecord(uint8_t *data, size_t size, size_t maxSize,\n
      \                      unsigned int seed)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ParseRecords
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:178,1
    - Dst: auto::empty
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:179,1
    - Dst: auto::size
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:184,1
    - Dst: auto::at
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:185,1
    - Dst: dist
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:185,1
    - Dst: auto::size
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:188,1
    - Dst: auto::size
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:194,1
    - Dst: dist2
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:195,1
    - Dst: auto::truncate
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:196,1
    - Dst: auto::size
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:199,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - data
    - size
    - maxSize
    - seed
    argTypes:
    - uint8_t*
    - size_t
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 173
    functionDepth: 4
    functionLinenumber: 173
    functionLinenumberEnd: 200
    functionName: TlsMutators::TruncateRecord
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/mutators.cc
    functionUses: 0
    functionsReached:
    - auto::empty
    - auto::truncate
    - auto::at
    - ParseRecords
    - dist2
    - dist
    - auto::size
    linkageType: ''
    returnType: size_t
    signature: "size_t TruncateRecord(uint8_t *data, size_t size, size_t maxSize,\n
      \                     unsigned int seed)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ParseRecords
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:217,1
    - Dst: auto::empty
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:218,1
    - Dst: auto::size
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:223,1
    - Dst: auto::at
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:224,1
    - Dst: rand_record
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:224,1
    - Dst: const_cast<uint8_t *>
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:225,1
    - Dst: auto::data
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:225,1
    - Dst: auto::size
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:226,1
    - Dst: rand_size
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:235,1
    - Dst: memmove
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:242,1
    - Dst: auto::remaining
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:243,1
    - Dst: memcpy
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:246,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - data
    - size
    - maxSize
    - seed
    argTypes:
    - uint8_t*
    - size_t
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 203
    functionDepth: 4
    functionLinenumber: 203
    functionLinenumberEnd: 251
    functionName: TlsMutators::FragmentRecord
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/mutators.cc
    functionUses: 0
    functionsReached:
    - memcpy
    - auto::empty
    - auto::data
    - rand_size
    - auto::at
    - ParseRecords
    - auto::remaining
    - auto::size
    - memmove
    - rand_record
    - const_cast<uint8_t *>
    linkageType: ''
    returnType: size_t
    signature: "size_t FragmentRecord(uint8_t *data, size_t size, size_t maxSize,\n
      \                     unsigned int seed)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ParseRecords
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:260,1
    - Dst: auto::empty
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:261,1
    - Dst: ParseRecords
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:266,1
    - Dst: auto::empty
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:267,1
    - Dst: std::move
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:270,1
    - Dst: auto::begin
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:270,1
    - Dst: auto::end
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:270,1
    - Dst: std::back_inserter
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:270,1
    - Dst: std::shuffle
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:274,1
    - Dst: auto::begin
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:274,1
    - Dst: auto::end
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:274,1
    - Dst: size
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:278,1
    - Dst: memcpy
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:284,1
    - Dst: data
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:284,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 7
    argNames:
    - data1
    - size1
    - data2
    - size2
    - out
    - maxOutSize
    - seed
    argTypes:
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 254
    functionDepth: 4
    functionLinenumber: 254
    functionLinenumberEnd: 289
    functionName: TlsMutators::CrossOver
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/mutators.cc
    functionUses: 2
    functionsReached:
    - memcpy
    - auto::end
    - auto::empty
    - size
    - data
    - std::move
    - ParseRecords
    - std::shuffle
    - std::back_inserter
    - auto::begin
    linkageType: ''
    returnType: size_t
    signature: "size_t CrossOver(const uint8_t *data1, size_t size1, const uint8_t
      *data2,\n                 size_t size2, uint8_t *out, size_t maxOutSize,\n                 unsigned
      int seed)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ParseRecords
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:100,1
    - Dst: auto::empty
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:101,1
    - Dst: auto::size
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:106,1
    - Dst: auto::at
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:107,1
    - Dst: dist
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:107,1
    - Dst: auto::drop
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:110,1
    - Dst: auto::size
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - data
    - size
    - maxSize
    - seed
    argTypes:
    - uint8_t*
    - size_t
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 95
    functionDepth: 4
    functionLinenumber: 95
    functionLinenumberEnd: 114
    functionName: TlsMutators::DropRecord
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/mutators.cc
    functionUses: 0
    functionsReached:
    - auto::empty
    - auto::drop
    - auto::at
    - ParseRecords
    - dist
    - auto::size
    linkageType: ''
    returnType: size_t
    signature: "size_t DropRecord(uint8_t *data, size_t size, size_t maxSize,\n                  unsigned
      int seed)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ParseRecords
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:122,1
    - Dst: auto::empty
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:123,1
    - Dst: memcpy
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:129,1
    - Dst: std::vector::data
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:129,1
    - Dst: const_cast<uint8_t *>
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:132,1
    - Dst: auto::at
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:132,1
    - Dst: std::shuffle
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:135,1
    - Dst: auto::begin
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:135,1
    - Dst: auto::end
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:135,1
    - Dst: memcpy
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:139,1
    - Dst: std::vector::data
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:139,1
    - Dst: data
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:139,1
    - Dst: size
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:139,1
    - Dst: size
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - data
    - size
    - maxSize
    - seed
    argTypes:
    - uint8_t*
    - size_t
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 117
    functionDepth: 4
    functionLinenumber: 117
    functionLinenumberEnd: 145
    functionName: TlsMutators::ShuffleRecords
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/mutators.cc
    functionUses: 0
    functionsReached:
    - memcpy
    - auto::end
    - std::vector::data
    - auto::empty
    - size
    - auto::at
    - data
    - ParseRecords
    - std::shuffle
    - auto::begin
    - const_cast<uint8_t *>
    linkageType: ''
    returnType: size_t
    signature: "size_t ShuffleRecords(uint8_t *data, size_t size, size_t maxSize,\n
      \                     unsigned int seed)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ParseRecords
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:153,1
    - Dst: auto::empty
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:154,1
    - Dst: auto::size
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:159,1
    - Dst: auto::at
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:160,1
    - Dst: dist
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:160,1
    - Dst: auto::size
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:161,1
    - Dst: auto::insert_before
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:166,1
    - Dst: auto::at
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:166,1
    - Dst: dist
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:166,1
    - Dst: auto::size
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - data
    - size
    - maxSize
    - seed
    argTypes:
    - uint8_t*
    - size_t
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 148
    functionDepth: 4
    functionLinenumber: 148
    functionLinenumberEnd: 170
    functionName: TlsMutators::DuplicateRecord
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/mutators.cc
    functionUses: 0
    functionsReached:
    - auto::insert_before
    - auto::empty
    - auto::at
    - ParseRecords
    - dist
    - auto::size
    linkageType: ''
    returnType: size_t
    signature: "size_t DuplicateRecord(uint8_t *data, size_t size, size_t maxSize,\n
      \                      unsigned int seed)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ParseRecords
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:178,1
    - Dst: auto::empty
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:179,1
    - Dst: auto::size
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:184,1
    - Dst: auto::at
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:185,1
    - Dst: dist
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:185,1
    - Dst: auto::size
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:188,1
    - Dst: auto::size
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:194,1
    - Dst: dist2
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:195,1
    - Dst: auto::truncate
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:196,1
    - Dst: auto::size
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:199,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - data
    - size
    - maxSize
    - seed
    argTypes:
    - uint8_t*
    - size_t
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 173
    functionDepth: 4
    functionLinenumber: 173
    functionLinenumberEnd: 200
    functionName: TlsMutators::TruncateRecord
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/mutators.cc
    functionUses: 0
    functionsReached:
    - auto::empty
    - auto::truncate
    - auto::at
    - ParseRecords
    - dist2
    - dist
    - auto::size
    linkageType: ''
    returnType: size_t
    signature: "size_t TruncateRecord(uint8_t *data, size_t size, size_t maxSize,\n
      \                     unsigned int seed)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ParseRecords
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:217,1
    - Dst: auto::empty
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:218,1
    - Dst: auto::size
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:223,1
    - Dst: auto::at
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:224,1
    - Dst: rand_record
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:224,1
    - Dst: const_cast<uint8_t *>
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:225,1
    - Dst: auto::data
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:225,1
    - Dst: auto::size
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:226,1
    - Dst: rand_size
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:235,1
    - Dst: memmove
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:242,1
    - Dst: auto::remaining
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:243,1
    - Dst: memcpy
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:246,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - data
    - size
    - maxSize
    - seed
    argTypes:
    - uint8_t*
    - size_t
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 203
    functionDepth: 4
    functionLinenumber: 203
    functionLinenumberEnd: 251
    functionName: TlsMutators::FragmentRecord
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/mutators.cc
    functionUses: 0
    functionsReached:
    - memcpy
    - auto::empty
    - auto::data
    - rand_size
    - auto::at
    - ParseRecords
    - auto::remaining
    - auto::size
    - memmove
    - rand_record
    - const_cast<uint8_t *>
    linkageType: ''
    returnType: size_t
    signature: "size_t FragmentRecord(uint8_t *data, size_t size, size_t maxSize,\n
      \                     unsigned int seed)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ParseRecords
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:260,1
    - Dst: auto::empty
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:261,1
    - Dst: ParseRecords
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:266,1
    - Dst: auto::empty
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:267,1
    - Dst: std::move
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:270,1
    - Dst: auto::begin
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:270,1
    - Dst: auto::end
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:270,1
    - Dst: std::back_inserter
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:270,1
    - Dst: std::shuffle
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:274,1
    - Dst: auto::begin
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:274,1
    - Dst: auto::end
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:274,1
    - Dst: size
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:278,1
    - Dst: memcpy
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:284,1
    - Dst: data
      Src: /src/nss/fuzz/targets/lib/tls/mutators.cc:284,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 7
    argNames:
    - data1
    - size1
    - data2
    - size2
    - out
    - maxOutSize
    - seed
    argTypes:
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 254
    functionDepth: 4
    functionLinenumber: 254
    functionLinenumberEnd: 289
    functionName: TlsMutators::CrossOver
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/mutators.cc
    functionUses: 2
    functionsReached:
    - memcpy
    - auto::end
    - auto::empty
    - size
    - data
    - std::move
    - ParseRecords
    - std::shuffle
    - std::back_inserter
    - auto::begin
    linkageType: ''
    returnType: size_t
    signature: "size_t CrossOver(const uint8_t *data1, size_t size1, const uint8_t
      *data2,\n                 size_t size2, uint8_t *out, size_t maxOutSize,\n                 unsigned
      int seed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 18
    functionName: TlsSocket::DummyPrSocket::DummyPrSocket
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/socket.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DummyPrSocket(const uint8_t *buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 18
    functionName: TlsSocket::DummyPrSocket::DummyPrSocket
    functionSourceFile: /src/nss/fuzz/targets/lib/tls/socket.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DummyPrSocket(const uint8_t *buf, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bdist
      Src: /src/nss/fuzz/targets/lib/base/mutate.cc:16,1
    - Dst: Mutators::size
      Src: /src/nss/fuzz/targets/lib/base/mutate.cc:17,1
    - Dst: Mutators::at
      Src: /src/nss/fuzz/targets/lib/base/mutate.cc:18,1
    - Dst: idist
      Src: /src/nss/fuzz/targets/lib/base/mutate.cc:18,1
    - Dst: LLVMFuzzerMutate
      Src: /src/nss/fuzz/targets/lib/base/mutate.cc:21,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - mutators
    - data
    - size
    - maxSize
    - seed
    argTypes:
    - Mutators
    - uint8_t*
    - size_t
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 22
    functionName: CustomMutate
    functionSourceFile: /src/nss/fuzz/targets/lib/base/mutate.cc
    functionUses: 8
    functionsReached:
    - LLVMFuzzerMutate
    - bdist
    - Mutators::size
    - idist
    - Mutators::at
    linkageType: ''
    returnType: size_t
    signature: "size_t CustomMutate(Mutators mutators, uint8_t* data, size_t size,\n
      \                   size_t maxSize, unsigned int seed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/base/database.h:15,1
    - Dst: NSS_NoDB_Init
      Src: /src/nss/fuzz/targets/lib/base/database.h:15,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (NSS_NoDB_Init(nullptr) == SECSuccess)
      pos:
        line_end: 14
        line_start: 14
        source_file: /src/nss/fuzz/targets/lib/base/database.h
    constantsTouched: []
    func_position:
      end: 15
      start: 15
    functionDepth: 14
    functionLinenumber: 15
    functionLinenumberEnd: 15
    functionName: NSSDatabase::NSSDatabase
    functionSourceFile: /src/nss/fuzz/targets/lib/base/database.h
    functionUses: 0
    functionsReached:
    - assert
    - NSS_NoDB_Init
    linkageType: ''
    returnType: void
    signature: void NSSDatabase()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/fuzz/targets/lib/base/database.h:16,1
    - Dst: NSS_Shutdown
      Src: /src/nss/fuzz/targets/lib/base/database.h:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (NSS_Shutdown() == SECSuccess)
      pos:
        line_end: 15
        line_start: 15
        source_file: /src/nss/fuzz/targets/lib/base/database.h
    constantsTouched: []
    func_position:
      end: 16
      start: 16
    functionDepth: 7
    functionLinenumber: 16
    functionLinenumberEnd: 16
    functionName: ~NSSDatabase()
    functionSourceFile: /src/nss/fuzz/targets/lib/base/database.h
    functionUses: 0
    functionsReached:
    - assert
    - NSS_Shutdown
    linkageType: ''
    returnType: void
    signature: void ~NSSDatabase()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::min
      Src: /src/nss/fuzz/targets/lib/asn1/mutators.cc:16,1
    - Dst: static_cast<size_t>
      Src: /src/nss/fuzz/targets/lib/asn1/mutators.cc:16,1
    - Dst: std::make_tuple
      Src: /src/nss/fuzz/targets/lib/asn1/mutators.cc:17,1
    - Dst: memmem
      Src: /src/nss/fuzz/targets/lib/asn1/mutators.cc:22,1
    - Dst: static_cast<uint8_t *>
      Src: /src/nss/fuzz/targets/lib/asn1/mutators.cc:23,1
    - Dst: std::make_tuple
      Src: /src/nss/fuzz/targets/lib/asn1/mutators.cc:25,1
    - Dst: std::min
      Src: /src/nss/fuzz/targets/lib/asn1/mutators.cc:30,1
    - Dst: static_cast<size_t>
      Src: /src/nss/fuzz/targets/lib/asn1/mutators.cc:30,1
    - Dst: std::make_tuple
      Src: /src/nss/fuzz/targets/lib/asn1/mutators.cc:35,1
    - Dst: std::min
      Src: /src/nss/fuzz/targets/lib/asn1/mutators.cc:44,1
    - Dst: std::make_tuple
      Src: /src/nss/fuzz/targets/lib/asn1/mutators.cc:45,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - data
    - maxLength
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 46
    functionName: ParseItem
    functionSourceFile: /src/nss/fuzz/targets/lib/asn1/mutators.cc
    functionUses: 0
    functionsReached:
    - memmem
    - static_cast<uint8_t *>
    - std::min
    - static_cast<size_t>
    - std::make_tuple
    linkageType: ''
    returnType: std::tuple<uint8_t *, size_t>
    signature: "std::tuple<uint8_t *, size_t> ParseItem(uint8_t *data,\n                                               size_t
      maxLength)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/nss/fuzz/targets/lib/asn1/mutators.cc:53,1
    - Dst: std::vector::push_back
      Src: /src/nss/fuzz/targets/lib/asn1/mutators.cc:54,1
    - Dst: std::vector::size
      Src: /src/nss/fuzz/targets/lib/asn1/mutators.cc:60,1
    - Dst: std::vector::at
      Src: /src/nss/fuzz/targets/lib/asn1/mutators.cc:61,1
    - Dst: std::vector::at
      Src: /src/nss/fuzz/targets/lib/asn1/mutators.cc:62,1
    - Dst: std::tie
      Src: /src/nss/fuzz/targets/lib/asn1/mutators.cc:73,1
    - Dst: ParseItem
      Src: /src/nss/fuzz/targets/lib/asn1/mutators.cc:73,1
    - Dst: std::vector::push_back
      Src: /src/nss/fuzz/targets/lib/asn1/mutators.cc:77,1
    - Dst: std::vector::push_back
      Src: /src/nss/fuzz/targets/lib/asn1/mutators.cc:80,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 92
    functionName: ParseItems
    functionSourceFile: /src/nss/fuzz/targets/lib/asn1/mutators.cc
    functionUses: 0
    functionsReached:
    - std::vector::at
    - std::tie
    - ParseItem
    - std::vector::size
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<uint8_t *>
    signature: std::vector<uint8_t *> ParseItems(uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParseItems
      Src: /src/nss/fuzz/targets/lib/asn1/mutators.cc:98,1
    - Dst: auto::size
      Src: /src/nss/fuzz/targets/lib/asn1/mutators.cc:101,1
    - Dst: auto::at
      Src: /src/nss/fuzz/targets/lib/asn1/mutators.cc:102,1
    - Dst: dist
      Src: /src/nss/fuzz/targets/lib/asn1/mutators.cc:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - data
    - size
    - maxSize
    - seed
    argTypes:
    - uint8_t*
    - size_t
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 108
    functionName: ASN1Mutators::FlipConstructed
    functionSourceFile: /src/nss/fuzz/targets/lib/asn1/mutators.cc
    functionUses: 0
    functionsReached:
    - dist
    - auto::size
    - auto::at
    - ParseItems
    linkageType: ''
    returnType: size_t
    signature: "size_t FlipConstructed(uint8_t *data, size_t size, size_t maxSize,\n
      \                      unsigned int seed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParseItems
      Src: /src/nss/fuzz/targets/lib/asn1/mutators.cc:112,1
    - Dst: auto::size
      Src: /src/nss/fuzz/targets/lib/asn1/mutators.cc:115,1
    - Dst: auto::at
      Src: /src/nss/fuzz/targets/lib/asn1/mutators.cc:116,1
    - Dst: dist
      Src: /src/nss/fuzz/targets/lib/asn1/mutators.cc:116,1
    - Dst: tdist
      Src: /src/nss/fuzz/targets/lib/asn1/mutators.cc:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - data
    - size
    - maxSize
    - seed
    argTypes:
    - uint8_t*
    - size_t
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 123
    functionName: ASN1Mutators::ChangeType
    functionSourceFile: /src/nss/fuzz/targets/lib/asn1/mutators.cc
    functionUses: 0
    functionsReached:
    - tdist
    - auto::at
    - ParseItems
    - dist
    - auto::size
    linkageType: ''
    returnType: size_t
    signature: "size_t ChangeType(uint8_t *data, size_t size, size_t maxSize,\n                  unsigned
      int seed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParseItems
      Src: /src/nss/fuzz/targets/lib/asn1/mutators.cc:98,1
    - Dst: auto::size
      Src: /src/nss/fuzz/targets/lib/asn1/mutators.cc:101,1
    - Dst: auto::at
      Src: /src/nss/fuzz/targets/lib/asn1/mutators.cc:102,1
    - Dst: dist
      Src: /src/nss/fuzz/targets/lib/asn1/mutators.cc:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - data
    - size
    - maxSize
    - seed
    argTypes:
    - uint8_t*
    - size_t
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 108
    functionName: ASN1Mutators::FlipConstructed
    functionSourceFile: /src/nss/fuzz/targets/lib/asn1/mutators.cc
    functionUses: 0
    functionsReached:
    - dist
    - auto::size
    - auto::at
    - ParseItems
    linkageType: ''
    returnType: size_t
    signature: "size_t FlipConstructed(uint8_t *data, size_t size, size_t maxSize,\n
      \                      unsigned int seed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParseItems
      Src: /src/nss/fuzz/targets/lib/asn1/mutators.cc:112,1
    - Dst: auto::size
      Src: /src/nss/fuzz/targets/lib/asn1/mutators.cc:115,1
    - Dst: auto::at
      Src: /src/nss/fuzz/targets/lib/asn1/mutators.cc:116,1
    - Dst: dist
      Src: /src/nss/fuzz/targets/lib/asn1/mutators.cc:116,1
    - Dst: tdist
      Src: /src/nss/fuzz/targets/lib/asn1/mutators.cc:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - data
    - size
    - maxSize
    - seed
    argTypes:
    - uint8_t*
    - size_t
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 123
    functionName: ASN1Mutators::ChangeType
    functionSourceFile: /src/nss/fuzz/targets/lib/asn1/mutators.cc
    functionUses: 0
    functionsReached:
    - tdist
    - auto::at
    - ParseItems
    - dist
    - auto::size
    linkageType: ''
    returnType: size_t
    signature: "size_t ChangeType(uint8_t *data, size_t size, size_t maxSize,\n                  unsigned
      int seed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' nm'
    - ' typ'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: ConfigEntryBase::ConfigEntryBase
    functionSourceFile: /src/nss/gtests/nss_bogo_shim/config.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ConfigEntryBase(const std::string& nm, const std::string& typ)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: ~ConfigEntryBase()
    functionSourceFile: /src/nss/gtests/nss_bogo_shim/config.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~ConfigEntryBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: '& type() const'
    functionSourceFile: /src/nss/gtests/nss_bogo_shim/config.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: typeid
      Src: /src/nss/gtests/nss_bogo_shim/config.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' name'
    - init
    argTypes:
    - std::string
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: ConfigEntry::ConfigEntry
    functionSourceFile: /src/nss/gtests/nss_bogo_shim/config.h
    functionUses: 0
    functionsReached:
    - typeid
    linkageType: ''
    returnType: void
    signature: void ConfigEntry(const std::string& name, T init)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: ConfigEntry::get
    functionSourceFile: /src/nss/gtests/nss_bogo_shim/config.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T get() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ParseInternal
      Src: /src/nss/gtests/nss_bogo_shim/config.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' args'
    argTypes:
    - std::queue<const char*>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: ConfigEntry::Parse
    functionSourceFile: /src/nss/gtests/nss_bogo_shim/config.h
    functionUses: 0
    functionsReached:
    - ParseInternal
    linkageType: ''
    returnType: bool
    signature: bool Parse(std::queue<const char*>& args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: Config::Config
    functionSourceFile: /src/nss/gtests/nss_bogo_shim/config.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Config()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<ConfigEntryBase>
      Src: /src/nss/gtests/nss_bogo_shim/config.h:70,1
    - Dst: ConfigEntry<T>::ConfigEntry<T>
      Src: /src/nss/gtests/nss_bogo_shim/config.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' name'
    - init
    argTypes:
    - std::string
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: Config::AddEntry
    functionSourceFile: /src/nss/gtests/nss_bogo_shim/config.h
    functionUses: 0
    functionsReached:
    - std::unique_ptr<ConfigEntryBase>
    - ConfigEntry<T>::ConfigEntry<T>
    linkageType: ''
    returnType: void
    signature: void AddEntry(const std::string& name, T init)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Config::entry
      Src: /src/nss/gtests/nss_bogo_shim/config.h:77,1
    - Dst: assert
      Src: /src/nss/gtests/nss_bogo_shim/config.h:78,1
    - Dst: auto::type
      Src: /src/nss/gtests/nss_bogo_shim/config.h:78,1
    - Dst: typeid
      Src: /src/nss/gtests/nss_bogo_shim/config.h:78,1
    - Dst: static_cast<const ConfigEntry<T>*>
      Src: /src/nss/gtests/nss_bogo_shim/config.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - std::string
    assertStmts:
    - condition: (e->type() == typeid(T).name())
      pos:
        line_end: 77
        line_start: 77
        source_file: /src/nss/gtests/nss_bogo_shim/config.h
    constantsTouched: []
    func_position:
      end: 80
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 80
    functionName: Config::get
    functionSourceFile: /src/nss/gtests/nss_bogo_shim/config.h
    functionUses: 0
    functionsReached:
    - typeid
    - assert
    - static_cast<const ConfigEntry<T>*>
    - auto::type
    - Config::entry
    linkageType: ''
    returnType: T
    signature: T get(const std::string& key) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/nss/gtests/nss_bogo_shim/config.h:88,1
    - Dst: end
      Src: /src/nss/gtests/nss_bogo_shim/config.h:89,1
    - Dst: auto::second::get
      Src: /src/nss/gtests/nss_bogo_shim/config.h:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: Config::entry
    functionSourceFile: /src/nss/gtests/nss_bogo_shim/config.h
    functionUses: 1
    functionsReached:
    - find
    - auto::second::get
    - end
    linkageType: ''
    returnType: ConfigEntryBase
    signature: ConfigEntryBase * entry(const std::string& key) const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::ifstream::bad
      Src: /src/nss/gtests/nss_bogo_shim/nsskeys.cc:28,1
    - Dst: std::ifstream::getline
      Src: /src/nss/gtests/nss_bogo_shim/nsskeys.cc:31,1
    - Dst: std::ifstream::bad
      Src: /src/nss/gtests/nss_bogo_shim/nsskeys.cc:32,1
    - Dst: strncmp
      Src: /src/nss/gtests/nss_bogo_shim/nsskeys.cc:34,1
    - Dst: c_str
      Src: /src/nss/gtests/nss_bogo_shim/nsskeys.cc:34,1
    - Dst: size
      Src: /src/nss/gtests/nss_bogo_shim/nsskeys.cc:34,1
    - Dst: std::ifstream::getline
      Src: /src/nss/gtests/nss_bogo_shim/nsskeys.cc:38,1
    - Dst: std::ifstream::bad
      Src: /src/nss/gtests/nss_bogo_shim/nsskeys.cc:39,1
    - Dst: strncmp
      Src: /src/nss/gtests/nss_bogo_shim/nsskeys.cc:41,1
    - Dst: c_str
      Src: /src/nss/gtests/nss_bogo_shim/nsskeys.cc:41,1
    - Dst: size
      Src: /src/nss/gtests/nss_bogo_shim/nsskeys.cc:41,1
    - Dst: NSSBase64_DecodeBuffer
      Src: /src/nss/gtests/nss_bogo_shim/nsskeys.cc:47,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/nss_bogo_shim/nsskeys.cc:47,1
    - Dst: std::string::size
      Src: /src/nss/gtests/nss_bogo_shim/nsskeys.cc:47,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - ' filename'
    - item
    argTypes:
    - std::string
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 51
    functionName: ReadPEMFile
    functionSourceFile: /src/nss/gtests/nss_bogo_shim/nsskeys.cc
    functionUses: 0
    functionsReached:
    - strncmp
    - std::string::size
    - NSSBase64_DecodeBuffer
    - size
    - std::ifstream::bad
    - std::string::c_str
    - std::ifstream::getline
    - c_str
    linkageType: ''
    returnType: bool
    signature: bool ReadPEMFile(const std::string& filename, SECItem* item)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ReadPEMFile
      Src: /src/nss/gtests/nss_bogo_shim/nsskeys.cc:56,1
    - Dst: PK11_GetInternalSlot
      Src: /src/nss/gtests/nss_bogo_shim/nsskeys.cc:58,1
    - Dst: PK11_ImportDERPrivateKeyInfoAndReturnKey
      Src: /src/nss/gtests/nss_bogo_shim/nsskeys.cc:59,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/gtests/nss_bogo_shim/nsskeys.cc:63,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/gtests/nss_bogo_shim/nsskeys.cc:64,1
    - Dst: PORT_ErrorToString
      Src: /src/nss/gtests/nss_bogo_shim/nsskeys.cc:66,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/nss_bogo_shim/nsskeys.cc:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' file'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 53
    functionDepth: 4
    functionLinenumber: 53
    functionLinenumberEnd: 72
    functionName: ReadPrivateKey
    functionSourceFile: /src/nss/gtests/nss_bogo_shim/nsskeys.cc
    functionUses: 0
    functionsReached:
    - PORT_ErrorToString
    - PK11_ImportDERPrivateKeyInfoAndReturnKey
    - PORT_GetError
    - PK11_GetInternalSlot
    - ReadPEMFile
    - PK11_FreeSlot
    - SECITEM_FreeItem
    linkageType: ''
    returnType: SECKEYPrivateKey
    signature: SECKEYPrivateKey * ReadPrivateKey(const std::string& file)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ReadPEMFile
      Src: /src/nss/gtests/nss_bogo_shim/nsskeys.cc:77,1
    - Dst: CERT_NewTempCertificate
      Src: /src/nss/gtests/nss_bogo_shim/nsskeys.cc:79,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/gtests/nss_bogo_shim/nsskeys.cc:80,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/gtests/nss_bogo_shim/nsskeys.cc:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' file'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 74
    functionDepth: 8
    functionLinenumber: 74
    functionLinenumberEnd: 83
    functionName: ReadCertificate
    functionSourceFile: /src/nss/gtests/nss_bogo_shim/nsskeys.cc
    functionUses: 0
    functionsReached:
    - CERT_GetDefaultCertDB
    - ReadPEMFile
    - SECITEM_FreeItem
    - CERT_NewTempCertificate
    linkageType: ''
    returnType: CERTCertificate
    signature: CERTCertificate * ReadCertificate(const std::string& file)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::queue<const char *>::empty
      Src: /src/nss/gtests/nss_bogo_shim/config.cc:14,1
    - Dst: std::vector<int>::push_back
      Src: /src/nss/gtests/nss_bogo_shim/config.cc:17,1
    - Dst: strtol
      Src: /src/nss/gtests/nss_bogo_shim/config.cc:17,1
    - Dst: std::queue<const char *>::front
      Src: /src/nss/gtests/nss_bogo_shim/config.cc:17,1
    - Dst: std::queue<const char *>::pop
      Src: /src/nss/gtests/nss_bogo_shim/config.cc:18,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - args
    - out
    argTypes:
    - std::queue<const char *>
    - std::vector<int>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 21
    functionName: ConfigEntryBase::ParseInternal
    functionSourceFile: /src/nss/gtests/nss_bogo_shim/config.cc
    functionUses: 0
    functionsReached:
    - std::queue<const char *>::front
    - std::queue<const char *>::empty
    - std::queue<const char *>::pop
    - strtol
    - std::vector<int>::push_back
    linkageType: ''
    returnType: bool
    signature: "bool ConfigEntryBase::ParseInternal(std::queue<const char *> &args,\n
      \                                   std::vector<int> &out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::queue<const char *>::empty
      Src: /src/nss/gtests/nss_bogo_shim/config.cc:25,1
    - Dst: std::queue<const char *>::front
      Src: /src/nss/gtests/nss_bogo_shim/config.cc:26,1
    - Dst: std::queue<const char *>::pop
      Src: /src/nss/gtests/nss_bogo_shim/config.cc:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - args
    - out
    argTypes:
    - std::queue<const char *>
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 29
    functionName: ConfigEntryBase::ParseInternal
    functionSourceFile: /src/nss/gtests/nss_bogo_shim/config.cc
    functionUses: 0
    functionsReached:
    - std::queue<const char *>::front
    - std::queue<const char *>::empty
    - std::queue<const char *>::pop
    linkageType: ''
    returnType: bool
    signature: "bool ConfigEntryBase::ParseInternal(std::queue<const char *> &args,\n
      \                                   std::string &out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::queue<const char *>::empty
      Src: /src/nss/gtests/nss_bogo_shim/config.cc:32,1
    - Dst: strtol
      Src: /src/nss/gtests/nss_bogo_shim/config.cc:35,1
    - Dst: std::queue<const char *>::front
      Src: /src/nss/gtests/nss_bogo_shim/config.cc:35,1
    - Dst: std::queue<const char *>::pop
      Src: /src/nss/gtests/nss_bogo_shim/config.cc:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - args
    - out
    argTypes:
    - std::queue<const char *>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 39
    functionName: ConfigEntryBase::ParseInternal
    functionSourceFile: /src/nss/gtests/nss_bogo_shim/config.cc
    functionUses: 0
    functionsReached:
    - std::queue<const char *>::front
    - std::queue<const char *>::empty
    - std::queue<const char *>::pop
    - strtol
    linkageType: ''
    returnType: bool
    signature: bool ConfigEntryBase::ParseInternal(std::queue<const char *> &args,
      int &out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - args
    - out
    argTypes:
    - std::queue<const char *>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: ConfigEntryBase::ParseInternal
    functionSourceFile: /src/nss/gtests/nss_bogo_shim/config.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ConfigEntryBase::ParseInternal(std::queue<const char *> &args,
      bool &out)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::string::empty
      Src: /src/nss/gtests/nss_bogo_shim/config.cc:47,1
    - Dst: std::string::substr
      Src: /src/nss/gtests/nss_bogo_shim/config.cc:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - arg
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 52
    functionName: Config::XformFlag
    functionSourceFile: /src/nss/gtests/nss_bogo_shim/config.cc
    functionUses: 0
    functionsReached:
    - std::string::substr
    - std::string::empty
    linkageType: ''
    returnType: std::string
    signature: std::string Config::XformFlag(const std::string &arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::queue::push
      Src: /src/nss/gtests/nss_bogo_shim/config.cc:57,1
    - Dst: std::queue::empty
      Src: /src/nss/gtests/nss_bogo_shim/config.cc:59,1
    - Dst: find
      Src: /src/nss/gtests/nss_bogo_shim/config.cc:60,1
    - Dst: Config::XformFlag
      Src: /src/nss/gtests/nss_bogo_shim/config.cc:60,1
    - Dst: std::queue::front
      Src: /src/nss/gtests/nss_bogo_shim/config.cc:60,1
    - Dst: end
      Src: /src/nss/gtests/nss_bogo_shim/config.cc:61,1
    - Dst: std::queue::front
      Src: /src/nss/gtests/nss_bogo_shim/config.cc:62,1
    - Dst: std::queue::pop
      Src: /src/nss/gtests/nss_bogo_shim/config.cc:65,1
    - Dst: auto::second::Parse
      Src: /src/nss/gtests/nss_bogo_shim/config.cc:66,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 70
    functionName: Config::ParseArgs
    functionSourceFile: /src/nss/gtests/nss_bogo_shim/config.cc
    functionUses: 0
    functionsReached:
    - std::queue::push
    - end
    - std::queue::empty
    - find
    - auto::second::Parse
    - std::queue::pop
    - Config::XformFlag
    - std::queue::front
    linkageType: ''
    returnType: Config::Status
    signature: Config::Status Config::ParseArgs(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:37,1
    - Dst: PORT_ErrorToName
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:37,1
    - Dst: PORT_ErrorToString
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - code
    argTypes:
    - PRErrorCode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: FormatError
    functionSourceFile: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc
    functionUses: 0
    functionsReached:
    - PORT_ErrorToString
    - std::string
    - PORT_ErrorToName
    linkageType: ''
    returnType: std::string
    signature: std::string FormatError(PRErrorCode code)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: erase
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:42,1
    - Dst: std::remove
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:42,1
    - Dst: begin
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:42,1
    - Dst: end
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:42,1
    - Dst: cend
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:42,1
    - Dst: erase
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:43,1
    - Dst: std::remove
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:43,1
    - Dst: begin
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:43,1
    - Dst: end
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:43,1
    - Dst: cend
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: StringRemoveNewlines
    functionSourceFile: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc
    functionUses: 0
    functionsReached:
    - erase
    - end
    - cend
    - begin
    - std::remove
    linkageType: ''
    returnType: void
    signature: void StringRemoveNewlines(std::string& str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' cfg'
    argTypes:
    - Config
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: TestAgent::TestAgent
    functionSourceFile: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestAgent(const Config& cfg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: ~TestAgent()
    functionSourceFile: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~TestAgent()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TestAgent::TestAgent
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:53,1
    - Dst: std::unique_ptr::Init
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' cfg'
    argTypes:
    - Config
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 58
    functionName: TestAgent::Create
    functionSourceFile: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc
    functionUses: 0
    functionsReached:
    - std::unique_ptr::Init
    - TestAgent::TestAgent
    linkageType: ''
    returnType: std::unique_ptr<TestAgent>
    signature: std::unique_ptr<TestAgent> Create(const Config& cfg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TestAgent::ConnectTcp
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:61,1
    - Dst: TestAgent::SetupKeys
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:65,1
    - Dst: TestAgent::SetupOptions
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:70,1
    - Dst: SSL_ResetHandshake
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:75,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:75,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:75,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 60
    functionDepth: 4
    functionLinenumber: 60
    functionLinenumberEnd: 79
    functionName: TestAgent::Init
    functionSourceFile: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc
    functionUses: 0
    functionsReached:
    - SSL_ResetHandshake
    - TestAgent::ConnectTcp
    - TestAgent::SetupKeys
    - TestAgent::SetupOptions
    - get
    linkageType: ''
    returnType: bool
    signature: bool Init()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:82,1
    - Dst: TestAgent::OpenConnection
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:82,1
    - Dst: TestAgent::OpenConnection
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:83,1
    - Dst: ScopedPRFileDesc
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:87,1
    - Dst: SSL_ImportFD
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:87,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:87,1
    - Dst: release
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:91,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 81
    functionDepth: 6
    functionLinenumber: 81
    functionLinenumberEnd: 94
    functionName: TestAgent::ConnectTcp
    functionSourceFile: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc
    functionUses: 1
    functionsReached:
    - TestAgent::OpenConnection
    - ScopedPRFileDesc
    - SSL_ImportFD
    - get
    - release
    linkageType: ''
    returnType: bool
    signature: bool ConnectTcp()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PR_StringToNetAddr
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:100,1
    - Dst: PR_htons
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:106,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:106,1
    - Dst: ScopedPRFileDesc
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:108,1
    - Dst: PR_OpenTCPSocket
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:108,1
    - Dst: PR_Connect
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:111,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:111,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:116,1
    - Dst: PR_Write
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:122,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:122,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - ip
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 128
    functionName: TestAgent::OpenConnection
    functionSourceFile: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc
    functionUses: 1
    functionsReached:
    - PR_StringToNetAddr
    - PR_Connect
    - PR_OpenTCPSocket
    - ScopedPRFileDesc
    - PR_Write
    - PR_htons
    - get
    linkageType: ''
    returnType: bool
    signature: bool OpenConnection(const char* ip)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:133,1
    - Dst: ScopedSECKEYPrivateKey
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:134,1
    - Dst: ReadPrivateKey
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:135,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:135,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:138,1
    - Dst: ScopedCERTCertificate
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:139,1
    - Dst: ReadCertificate
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:140,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:140,1
    - Dst: SSL_AuthCertificateHook
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:145,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:145,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:148,1
    - Dst: SSL_ConfigServerCert
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:150,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:150,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:150,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:150,1
    - Dst: SSL_GetClientAuthDataHook
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:160,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:160,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 130
    functionDepth: 12
    functionLinenumber: 130
    functionLinenumberEnd: 165
    functionName: TestAgent::SetupKeys
    functionSourceFile: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc
    functionUses: 1
    functionsReached:
    - SSL_GetClientAuthDataHook
    - SSL_ConfigServerCert
    - ScopedCERTCertificate
    - ReadCertificate
    - ReadPrivateKey
    - get
    - SSL_AuthCertificateHook
    - ScopedSECKEYPrivateKey
    linkageType: ''
    returnType: bool
    signature: bool SetupKeys()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:171,1
    - Dst: static_cast<uint16_t>
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:203,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 3
    argNames:
    - variant
    - wire_version
    - lib_version
    argTypes:
    - SSLProtocolVariant
    - int
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 206
    functionName: TestAgent::ConvertFromWireVersion
    functionSourceFile: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    linkageType: ''
    returnType: bool
    signature: "bool ConvertFromWireVersion(SSLProtocolVariant variant,\n                                     int
      wire_version, uint16_t* lib_version)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: SSL_VersionRangeGetSupported
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:210,1
    - Dst: TestAgent::ConvertFromWireVersion
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:216,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:216,1
    - Dst: TestAgent::ConvertFromWireVersion
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:220,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:220,1
    - Dst: std::max
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:225,1
    - Dst: std::min
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:226,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:231,1
    - Dst: static_cast<uint16_t>
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:233,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:253,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 47
    argCount: 2
    argNames:
    - range_out
    - variant
    argTypes:
    - SSLVersionRange*
    - SSLProtocolVariant
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 208
    functionDepth: 4
    functionLinenumber: 208
    functionLinenumberEnd: 276
    functionName: TestAgent::GetVersionRange
    functionSourceFile: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc
    functionUses: 0
    functionsReached:
    - PR_ARRAY_SIZE
    - std::min
    - SSL_VersionRangeGetSupported
    - TestAgent::ConvertFromWireVersion
    - get
    - std::max
    - static_cast<uint16_t>
    linkageType: ''
    returnType: bool
    signature: bool GetVersionRange(SSLVersionRange* range_out, SSLProtocolVariant
      variant)
  - BBCount: 43
    BranchProfiles: []
    Callsites:
    - Dst: SSL_OptionSet
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:280,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:280,1
    - Dst: SSL_OptionSet
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:283,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:283,1
    - Dst: TestAgent::GetVersionRange
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:287,1
    - Dst: SSL_VersionRangeSet
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:289,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:289,1
    - Dst: SSL_VersionRangeGet
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:293,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:293,1
    - Dst: SSL_OptionSet
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:298,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:298,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:301,1
    - Dst: auto::empty
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:302,1
    - Dst: assert
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:303,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:303,1
    - Dst: SSL_OptionSet
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:305,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:305,1
    - Dst: SSL_SetNextProtoNego
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:308,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:309,1
    - Dst: reinterpret_cast<const unsigned char*>
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:309,1
    - Dst: auto::c_str
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:309,1
    - Dst: auto::size
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:310,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:315,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:316,1
    - Dst: auto::empty
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:317,1
    - Dst: auto::empty
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:319,1
    - Dst: auto::empty
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:322,1
    - Dst: std::transform
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:324,1
    - Dst: auto::begin
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:325,1
    - Dst: auto::end
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:325,1
    - Dst: std::back_inserter
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:325,1
    - Dst: static_cast<SSLSignatureScheme>
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:326,1
    - Dst: SSL_SignatureSchemePrefSet
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:328,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:329,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:329,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:330,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:330,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:334,1
    - Dst: SSL_OptionSet
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:335,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:335,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:339,1
    - Dst: SSL_OptionSet
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:340,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:340,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:344,1
    - Dst: SSL_OptionSet
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:345,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:345,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:349,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:350,1
    - Dst: assert
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:351,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:351,1
    - Dst: SSL_OptionSet
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:353,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:353,1
    - Dst: SSL_OptionSet
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:356,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:357,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:362,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:363,1
    - Dst: auto::empty
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:364,1
    - Dst: SSL_SetURL
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:365,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:365,1
    - Dst: auto::c_str
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:365,1
    - Dst: SSL_SetURL
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:368,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:368,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:373,1
    - Dst: auto::empty
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:374,1
    - Dst: ATOB_AsciiToData
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:376,1
    - Dst: auto::c_str
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:376,1
    - Dst: SSLExp_SetClientEchConfigs
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:377,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:377,1
    - Dst: free
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:379,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:382,1
    - Dst: SSL_OptionSet
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:383,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:383,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:387,1
    - Dst: SSL_OptionSet
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:388,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:388,1
    - Dst: SSL_OptionSet
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:395,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:395,1
    - Dst: SSL_OptionSet
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:399,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:399,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:403,1
    - Dst: SSLExp_EnableTls13BackendEch
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:405,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:405,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:409,1
    - Dst: SSLExp_EnableTls13GreaseEch
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:410,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:410,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:414,1
    - Dst: SSL_OptionSet
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:415,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:415,1
    - Dst: TestAgent::ConfigureGroups
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:419,1
    - Dst: TestAgent::ConfigureCiphers
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:421,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 118
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (!cfg_.get<bool>("server"))
      pos:
        line_end: 302
        line_start: 302
        source_file: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc
    - condition: (cfg_.get<bool>("server"))
      pos:
        line_end: 350
        line_start: 350
        source_file: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc
    constantsTouched: []
    func_position:
      end: 424
      start: 278
    functionDepth: 6
    functionLinenumber: 278
    functionLinenumberEnd: 424
    functionName: TestAgent::SetupOptions
    functionSourceFile: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc
    functionUses: 1
    functionsReached:
    - std::vector::data
    - std::vector::size
    - std::transform
    - reinterpret_cast<const unsigned char*>
    - SSLExp_EnableTls13GreaseEch
    - SSLExp_SetClientEchConfigs
    - assert
    - SSL_VersionRangeGet
    - SSL_OptionSet
    - std::back_inserter
    - SSLExp_EnableTls13BackendEch
    - SSL_VersionRangeSet
    - ATOB_AsciiToData
    - TestAgent::ConfigureCiphers
    - static_cast<unsigned int>
    - SSL_SetURL
    - TestAgent::GetVersionRange
    - get
    - TestAgent::ConfigureGroups
    - auto::begin
    - free
    - auto::c_str
    - auto::end
    - SSL_SignatureSchemePrefSet
    - auto::empty
    - SSL_SetNextProtoNego
    - auto::size
    - static_cast<SSLSignatureScheme>
    linkageType: ''
    returnType: bool
    signature: bool SetupOptions()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:427,1
    - Dst: auto::size
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:428,1
    - Dst: std::transform
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:430,1
    - Dst: auto::begin
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:431,1
    - Dst: auto::end
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:431,1
    - Dst: std::back_inserter
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:431,1
    - Dst: static_cast<SSLNamedGroup>
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:432,1
    - Dst: SSL_NamedGroupConfig
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:434,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:434,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:434,1
    - Dst: NSS_SetAlgorithmPolicy
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:442,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 426
    functionDepth: 3
    functionLinenumber: 426
    functionLinenumberEnd: 448
    functionName: TestAgent::ConfigureGroups
    functionSourceFile: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc
    functionUses: 1
    functionsReached:
    - static_cast<SSLNamedGroup>
    - SSL_NamedGroupConfig
    - auto::end
    - std::vector::size
    - std::transform
    - auto::size
    - get
    - std::back_inserter
    - NSS_SetAlgorithmPolicy
    - auto::begin
    linkageType: ''
    returnType: bool
    signature: bool ConfigureGroups()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:451,1
    - Dst: auto::empty
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:453,1
    - Dst: TestAgent::EnableNonExportCiphers
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:454,1
    - Dst: SSL_GetCipherSuiteInfo
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:460,1
    - Dst: auto::find
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:468,1
    - Dst: SSL_CipherPrefSet
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:470,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:470,1
    - Dst: SSL_CipherPrefSet
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:473,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:473,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 450
    functionDepth: 3
    functionLinenumber: 450
    functionLinenumberEnd: 481
    functionName: TestAgent::ConfigureCiphers
    functionSourceFile: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc
    functionUses: 1
    functionsReached:
    - TestAgent::EnableNonExportCiphers
    - auto::empty
    - SSL_CipherPrefSet
    - SSL_GetCipherSuiteInfo
    - get
    - auto::find
    linkageType: ''
    returnType: bool
    signature: bool ConfigureCiphers()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_GetCipherSuiteInfo
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:487,1
    - Dst: SSL_CipherPrefSet
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:493,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:493,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 483
    functionDepth: 3
    functionLinenumber: 483
    functionLinenumberEnd: 499
    functionName: TestAgent::EnableNonExportCiphers
    functionSourceFile: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc
    functionUses: 1
    functionsReached:
    - get
    - SSL_CipherPrefSet
    - SSL_GetCipherSuiteInfo
    linkageType: ''
    returnType: bool
    signature: bool EnableNonExportCiphers()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - arg
    - fd
    - checksig
    - isServer
    argTypes:
    - void*
    - PRFileDesc*
    - PRBool
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 505
    functionName: TestAgent::AuthCertificateHook
    functionSourceFile: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus AuthCertificateHook(void* arg, PRFileDesc* fd,\n                                       PRBool
      checksig, PRBool isServer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<TestAgent*>
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:511,1
    - Dst: CERT_DupCertificate
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:512,1
    - Dst: TestAgent*::cert_::get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:512,1
    - Dst: SECKEY_CopyPrivateKey
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:513,1
    - Dst: TestAgent*::key_::get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - self
    - fd
    - caNames
    - cert
    - privKey
    argTypes:
    - void*
    - PRFileDesc*
    - CERTDistNames*
    - CERTCertificate**
    - SECKEYPrivateKey**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 507
    functionDepth: 2
    functionLinenumber: 507
    functionLinenumberEnd: 515
    functionName: TestAgent::GetClientAuthDataHook
    functionSourceFile: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc
    functionUses: 0
    functionsReached:
    - TestAgent*::key_::get
    - static_cast<TestAgent*>
    - TestAgent*::cert_::get
    - CERT_DupCertificate
    - SECKEY_CopyPrivateKey
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus GetClientAuthDataHook(void* self, PRFileDesc* fd,\n                                         CERTDistNames*
      caNames,\n                                         CERTCertificate** cert,\n
      \                                        SECKEYPrivateKey** privKey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_ForceHandshake
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:517,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 517
    functionDepth: 4
    functionLinenumber: 517
    functionLinenumberEnd: 517
    functionName: TestAgent::Handshake
    functionSourceFile: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc
    functionUses: 0
    functionsReached:
    - SSL_ForceHandshake
    - get
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus Handshake()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PR_Read
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:524,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:524,1
    - Dst: PR_Write
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:536,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:536,1
    - Dst: PORT_SetError
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:539,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 521
    functionDepth: 1
    functionLinenumber: 521
    functionLinenumberEnd: 543
    functionName: TestAgent::ReadWrite
    functionSourceFile: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc
    functionUses: 0
    functionsReached:
    - PR_Read
    - get
    - PORT_SetError
    - PR_Write
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus ReadWrite()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:553,1
    - Dst: PR_Write
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:554,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:554,1
    - Dst: PORT_SetError
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:557,1
    - Dst: PR_Read
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:563,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:563,1
    - Dst: PORT_SetError
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:569,1
    - Dst: PORT_SetError
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:576,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 547
    functionDepth: 1
    functionLinenumber: 547
    functionLinenumberEnd: 583
    functionName: TestAgent::WriteRead
    functionSourceFile: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc
    functionUses: 0
    functionsReached:
    - memset
    - PORT_SetError
    - PR_Read
    - PR_Write
    - get
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus WriteRead()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_GetNextProto
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:591,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:591,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:592,1
    - Dst: PR_GetError
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:595,1
    - Dst: FormatError
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:596,1
    - Dst: assert
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:601,1
    - Dst: std::string
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:602,1
    - Dst: std::string
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:604,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - expectedALPN
    argTypes:
    - std::string
    assertStmts:
    - condition: (chosen_len <= sizeof(chosen))
      pos:
        line_end: 600
        line_start: 600
        source_file: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc
    constantsTouched: []
    func_position:
      end: 609
      start: 585
    functionDepth: 3
    functionLinenumber: 585
    functionLinenumberEnd: 609
    functionName: TestAgent::CheckALPN
    functionSourceFile: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc
    functionUses: 0
    functionsReached:
    - FormatError
    - reinterpret_cast<unsigned char*>
    - assert
    - std::string
    - PR_GetError
    - SSL_GetNextProto
    - get
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus CheckALPN(std::string expectedALPN)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_SetNextProtoNego
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:612,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:613,1
    - Dst: reinterpret_cast<const unsigned char*>
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:613,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:613,1
    - Dst: std::string::size
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alpn
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 611
    functionDepth: 4
    functionLinenumber: 611
    functionLinenumberEnd: 615
    functionName: TestAgent::AdvertiseALPN
    functionSourceFile: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc
    functionUses: 0
    functionsReached:
    - std::string::size
    - SSL_SetNextProtoNego
    - std::string::c_str
    - get
    - reinterpret_cast<const unsigned char*>
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus AdvertiseALPN(std::string alpn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PR_SetError
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:624,1
    - Dst: PR_SetError
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:630,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:634,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - input
    - output
    argTypes:
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 621
    functionDepth: 1
    functionLinenumber: 621
    functionLinenumberEnd: 650
    functionName: TestAgent::certCompressionShrinkEncode
    functionSourceFile: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc
    functionUses: 0
    functionsReached:
    - PR_SetError
    - SECITEM_AllocItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus certCompressionShrinkEncode(const SECItem* input,\n                                               SECItem*
      output)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_SetError
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:657,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 4
    argNames:
    - input
    - output
    - outputLen
    - usedLen
    argTypes:
    - SECItem*
    - unsigned char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 652
    functionDepth: 1
    functionLinenumber: 652
    functionLinenumberEnd: 673
    functionName: TestAgent::certCompressionShrinkDecode
    functionSourceFile: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc
    functionUses: 0
    functionsReached:
    - PR_SetError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus certCompressionShrinkDecode(const SECItem* input,\n                                               unsigned
      char* output,\n                                               size_t outputLen,\n
      \                                              size_t* usedLen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_SetError
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:682,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:686,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - input
    - output
    argTypes:
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 679
    functionDepth: 1
    functionLinenumber: 679
    functionLinenumberEnd: 701
    functionName: TestAgent::certCompressionExpandEncode
    functionSourceFile: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc
    functionUses: 0
    functionsReached:
    - PR_SetError
    - SECITEM_AllocItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus certCompressionExpandEncode(const SECItem* input,\n                                               SECItem*
      output)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PR_SetError
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:708,1
    - Dst: PR_SetError
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:713,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 4
    argNames:
    - input
    - output
    - outputLen
    - usedLen
    argTypes:
    - SECItem*
    - unsigned char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 703
    functionDepth: 1
    functionLinenumber: 703
    functionLinenumberEnd: 735
    functionName: TestAgent::certCompressionExpandDecode
    functionSourceFile: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc
    functionUses: 0
    functionsReached:
    - PR_SetError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus certCompressionExpandDecode(const SECItem* input,\n                                               unsigned
      char* output,\n                                               size_t outputLen,\n
      \                                              size_t* usedLen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PR_SetError
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:744,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:748,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:754,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - input
    - output
    argTypes:
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 741
    functionDepth: 9
    functionLinenumber: 741
    functionLinenumberEnd: 765
    functionName: TestAgent::certCompressionRandomEncode
    functionSourceFile: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc
    functionUses: 0
    functionsReached:
    - PR_SetError
    - PK11_GenerateRandom
    - SECITEM_AllocItem
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus certCompressionRandomEncode(const SECItem* input,\n                                               SECItem*
      output)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PR_SetError
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:772,1
    - Dst: PR_SetError
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:777,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - input
    - output
    - outputLen
    - usedLen
    argTypes:
    - SECItem*
    - unsigned char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 767
    functionDepth: 1
    functionLinenumber: 767
    functionLinenumberEnd: 792
    functionName: TestAgent::certCompressionRandomDecode
    functionSourceFile: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc
    functionUses: 0
    functionsReached:
    - PR_SetError
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus certCompressionRandomDecode(const SECItem* input,\n                                               unsigned
      char* output,\n                                               size_t outputLen,\n
      \                                              size_t* usedLen)"
  - BBCount: 61
    BranchProfiles: []
    Callsites:
    - Dst: ssl_FindSocket
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:798,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:798,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:802,1
    - Dst: SSLExp_SetCertificateCompressionAlgorithm
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:817,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:817,1
    - Dst: SSLExp_SetCertificateCompressionAlgorithm
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:818,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:818,1
    - Dst: SSLExp_SetCertificateCompressionAlgorithm
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:819,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:819,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:825,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:827,1
    - Dst: auto::empty
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:828,1
    - Dst: ATOB_AsciiToData
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:830,1
    - Dst: auto::c_str
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:830,1
    - Dst: SSLExp_SetClientEchConfigs
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:831,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:831,1
    - Dst: PR_GetError
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:833,1
    - Dst: FormatError
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:835,1
    - Dst: free
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:837,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:840,1
    - Dst: std::string::empty
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:841,1
    - Dst: TestAgent::AdvertiseALPN
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:842,1
    - Dst: PR_GetError
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:843,1
    - Dst: FormatError
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:845,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:852,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:853,1
    - Dst: std::string::empty
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:854,1
    - Dst: TestAgent::AdvertiseALPN
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:855,1
    - Dst: PR_GetError
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:856,1
    - Dst: FormatError
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:858,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:865,1
    - Dst: ssl_Get1stHandshakeLock
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:866,1
    - Dst: ssl_BeginClientHandshake
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:867,1
    - Dst: ssl_Release1stHandshakeLock
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:868,1
    - Dst: PR_GetError
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:870,1
    - Dst: FormatError
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:871,1
    - Dst: SSL_GetPreliminaryChannelInfo
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:879,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:879,1
    - Dst: PR_GetError
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:882,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:889,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:897,1
    - Dst: ssl_SecureWrite
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:899,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:906,1
    - Dst: TestAgent::Handshake
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:916,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:920,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:929,1
    - Dst: std::string::empty
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:930,1
    - Dst: SSLExp_GetEchRetryConfigs
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:934,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:934,1
    - Dst: BTOA_DataToAscii
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:942,1
    - Dst: StringRemoveNewlines
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:944,1
    - Dst: PR_GetError
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:956,1
    - Dst: FormatError
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:957,1
    - Dst: ssl_SecureWrite
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:967,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:976,1
    - Dst: TestAgent::WriteRead
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:977,1
    - Dst: PR_GetError
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:979,1
    - Dst: FormatError
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:980,1
    - Dst: TestAgent::ReadWrite
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:985,1
    - Dst: PR_GetError
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:987,1
    - Dst: FormatError
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:988,1
    - Dst: SSL_GetChannelInfo
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:995,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:995,1
    - Dst: PR_GetError
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:997,1
    - Dst: FormatError
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:998,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1003,1
    - Dst: static_cast<SSLSignatureScheme>
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1005,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1012,1
    - Dst: static_cast<SSLNamedGroup>
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1014,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1022,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1029,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1036,1
    - Dst: std::string::empty
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1037,1
    - Dst: TestAgent::CheckALPN
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1038,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1046,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1051,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1058,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1064,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1073,1
    - Dst: std::string::empty
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1074,1
    - Dst: TestAgent::CheckALPN
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1075,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1081,1
    - Dst: std::string::empty
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1082,1
    - Dst: TestAgent::CheckALPN
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1083,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1092,1
    - Dst: get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1099,1
    - Dst: std::string::empty
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1100,1
    - Dst: TestAgent::CheckALPN
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1101,1
    CyclomaticComplexity: 64
    EdgeCount: 64
    ICount: 204
    argCount: 1
    argNames:
    - resuming
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1109
      start: 794
    functionDepth: 6
    functionLinenumber: 794
    functionLinenumberEnd: 1109
    functionName: TestAgent::DoExchange
    functionSourceFile: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc
    functionUses: 0
    functionsReached:
    - SSLExp_SetCertificateCompressionAlgorithm
    - TestAgent::WriteRead
    - ssl_BeginClientHandshake
    - SSL_GetChannelInfo
    - TestAgent::CheckALPN
    - std::string::empty
    - ssl_SecureWrite
    - SSLExp_SetClientEchConfigs
    - ssl_Release1stHandshakeLock
    - ssl_FindSocket
    - ATOB_AsciiToData
    - BTOA_DataToAscii
    - ssl_Get1stHandshakeLock
    - TestAgent::ReadWrite
    - get
    - FormatError
    - free
    - auto::c_str
    - static_cast<SSLNamedGroup>
    - auto::empty
    - SSL_GetPreliminaryChannelInfo
    - TestAgent::AdvertiseALPN
    - SSLExp_GetEchRetryConfigs
    - StringRemoveNewlines
    - PR_GetError
    - TestAgent::Handshake
    - static_cast<SSLSignatureScheme>
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus DoExchange(bool resuming)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Config::Config
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1120,1
    - Dst: std::unique_ptr::AddEntry
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1122,1
    - Dst: std::unique_ptr::AddEntry
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1123,1
    - Dst: std::unique_ptr::AddEntry
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1124,1
    - Dst: std::unique_ptr::AddEntry
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1125,1
    - Dst: std::unique_ptr::AddEntry
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1126,1
    - Dst: std::unique_ptr::AddEntry
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1127,1
    - Dst: std::unique_ptr::AddEntry
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1128,1
    - Dst: std::unique_ptr::AddEntry
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1129,1
    - Dst: std::unique_ptr::AddEntry
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1130,1
    - Dst: std::unique_ptr::AddEntry
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1132,1
    - Dst: std::unique_ptr::AddEntry
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1134,1
    - Dst: std::unique_ptr::AddEntry
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1135,1
    - Dst: std::unique_ptr::AddEntry
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1136,1
    - Dst: std::unique_ptr::AddEntry
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1137,1
    - Dst: std::unique_ptr::AddEntry
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1138,1
    - Dst: std::unique_ptr::AddEntry
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1139,1
    - Dst: std::unique_ptr::AddEntry
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1140,1
    - Dst: std::unique_ptr::AddEntry
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1141,1
    - Dst: std::unique_ptr::AddEntry
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1142,1
    - Dst: std::unique_ptr::AddEntry
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1143,1
    - Dst: std::unique_ptr::AddEntry
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1144,1
    - Dst: std::unique_ptr::AddEntry
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1145,1
    - Dst: std::unique_ptr::AddEntry
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1146,1
    - Dst: std::unique_ptr::AddEntry
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1147,1
    - Dst: std::unique_ptr::AddEntry
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1148,1
    - Dst: std::unique_ptr::AddEntry
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1149,1
    - Dst: std::vector<int>
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1149,1
    - Dst: std::unique_ptr::AddEntry
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1150,1
    - Dst: std::vector<int>
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1150,1
    - Dst: std::unique_ptr::AddEntry
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1151,1
    - Dst: std::unique_ptr::AddEntry
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1152,1
    - Dst: std::unique_ptr::AddEntry
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1153,1
    - Dst: std::unique_ptr::AddEntry
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1154,1
    - Dst: std::unique_ptr::AddEntry
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1155,1
    - Dst: std::unique_ptr::AddEntry
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1156,1
    - Dst: std::unique_ptr::AddEntry
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1157,1
    - Dst: std::unique_ptr::AddEntry
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1158,1
    - Dst: std::unique_ptr::AddEntry
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1159,1
    - Dst: std::unique_ptr::AddEntry
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1160,1
    - Dst: std::unique_ptr::AddEntry
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1161,1
    - Dst: std::unique_ptr::AddEntry
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1162,1
    - Dst: std::unique_ptr::AddEntry
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1163,1
    - Dst: std::unique_ptr::AddEntry
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1164,1
    - Dst: std::unique_ptr::AddEntry
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1165,1
    - Dst: std::unique_ptr::AddEntry
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1167,1
    - Dst: std::unique_ptr::AddEntry
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1169,1
    - Dst: std::unique_ptr::AddEntry
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1170,1
    - Dst: std::unique_ptr::AddEntry
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1171,1
    - Dst: std::unique_ptr::AddEntry
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1172,1
    - Dst: std::unique_ptr::AddEntry
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1173,1
    - Dst: std::unique_ptr::AddEntry
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1174,1
    - Dst: std::unique_ptr::AddEntry
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1176,1
    - Dst: std::unique_ptr::AddEntry
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1177,1
    - Dst: std::unique_ptr::AddEntry
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1178,1
    - Dst: std::vector<int>
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1178,1
    - Dst: std::unique_ptr::AddEntry
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1179,1
    - Dst: std::unique_ptr::AddEntry
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1180,1
    - Dst: std::unique_ptr::ParseArgs
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1182,1
    - Dst: std::move
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1193,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 65
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1194
      start: 1119
    functionDepth: 1
    functionLinenumber: 1119
    functionLinenumberEnd: 1194
    functionName: ReadConfig
    functionSourceFile: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc
    functionUses: 0
    functionsReached:
    - std::unique_ptr::ParseArgs
    - std::unique_ptr::AddEntry
    - Config::Config
    - std::move
    - std::vector<int>
    linkageType: ''
    returnType: std::unique_ptr<const Config>
    signature: std::unique_ptr<const Config> ReadConfig(int argc, char** argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestAgent::Create
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1197,1
    - Dst: std::unique_ptr::DoExchange
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' cfg'
    argTypes:
    - std::unique_ptr<const Config>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1199
      start: 1196
    functionDepth: 2
    functionLinenumber: 1196
    functionLinenumberEnd: 1199
    functionName: RunCycle
    functionSourceFile: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc
    functionUses: 0
    functionsReached:
    - TestAgent::Create
    - std::unique_ptr::DoExchange
    linkageType: ''
    returnType: bool
    signature: bool RunCycle(std::unique_ptr<const Config>& cfg, bool resuming = false)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - success
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1211
      start: 1201
    functionDepth: 0
    functionLinenumber: 1201
    functionLinenumberEnd: 1211
    functionName: GetExitCode
    functionSourceFile: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetExitCode(bool success)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ReadConfig
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1214,1
    - Dst: GetExitCode
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1216,1
    - Dst: std::unique_ptr::get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1219,1
    - Dst: std::unique_ptr::get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1224,1
    - Dst: SSL_ConfigServerSessionIDCache
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1225,1
    - Dst: NSS_NoDB_Init
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1231,1
    - Dst: RunCycle
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1236,1
    - Dst: std::unique_ptr::get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1238,1
    - Dst: RunCycle
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1241,1
    - Dst: SSL_ClearSessionCache
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1244,1
    - Dst: std::unique_ptr::get
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1246,1
    - Dst: SSL_ShutdownServerSessionIDCache
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1247,1
    - Dst: NSS_Shutdown
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1250,1
    - Dst: GetExitCode
      Src: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc:1254,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 1213
    functionDepth: 14
    functionLinenumber: 1213
    functionLinenumberEnd: 1255
    functionName: main
    functionSourceFile: /src/nss/gtests/nss_bogo_shim/nss_bogo_shim.cc
    functionUses: 43
    functionsReached:
    - NSS_NoDB_Init
    - SSL_ClearSessionCache
    - RunCycle
    - SSL_ConfigServerSessionIDCache
    - std::unique_ptr::get
    - SSL_ShutdownServerSessionIDCache
    - NSS_Shutdown
    - ReadConfig
    - GetExitCode
    linkageType: ''
    returnType: int
    signature: int main(int argc, char** argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_FreeArena
      Src: /src/nss/gtests/freebl_gtest/rsa_unittest.cc:17,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 19
    functionName: operator()(T* ptr)
    functionSourceFile: /src/nss/gtests/freebl_gtest/rsa_unittest.cc
    functionUses: 0
    functionsReached:
    - PORT_FreeArena
    linkageType: ''
    returnType: void
    signature: void operator()(T* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSA_NewKey
      Src: /src/nss/gtests/freebl_gtest/rsa_unittest.cc:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - keySizeInBits
    - publicExponent
    argTypes:
    - int
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 35
    functionName: RSATest::CreateKeyWithExponent
    functionSourceFile: /src/nss/gtests/freebl_gtest/rsa_unittest.cc
    functionUses: 0
    functionsReached:
    - RSA_NewKey
    linkageType: ''
    returnType: RSAPrivateKey
    signature: "RSAPrivateKey * CreateKeyWithExponent(int keySizeInBits,\n                                       unsigned
      char publicExponent)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CreateKeyWithExponent
      Src: /src/nss/gtests/freebl_gtest/rsa_unittest.cc:39,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/freebl_gtest/rsa_unittest.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/rsa_unittest.cc
    functionUses: 0
    functionsReached:
    - CreateKeyWithExponent
    - ASSERT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST_F(RSATest, expOneTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CreateKeyWithExponent
      Src: /src/nss/gtests/freebl_gtest/rsa_unittest.cc:43,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/freebl_gtest/rsa_unittest.cc:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/rsa_unittest.cc
    functionUses: 0
    functionsReached:
    - CreateKeyWithExponent
    - ASSERT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST_F(RSATest, expTwoTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CreateKeyWithExponent
      Src: /src/nss/gtests/freebl_gtest/rsa_unittest.cc:47,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/freebl_gtest/rsa_unittest.cc:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/rsa_unittest.cc
    functionUses: 0
    functionsReached:
    - CreateKeyWithExponent
    - ASSERT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST_F(RSATest, expFourTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CreateKeyWithExponent
      Src: /src/nss/gtests/freebl_gtest/rsa_unittest.cc:51,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/freebl_gtest/rsa_unittest.cc:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/rsa_unittest.cc
    functionUses: 0
    functionsReached:
    - CreateKeyWithExponent
    - ASSERT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST_F(RSATest, WrongKeysizeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CreateKeyWithExponent
      Src: /src/nss/gtests/freebl_gtest/rsa_unittest.cc:56,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/freebl_gtest/rsa_unittest.cc:58,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/freebl_gtest/rsa_unittest.cc:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 62
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/rsa_unittest.cc
    functionUses: 0
    functionsReached:
    - CreateKeyWithExponent
    - ASSERT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST_F(RSATest, expThreeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSA_NewKey
      Src: /src/nss/gtests/freebl_gtest/rsa_unittest.cc:67,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/freebl_gtest/rsa_unittest.cc:68,1
    - Dst: RSA_DecryptBlock
      Src: /src/nss/gtests/freebl_gtest/rsa_unittest.cc:75,1
    - Dst: ScopedRSAPrivateKey::get
      Src: /src/nss/gtests/freebl_gtest/rsa_unittest.cc:75,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/rsa_unittest.cc:77,1
    - Dst: RSA_DecryptBlock
      Src: /src/nss/gtests/freebl_gtest/rsa_unittest.cc:83,1
    - Dst: ScopedRSAPrivateKey::get
      Src: /src/nss/gtests/freebl_gtest/rsa_unittest.cc:83,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/rsa_unittest.cc:85,1
    - Dst: EXPECT_LE
      Src: /src/nss/gtests/freebl_gtest/rsa_unittest.cc:87,1
    - Dst: RSA_DecryptBlock
      Src: /src/nss/gtests/freebl_gtest/rsa_unittest.cc:94,1
    - Dst: ScopedRSAPrivateKey::get
      Src: /src/nss/gtests/freebl_gtest/rsa_unittest.cc:94,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/rsa_unittest.cc:96,1
    - Dst: EXPECT_LE
      Src: /src/nss/gtests/freebl_gtest/rsa_unittest.cc:98,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/rsa_unittest.cc:101,1
    - Dst: memcmp
      Src: /src/nss/gtests/freebl_gtest/rsa_unittest.cc:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 102
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/rsa_unittest.cc
    functionUses: 0
    functionsReached:
    - ScopedRSAPrivateKey::get
    - ASSERT_TRUE
    - RSA_DecryptBlock
    - EXPECT_LE
    - RSA_NewKey
    - memcmp
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(RSATest, DecryptBlockTestErrors)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/dh_unittest.cc:15,1
    - Dst: DH_GenParam
      Src: /src/nss/gtests/freebl_gtest/dh_unittest.cc:15,1
    - Dst: PORT_FreeArena
      Src: /src/nss/gtests/freebl_gtest/dh_unittest.cc:16,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 18
    functionName: nss_test::DHTest::TestGenParamSuccess
    functionSourceFile: /src/nss/gtests/freebl_gtest/dh_unittest.cc
    functionUses: 0
    functionsReached:
    - DH_GenParam
    - PORT_FreeArena
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TestGenParamSuccess(int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestGenParamSuccess
      Src: /src/nss/gtests/freebl_gtest/dh_unittest.cc:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/dh_unittest.cc
    functionUses: 0
    functionsReached:
    - TestGenParamSuccess
    linkageType: ''
    returnType: void
    signature: void TEST_F(DHTest, DhGenParamSuccessTest16)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestGenParamSuccess
      Src: /src/nss/gtests/freebl_gtest/dh_unittest.cc:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/dh_unittest.cc
    functionUses: 0
    functionsReached:
    - TestGenParamSuccess
    linkageType: ''
    returnType: void
    signature: void TEST_F(DHTest, DhGenParamSuccessTest224)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestGenParamSuccess
      Src: /src/nss/gtests/freebl_gtest/dh_unittest.cc:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/dh_unittest.cc
    functionUses: 0
    functionsReached:
    - TestGenParamSuccess
    linkageType: ''
    returnType: void
    signature: void TEST_F(DHTest, DhGenParamSuccessTest256)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/dh_unittest.cc:15,1
    - Dst: DH_GenParam
      Src: /src/nss/gtests/freebl_gtest/dh_unittest.cc:15,1
    - Dst: PORT_FreeArena
      Src: /src/nss/gtests/freebl_gtest/dh_unittest.cc:16,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 18
    functionName: nss_test::DHTest::TestGenParamSuccess
    functionSourceFile: /src/nss/gtests/freebl_gtest/dh_unittest.cc
    functionUses: 0
    functionsReached:
    - DH_GenParam
    - PORT_FreeArena
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TestGenParamSuccess(int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestGenParamSuccess
      Src: /src/nss/gtests/freebl_gtest/dh_unittest.cc:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/dh_unittest.cc
    functionUses: 0
    functionsReached:
    - TestGenParamSuccess
    linkageType: ''
    returnType: void
    signature: void TEST_F(DHTest, DhGenParamSuccessTest16)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestGenParamSuccess
      Src: /src/nss/gtests/freebl_gtest/dh_unittest.cc:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/dh_unittest.cc
    functionUses: 0
    functionsReached:
    - TestGenParamSuccess
    linkageType: ''
    returnType: void
    signature: void TEST_F(DHTest, DhGenParamSuccessTest224)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestGenParamSuccess
      Src: /src/nss/gtests/freebl_gtest/dh_unittest.cc:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/dh_unittest.cc
    functionUses: 0
    functionsReached:
    - TestGenParamSuccess
    linkageType: ''
    returnType: void
    signature: void TEST_F(DHTest, DhGenParamSuccessTest256)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SHAKE_128_DestroyContext
      Src: /src/nss/gtests/freebl_gtest/shake_unittest.cc:24,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: operator()(T* ptr)
    functionSourceFile: /src/nss/gtests/freebl_gtest/shake_unittest.cc
    functionUses: 0
    functionsReached:
    - SHAKE_128_DestroyContext
    linkageType: ''
    returnType: void
    signature: void operator()(T* ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SHAKE_256_DestroyContext
      Src: /src/nss/gtests/freebl_gtest/shake_unittest.cc:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: operator()(T* ptr)
    functionSourceFile: /src/nss/gtests/freebl_gtest/shake_unittest.cc
    functionUses: 0
    functionsReached:
    - SHAKE_256_DestroyContext
    linkageType: ''
    returnType: void
    signature: void operator()(T* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/freebl_gtest/shake_unittest.cc:49,1
    - Dst: SHAKE_128_Hash
      Src: /src/nss/gtests/freebl_gtest/shake_unittest.cc:52,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/shake_unittest.cc:52,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/shake_unittest.cc:56,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/shake_unittest.cc:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 58
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/shake_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - std::vector::data
    - ASSERT_TRUE
    - SHAKE_128_Hash
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(SHAKE_128Tests, TestVector1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/freebl_gtest/shake_unittest.cc:62,1
    - Dst: SHAKE_128_Hash
      Src: /src/nss/gtests/freebl_gtest/shake_unittest.cc:65,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/shake_unittest.cc:65,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/shake_unittest.cc:68,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/shake_unittest.cc:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 70
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/shake_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - std::vector::data
    - ASSERT_TRUE
    - SHAKE_128_Hash
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(SHAKE_128Tests, TestVector2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/freebl_gtest/shake_unittest.cc:74,1
    - Dst: SHAKE_256_Hash
      Src: /src/nss/gtests/freebl_gtest/shake_unittest.cc:77,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/shake_unittest.cc:77,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/shake_unittest.cc:81,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/shake_unittest.cc:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 83
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/shake_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - std::vector::data
    - SHAKE_256_Hash
    - ASSERT_TRUE
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(SHAKE_256Tests, TestVector1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/freebl_gtest/shake_unittest.cc:87,1
    - Dst: SHAKE_256_Hash
      Src: /src/nss/gtests/freebl_gtest/shake_unittest.cc:90,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/shake_unittest.cc:90,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/shake_unittest.cc:93,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/shake_unittest.cc:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 95
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/shake_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - std::vector::data
    - SHAKE_256_Hash
    - ASSERT_TRUE
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(SHAKE_256Tests, TestVector2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/nss/gtests/freebl_gtest/cmac_unittests.cc:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - actual
    - expected
    - length
    argTypes:
    - uint8_t*
    - uint8_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 19
    functionName: CmacAesTest::Compare
    functionSourceFile: /src/nss/gtests/freebl_gtest/cmac_unittests.cc
    functionUses: 0
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: bool
    signature: "bool Compare(const uint8_t *actual, const uint8_t *expected,\n               unsigned
      int length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/cmac_unittests.cc:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/cmac_unittests.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(CmacAesTest, CreateInvalidSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArray
      Src: /src/nss/gtests/freebl_gtest/cmac_unittests.cc:29,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/freebl_gtest/cmac_unittests.cc:32,1
    - Dst: PORT_Free
      Src: /src/nss/gtests/freebl_gtest/cmac_unittests.cc:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 34
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/cmac_unittests.cc
    functionUses: 0
    functionsReached:
    - PORT_Free
    - PORT_NewArray
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(CmacAesTest, CreateRightSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/freebl_gtest/cmac_unittests.cc:102,1
    - Dst: CMAC_Begin
      Src: /src/nss/gtests/freebl_gtest/cmac_unittests.cc:106,1
    - Dst: ScopedCMACContext::get
      Src: /src/nss/gtests/freebl_gtest/cmac_unittests.cc:106,1
    - Dst: CMAC_Update
      Src: /src/nss/gtests/freebl_gtest/cmac_unittests.cc:110,1
    - Dst: ScopedCMACContext::get
      Src: /src/nss/gtests/freebl_gtest/cmac_unittests.cc:110,1
    - Dst: CMAC_Finish
      Src: /src/nss/gtests/freebl_gtest/cmac_unittests.cc:114,1
    - Dst: ScopedCMACContext::get
      Src: /src/nss/gtests/freebl_gtest/cmac_unittests.cc:114,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/freebl_gtest/cmac_unittests.cc:116,1
    - Dst: Compare
      Src: /src/nss/gtests/freebl_gtest/cmac_unittests.cc:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 119
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/cmac_unittests.cc
    functionUses: 0
    functionsReached:
    - CMAC_Update
    - CMAC_Finish
    - ASSERT_TRUE
    - ScopedCMACContext::get
    - Compare
    - CMAC_Begin
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(CmacAesTest, AesNistAligned)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/freebl_gtest/cmac_unittests.cc:127,1
    - Dst: CMAC_Begin
      Src: /src/nss/gtests/freebl_gtest/cmac_unittests.cc:142,1
    - Dst: ScopedCMACContext::get
      Src: /src/nss/gtests/freebl_gtest/cmac_unittests.cc:142,1
    - Dst: CMAC_Update
      Src: /src/nss/gtests/freebl_gtest/cmac_unittests.cc:144,1
    - Dst: ScopedCMACContext::get
      Src: /src/nss/gtests/freebl_gtest/cmac_unittests.cc:144,1
    - Dst: CMAC_Update
      Src: /src/nss/gtests/freebl_gtest/cmac_unittests.cc:145,1
    - Dst: ScopedCMACContext::get
      Src: /src/nss/gtests/freebl_gtest/cmac_unittests.cc:145,1
    - Dst: CMAC_Finish
      Src: /src/nss/gtests/freebl_gtest/cmac_unittests.cc:149,1
    - Dst: ScopedCMACContext::get
      Src: /src/nss/gtests/freebl_gtest/cmac_unittests.cc:149,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/freebl_gtest/cmac_unittests.cc:151,1
    - Dst: Compare
      Src: /src/nss/gtests/freebl_gtest/cmac_unittests.cc:151,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 155
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/cmac_unittests.cc
    functionUses: 0
    functionsReached:
    - CMAC_Update
    - CMAC_Finish
    - ASSERT_TRUE
    - ScopedCMACContext::get
    - Compare
    - CMAC_Begin
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(CmacAesTest, AesNistUnaligned)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/freebl_gtest/cmac_unittests.cc:163,1
    - Dst: CMAC_Begin
      Src: /src/nss/gtests/freebl_gtest/cmac_unittests.cc:174,1
    - Dst: ScopedCMACContext::get
      Src: /src/nss/gtests/freebl_gtest/cmac_unittests.cc:174,1
    - Dst: CMAC_Update
      Src: /src/nss/gtests/freebl_gtest/cmac_unittests.cc:176,1
    - Dst: ScopedCMACContext::get
      Src: /src/nss/gtests/freebl_gtest/cmac_unittests.cc:176,1
    - Dst: CMAC_Finish
      Src: /src/nss/gtests/freebl_gtest/cmac_unittests.cc:180,1
    - Dst: ScopedCMACContext::get
      Src: /src/nss/gtests/freebl_gtest/cmac_unittests.cc:180,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/freebl_gtest/cmac_unittests.cc:182,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/freebl_gtest/cmac_unittests.cc:183,1
    - Dst: Compare
      Src: /src/nss/gtests/freebl_gtest/cmac_unittests.cc:183,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 187
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/cmac_unittests.cc
    functionUses: 0
    functionsReached:
    - CMAC_Update
    - CMAC_Finish
    - ASSERT_TRUE
    - ScopedCMACContext::get
    - Compare
    - CMAC_Begin
    linkageType: ''
    returnType: void
    signature: void TEST_F(CmacAesTest, AesNistTruncated)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' s'
    - to_find
    argTypes:
    - std::string
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: nss_test::contains
    functionSourceFile: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc
    functionUses: 0
    functionsReached:
    - find
    linkageType: ''
    returnType: bool
    signature: bool contains(std::string& s, const char* to_find)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::find_first_not_of
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:38,1
    - Dst: std::string::find_last_not_of
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:42,1
    - Dst: std::string::substr
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 45
    functionName: nss_test::trim
    functionSourceFile: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc
    functionUses: 0
    functionsReached:
    - std::string::substr
    - std::string::find_last_not_of
    - std::string::find_first_not_of
    linkageType: ''
    returnType: std::string
    signature: std::string trim(std::string str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:48,1
    - Dst: assert
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:49,1
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:50,1
    - Dst: nss_test::trim
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:50,1
    - Dst: substr
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:50,1
    - Dst: find
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::string
    assertStmts:
    - condition: (start > 0)
      pos:
        line_end: 48
        line_start: 48
        source_file: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: nss_test::read_option_s
    functionSourceFile: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc
    functionUses: 0
    functionsReached:
    - hex_string_to_bytes
    - substr
    - nss_test::trim
    - assert
    - find
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> read_option_s(std::string& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::setfill
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:56,1
    - Dst: std::setw
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:56,1
    - Dst: static_cast<int>
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - bytes
    - name
    argTypes:
    - std::vector<uint8_t>
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 60
    functionName: nss_test::print_bytes
    functionSourceFile: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc
    functionUses: 0
    functionsReached:
    - std::setfill
    - std::setw
    - static_cast<int>
    linkageType: ''
    returnType: void
    signature: void print_bytes(std::vector<uint8_t> bytes, std::string name)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:65,1
    - Dst: std::ifstream::fail
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:65,1
    - Dst: std::getline
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:73,1
    - Dst: nss_test::contains
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:75,1
    - Dst: nss_test::contains
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:76,1
    - Dst: std::string::find
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:85,1
    - Dst: std::ifstream::tellg
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:91,1
    - Dst: std::getline
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:92,1
    - Dst: nss_test::contains
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:93,1
    - Dst: nss_test::read_option_s
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:94,1
    - Dst: nss_test::contains
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:97,1
    - Dst: nss_test::read_option_s
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:98,1
    - Dst: nss_test::contains
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:101,1
    - Dst: nss_test::read_option_s
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:102,1
    - Dst: nss_test::contains
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:105,1
    - Dst: PRNGTestValues::additional_input::push_back
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:106,1
    - Dst: nss_test::read_option_s
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:106,1
    - Dst: nss_test::contains
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:109,1
    - Dst: nss_test::read_option_s
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:110,1
    - Dst: nss_test::contains
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:113,1
    - Dst: nss_test::read_option_s
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:114,1
    - Dst: nss_test::contains
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:117,1
    - Dst: nss_test::read_option_s
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:118,1
    - Dst: std::ifstream::eof
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:121,1
    - Dst: std::string::find
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:121,1
    - Dst: std::string::find
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:121,1
    - Dst: std::vector::push_back
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:124,1
    - Dst: std::ifstream::seekg
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:126,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 49
    argCount: 1
    argNames:
    - file_name
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 129
    functionName: nss_test::ReadFile
    functionSourceFile: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc
    functionUses: 0
    functionsReached:
    - std::ifstream::fail
    - EXPECT_FALSE
    - std::ifstream::seekg
    - PRNGTestValues::additional_input::push_back
    - std::ifstream::tellg
    - std::vector::push_back
    - nss_test::read_option_s
    - std::ifstream::eof
    - std::getline
    - nss_test::contains
    - std::string::find
    linkageType: ''
    returnType: std::vector<PRNGTestValues>
    signature: std::vector<PRNGTestValues> ReadFile(const std::string file_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ReadFile
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:134,1
    - Dst: ASSERT_FALSE
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:135,1
    - Dst: empty
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: nss_test::PRNGTest::SetUp
    functionSourceFile: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc
    functionUses: 0
    functionsReached:
    - ReadFile
    - empty
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void SetUp() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:139,1
    - Dst: additional_input::size
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:139,1
    - Dst: PRNGTEST_Instantiate_Kat
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:140,1
    - Dst: entropy::data
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:141,1
    - Dst: entropy::size
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:141,1
    - Dst: nonce::data
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:141,1
    - Dst: nonce::size
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:142,1
    - Dst: personal::data
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:142,1
    - Dst: personal::size
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:142,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:143,1
    - Dst: PRNGTEST_Reseed
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:144,1
    - Dst: additional_entropy::data
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:144,1
    - Dst: additional_entropy::size
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:145,1
    - Dst: additional_input_reseed::data
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:146,1
    - Dst: additional_input_reseed::size
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:147,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:148,1
    - Dst: PRNGTEST_Generate
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:152,1
    - Dst: data
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:152,1
    - Dst: size
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:153,1
    - Dst: PRNGTEST_Generate
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:154,1
    - Dst: data
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:154,1
    - Dst: size
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:155,1
    - Dst: print_bytes
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:158,1
    - Dst: print_bytes
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:159,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:161,1
    - Dst: PRNGTEST_Uninstantiate
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:162,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - ' test'
    argTypes:
    - PRNGTestValues
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 164
    functionName: nss_test::PRNGTest::RunTest
    functionSourceFile: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc
    functionUses: 0
    functionsReached:
    - PRNGTEST_Uninstantiate
    - nonce::data
    - PRNGTEST_Generate
    - entropy::size
    - additional_entropy::data
    - entropy::data
    - nonce::size
    - size
    - additional_input_reseed::size
    - personal::size
    - data
    - personal::data
    - ASSERT_EQ
    - additional_entropy::size
    - additional_input_reseed::data
    - additional_input::size
    - PRNGTEST_Instantiate_Kat
    - print_bytes
    - PRNGTEST_Reseed
    linkageType: ''
    returnType: void
    signature: void RunTest(PRNGTestValues& test)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RunTest
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 174
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc
    functionUses: 0
    functionsReached:
    - RunTest
    linkageType: ''
    returnType: void
    signature: void TEST_F(PRNGTest, HashDRBG)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' s'
    - to_find
    argTypes:
    - std::string
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: nss_test::contains
    functionSourceFile: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc
    functionUses: 1
    functionsReached:
    - find
    linkageType: ''
    returnType: bool
    signature: bool contains(std::string& s, const char* to_find)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::find_first_not_of
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:38,1
    - Dst: std::string::find_last_not_of
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:42,1
    - Dst: std::string::substr
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 45
    functionName: nss_test::trim
    functionSourceFile: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc
    functionUses: 1
    functionsReached:
    - std::string::substr
    - std::string::find_last_not_of
    - std::string::find_first_not_of
    linkageType: ''
    returnType: std::string
    signature: std::string trim(std::string str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:48,1
    - Dst: assert
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:49,1
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:50,1
    - Dst: nss_test::trim
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:50,1
    - Dst: substr
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:50,1
    - Dst: find
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::string
    assertStmts:
    - condition: (start > 0)
      pos:
        line_end: 48
        line_start: 48
        source_file: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: nss_test::read_option_s
    functionSourceFile: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc
    functionUses: 1
    functionsReached:
    - hex_string_to_bytes
    - substr
    - nss_test::trim
    - assert
    - find
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> read_option_s(std::string& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::setfill
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:56,1
    - Dst: std::setw
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:56,1
    - Dst: static_cast<int>
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - bytes
    - name
    argTypes:
    - std::vector<uint8_t>
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 60
    functionName: nss_test::print_bytes
    functionSourceFile: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc
    functionUses: 0
    functionsReached:
    - std::setfill
    - std::setw
    - static_cast<int>
    linkageType: ''
    returnType: void
    signature: void print_bytes(std::vector<uint8_t> bytes, std::string name)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:65,1
    - Dst: std::ifstream::fail
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:65,1
    - Dst: std::getline
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:73,1
    - Dst: nss_test::contains
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:75,1
    - Dst: nss_test::contains
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:76,1
    - Dst: std::string::find
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:85,1
    - Dst: std::ifstream::tellg
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:91,1
    - Dst: std::getline
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:92,1
    - Dst: nss_test::contains
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:93,1
    - Dst: nss_test::read_option_s
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:94,1
    - Dst: nss_test::contains
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:97,1
    - Dst: nss_test::read_option_s
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:98,1
    - Dst: nss_test::contains
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:101,1
    - Dst: nss_test::read_option_s
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:102,1
    - Dst: nss_test::contains
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:105,1
    - Dst: PRNGTestValues::additional_input::push_back
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:106,1
    - Dst: nss_test::read_option_s
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:106,1
    - Dst: nss_test::contains
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:109,1
    - Dst: nss_test::read_option_s
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:110,1
    - Dst: nss_test::contains
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:113,1
    - Dst: nss_test::read_option_s
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:114,1
    - Dst: nss_test::contains
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:117,1
    - Dst: nss_test::read_option_s
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:118,1
    - Dst: std::ifstream::eof
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:121,1
    - Dst: std::string::find
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:121,1
    - Dst: std::string::find
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:121,1
    - Dst: std::vector::push_back
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:124,1
    - Dst: std::ifstream::seekg
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:126,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 49
    argCount: 1
    argNames:
    - file_name
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 129
    functionName: nss_test::ReadFile
    functionSourceFile: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc
    functionUses: 0
    functionsReached:
    - std::ifstream::fail
    - EXPECT_FALSE
    - std::ifstream::seekg
    - PRNGTestValues::additional_input::push_back
    - std::ifstream::tellg
    - std::vector::push_back
    - nss_test::read_option_s
    - std::ifstream::eof
    - std::getline
    - nss_test::contains
    - std::string::find
    linkageType: ''
    returnType: std::vector<PRNGTestValues>
    signature: std::vector<PRNGTestValues> ReadFile(const std::string file_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ReadFile
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:134,1
    - Dst: ASSERT_FALSE
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:135,1
    - Dst: empty
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: nss_test::PRNGTest::SetUp
    functionSourceFile: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc
    functionUses: 0
    functionsReached:
    - ReadFile
    - empty
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void SetUp() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:139,1
    - Dst: additional_input::size
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:139,1
    - Dst: PRNGTEST_Instantiate_Kat
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:140,1
    - Dst: entropy::data
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:141,1
    - Dst: entropy::size
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:141,1
    - Dst: nonce::data
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:141,1
    - Dst: nonce::size
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:142,1
    - Dst: personal::data
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:142,1
    - Dst: personal::size
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:142,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:143,1
    - Dst: PRNGTEST_Reseed
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:144,1
    - Dst: additional_entropy::data
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:144,1
    - Dst: additional_entropy::size
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:145,1
    - Dst: additional_input_reseed::data
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:146,1
    - Dst: additional_input_reseed::size
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:147,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:148,1
    - Dst: PRNGTEST_Generate
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:152,1
    - Dst: data
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:152,1
    - Dst: size
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:153,1
    - Dst: PRNGTEST_Generate
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:154,1
    - Dst: data
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:154,1
    - Dst: size
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:155,1
    - Dst: print_bytes
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:158,1
    - Dst: print_bytes
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:159,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:161,1
    - Dst: PRNGTEST_Uninstantiate
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:162,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - ' test'
    argTypes:
    - PRNGTestValues
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 164
    functionName: nss_test::PRNGTest::RunTest
    functionSourceFile: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc
    functionUses: 0
    functionsReached:
    - PRNGTEST_Uninstantiate
    - nonce::data
    - PRNGTEST_Generate
    - entropy::size
    - additional_entropy::data
    - entropy::data
    - nonce::size
    - size
    - additional_input_reseed::size
    - personal::size
    - data
    - personal::data
    - ASSERT_EQ
    - additional_entropy::size
    - additional_input_reseed::data
    - additional_input::size
    - PRNGTEST_Instantiate_Kat
    - print_bytes
    - PRNGTEST_Reseed
    linkageType: ''
    returnType: void
    signature: void RunTest(PRNGTestValues& test)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RunTest
      Src: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 174
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/prng_kat_unittest.cc
    functionUses: 0
    functionsReached:
    - RunTest
    linkageType: ''
    returnType: void
    signature: void TEST_F(PRNGTest, HashDRBG)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::length
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:21,1
    - Dst: std::vector::push_back
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:22,1
    - Dst: std::stoul
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:22,1
    - Dst: std::string::substr
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 25
    functionName: nss_test::RSABlindTest::hexStringToBytes
    functionSourceFile: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc
    functionUses: 0
    functionsReached:
    - std::stoul
    - std::string::substr
    - std::vector::push_back
    - std::string::length
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> hexStringToBytes(std::string s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::RSABlindTest::hexStringToBytes
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:32,1
    - Dst: nss_test::RSABlindTest::hexStringToBytes
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:33,1
    - Dst: nss_test::RSABlindTest::hexStringToBytes
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:34,1
    - Dst: nss_test::RSABlindTest::hexStringToBytes
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:36,1
    - Dst: nss_test::RSABlindTest::hexStringToBytes
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:38,1
    - Dst: nss_test::RSABlindTest::hexStringToBytes
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:39,1
    - Dst: nss_test::RSABlindTest::hexStringToBytes
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:40,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:43,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:44,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:45,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:45,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:46,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:46,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:55,1
    - Dst: PORT_Memset
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:66,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:66,1
    - Dst: PORT_Memset
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:67,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:67,1
    - Dst: PORT_Memset
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:68,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:68,1
    - Dst: PORT_Memset
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:69,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:69,1
    - Dst: PORT_Memset
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:70,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:70,1
    - Dst: RSABlinding_Prepare
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:72,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:72,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:73,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:73,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:75,1
    - Dst: RSABlinding_Blind
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:76,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:76,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:76,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:77,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:78,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:78,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:78,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:79,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:81,1
    - Dst: RSABlinding_BlindSign
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:82,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:82,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:82,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:84,1
    - Dst: RSABlinding_Finalize
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:85,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:85,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:85,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:86,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:87,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:87,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:89,1
    - Dst: memcmp
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:89,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:89,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 10
    argNames:
    - hashAlg
    - nLen
    - modulus_str
    - e_str
    - d_str
    - m_str
    - salt_str
    - random_str
    - isDeterministic
    - sign_expected_str
    argTypes:
    - HASH_HashType
    - size_t
    - std::string
    - std::string
    - std::string
    - std::string
    - std::string
    - std::string
    - PRBool
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 27
    functionDepth: 3
    functionLinenumber: 27
    functionLinenumberEnd: 91
    functionName: nss_test::RSABlindTest::TestRSABlind
    functionSourceFile: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc
    functionUses: 0
    functionsReached:
    - std::vector::data
    - EXPECT_EQ
    - nss_test::RSABlindTest::hexStringToBytes
    - std::vector::size
    - RSABlinding_Blind
    - RSABlinding_Finalize
    - PORT_Memset
    - RSABlinding_BlindSign
    - memcmp
    - RSABlinding_Prepare
    linkageType: ''
    returnType: void
    signature: "void TestRSABlind(HASH_HashType hashAlg, const size_t nLen,\n                    std::string
      modulus_str, std::string e_str,\n                    std::string d_str, std::string
      m_str, std::string salt_str,\n                    std::string random_str, PRBool
      isDeterministic,\n                    std::string sign_expected_str)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestRSABlind
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 165
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc
    functionUses: 0
    functionsReached:
    - TestRSABlind
    linkageType: ''
    returnType: void
    signature: void TEST_F(RSABlindTest, TestRSABlind)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestRSABlind
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 237
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc
    functionUses: 0
    functionsReached:
    - TestRSABlind
    linkageType: ''
    returnType: void
    signature: void TEST_F(RSABlindTest, TestRSABlindEmptySalt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::length
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:21,1
    - Dst: std::vector::push_back
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:22,1
    - Dst: std::stoul
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:22,1
    - Dst: std::string::substr
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 25
    functionName: nss_test::RSABlindTest::hexStringToBytes
    functionSourceFile: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc
    functionUses: 1
    functionsReached:
    - std::stoul
    - std::string::substr
    - std::vector::push_back
    - std::string::length
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> hexStringToBytes(std::string s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::RSABlindTest::hexStringToBytes
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:32,1
    - Dst: nss_test::RSABlindTest::hexStringToBytes
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:33,1
    - Dst: nss_test::RSABlindTest::hexStringToBytes
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:34,1
    - Dst: nss_test::RSABlindTest::hexStringToBytes
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:36,1
    - Dst: nss_test::RSABlindTest::hexStringToBytes
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:38,1
    - Dst: nss_test::RSABlindTest::hexStringToBytes
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:39,1
    - Dst: nss_test::RSABlindTest::hexStringToBytes
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:40,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:43,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:44,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:45,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:45,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:46,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:46,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:55,1
    - Dst: PORT_Memset
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:66,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:66,1
    - Dst: PORT_Memset
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:67,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:67,1
    - Dst: PORT_Memset
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:68,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:68,1
    - Dst: PORT_Memset
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:69,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:69,1
    - Dst: PORT_Memset
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:70,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:70,1
    - Dst: RSABlinding_Prepare
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:72,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:72,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:73,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:73,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:75,1
    - Dst: RSABlinding_Blind
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:76,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:76,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:76,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:77,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:78,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:78,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:78,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:79,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:81,1
    - Dst: RSABlinding_BlindSign
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:82,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:82,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:82,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:84,1
    - Dst: RSABlinding_Finalize
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:85,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:85,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:85,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:86,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:87,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:87,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:89,1
    - Dst: memcmp
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:89,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:89,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 10
    argNames:
    - hashAlg
    - nLen
    - modulus_str
    - e_str
    - d_str
    - m_str
    - salt_str
    - random_str
    - isDeterministic
    - sign_expected_str
    argTypes:
    - HASH_HashType
    - size_t
    - std::string
    - std::string
    - std::string
    - std::string
    - std::string
    - std::string
    - PRBool
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 27
    functionDepth: 3
    functionLinenumber: 27
    functionLinenumberEnd: 91
    functionName: nss_test::RSABlindTest::TestRSABlind
    functionSourceFile: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc
    functionUses: 0
    functionsReached:
    - std::vector::data
    - EXPECT_EQ
    - nss_test::RSABlindTest::hexStringToBytes
    - std::vector::size
    - RSABlinding_Blind
    - RSABlinding_Finalize
    - PORT_Memset
    - RSABlinding_BlindSign
    - memcmp
    - RSABlinding_Prepare
    linkageType: ''
    returnType: void
    signature: "void TestRSABlind(HASH_HashType hashAlg, const size_t nLen,\n                    std::string
      modulus_str, std::string e_str,\n                    std::string d_str, std::string
      m_str, std::string salt_str,\n                    std::string random_str, PRBool
      isDeterministic,\n                    std::string sign_expected_str)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestRSABlind
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 165
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc
    functionUses: 0
    functionsReached:
    - TestRSABlind
    linkageType: ''
    returnType: void
    signature: void TEST_F(RSABlindTest, TestRSABlind)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestRSABlind
      Src: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 237
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/rsablind_unittest.cc
    functionUses: 0
    functionsReached:
    - TestRSABlind
    linkageType: ''
    returnType: void
    signature: void TEST_F(RSABlindTest, TestRSABlindEmptySalt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::length
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:19,1
    - Dst: std::vector::push_back
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:20,1
    - Dst: std::stoul
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:20,1
    - Dst: std::string::substr
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:20,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 23
    functionName: nss_test::EDDSATest::hexStringToBytes
    functionSourceFile: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc
    functionUses: 0
    functionsReached:
    - std::stoul
    - std::string::substr
    - std::vector::push_back
    - std::string::length
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> hexStringToBytes(std::string s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::setfill
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:27,1
    - Dst: std::setw
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:27,1
    - Dst: static_cast<int>
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:28,1
    - Dst: std::stringstream::str
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 31
    functionName: nss_test::EDDSATest::bytesToHexString
    functionSourceFile: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc
    functionUses: 0
    functionsReached:
    - std::setfill
    - std::stringstream::str
    - std::setw
    - static_cast<int>
    linkageType: ''
    returnType: std::string
    signature: std::string bytesToHexString(std::vector<uint8_t> bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::EDDSATest::hexStringToBytes
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:35,1
    - Dst: ASSERT_GT
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:36,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:36,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:37,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:38,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:38,1
    - Dst: nss_test::EDDSATest::hexStringToBytes
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:40,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:41,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:42,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:42,1
    - Dst: nss_test::EDDSATest::hexStringToBytes
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:44,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:46,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:47,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:47,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:57,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:59,1
    - Dst: ED_SignMessage
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:64,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:64,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:65,1
    - Dst: ED_VerifyMessage
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:71,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:71,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:72,1
    - Dst: nss_test::EDDSATest::bytesToHexString
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:74,1
    - Dst: std::vector<uint8_t>
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:74,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - secret
    - p
    - msg
    - signature
    argTypes:
    - std::string
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 77
    functionName: nss_test::EDDSATest::TestEd25519_Sign
    functionSourceFile: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - std::vector::data
    - ScopedSECItem::get
    - ASSERT_TRUE
    - std::vector::size
    - SECITEM_AllocItem
    - static_cast<unsigned int>
    - ED_VerifyMessage
    - std::vector<uint8_t>
    - ED_SignMessage
    - nss_test::EDDSATest::bytesToHexString
    - ASSERT_GT
    - EXPECT_EQ
    - nss_test::EDDSATest::hexStringToBytes
    linkageType: ''
    returnType: void
    signature: "void TestEd25519_Sign(const std::string secret, const std::string
      p,\n                        const std::string msg, const std::string signature)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestEd25519_Sign
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 86
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc
    functionUses: 0
    functionsReached:
    - TestEd25519_Sign
    linkageType: ''
    returnType: void
    signature: void TEST_F(EDDSATest, TestEd25519_Sign)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestEd25519_Sign
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 93
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc
    functionUses: 0
    functionsReached:
    - TestEd25519_Sign
    linkageType: ''
    returnType: void
    signature: void TEST_F(EDDSATest, TestEd25519_Sign2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestEd25519_Sign
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 101
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc
    functionUses: 0
    functionsReached:
    - TestEd25519_Sign
    linkageType: ''
    returnType: void
    signature: void TEST_F(EDDSATest, TestEd25519_Sign3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestEd25519_Sign
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 137
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc
    functionUses: 0
    functionsReached:
    - TestEd25519_Sign
    linkageType: ''
    returnType: void
    signature: void TEST_F(EDDSATest, TestEd25519_Sign4)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestEd25519_Sign
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 146
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc
    functionUses: 0
    functionsReached:
    - TestEd25519_Sign
    linkageType: ''
    returnType: void
    signature: void TEST_F(EDDSATest, TestEd25519_Sign5)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::length
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:19,1
    - Dst: std::vector::push_back
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:20,1
    - Dst: std::stoul
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:20,1
    - Dst: std::string::substr
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:20,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 23
    functionName: nss_test::EDDSATest::hexStringToBytes
    functionSourceFile: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc
    functionUses: 1
    functionsReached:
    - std::stoul
    - std::string::substr
    - std::vector::push_back
    - std::string::length
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> hexStringToBytes(std::string s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::setfill
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:27,1
    - Dst: std::setw
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:27,1
    - Dst: static_cast<int>
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:28,1
    - Dst: std::stringstream::str
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 31
    functionName: nss_test::EDDSATest::bytesToHexString
    functionSourceFile: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc
    functionUses: 1
    functionsReached:
    - std::setfill
    - std::stringstream::str
    - std::setw
    - static_cast<int>
    linkageType: ''
    returnType: std::string
    signature: std::string bytesToHexString(std::vector<uint8_t> bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::EDDSATest::hexStringToBytes
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:35,1
    - Dst: ASSERT_GT
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:36,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:36,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:37,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:38,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:38,1
    - Dst: nss_test::EDDSATest::hexStringToBytes
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:40,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:41,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:42,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:42,1
    - Dst: nss_test::EDDSATest::hexStringToBytes
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:44,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:46,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:47,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:47,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:57,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:59,1
    - Dst: ED_SignMessage
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:64,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:64,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:65,1
    - Dst: ED_VerifyMessage
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:71,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:71,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:72,1
    - Dst: nss_test::EDDSATest::bytesToHexString
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:74,1
    - Dst: std::vector<uint8_t>
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:74,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - secret
    - p
    - msg
    - signature
    argTypes:
    - std::string
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 77
    functionName: nss_test::EDDSATest::TestEd25519_Sign
    functionSourceFile: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - std::vector::data
    - ScopedSECItem::get
    - ASSERT_TRUE
    - std::vector::size
    - SECITEM_AllocItem
    - static_cast<unsigned int>
    - ED_VerifyMessage
    - std::vector<uint8_t>
    - ED_SignMessage
    - nss_test::EDDSATest::bytesToHexString
    - ASSERT_GT
    - EXPECT_EQ
    - nss_test::EDDSATest::hexStringToBytes
    linkageType: ''
    returnType: void
    signature: "void TestEd25519_Sign(const std::string secret, const std::string
      p,\n                        const std::string msg, const std::string signature)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestEd25519_Sign
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 86
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc
    functionUses: 0
    functionsReached:
    - TestEd25519_Sign
    linkageType: ''
    returnType: void
    signature: void TEST_F(EDDSATest, TestEd25519_Sign)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestEd25519_Sign
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 93
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc
    functionUses: 0
    functionsReached:
    - TestEd25519_Sign
    linkageType: ''
    returnType: void
    signature: void TEST_F(EDDSATest, TestEd25519_Sign2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestEd25519_Sign
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 101
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc
    functionUses: 0
    functionsReached:
    - TestEd25519_Sign
    linkageType: ''
    returnType: void
    signature: void TEST_F(EDDSATest, TestEd25519_Sign3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestEd25519_Sign
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 137
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc
    functionUses: 0
    functionsReached:
    - TestEd25519_Sign
    linkageType: ''
    returnType: void
    signature: void TEST_F(EDDSATest, TestEd25519_Sign4)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestEd25519_Sign
      Src: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 146
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/ed25519_unittest.cc
    functionUses: 0
    functionsReached:
    - TestEd25519_Sign
    linkageType: ''
    returnType: void
    signature: void TEST_F(EDDSATest, TestEd25519_Sign5)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:17,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:18,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:18,1
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:20,1
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:21,1
    - Dst: std::vector::begin
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:22,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:22,1
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:23,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:24,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:24,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:28,1
    - Dst: gcmHash_InitContext
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:28,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:28,1
    - Dst: gcmHash_Reset
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:31,1
    - Dst: const_cast<const unsigned char *>
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:32,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:32,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:33,1
    - Dst: gcmHash_Update
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:34,1
    - Dst: const_cast<const unsigned char *>
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:35,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:35,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:36,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:41,1
    - Dst: gcmHash_Final
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:41,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:42,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:43,1
    - Dst: std::vector<uint8_t>
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - val
    - sw
    argTypes:
    - AesGcmKatValue
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 15
    functionDepth: 3
    functionLinenumber: 15
    functionLinenumberEnd: 44
    functionName: nss_test::GHashTest::TestGHash
    functionSourceFile: /src/nss/gtests/freebl_gtest/ghash_unittest.cc
    functionUses: 0
    functionsReached:
    - hex_string_to_bytes
    - ASSERT_EQ
    - std::vector::data
    - gcmHash_Final
    - gcmHash_Update
    - std::vector::size
    - gcmHash_Reset
    - std::vector::end
    - const_cast<const unsigned char *>
    - std::vector::begin
    - std::vector<uint8_t>
    - gcmHash_InitContext
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TestGHash(const AesGcmKatValue val, bool sw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestGHash
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:48,1
    - Dst: GetParam
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/freebl_gtest/ghash_unittest.cc
    functionUses: 0
    functionsReached:
    - TestGHash
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(GHashTest, KAT_X86_HW)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestGHash
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:50,1
    - Dst: GetParam
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/freebl_gtest/ghash_unittest.cc
    functionUses: 0
    functionsReached:
    - TestGHash
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(GHashTest, KAT_Sftw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:17,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:18,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:18,1
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:20,1
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:21,1
    - Dst: std::vector::begin
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:22,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:22,1
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:23,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:24,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:24,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:28,1
    - Dst: gcmHash_InitContext
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:28,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:28,1
    - Dst: gcmHash_Reset
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:31,1
    - Dst: const_cast<const unsigned char *>
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:32,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:32,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:33,1
    - Dst: gcmHash_Update
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:34,1
    - Dst: const_cast<const unsigned char *>
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:35,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:35,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:36,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:41,1
    - Dst: gcmHash_Final
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:41,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:42,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:43,1
    - Dst: std::vector<uint8_t>
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - val
    - sw
    argTypes:
    - AesGcmKatValue
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 15
    functionDepth: 3
    functionLinenumber: 15
    functionLinenumberEnd: 44
    functionName: nss_test::GHashTest::TestGHash
    functionSourceFile: /src/nss/gtests/freebl_gtest/ghash_unittest.cc
    functionUses: 0
    functionsReached:
    - hex_string_to_bytes
    - ASSERT_EQ
    - std::vector::data
    - gcmHash_Final
    - gcmHash_Update
    - std::vector::size
    - gcmHash_Reset
    - std::vector::end
    - const_cast<const unsigned char *>
    - std::vector::begin
    - std::vector<uint8_t>
    - gcmHash_InitContext
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TestGHash(const AesGcmKatValue val, bool sw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestGHash
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:48,1
    - Dst: GetParam
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/freebl_gtest/ghash_unittest.cc
    functionUses: 0
    functionsReached:
    - TestGHash
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(GHashTest, KAT_X86_HW)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestGHash
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:50,1
    - Dst: GetParam
      Src: /src/nss/gtests/freebl_gtest/ghash_unittest.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/freebl_gtest/ghash_unittest.cc
    functionUses: 0
    functionsReached:
    - TestGHash
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(GHashTest, KAT_Sftw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: host_get_clock_service
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:25,1
    - Dst: mach_host_self
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:25,1
    - Dst: clock_get_time
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:26,1
    - Dst: mach_port_deallocate
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:27,1
    - Dst: mach_task_self
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:27,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:32,1
    - Dst: timespec_get
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tp
    argTypes:
    - struct timespec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 34
    functionName: nss_test::gettime
    functionSourceFile: /src/nss/gtests/freebl_gtest/mpi_unittest.cc
    functionUses: 0
    functionsReached:
    - mach_host_self
    - timespec_get
    - mach_port_deallocate
    - clock_get_time
    - mach_task_self
    - ASSERT_NE
    - host_get_clock_service
    linkageType: ''
    returnType: void
    signature: void gettime(struct timespec* tp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MP_DIGITS
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:41,1
    - Dst: MP_DIGITS
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:42,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:43,1
    - Dst: mp_init
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:43,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:44,1
    - Dst: mp_init
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:44,1
    - Dst: mp_read_radix
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:46,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:46,1
    - Dst: mp_read_radix
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:47,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:47,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:48,1
    - Dst: mp_cmp
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:48,1
    - Dst: mp_clear
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:50,1
    - Dst: mp_clear
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - a_string
    - b_string
    - result
    argTypes:
    - std::string
    - std::string
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 38
    functionDepth: 3
    functionLinenumber: 38
    functionLinenumberEnd: 52
    functionName: nss_test::MPITest::TestCmp
    functionSourceFile: /src/nss/gtests/freebl_gtest/mpi_unittest.cc
    functionUses: 0
    functionsReached:
    - mp_init
    - ASSERT_EQ
    - mp_read_radix
    - std::string::c_str
    - mp_cmp
    - mp_clear
    - EXPECT_EQ
    - MP_DIGITS
    linkageType: ''
    returnType: void
    signature: "void TestCmp(const std::string a_string, const std::string b_string,\n
      \              int result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MP_DIGITS
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:57,1
    - Dst: MP_DIGITS
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:58,1
    - Dst: MP_DIGITS
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:59,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:60,1
    - Dst: mp_init
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:60,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:61,1
    - Dst: mp_init
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:61,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:62,1
    - Dst: mp_init
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:62,1
    - Dst: mp_read_radix
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:64,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:64,1
    - Dst: mp_read_radix
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:65,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:65,1
    - Dst: mp_read_radix
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:66,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:66,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:67,1
    - Dst: mp_div
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:67,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:68,1
    - Dst: mp_cmp
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:68,1
    - Dst: mp_clear
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:70,1
    - Dst: mp_clear
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:71,1
    - Dst: mp_clear
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 3
    argNames:
    - a_string
    - b_string
    - result
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 54
    functionDepth: 4
    functionLinenumber: 54
    functionLinenumberEnd: 73
    functionName: nss_test::MPITest::TestDiv
    functionSourceFile: /src/nss/gtests/freebl_gtest/mpi_unittest.cc
    functionUses: 0
    functionsReached:
    - mp_init
    - ASSERT_EQ
    - mp_read_radix
    - std::string::c_str
    - mp_div
    - mp_cmp
    - mp_clear
    - EXPECT_EQ
    - MP_DIGITS
    linkageType: ''
    returnType: void
    signature: "void TestDiv(const std::string a_string, const std::string b_string,\n
      \              const std::string result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flags
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:76,1
    - Dst: std::setw
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:79,1
    - Dst: std::setfill
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:79,1
    - Dst: static_cast<int>
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:80,1
    - Dst: std::resetiosflags
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' prefix'
    - buf
    - len
    argTypes:
    - std::string
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 83
    functionName: nss_test::MPITest::dump
    functionSourceFile: /src/nss/gtests/freebl_gtest/mpi_unittest.cc
    functionUses: 0
    functionsReached:
    - std::setfill
    - static_cast<int>
    - std::resetiosflags
    - flags
    - std::setw
    linkageType: ''
    returnType: void
    signature: void dump(const std::string& prefix, const uint8_t* buf, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:87,1
    - Dst: mp_init
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:87,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:88,1
    - Dst: mp_read_unsigned_octets
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:88,1
    - Dst: data
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:88,1
    - Dst: size
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:88,1
    - Dst: uint8_t::uint8_t
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:89,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:90,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:91,1
    - Dst: mp_to_fixlen_octets
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:91,1
    - Dst: std::unique_ptr::get
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:91,1
    - Dst: size
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:93,1
    - Dst: size
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:94,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:95,1
    - Dst: size
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:97,1
    - Dst: nss_test::MPITest::dump
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:101,1
    - Dst: data
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:101,1
    - Dst: size
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:101,1
    - Dst: nss_test::MPITest::dump
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:102,1
    - Dst: std::unique_ptr::get
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:102,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:103,1
    - Dst: memcmp
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:103,1
    - Dst: std::unique_ptr::get
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:103,1
    - Dst: data
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:104,1
    - Dst: size
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:104,1
    - Dst: mp_clear
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - ' ref'
    - len
    argTypes:
    - std::vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 85
    functionDepth: 5
    functionLinenumber: 85
    functionLinenumberEnd: 107
    functionName: nss_test::MPITest::TestToFixedOctets
    functionSourceFile: /src/nss/gtests/freebl_gtest/mpi_unittest.cc
    functionUses: 0
    functionsReached:
    - mp_init
    - ASSERT_EQ
    - nss_test::MPITest::dump
    - ASSERT_NE
    - size
    - std::unique_ptr::get
    - mp_read_unsigned_octets
    - uint8_t::uint8_t
    - memcmp
    - mp_clear
    - data
    - mp_to_fixlen_octets
    linkageType: ''
    returnType: void
    signature: void TestToFixedOctets(const std::vector<uint8_t>& ref, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestCmp
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/mpi_unittest.cc
    functionUses: 0
    functionsReached:
    - TestCmp
    linkageType: ''
    returnType: void
    signature: void TEST_F(MPITest, MpiCmp01Test)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestCmp
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/mpi_unittest.cc
    functionUses: 0
    functionsReached:
    - TestCmp
    linkageType: ''
    returnType: void
    signature: void TEST_F(MPITest, MpiCmp10Test)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestCmp
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/mpi_unittest.cc
    functionUses: 0
    functionsReached:
    - TestCmp
    linkageType: ''
    returnType: void
    signature: void TEST_F(MPITest, MpiCmp00Test)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestCmp
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/mpi_unittest.cc
    functionUses: 0
    functionsReached:
    - TestCmp
    linkageType: ''
    returnType: void
    signature: void TEST_F(MPITest, MpiCmp11Test)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestDiv
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 116
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/mpi_unittest.cc
    functionUses: 0
    functionsReached:
    - TestDiv
    linkageType: ''
    returnType: void
    signature: void TEST_F(MPITest, MpiDiv32ErrorTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MP_DIGITS
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:122,1
    - Dst: MP_DIGITS
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:123,1
    - Dst: MP_DIGITS
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:124,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:125,1
    - Dst: mp_init
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:125,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:126,1
    - Dst: mp_init
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:126,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:127,1
    - Dst: mp_init
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:127,1
    - Dst: mp_read_radix
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:129,1
    - Dst: mp_read_radix
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:130,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:131,1
    - Dst: mp_cmp
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:131,1
    - Dst: MP_DIGITS
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:137,1
    - Dst: MP_DIGITS
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:138,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:139,1
    - Dst: mp_cmp
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:139,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:141,1
    - Dst: mp_sub
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:141,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:143,1
    - Dst: mp_toradix
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:143,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:144,1
    - Dst: strncmp
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:144,1
    - Dst: mp_clear
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:146,1
    - Dst: mp_clear
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:147,1
    - Dst: mp_clear
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 120
    functionDepth: 4
    functionLinenumber: 120
    functionLinenumberEnd: 149
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/mpi_unittest.cc
    functionUses: 0
    functionsReached:
    - mp_init
    - ASSERT_EQ
    - strncmp
    - mp_read_radix
    - mp_sub
    - ASSERT_TRUE
    - mp_toradix
    - mp_cmp
    - mp_clear
    - EXPECT_EQ
    - MP_DIGITS
    linkageType: ''
    returnType: void
    signature: void TEST_F(MPITest, MpiCmpUnalignedTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MP_DIGITS
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:155,1
    - Dst: MP_DIGITS
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:156,1
    - Dst: MP_DIGITS
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:157,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:158,1
    - Dst: mp_init
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:158,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:159,1
    - Dst: mp_init
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:159,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:160,1
    - Dst: mp_init
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:160,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:161,1
    - Dst: mp_set_ulong
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:161,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:162,1
    - Dst: mp_set_ulong
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:162,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:163,1
    - Dst: mp_set_ulong
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:163,1
    - Dst: mp_clear
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:165,1
    - Dst: mp_clear
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:166,1
    - Dst: mp_clear
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 153
    functionDepth: 3
    functionLinenumber: 153
    functionLinenumberEnd: 168
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/mpi_unittest.cc
    functionUses: 0
    functionsReached:
    - mp_init
    - ASSERT_EQ
    - mp_set_ulong
    - mp_clear
    - EXPECT_EQ
    - MP_DIGITS
    linkageType: ''
    returnType: void
    signature: void TEST_F(MPITest, MpiSetUlong)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MP_DIGITS
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:172,1
    - Dst: MP_DIGITS
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:173,1
    - Dst: MP_DIGITS
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:174,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:175,1
    - Dst: mp_init
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:175,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:176,1
    - Dst: mp_init
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:176,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:177,1
    - Dst: mp_init
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:177,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:178,1
    - Dst: mp_set_int
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:178,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:179,1
    - Dst: mp_set_int
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:179,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:180,1
    - Dst: mp_set_int
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:180,1
    - Dst: mp_clear
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:182,1
    - Dst: mp_clear
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:183,1
    - Dst: mp_clear
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 185
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/mpi_unittest.cc
    functionUses: 0
    functionsReached:
    - mp_init
    - ASSERT_EQ
    - mp_clear
    - EXPECT_EQ
    - MP_DIGITS
    - mp_set_int
    linkageType: ''
    returnType: void
    signature: void TEST_F(MPITest, MpiSetInt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestToFixedOctets
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:189,1
    - Dst: TestToFixedOctets
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:190,1
    - Dst: TestToFixedOctets
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:191,1
    - Dst: TestToFixedOctets
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 193
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/mpi_unittest.cc
    functionUses: 0
    functionsReached:
    - TestToFixedOctets
    linkageType: ''
    returnType: void
    signature: void TEST_F(MPITest, MpiFixlenOctetsZero)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mp_init
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:211,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:212,1
    - Dst: mp_read_variable_radix
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:213,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:214,1
    - Dst: mp_radix_size
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:216,1
    - Dst: ASSERT_LE
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:217,1
    - Dst: malloc
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:219,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:220,1
    - Dst: mp_toradix
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:221,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:222,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:223,1
    - Dst: strcmp
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:223,1
    - Dst: free
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:224,1
    - Dst: mp_clear
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 195
    functionDepth: 4
    functionLinenumber: 195
    functionLinenumberEnd: 226
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/mpi_unittest.cc
    functionUses: 0
    functionsReached:
    - mp_init
    - ASSERT_EQ
    - malloc
    - strcmp
    - free
    - mp_read_variable_radix
    - ASSERT_LE
    - mp_toradix
    - mp_clear
    - mp_radix_size
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(MPITest, MpiRadixSizeNeg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:231,1
    - Dst: TestToFixedOctets
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:232,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:232,1
    - Dst: TestToFixedOctets
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:233,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:233,1
    - Dst: TestToFixedOctets
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:234,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 236
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/mpi_unittest.cc
    functionUses: 0
    functionsReached:
    - std::vector::size
    - TestToFixedOctets
    - std::vector::push_back
    linkageType: ''
    returnType: void
    signature: void TEST_F(MPITest, MpiFixlenOctetsVarlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:242,1
    - Dst: dump
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:243,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:243,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:243,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:246,1
    - Dst: mp_init
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:246,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:247,1
    - Dst: mp_read_unsigned_octets
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:247,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:247,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:247,1
    - Dst: EXPECT_DEATH
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:250,1
    - Dst: mp_to_fixlen_octets
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:250,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:250,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:252,1
    - Dst: mp_to_fixlen_octets
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:252,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:252,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:254,1
    - Dst: mp_to_fixlen_octets
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:254,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:254,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:255,1
    - Dst: memcmp
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:255,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:255,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:255,1
    - Dst: mp_clear
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 238
    functionDepth: 5
    functionLinenumber: 238
    functionLinenumberEnd: 259
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/mpi_unittest.cc
    functionUses: 0
    functionsReached:
    - dump
    - ASSERT_EQ
    - mp_init
    - std::vector::data
    - std::vector::size
    - std::vector::push_back
    - EXPECT_DEATH
    - mp_read_unsigned_octets
    - memcmp
    - EXPECT_EQ
    - mp_clear
    - mp_to_fixlen_octets
    linkageType: ''
    returnType: void
    signature: void TEST_F(MPITest, MpiFixlenOctetsTooSmall)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MP_DIGITS
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:263,1
    - Dst: MP_DIGITS
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:264,1
    - Dst: MP_DIGITS
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:265,1
    - Dst: std::string::replace
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:271,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:277,1
    - Dst: mp_init
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:277,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:278,1
    - Dst: mp_init
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:278,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:279,1
    - Dst: mp_init
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:279,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:280,1
    - Dst: mp_read_radix
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:280,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:280,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:282,1
    - Dst: mp_set_int
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:282,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:283,1
    - Dst: mpl_lsh
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:283,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:285,1
    - Dst: mp_sqr
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:285,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:286,1
    - Dst: MP_USED
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:286,1
    - Dst: MP_USED
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:286,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:287,1
    - Dst: mp_cmp
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:287,1
    - Dst: mp_clear
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:288,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:291,1
    - Dst: mp_init
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:291,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:292,1
    - Dst: mp_mul
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:292,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:293,1
    - Dst: MP_USED
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:293,1
    - Dst: MP_USED
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:293,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:294,1
    - Dst: mp_cmp
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:294,1
    - Dst: mp_clear
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:296,1
    - Dst: mp_clear
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:297,1
    - Dst: mp_clear
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:298,1
    - Dst: std::string::resize
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:305,1
    - Dst: std::string::size
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:305,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 261
    functionDepth: 6
    functionLinenumber: 261
    functionLinenumberEnd: 307
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/mpi_unittest.cc
    functionUses: 0
    functionsReached:
    - mp_init
    - std::string::replace
    - ASSERT_EQ
    - mp_sqr
    - mp_read_radix
    - std::string::size
    - mp_mul
    - mpl_lsh
    - std::string::c_str
    - MP_USED
    - std::string::resize
    - mp_cmp
    - mp_clear
    - EXPECT_EQ
    - MP_DIGITS
    - mp_set_int
    linkageType: ''
    returnType: void
    signature: void TEST_F(MPITest, MpiSqrMulClamp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MP_DIGITS
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:314,1
    - Dst: MP_DIGITS
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:315,1
    - Dst: MP_DIGITS
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:316,1
    - Dst: MP_DIGITS
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:317,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:318,1
    - Dst: mp_init
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:318,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:319,1
    - Dst: mp_init
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:319,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:320,1
    - Dst: mp_init
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:320,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:321,1
    - Dst: mp_init
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:321,1
    - Dst: mp_read_radix
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:322,1
    - Dst: mp_read_radix
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:326,1
    - Dst: mp_read_radix
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:330,1
    - Dst: mp_invmod
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:335,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:336,1
    - Dst: mp_cmp
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:338,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:339,1
    - Dst: mp_clear
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:341,1
    - Dst: mp_clear
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:342,1
    - Dst: mp_clear
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:343,1
    - Dst: mp_clear
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 309
    functionDepth: 8
    functionLinenumber: 309
    functionLinenumberEnd: 345
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/mpi_unittest.cc
    functionUses: 0
    functionsReached:
    - mp_init
    - ASSERT_EQ
    - mp_read_radix
    - mp_invmod
    - mp_cmp
    - mp_clear
    - EXPECT_EQ
    - MP_DIGITS
    linkageType: ''
    returnType: void
    signature: void TEST_F(MPITest, MpiInvModLoop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MP_DIGITS
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:352,1
    - Dst: MP_DIGITS
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:353,1
    - Dst: MP_DIGITS
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:354,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:355,1
    - Dst: mp_init
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:355,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:356,1
    - Dst: mp_init
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:356,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:357,1
    - Dst: mp_init
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:357,1
    - Dst: mp_read_radix
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:359,1
    - Dst: const_cast<char*>
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:361,1
    - Dst: mp_read_radix
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:364,1
    - Dst: const_cast<char*>
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:366,1
    - Dst: mp_read_radix
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:369,1
    - Dst: const_cast<char*>
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:371,1
    - Dst: mp_taint
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:376,1
    - Dst: mp_taint
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:377,1
    - Dst: nss_test::gettime
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:384,1
    - Dst: mp_cmp
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:385,1
    - Dst: nss_test::gettime
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:386,1
    - Dst: static_cast<unsigned long long>
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:388,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:391,1
    - Dst: printf
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:393,1
    - Dst: nss_test::gettime
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:397,1
    - Dst: mp_cmp
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:398,1
    - Dst: nss_test::gettime
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:399,1
    - Dst: static_cast<unsigned long long>
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:401,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:404,1
    - Dst: printf
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:406,1
    - Dst: mp_clear
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:408,1
    - Dst: mp_clear
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:409,1
    - Dst: mp_clear
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:410,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 350
    functionDepth: 3
    functionLinenumber: 350
    functionLinenumberEnd: 411
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/mpi_unittest.cc
    functionUses: 0
    functionsReached:
    - mp_init
    - ASSERT_EQ
    - mp_read_radix
    - mp_taint
    - static_cast<unsigned long long>
    - printf
    - const_cast<char*>
    - mp_cmp
    - mp_clear
    - nss_test::gettime
    - MP_DIGITS
    linkageType: ''
    returnType: void
    signature: void TEST_F(DISABLED_MPITest, MpiCmpConstTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: host_get_clock_service
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:25,1
    - Dst: mach_host_self
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:25,1
    - Dst: clock_get_time
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:26,1
    - Dst: mach_port_deallocate
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:27,1
    - Dst: mach_task_self
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:27,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:32,1
    - Dst: timespec_get
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tp
    argTypes:
    - struct timespec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 34
    functionName: nss_test::gettime
    functionSourceFile: /src/nss/gtests/freebl_gtest/mpi_unittest.cc
    functionUses: 1
    functionsReached:
    - mach_host_self
    - timespec_get
    - mach_port_deallocate
    - clock_get_time
    - mach_task_self
    - ASSERT_NE
    - host_get_clock_service
    linkageType: ''
    returnType: void
    signature: void gettime(struct timespec* tp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MP_DIGITS
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:41,1
    - Dst: MP_DIGITS
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:42,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:43,1
    - Dst: mp_init
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:43,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:44,1
    - Dst: mp_init
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:44,1
    - Dst: mp_read_radix
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:46,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:46,1
    - Dst: mp_read_radix
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:47,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:47,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:48,1
    - Dst: mp_cmp
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:48,1
    - Dst: mp_clear
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:50,1
    - Dst: mp_clear
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - a_string
    - b_string
    - result
    argTypes:
    - std::string
    - std::string
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 38
    functionDepth: 3
    functionLinenumber: 38
    functionLinenumberEnd: 52
    functionName: nss_test::MPITest::TestCmp
    functionSourceFile: /src/nss/gtests/freebl_gtest/mpi_unittest.cc
    functionUses: 0
    functionsReached:
    - mp_init
    - ASSERT_EQ
    - mp_read_radix
    - std::string::c_str
    - mp_cmp
    - mp_clear
    - EXPECT_EQ
    - MP_DIGITS
    linkageType: ''
    returnType: void
    signature: "void TestCmp(const std::string a_string, const std::string b_string,\n
      \              int result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MP_DIGITS
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:57,1
    - Dst: MP_DIGITS
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:58,1
    - Dst: MP_DIGITS
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:59,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:60,1
    - Dst: mp_init
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:60,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:61,1
    - Dst: mp_init
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:61,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:62,1
    - Dst: mp_init
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:62,1
    - Dst: mp_read_radix
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:64,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:64,1
    - Dst: mp_read_radix
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:65,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:65,1
    - Dst: mp_read_radix
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:66,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:66,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:67,1
    - Dst: mp_div
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:67,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:68,1
    - Dst: mp_cmp
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:68,1
    - Dst: mp_clear
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:70,1
    - Dst: mp_clear
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:71,1
    - Dst: mp_clear
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 3
    argNames:
    - a_string
    - b_string
    - result
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 54
    functionDepth: 4
    functionLinenumber: 54
    functionLinenumberEnd: 73
    functionName: nss_test::MPITest::TestDiv
    functionSourceFile: /src/nss/gtests/freebl_gtest/mpi_unittest.cc
    functionUses: 0
    functionsReached:
    - mp_init
    - ASSERT_EQ
    - mp_read_radix
    - std::string::c_str
    - mp_div
    - mp_cmp
    - mp_clear
    - EXPECT_EQ
    - MP_DIGITS
    linkageType: ''
    returnType: void
    signature: "void TestDiv(const std::string a_string, const std::string b_string,\n
      \              const std::string result)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flags
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:76,1
    - Dst: std::setw
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:79,1
    - Dst: std::setfill
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:79,1
    - Dst: static_cast<int>
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:80,1
    - Dst: std::resetiosflags
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' prefix'
    - buf
    - len
    argTypes:
    - std::string
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 83
    functionName: nss_test::MPITest::dump
    functionSourceFile: /src/nss/gtests/freebl_gtest/mpi_unittest.cc
    functionUses: 1
    functionsReached:
    - std::setfill
    - static_cast<int>
    - std::resetiosflags
    - flags
    - std::setw
    linkageType: ''
    returnType: void
    signature: void dump(const std::string& prefix, const uint8_t* buf, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:87,1
    - Dst: mp_init
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:87,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:88,1
    - Dst: mp_read_unsigned_octets
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:88,1
    - Dst: data
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:88,1
    - Dst: size
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:88,1
    - Dst: uint8_t::uint8_t
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:89,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:90,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:91,1
    - Dst: mp_to_fixlen_octets
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:91,1
    - Dst: std::unique_ptr::get
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:91,1
    - Dst: size
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:93,1
    - Dst: size
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:94,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:95,1
    - Dst: size
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:97,1
    - Dst: nss_test::MPITest::dump
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:101,1
    - Dst: data
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:101,1
    - Dst: size
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:101,1
    - Dst: nss_test::MPITest::dump
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:102,1
    - Dst: std::unique_ptr::get
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:102,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:103,1
    - Dst: memcmp
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:103,1
    - Dst: std::unique_ptr::get
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:103,1
    - Dst: data
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:104,1
    - Dst: size
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:104,1
    - Dst: mp_clear
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - ' ref'
    - len
    argTypes:
    - std::vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 85
    functionDepth: 5
    functionLinenumber: 85
    functionLinenumberEnd: 107
    functionName: nss_test::MPITest::TestToFixedOctets
    functionSourceFile: /src/nss/gtests/freebl_gtest/mpi_unittest.cc
    functionUses: 0
    functionsReached:
    - mp_init
    - ASSERT_EQ
    - nss_test::MPITest::dump
    - ASSERT_NE
    - size
    - std::unique_ptr::get
    - mp_read_unsigned_octets
    - uint8_t::uint8_t
    - memcmp
    - mp_clear
    - data
    - mp_to_fixlen_octets
    linkageType: ''
    returnType: void
    signature: void TestToFixedOctets(const std::vector<uint8_t>& ref, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestCmp
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/mpi_unittest.cc
    functionUses: 0
    functionsReached:
    - TestCmp
    linkageType: ''
    returnType: void
    signature: void TEST_F(MPITest, MpiCmp01Test)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestCmp
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/mpi_unittest.cc
    functionUses: 0
    functionsReached:
    - TestCmp
    linkageType: ''
    returnType: void
    signature: void TEST_F(MPITest, MpiCmp10Test)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestCmp
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/mpi_unittest.cc
    functionUses: 0
    functionsReached:
    - TestCmp
    linkageType: ''
    returnType: void
    signature: void TEST_F(MPITest, MpiCmp00Test)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestCmp
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/mpi_unittest.cc
    functionUses: 0
    functionsReached:
    - TestCmp
    linkageType: ''
    returnType: void
    signature: void TEST_F(MPITest, MpiCmp11Test)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestDiv
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 116
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/mpi_unittest.cc
    functionUses: 0
    functionsReached:
    - TestDiv
    linkageType: ''
    returnType: void
    signature: void TEST_F(MPITest, MpiDiv32ErrorTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MP_DIGITS
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:122,1
    - Dst: MP_DIGITS
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:123,1
    - Dst: MP_DIGITS
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:124,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:125,1
    - Dst: mp_init
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:125,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:126,1
    - Dst: mp_init
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:126,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:127,1
    - Dst: mp_init
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:127,1
    - Dst: mp_read_radix
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:129,1
    - Dst: mp_read_radix
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:130,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:131,1
    - Dst: mp_cmp
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:131,1
    - Dst: MP_DIGITS
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:137,1
    - Dst: MP_DIGITS
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:138,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:139,1
    - Dst: mp_cmp
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:139,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:141,1
    - Dst: mp_sub
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:141,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:143,1
    - Dst: mp_toradix
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:143,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:144,1
    - Dst: strncmp
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:144,1
    - Dst: mp_clear
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:146,1
    - Dst: mp_clear
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:147,1
    - Dst: mp_clear
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 120
    functionDepth: 4
    functionLinenumber: 120
    functionLinenumberEnd: 149
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/mpi_unittest.cc
    functionUses: 0
    functionsReached:
    - mp_init
    - ASSERT_EQ
    - strncmp
    - mp_read_radix
    - mp_sub
    - ASSERT_TRUE
    - mp_toradix
    - mp_cmp
    - mp_clear
    - EXPECT_EQ
    - MP_DIGITS
    linkageType: ''
    returnType: void
    signature: void TEST_F(MPITest, MpiCmpUnalignedTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MP_DIGITS
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:155,1
    - Dst: MP_DIGITS
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:156,1
    - Dst: MP_DIGITS
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:157,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:158,1
    - Dst: mp_init
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:158,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:159,1
    - Dst: mp_init
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:159,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:160,1
    - Dst: mp_init
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:160,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:161,1
    - Dst: mp_set_ulong
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:161,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:162,1
    - Dst: mp_set_ulong
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:162,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:163,1
    - Dst: mp_set_ulong
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:163,1
    - Dst: mp_clear
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:165,1
    - Dst: mp_clear
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:166,1
    - Dst: mp_clear
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 153
    functionDepth: 3
    functionLinenumber: 153
    functionLinenumberEnd: 168
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/mpi_unittest.cc
    functionUses: 0
    functionsReached:
    - mp_init
    - ASSERT_EQ
    - mp_set_ulong
    - mp_clear
    - EXPECT_EQ
    - MP_DIGITS
    linkageType: ''
    returnType: void
    signature: void TEST_F(MPITest, MpiSetUlong)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MP_DIGITS
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:172,1
    - Dst: MP_DIGITS
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:173,1
    - Dst: MP_DIGITS
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:174,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:175,1
    - Dst: mp_init
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:175,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:176,1
    - Dst: mp_init
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:176,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:177,1
    - Dst: mp_init
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:177,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:178,1
    - Dst: mp_set_int
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:178,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:179,1
    - Dst: mp_set_int
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:179,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:180,1
    - Dst: mp_set_int
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:180,1
    - Dst: mp_clear
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:182,1
    - Dst: mp_clear
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:183,1
    - Dst: mp_clear
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 185
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/mpi_unittest.cc
    functionUses: 0
    functionsReached:
    - mp_init
    - ASSERT_EQ
    - mp_clear
    - EXPECT_EQ
    - MP_DIGITS
    - mp_set_int
    linkageType: ''
    returnType: void
    signature: void TEST_F(MPITest, MpiSetInt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestToFixedOctets
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:189,1
    - Dst: TestToFixedOctets
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:190,1
    - Dst: TestToFixedOctets
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:191,1
    - Dst: TestToFixedOctets
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 193
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/mpi_unittest.cc
    functionUses: 0
    functionsReached:
    - TestToFixedOctets
    linkageType: ''
    returnType: void
    signature: void TEST_F(MPITest, MpiFixlenOctetsZero)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mp_init
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:211,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:212,1
    - Dst: mp_read_variable_radix
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:213,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:214,1
    - Dst: mp_radix_size
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:216,1
    - Dst: ASSERT_LE
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:217,1
    - Dst: malloc
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:219,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:220,1
    - Dst: mp_toradix
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:221,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:222,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:223,1
    - Dst: strcmp
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:223,1
    - Dst: free
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:224,1
    - Dst: mp_clear
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 195
    functionDepth: 4
    functionLinenumber: 195
    functionLinenumberEnd: 226
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/mpi_unittest.cc
    functionUses: 0
    functionsReached:
    - mp_init
    - ASSERT_EQ
    - malloc
    - strcmp
    - free
    - mp_read_variable_radix
    - ASSERT_LE
    - mp_toradix
    - mp_clear
    - mp_radix_size
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(MPITest, MpiRadixSizeNeg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:231,1
    - Dst: TestToFixedOctets
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:232,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:232,1
    - Dst: TestToFixedOctets
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:233,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:233,1
    - Dst: TestToFixedOctets
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:234,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 236
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/mpi_unittest.cc
    functionUses: 0
    functionsReached:
    - std::vector::size
    - TestToFixedOctets
    - std::vector::push_back
    linkageType: ''
    returnType: void
    signature: void TEST_F(MPITest, MpiFixlenOctetsVarlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:242,1
    - Dst: dump
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:243,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:243,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:243,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:246,1
    - Dst: mp_init
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:246,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:247,1
    - Dst: mp_read_unsigned_octets
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:247,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:247,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:247,1
    - Dst: EXPECT_DEATH
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:250,1
    - Dst: mp_to_fixlen_octets
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:250,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:250,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:252,1
    - Dst: mp_to_fixlen_octets
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:252,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:252,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:254,1
    - Dst: mp_to_fixlen_octets
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:254,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:254,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:255,1
    - Dst: memcmp
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:255,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:255,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:255,1
    - Dst: mp_clear
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 238
    functionDepth: 5
    functionLinenumber: 238
    functionLinenumberEnd: 259
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/mpi_unittest.cc
    functionUses: 0
    functionsReached:
    - dump
    - ASSERT_EQ
    - mp_init
    - std::vector::data
    - std::vector::size
    - std::vector::push_back
    - EXPECT_DEATH
    - mp_read_unsigned_octets
    - memcmp
    - EXPECT_EQ
    - mp_clear
    - mp_to_fixlen_octets
    linkageType: ''
    returnType: void
    signature: void TEST_F(MPITest, MpiFixlenOctetsTooSmall)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MP_DIGITS
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:263,1
    - Dst: MP_DIGITS
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:264,1
    - Dst: MP_DIGITS
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:265,1
    - Dst: std::string::replace
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:271,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:277,1
    - Dst: mp_init
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:277,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:278,1
    - Dst: mp_init
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:278,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:279,1
    - Dst: mp_init
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:279,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:280,1
    - Dst: mp_read_radix
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:280,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:280,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:282,1
    - Dst: mp_set_int
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:282,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:283,1
    - Dst: mpl_lsh
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:283,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:285,1
    - Dst: mp_sqr
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:285,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:286,1
    - Dst: MP_USED
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:286,1
    - Dst: MP_USED
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:286,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:287,1
    - Dst: mp_cmp
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:287,1
    - Dst: mp_clear
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:288,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:291,1
    - Dst: mp_init
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:291,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:292,1
    - Dst: mp_mul
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:292,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:293,1
    - Dst: MP_USED
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:293,1
    - Dst: MP_USED
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:293,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:294,1
    - Dst: mp_cmp
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:294,1
    - Dst: mp_clear
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:296,1
    - Dst: mp_clear
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:297,1
    - Dst: mp_clear
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:298,1
    - Dst: std::string::resize
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:305,1
    - Dst: std::string::size
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:305,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 261
    functionDepth: 6
    functionLinenumber: 261
    functionLinenumberEnd: 307
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/mpi_unittest.cc
    functionUses: 0
    functionsReached:
    - mp_init
    - std::string::replace
    - ASSERT_EQ
    - mp_sqr
    - mp_read_radix
    - std::string::size
    - mp_mul
    - mpl_lsh
    - std::string::c_str
    - MP_USED
    - std::string::resize
    - mp_cmp
    - mp_clear
    - EXPECT_EQ
    - MP_DIGITS
    - mp_set_int
    linkageType: ''
    returnType: void
    signature: void TEST_F(MPITest, MpiSqrMulClamp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MP_DIGITS
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:314,1
    - Dst: MP_DIGITS
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:315,1
    - Dst: MP_DIGITS
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:316,1
    - Dst: MP_DIGITS
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:317,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:318,1
    - Dst: mp_init
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:318,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:319,1
    - Dst: mp_init
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:319,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:320,1
    - Dst: mp_init
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:320,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:321,1
    - Dst: mp_init
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:321,1
    - Dst: mp_read_radix
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:322,1
    - Dst: mp_read_radix
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:326,1
    - Dst: mp_read_radix
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:330,1
    - Dst: mp_invmod
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:335,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:336,1
    - Dst: mp_cmp
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:338,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:339,1
    - Dst: mp_clear
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:341,1
    - Dst: mp_clear
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:342,1
    - Dst: mp_clear
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:343,1
    - Dst: mp_clear
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 309
    functionDepth: 8
    functionLinenumber: 309
    functionLinenumberEnd: 345
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/mpi_unittest.cc
    functionUses: 0
    functionsReached:
    - mp_init
    - ASSERT_EQ
    - mp_read_radix
    - mp_invmod
    - mp_cmp
    - mp_clear
    - EXPECT_EQ
    - MP_DIGITS
    linkageType: ''
    returnType: void
    signature: void TEST_F(MPITest, MpiInvModLoop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MP_DIGITS
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:352,1
    - Dst: MP_DIGITS
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:353,1
    - Dst: MP_DIGITS
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:354,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:355,1
    - Dst: mp_init
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:355,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:356,1
    - Dst: mp_init
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:356,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:357,1
    - Dst: mp_init
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:357,1
    - Dst: mp_read_radix
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:359,1
    - Dst: const_cast<char*>
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:361,1
    - Dst: mp_read_radix
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:364,1
    - Dst: const_cast<char*>
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:366,1
    - Dst: mp_read_radix
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:369,1
    - Dst: const_cast<char*>
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:371,1
    - Dst: mp_taint
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:376,1
    - Dst: mp_taint
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:377,1
    - Dst: nss_test::gettime
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:384,1
    - Dst: mp_cmp
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:385,1
    - Dst: nss_test::gettime
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:386,1
    - Dst: static_cast<unsigned long long>
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:388,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:391,1
    - Dst: printf
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:393,1
    - Dst: nss_test::gettime
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:397,1
    - Dst: mp_cmp
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:398,1
    - Dst: nss_test::gettime
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:399,1
    - Dst: static_cast<unsigned long long>
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:401,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:404,1
    - Dst: printf
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:406,1
    - Dst: mp_clear
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:408,1
    - Dst: mp_clear
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:409,1
    - Dst: mp_clear
      Src: /src/nss/gtests/freebl_gtest/mpi_unittest.cc:410,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 350
    functionDepth: 3
    functionLinenumber: 350
    functionLinenumberEnd: 411
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/mpi_unittest.cc
    functionUses: 0
    functionsReached:
    - mp_init
    - ASSERT_EQ
    - mp_read_radix
    - mp_taint
    - static_cast<unsigned long long>
    - printf
    - const_cast<char*>
    - mp_cmp
    - mp_clear
    - nss_test::gettime
    - MP_DIGITS
    linkageType: ''
    returnType: void
    signature: void TEST_F(DISABLED_MPITest, MpiCmpConstTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Kyber_NewKey
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:36,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:36,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:36,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:37,1
    - Dst: Kyber_Encapsulate
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:39,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:39,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:39,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:40,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:41,1
    - Dst: Kyber_Decapsulate
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:43,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:43,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:43,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:44,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:45,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:47,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:48,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:49,1
    - Dst: memcmp
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 50
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/freebl_gtest/kyber_unittest.cc
    functionUses: 0
    functionsReached:
    - Kyber_Decapsulate
    - Kyber_NewKey
    - ScopedSECItem::get
    - memcmp
    - EXPECT_EQ
    - Kyber_Encapsulate
    linkageType: ''
    returnType: void
    signature: void TEST_P(KyberSelfTest, ConsistencyTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Kyber_NewKey
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:64,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:64,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:65,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:66,1
    - Dst: Kyber_NewKey
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:68,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:68,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:68,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:69,1
    - Dst: Kyber_Encapsulate
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:71,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:71,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:72,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:72,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:73,1
    - Dst: Kyber_Encapsulate
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:75,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:75,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:75,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:76,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:77,1
    - Dst: Kyber_Decapsulate
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:79,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:79,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:80,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:80,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:81,1
    - Dst: Kyber_Decapsulate
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:83,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:83,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:83,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:84,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 86
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/freebl_gtest/kyber_unittest.cc
    functionUses: 0
    functionsReached:
    - Kyber_Decapsulate
    - Kyber_NewKey
    - ScopedSECItem::get
    - EXPECT_EQ
    - Kyber_Encapsulate
    linkageType: ''
    returnType: void
    signature: void TEST_P(KyberSelfTest, InvalidParameterTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_AllocItem
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:91,1
    - Dst: Kyber_NewKey
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:96,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:96,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:96,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 98
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/freebl_gtest/kyber_unittest.cc
    functionUses: 0
    functionsReached:
    - Kyber_NewKey
    - ScopedSECItem::get
    - EXPECT_EQ
    - SECITEM_AllocItem
    linkageType: ''
    returnType: void
    signature: void TEST_P(KyberSelfTest, InvalidPublicKeyTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_AllocItem
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:103,1
    - Dst: Kyber_NewKey
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:116,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:116,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:116,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:117,1
    - Dst: Kyber_Encapsulate
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:119,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:119,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:119,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:120,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:121,1
    - Dst: Kyber_Encapsulate
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:123,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:123,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:123,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:124,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:125,1
    - Dst: RNG_GenerateGlobalRandomBytes
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:129,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:130,1
    - Dst: RNG_GenerateGlobalRandomBytes
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:133,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:134,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:136,1
    - Dst: Kyber_Decapsulate
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:139,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:139,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:139,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:140,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:141,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:143,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:144,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:145,1
    - Dst: memcmp
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 146
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/freebl_gtest/kyber_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NE
    - Kyber_Decapsulate
    - Kyber_NewKey
    - ScopedSECItem::get
    - SECITEM_AllocItem
    - RNG_GenerateGlobalRandomBytes
    - memcmp
    - EXPECT_EQ
    - Kyber_Encapsulate
    linkageType: ''
    returnType: void
    signature: void TEST_P(KyberSelfTest, InvalidCiphertextTest)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_AllocItem
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:151,1
    - Dst: Kyber_NewKey
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:164,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:164,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:164,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:165,1
    - Dst: Kyber_NewKey
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:167,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:167,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:167,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:168,1
    - Dst: Kyber_Encapsulate
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:170,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:170,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:170,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:171,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:172,1
    - Dst: RNG_GenerateGlobalRandomBytes
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:176,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:177,1
    - Dst: RNG_GenerateGlobalRandomBytes
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:180,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:181,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:184,1
    - Dst: Kyber_Decapsulate
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:190,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:190,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:190,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:191,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:192,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:194,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:195,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:196,1
    - Dst: memcmp
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:196,1
    - Dst: Kyber_Decapsulate
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:208,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:208,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:208,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:209,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:211,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:213,1
    - Dst: Kyber_Decapsulate
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:225,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:225,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:225,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:226,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:228,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:230,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 232
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/freebl_gtest/kyber_unittest.cc
    functionUses: 0
    functionsReached:
    - Kyber_Decapsulate
    - Kyber_NewKey
    - ScopedSECItem::get
    - SECITEM_AllocItem
    - RNG_GenerateGlobalRandomBytes
    - memcmp
    - EXPECT_EQ
    - Kyber_Encapsulate
    linkageType: ''
    returnType: void
    signature: void TEST_P(KyberSelfTest, InvalidPrivateKeyTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Kyber_NewKey
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:251,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:251,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:251,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:252,1
    - Dst: Kyber_Encapsulate
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:254,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:254,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:254,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:255,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:256,1
    - Dst: RNG_GenerateGlobalRandomBytes
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:260,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:261,1
    - Dst: RNG_GenerateGlobalRandomBytes
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:264,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:265,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:267,1
    - Dst: Kyber_Decapsulate
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:270,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:270,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:270,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:271,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:272,1
    - Dst: RNG_GenerateGlobalRandomBytes
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:276,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:277,1
    - Dst: RNG_GenerateGlobalRandomBytes
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:279,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:280,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:284,1
    - Dst: Kyber_Decapsulate
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:287,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:287,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:287,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:288,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:289,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:291,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:292,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:293,1
    - Dst: memcmp
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 294
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/freebl_gtest/kyber_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NE
    - Kyber_Decapsulate
    - Kyber_NewKey
    - ScopedSECItem::get
    - RNG_GenerateGlobalRandomBytes
    - memcmp
    - EXPECT_EQ
    - Kyber_Encapsulate
    linkageType: ''
    returnType: void
    signature: void TEST_P(KyberSelfTest, DecapsulationWithModifiedRejectionKeyTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Kyber_NewKey
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:321,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:321,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:322,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:323,1
    - Dst: SHA256_HashBuf
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:325,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:326,1
    - Dst: memcmp
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:326,1
    - Dst: SHA256_HashBuf
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:328,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:329,1
    - Dst: memcmp
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:329,1
    - Dst: Kyber_Encapsulate
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:331,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:331,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:332,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:332,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:333,1
    - Dst: SHA256_HashBuf
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:335,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:336,1
    - Dst: memcmp
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:336,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:338,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:339,1
    - Dst: memcmp
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:339,1
    - Dst: Kyber_Decapsulate
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:341,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:341,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:341,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:342,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:343,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:344,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:345,1
    - Dst: memcmp
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:345,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 347
    functionName: nss_test::TEST
    functionSourceFile: /src/nss/gtests/freebl_gtest/kyber_unittest.cc
    functionUses: 0
    functionsReached:
    - Kyber_Decapsulate
    - Kyber_NewKey
    - ScopedSECItem::get
    - SHA256_HashBuf
    - memcmp
    - EXPECT_EQ
    - Kyber_Encapsulate
    linkageType: ''
    returnType: void
    signature: void TEST(Kyber768Test, KnownAnswersTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Kyber_NewKey
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:361,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:361,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:362,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:363,1
    - Dst: SHA3_256_HashBuf
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:365,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:366,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:367,1
    - Dst: memcmp
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:367,1
    - Dst: SHA3_256_HashBuf
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:369,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:370,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:371,1
    - Dst: memcmp
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:371,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 373
    functionName: nss_test::TEST
    functionSourceFile: /src/nss/gtests/freebl_gtest/kyber_unittest.cc
    functionUses: 0
    functionsReached:
    - Kyber_NewKey
    - ScopedSECItem::get
    - SHA3_256_HashBuf
    - memcmp
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(MlKem768KeyGen, KnownAnswersTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:389,1
    - Dst: Kyber_Encapsulate
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:391,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:392,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:392,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:393,1
    - Dst: SHA3_256_HashBuf
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:395,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:396,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:397,1
    - Dst: memcmp
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:397,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:399,1
    - Dst: memcmp
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:399,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 401
    functionName: nss_test::TEST
    functionSourceFile: /src/nss/gtests/freebl_gtest/kyber_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - ScopedSECItem::get
    - SHA3_256_HashBuf
    - memcmp
    - EXPECT_EQ
    - Kyber_Encapsulate
    linkageType: ''
    returnType: void
    signature: void TEST(MlKem768Encap, KnownAnswersTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:414,1
    - Dst: Kyber_Decapsulate
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:417,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:417,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:418,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:419,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:420,1
    - Dst: memcmp
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:420,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 422
    functionName: nss_test::TEST
    functionSourceFile: /src/nss/gtests/freebl_gtest/kyber_unittest.cc
    functionUses: 0
    functionsReached:
    - Kyber_Decapsulate
    - EXPECT_TRUE
    - ScopedSECItem::get
    - memcmp
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(MlKem768Decap, KnownAnswersTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Kyber_NewKey
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:36,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:36,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:36,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:37,1
    - Dst: Kyber_Encapsulate
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:39,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:39,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:39,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:40,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:41,1
    - Dst: Kyber_Decapsulate
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:43,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:43,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:43,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:44,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:45,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:47,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:48,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:49,1
    - Dst: memcmp
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 50
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/freebl_gtest/kyber_unittest.cc
    functionUses: 0
    functionsReached:
    - Kyber_Decapsulate
    - Kyber_NewKey
    - ScopedSECItem::get
    - memcmp
    - EXPECT_EQ
    - Kyber_Encapsulate
    linkageType: ''
    returnType: void
    signature: void TEST_P(KyberSelfTest, ConsistencyTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Kyber_NewKey
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:64,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:64,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:65,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:66,1
    - Dst: Kyber_NewKey
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:68,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:68,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:68,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:69,1
    - Dst: Kyber_Encapsulate
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:71,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:71,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:72,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:72,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:73,1
    - Dst: Kyber_Encapsulate
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:75,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:75,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:75,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:76,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:77,1
    - Dst: Kyber_Decapsulate
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:79,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:79,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:80,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:80,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:81,1
    - Dst: Kyber_Decapsulate
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:83,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:83,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:83,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:84,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 86
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/freebl_gtest/kyber_unittest.cc
    functionUses: 0
    functionsReached:
    - Kyber_Decapsulate
    - Kyber_NewKey
    - ScopedSECItem::get
    - EXPECT_EQ
    - Kyber_Encapsulate
    linkageType: ''
    returnType: void
    signature: void TEST_P(KyberSelfTest, InvalidParameterTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_AllocItem
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:91,1
    - Dst: Kyber_NewKey
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:96,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:96,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:96,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 98
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/freebl_gtest/kyber_unittest.cc
    functionUses: 0
    functionsReached:
    - Kyber_NewKey
    - ScopedSECItem::get
    - EXPECT_EQ
    - SECITEM_AllocItem
    linkageType: ''
    returnType: void
    signature: void TEST_P(KyberSelfTest, InvalidPublicKeyTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_AllocItem
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:103,1
    - Dst: Kyber_NewKey
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:116,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:116,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:116,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:117,1
    - Dst: Kyber_Encapsulate
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:119,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:119,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:119,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:120,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:121,1
    - Dst: Kyber_Encapsulate
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:123,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:123,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:123,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:124,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:125,1
    - Dst: RNG_GenerateGlobalRandomBytes
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:129,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:130,1
    - Dst: RNG_GenerateGlobalRandomBytes
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:133,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:134,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:136,1
    - Dst: Kyber_Decapsulate
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:139,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:139,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:139,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:140,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:141,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:143,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:144,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:145,1
    - Dst: memcmp
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 146
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/freebl_gtest/kyber_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NE
    - Kyber_Decapsulate
    - Kyber_NewKey
    - ScopedSECItem::get
    - SECITEM_AllocItem
    - RNG_GenerateGlobalRandomBytes
    - memcmp
    - EXPECT_EQ
    - Kyber_Encapsulate
    linkageType: ''
    returnType: void
    signature: void TEST_P(KyberSelfTest, InvalidCiphertextTest)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_AllocItem
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:151,1
    - Dst: Kyber_NewKey
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:164,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:164,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:164,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:165,1
    - Dst: Kyber_NewKey
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:167,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:167,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:167,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:168,1
    - Dst: Kyber_Encapsulate
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:170,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:170,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:170,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:171,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:172,1
    - Dst: RNG_GenerateGlobalRandomBytes
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:176,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:177,1
    - Dst: RNG_GenerateGlobalRandomBytes
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:180,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:181,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:184,1
    - Dst: Kyber_Decapsulate
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:190,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:190,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:190,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:191,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:192,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:194,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:195,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:196,1
    - Dst: memcmp
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:196,1
    - Dst: Kyber_Decapsulate
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:208,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:208,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:208,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:209,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:211,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:213,1
    - Dst: Kyber_Decapsulate
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:225,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:225,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:225,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:226,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:228,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:230,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 232
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/freebl_gtest/kyber_unittest.cc
    functionUses: 0
    functionsReached:
    - Kyber_Decapsulate
    - Kyber_NewKey
    - ScopedSECItem::get
    - SECITEM_AllocItem
    - RNG_GenerateGlobalRandomBytes
    - memcmp
    - EXPECT_EQ
    - Kyber_Encapsulate
    linkageType: ''
    returnType: void
    signature: void TEST_P(KyberSelfTest, InvalidPrivateKeyTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Kyber_NewKey
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:251,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:251,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:251,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:252,1
    - Dst: Kyber_Encapsulate
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:254,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:254,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:254,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:255,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:256,1
    - Dst: RNG_GenerateGlobalRandomBytes
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:260,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:261,1
    - Dst: RNG_GenerateGlobalRandomBytes
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:264,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:265,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:267,1
    - Dst: Kyber_Decapsulate
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:270,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:270,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:270,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:271,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:272,1
    - Dst: RNG_GenerateGlobalRandomBytes
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:276,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:277,1
    - Dst: RNG_GenerateGlobalRandomBytes
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:279,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:280,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:284,1
    - Dst: Kyber_Decapsulate
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:287,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:287,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:287,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:288,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:289,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:291,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:292,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:293,1
    - Dst: memcmp
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 294
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/freebl_gtest/kyber_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NE
    - Kyber_Decapsulate
    - Kyber_NewKey
    - ScopedSECItem::get
    - RNG_GenerateGlobalRandomBytes
    - memcmp
    - EXPECT_EQ
    - Kyber_Encapsulate
    linkageType: ''
    returnType: void
    signature: void TEST_P(KyberSelfTest, DecapsulationWithModifiedRejectionKeyTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Kyber_NewKey
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:321,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:321,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:322,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:323,1
    - Dst: SHA256_HashBuf
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:325,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:326,1
    - Dst: memcmp
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:326,1
    - Dst: SHA256_HashBuf
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:328,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:329,1
    - Dst: memcmp
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:329,1
    - Dst: Kyber_Encapsulate
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:331,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:331,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:332,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:332,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:333,1
    - Dst: SHA256_HashBuf
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:335,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:336,1
    - Dst: memcmp
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:336,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:338,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:339,1
    - Dst: memcmp
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:339,1
    - Dst: Kyber_Decapsulate
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:341,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:341,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:341,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:342,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:343,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:344,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:345,1
    - Dst: memcmp
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:345,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 347
    functionName: nss_test::TEST
    functionSourceFile: /src/nss/gtests/freebl_gtest/kyber_unittest.cc
    functionUses: 0
    functionsReached:
    - Kyber_Decapsulate
    - Kyber_NewKey
    - ScopedSECItem::get
    - SHA256_HashBuf
    - memcmp
    - EXPECT_EQ
    - Kyber_Encapsulate
    linkageType: ''
    returnType: void
    signature: void TEST(Kyber768Test, KnownAnswersTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Kyber_NewKey
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:361,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:361,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:362,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:363,1
    - Dst: SHA3_256_HashBuf
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:365,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:366,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:367,1
    - Dst: memcmp
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:367,1
    - Dst: SHA3_256_HashBuf
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:369,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:370,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:371,1
    - Dst: memcmp
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:371,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 373
    functionName: nss_test::TEST
    functionSourceFile: /src/nss/gtests/freebl_gtest/kyber_unittest.cc
    functionUses: 0
    functionsReached:
    - Kyber_NewKey
    - ScopedSECItem::get
    - SHA3_256_HashBuf
    - memcmp
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(MlKem768KeyGen, KnownAnswersTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:389,1
    - Dst: Kyber_Encapsulate
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:391,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:392,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:392,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:393,1
    - Dst: SHA3_256_HashBuf
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:395,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:396,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:397,1
    - Dst: memcmp
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:397,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:399,1
    - Dst: memcmp
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:399,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 401
    functionName: nss_test::TEST
    functionSourceFile: /src/nss/gtests/freebl_gtest/kyber_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - ScopedSECItem::get
    - SHA3_256_HashBuf
    - memcmp
    - EXPECT_EQ
    - Kyber_Encapsulate
    linkageType: ''
    returnType: void
    signature: void TEST(MlKem768Encap, KnownAnswersTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:414,1
    - Dst: Kyber_Decapsulate
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:417,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:417,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:418,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:419,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:420,1
    - Dst: memcmp
      Src: /src/nss/gtests/freebl_gtest/kyber_unittest.cc:420,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 422
    functionName: nss_test::TEST
    functionSourceFile: /src/nss/gtests/freebl_gtest/kyber_unittest.cc
    functionUses: 0
    functionsReached:
    - Kyber_Decapsulate
    - EXPECT_TRUE
    - ScopedSECItem::get
    - memcmp
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(MlKem768Decap, KnownAnswersTest)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 22
    functionName: nss_test::ECLTest::GetCurveName
    functionSourceFile: /src/nss/gtests/freebl_gtest/ecl_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ECCurveName
    signature: ECCurveName GetCurveName(std::string name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::length
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:25,1
    - Dst: std::vector::push_back
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:26,1
    - Dst: std::stoul
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:26,1
    - Dst: std::string::substr
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 29
    functionName: nss_test::ECLTest::hexStringToBytes
    functionSourceFile: /src/nss/gtests/freebl_gtest/ecl_unittest.cc
    functionUses: 0
    functionsReached:
    - std::stoul
    - std::string::substr
    - std::vector::push_back
    - std::string::length
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> hexStringToBytes(std::string s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::setfill
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:33,1
    - Dst: std::setw
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:33,1
    - Dst: static_cast<int>
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:34,1
    - Dst: std::stringstream::str
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 37
    functionName: nss_test::ECLTest::bytesToHexString
    functionSourceFile: /src/nss/gtests/freebl_gtest/ecl_unittest.cc
    functionUses: 0
    functionsReached:
    - std::setfill
    - std::stringstream::str
    - std::setw
    - static_cast<int>
    linkageType: ''
    returnType: std::string
    signature: std::string bytesToHexString(std::vector<uint8_t> bytes)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::ECLTest::GetCurveName
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:41,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:43,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:46,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:49,1
    - Dst: FAIL
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:52,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:54,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:56,1
    - Dst: FAIL
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:57,1
    - Dst: memcpy
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:61,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - curve
    - params
    argTypes:
    - std::string
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 62
    functionName: nss_test::ECLTest::ecName2params
    functionSourceFile: /src/nss/gtests/freebl_gtest/ecl_unittest.cc
    functionUses: 0
    functionsReached:
    - FAIL
    - memcpy
    - SECOID_FindOIDByTag
    - SECITEM_AllocItem
    - nss_test::ECLTest::GetCurveName
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void ecName2params(const std::string curve, SECItem *params)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_AllocItem
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:68,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:71,1
    - Dst: nss_test::ECLTest::ecName2params
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:73,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:73,1
    - Dst: EC_FillParams
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:74,1
    - Dst: ScopedPLArenaPool::get
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:74,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:74,1
    - Dst: nss_test::ECLTest::hexStringToBytes
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:76,1
    - Dst: ASSERT_GT
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:77,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:77,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:78,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:79,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:79,1
    - Dst: nss_test::ECLTest::hexStringToBytes
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:81,1
    - Dst: ASSERT_GT
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:82,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:82,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:83,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:84,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:84,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:86,1
    - Dst: ECDH_Derive
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:88,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:89,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:90,1
    - Dst: nss_test::ECLTest::bytesToHexString
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:96,1
    - Dst: std::vector<uint8_t>
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:96,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - p
    - secret
    - group_name
    - result
    - expected_status
    argTypes:
    - std::string
    - std::string
    - std::string
    - std::string
    - SECStatus
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 100
    functionName: nss_test::ECLTest::TestECDH_Derive
    functionSourceFile: /src/nss/gtests/freebl_gtest/ecl_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - nss_test::ECLTest::bytesToHexString
    - ECDH_Derive
    - ScopedPLArenaPool::get
    - std::vector::data
    - ScopedSECItem::get
    - ASSERT_TRUE
    - SECITEM_AllocItem
    - std::vector::size
    - static_cast<unsigned int>
    - nss_test::ECLTest::hexStringToBytes
    - std::vector<uint8_t>
    - nss_test::ECLTest::ecName2params
    - ASSERT_GT
    - EC_FillParams
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: "void TestECDH_Derive(const std::string p, const std::string secret,\n
      \                      const std::string group_name, const std::string result,\n
      \                      const SECStatus expected_status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestECDH_Derive
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 108
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/ecl_unittest.cc
    functionUses: 0
    functionsReached:
    - TestECDH_Derive
    linkageType: ''
    returnType: void
    signature: void TEST_F(ECLTest, TestECDH_DeriveP256)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestECDH_Derive
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 122
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/ecl_unittest.cc
    functionUses: 0
    functionsReached:
    - TestECDH_Derive
    linkageType: ''
    returnType: void
    signature: void TEST_F(ECLTest, TestECDH_DeriveP521)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 22
    functionName: nss_test::ECLTest::GetCurveName
    functionSourceFile: /src/nss/gtests/freebl_gtest/ecl_unittest.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ECCurveName
    signature: ECCurveName GetCurveName(std::string name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::length
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:25,1
    - Dst: std::vector::push_back
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:26,1
    - Dst: std::stoul
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:26,1
    - Dst: std::string::substr
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 29
    functionName: nss_test::ECLTest::hexStringToBytes
    functionSourceFile: /src/nss/gtests/freebl_gtest/ecl_unittest.cc
    functionUses: 1
    functionsReached:
    - std::stoul
    - std::string::substr
    - std::vector::push_back
    - std::string::length
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> hexStringToBytes(std::string s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::setfill
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:33,1
    - Dst: std::setw
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:33,1
    - Dst: static_cast<int>
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:34,1
    - Dst: std::stringstream::str
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 37
    functionName: nss_test::ECLTest::bytesToHexString
    functionSourceFile: /src/nss/gtests/freebl_gtest/ecl_unittest.cc
    functionUses: 1
    functionsReached:
    - std::setfill
    - std::stringstream::str
    - std::setw
    - static_cast<int>
    linkageType: ''
    returnType: std::string
    signature: std::string bytesToHexString(std::vector<uint8_t> bytes)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::ECLTest::GetCurveName
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:41,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:43,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:46,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:49,1
    - Dst: FAIL
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:52,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:54,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:56,1
    - Dst: FAIL
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:57,1
    - Dst: memcpy
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:61,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - curve
    - params
    argTypes:
    - std::string
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 62
    functionName: nss_test::ECLTest::ecName2params
    functionSourceFile: /src/nss/gtests/freebl_gtest/ecl_unittest.cc
    functionUses: 1
    functionsReached:
    - FAIL
    - memcpy
    - SECOID_FindOIDByTag
    - SECITEM_AllocItem
    - nss_test::ECLTest::GetCurveName
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void ecName2params(const std::string curve, SECItem *params)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_AllocItem
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:68,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:71,1
    - Dst: nss_test::ECLTest::ecName2params
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:73,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:73,1
    - Dst: EC_FillParams
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:74,1
    - Dst: ScopedPLArenaPool::get
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:74,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:74,1
    - Dst: nss_test::ECLTest::hexStringToBytes
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:76,1
    - Dst: ASSERT_GT
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:77,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:77,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:78,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:79,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:79,1
    - Dst: nss_test::ECLTest::hexStringToBytes
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:81,1
    - Dst: ASSERT_GT
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:82,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:82,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:83,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:84,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:84,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:86,1
    - Dst: ECDH_Derive
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:88,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:89,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:90,1
    - Dst: nss_test::ECLTest::bytesToHexString
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:96,1
    - Dst: std::vector<uint8_t>
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:96,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - p
    - secret
    - group_name
    - result
    - expected_status
    argTypes:
    - std::string
    - std::string
    - std::string
    - std::string
    - SECStatus
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 100
    functionName: nss_test::ECLTest::TestECDH_Derive
    functionSourceFile: /src/nss/gtests/freebl_gtest/ecl_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - nss_test::ECLTest::bytesToHexString
    - ECDH_Derive
    - ScopedPLArenaPool::get
    - std::vector::data
    - ScopedSECItem::get
    - ASSERT_TRUE
    - SECITEM_AllocItem
    - std::vector::size
    - static_cast<unsigned int>
    - nss_test::ECLTest::hexStringToBytes
    - std::vector<uint8_t>
    - nss_test::ECLTest::ecName2params
    - ASSERT_GT
    - EC_FillParams
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: "void TestECDH_Derive(const std::string p, const std::string secret,\n
      \                      const std::string group_name, const std::string result,\n
      \                      const SECStatus expected_status)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestECDH_Derive
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 108
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/ecl_unittest.cc
    functionUses: 0
    functionsReached:
    - TestECDH_Derive
    linkageType: ''
    returnType: void
    signature: void TEST_F(ECLTest, TestECDH_DeriveP256)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestECDH_Derive
      Src: /src/nss/gtests/freebl_gtest/ecl_unittest.cc:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 122
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/ecl_unittest.cc
    functionUses: 0
    functionsReached:
    - TestECDH_Derive
    linkageType: ''
    returnType: void
    signature: void TEST_F(ECLTest, TestECDH_DeriveP521)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BLAKE2B_DestroyContext
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: operator()(T* ptr)
    functionSourceFile: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc
    functionUses: 0
    functionsReached:
    - BLAKE2B_DestroyContext
    linkageType: ''
    returnType: void
    signature: void operator()(T* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BLAKE2B_HashBuf
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:45,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:45,1
    - Dst: data
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:45,1
    - Dst: std::get<0>
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:45,1
    - Dst: GetParam
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:45,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:46,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:47,1
    - Dst: std::get<1>
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:47,1
    - Dst: GetParam
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 48
    functionName: TEST_P
    functionSourceFile: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - std::vector::data
    - std::get<1>
    - GetParam
    - BLAKE2B_HashBuf
    - std::get<0>
    - EXPECT_EQ
    - data
    linkageType: ''
    returnType: void
    signature: void TEST_P(Blake2BKATUnkeyed, Unkeyed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BLAKE2B_MAC_HashBuf
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:52,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:52,1
    - Dst: data
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:52,1
    - Dst: std::get<0>
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:53,1
    - Dst: GetParam
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:53,1
    - Dst: data
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:53,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:55,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:56,1
    - Dst: std::get<1>
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:56,1
    - Dst: GetParam
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 57
    functionName: TEST_P
    functionSourceFile: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - std::vector::data
    - BLAKE2B_MAC_HashBuf
    - std::get<1>
    - GetParam
    - std::get<0>
    - EXPECT_EQ
    - data
    linkageType: ''
    returnType: void
    signature: void TEST_P(Blake2BKATKeyed, Keyed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:66,1
    - Dst: BLAKE2B_Begin
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:68,1
    - Dst: ScopedBLAKE2BContext::get
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:68,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:69,1
    - Dst: BLAKE2B_Update
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:75,1
    - Dst: ScopedBLAKE2BContext::get
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:75,1
    - Dst: data
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:75,1
    - Dst: PR_MIN
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:76,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:77,1
    - Dst: BLAKE2B_FlattenSize
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:79,1
    - Dst: ScopedBLAKE2BContext::get
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:79,1
    - Dst: BLAKE2B_Flatten
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:81,1
    - Dst: ScopedBLAKE2BContext::get
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:81,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:81,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:82,1
    - Dst: BLAKE2B_Resurrect
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:83,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:83,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:84,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:85,1
    - Dst: PORT_Memcmp
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:85,1
    - Dst: ScopedBLAKE2BContext::get
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:85,1
    - Dst: ScopedBLAKE2BContext::get
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:85,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:88,1
    - Dst: BLAKE2B_End
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:91,1
    - Dst: ScopedBLAKE2BContext::get
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:91,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:91,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:92,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:93,1
    - Dst: std::get<1>
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 95
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc
    functionUses: 0
    functionsReached:
    - BLAKE2B_Update
    - ASSERT_EQ
    - BLAKE2B_Resurrect
    - PR_MIN
    - BLAKE2B_FlattenSize
    - std::vector::data
    - PORT_Memcmp
    - BLAKE2B_Begin
    - ASSERT_TRUE
    - BLAKE2B_End
    - BLAKE2B_Flatten
    - ScopedBLAKE2BContext::get
    - std::get<1>
    - data
    linkageType: ''
    returnType: void
    signature: void TEST_F(Blake2BTests, ContextTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:99,1
    - Dst: BLAKE2B_Begin
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:101,1
    - Dst: ScopedBLAKE2BContext::get
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:101,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:102,1
    - Dst: BLAKE2B_Update
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:104,1
    - Dst: ScopedBLAKE2BContext::get
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:104,1
    - Dst: data
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:104,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:105,1
    - Dst: BLAKE2B_Update
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:106,1
    - Dst: ScopedBLAKE2BContext::get
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:106,1
    - Dst: data
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:106,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:107,1
    - Dst: BLAKE2B_End
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:110,1
    - Dst: ScopedBLAKE2BContext::get
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:110,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:110,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:111,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:112,1
    - Dst: std::get<1>
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 114
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc
    functionUses: 0
    functionsReached:
    - BLAKE2B_Update
    - ASSERT_EQ
    - std::vector::data
    - BLAKE2B_Begin
    - ASSERT_TRUE
    - BLAKE2B_End
    - ScopedBLAKE2BContext::get
    - std::get<1>
    - data
    linkageType: ''
    returnType: void
    signature: void TEST_F(Blake2BTests, ContextTest2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BLAKE2B_Begin
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:117,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:118,1
    - Dst: BLAKE2B_Update
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:120,1
    - Dst: data
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:120,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:121,1
    - Dst: BLAKE2B_End
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:124,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:124,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 126
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc
    functionUses: 0
    functionsReached:
    - BLAKE2B_Update
    - ASSERT_EQ
    - std::vector::data
    - BLAKE2B_Begin
    - BLAKE2B_End
    - data
    linkageType: ''
    returnType: void
    signature: void TEST_F(Blake2BTests, NullContextTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:131,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:132,1
    - Dst: BLAKE2B_Begin
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:134,1
    - Dst: ScopedBLAKE2BContext::get
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:134,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:135,1
    - Dst: BLAKE2B_Update
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:136,1
    - Dst: ScopedBLAKE2BContext::get
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:136,1
    - Dst: data
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:136,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:137,1
    - Dst: BLAKE2B_Clone
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:138,1
    - Dst: ScopedBLAKE2BContext::get
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:138,1
    - Dst: ScopedBLAKE2BContext::get
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:138,1
    - Dst: BLAKE2B_End
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:141,1
    - Dst: ScopedBLAKE2BContext::get
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:141,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:141,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:142,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:143,1
    - Dst: std::get<1>
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 145
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc
    functionUses: 0
    functionsReached:
    - BLAKE2B_Update
    - ASSERT_EQ
    - BLAKE2B_Clone
    - std::vector::data
    - BLAKE2B_Begin
    - ASSERT_TRUE
    - BLAKE2B_End
    - ScopedBLAKE2BContext::get
    - std::get<1>
    - data
    linkageType: ''
    returnType: void
    signature: void TEST_F(Blake2BTests, CloneTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BLAKE2B_HashBuf
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:149,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:149,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:150,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:151,1
    - Dst: std::get<1>
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:151,1
    - Dst: std::vector<uint8_t>
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:153,1
    - Dst: BLAKE2B_MAC_HashBuf
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:154,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:154,1
    - Dst: data
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:154,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:156,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:157,1
    - Dst: std::get<1>
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 158
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - std::vector::data
    - data
    - std::vector<uint8_t>
    - BLAKE2B_HashBuf
    - std::get<1>
    - EXPECT_EQ
    - BLAKE2B_MAC_HashBuf
    linkageType: ''
    returnType: void
    signature: void TEST_F(Blake2BTests, NullTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:162,1
    - Dst: BLAKE2B_Hash
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:165,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:165,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:173,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 175
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc
    functionUses: 0
    functionsReached:
    - BLAKE2B_Hash
    - ASSERT_EQ
    - std::vector::data
    - ASSERT_TRUE
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(Blake2BTests, HashTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:179,1
    - Dst: BLAKE2B_Hash
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:182,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:183,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:195,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 197
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc
    functionUses: 0
    functionsReached:
    - BLAKE2B_Hash
    - ASSERT_EQ
    - std::vector::data
    - ASSERT_TRUE
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(Blake2BTests, LongHashTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:201,1
    - Dst: BLAKE2B_Begin
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:203,1
    - Dst: ScopedBLAKE2BContext::get
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:203,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:204,1
    - Dst: BLAKE2B_Update
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:206,1
    - Dst: ScopedBLAKE2BContext::get
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:206,1
    - Dst: data
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:206,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:207,1
    - Dst: BLAKE2B_Update
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:208,1
    - Dst: ScopedBLAKE2BContext::get
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:208,1
    - Dst: data
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:208,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:209,1
    - Dst: BLAKE2B_End
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:214,1
    - Dst: ScopedBLAKE2BContext::get
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:214,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:214,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:215,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:216,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:216,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:217,1
    - Dst: memcmp
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:217,1
    - Dst: std::get<1>
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:217,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 220
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc
    functionUses: 0
    functionsReached:
    - BLAKE2B_Update
    - ASSERT_EQ
    - std::vector::data
    - BLAKE2B_Begin
    - ASSERT_TRUE
    - BLAKE2B_End
    - std::vector::size
    - ScopedBLAKE2BContext::get
    - std::get<1>
    - memcmp
    - data
    linkageType: ''
    returnType: void
    signature: void TEST_F(Blake2BTests, TruncatedHashTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:224,1
    - Dst: BLAKE2B_Begin
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:226,1
    - Dst: ScopedBLAKE2BContext::get
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:226,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:227,1
    - Dst: BLAKE2B_Update
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:229,1
    - Dst: ScopedBLAKE2BContext::get
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:229,1
    - Dst: data
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:229,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:230,1
    - Dst: BLAKE2B_Update
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:231,1
    - Dst: ScopedBLAKE2BContext::get
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:231,1
    - Dst: data
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:231,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:232,1
    - Dst: BLAKE2B_End
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:237,1
    - Dst: ScopedBLAKE2BContext::get
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:237,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:237,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:238,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:239,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 240
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc
    functionUses: 0
    functionsReached:
    - BLAKE2B_Update
    - ASSERT_EQ
    - std::vector::data
    - BLAKE2B_Begin
    - ASSERT_TRUE
    - BLAKE2B_End
    - std::vector::size
    - ScopedBLAKE2BContext::get
    - data
    linkageType: ''
    returnType: void
    signature: void TEST_F(Blake2BTests, TruncatedHashTest2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:244,1
    - Dst: BLAKE2B_MAC_HashBuf
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:257,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:257,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:257,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:257,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:258,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:259,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 260
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc
    functionUses: 0
    functionsReached:
    - std::vector::data
    - PORT_GetError
    - ASSERT_TRUE
    - EXPECT_EQ
    - BLAKE2B_MAC_HashBuf
    linkageType: ''
    returnType: void
    signature: void TEST_F(Blake2BTests, OverlongKeyTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:264,1
    - Dst: BLAKE2B_MAC_HashBuf
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:270,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:270,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:270,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:271,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:272,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 273
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/freebl_gtest/blake2b_unittest.cc
    functionUses: 0
    functionsReached:
    - std::vector::data
    - PORT_GetError
    - ASSERT_TRUE
    - EXPECT_EQ
    - BLAKE2B_MAC_HashBuf
    linkageType: ''
    returnType: void
    signature: void TEST_F(Blake2BTests, EmptyKeyTest)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Free
      Src: /src/nss/gtests/util_gtest/util_aligned_malloc_unittest.cc:21,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 23
    functionName: operator()(T *ptr)
    functionSourceFile: /src/nss/gtests/util_gtest/util_aligned_malloc_unittest.cc
    functionUses: 0
    functionsReached:
    - PORT_Free
    linkageType: ''
    returnType: void
    signature: void operator()(T *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alignment
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: nss_test::AlignedMallocTest::test_align_new
    functionSourceFile: /src/nss/gtests/util_gtest/util_aligned_malloc_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ScopedSomeContext
    signature: ScopedSomeContext test_align_new(size_t alignment)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZAllocAligned
      Src: /src/nss/gtests/util_gtest/util_aligned_malloc_unittest.cc:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - alignment
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 43
    functionName: nss_test::AlignedMallocTest::test_align_alloc
    functionSourceFile: /src/nss/gtests/util_gtest/util_aligned_malloc_unittest.cc
    functionUses: 0
    functionsReached:
    - PORT_ZAllocAligned
    linkageType: ''
    returnType: ScopedSomeContext
    signature: ScopedSomeContext test_align_alloc(size_t alignment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/util_gtest/util_aligned_malloc_unittest.cc:47,1
    - Dst: test_align_new
      Src: /src/nss/gtests/util_gtest/util_aligned_malloc_unittest.cc:48,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/util_gtest/util_aligned_malloc_unittest.cc:49,1
    - Dst: ScopedSomeContext::get
      Src: /src/nss/gtests/util_gtest/util_aligned_malloc_unittest.cc:49,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_aligned_malloc_unittest.cc:50,1
    - Dst: ScopedSomeContext::get
      Src: /src/nss/gtests/util_gtest/util_aligned_malloc_unittest.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/util_gtest/util_aligned_malloc_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - ScopedSomeContext::get
    - GetParam
    - EXPECT_EQ
    - test_align_new
    linkageType: ''
    returnType: void
    signature: void TEST_P(AlignedMallocTest, TestNew)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/util_gtest/util_aligned_malloc_unittest.cc:54,1
    - Dst: test_align_alloc
      Src: /src/nss/gtests/util_gtest/util_aligned_malloc_unittest.cc:55,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/util_gtest/util_aligned_malloc_unittest.cc:56,1
    - Dst: ScopedSomeContext::get
      Src: /src/nss/gtests/util_gtest/util_aligned_malloc_unittest.cc:56,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_aligned_malloc_unittest.cc:57,1
    - Dst: ScopedSomeContext::get
      Src: /src/nss/gtests/util_gtest/util_aligned_malloc_unittest.cc:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 58
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/util_gtest/util_aligned_malloc_unittest.cc
    functionUses: 0
    functionsReached:
    - test_align_alloc
    - EXPECT_TRUE
    - ScopedSomeContext::get
    - GetParam
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(AlignedMallocTest, TestAlloc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/util_gtest/util_aligned_malloc_unittest.cc:63,1
    - Dst: test_align_new
      Src: /src/nss/gtests/util_gtest/util_aligned_malloc_unittest.cc:64,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/util_gtest/util_aligned_malloc_unittest.cc:65,1
    - Dst: ScopedSomeContext::get
      Src: /src/nss/gtests/util_gtest/util_aligned_malloc_unittest.cc:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/util_gtest/util_aligned_malloc_unittest.cc
    functionUses: 0
    functionsReached:
    - ScopedSomeContext::get
    - EXPECT_FALSE
    - GetParam
    - test_align_new
    linkageType: ''
    returnType: void
    signature: void TEST_P(AlignedMallocTestBadSize, TestNew)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/util_gtest/util_aligned_malloc_unittest.cc:69,1
    - Dst: test_align_alloc
      Src: /src/nss/gtests/util_gtest/util_aligned_malloc_unittest.cc:70,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/util_gtest/util_aligned_malloc_unittest.cc:71,1
    - Dst: ScopedSomeContext::get
      Src: /src/nss/gtests/util_gtest/util_aligned_malloc_unittest.cc:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/util_gtest/util_aligned_malloc_unittest.cc
    functionUses: 0
    functionsReached:
    - ScopedSomeContext::get
    - EXPECT_FALSE
    - GetParam
    - test_align_alloc
    linkageType: ''
    returnType: void
    signature: void TEST_P(AlignedMallocTestBadSize, TestAlloc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Free
      Src: /src/nss/gtests/util_gtest/util_aligned_malloc_unittest.cc:21,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 23
    functionName: operator()(T *ptr)
    functionSourceFile: /src/nss/gtests/util_gtest/util_aligned_malloc_unittest.cc
    functionUses: 0
    functionsReached:
    - PORT_Free
    linkageType: ''
    returnType: void
    signature: void operator()(T *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alignment
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: nss_test::AlignedMallocTest::test_align_new
    functionSourceFile: /src/nss/gtests/util_gtest/util_aligned_malloc_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ScopedSomeContext
    signature: ScopedSomeContext test_align_new(size_t alignment)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_ZAllocAligned
      Src: /src/nss/gtests/util_gtest/util_aligned_malloc_unittest.cc:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - alignment
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 43
    functionName: nss_test::AlignedMallocTest::test_align_alloc
    functionSourceFile: /src/nss/gtests/util_gtest/util_aligned_malloc_unittest.cc
    functionUses: 0
    functionsReached:
    - PORT_ZAllocAligned
    linkageType: ''
    returnType: ScopedSomeContext
    signature: ScopedSomeContext test_align_alloc(size_t alignment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/util_gtest/util_aligned_malloc_unittest.cc:47,1
    - Dst: test_align_new
      Src: /src/nss/gtests/util_gtest/util_aligned_malloc_unittest.cc:48,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/util_gtest/util_aligned_malloc_unittest.cc:49,1
    - Dst: ScopedSomeContext::get
      Src: /src/nss/gtests/util_gtest/util_aligned_malloc_unittest.cc:49,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_aligned_malloc_unittest.cc:50,1
    - Dst: ScopedSomeContext::get
      Src: /src/nss/gtests/util_gtest/util_aligned_malloc_unittest.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/util_gtest/util_aligned_malloc_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - ScopedSomeContext::get
    - GetParam
    - EXPECT_EQ
    - test_align_new
    linkageType: ''
    returnType: void
    signature: void TEST_P(AlignedMallocTest, TestNew)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/util_gtest/util_aligned_malloc_unittest.cc:54,1
    - Dst: test_align_alloc
      Src: /src/nss/gtests/util_gtest/util_aligned_malloc_unittest.cc:55,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/util_gtest/util_aligned_malloc_unittest.cc:56,1
    - Dst: ScopedSomeContext::get
      Src: /src/nss/gtests/util_gtest/util_aligned_malloc_unittest.cc:56,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_aligned_malloc_unittest.cc:57,1
    - Dst: ScopedSomeContext::get
      Src: /src/nss/gtests/util_gtest/util_aligned_malloc_unittest.cc:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 58
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/util_gtest/util_aligned_malloc_unittest.cc
    functionUses: 0
    functionsReached:
    - test_align_alloc
    - EXPECT_TRUE
    - ScopedSomeContext::get
    - GetParam
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(AlignedMallocTest, TestAlloc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/util_gtest/util_aligned_malloc_unittest.cc:63,1
    - Dst: test_align_new
      Src: /src/nss/gtests/util_gtest/util_aligned_malloc_unittest.cc:64,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/util_gtest/util_aligned_malloc_unittest.cc:65,1
    - Dst: ScopedSomeContext::get
      Src: /src/nss/gtests/util_gtest/util_aligned_malloc_unittest.cc:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/util_gtest/util_aligned_malloc_unittest.cc
    functionUses: 0
    functionsReached:
    - ScopedSomeContext::get
    - EXPECT_FALSE
    - GetParam
    - test_align_new
    linkageType: ''
    returnType: void
    signature: void TEST_P(AlignedMallocTestBadSize, TestNew)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/util_gtest/util_aligned_malloc_unittest.cc:69,1
    - Dst: test_align_alloc
      Src: /src/nss/gtests/util_gtest/util_aligned_malloc_unittest.cc:70,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/util_gtest/util_aligned_malloc_unittest.cc:71,1
    - Dst: ScopedSomeContext::get
      Src: /src/nss/gtests/util_gtest/util_aligned_malloc_unittest.cc:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/util_gtest/util_aligned_malloc_unittest.cc
    functionUses: 0
    functionsReached:
    - ScopedSomeContext::get
    - EXPECT_FALSE
    - GetParam
    - test_align_alloc
    linkageType: ''
    returnType: void
    signature: void TEST_P(AlignedMallocTestBadSize, TestAlloc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSS_SecureMemcmpZero
      Src: /src/nss/gtests/util_gtest/util_memcmpzero_unittest.cc:15,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/nss/gtests/util_gtest/util_memcmpzero_unittest.cc:15,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/nss/gtests/util_gtest/util_memcmpzero_unittest.cc:15,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mem
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 16
    functionName: nss_test::MemcmpZeroTest::test_memcmp_zero
    functionSourceFile: /src/nss/gtests/util_gtest/util_memcmpzero_unittest.cc
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>::size
    - std::vector<uint8_t>::data
    - NSS_SecureMemcmpZero
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int test_memcmp_zero(const std::vector<uint8_t> &mem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_memcmp_zero
      Src: /src/nss/gtests/util_gtest/util_memcmpzero_unittest.cc:20,1
    - Dst: std::vector<uint8_t>
      Src: /src/nss/gtests/util_gtest/util_memcmpzero_unittest.cc:20,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_memcmpzero_unittest.cc:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/util_gtest/util_memcmpzero_unittest.cc
    functionUses: 0
    functionsReached:
    - test_memcmp_zero
    - std::vector<uint8_t>
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(MemcmpZeroTest, TestMemcmpZeroTrue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_memcmp_zero
      Src: /src/nss/gtests/util_gtest/util_memcmpzero_unittest.cc:27,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/util_gtest/util_memcmpzero_unittest.cc:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 29
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/util_gtest/util_memcmpzero_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NE
    - test_memcmp_zero
    linkageType: ''
    returnType: void
    signature: void TEST_F(MemcmpZeroTest, TestMemcmpZeroFalse5)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::size
      Src: /src/nss/gtests/util_gtest/util_memcmpzero_unittest.cc:33,1
    - Dst: test_memcmp_zero
      Src: /src/nss/gtests/util_gtest/util_memcmpzero_unittest.cc:34,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/util_gtest/util_memcmpzero_unittest.cc:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/util_gtest/util_memcmpzero_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NE
    - test_memcmp_zero
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void TEST_F(MemcmpZeroTest, TestMemcmpZeroFalse37)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_memcmp_zero
      Src: /src/nss/gtests/util_gtest/util_memcmpzero_unittest.cc:41,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/util_gtest/util_memcmpzero_unittest.cc:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 43
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/util_gtest/util_memcmpzero_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NE
    - test_memcmp_zero
    linkageType: ''
    returnType: void
    signature: void TEST_F(MemcmpZeroTest, TestMemcmpZeroFalse0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSS_SecureMemcmpZero
      Src: /src/nss/gtests/util_gtest/util_memcmpzero_unittest.cc:15,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/nss/gtests/util_gtest/util_memcmpzero_unittest.cc:15,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/nss/gtests/util_gtest/util_memcmpzero_unittest.cc:15,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mem
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 16
    functionName: nss_test::MemcmpZeroTest::test_memcmp_zero
    functionSourceFile: /src/nss/gtests/util_gtest/util_memcmpzero_unittest.cc
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>::size
    - std::vector<uint8_t>::data
    - NSS_SecureMemcmpZero
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int test_memcmp_zero(const std::vector<uint8_t> &mem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_memcmp_zero
      Src: /src/nss/gtests/util_gtest/util_memcmpzero_unittest.cc:20,1
    - Dst: std::vector<uint8_t>
      Src: /src/nss/gtests/util_gtest/util_memcmpzero_unittest.cc:20,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_memcmpzero_unittest.cc:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/util_gtest/util_memcmpzero_unittest.cc
    functionUses: 0
    functionsReached:
    - test_memcmp_zero
    - std::vector<uint8_t>
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(MemcmpZeroTest, TestMemcmpZeroTrue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_memcmp_zero
      Src: /src/nss/gtests/util_gtest/util_memcmpzero_unittest.cc:27,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/util_gtest/util_memcmpzero_unittest.cc:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 29
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/util_gtest/util_memcmpzero_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NE
    - test_memcmp_zero
    linkageType: ''
    returnType: void
    signature: void TEST_F(MemcmpZeroTest, TestMemcmpZeroFalse5)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::size
      Src: /src/nss/gtests/util_gtest/util_memcmpzero_unittest.cc:33,1
    - Dst: test_memcmp_zero
      Src: /src/nss/gtests/util_gtest/util_memcmpzero_unittest.cc:34,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/util_gtest/util_memcmpzero_unittest.cc:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/util_gtest/util_memcmpzero_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NE
    - test_memcmp_zero
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void TEST_F(MemcmpZeroTest, TestMemcmpZeroFalse37)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_memcmp_zero
      Src: /src/nss/gtests/util_gtest/util_memcmpzero_unittest.cc:41,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/util_gtest/util_memcmpzero_unittest.cc:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 43
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/util_gtest/util_memcmpzero_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NE
    - test_memcmp_zero
    linkageType: ''
    returnType: void
    signature: void TEST_F(MemcmpZeroTest, TestMemcmpZeroFalse0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:58,1
    - Dst: PR_htonl
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:59,1
    - Dst: sec_port_ucs4_utf8_conversion_function
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:63,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:66,1
    - Dst: ASSERT_LT
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:67,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:68,1
    - Dst: std::string
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:68,1
    - Dst: std::string
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:68,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 70
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/util_gtest/util_utf8_unittest.cc
    functionUses: 0
    functionsReached:
    - sec_port_ucs4_utf8_conversion_function
    - ASSERT_TRUE
    - PR_htonl
    - GetParam
    - std::string
    - ASSERT_LT
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(Ucs4Test, ToUtf8)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:73,1
    - Dst: sec_port_ucs4_utf8_conversion_function
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:77,1
    - Dst: strlen
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:78,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:81,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:82,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:83,1
    - Dst: PR_ntohl
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 84
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/util_gtest/util_utf8_unittest.cc
    functionUses: 0
    functionsReached:
    - PR_ntohl
    - ASSERT_EQ
    - sec_port_ucs4_utf8_conversion_function
    - ASSERT_TRUE
    - GetParam
    - EXPECT_EQ
    - strlen
    linkageType: ''
    returnType: void
    signature: void TEST_P(Ucs4Test, FromUtf8)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:87,1
    - Dst: PR_htonl
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:88,1
    - Dst: strlen
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:91,1
    - Dst: ASSERT_LE
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:93,1
    - Dst: sec_port_ucs4_utf8_conversion_function
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:95,1
    - Dst: ASSERT_FALSE
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:98,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:99,1
    - Dst: strlen
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 100
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/util_gtest/util_utf8_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - sec_port_ucs4_utf8_conversion_function
    - ASSERT_LE
    - PR_htonl
    - GetParam
    - ASSERT_FALSE
    - strlen
    linkageType: ''
    returnType: void
    signature: void TEST_P(Ucs4Test, DestTooSmall)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:106,1
    - Dst: PR_htons
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:107,1
    - Dst: sec_port_ucs2_utf8_conversion_function
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:111,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:114,1
    - Dst: ASSERT_LT
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:115,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:116,1
    - Dst: std::string
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:116,1
    - Dst: std::string
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:116,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 118
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/util_gtest/util_utf8_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_LT
    - sec_port_ucs2_utf8_conversion_function
    - ASSERT_TRUE
    - GetParam
    - std::string
    - PR_htons
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(Ucs2Test, ToUtf8)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:121,1
    - Dst: sec_port_ucs2_utf8_conversion_function
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:125,1
    - Dst: strlen
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:126,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:129,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:130,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:131,1
    - Dst: PR_ntohs
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 132
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/util_gtest/util_utf8_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - sec_port_ucs2_utf8_conversion_function
    - PR_ntohs
    - GetParam
    - EXPECT_EQ
    - strlen
    linkageType: ''
    returnType: void
    signature: void TEST_P(Ucs2Test, FromUtf8)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:135,1
    - Dst: PR_htons
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:136,1
    - Dst: strlen
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:139,1
    - Dst: ASSERT_LE
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:141,1
    - Dst: sec_port_ucs2_utf8_conversion_function
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:143,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:146,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:147,1
    - Dst: strlen
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 148
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/util_gtest/util_utf8_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - sec_port_ucs2_utf8_conversion_function
    - ASSERT_LE
    - GetParam
    - PR_htons
    - strlen
    linkageType: ''
    returnType: void
    signature: void TEST_P(Ucs2Test, DestTooSmall)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:153,1
    - Dst: PR_htons
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:154,1
    - Dst: PR_htons
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:154,1
    - Dst: sec_port_ucs2_utf8_conversion_function
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:159,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:162,1
    - Dst: sec_port_ucs4_utf8_conversion_function
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:164,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:167,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:168,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:169,1
    - Dst: PR_ntohl
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 170
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/util_gtest/util_utf8_unittest.cc
    functionUses: 0
    functionsReached:
    - PR_ntohl
    - ASSERT_EQ
    - sec_port_ucs2_utf8_conversion_function
    - sec_port_ucs4_utf8_conversion_function
    - GetParam
    - PR_htons
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(Utf16Test, From16To32)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:173,1
    - Dst: PR_htonl
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:174,1
    - Dst: sec_port_ucs4_utf8_conversion_function
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:178,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:181,1
    - Dst: sec_port_ucs2_utf8_conversion_function
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:185,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:188,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:189,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:190,1
    - Dst: PR_ntohs
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:190,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:191,1
    - Dst: PR_ntohs
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 192
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/util_gtest/util_utf8_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - sec_port_ucs2_utf8_conversion_function
    - PR_ntohs
    - sec_port_ucs4_utf8_conversion_function
    - PR_htonl
    - GetParam
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(Utf16Test, From32To16)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:195,1
    - Dst: PR_htonl
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:196,1
    - Dst: sec_port_ucs4_utf8_conversion_function
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:200,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:204,1
    - Dst: ASSERT_LE
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:205,1
    - Dst: PR_htons
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:207,1
    - Dst: PR_htons
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:207,1
    - Dst: sec_port_ucs2_utf8_conversion_function
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:211,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:215,1
    - Dst: ASSERT_LE
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:216,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:218,1
    - Dst: std::string
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:218,1
    - Dst: std::string
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 194
    functionDepth: 2
    functionLinenumber: 194
    functionLinenumberEnd: 220
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/util_gtest/util_utf8_unittest.cc
    functionUses: 0
    functionsReached:
    - sec_port_ucs2_utf8_conversion_function
    - sec_port_ucs4_utf8_conversion_function
    - ASSERT_TRUE
    - ASSERT_LE
    - PR_htonl
    - GetParam
    - std::string
    - PR_htons
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(Utf16Test, SameUtf8)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:225,1
    - Dst: sec_port_ucs2_utf8_conversion_function
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:229,1
    - Dst: strlen
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:230,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 234
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/util_gtest/util_utf8_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - strlen
    - GetParam
    - sec_port_ucs2_utf8_conversion_function
    linkageType: ''
    returnType: void
    signature: void TEST_P(BadUtf8Test, HasNoUcs2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:237,1
    - Dst: sec_port_ucs4_utf8_conversion_function
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:241,1
    - Dst: strlen
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:242,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 246
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/util_gtest/util_utf8_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - strlen
    - GetParam
    - sec_port_ucs4_utf8_conversion_function
    linkageType: ''
    returnType: void
    signature: void TEST_P(BadUtf8Test, HasNoUcs4)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:251,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:254,1
    - Dst: PR_htons
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:258,1
    - Dst: ASSERT_LT
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:260,1
    - Dst: sec_port_ucs2_utf8_conversion_function
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:264,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 250
    functionDepth: 2
    functionLinenumber: 250
    functionLinenumberEnd: 269
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/util_gtest/util_utf8_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - ASSERT_LT
    - sec_port_ucs2_utf8_conversion_function
    - PR_ARRAY_SIZE
    - GetParam
    - PR_htons
    linkageType: ''
    returnType: void
    signature: void TEST_P(BadUtf16Test, HasNoUtf8)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:274,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:279,1
    - Dst: sec_port_iso88591_utf8_conversion_function
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:281,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:284,1
    - Dst: ASSERT_LT
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:285,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:286,1
    - Dst: std::string
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:286,1
    - Dst: std::string
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:286,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 288
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/util_gtest/util_utf8_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_TRUE
    - sec_port_iso88591_utf8_conversion_function
    - GetParam
    - std::string
    - ASSERT_LT
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(Iso88591Test, ToUtf8)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sec_port_ucs4_utf8_conversion_function
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:298,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:301,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:302,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 293
    functionDepth: 2
    functionLinenumber: 293
    functionLinenumberEnd: 304
    functionName: nss_test::TEST
    functionSourceFile: /src/nss/gtests/util_gtest/util_utf8_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - EXPECT_EQ
    - sec_port_ucs4_utf8_conversion_function
    - ASSERT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST(Utf8Zeroes, From32To8)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sec_port_ucs2_utf8_conversion_function
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:311,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:314,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:315,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 306
    functionDepth: 2
    functionLinenumber: 306
    functionLinenumberEnd: 317
    functionName: nss_test::TEST
    functionSourceFile: /src/nss/gtests/util_gtest/util_utf8_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - EXPECT_EQ
    - ASSERT_TRUE
    - sec_port_ucs2_utf8_conversion_function
    linkageType: ''
    returnType: void
    signature: void TEST(Utf8Zeroes, From16To8)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sec_port_ucs4_utf8_conversion_function
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:324,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:327,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:328,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 319
    functionDepth: 2
    functionLinenumber: 319
    functionLinenumberEnd: 330
    functionName: nss_test::TEST
    functionSourceFile: /src/nss/gtests/util_gtest/util_utf8_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - EXPECT_EQ
    - sec_port_ucs4_utf8_conversion_function
    - ASSERT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST(Utf8Zeroes, From8To32)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sec_port_ucs2_utf8_conversion_function
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:337,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:340,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:341,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 332
    functionDepth: 2
    functionLinenumber: 332
    functionLinenumberEnd: 343
    functionName: nss_test::TEST
    functionSourceFile: /src/nss/gtests/util_gtest/util_utf8_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - EXPECT_EQ
    - ASSERT_TRUE
    - sec_port_ucs2_utf8_conversion_function
    linkageType: ''
    returnType: void
    signature: void TEST(Utf8Zeroes, From8To16)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:58,1
    - Dst: PR_htonl
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:59,1
    - Dst: sec_port_ucs4_utf8_conversion_function
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:63,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:66,1
    - Dst: ASSERT_LT
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:67,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:68,1
    - Dst: std::string
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:68,1
    - Dst: std::string
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:68,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 70
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/util_gtest/util_utf8_unittest.cc
    functionUses: 0
    functionsReached:
    - sec_port_ucs4_utf8_conversion_function
    - ASSERT_TRUE
    - PR_htonl
    - GetParam
    - std::string
    - ASSERT_LT
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(Ucs4Test, ToUtf8)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:73,1
    - Dst: sec_port_ucs4_utf8_conversion_function
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:77,1
    - Dst: strlen
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:78,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:81,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:82,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:83,1
    - Dst: PR_ntohl
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 84
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/util_gtest/util_utf8_unittest.cc
    functionUses: 0
    functionsReached:
    - PR_ntohl
    - ASSERT_EQ
    - sec_port_ucs4_utf8_conversion_function
    - ASSERT_TRUE
    - GetParam
    - EXPECT_EQ
    - strlen
    linkageType: ''
    returnType: void
    signature: void TEST_P(Ucs4Test, FromUtf8)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:87,1
    - Dst: PR_htonl
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:88,1
    - Dst: strlen
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:91,1
    - Dst: ASSERT_LE
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:93,1
    - Dst: sec_port_ucs4_utf8_conversion_function
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:95,1
    - Dst: ASSERT_FALSE
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:98,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:99,1
    - Dst: strlen
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 100
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/util_gtest/util_utf8_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - sec_port_ucs4_utf8_conversion_function
    - ASSERT_LE
    - PR_htonl
    - GetParam
    - ASSERT_FALSE
    - strlen
    linkageType: ''
    returnType: void
    signature: void TEST_P(Ucs4Test, DestTooSmall)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:106,1
    - Dst: PR_htons
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:107,1
    - Dst: sec_port_ucs2_utf8_conversion_function
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:111,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:114,1
    - Dst: ASSERT_LT
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:115,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:116,1
    - Dst: std::string
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:116,1
    - Dst: std::string
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:116,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 118
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/util_gtest/util_utf8_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_LT
    - sec_port_ucs2_utf8_conversion_function
    - ASSERT_TRUE
    - GetParam
    - std::string
    - PR_htons
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(Ucs2Test, ToUtf8)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:121,1
    - Dst: sec_port_ucs2_utf8_conversion_function
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:125,1
    - Dst: strlen
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:126,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:129,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:130,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:131,1
    - Dst: PR_ntohs
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 132
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/util_gtest/util_utf8_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - sec_port_ucs2_utf8_conversion_function
    - PR_ntohs
    - GetParam
    - EXPECT_EQ
    - strlen
    linkageType: ''
    returnType: void
    signature: void TEST_P(Ucs2Test, FromUtf8)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:135,1
    - Dst: PR_htons
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:136,1
    - Dst: strlen
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:139,1
    - Dst: ASSERT_LE
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:141,1
    - Dst: sec_port_ucs2_utf8_conversion_function
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:143,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:146,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:147,1
    - Dst: strlen
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 148
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/util_gtest/util_utf8_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - sec_port_ucs2_utf8_conversion_function
    - ASSERT_LE
    - GetParam
    - PR_htons
    - strlen
    linkageType: ''
    returnType: void
    signature: void TEST_P(Ucs2Test, DestTooSmall)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:153,1
    - Dst: PR_htons
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:154,1
    - Dst: PR_htons
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:154,1
    - Dst: sec_port_ucs2_utf8_conversion_function
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:159,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:162,1
    - Dst: sec_port_ucs4_utf8_conversion_function
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:164,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:167,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:168,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:169,1
    - Dst: PR_ntohl
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 170
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/util_gtest/util_utf8_unittest.cc
    functionUses: 0
    functionsReached:
    - PR_ntohl
    - ASSERT_EQ
    - sec_port_ucs2_utf8_conversion_function
    - sec_port_ucs4_utf8_conversion_function
    - GetParam
    - PR_htons
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(Utf16Test, From16To32)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:173,1
    - Dst: PR_htonl
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:174,1
    - Dst: sec_port_ucs4_utf8_conversion_function
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:178,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:181,1
    - Dst: sec_port_ucs2_utf8_conversion_function
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:185,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:188,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:189,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:190,1
    - Dst: PR_ntohs
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:190,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:191,1
    - Dst: PR_ntohs
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 192
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/util_gtest/util_utf8_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - sec_port_ucs2_utf8_conversion_function
    - PR_ntohs
    - sec_port_ucs4_utf8_conversion_function
    - PR_htonl
    - GetParam
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(Utf16Test, From32To16)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:195,1
    - Dst: PR_htonl
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:196,1
    - Dst: sec_port_ucs4_utf8_conversion_function
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:200,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:204,1
    - Dst: ASSERT_LE
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:205,1
    - Dst: PR_htons
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:207,1
    - Dst: PR_htons
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:207,1
    - Dst: sec_port_ucs2_utf8_conversion_function
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:211,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:215,1
    - Dst: ASSERT_LE
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:216,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:218,1
    - Dst: std::string
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:218,1
    - Dst: std::string
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 194
    functionDepth: 2
    functionLinenumber: 194
    functionLinenumberEnd: 220
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/util_gtest/util_utf8_unittest.cc
    functionUses: 0
    functionsReached:
    - sec_port_ucs2_utf8_conversion_function
    - sec_port_ucs4_utf8_conversion_function
    - ASSERT_TRUE
    - ASSERT_LE
    - PR_htonl
    - GetParam
    - std::string
    - PR_htons
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(Utf16Test, SameUtf8)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:225,1
    - Dst: sec_port_ucs2_utf8_conversion_function
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:229,1
    - Dst: strlen
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:230,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 234
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/util_gtest/util_utf8_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - strlen
    - GetParam
    - sec_port_ucs2_utf8_conversion_function
    linkageType: ''
    returnType: void
    signature: void TEST_P(BadUtf8Test, HasNoUcs2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:237,1
    - Dst: sec_port_ucs4_utf8_conversion_function
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:241,1
    - Dst: strlen
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:242,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 246
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/util_gtest/util_utf8_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - strlen
    - GetParam
    - sec_port_ucs4_utf8_conversion_function
    linkageType: ''
    returnType: void
    signature: void TEST_P(BadUtf8Test, HasNoUcs4)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:251,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:254,1
    - Dst: PR_htons
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:258,1
    - Dst: ASSERT_LT
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:260,1
    - Dst: sec_port_ucs2_utf8_conversion_function
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:264,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 250
    functionDepth: 2
    functionLinenumber: 250
    functionLinenumberEnd: 269
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/util_gtest/util_utf8_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - ASSERT_LT
    - sec_port_ucs2_utf8_conversion_function
    - PR_ARRAY_SIZE
    - GetParam
    - PR_htons
    linkageType: ''
    returnType: void
    signature: void TEST_P(BadUtf16Test, HasNoUtf8)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:274,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:279,1
    - Dst: sec_port_iso88591_utf8_conversion_function
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:281,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:284,1
    - Dst: ASSERT_LT
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:285,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:286,1
    - Dst: std::string
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:286,1
    - Dst: std::string
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:286,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 288
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/util_gtest/util_utf8_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_TRUE
    - sec_port_iso88591_utf8_conversion_function
    - GetParam
    - std::string
    - ASSERT_LT
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(Iso88591Test, ToUtf8)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sec_port_ucs4_utf8_conversion_function
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:298,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:301,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:302,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 293
    functionDepth: 2
    functionLinenumber: 293
    functionLinenumberEnd: 304
    functionName: nss_test::TEST
    functionSourceFile: /src/nss/gtests/util_gtest/util_utf8_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - EXPECT_EQ
    - sec_port_ucs4_utf8_conversion_function
    - ASSERT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST(Utf8Zeroes, From32To8)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sec_port_ucs2_utf8_conversion_function
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:311,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:314,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:315,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 306
    functionDepth: 2
    functionLinenumber: 306
    functionLinenumberEnd: 317
    functionName: nss_test::TEST
    functionSourceFile: /src/nss/gtests/util_gtest/util_utf8_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - EXPECT_EQ
    - ASSERT_TRUE
    - sec_port_ucs2_utf8_conversion_function
    linkageType: ''
    returnType: void
    signature: void TEST(Utf8Zeroes, From16To8)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sec_port_ucs4_utf8_conversion_function
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:324,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:327,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:328,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 319
    functionDepth: 2
    functionLinenumber: 319
    functionLinenumberEnd: 330
    functionName: nss_test::TEST
    functionSourceFile: /src/nss/gtests/util_gtest/util_utf8_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - EXPECT_EQ
    - sec_port_ucs4_utf8_conversion_function
    - ASSERT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST(Utf8Zeroes, From8To32)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sec_port_ucs2_utf8_conversion_function
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:337,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:340,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:341,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_utf8_unittest.cc:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 332
    functionDepth: 2
    functionLinenumber: 332
    functionLinenumberEnd: 343
    functionName: nss_test::TEST
    functionSourceFile: /src/nss/gtests/util_gtest/util_utf8_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - EXPECT_EQ
    - ASSERT_TRUE
    - sec_port_ucs2_utf8_conversion_function
    linkageType: ''
    returnType: void
    signature: void TEST(Utf8Zeroes, From8To16)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSSBase64_DecodeBuffer
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:20,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:20,1
    - Dst: std::string::size
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:20,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:21,1
    - Dst: NSSBase64_EncodeItem
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:22,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:22,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:23,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:24,1
    - Dst: std::string
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:24,1
    - Dst: PORT_Free
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 26
    functionName: nss_test::B64EncodeDecodeTest::TestDecodeStr
    functionSourceFile: /src/nss/gtests/util_gtest/util_b64_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - std::string::size
    - NSSBase64_DecodeBuffer
    - PORT_Free
    - ScopedSECItem::get
    - NSSBase64_EncodeItem
    - ASSERT_TRUE
    - std::string::c_str
    - std::string
    linkageType: ''
    returnType: void
    signature: void TestDecodeStr(const std::string &str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSSBase64_EncodeItem
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:29,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:34,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:35,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:35,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:35,1
    - Dst: PORT_Free
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - item
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 39
    functionName: nss_test::B64EncodeDecodeTest::TestEncodeItem
    functionSourceFile: /src/nss/gtests/util_gtest/util_b64_unittest.cc
    functionUses: 0
    functionsReached:
    - SECITEM_CompareItem
    - EXPECT_TRUE
    - ScopedSECItem::get
    - PORT_Free
    - NSSBase64_EncodeItem
    - EXPECT_EQ
    linkageType: ''
    returnType: bool
    signature: bool TestEncodeItem(SECItem *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSSBase64_DecodeBuffer
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:43,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:43,1
    - Dst: std::string::size
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: nss_test::B64EncodeDecodeTest::TestFakeDecode
    functionSourceFile: /src/nss/gtests/util_gtest/util_b64_unittest.cc
    functionUses: 0
    functionsReached:
    - std::string::c_str
    - std::string::size
    - NSSBase64_DecodeBuffer
    linkageType: ''
    returnType: bool
    signature: bool TestFakeDecode(size_t str_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::data
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:48,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:49,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:49,1
    - Dst: nss_test::B64EncodeDecodeTest::TestEncodeItem
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: nss_test::B64EncodeDecodeTest::TestFakeEncode
    functionSourceFile: /src/nss/gtests/util_gtest/util_b64_unittest.cc
    functionUses: 0
    functionsReached:
    - static_cast<unsigned int>
    - nss_test::B64EncodeDecodeTest::TestEncodeItem
    - std::vector::data
    - std::vector::size
    linkageType: ''
    returnType: bool
    signature: bool TestFakeEncode(size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestDecodeStr
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/util_gtest/util_b64_unittest.cc
    functionUses: 0
    functionsReached:
    - TestDecodeStr
    linkageType: ''
    returnType: void
    signature: void TEST_F(B64EncodeDecodeTest, DecEncTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestEncodeItem
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/util_gtest/util_b64_unittest.cc
    functionUses: 0
    functionsReached:
    - TestEncodeItem
    linkageType: ''
    returnType: void
    signature: void TEST_F(B64EncodeDecodeTest, EncDecTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:64,1
    - Dst: TestFakeDecode
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/util_gtest/util_b64_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - TestFakeDecode
    linkageType: ''
    returnType: void
    signature: void TEST_F(B64EncodeDecodeTest, FakeDecTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:67,1
    - Dst: TestFakeEncode
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/util_gtest/util_b64_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - TestFakeEncode
    linkageType: ''
    returnType: void
    signature: void TEST_F(B64EncodeDecodeTest, FakeEncDecTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:72,1
    - Dst: TestFakeDecode
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/util_gtest/util_b64_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - TestFakeDecode
    linkageType: ''
    returnType: void
    signature: void TEST_F(B64EncodeDecodeTest, DISABLED_LongFakeDecTest1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestFakeEncode
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/util_gtest/util_b64_unittest.cc
    functionUses: 0
    functionsReached:
    - TestFakeEncode
    linkageType: ''
    returnType: void
    signature: void TEST_F(B64EncodeDecodeTest, DISABLED_LongFakeEncDecTest1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:78,1
    - Dst: TestFakeEncode
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/util_gtest/util_b64_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - TestFakeEncode
    linkageType: ''
    returnType: void
    signature: void TEST_F(B64EncodeDecodeTest, DISABLED_LongFakeEncDecTest2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSSBase64_DecodeBuffer
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:20,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:20,1
    - Dst: std::string::size
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:20,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:21,1
    - Dst: NSSBase64_EncodeItem
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:22,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:22,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:23,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:24,1
    - Dst: std::string
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:24,1
    - Dst: PORT_Free
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 26
    functionName: nss_test::B64EncodeDecodeTest::TestDecodeStr
    functionSourceFile: /src/nss/gtests/util_gtest/util_b64_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - std::string::size
    - NSSBase64_DecodeBuffer
    - PORT_Free
    - ScopedSECItem::get
    - NSSBase64_EncodeItem
    - ASSERT_TRUE
    - std::string::c_str
    - std::string
    linkageType: ''
    returnType: void
    signature: void TestDecodeStr(const std::string &str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NSSBase64_EncodeItem
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:29,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:34,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:35,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:35,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:35,1
    - Dst: PORT_Free
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - item
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 39
    functionName: nss_test::B64EncodeDecodeTest::TestEncodeItem
    functionSourceFile: /src/nss/gtests/util_gtest/util_b64_unittest.cc
    functionUses: 1
    functionsReached:
    - SECITEM_CompareItem
    - EXPECT_TRUE
    - ScopedSECItem::get
    - PORT_Free
    - NSSBase64_EncodeItem
    - EXPECT_EQ
    linkageType: ''
    returnType: bool
    signature: bool TestEncodeItem(SECItem *item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSSBase64_DecodeBuffer
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:43,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:43,1
    - Dst: std::string::size
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: nss_test::B64EncodeDecodeTest::TestFakeDecode
    functionSourceFile: /src/nss/gtests/util_gtest/util_b64_unittest.cc
    functionUses: 0
    functionsReached:
    - std::string::c_str
    - std::string::size
    - NSSBase64_DecodeBuffer
    linkageType: ''
    returnType: bool
    signature: bool TestFakeDecode(size_t str_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::data
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:48,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:49,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:49,1
    - Dst: nss_test::B64EncodeDecodeTest::TestEncodeItem
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: nss_test::B64EncodeDecodeTest::TestFakeEncode
    functionSourceFile: /src/nss/gtests/util_gtest/util_b64_unittest.cc
    functionUses: 0
    functionsReached:
    - static_cast<unsigned int>
    - nss_test::B64EncodeDecodeTest::TestEncodeItem
    - std::vector::data
    - std::vector::size
    linkageType: ''
    returnType: bool
    signature: bool TestFakeEncode(size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestDecodeStr
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/util_gtest/util_b64_unittest.cc
    functionUses: 0
    functionsReached:
    - TestDecodeStr
    linkageType: ''
    returnType: void
    signature: void TEST_F(B64EncodeDecodeTest, DecEncTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestEncodeItem
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/util_gtest/util_b64_unittest.cc
    functionUses: 0
    functionsReached:
    - TestEncodeItem
    linkageType: ''
    returnType: void
    signature: void TEST_F(B64EncodeDecodeTest, EncDecTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:64,1
    - Dst: TestFakeDecode
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/util_gtest/util_b64_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - TestFakeDecode
    linkageType: ''
    returnType: void
    signature: void TEST_F(B64EncodeDecodeTest, FakeDecTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:67,1
    - Dst: TestFakeEncode
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/util_gtest/util_b64_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - TestFakeEncode
    linkageType: ''
    returnType: void
    signature: void TEST_F(B64EncodeDecodeTest, FakeEncDecTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:72,1
    - Dst: TestFakeDecode
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/util_gtest/util_b64_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - TestFakeDecode
    linkageType: ''
    returnType: void
    signature: void TEST_F(B64EncodeDecodeTest, DISABLED_LongFakeDecTest1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestFakeEncode
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/util_gtest/util_b64_unittest.cc
    functionUses: 0
    functionsReached:
    - TestFakeEncode
    linkageType: ''
    returnType: void
    signature: void TEST_F(B64EncodeDecodeTest, DISABLED_LongFakeEncDecTest1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:78,1
    - Dst: TestFakeEncode
      Src: /src/nss/gtests/util_gtest/util_b64_unittest.cc:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/util_gtest/util_b64_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - TestFakeEncode
    linkageType: ''
    returnType: void
    signature: void TEST_F(B64EncodeDecodeTest, DISABLED_LongFakeEncDecTest2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: testing::InitGoogleTest
      Src: /src/nss/gtests/util_gtest/util_gtests.cc:7,1
    - Dst: RUN_ALL_TESTS
      Src: /src/nss/gtests/util_gtest/util_gtests.cc:8,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 6
    functionDepth: 1
    functionLinenumber: 6
    functionLinenumberEnd: 9
    functionName: main
    functionSourceFile: /src/nss/gtests/util_gtest/util_gtests.cc
    functionUses: 43
    functionsReached:
    - testing::InitGoogleTest
    - RUN_ALL_TESTS
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_select_unittest.cc:16,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/nss/gtests/util_gtest/util_select_unittest.cc:16,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/nss/gtests/util_gtest/util_select_unittest.cc:16,1
    - Dst: EXPECT_GE
      Src: /src/nss/gtests/util_gtest/util_select_unittest.cc:17,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/nss/gtests/util_gtest/util_select_unittest.cc:17,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/nss/gtests/util_gtest/util_select_unittest.cc:17,1
    - Dst: NSS_SecureSelect
      Src: /src/nss/gtests/util_gtest/util_select_unittest.cc:18,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/nss/gtests/util_gtest/util_select_unittest.cc:18,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/nss/gtests/util_gtest/util_select_unittest.cc:18,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/nss/gtests/util_gtest/util_select_unittest.cc:18,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/nss/gtests/util_gtest/util_select_unittest.cc:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - dest
    - src0
    - src1
    - b
    argTypes:
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 14
    functionDepth: 2
    functionLinenumber: 14
    functionLinenumberEnd: 20
    functionName: nss_test::SelectTest::test_select
    functionSourceFile: /src/nss/gtests/util_gtest/util_select_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_GE
    - std::vector<uint8_t>::size
    - std::vector<uint8_t>::data
    - NSS_SecureSelect
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: "void test_select(std::vector<uint8_t> &dest, const std::vector<uint8_t>
      &src0,\n                   const std::vector<uint8_t> &src1, unsigned char b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_select
      Src: /src/nss/gtests/util_gtest/util_select_unittest.cc:27,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_select_unittest.cc:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 29
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/util_gtest/util_select_unittest.cc
    functionUses: 0
    functionsReached:
    - test_select
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(SelectTest, TestSelectZero)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_select
      Src: /src/nss/gtests/util_gtest/util_select_unittest.cc:35,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_select_unittest.cc:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 37
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/util_gtest/util_select_unittest.cc
    functionUses: 0
    functionsReached:
    - test_select
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(SelectTest, TestSelectOne)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_select
      Src: /src/nss/gtests/util_gtest/util_select_unittest.cc:43,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_select_unittest.cc:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 45
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/util_gtest/util_select_unittest.cc
    functionUses: 0
    functionsReached:
    - test_select
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(SelectTest, TestSelect170)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_select
      Src: /src/nss/gtests/util_gtest/util_select_unittest.cc:51,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_select_unittest.cc:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 53
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/util_gtest/util_select_unittest.cc
    functionUses: 0
    functionsReached:
    - test_select
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(SelectTest, TestSelect255)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_select_unittest.cc:16,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/nss/gtests/util_gtest/util_select_unittest.cc:16,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/nss/gtests/util_gtest/util_select_unittest.cc:16,1
    - Dst: EXPECT_GE
      Src: /src/nss/gtests/util_gtest/util_select_unittest.cc:17,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/nss/gtests/util_gtest/util_select_unittest.cc:17,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/nss/gtests/util_gtest/util_select_unittest.cc:17,1
    - Dst: NSS_SecureSelect
      Src: /src/nss/gtests/util_gtest/util_select_unittest.cc:18,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/nss/gtests/util_gtest/util_select_unittest.cc:18,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/nss/gtests/util_gtest/util_select_unittest.cc:18,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/nss/gtests/util_gtest/util_select_unittest.cc:18,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/nss/gtests/util_gtest/util_select_unittest.cc:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - dest
    - src0
    - src1
    - b
    argTypes:
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 14
    functionDepth: 2
    functionLinenumber: 14
    functionLinenumberEnd: 20
    functionName: nss_test::SelectTest::test_select
    functionSourceFile: /src/nss/gtests/util_gtest/util_select_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_GE
    - std::vector<uint8_t>::size
    - std::vector<uint8_t>::data
    - NSS_SecureSelect
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: "void test_select(std::vector<uint8_t> &dest, const std::vector<uint8_t>
      &src0,\n                   const std::vector<uint8_t> &src1, unsigned char b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_select
      Src: /src/nss/gtests/util_gtest/util_select_unittest.cc:27,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_select_unittest.cc:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 29
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/util_gtest/util_select_unittest.cc
    functionUses: 0
    functionsReached:
    - test_select
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(SelectTest, TestSelectZero)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_select
      Src: /src/nss/gtests/util_gtest/util_select_unittest.cc:35,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_select_unittest.cc:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 37
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/util_gtest/util_select_unittest.cc
    functionUses: 0
    functionsReached:
    - test_select
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(SelectTest, TestSelectOne)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_select
      Src: /src/nss/gtests/util_gtest/util_select_unittest.cc:43,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_select_unittest.cc:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 45
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/util_gtest/util_select_unittest.cc
    functionUses: 0
    functionsReached:
    - test_select
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(SelectTest, TestSelect170)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_select
      Src: /src/nss/gtests/util_gtest/util_select_unittest.cc:51,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_select_unittest.cc:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 53
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/util_gtest/util_select_unittest.cc
    functionUses: 0
    functionsReached:
    - test_select
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(SelectTest, TestSelect255)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/gtests/util_gtest/util_secasn1d_unittest.cc:33,1
    - Dst: SEC_ASN1DecodeItem
      Src: /src/nss/gtests/util_gtest/util_secasn1d_unittest.cc:49,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_secasn1d_unittest.cc:50,1
    - Dst: SEC_ASN1DecodeItem
      Src: /src/nss/gtests/util_gtest/util_secasn1d_unittest.cc:54,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_secasn1d_unittest.cc:55,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_secasn1d_unittest.cc:60,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_secasn1d_unittest.cc:61,1
    - Dst: memcmp
      Src: /src/nss/gtests/util_gtest/util_secasn1d_unittest.cc:61,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_secasn1d_unittest.cc:64,1
    - Dst: PORT_FreeArena
      Src: /src/nss/gtests/util_gtest/util_secasn1d_unittest.cc:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 67
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/util_gtest/util_secasn1d_unittest.cc
    functionUses: 0
    functionsReached:
    - PORT_NewArena
    - PORT_FreeArena
    - SEC_ASN1DecodeItem
    - memcmp
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(SECASN1DTest, IndefiniteSequenceInIndefiniteGroup)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PORT_NewArena
      Src: /src/nss/gtests/util_gtest/util_secasn1d_unittest.cc:33,1
    - Dst: SEC_ASN1DecodeItem
      Src: /src/nss/gtests/util_gtest/util_secasn1d_unittest.cc:49,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_secasn1d_unittest.cc:50,1
    - Dst: SEC_ASN1DecodeItem
      Src: /src/nss/gtests/util_gtest/util_secasn1d_unittest.cc:54,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_secasn1d_unittest.cc:55,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_secasn1d_unittest.cc:60,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_secasn1d_unittest.cc:61,1
    - Dst: memcmp
      Src: /src/nss/gtests/util_gtest/util_secasn1d_unittest.cc:61,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_secasn1d_unittest.cc:64,1
    - Dst: PORT_FreeArena
      Src: /src/nss/gtests/util_gtest/util_secasn1d_unittest.cc:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 67
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/util_gtest/util_secasn1d_unittest.cc
    functionUses: 0
    functionsReached:
    - PORT_NewArena
    - PORT_FreeArena
    - SEC_ASN1DecodeItem
    - memcmp
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(SECASN1DTest, IndefiniteSequenceInIndefiniteGroup)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pattrs
    - num_pattrs
    - qattrs
    - num_qattrs
    argTypes:
    - PK11URIAttribute*
    - size_t
    - PK11URIAttribute*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 23
    functionName: nss_test::PK11URITest::TestCreate
    functionSourceFile: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool TestCreate(const PK11URIAttribute *pattrs, size_t num_pattrs,\n
      \                 const PK11URIAttribute *qattrs, size_t num_qattrs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:29,1
    - Dst: PK11URI_GetPathAttribute
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:33,1
    - Dst: ScopedPK11URI::get
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:33,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:34,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:36,1
    - Dst: std::string
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:36,1
    - Dst: std::string
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:36,1
    - Dst: PK11URI_GetQueryAttribute
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:40,1
    - Dst: ScopedPK11URI::get
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:40,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:41,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:43,1
    - Dst: std::string
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:43,1
    - Dst: std::string
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:43,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - pattrs
    - num_pattrs
    - qattrs
    - num_qattrs
    argTypes:
    - PK11URIAttribute*
    - size_t
    - PK11URIAttribute*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 25
    functionDepth: 3
    functionLinenumber: 25
    functionLinenumberEnd: 46
    functionName: nss_test::PK11URITest::TestCreateRetrieve
    functionSourceFile: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11URI_GetPathAttribute
    - PK11URI_GetQueryAttribute
    - EXPECT_TRUE
    - ASSERT_TRUE
    - std::string
    - ScopedPK11URI::get
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: "void TestCreateRetrieve(const PK11URIAttribute *pattrs, size_t num_pattrs,\n
      \                         const PK11URIAttribute *qattrs, size_t num_qattrs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:53,1
    - Dst: PK11URI_FormatURI
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:54,1
    - Dst: ScopedPK11URI::get
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:54,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:55,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:57,1
    - Dst: std::string
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:57,1
    - Dst: PORT_Free
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - pattrs
    - num_pattrs
    - qattrs
    - num_qattrs
    - formatted
    argTypes:
    - PK11URIAttribute*
    - size_t
    - PK11URIAttribute*
    - size_t
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 48
    functionDepth: 5
    functionLinenumber: 48
    functionLinenumberEnd: 60
    functionName: nss_test::PK11URITest::TestCreateFormat
    functionSourceFile: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - PORT_Free
    - ASSERT_TRUE
    - std::string
    - PK11URI_FormatURI
    - ScopedPK11URI::get
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: "void TestCreateFormat(const PK11URIAttribute *pattrs, size_t num_pattrs,\n
      \                       const PK11URIAttribute *qattrs, size_t num_qattrs,\n
      \                       const std::string &formatted)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11URI_ParseURI
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:63,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 6
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: nss_test::PK11URITest::TestParse
    functionSourceFile: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc
    functionUses: 0
    functionsReached:
    - std::string::c_str
    - PK11URI_ParseURI
    linkageType: ''
    returnType: bool
    signature: bool TestParse(const std::string &str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PK11URI_ParseURI
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:70,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:70,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:71,1
    - Dst: PK11URI_GetPathAttribute
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:75,1
    - Dst: ScopedPK11URI::get
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:75,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:76,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:78,1
    - Dst: std::string
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:78,1
    - Dst: std::string
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:78,1
    - Dst: PK11URI_GetQueryAttribute
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:82,1
    - Dst: ScopedPK11URI::get
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:82,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:83,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:85,1
    - Dst: std::string
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:85,1
    - Dst: std::string
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:85,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 5
    argNames:
    - str
    - pattrs
    - num_pattrs
    - qattrs
    - num_qattrs
    argTypes:
    - std::string
    - PK11URIAttribute*
    - size_t
    - PK11URIAttribute*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 67
    functionDepth: 6
    functionLinenumber: 67
    functionLinenumberEnd: 88
    functionName: nss_test::PK11URITest::TestParseRetrieve
    functionSourceFile: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11URI_GetPathAttribute
    - PK11URI_ParseURI
    - PK11URI_GetQueryAttribute
    - EXPECT_TRUE
    - ASSERT_TRUE
    - std::string::c_str
    - std::string
    - ScopedPK11URI::get
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: "void TestParseRetrieve(const std::string &str, const PK11URIAttribute
      *pattrs,\n                         size_t num_pattrs, const PK11URIAttribute
      *qattrs,\n                         size_t num_qattrs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11URI_ParseURI
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:91,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:91,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:92,1
    - Dst: PK11URI_FormatURI
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:93,1
    - Dst: ScopedPK11URI::get
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:93,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:94,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:96,1
    - Dst: std::string
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:96,1
    - Dst: PORT_Free
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - str
    - formatted
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 90
    functionDepth: 6
    functionLinenumber: 90
    functionLinenumberEnd: 99
    functionName: nss_test::PK11URITest::TestParseFormat
    functionSourceFile: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11URI_ParseURI
    - EXPECT_TRUE
    - PORT_Free
    - ASSERT_TRUE
    - std::string::c_str
    - std::string
    - PK11URI_FormatURI
    - ScopedPK11URI::get
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TestParseFormat(const std::string &str, const std::string &formatted)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:125,1
    - Dst: TestCreate
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:126,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:126,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:126,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:127,1
    - Dst: TestCreate
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:127,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:127,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:128,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:129,1
    - Dst: TestCreate
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:129,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:129,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:130,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:131,1
    - Dst: TestCreate
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:131,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:131,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 133
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_FALSE
    - TestCreate
    - PR_ARRAY_SIZE
    linkageType: ''
    returnType: void
    signature: void TEST_F(PK11URITest, CreateTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestCreateRetrieve
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:136,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:136,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc
    functionUses: 0
    functionsReached:
    - TestCreateRetrieve
    - PR_ARRAY_SIZE
    linkageType: ''
    returnType: void
    signature: void TEST_F(PK11URITest, CreateRetrieveTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestCreateFormat
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:141,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:141,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 144
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc
    functionUses: 0
    functionsReached:
    - TestCreateFormat
    - PR_ARRAY_SIZE
    linkageType: ''
    returnType: void
    signature: void TEST_F(PK11URITest, CreateFormatTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:147,1
    - Dst: TestParse
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:147,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:148,1
    - Dst: TestParse
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:148,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:149,1
    - Dst: TestParse
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:149,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:150,1
    - Dst: TestParse
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:150,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:151,1
    - Dst: TestParse
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 152
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - TestParse
    linkageType: ''
    returnType: void
    signature: void TEST_F(PK11URITest, ParseTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestParseRetrieve
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:155,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:158,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 159
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc
    functionUses: 0
    functionsReached:
    - TestParseRetrieve
    - PR_ARRAY_SIZE
    linkageType: ''
    returnType: void
    signature: void TEST_F(PK11URITest, ParseRetrieveTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestParseFormat
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:162,1
    - Dst: TestParseFormat
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:163,1
    - Dst: TestParseFormat
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:164,1
    - Dst: TestParseFormat
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:165,1
    - Dst: TestParseFormat
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:167,1
    - Dst: TestParseFormat
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:169,1
    - Dst: TestParseFormat
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:171,1
    - Dst: TestParseFormat
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:172,1
    - Dst: TestParseFormat
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:173,1
    - Dst: TestParseFormat
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 178
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc
    functionUses: 0
    functionsReached:
    - TestParseFormat
    linkageType: ''
    returnType: void
    signature: void TEST_F(PK11URITest, ParseFormatTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pattrs
    - num_pattrs
    - qattrs
    - num_qattrs
    argTypes:
    - PK11URIAttribute*
    - size_t
    - PK11URIAttribute*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 23
    functionName: nss_test::PK11URITest::TestCreate
    functionSourceFile: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool TestCreate(const PK11URIAttribute *pattrs, size_t num_pattrs,\n
      \                 const PK11URIAttribute *qattrs, size_t num_qattrs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:29,1
    - Dst: PK11URI_GetPathAttribute
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:33,1
    - Dst: ScopedPK11URI::get
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:33,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:34,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:36,1
    - Dst: std::string
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:36,1
    - Dst: std::string
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:36,1
    - Dst: PK11URI_GetQueryAttribute
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:40,1
    - Dst: ScopedPK11URI::get
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:40,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:41,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:43,1
    - Dst: std::string
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:43,1
    - Dst: std::string
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:43,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - pattrs
    - num_pattrs
    - qattrs
    - num_qattrs
    argTypes:
    - PK11URIAttribute*
    - size_t
    - PK11URIAttribute*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 25
    functionDepth: 3
    functionLinenumber: 25
    functionLinenumberEnd: 46
    functionName: nss_test::PK11URITest::TestCreateRetrieve
    functionSourceFile: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11URI_GetPathAttribute
    - PK11URI_GetQueryAttribute
    - EXPECT_TRUE
    - ASSERT_TRUE
    - std::string
    - ScopedPK11URI::get
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: "void TestCreateRetrieve(const PK11URIAttribute *pattrs, size_t num_pattrs,\n
      \                         const PK11URIAttribute *qattrs, size_t num_qattrs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:53,1
    - Dst: PK11URI_FormatURI
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:54,1
    - Dst: ScopedPK11URI::get
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:54,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:55,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:57,1
    - Dst: std::string
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:57,1
    - Dst: PORT_Free
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - pattrs
    - num_pattrs
    - qattrs
    - num_qattrs
    - formatted
    argTypes:
    - PK11URIAttribute*
    - size_t
    - PK11URIAttribute*
    - size_t
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 48
    functionDepth: 5
    functionLinenumber: 48
    functionLinenumberEnd: 60
    functionName: nss_test::PK11URITest::TestCreateFormat
    functionSourceFile: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - PORT_Free
    - ASSERT_TRUE
    - std::string
    - PK11URI_FormatURI
    - ScopedPK11URI::get
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: "void TestCreateFormat(const PK11URIAttribute *pattrs, size_t num_pattrs,\n
      \                       const PK11URIAttribute *qattrs, size_t num_qattrs,\n
      \                       const std::string &formatted)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11URI_ParseURI
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:63,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 6
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: nss_test::PK11URITest::TestParse
    functionSourceFile: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc
    functionUses: 0
    functionsReached:
    - std::string::c_str
    - PK11URI_ParseURI
    linkageType: ''
    returnType: bool
    signature: bool TestParse(const std::string &str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PK11URI_ParseURI
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:70,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:70,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:71,1
    - Dst: PK11URI_GetPathAttribute
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:75,1
    - Dst: ScopedPK11URI::get
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:75,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:76,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:78,1
    - Dst: std::string
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:78,1
    - Dst: std::string
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:78,1
    - Dst: PK11URI_GetQueryAttribute
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:82,1
    - Dst: ScopedPK11URI::get
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:82,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:83,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:85,1
    - Dst: std::string
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:85,1
    - Dst: std::string
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:85,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 5
    argNames:
    - str
    - pattrs
    - num_pattrs
    - qattrs
    - num_qattrs
    argTypes:
    - std::string
    - PK11URIAttribute*
    - size_t
    - PK11URIAttribute*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 67
    functionDepth: 6
    functionLinenumber: 67
    functionLinenumberEnd: 88
    functionName: nss_test::PK11URITest::TestParseRetrieve
    functionSourceFile: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11URI_GetPathAttribute
    - PK11URI_ParseURI
    - PK11URI_GetQueryAttribute
    - EXPECT_TRUE
    - ASSERT_TRUE
    - std::string::c_str
    - std::string
    - ScopedPK11URI::get
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: "void TestParseRetrieve(const std::string &str, const PK11URIAttribute
      *pattrs,\n                         size_t num_pattrs, const PK11URIAttribute
      *qattrs,\n                         size_t num_qattrs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11URI_ParseURI
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:91,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:91,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:92,1
    - Dst: PK11URI_FormatURI
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:93,1
    - Dst: ScopedPK11URI::get
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:93,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:94,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:96,1
    - Dst: std::string
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:96,1
    - Dst: PORT_Free
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - str
    - formatted
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 90
    functionDepth: 6
    functionLinenumber: 90
    functionLinenumberEnd: 99
    functionName: nss_test::PK11URITest::TestParseFormat
    functionSourceFile: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11URI_ParseURI
    - EXPECT_TRUE
    - PORT_Free
    - ASSERT_TRUE
    - std::string::c_str
    - std::string
    - PK11URI_FormatURI
    - ScopedPK11URI::get
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TestParseFormat(const std::string &str, const std::string &formatted)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:125,1
    - Dst: TestCreate
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:126,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:126,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:126,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:127,1
    - Dst: TestCreate
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:127,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:127,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:128,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:129,1
    - Dst: TestCreate
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:129,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:129,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:130,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:131,1
    - Dst: TestCreate
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:131,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:131,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 133
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_FALSE
    - TestCreate
    - PR_ARRAY_SIZE
    linkageType: ''
    returnType: void
    signature: void TEST_F(PK11URITest, CreateTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestCreateRetrieve
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:136,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:136,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc
    functionUses: 0
    functionsReached:
    - TestCreateRetrieve
    - PR_ARRAY_SIZE
    linkageType: ''
    returnType: void
    signature: void TEST_F(PK11URITest, CreateRetrieveTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestCreateFormat
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:141,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:141,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 144
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc
    functionUses: 0
    functionsReached:
    - TestCreateFormat
    - PR_ARRAY_SIZE
    linkageType: ''
    returnType: void
    signature: void TEST_F(PK11URITest, CreateFormatTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:147,1
    - Dst: TestParse
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:147,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:148,1
    - Dst: TestParse
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:148,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:149,1
    - Dst: TestParse
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:149,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:150,1
    - Dst: TestParse
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:150,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:151,1
    - Dst: TestParse
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 152
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - TestParse
    linkageType: ''
    returnType: void
    signature: void TEST_F(PK11URITest, ParseTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestParseRetrieve
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:155,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:158,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 159
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc
    functionUses: 0
    functionsReached:
    - TestParseRetrieve
    - PR_ARRAY_SIZE
    linkageType: ''
    returnType: void
    signature: void TEST_F(PK11URITest, ParseRetrieveTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestParseFormat
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:162,1
    - Dst: TestParseFormat
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:163,1
    - Dst: TestParseFormat
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:164,1
    - Dst: TestParseFormat
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:165,1
    - Dst: TestParseFormat
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:167,1
    - Dst: TestParseFormat
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:169,1
    - Dst: TestParseFormat
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:171,1
    - Dst: TestParseFormat
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:172,1
    - Dst: TestParseFormat
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:173,1
    - Dst: TestParseFormat
      Src: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 178
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/util_gtest/util_pkcs11uri_unittest.cc
    functionUses: 0
    functionsReached:
    - TestParseFormat
    linkageType: ''
    returnType: void
    signature: void TEST_F(PK11URITest, ParseFormatTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: testing::InitGoogleTest
      Src: /src/nss/gtests/sysinit_gtest/sysinit_gtest.cc:6,1
    - Dst: RUN_ALL_TESTS
      Src: /src/nss/gtests/sysinit_gtest/sysinit_gtest.cc:7,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 4
    functionDepth: 1
    functionLinenumber: 4
    functionLinenumberEnd: 9
    functionName: main
    functionSourceFile: /src/nss/gtests/sysinit_gtest/sysinit_gtest.cc
    functionUses: 43
    functionsReached:
    - testing::InitGoogleTest
    - RUN_ALL_TESTS
    linkageType: ''
    returnType: int
    signature: int main(int argc, char** argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetEnvSecure
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:23,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:27,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:30,1
    - Dst: unsetenv
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:30,1
    - Dst: mkdtemp
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:33,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:34,1
    - Dst: setenv
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:34,1
    - Dst: c_str
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:34,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 35
    functionName: nss_test::Sysinit::SetUp
    functionSourceFile: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - unsetenv
    - setenv
    - PR_GetEnvSecure
    - mkdtemp
    - c_str
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:40,1
    - Dst: setenv
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:40,1
    - Dst: c_str
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:40,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:42,1
    - Dst: unsetenv
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:42,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:46,1
    - Dst: setenv
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:46,1
    - Dst: c_str
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:46,1
    - Dst: empty
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:49,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:50,1
    - Dst: nss_test::Sysinit::RemoveEmptyDirsFromStart
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:50,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 52
    functionName: nss_test::Sysinit::TearDown
    functionSourceFile: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - unsetenv
    - setenv
    - nss_test::Sysinit::RemoveEmptyDirsFromStart
    - c_str
    - empty
    linkageType: ''
    returnType: void
    signature: void TearDown()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: std::string::find
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:58,1
    - Dst: rmdir
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:62,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:62,1
    - Dst: std::string::length
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:65,1
    - Dst: std::string::length
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:65,1
    - Dst: rmdir
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:68,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:68,1
    - Dst: rmdir
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:73,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:73,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - path
    - start
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 77
    functionName: nss_test::Sysinit::RemoveEmptyDirsFromStart
    functionSourceFile: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc
    functionUses: 1
    functionsReached:
    - std::string::c_str
    - rmdir
    - std::string::length
    - std::string::find
    linkageType: ''
    returnType: int
    signature: int RemoveEmptyDirsFromStart(std::string path, std::string start)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::length
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:87,1
    - Dst: mkdir
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:87,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:87,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:92,1
    - Dst: mkdir
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:92,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - start
    - path
    - mode
    argTypes:
    - std::string
    - std::string
    - mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 94
    functionName: nss_test::Sysinit::CreateEmptyDirsFromStart
    functionSourceFile: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc
    functionUses: 0
    functionsReached:
    - mkdir
    - std::string::c_str
    - EXPECT_EQ
    - std::string::length
    linkageType: ''
    returnType: std::string
    signature: "std::string CreateEmptyDirsFromStart(std::string start,\n                                              std::string
      path, mode_t mode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::Sysinit::SetUp
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:107,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:108,1
    - Dst: setenv
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:108,1
    - Dst: c_str
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: nss_test::SysinitSetXdgUserDataHome::SetUp
    functionSourceFile: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc
    functionUses: 0
    functionsReached:
    - nss_test::Sysinit::SetUp
    - setenv
    - ASSERT_EQ
    - c_str
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::Sysinit::SetUp
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:115,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:117,1
    - Dst: setenv
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:117,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 118
    functionName: nss_test::SysinitSetTrashXdgUserDataHome::SetUp
    functionSourceFile: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc
    functionUses: 0
    functionsReached:
    - nss_test::Sysinit::SetUp
    - std::string::c_str
    - setenv
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:121,1
    - Dst: rmdir
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:121,1
    - Dst: c_str
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:121,1
    - Dst: nss_test::Sysinit::TearDown
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: nss_test::SysinitSetTrashXdgUserDataHome::TearDown
    functionSourceFile: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - rmdir
    - c_str
    - nss_test::Sysinit::TearDown
    linkageType: ''
    returnType: void
    signature: void TearDown()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CreateEmptyDirsFromStart
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:128,1
    - Dst: getUserDB
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:129,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:130,1
    - Dst: PORT_Free
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 127
    functionDepth: 3
    functionLinenumber: 127
    functionLinenumberEnd: 132
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc
    functionUses: 0
    functionsReached:
    - PORT_Free
    - getUserDB
    - ASSERT_EQ
    - CreateEmptyDirsFromStart
    linkageType: ''
    returnType: void
    signature: void TEST_F(Sysinit, LegacyPath)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CreateEmptyDirsFromStart
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:138,1
    - Dst: CreateEmptyDirsFromStart
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:139,1
    - Dst: getUserDB
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:140,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:141,1
    - Dst: PORT_Free
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 137
    functionDepth: 3
    functionLinenumber: 137
    functionLinenumberEnd: 143
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc
    functionUses: 0
    functionsReached:
    - PORT_Free
    - getUserDB
    - ASSERT_EQ
    - CreateEmptyDirsFromStart
    linkageType: ''
    returnType: void
    signature: void TEST_F(Sysinit, XdgDefaultPath)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CreateEmptyDirsFromStart
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:150,1
    - Dst: getUserDB
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:151,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:152,1
    - Dst: PORT_Free
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 148
    functionDepth: 3
    functionLinenumber: 148
    functionLinenumberEnd: 154
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc
    functionUses: 0
    functionsReached:
    - PORT_Free
    - getUserDB
    - ASSERT_EQ
    - CreateEmptyDirsFromStart
    linkageType: ''
    returnType: void
    signature: void TEST_F(SysinitSetXdgUserDataHome, XdgSetPath)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getUserDB
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:160,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 159
    functionDepth: 3
    functionLinenumber: 159
    functionLinenumberEnd: 162
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc
    functionUses: 0
    functionsReached:
    - getUserDB
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(SysinitSetTrashXdgUserDataHome, XdgSetToTrashPath)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetEnvSecure
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:23,1
    - Dst: PR_GetEnvSecure
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:27,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:30,1
    - Dst: unsetenv
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:30,1
    - Dst: mkdtemp
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:33,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:34,1
    - Dst: setenv
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:34,1
    - Dst: c_str
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:34,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 35
    functionName: nss_test::Sysinit::SetUp
    functionSourceFile: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc
    functionUses: 2
    functionsReached:
    - ASSERT_EQ
    - unsetenv
    - setenv
    - PR_GetEnvSecure
    - mkdtemp
    - c_str
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:40,1
    - Dst: setenv
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:40,1
    - Dst: c_str
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:40,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:42,1
    - Dst: unsetenv
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:42,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:46,1
    - Dst: setenv
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:46,1
    - Dst: c_str
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:46,1
    - Dst: empty
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:49,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:50,1
    - Dst: nss_test::Sysinit::RemoveEmptyDirsFromStart
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:50,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 52
    functionName: nss_test::Sysinit::TearDown
    functionSourceFile: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc
    functionUses: 1
    functionsReached:
    - ASSERT_EQ
    - unsetenv
    - setenv
    - nss_test::Sysinit::RemoveEmptyDirsFromStart
    - c_str
    - empty
    linkageType: ''
    returnType: void
    signature: void TearDown()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: std::string::find
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:58,1
    - Dst: rmdir
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:62,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:62,1
    - Dst: std::string::length
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:65,1
    - Dst: std::string::length
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:65,1
    - Dst: rmdir
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:68,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:68,1
    - Dst: rmdir
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:73,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:73,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - path
    - start
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 77
    functionName: nss_test::Sysinit::RemoveEmptyDirsFromStart
    functionSourceFile: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc
    functionUses: 2
    functionsReached:
    - std::string::c_str
    - rmdir
    - std::string::length
    - std::string::find
    linkageType: ''
    returnType: int
    signature: int RemoveEmptyDirsFromStart(std::string path, std::string start)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::length
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:87,1
    - Dst: mkdir
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:87,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:87,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:92,1
    - Dst: mkdir
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:92,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - start
    - path
    - mode
    argTypes:
    - std::string
    - std::string
    - mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 94
    functionName: nss_test::Sysinit::CreateEmptyDirsFromStart
    functionSourceFile: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc
    functionUses: 0
    functionsReached:
    - mkdir
    - std::string::c_str
    - EXPECT_EQ
    - std::string::length
    linkageType: ''
    returnType: std::string
    signature: "std::string CreateEmptyDirsFromStart(std::string start,\n                                              std::string
      path, mode_t mode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::Sysinit::SetUp
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:107,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:108,1
    - Dst: setenv
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:108,1
    - Dst: c_str
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: nss_test::SysinitSetXdgUserDataHome::SetUp
    functionSourceFile: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc
    functionUses: 0
    functionsReached:
    - nss_test::Sysinit::SetUp
    - setenv
    - ASSERT_EQ
    - c_str
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::Sysinit::SetUp
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:115,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:117,1
    - Dst: setenv
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:117,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 118
    functionName: nss_test::SysinitSetTrashXdgUserDataHome::SetUp
    functionSourceFile: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc
    functionUses: 0
    functionsReached:
    - nss_test::Sysinit::SetUp
    - std::string::c_str
    - setenv
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:121,1
    - Dst: rmdir
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:121,1
    - Dst: c_str
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:121,1
    - Dst: nss_test::Sysinit::TearDown
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: nss_test::SysinitSetTrashXdgUserDataHome::TearDown
    functionSourceFile: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - rmdir
    - c_str
    - nss_test::Sysinit::TearDown
    linkageType: ''
    returnType: void
    signature: void TearDown()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CreateEmptyDirsFromStart
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:128,1
    - Dst: getUserDB
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:129,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:130,1
    - Dst: PORT_Free
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 127
    functionDepth: 3
    functionLinenumber: 127
    functionLinenumberEnd: 132
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc
    functionUses: 0
    functionsReached:
    - PORT_Free
    - getUserDB
    - ASSERT_EQ
    - CreateEmptyDirsFromStart
    linkageType: ''
    returnType: void
    signature: void TEST_F(Sysinit, LegacyPath)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CreateEmptyDirsFromStart
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:138,1
    - Dst: CreateEmptyDirsFromStart
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:139,1
    - Dst: getUserDB
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:140,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:141,1
    - Dst: PORT_Free
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 137
    functionDepth: 3
    functionLinenumber: 137
    functionLinenumberEnd: 143
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc
    functionUses: 0
    functionsReached:
    - PORT_Free
    - getUserDB
    - ASSERT_EQ
    - CreateEmptyDirsFromStart
    linkageType: ''
    returnType: void
    signature: void TEST_F(Sysinit, XdgDefaultPath)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CreateEmptyDirsFromStart
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:150,1
    - Dst: getUserDB
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:151,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:152,1
    - Dst: PORT_Free
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 148
    functionDepth: 3
    functionLinenumber: 148
    functionLinenumberEnd: 154
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc
    functionUses: 0
    functionsReached:
    - PORT_Free
    - getUserDB
    - ASSERT_EQ
    - CreateEmptyDirsFromStart
    linkageType: ''
    returnType: void
    signature: void TEST_F(SysinitSetXdgUserDataHome, XdgSetPath)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getUserDB
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:160,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 159
    functionDepth: 3
    functionLinenumber: 159
    functionLinenumberEnd: 162
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/sysinit_gtest/getUserDB_unittest.cc
    functionUses: 0
    functionsReached:
    - getUserDB
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(SysinitSetTrashXdgUserDataHome, XdgSetToTrashPath)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 57
    functionName: nss_test::TlsPrfTest::TlsPrfTest
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc
    functionUses: 0
    functionsReached:
    - toUcharPtr
    linkageType: ''
    returnType: void
    signature: void TlsPrfTest()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_FreeSlot
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:61,1
    - Dst: ClearTempVars
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 59
    functionDepth: 3
    functionLinenumber: 59
    functionLinenumberEnd: 64
    functionName: ~TlsPrfTest()
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc
    functionUses: 0
    functionsReached:
    - ClearTempVars
    - PK11_FreeSlot
    linkageType: ''
    returnType: void
    signature: void ~TlsPrfTest()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PK11_FreeSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:68,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 66
    functionDepth: 4
    functionLinenumber: 66
    functionLinenumberEnd: 73
    functionName: nss_test::TlsPrfTest::ClearTempVars
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_FreeSymKey
    linkageType: ''
    returnType: void
    signature: void ClearTempVars()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:80,1
    - Dst: static_cast<const unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:80,1
    - Dst: PK11_GetInternalSlot
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:82,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 75
    functionDepth: 4
    functionLinenumber: 75
    functionLinenumberEnd: 84
    functionName: nss_test::TlsPrfTest::Init
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_NE
    - const_cast<unsigned char*>
    - PK11_GetInternalSlot
    - static_cast<const unsigned char*>
    linkageType: ''
    returnType: void
    signature: void Init()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::TlsPrfTest::Inner
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - hash_mech
    - seed_len
    - pms_len
    - output_len
    argTypes:
    - CK_MECHANISM_TYPE
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 91
    functionName: nss_test::TlsPrfTest::CheckForError
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc
    functionUses: 0
    functionsReached:
    - nss_test::TlsPrfTest::Inner
    linkageType: ''
    returnType: void
    signature: "void CheckForError(CK_MECHANISM_TYPE hash_mech, size_t seed_len,\n
      \                    size_t pms_len, size_t output_len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:106,1
    - Dst: nss_test::TlsPrfTest::Inner
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:109,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - derive_mech
    - hash_mech
    - version
    - expected
    argTypes:
    - CK_MECHANISM_TYPE
    - CK_MECHANISM_TYPE
    - CK_VERSION*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 110
    functionName: nss_test::TlsPrfTest::ComputeAndVerifyMs
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc
    functionUses: 0
    functionsReached:
    - nss_test::TlsPrfTest::Inner
    - ASSERT_TRUE
    linkageType: ''
    returnType: void
    signature: "void ComputeAndVerifyMs(CK_MECHANISM_TYPE derive_mech,\n                          CK_MECHANISM_TYPE
      hash_mech, CK_VERSION* version,\n                          const uint8_t* expected)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::TlsPrfTest::ClearTempVars
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:116,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:127,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:132,1
    - Dst: static_cast<CK_ULONG>
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:132,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:134,1
    - Dst: PK11_ImportSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:139,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:141,1
    - Dst: PK11_DeriveWithFlags
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:144,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:149,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:151,1
    - Dst: PK11_ExtractKeyValue
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:153,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:154,1
    - Dst: PK11_GetKeyData
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:156,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:157,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:159,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:160,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:160,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 7
    argNames:
    - derive_mech
    - hash_mech
    - seed_len
    - pms_len
    - output_len
    - version
    - expected
    argTypes:
    - CK_MECHANISM_TYPE
    - CK_MECHANISM_TYPE
    - size_t
    - size_t
    - size_t
    - CK_VERSION*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 113
    functionDepth: 6
    functionLinenumber: 113
    functionLinenumberEnd: 162
    functionName: nss_test::TlsPrfTest::Inner
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc
    functionUses: 2
    functionsReached:
    - ASSERT_EQ
    - reinterpret_cast<unsigned char*>
    - static_cast<CK_ULONG>
    - nss_test::TlsPrfTest::ClearTempVars
    - ASSERT_TRUE
    - PK11_DeriveWithFlags
    - PK11_ImportSymKey
    - PK11_ExtractKeyValue
    - PK11_GetKeyData
    - toUcharPtr
    - memcmp
    - EXPECT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: "void Inner(CK_MECHANISM_TYPE derive_mech, CK_MECHANISM_TYPE hash_mech,\n
      \            size_t seed_len, size_t pms_len, size_t output_len,\n             CK_VERSION*
      version, const uint8_t* expected)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:175,1
    - Dst: CheckForError
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:182,1
    - Dst: CheckForError
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:185,1
    - Dst: CheckForError
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:188,1
    - Dst: CheckForError
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 192
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc
    functionUses: 0
    functionsReached:
    - Init
    - CheckForError
    linkageType: ''
    returnType: void
    signature: void TEST_F(TlsPrfTest, ExtendedMsParamErr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:200,1
    - Dst: ComputeAndVerifyMs
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 203
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc
    functionUses: 0
    functionsReached:
    - ComputeAndVerifyMs
    - Init
    linkageType: ''
    returnType: void
    signature: void TEST_F(TlsPrfTest, ExtendedMsDhTlsPrf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:206,1
    - Dst: ComputeAndVerifyMs
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:207,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:209,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 211
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc
    functionUses: 0
    functionsReached:
    - ComputeAndVerifyMs
    - Init
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(TlsPrfTest, ExtendedMsRsaTlsPrf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:214,1
    - Dst: ComputeAndVerifyMs
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 217
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc
    functionUses: 0
    functionsReached:
    - ComputeAndVerifyMs
    - Init
    linkageType: ''
    returnType: void
    signature: void TEST_F(TlsPrfTest, ExtendedMsDhSha256)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:220,1
    - Dst: ComputeAndVerifyMs
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:221,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:223,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 225
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc
    functionUses: 0
    functionsReached:
    - ComputeAndVerifyMs
    - Init
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(TlsPrfTest, ExtendedMsRsaSha256)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 57
    functionName: nss_test::TlsPrfTest::TlsPrfTest
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc
    functionUses: 0
    functionsReached:
    - toUcharPtr
    linkageType: ''
    returnType: void
    signature: void TlsPrfTest()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_FreeSlot
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:61,1
    - Dst: ClearTempVars
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 59
    functionDepth: 3
    functionLinenumber: 59
    functionLinenumberEnd: 64
    functionName: ~TlsPrfTest()
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc
    functionUses: 0
    functionsReached:
    - ClearTempVars
    - PK11_FreeSlot
    linkageType: ''
    returnType: void
    signature: void ~TlsPrfTest()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PK11_FreeSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:68,1
    - Dst: PK11_FreeSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 66
    functionDepth: 4
    functionLinenumber: 66
    functionLinenumberEnd: 73
    functionName: nss_test::TlsPrfTest::ClearTempVars
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc
    functionUses: 1
    functionsReached:
    - PK11_FreeSymKey
    linkageType: ''
    returnType: void
    signature: void ClearTempVars()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:80,1
    - Dst: static_cast<const unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:80,1
    - Dst: PK11_GetInternalSlot
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:82,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 75
    functionDepth: 4
    functionLinenumber: 75
    functionLinenumberEnd: 84
    functionName: nss_test::TlsPrfTest::Init
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_NE
    - const_cast<unsigned char*>
    - PK11_GetInternalSlot
    - static_cast<const unsigned char*>
    linkageType: ''
    returnType: void
    signature: void Init()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::TlsPrfTest::Inner
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - hash_mech
    - seed_len
    - pms_len
    - output_len
    argTypes:
    - CK_MECHANISM_TYPE
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 86
    functionDepth: 7
    functionLinenumber: 86
    functionLinenumberEnd: 91
    functionName: nss_test::TlsPrfTest::CheckForError
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc
    functionUses: 0
    functionsReached:
    - nss_test::TlsPrfTest::Inner
    linkageType: ''
    returnType: void
    signature: "void CheckForError(CK_MECHANISM_TYPE hash_mech, size_t seed_len,\n
      \                    size_t pms_len, size_t output_len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:106,1
    - Dst: nss_test::TlsPrfTest::Inner
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:109,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - derive_mech
    - hash_mech
    - version
    - expected
    argTypes:
    - CK_MECHANISM_TYPE
    - CK_MECHANISM_TYPE
    - CK_VERSION*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 93
    functionDepth: 7
    functionLinenumber: 93
    functionLinenumberEnd: 110
    functionName: nss_test::TlsPrfTest::ComputeAndVerifyMs
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc
    functionUses: 0
    functionsReached:
    - nss_test::TlsPrfTest::Inner
    - ASSERT_TRUE
    linkageType: ''
    returnType: void
    signature: "void ComputeAndVerifyMs(CK_MECHANISM_TYPE derive_mech,\n                          CK_MECHANISM_TYPE
      hash_mech, CK_VERSION* version,\n                          const uint8_t* expected)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::TlsPrfTest::ClearTempVars
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:116,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:127,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:132,1
    - Dst: static_cast<CK_ULONG>
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:132,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:134,1
    - Dst: PK11_ImportSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:139,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:141,1
    - Dst: PK11_DeriveWithFlags
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:144,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:149,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:151,1
    - Dst: PK11_ExtractKeyValue
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:153,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:154,1
    - Dst: PK11_GetKeyData
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:156,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:157,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:159,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:160,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:160,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 7
    argNames:
    - derive_mech
    - hash_mech
    - seed_len
    - pms_len
    - output_len
    - version
    - expected
    argTypes:
    - CK_MECHANISM_TYPE
    - CK_MECHANISM_TYPE
    - size_t
    - size_t
    - size_t
    - CK_VERSION*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 113
    functionDepth: 6
    functionLinenumber: 113
    functionLinenumberEnd: 162
    functionName: nss_test::TlsPrfTest::Inner
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc
    functionUses: 4
    functionsReached:
    - ASSERT_EQ
    - reinterpret_cast<unsigned char*>
    - static_cast<CK_ULONG>
    - nss_test::TlsPrfTest::ClearTempVars
    - ASSERT_TRUE
    - PK11_DeriveWithFlags
    - PK11_ImportSymKey
    - PK11_ExtractKeyValue
    - PK11_GetKeyData
    - toUcharPtr
    - memcmp
    - EXPECT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: "void Inner(CK_MECHANISM_TYPE derive_mech, CK_MECHANISM_TYPE hash_mech,\n
      \            size_t seed_len, size_t pms_len, size_t output_len,\n             CK_VERSION*
      version, const uint8_t* expected)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:175,1
    - Dst: CheckForError
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:182,1
    - Dst: CheckForError
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:185,1
    - Dst: CheckForError
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:188,1
    - Dst: CheckForError
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 192
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc
    functionUses: 0
    functionsReached:
    - Init
    - CheckForError
    linkageType: ''
    returnType: void
    signature: void TEST_F(TlsPrfTest, ExtendedMsParamErr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:200,1
    - Dst: ComputeAndVerifyMs
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 203
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc
    functionUses: 0
    functionsReached:
    - ComputeAndVerifyMs
    - Init
    linkageType: ''
    returnType: void
    signature: void TEST_F(TlsPrfTest, ExtendedMsDhTlsPrf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:206,1
    - Dst: ComputeAndVerifyMs
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:207,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:209,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 211
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc
    functionUses: 0
    functionsReached:
    - ComputeAndVerifyMs
    - Init
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(TlsPrfTest, ExtendedMsRsaTlsPrf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:214,1
    - Dst: ComputeAndVerifyMs
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 217
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc
    functionUses: 0
    functionsReached:
    - ComputeAndVerifyMs
    - Init
    linkageType: ''
    returnType: void
    signature: void TEST_F(TlsPrfTest, ExtendedMsDhSha256)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Init
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:220,1
    - Dst: ComputeAndVerifyMs
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:221,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:223,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 225
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_prf_unittest.cc
    functionUses: 0
    functionsReached:
    - ComputeAndVerifyMs
    - Init
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(TlsPrfTest, ExtendedMsRsaSha256)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_KeyGen
      Src: /src/nss/gtests/pk11_gtest/pk11_seed_cbc_unittest.cc:25,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_seed_cbc_unittest.cc:25,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_seed_cbc_unittest.cc:26,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_seed_cbc_unittest.cc:31,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_seed_cbc_unittest.cc:32,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_seed_cbc_unittest.cc:37,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_seed_cbc_unittest.cc:38,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_seed_cbc_unittest.cc:38,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_seed_cbc_unittest.cc:38,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_seed_cbc_unittest.cc:39,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_seed_cbc_unittest.cc:40,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_seed_cbc_unittest.cc:43,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_seed_cbc_unittest.cc:44,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_seed_cbc_unittest.cc:44,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_seed_cbc_unittest.cc:44,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_seed_cbc_unittest.cc:45,1
    - Dst: std::vector::resize
      Src: /src/nss/gtests/pk11_gtest/pk11_seed_cbc_unittest.cc:47,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_seed_cbc_unittest.cc:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - expected
    - input_size
    - output_size
    argTypes:
    - SECStatus
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 19
    functionDepth: 5
    functionLinenumber: 19
    functionLinenumberEnd: 50
    functionName: nss_test::Pkcs11SeedTest::EncryptDecryptSeed
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_seed_cbc_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - std::vector::resize
    - PK11_Decrypt
    - std::vector::data
    - EXPECT_TRUE
    - ScopedPK11SymKey::get
    - std::vector::size
    - PK11_KeyGen
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: "void EncryptDecryptSeed(SECStatus expected, unsigned int input_size,\n
      \                         unsigned int output_size,\n                          CK_MECHANISM_TYPE
      mech = CKM_SEED_CBC)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EncryptDecryptSeed
      Src: /src/nss/gtests/pk11_gtest/pk11_seed_cbc_unittest.cc:61,1
    - Dst: EncryptDecryptSeed
      Src: /src/nss/gtests/pk11_gtest/pk11_seed_cbc_unittest.cc:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_seed_cbc_unittest.cc
    functionUses: 0
    functionsReached:
    - EncryptDecryptSeed
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11SeedTest, CBC_ValidArgs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EncryptDecryptSeed
      Src: /src/nss/gtests/pk11_gtest/pk11_seed_cbc_unittest.cc:68,1
    - Dst: EncryptDecryptSeed
      Src: /src/nss/gtests/pk11_gtest/pk11_seed_cbc_unittest.cc:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 71
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_seed_cbc_unittest.cc
    functionUses: 0
    functionsReached:
    - EncryptDecryptSeed
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11SeedTest, CBC_InvalidArgs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EncryptDecryptSeed
      Src: /src/nss/gtests/pk11_gtest/pk11_seed_cbc_unittest.cc:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_seed_cbc_unittest.cc
    functionUses: 0
    functionsReached:
    - EncryptDecryptSeed
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11SeedTest, ECB_Singleblock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EncryptDecryptSeed
      Src: /src/nss/gtests/pk11_gtest/pk11_seed_cbc_unittest.cc:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_seed_cbc_unittest.cc
    functionUses: 0
    functionsReached:
    - EncryptDecryptSeed
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11SeedTest, ECB_Multiblock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_KeyGen
      Src: /src/nss/gtests/pk11_gtest/pk11_seed_cbc_unittest.cc:25,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_seed_cbc_unittest.cc:25,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_seed_cbc_unittest.cc:26,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_seed_cbc_unittest.cc:31,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_seed_cbc_unittest.cc:32,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_seed_cbc_unittest.cc:37,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_seed_cbc_unittest.cc:38,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_seed_cbc_unittest.cc:38,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_seed_cbc_unittest.cc:38,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_seed_cbc_unittest.cc:39,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_seed_cbc_unittest.cc:40,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_seed_cbc_unittest.cc:43,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_seed_cbc_unittest.cc:44,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_seed_cbc_unittest.cc:44,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_seed_cbc_unittest.cc:44,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_seed_cbc_unittest.cc:45,1
    - Dst: std::vector::resize
      Src: /src/nss/gtests/pk11_gtest/pk11_seed_cbc_unittest.cc:47,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_seed_cbc_unittest.cc:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - expected
    - input_size
    - output_size
    argTypes:
    - SECStatus
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 19
    functionDepth: 5
    functionLinenumber: 19
    functionLinenumberEnd: 50
    functionName: nss_test::Pkcs11SeedTest::EncryptDecryptSeed
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_seed_cbc_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - std::vector::resize
    - PK11_Decrypt
    - std::vector::data
    - EXPECT_TRUE
    - ScopedPK11SymKey::get
    - std::vector::size
    - PK11_KeyGen
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: "void EncryptDecryptSeed(SECStatus expected, unsigned int input_size,\n
      \                         unsigned int output_size,\n                          CK_MECHANISM_TYPE
      mech = CKM_SEED_CBC)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EncryptDecryptSeed
      Src: /src/nss/gtests/pk11_gtest/pk11_seed_cbc_unittest.cc:61,1
    - Dst: EncryptDecryptSeed
      Src: /src/nss/gtests/pk11_gtest/pk11_seed_cbc_unittest.cc:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_seed_cbc_unittest.cc
    functionUses: 0
    functionsReached:
    - EncryptDecryptSeed
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11SeedTest, CBC_ValidArgs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EncryptDecryptSeed
      Src: /src/nss/gtests/pk11_gtest/pk11_seed_cbc_unittest.cc:68,1
    - Dst: EncryptDecryptSeed
      Src: /src/nss/gtests/pk11_gtest/pk11_seed_cbc_unittest.cc:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 71
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_seed_cbc_unittest.cc
    functionUses: 0
    functionsReached:
    - EncryptDecryptSeed
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11SeedTest, CBC_InvalidArgs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EncryptDecryptSeed
      Src: /src/nss/gtests/pk11_gtest/pk11_seed_cbc_unittest.cc:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_seed_cbc_unittest.cc
    functionUses: 0
    functionsReached:
    - EncryptDecryptSeed
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11SeedTest, ECB_Singleblock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EncryptDecryptSeed
      Src: /src/nss/gtests/pk11_gtest/pk11_seed_cbc_unittest.cc:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_seed_cbc_unittest.cc
    functionUses: 0
    functionsReached:
    - EncryptDecryptSeed
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11SeedTest, ECB_Multiblock)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:55,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:55,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:55,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:56,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:61,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:62,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:67,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:68,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:68,1
    - Dst: static_cast<size_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:68,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:72,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:73,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:73,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:73,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:73,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:74,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:74,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:74,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:74,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:83,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:83,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:84,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:85,1
    - Dst: EXPECT_GT
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:86,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:91,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:91,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:91,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:92,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:92,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:92,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:93,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:96,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:97,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:97,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:97,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:105,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:105,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:105,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:106,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:107,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:108,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:109,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:118,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:118,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:118,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:119,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:119,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:121,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:122,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:127,1
    - Dst: std::vector<uint8_t>*::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:127,1
    - Dst: std::vector<uint8_t>*::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:129,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:130,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:130,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:130,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:131,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:131,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:132,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:133,1
    - Dst: std::vector<uint8_t>*::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:134,1
    - Dst: std::vector<uint8_t>*::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:139,1
    - Dst: std::vector<uint8_t>*::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:141,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:143,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:143,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:143,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:144,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:145,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:146,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:147,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 48
    argCount: 9
    argNames:
    - ' key'
    - invalid_iv
    - invalid_tag
    - data
    - data_len
    - mech
    - params
    - nonce
    - aad
    argTypes:
    - ScopedPK11SymKey
    - bool
    - bool
    - uint8_t*
    - size_t
    - CK_MECHANISM_TYPE
    - SECItem*
    - std::vector<uint8_t>*
    - std::vector<uint8_t>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 46
    functionDepth: 4
    functionLinenumber: 46
    functionLinenumberEnd: 149
    functionName: nss_test::Pkcs11ChaCha20Poly1305Test::EncryptDecrypt
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - ASSERT_EQ
    - PK11_Decrypt
    - std::vector::data
    - EXPECT_GT
    - EXPECT_TRUE
    - memcmp
    - std::vector::size
    - std::vector<uint8_t>*::data
    - static_cast<size_t>
    - std::vector<uint8_t>*::size
    - get
    - EXPECT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: "void EncryptDecrypt(const ScopedPK11SymKey& key, const bool invalid_iv,\n
      \                     const bool invalid_tag, const uint8_t* data,\n                      size_t
      data_len, CK_MECHANISM_TYPE mech, SECItem* params,\n                      std::vector<uint8_t>*
      nonce, std::vector<uint8_t>* aad,\n                      const uint8_t* ct =
      nullptr, size_t ct_len = 0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:160,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:160,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:161,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:162,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:162,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:163,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:165,1
    - Dst: nss_test::Pkcs11ChaCha20Poly1305Test::EncryptDecrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 9
    argNames:
    - ' key'
    - invalid_iv
    - invalid_tag
    - data
    - data_len
    - aad_ptr
    - aad_len
    - iv_ptr
    - iv_len
    argTypes:
    - ScopedPK11SymKey
    - bool
    - bool
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 170
    functionName: nss_test::Pkcs11ChaCha20Poly1305Test::EncryptDecrypt
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc
    functionUses: 1
    functionsReached:
    - nss_test::Pkcs11ChaCha20Poly1305Test::EncryptDecrypt
    - std::vector::data
    - reinterpret_cast<unsigned char*>
    - std::vector::size
    - toUcharPtr
    linkageType: ''
    returnType: void
    signature: "void EncryptDecrypt(const ScopedPK11SymKey& key, const bool invalid_iv,\n
      \                     const bool invalid_tag, const uint8_t* data,\n                      size_t
      data_len, const uint8_t* aad_ptr, size_t aad_len,\n                      const
      uint8_t* iv_ptr, size_t iv_len,\n                      const uint8_t* ct = nullptr,
      size_t ct_len = 0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:182,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:182,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:183,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:184,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:184,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:185,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:188,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:196,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:196,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:196,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:197,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:198,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:199,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:203,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:203,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:203,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:204,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:205,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:206,1
    - Dst: nss_test::Pkcs11ChaCha20Poly1305Test::EncryptDecrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 9
    argNames:
    - ' key'
    - invalid_iv
    - invalid_tag
    - data
    - data_len
    - aad_ptr
    - aad_len
    - iv_ptr
    - iv_len
    argTypes:
    - ScopedPK11SymKey
    - bool
    - bool
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 172
    functionDepth: 5
    functionLinenumber: 172
    functionLinenumberEnd: 212
    functionName: nss_test::Pkcs11ChaCha20Poly1305Test::EncryptDecryptLegacy
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - nss_test::Pkcs11ChaCha20Poly1305Test::EncryptDecrypt
    - std::vector::data
    - reinterpret_cast<unsigned char*>
    - std::vector::size
    - toUcharPtr
    - get
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: "void EncryptDecryptLegacy(const ScopedPK11SymKey& key, const bool
      invalid_iv,\n                            const bool invalid_tag, const uint8_t*
      data,\n                            size_t data_len, const uint8_t* aad_ptr,\n
      \                           size_t aad_len, const uint8_t* iv_ptr,\n                            size_t
      iv_len, const uint8_t* ct = nullptr,\n                            size_t ct_len
      = 0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:216,1
    - Dst: ChaChaTestVector::key::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:216,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:217,1
    - Dst: ChaChaTestVector::key::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:217,1
    - Dst: PK11_ImportSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:220,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:220,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:222,1
    - Dst: nss_test::Pkcs11ChaCha20Poly1305Test::EncryptDecrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:225,1
    - Dst: ChaChaTestVector::plaintext::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:226,1
    - Dst: ChaChaTestVector::plaintext::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:226,1
    - Dst: ChaChaTestVector::aad::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:227,1
    - Dst: ChaChaTestVector::aad::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:227,1
    - Dst: ChaChaTestVector::iv::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:228,1
    - Dst: ChaChaTestVector::iv::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:228,1
    - Dst: ChaChaTestVector::ciphertext::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:229,1
    - Dst: ChaChaTestVector::ciphertext::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - testvector
    argTypes:
    - ChaChaTestVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 214
    functionDepth: 6
    functionLinenumber: 214
    functionLinenumberEnd: 230
    functionName: nss_test::Pkcs11ChaCha20Poly1305Test::EncryptDecrypt
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc
    functionUses: 3
    functionsReached:
    - nss_test::Pkcs11ChaCha20Poly1305Test::EncryptDecrypt
    - ChaChaTestVector::ciphertext::size
    - ChaChaTestVector::plaintext::data
    - ChaChaTestVector::iv::size
    - ChaChaTestVector::aad::data
    - ChaChaTestVector::key::size
    - EXPECT_TRUE
    - ChaChaTestVector::ciphertext::data
    - PK11_ImportSymKey
    - static_cast<unsigned int>
    - ChaChaTestVector::plaintext::size
    - ChaChaTestVector::iv::data
    - ChaChaTestVector::key::data
    - toUcharPtr
    - ScopedPK11SlotInfo::get
    - ChaChaTestVector::aad::size
    linkageType: ''
    returnType: void
    signature: void EncryptDecrypt(const ChaChaTestVector testvector)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:236,1
    - Dst: PK11_KeyGen
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:238,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:238,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:239,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:261,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:262,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:263,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:264,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:268,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:269,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:271,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:273,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:273,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:283,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:284,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:286,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:286,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:287,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:290,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:295,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:295,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:295,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:295,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:296,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:296,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:296,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:296,1
    - Dst: PK11_CreateContextBySymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:299,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:300,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:301,1
    - Dst: ASSERT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:302,1
    - Dst: _PK11_ContextGetAEADSimulation
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:302,1
    - Dst: ScopedPK11Context::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:302,1
    - Dst: PK11_CreateContextBySymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:305,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:306,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:307,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:308,1
    - Dst: _PK11_ContextSetAEADSimulation
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:309,1
    - Dst: ScopedPK11Context::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:309,1
    - Dst: PK11_CreateContextBySymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:312,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:313,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:314,1
    - Dst: ASSERT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:315,1
    - Dst: _PK11_ContextGetAEADSimulation
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:315,1
    - Dst: ScopedPK11Context::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:315,1
    - Dst: PK11_CreateContextBySymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:318,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:319,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:320,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:321,1
    - Dst: _PK11_ContextSetAEADSimulation
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:322,1
    - Dst: ScopedPK11Context::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:322,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:328,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:328,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:328,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:328,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:329,1
    - Dst: PK11_AEADRawOp
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:330,1
    - Dst: ScopedPK11Context::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:331,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:332,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:332,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:333,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:334,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:334,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:334,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:335,1
    - Dst: PK11_AEADRawOp
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:336,1
    - Dst: ScopedPK11Context::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:337,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:338,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:338,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:339,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:340,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:340,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:342,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:343,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:343,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:343,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:343,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:345,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:345,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:348,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:349,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:349,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:349,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:350,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:350,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:351,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:352,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:353,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:353,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:353,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:353,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:355,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:355,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:356,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:358,1
    - Dst: PK11_AEADRawOp
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:360,1
    - Dst: ScopedPK11Context::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:360,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:361,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:361,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:362,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:363,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:363,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:365,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:365,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:366,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:367,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:367,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:367,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:367,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:368,1
    - Dst: PK11_AEADRawOp
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:369,1
    - Dst: ScopedPK11Context::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:369,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:371,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:372,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:372,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:373,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:374,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:375,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:375,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:376,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:377,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:377,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:377,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:377,1
    - Dst: memcpy
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:381,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:381,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:384,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:385,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:385,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:385,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:386,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:387,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:388,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:388,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:389,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:389,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:389,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:389,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:389,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 57
    argCount: 3
    argNames:
    - mech
    - iterations
    - separateTag
    argTypes:
    - CK_MECHANISM_TYPE
    - int
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 232
    functionDepth: 12
    functionLinenumber: 232
    functionLinenumberEnd: 392
    functionName: nss_test::Pkcs11ChaCha20Poly1305Test::MessageInterfaceTest
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - std::vector::data
    - std::vector::size
    - PK11_CreateContextBySymKey
    - memcpy
    - PK11_Decrypt
    - ScopedPK11SymKey::get
    - reinterpret_cast<unsigned char*>
    - PK11_KeyGen
    - memcmp
    - ASSERT_NE
    - _PK11_ContextGetAEADSimulation
    - ASSERT_EQ
    - ScopedPK11Context::get
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - PK11_AEADRawOp
    - _PK11_ContextSetAEADSimulation
    - PK11_GenerateRandom
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: "void MessageInterfaceTest(CK_MECHANISM_TYPE mech, int iterations,\n
      \                           PRBool separateTag)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_KeyGen
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:400,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:400,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:401,1
    - Dst: PK11_GenerateRandomOnSlot
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:406,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:406,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:406,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:406,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:407,1
    - Dst: PK11_GenerateRandomOnSlot
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:411,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:411,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:411,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:411,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:412,1
    - Dst: PK11_GenerateRandomOnSlot
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:416,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:416,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:416,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:416,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:417,1
    - Dst: EncryptDecrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:420,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:420,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:420,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:420,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:421,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:421,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 397
    functionDepth: 5
    functionLinenumber: 397
    functionLinenumberEnd: 422
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc
    functionUses: 0
    functionsReached:
    - std::vector::data
    - EXPECT_TRUE
    - std::vector::size
    - EncryptDecrypt
    - PK11_KeyGen
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - PK11_GenerateRandomOnSlot
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11ChaCha20Poly1305Test, GenerateEncryptDecrypt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:426,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:427,1
    - Dst: PK11_ImportSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:428,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:429,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:430,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:433,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:433,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:434,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:438,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:438,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:440,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:441,1
    - Dst: static_cast<size_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:441,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:442,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:442,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:445,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:445,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:447,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:448,1
    - Dst: static_cast<size_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:448,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:449,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:449,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:452,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:452,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:454,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:455,1
    - Dst: static_cast<size_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:455,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:456,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 424
    functionDepth: 6
    functionLinenumber: 424
    functionLinenumberEnd: 457
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - ASSERT_EQ
    - PK11_Decrypt
    - reinterpret_cast<const uint8_t*>
    - EXPECT_TRUE
    - ScopedPK11SymKey::get
    - memcmp
    - PK11_ImportSymKey
    - static_cast<unsigned int>
    - static_cast<size_t>
    - toUcharPtr
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11ChaCha20Poly1305Test, Xor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:461,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:462,1
    - Dst: PK11_ImportSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:463,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:463,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:466,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:468,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:469,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:473,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:473,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:475,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:476,1
    - Dst: static_cast<size_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:476,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:477,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:477,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:480,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:480,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:482,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:483,1
    - Dst: static_cast<size_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:483,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:484,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:484,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:487,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:487,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:490,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:491,1
    - Dst: static_cast<size_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:491,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:492,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 459
    functionDepth: 6
    functionLinenumber: 459
    functionLinenumberEnd: 493
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - ASSERT_EQ
    - PK11_Decrypt
    - EXPECT_TRUE
    - ScopedPK11SymKey::get
    - memcmp
    - PK11_ImportSymKey
    - static_cast<unsigned int>
    - static_cast<size_t>
    - toUcharPtr
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11ChaCha20Poly1305Test, XorLegacy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_KeyGen
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:499,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:499,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:500,1
    - Dst: PK11_GenerateRandomOnSlot
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:503,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:503,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:503,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:503,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:504,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:507,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:509,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:513,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:513,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:514,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:517,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:517,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:519,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:520,1
    - Dst: static_cast<size_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 497
    functionDepth: 5
    functionLinenumber: 497
    functionLinenumberEnd: 521
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - ASSERT_EQ
    - static_cast<size_t>
    - std::vector::data
    - reinterpret_cast<const uint8_t*>
    - EXPECT_TRUE
    - ScopedPK11SymKey::get
    - std::vector::size
    - static_cast<unsigned int>
    - PK11_KeyGen
    - toUcharPtr
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - PK11_GenerateRandomOnSlot
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11ChaCha20Poly1305Test, GenerateXor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_KeyGen
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:526,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:526,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:527,1
    - Dst: PK11_GenerateRandomOnSlot
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:530,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:530,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:530,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:530,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:531,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:533,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:533,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:534,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:534,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:537,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:537,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:539,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:540,1
    - Dst: static_cast<size_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 523
    functionDepth: 5
    functionLinenumber: 523
    functionLinenumberEnd: 541
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - ASSERT_EQ
    - static_cast<size_t>
    - std::vector::data
    - EXPECT_TRUE
    - ScopedPK11SymKey::get
    - std::vector::size
    - static_cast<unsigned int>
    - PK11_KeyGen
    - toUcharPtr
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - PK11_GenerateRandomOnSlot
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11ChaCha20Poly1305Test, GenerateXorLegacy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_KeyGen
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:545,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:545,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:546,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:549,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:549,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:550,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:554,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:554,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:556,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:559,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:559,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:561,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:562,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 543
    functionDepth: 5
    functionLinenumber: 543
    functionLinenumberEnd: 563
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - reinterpret_cast<const uint8_t*>
    - EXPECT_TRUE
    - ScopedPK11SymKey::get
    - PORT_GetError
    - static_cast<unsigned int>
    - PK11_KeyGen
    - toUcharPtr
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11ChaCha20Poly1305Test, XorInvalidParams)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_KeyGen
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:567,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:567,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:568,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:570,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:571,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:575,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:575,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:577,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:580,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:580,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:582,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:583,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:583,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 565
    functionDepth: 5
    functionLinenumber: 565
    functionLinenumberEnd: 584
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - EXPECT_TRUE
    - ScopedPK11SymKey::get
    - PORT_GetError
    - static_cast<unsigned int>
    - PK11_KeyGen
    - toUcharPtr
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11ChaCha20Poly1305Test, XorLegacyInvalidParams)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EncryptDecrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:586,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 586
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc
    functionUses: 0
    functionsReached:
    - EncryptDecrypt
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11ChaCha20Poly1305Test, TestVectors)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MessageInterfaceTest
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 595
    functionDepth: 0
    functionLinenumber: 595
    functionLinenumberEnd: 597
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc
    functionUses: 0
    functionsReached:
    - MessageInterfaceTest
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11ChaCha20Poly1305Test, ChaCha201305MessageInterfaceBasic)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MessageInterfaceTest
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 602
    functionDepth: 0
    functionLinenumber: 602
    functionLinenumberEnd: 605
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc
    functionUses: 0
    functionsReached:
    - MessageInterfaceTest
    linkageType: ''
    returnType: void
    signature: "void TEST_F(Pkcs11ChaCha20Poly1305Test,\n       ChaCha20Poly1305MessageInterfaceSeparateTags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:55,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:55,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:55,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:56,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:61,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:62,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:67,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:68,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:68,1
    - Dst: static_cast<size_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:68,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:72,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:73,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:73,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:73,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:73,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:74,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:74,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:74,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:74,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:83,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:83,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:84,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:85,1
    - Dst: EXPECT_GT
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:86,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:91,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:91,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:91,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:92,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:92,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:92,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:93,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:96,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:97,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:97,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:97,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:105,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:105,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:105,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:106,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:107,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:108,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:109,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:118,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:118,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:118,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:119,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:119,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:121,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:122,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:127,1
    - Dst: std::vector<uint8_t>*::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:127,1
    - Dst: std::vector<uint8_t>*::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:129,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:130,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:130,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:130,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:131,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:131,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:132,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:133,1
    - Dst: std::vector<uint8_t>*::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:134,1
    - Dst: std::vector<uint8_t>*::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:139,1
    - Dst: std::vector<uint8_t>*::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:141,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:143,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:143,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:143,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:144,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:145,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:146,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:147,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 48
    argCount: 9
    argNames:
    - ' key'
    - invalid_iv
    - invalid_tag
    - data
    - data_len
    - mech
    - params
    - nonce
    - aad
    argTypes:
    - ScopedPK11SymKey
    - bool
    - bool
    - uint8_t*
    - size_t
    - CK_MECHANISM_TYPE
    - SECItem*
    - std::vector<uint8_t>*
    - std::vector<uint8_t>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 46
    functionDepth: 4
    functionLinenumber: 46
    functionLinenumberEnd: 149
    functionName: nss_test::Pkcs11ChaCha20Poly1305Test::EncryptDecrypt
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc
    functionUses: 3
    functionsReached:
    - PK11_Encrypt
    - ASSERT_EQ
    - PK11_Decrypt
    - std::vector::data
    - EXPECT_GT
    - EXPECT_TRUE
    - memcmp
    - std::vector::size
    - std::vector<uint8_t>*::data
    - static_cast<size_t>
    - std::vector<uint8_t>*::size
    - get
    - EXPECT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: "void EncryptDecrypt(const ScopedPK11SymKey& key, const bool invalid_iv,\n
      \                     const bool invalid_tag, const uint8_t* data,\n                      size_t
      data_len, CK_MECHANISM_TYPE mech, SECItem* params,\n                      std::vector<uint8_t>*
      nonce, std::vector<uint8_t>* aad,\n                      const uint8_t* ct =
      nullptr, size_t ct_len = 0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:160,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:160,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:161,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:162,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:162,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:163,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:165,1
    - Dst: nss_test::Pkcs11ChaCha20Poly1305Test::EncryptDecrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 9
    argNames:
    - ' key'
    - invalid_iv
    - invalid_tag
    - data
    - data_len
    - aad_ptr
    - aad_len
    - iv_ptr
    - iv_len
    argTypes:
    - ScopedPK11SymKey
    - bool
    - bool
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 170
    functionName: nss_test::Pkcs11ChaCha20Poly1305Test::EncryptDecrypt
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc
    functionUses: 4
    functionsReached:
    - nss_test::Pkcs11ChaCha20Poly1305Test::EncryptDecrypt
    - std::vector::data
    - reinterpret_cast<unsigned char*>
    - std::vector::size
    - toUcharPtr
    linkageType: ''
    returnType: void
    signature: "void EncryptDecrypt(const ScopedPK11SymKey& key, const bool invalid_iv,\n
      \                     const bool invalid_tag, const uint8_t* data,\n                      size_t
      data_len, const uint8_t* aad_ptr, size_t aad_len,\n                      const
      uint8_t* iv_ptr, size_t iv_len,\n                      const uint8_t* ct = nullptr,
      size_t ct_len = 0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:182,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:182,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:183,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:184,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:184,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:185,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:188,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:196,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:196,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:196,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:197,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:198,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:199,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:203,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:203,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:203,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:204,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:205,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:206,1
    - Dst: nss_test::Pkcs11ChaCha20Poly1305Test::EncryptDecrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 9
    argNames:
    - ' key'
    - invalid_iv
    - invalid_tag
    - data
    - data_len
    - aad_ptr
    - aad_len
    - iv_ptr
    - iv_len
    argTypes:
    - ScopedPK11SymKey
    - bool
    - bool
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 172
    functionDepth: 5
    functionLinenumber: 172
    functionLinenumberEnd: 212
    functionName: nss_test::Pkcs11ChaCha20Poly1305Test::EncryptDecryptLegacy
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - nss_test::Pkcs11ChaCha20Poly1305Test::EncryptDecrypt
    - std::vector::data
    - reinterpret_cast<unsigned char*>
    - std::vector::size
    - toUcharPtr
    - get
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: "void EncryptDecryptLegacy(const ScopedPK11SymKey& key, const bool
      invalid_iv,\n                            const bool invalid_tag, const uint8_t*
      data,\n                            size_t data_len, const uint8_t* aad_ptr,\n
      \                           size_t aad_len, const uint8_t* iv_ptr,\n                            size_t
      iv_len, const uint8_t* ct = nullptr,\n                            size_t ct_len
      = 0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:216,1
    - Dst: ChaChaTestVector::key::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:216,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:217,1
    - Dst: ChaChaTestVector::key::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:217,1
    - Dst: PK11_ImportSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:220,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:220,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:222,1
    - Dst: nss_test::Pkcs11ChaCha20Poly1305Test::EncryptDecrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:225,1
    - Dst: ChaChaTestVector::plaintext::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:226,1
    - Dst: ChaChaTestVector::plaintext::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:226,1
    - Dst: ChaChaTestVector::aad::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:227,1
    - Dst: ChaChaTestVector::aad::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:227,1
    - Dst: ChaChaTestVector::iv::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:228,1
    - Dst: ChaChaTestVector::iv::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:228,1
    - Dst: ChaChaTestVector::ciphertext::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:229,1
    - Dst: ChaChaTestVector::ciphertext::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - testvector
    argTypes:
    - ChaChaTestVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 214
    functionDepth: 6
    functionLinenumber: 214
    functionLinenumberEnd: 230
    functionName: nss_test::Pkcs11ChaCha20Poly1305Test::EncryptDecrypt
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc
    functionUses: 6
    functionsReached:
    - nss_test::Pkcs11ChaCha20Poly1305Test::EncryptDecrypt
    - ChaChaTestVector::ciphertext::size
    - ChaChaTestVector::plaintext::data
    - ChaChaTestVector::iv::size
    - ChaChaTestVector::aad::data
    - ChaChaTestVector::key::size
    - EXPECT_TRUE
    - ChaChaTestVector::ciphertext::data
    - PK11_ImportSymKey
    - static_cast<unsigned int>
    - ChaChaTestVector::plaintext::size
    - ChaChaTestVector::iv::data
    - ChaChaTestVector::key::data
    - toUcharPtr
    - ScopedPK11SlotInfo::get
    - ChaChaTestVector::aad::size
    linkageType: ''
    returnType: void
    signature: void EncryptDecrypt(const ChaChaTestVector testvector)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:236,1
    - Dst: PK11_KeyGen
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:238,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:238,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:239,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:261,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:262,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:263,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:264,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:268,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:269,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:271,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:273,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:273,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:283,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:284,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:286,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:286,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:287,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:290,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:295,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:295,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:295,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:295,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:296,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:296,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:296,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:296,1
    - Dst: PK11_CreateContextBySymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:299,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:300,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:301,1
    - Dst: ASSERT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:302,1
    - Dst: _PK11_ContextGetAEADSimulation
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:302,1
    - Dst: ScopedPK11Context::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:302,1
    - Dst: PK11_CreateContextBySymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:305,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:306,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:307,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:308,1
    - Dst: _PK11_ContextSetAEADSimulation
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:309,1
    - Dst: ScopedPK11Context::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:309,1
    - Dst: PK11_CreateContextBySymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:312,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:313,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:314,1
    - Dst: ASSERT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:315,1
    - Dst: _PK11_ContextGetAEADSimulation
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:315,1
    - Dst: ScopedPK11Context::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:315,1
    - Dst: PK11_CreateContextBySymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:318,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:319,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:320,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:321,1
    - Dst: _PK11_ContextSetAEADSimulation
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:322,1
    - Dst: ScopedPK11Context::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:322,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:328,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:328,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:328,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:328,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:329,1
    - Dst: PK11_AEADRawOp
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:330,1
    - Dst: ScopedPK11Context::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:331,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:332,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:332,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:333,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:334,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:334,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:334,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:335,1
    - Dst: PK11_AEADRawOp
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:336,1
    - Dst: ScopedPK11Context::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:337,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:338,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:338,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:339,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:340,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:340,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:342,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:343,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:343,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:343,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:343,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:345,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:345,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:348,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:349,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:349,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:349,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:350,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:350,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:351,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:352,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:353,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:353,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:353,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:353,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:355,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:355,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:356,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:358,1
    - Dst: PK11_AEADRawOp
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:360,1
    - Dst: ScopedPK11Context::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:360,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:361,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:361,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:362,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:363,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:363,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:365,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:365,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:366,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:367,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:367,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:367,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:367,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:368,1
    - Dst: PK11_AEADRawOp
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:369,1
    - Dst: ScopedPK11Context::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:369,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:371,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:372,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:372,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:373,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:374,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:375,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:375,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:376,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:377,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:377,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:377,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:377,1
    - Dst: memcpy
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:381,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:381,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:384,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:385,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:385,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:385,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:386,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:387,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:388,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:388,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:389,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:389,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:389,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:389,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:389,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 57
    argCount: 3
    argNames:
    - mech
    - iterations
    - separateTag
    argTypes:
    - CK_MECHANISM_TYPE
    - int
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 232
    functionDepth: 12
    functionLinenumber: 232
    functionLinenumberEnd: 392
    functionName: nss_test::Pkcs11ChaCha20Poly1305Test::MessageInterfaceTest
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - std::vector::data
    - std::vector::size
    - PK11_CreateContextBySymKey
    - memcpy
    - PK11_Decrypt
    - ScopedPK11SymKey::get
    - reinterpret_cast<unsigned char*>
    - PK11_KeyGen
    - memcmp
    - ASSERT_NE
    - _PK11_ContextGetAEADSimulation
    - ASSERT_EQ
    - ScopedPK11Context::get
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - PK11_AEADRawOp
    - _PK11_ContextSetAEADSimulation
    - PK11_GenerateRandom
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: "void MessageInterfaceTest(CK_MECHANISM_TYPE mech, int iterations,\n
      \                           PRBool separateTag)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_KeyGen
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:400,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:400,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:401,1
    - Dst: PK11_GenerateRandomOnSlot
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:406,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:406,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:406,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:406,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:407,1
    - Dst: PK11_GenerateRandomOnSlot
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:411,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:411,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:411,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:411,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:412,1
    - Dst: PK11_GenerateRandomOnSlot
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:416,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:416,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:416,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:416,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:417,1
    - Dst: EncryptDecrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:420,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:420,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:420,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:420,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:421,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:421,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 397
    functionDepth: 5
    functionLinenumber: 397
    functionLinenumberEnd: 422
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc
    functionUses: 0
    functionsReached:
    - std::vector::data
    - EXPECT_TRUE
    - std::vector::size
    - EncryptDecrypt
    - PK11_KeyGen
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - PK11_GenerateRandomOnSlot
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11ChaCha20Poly1305Test, GenerateEncryptDecrypt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:426,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:427,1
    - Dst: PK11_ImportSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:428,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:429,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:430,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:433,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:433,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:434,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:438,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:438,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:440,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:441,1
    - Dst: static_cast<size_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:441,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:442,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:442,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:445,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:445,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:447,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:448,1
    - Dst: static_cast<size_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:448,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:449,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:449,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:452,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:452,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:454,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:455,1
    - Dst: static_cast<size_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:455,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:456,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 424
    functionDepth: 6
    functionLinenumber: 424
    functionLinenumberEnd: 457
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - ASSERT_EQ
    - PK11_Decrypt
    - reinterpret_cast<const uint8_t*>
    - EXPECT_TRUE
    - ScopedPK11SymKey::get
    - memcmp
    - PK11_ImportSymKey
    - static_cast<unsigned int>
    - static_cast<size_t>
    - toUcharPtr
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11ChaCha20Poly1305Test, Xor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:461,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:462,1
    - Dst: PK11_ImportSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:463,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:463,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:466,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:468,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:469,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:473,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:473,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:475,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:476,1
    - Dst: static_cast<size_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:476,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:477,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:477,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:480,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:480,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:482,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:483,1
    - Dst: static_cast<size_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:483,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:484,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:484,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:487,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:487,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:490,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:491,1
    - Dst: static_cast<size_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:491,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:492,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 459
    functionDepth: 6
    functionLinenumber: 459
    functionLinenumberEnd: 493
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - ASSERT_EQ
    - PK11_Decrypt
    - EXPECT_TRUE
    - ScopedPK11SymKey::get
    - memcmp
    - PK11_ImportSymKey
    - static_cast<unsigned int>
    - static_cast<size_t>
    - toUcharPtr
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11ChaCha20Poly1305Test, XorLegacy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_KeyGen
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:499,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:499,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:500,1
    - Dst: PK11_GenerateRandomOnSlot
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:503,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:503,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:503,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:503,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:504,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:507,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:509,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:513,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:513,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:514,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:517,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:517,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:519,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:520,1
    - Dst: static_cast<size_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 497
    functionDepth: 5
    functionLinenumber: 497
    functionLinenumberEnd: 521
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - ASSERT_EQ
    - static_cast<size_t>
    - std::vector::data
    - reinterpret_cast<const uint8_t*>
    - EXPECT_TRUE
    - ScopedPK11SymKey::get
    - std::vector::size
    - static_cast<unsigned int>
    - PK11_KeyGen
    - toUcharPtr
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - PK11_GenerateRandomOnSlot
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11ChaCha20Poly1305Test, GenerateXor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_KeyGen
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:526,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:526,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:527,1
    - Dst: PK11_GenerateRandomOnSlot
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:530,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:530,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:530,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:530,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:531,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:533,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:533,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:534,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:534,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:537,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:537,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:539,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:540,1
    - Dst: static_cast<size_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 523
    functionDepth: 5
    functionLinenumber: 523
    functionLinenumberEnd: 541
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - ASSERT_EQ
    - static_cast<size_t>
    - std::vector::data
    - EXPECT_TRUE
    - ScopedPK11SymKey::get
    - std::vector::size
    - static_cast<unsigned int>
    - PK11_KeyGen
    - toUcharPtr
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - PK11_GenerateRandomOnSlot
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11ChaCha20Poly1305Test, GenerateXorLegacy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_KeyGen
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:545,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:545,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:546,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:549,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:549,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:550,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:554,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:554,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:556,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:559,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:559,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:561,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:562,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 543
    functionDepth: 5
    functionLinenumber: 543
    functionLinenumberEnd: 563
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - reinterpret_cast<const uint8_t*>
    - EXPECT_TRUE
    - ScopedPK11SymKey::get
    - PORT_GetError
    - static_cast<unsigned int>
    - PK11_KeyGen
    - toUcharPtr
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11ChaCha20Poly1305Test, XorInvalidParams)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_KeyGen
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:567,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:567,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:568,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:570,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:571,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:575,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:575,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:577,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:580,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:580,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:582,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:583,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:583,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 565
    functionDepth: 5
    functionLinenumber: 565
    functionLinenumberEnd: 584
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - EXPECT_TRUE
    - ScopedPK11SymKey::get
    - PORT_GetError
    - static_cast<unsigned int>
    - PK11_KeyGen
    - toUcharPtr
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11ChaCha20Poly1305Test, XorLegacyInvalidParams)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EncryptDecrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:586,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 586
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc
    functionUses: 0
    functionsReached:
    - EncryptDecrypt
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11ChaCha20Poly1305Test, TestVectors)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MessageInterfaceTest
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 595
    functionDepth: 0
    functionLinenumber: 595
    functionLinenumberEnd: 597
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc
    functionUses: 0
    functionsReached:
    - MessageInterfaceTest
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11ChaCha20Poly1305Test, ChaCha201305MessageInterfaceBasic)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MessageInterfaceTest
      Src: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc:604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 602
    functionDepth: 0
    functionLinenumber: 602
    functionLinenumberEnd: 605
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_chacha20poly1305_unittest.cc
    functionUses: 0
    functionsReached:
    - MessageInterfaceTest
    linkageType: ''
    returnType: void
    signature: "void TEST_F(Pkcs11ChaCha20Poly1305Test,\n       ChaCha20Poly1305MessageInterfaceSeparateTags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_DestroyGenericObjects
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - objs
    argTypes:
    - PK11GenericObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 5
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: operator()(PK11GenericObject* objs)
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_DestroyGenericObjects
    linkageType: ''
    returnType: void
    signature: void operator()(PK11GenericObject* objs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: nss_test::Pk11KeyImportTestBase::Pk11KeyImportTestBase
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Pk11KeyImportTestBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: ~Pk11KeyImportTestBase()
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Pk11KeyImportTestBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:38,1
    - Dst: PK11_GetInternalKeySlot
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:38,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:39,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:42,1
    - Dst: reset
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:43,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 37
    functionDepth: 3
    functionLinenumber: 37
    functionLinenumberEnd: 44
    functionName: nss_test::Pk11KeyImportTestBase::SetUp
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc
    functionUses: 0
    functionsReached:
    - SECITEM_DupItem
    - PK11_GetInternalKeySlot
    - ASSERT_TRUE
    - reset
    - toUcharPtr
    linkageType: ''
    returnType: void
    signature: void SetUp() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::Pk11KeyImportTestBase::GenerateAndExport
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:51,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:58,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:59,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:63,1
    - Dst: PK11_ImportEncryptedPrivateKeyInfoAndReturnKey
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:65,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:66,1
    - Dst: ScopedSECKEYEncryptedPrivateKeyInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:66,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:66,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:67,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:68,1
    - Dst: PORT_ErrorToName
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:69,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:69,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:71,1
    - Dst: nss_test::Pk11KeyImportTestBase::CheckForPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:73,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ' generator'
    argTypes:
    - Pkcs11KeyPairGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 46
    functionDepth: 5
    functionLinenumber: 46
    functionLinenumberEnd: 74
    functionName: nss_test::Pk11KeyImportTestBase::Test
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ScopedSECKEYEncryptedPrivateKeyInfo::get
    - ScopedSECItem::get
    - PORT_GetError
    - PORT_ErrorToName
    - PK11_ImportEncryptedPrivateKeyInfoAndReturnKey
    - nss_test::Pk11KeyImportTestBase::CheckForPublicKey
    - toUcharPtr
    - get
    - nss_test::Pk11KeyImportTestBase::GenerateAndExport
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void Test(const Pkcs11KeyPairGenerator& generator)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: SECKEY_GetPublicKeyType
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:79,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 1
    argNames:
    - ' pub_key'
    argTypes:
    - ScopedSECKEYPublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 103
    functionName: nss_test::Pk11KeyImportTestBase::GetPublicComponent
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc
    functionUses: 0
    functionsReached:
    - get
    - SECKEY_GetPublicKeyType
    linkageType: ''
    returnType: SECItem
    signature: SECItem GetPublicComponent(ScopedSECKEYPublicKey& pub_key)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SECKEY_GetPrivateKeyType
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:108,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:108,1
    - Dst: PK11_ReadRawAttribute
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:109,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:109,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:111,1
    - Dst: PORT_ErrorToName
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:112,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:112,1
    - Dst: FAIL
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:130,1
    - Dst: PK11_FindGenericObjects
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:136,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:136,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:137,1
    - Dst: std::unique_ptr::get
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:138,1
    - Dst: PK11_GetNextGenericObject
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:139,1
    - Dst: PK11_ReadRawAttribute
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:141,1
    - Dst: SECITEM_ItemsAreEqual
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:146,1
    - Dst: PK11_ReadRawAttribute
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:152,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:153,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:154,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:155,1
    - Dst: PK11_ReadRawAttribute
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:159,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:160,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:166,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:170,1
    - Dst: ScopedPLArenaPool::get
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:170,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:171,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:173,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:176,1
    - Dst: SECITEM_ItemsAreEqual
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:176,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:178,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:180,1
    - Dst: SECKEY_ConvertToPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:183,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:183,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:184,1
    - Dst: nss_test::Pk11KeyImportTestBase::GetPublicComponent
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:185,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:186,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:188,1
    - Dst: SECITEM_ItemsAreEqual
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:188,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:190,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:193,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 2
    argNames:
    - ' priv_key'
    - expected_public
    argTypes:
    - ScopedSECKEYPrivateKey
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 104
    functionDepth: 10
    functionLinenumber: 104
    functionLinenumberEnd: 196
    functionName: nss_test::Pk11KeyImportTestBase::CheckForPublicKey
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc
    functionUses: 1
    functionsReached:
    - PK11_FindGenericObjects
    - PORT_ErrorToName
    - ASSERT_TRUE
    - PK11_ReadRawAttribute
    - DataBuffer
    - std::unique_ptr::get
    - SECKEY_ConvertToPublicKey
    - ASSERT_NE
    - nss_test::Pk11KeyImportTestBase::GetPublicComponent
    - ASSERT_EQ
    - FAIL
    - ScopedPLArenaPool::get
    - PK11_GetNextGenericObject
    - SEC_QuickDERDecodeItem
    - get
    - SECITEM_ItemsAreEqual
    - PORT_GetError
    - SECKEY_GetPrivateKeyType
    - SEC_ASN1_GET
    linkageType: ''
    returnType: void
    signature: "void CheckForPublicKey(const ScopedSECKEYPrivateKey& priv_key,\n                         const
      SECItem* expected_public)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GenerateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:204,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:205,1
    - Dst: SECKEY_GetPublicKeyType
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:209,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:209,1
    - Dst: FAIL
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:224,1
    - Dst: nss_test::Pk11KeyImportTestBase::CheckForPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:227,1
    - Dst: ScopedSECItem*::reset
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:235,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:235,1
    - Dst: PK11_ExportEncryptedPrivKeyInfo
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:238,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:239,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:239,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:239,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:241,1
    - Dst: PORT_ErrorToName
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:242,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:242,1
    - Dst: ScopedSECKEYEncryptedPrivateKeyInfo*::swap
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:244,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 4
    argNames:
    - ' generator'
    - key_type
    - key_info
    - public_value
    argTypes:
    - Pkcs11KeyPairGenerator
    - KeyType*
    - ScopedSECKEYEncryptedPrivateKeyInfo*
    - ScopedSECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 198
    functionDepth: 11
    functionLinenumber: 198
    functionLinenumberEnd: 245
    functionName: nss_test::Pk11KeyImportTestBase::GenerateAndExport
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc
    functionUses: 1
    functionsReached:
    - FAIL
    - SECITEM_DupItem
    - get
    - ScopedSECKEYEncryptedPrivateKeyInfo*::swap
    - ScopedSECItem*::reset
    - PORT_GetError
    - ASSERT_TRUE
    - PORT_ErrorToName
    - SECKEY_GetPublicKeyType
    - nss_test::Pk11KeyImportTestBase::CheckForPublicKey
    - ScopedSECKEYPrivateKey::get
    - PK11_ExportEncryptedPrivKeyInfo
    - ScopedSECKEYPublicKey::get
    - GenerateKey
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: "void GenerateAndExport(const Pkcs11KeyPairGenerator& generator,\n
      \                        KeyType* key_type,\n                         ScopedSECKEYEncryptedPrivateKeyInfo*
      key_info,\n                         ScopedSECItem* public_value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 255
    functionName: nss_test::Pk11KeyImportTest::Pk11KeyImportTest
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Pk11KeyImportTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 256
    functionName: ~Pk11KeyImportTest()
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Pk11KeyImportTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:260,1
    - Dst: Pkcs11KeyPairGenerator
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:260,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 261
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc
    functionUses: 0
    functionsReached:
    - Pkcs11KeyPairGenerator
    - Test
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pk11KeyImportTest, GenerateExportImport)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 271
    functionName: nss_test::Pk11KeyImportTestEC::Pk11KeyImportTestEC
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Pk11KeyImportTestEC()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 272
    functionName: ~Pk11KeyImportTestEC()
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Pk11KeyImportTestEC()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:276,1
    - Dst: Pkcs11KeyPairGenerator
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:276,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 277
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc
    functionUses: 0
    functionsReached:
    - Pkcs11KeyPairGenerator
    - Test
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pk11KeyImportTestEC, GenerateExportImport)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_DestroyGenericObjects
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - objs
    argTypes:
    - PK11GenericObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 5
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: operator()(PK11GenericObject* objs)
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_DestroyGenericObjects
    linkageType: ''
    returnType: void
    signature: void operator()(PK11GenericObject* objs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: nss_test::Pk11KeyImportTestBase::Pk11KeyImportTestBase
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Pk11KeyImportTestBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: ~Pk11KeyImportTestBase()
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Pk11KeyImportTestBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:38,1
    - Dst: PK11_GetInternalKeySlot
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:38,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:39,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:42,1
    - Dst: reset
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:43,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 37
    functionDepth: 3
    functionLinenumber: 37
    functionLinenumberEnd: 44
    functionName: nss_test::Pk11KeyImportTestBase::SetUp
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc
    functionUses: 0
    functionsReached:
    - SECITEM_DupItem
    - PK11_GetInternalKeySlot
    - ASSERT_TRUE
    - reset
    - toUcharPtr
    linkageType: ''
    returnType: void
    signature: void SetUp() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::Pk11KeyImportTestBase::GenerateAndExport
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:51,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:58,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:59,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:63,1
    - Dst: PK11_ImportEncryptedPrivateKeyInfoAndReturnKey
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:65,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:66,1
    - Dst: ScopedSECKEYEncryptedPrivateKeyInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:66,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:66,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:67,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:68,1
    - Dst: PORT_ErrorToName
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:69,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:69,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:71,1
    - Dst: nss_test::Pk11KeyImportTestBase::CheckForPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:73,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ' generator'
    argTypes:
    - Pkcs11KeyPairGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 46
    functionDepth: 12
    functionLinenumber: 46
    functionLinenumberEnd: 74
    functionName: nss_test::Pk11KeyImportTestBase::Test
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ScopedSECKEYEncryptedPrivateKeyInfo::get
    - ScopedSECItem::get
    - PORT_GetError
    - PORT_ErrorToName
    - PK11_ImportEncryptedPrivateKeyInfoAndReturnKey
    - nss_test::Pk11KeyImportTestBase::CheckForPublicKey
    - toUcharPtr
    - get
    - nss_test::Pk11KeyImportTestBase::GenerateAndExport
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void Test(const Pkcs11KeyPairGenerator& generator)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: SECKEY_GetPublicKeyType
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:79,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 1
    argNames:
    - ' pub_key'
    argTypes:
    - ScopedSECKEYPublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 103
    functionName: nss_test::Pk11KeyImportTestBase::GetPublicComponent
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc
    functionUses: 1
    functionsReached:
    - get
    - SECKEY_GetPublicKeyType
    linkageType: ''
    returnType: SECItem
    signature: SECItem GetPublicComponent(ScopedSECKEYPublicKey& pub_key)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: SECKEY_GetPrivateKeyType
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:108,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:108,1
    - Dst: PK11_ReadRawAttribute
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:109,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:109,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:111,1
    - Dst: PORT_ErrorToName
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:112,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:112,1
    - Dst: FAIL
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:130,1
    - Dst: PK11_FindGenericObjects
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:136,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:136,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:137,1
    - Dst: std::unique_ptr::get
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:138,1
    - Dst: PK11_GetNextGenericObject
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:139,1
    - Dst: PK11_ReadRawAttribute
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:141,1
    - Dst: SECITEM_ItemsAreEqual
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:146,1
    - Dst: PK11_ReadRawAttribute
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:152,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:153,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:154,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:155,1
    - Dst: PK11_ReadRawAttribute
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:159,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:160,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:166,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:170,1
    - Dst: ScopedPLArenaPool::get
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:170,1
    - Dst: SEC_ASN1_GET
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:171,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:173,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:176,1
    - Dst: SECITEM_ItemsAreEqual
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:176,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:178,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:180,1
    - Dst: SECKEY_ConvertToPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:183,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:183,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:184,1
    - Dst: nss_test::Pk11KeyImportTestBase::GetPublicComponent
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:185,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:186,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:188,1
    - Dst: SECITEM_ItemsAreEqual
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:188,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:190,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:193,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 2
    argNames:
    - ' priv_key'
    - expected_public
    argTypes:
    - ScopedSECKEYPrivateKey
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 104
    functionDepth: 10
    functionLinenumber: 104
    functionLinenumberEnd: 196
    functionName: nss_test::Pk11KeyImportTestBase::CheckForPublicKey
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc
    functionUses: 3
    functionsReached:
    - PK11_FindGenericObjects
    - PORT_ErrorToName
    - ASSERT_TRUE
    - PK11_ReadRawAttribute
    - DataBuffer
    - std::unique_ptr::get
    - SECKEY_ConvertToPublicKey
    - ASSERT_NE
    - nss_test::Pk11KeyImportTestBase::GetPublicComponent
    - ASSERT_EQ
    - FAIL
    - ScopedPLArenaPool::get
    - PK11_GetNextGenericObject
    - SEC_QuickDERDecodeItem
    - get
    - SECITEM_ItemsAreEqual
    - PORT_GetError
    - SECKEY_GetPrivateKeyType
    - SEC_ASN1_GET
    linkageType: ''
    returnType: void
    signature: "void CheckForPublicKey(const ScopedSECKEYPrivateKey& priv_key,\n                         const
      SECItem* expected_public)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: GenerateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:204,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:205,1
    - Dst: SECKEY_GetPublicKeyType
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:209,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:209,1
    - Dst: FAIL
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:224,1
    - Dst: nss_test::Pk11KeyImportTestBase::CheckForPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:227,1
    - Dst: ScopedSECItem*::reset
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:235,1
    - Dst: SECITEM_DupItem
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:235,1
    - Dst: PK11_ExportEncryptedPrivKeyInfo
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:238,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:239,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:239,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:239,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:241,1
    - Dst: PORT_ErrorToName
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:242,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:242,1
    - Dst: ScopedSECKEYEncryptedPrivateKeyInfo*::swap
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:244,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 4
    argNames:
    - ' generator'
    - key_type
    - key_info
    - public_value
    argTypes:
    - Pkcs11KeyPairGenerator
    - KeyType*
    - ScopedSECKEYEncryptedPrivateKeyInfo*
    - ScopedSECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 198
    functionDepth: 11
    functionLinenumber: 198
    functionLinenumberEnd: 245
    functionName: nss_test::Pk11KeyImportTestBase::GenerateAndExport
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc
    functionUses: 2
    functionsReached:
    - FAIL
    - SECITEM_DupItem
    - get
    - ScopedSECKEYEncryptedPrivateKeyInfo*::swap
    - ScopedSECItem*::reset
    - PORT_GetError
    - ASSERT_TRUE
    - PORT_ErrorToName
    - SECKEY_GetPublicKeyType
    - nss_test::Pk11KeyImportTestBase::CheckForPublicKey
    - ScopedSECKEYPrivateKey::get
    - PK11_ExportEncryptedPrivKeyInfo
    - ScopedSECKEYPublicKey::get
    - GenerateKey
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: "void GenerateAndExport(const Pkcs11KeyPairGenerator& generator,\n
      \                        KeyType* key_type,\n                         ScopedSECKEYEncryptedPrivateKeyInfo*
      key_info,\n                         ScopedSECItem* public_value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 255
    functionName: nss_test::Pk11KeyImportTest::Pk11KeyImportTest
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Pk11KeyImportTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 256
    functionName: ~Pk11KeyImportTest()
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Pk11KeyImportTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:260,1
    - Dst: Pkcs11KeyPairGenerator
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:260,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 261
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc
    functionUses: 0
    functionsReached:
    - Pkcs11KeyPairGenerator
    - Test
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pk11KeyImportTest, GenerateExportImport)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 271
    functionName: nss_test::Pk11KeyImportTestEC::Pk11KeyImportTestEC
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Pk11KeyImportTestEC()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 272
    functionName: ~Pk11KeyImportTestEC()
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Pk11KeyImportTestEC()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:276,1
    - Dst: Pkcs11KeyPairGenerator
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:276,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 277
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_import_unittest.cc
    functionUses: 0
    functionsReached:
    - Pkcs11KeyPairGenerator
    - Test
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pk11KeyImportTestEC, GenerateExportImport)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:25,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:27,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:28,1
    - Dst: PK11_ImportDERPrivateKeyInfoAndReturnKey
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:31,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:32,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:34,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:37,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:39,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:40,1
    - Dst: SECKEY_DecodeDERSubjectPublicKeyInfo
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:43,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:47,1
    - Dst: SECKEY_ExtractPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:50,1
    - Dst: ScopedCERTSubjectPublicKeyInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:50,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:51,1
    - Dst: PK11_PubDeriveWithKDF
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:54,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:55,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:55,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:58,1
    - Dst: PK11_ExtractKeyValue
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:61,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:61,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:62,1
    - Dst: PK11_GetKeyData
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:64,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:64,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:65,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:66,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:66,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:71,1
    - Dst: PK11_ExportEncryptedPrivKeyInfo
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:72,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:73,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:73,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:75,1
    - Dst: PORT_ErrorToName
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:76,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:76,1
    - Dst: SECKEY_ConvertToPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:79,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:79,1
    - Dst: PK11_ImportEncryptedPrivateKeyInfoAndReturnKey
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:82,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:83,1
    - Dst: ScopedSECKEYEncryptedPrivateKeyInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:83,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:86,1
    - Dst: PORT_ErrorToName
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:87,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:87,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:88,1
    - Dst: PK11_PubDeriveWithKDF
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:92,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:93,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:96,1
    - Dst: PK11_ExtractKeyValue
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:99,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:99,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:100,1
    - Dst: PK11_GetKeyData
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:102,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:102,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:103,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:104,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:104,1
    - Dst: PK11_DeleteTokenPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:106,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:107,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 7
    argNames:
    - pkcs8
    - pkcs8_len
    - spki
    - spki_len
    - secret
    - secret_len
    - expect_success
    argTypes:
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 21
    functionDepth: 12
    functionLinenumber: 21
    functionLinenumberEnd: 109
    functionName: nss_test::Pkcs11Curve25519TestBase::Derive
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - PORT_ErrorToName
    - ScopedCERTSubjectPublicKeyInfo::get
    - PK11_DeleteTokenPrivateKey
    - ScopedPK11SymKey::get
    - toUcharPtr
    - EXPECT_TRUE
    - SECKEY_ConvertToPublicKey
    - PK11_ImportEncryptedPrivateKeyInfoAndReturnKey
    - memcmp
    - ASSERT_NE
    - ASSERT_EQ
    - static_cast<unsigned int>
    - SECKEY_DecodeDERSubjectPublicKeyInfo
    - PK11_ExtractKeyValue
    - PK11_GetKeyData
    - PK11_ExportEncryptedPrivKeyInfo
    - ScopedSECKEYPublicKey::get
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - PK11_ImportDERPrivateKeyInfoAndReturnKey
    - ScopedSECKEYEncryptedPrivateKeyInfo::get
    - PORT_GetError
    - SECKEY_ExtractPublicKey
    - ScopedSECKEYPrivateKey::get
    - PK11_PubDeriveWithKDF
    linkageType: ''
    returnType: void
    signature: "void Derive(const uint8_t* pkcs8, size_t pkcs8_len, const uint8_t*
      spki,\n              size_t spki_len, const uint8_t* secret, size_t secret_len,\n
      \             bool expect_success)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::Pkcs11Curve25519TestBase::Derive
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:114,1
    - Dst: private_key::data
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:114,1
    - Dst: private_key::size
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:114,1
    - Dst: public_key::data
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:115,1
    - Dst: public_key::size
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:115,1
    - Dst: secret::data
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:116,1
    - Dst: secret::size
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' testvector'
    argTypes:
    - EcdhTestVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 118
    functionName: nss_test::Pkcs11Curve25519TestBase::Derive
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc
    functionUses: 1
    functionsReached:
    - private_key::data
    - public_key::data
    - private_key::size
    - secret::size
    - public_key::size
    - nss_test::Pkcs11Curve25519TestBase::Derive
    - secret::data
    linkageType: ''
    returnType: void
    signature: void Derive(const EcdhTestVector& testvector)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NextItem
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:126,1
    - Dst: ReadLabel
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:127,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:132,1
    - Dst: ReadString
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:132,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:134,1
    - Dst: ReadString
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:134,1
    - Dst: WycheproofReadTests
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:136,1
    - Dst: FAIL
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:139,1
    - Dst: Derive
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:144,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - ' r'
    argTypes:
    - JsonReader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 146
    functionName: nss_test::Pkcs11Curve25519Wycheproof::RunGroup
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc
    functionUses: 0
    functionsReached:
    - NextItem
    - ASSERT_EQ
    - FAIL
    - WycheproofReadTests
    - Derive
    - ReadLabel
    - ReadString
    linkageType: ''
    returnType: void
    signature: void RunGroup(JsonReader& r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::find_if
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:167,1
    - Dst: begin
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:167,1
    - Dst: end
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:167,1
    - Dst: end
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:171,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 3
    argNames:
    - ' t'
    - ' result'
    - ' flags'
    argTypes:
    - EcdhTestVector
    - std::string
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 176
    functionName: nss_test::Pkcs11Curve25519Wycheproof::FilterInvalid
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc
    functionUses: 0
    functionsReached:
    - end
    - begin
    - std::find_if
    linkageType: ''
    returnType: void
    signature: "void FilterInvalid(EcdhTestVector& t, const std::string& result,\n
      \                           const std::vector<std::string>& flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:202,1
    - Dst: public_key::insert
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:203,1
    - Dst: public_key::end
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:203,1
    - Dst: std::vector::begin
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:203,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:203,1
    - Dst: ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:206,1
    - Dst: private_key::insert
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:207,1
    - Dst: private_key::end
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:207,1
    - Dst: std::vector::begin
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:207,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:207,1
    - Dst: private_key::insert
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:208,1
    - Dst: private_key::end
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:208,1
    - Dst: std::vector::begin
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:208,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:209,1
    - Dst: ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:211,1
    - Dst: FAIL
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:213,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - ' t'
    - ' n'
    - ' r'
    argTypes:
    - EcdhTestVector
    - std::string
    - JsonReader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 215
    functionName: nss_test::Pkcs11Curve25519Wycheproof::ReadTestAttr
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc
    functionUses: 0
    functionsReached:
    - public_key::insert
    - FAIL
    - public_key::end
    - ReadHex
    - private_key::end
    - private_key::insert
    - std::vector::end
    - std::vector::begin
    linkageType: ''
    returnType: void
    signature: "void ReadTestAttr(EcdhTestVector& t, const std::string& n,\n                           JsonReader&
      r)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WycheproofHeader
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:219,1
    - Dst: RunGroup
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 221
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc
    functionUses: 0
    functionsReached:
    - RunGroup
    - WycheproofHeader
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11Curve25519Wycheproof, Run)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Derive
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:227,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 227
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc
    functionUses: 0
    functionsReached:
    - Derive
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11Curve25519ParamTest, TestVectors)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:25,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:27,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:28,1
    - Dst: PK11_ImportDERPrivateKeyInfoAndReturnKey
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:31,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:32,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:34,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:37,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:39,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:40,1
    - Dst: SECKEY_DecodeDERSubjectPublicKeyInfo
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:43,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:47,1
    - Dst: SECKEY_ExtractPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:50,1
    - Dst: ScopedCERTSubjectPublicKeyInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:50,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:51,1
    - Dst: PK11_PubDeriveWithKDF
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:54,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:55,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:55,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:58,1
    - Dst: PK11_ExtractKeyValue
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:61,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:61,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:62,1
    - Dst: PK11_GetKeyData
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:64,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:64,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:65,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:66,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:66,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:71,1
    - Dst: PK11_ExportEncryptedPrivKeyInfo
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:72,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:73,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:73,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:75,1
    - Dst: PORT_ErrorToName
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:76,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:76,1
    - Dst: SECKEY_ConvertToPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:79,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:79,1
    - Dst: PK11_ImportEncryptedPrivateKeyInfoAndReturnKey
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:82,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:83,1
    - Dst: ScopedSECKEYEncryptedPrivateKeyInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:83,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:86,1
    - Dst: PORT_ErrorToName
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:87,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:87,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:88,1
    - Dst: PK11_PubDeriveWithKDF
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:92,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:93,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:96,1
    - Dst: PK11_ExtractKeyValue
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:99,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:99,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:100,1
    - Dst: PK11_GetKeyData
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:102,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:102,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:103,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:104,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:104,1
    - Dst: PK11_DeleteTokenPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:106,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:107,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 7
    argNames:
    - pkcs8
    - pkcs8_len
    - spki
    - spki_len
    - secret
    - secret_len
    - expect_success
    argTypes:
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 21
    functionDepth: 12
    functionLinenumber: 21
    functionLinenumberEnd: 109
    functionName: nss_test::Pkcs11Curve25519TestBase::Derive
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc
    functionUses: 1
    functionsReached:
    - ASSERT_TRUE
    - PORT_ErrorToName
    - ScopedCERTSubjectPublicKeyInfo::get
    - PK11_DeleteTokenPrivateKey
    - ScopedPK11SymKey::get
    - toUcharPtr
    - EXPECT_TRUE
    - SECKEY_ConvertToPublicKey
    - PK11_ImportEncryptedPrivateKeyInfoAndReturnKey
    - memcmp
    - ASSERT_NE
    - ASSERT_EQ
    - static_cast<unsigned int>
    - SECKEY_DecodeDERSubjectPublicKeyInfo
    - PK11_ExtractKeyValue
    - PK11_GetKeyData
    - PK11_ExportEncryptedPrivKeyInfo
    - ScopedSECKEYPublicKey::get
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - PK11_ImportDERPrivateKeyInfoAndReturnKey
    - ScopedSECKEYEncryptedPrivateKeyInfo::get
    - PORT_GetError
    - SECKEY_ExtractPublicKey
    - ScopedSECKEYPrivateKey::get
    - PK11_PubDeriveWithKDF
    linkageType: ''
    returnType: void
    signature: "void Derive(const uint8_t* pkcs8, size_t pkcs8_len, const uint8_t*
      spki,\n              size_t spki_len, const uint8_t* secret, size_t secret_len,\n
      \             bool expect_success)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::Pkcs11Curve25519TestBase::Derive
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:114,1
    - Dst: private_key::data
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:114,1
    - Dst: private_key::size
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:114,1
    - Dst: public_key::data
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:115,1
    - Dst: public_key::size
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:115,1
    - Dst: secret::data
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:116,1
    - Dst: secret::size
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' testvector'
    argTypes:
    - EcdhTestVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 118
    functionName: nss_test::Pkcs11Curve25519TestBase::Derive
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc
    functionUses: 2
    functionsReached:
    - private_key::data
    - public_key::data
    - private_key::size
    - secret::size
    - public_key::size
    - nss_test::Pkcs11Curve25519TestBase::Derive
    - secret::data
    linkageType: ''
    returnType: void
    signature: void Derive(const EcdhTestVector& testvector)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NextItem
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:126,1
    - Dst: ReadLabel
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:127,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:132,1
    - Dst: ReadString
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:132,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:134,1
    - Dst: ReadString
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:134,1
    - Dst: WycheproofReadTests
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:136,1
    - Dst: FAIL
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:139,1
    - Dst: Derive
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:144,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - ' r'
    argTypes:
    - JsonReader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 146
    functionName: nss_test::Pkcs11Curve25519Wycheproof::RunGroup
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc
    functionUses: 0
    functionsReached:
    - NextItem
    - ASSERT_EQ
    - FAIL
    - WycheproofReadTests
    - Derive
    - ReadLabel
    - ReadString
    linkageType: ''
    returnType: void
    signature: void RunGroup(JsonReader& r)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::find_if
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:167,1
    - Dst: begin
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:167,1
    - Dst: end
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:167,1
    - Dst: end
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:171,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 3
    argNames:
    - ' t'
    - ' result'
    - ' flags'
    argTypes:
    - EcdhTestVector
    - std::string
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 176
    functionName: nss_test::Pkcs11Curve25519Wycheproof::FilterInvalid
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc
    functionUses: 0
    functionsReached:
    - end
    - begin
    - std::find_if
    linkageType: ''
    returnType: void
    signature: "void FilterInvalid(EcdhTestVector& t, const std::string& result,\n
      \                           const std::vector<std::string>& flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:202,1
    - Dst: public_key::insert
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:203,1
    - Dst: public_key::end
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:203,1
    - Dst: std::vector::begin
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:203,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:203,1
    - Dst: ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:206,1
    - Dst: private_key::insert
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:207,1
    - Dst: private_key::end
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:207,1
    - Dst: std::vector::begin
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:207,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:207,1
    - Dst: private_key::insert
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:208,1
    - Dst: private_key::end
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:208,1
    - Dst: std::vector::begin
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:208,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:209,1
    - Dst: ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:211,1
    - Dst: FAIL
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:213,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - ' t'
    - ' n'
    - ' r'
    argTypes:
    - EcdhTestVector
    - std::string
    - JsonReader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 215
    functionName: nss_test::Pkcs11Curve25519Wycheproof::ReadTestAttr
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc
    functionUses: 0
    functionsReached:
    - public_key::insert
    - FAIL
    - public_key::end
    - ReadHex
    - private_key::end
    - private_key::insert
    - std::vector::end
    - std::vector::begin
    linkageType: ''
    returnType: void
    signature: "void ReadTestAttr(EcdhTestVector& t, const std::string& n,\n                           JsonReader&
      r)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WycheproofHeader
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:219,1
    - Dst: RunGroup
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 221
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc
    functionUses: 0
    functionsReached:
    - RunGroup
    - WycheproofHeader
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11Curve25519Wycheproof, Run)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Derive
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:227,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 227
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_curve25519_unittest.cc
    functionUses: 0
    functionsReached:
    - Derive
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11Curve25519ParamTest, TestVectors)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:24,1
    - Dst: public_key::data
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:24,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:25,1
    - Dst: public_key::size
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:25,1
    - Dst: SECKEY_DecodeDERSubjectPublicKeyInfo
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:27,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:29,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:31,1
    - Dst: SECKEY_ExtractPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:35,1
    - Dst: ScopedCERTSubjectPublicKeyInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:35,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:37,1
    - Dst: nss_test::Pkcs11EcdhTest::ImportPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:42,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:44,1
    - Dst: PK11_PubDeriveWithKDF
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:50,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:50,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:50,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:54,1
    - Dst: PK11_ExtractKeyValue
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:56,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:56,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:57,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:59,1
    - Dst: secret::data
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:59,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:60,1
    - Dst: secret::size
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:60,1
    - Dst: PK11_GetKeyData
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:62,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:62,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:63,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:63,1
    - Dst: ASSERT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:67,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - ' curve'
    - ' vec'
    argTypes:
    - std::string
    - EcdhTestVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 21
    functionDepth: 12
    functionLinenumber: 21
    functionLinenumberEnd: 69
    functionName: nss_test::Pkcs11EcdhTest::Derive
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc
    functionUses: 0
    functionsReached:
    - SECITEM_CompareItem
    - public_key::data
    - ASSERT_TRUE
    - ScopedCERTSubjectPublicKeyInfo::get
    - nss_test::Pkcs11EcdhTest::ImportPrivateKey
    - ScopedPK11SymKey::get
    - toUcharPtr
    - static_cast<unsigned int>
    - SECKEY_DecodeDERSubjectPublicKeyInfo
    - PK11_ExtractKeyValue
    - PK11_GetKeyData
    - public_key::size
    - ScopedSECKEYPublicKey::get
    - EXPECT_EQ
    - secret::size
    - SECKEY_ExtractPublicKey
    - ASSERT_FALSE
    - ScopedSECKEYPrivateKey::get
    - secret::data
    - PK11_PubDeriveWithKDF
    linkageType: ''
    returnType: void
    signature: void Derive(const std::string& curve, const EcdhTestVector& vec)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:74,1
    - Dst: ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:76,1
    - Dst: ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:78,1
    - Dst: FAIL
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:80,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - ' t'
    - ' n'
    - ' r'
    argTypes:
    - EcdhTestVector
    - std::string
    - JsonReader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 82
    functionName: nss_test::Pkcs11EcdhTest::ReadTestAttr
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc
    functionUses: 0
    functionsReached:
    - FAIL
    - ReadHex
    linkageType: ''
    returnType: void
    signature: "void ReadTestAttr(EcdhTestVector& t, const std::string& n,\n                           JsonReader&
      r)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NextItem
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:87,1
    - Dst: ReadLabel
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:88,1
    - Dst: ReadString
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:93,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:95,1
    - Dst: ReadString
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:95,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:97,1
    - Dst: ReadString
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:97,1
    - Dst: WycheproofReadTests
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:99,1
    - Dst: std::find
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:103,1
    - Dst: begin
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:103,1
    - Dst: end
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:103,1
    - Dst: end
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:104,1
    - Dst: FAIL
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:107,1
    - Dst: nss_test::Pkcs11EcdhTest::Derive
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:112,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - ' r'
    argTypes:
    - JsonReader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 84
    functionDepth: 13
    functionLinenumber: 84
    functionLinenumberEnd: 114
    functionName: nss_test::Pkcs11EcdhTest::RunGroup
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc
    functionUses: 0
    functionsReached:
    - NextItem
    - ASSERT_EQ
    - FAIL
    - WycheproofReadTests
    - std::find
    - end
    - begin
    - ReadLabel
    - nss_test::Pkcs11EcdhTest::Derive
    - ReadString
    linkageType: ''
    returnType: void
    signature: void RunGroup(JsonReader& r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WycheproofHeader
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:117,1
    - Dst: nss_test::Pkcs11EcdhTest::RunGroup
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' file'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 116
    functionDepth: 14
    functionLinenumber: 116
    functionLinenumberEnd: 119
    functionName: nss_test::Pkcs11EcdhTest::Run
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc
    functionUses: 0
    functionsReached:
    - nss_test::Pkcs11EcdhTest::RunGroup
    - WycheproofHeader
    linkageType: ''
    returnType: void
    signature: void Run(const std::string& file)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FAIL
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:131,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:133,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:134,1
    - Dst: std::vector<uint8_t>*::push_back
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:135,1
    - Dst: std::vector<uint8_t>*::push_back
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:136,1
    - Dst: std::vector<uint8_t>*::insert
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:137,1
    - Dst: std::vector<uint8_t>*::end
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:137,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - ' curve'
    - der
    argTypes:
    - std::string
    - std::vector<uint8_t>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 139
    functionName: nss_test::Pkcs11EcdhTest::OidForCurve
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc
    functionUses: 0
    functionsReached:
    - FAIL
    - SECOID_FindOIDByTag
    - std::vector<uint8_t>*::push_back
    - ASSERT_TRUE
    - std::vector<uint8_t>*::insert
    - std::vector<uint8_t>*::end
    linkageType: ''
    returnType: void
    signature: void OidForCurve(const std::string& curve, std::vector<uint8_t>* der)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FAIL
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:152,1
    - Dst: std::vector<uint8_t>*::push_back
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:154,1
    - Dst: std::vector<uint8_t>*::push_back
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:156,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - ' curve'
    - der
    argTypes:
    - std::string
    - std::vector<uint8_t>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 158
    functionName: nss_test::Pkcs11EcdhTest::PublicValue
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc
    functionUses: 0
    functionsReached:
    - FAIL
    - std::vector<uint8_t>*::push_back
    linkageType: ''
    returnType: void
    signature: void PublicValue(const std::string& curve, std::vector<uint8_t>* der)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>*::size
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:161,1
    - Dst: ASSERT_GT
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:162,1
    - Dst: std::vector<uint8_t>*::insert
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:164,1
    - Dst: std::vector<uint8_t>*::begin
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:164,1
    - Dst: std::vector<uint8_t>*::insert
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:167,1
    - Dst: std::vector<uint8_t>*::begin
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:167,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - der
    - offset
    argTypes:
    - std::vector<uint8_t>*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 168
    functionName: nss_test::Pkcs11EcdhTest::InsertLength
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>*::insert
    - std::vector<uint8_t>*::begin
    - ASSERT_GT
    - std::vector<uint8_t>*::size
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void InsertLength(std::vector<uint8_t>* der, size_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:177,1
    - Dst: std::vector::push_back
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:178,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:178,1
    - Dst: std::vector::insert
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:179,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:179,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:180,1
    - Dst: std::vector::insert
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:181,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:181,1
    - Dst: nss_test::Pkcs11EcdhTest::OidForCurve
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:183,1
    - Dst: nss_test::Pkcs11EcdhTest::InsertLength
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:184,1
    - Dst: std::vector::push_back
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:186,1
    - Dst: std::vector::push_back
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:187,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:187,1
    - Dst: std::vector::push_back
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:188,1
    - Dst: std::vector::push_back
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:189,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:189,1
    - Dst: std::vector::insert
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:191,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:191,1
    - Dst: std::vector::push_back
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:192,1
    - Dst: private_key::size
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:192,1
    - Dst: std::vector::insert
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:193,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:193,1
    - Dst: private_key::begin
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:193,1
    - Dst: private_key::end
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:193,1
    - Dst: std::vector::push_back
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:195,1
    - Dst: std::vector::push_back
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:196,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:196,1
    - Dst: std::vector::push_back
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:197,1
    - Dst: std::vector::push_back
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:198,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:198,1
    - Dst: std::vector::push_back
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:199,1
    - Dst: nss_test::Pkcs11EcdhTest::PublicValue
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:200,1
    - Dst: std::vector::rbegin
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:202,1
    - Dst: std::vector::rend
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:202,1
    - Dst: nss_test::Pkcs11EcdhTest::InsertLength
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 2
    argNames:
    - ' curve'
    - ' vec'
    argTypes:
    - std::string
    - EcdhTestVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 206
    functionName: nss_test::Pkcs11EcdhTest::BuildDerPrivateKey
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc
    functionUses: 0
    functionsReached:
    - nss_test::Pkcs11EcdhTest::OidForCurve
    - std::vector::rbegin
    - nss_test::Pkcs11EcdhTest::InsertLength
    - std::vector::rend
    - private_key::size
    - std::vector::size
    - std::vector::insert
    - std::vector::push_back
    - std::vector::end
    - private_key::end
    - private_key::begin
    - nss_test::Pkcs11EcdhTest::PublicValue
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> BuildDerPrivateKey(const std::string& curve,\n
      \                                         const EcdhTestVector& vec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:211,1
    - Dst: nss_test::Pkcs11EcdhTest::BuildDerPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:216,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:217,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:217,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:218,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:218,1
    - Dst: PK11_ImportDERPrivateKeyInfoAndReturnKey
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:220,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:221,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:224,1
    - Dst: PORT_ErrorToString
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:226,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:226,1
    - Dst: ScopedSECKEYPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:229,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' curve'
    - ' vec'
    argTypes:
    - std::string
    - EcdhTestVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 208
    functionDepth: 3
    functionLinenumber: 208
    functionLinenumberEnd: 230
    functionName: nss_test::Pkcs11EcdhTest::ImportPrivateKey
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc
    functionUses: 1
    functionsReached:
    - PORT_ErrorToString
    - std::vector::data
    - EXPECT_TRUE
    - PORT_GetError
    - std::vector::size
    - nss_test::Pkcs11EcdhTest::BuildDerPrivateKey
    - static_cast<unsigned int>
    - ScopedSECKEYPrivateKey
    - const_cast<uint8_t*>
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - PK11_ImportDERPrivateKeyInfoAndReturnKey
    linkageType: ''
    returnType: ScopedSECKEYPrivateKey
    signature: "ScopedSECKEYPrivateKey ImportPrivateKey(const std::string& curve,\n
      \                                         const EcdhTestVector& vec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 233
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11EcdhTest, P256)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 234
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11EcdhTest, P384)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 235
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11EcdhTest, P521)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:24,1
    - Dst: public_key::data
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:24,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:25,1
    - Dst: public_key::size
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:25,1
    - Dst: SECKEY_DecodeDERSubjectPublicKeyInfo
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:27,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:29,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:31,1
    - Dst: SECKEY_ExtractPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:35,1
    - Dst: ScopedCERTSubjectPublicKeyInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:35,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:37,1
    - Dst: nss_test::Pkcs11EcdhTest::ImportPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:42,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:44,1
    - Dst: PK11_PubDeriveWithKDF
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:50,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:50,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:50,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:54,1
    - Dst: PK11_ExtractKeyValue
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:56,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:56,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:57,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:59,1
    - Dst: secret::data
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:59,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:60,1
    - Dst: secret::size
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:60,1
    - Dst: PK11_GetKeyData
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:62,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:62,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:63,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:63,1
    - Dst: ASSERT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:67,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - ' curve'
    - ' vec'
    argTypes:
    - std::string
    - EcdhTestVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 21
    functionDepth: 12
    functionLinenumber: 21
    functionLinenumberEnd: 69
    functionName: nss_test::Pkcs11EcdhTest::Derive
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc
    functionUses: 1
    functionsReached:
    - SECITEM_CompareItem
    - public_key::data
    - ASSERT_TRUE
    - ScopedCERTSubjectPublicKeyInfo::get
    - nss_test::Pkcs11EcdhTest::ImportPrivateKey
    - ScopedPK11SymKey::get
    - toUcharPtr
    - static_cast<unsigned int>
    - SECKEY_DecodeDERSubjectPublicKeyInfo
    - PK11_ExtractKeyValue
    - PK11_GetKeyData
    - public_key::size
    - ScopedSECKEYPublicKey::get
    - EXPECT_EQ
    - secret::size
    - SECKEY_ExtractPublicKey
    - ASSERT_FALSE
    - ScopedSECKEYPrivateKey::get
    - secret::data
    - PK11_PubDeriveWithKDF
    linkageType: ''
    returnType: void
    signature: void Derive(const std::string& curve, const EcdhTestVector& vec)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:74,1
    - Dst: ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:76,1
    - Dst: ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:78,1
    - Dst: FAIL
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:80,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - ' t'
    - ' n'
    - ' r'
    argTypes:
    - EcdhTestVector
    - std::string
    - JsonReader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 82
    functionName: nss_test::Pkcs11EcdhTest::ReadTestAttr
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc
    functionUses: 0
    functionsReached:
    - FAIL
    - ReadHex
    linkageType: ''
    returnType: void
    signature: "void ReadTestAttr(EcdhTestVector& t, const std::string& n,\n                           JsonReader&
      r)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NextItem
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:87,1
    - Dst: ReadLabel
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:88,1
    - Dst: ReadString
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:93,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:95,1
    - Dst: ReadString
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:95,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:97,1
    - Dst: ReadString
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:97,1
    - Dst: WycheproofReadTests
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:99,1
    - Dst: std::find
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:103,1
    - Dst: begin
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:103,1
    - Dst: end
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:103,1
    - Dst: end
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:104,1
    - Dst: FAIL
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:107,1
    - Dst: nss_test::Pkcs11EcdhTest::Derive
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:112,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - ' r'
    argTypes:
    - JsonReader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 84
    functionDepth: 13
    functionLinenumber: 84
    functionLinenumberEnd: 114
    functionName: nss_test::Pkcs11EcdhTest::RunGroup
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc
    functionUses: 1
    functionsReached:
    - NextItem
    - ASSERT_EQ
    - FAIL
    - WycheproofReadTests
    - std::find
    - end
    - begin
    - ReadLabel
    - nss_test::Pkcs11EcdhTest::Derive
    - ReadString
    linkageType: ''
    returnType: void
    signature: void RunGroup(JsonReader& r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WycheproofHeader
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:117,1
    - Dst: nss_test::Pkcs11EcdhTest::RunGroup
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' file'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 116
    functionDepth: 14
    functionLinenumber: 116
    functionLinenumberEnd: 119
    functionName: nss_test::Pkcs11EcdhTest::Run
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc
    functionUses: 0
    functionsReached:
    - nss_test::Pkcs11EcdhTest::RunGroup
    - WycheproofHeader
    linkageType: ''
    returnType: void
    signature: void Run(const std::string& file)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FAIL
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:131,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:133,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:134,1
    - Dst: std::vector<uint8_t>*::push_back
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:135,1
    - Dst: std::vector<uint8_t>*::push_back
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:136,1
    - Dst: std::vector<uint8_t>*::insert
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:137,1
    - Dst: std::vector<uint8_t>*::end
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:137,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - ' curve'
    - der
    argTypes:
    - std::string
    - std::vector<uint8_t>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 139
    functionName: nss_test::Pkcs11EcdhTest::OidForCurve
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc
    functionUses: 1
    functionsReached:
    - FAIL
    - SECOID_FindOIDByTag
    - std::vector<uint8_t>*::push_back
    - ASSERT_TRUE
    - std::vector<uint8_t>*::insert
    - std::vector<uint8_t>*::end
    linkageType: ''
    returnType: void
    signature: void OidForCurve(const std::string& curve, std::vector<uint8_t>* der)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FAIL
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:152,1
    - Dst: std::vector<uint8_t>*::push_back
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:154,1
    - Dst: std::vector<uint8_t>*::push_back
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:156,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - ' curve'
    - der
    argTypes:
    - std::string
    - std::vector<uint8_t>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 158
    functionName: nss_test::Pkcs11EcdhTest::PublicValue
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc
    functionUses: 1
    functionsReached:
    - FAIL
    - std::vector<uint8_t>*::push_back
    linkageType: ''
    returnType: void
    signature: void PublicValue(const std::string& curve, std::vector<uint8_t>* der)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>*::size
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:161,1
    - Dst: ASSERT_GT
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:162,1
    - Dst: std::vector<uint8_t>*::insert
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:164,1
    - Dst: std::vector<uint8_t>*::begin
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:164,1
    - Dst: std::vector<uint8_t>*::insert
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:167,1
    - Dst: std::vector<uint8_t>*::begin
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:167,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - der
    - offset
    argTypes:
    - std::vector<uint8_t>*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 168
    functionName: nss_test::Pkcs11EcdhTest::InsertLength
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc
    functionUses: 1
    functionsReached:
    - std::vector<uint8_t>*::insert
    - std::vector<uint8_t>*::begin
    - ASSERT_GT
    - std::vector<uint8_t>*::size
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void InsertLength(std::vector<uint8_t>* der, size_t offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:177,1
    - Dst: std::vector::push_back
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:178,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:178,1
    - Dst: std::vector::insert
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:179,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:179,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:180,1
    - Dst: std::vector::insert
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:181,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:181,1
    - Dst: nss_test::Pkcs11EcdhTest::OidForCurve
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:183,1
    - Dst: nss_test::Pkcs11EcdhTest::InsertLength
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:184,1
    - Dst: std::vector::push_back
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:186,1
    - Dst: std::vector::push_back
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:187,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:187,1
    - Dst: std::vector::push_back
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:188,1
    - Dst: std::vector::push_back
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:189,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:189,1
    - Dst: std::vector::insert
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:191,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:191,1
    - Dst: std::vector::push_back
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:192,1
    - Dst: private_key::size
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:192,1
    - Dst: std::vector::insert
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:193,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:193,1
    - Dst: private_key::begin
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:193,1
    - Dst: private_key::end
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:193,1
    - Dst: std::vector::push_back
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:195,1
    - Dst: std::vector::push_back
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:196,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:196,1
    - Dst: std::vector::push_back
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:197,1
    - Dst: std::vector::push_back
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:198,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:198,1
    - Dst: std::vector::push_back
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:199,1
    - Dst: nss_test::Pkcs11EcdhTest::PublicValue
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:200,1
    - Dst: std::vector::rbegin
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:202,1
    - Dst: std::vector::rend
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:202,1
    - Dst: nss_test::Pkcs11EcdhTest::InsertLength
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 2
    argNames:
    - ' curve'
    - ' vec'
    argTypes:
    - std::string
    - EcdhTestVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 206
    functionName: nss_test::Pkcs11EcdhTest::BuildDerPrivateKey
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc
    functionUses: 1
    functionsReached:
    - nss_test::Pkcs11EcdhTest::OidForCurve
    - std::vector::rbegin
    - nss_test::Pkcs11EcdhTest::InsertLength
    - std::vector::rend
    - private_key::size
    - std::vector::size
    - std::vector::insert
    - std::vector::push_back
    - std::vector::end
    - private_key::end
    - private_key::begin
    - nss_test::Pkcs11EcdhTest::PublicValue
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> BuildDerPrivateKey(const std::string& curve,\n
      \                                         const EcdhTestVector& vec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:211,1
    - Dst: nss_test::Pkcs11EcdhTest::BuildDerPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:216,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:217,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:217,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:218,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:218,1
    - Dst: PK11_ImportDERPrivateKeyInfoAndReturnKey
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:220,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:221,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:224,1
    - Dst: PORT_ErrorToString
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:226,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:226,1
    - Dst: ScopedSECKEYPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:229,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' curve'
    - ' vec'
    argTypes:
    - std::string
    - EcdhTestVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 208
    functionDepth: 3
    functionLinenumber: 208
    functionLinenumberEnd: 230
    functionName: nss_test::Pkcs11EcdhTest::ImportPrivateKey
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc
    functionUses: 2
    functionsReached:
    - PORT_ErrorToString
    - std::vector::data
    - EXPECT_TRUE
    - PORT_GetError
    - std::vector::size
    - nss_test::Pkcs11EcdhTest::BuildDerPrivateKey
    - static_cast<unsigned int>
    - ScopedSECKEYPrivateKey
    - const_cast<uint8_t*>
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - PK11_ImportDERPrivateKeyInfoAndReturnKey
    linkageType: ''
    returnType: ScopedSECKEYPrivateKey
    signature: "ScopedSECKEYPrivateKey ImportPrivateKey(const std::string& curve,\n
      \                                         const EcdhTestVector& vec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 233
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11EcdhTest, P256)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 234
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11EcdhTest, P384)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 235
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdh_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11EcdhTest, P521)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: nss_test::Pkcs11EddsaTest::Pkcs11EddsaTest
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Pkcs11EddsaTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SignAndVerifyRaw
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:44,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc
    functionUses: 0
    functionsReached:
    - SignAndVerifyRaw
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11EddsaTest, SignAndVerify)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ImportExport
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:46,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc
    functionUses: 0
    functionsReached:
    - ImportExport
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11EddsaTest, ImportExport)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ImportPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:49,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:49,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:50,1
    - Dst: SECKEY_ConvertToPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:52,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:52,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 48
    functionDepth: 5
    functionLinenumber: 48
    functionLinenumberEnd: 54
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc
    functionUses: 0
    functionsReached:
    - ImportPrivateKey
    - ASSERT_TRUE
    - SECKEY_ConvertToPublicKey
    - GetParam
    - ScopedSECKEYPrivateKey::get
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11EddsaTest, ImportConvertToPublic)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ImportPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:57,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:57,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:58,1
    - Dst: SECKEY_ConvertToPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:61,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:61,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:62,1
    - Dst: SECKEY_EncodeDERSubjectPublicKeyInfo
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:64,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:64,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:65,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:66,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:66,1
    - Dst: len
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:66,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:67,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:67,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:67,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 56
    functionDepth: 5
    functionLinenumber: 56
    functionLinenumberEnd: 68
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc
    functionUses: 0
    functionsReached:
    - ImportPrivateKey
    - ASSERT_EQ
    - len
    - memcmp
    - ASSERT_TRUE
    - SECKEY_EncodeDERSubjectPublicKeyInfo
    - SECKEY_ConvertToPublicKey
    - GetParam
    - ScopedSECKEYPrivateKey::get
    - ScopedSECKEYPublicKey::get
    - data
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11EddsaTest, ImportPublicCreateSubjectPKInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: nss_test::Pkcs11EddsaRoundtripTest::Pkcs11EddsaRoundtripTest
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Pkcs11EddsaRoundtripTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Pkcs11KeyPairGenerator::GenerateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:84,1
    - Dst: ExportPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:87,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:90,1
    - Dst: SignRaw
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:93,1
    - Dst: Verify
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - params
    argTypes:
    - Pkcs11SignatureTestParams
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 95
    functionName: nss_test::Pkcs11EddsaRoundtripTest::GenerateExportImportSignVerify
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc
    functionUses: 0
    functionsReached:
    - Pkcs11KeyPairGenerator::GenerateKey
    - ExportPrivateKey
    - SignRaw
    - Verify
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void GenerateExportImportSignVerify(Pkcs11SignatureTestParams params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GenerateExportImportSignVerify
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:99,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc
    functionUses: 0
    functionsReached:
    - GenerateExportImportSignVerify
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11EddsaRoundtripTest, GenerateExportImportSignVerify)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WycheproofHeader
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:108,1
    - Dst: nss_test::Pkcs11EddsaWycheproofTest::RunGroup
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: nss_test::Pkcs11EddsaWycheproofTest::Run
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc
    functionUses: 0
    functionsReached:
    - WycheproofHeader
    - nss_test::Pkcs11EddsaWycheproofTest::RunGroup
    linkageType: ''
    returnType: void
    signature: void Run(const std::string& name)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NextItem
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:117,1
    - Dst: ReadLabel
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:118,1
    - Dst: SkipValue
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:124,1
    - Dst: ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:126,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:128,1
    - Dst: ReadString
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:128,1
    - Dst: WycheproofReadTests
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:130,1
    - Dst: FAIL
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:132,1
    - Dst: nss_test::Pkcs11EddsaWycheproofTest::Derive
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:139,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 1
    argNames:
    - ' r'
    argTypes:
    - JsonReader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 141
    functionName: nss_test::Pkcs11EddsaWycheproofTest::RunGroup
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc
    functionUses: 1
    functionsReached:
    - NextItem
    - ASSERT_EQ
    - FAIL
    - WycheproofReadTests
    - ReadHex
    - SkipValue
    - ReadLabel
    - nss_test::Pkcs11EddsaWycheproofTest::Derive
    - ReadString
    linkageType: ''
    returnType: void
    signature: void RunGroup(JsonReader& r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:146,1
    - Dst: ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:148,1
    - Dst: FAIL
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ' t'
    - ' n'
    - ' r'
    argTypes:
    - EddsaTestVector
    - std::string
    - JsonReader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 152
    functionName: nss_test::Pkcs11EddsaWycheproofTest::ReadTestAttr
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc
    functionUses: 0
    functionsReached:
    - FAIL
    - ReadHex
    linkageType: ''
    returnType: void
    signature: "void ReadTestAttr(EddsaTestVector& t, const std::string& n,\n                           JsonReader&
      r)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:155,1
    - Dst: public_key::data
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:155,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:156,1
    - Dst: public_key::size
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:156,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:157,1
    - Dst: sig::data
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:157,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:158,1
    - Dst: sig::size
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:158,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:159,1
    - Dst: msg::data
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:159,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:160,1
    - Dst: msg::size
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:160,1
    - Dst: SECKEY_DecodeDERSubjectPublicKeyInfo
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:163,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:164,1
    - Dst: SECKEY_ExtractPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:166,1
    - Dst: ScopedCERTSubjectPublicKeyInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:166,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:167,1
    - Dst: PK11_VerifyWithMechanism
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:169,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:169,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' vec'
    argTypes:
    - EddsaTestVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 154
    functionDepth: 9
    functionLinenumber: 154
    functionLinenumberEnd: 172
    functionName: nss_test::Pkcs11EddsaWycheproofTest::Derive
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc
    functionUses: 1
    functionsReached:
    - sig::data
    - public_key::data
    - PK11_VerifyWithMechanism
    - sig::size
    - msg::size
    - ASSERT_TRUE
    - static_cast<unsigned int>
    - SECKEY_DecodeDERSubjectPublicKeyInfo
    - SECKEY_ExtractPublicKey
    - ScopedCERTSubjectPublicKeyInfo::get
    - public_key::size
    - toUcharPtr
    - ScopedSECKEYPublicKey::get
    - EXPECT_EQ
    - msg::data
    linkageType: ''
    returnType: void
    signature: void Derive(const EddsaTestVector& vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 175
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11EddsaWycheproofTest, Ed25519)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: nss_test::Pkcs11EddsaTest::Pkcs11EddsaTest
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Pkcs11EddsaTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SignAndVerifyRaw
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:44,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc
    functionUses: 0
    functionsReached:
    - SignAndVerifyRaw
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11EddsaTest, SignAndVerify)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ImportExport
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:46,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc
    functionUses: 0
    functionsReached:
    - ImportExport
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11EddsaTest, ImportExport)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ImportPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:49,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:49,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:50,1
    - Dst: SECKEY_ConvertToPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:52,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:52,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 48
    functionDepth: 5
    functionLinenumber: 48
    functionLinenumberEnd: 54
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc
    functionUses: 0
    functionsReached:
    - ImportPrivateKey
    - ASSERT_TRUE
    - SECKEY_ConvertToPublicKey
    - GetParam
    - ScopedSECKEYPrivateKey::get
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11EddsaTest, ImportConvertToPublic)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ImportPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:57,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:57,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:58,1
    - Dst: SECKEY_ConvertToPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:61,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:61,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:62,1
    - Dst: SECKEY_EncodeDERSubjectPublicKeyInfo
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:64,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:64,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:65,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:66,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:66,1
    - Dst: len
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:66,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:67,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:67,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:67,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 56
    functionDepth: 5
    functionLinenumber: 56
    functionLinenumberEnd: 68
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc
    functionUses: 0
    functionsReached:
    - ImportPrivateKey
    - ASSERT_EQ
    - len
    - memcmp
    - ASSERT_TRUE
    - SECKEY_EncodeDERSubjectPublicKeyInfo
    - SECKEY_ConvertToPublicKey
    - GetParam
    - ScopedSECKEYPrivateKey::get
    - ScopedSECKEYPublicKey::get
    - data
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11EddsaTest, ImportPublicCreateSubjectPKInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: nss_test::Pkcs11EddsaRoundtripTest::Pkcs11EddsaRoundtripTest
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Pkcs11EddsaRoundtripTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Pkcs11KeyPairGenerator::GenerateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:84,1
    - Dst: ExportPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:87,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:90,1
    - Dst: SignRaw
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:93,1
    - Dst: Verify
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - params
    argTypes:
    - Pkcs11SignatureTestParams
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 95
    functionName: nss_test::Pkcs11EddsaRoundtripTest::GenerateExportImportSignVerify
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc
    functionUses: 0
    functionsReached:
    - Pkcs11KeyPairGenerator::GenerateKey
    - ExportPrivateKey
    - SignRaw
    - Verify
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void GenerateExportImportSignVerify(Pkcs11SignatureTestParams params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GenerateExportImportSignVerify
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:99,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc
    functionUses: 0
    functionsReached:
    - GenerateExportImportSignVerify
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11EddsaRoundtripTest, GenerateExportImportSignVerify)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WycheproofHeader
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:108,1
    - Dst: nss_test::Pkcs11EddsaWycheproofTest::RunGroup
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: nss_test::Pkcs11EddsaWycheproofTest::Run
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc
    functionUses: 0
    functionsReached:
    - WycheproofHeader
    - nss_test::Pkcs11EddsaWycheproofTest::RunGroup
    linkageType: ''
    returnType: void
    signature: void Run(const std::string& name)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NextItem
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:117,1
    - Dst: ReadLabel
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:118,1
    - Dst: SkipValue
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:124,1
    - Dst: ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:126,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:128,1
    - Dst: ReadString
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:128,1
    - Dst: WycheproofReadTests
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:130,1
    - Dst: FAIL
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:132,1
    - Dst: nss_test::Pkcs11EddsaWycheproofTest::Derive
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:139,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 1
    argNames:
    - ' r'
    argTypes:
    - JsonReader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 113
    functionDepth: 10
    functionLinenumber: 113
    functionLinenumberEnd: 141
    functionName: nss_test::Pkcs11EddsaWycheproofTest::RunGroup
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc
    functionUses: 2
    functionsReached:
    - NextItem
    - ASSERT_EQ
    - FAIL
    - WycheproofReadTests
    - ReadHex
    - SkipValue
    - ReadLabel
    - nss_test::Pkcs11EddsaWycheproofTest::Derive
    - ReadString
    linkageType: ''
    returnType: void
    signature: void RunGroup(JsonReader& r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:146,1
    - Dst: ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:148,1
    - Dst: FAIL
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ' t'
    - ' n'
    - ' r'
    argTypes:
    - EddsaTestVector
    - std::string
    - JsonReader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 152
    functionName: nss_test::Pkcs11EddsaWycheproofTest::ReadTestAttr
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc
    functionUses: 0
    functionsReached:
    - FAIL
    - ReadHex
    linkageType: ''
    returnType: void
    signature: "void ReadTestAttr(EddsaTestVector& t, const std::string& n,\n                           JsonReader&
      r)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:155,1
    - Dst: public_key::data
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:155,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:156,1
    - Dst: public_key::size
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:156,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:157,1
    - Dst: sig::data
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:157,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:158,1
    - Dst: sig::size
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:158,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:159,1
    - Dst: msg::data
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:159,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:160,1
    - Dst: msg::size
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:160,1
    - Dst: SECKEY_DecodeDERSubjectPublicKeyInfo
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:163,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:164,1
    - Dst: SECKEY_ExtractPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:166,1
    - Dst: ScopedCERTSubjectPublicKeyInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:166,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:167,1
    - Dst: PK11_VerifyWithMechanism
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:169,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:169,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' vec'
    argTypes:
    - EddsaTestVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 154
    functionDepth: 9
    functionLinenumber: 154
    functionLinenumberEnd: 172
    functionName: nss_test::Pkcs11EddsaWycheproofTest::Derive
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc
    functionUses: 2
    functionsReached:
    - sig::data
    - public_key::data
    - PK11_VerifyWithMechanism
    - sig::size
    - msg::size
    - ASSERT_TRUE
    - static_cast<unsigned int>
    - SECKEY_DecodeDERSubjectPublicKeyInfo
    - SECKEY_ExtractPublicKey
    - ScopedCERTSubjectPublicKeyInfo::get
    - public_key::size
    - toUcharPtr
    - ScopedSECKEYPublicKey::get
    - EXPECT_EQ
    - msg::data
    linkageType: ''
    returnType: void
    signature: void Derive(const EddsaTestVector& vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 175
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_eddsa_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11EddsaWycheproofTest, Ed25519)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:17,1
    - Dst: reinterpret_cast<const unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:18,1
    - Dst: c_str
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 19
    functionName: nss_test::ToUcharPtr
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc
    functionUses: 0
    functionsReached:
    - const_cast<unsigned char*>
    - c_str
    - reinterpret_cast<const unsigned char*>
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char * ToUcharPtr(std::string& str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:30,1
    - Dst: nss_test::Pkcs11Pbkdf2Test::DeriveBytes
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:30,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:34,1
    - Dst: nss_test::Pkcs11Pbkdf2Test::DeriveBytes
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:34,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:38,1
    - Dst: nss_test::Pkcs11Pbkdf2Test::DeriveBytes
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:38,1
    - Dst: static_cast<SECOidTag>
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:41,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:42,1
    - Dst: nss_test::Pkcs11Pbkdf2Test::DeriveBytes
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:42,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:45,1
    - Dst: nss_test::Pkcs11Pbkdf2Test::DeriveBytes
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ' derived'
    - hash_alg
    argTypes:
    - std::vector<uint8_t>
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 46
    functionName: nss_test::Pkcs11Pbkdf2Test::Derive
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc
    functionUses: 0
    functionsReached:
    - nss_test::Pkcs11Pbkdf2Test::DeriveBytes
    - EXPECT_TRUE
    - EXPECT_FALSE
    - static_cast<SECOidTag>
    linkageType: ''
    returnType: void
    signature: void Derive(std::vector<uint8_t>& derived, SECOidTag hash_alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:58,1
    - Dst: nss_test::Pkcs11Pbkdf2Test::KeySizeParam
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:58,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:62,1
    - Dst: nss_test::Pkcs11Pbkdf2Test::KeySizeParam
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:62,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:65,1
    - Dst: nss_test::Pkcs11Pbkdf2Test::KeySizeParam
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:66,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:72,1
    - Dst: nss_test::Pkcs11Pbkdf2Test::KeySizeParam
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:73,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:77,1
    - Dst: nss_test::Pkcs11Pbkdf2Test::KeySizeParam
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:78,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:81,1
    - Dst: nss_test::Pkcs11Pbkdf2Test::MalformedPass
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:82,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:83,1
    - Dst: nss_test::Pkcs11Pbkdf2Test::MalformedSalt
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - hash_alg
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 85
    functionName: nss_test::Pkcs11Pbkdf2Test::KeySizes
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - nss_test::Pkcs11Pbkdf2Test::KeySizeParam
    - EXPECT_TRUE
    - nss_test::Pkcs11Pbkdf2Test::MalformedSalt
    - nss_test::Pkcs11Pbkdf2Test::MalformedPass
    linkageType: ''
    returnType: void
    signature: void KeySizes(SECOidTag hash_alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:91,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:92,1
    - Dst: length
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:92,1
    - Dst: ToUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:93,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:94,1
    - Dst: length
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:94,1
    - Dst: PK11_CreatePBEV2AlgorithmID
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:98,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:99,1
    - Dst: PK11_PBEKeyGen
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:104,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:104,1
    - Dst: ScopedSECAlgorithmID::get
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:104,1
    - Dst: PK11_ExtractKeyValue
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:106,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:106,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:107,1
    - Dst: PK11_GetKeyData
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:109,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:109,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ' pass'
    - ' salt'
    - ' derived'
    - hash_alg
    - kIterations
    argTypes:
    - std::string
    - std::string
    - std::vector<uint8_t>
    - SECOidTag
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 88
    functionDepth: 13
    functionLinenumber: 88
    functionLinenumberEnd: 111
    functionName: nss_test::Pkcs11Pbkdf2Test::DeriveBytes
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc
    functionUses: 1
    functionsReached:
    - PK11_PBEKeyGen
    - length
    - ScopedPK11SymKey::get
    - size
    - memcmp
    - static_cast<unsigned int>
    - PK11_ExtractKeyValue
    - ScopedSECAlgorithmID::get
    - PK11_GetKeyData
    - ToUcharPtr
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - PK11_CreatePBEV2AlgorithmID
    linkageType: ''
    returnType: bool
    signature: "bool DeriveBytes(std::string& pass, std::string& salt,\n                   std::vector<uint8_t>&
      derived, SECOidTag hash_alg,\n                   unsigned int kIterations)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_CreatePBEV2AlgorithmID
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:117,1
    - Dst: PK11_PBEKeyGen
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:123,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:123,1
    - Dst: ScopedSECAlgorithmID::get
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:123,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - pass_item
    - salt_item
    - key_size
    - hash_alg
    - kIterations
    argTypes:
    - SECItem
    - SECItem
    - int
    - SECOidTag
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 113
    functionDepth: 13
    functionLinenumber: 113
    functionLinenumberEnd: 127
    functionName: nss_test::Pkcs11Pbkdf2Test::GenerateKey
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_PBEKeyGen
    - ScopedPK11SymKey::get
    - ScopedSECAlgorithmID::get
    - ScopedPK11SlotInfo::get
    - PK11_CreatePBEV2AlgorithmID
    linkageType: ''
    returnType: bool
    signature: "bool GenerateKey(SECItem pass_item, SECItem salt_item, const int key_size,\n
      \                  SECOidTag hash_alg, unsigned int kIterations)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:131,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:132,1
    - Dst: length
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:132,1
    - Dst: ToUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:133,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:134,1
    - Dst: length
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:134,1
    - Dst: nss_test::Pkcs11Pbkdf2Test::GenerateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ' pass'
    - ' salt'
    - key_size
    - hash_alg
    - kIterations
    argTypes:
    - std::string
    - std::string
    - int
    - SECOidTag
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 129
    functionDepth: 14
    functionLinenumber: 129
    functionLinenumberEnd: 137
    functionName: nss_test::Pkcs11Pbkdf2Test::KeySizeParam
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc
    functionUses: 1
    functionsReached:
    - static_cast<unsigned int>
    - nss_test::Pkcs11Pbkdf2Test::GenerateKey
    - length
    - ToUcharPtr
    linkageType: ''
    returnType: bool
    signature: "bool KeySizeParam(std::string& pass, std::string& salt, const int
      key_size,\n                    SECOidTag hash_alg, unsigned int kIterations)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:141,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:142,1
    - Dst: length
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:142,1
    - Dst: nss_test::Pkcs11Pbkdf2Test::GenerateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ' pass'
    - ' salt'
    - key_size
    - hash_alg
    - kIterations
    argTypes:
    - std::string
    - std::string
    - int
    - SECOidTag
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 139
    functionDepth: 14
    functionLinenumber: 139
    functionLinenumberEnd: 146
    functionName: nss_test::Pkcs11Pbkdf2Test::MalformedSalt
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc
    functionUses: 1
    functionsReached:
    - static_cast<unsigned int>
    - nss_test::Pkcs11Pbkdf2Test::GenerateKey
    - length
    - ToUcharPtr
    linkageType: ''
    returnType: bool
    signature: "bool MalformedSalt(std::string& pass, std::string& salt, const int
      key_size,\n                     SECOidTag hash_alg, unsigned int kIterations)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:151,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:152,1
    - Dst: length
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:152,1
    - Dst: nss_test::Pkcs11Pbkdf2Test::GenerateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ' pass'
    - ' salt'
    - key_size
    - hash_alg
    - kIterations
    argTypes:
    - std::string
    - std::string
    - int
    - SECOidTag
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 148
    functionDepth: 14
    functionLinenumber: 148
    functionLinenumberEnd: 155
    functionName: nss_test::Pkcs11Pbkdf2Test::MalformedPass
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc
    functionUses: 1
    functionsReached:
    - static_cast<unsigned int>
    - nss_test::Pkcs11Pbkdf2Test::GenerateKey
    - length
    - ToUcharPtr
    linkageType: ''
    returnType: bool
    signature: "bool MalformedPass(std::string& pass, std::string& salt, const int
      key_size,\n                     SECOidTag hash_alg, unsigned int kIterations)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Derive
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 166
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc
    functionUses: 0
    functionsReached:
    - Derive
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11Pbkdf2Test, DeriveKnown1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Derive
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 177
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc
    functionUses: 0
    functionsReached:
    - Derive
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11Pbkdf2Test, DeriveKnown2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KeySizes
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 182
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc
    functionUses: 0
    functionsReached:
    - KeySizes
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11Pbkdf2Test, KeyLenSizes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:17,1
    - Dst: reinterpret_cast<const unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:18,1
    - Dst: c_str
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 19
    functionName: nss_test::ToUcharPtr
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc
    functionUses: 0
    functionsReached:
    - const_cast<unsigned char*>
    - c_str
    - reinterpret_cast<const unsigned char*>
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char * ToUcharPtr(std::string& str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:30,1
    - Dst: nss_test::Pkcs11Pbkdf2Test::DeriveBytes
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:30,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:34,1
    - Dst: nss_test::Pkcs11Pbkdf2Test::DeriveBytes
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:34,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:38,1
    - Dst: nss_test::Pkcs11Pbkdf2Test::DeriveBytes
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:38,1
    - Dst: static_cast<SECOidTag>
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:41,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:42,1
    - Dst: nss_test::Pkcs11Pbkdf2Test::DeriveBytes
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:42,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:45,1
    - Dst: nss_test::Pkcs11Pbkdf2Test::DeriveBytes
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ' derived'
    - hash_alg
    argTypes:
    - std::vector<uint8_t>
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 23
    functionDepth: 14
    functionLinenumber: 23
    functionLinenumberEnd: 46
    functionName: nss_test::Pkcs11Pbkdf2Test::Derive
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc
    functionUses: 0
    functionsReached:
    - nss_test::Pkcs11Pbkdf2Test::DeriveBytes
    - EXPECT_TRUE
    - EXPECT_FALSE
    - static_cast<SECOidTag>
    linkageType: ''
    returnType: void
    signature: void Derive(std::vector<uint8_t>& derived, SECOidTag hash_alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:58,1
    - Dst: nss_test::Pkcs11Pbkdf2Test::KeySizeParam
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:58,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:62,1
    - Dst: nss_test::Pkcs11Pbkdf2Test::KeySizeParam
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:62,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:65,1
    - Dst: nss_test::Pkcs11Pbkdf2Test::KeySizeParam
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:66,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:72,1
    - Dst: nss_test::Pkcs11Pbkdf2Test::KeySizeParam
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:73,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:77,1
    - Dst: nss_test::Pkcs11Pbkdf2Test::KeySizeParam
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:78,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:81,1
    - Dst: nss_test::Pkcs11Pbkdf2Test::MalformedPass
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:82,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:83,1
    - Dst: nss_test::Pkcs11Pbkdf2Test::MalformedSalt
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - hash_alg
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 48
    functionDepth: 15
    functionLinenumber: 48
    functionLinenumberEnd: 85
    functionName: nss_test::Pkcs11Pbkdf2Test::KeySizes
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - nss_test::Pkcs11Pbkdf2Test::KeySizeParam
    - EXPECT_TRUE
    - nss_test::Pkcs11Pbkdf2Test::MalformedSalt
    - nss_test::Pkcs11Pbkdf2Test::MalformedPass
    linkageType: ''
    returnType: void
    signature: void KeySizes(SECOidTag hash_alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:91,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:92,1
    - Dst: length
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:92,1
    - Dst: ToUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:93,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:94,1
    - Dst: length
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:94,1
    - Dst: PK11_CreatePBEV2AlgorithmID
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:98,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:99,1
    - Dst: PK11_PBEKeyGen
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:104,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:104,1
    - Dst: ScopedSECAlgorithmID::get
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:104,1
    - Dst: PK11_ExtractKeyValue
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:106,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:106,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:107,1
    - Dst: PK11_GetKeyData
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:109,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:109,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ' pass'
    - ' salt'
    - ' derived'
    - hash_alg
    - kIterations
    argTypes:
    - std::string
    - std::string
    - std::vector<uint8_t>
    - SECOidTag
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 88
    functionDepth: 13
    functionLinenumber: 88
    functionLinenumberEnd: 111
    functionName: nss_test::Pkcs11Pbkdf2Test::DeriveBytes
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc
    functionUses: 2
    functionsReached:
    - PK11_PBEKeyGen
    - length
    - ScopedPK11SymKey::get
    - size
    - memcmp
    - static_cast<unsigned int>
    - PK11_ExtractKeyValue
    - ScopedSECAlgorithmID::get
    - PK11_GetKeyData
    - ToUcharPtr
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - PK11_CreatePBEV2AlgorithmID
    linkageType: ''
    returnType: bool
    signature: "bool DeriveBytes(std::string& pass, std::string& salt,\n                   std::vector<uint8_t>&
      derived, SECOidTag hash_alg,\n                   unsigned int kIterations)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_CreatePBEV2AlgorithmID
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:117,1
    - Dst: PK11_PBEKeyGen
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:123,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:123,1
    - Dst: ScopedSECAlgorithmID::get
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:123,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - pass_item
    - salt_item
    - key_size
    - hash_alg
    - kIterations
    argTypes:
    - SECItem
    - SECItem
    - int
    - SECOidTag
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 113
    functionDepth: 13
    functionLinenumber: 113
    functionLinenumberEnd: 127
    functionName: nss_test::Pkcs11Pbkdf2Test::GenerateKey
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc
    functionUses: 3
    functionsReached:
    - PK11_PBEKeyGen
    - ScopedPK11SymKey::get
    - ScopedSECAlgorithmID::get
    - ScopedPK11SlotInfo::get
    - PK11_CreatePBEV2AlgorithmID
    linkageType: ''
    returnType: bool
    signature: "bool GenerateKey(SECItem pass_item, SECItem salt_item, const int key_size,\n
      \                  SECOidTag hash_alg, unsigned int kIterations)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:131,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:132,1
    - Dst: length
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:132,1
    - Dst: ToUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:133,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:134,1
    - Dst: length
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:134,1
    - Dst: nss_test::Pkcs11Pbkdf2Test::GenerateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ' pass'
    - ' salt'
    - key_size
    - hash_alg
    - kIterations
    argTypes:
    - std::string
    - std::string
    - int
    - SECOidTag
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 129
    functionDepth: 14
    functionLinenumber: 129
    functionLinenumberEnd: 137
    functionName: nss_test::Pkcs11Pbkdf2Test::KeySizeParam
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc
    functionUses: 2
    functionsReached:
    - static_cast<unsigned int>
    - nss_test::Pkcs11Pbkdf2Test::GenerateKey
    - length
    - ToUcharPtr
    linkageType: ''
    returnType: bool
    signature: "bool KeySizeParam(std::string& pass, std::string& salt, const int
      key_size,\n                    SECOidTag hash_alg, unsigned int kIterations)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:141,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:142,1
    - Dst: length
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:142,1
    - Dst: nss_test::Pkcs11Pbkdf2Test::GenerateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ' pass'
    - ' salt'
    - key_size
    - hash_alg
    - kIterations
    argTypes:
    - std::string
    - std::string
    - int
    - SECOidTag
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 139
    functionDepth: 14
    functionLinenumber: 139
    functionLinenumberEnd: 146
    functionName: nss_test::Pkcs11Pbkdf2Test::MalformedSalt
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc
    functionUses: 2
    functionsReached:
    - static_cast<unsigned int>
    - nss_test::Pkcs11Pbkdf2Test::GenerateKey
    - length
    - ToUcharPtr
    linkageType: ''
    returnType: bool
    signature: "bool MalformedSalt(std::string& pass, std::string& salt, const int
      key_size,\n                     SECOidTag hash_alg, unsigned int kIterations)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:151,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:152,1
    - Dst: length
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:152,1
    - Dst: nss_test::Pkcs11Pbkdf2Test::GenerateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ' pass'
    - ' salt'
    - key_size
    - hash_alg
    - kIterations
    argTypes:
    - std::string
    - std::string
    - int
    - SECOidTag
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 148
    functionDepth: 14
    functionLinenumber: 148
    functionLinenumberEnd: 155
    functionName: nss_test::Pkcs11Pbkdf2Test::MalformedPass
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc
    functionUses: 2
    functionsReached:
    - static_cast<unsigned int>
    - nss_test::Pkcs11Pbkdf2Test::GenerateKey
    - length
    - ToUcharPtr
    linkageType: ''
    returnType: bool
    signature: "bool MalformedPass(std::string& pass, std::string& salt, const int
      key_size,\n                     SECOidTag hash_alg, unsigned int kIterations)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Derive
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 166
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc
    functionUses: 0
    functionsReached:
    - Derive
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11Pbkdf2Test, DeriveKnown1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Derive
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 177
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc
    functionUses: 0
    functionsReached:
    - Derive
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11Pbkdf2Test, DeriveKnown2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KeySizes
      Src: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 182
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_pbkdf2_unittest.cc
    functionUses: 0
    functionsReached:
    - KeySizes
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11Pbkdf2Test, KeyLenSizes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:26,1
    - Dst: PK11_Encapsulate
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:27,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:27,1
    - Dst: ScopedSECItem*::reset
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - pub
    - target
    - attrFlags
    - opFlags
    - ciphertext
    argTypes:
    - ScopedSECKEYPublicKey
    - CK_MECHANISM_TYPE
    - PK11AttrFlags
    - CK_FLAGS
    - ScopedSECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 20
    functionDepth: 5
    functionLinenumber: 20
    functionLinenumberEnd: 33
    functionName: nss_test::Pkcs11KEMTest::Encapsulate
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encapsulate
    - ScopedSECKEYPublicKey::get
    - EXPECT_EQ
    - ScopedSECItem*::reset
    linkageType: ''
    returnType: PK11SymKey
    signature: "PK11SymKey *Encapsulate(const ScopedSECKEYPublicKey &pub,\n                          CK_MECHANISM_TYPE
      target, PK11AttrFlags attrFlags,\n                          CK_FLAGS opFlags,
      ScopedSECItem *ciphertext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:41,1
    - Dst: PK11_Decapsulate
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:42,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:42,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - priv
    - ciphertext
    - target
    - attrFlags
    - opFlags
    argTypes:
    - ScopedSECKEYPrivateKey
    - ScopedSECItem
    - CK_MECHANISM_TYPE
    - PK11AttrFlags
    - CK_FLAGS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 35
    functionDepth: 5
    functionLinenumber: 35
    functionLinenumberEnd: 46
    functionName: nss_test::Pkcs11KEMTest::Decapsulate
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc
    functionUses: 0
    functionsReached:
    - ScopedSECKEYPrivateKey::get
    - ScopedSECItem::get
    - EXPECT_EQ
    - PK11_Decapsulate
    linkageType: ''
    returnType: PK11SymKey
    signature: "PK11SymKey *Decapsulate(const ScopedSECKEYPrivateKey &priv,\n                          const
      ScopedSECItem &ciphertext,\n                          CK_MECHANISM_TYPE target,
      PK11AttrFlags attrFlags,\n                          CK_FLAGS opFlags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_ExtractKeyValue
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:49,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:49,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:50,1
    - Dst: PK11_GetKeyData
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:52,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:52,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:53,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - key
    argTypes:
    - ScopedPK11SymKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 57
    functionName: nss_test::Pkcs11KEMTest::getRawKeyData
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NE
    - ScopedPK11SymKey::get
    - PK11_ExtractKeyValue
    - PK11_GetKeyData
    - EXPECT_EQ
    linkageType: ''
    returnType: SECItem
    signature: SECItem *getRawKeyData(const ScopedPK11SymKey &key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:64,1
    - Dst: PK11_ReadRawAttribute
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:64,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:64,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:66,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:66,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - key
    - attr
    - expectedValue
    argTypes:
    - ScopedPK11SymKey
    - CK_ATTRIBUTE_TYPE
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 59
    functionDepth: 10
    functionLinenumber: 59
    functionLinenumberEnd: 69
    functionName: nss_test::Pkcs11KEMTest::checkSymKeyAttributeValue
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc
    functionUses: 0
    functionsReached:
    - ScopedPK11SymKey::get
    - PK11_ReadRawAttribute
    - memcmp
    - EXPECT_EQ
    - SECITEM_FreeItem
    linkageType: ''
    returnType: void
    signature: "void checkSymKeyAttributeValue(const ScopedPK11SymKey &key,\n                                 CK_ATTRIBUTE_TYPE
      attr,\n                                 uint8_t *expectedValue)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:72,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 81
    functionName: nss_test::Pkcs11KEMTest::keyGenMech
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - GetParam
    linkageType: ''
    returnType: CK_MECHANISM_TYPE
    signature: CK_MECHANISM_TYPE keyGenMech()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:84,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 93
    functionName: nss_test::Pkcs11KEMTest::encapsMech
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - GetParam
    linkageType: ''
    returnType: CK_MECHANISM_TYPE
    signature: CK_MECHANISM_TYPE encapsMech()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Pkcs11KeyPairGenerator::GenerateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:100,1
    - Dst: SECKEY_CopyPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:103,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:103,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:104,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:107,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:109,1
    - Dst: PK11_ImportPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:110,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:110,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:110,1
    - Dst: Encapsulate
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:113,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:117,1
    - Dst: PK11_GetMechanism
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:117,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:117,1
    - Dst: checkSymKeyAttributeValue
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:121,1
    - Dst: checkSymKeyAttributeValue
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:122,1
    - Dst: checkSymKeyAttributeValue
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:123,1
    - Dst: Decapsulate
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:126,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:129,1
    - Dst: PK11_GetMechanism
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:129,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:129,1
    - Dst: checkSymKeyAttributeValue
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:131,1
    - Dst: checkSymKeyAttributeValue
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:132,1
    - Dst: checkSymKeyAttributeValue
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:133,1
    - Dst: getRawKeyData
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:135,1
    - Dst: getRawKeyData
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:136,1
    - Dst: NSS_DECLASSIFY
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:137,1
    - Dst: NSS_DECLASSIFY
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:138,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:139,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 96
    functionDepth: 3
    functionLinenumber: 96
    functionLinenumberEnd: 140
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc
    functionUses: 0
    functionsReached:
    - Decapsulate
    - ASSERT_EQ
    - SECKEY_CopyPublicKey
    - Pkcs11KeyPairGenerator::GenerateKey
    - ScopedPK11SlotInfo::get
    - getRawKeyData
    - SECITEM_CompareItem
    - PK11_GetMechanism
    - ScopedPK11SymKey::get
    - checkSymKeyAttributeValue
    - NSS_DECLASSIFY
    - Encapsulate
    - ScopedSECKEYPublicKey::get
    - EXPECT_EQ
    - PK11_ImportPublicKey
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11KEMTest, KemConsistencyTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:26,1
    - Dst: PK11_Encapsulate
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:27,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:27,1
    - Dst: ScopedSECItem*::reset
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - pub
    - target
    - attrFlags
    - opFlags
    - ciphertext
    argTypes:
    - ScopedSECKEYPublicKey
    - CK_MECHANISM_TYPE
    - PK11AttrFlags
    - CK_FLAGS
    - ScopedSECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 20
    functionDepth: 5
    functionLinenumber: 20
    functionLinenumberEnd: 33
    functionName: nss_test::Pkcs11KEMTest::Encapsulate
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encapsulate
    - ScopedSECKEYPublicKey::get
    - EXPECT_EQ
    - ScopedSECItem*::reset
    linkageType: ''
    returnType: PK11SymKey
    signature: "PK11SymKey *Encapsulate(const ScopedSECKEYPublicKey &pub,\n                          CK_MECHANISM_TYPE
      target, PK11AttrFlags attrFlags,\n                          CK_FLAGS opFlags,
      ScopedSECItem *ciphertext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:41,1
    - Dst: PK11_Decapsulate
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:42,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:42,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - priv
    - ciphertext
    - target
    - attrFlags
    - opFlags
    argTypes:
    - ScopedSECKEYPrivateKey
    - ScopedSECItem
    - CK_MECHANISM_TYPE
    - PK11AttrFlags
    - CK_FLAGS
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 35
    functionDepth: 5
    functionLinenumber: 35
    functionLinenumberEnd: 46
    functionName: nss_test::Pkcs11KEMTest::Decapsulate
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc
    functionUses: 0
    functionsReached:
    - ScopedSECKEYPrivateKey::get
    - ScopedSECItem::get
    - EXPECT_EQ
    - PK11_Decapsulate
    linkageType: ''
    returnType: PK11SymKey
    signature: "PK11SymKey *Decapsulate(const ScopedSECKEYPrivateKey &priv,\n                          const
      ScopedSECItem &ciphertext,\n                          CK_MECHANISM_TYPE target,
      PK11AttrFlags attrFlags,\n                          CK_FLAGS opFlags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_ExtractKeyValue
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:49,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:49,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:50,1
    - Dst: PK11_GetKeyData
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:52,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:52,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:53,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - key
    argTypes:
    - ScopedPK11SymKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 57
    functionName: nss_test::Pkcs11KEMTest::getRawKeyData
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NE
    - ScopedPK11SymKey::get
    - PK11_ExtractKeyValue
    - PK11_GetKeyData
    - EXPECT_EQ
    linkageType: ''
    returnType: SECItem
    signature: SECItem *getRawKeyData(const ScopedPK11SymKey &key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:64,1
    - Dst: PK11_ReadRawAttribute
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:64,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:64,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:66,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:66,1
    - Dst: SECITEM_FreeItem
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - key
    - attr
    - expectedValue
    argTypes:
    - ScopedPK11SymKey
    - CK_ATTRIBUTE_TYPE
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 59
    functionDepth: 10
    functionLinenumber: 59
    functionLinenumberEnd: 69
    functionName: nss_test::Pkcs11KEMTest::checkSymKeyAttributeValue
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc
    functionUses: 0
    functionsReached:
    - ScopedPK11SymKey::get
    - PK11_ReadRawAttribute
    - memcmp
    - EXPECT_EQ
    - SECITEM_FreeItem
    linkageType: ''
    returnType: void
    signature: "void checkSymKeyAttributeValue(const ScopedPK11SymKey &key,\n                                 CK_ATTRIBUTE_TYPE
      attr,\n                                 uint8_t *expectedValue)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:72,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 81
    functionName: nss_test::Pkcs11KEMTest::keyGenMech
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - GetParam
    linkageType: ''
    returnType: CK_MECHANISM_TYPE
    signature: CK_MECHANISM_TYPE keyGenMech()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:84,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 93
    functionName: nss_test::Pkcs11KEMTest::encapsMech
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - GetParam
    linkageType: ''
    returnType: CK_MECHANISM_TYPE
    signature: CK_MECHANISM_TYPE encapsMech()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Pkcs11KeyPairGenerator::GenerateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:100,1
    - Dst: SECKEY_CopyPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:103,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:103,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:104,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:107,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:109,1
    - Dst: PK11_ImportPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:110,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:110,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:110,1
    - Dst: Encapsulate
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:113,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:117,1
    - Dst: PK11_GetMechanism
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:117,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:117,1
    - Dst: checkSymKeyAttributeValue
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:121,1
    - Dst: checkSymKeyAttributeValue
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:122,1
    - Dst: checkSymKeyAttributeValue
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:123,1
    - Dst: Decapsulate
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:126,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:129,1
    - Dst: PK11_GetMechanism
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:129,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:129,1
    - Dst: checkSymKeyAttributeValue
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:131,1
    - Dst: checkSymKeyAttributeValue
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:132,1
    - Dst: checkSymKeyAttributeValue
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:133,1
    - Dst: getRawKeyData
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:135,1
    - Dst: getRawKeyData
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:136,1
    - Dst: NSS_DECLASSIFY
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:137,1
    - Dst: NSS_DECLASSIFY
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:138,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:139,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 96
    functionDepth: 3
    functionLinenumber: 96
    functionLinenumberEnd: 140
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_kem_unittest.cc
    functionUses: 0
    functionsReached:
    - Decapsulate
    - ASSERT_EQ
    - SECKEY_CopyPublicKey
    - Pkcs11KeyPairGenerator::GenerateKey
    - ScopedPK11SlotInfo::get
    - getRawKeyData
    - SECITEM_CompareItem
    - PK11_GetMechanism
    - ScopedPK11SymKey::get
    - checkSymKeyAttributeValue
    - NSS_DECLASSIFY
    - Encapsulate
    - ScopedSECKEYPublicKey::get
    - EXPECT_EQ
    - PK11_ImportPublicKey
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11KEMTest, KemConsistencyTest)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PR_MAX
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:30,1
    - Dst: PR_MAX
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:31,1
    - Dst: PR_MAX
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:32,1
    - Dst: std::stringstream::str
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:39,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:42,1
    - Dst: PK11_ImportSymKeyWithFlags
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:46,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:47,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:49,1
    - Dst: std::map<Action, Result>::count
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:53,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:54,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:54,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:55,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:56,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:57,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:61,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:62,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:62,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:62,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:62,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:66,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:67,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:67,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:67,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:73,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:74,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:74,1
    - Dst: std::map<Action, Result>::count
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:83,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:84,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:84,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:85,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:86,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:88,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:92,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:93,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:94,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:94,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:94,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:98,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:99,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:99,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:99,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:104,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:106,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:106,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 8
    argNames:
    - kek_data
    - kek_len
    - key_data
    - key_data_len
    - expected_ciphertext
    - expected_ciphertext_len
    - tests
    - test_id
    argTypes:
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - std::map<Action, Result>
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 25
    functionDepth: 6
    functionLinenumber: 25
    functionLinenumberEnd: 111
    functionName: nss_test::Pkcs11AESKeyWrapKwpTest::WrapUnwrap
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - ASSERT_EQ
    - EXPECT_FALSE
    - PK11_Decrypt
    - std::vector::data
    - EXPECT_TRUE
    - PK11_ImportSymKeyWithFlags
    - ScopedPK11SymKey::get
    - PR_MAX
    - memcmp
    - std::vector::size
    - std::stringstream::str
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - std::map<Action, Result>::count
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: "void WrapUnwrap(unsigned char* kek_data, unsigned int kek_len,\n                  unsigned
      char* key_data, unsigned int key_data_len,\n                  unsigned char*
      expected_ciphertext,\n                  unsigned int expected_ciphertext_len,\n
      \                 std::map<Action, Result> tests, uint32_t test_id)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: JsonReader::NextItem
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:119,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:120,1
    - Dst: JsonReader::ReadLabel
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:120,1
    - Dst: JsonReader::ReadInt
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:121,1
    - Dst: JsonReader::NextItem
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:124,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:125,1
    - Dst: JsonReader::ReadLabel
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:125,1
    - Dst: JsonReader::NextItemArray
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:127,1
    - Dst: JsonReader::NextItem
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:132,1
    - Dst: JsonReader::ReadLabel
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:133,1
    - Dst: JsonReader::ReadInt
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:136,1
    - Dst: JsonReader::ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:139,1
    - Dst: JsonReader::ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:142,1
    - Dst: JsonReader::ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:145,1
    - Dst: JsonReader::ReadSECStatus
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:148,1
    - Dst: JsonReader::ReadBool
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:151,1
    - Dst: JsonReader::ReadSECStatus
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:154,1
    - Dst: JsonReader::ReadBool
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:157,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:160,1
    - Dst: WrapUnwrap
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:161,1
    - Dst: keywrap_vector::key::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:161,1
    - Dst: keywrap_vector::key::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:161,1
    - Dst: keywrap_vector::msg::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:162,1
    - Dst: keywrap_vector::msg::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:162,1
    - Dst: keywrap_vector::ct::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:163,1
    - Dst: keywrap_vector::ct::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:163,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:166,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 167
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - keywrap_vector::key::data
    - JsonReader::ReadLabel
    - JsonReader::ReadBool
    - WrapUnwrap
    - JsonReader::NextItemArray
    - JsonReader::NextItem
    - keywrap_vector::msg::data
    - JsonReader::ReadInt
    - keywrap_vector::ct::size
    - JsonReader::ReadHex
    - keywrap_vector::msg::size
    - JsonReader::ReadSECStatus
    - keywrap_vector::key::size
    - EXPECT_EQ
    - keywrap_vector::ct::data
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11AESKeyWrapKwpTest, TestVectors)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PR_MAX
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:30,1
    - Dst: PR_MAX
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:31,1
    - Dst: PR_MAX
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:32,1
    - Dst: std::stringstream::str
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:39,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:42,1
    - Dst: PK11_ImportSymKeyWithFlags
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:46,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:47,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:49,1
    - Dst: std::map<Action, Result>::count
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:53,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:54,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:54,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:55,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:56,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:57,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:61,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:62,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:62,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:62,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:62,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:66,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:67,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:67,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:67,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:73,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:74,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:74,1
    - Dst: std::map<Action, Result>::count
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:83,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:84,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:84,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:85,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:86,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:88,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:92,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:93,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:94,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:94,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:94,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:98,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:99,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:99,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:99,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:104,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:106,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:106,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 8
    argNames:
    - kek_data
    - kek_len
    - key_data
    - key_data_len
    - expected_ciphertext
    - expected_ciphertext_len
    - tests
    - test_id
    argTypes:
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - std::map<Action, Result>
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 25
    functionDepth: 6
    functionLinenumber: 25
    functionLinenumberEnd: 111
    functionName: nss_test::Pkcs11AESKeyWrapKwpTest::WrapUnwrap
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - ASSERT_EQ
    - EXPECT_FALSE
    - PK11_Decrypt
    - std::vector::data
    - EXPECT_TRUE
    - PK11_ImportSymKeyWithFlags
    - ScopedPK11SymKey::get
    - PR_MAX
    - memcmp
    - std::vector::size
    - std::stringstream::str
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - std::map<Action, Result>::count
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: "void WrapUnwrap(unsigned char* kek_data, unsigned int kek_len,\n                  unsigned
      char* key_data, unsigned int key_data_len,\n                  unsigned char*
      expected_ciphertext,\n                  unsigned int expected_ciphertext_len,\n
      \                 std::map<Action, Result> tests, uint32_t test_id)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: JsonReader::NextItem
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:119,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:120,1
    - Dst: JsonReader::ReadLabel
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:120,1
    - Dst: JsonReader::ReadInt
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:121,1
    - Dst: JsonReader::NextItem
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:124,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:125,1
    - Dst: JsonReader::ReadLabel
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:125,1
    - Dst: JsonReader::NextItemArray
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:127,1
    - Dst: JsonReader::NextItem
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:132,1
    - Dst: JsonReader::ReadLabel
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:133,1
    - Dst: JsonReader::ReadInt
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:136,1
    - Dst: JsonReader::ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:139,1
    - Dst: JsonReader::ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:142,1
    - Dst: JsonReader::ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:145,1
    - Dst: JsonReader::ReadSECStatus
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:148,1
    - Dst: JsonReader::ReadBool
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:151,1
    - Dst: JsonReader::ReadSECStatus
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:154,1
    - Dst: JsonReader::ReadBool
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:157,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:160,1
    - Dst: WrapUnwrap
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:161,1
    - Dst: keywrap_vector::key::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:161,1
    - Dst: keywrap_vector::key::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:161,1
    - Dst: keywrap_vector::msg::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:162,1
    - Dst: keywrap_vector::msg::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:162,1
    - Dst: keywrap_vector::ct::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:163,1
    - Dst: keywrap_vector::ct::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:163,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc:166,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 167
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aeskeywrapkwp_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - keywrap_vector::key::data
    - JsonReader::ReadLabel
    - JsonReader::ReadBool
    - WrapUnwrap
    - JsonReader::NextItemArray
    - JsonReader::NextItem
    - keywrap_vector::msg::data
    - JsonReader::ReadInt
    - keywrap_vector::ct::size
    - JsonReader::ReadHex
    - keywrap_vector::msg::size
    - JsonReader::ReadSECStatus
    - keywrap_vector::key::size
    - EXPECT_EQ
    - keywrap_vector::ct::data
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11AESKeyWrapKwpTest, TestVectors)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_pbe_unittest.cc:17,1
    - Dst: reinterpret_cast<const unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_pbe_unittest.cc:18,1
    - Dst: c_str
      Src: /src/nss/gtests/pk11_gtest/pk11_pbe_unittest.cc:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 19
    functionName: nss_test::ToUcharPtr
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_pbe_unittest.cc
    functionUses: 0
    functionsReached:
    - const_cast<unsigned char*>
    - c_str
    - reinterpret_cast<const unsigned char*>
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char * ToUcharPtr(std::string& str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_pbe_unittest.cc:30,1
    - Dst: nss_test::Pkcs11PbeTest::DeriveBytes
      Src: /src/nss/gtests/pk11_gtest/pk11_pbe_unittest.cc:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' derived'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 31
    functionName: nss_test::Pkcs11PbeTest::Derive
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_pbe_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - nss_test::Pkcs11PbeTest::DeriveBytes
    linkageType: ''
    returnType: void
    signature: void Derive(std::vector<uint8_t>& derived)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_pbe_unittest.cc:36,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_pbe_unittest.cc:37,1
    - Dst: length
      Src: /src/nss/gtests/pk11_gtest/pk11_pbe_unittest.cc:37,1
    - Dst: ToUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_pbe_unittest.cc:38,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_pbe_unittest.cc:39,1
    - Dst: length
      Src: /src/nss/gtests/pk11_gtest/pk11_pbe_unittest.cc:39,1
    - Dst: PK11_CreatePBEAlgorithmID
      Src: /src/nss/gtests/pk11_gtest/pk11_pbe_unittest.cc:42,1
    - Dst: PK11_PBEKeyGen
      Src: /src/nss/gtests/pk11_gtest/pk11_pbe_unittest.cc:49,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_pbe_unittest.cc:49,1
    - Dst: ScopedSECAlgorithmID::get
      Src: /src/nss/gtests/pk11_gtest/pk11_pbe_unittest.cc:49,1
    - Dst: PK11_ExtractKeyValue
      Src: /src/nss/gtests/pk11_gtest/pk11_pbe_unittest.cc:51,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_pbe_unittest.cc:51,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_pbe_unittest.cc:52,1
    - Dst: PK11_GetKeyData
      Src: /src/nss/gtests/pk11_gtest/pk11_pbe_unittest.cc:54,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_pbe_unittest.cc:54,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_pbe_unittest.cc:56,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_pbe_unittest.cc:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - ' pass'
    - ' salt'
    - ' derived'
    - kIterations
    argTypes:
    - std::string
    - std::string
    - std::vector<uint8_t>
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 34
    functionDepth: 13
    functionLinenumber: 34
    functionLinenumberEnd: 58
    functionName: nss_test::Pkcs11PbeTest::DeriveBytes
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_pbe_unittest.cc
    functionUses: 1
    functionsReached:
    - PK11_PBEKeyGen
    - PK11_CreatePBEAlgorithmID
    - length
    - ScopedPK11SymKey::get
    - size
    - memcmp
    - static_cast<unsigned int>
    - PK11_ExtractKeyValue
    - ScopedSECAlgorithmID::get
    - PK11_GetKeyData
    - ToUcharPtr
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    linkageType: ''
    returnType: bool
    signature: "bool DeriveBytes(std::string& pass, std::string& salt,\n                   std::vector<uint8_t>&
      derived, unsigned int kIterations)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Derive
      Src: /src/nss/gtests/pk11_gtest/pk11_pbe_unittest.cc:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 67
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_pbe_unittest.cc
    functionUses: 0
    functionsReached:
    - Derive
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11PbeTest, DeriveKnown)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_pbe_unittest.cc:17,1
    - Dst: reinterpret_cast<const unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_pbe_unittest.cc:18,1
    - Dst: c_str
      Src: /src/nss/gtests/pk11_gtest/pk11_pbe_unittest.cc:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 19
    functionName: nss_test::ToUcharPtr
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_pbe_unittest.cc
    functionUses: 0
    functionsReached:
    - const_cast<unsigned char*>
    - c_str
    - reinterpret_cast<const unsigned char*>
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char * ToUcharPtr(std::string& str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_pbe_unittest.cc:30,1
    - Dst: nss_test::Pkcs11PbeTest::DeriveBytes
      Src: /src/nss/gtests/pk11_gtest/pk11_pbe_unittest.cc:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' derived'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 23
    functionDepth: 14
    functionLinenumber: 23
    functionLinenumberEnd: 31
    functionName: nss_test::Pkcs11PbeTest::Derive
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_pbe_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - nss_test::Pkcs11PbeTest::DeriveBytes
    linkageType: ''
    returnType: void
    signature: void Derive(std::vector<uint8_t>& derived)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ToUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_pbe_unittest.cc:36,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_pbe_unittest.cc:37,1
    - Dst: length
      Src: /src/nss/gtests/pk11_gtest/pk11_pbe_unittest.cc:37,1
    - Dst: ToUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_pbe_unittest.cc:38,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_pbe_unittest.cc:39,1
    - Dst: length
      Src: /src/nss/gtests/pk11_gtest/pk11_pbe_unittest.cc:39,1
    - Dst: PK11_CreatePBEAlgorithmID
      Src: /src/nss/gtests/pk11_gtest/pk11_pbe_unittest.cc:42,1
    - Dst: PK11_PBEKeyGen
      Src: /src/nss/gtests/pk11_gtest/pk11_pbe_unittest.cc:49,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_pbe_unittest.cc:49,1
    - Dst: ScopedSECAlgorithmID::get
      Src: /src/nss/gtests/pk11_gtest/pk11_pbe_unittest.cc:49,1
    - Dst: PK11_ExtractKeyValue
      Src: /src/nss/gtests/pk11_gtest/pk11_pbe_unittest.cc:51,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_pbe_unittest.cc:51,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_pbe_unittest.cc:52,1
    - Dst: PK11_GetKeyData
      Src: /src/nss/gtests/pk11_gtest/pk11_pbe_unittest.cc:54,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_pbe_unittest.cc:54,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_pbe_unittest.cc:56,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_pbe_unittest.cc:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - ' pass'
    - ' salt'
    - ' derived'
    - kIterations
    argTypes:
    - std::string
    - std::string
    - std::vector<uint8_t>
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 34
    functionDepth: 13
    functionLinenumber: 34
    functionLinenumberEnd: 58
    functionName: nss_test::Pkcs11PbeTest::DeriveBytes
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_pbe_unittest.cc
    functionUses: 2
    functionsReached:
    - PK11_PBEKeyGen
    - PK11_CreatePBEAlgorithmID
    - length
    - ScopedPK11SymKey::get
    - size
    - memcmp
    - static_cast<unsigned int>
    - PK11_ExtractKeyValue
    - ScopedSECAlgorithmID::get
    - PK11_GetKeyData
    - ToUcharPtr
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    linkageType: ''
    returnType: bool
    signature: "bool DeriveBytes(std::string& pass, std::string& salt,\n                   std::vector<uint8_t>&
      derived, unsigned int kIterations)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Derive
      Src: /src/nss/gtests/pk11_gtest/pk11_pbe_unittest.cc:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 67
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_pbe_unittest.cc
    functionUses: 0
    functionsReached:
    - Derive
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11PbeTest, DeriveKnown)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_export_unittest.cc:20,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_export_unittest.cc:20,1
    - Dst: PK11_ImportSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_export_unittest.cc:26,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_export_unittest.cc:27,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_export_unittest.cc:28,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_export_unittest.cc:28,1
    - Dst: PK11_Derive
      Src: /src/nss/gtests/pk11_gtest/pk11_export_unittest.cc:54,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_export_unittest.cc:54,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_export_unittest.cc:58,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_export_unittest.cc:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - is_export
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 18
    functionDepth: 6
    functionLinenumber: 18
    functionLinenumberEnd: 59
    functionName: nss_test::Pkcs11ExportTest::Derive
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_export_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - ScopedPK11SymKey::get
    - PK11_ImportSymKey
    - PK11_Derive
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void Derive(bool is_export)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Derive
      Src: /src/nss/gtests/pk11_gtest/pk11_export_unittest.cc:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_export_unittest.cc
    functionUses: 0
    functionsReached:
    - Derive
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11ExportTest, DeriveNonExport)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Derive
      Src: /src/nss/gtests/pk11_gtest/pk11_export_unittest.cc:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_export_unittest.cc
    functionUses: 0
    functionsReached:
    - Derive
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11ExportTest, DeriveExport)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_export_unittest.cc:20,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_export_unittest.cc:20,1
    - Dst: PK11_ImportSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_export_unittest.cc:26,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_export_unittest.cc:27,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_export_unittest.cc:28,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_export_unittest.cc:28,1
    - Dst: PK11_Derive
      Src: /src/nss/gtests/pk11_gtest/pk11_export_unittest.cc:54,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_export_unittest.cc:54,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_export_unittest.cc:58,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_export_unittest.cc:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - is_export
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 18
    functionDepth: 6
    functionLinenumber: 18
    functionLinenumberEnd: 59
    functionName: nss_test::Pkcs11ExportTest::Derive
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_export_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - ScopedPK11SymKey::get
    - PK11_ImportSymKey
    - PK11_Derive
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void Derive(bool is_export)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Derive
      Src: /src/nss/gtests/pk11_gtest/pk11_export_unittest.cc:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_export_unittest.cc
    functionUses: 0
    functionsReached:
    - Derive
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11ExportTest, DeriveNonExport)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Derive
      Src: /src/nss/gtests/pk11_gtest/pk11_export_unittest.cc:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_export_unittest.cc
    functionUses: 0
    functionsReached:
    - Derive
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11ExportTest, DeriveExport)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:26,1
    - Dst: PK11_ImportSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:30,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - mech
    - key_item
    argTypes:
    - CK_MECHANISM_TYPE
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 23
    functionDepth: 6
    functionLinenumber: 23
    functionLinenumberEnd: 34
    functionName: nss_test::Pkcs11KbkdfTest::ImportKey
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc
    functionUses: 0
    functionsReached:
    - PK11_ImportSymKey
    - ScopedPK11SlotInfo::get
    - ADD_FAILURE
    linkageType: ''
    returnType: ScopedPK11SymKey
    signature: ScopedPK11SymKey ImportKey(CK_MECHANISM_TYPE mech, SECItem *key_item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::Pkcs11KbkdfTest::ImportKey
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:42,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:44,1
    - Dst: PK11_Derive
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:48,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:48,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:51,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:53,1
    - Dst: PK11_ExtractKeyValue
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:53,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:53,1
    - Dst: PK11_GetKeyData
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:56,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:56,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:57,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:60,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:60,1
    - Dst: PK11_GetSlotFromKey
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:67,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:67,1
    - Dst: PK11_SymKeyFromHandle
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:71,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:71,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:71,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:74,1
    - Dst: PK11_ExtractKeyValue
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:74,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:74,1
    - Dst: PK11_GetKeyData
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:77,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:77,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:78,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:81,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 8
    argNames:
    - kdfMech
    - kdfParams
    - inputKey
    - inputKeyLen
    - expectedKey
    - expectedKeyLen
    - expectedAdditional
    - expectedAdditionalLen
    argTypes:
    - CK_MECHANISM_TYPE
    - CK_SP800_108_KDF_PARAMS_PTR
    - CK_BYTE_PTR
    - unsigned int
    - CK_BYTE_PTR
    - unsigned int
    - CK_BYTE_PTR
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 36
    functionDepth: 7
    functionLinenumber: 36
    functionLinenumberEnd: 82
    functionName: nss_test::Pkcs11KbkdfTest::RunKDF
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - SECITEM_CompareItem
    - PK11_SymKeyFromHandle
    - PK11_GetSlotFromKey
    - ScopedPK11SymKey::get
    - PK11_ExtractKeyValue
    - PK11_Derive
    - nss_test::Pkcs11KbkdfTest::ImportKey
    - PK11_GetKeyData
    - ScopedPK11SlotInfo::get
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: "void RunKDF(CK_MECHANISM_TYPE kdfMech, CK_SP800_108_KDF_PARAMS_PTR
      kdfParams,\n              CK_BYTE_PTR inputKey, unsigned int inputKeyLen,\n
      \             CK_BYTE_PTR expectedKey, unsigned int expectedKeyLen,\n              CK_BYTE_PTR
      expectedAdditional,\n              unsigned int expectedAdditionalLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RunKDF
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 133
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc
    functionUses: 0
    functionsReached:
    - RunKDF
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11KbkdfTest, TestAdditionalKey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::ImportKey
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:186,1
    - Dst: PK11_Derive
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:194,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:194,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:197,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:199,1
    - Dst: PK11_ExtractKeyValue
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:199,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:199,1
    - Dst: nss_test::ImportKey
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:203,1
    - Dst: PK11_Derive
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:211,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:211,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:214,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 216
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ScopedPK11SymKey::get
    - nss_test::ImportKey
    - PK11_ExtractKeyValue
    - PK11_Derive
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11KbkdfTest, TestPRFs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:26,1
    - Dst: PK11_ImportSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:30,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - mech
    - key_item
    argTypes:
    - CK_MECHANISM_TYPE
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 23
    functionDepth: 6
    functionLinenumber: 23
    functionLinenumberEnd: 34
    functionName: nss_test::Pkcs11KbkdfTest::ImportKey
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc
    functionUses: 1
    functionsReached:
    - PK11_ImportSymKey
    - ScopedPK11SlotInfo::get
    - ADD_FAILURE
    linkageType: ''
    returnType: ScopedPK11SymKey
    signature: ScopedPK11SymKey ImportKey(CK_MECHANISM_TYPE mech, SECItem *key_item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::Pkcs11KbkdfTest::ImportKey
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:42,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:44,1
    - Dst: PK11_Derive
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:48,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:48,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:51,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:53,1
    - Dst: PK11_ExtractKeyValue
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:53,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:53,1
    - Dst: PK11_GetKeyData
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:56,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:56,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:57,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:60,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:60,1
    - Dst: PK11_GetSlotFromKey
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:67,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:67,1
    - Dst: PK11_SymKeyFromHandle
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:71,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:71,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:71,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:74,1
    - Dst: PK11_ExtractKeyValue
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:74,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:74,1
    - Dst: PK11_GetKeyData
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:77,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:77,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:78,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:81,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 8
    argNames:
    - kdfMech
    - kdfParams
    - inputKey
    - inputKeyLen
    - expectedKey
    - expectedKeyLen
    - expectedAdditional
    - expectedAdditionalLen
    argTypes:
    - CK_MECHANISM_TYPE
    - CK_SP800_108_KDF_PARAMS_PTR
    - CK_BYTE_PTR
    - unsigned int
    - CK_BYTE_PTR
    - unsigned int
    - CK_BYTE_PTR
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 36
    functionDepth: 7
    functionLinenumber: 36
    functionLinenumberEnd: 82
    functionName: nss_test::Pkcs11KbkdfTest::RunKDF
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - SECITEM_CompareItem
    - PK11_SymKeyFromHandle
    - PK11_GetSlotFromKey
    - ScopedPK11SymKey::get
    - PK11_ExtractKeyValue
    - PK11_Derive
    - nss_test::Pkcs11KbkdfTest::ImportKey
    - PK11_GetKeyData
    - ScopedPK11SlotInfo::get
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: "void RunKDF(CK_MECHANISM_TYPE kdfMech, CK_SP800_108_KDF_PARAMS_PTR
      kdfParams,\n              CK_BYTE_PTR inputKey, unsigned int inputKeyLen,\n
      \             CK_BYTE_PTR expectedKey, unsigned int expectedKeyLen,\n              CK_BYTE_PTR
      expectedAdditional,\n              unsigned int expectedAdditionalLen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RunKDF
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 133
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc
    functionUses: 0
    functionsReached:
    - RunKDF
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11KbkdfTest, TestAdditionalKey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::ImportKey
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:186,1
    - Dst: PK11_Derive
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:194,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:194,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:197,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:199,1
    - Dst: PK11_ExtractKeyValue
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:199,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:199,1
    - Dst: nss_test::ImportKey
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:203,1
    - Dst: PK11_Derive
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:211,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:211,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc:214,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 216
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_kbkdf.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ScopedPK11SymKey::get
    - nss_test::ImportKey
    - PK11_ExtractKeyValue
    - PK11_Derive
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11KbkdfTest, TestPRFs)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - hash
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 40
    functionName: nss_test::EcHashToComboMech
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_MECHANISM_TYPE
    signature: CK_MECHANISM_TYPE EcHashToComboMech(SECOidTag hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EcHashToComboMech
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - hash_oid
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: nss_test::Pkcs11EcdsaTestBase::Pkcs11EcdsaTestBase
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 0
    functionsReached:
    - EcHashToComboMech
    linkageType: ''
    returnType: void
    signature: void Pkcs11EcdsaTestBase(SECOidTag hash_oid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: nss_test::Pkcs11EcdsaTest::Pkcs11EcdsaTest
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 0
    functionsReached:
    - GetParam
    linkageType: ''
    returnType: void
    signature: void Pkcs11EcdsaTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Verify
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:60,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 0
    functionsReached:
    - Verify
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11EcdsaTest, Verify)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SignAndVerify
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:63,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 0
    functionsReached:
    - SignAndVerify
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11EcdsaTest, SignAndVerify)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ImportExport
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:67,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 0
    functionsReached:
    - ImportExport
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11EcdsaTest, ImportExport)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 122
    functionName: nss_test::Pkcs11EcdsaSha256Test::Pkcs11EcdsaSha256Test
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Pkcs11EcdsaSha256Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:130,1
    - Dst: ImportPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 131
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 0
    functionsReached:
    - ImportPrivateKey
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11EcdsaSha256Test, ImportNoCurveOIDOrAlgorithmParams)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:141,1
    - Dst: ImportPrivateKeyAndSignHashedData
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 142
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - ImportPrivateKeyAndSignHashedData
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11EcdsaSha256Test, ImportOnlyAlgorithmParams)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:153,1
    - Dst: ImportPrivateKeyAndSignHashedData
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 154
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - ImportPrivateKeyAndSignHashedData
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11EcdsaSha256Test, ImportMatchingCurveOIDAndAlgorithmParams)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:165,1
    - Dst: ImportPrivateKeyAndSignHashedData
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 166
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - ImportPrivateKeyAndSignHashedData
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11EcdsaSha256Test, ImportDissimilarCurveOIDAndAlgorithmParams)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:173,1
    - Dst: ImportPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 174
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 0
    functionsReached:
    - ImportPrivateKey
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11EcdsaSha256Test, ImportNoAlgorithmParams)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:181,1
    - Dst: ImportPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 182
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 0
    functionsReached:
    - ImportPrivateKey
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11EcdsaSha256Test, ImportInvalidAlgorithmParams)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:190,1
    - Dst: SECKEY_ConvertToPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:192,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:192,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:193,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:196,1
    - Dst: PK11_ImportPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:198,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:198,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:198,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:199,1
    - Dst: static_cast<decltype(handle)>
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 187
    functionDepth: 5
    functionLinenumber: 187
    functionLinenumberEnd: 200
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 0
    functionsReached:
    - static_cast<decltype(handle)>
    - ScopedSECKEYPublicKey::get
    - ASSERT_TRUE
    - SECKEY_ConvertToPublicKey
    - ScopedSECKEYPrivateKey::get
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - PK11_ImportPublicKey
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11EcdsaSha256Test, ImportPointNotOnCurve)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:207,1
    - Dst: SECKEY_ConvertToPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:209,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:209,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:210,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 204
    functionDepth: 5
    functionLinenumber: 204
    functionLinenumberEnd: 213
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 0
    functionsReached:
    - SECKEY_ConvertToPublicKey
    - ScopedSECKEYPrivateKey::get
    - ASSERT_NE
    - ASSERT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11EcdsaSha256Test, ImportNoPublicKey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:219,1
    - Dst: ImportPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 220
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - ImportPublicKey
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11EcdsaSha256Test, ImportSpkiNoAlgorithmParams)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:228,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:231,1
    - Dst: PK11_ImportPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:233,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:233,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:233,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:234,1
    - Dst: static_cast<decltype(handle)>
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 225
    functionDepth: 3
    functionLinenumber: 225
    functionLinenumberEnd: 235
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 0
    functionsReached:
    - ScopedPK11SlotInfo::get
    - static_cast<decltype(handle)>
    - ASSERT_TRUE
    - ScopedSECKEYPublicKey::get
    - EXPECT_EQ
    - PK11_ImportPublicKey
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11EcdsaSha256Test, ImportSpkiPointNotOnCurve)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WycheproofHeader
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:240,1
    - Dst: nss_test::Pkcs11EcdsaWycheproofTest::RunGroup
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 242
    functionName: nss_test::Pkcs11EcdsaWycheproofTest::Run
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 0
    functionsReached:
    - nss_test::Pkcs11EcdsaWycheproofTest::RunGroup
    - WycheproofHeader
    linkageType: ''
    returnType: void
    signature: void Run(const std::string& name)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: NextItem
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:250,1
    - Dst: ReadLabel
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:251,1
    - Dst: SkipValue
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:257,1
    - Dst: ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:259,1
    - Dst: ReadHash
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:261,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:263,1
    - Dst: ReadString
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:263,1
    - Dst: WycheproofReadTests
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:265,1
    - Dst: FAIL
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:267,1
    - Dst: nss_test::Pkcs11EcdsaWycheproofTest::Derive
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:275,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 1
    argNames:
    - ' r'
    argTypes:
    - JsonReader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 277
    functionName: nss_test::Pkcs11EcdsaWycheproofTest::RunGroup
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 1
    functionsReached:
    - NextItem
    - ASSERT_EQ
    - FAIL
    - nss_test::Pkcs11EcdsaWycheproofTest::Derive
    - WycheproofReadTests
    - ReadHex
    - SkipValue
    - ReadLabel
    - ReadHash
    - ReadString
    linkageType: ''
    returnType: void
    signature: void RunGroup(JsonReader& r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:282,1
    - Dst: ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:284,1
    - Dst: FAIL
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:286,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ' t'
    - ' n'
    - ' r'
    argTypes:
    - EcdsaTestVector
    - std::string
    - JsonReader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 288
    functionName: nss_test::Pkcs11EcdsaWycheproofTest::ReadTestAttr
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 0
    functionsReached:
    - FAIL
    - ReadHex
    linkageType: ''
    returnType: void
    signature: "void ReadTestAttr(EcdsaTestVector& t, const std::string& n,\n                           JsonReader&
      r)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:291,1
    - Dst: public_key::data
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:291,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:292,1
    - Dst: public_key::size
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:292,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:293,1
    - Dst: sig::data
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:293,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:294,1
    - Dst: sig::size
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:294,1
    - Dst: DataBuffer::Allocate
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:297,1
    - Dst: static_cast<size_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:297,1
    - Dst: HASH_ResultLenByOidTag
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:297,1
    - Dst: PK11_HashBuf
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:298,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:298,1
    - Dst: DataBuffer::data
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:298,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:299,1
    - Dst: msg::data
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:299,1
    - Dst: msg::size
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:299,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:300,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:301,1
    - Dst: DataBuffer::data
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:301,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:302,1
    - Dst: DataBuffer::len
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:302,1
    - Dst: SECKEY_DecodeDERSubjectPublicKeyInfo
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:305,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:306,1
    - Dst: SECKEY_ExtractPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:307,1
    - Dst: ScopedCERTSubjectPublicKeyInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:307,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:308,1
    - Dst: VFY_VerifyDigestDirect
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:310,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:310,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ' vec'
    argTypes:
    - EcdsaTestVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 290
    functionDepth: 10
    functionLinenumber: 290
    functionLinenumberEnd: 314
    functionName: nss_test::Pkcs11EcdsaWycheproofTest::Derive
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 1
    functionsReached:
    - HASH_ResultLenByOidTag
    - public_key::data
    - sig::size
    - msg::size
    - PK11_HashBuf
    - ASSERT_TRUE
    - ScopedCERTSubjectPublicKeyInfo::get
    - DataBuffer::data
    - sig::data
    - DataBuffer::len
    - ASSERT_EQ
    - DataBuffer::Allocate
    - VFY_VerifyDigestDirect
    - static_cast<unsigned int>
    - SECKEY_DecodeDERSubjectPublicKeyInfo
    - public_key::size
    - static_cast<size_t>
    - ScopedSECKEYPublicKey::get
    - EXPECT_EQ
    - msg::data
    - SECKEY_ExtractPublicKey
    - toUcharPtr
    linkageType: ''
    returnType: void
    signature: void Derive(const EcdsaTestVector& vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 317
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11EcdsaWycheproofTest, P256)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 318
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11EcdsaWycheproofTest, P256Sha512)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 319
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11EcdsaWycheproofTest, P384)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 320
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11EcdsaWycheproofTest, P384Sha512)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 321
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11EcdsaWycheproofTest, P521)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 327
    functionName: nss_test::Pkcs11EcdsaRoundtripTest::Pkcs11EcdsaRoundtripTest
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Pkcs11EcdsaRoundtripTest()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Pkcs11KeyPairGenerator::GenerateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:334,1
    - Dst: ExportPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:337,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:343,1
    - Dst: ImportPrivateKeyAndSignHashedData
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:344,1
    - Dst: Verify
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:346,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - tag
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 348
    functionName: nss_test::Pkcs11EcdsaRoundtripTest::GenerateExportImportSignVerify
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 0
    functionsReached:
    - Pkcs11KeyPairGenerator::GenerateKey
    - ExportPrivateKey
    - Verify
    - ASSERT_TRUE
    - ImportPrivateKeyAndSignHashedData
    linkageType: ''
    returnType: void
    signature: void GenerateExportImportSignVerify(SECOidTag tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GenerateExportImportSignVerify
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:352,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 353
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 0
    functionsReached:
    - GenerateExportImportSignVerify
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11EcdsaRoundtripTest, GenerateExportImportSignVerify)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 365
    functionName: nss_test::Pkcs11EcdsaUnpaddedSignatureTest::Pkcs11EcdsaUnpaddedSignatureTest
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 0
    functionsReached:
    - GetParam
    linkageType: ''
    returnType: void
    signature: void Pkcs11EcdsaUnpaddedSignatureTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Verify
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:407,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 408
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 0
    functionsReached:
    - Verify
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11EcdsaUnpaddedSignatureTest, Verify)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - hash
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 40
    functionName: nss_test::EcHashToComboMech
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_MECHANISM_TYPE
    signature: CK_MECHANISM_TYPE EcHashToComboMech(SECOidTag hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EcHashToComboMech
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - hash_oid
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: nss_test::Pkcs11EcdsaTestBase::Pkcs11EcdsaTestBase
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 0
    functionsReached:
    - EcHashToComboMech
    linkageType: ''
    returnType: void
    signature: void Pkcs11EcdsaTestBase(SECOidTag hash_oid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: nss_test::Pkcs11EcdsaTest::Pkcs11EcdsaTest
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 0
    functionsReached:
    - GetParam
    linkageType: ''
    returnType: void
    signature: void Pkcs11EcdsaTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Verify
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:60,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 0
    functionsReached:
    - Verify
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11EcdsaTest, Verify)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SignAndVerify
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:63,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 0
    functionsReached:
    - SignAndVerify
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11EcdsaTest, SignAndVerify)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ImportExport
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:67,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 0
    functionsReached:
    - ImportExport
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11EcdsaTest, ImportExport)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 122
    functionName: nss_test::Pkcs11EcdsaSha256Test::Pkcs11EcdsaSha256Test
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Pkcs11EcdsaSha256Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:130,1
    - Dst: ImportPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 131
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 0
    functionsReached:
    - ImportPrivateKey
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11EcdsaSha256Test, ImportNoCurveOIDOrAlgorithmParams)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:141,1
    - Dst: ImportPrivateKeyAndSignHashedData
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 142
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - ImportPrivateKeyAndSignHashedData
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11EcdsaSha256Test, ImportOnlyAlgorithmParams)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:153,1
    - Dst: ImportPrivateKeyAndSignHashedData
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 154
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - ImportPrivateKeyAndSignHashedData
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11EcdsaSha256Test, ImportMatchingCurveOIDAndAlgorithmParams)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:165,1
    - Dst: ImportPrivateKeyAndSignHashedData
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 166
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - ImportPrivateKeyAndSignHashedData
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11EcdsaSha256Test, ImportDissimilarCurveOIDAndAlgorithmParams)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:173,1
    - Dst: ImportPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 174
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 0
    functionsReached:
    - ImportPrivateKey
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11EcdsaSha256Test, ImportNoAlgorithmParams)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:181,1
    - Dst: ImportPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 182
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 0
    functionsReached:
    - ImportPrivateKey
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11EcdsaSha256Test, ImportInvalidAlgorithmParams)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:190,1
    - Dst: SECKEY_ConvertToPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:192,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:192,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:193,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:196,1
    - Dst: PK11_ImportPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:198,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:198,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:198,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:199,1
    - Dst: static_cast<decltype(handle)>
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 187
    functionDepth: 5
    functionLinenumber: 187
    functionLinenumberEnd: 200
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 0
    functionsReached:
    - static_cast<decltype(handle)>
    - ScopedSECKEYPublicKey::get
    - ASSERT_TRUE
    - SECKEY_ConvertToPublicKey
    - ScopedSECKEYPrivateKey::get
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - PK11_ImportPublicKey
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11EcdsaSha256Test, ImportPointNotOnCurve)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:207,1
    - Dst: SECKEY_ConvertToPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:209,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:209,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:210,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 204
    functionDepth: 5
    functionLinenumber: 204
    functionLinenumberEnd: 213
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 0
    functionsReached:
    - SECKEY_ConvertToPublicKey
    - ScopedSECKEYPrivateKey::get
    - ASSERT_NE
    - ASSERT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11EcdsaSha256Test, ImportNoPublicKey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:219,1
    - Dst: ImportPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 220
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - ImportPublicKey
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11EcdsaSha256Test, ImportSpkiNoAlgorithmParams)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:228,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:231,1
    - Dst: PK11_ImportPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:233,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:233,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:233,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:234,1
    - Dst: static_cast<decltype(handle)>
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 225
    functionDepth: 3
    functionLinenumber: 225
    functionLinenumberEnd: 235
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 0
    functionsReached:
    - ScopedPK11SlotInfo::get
    - static_cast<decltype(handle)>
    - ASSERT_TRUE
    - ScopedSECKEYPublicKey::get
    - EXPECT_EQ
    - PK11_ImportPublicKey
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11EcdsaSha256Test, ImportSpkiPointNotOnCurve)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WycheproofHeader
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:240,1
    - Dst: nss_test::Pkcs11EcdsaWycheproofTest::RunGroup
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 239
    functionDepth: 2
    functionLinenumber: 239
    functionLinenumberEnd: 242
    functionName: nss_test::Pkcs11EcdsaWycheproofTest::Run
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 0
    functionsReached:
    - nss_test::Pkcs11EcdsaWycheproofTest::RunGroup
    - WycheproofHeader
    linkageType: ''
    returnType: void
    signature: void Run(const std::string& name)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: NextItem
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:250,1
    - Dst: ReadLabel
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:251,1
    - Dst: SkipValue
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:257,1
    - Dst: ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:259,1
    - Dst: ReadHash
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:261,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:263,1
    - Dst: ReadString
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:263,1
    - Dst: WycheproofReadTests
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:265,1
    - Dst: FAIL
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:267,1
    - Dst: nss_test::Pkcs11EcdsaWycheproofTest::Derive
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:275,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 1
    argNames:
    - ' r'
    argTypes:
    - JsonReader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 245
    functionDepth: 11
    functionLinenumber: 245
    functionLinenumberEnd: 277
    functionName: nss_test::Pkcs11EcdsaWycheproofTest::RunGroup
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 2
    functionsReached:
    - NextItem
    - ASSERT_EQ
    - FAIL
    - nss_test::Pkcs11EcdsaWycheproofTest::Derive
    - WycheproofReadTests
    - ReadHex
    - SkipValue
    - ReadLabel
    - ReadHash
    - ReadString
    linkageType: ''
    returnType: void
    signature: void RunGroup(JsonReader& r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:282,1
    - Dst: ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:284,1
    - Dst: FAIL
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:286,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ' t'
    - ' n'
    - ' r'
    argTypes:
    - EcdsaTestVector
    - std::string
    - JsonReader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 288
    functionName: nss_test::Pkcs11EcdsaWycheproofTest::ReadTestAttr
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 0
    functionsReached:
    - FAIL
    - ReadHex
    linkageType: ''
    returnType: void
    signature: "void ReadTestAttr(EcdsaTestVector& t, const std::string& n,\n                           JsonReader&
      r)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:291,1
    - Dst: public_key::data
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:291,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:292,1
    - Dst: public_key::size
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:292,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:293,1
    - Dst: sig::data
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:293,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:294,1
    - Dst: sig::size
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:294,1
    - Dst: DataBuffer::Allocate
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:297,1
    - Dst: static_cast<size_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:297,1
    - Dst: HASH_ResultLenByOidTag
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:297,1
    - Dst: PK11_HashBuf
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:298,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:298,1
    - Dst: DataBuffer::data
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:298,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:299,1
    - Dst: msg::data
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:299,1
    - Dst: msg::size
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:299,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:300,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:301,1
    - Dst: DataBuffer::data
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:301,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:302,1
    - Dst: DataBuffer::len
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:302,1
    - Dst: SECKEY_DecodeDERSubjectPublicKeyInfo
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:305,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:306,1
    - Dst: SECKEY_ExtractPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:307,1
    - Dst: ScopedCERTSubjectPublicKeyInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:307,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:308,1
    - Dst: VFY_VerifyDigestDirect
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:310,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:310,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ' vec'
    argTypes:
    - EcdsaTestVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 290
    functionDepth: 10
    functionLinenumber: 290
    functionLinenumberEnd: 314
    functionName: nss_test::Pkcs11EcdsaWycheproofTest::Derive
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 2
    functionsReached:
    - HASH_ResultLenByOidTag
    - public_key::data
    - sig::size
    - msg::size
    - PK11_HashBuf
    - ASSERT_TRUE
    - ScopedCERTSubjectPublicKeyInfo::get
    - DataBuffer::data
    - sig::data
    - DataBuffer::len
    - ASSERT_EQ
    - DataBuffer::Allocate
    - VFY_VerifyDigestDirect
    - static_cast<unsigned int>
    - SECKEY_DecodeDERSubjectPublicKeyInfo
    - public_key::size
    - static_cast<size_t>
    - ScopedSECKEYPublicKey::get
    - EXPECT_EQ
    - msg::data
    - SECKEY_ExtractPublicKey
    - toUcharPtr
    linkageType: ''
    returnType: void
    signature: void Derive(const EcdsaTestVector& vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 317
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11EcdsaWycheproofTest, P256)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 318
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11EcdsaWycheproofTest, P256Sha512)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 319
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11EcdsaWycheproofTest, P384)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 320
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11EcdsaWycheproofTest, P384Sha512)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 321
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11EcdsaWycheproofTest, P521)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 327
    functionName: nss_test::Pkcs11EcdsaRoundtripTest::Pkcs11EcdsaRoundtripTest
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Pkcs11EcdsaRoundtripTest()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Pkcs11KeyPairGenerator::GenerateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:334,1
    - Dst: ExportPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:337,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:343,1
    - Dst: ImportPrivateKeyAndSignHashedData
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:344,1
    - Dst: Verify
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:346,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - tag
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 348
    functionName: nss_test::Pkcs11EcdsaRoundtripTest::GenerateExportImportSignVerify
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 0
    functionsReached:
    - Pkcs11KeyPairGenerator::GenerateKey
    - ExportPrivateKey
    - Verify
    - ASSERT_TRUE
    - ImportPrivateKeyAndSignHashedData
    linkageType: ''
    returnType: void
    signature: void GenerateExportImportSignVerify(SECOidTag tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GenerateExportImportSignVerify
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:352,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 353
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 0
    functionsReached:
    - GenerateExportImportSignVerify
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11EcdsaRoundtripTest, GenerateExportImportSignVerify)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 365
    functionName: nss_test::Pkcs11EcdsaUnpaddedSignatureTest::Pkcs11EcdsaUnpaddedSignatureTest
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 0
    functionsReached:
    - GetParam
    linkageType: ''
    returnType: void
    signature: void Pkcs11EcdsaUnpaddedSignatureTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Verify
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:407,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 408
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ecdsa_unittest.cc
    functionUses: 0
    functionsReached:
    - Verify
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11EcdsaUnpaddedSignatureTest, Verify)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - hash
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 41
    functionName: nss_test::RsaHashToComboMech
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_MECHANISM_TYPE
    signature: CK_MECHANISM_TYPE RsaHashToComboMech(SECOidTag hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RsaHashToComboMech
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - hashOid
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: nss_test::Pkcs11RsaBaseTest::Pkcs11RsaBaseTest
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc
    functionUses: 0
    functionsReached:
    - RsaHashToComboMech
    linkageType: ''
    returnType: void
    signature: void Pkcs11RsaBaseTest(SECOidTag hashOid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DataBuffer
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:50,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:50,1
    - Dst: public_key::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:50,1
    - Dst: public_key::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:50,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:51,1
    - Dst: msg::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:51,1
    - Dst: msg::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:51,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:52,1
    - Dst: sig::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:52,1
    - Dst: sig::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:52,1
    - Dst: nss_test::Pk11SignatureTest::Verify
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vec'
    argTypes:
    - RsaSignatureTestVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 54
    functionName: nss_test::Pkcs11RsaBaseTest::Verify
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc
    functionUses: 0
    functionsReached:
    - sig::data
    - public_key::data
    - DataBuffer
    - msg::size
    - sig::size
    - nss_test::Pk11SignatureTest::Verify
    - public_key::size
    - msg::data
    linkageType: ''
    returnType: void
    signature: void Verify(const RsaSignatureTestVector& vec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:62,1
    - Dst: ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:64,1
    - Dst: FAIL
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ' t'
    - ' n'
    - ' r'
    argTypes:
    - RsaSignatureTestVector
    - std::string
    - JsonReader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 68
    functionName: nss_test::Pkcs11RsaPkcs1WycheproofTest::ReadTestAttr
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc
    functionUses: 0
    functionsReached:
    - FAIL
    - ReadHex
    linkageType: ''
    returnType: void
    signature: "void ReadTestAttr(RsaSignatureTestVector& t, const std::string& n,\n
      \                          JsonReader& r)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: NextItem
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:75,1
    - Dst: ReadLabel
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:76,1
    - Dst: SkipValue
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:82,1
    - Dst: ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:84,1
    - Dst: ReadInt
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:86,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:88,1
    - Dst: ReadString
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:88,1
    - Dst: ReadHash
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:90,1
    - Dst: WycheproofReadTests
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:92,1
    - Dst: std::find_if
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:97,1
    - Dst: begin
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:97,1
    - Dst: end
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:97,1
    - Dst: end
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:99,1
    - Dst: FAIL
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:104,1
    - Dst: Pkcs11RsaBaseTestWrap::Run
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:112,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 37
    argCount: 1
    argNames:
    - ' r'
    argTypes:
    - JsonReader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 114
    functionName: nss_test::Pkcs11RsaPkcs1WycheproofTest::RunGroup
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc
    functionUses: 0
    functionsReached:
    - NextItem
    - ASSERT_EQ
    - FAIL
    - WycheproofReadTests
    - std::find_if
    - end
    - ReadHex
    - begin
    - SkipValue
    - Pkcs11RsaBaseTestWrap::Run
    - ReadInt
    - ReadLabel
    - ReadHash
    - ReadString
    linkageType: ''
    returnType: void
    signature: void RunGroup(JsonReader& r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - hash
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: nss_test::Pkcs11RsaPkcs1WycheproofTest::Pkcs11RsaBaseTestWrap::Pkcs11RsaBaseTestWrap
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Pkcs11RsaBaseTestWrap(SECOidTag hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    functionName: nss_test::Pkcs11RsaPkcs1WycheproofTest::Pkcs11RsaBaseTestWrap::TestBody
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestBody()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:123,1
    - Dst: public_key::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:123,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:124,1
    - Dst: public_key::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:124,1
    - Dst: SECKEY_DecodeDERSubjectPublicKeyInfo
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:127,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:128,1
    - Dst: SECKEY_ExtractPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:130,1
    - Dst: ScopedCERTSubjectPublicKeyInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:130,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:131,1
    - Dst: DataBuffer::Allocate
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:134,1
    - Dst: static_cast<size_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:134,1
    - Dst: HASH_ResultLenByOidTag
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:134,1
    - Dst: PK11_HashBuf
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:135,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:135,1
    - Dst: DataBuffer::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:135,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:136,1
    - Dst: msg::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:136,1
    - Dst: msg::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:136,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:137,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:140,1
    - Dst: DataBuffer::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:140,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:141,1
    - Dst: DataBuffer::len
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:141,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:142,1
    - Dst: sig::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:142,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:143,1
    - Dst: sig::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:143,1
    - Dst: VFY_VerifyDigestDirect
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:145,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:145,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ' vec'
    argTypes:
    - RsaSignatureTestVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 122
    functionDepth: 10
    functionLinenumber: 122
    functionLinenumberEnd: 149
    functionName: nss_test::Pkcs11RsaPkcs1WycheproofTest::Pkcs11RsaBaseTestWrap::Verify1
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc
    functionUses: 0
    functionsReached:
    - HASH_ResultLenByOidTag
    - public_key::data
    - msg::size
    - sig::size
    - PK11_HashBuf
    - ASSERT_TRUE
    - ScopedCERTSubjectPublicKeyInfo::get
    - DataBuffer::data
    - sig::data
    - DataBuffer::len
    - ASSERT_EQ
    - DataBuffer::Allocate
    - VFY_VerifyDigestDirect
    - static_cast<unsigned int>
    - SECKEY_DecodeDERSubjectPublicKeyInfo
    - public_key::size
    - static_cast<size_t>
    - ScopedSECKEYPublicKey::get
    - EXPECT_EQ
    - msg::data
    - SECKEY_ExtractPublicKey
    - toUcharPtr
    linkageType: ''
    returnType: void
    signature: void Verify1(const RsaSignatureTestVector& vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::Pkcs11RsaPkcs1WycheproofTest::Pkcs11RsaBaseTestWrap::Verify1
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:153,1
    - Dst: setSkipRaw
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:155,1
    - Dst: Verify
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' vec'
    argTypes:
    - RsaSignatureTestVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 151
    functionDepth: 11
    functionLinenumber: 151
    functionLinenumberEnd: 157
    functionName: nss_test::Pkcs11RsaPkcs1WycheproofTest::Pkcs11RsaBaseTestWrap::Run
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc
    functionUses: 0
    functionsReached:
    - Verify
    - setSkipRaw
    - nss_test::Pkcs11RsaPkcs1WycheproofTest::Pkcs11RsaBaseTestWrap::Verify1
    linkageType: ''
    returnType: void
    signature: void Run(const RsaSignatureTestVector& vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:197,1
    - Dst: ScopedSECKEYPrivateKey::reset
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:199,1
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:199,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:199,1
    - Dst: ScopedSECKEYPublicKey::reset
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:202,1
    - Dst: reset
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:205,1
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:205,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:205,1
    - Dst: reset
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:208,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:211,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:211,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:213,1
    - Dst: std::vector::push_back
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:216,1
    - Dst: std::vector::push_back
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:217,1
    - Dst: std::vector::insert
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:218,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:218,1
    - Dst: std::vector::insert
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:219,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:219,1
    - Dst: std::vector::insert
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:220,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:220,1
    - Dst: std::vector::begin
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:220,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:221,1
    - Dst: std::vector::insert
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:222,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:222,1
    - Dst: std::vector::begin
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:222,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:222,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:223,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:223,1
    - Dst: PK11_PubDecryptRaw
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:229,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:229,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:229,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:229,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:230,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:230,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:231,1
    - Dst: DataBuffer::Allocate
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:235,1
    - Dst: static_cast<size_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:235,1
    - Dst: HASH_ResultLenByOidTag
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:235,1
    - Dst: PK11_HashBuf
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:236,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:236,1
    - Dst: DataBuffer::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:236,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:237,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:237,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:237,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:238,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:239,1
    - Dst: DataBuffer::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:239,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:240,1
    - Dst: DataBuffer::len
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:240,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:241,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:241,1
    - Dst: NSS_OptionSet
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:243,1
    - Dst: VFY_VerifyDigestDirect
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:245,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:245,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:248,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:249,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:249,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:253,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:253,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:255,1
    - Dst: std::vector::push_back
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:258,1
    - Dst: std::vector::push_back
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:259,1
    - Dst: std::vector::insert
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:260,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:260,1
    - Dst: std::vector::insert
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:261,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:261,1
    - Dst: std::vector::insert
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:262,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:262,1
    - Dst: std::vector::begin
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:262,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:263,1
    - Dst: std::vector::insert
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:264,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:264,1
    - Dst: std::vector::begin
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:264,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:264,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:265,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:265,1
    - Dst: std::vector::resize
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:268,1
    - Dst: PK11_PubDecryptRaw
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:269,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:269,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:269,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:269,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:270,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:270,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:271,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:274,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:274,1
    - Dst: VFY_VerifyDigestDirect
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:275,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:275,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:278,1
    - Dst: GTEST_SKIP
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 171
    functionDepth: 10
    functionLinenumber: 171
    functionLinenumberEnd: 282
    functionName: nss_test::TEST
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc
    functionUses: 0
    functionsReached:
    - HASH_ResultLenByOidTag
    - std::vector::data
    - PK11_HashBuf
    - ScopedSECKEYPrivateKey::reset
    - ASSERT_TRUE
    - std::vector::size
    - PK11_PubDecryptRaw
    - DataBuffer::data
    - GTEST_SKIP
    - toUcharPtr
    - std::vector::begin
    - reset
    - DataBuffer::len
    - ASSERT_EQ
    - DataBuffer::Allocate
    - VFY_VerifyDigestDirect
    - ScopedSECKEYPublicKey::reset
    - static_cast<unsigned int>
    - std::vector::end
    - static_cast<size_t>
    - NSS_OptionSet
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - ScopedSECKEYPublicKey::get
    - get
    - std::vector::resize
    - PK11_GenerateKeyPair
    - PORT_GetError
    - std::vector::push_back
    - std::vector::insert
    - ScopedSECKEYPrivateKey::get
    linkageType: ''
    returnType: void
    signature: void TEST(RsaPkcs1Test, Pkcs1MinimumPadding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:291,1
    - Dst: SECKEY_DecodeDERSubjectPublicKeyInfo
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:293,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:294,1
    - Dst: SECKEY_ExtractPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:295,1
    - Dst: ScopedCERTSubjectPublicKeyInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:295,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:296,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:298,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:301,1
    - Dst: VFY_VerifyDigestDirect
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:302,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:302,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:305,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:308,1
    - Dst: VFY_VerifyDigestDirect
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:310,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:310,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:314,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 284
    functionDepth: 7
    functionLinenumber: 284
    functionLinenumberEnd: 318
    functionName: nss_test::TEST
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc
    functionUses: 0
    functionsReached:
    - VFY_VerifyDigestDirect
    - ASSERT_TRUE
    - SECKEY_ExtractPublicKey
    - SECKEY_DecodeDERSubjectPublicKeyInfo
    - ScopedCERTSubjectPublicKeyInfo::get
    - toUcharPtr
    - ScopedSECKEYPublicKey::get
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(RsaPkcs1Test, RequireNullParameter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WycheproofHeader
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:321,1
    - Dst: RunGroup
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 324
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc
    functionUses: 0
    functionsReached:
    - RunGroup
    - WycheproofHeader
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11RsaPkcs1WycheproofTest, Pkcs11RsaPkcs1WycheproofTest)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - hash
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 41
    functionName: nss_test::RsaHashToComboMech
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_MECHANISM_TYPE
    signature: CK_MECHANISM_TYPE RsaHashToComboMech(SECOidTag hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RsaHashToComboMech
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - hashOid
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: nss_test::Pkcs11RsaBaseTest::Pkcs11RsaBaseTest
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc
    functionUses: 0
    functionsReached:
    - RsaHashToComboMech
    linkageType: ''
    returnType: void
    signature: void Pkcs11RsaBaseTest(SECOidTag hashOid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DataBuffer
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:50,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:50,1
    - Dst: public_key::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:50,1
    - Dst: public_key::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:50,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:51,1
    - Dst: msg::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:51,1
    - Dst: msg::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:51,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:52,1
    - Dst: sig::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:52,1
    - Dst: sig::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:52,1
    - Dst: nss_test::Pk11SignatureTest::Verify
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vec'
    argTypes:
    - RsaSignatureTestVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 54
    functionName: nss_test::Pkcs11RsaBaseTest::Verify
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc
    functionUses: 0
    functionsReached:
    - sig::data
    - public_key::data
    - DataBuffer
    - msg::size
    - sig::size
    - nss_test::Pk11SignatureTest::Verify
    - public_key::size
    - msg::data
    linkageType: ''
    returnType: void
    signature: void Verify(const RsaSignatureTestVector& vec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:62,1
    - Dst: ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:64,1
    - Dst: FAIL
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ' t'
    - ' n'
    - ' r'
    argTypes:
    - RsaSignatureTestVector
    - std::string
    - JsonReader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 68
    functionName: nss_test::Pkcs11RsaPkcs1WycheproofTest::ReadTestAttr
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc
    functionUses: 0
    functionsReached:
    - FAIL
    - ReadHex
    linkageType: ''
    returnType: void
    signature: "void ReadTestAttr(RsaSignatureTestVector& t, const std::string& n,\n
      \                          JsonReader& r)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: NextItem
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:75,1
    - Dst: ReadLabel
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:76,1
    - Dst: SkipValue
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:82,1
    - Dst: ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:84,1
    - Dst: ReadInt
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:86,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:88,1
    - Dst: ReadString
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:88,1
    - Dst: ReadHash
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:90,1
    - Dst: WycheproofReadTests
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:92,1
    - Dst: std::find_if
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:97,1
    - Dst: begin
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:97,1
    - Dst: end
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:97,1
    - Dst: end
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:99,1
    - Dst: FAIL
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:104,1
    - Dst: Pkcs11RsaBaseTestWrap::Run
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:112,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 37
    argCount: 1
    argNames:
    - ' r'
    argTypes:
    - JsonReader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 114
    functionName: nss_test::Pkcs11RsaPkcs1WycheproofTest::RunGroup
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc
    functionUses: 0
    functionsReached:
    - NextItem
    - ASSERT_EQ
    - FAIL
    - WycheproofReadTests
    - std::find_if
    - end
    - ReadHex
    - begin
    - SkipValue
    - Pkcs11RsaBaseTestWrap::Run
    - ReadInt
    - ReadLabel
    - ReadHash
    - ReadString
    linkageType: ''
    returnType: void
    signature: void RunGroup(JsonReader& r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - hash
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: nss_test::Pkcs11RsaPkcs1WycheproofTest::Pkcs11RsaBaseTestWrap::Pkcs11RsaBaseTestWrap
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Pkcs11RsaBaseTestWrap(SECOidTag hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    functionName: nss_test::Pkcs11RsaPkcs1WycheproofTest::Pkcs11RsaBaseTestWrap::TestBody
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestBody()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:123,1
    - Dst: public_key::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:123,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:124,1
    - Dst: public_key::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:124,1
    - Dst: SECKEY_DecodeDERSubjectPublicKeyInfo
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:127,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:128,1
    - Dst: SECKEY_ExtractPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:130,1
    - Dst: ScopedCERTSubjectPublicKeyInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:130,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:131,1
    - Dst: DataBuffer::Allocate
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:134,1
    - Dst: static_cast<size_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:134,1
    - Dst: HASH_ResultLenByOidTag
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:134,1
    - Dst: PK11_HashBuf
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:135,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:135,1
    - Dst: DataBuffer::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:135,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:136,1
    - Dst: msg::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:136,1
    - Dst: msg::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:136,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:137,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:140,1
    - Dst: DataBuffer::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:140,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:141,1
    - Dst: DataBuffer::len
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:141,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:142,1
    - Dst: sig::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:142,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:143,1
    - Dst: sig::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:143,1
    - Dst: VFY_VerifyDigestDirect
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:145,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:145,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ' vec'
    argTypes:
    - RsaSignatureTestVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 122
    functionDepth: 10
    functionLinenumber: 122
    functionLinenumberEnd: 149
    functionName: nss_test::Pkcs11RsaPkcs1WycheproofTest::Pkcs11RsaBaseTestWrap::Verify1
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc
    functionUses: 1
    functionsReached:
    - HASH_ResultLenByOidTag
    - public_key::data
    - msg::size
    - sig::size
    - PK11_HashBuf
    - ASSERT_TRUE
    - ScopedCERTSubjectPublicKeyInfo::get
    - DataBuffer::data
    - sig::data
    - DataBuffer::len
    - ASSERT_EQ
    - DataBuffer::Allocate
    - VFY_VerifyDigestDirect
    - static_cast<unsigned int>
    - SECKEY_DecodeDERSubjectPublicKeyInfo
    - public_key::size
    - static_cast<size_t>
    - ScopedSECKEYPublicKey::get
    - EXPECT_EQ
    - msg::data
    - SECKEY_ExtractPublicKey
    - toUcharPtr
    linkageType: ''
    returnType: void
    signature: void Verify1(const RsaSignatureTestVector& vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::Pkcs11RsaPkcs1WycheproofTest::Pkcs11RsaBaseTestWrap::Verify1
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:153,1
    - Dst: setSkipRaw
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:155,1
    - Dst: Verify
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' vec'
    argTypes:
    - RsaSignatureTestVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 151
    functionDepth: 11
    functionLinenumber: 151
    functionLinenumberEnd: 157
    functionName: nss_test::Pkcs11RsaPkcs1WycheproofTest::Pkcs11RsaBaseTestWrap::Run
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc
    functionUses: 0
    functionsReached:
    - Verify
    - setSkipRaw
    - nss_test::Pkcs11RsaPkcs1WycheproofTest::Pkcs11RsaBaseTestWrap::Verify1
    linkageType: ''
    returnType: void
    signature: void Run(const RsaSignatureTestVector& vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:197,1
    - Dst: ScopedSECKEYPrivateKey::reset
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:199,1
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:199,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:199,1
    - Dst: ScopedSECKEYPublicKey::reset
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:202,1
    - Dst: reset
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:205,1
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:205,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:205,1
    - Dst: reset
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:208,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:211,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:211,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:213,1
    - Dst: std::vector::push_back
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:216,1
    - Dst: std::vector::push_back
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:217,1
    - Dst: std::vector::insert
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:218,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:218,1
    - Dst: std::vector::insert
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:219,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:219,1
    - Dst: std::vector::insert
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:220,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:220,1
    - Dst: std::vector::begin
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:220,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:221,1
    - Dst: std::vector::insert
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:222,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:222,1
    - Dst: std::vector::begin
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:222,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:222,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:223,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:223,1
    - Dst: PK11_PubDecryptRaw
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:229,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:229,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:229,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:229,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:230,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:230,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:231,1
    - Dst: DataBuffer::Allocate
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:235,1
    - Dst: static_cast<size_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:235,1
    - Dst: HASH_ResultLenByOidTag
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:235,1
    - Dst: PK11_HashBuf
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:236,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:236,1
    - Dst: DataBuffer::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:236,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:237,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:237,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:237,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:238,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:239,1
    - Dst: DataBuffer::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:239,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:240,1
    - Dst: DataBuffer::len
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:240,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:241,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:241,1
    - Dst: NSS_OptionSet
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:243,1
    - Dst: VFY_VerifyDigestDirect
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:245,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:245,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:248,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:249,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:249,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:253,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:253,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:255,1
    - Dst: std::vector::push_back
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:258,1
    - Dst: std::vector::push_back
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:259,1
    - Dst: std::vector::insert
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:260,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:260,1
    - Dst: std::vector::insert
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:261,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:261,1
    - Dst: std::vector::insert
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:262,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:262,1
    - Dst: std::vector::begin
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:262,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:263,1
    - Dst: std::vector::insert
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:264,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:264,1
    - Dst: std::vector::begin
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:264,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:264,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:265,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:265,1
    - Dst: std::vector::resize
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:268,1
    - Dst: PK11_PubDecryptRaw
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:269,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:269,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:269,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:269,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:270,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:270,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:271,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:274,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:274,1
    - Dst: VFY_VerifyDigestDirect
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:275,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:275,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:278,1
    - Dst: GTEST_SKIP
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 171
    functionDepth: 10
    functionLinenumber: 171
    functionLinenumberEnd: 282
    functionName: nss_test::TEST
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc
    functionUses: 0
    functionsReached:
    - HASH_ResultLenByOidTag
    - std::vector::data
    - PK11_HashBuf
    - ScopedSECKEYPrivateKey::reset
    - ASSERT_TRUE
    - std::vector::size
    - PK11_PubDecryptRaw
    - DataBuffer::data
    - GTEST_SKIP
    - toUcharPtr
    - std::vector::begin
    - reset
    - DataBuffer::len
    - ASSERT_EQ
    - DataBuffer::Allocate
    - VFY_VerifyDigestDirect
    - ScopedSECKEYPublicKey::reset
    - static_cast<unsigned int>
    - std::vector::end
    - static_cast<size_t>
    - NSS_OptionSet
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - ScopedSECKEYPublicKey::get
    - get
    - std::vector::resize
    - PK11_GenerateKeyPair
    - PORT_GetError
    - std::vector::push_back
    - std::vector::insert
    - ScopedSECKEYPrivateKey::get
    linkageType: ''
    returnType: void
    signature: void TEST(RsaPkcs1Test, Pkcs1MinimumPadding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:291,1
    - Dst: SECKEY_DecodeDERSubjectPublicKeyInfo
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:293,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:294,1
    - Dst: SECKEY_ExtractPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:295,1
    - Dst: ScopedCERTSubjectPublicKeyInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:295,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:296,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:298,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:301,1
    - Dst: VFY_VerifyDigestDirect
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:302,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:302,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:305,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:308,1
    - Dst: VFY_VerifyDigestDirect
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:310,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:310,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:314,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 284
    functionDepth: 7
    functionLinenumber: 284
    functionLinenumberEnd: 318
    functionName: nss_test::TEST
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc
    functionUses: 0
    functionsReached:
    - VFY_VerifyDigestDirect
    - ASSERT_TRUE
    - SECKEY_ExtractPublicKey
    - SECKEY_DecodeDERSubjectPublicKeyInfo
    - ScopedCERTSubjectPublicKeyInfo::get
    - toUcharPtr
    - ScopedSECKEYPublicKey::get
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(RsaPkcs1Test, RequireNullParameter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WycheproofHeader
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:321,1
    - Dst: RunGroup
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 324
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapkcs1_unittest.cc
    functionUses: 0
    functionsReached:
    - RunGroup
    - WycheproofHeader
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11RsaPkcs1WycheproofTest, Pkcs11RsaPkcs1WycheproofTest)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - hash
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 41
    functionName: nss_test::DsaHashToComboMech
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_dsa_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_MECHANISM_TYPE
    signature: CK_MECHANISM_TYPE DsaHashToComboMech(SECOidTag hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DsaHashToComboMech
      Src: /src/nss/gtests/pk11_gtest/pk11_dsa_unittest.cc:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - hashOid
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: nss_test::Pkcs11DsaTestBase::Pkcs11DsaTestBase
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_dsa_unittest.cc
    functionUses: 0
    functionsReached:
    - DsaHashToComboMech
    linkageType: ''
    returnType: void
    signature: void Pkcs11DsaTestBase(SECOidTag hashOid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DsaTestVector::public_key::data
      Src: /src/nss/gtests/pk11_gtest/pk11_dsa_unittest.cc:51,1
    - Dst: DsaTestVector::public_key::size
      Src: /src/nss/gtests/pk11_gtest/pk11_dsa_unittest.cc:51,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_dsa_unittest.cc:53,1
    - Dst: DsaTestVector::sig::data
      Src: /src/nss/gtests/pk11_gtest/pk11_dsa_unittest.cc:53,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_dsa_unittest.cc:54,1
    - Dst: DsaTestVector::sig::size
      Src: /src/nss/gtests/pk11_gtest/pk11_dsa_unittest.cc:54,1
    - Dst: DSAU_DecodeDerSigToLen
      Src: /src/nss/gtests/pk11_gtest/pk11_dsa_unittest.cc:56,1
    - Dst: SECKEY_SignatureLen
      Src: /src/nss/gtests/pk11_gtest/pk11_dsa_unittest.cc:56,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_dsa_unittest.cc:56,1
    - Dst: ASSERT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_dsa_unittest.cc:58,1
    - Dst: PORT_ErrorToString
      Src: /src/nss/gtests/pk11_gtest/pk11_dsa_unittest.cc:59,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_dsa_unittest.cc:59,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/pk11_gtest/pk11_dsa_unittest.cc:64,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/pk11_gtest/pk11_dsa_unittest.cc:64,1
    - Dst: DsaTestVector::msg::data
      Src: /src/nss/gtests/pk11_gtest/pk11_dsa_unittest.cc:64,1
    - Dst: DsaTestVector::msg::size
      Src: /src/nss/gtests/pk11_gtest/pk11_dsa_unittest.cc:64,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/pk11_gtest/pk11_dsa_unittest.cc:65,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/pk11_gtest/pk11_dsa_unittest.cc:65,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/pk11_gtest/pk11_dsa_unittest.cc:65,1
    - Dst: nss_test::Pk11SignatureTest::Verify
      Src: /src/nss/gtests/pk11_gtest/pk11_dsa_unittest.cc:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - vec
    argTypes:
    - DsaTestVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 48
    functionDepth: 3
    functionLinenumber: 48
    functionLinenumberEnd: 67
    functionName: nss_test::Pkcs11DsaTestBase::Verify
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_dsa_unittest.cc
    functionUses: 0
    functionsReached:
    - DsaTestVector::msg::size
    - PORT_ErrorToString
    - DsaTestVector::public_key::size
    - DsaTestVector::public_key::data
    - DataBuffer
    - DsaTestVector::sig::size
    - ScopedSECItem::get
    - PORT_GetError
    - DsaTestVector::msg::data
    - static_cast<unsigned int>
    - nss_test::Pk11SignatureTest::Verify
    - DsaTestVector::sig::data
    - SECKEY_SignatureLen
    - ASSERT_FALSE
    - toUcharPtr
    - ScopedSECKEYPublicKey::get
    - DSAU_DecodeDerSigToLen
    linkageType: ''
    returnType: void
    signature: void Verify(const DsaTestVector vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_dsa_unittest.cc:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: nss_test::Pkcs11DsaTest::Pkcs11DsaTest
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_dsa_unittest.cc
    functionUses: 0
    functionsReached:
    - GetParam
    linkageType: ''
    returnType: void
    signature: void Pkcs11DsaTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Verify
      Src: /src/nss/gtests/pk11_gtest/pk11_dsa_unittest.cc:76,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_dsa_unittest.cc:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_dsa_unittest.cc
    functionUses: 0
    functionsReached:
    - Verify
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11DsaTest, WycheproofVectors)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - hash
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 41
    functionName: nss_test::DsaHashToComboMech
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_dsa_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_MECHANISM_TYPE
    signature: CK_MECHANISM_TYPE DsaHashToComboMech(SECOidTag hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DsaHashToComboMech
      Src: /src/nss/gtests/pk11_gtest/pk11_dsa_unittest.cc:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - hashOid
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: nss_test::Pkcs11DsaTestBase::Pkcs11DsaTestBase
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_dsa_unittest.cc
    functionUses: 0
    functionsReached:
    - DsaHashToComboMech
    linkageType: ''
    returnType: void
    signature: void Pkcs11DsaTestBase(SECOidTag hashOid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DsaTestVector::public_key::data
      Src: /src/nss/gtests/pk11_gtest/pk11_dsa_unittest.cc:51,1
    - Dst: DsaTestVector::public_key::size
      Src: /src/nss/gtests/pk11_gtest/pk11_dsa_unittest.cc:51,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_dsa_unittest.cc:53,1
    - Dst: DsaTestVector::sig::data
      Src: /src/nss/gtests/pk11_gtest/pk11_dsa_unittest.cc:53,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_dsa_unittest.cc:54,1
    - Dst: DsaTestVector::sig::size
      Src: /src/nss/gtests/pk11_gtest/pk11_dsa_unittest.cc:54,1
    - Dst: DSAU_DecodeDerSigToLen
      Src: /src/nss/gtests/pk11_gtest/pk11_dsa_unittest.cc:56,1
    - Dst: SECKEY_SignatureLen
      Src: /src/nss/gtests/pk11_gtest/pk11_dsa_unittest.cc:56,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_dsa_unittest.cc:56,1
    - Dst: ASSERT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_dsa_unittest.cc:58,1
    - Dst: PORT_ErrorToString
      Src: /src/nss/gtests/pk11_gtest/pk11_dsa_unittest.cc:59,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_dsa_unittest.cc:59,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/pk11_gtest/pk11_dsa_unittest.cc:64,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/pk11_gtest/pk11_dsa_unittest.cc:64,1
    - Dst: DsaTestVector::msg::data
      Src: /src/nss/gtests/pk11_gtest/pk11_dsa_unittest.cc:64,1
    - Dst: DsaTestVector::msg::size
      Src: /src/nss/gtests/pk11_gtest/pk11_dsa_unittest.cc:64,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/pk11_gtest/pk11_dsa_unittest.cc:65,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/pk11_gtest/pk11_dsa_unittest.cc:65,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/pk11_gtest/pk11_dsa_unittest.cc:65,1
    - Dst: nss_test::Pk11SignatureTest::Verify
      Src: /src/nss/gtests/pk11_gtest/pk11_dsa_unittest.cc:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - vec
    argTypes:
    - DsaTestVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 48
    functionDepth: 3
    functionLinenumber: 48
    functionLinenumberEnd: 67
    functionName: nss_test::Pkcs11DsaTestBase::Verify
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_dsa_unittest.cc
    functionUses: 0
    functionsReached:
    - DsaTestVector::msg::size
    - PORT_ErrorToString
    - DsaTestVector::public_key::size
    - DsaTestVector::public_key::data
    - DataBuffer
    - DsaTestVector::sig::size
    - ScopedSECItem::get
    - PORT_GetError
    - DsaTestVector::msg::data
    - static_cast<unsigned int>
    - nss_test::Pk11SignatureTest::Verify
    - DsaTestVector::sig::data
    - SECKEY_SignatureLen
    - ASSERT_FALSE
    - toUcharPtr
    - ScopedSECKEYPublicKey::get
    - DSAU_DecodeDerSigToLen
    linkageType: ''
    returnType: void
    signature: void Verify(const DsaTestVector vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_dsa_unittest.cc:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: nss_test::Pkcs11DsaTest::Pkcs11DsaTest
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_dsa_unittest.cc
    functionUses: 0
    functionsReached:
    - GetParam
    linkageType: ''
    returnType: void
    signature: void Pkcs11DsaTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Verify
      Src: /src/nss/gtests/pk11_gtest/pk11_dsa_unittest.cc:76,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_dsa_unittest.cc:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_dsa_unittest.cc
    functionUses: 0
    functionsReached:
    - Verify
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11DsaTest, WycheproofVectors)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:32,1
    - Dst: PK11_ImportSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:36,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ikm_item
    argTypes:
    - SECItem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 29
    functionDepth: 6
    functionLinenumber: 29
    functionLinenumberEnd: 39
    functionName: nss_test::Pkcs11IkeTest::ImportKey
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_ImportSymKey
    - ScopedPK11SlotInfo::get
    - ADD_FAILURE
    linkageType: ''
    returnType: ScopedPK11SymKey
    signature: ScopedPK11SymKey ImportKey(SECItem &ikm_item)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: std::to_string
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:42,1
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:43,1
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:44,1
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:45,1
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:46,1
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:47,1
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:48,1
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:49,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:50,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:51,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:51,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:52,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:53,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:53,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:54,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:55,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:55,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:56,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:57,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:57,1
    - Dst: nss_test::Pkcs11IkeTest::ImportKey
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:61,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:68,1
    - Dst: static_cast<CK_ULONG>
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:69,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:69,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:70,1
    - Dst: static_cast<CK_ULONG>
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:71,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:71,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:78,1
    - Dst: static_cast<CK_ULONG>
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:78,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:78,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:79,1
    - Dst: static_cast<CK_ULONG>
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:79,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:79,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:84,1
    - Dst: static_cast<CK_ULONG>
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:85,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:85,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:92,1
    - Dst: static_cast<CK_ULONG>
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:93,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:93,1
    - Dst: nss_test::Pkcs11IkeTest::ImportKey
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:106,1
    - Dst: PK11_GetSymKeyHandle
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:107,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:107,1
    - Dst: nss_test::Pkcs11IkeTest::ImportKey
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:113,1
    - Dst: PK11_GetSymKeyHandle
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:114,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:114,1
    - Dst: nss_test::Pkcs11IkeTest::ImportKey
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:116,1
    - Dst: PK11_GetSymKeyHandle
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:118,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:118,1
    - Dst: nss_test::Pkcs11IkeTest::ImportKey
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:131,1
    - Dst: PK11_GetSymKeyHandle
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:134,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:134,1
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:143,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:146,1
    - Dst: ScopedPK11SymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:148,1
    - Dst: PK11_Derive
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:149,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:149,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:152,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:152,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:153,1
    - Dst: PK11_ExtractKeyValue
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:153,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:153,1
    - Dst: PK11_GetKeyData
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:154,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:154,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:159,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:159,1
    - Dst: PK11_GetKeyData
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:159,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:159,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:161,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:162,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:164,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:164,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 59
    argCount: 2
    argNames:
    - vec
    - prf_mech
    argTypes:
    - IkeTestVector
    - CK_MECHANISM_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 41
    functionDepth: 7
    functionLinenumber: 41
    functionLinenumberEnd: 166
    functionName: nss_test::Pkcs11IkeTest::RunVectorTest
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc
    functionUses: 0
    functionsReached:
    - hex_string_to_bytes
    - ScopedPK11SymKey
    - ASSERT_EQ
    - SECITEM_CompareItem
    - ADD_FAILURE
    - std::vector::data
    - nss_test::Pkcs11IkeTest::ImportKey
    - PK11_GetSymKeyHandle
    - ScopedPK11SymKey::get
    - DataBuffer
    - static_cast<CK_ULONG>
    - std::vector::size
    - static_cast<unsigned int>
    - PK11_Derive
    - PK11_ExtractKeyValue
    - std::to_string
    - PK11_GetKeyData
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void RunVectorTest(const IkeTestVector &vec, CK_MECHANISM_TYPE prf_mech)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RunVectorTest
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:170,1
    - Dst: std::get<0>
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:170,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:170,1
    - Dst: std::get<1>
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:170,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 171
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc
    functionUses: 0
    functionsReached:
    - RunVectorTest
    - std::get<1>
    - std::get<0>
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11IkeTest, IkeproofVectors)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:32,1
    - Dst: PK11_ImportSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:36,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ikm_item
    argTypes:
    - SECItem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 29
    functionDepth: 6
    functionLinenumber: 29
    functionLinenumberEnd: 39
    functionName: nss_test::Pkcs11IkeTest::ImportKey
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc
    functionUses: 1
    functionsReached:
    - PK11_ImportSymKey
    - ScopedPK11SlotInfo::get
    - ADD_FAILURE
    linkageType: ''
    returnType: ScopedPK11SymKey
    signature: ScopedPK11SymKey ImportKey(SECItem &ikm_item)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: std::to_string
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:42,1
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:43,1
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:44,1
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:45,1
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:46,1
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:47,1
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:48,1
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:49,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:50,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:51,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:51,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:52,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:53,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:53,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:54,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:55,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:55,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:56,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:57,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:57,1
    - Dst: nss_test::Pkcs11IkeTest::ImportKey
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:61,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:68,1
    - Dst: static_cast<CK_ULONG>
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:69,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:69,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:70,1
    - Dst: static_cast<CK_ULONG>
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:71,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:71,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:78,1
    - Dst: static_cast<CK_ULONG>
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:78,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:78,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:79,1
    - Dst: static_cast<CK_ULONG>
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:79,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:79,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:84,1
    - Dst: static_cast<CK_ULONG>
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:85,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:85,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:92,1
    - Dst: static_cast<CK_ULONG>
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:93,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:93,1
    - Dst: nss_test::Pkcs11IkeTest::ImportKey
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:106,1
    - Dst: PK11_GetSymKeyHandle
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:107,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:107,1
    - Dst: nss_test::Pkcs11IkeTest::ImportKey
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:113,1
    - Dst: PK11_GetSymKeyHandle
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:114,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:114,1
    - Dst: nss_test::Pkcs11IkeTest::ImportKey
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:116,1
    - Dst: PK11_GetSymKeyHandle
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:118,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:118,1
    - Dst: nss_test::Pkcs11IkeTest::ImportKey
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:131,1
    - Dst: PK11_GetSymKeyHandle
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:134,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:134,1
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:143,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:146,1
    - Dst: ScopedPK11SymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:148,1
    - Dst: PK11_Derive
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:149,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:149,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:152,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:152,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:153,1
    - Dst: PK11_ExtractKeyValue
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:153,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:153,1
    - Dst: PK11_GetKeyData
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:154,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:154,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:159,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:159,1
    - Dst: PK11_GetKeyData
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:159,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:159,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:161,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:162,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:164,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:164,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 59
    argCount: 2
    argNames:
    - vec
    - prf_mech
    argTypes:
    - IkeTestVector
    - CK_MECHANISM_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 41
    functionDepth: 7
    functionLinenumber: 41
    functionLinenumberEnd: 166
    functionName: nss_test::Pkcs11IkeTest::RunVectorTest
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc
    functionUses: 0
    functionsReached:
    - hex_string_to_bytes
    - ScopedPK11SymKey
    - ASSERT_EQ
    - SECITEM_CompareItem
    - ADD_FAILURE
    - std::vector::data
    - nss_test::Pkcs11IkeTest::ImportKey
    - PK11_GetSymKeyHandle
    - ScopedPK11SymKey::get
    - DataBuffer
    - static_cast<CK_ULONG>
    - std::vector::size
    - static_cast<unsigned int>
    - PK11_Derive
    - PK11_ExtractKeyValue
    - std::to_string
    - PK11_GetKeyData
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void RunVectorTest(const IkeTestVector &vec, CK_MECHANISM_TYPE prf_mech)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RunVectorTest
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:170,1
    - Dst: std::get<0>
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:170,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:170,1
    - Dst: std::get<1>
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:170,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 171
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_ike_unittest.cc
    functionUses: 0
    functionsReached:
    - RunVectorTest
    - std::get<1>
    - std::get<0>
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11IkeTest, IkeproofVectors)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GenerateRandom
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:24,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:24,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:24,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:25,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:27,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:27,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:27,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:28,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 20
    functionDepth: 9
    functionLinenumber: 20
    functionLinenumberEnd: 31
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NE
    - std::vector::data
    - std::vector::size
    - PK11_GenerateRandom
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(PK11PrngTest, Fuzz_DetPRNG)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:39,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:39,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:41,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:41,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:41,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:42,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:44,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:44,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:46,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:46,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:46,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:47,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 35
    functionDepth: 9
    functionLinenumber: 35
    functionLinenumberEnd: 50
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc
    functionUses: 0
    functionsReached:
    - std::vector::data
    - std::vector::size
    - PK11_GenerateRandom
    - EXPECT_EQ
    - RNG_RandomUpdate
    linkageType: ''
    returnType: void
    signature: void TEST_F(PK11PrngTest, Fuzz_DetPRNG_Reset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:57,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:57,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:59,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:59,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:59,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:60,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:62,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:62,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:62,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:63,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:65,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:65,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:67,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:67,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:67,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:68,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:70,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:70,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:70,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:71,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 53
    functionDepth: 9
    functionLinenumber: 53
    functionLinenumberEnd: 74
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc
    functionUses: 0
    functionsReached:
    - std::vector::data
    - std::vector::size
    - PK11_GenerateRandom
    - EXPECT_EQ
    - RNG_RandomUpdate
    linkageType: ''
    returnType: void
    signature: void TEST_F(PK11PrngTest, Fuzz_DetPRNG_StatefulReset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_RandomUpdate
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:81,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:81,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:81,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:82,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:84,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:84,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:84,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:85,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:87,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:87,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:87,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:88,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 76
    functionDepth: 9
    functionLinenumber: 76
    functionLinenumberEnd: 91
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NE
    - std::vector::data
    - std::vector::size
    - PK11_GenerateRandom
    - PK11_RandomUpdate
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(PK11PrngTest, Fuzz_DetPRNG_Seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_RandomUpdate
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:98,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:98,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:98,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:99,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:101,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:101,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:101,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:102,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:104,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:104,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:104,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:105,1
    - Dst: PK11_RandomUpdate
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:107,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:107,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:107,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:108,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:110,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:110,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:110,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:111,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:113,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:113,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:113,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:114,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 93
    functionDepth: 9
    functionLinenumber: 93
    functionLinenumberEnd: 117
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc
    functionUses: 0
    functionsReached:
    - std::vector::data
    - std::vector::size
    - PK11_GenerateRandom
    - PK11_RandomUpdate
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(PK11PrngTest, Fuzz_DetPRNG_StatefulReset_Seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GenerateRandom
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:24,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:24,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:24,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:25,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:27,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:27,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:27,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:28,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 20
    functionDepth: 9
    functionLinenumber: 20
    functionLinenumberEnd: 31
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NE
    - std::vector::data
    - std::vector::size
    - PK11_GenerateRandom
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(PK11PrngTest, Fuzz_DetPRNG)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:39,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:39,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:41,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:41,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:41,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:42,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:44,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:44,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:46,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:46,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:46,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:47,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 35
    functionDepth: 9
    functionLinenumber: 35
    functionLinenumberEnd: 50
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc
    functionUses: 0
    functionsReached:
    - std::vector::data
    - std::vector::size
    - PK11_GenerateRandom
    - EXPECT_EQ
    - RNG_RandomUpdate
    linkageType: ''
    returnType: void
    signature: void TEST_F(PK11PrngTest, Fuzz_DetPRNG_Reset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:57,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:57,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:59,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:59,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:59,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:60,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:62,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:62,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:62,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:63,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:65,1
    - Dst: RNG_RandomUpdate
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:65,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:67,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:67,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:67,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:68,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:70,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:70,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:70,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:71,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 53
    functionDepth: 9
    functionLinenumber: 53
    functionLinenumberEnd: 74
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc
    functionUses: 0
    functionsReached:
    - std::vector::data
    - std::vector::size
    - PK11_GenerateRandom
    - EXPECT_EQ
    - RNG_RandomUpdate
    linkageType: ''
    returnType: void
    signature: void TEST_F(PK11PrngTest, Fuzz_DetPRNG_StatefulReset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_RandomUpdate
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:81,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:81,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:81,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:82,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:84,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:84,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:84,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:85,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:87,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:87,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:87,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:88,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 76
    functionDepth: 9
    functionLinenumber: 76
    functionLinenumberEnd: 91
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NE
    - std::vector::data
    - std::vector::size
    - PK11_GenerateRandom
    - PK11_RandomUpdate
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(PK11PrngTest, Fuzz_DetPRNG_Seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_RandomUpdate
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:98,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:98,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:98,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:99,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:101,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:101,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:101,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:102,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:104,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:104,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:104,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:105,1
    - Dst: PK11_RandomUpdate
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:107,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:107,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:107,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:108,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:110,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:110,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:110,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:111,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:113,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:113,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:113,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:114,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 93
    functionDepth: 9
    functionLinenumber: 93
    functionLinenumberEnd: 117
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_prng_unittest.cc
    functionUses: 0
    functionsReached:
    - std::vector::data
    - std::vector::size
    - PK11_GenerateRandom
    - PK11_RandomUpdate
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(PK11PrngTest, Fuzz_DetPRNG_StatefulReset_Seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WycheproofHeader
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:32,1
    - Dst: nss_test::RsaOaepWycheproofTest::RunGroup
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' file'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: nss_test::RsaOaepWycheproofTest::Run
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc
    functionUses: 0
    functionsReached:
    - nss_test::RsaOaepWycheproofTest::RunGroup
    - WycheproofHeader
    linkageType: ''
    returnType: void
    signature: void Run(const std::string& file)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:42,1
    - Dst: label::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:42,1
    - Dst: label::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:43,1
    - Dst: nss_test::RsaOaepWycheproofTest::HashOidToHashMech
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:45,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:47,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:47,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:48,1
    - Dst: PR_MAX
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:50,1
    - Dst: ct::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:50,1
    - Dst: PK11_PrivDecrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:52,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:53,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:53,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:54,1
    - Dst: ct::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:54,1
    - Dst: ct::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:54,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:57,1
    - Dst: std::vector::resize
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:58,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:59,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - ' priv_key'
    - hash_oid
    - mgf_hash
    - ' vec'
    argTypes:
    - ScopedSECKEYPrivateKey
    - SECOidTag
    - CK_RSA_PKCS_MGF_TYPE
    - RsaOaepTestVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 36
    functionDepth: 8
    functionLinenumber: 36
    functionLinenumberEnd: 63
    functionName: nss_test::RsaOaepWycheproofTest::TestDecrypt
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc
    functionUses: 0
    functionsReached:
    - label::data
    - std::vector::resize
    - std::vector::data
    - ct::data
    - label::size
    - PK11_PrivDecrypt
    - std::vector::size
    - static_cast<unsigned int>
    - const_cast<unsigned char*>
    - reinterpret_cast<uint8_t*>
    - ct::size
    - nss_test::RsaOaepWycheproofTest::HashOidToHashMech
    - toUcharPtr
    - get
    - EXPECT_EQ
    - PR_MAX
    linkageType: ''
    returnType: void
    signature: "void TestDecrypt(ScopedSECKEYPrivateKey& priv_key, SECOidTag hash_oid,\n
      \                  CK_RSA_PKCS_MGF_TYPE mgf_hash,\n                   const
      RsaOaepTestVector& vec)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: NextItem
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:72,1
    - Dst: ReadLabel
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:73,1
    - Dst: SkipValue
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:80,1
    - Dst: ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:82,1
    - Dst: nss_test::RsaOaepWycheproofTest::LoadPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:83,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:85,1
    - Dst: ReadString
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:85,1
    - Dst: nss_test::RsaOaepWycheproofTest::HashOidToHashMech
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:87,1
    - Dst: ReadHash
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:87,1
    - Dst: ReadHash
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:89,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:91,1
    - Dst: ReadString
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:91,1
    - Dst: WycheproofReadTests
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:93,1
    - Dst: FAIL
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:95,1
    - Dst: nss_test::RsaOaepWycheproofTest::TestDecrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:100,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 31
    argCount: 1
    argNames:
    - ' r'
    argTypes:
    - JsonReader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 66
    functionDepth: 9
    functionLinenumber: 66
    functionLinenumberEnd: 102
    functionName: nss_test::RsaOaepWycheproofTest::RunGroup
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc
    functionUses: 1
    functionsReached:
    - NextItem
    - ASSERT_EQ
    - FAIL
    - WycheproofReadTests
    - nss_test::RsaOaepWycheproofTest::LoadPrivateKey
    - ReadHex
    - SkipValue
    - nss_test::RsaOaepWycheproofTest::TestDecrypt
    - ReadLabel
    - nss_test::RsaOaepWycheproofTest::HashOidToHashMech
    - ReadHash
    - ReadString
    linkageType: ''
    returnType: void
    signature: void RunGroup(JsonReader& r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:105,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:105,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:106,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:106,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:109,1
    - Dst: PK11_ImportDERPrivateKeyInfoAndReturnKey
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:112,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:113,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:115,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:116,1
    - Dst: ScopedSECKEYPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' priv_key'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 119
    functionName: nss_test::RsaOaepWycheproofTest::LoadPrivateKey
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc
    functionUses: 1
    functionsReached:
    - EXPECT_NE
    - size
    - static_cast<unsigned int>
    - ScopedSECKEYPrivateKey
    - toUcharPtr
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - PK11_ImportDERPrivateKeyInfoAndReturnKey
    - data
    linkageType: ''
    returnType: ScopedSECKEYPrivateKey
    signature: ScopedSECKEYPrivateKey LoadPrivateKey(const std::vector<uint8_t>& priv_key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:124,1
    - Dst: ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:126,1
    - Dst: ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:128,1
    - Dst: FAIL
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:130,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - ' t'
    - ' n'
    - ' r'
    argTypes:
    - RsaOaepTestVector
    - std::string
    - JsonReader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 132
    functionName: nss_test::RsaOaepWycheproofTest::ReadTestAttr
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc
    functionUses: 0
    functionsReached:
    - FAIL
    - ReadHex
    linkageType: ''
    returnType: void
    signature: "void ReadTestAttr(RsaOaepTestVector& t, const std::string& n,\n                           JsonReader&
      r)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - hash_oid
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 150
    functionName: nss_test::RsaOaepWycheproofTest::HashOidToHashMech
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc
    functionUses: 2
    functionsReached:
    - ADD_FAILURE
    linkageType: ''
    returnType: CK_MECHANISM_TYPE
    signature: CK_MECHANISM_TYPE HashOidToHashMech(SECOidTag hash_oid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 155
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(RsaOaepWycheproofTest, RsaOaep2048Sha1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 158
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(RsaOaepWycheproofTest, RsaOaep2048Sha256MgfSha1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 161
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(RsaOaepWycheproofTest, RsaOaep2048Sha256)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 164
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(RsaOaepWycheproofTest, RsaOaep2048Sha384MgfSha1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 167
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(RsaOaepWycheproofTest, RsaOaep2048Sha384)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 170
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(RsaOaepWycheproofTest, RsaOaep2048Sha512MgfSha1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 173
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(RsaOaepWycheproofTest, RsaOaep2048Sha512)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 177
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(RsaOaepWycheproofTest, RsaOaep3072Sha256MgfSha1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 180
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(RsaOaepWycheproofTest, RsaOaep3072Sha256)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 183
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(RsaOaepWycheproofTest, RsaOaep3072Sha512MgfSha1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 186
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(RsaOaepWycheproofTest, RsaOaep3072Sha512)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 190
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(RsaOaepWycheproofTest, RsaOaep4096Sha256MgfSha1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 193
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(RsaOaepWycheproofTest, RsaOaep4096Sha256)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 196
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(RsaOaepWycheproofTest, RsaOaep4096Sha512MgfSha1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 199
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(RsaOaepWycheproofTest, RsaOaep4096Sha512)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 201
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(RsaOaepWycheproofTest, RsaOaepMisc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:216,1
    - Dst: ScopedSECKEYPrivateKey::reset
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:219,1
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:219,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:219,1
    - Dst: ScopedSECKEYPublicKey::reset
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:222,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:224,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:224,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:225,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:225,1
    - Dst: PK11_KeyGen
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:228,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:228,1
    - Dst: PK11_PubWrapSymKeyWithMechanism
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:236,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:236,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:237,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:237,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:238,1
    - Dst: PK11_ExtractKeyValue
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:243,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:243,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:244,1
    - Dst: PK11_GetKeyData
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:247,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:247,1
    - Dst: PK11_PubUnwrapSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:255,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:255,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:255,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:259,1
    - Dst: ScopedPK11SymKey::reset
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:261,1
    - Dst: PK11_ExtractKeyValue
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:262,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:262,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:263,1
    - Dst: PK11_GetKeyData
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:266,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:266,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:267,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:267,1
    - Dst: PK11_PubUnwrapSymKeyWithMechanism
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:270,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:271,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:271,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:273,1
    - Dst: ScopedPK11SymKey::reset
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:275,1
    - Dst: PK11_ExtractKeyValue
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:277,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:277,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:278,1
    - Dst: PK11_GetKeyData
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:281,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:281,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:283,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 203
    functionDepth: 11
    functionLinenumber: 203
    functionLinenumberEnd: 284
    functionName: nss_test::TEST
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - SECITEM_CompareItem
    - PK11_PubWrapSymKeyWithMechanism
    - PK11_PubUnwrapSymKeyWithMechanism
    - PK11_PubUnwrapSymKey
    - ScopedPK11SymKey::get
    - PK11_GenerateKeyPair
    - ScopedSECKEYPublicKey::get
    - ScopedSECKEYPublicKey::reset
    - ScopedSECKEYPrivateKey::reset
    - ScopedSECItem::get
    - ScopedPK11SymKey::reset
    - PK11_ExtractKeyValue
    - PK11_GetKeyData
    - PK11_KeyGen
    - ScopedSECKEYPrivateKey::get
    - ScopedPK11SlotInfo::get
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST(Pkcs11RsaOaepTest, TestOaepWrapUnwrap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WycheproofHeader
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:32,1
    - Dst: nss_test::RsaOaepWycheproofTest::RunGroup
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' file'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 10
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: nss_test::RsaOaepWycheproofTest::Run
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc
    functionUses: 0
    functionsReached:
    - nss_test::RsaOaepWycheproofTest::RunGroup
    - WycheproofHeader
    linkageType: ''
    returnType: void
    signature: void Run(const std::string& file)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:42,1
    - Dst: label::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:42,1
    - Dst: label::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:43,1
    - Dst: nss_test::RsaOaepWycheproofTest::HashOidToHashMech
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:45,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:47,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:47,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:48,1
    - Dst: PR_MAX
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:50,1
    - Dst: ct::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:50,1
    - Dst: PK11_PrivDecrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:52,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:53,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:53,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:54,1
    - Dst: ct::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:54,1
    - Dst: ct::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:54,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:57,1
    - Dst: std::vector::resize
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:58,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:59,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - ' priv_key'
    - hash_oid
    - mgf_hash
    - ' vec'
    argTypes:
    - ScopedSECKEYPrivateKey
    - SECOidTag
    - CK_RSA_PKCS_MGF_TYPE
    - RsaOaepTestVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 36
    functionDepth: 8
    functionLinenumber: 36
    functionLinenumberEnd: 63
    functionName: nss_test::RsaOaepWycheproofTest::TestDecrypt
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc
    functionUses: 1
    functionsReached:
    - label::data
    - std::vector::resize
    - std::vector::data
    - ct::data
    - label::size
    - PK11_PrivDecrypt
    - std::vector::size
    - static_cast<unsigned int>
    - const_cast<unsigned char*>
    - reinterpret_cast<uint8_t*>
    - ct::size
    - nss_test::RsaOaepWycheproofTest::HashOidToHashMech
    - toUcharPtr
    - get
    - EXPECT_EQ
    - PR_MAX
    linkageType: ''
    returnType: void
    signature: "void TestDecrypt(ScopedSECKEYPrivateKey& priv_key, SECOidTag hash_oid,\n
      \                  CK_RSA_PKCS_MGF_TYPE mgf_hash,\n                   const
      RsaOaepTestVector& vec)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: NextItem
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:72,1
    - Dst: ReadLabel
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:73,1
    - Dst: SkipValue
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:80,1
    - Dst: ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:82,1
    - Dst: nss_test::RsaOaepWycheproofTest::LoadPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:83,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:85,1
    - Dst: ReadString
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:85,1
    - Dst: nss_test::RsaOaepWycheproofTest::HashOidToHashMech
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:87,1
    - Dst: ReadHash
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:87,1
    - Dst: ReadHash
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:89,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:91,1
    - Dst: ReadString
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:91,1
    - Dst: WycheproofReadTests
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:93,1
    - Dst: FAIL
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:95,1
    - Dst: nss_test::RsaOaepWycheproofTest::TestDecrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:100,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 31
    argCount: 1
    argNames:
    - ' r'
    argTypes:
    - JsonReader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 66
    functionDepth: 9
    functionLinenumber: 66
    functionLinenumberEnd: 102
    functionName: nss_test::RsaOaepWycheproofTest::RunGroup
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc
    functionUses: 2
    functionsReached:
    - NextItem
    - ASSERT_EQ
    - FAIL
    - WycheproofReadTests
    - nss_test::RsaOaepWycheproofTest::LoadPrivateKey
    - ReadHex
    - SkipValue
    - nss_test::RsaOaepWycheproofTest::TestDecrypt
    - ReadLabel
    - nss_test::RsaOaepWycheproofTest::HashOidToHashMech
    - ReadHash
    - ReadString
    linkageType: ''
    returnType: void
    signature: void RunGroup(JsonReader& r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:105,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:105,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:106,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:106,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:109,1
    - Dst: PK11_ImportDERPrivateKeyInfoAndReturnKey
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:112,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:113,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:115,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:116,1
    - Dst: ScopedSECKEYPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' priv_key'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 119
    functionName: nss_test::RsaOaepWycheproofTest::LoadPrivateKey
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc
    functionUses: 2
    functionsReached:
    - EXPECT_NE
    - size
    - static_cast<unsigned int>
    - ScopedSECKEYPrivateKey
    - toUcharPtr
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - PK11_ImportDERPrivateKeyInfoAndReturnKey
    - data
    linkageType: ''
    returnType: ScopedSECKEYPrivateKey
    signature: ScopedSECKEYPrivateKey LoadPrivateKey(const std::vector<uint8_t>& priv_key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:124,1
    - Dst: ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:126,1
    - Dst: ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:128,1
    - Dst: FAIL
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:130,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - ' t'
    - ' n'
    - ' r'
    argTypes:
    - RsaOaepTestVector
    - std::string
    - JsonReader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 132
    functionName: nss_test::RsaOaepWycheproofTest::ReadTestAttr
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc
    functionUses: 0
    functionsReached:
    - FAIL
    - ReadHex
    linkageType: ''
    returnType: void
    signature: "void ReadTestAttr(RsaOaepTestVector& t, const std::string& n,\n                           JsonReader&
      r)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - hash_oid
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 150
    functionName: nss_test::RsaOaepWycheproofTest::HashOidToHashMech
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc
    functionUses: 4
    functionsReached:
    - ADD_FAILURE
    linkageType: ''
    returnType: CK_MECHANISM_TYPE
    signature: CK_MECHANISM_TYPE HashOidToHashMech(SECOidTag hash_oid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 155
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(RsaOaepWycheproofTest, RsaOaep2048Sha1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 158
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(RsaOaepWycheproofTest, RsaOaep2048Sha256MgfSha1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 161
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(RsaOaepWycheproofTest, RsaOaep2048Sha256)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 164
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(RsaOaepWycheproofTest, RsaOaep2048Sha384MgfSha1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 167
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(RsaOaepWycheproofTest, RsaOaep2048Sha384)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 170
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(RsaOaepWycheproofTest, RsaOaep2048Sha512MgfSha1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 173
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(RsaOaepWycheproofTest, RsaOaep2048Sha512)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 177
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(RsaOaepWycheproofTest, RsaOaep3072Sha256MgfSha1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 180
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(RsaOaepWycheproofTest, RsaOaep3072Sha256)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 183
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(RsaOaepWycheproofTest, RsaOaep3072Sha512MgfSha1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 186
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(RsaOaepWycheproofTest, RsaOaep3072Sha512)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 190
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(RsaOaepWycheproofTest, RsaOaep4096Sha256MgfSha1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 193
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(RsaOaepWycheproofTest, RsaOaep4096Sha256)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 196
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(RsaOaepWycheproofTest, RsaOaep4096Sha512MgfSha1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 199
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(RsaOaepWycheproofTest, RsaOaep4096Sha512)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 201
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(RsaOaepWycheproofTest, RsaOaepMisc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:216,1
    - Dst: ScopedSECKEYPrivateKey::reset
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:219,1
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:219,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:219,1
    - Dst: ScopedSECKEYPublicKey::reset
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:222,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:224,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:224,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:225,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:225,1
    - Dst: PK11_KeyGen
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:228,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:228,1
    - Dst: PK11_PubWrapSymKeyWithMechanism
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:236,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:236,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:237,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:237,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:238,1
    - Dst: PK11_ExtractKeyValue
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:243,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:243,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:244,1
    - Dst: PK11_GetKeyData
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:247,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:247,1
    - Dst: PK11_PubUnwrapSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:255,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:255,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:255,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:259,1
    - Dst: ScopedPK11SymKey::reset
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:261,1
    - Dst: PK11_ExtractKeyValue
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:262,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:262,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:263,1
    - Dst: PK11_GetKeyData
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:266,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:266,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:267,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:267,1
    - Dst: PK11_PubUnwrapSymKeyWithMechanism
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:270,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:271,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:271,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:273,1
    - Dst: ScopedPK11SymKey::reset
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:275,1
    - Dst: PK11_ExtractKeyValue
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:277,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:277,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:278,1
    - Dst: PK11_GetKeyData
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:281,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:281,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:283,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 203
    functionDepth: 11
    functionLinenumber: 203
    functionLinenumberEnd: 284
    functionName: nss_test::TEST
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaoaep_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - SECITEM_CompareItem
    - PK11_PubWrapSymKeyWithMechanism
    - PK11_PubUnwrapSymKeyWithMechanism
    - PK11_PubUnwrapSymKey
    - ScopedPK11SymKey::get
    - PK11_GenerateKeyPair
    - ScopedSECKEYPublicKey::get
    - ScopedSECKEYPublicKey::reset
    - ScopedSECKEYPrivateKey::reset
    - ScopedSECItem::get
    - ScopedPK11SymKey::reset
    - PK11_ExtractKeyValue
    - PK11_GetKeyData
    - PK11_KeyGen
    - ScopedSECKEYPrivateKey::get
    - ScopedPK11SlotInfo::get
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST(Pkcs11RsaOaepTest, TestOaepWrapUnwrap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    functionName: nss_test::Pkcs11ModuleTest::Pkcs11ModuleTest
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Pkcs11ModuleTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:25,1
    - Dst: SECMOD_AddNewModule
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:25,1
    - Dst: PORT_ErrorToName
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:28,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 24
    functionDepth: 11
    functionLinenumber: 24
    functionLinenumberEnd: 29
    functionName: nss_test::Pkcs11ModuleTest::SetUp
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - PORT_GetError
    - SECMOD_AddNewModule
    - PORT_ErrorToName
    linkageType: ''
    returnType: void
    signature: void SetUp() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:33,1
    - Dst: SECMOD_DeleteModule
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:33,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 5
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: nss_test::Pkcs11ModuleTest::TearDown
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc
    functionUses: 0
    functionsReached:
    - SECMOD_DeleteModule
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TearDown() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECMOD_FindModule
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:39,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NE
    - SECMOD_FindModule
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11ModuleTest, LoadUnload)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:46,1
    - Dst: PK11_GetFirstSafe
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:48,1
    - Dst: ScopedPK11SlotList::get
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:48,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:49,1
    - Dst: PK11_GetSlotName
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:59,1
    - Dst: std::vector::push_back
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:60,1
    - Dst: PK11_GetNextSafe
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:62,1
    - Dst: ScopedPK11SlotList::get
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:62,1
    - Dst: std::sort
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:65,1
    - Dst: std::vector::begin
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:65,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:65,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:66,1
    - Dst: std::equal
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:66,1
    - Dst: std::vector::begin
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:66,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:66,1
    - Dst: std::vector::begin
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 43
    functionDepth: 3
    functionLinenumber: 43
    functionLinenumberEnd: 68
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_GetNextSafe
    - EXPECT_TRUE
    - PK11_GetSlotName
    - std::vector::push_back
    - std::sort
    - PK11_GetFirstSafe
    - std::vector::end
    - std::vector::begin
    - ScopedPK11SlotList::get
    - std::equal
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11ModuleTest, ListSlots)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_FindSlotByName
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:74,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:74,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:75,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:76,1
    - Dst: PK11_IsFriendly
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:76,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:76,1
    - Dst: PK11_FindSlotByName
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:79,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:79,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:80,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:81,1
    - Dst: PK11_IsFriendly
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:81,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 70
    functionDepth: 5
    functionLinenumber: 70
    functionLinenumberEnd: 82
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - PK11_IsFriendly
    - EXPECT_TRUE
    - std::string::c_str
    - PK11_FindSlotByName
    - ScopedPK11SlotInfo::get
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11ModuleTest, PublicCertificatesToken)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_FindCertsFromURI
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:89,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:89,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:90,1
    - Dst: ScopedCERTCertList::get
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:90,1
    - Dst: CERT_LIST_HEAD
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:94,1
    - Dst: CERT_LIST_END
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:95,1
    - Dst: CERT_LIST_NEXT
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:95,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:101,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:102,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:104,1
    - Dst: strcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 84
    functionDepth: 8
    functionLinenumber: 84
    functionLinenumberEnd: 106
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NE
    - CERT_LIST_NEXT
    - strcmp
    - CERT_LIST_HEAD
    - ScopedCERTCertList::get
    - CERT_LIST_END
    - std::string::c_str
    - EXPECT_EQ
    - PK11_FindCertsFromURI
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11ModuleTest, PublicCertificatesTokenLookup)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_FindCertsFromURI
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:113,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:113,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:114,1
    - Dst: ScopedCERTCertList::get
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 108
    functionDepth: 8
    functionLinenumber: 108
    functionLinenumberEnd: 115
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc
    functionUses: 0
    functionsReached:
    - std::string::c_str
    - EXPECT_EQ
    - ScopedCERTCertList::get
    - PK11_FindCertsFromURI
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11ModuleTest, PublicCertificatesTokenLookupNoMatch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 124
    functionName: nss_test::Pkcs11NonAsciiTest::Pkcs11NonAsciiTest
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Pkcs11NonAsciiTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SearchPathW
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:129,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:131,1
    - Dst: wcscpy
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:132,1
    - Dst: wcscpy
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:133,1
    - Dst: CopyFileW
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:134,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:135,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:136,1
    - Dst: SECMOD_AddNewModule
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:137,1
    - Dst: PORT_ErrorToName
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:140,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 126
    functionDepth: 11
    functionLinenumber: 126
    functionLinenumberEnd: 141
    functionName: nss_test::Pkcs11NonAsciiTest::SetUp
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - SECMOD_AddNewModule
    - PORT_GetError
    - wcscpy
    - SearchPathW
    - ASSERT_TRUE
    - PORT_ErrorToName
    - CopyFileW
    linkageType: ''
    returnType: void
    signature: void SetUp() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:145,1
    - Dst: SECMOD_DeleteModule
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:145,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:146,1
    - Dst: DeleteFileW
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:147,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 143
    functionDepth: 5
    functionLinenumber: 143
    functionLinenumberEnd: 149
    functionName: nss_test::Pkcs11NonAsciiTest::TearDown
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc
    functionUses: 0
    functionsReached:
    - SECMOD_DeleteModule
    - ASSERT_EQ
    - DeleteFileW
    - ASSERT_TRUE
    linkageType: ''
    returnType: void
    signature: void TearDown() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECMOD_FindModule
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:153,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 155
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NE
    - SECMOD_FindModule
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11NonAsciiTest, LoadUnload)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 160
    functionName: nss_test::Pkcs11ModuleLoadFunctionTest::Pkcs11ModuleLoadFunctionTest
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Pkcs11ModuleLoadFunctionTest()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_UnloadLibrary
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 166
    functionName: nss_test::Pkcs11ModuleLoadFunctionTest::TearDown
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc
    functionUses: 0
    functionsReached:
    - PR_UnloadLibrary
    linkageType: ''
    returnType: void
    signature: void TearDown() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ppFunctionList
    argTypes:
    - CK_FUNCTION_LIST_PTR_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 172
    functionName: nss_test::NotSuppoted_GetFunctionList
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV NotSuppoted_GetFunctionList(CK_FUNCTION_LIST_PTR_PTR ppFunctionList)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ppFunctionList
    argTypes:
    - CK_FUNCTION_LIST_PTR_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 177
    functionName: nss_test::SupportedButNull
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV SupportedButNull(CK_FUNCTION_LIST_PTR_PTR ppFunctionList)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECMOD_LoadUserModuleWithFunction
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:181,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:182,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 179
    functionDepth: 4
    functionLinenumber: 179
    functionLinenumberEnd: 184
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NE
    - SECMOD_LoadUserModuleWithFunction
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11ModuleLoadFunctionTest, LoadModuleWithNullFunc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECMOD_LoadUserModuleWithFunction
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:187,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 186
    functionDepth: 4
    functionLinenumber: 186
    functionLinenumberEnd: 190
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc
    functionUses: 0
    functionsReached:
    - SECMOD_LoadUserModuleWithFunction
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11ModuleLoadFunctionTest, LoadModuleWithUnsupportedFunc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECMOD_LoadUserModuleWithFunction
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:193,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:195,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 192
    functionDepth: 4
    functionLinenumber: 192
    functionLinenumberEnd: 197
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NE
    - SECMOD_LoadUserModuleWithFunction
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11ModuleLoadFunctionTest, LoadModuleWithEmptyFunctionList)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LoadLibrary
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:200,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:201,1
    - Dst: PR_FindSymbol
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:204,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:205,1
    - Dst: SECMOD_LoadUserModuleWithFunction
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:208,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:209,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:210,1
    - Dst: SECMOD_FindModule
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:213,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:214,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:217,1
    - Dst: PK11_GetModInfo
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:217,1
    - Dst: ScopedSECMODModule::get
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:217,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:221,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:222,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:224,1
    - Dst: PORT_Memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:225,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:227,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:229,1
    - Dst: PORT_Memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:230,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:232,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:233,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:235,1
    - Dst: SECMOD_UnloadUserModule
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:235,1
    - Dst: ScopedSECMODModule::get
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 199
    functionDepth: 4
    functionLinenumber: 199
    functionLinenumberEnd: 236
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NE
    - ScopedSECMODModule::get
    - SECMOD_UnloadUserModule
    - PR_LoadLibrary
    - PORT_Memcmp
    - PK11_GetModInfo
    - SECMOD_FindModule
    - SECMOD_LoadUserModuleWithFunction
    - PR_FindSymbol
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11ModuleLoadFunctionTest, SuccessLoadModuleWithFunction)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    functionName: nss_test::Pkcs11ModuleTest::Pkcs11ModuleTest
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Pkcs11ModuleTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:25,1
    - Dst: SECMOD_AddNewModule
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:25,1
    - Dst: PORT_ErrorToName
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:28,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 24
    functionDepth: 11
    functionLinenumber: 24
    functionLinenumberEnd: 29
    functionName: nss_test::Pkcs11ModuleTest::SetUp
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - PORT_GetError
    - SECMOD_AddNewModule
    - PORT_ErrorToName
    linkageType: ''
    returnType: void
    signature: void SetUp() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:33,1
    - Dst: SECMOD_DeleteModule
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:33,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 5
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: nss_test::Pkcs11ModuleTest::TearDown
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc
    functionUses: 0
    functionsReached:
    - SECMOD_DeleteModule
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TearDown() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECMOD_FindModule
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:39,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NE
    - SECMOD_FindModule
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11ModuleTest, LoadUnload)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:46,1
    - Dst: PK11_GetFirstSafe
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:48,1
    - Dst: ScopedPK11SlotList::get
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:48,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:49,1
    - Dst: PK11_GetSlotName
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:59,1
    - Dst: std::vector::push_back
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:60,1
    - Dst: PK11_GetNextSafe
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:62,1
    - Dst: ScopedPK11SlotList::get
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:62,1
    - Dst: std::sort
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:65,1
    - Dst: std::vector::begin
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:65,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:65,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:66,1
    - Dst: std::equal
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:66,1
    - Dst: std::vector::begin
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:66,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:66,1
    - Dst: std::vector::begin
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 43
    functionDepth: 3
    functionLinenumber: 43
    functionLinenumberEnd: 68
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_GetNextSafe
    - EXPECT_TRUE
    - PK11_GetSlotName
    - std::vector::push_back
    - std::sort
    - PK11_GetFirstSafe
    - std::vector::end
    - std::vector::begin
    - ScopedPK11SlotList::get
    - std::equal
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11ModuleTest, ListSlots)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_FindSlotByName
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:74,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:74,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:75,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:76,1
    - Dst: PK11_IsFriendly
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:76,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:76,1
    - Dst: PK11_FindSlotByName
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:79,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:79,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:80,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:81,1
    - Dst: PK11_IsFriendly
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:81,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 70
    functionDepth: 5
    functionLinenumber: 70
    functionLinenumberEnd: 82
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - PK11_IsFriendly
    - EXPECT_TRUE
    - std::string::c_str
    - PK11_FindSlotByName
    - ScopedPK11SlotInfo::get
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11ModuleTest, PublicCertificatesToken)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_FindCertsFromURI
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:89,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:89,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:90,1
    - Dst: ScopedCERTCertList::get
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:90,1
    - Dst: CERT_LIST_HEAD
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:94,1
    - Dst: CERT_LIST_END
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:95,1
    - Dst: CERT_LIST_NEXT
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:95,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:101,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:102,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:104,1
    - Dst: strcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 84
    functionDepth: 8
    functionLinenumber: 84
    functionLinenumberEnd: 106
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NE
    - CERT_LIST_NEXT
    - strcmp
    - CERT_LIST_HEAD
    - ScopedCERTCertList::get
    - CERT_LIST_END
    - std::string::c_str
    - EXPECT_EQ
    - PK11_FindCertsFromURI
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11ModuleTest, PublicCertificatesTokenLookup)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_FindCertsFromURI
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:113,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:113,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:114,1
    - Dst: ScopedCERTCertList::get
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 108
    functionDepth: 8
    functionLinenumber: 108
    functionLinenumberEnd: 115
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc
    functionUses: 0
    functionsReached:
    - std::string::c_str
    - EXPECT_EQ
    - ScopedCERTCertList::get
    - PK11_FindCertsFromURI
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11ModuleTest, PublicCertificatesTokenLookupNoMatch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 124
    functionName: nss_test::Pkcs11NonAsciiTest::Pkcs11NonAsciiTest
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Pkcs11NonAsciiTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SearchPathW
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:129,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:131,1
    - Dst: wcscpy
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:132,1
    - Dst: wcscpy
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:133,1
    - Dst: CopyFileW
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:134,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:135,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:136,1
    - Dst: SECMOD_AddNewModule
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:137,1
    - Dst: PORT_ErrorToName
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:140,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 126
    functionDepth: 11
    functionLinenumber: 126
    functionLinenumberEnd: 141
    functionName: nss_test::Pkcs11NonAsciiTest::SetUp
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - SECMOD_AddNewModule
    - PORT_GetError
    - wcscpy
    - SearchPathW
    - ASSERT_TRUE
    - PORT_ErrorToName
    - CopyFileW
    linkageType: ''
    returnType: void
    signature: void SetUp() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:145,1
    - Dst: SECMOD_DeleteModule
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:145,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:146,1
    - Dst: DeleteFileW
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:147,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 143
    functionDepth: 5
    functionLinenumber: 143
    functionLinenumberEnd: 149
    functionName: nss_test::Pkcs11NonAsciiTest::TearDown
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc
    functionUses: 0
    functionsReached:
    - SECMOD_DeleteModule
    - ASSERT_EQ
    - DeleteFileW
    - ASSERT_TRUE
    linkageType: ''
    returnType: void
    signature: void TearDown() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECMOD_FindModule
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:153,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 155
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NE
    - SECMOD_FindModule
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11NonAsciiTest, LoadUnload)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 160
    functionName: nss_test::Pkcs11ModuleLoadFunctionTest::Pkcs11ModuleLoadFunctionTest
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Pkcs11ModuleLoadFunctionTest()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PR_UnloadLibrary
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 166
    functionName: nss_test::Pkcs11ModuleLoadFunctionTest::TearDown
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc
    functionUses: 0
    functionsReached:
    - PR_UnloadLibrary
    linkageType: ''
    returnType: void
    signature: void TearDown() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ppFunctionList
    argTypes:
    - CK_FUNCTION_LIST_PTR_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 172
    functionName: nss_test::NotSuppoted_GetFunctionList
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV NotSuppoted_GetFunctionList(CK_FUNCTION_LIST_PTR_PTR ppFunctionList)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ppFunctionList
    argTypes:
    - CK_FUNCTION_LIST_PTR_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 177
    functionName: nss_test::SupportedButNull
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV SupportedButNull(CK_FUNCTION_LIST_PTR_PTR ppFunctionList)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECMOD_LoadUserModuleWithFunction
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:181,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:182,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 179
    functionDepth: 4
    functionLinenumber: 179
    functionLinenumberEnd: 184
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NE
    - SECMOD_LoadUserModuleWithFunction
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11ModuleLoadFunctionTest, LoadModuleWithNullFunc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECMOD_LoadUserModuleWithFunction
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:187,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 186
    functionDepth: 4
    functionLinenumber: 186
    functionLinenumberEnd: 190
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc
    functionUses: 0
    functionsReached:
    - SECMOD_LoadUserModuleWithFunction
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11ModuleLoadFunctionTest, LoadModuleWithUnsupportedFunc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECMOD_LoadUserModuleWithFunction
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:193,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:195,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 192
    functionDepth: 4
    functionLinenumber: 192
    functionLinenumberEnd: 197
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NE
    - SECMOD_LoadUserModuleWithFunction
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11ModuleLoadFunctionTest, LoadModuleWithEmptyFunctionList)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_LoadLibrary
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:200,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:201,1
    - Dst: PR_FindSymbol
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:204,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:205,1
    - Dst: SECMOD_LoadUserModuleWithFunction
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:208,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:209,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:210,1
    - Dst: SECMOD_FindModule
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:213,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:214,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:217,1
    - Dst: PK11_GetModInfo
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:217,1
    - Dst: ScopedSECMODModule::get
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:217,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:221,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:222,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:224,1
    - Dst: PORT_Memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:225,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:227,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:229,1
    - Dst: PORT_Memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:230,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:232,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:233,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:235,1
    - Dst: SECMOD_UnloadUserModule
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:235,1
    - Dst: ScopedSECMODModule::get
      Src: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 199
    functionDepth: 4
    functionLinenumber: 199
    functionLinenumberEnd: 236
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_module_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NE
    - ScopedSECMODModule::get
    - SECMOD_UnloadUserModule
    - PR_LoadLibrary
    - PORT_Memcmp
    - PK11_GetModInfo
    - SECMOD_FindModule
    - SECMOD_LoadUserModuleWithFunction
    - PR_FindSymbol
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11ModuleLoadFunctionTest, SuccessLoadModuleWithFunction)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_KeyGen
      Src: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc:24,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc:24,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc:25,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc:30,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc:31,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc:31,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc:35,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc:35,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc:35,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc:36,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc:36,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' iv'
    - mech
    argTypes:
    - std::vector<uint8_t>
    - CK_MECHANISM_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 19
    functionDepth: 5
    functionLinenumber: 19
    functionLinenumberEnd: 37
    functionName: nss_test::Pkcs11DesTest::EncryptWithIV
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - std::vector::data
    - EXPECT_TRUE
    - ScopedPK11SymKey::get
    - size
    - std::vector::size
    - static_cast<unsigned int>
    - PK11_KeyGen
    - ScopedPK11SlotInfo::get
    - data
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus EncryptWithIV(std::vector<uint8_t>& iv,\n                          const
      CK_MECHANISM_TYPE mech)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc:42,1
    - Dst: EncryptWithIV
      Src: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc:42,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc:43,1
    - Dst: EncryptWithIV
      Src: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - EncryptWithIV
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11DesTest, ZeroLengthIV)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc:48,1
    - Dst: EncryptWithIV
      Src: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc:48,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc:49,1
    - Dst: EncryptWithIV
      Src: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - EncryptWithIV
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11DesTest, IVTooShort)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc:55,1
    - Dst: EncryptWithIV
      Src: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc:55,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc:56,1
    - Dst: EncryptWithIV
      Src: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 57
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - EncryptWithIV
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11DesTest, WrongLengthIV)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc:61,1
    - Dst: EncryptWithIV
      Src: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc:61,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc:62,1
    - Dst: EncryptWithIV
      Src: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - EncryptWithIV
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11DesTest, AllGood)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_KeyGen
      Src: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc:24,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc:24,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc:25,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc:30,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc:31,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc:31,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc:35,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc:35,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc:35,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc:36,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc:36,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' iv'
    - mech
    argTypes:
    - std::vector<uint8_t>
    - CK_MECHANISM_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 19
    functionDepth: 5
    functionLinenumber: 19
    functionLinenumberEnd: 37
    functionName: nss_test::Pkcs11DesTest::EncryptWithIV
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - std::vector::data
    - EXPECT_TRUE
    - ScopedPK11SymKey::get
    - size
    - std::vector::size
    - static_cast<unsigned int>
    - PK11_KeyGen
    - ScopedPK11SlotInfo::get
    - data
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus EncryptWithIV(std::vector<uint8_t>& iv,\n                          const
      CK_MECHANISM_TYPE mech)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc:42,1
    - Dst: EncryptWithIV
      Src: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc:42,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc:43,1
    - Dst: EncryptWithIV
      Src: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - EncryptWithIV
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11DesTest, ZeroLengthIV)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc:48,1
    - Dst: EncryptWithIV
      Src: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc:48,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc:49,1
    - Dst: EncryptWithIV
      Src: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - EncryptWithIV
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11DesTest, IVTooShort)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc:55,1
    - Dst: EncryptWithIV
      Src: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc:55,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc:56,1
    - Dst: EncryptWithIV
      Src: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 57
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - EncryptWithIV
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11DesTest, WrongLengthIV)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc:61,1
    - Dst: EncryptWithIV
      Src: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc:61,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc:62,1
    - Dst: EncryptWithIV
      Src: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_des_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - EncryptWithIV
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11DesTest, AllGood)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:38,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:42,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:42,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:43,1
    - Dst: len
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:43,1
    - Dst: PK11_ImportDERPrivateKeyInfoAndReturnKey
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:46,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:47,1
    - Dst: ScopedSECKEYPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ' pkcs8'
    argTypes:
    - DataBuffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 55
    functionName: nss_test::Pkcs11X25519Test::ImportPrivateKey
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc
    functionUses: 0
    functionsReached:
    - ADD_FAILURE
    - toUcharPtr
    - static_cast<unsigned int>
    - ScopedSECKEYPrivateKey
    - len
    - ScopedPK11SlotInfo::get
    - PK11_ImportDERPrivateKeyInfoAndReturnKey
    - data
    linkageType: ''
    returnType: ScopedSECKEYPrivateKey
    signature: ScopedSECKEYPrivateKey ImportPrivateKey(const DataBuffer& pkcs8)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_ExportDERPrivateKeyInfo
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:58,1
    - Dst: ScopedSECKEYPrivateKey*::get
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:58,1
    - Dst: Assign
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - key
    - ' pkcs8'
    argTypes:
    - ScopedSECKEYPrivateKey*
    - DataBuffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 64
    functionName: nss_test::Pkcs11X25519Test::ExportPrivateKey
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc
    functionUses: 0
    functionsReached:
    - ScopedSECKEYPrivateKey*::get
    - Assign
    - PK11_ExportDERPrivateKeyInfo
    linkageType: ''
    returnType: bool
    signature: bool ExportPrivateKey(ScopedSECKEYPrivateKey* key, DataBuffer& pkcs8)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:67,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:67,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:68,1
    - Dst: len
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:68,1
    - Dst: SECKEY_DecodeDERSubjectPublicKeyInfo
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:71,1
    - Dst: ScopedSECKEYPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:76,1
    - Dst: SECKEY_ExtractPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:76,1
    - Dst: ScopedCERTSubjectPublicKeyInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' spki'
    argTypes:
    - DataBuffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 66
    functionDepth: 4
    functionLinenumber: 66
    functionLinenumberEnd: 77
    functionName: nss_test::Pkcs11X25519Test::ImportPublicKey
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc
    functionUses: 0
    functionsReached:
    - toUcharPtr
    - static_cast<unsigned int>
    - SECKEY_DecodeDERSubjectPublicKeyInfo
    - SECKEY_ExtractPublicKey
    - ScopedCERTSubjectPublicKeyInfo::get
    - len
    - data
    - ScopedSECKEYPublicKey
    linkageType: ''
    returnType: ScopedSECKEYPublicKey
    signature: ScopedSECKEYPublicKey ImportPublicKey(const DataBuffer& spki)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - algorithm
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 86
    functionName: nss_test::Pkcs11X25519Test::CheckAlgIsX25519
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc
    functionUses: 0
    functionsReached:
    - SECOID_FindOIDTag
    linkageType: ''
    returnType: bool
    signature: bool CheckAlgIsX25519(SECItem* algorithm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ImportPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:91,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:91,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:92,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:92,1
    - Dst: PK11_ExportPrivKeyInfo
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:94,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:94,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:95,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:97,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:98,1
    - Dst: CheckAlgIsX25519
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:98,1
    - Dst: ExportPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:99,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:100,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:100,1
    - Dst: SECKEY_DestroyPrivateKeyInfo
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 89
    functionDepth: 6
    functionLinenumber: 89
    functionLinenumberEnd: 103
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc
    functionUses: 0
    functionsReached:
    - ImportPrivateKey
    - ASSERT_EQ
    - SECKEY_DestroyPrivateKeyInfo
    - CheckAlgIsX25519
    - ExportPrivateKey
    - PK11_ExportPrivKeyInfo
    - ASSERT_TRUE
    - GetParam
    - ScopedSECKEYPrivateKey::get
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11X25519Test, ImportExportPkcs8)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ImportPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:107,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:107,1
    - Dst: SECKEY_EncodeDERSubjectPublicKeyInfo
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:109,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:109,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:110,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:111,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:111,1
    - Dst: len
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:111,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:112,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:112,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:112,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 105
    functionDepth: 5
    functionLinenumber: 105
    functionLinenumberEnd: 113
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - memcmp
    - SECKEY_EncodeDERSubjectPublicKeyInfo
    - ASSERT_TRUE
    - ImportPublicKey
    - GetParam
    - len
    - ScopedSECKEYPublicKey::get
    - data
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11X25519Test, ImportExportSpki)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ImportPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:116,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:116,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:117,1
    - Dst: SECKEY_ConvertToPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:119,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:119,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:120,1
    - Dst: SECKEY_EncodeDERSubjectPublicKeyInfo
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:122,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:122,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:123,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:124,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:124,1
    - Dst: len
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:124,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:125,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:125,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:125,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 115
    functionDepth: 5
    functionLinenumber: 115
    functionLinenumberEnd: 126
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc
    functionUses: 0
    functionsReached:
    - ImportPrivateKey
    - ASSERT_EQ
    - len
    - memcmp
    - ASSERT_TRUE
    - SECKEY_EncodeDERSubjectPublicKeyInfo
    - SECKEY_ConvertToPublicKey
    - GetParam
    - ScopedSECKEYPrivateKey::get
    - ScopedSECKEYPublicKey::get
    - data
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11X25519Test, ImportConvertToPublicExport)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Pkcs11KeyPairGenerator::GenerateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:133,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:134,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:135,1
    - Dst: ExportPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:138,1
    - Dst: ImportPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:140,1
    - Dst: ExportPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:141,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:142,1
    - Dst: SECKEY_EncodeDERSubjectPublicKeyInfo
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:144,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:144,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:145,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:147,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:147,1
    - Dst: ImportPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:149,1
    - Dst: SECKEY_EncodeDERSubjectPublicKeyInfo
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:151,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:151,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:152,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:154,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:155,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 128
    functionDepth: 5
    functionLinenumber: 128
    functionLinenumberEnd: 156
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc
    functionUses: 0
    functionsReached:
    - ImportPrivateKey
    - ASSERT_EQ
    - Pkcs11KeyPairGenerator::GenerateKey
    - ExportPrivateKey
    - ScopedSECItem::get
    - memcmp
    - ASSERT_TRUE
    - SECKEY_EncodeDERSubjectPublicKeyInfo
    - ImportPublicKey
    - ScopedSECKEYPublicKey::get
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11X25519Test, GenImportExport)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ImportPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:196,1
    - Dst: ASSERT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 198
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc
    functionUses: 0
    functionsReached:
    - ImportPrivateKey
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11X25519Test, ImportPkcs8BitStringInsteadOfOctetString)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ImportPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:210,1
    - Dst: ASSERT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 212
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc
    functionUses: 0
    functionsReached:
    - ImportPrivateKey
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11X25519Test, ImportPkcs8WrongLen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ImportPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:226,1
    - Dst: ASSERT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 228
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc
    functionUses: 0
    functionsReached:
    - ImportPrivateKey
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11X25519Test, ImportPkcs8NotSupportedOID)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ImportPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:245,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 247
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc
    functionUses: 0
    functionsReached:
    - ImportPrivateKey
    - ASSERT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11X25519Test, ImportPkcs8ShortLenPrivateKey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ImportPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:259,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 261
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc
    functionUses: 0
    functionsReached:
    - ImportPrivateKey
    - ASSERT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11X25519Test, ImportPkcs8ZeroKey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Pkcs11KeyPairGenerator::GenerateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:268,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:269,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:270,1
    - Dst: PK11_ExportPrivKeyInfo
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:272,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:272,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:273,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:275,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:277,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:278,1
    - Dst: CheckAlgIsX25519
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:278,1
    - Dst: SECKEY_CreateSubjectPublicKeyInfo
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:281,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:281,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:282,1
    - Dst: CheckAlgIsX25519
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:282,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:284,1
    - Dst: SECKEY_DestroyPrivateKeyInfo
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 263
    functionDepth: 6
    functionLinenumber: 263
    functionLinenumberEnd: 287
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - Pkcs11KeyPairGenerator::GenerateKey
    - SECKEY_DestroyPrivateKeyInfo
    - CheckAlgIsX25519
    - PK11_ExportPrivKeyInfo
    - ScopedSECKEYPublicKey::get
    - ASSERT_TRUE
    - ScopedSECKEYPrivateKey::get
    - SECKEY_CreateSubjectPublicKeyInfo
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11X25519Test, KeyGeneration)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ImportPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:299,1
    - Dst: ASSERT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 301
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc
    functionUses: 0
    functionsReached:
    - ImportPublicKey
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11X25519Test, ImportExportSpkiWrongLen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ImportPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:313,1
    - Dst: ASSERT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 315
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc
    functionUses: 0
    functionsReached:
    - ImportPublicKey
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11X25519Test, ImportExportSpkiWrongOID)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ImportPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:328,1
    - Dst: ASSERT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 330
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc
    functionUses: 0
    functionsReached:
    - ImportPublicKey
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11X25519Test, ImportExportSpkiWrongKeyID)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ImportPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:341,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 343
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc
    functionUses: 0
    functionsReached:
    - ImportPublicKey
    - ASSERT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11X25519Test, ImportExportSpkiZeroKey)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:38,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:42,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:42,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:43,1
    - Dst: len
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:43,1
    - Dst: PK11_ImportDERPrivateKeyInfoAndReturnKey
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:46,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:47,1
    - Dst: ScopedSECKEYPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ' pkcs8'
    argTypes:
    - DataBuffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 55
    functionName: nss_test::Pkcs11X25519Test::ImportPrivateKey
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc
    functionUses: 0
    functionsReached:
    - ADD_FAILURE
    - toUcharPtr
    - static_cast<unsigned int>
    - ScopedSECKEYPrivateKey
    - len
    - ScopedPK11SlotInfo::get
    - PK11_ImportDERPrivateKeyInfoAndReturnKey
    - data
    linkageType: ''
    returnType: ScopedSECKEYPrivateKey
    signature: ScopedSECKEYPrivateKey ImportPrivateKey(const DataBuffer& pkcs8)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_ExportDERPrivateKeyInfo
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:58,1
    - Dst: ScopedSECKEYPrivateKey*::get
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:58,1
    - Dst: Assign
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - key
    - ' pkcs8'
    argTypes:
    - ScopedSECKEYPrivateKey*
    - DataBuffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 64
    functionName: nss_test::Pkcs11X25519Test::ExportPrivateKey
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc
    functionUses: 0
    functionsReached:
    - ScopedSECKEYPrivateKey*::get
    - Assign
    - PK11_ExportDERPrivateKeyInfo
    linkageType: ''
    returnType: bool
    signature: bool ExportPrivateKey(ScopedSECKEYPrivateKey* key, DataBuffer& pkcs8)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:67,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:67,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:68,1
    - Dst: len
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:68,1
    - Dst: SECKEY_DecodeDERSubjectPublicKeyInfo
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:71,1
    - Dst: ScopedSECKEYPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:76,1
    - Dst: SECKEY_ExtractPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:76,1
    - Dst: ScopedCERTSubjectPublicKeyInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' spki'
    argTypes:
    - DataBuffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 66
    functionDepth: 4
    functionLinenumber: 66
    functionLinenumberEnd: 77
    functionName: nss_test::Pkcs11X25519Test::ImportPublicKey
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc
    functionUses: 0
    functionsReached:
    - toUcharPtr
    - static_cast<unsigned int>
    - SECKEY_DecodeDERSubjectPublicKeyInfo
    - SECKEY_ExtractPublicKey
    - ScopedCERTSubjectPublicKeyInfo::get
    - len
    - data
    - ScopedSECKEYPublicKey
    linkageType: ''
    returnType: ScopedSECKEYPublicKey
    signature: ScopedSECKEYPublicKey ImportPublicKey(const DataBuffer& spki)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOIDTag
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - algorithm
    argTypes:
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 86
    functionName: nss_test::Pkcs11X25519Test::CheckAlgIsX25519
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc
    functionUses: 0
    functionsReached:
    - SECOID_FindOIDTag
    linkageType: ''
    returnType: bool
    signature: bool CheckAlgIsX25519(SECItem* algorithm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ImportPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:91,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:91,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:92,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:92,1
    - Dst: PK11_ExportPrivKeyInfo
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:94,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:94,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:95,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:97,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:98,1
    - Dst: CheckAlgIsX25519
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:98,1
    - Dst: ExportPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:99,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:100,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:100,1
    - Dst: SECKEY_DestroyPrivateKeyInfo
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 89
    functionDepth: 6
    functionLinenumber: 89
    functionLinenumberEnd: 103
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc
    functionUses: 0
    functionsReached:
    - ImportPrivateKey
    - ASSERT_EQ
    - SECKEY_DestroyPrivateKeyInfo
    - CheckAlgIsX25519
    - ExportPrivateKey
    - PK11_ExportPrivKeyInfo
    - ASSERT_TRUE
    - GetParam
    - ScopedSECKEYPrivateKey::get
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11X25519Test, ImportExportPkcs8)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ImportPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:107,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:107,1
    - Dst: SECKEY_EncodeDERSubjectPublicKeyInfo
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:109,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:109,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:110,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:111,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:111,1
    - Dst: len
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:111,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:112,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:112,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:112,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 105
    functionDepth: 5
    functionLinenumber: 105
    functionLinenumberEnd: 113
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - memcmp
    - SECKEY_EncodeDERSubjectPublicKeyInfo
    - ASSERT_TRUE
    - ImportPublicKey
    - GetParam
    - len
    - ScopedSECKEYPublicKey::get
    - data
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11X25519Test, ImportExportSpki)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ImportPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:116,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:116,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:117,1
    - Dst: SECKEY_ConvertToPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:119,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:119,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:120,1
    - Dst: SECKEY_EncodeDERSubjectPublicKeyInfo
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:122,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:122,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:123,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:124,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:124,1
    - Dst: len
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:124,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:125,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:125,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:125,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 115
    functionDepth: 5
    functionLinenumber: 115
    functionLinenumberEnd: 126
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc
    functionUses: 0
    functionsReached:
    - ImportPrivateKey
    - ASSERT_EQ
    - len
    - memcmp
    - ASSERT_TRUE
    - SECKEY_EncodeDERSubjectPublicKeyInfo
    - SECKEY_ConvertToPublicKey
    - GetParam
    - ScopedSECKEYPrivateKey::get
    - ScopedSECKEYPublicKey::get
    - data
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11X25519Test, ImportConvertToPublicExport)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Pkcs11KeyPairGenerator::GenerateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:133,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:134,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:135,1
    - Dst: ExportPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:138,1
    - Dst: ImportPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:140,1
    - Dst: ExportPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:141,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:142,1
    - Dst: SECKEY_EncodeDERSubjectPublicKeyInfo
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:144,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:144,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:145,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:147,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:147,1
    - Dst: ImportPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:149,1
    - Dst: SECKEY_EncodeDERSubjectPublicKeyInfo
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:151,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:151,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:152,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:154,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:155,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 128
    functionDepth: 5
    functionLinenumber: 128
    functionLinenumberEnd: 156
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc
    functionUses: 0
    functionsReached:
    - ImportPrivateKey
    - ASSERT_EQ
    - Pkcs11KeyPairGenerator::GenerateKey
    - ExportPrivateKey
    - ScopedSECItem::get
    - memcmp
    - ASSERT_TRUE
    - SECKEY_EncodeDERSubjectPublicKeyInfo
    - ImportPublicKey
    - ScopedSECKEYPublicKey::get
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11X25519Test, GenImportExport)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ImportPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:196,1
    - Dst: ASSERT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 198
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc
    functionUses: 0
    functionsReached:
    - ImportPrivateKey
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11X25519Test, ImportPkcs8BitStringInsteadOfOctetString)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ImportPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:210,1
    - Dst: ASSERT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 212
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc
    functionUses: 0
    functionsReached:
    - ImportPrivateKey
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11X25519Test, ImportPkcs8WrongLen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ImportPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:226,1
    - Dst: ASSERT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 228
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc
    functionUses: 0
    functionsReached:
    - ImportPrivateKey
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11X25519Test, ImportPkcs8NotSupportedOID)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ImportPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:245,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 247
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc
    functionUses: 0
    functionsReached:
    - ImportPrivateKey
    - ASSERT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11X25519Test, ImportPkcs8ShortLenPrivateKey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ImportPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:259,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 261
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc
    functionUses: 0
    functionsReached:
    - ImportPrivateKey
    - ASSERT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11X25519Test, ImportPkcs8ZeroKey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Pkcs11KeyPairGenerator::GenerateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:268,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:269,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:270,1
    - Dst: PK11_ExportPrivKeyInfo
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:272,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:272,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:273,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:275,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:277,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:278,1
    - Dst: CheckAlgIsX25519
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:278,1
    - Dst: SECKEY_CreateSubjectPublicKeyInfo
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:281,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:281,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:282,1
    - Dst: CheckAlgIsX25519
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:282,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:284,1
    - Dst: SECKEY_DestroyPrivateKeyInfo
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 263
    functionDepth: 6
    functionLinenumber: 263
    functionLinenumberEnd: 287
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - Pkcs11KeyPairGenerator::GenerateKey
    - SECKEY_DestroyPrivateKeyInfo
    - CheckAlgIsX25519
    - PK11_ExportPrivKeyInfo
    - ScopedSECKEYPublicKey::get
    - ASSERT_TRUE
    - ScopedSECKEYPrivateKey::get
    - SECKEY_CreateSubjectPublicKeyInfo
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11X25519Test, KeyGeneration)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ImportPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:299,1
    - Dst: ASSERT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 301
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc
    functionUses: 0
    functionsReached:
    - ImportPublicKey
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11X25519Test, ImportExportSpkiWrongLen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ImportPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:313,1
    - Dst: ASSERT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 315
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc
    functionUses: 0
    functionsReached:
    - ImportPublicKey
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11X25519Test, ImportExportSpkiWrongOID)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ImportPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:328,1
    - Dst: ASSERT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 330
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc
    functionUses: 0
    functionsReached:
    - ImportPublicKey
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11X25519Test, ImportExportSpkiWrongKeyID)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ImportPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:341,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 343
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_x25519_unittest.cc
    functionUses: 0
    functionsReached:
    - ImportPublicKey
    - ASSERT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11X25519Test, ImportExportSpkiZeroKey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:30,1
    - Dst: std::vector<uint8_t>::empty
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:30,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - expected
    - actual
    argTypes:
    - std::vector<uint8_t>
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 35
    functionName: nss_test::HpkeTest::CheckEquality
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - std::vector<uint8_t>::empty
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void CheckEquality(const std::vector<uint8_t> &expected, SECItem *actual)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:38,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:40,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:42,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:42,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - expected
    - actual
    argTypes:
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 45
    functionName: nss_test::HpkeTest::CheckEquality
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 0
    functionsReached:
    - memcmp
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void CheckEquality(SECItem *expected, SECItem *actual)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:49,1
    - Dst: std::vector<uint8_t>::empty
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:49,1
    - Dst: PK11_ExtractKeyValue
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:52,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:53,1
    - Dst: PK11_GetKeyData
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:57,1
    - Dst: nss_test::HpkeTest::CheckEquality
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - expected
    - actual
    argTypes:
    - std::vector<uint8_t>
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 59
    functionName: nss_test::HpkeTest::CheckEquality
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 1
    functionsReached:
    - nss_test::HpkeTest::CheckEquality
    - EXPECT_TRUE
    - PK11_ExtractKeyValue
    - std::vector<uint8_t>::empty
    - PK11_GetKeyData
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void CheckEquality(const std::vector<uint8_t> &expected, PK11SymKey
      *actual)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:63,1
    - Dst: PK11_ExtractKeyValue
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:66,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:67,1
    - Dst: PK11_GetKeyData
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:71,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:72,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:73,1
    - Dst: nss_test::HpkeTest::CheckEquality
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:75,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - expected
    - actual
    argTypes:
    - PK11SymKey*
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 76
    functionName: nss_test::HpkeTest::CheckEquality
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 2
    functionsReached:
    - nss_test::HpkeTest::CheckEquality
    - PK11_ExtractKeyValue
    - PK11_GetKeyData
    - EXPECT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void CheckEquality(PK11SymKey *expected, PK11SymKey *actual)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:81,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:81,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:82,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:82,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:83,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:83,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:84,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:84,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:87,1
    - Dst: PK11_HPKE_Seal
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:88,1
    - Dst: ScopedHpkeContext::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:88,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:89,1
    - Dst: std::vector<uint8_t>*::assign
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - cx
    - aad_vec
    - pt_vec
    - out_sealed
    argTypes:
    - ScopedHpkeContext
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 92
    functionName: nss_test::HpkeTest::Seal
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>::size
    - static_cast<unsigned int>
    - std::vector<uint8_t>::data
    - std::vector<uint8_t>*::assign
    - toUcharPtr
    - ScopedHpkeContext::get
    - PK11_HPKE_Seal
    - EXPECT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: "void Seal(const ScopedHpkeContext &cx, const std::vector<uint8_t>
      &aad_vec,\n            const std::vector<uint8_t> &pt_vec,\n            std::vector<uint8_t>
      *out_sealed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:97,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:97,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:98,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:98,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:99,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:99,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:100,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:100,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:102,1
    - Dst: PK11_HPKE_Open
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:103,1
    - Dst: ScopedHpkeContext::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:103,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:104,1
    - Dst: std::vector<uint8_t>*::assign
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - cx
    - aad_vec
    - ct_vec
    - out_opened
    argTypes:
    - ScopedHpkeContext
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 94
    functionDepth: 3
    functionLinenumber: 94
    functionLinenumberEnd: 107
    functionName: nss_test::HpkeTest::Open
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_HPKE_Open
    - std::vector<uint8_t>::size
    - static_cast<unsigned int>
    - std::vector<uint8_t>::data
    - std::vector<uint8_t>*::assign
    - toUcharPtr
    - ScopedHpkeContext::get
    - EXPECT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: "void Open(const ScopedHpkeContext &cx, const std::vector<uint8_t>
      &aad_vec,\n            const std::vector<uint8_t> &ct_vec,\n            std::vector<uint8_t>
      *out_opened)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::HpkeTest::Seal
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:116,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:118,1
    - Dst: nss_test::HpkeTest::Open
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:120,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - sender
    - receiver
    - msg
    - aad
    - expect
    argTypes:
    - ScopedHpkeContext
    - ScopedHpkeContext
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 109
    functionDepth: 4
    functionLinenumber: 109
    functionLinenumberEnd: 122
    functionName: nss_test::HpkeTest::SealOpen
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 0
    functionsReached:
    - nss_test::HpkeTest::Seal
    - EXPECT_EQ
    - nss_test::HpkeTest::Open
    linkageType: ''
    returnType: void
    signature: "void SealOpen(const ScopedHpkeContext &sender,\n                const
      ScopedHpkeContext &receiver,\n                const std::vector<uint8_t> &msg,\n
      \               const std::vector<uint8_t> &aad,\n                const std::vector<uint8_t>
      *expect)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:127,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:128,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:128,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:130,1
    - Dst: PK11_HPKE_ExportSecret
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:130,1
    - Dst: ScopedHpkeContext::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:130,1
    - Dst: ScopedPK11SymKey::reset
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - receiver
    - exported
    argTypes:
    - ScopedHpkeContext
    - ScopedPK11SymKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 124
    functionDepth: 4
    functionLinenumber: 124
    functionLinenumberEnd: 133
    functionName: nss_test::HpkeTest::ExportSecret
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - std::vector::data
    - ScopedPK11SymKey::reset
    - PK11_HPKE_ExportSecret
    - std::vector::size
    - static_cast<unsigned int>
    - ScopedHpkeContext::get
    linkageType: ''
    returnType: void
    signature: "void ExportSecret(const ScopedHpkeContext &receiver,\n                    ScopedPK11SymKey
      &exported)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:138,1
    - Dst: PK11_HPKE_ExportContext
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:138,1
    - Dst: ScopedHpkeContext::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:138,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:140,1
    - Dst: ScopedHpkeContext::reset
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:142,1
    - Dst: PK11_HPKE_ImportContext
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:145,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:145,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:146,1
    - Dst: ScopedHpkeContext::reset
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - scoped_cx
    - wrapping_key
    argTypes:
    - ScopedHpkeContext
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 135
    functionDepth: 10
    functionLinenumber: 135
    functionLinenumberEnd: 148
    functionName: nss_test::HpkeTest::ExportImportRecvContext
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NE
    - PK11_HPKE_ImportContext
    - ScopedSECItem::get
    - PK11_HPKE_ExportContext
    - ScopedHpkeContext::get
    - EXPECT_EQ
    - ScopedHpkeContext::reset
    linkageType: ''
    returnType: void
    signature: "void ExportImportRecvContext(ScopedHpkeContext &scoped_cx,\n                               PK11SymKey
      *wrapping_key)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:154,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:160,1
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:162,1
    - Dst: memcpy
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:167,1
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:173,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:173,1
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:176,1
    - Dst: ScopedSECKEYPublicKey::reset
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:180,1
    - Dst: ScopedSECKEYPrivateKey::reset
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:181,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - pub_key
    - priv_key
    argTypes:
    - ScopedSECKEYPublicKey
    - ScopedSECKEYPrivateKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 150
    functionDepth: 7
    functionLinenumber: 150
    functionLinenumberEnd: 183
    functionName: nss_test::HpkeTest::GenerateKeyPair
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 0
    functionsReached:
    - memcpy
    - SECOID_FindOIDByTag
    - ADD_FAILURE
    - PK11_GenerateKeyPair
    - ScopedSECKEYPublicKey::reset
    - ScopedSECKEYPrivateKey::reset
    - ScopedPK11SlotInfo::get
    linkageType: ''
    returnType: bool
    signature: "bool GenerateKeyPair(ScopedSECKEYPublicKey &pub_key,\n                       ScopedSECKEYPrivateKey
      &priv_key)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:198,1
    - Dst: PK11_KeyGen
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:200,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:200,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:201,1
    - Dst: ScopedPK11SymKey::reset
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:202,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:206,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:207,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:207,1
    - Dst: ScopedHpkeContext::reset
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:208,1
    - Dst: PK11_HPKE_NewContext
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:208,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:208,1
    - Dst: ScopedHpkeContext::reset
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:209,1
    - Dst: PK11_HPKE_NewContext
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:210,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:210,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:211,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:212,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:216,1
    - Dst: nss_test::HpkeTest::GenerateKeyPair
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:216,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:217,1
    - Dst: PK11_HPKE_SetupS
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:217,1
    - Dst: ScopedHpkeContext::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:217,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:218,1
    - Dst: PK11_HPKE_GetEncapPubKey
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:220,1
    - Dst: ScopedHpkeContext::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:220,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:221,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:222,1
    - Dst: PK11_HPKE_SetupR
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:222,1
    - Dst: ScopedHpkeContext::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:223,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:223,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:223,1
    - Dst: const_cast<SECItem *>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - sender
    - receiver
    argTypes:
    - ScopedHpkeContext
    - ScopedHpkeContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 185
    functionDepth: 11
    functionLinenumber: 185
    functionLinenumberEnd: 225
    functionName: nss_test::HpkeTest::SetUpEphemeralContexts
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 0
    functionsReached:
    - std::vector::data
    - ASSERT_TRUE
    - std::vector::size
    - PK11_HPKE_GetEncapPubKey
    - PK11_HPKE_SetupS
    - const_cast<SECItem *>
    - ScopedPK11SymKey::get
    - PK11_HPKE_NewContext
    - PK11_KeyGen
    - ASSERT_NE
    - EXPECT_NE
    - ScopedPK11SymKey::reset
    - nss_test::HpkeTest::GenerateKeyPair
    - static_cast<unsigned int>
    - PK11_HPKE_SetupR
    - ScopedSECKEYPublicKey::get
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - ScopedHpkeContext::reset
    - ScopedSECKEYPrivateKey::get
    - ScopedHpkeContext::get
    linkageType: ''
    returnType: void
    signature: "void SetUpEphemeralContexts(ScopedHpkeContext &sender,\n                              ScopedHpkeContext
      &receiver,\n                              HpkeModeId mode = HpkeModeBase,\n
      \                             HpkeKemId kem = HpkeDhKemX25519Sha256,\n                              HpkeKdfId
      kdf = HpkeKdfHkdfSha256,\n                              HpkeAeadId aead = HpkeAeadAes128Gcm)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: JsonReader::NextItemArray
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:236,1
    - Dst: JsonReader::NextItem
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:238,1
    - Dst: JsonReader::ReadLabel
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:239,1
    - Dst: JsonReader::ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:244,1
    - Dst: JsonReader::ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:246,1
    - Dst: JsonReader::ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:248,1
    - Dst: JsonReader::SkipValue
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:250,1
    - Dst: std::vector::push_back
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:253,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - r
    argTypes:
    - JsonReader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 257
    functionName: nss_test::ReadVec
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 0
    functionsReached:
    - JsonReader::ReadLabel
    - JsonReader::NextItemArray
    - JsonReader::NextItem
    - std::vector::push_back
    - JsonReader::SkipValue
    - JsonReader::ReadHex
    linkageType: ''
    returnType: std::vector<HpkeEncryptVector>
    signature: std::vector<HpkeEncryptVector> ReadVec(JsonReader &r)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: JsonReader::NextItemArray
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:268,1
    - Dst: JsonReader::NextItem
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:270,1
    - Dst: JsonReader::ReadLabel
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:271,1
    - Dst: JsonReader::ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:276,1
    - Dst: JsonReader::ReadInt
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:278,1
    - Dst: JsonReader::ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:280,1
    - Dst: JsonReader::SkipValue
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:282,1
    - Dst: std::vector::push_back
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:285,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - r
    argTypes:
    - JsonReader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 289
    functionName: nss_test::ReadVec
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 0
    functionsReached:
    - JsonReader::ReadLabel
    - JsonReader::NextItemArray
    - JsonReader::NextItem
    - std::vector::push_back
    - JsonReader::ReadInt
    - JsonReader::SkipValue
    - JsonReader::ReadHex
    linkageType: ''
    returnType: std::vector<HpkeExportVector>
    signature: std::vector<HpkeExportVector> ReadVec(JsonReader &r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::assign
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:313,1
    - Dst: std::vector::insert
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:317,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:317,1
    - Dst: std::vector<uint8_t>::begin
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:317,1
    - Dst: std::vector<uint8_t>::end
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:317,1
    - Dst: std::vector::insert
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:318,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:318,1
    - Dst: std::vector::insert
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:319,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:319,1
    - Dst: std::vector<uint8_t>::begin
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:319,1
    - Dst: std::vector<uint8_t>::end
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - sk
    - pk
    argTypes:
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 321
    functionName: nss_test::Pkcs8
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>::end
    - std::vector::insert
    - std::vector::end
    - std::vector::assign
    - std::vector<uint8_t>::begin
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> Pkcs8(const std::vector<uint8_t> &sk,\n                                    const
      std::vector<uint8_t> &pk)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: JsonReader::NextItemArray
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:327,1
    - Dst: JsonReader::NextItem
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:344,1
    - Dst: JsonReader::ReadLabel
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:345,1
    - Dst: static_cast<HpkeModeId>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:350,1
    - Dst: JsonReader::ReadInt
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:350,1
    - Dst: static_cast<uint32_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:351,1
    - Dst: static_cast<HpkeKemId>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:353,1
    - Dst: JsonReader::ReadInt
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:353,1
    - Dst: static_cast<uint32_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:354,1
    - Dst: static_cast<HpkeKdfId>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:356,1
    - Dst: JsonReader::ReadInt
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:356,1
    - Dst: static_cast<uint32_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:357,1
    - Dst: static_cast<HpkeAeadId>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:359,1
    - Dst: JsonReader::ReadInt
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:359,1
    - Dst: static_cast<uint32_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:360,1
    - Dst: JsonReader::ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:362,1
    - Dst: JsonReader::ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:364,1
    - Dst: static_cast<uint32_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:365,1
    - Dst: JsonReader::ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:367,1
    - Dst: static_cast<uint32_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:368,1
    - Dst: JsonReader::ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:370,1
    - Dst: static_cast<uint32_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:371,1
    - Dst: JsonReader::ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:373,1
    - Dst: static_cast<uint32_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:374,1
    - Dst: JsonReader::ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:376,1
    - Dst: JsonReader::ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:378,1
    - Dst: JsonReader::ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:380,1
    - Dst: JsonReader::ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:382,1
    - Dst: JsonReader::ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:384,1
    - Dst: nss_test::ReadVec
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:386,1
    - Dst: nss_test::ReadVec
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:388,1
    - Dst: JsonReader::SkipValue
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:390,1
    - Dst: static_cast<uint32_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:394,1
    - Dst: PK11_HPKE_ValidateParameters
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:404,1
    - Dst: nss_test::Pkcs8
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:410,1
    - Dst: nss_test::Pkcs8
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:411,1
    - Dst: std::vector::push_back
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:412,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 82
    argCount: 1
    argNames:
    - r
    argTypes:
    - JsonReader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 323
    functionDepth: 2
    functionLinenumber: 323
    functionLinenumberEnd: 416
    functionName: nss_test::Read
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - JsonReader::ReadLabel
    - JsonReader::NextItemArray
    - JsonReader::NextItem
    - static_cast<HpkeKemId>
    - static_cast<HpkeKdfId>
    - nss_test::Pkcs8
    - PK11_HPKE_ValidateParameters
    - nss_test::ReadVec
    - std::vector::push_back
    - JsonReader::ReadInt
    - JsonReader::SkipValue
    - static_cast<HpkeAeadId>
    - JsonReader::ReadHex
    - static_cast<HpkeModeId>
    linkageType: ''
    returnType: std::vector<HpkeVector>
    signature: std::vector<HpkeVector> Read(JsonReader &r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:424,1
    - Dst: nss_test::TestVectors::MakeContext
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:428,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:430,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:430,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:431,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:431,1
    - Dst: PK11_ImportDERPrivateKeyInfoAndReturnKey
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:433,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:434,1
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:437,1
    - Dst: reset
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:440,1
    - Dst: SECKEY_ConvertToPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:441,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:441,1
    - Dst: reset
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:442,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - vec
    - sk_data
    argTypes:
    - HpkeVector
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 421
    functionDepth: 5
    functionLinenumber: 421
    functionLinenumberEnd: 444
    functionName: nss_test::TestVectors::init
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 0
    functionsReached:
    - ADD_FAILURE
    - nss_test::TestVectors::MakeContext
    - std::vector<uint8_t>::size
    - SECKEY_ConvertToPublicKey
    - static_cast<unsigned int>
    - std::vector<uint8_t>::data
    - reset
    - toUcharPtr
    - get
    - ScopedPK11SlotInfo::get
    - PK11_ImportDERPrivateKeyInfoAndReturnKey
    linkageType: ''
    returnType: bool
    signature: bool init(const HpkeVector &vec, const std::vector<uint8_t> &sk_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::TestVectors::ReadPsk
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:448,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:449,1
    - Dst: HpkeVector::psk_id::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:449,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:450,1
    - Dst: HpkeVector::psk_id::size
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:450,1
    - Dst: ScopedHpkeContext
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:452,1
    - Dst: PK11_HPKE_NewContext
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:452,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - slot
    - vec
    argTypes:
    - ScopedPK11SlotInfo
    - HpkeVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 446
    functionDepth: 9
    functionLinenumber: 446
    functionLinenumberEnd: 454
    functionName: nss_test::TestVectors::MakeContext
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 1
    functionsReached:
    - nss_test::TestVectors::ReadPsk
    - HpkeVector::psk_id::data
    - ScopedPK11SymKey::get
    - ScopedHpkeContext
    - PK11_HPKE_NewContext
    - static_cast<unsigned int>
    - toUcharPtr
    - HpkeVector::psk_id::size
    linkageType: ''
    returnType: ScopedHpkeContext
    signature: "ScopedHpkeContext MakeContext(const ScopedPK11SlotInfo &slot,\n                                         const
      HpkeVector &vec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HpkeVector::psk::empty
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:459,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:460,1
    - Dst: HpkeVector::psk::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:460,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:461,1
    - Dst: HpkeVector::psk::size
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:461,1
    - Dst: PK11_ImportSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:463,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:463,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:465,1
    - Dst: ScopedPK11SymKey::reset
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:466,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - slot
    - vec
    argTypes:
    - ScopedPK11SlotInfo
    - HpkeVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 456
    functionDepth: 6
    functionLinenumber: 456
    functionLinenumberEnd: 469
    functionName: nss_test::TestVectors::ReadPsk
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 1
    functionsReached:
    - EXPECT_NE
    - HpkeVector::psk::empty
    - HpkeVector::psk::size
    - ScopedPK11SymKey::reset
    - HpkeVector::psk::data
    - PK11_ImportSymKey
    - static_cast<unsigned int>
    - toUcharPtr
    - ScopedPK11SlotInfo::get
    linkageType: ''
    returnType: ScopedPK11SymKey
    signature: "ScopedPK11SymKey ReadPsk(const ScopedPK11SlotInfo &slot,\n                                    const
      HpkeVector &vec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:480,1
    - Dst: ctxt::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:480,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:481,1
    - Dst: ctxt::size
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:481,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:484,1
    - Dst: PK11_HPKE_ExportSecret
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:485,1
    - Dst: Endpoint::cx_::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:485,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:487,1
    - Dst: PK11_HPKE_ExportSecret
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:488,1
    - Dst: Endpoint::cx_::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:488,1
    - Dst: CheckEquality
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:492,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:492,1
    - Dst: CheckEquality
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:493,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:493,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - vec
    - sender
    - receiver
    argTypes:
    - HpkeVector
    - Endpoint
    - Endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 477
    functionDepth: 4
    functionLinenumber: 477
    functionLinenumberEnd: 495
    functionName: nss_test::TestVectors::TestExports
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ctxt::data
    - Endpoint::cx_::get
    - ctxt::size
    - ScopedPK11SymKey::get
    - PK11_HPKE_ExportSecret
    - static_cast<unsigned int>
    - toUcharPtr
    - CheckEquality
    linkageType: ''
    returnType: void
    signature: "void TestExports(const HpkeVector &vec, const Endpoint &sender,\n
      \                  const Endpoint &receiver)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SealOpen
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:500,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - vec
    - sender
    - receiver
    argTypes:
    - HpkeVector
    - Endpoint
    - Endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 502
    functionName: nss_test::TestVectors::TestEncryptions
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 0
    functionsReached:
    - SealOpen
    linkageType: ''
    returnType: void
    signature: "void TestEncryptions(const HpkeVector &vec, const Endpoint &sender,\n
      \                      const Endpoint &receiver)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:508,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:508,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:509,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:509,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:510,1
    - Dst: PK11_HPKE_SetupS
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:510,1
    - Dst: ScopedHpkeContext::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:510,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:510,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:510,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - cx
    - pkE
    - skE
    - pkR
    - info
    argTypes:
    - ScopedHpkeContext
    - ScopedSECKEYPublicKey
    - ScopedSECKEYPrivateKey
    - ScopedSECKEYPublicKey
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 504
    functionDepth: 11
    functionLinenumber: 504
    functionLinenumberEnd: 512
    functionName: nss_test::TestVectors::SetupS
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>::size
    - static_cast<unsigned int>
    - std::vector<uint8_t>::data
    - ScopedSECKEYPrivateKey::get
    - toUcharPtr
    - ScopedHpkeContext::get
    - ScopedSECKEYPublicKey::get
    - EXPECT_EQ
    - PK11_HPKE_SetupS
    linkageType: ''
    returnType: void
    signature: "void SetupS(const ScopedHpkeContext &cx, const ScopedSECKEYPublicKey
      &pkE,\n              const ScopedSECKEYPrivateKey &skE,\n              const
      ScopedSECKEYPublicKey &pkR,\n              const std::vector<uint8_t> &info)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:518,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:518,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:519,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:519,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:520,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:520,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:521,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:521,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:522,1
    - Dst: PK11_HPKE_SetupR
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:522,1
    - Dst: ScopedHpkeContext::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:522,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:522,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - cx
    - pkR
    - skR
    - enc
    - info
    argTypes:
    - ScopedHpkeContext
    - ScopedSECKEYPublicKey
    - ScopedSECKEYPrivateKey
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 514
    functionDepth: 11
    functionLinenumber: 514
    functionLinenumberEnd: 524
    functionName: nss_test::TestVectors::SetupR
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>::size
    - static_cast<unsigned int>
    - std::vector<uint8_t>::data
    - PK11_HPKE_SetupR
    - ScopedSECKEYPrivateKey::get
    - toUcharPtr
    - ScopedHpkeContext::get
    - ScopedSECKEYPublicKey::get
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: "void SetupR(const ScopedHpkeContext &cx, const ScopedSECKEYPublicKey
      &pkR,\n              const ScopedSECKEYPrivateKey &skR,\n              const
      std::vector<uint8_t> &enc,\n              const std::vector<uint8_t> &info)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::TestVectors::SetupS
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:528,1
    - Dst: const_cast<uint8_t *>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:530,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:531,1
    - Dst: PK11_HPKE_Serialize
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:531,1
    - Dst: Endpoint::pk_::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:531,1
    - Dst: CheckEquality
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:533,1
    - Dst: nss_test::TestVectors::SetupR
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - vec
    - sender
    - receiver
    argTypes:
    - HpkeVector
    - Endpoint
    - Endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 526
    functionDepth: 12
    functionLinenumber: 526
    functionLinenumberEnd: 535
    functionName: nss_test::TestVectors::SetupSenderReceiver
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - Endpoint::pk_::get
    - nss_test::TestVectors::SetupS
    - PK11_HPKE_Serialize
    - nss_test::TestVectors::SetupR
    - CheckEquality
    - const_cast<uint8_t *>
    linkageType: ''
    returnType: void
    signature: "void SetupSenderReceiver(const HpkeVector &vec, const Endpoint &sender,\n
      \                          const Endpoint &receiver)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:539,1
    - Dst: Endpoint::init
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:539,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:541,1
    - Dst: Endpoint::init
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:541,1
    - Dst: nss_test::TestVectors::SetupSenderReceiver
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:543,1
    - Dst: nss_test::TestVectors::TestEncryptions
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:544,1
    - Dst: nss_test::TestVectors::TestExports
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - vec
    argTypes:
    - HpkeVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 537
    functionDepth: 13
    functionLinenumber: 537
    functionLinenumberEnd: 546
    functionName: nss_test::TestVectors::RunTestVector
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - nss_test::TestVectors::SetupSenderReceiver
    - nss_test::TestVectors::TestExports
    - Endpoint::init
    - nss_test::TestVectors::TestEncryptions
    linkageType: ''
    returnType: void
    signature: void RunTestVector(const HpkeVector &vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::DataBuffer::Read
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:551,1
    - Dst: RunTestVector
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:554,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 549
    functionDepth: 2
    functionLinenumber: 549
    functionLinenumberEnd: 556
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 0
    functionsReached:
    - RunTestVector
    - nss_test::DataBuffer::Read
    linkageType: ''
    returnType: void
    signature: void TEST_F(TestVectors, HpkeVectors)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:593,1
    - Dst: GenerateKeyPair
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:593,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:596,1
    - Dst: PK11_HPKE_Deserialize
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:596,1
    - Dst: ScopedHpkeContext::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:596,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:598,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:598,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:601,1
    - Dst: PK11_HPKE_Deserialize
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:601,1
    - Dst: ScopedHpkeContext::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:601,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:605,1
    - Dst: PK11_HPKE_SetupS
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:606,1
    - Dst: ScopedHpkeContext::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:606,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:606,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:606,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:607,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:608,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:608,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:611,1
    - Dst: PK11_HPKE_SetupR
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:611,1
    - Dst: ScopedHpkeContext::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:611,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:611,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:612,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:613,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:613,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:614,1
    - Dst: PK11_HPKE_SetupR
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:614,1
    - Dst: ScopedHpkeContext::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:614,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:614,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:615,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:616,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:616,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:619,1
    - Dst: PK11_HPKE_Deserialize
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:619,1
    - Dst: ScopedHpkeContext::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:619,1
    - Dst: ScopedSECKEYPublicKey::reset
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:621,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:622,1
    - Dst: PK11_HPKE_SetupS
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:623,1
    - Dst: ScopedHpkeContext::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:623,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:623,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:623,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:624,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:625,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:625,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:627,1
    - Dst: PK11_HPKE_SetupR
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:627,1
    - Dst: ScopedHpkeContext::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:627,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:627,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:628,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:629,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 577
    functionDepth: 11
    functionLinenumber: 577
    functionLinenumberEnd: 630
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 0
    functionsReached:
    - PORT_GetError
    - ScopedSECKEYPublicKey::reset
    - GenerateKeyPair
    - ASSERT_TRUE
    - PK11_HPKE_SetupR
    - PK11_HPKE_Deserialize
    - ScopedSECKEYPrivateKey::get
    - ScopedHpkeContext::get
    - ScopedSECKEYPublicKey::get
    - EXPECT_EQ
    - PK11_HPKE_SetupS
    linkageType: ''
    returnType: void
    signature: void TEST_F(ModeParameterizedTest, BadEncapsulatedPubKey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SetUpEphemeralContexts
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:638,1
    - Dst: std::get<0>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:638,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:638,1
    - Dst: std::get<1>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:639,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:639,1
    - Dst: std::get<2>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:639,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:639,1
    - Dst: std::get<3>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:640,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:640,1
    - Dst: SealOpen
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:641,1
    - Dst: ExportImportRecvContext
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:642,1
    - Dst: SealOpen
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 632
    functionDepth: 0
    functionLinenumber: 632
    functionLinenumberEnd: 644
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 0
    functionsReached:
    - std::get<2>
    - ExportImportRecvContext
    - std::get<3>
    - SealOpen
    - std::get<1>
    - SetUpEphemeralContexts
    - GetParam
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void TEST_P(ModeParameterizedTest, ContextExportImportEncrypt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SetUpEphemeralContexts
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:652,1
    - Dst: std::get<0>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:652,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:652,1
    - Dst: std::get<1>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:653,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:653,1
    - Dst: std::get<2>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:653,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:653,1
    - Dst: std::get<3>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:654,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:654,1
    - Dst: ExportSecret
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:655,1
    - Dst: ExportSecret
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:656,1
    - Dst: CheckEquality
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:657,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:657,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:657,1
    - Dst: ExportImportRecvContext
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:658,1
    - Dst: ExportSecret
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:659,1
    - Dst: CheckEquality
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:660,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:660,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:660,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 646
    functionDepth: 0
    functionLinenumber: 646
    functionLinenumberEnd: 661
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 0
    functionsReached:
    - std::get<2>
    - ExportImportRecvContext
    - ScopedPK11SymKey::get
    - ExportSecret
    - std::get<3>
    - std::get<1>
    - SetUpEphemeralContexts
    - GetParam
    - std::get<0>
    - CheckEquality
    linkageType: ''
    returnType: void
    signature: void TEST_P(ModeParameterizedTest, ContextExportImportExport)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:669,1
    - Dst: PK11_KeyGen
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:671,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:671,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:672,1
    - Dst: SetUpEphemeralContexts
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:676,1
    - Dst: std::get<0>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:676,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:676,1
    - Dst: std::get<1>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:677,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:677,1
    - Dst: std::get<2>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:677,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:677,1
    - Dst: std::get<3>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:678,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:678,1
    - Dst: SealOpen
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:679,1
    - Dst: ExportImportRecvContext
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:680,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:680,1
    - Dst: SealOpen
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:681,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 663
    functionDepth: 5
    functionLinenumber: 663
    functionLinenumberEnd: 682
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 0
    functionsReached:
    - std::get<2>
    - ExportImportRecvContext
    - ScopedPK11SymKey::get
    - ASSERT_TRUE
    - std::get<3>
    - SealOpen
    - std::get<1>
    - SetUpEphemeralContexts
    - GetParam
    - PK11_KeyGen
    - std::get<0>
    - ScopedPK11SlotInfo::get
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_P(ModeParameterizedTest, ContextExportImportWithWrap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SetUpEphemeralContexts
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:690,1
    - Dst: std::get<0>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:690,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:690,1
    - Dst: std::get<1>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:691,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:691,1
    - Dst: std::get<2>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:691,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:691,1
    - Dst: std::get<3>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:692,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:692,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:695,1
    - Dst: PK11_HPKE_ExportContext
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:696,1
    - Dst: ScopedHpkeContext::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:696,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:697,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:698,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 684
    functionDepth: 3
    functionLinenumber: 684
    functionLinenumberEnd: 699
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 0
    functionsReached:
    - std::get<2>
    - PORT_GetError
    - ScopedHpkeContext::get
    - std::get<3>
    - std::get<1>
    - SetUpEphemeralContexts
    - GetParam
    - PK11_HPKE_ExportContext
    - std::get<0>
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(ModeParameterizedTest, ExportSenderContext)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:707,1
    - Dst: PK11_KeyGen
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:709,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:709,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:710,1
    - Dst: PK11_KeyGen
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:712,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:712,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:713,1
    - Dst: SetUpEphemeralContexts
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:717,1
    - Dst: std::get<0>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:717,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:717,1
    - Dst: std::get<1>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:718,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:718,1
    - Dst: std::get<2>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:718,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:718,1
    - Dst: std::get<3>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:719,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:719,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:722,1
    - Dst: PK11_HPKE_ExportContext
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:723,1
    - Dst: ScopedHpkeContext::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:723,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:723,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:724,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:727,1
    - Dst: PK11_HPKE_ImportContext
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:727,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:727,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:727,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:728,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 701
    functionDepth: 10
    functionLinenumber: 701
    functionLinenumberEnd: 729
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NE
    - PK11_HPKE_ExportContext
    - PK11_HPKE_ImportContext
    - std::get<2>
    - ScopedPK11SymKey::get
    - ScopedSECItem::get
    - PORT_GetError
    - ASSERT_TRUE
    - ScopedHpkeContext::get
    - std::get<3>
    - std::get<1>
    - SetUpEphemeralContexts
    - GetParam
    - PK11_KeyGen
    - std::get<0>
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_P(ModeParameterizedTest, ContextUnwrapBadKey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:734,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:735,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:735,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:736,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:737,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:737,1
    - Dst: SetUpEphemeralContexts
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:740,1
    - Dst: std::get<0>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:740,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:740,1
    - Dst: std::get<1>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:741,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:741,1
    - Dst: std::get<2>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:741,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:741,1
    - Dst: std::get<3>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:742,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:742,1
    - Dst: SealOpen
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:744,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:749,1
    - Dst: PK11_HPKE_Seal
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:750,1
    - Dst: ScopedHpkeContext::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:750,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:751,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:755,1
    - Dst: PK11_HPKE_Open
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:755,1
    - Dst: ScopedHpkeContext::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:755,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:755,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:757,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:757,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:758,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:762,1
    - Dst: PK11_HPKE_Open
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:762,1
    - Dst: ScopedHpkeContext::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:762,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:762,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:764,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:764,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:765,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:770,1
    - Dst: PK11_HPKE_Open
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:770,1
    - Dst: ScopedHpkeContext::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:770,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:770,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:772,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:772,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:773,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:776,1
    - Dst: PK11_HPKE_Open
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:776,1
    - Dst: ScopedHpkeContext::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:776,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:776,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:778,1
    - Dst: CheckEquality
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:780,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:780,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 731
    functionDepth: 3
    functionLinenumber: 731
    functionLinenumberEnd: 781
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 0
    functionsReached:
    - std::vector::data
    - std::vector::size
    - SetUpEphemeralContexts
    - std::get<1>
    - PK11_HPKE_Open
    - std::get<3>
    - GetParam
    - std::get<0>
    - PK11_HPKE_Seal
    - CheckEquality
    - ASSERT_NE
    - EXPECT_NE
    - ScopedSECItem::get
    - static_cast<unsigned int>
    - SealOpen
    - EXPECT_EQ
    - std::get<2>
    - PORT_GetError
    - ScopedHpkeContext::get
    linkageType: ''
    returnType: void
    signature: void TEST_P(ModeParameterizedTest, EphemeralKeys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_HPKE_NewContext
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:785,1
    - Dst: static_cast<HpkeKemId>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:785,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:787,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:788,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:788,1
    - Dst: PK11_HPKE_NewContext
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:790,1
    - Dst: static_cast<HpkeKdfId>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:790,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:792,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:793,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:793,1
    - Dst: PK11_HPKE_NewContext
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:794,1
    - Dst: static_cast<HpkeAeadId>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:795,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:796,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:797,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:797,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 783
    functionDepth: 9
    functionLinenumber: 783
    functionLinenumberEnd: 798
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 0
    functionsReached:
    - static_cast<HpkeKemId>
    - static_cast<HpkeKdfId>
    - PORT_GetError
    - PK11_HPKE_NewContext
    - static_cast<HpkeAeadId>
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(ModeParameterizedTest, InvalidContextParams)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:804,1
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:808,1
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:819,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:819,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:821,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:822,1
    - Dst: ScopedSECKEYPublicKey::reset
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:823,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:826,1
    - Dst: PK11_HPKE_SetupS
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:826,1
    - Dst: ScopedHpkeContext::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:826,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:827,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:828,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:828,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:832,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:833,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:834,1
    - Dst: FAIL
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:835,1
    - Dst: memcpy
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:839,1
    - Dst: ScopedSECKEYPrivateKey::reset
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:841,1
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:841,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:841,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:844,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:845,1
    - Dst: ScopedSECKEYPublicKey::reset
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:846,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:847,1
    - Dst: PK11_HPKE_SetupS
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:847,1
    - Dst: ScopedHpkeContext::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:847,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:848,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:849,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:849,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 800
    functionDepth: 11
    functionLinenumber: 800
    functionLinenumberEnd: 850
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 0
    functionsReached:
    - FAIL
    - memcpy
    - ADD_FAILURE
    - SECOID_FindOIDByTag
    - PK11_GenerateKeyPair
    - ScopedSECKEYPublicKey::get
    - ScopedSECKEYPublicKey::reset
    - PORT_GetError
    - ASSERT_TRUE
    - SECITEM_AllocItem
    - ScopedSECKEYPrivateKey::reset
    - ScopedHpkeContext::get
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - PK11_HPKE_SetupS
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(ModeParameterizedTest, InvalidReceiverKeyType)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:30,1
    - Dst: std::vector<uint8_t>::empty
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:30,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - expected
    - actual
    argTypes:
    - std::vector<uint8_t>
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 35
    functionName: nss_test::HpkeTest::CheckEquality
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 2
    functionsReached:
    - EXPECT_TRUE
    - std::vector<uint8_t>::empty
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void CheckEquality(const std::vector<uint8_t> &expected, SECItem *actual)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:38,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:40,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:42,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:42,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - expected
    - actual
    argTypes:
    - SECItem*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 45
    functionName: nss_test::HpkeTest::CheckEquality
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 2
    functionsReached:
    - memcmp
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void CheckEquality(SECItem *expected, SECItem *actual)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:49,1
    - Dst: std::vector<uint8_t>::empty
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:49,1
    - Dst: PK11_ExtractKeyValue
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:52,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:53,1
    - Dst: PK11_GetKeyData
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:57,1
    - Dst: nss_test::HpkeTest::CheckEquality
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - expected
    - actual
    argTypes:
    - std::vector<uint8_t>
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 59
    functionName: nss_test::HpkeTest::CheckEquality
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 3
    functionsReached:
    - nss_test::HpkeTest::CheckEquality
    - EXPECT_TRUE
    - PK11_ExtractKeyValue
    - std::vector<uint8_t>::empty
    - PK11_GetKeyData
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void CheckEquality(const std::vector<uint8_t> &expected, PK11SymKey
      *actual)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:63,1
    - Dst: PK11_ExtractKeyValue
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:66,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:67,1
    - Dst: PK11_GetKeyData
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:71,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:72,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:73,1
    - Dst: nss_test::HpkeTest::CheckEquality
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:75,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - expected
    - actual
    argTypes:
    - PK11SymKey*
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 76
    functionName: nss_test::HpkeTest::CheckEquality
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 4
    functionsReached:
    - nss_test::HpkeTest::CheckEquality
    - PK11_ExtractKeyValue
    - PK11_GetKeyData
    - EXPECT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void CheckEquality(PK11SymKey *expected, PK11SymKey *actual)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:81,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:81,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:82,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:82,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:83,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:83,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:84,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:84,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:87,1
    - Dst: PK11_HPKE_Seal
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:88,1
    - Dst: ScopedHpkeContext::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:88,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:89,1
    - Dst: std::vector<uint8_t>*::assign
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - cx
    - aad_vec
    - pt_vec
    - out_sealed
    argTypes:
    - ScopedHpkeContext
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 92
    functionName: nss_test::HpkeTest::Seal
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 1
    functionsReached:
    - std::vector<uint8_t>::size
    - static_cast<unsigned int>
    - std::vector<uint8_t>::data
    - std::vector<uint8_t>*::assign
    - toUcharPtr
    - ScopedHpkeContext::get
    - PK11_HPKE_Seal
    - EXPECT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: "void Seal(const ScopedHpkeContext &cx, const std::vector<uint8_t>
      &aad_vec,\n            const std::vector<uint8_t> &pt_vec,\n            std::vector<uint8_t>
      *out_sealed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:97,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:97,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:98,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:98,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:99,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:99,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:100,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:100,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:102,1
    - Dst: PK11_HPKE_Open
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:103,1
    - Dst: ScopedHpkeContext::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:103,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:104,1
    - Dst: std::vector<uint8_t>*::assign
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - cx
    - aad_vec
    - ct_vec
    - out_opened
    argTypes:
    - ScopedHpkeContext
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 94
    functionDepth: 3
    functionLinenumber: 94
    functionLinenumberEnd: 107
    functionName: nss_test::HpkeTest::Open
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 1
    functionsReached:
    - PK11_HPKE_Open
    - std::vector<uint8_t>::size
    - static_cast<unsigned int>
    - std::vector<uint8_t>::data
    - std::vector<uint8_t>*::assign
    - toUcharPtr
    - ScopedHpkeContext::get
    - EXPECT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: "void Open(const ScopedHpkeContext &cx, const std::vector<uint8_t>
      &aad_vec,\n            const std::vector<uint8_t> &ct_vec,\n            std::vector<uint8_t>
      *out_opened)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::HpkeTest::Seal
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:116,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:118,1
    - Dst: nss_test::HpkeTest::Open
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:120,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - sender
    - receiver
    - msg
    - aad
    - expect
    argTypes:
    - ScopedHpkeContext
    - ScopedHpkeContext
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 109
    functionDepth: 4
    functionLinenumber: 109
    functionLinenumberEnd: 122
    functionName: nss_test::HpkeTest::SealOpen
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 0
    functionsReached:
    - nss_test::HpkeTest::Seal
    - EXPECT_EQ
    - nss_test::HpkeTest::Open
    linkageType: ''
    returnType: void
    signature: "void SealOpen(const ScopedHpkeContext &sender,\n                const
      ScopedHpkeContext &receiver,\n                const std::vector<uint8_t> &msg,\n
      \               const std::vector<uint8_t> &aad,\n                const std::vector<uint8_t>
      *expect)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:127,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:128,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:128,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:130,1
    - Dst: PK11_HPKE_ExportSecret
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:130,1
    - Dst: ScopedHpkeContext::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:130,1
    - Dst: ScopedPK11SymKey::reset
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - receiver
    - exported
    argTypes:
    - ScopedHpkeContext
    - ScopedPK11SymKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 124
    functionDepth: 4
    functionLinenumber: 124
    functionLinenumberEnd: 133
    functionName: nss_test::HpkeTest::ExportSecret
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - std::vector::data
    - ScopedPK11SymKey::reset
    - PK11_HPKE_ExportSecret
    - std::vector::size
    - static_cast<unsigned int>
    - ScopedHpkeContext::get
    linkageType: ''
    returnType: void
    signature: "void ExportSecret(const ScopedHpkeContext &receiver,\n                    ScopedPK11SymKey
      &exported)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:138,1
    - Dst: PK11_HPKE_ExportContext
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:138,1
    - Dst: ScopedHpkeContext::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:138,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:140,1
    - Dst: ScopedHpkeContext::reset
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:142,1
    - Dst: PK11_HPKE_ImportContext
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:145,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:145,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:146,1
    - Dst: ScopedHpkeContext::reset
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - scoped_cx
    - wrapping_key
    argTypes:
    - ScopedHpkeContext
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 135
    functionDepth: 10
    functionLinenumber: 135
    functionLinenumberEnd: 148
    functionName: nss_test::HpkeTest::ExportImportRecvContext
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NE
    - PK11_HPKE_ImportContext
    - ScopedSECItem::get
    - PK11_HPKE_ExportContext
    - ScopedHpkeContext::get
    - EXPECT_EQ
    - ScopedHpkeContext::reset
    linkageType: ''
    returnType: void
    signature: "void ExportImportRecvContext(ScopedHpkeContext &scoped_cx,\n                               PK11SymKey
      *wrapping_key)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:154,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:160,1
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:162,1
    - Dst: memcpy
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:167,1
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:173,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:173,1
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:176,1
    - Dst: ScopedSECKEYPublicKey::reset
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:180,1
    - Dst: ScopedSECKEYPrivateKey::reset
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:181,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - pub_key
    - priv_key
    argTypes:
    - ScopedSECKEYPublicKey
    - ScopedSECKEYPrivateKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 150
    functionDepth: 7
    functionLinenumber: 150
    functionLinenumberEnd: 183
    functionName: nss_test::HpkeTest::GenerateKeyPair
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 1
    functionsReached:
    - memcpy
    - SECOID_FindOIDByTag
    - ADD_FAILURE
    - PK11_GenerateKeyPair
    - ScopedSECKEYPublicKey::reset
    - ScopedSECKEYPrivateKey::reset
    - ScopedPK11SlotInfo::get
    linkageType: ''
    returnType: bool
    signature: "bool GenerateKeyPair(ScopedSECKEYPublicKey &pub_key,\n                       ScopedSECKEYPrivateKey
      &priv_key)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:198,1
    - Dst: PK11_KeyGen
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:200,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:200,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:201,1
    - Dst: ScopedPK11SymKey::reset
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:202,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:206,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:207,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:207,1
    - Dst: ScopedHpkeContext::reset
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:208,1
    - Dst: PK11_HPKE_NewContext
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:208,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:208,1
    - Dst: ScopedHpkeContext::reset
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:209,1
    - Dst: PK11_HPKE_NewContext
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:210,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:210,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:211,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:212,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:216,1
    - Dst: nss_test::HpkeTest::GenerateKeyPair
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:216,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:217,1
    - Dst: PK11_HPKE_SetupS
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:217,1
    - Dst: ScopedHpkeContext::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:217,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:218,1
    - Dst: PK11_HPKE_GetEncapPubKey
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:220,1
    - Dst: ScopedHpkeContext::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:220,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:221,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:222,1
    - Dst: PK11_HPKE_SetupR
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:222,1
    - Dst: ScopedHpkeContext::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:223,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:223,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:223,1
    - Dst: const_cast<SECItem *>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - sender
    - receiver
    argTypes:
    - ScopedHpkeContext
    - ScopedHpkeContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 185
    functionDepth: 11
    functionLinenumber: 185
    functionLinenumberEnd: 225
    functionName: nss_test::HpkeTest::SetUpEphemeralContexts
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 0
    functionsReached:
    - std::vector::data
    - ASSERT_TRUE
    - std::vector::size
    - PK11_HPKE_GetEncapPubKey
    - PK11_HPKE_SetupS
    - const_cast<SECItem *>
    - ScopedPK11SymKey::get
    - PK11_HPKE_NewContext
    - PK11_KeyGen
    - ASSERT_NE
    - EXPECT_NE
    - ScopedPK11SymKey::reset
    - nss_test::HpkeTest::GenerateKeyPair
    - static_cast<unsigned int>
    - PK11_HPKE_SetupR
    - ScopedSECKEYPublicKey::get
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - ScopedHpkeContext::reset
    - ScopedSECKEYPrivateKey::get
    - ScopedHpkeContext::get
    linkageType: ''
    returnType: void
    signature: "void SetUpEphemeralContexts(ScopedHpkeContext &sender,\n                              ScopedHpkeContext
      &receiver,\n                              HpkeModeId mode = HpkeModeBase,\n
      \                             HpkeKemId kem = HpkeDhKemX25519Sha256,\n                              HpkeKdfId
      kdf = HpkeKdfHkdfSha256,\n                              HpkeAeadId aead = HpkeAeadAes128Gcm)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: JsonReader::NextItemArray
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:236,1
    - Dst: JsonReader::NextItem
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:238,1
    - Dst: JsonReader::ReadLabel
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:239,1
    - Dst: JsonReader::ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:244,1
    - Dst: JsonReader::ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:246,1
    - Dst: JsonReader::ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:248,1
    - Dst: JsonReader::SkipValue
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:250,1
    - Dst: std::vector::push_back
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:253,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - r
    argTypes:
    - JsonReader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 257
    functionName: nss_test::ReadVec
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 1
    functionsReached:
    - JsonReader::ReadLabel
    - JsonReader::NextItemArray
    - JsonReader::NextItem
    - std::vector::push_back
    - JsonReader::SkipValue
    - JsonReader::ReadHex
    linkageType: ''
    returnType: std::vector<HpkeEncryptVector>
    signature: std::vector<HpkeEncryptVector> ReadVec(JsonReader &r)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: JsonReader::NextItemArray
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:268,1
    - Dst: JsonReader::NextItem
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:270,1
    - Dst: JsonReader::ReadLabel
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:271,1
    - Dst: JsonReader::ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:276,1
    - Dst: JsonReader::ReadInt
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:278,1
    - Dst: JsonReader::ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:280,1
    - Dst: JsonReader::SkipValue
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:282,1
    - Dst: std::vector::push_back
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:285,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - r
    argTypes:
    - JsonReader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 289
    functionName: nss_test::ReadVec
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 1
    functionsReached:
    - JsonReader::ReadLabel
    - JsonReader::NextItemArray
    - JsonReader::NextItem
    - std::vector::push_back
    - JsonReader::ReadInt
    - JsonReader::SkipValue
    - JsonReader::ReadHex
    linkageType: ''
    returnType: std::vector<HpkeExportVector>
    signature: std::vector<HpkeExportVector> ReadVec(JsonReader &r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::assign
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:313,1
    - Dst: std::vector::insert
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:317,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:317,1
    - Dst: std::vector<uint8_t>::begin
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:317,1
    - Dst: std::vector<uint8_t>::end
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:317,1
    - Dst: std::vector::insert
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:318,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:318,1
    - Dst: std::vector::insert
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:319,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:319,1
    - Dst: std::vector<uint8_t>::begin
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:319,1
    - Dst: std::vector<uint8_t>::end
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - sk
    - pk
    argTypes:
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 321
    functionName: nss_test::Pkcs8
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 1
    functionsReached:
    - std::vector<uint8_t>::end
    - std::vector::insert
    - std::vector::end
    - std::vector::assign
    - std::vector<uint8_t>::begin
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> Pkcs8(const std::vector<uint8_t> &sk,\n                                    const
      std::vector<uint8_t> &pk)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: JsonReader::NextItemArray
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:327,1
    - Dst: JsonReader::NextItem
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:344,1
    - Dst: JsonReader::ReadLabel
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:345,1
    - Dst: static_cast<HpkeModeId>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:350,1
    - Dst: JsonReader::ReadInt
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:350,1
    - Dst: static_cast<uint32_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:351,1
    - Dst: static_cast<HpkeKemId>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:353,1
    - Dst: JsonReader::ReadInt
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:353,1
    - Dst: static_cast<uint32_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:354,1
    - Dst: static_cast<HpkeKdfId>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:356,1
    - Dst: JsonReader::ReadInt
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:356,1
    - Dst: static_cast<uint32_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:357,1
    - Dst: static_cast<HpkeAeadId>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:359,1
    - Dst: JsonReader::ReadInt
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:359,1
    - Dst: static_cast<uint32_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:360,1
    - Dst: JsonReader::ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:362,1
    - Dst: JsonReader::ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:364,1
    - Dst: static_cast<uint32_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:365,1
    - Dst: JsonReader::ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:367,1
    - Dst: static_cast<uint32_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:368,1
    - Dst: JsonReader::ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:370,1
    - Dst: static_cast<uint32_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:371,1
    - Dst: JsonReader::ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:373,1
    - Dst: static_cast<uint32_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:374,1
    - Dst: JsonReader::ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:376,1
    - Dst: JsonReader::ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:378,1
    - Dst: JsonReader::ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:380,1
    - Dst: JsonReader::ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:382,1
    - Dst: JsonReader::ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:384,1
    - Dst: nss_test::ReadVec
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:386,1
    - Dst: nss_test::ReadVec
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:388,1
    - Dst: JsonReader::SkipValue
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:390,1
    - Dst: static_cast<uint32_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:394,1
    - Dst: PK11_HPKE_ValidateParameters
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:404,1
    - Dst: nss_test::Pkcs8
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:410,1
    - Dst: nss_test::Pkcs8
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:411,1
    - Dst: std::vector::push_back
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:412,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 82
    argCount: 1
    argNames:
    - r
    argTypes:
    - JsonReader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 323
    functionDepth: 2
    functionLinenumber: 323
    functionLinenumberEnd: 416
    functionName: nss_test::Read
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - JsonReader::ReadLabel
    - JsonReader::NextItemArray
    - JsonReader::NextItem
    - static_cast<HpkeKemId>
    - static_cast<HpkeKdfId>
    - nss_test::Pkcs8
    - PK11_HPKE_ValidateParameters
    - nss_test::ReadVec
    - std::vector::push_back
    - JsonReader::ReadInt
    - JsonReader::SkipValue
    - static_cast<HpkeAeadId>
    - JsonReader::ReadHex
    - static_cast<HpkeModeId>
    linkageType: ''
    returnType: std::vector<HpkeVector>
    signature: std::vector<HpkeVector> Read(JsonReader &r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:424,1
    - Dst: nss_test::TestVectors::MakeContext
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:428,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:430,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:430,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:431,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:431,1
    - Dst: PK11_ImportDERPrivateKeyInfoAndReturnKey
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:433,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:434,1
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:437,1
    - Dst: reset
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:440,1
    - Dst: SECKEY_ConvertToPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:441,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:441,1
    - Dst: reset
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:442,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - vec
    - sk_data
    argTypes:
    - HpkeVector
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 421
    functionDepth: 10
    functionLinenumber: 421
    functionLinenumberEnd: 444
    functionName: nss_test::TestVectors::init
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 0
    functionsReached:
    - ADD_FAILURE
    - nss_test::TestVectors::MakeContext
    - std::vector<uint8_t>::size
    - SECKEY_ConvertToPublicKey
    - static_cast<unsigned int>
    - std::vector<uint8_t>::data
    - reset
    - toUcharPtr
    - get
    - ScopedPK11SlotInfo::get
    - PK11_ImportDERPrivateKeyInfoAndReturnKey
    linkageType: ''
    returnType: bool
    signature: bool init(const HpkeVector &vec, const std::vector<uint8_t> &sk_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::TestVectors::ReadPsk
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:448,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:449,1
    - Dst: HpkeVector::psk_id::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:449,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:450,1
    - Dst: HpkeVector::psk_id::size
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:450,1
    - Dst: ScopedHpkeContext
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:452,1
    - Dst: PK11_HPKE_NewContext
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:452,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - slot
    - vec
    argTypes:
    - ScopedPK11SlotInfo
    - HpkeVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 446
    functionDepth: 9
    functionLinenumber: 446
    functionLinenumberEnd: 454
    functionName: nss_test::TestVectors::MakeContext
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 2
    functionsReached:
    - nss_test::TestVectors::ReadPsk
    - HpkeVector::psk_id::data
    - ScopedPK11SymKey::get
    - ScopedHpkeContext
    - PK11_HPKE_NewContext
    - static_cast<unsigned int>
    - toUcharPtr
    - HpkeVector::psk_id::size
    linkageType: ''
    returnType: ScopedHpkeContext
    signature: "ScopedHpkeContext MakeContext(const ScopedPK11SlotInfo &slot,\n                                         const
      HpkeVector &vec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HpkeVector::psk::empty
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:459,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:460,1
    - Dst: HpkeVector::psk::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:460,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:461,1
    - Dst: HpkeVector::psk::size
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:461,1
    - Dst: PK11_ImportSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:463,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:463,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:465,1
    - Dst: ScopedPK11SymKey::reset
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:466,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - slot
    - vec
    argTypes:
    - ScopedPK11SlotInfo
    - HpkeVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 456
    functionDepth: 6
    functionLinenumber: 456
    functionLinenumberEnd: 469
    functionName: nss_test::TestVectors::ReadPsk
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 2
    functionsReached:
    - EXPECT_NE
    - HpkeVector::psk::empty
    - HpkeVector::psk::size
    - ScopedPK11SymKey::reset
    - HpkeVector::psk::data
    - PK11_ImportSymKey
    - static_cast<unsigned int>
    - toUcharPtr
    - ScopedPK11SlotInfo::get
    linkageType: ''
    returnType: ScopedPK11SymKey
    signature: "ScopedPK11SymKey ReadPsk(const ScopedPK11SlotInfo &slot,\n                                    const
      HpkeVector &vec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:480,1
    - Dst: ctxt::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:480,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:481,1
    - Dst: ctxt::size
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:481,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:484,1
    - Dst: PK11_HPKE_ExportSecret
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:485,1
    - Dst: Endpoint::cx_::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:485,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:487,1
    - Dst: PK11_HPKE_ExportSecret
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:488,1
    - Dst: Endpoint::cx_::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:488,1
    - Dst: CheckEquality
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:492,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:492,1
    - Dst: CheckEquality
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:493,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:493,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - vec
    - sender
    - receiver
    argTypes:
    - HpkeVector
    - Endpoint
    - Endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 477
    functionDepth: 4
    functionLinenumber: 477
    functionLinenumberEnd: 495
    functionName: nss_test::TestVectors::TestExports
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 1
    functionsReached:
    - ASSERT_EQ
    - ctxt::data
    - Endpoint::cx_::get
    - ctxt::size
    - ScopedPK11SymKey::get
    - PK11_HPKE_ExportSecret
    - static_cast<unsigned int>
    - toUcharPtr
    - CheckEquality
    linkageType: ''
    returnType: void
    signature: "void TestExports(const HpkeVector &vec, const Endpoint &sender,\n
      \                  const Endpoint &receiver)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SealOpen
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:500,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - vec
    - sender
    - receiver
    argTypes:
    - HpkeVector
    - Endpoint
    - Endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 502
    functionName: nss_test::TestVectors::TestEncryptions
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 1
    functionsReached:
    - SealOpen
    linkageType: ''
    returnType: void
    signature: "void TestEncryptions(const HpkeVector &vec, const Endpoint &sender,\n
      \                      const Endpoint &receiver)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:508,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:508,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:509,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:509,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:510,1
    - Dst: PK11_HPKE_SetupS
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:510,1
    - Dst: ScopedHpkeContext::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:510,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:510,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:510,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - cx
    - pkE
    - skE
    - pkR
    - info
    argTypes:
    - ScopedHpkeContext
    - ScopedSECKEYPublicKey
    - ScopedSECKEYPrivateKey
    - ScopedSECKEYPublicKey
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 504
    functionDepth: 11
    functionLinenumber: 504
    functionLinenumberEnd: 512
    functionName: nss_test::TestVectors::SetupS
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 1
    functionsReached:
    - std::vector<uint8_t>::size
    - static_cast<unsigned int>
    - std::vector<uint8_t>::data
    - ScopedSECKEYPrivateKey::get
    - toUcharPtr
    - ScopedHpkeContext::get
    - ScopedSECKEYPublicKey::get
    - EXPECT_EQ
    - PK11_HPKE_SetupS
    linkageType: ''
    returnType: void
    signature: "void SetupS(const ScopedHpkeContext &cx, const ScopedSECKEYPublicKey
      &pkE,\n              const ScopedSECKEYPrivateKey &skE,\n              const
      ScopedSECKEYPublicKey &pkR,\n              const std::vector<uint8_t> &info)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:518,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:518,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:519,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:519,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:520,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:520,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:521,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:521,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:522,1
    - Dst: PK11_HPKE_SetupR
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:522,1
    - Dst: ScopedHpkeContext::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:522,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:522,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - cx
    - pkR
    - skR
    - enc
    - info
    argTypes:
    - ScopedHpkeContext
    - ScopedSECKEYPublicKey
    - ScopedSECKEYPrivateKey
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 514
    functionDepth: 11
    functionLinenumber: 514
    functionLinenumberEnd: 524
    functionName: nss_test::TestVectors::SetupR
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 1
    functionsReached:
    - std::vector<uint8_t>::size
    - static_cast<unsigned int>
    - std::vector<uint8_t>::data
    - PK11_HPKE_SetupR
    - ScopedSECKEYPrivateKey::get
    - toUcharPtr
    - ScopedHpkeContext::get
    - ScopedSECKEYPublicKey::get
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: "void SetupR(const ScopedHpkeContext &cx, const ScopedSECKEYPublicKey
      &pkR,\n              const ScopedSECKEYPrivateKey &skR,\n              const
      std::vector<uint8_t> &enc,\n              const std::vector<uint8_t> &info)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::TestVectors::SetupS
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:528,1
    - Dst: const_cast<uint8_t *>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:530,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:531,1
    - Dst: PK11_HPKE_Serialize
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:531,1
    - Dst: Endpoint::pk_::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:531,1
    - Dst: CheckEquality
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:533,1
    - Dst: nss_test::TestVectors::SetupR
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - vec
    - sender
    - receiver
    argTypes:
    - HpkeVector
    - Endpoint
    - Endpoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 526
    functionDepth: 12
    functionLinenumber: 526
    functionLinenumberEnd: 535
    functionName: nss_test::TestVectors::SetupSenderReceiver
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 1
    functionsReached:
    - ASSERT_EQ
    - Endpoint::pk_::get
    - nss_test::TestVectors::SetupS
    - PK11_HPKE_Serialize
    - nss_test::TestVectors::SetupR
    - CheckEquality
    - const_cast<uint8_t *>
    linkageType: ''
    returnType: void
    signature: "void SetupSenderReceiver(const HpkeVector &vec, const Endpoint &sender,\n
      \                          const Endpoint &receiver)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:539,1
    - Dst: Endpoint::init
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:539,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:541,1
    - Dst: Endpoint::init
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:541,1
    - Dst: nss_test::TestVectors::SetupSenderReceiver
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:543,1
    - Dst: nss_test::TestVectors::TestEncryptions
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:544,1
    - Dst: nss_test::TestVectors::TestExports
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - vec
    argTypes:
    - HpkeVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 537
    functionDepth: 13
    functionLinenumber: 537
    functionLinenumberEnd: 546
    functionName: nss_test::TestVectors::RunTestVector
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - nss_test::TestVectors::SetupSenderReceiver
    - nss_test::TestVectors::TestExports
    - Endpoint::init
    - nss_test::TestVectors::TestEncryptions
    linkageType: ''
    returnType: void
    signature: void RunTestVector(const HpkeVector &vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::DataBuffer::Read
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:551,1
    - Dst: RunTestVector
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:554,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 549
    functionDepth: 2
    functionLinenumber: 549
    functionLinenumberEnd: 556
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 0
    functionsReached:
    - RunTestVector
    - nss_test::DataBuffer::Read
    linkageType: ''
    returnType: void
    signature: void TEST_F(TestVectors, HpkeVectors)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:593,1
    - Dst: GenerateKeyPair
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:593,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:596,1
    - Dst: PK11_HPKE_Deserialize
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:596,1
    - Dst: ScopedHpkeContext::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:596,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:598,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:598,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:601,1
    - Dst: PK11_HPKE_Deserialize
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:601,1
    - Dst: ScopedHpkeContext::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:601,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:605,1
    - Dst: PK11_HPKE_SetupS
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:606,1
    - Dst: ScopedHpkeContext::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:606,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:606,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:606,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:607,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:608,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:608,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:611,1
    - Dst: PK11_HPKE_SetupR
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:611,1
    - Dst: ScopedHpkeContext::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:611,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:611,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:612,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:613,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:613,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:614,1
    - Dst: PK11_HPKE_SetupR
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:614,1
    - Dst: ScopedHpkeContext::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:614,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:614,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:615,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:616,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:616,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:619,1
    - Dst: PK11_HPKE_Deserialize
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:619,1
    - Dst: ScopedHpkeContext::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:619,1
    - Dst: ScopedSECKEYPublicKey::reset
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:621,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:622,1
    - Dst: PK11_HPKE_SetupS
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:623,1
    - Dst: ScopedHpkeContext::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:623,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:623,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:623,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:624,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:625,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:625,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:627,1
    - Dst: PK11_HPKE_SetupR
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:627,1
    - Dst: ScopedHpkeContext::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:627,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:627,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:628,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:629,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 577
    functionDepth: 11
    functionLinenumber: 577
    functionLinenumberEnd: 630
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 0
    functionsReached:
    - PORT_GetError
    - ScopedSECKEYPublicKey::reset
    - GenerateKeyPair
    - ASSERT_TRUE
    - PK11_HPKE_SetupR
    - PK11_HPKE_Deserialize
    - ScopedSECKEYPrivateKey::get
    - ScopedHpkeContext::get
    - ScopedSECKEYPublicKey::get
    - EXPECT_EQ
    - PK11_HPKE_SetupS
    linkageType: ''
    returnType: void
    signature: void TEST_F(ModeParameterizedTest, BadEncapsulatedPubKey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SetUpEphemeralContexts
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:638,1
    - Dst: std::get<0>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:638,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:638,1
    - Dst: std::get<1>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:639,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:639,1
    - Dst: std::get<2>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:639,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:639,1
    - Dst: std::get<3>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:640,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:640,1
    - Dst: SealOpen
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:641,1
    - Dst: ExportImportRecvContext
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:642,1
    - Dst: SealOpen
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 632
    functionDepth: 0
    functionLinenumber: 632
    functionLinenumberEnd: 644
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 0
    functionsReached:
    - std::get<2>
    - ExportImportRecvContext
    - std::get<3>
    - SealOpen
    - std::get<1>
    - SetUpEphemeralContexts
    - GetParam
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void TEST_P(ModeParameterizedTest, ContextExportImportEncrypt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SetUpEphemeralContexts
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:652,1
    - Dst: std::get<0>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:652,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:652,1
    - Dst: std::get<1>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:653,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:653,1
    - Dst: std::get<2>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:653,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:653,1
    - Dst: std::get<3>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:654,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:654,1
    - Dst: ExportSecret
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:655,1
    - Dst: ExportSecret
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:656,1
    - Dst: CheckEquality
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:657,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:657,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:657,1
    - Dst: ExportImportRecvContext
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:658,1
    - Dst: ExportSecret
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:659,1
    - Dst: CheckEquality
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:660,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:660,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:660,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 646
    functionDepth: 0
    functionLinenumber: 646
    functionLinenumberEnd: 661
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 0
    functionsReached:
    - std::get<2>
    - ExportImportRecvContext
    - ScopedPK11SymKey::get
    - ExportSecret
    - std::get<3>
    - std::get<1>
    - SetUpEphemeralContexts
    - GetParam
    - std::get<0>
    - CheckEquality
    linkageType: ''
    returnType: void
    signature: void TEST_P(ModeParameterizedTest, ContextExportImportExport)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:669,1
    - Dst: PK11_KeyGen
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:671,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:671,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:672,1
    - Dst: SetUpEphemeralContexts
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:676,1
    - Dst: std::get<0>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:676,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:676,1
    - Dst: std::get<1>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:677,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:677,1
    - Dst: std::get<2>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:677,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:677,1
    - Dst: std::get<3>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:678,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:678,1
    - Dst: SealOpen
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:679,1
    - Dst: ExportImportRecvContext
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:680,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:680,1
    - Dst: SealOpen
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:681,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 663
    functionDepth: 5
    functionLinenumber: 663
    functionLinenumberEnd: 682
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 0
    functionsReached:
    - std::get<2>
    - ExportImportRecvContext
    - ScopedPK11SymKey::get
    - ASSERT_TRUE
    - std::get<3>
    - SealOpen
    - std::get<1>
    - SetUpEphemeralContexts
    - GetParam
    - PK11_KeyGen
    - std::get<0>
    - ScopedPK11SlotInfo::get
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_P(ModeParameterizedTest, ContextExportImportWithWrap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SetUpEphemeralContexts
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:690,1
    - Dst: std::get<0>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:690,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:690,1
    - Dst: std::get<1>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:691,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:691,1
    - Dst: std::get<2>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:691,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:691,1
    - Dst: std::get<3>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:692,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:692,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:695,1
    - Dst: PK11_HPKE_ExportContext
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:696,1
    - Dst: ScopedHpkeContext::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:696,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:697,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:698,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 684
    functionDepth: 3
    functionLinenumber: 684
    functionLinenumberEnd: 699
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 0
    functionsReached:
    - std::get<2>
    - PORT_GetError
    - ScopedHpkeContext::get
    - std::get<3>
    - std::get<1>
    - SetUpEphemeralContexts
    - GetParam
    - PK11_HPKE_ExportContext
    - std::get<0>
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(ModeParameterizedTest, ExportSenderContext)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:707,1
    - Dst: PK11_KeyGen
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:709,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:709,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:710,1
    - Dst: PK11_KeyGen
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:712,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:712,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:713,1
    - Dst: SetUpEphemeralContexts
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:717,1
    - Dst: std::get<0>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:717,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:717,1
    - Dst: std::get<1>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:718,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:718,1
    - Dst: std::get<2>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:718,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:718,1
    - Dst: std::get<3>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:719,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:719,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:722,1
    - Dst: PK11_HPKE_ExportContext
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:723,1
    - Dst: ScopedHpkeContext::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:723,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:723,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:724,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:727,1
    - Dst: PK11_HPKE_ImportContext
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:727,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:727,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:727,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:728,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 701
    functionDepth: 10
    functionLinenumber: 701
    functionLinenumberEnd: 729
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NE
    - PK11_HPKE_ExportContext
    - PK11_HPKE_ImportContext
    - std::get<2>
    - ScopedPK11SymKey::get
    - ScopedSECItem::get
    - PORT_GetError
    - ASSERT_TRUE
    - ScopedHpkeContext::get
    - std::get<3>
    - std::get<1>
    - SetUpEphemeralContexts
    - GetParam
    - PK11_KeyGen
    - std::get<0>
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_P(ModeParameterizedTest, ContextUnwrapBadKey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:734,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:735,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:735,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:736,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:737,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:737,1
    - Dst: SetUpEphemeralContexts
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:740,1
    - Dst: std::get<0>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:740,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:740,1
    - Dst: std::get<1>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:741,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:741,1
    - Dst: std::get<2>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:741,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:741,1
    - Dst: std::get<3>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:742,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:742,1
    - Dst: SealOpen
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:744,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:749,1
    - Dst: PK11_HPKE_Seal
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:750,1
    - Dst: ScopedHpkeContext::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:750,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:751,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:755,1
    - Dst: PK11_HPKE_Open
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:755,1
    - Dst: ScopedHpkeContext::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:755,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:755,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:757,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:757,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:758,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:762,1
    - Dst: PK11_HPKE_Open
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:762,1
    - Dst: ScopedHpkeContext::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:762,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:762,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:764,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:764,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:765,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:770,1
    - Dst: PK11_HPKE_Open
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:770,1
    - Dst: ScopedHpkeContext::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:770,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:770,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:772,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:772,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:773,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:776,1
    - Dst: PK11_HPKE_Open
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:776,1
    - Dst: ScopedHpkeContext::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:776,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:776,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:778,1
    - Dst: CheckEquality
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:780,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:780,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 731
    functionDepth: 3
    functionLinenumber: 731
    functionLinenumberEnd: 781
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 0
    functionsReached:
    - std::vector::data
    - std::vector::size
    - SetUpEphemeralContexts
    - std::get<1>
    - PK11_HPKE_Open
    - std::get<3>
    - GetParam
    - std::get<0>
    - PK11_HPKE_Seal
    - CheckEquality
    - ASSERT_NE
    - EXPECT_NE
    - ScopedSECItem::get
    - static_cast<unsigned int>
    - SealOpen
    - EXPECT_EQ
    - std::get<2>
    - PORT_GetError
    - ScopedHpkeContext::get
    linkageType: ''
    returnType: void
    signature: void TEST_P(ModeParameterizedTest, EphemeralKeys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_HPKE_NewContext
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:785,1
    - Dst: static_cast<HpkeKemId>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:785,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:787,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:788,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:788,1
    - Dst: PK11_HPKE_NewContext
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:790,1
    - Dst: static_cast<HpkeKdfId>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:790,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:792,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:793,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:793,1
    - Dst: PK11_HPKE_NewContext
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:794,1
    - Dst: static_cast<HpkeAeadId>
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:795,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:796,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:797,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:797,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 783
    functionDepth: 9
    functionLinenumber: 783
    functionLinenumberEnd: 798
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 0
    functionsReached:
    - static_cast<HpkeKemId>
    - static_cast<HpkeKdfId>
    - PORT_GetError
    - PK11_HPKE_NewContext
    - static_cast<HpkeAeadId>
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(ModeParameterizedTest, InvalidContextParams)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:804,1
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:808,1
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:819,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:819,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:821,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:822,1
    - Dst: ScopedSECKEYPublicKey::reset
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:823,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:826,1
    - Dst: PK11_HPKE_SetupS
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:826,1
    - Dst: ScopedHpkeContext::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:826,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:827,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:828,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:828,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:832,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:833,1
    - Dst: SECITEM_AllocItem
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:834,1
    - Dst: FAIL
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:835,1
    - Dst: memcpy
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:839,1
    - Dst: ScopedSECKEYPrivateKey::reset
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:841,1
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:841,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:841,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:844,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:845,1
    - Dst: ScopedSECKEYPublicKey::reset
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:846,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:847,1
    - Dst: PK11_HPKE_SetupS
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:847,1
    - Dst: ScopedHpkeContext::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:847,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:848,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:849,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc:849,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 800
    functionDepth: 11
    functionLinenumber: 800
    functionLinenumberEnd: 850
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hpke_unittest.cc
    functionUses: 0
    functionsReached:
    - FAIL
    - memcpy
    - ADD_FAILURE
    - SECOID_FindOIDByTag
    - PK11_GenerateKeyPair
    - ScopedSECKEYPublicKey::get
    - ScopedSECKEYPublicKey::reset
    - PORT_GetError
    - ASSERT_TRUE
    - SECITEM_AllocItem
    - ScopedSECKEYPrivateKey::reset
    - ScopedHpkeContext::get
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - PK11_HPKE_SetupS
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(ModeParameterizedTest, InvalidReceiverKeyType)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - mech
    - hash_oid
    - combo
    argTypes:
    - CK_MECHANISM_TYPE
    - SECOidTag
    - CK_MECHANISM_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 31
    functionName: nss_test::Pk11SignatureTest::Pk11SignatureTest
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_signature_test.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Pk11SignatureTest(CK_MECHANISM_TYPE mech, SECOidTag hash_oid,\n
      \                   CK_MECHANISM_TYPE combo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mech
    argTypes:
    - CK_MECHANISM_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: nss_test::Pk11SignatureTest::Pk11SignatureTest
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_signature_test.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Pk11SignatureTest(CK_MECHANISM_TYPE mech)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: nss_test::Pk11SignatureTest::parameters
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_signature_test.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECItem
    signature: SECItem * parameters() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: nss_test::Pk11SignatureTest::mechanism
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_signature_test.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_MECHANISM_TYPE
    signature: CK_MECHANISM_TYPE mechanism() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - skip_raw
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: nss_test::Pk11SignatureTest::setSkipRaw
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_signature_test.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setSkipRaw(bool skip_raw)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_ExportDERPrivateKeyInfo
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.h:42,1
    - Dst: ScopedSECKEYPrivateKey*::get
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.h:42,1
    - Dst: Assign
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.h:46,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.h:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - key
    - ' pkcs8'
    argTypes:
    - ScopedSECKEYPrivateKey*
    - DataBuffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 49
    functionName: nss_test::Pk11SignatureTest::ExportPrivateKey
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_signature_test.h
    functionUses: 0
    functionsReached:
    - ScopedSECKEYPrivateKey*::get
    - Assign
    - PK11_ExportDERPrivateKeyInfo
    - SECITEM_ZfreeItem
    linkageType: ''
    returnType: bool
    signature: bool ExportPrivateKey(ScopedSECKEYPrivateKey* key, DataBuffer& pkcs8)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DataBuffer*::Allocate
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.h:55,1
    - Dst: static_cast<size_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.h:55,1
    - Dst: HASH_ResultLenByOidTag
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.h:55,1
    - Dst: PK11_HashBuf
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.h:57,1
    - Dst: DataBuffer*::data
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.h:57,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.h:57,1
    - Dst: len
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.h:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' data'
    - hash
    argTypes:
    - DataBuffer
    - DataBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 54
    functionDepth: 10
    functionLinenumber: 54
    functionLinenumberEnd: 59
    functionName: nss_test::Pk11SignatureTest::ComputeHash
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_signature_test.h
    functionUses: 0
    functionsReached:
    - HASH_ResultLenByOidTag
    - PK11_HashBuf
    - DataBuffer*::data
    - DataBuffer*::Allocate
    - static_cast<size_t>
    - len
    - data
    linkageType: ''
    returnType: bool
    signature: bool ComputeHash(const DataBuffer& data, DataBuffer* hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::Pk11SignatureTest::Verify
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.h:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' pubKey'
    - ' data'
    - ' sig'
    argTypes:
    - ScopedSECKEYPublicKey
    - DataBuffer
    - DataBuffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: nss_test::Pk11SignatureTest::Verify
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_signature_test.h
    functionUses: 5
    functionsReached:
    - nss_test::Pk11SignatureTest::Verify
    linkageType: ''
    returnType: void
    signature: "void Verify(ScopedSECKEYPublicKey& pubKey, const DataBuffer& data,\n
      \             const DataBuffer& sig)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::Pk11SignatureTest::ImportPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.h:81,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.h:82,1
    - Dst: nss_test::Pk11SignatureTest::Verify
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.h:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' params'
    - ' sig'
    - valid
    argTypes:
    - Pkcs11SignatureTestParams
    - DataBuffer
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 84
    functionName: nss_test::Pk11SignatureTest::Verify
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_signature_test.h
    functionUses: 6
    functionsReached:
    - nss_test::Pk11SignatureTest::Verify
    - nss_test::Pk11SignatureTest::ImportPublicKey
    - ASSERT_TRUE
    linkageType: ''
    returnType: void
    signature: "void Verify(const Pkcs11SignatureTestParams& params, const DataBuffer&
      sig,\n              bool valid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::Pk11SignatureTest::Verify
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.h:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' params'
    - valid
    argTypes:
    - Pkcs11SignatureTestParams
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: nss_test::Pk11SignatureTest::Verify
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_signature_test.h
    functionUses: 7
    functionsReached:
    - nss_test::Pk11SignatureTest::Verify
    linkageType: ''
    returnType: void
    signature: void Verify(const Pkcs11SignatureTestParams& params, bool valid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::Pk11SignatureTest::Verify
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.h:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' params'
    argTypes:
    - Pkcs11SignatureTestParams
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: nss_test::Pk11SignatureTest::Verify
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_signature_test.h
    functionUses: 8
    functionsReached:
    - nss_test::Pk11SignatureTest::Verify
    linkageType: ''
    returnType: void
    signature: void Verify(const Pkcs11SignatureTestParams& params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.h:97,1
    - Dst: nss_test::Pk11SignatureTest::ImportPrivateKeyAndSignHashedData
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.h:97,1
    - Dst: nss_test::Pk11SignatureTest::Verify
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.h:99,1
    - Dst: nss_test::Pk11SignatureTest::Verify
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.h:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' params'
    argTypes:
    - Pkcs11SignatureTestParams
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 101
    functionName: nss_test::Pk11SignatureTest::SignAndVerify
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_signature_test.h
    functionUses: 0
    functionsReached:
    - nss_test::Pk11SignatureTest::Verify
    - nss_test::Pk11SignatureTest::ImportPrivateKeyAndSignHashedData
    - ASSERT_TRUE
    linkageType: ''
    returnType: void
    signature: void SignAndVerify(const Pkcs11SignatureTestParams& params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::Pk11SignatureTest::ImportPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.h:104,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.h:105,1
    - Dst: nss_test::Pk11SignatureTest::SignRaw
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.h:107,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.h:108,1
    - Dst: nss_test::Pk11SignatureTest::Verify
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.h:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' params'
    argTypes:
    - Pkcs11SignatureTestParams
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 110
    functionName: nss_test::Pk11SignatureTest::SignAndVerifyRaw
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_signature_test.h
    functionUses: 0
    functionsReached:
    - nss_test::Pk11SignatureTest::ImportPrivateKey
    - nss_test::Pk11SignatureTest::Verify
    - nss_test::Pk11SignatureTest::SignRaw
    - EXPECT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void SignAndVerifyRaw(const Pkcs11SignatureTestParams& params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::Pk11SignatureTest::ImportPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.h:116,1
    - Dst: nss_test::Pk11SignatureTest::ExportPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.h:117,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.h:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' k'
    argTypes:
    - DataBuffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 114
    functionDepth: 3
    functionLinenumber: 114
    functionLinenumberEnd: 119
    functionName: nss_test::Pk11SignatureTest::ImportExport
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_signature_test.h
    functionUses: 0
    functionsReached:
    - nss_test::Pk11SignatureTest::ImportPrivateKey
    - EXPECT_EQ
    - nss_test::Pk11SignatureTest::ExportPrivateKey
    linkageType: ''
    returnType: void
    signature: void ImportExport(const DataBuffer& k)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - mech
    - hash_oid
    - combo
    argTypes:
    - CK_MECHANISM_TYPE
    - SECOidTag
    - CK_MECHANISM_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 31
    functionName: nss_test::Pk11SignatureTest::Pk11SignatureTest
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_signature_test.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Pk11SignatureTest(CK_MECHANISM_TYPE mech, SECOidTag hash_oid,\n
      \                   CK_MECHANISM_TYPE combo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mech
    argTypes:
    - CK_MECHANISM_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: nss_test::Pk11SignatureTest::Pk11SignatureTest
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_signature_test.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Pk11SignatureTest(CK_MECHANISM_TYPE mech)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: nss_test::Pk11SignatureTest::parameters
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_signature_test.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECItem
    signature: SECItem * parameters() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: nss_test::Pk11SignatureTest::mechanism
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_signature_test.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_MECHANISM_TYPE
    signature: CK_MECHANISM_TYPE mechanism() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - skip_raw
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: nss_test::Pk11SignatureTest::setSkipRaw
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_signature_test.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setSkipRaw(bool skip_raw)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PK11_ExportDERPrivateKeyInfo
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.h:42,1
    - Dst: ScopedSECKEYPrivateKey*::get
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.h:42,1
    - Dst: Assign
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.h:46,1
    - Dst: SECITEM_ZfreeItem
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.h:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - key
    - ' pkcs8'
    argTypes:
    - ScopedSECKEYPrivateKey*
    - DataBuffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 49
    functionName: nss_test::Pk11SignatureTest::ExportPrivateKey
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_signature_test.h
    functionUses: 1
    functionsReached:
    - ScopedSECKEYPrivateKey*::get
    - Assign
    - PK11_ExportDERPrivateKeyInfo
    - SECITEM_ZfreeItem
    linkageType: ''
    returnType: bool
    signature: bool ExportPrivateKey(ScopedSECKEYPrivateKey* key, DataBuffer& pkcs8)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DataBuffer*::Allocate
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.h:55,1
    - Dst: static_cast<size_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.h:55,1
    - Dst: HASH_ResultLenByOidTag
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.h:55,1
    - Dst: PK11_HashBuf
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.h:57,1
    - Dst: DataBuffer*::data
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.h:57,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.h:57,1
    - Dst: len
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.h:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' data'
    - hash
    argTypes:
    - DataBuffer
    - DataBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 54
    functionDepth: 10
    functionLinenumber: 54
    functionLinenumberEnd: 59
    functionName: nss_test::Pk11SignatureTest::ComputeHash
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_signature_test.h
    functionUses: 0
    functionsReached:
    - HASH_ResultLenByOidTag
    - PK11_HashBuf
    - DataBuffer*::data
    - DataBuffer*::Allocate
    - static_cast<size_t>
    - len
    - data
    linkageType: ''
    returnType: bool
    signature: bool ComputeHash(const DataBuffer& data, DataBuffer* hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::Pk11SignatureTest::Verify
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.h:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' pubKey'
    - ' data'
    - ' sig'
    argTypes:
    - ScopedSECKEYPublicKey
    - DataBuffer
    - DataBuffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: nss_test::Pk11SignatureTest::Verify
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_signature_test.h
    functionUses: 11
    functionsReached:
    - nss_test::Pk11SignatureTest::Verify
    linkageType: ''
    returnType: void
    signature: "void Verify(ScopedSECKEYPublicKey& pubKey, const DataBuffer& data,\n
      \             const DataBuffer& sig)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::Pk11SignatureTest::ImportPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.h:81,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.h:82,1
    - Dst: nss_test::Pk11SignatureTest::Verify
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.h:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' params'
    - ' sig'
    - valid
    argTypes:
    - Pkcs11SignatureTestParams
    - DataBuffer
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 84
    functionName: nss_test::Pk11SignatureTest::Verify
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_signature_test.h
    functionUses: 12
    functionsReached:
    - nss_test::Pk11SignatureTest::Verify
    - nss_test::Pk11SignatureTest::ImportPublicKey
    - ASSERT_TRUE
    linkageType: ''
    returnType: void
    signature: "void Verify(const Pkcs11SignatureTestParams& params, const DataBuffer&
      sig,\n              bool valid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::Pk11SignatureTest::Verify
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.h:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' params'
    - valid
    argTypes:
    - Pkcs11SignatureTestParams
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: nss_test::Pk11SignatureTest::Verify
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_signature_test.h
    functionUses: 13
    functionsReached:
    - nss_test::Pk11SignatureTest::Verify
    linkageType: ''
    returnType: void
    signature: void Verify(const Pkcs11SignatureTestParams& params, bool valid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::Pk11SignatureTest::Verify
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.h:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' params'
    argTypes:
    - Pkcs11SignatureTestParams
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: nss_test::Pk11SignatureTest::Verify
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_signature_test.h
    functionUses: 14
    functionsReached:
    - nss_test::Pk11SignatureTest::Verify
    linkageType: ''
    returnType: void
    signature: void Verify(const Pkcs11SignatureTestParams& params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.h:97,1
    - Dst: nss_test::Pk11SignatureTest::ImportPrivateKeyAndSignHashedData
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.h:97,1
    - Dst: nss_test::Pk11SignatureTest::Verify
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.h:99,1
    - Dst: nss_test::Pk11SignatureTest::Verify
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.h:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' params'
    argTypes:
    - Pkcs11SignatureTestParams
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 101
    functionName: nss_test::Pk11SignatureTest::SignAndVerify
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_signature_test.h
    functionUses: 0
    functionsReached:
    - nss_test::Pk11SignatureTest::Verify
    - nss_test::Pk11SignatureTest::ImportPrivateKeyAndSignHashedData
    - ASSERT_TRUE
    linkageType: ''
    returnType: void
    signature: void SignAndVerify(const Pkcs11SignatureTestParams& params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::Pk11SignatureTest::ImportPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.h:104,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.h:105,1
    - Dst: nss_test::Pk11SignatureTest::SignRaw
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.h:107,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.h:108,1
    - Dst: nss_test::Pk11SignatureTest::Verify
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.h:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' params'
    argTypes:
    - Pkcs11SignatureTestParams
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 110
    functionName: nss_test::Pk11SignatureTest::SignAndVerifyRaw
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_signature_test.h
    functionUses: 0
    functionsReached:
    - nss_test::Pk11SignatureTest::ImportPrivateKey
    - nss_test::Pk11SignatureTest::Verify
    - nss_test::Pk11SignatureTest::SignRaw
    - EXPECT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void SignAndVerifyRaw(const Pkcs11SignatureTestParams& params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::Pk11SignatureTest::ImportPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.h:116,1
    - Dst: nss_test::Pk11SignatureTest::ExportPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.h:117,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.h:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' k'
    argTypes:
    - DataBuffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 114
    functionDepth: 3
    functionLinenumber: 114
    functionLinenumberEnd: 119
    functionName: nss_test::Pk11SignatureTest::ImportExport
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_signature_test.h
    functionUses: 0
    functionsReached:
    - nss_test::Pk11SignatureTest::ImportPrivateKey
    - EXPECT_EQ
    - nss_test::Pk11SignatureTest::ExportPrivateKey
    linkageType: ''
    returnType: void
    signature: void ImportExport(const DataBuffer& k)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 133
    functionName: nss_test::PK11FindCertsTestBase::PK11FindCertsTestBase
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK11FindCertsTestBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetPath
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:136,1
    - Dst: testing::UnitTest::GetInstance
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:138,1
    - Dst: std::string::append
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:140,1
    - Dst: std::string::append
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:141,1
    - Dst: std::string::append
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:142,1
    - Dst: std::string::append
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:143,1
    - Dst: SECMOD_OpenUserDB
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:144,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:144,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 135
    functionDepth: 10
    functionLinenumber: 135
    functionLinenumberEnd: 146
    functionName: nss_test::PK11FindCertsTestBase::SetUp
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc
    functionUses: 0
    functionsReached:
    - std::string::append
    - SECMOD_OpenUserDB
    - std::string::c_str
    - GetPath
    - testing::UnitTest::GetInstance
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:149,1
    - Dst: SECMOD_CloseUserDB
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:149,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:150,1
    - Dst: GetPath
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:151,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:152,1
    - Dst: unlink
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:152,1
    - Dst: c_str
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:152,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:153,1
    - Dst: unlink
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:153,1
    - Dst: c_str
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 148
    functionDepth: 8
    functionLinenumber: 148
    functionLinenumberEnd: 154
    functionName: nss_test::PK11FindCertsTestBase::TearDown
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - c_str
    - unlink
    - SECMOD_CloseUserDB
    - GetPath
    - PK11_FreeSlot
    linkageType: ''
    returnType: void
    signature: void TearDown()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:164,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:165,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:165,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:166,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:167,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:167,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:168,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:172,1
    - Dst: CERT_NewTempCertificate
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:173,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:174,1
    - Dst: CERT_NewTempCertificate
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:175,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:176,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:177,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:178,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:179,1
    - Dst: CERT_AddCertToListHeadWithData
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:181,1
    - Dst: ScopedCERTCertList::get
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:181,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:182,1
    - Dst: CERT_AddCertToListTailWithData
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:183,1
    - Dst: ScopedCERTCertList::get
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:183,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:184,1
    - Dst: CERT_LIST_HEAD
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:186,1
    - Dst: ScopedCERTCertList::get
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:186,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:187,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:188,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:189,1
    - Dst: CERT_LIST_TAIL
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:191,1
    - Dst: ScopedCERTCertList::get
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:191,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:192,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:193,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 162
    functionDepth: 8
    functionLinenumber: 162
    functionLinenumberEnd: 195
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc
    functionUses: 0
    functionsReached:
    - CERT_LIST_HEAD
    - EXPECT_EQ
    - ASSERT_NE
    - CERT_AddCertToListTailWithData
    - CERT_LIST_TAIL
    - size
    - ScopedCERTCertList::get
    - ASSERT_TRUE
    - CERT_GetDefaultCertDB
    - CERT_AddCertToListHeadWithData
    - const_cast<uint8_t*>
    - CERT_NewTempCertificate
    - data
    linkageType: ''
    returnType: void
    signature: void TEST_F(PK11FindCertsTestBase, CertAddListWithData)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:201,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:201,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:202,1
    - Dst: PK11_FindRawCertsWithSubject
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:205,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:206,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 199
    functionDepth: 5
    functionLinenumber: 199
    functionLinenumberEnd: 208
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_FindRawCertsWithSubject
    - size
    - const_cast<unsigned char*>
    - EXPECT_EQ
    - data
    linkageType: ''
    returnType: void
    signature: void TEST_F(PK11FindRawCertsBySubjectTest, TestNoCertsImportedNoCertsFound)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:215,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:215,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:216,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:217,1
    - Dst: PK11_ImportDERCert
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:218,1
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:222,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:222,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:223,1
    - Dst: PK11_FindRawCertsWithSubject
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:226,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:227,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 212
    functionDepth: 8
    functionLinenumber: 212
    functionLinenumberEnd: 229
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - PK11_FindRawCertsWithSubject
    - size
    - const_cast<unsigned char*>
    - PK11_ImportDERCert
    - EXPECT_EQ
    - data
    linkageType: ''
    returnType: void
    signature: void TEST_F(PK11FindRawCertsBySubjectTest, TestOneCertImportedNoCertsFound)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:234,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:234,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:235,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:236,1
    - Dst: PK11_ImportDERCert
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:237,1
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:241,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:241,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:242,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:243,1
    - Dst: PK11_ImportDERCert
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:244,1
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:248,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:248,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:249,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:250,1
    - Dst: PK11_ImportDERCert
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:251,1
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:256,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:256,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:257,1
    - Dst: PK11_FindRawCertsWithSubject
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:259,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:260,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:261,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:263,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:271,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:272,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:273,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 231
    functionDepth: 8
    functionLinenumber: 231
    functionLinenumberEnd: 274
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - PK11_FindRawCertsWithSubject
    - ASSERT_NE
    - EXPECT_TRUE
    - size
    - const_cast<unsigned char*>
    - PK11_ImportDERCert
    - EXPECT_EQ
    - data
    linkageType: ''
    returnType: void
    signature: void TEST_F(PK11FindRawCertsBySubjectTest, TestMultipleMatchingCertsFound)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:281,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:281,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:282,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:283,1
    - Dst: PK11_ImportDERCert
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:284,1
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:288,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:288,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:289,1
    - Dst: PK11_FindRawCertsWithSubject
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:292,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:293,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:294,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:295,1
    - Dst: PK11_FindRawCertsWithSubject
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:299,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:299,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:301,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 278
    functionDepth: 8
    functionLinenumber: 278
    functionLinenumberEnd: 303
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - PK11_FindRawCertsWithSubject
    - size
    - const_cast<unsigned char*>
    - PK11_ImportDERCert
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - data
    linkageType: ''
    returnType: void
    signature: void TEST_F(PK11FindRawCertsBySubjectTest, TestNoCertsOnInternalSlots)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:341,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:341,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:342,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:343,1
    - Dst: PK11_ImportDERCert
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:343,1
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:348,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:348,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:349,1
    - Dst: PK11_FindRawCertsWithSubject
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:352,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:353,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:354,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:356,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 338
    functionDepth: 8
    functionLinenumber: 338
    functionLinenumberEnd: 362
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - PK11_FindRawCertsWithSubject
    - ASSERT_NE
    - size
    - const_cast<unsigned char*>
    - PK11_ImportDERCert
    - EXPECT_EQ
    - data
    linkageType: ''
    returnType: void
    signature: void TEST_F(PK11FindRawCertsBySubjectTest, TestFindEmptySubject)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:370,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:370,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:371,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:372,1
    - Dst: PK11_ImportDERCert
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:373,1
    - Dst: PK11_FindRawCertsWithSubject
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:379,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:380,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 367
    functionDepth: 8
    functionLinenumber: 367
    functionLinenumberEnd: 382
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - PK11_FindRawCertsWithSubject
    - size
    - const_cast<unsigned char*>
    - PK11_ImportDERCert
    - EXPECT_EQ
    - data
    linkageType: ''
    returnType: void
    signature: void TEST_F(PK11FindRawCertsBySubjectTest, TestSearchForNullSubject)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:442,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:442,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:443,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:446,1
    - Dst: PK11_ImportDERPrivateKeyInfoAndReturnKey
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:446,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:449,1
    - Dst: PK11_GetCertsMatchingPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:452,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:452,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:453,1
    - Dst: CERT_LIST_EMPTY
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 439
    functionDepth: 9
    functionLinenumber: 439
    functionLinenumberEnd: 454
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NE
    - size
    - ASSERT_TRUE
    - const_cast<unsigned char*>
    - CERT_LIST_EMPTY
    - PK11_GetCertsMatchingPrivateKey
    - ScopedSECKEYPrivateKey::get
    - PK11_ImportDERPrivateKeyInfoAndReturnKey
    - data
    linkageType: ''
    returnType: void
    signature: void TEST_F(PK11GetCertsMatchingPrivateKeyTest, TestNoCertsAtAll)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:460,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:460,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:461,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:464,1
    - Dst: PK11_ImportDERPrivateKeyInfoAndReturnKey
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:464,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:467,1
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:472,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:472,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:473,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:474,1
    - Dst: PK11_ImportDERCert
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:475,1
    - Dst: PK11_GetCertsMatchingPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:479,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:479,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:480,1
    - Dst: CERT_LIST_EMPTY
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 457
    functionDepth: 9
    functionLinenumber: 457
    functionLinenumberEnd: 481
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NE
    - size
    - ASSERT_TRUE
    - const_cast<unsigned char*>
    - PK11_ImportDERCert
    - CERT_LIST_EMPTY
    - PK11_GetCertsMatchingPrivateKey
    - ScopedSECKEYPrivateKey::get
    - PK11_ImportDERPrivateKeyInfoAndReturnKey
    - data
    linkageType: ''
    returnType: void
    signature: void TEST_F(PK11GetCertsMatchingPrivateKeyTest, TestNoCertsForKey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:486,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:486,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:487,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:487,1
    - Dst: CERT_LIST_HEAD
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:491,1
    - Dst: CERT_LIST_END
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:491,1
    - Dst: CERT_LIST_NEXT
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:492,1
    - Dst: strcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:494,1
    - Dst: ASSERT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:495,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:499,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:500,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:500,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - ' list'
    - ' expected_subjects'
    argTypes:
    - ScopedCERTCertList
    - std::vector<const char*>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 483
    functionDepth: 1
    functionLinenumber: 483
    functionLinenumberEnd: 502
    functionName: nss_test::CheckCertListForSubjects
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc
    functionUses: 0
    functionsReached:
    - CERT_LIST_NEXT
    - strcmp
    - ASSERT_EQ
    - CERT_LIST_HEAD
    - size
    - ASSERT_TRUE
    - CERT_LIST_END
    - ASSERT_FALSE
    - get
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: "void CheckCertListForSubjects(\n    ScopedCERTCertList& list,\n    const
      std::vector<const char*>& expected_subjects)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:508,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:508,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:509,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:512,1
    - Dst: PK11_ImportDERPrivateKeyInfoAndReturnKey
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:512,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:515,1
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:520,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:520,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:521,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:522,1
    - Dst: PK11_ImportDERCert
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:523,1
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:528,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:528,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:529,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:530,1
    - Dst: PK11_ImportDERCert
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:531,1
    - Dst: PK11_GetCertsMatchingPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:535,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:535,1
    - Dst: nss_test::CheckCertListForSubjects
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 505
    functionDepth: 9
    functionLinenumber: 505
    functionLinenumberEnd: 537
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NE
    - size
    - const_cast<unsigned char*>
    - nss_test::CheckCertListForSubjects
    - PK11_ImportDERCert
    - PK11_GetCertsMatchingPrivateKey
    - ScopedSECKEYPrivateKey::get
    - PK11_ImportDERPrivateKeyInfoAndReturnKey
    - data
    linkageType: ''
    returnType: void
    signature: void TEST_F(PK11GetCertsMatchingPrivateKeyTest, TestOneCertForKey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:543,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:543,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:544,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:547,1
    - Dst: PK11_ImportDERPrivateKeyInfoAndReturnKey
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:547,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:550,1
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:555,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:555,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:556,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:557,1
    - Dst: PK11_ImportDERCert
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:558,1
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:562,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:562,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:563,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:564,1
    - Dst: PK11_ImportDERCert
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:565,1
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:570,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:570,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:571,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:572,1
    - Dst: PK11_ImportDERCert
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:573,1
    - Dst: PK11_GetCertsMatchingPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:577,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:577,1
    - Dst: nss_test::CheckCertListForSubjects
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 540
    functionDepth: 9
    functionLinenumber: 540
    functionLinenumberEnd: 579
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NE
    - size
    - const_cast<unsigned char*>
    - nss_test::CheckCertListForSubjects
    - PK11_ImportDERCert
    - PK11_GetCertsMatchingPrivateKey
    - ScopedSECKEYPrivateKey::get
    - PK11_ImportDERPrivateKeyInfoAndReturnKey
    - data
    linkageType: ''
    returnType: void
    signature: void TEST_F(PK11GetCertsMatchingPrivateKeyTest, TestTwoCertsForKey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:586,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:586,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:587,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:588,1
    - Dst: PK11_ImportDERCert
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:589,1
    - Dst: PK11_FindEncodedCertInSlot
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:595,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:599,1
    - Dst: static_cast<CK_ULONG>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:599,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:604,1
    - Dst: PK11_FindEncodedCertInSlot
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:606,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:606,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:607,1
    - Dst: static_cast<CK_ULONG>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:607,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:613,1
    - Dst: PK11_FindEncodedCertInSlot
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:615,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:615,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:616,1
    - Dst: static_cast<CK_ULONG>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:616,1
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:622,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:622,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:623,1
    - Dst: PK11_FindEncodedCertInSlot
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:625,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:626,1
    - Dst: static_cast<CK_ULONG>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 583
    functionDepth: 8
    functionLinenumber: 583
    functionLinenumberEnd: 628
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NE
    - size
    - static_cast<CK_ULONG>
    - const_cast<unsigned char*>
    - PK11_ImportDERCert
    - PK11_FindEncodedCertInSlot
    - ScopedPK11SlotInfo::get
    - data
    linkageType: ''
    returnType: void
    signature: void TEST_F(PK11FindEncodedCertInSlotTest, TestFindEncodedCert)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 133
    functionName: nss_test::PK11FindCertsTestBase::PK11FindCertsTestBase
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PK11FindCertsTestBase()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetPath
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:136,1
    - Dst: testing::UnitTest::GetInstance
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:138,1
    - Dst: std::string::append
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:140,1
    - Dst: std::string::append
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:141,1
    - Dst: std::string::append
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:142,1
    - Dst: std::string::append
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:143,1
    - Dst: SECMOD_OpenUserDB
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:144,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:144,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 135
    functionDepth: 10
    functionLinenumber: 135
    functionLinenumberEnd: 146
    functionName: nss_test::PK11FindCertsTestBase::SetUp
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc
    functionUses: 0
    functionsReached:
    - std::string::append
    - SECMOD_OpenUserDB
    - std::string::c_str
    - GetPath
    - testing::UnitTest::GetInstance
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:149,1
    - Dst: SECMOD_CloseUserDB
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:149,1
    - Dst: PK11_FreeSlot
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:150,1
    - Dst: GetPath
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:151,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:152,1
    - Dst: unlink
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:152,1
    - Dst: c_str
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:152,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:153,1
    - Dst: unlink
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:153,1
    - Dst: c_str
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 148
    functionDepth: 8
    functionLinenumber: 148
    functionLinenumberEnd: 154
    functionName: nss_test::PK11FindCertsTestBase::TearDown
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - c_str
    - unlink
    - SECMOD_CloseUserDB
    - GetPath
    - PK11_FreeSlot
    linkageType: ''
    returnType: void
    signature: void TearDown()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:164,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:165,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:165,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:166,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:167,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:167,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:168,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:172,1
    - Dst: CERT_NewTempCertificate
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:173,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:174,1
    - Dst: CERT_NewTempCertificate
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:175,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:176,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:177,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:178,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:179,1
    - Dst: CERT_AddCertToListHeadWithData
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:181,1
    - Dst: ScopedCERTCertList::get
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:181,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:182,1
    - Dst: CERT_AddCertToListTailWithData
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:183,1
    - Dst: ScopedCERTCertList::get
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:183,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:184,1
    - Dst: CERT_LIST_HEAD
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:186,1
    - Dst: ScopedCERTCertList::get
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:186,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:187,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:188,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:189,1
    - Dst: CERT_LIST_TAIL
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:191,1
    - Dst: ScopedCERTCertList::get
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:191,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:192,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:193,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 162
    functionDepth: 8
    functionLinenumber: 162
    functionLinenumberEnd: 195
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc
    functionUses: 0
    functionsReached:
    - CERT_LIST_HEAD
    - EXPECT_EQ
    - ASSERT_NE
    - CERT_AddCertToListTailWithData
    - CERT_LIST_TAIL
    - size
    - ScopedCERTCertList::get
    - ASSERT_TRUE
    - CERT_GetDefaultCertDB
    - CERT_AddCertToListHeadWithData
    - const_cast<uint8_t*>
    - CERT_NewTempCertificate
    - data
    linkageType: ''
    returnType: void
    signature: void TEST_F(PK11FindCertsTestBase, CertAddListWithData)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:201,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:201,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:202,1
    - Dst: PK11_FindRawCertsWithSubject
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:205,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:206,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 199
    functionDepth: 5
    functionLinenumber: 199
    functionLinenumberEnd: 208
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_FindRawCertsWithSubject
    - size
    - const_cast<unsigned char*>
    - EXPECT_EQ
    - data
    linkageType: ''
    returnType: void
    signature: void TEST_F(PK11FindRawCertsBySubjectTest, TestNoCertsImportedNoCertsFound)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:215,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:215,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:216,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:217,1
    - Dst: PK11_ImportDERCert
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:218,1
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:222,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:222,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:223,1
    - Dst: PK11_FindRawCertsWithSubject
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:226,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:227,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 212
    functionDepth: 8
    functionLinenumber: 212
    functionLinenumberEnd: 229
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - PK11_FindRawCertsWithSubject
    - size
    - const_cast<unsigned char*>
    - PK11_ImportDERCert
    - EXPECT_EQ
    - data
    linkageType: ''
    returnType: void
    signature: void TEST_F(PK11FindRawCertsBySubjectTest, TestOneCertImportedNoCertsFound)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:234,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:234,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:235,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:236,1
    - Dst: PK11_ImportDERCert
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:237,1
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:241,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:241,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:242,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:243,1
    - Dst: PK11_ImportDERCert
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:244,1
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:248,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:248,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:249,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:250,1
    - Dst: PK11_ImportDERCert
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:251,1
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:256,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:256,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:257,1
    - Dst: PK11_FindRawCertsWithSubject
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:259,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:260,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:261,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:263,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:271,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:272,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:273,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 231
    functionDepth: 8
    functionLinenumber: 231
    functionLinenumberEnd: 274
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - PK11_FindRawCertsWithSubject
    - ASSERT_NE
    - EXPECT_TRUE
    - size
    - const_cast<unsigned char*>
    - PK11_ImportDERCert
    - EXPECT_EQ
    - data
    linkageType: ''
    returnType: void
    signature: void TEST_F(PK11FindRawCertsBySubjectTest, TestMultipleMatchingCertsFound)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:281,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:281,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:282,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:283,1
    - Dst: PK11_ImportDERCert
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:284,1
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:288,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:288,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:289,1
    - Dst: PK11_FindRawCertsWithSubject
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:292,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:293,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:294,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:295,1
    - Dst: PK11_FindRawCertsWithSubject
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:299,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:299,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:301,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 278
    functionDepth: 8
    functionLinenumber: 278
    functionLinenumberEnd: 303
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - PK11_FindRawCertsWithSubject
    - size
    - const_cast<unsigned char*>
    - PK11_ImportDERCert
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - data
    linkageType: ''
    returnType: void
    signature: void TEST_F(PK11FindRawCertsBySubjectTest, TestNoCertsOnInternalSlots)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:341,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:341,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:342,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:343,1
    - Dst: PK11_ImportDERCert
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:343,1
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:348,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:348,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:349,1
    - Dst: PK11_FindRawCertsWithSubject
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:352,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:353,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:354,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:356,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 338
    functionDepth: 8
    functionLinenumber: 338
    functionLinenumberEnd: 362
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - PK11_FindRawCertsWithSubject
    - ASSERT_NE
    - size
    - const_cast<unsigned char*>
    - PK11_ImportDERCert
    - EXPECT_EQ
    - data
    linkageType: ''
    returnType: void
    signature: void TEST_F(PK11FindRawCertsBySubjectTest, TestFindEmptySubject)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:370,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:370,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:371,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:372,1
    - Dst: PK11_ImportDERCert
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:373,1
    - Dst: PK11_FindRawCertsWithSubject
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:379,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:380,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 367
    functionDepth: 8
    functionLinenumber: 367
    functionLinenumberEnd: 382
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - PK11_FindRawCertsWithSubject
    - size
    - const_cast<unsigned char*>
    - PK11_ImportDERCert
    - EXPECT_EQ
    - data
    linkageType: ''
    returnType: void
    signature: void TEST_F(PK11FindRawCertsBySubjectTest, TestSearchForNullSubject)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:442,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:442,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:443,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:446,1
    - Dst: PK11_ImportDERPrivateKeyInfoAndReturnKey
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:446,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:449,1
    - Dst: PK11_GetCertsMatchingPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:452,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:452,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:453,1
    - Dst: CERT_LIST_EMPTY
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 439
    functionDepth: 9
    functionLinenumber: 439
    functionLinenumberEnd: 454
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NE
    - size
    - ASSERT_TRUE
    - const_cast<unsigned char*>
    - CERT_LIST_EMPTY
    - PK11_GetCertsMatchingPrivateKey
    - ScopedSECKEYPrivateKey::get
    - PK11_ImportDERPrivateKeyInfoAndReturnKey
    - data
    linkageType: ''
    returnType: void
    signature: void TEST_F(PK11GetCertsMatchingPrivateKeyTest, TestNoCertsAtAll)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:460,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:460,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:461,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:464,1
    - Dst: PK11_ImportDERPrivateKeyInfoAndReturnKey
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:464,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:467,1
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:472,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:472,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:473,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:474,1
    - Dst: PK11_ImportDERCert
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:475,1
    - Dst: PK11_GetCertsMatchingPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:479,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:479,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:480,1
    - Dst: CERT_LIST_EMPTY
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 457
    functionDepth: 9
    functionLinenumber: 457
    functionLinenumberEnd: 481
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NE
    - size
    - ASSERT_TRUE
    - const_cast<unsigned char*>
    - PK11_ImportDERCert
    - CERT_LIST_EMPTY
    - PK11_GetCertsMatchingPrivateKey
    - ScopedSECKEYPrivateKey::get
    - PK11_ImportDERPrivateKeyInfoAndReturnKey
    - data
    linkageType: ''
    returnType: void
    signature: void TEST_F(PK11GetCertsMatchingPrivateKeyTest, TestNoCertsForKey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:486,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:486,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:487,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:487,1
    - Dst: CERT_LIST_HEAD
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:491,1
    - Dst: CERT_LIST_END
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:491,1
    - Dst: CERT_LIST_NEXT
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:492,1
    - Dst: strcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:494,1
    - Dst: ASSERT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:495,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:499,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:500,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:500,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - ' list'
    - ' expected_subjects'
    argTypes:
    - ScopedCERTCertList
    - std::vector<const char*>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 483
    functionDepth: 1
    functionLinenumber: 483
    functionLinenumberEnd: 502
    functionName: nss_test::CheckCertListForSubjects
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc
    functionUses: 2
    functionsReached:
    - CERT_LIST_NEXT
    - strcmp
    - ASSERT_EQ
    - CERT_LIST_HEAD
    - size
    - ASSERT_TRUE
    - CERT_LIST_END
    - ASSERT_FALSE
    - get
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: "void CheckCertListForSubjects(\n    ScopedCERTCertList& list,\n    const
      std::vector<const char*>& expected_subjects)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:508,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:508,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:509,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:512,1
    - Dst: PK11_ImportDERPrivateKeyInfoAndReturnKey
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:512,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:515,1
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:520,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:520,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:521,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:522,1
    - Dst: PK11_ImportDERCert
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:523,1
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:528,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:528,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:529,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:530,1
    - Dst: PK11_ImportDERCert
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:531,1
    - Dst: PK11_GetCertsMatchingPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:535,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:535,1
    - Dst: nss_test::CheckCertListForSubjects
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 505
    functionDepth: 9
    functionLinenumber: 505
    functionLinenumberEnd: 537
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NE
    - size
    - const_cast<unsigned char*>
    - nss_test::CheckCertListForSubjects
    - PK11_ImportDERCert
    - PK11_GetCertsMatchingPrivateKey
    - ScopedSECKEYPrivateKey::get
    - PK11_ImportDERPrivateKeyInfoAndReturnKey
    - data
    linkageType: ''
    returnType: void
    signature: void TEST_F(PK11GetCertsMatchingPrivateKeyTest, TestOneCertForKey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:543,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:543,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:544,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:547,1
    - Dst: PK11_ImportDERPrivateKeyInfoAndReturnKey
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:547,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:550,1
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:555,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:555,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:556,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:557,1
    - Dst: PK11_ImportDERCert
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:558,1
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:562,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:562,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:563,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:564,1
    - Dst: PK11_ImportDERCert
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:565,1
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:570,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:570,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:571,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:572,1
    - Dst: PK11_ImportDERCert
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:573,1
    - Dst: PK11_GetCertsMatchingPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:577,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:577,1
    - Dst: nss_test::CheckCertListForSubjects
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 540
    functionDepth: 9
    functionLinenumber: 540
    functionLinenumberEnd: 579
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NE
    - size
    - const_cast<unsigned char*>
    - nss_test::CheckCertListForSubjects
    - PK11_ImportDERCert
    - PK11_GetCertsMatchingPrivateKey
    - ScopedSECKEYPrivateKey::get
    - PK11_ImportDERPrivateKeyInfoAndReturnKey
    - data
    linkageType: ''
    returnType: void
    signature: void TEST_F(PK11GetCertsMatchingPrivateKeyTest, TestTwoCertsForKey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:586,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:586,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:587,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:588,1
    - Dst: PK11_ImportDERCert
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:589,1
    - Dst: PK11_FindEncodedCertInSlot
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:595,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:599,1
    - Dst: static_cast<CK_ULONG>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:599,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:604,1
    - Dst: PK11_FindEncodedCertInSlot
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:606,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:606,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:607,1
    - Dst: static_cast<CK_ULONG>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:607,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:613,1
    - Dst: PK11_FindEncodedCertInSlot
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:615,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:615,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:616,1
    - Dst: static_cast<CK_ULONG>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:616,1
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:622,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:622,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:623,1
    - Dst: PK11_FindEncodedCertInSlot
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:625,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:626,1
    - Dst: static_cast<CK_ULONG>
      Src: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc:626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 583
    functionDepth: 8
    functionLinenumber: 583
    functionLinenumberEnd: 628
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_find_certs_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_NE
    - size
    - static_cast<CK_ULONG>
    - const_cast<unsigned char*>
    - PK11_ImportDERCert
    - PK11_FindEncodedCertInSlot
    - ScopedPK11SlotInfo::get
    - data
    linkageType: ''
    returnType: void
    signature: void TEST_F(PK11FindEncodedCertInSlotTest, TestFindEncodedCert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_Derive
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:32,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:32,1
    - Dst: nss_test::EncryptDeriveTest::derive_mech
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:32,1
    - Dst: nss_test::EncryptDeriveTest::derive_param
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:33,1
    - Dst: nss_test::EncryptDeriveTest::encrypt_mech
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:33,1
    - Dst: nss_test::EncryptDeriveTest::keysize
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:34,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:35,1
    - Dst: ASSERT_GE
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:38,1
    - Dst: nss_test::EncryptDeriveTest::keysize
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:38,1
    - Dst: nss_test::EncryptDeriveTest::GetKeyData
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:39,1
    - Dst: nss_test::EncryptDeriveTest::keysize
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:39,1
    - Dst: nss_test::EncryptDeriveTest::RemoveChecksum
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:40,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:44,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:44,1
    - Dst: nss_test::EncryptDeriveTest::encrypt_mech
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:44,1
    - Dst: nss_test::EncryptDeriveTest::encrypt_param
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:44,1
    - Dst: nss_test::EncryptDeriveTest::keysize
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:45,1
    - Dst: nss_test::EncryptDeriveTest::keysize
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:46,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:47,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:48,1
    - Dst: nss_test::EncryptDeriveTest::keysize
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:48,1
    - Dst: static_cast<size_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:48,1
    - Dst: nss_test::EncryptDeriveTest::RemoveChecksum
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:49,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:51,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:51,1
    - Dst: nss_test::EncryptDeriveTest::keysize
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:51,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:52,1
    - Dst: nss_test::EncryptDeriveTest::keysize
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 31
    functionDepth: 4
    functionLinenumber: 31
    functionLinenumberEnd: 53
    functionName: nss_test::EncryptDeriveTest::TestEncryptDerive
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - ASSERT_EQ
    - nss_test::EncryptDeriveTest::encrypt_mech
    - static_cast<size_t>
    - nss_test::EncryptDeriveTest::keysize
    - nss_test::EncryptDeriveTest::GetKeyData
    - nss_test::EncryptDeriveTest::derive_mech
    - ASSERT_GE
    - EXPECT_EQ
    - DataBuffer
    - ASSERT_TRUE
    - nss_test::EncryptDeriveTest::RemoveChecksum
    - PK11_Derive
    - nss_test::EncryptDeriveTest::encrypt_param
    - get
    - nss_test::EncryptDeriveTest::derive_param
    linkageType: ''
    returnType: void
    signature: void TestEncryptDerive()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: nss_test::EncryptDeriveTest::keysize
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int keysize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: nss_test::EncryptDeriveTest::encrypt_mech
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc
    functionUses: 1
    functionsReached:
    - GetParam
    linkageType: ''
    returnType: CK_MECHANISM_TYPE
    signature: CK_MECHANISM_TYPE encrypt_mech() const
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::EncryptDeriveTest::encrypt_mech
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:62,1
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 86
    functionName: nss_test::EncryptDeriveTest::derive_mech
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc
    functionUses: 1
    functionsReached:
    - nss_test::EncryptDeriveTest::encrypt_mech
    - ADD_FAILURE
    linkageType: ''
    returnType: CK_MECHANISM_TYPE
    signature: CK_MECHANISM_TYPE derive_mech() const
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::EncryptDeriveTest::encrypt_mech
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:94,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:101,1
    - Dst: nss_test::EncryptDeriveTest::keysize
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:102,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:103,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:108,1
    - Dst: nss_test::EncryptDeriveTest::keysize
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:109,1
    - Dst: PORT_Memcpy
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:110,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:111,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:120,1
    - Dst: nss_test::EncryptDeriveTest::keysize
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:121,1
    - Dst: PORT_Memcpy
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:122,1
    - Dst: nss_test::EncryptDeriveTest::keysize
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:122,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:123,1
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:128,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 132
    functionName: nss_test::EncryptDeriveTest::derive_param
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc
    functionUses: 1
    functionsReached:
    - nss_test::EncryptDeriveTest::encrypt_mech
    - nss_test::EncryptDeriveTest::keysize
    - PORT_Memcpy
    - ADD_FAILURE
    - reinterpret_cast<uint8_t*>
    - toUcharPtr
    linkageType: ''
    returnType: SECItem
    signature: SECItem * derive_param() const
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::EncryptDeriveTest::encrypt_mech
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:137,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:153,1
    - Dst: nss_test::EncryptDeriveTest::keysize
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:154,1
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:158,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 162
    functionName: nss_test::EncryptDeriveTest::encrypt_param
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc
    functionUses: 1
    functionsReached:
    - toUcharPtr
    - nss_test::EncryptDeriveTest::encrypt_mech
    - nss_test::EncryptDeriveTest::keysize
    - ADD_FAILURE
    linkageType: ''
    returnType: SECItem
    signature: SECItem * encrypt_param() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:165,1
    - Dst: PK11_GetBestSlot
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:165,1
    - Dst: nss_test::EncryptDeriveTest::derive_mech
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:165,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:166,1
    - Dst: reset
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:168,1
    - Dst: PK11_TokenKeyGenWithFlags
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:168,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:168,1
    - Dst: nss_test::EncryptDeriveTest::encrypt_mech
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:168,1
    - Dst: nss_test::EncryptDeriveTest::keysize
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:169,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 164
    functionDepth: 8
    functionLinenumber: 164
    functionLinenumberEnd: 172
    functionName: nss_test::EncryptDeriveTest::SetUp
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc
    functionUses: 0
    functionsReached:
    - nss_test::EncryptDeriveTest::encrypt_mech
    - nss_test::EncryptDeriveTest::keysize
    - nss_test::EncryptDeriveTest::derive_mech
    - PK11_GetBestSlot
    - PK11_TokenKeyGenWithFlags
    - ASSERT_TRUE
    - reset
    - get
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:175,1
    - Dst: PK11_ExtractKeyValue
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:175,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:175,1
    - Dst: PK11_GetKeyData
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:176,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:176,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:177,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:178,1
    - Dst: static_cast<size_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:178,1
    - Dst: PORT_Memcpy
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ' key'
    - buf
    - max_len
    argTypes:
    - ScopedPK11SymKey
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 180
    functionName: nss_test::EncryptDeriveTest::GetKeyData
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc
    functionUses: 1
    functionsReached:
    - ASSERT_EQ
    - PORT_Memcpy
    - ASSERT_TRUE
    - PK11_ExtractKeyValue
    - PK11_GetKeyData
    - static_cast<size_t>
    - get
    linkageType: ''
    returnType: void
    signature: void GetKeyData(ScopedPK11SymKey& key, uint8_t* buf, size_t max_len)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::EncryptDeriveTest::encrypt_mech
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:184,1
    - Dst: nss_test::EncryptDeriveTest::encrypt_mech
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:184,1
    - Dst: nss_test::EncryptDeriveTest::keysize
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:187,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - key_data
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 190
    functionName: nss_test::EncryptDeriveTest::RemoveChecksum
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc
    functionUses: 1
    functionsReached:
    - nss_test::EncryptDeriveTest::encrypt_mech
    - nss_test::EncryptDeriveTest::keysize
    linkageType: ''
    returnType: void
    signature: void RemoveChecksum(uint8_t* key_data) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestEncryptDerive
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 196
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc
    functionUses: 0
    functionsReached:
    - TestEncryptDerive
    linkageType: ''
    returnType: void
    signature: void TEST_P(EncryptDeriveTest, Test)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 219
    functionName: nss_test::EncryptDerive3Test::keysize
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int keysize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestEncryptDerive
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 222
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc
    functionUses: 0
    functionsReached:
    - TestEncryptDerive
    linkageType: ''
    returnType: void
    signature: void TEST_P(EncryptDerive3Test, Test)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_Derive
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:32,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:32,1
    - Dst: nss_test::EncryptDeriveTest::derive_mech
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:32,1
    - Dst: nss_test::EncryptDeriveTest::derive_param
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:33,1
    - Dst: nss_test::EncryptDeriveTest::encrypt_mech
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:33,1
    - Dst: nss_test::EncryptDeriveTest::keysize
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:34,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:35,1
    - Dst: ASSERT_GE
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:38,1
    - Dst: nss_test::EncryptDeriveTest::keysize
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:38,1
    - Dst: nss_test::EncryptDeriveTest::GetKeyData
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:39,1
    - Dst: nss_test::EncryptDeriveTest::keysize
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:39,1
    - Dst: nss_test::EncryptDeriveTest::RemoveChecksum
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:40,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:44,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:44,1
    - Dst: nss_test::EncryptDeriveTest::encrypt_mech
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:44,1
    - Dst: nss_test::EncryptDeriveTest::encrypt_param
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:44,1
    - Dst: nss_test::EncryptDeriveTest::keysize
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:45,1
    - Dst: nss_test::EncryptDeriveTest::keysize
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:46,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:47,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:48,1
    - Dst: nss_test::EncryptDeriveTest::keysize
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:48,1
    - Dst: static_cast<size_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:48,1
    - Dst: nss_test::EncryptDeriveTest::RemoveChecksum
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:49,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:51,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:51,1
    - Dst: nss_test::EncryptDeriveTest::keysize
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:51,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:52,1
    - Dst: nss_test::EncryptDeriveTest::keysize
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 31
    functionDepth: 4
    functionLinenumber: 31
    functionLinenumberEnd: 53
    functionName: nss_test::EncryptDeriveTest::TestEncryptDerive
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - ASSERT_EQ
    - nss_test::EncryptDeriveTest::encrypt_mech
    - static_cast<size_t>
    - nss_test::EncryptDeriveTest::keysize
    - nss_test::EncryptDeriveTest::GetKeyData
    - nss_test::EncryptDeriveTest::derive_mech
    - ASSERT_GE
    - EXPECT_EQ
    - DataBuffer
    - ASSERT_TRUE
    - nss_test::EncryptDeriveTest::RemoveChecksum
    - PK11_Derive
    - nss_test::EncryptDeriveTest::encrypt_param
    - get
    - nss_test::EncryptDeriveTest::derive_param
    linkageType: ''
    returnType: void
    signature: void TestEncryptDerive()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: nss_test::EncryptDeriveTest::keysize
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int keysize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: nss_test::EncryptDeriveTest::encrypt_mech
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc
    functionUses: 7
    functionsReached:
    - GetParam
    linkageType: ''
    returnType: CK_MECHANISM_TYPE
    signature: CK_MECHANISM_TYPE encrypt_mech() const
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::EncryptDeriveTest::encrypt_mech
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:62,1
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 86
    functionName: nss_test::EncryptDeriveTest::derive_mech
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc
    functionUses: 3
    functionsReached:
    - nss_test::EncryptDeriveTest::encrypt_mech
    - ADD_FAILURE
    linkageType: ''
    returnType: CK_MECHANISM_TYPE
    signature: CK_MECHANISM_TYPE derive_mech() const
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::EncryptDeriveTest::encrypt_mech
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:94,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:101,1
    - Dst: nss_test::EncryptDeriveTest::keysize
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:102,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:103,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:108,1
    - Dst: nss_test::EncryptDeriveTest::keysize
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:109,1
    - Dst: PORT_Memcpy
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:110,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:111,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:120,1
    - Dst: nss_test::EncryptDeriveTest::keysize
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:121,1
    - Dst: PORT_Memcpy
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:122,1
    - Dst: nss_test::EncryptDeriveTest::keysize
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:122,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:123,1
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:128,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 132
    functionName: nss_test::EncryptDeriveTest::derive_param
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc
    functionUses: 2
    functionsReached:
    - nss_test::EncryptDeriveTest::encrypt_mech
    - nss_test::EncryptDeriveTest::keysize
    - PORT_Memcpy
    - ADD_FAILURE
    - reinterpret_cast<uint8_t*>
    - toUcharPtr
    linkageType: ''
    returnType: SECItem
    signature: SECItem * derive_param() const
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::EncryptDeriveTest::encrypt_mech
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:137,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:153,1
    - Dst: nss_test::EncryptDeriveTest::keysize
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:154,1
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:158,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 162
    functionName: nss_test::EncryptDeriveTest::encrypt_param
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc
    functionUses: 2
    functionsReached:
    - toUcharPtr
    - nss_test::EncryptDeriveTest::encrypt_mech
    - nss_test::EncryptDeriveTest::keysize
    - ADD_FAILURE
    linkageType: ''
    returnType: SECItem
    signature: SECItem * encrypt_param() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:165,1
    - Dst: PK11_GetBestSlot
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:165,1
    - Dst: nss_test::EncryptDeriveTest::derive_mech
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:165,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:166,1
    - Dst: reset
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:168,1
    - Dst: PK11_TokenKeyGenWithFlags
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:168,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:168,1
    - Dst: nss_test::EncryptDeriveTest::encrypt_mech
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:168,1
    - Dst: nss_test::EncryptDeriveTest::keysize
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:169,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 164
    functionDepth: 8
    functionLinenumber: 164
    functionLinenumberEnd: 172
    functionName: nss_test::EncryptDeriveTest::SetUp
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc
    functionUses: 0
    functionsReached:
    - nss_test::EncryptDeriveTest::encrypt_mech
    - nss_test::EncryptDeriveTest::keysize
    - nss_test::EncryptDeriveTest::derive_mech
    - PK11_GetBestSlot
    - PK11_TokenKeyGenWithFlags
    - ASSERT_TRUE
    - reset
    - get
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:175,1
    - Dst: PK11_ExtractKeyValue
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:175,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:175,1
    - Dst: PK11_GetKeyData
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:176,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:176,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:177,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:178,1
    - Dst: static_cast<size_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:178,1
    - Dst: PORT_Memcpy
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ' key'
    - buf
    - max_len
    argTypes:
    - ScopedPK11SymKey
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 180
    functionName: nss_test::EncryptDeriveTest::GetKeyData
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc
    functionUses: 2
    functionsReached:
    - ASSERT_EQ
    - PORT_Memcpy
    - ASSERT_TRUE
    - PK11_ExtractKeyValue
    - PK11_GetKeyData
    - static_cast<size_t>
    - get
    linkageType: ''
    returnType: void
    signature: void GetKeyData(ScopedPK11SymKey& key, uint8_t* buf, size_t max_len)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::EncryptDeriveTest::encrypt_mech
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:184,1
    - Dst: nss_test::EncryptDeriveTest::encrypt_mech
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:184,1
    - Dst: nss_test::EncryptDeriveTest::keysize
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:187,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - key_data
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 190
    functionName: nss_test::EncryptDeriveTest::RemoveChecksum
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc
    functionUses: 2
    functionsReached:
    - nss_test::EncryptDeriveTest::encrypt_mech
    - nss_test::EncryptDeriveTest::keysize
    linkageType: ''
    returnType: void
    signature: void RemoveChecksum(uint8_t* key_data) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestEncryptDerive
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 196
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc
    functionUses: 0
    functionsReached:
    - TestEncryptDerive
    linkageType: ''
    returnType: void
    signature: void TEST_P(EncryptDeriveTest, Test)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 219
    functionName: nss_test::EncryptDerive3Test::keysize
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int keysize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestEncryptDerive
      Src: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 222
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_encrypt_derive_unittest.cc
    functionUses: 0
    functionsReached:
    - TestEncryptDerive
    linkageType: ''
    returnType: void
    signature: void TEST_P(EncryptDerive3Test, Test)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    functionName: JsonReader::next
    functionSourceFile: /src/nss/gtests/pk11_gtest/json_reader.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void next()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonReader::TopUp
      Src: /src/nss/gtests/pk11_gtest/json_reader.h:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: JsonReader::peek
    functionSourceFile: /src/nss/gtests/pk11_gtest/json_reader.h
    functionUses: 0
    functionsReached:
    - JsonReader::TopUp
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t peek()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonReader::peek
      Src: /src/nss/gtests/pk11_gtest/json_reader.h:29,1
    - Dst: JsonReader::next
      Src: /src/nss/gtests/pk11_gtest/json_reader.h:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: JsonReader::take
    functionSourceFile: /src/nss/gtests/pk11_gtest/json_reader.h
    functionUses: 0
    functionsReached:
    - JsonReader::peek
    - JsonReader::next
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t take()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonReader::NextItem
      Src: /src/nss/gtests/pk11_gtest/json_reader.h:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: JsonReader::NextItemArray
    functionSourceFile: /src/nss/gtests/pk11_gtest/json_reader.h
    functionUses: 8
    functionsReached:
    - JsonReader::NextItem
    linkageType: ''
    returnType: bool
    signature: bool NextItemArray()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: NextItemArray
      Src: /src/nss/gtests/pk11_gtest/json_reader.h:99,1
    - Dst: NextItem
      Src: /src/nss/gtests/pk11_gtest/json_reader.h:105,1
    - Dst: ReadLabel
      Src: /src/nss/gtests/pk11_gtest/json_reader.h:106,1
    - Dst: ReadInt
      Src: /src/nss/gtests/pk11_gtest/json_reader.h:111,1
    - Dst: ReadString
      Src: /src/nss/gtests/pk11_gtest/json_reader.h:113,1
    - Dst: ReadString
      Src: /src/nss/gtests/pk11_gtest/json_reader.h:115,1
    - Dst: NextItemArray
      Src: /src/nss/gtests/pk11_gtest/json_reader.h:117,1
    - Dst: std::vector::push_back
      Src: /src/nss/gtests/pk11_gtest/json_reader.h:118,1
    - Dst: ReadString
      Src: /src/nss/gtests/pk11_gtest/json_reader.h:118,1
    - Dst: ASSERT_NO_FATAL_FAILURE
      Src: /src/nss/gtests/pk11_gtest/json_reader.h:121,1
    - Dst: attr_reader
      Src: /src/nss/gtests/pk11_gtest/json_reader.h:121,1
    - Dst: process_flags
      Src: /src/nss/gtests/pk11_gtest/json_reader.h:127,1
    - Dst: std::vector<T>*::push_back
      Src: /src/nss/gtests/pk11_gtest/json_reader.h:136,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 3
    argNames:
    - ' r'
    - tests
    - "\n        attr_reader"
    argTypes:
    - JsonReader
    - std::vector<T>*
    - std::function<nondeduced<void(T&, const std::string&, JsonReader&)>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 138
    functionName: WycheproofReadTests
    functionSourceFile: /src/nss/gtests/pk11_gtest/json_reader.h
    functionUses: 12
    functionsReached:
    - NextItem
    - NextItemArray
    - attr_reader
    - std::vector::push_back
    - ReadInt
    - ReadLabel
    - ASSERT_NO_FATAL_FAILURE
    - std::vector<T>*::push_back
    - process_flags
    - ReadString
    linkageType: ''
    returnType: void
    signature: "void WycheproofReadTests(\n    JsonReader& r, std::vector<T>* tests,\n
      \   const std::function<nondeduced<void(T&, const std::string&, JsonReader&)>>&\n
      \       attr_reader,\n    bool acceptable = true,\n    const std::function<nondeduced<void(T&,
      const std::string&,\n                                        const std::vector<std::string>&)>>&\n
      \       process_flags = nullptr)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PR_MAX
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:26,1
    - Dst: PR_MAX
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:27,1
    - Dst: PR_MAX
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:28,1
    - Dst: std::fill
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:29,1
    - Dst: std::vector::begin
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:29,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:29,1
    - Dst: std::stringstream::str
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:36,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:39,1
    - Dst: PK11_ImportSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:43,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:43,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:46,1
    - Dst: std::map<Action, Result>::count
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:50,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:51,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:51,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:52,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:53,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:54,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:58,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:59,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:59,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:59,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:59,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:63,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:64,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:64,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:64,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:70,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:71,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:71,1
    - Dst: std::map<Action, Result>::count
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:80,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:81,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:81,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:82,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:83,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:85,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:89,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:90,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:91,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:91,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:91,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:95,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:96,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:96,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:96,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:101,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:103,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:103,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 8
    argNames:
    - kek_data
    - kek_len
    - key_data
    - key_data_len
    - expected_ciphertext
    - expected_ciphertext_len
    - tests
    - test_id
    argTypes:
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - std::map<Action, Result>
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 21
    functionDepth: 6
    functionLinenumber: 21
    functionLinenumberEnd: 108
    functionName: nss_test::Pkcs11AESKeyWrapTest::WrapUnwrap
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - std::vector::data
    - std::fill
    - std::vector::size
    - PK11_Decrypt
    - EXPECT_TRUE
    - ScopedPK11SymKey::get
    - std::vector::begin
    - memcmp
    - ASSERT_NE
    - ASSERT_EQ
    - EXPECT_FALSE
    - PK11_ImportSymKey
    - std::vector::end
    - std::stringstream::str
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - std::map<Action, Result>::count
    - PR_MAX
    linkageType: ''
    returnType: void
    signature: "void WrapUnwrap(unsigned char* kek_data, unsigned int kek_len,\n                  unsigned
      char* key_data, unsigned int key_data_len,\n                  unsigned char*
      expected_ciphertext,\n                  unsigned int expected_ciphertext_len,\n
      \                 std::map<Action, Result> tests, uint32_t test_id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::Pkcs11AESKeyWrapTest::WrapUnwrap
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:111,1
    - Dst: keywrap_vector::key::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:111,1
    - Dst: keywrap_vector::key::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:111,1
    - Dst: keywrap_vector::msg::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:112,1
    - Dst: keywrap_vector::msg::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:112,1
    - Dst: keywrap_vector::ct::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:113,1
    - Dst: keywrap_vector::ct::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - testvector
    argTypes:
    - keywrap_vector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 115
    functionName: nss_test::Pkcs11AESKeyWrapTest::WrapUnwrap
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc
    functionUses: 1
    functionsReached:
    - keywrap_vector::key::data
    - keywrap_vector::msg::data
    - keywrap_vector::ct::size
    - keywrap_vector::msg::size
    - keywrap_vector::key::size
    - nss_test::Pkcs11AESKeyWrapTest::WrapUnwrap
    - keywrap_vector::ct::data
    linkageType: ''
    returnType: void
    signature: void WrapUnwrap(keywrap_vector testvector)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WrapUnwrap
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:118,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc
    functionUses: 0
    functionsReached:
    - WrapUnwrap
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11AESKeyWrapTest, TestVectors)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: PR_MAX
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:26,1
    - Dst: PR_MAX
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:27,1
    - Dst: PR_MAX
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:28,1
    - Dst: std::fill
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:29,1
    - Dst: std::vector::begin
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:29,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:29,1
    - Dst: std::stringstream::str
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:36,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:39,1
    - Dst: PK11_ImportSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:43,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:43,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:46,1
    - Dst: std::map<Action, Result>::count
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:50,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:51,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:51,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:52,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:53,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:54,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:58,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:59,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:59,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:59,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:59,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:63,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:64,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:64,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:64,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:70,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:71,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:71,1
    - Dst: std::map<Action, Result>::count
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:80,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:81,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:81,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:82,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:83,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:85,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:89,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:90,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:91,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:91,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:91,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:95,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:96,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:96,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:96,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:101,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:103,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:103,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 8
    argNames:
    - kek_data
    - kek_len
    - key_data
    - key_data_len
    - expected_ciphertext
    - expected_ciphertext_len
    - tests
    - test_id
    argTypes:
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - unsigned char*
    - unsigned int
    - std::map<Action, Result>
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 21
    functionDepth: 6
    functionLinenumber: 21
    functionLinenumberEnd: 108
    functionName: nss_test::Pkcs11AESKeyWrapTest::WrapUnwrap
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc
    functionUses: 1
    functionsReached:
    - PK11_Encrypt
    - std::vector::data
    - std::fill
    - std::vector::size
    - PK11_Decrypt
    - EXPECT_TRUE
    - ScopedPK11SymKey::get
    - std::vector::begin
    - memcmp
    - ASSERT_NE
    - ASSERT_EQ
    - EXPECT_FALSE
    - PK11_ImportSymKey
    - std::vector::end
    - std::stringstream::str
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - std::map<Action, Result>::count
    - PR_MAX
    linkageType: ''
    returnType: void
    signature: "void WrapUnwrap(unsigned char* kek_data, unsigned int kek_len,\n                  unsigned
      char* key_data, unsigned int key_data_len,\n                  unsigned char*
      expected_ciphertext,\n                  unsigned int expected_ciphertext_len,\n
      \                 std::map<Action, Result> tests, uint32_t test_id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::Pkcs11AESKeyWrapTest::WrapUnwrap
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:111,1
    - Dst: keywrap_vector::key::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:111,1
    - Dst: keywrap_vector::key::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:111,1
    - Dst: keywrap_vector::msg::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:112,1
    - Dst: keywrap_vector::msg::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:112,1
    - Dst: keywrap_vector::ct::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:113,1
    - Dst: keywrap_vector::ct::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - testvector
    argTypes:
    - keywrap_vector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 115
    functionName: nss_test::Pkcs11AESKeyWrapTest::WrapUnwrap
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc
    functionUses: 2
    functionsReached:
    - keywrap_vector::key::data
    - keywrap_vector::msg::data
    - keywrap_vector::ct::size
    - keywrap_vector::msg::size
    - keywrap_vector::key::size
    - nss_test::Pkcs11AESKeyWrapTest::WrapUnwrap
    - keywrap_vector::ct::data
    linkageType: ''
    returnType: void
    signature: void WrapUnwrap(keywrap_vector testvector)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WrapUnwrap
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:118,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aeskeywrap_unittest.cc
    functionUses: 0
    functionsReached:
    - WrapUnwrap
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11AESKeyWrapTest, TestVectors)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - pk11_mech
    argTypes:
    - CK_MECHANISM_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 59
    functionName: nss_test::Pkcs11HkdfTest::Pk11MechToVendorMech
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc
    functionUses: 0
    functionsReached:
    - ADD_FAILURE
    linkageType: ''
    returnType: CK_MECHANISM_TYPE
    signature: CK_MECHANISM_TYPE Pk11MechToVendorMech(CK_MECHANISM_TYPE pk11_mech)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:64,1
    - Dst: ScopedPK11SymKey::reset
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:70,1
    - Dst: PK11_ImportDataKey
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:70,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:70,1
    - Dst: ScopedPK11SymKey::reset
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:74,1
    - Dst: PK11_ImportSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:74,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - ikm_item
    - import_as_data
    argTypes:
    - SECItem
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 61
    functionDepth: 6
    functionLinenumber: 61
    functionLinenumberEnd: 79
    functionName: nss_test::Pkcs11HkdfTest::ImportKey
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc
    functionUses: 0
    functionsReached:
    - ADD_FAILURE
    - ScopedPK11SymKey::reset
    - PK11_ImportDataKey
    - PK11_ImportSymKey
    - ScopedPK11SlotInfo::get
    linkageType: ''
    returnType: ScopedPK11SymKey
    signature: ScopedPK11SymKey ImportKey(SECItem &ikm_item, bool import_as_data)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: std::to_string
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:83,1
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:84,1
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:85,1
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:86,1
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:87,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:88,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:89,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:89,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:90,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:91,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:91,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:92,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:93,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:93,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:100,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:100,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:100,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:101,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:101,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:101,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:108,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:109,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:109,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:110,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:110,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:112,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:113,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:113,1
    - Dst: nss_test::Pkcs11HkdfTest::Pk11MechToVendorMech
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:119,1
    - Dst: nss_test::Pkcs11HkdfTest::ImportKey
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:122,1
    - Dst: nss_test::Pkcs11HkdfTest::ImportKey
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:125,1
    - Dst: nss_test::Pkcs11HkdfTest::ImportKey
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:128,1
    - Dst: nss_test::Pkcs11HkdfTest::ImportKey
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:131,1
    - Dst: nss_test::Pkcs11HkdfTest::ImportKey
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:132,1
    - Dst: nss_test::Pkcs11HkdfTest::ImportKey
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:135,1
    - Dst: nss_test::Pkcs11HkdfTest::ImportKey
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:136,1
    - Dst: nss_test::Pkcs11HkdfTest::ImportKey
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:140,1
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:143,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:146,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:150,1
    - Dst: PK11_GetSymKeyHandle
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:154,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:154,1
    - Dst: ScopedPK11SymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:157,1
    - Dst: PK11_Derive
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:158,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:158,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:161,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:161,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:162,1
    - Dst: PK11_ExtractKeyValue
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:162,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:162,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:163,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:163,1
    - Dst: PK11_GetKeyData
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:163,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:163,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:166,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:166,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 3
    argNames:
    - vec
    - test_type
    - hash_mech
    argTypes:
    - HkdfTestVector
    - HkdfTestType
    - CK_MECHANISM_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 81
    functionDepth: 7
    functionLinenumber: 81
    functionLinenumberEnd: 168
    functionName: nss_test::Pkcs11HkdfTest::RunWycheproofTest
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc
    functionUses: 0
    functionsReached:
    - hex_string_to_bytes
    - ScopedPK11SymKey
    - ASSERT_EQ
    - SECITEM_CompareItem
    - ADD_FAILURE
    - std::vector::data
    - PK11_GetSymKeyHandle
    - ScopedPK11SymKey::get
    - std::vector::size
    - static_cast<unsigned int>
    - PK11_Derive
    - PK11_ExtractKeyValue
    - std::to_string
    - nss_test::Pkcs11HkdfTest::ImportKey
    - nss_test::Pkcs11HkdfTest::Pk11MechToVendorMech
    - PK11_GetKeyData
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: "void RunWycheproofTest(const HkdfTestVector &vec, HkdfTestType test_type,\n
      \                        CK_MECHANISM_TYPE hash_mech)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RunWycheproofTest
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:172,1
    - Dst: std::get<0>
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:172,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:172,1
    - Dst: std::get<1>
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:172,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:172,1
    - Dst: std::get<2>
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:173,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 174
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc
    functionUses: 0
    functionsReached:
    - std::get<2>
    - std::get<1>
    - RunWycheproofTest
    - GetParam
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11HkdfTest, WycheproofVectors)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - pk11_mech
    argTypes:
    - CK_MECHANISM_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 59
    functionName: nss_test::Pkcs11HkdfTest::Pk11MechToVendorMech
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc
    functionUses: 1
    functionsReached:
    - ADD_FAILURE
    linkageType: ''
    returnType: CK_MECHANISM_TYPE
    signature: CK_MECHANISM_TYPE Pk11MechToVendorMech(CK_MECHANISM_TYPE pk11_mech)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:64,1
    - Dst: ScopedPK11SymKey::reset
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:70,1
    - Dst: PK11_ImportDataKey
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:70,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:70,1
    - Dst: ScopedPK11SymKey::reset
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:74,1
    - Dst: PK11_ImportSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:74,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - ikm_item
    - import_as_data
    argTypes:
    - SECItem
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 61
    functionDepth: 6
    functionLinenumber: 61
    functionLinenumberEnd: 79
    functionName: nss_test::Pkcs11HkdfTest::ImportKey
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc
    functionUses: 1
    functionsReached:
    - ADD_FAILURE
    - ScopedPK11SymKey::reset
    - PK11_ImportDataKey
    - PK11_ImportSymKey
    - ScopedPK11SlotInfo::get
    linkageType: ''
    returnType: ScopedPK11SymKey
    signature: ScopedPK11SymKey ImportKey(SECItem &ikm_item, bool import_as_data)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: std::to_string
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:83,1
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:84,1
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:85,1
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:86,1
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:87,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:88,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:89,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:89,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:90,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:91,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:91,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:92,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:93,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:93,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:100,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:100,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:100,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:101,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:101,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:101,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:108,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:109,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:109,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:110,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:110,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:112,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:113,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:113,1
    - Dst: nss_test::Pkcs11HkdfTest::Pk11MechToVendorMech
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:119,1
    - Dst: nss_test::Pkcs11HkdfTest::ImportKey
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:122,1
    - Dst: nss_test::Pkcs11HkdfTest::ImportKey
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:125,1
    - Dst: nss_test::Pkcs11HkdfTest::ImportKey
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:128,1
    - Dst: nss_test::Pkcs11HkdfTest::ImportKey
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:131,1
    - Dst: nss_test::Pkcs11HkdfTest::ImportKey
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:132,1
    - Dst: nss_test::Pkcs11HkdfTest::ImportKey
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:135,1
    - Dst: nss_test::Pkcs11HkdfTest::ImportKey
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:136,1
    - Dst: nss_test::Pkcs11HkdfTest::ImportKey
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:140,1
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:143,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:146,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:150,1
    - Dst: PK11_GetSymKeyHandle
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:154,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:154,1
    - Dst: ScopedPK11SymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:157,1
    - Dst: PK11_Derive
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:158,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:158,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:161,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:161,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:162,1
    - Dst: PK11_ExtractKeyValue
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:162,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:162,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:163,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:163,1
    - Dst: PK11_GetKeyData
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:163,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:163,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:166,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:166,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 3
    argNames:
    - vec
    - test_type
    - hash_mech
    argTypes:
    - HkdfTestVector
    - HkdfTestType
    - CK_MECHANISM_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 81
    functionDepth: 7
    functionLinenumber: 81
    functionLinenumberEnd: 168
    functionName: nss_test::Pkcs11HkdfTest::RunWycheproofTest
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc
    functionUses: 0
    functionsReached:
    - hex_string_to_bytes
    - ScopedPK11SymKey
    - ASSERT_EQ
    - SECITEM_CompareItem
    - ADD_FAILURE
    - std::vector::data
    - PK11_GetSymKeyHandle
    - ScopedPK11SymKey::get
    - std::vector::size
    - static_cast<unsigned int>
    - PK11_Derive
    - PK11_ExtractKeyValue
    - std::to_string
    - nss_test::Pkcs11HkdfTest::ImportKey
    - nss_test::Pkcs11HkdfTest::Pk11MechToVendorMech
    - PK11_GetKeyData
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: "void RunWycheproofTest(const HkdfTestVector &vec, HkdfTestType test_type,\n
      \                        CK_MECHANISM_TYPE hash_mech)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RunWycheproofTest
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:172,1
    - Dst: std::get<0>
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:172,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:172,1
    - Dst: std::get<1>
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:172,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:172,1
    - Dst: std::get<2>
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:173,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 174
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hkdf_unittest.cc
    functionUses: 0
    functionsReached:
    - std::get<2>
    - std::get<1>
    - RunWycheproofTest
    - GetParam
    - std::get<0>
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11HkdfTest, WycheproofVectors)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:24,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:25,1
    - Dst: const_cast<SECItem*>
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 27
    functionName: nss_test::GetIv
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc
    functionUses: 0
    functionsReached:
    - static_cast<unsigned int>
    - const_cast<uint8_t*>
    - const_cast<SECItem*>
    linkageType: ''
    returnType: SECItem
    signature: SECItem * GetIv()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:32,1
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:42,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 45
    functionName: nss_test::Pkcs11CbcPadTest::is_padded
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc
    functionUses: 0
    functionsReached:
    - ADD_FAILURE
    - GetParam
    linkageType: ''
    returnType: bool
    signature: bool is_padded() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:48,1
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:54,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 57
    functionName: nss_test::Pkcs11CbcPadTest::GetUnpaddedMechanism
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc
    functionUses: 0
    functionsReached:
    - ADD_FAILURE
    - GetParam
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t GetUnpaddedMechanism() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:60,1
    - Dst: PK11_GetBlockSize
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:60,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: nss_test::Pkcs11CbcPadTest::block_size
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - GetParam
    - PK11_GetBlockSize
    linkageType: ''
    returnType: size_t
    signature: size_t block_size() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::Pkcs11CbcPadTest::is_padded
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:64,1
    - Dst: nss_test::Pkcs11CbcPadTest::block_size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:70,1
    - Dst: EXPECT_LT
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:71,1
    - Dst: nss_test::Pkcs11CbcPadTest::block_size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - CK_ATTRIBUTE_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 63
    functionDepth: 3
    functionLinenumber: 63
    functionLinenumberEnd: 73
    functionName: nss_test::Pkcs11CbcPadTest::GetInputLen
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc
    functionUses: 0
    functionsReached:
    - nss_test::Pkcs11CbcPadTest::is_padded
    - nss_test::Pkcs11CbcPadTest::block_size
    - EXPECT_LT
    linkageType: ''
    returnType: size_t
    signature: size_t GetInputLen(CK_ATTRIBUTE_TYPE op) const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:77,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:83,1
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:95,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:95,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:99,1
    - Dst: PK11_ImportSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:100,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:100,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:100,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:102,1
    - Dst: ScopedPK11SymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:103,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - op
    argTypes:
    - CK_ATTRIBUTE_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 75
    functionDepth: 6
    functionLinenumber: 75
    functionLinenumberEnd: 104
    functionName: nss_test::Pkcs11CbcPadTest::MakeKey
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NE
    - ScopedPK11SymKey
    - ADD_FAILURE
    - PK11_ImportSymKey
    - GetParam
    - const_cast<uint8_t*>
    - ScopedPK11SlotInfo::get
    linkageType: ''
    returnType: ScopedPK11SymKey
    signature: ScopedPK11SymKey MakeKey(CK_ATTRIBUTE_TYPE op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::Pkcs11CbcPadTest::MakeKey
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:107,1
    - Dst: PK11_CreateContextBySymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:109,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:109,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:109,1
    - Dst: GetIv
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:109,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:110,1
    - Dst: ScopedPK11Context
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - CK_ATTRIBUTE_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 106
    functionDepth: 11
    functionLinenumber: 106
    functionLinenumberEnd: 112
    functionName: nss_test::Pkcs11CbcPadTest::MakeContext
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NE
    - ScopedPK11SymKey::get
    - GetIv
    - nss_test::Pkcs11CbcPadTest::MakeKey
    - GetParam
    - PK11_CreateContextBySymKey
    - ScopedPK11Context
    linkageType: ''
    returnType: ScopedPK11Context
    signature: ScopedPK11Context MakeContext(CK_ATTRIBUTE_TYPE op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetInputLen
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:117,1
    - Dst: MakeKey
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:119,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:122,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:122,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:122,1
    - Dst: nss_test::GetIv
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:122,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:124,1
    - Dst: EXPECT_LE
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:125,1
    - Dst: static_cast<size_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:125,1
    - Dst: MakeKey
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:131,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:132,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:132,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:132,1
    - Dst: nss_test::GetIv
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:132,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:134,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:135,1
    - Dst: static_cast<size_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:135,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:136,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 115
    functionDepth: 4
    functionLinenumber: 115
    functionLinenumberEnd: 137
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - ASSERT_EQ
    - MakeKey
    - static_cast<size_t>
    - PK11_Decrypt
    - ScopedPK11SymKey::get
    - EXPECT_LE
    - GetParam
    - GetInputLen
    - memcmp
    - EXPECT_EQ
    - nss_test::GetIv
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11CbcPadTest, EncryptDecrypt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetInputLen
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:141,1
    - Dst: MakeContext
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:143,1
    - Dst: PK11_CipherOp
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:145,1
    - Dst: ScopedPK11Context::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:145,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:147,1
    - Dst: EXPECT_LE
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:148,1
    - Dst: PK11_CipherFinal
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:151,1
    - Dst: ScopedPK11Context::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:151,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:153,1
    - Dst: EXPECT_LE
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:155,1
    - Dst: static_cast<size_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:155,1
    - Dst: MakeContext
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:159,1
    - Dst: PK11_CipherOp
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:160,1
    - Dst: ScopedPK11Context::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:160,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:162,1
    - Dst: EXPECT_LE
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:163,1
    - Dst: PK11_CipherFinal
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:165,1
    - Dst: ScopedPK11Context::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:165,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:167,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:169,1
    - Dst: static_cast<size_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:169,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:170,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 139
    functionDepth: 10
    functionLinenumber: 139
    functionLinenumberEnd: 171
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - static_cast<size_t>
    - memcmp
    - MakeContext
    - EXPECT_LE
    - PK11_CipherOp
    - ScopedPK11Context::get
    - GetInputLen
    - PK11_CipherFinal
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11CbcPadTest, ContextEncryptDecrypt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetInputLen
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:175,1
    - Dst: MakeContext
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:177,1
    - Dst: PK11_CipherOp
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:179,1
    - Dst: ScopedPK11Context::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:179,1
    - Dst: block_size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:180,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:181,1
    - Dst: ASSERT_LE
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:182,1
    - Dst: PK11_CipherOp
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:185,1
    - Dst: ScopedPK11Context::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:185,1
    - Dst: block_size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:186,1
    - Dst: block_size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:187,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:188,1
    - Dst: ASSERT_LE
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:189,1
    - Dst: PK11_CipherFinal
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:192,1
    - Dst: ScopedPK11Context::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:192,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:194,1
    - Dst: ASSERT_LE
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:196,1
    - Dst: static_cast<size_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:196,1
    - Dst: MakeContext
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:200,1
    - Dst: PK11_CipherOp
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:201,1
    - Dst: ScopedPK11Context::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:201,1
    - Dst: block_size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:202,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:203,1
    - Dst: EXPECT_LE
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:204,1
    - Dst: PK11_CipherOp
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:206,1
    - Dst: ScopedPK11Context::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:206,1
    - Dst: block_size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:207,1
    - Dst: block_size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:208,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:209,1
    - Dst: EXPECT_LE
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:210,1
    - Dst: PK11_CipherFinal
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:213,1
    - Dst: ScopedPK11Context::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:213,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:216,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:218,1
    - Dst: static_cast<size_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:218,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:219,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 173
    functionDepth: 10
    functionLinenumber: 173
    functionLinenumberEnd: 220
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - static_cast<size_t>
    - block_size
    - memcmp
    - MakeContext
    - ASSERT_LE
    - EXPECT_LE
    - PK11_CipherOp
    - ScopedPK11Context::get
    - GetInputLen
    - PK11_CipherFinal
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11CbcPadTest, ContextEncryptDecryptTwoParts)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MakeKey
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:223,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:227,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:227,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:227,1
    - Dst: nss_test::GetIv
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:227,1
    - Dst: GetInputLen
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:228,1
    - Dst: is_padded
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:229,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:230,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:231,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 222
    functionDepth: 4
    functionLinenumber: 222
    functionLinenumberEnd: 236
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc
    functionUses: 0
    functionsReached:
    - MakeKey
    - PK11_Decrypt
    - is_padded
    - ScopedPK11SymKey::get
    - GetParam
    - GetInputLen
    - EXPECT_EQ
    - nss_test::GetIv
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11CbcPadTest, FailDecryptSimple)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeKey
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:239,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:244,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:244,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:244,1
    - Dst: nss_test::GetIv
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:244,1
    - Dst: GetInputLen
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:245,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:246,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 238
    functionDepth: 4
    functionLinenumber: 238
    functionLinenumberEnd: 248
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - MakeKey
    - ScopedPK11SymKey::get
    - GetParam
    - GetInputLen
    - EXPECT_EQ
    - nss_test::GetIv
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11CbcPadTest, FailEncryptSimple)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:262,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:266,1
    - Dst: PK11_ImportSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:267,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:267,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:270,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:270,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:274,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:274,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:276,1
    - Dst: reinterpret_cast<CK_AES_CTR_PARAMS*>
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:279,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:280,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:280,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:282,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:286,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:286,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:288,1
    - Dst: reinterpret_cast<CK_NSS_GCM_PARAMS*>
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:291,1
    - Dst: reinterpret_cast<CK_NSS_GCM_PARAMS*>
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:292,1
    - Dst: reinterpret_cast<CK_NSS_GCM_PARAMS*>
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:293,1
    - Dst: reinterpret_cast<CK_NSS_GCM_PARAMS*>
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:294,1
    - Dst: reinterpret_cast<CK_NSS_GCM_PARAMS*>
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:295,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:296,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:296,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:298,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:302,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:302,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:304,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:307,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:307,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:309,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:313,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:313,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:315,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:318,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:318,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 253
    functionDepth: 6
    functionLinenumber: 253
    functionLinenumberEnd: 321
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - ScopedPK11SymKey::get
    - reinterpret_cast<CK_AES_CTR_PARAMS*>
    - reinterpret_cast<CK_NSS_GCM_PARAMS*>
    - ASSERT_TRUE
    - PK11_ImportSymKey
    - const_cast<uint8_t*>
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11CbcPadTest, FailEncryptShortParam)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MakeContext
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:324,1
    - Dst: PK11_CipherOp
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:328,1
    - Dst: ScopedPK11Context::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:328,1
    - Dst: GetInputLen
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:329,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:330,1
    - Dst: EXPECT_LE
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:331,1
    - Dst: PK11_CipherFinal
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:334,1
    - Dst: ScopedPK11Context::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:334,1
    - Dst: is_padded
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:335,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:336,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:337,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:340,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 323
    functionDepth: 10
    functionLinenumber: 323
    functionLinenumberEnd: 342
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - MakeContext
    - EXPECT_LE
    - PK11_CipherOp
    - ScopedPK11Context::get
    - GetInputLen
    - PK11_CipherFinal
    - EXPECT_EQ
    - is_padded
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11CbcPadTest, ContextFailDecryptSimple)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeContext
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:345,1
    - Dst: PK11_CipherOp
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:349,1
    - Dst: ScopedPK11Context::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:349,1
    - Dst: GetInputLen
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:350,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:351,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 344
    functionDepth: 10
    functionLinenumber: 344
    functionLinenumberEnd: 355
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc
    functionUses: 0
    functionsReached:
    - MakeContext
    - PK11_CipherOp
    - ScopedPK11Context::get
    - GetInputLen
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11CbcPadTest, ContextFailDecryptInvalidBlockSize)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_padded
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:358,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:370,1
    - Dst: MakeKey
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:373,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:374,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:374,1
    - Dst: GetUnpaddedMechanism
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:374,1
    - Dst: nss_test::GetIv
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:374,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:375,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:376,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:376,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:376,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:377,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:378,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:378,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:380,1
    - Dst: MakeKey
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:382,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:383,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:383,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:383,1
    - Dst: nss_test::GetIv
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:383,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:383,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:384,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:384,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:386,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:387,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 357
    functionDepth: 4
    functionLinenumber: 357
    functionLinenumberEnd: 388
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - ASSERT_EQ
    - MakeKey
    - PK11_Decrypt
    - std::vector::data
    - EXPECT_EQ
    - ScopedPK11SymKey::get
    - std::vector::size
    - GetParam
    - GetUnpaddedMechanism
    - nss_test::GetIv
    - is_padded
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11CbcPadTest, EncryptDecrypt_PaddingTooLong)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_padded
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:391,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:403,1
    - Dst: MakeKey
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:406,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:407,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:407,1
    - Dst: GetUnpaddedMechanism
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:407,1
    - Dst: nss_test::GetIv
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:407,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:408,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:409,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:409,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:409,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:410,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:411,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:411,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:413,1
    - Dst: MakeKey
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:415,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:416,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:416,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:416,1
    - Dst: nss_test::GetIv
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:416,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:416,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:417,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:417,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:419,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:420,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 390
    functionDepth: 4
    functionLinenumber: 390
    functionLinenumberEnd: 421
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - ASSERT_EQ
    - MakeKey
    - PK11_Decrypt
    - std::vector::data
    - EXPECT_EQ
    - ScopedPK11SymKey::get
    - std::vector::size
    - GetParam
    - GetUnpaddedMechanism
    - nss_test::GetIv
    - is_padded
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11CbcPadTest, EncryptDecrypt_ShortPadding1)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_padded
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:424,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:436,1
    - Dst: MakeKey
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:439,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:440,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:440,1
    - Dst: GetUnpaddedMechanism
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:440,1
    - Dst: nss_test::GetIv
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:440,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:441,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:442,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:442,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:442,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:443,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:444,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:444,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:446,1
    - Dst: MakeKey
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:448,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:449,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:449,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:449,1
    - Dst: nss_test::GetIv
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:449,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:449,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:450,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:450,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:452,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:453,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 423
    functionDepth: 4
    functionLinenumber: 423
    functionLinenumberEnd: 454
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - ASSERT_EQ
    - MakeKey
    - PK11_Decrypt
    - std::vector::data
    - EXPECT_EQ
    - ScopedPK11SymKey::get
    - std::vector::size
    - GetParam
    - GetUnpaddedMechanism
    - nss_test::GetIv
    - is_padded
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11CbcPadTest, EncryptDecrypt_ShortPadding2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_padded
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:457,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:469,1
    - Dst: MakeKey
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:472,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:473,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:473,1
    - Dst: GetUnpaddedMechanism
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:473,1
    - Dst: nss_test::GetIv
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:473,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:474,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:475,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:475,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:475,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:476,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:477,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:477,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:479,1
    - Dst: MakeKey
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:481,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:482,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:482,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:482,1
    - Dst: nss_test::GetIv
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:482,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:482,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:483,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:483,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:485,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:486,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 456
    functionDepth: 4
    functionLinenumber: 456
    functionLinenumberEnd: 487
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - ASSERT_EQ
    - MakeKey
    - PK11_Decrypt
    - std::vector::data
    - EXPECT_EQ
    - ScopedPK11SymKey::get
    - std::vector::size
    - GetParam
    - GetUnpaddedMechanism
    - nss_test::GetIv
    - is_padded
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11CbcPadTest, EncryptDecrypt_ZeroLengthPadding)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_padded
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:490,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:502,1
    - Dst: MakeKey
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:505,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:506,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:506,1
    - Dst: GetUnpaddedMechanism
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:506,1
    - Dst: nss_test::GetIv
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:506,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:507,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:508,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:508,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:508,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:509,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:510,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:510,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:512,1
    - Dst: MakeKey
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:514,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:515,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:515,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:515,1
    - Dst: nss_test::GetIv
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:515,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:515,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:516,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:516,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:518,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:519,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 489
    functionDepth: 4
    functionLinenumber: 489
    functionLinenumberEnd: 520
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - ASSERT_EQ
    - MakeKey
    - PK11_Decrypt
    - std::vector::data
    - EXPECT_EQ
    - ScopedPK11SymKey::get
    - std::vector::size
    - GetParam
    - GetUnpaddedMechanism
    - nss_test::GetIv
    - is_padded
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11CbcPadTest, EncryptDecrypt_OverflowPadding)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_padded
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:523,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:535,1
    - Dst: MakeKey
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:538,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:539,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:539,1
    - Dst: GetUnpaddedMechanism
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:539,1
    - Dst: nss_test::GetIv
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:539,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:540,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:541,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:541,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:541,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:542,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:543,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:543,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:545,1
    - Dst: MakeKey
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:547,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:548,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:548,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:548,1
    - Dst: nss_test::GetIv
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:548,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:548,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:549,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:549,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:551,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:552,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:552,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:553,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:553,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:553,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:553,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 522
    functionDepth: 4
    functionLinenumber: 522
    functionLinenumberEnd: 554
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - ASSERT_EQ
    - MakeKey
    - PK11_Decrypt
    - std::vector::data
    - EXPECT_EQ
    - ScopedPK11SymKey::get
    - std::vector::size
    - GetParam
    - GetUnpaddedMechanism
    - memcmp
    - nss_test::GetIv
    - is_padded
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11CbcPadTest, EncryptDecrypt_ShortValidPadding)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::to_string
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:565,1
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:566,1
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:567,1
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:568,1
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:569,1
    - Dst: AesCbcTestVector::ciphertext::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:570,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:574,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:579,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:579,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:580,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:580,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:581,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:581,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:582,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:582,1
    - Dst: PK11_ImportSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:584,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:584,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:586,1
    - Dst: ScopedPK11SymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:587,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:589,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:589,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:589,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:590,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:591,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:591,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:593,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:595,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:595,1
    - Dst: static_cast<size_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:595,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:596,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:596,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:596,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:596,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - vec
    argTypes:
    - AesCbcTestVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 563
    functionDepth: 6
    functionLinenumber: 563
    functionLinenumberEnd: 598
    functionName: nss_test::Pkcs11AesCbcWycheproofTest::RunTest
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc
    functionUses: 0
    functionsReached:
    - hex_string_to_bytes
    - ScopedPK11SymKey
    - PK11_Decrypt
    - ASSERT_EQ
    - std::vector::data
    - ScopedPK11SymKey::get
    - memcmp
    - std::vector::size
    - PK11_ImportSymKey
    - static_cast<unsigned int>
    - AesCbcTestVector::ciphertext::size
    - std::to_string
    - static_cast<size_t>
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void RunTest(const AesCbcTestVector vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RunTest
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:603,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 603
    functionDepth: 0
    functionLinenumber: 603
    functionLinenumberEnd: 603
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc
    functionUses: 0
    functionsReached:
    - RunTest
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11AesCbcWycheproofTest, TestVectors)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:24,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:25,1
    - Dst: const_cast<SECItem*>
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 27
    functionName: nss_test::GetIv
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc
    functionUses: 9
    functionsReached:
    - static_cast<unsigned int>
    - const_cast<uint8_t*>
    - const_cast<SECItem*>
    linkageType: ''
    returnType: SECItem
    signature: SECItem * GetIv()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:32,1
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:42,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 45
    functionName: nss_test::Pkcs11CbcPadTest::is_padded
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc
    functionUses: 1
    functionsReached:
    - ADD_FAILURE
    - GetParam
    linkageType: ''
    returnType: bool
    signature: bool is_padded() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:48,1
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:54,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 57
    functionName: nss_test::Pkcs11CbcPadTest::GetUnpaddedMechanism
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc
    functionUses: 0
    functionsReached:
    - ADD_FAILURE
    - GetParam
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t GetUnpaddedMechanism() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:60,1
    - Dst: PK11_GetBlockSize
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:60,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: nss_test::Pkcs11CbcPadTest::block_size
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc
    functionUses: 1
    functionsReached:
    - static_cast<size_t>
    - GetParam
    - PK11_GetBlockSize
    linkageType: ''
    returnType: size_t
    signature: size_t block_size() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::Pkcs11CbcPadTest::is_padded
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:64,1
    - Dst: nss_test::Pkcs11CbcPadTest::block_size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:70,1
    - Dst: EXPECT_LT
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:71,1
    - Dst: nss_test::Pkcs11CbcPadTest::block_size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - op
    argTypes:
    - CK_ATTRIBUTE_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 63
    functionDepth: 3
    functionLinenumber: 63
    functionLinenumberEnd: 73
    functionName: nss_test::Pkcs11CbcPadTest::GetInputLen
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc
    functionUses: 0
    functionsReached:
    - nss_test::Pkcs11CbcPadTest::is_padded
    - nss_test::Pkcs11CbcPadTest::block_size
    - EXPECT_LT
    linkageType: ''
    returnType: size_t
    signature: size_t GetInputLen(CK_ATTRIBUTE_TYPE op) const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:77,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:83,1
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:95,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:95,1
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:99,1
    - Dst: PK11_ImportSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:100,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:100,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:100,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:102,1
    - Dst: ScopedPK11SymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:103,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - op
    argTypes:
    - CK_ATTRIBUTE_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 75
    functionDepth: 6
    functionLinenumber: 75
    functionLinenumberEnd: 104
    functionName: nss_test::Pkcs11CbcPadTest::MakeKey
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc
    functionUses: 1
    functionsReached:
    - EXPECT_NE
    - ScopedPK11SymKey
    - ADD_FAILURE
    - PK11_ImportSymKey
    - GetParam
    - const_cast<uint8_t*>
    - ScopedPK11SlotInfo::get
    linkageType: ''
    returnType: ScopedPK11SymKey
    signature: ScopedPK11SymKey MakeKey(CK_ATTRIBUTE_TYPE op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::Pkcs11CbcPadTest::MakeKey
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:107,1
    - Dst: PK11_CreateContextBySymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:109,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:109,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:109,1
    - Dst: GetIv
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:109,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:110,1
    - Dst: ScopedPK11Context
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - CK_ATTRIBUTE_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 106
    functionDepth: 11
    functionLinenumber: 106
    functionLinenumberEnd: 112
    functionName: nss_test::Pkcs11CbcPadTest::MakeContext
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NE
    - ScopedPK11SymKey::get
    - GetIv
    - nss_test::Pkcs11CbcPadTest::MakeKey
    - GetParam
    - PK11_CreateContextBySymKey
    - ScopedPK11Context
    linkageType: ''
    returnType: ScopedPK11Context
    signature: ScopedPK11Context MakeContext(CK_ATTRIBUTE_TYPE op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetInputLen
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:117,1
    - Dst: MakeKey
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:119,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:122,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:122,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:122,1
    - Dst: nss_test::GetIv
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:122,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:124,1
    - Dst: EXPECT_LE
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:125,1
    - Dst: static_cast<size_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:125,1
    - Dst: MakeKey
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:131,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:132,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:132,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:132,1
    - Dst: nss_test::GetIv
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:132,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:134,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:135,1
    - Dst: static_cast<size_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:135,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:136,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 115
    functionDepth: 4
    functionLinenumber: 115
    functionLinenumberEnd: 137
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - ASSERT_EQ
    - MakeKey
    - static_cast<size_t>
    - PK11_Decrypt
    - ScopedPK11SymKey::get
    - EXPECT_LE
    - GetParam
    - GetInputLen
    - memcmp
    - EXPECT_EQ
    - nss_test::GetIv
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11CbcPadTest, EncryptDecrypt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetInputLen
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:141,1
    - Dst: MakeContext
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:143,1
    - Dst: PK11_CipherOp
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:145,1
    - Dst: ScopedPK11Context::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:145,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:147,1
    - Dst: EXPECT_LE
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:148,1
    - Dst: PK11_CipherFinal
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:151,1
    - Dst: ScopedPK11Context::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:151,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:153,1
    - Dst: EXPECT_LE
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:155,1
    - Dst: static_cast<size_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:155,1
    - Dst: MakeContext
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:159,1
    - Dst: PK11_CipherOp
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:160,1
    - Dst: ScopedPK11Context::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:160,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:162,1
    - Dst: EXPECT_LE
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:163,1
    - Dst: PK11_CipherFinal
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:165,1
    - Dst: ScopedPK11Context::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:165,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:167,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:169,1
    - Dst: static_cast<size_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:169,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:170,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 139
    functionDepth: 10
    functionLinenumber: 139
    functionLinenumberEnd: 171
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - static_cast<size_t>
    - memcmp
    - MakeContext
    - EXPECT_LE
    - PK11_CipherOp
    - ScopedPK11Context::get
    - GetInputLen
    - PK11_CipherFinal
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11CbcPadTest, ContextEncryptDecrypt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetInputLen
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:175,1
    - Dst: MakeContext
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:177,1
    - Dst: PK11_CipherOp
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:179,1
    - Dst: ScopedPK11Context::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:179,1
    - Dst: block_size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:180,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:181,1
    - Dst: ASSERT_LE
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:182,1
    - Dst: PK11_CipherOp
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:185,1
    - Dst: ScopedPK11Context::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:185,1
    - Dst: block_size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:186,1
    - Dst: block_size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:187,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:188,1
    - Dst: ASSERT_LE
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:189,1
    - Dst: PK11_CipherFinal
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:192,1
    - Dst: ScopedPK11Context::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:192,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:194,1
    - Dst: ASSERT_LE
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:196,1
    - Dst: static_cast<size_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:196,1
    - Dst: MakeContext
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:200,1
    - Dst: PK11_CipherOp
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:201,1
    - Dst: ScopedPK11Context::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:201,1
    - Dst: block_size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:202,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:203,1
    - Dst: EXPECT_LE
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:204,1
    - Dst: PK11_CipherOp
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:206,1
    - Dst: ScopedPK11Context::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:206,1
    - Dst: block_size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:207,1
    - Dst: block_size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:208,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:209,1
    - Dst: EXPECT_LE
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:210,1
    - Dst: PK11_CipherFinal
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:213,1
    - Dst: ScopedPK11Context::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:213,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:216,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:218,1
    - Dst: static_cast<size_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:218,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:219,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 173
    functionDepth: 10
    functionLinenumber: 173
    functionLinenumberEnd: 220
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - static_cast<size_t>
    - block_size
    - memcmp
    - MakeContext
    - ASSERT_LE
    - EXPECT_LE
    - PK11_CipherOp
    - ScopedPK11Context::get
    - GetInputLen
    - PK11_CipherFinal
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11CbcPadTest, ContextEncryptDecryptTwoParts)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MakeKey
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:223,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:227,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:227,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:227,1
    - Dst: nss_test::GetIv
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:227,1
    - Dst: GetInputLen
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:228,1
    - Dst: is_padded
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:229,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:230,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:231,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 222
    functionDepth: 4
    functionLinenumber: 222
    functionLinenumberEnd: 236
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc
    functionUses: 0
    functionsReached:
    - MakeKey
    - PK11_Decrypt
    - is_padded
    - ScopedPK11SymKey::get
    - GetParam
    - GetInputLen
    - EXPECT_EQ
    - nss_test::GetIv
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11CbcPadTest, FailDecryptSimple)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeKey
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:239,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:244,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:244,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:244,1
    - Dst: nss_test::GetIv
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:244,1
    - Dst: GetInputLen
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:245,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:246,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 238
    functionDepth: 4
    functionLinenumber: 238
    functionLinenumberEnd: 248
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - MakeKey
    - ScopedPK11SymKey::get
    - GetParam
    - GetInputLen
    - EXPECT_EQ
    - nss_test::GetIv
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11CbcPadTest, FailEncryptSimple)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_cast<uint8_t*>
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:262,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:266,1
    - Dst: PK11_ImportSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:267,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:267,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:270,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:270,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:274,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:274,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:276,1
    - Dst: reinterpret_cast<CK_AES_CTR_PARAMS*>
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:279,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:280,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:280,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:282,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:286,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:286,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:288,1
    - Dst: reinterpret_cast<CK_NSS_GCM_PARAMS*>
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:291,1
    - Dst: reinterpret_cast<CK_NSS_GCM_PARAMS*>
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:292,1
    - Dst: reinterpret_cast<CK_NSS_GCM_PARAMS*>
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:293,1
    - Dst: reinterpret_cast<CK_NSS_GCM_PARAMS*>
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:294,1
    - Dst: reinterpret_cast<CK_NSS_GCM_PARAMS*>
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:295,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:296,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:296,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:298,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:302,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:302,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:304,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:307,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:307,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:309,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:313,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:313,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:315,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:318,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:318,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 253
    functionDepth: 6
    functionLinenumber: 253
    functionLinenumberEnd: 321
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - ScopedPK11SymKey::get
    - reinterpret_cast<CK_AES_CTR_PARAMS*>
    - reinterpret_cast<CK_NSS_GCM_PARAMS*>
    - ASSERT_TRUE
    - PK11_ImportSymKey
    - const_cast<uint8_t*>
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11CbcPadTest, FailEncryptShortParam)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MakeContext
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:324,1
    - Dst: PK11_CipherOp
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:328,1
    - Dst: ScopedPK11Context::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:328,1
    - Dst: GetInputLen
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:329,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:330,1
    - Dst: EXPECT_LE
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:331,1
    - Dst: PK11_CipherFinal
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:334,1
    - Dst: ScopedPK11Context::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:334,1
    - Dst: is_padded
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:335,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:336,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:337,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:340,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 323
    functionDepth: 10
    functionLinenumber: 323
    functionLinenumberEnd: 342
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - MakeContext
    - EXPECT_LE
    - PK11_CipherOp
    - ScopedPK11Context::get
    - GetInputLen
    - PK11_CipherFinal
    - EXPECT_EQ
    - is_padded
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11CbcPadTest, ContextFailDecryptSimple)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MakeContext
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:345,1
    - Dst: PK11_CipherOp
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:349,1
    - Dst: ScopedPK11Context::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:349,1
    - Dst: GetInputLen
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:350,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:351,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 344
    functionDepth: 10
    functionLinenumber: 344
    functionLinenumberEnd: 355
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc
    functionUses: 0
    functionsReached:
    - MakeContext
    - PK11_CipherOp
    - ScopedPK11Context::get
    - GetInputLen
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11CbcPadTest, ContextFailDecryptInvalidBlockSize)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_padded
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:358,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:370,1
    - Dst: MakeKey
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:373,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:374,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:374,1
    - Dst: GetUnpaddedMechanism
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:374,1
    - Dst: nss_test::GetIv
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:374,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:375,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:376,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:376,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:376,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:377,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:378,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:378,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:380,1
    - Dst: MakeKey
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:382,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:383,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:383,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:383,1
    - Dst: nss_test::GetIv
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:383,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:383,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:384,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:384,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:386,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:387,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 357
    functionDepth: 4
    functionLinenumber: 357
    functionLinenumberEnd: 388
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - ASSERT_EQ
    - MakeKey
    - PK11_Decrypt
    - std::vector::data
    - EXPECT_EQ
    - ScopedPK11SymKey::get
    - std::vector::size
    - GetParam
    - GetUnpaddedMechanism
    - nss_test::GetIv
    - is_padded
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11CbcPadTest, EncryptDecrypt_PaddingTooLong)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_padded
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:391,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:403,1
    - Dst: MakeKey
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:406,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:407,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:407,1
    - Dst: GetUnpaddedMechanism
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:407,1
    - Dst: nss_test::GetIv
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:407,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:408,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:409,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:409,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:409,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:410,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:411,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:411,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:413,1
    - Dst: MakeKey
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:415,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:416,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:416,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:416,1
    - Dst: nss_test::GetIv
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:416,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:416,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:417,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:417,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:419,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:420,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 390
    functionDepth: 4
    functionLinenumber: 390
    functionLinenumberEnd: 421
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - ASSERT_EQ
    - MakeKey
    - PK11_Decrypt
    - std::vector::data
    - EXPECT_EQ
    - ScopedPK11SymKey::get
    - std::vector::size
    - GetParam
    - GetUnpaddedMechanism
    - nss_test::GetIv
    - is_padded
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11CbcPadTest, EncryptDecrypt_ShortPadding1)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_padded
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:424,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:436,1
    - Dst: MakeKey
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:439,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:440,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:440,1
    - Dst: GetUnpaddedMechanism
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:440,1
    - Dst: nss_test::GetIv
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:440,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:441,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:442,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:442,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:442,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:443,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:444,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:444,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:446,1
    - Dst: MakeKey
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:448,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:449,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:449,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:449,1
    - Dst: nss_test::GetIv
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:449,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:449,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:450,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:450,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:452,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:453,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 423
    functionDepth: 4
    functionLinenumber: 423
    functionLinenumberEnd: 454
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - ASSERT_EQ
    - MakeKey
    - PK11_Decrypt
    - std::vector::data
    - EXPECT_EQ
    - ScopedPK11SymKey::get
    - std::vector::size
    - GetParam
    - GetUnpaddedMechanism
    - nss_test::GetIv
    - is_padded
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11CbcPadTest, EncryptDecrypt_ShortPadding2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_padded
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:457,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:469,1
    - Dst: MakeKey
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:472,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:473,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:473,1
    - Dst: GetUnpaddedMechanism
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:473,1
    - Dst: nss_test::GetIv
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:473,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:474,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:475,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:475,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:475,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:476,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:477,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:477,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:479,1
    - Dst: MakeKey
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:481,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:482,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:482,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:482,1
    - Dst: nss_test::GetIv
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:482,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:482,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:483,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:483,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:485,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:486,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 456
    functionDepth: 4
    functionLinenumber: 456
    functionLinenumberEnd: 487
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - ASSERT_EQ
    - MakeKey
    - PK11_Decrypt
    - std::vector::data
    - EXPECT_EQ
    - ScopedPK11SymKey::get
    - std::vector::size
    - GetParam
    - GetUnpaddedMechanism
    - nss_test::GetIv
    - is_padded
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11CbcPadTest, EncryptDecrypt_ZeroLengthPadding)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_padded
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:490,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:502,1
    - Dst: MakeKey
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:505,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:506,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:506,1
    - Dst: GetUnpaddedMechanism
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:506,1
    - Dst: nss_test::GetIv
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:506,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:507,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:508,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:508,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:508,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:509,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:510,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:510,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:512,1
    - Dst: MakeKey
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:514,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:515,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:515,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:515,1
    - Dst: nss_test::GetIv
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:515,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:515,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:516,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:516,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:518,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:519,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 489
    functionDepth: 4
    functionLinenumber: 489
    functionLinenumberEnd: 520
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - ASSERT_EQ
    - MakeKey
    - PK11_Decrypt
    - std::vector::data
    - EXPECT_EQ
    - ScopedPK11SymKey::get
    - std::vector::size
    - GetParam
    - GetUnpaddedMechanism
    - nss_test::GetIv
    - is_padded
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11CbcPadTest, EncryptDecrypt_OverflowPadding)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_padded
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:523,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:535,1
    - Dst: MakeKey
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:538,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:539,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:539,1
    - Dst: GetUnpaddedMechanism
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:539,1
    - Dst: nss_test::GetIv
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:539,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:540,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:541,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:541,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:541,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:542,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:543,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:543,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:545,1
    - Dst: MakeKey
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:547,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:548,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:548,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:548,1
    - Dst: nss_test::GetIv
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:548,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:548,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:549,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:549,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:551,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:552,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:552,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:553,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:553,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:553,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:553,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 522
    functionDepth: 4
    functionLinenumber: 522
    functionLinenumberEnd: 554
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - ASSERT_EQ
    - MakeKey
    - PK11_Decrypt
    - std::vector::data
    - EXPECT_EQ
    - ScopedPK11SymKey::get
    - std::vector::size
    - GetParam
    - GetUnpaddedMechanism
    - memcmp
    - nss_test::GetIv
    - is_padded
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11CbcPadTest, EncryptDecrypt_ShortValidPadding)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::to_string
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:565,1
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:566,1
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:567,1
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:568,1
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:569,1
    - Dst: AesCbcTestVector::ciphertext::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:570,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:574,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:579,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:579,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:580,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:580,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:581,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:581,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:582,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:582,1
    - Dst: PK11_ImportSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:584,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:584,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:586,1
    - Dst: ScopedPK11SymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:587,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:589,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:589,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:589,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:590,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:591,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:591,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:593,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:595,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:595,1
    - Dst: static_cast<size_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:595,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:596,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:596,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:596,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:596,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - vec
    argTypes:
    - AesCbcTestVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 563
    functionDepth: 6
    functionLinenumber: 563
    functionLinenumberEnd: 598
    functionName: nss_test::Pkcs11AesCbcWycheproofTest::RunTest
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc
    functionUses: 0
    functionsReached:
    - hex_string_to_bytes
    - ScopedPK11SymKey
    - PK11_Decrypt
    - ASSERT_EQ
    - std::vector::data
    - ScopedPK11SymKey::get
    - memcmp
    - std::vector::size
    - PK11_ImportSymKey
    - static_cast<unsigned int>
    - AesCbcTestVector::ciphertext::size
    - std::to_string
    - static_cast<size_t>
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void RunTest(const AesCbcTestVector vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RunTest
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:603,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc:603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 603
    functionDepth: 0
    functionLinenumber: 603
    functionLinenumberEnd: 603
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_cbc_unittest.cc
    functionUses: 0
    functionsReached:
    - RunTest
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11AesCbcWycheproofTest, TestVectors)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WycheproofHeader
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:29,1
    - Dst: nss_test::RsaDecryptWycheproofTest::RunGroup
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: nss_test::RsaDecryptWycheproofTest::Run
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc
    functionUses: 0
    functionsReached:
    - WycheproofHeader
    - nss_test::RsaDecryptWycheproofTest::RunGroup
    linkageType: ''
    returnType: void
    signature: void Run(const std::string& name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:35,1
    - Dst: priv_key::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:35,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:36,1
    - Dst: priv_key::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:36,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:39,1
    - Dst: PK11_ImportDERPrivateKeyInfoAndReturnKey
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:42,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:43,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:45,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:46,1
    - Dst: PR_MAX
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:50,1
    - Dst: ct::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:50,1
    - Dst: PK11_PrivDecryptPKCS1
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:52,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:52,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:52,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:53,1
    - Dst: ct::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:53,1
    - Dst: ct::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:53,1
    - Dst: std::vector::resize
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:55,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:57,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:58,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:62,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:63,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:65,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:66,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:66,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - ' vec'
    argTypes:
    - RsaDecryptTestVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 34
    functionDepth: 8
    functionLinenumber: 34
    functionLinenumberEnd: 68
    functionName: nss_test::RsaDecryptWycheproofTest::TestDecrypt
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc
    functionUses: 0
    functionsReached:
    - std::vector::data
    - std::vector::size
    - ct::size
    - ct::data
    - DataBuffer
    - toUcharPtr
    - priv_key::size
    - ASSERT_NE
    - EXPECT_NE
    - ASSERT_EQ
    - priv_key::data
    - static_cast<unsigned int>
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - PK11_ImportDERPrivateKeyInfoAndReturnKey
    - PR_MAX
    - std::vector::resize
    - PK11_PrivDecryptPKCS1
    - ScopedSECKEYPrivateKey::get
    linkageType: ''
    returnType: void
    signature: void TestDecrypt(const RsaDecryptTestVector& vec)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NextItem
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:74,1
    - Dst: ReadLabel
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:75,1
    - Dst: SkipValue
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:82,1
    - Dst: ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:84,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:86,1
    - Dst: ReadString
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:86,1
    - Dst: WycheproofReadTests
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:88,1
    - Dst: std::find
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:92,1
    - Dst: begin
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:92,1
    - Dst: end
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:92,1
    - Dst: end
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:94,1
    - Dst: FAIL
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:97,1
    - Dst: nss_test::RsaDecryptWycheproofTest::TestDecrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:104,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 26
    argCount: 1
    argNames:
    - ' r'
    argTypes:
    - JsonReader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 71
    functionDepth: 9
    functionLinenumber: 71
    functionLinenumberEnd: 106
    functionName: nss_test::RsaDecryptWycheproofTest::RunGroup
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc
    functionUses: 1
    functionsReached:
    - NextItem
    - ASSERT_EQ
    - FAIL
    - WycheproofReadTests
    - std::find
    - end
    - ReadHex
    - begin
    - SkipValue
    - ReadLabel
    - nss_test::RsaDecryptWycheproofTest::TestDecrypt
    - ReadString
    linkageType: ''
    returnType: void
    signature: void RunGroup(JsonReader& r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:111,1
    - Dst: ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:113,1
    - Dst: FAIL
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ' t'
    - ' n'
    - ' r'
    argTypes:
    - RsaDecryptTestVector
    - std::string
    - JsonReader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 117
    functionName: nss_test::RsaDecryptWycheproofTest::ReadTestAttr
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc
    functionUses: 0
    functionsReached:
    - FAIL
    - ReadHex
    linkageType: ''
    returnType: void
    signature: "void ReadTestAttr(RsaDecryptTestVector& t, const std::string& n,\n
      \                          JsonReader& r)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(RsaDecryptWycheproofTest, Rsa2048)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(RsaDecryptWycheproofTest, Rsa3072)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 122
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(RsaDecryptWycheproofTest, Rsa4096)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestDecrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 130
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc
    functionUses: 0
    functionsReached:
    - TestDecrypt
    linkageType: ''
    returnType: void
    signature: void TEST_F(RsaDecryptWycheproofTest, Bb2048)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestDecrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 137
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc
    functionUses: 0
    functionsReached:
    - TestDecrypt
    linkageType: ''
    returnType: void
    signature: void TEST_F(RsaDecryptWycheproofTest, Bb2049)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestDecrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 144
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc
    functionUses: 0
    functionsReached:
    - TestDecrypt
    linkageType: ''
    returnType: void
    signature: void TEST_F(RsaDecryptWycheproofTest, Bb3072)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:165,1
    - Dst: SECKEY_DecodeDERSubjectPublicKeyInfo
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:167,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:168,1
    - Dst: SECKEY_ExtractPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:169,1
    - Dst: ScopedCERTSubjectPublicKeyInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:169,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:170,1
    - Dst: SECKEY_PublicKeyStrength
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:172,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:172,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:173,1
    - Dst: PK11_PubEncrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:181,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:181,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:181,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:182,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:183,1
    - Dst: PK11_PubEncrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:187,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:187,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:187,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:188,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:189,1
    - Dst: PK11_PubEncrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:193,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:193,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:193,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:194,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:195,1
    - Dst: PK11_PubEncrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:200,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:200,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:200,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:201,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 146
    functionDepth: 10
    functionLinenumber: 146
    functionLinenumberEnd: 203
    functionName: nss_test::TEST
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc
    functionUses: 0
    functionsReached:
    - SECKEY_PublicKeyStrength
    - ASSERT_EQ
    - std::vector::data
    - PK11_PubEncrypt
    - ASSERT_TRUE
    - SECKEY_ExtractPublicKey
    - SECKEY_DecodeDERSubjectPublicKeyInfo
    - ScopedCERTSubjectPublicKeyInfo::get
    - toUcharPtr
    - ScopedSECKEYPublicKey::get
    linkageType: ''
    returnType: void
    signature: void TEST(RsaEncryptTest, MessageLengths)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WycheproofHeader
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:29,1
    - Dst: nss_test::RsaDecryptWycheproofTest::RunGroup
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 10
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: nss_test::RsaDecryptWycheproofTest::Run
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc
    functionUses: 0
    functionsReached:
    - WycheproofHeader
    - nss_test::RsaDecryptWycheproofTest::RunGroup
    linkageType: ''
    returnType: void
    signature: void Run(const std::string& name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:35,1
    - Dst: priv_key::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:35,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:36,1
    - Dst: priv_key::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:36,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:39,1
    - Dst: PK11_ImportDERPrivateKeyInfoAndReturnKey
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:42,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:43,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:45,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:46,1
    - Dst: PR_MAX
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:50,1
    - Dst: ct::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:50,1
    - Dst: PK11_PrivDecryptPKCS1
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:52,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:52,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:52,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:53,1
    - Dst: ct::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:53,1
    - Dst: ct::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:53,1
    - Dst: std::vector::resize
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:55,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:57,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:58,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:62,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:63,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:65,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:66,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:66,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - ' vec'
    argTypes:
    - RsaDecryptTestVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 34
    functionDepth: 8
    functionLinenumber: 34
    functionLinenumberEnd: 68
    functionName: nss_test::RsaDecryptWycheproofTest::TestDecrypt
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc
    functionUses: 1
    functionsReached:
    - std::vector::data
    - std::vector::size
    - ct::size
    - ct::data
    - DataBuffer
    - toUcharPtr
    - priv_key::size
    - ASSERT_NE
    - EXPECT_NE
    - ASSERT_EQ
    - priv_key::data
    - static_cast<unsigned int>
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - PK11_ImportDERPrivateKeyInfoAndReturnKey
    - PR_MAX
    - std::vector::resize
    - PK11_PrivDecryptPKCS1
    - ScopedSECKEYPrivateKey::get
    linkageType: ''
    returnType: void
    signature: void TestDecrypt(const RsaDecryptTestVector& vec)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NextItem
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:74,1
    - Dst: ReadLabel
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:75,1
    - Dst: SkipValue
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:82,1
    - Dst: ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:84,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:86,1
    - Dst: ReadString
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:86,1
    - Dst: WycheproofReadTests
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:88,1
    - Dst: std::find
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:92,1
    - Dst: begin
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:92,1
    - Dst: end
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:92,1
    - Dst: end
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:94,1
    - Dst: FAIL
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:97,1
    - Dst: nss_test::RsaDecryptWycheproofTest::TestDecrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:104,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 26
    argCount: 1
    argNames:
    - ' r'
    argTypes:
    - JsonReader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 71
    functionDepth: 9
    functionLinenumber: 71
    functionLinenumberEnd: 106
    functionName: nss_test::RsaDecryptWycheproofTest::RunGroup
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc
    functionUses: 2
    functionsReached:
    - NextItem
    - ASSERT_EQ
    - FAIL
    - WycheproofReadTests
    - std::find
    - end
    - ReadHex
    - begin
    - SkipValue
    - ReadLabel
    - nss_test::RsaDecryptWycheproofTest::TestDecrypt
    - ReadString
    linkageType: ''
    returnType: void
    signature: void RunGroup(JsonReader& r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:111,1
    - Dst: ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:113,1
    - Dst: FAIL
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ' t'
    - ' n'
    - ' r'
    argTypes:
    - RsaDecryptTestVector
    - std::string
    - JsonReader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 117
    functionName: nss_test::RsaDecryptWycheproofTest::ReadTestAttr
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc
    functionUses: 0
    functionsReached:
    - FAIL
    - ReadHex
    linkageType: ''
    returnType: void
    signature: "void ReadTestAttr(RsaDecryptTestVector& t, const std::string& n,\n
      \                          JsonReader& r)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(RsaDecryptWycheproofTest, Rsa2048)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(RsaDecryptWycheproofTest, Rsa3072)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 122
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(RsaDecryptWycheproofTest, Rsa4096)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestDecrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 130
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc
    functionUses: 0
    functionsReached:
    - TestDecrypt
    linkageType: ''
    returnType: void
    signature: void TEST_F(RsaDecryptWycheproofTest, Bb2048)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestDecrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 137
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc
    functionUses: 0
    functionsReached:
    - TestDecrypt
    linkageType: ''
    returnType: void
    signature: void TEST_F(RsaDecryptWycheproofTest, Bb2049)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestDecrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 144
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc
    functionUses: 0
    functionsReached:
    - TestDecrypt
    linkageType: ''
    returnType: void
    signature: void TEST_F(RsaDecryptWycheproofTest, Bb3072)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:165,1
    - Dst: SECKEY_DecodeDERSubjectPublicKeyInfo
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:167,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:168,1
    - Dst: SECKEY_ExtractPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:169,1
    - Dst: ScopedCERTSubjectPublicKeyInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:169,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:170,1
    - Dst: SECKEY_PublicKeyStrength
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:172,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:172,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:173,1
    - Dst: PK11_PubEncrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:181,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:181,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:181,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:182,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:183,1
    - Dst: PK11_PubEncrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:187,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:187,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:187,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:188,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:189,1
    - Dst: PK11_PubEncrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:193,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:193,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:193,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:194,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:195,1
    - Dst: PK11_PubEncrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:200,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:200,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:200,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:201,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 146
    functionDepth: 10
    functionLinenumber: 146
    functionLinenumberEnd: 203
    functionName: nss_test::TEST
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsaencrypt_unittest.cc
    functionUses: 0
    functionsReached:
    - SECKEY_PublicKeyStrength
    - ASSERT_EQ
    - std::vector::data
    - PK11_PubEncrypt
    - ASSERT_TRUE
    - SECKEY_ExtractPublicKey
    - SECKEY_DecodeDERSubjectPublicKeyInfo
    - ScopedCERTSubjectPublicKeyInfo::get
    - toUcharPtr
    - ScopedSECKEYPublicKey::get
    linkageType: ''
    returnType: void
    signature: void TEST(RsaEncryptTest, MessageLengths)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - mech
    - curve_oid
    argTypes:
    - CK_MECHANISM_TYPE
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: nss_test::Pkcs11KeyPairGenerator::Pkcs11KeyPairGenerator
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_keygen.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Pkcs11KeyPairGenerator(CK_MECHANISM_TYPE mech, SECOidTag curve_oid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mech
    argTypes:
    - CK_MECHANISM_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: nss_test::Pkcs11KeyPairGenerator::Pkcs11KeyPairGenerator
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_keygen.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Pkcs11KeyPairGenerator(CK_MECHANISM_TYPE mech)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    functionName: nss_test::Pkcs11KeyPairGenerator::mechanism
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_keygen.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_MECHANISM_TYPE
    signature: CK_MECHANISM_TYPE mechanism() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    functionName: nss_test::Pkcs11KeyPairGenerator::curve
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_keygen.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag curve() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - mech
    - curve_oid
    argTypes:
    - CK_MECHANISM_TYPE
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: nss_test::Pkcs11KeyPairGenerator::Pkcs11KeyPairGenerator
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_keygen.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Pkcs11KeyPairGenerator(CK_MECHANISM_TYPE mech, SECOidTag curve_oid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mech
    argTypes:
    - CK_MECHANISM_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 19
    functionName: nss_test::Pkcs11KeyPairGenerator::Pkcs11KeyPairGenerator
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_keygen.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Pkcs11KeyPairGenerator(CK_MECHANISM_TYPE mech)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    functionName: nss_test::Pkcs11KeyPairGenerator::mechanism
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_keygen.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_MECHANISM_TYPE
    signature: CK_MECHANISM_TYPE mechanism() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    functionName: nss_test::Pkcs11KeyPairGenerator::curve
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_keygen.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag curve() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:25,1
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:26,1
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:27,1
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:28,1
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:29,1
    - Dst: std::to_string
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:32,1
    - Dst: std::vector::empty
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:34,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:40,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:41,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:42,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:43,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:46,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:50,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:51,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:51,1
    - Dst: PK11_ImportSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:54,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:55,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:56,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:60,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:65,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:65,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:65,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:66,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:66,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:66,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:67,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:68,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:73,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:73,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:73,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:74,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:74,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:74,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:75,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:76,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:80,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:80,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:80,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:81,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:81,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:81,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:83,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:84,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:87,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:89,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:89,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:93,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:95,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:102,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:103,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:103,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:103,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:104,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:104,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:106,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:107,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:107,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:110,1
    - Dst: std::vector<uint8_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:111,1
    - Dst: std::vector::begin
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:111,1
    - Dst: std::vector::begin
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:112,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 35
    argCount: 1
    argNames:
    - vec
    argTypes:
    - AesGcmKatValue
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 24
    functionDepth: 6
    functionLinenumber: 24
    functionLinenumberEnd: 114
    functionName: nss_test::Pkcs11AesGcmTest::RunTest
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - hex_string_to_bytes
    - ASSERT_EQ
    - EXPECT_NE
    - PK11_Decrypt
    - std::vector::data
    - ScopedPK11SymKey::get
    - reinterpret_cast<unsigned char*>
    - ASSERT_TRUE
    - std::vector::size
    - PK11_ImportSymKey
    - static_cast<unsigned int>
    - std::vector<uint8_t>
    - std::vector::begin
    - std::to_string
    - std::vector::empty
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void RunTest(const AesGcmKatValue vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_KeyGen
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:120,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:120,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:121,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:129,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:130,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:131,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:132,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:135,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:140,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:140,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:140,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:141,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:141,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ' iv'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 116
    functionDepth: 5
    functionLinenumber: 116
    functionLinenumberEnd: 142
    functionName: nss_test::Pkcs11AesGcmTest::EncryptWithIV
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - std::vector::data
    - EXPECT_TRUE
    - ScopedPK11SymKey::get
    - size
    - reinterpret_cast<unsigned char*>
    - std::vector::size
    - PK11_KeyGen
    - ScopedPK11SlotInfo::get
    - data
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus EncryptWithIV(std::vector<uint8_t>& iv)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:149,1
    - Dst: PK11_KeyGen
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:151,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:151,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:152,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:176,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:177,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:178,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:179,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:180,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:185,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:186,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:191,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:193,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:193,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:203,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:204,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:206,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:206,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:207,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:216,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:219,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:224,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:224,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:224,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:224,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:225,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:225,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:225,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:225,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:226,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:226,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:226,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:226,1
    - Dst: PK11_CreateContextBySymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:231,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:232,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:233,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:237,1
    - Dst: _PK11_ContextGetAEADSimulation
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:237,1
    - Dst: ScopedPK11Context::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:237,1
    - Dst: PK11_CreateContextBySymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:240,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:241,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:242,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:246,1
    - Dst: _PK11_ContextSetAEADSimulation
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:247,1
    - Dst: ScopedPK11Context::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:247,1
    - Dst: PK11_CreateContextBySymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:250,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:251,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:252,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:256,1
    - Dst: _PK11_ContextGetAEADSimulation
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:256,1
    - Dst: ScopedPK11Context::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:256,1
    - Dst: PK11_CreateContextBySymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:259,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:260,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:261,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:265,1
    - Dst: _PK11_ContextSetAEADSimulation
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:266,1
    - Dst: ScopedPK11Context::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:266,1
    - Dst: PK11_AEADRawOp
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:280,1
    - Dst: ScopedPK11Context::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:280,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:281,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:281,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:282,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:283,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:283,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:283,1
    - Dst: PK11_AEADRawOp
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:288,1
    - Dst: ScopedPK11Context::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:288,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:289,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:289,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:290,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:291,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:291,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:296,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:297,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:297,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:297,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:297,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:299,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:299,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:301,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:301,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:301,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:301,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:304,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:305,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:305,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:305,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:306,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:306,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:307,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:308,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:309,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:309,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:309,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:309,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:311,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:311,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:312,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:314,1
    - Dst: PK11_AEADRawOp
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:315,1
    - Dst: ScopedPK11Context::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:315,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:317,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:317,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:317,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:318,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:319,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:320,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:320,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:321,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:322,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:322,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:322,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:322,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:323,1
    - Dst: PK11_AEADRawOp
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:325,1
    - Dst: ScopedPK11Context::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:325,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:326,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:326,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:327,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:328,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:328,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:330,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:330,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:331,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:332,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:332,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:332,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:332,1
    - Dst: memcpy
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:336,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:336,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:339,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:340,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:340,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:340,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:341,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:342,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:343,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:343,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:344,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:344,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:344,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:344,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:344,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 90
    argCount: 4
    argNames:
    - iterations
    - ivFixedBits
    - ivGen
    - separateTag
    argTypes:
    - int
    - int
    - CK_GENERATOR_FUNCTION
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 144
    functionDepth: 12
    functionLinenumber: 144
    functionLinenumberEnd: 347
    functionName: nss_test::Pkcs11AesGcmTest::MessageInterfaceTest
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - std::vector::data
    - std::vector::size
    - PK11_CreateContextBySymKey
    - memcpy
    - PK11_Decrypt
    - ScopedPK11SymKey::get
    - reinterpret_cast<unsigned char*>
    - PK11_KeyGen
    - memcmp
    - _PK11_ContextGetAEADSimulation
    - EXPECT_NE
    - EXPECT_FALSE
    - ScopedPK11Context::get
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - PK11_AEADRawOp
    - _PK11_ContextSetAEADSimulation
    - PK11_GenerateRandom
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus MessageInterfaceTest(int iterations, int ivFixedBits,\n
      \                                CK_GENERATOR_FUNCTION ivGen,\n                                 PRBool
      separateTag)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RunTest
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:352,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 352
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc
    functionUses: 0
    functionsReached:
    - RunTest
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11AesGcmTest, TestVectors)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:362,1
    - Dst: EncryptWithIV
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 363
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - EncryptWithIV
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11AesGcmTest, ZeroLengthIV)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:367,1
    - Dst: EncryptWithIV
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 368
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - EncryptWithIV
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11AesGcmTest, AllZeroIV)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:372,1
    - Dst: EncryptWithIV
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 373
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - EncryptWithIV
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11AesGcmTest, TwelveByteZeroIV)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:377,1
    - Dst: MessageInterfaceTest
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 379
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc
    functionUses: 0
    functionsReached:
    - MessageInterfaceTest
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11AesGcmTest, MessageInterfaceBasic)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:385,1
    - Dst: MessageInterfaceTest
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 387
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc
    functionUses: 0
    functionsReached:
    - MessageInterfaceTest
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11AesGcmTest, MessageInterfaceSeparateTags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:391,1
    - Dst: MessageInterfaceTest
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 393
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc
    functionUses: 0
    functionsReached:
    - MessageInterfaceTest
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11AesGcmTest, MessageInterfaceIVMask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:397,1
    - Dst: MessageInterfaceTest
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 399
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc
    functionUses: 0
    functionsReached:
    - MessageInterfaceTest
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11AesGcmTest, MessageInterfaceXorCounter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:404,1
    - Dst: MessageInterfaceTest
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 406
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc
    functionUses: 0
    functionsReached:
    - MessageInterfaceTest
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11AesGcmTest, MessageInterfaceCounterOverflow)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:410,1
    - Dst: MessageInterfaceTest
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 412
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc
    functionUses: 0
    functionsReached:
    - MessageInterfaceTest
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11AesGcmTest, MessageInterfaceXorCounterOverflow)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:416,1
    - Dst: MessageInterfaceTest
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 415
    functionDepth: 1
    functionLinenumber: 415
    functionLinenumberEnd: 418
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc
    functionUses: 0
    functionsReached:
    - MessageInterfaceTest
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11AesGcmTest, MessageInterfaceRandomIV)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:425,1
    - Dst: MessageInterfaceTest
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 424
    functionDepth: 1
    functionLinenumber: 424
    functionLinenumberEnd: 427
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc
    functionUses: 0
    functionsReached:
    - MessageInterfaceTest
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11AesGcmTest, MessageInterfaceRandomOverflow)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:25,1
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:26,1
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:27,1
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:28,1
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:29,1
    - Dst: std::to_string
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:32,1
    - Dst: std::vector::empty
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:34,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:40,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:41,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:42,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:43,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:46,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:50,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:51,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:51,1
    - Dst: PK11_ImportSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:54,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:55,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:56,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:60,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:65,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:65,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:65,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:66,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:66,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:66,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:67,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:68,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:73,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:73,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:73,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:74,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:74,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:74,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:75,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:76,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:80,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:80,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:80,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:81,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:81,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:81,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:83,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:84,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:87,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:89,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:89,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:93,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:95,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:102,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:103,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:103,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:103,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:104,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:104,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:106,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:107,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:107,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:110,1
    - Dst: std::vector<uint8_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:111,1
    - Dst: std::vector::begin
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:111,1
    - Dst: std::vector::begin
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:112,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 35
    argCount: 1
    argNames:
    - vec
    argTypes:
    - AesGcmKatValue
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 24
    functionDepth: 6
    functionLinenumber: 24
    functionLinenumberEnd: 114
    functionName: nss_test::Pkcs11AesGcmTest::RunTest
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - hex_string_to_bytes
    - ASSERT_EQ
    - EXPECT_NE
    - PK11_Decrypt
    - std::vector::data
    - ScopedPK11SymKey::get
    - reinterpret_cast<unsigned char*>
    - ASSERT_TRUE
    - std::vector::size
    - PK11_ImportSymKey
    - static_cast<unsigned int>
    - std::vector<uint8_t>
    - std::vector::begin
    - std::to_string
    - std::vector::empty
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void RunTest(const AesGcmKatValue vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_KeyGen
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:120,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:120,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:121,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:129,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:130,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:131,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:132,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:135,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:140,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:140,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:140,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:141,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:141,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ' iv'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 116
    functionDepth: 5
    functionLinenumber: 116
    functionLinenumberEnd: 142
    functionName: nss_test::Pkcs11AesGcmTest::EncryptWithIV
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - std::vector::data
    - EXPECT_TRUE
    - ScopedPK11SymKey::get
    - size
    - reinterpret_cast<unsigned char*>
    - std::vector::size
    - PK11_KeyGen
    - ScopedPK11SlotInfo::get
    - data
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus EncryptWithIV(std::vector<uint8_t>& iv)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:149,1
    - Dst: PK11_KeyGen
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:151,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:151,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:152,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:176,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:177,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:178,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:179,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:180,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:185,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:186,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:191,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:193,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:193,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:203,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:204,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:206,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:206,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:207,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:216,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:219,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:224,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:224,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:224,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:224,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:225,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:225,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:225,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:225,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:226,1
    - Dst: PK11_GenerateRandom
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:226,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:226,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:226,1
    - Dst: PK11_CreateContextBySymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:231,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:232,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:233,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:237,1
    - Dst: _PK11_ContextGetAEADSimulation
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:237,1
    - Dst: ScopedPK11Context::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:237,1
    - Dst: PK11_CreateContextBySymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:240,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:241,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:242,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:246,1
    - Dst: _PK11_ContextSetAEADSimulation
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:247,1
    - Dst: ScopedPK11Context::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:247,1
    - Dst: PK11_CreateContextBySymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:250,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:251,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:252,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:256,1
    - Dst: _PK11_ContextGetAEADSimulation
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:256,1
    - Dst: ScopedPK11Context::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:256,1
    - Dst: PK11_CreateContextBySymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:259,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:260,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:261,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:265,1
    - Dst: _PK11_ContextSetAEADSimulation
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:266,1
    - Dst: ScopedPK11Context::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:266,1
    - Dst: PK11_AEADRawOp
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:280,1
    - Dst: ScopedPK11Context::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:280,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:281,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:281,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:282,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:283,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:283,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:283,1
    - Dst: PK11_AEADRawOp
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:288,1
    - Dst: ScopedPK11Context::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:288,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:289,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:289,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:290,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:291,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:291,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:296,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:297,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:297,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:297,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:297,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:299,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:299,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:301,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:301,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:301,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:301,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:304,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:305,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:305,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:305,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:306,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:306,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:307,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:308,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:309,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:309,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:309,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:309,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:311,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:311,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:312,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:314,1
    - Dst: PK11_AEADRawOp
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:315,1
    - Dst: ScopedPK11Context::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:315,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:317,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:317,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:317,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:318,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:319,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:320,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:320,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:321,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:322,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:322,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:322,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:322,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:323,1
    - Dst: PK11_AEADRawOp
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:325,1
    - Dst: ScopedPK11Context::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:325,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:326,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:326,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:327,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:328,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:328,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:330,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:330,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:331,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:332,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:332,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:332,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:332,1
    - Dst: memcpy
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:336,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:336,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:339,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:340,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:340,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:340,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:341,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:342,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:343,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:343,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:344,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:344,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:344,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:344,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:344,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 90
    argCount: 4
    argNames:
    - iterations
    - ivFixedBits
    - ivGen
    - separateTag
    argTypes:
    - int
    - int
    - CK_GENERATOR_FUNCTION
    - PRBool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 144
    functionDepth: 12
    functionLinenumber: 144
    functionLinenumberEnd: 347
    functionName: nss_test::Pkcs11AesGcmTest::MessageInterfaceTest
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - std::vector::data
    - std::vector::size
    - PK11_CreateContextBySymKey
    - memcpy
    - PK11_Decrypt
    - ScopedPK11SymKey::get
    - reinterpret_cast<unsigned char*>
    - PK11_KeyGen
    - memcmp
    - _PK11_ContextGetAEADSimulation
    - EXPECT_NE
    - EXPECT_FALSE
    - ScopedPK11Context::get
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - PK11_AEADRawOp
    - _PK11_ContextSetAEADSimulation
    - PK11_GenerateRandom
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus MessageInterfaceTest(int iterations, int ivFixedBits,\n
      \                                CK_GENERATOR_FUNCTION ivGen,\n                                 PRBool
      separateTag)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RunTest
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:352,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 352
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc
    functionUses: 0
    functionsReached:
    - RunTest
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11AesGcmTest, TestVectors)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:362,1
    - Dst: EncryptWithIV
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 363
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - EncryptWithIV
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11AesGcmTest, ZeroLengthIV)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:367,1
    - Dst: EncryptWithIV
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 368
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - EncryptWithIV
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11AesGcmTest, AllZeroIV)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:372,1
    - Dst: EncryptWithIV
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 373
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - EncryptWithIV
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11AesGcmTest, TwelveByteZeroIV)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:377,1
    - Dst: MessageInterfaceTest
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 379
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc
    functionUses: 0
    functionsReached:
    - MessageInterfaceTest
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11AesGcmTest, MessageInterfaceBasic)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:385,1
    - Dst: MessageInterfaceTest
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 387
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc
    functionUses: 0
    functionsReached:
    - MessageInterfaceTest
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11AesGcmTest, MessageInterfaceSeparateTags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:391,1
    - Dst: MessageInterfaceTest
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 393
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc
    functionUses: 0
    functionsReached:
    - MessageInterfaceTest
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11AesGcmTest, MessageInterfaceIVMask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:397,1
    - Dst: MessageInterfaceTest
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 399
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc
    functionUses: 0
    functionsReached:
    - MessageInterfaceTest
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11AesGcmTest, MessageInterfaceXorCounter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:404,1
    - Dst: MessageInterfaceTest
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 406
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc
    functionUses: 0
    functionsReached:
    - MessageInterfaceTest
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11AesGcmTest, MessageInterfaceCounterOverflow)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:410,1
    - Dst: MessageInterfaceTest
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 412
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc
    functionUses: 0
    functionsReached:
    - MessageInterfaceTest
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11AesGcmTest, MessageInterfaceXorCounterOverflow)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:416,1
    - Dst: MessageInterfaceTest
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 415
    functionDepth: 1
    functionLinenumber: 415
    functionLinenumberEnd: 418
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc
    functionUses: 0
    functionsReached:
    - MessageInterfaceTest
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11AesGcmTest, MessageInterfaceRandomIV)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:425,1
    - Dst: MessageInterfaceTest
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 424
    functionDepth: 1
    functionLinenumber: 424
    functionLinenumberEnd: 427
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aes_gcm_unittest.cc
    functionUses: 0
    functionsReached:
    - MessageInterfaceTest
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11AesGcmTest, MessageInterfaceRandomOverflow)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GenerateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_key_unittest.cc:26,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_key_unittest.cc:27,1
    - Dst: SECKEY_GetPublicKeyType
      Src: /src/nss/gtests/pk11_gtest/pk11_key_unittest.cc:32,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_key_unittest.cc:32,1
    - Dst: FAIL
      Src: /src/nss/gtests/pk11_gtest/pk11_key_unittest.cc:50,1
    - Dst: SECKEY_GetPublicKeyType
      Src: /src/nss/gtests/pk11_gtest/pk11_key_unittest.cc:50,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_key_unittest.cc:50,1
    - Dst: PK11_PubDeriveWithKDF
      Src: /src/nss/gtests/pk11_gtest/pk11_key_unittest.cc:55,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_key_unittest.cc:56,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_key_unittest.cc:56,1
    - Dst: ASSERT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_key_unittest.cc:58,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - ' generator'
    - dh_mech
    argTypes:
    - Pkcs11KeyPairGenerator
    - CK_MECHANISM_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 22
    functionDepth: 12
    functionLinenumber: 22
    functionLinenumberEnd: 59
    functionName: nss_test::Pkcs11NullKeyTestBase::Test
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_key_unittest.cc
    functionUses: 0
    functionsReached:
    - FAIL
    - ASSERT_TRUE
    - ASSERT_FALSE
    - SECKEY_GetPublicKeyType
    - ScopedSECKEYPrivateKey::get
    - ScopedSECKEYPublicKey::get
    - GenerateKey
    - PK11_PubDeriveWithKDF
    linkageType: ''
    returnType: void
    signature: "void Test(const Pkcs11KeyPairGenerator& generator,\n            CK_MECHANISM_TYPE
      dh_mech)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test
      Src: /src/nss/gtests/pk11_gtest/pk11_key_unittest.cc:64,1
    - Dst: Pkcs11KeyPairGenerator
      Src: /src/nss/gtests/pk11_gtest/pk11_key_unittest.cc:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_key_unittest.cc
    functionUses: 0
    functionsReached:
    - Pkcs11KeyPairGenerator
    - Test
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11DhNullKeyTest, UseNullPublicValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test
      Src: /src/nss/gtests/pk11_gtest/pk11_key_unittest.cc:71,1
    - Dst: Pkcs11KeyPairGenerator
      Src: /src/nss/gtests/pk11_gtest/pk11_key_unittest.cc:71,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_key_unittest.cc:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_key_unittest.cc
    functionUses: 0
    functionsReached:
    - Pkcs11KeyPairGenerator
    - Test
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11EcdhNullKeyTest, UseNullPublicValue)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: GenerateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_key_unittest.cc:26,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_key_unittest.cc:27,1
    - Dst: SECKEY_GetPublicKeyType
      Src: /src/nss/gtests/pk11_gtest/pk11_key_unittest.cc:32,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_key_unittest.cc:32,1
    - Dst: FAIL
      Src: /src/nss/gtests/pk11_gtest/pk11_key_unittest.cc:50,1
    - Dst: SECKEY_GetPublicKeyType
      Src: /src/nss/gtests/pk11_gtest/pk11_key_unittest.cc:50,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_key_unittest.cc:50,1
    - Dst: PK11_PubDeriveWithKDF
      Src: /src/nss/gtests/pk11_gtest/pk11_key_unittest.cc:55,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_key_unittest.cc:56,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_key_unittest.cc:56,1
    - Dst: ASSERT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_key_unittest.cc:58,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - ' generator'
    - dh_mech
    argTypes:
    - Pkcs11KeyPairGenerator
    - CK_MECHANISM_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 22
    functionDepth: 12
    functionLinenumber: 22
    functionLinenumberEnd: 59
    functionName: nss_test::Pkcs11NullKeyTestBase::Test
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_key_unittest.cc
    functionUses: 0
    functionsReached:
    - FAIL
    - ASSERT_TRUE
    - ASSERT_FALSE
    - SECKEY_GetPublicKeyType
    - ScopedSECKEYPrivateKey::get
    - ScopedSECKEYPublicKey::get
    - GenerateKey
    - PK11_PubDeriveWithKDF
    linkageType: ''
    returnType: void
    signature: "void Test(const Pkcs11KeyPairGenerator& generator,\n            CK_MECHANISM_TYPE
      dh_mech)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test
      Src: /src/nss/gtests/pk11_gtest/pk11_key_unittest.cc:64,1
    - Dst: Pkcs11KeyPairGenerator
      Src: /src/nss/gtests/pk11_gtest/pk11_key_unittest.cc:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_key_unittest.cc
    functionUses: 0
    functionsReached:
    - Pkcs11KeyPairGenerator
    - Test
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11DhNullKeyTest, UseNullPublicValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test
      Src: /src/nss/gtests/pk11_gtest/pk11_key_unittest.cc:71,1
    - Dst: Pkcs11KeyPairGenerator
      Src: /src/nss/gtests/pk11_gtest/pk11_key_unittest.cc:71,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_key_unittest.cc:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_key_unittest.cc
    functionUses: 0
    functionsReached:
    - Pkcs11KeyPairGenerator
    - Test
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11EcdhNullKeyTest, UseNullPublicValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:26,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:29,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:30,1
    - Dst: memcpy
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:33,1
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:39,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:39,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:41,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:42,1
    - Dst: ScopedSECKEYPublicKey::reset
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:43,1
    - Dst: PK11_KeyGen
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:47,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:47,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:48,1
    - Dst: PK11_WrapPrivKey
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:54,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:54,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:54,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:54,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:55,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:56,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:57,1
    - Dst: PK11_UnwrapPrivKey
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:64,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:64,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:64,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:65,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:65,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:67,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:67,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:68,1
    - Dst: PK11_UnwrapPrivKey
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:71,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:72,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:72,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:72,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:74,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:74,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:75,1
    - Dst: ScopedSECKEYPrivateKey::reset
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 18
    functionDepth: 9
    functionLinenumber: 18
    functionLinenumberEnd: 77
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - memcpy
    - SECOID_FindOIDByTag
    - ScopedPK11SymKey::get
    - PK11_GenerateKeyPair
    - ScopedSECItem::get
    - ScopedSECKEYPublicKey::reset
    - PORT_GetError
    - ASSERT_TRUE
    - ScopedSECKEYPrivateKey::reset
    - PK11_UnwrapPrivKey
    - PK11_KeyGen
    - ScopedSECKEYPrivateKey::get
    - ScopedPK11SlotInfo::get
    - ASSERT_NE
    - PK11_WrapPrivKey
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11AESKeyWrapPadTest, WrapUnwrapECKey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:85,1
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:94,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:94,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:96,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:97,1
    - Dst: ScopedSECKEYPublicKey::reset
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:98,1
    - Dst: PK11_KeyGen
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:102,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:102,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:103,1
    - Dst: PK11_WrapPrivKey
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:109,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:109,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:109,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:109,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:110,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:111,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:112,1
    - Dst: PK11_UnwrapPrivKey
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:119,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:119,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:119,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:120,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:120,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:122,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:122,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:123,1
    - Dst: PK11_ExportDERPrivateKeyInfo
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:126,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:126,1
    - Dst: PK11_ExportDERPrivateKeyInfo
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:128,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:128,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:129,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:130,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:131,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:132,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 80
    functionDepth: 9
    functionLinenumber: 80
    functionLinenumberEnd: 134
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ScopedPK11SymKey::get
    - PK11_GenerateKeyPair
    - ScopedSECItem::get
    - ScopedSECKEYPublicKey::reset
    - PORT_GetError
    - ASSERT_TRUE
    - PK11_ExportDERPrivateKeyInfo
    - EXPECT_TRUE
    - memcmp
    - PK11_UnwrapPrivKey
    - PK11_KeyGen
    - ScopedSECKEYPrivateKey::get
    - ScopedPK11SlotInfo::get
    - ASSERT_NE
    - PK11_WrapPrivKey
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11AESKeyWrapPadTest, WrapUnwrapRsaKey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GenerateRandom
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:148,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:148,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:148,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:149,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:153,1
    - Dst: PK11_KeyGen
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:155,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:155,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:156,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:159,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:159,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:160,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:161,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:161,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:162,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:163,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:163,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:164,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:166,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:166,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:167,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:168,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:168,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:169,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:170,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:171,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:171,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:172,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:172,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:172,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 138
    functionDepth: 9
    functionLinenumber: 138
    functionLinenumberEnd: 173
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - ASSERT_EQ
    - PK11_Decrypt
    - std::vector::data
    - ScopedPK11SymKey::get
    - memcmp
    - std::vector::size
    - static_cast<unsigned int>
    - PK11_GenerateRandom
    - PK11_KeyGen
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11AESKeyWrapPadTest, WrapUnwrapRandom_EvenBlock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GenerateRandom
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:187,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:187,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:187,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:188,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:192,1
    - Dst: PK11_KeyGen
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:194,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:194,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:195,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:198,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:198,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:199,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:200,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:200,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:201,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:202,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:202,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:203,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:205,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:205,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:206,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:207,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:207,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:208,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:209,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:210,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:210,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:211,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:211,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:211,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 177
    functionDepth: 9
    functionLinenumber: 177
    functionLinenumberEnd: 212
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - ASSERT_EQ
    - PK11_Decrypt
    - std::vector::data
    - ScopedPK11SymKey::get
    - memcmp
    - std::vector::size
    - static_cast<unsigned int>
    - PK11_GenerateRandom
    - PK11_KeyGen
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11AESKeyWrapPadTest, WrapUnwrapRandom_OddBlock1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GenerateRandom
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:226,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:226,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:226,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:227,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:231,1
    - Dst: PK11_KeyGen
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:233,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:233,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:234,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:237,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:237,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:238,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:238,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:239,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:239,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:240,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:242,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:242,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:243,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:244,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:244,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:245,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:246,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:247,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:247,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:248,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:248,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:248,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 216
    functionDepth: 9
    functionLinenumber: 216
    functionLinenumberEnd: 249
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - ASSERT_EQ
    - PK11_Decrypt
    - std::vector::data
    - ScopedPK11SymKey::get
    - memcmp
    - std::vector::size
    - static_cast<unsigned int>
    - PK11_GenerateRandom
    - PK11_KeyGen
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11AESKeyWrapPadTest, WrapUnwrapRandom_OddBlock2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:266,1
    - Dst: PK11_KeyGen
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:268,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:268,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:269,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:273,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:273,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:274,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:275,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:276,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:278,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:278,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:279,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:280,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:280,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:281,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 252
    functionDepth: 5
    functionLinenumber: 252
    functionLinenumberEnd: 283
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - ASSERT_EQ
    - PK11_Decrypt
    - std::vector::data
    - ScopedPK11SymKey::get
    - std::vector::size
    - static_cast<unsigned int>
    - PK11_KeyGen
    - ScopedPK11SlotInfo::get
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11AESKeyWrapPadTest, WrapUnwrapRandom_PaddingTooLong)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:298,1
    - Dst: PK11_KeyGen
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:300,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:300,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:301,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:305,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:305,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:306,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:307,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:308,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:310,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:310,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:311,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:312,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:312,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:313,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 287
    functionDepth: 5
    functionLinenumber: 287
    functionLinenumberEnd: 315
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - ASSERT_EQ
    - PK11_Decrypt
    - std::vector::data
    - ScopedPK11SymKey::get
    - std::vector::size
    - static_cast<unsigned int>
    - PK11_KeyGen
    - ScopedPK11SlotInfo::get
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11AESKeyWrapPadTest, WrapUnwrapRandom_NoPadding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:333,1
    - Dst: PK11_KeyGen
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:335,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:335,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:336,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:340,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:340,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:341,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:342,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:343,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:345,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:345,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:346,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:347,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:347,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:348,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 318
    functionDepth: 5
    functionLinenumber: 318
    functionLinenumberEnd: 350
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - ASSERT_EQ
    - PK11_Decrypt
    - std::vector::data
    - ScopedPK11SymKey::get
    - std::vector::size
    - static_cast<unsigned int>
    - PK11_KeyGen
    - ScopedPK11SlotInfo::get
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11AESKeyWrapPadTest, WrapUnwrapRandom_BadPadding1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:368,1
    - Dst: PK11_KeyGen
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:370,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:370,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:371,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:375,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:375,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:376,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:377,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:378,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:380,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:380,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:381,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:382,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:382,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:383,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 353
    functionDepth: 5
    functionLinenumber: 353
    functionLinenumberEnd: 385
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - ASSERT_EQ
    - PK11_Decrypt
    - std::vector::data
    - ScopedPK11SymKey::get
    - std::vector::size
    - static_cast<unsigned int>
    - PK11_KeyGen
    - ScopedPK11SlotInfo::get
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11AESKeyWrapPadTest, WrapUnwrapRandom_BadPadding2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:402,1
    - Dst: PK11_KeyGen
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:404,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:404,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:405,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:409,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:409,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:410,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:411,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:412,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:414,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:414,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:415,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:416,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:416,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:417,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:418,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:419,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:420,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:420,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 388
    functionDepth: 5
    functionLinenumber: 388
    functionLinenumberEnd: 421
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - ASSERT_EQ
    - PK11_Decrypt
    - std::vector::data
    - ScopedPK11SymKey::get
    - memcmp
    - std::vector::size
    - static_cast<unsigned int>
    - PK11_KeyGen
    - ScopedPK11SlotInfo::get
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11AESKeyWrapPadTest, WrapUnwrapRandom_ShortValidPadding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:26,1
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:29,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:30,1
    - Dst: memcpy
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:33,1
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:39,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:39,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:41,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:42,1
    - Dst: ScopedSECKEYPublicKey::reset
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:43,1
    - Dst: PK11_KeyGen
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:47,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:47,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:48,1
    - Dst: PK11_WrapPrivKey
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:54,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:54,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:54,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:54,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:55,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:56,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:57,1
    - Dst: PK11_UnwrapPrivKey
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:64,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:64,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:64,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:65,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:65,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:67,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:67,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:68,1
    - Dst: PK11_UnwrapPrivKey
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:71,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:72,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:72,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:72,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:74,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:74,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:75,1
    - Dst: ScopedSECKEYPrivateKey::reset
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 18
    functionDepth: 9
    functionLinenumber: 18
    functionLinenumberEnd: 77
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - memcpy
    - SECOID_FindOIDByTag
    - ScopedPK11SymKey::get
    - PK11_GenerateKeyPair
    - ScopedSECItem::get
    - ScopedSECKEYPublicKey::reset
    - PORT_GetError
    - ASSERT_TRUE
    - ScopedSECKEYPrivateKey::reset
    - PK11_UnwrapPrivKey
    - PK11_KeyGen
    - ScopedSECKEYPrivateKey::get
    - ScopedPK11SlotInfo::get
    - ASSERT_NE
    - PK11_WrapPrivKey
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11AESKeyWrapPadTest, WrapUnwrapECKey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:85,1
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:94,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:94,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:96,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:97,1
    - Dst: ScopedSECKEYPublicKey::reset
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:98,1
    - Dst: PK11_KeyGen
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:102,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:102,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:103,1
    - Dst: PK11_WrapPrivKey
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:109,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:109,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:109,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:109,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:110,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:111,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:112,1
    - Dst: PK11_UnwrapPrivKey
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:119,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:119,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:119,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:120,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:120,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:122,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:122,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:123,1
    - Dst: PK11_ExportDERPrivateKeyInfo
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:126,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:126,1
    - Dst: PK11_ExportDERPrivateKeyInfo
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:128,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:128,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:129,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:130,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:131,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:132,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 80
    functionDepth: 9
    functionLinenumber: 80
    functionLinenumberEnd: 134
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ScopedPK11SymKey::get
    - PK11_GenerateKeyPair
    - ScopedSECItem::get
    - ScopedSECKEYPublicKey::reset
    - PORT_GetError
    - ASSERT_TRUE
    - PK11_ExportDERPrivateKeyInfo
    - EXPECT_TRUE
    - memcmp
    - PK11_UnwrapPrivKey
    - PK11_KeyGen
    - ScopedSECKEYPrivateKey::get
    - ScopedPK11SlotInfo::get
    - ASSERT_NE
    - PK11_WrapPrivKey
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11AESKeyWrapPadTest, WrapUnwrapRsaKey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GenerateRandom
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:148,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:148,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:148,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:149,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:153,1
    - Dst: PK11_KeyGen
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:155,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:155,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:156,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:159,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:159,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:160,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:161,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:161,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:162,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:163,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:163,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:164,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:166,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:166,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:167,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:168,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:168,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:169,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:170,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:171,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:171,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:172,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:172,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:172,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 138
    functionDepth: 9
    functionLinenumber: 138
    functionLinenumberEnd: 173
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - ASSERT_EQ
    - PK11_Decrypt
    - std::vector::data
    - ScopedPK11SymKey::get
    - memcmp
    - std::vector::size
    - static_cast<unsigned int>
    - PK11_GenerateRandom
    - PK11_KeyGen
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11AESKeyWrapPadTest, WrapUnwrapRandom_EvenBlock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GenerateRandom
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:187,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:187,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:187,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:188,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:192,1
    - Dst: PK11_KeyGen
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:194,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:194,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:195,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:198,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:198,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:199,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:200,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:200,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:201,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:202,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:202,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:203,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:205,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:205,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:206,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:207,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:207,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:208,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:209,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:210,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:210,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:211,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:211,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:211,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 177
    functionDepth: 9
    functionLinenumber: 177
    functionLinenumberEnd: 212
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - ASSERT_EQ
    - PK11_Decrypt
    - std::vector::data
    - ScopedPK11SymKey::get
    - memcmp
    - std::vector::size
    - static_cast<unsigned int>
    - PK11_GenerateRandom
    - PK11_KeyGen
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11AESKeyWrapPadTest, WrapUnwrapRandom_OddBlock1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GenerateRandom
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:226,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:226,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:226,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:227,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:231,1
    - Dst: PK11_KeyGen
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:233,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:233,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:234,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:237,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:237,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:238,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:238,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:239,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:239,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:240,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:242,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:242,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:243,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:244,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:244,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:245,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:246,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:247,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:247,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:248,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:248,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:248,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 216
    functionDepth: 9
    functionLinenumber: 216
    functionLinenumberEnd: 249
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - ASSERT_EQ
    - PK11_Decrypt
    - std::vector::data
    - ScopedPK11SymKey::get
    - memcmp
    - std::vector::size
    - static_cast<unsigned int>
    - PK11_GenerateRandom
    - PK11_KeyGen
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11AESKeyWrapPadTest, WrapUnwrapRandom_OddBlock2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:266,1
    - Dst: PK11_KeyGen
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:268,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:268,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:269,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:273,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:273,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:274,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:275,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:276,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:278,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:278,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:279,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:280,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:280,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:281,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 252
    functionDepth: 5
    functionLinenumber: 252
    functionLinenumberEnd: 283
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - ASSERT_EQ
    - PK11_Decrypt
    - std::vector::data
    - ScopedPK11SymKey::get
    - std::vector::size
    - static_cast<unsigned int>
    - PK11_KeyGen
    - ScopedPK11SlotInfo::get
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11AESKeyWrapPadTest, WrapUnwrapRandom_PaddingTooLong)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:298,1
    - Dst: PK11_KeyGen
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:300,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:300,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:301,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:305,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:305,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:306,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:307,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:308,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:310,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:310,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:311,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:312,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:312,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:313,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 287
    functionDepth: 5
    functionLinenumber: 287
    functionLinenumberEnd: 315
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - ASSERT_EQ
    - PK11_Decrypt
    - std::vector::data
    - ScopedPK11SymKey::get
    - std::vector::size
    - static_cast<unsigned int>
    - PK11_KeyGen
    - ScopedPK11SlotInfo::get
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11AESKeyWrapPadTest, WrapUnwrapRandom_NoPadding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:333,1
    - Dst: PK11_KeyGen
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:335,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:335,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:336,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:340,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:340,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:341,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:342,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:343,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:345,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:345,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:346,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:347,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:347,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:348,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 318
    functionDepth: 5
    functionLinenumber: 318
    functionLinenumberEnd: 350
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - ASSERT_EQ
    - PK11_Decrypt
    - std::vector::data
    - ScopedPK11SymKey::get
    - std::vector::size
    - static_cast<unsigned int>
    - PK11_KeyGen
    - ScopedPK11SlotInfo::get
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11AESKeyWrapPadTest, WrapUnwrapRandom_BadPadding1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:368,1
    - Dst: PK11_KeyGen
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:370,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:370,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:371,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:375,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:375,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:376,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:377,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:378,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:380,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:380,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:381,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:382,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:382,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:383,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 353
    functionDepth: 5
    functionLinenumber: 353
    functionLinenumberEnd: 385
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - ASSERT_EQ
    - PK11_Decrypt
    - std::vector::data
    - ScopedPK11SymKey::get
    - std::vector::size
    - static_cast<unsigned int>
    - PK11_KeyGen
    - ScopedPK11SlotInfo::get
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11AESKeyWrapPadTest, WrapUnwrapRandom_BadPadding2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:402,1
    - Dst: PK11_KeyGen
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:404,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:404,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:405,1
    - Dst: PK11_Encrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:409,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:409,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:410,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:411,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:412,1
    - Dst: PK11_Decrypt
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:414,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:414,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:415,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:416,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:416,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:417,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:418,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:419,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:420,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:420,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 388
    functionDepth: 5
    functionLinenumber: 388
    functionLinenumberEnd: 421
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aeskeywrappad_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_Encrypt
    - ASSERT_EQ
    - PK11_Decrypt
    - std::vector::data
    - ScopedPK11SymKey::get
    - memcmp
    - std::vector::size
    - static_cast<unsigned int>
    - PK11_KeyGen
    - ScopedPK11SlotInfo::get
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11AESKeyWrapPadTest, WrapUnwrapRandom_ShortValidPadding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:12,1
    - Dst: PR_Open
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:12,1
    - Dst: c_str
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:12,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:13,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' n'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 15
    functionName: JsonReader::JsonReader
    functionSourceFile: /src/nss/gtests/pk11_gtest/json_reader.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - PR_Open
    - c_str
    - reset
    linkageType: ''
    returnType: void
    signature: void JsonReader::JsonReader(const std::string& n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonReader::SkipWhitespace
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:18,1
    - Dst: JsonReader::peek
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:19,1
    - Dst: JsonReader::next
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:23,1
    - Dst: JsonReader::peek
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:24,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 27
    functionName: JsonReader::ReadInt
    functionSourceFile: /src/nss/gtests/pk11_gtest/json_reader.cc
    functionUses: 6
    functionsReached:
    - JsonReader::SkipWhitespace
    - JsonReader::peek
    - JsonReader::next
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t JsonReader::ReadInt()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JsonReader::SkipWhitespace
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:31,1
    - Dst: JsonReader::peek
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:32,1
    - Dst: JsonReader::next
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:35,1
    - Dst: JsonReader::take
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:38,1
    - Dst: std::string::push_back
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:40,1
    - Dst: JsonReader::take
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 30
    functionDepth: 3
    functionLinenumber: 30
    functionLinenumberEnd: 44
    functionName: JsonReader::ReadString
    functionSourceFile: /src/nss/gtests/pk11_gtest/json_reader.cc
    functionUses: 0
    functionsReached:
    - JsonReader::peek
    - JsonReader::SkipWhitespace
    - std::string::push_back
    - JsonReader::take
    - JsonReader::next
    linkageType: ''
    returnType: std::string
    signature: std::string JsonReader::ReadString()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonReader::ReadString
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:47,1
    - Dst: JsonReader::SkipWhitespace
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:48,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:49,1
    - Dst: JsonReader::take
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 4
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: JsonReader::ReadLabel
    functionSourceFile: /src/nss/gtests/pk11_gtest/json_reader.cc
    functionUses: 8
    functionsReached:
    - JsonReader::ReadString
    - JsonReader::SkipWhitespace
    - JsonReader::take
    - EXPECT_EQ
    linkageType: ''
    returnType: std::string
    signature: std::string JsonReader::ReadLabel()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonReader::SkipWhitespace
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:54,1
    - Dst: JsonReader::take
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:55,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:56,1
    - Dst: JsonReader::take
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:58,1
    - Dst: std::vector::push_back
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:60,1
    - Dst: JsonReader::Hex
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:60,1
    - Dst: JsonReader::Hex
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:60,1
    - Dst: JsonReader::take
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:60,1
    - Dst: JsonReader::take
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 53
    functionDepth: 3
    functionLinenumber: 53
    functionLinenumberEnd: 64
    functionName: JsonReader::ReadHex
    functionSourceFile: /src/nss/gtests/pk11_gtest/json_reader.cc
    functionUses: 8
    functionsReached:
    - JsonReader::SkipWhitespace
    - std::vector::push_back
    - JsonReader::Hex
    - JsonReader::take
    - EXPECT_EQ
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> JsonReader::ReadHex()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: JsonReader::ReadString
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:67,1
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:83,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 66
    functionDepth: 4
    functionLinenumber: 66
    functionLinenumberEnd: 85
    functionName: JsonReader::ReadHash
    functionSourceFile: /src/nss/gtests/pk11_gtest/json_reader.cc
    functionUses: 0
    functionsReached:
    - JsonReader::ReadString
    - ADD_FAILURE
    linkageType: ''
    returnType: SECOidTag
    signature: SECOidTag JsonReader::ReadHash()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: JsonReader::ReadString
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:88,1
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:96,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 87
    functionDepth: 4
    functionLinenumber: 87
    functionLinenumberEnd: 98
    functionName: JsonReader::ReadSECStatus
    functionSourceFile: /src/nss/gtests/pk11_gtest/json_reader.cc
    functionUses: 2
    functionsReached:
    - JsonReader::ReadString
    - ADD_FAILURE
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus JsonReader::ReadSECStatus()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: JsonReader::ReadString
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:101,1
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 100
    functionDepth: 4
    functionLinenumber: 100
    functionLinenumberEnd: 109
    functionName: JsonReader::ReadBool
    functionSourceFile: /src/nss/gtests/pk11_gtest/json_reader.cc
    functionUses: 2
    functionsReached:
    - JsonReader::ReadString
    - ADD_FAILURE
    linkageType: ''
    returnType: bool
    signature: bool JsonReader::ReadBool()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: JsonReader::SkipWhitespace
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:112,1
    - Dst: JsonReader::take
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:113,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:118,1
    - Dst: JsonReader::SkipWhitespace
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:119,1
    - Dst: JsonReader::peek
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:120,1
    - Dst: JsonReader::next
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:121,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:127,1
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 2
    argNames:
    - h
    - t
    argTypes:
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 111
    functionDepth: 3
    functionLinenumber: 111
    functionLinenumberEnd: 133
    functionName: JsonReader::NextItem
    functionSourceFile: /src/nss/gtests/pk11_gtest/json_reader.cc
    functionUses: 9
    functionsReached:
    - JsonReader::peek
    - ADD_FAILURE
    - JsonReader::SkipWhitespace
    - JsonReader::take
    - EXPECT_EQ
    - JsonReader::next
    linkageType: ''
    returnType: bool
    signature: bool JsonReader::NextItem(uint8_t h, uint8_t t)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: JsonReader::SkipWhitespace
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:136,1
    - Dst: JsonReader::take
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:138,1
    - Dst: JsonReader::take
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:141,1
    - Dst: JsonReader::peek
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:145,1
    - Dst: JsonReader::next
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:147,1
    - Dst: JsonReader::peek
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:148,1
    - Dst: JsonReader::SkipWhitespace
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:153,1
    - Dst: JsonReader::peek
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:154,1
    - Dst: JsonReader::SkipValue
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:155,1
    - Dst: JsonReader::NextItemArray
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:157,1
    - Dst: JsonReader::SkipWhitespace
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:161,1
    - Dst: JsonReader::peek
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:162,1
    - Dst: JsonReader::ReadLabel
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:166,1
    - Dst: JsonReader::SkipValue
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:170,1
    - Dst: JsonReader::NextItem
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:171,1
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:174,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 135
    functionDepth: 5
    functionLinenumber: 135
    functionLinenumberEnd: 176
    functionName: JsonReader::SkipValue
    functionSourceFile: /src/nss/gtests/pk11_gtest/json_reader.cc
    functionUses: 7
    functionsReached:
    - JsonReader::peek
    - ADD_FAILURE
    - JsonReader::ReadLabel
    - JsonReader::SkipWhitespace
    - JsonReader::NextItemArray
    - JsonReader::NextItem
    - JsonReader::SkipValue
    - JsonReader::take
    - JsonReader::next
    linkageType: ''
    returnType: void
    signature: void JsonReader::SkipValue()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PR_Read
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:186,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:186,1
    - Dst: static_cast<size_t>
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:188,1
    - Dst: reset
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:191,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 194
    functionName: JsonReader::TopUp
    functionSourceFile: /src/nss/gtests/pk11_gtest/json_reader.cc
    functionUses: 1
    functionsReached:
    - static_cast<size_t>
    - PR_Read
    - get
    - reset
    linkageType: ''
    returnType: void
    signature: void JsonReader::TopUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JsonReader::peek
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:197,1
    - Dst: JsonReader::next
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:199,1
    - Dst: JsonReader::peek
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:200,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 202
    functionName: JsonReader::SkipWhitespace
    functionSourceFile: /src/nss/gtests/pk11_gtest/json_reader.cc
    functionUses: 6
    functionsReached:
    - JsonReader::peek
    - JsonReader::next
    linkageType: ''
    returnType: void
    signature: void JsonReader::SkipWhitespace()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:209,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 211
    functionName: JsonReader::Hex
    functionSourceFile: /src/nss/gtests/pk11_gtest/json_reader.cc
    functionUses: 1
    functionsReached:
    - EXPECT_TRUE
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t JsonReader::Hex(uint8_t c)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: JsonReader::NextItem
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:223,1
    - Dst: JsonReader::ReadLabel
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:224,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:229,1
    - Dst: JsonReader::ReadString
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:229,1
    - Dst: JsonReader::SkipValue
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:231,1
    - Dst: JsonReader::NextItemArray
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:233,1
    - Dst: JsonReader::ReadString
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:234,1
    - Dst: JsonReader::NextItem
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:237,1
    - Dst: JsonReader::ReadLabel
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:238,1
    - Dst: JsonReader::ReadString
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:242,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:245,1
    - Dst: JsonReader::ReadString
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:245,1
    - Dst: JsonReader::NextItemArray
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:247,1
    - Dst: group_handler
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:248,1
    - Dst: FAIL
      Src: /src/nss/gtests/pk11_gtest/json_reader.cc:251,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 36
    argCount: 4
    argNames:
    - ' name'
    - ' algorithm'
    - ' schema'
    - group_handler
    argTypes:
    - std::string
    - std::string
    - std::string
    - std::function<void(JsonReader& r)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 215
    functionDepth: 6
    functionLinenumber: 215
    functionLinenumberEnd: 254
    functionName: WycheproofHeader
    functionSourceFile: /src/nss/gtests/pk11_gtest/json_reader.cc
    functionUses: 14
    functionsReached:
    - ASSERT_EQ
    - FAIL
    - JsonReader::ReadLabel
    - JsonReader::NextItemArray
    - JsonReader::NextItem
    - JsonReader::SkipValue
    - JsonReader::ReadString
    - group_handler
    linkageType: ''
    returnType: void
    signature: "void WycheproofHeader(const std::string& name, const std::string&
      algorithm,\n                      const std::string& schema,\n                      std::function<void(JsonReader&
      r)> group_handler)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:24,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:28,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:28,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:29,1
    - Dst: len
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:29,1
    - Dst: PK11_ImportDERPrivateKeyInfoAndReturnKey
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:32,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:33,1
    - Dst: ScopedSECKEYPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ' pkcs8'
    argTypes:
    - DataBuffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 20
    functionDepth: 2
    functionLinenumber: 20
    functionLinenumberEnd: 41
    functionName: nss_test::Pk11SignatureTest::ImportPrivateKey
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc
    functionUses: 4
    functionsReached:
    - ADD_FAILURE
    - toUcharPtr
    - static_cast<unsigned int>
    - ScopedSECKEYPrivateKey
    - len
    - ScopedPK11SlotInfo::get
    - PK11_ImportDERPrivateKeyInfoAndReturnKey
    - data
    linkageType: ''
    returnType: ScopedSECKEYPrivateKey
    signature: "ScopedSECKEYPrivateKey Pk11SignatureTest::ImportPrivateKey(\n    const
      DataBuffer& pkcs8)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:45,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:45,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:46,1
    - Dst: len
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:46,1
    - Dst: SECKEY_DecodeDERSubjectPublicKeyInfo
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:49,1
    - Dst: ScopedSECKEYPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:54,1
    - Dst: SECKEY_ExtractPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:54,1
    - Dst: ScopedCERTSubjectPublicKeyInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' spki'
    argTypes:
    - DataBuffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 43
    functionDepth: 4
    functionLinenumber: 43
    functionLinenumberEnd: 55
    functionName: nss_test::Pk11SignatureTest::ImportPublicKey
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc
    functionUses: 2
    functionsReached:
    - toUcharPtr
    - static_cast<unsigned int>
    - SECKEY_DecodeDERSubjectPublicKeyInfo
    - SECKEY_ExtractPublicKey
    - ScopedCERTSubjectPublicKeyInfo::get
    - len
    - data
    - ScopedSECKEYPublicKey
    linkageType: ''
    returnType: ScopedSECKEYPublicKey
    signature: "ScopedSECKEYPublicKey Pk11SignatureTest::ImportPublicKey(\n    const
      DataBuffer& spki)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:59,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:59,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:60,1
    - Dst: len
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:60,1
    - Dst: PK11_SignatureLen
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:61,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:61,1
    - Dst: EXPECT_LT
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:62,1
    - Dst: DataBuffer*::Allocate
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:63,1
    - Dst: static_cast<size_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:63,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:64,1
    - Dst: DataBuffer*::data
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:64,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:65,1
    - Dst: DataBuffer*::len
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:65,1
    - Dst: PK11_SignWithMechanism
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:66,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:66,1
    - Dst: nss_test::Pk11SignatureTest::parameters
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:66,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ' privKey'
    - ' hash'
    - sig
    argTypes:
    - ScopedSECKEYPrivateKey
    - DataBuffer
    - DataBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 57
    functionDepth: 7
    functionLinenumber: 57
    functionLinenumberEnd: 70
    functionName: nss_test::Pk11SignatureTest::SignRaw
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc
    functionUses: 2
    functionsReached:
    - toUcharPtr
    - nss_test::Pk11SignatureTest::parameters
    - EXPECT_LT
    - static_cast<unsigned int>
    - PK11_SignatureLen
    - DataBuffer*::len
    - DataBuffer*::data
    - DataBuffer*::Allocate
    - static_cast<size_t>
    - len
    - PK11_SignWithMechanism
    - get
    - EXPECT_EQ
    - data
    linkageType: ''
    returnType: bool
    signature: "bool Pk11SignatureTest::SignRaw(ScopedSECKEYPrivateKey& privKey,\n
      \                               const DataBuffer& hash, DataBuffer* sig)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PK11_SignatureLen
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:74,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:74,1
    - Dst: EXPECT_LT
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:76,1
    - Dst: DataBuffer*::Allocate
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:77,1
    - Dst: static_cast<size_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:77,1
    - Dst: PK11_CreateContextByPrivKey
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:80,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:81,1
    - Dst: nss_test::Pk11SignatureTest::parameters
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:81,1
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:83,1
    - Dst: PORT_ErrorToString
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:86,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:86,1
    - Dst: PK11_DigestOp
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:89,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:89,1
    - Dst: len
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:89,1
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:91,1
    - Dst: PORT_ErrorToString
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:92,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:92,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:93,1
    - Dst: PK11_DigestFinal
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:97,1
    - Dst: DataBuffer*::data
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:97,1
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:99,1
    - Dst: PORT_ErrorToString
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:100,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:100,1
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:104,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:108,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - ' privKey'
    - ' data'
    - sig
    argTypes:
    - ScopedSECKEYPrivateKey
    - DataBuffer
    - DataBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 72
    functionDepth: 7
    functionLinenumber: 72
    functionLinenumberEnd: 110
    functionName: nss_test::Pk11SignatureTest::DigestAndSign
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc
    functionUses: 0
    functionsReached:
    - PK11_CreateContextByPrivKey
    - PORT_ErrorToString
    - PK11_DestroyContext
    - ADD_FAILURE
    - PK11_DigestOp
    - PORT_GetError
    - nss_test::Pk11SignatureTest::parameters
    - EXPECT_LT
    - PK11_SignatureLen
    - DataBuffer*::data
    - DataBuffer*::Allocate
    - static_cast<size_t>
    - len
    - get
    - PK11_DigestFinal
    - data
    linkageType: ''
    returnType: bool
    signature: "bool Pk11SignatureTest::DigestAndSign(ScopedSECKEYPrivateKey& privKey,\n
      \                                     const DataBuffer& data, DataBuffer* sig)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::Pk11SignatureTest::ComputeHash
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:121,1
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:122,1
    - Dst: nss_test::Pk11SignatureTest::SignRaw
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:125,1
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:126,1
    - Dst: nss_test::Pk11SignatureTest::DigestAndSign
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:129,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - ' pkcs8'
    - ' data'
    - sig
    - sig2
    argTypes:
    - DataBuffer
    - DataBuffer
    - DataBuffer*
    - DataBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 112
    functionDepth: 11
    functionLinenumber: 112
    functionLinenumberEnd: 134
    functionName: nss_test::Pk11SignatureTest::ImportPrivateKeyAndSignHashedData
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc
    functionUses: 2
    functionsReached:
    - nss_test::Pk11SignatureTest::DigestAndSign
    - nss_test::Pk11SignatureTest::SignRaw
    - nss_test::Pk11SignatureTest::ComputeHash
    - ADD_FAILURE
    linkageType: ''
    returnType: bool
    signature: "bool Pk11SignatureTest::ImportPrivateKeyAndSignHashedData(\n    const
      DataBuffer& pkcs8, const DataBuffer& data, DataBuffer* sig,\n    DataBuffer*
      sig2)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:141,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:141,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:142,1
    - Dst: len
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:142,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:145,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:145,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:146,1
    - Dst: len
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:146,1
    - Dst: PK11_VerifyWithMechanism
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:147,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:147,1
    - Dst: nss_test::Pk11SignatureTest::parameters
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:147,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:149,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:159,1
    - Dst: nss_test::Pk11SignatureTest::ComputeHash
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:159,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:162,1
    - Dst: DataBuffer::data
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:162,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:163,1
    - Dst: DataBuffer::len
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:163,1
    - Dst: PK11_VerifyWithMechanism
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:164,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:164,1
    - Dst: nss_test::Pk11SignatureTest::parameters
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:164,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:166,1
    - Dst: PK11_CreateContextByPubKey
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:170,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:171,1
    - Dst: nss_test::Pk11SignatureTest::parameters
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:171,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:174,1
    - Dst: PORT_ErrorToString
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:175,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:175,1
    - Dst: PK11_DigestOp
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:177,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:177,1
    - Dst: len
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:177,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:179,1
    - Dst: PK11_DigestFinal
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:181,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:182,1
    - Dst: PORT_ErrorToString
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:183,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:183,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - ' pubKey'
    - ' data'
    - ' sig'
    - valid
    argTypes:
    - ScopedSECKEYPublicKey
    - DataBuffer
    - DataBuffer
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 136
    functionDepth: 11
    functionLinenumber: 136
    functionLinenumberEnd: 185
    functionName: nss_test::Pk11SignatureTest::Verify
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc
    functionUses: 16
    functionsReached:
    - PK11_CreateContextByPubKey
    - PK11_VerifyWithMechanism
    - ASSERT_TRUE
    - DataBuffer::data
    - PORT_ErrorToString
    - PK11_DestroyContext
    - nss_test::Pk11SignatureTest::parameters
    - DataBuffer::len
    - ASSERT_NE
    - PK11_DigestFinal
    - data
    - nss_test::Pk11SignatureTest::ComputeHash
    - static_cast<unsigned int>
    - len
    - get
    - EXPECT_EQ
    - PK11_DigestOp
    - PORT_GetError
    - toUcharPtr
    linkageType: ''
    returnType: void
    signature: "void Pk11SignatureTest::Verify(ScopedSECKEYPublicKey& pubKey,\n                               const
      DataBuffer& data, const DataBuffer& sig,\n                               bool
      valid)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:24,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:28,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:28,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:29,1
    - Dst: len
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:29,1
    - Dst: PK11_ImportDERPrivateKeyInfoAndReturnKey
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:32,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:33,1
    - Dst: ScopedSECKEYPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ' pkcs8'
    argTypes:
    - DataBuffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 20
    functionDepth: 2
    functionLinenumber: 20
    functionLinenumberEnd: 41
    functionName: nss_test::Pk11SignatureTest::ImportPrivateKey
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc
    functionUses: 4
    functionsReached:
    - ADD_FAILURE
    - toUcharPtr
    - static_cast<unsigned int>
    - ScopedSECKEYPrivateKey
    - len
    - ScopedPK11SlotInfo::get
    - PK11_ImportDERPrivateKeyInfoAndReturnKey
    - data
    linkageType: ''
    returnType: ScopedSECKEYPrivateKey
    signature: "ScopedSECKEYPrivateKey Pk11SignatureTest::ImportPrivateKey(\n    const
      DataBuffer& pkcs8)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:45,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:45,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:46,1
    - Dst: len
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:46,1
    - Dst: SECKEY_DecodeDERSubjectPublicKeyInfo
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:49,1
    - Dst: ScopedSECKEYPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:54,1
    - Dst: SECKEY_ExtractPublicKey
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:54,1
    - Dst: ScopedCERTSubjectPublicKeyInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' spki'
    argTypes:
    - DataBuffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 43
    functionDepth: 4
    functionLinenumber: 43
    functionLinenumberEnd: 55
    functionName: nss_test::Pk11SignatureTest::ImportPublicKey
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc
    functionUses: 2
    functionsReached:
    - toUcharPtr
    - static_cast<unsigned int>
    - SECKEY_DecodeDERSubjectPublicKeyInfo
    - SECKEY_ExtractPublicKey
    - ScopedCERTSubjectPublicKeyInfo::get
    - len
    - data
    - ScopedSECKEYPublicKey
    linkageType: ''
    returnType: ScopedSECKEYPublicKey
    signature: "ScopedSECKEYPublicKey Pk11SignatureTest::ImportPublicKey(\n    const
      DataBuffer& spki)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:59,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:59,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:60,1
    - Dst: len
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:60,1
    - Dst: PK11_SignatureLen
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:61,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:61,1
    - Dst: EXPECT_LT
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:62,1
    - Dst: DataBuffer*::Allocate
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:63,1
    - Dst: static_cast<size_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:63,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:64,1
    - Dst: DataBuffer*::data
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:64,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:65,1
    - Dst: DataBuffer*::len
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:65,1
    - Dst: PK11_SignWithMechanism
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:66,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:66,1
    - Dst: nss_test::Pk11SignatureTest::parameters
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:66,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ' privKey'
    - ' hash'
    - sig
    argTypes:
    - ScopedSECKEYPrivateKey
    - DataBuffer
    - DataBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 57
    functionDepth: 7
    functionLinenumber: 57
    functionLinenumberEnd: 70
    functionName: nss_test::Pk11SignatureTest::SignRaw
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc
    functionUses: 3
    functionsReached:
    - toUcharPtr
    - nss_test::Pk11SignatureTest::parameters
    - EXPECT_LT
    - static_cast<unsigned int>
    - PK11_SignatureLen
    - DataBuffer*::len
    - DataBuffer*::data
    - DataBuffer*::Allocate
    - static_cast<size_t>
    - len
    - PK11_SignWithMechanism
    - get
    - EXPECT_EQ
    - data
    linkageType: ''
    returnType: bool
    signature: "bool Pk11SignatureTest::SignRaw(ScopedSECKEYPrivateKey& privKey,\n
      \                               const DataBuffer& hash, DataBuffer* sig)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: PK11_SignatureLen
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:74,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:74,1
    - Dst: EXPECT_LT
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:76,1
    - Dst: DataBuffer*::Allocate
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:77,1
    - Dst: static_cast<size_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:77,1
    - Dst: PK11_CreateContextByPrivKey
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:80,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:81,1
    - Dst: nss_test::Pk11SignatureTest::parameters
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:81,1
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:83,1
    - Dst: PORT_ErrorToString
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:86,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:86,1
    - Dst: PK11_DigestOp
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:89,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:89,1
    - Dst: len
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:89,1
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:91,1
    - Dst: PORT_ErrorToString
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:92,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:92,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:93,1
    - Dst: PK11_DigestFinal
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:97,1
    - Dst: DataBuffer*::data
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:97,1
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:99,1
    - Dst: PORT_ErrorToString
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:100,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:100,1
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:104,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:108,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - ' privKey'
    - ' data'
    - sig
    argTypes:
    - ScopedSECKEYPrivateKey
    - DataBuffer
    - DataBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 72
    functionDepth: 7
    functionLinenumber: 72
    functionLinenumberEnd: 110
    functionName: nss_test::Pk11SignatureTest::DigestAndSign
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc
    functionUses: 1
    functionsReached:
    - PK11_CreateContextByPrivKey
    - PORT_ErrorToString
    - PK11_DestroyContext
    - ADD_FAILURE
    - PK11_DigestOp
    - PORT_GetError
    - nss_test::Pk11SignatureTest::parameters
    - EXPECT_LT
    - PK11_SignatureLen
    - DataBuffer*::data
    - DataBuffer*::Allocate
    - static_cast<size_t>
    - len
    - get
    - PK11_DigestFinal
    - data
    linkageType: ''
    returnType: bool
    signature: "bool Pk11SignatureTest::DigestAndSign(ScopedSECKEYPrivateKey& privKey,\n
      \                                     const DataBuffer& data, DataBuffer* sig)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::Pk11SignatureTest::ComputeHash
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:121,1
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:122,1
    - Dst: nss_test::Pk11SignatureTest::SignRaw
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:125,1
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:126,1
    - Dst: nss_test::Pk11SignatureTest::DigestAndSign
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:129,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - ' pkcs8'
    - ' data'
    - sig
    - sig2
    argTypes:
    - DataBuffer
    - DataBuffer
    - DataBuffer*
    - DataBuffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 112
    functionDepth: 11
    functionLinenumber: 112
    functionLinenumberEnd: 134
    functionName: nss_test::Pk11SignatureTest::ImportPrivateKeyAndSignHashedData
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc
    functionUses: 2
    functionsReached:
    - nss_test::Pk11SignatureTest::DigestAndSign
    - nss_test::Pk11SignatureTest::SignRaw
    - nss_test::Pk11SignatureTest::ComputeHash
    - ADD_FAILURE
    linkageType: ''
    returnType: bool
    signature: "bool Pk11SignatureTest::ImportPrivateKeyAndSignHashedData(\n    const
      DataBuffer& pkcs8, const DataBuffer& data, DataBuffer* sig,\n    DataBuffer*
      sig2)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:141,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:141,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:142,1
    - Dst: len
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:142,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:145,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:145,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:146,1
    - Dst: len
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:146,1
    - Dst: PK11_VerifyWithMechanism
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:147,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:147,1
    - Dst: nss_test::Pk11SignatureTest::parameters
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:147,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:149,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:159,1
    - Dst: nss_test::Pk11SignatureTest::ComputeHash
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:159,1
    - Dst: toUcharPtr
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:162,1
    - Dst: DataBuffer::data
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:162,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:163,1
    - Dst: DataBuffer::len
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:163,1
    - Dst: PK11_VerifyWithMechanism
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:164,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:164,1
    - Dst: nss_test::Pk11SignatureTest::parameters
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:164,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:166,1
    - Dst: PK11_CreateContextByPubKey
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:170,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:171,1
    - Dst: nss_test::Pk11SignatureTest::parameters
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:171,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:174,1
    - Dst: PORT_ErrorToString
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:175,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:175,1
    - Dst: PK11_DigestOp
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:177,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:177,1
    - Dst: len
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:177,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:179,1
    - Dst: PK11_DigestFinal
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:181,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:182,1
    - Dst: PORT_ErrorToString
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:183,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:183,1
    - Dst: PK11_DestroyContext
      Src: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc:184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - ' pubKey'
    - ' data'
    - ' sig'
    - valid
    argTypes:
    - ScopedSECKEYPublicKey
    - DataBuffer
    - DataBuffer
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 136
    functionDepth: 11
    functionLinenumber: 136
    functionLinenumberEnd: 185
    functionName: nss_test::Pk11SignatureTest::Verify
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_signature_test.cc
    functionUses: 16
    functionsReached:
    - PK11_CreateContextByPubKey
    - PK11_VerifyWithMechanism
    - ASSERT_TRUE
    - DataBuffer::data
    - PORT_ErrorToString
    - PK11_DestroyContext
    - nss_test::Pk11SignatureTest::parameters
    - DataBuffer::len
    - ASSERT_NE
    - PK11_DigestFinal
    - data
    - nss_test::Pk11SignatureTest::ComputeHash
    - static_cast<unsigned int>
    - len
    - get
    - EXPECT_EQ
    - PK11_DigestOp
    - PORT_GetError
    - toUcharPtr
    linkageType: ''
    returnType: void
    signature: "void Pk11SignatureTest::Verify(ScopedSECKEYPublicKey& pubKey,\n                               const
      DataBuffer& data, const DataBuffer& sig,\n                               bool
      valid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:29,1
    - Dst: PK11_CipherOp
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:31,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:31,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:31,1
    - Dst: static_cast<size_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:32,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' ctx'
    - len
    argTypes:
    - ScopedPK11Context
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 25
    functionDepth: 10
    functionLinenumber: 25
    functionLinenumberEnd: 36
    functionName: nss_test::GetBytes
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc
    functionUses: 0
    functionsReached:
    - PORT_Assert
    - std::vector::data
    - PK11_CipherOp
    - static_cast<size_t>
    - get
    - EXPECT_EQ
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus GetBytes(const ScopedPK11Context& ctx, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSS_InitContext
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:40,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:43,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:48,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:61,1
    - Dst: PK11_ImportSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:64,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:64,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:66,1
    - Dst: PK11_CreateContextBySymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:68,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:68,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:69,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:71,1
    - Dst: nss_test::GetBytes
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:71,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:72,1
    - Dst: nss_test::GetBytes
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 38
    functionDepth: 14
    functionLinenumber: 38
    functionLinenumberEnd: 73
    functionName: nss_test::TEST
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - NSS_InitContext
    - ScopedPK11SymKey::get
    - reinterpret_cast<unsigned char*>
    - ASSERT_TRUE
    - PK11_ImportSymKey
    - PK11_CreateContextBySymKey
    - nss_test::GetBytes
    - ScopedPK11SlotInfo::get
    linkageType: ''
    returnType: void
    signature: void TEST(Pkcs11CipherOp, SingleCtxMultipleUnalignedCipherOps)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSS_InitContext
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:80,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:83,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:86,1
    - Dst: PK11_ImportSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:95,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:95,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:97,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:99,1
    - Dst: PK11_CreateContextBySymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:100,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:101,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:101,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:102,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:104,1
    - Dst: nss_test::GetBytes
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - cipher
    - param
    argTypes:
    - CK_MECHANISM_TYPE
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 78
    functionDepth: 14
    functionLinenumber: 78
    functionLinenumberEnd: 105
    functionName: nss_test::ChachaMulti
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - NSS_InitContext
    - ScopedPK11SymKey::get
    - ScopedSECItem::get
    - ASSERT_TRUE
    - PK11_ImportSymKey
    - PK11_CreateContextBySymKey
    - nss_test::GetBytes
    - ScopedPK11SlotInfo::get
    linkageType: ''
    returnType: void
    signature: void ChachaMulti(CK_MECHANISM_TYPE cipher, SECItem* param)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::ChachaMulti
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 107
    functionDepth: 15
    functionLinenumber: 107
    functionLinenumberEnd: 115
    functionName: nss_test::TEST
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc
    functionUses: 0
    functionsReached:
    - nss_test::ChachaMulti
    linkageType: ''
    returnType: void
    signature: void TEST(Pkcs11CipherOp, ChachaMultiLegacy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:123,1
    - Dst: nss_test::ChachaMulti
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 117
    functionDepth: 15
    functionLinenumber: 117
    functionLinenumberEnd: 127
    functionName: nss_test::TEST
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uint8_t*>
    - nss_test::ChachaMulti
    linkageType: ''
    returnType: void
    signature: void TEST(Pkcs11CipherOp, ChachaMulti)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PORT_Assert
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:29,1
    - Dst: PK11_CipherOp
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:31,1
    - Dst: get
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:31,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:31,1
    - Dst: static_cast<size_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:32,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' ctx'
    - len
    argTypes:
    - ScopedPK11Context
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 25
    functionDepth: 10
    functionLinenumber: 25
    functionLinenumberEnd: 36
    functionName: nss_test::GetBytes
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc
    functionUses: 2
    functionsReached:
    - PORT_Assert
    - std::vector::data
    - PK11_CipherOp
    - static_cast<size_t>
    - get
    - EXPECT_EQ
    linkageType: ''
    returnType: SECStatus
    signature: SECStatus GetBytes(const ScopedPK11Context& ctx, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSS_InitContext
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:40,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:43,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:48,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:61,1
    - Dst: PK11_ImportSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:64,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:64,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:66,1
    - Dst: PK11_CreateContextBySymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:68,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:68,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:69,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:71,1
    - Dst: nss_test::GetBytes
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:71,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:72,1
    - Dst: nss_test::GetBytes
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 38
    functionDepth: 14
    functionLinenumber: 38
    functionLinenumberEnd: 73
    functionName: nss_test::TEST
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - NSS_InitContext
    - ScopedPK11SymKey::get
    - reinterpret_cast<unsigned char*>
    - ASSERT_TRUE
    - PK11_ImportSymKey
    - PK11_CreateContextBySymKey
    - nss_test::GetBytes
    - ScopedPK11SlotInfo::get
    linkageType: ''
    returnType: void
    signature: void TEST(Pkcs11CipherOp, SingleCtxMultipleUnalignedCipherOps)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NSS_InitContext
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:80,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:83,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:86,1
    - Dst: PK11_ImportSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:95,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:95,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:97,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:99,1
    - Dst: PK11_CreateContextBySymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:100,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:101,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:101,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:102,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:104,1
    - Dst: nss_test::GetBytes
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - cipher
    - param
    argTypes:
    - CK_MECHANISM_TYPE
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 78
    functionDepth: 14
    functionLinenumber: 78
    functionLinenumberEnd: 105
    functionName: nss_test::ChachaMulti
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc
    functionUses: 2
    functionsReached:
    - ASSERT_EQ
    - NSS_InitContext
    - ScopedPK11SymKey::get
    - ScopedSECItem::get
    - ASSERT_TRUE
    - PK11_ImportSymKey
    - PK11_CreateContextBySymKey
    - nss_test::GetBytes
    - ScopedPK11SlotInfo::get
    linkageType: ''
    returnType: void
    signature: void ChachaMulti(CK_MECHANISM_TYPE cipher, SECItem* param)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::ChachaMulti
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 107
    functionDepth: 15
    functionLinenumber: 107
    functionLinenumberEnd: 115
    functionName: nss_test::TEST
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc
    functionUses: 0
    functionsReached:
    - nss_test::ChachaMulti
    linkageType: ''
    returnType: void
    signature: void TEST(Pkcs11CipherOp, ChachaMultiLegacy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:123,1
    - Dst: nss_test::ChachaMulti
      Src: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 117
    functionDepth: 15
    functionLinenumber: 117
    functionLinenumberEnd: 127
    functionName: nss_test::TEST
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_cipherop_unittest.cc
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uint8_t*>
    - nss_test::ChachaMulti
    linkageType: ''
    returnType: void
    signature: void TEST(Pkcs11CipherOp, ChachaMulti)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: testing::UnitTest::GetInstance
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:94,1
    - Dst: std::to_string
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:95,1
    - Dst: rand
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:95,1
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:96,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:96,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:97,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:97,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:100,1
    - Dst: const_cast<char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:100,1
    - Dst: std::string::data
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:100,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:101,1
    - Dst: std::string::length
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:101,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:104,1
    - Dst: PK11_NeedUserInit
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:109,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:109,1
    - Dst: PK11_InitPin
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:110,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:110,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:111,1
    - Dst: PK11_Authenticate
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:114,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:114,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:115,1
    - Dst: PK11_ImportDERPrivateKeyInfoAndReturnKey
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:117,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:118,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:119,1
    - Dst: PK11_ListPrivKeysInSlot
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:123,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:124,1
    - Dst: const_cast<char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:124,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:124,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:125,1
    - Dst: PK11_DeleteTokenPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:129,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:130,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:134,1
    - Dst: PORT_SetError
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:135,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - ' data'
    - expect_success
    argTypes:
    - std::vector<uint8_t>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 90
    functionDepth: 5
    functionLinenumber: 90
    functionLinenumberEnd: 140
    functionName: nss_test::DERPrivateKeyImportTest::ParsePrivateKey
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_InitPin
    - const_cast<unsigned char*>
    - PK11_DeleteTokenPrivateKey
    - EXPECT_TRUE
    - size
    - reinterpret_cast<unsigned char*>
    - PORT_SetError
    - std::string::c_str
    - const_cast<char*>
    - PK11_ListPrivKeysInSlot
    - data
    - EXPECT_FALSE
    - PK11_NeedUserInit
    - static_cast<unsigned int>
    - rand
    - ScopedPK11SlotInfo::get
    - testing::UnitTest::GetInstance
    - EXPECT_EQ
    - PK11_ImportDERPrivateKeyInfoAndReturnKey
    - PK11_Authenticate
    - PORT_GetError
    - std::string::data
    - std::to_string
    - std::string::length
    linkageType: ''
    returnType: bool
    signature: bool ParsePrivateKey(const std::vector<uint8_t>& data, bool expect_success)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:144,1
    - Dst: ParsePrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:144,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:145,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:145,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_FALSE
    - PORT_GetError
    - ParsePrivateKey
    linkageType: ''
    returnType: void
    signature: void TEST_F(DERPrivateKeyImportTest, ImportPrivateRSAKey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:149,1
    - Dst: ParsePrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:149,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:150,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:150,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 151
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_FALSE
    - PORT_GetError
    - ParsePrivateKey
    linkageType: ''
    returnType: void
    signature: void TEST_F(DERPrivateKeyImportTest, ImportEcdsaKey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:154,1
    - Dst: ParsePrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:154,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:155,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:155,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - EXPECT_EQ
    - PORT_GetError
    - ParsePrivateKey
    linkageType: ''
    returnType: void
    signature: void TEST_F(DERPrivateKeyImportTest, ImportInvalidPrivateKey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:159,1
    - Dst: ParsePrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:159,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:160,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:160,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 161
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - EXPECT_EQ
    - PORT_GetError
    - ParsePrivateKey
    linkageType: ''
    returnType: void
    signature: void TEST_F(DERPrivateKeyImportTest, ImportZeroLengthPrivateKey)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: testing::UnitTest::GetInstance
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:94,1
    - Dst: std::to_string
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:95,1
    - Dst: rand
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:95,1
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:96,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:96,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:97,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:97,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:100,1
    - Dst: const_cast<char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:100,1
    - Dst: std::string::data
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:100,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:101,1
    - Dst: std::string::length
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:101,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:104,1
    - Dst: PK11_NeedUserInit
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:109,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:109,1
    - Dst: PK11_InitPin
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:110,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:110,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:111,1
    - Dst: PK11_Authenticate
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:114,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:114,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:115,1
    - Dst: PK11_ImportDERPrivateKeyInfoAndReturnKey
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:117,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:118,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:119,1
    - Dst: PK11_ListPrivKeysInSlot
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:123,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:124,1
    - Dst: const_cast<char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:124,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:124,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:125,1
    - Dst: PK11_DeleteTokenPrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:129,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:130,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:134,1
    - Dst: PORT_SetError
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:135,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - ' data'
    - expect_success
    argTypes:
    - std::vector<uint8_t>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 90
    functionDepth: 5
    functionLinenumber: 90
    functionLinenumberEnd: 140
    functionName: nss_test::DERPrivateKeyImportTest::ParsePrivateKey
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_InitPin
    - const_cast<unsigned char*>
    - PK11_DeleteTokenPrivateKey
    - EXPECT_TRUE
    - size
    - reinterpret_cast<unsigned char*>
    - PORT_SetError
    - std::string::c_str
    - const_cast<char*>
    - PK11_ListPrivKeysInSlot
    - data
    - EXPECT_FALSE
    - PK11_NeedUserInit
    - static_cast<unsigned int>
    - rand
    - ScopedPK11SlotInfo::get
    - testing::UnitTest::GetInstance
    - EXPECT_EQ
    - PK11_ImportDERPrivateKeyInfoAndReturnKey
    - PK11_Authenticate
    - PORT_GetError
    - std::string::data
    - std::to_string
    - std::string::length
    linkageType: ''
    returnType: bool
    signature: bool ParsePrivateKey(const std::vector<uint8_t>& data, bool expect_success)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:144,1
    - Dst: ParsePrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:144,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:145,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:145,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_FALSE
    - PORT_GetError
    - ParsePrivateKey
    linkageType: ''
    returnType: void
    signature: void TEST_F(DERPrivateKeyImportTest, ImportPrivateRSAKey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:149,1
    - Dst: ParsePrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:149,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:150,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:150,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 151
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_FALSE
    - PORT_GetError
    - ParsePrivateKey
    linkageType: ''
    returnType: void
    signature: void TEST_F(DERPrivateKeyImportTest, ImportEcdsaKey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:154,1
    - Dst: ParsePrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:154,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:155,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:155,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - EXPECT_EQ
    - PORT_GetError
    - ParsePrivateKey
    linkageType: ''
    returnType: void
    signature: void TEST_F(DERPrivateKeyImportTest, ImportInvalidPrivateKey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:159,1
    - Dst: ParsePrivateKey
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:159,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:160,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:160,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 161
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_der_private_key_import_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - EXPECT_EQ
    - PORT_GetError
    - ParsePrivateKey
    linkageType: ''
    returnType: void
    signature: void TEST_F(DERPrivateKeyImportTest, ImportZeroLengthPrivateKey)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 19
    functionName: ~ParamHolder()
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_keygen.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~ParamHolder()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    functionName: nss_test::ParamHolder::ParamHolder
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_keygen.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ParamHolder()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ScopedSECKEYPrivateKey*::reset
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:29,1
    - Dst: ScopedSECKEYPublicKey*::reset
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:30,1
    - Dst: nss_test::Pkcs11KeyPairGenerator::MakeParams
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:32,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:33,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:36,1
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:40,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:40,1
    - Dst: auto::get
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:40,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:42,1
    - Dst: PORT_ErrorToName
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:43,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:43,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:44,1
    - Dst: ScopedSECKEYPrivateKey*::swap
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:46,1
    - Dst: ScopedSECKEYPublicKey*::reset
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - priv_key
    - pub_key
    - sensitive
    argTypes:
    - ScopedSECKEYPrivateKey*
    - ScopedSECKEYPublicKey*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 25
    functionDepth: 7
    functionLinenumber: 25
    functionLinenumberEnd: 48
    functionName: nss_test::Pkcs11KeyPairGenerator::GenerateKey
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_keygen.cc
    functionUses: 0
    functionsReached:
    - auto::get
    - nss_test::Pkcs11KeyPairGenerator::MakeParams
    - PK11_GenerateKeyPair
    - PORT_GetError
    - ASSERT_TRUE
    - PORT_ErrorToName
    - ScopedSECKEYPublicKey*::reset
    - ScopedSECKEYPrivateKey*::reset
    - ScopedSECKEYPrivateKey*::swap
    - ScopedPK11SlotInfo::get
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: "void Pkcs11KeyPairGenerator::GenerateKey(ScopedSECKEYPrivateKey* priv_key,\n
      \                                        ScopedSECKEYPublicKey* pub_key,\n                                         bool
      sensitive) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: nss_test::RsaParamHolder::RsaParamHolder
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_keygen.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RsaParamHolder()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: ~RsaParamHolder()
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_keygen.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~RsaParamHolder()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: nss_test::RsaParamHolder::get
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_keygen.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void * get() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - params
    argTypes:
    - PQGParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: nss_test::PqgParamHolder::PqgParamHolder
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_keygen.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PqgParamHolder(PQGParams* params)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: ~PqgParamHolder()
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_keygen.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~PqgParamHolder()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::PqgParamHolder::get
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: nss_test::PqgParamHolder::get
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_keygen.cc
    functionUses: 1
    functionsReached:
    - nss_test::PqgParamHolder::get
    linkageType: ''
    returnType: void
    signature: void * get() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - params
    argTypes:
    - PQGParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: nss_test::DhParamHolder::DhParamHolder
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_keygen.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DhParamHolder(PQGParams* params)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: ~DhParamHolder()
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_keygen.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~DhParamHolder()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: nss_test::DhParamHolder::get
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_keygen.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void * get() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:90,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:91,1
    - Dst: reset
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:94,1
    - Dst: uint8_t::uint8_t
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:94,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:96,1
    - Dst: memcpy
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:97,1
    - Dst: nss_test::EcParamHolder::get
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:99,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - curve_oid
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 100
    functionName: nss_test::EcParamHolder::EcParamHolder
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_keygen.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NE
    - memcpy
    - SECOID_FindOIDByTag
    - nss_test::EcParamHolder::get
    - static_cast<unsigned int>
    - reset
    - uint8_t::uint8_t
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void EcParamHolder(SECOidTag curve_oid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: ~EcParamHolder()
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_keygen.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~EcParamHolder()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: nss_test::EcParamHolder::get
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_keygen.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void * get() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - aParams
    argTypes:
    - CK_NSS_KEM_PARAMETER_SET_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: nss_test::KyberParamHolder::KyberParamHolder
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_keygen.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KyberParamHolder(CK_NSS_KEM_PARAMETER_SET_TYPE aParams)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: nss_test::KyberParamHolder::get
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_keygen.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void * get() override
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<ParamHolder>
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:123,1
    - Dst: RsaParamHolder::RsaParamHolder
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:123,1
    - Dst: PK11_PQG_ParamGenV2
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:130,1
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:133,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:136,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:137,1
    - Dst: PK11_PQG_DestroyVerify
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:138,1
    - Dst: std::unique_ptr<ParamHolder>
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:141,1
    - Dst: PqgParamHolder::PqgParamHolder
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:141,1
    - Dst: std::unique_ptr<ParamHolder>
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:144,1
    - Dst: DhParamHolder::DhParamHolder
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:144,1
    - Dst: std::unique_ptr<ParamHolder>
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:149,1
    - Dst: EcParamHolder::EcParamHolder
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:150,1
    - Dst: std::unique_ptr<ParamHolder>
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:154,1
    - Dst: EcParamHolder::EcParamHolder
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:154,1
    - Dst: std::unique_ptr<ParamHolder>
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:158,1
    - Dst: EcParamHolder::EcParamHolder
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:158,1
    - Dst: std::unique_ptr<ParamHolder>
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:162,1
    - Dst: KyberParamHolder::KyberParamHolder
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:163,1
    - Dst: std::unique_ptr<ParamHolder>
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:167,1
    - Dst: KyberParamHolder::KyberParamHolder
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:168,1
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:171,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 174
    functionName: nss_test::Pkcs11KeyPairGenerator::MakeParams
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_keygen.cc
    functionUses: 1
    functionsReached:
    - RsaParamHolder::RsaParamHolder
    - std::unique_ptr<ParamHolder>
    - EXPECT_NE
    - KyberParamHolder::KyberParamHolder
    - ADD_FAILURE
    - DhParamHolder::DhParamHolder
    - PK11_PQG_DestroyVerify
    - EcParamHolder::EcParamHolder
    - PqgParamHolder::PqgParamHolder
    - PK11_PQG_ParamGenV2
    linkageType: ''
    returnType: std::unique_ptr<ParamHolder>
    signature: std::unique_ptr<ParamHolder> Pkcs11KeyPairGenerator::MakeParams() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 19
    functionName: ~ParamHolder()
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_keygen.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~ParamHolder()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    functionName: nss_test::ParamHolder::ParamHolder
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_keygen.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ParamHolder()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ScopedSECKEYPrivateKey*::reset
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:29,1
    - Dst: ScopedSECKEYPublicKey*::reset
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:30,1
    - Dst: nss_test::Pkcs11KeyPairGenerator::MakeParams
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:32,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:33,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:36,1
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:40,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:40,1
    - Dst: auto::get
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:40,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:42,1
    - Dst: PORT_ErrorToName
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:43,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:43,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:44,1
    - Dst: ScopedSECKEYPrivateKey*::swap
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:46,1
    - Dst: ScopedSECKEYPublicKey*::reset
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - priv_key
    - pub_key
    - sensitive
    argTypes:
    - ScopedSECKEYPrivateKey*
    - ScopedSECKEYPublicKey*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 25
    functionDepth: 7
    functionLinenumber: 25
    functionLinenumberEnd: 48
    functionName: nss_test::Pkcs11KeyPairGenerator::GenerateKey
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_keygen.cc
    functionUses: 0
    functionsReached:
    - auto::get
    - nss_test::Pkcs11KeyPairGenerator::MakeParams
    - PK11_GenerateKeyPair
    - PORT_GetError
    - ASSERT_TRUE
    - PORT_ErrorToName
    - ScopedSECKEYPublicKey*::reset
    - ScopedSECKEYPrivateKey*::reset
    - ScopedSECKEYPrivateKey*::swap
    - ScopedPK11SlotInfo::get
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: "void Pkcs11KeyPairGenerator::GenerateKey(ScopedSECKEYPrivateKey* priv_key,\n
      \                                        ScopedSECKEYPublicKey* pub_key,\n                                         bool
      sensitive) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: nss_test::RsaParamHolder::RsaParamHolder
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_keygen.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RsaParamHolder()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: ~RsaParamHolder()
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_keygen.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~RsaParamHolder()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: nss_test::RsaParamHolder::get
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_keygen.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void * get() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - params
    argTypes:
    - PQGParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: nss_test::PqgParamHolder::PqgParamHolder
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_keygen.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PqgParamHolder(PQGParams* params)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: ~PqgParamHolder()
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_keygen.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~PqgParamHolder()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::PqgParamHolder::get
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: nss_test::PqgParamHolder::get
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_keygen.cc
    functionUses: 2
    functionsReached:
    - nss_test::PqgParamHolder::get
    linkageType: ''
    returnType: void
    signature: void * get() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - params
    argTypes:
    - PQGParams*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: nss_test::DhParamHolder::DhParamHolder
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_keygen.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DhParamHolder(PQGParams* params)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: ~DhParamHolder()
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_keygen.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~DhParamHolder()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: nss_test::DhParamHolder::get
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_keygen.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void * get() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECOID_FindOIDByTag
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:90,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:91,1
    - Dst: reset
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:94,1
    - Dst: uint8_t::uint8_t
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:94,1
    - Dst: static_cast<uint8_t>
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:96,1
    - Dst: memcpy
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:97,1
    - Dst: nss_test::EcParamHolder::get
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:99,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - curve_oid
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 100
    functionName: nss_test::EcParamHolder::EcParamHolder
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_keygen.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NE
    - memcpy
    - SECOID_FindOIDByTag
    - nss_test::EcParamHolder::get
    - static_cast<unsigned int>
    - reset
    - uint8_t::uint8_t
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void EcParamHolder(SECOidTag curve_oid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: ~EcParamHolder()
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_keygen.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~EcParamHolder()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: nss_test::EcParamHolder::get
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_keygen.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void * get() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - aParams
    argTypes:
    - CK_NSS_KEM_PARAMETER_SET_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: nss_test::KyberParamHolder::KyberParamHolder
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_keygen.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KyberParamHolder(CK_NSS_KEM_PARAMETER_SET_TYPE aParams)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: nss_test::KyberParamHolder::get
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_keygen.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void * get() override
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<ParamHolder>
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:123,1
    - Dst: RsaParamHolder::RsaParamHolder
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:123,1
    - Dst: PK11_PQG_ParamGenV2
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:130,1
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:133,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:136,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:137,1
    - Dst: PK11_PQG_DestroyVerify
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:138,1
    - Dst: std::unique_ptr<ParamHolder>
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:141,1
    - Dst: PqgParamHolder::PqgParamHolder
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:141,1
    - Dst: std::unique_ptr<ParamHolder>
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:144,1
    - Dst: DhParamHolder::DhParamHolder
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:144,1
    - Dst: std::unique_ptr<ParamHolder>
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:149,1
    - Dst: EcParamHolder::EcParamHolder
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:150,1
    - Dst: std::unique_ptr<ParamHolder>
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:154,1
    - Dst: EcParamHolder::EcParamHolder
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:154,1
    - Dst: std::unique_ptr<ParamHolder>
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:158,1
    - Dst: EcParamHolder::EcParamHolder
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:158,1
    - Dst: std::unique_ptr<ParamHolder>
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:162,1
    - Dst: KyberParamHolder::KyberParamHolder
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:163,1
    - Dst: std::unique_ptr<ParamHolder>
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:167,1
    - Dst: KyberParamHolder::KyberParamHolder
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:168,1
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_keygen.cc:171,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 174
    functionName: nss_test::Pkcs11KeyPairGenerator::MakeParams
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_keygen.cc
    functionUses: 2
    functionsReached:
    - RsaParamHolder::RsaParamHolder
    - std::unique_ptr<ParamHolder>
    - EXPECT_NE
    - KyberParamHolder::KyberParamHolder
    - ADD_FAILURE
    - DhParamHolder::DhParamHolder
    - PK11_PQG_DestroyVerify
    - EcParamHolder::EcParamHolder
    - PqgParamHolder::PqgParamHolder
    - PK11_PQG_ParamGenV2
    linkageType: ''
    returnType: std::unique_ptr<ParamHolder>
    signature: std::unique_ptr<ParamHolder> Pkcs11KeyPairGenerator::MakeParams() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::to_string
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:32,1
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:33,1
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:34,1
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:35,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:36,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:40,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:40,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:41,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:41,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:42,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:42,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:43,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:43,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:44,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:44,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:45,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:45,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:46,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:46,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:47,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:47,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:50,1
    - Dst: PK11_ImportSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:52,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:53,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:54,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:54,1
    - Dst: PK11_SignWithSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:56,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:56,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:57,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:58,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - vec
    - mech
    argTypes:
    - HmacTestVector
    - CK_MECHANISM_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 31
    functionDepth: 6
    functionLinenumber: 31
    functionLinenumberEnd: 59
    functionName: nss_test::Pkcs11HmacTest::RunTestVector
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc
    functionUses: 0
    functionsReached:
    - hex_string_to_bytes
    - SECITEM_CompareItem
    - std::vector::data
    - ScopedPK11SymKey::get
    - PK11_SignWithSymKey
    - std::vector::size
    - PK11_ImportSymKey
    - static_cast<unsigned int>
    - std::to_string
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void RunTestVector(const HmacTestVector &vec, CK_MECHANISM_TYPE mech)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RunTestVector
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:63,1
    - Dst: std::get<0>
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:63,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:63,1
    - Dst: std::get<1>
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:63,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc
    functionUses: 0
    functionsReached:
    - RunTestVector
    - std::get<0>
    - std::get<1>
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11HmacTest, WycheproofVectors)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::to_string
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:32,1
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:33,1
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:34,1
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:35,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:36,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:40,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:40,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:41,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:41,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:42,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:42,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:43,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:43,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:44,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:44,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:45,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:45,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:46,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:46,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:47,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:47,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:50,1
    - Dst: PK11_ImportSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:52,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:53,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:54,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:54,1
    - Dst: PK11_SignWithSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:56,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:56,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:57,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:58,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - vec
    - mech
    argTypes:
    - HmacTestVector
    - CK_MECHANISM_TYPE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 31
    functionDepth: 6
    functionLinenumber: 31
    functionLinenumberEnd: 59
    functionName: nss_test::Pkcs11HmacTest::RunTestVector
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc
    functionUses: 0
    functionsReached:
    - hex_string_to_bytes
    - SECITEM_CompareItem
    - std::vector::data
    - ScopedPK11SymKey::get
    - PK11_SignWithSymKey
    - std::vector::size
    - PK11_ImportSymKey
    - static_cast<unsigned int>
    - std::to_string
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void RunTestVector(const HmacTestVector &vec, CK_MECHANISM_TYPE mech)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RunTestVector
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:63,1
    - Dst: std::get<0>
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:63,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:63,1
    - Dst: std::get<1>
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:63,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_hmac_unittest.cc
    functionUses: 0
    functionsReached:
    - RunTestVector
    - std::get<0>
    - std::get<1>
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11HmacTest, WycheproofVectors)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_ImportSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:24,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - slot
    - key_data
    argTypes:
    - PK11SlotInfo*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 6
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: nss_test::Pkcs11SymKeyTest::ImportSymKey
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_ImportSymKey
    - EXPECT_NE
    linkageType: ''
    returnType: PK11SymKey
    signature: PK11SymKey *ImportSymKey(PK11SlotInfo *slot, SECItem *key_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:31,1
    - Dst: PK11_ExtractKeyValue
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:33,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:34,1
    - Dst: PK11_GetKeyData
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:36,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:37,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:38,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:39,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:40,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - expected
    - actual
    argTypes:
    - SECItem
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 41
    functionName: nss_test::Pkcs11SymKeyTest::CheckKeyData
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - PK11_ExtractKeyValue
    - PK11_GetKeyData
    - memcmp
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void CheckKeyData(SECItem &expected, PK11SymKey *actual)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:44,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:48,1
    - Dst: PK11_WriteRawAttribute
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key
    argTypes:
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 43
    functionDepth: 10
    functionLinenumber: 43
    functionLinenumberEnd: 50
    functionName: nss_test::Pkcs11SymKeyTest::SetSensitive
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_WriteRawAttribute
    - EXPECT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void SetSensitive(PK11SymKey *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:53,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:56,1
    - Dst: PK11_ReadRawAttribute
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:56,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:58,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - key
    argTypes:
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 52
    functionDepth: 10
    functionLinenumber: 52
    functionLinenumberEnd: 60
    functionName: nss_test::Pkcs11SymKeyTest::CheckIsSensitive
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - PK11_ReadRawAttribute
    - EXPECT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void CheckIsSensitive(PK11SymKey *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:63,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:67,1
    - Dst: PK11_WriteRawAttribute
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key
    argTypes:
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 62
    functionDepth: 10
    functionLinenumber: 62
    functionLinenumberEnd: 69
    functionName: nss_test::Pkcs11SymKeyTest::SetNotExtractable
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_WriteRawAttribute
    - EXPECT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void SetNotExtractable(PK11SymKey *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:72,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:75,1
    - Dst: PK11_ReadRawAttribute
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:75,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:77,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - key
    argTypes:
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 71
    functionDepth: 10
    functionLinenumber: 71
    functionLinenumberEnd: 79
    functionName: nss_test::Pkcs11SymKeyTest::CheckIsNotExtractable
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - PK11_ReadRawAttribute
    - EXPECT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void CheckIsNotExtractable(PK11SymKey *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:84,1
    - Dst: ImportSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:86,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:86,1
    - Dst: ImportSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:88,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:88,1
    - Dst: PK11_ConcatSymKeys
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:91,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:91,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:91,1
    - Dst: CheckKeyData
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:92,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 82
    functionDepth: 11
    functionLinenumber: 82
    functionLinenumberEnd: 93
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc
    functionUses: 0
    functionsReached:
    - ScopedPK11SymKey::get
    - CheckKeyData
    - PK11_ConcatSymKeys
    - ScopedPK11SlotInfo::get
    - ImportSymKey
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11SymKeyTest, ConcatSymKeyTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:98,1
    - Dst: ImportSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:100,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:100,1
    - Dst: SetSensitive
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:101,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:101,1
    - Dst: ImportSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:103,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:103,1
    - Dst: PK11_ConcatSymKeys
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:106,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:106,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:106,1
    - Dst: CheckIsSensitive
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:107,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:107,1
    - Dst: PK11_ConcatSymKeys
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:111,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:111,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:111,1
    - Dst: CheckIsSensitive
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:112,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 96
    functionDepth: 11
    functionLinenumber: 96
    functionLinenumberEnd: 113
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc
    functionUses: 0
    functionsReached:
    - ScopedPK11SymKey::get
    - SetSensitive
    - CheckIsSensitive
    - PK11_ConcatSymKeys
    - ScopedPK11SlotInfo::get
    - ImportSymKey
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11SymKeyTest, SensitiveConcatSymKeyTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:118,1
    - Dst: ImportSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:120,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:120,1
    - Dst: SetNotExtractable
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:121,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:121,1
    - Dst: ImportSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:123,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:123,1
    - Dst: PK11_ConcatSymKeys
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:126,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:126,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:126,1
    - Dst: CheckIsNotExtractable
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:127,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:127,1
    - Dst: PK11_ConcatSymKeys
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:130,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:130,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:130,1
    - Dst: CheckIsNotExtractable
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:131,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 116
    functionDepth: 11
    functionLinenumber: 116
    functionLinenumberEnd: 132
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc
    functionUses: 0
    functionsReached:
    - CheckIsNotExtractable
    - SetNotExtractable
    - ScopedPK11SymKey::get
    - PK11_ConcatSymKeys
    - ScopedPK11SlotInfo::get
    - ImportSymKey
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11SymKeyTest, NotExtractableConcatSymKeyTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:137,1
    - Dst: ImportSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:139,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:139,1
    - Dst: ImportSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:141,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:141,1
    - Dst: PK11_ConcatSymKeys
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:144,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:144,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:144,1
    - Dst: CheckKeyData
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:145,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 135
    functionDepth: 11
    functionLinenumber: 135
    functionLinenumberEnd: 146
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc
    functionUses: 0
    functionsReached:
    - ScopedPK11SymKey::get
    - CheckKeyData
    - PK11_ConcatSymKeys
    - ScopedPK11SlotInfo::get
    - ImportSymKey
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11SymKeyTest, KeySlotConcatSymKeyTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:153,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:156,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:158,1
    - Dst: ImportSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:160,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:160,1
    - Dst: ImportSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:162,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:162,1
    - Dst: PK11_ConcatSymKeys
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:165,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:165,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:165,1
    - Dst: CheckKeyData
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:166,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 151
    functionDepth: 11
    functionLinenumber: 151
    functionLinenumberEnd: 167
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NE
    - ScopedPK11SymKey::get
    - CheckKeyData
    - PK11_ConcatSymKeys
    - ScopedPK11SlotInfo::get
    - ImportSymKey
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11SymKeyTest, CrossSlotConcatSymKeyTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_ImportSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:24,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - slot
    - key_data
    argTypes:
    - PK11SlotInfo*
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 6
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: nss_test::Pkcs11SymKeyTest::ImportSymKey
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_ImportSymKey
    - EXPECT_NE
    linkageType: ''
    returnType: PK11SymKey
    signature: PK11SymKey *ImportSymKey(PK11SlotInfo *slot, SECItem *key_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:31,1
    - Dst: PK11_ExtractKeyValue
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:33,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:34,1
    - Dst: PK11_GetKeyData
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:36,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:37,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:38,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:39,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:40,1
    - Dst: memcmp
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - expected
    - actual
    argTypes:
    - SECItem
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 41
    functionName: nss_test::Pkcs11SymKeyTest::CheckKeyData
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - PK11_ExtractKeyValue
    - PK11_GetKeyData
    - memcmp
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void CheckKeyData(SECItem &expected, PK11SymKey *actual)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:44,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:48,1
    - Dst: PK11_WriteRawAttribute
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key
    argTypes:
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 43
    functionDepth: 10
    functionLinenumber: 43
    functionLinenumberEnd: 50
    functionName: nss_test::Pkcs11SymKeyTest::SetSensitive
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_WriteRawAttribute
    - EXPECT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void SetSensitive(PK11SymKey *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:53,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:56,1
    - Dst: PK11_ReadRawAttribute
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:56,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:58,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - key
    argTypes:
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 52
    functionDepth: 10
    functionLinenumber: 52
    functionLinenumberEnd: 60
    functionName: nss_test::Pkcs11SymKeyTest::CheckIsSensitive
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - PK11_ReadRawAttribute
    - EXPECT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void CheckIsSensitive(PK11SymKey *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:63,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:67,1
    - Dst: PK11_WriteRawAttribute
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key
    argTypes:
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 62
    functionDepth: 10
    functionLinenumber: 62
    functionLinenumberEnd: 69
    functionName: nss_test::Pkcs11SymKeyTest::SetNotExtractable
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_WriteRawAttribute
    - EXPECT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void SetNotExtractable(PK11SymKey *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:72,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:75,1
    - Dst: PK11_ReadRawAttribute
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:75,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:77,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - key
    argTypes:
    - PK11SymKey*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 71
    functionDepth: 10
    functionLinenumber: 71
    functionLinenumberEnd: 79
    functionName: nss_test::Pkcs11SymKeyTest::CheckIsNotExtractable
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - PK11_ReadRawAttribute
    - EXPECT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void CheckIsNotExtractable(PK11SymKey *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:84,1
    - Dst: ImportSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:86,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:86,1
    - Dst: ImportSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:88,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:88,1
    - Dst: PK11_ConcatSymKeys
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:91,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:91,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:91,1
    - Dst: CheckKeyData
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:92,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 82
    functionDepth: 11
    functionLinenumber: 82
    functionLinenumberEnd: 93
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc
    functionUses: 0
    functionsReached:
    - ScopedPK11SymKey::get
    - CheckKeyData
    - PK11_ConcatSymKeys
    - ScopedPK11SlotInfo::get
    - ImportSymKey
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11SymKeyTest, ConcatSymKeyTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:98,1
    - Dst: ImportSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:100,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:100,1
    - Dst: SetSensitive
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:101,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:101,1
    - Dst: ImportSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:103,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:103,1
    - Dst: PK11_ConcatSymKeys
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:106,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:106,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:106,1
    - Dst: CheckIsSensitive
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:107,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:107,1
    - Dst: PK11_ConcatSymKeys
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:111,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:111,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:111,1
    - Dst: CheckIsSensitive
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:112,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 96
    functionDepth: 11
    functionLinenumber: 96
    functionLinenumberEnd: 113
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc
    functionUses: 0
    functionsReached:
    - ScopedPK11SymKey::get
    - SetSensitive
    - CheckIsSensitive
    - PK11_ConcatSymKeys
    - ScopedPK11SlotInfo::get
    - ImportSymKey
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11SymKeyTest, SensitiveConcatSymKeyTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:118,1
    - Dst: ImportSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:120,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:120,1
    - Dst: SetNotExtractable
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:121,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:121,1
    - Dst: ImportSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:123,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:123,1
    - Dst: PK11_ConcatSymKeys
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:126,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:126,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:126,1
    - Dst: CheckIsNotExtractable
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:127,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:127,1
    - Dst: PK11_ConcatSymKeys
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:130,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:130,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:130,1
    - Dst: CheckIsNotExtractable
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:131,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 116
    functionDepth: 11
    functionLinenumber: 116
    functionLinenumberEnd: 132
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc
    functionUses: 0
    functionsReached:
    - CheckIsNotExtractable
    - SetNotExtractable
    - ScopedPK11SymKey::get
    - PK11_ConcatSymKeys
    - ScopedPK11SlotInfo::get
    - ImportSymKey
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11SymKeyTest, NotExtractableConcatSymKeyTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:137,1
    - Dst: ImportSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:139,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:139,1
    - Dst: ImportSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:141,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:141,1
    - Dst: PK11_ConcatSymKeys
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:144,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:144,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:144,1
    - Dst: CheckKeyData
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:145,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 135
    functionDepth: 11
    functionLinenumber: 135
    functionLinenumberEnd: 146
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc
    functionUses: 0
    functionsReached:
    - ScopedPK11SymKey::get
    - CheckKeyData
    - PK11_ConcatSymKeys
    - ScopedPK11SlotInfo::get
    - ImportSymKey
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11SymKeyTest, KeySlotConcatSymKeyTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:153,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:156,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:158,1
    - Dst: ImportSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:160,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:160,1
    - Dst: ImportSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:162,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:162,1
    - Dst: PK11_ConcatSymKeys
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:165,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:165,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:165,1
    - Dst: CheckKeyData
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:166,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 151
    functionDepth: 11
    functionLinenumber: 151
    functionLinenumberEnd: 167
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_symkey_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NE
    - ScopedPK11SymKey::get
    - CheckKeyData
    - PK11_ConcatSymKeys
    - ScopedPK11SlotInfo::get
    - ImportSymKey
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11SymKeyTest, CrossSlotConcatSymKeyTest)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - hashOid
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 40
    functionName: nss_test::RsaPssMapCombo
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_MECHANISM_TYPE
    signature: CK_MECHANISM_TYPE RsaPssMapCombo(SECOidTag hashOid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RsaPssMapCombo
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:45,1
    - Dst: PK11_AlgtagToMechanism
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:46,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - hashOid
    - mgf
    - sLen
    argTypes:
    - SECOidTag
    - CK_RSA_PKCS_MGF_TYPE
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 53
    functionName: nss_test::Pkcs11RsaPssTestBase::Pkcs11RsaPssTestBase
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_AlgtagToMechanism
    - reinterpret_cast<unsigned char*>
    - RsaPssMapCombo
    linkageType: ''
    returnType: void
    signature: void Pkcs11RsaPssTestBase(SECOidTag hashOid, CK_RSA_PKCS_MGF_TYPE mgf,
      int sLen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: nss_test::Pkcs11RsaPssTestBase::parameters
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECItem
    signature: SECItem * parameters() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DataBuffer
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:59,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:59,1
    - Dst: public_key::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:59,1
    - Dst: public_key::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:59,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:60,1
    - Dst: msg::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:60,1
    - Dst: msg::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:60,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:61,1
    - Dst: sig::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:61,1
    - Dst: sig::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:61,1
    - Dst: nss_test::Pk11SignatureTest::Verify
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vec'
    argTypes:
    - RsaPssTestVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 64
    functionName: nss_test::Pkcs11RsaPssTestBase::Verify
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc
    functionUses: 0
    functionsReached:
    - sig::data
    - public_key::data
    - DataBuffer
    - msg::size
    - sig::size
    - nss_test::Pk11SignatureTest::Verify
    - public_key::size
    - msg::data
    linkageType: ''
    returnType: void
    signature: void Verify(const RsaPssTestVector& vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: nss_test::Pkcs11RsaPssTest::Pkcs11RsaPssTest
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Pkcs11RsaPssTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: nss_test::Pkcs11RsaPssTestWycheproof::Pkcs11RsaPssTestWycheproof
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Pkcs11RsaPssTestWycheproof()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WycheproofHeader
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:89,1
    - Dst: nss_test::Pkcs11RsaPssTestWycheproof::RunGroup
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' file'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 88
    functionDepth: 7
    functionLinenumber: 88
    functionLinenumberEnd: 92
    functionName: nss_test::Pkcs11RsaPssTestWycheproof::Run
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc
    functionUses: 0
    functionsReached:
    - nss_test::Pkcs11RsaPssTestWycheproof::RunGroup
    - WycheproofHeader
    linkageType: ''
    returnType: void
    signature: void Run(const std::string& file)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:96,1
    - Dst: ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:98,1
    - Dst: FAIL
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ' t'
    - ' n'
    - ' r'
    argTypes:
    - TestVector
    - std::string
    - JsonReader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 102
    functionName: nss_test::Pkcs11RsaPssTestWycheproof::ReadTestAttr
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc
    functionUses: 0
    functionsReached:
    - FAIL
    - ReadHex
    linkageType: ''
    returnType: void
    signature: void ReadTestAttr(TestVector& t, const std::string& n, JsonReader&
      r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - hash
    - mgf
    - s_len
    argTypes:
    - SECOidTag
    - CK_RSA_PKCS_MGF_TYPE
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: nss_test::Pkcs11RsaPssTestWycheproof::Pkcs11RsaPssTestWrap::Pkcs11RsaPssTestWrap
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Pkcs11RsaPssTestWrap(SECOidTag hash, CK_RSA_PKCS_MGF_TYPE mgf,
      int s_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: nss_test::Pkcs11RsaPssTestWycheproof::Pkcs11RsaPssTestWrap::TestBody
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestBody()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::Pk11SignatureTest::Verify
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' params'
    - valid
    argTypes:
    - Pkcs11SignatureTestParams
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 114
    functionName: nss_test::Pkcs11RsaPssTestWycheproof::Pkcs11RsaPssTestWrap::Verify
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc
    functionUses: 0
    functionsReached:
    - nss_test::Pk11SignatureTest::Verify
    linkageType: ''
    returnType: void
    signature: void Verify(const Pkcs11SignatureTestParams& params, bool valid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:120,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:120,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:121,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:122,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:123,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:123,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:130,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:130,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:130,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:130,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:131,1
    - Dst: msg::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:131,1
    - Dst: msg::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:131,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:132,1
    - Dst: sig::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:132,1
    - Dst: sig::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:132,1
    - Dst: Pkcs11RsaPssTestWrap::Verify
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - ' public_key'
    - hash
    - mgf
    - s_len
    - ' tests'
    argTypes:
    - std::vector<uint8_t>
    - SECOidTag
    - CK_RSA_PKCS_MGF_TYPE
    - int
    - std::vector<TestVector>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 135
    functionName: nss_test::Pkcs11RsaPssTestWycheproof::RunTests
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc
    functionUses: 0
    functionsReached:
    - sig::data
    - DataBuffer
    - ASSERT_NE
    - msg::size
    - size
    - sig::size
    - Pkcs11RsaPssTestWrap::Verify
    - data
    - msg::data
    linkageType: ''
    returnType: void
    signature: "void RunTests(const std::vector<uint8_t>& public_key, SECOidTag hash,\n
      \               CK_RSA_PKCS_MGF_TYPE mgf, int s_len,\n                const
      std::vector<TestVector>& tests)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: NextItem
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:143,1
    - Dst: ReadLabel
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:144,1
    - Dst: ReadString
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:149,1
    - Dst: ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:151,1
    - Dst: ReadInt
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:153,1
    - Dst: ReadString
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:155,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:156,1
    - Dst: ReadString
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:158,1
    - Dst: FAIL
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:170,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:173,1
    - Dst: ReadInt
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:173,1
    - Dst: ReadString
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:175,1
    - Dst: FAIL
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:187,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:190,1
    - Dst: ReadString
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:190,1
    - Dst: WycheproofReadTests
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:192,1
    - Dst: FAIL
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:194,1
    - Dst: nss_test::Pkcs11RsaPssTestWycheproof::RunTests
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:198,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 68
    argCount: 1
    argNames:
    - ' r'
    argTypes:
    - JsonReader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 199
    functionName: nss_test::Pkcs11RsaPssTestWycheproof::RunGroup
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc
    functionUses: 1
    functionsReached:
    - NextItem
    - ASSERT_EQ
    - FAIL
    - WycheproofReadTests
    - ReadHex
    - static_cast<unsigned int>
    - ReadInt
    - nss_test::Pkcs11RsaPssTestWycheproof::RunTests
    - ReadLabel
    - ReadString
    linkageType: ''
    returnType: void
    signature: void RunGroup(JsonReader& r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:213,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:213,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:215,1
    - Dst: HASH_ResultLenByOidTag
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:221,1
    - Dst: PK11_GenerateRandomOnSlot
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:222,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:222,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:223,1
    - Dst: PK11_SignatureLen
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:226,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:226,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:228,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:228,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:232,1
    - Dst: PK11_SignWithMechanism
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:236,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:236,1
    - Dst: mechanism
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:236,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:237,1
    - Dst: PK11_VerifyWithMechanism
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:240,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:240,1
    - Dst: mechanism
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:240,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:242,1
    - Dst: PK11_VerifyWithMechanism
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:246,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:246,1
    - Dst: mechanism
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:246,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:248,1
    - Dst: PK11_VerifyWithMechanism
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:253,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:253,1
    - Dst: mechanism
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:253,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 202
    functionDepth: 9
    functionLinenumber: 202
    functionLinenumberEnd: 256
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc
    functionUses: 0
    functionsReached:
    - mechanism
    - HASH_ResultLenByOidTag
    - PK11_VerifyWithMechanism
    - PK11_GenerateKeyPair
    - reinterpret_cast<unsigned char*>
    - ScopedSECKEYPublicKey::get
    - ASSERT_TRUE
    - std::vector::size
    - static_cast<unsigned int>
    - PK11_SignatureLen
    - PK11_SignWithMechanism
    - ScopedSECKEYPrivateKey::get
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - PK11_GenerateRandomOnSlot
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11RsaPssTest, GenerateAndSignAndVerify)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:267,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:267,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:269,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 258
    functionDepth: 7
    functionLinenumber: 258
    functionLinenumberEnd: 271
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - PK11_GenerateKeyPair
    - ScopedPK11SlotInfo::get
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11RsaPssTest, NoLeakWithInvalidExponent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::Pk11SignatureTest::Verify
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:277,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 278
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc
    functionUses: 0
    functionsReached:
    - nss_test::Pk11SignatureTest::Verify
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11RsaPssVectorTest, Verify)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SignAndVerify
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:280,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 280
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc
    functionUses: 0
    functionsReached:
    - SignAndVerify
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11RsaPssVectorTest, SignAndVerify)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - pkcs8
    - ','
    - spki
    - ','
    - data
    - ','
    - sig
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 287
    functionName: VECTOR
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VECTOR(pkcs8, spki, data, sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 290
    functionName: VECTOR_N
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VECTOR_N(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 326
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11RsaPssTestWycheproof, RsaPss2048Sha1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 329
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11RsaPssTestWycheproof, RsaPss2048Sha256_0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 332
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11RsaPssTestWycheproof, RsaPss2048Sha256_32)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 335
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11RsaPssTestWycheproof, RsaPss3072Sha256)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 338
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11RsaPssTestWycheproof, RsaPss4096Sha256)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 341
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11RsaPssTestWycheproof, RsaPss4096Sha512)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 342
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11RsaPssTestWycheproof, RsaPssMisc)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - hashOid
    argTypes:
    - SECOidTag
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 40
    functionName: nss_test::RsaPssMapCombo
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_MECHANISM_TYPE
    signature: CK_MECHANISM_TYPE RsaPssMapCombo(SECOidTag hashOid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RsaPssMapCombo
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:45,1
    - Dst: PK11_AlgtagToMechanism
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:46,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - hashOid
    - mgf
    - sLen
    argTypes:
    - SECOidTag
    - CK_RSA_PKCS_MGF_TYPE
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 53
    functionName: nss_test::Pkcs11RsaPssTestBase::Pkcs11RsaPssTestBase
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_AlgtagToMechanism
    - reinterpret_cast<unsigned char*>
    - RsaPssMapCombo
    linkageType: ''
    returnType: void
    signature: void Pkcs11RsaPssTestBase(SECOidTag hashOid, CK_RSA_PKCS_MGF_TYPE mgf,
      int sLen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: nss_test::Pkcs11RsaPssTestBase::parameters
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SECItem
    signature: SECItem * parameters() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DataBuffer
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:59,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:59,1
    - Dst: public_key::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:59,1
    - Dst: public_key::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:59,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:60,1
    - Dst: msg::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:60,1
    - Dst: msg::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:60,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:61,1
    - Dst: sig::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:61,1
    - Dst: sig::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:61,1
    - Dst: nss_test::Pk11SignatureTest::Verify
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vec'
    argTypes:
    - RsaPssTestVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 64
    functionName: nss_test::Pkcs11RsaPssTestBase::Verify
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc
    functionUses: 0
    functionsReached:
    - sig::data
    - public_key::data
    - DataBuffer
    - msg::size
    - sig::size
    - nss_test::Pk11SignatureTest::Verify
    - public_key::size
    - msg::data
    linkageType: ''
    returnType: void
    signature: void Verify(const RsaPssTestVector& vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: nss_test::Pkcs11RsaPssTest::Pkcs11RsaPssTest
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Pkcs11RsaPssTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: nss_test::Pkcs11RsaPssTestWycheproof::Pkcs11RsaPssTestWycheproof
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Pkcs11RsaPssTestWycheproof()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WycheproofHeader
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:89,1
    - Dst: nss_test::Pkcs11RsaPssTestWycheproof::RunGroup
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' file'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 88
    functionDepth: 7
    functionLinenumber: 88
    functionLinenumberEnd: 92
    functionName: nss_test::Pkcs11RsaPssTestWycheproof::Run
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc
    functionUses: 0
    functionsReached:
    - nss_test::Pkcs11RsaPssTestWycheproof::RunGroup
    - WycheproofHeader
    linkageType: ''
    returnType: void
    signature: void Run(const std::string& file)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:96,1
    - Dst: ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:98,1
    - Dst: FAIL
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ' t'
    - ' n'
    - ' r'
    argTypes:
    - TestVector
    - std::string
    - JsonReader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 102
    functionName: nss_test::Pkcs11RsaPssTestWycheproof::ReadTestAttr
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc
    functionUses: 0
    functionsReached:
    - FAIL
    - ReadHex
    linkageType: ''
    returnType: void
    signature: void ReadTestAttr(TestVector& t, const std::string& n, JsonReader&
      r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - hash
    - mgf
    - s_len
    argTypes:
    - SECOidTag
    - CK_RSA_PKCS_MGF_TYPE
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: nss_test::Pkcs11RsaPssTestWycheproof::Pkcs11RsaPssTestWrap::Pkcs11RsaPssTestWrap
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Pkcs11RsaPssTestWrap(SECOidTag hash, CK_RSA_PKCS_MGF_TYPE mgf,
      int s_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: nss_test::Pkcs11RsaPssTestWycheproof::Pkcs11RsaPssTestWrap::TestBody
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TestBody()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::Pk11SignatureTest::Verify
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' params'
    - valid
    argTypes:
    - Pkcs11SignatureTestParams
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 114
    functionName: nss_test::Pkcs11RsaPssTestWycheproof::Pkcs11RsaPssTestWrap::Verify
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc
    functionUses: 0
    functionsReached:
    - nss_test::Pk11SignatureTest::Verify
    linkageType: ''
    returnType: void
    signature: void Verify(const Pkcs11SignatureTestParams& params, bool valid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:120,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:120,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:121,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:122,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:123,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:123,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:130,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:130,1
    - Dst: data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:130,1
    - Dst: size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:130,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:131,1
    - Dst: msg::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:131,1
    - Dst: msg::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:131,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:132,1
    - Dst: sig::data
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:132,1
    - Dst: sig::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:132,1
    - Dst: Pkcs11RsaPssTestWrap::Verify
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - ' public_key'
    - hash
    - mgf
    - s_len
    - ' tests'
    argTypes:
    - std::vector<uint8_t>
    - SECOidTag
    - CK_RSA_PKCS_MGF_TYPE
    - int
    - std::vector<TestVector>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 135
    functionName: nss_test::Pkcs11RsaPssTestWycheproof::RunTests
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc
    functionUses: 1
    functionsReached:
    - sig::data
    - DataBuffer
    - ASSERT_NE
    - msg::size
    - size
    - sig::size
    - Pkcs11RsaPssTestWrap::Verify
    - data
    - msg::data
    linkageType: ''
    returnType: void
    signature: "void RunTests(const std::vector<uint8_t>& public_key, SECOidTag hash,\n
      \               CK_RSA_PKCS_MGF_TYPE mgf, int s_len,\n                const
      std::vector<TestVector>& tests)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: NextItem
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:143,1
    - Dst: ReadLabel
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:144,1
    - Dst: ReadString
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:149,1
    - Dst: ReadHex
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:151,1
    - Dst: ReadInt
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:153,1
    - Dst: ReadString
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:155,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:156,1
    - Dst: ReadString
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:158,1
    - Dst: FAIL
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:170,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:173,1
    - Dst: ReadInt
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:173,1
    - Dst: ReadString
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:175,1
    - Dst: FAIL
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:187,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:190,1
    - Dst: ReadString
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:190,1
    - Dst: WycheproofReadTests
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:192,1
    - Dst: FAIL
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:194,1
    - Dst: nss_test::Pkcs11RsaPssTestWycheproof::RunTests
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:198,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 68
    argCount: 1
    argNames:
    - ' r'
    argTypes:
    - JsonReader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 199
    functionName: nss_test::Pkcs11RsaPssTestWycheproof::RunGroup
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc
    functionUses: 2
    functionsReached:
    - NextItem
    - ASSERT_EQ
    - FAIL
    - WycheproofReadTests
    - ReadHex
    - static_cast<unsigned int>
    - ReadInt
    - nss_test::Pkcs11RsaPssTestWycheproof::RunTests
    - ReadLabel
    - ReadString
    linkageType: ''
    returnType: void
    signature: void RunGroup(JsonReader& r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:213,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:213,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:215,1
    - Dst: HASH_ResultLenByOidTag
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:221,1
    - Dst: PK11_GenerateRandomOnSlot
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:222,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:222,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:223,1
    - Dst: PK11_SignatureLen
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:226,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:226,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:228,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:228,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:232,1
    - Dst: PK11_SignWithMechanism
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:236,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:236,1
    - Dst: mechanism
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:236,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:237,1
    - Dst: PK11_VerifyWithMechanism
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:240,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:240,1
    - Dst: mechanism
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:240,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:242,1
    - Dst: PK11_VerifyWithMechanism
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:246,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:246,1
    - Dst: mechanism
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:246,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:248,1
    - Dst: PK11_VerifyWithMechanism
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:253,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:253,1
    - Dst: mechanism
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:253,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 202
    functionDepth: 9
    functionLinenumber: 202
    functionLinenumberEnd: 256
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc
    functionUses: 0
    functionsReached:
    - mechanism
    - HASH_ResultLenByOidTag
    - PK11_VerifyWithMechanism
    - PK11_GenerateKeyPair
    - reinterpret_cast<unsigned char*>
    - ScopedSECKEYPublicKey::get
    - ASSERT_TRUE
    - std::vector::size
    - static_cast<unsigned int>
    - PK11_SignatureLen
    - PK11_SignWithMechanism
    - ScopedSECKEYPrivateKey::get
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - PK11_GenerateRandomOnSlot
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11RsaPssTest, GenerateAndSignAndVerify)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:267,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:267,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:269,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 258
    functionDepth: 7
    functionLinenumber: 258
    functionLinenumberEnd: 271
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - PK11_GenerateKeyPair
    - ScopedPK11SlotInfo::get
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11RsaPssTest, NoLeakWithInvalidExponent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::Pk11SignatureTest::Verify
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:277,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 278
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc
    functionUses: 0
    functionsReached:
    - nss_test::Pk11SignatureTest::Verify
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11RsaPssVectorTest, Verify)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SignAndVerify
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:280,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 280
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc
    functionUses: 0
    functionsReached:
    - SignAndVerify
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11RsaPssVectorTest, SignAndVerify)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - pkcs8
    - ','
    - spki
    - ','
    - data
    - ','
    - sig
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 287
    functionName: VECTOR
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VECTOR(pkcs8, spki, data, sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 290
    functionName: VECTOR_N
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VECTOR_N(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 326
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11RsaPssTestWycheproof, RsaPss2048Sha1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 329
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11RsaPssTestWycheproof, RsaPss2048Sha256_0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 332
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11RsaPssTestWycheproof, RsaPss2048Sha256_32)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 335
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11RsaPssTestWycheproof, RsaPss3072Sha256)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 338
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11RsaPssTestWycheproof, RsaPss4096Sha256)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 341
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11RsaPssTestWycheproof, RsaPss4096Sha512)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Run
      Src: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 342
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_rsapss_unittest.cc
    functionUses: 0
    functionsReached:
    - Run
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11RsaPssTestWycheproof, RsaPssMisc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:27,1
    - Dst: PK11_ImportSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:31,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - mech
    - key_item
    argTypes:
    - CK_MECHANISM_TYPE
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 24
    functionDepth: 6
    functionLinenumber: 24
    functionLinenumberEnd: 35
    functionName: nss_test::Pkcs11AesCmacTest::ImportKey
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc
    functionUses: 0
    functionsReached:
    - PK11_ImportSymKey
    - ScopedPK11SlotInfo::get
    - ADD_FAILURE
    linkageType: ''
    returnType: ScopedPK11SymKey
    signature: ScopedPK11SymKey ImportKey(CK_MECHANISM_TYPE mech, SECItem *key_item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:43,1
    - Dst: nss_test::Pkcs11AesCmacTest::ImportKey
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:48,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:49,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:49,1
    - Dst: PK11_SignWithSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:51,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:51,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:55,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:56,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 7
    argNames:
    - key
    - key_len
    - data
    - data_len
    - expected
    - expected_len
    - mechanism
    argTypes:
    - uint8_t*
    - unsigned int
    - uint8_t*
    - unsigned int
    - uint8_t*
    - unsigned int
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 37
    functionDepth: 7
    functionLinenumber: 37
    functionLinenumberEnd: 57
    functionName: nss_test::Pkcs11AesCmacTest::RunTest
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - SECITEM_CompareItem
    - std::vector::data
    - ScopedPK11SymKey::get
    - PK11_SignWithSymKey
    - nss_test::Pkcs11AesCmacTest::ImportKey
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: "void RunTest(uint8_t *key, unsigned int key_len, uint8_t *data,\n
      \              unsigned int data_len, uint8_t *expected,\n               unsigned
      int expected_len, CK_ULONG mechanism)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::to_string
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:61,1
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:62,1
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:63,1
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:64,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:69,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:69,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:70,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:70,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:71,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:71,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:72,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:72,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:73,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:73,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:74,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:74,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:75,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:75,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:76,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:76,1
    - Dst: nss_test::Pkcs11AesCmacTest::ImportKey
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:78,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:80,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:80,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:84,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:84,1
    - Dst: PK11_SignWithSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:85,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:88,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:89,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - vec
    argTypes:
    - AesCmacTestVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 59
    functionDepth: 7
    functionLinenumber: 59
    functionLinenumberEnd: 90
    functionName: nss_test::Pkcs11AesCmacTest::RunTestVector
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc
    functionUses: 0
    functionsReached:
    - hex_string_to_bytes
    - ASSERT_EQ
    - SECITEM_CompareItem
    - std::vector::data
    - EXPECT_EQ
    - ScopedPK11SymKey::get
    - PK11_SignWithSymKey
    - std::vector::size
    - static_cast<unsigned int>
    - std::to_string
    - nss_test::Pkcs11AesCmacTest::ImportKey
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void RunTestVector(const AesCmacTestVector vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RunTestVector
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:93,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 93
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc
    functionUses: 0
    functionsReached:
    - RunTestVector
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11AesCmacTest, TestVectors)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RunTest
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 112
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc
    functionUses: 0
    functionsReached:
    - RunTest
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11AesCmacTest, Aes128NistExample1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RunTest
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 121
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc
    functionUses: 0
    functionsReached:
    - RunTest
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11AesCmacTest, General)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::ImportKey
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:127,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:128,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 129
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc
    functionUses: 0
    functionsReached:
    - nss_test::ImportKey
    - ASSERT_EQ
    - ScopedPK11SymKey::get
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11AesCmacTest, InvalidKeySize)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:27,1
    - Dst: PK11_ImportSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:31,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - mech
    - key_item
    argTypes:
    - CK_MECHANISM_TYPE
    - SECItem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 24
    functionDepth: 6
    functionLinenumber: 24
    functionLinenumberEnd: 35
    functionName: nss_test::Pkcs11AesCmacTest::ImportKey
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc
    functionUses: 2
    functionsReached:
    - PK11_ImportSymKey
    - ScopedPK11SlotInfo::get
    - ADD_FAILURE
    linkageType: ''
    returnType: ScopedPK11SymKey
    signature: ScopedPK11SymKey ImportKey(CK_MECHANISM_TYPE mech, SECItem *key_item)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:43,1
    - Dst: nss_test::Pkcs11AesCmacTest::ImportKey
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:48,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:49,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:49,1
    - Dst: PK11_SignWithSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:51,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:51,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:55,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:56,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 7
    argNames:
    - key
    - key_len
    - data
    - data_len
    - expected
    - expected_len
    - mechanism
    argTypes:
    - uint8_t*
    - unsigned int
    - uint8_t*
    - unsigned int
    - uint8_t*
    - unsigned int
    - CK_ULONG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 37
    functionDepth: 7
    functionLinenumber: 37
    functionLinenumberEnd: 57
    functionName: nss_test::Pkcs11AesCmacTest::RunTest
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - SECITEM_CompareItem
    - std::vector::data
    - ScopedPK11SymKey::get
    - PK11_SignWithSymKey
    - nss_test::Pkcs11AesCmacTest::ImportKey
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: "void RunTest(uint8_t *key, unsigned int key_len, uint8_t *data,\n
      \              unsigned int data_len, uint8_t *expected,\n               unsigned
      int expected_len, CK_ULONG mechanism)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::to_string
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:61,1
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:62,1
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:63,1
    - Dst: hex_string_to_bytes
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:64,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:69,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:69,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:70,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:70,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:71,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:71,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:72,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:72,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:73,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:73,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:74,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:74,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:75,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:75,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:76,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:76,1
    - Dst: nss_test::Pkcs11AesCmacTest::ImportKey
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:78,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:80,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:80,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:84,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:84,1
    - Dst: PK11_SignWithSymKey
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:85,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:88,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:89,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - vec
    argTypes:
    - AesCmacTestVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 59
    functionDepth: 7
    functionLinenumber: 59
    functionLinenumberEnd: 90
    functionName: nss_test::Pkcs11AesCmacTest::RunTestVector
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc
    functionUses: 0
    functionsReached:
    - hex_string_to_bytes
    - ASSERT_EQ
    - SECITEM_CompareItem
    - std::vector::data
    - EXPECT_EQ
    - ScopedPK11SymKey::get
    - PK11_SignWithSymKey
    - std::vector::size
    - static_cast<unsigned int>
    - std::to_string
    - nss_test::Pkcs11AesCmacTest::ImportKey
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void RunTestVector(const AesCmacTestVector vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RunTestVector
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:93,1
    - Dst: GetParam
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 93
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc
    functionUses: 0
    functionsReached:
    - RunTestVector
    - GetParam
    linkageType: ''
    returnType: void
    signature: void TEST_P(Pkcs11AesCmacTest, TestVectors)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RunTest
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 112
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc
    functionUses: 0
    functionsReached:
    - RunTest
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11AesCmacTest, Aes128NistExample1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RunTest
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 121
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc
    functionUses: 0
    functionsReached:
    - RunTest
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11AesCmacTest, General)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::ImportKey
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:127,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:128,1
    - Dst: ScopedPK11SymKey::get
      Src: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 129
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/pk11_gtest/pk11_aes_cmac_unittest.cc
    functionUses: 0
    functionsReached:
    - nss_test::ImportKey
    - ASSERT_EQ
    - ScopedPK11SymKey::get
    linkageType: ''
    returnType: void
    signature: void TEST_F(Pkcs11AesCmacTest, InvalidKeySize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - rtype
    - ','
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: CK_DECLARE_FUNCTION
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CK_DECLARE_FUNCTION(rtype, func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - rtype
    - ','
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: CK_DECLARE_FUNCTION
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CK_DECLARE_FUNCTION(rtype, func)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - condition
    - ','
    - message
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: static_assert
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: static_assert(condition, message)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: Test_C_Initialize
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV Test_C_Initialize(CK_VOID_PTR)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: Test_C_Finalize
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV Test_C_Finalize(CK_VOID_PTR)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp:58,1
    - Dst: memset
      Src: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - (dest)
    - (src)
    argTypes:
    - unsigned char[]
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: CopyString
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached:
    - memset
    - memcpy
    linkageType: ''
    returnType: void
    signature: void CopyString(unsigned char (&dest)[DestSize], const char (&src)[SrcSize])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CopyString
      Src: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp:68,1
    - Dst: CopyString
      Src: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - pInfo
    argTypes:
    - CK_INFO_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 73
    functionName: Test_C_GetInfo
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached:
    - CopyString
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV Test_C_GetInfo(CK_INFO_PTR pInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: Test_C_GetFunctionList
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV Test_C_GetFunctionList(CK_FUNCTION_LIST_PTR_PTR)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp:180,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - limitToTokensPresent
    - pSlotList
    - pulCount
    argTypes:
    - CK_BBOOL
    - CK_SLOT_ID_PTR
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 185
    functionName: Test_C_GetSlotList
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV Test_C_GetSlotList(CK_BBOOL limitToTokensPresent,\n                         CK_SLOT_ID_PTR
      pSlotList, CK_ULONG_PTR pulCount)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CopyString
      Src: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp:199,1
    - Dst: CopyString
      Src: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp:204,1
    - Dst: CopyString
      Src: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp:208,1
    - Dst: CopyString
      Src: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp:212,1
    - Dst: CopyString
      Src: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp:219,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - slotID
    - pInfo
    argTypes:
    - CK_SLOT_ID
    - CK_SLOT_INFO_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 192
    functionDepth: 2
    functionLinenumber: 192
    functionLinenumberEnd: 223
    functionName: Test_C_GetSlotInfo
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached:
    - CopyString
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV Test_C_GetSlotInfo(CK_SLOT_ID slotID, CK_SLOT_INFO_PTR pInfo)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CopyString
      Src: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp:240,1
    - Dst: CopyString
      Src: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp:243,1
    - Dst: CopyString
      Src: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp:246,1
    - Dst: CopyString
      Src: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp:252,1
    - Dst: CopyString
      Src: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp:253,1
    - Dst: memset
      Src: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp:254,1
    - Dst: memset
      Src: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp:268,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 2
    argNames:
    - slotID
    - pInfo
    argTypes:
    - CK_SLOT_ID
    - CK_TOKEN_INFO_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 233
    functionDepth: 2
    functionLinenumber: 233
    functionLinenumberEnd: 270
    functionName: Test_C_GetTokenInfo
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached:
    - memset
    - CopyString
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV Test_C_GetTokenInfo(CK_SLOT_ID slotID, CK_TOKEN_INFO_PTR pInfo)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pulCount
    argTypes:
    - CK_ULONG_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 280
    functionName: Test_C_GetMechanismList
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV Test_C_GetMechanismList(CK_SLOT_ID, CK_MECHANISM_TYPE_PTR,\n
      \                             CK_ULONG_PTR pulCount)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 285
    functionName: Test_C_GetMechanismInfo
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV Test_C_GetMechanismInfo(CK_SLOT_ID, CK_MECHANISM_TYPE,\n                              CK_MECHANISM_INFO_PTR)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 289
    functionName: Test_C_InitToken
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV Test_C_InitToken(CK_SLOT_ID, CK_UTF8CHAR_PTR, CK_ULONG, CK_UTF8CHAR_PTR)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 293
    functionName: Test_C_InitPIN
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV Test_C_InitPIN(CK_SESSION_HANDLE, CK_UTF8CHAR_PTR, CK_ULONG)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 298
    functionName: Test_C_SetPIN
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV Test_C_SetPIN(CK_SESSION_HANDLE, CK_UTF8CHAR_PTR, CK_ULONG,\n
      \                   CK_UTF8CHAR_PTR, CK_ULONG)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - slotID
    - phSession
    argTypes:
    - CK_SLOT_ID
    - CK_SESSION_HANDLE_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 317
    functionName: Test_C_OpenSession
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV Test_C_OpenSession(CK_SLOT_ID slotID, CK_FLAGS, CK_VOID_PTR,
      CK_NOTIFY,\n                         CK_SESSION_HANDLE_PTR phSession)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 319
    functionName: Test_C_CloseSession
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV Test_C_CloseSession(CK_SESSION_HANDLE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 321
    functionName: Test_C_CloseAllSessions
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV Test_C_CloseAllSessions(CK_SLOT_ID)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - hSession
    - pInfo
    argTypes:
    - CK_SESSION_HANDLE
    - CK_SESSION_INFO_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 346
    functionName: Test_C_GetSessionInfo
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV Test_C_GetSessionInfo(CK_SESSION_HANDLE hSession,\n                            CK_SESSION_INFO_PTR
      pInfo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 350
    functionName: Test_C_GetOperationState
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV Test_C_GetOperationState(CK_SESSION_HANDLE, CK_BYTE_PTR, CK_ULONG_PTR)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 355
    functionName: Test_C_SetOperationState
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV Test_C_SetOperationState(CK_SESSION_HANDLE, CK_BYTE_PTR, CK_ULONG,\n
      \                              CK_OBJECT_HANDLE, CK_OBJECT_HANDLE)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 359
    functionName: Test_C_Login
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV Test_C_Login(CK_SESSION_HANDLE, CK_USER_TYPE, CK_UTF8CHAR_PTR,
      CK_ULONG)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 361
    functionName: Test_C_Logout
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV Test_C_Logout(CK_SESSION_HANDLE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 366
    functionName: Test_C_CreateObject
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV Test_C_CreateObject(CK_SESSION_HANDLE, CK_ATTRIBUTE_PTR, CK_ULONG,\n
      \                         CK_OBJECT_HANDLE_PTR)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 371
    functionName: Test_C_CopyObject
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV Test_C_CopyObject(CK_SESSION_HANDLE, CK_OBJECT_HANDLE, CK_ATTRIBUTE_PTR,\n
      \                       CK_ULONG, CK_OBJECT_HANDLE_PTR)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 375
    functionName: Test_C_DestroyObject
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV Test_C_DestroyObject(CK_SESSION_HANDLE, CK_OBJECT_HANDLE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 379
    functionName: Test_C_GetObjectSize
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV Test_C_GetObjectSize(CK_SESSION_HANDLE, CK_OBJECT_HANDLE, CK_ULONG_PTR)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp:391,1
    - Dst: memcpy
      Src: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp:393,1
    - Dst: assert
      Src: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp:408,1
    - Dst: memcpy
      Src: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp:410,1
    - Dst: strlen
      Src: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp:418,1
    - Dst: memcpy
      Src: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp:421,1
    - Dst: BYTEARRAY_CASE
      Src: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp:444,1
    - Dst: BYTEARRAY_CASE
      Src: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp:445,1
    - Dst: BYTEARRAY_CASE
      Src: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp:446,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 56
    argCount: 4
    argNames:
    - hSession
    - hObject
    - pTemplate
    - ulCount
    argTypes:
    - CK_SESSION_HANDLE
    - CK_OBJECT_HANDLE
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    assertStmts:
    - condition: (pTemplate[count].ulValueLen == sizeof(CK_ULONG))
      pos:
        line_end: 390
        line_start: 390
        source_file: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    - condition: (pTemplate[count].ulValueLen == sizeof(CK_BBOOL))
      pos:
        line_end: 407
        line_start: 407
        source_file: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    constantsTouched: []
    func_position:
      end: 459
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 459
    functionName: Test_C_GetAttributeValue
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached:
    - assert
    - memcpy
    - BYTEARRAY_CASE
    - strlen
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV Test_C_GetAttributeValue(CK_SESSION_HANDLE hSession,\n                               CK_OBJECT_HANDLE
      hObject,\n                               CK_ATTRIBUTE_PTR pTemplate, CK_ULONG
      ulCount)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - label
    - ','
    - array
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 443
    functionName: BYTEARRAY_CASE
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BYTEARRAY_CASE(label, array)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 464
    functionName: Test_C_SetAttributeValue
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV Test_C_SetAttributeValue(CK_SESSION_HANDLE, CK_OBJECT_HANDLE,\n
      \                              CK_ATTRIBUTE_PTR, CK_ULONG)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp:477,1
    - Dst: memcpy
      Src: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp:479,1
    - Dst: memcmp
      Src: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp:502,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 3
    argNames:
    - hSession
    - pTemplate
    - ulCount
    argTypes:
    - CK_SESSION_HANDLE
    - CK_ATTRIBUTE_PTR
    - CK_ULONG
    assertStmts:
    - condition: (attribute.ulValueLen == sizeof(CK_OBJECT_CLASS))
      pos:
        line_end: 476
        line_start: 476
        source_file: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    constantsTouched: []
    func_position:
      end: 514
      start: 466
    functionDepth: 1
    functionLinenumber: 466
    functionLinenumberEnd: 514
    functionName: Test_C_FindObjectsInit
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached:
    - assert
    - memcpy
    - memcmp
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV Test_C_FindObjectsInit(CK_SESSION_HANDLE hSession,\n                             CK_ATTRIBUTE_PTR
      pTemplate, CK_ULONG ulCount)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp:521,1
    - Dst: assert
      Src: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp:533,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 4
    argNames:
    - hSession
    - phObject
    - ulMaxObjectCount
    - pulObjectCount
    argTypes:
    - CK_SESSION_HANDLE
    - CK_OBJECT_HANDLE_PTR
    - CK_ULONG
    - CK_ULONG_PTR
    assertStmts:
    - condition: (hSession == 4)
      pos:
        line_end: 520
        line_start: 520
        source_file: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    - condition: (hSession == 4)
      pos:
        line_end: 532
        line_start: 532
        source_file: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    constantsTouched: []
    func_position:
      end: 560
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 560
    functionName: Test_C_FindObjects
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV Test_C_FindObjects(CK_SESSION_HANDLE hSession,\n                         CK_OBJECT_HANDLE_PTR
      phObject,\n                         CK_ULONG ulMaxObjectCount,\n                         CK_ULONG_PTR
      pulObjectCount)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - hSession
    argTypes:
    - CK_SESSION_HANDLE
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 568
    functionName: Test_C_FindObjectsFinal
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV Test_C_FindObjectsFinal(CK_SESSION_HANDLE hSession)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 573
    functionName: Test_C_EncryptInit
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV Test_C_EncryptInit(CK_SESSION_HANDLE, CK_MECHANISM_PTR,\n                         CK_OBJECT_HANDLE)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 575
    functionDepth: 0
    functionLinenumber: 575
    functionLinenumberEnd: 578
    functionName: Test_C_Encrypt
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV Test_C_Encrypt(CK_SESSION_HANDLE, CK_BYTE_PTR, CK_ULONG, CK_BYTE_PTR,\n
      \                    CK_ULONG_PTR)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 583
    functionName: Test_C_EncryptUpdate
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV Test_C_EncryptUpdate(CK_SESSION_HANDLE, CK_BYTE_PTR, CK_ULONG,\n
      \                          CK_BYTE_PTR, CK_ULONG_PTR)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 585
    functionDepth: 0
    functionLinenumber: 585
    functionLinenumberEnd: 587
    functionName: Test_C_EncryptFinal
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV Test_C_EncryptFinal(CK_SESSION_HANDLE, CK_BYTE_PTR, CK_ULONG_PTR)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 592
    functionName: Test_C_DecryptInit
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV Test_C_DecryptInit(CK_SESSION_HANDLE, CK_MECHANISM_PTR,\n                         CK_OBJECT_HANDLE)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 594
    functionDepth: 0
    functionLinenumber: 594
    functionLinenumberEnd: 597
    functionName: Test_C_Decrypt
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV Test_C_Decrypt(CK_SESSION_HANDLE, CK_BYTE_PTR, CK_ULONG, CK_BYTE_PTR,\n
      \                    CK_ULONG_PTR)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 599
    functionDepth: 0
    functionLinenumber: 599
    functionLinenumberEnd: 602
    functionName: Test_C_DecryptUpdate
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV Test_C_DecryptUpdate(CK_SESSION_HANDLE, CK_BYTE_PTR, CK_ULONG,\n
      \                          CK_BYTE_PTR, CK_ULONG_PTR)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 606
    functionName: Test_C_DecryptFinal
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV Test_C_DecryptFinal(CK_SESSION_HANDLE, CK_BYTE_PTR, CK_ULONG_PTR)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 610
    functionName: Test_C_DigestInit
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV Test_C_DigestInit(CK_SESSION_HANDLE, CK_MECHANISM_PTR)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 612
    functionDepth: 0
    functionLinenumber: 612
    functionLinenumberEnd: 615
    functionName: Test_C_Digest
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV Test_C_Digest(CK_SESSION_HANDLE, CK_BYTE_PTR, CK_ULONG, CK_BYTE_PTR,\n
      \                   CK_ULONG_PTR)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 619
    functionName: Test_C_DigestUpdate
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV Test_C_DigestUpdate(CK_SESSION_HANDLE, CK_BYTE_PTR, CK_ULONG)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 623
    functionName: Test_C_DigestKey
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV Test_C_DigestKey(CK_SESSION_HANDLE, CK_OBJECT_HANDLE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 625
    functionDepth: 0
    functionLinenumber: 625
    functionLinenumberEnd: 627
    functionName: Test_C_DigestFinal
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV Test_C_DigestFinal(CK_SESSION_HANDLE, CK_BYTE_PTR, CK_ULONG_PTR)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 629
    functionDepth: 0
    functionLinenumber: 629
    functionLinenumberEnd: 631
    functionName: Test_C_SignInit
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV Test_C_SignInit(CK_SESSION_HANDLE, CK_MECHANISM_PTR, CK_OBJECT_HANDLE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 636
    functionName: Test_C_Sign
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV Test_C_Sign(CK_SESSION_HANDLE, CK_BYTE_PTR, CK_ULONG, CK_BYTE_PTR,\n
      \                 CK_ULONG_PTR)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 640
    functionName: Test_C_SignUpdate
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV Test_C_SignUpdate(CK_SESSION_HANDLE, CK_BYTE_PTR, CK_ULONG)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 642
    functionDepth: 0
    functionLinenumber: 642
    functionLinenumberEnd: 644
    functionName: Test_C_SignFinal
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV Test_C_SignFinal(CK_SESSION_HANDLE, CK_BYTE_PTR, CK_ULONG_PTR)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 646
    functionDepth: 0
    functionLinenumber: 646
    functionLinenumberEnd: 649
    functionName: Test_C_SignRecoverInit
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV Test_C_SignRecoverInit(CK_SESSION_HANDLE, CK_MECHANISM_PTR,\n
      \                            CK_OBJECT_HANDLE)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 651
    functionDepth: 0
    functionLinenumber: 651
    functionLinenumberEnd: 654
    functionName: Test_C_SignRecover
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV Test_C_SignRecover(CK_SESSION_HANDLE, CK_BYTE_PTR, CK_ULONG,
      CK_BYTE_PTR,\n                         CK_ULONG_PTR)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 656
    functionDepth: 0
    functionLinenumber: 656
    functionLinenumberEnd: 658
    functionName: Test_C_VerifyInit
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV Test_C_VerifyInit(CK_SESSION_HANDLE, CK_MECHANISM_PTR, CK_OBJECT_HANDLE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 663
    functionName: Test_C_Verify
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV Test_C_Verify(CK_SESSION_HANDLE, CK_BYTE_PTR, CK_ULONG, CK_BYTE_PTR,\n
      \                   CK_ULONG)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 665
    functionDepth: 0
    functionLinenumber: 665
    functionLinenumberEnd: 667
    functionName: Test_C_VerifyUpdate
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV Test_C_VerifyUpdate(CK_SESSION_HANDLE, CK_BYTE_PTR, CK_ULONG)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 671
    functionName: Test_C_VerifyFinal
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV Test_C_VerifyFinal(CK_SESSION_HANDLE, CK_BYTE_PTR, CK_ULONG)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 673
    functionDepth: 0
    functionLinenumber: 673
    functionLinenumberEnd: 676
    functionName: Test_C_VerifyRecoverInit
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV Test_C_VerifyRecoverInit(CK_SESSION_HANDLE, CK_MECHANISM_PTR,\n
      \                              CK_OBJECT_HANDLE)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 678
    functionDepth: 0
    functionLinenumber: 678
    functionLinenumberEnd: 681
    functionName: Test_C_VerifyRecover
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV Test_C_VerifyRecover(CK_SESSION_HANDLE, CK_BYTE_PTR, CK_ULONG,\n
      \                          CK_BYTE_PTR, CK_ULONG_PTR)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 683
    functionDepth: 0
    functionLinenumber: 683
    functionLinenumberEnd: 686
    functionName: Test_C_DigestEncryptUpdate
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV Test_C_DigestEncryptUpdate(CK_SESSION_HANDLE, CK_BYTE_PTR, CK_ULONG,\n
      \                                CK_BYTE_PTR, CK_ULONG_PTR)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 688
    functionDepth: 0
    functionLinenumber: 688
    functionLinenumberEnd: 691
    functionName: Test_C_DecryptDigestUpdate
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV Test_C_DecryptDigestUpdate(CK_SESSION_HANDLE, CK_BYTE_PTR, CK_ULONG,\n
      \                                CK_BYTE_PTR, CK_ULONG_PTR)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 693
    functionDepth: 0
    functionLinenumber: 693
    functionLinenumberEnd: 696
    functionName: Test_C_SignEncryptUpdate
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV Test_C_SignEncryptUpdate(CK_SESSION_HANDLE, CK_BYTE_PTR, CK_ULONG,\n
      \                              CK_BYTE_PTR, CK_ULONG_PTR)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 698
    functionDepth: 0
    functionLinenumber: 698
    functionLinenumberEnd: 701
    functionName: Test_C_DecryptVerifyUpdate
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV Test_C_DecryptVerifyUpdate(CK_SESSION_HANDLE, CK_BYTE_PTR, CK_ULONG,\n
      \                                CK_BYTE_PTR, CK_ULONG_PTR)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 706
    functionName: Test_C_GenerateKey
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV Test_C_GenerateKey(CK_SESSION_HANDLE, CK_MECHANISM_PTR, CK_ATTRIBUTE_PTR,\n
      \                        CK_ULONG, CK_OBJECT_HANDLE_PTR)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 708
    functionDepth: 0
    functionLinenumber: 708
    functionLinenumberEnd: 713
    functionName: Test_C_GenerateKeyPair
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV Test_C_GenerateKeyPair(CK_SESSION_HANDLE, CK_MECHANISM_PTR,\n
      \                            CK_ATTRIBUTE_PTR, CK_ULONG, CK_ATTRIBUTE_PTR,\n
      \                            CK_ULONG, CK_OBJECT_HANDLE_PTR,\n                             CK_OBJECT_HANDLE_PTR)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 715
    functionDepth: 0
    functionLinenumber: 715
    functionLinenumberEnd: 718
    functionName: Test_C_WrapKey
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV Test_C_WrapKey(CK_SESSION_HANDLE, CK_MECHANISM_PTR, CK_OBJECT_HANDLE,\n
      \                    CK_OBJECT_HANDLE, CK_BYTE_PTR, CK_ULONG_PTR)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 720
    functionDepth: 0
    functionLinenumber: 720
    functionLinenumberEnd: 724
    functionName: Test_C_UnwrapKey
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV Test_C_UnwrapKey(CK_SESSION_HANDLE, CK_MECHANISM_PTR, CK_OBJECT_HANDLE,\n
      \                      CK_BYTE_PTR, CK_ULONG, CK_ATTRIBUTE_PTR, CK_ULONG,\n
      \                      CK_OBJECT_HANDLE_PTR)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 726
    functionDepth: 0
    functionLinenumber: 726
    functionLinenumberEnd: 729
    functionName: Test_C_DeriveKey
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: "CK_RV Test_C_DeriveKey(CK_SESSION_HANDLE, CK_MECHANISM_PTR, CK_OBJECT_HANDLE,\n
      \                      CK_ATTRIBUTE_PTR, CK_ULONG, CK_OBJECT_HANDLE_PTR)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 731
    functionDepth: 0
    functionLinenumber: 731
    functionLinenumberEnd: 733
    functionName: Test_C_SeedRandom
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV Test_C_SeedRandom(CK_SESSION_HANDLE, CK_BYTE_PTR, CK_ULONG)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 735
    functionDepth: 0
    functionLinenumber: 735
    functionLinenumberEnd: 737
    functionName: Test_C_GenerateRandom
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV Test_C_GenerateRandom(CK_SESSION_HANDLE, CK_BYTE_PTR, CK_ULONG)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 741
    functionName: Test_C_GetFunctionStatus
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV Test_C_GetFunctionStatus(CK_SESSION_HANDLE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 743
    functionDepth: 0
    functionLinenumber: 743
    functionLinenumberEnd: 745
    functionName: Test_C_CancelFunction
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV Test_C_CancelFunction(CK_SESSION_HANDLE)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Sleep
      Src: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp:749,1
    - Dst: usleep
      Src: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp:751,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - pSlot
    argTypes:
    - CK_SLOT_ID_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 747
    functionDepth: 0
    functionLinenumber: 747
    functionLinenumberEnd: 756
    functionName: Test_C_WaitForSlotEvent
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 0
    functionsReached:
    - usleep
    - Sleep
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV Test_C_WaitForSlotEvent(CK_FLAGS, CK_SLOT_ID_PTR pSlot, CK_VOID_PTR)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ppFunctionList
    argTypes:
    - CK_FUNCTION_LIST_PTR_PTR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 832
    functionDepth: 0
    functionLinenumber: 832
    functionLinenumberEnd: 835
    functionName: C_GetFunctionList
    functionSourceFile: /src/nss/gtests/pkcs11testmodule/pkcs11testmodule.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: CK_RV
    signature: CK_RV C_GetFunctionList(CK_FUNCTION_LIST_PTR_PTR ppFunctionList)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: testing::InitGoogleTest
      Src: /src/nss/gtests/common/gtests-util.cc:14,1
    - Dst: SECOID_Init
      Src: /src/nss/gtests/common/gtests-util.cc:16,1
    - Dst: RUN_ALL_TESTS
      Src: /src/nss/gtests/common/gtests-util.cc:19,1
    - Dst: SECOID_Shutdown
      Src: /src/nss/gtests/common/gtests-util.cc:21,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 13
    functionDepth: 3
    functionLinenumber: 13
    functionLinenumberEnd: 26
    functionName: main
    functionSourceFile: /src/nss/gtests/common/gtests-util.cc
    functionUses: 43
    functionsReached:
    - SECOID_Shutdown
    - testing::InitGoogleTest
    - SECOID_Init
    - RUN_ALL_TESTS
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::length
      Src: /src/nss/gtests/common/util.h:29,1
    - Dst: std::vector::push_back
      Src: /src/nss/gtests/common/util.h:30,1
    - Dst: std::stoul
      Src: /src/nss/gtests/common/util.h:30,1
    - Dst: std::string::substr
      Src: /src/nss/gtests/common/util.h:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 33
    functionName: hex_string_to_bytes
    functionSourceFile: /src/nss/gtests/common/util.h
    functionUses: 16
    functionsReached:
    - std::stoul
    - std::string::substr
    - std::vector::push_back
    - std::string::length
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> hex_string_to_bytes(std::string s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PR_GetEnvSecure
      Src: /src/nss/gtests/common/util.h:51,1
    - Dst: std::string::assign
      Src: /src/nss/gtests/common/util.h:53,1
    - Dst: std::string::append
      Src: /src/nss/gtests/common/util.h:55,1
    - Dst: ScopedUniqueDirectory::TryMakingDirectory
      Src: /src/nss/gtests/common/util.h:60,1
    - Dst: assign
      Src: /src/nss/gtests/common/util.h:61,1
    - Dst: assert
      Src: /src/nss/gtests/common/util.h:65,1
    - Dst: length
      Src: /src/nss/gtests/common/util.h:65,1
    - Dst: MultiByteToWideChar
      Src: /src/nss/gtests/common/util.h:69,1
    - Dst: data
      Src: /src/nss/gtests/common/util.h:69,1
    - Dst: size
      Src: /src/nss/gtests/common/util.h:69,1
    - Dst: MultiByteToWideChar
      Src: /src/nss/gtests/common/util.h:71,1
    - Dst: data
      Src: /src/nss/gtests/common/util.h:71,1
    - Dst: size
      Src: /src/nss/gtests/common/util.h:71,1
    - Dst: std::vector::data
      Src: /src/nss/gtests/common/util.h:71,1
    - Dst: std::vector::size
      Src: /src/nss/gtests/common/util.h:72,1
    - Dst: std::wstring_convert::to_bytes
      Src: /src/nss/gtests/common/util.h:74,1
    - Dst: std::wstring
      Src: /src/nss/gtests/common/util.h:74,1
    - Dst: std::vector::begin
      Src: /src/nss/gtests/common/util.h:74,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/common/util.h:74,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - prefix
    argTypes:
    - std::string
    assertStmts:
    - condition: (mPath.length() > 0)
      pos:
        line_end: 64
        line_start: 64
        source_file: /src/nss/gtests/common/util.h
    constantsTouched: []
    func_position:
      end: 78
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 78
    functionName: ScopedUniqueDirectory::ScopedUniqueDirectory
    functionSourceFile: /src/nss/gtests/common/util.h
    functionUses: 0
    functionsReached:
    - ScopedUniqueDirectory::TryMakingDirectory
    - std::string::append
    - assign
    - length
    - std::string::assign
    - std::vector::data
    - size
    - PR_GetEnvSecure
    - std::vector::size
    - assert
    - std::wstring_convert::to_bytes
    - std::wstring
    - std::vector::end
    - std::vector::begin
    - MultiByteToWideChar
    - data
    linkageType: ''
    returnType: void
    signature: void ScopedUniqueDirectory(const std::string &prefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nss/gtests/common/util.h:81,1
    - Dst: rmdir
      Src: /src/nss/gtests/common/util.h:81,1
    - Dst: c_str
      Src: /src/nss/gtests/common/util.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (rmdir(mPath.c_str()) == 0)
      pos:
        line_end: 80
        line_start: 80
        source_file: /src/nss/gtests/common/util.h
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: ~ScopedUniqueDirectory()
    functionSourceFile: /src/nss/gtests/common/util.h
    functionUses: 0
    functionsReached:
    - assert
    - rmdir
    - c_str
    linkageType: ''
    returnType: void
    signature: void ~ScopedUniqueDirectory()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: '&GetPath()'
    functionSourceFile: /src/nss/gtests/common/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string &GetPath()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: '&GetUTF8Path()'
    functionSourceFile: /src/nss/gtests/common/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string &GetUTF8Path()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::setfill
      Src: /src/nss/gtests/common/util.h:93,1
    - Dst: std::setw
      Src: /src/nss/gtests/common/util.h:93,1
    - Dst: rand
      Src: /src/nss/gtests/common/util.h:93,1
    - Dst: rand
      Src: /src/nss/gtests/common/util.h:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - prefix
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 97
    functionName: ScopedUniqueDirectory::GenerateRandomName
    functionSourceFile: /src/nss/gtests/common/util.h
    functionUses: 0
    functionsReached:
    - std::setfill
    - rand
    - std::setw
    linkageType: ''
    returnType: void
    signature: void GenerateRandomName(/*in/out*/ std::string &prefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ScopedUniqueDirectory::GenerateRandomName
      Src: /src/nss/gtests/common/util.h:100,1
    - Dst: _mkdir
      Src: /src/nss/gtests/common/util.h:102,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/common/util.h:102,1
    - Dst: mkdir
      Src: /src/nss/gtests/common/util.h:104,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/common/util.h:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - prefix
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 106
    functionName: ScopedUniqueDirectory::TryMakingDirectory
    functionSourceFile: /src/nss/gtests/common/util.h
    functionUses: 1
    functionsReached:
    - _mkdir
    - std::string::c_str
    - ScopedUniqueDirectory::GenerateRandomName
    - mkdir
    linkageType: ''
    returnType: bool
    signature: bool TryMakingDirectory(/*in/out*/ std::string &prefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PR_fprintf
      Src: /src/nss/gtests/common/gtests.cc:14,1
    - Dst: exit
      Src: /src/nss/gtests/common/gtests.cc:15,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - progname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: usage
    functionSourceFile: /src/nss/gtests/common/gtests.cc
    functionUses: 14
    functionsReached:
    - PR_fprintf
    - exit
    linkageType: ''
    returnType: void
    signature: void usage(const char *progname)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: testing::InitGoogleTest
      Src: /src/nss/gtests/common/gtests.cc:19,1
    - Dst: strcmp
      Src: /src/nss/gtests/common/gtests.cc:25,1
    - Dst: usage
      Src: /src/nss/gtests/common/gtests.cc:27,1
    - Dst: strcmp
      Src: /src/nss/gtests/common/gtests.cc:31,1
    - Dst: usage
      Src: /src/nss/gtests/common/gtests.cc:33,1
    - Dst: strcmp
      Src: /src/nss/gtests/common/gtests.cc:37,1
    - Dst: NSS_Initialize
      Src: /src/nss/gtests/common/gtests.cc:42,1
    - Dst: RUN_ALL_TESTS
      Src: /src/nss/gtests/common/gtests.cc:45,1
    - Dst: NSS_Shutdown
      Src: /src/nss/gtests/common/gtests.cc:47,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 18
    functionDepth: 14
    functionLinenumber: 18
    functionLinenumberEnd: 52
    functionName: main
    functionSourceFile: /src/nss/gtests/common/gtests.cc
    functionUses: 43
    functionsReached:
    - strcmp
    - RUN_ALL_TESTS
    - NSS_Initialize
    - NSS_Shutdown
    - testing::InitGoogleTest
    - usage
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 18
    functionName: nss_test::SoftokenBuiltinsTest::SoftokenBuiltinsTest
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SoftokenBuiltinsTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - prefix
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 19
    functionName: nss_test::SoftokenBuiltinsTest::SoftokenBuiltinsTest
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SoftokenBuiltinsTest(const std::string &prefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::append
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:23,1
    - Dst: GetUTF8Path
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:23,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:24,1
    - Dst: NSS_Initialize
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:24,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 21
    functionDepth: 14
    functionLinenumber: 21
    functionLinenumberEnd: 26
    functionName: nss_test::SoftokenBuiltinsTest::SetUp
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - std::string::append
    - GetUTF8Path
    - NSS_Initialize
    - std::string::c_str
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:29,1
    - Dst: NSS_Shutdown
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:29,1
    - Dst: GetPath
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:30,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:31,1
    - Dst: unlink
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:31,1
    - Dst: c_str
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:31,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:32,1
    - Dst: unlink
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:32,1
    - Dst: c_str
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:32,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:33,1
    - Dst: unlink
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:33,1
    - Dst: c_str
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 28
    functionDepth: 7
    functionLinenumber: 28
    functionLinenumberEnd: 34
    functionName: nss_test::SoftokenBuiltinsTest::TearDown
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - unlink
    - NSS_Shutdown
    - GetPath
    - c_str
    linkageType: ''
    returnType: void
    signature: void TearDown()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:38,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:39,1
    - Dst: PK11_InitPin
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:39,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:39,1
    - Dst: SECMOD_AddNewModule
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:40,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 36
    functionDepth: 11
    functionLinenumber: 36
    functionLinenumberEnd: 43
    functionName: nss_test::SoftokenBuiltinsTest::LoadModule
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc
    functionUses: 0
    functionsReached:
    - SECMOD_AddNewModule
    - ASSERT_EQ
    - PK11_InitPin
    - ASSERT_TRUE
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void LoadModule()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LoadModule
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:53,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:55,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:56,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:59,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:61,1
    - Dst: PK11_HasAttributeSet
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:62,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:64,1
    - Dst: PK11_HasAttributeSet
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:65,1
    - Dst: PK11_ReadDistrustAfterAttribute
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:71,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:74,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:75,1
    - Dst: PK11_ReadDistrustAfterAttribute
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:77,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:80,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:81,1
    - Dst: ASSERT_FALSE
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 50
    functionDepth: 4
    functionLinenumber: 50
    functionLinenumberEnd: 84
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc
    functionUses: 0
    functionsReached:
    - LoadModule
    - PK11_HasAttributeSet
    - ASSERT_TRUE
    - PK11_ReadDistrustAfterAttribute
    - CERT_GetDefaultCertDB
    - ASSERT_FALSE
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(SoftokenBuiltinsTest, CheckNoDistrustFields)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LoadModule
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:89,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:91,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:92,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:95,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:102,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:103,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:104,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:105,1
    - Dst: memcmp
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:105,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:109,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:110,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:111,1
    - Dst: memcmp
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:111,1
    - Dst: PK11_ReadDistrustAfterAttribute
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:118,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:121,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:122,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:123,1
    - Dst: PK11_ReadDistrustAfterAttribute
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:125,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:128,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:129,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 86
    functionDepth: 3
    functionLinenumber: 86
    functionLinenumberEnd: 131
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - LoadModule
    - EXPECT_TRUE
    - ASSERT_TRUE
    - PK11_ReadDistrustAfterAttribute
    - CERT_GetDefaultCertDB
    - memcmp
    - EXPECT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(SoftokenBuiltinsTest, CheckOkDistrustFields)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LoadModule
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:136,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:138,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:139,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:142,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:146,1
    - Dst: PK11_HasAttributeSet
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:147,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:151,1
    - Dst: PK11_HasAttributeSet
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:152,1
    - Dst: ASSERT_FALSE
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:154,1
    - Dst: PK11_ReadDistrustAfterAttribute
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:159,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:162,1
    - Dst: PK11_ReadDistrustAfterAttribute
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:164,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 133
    functionDepth: 4
    functionLinenumber: 133
    functionLinenumberEnd: 168
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc
    functionUses: 0
    functionsReached:
    - LoadModule
    - PK11_HasAttributeSet
    - ASSERT_TRUE
    - PK11_ReadDistrustAfterAttribute
    - CERT_GetDefaultCertDB
    - ASSERT_FALSE
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(SoftokenBuiltinsTest, CheckInvalidDistrustFields)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 18
    functionName: nss_test::SoftokenBuiltinsTest::SoftokenBuiltinsTest
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SoftokenBuiltinsTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - prefix
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 19
    functionName: nss_test::SoftokenBuiltinsTest::SoftokenBuiltinsTest
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SoftokenBuiltinsTest(const std::string &prefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::append
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:23,1
    - Dst: GetUTF8Path
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:23,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:24,1
    - Dst: NSS_Initialize
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:24,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 21
    functionDepth: 14
    functionLinenumber: 21
    functionLinenumberEnd: 26
    functionName: nss_test::SoftokenBuiltinsTest::SetUp
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - std::string::append
    - GetUTF8Path
    - NSS_Initialize
    - std::string::c_str
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:29,1
    - Dst: NSS_Shutdown
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:29,1
    - Dst: GetPath
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:30,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:31,1
    - Dst: unlink
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:31,1
    - Dst: c_str
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:31,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:32,1
    - Dst: unlink
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:32,1
    - Dst: c_str
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:32,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:33,1
    - Dst: unlink
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:33,1
    - Dst: c_str
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 28
    functionDepth: 7
    functionLinenumber: 28
    functionLinenumberEnd: 34
    functionName: nss_test::SoftokenBuiltinsTest::TearDown
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - unlink
    - NSS_Shutdown
    - GetPath
    - c_str
    linkageType: ''
    returnType: void
    signature: void TearDown()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:38,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:39,1
    - Dst: PK11_InitPin
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:39,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:39,1
    - Dst: SECMOD_AddNewModule
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:40,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 36
    functionDepth: 11
    functionLinenumber: 36
    functionLinenumberEnd: 43
    functionName: nss_test::SoftokenBuiltinsTest::LoadModule
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc
    functionUses: 0
    functionsReached:
    - SECMOD_AddNewModule
    - ASSERT_EQ
    - PK11_InitPin
    - ASSERT_TRUE
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void LoadModule()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LoadModule
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:53,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:55,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:56,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:59,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:61,1
    - Dst: PK11_HasAttributeSet
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:62,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:64,1
    - Dst: PK11_HasAttributeSet
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:65,1
    - Dst: PK11_ReadDistrustAfterAttribute
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:71,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:74,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:75,1
    - Dst: PK11_ReadDistrustAfterAttribute
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:77,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:80,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:81,1
    - Dst: ASSERT_FALSE
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 50
    functionDepth: 4
    functionLinenumber: 50
    functionLinenumberEnd: 84
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc
    functionUses: 0
    functionsReached:
    - LoadModule
    - PK11_HasAttributeSet
    - ASSERT_TRUE
    - PK11_ReadDistrustAfterAttribute
    - CERT_GetDefaultCertDB
    - ASSERT_FALSE
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(SoftokenBuiltinsTest, CheckNoDistrustFields)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LoadModule
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:89,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:91,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:92,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:95,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:102,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:103,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:104,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:105,1
    - Dst: memcmp
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:105,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:109,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:110,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:111,1
    - Dst: memcmp
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:111,1
    - Dst: PK11_ReadDistrustAfterAttribute
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:118,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:121,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:122,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:123,1
    - Dst: PK11_ReadDistrustAfterAttribute
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:125,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:128,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:129,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 86
    functionDepth: 3
    functionLinenumber: 86
    functionLinenumberEnd: 131
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - LoadModule
    - EXPECT_TRUE
    - ASSERT_TRUE
    - PK11_ReadDistrustAfterAttribute
    - CERT_GetDefaultCertDB
    - memcmp
    - EXPECT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(SoftokenBuiltinsTest, CheckOkDistrustFields)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LoadModule
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:136,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:138,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:139,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:142,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:146,1
    - Dst: PK11_HasAttributeSet
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:147,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:151,1
    - Dst: PK11_HasAttributeSet
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:152,1
    - Dst: ASSERT_FALSE
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:154,1
    - Dst: PK11_ReadDistrustAfterAttribute
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:159,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:162,1
    - Dst: PK11_ReadDistrustAfterAttribute
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:164,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 133
    functionDepth: 4
    functionLinenumber: 133
    functionLinenumberEnd: 168
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_nssckbi_testlib_gtest.cc
    functionUses: 0
    functionsReached:
    - LoadModule
    - PK11_HasAttributeSet
    - ASSERT_TRUE
    - PK11_ReadDistrustAfterAttribute
    - CERT_GetDefaultCertDB
    - ASSERT_FALSE
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(SoftokenBuiltinsTest, CheckInvalidDistrustFields)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: nss_test::SoftokenTest::SoftokenTest
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SoftokenTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - prefix
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: nss_test::SoftokenTest::SoftokenTest
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SoftokenTest(const std::string &prefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::append
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:30,1
    - Dst: GetUTF8Path
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:30,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:31,1
    - Dst: NSS_Initialize
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:31,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 28
    functionDepth: 14
    functionLinenumber: 28
    functionLinenumberEnd: 33
    functionName: nss_test::SoftokenTest::SetUp
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - std::string::append
    - GetUTF8Path
    - NSS_Initialize
    - std::string::c_str
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:36,1
    - Dst: NSS_Shutdown
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:36,1
    - Dst: GetPath
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:37,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:38,1
    - Dst: unlink
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:38,1
    - Dst: c_str
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:38,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:39,1
    - Dst: unlink
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:39,1
    - Dst: c_str
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:39,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:40,1
    - Dst: unlink
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:40,1
    - Dst: c_str
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 35
    functionDepth: 7
    functionLinenumber: 35
    functionLinenumberEnd: 41
    functionName: nss_test::SoftokenTest::TearDown
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - unlink
    - NSS_Shutdown
    - GetPath
    - c_str
    linkageType: ''
    returnType: void
    signature: void TearDown()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:48,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:49,1
    - Dst: PK11_InitPin
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:49,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:49,1
    - Dst: GetPath
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:53,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:56,1
    - Dst: sqlite3_open
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:56,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:56,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:58,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:59,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:62,1
    - Dst: sqlite3_prepare_v2
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:63,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:64,1
    - Dst: sqlite3_step
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:64,1
    - Dst: sqlite3_column_bytes
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:65,1
    - Dst: sqlite3_column_text
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:66,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:68,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:69,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:76,1
    - Dst: memcmp
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:76,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:81,1
    - Dst: memcmp
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:81,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:86,1
    - Dst: memcmp
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:86,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:94,1
    - Dst: memcmp
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:94,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:96,1
    - Dst: sqlite3_finalize
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:96,1
    - Dst: sqlite3_free
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:97,1
    - Dst: sqlite3_close
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 46
    functionDepth: 28
    functionLinenumber: 46
    functionLinenumberEnd: 99
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - sqlite3_open
    - sqlite3_step
    - PK11_InitPin
    - memcmp
    - ASSERT_TRUE
    - sqlite3_column_bytes
    - sqlite3_finalize
    - sqlite3_mprintf
    - std::string::c_str
    - sqlite3_prepare_v2
    - sqlite3_close
    - sqlite3_column_text
    - GetPath
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - sqlite3_free
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(SoftokenTest, CheckDefaultPbkdf2Iterations)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:103,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:104,1
    - Dst: PK11_InitPin
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:104,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:104,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:105,1
    - Dst: PK11_ResetToken
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:105,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:105,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:106,1
    - Dst: PK11_InitPin
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:106,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 101
    functionDepth: 5
    functionLinenumber: 101
    functionLinenumberEnd: 107
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached:
    - PK11_InitPin
    - ASSERT_TRUE
    - PK11_ResetToken
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(SoftokenTest, ResetSoftokenEmptyPassword)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:112,1
    - Dst: PK11_InitPin
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:112,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:112,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:113,1
    - Dst: PK11_ResetToken
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:113,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:113,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:114,1
    - Dst: PK11_InitPin
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:114,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 109
    functionDepth: 5
    functionLinenumber: 109
    functionLinenumberEnd: 115
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached:
    - PK11_InitPin
    - ASSERT_TRUE
    - PK11_ResetToken
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(SoftokenTest, ResetSoftokenNonEmptyPassword)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:165,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:166,1
    - Dst: PK11_InitPin
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:166,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:166,1
    - Dst: PK11_CreateGenericObject
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:167,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:168,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:168,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:169,1
    - Dst: PK11_ReadRawAttribute
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:171,1
    - Dst: ScopedPK11GenericObject::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:171,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:173,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:175,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 163
    functionDepth: 10
    functionLinenumber: 163
    functionLinenumberEnd: 176
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached:
    - ScopedPK11GenericObject::get
    - PK11_InitPin
    - PORT_GetError
    - PR_ARRAY_SIZE
    - ASSERT_TRUE
    - PK11_ReadRawAttribute
    - PK11_CreateGenericObject
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(SoftokenTest, GetInvalidAttribute)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:180,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:181,1
    - Dst: PK11_InitPin
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:181,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:181,1
    - Dst: PK11_CreateGenericObject
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:182,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:183,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:183,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:184,1
    - Dst: PK11_ReadRawAttributes
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:192,1
    - Dst: ScopedPK11GenericObject::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:192,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:193,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:194,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:195,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:196,1
    - Dst: memcmp
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:196,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:198,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:199,1
    - Dst: memcmp
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:199,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:201,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:202,1
    - Dst: memcmp
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:202,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:204,1
    - Dst: PORT_Free
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 178
    functionDepth: 10
    functionLinenumber: 178
    functionLinenumberEnd: 207
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ScopedPK11GenericObject::get
    - PK11_InitPin
    - PORT_Free
    - PR_ARRAY_SIZE
    - ASSERT_TRUE
    - memcmp
    - PK11_ReadRawAttributes
    - PK11_CreateGenericObject
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(SoftokenTest, GetValidAttributes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:211,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:212,1
    - Dst: PK11_InitPin
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:212,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:212,1
    - Dst: PK11_CreateGenericObject
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:213,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:214,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:214,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:215,1
    - Dst: PK11_ReadRawAttributes
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:226,1
    - Dst: ScopedPK11GenericObject::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:226,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:227,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:228,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:229,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:229,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:232,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 209
    functionDepth: 10
    functionLinenumber: 209
    functionLinenumberEnd: 234
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ScopedPK11GenericObject::get
    - PK11_InitPin
    - PORT_GetError
    - PR_ARRAY_SIZE
    - ASSERT_TRUE
    - PK11_ReadRawAttributes
    - PK11_CreateGenericObject
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(SoftokenTest, GetOnlyInvalidAttributes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:238,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:239,1
    - Dst: PK11_InitPin
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:239,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:239,1
    - Dst: PK11_CreateGenericObject
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:240,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:241,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:241,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:242,1
    - Dst: PK11_ReadRawAttributes
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:251,1
    - Dst: ScopedPK11GenericObject::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:251,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:252,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:253,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:254,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:254,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:255,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:256,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:257,1
    - Dst: memcmp
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:257,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:259,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:260,1
    - Dst: memcmp
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 236
    functionDepth: 10
    functionLinenumber: 236
    functionLinenumberEnd: 262
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ScopedPK11GenericObject::get
    - PK11_InitPin
    - PORT_GetError
    - PR_ARRAY_SIZE
    - ASSERT_TRUE
    - memcmp
    - PK11_ReadRawAttributes
    - PK11_CreateGenericObject
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(SoftokenTest, GetAttributesInvalidInterspersed1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:266,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:267,1
    - Dst: PK11_InitPin
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:267,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:267,1
    - Dst: PK11_CreateGenericObject
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:268,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:269,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:269,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:270,1
    - Dst: PK11_ReadRawAttributes
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:279,1
    - Dst: ScopedPK11GenericObject::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:279,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:280,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:281,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:282,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:282,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:283,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:284,1
    - Dst: memcmp
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:284,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:286,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:287,1
    - Dst: memcmp
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:287,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 264
    functionDepth: 10
    functionLinenumber: 264
    functionLinenumberEnd: 290
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ScopedPK11GenericObject::get
    - PK11_InitPin
    - PORT_GetError
    - PR_ARRAY_SIZE
    - ASSERT_TRUE
    - memcmp
    - PK11_ReadRawAttributes
    - PK11_CreateGenericObject
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(SoftokenTest, GetAttributesInvalidInterspersed2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:294,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:295,1
    - Dst: PK11_InitPin
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:295,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:295,1
    - Dst: PK11_CreateGenericObject
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:296,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:297,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:297,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:298,1
    - Dst: PK11_ReadRawAttributes
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:313,1
    - Dst: ScopedPK11GenericObject::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:313,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:314,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:315,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:316,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:316,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:318,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:319,1
    - Dst: memcmp
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:319,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:321,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:322,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:323,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:324,1
    - Dst: memcmp
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:324,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:326,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:327,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:328,1
    - Dst: memcmp
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 292
    functionDepth: 10
    functionLinenumber: 292
    functionLinenumberEnd: 330
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ScopedPK11GenericObject::get
    - PK11_InitPin
    - PORT_GetError
    - PR_ARRAY_SIZE
    - ASSERT_TRUE
    - memcmp
    - PK11_ReadRawAttributes
    - PK11_CreateGenericObject
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(SoftokenTest, GetAttributesInvalidInterspersed3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:334,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:335,1
    - Dst: PK11_InitPin
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:335,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:335,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:336,1
    - Dst: PK11_Logout
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:336,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:336,1
    - Dst: PK11_CreateGenericObject
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:337,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:338,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:338,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 332
    functionDepth: 6
    functionLinenumber: 332
    functionLinenumberEnd: 340
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached:
    - PK11_Logout
    - PK11_InitPin
    - PR_ARRAY_SIZE
    - ASSERT_TRUE
    - PK11_CreateGenericObject
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(SoftokenTest, CreateObjectNonEmptyPassword)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:344,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:345,1
    - Dst: PK11_InitPin
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:345,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:345,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:346,1
    - Dst: PK11_ChangePW
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:346,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:346,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:347,1
    - Dst: PK11_Logout
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:347,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:347,1
    - Dst: PK11_CreateGenericObject
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:348,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:349,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:349,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 342
    functionDepth: 6
    functionLinenumber: 342
    functionLinenumberEnd: 351
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached:
    - PK11_Logout
    - PK11_InitPin
    - PR_ARRAY_SIZE
    - ASSERT_TRUE
    - PK11_CreateGenericObject
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - PK11_ChangePW
    linkageType: ''
    returnType: void
    signature: void TEST_F(SoftokenTest, CreateObjectChangePassword)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:356,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:357,1
    - Dst: PK11_InitPin
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:357,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:357,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:358,1
    - Dst: PK11_ChangePW
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:360,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:360,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:368,1
    - Dst: PK11_Logout
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:368,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:368,1
    - Dst: PK11_CreateGenericObject
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:369,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:370,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:370,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 354
    functionDepth: 6
    functionLinenumber: 354
    functionLinenumberEnd: 372
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached:
    - PK11_Logout
    - PK11_InitPin
    - PR_ARRAY_SIZE
    - ASSERT_TRUE
    - PK11_CreateGenericObject
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - PK11_ChangePW
    linkageType: ''
    returnType: void
    signature: void TEST_F(SoftokenTest, CreateObjectChangeToBigPassword)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:376,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:377,1
    - Dst: PK11_InitPin
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:377,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:377,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:378,1
    - Dst: PK11_ChangePW
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:378,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:378,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:381,1
    - Dst: PK11_Logout
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:381,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:381,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:382,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:382,1
    - Dst: PK11_CreateGenericObject
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:383,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:384,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:384,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 374
    functionDepth: 6
    functionLinenumber: 374
    functionLinenumberEnd: 388
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NE
    - PK11_Logout
    - PK11_InitPin
    - PORT_GetError
    - PR_ARRAY_SIZE
    - ASSERT_TRUE
    - PK11_CreateGenericObject
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - PK11_ChangePW
    linkageType: ''
    returnType: void
    signature: void TEST_F(SoftokenTest, CreateObjectChangeToEmptyPassword)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetPath
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:398,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:405,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:407,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:409,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:411,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:414,1
    - Dst: NSS_IsInitialized
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:414,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:415,1
    - Dst: NSS_Shutdown
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:415,1
    - Dst: getline
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:418,1
    - Dst: std::ifstream::close
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:423,1
    - Dst: std::ofstream::close
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:424,1
    - Dst: std::ofstream::close
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:425,1
    - Dst: std::ofstream::close
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:426,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:429,1
    - Dst: remove
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:429,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:429,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:430,1
    - Dst: rename
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:430,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:430,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:430,1
    - Dst: std::string::append
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:434,1
    - Dst: GetUTF8Path
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:434,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:435,1
    - Dst: NSS_Initialize
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:435,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:435,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:437,1
    - Dst: NSS_IsInitialized
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:437,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:438,1
    - Dst: NSS_Shutdown
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:438,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:441,1
    - Dst: remove
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:441,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:441,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:442,1
    - Dst: rename
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:442,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:442,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:442,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:445,1
    - Dst: NSS_Initialize
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:445,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:445,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:447,1
    - Dst: NSS_IsInitialized
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:447,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:448,1
    - Dst: NSS_Shutdown
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:448,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:451,1
    - Dst: remove
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:451,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:451,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:452,1
    - Dst: rename
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:452,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:452,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:452,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:455,1
    - Dst: NSS_Initialize
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:455,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:455,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:457,1
    - Dst: NSS_IsInitialized
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:457,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 397
    functionDepth: 14
    functionLinenumber: 397
    functionLinenumberEnd: 458
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - std::string::append
    - GetUTF8Path
    - rename
    - ASSERT_TRUE
    - getline
    - NSS_Initialize
    - remove
    - NSS_Shutdown
    - std::ofstream::close
    - std::ifstream::close
    - std::string::c_str
    - GetPath
    - NSS_IsInitialized
    linkageType: ''
    returnType: void
    signature: void TEST_F(SoftokenTest, CreateObjectReadBreakLine)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 467
    functionName: nss_test::SoftokenNonAsciiTest::SoftokenNonAsciiTest
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SoftokenNonAsciiTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:472,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:473,1
    - Dst: PK11_InitPin
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:473,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:473,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:474,1
    - Dst: PK11_ResetToken
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:474,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:474,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:475,1
    - Dst: PK11_InitPin
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:475,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 470
    functionDepth: 5
    functionLinenumber: 470
    functionLinenumberEnd: 476
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached:
    - PK11_InitPin
    - ASSERT_TRUE
    - PK11_ResetToken
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(SoftokenNonAsciiTest, NonAsciiPathWorking)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:534,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:536,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:538,1
    - Dst: PK11_InitPin
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:539,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:539,1
    - Dst: CERT_NewTempCertificate
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:542,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:543,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:544,1
    - Dst: PK11_ImportCert
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:546,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:546,1
    - Dst: ScopedCERTCertificate::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:546,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:547,1
    - Dst: CERT_ChangeCertTrust
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:552,1
    - Dst: ScopedCERTCertificate::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:552,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:553,1
    - Dst: PK11_ChangePW
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:558,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:558,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:560,1
    - Dst: PK11_FindCertFromDERCertItem
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:563,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:563,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:564,1
    - Dst: ScopedCERTCertificate::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:564,1
    - Dst: CERT_GetCertTrust
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:567,1
    - Dst: ScopedCERTCertificate::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:567,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:568,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:569,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:570,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 533
    functionDepth: 9
    functionLinenumber: 533
    functionLinenumberEnd: 572
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached:
    - PK11_ImportCert
    - CERT_NewTempCertificate
    - CERT_ChangeCertTrust
    - PK11_InitPin
    - EXPECT_TRUE
    - ScopedCERTCertificate::get
    - ASSERT_TRUE
    - CERT_GetDefaultCertDB
    - GetParam
    - CERT_GetCertTrust
    - PK11_FindCertFromDERCertItem
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - PK11_ChangePW
    linkageType: ''
    returnType: void
    signature: void TEST_P(SoftokenPasswordChangeTest, KeepTrustAfterPasswordChange)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:587,1
    - Dst: NSS_NoDB_Init
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:587,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:589,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:590,1
    - Dst: PK11_NeedUserInit
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:590,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:590,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:594,1
    - Dst: NSS_Shutdown
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 586
    functionDepth: 14
    functionLinenumber: 586
    functionLinenumberEnd: 595
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - NSS_NoDB_Init
    - PK11_NeedUserInit
    - ASSERT_TRUE
    - NSS_Shutdown
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(SoftokenNoDBTest, NeedUserInitNoDB)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:604,1
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:610,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:610,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:612,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:615,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:615,1
    - Dst: PORT_ErrorToName
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:616,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:616,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:617,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:618,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:621,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:626,1
    - Dst: PK11_WriteRawAttribute
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:626,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:627,1
    - Dst: PORT_ErrorToString
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:630,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:630,1
    - Dst: SECKEY_CopyPublicKey
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:639,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:639,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:640,1
    - Dst: ScopedSECKEYPublicKey::reset
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:645,1
    - Dst: nss_test::TlsConnectTestBase::now
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:650,1
    - Dst: PK11_PubDerive
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:651,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:652,1
    - Dst: nss_test::TlsConnectTestBase::now
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:654,1
    - Dst: PORT_ErrorToString
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:657,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:657,1
    - Dst: duration_cast<microseconds>
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:661,1
    - Dst: auto::count
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:662,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 4
    argNames:
    - params
    - pub_key_value
    - genFailOK
    - time
    argTypes:
    - PQGParams*
    - SECItem*
    - PRBool
    - time_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 597
    functionDepth: 10
    functionLinenumber: 597
    functionLinenumberEnd: 665
    functionName: nss_test::test_dh_value
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NE
    - PORT_ErrorToString
    - SECKEY_CopyPublicKey
    - auto::count
    - PK11_WriteRawAttribute
    - EXPECT_TRUE
    - PK11_GenerateKeyPair
    - ScopedSECKEYPublicKey::get
    - PORT_GetError
    - ScopedSECKEYPublicKey::reset
    - PORT_ErrorToName
    - duration_cast<microseconds>
    - nss_test::TlsConnectTestBase::now
    - PK11_PubDerive
    - ScopedSECKEYPrivateKey::get
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus test_dh_value(const PQGParams *params, const SECItem *pub_key_value,\n
      \                       PRBool genFailOK, time_t *time)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 669
    functionName: nss_test::SoftokenDhTest::SoftokenDhTest
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SoftokenDhTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::SoftokenTest::SetUp
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:675,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:679,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:690,1
    - Dst: test_dh_value
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:690,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 674
    functionDepth: 15
    functionLinenumber: 674
    functionLinenumberEnd: 694
    functionName: nss_test::SoftokenDhTest::SetUp
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - nss_test::SoftokenTest::SetUp
    - ASSERT_TRUE
    - test_dh_value
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - param_type
    argTypes:
    - DhParamType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 697
    functionDepth: 0
    functionLinenumber: 697
    functionLinenumberEnd: 717
    functionName: nss_test::param_value
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *param_value(DhParamType param_type)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - key_class
    argTypes:
    - DhKeyClass
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 719
    functionDepth: 0
    functionLinenumber: 719
    functionLinenumberEnd: 737
    functionName: nss_test::key_value
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *key_value(DhKeyClass key_class)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:746,1
    - Dst: nss_test::param_value
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:758,1
    - Dst: nss_test::key_value
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:759,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:760,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:762,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:764,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:767,1
    - Dst: nss_test::test_dh_value
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:769,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:776,1
    - Dst: EXPECT_LE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:778,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:783,1
    - Dst: EXPECT_GT
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:785,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:790,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 745
    functionDepth: 11
    functionLinenumber: 745
    functionLinenumberEnd: 793
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached:
    - nss_test::param_value
    - DataBuffer
    - EXPECT_GT
    - nss_test::test_dh_value
    - EXPECT_LE
    - GetParam
    - nss_test::key_value
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(SoftokenDhValidate, DhVectors)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 802
    functionDepth: 0
    functionLinenumber: 802
    functionLinenumberEnd: 802
    functionName: nss_test::SoftokenFipsTest::SoftokenFipsTest
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SoftokenFipsTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - prefix
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 803
    functionDepth: 0
    functionLinenumber: 803
    functionLinenumberEnd: 803
    functionName: nss_test::SoftokenFipsTest::SoftokenFipsTest
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SoftokenFipsTest(const std::string &prefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::SoftokenTest::SetUp
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:806,1
    - Dst: ASSERT_FALSE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:810,1
    - Dst: PK11_IsFIPS
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:810,1
    - Dst: PR_smprintf
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:811,1
    - Dst: SECMOD_GetInternalModule
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:811,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:812,1
    - Dst: SECMOD_DeleteInternalModule
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:812,1
    - Dst: PORT_ErrorToName
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:813,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:813,1
    - Dst: PR_smprintf_free
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:814,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:815,1
    - Dst: PK11_IsFIPS
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 805
    functionDepth: 15
    functionLinenumber: 805
    functionLinenumberEnd: 816
    functionName: nss_test::SoftokenFipsTest::SetUp
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - SECMOD_DeleteInternalModule
    - nss_test::SoftokenTest::SetUp
    - PORT_GetError
    - PORT_ErrorToName
    - ASSERT_TRUE
    - PK11_IsFIPS
    - PR_smprintf_free
    - PR_smprintf
    - ASSERT_FALSE
    - SECMOD_GetInternalModule
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 821
    functionDepth: 0
    functionLinenumber: 821
    functionLinenumberEnd: 821
    functionName: nss_test::SoftokenFipsDhTest::SoftokenFipsDhTest
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SoftokenFipsDhTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::SoftokenFipsTest::SetUp
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:827,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:830,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:832,1
    - Dst: PK11_InitPin
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:832,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:832,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:833,1
    - Dst: PK11_Authenticate
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:833,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:833,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:845,1
    - Dst: test_dh_value
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:845,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 826
    functionDepth: 16
    functionLinenumber: 826
    functionLinenumberEnd: 849
    functionName: nss_test::SoftokenFipsDhTest::SetUp
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - test_dh_value
    - PK11_InitPin
    - nss_test::SoftokenFipsTest::SetUp
    - ASSERT_TRUE
    - ScopedPK11SlotInfo::get
    - PK11_Authenticate
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:885,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:887,1
    - Dst: std::vector::begin
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:889,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:891,1
    - Dst: PK11_InitPin
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:891,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:891,1
    - Dst: c_str
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:891,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:892,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:893,1
    - Dst: PK11_ChangePW
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:894,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:894,1
    - Dst: c_str
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:894,1
    - Dst: c_str
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:894,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 884
    functionDepth: 5
    functionLinenumber: 884
    functionLinenumberEnd: 896
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached:
    - PK11_InitPin
    - ASSERT_TRUE
    - std::vector::end
    - std::vector::begin
    - GetParam
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - c_str
    - PK11_ChangePW
    linkageType: ''
    returnType: void
    signature: void TEST_P(SoftokenFipsPasswordTest, SetPassword)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:899,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:901,1
    - Dst: std::vector::begin
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:903,1
    - Dst: PK11_InitPin
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:905,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:905,1
    - Dst: c_str
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:905,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:906,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:907,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:909,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:910,1
    - Dst: PK11_ChangePW
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:911,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:911,1
    - Dst: c_str
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:911,1
    - Dst: c_str
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:911,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:912,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:913,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:915,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 898
    functionDepth: 5
    functionLinenumber: 898
    functionLinenumberEnd: 917
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached:
    - PK11_InitPin
    - ASSERT_TRUE
    - std::vector::end
    - std::vector::begin
    - GetParam
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - c_str
    - PK11_ChangePW
    linkageType: ''
    returnType: void
    signature: void TEST_P(SoftokenFipsBadPasswordTest, SetBadPassword)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:926,1
    - Dst: nss_test::param_value
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:938,1
    - Dst: nss_test::key_value
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:939,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:940,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:942,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:944,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:947,1
    - Dst: nss_test::test_dh_value
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:954,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:959,1
    - Dst: EXPECT_LE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:961,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:970,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 925
    functionDepth: 11
    functionLinenumber: 925
    functionLinenumberEnd: 973
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached:
    - nss_test::param_value
    - DataBuffer
    - nss_test::test_dh_value
    - EXPECT_LE
    - GetParam
    - nss_test::key_value
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(SoftokenFipsDhValidate, DhVectors)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: nss_test::SoftokenTest::SoftokenTest
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SoftokenTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - prefix
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: nss_test::SoftokenTest::SoftokenTest
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SoftokenTest(const std::string &prefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::append
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:30,1
    - Dst: GetUTF8Path
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:30,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:31,1
    - Dst: NSS_Initialize
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:31,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 28
    functionDepth: 14
    functionLinenumber: 28
    functionLinenumberEnd: 33
    functionName: nss_test::SoftokenTest::SetUp
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 2
    functionsReached:
    - ASSERT_EQ
    - std::string::append
    - GetUTF8Path
    - NSS_Initialize
    - std::string::c_str
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:36,1
    - Dst: NSS_Shutdown
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:36,1
    - Dst: GetPath
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:37,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:38,1
    - Dst: unlink
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:38,1
    - Dst: c_str
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:38,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:39,1
    - Dst: unlink
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:39,1
    - Dst: c_str
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:39,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:40,1
    - Dst: unlink
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:40,1
    - Dst: c_str
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 35
    functionDepth: 7
    functionLinenumber: 35
    functionLinenumberEnd: 41
    functionName: nss_test::SoftokenTest::TearDown
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - unlink
    - NSS_Shutdown
    - GetPath
    - c_str
    linkageType: ''
    returnType: void
    signature: void TearDown()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:48,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:49,1
    - Dst: PK11_InitPin
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:49,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:49,1
    - Dst: GetPath
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:53,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:56,1
    - Dst: sqlite3_open
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:56,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:56,1
    - Dst: sqlite3_mprintf
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:58,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:59,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:62,1
    - Dst: sqlite3_prepare_v2
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:63,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:64,1
    - Dst: sqlite3_step
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:64,1
    - Dst: sqlite3_column_bytes
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:65,1
    - Dst: sqlite3_column_text
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:66,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:68,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:69,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:76,1
    - Dst: memcmp
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:76,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:81,1
    - Dst: memcmp
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:81,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:86,1
    - Dst: memcmp
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:86,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:94,1
    - Dst: memcmp
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:94,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:96,1
    - Dst: sqlite3_finalize
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:96,1
    - Dst: sqlite3_free
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:97,1
    - Dst: sqlite3_close
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 46
    functionDepth: 28
    functionLinenumber: 46
    functionLinenumberEnd: 99
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - sqlite3_open
    - sqlite3_step
    - PK11_InitPin
    - memcmp
    - ASSERT_TRUE
    - sqlite3_column_bytes
    - sqlite3_finalize
    - sqlite3_mprintf
    - std::string::c_str
    - sqlite3_prepare_v2
    - sqlite3_close
    - sqlite3_column_text
    - GetPath
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - sqlite3_free
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(SoftokenTest, CheckDefaultPbkdf2Iterations)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:103,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:104,1
    - Dst: PK11_InitPin
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:104,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:104,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:105,1
    - Dst: PK11_ResetToken
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:105,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:105,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:106,1
    - Dst: PK11_InitPin
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:106,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 101
    functionDepth: 5
    functionLinenumber: 101
    functionLinenumberEnd: 107
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached:
    - PK11_InitPin
    - ASSERT_TRUE
    - PK11_ResetToken
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(SoftokenTest, ResetSoftokenEmptyPassword)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:112,1
    - Dst: PK11_InitPin
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:112,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:112,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:113,1
    - Dst: PK11_ResetToken
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:113,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:113,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:114,1
    - Dst: PK11_InitPin
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:114,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 109
    functionDepth: 5
    functionLinenumber: 109
    functionLinenumberEnd: 115
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached:
    - PK11_InitPin
    - ASSERT_TRUE
    - PK11_ResetToken
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(SoftokenTest, ResetSoftokenNonEmptyPassword)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:165,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:166,1
    - Dst: PK11_InitPin
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:166,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:166,1
    - Dst: PK11_CreateGenericObject
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:167,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:168,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:168,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:169,1
    - Dst: PK11_ReadRawAttribute
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:171,1
    - Dst: ScopedPK11GenericObject::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:171,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:173,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:175,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 163
    functionDepth: 10
    functionLinenumber: 163
    functionLinenumberEnd: 176
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached:
    - ScopedPK11GenericObject::get
    - PK11_InitPin
    - PORT_GetError
    - PR_ARRAY_SIZE
    - ASSERT_TRUE
    - PK11_ReadRawAttribute
    - PK11_CreateGenericObject
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(SoftokenTest, GetInvalidAttribute)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:180,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:181,1
    - Dst: PK11_InitPin
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:181,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:181,1
    - Dst: PK11_CreateGenericObject
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:182,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:183,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:183,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:184,1
    - Dst: PK11_ReadRawAttributes
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:192,1
    - Dst: ScopedPK11GenericObject::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:192,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:193,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:194,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:195,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:196,1
    - Dst: memcmp
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:196,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:198,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:199,1
    - Dst: memcmp
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:199,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:201,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:202,1
    - Dst: memcmp
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:202,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:204,1
    - Dst: PORT_Free
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 178
    functionDepth: 10
    functionLinenumber: 178
    functionLinenumberEnd: 207
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ScopedPK11GenericObject::get
    - PK11_InitPin
    - PORT_Free
    - PR_ARRAY_SIZE
    - ASSERT_TRUE
    - memcmp
    - PK11_ReadRawAttributes
    - PK11_CreateGenericObject
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(SoftokenTest, GetValidAttributes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:211,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:212,1
    - Dst: PK11_InitPin
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:212,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:212,1
    - Dst: PK11_CreateGenericObject
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:213,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:214,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:214,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:215,1
    - Dst: PK11_ReadRawAttributes
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:226,1
    - Dst: ScopedPK11GenericObject::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:226,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:227,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:228,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:229,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:229,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:232,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 209
    functionDepth: 10
    functionLinenumber: 209
    functionLinenumberEnd: 234
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ScopedPK11GenericObject::get
    - PK11_InitPin
    - PORT_GetError
    - PR_ARRAY_SIZE
    - ASSERT_TRUE
    - PK11_ReadRawAttributes
    - PK11_CreateGenericObject
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(SoftokenTest, GetOnlyInvalidAttributes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:238,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:239,1
    - Dst: PK11_InitPin
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:239,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:239,1
    - Dst: PK11_CreateGenericObject
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:240,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:241,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:241,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:242,1
    - Dst: PK11_ReadRawAttributes
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:251,1
    - Dst: ScopedPK11GenericObject::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:251,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:252,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:253,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:254,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:254,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:255,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:256,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:257,1
    - Dst: memcmp
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:257,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:259,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:260,1
    - Dst: memcmp
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 236
    functionDepth: 10
    functionLinenumber: 236
    functionLinenumberEnd: 262
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ScopedPK11GenericObject::get
    - PK11_InitPin
    - PORT_GetError
    - PR_ARRAY_SIZE
    - ASSERT_TRUE
    - memcmp
    - PK11_ReadRawAttributes
    - PK11_CreateGenericObject
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(SoftokenTest, GetAttributesInvalidInterspersed1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:266,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:267,1
    - Dst: PK11_InitPin
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:267,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:267,1
    - Dst: PK11_CreateGenericObject
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:268,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:269,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:269,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:270,1
    - Dst: PK11_ReadRawAttributes
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:279,1
    - Dst: ScopedPK11GenericObject::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:279,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:280,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:281,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:282,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:282,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:283,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:284,1
    - Dst: memcmp
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:284,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:286,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:287,1
    - Dst: memcmp
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:287,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 264
    functionDepth: 10
    functionLinenumber: 264
    functionLinenumberEnd: 290
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ScopedPK11GenericObject::get
    - PK11_InitPin
    - PORT_GetError
    - PR_ARRAY_SIZE
    - ASSERT_TRUE
    - memcmp
    - PK11_ReadRawAttributes
    - PK11_CreateGenericObject
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(SoftokenTest, GetAttributesInvalidInterspersed2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:294,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:295,1
    - Dst: PK11_InitPin
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:295,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:295,1
    - Dst: PK11_CreateGenericObject
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:296,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:297,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:297,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:298,1
    - Dst: PK11_ReadRawAttributes
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:313,1
    - Dst: ScopedPK11GenericObject::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:313,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:314,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:315,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:316,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:316,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:318,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:319,1
    - Dst: memcmp
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:319,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:321,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:322,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:323,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:324,1
    - Dst: memcmp
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:324,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:326,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:327,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:328,1
    - Dst: memcmp
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 292
    functionDepth: 10
    functionLinenumber: 292
    functionLinenumberEnd: 330
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ScopedPK11GenericObject::get
    - PK11_InitPin
    - PORT_GetError
    - PR_ARRAY_SIZE
    - ASSERT_TRUE
    - memcmp
    - PK11_ReadRawAttributes
    - PK11_CreateGenericObject
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: void TEST_F(SoftokenTest, GetAttributesInvalidInterspersed3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:334,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:335,1
    - Dst: PK11_InitPin
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:335,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:335,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:336,1
    - Dst: PK11_Logout
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:336,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:336,1
    - Dst: PK11_CreateGenericObject
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:337,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:338,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:338,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 332
    functionDepth: 6
    functionLinenumber: 332
    functionLinenumberEnd: 340
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached:
    - PK11_Logout
    - PK11_InitPin
    - PR_ARRAY_SIZE
    - ASSERT_TRUE
    - PK11_CreateGenericObject
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(SoftokenTest, CreateObjectNonEmptyPassword)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:344,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:345,1
    - Dst: PK11_InitPin
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:345,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:345,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:346,1
    - Dst: PK11_ChangePW
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:346,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:346,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:347,1
    - Dst: PK11_Logout
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:347,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:347,1
    - Dst: PK11_CreateGenericObject
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:348,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:349,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:349,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 342
    functionDepth: 6
    functionLinenumber: 342
    functionLinenumberEnd: 351
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached:
    - PK11_Logout
    - PK11_InitPin
    - PR_ARRAY_SIZE
    - ASSERT_TRUE
    - PK11_CreateGenericObject
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - PK11_ChangePW
    linkageType: ''
    returnType: void
    signature: void TEST_F(SoftokenTest, CreateObjectChangePassword)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:356,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:357,1
    - Dst: PK11_InitPin
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:357,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:357,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:358,1
    - Dst: PK11_ChangePW
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:360,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:360,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:368,1
    - Dst: PK11_Logout
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:368,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:368,1
    - Dst: PK11_CreateGenericObject
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:369,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:370,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:370,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 354
    functionDepth: 6
    functionLinenumber: 354
    functionLinenumberEnd: 372
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached:
    - PK11_Logout
    - PK11_InitPin
    - PR_ARRAY_SIZE
    - ASSERT_TRUE
    - PK11_CreateGenericObject
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - PK11_ChangePW
    linkageType: ''
    returnType: void
    signature: void TEST_F(SoftokenTest, CreateObjectChangeToBigPassword)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:376,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:377,1
    - Dst: PK11_InitPin
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:377,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:377,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:378,1
    - Dst: PK11_ChangePW
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:378,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:378,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:381,1
    - Dst: PK11_Logout
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:381,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:381,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:382,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:382,1
    - Dst: PK11_CreateGenericObject
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:383,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:384,1
    - Dst: PR_ARRAY_SIZE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:384,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 374
    functionDepth: 6
    functionLinenumber: 374
    functionLinenumberEnd: 388
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NE
    - PK11_Logout
    - PK11_InitPin
    - PORT_GetError
    - PR_ARRAY_SIZE
    - ASSERT_TRUE
    - PK11_CreateGenericObject
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - PK11_ChangePW
    linkageType: ''
    returnType: void
    signature: void TEST_F(SoftokenTest, CreateObjectChangeToEmptyPassword)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetPath
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:398,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:405,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:407,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:409,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:411,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:414,1
    - Dst: NSS_IsInitialized
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:414,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:415,1
    - Dst: NSS_Shutdown
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:415,1
    - Dst: getline
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:418,1
    - Dst: std::ifstream::close
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:423,1
    - Dst: std::ofstream::close
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:424,1
    - Dst: std::ofstream::close
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:425,1
    - Dst: std::ofstream::close
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:426,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:429,1
    - Dst: remove
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:429,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:429,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:430,1
    - Dst: rename
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:430,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:430,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:430,1
    - Dst: std::string::append
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:434,1
    - Dst: GetUTF8Path
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:434,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:435,1
    - Dst: NSS_Initialize
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:435,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:435,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:437,1
    - Dst: NSS_IsInitialized
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:437,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:438,1
    - Dst: NSS_Shutdown
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:438,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:441,1
    - Dst: remove
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:441,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:441,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:442,1
    - Dst: rename
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:442,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:442,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:442,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:445,1
    - Dst: NSS_Initialize
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:445,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:445,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:447,1
    - Dst: NSS_IsInitialized
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:447,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:448,1
    - Dst: NSS_Shutdown
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:448,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:451,1
    - Dst: remove
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:451,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:451,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:452,1
    - Dst: rename
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:452,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:452,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:452,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:455,1
    - Dst: NSS_Initialize
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:455,1
    - Dst: std::string::c_str
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:455,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:457,1
    - Dst: NSS_IsInitialized
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:457,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 397
    functionDepth: 14
    functionLinenumber: 397
    functionLinenumberEnd: 458
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - std::string::append
    - GetUTF8Path
    - rename
    - ASSERT_TRUE
    - getline
    - NSS_Initialize
    - remove
    - NSS_Shutdown
    - std::ofstream::close
    - std::ifstream::close
    - std::string::c_str
    - GetPath
    - NSS_IsInitialized
    linkageType: ''
    returnType: void
    signature: void TEST_F(SoftokenTest, CreateObjectReadBreakLine)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 467
    functionName: nss_test::SoftokenNonAsciiTest::SoftokenNonAsciiTest
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SoftokenNonAsciiTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:472,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:473,1
    - Dst: PK11_InitPin
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:473,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:473,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:474,1
    - Dst: PK11_ResetToken
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:474,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:474,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:475,1
    - Dst: PK11_InitPin
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:475,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 470
    functionDepth: 5
    functionLinenumber: 470
    functionLinenumberEnd: 476
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached:
    - PK11_InitPin
    - ASSERT_TRUE
    - PK11_ResetToken
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(SoftokenNonAsciiTest, NonAsciiPathWorking)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:534,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:536,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:538,1
    - Dst: PK11_InitPin
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:539,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:539,1
    - Dst: CERT_NewTempCertificate
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:542,1
    - Dst: CERT_GetDefaultCertDB
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:543,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:544,1
    - Dst: PK11_ImportCert
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:546,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:546,1
    - Dst: ScopedCERTCertificate::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:546,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:547,1
    - Dst: CERT_ChangeCertTrust
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:552,1
    - Dst: ScopedCERTCertificate::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:552,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:553,1
    - Dst: PK11_ChangePW
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:558,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:558,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:560,1
    - Dst: PK11_FindCertFromDERCertItem
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:563,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:563,1
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:564,1
    - Dst: ScopedCERTCertificate::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:564,1
    - Dst: CERT_GetCertTrust
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:567,1
    - Dst: ScopedCERTCertificate::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:567,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:568,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:569,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:570,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 533
    functionDepth: 9
    functionLinenumber: 533
    functionLinenumberEnd: 572
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached:
    - PK11_ImportCert
    - CERT_NewTempCertificate
    - CERT_ChangeCertTrust
    - PK11_InitPin
    - EXPECT_TRUE
    - ScopedCERTCertificate::get
    - ASSERT_TRUE
    - CERT_GetDefaultCertDB
    - GetParam
    - CERT_GetCertTrust
    - PK11_FindCertFromDERCertItem
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - PK11_ChangePW
    linkageType: ''
    returnType: void
    signature: void TEST_P(SoftokenPasswordChangeTest, KeepTrustAfterPasswordChange)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:587,1
    - Dst: NSS_NoDB_Init
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:587,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:589,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:590,1
    - Dst: PK11_NeedUserInit
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:590,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:590,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:594,1
    - Dst: NSS_Shutdown
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 586
    functionDepth: 14
    functionLinenumber: 586
    functionLinenumberEnd: 595
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - NSS_NoDB_Init
    - PK11_NeedUserInit
    - ASSERT_TRUE
    - NSS_Shutdown
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(SoftokenNoDBTest, NeedUserInitNoDB)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:604,1
    - Dst: PK11_GenerateKeyPair
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:610,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:610,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:612,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:615,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:615,1
    - Dst: PORT_ErrorToName
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:616,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:616,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:617,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:618,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:621,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:626,1
    - Dst: PK11_WriteRawAttribute
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:626,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:627,1
    - Dst: PORT_ErrorToString
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:630,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:630,1
    - Dst: SECKEY_CopyPublicKey
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:639,1
    - Dst: ScopedSECKEYPublicKey::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:639,1
    - Dst: EXPECT_NE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:640,1
    - Dst: ScopedSECKEYPublicKey::reset
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:645,1
    - Dst: nss_test::TlsConnectTestBase::now
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:650,1
    - Dst: PK11_PubDerive
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:651,1
    - Dst: ScopedSECKEYPrivateKey::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:652,1
    - Dst: nss_test::TlsConnectTestBase::now
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:654,1
    - Dst: PORT_ErrorToString
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:657,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:657,1
    - Dst: duration_cast<microseconds>
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:661,1
    - Dst: auto::count
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:662,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 4
    argNames:
    - params
    - pub_key_value
    - genFailOK
    - time
    argTypes:
    - PQGParams*
    - SECItem*
    - PRBool
    - time_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 597
    functionDepth: 10
    functionLinenumber: 597
    functionLinenumberEnd: 665
    functionName: nss_test::test_dh_value
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 2
    functionsReached:
    - EXPECT_NE
    - PORT_ErrorToString
    - SECKEY_CopyPublicKey
    - auto::count
    - PK11_WriteRawAttribute
    - EXPECT_TRUE
    - PK11_GenerateKeyPair
    - ScopedSECKEYPublicKey::get
    - PORT_GetError
    - ScopedSECKEYPublicKey::reset
    - PORT_ErrorToName
    - duration_cast<microseconds>
    - nss_test::TlsConnectTestBase::now
    - PK11_PubDerive
    - ScopedSECKEYPrivateKey::get
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    linkageType: ''
    returnType: SECStatus
    signature: "SECStatus test_dh_value(const PQGParams *params, const SECItem *pub_key_value,\n
      \                       PRBool genFailOK, time_t *time)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 669
    functionName: nss_test::SoftokenDhTest::SoftokenDhTest
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SoftokenDhTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::SoftokenTest::SetUp
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:675,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:679,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:690,1
    - Dst: test_dh_value
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:690,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 674
    functionDepth: 15
    functionLinenumber: 674
    functionLinenumberEnd: 694
    functionName: nss_test::SoftokenDhTest::SetUp
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - nss_test::SoftokenTest::SetUp
    - ASSERT_TRUE
    - test_dh_value
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - param_type
    argTypes:
    - DhParamType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 697
    functionDepth: 0
    functionLinenumber: 697
    functionLinenumberEnd: 717
    functionName: nss_test::param_value
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *param_value(DhParamType param_type)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - key_class
    argTypes:
    - DhKeyClass
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 719
    functionDepth: 0
    functionLinenumber: 719
    functionLinenumberEnd: 737
    functionName: nss_test::key_value
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *key_value(DhKeyClass key_class)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:746,1
    - Dst: nss_test::param_value
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:758,1
    - Dst: nss_test::key_value
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:759,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:760,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:762,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:764,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:767,1
    - Dst: nss_test::test_dh_value
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:769,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:776,1
    - Dst: EXPECT_LE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:778,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:783,1
    - Dst: EXPECT_GT
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:785,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:790,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 745
    functionDepth: 11
    functionLinenumber: 745
    functionLinenumberEnd: 793
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached:
    - nss_test::param_value
    - DataBuffer
    - EXPECT_GT
    - nss_test::test_dh_value
    - EXPECT_LE
    - GetParam
    - nss_test::key_value
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(SoftokenDhValidate, DhVectors)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 802
    functionDepth: 0
    functionLinenumber: 802
    functionLinenumberEnd: 802
    functionName: nss_test::SoftokenFipsTest::SoftokenFipsTest
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SoftokenFipsTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - prefix
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 803
    functionDepth: 0
    functionLinenumber: 803
    functionLinenumberEnd: 803
    functionName: nss_test::SoftokenFipsTest::SoftokenFipsTest
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SoftokenFipsTest(const std::string &prefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::SoftokenTest::SetUp
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:806,1
    - Dst: ASSERT_FALSE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:810,1
    - Dst: PK11_IsFIPS
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:810,1
    - Dst: PR_smprintf
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:811,1
    - Dst: SECMOD_GetInternalModule
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:811,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:812,1
    - Dst: SECMOD_DeleteInternalModule
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:812,1
    - Dst: PORT_ErrorToName
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:813,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:813,1
    - Dst: PR_smprintf_free
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:814,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:815,1
    - Dst: PK11_IsFIPS
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 805
    functionDepth: 15
    functionLinenumber: 805
    functionLinenumberEnd: 816
    functionName: nss_test::SoftokenFipsTest::SetUp
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 1
    functionsReached:
    - ASSERT_EQ
    - SECMOD_DeleteInternalModule
    - nss_test::SoftokenTest::SetUp
    - PORT_GetError
    - PORT_ErrorToName
    - ASSERT_TRUE
    - PK11_IsFIPS
    - PR_smprintf_free
    - PR_smprintf
    - ASSERT_FALSE
    - SECMOD_GetInternalModule
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 821
    functionDepth: 0
    functionLinenumber: 821
    functionLinenumberEnd: 821
    functionName: nss_test::SoftokenFipsDhTest::SoftokenFipsDhTest
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SoftokenFipsDhTest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nss_test::SoftokenFipsTest::SetUp
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:827,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:830,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:832,1
    - Dst: PK11_InitPin
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:832,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:832,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:833,1
    - Dst: PK11_Authenticate
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:833,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:833,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:845,1
    - Dst: test_dh_value
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:845,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 826
    functionDepth: 16
    functionLinenumber: 826
    functionLinenumberEnd: 849
    functionName: nss_test::SoftokenFipsDhTest::SetUp
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - test_dh_value
    - PK11_InitPin
    - nss_test::SoftokenFipsTest::SetUp
    - ASSERT_TRUE
    - ScopedPK11SlotInfo::get
    - PK11_Authenticate
    linkageType: ''
    returnType: void
    signature: void SetUp()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:885,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:887,1
    - Dst: std::vector::begin
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:889,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:891,1
    - Dst: PK11_InitPin
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:891,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:891,1
    - Dst: c_str
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:891,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:892,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:893,1
    - Dst: PK11_ChangePW
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:894,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:894,1
    - Dst: c_str
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:894,1
    - Dst: c_str
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:894,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 884
    functionDepth: 5
    functionLinenumber: 884
    functionLinenumberEnd: 896
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached:
    - PK11_InitPin
    - ASSERT_TRUE
    - std::vector::end
    - std::vector::begin
    - GetParam
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - c_str
    - PK11_ChangePW
    linkageType: ''
    returnType: void
    signature: void TEST_P(SoftokenFipsPasswordTest, SetPassword)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:899,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:901,1
    - Dst: std::vector::begin
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:903,1
    - Dst: PK11_InitPin
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:905,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:905,1
    - Dst: c_str
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:905,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:906,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:907,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:909,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:910,1
    - Dst: PK11_ChangePW
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:911,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:911,1
    - Dst: c_str
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:911,1
    - Dst: c_str
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:911,1
    - Dst: std::vector::end
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:912,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:913,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:915,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 898
    functionDepth: 5
    functionLinenumber: 898
    functionLinenumberEnd: 917
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached:
    - PK11_InitPin
    - ASSERT_TRUE
    - std::vector::end
    - std::vector::begin
    - GetParam
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - c_str
    - PK11_ChangePW
    linkageType: ''
    returnType: void
    signature: void TEST_P(SoftokenFipsBadPasswordTest, SetBadPassword)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: GetParam
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:926,1
    - Dst: nss_test::param_value
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:938,1
    - Dst: nss_test::key_value
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:939,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:940,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:942,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:944,1
    - Dst: DataBuffer
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:947,1
    - Dst: nss_test::test_dh_value
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:954,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:959,1
    - Dst: EXPECT_LE
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:961,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:970,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 925
    functionDepth: 11
    functionLinenumber: 925
    functionLinenumberEnd: 973
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 0
    functionsReached:
    - nss_test::param_value
    - DataBuffer
    - nss_test::test_dh_value
    - EXPECT_LE
    - GetParam
    - nss_test::key_value
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(SoftokenFipsDhValidate, DhVectors)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: testing::InitGoogleTest
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:988,1
    - Dst: RUN_ALL_TESTS
      Src: /src/nss/gtests/softoken_gtest/softoken_gtest.cc:990,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 987
    functionDepth: 1
    functionLinenumber: 987
    functionLinenumberEnd: 991
    functionName: main
    functionSourceFile: /src/nss/gtests/softoken_gtest/softoken_gtest.cc
    functionUses: 43
    functionsReached:
    - testing::InitGoogleTest
    - RUN_ALL_TESTS
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/certdb_gtest/decode_certs_unittest.cc:24,1
    - Dst: CERT_DecodeCertFromPackage
      Src: /src/nss/gtests/certdb_gtest/decode_certs_unittest.cc:24,1
    - Dst: reinterpret_cast<char*>
      Src: /src/nss/gtests/certdb_gtest/decode_certs_unittest.cc:25,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/certdb_gtest/decode_certs_unittest.cc:27,1
    - Dst: PR_GetError
      Src: /src/nss/gtests/certdb_gtest/decode_certs_unittest.cc:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 15
    functionDepth: 9
    functionLinenumber: 15
    functionLinenumberEnd: 28
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/certdb_gtest/decode_certs_unittest.cc
    functionUses: 0
    functionsReached:
    - CERT_DecodeCertFromPackage
    - EXPECT_EQ
    - reinterpret_cast<char*>
    - PR_GetError
    linkageType: ''
    returnType: void
    signature: void TEST_F(DecodeCertsTest, EmptyCertPackage)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/certdb_gtest/decode_certs_unittest.cc:37,1
    - Dst: CERT_DecodeCertFromPackage
      Src: /src/nss/gtests/certdb_gtest/decode_certs_unittest.cc:38,1
    - Dst: reinterpret_cast<char*>
      Src: /src/nss/gtests/certdb_gtest/decode_certs_unittest.cc:38,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/certdb_gtest/decode_certs_unittest.cc:40,1
    - Dst: PR_GetError
      Src: /src/nss/gtests/certdb_gtest/decode_certs_unittest.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 30
    functionDepth: 9
    functionLinenumber: 30
    functionLinenumberEnd: 41
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/certdb_gtest/decode_certs_unittest.cc
    functionUses: 0
    functionsReached:
    - CERT_DecodeCertFromPackage
    - EXPECT_EQ
    - reinterpret_cast<char*>
    - PR_GetError
    linkageType: ''
    returnType: void
    signature: void TEST_F(DecodeCertsTest, EmptySignedData)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_FALSE
      Src: /src/nss/gtests/certdb_gtest/cert_unittest.cc:22,1
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/gtests/certdb_gtest/cert_unittest.cc:22,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/gtests/certdb_gtest/cert_unittest.cc:24,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/gtests/certdb_gtest/cert_unittest.cc:25,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/certdb_gtest/cert_unittest.cc:28,1
    - Dst: CERT_GetCertificateDer
      Src: /src/nss/gtests/certdb_gtest/cert_unittest.cc:28,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/certdb_gtest/cert_unittest.cc:29,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/gtests/certdb_gtest/cert_unittest.cc:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 31
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/certdb_gtest/cert_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - SECITEM_CompareItem
    - PR_NEXT_LINK
    - ASSERT_FALSE
    - CERT_GetCertificateDer
    - PR_CLIST_IS_EMPTY
    linkageType: ''
    returnType: void
    signature: void TEST_F(CertTest, GetCertDer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/certdb_gtest/cert_unittest.cc:34,1
    - Dst: CERT_GetCertificateDer
      Src: /src/nss/gtests/certdb_gtest/cert_unittest.cc:34,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/certdb_gtest/cert_unittest.cc:35,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/certdb_gtest/cert_unittest.cc:35,1
    - Dst: ASSERT_FALSE
      Src: /src/nss/gtests/certdb_gtest/cert_unittest.cc:38,1
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/gtests/certdb_gtest/cert_unittest.cc:38,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/gtests/certdb_gtest/cert_unittest.cc:39,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/certdb_gtest/cert_unittest.cc:40,1
    - Dst: CERT_GetCertificateDer
      Src: /src/nss/gtests/certdb_gtest/cert_unittest.cc:40,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/certdb_gtest/cert_unittest.cc:41,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/certdb_gtest/cert_unittest.cc:41,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/certdb_gtest/cert_unittest.cc:44,1
    - Dst: CERT_GetCertificateDer
      Src: /src/nss/gtests/certdb_gtest/cert_unittest.cc:44,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/certdb_gtest/cert_unittest.cc:45,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/certdb_gtest/cert_unittest.cc:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 46
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/certdb_gtest/cert_unittest.cc
    functionUses: 0
    functionsReached:
    - PORT_GetError
    - PR_NEXT_LINK
    - ASSERT_FALSE
    - CERT_GetCertificateDer
    - EXPECT_EQ
    - PR_CLIST_IS_EMPTY
    linkageType: ''
    returnType: void
    signature: void TEST_F(CertTest, GetCertDerBad)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_FALSE
      Src: /src/nss/gtests/certdb_gtest/cert_unittest.cc:22,1
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/gtests/certdb_gtest/cert_unittest.cc:22,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/gtests/certdb_gtest/cert_unittest.cc:24,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/gtests/certdb_gtest/cert_unittest.cc:25,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/certdb_gtest/cert_unittest.cc:28,1
    - Dst: CERT_GetCertificateDer
      Src: /src/nss/gtests/certdb_gtest/cert_unittest.cc:28,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/certdb_gtest/cert_unittest.cc:29,1
    - Dst: SECITEM_CompareItem
      Src: /src/nss/gtests/certdb_gtest/cert_unittest.cc:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 31
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/certdb_gtest/cert_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - SECITEM_CompareItem
    - PR_NEXT_LINK
    - ASSERT_FALSE
    - CERT_GetCertificateDer
    - PR_CLIST_IS_EMPTY
    linkageType: ''
    returnType: void
    signature: void TEST_F(CertTest, GetCertDer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/certdb_gtest/cert_unittest.cc:34,1
    - Dst: CERT_GetCertificateDer
      Src: /src/nss/gtests/certdb_gtest/cert_unittest.cc:34,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/certdb_gtest/cert_unittest.cc:35,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/certdb_gtest/cert_unittest.cc:35,1
    - Dst: ASSERT_FALSE
      Src: /src/nss/gtests/certdb_gtest/cert_unittest.cc:38,1
    - Dst: PR_CLIST_IS_EMPTY
      Src: /src/nss/gtests/certdb_gtest/cert_unittest.cc:38,1
    - Dst: PR_NEXT_LINK
      Src: /src/nss/gtests/certdb_gtest/cert_unittest.cc:39,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/certdb_gtest/cert_unittest.cc:40,1
    - Dst: CERT_GetCertificateDer
      Src: /src/nss/gtests/certdb_gtest/cert_unittest.cc:40,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/certdb_gtest/cert_unittest.cc:41,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/certdb_gtest/cert_unittest.cc:41,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/certdb_gtest/cert_unittest.cc:44,1
    - Dst: CERT_GetCertificateDer
      Src: /src/nss/gtests/certdb_gtest/cert_unittest.cc:44,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/certdb_gtest/cert_unittest.cc:45,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/certdb_gtest/cert_unittest.cc:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 46
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/certdb_gtest/cert_unittest.cc
    functionUses: 0
    functionsReached:
    - PORT_GetError
    - PR_NEXT_LINK
    - ASSERT_FALSE
    - CERT_GetCertificateDer
    - EXPECT_EQ
    - PR_CLIST_IS_EMPTY
    linkageType: ''
    returnType: void
    signature: void TEST_F(CertTest, GetCertDerBad)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CERT_AsciiToName
      Src: /src/nss/gtests/certdb_gtest/alg1485_unittest.cc:77,1
    - Dst: avaString::c_str
      Src: /src/nss/gtests/certdb_gtest/alg1485_unittest.cc:77,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/certdb_gtest/alg1485_unittest.cc:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 74
    functionDepth: 6
    functionLinenumber: 74
    functionLinenumberEnd: 79
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/certdb_gtest/alg1485_unittest.cc
    functionUses: 0
    functionsReached:
    - CERT_AsciiToName
    - ASSERT_EQ
    - avaString::c_str
    linkageType: ''
    returnType: void
    signature: void TEST_P(Alg1485ParseTest, TryParsingAVAStrings)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CERT_AsciiToName
      Src: /src/nss/gtests/certdb_gtest/alg1485_unittest.cc:83,1
    - Dst: avaString1::c_str
      Src: /src/nss/gtests/certdb_gtest/alg1485_unittest.cc:83,1
    - Dst: CERT_AsciiToName
      Src: /src/nss/gtests/certdb_gtest/alg1485_unittest.cc:84,1
    - Dst: avaString2::c_str
      Src: /src/nss/gtests/certdb_gtest/alg1485_unittest.cc:84,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/certdb_gtest/alg1485_unittest.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/certdb_gtest/alg1485_unittest.cc:86,1
    - Dst: CERT_CompareName
      Src: /src/nss/gtests/certdb_gtest/alg1485_unittest.cc:86,1
    - Dst: ScopedCERTName::get
      Src: /src/nss/gtests/certdb_gtest/alg1485_unittest.cc:86,1
    - Dst: ScopedCERTName::get
      Src: /src/nss/gtests/certdb_gtest/alg1485_unittest.cc:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 81
    functionDepth: 6
    functionLinenumber: 81
    functionLinenumberEnd: 87
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/certdb_gtest/alg1485_unittest.cc
    functionUses: 0
    functionsReached:
    - avaString1::c_str
    - avaString2::c_str
    - CERT_AsciiToName
    - CERT_CompareName
    - ASSERT_TRUE
    - ScopedCERTName::get
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(Alg1485CompareTest, CompareAVAStrings)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CERT_GetOidString
      Src: /src/nss/gtests/certdb_gtest/alg1485_unittest.cc:98,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/certdb_gtest/alg1485_unittest.cc:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 100
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/certdb_gtest/alg1485_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - CERT_GetOidString
    linkageType: ''
    returnType: void
    signature: void TEST_F(Alg1485Test, ShortOIDTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CERT_GetOidString
      Src: /src/nss/gtests/certdb_gtest/alg1485_unittest.cc:107,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/certdb_gtest/alg1485_unittest.cc:108,1
    - Dst: strlen
      Src: /src/nss/gtests/certdb_gtest/alg1485_unittest.cc:108,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/certdb_gtest/alg1485_unittest.cc:109,1
    - Dst: strncmp
      Src: /src/nss/gtests/certdb_gtest/alg1485_unittest.cc:109,1
    - Dst: PR_smprintf_free
      Src: /src/nss/gtests/certdb_gtest/alg1485_unittest.cc:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 111
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/certdb_gtest/alg1485_unittest.cc
    functionUses: 0
    functionsReached:
    - strncmp
    - PR_smprintf_free
    - EXPECT_EQ
    - CERT_GetOidString
    - strlen
    linkageType: ''
    returnType: void
    signature: void TEST_F(Alg1485Test, BrokenOIDTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CERT_AsciiToName
      Src: /src/nss/gtests/certdb_gtest/alg1485_unittest.cc:77,1
    - Dst: avaString::c_str
      Src: /src/nss/gtests/certdb_gtest/alg1485_unittest.cc:77,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/certdb_gtest/alg1485_unittest.cc:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 74
    functionDepth: 6
    functionLinenumber: 74
    functionLinenumberEnd: 79
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/certdb_gtest/alg1485_unittest.cc
    functionUses: 0
    functionsReached:
    - CERT_AsciiToName
    - ASSERT_EQ
    - avaString::c_str
    linkageType: ''
    returnType: void
    signature: void TEST_P(Alg1485ParseTest, TryParsingAVAStrings)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CERT_AsciiToName
      Src: /src/nss/gtests/certdb_gtest/alg1485_unittest.cc:83,1
    - Dst: avaString1::c_str
      Src: /src/nss/gtests/certdb_gtest/alg1485_unittest.cc:83,1
    - Dst: CERT_AsciiToName
      Src: /src/nss/gtests/certdb_gtest/alg1485_unittest.cc:84,1
    - Dst: avaString2::c_str
      Src: /src/nss/gtests/certdb_gtest/alg1485_unittest.cc:84,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/certdb_gtest/alg1485_unittest.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/certdb_gtest/alg1485_unittest.cc:86,1
    - Dst: CERT_CompareName
      Src: /src/nss/gtests/certdb_gtest/alg1485_unittest.cc:86,1
    - Dst: ScopedCERTName::get
      Src: /src/nss/gtests/certdb_gtest/alg1485_unittest.cc:86,1
    - Dst: ScopedCERTName::get
      Src: /src/nss/gtests/certdb_gtest/alg1485_unittest.cc:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 81
    functionDepth: 6
    functionLinenumber: 81
    functionLinenumberEnd: 87
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/certdb_gtest/alg1485_unittest.cc
    functionUses: 0
    functionsReached:
    - avaString1::c_str
    - avaString2::c_str
    - CERT_AsciiToName
    - CERT_CompareName
    - ASSERT_TRUE
    - ScopedCERTName::get
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_P(Alg1485CompareTest, CompareAVAStrings)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CERT_GetOidString
      Src: /src/nss/gtests/certdb_gtest/alg1485_unittest.cc:98,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/certdb_gtest/alg1485_unittest.cc:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 100
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/certdb_gtest/alg1485_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - CERT_GetOidString
    linkageType: ''
    returnType: void
    signature: void TEST_F(Alg1485Test, ShortOIDTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CERT_GetOidString
      Src: /src/nss/gtests/certdb_gtest/alg1485_unittest.cc:107,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/certdb_gtest/alg1485_unittest.cc:108,1
    - Dst: strlen
      Src: /src/nss/gtests/certdb_gtest/alg1485_unittest.cc:108,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/certdb_gtest/alg1485_unittest.cc:109,1
    - Dst: strncmp
      Src: /src/nss/gtests/certdb_gtest/alg1485_unittest.cc:109,1
    - Dst: PR_smprintf_free
      Src: /src/nss/gtests/certdb_gtest/alg1485_unittest.cc:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 111
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/certdb_gtest/alg1485_unittest.cc
    functionUses: 0
    functionsReached:
    - strncmp
    - PR_smprintf_free
    - EXPECT_EQ
    - CERT_GetOidString
    - strlen
    linkageType: ''
    returnType: void
    signature: void TEST_F(Alg1485Test, BrokenOIDTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/der_gtest/der_getint_unittest.cc:22,1
    - Dst: DER_GetInteger
      Src: /src/nss/gtests/der_gtest/der_getint_unittest.cc:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - number
    - der_number
    - len
    argTypes:
    - long
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 23
    functionName: nss_test::DERIntegerDecodingTest::TestGetInteger
    functionSourceFile: /src/nss/gtests/der_gtest/der_getint_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - DER_GetInteger
    linkageType: ''
    returnType: void
    signature: "void TestGetInteger(long number, unsigned char *der_number,\n                      unsigned
      int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - der_number
    - len
    argTypes:
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 30
    functionName: nss_test::DERIntegerDecodingTest::GetDerLongMax
    functionSourceFile: /src/nss/gtests/der_gtest/der_getint_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GetDerLongMax(unsigned char *der_number, unsigned int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - der_number
    - len
    argTypes:
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: nss_test::DERIntegerDecodingTest::GetDerLongMin
    functionSourceFile: /src/nss/gtests/der_gtest/der_getint_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GetDerLongMin(unsigned char *der_number, unsigned int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestGetInteger
      Src: /src/nss/gtests/der_gtest/der_getint_unittest.cc:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/der_gtest/der_getint_unittest.cc
    functionUses: 0
    functionsReached:
    - TestGetInteger
    linkageType: ''
    returnType: void
    signature: void TEST_F(DERIntegerDecodingTest, DecodeLongMinus126)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestGetInteger
      Src: /src/nss/gtests/der_gtest/der_getint_unittest.cc:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/der_gtest/der_getint_unittest.cc
    functionUses: 0
    functionsReached:
    - TestGetInteger
    linkageType: ''
    returnType: void
    signature: void TEST_F(DERIntegerDecodingTest, DecodeLong130)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestGetInteger
      Src: /src/nss/gtests/der_gtest/der_getint_unittest.cc:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/der_gtest/der_getint_unittest.cc
    functionUses: 0
    functionsReached:
    - TestGetInteger
    linkageType: ''
    returnType: void
    signature: void TEST_F(DERIntegerDecodingTest, DecodeLong130Padded)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestGetInteger
      Src: /src/nss/gtests/der_gtest/der_getint_unittest.cc:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/der_gtest/der_getint_unittest.cc
    functionUses: 0
    functionsReached:
    - TestGetInteger
    linkageType: ''
    returnType: void
    signature: void TEST_F(DERIntegerDecodingTest, DecodeLong0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestGetInteger
      Src: /src/nss/gtests/der_gtest/der_getint_unittest.cc:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/der_gtest/der_getint_unittest.cc
    functionUses: 0
    functionsReached:
    - TestGetInteger
    linkageType: ''
    returnType: void
    signature: void TEST_F(DERIntegerDecodingTest, DecodeLong1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestGetInteger
      Src: /src/nss/gtests/der_gtest/der_getint_unittest.cc:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/der_gtest/der_getint_unittest.cc
    functionUses: 0
    functionsReached:
    - TestGetInteger
    linkageType: ''
    returnType: void
    signature: void TEST_F(DERIntegerDecodingTest, DecodeLongMinus1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/gtests/der_gtest/der_getint_unittest.cc:73,1
    - Dst: TestGetInteger
      Src: /src/nss/gtests/der_gtest/der_getint_unittest.cc:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/der_gtest/der_getint_unittest.cc
    functionUses: 0
    functionsReached:
    - memset
    - TestGetInteger
    linkageType: ''
    returnType: void
    signature: void TEST_F(DERIntegerDecodingTest, DecodeLongMinus1Padded)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetDerLongMax
      Src: /src/nss/gtests/der_gtest/der_getint_unittest.cc:79,1
    - Dst: TestGetInteger
      Src: /src/nss/gtests/der_gtest/der_getint_unittest.cc:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/der_gtest/der_getint_unittest.cc
    functionUses: 0
    functionsReached:
    - GetDerLongMax
    - TestGetInteger
    linkageType: ''
    returnType: void
    signature: void TEST_F(DERIntegerDecodingTest, DecodeLongMax)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetDerLongMin
      Src: /src/nss/gtests/der_gtest/der_getint_unittest.cc:85,1
    - Dst: TestGetInteger
      Src: /src/nss/gtests/der_gtest/der_getint_unittest.cc:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/der_gtest/der_getint_unittest.cc
    functionUses: 0
    functionsReached:
    - GetDerLongMin
    - TestGetInteger
    linkageType: ''
    returnType: void
    signature: void TEST_F(DERIntegerDecodingTest, DecodeLongMin)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetDerLongMax
      Src: /src/nss/gtests/der_gtest/der_getint_unittest.cc:91,1
    - Dst: TestGetInteger
      Src: /src/nss/gtests/der_gtest/der_getint_unittest.cc:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/der_gtest/der_getint_unittest.cc
    functionUses: 0
    functionsReached:
    - GetDerLongMax
    - TestGetInteger
    linkageType: ''
    returnType: void
    signature: void TEST_F(DERIntegerDecodingTest, DecodeLongMaxMinus1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetDerLongMin
      Src: /src/nss/gtests/der_gtest/der_getint_unittest.cc:98,1
    - Dst: TestGetInteger
      Src: /src/nss/gtests/der_gtest/der_getint_unittest.cc:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 101
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/der_gtest/der_getint_unittest.cc
    functionUses: 0
    functionsReached:
    - GetDerLongMin
    - TestGetInteger
    linkageType: ''
    returnType: void
    signature: void TEST_F(DERIntegerDecodingTest, DecodeLongMinPlus1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetDerLongMax
      Src: /src/nss/gtests/der_gtest/der_getint_unittest.cc:105,1
    - Dst: TestGetInteger
      Src: /src/nss/gtests/der_gtest/der_getint_unittest.cc:108,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/der_gtest/der_getint_unittest.cc:109,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/der_gtest/der_getint_unittest.cc:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 110
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/der_gtest/der_getint_unittest.cc
    functionUses: 0
    functionsReached:
    - GetDerLongMax
    - PORT_GetError
    - TestGetInteger
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(DERIntegerDecodingTest, DecodeLongMinMinus1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetDerLongMin
      Src: /src/nss/gtests/der_gtest/der_getint_unittest.cc:114,1
    - Dst: TestGetInteger
      Src: /src/nss/gtests/der_gtest/der_getint_unittest.cc:117,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/der_gtest/der_getint_unittest.cc:118,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/der_gtest/der_getint_unittest.cc:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 119
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/der_gtest/der_getint_unittest.cc
    functionUses: 0
    functionsReached:
    - GetDerLongMin
    - PORT_GetError
    - TestGetInteger
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(DERIntegerDecodingTest, DecodeLongMaxPlus1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/der_gtest/der_getint_unittest.cc:22,1
    - Dst: DER_GetInteger
      Src: /src/nss/gtests/der_gtest/der_getint_unittest.cc:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - number
    - der_number
    - len
    argTypes:
    - long
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 23
    functionName: nss_test::DERIntegerDecodingTest::TestGetInteger
    functionSourceFile: /src/nss/gtests/der_gtest/der_getint_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - DER_GetInteger
    linkageType: ''
    returnType: void
    signature: "void TestGetInteger(long number, unsigned char *der_number,\n                      unsigned
      int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - der_number
    - len
    argTypes:
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 30
    functionName: nss_test::DERIntegerDecodingTest::GetDerLongMax
    functionSourceFile: /src/nss/gtests/der_gtest/der_getint_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GetDerLongMax(unsigned char *der_number, unsigned int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - der_number
    - len
    argTypes:
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: nss_test::DERIntegerDecodingTest::GetDerLongMin
    functionSourceFile: /src/nss/gtests/der_gtest/der_getint_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GetDerLongMin(unsigned char *der_number, unsigned int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestGetInteger
      Src: /src/nss/gtests/der_gtest/der_getint_unittest.cc:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/der_gtest/der_getint_unittest.cc
    functionUses: 0
    functionsReached:
    - TestGetInteger
    linkageType: ''
    returnType: void
    signature: void TEST_F(DERIntegerDecodingTest, DecodeLongMinus126)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestGetInteger
      Src: /src/nss/gtests/der_gtest/der_getint_unittest.cc:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/der_gtest/der_getint_unittest.cc
    functionUses: 0
    functionsReached:
    - TestGetInteger
    linkageType: ''
    returnType: void
    signature: void TEST_F(DERIntegerDecodingTest, DecodeLong130)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestGetInteger
      Src: /src/nss/gtests/der_gtest/der_getint_unittest.cc:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/der_gtest/der_getint_unittest.cc
    functionUses: 0
    functionsReached:
    - TestGetInteger
    linkageType: ''
    returnType: void
    signature: void TEST_F(DERIntegerDecodingTest, DecodeLong130Padded)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestGetInteger
      Src: /src/nss/gtests/der_gtest/der_getint_unittest.cc:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/der_gtest/der_getint_unittest.cc
    functionUses: 0
    functionsReached:
    - TestGetInteger
    linkageType: ''
    returnType: void
    signature: void TEST_F(DERIntegerDecodingTest, DecodeLong0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestGetInteger
      Src: /src/nss/gtests/der_gtest/der_getint_unittest.cc:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/der_gtest/der_getint_unittest.cc
    functionUses: 0
    functionsReached:
    - TestGetInteger
    linkageType: ''
    returnType: void
    signature: void TEST_F(DERIntegerDecodingTest, DecodeLong1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestGetInteger
      Src: /src/nss/gtests/der_gtest/der_getint_unittest.cc:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/der_gtest/der_getint_unittest.cc
    functionUses: 0
    functionsReached:
    - TestGetInteger
    linkageType: ''
    returnType: void
    signature: void TEST_F(DERIntegerDecodingTest, DecodeLongMinus1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nss/gtests/der_gtest/der_getint_unittest.cc:73,1
    - Dst: TestGetInteger
      Src: /src/nss/gtests/der_gtest/der_getint_unittest.cc:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/der_gtest/der_getint_unittest.cc
    functionUses: 0
    functionsReached:
    - memset
    - TestGetInteger
    linkageType: ''
    returnType: void
    signature: void TEST_F(DERIntegerDecodingTest, DecodeLongMinus1Padded)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetDerLongMax
      Src: /src/nss/gtests/der_gtest/der_getint_unittest.cc:79,1
    - Dst: TestGetInteger
      Src: /src/nss/gtests/der_gtest/der_getint_unittest.cc:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/der_gtest/der_getint_unittest.cc
    functionUses: 0
    functionsReached:
    - GetDerLongMax
    - TestGetInteger
    linkageType: ''
    returnType: void
    signature: void TEST_F(DERIntegerDecodingTest, DecodeLongMax)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetDerLongMin
      Src: /src/nss/gtests/der_gtest/der_getint_unittest.cc:85,1
    - Dst: TestGetInteger
      Src: /src/nss/gtests/der_gtest/der_getint_unittest.cc:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/der_gtest/der_getint_unittest.cc
    functionUses: 0
    functionsReached:
    - GetDerLongMin
    - TestGetInteger
    linkageType: ''
    returnType: void
    signature: void TEST_F(DERIntegerDecodingTest, DecodeLongMin)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetDerLongMax
      Src: /src/nss/gtests/der_gtest/der_getint_unittest.cc:91,1
    - Dst: TestGetInteger
      Src: /src/nss/gtests/der_gtest/der_getint_unittest.cc:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/der_gtest/der_getint_unittest.cc
    functionUses: 0
    functionsReached:
    - GetDerLongMax
    - TestGetInteger
    linkageType: ''
    returnType: void
    signature: void TEST_F(DERIntegerDecodingTest, DecodeLongMaxMinus1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetDerLongMin
      Src: /src/nss/gtests/der_gtest/der_getint_unittest.cc:98,1
    - Dst: TestGetInteger
      Src: /src/nss/gtests/der_gtest/der_getint_unittest.cc:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 101
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/der_gtest/der_getint_unittest.cc
    functionUses: 0
    functionsReached:
    - GetDerLongMin
    - TestGetInteger
    linkageType: ''
    returnType: void
    signature: void TEST_F(DERIntegerDecodingTest, DecodeLongMinPlus1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetDerLongMax
      Src: /src/nss/gtests/der_gtest/der_getint_unittest.cc:105,1
    - Dst: TestGetInteger
      Src: /src/nss/gtests/der_gtest/der_getint_unittest.cc:108,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/der_gtest/der_getint_unittest.cc:109,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/der_gtest/der_getint_unittest.cc:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 110
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/der_gtest/der_getint_unittest.cc
    functionUses: 0
    functionsReached:
    - GetDerLongMax
    - PORT_GetError
    - TestGetInteger
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(DERIntegerDecodingTest, DecodeLongMinMinus1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetDerLongMin
      Src: /src/nss/gtests/der_gtest/der_getint_unittest.cc:114,1
    - Dst: TestGetInteger
      Src: /src/nss/gtests/der_gtest/der_getint_unittest.cc:117,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/der_gtest/der_getint_unittest.cc:118,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/der_gtest/der_getint_unittest.cc:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 119
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/der_gtest/der_getint_unittest.cc
    functionUses: 0
    functionsReached:
    - GetDerLongMin
    - PORT_GetError
    - TestGetInteger
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(DERIntegerDecodingTest, DecodeLongMaxPlus1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SEC_PKCS12DecoderStart
      Src: /src/nss/gtests/der_gtest/p12_import_unittest.cc:240,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/der_gtest/p12_import_unittest.cc:240,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/der_gtest/p12_import_unittest.cc:242,1
    - Dst: SEC_PKCS12DecoderUpdate
      Src: /src/nss/gtests/der_gtest/p12_import_unittest.cc:243,1
    - Dst: ScopedSEC_PKCS12DecoderContext::get
      Src: /src/nss/gtests/der_gtest/p12_import_unittest.cc:244,1
    - Dst: const_cast<uint8_t *>
      Src: /src/nss/gtests/der_gtest/p12_import_unittest.cc:244,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/der_gtest/p12_import_unittest.cc:245,1
    - Dst: SEC_PKCS12DecoderVerify
      Src: /src/nss/gtests/der_gtest/p12_import_unittest.cc:246,1
    - Dst: ScopedSEC_PKCS12DecoderContext::get
      Src: /src/nss/gtests/der_gtest/p12_import_unittest.cc:246,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/der_gtest/p12_import_unittest.cc:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 236
    functionDepth: 13
    functionLinenumber: 236
    functionLinenumberEnd: 249
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/der_gtest/p12_import_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - SEC_PKCS12DecoderUpdate
    - ASSERT_TRUE
    - ScopedSEC_PKCS12DecoderContext::get
    - SEC_PKCS12DecoderStart
    - SEC_PKCS12DecoderVerify
    - ScopedPK11SlotInfo::get
    - const_cast<uint8_t *>
    linkageType: ''
    returnType: void
    signature: void TEST_F(PK12ImportTest, ImportPK12With2P7)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SEC_PKCS12DecoderStart
      Src: /src/nss/gtests/der_gtest/p12_import_unittest.cc:240,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/der_gtest/p12_import_unittest.cc:240,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/der_gtest/p12_import_unittest.cc:242,1
    - Dst: SEC_PKCS12DecoderUpdate
      Src: /src/nss/gtests/der_gtest/p12_import_unittest.cc:243,1
    - Dst: ScopedSEC_PKCS12DecoderContext::get
      Src: /src/nss/gtests/der_gtest/p12_import_unittest.cc:244,1
    - Dst: const_cast<uint8_t *>
      Src: /src/nss/gtests/der_gtest/p12_import_unittest.cc:244,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/der_gtest/p12_import_unittest.cc:245,1
    - Dst: SEC_PKCS12DecoderVerify
      Src: /src/nss/gtests/der_gtest/p12_import_unittest.cc:246,1
    - Dst: ScopedSEC_PKCS12DecoderContext::get
      Src: /src/nss/gtests/der_gtest/p12_import_unittest.cc:246,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/der_gtest/p12_import_unittest.cc:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 236
    functionDepth: 13
    functionLinenumber: 236
    functionLinenumberEnd: 249
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/der_gtest/p12_import_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - SEC_PKCS12DecoderUpdate
    - ASSERT_TRUE
    - ScopedSEC_PKCS12DecoderContext::get
    - SEC_PKCS12DecoderStart
    - SEC_PKCS12DecoderVerify
    - ScopedPK11SlotInfo::get
    - const_cast<uint8_t *>
    linkageType: ''
    returnType: void
    signature: void TEST_F(PK12ImportTest, ImportPK12With2P7)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/der_gtest/der_private_key_import_unittest.cc:78,1
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/der_gtest/der_private_key_import_unittest.cc:81,1
    - Dst: data
      Src: /src/nss/gtests/der_gtest/der_private_key_import_unittest.cc:81,1
    - Dst: size
      Src: /src/nss/gtests/der_gtest/der_private_key_import_unittest.cc:82,1
    - Dst: PK11_ImportDERPrivateKeyInfoAndReturnKey
      Src: /src/nss/gtests/der_gtest/der_private_key_import_unittest.cc:84,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/der_gtest/der_private_key_import_unittest.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/der_gtest/der_private_key_import_unittest.cc:88,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/gtests/der_gtest/der_private_key_import_unittest.cc:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' data'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 92
    functionName: nss_test::DERPrivateKeyImportTest::ParsePrivateKey
    functionSourceFile: /src/nss/gtests/der_gtest/der_private_key_import_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - size
    - const_cast<unsigned char*>
    - SECKEY_DestroyPrivateKey
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - PK11_ImportDERPrivateKeyInfoAndReturnKey
    - data
    linkageType: ''
    returnType: bool
    signature: bool ParsePrivateKey(const std::vector<uint8_t>& data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/der_gtest/der_private_key_import_unittest.cc:96,1
    - Dst: ParsePrivateKey
      Src: /src/nss/gtests/der_gtest/der_private_key_import_unittest.cc:96,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/der_gtest/der_private_key_import_unittest.cc:97,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/der_gtest/der_private_key_import_unittest.cc:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/der_gtest/der_private_key_import_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_FALSE
    - PORT_GetError
    - ParsePrivateKey
    linkageType: ''
    returnType: void
    signature: void TEST_F(DERPrivateKeyImportTest, ImportPrivateRSAKey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/der_gtest/der_private_key_import_unittest.cc:101,1
    - Dst: ParsePrivateKey
      Src: /src/nss/gtests/der_gtest/der_private_key_import_unittest.cc:101,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/der_gtest/der_private_key_import_unittest.cc:102,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/der_gtest/der_private_key_import_unittest.cc:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/der_gtest/der_private_key_import_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - EXPECT_EQ
    - PORT_GetError
    - ParsePrivateKey
    linkageType: ''
    returnType: void
    signature: void TEST_F(DERPrivateKeyImportTest, ImportInvalidPrivateKey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/der_gtest/der_private_key_import_unittest.cc:106,1
    - Dst: ParsePrivateKey
      Src: /src/nss/gtests/der_gtest/der_private_key_import_unittest.cc:106,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/der_gtest/der_private_key_import_unittest.cc:107,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/der_gtest/der_private_key_import_unittest.cc:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/der_gtest/der_private_key_import_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - EXPECT_EQ
    - PORT_GetError
    - ParsePrivateKey
    linkageType: ''
    returnType: void
    signature: void TEST_F(DERPrivateKeyImportTest, ImportZeroLengthPrivateKey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/der_gtest/der_private_key_import_unittest.cc:78,1
    - Dst: const_cast<unsigned char*>
      Src: /src/nss/gtests/der_gtest/der_private_key_import_unittest.cc:81,1
    - Dst: data
      Src: /src/nss/gtests/der_gtest/der_private_key_import_unittest.cc:81,1
    - Dst: size
      Src: /src/nss/gtests/der_gtest/der_private_key_import_unittest.cc:82,1
    - Dst: PK11_ImportDERPrivateKeyInfoAndReturnKey
      Src: /src/nss/gtests/der_gtest/der_private_key_import_unittest.cc:84,1
    - Dst: ScopedPK11SlotInfo::get
      Src: /src/nss/gtests/der_gtest/der_private_key_import_unittest.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/der_gtest/der_private_key_import_unittest.cc:88,1
    - Dst: SECKEY_DestroyPrivateKey
      Src: /src/nss/gtests/der_gtest/der_private_key_import_unittest.cc:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' data'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 92
    functionName: nss_test::DERPrivateKeyImportTest::ParsePrivateKey
    functionSourceFile: /src/nss/gtests/der_gtest/der_private_key_import_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - size
    - const_cast<unsigned char*>
    - SECKEY_DestroyPrivateKey
    - ScopedPK11SlotInfo::get
    - EXPECT_EQ
    - PK11_ImportDERPrivateKeyInfoAndReturnKey
    - data
    linkageType: ''
    returnType: bool
    signature: bool ParsePrivateKey(const std::vector<uint8_t>& data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/nss/gtests/der_gtest/der_private_key_import_unittest.cc:96,1
    - Dst: ParsePrivateKey
      Src: /src/nss/gtests/der_gtest/der_private_key_import_unittest.cc:96,1
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/der_gtest/der_private_key_import_unittest.cc:97,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/der_gtest/der_private_key_import_unittest.cc:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/der_gtest/der_private_key_import_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_FALSE
    - PORT_GetError
    - ParsePrivateKey
    linkageType: ''
    returnType: void
    signature: void TEST_F(DERPrivateKeyImportTest, ImportPrivateRSAKey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/der_gtest/der_private_key_import_unittest.cc:101,1
    - Dst: ParsePrivateKey
      Src: /src/nss/gtests/der_gtest/der_private_key_import_unittest.cc:101,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/der_gtest/der_private_key_import_unittest.cc:102,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/der_gtest/der_private_key_import_unittest.cc:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/der_gtest/der_private_key_import_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - EXPECT_EQ
    - PORT_GetError
    - ParsePrivateKey
    linkageType: ''
    returnType: void
    signature: void TEST_F(DERPrivateKeyImportTest, ImportInvalidPrivateKey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/nss/gtests/der_gtest/der_private_key_import_unittest.cc:106,1
    - Dst: ParsePrivateKey
      Src: /src/nss/gtests/der_gtest/der_private_key_import_unittest.cc:106,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/der_gtest/der_private_key_import_unittest.cc:107,1
    - Dst: PORT_GetError
      Src: /src/nss/gtests/der_gtest/der_private_key_import_unittest.cc:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 108
    functionName: nss_test::TEST_F
    functionSourceFile: /src/nss/gtests/der_gtest/der_private_key_import_unittest.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - EXPECT_EQ
    - PORT_GetError
    - ParsePrivateKey
    linkageType: ''
    returnType: void
    signature: void TEST_F(DERPrivateKeyImportTest, ImportZeroLengthPrivateKey)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - t
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 78
    functionName: TI
    functionSourceFile: /src/nss/gtests/der_gtest/der_quickder_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TI(t, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_AllocItem
      Src: /src/nss/gtests/der_gtest/der_quickder_unittest.cc:91,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/der_gtest/der_quickder_unittest.cc:92,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/der_gtest/der_quickder_unittest.cc:93,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/gtests/der_gtest/der_quickder_unittest.cc:94,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/der_gtest/der_quickder_unittest.cc:94,1
    - Dst: PORT_InitCheapArena
      Src: /src/nss/gtests/der_gtest/der_quickder_unittest.cc:97,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/der_gtest/der_quickder_unittest.cc:99,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/gtests/der_gtest/der_quickder_unittest.cc:100,1
    - Dst: GetParam
      Src: /src/nss/gtests/der_gtest/der_quickder_unittest.cc:100,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/der_gtest/der_quickder_unittest.cc:101,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/der_gtest/der_quickder_unittest.cc:102,1
    - Dst: PR_GetError
      Src: /src/nss/gtests/der_gtest/der_quickder_unittest.cc:102,1
    - Dst: PORT_DestroyCheapArena
      Src: /src/nss/gtests/der_gtest/der_quickder_unittest.cc:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 104
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/der_gtest/der_quickder_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - PR_GetError
    - ScopedSECItem::get
    - ASSERT_TRUE
    - SECITEM_CopyItem
    - SECITEM_AllocItem
    - SEC_QuickDERDecodeItem
    - GetParam
    - PORT_InitCheapArena
    - PORT_DestroyCheapArena
    linkageType: ''
    returnType: void
    signature: void TEST_P(QuickDERTest, InvalidLengths)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - t
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 78
    functionName: TI
    functionSourceFile: /src/nss/gtests/der_gtest/der_quickder_unittest.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TI(t, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SECITEM_AllocItem
      Src: /src/nss/gtests/der_gtest/der_quickder_unittest.cc:91,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/der_gtest/der_quickder_unittest.cc:92,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/der_gtest/der_quickder_unittest.cc:93,1
    - Dst: SECITEM_CopyItem
      Src: /src/nss/gtests/der_gtest/der_quickder_unittest.cc:94,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/der_gtest/der_quickder_unittest.cc:94,1
    - Dst: PORT_InitCheapArena
      Src: /src/nss/gtests/der_gtest/der_quickder_unittest.cc:97,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/der_gtest/der_quickder_unittest.cc:99,1
    - Dst: SEC_QuickDERDecodeItem
      Src: /src/nss/gtests/der_gtest/der_quickder_unittest.cc:100,1
    - Dst: GetParam
      Src: /src/nss/gtests/der_gtest/der_quickder_unittest.cc:100,1
    - Dst: ScopedSECItem::get
      Src: /src/nss/gtests/der_gtest/der_quickder_unittest.cc:101,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/der_gtest/der_quickder_unittest.cc:102,1
    - Dst: PR_GetError
      Src: /src/nss/gtests/der_gtest/der_quickder_unittest.cc:102,1
    - Dst: PORT_DestroyCheapArena
      Src: /src/nss/gtests/der_gtest/der_quickder_unittest.cc:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 104
    functionName: nss_test::TEST_P
    functionSourceFile: /src/nss/gtests/der_gtest/der_quickder_unittest.cc
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - PR_GetError
    - ScopedSECItem::get
    - ASSERT_TRUE
    - SECITEM_CopyItem
    - SECITEM_AllocItem
    - SEC_QuickDERDecodeItem
    - GetParam
    - PORT_InitCheapArena
    - PORT_DestroyCheapArena
    linkageType: ''
    returnType: void
    signature: void TEST_P(QuickDERTest, InvalidLengths)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixcheck_ParseValidity_tests.cpp:53,1
    - Dst: ParseValidity
      Src: /src/nss/gtests/mozpkix_gtest/pkixcheck_ParseValidity_tests.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 54
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixcheck_ParseValidity_tests.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ParseValidity
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixcheck_ParseValidity, BothEmptyNull)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixcheck_ParseValidity_tests.cpp:63,1
    - Dst: ParseValidity
      Src: /src/nss/gtests/mozpkix_gtest/pkixcheck_ParseValidity_tests.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 64
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixcheck_ParseValidity_tests.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ParseValidity
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixcheck_ParseValidity, NotBeforeEmptyNull)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixcheck_ParseValidity_tests.cpp:73,1
    - Dst: ParseValidity
      Src: /src/nss/gtests/mozpkix_gtest/pkixcheck_ParseValidity_tests.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 74
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixcheck_ParseValidity_tests.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ParseValidity
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixcheck_ParseValidity, NotAfterEmptyNull)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixcheck_ParseValidity_tests.cpp:83,1
    - Dst: ParseValidity
      Src: /src/nss/gtests/mozpkix_gtest/pkixcheck_ParseValidity_tests.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 84
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixcheck_ParseValidity_tests.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ParseValidity
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixcheck_ParseValidity, InvalidNotAfterBeforeNotBefore)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:50,1
    - Dst: Boolean
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 51
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - Boolean
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixder_universal_types_tests, BooleanTrue01)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:63,1
    - Dst: Boolean
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 64
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - Boolean
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixder_universal_types_tests, BooleanTrue42)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:77,1
    - Dst: Boolean
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:77,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 79
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - Boolean
    - ASSERT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixder_universal_types_tests, BooleanTrueFF)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:92,1
    - Dst: Boolean
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:92,1
    - Dst: ASSERT_FALSE
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 94
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ASSERT_FALSE
    - Boolean
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixder_universal_types_tests, BooleanFalse)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:107,1
    - Dst: Boolean
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 108
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - Boolean
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixder_universal_types_tests, BooleanInvalidLength)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:120,1
    - Dst: Boolean
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 121
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - Boolean
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixder_universal_types_tests, BooleanInvalidZeroLength)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:139,1
    - Dst: OptionalBoolean
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:139,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:141,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:142,1
    - Dst: Reader::AtEnd
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:142,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:155,1
    - Dst: OptionalBoolean
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:155,1
    - Dst: ASSERT_FALSE
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:157,1
    - Dst: ASSERT_FALSE
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:158,1
    - Dst: Reader::AtEnd
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:158,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:163,1
    - Dst: Input::Init
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:163,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:163,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:166,1
    - Dst: OptionalBoolean
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:166,1
    - Dst: ASSERT_FALSE
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:168,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:169,1
    - Dst: Reader::AtEnd
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 171
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - OptionalBoolean
    - reinterpret_cast<const uint8_t*>
    - ASSERT_TRUE
    - ASSERT_FALSE
    - Reader::AtEnd
    - Input::Init
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixder_universal_types_tests, OptionalBooleanValidEncodings)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:185,1
    - Dst: OptionalBoolean
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:185,1
    - Dst: ASSERT_FALSE
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:187,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:188,1
    - Dst: Reader::AtEnd
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:188,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:201,1
    - Dst: OptionalBoolean
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 204
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - OptionalBoolean
    - ASSERT_TRUE
    - ASSERT_FALSE
    - Reader::AtEnd
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixder_universal_types_tests, OptionalBooleanInvalidEncodings)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:217,1
    - Dst: Enumerated
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:217,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 219
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - Enumerated
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixder_universal_types_tests, Enumerated)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:232,1
    - Dst: Enumerated
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 233
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - Enumerated
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixder_universal_types_tests, EnumeratedNotShortestPossibleDER)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:250,1
    - Dst: Enumerated
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 251
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - Enumerated
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixder_universal_types_tests, EnumeratedOutOfAcceptedRange)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:263,1
    - Dst: Enumerated
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 264
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - Enumerated
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixder_universal_types_tests, EnumeratedInvalidZeroLength)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 291
    functionName: TWO_CHARS
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TWO_CHARS(t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TimeChoice
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - (generalizedTimeDER)
    - ' value'
    argTypes:
    - uint8_t[]
    - Time
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 311
    functionName: TimeChoiceForEquivalentUTCTime
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - TimeChoice
    linkageType: ''
    returnType: Result
    signature: "Result TimeChoiceForEquivalentUTCTime(const uint8_t (&generalizedTimeDER)[LENGTH],\n
      \                              /*out*/ Time& value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:323,1
    - Dst: GeneralizedTime
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:323,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:324,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:332,1
    - Dst: TimeChoice
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:332,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:333,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:339,1
    - Dst: TimeChoiceForEquivalentUTCTime
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:340,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - expectedValue
    - (generalizedTimeDER)
    argTypes:
    - Time
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 343
    functionName: ExpectGoodTime
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - GeneralizedTime
    - TimeChoice
    - TimeChoiceForEquivalentUTCTime
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: "void ExpectGoodTime(Time expectedValue,\n               const uint8_t
      (&generalizedTimeDER)[LENGTH])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:354,1
    - Dst: GeneralizedTime
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:354,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:362,1
    - Dst: TimeChoice
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:362,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:368,1
    - Dst: TimeChoiceForEquivalentUTCTime
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - (generalizedTimeDER)
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 371
    functionName: ExpectBadTime
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - TimeChoiceForEquivalentUTCTime
    - TimeChoice
    - GeneralizedTime
    linkageType: ''
    returnType: void
    signature: void ExpectBadTime(const uint8_t (&generalizedTimeDER)[LENGTH])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectGoodTime
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:381,1
    - Dst: YMDHMS
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 374
    functionDepth: 2
    functionLinenumber: 374
    functionLinenumberEnd: 382
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - YMDHMS
    - ExpectGoodTime
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixder_universal_types_tests, ValidControl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectBadTime
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 384
    functionDepth: 2
    functionLinenumber: 384
    functionLinenumberEnd: 393
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - ExpectBadTime
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixder_universal_types_tests, TimeTimeZoneOffset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:407,1
    - Dst: GeneralizedTime
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:407,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:412,1
    - Dst: TimeChoice
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:412,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:421,1
    - Dst: TimeChoice
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 422
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - TimeChoice
    - GeneralizedTime
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixder_universal_types_tests, TimeInvalidZeroLength)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectBadTime
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 425
    functionDepth: 2
    functionLinenumber: 425
    functionLinenumberEnd: 433
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - ExpectBadTime
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixder_universal_types_tests, TimeInvalidLocal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectBadTime
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 436
    functionDepth: 2
    functionLinenumber: 436
    functionLinenumberEnd: 444
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - ExpectBadTime
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixder_universal_types_tests, TimeInvalidTruncated)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectBadTime
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 446
    functionDepth: 2
    functionLinenumber: 446
    functionLinenumberEnd: 454
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - ExpectBadTime
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixder_universal_types_tests, TimeNoSeconds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectBadTime
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 456
    functionDepth: 2
    functionLinenumber: 456
    functionLinenumberEnd: 464
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - ExpectBadTime
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixder_universal_types_tests, TimeInvalidPrefixedYear)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectBadTime
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 466
    functionDepth: 2
    functionLinenumber: 466
    functionLinenumberEnd: 474
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - ExpectBadTime
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixder_universal_types_tests, TimeTooManyDigits)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TWO_CHARS
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:488,1
    - Dst: TWO_CHARS
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:488,1
    - Dst: YMDHMS
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:493,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:504,1
    - Dst: GeneralizedTime
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:504,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:505,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:513,1
    - Dst: TimeChoice
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:513,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:514,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:520,1
    - Dst: TimeChoiceForEquivalentUTCTime
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:520,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:521,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 478
    functionDepth: 1
    functionLinenumber: 478
    functionLinenumberEnd: 524
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - TWO_CHARS
    - GeneralizedTime
    - TimeChoice
    - TimeChoiceForEquivalentUTCTime
    - YMDHMS
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixder_universal_types_tests, GeneralizedTimeYearValidRange)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectBadTime
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 528
    functionDepth: 2
    functionLinenumber: 528
    functionLinenumberEnd: 537
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - ExpectBadTime
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixder_universal_types_tests, TimeYearInvalid1969)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TWO_CHARS
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:562,1
    - Dst: TWO_CHARS
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:562,1
    - Dst: ExpectGoodTime
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:565,1
    - Dst: YMDHMS
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:565,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 555
    functionDepth: 2
    functionLinenumber: 555
    functionLinenumberEnd: 568
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - YMDHMS
    - ExpectGoodTime
    - TWO_CHARS
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixder_universal_types_tests, TimeMonthDaysValidRange)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectBadTime
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 570
    functionDepth: 2
    functionLinenumber: 570
    functionLinenumberEnd: 579
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - ExpectBadTime
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixder_universal_types_tests, TimeMonthInvalid0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectBadTime
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 581
    functionDepth: 2
    functionLinenumber: 581
    functionLinenumberEnd: 591
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - ExpectBadTime
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixder_universal_types_tests, TimeMonthInvalid13)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectBadTime
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 593
    functionDepth: 2
    functionLinenumber: 593
    functionLinenumberEnd: 602
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - ExpectBadTime
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixder_universal_types_tests, TimeDayInvalid0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TWO_CHARS
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:611,1
    - Dst: TWO_CHARS
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:612,1
    - Dst: ExpectBadTime
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:615,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 604
    functionDepth: 2
    functionLinenumber: 604
    functionLinenumberEnd: 617
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - ExpectBadTime
    - TWO_CHARS
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixder_universal_types_tests, TimeMonthDayInvalidPastEndOfMonth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectGoodTime
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:627,1
    - Dst: YMDHMS
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 619
    functionDepth: 2
    functionLinenumber: 619
    functionLinenumberEnd: 628
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - YMDHMS
    - ExpectGoodTime
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixder_universal_types_tests, TimeMonthFebLeapYear2016)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectGoodTime
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:638,1
    - Dst: YMDHMS
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:638,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 630
    functionDepth: 2
    functionLinenumber: 630
    functionLinenumberEnd: 639
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - YMDHMS
    - ExpectGoodTime
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixder_universal_types_tests, TimeMonthFebLeapYear2000)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: YMDHMS
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:652,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:659,1
    - Dst: GeneralizedTime
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:659,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:660,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:668,1
    - Dst: TimeChoice
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:668,1
    - Dst: EXPECT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 641
    functionDepth: 1
    functionLinenumber: 641
    functionLinenumberEnd: 671
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - GeneralizedTime
    - TimeChoice
    - YMDHMS
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixder_universal_types_tests, TimeMonthFebLeapYear2400)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectBadTime
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:681,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 673
    functionDepth: 2
    functionLinenumber: 673
    functionLinenumberEnd: 682
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - ExpectBadTime
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixder_universal_types_tests, TimeMonthFebNotLeapYear2014)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:700,1
    - Dst: GeneralizedTime
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:700,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:708,1
    - Dst: TimeChoice
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 684
    functionDepth: 1
    functionLinenumber: 684
    functionLinenumberEnd: 710
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - TimeChoice
    - GeneralizedTime
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixder_universal_types_tests, TimeMonthFebNotLeapYear2100)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TWO_CHARS
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:719,1
    - Dst: ExpectGoodTime
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:721,1
    - Dst: YMDHMS
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:721,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 712
    functionDepth: 2
    functionLinenumber: 712
    functionLinenumberEnd: 723
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - YMDHMS
    - ExpectGoodTime
    - TWO_CHARS
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixder_universal_types_tests, TimeHoursValidRange)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectBadTime
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 725
    functionDepth: 2
    functionLinenumber: 725
    functionLinenumberEnd: 734
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - ExpectBadTime
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixder_universal_types_tests, TimeHoursInvalid_24_00_00)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TWO_CHARS
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:743,1
    - Dst: ExpectGoodTime
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:745,1
    - Dst: YMDHMS
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:745,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 736
    functionDepth: 2
    functionLinenumber: 736
    functionLinenumberEnd: 747
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - YMDHMS
    - ExpectGoodTime
    - TWO_CHARS
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixder_universal_types_tests, TimeMinutesValidRange)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectBadTime
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 749
    functionDepth: 2
    functionLinenumber: 749
    functionLinenumberEnd: 758
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - ExpectBadTime
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixder_universal_types_tests, TimeMinutesInvalid60)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TWO_CHARS
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:767,1
    - Dst: ExpectGoodTime
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:769,1
    - Dst: YMDHMS
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:769,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 760
    functionDepth: 2
    functionLinenumber: 760
    functionLinenumberEnd: 771
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - YMDHMS
    - ExpectGoodTime
    - TWO_CHARS
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixder_universal_types_tests, TimeSecondsValidRange)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectBadTime
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 774
    functionDepth: 2
    functionLinenumber: 774
    functionLinenumberEnd: 783
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - ExpectBadTime
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixder_universal_types_tests, TimeSecondsInvalid60)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectBadTime
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:794,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 786
    functionDepth: 2
    functionLinenumber: 786
    functionLinenumberEnd: 795
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - ExpectBadTime
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixder_universal_types_tests, TimeSecondsInvalid61)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectBadTime
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 797
    functionDepth: 2
    functionLinenumber: 797
    functionLinenumberEnd: 806
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - ExpectBadTime
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixder_universal_types_tests, TimeInvalidZulu)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectBadTime
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:817,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 808
    functionDepth: 2
    functionLinenumber: 808
    functionLinenumberEnd: 818
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - ExpectBadTime
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixder_universal_types_tests, TimeInvalidExtraData)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:838,1
    - Dst: GeneralizedTime
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:838,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:846,1
    - Dst: TimeChoice
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:846,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 820
    functionDepth: 1
    functionLinenumber: 820
    functionLinenumberEnd: 850
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - TimeChoice
    - GeneralizedTime
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixder_universal_types_tests, TimeInvalidCenturyChar)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectBadTime
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:860,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 852
    functionDepth: 2
    functionLinenumber: 852
    functionLinenumberEnd: 861
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - ExpectBadTime
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixder_universal_types_tests, TimeInvalidYearChar)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectBadTime
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:871,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 863
    functionDepth: 2
    functionLinenumber: 863
    functionLinenumberEnd: 872
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - ExpectBadTime
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixder_universal_types_tests, GeneralizedTimeInvalidMonthChar)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectBadTime
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:882,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 874
    functionDepth: 2
    functionLinenumber: 874
    functionLinenumberEnd: 883
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - ExpectBadTime
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixder_universal_types_tests, TimeInvalidDayChar)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ExpectBadTime
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:893,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 885
    functionDepth: 2
    functionLinenumber: 885
    functionLinenumberEnd: 894
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - ExpectBadTime
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixder_universal_types_tests, TimeInvalidFractionalSeconds)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' os'
    argTypes:
    - ::std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 917
    functionDepth: 0
    functionLinenumber: 917
    functionLinenumberEnd: 920
    functionName: '& operator<<(::std::ostream& os, const IntegerTestParams&)'
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ::std::ostream
    signature: ::std::ostream & operator<<(::std::ostream& os, const IntegerTestParams&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1067,1
    - Dst: Input::Init
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1067,1
    - Dst: encoded::data
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1067,1
    - Dst: encoded::length
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1068,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1072,1
    - Dst: mozilla::pkix::der::Integer
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1072,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1074,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1075,1
    - Dst: Reader::AtEnd
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1075,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 1063
    functionDepth: 2
    functionLinenumber: 1063
    functionLinenumberEnd: 1077
    functionName: TEST_P
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - encoded::data
    - mozilla::pkix::der::Integer
    - encoded::length
    - ASSERT_TRUE
    - Reader::AtEnd
    - Input::Init
    linkageType: ''
    returnType: void
    signature: void TEST_P(pkixder_universal_types_tests_Integer, Integer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1084,1
    - Dst: Input::Init
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1084,1
    - Dst: encoded::data
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1084,1
    - Dst: encoded::length
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1085,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1089,1
    - Dst: mozilla::pkix::der::PositiveInteger
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1089,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1093,1
    - Dst: ExpectTagAndGetValue
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1093,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1095,1
    - Dst: InputsAreEqual
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1095,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1096,1
    - Dst: Reader::AtEnd
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1096,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1098
      start: 1079
    functionDepth: 2
    functionLinenumber: 1079
    functionLinenumberEnd: 1098
    functionName: TEST_P
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - encoded::data
    - encoded::length
    - ASSERT_TRUE
    - InputsAreEqual
    - mozilla::pkix::der::PositiveInteger
    - ExpectTagAndGetValue
    - Reader::AtEnd
    - Input::Init
    linkageType: ''
    returnType: void
    signature: "void TEST_P(pkixder_universal_types_tests_Integer,\n       PositiveInteger_without_significantBytes)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1105,1
    - Dst: Input::Init
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1105,1
    - Dst: encoded::data
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1105,1
    - Dst: encoded::length
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1106,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1111,1
    - Dst: mozilla::pkix::der::PositiveInteger
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1111,1
    - Dst: ASSERT_NE
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1114,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1115,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1120,1
    - Dst: ExpectTagAndGetValue
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1120,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1122,1
    - Dst: InputsAreEqual
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1122,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1123,1
    - Dst: Reader::AtEnd
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1125
      start: 1100
    functionDepth: 2
    functionLinenumber: 1100
    functionLinenumberEnd: 1125
    functionName: TEST_P
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - encoded::data
    - encoded::length
    - ASSERT_TRUE
    - InputsAreEqual
    - mozilla::pkix::der::PositiveInteger
    - ExpectTagAndGetValue
    - Reader::AtEnd
    - Input::Init
    - ASSERT_NE
    linkageType: ''
    returnType: void
    signature: "void TEST_P(pkixder_universal_types_tests_Integer,\n       PositiveInteger_with_significantBytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1141,1
    - Dst: OptionalInteger
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1141,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1142,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1144,1
    - Dst: Boolean
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1145
      start: 1133
    functionDepth: 1
    functionLinenumber: 1133
    functionLinenumberEnd: 1145
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - OptionalInteger
    - Boolean
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixder_universal_types_tests, OptionalIntegerSupportedDefault)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1155,1
    - Dst: OptionalInteger
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1156
      start: 1147
    functionDepth: 1
    functionLinenumber: 1147
    functionLinenumberEnd: 1156
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - OptionalInteger
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixder_universal_types_tests, OptionalIntegerUnsupportedDefault)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1162,1
    - Dst: Input::Init
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1162,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1166,1
    - Dst: OptionalInteger
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1166,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1168
      start: 1158
    functionDepth: 1
    functionLinenumber: 1158
    functionLinenumberEnd: 1168
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - OptionalInteger
    - Input::Init
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixder_universal_types_tests, OptionalIntegerSupportedDefaultAtEnd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1181,1
    - Dst: OptionalInteger
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1181,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1182,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1183,1
    - Dst: Reader::AtEnd
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1184
      start: 1170
    functionDepth: 1
    functionLinenumber: 1170
    functionLinenumberEnd: 1184
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - Reader::AtEnd
    - OptionalInteger
    - ASSERT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixder_universal_types_tests, OptionalIntegerNonDefaultValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1195,1
    - Dst: 'Null'
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1196
      start: 1186
    functionDepth: 1
    functionLinenumber: 1186
    functionLinenumberEnd: 1196
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - 'Null'
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixder_universal_types_tests, Null)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1208,1
    - Dst: 'Null'
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1209
      start: 1198
    functionDepth: 1
    functionLinenumber: 1198
    functionLinenumberEnd: 1209
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - 'Null'
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixder_universal_types_tests, NullWithBadLength)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1225,1
    - Dst: OID
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1226
      start: 1211
    functionDepth: 1
    functionLinenumber: 1211
    functionLinenumberEnd: 1226
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - OID
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixder_universal_types_tests, OID)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1241,1
    - Dst: SkipOptionalImplicitPrimitiveTag
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1241,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1242,1
    - Dst: Reader::AtEnd
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1243
      start: 1228
    functionDepth: 1
    functionLinenumber: 1228
    functionLinenumberEnd: 1243
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - Reader::AtEnd
    - ASSERT_EQ
    - SkipOptionalImplicitPrimitiveTag
    - ASSERT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixder_universal_types_tests, SkipOptionalImplicitPrimitiveTag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1258,1
    - Dst: SkipOptionalImplicitPrimitiveTag
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1258,1
    - Dst: ASSERT_FALSE
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1259,1
    - Dst: Reader::AtEnd
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1260
      start: 1245
    functionDepth: 1
    functionLinenumber: 1245
    functionLinenumberEnd: 1260
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - Reader::AtEnd
    - ASSERT_EQ
    - SkipOptionalImplicitPrimitiveTag
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixder_universal_types_tests, SkipOptionalImplicitPrimitiveTagMismatch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1274,1
    - Dst: SkipOptionalImplicitPrimitiveTag
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1274,1
    - Dst: ASSERT_FALSE
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1275,1
    - Dst: Reader::AtEnd
      Src: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp:1275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1276
      start: 1262
    functionDepth: 1
    functionLinenumber: 1262
    functionLinenumberEnd: 1276
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixder_universal_types_tests.cpp
    functionUses: 0
    functionsReached:
    - Reader::AtEnd
    - ASSERT_EQ
    - SkipOptionalImplicitPrimitiveTag
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixder_universal_types_tests, NoSkipOptionalImplicitConstructedTag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestDigestBuf
      Src: /src/nss/gtests/mozpkix_gtest/pkixocsp_CreateEncodedOCSPRequest_tests.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - item
    - digestAlg
    - digestBuf
    - digestBufLen
    argTypes:
    - Input
    - DigestAlgorithm
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: CreateEncodedOCSPRequestTrustDomain::DigestBuf
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixocsp_CreateEncodedOCSPRequest_tests.cpp
    functionUses: 0
    functionsReached:
    - TestDigestBuf
    linkageType: ''
    returnType: Result
    signature: "Result DigestBuf(Input item, DigestAlgorithm digestAlg,\n                   /*out*/
      uint8_t *digestBuf, size_t digestBufLen)\n                   override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: CreateEncodedOCSPRequestTrustDomain::CheckRSAPublicKeyModulusSizeInBits
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixocsp_CreateEncodedOCSPRequest_tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result CheckRSAPublicKeyModulusSizeInBits(EndEntityOrCA, unsigned
      int)\n                                            override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CNToDERName
      Src: /src/nss/gtests/mozpkix_gtest/pkixocsp_CreateEncodedOCSPRequest_tests.cpp:57,1
    - Dst: ASSERT_FALSE
      Src: /src/nss/gtests/mozpkix_gtest/pkixocsp_CreateEncodedOCSPRequest_tests.cpp:58,1
    - Dst: ENCODING_FAILED
      Src: /src/nss/gtests/mozpkix_gtest/pkixocsp_CreateEncodedOCSPRequest_tests.cpp:58,1
    - Dst: ASSERT_TRUE
      Src: /src/nss/gtests/mozpkix_gtest/pkixocsp_CreateEncodedOCSPRequest_tests.cpp:61,1
    - Dst: ScopedTestKeyPair::get
      Src: /src/nss/gtests/mozpkix_gtest/pkixocsp_CreateEncodedOCSPRequest_tests.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - issuerASCII
    - ' issuerDER'
    - ' issuerSPKI'
    argTypes:
    - char*
    - ByteString
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 63
    functionName: pkixocsp_CreateEncodedOCSPRequest::MakeIssuerCertIDComponents
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixocsp_CreateEncodedOCSPRequest_tests.cpp
    functionUses: 0
    functionsReached:
    - CNToDERName
    - ScopedTestKeyPair::get
    - ASSERT_TRUE
    - ENCODING_FAILED
    - ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: "void MakeIssuerCertIDComponents(const char* issuerASCII,\n                                  /*out*/
      ByteString& issuerDER,\n                                  /*out*/ ByteString&
      issuerSPKI)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::push_back
      Src: /src/nss/gtests/mozpkix_gtest/pkixocsp_CreateEncodedOCSPRequest_tests.cpp:78,1
    - Dst: ByteString::push_back
      Src: /src/nss/gtests/mozpkix_gtest/pkixocsp_CreateEncodedOCSPRequest_tests.cpp:79,1
    - Dst: ByteString::push_back
      Src: /src/nss/gtests/mozpkix_gtest/pkixocsp_CreateEncodedOCSPRequest_tests.cpp:81,1
    - Dst: ByteString::push_back
      Src: /src/nss/gtests/mozpkix_gtest/pkixocsp_CreateEncodedOCSPRequest_tests.cpp:83,1
    - Dst: ASSERT_NO_FATAL_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixocsp_CreateEncodedOCSPRequest_tests.cpp:88,1
    - Dst: MakeIssuerCertIDComponents
      Src: /src/nss/gtests/mozpkix_gtest/pkixocsp_CreateEncodedOCSPRequest_tests.cpp:88,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixocsp_CreateEncodedOCSPRequest_tests.cpp:92,1
    - Dst: Input::Init
      Src: /src/nss/gtests/mozpkix_gtest/pkixocsp_CreateEncodedOCSPRequest_tests.cpp:92,1
    - Dst: ByteString::data
      Src: /src/nss/gtests/mozpkix_gtest/pkixocsp_CreateEncodedOCSPRequest_tests.cpp:92,1
    - Dst: ByteString::length
      Src: /src/nss/gtests/mozpkix_gtest/pkixocsp_CreateEncodedOCSPRequest_tests.cpp:92,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixocsp_CreateEncodedOCSPRequest_tests.cpp:95,1
    - Dst: Input::Init
      Src: /src/nss/gtests/mozpkix_gtest/pkixocsp_CreateEncodedOCSPRequest_tests.cpp:95,1
    - Dst: ByteString::data
      Src: /src/nss/gtests/mozpkix_gtest/pkixocsp_CreateEncodedOCSPRequest_tests.cpp:95,1
    - Dst: ByteString::length
      Src: /src/nss/gtests/mozpkix_gtest/pkixocsp_CreateEncodedOCSPRequest_tests.cpp:95,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixocsp_CreateEncodedOCSPRequest_tests.cpp:98,1
    - Dst: Input::Init
      Src: /src/nss/gtests/mozpkix_gtest/pkixocsp_CreateEncodedOCSPRequest_tests.cpp:98,1
    - Dst: ByteString::data
      Src: /src/nss/gtests/mozpkix_gtest/pkixocsp_CreateEncodedOCSPRequest_tests.cpp:98,1
    - Dst: ByteString::length
      Src: /src/nss/gtests/mozpkix_gtest/pkixocsp_CreateEncodedOCSPRequest_tests.cpp:99,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixocsp_CreateEncodedOCSPRequest_tests.cpp:103,1
    - Dst: CreateEncodedOCSPRequest
      Src: /src/nss/gtests/mozpkix_gtest/pkixocsp_CreateEncodedOCSPRequest_tests.cpp:104,1
    - Dst: CertID
      Src: /src/nss/gtests/mozpkix_gtest/pkixocsp_CreateEncodedOCSPRequest_tests.cpp:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 107
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixocsp_CreateEncodedOCSPRequest_tests.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ByteString::data
    - CreateEncodedOCSPRequest
    - CertID
    - ByteString::length
    - ASSERT_NO_FATAL_FAILURE
    - Input::Init
    - MakeIssuerCertIDComponents
    - ByteString::push_back
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixocsp_CreateEncodedOCSPRequest, ChildCertLongSerialNumberTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteString::push_back
      Src: /src/nss/gtests/mozpkix_gtest/pkixocsp_CreateEncodedOCSPRequest_tests.cpp:117,1
    - Dst: ByteString::push_back
      Src: /src/nss/gtests/mozpkix_gtest/pkixocsp_CreateEncodedOCSPRequest_tests.cpp:118,1
    - Dst: ByteString::push_back
      Src: /src/nss/gtests/mozpkix_gtest/pkixocsp_CreateEncodedOCSPRequest_tests.cpp:119,1
    - Dst: ByteString::push_back
      Src: /src/nss/gtests/mozpkix_gtest/pkixocsp_CreateEncodedOCSPRequest_tests.cpp:122,1
    - Dst: ASSERT_NO_FATAL_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixocsp_CreateEncodedOCSPRequest_tests.cpp:127,1
    - Dst: MakeIssuerCertIDComponents
      Src: /src/nss/gtests/mozpkix_gtest/pkixocsp_CreateEncodedOCSPRequest_tests.cpp:127,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixocsp_CreateEncodedOCSPRequest_tests.cpp:131,1
    - Dst: Input::Init
      Src: /src/nss/gtests/mozpkix_gtest/pkixocsp_CreateEncodedOCSPRequest_tests.cpp:131,1
    - Dst: ByteString::data
      Src: /src/nss/gtests/mozpkix_gtest/pkixocsp_CreateEncodedOCSPRequest_tests.cpp:131,1
    - Dst: ByteString::length
      Src: /src/nss/gtests/mozpkix_gtest/pkixocsp_CreateEncodedOCSPRequest_tests.cpp:131,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixocsp_CreateEncodedOCSPRequest_tests.cpp:134,1
    - Dst: Input::Init
      Src: /src/nss/gtests/mozpkix_gtest/pkixocsp_CreateEncodedOCSPRequest_tests.cpp:134,1
    - Dst: ByteString::data
      Src: /src/nss/gtests/mozpkix_gtest/pkixocsp_CreateEncodedOCSPRequest_tests.cpp:134,1
    - Dst: ByteString::length
      Src: /src/nss/gtests/mozpkix_gtest/pkixocsp_CreateEncodedOCSPRequest_tests.cpp:134,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixocsp_CreateEncodedOCSPRequest_tests.cpp:137,1
    - Dst: Input::Init
      Src: /src/nss/gtests/mozpkix_gtest/pkixocsp_CreateEncodedOCSPRequest_tests.cpp:137,1
    - Dst: ByteString::data
      Src: /src/nss/gtests/mozpkix_gtest/pkixocsp_CreateEncodedOCSPRequest_tests.cpp:137,1
    - Dst: ByteString::length
      Src: /src/nss/gtests/mozpkix_gtest/pkixocsp_CreateEncodedOCSPRequest_tests.cpp:138,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixocsp_CreateEncodedOCSPRequest_tests.cpp:142,1
    - Dst: CreateEncodedOCSPRequest
      Src: /src/nss/gtests/mozpkix_gtest/pkixocsp_CreateEncodedOCSPRequest_tests.cpp:143,1
    - Dst: CertID
      Src: /src/nss/gtests/mozpkix_gtest/pkixocsp_CreateEncodedOCSPRequest_tests.cpp:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 146
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixocsp_CreateEncodedOCSPRequest_tests.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - ByteString::data
    - CreateEncodedOCSPRequest
    - CertID
    - ByteString::length
    - ASSERT_NO_FATAL_FAILURE
    - Input::Init
    - MakeIssuerCertIDComponents
    - ByteString::push_back
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixocsp_CreateEncodedOCSPRequest, LongestSupportedSerialNumberTest)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::MapResultToName
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:68,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' result'
    - os
    argTypes:
    - Result
    - ::std::ostream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 74
    functionName: mozilla::pkix::PrintTo
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::MapResultToName
    - static_cast<unsigned int>
    linkageType: ''
    returnType: void
    signature: void PrintTo(const Result& result, ::std::ostream* os)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::MapResultToName
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:68,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' result'
    - os
    argTypes:
    - Result
    - ::std::ostream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 74
    functionName: mozilla::pkix::PrintTo
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::MapResultToName
    - static_cast<unsigned int>
    linkageType: ''
    returnType: void
    signature: void PrintTo(const Result& result, ::std::ostream* os)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::MapResultToName
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:68,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' result'
    - os
    argTypes:
    - Result
    - ::std::ostream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 74
    functionName: mozilla::pkix::PrintTo
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::MapResultToName
    - static_cast<unsigned int>
    linkageType: ''
    returnType: void
    signature: void PrintTo(const Result& result, ::std::ostream* os)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::MapResultToName
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:68,1
    - Dst: static_cast<unsigned int>
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' result'
    - os
    argTypes:
    - Result
    - ::std::ostream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 74
    functionName: mozilla::pkix::PrintTo
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::MapResultToName
    - static_cast<unsigned int>
    linkageType: ''
    returnType: void
    signature: void PrintTo(const Result& result, ::std::ostream* os)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:93,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 96
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::GetCertTrust
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: "Result GetCertTrust(EndEntityOrCA, const CertPolicyId&, Input,\n                      /*out*/
      TrustLevel&) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:99,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::FindIssuer
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: Result FindIssuer(Input, IssuerChecker&, Time) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:108,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 111
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::CheckRevocation
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: "Result CheckRevocation(EndEntityOrCA, const CertID&, Time, Duration,\n
      \                        /*optional*/ const Input*,\n                         /*optional*/
      const Input*,\n                         /*optional*/ const Input*) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:114,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 117
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::IsChainValid
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: Result IsChainValid(const DERArray&, Time, const CertPolicyId&) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:120,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 123
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::DigestBuf
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: Result DigestBuf(Input, DigestAlgorithm, /*out*/ uint8_t*, size_t)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:127,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 130
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::CheckSignatureDigestAlgorithm
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: "Result CheckSignatureDigestAlgorithm(DigestAlgorithm, EndEntityOrCA,\n
      \                                      Time) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:133,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 136
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::CheckECDSACurveIsAcceptable
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: Result CheckECDSACurveIsAcceptable(EndEntityOrCA, NamedCurve) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:139,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 142
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::VerifyECDSASignedData
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: Result VerifyECDSASignedData(Input, DigestAlgorithm, Input, Input)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:146,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 149
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::CheckRSAPublicKeyModulusSizeInBits
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: "Result CheckRSAPublicKeyModulusSizeInBits(EndEntityOrCA,\n                                            unsigned
      int) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:153,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 156
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::VerifyRSAPKCS1SignedData
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: "Result VerifyRSAPKCS1SignedData(Input, DigestAlgorithm, Input,\n                                  Input)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:159,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 162
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::VerifyRSAPSSSignedData
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: Result VerifyRSAPSSSignedData(Input, DigestAlgorithm, Input, Input)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:166,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 169
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::CheckValidityIsAcceptable
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: "Result CheckValidityIsAcceptable(Time, Time, EndEntityOrCA,\n                                   KeyPurposeId)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:172,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 175
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::NetscapeStepUpMatchesServerAuth
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: Result NetscapeStepUpMatchesServerAuth(Time, bool&) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 179
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::NoteAuxiliaryExtension
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - ADD_FAILURE
    linkageType: ''
    returnType: void
    signature: void NoteAuxiliaryExtension(AuxiliaryExtension, Input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestDigestBuf
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - item
    - digestAlg
    - digestBuf
    - digestBufLen
    argTypes:
    - Input
    - DigestAlgorithm
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 186
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::DigestBuf
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - TestDigestBuf
    linkageType: ''
    returnType: Result
    signature: "Result DigestBuf(Input item, DigestAlgorithm digestAlg,\n                   /*out*/
      uint8_t* digestBuf, size_t digestBufLen) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::CheckSignatureDigestAlgorithm
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result CheckSignatureDigestAlgorithm(DigestAlgorithm, EndEntityOrCA,\n
      \                                      Time) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 195
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::CheckECDSACurveIsAcceptable
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: Result CheckECDSACurveIsAcceptable(EndEntityOrCA, NamedCurve) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestVerifyECDSASignedData
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - data
    - digestAlgorithm
    - signature
    - subjectPublicKeyInfo
    argTypes:
    - Input
    - DigestAlgorithm
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 202
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::VerifyECDSASignedData
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - TestVerifyECDSASignedData
    linkageType: ''
    returnType: Result
    signature: "Result VerifyECDSASignedData(Input data, DigestAlgorithm digestAlgorithm,\n
      \                              Input signature,\n                               Input
      subjectPublicKeyInfo) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 207
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::CheckRSAPublicKeyModulusSizeInBits
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result CheckRSAPublicKeyModulusSizeInBits(EndEntityOrCA,\n                                            unsigned
      int) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestVerifyRSAPKCS1SignedData
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - data
    - digestAlgorithm
    - signature
    - subjectPublicKeyInfo
    argTypes:
    - Input
    - DigestAlgorithm
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 214
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::VerifyRSAPKCS1SignedData
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - TestVerifyRSAPKCS1SignedData
    linkageType: ''
    returnType: Result
    signature: "Result VerifyRSAPKCS1SignedData(Input data, DigestAlgorithm digestAlgorithm,\n
      \                                 Input signature,\n                                  Input
      subjectPublicKeyInfo) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 219
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::CheckValidityIsAcceptable
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result CheckValidityIsAcceptable(Time, Time, EndEntityOrCA,\n                                   KeyPurposeId)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' matches'
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 224
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::NetscapeStepUpMatchesServerAuth
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: Result NetscapeStepUpMatchesServerAuth(Time, /*out*/ bool& matches)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 226
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::NoteAuxiliaryExtension
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NoteAuxiliaryExtension(AuxiliaryExtension, Input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' fallBackToCommonName'
    argTypes:
    - FallBackToSearchWithinSubject
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 236
    functionName: mozilla::pkix::test::DefaultNameMatchingPolicy::FallBackToCommonName
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result FallBackToCommonName(\n      Time,\n      /*out*/ FallBackToSearchWithinSubject&
      fallBackToCommonName) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 241
    functionName: mozilla::pkix::test::DefaultNameMatchingPolicy::HandleInvalidSubjectAlternativeNames
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: HandleInvalidSubjectAlternativeNamesBy
    signature: HandleInvalidSubjectAlternativeNamesBy HandleInvalidSubjectAlternativeNames()
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:256,1
    - Dst: mozilla::pkix::test::BytesToByteString
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:257,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:258,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ekuOIDs
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 259
    functionName: mozilla::pkix::test::CreateEKUExtension
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::BytesToByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString CreateEKUExtension(ByteString ekuOIDs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:93,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 96
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::GetCertTrust
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: "Result GetCertTrust(EndEntityOrCA, const CertPolicyId&, Input,\n                      /*out*/
      TrustLevel&) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:99,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::FindIssuer
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: Result FindIssuer(Input, IssuerChecker&, Time) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:108,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 111
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::CheckRevocation
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: "Result CheckRevocation(EndEntityOrCA, const CertID&, Time, Duration,\n
      \                        /*optional*/ const Input*,\n                         /*optional*/
      const Input*,\n                         /*optional*/ const Input*) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:114,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 117
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::IsChainValid
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: Result IsChainValid(const DERArray&, Time, const CertPolicyId&) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:120,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 123
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::DigestBuf
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: Result DigestBuf(Input, DigestAlgorithm, /*out*/ uint8_t*, size_t)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:127,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 130
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::CheckSignatureDigestAlgorithm
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: "Result CheckSignatureDigestAlgorithm(DigestAlgorithm, EndEntityOrCA,\n
      \                                      Time) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:133,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 136
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::CheckECDSACurveIsAcceptable
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: Result CheckECDSACurveIsAcceptable(EndEntityOrCA, NamedCurve) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:139,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 142
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::VerifyECDSASignedData
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: Result VerifyECDSASignedData(Input, DigestAlgorithm, Input, Input)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:146,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 149
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::CheckRSAPublicKeyModulusSizeInBits
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: "Result CheckRSAPublicKeyModulusSizeInBits(EndEntityOrCA,\n                                            unsigned
      int) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:153,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 156
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::VerifyRSAPKCS1SignedData
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: "Result VerifyRSAPKCS1SignedData(Input, DigestAlgorithm, Input,\n                                  Input)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:159,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 162
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::VerifyRSAPSSSignedData
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: Result VerifyRSAPSSSignedData(Input, DigestAlgorithm, Input, Input)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:166,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 169
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::CheckValidityIsAcceptable
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: "Result CheckValidityIsAcceptable(Time, Time, EndEntityOrCA,\n                                   KeyPurposeId)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:172,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 175
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::NetscapeStepUpMatchesServerAuth
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: Result NetscapeStepUpMatchesServerAuth(Time, bool&) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 179
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::NoteAuxiliaryExtension
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - ADD_FAILURE
    linkageType: ''
    returnType: void
    signature: void NoteAuxiliaryExtension(AuxiliaryExtension, Input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestDigestBuf
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - item
    - digestAlg
    - digestBuf
    - digestBufLen
    argTypes:
    - Input
    - DigestAlgorithm
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 186
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::DigestBuf
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - TestDigestBuf
    linkageType: ''
    returnType: Result
    signature: "Result DigestBuf(Input item, DigestAlgorithm digestAlg,\n                   /*out*/
      uint8_t* digestBuf, size_t digestBufLen) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::CheckSignatureDigestAlgorithm
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result CheckSignatureDigestAlgorithm(DigestAlgorithm, EndEntityOrCA,\n
      \                                      Time) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 195
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::CheckECDSACurveIsAcceptable
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: Result CheckECDSACurveIsAcceptable(EndEntityOrCA, NamedCurve) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestVerifyECDSASignedData
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - data
    - digestAlgorithm
    - signature
    - subjectPublicKeyInfo
    argTypes:
    - Input
    - DigestAlgorithm
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 202
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::VerifyECDSASignedData
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - TestVerifyECDSASignedData
    linkageType: ''
    returnType: Result
    signature: "Result VerifyECDSASignedData(Input data, DigestAlgorithm digestAlgorithm,\n
      \                              Input signature,\n                               Input
      subjectPublicKeyInfo) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 207
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::CheckRSAPublicKeyModulusSizeInBits
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result CheckRSAPublicKeyModulusSizeInBits(EndEntityOrCA,\n                                            unsigned
      int) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestVerifyRSAPKCS1SignedData
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - data
    - digestAlgorithm
    - signature
    - subjectPublicKeyInfo
    argTypes:
    - Input
    - DigestAlgorithm
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 214
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::VerifyRSAPKCS1SignedData
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - TestVerifyRSAPKCS1SignedData
    linkageType: ''
    returnType: Result
    signature: "Result VerifyRSAPKCS1SignedData(Input data, DigestAlgorithm digestAlgorithm,\n
      \                                 Input signature,\n                                  Input
      subjectPublicKeyInfo) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 219
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::CheckValidityIsAcceptable
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result CheckValidityIsAcceptable(Time, Time, EndEntityOrCA,\n                                   KeyPurposeId)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' matches'
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 224
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::NetscapeStepUpMatchesServerAuth
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: Result NetscapeStepUpMatchesServerAuth(Time, /*out*/ bool& matches)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 226
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::NoteAuxiliaryExtension
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NoteAuxiliaryExtension(AuxiliaryExtension, Input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' fallBackToCommonName'
    argTypes:
    - FallBackToSearchWithinSubject
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 236
    functionName: mozilla::pkix::test::DefaultNameMatchingPolicy::FallBackToCommonName
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result FallBackToCommonName(\n      Time,\n      /*out*/ FallBackToSearchWithinSubject&
      fallBackToCommonName) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 241
    functionName: mozilla::pkix::test::DefaultNameMatchingPolicy::HandleInvalidSubjectAlternativeNames
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: HandleInvalidSubjectAlternativeNamesBy
    signature: HandleInvalidSubjectAlternativeNamesBy HandleInvalidSubjectAlternativeNames()
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:256,1
    - Dst: mozilla::pkix::test::BytesToByteString
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:257,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:258,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ekuOIDs
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 259
    functionName: mozilla::pkix::test::CreateEKUExtension
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::BytesToByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString CreateEKUExtension(ByteString ekuOIDs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:93,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 96
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::GetCertTrust
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: "Result GetCertTrust(EndEntityOrCA, const CertPolicyId&, Input,\n                      /*out*/
      TrustLevel&) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:99,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::FindIssuer
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: Result FindIssuer(Input, IssuerChecker&, Time) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:108,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 111
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::CheckRevocation
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: "Result CheckRevocation(EndEntityOrCA, const CertID&, Time, Duration,\n
      \                        /*optional*/ const Input*,\n                         /*optional*/
      const Input*,\n                         /*optional*/ const Input*) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:114,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 117
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::IsChainValid
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: Result IsChainValid(const DERArray&, Time, const CertPolicyId&) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:120,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 123
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::DigestBuf
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: Result DigestBuf(Input, DigestAlgorithm, /*out*/ uint8_t*, size_t)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:127,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 130
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::CheckSignatureDigestAlgorithm
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: "Result CheckSignatureDigestAlgorithm(DigestAlgorithm, EndEntityOrCA,\n
      \                                      Time) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:133,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 136
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::CheckECDSACurveIsAcceptable
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: Result CheckECDSACurveIsAcceptable(EndEntityOrCA, NamedCurve) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:139,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 142
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::VerifyECDSASignedData
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: Result VerifyECDSASignedData(Input, DigestAlgorithm, Input, Input)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:146,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 149
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::CheckRSAPublicKeyModulusSizeInBits
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: "Result CheckRSAPublicKeyModulusSizeInBits(EndEntityOrCA,\n                                            unsigned
      int) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:153,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 156
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::VerifyRSAPKCS1SignedData
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: "Result VerifyRSAPKCS1SignedData(Input, DigestAlgorithm, Input,\n                                  Input)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:159,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 162
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::VerifyRSAPSSSignedData
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: Result VerifyRSAPSSSignedData(Input, DigestAlgorithm, Input, Input)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:166,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 169
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::CheckValidityIsAcceptable
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: "Result CheckValidityIsAcceptable(Time, Time, EndEntityOrCA,\n                                   KeyPurposeId)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:172,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 175
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::NetscapeStepUpMatchesServerAuth
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: Result NetscapeStepUpMatchesServerAuth(Time, bool&) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 179
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::NoteAuxiliaryExtension
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - ADD_FAILURE
    linkageType: ''
    returnType: void
    signature: void NoteAuxiliaryExtension(AuxiliaryExtension, Input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestDigestBuf
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - item
    - digestAlg
    - digestBuf
    - digestBufLen
    argTypes:
    - Input
    - DigestAlgorithm
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 186
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::DigestBuf
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - TestDigestBuf
    linkageType: ''
    returnType: Result
    signature: "Result DigestBuf(Input item, DigestAlgorithm digestAlg,\n                   /*out*/
      uint8_t* digestBuf, size_t digestBufLen) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::CheckSignatureDigestAlgorithm
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result CheckSignatureDigestAlgorithm(DigestAlgorithm, EndEntityOrCA,\n
      \                                      Time) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 195
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::CheckECDSACurveIsAcceptable
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: Result CheckECDSACurveIsAcceptable(EndEntityOrCA, NamedCurve) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestVerifyECDSASignedData
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - data
    - digestAlgorithm
    - signature
    - subjectPublicKeyInfo
    argTypes:
    - Input
    - DigestAlgorithm
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 202
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::VerifyECDSASignedData
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - TestVerifyECDSASignedData
    linkageType: ''
    returnType: Result
    signature: "Result VerifyECDSASignedData(Input data, DigestAlgorithm digestAlgorithm,\n
      \                              Input signature,\n                               Input
      subjectPublicKeyInfo) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 207
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::CheckRSAPublicKeyModulusSizeInBits
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result CheckRSAPublicKeyModulusSizeInBits(EndEntityOrCA,\n                                            unsigned
      int) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestVerifyRSAPKCS1SignedData
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - data
    - digestAlgorithm
    - signature
    - subjectPublicKeyInfo
    argTypes:
    - Input
    - DigestAlgorithm
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 214
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::VerifyRSAPKCS1SignedData
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - TestVerifyRSAPKCS1SignedData
    linkageType: ''
    returnType: Result
    signature: "Result VerifyRSAPKCS1SignedData(Input data, DigestAlgorithm digestAlgorithm,\n
      \                                 Input signature,\n                                  Input
      subjectPublicKeyInfo) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 219
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::CheckValidityIsAcceptable
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result CheckValidityIsAcceptable(Time, Time, EndEntityOrCA,\n                                   KeyPurposeId)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' matches'
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 224
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::NetscapeStepUpMatchesServerAuth
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: Result NetscapeStepUpMatchesServerAuth(Time, /*out*/ bool& matches)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 226
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::NoteAuxiliaryExtension
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NoteAuxiliaryExtension(AuxiliaryExtension, Input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' fallBackToCommonName'
    argTypes:
    - FallBackToSearchWithinSubject
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 236
    functionName: mozilla::pkix::test::DefaultNameMatchingPolicy::FallBackToCommonName
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result FallBackToCommonName(\n      Time,\n      /*out*/ FallBackToSearchWithinSubject&
      fallBackToCommonName) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 241
    functionName: mozilla::pkix::test::DefaultNameMatchingPolicy::HandleInvalidSubjectAlternativeNames
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: HandleInvalidSubjectAlternativeNamesBy
    signature: HandleInvalidSubjectAlternativeNamesBy HandleInvalidSubjectAlternativeNames()
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:256,1
    - Dst: mozilla::pkix::test::BytesToByteString
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:257,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:258,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ekuOIDs
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 259
    functionName: mozilla::pkix::test::CreateEKUExtension
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::BytesToByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString CreateEKUExtension(ByteString ekuOIDs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:93,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 96
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::GetCertTrust
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: "Result GetCertTrust(EndEntityOrCA, const CertPolicyId&, Input,\n                      /*out*/
      TrustLevel&) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:99,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::FindIssuer
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: Result FindIssuer(Input, IssuerChecker&, Time) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:108,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 111
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::CheckRevocation
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: "Result CheckRevocation(EndEntityOrCA, const CertID&, Time, Duration,\n
      \                        /*optional*/ const Input*,\n                         /*optional*/
      const Input*,\n                         /*optional*/ const Input*) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:114,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 117
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::IsChainValid
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: Result IsChainValid(const DERArray&, Time, const CertPolicyId&) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:120,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 123
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::DigestBuf
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: Result DigestBuf(Input, DigestAlgorithm, /*out*/ uint8_t*, size_t)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:127,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 130
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::CheckSignatureDigestAlgorithm
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: "Result CheckSignatureDigestAlgorithm(DigestAlgorithm, EndEntityOrCA,\n
      \                                      Time) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:133,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 136
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::CheckECDSACurveIsAcceptable
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: Result CheckECDSACurveIsAcceptable(EndEntityOrCA, NamedCurve) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:139,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 142
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::VerifyECDSASignedData
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: Result VerifyECDSASignedData(Input, DigestAlgorithm, Input, Input)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:146,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 149
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::CheckRSAPublicKeyModulusSizeInBits
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: "Result CheckRSAPublicKeyModulusSizeInBits(EndEntityOrCA,\n                                            unsigned
      int) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:153,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 156
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::VerifyRSAPKCS1SignedData
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: "Result VerifyRSAPKCS1SignedData(Input, DigestAlgorithm, Input,\n                                  Input)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:159,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 162
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::VerifyRSAPSSSignedData
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: Result VerifyRSAPSSSignedData(Input, DigestAlgorithm, Input, Input)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:166,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 169
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::CheckValidityIsAcceptable
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: "Result CheckValidityIsAcceptable(Time, Time, EndEntityOrCA,\n                                   KeyPurposeId)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:172,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 175
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::NetscapeStepUpMatchesServerAuth
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: Result NetscapeStepUpMatchesServerAuth(Time, bool&) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 179
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::NoteAuxiliaryExtension
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - ADD_FAILURE
    linkageType: ''
    returnType: void
    signature: void NoteAuxiliaryExtension(AuxiliaryExtension, Input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestDigestBuf
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - item
    - digestAlg
    - digestBuf
    - digestBufLen
    argTypes:
    - Input
    - DigestAlgorithm
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 186
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::DigestBuf
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - TestDigestBuf
    linkageType: ''
    returnType: Result
    signature: "Result DigestBuf(Input item, DigestAlgorithm digestAlg,\n                   /*out*/
      uint8_t* digestBuf, size_t digestBufLen) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::CheckSignatureDigestAlgorithm
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result CheckSignatureDigestAlgorithm(DigestAlgorithm, EndEntityOrCA,\n
      \                                      Time) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 195
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::CheckECDSACurveIsAcceptable
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: Result CheckECDSACurveIsAcceptable(EndEntityOrCA, NamedCurve) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestVerifyECDSASignedData
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - data
    - digestAlgorithm
    - signature
    - subjectPublicKeyInfo
    argTypes:
    - Input
    - DigestAlgorithm
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 202
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::VerifyECDSASignedData
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - TestVerifyECDSASignedData
    linkageType: ''
    returnType: Result
    signature: "Result VerifyECDSASignedData(Input data, DigestAlgorithm digestAlgorithm,\n
      \                              Input signature,\n                               Input
      subjectPublicKeyInfo) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 207
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::CheckRSAPublicKeyModulusSizeInBits
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result CheckRSAPublicKeyModulusSizeInBits(EndEntityOrCA,\n                                            unsigned
      int) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestVerifyRSAPKCS1SignedData
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - data
    - digestAlgorithm
    - signature
    - subjectPublicKeyInfo
    argTypes:
    - Input
    - DigestAlgorithm
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 214
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::VerifyRSAPKCS1SignedData
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - TestVerifyRSAPKCS1SignedData
    linkageType: ''
    returnType: Result
    signature: "Result VerifyRSAPKCS1SignedData(Input data, DigestAlgorithm digestAlgorithm,\n
      \                                 Input signature,\n                                  Input
      subjectPublicKeyInfo) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 219
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::CheckValidityIsAcceptable
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result CheckValidityIsAcceptable(Time, Time, EndEntityOrCA,\n                                   KeyPurposeId)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' matches'
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 224
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::NetscapeStepUpMatchesServerAuth
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: Result NetscapeStepUpMatchesServerAuth(Time, /*out*/ bool& matches)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 226
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::NoteAuxiliaryExtension
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NoteAuxiliaryExtension(AuxiliaryExtension, Input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' fallBackToCommonName'
    argTypes:
    - FallBackToSearchWithinSubject
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 236
    functionName: mozilla::pkix::test::DefaultNameMatchingPolicy::FallBackToCommonName
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result FallBackToCommonName(\n      Time,\n      /*out*/ FallBackToSearchWithinSubject&
      fallBackToCommonName) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 241
    functionName: mozilla::pkix::test::DefaultNameMatchingPolicy::HandleInvalidSubjectAlternativeNames
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: HandleInvalidSubjectAlternativeNamesBy
    signature: HandleInvalidSubjectAlternativeNamesBy HandleInvalidSubjectAlternativeNames()
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:256,1
    - Dst: mozilla::pkix::test::BytesToByteString
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:257,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:258,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ekuOIDs
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 259
    functionName: mozilla::pkix::test::CreateEKUExtension
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::BytesToByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString CreateEKUExtension(ByteString ekuOIDs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:93,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 96
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::GetCertTrust
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: "Result GetCertTrust(EndEntityOrCA, const CertPolicyId&, Input,\n                      /*out*/
      TrustLevel&) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:99,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::FindIssuer
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: Result FindIssuer(Input, IssuerChecker&, Time) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:108,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 111
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::CheckRevocation
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: "Result CheckRevocation(EndEntityOrCA, const CertID&, Time, Duration,\n
      \                        /*optional*/ const Input*,\n                         /*optional*/
      const Input*,\n                         /*optional*/ const Input*) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:114,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 117
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::IsChainValid
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: Result IsChainValid(const DERArray&, Time, const CertPolicyId&) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:120,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 123
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::DigestBuf
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: Result DigestBuf(Input, DigestAlgorithm, /*out*/ uint8_t*, size_t)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:127,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 130
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::CheckSignatureDigestAlgorithm
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: "Result CheckSignatureDigestAlgorithm(DigestAlgorithm, EndEntityOrCA,\n
      \                                      Time) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:133,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 136
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::CheckECDSACurveIsAcceptable
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: Result CheckECDSACurveIsAcceptable(EndEntityOrCA, NamedCurve) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:139,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 142
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::VerifyECDSASignedData
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: Result VerifyECDSASignedData(Input, DigestAlgorithm, Input, Input)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:146,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 149
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::CheckRSAPublicKeyModulusSizeInBits
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: "Result CheckRSAPublicKeyModulusSizeInBits(EndEntityOrCA,\n                                            unsigned
      int) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:153,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 156
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::VerifyRSAPKCS1SignedData
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: "Result VerifyRSAPKCS1SignedData(Input, DigestAlgorithm, Input,\n                                  Input)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:159,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 162
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::VerifyRSAPSSSignedData
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: Result VerifyRSAPSSSignedData(Input, DigestAlgorithm, Input, Input)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:166,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 169
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::CheckValidityIsAcceptable
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: "Result CheckValidityIsAcceptable(Time, Time, EndEntityOrCA,\n                                   KeyPurposeId)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:172,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 175
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::NetscapeStepUpMatchesServerAuth
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: Result NetscapeStepUpMatchesServerAuth(Time, bool&) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 179
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::NoteAuxiliaryExtension
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - ADD_FAILURE
    linkageType: ''
    returnType: void
    signature: void NoteAuxiliaryExtension(AuxiliaryExtension, Input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestDigestBuf
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - item
    - digestAlg
    - digestBuf
    - digestBufLen
    argTypes:
    - Input
    - DigestAlgorithm
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 186
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::DigestBuf
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - TestDigestBuf
    linkageType: ''
    returnType: Result
    signature: "Result DigestBuf(Input item, DigestAlgorithm digestAlg,\n                   /*out*/
      uint8_t* digestBuf, size_t digestBufLen) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::CheckSignatureDigestAlgorithm
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result CheckSignatureDigestAlgorithm(DigestAlgorithm, EndEntityOrCA,\n
      \                                      Time) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 195
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::CheckECDSACurveIsAcceptable
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: Result CheckECDSACurveIsAcceptable(EndEntityOrCA, NamedCurve) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestVerifyECDSASignedData
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - data
    - digestAlgorithm
    - signature
    - subjectPublicKeyInfo
    argTypes:
    - Input
    - DigestAlgorithm
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 202
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::VerifyECDSASignedData
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - TestVerifyECDSASignedData
    linkageType: ''
    returnType: Result
    signature: "Result VerifyECDSASignedData(Input data, DigestAlgorithm digestAlgorithm,\n
      \                              Input signature,\n                               Input
      subjectPublicKeyInfo) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 207
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::CheckRSAPublicKeyModulusSizeInBits
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result CheckRSAPublicKeyModulusSizeInBits(EndEntityOrCA,\n                                            unsigned
      int) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestVerifyRSAPKCS1SignedData
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - data
    - digestAlgorithm
    - signature
    - subjectPublicKeyInfo
    argTypes:
    - Input
    - DigestAlgorithm
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 214
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::VerifyRSAPKCS1SignedData
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - TestVerifyRSAPKCS1SignedData
    linkageType: ''
    returnType: Result
    signature: "Result VerifyRSAPKCS1SignedData(Input data, DigestAlgorithm digestAlgorithm,\n
      \                                 Input signature,\n                                  Input
      subjectPublicKeyInfo) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 219
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::CheckValidityIsAcceptable
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result CheckValidityIsAcceptable(Time, Time, EndEntityOrCA,\n                                   KeyPurposeId)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' matches'
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 224
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::NetscapeStepUpMatchesServerAuth
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: Result NetscapeStepUpMatchesServerAuth(Time, /*out*/ bool& matches)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 226
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::NoteAuxiliaryExtension
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NoteAuxiliaryExtension(AuxiliaryExtension, Input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' fallBackToCommonName'
    argTypes:
    - FallBackToSearchWithinSubject
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 236
    functionName: mozilla::pkix::test::DefaultNameMatchingPolicy::FallBackToCommonName
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result FallBackToCommonName(\n      Time,\n      /*out*/ FallBackToSearchWithinSubject&
      fallBackToCommonName) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 241
    functionName: mozilla::pkix::test::DefaultNameMatchingPolicy::HandleInvalidSubjectAlternativeNames
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: HandleInvalidSubjectAlternativeNamesBy
    signature: HandleInvalidSubjectAlternativeNamesBy HandleInvalidSubjectAlternativeNames()
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:256,1
    - Dst: mozilla::pkix::test::BytesToByteString
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:257,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:258,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ekuOIDs
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 259
    functionName: mozilla::pkix::test::CreateEKUExtension
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::BytesToByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString CreateEKUExtension(ByteString ekuOIDs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:93,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 96
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::GetCertTrust
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: "Result GetCertTrust(EndEntityOrCA, const CertPolicyId&, Input,\n                      /*out*/
      TrustLevel&) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:99,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::FindIssuer
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: Result FindIssuer(Input, IssuerChecker&, Time) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:108,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 111
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::CheckRevocation
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: "Result CheckRevocation(EndEntityOrCA, const CertID&, Time, Duration,\n
      \                        /*optional*/ const Input*,\n                         /*optional*/
      const Input*,\n                         /*optional*/ const Input*) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:114,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 117
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::IsChainValid
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: Result IsChainValid(const DERArray&, Time, const CertPolicyId&) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:120,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 123
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::DigestBuf
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: Result DigestBuf(Input, DigestAlgorithm, /*out*/ uint8_t*, size_t)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:127,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 130
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::CheckSignatureDigestAlgorithm
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: "Result CheckSignatureDigestAlgorithm(DigestAlgorithm, EndEntityOrCA,\n
      \                                      Time) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:133,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 136
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::CheckECDSACurveIsAcceptable
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: Result CheckECDSACurveIsAcceptable(EndEntityOrCA, NamedCurve) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:139,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 142
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::VerifyECDSASignedData
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: Result VerifyECDSASignedData(Input, DigestAlgorithm, Input, Input)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:146,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 149
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::CheckRSAPublicKeyModulusSizeInBits
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: "Result CheckRSAPublicKeyModulusSizeInBits(EndEntityOrCA,\n                                            unsigned
      int) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:153,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 156
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::VerifyRSAPKCS1SignedData
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: "Result VerifyRSAPKCS1SignedData(Input, DigestAlgorithm, Input,\n                                  Input)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:159,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 162
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::VerifyRSAPSSSignedData
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: Result VerifyRSAPSSSignedData(Input, DigestAlgorithm, Input, Input)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:166,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 169
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::CheckValidityIsAcceptable
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: "Result CheckValidityIsAcceptable(Time, Time, EndEntityOrCA,\n                                   KeyPurposeId)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:172,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 175
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::NetscapeStepUpMatchesServerAuth
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: Result NetscapeStepUpMatchesServerAuth(Time, bool&) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 179
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::NoteAuxiliaryExtension
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - ADD_FAILURE
    linkageType: ''
    returnType: void
    signature: void NoteAuxiliaryExtension(AuxiliaryExtension, Input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestDigestBuf
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - item
    - digestAlg
    - digestBuf
    - digestBufLen
    argTypes:
    - Input
    - DigestAlgorithm
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 186
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::DigestBuf
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - TestDigestBuf
    linkageType: ''
    returnType: Result
    signature: "Result DigestBuf(Input item, DigestAlgorithm digestAlg,\n                   /*out*/
      uint8_t* digestBuf, size_t digestBufLen) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::CheckSignatureDigestAlgorithm
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result CheckSignatureDigestAlgorithm(DigestAlgorithm, EndEntityOrCA,\n
      \                                      Time) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 195
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::CheckECDSACurveIsAcceptable
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: Result CheckECDSACurveIsAcceptable(EndEntityOrCA, NamedCurve) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestVerifyECDSASignedData
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - data
    - digestAlgorithm
    - signature
    - subjectPublicKeyInfo
    argTypes:
    - Input
    - DigestAlgorithm
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 202
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::VerifyECDSASignedData
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - TestVerifyECDSASignedData
    linkageType: ''
    returnType: Result
    signature: "Result VerifyECDSASignedData(Input data, DigestAlgorithm digestAlgorithm,\n
      \                              Input signature,\n                               Input
      subjectPublicKeyInfo) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 207
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::CheckRSAPublicKeyModulusSizeInBits
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result CheckRSAPublicKeyModulusSizeInBits(EndEntityOrCA,\n                                            unsigned
      int) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestVerifyRSAPKCS1SignedData
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - data
    - digestAlgorithm
    - signature
    - subjectPublicKeyInfo
    argTypes:
    - Input
    - DigestAlgorithm
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 214
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::VerifyRSAPKCS1SignedData
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - TestVerifyRSAPKCS1SignedData
    linkageType: ''
    returnType: Result
    signature: "Result VerifyRSAPKCS1SignedData(Input data, DigestAlgorithm digestAlgorithm,\n
      \                                 Input signature,\n                                  Input
      subjectPublicKeyInfo) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 219
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::CheckValidityIsAcceptable
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result CheckValidityIsAcceptable(Time, Time, EndEntityOrCA,\n                                   KeyPurposeId)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' matches'
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 224
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::NetscapeStepUpMatchesServerAuth
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: Result NetscapeStepUpMatchesServerAuth(Time, /*out*/ bool& matches)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 226
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::NoteAuxiliaryExtension
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NoteAuxiliaryExtension(AuxiliaryExtension, Input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' fallBackToCommonName'
    argTypes:
    - FallBackToSearchWithinSubject
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 236
    functionName: mozilla::pkix::test::DefaultNameMatchingPolicy::FallBackToCommonName
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result FallBackToCommonName(\n      Time,\n      /*out*/ FallBackToSearchWithinSubject&
      fallBackToCommonName) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 241
    functionName: mozilla::pkix::test::DefaultNameMatchingPolicy::HandleInvalidSubjectAlternativeNames
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: HandleInvalidSubjectAlternativeNamesBy
    signature: HandleInvalidSubjectAlternativeNamesBy HandleInvalidSubjectAlternativeNames()
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:256,1
    - Dst: mozilla::pkix::test::BytesToByteString
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:257,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:258,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ekuOIDs
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 259
    functionName: mozilla::pkix::test::CreateEKUExtension
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::BytesToByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString CreateEKUExtension(ByteString ekuOIDs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:93,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 96
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::GetCertTrust
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: "Result GetCertTrust(EndEntityOrCA, const CertPolicyId&, Input,\n                      /*out*/
      TrustLevel&) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:99,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::FindIssuer
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: Result FindIssuer(Input, IssuerChecker&, Time) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:108,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 111
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::CheckRevocation
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: "Result CheckRevocation(EndEntityOrCA, const CertID&, Time, Duration,\n
      \                        /*optional*/ const Input*,\n                         /*optional*/
      const Input*,\n                         /*optional*/ const Input*) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:114,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 117
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::IsChainValid
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: Result IsChainValid(const DERArray&, Time, const CertPolicyId&) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:120,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 123
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::DigestBuf
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: Result DigestBuf(Input, DigestAlgorithm, /*out*/ uint8_t*, size_t)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:127,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 130
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::CheckSignatureDigestAlgorithm
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: "Result CheckSignatureDigestAlgorithm(DigestAlgorithm, EndEntityOrCA,\n
      \                                      Time) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:133,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 136
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::CheckECDSACurveIsAcceptable
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: Result CheckECDSACurveIsAcceptable(EndEntityOrCA, NamedCurve) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:139,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 142
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::VerifyECDSASignedData
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: Result VerifyECDSASignedData(Input, DigestAlgorithm, Input, Input)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:146,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 149
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::CheckRSAPublicKeyModulusSizeInBits
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: "Result CheckRSAPublicKeyModulusSizeInBits(EndEntityOrCA,\n                                            unsigned
      int) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:153,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 156
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::VerifyRSAPKCS1SignedData
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: "Result VerifyRSAPKCS1SignedData(Input, DigestAlgorithm, Input,\n                                  Input)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:159,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 162
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::VerifyRSAPSSSignedData
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: Result VerifyRSAPSSSignedData(Input, DigestAlgorithm, Input, Input)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:166,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 169
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::CheckValidityIsAcceptable
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: "Result CheckValidityIsAcceptable(Time, Time, EndEntityOrCA,\n                                   KeyPurposeId)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:172,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 175
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::NetscapeStepUpMatchesServerAuth
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: Result NetscapeStepUpMatchesServerAuth(Time, bool&) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 179
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::NoteAuxiliaryExtension
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - ADD_FAILURE
    linkageType: ''
    returnType: void
    signature: void NoteAuxiliaryExtension(AuxiliaryExtension, Input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestDigestBuf
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - item
    - digestAlg
    - digestBuf
    - digestBufLen
    argTypes:
    - Input
    - DigestAlgorithm
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 186
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::DigestBuf
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - TestDigestBuf
    linkageType: ''
    returnType: Result
    signature: "Result DigestBuf(Input item, DigestAlgorithm digestAlg,\n                   /*out*/
      uint8_t* digestBuf, size_t digestBufLen) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::CheckSignatureDigestAlgorithm
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result CheckSignatureDigestAlgorithm(DigestAlgorithm, EndEntityOrCA,\n
      \                                      Time) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 195
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::CheckECDSACurveIsAcceptable
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: Result CheckECDSACurveIsAcceptable(EndEntityOrCA, NamedCurve) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestVerifyECDSASignedData
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - data
    - digestAlgorithm
    - signature
    - subjectPublicKeyInfo
    argTypes:
    - Input
    - DigestAlgorithm
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 202
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::VerifyECDSASignedData
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - TestVerifyECDSASignedData
    linkageType: ''
    returnType: Result
    signature: "Result VerifyECDSASignedData(Input data, DigestAlgorithm digestAlgorithm,\n
      \                              Input signature,\n                               Input
      subjectPublicKeyInfo) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 207
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::CheckRSAPublicKeyModulusSizeInBits
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result CheckRSAPublicKeyModulusSizeInBits(EndEntityOrCA,\n                                            unsigned
      int) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestVerifyRSAPKCS1SignedData
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - data
    - digestAlgorithm
    - signature
    - subjectPublicKeyInfo
    argTypes:
    - Input
    - DigestAlgorithm
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 214
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::VerifyRSAPKCS1SignedData
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - TestVerifyRSAPKCS1SignedData
    linkageType: ''
    returnType: Result
    signature: "Result VerifyRSAPKCS1SignedData(Input data, DigestAlgorithm digestAlgorithm,\n
      \                                 Input signature,\n                                  Input
      subjectPublicKeyInfo) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 219
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::CheckValidityIsAcceptable
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result CheckValidityIsAcceptable(Time, Time, EndEntityOrCA,\n                                   KeyPurposeId)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' matches'
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 224
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::NetscapeStepUpMatchesServerAuth
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: Result NetscapeStepUpMatchesServerAuth(Time, /*out*/ bool& matches)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 226
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::NoteAuxiliaryExtension
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NoteAuxiliaryExtension(AuxiliaryExtension, Input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' fallBackToCommonName'
    argTypes:
    - FallBackToSearchWithinSubject
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 236
    functionName: mozilla::pkix::test::DefaultNameMatchingPolicy::FallBackToCommonName
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result FallBackToCommonName(\n      Time,\n      /*out*/ FallBackToSearchWithinSubject&
      fallBackToCommonName) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 241
    functionName: mozilla::pkix::test::DefaultNameMatchingPolicy::HandleInvalidSubjectAlternativeNames
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: HandleInvalidSubjectAlternativeNamesBy
    signature: HandleInvalidSubjectAlternativeNamesBy HandleInvalidSubjectAlternativeNames()
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:256,1
    - Dst: mozilla::pkix::test::BytesToByteString
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:257,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:258,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ekuOIDs
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 259
    functionName: mozilla::pkix::test::CreateEKUExtension
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::BytesToByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString CreateEKUExtension(ByteString ekuOIDs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:93,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 96
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::GetCertTrust
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: "Result GetCertTrust(EndEntityOrCA, const CertPolicyId&, Input,\n                      /*out*/
      TrustLevel&) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:99,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::FindIssuer
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: Result FindIssuer(Input, IssuerChecker&, Time) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:108,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 111
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::CheckRevocation
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: "Result CheckRevocation(EndEntityOrCA, const CertID&, Time, Duration,\n
      \                        /*optional*/ const Input*,\n                         /*optional*/
      const Input*,\n                         /*optional*/ const Input*) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:114,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 117
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::IsChainValid
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: Result IsChainValid(const DERArray&, Time, const CertPolicyId&) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:120,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 123
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::DigestBuf
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: Result DigestBuf(Input, DigestAlgorithm, /*out*/ uint8_t*, size_t)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:127,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 130
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::CheckSignatureDigestAlgorithm
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: "Result CheckSignatureDigestAlgorithm(DigestAlgorithm, EndEntityOrCA,\n
      \                                      Time) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:133,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 136
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::CheckECDSACurveIsAcceptable
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: Result CheckECDSACurveIsAcceptable(EndEntityOrCA, NamedCurve) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:139,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 142
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::VerifyECDSASignedData
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: Result VerifyECDSASignedData(Input, DigestAlgorithm, Input, Input)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:146,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 149
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::CheckRSAPublicKeyModulusSizeInBits
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: "Result CheckRSAPublicKeyModulusSizeInBits(EndEntityOrCA,\n                                            unsigned
      int) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:153,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 156
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::VerifyRSAPKCS1SignedData
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: "Result VerifyRSAPKCS1SignedData(Input, DigestAlgorithm, Input,\n                                  Input)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:159,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 162
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::VerifyRSAPSSSignedData
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: Result VerifyRSAPSSSignedData(Input, DigestAlgorithm, Input, Input)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:166,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 169
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::CheckValidityIsAcceptable
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: "Result CheckValidityIsAcceptable(Time, Time, EndEntityOrCA,\n                                   KeyPurposeId)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:172,1
    - Dst: NotReached
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 175
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::NetscapeStepUpMatchesServerAuth
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - NotReached
    - ADD_FAILURE
    linkageType: ''
    returnType: Result
    signature: Result NetscapeStepUpMatchesServerAuth(Time, bool&) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_FAILURE
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 179
    functionName: mozilla::pkix::test::EverythingFailsByDefaultTrustDomain::NoteAuxiliaryExtension
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - ADD_FAILURE
    linkageType: ''
    returnType: void
    signature: void NoteAuxiliaryExtension(AuxiliaryExtension, Input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestDigestBuf
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - item
    - digestAlg
    - digestBuf
    - digestBufLen
    argTypes:
    - Input
    - DigestAlgorithm
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 186
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::DigestBuf
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - TestDigestBuf
    linkageType: ''
    returnType: Result
    signature: "Result DigestBuf(Input item, DigestAlgorithm digestAlg,\n                   /*out*/
      uint8_t* digestBuf, size_t digestBufLen) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::CheckSignatureDigestAlgorithm
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result CheckSignatureDigestAlgorithm(DigestAlgorithm, EndEntityOrCA,\n
      \                                      Time) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 195
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::CheckECDSACurveIsAcceptable
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: Result CheckECDSACurveIsAcceptable(EndEntityOrCA, NamedCurve) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestVerifyECDSASignedData
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - data
    - digestAlgorithm
    - signature
    - subjectPublicKeyInfo
    argTypes:
    - Input
    - DigestAlgorithm
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 202
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::VerifyECDSASignedData
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - TestVerifyECDSASignedData
    linkageType: ''
    returnType: Result
    signature: "Result VerifyECDSASignedData(Input data, DigestAlgorithm digestAlgorithm,\n
      \                              Input signature,\n                               Input
      subjectPublicKeyInfo) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 207
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::CheckRSAPublicKeyModulusSizeInBits
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result CheckRSAPublicKeyModulusSizeInBits(EndEntityOrCA,\n                                            unsigned
      int) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TestVerifyRSAPKCS1SignedData
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - data
    - digestAlgorithm
    - signature
    - subjectPublicKeyInfo
    argTypes:
    - Input
    - DigestAlgorithm
    - Input
    - Input
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 214
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::VerifyRSAPKCS1SignedData
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - TestVerifyRSAPKCS1SignedData
    linkageType: ''
    returnType: Result
    signature: "Result VerifyRSAPKCS1SignedData(Input data, DigestAlgorithm digestAlgorithm,\n
      \                                 Input signature,\n                                  Input
      subjectPublicKeyInfo) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 219
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::CheckValidityIsAcceptable
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result CheckValidityIsAcceptable(Time, Time, EndEntityOrCA,\n                                   KeyPurposeId)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' matches'
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 224
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::NetscapeStepUpMatchesServerAuth
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: Result NetscapeStepUpMatchesServerAuth(Time, /*out*/ bool& matches)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 226
    functionName: mozilla::pkix::test::DefaultCryptoTrustDomain::NoteAuxiliaryExtension
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NoteAuxiliaryExtension(AuxiliaryExtension, Input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' fallBackToCommonName'
    argTypes:
    - FallBackToSearchWithinSubject
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 236
    functionName: mozilla::pkix::test::DefaultNameMatchingPolicy::FallBackToCommonName
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: "Result FallBackToCommonName(\n      Time,\n      /*out*/ FallBackToSearchWithinSubject&
      fallBackToCommonName) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 241
    functionName: mozilla::pkix::test::DefaultNameMatchingPolicy::HandleInvalidSubjectAlternativeNames
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: HandleInvalidSubjectAlternativeNamesBy
    signature: HandleInvalidSubjectAlternativeNamesBy HandleInvalidSubjectAlternativeNames()
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:256,1
    - Dst: mozilla::pkix::test::BytesToByteString
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:257,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:258,1
    - Dst: mozilla::pkix::test::TLV
      Src: /src/nss/gtests/mozpkix_gtest/pkixgtest.h:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ekuOIDs
    argTypes:
    - ByteString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 259
    functionName: mozilla::pkix::test::CreateEKUExtension
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixgtest.h
    functionUses: 0
    functionsReached:
    - mozilla::pkix::test::TLV
    - mozilla::pkix::test::BytesToByteString
    linkageType: ''
    returnType: ByteString
    signature: ByteString CreateEKUExtension(ByteString ekuOIDs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: ASSERT_BAD
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixcheck_CheckKeyUsage_tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT_BAD(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixcheck_CheckKeyUsage_tests.cpp:60,1
    - Dst: CheckKeyUsage
      Src: /src/nss/gtests/mozpkix_gtest/pkixcheck_CheckKeyUsage_tests.cpp:60,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixcheck_CheckKeyUsage_tests.cpp:62,1
    - Dst: CheckKeyUsage
      Src: /src/nss/gtests/mozpkix_gtest/pkixcheck_CheckKeyUsage_tests.cpp:62,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixcheck_CheckKeyUsage_tests.cpp:64,1
    - Dst: CheckKeyUsage
      Src: /src/nss/gtests/mozpkix_gtest/pkixcheck_CheckKeyUsage_tests.cpp:64,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixcheck_CheckKeyUsage_tests.cpp:66,1
    - Dst: CheckKeyUsage
      Src: /src/nss/gtests/mozpkix_gtest/pkixcheck_CheckKeyUsage_tests.cpp:66,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixcheck_CheckKeyUsage_tests.cpp:68,1
    - Dst: CheckKeyUsage
      Src: /src/nss/gtests/mozpkix_gtest/pkixcheck_CheckKeyUsage_tests.cpp:68,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixcheck_CheckKeyUsage_tests.cpp:70,1
    - Dst: CheckKeyUsage
      Src: /src/nss/gtests/mozpkix_gtest/pkixcheck_CheckKeyUsage_tests.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 72
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixcheck_CheckKeyUsage_tests.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - CheckKeyUsage
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixcheck_CheckKeyUsage, EE_none)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_BAD
      Src: /src/nss/gtests/mozpkix_gtest/pkixcheck_CheckKeyUsage_tests.cpp:78,1
    - Dst: CheckKeyUsage
      Src: /src/nss/gtests/mozpkix_gtest/pkixcheck_CheckKeyUsage_tests.cpp:78,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixcheck_CheckKeyUsage_tests.cpp:82,1
    - Dst: Input::Init
      Src: /src/nss/gtests/mozpkix_gtest/pkixcheck_CheckKeyUsage_tests.cpp:82,1
    - Dst: ASSERT_BAD
      Src: /src/nss/gtests/mozpkix_gtest/pkixcheck_CheckKeyUsage_tests.cpp:83,1
    - Dst: CheckKeyUsage
      Src: /src/nss/gtests/mozpkix_gtest/pkixcheck_CheckKeyUsage_tests.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 85
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixcheck_CheckKeyUsage_tests.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - CheckKeyUsage
    - Input::Init
    - ASSERT_BAD
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixcheck_CheckKeyUsage, EE_empty)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixcheck_CheckKeyUsage_tests.cpp:90,1
    - Dst: CheckKeyUsage
      Src: /src/nss/gtests/mozpkix_gtest/pkixcheck_CheckKeyUsage_tests.cpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 92
    functionName: TEST_F
    functionSourceFile: /src/nss/gtests/mozpkix_gtest/pkixcheck_CheckKeyUsage_tests.cpp
    functionUses: 0
    functionsReached:
    - ASSERT_EQ
    - CheckKeyUsage
    linkageType: ''
    returnType: void
    signature: void TEST_F(pkixcheck_CheckKeyUsage, CA_none)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_BAD
      Src: /src/nss/gtests/mozpkix_gtest/pkixcheck_CheckKeyUsage_tests.cpp:97,1
    - Dst: CheckKeyUsage
      Src: /src/nss/gtests/mozpkix_gtest/pkixcheck_CheckKeyUsage_tests.cpp:97,1
    - Dst: ASSERT_EQ
      Src: /src/nss/gtests/mozpkix_gtest/pkixcheck_CheckKeyUsage_tests.cpp:101,1
    - Dst: Input::Init
      Src: /src/nss/gtests/mozpkix_gtest/pkixcheck_CheckKeyUsage_tests.cpp:101,1
    - Dst: ASSERT_BAD
